From xen-devel-bounces@lists.xenproject.org Fri Dec 01 00:46:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 00:46:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645198.1007174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8rfO-0001kl-6M; Fri, 01 Dec 2023 00:46:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645198.1007174; Fri, 01 Dec 2023 00:46:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8rfO-0001ke-3F; Fri, 01 Dec 2023 00:46:02 +0000
Received: by outflank-mailman (input) for mailman id 645198;
 Fri, 01 Dec 2023 00:46: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=0ePP=HM=intel.com=rick.p.edgecombe@srs-se1.protection.inumbo.net>)
 id 1r8rfL-0001iW-Ln
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 00:46:00 +0000
Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fbc258b3-8fe2-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 01:45:56 +0100 (CET)
Received: from orsmga007.jf.intel.com ([10.7.209.58])
 by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 30 Nov 2023 16:45:53 -0800
Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14])
 by orsmga007.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 30 Nov 2023 16:45:53 -0800
Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by
 ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.34; Thu, 30 Nov 2023 16:45:52 -0800
Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by
 ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.34; Thu, 30 Nov 2023 16:45:52 -0800
Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by
 orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.34 via Frontend Transport; Thu, 30 Nov 2023 16:45:52 -0800
Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.100)
 by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.34; Thu, 30 Nov 2023 16:45:52 -0800
Received: from MN0PR11MB5963.namprd11.prod.outlook.com (2603:10b6:208:372::10)
 by IA1PR11MB7755.namprd11.prod.outlook.com (2603:10b6:208:420::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.23; Fri, 1 Dec
 2023 00:45:49 +0000
Received: from MN0PR11MB5963.namprd11.prod.outlook.com
 ([fe80::6dc:cee5:b26b:7d93]) by MN0PR11MB5963.namprd11.prod.outlook.com
 ([fe80::6dc:cee5:b26b:7d93%4]) with mapi id 15.20.7046.023; Fri, 1 Dec 2023
 00:45: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: fbc258b3-8fe2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701391556; x=1732927556;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-id:content-transfer-encoding:
   mime-version;
  bh=73L/5MpJgDADkf8EGzv+uHsARB1sIWvTa2gaWO1Ctok=;
  b=aLvspGS8OUuytSIVYntiEnbtYReqDoZJdky62yeokTsAbpXobx2jLlN/
   muVfc52JAvEjgT+G4IpEc8azs1zG8hG26nVIDLUgTMTd9tKZ7gv/VqTJj
   3COnFJ47SUJI7FS0Of8gbj/dcWBtZmD88ozMzFtRHIkQEIdUxqLQIQEeK
   h7ynlIBo7cwTj0euCm/yIqU2QwgticPQ5KAJJiMAlydweOq54n+6Iu+DT
   zd+KZJRQwlYVODDSU6ODTErb1XoeFXsyIxVvrv0DXbNrovrgTC647DVu9
   Zp/7EYGpukzb6n+7tMgC9nyrSSbF4P92siOai7Pn0r7aP0S2QHSZS0tkn
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10910"; a="378447173"
X-IronPort-AV: E=Sophos;i="6.04,240,1695711600"; 
   d="scan'208";a="378447173"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10910"; a="762933849"
X-IronPort-AV: E=Sophos;i="6.04,240,1695711600"; 
   d="scan'208";a="762933849"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JM06dRunMwTnpEcOpIfTbEZUpw+9oEnilleasndRAKO9ZqFKuN+fqe9mASny4OAI90/BZm4e5dIY+5oiPSG+c3WEfhW11xqtxPErDsHMq1C1YQ0fPXZmRI7eBe/lZi7qDUprfoRS1ZitTdOXFbAlycJ/WhNmG4ojTYz4oMQZLnv187UieTtItpFSBmyBvJ9GjkeHKalj+sKCByf6nTIU+/F20LGRFGsTtReHVTJ9vkIRe9emLh1Enqb8PhReicUaTASDfMeCehGFTPR0Hj2gbUX0T1GJ2IVfuJAjUmcCf4hHTRmi2yj+2rGys/OJrOFTVit1mrCdROujQPrANGtbHA==
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=73L/5MpJgDADkf8EGzv+uHsARB1sIWvTa2gaWO1Ctok=;
 b=F3dDwv+tQ55XfDBNLIH/pU+5FO9o4FZXG7aQzsj2dtgzvoD0uxsKo2Jw0hdnmtK8NQf3JKMufivF3y8Yq04tAetafMZuBYzL8VGNG/GCagmirkeL/zpQS9O/X/9PGEXhT4bR6dHX2RgMevBszxEBNxJY/3LQmVBYWygH9eSVF+wY67vjYx/9HSxjFlTPZJ6IrY3v3zPREGPR4sttlKdmeoqoW16sxeoVyMwP8OGRBJJHywPbGreZFXW6eXGn41pVHVlBLyuDiNYJySLR99D97/YVI8/QGiIdq3gw3hZagxjkAExNhXESPGepN7mY985FMppwkN42p33fwCYylsvjRw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
To: "peterz@infradead.org" <peterz@infradead.org>,
	"madvenka@linux.microsoft.com" <madvenka@linux.microsoft.com>
CC: "ssicleru@bitdefender.com" <ssicleru@bitdefender.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>, "mic@digikod.net"
	<mic@digikod.net>, "marian.c.rotariu@gmail.com" <marian.c.rotariu@gmail.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, "virtualization@lists.linux-foundation.org"
	<virtualization@lists.linux-foundation.org>, "pbonzini@redhat.com"
	<pbonzini@redhat.com>, "tgopinath@microsoft.com" <tgopinath@microsoft.com>,
	"chao.p.peng@linux.intel.com" <chao.p.peng@linux.intel.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"jgowans@amazon.com" <jgowans@amazon.com>, "ztarkhani@microsoft.com"
	<ztarkhani@microsoft.com>, "mdontu@bitdefender.com" <mdontu@bitdefender.com>,
	"x86@kernel.org" <x86@kernel.org>, "bp@alien8.de" <bp@alien8.de>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"jamorris@linux.microsoft.com" <jamorris@linux.microsoft.com>,
	"seanjc@google.com" <seanjc@google.com>, "vkuznets@redhat.com"
	<vkuznets@redhat.com>, "Andersen, John S" <john.s.andersen@intel.com>,
	"yu.c.zhang@linux.intel.com" <yu.c.zhang@linux.intel.com>,
	"nicu.citu@icloud.com" <nicu.citu@icloud.com>, "keescook@chromium.org"
	<keescook@chromium.org>, "Graf, Alexander" <graf@amazon.com>,
	"wanpengli@tencent.com" <wanpengli@tencent.com>,
	"dev@lists.cloudhypervisor.org" <dev@lists.cloudhypervisor.org>,
	"will@kernel.org" <will@kernel.org>, "mingo@redhat.com" <mingo@redhat.com>,
	"hpa@zytor.com" <hpa@zytor.com>, "linux-security-module@vger.kernel.org"
	<linux-security-module@vger.kernel.org>, "yuanyu@google.com"
	<yuanyu@google.com>, "linux-hyperv@vger.kernel.org"
	<linux-hyperv@vger.kernel.org>, "linux-hardening@vger.kernel.org"
	<linux-hardening@vger.kernel.org>, "quic_tsoni@quicinc.com"
	<quic_tsoni@quicinc.com>, "dave.hansen@linux.intel.com"
	<dave.hansen@linux.intel.com>
Subject: Re: [RFC PATCH v2 17/19] heki: x86: Update permissions counters
 during text patching
Thread-Topic: [RFC PATCH v2 17/19] heki: x86: Update permissions counters
 during text patching
Thread-Index: AQHaFdikZALJvW8dw0mqOzn84o3Of7B36I2AgBaO2oCAADfvgIADNQeAgAHPZQA=
Date: Fri, 1 Dec 2023 00:45:49 +0000
Message-ID: <4103d68b07bb382e434cdaf19ab1986f9079b0bb.camel@intel.com>
References: <20231113022326.24388-1-mic@digikod.net>
	 <20231113022326.24388-18-mic@digikod.net>
	 <20231113081929.GA16138@noisy.programming.kicks-ass.net>
	 <a52d8885-43cc-4a4e-bb47-9a800070779e@linux.microsoft.com>
	 <20231127200841.GZ3818@noisy.programming.kicks-ass.net>
	 <ea63ae4e-e8ea-4fbf-9383-499e14de2f5e@linux.microsoft.com>
In-Reply-To: <ea63ae4e-e8ea-4fbf-9383-499e14de2f5e@linux.microsoft.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Evolution 3.44.4-0ubuntu2 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MN0PR11MB5963:EE_|IA1PR11MB7755:EE_
x-ms-office365-filtering-correlation-id: 9265360b-1e06-4a76-c094-08dbf206dcd7
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;
x-microsoft-antispam-message-info: sJYoQmCZ9mUPmSzGFYkw9jYzjKYfGtykpnm4aO9u7dFdvv1Xibb8bQXOABMiUjRcZj0aMHik80/SCYPArurUciRsE/O9EdxFjYPr7DxUujqt/P7vrjc1Uh3TbZ8d6iefaU5sBa0PIs0Vk6YYrxltMgUMjnM6DJhfrUjuAPG22LEFiLgLMmJxihuBX7dXdPa1qL2NEvJ3/wvFU/L/SuaCeRLM3Y8GLIquJFfjqTBD+lrUogrc/A2n9n7YPPmKhJy4VtbG94r3YRJOIZM2UpCinom8zAdDP8jgQ4ImT76eVP76a7tz6Brzz6qhP+Bz/Hf/QqV3Snt0jG5keP4zJ13pr45mtQOn9as8BpP3tQxcz4EeazjptT5TQndpfctZk+E/rM20GYe6e4X7sXTo/JoSqvLSSsWMi0pOCLdhDcs4WEgqFP6qXftTpf60VSoczn796+UkKyvJ0zeDRF/Ymy1FbdwVjwEe79Nnc0jFhF0pu1UkxRVTB+WJo0i5XSmYyYWM5RVOjuHo3AFEToqIDRnaP36MAcJ0Rq012izzR7KvkjceDq3+uTYM766SWRsyIUyhRRnG32H1a/0SDQd+rj5+SO8qAXrvF0fYxX9UlC0dmf4=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN0PR11MB5963.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(346002)(39860400002)(136003)(366004)(376002)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(82960400001)(122000001)(38100700002)(83380400001)(4001150100001)(8676002)(110136005)(91956017)(2906002)(8936002)(86362001)(4326008)(5660300002)(7406005)(66946007)(66556008)(316002)(15650500001)(64756008)(54906003)(66476007)(6486002)(478600001)(966005)(71200400001)(76116006)(36756003)(6506007)(41300700001)(7416002)(66446008)(6512007)(38070700009)(26005)(2616005);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SlpZeDU0UUNDOTM3Z1NSU0hLVnNQWmozamtVQ29ZdCt5Z1JQUlNFU2krTzI2?=
 =?utf-8?B?czhKbk1OTGl6bzJRa3R1bmY3c3VNSnpZMjNVTkR0VE5lYktBb1ptVEV1R252?=
 =?utf-8?B?TE9Wa01qd1gxTHQzQW44aElDMHhFbytVSitja054WTNUcDBnMkRVZWYxTXBF?=
 =?utf-8?B?Y1M1aEJybDJvaG5hQk84L1ROTUFkaFdHczJ1Q2Ria3hXTkRiQkZVZ3Vkck5o?=
 =?utf-8?B?QjFkK1JRYkQzOWhiZDB0aTZnSDEraUFZSWhmY0Q4enlRayt3QjNqUkE2WVp2?=
 =?utf-8?B?eCtKQ1UyU1hqUG96d0lSL1Vma0ZkQ1ZWZUIxZlR2M1RtQWpFcGszYlNFRnNI?=
 =?utf-8?B?bzUrYXovak91Skl2MlROVm5MYlRKZmZRVmtDL3F3dUFkV29yOEdodnFMdkJw?=
 =?utf-8?B?N0kzbWdKbFhVeWRUbTB1Uzd2MGZhdjZzdmVreUtJZ2xJWUo1Qi9PVmFFa2NL?=
 =?utf-8?B?UmhaWG14NGM3MFlJWW9JTUgrQnRPc0Zzb1lkQVpRaHdUMnBwZHVUZHJUN292?=
 =?utf-8?B?bFlMcEJUTExqOFFObVlobTJPMW9Ca3BoMWNiYU9tN0dEd0VOWmZQbnd5aDBZ?=
 =?utf-8?B?bThDYjZSVGJyM29UTmJHcXBCc0M3R0ZDLzdkNG56YnZIdWZ2QjUrQjZFMXNq?=
 =?utf-8?B?dk0zR05hVk1rSG9LdEVQVXZPSk9Qb2R2OHB3ZC9KbUxEK0tBZlBOOVBwd3dP?=
 =?utf-8?B?NnlKMW1FeHkxUUF4QWZXbTZVQzlaRVROYkw4aXlQSTRNblNCQUtpZEtmOG1v?=
 =?utf-8?B?K1NpcTlQd25sdXovZThveVpjRUs3UkFFSDM0ampacjFkMllic2xGQVRaVVBU?=
 =?utf-8?B?OHFQc1hGbWtTQ1k5ZncwajFZaDJ2NVRrVXp2dnBxTnpGR3FESytqZUNMNElv?=
 =?utf-8?B?eW9jL08za1laOE5NVFBBS0tQVHZUd3Z4MUptdmpSRnRleEpVNU1qVE5lTUxx?=
 =?utf-8?B?S29HYjhDbDFMOUpBYUV3TTdPcVBuMWJBbE1vTi9VRWlwUnhUOC9LWDhMeUIr?=
 =?utf-8?B?UC8vbjFTQVRxUXRHYWZYaEppZXVDdko5cHJHVmlkb29vNEF6WlUxUUVXaEVG?=
 =?utf-8?B?SGxuYlVpV0lZTTZvUnYvL1kxYTZybGhxN0VGQVJaM05Wdnh1UU5tNW84SGk4?=
 =?utf-8?B?SjRmVWtaa2FHbitjb01zb1RkZFFiQ2l1clBoRmRwS3lpSmJLSmtReEZMSVRP?=
 =?utf-8?B?Q1hiOTEwSWxteVlDMlFDY3J6UWF3dTBPdURyQUg1N2NMa0lWWFFrMlhvbjlJ?=
 =?utf-8?B?ZnZ6ZG5lRkJqMXp5Y0N6YjJtazZsaVBSWkI1UkllN2ZjVE5oMnU5V3QyOWdw?=
 =?utf-8?B?dzNNTG5vMVVYVTZQSGdMZytkQkdLVGd3NEFUNkZtRGIrNDM2bjBZR0xzd3E5?=
 =?utf-8?B?Ym5iakIvSG5CWWpoMUNpQ1k4Tm1kdVJ2YXRiYlBjQUVNalg2MmlJTUc4bTlu?=
 =?utf-8?B?WGpSdGR2WmhjZUJnT3pPWnRaOENaZXJwNU1YaEs0Y2VJYUExRi80UWtTS28w?=
 =?utf-8?B?MGVlS085SWZSQTFnWTY4ZUszWkgyNE5UWkRlRjZ6QmJzZFU3WkZaSXNOUGdN?=
 =?utf-8?B?QitUMHJUeFQvaW1CWllVSFVhYnRSRTZsT0VmUFVPL1UwdjVheldIT2ZOU0Uw?=
 =?utf-8?B?c2YyU1VVVGVCeFVDVzg4VkcwWG9ES2owL3cwRk9QSk5xYXM5RTJ2Q0s5dzBn?=
 =?utf-8?B?dHltdDdxZ0lkc0RXV2VxMzlVWW0rZ1hUbHVEOUVVSm9mangrLytBeDJuOW5x?=
 =?utf-8?B?KzVRU0R1c2tlOG9jdkc1ZXFYRVV6ZTcxU3h6V1ZtQVo5SXQ3cy92NTdDdERG?=
 =?utf-8?B?WWVQaWcxUjYwVklxOUE1M0tVZzBXMXVONGZLOHJXWDRJOCtHSUViMjM1VEZv?=
 =?utf-8?B?MXRzZzlDcG5TWVY1Qk5qZ1QrV0tOeEFZL0svVVNxd3dUWGJBSXBsNzhRTUZH?=
 =?utf-8?B?RUdGWktsMm55bXdVTDdtRklVZk1wTzlNMG16YjV6L3U5UnA0QTVCUFlWVEt6?=
 =?utf-8?B?SlFaWFQwbkIxSFBVZFRXUUk5LzQ1Q3ZtZGxtbVQxY093dXBuNnBmQWdXb0hy?=
 =?utf-8?B?ek1zVCs0VWVyTEx1WkZsY21TT1BMRG5aTS80a1VPenhySzhiNC8rK0J2dVBx?=
 =?utf-8?B?K3I5djgrbFBJdm1lSHFYNVUvdVZNNGRBTHR4cHJIR3h6elM4aU41Z2hKcGli?=
 =?utf-8?B?cWc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <76B637047A03374C8C5D77D8BAB3AE3A@namprd11.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MN0PR11MB5963.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9265360b-1e06-4a76-c094-08dbf206dcd7
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2023 00:45:49.1438
 (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: +eP2airK01gzQvEdRBBxf1yTqqROY91HXa9KYnvsYacLVHYQ7NfB67f3RlcgFmj7FNrvgKKZi+CQMASUHQzEdLP6nNrnsUQ5uVm1oZN4Crc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7755
X-OriginatorOrg: intel.com

T24gV2VkLCAyMDIzLTExLTI5IGF0IDE1OjA3IC0wNjAwLCBNYWRoYXZhbiBULiBWZW5rYXRhcmFt
YW4gd3JvdGU6DQo+IFRocmVhdCBNb2RlbA0KPiAtLS0tLS0tLS0tLS0NCj4gDQo+IEluIHRoZSB0
aHJlYXQgbW9kZWwgaW4gSGVraSwgdGhlIGF0dGFja2VyIGlzIGEgdXNlciBzcGFjZSBhdHRhY2tl
cg0KPiB3aG8gZXhwbG9pdHMNCj4gYSBrZXJuZWwgdnVsbmVyYWJpbGl0eSB0byBnYWluIG1vcmUg
cHJpdmlsZWdlcyBvciBieXBhc3MgdGhlIGtlcm5lbCdzDQo+IGFjY2Vzcw0KPiBjb250cm9sIGFu
ZCBzZWxmLXByb3RlY3Rpb24gbWVjaGFuaXNtcy4gDQo+IA0KPiBJbiB0aGUgY29udGV4dCBvZiB0
aGUgZ3Vlc3QgcGFnZSB0YWJsZSwgb25lIG9mIHRoZSB0aGluZ3MgdGhhdCB0aGUNCj4gdGhyZWF0
IG1vZGVsIHRyYW5zbGF0ZXMNCj4gdG8gaXMgYSBoYWNrZXIgZ2FpbmluZyBhY2Nlc3MgdG8gYSBn
dWVzdCBwYWdlIHdpdGggUldYIHBlcm1pc3Npb25zLg0KPiBFLmcuLCBieSBhZGRpbmcgZXhlY3V0
ZQ0KPiBwZXJtaXNzaW9ucyB0byBhIHdyaXRhYmxlIHBhZ2Ugb3IgYnkgYWRkaW5nIHdyaXRlIHBl
cm1pc3Npb25zIHRvIGFuDQo+IGV4ZWN1dGFibGUgcGFnZS4NCj4gDQo+IFRvZGF5LCB0aGUgcGVy
bWlzc2lvbnMgZm9yIGEgZ3Vlc3QgcGFnZSBpbiB0aGUgZXh0ZW5kZWQgcGFnZSB0YWJsZQ0KPiBh
cmUgUldYIGJ5DQo+IGRlZmF1bHQuIFNvLCBpZiBhIGhhY2tlciBtYW5hZ2VzIHRvIGVzdGFibGlz
aCBSV1ggZm9yIGEgcGFnZSBpbiB0aGUNCj4gZ3Vlc3QgcGFnZQ0KPiB0YWJsZSwgdGhlbiB0aGF0
IGlzIGFsbCBoZSBuZWVkcyB0byBkbyBzb21lIGRhbWFnZS4NCg0KSSBoYWQgYSBmZXcgcmFuZG9t
IGNvbW1lbnRzIGZyb20gd2F0Y2hpbmcgdGhlIHBsdW1iZXJzIHRhbGsgb25saW5lOg0KDQpJcyB0
aGVyZSByZWFsbHkgYSBiaWcgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgcGFnZSB0aGF0IGlzIFJXWCwg
YW5kIGEgUlcNCnBhZ2UgdGhhdCBpcyBhYm91dCB0byBiZWNvbWUgUlg/IEkgcmVhbGl6ZSB0aGF0
IHRoZXJlIGlzIGFuIGFkZGl0aW9uIG9mDQp0aW1pbmcsIGJ1dCB3aGVuIGV4ZWN1dGFibGUgY29k
ZSBpcyBnZXR0aW5nIGxvYWRlZCBpdCBjYW4gYmUgd3JpdHRlbiB0bw0KdGhlbiBhbmQgbGF0ZXIg
ZXhlY3V0ZWQuIEkgdGhpbmsgdGhhdCBnYXAgY291bGQgYmUgYWRkcmVzc2VkIGluIHR3bw0KZGlm
ZmVyZW50IHdheXMsIGJvdGggcHJldHR5IGRpZmZpY3VsdDoNCiAxLiBWZXJpZnlpbmcgdGhlIGxv
YWRlZCBjb2RlIGJlZm9yZSBpdCBnZXRzIG1hcmtlZMKgDQogICAgZXhlY3V0YWJsZS4gVGhpc8Kg
aXPCoGRpZmZpY3VsdCBiZWNhdXNlIHRoZSBrZXJuZWwgZG9lcyBsb3RzIG9mwqANCiAgICB0d2Vh
a3Mgb24gdGhlIGNvZGUgaXQgaXMgbG9hZGluZyAoYWx0ZXJuYXRpdmVzLCBldGMpLiBJdCBjYW4n
dMKgDQogICAganVzdMKgY2hlY2sgYSBzaWduYXR1cmUuDQogMi4gTG9hZGluZyB0aGUgY29kZSBp
biBhIHByb3RlY3RlZCBlbnZpcm9ubWVudC4gSW4gdGhpcyBtb2RlbCB0aGXCoA0KICAgIChmb3LC
oGV4YW1wbGUpIG1vZHVsZSBzaWduYXR1cmUgd291bGQgYmUgY2hlY2tlZCwgdGhlbiB0aGUgY29k
ZcKgDQogICAgd291bGQgYmUgbG9hZGVkIGluIHNvbWUgc29ydCBvZiBwcm90ZWN0ZWQgZW52aXJv
bm1lbnQuIFRoaXMgd2F5wqANCiAgICBpbnRlZ3JpdHkgb2YgdGhlIGxvYWRlZCBjb2RlIHdvdWxk
IGJlIGVuZm9yY2VkLiBCdXQgZXh0cmFjdGluZ8KgDQogICAgbW9kdWxlIGxvYWRpbmcgaW50byBh
IHNlcGFyYXRlIGRvbWFpbiB3b3VsZCBiZSBkaWZmaWN1bHQuwqANCiAgICBWYXJpb3VzIHNjYXR0
ZXJlZMKgZmVhdHVyZXMgYWxsIGhhdmUgdGhlaXIgaGFuZHMgaW4gdGhlIGxvYWRpbmcuDQoNClNl
Y29uZGx5LCBJIHdvbmRlciBpZiBhbm90aGVyIHdheSB0byBsb29rIGF0IHRoZSBtZW1vcnkgcGFy
dHMgb2YgSEVLSQ0KY291bGQgYmUgdGhhdCB0aGlzIGlzIGEgd2F5IHRvIHByb3RlY3QgY2VydGFp
biBwYWdlIHRhYmxlIGJpdHMgZnJvbQ0Kc3RheSB3cml0ZXMuIFRoZSBSV1ggYml0cyBpbiB0aGUg
RVBUIGFyZSBub3QgZGlyZWN0bHkgd3JpdGFibGUsIHNvIG1vcmUNCnN0ZXBzIGFyZSBuZWVkZWQg
dG8gY2hhbmdlIHRoaW5ncyB0aGFuIGp1c3QgYSBzdHJheSB3cml0ZSAoaW5zdGVhZCB0aGUNCmhl
bHBlcnMgaW52b2x2ZWQgaW4gdGhlIG9wZXJhdGlvbnMgbmVlZCB0byBiZSBjYWxsZWQpLiBJZiB0
aGF0IGlzIGENCmZhaXIgd2F5IG9mIGxvb2tpbmcgYXQgaXQsIHRoZW4gSSB3b25kZXIgaG93IEhF
S0kgY29tcGFyZXMgdG8gYQ0Kc29sdXRpb24gbGlrZSB0aGlzIHNlY3VyaXR5LXdpc2U6DQpodHRw
czovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjEwODMwMjM1OTI3LjY0NDMtMS1yaWNrLnAuZWRn
ZWNvbWJlQGludGVsLmNvbS8NCg0KRnVuY3Rpb25hbC13aXNlIGl0IGhhZCB0aGUgYmVuZWZpdCBv
ZiB3b3JraW5nIG9uIGJhcmUgbWV0YWwgYW5kDQpzdXBwb3J0aW5nIHRoZSBub3JtYWwga2VybmVs
IGZlYXR1cmVzLg0K


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:06:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:06:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645206.1007184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8suv-0006WV-RD; Fri, 01 Dec 2023 02:06:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645206.1007184; Fri, 01 Dec 2023 02:06: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 1r8suv-0006WO-OL; Fri, 01 Dec 2023 02:06:09 +0000
Received: by outflank-mailman (input) for mailman id 645206;
 Fri, 01 Dec 2023 02:06: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=Z/b2=HM=epam.com=prvs=6699671c5f=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r8suu-0006Uc-Qh
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:06:09 +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 2d37939f-8fee-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 03:06:02 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B11r456022025; Fri, 1 Dec 2023 02:06:00 GMT
Received: from eur01-he1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2050.outbound.protection.outlook.com [104.47.0.50])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3upvgvsqyn-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 01 Dec 2023 02:06:00 +0000
Received: from AM0PR03MB3699.eurprd03.prod.outlook.com (2603:10a6:208:4b::31)
 by AS8PR03MB7815.eurprd03.prod.outlook.com (2603:10a6:20b:34d::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.24; Fri, 1 Dec
 2023 02:05:54 +0000
Received: from AM0PR03MB3699.eurprd03.prod.outlook.com
 ([fe80::8e16:90d9:e422:f352]) by AM0PR03MB3699.eurprd03.prod.outlook.com
 ([fe80::8e16:90d9:e422:f352%7]) with mapi id 15.20.7046.024; Fri, 1 Dec 2023
 02:05: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: 2d37939f-8fee-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NT9/ervIgbbWBoQ+UDrO5qhBigb+NNTmYPp8lXwwQqRLeEVzDQxvoLTT9I6lDzcOhmIfbUqi+g6ABdJAH7XTe9oTRVeKi+eNxQKnPteB7LTHImq38EiiDY4noacCxZkYeUjptrmP59fnN4scc5rEJPEZhcKM+gzr35EAzf3Am59aysajj32HiCvRGwBAbqaPtMp1CVzNiAGrvoNSIXUpvpy3Ot12fDiFkr9ep1+dwAhsf30O8V6Uye9UKGI86A07D48Mu3Kpk4JIpJfycYuxc9pQ3TlXg6ezuyFzV9ohHbfL8bzucKiQhgNMAlf4YlevoYCHftmbgp75z8F843pm5A==
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=lWnHXlpbtKjwFyW/OSvOOzWgr2OpALfOywvspc+l5uA=;
 b=GO/SQqQNK2mI98Lp3qXcTY1ruVGotN46zTs4lMP9kEOleybFoOOlmpQot7wcH03eHPytFaP0eoLXI+8DArZO15qN9OuYB0Zybmc3bl/WYz03cDyRw9OE2CaGi4zpybhkqqw4ILUZnLYJMFjKki4zeZqUuvd8HN8qTQeXmq098ZqhtkxlQ48NzBy5fr6sdijfnNHxpuEwS/u832PrbJASSqnJ8rkX008eGnVnINhnRwAVBjsFiYWSf4DkiQJipI0JLBdBqkDTh26F17GD/Q0VCrq1rAePRhWj6hcSlEnXZAfiMMG8vX8TzZwJqFAHb2SQ4k6BAtR4EOpbiZhhIhM7mA==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lWnHXlpbtKjwFyW/OSvOOzWgr2OpALfOywvspc+l5uA=;
 b=cJwVgOlFJ++LOQKe3zOyv+naD1472pR9PTeIoqXt+6scYJjJkNtboBCZ2tgymLtYkHa4PCGMHJMtBSLcdxBrZ+5PUH3pW/ZMK/R6cg49ADIHjzvwUQX1+TwQbrVkBNjHF0BOBeWxzLAgnRvedsIvTIKLtZBiPjrkOCw4o+UfQtJzifMv/bqRp+0bapB7VYwAlPsMPfrZSnfEsNDPemkZQctBAANgqN8NGi8cEa0EU1kMwsjR1pxadzoijypSQxSPn5UNmxu51r47JB8OorIacIX91Uv14ypQ5exV1L4Q4v5JhSbkhPNOiWQs9DXeeR9Ycl26HVgcJjvKi5ctiJtWfw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        Stewart
 Hildebrand <stewart.hildebrand@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Stewart
 Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v10 12/17] vpci/header: emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v10 12/17] vpci/header: emulate PCI_COMMAND register for
 guests
Thread-Index: AQHZ/Vi+sHqpo/XMzUSHL9PkKFM5oLCFEBkAgA7qLAA=
Date: Fri, 1 Dec 2023 02:05:54 +0000
Message-ID: <87zfyusmmg.fsf@epam.com>
References: <20231012220854.2736994-1-volodymyr_babchuk@epam.com>
 <20231012220854.2736994-13-volodymyr_babchuk@epam.com>
 <ZVy73iJ3E8nJHvgf@macbook.local>
In-Reply-To: <ZVy73iJ3E8nJHvgf@macbook.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: mu4e 1.10.7; emacs 29.1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB3699:EE_|AS8PR03MB7815:EE_
x-ms-office365-filtering-correlation-id: 0ce2415d-f5a2-4b9f-0baf-08dbf2120cd1
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;
x-microsoft-antispam-message-info: 
 cIKUmRCfSNbPR65XKwR0I6MqHZ2RshapLmlmQwwzyKqXukUdiuo4gaPX3OpVCBINXGlvbZCpqfZloNQPd6z+IsLoN3Fs/yGbbL3KHzaSS4XTMLScaseUrKG1xaH6LREoBwTvEJyh8LxnUCvI8rwDYieU43f2Zd04V3QWGdMLk2xYB9uHfRHbO38MMzaBo2Vj+40Bc94oXvs1wo3OGRNkglEJyZaQCPTUm2Yp6iEo58aj5v0/ZiKDTZCf9UnZ//wMoArWItFHJLhG0rjvfYLpUNzeboBtBcak0Pc2gxO6KlOfd/HYsqofknyGtR/CttjHqOI310KWadDoo7qzgT/MadwghWpSNG7C1jBZzcpg5soTn9C2bhvqiBr5r+xodQOFzKApgJYQ3ACwPjtOG9/npIj+ueZwGUlteoegv2ZXvle4u9MNHLPZ1fGUzRmlfmCfT6ukfnUnKAY58dHrZ/tkkJMLOXMxxGh8zKKlK3WDwmcU+BQJgaRJC3RCnhgzRUNpjenvJiUbNqkHwK2tQokOtUjwua+F7SXqK/xqh9E+s/HgoUR1FGXjcVSd9t7z6AMhv+g83JgecK1OmKYX+RB8YQxW8+y43Eg3lJPYnL9rHFVJeSIKRA0Mm7pxKV6Y4GKf
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB3699.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(136003)(376002)(346002)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(83380400001)(26005)(6486002)(478600001)(71200400001)(107886003)(2616005)(6506007)(55236004)(6512007)(110136005)(316002)(66946007)(64756008)(8676002)(66446008)(91956017)(66476007)(54906003)(66556008)(76116006)(8936002)(86362001)(122000001)(38100700002)(4326008)(5660300002)(36756003)(41300700001)(38070700009)(2906002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?cm0wTFVIazlOSDhiR0lScW1MU09mTTZoTFR3SWJJbERnWVorOWQ3M0Z6dDlZ?=
 =?utf-8?B?WTR1eXBybkwzZTRYc2xKMERYaDRjNHlJL0g5amxvM2s2d0M2YnhGclcwcEUx?=
 =?utf-8?B?QUFkNnM2SXVESVVBanQ1d1cyU25yRmd0Y0E0RmdqbVArMlIza25ZWlRwcVM4?=
 =?utf-8?B?ZjltelFrSnJoWnAxVk15VWxoQ2o5dGFEdkRVMStkZnVRK1ljZ3g5aTQxdE1z?=
 =?utf-8?B?K290aWJNT3JuTlUyMXBabTNYNXZyNVZEUG9OZDJRWDA3SHlhZG9QU0phUXRu?=
 =?utf-8?B?NHF6bWU5MVQwL0tFeU9WRS9SRjl5UXFGbU41T0JEMVFIam41NVZqNlBXV3di?=
 =?utf-8?B?UVFwRXQzeUdrRXNSQnd0aWZsb3cwUUpoVnNYUDhpNkoyU0V0TXpkZFRpSS84?=
 =?utf-8?B?dW0zcjFod0t0MUZSazY0Qk1QWnFoMXpNZFpKdjdKYzJWc00wVGwveU56N1RM?=
 =?utf-8?B?Z2ZMTVN5aVo4YTdXOXp5R1NYRFdZUld2cE5UV0p6UGNXTjFhNzc2MURoMHNp?=
 =?utf-8?B?bnc5UlVwUStaZ1hvanJTYzRkNHVTN3lRdUJzQm5qQk1YSEw3c1lwdDBpV211?=
 =?utf-8?B?d0lnK09rdUhGSCsyNzRRMmo1NkJGVFhkUkVJRnZlMUx1cnZyc1BsenJyZ0RQ?=
 =?utf-8?B?VERIdlNuR1NXLzVUQlY5Qk1hWXNJOHJmYm9oMHhsMlpNbUVXMWFETU1PT1p1?=
 =?utf-8?B?SlBtTUtuYTZCNEdtb0JLaDdMNW1nSzlZY2g0aklMNjFUSEloY0VzNTV6c3dF?=
 =?utf-8?B?cmxTN1Y5YnMyb2JxWW9XVldRZEZwZTVHUm1SZzUvaVYrRDVxdHhaUms1VTNo?=
 =?utf-8?B?YURrR0dmc2Fiek1JTGJoeWN1c25pc2dvd1BtRFVQSFYranhXZldHZ2Q3WEwx?=
 =?utf-8?B?OGVBVzExNE5BaFRGVmlFQXl0bTYvRWpRcC9ERVRYd3Roa2R5dWtHdENBUzU5?=
 =?utf-8?B?MUJYTitvbEJvZ3lPaHg2QytJeldPbkhTa2RvWW9VanZaVTdxenNRSFEzN2o2?=
 =?utf-8?B?YmFiSkFvUldIWDdHaHdxWUV4UzIzUHp2Zi85OWhXNU1GbXN3N3JIMU5Lb0I5?=
 =?utf-8?B?L1BCcnRUWlMybDcxdU04MGV2S2w1V2lQdHBENGdYTjNlR1hOUmYrVGFNVlF2?=
 =?utf-8?B?NmNIcHJyMmRmZVV4Ym5UYXQ0eXY4RTQxcmhWUGZBUVlHcm02Ri9uamE1Q1Vw?=
 =?utf-8?B?MXpkTU9QWXNIOW1lM1NYMC9CUTJHcC81bXRSMERoSjh0Q01BT014WjMwVVQ4?=
 =?utf-8?B?SGtVNktGZU53UjZycFkydG9SbDY1REJVQkxxNk9ubkhwSzFaa29Ud29MMXdG?=
 =?utf-8?B?allMcW9jQmpKc2xRWFZRVjVEVDhETVNHNjdnVFIwajlPY0VFZmNYcUx3WW56?=
 =?utf-8?B?T3BtM3RtbXNxK2JoWkRGS3BVczd6bDZHSER4dVZ2QVZhVWZSRTZmSVdCREZz?=
 =?utf-8?B?QVJpV1dHLzdnMk93TTMxNkZpKzdWWTlxd0FER2pzZVk3NmhWNTFWMWNIQkJk?=
 =?utf-8?B?VU8wNEtWQ20raXFMUzk1R3NrMU1VTUFqUEs3RXpFZzNZSm5hL01jRGUxdnZk?=
 =?utf-8?B?bDNEMWJPTURCWFFnekZqZUNtNVpXRHRxQUJXdUJGemt3dWZRcHpqSi93QjJt?=
 =?utf-8?B?V3hBNllpNDJQV0NkemZPQS94N3QraUFOK0QyQ0lXcHU1R1VGandVSkN0MC9a?=
 =?utf-8?B?Nm53bU9iZ3BLWnc4WVcvenNCNUEzMVpVdCtPOG1vdWhQWEFWZ2srekRNOFdS?=
 =?utf-8?B?N3lQakprLzZRSC9raVNHdUk1cmtPRmExVmtzMUVIcThvYmlQRGF0a1Njcm1z?=
 =?utf-8?B?emo1Wm1mRGMrMVIySVoyNFJabzluZ0JscVVRcExSU291a3dDTzc0eGE1SlZu?=
 =?utf-8?B?bm1ta284OGloRThyYkVNN0hxVDZKMjh3dm9TSjZZdEpmYTN1Qlgzd0xzVGdD?=
 =?utf-8?B?MmxIbW1LK0toM0FrVGFMRzB0ajlhSk9FUitvK2ptY20yTUtyMVltYmdUejA2?=
 =?utf-8?B?VnYyVEZabFBaUVdnSGNobHpuRzBsY2dsUmEzL3habDJUVnJpOXZpYldlSENV?=
 =?utf-8?B?SE9qYTJNUUxFL2huRHNKTXdFSEthTERaSkR1Sm9jeEU5MVlPV280K215L09o?=
 =?utf-8?B?N0NpamNXQVNDVURYZGVnWE1KUjBWWTMvOU5Bd05hWGJOV3JKeEVLZ0FvTTRP?=
 =?utf-8?B?bEE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <ECB6F52FF2AFF64BB944F499A2E21822@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB3699.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ce2415d-f5a2-4b9f-0baf-08dbf2120cd1
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2023 02:05:54.0965
 (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: aOyq7BEUQE+iR7ZVOAxwKSrbqNG/aMmzcKCJum0djyoHyr1/+i2CoVmfGk1t7HQPiWDkDYv9JyvaV7lyJIkYNnd3DuICvjBJgzFiijiADlg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7815
X-Proofpoint-GUID: 6uJzVPlU5jvfGeXzemS8s44cbGRYn2ve
X-Proofpoint-ORIG-GUID: 6uJzVPlU5jvfGeXzemS8s44cbGRYn2ve
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-11-30_25,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=758
 lowpriorityscore=0 impostorscore=0 suspectscore=0 spamscore=0
 priorityscore=1501 bulkscore=0 clxscore=1015 phishscore=0 mlxscore=0
 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2311060000 definitions=main-2312010011

DQpIaSBSb2dlciwgU3Rld2FydCwNCg0KUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp
eC5jb20+IHdyaXRlczoNCg0KPiBPbiBUaHUsIE9jdCAxMiwgMjAyMyBhdCAxMDowOToxOFBNICsw
MDAwLCBWb2xvZHlteXIgQmFiY2h1ayB3cm90ZToNCj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NCj4+IA0KPj4gWGVuIGFu
ZC9vciBEb20wIG1heSBoYXZlIHB1dCB2YWx1ZXMgaW4gUENJX0NPTU1BTkQgd2hpY2ggdGhleSBl
eHBlY3QNCj4+IHRvIHJlbWFpbiB1bmFsdGVyZWQuIFBDSV9DT01NQU5EX1NFUlIgYml0IGlzIGEg
Z29vZCBleGFtcGxlOiB3aGlsZSB0aGUNCj4+IGd1ZXN0J3MgdmlldyBvZiB0aGlzIHdpbGwgd2Fu
dCB0byBiZSB6ZXJvIGluaXRpYWxseSwgdGhlIGhvc3QgaGF2aW5nIHNldA0KPj4gaXQgdG8gMSBt
YXkgbm90IGVhc2lseSBiZSBvdmVyd3JpdHRlbiB3aXRoIDAsIG9yIGVsc2Ugd2UnZCBlZmZlY3Rp
dmVseQ0KPj4gaW1wbHkgZ2l2aW5nIHRoZSBndWVzdCBjb250cm9sIG9mIHRoZSBiaXQuIFRodXMs
IFBDSV9DT01NQU5EIHJlZ2lzdGVyIG5lZWRzDQo+PiBwcm9wZXIgZW11bGF0aW9uIGluIG9yZGVy
IHRvIGhvbm9yIGhvc3QncyBzZXR0aW5ncy4NCj4+IA0KPj4gQWNjb3JkaW5nIHRvICJQQ0kgTE9D
QUwgQlVTIFNQRUNJRklDQVRJT04sIFJFVi4gMy4wIiwgc2VjdGlvbiAiNi4yLjINCj4+IERldmlj
ZSBDb250cm9sIiB0aGUgcmVzZXQgc3RhdGUgb2YgdGhlIGNvbW1hbmQgcmVnaXN0ZXIgaXMgdHlw
aWNhbGx5IDAsDQo+PiBzbyB3aGVuIGFzc2lnbmluZyBhIFBDSSBkZXZpY2UgdXNlIDAgYXMgdGhl
IGluaXRpYWwgc3RhdGUgZm9yIHRoZSBndWVzdCdzIHZpZXcNCj4+IG9mIHRoZSBjb21tYW5kIHJl
Z2lzdGVyLg0KPj4gDQo+PiBIZXJlIGlzIHRoZSBmdWxsIGxpc3Qgb2YgY29tbWFuZCByZWdpc3Rl
ciBiaXRzIHdpdGggbm90ZXMgYWJvdXQNCj4+IGVtdWxhdGlvbiwgYWxvbmcgd2l0aCBRRU1VIGJl
aGF2aW9yIGluIHRoZSBzYW1lIHNpdHVhdGlvbjoNCj4+IA0KPj4gUENJX0NPTU1BTkRfSU8gLSBR
RU1VIGRvZXMgbm90IGFsbG93IGEgZ3Vlc3QgdG8gY2hhbmdlIHZhbHVlIG9mIHRoaXMgYml0DQo+
PiBpbiByZWFsIGRldmljZS4gSW5zdGVhZCBpdCBpcyBhbHdheXMgc2V0IHRvIDEuIEEgZ3Vlc3Qg
Y2FuIHdyaXRlIHRvIHRoaXMNCj4+IHJlZ2lzdGVyLCBidXQgd3JpdGVzIGFyZSBpZ25vcmVkLg0K
Pj4gDQo+PiBQQ0lfQ09NTUFORF9NRU1PUlkgLSBRRU1VIGJlaGF2ZXMgZXhhY3RseSBhcyB3aXRo
IFBDSV9DT01NQU5EX0lPLiBJbg0KPj4gWGVuIGNhc2UsIHdlIGhhbmRsZSB3cml0ZXMgdG8gdGhp
cyBiaXQgYnkgbWFwcGluZy91bm1hcHBpbmcgQkFSDQo+PiByZWdpb25zLiBGb3IgZGV2aWNlcyBh
c3NpZ25lZCB0byBEb21VcywgbWVtb3J5IGRlY29kaW5nIHdpbGwgYmUNCj4+IGRpc2FibGVkIGFu
ZCB0aGUgaW5pdGlhbGl6YXRpb24uDQo+PiANCj4+IFBDSV9DT01NQU5EX01BU1RFUiAtIEFsbG93
IGd1ZXN0IHRvIGNvbnRyb2wgaXQuIFFFTVUgcGFzc2VzIHRocm91Z2gNCj4+IHdyaXRlcyB0byB0
aGlzIGJpdC4NCj4+IA0KPj4gUENJX0NPTU1BTkRfU1BFQ0lBTCAtIEd1ZXN0IGNhbiBnZW5lcmF0
ZSBzcGVjaWFsIGN5Y2xlcyBvbmx5IGlmIGl0IGhhcw0KPj4gYWNjZXNzIHRvIGhvc3QgYnJpZGdl
IHRoYXQgc3VwcG9ydHMgc29mdHdhcmUgZ2VuZXJhdGlvbiBvZiBzcGVjaWFsDQo+PiBjeWNsZXMu
IEluIG91ciBjYXNlIGd1ZXN0IGhhcyBubyBhY2Nlc3MgdG8gaG9zdCBicmlkZ2VzIGF0IGFsbC4g
VmFsdWUNCj4+IGFmdGVyIHJlc2V0IGlzIDAuIFFFTVUgcGFzc2VzIHRocm91Z2ggd3JpdGVzIG9m
IHRoaXMgYml0LCB3ZSB3aWxsIGRvDQo+PiB0aGUgc2FtZS4NCj4+IA0KPj4gUENJX0NPTU1BTkRf
SU5WQUxJREFURSAtIEFsbG93cyAiTWVtb3J5IFdyaXRlIGFuZCBJbnZhbGlkYXRlIiBjb21tYW5k
cw0KPj4gdG8gYmUgZ2VuZXJhdGVkLiBJdCByZXF1aXJlcyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRp
b24gdmlhIENhY2hlbGluZQ0KPj4gU2l6ZSByZWdpc3Rlci4gV2UgYXJlIG5vdCBlbXVsYXRpbmcg
dGhpcyByZWdpc3RlciByaWdodCBub3cgYW5kIHdlDQo+PiBjYW4ndCBleHBlY3QgZ3Vlc3QgdG8g
cHJvcGVybHkgY29uZmlndXJlIGl0LiBRRU1VICJlbXVsYXRlcyIgYWNjZXNzIHRvDQo+PiBDYWNo
bGluZSBTaXplIHJlZ2lzdGVyIGJ5IGlnbm9yaW5nIGFsbCB3cml0ZXMgdG8gaXQuIFFFTVUgcGFz
c2VzIHRocm91Z2gNCj4+IHdyaXRlcyBvZiBQQ0lfQ09NTUFORF9JTlZBTElEQVRFIGJpdCwgd2Ug
d2lsbCBkbyB0aGUgc2FtZS4NCj4+IA0KPj4gUENJX0NPTU1BTkRfVkdBX1BBTEVUVEUgLSBFbmFi
bGUgVkdBIHBhbGV0dGUgc25vb3BpbmcuIFFFTVUgcGFzc2VzDQo+PiB0aHJvdWdoIHdyaXRlcyBv
ZiB0aGlzIGJpdCwgd2Ugd2lsbCBkbyB0aGUgc2FtZS4NCj4+IA0KPj4gUENJX0NPTU1BTkRfUEFS
SVRZIC0gQ29udHJvbHMgaG93IGRldmljZSByZXNwb25zZSB0byBwYXJpdHkNCj4+IGVycm9ycy4g
UUVNVSBpZ25vcmVzIHdyaXRlcyB0byB0aGlzIGJpdCwgd2Ugd2lsbCBkbyB0aGUgc2FtZS4NCj4+
IA0KPj4gUENJX0NPTU1BTkRfV0FJVCAtIFJlc2VydmVkLiBTaG91bGQgYmUgMCwgYnV0IFFFTVUg
cGFzc2VzDQo+PiB0aHJvdWdoIHdyaXRlcyBvZiB0aGlzIGJpdCwgc28gd2Ugd2lsbCBkbyB0aGUg
c2FtZS4NCj4+IA0KPj4gUENJX0NPTU1BTkRfU0VSUiAtIENvbnRyb2xzIGlmIGRldmljZSBjYW4g
YXNzZXJ0IFNFUlIuIFFFTVUgaWdub3Jlcw0KPj4gd3JpdGVzIHRvIHRoaXMgYml0LCB3ZSB3aWxs
IGRvIHRoZSBzYW1lLg0KPj4gDQo+PiBQQ0lfQ09NTUFORF9GQVNUX0JBQ0sgLSBPcHRpb25hbCBi
aXQgdGhhdCBhbGxvd3MgZmFzdCBiYWNrLXRvLWJhY2sNCj4+IHRyYW5zYWN0aW9ucy4gSXQgaXMg
Y29uZmlndXJlZCBieSBmaXJtd2FyZSwgc28gd2UgZG9uJ3Qgd2FudCBndWVzdCB0bw0KPj4gY29u
dHJvbCBpdC4gUUVNVSBpZ25vcmVzIHdyaXRlcyB0byB0aGlzIGJpdCwgd2Ugd2lsbCBkbyB0aGUg
c2FtZS4NCj4+IA0KPj4gUENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFIC0gRGlzYWJsZXMgSU5UeCBz
aWduYWxzLiBJZiBNU0koWCkgaXMNCj4+IGVuYWJsZWQsIGRldmljZSBpcyBwcm9oaWJpdGVkIGZy
b20gYXNzZXJ0aW5nIElOVHggYXMgcGVyDQo+PiBzcGVjaWZpY2F0aW9uLiBWYWx1ZSBhZnRlciBy
ZXNldCBpcyAwLiBJbiBRRU1VIGNhc2UsIGl0IGNoZWNrcyBvZiBJTlR4DQo+PiB3YXMgbWFwcGVk
IGZvciBhIGRldmljZS4gSWYgaXQgaXMgbm90LCB0aGVuIGd1ZXN0IGNhbid0IGNvbnRyb2wNCj4+
IFBDSV9DT01NQU5EX0lOVFhfRElTQUJMRSBiaXQuIEluIG91ciBjYXNlLCB3ZSBwcm9oaWJpdCBh
IGd1ZXN0IHRvDQo+PiBjaGFuZ2UgdmFsdWUgb2YgdGhpcyBiaXQgaWYgTVNJKFgpIGlzIGVuYWJs
ZWQuDQo+DQo+IEZXSVcsIGJpdHMgMTEtMTUgYXJlIFJzdmRQLCBzbyB3ZSB3aWxsIG5lZWQgdG8g
YWRkIHN1cHBvcnQgZm9yIHRoZW0NCj4gYWZ0ZXIgdGhlIHNlcmllcyBmcm9tIFN0ZXdhcnQgdGhh
dCBhZGRzIHN1cHBvcnQgZm9yIHJlZ2lzdGVyIG1hc2tzIGlzDQo+IGFjY2VwdGVkLg0KDQpTdGV3
YXJ0J3Mgc2VyaWVzIGltcGxlbWVudCBtdWNoIGJldHRlciByZWdpc3RlciBoYW5kbGluZyB0aGFu
IHRoaXMNCnBhdGNoLiBXaGF0IGFib3V0IGRyb3BwaW5nIHRoaXMgY2hhbmdlIGF0IGFsbCBpbiBm
YXZvciBvZiBTdGV3YXJ0J3MNCmltcGxlbWVudGF0aW9uPyBJJ2xsIGJlIDEwMCUgb2theSB3aXRo
IHRoaXMuDQoNClsuLi5dDQoNCi0tIA0KV0JSLCBWb2xvZHlteXI=


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:25:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:25:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645209.1007194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tDZ-0003i7-C0; Fri, 01 Dec 2023 02:25:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645209.1007194; Fri, 01 Dec 2023 02: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 1r8tDZ-0003i0-90; Fri, 01 Dec 2023 02:25:25 +0000
Received: by outflank-mailman (input) for mailman id 645209;
 Fri, 01 Dec 2023 02:25:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tDY-0003hu-KJ
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:25: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 e0176442-8ff0-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 03:25:23 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3F5E960CEB;
 Fri,  1 Dec 2023 02:25:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69787C433C8;
 Fri,  1 Dec 2023 02:25: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: e0176442-8ff0-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701397519;
	bh=TYwVLYuzrgfGAd/n9Fx83X+L5TN+T7IvkFJG6UNoud4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=YduDuE1ufirzfIXDmH5QzENWZoALSXaUVBushJuHReDirHiV6uDKZ/lDtfMnWXgBz
	 kG5tv9ZE7Ct+sMS4Ggk+/b1d6otKyV5/HYO7fpVHTyjFve+3W/0iu/Y7TY20s+rjND
	 1fWmHNJWjLkQY0tD5QUYtnLzLKbFDucxxVibLH9h20nUvMi9hKSf0pP+XlpEqNheyq
	 88R8R76hyYV8m8bEVXQmuXXJiozs39e8fQCb1Kv2eN7SXO7nJvo6C5iMf9XyA3NATT
	 oFYThMY2m2CXfg0rOq8w2mdZI5Qn6pKqcktE74Iriw72sMohHRJeHAz3IgCS2+ypuT
	 X7sk+Nx9c4T2Q==
Date: Thu, 30 Nov 2023 18:25:17 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH] docs/misra: fix a typo in rules.rst
In-Reply-To: <d385998bd7f45c9753db504f8b89db5ed8bc90ce.1701364429.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301825110.110490@ubuntu-linux-20-04-desktop>
References: <d385998bd7f45c9753db504f8b89db5ed8bc90ce.1701364429.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 Thu, 30 Nov 2023, Nicola Vetrini wrote:
> No functional changes.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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

> ---
>  docs/misra/rules.rst | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 53dab0070c7b..75921b9a3463 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -531,7 +531,7 @@ maintainers if you want to suggest a change.
>         the future or with another compiler.  For these reasons we discourage
>         the introduction of new reserved identifiers in Xen, and we see it as
>         positive the reduction of reserved identifiers. At the same time,
> -       certain identifiers starting with wo underscores are also commonly used
> +       certain identifiers starting with two underscores are also commonly used
>         in Linux (e.g. __set_bit) and we don't think it would be an improvement
>         to rename them.
>  
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:28:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:28:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645214.1007203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tGu-00065G-RR; Fri, 01 Dec 2023 02:28:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645214.1007203; Fri, 01 Dec 2023 02: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 1r8tGu-000659-Ou; Fri, 01 Dec 2023 02:28:52 +0000
Received: by outflank-mailman (input) for mailman id 645214;
 Fri, 01 Dec 2023 02: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tGt-000653-7I
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:28:51 +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 5bb5ed81-8ff1-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 03:28:49 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id F01EA61FDB;
 Fri,  1 Dec 2023 02:28:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2BF2BC433C8;
 Fri,  1 Dec 2023 02:28: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: 5bb5ed81-8ff1-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701397727;
	bh=6yxltZlksu/i8YEsXStKfGz952Zfr4VOImTP5mc35KU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=FHn4D52+WwIkYv4jEP7/OOEjGrk4vijuQQGkjIlcLpafboMkj4KwNz1i2DP8djZDV
	 gSZ2eF6tjRjclj1BiqF15Ib8iEMZWMHL1IMKmO+vlmuwQsLyAZzaCJ3ddLDYbLl0UM
	 +/ys8jp3Nx1jpSg0hZFmwqaVUVHQpNMOCMFRWjEGnTUFcwu6RqmJVExm+bt6r7QokG
	 TbEmyyzvzmyctNCSoD5cDauw3aGLmmrWoxtJiYygQ8l7xBBe7uthSm76Cwud8K3kFs
	 ET4v/9wiDXwKuooGowRow0x6vT4I0qSqpEaul7PXaPtlovlnuPjaD01fRVo9rIzwLb
	 hyODvRh1whc2A==
Date: Thu, 30 Nov 2023 18:28:45 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 05/11] xen/domain: address violations of MISRA C:2012
 Rule 8.2
In-Reply-To: <d38b5f555c622a23b2433793e70156efe459a811.1700832962.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301828390.110490@ubuntu-linux-20-04-desktop>
References: <cover.1700832962.git.federico.serafini@bugseng.com> <d38b5f555c622a23b2433793e70156efe459a811.1700832962.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 Fri, 24 Nov 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:30:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:30:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645217.1007213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tHz-0006dA-6x; Fri, 01 Dec 2023 02:29:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645217.1007213; Fri, 01 Dec 2023 02:29: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 1r8tHz-0006d3-48; Fri, 01 Dec 2023 02:29:59 +0000
Received: by outflank-mailman (input) for mailman id 645217;
 Fri, 01 Dec 2023 02: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tHx-0006co-6Q
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:29:57 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 838dccb7-8ff1-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 03:29:55 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id B95ABB84696;
 Fri,  1 Dec 2023 02:29:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F1E3DC433C9;
 Fri,  1 Dec 2023 02:29: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: 838dccb7-8ff1-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701397794;
	bh=6yxltZlksu/i8YEsXStKfGz952Zfr4VOImTP5mc35KU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=DF8yR9oY7oO4GiTP6XysRgXRgS1YcF8MC9G4Hu8iFz/T1vLUs6WjSn6qoUZKjXsAz
	 Kev464+NHVrw6xBc62l5oEdhTTsPYdQ2J6Lx2ok/0jJ7j/O5WjkiH19NN0sVcqEdEy
	 872sOo/e4frNMrG3Tjd/nIV9LSbB9wCsjptKSQPRFm8ZjlDhGGFp/BzkpL5Zb6Kcmm
	 c0HKCFryIMLKBXRPpbR9FipGhgsSXTUNwGYN3MeuwW9dnOLAy6tdyRBDnMsIELMzM5
	 Gx3yOugoOyoOwn+9Ga84/W/grJX1yWbPrArJRaR1jHgfgmlUCHP/tUiweD/Wifs5vq
	 sCsYQxMSitX8Q==
Date: Thu, 30 Nov 2023 18:29:51 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 06/11] xen/notifier: address violations of MISRA
 C:2012 Rule 8.2
In-Reply-To: <cdd613a0570b9376eee058e399e4e0cc08ed7df2.1700832962.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301829440.110490@ubuntu-linux-20-04-desktop>
References: <cover.1700832962.git.federico.serafini@bugseng.com> <cdd613a0570b9376eee058e399e4e0cc08ed7df2.1700832962.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 Fri, 24 Nov 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:30:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:30:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645219.1007223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tId-0007y0-GY; Fri, 01 Dec 2023 02:30:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645219.1007223; Fri, 01 Dec 2023 02: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 1r8tId-0007xt-Da; Fri, 01 Dec 2023 02:30:39 +0000
Received: by outflank-mailman (input) for mailman id 645219;
 Fri, 01 Dec 2023 02:30: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tId-0007xf-10
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:30: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 9bd9f496-8ff1-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 03:30:37 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 9588CCE2572;
 Fri,  1 Dec 2023 02:30:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD33FC433C7;
 Fri,  1 Dec 2023 02:30: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: 9bd9f496-8ff1-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701397830;
	bh=x8mxYECTLAVxDVNbxafphEwTpQfKejz4k9Fd/a+Mdm4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=EoQ3+7RSbKhXrnxw0SRKXnAhdL8NCGMAuJcxdcNy69dNGgvmb8IlaH/yH0lPr5vZd
	 js6qC1iorVyI9lRUgOkVjUyXRgjUP47VoM5YSeZPTeI7ob2eb6YEsONFevdBxoRWYa
	 GUah78qYME3QwkdNb0VYwrkgNpAxojdTvkP4rNC703ZvJojVMvj4Vr4i4j9Gr5BqX0
	 p1pAlymmCwBdDU9hu9PO647VGSo/FLxk0ANphuPg3vqr8C6Mwnu2BwgK+XsUeNU1gJ
	 0OHu/653lDbrDFHd+V/B7JDDHbYvTqLrbiYfJ6GF13O3ZcgOcYjtAmWFqB00HhsDVT
	 UVf+fB5jtl16g==
Date: Thu, 30 Nov 2023 18:30:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 08/11] xen/kernel: address a violation of MISRA C:2012
 Rule 8.2
In-Reply-To: <2f551139ef5a26b203c6c089947ca4bc5bd29d5a.1700832962.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301830230.110490@ubuntu-linux-20-04-desktop>
References: <cover.1700832962.git.federico.serafini@bugseng.com> <2f551139ef5a26b203c6c089947ca4bc5bd29d5a.1700832962.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 Fri, 24 Nov 2023, Federico Serafini wrote:
> Add missing parameter name. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:33:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645225.1007234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tKz-0000Fi-2V; Fri, 01 Dec 2023 02:33:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645225.1007234; Fri, 01 Dec 2023 02: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 1r8tKy-0000Fb-VA; Fri, 01 Dec 2023 02:33:04 +0000
Received: by outflank-mailman (input) for mailman id 645225;
 Fri, 01 Dec 2023 02:33:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tKy-0000FV-20
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:33:04 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f37cba53-8ff1-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 03:33:03 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id A981CB842F8;
 Fri,  1 Dec 2023 02:33:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30575C433C9;
 Fri,  1 Dec 2023 02:33: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: f37cba53-8ff1-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701397981;
	bh=x8mxYECTLAVxDVNbxafphEwTpQfKejz4k9Fd/a+Mdm4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MkMADVuQ3cABT6fOko323wyPBVJsnnc2WLZBVOncj6J138i18a/7DqPNSDrsyx+LN
	 RY7mGXDjTCr8R+ZLBQCX0dp7URNFpNDfDyiBm9SJNdPS2lU0aR9EMb36Y6Uho+ZqBC
	 LO5aj1QZj/80DCWCMVTASd8BoICuoZgeyc37qFJZRL5Ur2KiBxccQ90ON+J1+JBhKI
	 DTQlOuPhWMMLadm84/WglyIao4y4T2mLbPaclMKKSwevhSYlVGH/VtbY53FEm7dvzF
	 cyMC4fYCu5r37vxwdyUVDe+/oF2n20zEEp1vVXPd4mFgJdrSzU8E3Kh6vN0luPPCYc
	 EocZWycr0DlnQ==
Date: Thu, 30 Nov 2023 18:32:58 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 09/11] xen/param: address a violation of MISRA C:2012
 Rule 8.2
In-Reply-To: <2ef34f3beec85dac126a89c6da1bbbdfaa00727d.1700832962.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301832540.110490@ubuntu-linux-20-04-desktop>
References: <cover.1700832962.git.federico.serafini@bugseng.com> <2ef34f3beec85dac126a89c6da1bbbdfaa00727d.1700832962.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 Fri, 24 Nov 2023, Federico Serafini wrote:
> Add missing parameter name. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:33:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645228.1007244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tLY-0000lp-AZ; Fri, 01 Dec 2023 02:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645228.1007244; Fri, 01 Dec 2023 02:33:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tLY-0000li-7v; Fri, 01 Dec 2023 02:33:40 +0000
Received: by outflank-mailman (input) for mailman id 645228;
 Fri, 01 Dec 2023 02:33:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tLX-0000fa-9e
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:33:39 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0828dedb-8ff2-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 03:33:37 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 749CAB842F8;
 Fri,  1 Dec 2023 02:33:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C172CC433C7;
 Fri,  1 Dec 2023 02:33: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: 0828dedb-8ff2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701398016;
	bh=x8mxYECTLAVxDVNbxafphEwTpQfKejz4k9Fd/a+Mdm4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=AFCUCeLK7jVhuSbmpAFZUM4bBlKiCtlos/eyhwwOr1zn07IF3dIvflkP2cLl9NOm5
	 24jXGCty1vBg847HOk4+fE4OSvBS+SzGHRvD4rMNiHhNCBaynG8YBNy1Zx950hsZIq
	 ckYZfPl4r+eOzhRWKLYQwZ7X6bjHd0rcjoH2+LrtozZilU2H6xs/etTGtWd467NnkB
	 3almKksiHidp1xwAvn+LIAj76ba2y5Ld6HeQOMRdYKptio5N2ddcyErOjb1oe/Yp2+
	 IGr7n495dGjjQYx7wRohqH/A3vugcxfqvqK2a4m/IEuABDjY/V+eqyvwI8SKhfY32z
	 yJnv449ZWeAmA==
Date: Thu, 30 Nov 2023 18:33:34 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 10/11] xen/perfc: address a violation of MISRA C:2012
 Rule 8.2
In-Reply-To: <642bcf2ea2147c797d102a12d51b7eee90f0e5a6.1700832962.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301833290.110490@ubuntu-linux-20-04-desktop>
References: <cover.1700832962.git.federico.serafini@bugseng.com> <642bcf2ea2147c797d102a12d51b7eee90f0e5a6.1700832962.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 Fri, 24 Nov 2023, Federico Serafini wrote:
> Add missing parameter name. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:34:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:34:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645230.1007253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tMC-0001JJ-Ik; Fri, 01 Dec 2023 02:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645230.1007253; Fri, 01 Dec 2023 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 1r8tMC-0001JC-G9; Fri, 01 Dec 2023 02:34:20 +0000
Received: by outflank-mailman (input) for mailman id 645230;
 Fri, 01 Dec 2023 02:34: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tMA-0001B4-Uq
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:34:18 +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 1f3c914f-8ff2-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 03:34:18 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 7A83CCE23DB;
 Fri,  1 Dec 2023 02:34:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AB501C433C8;
 Fri,  1 Dec 2023 02:34:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f3c914f-8ff2-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701398054;
	bh=x8mxYECTLAVxDVNbxafphEwTpQfKejz4k9Fd/a+Mdm4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=aHSwDkSTvV/XrRHB66ltBK4VFVBf40ZN+Bw2r/JWinOt6EgB8VcxiG7FxwIzDOpDZ
	 VAy2IbSmStA8um7bpj3khjJ+s0q19EUROlFpxE9Iq7iGdbrgGdNv6i0raskG1isBva
	 1RCs0UFP2NB9Z966H0GM2ElxsKLB/dLVZ3KNl/QhCL9OK71M+gE6x9lMdEnWezrVTi
	 1gCDpwhnYVQPDbPKQpQ+HhOdfFt4jlBV/mwXJW5jxXSPT4V9MCk+pQ9a3ihPmrqy0f
	 BxUpAdoQUo7FWkj5q3pcx0LgF1rO5rZmWLPWct7yzexr2InfXQW3cj1zatnuOJ7tlJ
	 umlhH+fo/Gtrg==
Date: Thu, 30 Nov 2023 18:34:12 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 11/11] xen/serial: address a violation of MISRA C:2012
 Rule 8.2
In-Reply-To: <4f831a5441ac699b50783fb0559daabaa37b8e50.1700832962.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301834040.110490@ubuntu-linux-20-04-desktop>
References: <cover.1700832962.git.federico.serafini@bugseng.com> <4f831a5441ac699b50783fb0559daabaa37b8e50.1700832962.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 Fri, 24 Nov 2023, Federico Serafini wrote:
> Add missing parameter name. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:42:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645235.1007263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tUN-0005CH-Bn; Fri, 01 Dec 2023 02:42:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645235.1007263; Fri, 01 Dec 2023 02:42:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tUN-0005CA-93; Fri, 01 Dec 2023 02:42:47 +0000
Received: by outflank-mailman (input) for mailman id 645235;
 Fri, 01 Dec 2023 02:42: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tUL-0005C4-PX
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:42:45 +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 4d6e5268-8ff3-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 03:42:44 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 8E0AFCE25A0;
 Fri,  1 Dec 2023 02:42:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9BF5BC433CA;
 Fri,  1 Dec 2023 02:42:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d6e5268-8ff3-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701398558;
	bh=oOHZxq26umuH3iITtqwrKlaIKUSmIqlY+mUFKgbrhgI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ZyOXCBwiSfD6E9R/yOU4LuMZH5ma4oNUTYTHrr7k05oE/q3DFg5gMMGhZ1RO5GJcp
	 eNYlDpZ0O5IEu1i7wgSSiE5e25YxDrg1qUML2Juc20eS3wlrM+8Q8cNP2kWGSbmjrM
	 kM+tYPf8ehnd1kctdqia5pZhVvOe2PleuoqR6CnrA7w9EN68wRmQtAhMNMHNbAPy6H
	 SskWx1qY8i08mgc9keQK3lxkQ79ODviwFejc6zNyAi6lBnpXS3wwRlEKXILbVBi5wO
	 nNnfSbp/F6RR+N4TPl3iyLbphADe0ZdJtlusIlTPOcfMW9V4o+BUiZRwek5pxSsidA
	 KF1Hp+jLEwyGA==
Date: Thu, 30 Nov 2023 18:42:36 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, bertrand.marquis@arm.com, julien@xen.org, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [XEN PATCH 1/7] xen/arm: mmu: add headers for missing
 declarations
In-Reply-To: <7032dd53fa025ad19ce53171b80e51db9d332b83.1701270983.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301842300.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com> <7032dd53fa025ad19ce53171b80e51db9d332b83.1701270983.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, 29 Nov 2023, Nicola Vetrini wrote:
> The definitions needing the inclusion of asm/setup.h are
> boot_{first,second,third}(_id)?, whereas vmap.h is needed by arch_vmap_virt_end.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:44:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:44:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645237.1007273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tWI-0005kA-MN; Fri, 01 Dec 2023 02:44:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645237.1007273; Fri, 01 Dec 2023 02:44: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 1r8tWI-0005k3-Jo; Fri, 01 Dec 2023 02:44:46 +0000
Received: by outflank-mailman (input) for mailman id 645237;
 Fri, 01 Dec 2023 02: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tWI-0005jx-4l
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:44:46 +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 94547ca9-8ff3-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 03:44:44 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 6E5A7CE259E;
 Fri,  1 Dec 2023 02:44:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87B7BC433C7;
 Fri,  1 Dec 2023 02:44: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: 94547ca9-8ff3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701398680;
	bh=ngxf8el7WqYYNBf+o/FjN/IvNJ6ozlpE/VKrhCgLwM0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Cv52c7H62CLtFfBtzUp9QgNYf7K4pmFEx0q5IVkCzujDkSpYmxuDxm4bMrSxFCqO7
	 V/Bd/bmXLVjERLvx90VM/v+A1wFF9NT8guf9NM1D3K6DYZ/V86mKLnjlcyd6ybrzWv
	 C8mruptUalTA2c/1J6vTCO0PvfVNdhKb/0djzGoH+Dqx1w836XPBYHCEA7rPlE5bfC
	 tWREEEqTWtKjX6IG2Emx9S4qYHv2EeftrHGFwPS25I4TBdyM1pkBYdn8+lqNIN/tD1
	 C2XVDCeitBkVq5mEoQfyolkbn2bLweHAC+yvMgigg0IDr/znq8yaVReGGTZ/WslztH
	 Xse+wooSmDCeA==
Date: Thu, 30 Nov 2023 18:44:37 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, bertrand.marquis@arm.com, julien@xen.org, 
    Paul Durrant <paul@xen.org>, Wei Liu <wl@xen.org>, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [XEN PATCH 4/7] x86/viridian: make build_assertions static
In-Reply-To: <1fc043cb040a24515e2355a5a908c42f20a39418.1701270983.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301843290.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com> <1fc043cb040a24515e2355a5a908c42f20a39418.1701270983.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, 29 Nov 2023, Nicola Vetrini wrote:
> This is consistent with other instances of the same function
> and also resolves a violation of MISRA C:2012 Rule 8.4.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>


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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:48:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:48:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645241.1007283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tZT-0007n1-41; Fri, 01 Dec 2023 02:48:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645241.1007283; Fri, 01 Dec 2023 02:48:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tZT-0007mu-1P; Fri, 01 Dec 2023 02:48:03 +0000
Received: by outflank-mailman (input) for mailman id 645241;
 Fri, 01 Dec 2023 02: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tZR-0007mm-L2
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:48:01 +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 0952d427-8ff4-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 03:47:59 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id DA8D460CEB;
 Fri,  1 Dec 2023 02:47:57 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 84E9EC433C7;
 Fri,  1 Dec 2023 02:47: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: 0952d427-8ff4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701398877;
	bh=g4p11Ro4acHQFbeiu4ECYRDfuq+IlT0D/eCjHEd5kXE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=t3ElGgkyHHSeeqA9TzyHnwdPRpyRZsVuE85vQzz4ypDzaeV/Cg6NTtbVtjz4OWRsw
	 ulgQJMFAdi5RbV2S3u4NQYyZxk7XCDa087eAKHIoMexbp0euccOxRHW4OfuojL8bJ6
	 jTw1iE1s4TGv3RiLBh+AGw5ks4PmrCccCMe9szEOfRXenz1s9KrWH3Q2GvkTyQWJyw
	 qePLfFzbeC+9SSQ5Ra4E2edSdvAi1V0GbWp4R06zWi9SuGzCxVcMFXOEnQwVyZ5lAN
	 uam+dVI42dwamexACYG+KasHhlykEE3i1GMMa9U0m0FTOMSZtNxff+xciPsdfPvZpB
	 BoK10OZRFmYyg==
Date: Thu, 30 Nov 2023 18:47:54 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, bertrand.marquis@arm.com, julien@xen.org, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 7/7] xen/page_alloc: deviate first_valid_mfn for
 MISRA C Rule 8.4
In-Reply-To: <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301847300.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com> <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.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, 29 Nov 2023, Nicola Vetrini wrote:
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> The preferred way to deviate is to use asmlinkage, but this modification is only
> the consequence of NUMA on ARM (and possibly PPC) being a work in progress.
> As stated in the comment above the textual deviation, first_valid_mfn will
> likely then become static and there would be no need for the comment anymore.
> This works towards having the analysis for this rule clean (i.e. no violations);
> the interest in having a clean rule is that then it could be used to signal
> newly introduced violations by making the analysis job fail.

Please add this text as part of the commit message. It can be done on
commit. With that:

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


> ---
>  xen/common/page_alloc.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 9b5df74fddab..794d7689b179 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -258,6 +258,7 @@ static PAGE_LIST_HEAD(page_broken_list);
>   * first_valid_mfn is exported because it is use in ARM specific NUMA
>   * helpers. See comment in arch/arm/include/asm/numa.h.
>   */
> +/* SAF-1-safe */
>  mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
>  
>  struct bootmem_region {
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:56:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:56:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645244.1007294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8th0-0001t6-V0; Fri, 01 Dec 2023 02:55:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645244.1007294; Fri, 01 Dec 2023 02:55:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8th0-0001sz-Qo; Fri, 01 Dec 2023 02:55:50 +0000
Received: by outflank-mailman (input) for mailman id 645244;
 Fri, 01 Dec 2023 02:55:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tgz-0001sq-1s
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:55:49 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2083826e-8ff5-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 03:55:47 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 84033B846BF;
 Fri,  1 Dec 2023 02:55:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90C8BC433C8;
 Fri,  1 Dec 2023 02:55: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: 2083826e-8ff5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701399345;
	bh=1Zt3Jb2AfeF5d2jjOuG3cQuWM6wKZyAx3qC1sWbmYE4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fkPgdM04Kcchcd1eP4P67gPibAnyBr1XoP9+SwtxQlnByvaoJqiAhR3LFwZAPiraV
	 4FmRLBw531E1XJGbHW+iDOsErzSEomYM4hA/qOBPKoQdiDrhDZou8MQV0ttIKKp2hh
	 rkduq+iEBnUaQ5DeZVMehJ2qA003xZ2sDP1U8DDpn44uNW8UA3GvwXL7Vv4DFkt/3U
	 y895xR5o1iKQNEF3JQaejwihKjVz+b7T+qbf5H/lNsjh7SZBACj0GgyhFCpXj4YR4D
	 o1m4xGa9q8h34mCt2IxggkVkvSuCa1lqO/GUBMwqbYu6eBLh67DsPK72aG5txLdHSi
	 beEpm+NEnRpwg==
Date: Thu, 30 Nov 2023 18:55:43 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH v2] automation/eclair: add deviations for MISRA C:2012
 Rule 5.6
In-Reply-To: <4a3bad7cb0a652207b9f86ded3ce3897a7c37f3d.1701246412.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301855280.110490@ubuntu-linux-20-04-desktop>
References: <4a3bad7cb0a652207b9f86ded3ce3897a7c37f3d.1701246412.git.federico.serafini@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 29 Nov 2023, Federico Serafini wrote:
> Update ECLAIR configuration to take into account the adopted files
> and type "ret_t".
> Update docs/misra/deviations.rst accordingly.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 02:59:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 02:59:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645247.1007304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tkN-0003pS-Bh; Fri, 01 Dec 2023 02:59:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645247.1007304; Fri, 01 Dec 2023 02: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 1r8tkN-0003pL-97; Fri, 01 Dec 2023 02:59:19 +0000
Received: by outflank-mailman (input) for mailman id 645247;
 Fri, 01 Dec 2023 02:59:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tkL-0003m3-Kb
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 02:59: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 9c260755-8ff5-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 03:59:15 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D683462048;
 Fri,  1 Dec 2023 02:59:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D16D4C433C7;
 Fri,  1 Dec 2023 02:59: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: 9c260755-8ff5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701399553;
	bh=tLfpqB5oXQYaNm7hwUYefz3R6ijUkmYMxGLy1vQLypA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kog+93pJi7AMaEwqszidxgR9RjgGIpWnll1UtKt9J/QV6tVymWwuvm1x4jodVy11v
	 4B/IcYVz+EMEwN+ENnrLb0Ujj1Xsz+vytoEvJchh84kI32h49iYW34M30aSOi1zG6e
	 IljYhzsjDc6Qt4XnD1/ZU873aBBOg3YUXcg/jj/cDB1N75WyRvfuoyxn3YIR4fxCF9
	 bKQxPl8XqqNrnv9GrEyikbol2O1p++NRJHYyWzlnmtnnEiHXtUFFSWdWXvEok8NIN5
	 3sDZYfo4RTcum/F0LPog1bpLJTwOm1OanrEhtwLmYoCkodYNNglkPfUuB89xIvkXDa
	 SNo+p1pGRdXUw==
Date: Thu, 30 Nov 2023 18:59:11 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v3] automation/eclair: improve scheduled analyses
In-Reply-To: <90f35626378aae5f5a482bf22c2246b506bb547e.1701363877.git.simone.ballarin@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2311301859050.110490@ubuntu-linux-20-04-desktop>
References: <90f35626378aae5f5a482bf22c2246b506bb547e.1701363877.git.simone.ballarin@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, 30 Nov 2023, Simone Ballarin wrote:
> The scheduled analyses are intended to maintain an overall vision
> of the MISRA complaince of the entire project. For this reason,
> the file exclusions in "out_of_scope.ecl" should not be applied.
> 
> This patch amends ECLAIR settings to prevent exempting files for
> scheduled analyses.
> 
> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>

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


> ---
> Changes in v3:
> - fix guard for inclusion of out_of_scope.ecl.
> Changes in v2:
> - drop changes to inhibit test and build stages in scheduled pipelines.
> ---
>  automation/eclair_analysis/ECLAIR/action.settings |  2 +-
>  automation/eclair_analysis/ECLAIR/analysis.ecl    | 12 ++++++++++--
>  automation/gitlab-ci/analyze.yaml                 |  2 ++
>  3 files changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/action.settings b/automation/eclair_analysis/ECLAIR/action.settings
> index f96368ffc7..3cba1a3afb 100644
> --- a/automation/eclair_analysis/ECLAIR/action.settings
> +++ b/automation/eclair_analysis/ECLAIR/action.settings
> @@ -134,7 +134,7 @@ push)
>      badgeLabel="ECLAIR ${ANALYSIS_KIND} ${ref}${variantHeadline} #${jobId}"
>      ;;
>  auto_pull_request)
> -    git remote remove autoPRRemote || true
> +    git remote remove autoPRRemote 2>/dev/null || true
>      git remote add autoPRRemote "${autoPRRemoteUrl}"
>      git fetch -q autoPRRemote
>      subDir="${ref}"
> diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl b/automation/eclair_analysis/ECLAIR/analysis.ecl
> index fe418d6da1..f8d4cc8c99 100644
> --- a/automation/eclair_analysis/ECLAIR/analysis.ecl
> +++ b/automation/eclair_analysis/ECLAIR/analysis.ecl
> @@ -2,7 +2,13 @@
>  -project_name=getenv("ECLAIR_PROJECT_NAME")
>  -project_root=getenv("ECLAIR_PROJECT_ROOT")
>  
> --setq=data_dir,getenv("ECLAIR_DATA_DIR")
> +setq(data_dir,getenv("ECLAIR_DATA_DIR"))
> +setq(analysis_kind,getenv("ANALYSIS_KIND"))
> +setq(scheduled_analysis,nil)
> +
> +strings_map("scheduled-analysis",500,"","^.*scheduled$",0,setq(scheduled_analysis,t))
> +strings_map("scheduled-analysis",500,"","^.*$",0)
> +map_strings("scheduled-analysis",analysis_kind)
>  
>  -verbose
>  
> @@ -15,7 +21,9 @@
>  
>  -eval_file=toolchain.ecl
>  -eval_file=public_APIs.ecl
> --eval_file=out_of_scope.ecl
> +if(not(scheduled_analysis),
> +    eval_file("out_of_scope.ecl")
> +)
>  -eval_file=deviations.ecl
>  -eval_file=call_properties.ecl
>  -eval_file=tagging.ecl
> diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
> index bd9a68de31..6631db53fa 100644
> --- a/automation/gitlab-ci/analyze.yaml
> +++ b/automation/gitlab-ci/analyze.yaml
> @@ -28,6 +28,8 @@
>    extends: .eclair-analysis
>    allow_failure: true
>    rules:
> +    - if: $CI_PIPELINE_SOURCE == "schedule"
> +      when: never
>      - if: $WTOKEN && $CI_PROJECT_PATH =~ /^xen-project\/people\/.*$/
>        when: manual
>      - !reference [.eclair-analysis, rules]
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 03:03:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 03:03:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645251.1007314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8toM-0005va-2W; Fri, 01 Dec 2023 03:03:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645251.1007314; Fri, 01 Dec 2023 03:03: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 1r8toL-0005vT-UM; Fri, 01 Dec 2023 03:03:25 +0000
Received: by outflank-mailman (input) for mailman id 645251;
 Fri, 01 Dec 2023 03:03: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 1r8toL-0005vJ-B2; Fri, 01 Dec 2023 03:03: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 1r8toL-0003ZU-7t; Fri, 01 Dec 2023 03:03: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 1r8toK-0008K1-Qn; Fri, 01 Dec 2023 03:03:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r8toK-00043r-Pl; Fri, 01 Dec 2023 03:03: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=bfsRTCQAITMeT7ISto6d/H7a/EZtNhfzAc7y4dczWEY=; b=ubghYgAH+8FLhqegs7mY9qUuUE
	iT3O7eKx2MCCikI+UMX75YyICY6he9thMJ0dS2FWRvIHN9AD9e09xvTcLSENwa5gddtmbkM4bC6kF
	ZWBXilUo9SoDph1o44NP961GYkAXXwPhytrdgaBquiV7fVZktdQ4t3SInwlTPY578A9w=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183958-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 183958: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=534021965f6f7c417610add53984f39d6945bbcf
X-Osstest-Versions-That:
    ovmf=26d484d0867b03ebd8a1ecdd9895f17e96732503
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 01 Dec 2023 03:03:24 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 534021965f6f7c417610add53984f39d6945bbcf
baseline version:
 ovmf                 26d484d0867b03ebd8a1ecdd9895f17e96732503

Last test of basis   183956  2023-11-30 19:44:47 Z    0 days
Testing same since   183958  2023-12-01 01:15:11 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Zhi Jin <zhi.jin@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    
 test-amd64-i386-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
   26d484d086..534021965f  534021965f6f7c417610add53984f39d6945bbcf -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 03:09:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 03:09:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645256.1007324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tu5-0008CO-NA; Fri, 01 Dec 2023 03:09:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645256.1007324; Fri, 01 Dec 2023 03:09:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8tu5-0008CH-J1; Fri, 01 Dec 2023 03:09:21 +0000
Received: by outflank-mailman (input) for mailman id 645256;
 Fri, 01 Dec 2023 03: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8tu3-0008Af-Rx
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 03:09:19 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 02e39036-8ff7-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 04:09:16 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id D644AB8460F;
 Fri,  1 Dec 2023 03:09:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6EB66C433C9;
 Fri,  1 Dec 2023 03:09:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 02e39036-8ff7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701400155;
	bh=phjQR8JbHlcd128mywIFmoYoSk+lvwB8cAN5LEYu2ZQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=teOHTqveaTaBUaNVXcPrVDCyf0eE3f0Zs232XCfPjwJvwoSMT0AFfbLPZd/8NrKfF
	 veVVhz4S5sIoH29bE+lrlPQwOVTH6dvtGc2Px0l/pGyjmMhJVuWRXIcVKpVGCiXFet
	 sZ1gwFbftkz8AwQNQeCCbTHxGVRE8ao5x6raahIT5AOKJCpxN0jKoaUlXm630C1qv/
	 a/qEZtv7Oq5QJ59NfpQkOOWkf/d5thxLjlwm/CRRSgfFguiBbbPJgwTu3PUc+YZtEX
	 PVMDYkPadYoKNEaseb3Z2EPhcsmAKPujulQ9TNfiUJ7tKsr5nvarW47uYgKNQe9wHr
	 IDB9Umdq2cFjQ==
Date: Thu, 30 Nov 2023 19:09:12 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Jiqian Chen <Jiqian.Chen@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>, 
    Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org, 
    Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
    Alex Deucher <Alexander.Deucher@amd.com>, 
    Xenia Ragiadakou <xenia.ragiadakou@amd.com>, 
    Stefano Stabellini <stefano.stabellini@amd.com>, 
    Huang Rui <Ray.Huang@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, 
    Julia Zhang <Julia.Zhang@amd.com>
Subject: Re: [RFC XEN PATCH v2 3/3] tools: Add new function to get gsi from
 irq
In-Reply-To: <ZWheuUjLxShoQ_qn@macbook>
Message-ID: <alpine.DEB.2.22.394.2311301907370.110490@ubuntu-linux-20-04-desktop>
References: <20231124104136.3263722-1-Jiqian.Chen@amd.com> <20231124104136.3263722-4-Jiqian.Chen@amd.com> <ZWX4R9UEE6oXiqaz@macbook> <alpine.DEB.2.22.394.2311291937170.3533093@ubuntu-linux-20-04-desktop> <alpine.DEB.2.22.394.2311291956130.3533093@ubuntu-linux-20-04-desktop>
 <ZWheuUjLxShoQ_qn@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-2084307848-1701400155=:110490"

  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-2084307848-1701400155=:110490
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> On Wed, Nov 29, 2023 at 08:02:40PM -0800, Stefano Stabellini wrote:
> > n Wed, 29 Nov 2023, Stefano Stabellini wrote:
> > > On Tue, 28 Nov 2023, Roger Pau MonnÃ© wrote:
> > > > On Fri, Nov 24, 2023 at 06:41:36PM +0800, 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
> > > > > if you debug the kernel codes, you will find the irq
> > > > > number is alloced from small to large, but the applying
> > > > > gsi number is not, may gsi 38 comes before gsi 28, that
> > > > > causes the irq number is not equal with the gsi number.
> > > > > And when we passthrough a device, QEMU will use its gsi
> > > > > number to do mapping actions, see xen_pt_realize->
> > > > > xc_physdev_map_pirq, but the gsi number is got from file
> > > > > /sys/bus/pci/devices/xxxx:xx:xx.x/irq in current code,
> > > > > so it will fail when mapping.
> > > > > And in current codes, there is no method to translate
> > > > > irq to gsi for userspace.
> > > > 
> > > > I think it would be cleaner to just introduce a new sysfs node that
> > > > contains the gsi if a device is using one (much like the irq sysfs
> > > > node)?
> > > > 
> > > > Such ioctl to translate from IRQ to GSI has nothing to do with Xen, so
> > > > placing it in privcmd does seem quite strange to me.  I understand
> > > > that for passthrough we need the GSI, but such translation layer from
> > > > IRQ to GSI is all Linux internal, and it would be much simpler to just
> > > > expose the GSI in sysfs IMO.
> > > 
> > > Maybe something to add to drivers/xen/sys-hypervisor.c in Linux.
> > > Juergen what do you think?
> > 
> > Let me also add that privcmd.c is already a Linux specific interface.
> > Although it was born to be a Xen hypercall "proxy" in reality today we
> > have a few privcmd ioctls that don't translate into hypercalls. So I
> > don't think that adding IOCTL_PRIVCMD_GSI_FROM_IRQ would be a problem.
> 
> Maybe not all ioctls translate to hypercalls (I guess you are
> referring to the IOCTL_PRIVCMD_RESTRICT ioctl), but they are specific
> Xen actions.  Getting the GSI used by a device has nothing do to with
> Xen.
> 
> IMO drivers/xen/sys-hypervisor.c is also not appropriate, but I'm not
> the maintainer of any of those components.
> 
> There's nothing Xen specific about fetching the GSI associated with a
> PCI device.  The fact that Xen needs it for passthrough is just a red
> herring, further cases where the GSI is needed might arise outside of
> Xen, and hence such node would better be placed in a generic
> location.  The right location should be /sys/bus/pci/devices/<sbdf>/gsi.

That might be true but /sys/bus/pci/devices/<sbdf>/gsi is a non-Xen
generic interface and the maintainers of that portion of Linux code
might have a different opinion. We'll have to see.
--8323329-2084307848-1701400155=:110490--


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 03:15:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 03:15:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645259.1007333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8u02-0002ks-AB; Fri, 01 Dec 2023 03:15:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645259.1007333; Fri, 01 Dec 2023 03:15:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8u02-0002kl-7C; Fri, 01 Dec 2023 03:15:30 +0000
Received: by outflank-mailman (input) for mailman id 645259;
 Fri, 01 Dec 2023 03:15: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r8u01-0002kZ-8S
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 03:15:29 +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 dea0e43b-8ff7-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 04:15:26 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 30CF8CE1733;
 Fri,  1 Dec 2023 03:15:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03048C433C8;
 Fri,  1 Dec 2023 03:15: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: dea0e43b-8ff7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701400521;
	bh=Dp7B5vd2hVcODH9a2EoW3LvQCYVBsy+Yg/mVTlE9inU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=QXRXIIGk3RVLPsM4TCRp2cn2iBCqITDx3AWfqYRl3Lln3cRggUuDlXWdreqcykGsL
	 W946LuhkL2qPLsf3/raIlDTPk3Drc5irqHJGg+oPby4lLnrTsYhV2sUc0Izv52YpnF
	 MRqsfAVPlzx8Bdl426zUVsiMIKfPvPR+8o0LbOwEsfebODMAxZ1AkXV6gzv5WvMGnE
	 vdvaGhSthObuKzxmpx6yuRcmH+6r9KHtlZT407gtbyKQMPFQvGGS8oyqREfhVDDmUp
	 wLcJikr7LGhwsoJ199+0r9HNU5FRwIsMBGlQY0omccS71m+/4uYUdIB17v3shmvoVW
	 FYAxePMeaTQbw==
Date: Thu, 30 Nov 2023 19:15:17 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Jiqian Chen <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Thomas Gleixner <tglx@linutronix.de>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>, 
    Bjorn Helgaas <bhelgaas@google.com>, xen-devel@lists.xenproject.org, 
    linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, 
    Stefano Stabellini <stefano.stabellini@amd.com>, 
    Alex Deucher <Alexander.Deucher@amd.com>, 
    Christian Koenig <Christian.Koenig@amd.com>, 
    Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
    Xenia Ragiadakou <xenia.ragiadakou@amd.com>, 
    Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang <Julia.Zhang@amd.com>, 
    Huang Rui <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
In-Reply-To: <ZWiyBP4Lzz5lXraP@macbook>
Message-ID: <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com> <20231124103123.3263471-3-Jiqian.Chen@amd.com> <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop> <ZWiyBP4Lzz5lXraP@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-351411740-1701400521=:110490"

  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-351411740-1701400521=:110490
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> On Wed, Nov 29, 2023 at 07:53:59PM -0800, Stefano Stabellini wrote:
> > On Fri, 24 Nov 2023, Jiqian Chen wrote:
> > > This patch is to solve two problems we encountered when we try to
> > > passthrough a device to hvm domU base on Xen PVH dom0.
> > > 
> > > First, hvm guest will alloc a pirq and irq for a passthrough device
> > > by using gsi, before that, the gsi must first has a mapping in dom0,
> > > see Xen code pci_add_dm_done->xc_domain_irq_permission, it will call
> > > into Xen and check whether dom0 has the mapping. See
> > > XEN_DOMCTL_irq_permission->pirq_access_permitted, "current" is PVH
> > > dom0 and it return irq is 0, and then return -EPERM.
> > > This is because the passthrough device doesn't do PHYSDEVOP_map_pirq
> > > when thay are enabled.
> > > 
> > > Second, in PVH dom0, the gsi of a passthrough device doesn't get
> > > registered, but gsi must be configured for it to be able to be
> > > mapped into a domU.
> > > 
> > > After searching codes, we can 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 problems
> > > can be conclude to that the gsi of a passthrough device doesn't be
> > > unmasked.
> > > 
> > > To solve the unmaske problem, this patch call the unmask_irq when we
> > > assign a device to be passthrough. So that the gsi can get registered
> > > and mapped in PVH dom0.
> > 
> > 
> > Roger, this seems to be more of a Xen issue than a Linux issue. Why do
> > we need the unmask check in Xen? Couldn't we just do:
> > 
> > 
> > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> > index 4e40d3609a..df262a4a18 100644
> > --- a/xen/arch/x86/hvm/vioapic.c
> > +++ b/xen/arch/x86/hvm/vioapic.c
> > @@ -287,7 +287,7 @@ static void vioapic_write_redirent(
> >              hvm_dpci_eoi(d, gsi);
> >      }
> >  
> > -    if ( is_hardware_domain(d) && unmasked )
> > +    if ( is_hardware_domain(d) )
> >      {
> >          /*
> >           * NB: don't call vioapic_hwdom_map_gsi while holding hvm.irq_lock
> 
> There are some issues with this approach.
> 
> mp_register_gsi() will only setup the trigger and polarity of the
> IO-APIC pin once, so we do so once the guest unmask the pin in order
> to assert that the configuration is the intended one.  A guest is
> allowed to write all kind of nonsense stuff to the IO-APIC RTE, but
> that doesn't take effect unless the pin is unmasked.
> 
> Overall the question would be whether we have any guarantees that
> the hardware domain has properly configured the pin, even if it's not
> using it itself (as it hasn't been unmasked).
> 
> IIRC PCI legacy interrupts are level triggered and low polarity, so we
> could configure any pins that are not setup at bind time?

That could work.

Another idea is to move only the call to allocate_and_map_gsi_pirq at
bind time? That might be enough to pass a pirq_access_permitted check.
--8323329-351411740-1701400521=:110490--


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 03:20:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 03:20:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645262.1007344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8u4W-00064q-TY; Fri, 01 Dec 2023 03:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645262.1007344; Fri, 01 Dec 2023 03:20:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8u4W-00064j-Q1; Fri, 01 Dec 2023 03:20:08 +0000
Received: by outflank-mailman (input) for mailman id 645262;
 Fri, 01 Dec 2023 03:20: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 1r8u4V-0005zb-Mk; Fri, 01 Dec 2023 03:20: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 1r8u4V-0003uU-9B; Fri, 01 Dec 2023 03: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 1r8u4U-0000VU-TU; Fri, 01 Dec 2023 03:20:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r8u4U-0000LX-T0; Fri, 01 Dec 2023 03:20: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=Nzyu6vwgKcBPbAxEFcOM0N+ADKQuQAVOG/78xHH8Fnk=; b=s76QMRK7Qg+1y2r7u/B/x6p1Pb
	P7JU+B5e0Zf9PPKHulTBQoT9C71Ih8ykSg3tKulbM89sbOMXn29hIvr5Auvs4TDJKaTr9e9zpUn8k
	5RR049O6IXU3nW6xxzqEzFPnIhOS4zx49URcz2/tcBsvsid9GDg+NGkS+FoFg/qFin14=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183952-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 183952: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm: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:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl: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-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-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-xl-credit2:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=f0dd0cd9598f22ee5509bb5d1466e4821834c4ba
X-Osstest-Versions-That:
    xen=902377b690f42ddf44ae91c4b0751d597f1cd694
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 01 Dec 2023 03:20:06 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt   16 saverestore-support-check fail blocked in 183938
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop      fail blocked in 183938
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183938
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183938
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183938
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183938
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183938
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183938
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183938
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183938
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183938
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183938
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-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-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-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-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-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 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-i386-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-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     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-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-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-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  f0dd0cd9598f22ee5509bb5d1466e4821834c4ba
baseline version:
 xen                  902377b690f42ddf44ae91c4b0751d597f1cd694

Last test of basis   183938  2023-11-29 16:37:13 Z    1 days
Testing same since   183952  2023-11-30 12:38:47 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Nicola Vetrini <nicola.vetrini@bugseng.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   902377b690..f0dd0cd959  f0dd0cd9598f22ee5509bb5d1466e4821834c4ba -> master


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 05:55:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 05:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645165.1007365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8wUz-0007oz-5l; Fri, 01 Dec 2023 05:55:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645165.1007365; Fri, 01 Dec 2023 05: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 1r8wUz-0007os-2z; Fri, 01 Dec 2023 05:55:37 +0000
Received: by outflank-mailman (input) for mailman id 645165;
 Thu, 30 Nov 2023 21:49:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=X/tn=HL=linux.ibm.com=farman@srs-se1.protection.inumbo.net>)
 id 1r8ouU-0000iK-3Y
 for xen-devel@lists.xenproject.org; Thu, 30 Nov 2023 21:49:26 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 526a9500-8fca-11ee-98e5-6d05b1d4d9a1;
 Thu, 30 Nov 2023 22:49:23 +0100 (CET)
Received: from pps.filterd (m0353728.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3AULeDZS027517; Thu, 30 Nov 2023 21:48:53 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uq28arjre-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 30 Nov 2023 21:48:52 +0000
Received: from m0353728.ppops.net (m0353728.ppops.net [127.0.0.1])
 by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3AULglYD002887;
 Thu, 30 Nov 2023 21:48:52 GMT
Received: from ppma23.wdc07v.mail.ibm.com
 (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uq28arjr8-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 30 Nov 2023 21:48:52 +0000
Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id
 3AUJhQMe029858; Thu, 30 Nov 2023 21:48:50 GMT
Received: from smtprelay03.dal12v.mail.ibm.com ([172.16.1.5])
 by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3ukvrm0y2s-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 30 Nov 2023 21:48:50 +0000
Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com
 [10.39.53.231])
 by smtprelay03.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 3AULmngv13828844
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 30 Nov 2023 21:48:49 GMT
Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id F13CE58052;
 Thu, 30 Nov 2023 21:48:48 +0000 (GMT)
Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 9F86658050;
 Thu, 30 Nov 2023 21:48:41 +0000 (GMT)
Received: from li-479af74c-31f9-11b2-a85c-e4ddee11713b.ibm.com (unknown
 [9.61.95.112]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP;
 Thu, 30 Nov 2023 21:48:41 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 526a9500-8fca-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : subject :
 from : to : cc : date : in-reply-to : references : content-type :
 content-transfer-encoding : mime-version; s=pp1;
 bh=3Lkv/02q48e2jWfrLkO6fctRZOAuJaxGyH4fdQWyo74=;
 b=Z8j3SiJoFgCBPPyg5iDaUlsJsboZQYhHZhQ/LoTMST1r78wFU8m1R06sJ5BSv8lRVYRb
 zdzOM64m3u1M54Dt2eJDNnuNfvUHViaxPTuf1S8xZXZap7aL83BZ5TM2XEL3MuFSKQC5
 VD9ArDJVODobePvT62TaDdnHvZn0bIHtYeKF6DIwlezQf+qFTJ6VkL9dOQru1TqlEDOi
 Ia5rg6qPY/IBdVBfvOY1MEiWurDCD5G9wJkxyQ7XD12QqfiRmQeLCs1JcAfacuAlVlso
 eJNxsB8Obgz7MsFBJxjno31QAspoKCWlAtg/0r6dBBNXFkfiX6qx8MLNl4KtoeFnPTN3 yg== 
Message-ID: <05f53a0e5d65287fa9fdf03ca67e5cf186b8d858.camel@linux.ibm.com>
Subject: Re: [PATCH 1/6] system/cpus: rename qemu_mutex_lock_iothread() to
 qemu_bql_lock()
From: Eric Farman <farman@linux.ibm.com>
To: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org
Cc: Jean-Christophe Dubois <jcd@tribudubois.net>,
        Fabiano Rosas
 <farosas@suse.de>, qemu-s390x@nongnu.org,
        Song Gao <gaosong@loongson.cn>,
        Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
        Thomas Huth
 <thuth@redhat.com>, Hyman Huang <yong.huang@smartx.com>,
        Marcelo Tosatti
 <mtosatti@redhat.com>,
        David Woodhouse <dwmw2@infradead.org>,
        Andrey
 Smirnov <andrew.smirnov@gmail.com>,
        Peter Maydell
 <peter.maydell@linaro.org>,
        Kevin Wolf <kwolf@redhat.com>, Ilya Leoshkevich
 <iii@linux.ibm.com>,
        Artyom Tarasenko <atar4qemu@gmail.com>,
        Mark
 Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Max Filippov
 <jcmvbkbc@gmail.com>,
        Alistair Francis <alistair.francis@wdc.com>,
        Paul
 Durrant <paul@xen.org>, Jagannathan Raman <jag.raman@oracle.com>,
        Juan
 Quintela <quintela@redhat.com>,
        "Daniel P." =?ISO-8859-1?Q?Berrang=E9?=
 <berrange@redhat.com>,
        qemu-arm@nongnu.org, Jason Wang
 <jasowang@redhat.com>,
        Gerd Hoffmann <kraxel@redhat.com>, Hanna Reitz
 <hreitz@redhat.com>,
        =?ISO-8859-1?Q?Marc-Andr=E9?= Lureau
 <marcandre.lureau@redhat.com>,
        BALATON Zoltan <balaton@eik.bme.hu>,
        Daniel
 Henrique Barboza <danielhb413@gmail.com>,
        Elena Ufimtseva
 <elena.ufimtseva@oracle.com>,
        Aurelien Jarno <aurelien@aurel32.net>,
        Hailiang Zhang <zhanghailiang@xfusion.com>,
        Roman Bolshakov
 <rbolshakov@ddn.com>,
        Huacai Chen <chenhuacai@kernel.org>, Fam Zheng
 <fam@euphon.net>,
        Eric Blake <eblake@redhat.com>, Jiri Slaby
 <jslaby@suse.cz>,
        Alexander Graf <agraf@csgraf.de>,
        Liu Zhiwei
 <zhiwei_liu@linux.alibaba.com>,
        Weiwei Li <liwei1518@gmail.com>, Stafford
 Horne <shorne@gmail.com>,
        David Hildenbrand <david@redhat.com>,
        Markus
 Armbruster <armbru@redhat.com>,
        Reinoud Zandijk <reinoud@netbsd.org>,
        Palmer Dabbelt <palmer@dabbelt.com>,
        Cameron Esfahani <dirty@apple.com>, xen-devel@lists.xenproject.org,
        Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, qemu-riscv@nongnu.org,
        Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
        John Snow <jsnow@redhat.com>,
        Sunil Muthuswamy <sunilmut@microsoft.com>,
        Michael Roth <michael.roth@amd.com>,
        David Gibson
 <david@gibson.dropbear.id.au>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Richard Henderson <richard.henderson@linaro.org>,
        Bin Meng
 <bin.meng@windriver.com>,
        Stefano Stabellini <sstabellini@kernel.org>, kvm@vger.kernel.org,
        qemu-block@nongnu.org, Halil Pasic
 <pasic@linux.ibm.com>,
        Peter Xu <peterx@redhat.com>,
        Anthony Perard
 <anthony.perard@citrix.com>,
        Harsh Prateek Bora <harshpb@linux.ibm.com>,
        Alex =?ISO-8859-1?Q?Benn=E9e?= <alex.bennee@linaro.org>,
        Eduardo Habkost
 <eduardo@habkost.net>,
        Paolo Bonzini <pbonzini@redhat.com>,
        Vladimir
 Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
        =?ISO-8859-1?Q?C=E9dric?=
 Le Goater <clg@kaod.org>,
        qemu-ppc@nongnu.org,
        Philippe
 =?ISO-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
        Christian Borntraeger
 <borntraeger@linux.ibm.com>,
        Akihiko Odaki <akihiko.odaki@daynix.com>,
        Leonardo Bras <leobras@redhat.com>,
        Nicholas Piggin <npiggin@gmail.com>,
        Jiaxun Yang <jiaxun.yang@flygoat.com>
Date: Thu, 30 Nov 2023 16:48:41 -0500
In-Reply-To: <20231129212625.1051502-2-stefanha@redhat.com>
References: <20231129212625.1051502-1-stefanha@redhat.com>
	 <20231129212625.1051502-2-stefanha@redhat.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.48.4 (3.48.4-1.fc38) 
MIME-Version: 1.0
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: 425_reiecxV4wDHgNFADyvMsZGA6fbvk
X-Proofpoint-ORIG-GUID: L2MIErO798SVE0kwCrDtReSEksriyd8b
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-11-30_22,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501
 adultscore=0 mlxscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0
 phishscore=0 clxscore=1011 impostorscore=0 mlxlogscore=827 spamscore=0
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2311300160

On Wed, 2023-11-29 at 16:26 -0500, Stefan Hajnoczi wrote:
> The Big QEMU Lock (BQL) has many names and they are confusing. The
> actual QemuMutex variable is called qemu_global_mutex but it's
> commonly
> referred to as the BQL in discussions and some code comments. The
> locking APIs, however, are called qemu_mutex_lock_iothread() and
> qemu_mutex_unlock_iothread().
>=20
> The "iothread" name is historic and comes from when the main thread
> was
> split into into KVM vcpu threads and the "iothread" (now called the
> main
> loop thread). I have contributed to the confusion myself by
> introducing
> a separate --object iothread, a separate concept unrelated to the
> BQL.
>=20
> The "iothread" name is no longer appropriate for the BQL. Rename the
> locking APIs to:
> - void qemu_bql_lock(void)
> - void qemu_bql_unlock(void)
> - bool qemu_bql_locked(void)
>=20
> There are more APIs with "iothread" in their names. Subsequent
> patches
> will rename them. There are also comments and documentation that will
> be
> updated in later patches.
>=20
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

Acked-by: Eric Farman <farman@linux.ibm.com>


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 05:55:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 05:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645271.1007372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8wUz-0007sc-FU; Fri, 01 Dec 2023 05:55:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645271.1007372; Fri, 01 Dec 2023 05: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 1r8wUz-0007rw-AR; Fri, 01 Dec 2023 05:55:37 +0000
Received: by outflank-mailman (input) for mailman id 645271;
 Fri, 01 Dec 2023 05:33: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=eEIp=HM=linux.ibm.com=harshpb@srs-se1.protection.inumbo.net>)
 id 1r8w9u-0003Vw-Em
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 05:33:51 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 315b3c5e-900b-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 06:33:45 +0100 (CET)
Received: from pps.filterd (m0353727.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B15G9lg008159; Fri, 1 Dec 2023 05:33:03 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uq4y75pvp-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 01 Dec 2023 05:33:02 +0000
Received: from m0353727.ppops.net (m0353727.ppops.net [127.0.0.1])
 by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3B15Kmci022446;
 Fri, 1 Dec 2023 05:33:01 GMT
Received: from ppma21.wdc07v.mail.ibm.com
 (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uq4y75pus-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 01 Dec 2023 05:33:01 +0000
Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma21.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B12JXE3032423; Fri, 1 Dec 2023 05:13:17 GMT
Received: from smtprelay06.dal12v.mail.ibm.com ([172.16.1.8])
 by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3ukv8p30jh-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 01 Dec 2023 05:13:16 +0000
Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com
 [10.39.53.232])
 by smtprelay06.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 3B15DFQS22807206
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 1 Dec 2023 05:13:15 GMT
Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 2B33058066;
 Fri,  1 Dec 2023 05:13:15 +0000 (GMT)
Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id F3D6258043;
 Fri,  1 Dec 2023 05:12:44 +0000 (GMT)
Received: from [9.43.126.227] (unknown [9.43.126.227])
 by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP;
 Fri,  1 Dec 2023 05:12:44 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 315b3c5e-900b-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date :
 mime-version : subject : to : cc : references : from : in-reply-to :
 content-type : content-transfer-encoding; s=pp1;
 bh=qXW33Mjl0yUZ0LRSanku4XkKdXaZRbebZlcR92nnWqg=;
 b=I1dr1yBrPjm8pr4hW2ekYyUxLWRA5s5izvB1WO15OI5uyDD3Pv0GrQ8HDBcr/e3NsFos
 ah4fMkBGnowG+w5G06OCdH3sVDzyAR84wVXP/hJB9SLWRQHLucRBk0nggGn6X5aReHsZ
 eiJVJgRCr+jghk04OxzmDHBqNFR1oMWJYEiYgmS2H3sJwnA6BEC3O2h3ehGEKTPHaSCr
 D7ohvl91tZJAiDmJ4K7zNwUXT318hoS9QHucb1k4Hq8nalHJH7w3N3FfCspD3oyXBKc+
 rjm1LUshhi4Yyu0mseD1Swy4eDRD+TS3lWvlOOhrufNyWKjE90WIPPXiLcb1/Rw9PpLN Xg== 
Message-ID: <8f89fbbf-454b-c5e5-5e8f-46ea42ec20ed@linux.ibm.com>
Date: Fri, 1 Dec 2023 10:42:43 +0530
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.14.0
Subject: Re: [PATCH 1/6] system/cpus: rename qemu_mutex_lock_iothread() to
 qemu_bql_lock()
Content-Language: en-US
To: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org
Cc: Jean-Christophe Dubois <jcd@tribudubois.net>,
        Fabiano Rosas <farosas@suse.de>, qemu-s390x@nongnu.org,
        Song Gao <gaosong@loongson.cn>,
        Marcel Apfelbaum
 <marcel.apfelbaum@gmail.com>,
        Thomas Huth <thuth@redhat.com>, Hyman Huang <yong.huang@smartx.com>,
        Marcelo Tosatti <mtosatti@redhat.com>,
        David Woodhouse <dwmw2@infradead.org>,
        Andrey Smirnov <andrew.smirnov@gmail.com>,
        Peter Maydell <peter.maydell@linaro.org>,
        Kevin Wolf <kwolf@redhat.com>, Ilya Leoshkevich <iii@linux.ibm.com>,
        Artyom Tarasenko
 <atar4qemu@gmail.com>,
        Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Max Filippov <jcmvbkbc@gmail.com>,
        Alistair Francis <alistair.francis@wdc.com>,
        Paul Durrant <paul@xen.org>, Jagannathan Raman <jag.raman@oracle.com>,
        Juan Quintela
 <quintela@redhat.com>,
        =?UTF-8?Q?Daniel_P=2e_Berrang=c3=a9?=
 <berrange@redhat.com>,
        qemu-arm@nongnu.org, Jason Wang
 <jasowang@redhat.com>,
        Gerd Hoffmann <kraxel@redhat.com>, Hanna Reitz <hreitz@redhat.com>,
        =?UTF-8?Q?Marc-Andr=c3=a9_Lureau?= <marcandre.lureau@redhat.com>,
        BALATON Zoltan <balaton@eik.bme.hu>,
        Daniel Henrique Barboza <danielhb413@gmail.com>,
        Elena Ufimtseva <elena.ufimtseva@oracle.com>,
        Aurelien Jarno <aurelien@aurel32.net>,
        Hailiang Zhang <zhanghailiang@xfusion.com>,
        Roman Bolshakov <rbolshakov@ddn.com>,
        Huacai Chen <chenhuacai@kernel.org>, Fam Zheng <fam@euphon.net>,
        Eric Blake <eblake@redhat.com>, Jiri Slaby <jslaby@suse.cz>,
        Alexander Graf <agraf@csgraf.de>,
        Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
        Weiwei Li <liwei1518@gmail.com>, Eric Farman <farman@linux.ibm.com>,
        Stafford Horne <shorne@gmail.com>,
        David Hildenbrand <david@redhat.com>,
        Markus Armbruster <armbru@redhat.com>,
        Reinoud Zandijk <reinoud@netbsd.org>,
        Palmer Dabbelt <palmer@dabbelt.com>,
        Cameron Esfahani <dirty@apple.com>, xen-devel@lists.xenproject.org,
        Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, qemu-riscv@nongnu.org,
        Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
        John Snow <jsnow@redhat.com>,
        Sunil Muthuswamy <sunilmut@microsoft.com>,
        Michael Roth <michael.roth@amd.com>,
        David Gibson <david@gibson.dropbear.id.au>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Richard Henderson <richard.henderson@linaro.org>,
        Bin Meng <bin.meng@windriver.com>,
        Stefano Stabellini <sstabellini@kernel.org>, kvm@vger.kernel.org,
        qemu-block@nongnu.org, Halil Pasic <pasic@linux.ibm.com>,
        Peter Xu <peterx@redhat.com>,
        Anthony Perard <anthony.perard@citrix.com>,
        =?UTF-8?Q?Alex_Benn=c3=a9e?= <alex.bennee@linaro.org>,
        Eduardo Habkost <eduardo@habkost.net>,
        Paolo Bonzini <pbonzini@redhat.com>,
        Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
        =?UTF-8?Q?C=c3=a9dric_Le_Goater?= <clg@kaod.org>, qemu-ppc@nongnu.org,
        =?UTF-8?Q?Philippe_Mathieu-Daud=c3=a9?= <philmd@linaro.org>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Akihiko Odaki <akihiko.odaki@daynix.com>,
        Leonardo Bras
 <leobras@redhat.com>,
        Nicholas Piggin <npiggin@gmail.com>,
        Jiaxun Yang <jiaxun.yang@flygoat.com>
References: <20231129212625.1051502-1-stefanha@redhat.com>
 <20231129212625.1051502-2-stefanha@redhat.com>
From: Harsh Prateek Bora <harshpb@linux.ibm.com>
In-Reply-To: <20231129212625.1051502-2-stefanha@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: ExXjpJ3HkWQFGv5PgQ9IlNSyH2-bo_Rd
X-Proofpoint-ORIG-GUID: G-waGqm_eXCUbO3YgV2SSv88jsCqDMAg
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_03,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1011
 mlxlogscore=999 impostorscore=0 adultscore=0 mlxscore=0 priorityscore=1501
 phishscore=0 bulkscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000
 definitions=main-2312010031

Hi Stefan,

On 11/30/23 02:56, Stefan Hajnoczi wrote:
> The Big QEMU Lock (BQL) has many names and they are confusing. The
> actual QemuMutex variable is called qemu_global_mutex but it's commonly
> referred to as the BQL in discussions and some code comments. The
> locking APIs, however, are called qemu_mutex_lock_iothread() and
> qemu_mutex_unlock_iothread().
> 
> The "iothread" name is historic and comes from when the main thread was
> split into into KVM vcpu threads and the "iothread" (now called the main
> loop thread). I have contributed to the confusion myself by introducing
> a separate --object iothread, a separate concept unrelated to the BQL.
> 
> The "iothread" name is no longer appropriate for the BQL. Rename the
> locking APIs to:
> - void qemu_bql_lock(void)
> - void qemu_bql_unlock(void)
> - bool qemu_bql_locked(void)
> 
> There are more APIs with "iothread" in their names. Subsequent patches
> will rename them. There are also comments and documentation that will be
> updated in later patches.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>   include/block/aio-wait.h             |   2 +-
>   include/qemu/main-loop.h             |  26 +++---
>   accel/accel-blocker.c                |  10 +--
>   accel/dummy-cpus.c                   |   8 +-
>   accel/hvf/hvf-accel-ops.c            |   4 +-
>   accel/kvm/kvm-accel-ops.c            |   4 +-
>   accel/kvm/kvm-all.c                  |  22 ++---
>   accel/tcg/cpu-exec.c                 |  26 +++---
>   accel/tcg/cputlb.c                   |  16 ++--
>   accel/tcg/tcg-accel-ops-icount.c     |   4 +-
>   accel/tcg/tcg-accel-ops-mttcg.c      |  12 +--
>   accel/tcg/tcg-accel-ops-rr.c         |  14 ++--
>   accel/tcg/tcg-accel-ops.c            |   2 +-
>   accel/tcg/translate-all.c            |   2 +-
>   cpu-common.c                         |   4 +-
>   dump/dump.c                          |   4 +-
>   hw/core/cpu-common.c                 |   6 +-
>   hw/i386/intel_iommu.c                |   6 +-
>   hw/i386/kvm/xen_evtchn.c             |  16 ++--
>   hw/i386/kvm/xen_overlay.c            |   2 +-
>   hw/i386/kvm/xen_xenstore.c           |   2 +-
>   hw/intc/arm_gicv3_cpuif.c            |   2 +-
>   hw/intc/s390_flic.c                  |  18 ++--
>   hw/misc/edu.c                        |   4 +-
>   hw/misc/imx6_src.c                   |   2 +-
>   hw/misc/imx7_src.c                   |   2 +-
>   hw/net/xen_nic.c                     |   8 +-
>   hw/ppc/pegasos2.c                    |   2 +-
>   hw/ppc/ppc.c                         |   4 +-
>   hw/ppc/spapr.c                       |   2 +-
>   hw/ppc/spapr_rng.c                   |   4 +-
>   hw/ppc/spapr_softmmu.c               |   4 +-
>   hw/remote/mpqemu-link.c              |  12 +--
>   hw/remote/vfio-user-obj.c            |   2 +-
>   hw/s390x/s390-skeys.c                |   2 +-
>   migration/block-dirty-bitmap.c       |   4 +-
>   migration/block.c                    |  16 ++--
>   migration/colo.c                     |  60 +++++++-------
>   migration/dirtyrate.c                |  12 +--
>   migration/migration.c                |  52 ++++++------
>   migration/ram.c                      |  12 +--
>   replay/replay-internal.c             |   2 +-
>   semihosting/console.c                |   8 +-
>   stubs/iothread-lock.c                |   6 +-
>   system/cpu-throttle.c                |   4 +-
>   system/cpus.c                        |  28 +++----
>   system/dirtylimit.c                  |   4 +-
>   system/memory.c                      |   2 +-
>   system/physmem.c                     |   8 +-
>   system/runstate.c                    |   2 +-
>   system/watchpoint.c                  |   4 +-
>   target/arm/arm-powerctl.c            |  14 ++--
>   target/arm/helper.c                  |   4 +-
>   target/arm/hvf/hvf.c                 |   8 +-
>   target/arm/kvm.c                     |   4 +-
>   target/arm/kvm64.c                   |   4 +-
>   target/arm/ptw.c                     |   6 +-
>   target/arm/tcg/helper-a64.c          |   8 +-
>   target/arm/tcg/m_helper.c            |   4 +-
>   target/arm/tcg/op_helper.c           |  24 +++---
>   target/arm/tcg/psci.c                |   2 +-
>   target/hppa/int_helper.c             |   8 +-
>   target/i386/hvf/hvf.c                |   6 +-
>   target/i386/kvm/hyperv.c             |   4 +-
>   target/i386/kvm/kvm.c                |  28 +++----
>   target/i386/kvm/xen-emu.c            |  14 ++--
>   target/i386/nvmm/nvmm-accel-ops.c    |   4 +-
>   target/i386/nvmm/nvmm-all.c          |  20 ++---
>   target/i386/tcg/sysemu/fpu_helper.c  |   6 +-
>   target/i386/tcg/sysemu/misc_helper.c |   4 +-
>   target/i386/whpx/whpx-accel-ops.c    |   4 +-
>   target/i386/whpx/whpx-all.c          |  24 +++---
>   target/loongarch/csr_helper.c        |   4 +-
>   target/mips/kvm.c                    |   4 +-
>   target/mips/tcg/sysemu/cp0_helper.c  |   4 +-
>   target/openrisc/sys_helper.c         |  16 ++--
>   target/ppc/excp_helper.c             |  12 +--
>   target/ppc/kvm.c                     |   4 +-
>   target/ppc/misc_helper.c             |   8 +-
>   target/ppc/timebase_helper.c         |   8 +-
>   target/s390x/kvm/kvm.c               |   4 +-
>   target/s390x/tcg/misc_helper.c       | 118 +++++++++++++--------------
>   target/sparc/int32_helper.c          |   2 +-
>   target/sparc/int64_helper.c          |   6 +-
>   target/sparc/win_helper.c            |  20 ++---
>   target/xtensa/exc_helper.c           |   8 +-
>   ui/spice-core.c                      |   4 +-
>   util/async.c                         |   2 +-
>   util/main-loop.c                     |   8 +-
>   util/rcu.c                           |  14 ++--
>   audio/coreaudio.m                    |   4 +-
>   memory_ldst.c.inc                    |  18 ++--
>   target/i386/hvf/README.md            |   2 +-
>   ui/cocoa.m                           |  50 ++++++------
>   94 files changed, 502 insertions(+), 502 deletions(-)
> 


<snip>

>   
> diff --git a/hw/remote/mpqemu-link.c b/hw/remote/mpqemu-link.c
> index 9bd98e8219..ffb2c25145 100644
> --- a/hw/remote/mpqemu-link.c
> +++ b/hw/remote/mpqemu-link.c
> @@ -33,7 +33,7 @@
>    */
>   bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)
>   {
> -    bool iolock = qemu_mutex_iothread_locked();
> +    bool iolock = qemu_bql_locked();

Should var name (one more below) be updated to reflect this update ?

Otherwise,

Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>

>       bool iothread = qemu_in_iothread();
>       struct iovec send[2] = {};
>       int *fds = NULL;
> @@ -64,7 +64,7 @@ bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)
>        * Also skip lock handling while in a co-routine in the main context.
>        */
>       if (iolock && !iothread && !qemu_in_coroutine()) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   
>       if (!qio_channel_writev_full_all(ioc, send, G_N_ELEMENTS(send),
> @@ -76,7 +76,7 @@ bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)
>   
>       if (iolock && !iothread && !qemu_in_coroutine()) {
>           /* See above comment why skip locking here. */
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>   
>       return ret;
> @@ -96,7 +96,7 @@ static ssize_t mpqemu_read(QIOChannel *ioc, void *buf, size_t len, int **fds,
>                              size_t *nfds, Error **errp)
>   {
>       struct iovec iov = { .iov_base = buf, .iov_len = len };
> -    bool iolock = qemu_mutex_iothread_locked();
> +    bool iolock = qemu_bql_locked();
>       bool iothread = qemu_in_iothread();
>       int ret = -1;
>   
> @@ -107,13 +107,13 @@ static ssize_t mpqemu_read(QIOChannel *ioc, void *buf, size_t len, int **fds,
>       assert(qemu_in_coroutine() || !iothread);
>   
>       if (iolock && !iothread && !qemu_in_coroutine()) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   
>       ret = qio_channel_readv_full_all_eof(ioc, &iov, 1, fds, nfds, errp);
>   
>       if (iolock && !iothread && !qemu_in_coroutine()) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>   
>       return (ret <= 0) ? ret : iov.iov_len;
> diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c
> index 8b10c32a3c..d0d0386d52 100644
> --- a/hw/remote/vfio-user-obj.c
> +++ b/hw/remote/vfio-user-obj.c
> @@ -400,7 +400,7 @@ static int vfu_object_mr_rw(MemoryRegion *mr, uint8_t *buf, hwaddr offset,
>           }
>   
>           if (release_lock) {
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               release_lock = false;
>           }
>   
> diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
> index 8f5159d85d..307344aa80 100644
> --- a/hw/s390x/s390-skeys.c
> +++ b/hw/s390x/s390-skeys.c
> @@ -153,7 +153,7 @@ void qmp_dump_skeys(const char *filename, Error **errp)
>           goto out;
>       }
>   
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>       guest_phys_blocks_init(&guest_phys_blocks);
>       guest_phys_blocks_append(&guest_phys_blocks);
>   
> diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c
> index 24347ab0f7..b5a2d377db 100644
> --- a/migration/block-dirty-bitmap.c
> +++ b/migration/block-dirty-bitmap.c
> @@ -774,7 +774,7 @@ static void dirty_bitmap_state_pending(void *opaque,
>       SaveBitmapState *dbms;
>       uint64_t pending = 0;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       QSIMPLEQ_FOREACH(dbms, &s->dbms_list, entry) {
>           uint64_t gran = bdrv_dirty_bitmap_granularity(dbms->bitmap);
> @@ -784,7 +784,7 @@ static void dirty_bitmap_state_pending(void *opaque,
>           pending += DIV_ROUND_UP(sectors * BDRV_SECTOR_SIZE, gran);
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       trace_dirty_bitmap_state_pending(pending);
>   
> diff --git a/migration/block.c b/migration/block.c
> index a15f9bddcb..87f36e6e35 100644
> --- a/migration/block.c
> +++ b/migration/block.c
> @@ -269,7 +269,7 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
>       int64_t count;
>   
>       if (bmds->shared_base) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           aio_context_acquire(blk_get_aio_context(bb));
>           /* Skip unallocated sectors; intentionally treats failure or
>            * partial sector as an allocated sector */
> @@ -282,7 +282,7 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
>               cur_sector += count >> BDRV_SECTOR_BITS;
>           }
>           aio_context_release(blk_get_aio_context(bb));
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   
>       if (cur_sector >= total_sectors) {
> @@ -321,14 +321,14 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
>        * This is ugly and will disappear when we make bdrv_* thread-safe,
>        * without the need to acquire the AioContext.
>        */
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       aio_context_acquire(blk_get_aio_context(bmds->blk));
>       bdrv_reset_dirty_bitmap(bmds->dirty_bitmap, cur_sector * BDRV_SECTOR_SIZE,
>                               nr_sectors * BDRV_SECTOR_SIZE);
>       blk->aiocb = blk_aio_preadv(bb, cur_sector * BDRV_SECTOR_SIZE, &blk->qiov,
>                                   0, blk_mig_read_cb, blk);
>       aio_context_release(blk_get_aio_context(bmds->blk));
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       bmds->cur_sector = cur_sector + nr_sectors;
>       return (bmds->cur_sector >= total_sectors);
> @@ -786,9 +786,9 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
>               /* Always called with iothread lock taken for
>                * simplicity, block_save_complete also calls it.
>                */
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>               ret = blk_mig_save_dirty_block(f, 1);
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>           }
>           if (ret < 0) {
>               return ret;
> @@ -860,9 +860,9 @@ static void block_state_pending(void *opaque, uint64_t *must_precopy,
>       /* Estimate pending number of bytes to send */
>       uint64_t pending;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       pending = get_remaining_dirty();
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       blk_mig_lock();
>       pending += block_mig_state.submitted * BLK_MIG_BLOCK_SIZE +
> diff --git a/migration/colo.c b/migration/colo.c
> index 4447e34914..2e68107cfa 100644
> --- a/migration/colo.c
> +++ b/migration/colo.c
> @@ -420,13 +420,13 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
>       qio_channel_io_seek(QIO_CHANNEL(bioc), 0, 0, NULL);
>       bioc->usage = 0;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       if (failover_get_state() != FAILOVER_STATUS_NONE) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           goto out;
>       }
>       vm_stop_force_state(RUN_STATE_COLO);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       trace_colo_vm_state_change("run", "stop");
>       /*
>        * Failover request bh could be called after vm_stop_force_state(),
> @@ -435,23 +435,23 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
>       if (failover_get_state() != FAILOVER_STATUS_NONE) {
>           goto out;
>       }
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       replication_do_checkpoint_all(&local_err);
>       if (local_err) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           goto out;
>       }
>   
>       colo_send_message(s->to_dst_file, COLO_MESSAGE_VMSTATE_SEND, &local_err);
>       if (local_err) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           goto out;
>       }
>       /* Note: device state is saved into buffer */
>       ret = qemu_save_device_state(fb);
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       if (ret < 0) {
>           goto out;
>       }
> @@ -504,9 +504,9 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
>   
>       ret = 0;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       vm_start();
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       trace_colo_vm_state_change("stop", "run");
>   
>   out:
> @@ -557,15 +557,15 @@ static void colo_process_checkpoint(MigrationState *s)
>       fb = qemu_file_new_output(QIO_CHANNEL(bioc));
>       object_unref(OBJECT(bioc));
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       replication_start_all(REPLICATION_MODE_PRIMARY, &local_err);
>       if (local_err) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           goto out;
>       }
>   
>       vm_start();
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       trace_colo_vm_state_change("stop", "run");
>   
>       timer_mod(s->colo_delay_timer, qemu_clock_get_ms(QEMU_CLOCK_HOST) +
> @@ -639,14 +639,14 @@ out:
>   
>   void migrate_start_colo_process(MigrationState *s)
>   {
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       qemu_event_init(&s->colo_checkpoint_event, false);
>       s->colo_delay_timer =  timer_new_ms(QEMU_CLOCK_HOST,
>                                   colo_checkpoint_notify, s);
>   
>       qemu_sem_init(&s->colo_exit_sem, 0);
>       colo_process_checkpoint(s);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   }
>   
>   static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
> @@ -657,9 +657,9 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>       Error *local_err = NULL;
>       int ret;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       vm_stop_force_state(RUN_STATE_COLO);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       trace_colo_vm_state_change("run", "stop");
>   
>       /* FIXME: This is unnecessary for periodic checkpoint mode */
> @@ -677,10 +677,10 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>           return;
>       }
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       cpu_synchronize_all_states();
>       ret = qemu_loadvm_state_main(mis->from_src_file, mis);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       if (ret < 0) {
>           error_setg(errp, "Load VM's live state (ram) error");
> @@ -719,14 +719,14 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>           return;
>       }
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       vmstate_loading = true;
>       colo_flush_ram_cache();
>       ret = qemu_load_device_state(fb);
>       if (ret < 0) {
>           error_setg(errp, "COLO: load device state failed");
>           vmstate_loading = false;
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           return;
>       }
>   
> @@ -734,7 +734,7 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>       if (local_err) {
>           error_propagate(errp, local_err);
>           vmstate_loading = false;
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           return;
>       }
>   
> @@ -743,7 +743,7 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>       if (local_err) {
>           error_propagate(errp, local_err);
>           vmstate_loading = false;
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           return;
>       }
>       /* Notify all filters of all NIC to do checkpoint */
> @@ -752,13 +752,13 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>       if (local_err) {
>           error_propagate(errp, local_err);
>           vmstate_loading = false;
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           return;
>       }
>   
>       vmstate_loading = false;
>       vm_start();
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       trace_colo_vm_state_change("stop", "run");
>   
>       if (failover_get_state() == FAILOVER_STATUS_RELAUNCH) {
> @@ -851,14 +851,14 @@ static void *colo_process_incoming_thread(void *opaque)
>       fb = qemu_file_new_input(QIO_CHANNEL(bioc));
>       object_unref(OBJECT(bioc));
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       replication_start_all(REPLICATION_MODE_SECONDARY, &local_err);
>       if (local_err) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           goto out;
>       }
>       vm_start();
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       trace_colo_vm_state_change("stop", "run");
>   
>       colo_send_message(mis->to_src_file, COLO_MESSAGE_CHECKPOINT_READY,
> @@ -920,7 +920,7 @@ int coroutine_fn colo_incoming_co(void)
>       Error *local_err = NULL;
>       QemuThread th;
>   
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>   
>       if (!migration_incoming_colo_enabled()) {
>           return 0;
> @@ -940,10 +940,10 @@ int coroutine_fn colo_incoming_co(void)
>       qemu_coroutine_yield();
>       mis->colo_incoming_co = NULL;
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       /* Wait checkpoint incoming thread exit before free resource */
>       qemu_thread_join(&th);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       /* We hold the global iothread lock, so it is safe here */
>       colo_release_ram_cache();
> diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
> index 036ac017fc..1d705092cd 100644
> --- a/migration/dirtyrate.c
> +++ b/migration/dirtyrate.c
> @@ -90,13 +90,13 @@ static int64_t do_calculate_dirtyrate(DirtyPageRecord dirty_pages,
>   
>   void global_dirty_log_change(unsigned int flag, bool start)
>   {
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       if (start) {
>           memory_global_dirty_log_start(flag);
>       } else {
>           memory_global_dirty_log_stop(flag);
>       }
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   /*
> @@ -106,12 +106,12 @@ void global_dirty_log_change(unsigned int flag, bool start)
>    */
>   static void global_dirty_log_sync(unsigned int flag, bool one_shot)
>   {
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       memory_global_dirty_log_sync(false);
>       if (one_shot) {
>           memory_global_dirty_log_stop(flag);
>       }
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   static DirtyPageRecord *vcpu_dirty_stat_alloc(VcpuStat *stat)
> @@ -610,7 +610,7 @@ static void calculate_dirtyrate_dirty_bitmap(struct DirtyRateConfig config)
>       int64_t start_time;
>       DirtyPageRecord dirty_pages;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       memory_global_dirty_log_start(GLOBAL_DIRTY_DIRTY_RATE);
>   
>       /*
> @@ -627,7 +627,7 @@ static void calculate_dirtyrate_dirty_bitmap(struct DirtyRateConfig config)
>        * KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE cap is enabled.
>        */
>       dirtyrate_manual_reset_protect();
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       record_dirtypages_bitmap(&dirty_pages, true);
>   
> diff --git a/migration/migration.c b/migration/migration.c
> index 28a34c9068..b153133fba 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -1293,12 +1293,12 @@ static void migrate_fd_cleanup(MigrationState *s)
>           QEMUFile *tmp;
>   
>           trace_migrate_fd_cleanup();
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           if (s->migration_thread_running) {
>               qemu_thread_join(&s->thread);
>               s->migration_thread_running = false;
>           }
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>   
>           multifd_save_cleanup();
>           qemu_mutex_lock(&s->qemu_file_lock);
> @@ -2410,7 +2410,7 @@ static int postcopy_start(MigrationState *ms, Error **errp)
>       }
>   
>       trace_postcopy_start();
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       trace_postcopy_start_set_run();
>   
>       migration_downtime_start(ms);
> @@ -2519,7 +2519,7 @@ static int postcopy_start(MigrationState *ms, Error **errp)
>   
>       migration_downtime_end(ms);
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       if (migrate_postcopy_ram()) {
>           /*
> @@ -2560,7 +2560,7 @@ fail:
>               error_report_err(local_err);
>           }
>       }
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       return -1;
>   }
>   
> @@ -2594,14 +2594,14 @@ static int migration_maybe_pause(MigrationState *s,
>        * wait for the 'pause_sem' semaphore.
>        */
>       if (s->state != MIGRATION_STATUS_CANCELLING) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           migrate_set_state(&s->state, *current_active_state,
>                             MIGRATION_STATUS_PRE_SWITCHOVER);
>           qemu_sem_wait(&s->pause_sem);
>           migrate_set_state(&s->state, MIGRATION_STATUS_PRE_SWITCHOVER,
>                             new_state);
>           *current_active_state = new_state;
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>   
>       return s->state == new_state ? 0 : -EINVAL;
> @@ -2612,7 +2612,7 @@ static int migration_completion_precopy(MigrationState *s,
>   {
>       int ret;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       migration_downtime_start(s);
>       qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER, NULL);
>   
> @@ -2640,7 +2640,7 @@ static int migration_completion_precopy(MigrationState *s,
>       ret = qemu_savevm_state_complete_precopy(s->to_dst_file, false,
>                                                s->block_inactive);
>   out_unlock:
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       return ret;
>   }
>   
> @@ -2648,9 +2648,9 @@ static void migration_completion_postcopy(MigrationState *s)
>   {
>       trace_migration_completion_postcopy_end();
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       qemu_savevm_state_complete_postcopy(s->to_dst_file);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       /*
>        * Shutdown the postcopy fast path thread.  This is only needed when dest
> @@ -2674,14 +2674,14 @@ static void migration_completion_failed(MigrationState *s,
>            */
>           Error *local_err = NULL;
>   
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           bdrv_activate_all(&local_err);
>           if (local_err) {
>               error_report_err(local_err);
>           } else {
>               s->block_inactive = false;
>           }
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   
>       migrate_set_state(&s->state, current_active_state,
> @@ -3121,7 +3121,7 @@ static void migration_iteration_finish(MigrationState *s)
>       /* If we enabled cpu throttling for auto-converge, turn it off. */
>       cpu_throttle_stop();
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       switch (s->state) {
>       case MIGRATION_STATUS_COMPLETED:
>           migration_calculate_complete(s);
> @@ -3152,7 +3152,7 @@ static void migration_iteration_finish(MigrationState *s)
>           break;
>       }
>       migrate_fd_cleanup_schedule(s);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   static void bg_migration_iteration_finish(MigrationState *s)
> @@ -3164,7 +3164,7 @@ static void bg_migration_iteration_finish(MigrationState *s)
>        */
>       ram_write_tracking_stop();
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       switch (s->state) {
>       case MIGRATION_STATUS_COMPLETED:
>           migration_calculate_complete(s);
> @@ -3183,7 +3183,7 @@ static void bg_migration_iteration_finish(MigrationState *s)
>       }
>   
>       migrate_fd_cleanup_schedule(s);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   /*
> @@ -3305,9 +3305,9 @@ static void *migration_thread(void *opaque)
>       object_ref(OBJECT(s));
>       update_iteration_initial_status(s);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       qemu_savevm_state_header(s->to_dst_file);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       /*
>        * If we opened the return path, we need to make sure dst has it
> @@ -3335,9 +3335,9 @@ static void *migration_thread(void *opaque)
>           qemu_savevm_send_colo_enable(s->to_dst_file);
>       }
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       qemu_savevm_state_setup(s->to_dst_file);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,
>                                  MIGRATION_STATUS_ACTIVE);
> @@ -3448,10 +3448,10 @@ static void *bg_migration_thread(void *opaque)
>       ram_write_tracking_prepare();
>   #endif
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       qemu_savevm_state_header(s->to_dst_file);
>       qemu_savevm_state_setup(s->to_dst_file);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,
>                                  MIGRATION_STATUS_ACTIVE);
> @@ -3461,7 +3461,7 @@ static void *bg_migration_thread(void *opaque)
>       trace_migration_thread_setup_complete();
>       migration_downtime_start(s);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       /*
>        * If VM is currently in suspended state, then, to make a valid runstate
> @@ -3504,7 +3504,7 @@ static void *bg_migration_thread(void *opaque)
>       s->vm_start_bh = qemu_bh_new(bg_migration_vm_start_bh, s);
>       qemu_bh_schedule(s->vm_start_bh);
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       while (migration_is_active(s)) {
>           MigIterateState iter_state = bg_migration_iteration_run(s);
> @@ -3533,7 +3533,7 @@ fail:
>       if (early_fail) {
>           migrate_set_state(&s->state, MIGRATION_STATUS_ACTIVE,
>                   MIGRATION_STATUS_FAILED);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   
>       bg_migration_iteration_finish(s);
> diff --git a/migration/ram.c b/migration/ram.c
> index 8c7886ab79..f274bcf655 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -2984,9 +2984,9 @@ static int ram_save_setup(QEMUFile *f, void *opaque)
>       migration_ops = g_malloc0(sizeof(MigrationOps));
>       migration_ops->ram_save_target_page = ram_save_target_page_legacy;
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       ret = multifd_send_sync_main(f);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       if (ret < 0) {
>           return ret;
>       }
> @@ -3221,11 +3221,11 @@ static void ram_state_pending_exact(void *opaque, uint64_t *must_precopy,
>       uint64_t remaining_size = rs->migration_dirty_pages * TARGET_PAGE_SIZE;
>   
>       if (!migration_in_postcopy() && remaining_size < s->threshold_size) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           WITH_RCU_READ_LOCK_GUARD() {
>               migration_bitmap_sync_precopy(rs, false);
>           }
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           remaining_size = rs->migration_dirty_pages * TARGET_PAGE_SIZE;
>       }
>   
> @@ -3453,7 +3453,7 @@ void colo_incoming_start_dirty_log(void)
>   {
>       RAMBlock *block = NULL;
>       /* For memory_global_dirty_log_start below. */
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       qemu_mutex_lock_ramlist();
>   
>       memory_global_dirty_log_sync(false);
> @@ -3467,7 +3467,7 @@ void colo_incoming_start_dirty_log(void)
>       }
>       ram_state->migration_dirty_pages = 0;
>       qemu_mutex_unlock_ramlist();
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   /* It is need to hold the global lock to call this helper */
> diff --git a/replay/replay-internal.c b/replay/replay-internal.c
> index 77d0c82327..04c9c6374b 100644
> --- a/replay/replay-internal.c
> +++ b/replay/replay-internal.c
> @@ -216,7 +216,7 @@ void replay_mutex_lock(void)
>   {
>       if (replay_mode != REPLAY_MODE_NONE) {
>           unsigned long id;
> -        g_assert(!qemu_mutex_iothread_locked());
> +        g_assert(!qemu_bql_locked());
>           g_assert(!replay_mutex_locked());
>           qemu_mutex_lock(&lock);
>           id = mutex_tail++;
> diff --git a/semihosting/console.c b/semihosting/console.c
> index 5d61e8207e..666285541d 100644
> --- a/semihosting/console.c
> +++ b/semihosting/console.c
> @@ -43,7 +43,7 @@ static SemihostingConsole console;
>   static int console_can_read(void *opaque)
>   {
>       SemihostingConsole *c = opaque;
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>       return (int)fifo8_num_free(&c->fifo);
>   }
>   
> @@ -58,7 +58,7 @@ static void console_wake_up(gpointer data, gpointer user_data)
>   static void console_read(void *opaque, const uint8_t *buf, int size)
>   {
>       SemihostingConsole *c = opaque;
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>       while (size-- && !fifo8_is_full(&c->fifo)) {
>           fifo8_push(&c->fifo, *buf++);
>       }
> @@ -70,7 +70,7 @@ bool qemu_semihosting_console_ready(void)
>   {
>       SemihostingConsole *c = &console;
>   
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>       return !fifo8_is_empty(&c->fifo);
>   }
>   
> @@ -78,7 +78,7 @@ void qemu_semihosting_console_block_until_ready(CPUState *cs)
>   {
>       SemihostingConsole *c = &console;
>   
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>   
>       /* Block if the fifo is completely empty. */
>       if (fifo8_is_empty(&c->fifo)) {
> diff --git a/stubs/iothread-lock.c b/stubs/iothread-lock.c
> index 5b45b7fc8b..1f24c3203a 100644
> --- a/stubs/iothread-lock.c
> +++ b/stubs/iothread-lock.c
> @@ -1,15 +1,15 @@
>   #include "qemu/osdep.h"
>   #include "qemu/main-loop.h"
>   
> -bool qemu_mutex_iothread_locked(void)
> +bool qemu_bql_locked(void)
>   {
>       return false;
>   }
>   
> -void qemu_mutex_lock_iothread_impl(const char *file, int line)
> +void qemu_bql_lock_impl(const char *file, int line)
>   {
>   }
>   
> -void qemu_mutex_unlock_iothread(void)
> +void qemu_bql_unlock(void)
>   {
>   }
> diff --git a/system/cpu-throttle.c b/system/cpu-throttle.c
> index d9bb30a223..e98836311b 100644
> --- a/system/cpu-throttle.c
> +++ b/system/cpu-throttle.c
> @@ -57,9 +57,9 @@ static void cpu_throttle_thread(CPUState *cpu, run_on_cpu_data opaque)
>               qemu_cond_timedwait_iothread(cpu->halt_cond,
>                                            sleeptime_ns / SCALE_MS);
>           } else {
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               g_usleep(sleeptime_ns / SCALE_US);
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>           }
>           sleeptime_ns = endtime_ns - qemu_clock_get_ns(QEMU_CLOCK_REALTIME);
>       }
> diff --git a/system/cpus.c b/system/cpus.c
> index a444a747f0..d5b98c11f5 100644
> --- a/system/cpus.c
> +++ b/system/cpus.c
> @@ -481,35 +481,35 @@ bool qemu_in_vcpu_thread(void)
>       return current_cpu && qemu_cpu_is_self(current_cpu);
>   }
>   
> -QEMU_DEFINE_STATIC_CO_TLS(bool, iothread_locked)
> +QEMU_DEFINE_STATIC_CO_TLS(bool, bql_locked)
>   
> -bool qemu_mutex_iothread_locked(void)
> +bool qemu_bql_locked(void)
>   {
> -    return get_iothread_locked();
> +    return get_bql_locked();
>   }
>   
>   bool qemu_in_main_thread(void)
>   {
> -    return qemu_mutex_iothread_locked();
> +    return qemu_bql_locked();
>   }
>   
>   /*
>    * The BQL is taken from so many places that it is worth profiling the
>    * callers directly, instead of funneling them all through a single function.
>    */
> -void qemu_mutex_lock_iothread_impl(const char *file, int line)
> +void qemu_bql_lock_impl(const char *file, int line)
>   {
>       QemuMutexLockFunc bql_lock = qatomic_read(&qemu_bql_mutex_lock_func);
>   
> -    g_assert(!qemu_mutex_iothread_locked());
> +    g_assert(!qemu_bql_locked());
>       bql_lock(&qemu_global_mutex, file, line);
> -    set_iothread_locked(true);
> +    set_bql_locked(true);
>   }
>   
> -void qemu_mutex_unlock_iothread(void)
> +void qemu_bql_unlock(void)
>   {
> -    g_assert(qemu_mutex_iothread_locked());
> -    set_iothread_locked(false);
> +    g_assert(qemu_bql_locked());
> +    set_bql_locked(false);
>       qemu_mutex_unlock(&qemu_global_mutex);
>   }
>   
> @@ -577,9 +577,9 @@ void pause_all_vcpus(void)
>           }
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       replay_mutex_lock();
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   }
>   
>   void cpu_resume(CPUState *cpu)
> @@ -608,9 +608,9 @@ void cpu_remove_sync(CPUState *cpu)
>       cpu->stop = true;
>       cpu->unplug = true;
>       qemu_cpu_kick(cpu);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       qemu_thread_join(cpu->thread);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   }
>   
>   void cpus_register_accel(const AccelOpsClass *ops)
> diff --git a/system/dirtylimit.c b/system/dirtylimit.c
> index 495c7a7082..f89bf6b61f 100644
> --- a/system/dirtylimit.c
> +++ b/system/dirtylimit.c
> @@ -148,9 +148,9 @@ void vcpu_dirty_rate_stat_stop(void)
>   {
>       qatomic_set(&vcpu_dirty_rate_stat->running, 0);
>       dirtylimit_state_unlock();
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       qemu_thread_join(&vcpu_dirty_rate_stat->thread);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       dirtylimit_state_lock();
>   }
>   
> diff --git a/system/memory.c b/system/memory.c
> index 4d9cb0a7ff..8d78334cb2 100644
> --- a/system/memory.c
> +++ b/system/memory.c
> @@ -1119,7 +1119,7 @@ void memory_region_transaction_commit(void)
>       AddressSpace *as;
>   
>       assert(memory_region_transaction_depth);
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>   
>       --memory_region_transaction_depth;
>       if (!memory_region_transaction_depth) {
> diff --git a/system/physmem.c b/system/physmem.c
> index a63853a7bc..c136675876 100644
> --- a/system/physmem.c
> +++ b/system/physmem.c
> @@ -2639,8 +2639,8 @@ bool prepare_mmio_access(MemoryRegion *mr)
>   {
>       bool release_lock = false;
>   
> -    if (!qemu_mutex_iothread_locked()) {
> -        qemu_mutex_lock_iothread();
> +    if (!qemu_bql_locked()) {
> +        qemu_bql_lock();
>           release_lock = true;
>       }
>       if (mr->flush_coalesced_mmio) {
> @@ -2721,7 +2721,7 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
>           }
>   
>           if (release_lock) {
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               release_lock = false;
>           }
>   
> @@ -2799,7 +2799,7 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
>           }
>   
>           if (release_lock) {
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               release_lock = false;
>           }
>   
> diff --git a/system/runstate.c b/system/runstate.c
> index ea9d6c2a32..5718e6827c 100644
> --- a/system/runstate.c
> +++ b/system/runstate.c
> @@ -810,7 +810,7 @@ void qemu_init_subsystems(void)
>   
>       qemu_init_cpu_list();
>       qemu_init_cpu_loop();
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       atexit(qemu_run_exit_notifiers);
>   
> diff --git a/system/watchpoint.c b/system/watchpoint.c
> index ba5ad13352..d9cc71dd33 100644
> --- a/system/watchpoint.c
> +++ b/system/watchpoint.c
> @@ -155,9 +155,9 @@ void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr len,
>            * Now raise the debug interrupt so that it will
>            * trigger after the current instruction.
>            */
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_interrupt(cpu, CPU_INTERRUPT_DEBUG);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           return;
>       }
>   
> diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c
> index c078849403..aec104834d 100644
> --- a/target/arm/arm-powerctl.c
> +++ b/target/arm/arm-powerctl.c
> @@ -88,7 +88,7 @@ static void arm_set_cpu_on_async_work(CPUState *target_cpu_state,
>       g_free(info);
>   
>       /* Finally set the power status */
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>       target_cpu->power_state = PSCI_ON;
>   }
>   
> @@ -99,7 +99,7 @@ int arm_set_cpu_on(uint64_t cpuid, uint64_t entry, uint64_t context_id,
>       ARMCPU *target_cpu;
>       struct CpuOnInfo *info;
>   
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>   
>       DPRINTF("cpu %" PRId64 " (EL %d, %s) @ 0x%" PRIx64 " with R0 = 0x%" PRIx64
>               "\n", cpuid, target_el, target_aa64 ? "aarch64" : "aarch32", entry,
> @@ -196,7 +196,7 @@ static void arm_set_cpu_on_and_reset_async_work(CPUState *target_cpu_state,
>       target_cpu_state->halted = 0;
>   
>       /* Finally set the power status */
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>       target_cpu->power_state = PSCI_ON;
>   }
>   
> @@ -205,7 +205,7 @@ int arm_set_cpu_on_and_reset(uint64_t cpuid)
>       CPUState *target_cpu_state;
>       ARMCPU *target_cpu;
>   
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>   
>       /* Retrieve the cpu we are powering up */
>       target_cpu_state = arm_get_cpu_by_id(cpuid);
> @@ -247,7 +247,7 @@ static void arm_set_cpu_off_async_work(CPUState *target_cpu_state,
>   {
>       ARMCPU *target_cpu = ARM_CPU(target_cpu_state);
>   
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>       target_cpu->power_state = PSCI_OFF;
>       target_cpu_state->halted = 1;
>       target_cpu_state->exception_index = EXCP_HLT;
> @@ -258,7 +258,7 @@ int arm_set_cpu_off(uint64_t cpuid)
>       CPUState *target_cpu_state;
>       ARMCPU *target_cpu;
>   
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>   
>       DPRINTF("cpu %" PRId64 "\n", cpuid);
>   
> @@ -294,7 +294,7 @@ int arm_reset_cpu(uint64_t cpuid)
>       CPUState *target_cpu_state;
>       ARMCPU *target_cpu;
>   
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>   
>       DPRINTF("cpu %" PRId64 "\n", cpuid);
>   
> diff --git a/target/arm/helper.c b/target/arm/helper.c
> index 2746d3fdac..f472043986 100644
> --- a/target/arm/helper.c
> +++ b/target/arm/helper.c
> @@ -5831,7 +5831,7 @@ static void do_hcr_write(CPUARMState *env, uint64_t value, uint64_t valid_mask)
>        * VFIQ are masked unless running at EL0 or EL1, and HCR
>        * can only be written at EL2.
>        */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>       arm_cpu_update_virq(cpu);
>       arm_cpu_update_vfiq(cpu);
>       arm_cpu_update_vserr(cpu);
> @@ -11344,7 +11344,7 @@ void arm_cpu_do_interrupt(CPUState *cs)
>        * BQL needs to be held for any modification of
>        * cs->interrupt_request.
>        */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>   
>       arm_call_pre_el_change_hook(cpu);
>   
> diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
> index 757e13b0f9..017fd13c5d 100644
> --- a/target/arm/hvf/hvf.c
> +++ b/target/arm/hvf/hvf.c
> @@ -1718,9 +1718,9 @@ static void hvf_wait_for_ipi(CPUState *cpu, struct timespec *ts)
>        * sleeping.
>        */
>       qatomic_set_mb(&cpu->thread_kicked, false);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       pselect(0, 0, 0, 0, ts, &cpu->accel->unblock_ipi_mask);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   }
>   
>   static void hvf_wfi(CPUState *cpu)
> @@ -1821,7 +1821,7 @@ int hvf_vcpu_exec(CPUState *cpu)
>   
>       flush_cpu_state(cpu);
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       assert_hvf_ok(hv_vcpu_run(cpu->accel->fd));
>   
>       /* handle VMEXIT */
> @@ -1830,7 +1830,7 @@ int hvf_vcpu_exec(CPUState *cpu)
>       uint32_t ec = syn_get_ec(syndrome);
>   
>       ret = 0;
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       switch (exit_reason) {
>       case HV_EXIT_REASON_EXCEPTION:
>           /* This is the main one, handle below. */
> diff --git a/target/arm/kvm.c b/target/arm/kvm.c
> index 7903e2ddde..431b82e509 100644
> --- a/target/arm/kvm.c
> +++ b/target/arm/kvm.c
> @@ -833,7 +833,7 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
>       if (run->s.regs.device_irq_level != cpu->device_irq_level) {
>           switched_level = cpu->device_irq_level ^ run->s.regs.device_irq_level;
>   
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>   
>           if (switched_level & KVM_ARM_DEV_EL1_VTIMER) {
>               qemu_set_irq(cpu->gt_timer_outputs[GTIMER_VIRT],
> @@ -862,7 +862,7 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
>   
>           /* We also mark unknown levels as processed to not waste cycles */
>           cpu->device_irq_level = run->s.regs.device_irq_level;
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   
>       return MEMTXATTRS_UNSPECIFIED;
> diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c
> index 3c175c93a7..282dc5920e 100644
> --- a/target/arm/kvm64.c
> +++ b/target/arm/kvm64.c
> @@ -1233,9 +1233,9 @@ bool kvm_arm_handle_debug(CPUState *cs, struct kvm_debug_exit_arch *debug_exit)
>       env->exception.syndrome = debug_exit->hsr;
>       env->exception.vaddress = debug_exit->far;
>       env->exception.target_el = 1;
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       arm_cpu_do_interrupt(cs);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       return false;
>   }
> diff --git a/target/arm/ptw.c b/target/arm/ptw.c
> index 1762b058ae..e3cc0a7ab8 100644
> --- a/target/arm/ptw.c
> +++ b/target/arm/ptw.c
> @@ -772,9 +772,9 @@ static uint64_t arm_casq_ptw(CPUARMState *env, uint64_t old_val,
>   #if !TCG_OVERSIZED_GUEST
>   # error "Unexpected configuration"
>   #endif
> -    bool locked = qemu_mutex_iothread_locked();
> +    bool locked = qemu_bql_locked();
>       if (!locked) {
> -       qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>       if (ptw->out_be) {
>           cur_val = ldq_be_p(host);
> @@ -788,7 +788,7 @@ static uint64_t arm_casq_ptw(CPUARMState *env, uint64_t old_val,
>           }
>       }
>       if (!locked) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   #endif
>   
> diff --git a/target/arm/tcg/helper-a64.c b/target/arm/tcg/helper-a64.c
> index 8ad84623d3..22d453e6e0 100644
> --- a/target/arm/tcg/helper-a64.c
> +++ b/target/arm/tcg/helper-a64.c
> @@ -809,9 +809,9 @@ void HELPER(exception_return)(CPUARMState *env, uint64_t new_pc)
>           goto illegal_return;
>       }
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       arm_call_pre_el_change_hook(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       if (!return_to_aa64) {
>           env->aarch64 = false;
> @@ -876,9 +876,9 @@ void HELPER(exception_return)(CPUARMState *env, uint64_t new_pc)
>        */
>       aarch64_sve_change_el(env, cur_el, new_el, return_to_aa64);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       arm_call_el_change_hook(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       return;
>   
> diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c
> index a26adb75aa..5f38b9a4a1 100644
> --- a/target/arm/tcg/m_helper.c
> +++ b/target/arm/tcg/m_helper.c
> @@ -374,7 +374,7 @@ void HELPER(v7m_preserve_fp_state)(CPUARMState *env)
>       bool take_exception;
>   
>       /* Take the iothread lock as we are going to touch the NVIC */
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       /* Check the background context had access to the FPU */
>       if (!v7m_cpacr_pass(env, is_secure, is_priv)) {
> @@ -428,7 +428,7 @@ void HELPER(v7m_preserve_fp_state)(CPUARMState *env)
>       take_exception = !stacked_ok &&
>           armv7m_nvic_can_take_pending_exception(env->nvic);
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       if (take_exception) {
>           raise_exception_ra(env, EXCP_LAZYFP, 0, 1, GETPC());
> diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c
> index ea08936a85..46a14aac52 100644
> --- a/target/arm/tcg/op_helper.c
> +++ b/target/arm/tcg/op_helper.c
> @@ -427,9 +427,9 @@ void HELPER(cpsr_write_eret)(CPUARMState *env, uint32_t val)
>   {
>       uint32_t mask;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       arm_call_pre_el_change_hook(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       mask = aarch32_cpsr_valid_mask(env->features, &env_archcpu(env)->isar);
>       cpsr_write(env, val, mask, CPSRWriteExceptionReturn);
> @@ -442,9 +442,9 @@ void HELPER(cpsr_write_eret)(CPUARMState *env, uint32_t val)
>       env->regs[15] &= (env->thumb ? ~1 : ~3);
>       arm_rebuild_hflags(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       arm_call_el_change_hook(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   /* Access to user mode registers from privileged modes.  */
> @@ -803,9 +803,9 @@ void HELPER(set_cp_reg)(CPUARMState *env, const void *rip, uint32_t value)
>       const ARMCPRegInfo *ri = rip;
>   
>       if (ri->type & ARM_CP_IO) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           ri->writefn(env, ri, value);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       } else {
>           ri->writefn(env, ri, value);
>       }
> @@ -817,9 +817,9 @@ uint32_t HELPER(get_cp_reg)(CPUARMState *env, const void *rip)
>       uint32_t res;
>   
>       if (ri->type & ARM_CP_IO) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           res = ri->readfn(env, ri);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       } else {
>           res = ri->readfn(env, ri);
>       }
> @@ -832,9 +832,9 @@ void HELPER(set_cp_reg64)(CPUARMState *env, const void *rip, uint64_t value)
>       const ARMCPRegInfo *ri = rip;
>   
>       if (ri->type & ARM_CP_IO) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           ri->writefn(env, ri, value);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       } else {
>           ri->writefn(env, ri, value);
>       }
> @@ -846,9 +846,9 @@ uint64_t HELPER(get_cp_reg64)(CPUARMState *env, const void *rip)
>       uint64_t res;
>   
>       if (ri->type & ARM_CP_IO) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           res = ri->readfn(env, ri);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       } else {
>           res = ri->readfn(env, ri);
>       }
> diff --git a/target/arm/tcg/psci.c b/target/arm/tcg/psci.c
> index 6c1239bb96..51af10db99 100644
> --- a/target/arm/tcg/psci.c
> +++ b/target/arm/tcg/psci.c
> @@ -107,7 +107,7 @@ void arm_handle_psci_call(ARMCPU *cpu)
>               }
>               target_cpu = ARM_CPU(target_cpu_state);
>   
> -            g_assert(qemu_mutex_iothread_locked());
> +            g_assert(qemu_bql_locked());
>               ret = target_cpu->power_state;
>               break;
>           default:
> diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
> index 98e9d688f6..9ef8cf7ff4 100644
> --- a/target/hppa/int_helper.c
> +++ b/target/hppa/int_helper.c
> @@ -84,17 +84,17 @@ void hppa_cpu_alarm_timer(void *opaque)
>   void HELPER(write_eirr)(CPUHPPAState *env, target_ulong val)
>   {
>       env->cr[CR_EIRR] &= ~val;
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       eval_interrupt(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(write_eiem)(CPUHPPAState *env, target_ulong val)
>   {
>       env->cr[CR_EIEM] = val;
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       eval_interrupt(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void hppa_cpu_do_interrupt(CPUState *cs)
> diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c
> index 20b9ca3ef5..2cc8b115f7 100644
> --- a/target/i386/hvf/hvf.c
> +++ b/target/i386/hvf/hvf.c
> @@ -429,9 +429,9 @@ int hvf_vcpu_exec(CPUState *cpu)
>           }
>           vmx_update_tpr(cpu);
>   
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           if (!cpu_is_bsp(X86_CPU(cpu)) && cpu->halted) {
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>               return EXCP_HLT;
>           }
>   
> @@ -450,7 +450,7 @@ int hvf_vcpu_exec(CPUState *cpu)
>           rip = rreg(cpu->accel->fd, HV_X86_RIP);
>           env->eflags = rreg(cpu->accel->fd, HV_X86_RFLAGS);
>   
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>   
>           update_apic_tpr(cpu);
>           current_cpu = cpu;
> diff --git a/target/i386/kvm/hyperv.c b/target/i386/kvm/hyperv.c
> index e3ac978648..dcad09f6c9 100644
> --- a/target/i386/kvm/hyperv.c
> +++ b/target/i386/kvm/hyperv.c
> @@ -45,9 +45,9 @@ void hyperv_x86_synic_update(X86CPU *cpu)
>   
>   static void async_synic_update(CPUState *cs, run_on_cpu_data data)
>   {
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       hyperv_x86_synic_update(X86_CPU(cs));
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit)
> diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
> index 11b8177eff..084f5e6b8b 100644
> --- a/target/i386/kvm/kvm.c
> +++ b/target/i386/kvm/kvm.c
> @@ -4705,9 +4705,9 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
>       /* Inject NMI */
>       if (cpu->interrupt_request & (CPU_INTERRUPT_NMI | CPU_INTERRUPT_SMI)) {
>           if (cpu->interrupt_request & CPU_INTERRUPT_NMI) {
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>               cpu->interrupt_request &= ~CPU_INTERRUPT_NMI;
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               DPRINTF("injected NMI\n");
>               ret = kvm_vcpu_ioctl(cpu, KVM_NMI);
>               if (ret < 0) {
> @@ -4716,9 +4716,9 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
>               }
>           }
>           if (cpu->interrupt_request & CPU_INTERRUPT_SMI) {
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>               cpu->interrupt_request &= ~CPU_INTERRUPT_SMI;
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               DPRINTF("injected SMI\n");
>               ret = kvm_vcpu_ioctl(cpu, KVM_SMI);
>               if (ret < 0) {
> @@ -4729,7 +4729,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
>       }
>   
>       if (!kvm_pic_in_kernel()) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>   
>       /* Force the VCPU out of its inner loop to process any INIT requests
> @@ -4782,7 +4782,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
>           DPRINTF("setting tpr\n");
>           run->cr8 = cpu_get_apic_tpr(x86_cpu->apic_state);
>   
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   }
>   
> @@ -4830,12 +4830,12 @@ MemTxAttrs kvm_arch_post_run(CPUState *cpu, struct kvm_run *run)
>       /* We need to protect the apic state against concurrent accesses from
>        * different threads in case the userspace irqchip is used. */
>       if (!kvm_irqchip_in_kernel()) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>       cpu_set_apic_tpr(x86_cpu->apic_state, run->cr8);
>       cpu_set_apic_base(x86_cpu->apic_state, run->apic_base);
>       if (!kvm_irqchip_in_kernel()) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       return cpu_get_mem_attrs(env);
>   }
> @@ -5269,17 +5269,17 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
>       switch (run->exit_reason) {
>       case KVM_EXIT_HLT:
>           DPRINTF("handle_hlt\n");
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           ret = kvm_handle_halt(cpu);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           break;
>       case KVM_EXIT_SET_TPR:
>           ret = 0;
>           break;
>       case KVM_EXIT_TPR_ACCESS:
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           ret = kvm_handle_tpr_access(cpu);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           break;
>       case KVM_EXIT_FAIL_ENTRY:
>           code = run->fail_entry.hardware_entry_failure_reason;
> @@ -5305,9 +5305,9 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
>           break;
>       case KVM_EXIT_DEBUG:
>           DPRINTF("kvm_exit_debug\n");
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           ret = kvm_handle_debug(cpu, &run->debug.arch);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           break;
>       case KVM_EXIT_HYPERV:
>           ret = kvm_hv_handle_exit(cpu, &run->hyperv);
> diff --git a/target/i386/kvm/xen-emu.c b/target/i386/kvm/xen-emu.c
> index c0631f9cf4..f79f5d270f 100644
> --- a/target/i386/kvm/xen-emu.c
> +++ b/target/i386/kvm/xen-emu.c
> @@ -403,7 +403,7 @@ void kvm_xen_maybe_deassert_callback(CPUState *cs)
>   
>       /* If the evtchn_upcall_pending flag is cleared, turn the GSI off. */
>       if (!vi->evtchn_upcall_pending) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           /*
>            * Check again now we have the lock, because it may have been
>            * asserted in the interim. And we don't want to take the lock
> @@ -413,7 +413,7 @@ void kvm_xen_maybe_deassert_callback(CPUState *cs)
>               X86_CPU(cs)->env.xen_callback_asserted = false;
>               xen_evtchn_set_callback_level(0);
>           }
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   }
>   
> @@ -773,9 +773,9 @@ static bool handle_set_param(struct kvm_xen_exit *exit, X86CPU *cpu,
>   
>       switch (hp.index) {
>       case HVM_PARAM_CALLBACK_IRQ:
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           err = xen_evtchn_set_callback_param(hp.value);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           xen_set_long_mode(exit->u.hcall.longmode);
>           break;
>       default:
> @@ -1408,7 +1408,7 @@ int kvm_xen_soft_reset(void)
>       CPUState *cpu;
>       int err;
>   
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>   
>       trace_kvm_xen_soft_reset();
>   
> @@ -1481,9 +1481,9 @@ static int schedop_shutdown(CPUState *cs, uint64_t arg)
>           break;
>   
>       case SHUTDOWN_soft_reset:
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           ret = kvm_xen_soft_reset();
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           break;
>   
>       default:
> diff --git a/target/i386/nvmm/nvmm-accel-ops.c b/target/i386/nvmm/nvmm-accel-ops.c
> index 6c46101ac1..387ccfcce5 100644
> --- a/target/i386/nvmm/nvmm-accel-ops.c
> +++ b/target/i386/nvmm/nvmm-accel-ops.c
> @@ -25,7 +25,7 @@ static void *qemu_nvmm_cpu_thread_fn(void *arg)
>   
>       rcu_register_thread();
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       qemu_thread_get_self(cpu->thread);
>       cpu->thread_id = qemu_get_thread_id();
>       current_cpu = cpu;
> @@ -55,7 +55,7 @@ static void *qemu_nvmm_cpu_thread_fn(void *arg)
>   
>       nvmm_destroy_vcpu(cpu);
>       cpu_thread_signal_destroyed(cpu);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       rcu_unregister_thread();
>       return NULL;
>   }
> diff --git a/target/i386/nvmm/nvmm-all.c b/target/i386/nvmm/nvmm-all.c
> index 7d752bc5e0..9fa5b2e34a 100644
> --- a/target/i386/nvmm/nvmm-all.c
> +++ b/target/i386/nvmm/nvmm-all.c
> @@ -399,7 +399,7 @@ nvmm_vcpu_pre_run(CPUState *cpu)
>       uint8_t tpr;
>       int ret;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       tpr = cpu_get_apic_tpr(x86_cpu->apic_state);
>       if (tpr != qcpu->tpr) {
> @@ -462,7 +462,7 @@ nvmm_vcpu_pre_run(CPUState *cpu)
>           }
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   /*
> @@ -485,9 +485,9 @@ nvmm_vcpu_post_run(CPUState *cpu, struct nvmm_vcpu_exit *exit)
>       tpr = exit->exitstate.cr8;
>       if (qcpu->tpr != tpr) {
>           qcpu->tpr = tpr;
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_set_apic_tpr(x86_cpu->apic_state, qcpu->tpr);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   }
>   
> @@ -648,7 +648,7 @@ nvmm_handle_halted(struct nvmm_machine *mach, CPUState *cpu,
>       CPUX86State *env = cpu_env(cpu);
>       int ret = 0;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       if (!((cpu->interrupt_request & CPU_INTERRUPT_HARD) &&
>             (env->eflags & IF_MASK)) &&
> @@ -658,7 +658,7 @@ nvmm_handle_halted(struct nvmm_machine *mach, CPUState *cpu,
>           ret = 1;
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       return ret;
>   }
> @@ -721,7 +721,7 @@ nvmm_vcpu_loop(CPUState *cpu)
>           return 0;
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       cpu_exec_start(cpu);
>   
>       /*
> @@ -806,16 +806,16 @@ nvmm_vcpu_loop(CPUState *cpu)
>               error_report("NVMM: Unexpected VM exit code 0x%lx [hw=0x%lx]",
>                   exit->reason, exit->u.inv.hwcode);
>               nvmm_get_registers(cpu);
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>               qemu_system_guest_panicked(cpu_get_crash_info(cpu));
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               ret = -1;
>               break;
>           }
>       } while (ret == 0);
>   
>       cpu_exec_end(cpu);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       qatomic_set(&cpu->exit_request, false);
>   
> diff --git a/target/i386/tcg/sysemu/fpu_helper.c b/target/i386/tcg/sysemu/fpu_helper.c
> index 93506cdd94..4960e97ebc 100644
> --- a/target/i386/tcg/sysemu/fpu_helper.c
> +++ b/target/i386/tcg/sysemu/fpu_helper.c
> @@ -32,9 +32,9 @@ void x86_register_ferr_irq(qemu_irq irq)
>   void fpu_check_raise_ferr_irq(CPUX86State *env)
>   {
>       if (ferr_irq && !(env->hflags2 & HF2_IGNNE_MASK)) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           qemu_irq_raise(ferr_irq);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           return;
>       }
>   }
> @@ -49,7 +49,7 @@ void cpu_set_ignne(void)
>   {
>       CPUX86State *env = &X86_CPU(first_cpu)->env;
>   
> -    assert(qemu_mutex_iothread_locked());
> +    assert(qemu_bql_locked());
>   
>       env->hflags2 |= HF2_IGNNE_MASK;
>       /*
> diff --git a/target/i386/tcg/sysemu/misc_helper.c b/target/i386/tcg/sysemu/misc_helper.c
> index e1528b7f80..e859879f4f 100644
> --- a/target/i386/tcg/sysemu/misc_helper.c
> +++ b/target/i386/tcg/sysemu/misc_helper.c
> @@ -118,9 +118,9 @@ void helper_write_crN(CPUX86State *env, int reg, target_ulong t0)
>           break;
>       case 8:
>           if (!(env->hflags2 & HF2_VINTR_MASK)) {
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>               cpu_set_apic_tpr(env_archcpu(env)->apic_state, t0);
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>           }
>           env->int_ctl = (env->int_ctl & ~V_TPR_MASK) | (t0 & V_TPR_MASK);
>   
> diff --git a/target/i386/whpx/whpx-accel-ops.c b/target/i386/whpx/whpx-accel-ops.c
> index 67cad86720..1f29346a88 100644
> --- a/target/i386/whpx/whpx-accel-ops.c
> +++ b/target/i386/whpx/whpx-accel-ops.c
> @@ -25,7 +25,7 @@ static void *whpx_cpu_thread_fn(void *arg)
>   
>       rcu_register_thread();
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       qemu_thread_get_self(cpu->thread);
>       cpu->thread_id = qemu_get_thread_id();
>       current_cpu = cpu;
> @@ -55,7 +55,7 @@ static void *whpx_cpu_thread_fn(void *arg)
>   
>       whpx_destroy_vcpu(cpu);
>       cpu_thread_signal_destroyed(cpu);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       rcu_unregister_thread();
>       return NULL;
>   }
> diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c
> index d29ba916a0..50057b22ee 100644
> --- a/target/i386/whpx/whpx-all.c
> +++ b/target/i386/whpx/whpx-all.c
> @@ -1324,7 +1324,7 @@ static int whpx_first_vcpu_starting(CPUState *cpu)
>       struct whpx_state *whpx = &whpx_global;
>       HRESULT hr;
>   
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>   
>       if (!QTAILQ_EMPTY(&cpu->breakpoints) ||
>               (whpx->breakpoints.breakpoints &&
> @@ -1442,7 +1442,7 @@ static int whpx_handle_halt(CPUState *cpu)
>       CPUX86State *env = cpu_env(cpu);
>       int ret = 0;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       if (!((cpu->interrupt_request & CPU_INTERRUPT_HARD) &&
>             (env->eflags & IF_MASK)) &&
>           !(cpu->interrupt_request & CPU_INTERRUPT_NMI)) {
> @@ -1450,7 +1450,7 @@ static int whpx_handle_halt(CPUState *cpu)
>           cpu->halted = true;
>           ret = 1;
>       }
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       return ret;
>   }
> @@ -1472,7 +1472,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
>       memset(&new_int, 0, sizeof(new_int));
>       memset(reg_values, 0, sizeof(reg_values));
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       /* Inject NMI */
>       if (!vcpu->interruption_pending &&
> @@ -1563,7 +1563,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
>           reg_count += 1;
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       vcpu->ready_for_pic_interrupt = false;
>   
>       if (reg_count) {
> @@ -1590,9 +1590,9 @@ static void whpx_vcpu_post_run(CPUState *cpu)
>       uint64_t tpr = vcpu->exit_ctx.VpContext.Cr8;
>       if (vcpu->tpr != tpr) {
>           vcpu->tpr = tpr;
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_set_apic_tpr(x86_cpu->apic_state, whpx_cr8_to_apic_tpr(vcpu->tpr));
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   
>       vcpu->interruption_pending =
> @@ -1652,7 +1652,7 @@ static int whpx_vcpu_run(CPUState *cpu)
>       WhpxStepMode exclusive_step_mode = WHPX_STEP_NONE;
>       int ret;
>   
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>   
>       if (whpx->running_cpus++ == 0) {
>           /* Insert breakpoints into memory, update exception exit bitmap. */
> @@ -1690,7 +1690,7 @@ static int whpx_vcpu_run(CPUState *cpu)
>           }
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       if (exclusive_step_mode != WHPX_STEP_NONE) {
>           start_exclusive();
> @@ -2028,9 +2028,9 @@ static int whpx_vcpu_run(CPUState *cpu)
>               error_report("WHPX: Unexpected VP exit code %d",
>                            vcpu->exit_ctx.ExitReason);
>               whpx_get_registers(cpu);
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>               qemu_system_guest_panicked(cpu_get_crash_info(cpu));
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               break;
>           }
>   
> @@ -2055,7 +2055,7 @@ static int whpx_vcpu_run(CPUState *cpu)
>           cpu_exec_end(cpu);
>       }
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       current_cpu = cpu;
>   
>       if (--whpx->running_cpus == 0) {
> diff --git a/target/loongarch/csr_helper.c b/target/loongarch/csr_helper.c
> index 55341551a5..fa3f08335e 100644
> --- a/target/loongarch/csr_helper.c
> +++ b/target/loongarch/csr_helper.c
> @@ -89,9 +89,9 @@ target_ulong helper_csrwr_ticlr(CPULoongArchState *env, target_ulong val)
>       int64_t old_v = 0;
>   
>       if (val & 0x1) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           loongarch_cpu_set_irq(cpu, IRQ_TIMER, 0);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       return old_v;
>   }
> diff --git a/target/mips/kvm.c b/target/mips/kvm.c
> index e22e24ed97..7e2bac9a84 100644
> --- a/target/mips/kvm.c
> +++ b/target/mips/kvm.c
> @@ -138,7 +138,7 @@ void kvm_arch_pre_run(CPUState *cs, struct kvm_run *run)
>       int r;
>       struct kvm_mips_interrupt intr;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       if ((cs->interrupt_request & CPU_INTERRUPT_HARD) &&
>               cpu_mips_io_interrupts_pending(cpu)) {
> @@ -151,7 +151,7 @@ void kvm_arch_pre_run(CPUState *cs, struct kvm_run *run)
>           }
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
> diff --git a/target/mips/tcg/sysemu/cp0_helper.c b/target/mips/tcg/sysemu/cp0_helper.c
> index d349548743..fe87b72a2c 100644
> --- a/target/mips/tcg/sysemu/cp0_helper.c
> +++ b/target/mips/tcg/sysemu/cp0_helper.c
> @@ -59,9 +59,9 @@ static inline void mips_vpe_wake(MIPSCPU *c)
>        * because there might be other conditions that state that c should
>        * be sleeping.
>        */
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       cpu_interrupt(CPU(c), CPU_INTERRUPT_WAKE);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   static inline void mips_vpe_sleep(MIPSCPU *cpu)
> diff --git a/target/openrisc/sys_helper.c b/target/openrisc/sys_helper.c
> index 782a5751b7..1e9a55cec1 100644
> --- a/target/openrisc/sys_helper.c
> +++ b/target/openrisc/sys_helper.c
> @@ -160,20 +160,20 @@ void HELPER(mtspr)(CPUOpenRISCState *env, target_ulong spr, target_ulong rb)
>           break;
>       case TO_SPR(9, 0):  /* PICMR */
>           env->picmr = rb;
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           if (env->picsr & env->picmr) {
>               cpu_interrupt(cs, CPU_INTERRUPT_HARD);
>           } else {
>               cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD);
>           }
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           break;
>       case TO_SPR(9, 2):  /* PICSR */
>           env->picsr &= ~rb;
>           break;
>       case TO_SPR(10, 0): /* TTMR */
>           {
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>               if ((env->ttmr & TTMR_M) ^ (rb & TTMR_M)) {
>                   switch (rb & TTMR_M) {
>                   case TIMER_NONE:
> @@ -198,15 +198,15 @@ void HELPER(mtspr)(CPUOpenRISCState *env, target_ulong spr, target_ulong rb)
>                   cs->interrupt_request &= ~CPU_INTERRUPT_TIMER;
>               }
>               cpu_openrisc_timer_update(cpu);
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>           }
>           break;
>   
>       case TO_SPR(10, 1): /* TTCR */
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_openrisc_count_set(cpu, rb);
>           cpu_openrisc_timer_update(cpu);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           break;
>       }
>   #endif
> @@ -347,9 +347,9 @@ target_ulong HELPER(mfspr)(CPUOpenRISCState *env, target_ulong rd,
>           return env->ttmr;
>   
>       case TO_SPR(10, 1): /* TTCR */
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_openrisc_count_update(cpu);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           return cpu_openrisc_count_get(cpu);
>       }
>   #endif
> diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
> index a42743a3e0..0a1c942831 100644
> --- a/target/ppc/excp_helper.c
> +++ b/target/ppc/excp_helper.c
> @@ -3056,7 +3056,7 @@ void helper_msgsnd(target_ulong rb)
>           return;
>       }
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       CPU_FOREACH(cs) {
>           PowerPCCPU *cpu = POWERPC_CPU(cs);
>           CPUPPCState *cenv = &cpu->env;
> @@ -3065,7 +3065,7 @@ void helper_msgsnd(target_ulong rb)
>               ppc_set_irq(cpu, irq, 1);
>           }
>       }
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   /* Server Processor Control */
> @@ -3093,7 +3093,7 @@ static void book3s_msgsnd_common(int pir, int irq)
>   {
>       CPUState *cs;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       CPU_FOREACH(cs) {
>           PowerPCCPU *cpu = POWERPC_CPU(cs);
>           CPUPPCState *cenv = &cpu->env;
> @@ -3103,7 +3103,7 @@ static void book3s_msgsnd_common(int pir, int irq)
>               ppc_set_irq(cpu, irq, 1);
>           }
>       }
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void helper_book3s_msgsnd(target_ulong rb)
> @@ -3157,14 +3157,14 @@ void helper_book3s_msgsndp(CPUPPCState *env, target_ulong rb)
>       }
>   
>       /* Does iothread need to be locked for walking CPU list? */
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       THREAD_SIBLING_FOREACH(cs, ccs) {
>           PowerPCCPU *ccpu = POWERPC_CPU(ccs);
>           uint32_t thread_id = ppc_cpu_tir(ccpu);
>   
>           if (ttir == thread_id) {
>               ppc_set_irq(ccpu, PPC_INTERRUPT_DOORBELL, 1);
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               return;
>           }
>       }
> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
> index 9b1abe2fc4..132834505c 100644
> --- a/target/ppc/kvm.c
> +++ b/target/ppc/kvm.c
> @@ -1656,7 +1656,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
>       CPUPPCState *env = &cpu->env;
>       int ret;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       switch (run->exit_reason) {
>       case KVM_EXIT_DCR:
> @@ -1715,7 +1715,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
>           break;
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       return ret;
>   }
>   
> diff --git a/target/ppc/misc_helper.c b/target/ppc/misc_helper.c
> index a05bdf78c9..41ef14bf24 100644
> --- a/target/ppc/misc_helper.c
> +++ b/target/ppc/misc_helper.c
> @@ -238,7 +238,7 @@ target_ulong helper_load_dpdes(CPUPPCState *env)
>           return dpdes;
>       }
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       THREAD_SIBLING_FOREACH(cs, ccs) {
>           PowerPCCPU *ccpu = POWERPC_CPU(ccs);
>           CPUPPCState *cenv = &ccpu->env;
> @@ -248,7 +248,7 @@ target_ulong helper_load_dpdes(CPUPPCState *env)
>               dpdes |= (0x1 << thread_id);
>           }
>       }
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       return dpdes;
>   }
> @@ -278,14 +278,14 @@ void helper_store_dpdes(CPUPPCState *env, target_ulong val)
>       }
>   
>       /* Does iothread need to be locked for walking CPU list? */
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       THREAD_SIBLING_FOREACH(cs, ccs) {
>           PowerPCCPU *ccpu = POWERPC_CPU(ccs);
>           uint32_t thread_id = ppc_cpu_tir(ccpu);
>   
>           ppc_set_irq(cpu, PPC_INTERRUPT_DOORBELL, val & (0x1 << thread_id));
>       }
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   #endif /* defined(TARGET_PPC64) */
>   
> diff --git a/target/ppc/timebase_helper.c b/target/ppc/timebase_helper.c
> index 08a6b47ee0..4cc0572fad 100644
> --- a/target/ppc/timebase_helper.c
> +++ b/target/ppc/timebase_helper.c
> @@ -173,9 +173,9 @@ target_ulong helper_load_dcr(CPUPPCState *env, target_ulong dcrn)
>       } else {
>           int ret;
>   
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           ret = ppc_dcr_read(env->dcr_env, (uint32_t)dcrn, &val);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           if (unlikely(ret != 0)) {
>               qemu_log_mask(LOG_GUEST_ERROR, "DCR read error %d %03x\n",
>                             (uint32_t)dcrn, (uint32_t)dcrn);
> @@ -196,9 +196,9 @@ void helper_store_dcr(CPUPPCState *env, target_ulong dcrn, target_ulong val)
>                                  POWERPC_EXCP_INVAL_INVAL, GETPC());
>       } else {
>           int ret;
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           ret = ppc_dcr_write(env->dcr_env, (uint32_t)dcrn, (uint32_t)val);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           if (unlikely(ret != 0)) {
>               qemu_log_mask(LOG_GUEST_ERROR, "DCR write error %d %03x\n",
>                             (uint32_t)dcrn, (uint32_t)dcrn);
> diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c
> index 33ab3551f4..27533d0401 100644
> --- a/target/s390x/kvm/kvm.c
> +++ b/target/s390x/kvm/kvm.c
> @@ -1923,7 +1923,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
>       S390CPU *cpu = S390_CPU(cs);
>       int ret = 0;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       kvm_cpu_synchronize_state(cs);
>   
> @@ -1947,7 +1947,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
>               fprintf(stderr, "Unknown KVM exit: %d\n", run->exit_reason);
>               break;
>       }
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       if (ret == 0) {
>           ret = EXCP_INTERRUPT;
> diff --git a/target/s390x/tcg/misc_helper.c b/target/s390x/tcg/misc_helper.c
> index 6aa7907438..4be69c5ae8 100644
> --- a/target/s390x/tcg/misc_helper.c
> +++ b/target/s390x/tcg/misc_helper.c
> @@ -101,9 +101,9 @@ uint64_t HELPER(stck)(CPUS390XState *env)
>   /* SCLP service call */
>   uint32_t HELPER(servc)(CPUS390XState *env, uint64_t r1, uint64_t r2)
>   {
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       int r = sclp_service_call(env_archcpu(env), r1, r2);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       if (r < 0) {
>           tcg_s390_program_interrupt(env, -r, GETPC());
>       }
> @@ -117,9 +117,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint32_t r3, uint32_t num)
>       switch (num) {
>       case 0x500:
>           /* KVM hypercall */
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           r = s390_virtio_hypercall(env);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           break;
>       case 0x44:
>           /* yield */
> @@ -127,9 +127,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint32_t r3, uint32_t num)
>           break;
>       case 0x308:
>           /* ipl */
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           handle_diag_308(env, r1, r3, GETPC());
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           r = 0;
>           break;
>       case 0x288:
> @@ -185,7 +185,7 @@ static void update_ckc_timer(CPUS390XState *env)
>   
>       /* stop the timer and remove pending CKC IRQs */
>       timer_del(env->tod_timer);
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>       env->pending_int &= ~INTERRUPT_EXT_CLOCK_COMPARATOR;
>   
>       /* the tod has to exceed the ckc, this can never happen if ckc is all 1's */
> @@ -207,9 +207,9 @@ void HELPER(sckc)(CPUS390XState *env, uint64_t ckc)
>   {
>       env->ckc = ckc;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       update_ckc_timer(env);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque)
> @@ -229,9 +229,9 @@ uint32_t HELPER(sck)(CPUS390XState *env, uint64_t tod_low)
>           .low = tod_low,
>       };
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       tdc->set(td, &tod, &error_abort);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       return 0;
>   }
>   
> @@ -421,9 +421,9 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
>       int cc;
>   
>       /* TODO: needed to inject interrupts  - push further down */
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       cc = handle_sigp(env, order_code & SIGP_ORDER_MASK, r1, r3);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       return cc;
>   }
> @@ -433,92 +433,92 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
>   void HELPER(xsch)(CPUS390XState *env, uint64_t r1)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_xsch(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(csch)(CPUS390XState *env, uint64_t r1)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_csch(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(hsch)(CPUS390XState *env, uint64_t r1)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_hsch(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(msch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_msch(cpu, r1, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(rchp)(CPUS390XState *env, uint64_t r1)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_rchp(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(rsch)(CPUS390XState *env, uint64_t r1)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_rsch(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(sal)(CPUS390XState *env, uint64_t r1)
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_sal(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(schm)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint64_t inst)
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_schm(cpu, r1, r2, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(ssch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_ssch(cpu, r1, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(stcrw)(CPUS390XState *env, uint64_t inst)
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_stcrw(cpu, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(stsch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_stsch(cpu, r1, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
> @@ -533,10 +533,10 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
>           tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra);
>       }
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       io = qemu_s390_flic_dequeue_io(flic, env->cregs[6]);
>       if (!io) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>           return 0;
>       }
>   
> @@ -554,7 +554,7 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
>           if (s390_cpu_virt_mem_write(cpu, addr, 0, &intc, sizeof(intc))) {
>               /* writing failed, reinject and properly clean up */
>               s390_io_interrupt(io->id, io->nr, io->parm, io->word);
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               g_free(io);
>               s390_cpu_virt_mem_handle_exc(cpu, ra);
>               return 0;
> @@ -570,24 +570,24 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
>       }
>   
>       g_free(io);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       return 1;
>   }
>   
>   void HELPER(tsch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_tsch(cpu, r1, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(chsc)(CPUS390XState *env, uint64_t inst)
>   {
>       S390CPU *cpu = env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       ioinst_handle_chsc(cpu, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   #endif
>   
> @@ -726,27 +726,27 @@ void HELPER(clp)(CPUS390XState *env, uint32_t r2)
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       clp_service_call(cpu, r2, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, uint32_t r2)
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       pcilg_service_call(cpu, r1, r2, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(pcistg)(CPUS390XState *env, uint32_t r1, uint32_t r2)
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       pcistg_service_call(cpu, r1, r2, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
> @@ -754,9 +754,9 @@ void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       stpcifc_service_call(cpu, r1, fiba, ar, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint64_t r3)
> @@ -764,9 +764,9 @@ void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint64_t r3)
>       S390CPU *cpu = env_archcpu(env);
>       int r;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       r = css_do_sic(cpu, (r3 >> 27) & 0x7, r1 & 0xffff);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       /* css_do_sic() may actually return a PGM_xxx value to inject */
>       if (r) {
>           tcg_s390_program_interrupt(env, -r, GETPC());
> @@ -777,9 +777,9 @@ void HELPER(rpcit)(CPUS390XState *env, uint32_t r1, uint32_t r2)
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       rpcit_service_call(cpu, r1, r2, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3,
> @@ -787,9 +787,9 @@ void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3,
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       pcistb_service_call(cpu, r1, r3, gaddr, ar, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
> @@ -797,8 +797,8 @@ void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
>   {
>       S390CPU *cpu = env_archcpu(env);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       mpcifc_service_call(cpu, r1, fiba, ar, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   #endif
> diff --git a/target/sparc/int32_helper.c b/target/sparc/int32_helper.c
> index 1563613582..3fd28a04e7 100644
> --- a/target/sparc/int32_helper.c
> +++ b/target/sparc/int32_helper.c
> @@ -70,7 +70,7 @@ void cpu_check_irqs(CPUSPARCState *env)
>       CPUState *cs;
>   
>       /* We should be holding the BQL before we mess with IRQs */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>   
>       if (env->pil_in && (env->interrupt_index == 0 ||
>                           (env->interrupt_index & ~15) == TT_EXTINT)) {
> diff --git a/target/sparc/int64_helper.c b/target/sparc/int64_helper.c
> index 1b4155f5f3..dacbbf6b5b 100644
> --- a/target/sparc/int64_helper.c
> +++ b/target/sparc/int64_helper.c
> @@ -69,7 +69,7 @@ void cpu_check_irqs(CPUSPARCState *env)
>                     (env->softint & ~(SOFTINT_TIMER | SOFTINT_STIMER));
>   
>       /* We should be holding the BQL before we mess with IRQs */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(qemu_bql_locked());
>   
>       /* TT_IVEC has a higher priority (16) than TT_EXTINT (31..17) */
>       if (env->ivec_status & 0x20) {
> @@ -267,9 +267,9 @@ static bool do_modify_softint(CPUSPARCState *env, uint32_t value)
>           env->softint = value;
>   #if !defined(CONFIG_USER_ONLY)
>           if (cpu_interrupts_enabled(env)) {
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>               cpu_check_irqs(env);
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>           }
>   #endif
>           return true;
> diff --git a/target/sparc/win_helper.c b/target/sparc/win_helper.c
> index 16d1c70fe7..ba666ec50e 100644
> --- a/target/sparc/win_helper.c
> +++ b/target/sparc/win_helper.c
> @@ -179,9 +179,9 @@ void helper_wrpsr(CPUSPARCState *env, target_ulong new_psr)
>           cpu_raise_exception_ra(env, TT_ILL_INSN, GETPC());
>       } else {
>           /* cpu_put_psr may trigger interrupts, hence BQL */
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_put_psr(env, new_psr);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   }
>   
> @@ -407,9 +407,9 @@ void helper_wrpstate(CPUSPARCState *env, target_ulong new_state)
>   
>   #if !defined(CONFIG_USER_ONLY)
>       if (cpu_interrupts_enabled(env)) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_check_irqs(env);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   #endif
>   }
> @@ -422,9 +422,9 @@ void helper_wrpil(CPUSPARCState *env, target_ulong new_pil)
>       env->psrpil = new_pil;
>   
>       if (cpu_interrupts_enabled(env)) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_check_irqs(env);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   #endif
>   }
> @@ -451,9 +451,9 @@ void helper_done(CPUSPARCState *env)
>   
>   #if !defined(CONFIG_USER_ONLY)
>       if (cpu_interrupts_enabled(env)) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_check_irqs(env);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   #endif
>   }
> @@ -480,9 +480,9 @@ void helper_retry(CPUSPARCState *env)
>   
>   #if !defined(CONFIG_USER_ONLY)
>       if (cpu_interrupts_enabled(env)) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           cpu_check_irqs(env);
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   #endif
>   }
> diff --git a/target/xtensa/exc_helper.c b/target/xtensa/exc_helper.c
> index 91354884f7..405387decb 100644
> --- a/target/xtensa/exc_helper.c
> +++ b/target/xtensa/exc_helper.c
> @@ -105,9 +105,9 @@ void HELPER(waiti)(CPUXtensaState *env, uint32_t pc, uint32_t intlevel)
>       env->sregs[PS] = (env->sregs[PS] & ~PS_INTLEVEL) |
>           (intlevel << PS_INTLEVEL_SHIFT);
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       check_interrupts(env);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       if (env->pending_irq_level) {
>           cpu_loop_exit(cpu);
> @@ -120,9 +120,9 @@ void HELPER(waiti)(CPUXtensaState *env, uint32_t pc, uint32_t intlevel)
>   
>   void HELPER(check_interrupts)(CPUXtensaState *env)
>   {
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       check_interrupts(env);
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   }
>   
>   void HELPER(intset)(CPUXtensaState *env, uint32_t v)
> diff --git a/ui/spice-core.c b/ui/spice-core.c
> index db21db2c94..1d895d2fe8 100644
> --- a/ui/spice-core.c
> +++ b/ui/spice-core.c
> @@ -222,7 +222,7 @@ static void channel_event(int event, SpiceChannelEventInfo *info)
>        */
>       bool need_lock = !qemu_thread_is_self(&me);
>       if (need_lock) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>   
>       if (info->flags & SPICE_CHANNEL_EVENT_FLAG_ADDR_EXT) {
> @@ -260,7 +260,7 @@ static void channel_event(int event, SpiceChannelEventInfo *info)
>       }
>   
>       if (need_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   
>       qapi_free_SpiceServerInfo(server);
> diff --git a/util/async.c b/util/async.c
> index 8f90ddc304..49d07b3c73 100644
> --- a/util/async.c
> +++ b/util/async.c
> @@ -741,7 +741,7 @@ AioContext *qemu_get_current_aio_context(void)
>       if (ctx) {
>           return ctx;
>       }
> -    if (qemu_mutex_iothread_locked()) {
> +    if (qemu_bql_locked()) {
>           /* Possibly in a vCPU thread.  */
>           return qemu_get_aio_context();
>       }
> diff --git a/util/main-loop.c b/util/main-loop.c
> index 797b640c41..921fab3f32 100644
> --- a/util/main-loop.c
> +++ b/util/main-loop.c
> @@ -302,13 +302,13 @@ static int os_host_main_loop_wait(int64_t timeout)
>   
>       glib_pollfds_fill(&timeout);
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       replay_mutex_unlock();
>   
>       ret = qemu_poll_ns((GPollFD *)gpollfds->data, gpollfds->len, timeout);
>   
>       replay_mutex_lock();
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       glib_pollfds_poll();
>   
> @@ -517,7 +517,7 @@ static int os_host_main_loop_wait(int64_t timeout)
>   
>       poll_timeout_ns = qemu_soonest_timeout(poll_timeout_ns, timeout);
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>   
>       replay_mutex_unlock();
>   
> @@ -525,7 +525,7 @@ static int os_host_main_loop_wait(int64_t timeout)
>   
>       replay_mutex_lock();
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       if (g_poll_ret > 0) {
>           for (i = 0; i < w->num; i++) {
>               w->revents[i] = poll_fds[n_poll_fds + i].revents;
> diff --git a/util/rcu.c b/util/rcu.c
> index e587bcc483..8331f24288 100644
> --- a/util/rcu.c
> +++ b/util/rcu.c
> @@ -283,24 +283,24 @@ static void *call_rcu_thread(void *opaque)
>   
>           qatomic_sub(&rcu_call_count, n);
>           synchronize_rcu();
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>           while (n > 0) {
>               node = try_dequeue();
>               while (!node) {
> -                qemu_mutex_unlock_iothread();
> +                qemu_bql_unlock();
>                   qemu_event_reset(&rcu_call_ready_event);
>                   node = try_dequeue();
>                   if (!node) {
>                       qemu_event_wait(&rcu_call_ready_event);
>                       node = try_dequeue();
>                   }
> -                qemu_mutex_lock_iothread();
> +                qemu_bql_lock();
>               }
>   
>               n--;
>               node->func(node);
>           }
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       abort();
>   }
> @@ -337,13 +337,13 @@ static void drain_rcu_callback(struct rcu_head *node)
>   void drain_call_rcu(void)
>   {
>       struct rcu_drain rcu_drain;
> -    bool locked = qemu_mutex_iothread_locked();
> +    bool locked = qemu_bql_locked();
>   
>       memset(&rcu_drain, 0, sizeof(struct rcu_drain));
>       qemu_event_init(&rcu_drain.drain_complete_event, false);
>   
>       if (locked) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   
>   
> @@ -365,7 +365,7 @@ void drain_call_rcu(void)
>       qatomic_dec(&in_drain_call_rcu);
>   
>       if (locked) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>   
>   }
> diff --git a/audio/coreaudio.m b/audio/coreaudio.m
> index 8cd129a27d..866d7a9436 100644
> --- a/audio/coreaudio.m
> +++ b/audio/coreaudio.m
> @@ -547,7 +547,7 @@ static OSStatus handle_voice_change(
>   {
>       coreaudioVoiceOut *core = in_client_data;
>   
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>   
>       if (core->outputDeviceID) {
>           fini_out_device(core);
> @@ -557,7 +557,7 @@ static OSStatus handle_voice_change(
>           update_device_playback_state(core);
>       }
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       return 0;
>   }
>   
> diff --git a/memory_ldst.c.inc b/memory_ldst.c.inc
> index 84b868f294..cd8a629816 100644
> --- a/memory_ldst.c.inc
> +++ b/memory_ldst.c.inc
> @@ -61,7 +61,7 @@ static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL,
>           *result = r;
>       }
>       if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       RCU_READ_UNLOCK();
>       return val;
> @@ -130,7 +130,7 @@ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL,
>           *result = r;
>       }
>       if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       RCU_READ_UNLOCK();
>       return val;
> @@ -186,7 +186,7 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL,
>           *result = r;
>       }
>       if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       RCU_READ_UNLOCK();
>       return val;
> @@ -234,7 +234,7 @@ static inline uint16_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL,
>           *result = r;
>       }
>       if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       RCU_READ_UNLOCK();
>       return val;
> @@ -295,7 +295,7 @@ void glue(address_space_stl_notdirty, SUFFIX)(ARG1_DECL,
>           *result = r;
>       }
>       if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       RCU_READ_UNLOCK();
>   }
> @@ -339,7 +339,7 @@ static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL,
>           *result = r;
>       }
>       if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       RCU_READ_UNLOCK();
>   }
> @@ -391,7 +391,7 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL,
>           *result = r;
>       }
>       if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       RCU_READ_UNLOCK();
>   }
> @@ -435,7 +435,7 @@ static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL,
>           *result = r;
>       }
>       if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       RCU_READ_UNLOCK();
>   }
> @@ -499,7 +499,7 @@ static void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL,
>           *result = r;
>       }
>       if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       RCU_READ_UNLOCK();
>   }
> diff --git a/target/i386/hvf/README.md b/target/i386/hvf/README.md
> index 2d33477aca..679b93b630 100644
> --- a/target/i386/hvf/README.md
> +++ b/target/i386/hvf/README.md
> @@ -4,4 +4,4 @@ These sources (and ../hvf-all.c) are adapted from Veertu Inc's vdhh (Veertu Desk
>   
>   1. Adapt to our current QEMU's `CPUState` structure and `address_space_rw` API; many struct members have been moved around (emulated x86 state, xsave_buf) due to historical differences + QEMU needing to handle more emulation targets.
>   2. Removal of `apic_page` and hyperv-related functionality.
> -3. More relaxed use of `qemu_mutex_lock_iothread`.
> +3. More relaxed use of `qemu_bql_lock`.
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index cd069da696..8a7d0a6f0c 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -117,29 +117,29 @@ static void cocoa_switch(DisplayChangeListener *dcl,
>   typedef void (^CodeBlock)(void);
>   typedef bool (^BoolCodeBlock)(void);
>   
> -static void with_iothread_lock(CodeBlock block)
> +static void with_bql(CodeBlock block)
>   {
> -    bool locked = qemu_mutex_iothread_locked();
> +    bool locked = qemu_bql_locked();
>       if (!locked) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>       block();
>       if (!locked) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>   }
>   
> -static bool bool_with_iothread_lock(BoolCodeBlock block)
> +static bool bool_with_bql(BoolCodeBlock block)
>   {
> -    bool locked = qemu_mutex_iothread_locked();
> +    bool locked = qemu_bql_locked();
>       bool val;
>   
>       if (!locked) {
> -        qemu_mutex_lock_iothread();
> +        qemu_bql_lock();
>       }
>       val = block();
>       if (!locked) {
> -        qemu_mutex_unlock_iothread();
> +        qemu_bql_unlock();
>       }
>       return val;
>   }
> @@ -605,7 +605,7 @@ - (void) updateUIInfo
>           return;
>       }
>   
> -    with_iothread_lock(^{
> +    with_bql(^{
>           [self updateUIInfoLocked];
>       });
>   }
> @@ -790,7 +790,7 @@ - (void) handleMonitorInput:(NSEvent *)event
>   
>   - (bool) handleEvent:(NSEvent *)event
>   {
> -    return bool_with_iothread_lock(^{
> +    return bool_with_bql(^{
>           return [self handleEventLocked:event];
>       });
>   }
> @@ -1182,7 +1182,7 @@ - (QEMUScreen) gscreen {return screen;}
>    */
>   - (void) raiseAllKeys
>   {
> -    with_iothread_lock(^{
> +    with_bql(^{
>           qkbd_state_lift_all_keys(kbd);
>       });
>   }
> @@ -1282,7 +1282,7 @@ - (void)applicationWillTerminate:(NSNotification *)aNotification
>   {
>       COCOA_DEBUG("QemuCocoaAppController: applicationWillTerminate\n");
>   
> -    with_iothread_lock(^{
> +    with_bql(^{
>           shutdown_action = SHUTDOWN_ACTION_POWEROFF;
>           qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_UI);
>       });
> @@ -1420,7 +1420,7 @@ - (void)displayConsole:(id)sender
>   /* Pause the guest */
>   - (void)pauseQEMU:(id)sender
>   {
> -    with_iothread_lock(^{
> +    with_bql(^{
>           qmp_stop(NULL);
>       });
>       [sender setEnabled: NO];
> @@ -1431,7 +1431,7 @@ - (void)pauseQEMU:(id)sender
>   /* Resume running the guest operating system */
>   - (void)resumeQEMU:(id) sender
>   {
> -    with_iothread_lock(^{
> +    with_bql(^{
>           qmp_cont(NULL);
>       });
>       [sender setEnabled: NO];
> @@ -1461,7 +1461,7 @@ - (void)removePause
>   /* Restarts QEMU */
>   - (void)restartQEMU:(id)sender
>   {
> -    with_iothread_lock(^{
> +    with_bql(^{
>           qmp_system_reset(NULL);
>       });
>   }
> @@ -1469,7 +1469,7 @@ - (void)restartQEMU:(id)sender
>   /* Powers down QEMU */
>   - (void)powerDownQEMU:(id)sender
>   {
> -    with_iothread_lock(^{
> +    with_bql(^{
>           qmp_system_powerdown(NULL);
>       });
>   }
> @@ -1488,7 +1488,7 @@ - (void)ejectDeviceMedia:(id)sender
>       }
>   
>       __block Error *err = NULL;
> -    with_iothread_lock(^{
> +    with_bql(^{
>           qmp_eject([drive cStringUsingEncoding: NSASCIIStringEncoding],
>                     NULL, false, false, &err);
>       });
> @@ -1523,7 +1523,7 @@ - (void)changeDeviceMedia:(id)sender
>           }
>   
>           __block Error *err = NULL;
> -        with_iothread_lock(^{
> +        with_bql(^{
>               qmp_blockdev_change_medium([drive cStringUsingEncoding:
>                                                     NSASCIIStringEncoding],
>                                          NULL,
> @@ -1605,7 +1605,7 @@ - (void)adjustSpeed:(id)sender
>       // get the throttle percentage
>       throttle_pct = [sender tag];
>   
> -    with_iothread_lock(^{
> +    with_bql(^{
>           cpu_throttle_set(throttle_pct);
>       });
>       COCOA_DEBUG("cpu throttling at %d%c\n", cpu_throttle_get_percentage(), '%');
> @@ -1819,7 +1819,7 @@ - (void)pasteboard:(NSPasteboard *)sender provideDataForType:(NSPasteboardType)t
>           return;
>       }
>   
> -    with_iothread_lock(^{
> +    with_bql(^{
>           QemuClipboardInfo *info = qemu_clipboard_info_ref(cbinfo);
>           qemu_event_reset(&cbevent);
>           qemu_clipboard_request(info, QEMU_CLIPBOARD_TYPE_TEXT);
> @@ -1827,9 +1827,9 @@ - (void)pasteboard:(NSPasteboard *)sender provideDataForType:(NSPasteboardType)t
>           while (info == cbinfo &&
>                  info->types[QEMU_CLIPBOARD_TYPE_TEXT].available &&
>                  info->types[QEMU_CLIPBOARD_TYPE_TEXT].data == NULL) {
> -            qemu_mutex_unlock_iothread();
> +            qemu_bql_unlock();
>               qemu_event_wait(&cbevent);
> -            qemu_mutex_lock_iothread();
> +            qemu_bql_lock();
>           }
>   
>           if (info == cbinfo) {
> @@ -1927,9 +1927,9 @@ static void cocoa_clipboard_request(QemuClipboardInfo *info,
>       int status;
>   
>       COCOA_DEBUG("Second thread: calling qemu_default_main()\n");
> -    qemu_mutex_lock_iothread();
> +    qemu_bql_lock();
>       status = qemu_default_main();
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       COCOA_DEBUG("Second thread: qemu_default_main() returned, exiting\n");
>       [cbowner release];
>       exit(status);
> @@ -1941,7 +1941,7 @@ static int cocoa_main(void)
>   
>       COCOA_DEBUG("Entered %s()\n", __func__);
>   
> -    qemu_mutex_unlock_iothread();
> +    qemu_bql_unlock();
>       qemu_thread_create(&thread, "qemu_main", call_qemu_main,
>                          NULL, QEMU_THREAD_DETACHED);
>   


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 06:53:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 06:53:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645295.1007386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8xP7-0005Va-Od; Fri, 01 Dec 2023 06:53:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645295.1007386; Fri, 01 Dec 2023 06:53: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 1r8xP7-0005VT-LP; Fri, 01 Dec 2023 06:53:37 +0000
Received: by outflank-mailman (input) for mailman id 645295;
 Fri, 01 Dec 2023 06:53:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r8xP6-0005VN-RY
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 06:53:36 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on2060b.outbound.protection.outlook.com
 [2a01:111:f400:7eaf::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58d2bf62-9016-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 07:53:35 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AM0PR04MB6770.eurprd04.prod.outlook.com (2603:10a6:208:187::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.16; Fri, 1 Dec
 2023 06:53:32 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 06: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>
X-Inumbo-ID: 58d2bf62-9016-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=npOXPcBYe2zyUzS7NyyhKnW+jx5ScvG0c5qlX1Jc5G/CQkwPfSgBXAYLYtmAgqXEahf1HnLaxSG4IYmStFpTnC4/aFdAQj3xJPREwHHH5D1mhpi/QdYHSyw8a/AMyrvd16r6BX1mlriML9w8p2cWseEsBzezeBqP3DbjthmaR+2clPgBQ0nT+YAq1YBxyZLBTqyHkD4MeOTANlpq0ZyH12Tkp/zuB6w5Z0ijmUug+1jzNyey0tp9u/BiJD2OTF2m+CdoU9p+CRCHTqtZ55PBbOJeD3HcMGhgvwgLpU2Jgi/GkzSti10xcziBRIHVZvIsnw/YAjUwuARZgvqCVyoJkQ==
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=jzzuqxxERtQVIkGyM3BZuvqflx9ygw0vzrQJgR+3w3c=;
 b=eVq6b//Qyqlt3fH/Xv7+yy/ssF9QIOdqpqv+T5H5uQDq4TDx5JJCgy6b7qYPclxmiL7UnEg13RKJkOnR2QPSC7id5LYXRGVCI8QkIgWC+tX9UyZECEqKs8IxVNXQzCo8cWT6if0y5Qvhibkzqu6rov0JjoS3TQmteYG/xDVQHvQM6QAgubvhOojmL4lpoP1GNdrOX5O/Yueos+R7QWN40LZBO/KZ67apbD/W0he9B6/gSuqa5AkV03sFv2Mzf8i1enBQb9UqEngD4oKgmJ81VjLq9O8lkJNcPqkiBN2qXJiyoFdxeL95mX4YFLg97sL5YC7RV0nXLjZQdN5TuCbTbQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jzzuqxxERtQVIkGyM3BZuvqflx9ygw0vzrQJgR+3w3c=;
 b=PqBaPTfMJBkP/c0xBeXp3izsluAQLTBwdfg2VEVhpW79Pm9p1tG1R7lfiFC0OkMyd2N3PTq7ZVan26hZgZGpN3C4eJbNQgvpOQeBFXrmWqdXTdeIJfybm1WKJbiHlKCpU5gv6x8pGUewiYb6xdOC6zFpyq2dDHwwpeiheplVXn/3p8aEPAaAXUyIJ8ZBbZ+N4yQPfEZwNlPHIxo8FrBEePzs40RIIhZMHPDbO/RakiKsuU34JjAJtbNbAKVFLv2izjmG7Fit4/qi1M2OQlX2u+K4wH5rjfU3Aai8VFL05Th70fhYOc2J296reMUxWi/DRc4f5d3WnkhQyOINOEaA8Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d0a4f187-4e84-4e0d-b478-6d8437a0b644@suse.com>
Date: Fri, 1 Dec 2023 07:53:29 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <a65aafed-68c0-41dd-bf4d-3eeff87dd5d3@suse.com> <ZWjIX0Jo5gW5SEDr@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZWjIX0Jo5gW5SEDr@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR0P281CA0250.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:af::20) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM0PR04MB6770:EE_
X-MS-Office365-Filtering-Correlation-Id: fd6ab619-7955-4ba4-4bcc-08dbf23a3af7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	pckJVSd/96AGJV1QDY7tAjwpZ+1/SH+dqFhZ6MnE7zY3bSX7nw2cqPKeCM4MUGHBzqjS80USG+a1bSPkBZInS1GdJv1Qpa5KEG0udvBhkNmY43NRzmLQLQprTszG2E+xDN6e9nJO6AhzmhPygIHnaJXOrci9zMS3vrvrAFcuRghwhVnuc8N8nGNzAbfjVxiIqlBnu5p7Syv2fzaEr+tN8psz936ThgNSIBBpjmgSPN9nwQr/mOBjN3dSVqFsNIboxzhN3WGy5v03aDIcbEaD5HRI7xEa5RH5l6tw1i73mUF09vqmIwzoddtRPAMa/BoxSSplJXfs2xK0vkCWj9cZiFbpjfho8kYUWifAb5x5a4p9aj7c2H4R/hgB8TP6fJR/xWtvd6esoyKTjfJPYx5FsG99ufO5FyAjhJ2WrORVmFv3B+KAD6G7oVIdnKxG+Xj+qcGHd3hVc4fXREutQnnBxGljpqskB9DRGlqXI1cDoiKW0yh0O9C5kBHmaIGUFZymjQlpEXsqS967plgBOnopCuqk3zFr264m7REQ7VEEsxK1WAPdV9w1PBr8bz1vgdQ9zsCCBdgu8H2Nt8k8CZIVYVEHjBWQ3t2cUYR9TT79FKxTHHv2bItceGEnMj66lI/AU6rNNhxU6BlNpTouYcyrbA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(136003)(346002)(396003)(376002)(366004)(230922051799003)(451199024)(64100799003)(1800799012)(186009)(5660300002)(38100700002)(2906002)(36756003)(41300700001)(86362001)(31696002)(8676002)(508600001)(4326008)(8936002)(26005)(2616005)(6486002)(54906003)(66556008)(83380400001)(66476007)(6916009)(316002)(31686004)(6512007)(66946007)(53546011)(6666004)(6506007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dENZbEF2MDgwekZOaXZWRkF6eklVakxNVDZPVWxJQ1pjRnlDNXpoQyt0N0JD?=
 =?utf-8?B?c3NwUzBNNXkvbnA2K2NtbE9rVUR3ZCt4UytHbDZOaEs2cnNVeWZmL2JveklF?=
 =?utf-8?B?d0s0SEpIQWU0Wk51VkNZVjJBWTllaTJ3TUVCZWRFWHFxOEpncDJUYnRpZVF2?=
 =?utf-8?B?bTkvZ0d0K1BUaGk4V3NDdU9wTTdVQzdsQ0IrZEpvVWl4MG9HMW5rRnYrQ2hZ?=
 =?utf-8?B?dEZWUFRtWHNKYnJQT3hpTVRHbDczOWRjYlJVekM5MExLNFRlMGVuaWp1RDZR?=
 =?utf-8?B?NWE0RWZJTkJQQVY0OTVwQXhUcW9oczhLR0kzU0N6TXpNSndwVSt5L1lWanhY?=
 =?utf-8?B?eFJoY2VRcks3NVlmZkhFaVluRTl4dVl1QndRL3crbXR2SGd1eU9tSEo4S0lM?=
 =?utf-8?B?RUYzMnpiSHpZcU4yd09SRWQrZ2tpNWNpRTdrcnNsK21BNW1OT0VSNUc4N2pr?=
 =?utf-8?B?amNGZFNWQWRMMk1jeFJONHdnOGt6QmVOT3ZNZnFTM3J6NG1VTHQrOHFMcDRs?=
 =?utf-8?B?S0VvN3NCNnZEeUFZT1AzaXFWYjg1OTR3ZDJHQWNvSy8wZFZvaE9KbkQvZVpq?=
 =?utf-8?B?RjBubzVxa0dwR2tyRmlVQVNuMExpM0V0TmRSSG9QbWtTL00zWlFnN096RlRn?=
 =?utf-8?B?bVZObXIxdUwzRVdZY3o3ZmtSNTNCd0xaU3NtdTJXZFdSNUpXZ2RmSzZWcnhG?=
 =?utf-8?B?SWg5OGNmWkFpbzZuQVU2QklCdGhGTmg0dWFXTWxvN3RQNEx2Tjh5WVV1YjVU?=
 =?utf-8?B?bERPV1NsVkcrYzE2Z0tRQXRPY0gxNnRuK0NrV3E0Z0EzNVZQc0NYZEsvcnZ1?=
 =?utf-8?B?eHpsd3Azakh1ekUzNmJ5UXZEcHRJMUlIK2ptYS9Wd2J2S3dsYXhLdzV1Y2Ft?=
 =?utf-8?B?Mi9XcTdwd1NEeU1waTRUclhHQ0owMkwvcEVYdFJ2VVdOSVBBTzBnZjI5bUxT?=
 =?utf-8?B?NUh4UWNSOWNlUHlvS3NTamd4d3p3ZDIwcTRvNkowd1dMOVRadjk3c29Bek82?=
 =?utf-8?B?NTdtRTQ3cnNrdFVWSDZrK3BSQUFLK28wMWxBbkVTaDlUck0rbFBVRFZJSytP?=
 =?utf-8?B?RDl3MzJDUmhZSTVkNmtobmVlVFZVR2owNjJwUis4TWxsNGJLRlliajA2S1Ni?=
 =?utf-8?B?a2FYNWdTR1JhZ2gyZlNaZUtsb1E5MVBZL0dneEdCWDE0T1R3WWtMeUFKNVp0?=
 =?utf-8?B?Y3lvUHM1VUdMQ0cwMUVBRGk1Z0xLWFowdEgrMnNOQkF5L0tLOHhiUmlvUjRF?=
 =?utf-8?B?SnhMK1JnZ3hMTFZVTFJkS3c1S25FT3YvRmcxZ0xQRnB2R0phUGRaYkFKaEF1?=
 =?utf-8?B?dW1yc3dpaFMwQVdnb1FHcHgwS2dGSnU3ais2ZmpxSFRGVTZmRkQ2NE1MTExI?=
 =?utf-8?B?ODlOazhYTWZobUhJeVlQVjVDZTdXM0h5cnRkOGhlbUtBalJxdU1xTVEvU2pP?=
 =?utf-8?B?czVPaVhFUVE0R3Y5MktNQmFiSStIZnZ5QlcycWNCK3R1UWdFVzdmSTk0bFJk?=
 =?utf-8?B?UkRHWDRSTzhNUnJYV05sSHViMkhPMG0vYXBvTTNJazN5WUIxcFNvTkQ2RGxV?=
 =?utf-8?B?ZDJwbzZVR3dXUm9qRUp2UnFzYjEyakc0OVF6WWJyTXFGdmw0eDJnSVpPVTZF?=
 =?utf-8?B?M3pFSzgvazRGZGc0TDhxanYzNUxhM1ROSU5nRUxkeVlGVHlxdWtSN1lFL251?=
 =?utf-8?B?SnhBYTM0azNia1JLT05PK2ZEbzNVeENaTi90MVlxNEltSGFBSDBoS1RsNjNp?=
 =?utf-8?B?TnlsbVo4VHRrYzcvZlF2eEhBczZWRm9JUDRsUnFlQkZORGhZRGh6Q0NUWjQ3?=
 =?utf-8?B?dE5tQ0srYkdERVNMVXMxSk9mbDE2WnExcWlpNTQ3bjVubWl1a0hoQXpUMFQv?=
 =?utf-8?B?V0lOS25RM21iOU1NMjlwc3dyNDkzaHZtZDNTTUk2WlhNSEROZ0UrdnlQRGlX?=
 =?utf-8?B?VS9KZWxkRjhqZm42NHNvSTA4blMyWmF2ZktmUDhZb1N5ZkR2aGtManNLcFdz?=
 =?utf-8?B?T215Um50K0lNZWRmaW1Ha0NuR0kxTlRrcTdJZlJwdVk2aXhSQVpMcHRac1k3?=
 =?utf-8?B?NFF5bzZ0c3Rpb1AycHJVTTJRS0xyVGdvdVhORnRMdFlhN3gzNTVjL1owTWNI?=
 =?utf-8?Q?O6+Sy/VTyVMB9LPuZDstBg4BT?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd6ab619-7955-4ba4-4bcc-08dbf23a3af7
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 06:53:32.0800
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9Qda4cGjut8eFCixZJ9kyFehSe9HpOb26vRhwuZhaf+8PEVK7VcYpkSGurBofLAt5MRxgswpurK6lCpfYEwJow==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6770

On 30.11.2023 18:37, Roger Pau MonnÃ© wrote:
> On Thu, Nov 30, 2023 at 05:55:07PM +0100, Jan Beulich wrote:
>> On 28.11.2023 11:03, Roger Pau Monne wrote:
>>> The minimal function size requirements for livepatch are either 5 bytes (for
>>> jmp) or 9 bytes (for endbr + jmp).  Ensure that functions are always at least
>>> that size by requesting the compiled to align the functions to 8 or 16 bytes,
>>> depending on whether Xen is build with IBT support.
>>
>> How is alignment going to enforce minimum function size? If a function is
>> last in a section, there may not be any padding added (ahead of linking at
>> least). The trailing padding also isn't part of the function.
> 
> If each function lives in it's own section (by using
> -ffunction-sections), and each section is aligned, then I think we can
> guarantee that there will always be enough padding space?
> 
> Even the last function/section on the .text block would still be
> aligned, and as long as the function alignment <= SECTION_ALIGN
> there will be enough padding left.  I should add some build time
> assert that CONFIG_CC_FUNCTION_ALIGNMENT <= SECTION_ALIGN.

I'm not sure of there being a requirement for a section to be padded to
its alignment. If the following section has smaller alignment, it could
be made start earlier. Of course our linker scripts might guarantee
this ...

> While the trailing padding is not part of the function itself, I don't
> see issues in overwriting it with the replacement function code.

If it's really padding, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 06:57:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 06:57:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645301.1007396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8xT9-0007Om-9M; Fri, 01 Dec 2023 06:57:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645301.1007396; Fri, 01 Dec 2023 06:57:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8xT9-0007Of-5L; Fri, 01 Dec 2023 06:57:47 +0000
Received: by outflank-mailman (input) for mailman id 645301;
 Fri, 01 Dec 2023 06: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=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r8xT8-0007OZ-EZ
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 06:57:46 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on0614.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee1648d5-9016-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 07:57:45 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PAXPR04MB9007.eurprd04.prod.outlook.com (2603:10a6:102:20f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.8; Fri, 1 Dec
 2023 06:57:42 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 06:57:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee1648d5-9016-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XUq335wpTn2w0yKipmRKsVF4ACPSkVJGpMJC4hlPVNPO6WE4bflyy/i/J+8RRhKkO0BhXqIiMuXRzqTWlPiZ12Dn+UIqzUZRacKyktMbmeNQPTFvfdUaoIl6mP3KdOxesIkop08gz/Fv8A0vGBJFWWeJlSjHr68csgbpYA4NyWZWoZJaJJvLU8vU4v8YALXjx5kyXmqJPSBQQqPxm+RABgQVd8iv4oFhSlGteFQqgpHgAcpk0K9E1R1+3LXtFSKLRksErX0ilIKu4hxZOp/9DTQfk79oNrOxv4R3xt9JkX9Kgs7d3M+4NLOarTWCC2UGsxVbx7IS5d/iIpuwTsshuw==
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=XTHCin6LCqZkD/5YtzrRRO7ZzJMyRE/XA4cJOVrdYYU=;
 b=iFCN5KxOdjZf2LI/tld73kKEKndgTzZdQFyorjqFeh4KjvM9fadB5DuIkZNF82gAh7MFQQOmbaoTqxw68fvL3tF+kF+3tITIJ7EjF1XpZ11X9dnMfklDYiDH3ToqkBpN6obvVN0xTwb3JU9FkFvJEwG8OlUbyJNRp4lXzxy5DzRpRE+/7zk0IUmc3b9sxLOpJdFB9/8zbtdR/JNSGkUa9V3ERFw5o//qJdLxEzh7fDZ/Iwu+KDn3Zp5LuyQztBuaG295lI3JPWTcVY9gL6qTsuEpm9gNynqOia3Tjnash8P5c+ahXV3sbqwOssnk6ASFtyjsoFRvkGlNSNwtmkzoIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XTHCin6LCqZkD/5YtzrRRO7ZzJMyRE/XA4cJOVrdYYU=;
 b=NoqXWYSCN/qb7LpcbozRqEwb6NTVRdnp7OCBqpC8CYzShHKysQd95d1dh3vRR1tD9T9flZ5zAiInAX7q5+OE/5Zh2dIlQit9/WZ/VBj270fkHNfJrad+fSLkPHePuxLjxTmJBnUNzX8yEXW7GVJ9upGf2AqJEmW+P+IHzqupEq5HJZJPLprwernXculKtTbLegx0ukXkkB+KlDXNGzoqk2KGGfhKqywn1w8/+mXEQ+5s8oGtFWVLJAX+8vDhcBzwXKmv7G6Dv2I4LKq4EG9X5+UCuhfkMysKJSreSw5j3S9wnPzm5/OgpjcLzBcUIx7qcfBE6M0bxsqqIVCVx427fQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <5a2dff64-9fd4-4812-8e5b-de489ed1e74b@suse.com>
Date: Fri, 1 Dec 2023 07:57:40 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Content-Language: en-US
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <8be3763f-a4b6-8962-9183-a2a9c3509726@suse.com>
 <a92b1717-965b-4767-8f11-4c3a4e03418d@amd.com>
 <4cf3d507-a76a-43b6-81c3-bee960e811f1@suse.com>
 <cebd5aa5-d000-42c5-a224-dfc8775f5ba8@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: <cebd5aa5-d000-42c5-a224-dfc8775f5ba8@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0151.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a2::12) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PAXPR04MB9007:EE_
X-MS-Office365-Filtering-Correlation-Id: ae4bab27-9ac6-45fd-32c3-08dbf23ad072
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	PbnoX18xzagmHLiAyNiS6WqsVayZWpOtDAe0n14GFLF5WsK8/wvFKlzXTDFdyRWLZ+91iatCnvx0y2pK8QxvmODaaQ1uhDQb7OyrHRaxIa/aDvpOxrkgtTmI/OSLBt+PQEb7jern2eS56CvOOMXK4KnTYmem+KhxP+00jcdM3yeEI6vkeegyKttAVcs7AAIWomXV1Ti38+2617cOHVTBWaUXVMVHc4Q9CN86diA1lw1RtyqRcCPZlUlwXxbD4DNNp+M0Z8QFIVGQ3ladQP9JUIOMhpe5PEtjvOVm+r6jdZkAbCZknNpq12EFa0Ty4Ljx+4G3tRevXsFRTy4SevlwHzLdh1q2YcVoHIGADBz7BeHVuPu8rT3Uut1V6ocI5Db/EAnyhyOkJ3hKU3ZtD8T8pjYUTqsktAONFomemNphucYP0iJ4mzyWlVuPnv7NCfGJxrEavivytco/gC5x7BAXbR+tLc7keGr+9cYkzioozX7/FWWh2fPyla6nAu6wjbUPvHfZrXNGSEBHCH/aOwxZJE+R/BNja8hBmDw8Fj3UJgZDKoAIXpIIGpxFchbfDBHGZMQwemzP5ZLKVwlkD4fea98C7hf3S0mJbCReTDEH4046lZqv93Z+wIOpztbsiR9EonkUd2fmFbM0hc/STQLVNw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(346002)(376002)(136003)(39860400002)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(2906002)(4326008)(66556008)(66476007)(54906003)(66946007)(6916009)(316002)(8676002)(36756003)(8936002)(7416002)(5660300002)(41300700001)(86362001)(31696002)(83380400001)(2616005)(26005)(38100700002)(31686004)(508600001)(6506007)(6512007)(53546011)(6486002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z21vOW85WE5kUDY2U21Kb2ZTbVA0cGMrS1FNcnM2YUpzb0JJVXFUU3Q2TVcw?=
 =?utf-8?B?Rmg0cjBwbzNvQk5UWmdsWlZaYXNDTTdXODI1c3F4S2Jhc1gwSlhDd3NQeFVv?=
 =?utf-8?B?TURyUGJzSS9mdHZnb3BOK01vWGw2NnFXbWV6ZFJDYUV1b25Rc1NaOHZGTHlZ?=
 =?utf-8?B?eVFFVGIzTk1FbmJwakJPTDRWQ1Vid3J2S0NZcDlYYjJiakNZUTlWZUF1eVpI?=
 =?utf-8?B?ZTRoaCt0MFNIUnJTRC9jeiszd29GTjBKekRnSG8rNEhrSGdpano5VnNMUGwy?=
 =?utf-8?B?UDZUZDJTNHlxUkFnVE1YT2prdDVpR3JUN1BoTWM3emJNdEZuRnhtV21Xb0hO?=
 =?utf-8?B?STRnS1o0bkdNY0RSUUtGZktFVUk0bUF3MnQvcnBEQ3U5d0RQNWczTlkzaEky?=
 =?utf-8?B?TTdqc0xVcXZqUjIvaXo3bERiMG85dlBhaTdSYmFlc0NPUTRGYXhqaTJWaStG?=
 =?utf-8?B?emE4ck5uLzJoemNDRHBpVm9qVWVkS2hMN1NIV0RiWUsyaVh2TURxMTIyWkJp?=
 =?utf-8?B?RitONDB6anRkL1RsVDFndDZDWXJCalVqWmx6TkFxL1ZsMXkrUVowbG9qdXFZ?=
 =?utf-8?B?MzFQVjRHekpyUDFFN2VQaUNnOXIvM3ZTcUx4Q0xFSllsV3N0MDFudythZjdI?=
 =?utf-8?B?N0hVZ3dkNEN4d2hZV0NhSWNFSFhINkFvVithVjdqZEVEOFgyQkY1WDEyNTVt?=
 =?utf-8?B?am1zNDB6dFF2QWZLaWxVa3ZIUUdnMmlMN1dYOERNZ3lCcThrVXNEMVROcDVB?=
 =?utf-8?B?OWt3YTJldU5VUS9RbDlnL2lJVmVldjNyckQ2MUFDNVVpMUl0Z2xhM01HS2ow?=
 =?utf-8?B?QnBRTkpVRnQ0WTdmb2RrQ2dabk1HZW0xemJxY3EzYUpsOGN6elNDL0tVdmJl?=
 =?utf-8?B?ajhiSnBHaThaUmUzSWxsS1RJNXhtbVF4eHpUL1JnRklqOTg2OFJBWnFHaHpl?=
 =?utf-8?B?Qll3MzROZVlhTnA5YUdwNkNtUWN5eXhnL1FTdVhEc0I0Y1EwdzgrcmhmSk5G?=
 =?utf-8?B?d3RTZXJTQmpUZlhobkdRdUk4SThHeUtjRkZXUVNBb3JIMEQ1Tnh2SDJ6NjlI?=
 =?utf-8?B?dWRWK3B4SkdESFJzazh6ZlRaMnpMVGp3M2pwTm0xaWJQUnl6RHZ6bVpBaEt5?=
 =?utf-8?B?S1h2VVF5REFGYXpjcDRrdUtQVnBmZmEvSmNYWW5wMUxEaGtmUm82S2g5U1JF?=
 =?utf-8?B?MldWaVpZODBDNmsvSDFnbWZIS2VSZnROQnFueExxSjFCUE1uTFY3UGdKSlA3?=
 =?utf-8?B?cSsxd2c1c21iakFlK0M3KzdaaW8wZ0FsZGlsZjM2TzA2T3BKY1FJSUpxdXFO?=
 =?utf-8?B?eE0wRUNXRjRKUDJvZEkycTA4VFNnZnA2blpxZkR3RmFCZUhiMWU1dVRhTlB6?=
 =?utf-8?B?d3BBdUxIOUVWRk45VFR0WWozOThGb1BGOFlGaFF3YjlkNzFBR25ZUWw5UmRQ?=
 =?utf-8?B?Y1J6YkJXM2lMSFZZNDNxc3d6Tm5mSzlyaEZSYURZMmlURmNudmRjRFpxbnVF?=
 =?utf-8?B?Wk1LdnJDSWNUUjF1N2JwMHlmRlBsMzcxd2lhWVFKQ0poTGpuQmZXSW1wOWdM?=
 =?utf-8?B?VzJVcGp5TEw5V1FXempnbklRQWkxblEvREFSNi9ITXRaanp2KzB4b3NmVDZz?=
 =?utf-8?B?R0tiWWFmOUhwOWhtM2FiVzhJdTNKcnhIYkxTTDllR0xETllzOVJWZU5IVUFE?=
 =?utf-8?B?MGwrZ28wTWVMeFUxZkNpa1o3OGNiQUg1OXVQWnBoeU1HSlVwc2VGUWswUkFZ?=
 =?utf-8?B?UUpxeElsRUFXREsxOWk4U2N4aS9ISmNuOXNlZ2dGeFBXOGZlKytzOHpESy9v?=
 =?utf-8?B?UFpNQXpTTWFLR2tFSTlNY3YyUG1OU3lPbGJxREJsL01zZWlTYkoyZXcvbTcx?=
 =?utf-8?B?YU44cWhSbVgzaWdOWk9kTXJLQk9qRnB2d1V5a25jRDlRTmNVTDkxZC8ybWNJ?=
 =?utf-8?B?UXRUZExmUk5Zc00vZkhGZnhPcGFZczY0RVYxSWtJeTRucTljQUI4Q0cyYzRR?=
 =?utf-8?B?V0RPY2JoM3R4NkVNbVh4UVh4akRJZGpEaGRuem9weFkxeENkMEdpU1E4NVFt?=
 =?utf-8?B?TWVyS3cvTndGZDV2TFNxWTFpN015Q09FRWlHczR4bXh3Y2xTRnQwTi8vZ2wz?=
 =?utf-8?Q?WknZw5Brdyc50WFpReSX2iN/s?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ae4bab27-9ac6-45fd-32c3-08dbf23ad072
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 06:57:42.3344
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: o4GFAGKO7kBO9Xx7ZRZQmodYEjrGYvD5L4IDXGHkntRPzEhBZcK7F3L5Rp1HEMm6hsUTUtmaQXFGmHHGNi1LeQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB9007

On 30.11.2023 18:06, Stewart Hildebrand wrote:
> On 11/30/23 03:33, Jan Beulich wrote:
>> On 30.11.2023 03:47, Stewart Hildebrand wrote:
>>> On 11/14/23 04:13, Jan Beulich wrote:
>>>> On 13.11.2023 23:21, Stewart Hildebrand wrote:
>>>>> --- a/xen/arch/x86/include/asm/domain.h
>>>>> +++ b/xen/arch/x86/include/asm/domain.h
>>>>> @@ -503,6 +503,8 @@ struct arch_domain
>>>>>  #define has_vpit(d)        (!!((d)->arch.emulation_flags & X86_EMU_PIT))
>>>>>  #define has_pirq(d)        (!!((d)->arch.emulation_flags & X86_EMU_USE_PIRQ))
>>>>>  
>>>>> +#define arch_needs_vpci(d) ({ (void)(d); false; })
>>>>
>>>> See my comments on the v5 thread on both this and ...
>>>
>>> So, the goal here is to return true for a PVH dom0, and false otherwise (for now). Since dom0 can't feasibly be full HVM, and is_hvm_domain(d) returns true for PVH, how about the following?
>>>
>>> /* TODO: re-visit when vPCI is enabled for PVH domUs. */
>>> #define arch_needs_vpci(d) ({                       \
>>>     const struct domain *_d = (d);                  \
>>>     is_hardware_domain(_d) && is_hvm_domain(_d); })
>>
>> Looks okay to me, except for the leading underscore in _d (see respective
>> Misra guidelines, merely re-enforcing what the C standard says).
> 
> Right. If I'm interpreting the standards correctly, it looks like a trailing underscore would work, seeing as we haven't adopted MISRA C:2012 Dir 4.5 (yet?).

Adopting the respective Misra rule would only affirm that we should adhere
to the C spec. Us being free-standing (and hence no runtime library involved)
may have been an argument towards more relaxed treatment, but imo never was a
good justification. And yes, trailing underscores is what I have been
recommending, but some of the other maintainers don't really like them
(without, iirc, indicating what else to use as an underlying naming scheme).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 07:02:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 07:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645304.1007405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8xXp-0000TW-PT; Fri, 01 Dec 2023 07:02:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645304.1007405; Fri, 01 Dec 2023 07: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 1r8xXp-0000TP-Mp; Fri, 01 Dec 2023 07:02:37 +0000
Received: by outflank-mailman (input) for mailman id 645304;
 Fri, 01 Dec 2023 07: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=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r8xXo-0000TJ-C9
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 07:02:36 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on20612.outbound.protection.outlook.com
 [2a01:111:f400:7eaf::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ae9b35f-9017-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 08:02:35 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PAXPR04MB9007.eurprd04.prod.outlook.com (2603:10a6:102:20f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.8; Fri, 1 Dec
 2023 07:02:33 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 07:02: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: 9ae9b35f-9017-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QuISm9tBMpr4MxVNQM+uH3MYjXdL50Riz4tN/umFt/SboE3tAq0cgFyN26D6Hip0xuSOde/eKVhxYeJkWZUiPCQzNWltveXH25iUK8EIcTgKdmPprsnS1243hE73VlAeb/H8vLiXY4bRlwsIW9M5BD3k5VZlxUBODcCGRRNrNrmGJBoO2Xz/xEWPmlPUOs7P6CfYeD5KxwWVsaP9u2iUFNxH5g6S2IEcfuV3l20eBmACp/b1BmaVja3BVADDyEHmCRZ18mm+MbDy3Xm0kYMneSfsj8lOJ9Rm8jzZqKxohhTUUvLSdKAJOtiLvdTkaqXlOEO2ndkSx31KKv3R2rQW6g==
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=hc3VbQwl8iBqZ+QVA34SczUndA6xgUTDtNFyAweavFA=;
 b=Ne+kbDXh374czzAA5l1oz+OumYXsHpEuM26xIDkxLUFDCjW1580RLgv98R5KUdbhv/iKRwu57V14gaPygkBj+qUrK7xW8CexBusbN4MtaQ4jUu3+U5qpFKsfJdlbAVhWIHuTDYKYioHMdWkEsZZOC7gq7K+zBe8jhwu3u6uC0K28AP+1/cN/tYS6rdpLhlaK77op2QZuG0OO3II6DVLutzx2x3/rdnqu0ohbYCOpdXzTeux92jgPG9tRWK/uWAXlB8gF9ZB311uLndX4Xz/RMKeoLQIZkSNFda6hrHhg6KYiigfx5Cu34imqpJWEqVwbVztf/G1JWzaluCor97vTGQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hc3VbQwl8iBqZ+QVA34SczUndA6xgUTDtNFyAweavFA=;
 b=CTjOtEckNs1eZTcvFignh0VUgGs5bvCvcVdmO5poVBrd4muMT5veaaSN6R3MZ5nyu2CS6737NwgJJqr+DIip2FnXaAlSUYwywyQ2MuFF7dpxziJTsGOwYaPKALshJQWdRds1NxfeGX0e477wCi3n+AhB4IwLqFhWkQgyUUHOWwE36j4mZGkFWYqdufvWDqph/lyj0m2v5p8JE3ZhWVqoBU6cz3npOiq34geud065ELfGy1usW2hR6uIZweXbn0EA5FuyiB0TPYBY4WsR6DhU94oqZdJnoATtU+1BgreWppHAr9vGCTyRk3WdUeJtl3mq2vicxB36N69pgBpFDQXcOw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <6921f9a8-94dd-41e4-9e4b-5e6411a8dcd8@suse.com>
Date: Fri, 1 Dec 2023 08:02:31 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
Content-Language: en-US
To: Tamas K Lengyel <tamas.k.lengyel@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Kelly Choi <kelly.choi@cloud.com>
Cc: xen-devel@lists.xenproject.org, committers@xenproject.org
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
 <CABfawhnXtOFuqNgWP=6bdX_+T7X0+T_wxQtJsxMrbtpbempuVA@mail.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: <CABfawhnXtOFuqNgWP=6bdX_+T7X0+T_wxQtJsxMrbtpbempuVA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR2P281CA0142.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:98::8) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PAXPR04MB9007:EE_
X-MS-Office365-Filtering-Correlation-Id: 1cc1cf51-379a-4b56-8d42-08dbf23b7de8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	p6A3pb9+2YiF1noCz6Wgo6SJz+sxI6q6Lnbuwxk3Byk1cqCvkFBwF0t751eqIQIYoGZZTuMKlLMSHpIbLfEzrwFZhHdOdQ2BSeYMlDQ6ftR9+WMnsFG22g7gyahlZnDK0g6HLhG/D9tyckQpHx+MxRRCdGc+EAtQoOFeGoLiX1UlyS1V6/FVpTwN98BVvUrop96MSM4rrYXpxZf1pYALmr6lD5auBPIiZiJdFLR5AlJ7ajlJt8R9hGzSerenrLsfekgKYYCxLYmYtWi7XL8wdMnR7BEXvqsAJWx1cBbKAcZwEjWZ/xuTwVRanGTKYG3XB5OJwR48yMUZgYasmZhiUQqj3cRb51iQm1Rsq1Wziv0uIo8eplrBepUY2W+IwkKIDEgBVmsBBCBj0KSjxTXq2L6RPte543NwmfB70uvzPAQK/i1QjJ0V6O3kkxwG4iZPIXpiLTHnKTOD9dLysS2u5FRDakDnNorf8vr0pVdbVhzxy+4/VFqiKo73CHVyr3OSDvuiBunz0Gi9xSDpnve1QlJsmUyyut4YHTh6MVQtj9/CB38u+542M2IPMx3G5SQlcxTQuhSwdXiWWLXlX2bmEwDW2B3+yAk1nnSxtXPBSXscjGF3cTtMyRMCZ1CZhMSooxfuqSTdbTYiw5yUpqE07g==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(346002)(376002)(136003)(39860400002)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(2906002)(4326008)(110136005)(66556008)(66476007)(66946007)(316002)(8676002)(36756003)(8936002)(5660300002)(41300700001)(86362001)(31696002)(2616005)(26005)(38100700002)(31686004)(508600001)(966005)(6506007)(6512007)(53546011)(6486002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dENYSVBnRjJQSEFnT2lOZjEyQTBCY05vbUY3eGp0cFNoSlRtamVZZjNoMHNn?=
 =?utf-8?B?eUdQcFNaeEZJbDV4dkVQcTcrVUl4LzEzaDJuaFNIMVlSZmZNRlU4V2s3QVZG?=
 =?utf-8?B?SWV6eURGNDA3aXM0SzZFbjBzRXdNOUpJN2VsS0hOdy85cjh0Uy9ERXZ6cTVv?=
 =?utf-8?B?UDFUN3praFFYb0xhYVhnVW1ZSUdGcm13VkhiOFduM0R3TDQ0Y3FycmxYQUI1?=
 =?utf-8?B?UG84M3NJUjVPSTA2QzNhOWZHZnZINjBlVFgySUZMRWR0RjBJcXBrcUFaRFdu?=
 =?utf-8?B?Q3JmUS9yTCtrSnRuV0NZNGhCSDVBaitDQ3Jxcnh3amVCU2lJc29mNVQ4WGl0?=
 =?utf-8?B?K3RnSjhKazR5eHE4RGxmVlVnU09seXVXckoxNS85VkRHbHErcy9kanJsVWdu?=
 =?utf-8?B?aGlNa29ZMHZLOXVRaFhPSmdDN2x1aSs3TGcyb0s4ODNsczFjcHlVS1EzeElv?=
 =?utf-8?B?NGFCbmtOMHBoTEliSHBEVkQ4bDAwcktIY0hiV29zOFFycXZqTWVOa0UvazNn?=
 =?utf-8?B?VExGbEdtaitScmxyNXhSNTB4ZXFMSjQ1QXBFbGh0clJlS05vdk5iMmQxMXpI?=
 =?utf-8?B?L1hIcndrbTZhYlhLRHlTK2doem5BSS9Palk0QkFrZ3ZpREFMcXpoTktrYTVr?=
 =?utf-8?B?MjU4MzRyamtncXZ1OVUzYUFJN3VrUzZTN3gzbzNVSldIUlFoVXN4TjlnekVX?=
 =?utf-8?B?Tmh2VGRmSFM1Wmp6alhlVHRScVJNWXh2Vk5oVEdMME1kV1lyQXNHUThqV2NF?=
 =?utf-8?B?SjBwNkdFNytzb3BSVzlTWTRSUFFHWVY1TEJBc2hkTG45SGFlOXhKM0loMllM?=
 =?utf-8?B?emE4a2lJQUlLbVltSFV5dGhOOUZCSTRBNVRmSW5iMnJvOHJNeGNKZ01DK1dn?=
 =?utf-8?B?dDhLek9BdFJLL00zNmZtQStvMGNMSVd6OG1WdmpiVGVqR0l0WnVuZWxtbDZ5?=
 =?utf-8?B?ZGNERFMvV1pqTEc0Y2ZZOGVxVmwxOXRLOUd2a1pZdmlFWkJUSHpxNmJrYzgy?=
 =?utf-8?B?aU4rdENBOHIyMzQ2QWhOZ0M5WUd5T2s4TDAxZW40Y2VvVVVXOXhJQjV6N2xJ?=
 =?utf-8?B?UThwTkJQMmFFQ000SW9LOEhaVDhWeWFmR0E5OXZUSy9pc0RTMHJsV2d5OWNB?=
 =?utf-8?B?WnhaNDg2cXN6YzhLRUxBdkVJTXdrRytWVFozMHpuVm4rL2xIYWhic0taRW1i?=
 =?utf-8?B?ZnZOYVR2bTV2T0lFT3VpK3J1T2Q1d2lOcVBCWDB5VGFweEVtM1UzaFErWVZT?=
 =?utf-8?B?VXovYk1zRHZUaGxhWmN4UWNTZk5MNzAzTVBsZzg2VkdKSnVqYXRyWnJNTXAr?=
 =?utf-8?B?RjMwbzJQalFDYlVxbzhPWEZrYUpoUUUrOVduQWdUWDMvZWtIbFdWTVpoRllB?=
 =?utf-8?B?ZjFrU3U1TnFwQ2dhRFVlK3NucDFRcGNIQXlvM3hCbVdYQVE2T3gvaTJramw5?=
 =?utf-8?B?eWIvaGF6aS9nOFdnblNEQ09kenRxRjNrYmFBUTdodEhsNjY4Ymg2MnY0VHJp?=
 =?utf-8?B?Q29Ebk1SZ2NFOGtjZHI1d3JxOW00YnRGYmNYam1ldmgwVnQ3ZzhzM3ZVWTBi?=
 =?utf-8?B?dFlyNi9VVWNWKzVsWmJIWHRveVBhRmszU00wV05USFhzU2d3aHZha3kyOHBn?=
 =?utf-8?B?aVBUODI0SmN2RWZlT0tLYlhvWjJYc0FLQllTbGJtZzdyaEtQUzhzdVBaeWN0?=
 =?utf-8?B?NFVCbi9Gem1zMUY4d3kvUDIxeFdEUytQSmIydFJLWU5Wc29lWFVCQnVWUFY3?=
 =?utf-8?B?K1FTSzE4WGlUNEJCZUUvZ2M5SnVEWU9jbnYxSUx5NXdoVmVvVERDZTRXakpD?=
 =?utf-8?B?bkFSREhTZTJHSzZBNm1iUEtEQklXSVBsRUZNTDVxNW9mT1F5TEN2V1lOZ0xR?=
 =?utf-8?B?aTRmdFBQQWpyVTJONFN6STB3blpBaU5HQ0tBZk9VbjJQNGJtL1JsQ1hCekpT?=
 =?utf-8?B?R1JYTEdKbVNHdGVFNG5rOGQvYzE4N0RrQSsrU1YzTytkSyt1a3dqazdlN2xr?=
 =?utf-8?B?V3dMQTZ4YnFlUHJESGdYL21tb3JUaEh3ZE11RUEybnVzZXphM2tVWHQyNHNB?=
 =?utf-8?B?alpSSXNHck9zK0V1cUx4QjlNbUhuNlNhaDJjYkhaT29tU2xrNWJBOExaeHhl?=
 =?utf-8?Q?YqzQS9bE+7zAilaBLi7sBotnR?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1cc1cf51-379a-4b56-8d42-08dbf23b7de8
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 07:02:33.3552
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rBX4yhUPOl+R2np4DoYaD9dsu109bgqOdO0VXUoJtNMMbjsmWwrB3Qh+0lgy/kls3zrwvAVuhlo7xPWXs4+Rgw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB9007

On 30.11.2023 23:57, Tamas K Lengyel wrote:
> I think this form is bad and is not helpful. We ought to be able to
> recommend an alternative term beside "broken" and "deprecated". I
> would not use the term broken in this context but that also doesn't
> mean we shouldn't use it in any context. But also in this context
> deprecated is not the right term to use either since deprecated would
> require us to actually make the old hypercalls stop working altogether
> at some future point, which we won't ever do AFAIU. My vote would be
> to use the term superseded in this context, which I can't express
> clearly in the form so I'm not going to cast a vote.

+1

This really supports my earlier voiced concern that reducing things too
much for "ease" of voting isn't helpful. (That said, I don't share
Tamas'es view on the use of "deprecated".)

Jan

> On Thu, Nov 30, 2023 at 5:28â€¯PM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
>>
>> Hi all,
>>
>> This vote is in the context of this thread:
>> https://marc.info/?l=xen-devel&m=169213351810075
>>
>>
>> On Thu, 30 Nov 2023, Kelly Choi wrote:
>>> Hi all,
>>> There have been a few discussions about how we use documentation wording within the community. Whilst there are differences in opinions and
>>> perceptions of the definition, it would be helpful to see a wider consensus of how we feel.
>>>
>>> Discussion: Should we use the term 'broken' in our documentation, or do you think an alternative wording would be better? If you agree or
>>> disagree, please vote as this will impact future discussions.
>>>
>>> I have purposely made the vote between two options to help us move in a forward direction.
>>>
>>> PLEASE VOTE HERE. Deadline 15th December 2023.
>>> Your name will be required but will be private. If you answer anonymously, your vote will not count. This is to ensure it is fair and each
>>> person gets one vote.
>>>
>>> As an open-source project, we need to come to a common ground, which sometimes means we may not personally agree. To make this fair, please
>>> note the final results will be used to determine our future actions within the community.
>>>
>>> If the majority votes for/against, we will respect the majority and implement this accordingly.
>>>
>>> Many thanks,
>>> Kelly Choi
>>>
>>> Xen Project Community Manager
>>> XenServer, Cloud Software Group
>>>
>>>



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 07:04:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 07:04:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645307.1007416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8xZy-000153-As; Fri, 01 Dec 2023 07:04:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645307.1007416; Fri, 01 Dec 2023 07:04: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 1r8xZy-00014w-6k; Fri, 01 Dec 2023 07:04:50 +0000
Received: by outflank-mailman (input) for mailman id 645307;
 Fri, 01 Dec 2023 07:04: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=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r8xZw-00014m-9a
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 07:04:48 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20601.outbound.protection.outlook.com
 [2a01:111:f403:2612::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e8dcd176-9017-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 08:04:46 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AS8PR04MB8372.eurprd04.prod.outlook.com (2603:10a6:20b:3b3::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.11; Fri, 1 Dec
 2023 07:04:43 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 07:04: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: e8dcd176-9017-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dWpRE0mhI7d5uMWIdu5viJPHSD428m/5DH82VTstHI74VRvCBi+TDFuC6AjsNX2gyJbmxWe+FbGZrEqGKk+qoRDVGSWg9ZCe2awA2it5nroBFLV2dDzw1al/swZY1VvOkmnZwk0BzhRqV7R+zgtYYqtBwz3lDs69N69NiGRZYhUuXkb1ab6X97F4/R2RczpYkGYDIicSEgHSHOgGWKtKey9svc+z0RsEjA+Zue6S4mU42JSw8u3I+tPb7RwznQOQpXLkZsNaqo8n5Xk6NF5H7emFufRVF/ACTCMdk2mn4DZxNb32RQ2kJLceJ+ToBTmO+1/QH3sihM/Lv1y1F2mPJQ==
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=ntrgcbQQr8qmSnAY61BdbyT006mCPiG2PgnYHyPvRrg=;
 b=ZZQnoHodgWVYBR+4QxLWlEEm2yTqPp3j3VxqdIWKxfBViUt5zKpAeQoSN7RUbxbrzPXBrNpB9+h5ZZ3yg5YMr5Ncy96EBhP+yljocs7WzGwpeyI1U0nIeSzn4z5X+dRXBFJJHy1hpDxIGZvinzFk1B9/TxRIIXtpgG9GX93O+6ZNEXOzmL0v+ryIyJhgKgm96ThUpwbNWFfYKEVamxEAjBUGpptXx0KKGqGbPCTWXKWx/kbQh0mZQMXWH5tpt0MXnx2tOLUt9K9wmya9/ws6mnioQKrN6mkF1sb/w9hzg7+6wdYpxyEs2okAnRp2PHL9mqfpTomu4PdygU0OcavnFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ntrgcbQQr8qmSnAY61BdbyT006mCPiG2PgnYHyPvRrg=;
 b=pb/xpthlwurzeqRwdENlWutNAnnHeiYLgiIE6xsIcCLIqve3W+0DdlzERkk3Q8wqYpLC+yyxVF2DOKn6cO4MguZLftfraxKCQqq2J0voFAKzG9s4CfMuLbRdmd11b16FTUaGq2rLLhSACTPFbyjhsGpvue1kSd/S8qTeCNctf1u5WSu2DKhe8hFs81CI+Ii8a3YbtqAx59UsLUECW3AmFPnEOzYrukX/v+SG7Ez3htbXpOfzJxhftok/BqNhe7yiKWAMn/+Zis4MncEmzruWSRBwJ86Gr20SCdIdUbglZAsV/rX0benGXgC0hE5UZfj0wu7a0MhkGVidMYUkrPvKsg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <073e8dd7-2fb2-46ab-b513-3672a3ee74e1@suse.com>
Date: Fri, 1 Dec 2023 08:04:41 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/10] xen/version: Introduce non-truncating
 deterministically-signed XENVER_* subops
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jason Andryuk <jandryuk@gmail.com>,
 George Dunlap <George.Dunlap@eu.citrix.com>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, Daniel De Graaf <dgdegra@tycho.nsa.gov>,
 Daniel Smith <dpsmith@apertussolutions.com>, Henry Wang
 <Henry.Wang@arm.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20230815210650.2735671-1-andrew.cooper3@citrix.com>
 <20230815210650.2735671-3-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2311301429030.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2311301429030.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0156.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:98::13) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8372:EE_
X-MS-Office365-Filtering-Correlation-Id: 8bf322d3-3b97-46c6-4ab3-08dbf23bcb95
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	SxLrGasmu/5OQEuLeYU/fZOc52YbxNktJpMymMHddzwgfg1Fn+ZUtJZyflKxgvp7EhYWlKXsFKrZxKtpOxAOnl2dZaua0D6Q3X+mzY1/701Ry8LmWsUlR+HFFWr+VL/tZclexz7C5V3PDK1jVGkMlSohNwo+nFmJM/hAROQgoH5vH/0hMTyPwvkytvI44IWDNkYi+eZ7MBygvtCKn0gEpcEbAqLaGOV0Nv9ZxMubOsvHwicm1k/uQJpaffj/M0+y9BM53f7urtoY00L3LZax4rmJRTr6XThTq08FnYDU0o9UXFj3Zodkl8MaN6IeZDc3+rNtaa03YC0Yh5new5BC6n9HxWuAmhSwQkA4XV91ClppJ2vyX5BqO+N1kKJXhjL+8xeEwXLZh69Wx/WKvwtjVTJSmpjCiAcqrPFTMFgPf0JcjKvVGA7SWdKA1M9MVmI4NgJ66/i/+DxadK3BGaTPCh7lBMRbYWNkManG16GsZ2vWSI/Pe6I+C5+PGKH74KdSiaLmOF8n8yivKOGqJuV2v1yQJ8qPKlE8rqn2i40J1QETShEFr+WNY6Rx5QIHSkcPX11dXsM4b/CrAkKJtJmivV0DiwSwTNK33VuK9nfD4g+i+xClc3RahhmSGAj7khy+V86+4NQg7BOYZmhU7SqNyRgpMUcIoM414Ukca6AegFhBj8e2ZF1VZTrOBDKP35+K
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(346002)(396003)(366004)(136003)(39860400002)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(66556008)(6486002)(6916009)(508600001)(66946007)(66476007)(316002)(54906003)(966005)(86362001)(38100700002)(2616005)(8936002)(4326008)(8676002)(6506007)(6512007)(53546011)(26005)(83380400001)(5660300002)(2906002)(31696002)(30864003)(7416002)(31686004)(41300700001)(36756003)(21314003)(45980500001)(43740500002)(309714004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Qm1vR3JtdTUwR2JoejhrV0N5QzU4V1lsdEVBMUhnekt3aUtQMGh2dFNZUXFV?=
 =?utf-8?B?Yk9KbXhlV3FOMjRMaEN1TGVpSXFFWW8reUFGc25yM3R2REM0V3QwMFpvd1RC?=
 =?utf-8?B?elU5ZUdEbFVEZTZvck9KNnFrMkFpblB2ZGpPWkVYWSs3ei9iazhaWVczdm5q?=
 =?utf-8?B?RFdRS25mUnlESkxCTTcrTnVZOEQ1QUNtaHFCL0NCQ1puelZETFVoTFk0ak9S?=
 =?utf-8?B?V2hXZlgwSldaS0FIYmtjU3VlWnYwRzQ1cjg3RVRuenpUUGFEMEUxZ2VVQ2lr?=
 =?utf-8?B?ODJEM1RXcFNSelR6RWRPMzdmcklDSG9kbVBBL0RhZElNc1lCNWFRTDJkUFE3?=
 =?utf-8?B?VjZmN3NDVkpEZnl6TWkvbWlNNlM0a3U4UWdDZ3FVU3JHVnFIVUpJb1o1cnBQ?=
 =?utf-8?B?aHBzS3BFM01IaVgwUWRGdExKVmVmN0F1dzVWQjVpMWhBM1k1QysyeEJIelo1?=
 =?utf-8?B?S2FEbEdDWFdCbGkzQjJaNlZJSitYZXF1bVRyUW84VTJGcVk4dG5rcmR5eFhJ?=
 =?utf-8?B?NFRmYXVYQzBoSFRqZTNzaVFrYUZJVnZBYVI5a2tTUmFaQ1VrWCtRdVhXQitq?=
 =?utf-8?B?ZmxMWVVrdEdXNnZaUGdkMCs5d1NsU0YvaHRldk9TckkzZkRuV3k3QnhtSXB5?=
 =?utf-8?B?YmlPYkMxRC9wM2RvOEk2Vm9TZTlWN0oyTDh0ZEI3SjJiSjVscmN3MFlka0lU?=
 =?utf-8?B?eTVIMzkvalFRZGZZZENEM09PVmMzZEVUMFZLUmxGLzRwK0IzZDFSb3FPMllx?=
 =?utf-8?B?REF2Kzc0ZkxlK1Nnb0h3NkV6RnEvaXk3V21tYklia3dRZGJ5dnBYMXVTY2J1?=
 =?utf-8?B?Q215NWdrOVQraG94MEdpVmZhdWYrcytPZ3VhdXZ0RFZrNUQzYTNQYW1LU3p1?=
 =?utf-8?B?Wjl3dTJvVm1Ib0hWVWE3N01OL2ZBUFplNTgrd3FpK21pR05ja2VWblVOM1d0?=
 =?utf-8?B?bW4rNGJwS0RoV1JRS1ZEQzdIZkhBTzdKWjZiSlduN2c2YURZU0RGVmFTZnpW?=
 =?utf-8?B?UG9rdGtLSUVhTnB3cEh1U0RJd20xS0NVUWE5WEJRV2Q5U3poamxEMzlQUkd1?=
 =?utf-8?B?azhJQnF1MEZKQ0lIajlNcE0xWEt4Z25sWDhoRitobTRHdkxsNVFjWGovYmFC?=
 =?utf-8?B?NjBVMDZ2aEliQTk0TlpSRHFodWRVZGtYR0xTN2lqcWpzbzVwUStuVGlpRlRr?=
 =?utf-8?B?aU1tMHQwTUpyVm9mNHo0NlFDY0R3cVBCVXNZT1krTUFSUjd3TGh0bGZtK0Er?=
 =?utf-8?B?a0U1QnNGbzAxcE03emI0cUwrVmZqbTlWODh4YStwK3JwLy9aOTNNUVlaUVBY?=
 =?utf-8?B?MHkzaW1rQzA4YkRWVlFVNU5kQlQ2UWJYUXBZeXBPRG9JaWpxdHZUbHpubDc4?=
 =?utf-8?B?YWE3VDNna0RJbmI0QTlQVjR0bE1tbDU4TDFYUm5QMkY2VTlxUkVOT1hLSkJu?=
 =?utf-8?B?NXRhV2NlL0ljVERQSFZ3bWpWNmdKM01SRmhJbFpTMy9XTTZVK1BiUUxYbDVq?=
 =?utf-8?B?VkFSaDdnTStYeExhblRwQ25HTVYzenppd0h2bWJoOFE0dTAzT1hiaE1CeEJC?=
 =?utf-8?B?c2tQSG4yOXUwL3NKbTlBQkhVdXIyeW5pTjk3Mzdoa24vUm5saWphN3A0dzRk?=
 =?utf-8?B?T2VZbWlyVmZWNS9oWTRrdlA0L1hzZVcxZWtYRVc2NWc0UXRNbEl6Mkxod1dB?=
 =?utf-8?B?RXBwSkxrZFE5UXdsNmRGRXJQMmd4SDh1LzdFdjZ5SWJ1U0hZMkZTNWZObU1p?=
 =?utf-8?B?aDlDejFFbkZ2UGVMNzFvVlhWL0VKbHY3WjhEUVdkOFV3TzFhbDZOSGUrY2Rq?=
 =?utf-8?B?UlgzRnlaTklIWGZDSU9pTGh1cUZlTm9wd3ZSWXgyYVIvZXlYaERuVTR2WjZk?=
 =?utf-8?B?NGNZQ3ZWSzl2L1hhaEZ4c1RuTzV4bFUxRHQ3Skw1cVczSWg5QjFaa3k0SUUy?=
 =?utf-8?B?L3RTdEk4VUhIeGthcmpSYytkRXFBSnE3Y2NmQlVJb1FXN3hlblBBZUNXRUd0?=
 =?utf-8?B?bUJETDh2VDBZWTVpd3cxVktaeEYySjJseDFNTXlVYkFiUktkMTBQM1E5SVJv?=
 =?utf-8?B?b04xaWxRcHF0MmJNMldkZnZ4M2oyR2xDL3oxUUpCL000NlVuYXZiQnVQR0JL?=
 =?utf-8?Q?M7HLctAUgWN2u79ln/Bl1ePwb?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8bf322d3-3b97-46c6-4ab3-08dbf23bcb95
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 07:04:43.7116
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: T44mFoa1k591HL6s/ojcxYoWCjHCiuFbbaNOdtFGeUx/iiyEMdqI6J4IWla5ISTq/ThwnnkxSiGtL3PeKu0T2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8372

On 30.11.2023 23:30, Stefano Stabellini wrote:
> Hi everyone following this thread,
> 
> please see:
> https://marc.info/?l=xen-devel&m=170135718323946
> https://cryptpad.fr/form/#/2/form/view/7ByH95Vd7KiDOvN4wjV5iUGlMuZbkVdwk7cYpZdluWo/
> 
> For a vote on the usage of the word "broken"

So I did vote before becoming aware of this context. I would have voted
differently if I had known that this _alone_ is the context. Yet then
I'm also not going to change my vote, because as written _there_ it is
intended to be more general. If the wording of the text describing what
to vote on changed, things would be different.

Jan

> On Tue, 15 Aug 2023, Andrew Cooper wrote:
>> Recently in XenServer, we have encountered problems caused by both
>> XENVER_extraversion and XENVER_commandline having fixed bounds.
>>
>> More than just the invariant size, the APIs/ABIs also broken by typedef-ing an
>> array, and using an unqualified 'char' which has implementation-specific
>> signed-ness.
>>
>> Provide brand new ops, which are capable of expressing variable length
>> strings, and mark the older ops as broken.
>>
>> This fixes all issues around XENVER_extraversion being longer than 15 chars.
>> Further work beyond just this API is needed to remove other assumptions about
>> XENVER_commandline being 1023 chars long.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Reviewed-by: Jason Andryuk <jandryuk@gmail.com>
>> ---
>> CC: George Dunlap <George.Dunlap@eu.citrix.com>
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Wei Liu <wl@xen.org>
>> CC: Julien Grall <julien@xen.org>
>> CC: Daniel De Graaf <dgdegra@tycho.nsa.gov>
>> CC: Daniel Smith <dpsmith@apertussolutions.com>
>> CC: Jason Andryuk <jandryuk@gmail.com>
>> CC: Henry Wang <Henry.Wang@arm.com>
>>
>> v3:
>>  * Modify dummy.h's xsm_xen_version() in the same way as flask.
>> v2:
>>  * Remove xen_capabilities_info_t from the stack now that arch_get_xen_caps()
>>    has gone.
>>  * Use an arbitrary limit check much lower than INT_MAX.
>>  * Use "buf" rather than "string" terminology.
>>  * Expand the API comment.
>>
>> Tested by forcing XENVER_extraversion to be 20 chars long, and confirming that
>> an untruncated version can be obtained.
>> ---
>>  xen/common/kernel.c          | 62 +++++++++++++++++++++++++++++++++++
>>  xen/include/public/version.h | 63 ++++++++++++++++++++++++++++++++++--
>>  xen/include/xlat.lst         |  1 +
>>  xen/include/xsm/dummy.h      |  3 ++
>>  xen/xsm/flask/hooks.c        |  4 +++
>>  5 files changed, 131 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/common/kernel.c b/xen/common/kernel.c
>> index f822480a8ef3..79c008c7ee5f 100644
>> --- a/xen/common/kernel.c
>> +++ b/xen/common/kernel.c
>> @@ -24,6 +24,7 @@
>>  CHECK_build_id;
>>  CHECK_compile_info;
>>  CHECK_feature_info;
>> +CHECK_varbuf;
>>  #endif
>>  
>>  enum system_state system_state = SYS_STATE_early_boot;
>> @@ -498,6 +499,59 @@ static int __init cf_check param_init(void)
>>  __initcall(param_init);
>>  #endif
>>  
>> +static long xenver_varbuf_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>> +{
>> +    struct xen_varbuf user_str;
>> +    const char *str = NULL;
>> +    size_t sz;
>> +
>> +    switch ( cmd )
>> +    {
>> +    case XENVER_extraversion2:
>> +        str = xen_extra_version();
>> +        break;
>> +
>> +    case XENVER_changeset2:
>> +        str = xen_changeset();
>> +        break;
>> +
>> +    case XENVER_commandline2:
>> +        str = saved_cmdline;
>> +        break;
>> +
>> +    case XENVER_capabilities2:
>> +        str = xen_cap_info;
>> +        break;
>> +
>> +    default:
>> +        ASSERT_UNREACHABLE();
>> +        return -ENODATA;
>> +    }
>> +
>> +    sz = strlen(str);
>> +
>> +    if ( sz > KB(64) ) /* Arbitrary limit.  Avoid long-running operations. */
>> +        return -E2BIG;
>> +
>> +    if ( guest_handle_is_null(arg) ) /* Length request */
>> +        return sz;
>> +
>> +    if ( copy_from_guest(&user_str, arg, 1) )
>> +        return -EFAULT;
>> +
>> +    if ( user_str.len == 0 )
>> +        return -EINVAL;
>> +
>> +    if ( sz > user_str.len )
>> +        return -ENOBUFS;
>> +
>> +    if ( copy_to_guest_offset(arg, offsetof(struct xen_varbuf, buf),
>> +                              str, sz) )
>> +        return -EFAULT;
>> +
>> +    return sz;
>> +}
>> +
>>  long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>  {
>>      bool_t deny = !!xsm_xen_version(XSM_OTHER, cmd);
>> @@ -711,6 +765,14 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>  
>>          return sz;
>>      }
>> +
>> +    case XENVER_extraversion2:
>> +    case XENVER_capabilities2:
>> +    case XENVER_changeset2:
>> +    case XENVER_commandline2:
>> +        if ( deny )
>> +            return -EPERM;
>> +        return xenver_varbuf_op(cmd, arg);
>>      }
>>  
>>      return -ENOSYS;
>> diff --git a/xen/include/public/version.h b/xen/include/public/version.h
>> index cbc4ef7a46e6..0dd6bbcb43cc 100644
>> --- a/xen/include/public/version.h
>> +++ b/xen/include/public/version.h
>> @@ -19,12 +19,20 @@
>>  /* arg == NULL; returns major:minor (16:16). */
>>  #define XENVER_version      0
>>  
>> -/* arg == xen_extraversion_t. */
>> +/*
>> + * arg == xen_extraversion_t.
>> + *
>> + * This API/ABI is broken.  Use XENVER_extraversion2 where possible.
>> + */
>>  #define XENVER_extraversion 1
>>  typedef char xen_extraversion_t[16];
>>  #define XEN_EXTRAVERSION_LEN (sizeof(xen_extraversion_t))
>>  
>> -/* arg == xen_compile_info_t. */
>> +/*
>> + * arg == xen_compile_info_t.
>> + *
>> + * This API/ABI is broken and truncates data.
>> + */
>>  #define XENVER_compile_info 2
>>  struct xen_compile_info {
>>      char compiler[64];
>> @@ -34,10 +42,20 @@ struct xen_compile_info {
>>  };
>>  typedef struct xen_compile_info xen_compile_info_t;
>>  
>> +/*
>> + * arg == xen_capabilities_info_t.
>> + *
>> + * This API/ABI is broken.  Use XENVER_capabilities2 where possible.
>> + */
>>  #define XENVER_capabilities 3
>>  typedef char xen_capabilities_info_t[1024];
>>  #define XEN_CAPABILITIES_INFO_LEN (sizeof(xen_capabilities_info_t))
>>  
>> +/*
>> + * arg == xen_changeset_info_t.
>> + *
>> + * This API/ABI is broken.  Use XENVER_changeset2 where possible.
>> + */
>>  #define XENVER_changeset 4
>>  typedef char xen_changeset_info_t[64];
>>  #define XEN_CHANGESET_INFO_LEN (sizeof(xen_changeset_info_t))
>> @@ -95,6 +113,11 @@ typedef struct xen_feature_info xen_feature_info_t;
>>   */
>>  #define XENVER_guest_handle 8
>>  
>> +/*
>> + * arg == xen_commandline_t.
>> + *
>> + * This API/ABI is broken.  Use XENVER_commandline2 where possible.
>> + */
>>  #define XENVER_commandline 9
>>  typedef char xen_commandline_t[1024];
>>  
>> @@ -110,6 +133,42 @@ struct xen_build_id {
>>  };
>>  typedef struct xen_build_id xen_build_id_t;
>>  
>> +/*
>> + * Container for an arbitrary variable length buffer.
>> + */
>> +struct xen_varbuf {
>> +    uint32_t len;                          /* IN:  size of buf[] in bytes. */
>> +    unsigned char buf[XEN_FLEX_ARRAY_DIM]; /* OUT: requested data.         */
>> +};
>> +typedef struct xen_varbuf xen_varbuf_t;
>> +
>> +/*
>> + * arg == xen_varbuf_t
>> + *
>> + * Equivalent to the original ops, but with a non-truncating API/ABI.
>> + *
>> + * These hypercalls can fail for a number of reasons.  All callers must handle
>> + * -XEN_xxx return values appropriately.
>> + *
>> + * Passing arg == NULL is a request for size, which will be signalled with a
>> + * non-negative return value.  Note: a return size of 0 may be legitimate for
>> + * the requested subop.
>> + *
>> + * Otherwise, the input xen_varbuf_t provides the size of the following
>> + * buffer.  Xen will fill the buffer, and return the number of bytes written
>> + * (e.g. if the input buffer was longer than necessary).
>> + *
>> + * Some subops may return binary data.  Some subops may be expected to return
>> + * textural data.  These are returned without a NUL terminator, and while the
>> + * contents is expected to be ASCII/UTF-8, Xen makes no guarentees to this
>> + * effect.  e.g. Xen has no control over the formatting used for the command
>> + * line.
>> + */
>> +#define XENVER_extraversion2 11
>> +#define XENVER_capabilities2 12
>> +#define XENVER_changeset2    13
>> +#define XENVER_commandline2  14
>> +
>>  #endif /* __XEN_PUBLIC_VERSION_H__ */
>>  
>>  /*
>> diff --git a/xen/include/xlat.lst b/xen/include/xlat.lst
>> index 9c41948514bf..a61ba85ed0ca 100644
>> --- a/xen/include/xlat.lst
>> +++ b/xen/include/xlat.lst
>> @@ -173,6 +173,7 @@
>>  ?	build_id                        version.h
>>  ?	compile_info                    version.h
>>  ?	feature_info                    version.h
>> +?	varbuf                          version.h
>>  ?	xenoprof_init			xenoprof.h
>>  ?	xenoprof_passive		xenoprof.h
>>  ?	flask_access			xsm/flask_op.h
>> diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
>> index 8671af1ba4d3..a4a920f74e6e 100644
>> --- a/xen/include/xsm/dummy.h
>> +++ b/xen/include/xsm/dummy.h
>> @@ -828,9 +828,12 @@ static XSM_INLINE int cf_check xsm_xen_version(XSM_DEFAULT_ARG uint32_t op)
>>          block_speculation();
>>          return 0;
>>      case XENVER_extraversion:
>> +    case XENVER_extraversion2:
>>      case XENVER_compile_info:
>>      case XENVER_capabilities:
>> +    case XENVER_capabilities2:
>>      case XENVER_changeset:
>> +    case XENVER_changeset2:
>>      case XENVER_pagesize:
>>      case XENVER_guest_handle:
>>          /* These MUST always be accessible to any guest by default. */
>> diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
>> index 78225f68c15c..a671dcd0322e 100644
>> --- a/xen/xsm/flask/hooks.c
>> +++ b/xen/xsm/flask/hooks.c
>> @@ -1777,15 +1777,18 @@ static int cf_check flask_xen_version(uint32_t op)
>>          /* These sub-ops ignore the permission checks and return data. */
>>          return 0;
>>      case XENVER_extraversion:
>> +    case XENVER_extraversion2:
>>          return avc_has_perm(dsid, SECINITSID_XEN, SECCLASS_VERSION,
>>                              VERSION__XEN_EXTRAVERSION, NULL);
>>      case XENVER_compile_info:
>>          return avc_has_perm(dsid, SECINITSID_XEN, SECCLASS_VERSION,
>>                              VERSION__XEN_COMPILE_INFO, NULL);
>>      case XENVER_capabilities:
>> +    case XENVER_capabilities2:
>>          return avc_has_perm(dsid, SECINITSID_XEN, SECCLASS_VERSION,
>>                              VERSION__XEN_CAPABILITIES, NULL);
>>      case XENVER_changeset:
>> +    case XENVER_changeset2:
>>          return avc_has_perm(dsid, SECINITSID_XEN, SECCLASS_VERSION,
>>                              VERSION__XEN_CHANGESET, NULL);
>>      case XENVER_pagesize:
>> @@ -1795,6 +1798,7 @@ static int cf_check flask_xen_version(uint32_t op)
>>          return avc_has_perm(dsid, SECINITSID_XEN, SECCLASS_VERSION,
>>                              VERSION__XEN_GUEST_HANDLE, NULL);
>>      case XENVER_commandline:
>> +    case XENVER_commandline2:
>>          return avc_has_perm(dsid, SECINITSID_XEN, SECCLASS_VERSION,
>>                              VERSION__XEN_COMMANDLINE, NULL);
>>      case XENVER_build_id:
>> -- 
>> 2.30.2
>>



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 07:07:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 07:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645310.1007425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8xcY-0003EE-Mv; Fri, 01 Dec 2023 07:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645310.1007425; Fri, 01 Dec 2023 07:07: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 1r8xcY-0003E7-Jy; Fri, 01 Dec 2023 07:07:30 +0000
Received: by outflank-mailman (input) for mailman id 645310;
 Fri, 01 Dec 2023 07:07:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r8xcW-0003E1-Hv
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 07:07:28 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01on2058.outbound.protection.outlook.com [40.107.13.58])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4874903a-9018-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 08:07:26 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by VI1PR04MB6800.eurprd04.prod.outlook.com (2603:10a6:803:133::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.15; Fri, 1 Dec
 2023 07:06:56 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 07:06:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4874903a-9018-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gBaXISUSEouV6GE8o6wIEwxX3Ge6nGPH+UiKLmPQBUkHn0SXH0HjRIz0ZmKMIwLYppeCCTAnxY6neMmC5TgmX5+qb+Ef86ybFmFXmTarhlfPJZe2oOR61Y6/9gs0kw6NSekhlD+rwPX+ry5wRftaBglmck78kJWmYmAcaWPqZUfFnlw3nggxzR0LYG3jFUXFwW7VmqluWP2VP350PcZog+NJqmt8+qkbDWx1xOilt8jxbNwuH1OPYkppH9vI34DQnmcKaknka7xkzx7SMTTTwdqAJ4tARvaM5vpZtGVXEo10YTjNIKgIQyD7719zL74bmLLLM9xeCg5quNxlCNatLg==
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=KAWQOpWgiLF0TGU1pEZq4ot8nvBvOfzsfk5FsiYZRYA=;
 b=oK4ACZeESxEClWR9HpA8FzggcpsnoAJ4V/PCKMcmQ9EegvT1MRVzRjJQavH4ezOQwOFKt9GHiW3PdwNxBhBhrSGNkNoT0ZwQw6g7lwfbczMoZ9navV1Ai2qAeO47mDNLy+rZ8k0YzeBpKv870wPBz9JFmNj4h09BbDD+3Lbt0+NPHJ/oU2pWbpuPZXEjrvgROdkcZ8HsorWj3824puztl7ySona25UPqR51tmeE1+SvL4z0hErv+fVWM16g5hxwY044ggVXkQPEo7uoSGvKtDsoZlYeLP7DkooMWAx38+I9iGZRlSBhmvXhIRPDl7PDc+tvMzzLku5VFHc1IIelEXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KAWQOpWgiLF0TGU1pEZq4ot8nvBvOfzsfk5FsiYZRYA=;
 b=Xx/sATkEmqt4Lr4eNnhXnEYP5S4bRA3hIgjHW+4expS02Kx6Wjoe5UpB/NQ9/reumvG+rD2LVGBfEIY8ji6+OA9Z9eAfDNPPefhVoPw4vk2qHdl6IZIVaMMBD5yLMK6qSne2KLwZN/Cb+zTfYnG/5DAK888wa8l3MQHJr039ZbZWi/3nLEVbbF75EzZNEK1XYbXi8EJoDYF5guIhmrmBlP2b94EmaWnGq15pfE1sOx5dWHt9wHMvTEx8KL9eim/PZ0Ez6X44niYrj2kfXpIG3OeQ4Cn/jn4oA5FwHNRFJ9Yms4G4FtVpn4ySwjUNfIIFFvpQ4hKK8aG3uS/IteaaDQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <21956d5b-08ad-45ac-96ff-22fe7d54ec60@suse.com>
Date: Fri, 1 Dec 2023 08:06:53 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 7/7] xen/page_alloc: deviate first_valid_mfn for MISRA
 C Rule 8.4
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, michal.orzel@amd.com,
 xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, consulting@bugseng.com,
 bertrand.marquis@arm.com, julien@xen.org,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com>
 <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2311301847300.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2311301847300.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0056.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:49::6) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|VI1PR04MB6800:EE_
X-MS-Office365-Filtering-Correlation-Id: 8eb5422d-51e9-4124-db2f-08dbf23c1ab5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Gw7pMdeB9uLp7+B9KByXsLlRmWw/qlQpXba95Jc4viNUV+mesLlc4/F68FD3W5lXxjCT+IrPNfeIiYsiwZf5ZstCRKSyHucMzcxRRICsm/sSuMOePayML4uc9gUX0yBvSQHIC3RvJ5MsPb/Uh7DiGCBiDFR2dridNywvEwD0BlA9vLEhbIAdZcrq5L1Oy9qCWiDY8zauR2kaIWLardX9ZCAyS+9I0Y9mj3+hem5wBjjz2kEUfHXjJMJm8Oo3pFywV7GybJKbrWuBDT8pZPxDuvvcD8TaWrm9Y5+KPY4mJkjRcIR3tQ6SUUlh99pj9BnNeRy1v3guujrhaOCo0WO6Ic4ypfjKEA9aqwfPe3L6IZABxJIa0Sjq0B1JXENOTAUN3Yob1NB0qL45UgtJqIM/tbxjD9RhQUi9W4+1V+yhq5uWmpGldofOtlWJj/tU4dO9T8vMaW2q7Fpy3byQT5uY+hkf8GbeHj+BYEoUT6Z0FPDxiLmUTpddRBIQh7eUdbnEYlAnYcn/JzDyHB4xuhKMUJVSwHl3B9jAXNo+zCK7Im0VbpIa2j4+oqlGcuBo+tbzW1hRKmWJYNfL+lY9v0Qwud6mr6N0OIgek4/CErTLT7J699eskMF2Znrn25DmuVaXszoSlGPujnc75nkijvw+sg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(136003)(39860400002)(376002)(346002)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(31686004)(36756003)(5660300002)(41300700001)(7416002)(2906002)(6512007)(53546011)(83380400001)(6666004)(6506007)(38100700002)(26005)(2616005)(66946007)(6486002)(478600001)(66556008)(6916009)(54906003)(86362001)(66476007)(4326008)(8676002)(8936002)(316002)(31696002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RGs5Q1E1NnhTOTlNamN3OU0zenhWd1ZmTWtYRUdUY2FMcDBuVU1DYytYanNM?=
 =?utf-8?B?OWRSY01NRmtid1FwdDBTRERWRGpFYld2Y0Zqa3BXOFF6UEptZU1QeTN3K0lY?=
 =?utf-8?B?Z2VnTTNPdkZEczV6QitFTG9aNUllVWczcnFJZEhkKzh1cVNxRTZjU0k2ZjIx?=
 =?utf-8?B?bU5wdWI1Qkd4bVk0bmVhbGpLYTdzWTg0SGxPTm9rWU9jTHpKTlBEM3BwQ1ZN?=
 =?utf-8?B?Z2ErOHlwZHNwbFJ1eW9FTGVRREJmR3NmbHFXclcxc2tKWmxTWTBkbHdNQlJH?=
 =?utf-8?B?VXRCNWV6K3UvcHRaOU0rV2dZK1QvTmNRYytLckhCVzc0RlU5MldMTnNzOUlK?=
 =?utf-8?B?WnJDbXk5bUg3MTRKWWE4OVRKQ1NZcnIweHZvaUkzWFJWMnYrMzhveUtmRDJK?=
 =?utf-8?B?dGh3cW9sellxVStZckVKSmpqQ0ZNZEZ1WTJhLzIweTFtTXV2SkpYcmtWT1Bj?=
 =?utf-8?B?eHhGaGNtYmJkMFE4eEZpU1pySURMbnFUdStSNDI4YUdkcnNCdGJtVElCNzlT?=
 =?utf-8?B?bEdOVmR5VTB5RHFhb29oOWhOak5idjR1dnkzUDdWcnNOZTBNZDloT0VYM3NE?=
 =?utf-8?B?VDM4cW1VOXFLOUxhZU9MNUtvQ3dEOVc5dTJqc25kWUR2cGxxUGsvQzlQNGxV?=
 =?utf-8?B?cjQwbkUvOGxtMkgwRWdLYUpmWmVLOElnV0tWVGUyK2F1YnQ4YWtXbjIreG91?=
 =?utf-8?B?ejlWamhLWDhvNDBDb1p1MXNkNGs3Qi9OdEwzUnc5d1daMXZPTXV0TGIyL242?=
 =?utf-8?B?clQxR3NqZXFTdTVlY3NmQmQycWsvQmZVWFpWOU9rNVNQeVpXckZWcVpLN0l6?=
 =?utf-8?B?U0ZTOFI0VnJGeEJMQXVOY3BnMFgxdWhYcUVadEhwWXJ1d3FjY0gza09GcE1M?=
 =?utf-8?B?VFd0WUwwM2RKaTYzV2UvMDdDZUExZHpXRllnSFN3elp2TjVOT09uZjFyL2tx?=
 =?utf-8?B?aks4OUxUb21xTUh1dC9ReEhvNFF5QnZTeksrVEEzaGhONDdZK3RneFRReVVI?=
 =?utf-8?B?VDY5Z0x4aFNEVlJMRS9JakZLL2thMEc3MEgzMzhTdmY2d0hEbE1UTVVHbjg4?=
 =?utf-8?B?U2ZxajhUM2pxd3Q3ZytaVDhVRDNyTkpiWGRwTDVBb2hTUHp1S0VBQnFXTFg1?=
 =?utf-8?B?eFg1NUkxcEZsLzNOdlRSWlRIMkRZZWNGWDNRZGpqelVkbFVrdE9NR1Y4ZWlh?=
 =?utf-8?B?eGQxTFVWWm85bUl4dS9EaDVKZU5HaG9Pd0FuNTNMNXk3MVpJWXZEUHY0d041?=
 =?utf-8?B?Yk4ySWlYbStlNFpwVUUyZ293ZHNSYmVGZTA0U1A1UGNYVzFkK0JhbWx4TTN5?=
 =?utf-8?B?R1ZJN25xYkpQeWVVdEoxTG5XcERGQmJ6TDBlVTN1RENjUVNkcW9iWHFYUzBS?=
 =?utf-8?B?MDE2WVUydXRkTytYMVVIMDNhdVhTb3RnZzFxMzU5Nkp3UFdFNEJaYndtUHpo?=
 =?utf-8?B?WnhxQ24yVmVjYUt0Tm1OVWVMNDVnV1lVWTNRUWNuZWw5dmQwTmNkTnYvb3c3?=
 =?utf-8?B?YVJtaUZNMVVpQ1NsZHZ1b1NzSDB3WFZRbWVOUVhaOU5UK2Rod3NXOVdEa3I4?=
 =?utf-8?B?SnRBNFhvN0F6T3BHL0trbTVxbGllYk5jblhNb2JaL0ZXWTY0ckc4bWdCT2RK?=
 =?utf-8?B?WS9yVzVTelp3Qm5SckQ2YzFiTVhUOUYxbXB6Wk4vTjJPeHVlcU1VTGlnOEp3?=
 =?utf-8?B?Y1NBQjBjeFhGR2txbGdXK2srbGxMMW5BblBURW5YNjZydzZHU1crQ3FmSkFY?=
 =?utf-8?B?bXFqalNtTVpHWks2aDJLQkpUeXhuOGlGVlFOdittVFRHUGN1NUhzZTNvYnpz?=
 =?utf-8?B?ME9DVkdSSFlVRldzUHppYisxZEVqQ2doRC9uM1c4SE1ZK0l3eVBhRlVGSzhk?=
 =?utf-8?B?K3NOdWRWMWhYU1d3Z0NWaWtGZlhhUFRqcmM4TG55M2VLb2hJc1BJSnFBS2Ri?=
 =?utf-8?B?SlhDQ1h4Uml3RC9LYmRIT3VFaWcxTXl3OFkyYkRhaHkyZ3RVekVyQ2k3MG55?=
 =?utf-8?B?UmNQbHFJemVpRE8xTWdvcXVBU3VudFVxZDIvbEh1VUlCQk8xdVJuVFV1dXo2?=
 =?utf-8?B?SndGdWovOUFRdW9DT3g0dWtwTXRubkVUS0lEV1pWU21ReXdHTWpSNXRHemNq?=
 =?utf-8?Q?lfZeqQYh+jS5m4utb3L6YL6e7?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8eb5422d-51e9-4124-db2f-08dbf23c1ab5
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 07:06:56.4248
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wWL9JIWpbDtUCFrz8gYQ0/hF5gJZKegMTuKj4Li8zNDDTWJX7cFyyyDzNDo5ujm8zk90VRF7t38SqLAgWMlFgQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6800

On 01.12.2023 03:47, Stefano Stabellini wrote:
> On Wed, 29 Nov 2023, Nicola Vetrini wrote:
>> No functional change.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>> The preferred way to deviate is to use asmlinkage, but this modification is only
>> the consequence of NUMA on ARM (and possibly PPC) being a work in progress.
>> As stated in the comment above the textual deviation, first_valid_mfn will
>> likely then become static and there would be no need for the comment anymore.
>> This works towards having the analysis for this rule clean (i.e. no violations);
>> the interest in having a clean rule is that then it could be used to signal
>> newly introduced violations by making the analysis job fail.
> 
> Please add this text as part of the commit message. It can be done on
> commit.

I assume you saw my reply on another of the patches in this series as to
asmlinkage use on variables? IOW I think this paragraph would also need
adjustment to account for that.

> With that:
> 
> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> 
>> ---
>>  xen/common/page_alloc.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
>> index 9b5df74fddab..794d7689b179 100644
>> --- a/xen/common/page_alloc.c
>> +++ b/xen/common/page_alloc.c
>> @@ -258,6 +258,7 @@ static PAGE_LIST_HEAD(page_broken_list);
>>   * first_valid_mfn is exported because it is use in ARM specific NUMA
>>   * helpers. See comment in arch/arm/include/asm/numa.h.
>>   */
>> +/* SAF-1-safe */
>>  mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
>>  
>>  struct bootmem_region {
>> -- 
>> 2.34.1
>>



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 07:16:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 07:16:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645315.1007435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8xl1-0004xL-KN; Fri, 01 Dec 2023 07:16:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645315.1007435; Fri, 01 Dec 2023 07: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 1r8xl1-0004xE-Hj; Fri, 01 Dec 2023 07:16:15 +0000
Received: by outflank-mailman (input) for mailman id 645315;
 Fri, 01 Dec 2023 07:16:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eEIp=HM=linux.ibm.com=harshpb@srs-se1.protection.inumbo.net>)
 id 1r8xl0-0004x7-GY
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 07:16:14 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81361866-9019-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 08:16:12 +0100 (CET)
Received: from pps.filterd (m0353728.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1725a0004180; Fri, 1 Dec 2023 07:15:42 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uqar7gaus-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 01 Dec 2023 07:15:41 +0000
Received: from m0353728.ppops.net (m0353728.ppops.net [127.0.0.1])
 by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3B17FebO014948;
 Fri, 1 Dec 2023 07:15:40 GMT
Received: from ppma21.wdc07v.mail.ibm.com
 (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uqar7ga27-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 01 Dec 2023 07:15:40 +0000
Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma21.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B16Ye5v029654; Fri, 1 Dec 2023 07:11:06 GMT
Received: from smtprelay04.wdc07v.mail.ibm.com ([172.16.1.71])
 by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3ukv8p3h96-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 01 Dec 2023 07:11:06 +0000
Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com
 [10.39.53.231])
 by smtprelay04.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 3B17B5Ah30016124
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 1 Dec 2023 07:11:05 GMT
Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 2A81A58052;
 Fri,  1 Dec 2023 07:11:05 +0000 (GMT)
Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 8CEAB58054;
 Fri,  1 Dec 2023 07:10:35 +0000 (GMT)
Received: from [9.43.126.227] (unknown [9.43.126.227])
 by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP;
 Fri,  1 Dec 2023 07:10:35 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81361866-9019-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date :
 mime-version : subject : to : cc : references : from : in-reply-to :
 content-type : content-transfer-encoding; s=pp1;
 bh=BzkqJ/jGQ8feZTMTV7kBM2CKnfMMKrkrySy6iUP9EuY=;
 b=b+xga7mwfs1rp6LEevn9sUHSCU1lMKC/Z/EnZFVSkTZqk7CHQROyPzsnuQdIM07JAGOd
 ya+rGqq00S4Crr3b2meBlGLmSR+zVLKt6N0RKDFEL0B0+PyddOMnJ1Oo3KMNYy0V45Tp
 zQl06ERE0CoEmNthAoELlOyVtJJ5tOVa5/qwQCWWe44HfrE8ufDG2+WNPURfGtiA7LjI
 gEQQwLy0ElzkEJ/RfK3dlxHsbtQvtJbXCubTiiy4RG3biUGoEqTvt7IqDZAaduT8B7ug
 IPbSIbm/F1XOJB6WbUJbwyRiB0naqI1VwIbtR2szxG9CAwjLNMBiE/wFu+M9Q33M+Xk/ eA== 
Message-ID: <6debe854-55df-e901-e154-5ed390178c74@linux.ibm.com>
Date: Fri, 1 Dec 2023 12:40:33 +0530
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.14.0
Subject: Re: [PATCH 2/6] qemu/main-loop: rename QEMU_IOTHREAD_LOCK_GUARD to
 QEMU_BQL_LOCK_GUARD
Content-Language: en-US
To: Stefan Hajnoczi <stefanha@redhat.com>,
        Ilya Leoshkevich <iii@linux.ibm.com>
Cc: qemu-devel@nongnu.org, Jean-Christophe Dubois <jcd@tribudubois.net>,
        Fabiano Rosas <farosas@suse.de>, qemu-s390x@nongnu.org,
        Song Gao <gaosong@loongson.cn>,
        Marcel Apfelbaum
 <marcel.apfelbaum@gmail.com>,
        Thomas Huth <thuth@redhat.com>, Hyman Huang <yong.huang@smartx.com>,
        Marcelo Tosatti <mtosatti@redhat.com>,
        David Woodhouse <dwmw2@infradead.org>,
        Andrey Smirnov <andrew.smirnov@gmail.com>,
        Peter Maydell <peter.maydell@linaro.org>,
        Kevin Wolf <kwolf@redhat.com>, Artyom Tarasenko <atar4qemu@gmail.com>,
        Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Max Filippov <jcmvbkbc@gmail.com>,
        Alistair Francis <alistair.francis@wdc.com>,
        Paul Durrant <paul@xen.org>, Jagannathan Raman <jag.raman@oracle.com>,
        Juan Quintela
 <quintela@redhat.com>,
        =?UTF-8?Q?Daniel_P=2e_Berrang=c3=a9?=
 <berrange@redhat.com>,
        qemu-arm@nongnu.org, Jason Wang
 <jasowang@redhat.com>,
        Gerd Hoffmann <kraxel@redhat.com>, Hanna Reitz <hreitz@redhat.com>,
        =?UTF-8?Q?Marc-Andr=c3=a9_Lureau?= <marcandre.lureau@redhat.com>,
        BALATON Zoltan <balaton@eik.bme.hu>,
        Daniel Henrique Barboza <danielhb413@gmail.com>,
        Elena Ufimtseva <elena.ufimtseva@oracle.com>,
        Aurelien Jarno <aurelien@aurel32.net>,
        Hailiang Zhang <zhanghailiang@xfusion.com>,
        Roman Bolshakov <rbolshakov@ddn.com>,
        Huacai Chen <chenhuacai@kernel.org>, Fam Zheng <fam@euphon.net>,
        Eric Blake <eblake@redhat.com>, Jiri Slaby <jslaby@suse.cz>,
        Alexander Graf <agraf@csgraf.de>,
        Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
        Weiwei Li <liwei1518@gmail.com>, Eric Farman <farman@linux.ibm.com>,
        Stafford Horne <shorne@gmail.com>,
        David Hildenbrand <david@redhat.com>,
        Markus Armbruster <armbru@redhat.com>,
        Reinoud Zandijk <reinoud@netbsd.org>,
        Palmer Dabbelt <palmer@dabbelt.com>,
        Cameron Esfahani <dirty@apple.com>, xen-devel@lists.xenproject.org,
        Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, qemu-riscv@nongnu.org,
        Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
        John Snow <jsnow@redhat.com>,
        Sunil Muthuswamy <sunilmut@microsoft.com>,
        Michael Roth <michael.roth@amd.com>,
        David Gibson <david@gibson.dropbear.id.au>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Richard Henderson <richard.henderson@linaro.org>,
        Bin Meng <bin.meng@windriver.com>,
        Stefano Stabellini <sstabellini@kernel.org>, kvm@vger.kernel.org,
        qemu-block@nongnu.org, Halil Pasic <pasic@linux.ibm.com>,
        Peter Xu <peterx@redhat.com>,
        Anthony Perard <anthony.perard@citrix.com>,
        =?UTF-8?Q?Alex_Benn=c3=a9e?= <alex.bennee@linaro.org>,
        Eduardo Habkost <eduardo@habkost.net>,
        Paolo Bonzini <pbonzini@redhat.com>,
        Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
        =?UTF-8?Q?C=c3=a9dric_Le_Goater?= <clg@kaod.org>, qemu-ppc@nongnu.org,
        =?UTF-8?Q?Philippe_Mathieu-Daud=c3=a9?= <philmd@linaro.org>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Akihiko Odaki <akihiko.odaki@daynix.com>,
        Leonardo Bras
 <leobras@redhat.com>,
        Nicholas Piggin <npiggin@gmail.com>,
        Jiaxun Yang <jiaxun.yang@flygoat.com>
References: <20231129212625.1051502-1-stefanha@redhat.com>
 <20231129212625.1051502-3-stefanha@redhat.com>
 <c3ac8d9c2b9d611e84672436ce1a96aedcaacf5e.camel@linux.ibm.com>
 <20231130202732.GA1184658@fedora>
From: Harsh Prateek Bora <harshpb@linux.ibm.com>
In-Reply-To: <20231130202732.GA1184658@fedora>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-ORIG-GUID: S1sEqcNGAK1f1yUwyiWHNf41PAnYA7MY
X-Proofpoint-GUID: B-XJS9KsqjYFS8Hl-N4F0TWzVhOEzlLk
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_04,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 bulkscore=0
 impostorscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0
 priorityscore=1501 phishscore=0 adultscore=0 mlxlogscore=778 spamscore=0
 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312010044



On 12/1/23 01:57, Stefan Hajnoczi wrote:
> On Thu, Nov 30, 2023 at 10:14:47AM +0100, Ilya Leoshkevich wrote:
>> On Wed, 2023-11-29 at 16:26 -0500, Stefan Hajnoczi wrote:
>>> The name "iothread" is overloaded. Use the term Big QEMU Lock (BQL)
>>> instead, it is already widely used and unambiguous.
>>>
>>> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
>>> ---
>>>  Â include/qemu/main-loop.hÂ  | 20 ++++++++++----------
>>>  Â hw/i386/kvm/xen_evtchn.cÂ  | 14 +++++++-------
>>>  Â hw/i386/kvm/xen_gnttab.cÂ  |Â  2 +-
>>>  Â hw/mips/mips_int.cÂ Â Â Â Â Â Â  |Â  2 +-
>>>  Â hw/ppc/ppc.cÂ Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 +-
>>>  Â target/i386/kvm/xen-emu.c |Â  2 +-
>>>  Â target/ppc/excp_helper.cÂ  |Â  2 +-
>>>  Â target/ppc/helper_regs.cÂ  |Â  2 +-
>>>  Â target/riscv/cpu_helper.c |Â  4 ++--
>>>  Â 9 files changed, 25 insertions(+), 25 deletions(-)
>>>
>>> diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
>>> index d6f75e57bd..0b6a3e4824 100644
>>> --- a/include/qemu/main-loop.h
>>> +++ b/include/qemu/main-loop.h
>>> @@ -344,13 +344,13 @@ void qemu_bql_lock_impl(const char *file, int
>>> line);
>>>  Â void qemu_bql_unlock(void);
>>>   
>>>  Â /**
>>> - * QEMU_IOTHREAD_LOCK_GUARD
>>> + * QEMU_BQL_LOCK_GUARD
>>>  Â  *
>>> - * Wrap a block of code in a conditional
>>> qemu_mutex_{lock,unlock}_iothread.
>>> + * Wrap a block of code in a conditional qemu_bql_{lock,unlock}.
>>>  Â  */
>>> -typedef struct IOThreadLockAuto IOThreadLockAuto;
>>> +typedef struct BQLLockAuto BQLLockAuto;
>>>   
>>> -static inline IOThreadLockAuto *qemu_iothread_auto_lock(const char
>>> *file,
>>> +static inline BQLLockAuto *qemu_bql_auto_lock(const char *file,
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  int line)
>>
>> The padding is not correct anymore.
> 
> Good point, I didn't check the formatting after search-and-replace. I
> will fix this across the patch series in v2.
> 

Yeh, some comments in 5/6 and 6/6 can also make full use of 80 char 
width after search-replace effect.

regards,
Harsh

> Stefan


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 07:23:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 07:23:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645319.1007446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8xs4-0007u7-DT; Fri, 01 Dec 2023 07:23:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645319.1007446; Fri, 01 Dec 2023 07:23:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8xs4-0007u0-A0; Fri, 01 Dec 2023 07:23:32 +0000
Received: by outflank-mailman (input) for mailman id 645319;
 Fri, 01 Dec 2023 07:23: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 1r8xs3-0007tq-5w; Fri, 01 Dec 2023 07:23: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 1r8xs2-0000t2-Ur; Fri, 01 Dec 2023 07:23: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 1r8xs2-0004OF-FA; Fri, 01 Dec 2023 07:23:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r8xs2-0004GW-Ec; Fri, 01 Dec 2023 07:23: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=yALpwzk04ECZwRaeIG6jlqU3qOVTP5vToNkA/EuzDBY=; b=2Ifn3qXibn+xTrmr+YEKHKLspg
	c5qPNOTgtd9Reghf80kccvkEHbJN4XR+5c/UVDnI4qAyma71wcCPNSoUWH93fgGB796BbAwMHp77A
	wHLmaIv2gVJb0jZ7Y2mJJJky/5JDNrcNZsg8CxpEKW+zXyDw40vlvAaUYV53n4sjO4FM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183960-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 183960: 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=def73fc14407252cc801f35cd7746e60ccd70884
X-Osstest-Versions-That:
    xen=f0dd0cd9598f22ee5509bb5d1466e4821834c4ba
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 01 Dec 2023 07:23:30 +0000

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

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                  def73fc14407252cc801f35cd7746e60ccd70884
baseline version:
 xen                  f0dd0cd9598f22ee5509bb5d1466e4821834c4ba

Last test of basis   183939  2023-11-29 18:02:12 Z    1 days
Testing same since   183960  2023-12-01 04:00:28 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michal Orzel <michal.orzel@amd.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Simone Ballarin <simone.ballarin@bugseng.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
   f0dd0cd959..def73fc144  def73fc14407252cc801f35cd7746e60ccd70884 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 08:00:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 08:00:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645337.1007456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8yRp-0002ZW-IO; Fri, 01 Dec 2023 08:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645337.1007456; Fri, 01 Dec 2023 08: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 1r8yRp-0002ZP-Fd; Fri, 01 Dec 2023 08:00:29 +0000
Received: by outflank-mailman (input) for mailman id 645337;
 Fri, 01 Dec 2023 08:00: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 1r8yRo-0002ZF-HJ; Fri, 01 Dec 2023 08:00: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 1r8yRo-0002EP-9T; Fri, 01 Dec 2023 08:00: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 1r8yRn-0007WI-Nx; Fri, 01 Dec 2023 08:00:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r8yRn-0002Zh-NU; Fri, 01 Dec 2023 08:00: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=07nrpdPeo7sSReNYDxhD360IO+C34+x19T3GL/MPEGM=; b=rzshGNqjQ6kxpW3tBsdYgnwk/0
	1kMVKTU6HhEaHiQFkIIagvQ9uqWQ7y0jIuvhDB5nz9kpMDKST7COfTBYc6I3lDzuXIhguuC3nKAWO
	Ubl+IDNOxwBcJzqgWEDxsBSF1/w13/JnugDpzT5Nkt6f9QzQlRVfylv7kEka39SyZvVA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183957-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183957: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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: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-libvirt-xsm:migrate-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:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-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-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-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-multivcpu: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-multivcpu:saverestore-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-qcow2: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=6172a5180fcc65170bfa2d49e55427567860f2a7
X-Osstest-Versions-That:
    linux=3b47bc037bd44f142ac09848e8d3ecccc726be99
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 01 Dec 2023 08:00:27 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183937
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183937
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183937
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183937
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183937
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183937
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183937
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183937
 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-libvirt-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-libvirt-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-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          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-multivcpu 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-multivcpu 16 saverestore-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-qcow2 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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                6172a5180fcc65170bfa2d49e55427567860f2a7
baseline version:
 linux                3b47bc037bd44f142ac09848e8d3ecccc726be99

Last test of basis   183937  2023-11-29 16:12:05 Z    1 days
Testing same since   183957  2023-11-30 23:42:23 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adrian Hunter <adrian.hunter@intel.com>
  Alexei Starovoitov <ast@kernel.org>
  Ard Biesheuvel <ardb@kernel.org>
  Ben Greear <greearb@candelatech.com>
  Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Dave Ertman <david.m.ertman@intel.com>
  David S. Miller <davem@davemloft.net>
  Deren Wu <deren.wu@mediatek.com>
  Edward Adam Davis <eadavis@qq.com>
  Elena Salomatkina <elena.salomatkina.cmc@gmail.com>
  Furong Xu <0x1207@gmail.com>
  Geetha sowjanya <gakula@marvell.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Greg Ungerer <gerg@kernel.org>
  Gregory Greenman <gregory.greenman@intel.com>
  Gustavo A. R. Silva <gustavoars@kernel.org>
  Heiner Kallweit <hkallweit1@gmail.com>
  Hou Tao <houtao1@huawei.com>
  Ian Chen <free122448@hotmail.com>
  Ioana Ciornei <ioana.ciornei@nxp.com>
  Jakub Kicinski <kuba@kernel.org>
  Jiawen Wu <jiawenwu@trustnetic.com>
  Joey Gouly <joey.gouly@arm.com>
  Johan Hovold <johan+linaro@kernel.org>
  Johannes Berg <johannes.berg@intel.com>
  John Fastabend <john.fastabend@gmail.com>
  Kalle Valo <kvalo@kernel.org>
  Koen Vandeputte <koen.vandeputte@citymesh.com>
  Konstantin Demin <rockdrilla@gmail.com>
  Kornel DulÄ™ba <korneld@chromium.org>
  Lee Jones <lee@kernel.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Lorenzo Bianconi <lorenzo@kernel.org>
  Martin KaFai Lau <martin.lau@kernel.org>
  Michael Roth <michael.roth@amd.com>
  Michael-CY Lee <michael-cy.lee@mediatek.com>
  Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
  Nikolay Aleksandrov <razor@blackwall.org>
  OldÅ™ich JedliÄka <oldium.pro@gmail.com>
  Paolo Abeni <pabeni@redhat.com>
  Stanislav Fomichev <sdf@google.com>
  Subbaraya Sundeep <sbhatta@marvell.com>
  Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>
  Takashi Iwai <tiwai@suse.de>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Vlastimil Babka <vbabka@suse.cz>
  Wenchao Chen <wenchao.chen@unisoc.com>
  Willem de Bruijn <willemb@google.com>
  Yonghong Song <yonghong.song@linux.dev>
  Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
  Zhengchao Shao <shaozhengchao@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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   3b47bc037bd4..6172a5180fcc  6172a5180fcc65170bfa2d49e55427567860f2a7 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 08:29:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 08:29:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645345.1007466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8ytz-00015t-VM; Fri, 01 Dec 2023 08:29:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645345.1007466; Fri, 01 Dec 2023 08: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 1r8ytz-00015m-S2; Fri, 01 Dec 2023 08:29:35 +0000
Received: by outflank-mailman (input) for mailman id 645345;
 Fri, 01 Dec 2023 08: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=hHVa=HM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1r8yty-00015g-3x
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 08:29:34 +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 c0199917-9023-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 09:29:31 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 19A8D1FD58;
 Fri,  1 Dec 2023 08:29:31 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id EF2031379A;
 Fri,  1 Dec 2023 08:29:30 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id HckLOWqZaWXDPAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 01 Dec 2023 08:29: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: c0199917-9023-11ee-9b0f-b553b5be7939
Message-ID: <258abfda-5f71-4e75-a3a5-abdad85a85f3@suse.com>
Date: Fri, 1 Dec 2023 09:29:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Linux 6.7-rc1+: WARNING at drivers/xen/evtchn.c:167
 evtchn_interrupt
Content-Language: en-US
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
References: <ZWf0sWey05VnpH7X@mail-itl>
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: <ZWf0sWey05VnpH7X@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------YJZFw86K4o5GOOcBX7Rz9rPZ"
X-Spamd-Bar: +++++++++++++++++++++
X-Spam-Score: 21.38
X-Rspamd-Server: rspamd1
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine)
X-Rspamd-Queue-Id: 19A8D1FD58
X-Spam-Flag: NO
X-Spam-Level: *********************
X-Spamd-Result: default: False [21.38 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 TO_DN_ALL(0.00)[];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_TWO(0.00)[2];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:+,5:~,6:~];
	 BAYES_HAM(-3.00)[100.00%];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_SPAM_SHORT(2.88)[0.962];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain,text/x-patch];
	 NEURAL_SPAM_LONG(3.50)[1.000];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------YJZFw86K4o5GOOcBX7Rz9rPZ
Content-Type: multipart/mixed; boundary="------------DOEWShImYjJpYmnIkEggIqFL";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <258abfda-5f71-4e75-a3a5-abdad85a85f3@suse.com>
Subject: Re: Linux 6.7-rc1+: WARNING at drivers/xen/evtchn.c:167
 evtchn_interrupt
References: <ZWf0sWey05VnpH7X@mail-itl>
In-Reply-To: <ZWf0sWey05VnpH7X@mail-itl>

--------------DOEWShImYjJpYmnIkEggIqFL
Content-Type: multipart/mixed; boundary="------------8ixqtW0LZGqWB0V52ZfpphcS"

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

SGkgTWFyZWssDQoNCk9uIDMwLjExLjIzIDAzOjM0LCBNYXJlayBNYXJjenlrb3dza2ktR8Oz
cmVja2kgd3JvdGU6DQo+IEhpLA0KPiANCj4gV2hpbGUgdGVzdGluZyA2LjctcmMzIG9uIFF1
YmVzIE9TIEkgZm91bmQgc2V2ZXJhbCB3YXJuaW5nIGxpa2UgaW4gdGhlDQo+IHN1YmplY3Qg
aW4gZG9tMCBsb2cuIEkgc2VlIHRoZW0gd2hlbiBydW5uaW5nIDYuNy1yYzEgdG9vLiBJJ20g
bm90IHN1cmUNCj4gd2hhdCBleGFjdGx5IHRyaWdnZXJzIHRoZSBpc3N1ZSwgYnV0IG15IGd1
ZXNzIHdvdWxkIGJlIHVuYmluZGluZyBhbg0KPiBldmVudCBjaGFubmVsIGZyb20gdXNlcnNw
YWNlIChjbG9zaW5nIHZjaGFuIGNvbm5lY3Rpb24pLg0KPiANCj4gU3BlY2lmaWMgbWVzc2Fn
ZToNCj4gDQo+IFsgICA4My45NzMzNzddIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0t
LS0tLS0tLQ0KPiBbICAgODMuOTc1NTIzXSBJbnRlcnJ1cHQgZm9yIHBvcnQgNzcsIGJ1dCBh
cHBhcmVudGx5IG5vdCBlbmFibGVkOyBwZXItdXNlciAwMDAwMDAwMGEwZTlmMWQxDQoNCkp1
c3QgYSBndWVzcywgYnV0IEkgdGhpbmsgdGhpcyBtaWdodCBoYXBwZW4gd2hlbiB0aGUgdmNo
YW4gY29ubmVjdGlvbg0KaXMgY2xvc2VkIHdoaWxlIHRoZXJlIGlzIHN0aWxsIHNvbWUgdHJh
ZmZpYy4gVGhpcyBjb3VsZCByZXN1bHQgaW4gZXZlbnRzDQp0cmlnZ2VyaW5nIGluIHBhcmFs
bGVsIHRvIHVuYmluZGluZyB0aGUgZXZlbnQgY2hhbm5lbC4NCg0KQ291bGQgeW91IHBsZWFz
ZSB0ZXN0IHRoZSBhdHRhY2hlZCBwYXRjaCAob25seSBjb21waWxlIHRlc3RlZCk/DQoNCg0K
SnVlcmdlbg0KDQo=
--------------8ixqtW0LZGqWB0V52ZfpphcS
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-xen-events-fix-race-when-unbinding-an-event-channel.patch"
Content-Disposition: attachment;
 filename*0="0001-xen-events-fix-race-when-unbinding-an-event-channel.pat";
 filename*1="ch"
Content-Transfer-Encoding: base64

RnJvbSBlMjk3NjFhOGQ1ZDY4ZDc0MzI2NTlkNjAxYWY2MGY1NTZlMzEzNmE5IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
CkRhdGU6IEZyaSwgMSBEZWMgMjAyMyAwODowMzozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0hd
IHhlbi9ldmVudHM6IGZpeCByYWNlIHdoZW4gdW5iaW5kaW5nIGFuIGV2ZW50IGNoYW5uZWwK
TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU
Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCldoZW4gdW5iaW5kaW5nIGFu
IGV2ZW50IGNoYW5uZWwgdGhlIHVuYmluZCBmdW5jdGlvbiBzaG91bGQgb25seSByZXR1cm4K
dG8gdGhlIGNhbGxlciB3aGVuIG5vIGludGVycnVwdCBoYW5kbGVyIGNhbiBiZSBhY3RpdmUg
YW55IG1vcmUuCgpXaGVuIHN3aXRjaGluZyBmcm9tIGEgcndsb2NrIHRvIFJDVSBmb3IgZnJl
ZWluZyBldmVudCBjaGFubmVscyB0aGlzCmFzc3VtcHRpb24gd2FzIGJyb2tlbi4KCkZpeCB0
aGF0IGJ5IHJlcGxhY2luZyB0aGUgImlzX2FjdGl2ZSIgZmxhZyBvZiBhbiBldmVudCBjaGFu
bmVsIHdpdGggYW4KYXRvbWljIHVzZWQgdG8ga2VlcCB0cmFjayBvZiBldmVudCBjaGFubmVs
IGZyZWVpbmcgQU5EIGludGVycnVwdApoYW5kbGVyIGFjdGl2aXR5LgoKUmVhcnJhbmdlIHN0
cnVjdCBpcnFfaW5mbyBhIGxpdHRsZSBiaXQgdG8gYXZvaWQgYWRkaW5nIG5ldyBwYWRkaW5n
CmhvbGVzLgoKRml4ZXM6IDg3Nzk3ZmFkNmNjZSAoInhlbi9ldmVudHM6IHJlcGxhY2UgZXZ0
Y2huX3J3bG9jayB3aXRoIFJDVSIpClJlcG9ydGVkLWJ5OiBNYXJlayBNYXJjenlrb3dza2kt
R8OzcmVja2kgPG1hcm1hcmVrQGludmlzaWJsZXRoaW5nc2xhYi5jb20+ClNpZ25lZC1vZmYt
Ynk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiBkcml2ZXJzL3hlbi9l
dmVudHMvZXZlbnRzX2Jhc2UuYyB8IDUxICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0t
LS0tCiAxIGZpbGUgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19iYXNlLmMgYi9kcml2
ZXJzL3hlbi9ldmVudHMvZXZlbnRzX2Jhc2UuYwppbmRleCBmNWVkYjllMjdlM2MuLmM0ODBi
YzQ5OGJhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19iYXNlLmMK
KysrIGIvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19iYXNlLmMKQEAgLTEwNiw3ICsxMDYs
NyBAQCBzdHJ1Y3QgaXJxX2luZm8gewogI2RlZmluZSBFVlRfTUFTS19SRUFTT05fRVhQTElD
SVQJMHgwMQogI2RlZmluZSBFVlRfTUFTS19SRUFTT05fVEVNUE9SQVJZCTB4MDIKICNkZWZp
bmUgRVZUX01BU0tfUkVBU09OX0VPSV9QRU5ESU5HCTB4MDQKLQl1OCBpc19hY3RpdmU7CQkv
KiBJcyBldmVudCBqdXN0IGJlaW5nIGhhbmRsZWQ/ICovCisJYm9vbCBpc19zdGF0aWM7ICAg
ICAgICAgICAvKiBJcyBldmVudCBjaGFubmVsIHN0YXRpYyAqLwogCXVuc2lnbmVkIGlycTsK
IAlldnRjaG5fcG9ydF90IGV2dGNobjsgICAvKiBldmVudCBjaGFubmVsICovCiAJdW5zaWdu
ZWQgc2hvcnQgY3B1OyAgICAgLyogY3B1IGJvdW5kICovCkBAIC0xMTQsNyArMTE0LDIzIEBA
IHN0cnVjdCBpcnFfaW5mbyB7CiAJdW5zaWduZWQgaW50IGlycV9lcG9jaDsgLyogSWYgZW9p
X2NwdSB2YWxpZDogaXJxX2Vwb2NoIG9mIGV2ZW50ICovCiAJdTY0IGVvaV90aW1lOyAgICAg
ICAgICAgLyogVGltZSBpbiBqaWZmaWVzIHdoZW4gdG8gRU9JLiAqLwogCXJhd19zcGlubG9j
a190IGxvY2s7Ci0JYm9vbCBpc19zdGF0aWM7ICAgICAgICAgICAvKiBJcyBldmVudCBjaGFu
bmVsIHN0YXRpYyAqLworCisJLyoKKwkgKiBXaGVuIGZyZWVpbmcgYW4gZXZlbnQgY2hhbm5l
bCBpdCBpcyBtYXJrZWQgd2l0aCBFVlRfQUNUX0ZSRUVJTkcuCisJICogV2hlbiBhbiBJUlEg
aGFuZGxlciBpcyBzdGFydGluZyB0aGUgZXZlbnQgY2hhbm5lbCBpcyBtYXJrZWQgd2l0aAor
CSAqIEVWVF9BQ1RfSEFORExFUiB8IEVWVF9BQ1RfRU9JLgorCSAqIFdoZW4gbGVhdmluZyB0
aGUgSVJRIGhhbmRsZXIgRVZUX0FDVF9IQU5ETEVSIGlzIGNsZWFyZWQuIEVWVF9BQ1RfRU9J
CisJICogaXMgY2xlYXJlZCBlaXRoZXIgYXQgdGhlIHNhbWUgdGltZSBvciBpbiBjYXNlIG9m
IGEgbGF0ZS1FT0kgZXZlbnQKKwkgKiB3aGVuIHRoZSBFT0kgaXMgc2lnbmFsbGVkLgorCSAq
IEEgSVJRIGhhbmRsZXIgbWF5IG9ubHkgYmUgZW50ZXJlZCBpZiBub25lIG9mIHRoZSBmbGFn
cyBpcyBzZXQuCisJICogRnJlZWluZyBhbiBldmVudCBjaGFubmVsIGlzIGRvbmUgdmlhIFJD
VSwgYnV0IHRoZSBmcmVlaW5nIGZ1bmN0aW9uCisJICogc3RhcnRpbmcgdGhlIFJDVSBwcm9j
ZXNzIG1heSBvbmx5IHJldHVybiBpZiBFVlRfQUNUX0hBTkRMRVIgaXMgbm90CisJICogc2V0
IChubyBoYW5kbGVyIGlzIGFjdGl2ZSBhbnkgbW9yZSkuCisJICovCisJYXRvbWljX3QgYWN0
aXZlOwkvKiBJcyBldmVudCBqdXN0IGJlaW5nIGhhbmRsZWQ/ICovCisjZGVmaW5lIEVWVF9B
Q1RfSEFORExFUgkJMHgwMDAwMDAwMQkvKiBJUlEgaGFuZGxlciBhY3RpdmUgKi8KKyNkZWZp
bmUgRVZUX0FDVF9FT0kJCTB4MDAwMDAwMDIJLyogRU9JIHBlbmRpbmcgKi8KKyNkZWZpbmUg
RVZUX0FDVF9GUkVFSU5HCQkweDAwMDAwMDA0CS8qIGV2ZW4gY2hhbm5lbCBiZWluZyBmcmVl
ZCAqLwogCiAJdW5pb24gewogCQl1bnNpZ25lZCBzaG9ydCB2aXJxOwpAQCAtNjQwLDggKzY1
Niw4IEBAIHN0YXRpYyB2b2lkIHhlbl9pcnFfbGF0ZWVvaV9sb2NrZWQoc3RydWN0IGlycV9p
bmZvICppbmZvLCBib29sIHNwdXJpb3VzKQogCiAJaW5mby0+ZW9pX3RpbWUgPSAwOwogCi0J
LyogaXNfYWN0aXZlIGhhc24ndCBiZWVuIHJlc2V0IHlldCwgZG8gaXQgbm93LiAqLwotCXNt
cF9zdG9yZV9yZWxlYXNlKCZpbmZvLT5pc19hY3RpdmUsIDApOworCS8qIEVWVF9BQ1RfRU9J
IGhhc24ndCBiZWVuIHJlc2V0IHlldCwgZG8gaXQgbm93LiAqLworCWF0b21pY19mZXRjaF9h
bmRub3RfcmVsZWFzZShFVlRfQUNUX0VPSSwgJmluZm8tPmFjdGl2ZSk7CiAJZG9fdW5tYXNr
KGluZm8sIEVWVF9NQVNLX1JFQVNPTl9FT0lfUEVORElORyk7CiB9CiAKQEAgLTc5Miw5ICs4
MDgsOSBAQCBzdGF0aWMgdm9pZCB4ZW5fZnJlZV9pcnEoc3RydWN0IGlycV9pbmZvICppbmZv
KQogfQogCiAvKiBOb3QgY2FsbGVkIGZvciBsYXRlZW9pIGV2ZW50cy4gKi8KLXN0YXRpYyB2
b2lkIGV2ZW50X2hhbmRsZXJfZXhpdChzdHJ1Y3QgaXJxX2luZm8gKmluZm8pCitzdGF0aWMg
dm9pZCBldmVudF9oYW5kbGVyX2V4aXQoc3RydWN0IGlycV9pbmZvICppbmZvLCBpbnQgZmxh
ZykKIHsKLQlzbXBfc3RvcmVfcmVsZWFzZSgmaW5mby0+aXNfYWN0aXZlLCAwKTsKKwlhdG9t
aWNfZmV0Y2hfYW5kbm90X3JlbGVhc2UoRVZUX0FDVF9IQU5ETEVSIHwgZmxhZywgJmluZm8t
PmFjdGl2ZSk7CiAJY2xlYXJfZXZ0Y2huKGluZm8tPmV2dGNobik7CiB9CiAKQEAgLTgxOSw3
ICs4MzUsNyBAQCBzdGF0aWMgdm9pZCBkb19lb2lfcGlycShzdHJ1Y3QgaXJxX2luZm8gKmlu
Zm8pCiAJaWYgKCFWQUxJRF9FVlRDSE4oaW5mby0+ZXZ0Y2huKSkKIAkJcmV0dXJuOwogCi0J
ZXZlbnRfaGFuZGxlcl9leGl0KGluZm8pOworCWV2ZW50X2hhbmRsZXJfZXhpdChpbmZvLCBF
VlRfQUNUX0VPSSk7CiAKIAlpZiAocGlycV9uZWVkc19lb2koaW5mbykpIHsKIAkJcmMgPSBI
WVBFUlZJU09SX3BoeXNkZXZfb3AoUEhZU0RFVk9QX2VvaSwgJmVvaSk7CkBAIC05NjgsNiAr
OTg0LDggQEAgc3RhdGljIHZvaWQgX191bmJpbmRfZnJvbV9pcnEoc3RydWN0IGlycV9pbmZv
ICppbmZvLCB1bnNpZ25lZCBpbnQgaXJxKQogCQkJcmV0dXJuOwogCX0KIAorCWF0b21pY19m
ZXRjaF9vcl9hY3F1aXJlKEVWVF9BQ1RfRlJFRUlORywgJmluZm8tPmFjdGl2ZSk7CisKIAll
dnRjaG4gPSBpbmZvLT5ldnRjaG47CiAKIAlpZiAoVkFMSURfRVZUQ0hOKGV2dGNobikpIHsK
QEAgLTk5Nyw2ICsxMDE1LDEwIEBAIHN0YXRpYyB2b2lkIF9fdW5iaW5kX2Zyb21faXJxKHN0
cnVjdCBpcnFfaW5mbyAqaW5mbywgdW5zaWduZWQgaW50IGlycSkKIAkJeGVuX2lycV9pbmZv
X2NsZWFudXAoaW5mbyk7CiAJfQogCisJLyogV2FpdCB1bnRpbCBhbGwgSVJRIGhhbmRsZXJz
IGFyZSBnb25lLiAqLworCXdoaWxlIChhdG9taWNfcmVhZF9hY3F1aXJlKCZpbmZvLT5hY3Rp
dmUpICYgRVZUX0FDVF9IQU5ETEVSKQorCQljcHVfcmVsYXgoKTsKKwogCXhlbl9mcmVlX2ly
cShpbmZvKTsKIH0KIApAQCAtMTY2OSw3ICsxNjkxLDggQEAgdm9pZCBoYW5kbGVfaXJxX2Zv
cl9wb3J0KGV2dGNobl9wb3J0X3QgcG9ydCwgc3RydWN0IGV2dGNobl9sb29wX2N0cmwgKmN0
cmwpCiAJCX0KIAl9CiAKLQlpZiAoeGNoZ19hY3F1aXJlKCZpbmZvLT5pc19hY3RpdmUsIDEp
KQorCS8qIE9ubHkgZW50ZXIgaGFuZGxlciBpZiBub3Q6IGZyZWVkLCBoYW5kbGVyIGFjdGl2
ZSwgRU9JIHBlbmRpbmcuICovCisJaWYgKGF0b21pY19jbXB4Y2hnKCZpbmZvLT5hY3RpdmUs
IDAsIEVWVF9BQ1RfSEFORExFUiB8IEVWVF9BQ1RfRU9JKSkKIAkJcmV0dXJuOwogCiAJZGV2
ID0gKGluZm8tPnR5cGUgPT0gSVJRVF9FVlRDSE4pID8gaW5mby0+dS5pbnRlcmRvbWFpbiA6
IE5VTEw7CkBAIC0xODQ2LDcgKzE4NjksNyBAQCBzdGF0aWMgdm9pZCBkb19hY2tfZHluaXJx
KHN0cnVjdCBpcnFfaW5mbyAqaW5mbykKIAlldnRjaG5fcG9ydF90IGV2dGNobiA9IGluZm8t
PmV2dGNobjsKIAogCWlmIChWQUxJRF9FVlRDSE4oZXZ0Y2huKSkKLQkJZXZlbnRfaGFuZGxl
cl9leGl0KGluZm8pOworCQlldmVudF9oYW5kbGVyX2V4aXQoaW5mbywgRVZUX0FDVF9FT0kp
OwogfQogCiBzdGF0aWMgdm9pZCBhY2tfZHluaXJxKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkK
QEAgLTE4NzQsMTEgKzE4OTcsNyBAQCBzdGF0aWMgdm9pZCBsYXRlZW9pX2Fja19keW5pcnEo
c3RydWN0IGlycV9kYXRhICpkYXRhKQogCiAJaWYgKFZBTElEX0VWVENITihldnRjaG4pKSB7
CiAJCWRvX21hc2soaW5mbywgRVZUX01BU0tfUkVBU09OX0VPSV9QRU5ESU5HKTsKLQkJLyoK
LQkJICogRG9uJ3QgY2FsbCBldmVudF9oYW5kbGVyX2V4aXQoKS4KLQkJICogTmVlZCB0byBr
ZWVwIGlzX2FjdGl2ZSBub24temVybyBpbiBvcmRlciB0byBpZ25vcmUgcmUtcmFpc2VkCi0J
CSAqIGV2ZW50cyBhZnRlciBjcHUgYWZmaW5pdHkgY2hhbmdlcyB3aGlsZSBhIGxhdGVlb2kg
aXMgcGVuZGluZy4KLQkJICovCisJCWV2ZW50X2hhbmRsZXJfZXhpdChpbmZvLCAwKTsKIAkJ
Y2xlYXJfZXZ0Y2huKGV2dGNobik7CiAJfQogfQpAQCAtMTg5MCw3ICsxOTA5LDcgQEAgc3Rh
dGljIHZvaWQgbGF0ZWVvaV9tYXNrX2Fja19keW5pcnEoc3RydWN0IGlycV9kYXRhICpkYXRh
KQogCiAJaWYgKFZBTElEX0VWVENITihldnRjaG4pKSB7CiAJCWRvX21hc2soaW5mbywgRVZU
X01BU0tfUkVBU09OX0VYUExJQ0lUKTsKLQkJZXZlbnRfaGFuZGxlcl9leGl0KGluZm8pOwor
CQlldmVudF9oYW5kbGVyX2V4aXQoaW5mbywgRVZUX0FDVF9FT0kpOwogCX0KIH0KIApAQCAt
MjAxMSw3ICsyMDMwLDcgQEAgdm9pZCB4ZW5fY2xlYXJfaXJxX3BlbmRpbmcoaW50IGlycSkK
IAlldnRjaG5fcG9ydF90IGV2dGNobiA9IGluZm8gPyBpbmZvLT5ldnRjaG4gOiAwOwogCiAJ
aWYgKFZBTElEX0VWVENITihldnRjaG4pKQotCQlldmVudF9oYW5kbGVyX2V4aXQoaW5mbyk7
CisJCWV2ZW50X2hhbmRsZXJfZXhpdChpbmZvLCBFVlRfQUNUX0VPSSk7CiB9CiBFWFBPUlRf
U1lNQk9MKHhlbl9jbGVhcl9pcnFfcGVuZGluZyk7CiAKLS0gCjIuMzUuMwoK
--------------8ixqtW0LZGqWB0V52ZfpphcS
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-----

--------------8ixqtW0LZGqWB0V52ZfpphcS--

--------------DOEWShImYjJpYmnIkEggIqFL--

--------------YJZFw86K4o5GOOcBX7Rz9rPZ
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/Ey8FAmVpmWoFAwAAAAAACgkQsN6d1ii/Ey/i
bAf+KQvZTJtmZ4xt7FY3MhC3q6uP23OMmzR+U6wC0bbhBuy4uJIQ56Vekoq8IFo3xIFuzEqLrkN1
A/BcM8hx/udeWz3Zg6gOQfRlBdV2tWWBhHM13VG5OtLqlbnUbhGO9K9oTEP/8MtnB687FJkcYncE
v4kNcJPidiAVRTiH1E9IRmU5LjPjh/WdwDcwpgA1HZJhJoh1C3sHFf+eKbzrCQ5mMa3nvjMxrP0v
FIUgqBmXjsng3VBcODHmER3k7V8LS0tMbQMmPwklIM2ih20y/ON/nptR4G3A+qdCQhOcWneIDyCr
lJQq3o8me16c/ewqu6LJAnFiQ4RIy6AoL7jmTqgTzA==
=m3YL
-----END PGP SIGNATURE-----

--------------YJZFw86K4o5GOOcBX7Rz9rPZ--


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 08:43:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 08:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645352.1007476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8z71-0004np-4P; Fri, 01 Dec 2023 08:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645352.1007476; Fri, 01 Dec 2023 08: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 1r8z71-0004ni-11; Fri, 01 Dec 2023 08:43:03 +0000
Received: by outflank-mailman (input) for mailman id 645352;
 Fri, 01 Dec 2023 08: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=cJ34=HM=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1r8z6z-0004na-SQ
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 08:43:01 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a19e9015-9025-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 09:42:59 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 1B0A54EE073A;
 Fri,  1 Dec 2023 09:42:59 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a19e9015-9025-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Fri, 01 Dec 2023 09:42:59 +0100
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, bertrand.marquis@arm.com,
 julien@xen.org, Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?R?=
 =?UTF-8?Q?oger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 3/7] xen/x86: add missing instances of asmlinkage
 attributes
In-Reply-To: <918d258e-c10a-4cdd-a598-3b5dc0124de8@suse.com>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com>
 <4815279026ca4e2f1d93c98bfe6ea51ee139280d.1701270983.git.nicola.vetrini@bugseng.com>
 <918d258e-c10a-4cdd-a598-3b5dc0124de8@suse.com>
Message-ID: <d48f43185a08874aa0f44287a8023f13@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 2023-11-30 17:44, Jan Beulich wrote:
> On 29.11.2023 16:24, Nicola Vetrini wrote:
>> --- a/xen/arch/x86/desc.c
>> +++ b/xen/arch/x86/desc.c
>> @@ -91,7 +91,7 @@ seg_desc_t boot_compat_gdt[PAGE_SIZE / 
>> sizeof(seg_desc_t)] =
>>   * References boot_cpu_gdt_table for a short period, until the CPUs 
>> switch
>>   * onto their per-CPU GDTs.
>>   */
>> -const struct desc_ptr boot_gdtr = {
>> +const struct desc_ptr asmlinkage boot_gdtr = {
>>      .limit = LAST_RESERVED_GDT_BYTE,
>>      .base = (unsigned long)(boot_gdt - FIRST_RESERVED_GDT_ENTRY),
>>  };
> 
> I'm not convinced asmlinkage is okay to use on data. Recall that in 
> principle
> it may expand to an attribute specifying a non-default calling 
> convention.
> Such attributes cannot be assumed to continue to be possible to apply 
> to
> non-functions, even if such may happen to work with a particular 
> compiler
> version.
> 

It's already being used on variables, I believe.

xen/arch/x86/mm.c:l1_pgentry_t asmlinkage __section(".bss.page_aligned") 
__aligned(PAGE_SIZE)
xen/arch/x86/setup.c:unsigned long asmlinkage __read_mostly 
cr4_pv32_mask;
xen/arch/x86/setup.c:char asmlinkage 
__section(".init.bss.stack_aligned") __aligned(STACK_SIZE)
xen/arch/x86/setup.c:unsigned int asmlinkage __initdata multiboot_ptr;

If you have concern about this particular variable, then we can fall 
back on SAF or just put a declaration in the appropriate place.

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 08:47:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 08:47:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645358.1007486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zBj-0006f1-M4; Fri, 01 Dec 2023 08:47:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645358.1007486; Fri, 01 Dec 2023 08: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 1r8zBj-0006eu-J8; Fri, 01 Dec 2023 08:47:55 +0000
Received: by outflank-mailman (input) for mailman id 645358;
 Fri, 01 Dec 2023 08:47: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=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r8zBh-0006bO-Jw
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 08:47:53 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20615.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 501bc684-9026-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 09:47:52 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AM8PR04MB7363.eurprd04.prod.outlook.com (2603:10a6:20b:1c7::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.11; Fri, 1 Dec
 2023 08:47:49 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 08:47:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 501bc684-9026-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IM6Ca9Ihh6u7ZCkUmzO1f0rW/VwtkjrBZYRqM7RxUnbnPtRQa/IXsgxqG8zFByo8U6qGJtl3SbjtLLe8hrzgcsfBXNaWXVALZrsymySWIg5Q2+t/Mn+yu4KJTEfXWkCAaytR6pIp6uDCyc3cDkkUU/bsU97Neh8/UqajHP1DYlxhQWNIwaPZJtf+t/QwqfKcTRv9StIig+5QR1ayXLxOyo8LDota8/kSq0r8b/ke4n+CJXV4Z1d6D3R1vDFP/SvxVIj+k/y9ADCXALTKJw+X4WBZVyr7m5kV1I/u8xmR0XwlAbl7i32rx+UgCn+WiIQig0ElFtjVL+9aC7aDphE0Ww==
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=CEHChxh/eplANRe4gyktVXGXTWsC4x+ZsBVwLKuG7tk=;
 b=UP5bqWVH43uuIrHal7OJM3BVcPwA0MuCBwq0ezn9bRHnE/eoNopy7++J98YzVTouS+eoK2AsqBIX2Ndcs5XpoezKutHcluqNK+KcT0V7CoBzfnxW7yc0S4Anos8AI3HzJ0dkN6cfTWlYKgvrMa3sAAn4wYE2agNJ3dDpiPEImCm3GvsV+cgczNmNe5afvhf/qJgH0sRS/xG61OZ4xkLLkJNtNuxdQ/20jy/ih/4X9VwRa5BxA1wO0eoojM8PiTHCvg1KxnfNAmysK/upL/xmzNdpDJqVP8Isfnbq6KYJ7WfNlrbJp+KtMcSkqNntTrbPCkGlwCoqdEL++jSiII6YuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CEHChxh/eplANRe4gyktVXGXTWsC4x+ZsBVwLKuG7tk=;
 b=I0Tka4W77W4roAm7gt2InqliViiQsR0v3cFVmnccmxveq0D52g9AO10SX4JjXyOjL5euTZN9Ay31x9HW/h3A2HDSvuW2b8LP439OFbMr+sBmthPfOh9/jDmFN+Ymt4GxnZUeeoBhRGSMfhzDyUOmBUOFJIDYXFSxVo5O5xGpVJzUhHjc+PbgWnImfxN4eqSOUKm8aX4VCJlwspaohgzFUd9lkexfo+BKi2Y652KlEJisJ6VYYlqBAKqII6tP0hxHWR4zjHgZfjDDLzVRVVJ9Rg5TiFpw0Dro/Ew/2KTb0arycE0QVc3RHnCas6ve3yHuFEQy5LBHzsFtdUgQHQBpbg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <9f202a87-b41c-49e0-bce5-6224a03eb810@suse.com>
Date: Fri, 1 Dec 2023 09:47:47 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 3/7] xen/x86: add missing instances of asmlinkage
 attributes
Content-Language: en-US
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, bertrand.marquis@arm.com,
 julien@xen.org, 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.1701270983.git.nicola.vetrini@bugseng.com>
 <4815279026ca4e2f1d93c98bfe6ea51ee139280d.1701270983.git.nicola.vetrini@bugseng.com>
 <918d258e-c10a-4cdd-a598-3b5dc0124de8@suse.com>
 <d48f43185a08874aa0f44287a8023f13@bugseng.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: <d48f43185a08874aa0f44287a8023f13@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0199.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e5::19) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM8PR04MB7363:EE_
X-MS-Office365-Filtering-Correlation-Id: af3e7e79-4e3c-4aaa-66f8-08dbf24a329f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	WiK3mm+kYVsihqQsUzwSKNmiDoqwjFqcmhR/7PsRppe6Pah5OE4cgdbjh/N7DEDvYXC1Y7XNQFG1KTBc5pdUp5ISQeSRVPNtVnKckhGwcSlZqNLE/rNqu7NNN/Xj1fKNDOnDxl2LCBrMm7Qt4G1u5yXrxXmHK+KEh3lUxdZVA97GaRvrxmzsyEMcChTITNKDvRvHtkuIWXqiagyaspb+UGb2K038bOIY9mZEPn0Os8W4C9NljF4Mis2DfTDK+QLLWtAq0Sd3XtAH1pvZEL6QviRMMnDqWjDdKBQUh3iKMYJz+/cggj/nU7HRKaoyxQ2SEHHKrQE1dyldT1jbgtcq8n5Ysrp54ZY7ZgBmpKkFqCpRwKMxakl8sbH0Sv9IBhvfrVhGColp9bvFonOCD8ITyBrwyns9K/Q2ST4/nS3BZ8phnmidsTzxhBWQw8eILjj10ra6wd1qxALcXToKI2O9uzvAWOxV/MSqV6IM6v7mqt/P//ZGFQAWV95wadt7fC71rSxqNfc3oHMRfJLXLcweKiw/LhP1cNg6RR22XD8Sfi2FY8O+/rAFCLAw/BhThp+yKXsdodeOEqE4MK320sDsW1kmUUliwkCtLvf1LzORtRVH8cjhw2NltiuibEXtfQpAm1pYVz2Xh4FBbRbv/BXftw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(136003)(376002)(396003)(346002)(39860400002)(230922051799003)(186009)(451199024)(1800799012)(64100799003)(6512007)(6506007)(31686004)(508600001)(86362001)(66476007)(54906003)(66556008)(66946007)(316002)(6916009)(26005)(2616005)(83380400001)(53546011)(6486002)(38100700002)(5660300002)(2906002)(7416002)(36756003)(41300700001)(4001150100001)(8676002)(4326008)(8936002)(31696002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VHU4N0VaaVVza3REYmw5QmZ5SmFZTkY4Wk9aRnh6NU5lQlhaVEpObkJ2bnpl?=
 =?utf-8?B?c1M2UWRUbWs5cjM3RVhLYjdmcSs1cGNLUkxSWklaWDFqU0IrRjhHVU5ZVTg3?=
 =?utf-8?B?TFMrUzAyTXdHY1luazJNWkN1L2lsdU45N3hlRmdsZno1V293dXU2MXpucE43?=
 =?utf-8?B?bVBRd2RaMWk0emMrZ2hKaU5XMzc0VHh6SXJnTDRsdHVOOGZlUURzRFR1SHB1?=
 =?utf-8?B?V2tNclp3Vk5ZSkFTMEdzdkdDU1VKNHBOK2tGRVAxdXN0bzZUbUZJbmg0ckh2?=
 =?utf-8?B?bTBDdzBMSTB0dXFaNmJPUW0vMmxBQlZ6bzFhN0lRZGVvd1hpc2dWYmlKNDFl?=
 =?utf-8?B?S1RTVkJXVmxCZit4aGdoUG41ZnhQT0JCNFM1YzdiNDEraHByK2F4ZnVNc05h?=
 =?utf-8?B?cFpjelkxbmsybmdSY0xXd2NoSTllSHNDV0tJVW42TVZpU2VvMzc0RGczRmd0?=
 =?utf-8?B?WDVuRnNkZGJnbHBoMmdQaHJLWldqOTMwK3F6MG9CWW5zaEhrYkhVaUJJdW5C?=
 =?utf-8?B?T2ZROFhpMDd0ajRGMG9xMVFqeklxdmRZSEN6SVNQditZMVdzQWhwbXFmV1E1?=
 =?utf-8?B?bE94OGs0UG4zUUJST013QTY5NGdUL0xBeTczVXVuS2VDamVwT1JZU1lqS1FM?=
 =?utf-8?B?N0lJS2JuakVUZzJLUUZvZmNlbzJqb1JOc1Vlc2hidUtCKzcxd0pQaC8xS2VH?=
 =?utf-8?B?R3lYQ1dEOWlDdEZycStDdmtlcVZ5NExzZDRqeGk3OVN4RlhqOVNJNHhaaDFi?=
 =?utf-8?B?akJyYkc4N1pvVm5QdU1BMHdmaGtncmlZZEVlOHJDcUNuOWNIaERYQVhUcFZx?=
 =?utf-8?B?NW0wMEM4azRJNmZVcTBpNWQyMXNSNnJUU0hBdFR4bFUzMnJCajJHeFdtZGF3?=
 =?utf-8?B?aTkrWi83RHJsWWVZRkpnTEhZYmRyUWdNYmI3V0NadmpOd1RWaGdZcmNtUERG?=
 =?utf-8?B?bTlwUmJqL2srYzk2S3ZZWkdDMnZ2Zzg5aWQ0cGVjOWw5VUlRZmdYZk12UCt3?=
 =?utf-8?B?WnEvTGhmR3VDdzByMjdyUzRXYUJUUE5nNmowQXE1eDBhZTdueEFocVh5R25J?=
 =?utf-8?B?Ylc1ZkhVL3Y0ZmMzajRBWmJ3bnQ4dVFic0xyOC9EeWgwamlYaFZ0TktzVktX?=
 =?utf-8?B?d0YvV1E5cFh1Y2RMMDVwOWtGMzZWK2t3aVlIOHZ6K1VUZDZEWm1NMHVlSHNI?=
 =?utf-8?B?eGJkZmtISmpibEtNMU9hclBsU1M2Z0p6U1MzampnTCtlaEEwdFlTK0poN0xG?=
 =?utf-8?B?bTA1NDRDeE5nNVg3M2RQc2tIUFBVT09lMkg5b2hGTVVaU2t4c1FQU3VPd2VJ?=
 =?utf-8?B?MUd2Y0hrcDVDd0k3VUkxdzNaMXc3ekQzZklqUU00ZFFuYStHSkJoVUErZVpo?=
 =?utf-8?B?Y3lUamFGaFlWaU5VbzNES29TRkk0UTRuNjM0NlFEVjNmMmxpVWxwVWNqb3d2?=
 =?utf-8?B?T0F3Q1FHTjd3RTFNNTRzS2xuVjc5NTlZbXpSczB4QkJQMGcyd2JyZVhTeDFB?=
 =?utf-8?B?czdZVTBkZnJZSnFHdXBURlVvT3RuOWIvUys1RU83bjNObjgwNEQxRHdNdVZi?=
 =?utf-8?B?di9TSVBtTjBUZmNnbVlZcTh2Q2FLMDR1c3l4aitrTVVRYjBDNWtMbXRQS0Rj?=
 =?utf-8?B?SGNsbS8xWjczVllrM1R1SGpBUUlHeXBOK2lYUnZwdUc0OXRTUnFrMFhlYzgw?=
 =?utf-8?B?RGUxMmtPY3VFL2Z0K2FPZGpUMHRFM0h0bG5UVDZyUjlUNHNlVFFIci85bGNp?=
 =?utf-8?B?Slk3Q1h0bGhoWGNzNUUwMDZTbjR0N01IQVkxcEpoNHRWZityUE9zN29rcVBD?=
 =?utf-8?B?R256Nm9BeUxjQVEzSnkxcjZCbFljUmFFb2grdmE3MU1iZXFnRGl3dVdYd1lK?=
 =?utf-8?B?cDlXenRQVFoyUmYvYVJyVVlrb3Jib3o2eWhIYjdGb3BENGNpc0haQmtGVTcr?=
 =?utf-8?B?eE1HdmlLdXdHVHhtQ3RkaEgweDRlT2dUcU9WbFN0anp1L3Zqb1MvQlU4dENQ?=
 =?utf-8?B?M3hZenN4TDhJTkZyTzVoMXp0dE5JaDF2Qi85NXZwT1BMc2dyMEVvUTV4WlJR?=
 =?utf-8?B?SXRKWFRrb3UxWTAzVm9uZHAxZ2haMWVzZnVhOFJadVg5ek1kTkNmQ3NPclk3?=
 =?utf-8?Q?NSuvyklM/m54YUIlelEjkfqb5?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: af3e7e79-4e3c-4aaa-66f8-08dbf24a329f
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 08:47:49.5300
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: U0ArTxSxFp6sBGS1+/FtwcE4xgF+6RYW145CSYMki/QMnOwxulYltg2rK4utuGkekAnrTbWOxIGeobaEYc01LA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7363

On 01.12.2023 09:42, Nicola Vetrini wrote:
> On 2023-11-30 17:44, Jan Beulich wrote:
>> On 29.11.2023 16:24, Nicola Vetrini wrote:
>>> --- a/xen/arch/x86/desc.c
>>> +++ b/xen/arch/x86/desc.c
>>> @@ -91,7 +91,7 @@ seg_desc_t boot_compat_gdt[PAGE_SIZE / 
>>> sizeof(seg_desc_t)] =
>>>   * References boot_cpu_gdt_table for a short period, until the CPUs 
>>> switch
>>>   * onto their per-CPU GDTs.
>>>   */
>>> -const struct desc_ptr boot_gdtr = {
>>> +const struct desc_ptr asmlinkage boot_gdtr = {
>>>      .limit = LAST_RESERVED_GDT_BYTE,
>>>      .base = (unsigned long)(boot_gdt - FIRST_RESERVED_GDT_ENTRY),
>>>  };
>>
>> I'm not convinced asmlinkage is okay to use on data. Recall that in 
>> principle
>> it may expand to an attribute specifying a non-default calling 
>> convention.
>> Such attributes cannot be assumed to continue to be possible to apply 
>> to
>> non-functions, even if such may happen to work with a particular 
>> compiler
>> version.
>>
> 
> It's already being used on variables, I believe.
> 
> xen/arch/x86/mm.c:l1_pgentry_t asmlinkage __section(".bss.page_aligned") 
> __aligned(PAGE_SIZE)
> xen/arch/x86/setup.c:unsigned long asmlinkage __read_mostly 
> cr4_pv32_mask;
> xen/arch/x86/setup.c:char asmlinkage 
> __section(".init.bss.stack_aligned") __aligned(STACK_SIZE)
> xen/arch/x86/setup.c:unsigned int asmlinkage __initdata multiboot_ptr;

Yeah, I was fearing that something was overlooked earlier on.

Jan

> If you have concern about this particular variable, then we can fall 
> back on SAF or just put a declaration in the appropriate place.
> 



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 08:50:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 08:50:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645361.1007495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zEL-00088p-9B; Fri, 01 Dec 2023 08:50:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645361.1007495; Fri, 01 Dec 2023 08: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 1r8zEL-00088i-6G; Fri, 01 Dec 2023 08:50:37 +0000
Received: by outflank-mailman (input) for mailman id 645361;
 Fri, 01 Dec 2023 08:50: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=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r8zEJ-00088a-Oa
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 08:50:35 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b055af97-9026-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 09:50:33 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40b4744d603so18687445e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 00:50:33 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 h9-20020a05600c314900b0040b3d8907fesm4669413wmo.29.2023.12.01.00.50.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 00:50:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b055af97-9026-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701420633; x=1702025433; 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=eiH7R8djfQ+T8rS10Cd/5COkzZI3aGHC5G1ysw/b2yg=;
        b=moBmbqs7q0l3lYaDaYns9ZMKRi7poIcqCX9gG5lIWu7EvISUw5f9onAxkaEGYhnhO7
         CucVn1uHhmlySFC/eUGSnn0nm95vTAoHEDYAoOL32TA84tesJQmoCzTeZ1fj6KOfTTa5
         KFGLX6T25mgpRfmCETd6/3VB0+V2FfMEB0btY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701420633; x=1702025433;
        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=eiH7R8djfQ+T8rS10Cd/5COkzZI3aGHC5G1ysw/b2yg=;
        b=UOfEl8RUa8cR7Lge0L9IUfwOeBnxF3i5MzmVmc/m2RJRUfqOHZSFKJ4Scw9qZYdy8w
         rLvMBQuWmfFxfjaifJYufzDlemSlTRQZ1XZmcqqbB0k3qBSeb5xnF1WXDbT3shlyzBWz
         AkkcBLpekbFJ5L7DEY3DiLe4ZrwqNlyfr7si1pFLUZoeIJ2zfWVHR0i40inhWYvv7wv0
         uFeIWojNzviPJJ+NoCmjd5I/R2ZsPJNG3Y11puFqHqbDirt6jRPfdCkMNV0GEY91FHgs
         /Q8nOIlE67sp6vSr7/aU4g8v8bkzQHnDZe29oi9is0+awMzJUvLJ/FMOczSFAwMJD7qg
         bx5Q==
X-Gm-Message-State: AOJu0YzzYpHX+oDxrs+p/721lWjNshXGD4KEPsv0cEbKQhPUXz7MOxVh
	cBb6TkPN353bHw1vD9IycOs8Xw==
X-Google-Smtp-Source: AGHT+IFau9W2vT0gTHAbjsi10NlLDnqraOjenKtaxTYP9SuUzzf+iikxqAXuVp/+gbsaGNyEoSQOYw==
X-Received: by 2002:a7b:c4d1:0:b0:40b:5e1c:2fa8 with SMTP id g17-20020a7bc4d1000000b0040b5e1c2fa8mr182968wmk.56.1701420633286;
        Fri, 01 Dec 2023 00:50:33 -0800 (PST)
Date: Fri, 1 Dec 2023 09:50:31 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Message-ID: <ZWmeV-y5RpGAG5cS@macbook>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <a65aafed-68c0-41dd-bf4d-3eeff87dd5d3@suse.com>
 <ZWjIX0Jo5gW5SEDr@macbook>
 <d0a4f187-4e84-4e0d-b478-6d8437a0b644@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d0a4f187-4e84-4e0d-b478-6d8437a0b644@suse.com>

On Fri, Dec 01, 2023 at 07:53:29AM +0100, Jan Beulich wrote:
> On 30.11.2023 18:37, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 30, 2023 at 05:55:07PM +0100, Jan Beulich wrote:
> >> On 28.11.2023 11:03, Roger Pau Monne wrote:
> >>> The minimal function size requirements for livepatch are either 5 bytes (for
> >>> jmp) or 9 bytes (for endbr + jmp).  Ensure that functions are always at least
> >>> that size by requesting the compiled to align the functions to 8 or 16 bytes,
> >>> depending on whether Xen is build with IBT support.
> >>
> >> How is alignment going to enforce minimum function size? If a function is
> >> last in a section, there may not be any padding added (ahead of linking at
> >> least). The trailing padding also isn't part of the function.
> > 
> > If each function lives in it's own section (by using
> > -ffunction-sections), and each section is aligned, then I think we can
> > guarantee that there will always be enough padding space?
> > 
> > Even the last function/section on the .text block would still be
> > aligned, and as long as the function alignment <= SECTION_ALIGN
> > there will be enough padding left.  I should add some build time
> > assert that CONFIG_CC_FUNCTION_ALIGNMENT <= SECTION_ALIGN.
> 
> I'm not sure of there being a requirement for a section to be padded to
> its alignment. If the following section has smaller alignment, it could
> be made start earlier. Of course our linker scripts might guarantee
> this ...

I do think so, given our linker script arrangements for the .text
section:

DECL_SECTION(.text) {
    [...]
} PHDR(text) = 0x9090

. = ALIGN(SECTION_ALIGN);

The end of the text section is aligned to SECTION_ALIGN, so as long as
SECTION_ALIGN >= CONFIG_CC_FUNCTION_ALIGNMENT the alignment should
guarantee a minimal function size.

Do you think it would be clearer if I add the following paragraph:

"Given the Xen linker script arrangement of the .text section, we can
ensure that when all functions are aligned to the given boundary the
function size will always be a multiple of such alignment, even for
the last function in .text, as the linker script aligns the end of the
section to SECTION_ALIGN."

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 08:58:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 08:58:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645368.1007506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zLl-00018I-W0; Fri, 01 Dec 2023 08:58:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645368.1007506; Fri, 01 Dec 2023 08:58:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zLl-00018B-S3; Fri, 01 Dec 2023 08:58:17 +0000
Received: by outflank-mailman (input) for mailman id 645368;
 Fri, 01 Dec 2023 08:58:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r8zLk-000185-Bg
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 08:58:16 +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 c2f21ad8-9027-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 09:58:14 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-50bccc2e3efso2335727e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 00:58:14 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 je18-20020a05600c1f9200b003feea62440bsm4755865wmb.43.2023.12.01.00.58.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 00:58:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2f21ad8-9027-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701421094; x=1702025894; 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=UaHw1hjCR3NxnrQY1ARKmRXnyrSrOCItNMW6PUMuMF4=;
        b=nbdHi+FYCEeX042Ser+FzVwekkm6fattSd3sSt/Xe8+bpg3xqAZ5YSElVDl6+vQmSi
         Uzr+L4TGN2SdikGlr9k+m6Yc48aJuWEbnYv7o2Zc96cfPfW8//UlSUTGNwP9myax97zM
         4KPQcA08huAD4DrozuVb51u/tejY0U54rOgyc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701421094; x=1702025894;
        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=UaHw1hjCR3NxnrQY1ARKmRXnyrSrOCItNMW6PUMuMF4=;
        b=JZkuOwEjOBOEohsTDB1AckYg0RTtYP/I+BkD8cQOTiF3ikncRrq4PIXKWRYOiplO+H
         i1/b5ioB9l4HDvsXKRAszsOs7P+s6Uft7BTHwU0GKbZV2YqZBKSL+vDpmdQMNeEa8Yw4
         ShsNZtdyQuc8xINxNINTnrNQxU3siRcbCqPWVkm1caUA7QqjL/6Q9iPerxiefWTA5Z7g
         M1kRF4b0PqfQrhOblWhKLnahs/EqJr+JaGOu60nOKtvVDm/yFyoqwcxxVKeg5B3dS0Ne
         nR5rOSQr4/Gq27N5PaJykeWyqV61XYfK3M42eMeyOkvc0sL8T2Q2NiOHxtP81uSBXoX1
         c82A==
X-Gm-Message-State: AOJu0YxEWpsEd6m+np7vxFSxG1EtGIxjk1DGfYvBHSpTgn6DcvwHDX40
	mKECUdMLHz0evOZKwSRTUObSgA==
X-Google-Smtp-Source: AGHT+IE4OhisR8OsQM44A4vQh8aBYtvo29xgVaO+teORZibTRNUQH3H3JBaKP/eUBwb826QuHOJKcg==
X-Received: by 2002:a05:6512:31cd:b0:50b:d763:fe5f with SMTP id j13-20020a05651231cd00b0050bd763fe5fmr728578lfe.122.1701421093872;
        Fri, 01 Dec 2023 00:58:13 -0800 (PST)
Date: Fri, 1 Dec 2023 09:58:12 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jiqian Chen <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
	linux-acpi@vger.kernel.org,
	Stefano Stabellini <stefano.stabellini@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Christian Koenig <Christian.Koenig@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Message-ID: <ZWmgJNidFsfkDp7q@macbook>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>

On Thu, Nov 30, 2023 at 07:15:17PM -0800, Stefano Stabellini wrote:
> On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 29, 2023 at 07:53:59PM -0800, Stefano Stabellini wrote:
> > > On Fri, 24 Nov 2023, Jiqian Chen wrote:
> > > > This patch is to solve two problems we encountered when we try to
> > > > passthrough a device to hvm domU base on Xen PVH dom0.
> > > > 
> > > > First, hvm guest will alloc a pirq and irq for a passthrough device
> > > > by using gsi, before that, the gsi must first has a mapping in dom0,
> > > > see Xen code pci_add_dm_done->xc_domain_irq_permission, it will call
> > > > into Xen and check whether dom0 has the mapping. See
> > > > XEN_DOMCTL_irq_permission->pirq_access_permitted, "current" is PVH
> > > > dom0 and it return irq is 0, and then return -EPERM.
> > > > This is because the passthrough device doesn't do PHYSDEVOP_map_pirq
> > > > when thay are enabled.
> > > > 
> > > > Second, in PVH dom0, the gsi of a passthrough device doesn't get
> > > > registered, but gsi must be configured for it to be able to be
> > > > mapped into a domU.
> > > > 
> > > > After searching codes, we can 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 problems
> > > > can be conclude to that the gsi of a passthrough device doesn't be
> > > > unmasked.
> > > > 
> > > > To solve the unmaske problem, this patch call the unmask_irq when we
> > > > assign a device to be passthrough. So that the gsi can get registered
> > > > and mapped in PVH dom0.
> > > 
> > > 
> > > Roger, this seems to be more of a Xen issue than a Linux issue. Why do
> > > we need the unmask check in Xen? Couldn't we just do:
> > > 
> > > 
> > > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> > > index 4e40d3609a..df262a4a18 100644
> > > --- a/xen/arch/x86/hvm/vioapic.c
> > > +++ b/xen/arch/x86/hvm/vioapic.c
> > > @@ -287,7 +287,7 @@ static void vioapic_write_redirent(
> > >              hvm_dpci_eoi(d, gsi);
> > >      }
> > >  
> > > -    if ( is_hardware_domain(d) && unmasked )
> > > +    if ( is_hardware_domain(d) )
> > >      {
> > >          /*
> > >           * NB: don't call vioapic_hwdom_map_gsi while holding hvm.irq_lock
> > 
> > There are some issues with this approach.
> > 
> > mp_register_gsi() will only setup the trigger and polarity of the
> > IO-APIC pin once, so we do so once the guest unmask the pin in order
> > to assert that the configuration is the intended one.  A guest is
> > allowed to write all kind of nonsense stuff to the IO-APIC RTE, but
> > that doesn't take effect unless the pin is unmasked.
> > 
> > Overall the question would be whether we have any guarantees that
> > the hardware domain has properly configured the pin, even if it's not
> > using it itself (as it hasn't been unmasked).
> > 
> > IIRC PCI legacy interrupts are level triggered and low polarity, so we
> > could configure any pins that are not setup at bind time?
> 
> That could work.
> 
> Another idea is to move only the call to allocate_and_map_gsi_pirq at
> bind time? That might be enough to pass a pirq_access_permitted check.

Maybe, albeit that would change the behavior of XEN_DOMCTL_bind_pt_irq
just for PT_IRQ_TYPE_PCI and only when called from a PVH dom0 (as the
parameter would be a GSI instead of a previously mapped IRQ).  Such
difference just for PT_IRQ_TYPE_PCI is slightly weird - if we go that
route I would recommend that we instead introduce a new dmop that has
this syntax regardless of the domain type it's called from.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 09:03:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 09:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645374.1007516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zQT-0003H2-Gj; Fri, 01 Dec 2023 09:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645374.1007516; Fri, 01 Dec 2023 09: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 1r8zQT-0003Gv-DB; Fri, 01 Dec 2023 09:03:09 +0000
Received: by outflank-mailman (input) for mailman id 645374;
 Fri, 01 Dec 2023 09:03:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r8zQS-0003Gp-0W
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 09:03:08 +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 6ed091ce-9028-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 10:03:02 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40b399a6529so18892385e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 01:03:02 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 o18-20020a05600c4fd200b0040b45282f88sm8255845wmq.36.2023.12.01.01.03.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 01:03:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ed091ce-9028-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701421382; x=1702026182; 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=1YMrUSdUG2tveNsDVe5kwFVej4hbYjBI1JOj7cincDw=;
        b=F1xbO7KzmMhuPny5jn8W4N5RPA7HgO9gxfQQisqkhlQL7nuFmkRo6jvf6kceopUH6l
         paTWGz6i9uOUrxTUkAD60usJ97BLoDyMWkZzDGn8ny6SJ9KsKtH25NBjh+8TDDS5u9lS
         gMprYLF5Y9sYPgFHX+qSHisSS4C/Xx4oZbVDA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701421382; x=1702026182;
        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=1YMrUSdUG2tveNsDVe5kwFVej4hbYjBI1JOj7cincDw=;
        b=VQcuK45D3MLdIoiut41qJYVRvFsfzmwKf2QDhTuxZbdBueq4ovorvFCLAniI8vtY48
         8Q2YnpA5sNbE4OYCmLXArDJUoRPQ6v4jaHJfUkPup8aYBQET28t3J61z3RF9/Xsk9+as
         wGOyfnaodoPw/YyG2TVuMi6pP4he2ZgxGzy1IVwwBQXsAM2Xl/Ucj5Dq/tq5QDfr0O9e
         rLfDCISDfY+bokxzXWIwSdx3PvulnaYX65gJaRtgGE+xMA07F5J+RYXM5cKHi0eXu/VR
         EPMag3ds9S50/Wa0JovvSq7OJzBIo+waBfjDmWebybqHxu5cni09ZJ92B8ma5THz8H1r
         8qOA==
X-Gm-Message-State: AOJu0Yz+bOFxJWMhZSZUuBVZtyuurZ26zCZHR4ZU4ElsDF3/uwv/lpRd
	K51vtdjTVrqitEy20b6CZN35Yw==
X-Google-Smtp-Source: AGHT+IErNwVjqZkrQkMV/EuXtCIPxP0BRxtv/NR6+5nzEsJwPYHpwP27Ln1rR5aUzylK6yC9Wk+sFQ==
X-Received: by 2002:a05:600c:3d9a:b0:40b:5e4a:2356 with SMTP id bi26-20020a05600c3d9a00b0040b5e4a2356mr460923wmb.88.1701421382350;
        Fri, 01 Dec 2023 01:03:02 -0800 (PST)
Date: Fri, 1 Dec 2023 10:03:01 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jiqian Chen <Jiqian.Chen@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>,
	Huang Rui <Ray.Huang@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>
Subject: Re: [RFC XEN PATCH v2 3/3] tools: Add new function to get gsi from
 irq
Message-ID: <ZWmhRb6Ne4vgplzM@macbook>
References: <20231124104136.3263722-1-Jiqian.Chen@amd.com>
 <20231124104136.3263722-4-Jiqian.Chen@amd.com>
 <ZWX4R9UEE6oXiqaz@macbook>
 <alpine.DEB.2.22.394.2311291937170.3533093@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2311291956130.3533093@ubuntu-linux-20-04-desktop>
 <ZWheuUjLxShoQ_qn@macbook>
 <alpine.DEB.2.22.394.2311301907370.110490@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2311301907370.110490@ubuntu-linux-20-04-desktop>

On Thu, Nov 30, 2023 at 07:09:12PM -0800, Stefano Stabellini wrote:
> On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 29, 2023 at 08:02:40PM -0800, Stefano Stabellini wrote:
> > > n Wed, 29 Nov 2023, Stefano Stabellini wrote:
> > > > On Tue, 28 Nov 2023, Roger Pau MonnÃ© wrote:
> > > > > On Fri, Nov 24, 2023 at 06:41:36PM +0800, 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
> > > > > > if you debug the kernel codes, you will find the irq
> > > > > > number is alloced from small to large, but the applying
> > > > > > gsi number is not, may gsi 38 comes before gsi 28, that
> > > > > > causes the irq number is not equal with the gsi number.
> > > > > > And when we passthrough a device, QEMU will use its gsi
> > > > > > number to do mapping actions, see xen_pt_realize->
> > > > > > xc_physdev_map_pirq, but the gsi number is got from file
> > > > > > /sys/bus/pci/devices/xxxx:xx:xx.x/irq in current code,
> > > > > > so it will fail when mapping.
> > > > > > And in current codes, there is no method to translate
> > > > > > irq to gsi for userspace.
> > > > > 
> > > > > I think it would be cleaner to just introduce a new sysfs node that
> > > > > contains the gsi if a device is using one (much like the irq sysfs
> > > > > node)?
> > > > > 
> > > > > Such ioctl to translate from IRQ to GSI has nothing to do with Xen, so
> > > > > placing it in privcmd does seem quite strange to me.  I understand
> > > > > that for passthrough we need the GSI, but such translation layer from
> > > > > IRQ to GSI is all Linux internal, and it would be much simpler to just
> > > > > expose the GSI in sysfs IMO.
> > > > 
> > > > Maybe something to add to drivers/xen/sys-hypervisor.c in Linux.
> > > > Juergen what do you think?
> > > 
> > > Let me also add that privcmd.c is already a Linux specific interface.
> > > Although it was born to be a Xen hypercall "proxy" in reality today we
> > > have a few privcmd ioctls that don't translate into hypercalls. So I
> > > don't think that adding IOCTL_PRIVCMD_GSI_FROM_IRQ would be a problem.
> > 
> > Maybe not all ioctls translate to hypercalls (I guess you are
> > referring to the IOCTL_PRIVCMD_RESTRICT ioctl), but they are specific
> > Xen actions.  Getting the GSI used by a device has nothing do to with
> > Xen.
> > 
> > IMO drivers/xen/sys-hypervisor.c is also not appropriate, but I'm not
> > the maintainer of any of those components.
> > 
> > There's nothing Xen specific about fetching the GSI associated with a
> > PCI device.  The fact that Xen needs it for passthrough is just a red
> > herring, further cases where the GSI is needed might arise outside of
> > Xen, and hence such node would better be placed in a generic
> > location.  The right location should be /sys/bus/pci/devices/<sbdf>/gsi.
> 
> That might be true but /sys/bus/pci/devices/<sbdf>/gsi is a non-Xen
> generic interface and the maintainers of that portion of Linux code
> might have a different opinion. We'll have to see.

Right, but before resorting to implement a Xen specific workaround
let's attempt to do it the proper way :).

I cannot see why exposing the gsi on sysfs like that would be an
issue.  There's a lot of resource information exposed on sysfs
already, and it's a trivial node to implement.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 09:04:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 09:04:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645379.1007526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zRs-0003oK-QJ; Fri, 01 Dec 2023 09:04:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645379.1007526; Fri, 01 Dec 2023 09:04: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 1r8zRs-0003oD-ND; Fri, 01 Dec 2023 09:04:36 +0000
Received: by outflank-mailman (input) for mailman id 645379;
 Fri, 01 Dec 2023 09:04:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r8zRr-0003o5-JB
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 09:04:35 +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 a4a0b38d-9028-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 10:04:33 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50aab20e828so2568533e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 01:04:33 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 u6-20020a5d4686000000b0033315876d3esm3637044wrq.12.2023.12.01.01.04.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 01:04:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4a0b38d-9028-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701421472; x=1702026272; 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=+jI635PjjS5r3f+xAIw03/F/yjXGhAVN7xa0vyb8I84=;
        b=nV1nFLBjX3YY0t3Zx4Be23wpEBuZ+SwszmBTaN6pfIU65XaPGQNrxyvXX7PHStNBxk
         38EjLapRLKXrg9Vc7a1X+3WpN6fyVCeeP5RqUKKA3fCqkKJpWnBUNFeb+x+HjgzBvzge
         5inxr5ZRWEFJZ4ej2VbcoiC4tt6M67DWJJDB4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701421472; x=1702026272;
        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=+jI635PjjS5r3f+xAIw03/F/yjXGhAVN7xa0vyb8I84=;
        b=QxzNeACPGi02Ug4UI0/JC+vJZaNXohiUBr0J/QT4/wUuTgnB6kEB9FWxs/6iU3qXMc
         LTg18t8cUQ6lo6l9ItinUsADasX8X9PK7UyG3bFK1yiJsv2n6ZzULRhLPYM46dKsc9MH
         pqt2HYTcOL6ovjbffaFchJ6YqVKgAA+RMW1duTXO69GSCOrHtlrmpifkIfL5PdKDBto/
         DoO/Cl/jRtogo7M2/Jdqb62gL+azKv5q1rm2V3nRniBXlmXiuj0WOKVOqoO5iY2mlPOW
         JU/OHDcB5mpcqZO44JyHTAMYNGmVfj6VyEJ8oatfmgg83cWFNTVp2IOOAP7lT0WYcleg
         KRsA==
X-Gm-Message-State: AOJu0YzaxiCr9SbJmpRQc5Wo37TDYrE7yoFZsfDz9S6AEVlyCTtxJdF0
	k6ThWUScvsUjs5BJlxZH+L3CN7BrC9wLb3YOG9w=
X-Google-Smtp-Source: AGHT+IEKRuw4o6E54fvtmHZFCtRcta0Y8RMMBfqFPvb0veFpapHDDEmD9c273ib73E24VGxn6F2xvA==
X-Received: by 2002:a05:6512:1390:b0:50b:b921:cfb2 with SMTP id fc16-20020a056512139000b0050bb921cfb2mr713911lfb.56.1701421472340;
        Fri, 01 Dec 2023 01:04:32 -0800 (PST)
Date: Fri, 1 Dec 2023 10:04:31 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v10 12/17] vpci/header: emulate PCI_COMMAND register for
 guests
Message-ID: <ZWmhny_PNC7lxP1i@macbook>
References: <20231012220854.2736994-1-volodymyr_babchuk@epam.com>
 <20231012220854.2736994-13-volodymyr_babchuk@epam.com>
 <ZVy73iJ3E8nJHvgf@macbook.local>
 <87zfyusmmg.fsf@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <87zfyusmmg.fsf@epam.com>

On Fri, Dec 01, 2023 at 02:05:54AM +0000, Volodymyr Babchuk wrote:
> 
> Hi Roger, Stewart,
> 
> Roger Pau MonnÃ© <roger.pau@citrix.com> writes:
> 
> > On Thu, Oct 12, 2023 at 10:09:18PM +0000, Volodymyr Babchuk wrote:
> >> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> >> 
> >> Xen and/or Dom0 may have put values in PCI_COMMAND which they expect
> >> to remain unaltered. PCI_COMMAND_SERR bit is a good example: while the
> >> guest's view of this will want to be zero initially, the host having set
> >> it to 1 may not easily be overwritten with 0, or else we'd effectively
> >> imply giving the guest control of the bit. Thus, PCI_COMMAND register needs
> >> proper emulation in order to honor host's settings.
> >> 
> >> According to "PCI LOCAL BUS SPECIFICATION, REV. 3.0", section "6.2.2
> >> Device Control" the reset state of the command register is typically 0,
> >> so when assigning a PCI device use 0 as the initial state for the guest's view
> >> of the command register.
> >> 
> >> Here is the full list of command register bits with notes about
> >> emulation, along with QEMU behavior in the same situation:
> >> 
> >> PCI_COMMAND_IO - QEMU does not allow a guest to change value of this bit
> >> in real device. Instead it is always set to 1. A guest can write to this
> >> register, but writes are ignored.
> >> 
> >> PCI_COMMAND_MEMORY - QEMU behaves exactly as with PCI_COMMAND_IO. In
> >> Xen case, we handle writes to this bit by mapping/unmapping BAR
> >> regions. For devices assigned to DomUs, memory decoding will be
> >> disabled and the initialization.
> >> 
> >> PCI_COMMAND_MASTER - Allow guest to control it. QEMU passes through
> >> writes to this bit.
> >> 
> >> PCI_COMMAND_SPECIAL - Guest can generate special cycles only if it has
> >> access to host bridge that supports software generation of special
> >> cycles. In our case guest has no access to host bridges at all. Value
> >> after reset is 0. QEMU passes through writes of this bit, we will do
> >> the same.
> >> 
> >> PCI_COMMAND_INVALIDATE - Allows "Memory Write and Invalidate" commands
> >> to be generated. It requires additional configuration via Cacheline
> >> Size register. We are not emulating this register right now and we
> >> can't expect guest to properly configure it. QEMU "emulates" access to
> >> Cachline Size register by ignoring all writes to it. QEMU passes through
> >> writes of PCI_COMMAND_INVALIDATE bit, we will do the same.
> >> 
> >> PCI_COMMAND_VGA_PALETTE - Enable VGA palette snooping. QEMU passes
> >> through writes of this bit, we will do the same.
> >> 
> >> PCI_COMMAND_PARITY - Controls how device response to parity
> >> errors. QEMU ignores writes to this bit, we will do the same.
> >> 
> >> PCI_COMMAND_WAIT - Reserved. Should be 0, but QEMU passes
> >> through writes of this bit, so we will do the same.
> >> 
> >> PCI_COMMAND_SERR - Controls if device can assert SERR. QEMU ignores
> >> writes to this bit, we will do the same.
> >> 
> >> PCI_COMMAND_FAST_BACK - Optional bit that allows fast back-to-back
> >> transactions. It is configured by firmware, so we don't want guest to
> >> control it. QEMU ignores writes to this bit, we will do the same.
> >> 
> >> PCI_COMMAND_INTX_DISABLE - Disables INTx signals. If MSI(X) is
> >> enabled, device is prohibited from asserting INTx as per
> >> specification. Value after reset is 0. In QEMU case, it checks of INTx
> >> was mapped for a device. If it is not, then guest can't control
> >> PCI_COMMAND_INTX_DISABLE bit. In our case, we prohibit a guest to
> >> change value of this bit if MSI(X) is enabled.
> >
> > FWIW, bits 11-15 are RsvdP, so we will need to add support for them
> > after the series from Stewart that adds support for register masks is
> > accepted.
> 
> Stewart's series implement much better register handling than this
> patch. What about dropping this change at all in favor of Stewart's
> implementation? I'll be 100% okay with this.

That's fine.  I expect Stewart's series will go in quite soon, and
then we can likely rework this commit on top of them?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 09:08:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 09:08:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645387.1007535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zVi-0004ZY-EE; Fri, 01 Dec 2023 09:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645387.1007535; Fri, 01 Dec 2023 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 1r8zVi-0004ZR-BZ; Fri, 01 Dec 2023 09:08:34 +0000
Received: by outflank-mailman (input) for mailman id 645387;
 Fri, 01 Dec 2023 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=Mgf8=HM=gmail.com=persaur@srs-se1.protection.inumbo.net>)
 id 1r8zVh-0004ZL-5b
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 09:08:33 +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 32969520-9029-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 10:08:31 +0100 (CET)
Received: by mail-qk1-x731.google.com with SMTP id
 af79cd13be357-77dccb3e4baso102108185a.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 01:08:31 -0800 (PST)
Received: from smtpclient.apple (static-198-54-130-110.cust.tzulo.com.
 [198.54.130.110]) by smtp.gmail.com with ESMTPSA id
 m12-20020ae9e00c000000b0077d74129bd6sm1301913qkk.66.2023.12.01.01.08.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Dec 2023 01:08:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32969520-9029-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701421711; x=1702026511; darn=lists.xenproject.org;
        h=to:cc:date:message-id:subject:mime-version:from
         :content-transfer-encoding:from:to:cc:subject:date:message-id
         :reply-to;
        bh=n5F983s+7WU0Y+C/2K+NkSeb3vLoUdLIE9JN8H81SM0=;
        b=EGH08O/RreyG0LYyAFnRln8Vw7u5+YpAC7YzhxrnTccwZNDCZCnQZx8COKPrxy4RfG
         KAMqPwvtKCrOg2jKvX5IrnE++UAStvxYCRenobyeTq5aH4OrYelcHqDRawHk32tHS/lr
         qhtywdiDXtCIxaQsHPDxKoA3HA1/IGPxzVXj/j4y7iT+qtaAtJ6X6ydDebxQsLiRx09o
         j/4q2SXTWMONsh+eBag8EOMMSF6vf4DA5qB6KNwQ4Fgb6bfzQD/xJKy1PWV+kM4F1s7g
         LWM0+c5bhe0p9EE+OQSElsdIX56s0JZgGoTjG00JPw6zpKTyfpdS/EeZ9OIO6oOE8+iB
         cnRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701421711; x=1702026511;
        h=to:cc:date:message-id:subject:mime-version:from
         :content-transfer-encoding:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=n5F983s+7WU0Y+C/2K+NkSeb3vLoUdLIE9JN8H81SM0=;
        b=Ef9fIGKqnjaDQLugkcUEpDcuVe95A1KCI8Lo1tCKzHs8CPBfwhV8VaUytQTmybZ7J8
         2bZdbWGo+gs3rRtu3yfvisfNEhAS5sNf4ab6ZfqtXVkUXLy4vSnt73zOcCJSB7NWUNgz
         tbkHdJ2QWsXQDPHyX6J3UhyCLX8ucwp6/pnw5Aa02hnbZxqFM3PjfPUiGvEjCM0q2Awm
         lbWWqF0+z3EAPye2wHjrSnrWs7S3gxbux67fgkeKHIEmnXntoFJTlFRZ6xR/MWyCwRMi
         ytvQHjuHzFP996sGw2pqBaKhjimb3bIz9NMdUBdVB1sayw127pMzoOL/E6dpf8yKJbpF
         qhmw==
X-Gm-Message-State: AOJu0YxPq6d6044z7DSGcYfI1jCR6FACjRpiJfeFpbZ1Dl9HAqLR4Tkf
	XQu9fC4Cy5w+A8uOmFHBlcU=
X-Google-Smtp-Source: AGHT+IFPhGImyfxXqgcap3JuoNCqIkIrBotw1M585YVqWgViSPaUYCVURXMlTdkPX5AUeyoM/oiEWQ==
X-Received: by 2002:a05:620a:a5e:b0:77d:73fd:e89f with SMTP id j30-20020a05620a0a5e00b0077d73fde89fmr23316161qka.46.1701421710494;
        Fri, 01 Dec 2023 01:08:30 -0800 (PST)
Content-Type: multipart/alternative; boundary=Apple-Mail-5C152658-3C45-42F5-8C93-4913B517824E
Content-Transfer-Encoding: 7bit
From: Rich Persaud <persaur@gmail.com>
Mime-Version: 1.0 (1.0)
Subject: Re: Informal voting proposal
Message-Id: <62E07D85-2601-406F-AC27-956BF986ED7F@gmail.com>
Date: Fri, 1 Dec 2023 04:08:18 -0500
Cc: xen-devel@lists.xenproject.org, committers@xenproject.org,
 openxt <openxt@googlegroups.com>
To: Kelly Choi <kelly.choi@cloud.com>
X-Mailer: iPad Mail (20H115)


--Apple-Mail-5C152658-3C45-42F5-8C93-4913B517824E
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Nov 6, 2023, at 13:53, Kelly Choi <kelly.choi@cloud.com> wrote:
> =EF=BB=BF
> Hi all,
>=20
> As an open-source community, there will always be differences of opinion i=
n approaches and the way we think. It is imperative, however, that we view t=
his diversity as a source of strength rather than a hindrance.
>=20
> Recent deliberations within our project have led to certain matters being p=
ut on hold due to an inability to reach a consensus. While formal voting pro=
cedures serve their purpose, they can be time-consuming and may not always l=
ead to meaningful progress.
>=20
> Having received agreement from a few maintainers already, I would like to p=
ropose the following:
>=20
> Informal voting method:
> Each project should ideally have more than 2 maintainers to facilitate imp=
artial discussions. Projects lacking this configuration will be addressed at=
 a later stage.
> Anyone in the community is welcome to voice their opinions, ideas, and con=
cerns about any patch or contribution.
> If members cannot agree, the majority informal vote of the maintainers wil=
l be the decision that stands. For instance, if, after careful consideration=
 of all suggestions and concerns, 2 out of 3 maintainers endorse a solution w=
ithin the x86 subsystem, it shall be the decision we move forward with.
> Naturally, there may be exceptional circumstances, as such, a formal vote m=
ay be warranted but should happen only a few times a year for serious cases o=
nly.
> Informal votes can be as easy as 2 out of 3 maintainers providing their Ac=
ked-by/Reviewed-by tag. Alternatively, Maintainers can call an informal vote=
 by simply emailing the thread with "informal vote proposed, option 1 and op=
tion 2."=20
> All maintainers should reply with their vote within 5 working days. =20
> Please note that with any new process, there will always be room for impro=
vement and we will reiterate where needed.
> Ultimately our goal here is to prevent the project coming to a standstill w=
hile deliberating decisions that we all cannot agree on. This may mean compr=
omising in the short term but I am sure the long-term benefits will stand fo=
r themselves. =20
>=20
> If you have any strong objections to the informal voting, please let me kn=
ow by 30th November 2023.=20
> Should I receive no objections, the process will be implemented as of 1st D=
ecember 2023.
>=20

Apologies for the late response, I was recently asked to look at this thread=
, and it's now the end of my Nov 30th USA day.

In order to evaluate new governance proposals, historical test cases are nee=
ded.  Then the existing process, proposed process (and other candidate proce=
sses!) can be applied to each test case in turn, so we can evaluate the bene=
fits and costs of each candidate. =20

If the problem is not defined, how can candidate solutions be evaluated?  Pe=
rhaps those who have responded to the thread have already discussed the prob=
lem(s) elsewhere, but we need to include them in the public, on-list discuss=
ion record.


> Again there will be times for that call for flexibility, but we should alw=
ays aim to have a vote for two of the best solutions to avoid the project co=
ming to another standstill.=20


Unless I am mistaken, only one solution has been proposed for a problem that=
 has zero on-list examples or test cases.  The community is being given a ch=
oice between one solution and no solution? =20

If we can define the problem, with more than one historical example, then we=
 can consider multiple solutions, pick two of the best solutions, and approv=
e one of the solutions for implementation.

Regards,
Rich

p.s. This is a strong objection to the absence of a problem definition.=

--Apple-Mail-5C152658-3C45-42F5-8C93-4913B517824E
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto"><div dir=3D"ltr">On Nov 6, 2023, at 13:53, K=
elly Choi &lt;kelly.choi@cloud.com&gt; wrote:<div dir=3D"ltr"><div dir=3D"lt=
r"><blockquote type=3D"cite"><br></blockquote></div><blockquote type=3D"cite=
"><div dir=3D"ltr">=EF=BB=BF<div dir=3D"ltr">Hi all,<div><br>As an open-sour=
ce community, there will always be differences of opinion in approaches and t=
he way we think. It is imperative, however, that we view this diversity as a=
 source of strength rather than a hindrance.<br><br>Recent deliberations wit=
hin our project have led to certain matters being put on hold due to an inab=
ility to reach a consensus. While formal voting procedures serve their purpo=
se, they can be time-consuming and may not always lead to meaningful progres=
s.<div><br></div><div>Having received agreement from a few maintainers alrea=
dy, I would like to propose&nbsp;the following:</div><div><br></div><div><b>=
Informal voting method:</b></div><div><ol><li>Each project should ideally ha=
ve more than 2 maintainers to facilitate impartial discussions. Projects lac=
king this configuration will be addressed at a later stage.</li><li>Anyone i=
n the community is welcome to voice their opinions, ideas, and concerns abou=
t any patch or contribution.</li><li>If members cannot agree, the majority i=
nformal vote of the maintainers will be the decision that stands. For instan=
ce, if, after careful consideration of all suggestions and concerns, 2 out o=
f 3 maintainers endorse a solution within the x86 subsystem, it shall be the=
 decision we move forward with.</li><li>Naturally, there may be exceptional c=
ircumstances, as such, a formal vote may be warranted but should happen only=
 a few times a year for serious cases only.</li><li>Informal votes can be as=
 easy as 2 out of 3 maintainers providing their Acked-by/Reviewed-by tag. Al=
ternatively, Maintainers can call an informal vote by simply emailing the th=
read with "informal vote proposed, option 1 and option 2."&nbsp;</li><li><b>=
All maintainers should reply with their vote within 5 working days.</b>&nbsp=
;&nbsp;</li><li>Please note that with any new process, there will always be r=
oom for improvement and we will reiterate where needed.</li></ol><div>Ultima=
tely&nbsp;our goal here is to prevent the project coming to a standstill whi=
le deliberating decisions that&nbsp;we all cannot agree on. This may mean co=
mpromising in the short term but I am sure the long-term benefits will stand=
 for themselves.&nbsp;&nbsp;</div><div><font color=3D"#ff0000"><br></font></=
div><div><font color=3D"#ff0000"><b>If you have any strong objections to the=
 informal voting, please let me know by <u>30th November 2023.&nbsp;</u></b>=
</font></div><div><font color=3D"#ff0000"><b>Should I receive no objections,=
 the process will be implemented as of 1st December 2023.</b></font></div><d=
iv><br></div></div></div></div>
</div></blockquote><br><div>Apologies for the late response, I was recently a=
sked to look at this thread, and it's now the end of my Nov 30th USA day.</d=
iv><div><br></div><div>In order to evaluate new governance proposals, histor=
ical test cases are needed. &nbsp;Then the existing process, proposed proces=
s (and other candidate processes!) can be applied to each test case in turn,=
 so we can evaluate the benefits and costs of each candidate. &nbsp;</div><d=
iv><br></div><div>If the problem is not defined, how can candidate solutions=
 be evaluated? &nbsp;Perhaps those who have responded to the thread have alr=
eady discussed the problem(s) elsewhere, but we need to include them in the p=
ublic, on-list discussion record.</div><div><br></div><div><br></div><div><b=
lockquote type=3D"cite"><span style=3D"-webkit-text-size-adjust: auto; caret=
-color: rgb(255, 0, 0); color: rgb(255, 0, 0); background-color: rgb(255, 25=
5, 255);">Again there will be times for that call for flexibility, but we sh=
ould always aim to have a vote for two of the best solutions to avoid the pr=
oject coming to another standstill.&nbsp;</span></blockquote></div><div><br>=
</div><div>Unless I am mistaken, only <b>one</b> solution has been proposed f=
or a problem that has zero on-list examples or test cases. &nbsp;The communi=
ty is being given a choice between one solution and no solution? &nbsp;</div=
><div><br></div><div>If we can define the problem, with more than one histor=
ical example, then we can consider multiple solutions, pick <b>two</b> of th=
e best solutions, and approve one of the solutions for implementation.</div>=
<div><br></div><div>Regards,</div><div>Rich</div><div><br></div><div><div>p.=
s. This is a strong objection to the absence of a problem definition.</div><=
/div></div></div></body></html>=

--Apple-Mail-5C152658-3C45-42F5-8C93-4913B517824E--


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 09:17:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 09:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645391.1007545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zds-00088o-6x; Fri, 01 Dec 2023 09:17:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645391.1007545; Fri, 01 Dec 2023 09:17:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zds-00088h-4U; Fri, 01 Dec 2023 09:17:00 +0000
Received: by outflank-mailman (input) for mailman id 645391;
 Fri, 01 Dec 2023 09:16:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r8zdq-00088Y-UR
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 09:16:58 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6061bbf6-902a-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 10:16:57 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40b4746ae3bso14281685e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 01:16:57 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 y8-20020a056000108800b00332fbc183ebsm3665846wrw.76.2023.12.01.01.16.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 01:16:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6061bbf6-902a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701422217; x=1702027017; 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=oyg0wN4TaJ60pHMh49g4yYTPBBGg8ETeH0CB1qE2aP0=;
        b=Et2XKd4cLJ0jqCcgbq3ZiQOhnNdYONoqQtbUz9Yoz6e9lddLkeytLO5pWm7oMFkIMJ
         lrtC5GIJYYoE3eBlE2ldn0uDMYdMnNyekgdJ0X9fb131mBcetql1o1cCNE3d02oJzzhB
         8noN6d5ed+x7eJZRg1h5LfR6I6SxccyyXEMNg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701422217; x=1702027017;
        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=oyg0wN4TaJ60pHMh49g4yYTPBBGg8ETeH0CB1qE2aP0=;
        b=qcLWM9HVCgR8HMNjDqImxV6w5okl5L483z82xksB2+KBOKIOEIIoxMW7EE6E4GeqGJ
         UKT+5Y6NOio0uP6EeHGb99USmhFLzufGDOOzSyZiTVIU1Y0wvHurB5A2jgjySpC/I7Wg
         gWwhj9EN/E+acF0+G0kSgFa3y1Emq/peZryutBQ/OiUeYDQ9TqBqgNMozePma7AXh9nN
         dhAyYMUbuawfYg84Tl/3IX/ghb2MffwUHVXHmtGHy6gLZz0ZHEXYYD8aINJZ8+ut59dg
         Ss62G6HpaurCPgaqDv7FMn61rd4rW0qWgy+M9xT7EOYY7JO4xKY4ZMyAxfgqjfRFE8Vd
         HhMQ==
X-Gm-Message-State: AOJu0YwVv/QyqvyxFO0Qnbtgg6LW9PEybD5yjXlCA5gEIQxkViaSO2oW
	sglDv6Ge7ZUDG69PQdraowxDEQ==
X-Google-Smtp-Source: AGHT+IEhy6Kd9Kc7faIWsztFMU2a8EOY8G0TwKbCHMRMQcYc0GtS17csqrSH+cdYrGY4B8fv6R6GjA==
X-Received: by 2002:a05:600c:3b05:b0:404:f9c1:d5d7 with SMTP id m5-20020a05600c3b0500b00404f9c1d5d7mr280014wms.25.1701422216933;
        Fri, 01 Dec 2023 01:16:56 -0800 (PST)
Date: Fri, 1 Dec 2023 10:16:55 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Message-ID: <ZWmkh0Xeaynh43N7@macbook>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20231113222118.825758-5-stewart.hildebrand@amd.com>

On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
>          bus = PCI_BUS(machine_sbdf);
>          devfn = PCI_DEVFN(machine_sbdf);
>  
> +        if ( needs_vpci(d) && !has_vpci(d) )
> +        {
> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
> +                   &PCI_SBDF(seg, bus, devfn), d);
> +            ret = -EPERM;
> +            break;

I think this is likely too restrictive going forward.  The current
approach is indeed to enable vPCI on a per-domain basis because that's
how PVH dom0 uses it, due to being unable to use ioreq servers.

If we start to expose vPCI suport to guests the interface should be on
a per-device basis, so that vPCI could be enabled for some devices,
while others could still be handled by ioreq servers.

We might want to add a new flag to xen_domctl_assign_device (used by
XEN_DOMCTL_assign_device) in order to signal whether the device will
use vPCI.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 09:21:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 09:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645396.1007556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r8zi7-0002Hv-O1; Fri, 01 Dec 2023 09:21:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645396.1007556; Fri, 01 Dec 2023 09: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 1r8zi7-0002Ho-LQ; Fri, 01 Dec 2023 09:21:23 +0000
Received: by outflank-mailman (input) for mailman id 645396;
 Fri, 01 Dec 2023 09:21: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 1r8zi6-0002Hi-QP
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 09:21: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 1r8zi2-0003tc-Cl; Fri, 01 Dec 2023 09:21:18 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r8zi2-0007xq-6y; Fri, 01 Dec 2023 09: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>
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=F2XTt8TPeOzbqceIRZZ4AVXmMTNHSM+uyfyfHMOrlOg=; b=N1qI1caOGES6HrVqf7zTyPkh2k
	J6YejHq+uLG9WxuXxBFPcYci+39yrtFGSDS9GXZyxrrvqfSDRianmiGom3dm2yNCVvcsb/y/rPs6k
	qYZOcGcgKTTLcY2VG/uKIMGTcbEk3QJwIzSMyOuUdBxiF3Z5vr+INNcDdjAtqStuep04=;
Message-ID: <df0bc6ca-2a04-4ed2-ae70-642ae44da549@xen.org>
Date: Fri, 1 Dec 2023 09:21:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 Kelly Choi <kelly.choi@cloud.com>
Cc: xen-devel@lists.xenproject.org, committers@xenproject.org
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 30/11/2023 22:27, Stefano Stabellini wrote:
> Hi all,
> 
> This vote is in the context of this thread:
> https://marc.info/?l=xen-devel&m=169213351810075

Thanks for providing the context + CCing committers.

First I will echo what Jan said and mention that providing context to 
the vote is always useful.

My second point is while I understand the vote is open to everyone, it 
would be good to at least CC the maintainers of the area involved (or 
committers if you need a wider input). At least a few of us don't often 
look at xen-devel and I would have missed this vote request if Stefano 
hadn't CCed me.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 09:42:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 09:42:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645400.1007566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r902P-0008Cp-Ci; Fri, 01 Dec 2023 09:42:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645400.1007566; Fri, 01 Dec 2023 09:42: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 1r902P-0008Ci-9c; Fri, 01 Dec 2023 09:42:21 +0000
Received: by outflank-mailman (input) for mailman id 645400;
 Fri, 01 Dec 2023 09:42:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r902N-0008Cc-EG
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 09:42:19 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01on2089.outbound.protection.outlook.com [40.107.13.89])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea0ca8f9-902d-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 10:42:17 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DBBPR04MB7578.eurprd04.prod.outlook.com (2603:10a6:10:208::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.23; Fri, 1 Dec
 2023 09:41:48 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 09:41: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: ea0ca8f9-902d-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=C3bSMuiQcJoS2U4vfLeUzCSkyvlze666mAfF/TUGWmx8DVWgnzOBUU7/iVm5aAVjatyA7HrRAwAPa9CR+zUC4m8H560GDdtOXrbqs1ccY00l9OdmshUv5snYFEnpYTfJsd+ZcFGsZqrhe2d9hj7dA8GPFlTLKi1acvU8+XiWjzoXw/9szJnTnmDVK0p7sfY/HDAlxDK9HswfgD3OAph6fn9E4cM8mf+8w7NAmYECQbQiy44h2L3qtY8HyaPztuKy3lvPD5Xu5rBjSg5Bmr5u2F4K1beKLFDkpTfQV2YZomA7rub2DIfIiZRFsqcA4ey+e041uzjw/4bI1TQ7XOn4pQ==
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=NScFN3gcFvVKhSJ9ePvUimuieZutudyPFNCzhAmjqQ8=;
 b=fl1cQ4cpL8vtoZ2p84UKuXdcgsL1W1Y7FD4FkiWTrOCAYgd1THKUsNoW1805nUP56VKrxdbRqWwOtCM6VZl2zc2lJjdvqEpCVlMPI4WO5VVew82jDAvI5jGE2nZ808f+Fm4HVcHKRF/6nd3O3IuDD/+9R6NV0713V11zDM/THILnxYs/CYvMmZKqWDz69MtEJM5Y2aLK1xpLFTeQrWGWeu0EbpxEjEn0v5v8kJsMMrtdNYw3ihOr1O7ZTOZ6ZBkB2ldHAlyb8YjdgXJGFdG4MFQNG1ADMIt6AIYeaBH8A4xVpuUK3Baffs1UVcV71qxs0pI4yk4GwbOSuxOHA8leZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NScFN3gcFvVKhSJ9ePvUimuieZutudyPFNCzhAmjqQ8=;
 b=BMOfz9b116359Yf0fDQW/DEfh8W33+MFarv6UOVGUXAh9o/7Ku+lqYvyj3vTrlZK/erIbKB/iD8vd86EiBrHamuiXSmHKER3velW605FUxpT29MGs8n5Ex9DMf7LhhUdfBNNnAw+YKN2tK92Jo5201cBSwScknteDNBn1xP8LZ/hTroNHp26nsQH0Qb374lz/gLWSzpjA9ocYQPr5gForyT8JoHoTsRle0iVOtUk2GxyQPr9WQ4COGpp5SAkzQD0PgOm+MBXI2R51dHUXJ7bNrhNfneHrZNNjNxOGs1muQB/2WpaM33snXYbETCeyCjuBfeNN1N1KZcufEPsZJPtbg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0d9bc0cd-3719-4961-ae7d-3e27508000a2@suse.com>
Date: Fri, 1 Dec 2023 10:41:45 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <a65aafed-68c0-41dd-bf4d-3eeff87dd5d3@suse.com> <ZWjIX0Jo5gW5SEDr@macbook>
 <d0a4f187-4e84-4e0d-b478-6d8437a0b644@suse.com> <ZWmeV-y5RpGAG5cS@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZWmeV-y5RpGAG5cS@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0312.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f6::19) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DBBPR04MB7578:EE_
X-MS-Office365-Filtering-Correlation-Id: 951a86c7-6771-4778-b1aa-08dbf251bd17
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	s/NVfmkv6gwQjAInQjJe+bckAm4izsxrB2lzOF0NOeVhVpkho3DxxVTplZclEJa2yMZ4LBF458PJMzgi2sER1pU6h27XBijx5JZllxgtrCn3cA6zbI5c6XxbYFRaD+MC+gNK+pkMt5/s8fX2KGpGEhS8N3nPb2yPoh06GqYwf3n4RWYWRVxmTH24hHBJCaI/QUAP+DOFxj869jx52Y2lvBBx2PmsAYb2/olYeJwe/lQzQknykWs1yYGc5gPThDq8vg/LUNi4rF+l9LrxE3M7m1u+PeaDc2ACNbx+oRLROoZyfwG8vluoYBBz/M3jr2sdigk8SpDD8M8tjP0U4+ZI+cNgXVOaNgl0UKGeXmcIL65T6WNnbb3uPfsiclev7xCUMTna30KH5y6haIwWh0YUm46BQF9cv+eg96wxq3fs0wjzpe+mlSN8kVvIvsKPdZHLTxv2jEzd3UOokFYUBA05XE10d2EV/b73gLsYqTyDSBs757beZ5PKWLkyupOTmigfIU1XCwNxWLUucbWfDYr7bQJdXyrRz8mDwOkMwD5wSp2AMoTUFf06pktAttbhdJygj1k6sBjsePjNbUB9ySwNOi1yXyaNq2NDc2tupzo/MR73OJw6sm+Y7JPaBRK7cskJBR6L1amUtqPe+iWb1asjfg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(366004)(346002)(376002)(39860400002)(396003)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(38100700002)(86362001)(31696002)(36756003)(6666004)(2906002)(53546011)(6486002)(5660300002)(41300700001)(66556008)(6506007)(316002)(2616005)(26005)(6916009)(8936002)(8676002)(31686004)(6512007)(4326008)(54906003)(66476007)(66946007)(508600001)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L2ZOdXZReWRiVEZSM0Z6cDN3dVJMWmpSeGk5eThpMGh2NXNYQkhqYkhPTFR3?=
 =?utf-8?B?R1h0L20rWnNDSmp2QW05N2xZakpXL2pVbDVyamt2ZytCcWZZaVJ4anEyNXFj?=
 =?utf-8?B?cE9jWVZIZEtUeFJnMzhSRlEwZ2JvOTRLci96ampGMUZ4SFRiVDVyT0QwVjVn?=
 =?utf-8?B?MElVTWw1RnhPbEw0Wkdxdk5PMGxSVXpqbmpEVExpZ3hvWWFnR25QK1AvTG1U?=
 =?utf-8?B?VWFoczNMcW53MDJ5c29UUVBxcHJ3eXRIZlB4UEVBclU2eDNxejkwZU14Vk1x?=
 =?utf-8?B?SUdhell6ZUx6MHFIVnU1czBScFJ2cWVEbmlreE9CZkEwekN6UzJva3RLTUx1?=
 =?utf-8?B?YkxMT0UvcFBHZU9jNXd5YWtSRDlWTlM1aXZTY2cwbFBmV2JLb0RoLzBMQzlL?=
 =?utf-8?B?MjhWV0J0OUx6TVBZM3c2ak5wOGFqZmFHc1BaVTlMNG9DRzQ2dzJrZkg0U0s0?=
 =?utf-8?B?OURBYlN5aWF4VDFEeXZXL3pRaUFuZnRsQS9ycVZtaGVJQW5BUTdxcEFDUkVN?=
 =?utf-8?B?azQ2RmNNN3pZb1NXSEhNMVVsVU1GOEFCbDFQNmFpTHlEcm5xSlpBa1ZPTjNX?=
 =?utf-8?B?NnZLbXhkTEVuYUFvNVZFL05sYXo1cllQWVZQcTJObkJQTldIR1Q4V25KV2k3?=
 =?utf-8?B?WHVjZDVlN1ZUazRDeVRpNFhqcjZ2UlhxMzdhaEMzRTY1QVpBZXUwUjFsTTdl?=
 =?utf-8?B?MStsNjhRc2JaSmRGS3JtYVdvUGh4WVhnMkp2TkJYS1U1UjA1Zjc5TzBsUFUr?=
 =?utf-8?B?MWdxaHlvVTNZaGlLVk9uekxpWHF4SW9JVUxBVXU0eEZVT0xLYzBjU282czB4?=
 =?utf-8?B?NFREdHlwaFdSYUJLdWVod1N2RXdxRVFnZ3FRdmRaai9YOVBRQTg2Y1JNMWd5?=
 =?utf-8?B?bEdRU3d3QjdTT2dybksyb1V3aXJUalNodG54ckw1TmlCREZMV0VHMEk4ZGdp?=
 =?utf-8?B?MFkzbVVBR21kQnlKQnpNY1VYbFFmNEYyN28weVIzZ3NXNmVaRklLYjhlbnlL?=
 =?utf-8?B?SDZyS1RzNjlxeGZ3SFNjLzNmaC9xdDZyVm04MDIzMjNlcWV3R2JKQTlyWk43?=
 =?utf-8?B?NnVPZk82VWNWQXMyVGNnNUtPYXlBUU5JWEpVcnlLUHJ0WHYwZVdsejV6VnFU?=
 =?utf-8?B?YUdWbVhlM04zaTlMQkxHdC9EWWZBRjRuNGhtNitqZFVwNDM1eklRUEk4eHZp?=
 =?utf-8?B?VGRWd0ZLdXpBQ1VpR0hSTm1FL2MzbFBoc0U3Y2hKUkFOQlVpSkp0dU94aGph?=
 =?utf-8?B?R3hMMm5Pa2ZuT0FmNDVramdxSERFdnJWU3IwSStHaURNbGZ3ekhuSTRMbG1S?=
 =?utf-8?B?VXdQSWM3b0tTNGcrYjdpOFBpQ3kzT0JmOGpKVTR5ZEk0cmk4ZlcyaTBkU0Zp?=
 =?utf-8?B?a2ZpbGZudkdqVzVuaDNwWWRJajc4eExIWFAwVExoSDdSaXllRXJhazN6emta?=
 =?utf-8?B?ditlcHRJRHc4cGxiWjdkOUFHOFZFbFFiUTk2TTduR3lHM2NzZEJlWS9tczVa?=
 =?utf-8?B?R0xYN1hkUkk0UEhOT2JJSjBwa2ZPZFZsUWxoOUN5NzFieCtkckE4bURINHlB?=
 =?utf-8?B?SzJ1M05qTDlwMUxrcXZ5c2k1aVBGVDN1V3I1c0o4TWhNeU8vc2F3QzRwQTFo?=
 =?utf-8?B?dlREdmFXclAxZW9qNmZKVE91SUN1eGxnYU5Gd3hGdjR5T1B4bVFQRklPUU1C?=
 =?utf-8?B?aEw2Z2RZZkxOMkJHUytwRzdvbXhyZlVCSlFjVUZ5ZGVlSmNBNkpCZG4wblBx?=
 =?utf-8?B?Y29YWTZOa1REOFhDNFBrWWtGNzJoV1dOZ2Zmc1huK2JNYzBaWmtOR0s1ZGFw?=
 =?utf-8?B?WHN3MFlEVEVTczFoVUJ0YzNBaklWYVBoNGo5WXp2elo1ZURmaGV0SlBBK05X?=
 =?utf-8?B?T0tiNWh0QkFPbUtHejF4MzIzQTM2V0s2Q3VVK29PL0d5WmRURVoxRnhGUUg5?=
 =?utf-8?B?WWVHK21PVzllVG45NUluU29rSzRjMzZlZWVnZVNoZzVKeEs1WnVuNkhZRTRV?=
 =?utf-8?B?Wk5JWDc4OEduaFBHRmtjdlBhZDBUUUgzam1vZzNkQ2ViazVsZkRRQzNiYTdp?=
 =?utf-8?B?RXpoSlhGRllNVFBGRjlzRXV0QzdXZlpEelhyKzlzQTRkWXFkNkpTbjNwcFc1?=
 =?utf-8?Q?w5gr2H/QsYFcGViXEpFPGvnhJ?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 951a86c7-6771-4778-b1aa-08dbf251bd17
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 09:41:48.3401
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: x5uegcW5ifP7mBFW7mHASEeL+AqkobVq4DSx5GIBSenTGz9aQYdhZqubxMSSPpZzSb1z8hnTby+ydIEEwxxgpA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7578

On 01.12.2023 09:50, Roger Pau MonnÃ© wrote:
> On Fri, Dec 01, 2023 at 07:53:29AM +0100, Jan Beulich wrote:
>> On 30.11.2023 18:37, Roger Pau MonnÃ© wrote:
>>> On Thu, Nov 30, 2023 at 05:55:07PM +0100, Jan Beulich wrote:
>>>> On 28.11.2023 11:03, Roger Pau Monne wrote:
>>>>> The minimal function size requirements for livepatch are either 5 bytes (for
>>>>> jmp) or 9 bytes (for endbr + jmp).  Ensure that functions are always at least
>>>>> that size by requesting the compiled to align the functions to 8 or 16 bytes,
>>>>> depending on whether Xen is build with IBT support.
>>>>
>>>> How is alignment going to enforce minimum function size? If a function is
>>>> last in a section, there may not be any padding added (ahead of linking at
>>>> least). The trailing padding also isn't part of the function.
>>>
>>> If each function lives in it's own section (by using
>>> -ffunction-sections), and each section is aligned, then I think we can
>>> guarantee that there will always be enough padding space?
>>>
>>> Even the last function/section on the .text block would still be
>>> aligned, and as long as the function alignment <= SECTION_ALIGN
>>> there will be enough padding left.  I should add some build time
>>> assert that CONFIG_CC_FUNCTION_ALIGNMENT <= SECTION_ALIGN.
>>
>> I'm not sure of there being a requirement for a section to be padded to
>> its alignment. If the following section has smaller alignment, it could
>> be made start earlier. Of course our linker scripts might guarantee
>> this ...
> 
> I do think so, given our linker script arrangements for the .text
> section:
> 
> DECL_SECTION(.text) {
>     [...]
> } PHDR(text) = 0x9090
> 
> . = ALIGN(SECTION_ALIGN);
> 
> The end of the text section is aligned to SECTION_ALIGN, so as long as
> SECTION_ALIGN >= CONFIG_CC_FUNCTION_ALIGNMENT the alignment should
> guarantee a minimal function size.
> 
> Do you think it would be clearer if I add the following paragraph:
> 
> "Given the Xen linker script arrangement of the .text section, we can
> ensure that when all functions are aligned to the given boundary the
> function size will always be a multiple of such alignment, even for
> the last function in .text, as the linker script aligns the end of the
> section to SECTION_ALIGN."

I think this would be useful to have there. Beyond that, assembly code
also needs considering btw.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 10:15:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 10:15:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645404.1007575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r90Xn-0008Q7-TL; Fri, 01 Dec 2023 10:14:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645404.1007575; Fri, 01 Dec 2023 10: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 1r90Xn-0008Q0-Qg; Fri, 01 Dec 2023 10:14:47 +0000
Received: by outflank-mailman (input) for mailman id 645404;
 Fri, 01 Dec 2023 10:14:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hHVa=HM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1r90Xl-0008Pu-SD
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 10:14:45 +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 729c98bd-9032-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 11:14:44 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 818E921BD7;
 Fri,  1 Dec 2023 10:14: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 524501379A;
 Fri,  1 Dec 2023 10:14:42 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id DllpEhKyaWUDXgAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 01 Dec 2023 10:14: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: 729c98bd-9032-11ee-98e5-6d05b1d4d9a1
Message-ID: <29d97321-f4f0-4472-bb7d-92f4fbb87105@suse.com>
Date: Fri, 1 Dec 2023 11:14:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 27/29] tools/xenstored: add helpers for filename
 handling
Content-Language: en-US
To: Jason Andryuk <jandryuk@gmail.com>
Cc: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org,
 Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>
References: <20231110160804.29021-1-jgross@suse.com>
 <20231110160804.29021-28-jgross@suse.com>
 <369145c5-0bcd-42e5-aff3-b2e58549674e@xen.org>
 <e3376d27-3b36-4290-8f7a-e99db1e2fbbf@suse.com>
 <2f024e6b-8f4b-4784-a1ef-1acb04c5a4dc@xen.org>
 <f15e5a60-e1b0-445b-9374-f8feda10f0b0@suse.com>
 <b18acbe0-b8f9-47d6-a85d-c4a7bd158809@xen.org>
 <34c2307e-f99d-41ab-b76c-948389c64bd0@suse.com>
 <CAKf6xpsupA-eR_KLgncv-DPqNzLKxU=h_fxJfJ4F7kpfTgTQ3w@mail.gmail.com>
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: <CAKf6xpsupA-eR_KLgncv-DPqNzLKxU=h_fxJfJ4F7kpfTgTQ3w@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------fZV0xUg1CkvVb7ndFnqa4X55"
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FREEMAIL_TO(0.00)[gmail.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: 818E921BD7
X-Spam-Flag: YES
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------fZV0xUg1CkvVb7ndFnqa4X55
Content-Type: multipart/mixed; boundary="------------SqGS3DRR5bVPMIKfoTY9dAcR";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jason Andryuk <jandryuk@gmail.com>
Cc: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org,
 Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <29d97321-f4f0-4472-bb7d-92f4fbb87105@suse.com>
Subject: Re: [PATCH v2 27/29] tools/xenstored: add helpers for filename
 handling
References: <20231110160804.29021-1-jgross@suse.com>
 <20231110160804.29021-28-jgross@suse.com>
 <369145c5-0bcd-42e5-aff3-b2e58549674e@xen.org>
 <e3376d27-3b36-4290-8f7a-e99db1e2fbbf@suse.com>
 <2f024e6b-8f4b-4784-a1ef-1acb04c5a4dc@xen.org>
 <f15e5a60-e1b0-445b-9374-f8feda10f0b0@suse.com>
 <b18acbe0-b8f9-47d6-a85d-c4a7bd158809@xen.org>
 <34c2307e-f99d-41ab-b76c-948389c64bd0@suse.com>
 <CAKf6xpsupA-eR_KLgncv-DPqNzLKxU=h_fxJfJ4F7kpfTgTQ3w@mail.gmail.com>
In-Reply-To: <CAKf6xpsupA-eR_KLgncv-DPqNzLKxU=h_fxJfJ4F7kpfTgTQ3w@mail.gmail.com>

--------------SqGS3DRR5bVPMIKfoTY9dAcR
Content-Type: multipart/mixed; boundary="------------bNUS5DO0mcum7QD5HWTOIazs"

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

T24gMjguMTEuMjMgMjE6NDIsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIFdlZCwgTm92
IDE1LCAyMDIzIGF0IDE6MTTigK9BTSBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
IHdyb3RlOg0KPj4NCj4+IE9uIDE0LjExLjIzIDIxOjUzLCBKdWxpZW4gR3JhbGwgd3JvdGU6
DQo+Pj4gSGkgSnVlcmdlbiwNCj4+Pg0KPj4+IE9uIDE0LzExLzIwMjMgMDk6MjYsIEp1ZXJn
ZW4gR3Jvc3Mgd3JvdGU6DQo+Pj4+IE9uIDE0LjExLjIzIDEwOjEwLCBKdWxpZW4gR3JhbGwg
d3JvdGU6DQo+Pj4+PiBIaSBKdWVyZ2VuLA0KPj4+Pj4NCj4+Pj4+IE9uIDE0LzExLzIwMjMg
MDY6NDUsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+Pj4+Pj4gT24gMTMuMTEuMjMgMjM6MjUs
IEp1bGllbiBHcmFsbCB3cm90ZToNCj4+Pj4+Pj4gSGkgSnVlcmdlbiwNCj4+Pj4+Pj4NCj4+
Pj4+Pj4gT24gMTAvMTEvMjAyMyAxNjowOCwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+Pj4+
Pj4+IGRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZWQvbHVfZGFlbW9uLmMgYi90b29scy94
ZW5zdG9yZWQvbHVfZGFlbW9uLmMNCj4+Pj4+Pj4+IGluZGV4IDcxYmNhYmFkZDMuLjYzNTEx
MTFhYjAgMTAwNjQ0DQo+Pj4+Pj4+PiAtLS0gYS90b29scy94ZW5zdG9yZWQvbHVfZGFlbW9u
LmMNCj4+Pj4+Pj4+ICsrKyBiL3Rvb2xzL3hlbnN0b3JlZC9sdV9kYWVtb24uYw0KPj4+Pj4+
Pj4gQEAgLTI0LDcgKzI0LDcgQEAgdm9pZCBsdV9nZXRfZHVtcF9zdGF0ZShzdHJ1Y3QgbHVf
ZHVtcF9zdGF0ZSAqc3RhdGUpDQo+Pj4+Pj4+PiAgICAgICAgc3RhdGUtPnNpemUgPSAwOw0K
Pj4+Pj4+Pj4gICAgICAgIHN0YXRlLT5maWxlbmFtZSA9IHRhbGxvY19hc3ByaW50ZihOVUxM
LCAiJXMvc3RhdGVfZHVtcCIsDQo+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgIHhl
bnN0b3JlX2RhZW1vbl9ydW5kaXIoKSk7DQo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAg
ICAgIHhlbnN0b3JlX3J1bmRpcigpKTsNCj4+Pj4+Pj4NCj4+Pj4+Pj4gLi4uIGNhbGwgYW5k
IC4uLg0KPj4+Pj4+Pg0KPj4+Pj4+Pj4gICAgICAgIGlmICghc3RhdGUtPmZpbGVuYW1lKQ0K
Pj4+Pj4+Pj4gICAgICAgICAgICBiYXJmKCJBbGxvY2F0aW9uIGZhaWx1cmUiKTsNCj4+Pj4+
Pj4+IEBAIC02NSw3ICs2NSw3IEBAIEZJTEUgKmx1X2R1bXBfb3Blbihjb25zdCB2b2lkICpj
dHgpDQo+Pj4+Pj4+PiAgICAgICAgaW50IGZkOw0KPj4+Pj4+Pj4gICAgICAgIGZpbGVuYW1l
ID0gdGFsbG9jX2FzcHJpbnRmKGN0eCwgIiVzL3N0YXRlX2R1bXAiLA0KPj4+Pj4+Pj4gLSAg
ICAgICAgICAgICAgICAgICB4ZW5zdG9yZV9kYWVtb25fcnVuZGlyKCkpOw0KPj4+Pj4+Pj4g
KyAgICAgICAgICAgICAgICAgICB4ZW5zdG9yZV9ydW5kaXIoKSk7DQo+Pj4+Pj4+DQo+Pj4+
Pj4+IC4uLiB0aGlzIG9uZSBjb3VsZCBiZSByZXBsYWNlZCB3aXRoIGFic29sdXRlX2ZpbGVu
YW1lKCkuDQo+Pj4+Pj4NCj4+Pj4+PiBObywgSSBkb24ndCB0aGluayB0aGlzIGlzIGEgZ29v
ZCBpZGVhLg0KPj4+Pj4+DQo+Pj4+Pj4gSSBkb24ndCB3YW50IHRoZSBkYWVtb24gdG8gc3Rv
cmUgdHJhY2UgZmlsZXMgc3BlY2lmaWVkIGFzIHJlbGF0aXZlIGZpbGVzDQo+Pj4+Pj4gdG8g
YmUgc3RvcmVkIGluIC92YXIvcnVuL3hlbiwgd2hpbGUgSSB3YW50IGFsbCBmaWxlcyBvZiB0
aGUgc3R1YmRvbSB0byBiZQ0KPj4+Pj4+IHN0b3JlZCB1bmRlciAvdmFyL2xpYi94ZW4uDQo+
Pj4+Pg0KPj4+Pj4gV2h5PyBUaGlzIGlzIGEgYml0IG9kZCB0byBoYXZlIGEgZGlmZmVyZW50
IGJlaGF2aW9yIGJldHdlZW4gc3R1YmRvbSBhbmQNCj4+Pj4+IGRhZW1vbi4gSXQgd291bGQg
YmUgbXVjaCBlYXNpZXIgZm9yIHRoZSB1c2VyIGlmIHRoZXkga25ldyBhbGwgdGhlIGZpbGVz
IHdvdWxkDQo+Pj4+PiBiZSBhdCB0aGUgc2FtZSBwbGFjZSByZWdhcmRsZXNzIHRoZSB2ZXJz
aW9uIHVzZWQuDQo+Pj4+DQo+Pj4+IFRoZSBtYWluIGRpZmZlcmVuY2UgaXMgdGhhdCBzdHVi
ZG9tIGhhcyBhY2Nlc3MgdG8gb25seSBfb25lXyBkaXJlY3RvcnkgaW4gZG9tMC4NCj4+Pg0K
Pj4+IFdvdWxkIHlvdSBiZSBhYmxlIHRvIGV4cGxhaW4gd2h5IHdlIGNhbiBvbmx5IGdpdmUg
YWNjZXNzIHRvIGEgc2luZ2xlIGRpcmVjdG9yeT8NCj4+PiBJcyB0aGlzIGJlY2F1c2Ugb2Yg
dGhlIDlwZnMgcHJvdG9jb2w/DQo+Pg0KPj4gWWVzLiBJIGNhbiBtb3VudCBhIHNwZWNpZmlj
IGRvbTAgZGlyZWN0b3J5IGluIHRoZSBndWVzdC4NCj4gDQo+IEknbSBmaW5lIHdpdGggYSBz
aW5nbGUgZGlyZWN0b3J5IGJlaW5nIHVzZWQgZm9yIHN0dWJkb20uICBUd28NCj4gZGlyZWN0
b3JpZXMgY291bGQgYmUgZXhwb3J0ZWQsIGFuZCBtaW5pLW9zIHdvdWxkIG5lZWQgdG8gdXNl
IHRoZSAidGFnIg0KPiB0byBkaWZmZXJlbnRpYXRlIHRoZSB0d28uICBUaGF0IG1heSBub3Qg
YmUgd29ydGggdGhlIGFkZGVkIGNvZGUuICBRRU1VDQo+IGNhbiBwcm92aWRlIG11bHRpcGxl
IDlwZnMgZXhwb3J0cyBhbmQgTGludXggY2FuIG1vdW50IHRoZW0gYnkgdGFnDQo+IG5hbWUu
DQoNClRoZSBtYWluIHRoaW5nIGlzIHRoYXQgdGhlIGRhZW1vbiBpcyBtZWFudCB0byBzb2x2
ZSBleGFjdGx5IG9uZSBwcm9ibGVtOg0KaGF2aW5nIGEgd2F5IHRvIGVuYWJsZSBpbmZyYXN0
cnVjdHVyZSBkb21haW5zIChYZW5zdG9yZS1zdHViZG9tLCBkcml2ZXINCmRvbWFpbnMsIGRl
dmljZS1tb2RlbCBzdHViZG9tcykgdG8gYWNjZXNzIHNvbWUgZmV3IGZpbGVzIGluIGRvbTAs
IGUuZy4gZm9yDQpsb2dnaW5nIG9yIGNvbmZpZyBwdXJwb3Nlcy4NCg0KVGhlIGRhZW1vbiBz
aG91bGQgYmUgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIGFuZCwgb2YgY291cnNlLCBoYXZlIHdh
eXMgdG8NCmNvbnRyb2wgcmVzb3VyY2UgdXNhZ2UgKGZpbGUgc3lzdGVtIHNwYWNlKSB1c2Vk
IGJ5IHRoZSBkb21VcyBjb25maWd1cmVkIHRvDQp1c2UgaXQuDQoNCkl0IHNob3VsZCBfbm90
XyBiZSBhIGEgcmVwbGFjZW1lbnQgb2YgdGhlIGZ1bGwtYmxvd24gYmFja2VuZCBpbiBlLmcu
IHFlbXUuDQoNCg0KSnVlcmdlbg0K
--------------bNUS5DO0mcum7QD5HWTOIazs
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-----

--------------bNUS5DO0mcum7QD5HWTOIazs--

--------------SqGS3DRR5bVPMIKfoTY9dAcR--

--------------fZV0xUg1CkvVb7ndFnqa4X55
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/Ey8FAmVpshEFAwAAAAAACgkQsN6d1ii/Ey8l
nwgAmpIO8td5RpUlPFPvD9OmiEDzd9XPJIO5y/WlqFUJrHQCesuv71SHO9UtW1acfFUCDXJe/Wiq
D3nLfoZDoYhw5xRDC80NEa4IxJ+FJWB94m39/2WKX3FeLtg5yVcbeIR2Q48kmaLVlaqIhcR/gmVy
yXajPrQ1Mr4u6+VNr+PoOyBF0R1IiYWjXsLCY1y5QJz99XiEZUvGW4I9Qx+AnhKVrSKRuZYFDl2M
raXc8rQGwClfq/ne2pMio2Ry10ng1ifPsFDmZt3LHvop8q5JkDFYRXcmpeYvbi0TeiEV6pVZ20S4
Zq9Sr95MAJyO+0Bg8Ir7v2WuLcR5s8miJZNEIH4FVg==
=2NnA
-----END PGP SIGNATURE-----

--------------fZV0xUg1CkvVb7ndFnqa4X55--


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 10:16:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 10:16:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645407.1007586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r90Zm-00010H-Al; Fri, 01 Dec 2023 10:16:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645407.1007586; Fri, 01 Dec 2023 10:16:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r90Zm-00010A-73; Fri, 01 Dec 2023 10:16:50 +0000
Received: by outflank-mailman (input) for mailman id 645407;
 Fri, 01 Dec 2023 10:16:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r90Zk-000104-W6
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 10:16:49 +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 bbb6812e-9032-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 11:16:46 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-409299277bbso17663365e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 02:16:46 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 i2-20020adffc02000000b003330aede2aesm3794272wrr.112.2023.12.01.02.16.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 02:16:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bbb6812e-9032-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701425805; x=1702030605; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=jciKMP6po+K/q4Dd9cKv3sKK5Sp8ltc167UDkVfBu5I=;
        b=Ui1+3dKN6hWb2G9TJeyGrQ1lYAGm+o70eAbcK4YTlOQgwRVavh9R1Sy5HzAjn1uI/m
         0cm+BPOb5CJawsaqOWxkAyzVyLvIXNkxQHTn4Sdy2FPMov6e+8FnLqdobxr+jMUdE/ZO
         hpZAZHtgLH59XpikpMo5EvUdIGH9EarLQ77Qk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701425805; x=1702030605;
        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=jciKMP6po+K/q4Dd9cKv3sKK5Sp8ltc167UDkVfBu5I=;
        b=FgZqXQ85LpACb9VqsgpB7PCxTOJOQ9JqETalS5Y4ief7KtDYN7s19H/EeaVg5I+KK4
         Q7KNn33PnEUmbOrQY8+3qRMn0XY7/ZSC5Z2k1yppUzlwIZQ2lRPX+CQe5Nfa3o4Le7rm
         7E0Y6bNuiBxg7Mq6xlkNyS+pUY43QQfijzkfNT5I8n4ePoZkNPgyXoNyNJjz+J555s8O
         RXPjrkBC08bEzxpl+Pkx3pLPZRFfURxWs0Z7Dkskzl3t75UgWqZPMSmSZrgwiK6Wp1jO
         re1EOACEQ33mnbhgBq2FeQ5UozEY3mPRZpcZTc2ffYi1c7NfrOevsxeUGLJGvSD7PJuv
         exeA==
X-Gm-Message-State: AOJu0Yys95s9BwXvuKZEeqWN0xSmfXo77+EgSAqbTf3Re+4mNezzHpiB
	kdy5fIH/2xxsMO4+1XxSSl+jfqzpT8yevVxdIEg=
X-Google-Smtp-Source: AGHT+IGzpW/+VYsYcr1M2CjnF+ANNlERueZhmpASfMLJKryBD776Lo2SvnI4vrGa3gesdDjNI39oVw==
X-Received: by 2002:a05:600c:4749:b0:40b:5e1c:5c18 with SMTP id w9-20020a05600c474900b0040b5e1c5c18mr319784wmo.45.1701425805440;
        Fri, 01 Dec 2023 02:16:45 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH] xen/livepatch: make .livepatch.funcs read-only for in-tree tests
Date: Fri,  1 Dec 2023 11:16:41 +0100
Message-ID: <20231201101641.51198-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This matches the flags of the .livepatch.funcs section when generated using
livepatch-build-tools, which only sets the SHT_ALLOC flag.

Also constify the definitions of the livepatch_func variables in the tests
themselves, in order to better match the resulting output.  Note that just
making those variables constant is not enough to force the generated sections
to be read-only.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/test/livepatch/Makefile                    | 5 ++++-
 xen/test/livepatch/xen_action_hooks.c          | 3 ++-
 xen/test/livepatch/xen_action_hooks_marker.c   | 3 ++-
 xen/test/livepatch/xen_action_hooks_noapply.c  | 3 ++-
 xen/test/livepatch/xen_action_hooks_norevert.c | 3 ++-
 xen/test/livepatch/xen_bye_world.c             | 3 ++-
 xen/test/livepatch/xen_expectations.c          | 3 ++-
 xen/test/livepatch/xen_expectations_fail.c     | 3 ++-
 xen/test/livepatch/xen_hello_world.c           | 3 ++-
 xen/test/livepatch/xen_nop.c                   | 2 +-
 xen/test/livepatch/xen_prepost_hooks.c         | 3 ++-
 xen/test/livepatch/xen_prepost_hooks_fail.c    | 3 ++-
 xen/test/livepatch/xen_replace_world.c         | 3 ++-
 13 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/xen/test/livepatch/Makefile b/xen/test/livepatch/Makefile
index d987a8367f15..4caa9e24324e 100644
--- a/xen/test/livepatch/Makefile
+++ b/xen/test/livepatch/Makefile
@@ -142,7 +142,10 @@ xen_expectations_fail-objs := xen_expectations_fail.o xen_hello_world_func.o not
 
 
 quiet_cmd_livepatch = LD      $@
-cmd_livepatch = $(LD) $(XEN_LDFLAGS) $(build_id_linker) -r -o $@ $(real-prereqs)
+define cmd_livepatch
+    $(LD) $(XEN_LDFLAGS) $(build_id_linker) -r -o $@ $(real-prereqs); \
+    $(OBJCOPY) --set-section-flags ".livepatch.funcs=alloc,readonly" $@
+endef
 
 $(obj)/%.livepatch: FORCE
 	$(call if_changed,livepatch)
diff --git a/xen/test/livepatch/xen_action_hooks.c b/xen/test/livepatch/xen_action_hooks.c
index fa0b3ab35f38..30c2c5de3c82 100644
--- a/xen/test/livepatch/xen_action_hooks.c
+++ b/xen/test/livepatch/xen_action_hooks.c
@@ -84,7 +84,8 @@ LIVEPATCH_REVERT_HOOK(revert_hook);
 
 LIVEPATCH_POSTREVERT_HOOK(post_revert_hook);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_xen_hello_world = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_xen_hello_world = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = hello_world_patch_this_fnc,
     .new_addr = xen_hello_world,
diff --git a/xen/test/livepatch/xen_action_hooks_marker.c b/xen/test/livepatch/xen_action_hooks_marker.c
index d2e22f70d1f4..eb31a4abc48b 100644
--- a/xen/test/livepatch/xen_action_hooks_marker.c
+++ b/xen/test/livepatch/xen_action_hooks_marker.c
@@ -96,7 +96,8 @@ LIVEPATCH_POSTAPPLY_HOOK(post_apply_hook);
 LIVEPATCH_PREREVERT_HOOK(pre_revert_hook);
 LIVEPATCH_POSTREVERT_HOOK(post_revert_hook);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_xen_hello_world = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_xen_hello_world = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = hello_world_patch_this_fnc,
     .new_addr = xen_hello_world,
diff --git a/xen/test/livepatch/xen_action_hooks_noapply.c b/xen/test/livepatch/xen_action_hooks_noapply.c
index 646a5fd2f002..92d10d53ffc1 100644
--- a/xen/test/livepatch/xen_action_hooks_noapply.c
+++ b/xen/test/livepatch/xen_action_hooks_noapply.c
@@ -120,7 +120,8 @@ LIVEPATCH_POSTAPPLY_HOOK(post_apply_hook);
 LIVEPATCH_PREREVERT_HOOK(pre_revert_hook);
 LIVEPATCH_POSTREVERT_HOOK(post_revert_hook);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_xen_hello_world = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_xen_hello_world = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = hello_world_patch_this_fnc,
     .new_addr = xen_hello_world,
diff --git a/xen/test/livepatch/xen_action_hooks_norevert.c b/xen/test/livepatch/xen_action_hooks_norevert.c
index cdfff156cede..0f31faa8f386 100644
--- a/xen/test/livepatch/xen_action_hooks_norevert.c
+++ b/xen/test/livepatch/xen_action_hooks_norevert.c
@@ -115,7 +115,8 @@ LIVEPATCH_POSTAPPLY_HOOK(post_apply_hook);
 LIVEPATCH_PREREVERT_HOOK(pre_revert_hook);
 LIVEPATCH_POSTREVERT_HOOK(post_revert_hook);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_xen_hello_world = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_xen_hello_world = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = hello_world_patch_this_fnc,
     .new_addr = xen_hello_world,
diff --git a/xen/test/livepatch/xen_bye_world.c b/xen/test/livepatch/xen_bye_world.c
index 2700f0eeddd2..86589205d8bd 100644
--- a/xen/test/livepatch/xen_bye_world.c
+++ b/xen/test/livepatch/xen_bye_world.c
@@ -14,7 +14,8 @@
 static const char bye_world_patch_this_fnc[] = "xen_extra_version";
 extern const char *xen_bye_world(void);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_xen_bye_world = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_xen_bye_world = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = bye_world_patch_this_fnc,
     .new_addr = xen_bye_world,
diff --git a/xen/test/livepatch/xen_expectations.c b/xen/test/livepatch/xen_expectations.c
index c8175a458b3c..06c752c81827 100644
--- a/xen/test/livepatch/xen_expectations.c
+++ b/xen/test/livepatch/xen_expectations.c
@@ -15,7 +15,8 @@
 static const char livepatch_exceptions_str[] = "xen_extra_version";
 extern const char *xen_hello_world(void);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_exceptions = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_exceptions = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = livepatch_exceptions_str,
     .new_addr = xen_hello_world,
diff --git a/xen/test/livepatch/xen_expectations_fail.c b/xen/test/livepatch/xen_expectations_fail.c
index 36a110286faf..f42c19a953d1 100644
--- a/xen/test/livepatch/xen_expectations_fail.c
+++ b/xen/test/livepatch/xen_expectations_fail.c
@@ -16,7 +16,8 @@ extern const char *xen_hello_world(void);
 
 #define EXPECT_BYTES_COUNT 6
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_exceptions = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_exceptions = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = livepatch_exceptions_str,
     .new_addr = xen_hello_world,
diff --git a/xen/test/livepatch/xen_hello_world.c b/xen/test/livepatch/xen_hello_world.c
index 02f3f85dc062..08ab2f197e2c 100644
--- a/xen/test/livepatch/xen_hello_world.c
+++ b/xen/test/livepatch/xen_hello_world.c
@@ -47,7 +47,8 @@ LIVEPATCH_UNLOAD_HOOK(hi_func);
 
 LIVEPATCH_UNLOAD_HOOK(check_fnc);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_xen_hello_world = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_xen_hello_world = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = hello_world_patch_this_fnc,
     .new_addr = xen_hello_world,
diff --git a/xen/test/livepatch/xen_nop.c b/xen/test/livepatch/xen_nop.c
index a224b7c67073..6dea657365fb 100644
--- a/xen/test/livepatch/xen_nop.c
+++ b/xen/test/livepatch/xen_nop.c
@@ -14,7 +14,7 @@
  * running this test-case you MUST verify that the assumptions are
  * correct (Hint: make debug and look in xen.s).
  */
-struct livepatch_func __section(".livepatch.funcs") livepatch_nop = {
+const struct livepatch_func __section(".livepatch.funcs") livepatch_nop = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .old_size = MINOR_VERSION_SZ,
 
diff --git a/xen/test/livepatch/xen_prepost_hooks.c b/xen/test/livepatch/xen_prepost_hooks.c
index 17f5af6a1921..00b0b3abb08e 100644
--- a/xen/test/livepatch/xen_prepost_hooks.c
+++ b/xen/test/livepatch/xen_prepost_hooks.c
@@ -102,7 +102,8 @@ LIVEPATCH_POSTAPPLY_HOOK(post_apply_hook);
 LIVEPATCH_PREREVERT_HOOK(pre_revert_hook);
 LIVEPATCH_POSTREVERT_HOOK(post_revert_hook);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_xen_hello_world = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_xen_hello_world = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = hello_world_patch_this_fnc,
     .new_addr = xen_hello_world,
diff --git a/xen/test/livepatch/xen_prepost_hooks_fail.c b/xen/test/livepatch/xen_prepost_hooks_fail.c
index 52fd7f642ecb..8497715646ec 100644
--- a/xen/test/livepatch/xen_prepost_hooks_fail.c
+++ b/xen/test/livepatch/xen_prepost_hooks_fail.c
@@ -55,7 +55,8 @@ LIVEPATCH_POSTAPPLY_HOOK(unreachable_post_hook);
 LIVEPATCH_PREREVERT_HOOK(unreachable_pre_hook);
 LIVEPATCH_POSTREVERT_HOOK(unreachable_post_hook);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_xen_hello_world = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_xen_hello_world = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = hello_world_patch_this_fnc,
     .new_addr = xen_hello_world,
diff --git a/xen/test/livepatch/xen_replace_world.c b/xen/test/livepatch/xen_replace_world.c
index 78a8f528b3d5..272cc55e825a 100644
--- a/xen/test/livepatch/xen_replace_world.c
+++ b/xen/test/livepatch/xen_replace_world.c
@@ -13,7 +13,8 @@
 static const char xen_replace_world_name[] = "xen_extra_version";
 extern const char *xen_replace_world(void);
 
-struct livepatch_func __section(".livepatch.funcs") livepatch_xen_replace_world = {
+const struct livepatch_func __section(".livepatch.funcs")
+livepatch_xen_replace_world = {
     .version = LIVEPATCH_PAYLOAD_VERSION,
     .name = xen_replace_world_name,
     .old_addr = 0, /* Forces the hypervisor to lookup .name */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 10:21:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 10:21:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645414.1007596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r90eF-0003Z6-Sl; Fri, 01 Dec 2023 10:21:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645414.1007596; Fri, 01 Dec 2023 10:21:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r90eF-0003Yz-Pb; Fri, 01 Dec 2023 10:21:27 +0000
Received: by outflank-mailman (input) for mailman id 645414;
 Fri, 01 Dec 2023 10:21:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r90eF-0003Yt-6C
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 10:21:27 +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 61b529d8-9033-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 11:21:25 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-50bce40bc4aso2154678e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 02:21:25 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 q13-20020a05600c46cd00b004063c9f68f2sm4960019wmo.26.2023.12.01.02.21.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 02:21:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61b529d8-9033-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701426085; x=1702030885; 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=AEQPU2rhvo5MhW8JkaKGRulutl+AEknQY9vTs48oRYA=;
        b=TjI/IEmA8MLvjULWyjrtmxcLsdx2s2L90aFyx7UNKGvwpwFw0YhKn2S5rgjKBbh06a
         nBapd9iJRzRu+1TpPpvpVqbZt780zTKw7+160BhjhZnuB67/NqKVtk+L32rzWHGFsiu0
         UngcPg9RalcZ5LdS0JuvELKpqEcYXQc+jdNZg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701426085; x=1702030885;
        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=AEQPU2rhvo5MhW8JkaKGRulutl+AEknQY9vTs48oRYA=;
        b=s5z0VCk/OwhIHEFLRxmyAKDOmALtKE5GcbDCeE737efftOkXG5WIdsL5/bNAyzwyR6
         vDArxSUfuQHe5DSp41T8kwEBoOYvNiz3wmyK6w8TG63KJXv2j1pXStW5bwOFIaH3+sxf
         NHSkvfTxZfv2NIn0Yen7iuFgjxBxSQnX6xPbWxf3YBv26Bi9EguTv+Y/ujs9QJ6/fA96
         FjwvfRDlfY/hYncBFqcB8MiYC3Dkr0UysLe+J3u+eeBgcXbrj1ZkTjySOX49yhECAab3
         Ix7Y0vv6YXlz6/mHTwG98M5tgSa4aQ59UIm/mugcatOm33spmSOk+FwbA9YDVIwEpGQq
         zo+Q==
X-Gm-Message-State: AOJu0YzjdtEwvuKinb7en8FL1k/rkPEXIa5udlfT+m4sgQmIVpadvkuM
	sUwBJP58KBAbX1K6tNjLlByixg==
X-Google-Smtp-Source: AGHT+IGaXF8PdxB8e8Fn7nEGyovZItPoDZU7zx5DZrDYxfUHOhVHjWk4dEzZI2K6YfxwhI7bdEb/tg==
X-Received: by 2002:a05:6512:33cb:b0:50b:d764:803d with SMTP id d11-20020a05651233cb00b0050bd764803dmr770965lfg.112.1701426084782;
        Fri, 01 Dec 2023 02:21:24 -0800 (PST)
Date: Fri, 1 Dec 2023 11:21:23 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Message-ID: <ZWmzo68abRmRtfwN@macbook>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <a65aafed-68c0-41dd-bf4d-3eeff87dd5d3@suse.com>
 <ZWjIX0Jo5gW5SEDr@macbook>
 <d0a4f187-4e84-4e0d-b478-6d8437a0b644@suse.com>
 <ZWmeV-y5RpGAG5cS@macbook>
 <0d9bc0cd-3719-4961-ae7d-3e27508000a2@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0d9bc0cd-3719-4961-ae7d-3e27508000a2@suse.com>

On Fri, Dec 01, 2023 at 10:41:45AM +0100, Jan Beulich wrote:
> On 01.12.2023 09:50, Roger Pau MonnÃ© wrote:
> > On Fri, Dec 01, 2023 at 07:53:29AM +0100, Jan Beulich wrote:
> >> On 30.11.2023 18:37, Roger Pau MonnÃ© wrote:
> >>> On Thu, Nov 30, 2023 at 05:55:07PM +0100, Jan Beulich wrote:
> >>>> On 28.11.2023 11:03, Roger Pau Monne wrote:
> >>>>> The minimal function size requirements for livepatch are either 5 bytes (for
> >>>>> jmp) or 9 bytes (for endbr + jmp).  Ensure that functions are always at least
> >>>>> that size by requesting the compiled to align the functions to 8 or 16 bytes,
> >>>>> depending on whether Xen is build with IBT support.
> >>>>
> >>>> How is alignment going to enforce minimum function size? If a function is
> >>>> last in a section, there may not be any padding added (ahead of linking at
> >>>> least). The trailing padding also isn't part of the function.
> >>>
> >>> If each function lives in it's own section (by using
> >>> -ffunction-sections), and each section is aligned, then I think we can
> >>> guarantee that there will always be enough padding space?
> >>>
> >>> Even the last function/section on the .text block would still be
> >>> aligned, and as long as the function alignment <= SECTION_ALIGN
> >>> there will be enough padding left.  I should add some build time
> >>> assert that CONFIG_CC_FUNCTION_ALIGNMENT <= SECTION_ALIGN.
> >>
> >> I'm not sure of there being a requirement for a section to be padded to
> >> its alignment. If the following section has smaller alignment, it could
> >> be made start earlier. Of course our linker scripts might guarantee
> >> this ...
> > 
> > I do think so, given our linker script arrangements for the .text
> > section:
> > 
> > DECL_SECTION(.text) {
> >     [...]
> > } PHDR(text) = 0x9090
> > 
> > . = ALIGN(SECTION_ALIGN);
> > 
> > The end of the text section is aligned to SECTION_ALIGN, so as long as
> > SECTION_ALIGN >= CONFIG_CC_FUNCTION_ALIGNMENT the alignment should
> > guarantee a minimal function size.
> > 
> > Do you think it would be clearer if I add the following paragraph:
> > 
> > "Given the Xen linker script arrangement of the .text section, we can
> > ensure that when all functions are aligned to the given boundary the
> > function size will always be a multiple of such alignment, even for
> > the last function in .text, as the linker script aligns the end of the
> > section to SECTION_ALIGN."
> 
> I think this would be useful to have there. Beyond that, assembly code
> also needs considering btw.

Assembly will get dealt with once we start to also have separate
sections for each assembly function.  We cannot patch assembly code at
the moment anyway, due to lack of debug symbols.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 10:28:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 10:28:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645423.1007606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r90ki-0005FD-Lh; Fri, 01 Dec 2023 10:28:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645423.1007606; Fri, 01 Dec 2023 10: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 1r90ki-0005F6-Il; Fri, 01 Dec 2023 10:28:08 +0000
Received: by outflank-mailman (input) for mailman id 645423;
 Fri, 01 Dec 2023 10:28:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=utmH=HM=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1r90kg-0005F0-RS
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 10:28:06 +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 5068ea98-9034-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 11:28:05 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-50aab20e828so2663142e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 02:28:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5068ea98-9034-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701426485; x=1702031285; 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=YOi/IZlhtuMOLW2rHivITZeySZ7C8HA3I2qnegsFBcg=;
        b=Ni8FraLF6WNHqSwYqd30rzPzV5q2/mqhYglGbUbkzui4eLNfC/7B5lJWwKcduFA3xx
         R95w/s9yUlICeVCrxkFqhYVT7FgPcFQttxYIm+/07iW10vAwyqx7vA9kX868Uasu2uWN
         RvRZHLS5qK/xaTzG/mtO5zcb5gvo1Eo1iOvQ8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701426485; x=1702031285;
        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=YOi/IZlhtuMOLW2rHivITZeySZ7C8HA3I2qnegsFBcg=;
        b=gJQXTf6i8YD4esF8TemxusXbGmwmBYR7XT6S+7fmKjHOXt0sGBG0evzPZxXL4KAtjy
         4IhJQElEARJ4TmoUhaGOz+PRjn23a+J0O7yXQluZicPySSOYKhp6QIyLla8B1F0S8Xux
         IElQDdd1b8r8uL6cJbQIgV9SKlIOJ2EpgdySkcG+TVRlskr5EinznbkcxI2gQ9oASKi1
         7nfPli2hkKnN5fXm1Fiuca9NwzO6HjC57yThDCS1VFzJmUke0Pa9zh/0TOTvmMK1gbAI
         gn6d9R1aQIin9aB813lsSKaGlrJp7UQ+G+0NMSBsAGclWIgrM4TaqILQTC0HwXMO+Gbp
         ioPg==
X-Gm-Message-State: AOJu0YxMze4mhmVt43vkS9tGcbC2N72yUDNGOCLZfUvKHam/AVLdMMOY
	ERGwVDsm8S1+rWbArKJgMcpSu7oSbH/KzZqx75RSng==
X-Google-Smtp-Source: AGHT+IEAd1y5gitDsOCYPCP9HJZ/isWP2k7acIeMKAjAvnQcV7pYF+N4YRENUrM96l8EDkWL36tRl0CW1Db1Nk60NVo=
X-Received: by 2002:a19:8c50:0:b0:50b:cf58:af16 with SMTP id
 i16-20020a198c50000000b0050bcf58af16mr493876lfj.1.1701426485148; Fri, 01 Dec
 2023 02:28:05 -0800 (PST)
MIME-Version: 1.0
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
From: George Dunlap <george.dunlap@cloud.com>
Date: Fri, 1 Dec 2023 10:27:53 +0000
Message-ID: <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Kelly Choi <kelly.choi@cloud.com>, xen-devel@lists.xenproject.org, 
	committers@xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 30, 2023 at 10:28=E2=80=AFPM Stefano Stabellini
<sstabellini@kernel.org> wrote:
>
> Hi all,
>
> This vote is in the context of this thread:
> https://marc.info/?l=3Dxen-devel&m=3D169213351810075

To add slightly more context.

The issue here is more than a simple "should we use the word broken or
not".  We already have a mechanism for resolving this, which is that
the maintainers of the code in question (in this case THE REST), can
vote.  In any case, on that thread, four of THE REST were opposed to
using the word "broken" in technical documentation, and one in favor.

However -- and I hope I'm not misrepresenting Andy here -- Andy thinks
that position is preposterous, and that this kind of request is a
clear example of a kind of a pattern of unreasonable review which is
damaging to the project and driving away contributors.  Daniel Smith
at least supported the use of the word "broken" in that thread as
well; and (hoping I'm not reading too much into it), the tone of
writing also suggests a level of exasperation.  Andy seems to think
there are others who agree with him as well. This specific issue has
been sort of simmering in the background since August, and we're
trying to get it resolved.

In my discussions with Andy, trying to understand his point of view,
we always reach a sort of impasse, where Andy thinks the majority of
contributors would agree with him, that insisting on removing "broken"
is a completely unreasonable request; and I think that the majority of
contributors would agree with me, that insisting on removing "broken"
is a simple enforcement of long-established norms about how technical
documentation is written.

Everyone would agree, I think, that community norms should be upheld;
everyone agrees that unreasonable nitpicking or imposition of personal
idiosyncratic preferences should be avoided; but in this case we
disagree about whether "don't use broken in technical documentation"
is a "community norm" or "personal idiosyncratic preference".

So the idea was to run a test and find out.  If most people in the
community really do think that "broken" is suitable for the
documentation in our project, then of course the maintainers should
stop objecting to that kind of language.  If most of the people in the
community think that "broken" is *not* suitable for technical
documentation, then of course this isn't an example of unreasonable
review (although other instances may be).

Fundamentally a lot of these sorts of issues come up because different
parts of the community are not "on the same page".  The question is,
how do we *get* on the same page?  I don't want to have a vote or poll
over every little issue; but if we really have a deep 2(+) / 4 split,
it's probably worth having some sort of a discussion to figure out
where we are.  Hence the poll.

I would have worded it differently; but nonetheless, it's a sort of
single data point.  What do you as the community think?  Is "this
hypercall is broken" the sort of thing you'd like us to prevent, or is
that being unreasonable?

FWIW I think a "five-point survey" would probably have been somewhat better=
:

Regarding the review insisting that the word "broken" be removed from
the updated documentation to the old hypercall:

( ) I think this sort of enforcement is right, and would argue that we
continue doing it
( ) I'm happy with this sort of enforcement, but I wouldn't argue for it
( ) I'm not particularly happy with this sort of enforcement, but I
wouldn't argue against it
( ) I think this sort of enforcement is unreasonable and is harming
the community
( ) I have no idea why we're talking about this, it's really not a big deal=
.

 -George


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 10:59:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 10:59:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645462.1007616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r91FK-0005da-3A; Fri, 01 Dec 2023 10:59:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645462.1007616; Fri, 01 Dec 2023 10:59: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 1r91FJ-0005dT-VP; Fri, 01 Dec 2023 10:59:45 +0000
Received: by outflank-mailman (input) for mailman id 645462;
 Fri, 01 Dec 2023 10:59: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=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r91FI-0005dK-7a
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 10:59:44 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2051.outbound.protection.outlook.com [40.107.7.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id baafe9ca-9038-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 11:59:42 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AS8PR04MB7560.eurprd04.prod.outlook.com (2603:10a6:20b:29d::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.13; Fri, 1 Dec
 2023 10:59:11 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 10:59: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: baafe9ca-9038-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=T3AAtz2hqnY1C3BE5w+4b42cayO+PgnqjZy5QqO0abUcBlUzwkR6jEr9t8y/w/bckJ3a+VzrAHkRnGV+vKrQfhtogUh+sgnTW5wXSJ1JNRr3p9r7q9js6fB7Y6pIJe7OR7NtahiQ1hBHQ8cFvHgfnRPCCGNovybKYXyKelZxnQRzOpj7JFpq4bEf+I/USrUIV6VvelwHbUqhckYVkmqPpbICXhnkJOsdOA/oc/1EolVWCY2WhCOs25RKDUsq+C7wloi76S7Zz/h6vBjZ4a5HlpBwZ7PFfR9pYvdoHizZo9o6uxEsFbZKS/TtzBGC5aouo7MAbpu0f2Zk615ZHtLIvg==
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=rch61Vp+nHgQNcu/w9wNxu+6cDClod/OExtLq0kBudk=;
 b=X/TPN+uOtsqMkvSST3dvQUfMPTzCfGIOBff6eR43Ou/MEAqvZV4hbUZQEtVUExG5whLE5Fb7czQk50Jeqpk1sjLPCKx6IucjJaMTtiRHATToqQY/Xc1A6pmd+2l9Zp+P6OOHZrj5vpqUHfXq9WD+DnZen0WouuszmQhPvoeIyu8QRTrIl+y5zvqW8jaNa/86H6zKq8IxF/gUP3V7Z+jR30m08JrkTBiQje6vjldPoPymoRTB4ypkxGHTbxH/Vqd31WuG2IIY/PzMy+8ClYSNPjSFcKrh4GCPNIXokqNJPrHcgNVBhdCfuIJu7bNKT+70yboZWpCqP7vzujZSNQxCXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rch61Vp+nHgQNcu/w9wNxu+6cDClod/OExtLq0kBudk=;
 b=z8TJ/RzrVMEN2i+kAu2mgrdzyu2MaHy/UURFAY7fm63k+k/lgg5TOyGlbO/Iq6HtqfJh+JU40rxCt2XaLYahwwxsn3JeqLbF1xt5C2KX+w77KN+TtXW53L4zmNKTgsOKyvog9O9ZEZhitwrHji6kjjeeHOLYzn+FfnBisKa4YbwPnvADfPHZ/7SOzJsAUJnGNWu2wPVPZu5dpL9w8SJWPSe7XaWyQja6w4YqF4hFydmiDyRXrxZxEpxKVrABQFfZYtW2uOepD65ZOfaYM60n9UnxcRS0yQEKn2nfNjZvgoowfU3ACUpZCBKY6IbbE35vhtHvyNgVsXYBvcEQNJZQwg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <15fb0b37-da9d-410c-ae02-872dd45cd327@suse.com>
Date: Fri, 1 Dec 2023 11:59:09 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <a65aafed-68c0-41dd-bf4d-3eeff87dd5d3@suse.com> <ZWjIX0Jo5gW5SEDr@macbook>
 <d0a4f187-4e84-4e0d-b478-6d8437a0b644@suse.com> <ZWmeV-y5RpGAG5cS@macbook>
 <0d9bc0cd-3719-4961-ae7d-3e27508000a2@suse.com> <ZWmzo68abRmRtfwN@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZWmzo68abRmRtfwN@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0406.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:d0::11) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB7560:EE_
X-MS-Office365-Filtering-Correlation-Id: 7214d132-9c12-43fa-556d-08dbf25c8c8f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hfTQlEc0cjLldhuW3gDM/nMfIgwksEu+RiAnsHm4LXO85yndiD5qPB/tCAHXc3nYdgCWZp3FuDsddbAvXmAY6P630IrdMfCtQKQX1F+lrKnoTIJG5YOBRjzWOvnhB6p3WljPNpRv+i78UleqV9ziedg0x3OQ5+IrtaZWHAMUq9vURY4eR6AdnkaLIubi43/+Lba5v5EFq+LGdzzMRWWxSB3AkPMhA7YKy7mTwuV/oqanZ9BajYqNesUQUkenMmSLPgGduqhFAhjyS4ZyRKrHwcLKknZI89yLkxoQrrzuTZ6/ibPf3uZQiYW3k5PfOqY6+XPAWXezRID7bAGtzt1TQCIQ9XnWA6PvbhN8nJpNsHh4atCs3bv7GDVX9qIcl1Cese5MjcQGBGYsUtErKAlf6AjC51l3MMVqRx4sMmQEVEDlon2ApIwcoI2jvjm/JawipHAFqKtmhziJegdR5bkO9p2WBDWenzev1GuWCG+X22iIRg3KGjOpby8dTofqRo5MA1erQ5zClGhU6OiWEZ7ihHB52lJUWLksb4WEPRZCO+xSZscgkzSu72SiZC/9Rve2G9Xyar5XZpKzmlbUl038I7sZewG/eT16TVSuQVkj5SdGm03hrD6v0DlYdxJ987TGsj0uvHkdEKKMZ3tz0E3rpQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(376002)(136003)(396003)(39860400002)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(8676002)(86362001)(38100700002)(6506007)(66946007)(54906003)(66476007)(66556008)(6916009)(31696002)(36756003)(316002)(6486002)(41300700001)(4326008)(8936002)(6512007)(508600001)(66899024)(53546011)(2906002)(31686004)(83380400001)(26005)(2616005)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S1VYRXg2VzBwT1VxSVBRNEgrYmVJVGxvNUNvMDlHYUJyMXkvOCtXN0oxZjdS?=
 =?utf-8?B?SFhYbFA3SWwxa21ycXVNV2RHVVE2N1QzV040QysxWCs4WmhoY3lOOEZWMTEr?=
 =?utf-8?B?aVJlbmswaHVlK2gxQmlSTjdVdy9OR2J4RVNQMmVLODJVMWNiS0J0NWkxUk9a?=
 =?utf-8?B?WW1SaTVxQUZGaG80SnBkcUI4NExsajA2NVZ3QkZ6NEtTZVk1SVJ2OHdNK2Vw?=
 =?utf-8?B?cG5wc3ptS0JqT3ZUdjRDWXVOd24rN1R1MGIzNm13RmZJRWdPSE5KRHFQSlN5?=
 =?utf-8?B?K1V2Tk56OUxRUnlCS2xTSk9yUk5xUWozdHhBc1VlRTFicUY2RTh4bFh4RWIw?=
 =?utf-8?B?YTF3RUkvNUxXYWdIWGl3Qy9XY0gvU3dLTTlOWnM3VUQ5Nk1vWU4yb2daamIy?=
 =?utf-8?B?MW1TZTNBbWtDR0wxK3VRcTNCcHdodWdVWU9qMHBENlRUQTZSSUZ5YUJPOFg0?=
 =?utf-8?B?dm9VU1l2T2RrcFlML0NaTUtia2pSdU1jb2xJOW5hODkzQTRTL1lLK0htdXo1?=
 =?utf-8?B?RFcrZmdweXZpaERkc0d2UlZxNlY2RXV0Y1UxUStuMWlHVHdTZVdvNExscysx?=
 =?utf-8?B?dVNWa3AxdVAxUndMeGx3cG1CcDdTQXhPcHpZOTBSZ0xLQmNHMzdZeWg3UGdu?=
 =?utf-8?B?ZU9kaGJpSFFlaTE5OURtUXkrTkJpazlYczJUSG1TODl1WitFNGhsOGdGUmU2?=
 =?utf-8?B?ZGV1d3RXNnNLbVpxYVFHa2JVU2xycHhLZmt2aHU1YWhNVG1HSWpHMUJ0ZlJ3?=
 =?utf-8?B?YkZ1ZGc0NU1JUHZjaHhUU0hTRytlcWhicmtvSFhUZ3E2bzRUUVoraDJ3aExH?=
 =?utf-8?B?Qml0d2ViOVBEaS9CWnlFbTlZcWJXVzlJSVphMWFDdG1xNXErcnFiVU1ELzJ0?=
 =?utf-8?B?TGdBN29xZUswdTQwSVRxYisxS2VrOFVSM2FkYXJYUVRld1FRTzFJdTRoejRl?=
 =?utf-8?B?YjB3NDZXL2FyOHFTSnVDcWlBaEc5N1FTVm5uU0c4NXYrYTVGSVZWN2thaVNq?=
 =?utf-8?B?Z2FxSlo1SWdUKzdEWTFka1B4Q2NnWEtzaHppRjd6RlFXYXZsTDJxcmc2NUxz?=
 =?utf-8?B?T1B5K3QvL3kwZ0p1WVNIUkJsamp0R1pMdklOamdnRW1pV3NBMVgwbjB4eDhJ?=
 =?utf-8?B?MzY0ZGZiR013Y0g2UU1LR2NxbER2TlNNQjB2c0tBWW42NWltQU4reUxhdjFV?=
 =?utf-8?B?RmliMTZTQmxucU01YjJtT0FJMWZEU2g2VGJ4dkM3YjZpLy9UTlg4M2VYeG8y?=
 =?utf-8?B?a0l2UTllVG5LeFo5SVpYV0NlRlpzM1ZPK0wvaHJ3Qk5YYW9DNCtwQ1dnMiti?=
 =?utf-8?B?RmJBbU5XWTlLSTVVSmViN3RiTWNQRlIxbDVlSUZCMFBVKzRrK1RqK1krUmdw?=
 =?utf-8?B?SWYvcUtMYncySmVROEx0MktZYXdSeHpPeEttR25DS1d4WHBMOVRLRVJ6ZmZh?=
 =?utf-8?B?OXFFYm8vMlZQelRoUGs4M2xpL05YZ2Q2QTN1bFFWY0g2QWRPUUFCa3FaZi8r?=
 =?utf-8?B?bW55TFBsdk1TY1hrUXBWS0xKZUd6UmFYOG1xZDhZZVp1U2VUWE01dlZ0aWdH?=
 =?utf-8?B?c1RNQTRLRFpNMVFMTW5IZytFYk4wOUdtL3JZWkk0LzhCa0RxTHp2dFdiN0J4?=
 =?utf-8?B?TkpwbTUxSm0xL1B4MDczUlRLM3U4c09EazAwbWV3QkE3V2M4YlRTb0NSbklZ?=
 =?utf-8?B?SlZTSTBGcVJtMlpuVnlEamNjaEVjcE1lVThrZzRhWXljNlMrSXFvanBEb2FE?=
 =?utf-8?B?THBFVllOU2pHTnkxQlZFT0MwN2NISVFZYnBKRDQ0UElTOXk5bVVkc1I3THNV?=
 =?utf-8?B?SjA4UHF1Nm9lZUIyTWRQc2dGREN6LzFRZllQclg4U2RxakxRV3FxNVZzdFZM?=
 =?utf-8?B?WjZ3anlRNmVMMVZLdDA1YjNIQ21wRkRXZWdrKzVQeTFlNEZ5WFhyOTU3TFli?=
 =?utf-8?B?a0txQ0pOYU50OC8yc1NFUy85cUxOdHdqQmdnWVg3aXFmbHZmOWdmbExzZ3Fv?=
 =?utf-8?B?VWEwVE03VmhOTzkxQUp6bUpOeE52a2FrRXZRUDVLNnBvWTY3cEljTXBJa0dR?=
 =?utf-8?B?ZWszNzlYM2dzb2tvTWZrL1ZnOHF5YW5NdFFQSGlKVlQ0ZUFJQjh3SXRGZHU2?=
 =?utf-8?Q?47AdBqcFWFnTC+L5ExG6dllbQ?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7214d132-9c12-43fa-556d-08dbf25c8c8f
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 10:59:11.4029
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: W5BuF/mjzMEFh7RBgHNKes1KmbhTLGWvcbdBKwmdgOi6ttqxyltogFAL7AeGrMecZf389QqLFLLzTyg+lsEszw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7560

On 01.12.2023 11:21, Roger Pau MonnÃ© wrote:
> On Fri, Dec 01, 2023 at 10:41:45AM +0100, Jan Beulich wrote:
>> On 01.12.2023 09:50, Roger Pau MonnÃ© wrote:
>>> On Fri, Dec 01, 2023 at 07:53:29AM +0100, Jan Beulich wrote:
>>>> On 30.11.2023 18:37, Roger Pau MonnÃ© wrote:
>>>>> On Thu, Nov 30, 2023 at 05:55:07PM +0100, Jan Beulich wrote:
>>>>>> On 28.11.2023 11:03, Roger Pau Monne wrote:
>>>>>>> The minimal function size requirements for livepatch are either 5 bytes (for
>>>>>>> jmp) or 9 bytes (for endbr + jmp).  Ensure that functions are always at least
>>>>>>> that size by requesting the compiled to align the functions to 8 or 16 bytes,
>>>>>>> depending on whether Xen is build with IBT support.
>>>>>>
>>>>>> How is alignment going to enforce minimum function size? If a function is
>>>>>> last in a section, there may not be any padding added (ahead of linking at
>>>>>> least). The trailing padding also isn't part of the function.
>>>>>
>>>>> If each function lives in it's own section (by using
>>>>> -ffunction-sections), and each section is aligned, then I think we can
>>>>> guarantee that there will always be enough padding space?
>>>>>
>>>>> Even the last function/section on the .text block would still be
>>>>> aligned, and as long as the function alignment <= SECTION_ALIGN
>>>>> there will be enough padding left.  I should add some build time
>>>>> assert that CONFIG_CC_FUNCTION_ALIGNMENT <= SECTION_ALIGN.
>>>>
>>>> I'm not sure of there being a requirement for a section to be padded to
>>>> its alignment. If the following section has smaller alignment, it could
>>>> be made start earlier. Of course our linker scripts might guarantee
>>>> this ...
>>>
>>> I do think so, given our linker script arrangements for the .text
>>> section:
>>>
>>> DECL_SECTION(.text) {
>>>     [...]
>>> } PHDR(text) = 0x9090
>>>
>>> . = ALIGN(SECTION_ALIGN);
>>>
>>> The end of the text section is aligned to SECTION_ALIGN, so as long as
>>> SECTION_ALIGN >= CONFIG_CC_FUNCTION_ALIGNMENT the alignment should
>>> guarantee a minimal function size.
>>>
>>> Do you think it would be clearer if I add the following paragraph:
>>>
>>> "Given the Xen linker script arrangement of the .text section, we can
>>> ensure that when all functions are aligned to the given boundary the
>>> function size will always be a multiple of such alignment, even for
>>> the last function in .text, as the linker script aligns the end of the
>>> section to SECTION_ALIGN."
>>
>> I think this would be useful to have there. Beyond that, assembly code
>> also needs considering btw.
> 
> Assembly will get dealt with once we start to also have separate
> sections for each assembly function.  We cannot patch assembly code at
> the moment anyway, due to lack of debug symbols.

Well, yes, that's one part of it. The other is that some .text coming
from an assembly source may follow one coming from some C source, and
if the assembly one then isn't properly aligned, padding space again
wouldn't necessarily be large enough. This may be alright now (where
.text is the only thing that can come from .S and would be linked
ahead of all .text.*, being the only thing that can come from .c), but
it might subtly when assembly code is also switched to per-function
sections (you may recall that a patch to this effect is already
pending: "common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly
functions").

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 11:21:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 11:21:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645466.1007626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r91Zi-0003gs-O1; Fri, 01 Dec 2023 11:20:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645466.1007626; Fri, 01 Dec 2023 11:20:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r91Zi-0003gl-L8; Fri, 01 Dec 2023 11:20:50 +0000
Received: by outflank-mailman (input) for mailman id 645466;
 Fri, 01 Dec 2023 11:20: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=hHVa=HM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1r91Zh-0003gZ-CS
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 11:20:49 +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 ab1187b9-903b-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 12:20:44 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 78DD921BDF;
 Fri,  1 Dec 2023 11:20:43 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 3491513928;
 Fri,  1 Dec 2023 11:20:43 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id cml6C4vBaWVJBwAAn2gu4w
 (envelope-from <jgross@suse.com>); Fri, 01 Dec 2023 11:20: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: ab1187b9-903b-11ee-9b0f-b553b5be7939
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Henry Wang <Henry.Wang@arm.com>,
	Community Manager <community.manager@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>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3] xen/public: fix flexible array definitions
Date: Fri,  1 Dec 2023 12:20:41 +0100
Message-Id: <20231201112041.5260-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: *******************
X-Spamd-Bar: +++++++++++++++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [19.10 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 MIME_GOOD(-0.10)[text/plain];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 BAYES_SPAM(5.10)[100.00%];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[10];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 19.10
X-Rspamd-Queue-Id: 78DD921BDF
X-Spam-Flag: NO

Flexible arrays in public headers can be problematic with some
compilers.

With XEN_FLEX_ARRAY_DIM there is a mechanism available to deal with
this issue, but care must be taken to not change the affected structs
in an incompatible way.

So bump __XEN_LATEST_INTERFACE_VERSION__ and introduce a new macro
XENPV_FLEX_ARRAY_DIM which will be XENPV_FLEX_ARRAY_DIM with the
interface version being new enough and "1" (the value used today in
the affected headers) when the interface version is an old one.

Replace the arr[1] instances (this includes the ones seen to be
problematic in recent Linux kernels [1]) with arr[XENPV_FLEX_ARRAY_DIM]
in order to avoid compilation errors.

[1]: https://bugzilla.kernel.org/show_bug.cgi?id=217693

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- bump interface version and make change only for new version
  (Jan Beulich)
V3:
- move XENPV_FLEX_ARRAY_DIM definition to ring.h (Jan Beulich)
- fix 2 wrong XENPV_FLEX_ARRAY_DIM use cases (Julien Grall)
- add CHANGELOG.md entry (Andrew Cooper)
---
 CHANGELOG.md                     |  2 ++
 xen/include/public/io/cameraif.h |  2 +-
 xen/include/public/io/displif.h  |  2 +-
 xen/include/public/io/fsif.h     |  4 ++--
 xen/include/public/io/pvcalls.h  |  2 +-
 xen/include/public/io/ring.h     | 12 ++++++++++--
 xen/include/public/io/sndif.h    |  2 +-
 xen/include/public/xen-compat.h  |  2 +-
 8 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4ecebb9f68..5ee5d41fc9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ## [4.19.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
 
 ### Changed
+ - Changed flexible array definitions in public I/O interface headers to not
+   use "1" as the number of array elements.
 
 ### Added
  - On x86:
diff --git a/xen/include/public/io/cameraif.h b/xen/include/public/io/cameraif.h
index 13763abef9..a389443769 100644
--- a/xen/include/public/io/cameraif.h
+++ b/xen/include/public/io/cameraif.h
@@ -763,7 +763,7 @@ struct xencamera_buf_create_req {
  */
 struct xencamera_page_directory {
     grant_ref_t gref_dir_next_page;
-    grant_ref_t gref[1]; /* Variable length */
+    grant_ref_t gref[XENPV_FLEX_ARRAY_DIM];
 };
 
 /*
diff --git a/xen/include/public/io/displif.h b/xen/include/public/io/displif.h
index 73d0cbdf15..132c96fa5c 100644
--- a/xen/include/public/io/displif.h
+++ b/xen/include/public/io/displif.h
@@ -537,7 +537,7 @@ struct xendispl_dbuf_create_req {
 
 struct xendispl_page_directory {
     grant_ref_t gref_dir_next_page;
-    grant_ref_t gref[1]; /* Variable length */
+    grant_ref_t gref[XENPV_FLEX_ARRAY_DIM];
 };
 
 /*
diff --git a/xen/include/public/io/fsif.h b/xen/include/public/io/fsif.h
index ec57850233..dcade1c698 100644
--- a/xen/include/public/io/fsif.h
+++ b/xen/include/public/io/fsif.h
@@ -40,7 +40,7 @@ struct fsif_read_request {
     int32_t pad;
     uint64_t len;
     uint64_t offset;
-    grant_ref_t grefs[1];  /* Variable length */
+    grant_ref_t grefs[XENPV_FLEX_ARRAY_DIM];
 };
 
 struct fsif_write_request {
@@ -48,7 +48,7 @@ struct fsif_write_request {
     int32_t pad;
     uint64_t len;
     uint64_t offset;
-    grant_ref_t grefs[1];  /* Variable length */
+    grant_ref_t grefs[XENPV_FLEX_ARRAY_DIM];
 };
 
 struct fsif_stat_request {
diff --git a/xen/include/public/io/pvcalls.h b/xen/include/public/io/pvcalls.h
index 230b0719e3..c8c7602470 100644
--- a/xen/include/public/io/pvcalls.h
+++ b/xen/include/public/io/pvcalls.h
@@ -30,7 +30,7 @@ struct pvcalls_data_intf {
     uint8_t pad2[52];
 
     RING_IDX ring_order;
-    grant_ref_t ref[];
+    grant_ref_t ref[XEN_FLEX_ARRAY_DIM];
 };
 DEFINE_XEN_FLEX_RING(pvcalls);
 
diff --git a/xen/include/public/io/ring.h b/xen/include/public/io/ring.h
index 0cae4367be..a79d913142 100644
--- a/xen/include/public/io/ring.h
+++ b/xen/include/public/io/ring.h
@@ -25,8 +25,16 @@
  * and grant_table.h from the Xen public headers.
  */
 
+#include "../xen.h"
 #include "../xen-compat.h"
 
+/* Some PV I/O interfaces need a compatibility variant. */
+#if __XEN_INTERFACE_VERSION__ < 0x00041300
+#define XENPV_FLEX_ARRAY_DIM  1 /* variable size */
+#else
+#define XENPV_FLEX_ARRAY_DIM  XEN_FLEX_ARRAY_DIM
+#endif
+
 #if __XEN_INTERFACE_VERSION__ < 0x00030208
 #define xen_mb()  mb()
 #define xen_rmb() rmb()
@@ -110,7 +118,7 @@ struct __name##_sring {                                                 \
         uint8_t pvt_pad[4];                                             \
     } pvt;                                                              \
     uint8_t __pad[44];                                                  \
-    union __name##_sring_entry ring[1]; /* variable-length */           \
+    union __name##_sring_entry ring[XENPV_FLEX_ARRAY_DIM];              \
 };                                                                      \
                                                                         \
 /* "Front" end's private variables */                                   \
@@ -479,7 +487,7 @@ struct name##_data_intf {                                                     \
     uint8_t pad2[56];                                                         \
                                                                               \
     RING_IDX ring_order;                                                      \
-    grant_ref_t ref[];                                                        \
+    grant_ref_t ref[XEN_FLEX_ARRAY_DIM];                                      \
 };                                                                            \
 DEFINE_XEN_FLEX_RING(name)
 
diff --git a/xen/include/public/io/sndif.h b/xen/include/public/io/sndif.h
index 4234a47c87..cce1459b7b 100644
--- a/xen/include/public/io/sndif.h
+++ b/xen/include/public/io/sndif.h
@@ -659,7 +659,7 @@ struct xensnd_open_req {
 
 struct xensnd_page_directory {
     grant_ref_t gref_dir_next_page;
-    grant_ref_t gref[1]; /* Variable length */
+    grant_ref_t gref[XENPV_FLEX_ARRAY_DIM];
 };
 
 /*
diff --git a/xen/include/public/xen-compat.h b/xen/include/public/xen-compat.h
index 97fe698498..078b796664 100644
--- a/xen/include/public/xen-compat.h
+++ b/xen/include/public/xen-compat.h
@@ -10,7 +10,7 @@
 #ifndef __XEN_PUBLIC_XEN_COMPAT_H__
 #define __XEN_PUBLIC_XEN_COMPAT_H__
 
-#define __XEN_LATEST_INTERFACE_VERSION__ 0x00040e00
+#define __XEN_LATEST_INTERFACE_VERSION__ 0x00041300
 
 #if defined(__XEN__) || defined(__XEN_TOOLS__)
 /* Xen is built with matching headers and implements the latest interface. */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 11:23:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 11:23:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645470.1007636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r91cM-0004Kq-A4; Fri, 01 Dec 2023 11:23:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645470.1007636; Fri, 01 Dec 2023 11:23:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r91cM-0004Kj-6z; Fri, 01 Dec 2023 11:23:34 +0000
Received: by outflank-mailman (input) for mailman id 645470;
 Fri, 01 Dec 2023 11:23:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dNOx=HM=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1r91cK-0004KX-Pn
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 11:23:32 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2085.outbound.protection.outlook.com [40.107.7.85])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e3c96cd-903c-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 12:23:30 +0100 (CET)
Received: from AM0PR06CA0136.eurprd06.prod.outlook.com (2603:10a6:208:ab::41)
 by VI0PR08MB10559.eurprd08.prod.outlook.com (2603:10a6:800:20f::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.24; Fri, 1 Dec
 2023 11:22:52 +0000
Received: from AM4PEPF00025F9C.EURPRD83.prod.outlook.com
 (2603:10a6:208:ab:cafe::56) by AM0PR06CA0136.outlook.office365.com
 (2603:10a6:208:ab::41) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27 via Frontend
 Transport; Fri, 1 Dec 2023 11:22:52 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00025F9C.mail.protection.outlook.com (10.167.16.11) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.1 via Frontend Transport; Fri, 1 Dec 2023 11:22:52 +0000
Received: ("Tessian outbound 385ad2f98d71:v228");
 Fri, 01 Dec 2023 11:22:52 +0000
Received: from a5af7244dfe0.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 59049C74-F558-4E47-9D67-BF2D28211920.1; 
 Fri, 01 Dec 2023 11:22:46 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a5af7244dfe0.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 01 Dec 2023 11:22:45 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by DBBPR08MB6250.eurprd08.prod.outlook.com (2603:10a6:10:1f5::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.22; Fri, 1 Dec
 2023 11:22:43 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7046.027; Fri, 1 Dec 2023
 11:22:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e3c96cd-903c-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=EvD8BpL1lKEEhmRvfhW8fHCfc0nGGSGJYn/bN8LaZJp0m1zNMWlyjFp5OsUa3EW2UMfQVpDHUa7d9TFddwHmMoOsBcnRWDTXJzmH8uIyorNjED7Br/9PEf1C+0Bcn7eXonq87hKTrpWMQl94ljcDHkuRtmLpPi3Qx1fBejqv95XZjKeLngAfUmoi9vxF/wNMuEriekcf8K+VTceftrsqbcHu9dFxWbja3GBV3IQW5E9eL1XgfT1elLxGeg5krluL97VKJr9uNt1+zJuHU0/Kzf+L/LVJa7jx6DZGcayrgNYxPhwajyeNlprPEHqe3oV8RDAxX0TOakXThagzXluJRg==
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=mbt+8gqZbfuF/Wc0K2l9+qNfJJKlhRK+CkHbv5QdyxY=;
 b=kQsbd1hvLMFYWyeZ4B0OFq2Mg4rjLMowSSq7TYmpzm2voqLlkQkUaKAdsGQNMbe0WI6cTbHjP/lA8+VU8AxkaNj2yqGQJgjC8OPiblcg2bdgQSQA62w3gmfnI4A7zYsThCue01YBOm8EPSr3OQz7xehtlRwKv5igIe5k+VdGB9rRGV6aRqiyryh/H4hPqJP1jvkMZAjys+ubh2tGY5pF40/ITA4BYj0aitmf8vUk0kdzSgn68G1NK/9hxok85dY1W4SuiYIO5UcfmhDdCq4lEl1uDuRU2lZb1DqvV+XJM6igc7IS+1IG2BQTscOYQhSDH/dWLkFmkhPZYdx/IA6NPg==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mbt+8gqZbfuF/Wc0K2l9+qNfJJKlhRK+CkHbv5QdyxY=;
 b=QpiPAnq0FeECKGoDpX5tQY3ElwCV14HMCZkaSDROfAp666GTsgsYqlkIlkY423BnGjAfaa85FEvytyHBTLleaZClym60jNYcSYiFmBXxQkBHioW4JaMjVvDCfSX1g++/LiuegYtnHk29Eq8T+K0iwIuIckvMP5q6nueinpZfPdo=
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=armh.onmicrosoft.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: 1299f8282786bd3d
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=J9EnPYmjM3DUXxz7UO5z3Mx4+iT0+7SepG2mpRO2ei4djQhCFa9szMqaqVj7OT+UEYD3vbokBxvAZiCwv5p9JrCbTuBFjSmUodZkt+H6tQIWK6iV3kXzXooiFrihR9bKPCY6UkSbxc31f1/BJ1GJiCWCqGyvbVjyltJL4EaAw9SSSnnMtvWe345UF/DcOdxa8izyX1IoWLmmvnuyjxSjUVRLZAXSdfBQnRvDjHLTZEmIUimQ5ILRNB1RyK5kfjk5UIKzXQAA/8440Sbpf/bALH6dSQLIwQ9yAT3MwaTVitoMTnzYNGYcrmvFkjqzExAlA2yNQB67QSjI2LtLekVqcQ==
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=mbt+8gqZbfuF/Wc0K2l9+qNfJJKlhRK+CkHbv5QdyxY=;
 b=bdGqssNHPsUnu2IJX+943cAoxKiC1qbYAn5jS3IObf40kYjPgDCciFGr5e2D/5Id+cJwAhjAWdbEWqUVnipTgtyJh6Gf0AFj2VLdUvB8wjQfy7LqsuCv8Ky7oQgPhRKOrfnOMXYeidTm0RTxQYYULnXFO1dA4uplm+ntfqXaqd9boePQ35ZKNZ4ZB14vwB2vSGXnH5a6BRCa/Gga+1korH74JbxD78PVTpEFIyVJpd64G6JhXDJAKsGbcBeR49qbmQ5m4XtlMc/QaoLa4Jt1T6lzmskHRivjH2MsKkARpgr32/zWjdv5VbW90wcfI+F1C6Nu3nb1Cvnf/MNITBgAOQ==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mbt+8gqZbfuF/Wc0K2l9+qNfJJKlhRK+CkHbv5QdyxY=;
 b=QpiPAnq0FeECKGoDpX5tQY3ElwCV14HMCZkaSDROfAp666GTsgsYqlkIlkY423BnGjAfaa85FEvytyHBTLleaZClym60jNYcSYiFmBXxQkBHioW4JaMjVvDCfSX1g++/LiuegYtnHk29Eq8T+K0iwIuIckvMP5q6nueinpZfPdo=
From: Henry Wang <Henry.Wang@arm.com>
To: Juergen Gross <jgross@suse.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Community Manager
	<community.manager@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>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3] xen/public: fix flexible array definitions
Thread-Topic: [PATCH v3] xen/public: fix flexible array definitions
Thread-Index: AQHaJEh3xfQThuYOOEORncnUPH8irbCUSMeA
Date: Fri, 1 Dec 2023 11:22:43 +0000
Message-ID: <39128F75-3FA1-4977-B792-C4EDE99CA57F@arm.com>
References: <20231201112041.5260-1-jgross@suse.com>
In-Reply-To: <20231201112041.5260-1-jgross@suse.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|DBBPR08MB6250:EE_|AM4PEPF00025F9C:EE_|VI0PR08MB10559:EE_
X-MS-Office365-Filtering-Correlation-Id: 09d690b0-09ce-48c9-c48c-08dbf25fdbdd
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 HkUVVyVtXt8IiO55Kz50piMviDSCjjMni6XeyGStYDm3Sv6nvVVrB4tPIZ8+1Xtz/sJ5YV9FTEoF04LXbBabILmU002yhlcTp5ZIWoQbBbXY7kA38UGdM20zbzBVpr8vuSWgFgfxAfhHtE/MQ6jB6cMCj7WKeyui8x1bGSMtOE6Wnqw8tC2hzvn/mebJSmng7umXH/tJUBXLe6hhRh//I7DD+bzGM1Xa0+lbzK1Us8sPTJZuCrJsYRpPg3T9mBEq3sMrYjh6ec/L7Z/Eb3/9hdVL2bpRwnAdBa79+oepVt3uox73eaU0+4Tzjrbpq7orWYVvHG/EpYlPoLolg7xF31V2yaEvw0QqsRrjOcJFxFlXWLtaFJe1qIUxTegbSyo/7/+pRLgW6uChkNIQJke2YiO4Us7yqCvhoVctnFZq0rKi+brI3dZAbtDaBuC/97vDyUY4E/L28npUd9Th/6Dx75pz9eM8SjFBdb+hnrIUjGaxcglD2udgAGaYyVMfD16bU8a6sz3BrkUIlCaXo3BvneNU+dw1zc7q+K6sPTisiSVIqTzgM6f8ibmldTtx20EREQj4GWZMSaLN6RKjfKCP4GP8p4DlEjBSKYt4ykSQ43ud747VECJGpPXFKjiwRZkJ
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(39860400002)(346002)(396003)(136003)(376002)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(6506007)(38070700009)(66899024)(122000001)(33656002)(71200400001)(5660300002)(36756003)(2906002)(4744005)(38100700002)(26005)(86362001)(53546011)(83380400001)(6512007)(2616005)(66556008)(8676002)(966005)(478600001)(6486002)(8936002)(64756008)(41300700001)(91956017)(54906003)(66476007)(66946007)(6916009)(66446008)(76116006)(316002)(4326008)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <AAA6B217FD569649A34354ED3E5029F5@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6250
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:
 AM4PEPF00025F9C.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	347d4288-9519-43aa-c26c-08dbf25fd655
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	I6oBeHyWa4YqMr1maS7UKPSE7WKG+ozqTFnCWuevM7apYkxRDNkeSOveWofp4lvIw6JyAuJjPg9bHpHIEKz0AfsREyyNpEXbWioVVoFl7gvottO7kTdkgAOH+w9fMAaVgRb4xL9EJ+64sev03EX4zPf8c394l00GqGHBJ32EzfinLxihgPwIrBwjEwwg7D1XquqV24nLFyv3IO0RIJ0p1jmfL9jyjKbbGMPjzm15NzXAhsIdm/BmizCYyN5u1VWW5bBEbrviZlK4w6Eh/Smyy+aKiUL+nRV7oY0hwM1G2o+/YP7u32BuJz5/t6J8iqj1iB/4zjVZrN7gM8uqsTHhtVC3gsfBnoki3C7/aY/K/C5wDFQhbFGzuEyeGqYCg2CpF19MvO/E1ZFSbBiY4V6K5JjJslBbeQEKqLYj3Y6ddZ+gDy7tD+AYn5ZHUDAIt2fSCmYFQK623Oz98ARyngRySrXZNRJ/B99dCJ0ppZqz9O1qlxb0fJLAFBhrd+QQndvmBNVXIu/qom9aTJdd1hhZ5cdCNBMIouZ2CvFzDNLUec7viqmWP8l5SmB+5yb+fzJZVI4p4lijyrjpbnyIjxSaj/PzxqZB2nSlBSK9eqkt5cvxoy+2hm+h7CFtGNc/mtIHid0KjjZDqq2Y4HyWgggKHlvnq7nadvGnEzmSy4cWWqQkmyFe+44U14IC9B37G8/l1nnSrAIGQHVu62kr/O27Ujuj/mhiOZ05xjTt+EoL4kI=
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:(13230031)(4636009)(39860400002)(396003)(346002)(376002)(136003)(230922051799003)(64100799003)(82310400011)(186009)(451199024)(1800799012)(40470700004)(46966006)(36840700001)(26005)(40480700001)(40460700003)(36860700001)(356005)(82740400003)(81166007)(47076005)(33656002)(5660300002)(2906002)(4744005)(53546011)(336012)(83380400001)(6506007)(6512007)(2616005)(478600001)(66899024)(70206006)(316002)(70586007)(6486002)(966005)(36756003)(41300700001)(86362001)(6862004)(8936002)(4326008)(54906003)(8676002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 11:22:52.7147
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 09d690b0-09ce-48c9-c48c-08dbf25fdbdd
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:
	AM4PEPF00025F9C.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10559

Hi Juergen,

> On Dec 1, 2023, at 19:20, Juergen Gross <jgross@suse.com> wrote:
>=20
> Flexible arrays in public headers can be problematic with some
> compilers.
>=20
> With XEN_FLEX_ARRAY_DIM there is a mechanism available to deal with
> this issue, but care must be taken to not change the affected structs
> in an incompatible way.
>=20
> So bump __XEN_LATEST_INTERFACE_VERSION__ and introduce a new macro
> XENPV_FLEX_ARRAY_DIM which will be XENPV_FLEX_ARRAY_DIM with the
> interface version being new enough and "1" (the value used today in
> the affected headers) when the interface version is an old one.
>=20
> Replace the arr[1] instances (this includes the ones seen to be
> problematic in recent Linux kernels [1]) with arr[XENPV_FLEX_ARRAY_DIM]
> in order to avoid compilation errors.
>=20
> [1]: https://bugzilla.kernel.org/show_bug.cgi?id=3D217693
>=20
> Signed-off-by: Juergen Gross <jgross@suse.com>

Acked-by: Henry Wang <Henry.Wang@arm.com> # CHANGELOG

Kind regards,
Henry



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 11:25:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 11:25:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645473.1007647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r91eM-0004ue-Ni; Fri, 01 Dec 2023 11:25:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645473.1007647; Fri, 01 Dec 2023 11: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 1r91eM-0004uX-Iy; Fri, 01 Dec 2023 11:25:38 +0000
Received: by outflank-mailman (input) for mailman id 645473;
 Fri, 01 Dec 2023 11: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=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r91eL-0004uP-Dz
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 11:25:37 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20601.outbound.protection.outlook.com
 [2a01:111:f403:2612::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5933ed06-903c-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 12:25:36 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by VI1PR04MB9883.eurprd04.prod.outlook.com (2603:10a6:800:1d7::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.11; Fri, 1 Dec
 2023 11:25:33 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 11:25: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: 5933ed06-903c-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Eaea+QuC6Oq9zeDqLJn5NP87PfnwQpUAFStTCfKYvFtIeq/CxDeBhIuYjy8fMOHX9fGvIz/oG+R5hHNxhIxMHiZ3bpWy3Judhi7JyfJ8fhpvBkXjVFiHE8g9mYdoKgp43Yd1NfhtHafwlLqYYI6WExLxmUrZ/9azY9bRTaTnykp+1itNZfYafCgP3LfT5umkS0E4SdmZSZvZD4udiWAqiAuxQ0XT5901bjcETheb+kdW7HpLjtbPW3cY+5UZP5CU5bqwQLJxJVCmXDzPOaXfPy4U1DDtERFsBRs19wx1CMtQyTcuVJeKf5k9cHuhDldfBZexdsvRncXT4W5v4Cq1Hw==
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=59muZDofqtl0R5R++rxFjMykMnix45sGuK4dDL0bNRg=;
 b=ctNQTSxHvpctERJvZLkopOoRz8560rIDIhz2Dign/J8xd5nj4VAj1H/mugahX/02VpdanN5o1Rrq2t5ztoBYJUP7Bcsk23v9gVKOlHYWz+XVmxYRmWduqMY3ST4GunzvdoRsMlnIhbI5VKnj4vszynpXkGlKEGAoAbrEKKlnhVTIYQk96814jMSKf5Hxp0rKrezQe/yI2gCCW4J240OWtDSE8bpil3LvkKYqRg42/3ze+z/NuCjpzIdAwfNn8cjoOOXnFQNuWo8u8foQXXaewPrZf8x0AgZAO2fc0ldxjYdjHVizR+NwLhMNXxWKmHkXq7Mr0lCH3LF+/4LLF1K7uQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=59muZDofqtl0R5R++rxFjMykMnix45sGuK4dDL0bNRg=;
 b=2RHAH8nBngOK5npsWmsVkuJXPHwLAP4eQoxZaDob3uIh5vA5drcxjyuZUYS7BeootG7zJeGr1YLs2e9N70s5WJTnIzt10PK8wX4giGFfLddGImzHU9gHekQsRdKp9g7yI8ooWXOPEc8bI6FvW1yQlFbs9WYHkbGYBqmsb94pDLxRd3a0Z8NxVblSSzzqxFgBoPetr/TG0sDkykrv67ebegsIkC8MhLk8Litiw0FB9JrSL7TdTWAmHYbKHmZUH2kLMfffEYd4CXTlGOavtiQYbBfMFXfuEpFWDKaBRhvRNvf/sMHaTtRgGEZrnSTsMGjQuyTbGiJTEPiAmslO2xDJ4A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <4807801c-07b7-48c6-bee8-0bb3af35e8e4@suse.com>
Date: Fri, 1 Dec 2023 12:25:31 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/public: fix flexible array definitions
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Henry Wang <Henry.Wang@arm.com>,
 Community Manager <community.manager@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>,
 xen-devel@lists.xenproject.org
References: <20231201112041.5260-1-jgross@suse.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: <20231201112041.5260-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0097.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a9::10) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|VI1PR04MB9883:EE_
X-MS-Office365-Filtering-Correlation-Id: 39c7a8b5-9fc6-48e3-19e9-08dbf2603b50
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Gaf+R93iNlK/XEkbo99u51zYJ3QEyP7MolS4D7CYA1t4ilWHSsOU29kUS28/uqqIwQQ7XqiVPKvKnDEJC49PgdBb/salKCS6iDV0zuuBt7fjYFEZcXjS2of50tU84WyuIZA0/Sx/da8CXTwizK+LMlK5rKvdyHEeB5nwFg7rayOdNPce8uOJ3Kb0Uuu7rUHTFYmV+f8Rwp3grYogxTFjJSy472HamYr3a4kNlooF8eMznVV+j22x7JisrbgOemuov07ed7NJGX0b8tVIeQFDSSJJRKSvLWngr7xWkC7R2okDLPgQdHZRe3VNi0J7gZwioW9nLA7hA3XbcfbyL2TMwU/t56rpUK81C8uBl/qTLqk4bUEOvrgi5rz26G3DaNA/XLoa0ThMU1PklVXPS2XhLat2ah3//lXQtj+BLBDal1kTGZA+cvZ5Vgd1+TXK7KFUYN9mfyEFSil8rnWT2ILinfR2OnAUf2ifq1tXYQbMCHmRMruC3x+8utDGSWTieBT3U8l5TgfZLej4btYJwQHmkVh5fgtDdTtQmwueVcSS7hguJyThE0/7xfgnf/GF7wERNRm8+IKyyD4V253nOKFlbqFU4OXxf7JsqqVrehnf+p24NpCi4/+UfQ5Hlf5plRaYCG2RrfEJMgoQ/EqqITHFZA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(376002)(396003)(39860400002)(366004)(346002)(230922051799003)(64100799003)(1800799012)(186009)(451199024)(66476007)(6636002)(37006003)(966005)(6486002)(478600001)(316002)(54906003)(86362001)(66556008)(38100700002)(66946007)(2616005)(53546011)(8676002)(4326008)(6862004)(8936002)(26005)(6512007)(6506007)(83380400001)(31696002)(2906002)(5660300002)(41300700001)(31686004)(36756003)(66899024)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eFNSQXZYenFkK1htRTdqUkRoeWVBaGxvTGQ1aWQrTHM2aXArbkZZSnRXTTZ3?=
 =?utf-8?B?Smg4UHZIdDhDR2Zrc3luMUZNQ3RsRHhBUTFueU9DaGR6aUhnZGhISXVwMWMw?=
 =?utf-8?B?dVl4OFM5ZGcvQ1FMNk9kVzdiWmx5eTJ0ekV4U3p2NWt4NE8wN1QzLzIwWklN?=
 =?utf-8?B?TnJZSzcvVVNwQTkwWEhGeXQ3RlBWNlVGOXAwYnl2alNQbzB6ZHhQRFRUa3l3?=
 =?utf-8?B?bHdmZm5WNXVMZVpIN2c0dEMvZlRoYVZ3MmpBMmpwaVpmcFpaWkhDZ1ZBN2tT?=
 =?utf-8?B?eE5SOGFLMGpGSDFwNVd6Z2VoazhsWmVnZk1VdXdPV0FsRDZwZEE2UXhiM3ow?=
 =?utf-8?B?VzRnWGhZcjhnT3N0T0NOVjZlMFRJL3J3UTl0dUtUckFBYm92R0M3UTVLR01y?=
 =?utf-8?B?enJGckVXMlhOWUVkTWtwMmtCb2cwTmQ1bWlFV29VSEpBdW5pdm9raUt3YVlR?=
 =?utf-8?B?cUZVb0kwVTFBT0dtVFkwWHNHNmhBUEdPOERRRnU3RWVTZ3I0REF6cjd6RHo5?=
 =?utf-8?B?UWhRMmR5SDZJOSsrUWt2S2dRT3g3aXFMRmNpZEVqUGdDY2VyQ3hqWDhNWktT?=
 =?utf-8?B?NU9IVUJOSnZvVGhMbmlmbUk1SlFPdWZBbnpmakFNcWxZbGRmV20yTTVlK1RZ?=
 =?utf-8?B?eXBJMFdQNC9IWE0yV2JRM2orcHg2eVFMeU5aMEpaelkvR3ZQWGNoV3JJSDg0?=
 =?utf-8?B?MmxuV0JZcnBEMXl1TlNUUlJIUHpCTkx3TzdkNGhTQmd3eXFWZGRrakxwVkNZ?=
 =?utf-8?B?WW9DZWE0OWlHd2VGZ2UwNTgwN1V2RFQxVklwb2plcEN5QkszVTVBbGNuMnhN?=
 =?utf-8?B?QUhSamNUaDlka0UzTnJRb0wxeWFhTTd5YUUyZXJ1VGNrdmVwNnJVL3dXZzI1?=
 =?utf-8?B?cy9RV3QwZUEyeHZ6b2JjbUd3MUJyUWpjRUhMMHdaaU1NUGRrcGNGZ0x3YUtK?=
 =?utf-8?B?T3NjL1loRTd1VFdwZlVHbGRUd01uSlBQTWNxZXpRRFRJOFg5b1ZVZ1UzK3JC?=
 =?utf-8?B?dzU1V1Zza0lqL0Y0c0NoZnpMSHdQODBDK0t1c0UrYUFHQ0NGMitHWjAxdVZZ?=
 =?utf-8?B?QmlKZWFLZVV2YkdiNndMR04xbGowa05WZzRyNXpRYVFEN2xLMUFnNEZ1MUZL?=
 =?utf-8?B?NDVCaTFQZEwwZmFwdm43WEdGYzJwL2Z5Nm4rcW9pK2krU3l3SHd6S3d2aVQr?=
 =?utf-8?B?SDM1UnJlQWYvMWtOQUhxOWMxVTg3aUV3UEJwa2lhYmFWNTgwdmR0VE13ZTZE?=
 =?utf-8?B?cnNFcm1ib0I3S3JUQUJ3ZVZSUjZjMjhjQmdaUFpxU3M2SHlPN1poOTJ6T0g1?=
 =?utf-8?B?cXZ6RWV6clJZamRMTU9rb3dpbzJ1TnZVVy8reXE2bno5ZjlJT0x2QXhVdkZN?=
 =?utf-8?B?a0t5ZDA2WUtVWUt3MkVvYitmZmhBWXhwM0I2L2ErdlpHNk03RzhIcG9nRXp1?=
 =?utf-8?B?UCtWSTVOcjgxWnJ5UHBBMjlmeitQQ1lnbXBzNGg0dmt1SlFNTXNaYkNZT2tz?=
 =?utf-8?B?OXpTeWhJUWpOU1E0UlV0T3dTNmthdEoxeE9VenZzZ3pWZjhqbnROVjZta1Bn?=
 =?utf-8?B?TDBHNHRNYWZHVHRTMGJxRXVJdE9URHM3SVNCelMvZFhicEJKVnMrUGdDRGhx?=
 =?utf-8?B?cW8waktpVENNSUVFOGh2YmIzL0ZRM2tNTm1nMHo3c2VpMnQ4WjZrVTdCTk0y?=
 =?utf-8?B?b3VLN3F3UU1odklhQnpFT2FreGtNbGNKY3BzSVc0cm9LU1EweFFEWlE2bm96?=
 =?utf-8?B?VXB6ZzNGcUdpYUs4a0RObjlUMnhqMUMyQ2dBdmVjZXNydUtPQ2RDUUE0TS9Z?=
 =?utf-8?B?Q21nNUdVdXN4VHpKUWRzOCtTYnM3eGprMkpicFN3eXc1dTRqK3NGcGVSZi8x?=
 =?utf-8?B?UFFVSUtWZXZxaUZ3VUJRU1VnMzRtWURZYTdaYlZ1U3Y1UFdnYW1ldVJDUzZM?=
 =?utf-8?B?eWtHWWhHcUd1dEZoR3ZLZFRRMllmWWlEMncvWFlpTWtNekl1cW9jbHVsTEpv?=
 =?utf-8?B?OVVISTJ4Uzk3UUFsU1gzOEF3K0l4SkdJZWpjV3hWVTZHVFV6cU9HS2hVVmF6?=
 =?utf-8?B?UDFBY1pBZlRVM3JqMkVKVitQNUxqRXRTR0VPTDVSNnJrUzVER3R5QkROQW9j?=
 =?utf-8?Q?b0HxrLdulYm+xOhXMbutolvMc?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 39c7a8b5-9fc6-48e3-19e9-08dbf2603b50
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 11:25:32.9988
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IwNgl0qyULElWzkQj4pO13GoNxL+fvrrUVCg89+1a1guMFsh3ssXdVnZ5xnPeUspKjM69KpQmeqxGNKWvRgh8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB9883

On 01.12.2023 12:20, Juergen Gross wrote:
> Flexible arrays in public headers can be problematic with some
> compilers.
> 
> With XEN_FLEX_ARRAY_DIM there is a mechanism available to deal with
> this issue, but care must be taken to not change the affected structs
> in an incompatible way.
> 
> So bump __XEN_LATEST_INTERFACE_VERSION__ and introduce a new macro
> XENPV_FLEX_ARRAY_DIM which will be XENPV_FLEX_ARRAY_DIM with the
> interface version being new enough and "1" (the value used today in
> the affected headers) when the interface version is an old one.
> 
> Replace the arr[1] instances (this includes the ones seen to be
> problematic in recent Linux kernels [1]) with arr[XENPV_FLEX_ARRAY_DIM]
> in order to avoid compilation errors.
> 
> [1]: https://bugzilla.kernel.org/show_bug.cgi?id=217693
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

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

> --- a/xen/include/public/io/ring.h
> +++ b/xen/include/public/io/ring.h
> @@ -25,8 +25,16 @@
>   * and grant_table.h from the Xen public headers.
>   */
>  
> +#include "../xen.h"
>  #include "../xen-compat.h"

Just to mention it: While perhaps good practice, I'm not convinced this
extra #include is actually needed here.

> +/* Some PV I/O interfaces need a compatibility variant. */
> +#if __XEN_INTERFACE_VERSION__ < 0x00041300
> +#define XENPV_FLEX_ARRAY_DIM  1 /* variable size */
> +#else
> +#define XENPV_FLEX_ARRAY_DIM  XEN_FLEX_ARRAY_DIM
> +#endif
> +
>  #if __XEN_INTERFACE_VERSION__ < 0x00030208
>  #define xen_mb()  mb()
>  #define xen_rmb() rmb()
> @@ -110,7 +118,7 @@ struct __name##_sring {                                                 \
>          uint8_t pvt_pad[4];                                             \
>      } pvt;                                                              \
>      uint8_t __pad[44];                                                  \
> -    union __name##_sring_entry ring[1]; /* variable-length */           \
> +    union __name##_sring_entry ring[XENPV_FLEX_ARRAY_DIM];              \
>  };                                                                      \
>                                                                          \
>  /* "Front" end's private variables */                                   \
> @@ -479,7 +487,7 @@ struct name##_data_intf {                                                     \
>      uint8_t pad2[56];                                                         \
>                                                                                \
>      RING_IDX ring_order;                                                      \
> -    grant_ref_t ref[];                                                        \
> +    grant_ref_t ref[XEN_FLEX_ARRAY_DIM];                                      \
>  };                                                                            \
>  DEFINE_XEN_FLEX_RING(name)
>  



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 11:31:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 11:31:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645477.1007656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r91ji-0007uq-8i; Fri, 01 Dec 2023 11:31:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645477.1007656; Fri, 01 Dec 2023 11: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 1r91ji-0007uj-5p; Fri, 01 Dec 2023 11:31:10 +0000
Received: by outflank-mailman (input) for mailman id 645477;
 Fri, 01 Dec 2023 11: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=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r91jg-0007ud-Fw
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 11:31:08 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1e2e2d6d-903d-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 12:31:07 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3333074512bso341479f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 03:31:07 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 t15-20020a05600c198f00b0040b501ddd34sm8787604wmq.48.2023.12.01.03.31.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 03:31:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e2e2d6d-903d-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701430266; x=1702035066; 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=szaZ5bgPR9xle1FvpT8uC3gS6BUCpjJitI+xr1TwCAk=;
        b=aaThJueNo7COkhZo5aZ5LgUmEDMX5eOl+etWeHUv6k2CgAIzA5UbJEL3WppeWIlCJY
         s4cBPNIl98n14kYyAPEloW4zEU0BO71NaEYpqsHb6/C/ZejxKhbQOHn3asYpL3n8cC1j
         VcVb/rON0q98PYBAfuvc4mlfj069cH5fUrt34=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701430266; x=1702035066;
        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=szaZ5bgPR9xle1FvpT8uC3gS6BUCpjJitI+xr1TwCAk=;
        b=I5vFcFN+G9GQwv7f2Zwii340qLSqZJJF4UevODMQd72gtyrFYcb7XRFIi8CdZMgMtp
         gRGBZWR3DJigFpSl2aTSDZ2JtLE1jDz+YcYZs3Bzrq/WrrNWt/AhIbOgGYr1EzvRCb6Z
         9bgfhi63GRjQCQ3fD7ZHg4CjSvi+LeNm6Dj2NzLBLQWQhtl+ul7GPRRnNT/tsBFcQyng
         mFoF0SBjEszWbXjNXl+ASVoFJ9r0oybH3Yxr+T++TfrJZXz05V0+B7NEIPHqcUL80X0m
         m4Ubwn9pCa7BWoGl1m1YxrzxVWpPpZDEZ2BpXXnNtUUA3HRiS8yFMzWr1S4L0AWY/c4V
         GuUw==
X-Gm-Message-State: AOJu0YwwWJ0+mhDUTlY2zS79H6wI3ZRcjjY/d76XSbzBXQNOyOcuonVQ
	c64TcUNEDSHmZV3gB429bGp08Q==
X-Google-Smtp-Source: AGHT+IF9OzgfeZ+9vDlbOLXYbiYip9h4G9PDY7LNak/0XRGXktLIxP7ZalV0C+cshA0UO4u5oKLm8A==
X-Received: by 2002:a1c:4c01:0:b0:40b:5e4a:2379 with SMTP id z1-20020a1c4c01000000b0040b5e4a2379mr624613wmf.123.1701430266427;
        Fri, 01 Dec 2023 03:31:06 -0800 (PST)
Date: Fri, 1 Dec 2023 12:31:05 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Message-ID: <ZWnD-a3KcWS83wXd@macbook>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <a65aafed-68c0-41dd-bf4d-3eeff87dd5d3@suse.com>
 <ZWjIX0Jo5gW5SEDr@macbook>
 <d0a4f187-4e84-4e0d-b478-6d8437a0b644@suse.com>
 <ZWmeV-y5RpGAG5cS@macbook>
 <0d9bc0cd-3719-4961-ae7d-3e27508000a2@suse.com>
 <ZWmzo68abRmRtfwN@macbook>
 <15fb0b37-da9d-410c-ae02-872dd45cd327@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <15fb0b37-da9d-410c-ae02-872dd45cd327@suse.com>

On Fri, Dec 01, 2023 at 11:59:09AM +0100, Jan Beulich wrote:
> On 01.12.2023 11:21, Roger Pau MonnÃ© wrote:
> > On Fri, Dec 01, 2023 at 10:41:45AM +0100, Jan Beulich wrote:
> >> On 01.12.2023 09:50, Roger Pau MonnÃ© wrote:
> >>> On Fri, Dec 01, 2023 at 07:53:29AM +0100, Jan Beulich wrote:
> >>>> On 30.11.2023 18:37, Roger Pau MonnÃ© wrote:
> >>>>> On Thu, Nov 30, 2023 at 05:55:07PM +0100, Jan Beulich wrote:
> >>>>>> On 28.11.2023 11:03, Roger Pau Monne wrote:
> >>>>>>> The minimal function size requirements for livepatch are either 5 bytes (for
> >>>>>>> jmp) or 9 bytes (for endbr + jmp).  Ensure that functions are always at least
> >>>>>>> that size by requesting the compiled to align the functions to 8 or 16 bytes,
> >>>>>>> depending on whether Xen is build with IBT support.
> >>>>>>
> >>>>>> How is alignment going to enforce minimum function size? If a function is
> >>>>>> last in a section, there may not be any padding added (ahead of linking at
> >>>>>> least). The trailing padding also isn't part of the function.
> >>>>>
> >>>>> If each function lives in it's own section (by using
> >>>>> -ffunction-sections), and each section is aligned, then I think we can
> >>>>> guarantee that there will always be enough padding space?
> >>>>>
> >>>>> Even the last function/section on the .text block would still be
> >>>>> aligned, and as long as the function alignment <= SECTION_ALIGN
> >>>>> there will be enough padding left.  I should add some build time
> >>>>> assert that CONFIG_CC_FUNCTION_ALIGNMENT <= SECTION_ALIGN.
> >>>>
> >>>> I'm not sure of there being a requirement for a section to be padded to
> >>>> its alignment. If the following section has smaller alignment, it could
> >>>> be made start earlier. Of course our linker scripts might guarantee
> >>>> this ...
> >>>
> >>> I do think so, given our linker script arrangements for the .text
> >>> section:
> >>>
> >>> DECL_SECTION(.text) {
> >>>     [...]
> >>> } PHDR(text) = 0x9090
> >>>
> >>> . = ALIGN(SECTION_ALIGN);
> >>>
> >>> The end of the text section is aligned to SECTION_ALIGN, so as long as
> >>> SECTION_ALIGN >= CONFIG_CC_FUNCTION_ALIGNMENT the alignment should
> >>> guarantee a minimal function size.
> >>>
> >>> Do you think it would be clearer if I add the following paragraph:
> >>>
> >>> "Given the Xen linker script arrangement of the .text section, we can
> >>> ensure that when all functions are aligned to the given boundary the
> >>> function size will always be a multiple of such alignment, even for
> >>> the last function in .text, as the linker script aligns the end of the
> >>> section to SECTION_ALIGN."
> >>
> >> I think this would be useful to have there. Beyond that, assembly code
> >> also needs considering btw.
> > 
> > Assembly will get dealt with once we start to also have separate
> > sections for each assembly function.  We cannot patch assembly code at
> > the moment anyway, due to lack of debug symbols.
> 
> Well, yes, that's one part of it. The other is that some .text coming
> from an assembly source may follow one coming from some C source, and
> if the assembly one then isn't properly aligned, padding space again
> wouldn't necessarily be large enough. This may be alright now (where
> .text is the only thing that can come from .S and would be linked
> ahead of all .text.*, being the only thing that can come from .c),

What about adding:

#ifdef CONFIG_CC_SPLIT_SECTIONS
       *(.text.*)
#endif
#ifdef CONFIG_CC_FUNCTION_ALIGNMENT
       /* Ensure enough padding regardless of next section alignment. */
       . = ALIGN(CONFIG_CC_FUNCTION_ALIGNMENT)
#endif

In order to assert that the end of .text.* is also aligned?

> but
> it might subtly when assembly code is also switched to per-function
> sections (you may recall that a patch to this effect is already
> pending: "common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly
> functions").

Yes, I think such patch should also honor the required alignment
specified in CONFIG_CC_FUNCTION_ALIGNMENT.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 11:37:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 11:37:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645484.1007665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r91qA-0001EP-3p; Fri, 01 Dec 2023 11:37:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645484.1007665; Fri, 01 Dec 2023 11:37:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r91qA-0001EI-0p; Fri, 01 Dec 2023 11:37:50 +0000
Received: by outflank-mailman (input) for mailman id 645484;
 Fri, 01 Dec 2023 11: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=gkum=HM=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1r91q8-0001EB-Pj
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 11:37:48 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ccf9d35-903e-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 12:37:47 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 447C74EE073A;
 Fri,  1 Dec 2023 12:37:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ccf9d35-903e-11ee-98e5-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	maria.celeste.cesario@bugseng.com,
	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>,
	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>
Subject: [PATCH v2] xen: address violations of MISRA C:2012 Rule 11.8.
Date: Fri,  1 Dec 2023 12:37:04 +0100
Message-Id: <a295b44a9fbb02f962720e086588437876e02ce3.1701430079.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

Remove or amend casts to comply with Rule 11.8.

The violations are resolved either by adding missing const
qualifiers in casts or by removing unnecessary cast.

Change type of operands from char* to uintptr_t: uintptr_t is
the appropriate type for memory address operations.

No functional change.

---
Changes in v2:
- arm/regs.h: add const qualifier to the first operand,
    change types of both operands from char* to uintptr_t.
- x86/regs.h: add const qualifier to both operands. Change
    types of both operands from char* to uintptr_t to
    conform with the arm version.
- dom0less-build.c: rebase change in the new file.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 xen/arch/arm/dom0less-build.c     | 2 +-
 xen/arch/arm/include/asm/atomic.h | 2 +-
 xen/arch/arm/include/asm/regs.h   | 2 +-
 xen/arch/x86/include/asm/regs.h   | 3 ++-
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index d39cbd969a..fb63ec6fd1 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -354,7 +354,7 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
     if ( node == NULL )
     {
         printk(XENLOG_ERR "Couldn't find node %s in host_dt!\n",
-               (char *)xen_path->data);
+               xen_path->data);
         return -EINVAL;
     }
 
diff --git a/xen/arch/arm/include/asm/atomic.h b/xen/arch/arm/include/asm/atomic.h
index 64314d59b3..517216d2a8 100644
--- a/xen/arch/arm/include/asm/atomic.h
+++ b/xen/arch/arm/include/asm/atomic.h
@@ -154,7 +154,7 @@ static always_inline void write_atomic_size(volatile void *p,
  */
 static inline int atomic_read(const atomic_t *v)
 {
-    return *(volatile int *)&v->counter;
+    return *(const volatile int *)&v->counter;
 }
 
 static inline int _atomic_read(atomic_t v)
diff --git a/xen/arch/arm/include/asm/regs.h b/xen/arch/arm/include/asm/regs.h
index 8a0db95415..b28eb5de7a 100644
--- a/xen/arch/arm/include/asm/regs.h
+++ b/xen/arch/arm/include/asm/regs.h
@@ -48,7 +48,7 @@ static inline bool regs_mode_is_32bit(const struct cpu_user_regs *regs)
 
 static inline bool guest_mode(const struct cpu_user_regs *r)
 {
-    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);
+    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() - (const uintptr_t)(r);
     /* Frame pointer must point into current CPU stack. */
     ASSERT(diff < STACK_SIZE);
     /* If not a guest frame, it must be a hypervisor frame. */
diff --git a/xen/arch/x86/include/asm/regs.h b/xen/arch/x86/include/asm/regs.h
index 3fb94deedc..64f1e0d400 100644
--- a/xen/arch/x86/include/asm/regs.h
+++ b/xen/arch/x86/include/asm/regs.h
@@ -6,7 +6,8 @@
 
 #define guest_mode(r)                                                         \
 ({                                                                            \
-    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
+    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() -             \
+                                                        (const uintptr_t(r)); \
     /* Frame pointer must point into current CPU stack. */                    \
     ASSERT(diff < STACK_SIZE);                                                \
     /* If not a guest frame, it must be a hypervisor frame. */                \
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 11:49:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 11:49:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645489.1007676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r920y-00042u-3c; Fri, 01 Dec 2023 11:49:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645489.1007676; Fri, 01 Dec 2023 11: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 1r920y-00042n-0x; Fri, 01 Dec 2023 11:49:00 +0000
Received: by outflank-mailman (input) for mailman id 645489;
 Fri, 01 Dec 2023 11:48: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 1r920w-00042f-Bg
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 11:48: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 1r920v-0006WR-6R; Fri, 01 Dec 2023 11:48:57 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r920u-0008CD-Tb; Fri, 01 Dec 2023 11: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=yMSXK98QlYB/Jd8BmLZrJnzDlEEXKGV847l6jUPNv8g=; b=nLahGZa98neUCdLG7wEzCLe5QG
	tUPuZV1laESwgp/l5IPicKPuEZP3KWnuU6fSnLm5UqK4tIbbevxxLCGoYu/uVcl/Em247BBAJSc7K
	C6mIWhv7w+Y2SoToM9tnV+YYQ2sayhmdEULUkt7KDRy2Hges/ONqpiwUXCy1ZHsUkY7k=;
Message-ID: <a33ffc19-1e1c-4126-aba4-4a2b0ee24cf4@xen.org>
Date: Fri, 1 Dec 2023 11:48:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-GB
To: Simone Ballarin <simone.ballarin@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, maria.celeste.cesario@bugseng.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <a295b44a9fbb02f962720e086588437876e02ce3.1701430079.git.maria.celeste.cesario@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <a295b44a9fbb02f962720e086588437876e02ce3.1701430079.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Simone,

On 01/12/2023 11:37, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Remove or amend casts to comply with Rule 11.8.
> 
> The violations are resolved either by adding missing const
> qualifiers in casts or by removing unnecessary cast.
> 
> Change type of operands from char* to uintptr_t: uintptr_t is
> the appropriate type for memory address operations.
> 
> No functional change.
> 
> ---
> Changes in v2:
> - arm/regs.h: add const qualifier to the first operand,
>      change types of both operands from char* to uintptr_t.
> - x86/regs.h: add const qualifier to both operands. Change
>      types of both operands from char* to uintptr_t to
>      conform with the arm version.
> - dom0less-build.c: rebase change in the new file.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> ---
>   xen/arch/arm/dom0less-build.c     | 2 +-
>   xen/arch/arm/include/asm/atomic.h | 2 +-
>   xen/arch/arm/include/asm/regs.h   | 2 +-
>   xen/arch/x86/include/asm/regs.h   | 3 ++-
>   4 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index d39cbd969a..fb63ec6fd1 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -354,7 +354,7 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
>       if ( node == NULL )
>       {
>           printk(XENLOG_ERR "Couldn't find node %s in host_dt!\n",
> -               (char *)xen_path->data);
> +               xen_path->data);
>           return -EINVAL;
>       }
>   
> diff --git a/xen/arch/arm/include/asm/atomic.h b/xen/arch/arm/include/asm/atomic.h
> index 64314d59b3..517216d2a8 100644
> --- a/xen/arch/arm/include/asm/atomic.h
> +++ b/xen/arch/arm/include/asm/atomic.h
> @@ -154,7 +154,7 @@ static always_inline void write_atomic_size(volatile void *p,
>    */
>   static inline int atomic_read(const atomic_t *v)
>   {
> -    return *(volatile int *)&v->counter;
> +    return *(const volatile int *)&v->counter;
>   }
>   
>   static inline int _atomic_read(atomic_t v)
> diff --git a/xen/arch/arm/include/asm/regs.h b/xen/arch/arm/include/asm/regs.h
> index 8a0db95415..b28eb5de7a 100644
> --- a/xen/arch/arm/include/asm/regs.h
> +++ b/xen/arch/arm/include/asm/regs.h
> @@ -48,7 +48,7 @@ static inline bool regs_mode_is_32bit(const struct cpu_user_regs *regs)
>   
>   static inline bool guest_mode(const struct cpu_user_regs *r)
>   {
> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);
> +    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() - (const uintptr_t)(r);

NIT: The const should not be necessary here. Am I correct?

>       /* Frame pointer must point into current CPU stack. */
>       ASSERT(diff < STACK_SIZE);
>       /* If not a guest frame, it must be a hypervisor frame. */
> diff --git a/xen/arch/x86/include/asm/regs.h b/xen/arch/x86/include/asm/regs.h
> index 3fb94deedc..64f1e0d400 100644
> --- a/xen/arch/x86/include/asm/regs.h
> +++ b/xen/arch/x86/include/asm/regs.h
> @@ -6,7 +6,8 @@
>   
>   #define guest_mode(r)                                                         \
>   ({                                                                            \
> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
> +    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() -             \
> +                                                        (const uintptr_t(r)); \

Was this compiled on x86? Shouldn't the last one be (const uintptr_t)(r))?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 11:50:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 11:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645491.1007685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r922D-0005Rx-DW; Fri, 01 Dec 2023 11:50:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645491.1007685; Fri, 01 Dec 2023 11: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 1r922D-0005Ro-AC; Fri, 01 Dec 2023 11:50:17 +0000
Received: by outflank-mailman (input) for mailman id 645491;
 Fri, 01 Dec 2023 11:50:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1r922B-0005Ri-PS
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 11:50:15 +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 1r9229-0006Xt-Kr; Fri, 01 Dec 2023 11:50:13 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r9229-0008CD-8r; Fri, 01 Dec 2023 11:50:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=S5KOqp0Tn34vvssixuQVJQ2XKec76KgCT1oywvZyju4=; b=rSF6nXTev7HoCkzXVDByMWPpu1
	gjFY4w9mlP/KLE863elNDTNeGPnE6OQzrhul1C7ECkWfL1++gGuPT1z8MTNwx9eYgBqWM5ld/l8IY
	a91LOUeaIEXYIzNXvG0Nx76PTKWEu/bFRpk1catrhwp07H12KsFNZPL7stCB8ZkGTNsc=;
Message-ID: <081984d2-1f54-4864-95bb-4ae5ae569bc6@xen.org>
Date: Fri, 1 Dec 2023 11:50:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/public: fix flexible array definitions
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231201112041.5260-1-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231201112041.5260-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 01/12/2023 11:20, Juergen Gross wrote:
> Flexible arrays in public headers can be problematic with some
> compilers.
> 
> With XEN_FLEX_ARRAY_DIM there is a mechanism available to deal with
> this issue, but care must be taken to not change the affected structs
> in an incompatible way.
> 
> So bump __XEN_LATEST_INTERFACE_VERSION__ and introduce a new macro
> XENPV_FLEX_ARRAY_DIM which will be XENPV_FLEX_ARRAY_DIM with the
> interface version being new enough and "1" (the value used today in
> the affected headers) when the interface version is an old one.
> 
> Replace the arr[1] instances (this includes the ones seen to be
> problematic in recent Linux kernels [1]) with arr[XENPV_FLEX_ARRAY_DIM]
> in order to avoid compilation errors.
> 
> [1]: https://bugzilla.kernel.org/show_bug.cgi?id=217693
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 11:52:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 11:52:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645496.1007696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r924C-0006TB-Ol; Fri, 01 Dec 2023 11:52:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645496.1007696; Fri, 01 Dec 2023 11:52:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r924C-0006T4-Lx; Fri, 01 Dec 2023 11:52:20 +0000
Received: by outflank-mailman (input) for mailman id 645496;
 Fri, 01 Dec 2023 11:52:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r924B-0006Sw-4D
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 11:52:19 +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 13cfb883-9040-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 12:52:18 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-33332096330so262060f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 03:52:18 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 l5-20020a5d5605000000b003330f9287a6sm4001098wrv.11.2023.12.01.03.52.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 03:52:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13cfb883-9040-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701431537; x=1702036337; 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=iuCMcAaU9a++WJnHM/qBcNi/BO/t6xyrDi2iaX2aYIQ=;
        b=g+HB7YTScRTzOQH32y1uDDnHePhtl/V+ZszdkqiFdAl7lLqqMFHv61PkvFrFKpy241
         XHcou/7/aDj3srxjW3lr9hxtLsajZwpYkMKQPnPW+VF3bGc0H/yjiO91vD9gwdBJlPkf
         j4dzUtzuyz9OJXVNAUXNVaJLi2cYnidF47Iec=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701431537; x=1702036337;
        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=iuCMcAaU9a++WJnHM/qBcNi/BO/t6xyrDi2iaX2aYIQ=;
        b=lWwE4NxoIP3FbbhCPvigPMk9DgwBrTZv/jZmsImgK76VxADzs/YI3xg4iLf0/JCwNV
         IwLVVuWzbwiLtrFuDsCjy8ZUfGw9whiC/Xi7ED9RleathI4XjTX1gd+J23uti7hx3t+P
         HA/EFOMZtaJVogkduJE3y7jhhsYYxKBCq7IDeEiDyUa4UADKUquctTit52cqmlrPdxWU
         jC/7e18tywsYePNub07llzwR42hJsrR4hw2A4N3X1JCSzYA6bfSslBXrHN+CRKjNu39F
         TCQ82mhCXPyAm70Jici5t57IeUC4Ifjdv/gQIzjwJXVpFBE3HjT1aB7QRKHFn5gPN2lb
         OG9g==
X-Gm-Message-State: AOJu0YwFg/X0R1K/ooOlGkEQQAIeC4Rt6jiN5/ZlLWJ/8qjxXWgIBcyf
	rcVjDwjw2QBNJsxZAD5hf39thA==
X-Google-Smtp-Source: AGHT+IHI10mCEOwajLHHDzxhkcmkHt8k2l1B4elZ1Hf3yCy7tfldY6Mn/TWheKtn3/4J/2EWSNJ5iQ==
X-Received: by 2002:adf:a1d5:0:b0:332:ca1e:711c with SMTP id v21-20020adfa1d5000000b00332ca1e711cmr636531wrv.21.1701431537614;
        Fri, 01 Dec 2023 03:52:17 -0800 (PST)
Date: Fri, 1 Dec 2023 12:52:16 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH v2 3/5] xen/x86: introduce self modifying code test
Message-ID: <ZWnI8DQ-ipk5RzNA@macbook>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-4-roger.pau@citrix.com>
 <alpine.DEB.2.22.394.2311291857340.3533093@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2311291857340.3533093@ubuntu-linux-20-04-desktop>

On Wed, Nov 29, 2023 at 06:58:38PM -0800, Stefano Stabellini wrote:
> On Tue, 28 Nov 2023, Roger Pau Monne wrote:
> > Introduce a helper to perform checks related to self modifying code, and start
> > by creating a simple test to check that alternatives have been applied.
> > 
> > Such test is hooked into the boot process and called just after alternatives
> > have been applied.  In case of failure a message is printed, and the hypervisor
> > is tainted as not having passed the tests, this does require introducing a new
> > taint bit (printed as 'A').
> > 
> > A new sysctl is also introduced to run the tests on demand.  While there are no
> > current users introduced here, further changes will introduce those, and it's
> > helpful to have the interface defined in the sysctl header from the start.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> > Changes since v1:
> >  - Rework test and interface.
> > ---
> >  tools/include/xenctrl.h             |  2 +
> >  tools/libs/ctrl/xc_misc.c           | 14 ++++++
> >  xen/arch/x86/Makefile               |  1 +
> >  xen/arch/x86/include/asm/test-smc.h | 18 ++++++++
> >  xen/arch/x86/setup.c                |  3 ++
> >  xen/arch/x86/sysctl.c               |  7 +++
> >  xen/arch/x86/test-smc.c             | 68 +++++++++++++++++++++++++++++
> 
> If possible, could we name this differently?

Wikipedia also suggests 'smoc' as an alternative acronym for
self-modifying code, would test-smoc be OK?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 12:08:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 12:08:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645507.1007706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r92JU-00023c-7U; Fri, 01 Dec 2023 12:08:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645507.1007706; Fri, 01 Dec 2023 12:08:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r92JU-00023V-4L; Fri, 01 Dec 2023 12:08:08 +0000
Received: by outflank-mailman (input) for mailman id 645507;
 Fri, 01 Dec 2023 12:08: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=2bjU=HM=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1r92JS-00023N-Ls
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 12:08:06 +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 47f20763-9042-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 13:08:04 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2c9d0d327d6so20183421fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 04:08:04 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 v12-20020adfedcc000000b003333471d94esm425266wro.90.2023.12.01.04.08.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 04:08:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47f20763-9042-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701432484; x=1702037284; 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=govxK1Pg15E792ruahwHUbGAUqY2MLCpOPz7wOxElKM=;
        b=lzGwli7YuVAcDbxru0JRUi75KMmShjeRp62/9hQTYI6blGvWPNPCzy9jaKtnYB9uDe
         ma5kpaDsp2r2Wgko3TdcqLDwXxiYzYvQEGDhC/1aS1snjejQXQt1qaAHIwuQYTciICI1
         0dJk0k2AoIQ9u35e8ix3yBbsMPW+6U3MapDG8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701432484; x=1702037284;
        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=govxK1Pg15E792ruahwHUbGAUqY2MLCpOPz7wOxElKM=;
        b=LemlSVgAx7w8sl6iGIPjFnDEP0sXkYxfm7tSXAdMejTRtC5qXJ2l3f8jpWVsmRPtS9
         9fgiqzpqvJHiVthVi5D+MSKgVzCKoc18TO+hUzuFmRfBnmUpa01K9damWrVjnC7v4F0e
         Fc2hxu+Dy2BDJRanXLr0uOxhN5EqIBWsdR0GaaaytzvaXmkvDkSgazXB9TWRMp/8byIX
         RjhbRzFZstaaw/HMep0JFFJ0LE1se6Pa/JHx1//Wcc52WhTfuqMVng8EGP723wIICR4K
         WnpSUaxzgEMiqnbsbb85kccx7Zj9MBosHeUh7QRqXVuZXtO7zRrCBMcRSmJs2J2dV/Tk
         XyhA==
X-Gm-Message-State: AOJu0YwHf7BYKC9rq2Ezu8MDcy9+OkS2l70qsuq6Q814XfF6imLeSr6G
	fAtRY1G7m92slVwZ/ZZwx8WP+Q==
X-Google-Smtp-Source: AGHT+IEx5GRIA6pViF7QIMET71iEvnmgYLRni0RjHFmCl2oi23fSv69DR+6FUBRssRRgiYjYZjn8mw==
X-Received: by 2002:a05:6512:3b99:b0:50b:d764:8818 with SMTP id g25-20020a0565123b9900b0050bd7648818mr912454lfv.100.1701432484054;
        Fri, 01 Dec 2023 04:08:04 -0800 (PST)
Date: Fri, 1 Dec 2023 13:08:02 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.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
Subject: Re: [PATCH v2 3/5] xen/x86: introduce self modifying code test
Message-ID: <ZWnMom8D8F4nEZFp@macbook>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-4-roger.pau@citrix.com>
 <3ac223d0-75a1-40b0-8bf9-1c556703c07d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <3ac223d0-75a1-40b0-8bf9-1c556703c07d@suse.com>

On Thu, Nov 30, 2023 at 06:02:55PM +0100, Jan Beulich wrote:
> On 28.11.2023 11:03, Roger Pau Monne wrote:
> > --- /dev/null
> > +++ b/xen/arch/x86/test-smc.c
> > @@ -0,0 +1,68 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +
> > +#include <xen/errno.h>
> > +
> > +#include <asm/alternative.h>
> > +#include <asm/cpufeature.h>
> > +#include <asm/test-smc.h>
> > +
> > +static bool cf_check test_insn_replacement(void)
> > +{
> > +#define EXPECTED_VALUE 2
> > +    unsigned int r = ~EXPECTED_VALUE;
> 
> The compiler is permitted to elide the initializer unless ...
> 
> > +    alternative_io("", "mov $" STR(EXPECTED_VALUE) ", %0",
> > +                   X86_FEATURE_ALWAYS, "=r"(r));
> 
> ... you use "+r" here.

I see, '=' assumes the operand is always written to, which is not the
case if alternative is not applied.

> Also (nit) there's a blank missing between that
> string and the opening parethesis. Also what's wrong with passing
> EXPECTED_VALUE in as an "i" constraint input operand?

Me not knowing enough inline assembly I think, that's what's wrong.

> > @@ -1261,6 +1269,7 @@ struct xen_sysctl {
> >          struct xen_sysctl_livepatch_op      livepatch;
> >  #if defined(__i386__) || defined(__x86_64__)
> >          struct xen_sysctl_cpu_policy        cpu_policy;
> > +        struct xen_sysctl_test_smc          smc;
> 
> Imo the field name would better be test_smc (leaving aside Stefano's comment).

Right, will see what Stefano thinks about using test_smoc.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 13:00:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 13:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645524.1007716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r937o-0008Rx-4J; Fri, 01 Dec 2023 13:00:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645524.1007716; Fri, 01 Dec 2023 13:00: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 1r937n-0008Rq-Vj; Fri, 01 Dec 2023 13:00:07 +0000
Received: by outflank-mailman (input) for mailman id 645524;
 Fri, 01 Dec 2023 13:00: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=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r937m-0008ER-Mv
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 13:00:06 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01on061e.outbound.protection.outlook.com
 [2a01:111:f400:fe02::61e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a94436a-9049-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 14:00:03 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PR3PR04MB7337.eurprd04.prod.outlook.com (2603:10a6:102:81::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.15; Fri, 1 Dec
 2023 13:00:00 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 12:59:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a94436a-9049-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gyKlqa7/x33u3vvON54ts0F+DQi+rH3+SkslL0n3MJDHwZRb5IZfPRBjiq6pY3oUbth84VbSMFrY2Oiw1iwPjijaqDrbhJIKj51Ah5C8OKDNaSYaiJU/2rkKNf7Jq0zB0rF2SNgS7q8k9+1Um9LxdwA/s4Kfiviuj6GedJ3/wY3wiUEJjj5pcsegOFZnHL6slP7b/EeSIxMouFQJIHmh0f17sW1XZug9JK4/X3PNeBbOmKHLKdhVm+C3iY36M85Wgx2ouS7b7tYEw6sQ8WrP3249Y5tzATy12F6R0NHwvVK+KlNHhK9dLN1awt9eTk+P467tKWllC/W38Cg/f+HAIw==
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=lrn6E0UtMKUsPSSAmahxhWgTogq/IBlkzFwsmU2oYeA=;
 b=E7L1HN236fAL4xQnMByZTfaxtTC8rVEoyrEEYtvt+4gXWbByA2yXmnEfX+F1tgG55VW5MUc/XR4hZDOmU4Dg1nXUZYCbaC1h9Gotg4rgDqi5g+EP1tD5HW54Q2wVWM2l6jhVcZ1W+2Emq423AxMTi+t9zG6NS+IfZqJy/6m7XK7bCqyyg9aPwzF462bBrvpKOyUBpWORIauFlblGdH1pKm2fhjzuM/dZBZAiGKhPCgy5aFsQc14eo/LQcv7GrDJ9FgIv12KphzQRwCu4vMri1qJeeDXu5vyAz74OXvhnSuAcByDEpWsmwhP4mGPSi6LV3EdUY27Tgj4vx1Nzj3kDIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lrn6E0UtMKUsPSSAmahxhWgTogq/IBlkzFwsmU2oYeA=;
 b=4/UMLd/zEq3mNxeh2P7rhYhHTcSDj5xqSXoqIpEJ/QXGTNuK6ezUhzQu3bmfiFgZdo2ZoH310/JPVsmhzwNZhN5awqy2Ts9W3xGmjbvVKeL/9kVU1i3TsU2ehWACpqUtEQGm+021r0gE0Vu5+EyUTuT1f0NfyeQISHSaEb8QSpEjcQFyMwVjD+XaTqgDGgYUXIvhwVjSwMPbzgfBIf6JlXZ4cEXX+KfRnMHJibU/qURxtUKawmQMHnik/B5EOBHgqWK3S50J5SMJuSRVzdgyXWTMYpeUY++AOWy3wuH7rMCywOqvHqtz44jYmWcn9X+TV6ddqzgju/QW4/51Ko2U1g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <0ceb54df-8121-442d-b9b7-f505e26a5abb@suse.com>
Date: Fri, 1 Dec 2023 13:59:57 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <a65aafed-68c0-41dd-bf4d-3eeff87dd5d3@suse.com> <ZWjIX0Jo5gW5SEDr@macbook>
 <d0a4f187-4e84-4e0d-b478-6d8437a0b644@suse.com> <ZWmeV-y5RpGAG5cS@macbook>
 <0d9bc0cd-3719-4961-ae7d-3e27508000a2@suse.com> <ZWmzo68abRmRtfwN@macbook>
 <15fb0b37-da9d-410c-ae02-872dd45cd327@suse.com> <ZWnD-a3KcWS83wXd@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZWnD-a3KcWS83wXd@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR3P281CA0179.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a0::16) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PR3PR04MB7337:EE_
X-MS-Office365-Filtering-Correlation-Id: 08a60b68-31e6-420a-20cf-08dbf26d6cec
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qPmmQjXZ7yDHxBQsm1cPPYZVPt43xO8jsVlcXLpoUJG93rvNhS5s9yd0CY+uiiWh7xD+3qZRcaMeNtSU4fM3+PW0dVGR8wJLcEsj4dQ7iiKXfURz01fhIh3uAb5FeQ+ZHLobjoFasMWncvHEh2ZLISh6OGQiZgf+DM8vHYliCEK//uLe8EFceMZAUUvYB2al1fzb5sb9acekafZi6i64MZekgAZiFSac8p0BmLI28VFyutp7IB2NjcTCg1WSFNeGRQZMVd0OeoONknQOL8g+zCZTeSWgL70YVSGAJb8lvMZeyeumpiLdjmWhNMNG7CYdXKnjnqzJhuT6KkZGBVq02OR/9aahU3hNWxNwRNP+FqOTpbeRahHCzzTtUmvy4rZdRQkbt1gbObmDbAkGVQlpK7/Qv8GI2Ua1VsBpEOQBcVZi/lIhQkojX/G04RAzFhRQDR7RideedF/543/Og7VZk01heJTjJzRthfR7C+4MlxOBroBXiZnOwc0IFuOkvvrJQkdvQfQSyTXkDv38KBAzyPvyeuMckiilP2I+AgEKxwfrA54XAWcsymK5Pve1plcuuEguZ8n3Sazj9ziqZuXrH2klNLEfW842hKZfkyDJcLSw4uUZMMTq9dRwn9+mutTXGF/gFpovnU8rrU5qxXeFXA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(396003)(136003)(346002)(366004)(376002)(230922051799003)(451199024)(64100799003)(186009)(1800799012)(83380400001)(26005)(2616005)(508600001)(36756003)(6506007)(6512007)(53546011)(5660300002)(66946007)(2906002)(41300700001)(6486002)(54906003)(8936002)(8676002)(4326008)(66556008)(66476007)(6916009)(316002)(31696002)(38100700002)(86362001)(31686004)(66899024)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MlZpeEdjbFF3cHdOM01qQTdQanNkVEVOOGFzV3NxOEhvRFpwc1Z6VkdJN0Q4?=
 =?utf-8?B?Mzl5NHdZNzUxWi9ueXg4UUhZcHVZWSs2ZmM3YXBIeVhWQ1I4VUlBdUNORjJv?=
 =?utf-8?B?UDl0WGRISm96VkRoNFQ3ZVNCZGJxejlrNzVXRzVCc0R3Y3ppUC9zQk5uV0JS?=
 =?utf-8?B?WGFZMXpidmhFcndsNG5YMjBvNk40dDg2RzViZ2tqUTNIdFM1Y0toejViRUxQ?=
 =?utf-8?B?Y3N1OWlXM0xvQUVtTlhOUWF6ckw1cHBaZFRlQ0hpUURQU2NweHlxTW5mTytW?=
 =?utf-8?B?QmN6NUJwRHdzUG9oenMxcGNtRi9kUnhSd2FyRi9aWm9IVFp3ektZc1Z0SUZt?=
 =?utf-8?B?MHljbUIrTnlzVVd6cDFIOFF5ZkRYMWY0eUdTdE5JbFIxTVJvdGlCd2JDT2FF?=
 =?utf-8?B?NFo3aHBOTzdjblNVMjZUOFVoejRPb2ZiMFJsMi96bXQ2T0pVTk5nN25UL1g1?=
 =?utf-8?B?YlQrYzVwWUdWMFZwaWRuaVdXWE1XK05mZlFMVDhxVlNMRnJ3cEtkNmt3N1BX?=
 =?utf-8?B?b2J5aWhSazZOWGdsdWQyNDFkSFdzcHJ6RVAvbTBKeXRwbHdnK3IwZW9Ld0Zh?=
 =?utf-8?B?QW55emJyRDU1SzlUZ2FVNWVGL0pFUjVIMHNnMmI5dzQzQk5MZi9oamFVd3pr?=
 =?utf-8?B?MjRMa3pVYk1YWnE1ekZoRWphMExuU3pFUnFjaTR3b2ZEN0tRRi82NUdJNjRo?=
 =?utf-8?B?Yk1DVDhLTHJOMW9GcHEvTG9yNXZrZzUzajkwaXVvL2lWd05UUWdRVW1sTFRk?=
 =?utf-8?B?ODR5M0hmeGx6UWlXc0lJcDVpK0Nid0tZclF3c2Q1MUN4UGhIZHRBeFhtKzEz?=
 =?utf-8?B?d3RTczFnUW1TZE5oWDRJQU1Ob3NhZElxcWhMRTZpVitkblErbWZzckNZTEpk?=
 =?utf-8?B?SVc4RlBnUStHaWxrZkp4OC9ZZU5WaEJ0S1F0UDNpcVVkZlVvU08yL25CWFkw?=
 =?utf-8?B?cy94eDF3dkIzeFIzUFRsNm10R3RSbHEwMjZkZzdNS2I3NVZMM1ljSlhWT21o?=
 =?utf-8?B?RjRPOUNNcXQyeW1iOVNHTGhQS09VUW50aVRnUjc4NzJIK0FiTlRiTkZmMXgr?=
 =?utf-8?B?cUNmdm1DZ0RoUk15N1ZVdmFBc1ZkNGR4eW1WUnNpM0dubTVZMXJSOTdOUkRP?=
 =?utf-8?B?S3hQa2FtVURFbHN1S1ZMT0JDaDgxd1BVRGRLdVlBNmtBeUgrdzdkZjFGSnY5?=
 =?utf-8?B?eElMbitlcnB3dE82aHB2cG9UaXlWK0J6RVBQbmgyRG56T3BkSkROYmlUK2xG?=
 =?utf-8?B?TVY4emFIWGNSbzBxdGFvbVdZOVo2eTVKSU5Hc29tTEdENWtHd1Jxbmdra3Z2?=
 =?utf-8?B?OW5HZmtzUU1XV054Zk5zVkVwSzFKMkR1OFViMTltSTVabTNIOXVwMHRFdEUr?=
 =?utf-8?B?SWljdE9Dem5oeHg4aTBkaHE3VkxyRXhpUENzb2NURGtXN3BGN0MyTGNyUVVw?=
 =?utf-8?B?R0J5WnAzU1RZd3plRWQ3ajc2VTdDcDhEMVVYSE5rMGVobnJKK0UzTTdNeGlZ?=
 =?utf-8?B?V05TcHdINjB2TUJzOFRxdUt3SVhOMGJYRm5sUk9YS2FWWlo2eG83UDNiOFZk?=
 =?utf-8?B?WGw0czlUeEZjZmlKSjk1Z1VIUWZYMnpVVlRlYjhKQ09OUGVTNmFURXUwZE9k?=
 =?utf-8?B?ZUVkeWhYdVYxT0pCQzB3SklzZm1QSUY0Z1BFRlZGYlo5M1J6M3VOT1J4ZEFw?=
 =?utf-8?B?ZnVtREhZcHNEMGF2Ykp3WDF4S3pxb2JuaUk4RnNnd2pPNmJFcVdNZGNDc0Q5?=
 =?utf-8?B?SVovamtNRlVSbVpWZlhRVmIxaGQ4cTNTN2NEaGcwZWtZQS94WG91OHViSjFL?=
 =?utf-8?B?RXlZWi9EeDdya1VnMk1zb1ZreERieHNRRldMZXFTeDdQRWlrc1duQ2NOUk1V?=
 =?utf-8?B?bmRHVHFQVkE1Ykk5a3V1MllhSHQxSFhEL3V6NzlVSFpqYVYrZHFuOSt0RVE3?=
 =?utf-8?B?SXZvOXNnYnpkTzRRdUNDRnRaTFNiZ1FvcmN0d08zZ2U3V3lwZkFNckQxc3B2?=
 =?utf-8?B?Wks5T1JoNkRaUXBLL0FNcFZ2L1E5b1lMaUFCZmhFTGsrWVRYTDQ2L0ZaUUpI?=
 =?utf-8?B?R00xNGpzeEp0UDYrbXd3QmNoN2EvY1hQYWhjVnZFalg3aXVRL05pc2QvcURr?=
 =?utf-8?Q?XC2ENZQDtmSzx28zwlVk55VW0?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 08a60b68-31e6-420a-20cf-08dbf26d6cec
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 12:59:59.7520
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ylVCOgQoOW2Bg/IdsvzHbQmcnZqsoiV8EjO0g402oyjGLlrQBCj954fEREy9UTf6twCkA1I17FAEXxVqx2tcrQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7337

On 01.12.2023 12:31, Roger Pau MonnÃ© wrote:
> On Fri, Dec 01, 2023 at 11:59:09AM +0100, Jan Beulich wrote:
>> On 01.12.2023 11:21, Roger Pau MonnÃ© wrote:
>>> On Fri, Dec 01, 2023 at 10:41:45AM +0100, Jan Beulich wrote:
>>>> On 01.12.2023 09:50, Roger Pau MonnÃ© wrote:
>>>>> On Fri, Dec 01, 2023 at 07:53:29AM +0100, Jan Beulich wrote:
>>>>>> On 30.11.2023 18:37, Roger Pau MonnÃ© wrote:
>>>>>>> On Thu, Nov 30, 2023 at 05:55:07PM +0100, Jan Beulich wrote:
>>>>>>>> On 28.11.2023 11:03, Roger Pau Monne wrote:
>>>>>>>>> The minimal function size requirements for livepatch are either 5 bytes (for
>>>>>>>>> jmp) or 9 bytes (for endbr + jmp).  Ensure that functions are always at least
>>>>>>>>> that size by requesting the compiled to align the functions to 8 or 16 bytes,
>>>>>>>>> depending on whether Xen is build with IBT support.
>>>>>>>>
>>>>>>>> How is alignment going to enforce minimum function size? If a function is
>>>>>>>> last in a section, there may not be any padding added (ahead of linking at
>>>>>>>> least). The trailing padding also isn't part of the function.
>>>>>>>
>>>>>>> If each function lives in it's own section (by using
>>>>>>> -ffunction-sections), and each section is aligned, then I think we can
>>>>>>> guarantee that there will always be enough padding space?
>>>>>>>
>>>>>>> Even the last function/section on the .text block would still be
>>>>>>> aligned, and as long as the function alignment <= SECTION_ALIGN
>>>>>>> there will be enough padding left.  I should add some build time
>>>>>>> assert that CONFIG_CC_FUNCTION_ALIGNMENT <= SECTION_ALIGN.
>>>>>>
>>>>>> I'm not sure of there being a requirement for a section to be padded to
>>>>>> its alignment. If the following section has smaller alignment, it could
>>>>>> be made start earlier. Of course our linker scripts might guarantee
>>>>>> this ...
>>>>>
>>>>> I do think so, given our linker script arrangements for the .text
>>>>> section:
>>>>>
>>>>> DECL_SECTION(.text) {
>>>>>     [...]
>>>>> } PHDR(text) = 0x9090
>>>>>
>>>>> . = ALIGN(SECTION_ALIGN);
>>>>>
>>>>> The end of the text section is aligned to SECTION_ALIGN, so as long as
>>>>> SECTION_ALIGN >= CONFIG_CC_FUNCTION_ALIGNMENT the alignment should
>>>>> guarantee a minimal function size.
>>>>>
>>>>> Do you think it would be clearer if I add the following paragraph:
>>>>>
>>>>> "Given the Xen linker script arrangement of the .text section, we can
>>>>> ensure that when all functions are aligned to the given boundary the
>>>>> function size will always be a multiple of such alignment, even for
>>>>> the last function in .text, as the linker script aligns the end of the
>>>>> section to SECTION_ALIGN."
>>>>
>>>> I think this would be useful to have there. Beyond that, assembly code
>>>> also needs considering btw.
>>>
>>> Assembly will get dealt with once we start to also have separate
>>> sections for each assembly function.  We cannot patch assembly code at
>>> the moment anyway, due to lack of debug symbols.
>>
>> Well, yes, that's one part of it. The other is that some .text coming
>> from an assembly source may follow one coming from some C source, and
>> if the assembly one then isn't properly aligned, padding space again
>> wouldn't necessarily be large enough. This may be alright now (where
>> .text is the only thing that can come from .S and would be linked
>> ahead of all .text.*, being the only thing that can come from .c),
> 
> What about adding:
> 
> #ifdef CONFIG_CC_SPLIT_SECTIONS
>        *(.text.*)
> #endif
> #ifdef CONFIG_CC_FUNCTION_ALIGNMENT
>        /* Ensure enough padding regardless of next section alignment. */
>        . = ALIGN(CONFIG_CC_FUNCTION_ALIGNMENT)
> #endif
> 
> In order to assert that the end of .text.* is also aligned?

Probably.

>> but
>> it might subtly when assembly code is also switched to per-function
>> sections (you may recall that a patch to this effect is already
>> pending: "common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly
>> functions").
> 
> Yes, I think such patch should also honor the required alignment
> specified in CONFIG_CC_FUNCTION_ALIGNMENT.

I've added a note for myself to that patch, to adjust once yours has
landed (which given the state of my series is likely going to be much
earlier).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 13:03:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 13:03:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645526.1007726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r93B2-0000uT-GM; Fri, 01 Dec 2023 13:03:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645526.1007726; Fri, 01 Dec 2023 13: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 1r93B2-0000uM-DO; Fri, 01 Dec 2023 13:03:28 +0000
Received: by outflank-mailman (input) for mailman id 645526;
 Fri, 01 Dec 2023 13:03:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jO30=HM=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1r93B1-0000u0-BC
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 13:03:27 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on0613.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 034ac8f0-904a-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 14:03:25 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PAXPR04MB8094.eurprd04.prod.outlook.com (2603:10a6:102:1c1::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.13; Fri, 1 Dec
 2023 13:03:22 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.012; Fri, 1 Dec 2023
 13: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>
X-Inumbo-ID: 034ac8f0-904a-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K7OyO88LxNQ9r6NRFGZxkQ2Jn386hBemUGNhJYzLq35Pj7eiePDb3j1YVFz5vxEVPprfKGZ1YYm/71E/Vq9pTlfNUrgfT0XmF1X/X+yitfTcyfOoio5BPkNah23Qk5zEuPdtzr8Zif8AgD8YM1TykQNkHWW5yxj/+q7BEU9rpuMp2l5XLITIJ4qkfQD5wNklf82JSuHLiXpK+2IZ5fualxRB2y5kEF1m6AhEabm5svbbAY5iSoyJvo5+SQUVCdjSmIxnRYGPeWXeqS8PgrbbMFC8+/Fd4RsERFI5bXOOTHtqAKEpxUgbcPvadLNBqwNMUte91XzwcEr5rF27du5txA==
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=LzYncaUp0mxw7/UVCsSWmcG0GRA2mJTfkJT84GPy9mg=;
 b=GUOJa29W8pX+w6yNCNuCVhKyMbplO1PApuoIlpC7x71Xj/5sv3ccz4f7x3L45oaCB31peHT22UEo2yYKpyLQ7K7a23ovWUMasUKXndcvnj0lwDeWk2KH+Nj+feciuo/TK5FO7SYlFc22egytWWjyWGSnAVWYtRqmzZgwE7HI/kjo7tJaHwGhDqjK48aMQjYzMhfujns/VYYUrFMTdHI/e/8SIbkuc8ztLTWkHdL7MQZyXw0jsJs7wH/uTS7WHhZxWJZ4zF29V77suieupFZZVOwRfkfwewBGGqxm6sHbpqC6/qgSISMIrMf0+KFKscDQjmk+MxILnGDPYBFJjWJFOg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LzYncaUp0mxw7/UVCsSWmcG0GRA2mJTfkJT84GPy9mg=;
 b=XKJW1ygRHMP1Aw4uKgpZT8qKCul1PUcGismJ3Y1cMBIscqYfxqgXwgFQUMZXpYAaFOA8O0O+/Gy85+yk0SRItntOaniR4fX96cRiFr9l+wV7xpt9jobLAuZhJhSEg+jbHmgqGEOp4XP7qHpJA2Zzvx2NZAPV+plwundxXQw3Xan0hoJ18YikGyXGeNHfWOluaxpgaebSlM22tSBjccFkdEhGE8gvPrUestc2DeieiGv2tFVb/J53edYyi1MelR9WlEWC6hJWtDevWeHC1GdjtLVe6ajNWpVgQ8WzNxVf/AoGKx/hxI+7acZATKQ+Q+WWPz+q3tGxad0aak5DNWYCFA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <ca2d37aa-fb8f-4b49-8909-ad7d4065a59c@suse.com>
Date: Fri, 1 Dec 2023 14:03:19 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-US
To: Julien Grall <julien@xen.org>,
 Simone Ballarin <simone.ballarin@bugseng.com>
Cc: consulting@bugseng.com, maria.celeste.cesario@bugseng.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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <a295b44a9fbb02f962720e086588437876e02ce3.1701430079.git.maria.celeste.cesario@bugseng.com>
 <a33ffc19-1e1c-4126-aba4-4a2b0ee24cf4@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a33ffc19-1e1c-4126-aba4-4a2b0ee24cf4@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0140.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:95::12) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PAXPR04MB8094:EE_
X-MS-Office365-Filtering-Correlation-Id: a442fcd0-3241-49d0-3731-08dbf26de5a7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	QhPeUItKNhyWDHPNXj24Uba+SSfp2CK5xfExjKEYuJv2pukdqNifXudaa0stXBRenpXqdtck+HZrFtQwI/AdLXTD0ntkFFSfKi835+d5nv3kTTXJJnIvfMN/xdKCMHuJemnFK1mcUr7K4E4+MeLAXClNLo0A9yg3bM95cbI6tQv6QPmWfYv9NdE1BR4zKhULjikKp6B5qTkdbiYSmabL+/3EVTPFmSZyWKhp83X9gq8939X0YW0r5ySnwAwKSseUhuZnFSwxKW7XUzkCKZAbgj0F4XSuc+WRG203DKSVInLyVymZRMmIIuxfGsdHe9PQhFazPBolgPknt4HafxzV3Ymo3nQBvOGvypptKOwrbTwk9XCYfptK+KgTceTd2eGswdALM3WHQrtN8UaEDtLeqO1sXw9UP3pbAqU9LrkDFVTi0JsASES1PX8ZToYktMABroe/oLFagOtXL/m8P2gYH946ED/+lDwlQIjgjqsj5bGureyLIgsRQZRSmdUafSO3pktpLiYId/7fg8yJOg6pwT49jTK6DhCXGQWosaIiYY00E+2BCxz29jQexEBBt9xLdgczBhoYQIFuexk/bTvw/zGMsELC4rFRhzCOO+1sULqJpnaUArMOAlcOj0W3MtQPxAIq/Uzr8jQ6AE8y+5u0nQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(136003)(376002)(396003)(366004)(39860400002)(230922051799003)(451199024)(186009)(64100799003)(1800799012)(2616005)(41300700001)(36756003)(38100700002)(2906002)(31686004)(5660300002)(7416002)(26005)(508600001)(86362001)(6512007)(6666004)(53546011)(6506007)(6486002)(31696002)(8936002)(8676002)(110136005)(54906003)(66476007)(66946007)(316002)(66556008)(4326008)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SlpNWkh1TU9vK2tRYkhTbkNDT3lBMXBPTXBMcWNNaVozbEtBeHRTZGh1alVo?=
 =?utf-8?B?OUVySEhpNkl4OCtVdFVqVHhtRGNSMzh6anVXclF4Mld5WVRIWU5zM1lxdk9h?=
 =?utf-8?B?c2dMaXg5R3Yyb2hVTldKT0h3ZDhiL1hFQWlSUlBlUVREbmMrb25iYUF3d3ND?=
 =?utf-8?B?eVc5bTBYWFZvWDFlYjlSSUhhdEpyZGFQK29qVzRVZ0pIbnJhRUNtMC9KQUR6?=
 =?utf-8?B?RVhKRE1jK0lSYXJZTGdFVzlnbVhYMHI0aTUwWVNRamJCNTZ1czlaUTlsZWFx?=
 =?utf-8?B?d1REZnphcGlreFZoQTNhNWljdnA5T3cyeVdwQWZFKzlzODVwcnRXK1dZV2t0?=
 =?utf-8?B?ZFhERmtZK3hLZWhVbCtFbVdCUmpDVmNkbXc4NzZZSXVkZ3hsVUFsbDZxbGtF?=
 =?utf-8?B?VnNGTjJvanU4d1lROFZJa1ZsbmlRZWFsaGY4T3pQZ0ZScWZIaGowMHlSTXli?=
 =?utf-8?B?QlEyNlRvcFZ4OTYwNDVjcTg5UktRU1ZFOG14SDNHaS9jVkhhMElMQ3YrNmVa?=
 =?utf-8?B?Z3lnY2ZMMjZrL21HdUdqZGIzZFZpTy9aVkxUVXQ1a2crVk9sYlh0YWdXNm1T?=
 =?utf-8?B?RW03ZmkrekZ5Z0tFdm00V2xDR0lJM0dkNktvMTFmYnY4Q1kxZDJSNmVPT210?=
 =?utf-8?B?QWhuejd2d2IrbUVEWlFpbFpBL3NIRWZZUEhDeTZnYVpTaEROMnRMeThDaHRG?=
 =?utf-8?B?TXhIRlFuM1U1dXdydGxPY1FnekJyQ2l0R3g4NmVZS0hVamkyUERQQVB4Y2Vr?=
 =?utf-8?B?ZW4zRXFFWnJybnZONzBtTFBLWTJQMENBeURuNm1CVzJFejJHMGpwVmNoZXlC?=
 =?utf-8?B?L0JUSU1KbVFtbCt2T3ZNb2REempRV2dnbzJXR2hlWkE4YUoxeVhna0VGbldY?=
 =?utf-8?B?MDNybUlxQWxDWjMxV002dTRpN0k0a1BDYmFJT01vZWxzUDRSNVJBWFo3NUh1?=
 =?utf-8?B?Sjd2aVYvYllYY1dDTW0yS2h1bHFyZHZ1cmJXemhVWlFlQmpvZjFRRU8xcUF3?=
 =?utf-8?B?MFpvdmRQWS9vanFYTTZzNmdIaWQwbFlHUVorK0xEVDJ2US9yeGVZUWlzSzd6?=
 =?utf-8?B?RGJiVGgxc2I4Y0lFaytKTG9MMFpzK1l5cVJjVUNUWGVvLzZPVk5GUS9IVUQ5?=
 =?utf-8?B?eXBRYlEzMU92Y0NlamJDYlBmcW0wTjRPL1pVSlFsS3dSb1RlRWYvemNrdXU1?=
 =?utf-8?B?bG9rekRkYytVSUNWYmRTVmdKais4b3JDZmxRZHdGNEtKNENsWkdMS3IyWkdG?=
 =?utf-8?B?OXZzQTA2N0NJd2x3QzFMRElKRkVqeGlKU0ZObWdVZjkzbWNWL0RyZUFwT2N1?=
 =?utf-8?B?eUoxKytzRW1KMkRHM3ArdUtNdkZ5R3F5Yk5RSEZmTnpkWlpQcS83WW5UL3JV?=
 =?utf-8?B?ZjQxZEU0TmZYV0Jjb29LcDhLaW1HTXpoZ0ZQaStXNDU5aldsNEZBVjFYazNB?=
 =?utf-8?B?anNGb2QyNVh6aCtYclJMSEg3YlkxM1d3cms0bHREdXJQUmxwZE1xaEFTQitk?=
 =?utf-8?B?ME1ZUlpma2RZUzhtVklPOWdpNVk4SkxhSW5rK0RWbHltRzBENTRzSy9UaVlo?=
 =?utf-8?B?cmZNd0JCVHJNQmR1WFR6OWtsVmtIcVBzT0Y5TXo2bTdtRzV4MUFiVGpIbUdS?=
 =?utf-8?B?Vm5nUWpBSi9PdzNFcWN3NjFrQ0VJalBzZnVGS241YWlvcEM0RENPTzZSL3BM?=
 =?utf-8?B?TGdsQTd2ZDlwNXllUEQyMkozbk53dGZTSWx1QmlrdDVGbTVuNkR6REJLOXhl?=
 =?utf-8?B?VWhnUmt0VTRUSDlCZEVyOVBreElxWnk4d1didnFnVXBuM3pUVGlSZG9aeFlD?=
 =?utf-8?B?cWY0U1c2ajU5YVEyV2pWSGJuT1dBb2ZMVlc2MXlRd0ZGR3FHaGYvR2xkbGlG?=
 =?utf-8?B?U0lCRmtuVVM3ZFJHTFlZeTNDM25lZ1dXM2xzR3RYVjFrL3lIdVpvRkRWa3lU?=
 =?utf-8?B?c3lnelp1TDd0bmt5WVh2UGJLOHVlVFRZS25aTXBUOXRheDd2empVTUJzMVg0?=
 =?utf-8?B?VmQra1NKeWhLYXlwczJWQ3ZGVS9sRGpmV3pDVEdMQm9JUHN0WUZBS2dyektD?=
 =?utf-8?B?M3B2dDUzN1BFaHNDY3B0eXc2OFBQL0hOekpubDJ2TStRbkU5MHladTZ5MW5D?=
 =?utf-8?Q?BY8Xub1fdSQTb7yBGQuJs2LK/?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a442fcd0-3241-49d0-3731-08dbf26de5a7
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 13:03:22.3889
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 90jd+ZgRXryRMQAKlnvNvKenhb8i0S2QSuNaFn5K8RVexIffirz18P1uwRMAAOaJKb5k4i4/dN0XKYSfo3Z0Lg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8094

On 01.12.2023 12:48, Julien Grall wrote:
> On 01/12/2023 11:37, Simone Ballarin wrote:
>> --- a/xen/arch/arm/include/asm/regs.h
>> +++ b/xen/arch/arm/include/asm/regs.h
>> @@ -48,7 +48,7 @@ static inline bool regs_mode_is_32bit(const struct cpu_user_regs *regs)
>>   
>>   static inline bool guest_mode(const struct cpu_user_regs *r)
>>   {
>> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);
>> +    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() - (const uintptr_t)(r);
> 
> NIT: The const should not be necessary here. Am I correct?
> 
>> --- a/xen/arch/x86/include/asm/regs.h
>> +++ b/xen/arch/x86/include/asm/regs.h
>> @@ -6,7 +6,8 @@
>>   
>>   #define guest_mode(r)                                                         \
>>   ({                                                                            \
>> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
>> +    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() -             \
>> +                                                        (const uintptr_t(r)); \
> 
> Was this compiled on x86? Shouldn't the last one be (const uintptr_t)(r))?

And again with the stray const-s dropped and with indentation adjusted.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 13:20:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 13:20:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645532.1007736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r93R5-000503-4W; Fri, 01 Dec 2023 13:20:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645532.1007736; Fri, 01 Dec 2023 13:20: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 1r93R4-0004zh-Vx; Fri, 01 Dec 2023 13:20:02 +0000
Received: by outflank-mailman (input) for mailman id 645532;
 Fri, 01 Dec 2023 13:20: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 1r93R4-0004oi-HX; Fri, 01 Dec 2023 13:20: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 1r93R4-00087K-4h; Fri, 01 Dec 2023 13:20:02 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1r93R3-00039a-R4; Fri, 01 Dec 2023 13:20:01 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r93R3-0006Pr-QX; Fri, 01 Dec 2023 13:20: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=GlTTR4u3TlaUxrYyQX3LtCjEjPBq8J5yvLg19tj/ZT0=; b=QZiu7ViUXNFEidxDqpbDsqeLp9
	QKxDZI3psf0hK3ew6PI+93PefuicFt1ZK8ameERVVDh8/DgizlCW9T7Cz9vgBUcV7oie/e1Q2mua7
	b41kx3ENPQ6jebULrLU5ziFJA2uhxaA3iXVFq4HlSYKCvbaAYiGhq5pVqYm05kRiDjsU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183963-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 183963: 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=1571ff7a987b88b20598a6d49910457f3b2c59f1
X-Osstest-Versions-That:
    xen=def73fc14407252cc801f35cd7746e60ccd70884
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 01 Dec 2023 13:20:01 +0000

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

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                  1571ff7a987b88b20598a6d49910457f3b2c59f1
baseline version:
 xen                  def73fc14407252cc801f35cd7746e60ccd70884

Last test of basis   183960  2023-12-01 04:00:28 Z    0 days
Testing same since   183963  2023-12-01 10:02:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>
  Nicola Vetrini <nicola.vetrini@bugseng.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
   def73fc144..1571ff7a98  1571ff7a987b88b20598a6d49910457f3b2c59f1 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 13:43:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 13:43:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645543.1007746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r93nN-00036B-SG; Fri, 01 Dec 2023 13:43:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645543.1007746; Fri, 01 Dec 2023 13:43:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r93nN-000364-PS; Fri, 01 Dec 2023 13:43:05 +0000
Received: by outflank-mailman (input) for mailman id 645543;
 Fri, 01 Dec 2023 13:43:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gkum=HM=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1r93nL-00035y-Qs
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 13:43:03 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8bb54f02-904f-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 14:43:01 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 9298D4EE073C;
 Fri,  1 Dec 2023 14:43:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bb54f02-904f-11ee-98e5-6d05b1d4d9a1
Message-ID: <19432dd3-991c-4508-b360-80520c30c196@bugseng.com>
Date: Fri, 1 Dec 2023 14:42:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, maria.celeste.cesario@bugseng.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <a295b44a9fbb02f962720e086588437876e02ce3.1701430079.git.maria.celeste.cesario@bugseng.com>
 <a33ffc19-1e1c-4126-aba4-4a2b0ee24cf4@xen.org>
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <a33ffc19-1e1c-4126-aba4-4a2b0ee24cf4@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 01/12/23 12:48, Julien Grall wrote:
> Hi Simone,
> 
> On 01/12/2023 11:37, Simone Ballarin wrote:
>> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
>>
>> Remove or amend casts to comply with Rule 11.8.
>>
>> The violations are resolved either by adding missing const
>> qualifiers in casts or by removing unnecessary cast.
>>
>> Change type of operands from char* to uintptr_t: uintptr_t is
>> the appropriate type for memory address operations.
>>
>> No functional change.
>>
>> ---
>> Changes in v2:
>> - arm/regs.h: add const qualifier to the first operand,
>> Â Â Â Â  change types of both operands from char* to uintptr_t.
>> - x86/regs.h: add const qualifier to both operands. Change
>> Â Â Â Â  types of both operands from char* to uintptr_t to
>> Â Â Â Â  conform with the arm version.
>> - dom0less-build.c: rebase change in the new file.
>>
>> Signed-off-by: Maria Celeste CesarioÂ  <maria.celeste.cesario@bugseng.com>
>> Signed-off-by: Simone BallarinÂ  <simone.ballarin@bugseng.com>
>> ---
>> Â  xen/arch/arm/dom0less-build.cÂ Â Â Â  | 2 +-
>> Â  xen/arch/arm/include/asm/atomic.h | 2 +-
>> Â  xen/arch/arm/include/asm/regs.hÂ Â  | 2 +-
>> Â  xen/arch/x86/include/asm/regs.hÂ Â  | 3 ++-
>> Â  4 files changed, 5 insertions(+), 4 deletions(-)
>>
>> diff --git a/xen/arch/arm/dom0less-build.c 
>> b/xen/arch/arm/dom0less-build.c
>> index d39cbd969a..fb63ec6fd1 100644
>> --- a/xen/arch/arm/dom0less-build.c
>> +++ b/xen/arch/arm/dom0less-build.c
>> @@ -354,7 +354,7 @@ static int __init handle_passthrough_prop(struct 
>> kernel_info *kinfo,
>> Â Â Â Â Â  if ( node == NULL )
>> Â Â Â Â Â  {
>> Â Â Â Â Â Â Â Â Â  printk(XENLOG_ERR "Couldn't find node %s in host_dt!\n",
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (char *)xen_path->data);
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  xen_path->data);
>> Â Â Â Â Â Â Â Â Â  return -EINVAL;
>> Â Â Â Â Â  }
>> diff --git a/xen/arch/arm/include/asm/atomic.h 
>> b/xen/arch/arm/include/asm/atomic.h
>> index 64314d59b3..517216d2a8 100644
>> --- a/xen/arch/arm/include/asm/atomic.h
>> +++ b/xen/arch/arm/include/asm/atomic.h
>> @@ -154,7 +154,7 @@ static always_inline void 
>> write_atomic_size(volatile void *p,
>> Â Â  */
>> Â  static inline int atomic_read(const atomic_t *v)
>> Â  {
>> -Â Â Â  return *(volatile int *)&v->counter;
>> +Â Â Â  return *(const volatile int *)&v->counter;
>> Â  }
>> Â  static inline int _atomic_read(atomic_t v)
>> diff --git a/xen/arch/arm/include/asm/regs.h 
>> b/xen/arch/arm/include/asm/regs.h
>> index 8a0db95415..b28eb5de7a 100644
>> --- a/xen/arch/arm/include/asm/regs.h
>> +++ b/xen/arch/arm/include/asm/regs.h
>> @@ -48,7 +48,7 @@ static inline bool regs_mode_is_32bit(const struct 
>> cpu_user_regs *regs)
>> Â  static inline bool guest_mode(const struct cpu_user_regs *r)
>> Â  {
>> -Â Â Â  unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);
>> +Â Â Â  unsigned long diff = (const uintptr_t)guest_cpu_user_regs() - 
>> (const uintptr_t)(r);
> 
> NIT: The const should not be necessary here. Am I correct?

The const in the first parameter is not necessary, I will drop it.

> 
>> Â Â Â Â Â  /* Frame pointer must point into current CPU stack. */
>> Â Â Â Â Â  ASSERT(diff < STACK_SIZE);
>> Â Â Â Â Â  /* If not a guest frame, it must be a hypervisor frame. */
>> diff --git a/xen/arch/x86/include/asm/regs.h 
>> b/xen/arch/x86/include/asm/regs.h
>> index 3fb94deedc..64f1e0d400 100644
>> --- a/xen/arch/x86/include/asm/regs.h
>> +++ b/xen/arch/x86/include/asm/regs.h
>> @@ -6,7 +6,8 @@
>> Â  #define 
>> guest_mode(r)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>   
>> ({Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>> -Â Â Â  unsigned long diff = (char *)guest_cpu_user_regs() - (char 
>> *)(r);Â Â Â Â Â Â Â Â  \
>> +Â Â Â  unsigned long diff = (const uintptr_t)guest_cpu_user_regs() 
>> -Â Â Â Â Â Â Â Â Â Â Â Â  \
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (const 
>> uintptr_t(r)); \
> 
> Was this compiled on x86? Shouldn't the last one be (const uintptr_t)(r))?
> 

Yes, you are right. I'll fix in it in v3.

> Cheers,
> 

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 13:45:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 13:45:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645546.1007756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r93pD-0003dO-7P; Fri, 01 Dec 2023 13:44:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645546.1007756; Fri, 01 Dec 2023 13: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 1r93pD-0003dH-4o; Fri, 01 Dec 2023 13:44:59 +0000
Received: by outflank-mailman (input) for mailman id 645546;
 Fri, 01 Dec 2023 13: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=gkum=HM=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1r93pB-0003dB-Pa
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 13:44:57 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0685a08-904f-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 14:44:57 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 054484EE073C;
 Fri,  1 Dec 2023 14:44:55 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0685a08-904f-11ee-98e5-6d05b1d4d9a1
Message-ID: <0e3acb5e-b1ff-40dd-8f63-d5806527321c@bugseng.com>
Date: Fri, 1 Dec 2023 14:44:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>
Cc: consulting@bugseng.com, maria.celeste.cesario@bugseng.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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <a295b44a9fbb02f962720e086588437876e02ce3.1701430079.git.maria.celeste.cesario@bugseng.com>
 <a33ffc19-1e1c-4126-aba4-4a2b0ee24cf4@xen.org>
 <ca2d37aa-fb8f-4b49-8909-ad7d4065a59c@suse.com>
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <ca2d37aa-fb8f-4b49-8909-ad7d4065a59c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 01/12/23 14:03, Jan Beulich wrote:
> On 01.12.2023 12:48, Julien Grall wrote:
>> On 01/12/2023 11:37, Simone Ballarin wrote:
>>> --- a/xen/arch/arm/include/asm/regs.h
>>> +++ b/xen/arch/arm/include/asm/regs.h
>>> @@ -48,7 +48,7 @@ static inline bool regs_mode_is_32bit(const struct cpu_user_regs *regs)
>>>    
>>>    static inline bool guest_mode(const struct cpu_user_regs *r)
>>>    {
>>> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);
>>> +    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() - (const uintptr_t)(r);
>>
>> NIT: The const should not be necessary here. Am I correct?
>>
>>> --- a/xen/arch/x86/include/asm/regs.h
>>> +++ b/xen/arch/x86/include/asm/regs.h
>>> @@ -6,7 +6,8 @@
>>>    
>>>    #define guest_mode(r)                                                         \
>>>    ({                                                                            \
>>> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
>>> +    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() -             \
>>> +                                                        (const uintptr_t(r)); \
>>
>> Was this compiled on x86? Shouldn't the last one be (const uintptr_t)(r))?
> 
> And again with the stray const-s dropped and with indentation adjusted.
> 

I will remove the const in the first parameter and fix the indentation
in the following way:

unsigned long diff = (uintptr_t)guest_cpu_user_regs() -                \
                      (const uintptr_t)(r);                             \

> Jan
> 

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 13:48:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 13:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645551.1007765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r93st-0004he-Lt; Fri, 01 Dec 2023 13:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645551.1007765; Fri, 01 Dec 2023 13:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r93st-0004hX-JP; Fri, 01 Dec 2023 13:48:47 +0000
Received: by outflank-mailman (input) for mailman id 645551;
 Fri, 01 Dec 2023 13:48:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1r93ss-0004hR-3v
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 13:48:46 +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 1r93sr-0000Az-43; Fri, 01 Dec 2023 13:48:45 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r93sq-0005Vq-Sm; Fri, 01 Dec 2023 13:48:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=2R66boRFwBsQho0+tHKj/fSCT3uqk/5VtRoJ5fdbFPk=; b=hnhDp37H2l8am57tBK/dx8bn2z
	vaemka1ot26wkvU+Jj6JeIUke+gKo+h9Gtr8NlrIs9PeewsNBinci23Cnq+EHRxS/i0Q5o6PnH5PL
	bBJvVwvEaLHQA+MgihYm/TzEuSq5xNeQGoaq8LT5mr7XvKfQiv2Xbgnw5mU8Jdtsveoo=;
Message-ID: <e3e0f335-3894-4b62-af4b-835b1664907b@xen.org>
Date: Fri, 1 Dec 2023 13:48:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-GB
To: Simone Ballarin <simone.ballarin@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, maria.celeste.cesario@bugseng.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <a295b44a9fbb02f962720e086588437876e02ce3.1701430079.git.maria.celeste.cesario@bugseng.com>
 <a33ffc19-1e1c-4126-aba4-4a2b0ee24cf4@xen.org>
 <19432dd3-991c-4508-b360-80520c30c196@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <19432dd3-991c-4508-b360-80520c30c196@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 01/12/2023 13:42, Simone Ballarin wrote:
> On 01/12/23 12:48, Julien Grall wrote:
>> Hi Simone,
>>
>> On 01/12/2023 11:37, Simone Ballarin wrote:
>>> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
>>>
>>> Remove or amend casts to comply with Rule 11.8.
>>>
>>> The violations are resolved either by adding missing const
>>> qualifiers in casts or by removing unnecessary cast.
>>>
>>> Change type of operands from char* to uintptr_t: uintptr_t is
>>> the appropriate type for memory address operations.
>>>
>>> No functional change.
>>>
>>> ---
>>> Changes in v2:
>>> - arm/regs.h: add const qualifier to the first operand,
>>> Â Â Â Â  change types of both operands from char* to uintptr_t.
>>> - x86/regs.h: add const qualifier to both operands. Change
>>> Â Â Â Â  types of both operands from char* to uintptr_t to
>>> Â Â Â Â  conform with the arm version.
>>> - dom0less-build.c: rebase change in the new file.
>>>
>>> Signed-off-by: Maria Celeste Cesario  
>>> <maria.celeste.cesario@bugseng.com>
>>> Signed-off-by: Simone BallarinÂ  <simone.ballarin@bugseng.com>
>>> ---
>>> Â  xen/arch/arm/dom0less-build.cÂ Â Â Â  | 2 +-
>>> Â  xen/arch/arm/include/asm/atomic.h | 2 +-
>>> Â  xen/arch/arm/include/asm/regs.hÂ Â  | 2 +-
>>> Â  xen/arch/x86/include/asm/regs.hÂ Â  | 3 ++-
>>> Â  4 files changed, 5 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/dom0less-build.c 
>>> b/xen/arch/arm/dom0less-build.c
>>> index d39cbd969a..fb63ec6fd1 100644
>>> --- a/xen/arch/arm/dom0less-build.c
>>> +++ b/xen/arch/arm/dom0less-build.c
>>> @@ -354,7 +354,7 @@ static int __init handle_passthrough_prop(struct 
>>> kernel_info *kinfo,
>>> Â Â Â Â Â  if ( node == NULL )
>>> Â Â Â Â Â  {
>>> Â Â Â Â Â Â Â Â Â  printk(XENLOG_ERR "Couldn't find node %s in host_dt!\n",
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (char *)xen_path->data);
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  xen_path->data);
>>> Â Â Â Â Â Â Â Â Â  return -EINVAL;
>>> Â Â Â Â Â  }
>>> diff --git a/xen/arch/arm/include/asm/atomic.h 
>>> b/xen/arch/arm/include/asm/atomic.h
>>> index 64314d59b3..517216d2a8 100644
>>> --- a/xen/arch/arm/include/asm/atomic.h
>>> +++ b/xen/arch/arm/include/asm/atomic.h
>>> @@ -154,7 +154,7 @@ static always_inline void 
>>> write_atomic_size(volatile void *p,
>>> Â Â  */
>>> Â  static inline int atomic_read(const atomic_t *v)
>>> Â  {
>>> -Â Â Â  return *(volatile int *)&v->counter;
>>> +Â Â Â  return *(const volatile int *)&v->counter;
>>> Â  }
>>> Â  static inline int _atomic_read(atomic_t v)
>>> diff --git a/xen/arch/arm/include/asm/regs.h 
>>> b/xen/arch/arm/include/asm/regs.h
>>> index 8a0db95415..b28eb5de7a 100644
>>> --- a/xen/arch/arm/include/asm/regs.h
>>> +++ b/xen/arch/arm/include/asm/regs.h
>>> @@ -48,7 +48,7 @@ static inline bool regs_mode_is_32bit(const struct 
>>> cpu_user_regs *regs)
>>> Â  static inline bool guest_mode(const struct cpu_user_regs *r)
>>> Â  {
>>> -Â Â Â  unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);
>>> +Â Â Â  unsigned long diff = (const uintptr_t)guest_cpu_user_regs() - 
>>> (const uintptr_t)(r);
>>
>> NIT: The const should not be necessary here. Am I correct?
> 
> The const in the first parameter is not necessary, I will drop it.

I am confused. In the case of 'r' the const applied to the pointee not 
the pointer (e.g. the pointer can be modified but not the content). So 
the 'const' should not be necessary even for the second parameter.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 13:59:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 13:59:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645558.1007776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9434-0007mP-Jk; Fri, 01 Dec 2023 13:59:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645558.1007776; Fri, 01 Dec 2023 13:59:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9434-0007mG-Gj; Fri, 01 Dec 2023 13:59:18 +0000
Received: by outflank-mailman (input) for mailman id 645558;
 Fri, 01 Dec 2023 13:59:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gkum=HM=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1r9433-0007m8-HY
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 13:59:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0c747f2-9051-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 14:59:16 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 6BB284EE073C;
 Fri,  1 Dec 2023 14:59:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0c747f2-9051-11ee-98e5-6d05b1d4d9a1
Message-ID: <cfa25bd3-296d-4668-b37d-90bc63c5c750@bugseng.com>
Date: Fri, 1 Dec 2023 14:59:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, maria.celeste.cesario@bugseng.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <a295b44a9fbb02f962720e086588437876e02ce3.1701430079.git.maria.celeste.cesario@bugseng.com>
 <a33ffc19-1e1c-4126-aba4-4a2b0ee24cf4@xen.org>
 <19432dd3-991c-4508-b360-80520c30c196@bugseng.com>
 <e3e0f335-3894-4b62-af4b-835b1664907b@xen.org>
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <e3e0f335-3894-4b62-af4b-835b1664907b@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 01/12/23 14:48, Julien Grall wrote:
> 
> 
> On 01/12/2023 13:42, Simone Ballarin wrote:
>> On 01/12/23 12:48, Julien Grall wrote:
>>> Hi Simone,
>>>
>>> On 01/12/2023 11:37, Simone Ballarin wrote:
>>>> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
>>>>
>>>> Remove or amend casts to comply with Rule 11.8.
>>>>
>>>> The violations are resolved either by adding missing const
>>>> qualifiers in casts or by removing unnecessary cast.
>>>>
>>>> Change type of operands from char* to uintptr_t: uintptr_t is
>>>> the appropriate type for memory address operations.
>>>>
>>>> No functional change.
>>>>
>>>> ---
>>>> Changes in v2:
>>>> - arm/regs.h: add const qualifier to the first operand,
>>>> Â Â Â Â  change types of both operands from char* to uintptr_t.
>>>> - x86/regs.h: add const qualifier to both operands. Change
>>>> Â Â Â Â  types of both operands from char* to uintptr_t to
>>>> Â Â Â Â  conform with the arm version.
>>>> - dom0less-build.c: rebase change in the new file.
>>>>
>>>> Signed-off-by: Maria Celeste Cesario 
>>>> <maria.celeste.cesario@bugseng.com>
>>>> Signed-off-by: Simone BallarinÂ  <simone.ballarin@bugseng.com>
>>>> ---
>>>> Â  xen/arch/arm/dom0less-build.cÂ Â Â Â  | 2 +-
>>>> Â  xen/arch/arm/include/asm/atomic.h | 2 +-
>>>> Â  xen/arch/arm/include/asm/regs.hÂ Â  | 2 +-
>>>> Â  xen/arch/x86/include/asm/regs.hÂ Â  | 3 ++-
>>>> Â  4 files changed, 5 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/xen/arch/arm/dom0less-build.c 
>>>> b/xen/arch/arm/dom0less-build.c
>>>> index d39cbd969a..fb63ec6fd1 100644
>>>> --- a/xen/arch/arm/dom0less-build.c
>>>> +++ b/xen/arch/arm/dom0less-build.c
>>>> @@ -354,7 +354,7 @@ static int __init handle_passthrough_prop(struct 
>>>> kernel_info *kinfo,
>>>> Â Â Â Â Â  if ( node == NULL )
>>>> Â Â Â Â Â  {
>>>> Â Â Â Â Â Â Â Â Â  printk(XENLOG_ERR "Couldn't find node %s in host_dt!\n",
>>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (char *)xen_path->data);
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  xen_path->data);
>>>> Â Â Â Â Â Â Â Â Â  return -EINVAL;
>>>> Â Â Â Â Â  }
>>>> diff --git a/xen/arch/arm/include/asm/atomic.h 
>>>> b/xen/arch/arm/include/asm/atomic.h
>>>> index 64314d59b3..517216d2a8 100644
>>>> --- a/xen/arch/arm/include/asm/atomic.h
>>>> +++ b/xen/arch/arm/include/asm/atomic.h
>>>> @@ -154,7 +154,7 @@ static always_inline void 
>>>> write_atomic_size(volatile void *p,
>>>> Â Â  */
>>>> Â  static inline int atomic_read(const atomic_t *v)
>>>> Â  {
>>>> -Â Â Â  return *(volatile int *)&v->counter;
>>>> +Â Â Â  return *(const volatile int *)&v->counter;
>>>> Â  }
>>>> Â  static inline int _atomic_read(atomic_t v)
>>>> diff --git a/xen/arch/arm/include/asm/regs.h 
>>>> b/xen/arch/arm/include/asm/regs.h
>>>> index 8a0db95415..b28eb5de7a 100644
>>>> --- a/xen/arch/arm/include/asm/regs.h
>>>> +++ b/xen/arch/arm/include/asm/regs.h
>>>> @@ -48,7 +48,7 @@ static inline bool regs_mode_is_32bit(const struct 
>>>> cpu_user_regs *regs)
>>>> Â  static inline bool guest_mode(const struct cpu_user_regs *r)
>>>> Â  {
>>>> -Â Â Â  unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);
>>>> +Â Â Â  unsigned long diff = (const uintptr_t)guest_cpu_user_regs() - 
>>>> (const uintptr_t)(r);
>>>
>>> NIT: The const should not be necessary here. Am I correct?
>>
>> The const in the first parameter is not necessary, I will drop it.
> 
> I am confused. In the case of 'r' the const applied to the pointee not 
> the pointer (e.g. the pointer can be modified but not the content). So 
> the 'const' should not be necessary even for the second parameter.
> 

Yes, sorry. Here there is no reason to use a const: if we cast to a 
non-pointer type (uintptr_t) rule 11.8 does not apply.

> Cheers,
> 

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 14:28:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 14:28:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645579.1007786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r94Uc-0006vO-PR; Fri, 01 Dec 2023 14:27:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645579.1007786; Fri, 01 Dec 2023 14:27: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 1r94Uc-0006vH-Mr; Fri, 01 Dec 2023 14:27:46 +0000
Received: by outflank-mailman (input) for mailman id 645579;
 Fri, 01 Dec 2023 14:27: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 1r94Ub-0006v5-D0; Fri, 01 Dec 2023 14:27: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 1r94Ub-0000w6-6P; Fri, 01 Dec 2023 14:27: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 1r94Ua-0004tk-LC; Fri, 01 Dec 2023 14:27:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r94Ua-0001I2-Kq; Fri, 01 Dec 2023 14:27: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=dxhsvo7clLkq8cKB7LD4qTLQpm0pXW7iVgLVStpf0jQ=; b=dxjNUxCLsTmcUD8MQSb+y1bM+7
	GKwsMarDMvT91q0M3ztrYUKvm+qMOZgab+G1iTfRIfRLVHf8FkZHt+lpzlwgTFE9IAtu6cmcyGbvL
	/6rcq0nvdwImxm/1RvbYyX9ReiOoduqd++huF91G0hM9AoxLmvW3fvmS+x9KOm9P2ET4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183959-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 183959: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm: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:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl: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-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-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-i386-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-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-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-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=f0dd0cd9598f22ee5509bb5d1466e4821834c4ba
X-Osstest-Versions-That:
    xen=f0dd0cd9598f22ee5509bb5d1466e4821834c4ba
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 01 Dec 2023 14:27:44 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install    fail pass in 183952

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop fail in 183952 blocked in 183959
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183952
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183952
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183952
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183952
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183952
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183952
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183952
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183952
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183952
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183952
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183952
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-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-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-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-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-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-i386-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-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     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-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-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  f0dd0cd9598f22ee5509bb5d1466e4821834c4ba
baseline version:
 xen                  f0dd0cd9598f22ee5509bb5d1466e4821834c4ba

Last test of basis   183959  2023-12-01 03:24:21 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 01 15:46:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 15:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645607.1007796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r95iT-0005SY-DO; Fri, 01 Dec 2023 15:46:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645607.1007796; Fri, 01 Dec 2023 15:46:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r95iT-0005SB-9M; Fri, 01 Dec 2023 15:46:09 +0000
Received: by outflank-mailman (input) for mailman id 645607;
 Fri, 01 Dec 2023 15:46:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qhld=HM=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1r95iR-0005Rz-KU
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 15:46:07 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20601.outbound.protection.outlook.com
 [2a01:111:f400:7eae::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc2faaaa-9060-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 16:46:05 +0100 (CET)
Received: from DM6PR02CA0055.namprd02.prod.outlook.com (2603:10b6:5:177::32)
 by BL1PR12MB5189.namprd12.prod.outlook.com (2603:10b6:208:308::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Fri, 1 Dec
 2023 15:46:01 +0000
Received: from CY4PEPF0000EDD5.namprd03.prod.outlook.com
 (2603:10b6:5:177:cafe::b2) by DM6PR02CA0055.outlook.office365.com
 (2603:10b6:5:177::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.24 via Frontend
 Transport; Fri, 1 Dec 2023 15:46:01 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EDD5.mail.protection.outlook.com (10.167.241.209) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7046.23 via Frontend Transport; Fri, 1 Dec 2023 15:46:00 +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.34; Fri, 1 Dec
 2023 09:46:00 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Fri, 1 Dec 2023 09:45:58 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc2faaaa-9060-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PM45osBYeXI4xPMgN7dSToHEQcnHCfi8ykAoyjjPLIOv0Rcum/g864XtNgyXEQeGxpuhVapqTlwgUDvkT9uKNxbPSYfg8+XqtkjiCMPNX3+iwXyUewKNu5GaeBbe2hXEPxATUvUhKbhB5oxLfGCDAZQo8wRRLVGmOz8SSEIvD5vZNCzAxY3otjYdj2Wtv51oDPJOclbWwNNxa/tbxE8rjaQi9fwvFC7ZB/tbmFS7mtWRfZ77hmwlXQQWdwW0gU/fNuCIYjDLGvXgLxTm+/O7ao2uqmmGd6V/goulRvWwYILADBUJKENnI/GHswI9ocJe53HLnpR6hT6/NJnej/pvGw==
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=WgpPsDqYxUS2ES1+OmYaJDFxEvc+R2k4fth5ocPNlWU=;
 b=gFiU+kBKWje3TDFO4EdYDaFdX3N2RjW9Xb5uqoneVOM89JTiJ6VMTxPh2hgSV/ZAkdSHMWIm6vp4+V86/YlvUT61IXgPsEcPrRFlWq3PuqP2moyTFauWCOB8K9F/cPgQFeM/bHbJ2eZuNnOmDHl0iJa9V0Ys7WQwOKD7Hol4haBtIa5cFo5oEq5ij8lmEfQyOqoTBO90xvu6Nf1W3/ps9Fqfft78b8w/h64oA1nOr6tKWKj97zKuM+Xw7JdNHUaGhMiWxz94j5c566DgJhJDkhTQPRz1XYSqvFwTX39xvrstCZWSxqnLI6wD8ygSn6Yw2T5bzLn2+IeLTzWX1kCEUA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WgpPsDqYxUS2ES1+OmYaJDFxEvc+R2k4fth5ocPNlWU=;
 b=JOMBMmscZn0S84wCFpYfBO5jkgCs1ENkOvx0AFFDDlozXzy7XzkvQO3uvVmtTPOiOBshSzVA3CnNtRFNzPJOhLkNTq88ydrZtrQTIPfcHoeOR+3RLYDNfTvljrt8wicHoSJysMTAE2S+5+AnkJT08pncl5hZOjwL5YQDtbjeFIE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Anthony PERARD <anthony.perard@citrix.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>
Subject: [PATCH v9 0/2] vPCI capabilities filtering
Date: Fri, 1 Dec 2023 10:45:48 -0500
Message-ID: <20231201154552.3066321-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD5:EE_|BL1PR12MB5189:EE_
X-MS-Office365-Filtering-Correlation-Id: 403d8fc0-6203-49cc-f24f-08dbf2849e4a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	0EvF+wk3HrCQ8xww+7otVP8D6EdJFMKWxk2urgVnBigVPp7ZWycHWfOY1xxOMcJ/diLdBl31amX/8ESlxxOvnVH2lgd8D/3e2z0oXXb3Lgjv5Ow5UOCR/dgrdd6Ew+2l9lEeQhKQPWTMZhICkCtRSMlT1gB1kYADS0ndzNczlxCNU4751YdIrNRLWcNQMGYiD45v0cdDl6jA/t97ZLLA1c1sIKJRIwb+CMMZsh6py8+CR3Sto4IFEt29pyBmwMhOvsueTNUXv2cjvkuaXL604jED70GgkefnMaRpEEQCmHxN8/m5WZ/7DueuscrZioQou1u2bEk+iNk19BWrcKmHrKpOU6MqnNqSOpoEdJuVMblKZSApXV/bU8aEt9Tjn+GdTkQGw5u/yC0LVuOrU2hT2WmqYrW+wdiB3SyysEuKo4ntMPu9DWxleecCsq8MQCPRmERFL4PFuyeY0moSQdKA11ok/7rg+wnlGKD52OhyVOctWJToVT/8VR7IpL9D3dYEGZI9j52pSZHwjIHpqDUIRs64ray0AGogYvC0lnv9RL9QhUeZI9Nm9nvUxCBpFQX9CYPASBLatixuNHK6pluBuRyCWzT4q7yE3DPZTo6GU4IuewmXetBb7877WGm5w7TuHeLaqVruE0FaQdqKFe24SJ+P/v4Z/s/yOpkm2vKQ4XG85HvTtplEqddNI/caRpM/yigqaAmDkbOfvx87IS+MBe1SbeQS7A8nHiKNT5S/aEgDXcolxeHVwFY9rrn4vKxT0dprHIyqExtelUiz+YmYuw==
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:(13230031)(4636009)(136003)(396003)(376002)(346002)(39860400002)(230922051799003)(1800799012)(451199024)(64100799003)(82310400011)(186009)(36840700001)(40470700004)(46966006)(40460700003)(66899024)(336012)(426003)(83380400001)(82740400003)(86362001)(36756003)(81166007)(356005)(47076005)(36860700001)(70586007)(70206006)(8936002)(8676002)(54906003)(4326008)(6916009)(316002)(40480700001)(1076003)(5660300002)(2906002)(44832011)(2616005)(478600001)(966005)(26005)(6666004)(41300700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 15:46:00.7280
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 403d8fc0-6203-49cc-f24f-08dbf2849e4a
X-MS-Exchange-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:
	CY4PEPF0000EDD5.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5189

This small series enables vPCI to filter which PCI capabilities we expose to a
domU. This series adds vPCI register handlers within
xen/drivers/vpci/header.c:init_bars(), along with some supporting functions.

Note there are minor rebase conflicts with the in-progress vPCI series [1].
These conflicts fall into the category of functions and code being added
adjacent to one another, so are easily resolved. I did not identify any
dependency on the vPCI locking work, and the two series deal with different
aspects of emulating the PCI header.

Future work may involve adding handlers for more registers in the vPCI header,
such as VID/DID, etc. Future work may also involve exposing additional
capabilities to the guest for broader device/driver support.

v8->v9:
* address feedback

v7->v8:
* address feedback

v6->v7:
* address feedback in ("xen/vpci: header: status register handler")
* drop ("xen/pci: convert pci_find_*cap* to pci_sbdf_t") and
  ("x86/msi: rearrange read_pci_mem_bar slightly") as they were committed

v5->v6:
* drop ("xen/pci: update PCI_STATUS_* constants") as it has been committed

v4->v5:
* drop ("x86/msi: remove some unused-but-set-variables") as it has been
  committed
* add ("xen/pci: update PCI_STATUS_* constants")
* squash ro_mask patch

v3->v4:
* drop "xen/pci: address a violation of MISRA C:2012 Rule 8.3" as it has been
  committed
* re-order status register handler and capabilities filtering patches
* split an unrelated change from ("xen/pci: convert pci_find_*cap* to pci_sbdf_t")
  into its own patch
* add new patch ("x86/msi: rearrange read_pci_mem_bar slightly") based on
  feedback
* add new RFC patch ("xen/vpci: support ro mask")

v2->v3:
* drop RFC "xen/vpci: header: avoid cast for value passed to vpci_read_val"
* minor misra C violation fixup in preparatory patch
* switch to pci_sbdf_t in preparatory patch
* introduce status handler

v1->v2:
* squash helper functions into the patch where they are used to avoid transient
  dead code situation
* add new RFC patch, possibly throwaway, to get an idea of what it would look
  like to get rid of the (void *)(uintptr_t) cast by introducing a new memory
  allocation

[1] https://lists.xenproject.org/archives/html/xen-devel/2023-08/msg02361.html

Stewart Hildebrand (2):
  xen/vpci: header: status register handler
  xen/vpci: header: filter PCI capabilities

 tools/tests/vpci/main.c    | 111 +++++++++++++++++++++++++++++++++++++
 xen/drivers/pci/pci.c      |  33 +++++++----
 xen/drivers/vpci/header.c  |  79 +++++++++++++++++++++++++-
 xen/drivers/vpci/vpci.c    |  64 ++++++++++++++++-----
 xen/include/xen/pci.h      |   3 +
 xen/include/xen/pci_regs.h |   9 +++
 xen/include/xen/vpci.h     |  30 ++++++++--
 7 files changed, 297 insertions(+), 32 deletions(-)


base-commit: 1571ff7a987b88b20598a6d49910457f3b2c59f1
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 15:46:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 15:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645609.1007806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r95ii-0005nQ-N8; Fri, 01 Dec 2023 15:46:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645609.1007806; Fri, 01 Dec 2023 15:46:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r95ii-0005nF-KF; Fri, 01 Dec 2023 15:46:24 +0000
Received: by outflank-mailman (input) for mailman id 645609;
 Fri, 01 Dec 2023 15:46:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qhld=HM=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1r95ig-0005mO-Js
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 15:46:22 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2062e.outbound.protection.outlook.com
 [2a01:111:f400:7e8a::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3e81cd0-9060-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 16:46:18 +0100 (CET)
Received: from CY8P220CA0011.NAMP220.PROD.OUTLOOK.COM (2603:10b6:930:46::28)
 by SJ0PR12MB5471.namprd12.prod.outlook.com (2603:10b6:a03:300::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.24; Fri, 1 Dec
 2023 15:46:14 +0000
Received: from CY4PEPF0000EDD1.namprd03.prod.outlook.com
 (2603:10b6:930:46:cafe::e0) by CY8P220CA0011.outlook.office365.com
 (2603:10b6:930:46::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.29 via Frontend
 Transport; Fri, 1 Dec 2023 15:46:14 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EDD1.mail.protection.outlook.com (10.167.241.205) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7046.17 via Frontend Transport; Fri, 1 Dec 2023 15:46:13 +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.34; Fri, 1 Dec
 2023 09:46:13 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 1 Dec
 2023 09:46:13 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Fri, 1 Dec 2023 09:46:11 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3e81cd0-9060-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jaYmsDq8gM0H/336UPukUvxuKiLdl+YX2ybIYdN9PHhoVehQlS51bjThInv4eiZWQGbdettkFpdl9BQ/cEE1weWHqJ6+X8eQUE7PTWelT1ApCmX8146Asl+ec3z5PgQ6jGRiBiF4B/ndRdKh+TOcpZzp386OXRLK7/YUTNoGPv4FHL5eV+grASlTQr6LW3aQgDPUtmuuP3rDBlIR80kkbxrf1FMZYogjnhFymx2hJK4GVO45MfsE6NIvGq13W67AWyS/t9FpEmbH4tFtPxDb8yULjaAlFue/+HWw2vipLx8D1m45degxrxLTfODYeYrYPegLjthVMXbSoTa7Sx5yJg==
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=ZDImNmQvmow/A3Kv7ezsy4crKxW4vHq4MtXRtyPI1zY=;
 b=TJeJAR9lnq9g/UpXmExoBPnZ4H9owrrHoZbre9M/NuHZ+ypswddJZXOd11LLWNIFkiZYesFrRDfjjWZVbRYIy/thhA3lUtFiHvjo8ISiI9fY82BCUt+jcnDj4JIs1cDkAoZRsLKv48TDwBK+IHbTcSC9qQozK+TIb+XxX6vIeTAqLAtF+UrAw+dgGkE5pxVkJTst96wO3uAYzXL6q1/yGcIomJNq7uJTPTgKXURzYBENjkoHRAc5MpJ3DcRINHGHRY/qq3vnZUVdFjL5Yer9TxZ3aRahxaadjnxQ95+aezRgtmSYQJxpo8Hp67bOpo/9beP7/NeCckd2wMQjECObWQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZDImNmQvmow/A3Kv7ezsy4crKxW4vHq4MtXRtyPI1zY=;
 b=mupsIUX6tFN5/9C2XuoezkscgvIurPBnFMhTtYf7gyx/fpHm8+F3L/gwGPh2cB7nAOR13nduUPxS6M8865HYVUHPQJ8Tz1u7UR2U+ybx1XGEJWlBf6/Ihf4nNCfhrO2XreioCNWUb3dcRh3TdIoUcoa68f8YFmT1TxVn3s8TSf0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Anthony PERARD <anthony.perard@citrix.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>
Subject: [PATCH v9 1/2] xen/vpci: header: status register handler
Date: Fri, 1 Dec 2023 10:45:49 -0500
Message-ID: <20231201154552.3066321-2-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231201154552.3066321-1-stewart.hildebrand@amd.com>
References: <20231201154552.3066321-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD1:EE_|SJ0PR12MB5471:EE_
X-MS-Office365-Filtering-Correlation-Id: 83055f4a-11e6-49d7-b1c1-08dbf284a625
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	TJ3gZz1uLUtsiMUFbq6o/9OaLs48CAJQC+bE8GmAlNjTVzRdYjvrj0uhba/ZOYQib+HpKuNVZibRADiDJI+mMhEpGVozvJE1MXqehTUzW3wjpeR8PkfXAt8ZDK6F3SKaYsMgLnzUMHk34L37LjEetrIMFaGEPKEMqd8mA9OBBNzJFY3BP6tJTA8FamPeFdpROXiwhDLtPINMoNy2ZsE9SE45vQ1E4Azu0NPLSpaJcOl2BwUSmPMQLCJzgsTdGZiSt0POtDZcrAuq+phNDeQBAk0H0uT5RBdCo+xc8UeBejpsvZqy474M8PVK9WWLBng6iVEgqZbHJNaPaOWEs6HRK7Cg3hSxBZjTgnEvNsmXlnsvh8tGTa0Hf1e8IvnImxO5BYbLqnUcj3XdyfTAgSEjdTFqkSlvf5osH6op+2Ii0p4GTyaCJSggHPkpCoh6JkuSmmv7rKQuTUpLQBkiIJAJRFsWZUqcddrM2FjpENI8WCYsyqqOfeLEWz9znoMA0LhYWLfHwRR6kzGERhCwQBtnwbqCradL/otBmz/5DliQh5M8A1QFLA/hHIxKrWkMQyUaVbWHSlxe34cmoLZiPuLVx9su20h4ncv5M4BfcQxp8JVVrYexJdEzh4fOds0woAfXLf7w5q7V2py+UwlwNXEn/bbfS8b6mHe1+NBk2cgq/kSAjPgwSgMJI1FnUsU4Vr2LfoUX3Mb0HqCcfm5r4FaonSDkitmih+U7pNz37Dv823/eMG+slFSQkmzCsVRkvurVLSMa9BcQcYL1TVBomwNskg==
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:(13230031)(4636009)(376002)(396003)(136003)(346002)(39860400002)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(82310400011)(46966006)(40470700004)(36840700001)(478600001)(356005)(426003)(336012)(316002)(81166007)(36756003)(70206006)(70586007)(4326008)(6916009)(1076003)(40460700003)(8936002)(8676002)(26005)(54906003)(66899024)(2616005)(19627235002)(966005)(82740400003)(6666004)(5660300002)(2906002)(30864003)(47076005)(40480700001)(36860700001)(86362001)(44832011)(83380400001)(41300700001)(36900700001)(357404004);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 15:46:13.9212
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 83055f4a-11e6-49d7-b1c1-08dbf284a625
X-MS-Exchange-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:
	CY4PEPF0000EDD1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5471

Introduce a handler for the PCI status register, with ability to mask
the capabilities bit. The status register contains RsvdZ bits,
read-only bits, and write-1-to-clear bits. Additionally, we use RsvdP to
mask the capabilities bit. Introduce bitmasks to handle these in vPCI.
If a bit in the bitmask is set, then the special meaning applies:

  ro_mask: read normal, guest write ignore (preserve on write to hardware)
  rw1c_mask: read normal, write 1 to clear
  rsvdp_mask: read as zero, guest write ignore (preserve on write to hardware)
  rsvdz_mask: read as zero, guest write ignore (write zero to hardware)

The RO/RW1C/RsvdP/RsvdZ naming and definitions were borrowed from the
PCI Express Base 6.1 specification. RsvdP/RsvdZ bits help Xen enforce
our view of the world. Xen preserves the value of read-only bits on
write to hardware, discarding the guests write value. This is done in
case hardware wrongly implements R/O bits as R/W.

The mask_cap_list flag will be set in a follow-on patch.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
v8->v9:
* check that masks don't have bits set above register size
* rename variable in vpci_write_helper()
* only export one vpci_add_register* function, make the other one static inline
* style fixups

v7->v8:
* move PCI_STATUS_UDF to rsvdz_mask (per PCI Express Base 6 spec)
* add support for rsvdp bits
* add tests for ro/rw1c/rsvdp/rsvdz bits in tools/tests/vpci/main.c
* dropped R-b tag [1] since the patch has changed moderately since the last rev

[1] https://lists.xenproject.org/archives/html/xen-devel/2023-09/msg00909.html

v6->v7:
* re-work args passed to vpci_add_register_mask() (called in init_bars())
* also check for overlap of (rsvdz_mask & ro_mask) in add_register()
* slightly adjust masking operation in vpci_write_helper()

v5->v6:
* remove duplicate PCI_STATUS_CAP_LIST in constant definition
* style fixup in constant definitions
* s/res_mask/rsvdz_mask/
* combine a new masking operation into single line
* preserve r/o bits on write
* get rid of status_read. Instead, use rsvdz_mask for conditionally masking
  PCI_STATUS_CAP_LIST bit
* add comment about PCI_STATUS_CAP_LIST and rsvdp behavior
* add sanity checks in add_register
* move mask_cap_list from struct vpci_header to local variable

v4->v5:
* add support for res_mask
* add support for ro_mask (squash ro_mask patch)
* add constants for reserved, read-only, and rw1c masks

v3->v4:
* move mask_cap_list setting to the capabilities patch
* single pci_conf_read16 in status_read
* align mask_cap_list bitfield in struct vpci_header
* change to rw1c bit mask instead of treating whole register as rw1c
* drop subsystem prefix on renamed add_register function

v2->v3:
* new patch
---
 tools/tests/vpci/main.c    | 111 +++++++++++++++++++++++++++++++++++++
 xen/drivers/vpci/header.c  |  12 ++++
 xen/drivers/vpci/vpci.c    |  52 ++++++++++++-----
 xen/include/xen/pci_regs.h |   9 +++
 xen/include/xen/vpci.h     |  24 ++++++--
 5 files changed, 189 insertions(+), 19 deletions(-)

diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index b9a0a6006bb9..64d4552936c7 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -70,6 +70,28 @@ static void vpci_write32(const struct pci_dev *pdev, unsigned int reg,
     *(uint32_t *)data = val;
 }
 
+struct mask_data {
+    uint32_t val;
+    uint32_t rw1c_mask;
+};
+
+static uint32_t vpci_read32_mask(const struct pci_dev *pdev, unsigned int reg,
+                                 void *data)
+{
+    const struct mask_data *md = data;
+
+    return md->val;
+}
+
+static void vpci_write32_mask(const struct pci_dev *pdev, unsigned int reg,
+                              uint32_t val, void *data)
+{
+    struct mask_data *md = data;
+
+    md->val  = val | (md->val & md->rw1c_mask);
+    md->val &= ~(val & md->rw1c_mask);
+}
+
 #define VPCI_READ(reg, size, data) ({                           \
     data = vpci_read((pci_sbdf_t){ .sbdf = 0 }, reg, size);     \
 })
@@ -94,9 +116,21 @@ static void vpci_write32(const struct pci_dev *pdev, unsigned int reg,
     assert(!vpci_add_register(test_pdev.vpci, fread, fwrite, off, size,     \
                               &store))
 
+#define VPCI_ADD_REG_MASK(fread, fwrite, off, size, store,                     \
+                          ro_mask, rw1c_mask, rsvdp_mask, rsvdz_mask)          \
+    assert(!vpci_add_register_mask(test_pdev.vpci, fread, fwrite, off, size,   \
+                                   &store,                                     \
+                                   ro_mask, rw1c_mask, rsvdp_mask, rsvdz_mask))
+
 #define VPCI_ADD_INVALID_REG(fread, fwrite, off, size)                      \
     assert(vpci_add_register(test_pdev.vpci, fread, fwrite, off, size, NULL))
 
+#define VPCI_ADD_INVALID_REG_MASK(fread, fwrite, off, size,                   \
+                                  ro_mask, rw1c_mask, rsvdp_mask, rsvdz_mask) \
+    assert(vpci_add_register_mask(test_pdev.vpci, fread, fwrite, off, size,   \
+                                  NULL, ro_mask, rw1c_mask, rsvdp_mask,       \
+                                  rsvdz_mask))
+
 #define VPCI_REMOVE_REG(off, size)                                          \
     assert(!vpci_remove_register(test_pdev.vpci, off, size))
 
@@ -154,6 +188,7 @@ main(int argc, char **argv)
     uint16_t r20[2] = { };
     uint32_t r24 = 0;
     uint8_t r28, r30;
+    struct mask_data r32;
     unsigned int i;
     int rc;
 
@@ -213,6 +248,24 @@ main(int argc, char **argv)
     /* Try to add a register with missing handlers. */
     VPCI_ADD_INVALID_REG(NULL, NULL, 8, 2);
 
+    /* Try to add registers with the same bits set in multiple masks. */
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 1, 1, 0, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 1, 0, 1, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 1, 0, 0, 1);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 0, 1, 1, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 0, 1, 0, 1);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 0, 0, 1, 1);
+
+    /* Try to add registers with mask bits set beyond the register size */
+    VPCI_ADD_INVALID_REG_MASK(vpci_read8, vpci_write8, 8, 1, 0x100U, 0, 0, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read8, vpci_write8, 8, 1, 0, 0x100U, 0, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read8, vpci_write8, 8, 1, 0, 0, 0x100U, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read8, vpci_write8, 8, 1, 0, 0, 0, 0x100U);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read16, vpci_write16, 8, 2, 0x10000U,0,0,0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read16, vpci_write16, 8, 2, 0,0x10000U,0,0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read16, vpci_write16, 8, 2, 0,0,0x10000U,0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read16, vpci_write16, 8, 2, 0,0,0,0x10000U);
+
     /* Read/write of unset register. */
     VPCI_READ_CHECK(8, 4, 0xffffffff);
     VPCI_READ_CHECK(8, 2, 0xffff);
@@ -287,6 +340,64 @@ main(int argc, char **argv)
     VPCI_ADD_REG(vpci_read8, vpci_write8, 30, 1, r30);
     VPCI_WRITE_CHECK(28, 4, 0xffacffdc);
 
+    /*
+     * Test ro/rw1c/rsvdp/rsvdz masks.
+     *
+     * 32     24     16      8      0
+     *  +------+------+------+------+
+     *  |rsvdz |rsvdp | rw1c |  ro  | 32
+     *  +------+------+------+------+
+     *
+     */
+    r32.rw1c_mask = 0x0000ff00U;
+    VPCI_ADD_REG_MASK(vpci_read32_mask, vpci_write32_mask, 32, 4, r32,
+                      0x000000ffU   /* RO    */,
+                      r32.rw1c_mask /* RW1C  */,
+                      0x00ff0000U   /* RsvdP */,
+                      0xff000000U   /* RsvdZ */);
+
+    /* ro */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(32, 1, 0x0f);
+    VPCI_WRITE(32, 1, 0x5a);
+    VPCI_READ_CHECK(32, 1, 0x0f);
+    assert(r32.val == 0x000f0f0fU);
+
+    /* rw1c */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(33, 1, 0x0f);
+    VPCI_WRITE(33, 1, 0x5a);
+    VPCI_READ_CHECK(33, 1, 0x05);
+    assert(r32.val == 0x000f050fU);
+
+    /* rsvdp */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(34, 1, 0);
+    VPCI_WRITE(34, 1, 0x5a);
+    VPCI_READ_CHECK(34, 1, 0);
+    assert(r32.val == 0x000f0f0fU);
+
+    /* rsvdz */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(35, 1, 0);
+    VPCI_WRITE(35, 1, 0x5a);
+    VPCI_READ_CHECK(35, 1, 0);
+    assert(r32.val == 0x000f0f0fU);
+
+    /* write all 0's */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(32, 4, 0x00000f0fU);
+    VPCI_WRITE(32, 4, 0);
+    VPCI_READ_CHECK(32, 4, 0x00000f0fU);
+    assert(r32.val == 0x000f0f0fU);
+
+    /* write all 1's */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(32, 4, 0x00000f0fU);
+    VPCI_WRITE(32, 4, 0xffffffffU);
+    VPCI_READ_CHECK(32, 4, 0x0000000fU);
+    assert(r32.val == 0x000f000fU);
+
     /* Finally try to remove a couple of registers. */
     VPCI_REMOVE_REG(28, 1);
     VPCI_REMOVE_REG(24, 4);
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 767c1ba718d7..351318121e48 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -521,6 +521,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
     struct vpci_header *header = &pdev->vpci->header;
     struct vpci_bar *bars = header->bars;
     int rc;
+    bool mask_cap_list = false;
 
     switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
     {
@@ -544,6 +545,17 @@ static int cf_check init_bars(struct pci_dev *pdev)
     if ( rc )
         return rc;
 
+    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
+    rc = vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
+                                PCI_STATUS, 2, NULL,
+                                PCI_STATUS_RO_MASK &
+                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
+                                PCI_STATUS_RW1C_MASK,
+                                mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
+                                PCI_STATUS_RSVDZ_MASK);
+    if ( rc )
+        return rc;
+
     if ( pdev->ignore_bars )
         return 0;
 
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 3bec9a4153da..d569f596a4c3 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -29,6 +29,10 @@ struct vpci_register {
     unsigned int offset;
     void *private;
     struct list_head node;
+    uint32_t ro_mask;
+    uint32_t rw1c_mask;
+    uint32_t rsvdp_mask;
+    uint32_t rsvdz_mask;
 };
 
 #ifdef __XEN__
@@ -145,9 +149,17 @@ uint32_t cf_check vpci_hw_read32(
     return pci_conf_read32(pdev->sbdf, reg);
 }
 
-int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,
-                      vpci_write_t *write_handler, unsigned int offset,
-                      unsigned int size, void *data)
+void cf_check vpci_hw_write16(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
+{
+    pci_conf_write16(pdev->sbdf, reg, val);
+}
+
+int vpci_add_register_mask(struct vpci *vpci, vpci_read_t *read_handler,
+                           vpci_write_t *write_handler, unsigned int offset,
+                           unsigned int size, void *data, uint32_t ro_mask,
+                           uint32_t rw1c_mask, uint32_t rsvdp_mask,
+                           uint32_t rsvdz_mask)
 {
     struct list_head *prev;
     struct vpci_register *r;
@@ -155,7 +167,14 @@ int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,
     /* Some sanity checks. */
     if ( (size != 1 && size != 2 && size != 4) ||
          offset >= PCI_CFG_SPACE_EXP_SIZE || (offset & (size - 1)) ||
-         (!read_handler && !write_handler) )
+         (!read_handler && !write_handler) || (ro_mask & rw1c_mask) ||
+         (ro_mask & rsvdp_mask) || (ro_mask & rsvdz_mask) ||
+         (rw1c_mask & rsvdp_mask) || (rw1c_mask & rsvdz_mask) ||
+         (rsvdp_mask & rsvdz_mask) )
+        return -EINVAL;
+
+    if ( size != 4 &&
+         ((ro_mask | rw1c_mask | rsvdp_mask | rsvdz_mask) >> (8 * size)) )
         return -EINVAL;
 
     r = xmalloc(struct vpci_register);
@@ -167,6 +186,10 @@ int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,
     r->size = size;
     r->offset = offset;
     r->private = data;
+    r->ro_mask = ro_mask;
+    r->rw1c_mask = rw1c_mask;
+    r->rsvdp_mask = rsvdp_mask;
+    r->rsvdz_mask = rsvdz_mask;
 
     spin_lock(&vpci->lock);
 
@@ -376,6 +399,7 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
         }
 
         val = r->read(pdev, r->offset, r->private);
+        val &= ~(r->rsvdp_mask | r->rsvdz_mask);
 
         /* Check if the read is in the middle of a register. */
         if ( r->offset < emu.offset )
@@ -407,26 +431,26 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
 
 /*
  * Perform a maybe partial write to a register.
- *
- * Note that this will only work for simple registers, if Xen needs to
- * trap accesses to rw1c registers (like the status PCI header register)
- * the logic in vpci_write will have to be expanded in order to correctly
- * deal with them.
  */
 static void vpci_write_helper(const struct pci_dev *pdev,
                               const struct vpci_register *r, unsigned int size,
                               unsigned int offset, uint32_t data)
 {
+    uint32_t curval = 0;
+    uint32_t preserved_mask = r->ro_mask | r->rsvdp_mask;
+
     ASSERT(size <= r->size);
 
-    if ( size != r->size )
+    if ( (size != r->size) || preserved_mask )
     {
-        uint32_t val;
-
-        val = r->read(pdev, r->offset, r->private);
-        data = merge_result(val, data, size, offset);
+        curval = r->read(pdev, r->offset, r->private);
+        curval &= ~r->rw1c_mask;
+        data = merge_result(curval, data, size, offset);
     }
 
+    data &= ~(preserved_mask | r->rsvdz_mask);
+    data |= curval & preserved_mask;
+
     r->write(pdev, r->offset, data & (0xffffffffU >> (32 - 8 * r->size)),
              r->private);
 }
diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
index 84b18736a85d..9909b27425a5 100644
--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -66,6 +66,15 @@
 #define  PCI_STATUS_REC_MASTER_ABORT	0x2000 /* Set on master abort */
 #define  PCI_STATUS_SIG_SYSTEM_ERROR	0x4000 /* Set when we drive SERR */
 #define  PCI_STATUS_DETECTED_PARITY	0x8000 /* Set on parity error */
+#define  PCI_STATUS_RSVDZ_MASK		0x0046 /* Includes PCI_STATUS_UDF */
+
+#define  PCI_STATUS_RO_MASK (PCI_STATUS_IMM_READY | PCI_STATUS_INTERRUPT | \
+    PCI_STATUS_CAP_LIST | PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK | \
+    PCI_STATUS_DEVSEL_MASK)
+#define  PCI_STATUS_RW1C_MASK (PCI_STATUS_PARITY | \
+    PCI_STATUS_SIG_TARGET_ABORT | PCI_STATUS_REC_TARGET_ABORT | \
+    PCI_STATUS_REC_MASTER_ABORT | PCI_STATUS_SIG_SYSTEM_ERROR | \
+    PCI_STATUS_DETECTED_PARITY)
 
 #define PCI_CLASS_REVISION	0x08	/* High 24 bits are class, low 8 revision */
 #define PCI_REVISION_ID		0x08	/* Revision ID */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index d743d96a10b8..85c52a1ebac7 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -32,11 +32,23 @@ int __must_check vpci_add_handlers(struct pci_dev *pdev);
 void vpci_remove_device(struct pci_dev *pdev);
 
 /* Add/remove a register handler. */
-int __must_check vpci_add_register(struct vpci *vpci,
-                                   vpci_read_t *read_handler,
-                                   vpci_write_t *write_handler,
-                                   unsigned int offset, unsigned int size,
-                                   void *data);
+int __must_check vpci_add_register_mask(struct vpci *vpci,
+                                        vpci_read_t *read_handler,
+                                        vpci_write_t *write_handler,
+                                        unsigned int offset, unsigned int size,
+                                        void *data, uint32_t ro_mask,
+                                        uint32_t rw1c_mask, uint32_t rsvdp_mask,
+                                        uint32_t rsvdz_mask);
+static inline int __must_check vpci_add_register(struct vpci *vpci,
+                                                 vpci_read_t *read_handler,
+                                                 vpci_write_t *write_handler,
+                                                 unsigned int offset,
+                                                 unsigned int size, void *data)
+{
+    return vpci_add_register_mask(vpci, read_handler, write_handler, offset,
+                                  size, data, 0, 0, 0, 0);
+}
+
 int __must_check vpci_remove_register(struct vpci *vpci, unsigned int offset,
                                       unsigned int size);
 
@@ -50,6 +62,8 @@ uint32_t cf_check vpci_hw_read16(
     const struct pci_dev *pdev, unsigned int reg, void *data);
 uint32_t cf_check vpci_hw_read32(
     const struct pci_dev *pdev, unsigned int reg, void *data);
+void cf_check vpci_hw_write16(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
 
 /*
  * Check for pending vPCI operations on this vcpu. Returns true if the vcpu
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 15:46:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 15:46:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645610.1007815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r95is-0006BA-4M; Fri, 01 Dec 2023 15:46:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645610.1007815; Fri, 01 Dec 2023 15: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 1r95is-0006B3-1a; Fri, 01 Dec 2023 15:46:34 +0000
Received: by outflank-mailman (input) for mailman id 645610;
 Fri, 01 Dec 2023 15:46:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qhld=HM=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1r95iq-0005mO-MK
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 15:46:32 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20612.outbound.protection.outlook.com
 [2a01:111:f400:7e88::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb527ef3-9060-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 16:46:30 +0100 (CET)
Received: from MN2PR02CA0036.namprd02.prod.outlook.com (2603:10b6:208:fc::49)
 by BN9PR12MB5384.namprd12.prod.outlook.com (2603:10b6:408:105::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Fri, 1 Dec
 2023 15:46:27 +0000
Received: from BL6PEPF0001AB77.namprd02.prod.outlook.com
 (2603:10b6:208:fc:cafe::b6) by MN2PR02CA0036.outlook.office365.com
 (2603:10b6:208:fc::49) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.23 via Frontend
 Transport; Fri, 1 Dec 2023 15:46:27 +0000
Received: from SATLEXMB04.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.7046.17 via Frontend Transport; Fri, 1 Dec 2023 15:46:26 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 1 Dec
 2023 09:46:26 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 1 Dec
 2023 09:46:25 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Fri, 1 Dec 2023 09:46:24 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb527ef3-9060-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=D0KOgS8egHPfQTV2UewXgY9J722V3x2i/YZ/SIfwAj71rVe4aiZyO1h5INdI9mufKiJSjpeuE3GhFMcVVED83i/yuDO18eVa5glxXPUTB7Wz/krScCjqi+jN9h7UJg7gp9DsoqhCUoWVUFrlqdGN6wKv10rpo/Dn8qyu8mI4KhlPrCv9P8bdoBMGTQ+ztjyi5TnVo2DReRl6MDSfmKNdsmJ0DvLY/q0bZyJ227vl63jocBRp9QFYy3Y+S++1fyC1EjuWJpxmDUpo9ysC97k5a0SDqAmDyx7F5etNdFfrs5xGI7pFFtSbGp6NhNY7UT+FbAsSUKq6ZFYpk1Oy5SSuCQ==
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=3rDW8TKwJYFddUpSjwpZw1tdKMfC4BlAOpTAFnwuQrg=;
 b=lU6MqkdtNQHGGCknJFmO1YYskMfyr5rrd0KomhbcmYfHh5PwZNOMGR5ZGMNX6sTPP/QDAHzVrrgDxlSQ1qedeXDJRAsu0yVE78OIQ7ElKA5oXc5MTIUgUVW2L+Sh9QNEyR2ZxXy9VgSDsBPWz2KTOSZ85JPh8gO+JkZmCvCecAPLLx8ZBHAiBo3cCmx4e4WBTXbHSBqjtIp11smujjz3blUoUZcOTDJE+227bu/PNcChL36uF67hKNPubYNy6JvwYSCzbVdvuXoNEPH9wJQsECfKO0JSdwig5UAdfzWn+tUcaSGPf/3qpfWVF8QIe8cC56oj4EmpA7AtSlwNYMFxPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3rDW8TKwJYFddUpSjwpZw1tdKMfC4BlAOpTAFnwuQrg=;
 b=eiy+8h3r995brPcv9YOni6X5chbk5TbOmO8sJPTdlOhRb1acRQdNkP8+EE3RR1JiQ7hAxnp5Fki6/O4N1okVBzOC4lSUOXBPSq0rHs7eGymb5IUcNNcBMETf5prrops05d5Qvjm375kEXbEhXaOSG9d2OUmTOrnsEXQaAMLd6oE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, 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>, Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v9 2/2] xen/vpci: header: filter PCI capabilities
Date: Fri, 1 Dec 2023 10:45:50 -0500
Message-ID: <20231201154552.3066321-3-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231201154552.3066321-1-stewart.hildebrand@amd.com>
References: <20231201154552.3066321-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB77:EE_|BN9PR12MB5384:EE_
X-MS-Office365-Filtering-Correlation-Id: 5583f7cb-54cb-4036-4100-08dbf284adc0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	kLGLqGEGcHPMLjFGap2eTEwdluUOpdVVEkC7pVfl3/0PK8tWd1wuS5TdEtEQDBeDvypcGEjAq50pisolWS7cE/69kJ633oUXSWctgyQkA0qy1Jk8Lzytz9+7wzHFm61ZgotbLym2gX7t4PnNu7LpNw3tQKZdlC0hqEz3zZkwkqV8PwD0TjrtB/88EJIvmy4DKm93vKEHLjGE6+75PwSWfRVG0HrMjaft3gTKyXmQ3XopkHMp0kGVDVzRt9ox8WibvYm7I3hxmiYHMrvXNcNxqA0kwACjYgrgYVDwGNSsngfjQGEi6V9ULu/OK/X8il8Neej0hsGhLdh/nxJ5YYNUrPhxV8yUqtVv/H4GdbXQapfgOd1yqj3zpTv10dti7AF6EzSZY+q2NMz5ChBSdzx+7nVa8XlZeZCvlG6XjeSNrtiyH/KmJTY7hbCCkZNFy42OvnXEXi4ShL/pqcpxcQBp9JR609KFG42S+zRbNQ1z4Odi26e9o0rp2pxbChh0sK0FQ05DJoB4IlISXKu1E2MB2aWmqFy7o9YczQZoWQ4ogNeronjwAiJpvHTVPkvMc7GMEggC62rM9sk5vgm+MRkjmYYgxi2Kb+EAWxaE84epvN58XFHdNBEmgRqumzl25CjmTMTzotvnNfgvE8DSYCAFHdZoElul8H7j/PLvd4E+C05AlD0XmbuDp4Pgy53mRPYmX2Eu9E5S61QtyWkHFzZY1eHxlSrLRW3r+0xFOyUkOQxNNgIBLKwplST8Gk8swuQMADtD7r3yk7EWGzDukrFEEA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(39860400002)(136003)(396003)(346002)(230922051799003)(1800799012)(82310400011)(451199024)(64100799003)(186009)(36840700001)(40470700004)(46966006)(36756003)(41300700001)(2906002)(5660300002)(44832011)(86362001)(40460700003)(1076003)(2616005)(40480700001)(6666004)(83380400001)(26005)(82740400003)(426003)(336012)(478600001)(356005)(47076005)(81166007)(36860700001)(4326008)(6916009)(54906003)(316002)(8936002)(70206006)(70586007)(8676002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 15:46:26.7251
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5583f7cb-54cb-4036-4100-08dbf284adc0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.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: BN9PR12MB5384

Currently, Xen vPCI only supports virtualizing the MSI and MSI-X capabilities.
Hide all other PCI capabilities (including extended capabilities) from domUs for
now, even though there may be certain devices/drivers that depend on being able
to discover certain capabilities.

We parse the physical PCI capabilities linked list and add vPCI register
handlers for the next elements, inserting our own next value, thus presenting a
modified linked list to the domU.

Introduce helper functions vpci_hw_read8 and vpci_read_val. The vpci_read_val
helper function returns a fixed value, which may be used for read as zero
registers, or registers whose value doesn't change.

Introduce pci_find_next_cap_ttl() helper while adapting the logic from
pci_find_next_cap() to suit our needs, and implement the existing
pci_find_next_cap() in terms of the new helper.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
v8->v9:
* move local variable definitions inside loop in pci_find_next_cap_ttl()
* constify supported_caps array and cap parameter of pci_find_next_cap_ttl()
* add comment by vpci_read_val() helper
* rename s/init_bars/init_header/
* add Roger's R-b tag

v7->v8:
* use to array instead of match function
* include lib.h for ARRAY_SIZE
* don't emulate PCI_CAPABILITY_LIST register if PCI_STATUS_CAP_LIST bit is not
  set in hardware
* spell out RAZ/WI acronym
* dropped R-b tag since the patch has changed moderately since the last rev

v6->v7:
* no change

v5->v6:
* add register handlers before status register handler in init_bars()
* s/header->mask_cap_list/mask_cap_list/

v4->v5:
* use more appropriate types, continued
* get rid of unnecessary hook function
* add Jan's R-b

v3->v4:
* move mask_cap_list setting to this patch
* leave pci_find_next_cap signature alone
* use more appropriate types

v2->v3:
* get rid of > 0 in loop condition
* implement pci_find_next_cap in terms of new pci_find_next_cap_ttl function so
  that hypothetical future callers wouldn't be required to pass &ttl.
* change NULL to (void *)0 for RAZ value passed to vpci_read_val
* change type of ttl to unsigned int
* remember to mask off the low 2 bits of next in the initial loop iteration
* change return type of pci_find_next_cap and pci_find_next_cap_ttl
* avoid wrapping the PCI_STATUS_CAP_LIST condition by using ! instead of == 0

v1->v2:
* change type of ttl to int
* use switch statement instead of if/else
* adapt existing pci_find_next_cap helper instead of rolling our own
* pass ttl as in/out
* "pass through" the lower 2 bits of the next pointer
* squash helper functions into this patch to avoid transient dead code situation
* extended capabilities RAZ/WI
---
 xen/drivers/pci/pci.c     | 33 ++++++++++++-------
 xen/drivers/vpci/header.c | 67 +++++++++++++++++++++++++++++++++++++--
 xen/drivers/vpci/vpci.c   | 12 +++++++
 xen/include/xen/pci.h     |  3 ++
 xen/include/xen/vpci.h    |  6 ++++
 5 files changed, 108 insertions(+), 13 deletions(-)

diff --git a/xen/drivers/pci/pci.c b/xen/drivers/pci/pci.c
index 3569ccb24e9e..e6ccc86214ba 100644
--- a/xen/drivers/pci/pci.c
+++ b/xen/drivers/pci/pci.c
@@ -39,31 +39,42 @@ unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap)
     return 0;
 }
 
-unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,
-                               unsigned int cap)
+unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
+                                   const unsigned int *cap, unsigned int n,
+                                   unsigned int *ttl)
 {
-    u8 id;
-    int ttl = 48;
-
-    while ( ttl-- )
+    while ( (*ttl)-- )
     {
+        unsigned int id, i;
+
         pos = pci_conf_read8(sbdf, pos);
         if ( pos < 0x40 )
             break;
 
-        pos &= ~3;
-        id = pci_conf_read8(sbdf, pos + PCI_CAP_LIST_ID);
+        id = pci_conf_read8(sbdf, (pos & ~3) + PCI_CAP_LIST_ID);
 
         if ( id == 0xff )
             break;
-        if ( id == cap )
-            return pos;
+        for ( i = 0; i < n; i++ )
+        {
+            if ( id == cap[i] )
+                return pos;
+        }
 
-        pos += PCI_CAP_LIST_NEXT;
+        pos = (pos & ~3) + PCI_CAP_LIST_NEXT;
     }
+
     return 0;
 }
 
+unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,
+                               unsigned int cap)
+{
+    unsigned int ttl = 48;
+
+    return pci_find_next_cap_ttl(sbdf, pos, &cap, 1, &ttl) & ~3;
+}
+
 /**
  * pci_find_ext_capability - Find an extended capability
  * @sbdf: PCI device to query
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 351318121e48..3be2e21cd925 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -18,6 +18,7 @@
  */
 
 #include <xen/iocap.h>
+#include <xen/lib.h>
 #include <xen/sched.h>
 #include <xen/softirq.h>
 #include <xen/vpci.h>
@@ -513,7 +514,7 @@ static void cf_check rom_write(
         rom->addr = val & PCI_ROM_ADDRESS_MASK;
 }
 
-static int cf_check init_bars(struct pci_dev *pdev)
+static int cf_check init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
     uint64_t addr, size;
@@ -545,6 +546,68 @@ static int cf_check init_bars(struct pci_dev *pdev)
     if ( rc )
         return rc;
 
+    if ( !is_hardware_domain(pdev->domain) )
+    {
+        if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
+        {
+            /* Only expose capabilities to the guest that vPCI can handle. */
+            unsigned int next, ttl = 48;
+            const unsigned int supported_caps[] = {
+                PCI_CAP_ID_MSI,
+                PCI_CAP_ID_MSIX,
+            };
+
+            next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
+                                         supported_caps,
+                                         ARRAY_SIZE(supported_caps), &ttl);
+
+            rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                                   PCI_CAPABILITY_LIST, 1,
+                                   (void *)(uintptr_t)next);
+            if ( rc )
+                return rc;
+
+            next &= ~3;
+
+            if ( !next )
+                /*
+                 * If we don't have any supported capabilities to expose to the
+                 * guest, mask the PCI_STATUS_CAP_LIST bit in the status
+                 * register.
+                 */
+                mask_cap_list = true;
+
+            while ( next && ttl )
+            {
+                unsigned int pos = next;
+
+                next = pci_find_next_cap_ttl(pdev->sbdf,
+                                             pos + PCI_CAP_LIST_NEXT,
+                                             supported_caps,
+                                             ARRAY_SIZE(supported_caps), &ttl);
+
+                rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
+                                       pos + PCI_CAP_LIST_ID, 1, NULL);
+                if ( rc )
+                    return rc;
+
+                rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                                       pos + PCI_CAP_LIST_NEXT, 1,
+                                       (void *)(uintptr_t)next);
+                if ( rc )
+                    return rc;
+
+                next &= ~3;
+            }
+        }
+
+        /* Extended capabilities read as zero, write ignore */
+        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL, 0x100, 4,
+                               (void *)0);
+        if ( rc )
+            return rc;
+    }
+
     /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
     rc = vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
                                 PCI_STATUS, 2, NULL,
@@ -642,7 +705,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
 
     return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false) : 0;
 }
-REGISTER_VPCI_INIT(init_bars, VPCI_PRIORITY_MIDDLE);
+REGISTER_VPCI_INIT(init_header, VPCI_PRIORITY_MIDDLE);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index d569f596a4c3..72ef277c4f8e 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -137,6 +137,18 @@ static void cf_check vpci_ignored_write(
 {
 }
 
+uint32_t cf_check vpci_read_val(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
+{
+    return (uintptr_t)data;
+}
+
+uint32_t cf_check vpci_hw_read8(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
+{
+    return pci_conf_read8(pdev->sbdf, reg);
+}
+
 uint32_t cf_check vpci_hw_read16(
     const struct pci_dev *pdev, unsigned int reg, void *data)
 {
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 50d7dfb2a2fd..1509f8f466f1 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -205,6 +205,9 @@ int pci_mmcfg_read(unsigned int seg, unsigned int bus,
 int pci_mmcfg_write(unsigned int seg, unsigned int bus,
                     unsigned int devfn, int reg, int len, u32 value);
 unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap);
+unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
+                                   const unsigned int *cap, unsigned int n,
+                                   unsigned int *ttl);
 unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,
                                unsigned int cap);
 unsigned int pci_find_ext_capability(pci_sbdf_t sbdf, unsigned int cap);
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 85c52a1ebac7..d20c301a3db3 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -57,7 +57,13 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size);
 void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
                 uint32_t data);
 
+/* Helper to return the value passed in data. */
+uint32_t cf_check vpci_read_val(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+
 /* Passthrough handlers. */
+uint32_t cf_check vpci_hw_read8(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
 uint32_t cf_check vpci_hw_read16(
     const struct pci_dev *pdev, unsigned int reg, void *data);
 uint32_t cf_check vpci_hw_read32(
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 16:57:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 16:57:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645630.1007825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r96pK-0004Nv-61; Fri, 01 Dec 2023 16:57:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645630.1007825; Fri, 01 Dec 2023 16:57:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r96pK-0004No-3D; Fri, 01 Dec 2023 16:57:18 +0000
Received: by outflank-mailman (input) for mailman id 645630;
 Fri, 01 Dec 2023 16:57: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=cJ34=HM=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1r96pI-0004Ni-Ho
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 16:57:16 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id abeb93e8-906a-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 17:57:12 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 8EF554EE073C;
 Fri,  1 Dec 2023 17:57:11 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abeb93e8-906a-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Fri, 01 Dec 2023 17:57:11 +0100
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, bertrand.marquis@arm.com,
 julien@xen.org, Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?R?=
 =?UTF-8?Q?oger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 6/7] xen/x86: remove stale comment
In-Reply-To: <48f44ee5-95c5-4656-97f1-7fa6d0fdc53c@suse.com>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com>
 <d06ee9f139392045fb8d927ff3a0c38fdc5080c6.1701270983.git.nicola.vetrini@bugseng.com>
 <48f44ee5-95c5-4656-97f1-7fa6d0fdc53c@suse.com>
Message-ID: <528ef7334c091ad9acb0316cf4b5558b@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 2023-11-30 17:41, Jan Beulich wrote:
> On 29.11.2023 16:24, Nicola Vetrini wrote:
>> The comment referred to the declaration for do_mca, which
>> now is part of hypercall-defs.h, therefore the comment is stale.
> 
> If the comments were stale, the #include-s should also be able to
> disappear?
> 
>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>> @@ -14,7 +14,7 @@
>>  #include <xen/cpumask.h>
>>  #include <xen/event.h>
>>  #include <xen/guest_access.h>
>> -#include <xen/hypercall.h> /* for do_mca */
>> +#include <xen/hypercall.h>
>>  #include <xen/cpu.h>
> 
> Here specifically I think the comment isn't stale, as xen/hypercall.h
> includes xen/hypercall-defs.h.
> 

Ok, I see your point

>> --- a/xen/arch/x86/include/asm/hypercall.h
>> +++ b/xen/arch/x86/include/asm/hypercall.h
>> @@ -12,7 +12,7 @@
>>  #include <xen/types.h>
>>  #include <public/physdev.h>
>>  #include <public/event_channel.h>
>> -#include <public/arch-x86/xen-mca.h> /* for do_mca */
>> +#include <public/arch-x86/xen-mca.h>
>>  #include <asm/paging.h>
> 
> Here otoh I'm not even sure this public header (or the others) is (are)
> really needed.
> 

I confirm this. It build even without this header.

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 17:50:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 17:50:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645638.1007835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r97ef-0005LT-1m; Fri, 01 Dec 2023 17:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645638.1007835; Fri, 01 Dec 2023 17: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 1r97ee-0005LM-VT; Fri, 01 Dec 2023 17:50:20 +0000
Received: by outflank-mailman (input) for mailman id 645638;
 Fri, 01 Dec 2023 17: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=eb4H=HM=redhat.com=eblake@srs-se1.protection.inumbo.net>)
 id 1r97ed-0005LG-D9
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 17:50:19 +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 15cf6378-9072-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 18:50:17 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-237-wiJksplgOqK26WQxCrz9YQ-1; Fri, 01 Dec 2023 12:50:08 -0500
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com
 [10.11.54.3])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id E4EB2811E86;
 Fri,  1 Dec 2023 17:50:07 +0000 (UTC)
Received: from redhat.com (unknown [10.2.16.190])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 2C7731121307;
 Fri,  1 Dec 2023 17:50: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: 15cf6378-9072-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701453015;
	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=gVzSOJaOURMhSPu/ykMOhMUOlZ5huh+Np23QMDeR1QM=;
	b=SMkGZZQjVBL4bdoK+EzSzw3+ILGo8/VzO9z9vdrMqJblsnh/uDaNm5ayXgkBrbtRfUXmyD
	kbqCYkhtfGVpzF7o7Jk6KYHIrLxfpPoGGtQoAL6CJlhiCY86RRRsJTPPEVuEpSK6g7uw+u
	4/vgUsftbg65BdJSwNv87WijW3NqAu0=
X-MC-Unique: wiJksplgOqK26WQxCrz9YQ-1
Date: Fri, 1 Dec 2023 11:50:02 -0600
From: Eric Blake <eblake@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>, 
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Alberto Garcia <berto@igalia.com>, Emanuele Giuseppe Esposito <eesposit@redhat.com>, 
	John Snow <jsnow@redhat.com>, Kevin Wolf <kwolf@redhat.com>, 
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org, xen-devel@lists.xenproject.org, 
	Coiby Xu <Coiby.Xu@gmail.com>, Eduardo Habkost <eduardo@habkost.net>, 
	Xie Changlong <xiechanglong.d@gmail.com>, Ari Sundholm <ari@tuxera.com>, 
	Li Zhijian <lizhijian@fujitsu.com>, Cleber Rosa <crosa@redhat.com>, 
	Juan Quintela <quintela@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, 
	Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= <berrange@redhat.com>, Jason Wang <jasowang@redhat.com>, 
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>, 
	Anthony Perard <anthony.perard@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Leonardo Bras <leobras@redhat.com>, Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, 
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 11/12] job: remove outdated AioContext locking comments
Message-ID: <7ppmz3puvasog2osajahmk2frxmdyfmiqphtlktcjw4ovif65z@mvbwdmhlgq77>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-12-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231129195553.942921-12-stefanha@redhat.com>
User-Agent: NeoMutt/20231103
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3

On Wed, Nov 29, 2023 at 02:55:52PM -0500, Stefan Hajnoczi wrote:
> The AioContext lock no longer exists.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  include/qemu/job.h | 20 --------------------
>  1 file changed, 20 deletions(-)
>

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:  qemu.org | libguestfs.org



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 18:41:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 18:41:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645643.1007846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r98SI-0005oA-Nl; Fri, 01 Dec 2023 18:41:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645643.1007846; Fri, 01 Dec 2023 18: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 1r98SI-0005o3-LA; Fri, 01 Dec 2023 18:41:38 +0000
Received: by outflank-mailman (input) for mailman id 645643;
 Fri, 01 Dec 2023 18:41:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=eb4H=HM=redhat.com=eblake@srs-se1.protection.inumbo.net>)
 id 1r98SI-0005mQ-4k
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 18:41:38 +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 412fc385-9079-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 19:41:36 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-217-66xIaf1cO8GcY6Qnzh7Wxg-1; Fri, 01 Dec 2023 13:41:32 -0500
Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com
 [10.11.54.5])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 31B74101A550;
 Fri,  1 Dec 2023 18:41:31 +0000 (UTC)
Received: from redhat.com (unknown [10.2.16.190])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 7777010EA5;
 Fri,  1 Dec 2023 18:41: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: 412fc385-9079-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701456095;
	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=3ZACWUhb4JEwfAd7144DY0G8wC5xk0wN6pMVFcDanWw=;
	b=AZWON6++LQHeZp94YXTpsD+scrnyC5FSi0Ve9edYWwaRfI3CUCm0wRx5ZkvfSd37CP8vw3
	P74eAwPiluMNEY4q5P8fM3sjQTTUwUHMU0u61KmfLpTqbHsMsDVebgFOzDNyXZagqcy9kS
	rbChNBAdjeeyMTlwfqaYAIygfWGHUV0=
X-MC-Unique: 66xIaf1cO8GcY6Qnzh7Wxg-1
Date: Fri, 1 Dec 2023 12:41:24 -0600
From: Eric Blake <eblake@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>, 
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Alberto Garcia <berto@igalia.com>, Emanuele Giuseppe Esposito <eesposit@redhat.com>, 
	John Snow <jsnow@redhat.com>, Kevin Wolf <kwolf@redhat.com>, 
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org, xen-devel@lists.xenproject.org, 
	Coiby Xu <Coiby.Xu@gmail.com>, Eduardo Habkost <eduardo@habkost.net>, 
	Xie Changlong <xiechanglong.d@gmail.com>, Ari Sundholm <ari@tuxera.com>, 
	Li Zhijian <lizhijian@fujitsu.com>, Cleber Rosa <crosa@redhat.com>, 
	Juan Quintela <quintela@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, 
	Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= <berrange@redhat.com>, Jason Wang <jasowang@redhat.com>, 
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>, 
	Anthony Perard <anthony.perard@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Leonardo Bras <leobras@redhat.com>, Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, 
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 12/12] block: remove outdated AioContext locking comments
Message-ID: <dhk443hopxyaye4lp2mxbvtmw6txuhweytxqqnwe7n25mvorou@wslc57dcy5ny>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-13-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231129195553.942921-13-stefanha@redhat.com>
User-Agent: NeoMutt/20231103
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5

On Wed, Nov 29, 2023 at 02:55:53PM -0500, Stefan Hajnoczi wrote:
> The AioContext lock no longer exists.
> 
> There is one noteworthy change:
> 
>   - * More specifically, these functions use BDRV_POLL_WHILE(bs), which
>   - * requires the caller to be either in the main thread and hold
>   - * the BlockdriverState (bs) AioContext lock, or directly in the
>   - * home thread that runs the bs AioContext. Calling them from
>   - * another thread in another AioContext would cause deadlocks.
>   + * More specifically, these functions use BDRV_POLL_WHILE(bs), which requires
>   + * the caller to be either in the main thread or directly in the home thread
>   + * that runs the bs AioContext. Calling them from another thread in another
>   + * AioContext would cause deadlocks.
> 
> I am not sure whether deadlocks are still possible. Maybe they have just
> moved to the fine-grained locks that have replaced the AioContext. Since
> I am not sure if the deadlocks are gone, I have kept the substance
> unchanged and just removed mention of the AioContext.

I'd rather text that may be overly conservative than an omission that
could lead to a bug; so I'm okay with your action there.

> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:  qemu.org | libguestfs.org



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 18:47:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 18:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645647.1007857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r98Y6-0007CR-HW; Fri, 01 Dec 2023 18:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645647.1007857; Fri, 01 Dec 2023 18: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 1r98Y6-0007CK-D7; Fri, 01 Dec 2023 18:47:38 +0000
Received: by outflank-mailman (input) for mailman id 645647;
 Fri, 01 Dec 2023 18:47:37 +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 1r98Y5-0007CE-7b
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 18:47:37 +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 1r98Y4-00062A-SO; Fri, 01 Dec 2023 18:47:36 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=dev-dsk-jgrall-1b-035652ec.eu-west-1.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r98Y4-0000Np-Hr; Fri, 01 Dec 2023 18:47: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=ndxVU3EWahiDQSPaDNSsgeLeNuG+m3VG8dgm4KveLBw=; b=grs4Uq
	RPBPjd0ayV8k4tc21JHaNE4tIi4aOVXx4F/iwEp7AmDrEAOEyupLc1Mj/bR03WCZtXy89YliIjK1N
	/lVTNLS1NBhwQKlJnOTb156qgZ03zlkTd5vYYPF4XRPHiTUW0aEcKvOfHrhTex8o0f3toRQdsq8J/
	Lcp/Hsa3cc0=;
From: Julien Grall <julien@xen.org>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	Julien Grall <jgrall@amazon.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH] CODING_STYLE: Add a section of the naming convention
Date: Fri,  1 Dec 2023 18:47:28 +0000
Message-Id: <20231201184728.31766-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>

Several maintainers have expressed a stronger preference
to use '-' when in filename and option that contains multiple
words.

So document it in CODING_STYLE.

Signed-off-by: Julien Grall <jgrall@amazon.com>
---
 CODING_STYLE | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/CODING_STYLE b/CODING_STYLE
index ced3ade5a6fb..afd09177745b 100644
--- a/CODING_STYLE
+++ b/CODING_STYLE
@@ -144,6 +144,15 @@ separate lines and each line should begin with a leading '*'.
  * Note beginning and end markers on separate lines and leading '*'.
  */
 
+Naming convention
+-----------------
+
+When command line option or filename contain multiple words, a '-'
+should be to separate them. E.g. 'timer-works'.
+
+Note that some of the option and filename are using '_'. This is now
+deprecated.
+
 Emacs local variables
 ---------------------
 
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 18:48:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 18:48:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645650.1007866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r98ZJ-0007jZ-Qy; Fri, 01 Dec 2023 18:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645650.1007866; Fri, 01 Dec 2023 18: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 1r98ZJ-0007jS-Mm; Fri, 01 Dec 2023 18:48:53 +0000
Received: by outflank-mailman (input) for mailman id 645650;
 Fri, 01 Dec 2023 18:48: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 1r98ZI-0007jG-CT; Fri, 01 Dec 2023 18:48: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 1r98ZI-00063l-BU; Fri, 01 Dec 2023 18:48: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 1r98ZH-0008QJ-S0; Fri, 01 Dec 2023 18:48:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r98ZH-0003ER-Ra; Fri, 01 Dec 2023 18:48: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=74cc613K/uXdMKI3i8lcyK3y95AnmYuX3IB+Na3j5U8=; b=POhhC71bH9/zX0WFItqz7dKNNo
	gEDzZJQpUlcDBViHQbEsGQ9ZGhlkv6IHTW4UWZy6NMTNKDGbDjPR6+BgoH2e9cPxy7YQjIc7iMGLq
	lJ/12y3BWROlLmI4HuvX7Fu1g/jIWU9AzQp+lG4PUxBYMFY9rtseComvQkoH5gwLvFwo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183966-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 183966: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=70b174e24db4a6de1590fda65846074dcb9fd7d3
X-Osstest-Versions-That:
    ovmf=534021965f6f7c417610add53984f39d6945bbcf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 01 Dec 2023 18:48:51 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 70b174e24db4a6de1590fda65846074dcb9fd7d3
baseline version:
 ovmf                 534021965f6f7c417610add53984f39d6945bbcf

Last test of basis   183958  2023-12-01 01:15:11 Z    0 days
Testing same since   183966  2023-12-01 15:11:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abner Chang <abner.chang@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    
 test-amd64-i386-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
   534021965f..70b174e24d  70b174e24db4a6de1590fda65846074dcb9fd7d3 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 18:49:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 18:49:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645654.1007875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r98aB-0008Gg-39; Fri, 01 Dec 2023 18:49:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645654.1007875; Fri, 01 Dec 2023 18: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 1r98aB-0008GZ-0b; Fri, 01 Dec 2023 18:49:47 +0000
Received: by outflank-mailman (input) for mailman id 645654;
 Fri, 01 Dec 2023 18:49:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1r98a9-0008GR-TN
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 18:49:45 +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 1r98a9-00064I-Q4; Fri, 01 Dec 2023 18:49:45 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r98a9-0000SH-Iu; Fri, 01 Dec 2023 18:49: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=+HISquiAvBzODWLHuNwOOj6O0ivE4JZ+sOGDAqBj9wY=; b=WIA2V3oQ4ex0SRbaVHetpugt4i
	DbirR4bHtTcMxjcsAIz1R2vAoHn5Yles6dj66ghKUmY/Z1XnMAtlYGHXnROCQWrmQH7kkTqHdEfJ9
	hjBU4NQ80WMmPCV55V28x3PduxDQr1Wt/7dvV1ZwmRCOZA9Vctx5pKnF4eanItohptvA=;
Message-ID: <0e20592b-9800-4b9d-9f2f-a996f9ac00bd@xen.org>
Date: Fri, 1 Dec 2023 18:49:43 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
Content-Language: en-GB
To: xen-devel@lists.xenproject.org
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231201184728.31766-1-julien@xen.org>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231201184728.31766-1-julien@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 01/12/2023 18:47, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
> 
> Several maintainers have expressed a stronger preference
> to use '-' when in filename and option that contains multiple
> words.
> 
> So document it in CODING_STYLE.
> 
> Signed-off-by: Julien Grall <jgrall@amazon.com>
> ---
>   CODING_STYLE | 9 +++++++++
>   1 file changed, 9 insertions(+)
> 
> diff --git a/CODING_STYLE b/CODING_STYLE
> index ced3ade5a6fb..afd09177745b 100644
> --- a/CODING_STYLE
> +++ b/CODING_STYLE
> @@ -144,6 +144,15 @@ separate lines and each line should begin with a leading '*'.
>    * Note beginning and end markers on separate lines and leading '*'.
>    */
>   
> +Naming convention
> +-----------------
> +
> +When command line option or filename contain multiple words, a '-'
> +should be to separate them. E.g. 'timer-works'.
> +
> +Note that some of the option and filename are using '_'. This is now
> +deprecated.

Urgh, I sent the wrong draft :(. This is the wording I wanted to propose:

+Naming convention
+-----------------
+
+'-' should be used to separate words in commandline options and filenames.
+E.g. timer-works.
+
+Note that some of the options and filenames are using '_'. This is now
+deprecated.
+

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 18:50:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 18:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645657.1007886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r98as-0001Cs-Cq; Fri, 01 Dec 2023 18:50:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645657.1007886; Fri, 01 Dec 2023 18:50:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r98as-0001Cl-9Q; Fri, 01 Dec 2023 18:50:30 +0000
Received: by outflank-mailman (input) for mailman id 645657;
 Fri, 01 Dec 2023 18:50:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=op0Z=HM=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1r98aq-0000AU-FI
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 18:50:28 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20609.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d96862f-907a-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 19:50:27 +0100 (CET)
Received: from DS7PR07CA0020.namprd07.prod.outlook.com (2603:10b6:5:3af::12)
 by DS0PR12MB6656.namprd12.prod.outlook.com (2603:10b6:8:d2::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.24; Fri, 1 Dec
 2023 18:50:21 +0000
Received: from DS1PEPF0001709C.namprd05.prod.outlook.com
 (2603:10b6:5:3af:cafe::55) by DS7PR07CA0020.outlook.office365.com
 (2603:10b6:5:3af::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27 via Frontend
 Transport; Fri, 1 Dec 2023 18:50:21 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS1PEPF0001709C.mail.protection.outlook.com (10.167.18.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7046.17 via Frontend Transport; Fri, 1 Dec 2023 18:50:21 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 1 Dec
 2023 12:50:19 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via
 Frontend Transport; Fri, 1 Dec 2023 12:50:18 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d96862f-907a-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JXPPkIuWluu9xN6j+dB7XX9oxFbfTZiJg7E0G/qjXoe4/VR271cYGo6pkC3uz/NQAphR6RpFUiqMJhwBd8qp7tSuKTJI75qHzIsio7dxt/MZsxUy0OhMcXEmKoZp1AnUV+XewiH56isckMVAFonPv1WTzmeKucFvjlBFaPKn2SpGz6o6/4TbPvisfb1y/eMBpAPDBsy9teSRwcvwMjbsNXvGo4YqkDK2B8JLZRTYut8jnGKHS34SSd7VaN1duwEOj4cXqZvcJInEfS9sqeZOGTg+OdccFAwqQagPQIcqUsiPMDt5Rbx108b5AYkVwrF0SNTSabZqcx/FIMjSEpKC1A==
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=z7C62dUwoR2D2M+t/xzfZcDZ+8Repmw7lnwnu1cSrI4=;
 b=iU26P+MGKkHcogGtDXBMfTC6KdiO5uHvjKJOFOpJ5aNdaW5l+g/1vpygM6RJUInb35WGbqkvcHWG6cmoUuGGNq8I18It9OuIkipkhuCLQHkln93Ve5CySDX7iAGEQ/Sjmh2KhOKRlVThCQ8TiJUFYZTa6h5bhvNq9TX+FUvvtyZm1rxympYdjDy3vo55IhqbQYA3cS+Ae7N6xLEX+FHJaEdRfJ/iIhamby3A5FaUEOzQ2SO/VJLQ6U3r6b1tVtBbD1IYoEWhCooaBC9blRK0nqjFZUno/KgG+ynEEJzVTwE7Z+A6FyjLhs7mzpxPLxr24Pa0AajvHJP6nvzhaXApkg==
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=z7C62dUwoR2D2M+t/xzfZcDZ+8Repmw7lnwnu1cSrI4=;
 b=nnSGz0w2tmOg5Qo/AiBd96HOyZVeccCzyuoF1Rj9nfqIbXQZ6KTRiR72MjyVxBcKu4AK+5mGNGBGLiVu/kuOuLZOR14WBJgFZGEajVD5Slv6avBMRaOuR2wp2UG2+21RB+NcxqCuHDSoSFoy60HazS2XKCQHW59gcjsdEOuqBRw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, <stefano.stabellini@amd.com>, <julien@xen.org>,
	<bertrand.marquis@arm.com>, <michal.orzel@amd.com>,
	<Volodymyr_Babchuk@epam.com>
CC: <xen-devel@lists.xenproject.org>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
Subject: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer Registers
Date: Fri, 1 Dec 2023 18:50:09 +0000
Message-ID: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF0001709C:EE_|DS0PR12MB6656:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ed39ec6-87ff-4dbc-9b87-08dbf29e5ef5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	wuaWRe7rpiAukKhSBF/idFLa3g2Bf/wO2IYkg5TwVJmaakS4tXVlLps2a/aFIHALfVgLWt38B9rRaHLoaZHub8NrpyacAlxB6LJaevoEkt9xB+ERV2/Tl5TiiviNc0IYF/BJFv4czGXls8GI4KoDv0jayS4B2T1P/A8ZyVPDRzIp/qDet+2nUM+552aEgLGh8GxslY8CmkvMcAl+Ci22sOeRZzCvPiOSUQKJ9nyGp0BvPL6SMD994JEAm4arm6AOFAuJ49fcjXgQ+25C4OxW14Ydpwkk7V6dKv89bTIfmeSy9WutW1Grcende1m38/KUb5L4LAfZ7ggXHy43FSjwjWpMS87CN+bi5Wxt81XxOnd/+H+4PlDEfhrZy2dTpMbcnhS+Fh0qG3mp8++Lk+TYEEGg+g74s4MHgwY11MACFx87dwhD0ZJSZFzGZPbM8nDb7WiNfqMI+AzVco6H9WyalXZKJNFQasAMMkND4ZbxTb4OMwRDz9CAC3yq/r1jJrwPm0P5H0Gad07gMpQC317XaCKQ6pqxgd8MsE9vFGiV6vb93fdbZf6lazgMUMlUc+xMDx9dO3oUelc6qN4d+RJ6TpTweMcN/QI1mmHsfI7abIoYpJlo5MUsnX6pgrfvOOTyaSNV4Wd/5aPdwj9LBrRyODTuESU9uhPCXLwt+t+uCDTJJOOhngx+JEOyBecD9pRVhco5j85Xu+ZZzI9r5tc9KMjhc3s6rf8+debMlTcjSO1XCzOMvw0wJERfGGif+j3m74/0I2pzIGqU+Y8/zdB+W6yW2eNXCVmJTeQfcMUxIQKEh1+kCpJDQvg61YGM4RWVQz/pbGe0LxXSPYl7sdOEBg==
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:(13230031)(4636009)(346002)(136003)(396003)(39860400002)(376002)(230273577357003)(230173577357003)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(82310400011)(46966006)(40470700004)(36840700001)(356005)(40460700003)(70206006)(478600001)(8936002)(4326008)(86362001)(54906003)(8676002)(70586007)(110136005)(316002)(41300700001)(36756003)(2906002)(103116003)(5660300002)(36860700001)(81166007)(47076005)(82740400003)(1076003)(2616005)(336012)(6666004)(426003)(83380400001)(26005)(40480700001)(2101003)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 18:50:21.4184
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ed39ec6-87ff-4dbc-9b87-08dbf29e5ef5
X-MS-Exchange-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:
	DS1PEPF0001709C.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6656

Currently if user enables HVC_DCC config option in Linux, it invokes
access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
an undefined exception to the guest. And Linux crashes.

We wish to avoid this crash by adding a "partial" emulation. DBGDTR_EL0
is emulated as TXfull | RXfull.
Refer ARM DDI 0487I.a ID081822, D17.3.8, DBGDTRTX_EL0
"If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN"
Also D17.3.7 DBGDTRRX_EL0,
" If RXfull is set to 1, return the last value written to DTRRX."

Thus, any OS is expected to read DBGDTR_EL0 and check for TXfull
before using DBGDTRTX_EL0. Linux does it via hvc_dcc_init() --->
hvc_dcc_check() , it returns -ENODEV. In this way, we are preventing
the guest to be aborted.

We also emulate DBGDTRTX_EL0 as RAZ/WI.

We have added emulation for AArch32 variant of these registers as well.
Also, we have added handle_read_val_wi() to emulate DBGDSCREXT register
to return a specific value (ie TXfull | RXfull) and ignore any writes
to this register.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 xen/arch/arm/arm64/vsysreg.c         | 21 ++++++++++++++----
 xen/arch/arm/include/asm/arm64/hsr.h |  3 +++
 xen/arch/arm/include/asm/cpregs.h    |  2 ++
 xen/arch/arm/include/asm/traps.h     |  4 ++++
 xen/arch/arm/traps.c                 | 18 +++++++++++++++
 xen/arch/arm/vcpreg.c                | 33 +++++++++++++++++++++-------
 6 files changed, 69 insertions(+), 12 deletions(-)

diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
index b5d54c569b..5082dfb02e 100644
--- a/xen/arch/arm/arm64/vsysreg.c
+++ b/xen/arch/arm/arm64/vsysreg.c
@@ -159,9 +159,6 @@ void do_sysreg(struct cpu_user_regs *regs,
      *
      * Unhandled:
      *    MDCCINT_EL1
-     *    DBGDTR_EL0
-     *    DBGDTRRX_EL0
-     *    DBGDTRTX_EL0
      *    OSDTRRX_EL1
      *    OSDTRTX_EL1
      *    OSECCR_EL1
@@ -172,11 +169,27 @@ void do_sysreg(struct cpu_user_regs *regs,
     case HSR_SYSREG_MDSCR_EL1:
         return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
     case HSR_SYSREG_MDCCSR_EL0:
+    {
+        /*
+         * Bit 29: TX full, bit 30: RX full
+         * Given that we emulate DCC registers as RAZ/WI, doing the same for
+         * MDCCSR_EL0 would cause a guest to continue using the DCC despite no
+         * real effect. Setting the TX/RX status bits should result in a probe
+         * fail (based on Linux behavior).
+         */
+        register_t guest_reg_value = (1U << 29) | (1U << 30);
+
         /*
          * Accessible at EL0 only if MDSCR_EL1.TDCC is set to 0. We emulate that
          * register as RAZ/WI above. So RO at both EL0 and EL1.
          */
-        return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
+        return handle_ro_read_val(regs, regidx, hsr.sysreg.read, hsr, 0,
+                                  guest_reg_value);
+    }
+    case HSR_SYSREG_DBGDTR_EL0:
+    /* DBGDTR[TR]X_EL0 share the same encoding */
+    case HSR_SYSREG_DBGDTRTX_EL0:
+        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 0);
     HSR_SYSREG_DBG_CASES(DBGBVR):
     HSR_SYSREG_DBG_CASES(DBGBCR):
     HSR_SYSREG_DBG_CASES(DBGWVR):
diff --git a/xen/arch/arm/include/asm/arm64/hsr.h b/xen/arch/arm/include/asm/arm64/hsr.h
index e691d41c17..1495ccddea 100644
--- a/xen/arch/arm/include/asm/arm64/hsr.h
+++ b/xen/arch/arm/include/asm/arm64/hsr.h
@@ -47,6 +47,9 @@
 #define HSR_SYSREG_OSDLR_EL1      HSR_SYSREG(2,0,c1,c3,4)
 #define HSR_SYSREG_DBGPRCR_EL1    HSR_SYSREG(2,0,c1,c4,4)
 #define HSR_SYSREG_MDCCSR_EL0     HSR_SYSREG(2,3,c0,c1,0)
+#define HSR_SYSREG_DBGDTR_EL0     HSR_SYSREG(2,3,c0,c4,0)
+#define HSR_SYSREG_DBGDTRTX_EL0   HSR_SYSREG(2,3,c0,c5,0)
+#define HSR_SYSREG_DBGDTRRX_EL0   HSR_SYSREG(2,3,c0,c5,0)
 
 #define HSR_SYSREG_DBGBVRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,4)
 #define HSR_SYSREG_DBGBCRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,5)
diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
index 6b083de204..aec9e8f329 100644
--- a/xen/arch/arm/include/asm/cpregs.h
+++ b/xen/arch/arm/include/asm/cpregs.h
@@ -75,6 +75,8 @@
 #define DBGDIDR         p14,0,c0,c0,0   /* Debug ID Register */
 #define DBGDSCRINT      p14,0,c0,c1,0   /* Debug Status and Control Internal */
 #define DBGDSCREXT      p14,0,c0,c2,2   /* Debug Status and Control External */
+#define DBGDTRRXINT     p14,0,c0,c5,0   /* Debug Data Transfer Register, Receive */
+#define DBGDTRTXINT     p14,0,c0,c5,0   /* Debug Data Transfer Register, Transmit */
 #define DBGVCR          p14,0,c0,c7,0   /* Vector Catch */
 #define DBGBVR0         p14,0,c0,c0,4   /* Breakpoint Value 0 */
 #define DBGBCR0         p14,0,c0,c0,5   /* Breakpoint Control 0 */
diff --git a/xen/arch/arm/include/asm/traps.h b/xen/arch/arm/include/asm/traps.h
index 883dae368e..a2692722d5 100644
--- a/xen/arch/arm/include/asm/traps.h
+++ b/xen/arch/arm/include/asm/traps.h
@@ -56,6 +56,10 @@ void handle_ro_raz(struct cpu_user_regs *regs, int regidx, bool read,
 void handle_ro_read_val(struct cpu_user_regs *regs, int regidx, bool read,
                         const union hsr hsr, int min_el, register_t val);
 
+/* Read only as value provided with 'val' argument, write ignore */
+void handle_read_val_wi(struct cpu_user_regs *regs, int regidx,
+                        const union hsr hsr, int min_el, register_t val);
+
 /* Co-processor registers emulation (see arch/arm/vcpreg.c). */
 void do_cp15_32(struct cpu_user_regs *regs, const union hsr hsr);
 void do_cp15_64(struct cpu_user_regs *regs, const union hsr hsr);
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 3784e8276e..f5ab555b19 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1676,6 +1676,24 @@ void handle_ro_read_val(struct cpu_user_regs *regs,
     advance_pc(regs, hsr);
 }
 
+/* Read as value provided with 'val' argument of this function, write ignore */
+void handle_read_val_wi(struct cpu_user_regs *regs,
+                        int regidx,
+                        const union hsr hsr,
+                        int min_el,
+                        register_t val)
+{
+    ASSERT((min_el == 0) || (min_el == 1));
+
+    if ( min_el > 0 && regs_mode_is_user(regs) )
+        return inject_undef_exception(regs, hsr);
+
+    set_user_reg(regs, regidx, val);
+
+    advance_pc(regs, hsr);
+}
+
+
 /* Read only as read as zero */
 void handle_ro_raz(struct cpu_user_regs *regs,
                    int regidx,
diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
index 39aeda9dab..3f1276f96e 100644
--- a/xen/arch/arm/vcpreg.c
+++ b/xen/arch/arm/vcpreg.c
@@ -548,20 +548,37 @@ void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
         break;
     }
 
-    case HSR_CPREG32(DBGDSCRINT):
+    case HSR_CPREG32(DBGDSCREXT):
+    {
         /*
-         * Read-only register. Accessible by EL0 if DBGDSCRext.UDCCdis
-         * is set to 0, which we emulated below.
+         * Bit 29: TX full, bit 30: RX full
+         * Given that we emulate DCC registers as RAZ/WI, doing the same for
+         * DBGDSCRint would cause a guest to continue using the DCC despite no
+         * real effect. Setting the TX/RX status bits should result in a probe
+         * fail (based on Linux behavior).
          */
-        return handle_ro_raz(regs, regidx, cp32.read, hsr, 1);
+        register_t guest_reg_value = (1U << 29) | (1U << 30);
 
-    case HSR_CPREG32(DBGDSCREXT):
+        return handle_read_val_wi(regs, regidx, hsr, 1,
+                                  guest_reg_value);
+    }
+
+    case HSR_CPREG32(DBGDSCRINT):
+    {
         /*
-         * Implement debug status and control register as RAZ/WI.
-         * The OS won't use Hardware debug if MDBGen not set.
+         * Bit 29: TX full, bit 30: RX full
+         * Given that we emulate DCC registers as RAZ/WI, doing the same for
+         * DBGDSCRint would cause a guest to continue using the DCC despite no
+         * real effect. Setting the TX/RX status bits should result in a probe
+         * fail (based on Linux behavior).
          */
-        return handle_raz_wi(regs, regidx, cp32.read, hsr, 1);
+        register_t guest_reg_value = (1U << 29) | (1U << 30);
+
+        return handle_ro_read_val(regs, regidx, cp32.read, hsr, 1,
+                                  guest_reg_value);
+    }
 
+    case HSR_CPREG32(DBGDTRTXINT):
     case HSR_CPREG32(DBGVCR):
     case HSR_CPREG32(DBGBVR0):
     case HSR_CPREG32(DBGBCR0):
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 19:02:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 19:02:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645665.1007896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r98mg-0003oq-Dp; Fri, 01 Dec 2023 19:02:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645665.1007896; Fri, 01 Dec 2023 19:02:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r98mg-0003oj-Ae; Fri, 01 Dec 2023 19:02:42 +0000
Received: by outflank-mailman (input) for mailman id 645665;
 Fri, 01 Dec 2023 19:02: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 1r98mf-0003oZ-1z
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 19:02: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 1r98me-0006QB-EG; Fri, 01 Dec 2023 19:02:40 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r98me-00014r-7x; Fri, 01 Dec 2023 19:02:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=R8IDklkeTWmJqxaYii8AJSBt4+CAqorEPzJPnof4lBk=; b=QcTl73hbgDpQDN/+lZ6yozYpSl
	3Y3WL24Vo/Mtq72VPPtL07ZnBFPF+9sPloXpVZXhGh8zSH4DquNPBL+NqJQfewxJjpMsS7+ADdmcs
	WzMiCCuYwH5vHR/d6Ytwb8r9bt/YZLUcVWMLToLCKt9qCI1mQXxfkhJm1mS+byDnCmaY=;
Message-ID: <11d320ca-fabe-42c2-91fb-d5eb0a386560@xen.org>
Date: Fri, 1 Dec 2023 19:02:38 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm: Move static event channel feature to a
 separate module
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: <20231130095757.11162-1-michal.orzel@amd.com>
 <915388E2-F755-4F62-B796-63A174DFF3C1@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <915388E2-F755-4F62-B796-63A174DFF3C1@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 30/11/2023 13:17, Luca Fancellu wrote:
>> On 30 Nov 2023, at 09:57, Michal Orzel <michal.orzel@amd.com> wrote:
>>
>> Move static event channel feature related code to a separate module
>> (static-evtchn.{c,h}) in the spirit of fine granular configuration, so
>> that the feature can be disabled if not needed.
>>
>> Introduce Kconfig option CONFIG_STATIC_EVTCHN, enabled by default (to
>> keep the current behavior) dependent on CONFIG_DOM0LESS. While it could
>> be possible to create a loopback connection for dom0 only, this use case
>> does not really need this feature and all the docs and commit messages
>> refer explicitly to the use in dom0less system.
>>
>> The only function visible externally is alloc_static_evtchn(), so move
>> the prototype to static-evtchn.h and provide a stub in case a feature
>> is disabled. Guard static_evtchn_created in struct dt_device_node as
>> well as its helpers.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> ---
> 
> Hi Michal,
> 
> FWIW because it is already Ack-ed.
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Usually when I provide an Acked-by, it means I went through the code and 
generally happy with the patch, but I didn't review throroughly. Even if 
I provide a reviewed-by, it is always useful to have extra pair of eyes 
:). So thanks for looking at it!

It is now committed.

Cheers,

> 
> 
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 19:14:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 19:14:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645669.1007906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r98y5-0006Qm-KZ; Fri, 01 Dec 2023 19:14:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645669.1007906; Fri, 01 Dec 2023 19: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 1r98y5-0006Qf-HM; Fri, 01 Dec 2023 19:14:29 +0000
Received: by outflank-mailman (input) for mailman id 645669;
 Fri, 01 Dec 2023 19:14:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1r98y4-0006QZ-VM
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 19:14: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 1r98y0-0006fg-SQ; Fri, 01 Dec 2023 19:14:24 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r98y0-0001nI-MB; Fri, 01 Dec 2023 19:14: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=TSqBDuGzvvBLIRlLQ20G3Oiz63ONTDCryzDb7TxI/u8=; b=0tQxXEAkt7VxK1x1T7awo2Ydlk
	Unfw9kqgSQIw3fBMwLyQMjmE/reEX/9yICIFgdAngbEfcrn8++EI2bBpebSn1WhjtqfnomFn/R9qB
	0r4WSdGJWtQLSC0TvNaPoiewPX7NVWTHiUoC+b8BFI9/ERNwGMeOvPVu+Ap9By8RMIwI=;
Message-ID: <da7a86ba-7f74-41bb-9540-76f4530ac7ac@xen.org>
Date: Fri, 1 Dec 2023 19:14:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Config.mk: drop -Wdeclaration-after-statement
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Cc: Alexander Kanavin <alex@linutronix.de>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <20231128174729.3880113-1-alex@linutronix.de>
 <fcb1cc57-b985-4711-a234-4aaa380b9abe@suse.com>
 <81043e30-c9fd-4c5e-ad63-0e42edea733d@linutronix.de>
 <5a469665-54b2-4904-9604-ad686fbbb05e@xen.org>
 <716b0ec4-adce-494d-b9b6-69dbb7e26000@perard>
 <890f54b5-9692-40b8-94fa-9a55268e29f5@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <890f54b5-9692-40b8-94fa-9a55268e29f5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 30/11/2023 08:36, Jan Beulich wrote:
> On 29.11.2023 14:10, Anthony PERARD wrote:
>> On Wed, Nov 29, 2023 at 11:47:24AM +0100, Julien Grall wrote:
>>> + Anthony for the tools
>>> + Juergen for Xenstored
>>>
>>> On 29/11/2023 11:34, Alexander Kanavin wrote:
>>>> On 11/29/23 08:51, Jan Beulich wrote:
>>>>
>>>>> On 28.11.2023 18:47, Alexander Kanavin wrote:
>>>>>> Such constructs are fully allowed by C99:
>>>>>> https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Mixed-Labels-and-Declarations.html#Mixed-Labels-and-Declarations
>>>>> There's more to this: It may also be a policy of ours (or of any
>>>>> sub-component)
>>>>> to demand that declarations and statements are properly separated.
>>>>> This would
>>>>> therefore need discussing first.
>>>>
>>>> The error is coming from python 3.12 headers and not from anything in
>>>> xen tree, no? As you don't have control over those headers, I'm not sure
>>>> what other solution there could be.
>>>
>>> We seem to add -Wno-declaration-after-statement for some components in
>>> tools/. So one possibility would be to move the flags to an hypervisor
>>> specific makefile (in xen/).
>>
>> You mean xen/Makefile I hope.
>>
>>> Anthony/Juergen, do you have any concern if the tools are built without
>>> -Wdeclaration-after-statement?
>>
>> I don't, and as you said, there's already quite a few
>> -Wno-declaration-after-statement.
>>
>> It can be nice to add a new variable in the middle of a function, it's
>> like creating a new scope without adding extra indentation (if we wanted
>> a new scope, we would need {} thus the intend).
> 
> To be clear, I wouldn't mind this in the hypervisor either. But then I also
> don't see why we should further request people to separate declarations
> from statements in an easily noticeable way. Thing is that imo something
> like this wants spelling out in ./CODING_STYLE.

So I agree that if we were to remove -Wdeclaration-after-statement then 
we should also update the CODING_STYLE. However, I am not entirely sure 
I would want to mix code and declaration in the hypervisor.

Anyway, I think this is a separate discussion from resolving the 
immediate problem (i.e. building the python bindings).

So for now, I think it would make sense to push the 
-Wdeclaration-after-statement to the tools.

@Alexander, are you going to send a new version? If not, I would be 
happy to do it.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 19:31:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 19:31:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645672.1007916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99Du-0002WZ-W9; Fri, 01 Dec 2023 19:30:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645672.1007916; Fri, 01 Dec 2023 19: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 1r99Du-0002WS-SS; Fri, 01 Dec 2023 19:30:50 +0000
Received: by outflank-mailman (input) for mailman id 645672;
 Fri, 01 Dec 2023 19:30: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=KM1I=HM=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1r99Dt-0002WL-Ns
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 19:30: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 212ca62f-9080-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 20:30:48 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-54c54a3b789so1934924a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 11:30:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 212ca62f-9080-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701459048; x=1702063848; 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=0Zq3qF0bJORuzz1CPuy38Zi6NHYRSFf5H+Oqx88Hvgs=;
        b=SSmr6JUjJTzdZfV6mXzLKyI4ek+dQBNWlGrapAdu1LGwjZ/LdiHoyV78qLMca+J9gK
         sExMEoQikNGMEA+zIm8SQl1EyqIDywagH72CzXIuYgGI4CrgJHXNHks2zwclhrmQThCu
         t2tAtPnIXq1s/HiVOMt8aNQ6bT3AxLriifsMG2J1RLGiK224pkg6ubL92SMmEAoZ9T+w
         gHF+bQPg5F+E4p+p+A1EmRwASGd/2gxGdqYz401IxZyufd3Vz8WBobJzhJox9+QIRqdI
         lfpoVvBQvDM0tAdfWdl9AVQn1B4+W/u4qmInhJkeRKNheP3KUlw9Ej1X6MhFOkj443XS
         OmVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701459048; x=1702063848;
        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=0Zq3qF0bJORuzz1CPuy38Zi6NHYRSFf5H+Oqx88Hvgs=;
        b=d6zY7kMN1SHGM0eHx48UUzA8SDqFXC80A71e8tY/+5zLWXQW9TCtu/rGweFC5l4VVn
         L/yeZwMKDe7+8rg963EYzWyrvi3dY88PJxxKIZG5DQ08zGVSKcu4LFuLJuOCOyFLjhwC
         G6lQZzNME/QGC1uUhkkdCIktR0FQE+V8rhdhzQX8LEOeDlpFlawP4T0QToG7w02mz4F+
         ScXiE/onOa4bTUyN7RIACGdC/EeEj8eWbEe+Q2YBGfo4vvrQQDrJlRrQ7ZFp7OYdjiAO
         WlD+bOA+XcWTL01PQoafmRcxhjI+Gf8Kv9ZgXhCgI1siO2kcYMKiMW54DJ0z/YH5VIR3
         TF9w==
X-Gm-Message-State: AOJu0YxxyteT/R2XepDh3/J2nhLuIemFlxX7jH46zcfhkaKqZQDB/JkC
	f+Z6C3h1DqI9mYaFfvJzATbvH8bzqNJOQG50wEXD4a/LICA=
X-Google-Smtp-Source: AGHT+IHVbrY3sWW7VFp6IS6kxDOZFzgWMgvBKJzHmUWBPzfEeH7MEGgGlORkIphAbsI169U8JzlO2Vjo+ldI81VPtOs=
X-Received: by 2002:aa7:dd01:0:b0:54c:14d3:b3c3 with SMTP id
 i1-20020aa7dd01000000b0054c14d3b3c3mr2140351edv.11.1701459047570; Fri, 01 Dec
 2023 11:30:47 -0800 (PST)
MIME-Version: 1.0
References: <20231110160804.29021-1-jgross@suse.com> <20231110160804.29021-6-jgross@suse.com>
In-Reply-To: <20231110160804.29021-6-jgross@suse.com>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Fri, 1 Dec 2023 14:30:35 -0500
Message-ID: <CAKf6xpvHdBsWn9z5Yu9MY18Q2CzT-YKVqEa1fYnptwTxve31cQ@mail.gmail.com>
Subject: Re: [PATCH v2 05/29] tools/xenlogd: add 9pfs response generation support
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Nov 10, 2023 at 1:41=E2=80=AFPM Juergen Gross <jgross@suse.com> wro=
te:
> +static void fill_buffer(struct ring *ring, uint8_t cmd, uint16_t tag,
> +                        const char *fmt, ...)
> +{
> +    struct p9_header *hdr =3D ring->buffer;
> +    void *data =3D hdr + 1;
> +    const char *f;
> +    const void *par;
> +    const char *str_val;
> +    const struct p9_qid *qid;
> +    unsigned int len;
> +    va_list ap;
> +    unsigned int array_sz =3D 0;
> +    unsigned int elem_sz =3D 0;
> +
> +    hdr->cmd =3D cmd;
> +    hdr->tag =3D tag;
> +
> +    va_start(ap, fmt);
> +
> +    for ( f =3D fmt; *f; f++ )
> +    {
> +        if ( !array_sz )
> +            par =3D va_arg(ap, const void *);
> +        else
> +        {
> +            par +=3D elem_sz;
> +            array_sz--;
> +        }
> +
> +        switch ( *f )
> +        {
> +        case 'a':
> +            f++;
> +            if ( !*f || array_sz )
> +                fmt_err(fmt);
> +            array_sz =3D *(const unsigned int *)par;
> +            if ( array_sz > 0xffff )
> +            {
> +                syslog(LOG_CRIT, "array size %u in fill_buffer()", array=
_sz);
> +                exit(1);
> +            }
> +            *(__packed uint16_t *)data =3D array_sz;

Compiling on Fedora 39, gcc 13.2.1:

io.c: In function =E2=80=98fill_buffer=E2=80=99:
io.c:233:13: error: =E2=80=98packed=E2=80=99 attribute ignored for type =E2=
=80=98uint16_t *=E2=80=99
{aka =E2=80=98short unsigned int *=E2=80=99} [-Werror=3Dattributes]
  233 |             *(__packed uint16_t *)data =3D array_sz;
      |             ^

For all these uses of __packed.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:00:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:00:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645684.1007942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99gf-0001C3-T9; Fri, 01 Dec 2023 20:00:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645684.1007942; Fri, 01 Dec 2023 20:00:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99gf-0001BR-N7; Fri, 01 Dec 2023 20:00:33 +0000
Received: by outflank-mailman (input) for mailman id 645684;
 Fri, 01 Dec 2023 20: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=dz9Y=HM=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1r99gd-0000tO-QJ
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:00:31 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 45287b97-9084-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 21:00:28 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 5529C8285518;
 Fri,  1 Dec 2023 14:00:26 -0600 (CST)
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 AJ12H23B5E7Y; Fri,  1 Dec 2023 14:00:25 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 7D19082855D4;
 Fri,  1 Dec 2023 14:00:25 -0600 (CST)
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 PfznH4LraZze; Fri,  1 Dec 2023 14:00:25 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 112B48285A3A;
 Fri,  1 Dec 2023 14:00:25 -0600 (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: 45287b97-9084-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 7D19082855D4
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1701460825; bh=6IecuqXFYX4NR7LCnK3DtB9eOXIqDkT3g8LO9AuZntk=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=cZB8rwTCXJJH+Nhm+bqHQcsLnqpdAH/4iZBEGjg7pCc7DtapgMUxMOcFYlgiozPi/
	 SEzAsOyj5URaTHsOZURHi94cEb+jw8cq19fqB/rgDj3L2/A8IaBAx+WN1dL4i1aa9y
	 gJ5NYVIiqbh9uaFGpeEvdrkEZhKdfTHhkcqMYqw0=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 3/3] xen/ppc: mm-radix: Allocate Partition and Process Tables at runtime
Date: Fri,  1 Dec 2023 13:59:56 -0600
Message-Id: <b3943c96d4a97a87b6d79853de76d3775b093063.1701384928.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1701384928.git.sanastasio@raptorengineering.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

In the initial mm-radix implementation, the in-memory partition and
process tables required to configure the MMU were allocated statically
since the boot allocator was not yet available.

Now that it is, allocate these tables at runtime and bump the size of
the Process Table to its maximum supported value (on POWER9).

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/arch/ppc/mm-radix.c | 167 +++++++++++++++++++++++-----------------
 1 file changed, 96 insertions(+), 71 deletions(-)

diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index de181cf6f1..fae5ebfdcc 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -34,17 +34,13 @@ static struct lvl2_pd initial_lvl2_lvl3_pd_pool[INITIAL_LVL2_LVL3_PD_COUNT];
 static size_t __initdata initial_lvl4_pt_pool_used;
 static struct lvl4_pt initial_lvl4_pt_pool[INITIAL_LVL4_PT_COUNT];
 
-/* Only reserve minimum Partition and Process tables  */
 #define PATB_SIZE_LOG2 16 /* Only supported partition table size on POWER9 */
 #define PATB_SIZE      (1UL << PATB_SIZE_LOG2)
-#define PRTB_SIZE_LOG2 12
+#define PRTB_SIZE_LOG2 24 /* Maximum process table size on POWER9 */
 #define PRTB_SIZE      (1UL << PRTB_SIZE_LOG2)
 
-static struct patb_entry
-    __aligned(PATB_SIZE) initial_patb[PATB_SIZE / sizeof(struct patb_entry)];
-
-static struct prtb_entry
-    __aligned(PRTB_SIZE) initial_prtb[PRTB_SIZE / sizeof(struct prtb_entry)];
+static struct patb_entry *initial_patb;
+static struct prtb_entry *initial_prtb;
 
 static __init struct lvl1_pd *lvl1_pd_pool_alloc(void)
 {
@@ -86,6 +82,62 @@ static __init struct lvl4_pt *lvl4_pt_pool_alloc(void)
     return &initial_lvl4_pt_pool[initial_lvl4_pt_pool_used++];
 }
 
+static void map_page_initial(struct lvl1_pd *lvl1, vaddr_t virt, paddr_t phys,
+                             unsigned long flags)
+{
+    struct lvl2_pd *lvl2;
+    struct lvl3_pd *lvl3;
+    struct lvl4_pt *lvl4;
+    pde_t *pde;
+    pte_t *pte;
+
+    /* Allocate LVL 2 PD if necessary */
+    pde = pt_entry(lvl1, virt);
+    if ( !pde_is_valid(*pde) )
+    {
+        lvl2 = lvl2_pd_pool_alloc();
+        *pde = paddr_to_pde(__pa(lvl2), PDE_VALID,
+                            XEN_PT_ENTRIES_LOG2_LVL_2);
+    }
+    else
+        lvl2 = __va(pde_to_paddr(*pde));
+
+    /* Allocate LVL 3 PD if necessary */
+    pde = pt_entry(lvl2, virt);
+    if ( !pde_is_valid(*pde) )
+    {
+        lvl3 = lvl3_pd_pool_alloc();
+        *pde = paddr_to_pde(__pa(lvl3), PDE_VALID,
+                            XEN_PT_ENTRIES_LOG2_LVL_3);
+    }
+    else
+        lvl3 = __va(pde_to_paddr(*pde));
+
+    /* Allocate LVL 4 PT if necessary */
+    pde = pt_entry(lvl3, virt);
+    if ( !pde_is_valid(*pde) )
+    {
+        lvl4 = lvl4_pt_pool_alloc();
+        *pde = paddr_to_pde(__pa(lvl4), PDE_VALID,
+                            XEN_PT_ENTRIES_LOG2_LVL_4);
+    }
+    else
+        lvl4 = __va(pde_to_paddr(*pde));
+
+    /* Finally, create PTE in LVL 4 PT */
+    pte = pt_entry(lvl4, virt);
+    if ( !pte_is_valid(*pte) )
+    {
+        radix_dprintk("%016lx being mapped to %016lx\n", phys, virt);
+        *pte = paddr_to_pte(phys, flags);
+    }
+    else
+    {
+        early_printk("BUG: Tried to create PTE for already-mapped page!");
+        die();
+    }
+}
+
 static void __init setup_initial_mapping(struct lvl1_pd *lvl1,
                                          vaddr_t map_start,
                                          vaddr_t map_end,
@@ -105,80 +157,43 @@ static void __init setup_initial_mapping(struct lvl1_pd *lvl1,
         die();
     }
 
+    /* Identity map Xen itself */
     for ( page_addr = map_start; page_addr < map_end; page_addr += PAGE_SIZE )
     {
-        struct lvl2_pd *lvl2;
-        struct lvl3_pd *lvl3;
-        struct lvl4_pt *lvl4;
-        pde_t *pde;
-        pte_t *pte;
-
-        /* Allocate LVL 2 PD if necessary */
-        pde = pt_entry(lvl1, page_addr);
-        if ( !pde_is_valid(*pde) )
-        {
-            lvl2 = lvl2_pd_pool_alloc();
-            *pde = paddr_to_pde(__pa(lvl2), PDE_VALID,
-                                XEN_PT_ENTRIES_LOG2_LVL_2);
-        }
-        else
-            lvl2 = __va(pde_to_paddr(*pde));
+        unsigned long flags;
 
-        /* Allocate LVL 3 PD if necessary */
-        pde = pt_entry(lvl2, page_addr);
-        if ( !pde_is_valid(*pde) )
+        if ( is_kernel_text(page_addr) || is_kernel_inittext(page_addr) )
         {
-            lvl3 = lvl3_pd_pool_alloc();
-            *pde = paddr_to_pde(__pa(lvl3), PDE_VALID,
-                                XEN_PT_ENTRIES_LOG2_LVL_3);
+            radix_dprintk("%016lx being marked as TEXT (RX)\n", page_addr);
+            flags = PTE_XEN_RX;
         }
-        else
-            lvl3 = __va(pde_to_paddr(*pde));
-
-        /* Allocate LVL 4 PT if necessary */
-        pde = pt_entry(lvl3, page_addr);
-        if ( !pde_is_valid(*pde) )
-        {
-            lvl4 = lvl4_pt_pool_alloc();
-            *pde = paddr_to_pde(__pa(lvl4), PDE_VALID,
-                                XEN_PT_ENTRIES_LOG2_LVL_4);
-        }
-        else
-            lvl4 = __va(pde_to_paddr(*pde));
-
-        /* Finally, create PTE in LVL 4 PT */
-        pte = pt_entry(lvl4, page_addr);
-        if ( !pte_is_valid(*pte) )
+        else if ( is_kernel_rodata(page_addr) )
         {
-            unsigned long paddr = (page_addr - map_start) + phys_base;
-            unsigned long flags;
-
-            radix_dprintk("%016lx being mapped to %016lx\n", paddr, page_addr);
-            if ( is_kernel_text(page_addr) || is_kernel_inittext(page_addr) )
-            {
-                radix_dprintk("%016lx being marked as TEXT (RX)\n", page_addr);
-                flags = PTE_XEN_RX;
-            }
-            else if ( is_kernel_rodata(page_addr) )
-            {
-                radix_dprintk("%016lx being marked as RODATA (RO)\n", page_addr);
-                flags = PTE_XEN_RO;
-            }
-            else
-            {
-                radix_dprintk("%016lx being marked as DEFAULT (RW)\n", page_addr);
-                flags = PTE_XEN_RW;
-            }
-
-            *pte = paddr_to_pte(paddr, flags);
-            radix_dprintk("%016lx is the result of PTE map\n",
-                paddr_to_pte(paddr, flags).pte);
+            radix_dprintk("%016lx being marked as RODATA (RO)\n", page_addr);
+            flags = PTE_XEN_RO;
         }
         else
         {
-            early_printk("BUG: Tried to create PTE for already-mapped page!");
-            die();
+            radix_dprintk("%016lx being marked as DEFAULT (RW)\n", page_addr);
+            flags = PTE_XEN_RW;
         }
+
+        map_page_initial(lvl1, page_addr, (page_addr - map_start) + phys_base, flags);
+    }
+
+    /* Map runtime-allocated PATB, PRTB */
+    for ( page_addr = (uint64_t)initial_patb;
+          page_addr < (uint64_t)initial_patb + PATB_SIZE;
+          page_addr += PAGE_SIZE )
+    {
+        map_page_initial(lvl1, page_addr, __pa(page_addr), PTE_XEN_RW);
+    }
+
+    for ( page_addr = (uint64_t)initial_prtb;
+          page_addr < (uint64_t)initial_prtb + PRTB_SIZE;
+          page_addr += PAGE_SIZE )
+    {
+        map_page_initial(lvl1, page_addr, __pa(page_addr), PTE_XEN_RW);
     }
 }
 
@@ -210,6 +225,16 @@ void __init setup_initial_pagetables(void)
 {
     struct lvl1_pd *root = lvl1_pd_pool_alloc();
     unsigned long lpcr;
+    mfn_t patb_mfn, prtb_mfn;
+
+    /* Allocate mfns for in-memory tables using the boot allocator */
+    prtb_mfn = alloc_boot_pages(PRTB_SIZE / PAGE_SIZE,
+                                max(1, PRTB_SIZE_LOG2 - PAGE_SHIFT));
+    patb_mfn = alloc_boot_pages(PATB_SIZE / PAGE_SIZE,
+                                max(1, PATB_SIZE_LOG2 - PAGE_SHIFT));
+
+    initial_patb = __va(mfn_to_maddr(patb_mfn));
+    initial_prtb = __va(mfn_to_maddr(prtb_mfn));
 
     setup_initial_mapping(root, (vaddr_t)_start, (vaddr_t)_end, __pa(_start));
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:00:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:00:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645685.1007947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99gg-0001NN-7O; Fri, 01 Dec 2023 20:00:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645685.1007947; Fri, 01 Dec 2023 20:00:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99gg-0001Kt-4K; Fri, 01 Dec 2023 20:00:34 +0000
Received: by outflank-mailman (input) for mailman id 645685;
 Fri, 01 Dec 2023 20:00:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dz9Y=HM=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1r99ge-0000tO-GB
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:00:32 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 44ea1727-9084-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 21:00:28 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 8A9838285C04;
 Fri,  1 Dec 2023 14:00:25 -0600 (CST)
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 yA6vdnT18Dq4; Fri,  1 Dec 2023 14:00:24 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 5759A828559D;
 Fri,  1 Dec 2023 14:00:24 -0600 (CST)
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 quH52BITsjBK; Fri,  1 Dec 2023 14:00:24 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id D834382853A9;
 Fri,  1 Dec 2023 14:00:23 -0600 (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: 44ea1727-9084-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 5759A828559D
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1701460824; bh=nyRS6rdpXEuouYJD2ds15y1eTJ7tL+RajSoNo3S8gak=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=udpK7yljv31Co49cVqY+0ol2E0YDmiVkrvaufO9WNs6UfAoARMNTRgb1OB1rL9BuF
	 dzzUsfMxb/Jmw78P9qIrb3USEvWEHRG/R9/I4wbHiQP4a9TrVtfZ/yx+Ts+1QlFoM7
	 ORjb+Tvld0NiFa9crIinZ8p9rw5MQkb1BthcM9Ug=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH 0/3] Early Boot Allocation on Power
Date: Fri,  1 Dec 2023 13:59:53 -0600
Message-Id: <cover.1701384928.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Hello all,

This series enables the Xen boot time allocator on Power by parsing
the available memory regions from the firmware-provided device tree.

The device tree processing and bookkeeping code was adapted from Arm,
but it was trimmed down to exclude code for parsing Arm-specific dt
nodes.

Additionally, the final patch of the series updates the radix mmu
code to use the newly-enabled boot allocator for the Partition and
Process tables, instead of statically allocating them like was
previously done. Among other things, switching to run-time allocation
allows us to allocate a full-sized Process Table instead of the
minimal one that was previously used to keep the Xen binary size small.

Thanks,

Shawn Anastasio (3):
  xen/ppc: Enable Boot Allocator
  xen/ppc: mm-radix: Replace debug printing code with printk
  xen/ppc: mm-radix: Allocate Partition and Process Tables at runtime

 xen/arch/ppc/Makefile            |   1 +
 xen/arch/ppc/bootfdt.c           | 507 +++++++++++++++++++++++++++++++
 xen/arch/ppc/include/asm/setup.h | 113 +++++++
 xen/arch/ppc/mm-radix.c          | 197 ++++++------
 xen/arch/ppc/setup.c             | 109 ++++++-
 5 files changed, 823 insertions(+), 104 deletions(-)
 create mode 100644 xen/arch/ppc/bootfdt.c

--
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:00:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:00:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645682.1007926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99ge-0000th-A6; Fri, 01 Dec 2023 20:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645682.1007926; Fri, 01 Dec 2023 20: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 1r99ge-0000ta-7R; Fri, 01 Dec 2023 20:00:32 +0000
Received: by outflank-mailman (input) for mailman id 645682;
 Fri, 01 Dec 2023 20: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=dz9Y=HM=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1r99gd-0000tE-CU
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:00:31 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45029f93-9084-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 21:00:28 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 16670828559D;
 Fri,  1 Dec 2023 14:00:26 -0600 (CST)
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 orQGaEzlCg7C; Fri,  1 Dec 2023 14:00:25 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 342CE8285518;
 Fri,  1 Dec 2023 14:00:25 -0600 (CST)
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 UU5BR_wMoA70; Fri,  1 Dec 2023 14:00:25 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id C497C82855D4;
 Fri,  1 Dec 2023 14:00:24 -0600 (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: 45029f93-9084-11ee-98e5-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 342CE8285518
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1701460825; bh=PTGVv84Ek2dEZO/cpvmXSIJIyqcsMRVxyQ3qXqyT7ic=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=bfilnBFByEhZYmTm4CqDPzWnMM5MDg48x8IOLpMtCJKaBlkm+ebw6hWG8dLYpWYZZ
	 3rofNsro/wjmS+a4J1/vbtrtQmAPjvG9Yky1mxV/BuXcjWnbmbfr03LxW+wiNF0PI3
	 rY+NIasNFsXCzqWLwtUjsaM1oaYPUupltgeN3+KY=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH 2/3] xen/ppc: mm-radix: Replace debug printing code with printk
Date: Fri,  1 Dec 2023 13:59:55 -0600
Message-Id: <44a52aa7b124fb53609e99815d4044ca9459d8a4.1701384928.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1701384928.git.sanastasio@raptorengineering.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Now that we have common code building, there's no need to keep the old
itoa64+debug print function in mm-radix.c

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/arch/ppc/mm-radix.c | 58 +++++++++--------------------------------
 1 file changed, 12 insertions(+), 46 deletions(-)

diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index daa411a6fa..de181cf6f1 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -15,6 +15,12 @@
 
 void enable_mmu(void);
 
+#ifdef NDEBUG
+#define radix_dprintk(...)
+#else
+#define radix_dprintk(msg, ...) printk(XENLOG_DEBUG msg, ## __VA_ARGS__)
+#endif
+
 #define INITIAL_LVL1_PD_COUNT      1
 #define INITIAL_LVL2_LVL3_PD_COUNT 2
 #define INITIAL_LVL4_PT_COUNT      256
@@ -80,45 +86,6 @@ static __init struct lvl4_pt *lvl4_pt_pool_alloc(void)
     return &initial_lvl4_pt_pool[initial_lvl4_pt_pool_used++];
 }
 
-#ifndef NDEBUG
-/* TODO: Remove once we get common/ building */
-static char *__init itoa64_hex(uint64_t val, char *out_buf, size_t buf_len)
-{
-    uint64_t cur;
-    size_t i = buf_len - 1;
-
-    /* Null terminate buffer */
-    out_buf[i] = '\0';
-
-    /* Add digits in reverse */
-    cur = val;
-    while ( cur && i > 0 )
-    {
-        out_buf[--i] = "0123456789ABCDEF"[cur % 16];
-        cur /= 16;
-    }
-
-    /* Pad to 16 digits */
-    while ( i > 0 )
-        out_buf[--i] = '0';
-
-    return out_buf + i;
-}
-#endif
-
-static void __init radix_dprint(uint64_t addr, const char *msg)
-{
-#ifndef NDEBUG
-    char buf[sizeof("DEADBEEFCAFEBABA")];
-    char *addr_s = itoa64_hex(addr, buf, sizeof(buf));
-
-    early_printk("(0x");
-    early_printk(addr_s);
-    early_printk(") ");
-    early_printk(msg);
-#endif
-}
-
 static void __init setup_initial_mapping(struct lvl1_pd *lvl1,
                                          vaddr_t map_start,
                                          vaddr_t map_end,
@@ -186,27 +153,26 @@ static void __init setup_initial_mapping(struct lvl1_pd *lvl1,
             unsigned long paddr = (page_addr - map_start) + phys_base;
             unsigned long flags;
 
-            radix_dprint(paddr, "being mapped to ");
-            radix_dprint(page_addr, "!\n");
+            radix_dprintk("%016lx being mapped to %016lx\n", paddr, page_addr);
             if ( is_kernel_text(page_addr) || is_kernel_inittext(page_addr) )
             {
-                radix_dprint(page_addr, "being marked as TEXT (RX)\n");
+                radix_dprintk("%016lx being marked as TEXT (RX)\n", page_addr);
                 flags = PTE_XEN_RX;
             }
             else if ( is_kernel_rodata(page_addr) )
             {
-                radix_dprint(page_addr, "being marked as RODATA (RO)\n");
+                radix_dprintk("%016lx being marked as RODATA (RO)\n", page_addr);
                 flags = PTE_XEN_RO;
             }
             else
             {
-                radix_dprint(page_addr, "being marked as DEFAULT (RW)\n");
+                radix_dprintk("%016lx being marked as DEFAULT (RW)\n", page_addr);
                 flags = PTE_XEN_RW;
             }
 
             *pte = paddr_to_pte(paddr, flags);
-            radix_dprint(paddr_to_pte(paddr, flags).pte,
-                             "is result of PTE map!\n");
+            radix_dprintk("%016lx is the result of PTE map\n",
+                paddr_to_pte(paddr, flags).pte);
         }
         else
         {
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:00:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:00:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645683.1007936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99gf-00018j-Is; Fri, 01 Dec 2023 20:00:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645683.1007936; Fri, 01 Dec 2023 20:00:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99gf-00018c-Ft; Fri, 01 Dec 2023 20:00:33 +0000
Received: by outflank-mailman (input) for mailman id 645683;
 Fri, 01 Dec 2023 20: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=dz9Y=HM=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1r99gd-0000tE-Lk
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:00:31 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45c4292a-9084-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 21:00:28 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 51AB982855D4;
 Fri,  1 Dec 2023 14:00:27 -0600 (CST)
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 i9hgK0MiGiwf; Fri,  1 Dec 2023 14:00:25 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 021E982853A9;
 Fri,  1 Dec 2023 14:00:25 -0600 (CST)
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 QnmuEvKhB_0U; Fri,  1 Dec 2023 14:00:24 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 481C28285518;
 Fri,  1 Dec 2023 14:00:24 -0600 (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: 45c4292a-9084-11ee-98e5-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 021E982853A9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1701460825; bh=rrS98yFoCir+fVp7z2VJPB9bRNWgZ1ymV3ZhVtsKbi8=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=ZzTyiQNZY3UFihuh5Jxyk+elo/hdIyHYOrwBbcA1YgSCtJpOlld9jeR/HfuHzz79E
	 y6s4E4SFIBbIusgJeLUhofUgUL0ofyGXdArEbpnDVx23nXvTRJrljtaRg4WClYPWNV
	 QDxKf/jfVy0iQ0Ic3cac7x/4NdBzhJfbuLEK3cas=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH 1/3] xen/ppc: Enable Boot Allocator
Date: Fri,  1 Dec 2023 13:59:54 -0600
Message-Id: <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1701384928.git.sanastasio@raptorengineering.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Adapt arm's earlyfdt parsing code to ppc64 and enable Xen's early boot
allocator. Routines for parsing arm-specific devicetree nodes (e.g.
multiboot) were excluded, reducing the overall footprint of code that
was copied.

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/arch/ppc/Makefile            |   1 +
 xen/arch/ppc/bootfdt.c           | 507 +++++++++++++++++++++++++++++++
 xen/arch/ppc/include/asm/setup.h | 113 +++++++
 xen/arch/ppc/setup.c             | 109 ++++++-
 4 files changed, 729 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/ppc/bootfdt.c

diff --git a/xen/arch/ppc/Makefile b/xen/arch/ppc/Makefile
index 71feb5e2c4..8a2a809c70 100644
--- a/xen/arch/ppc/Makefile
+++ b/xen/arch/ppc/Makefile
@@ -1,5 +1,6 @@
 obj-$(CONFIG_PPC64) += ppc64/
 
+obj-y += bootfdt.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.init.o
 obj-y += mm-radix.o
 obj-y += opal.o
diff --git a/xen/arch/ppc/bootfdt.c b/xen/arch/ppc/bootfdt.c
new file mode 100644
index 0000000000..791e1ca61f
--- /dev/null
+++ b/xen/arch/ppc/bootfdt.c
@@ -0,0 +1,507 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Early Device Tree and boot info bookkeeping.
+ * Derived from arch/arm/bootfdt.c and setup.c.
+ *
+ * Copyright (C) 2012-2014 Citrix Systems, Inc.
+ * Copyright (C) Raptor Engineering LLC
+ */
+
+#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>
+
+struct bootinfo __initdata bootinfo;
+
+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;
+}
+
+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";
+    default: BUG();
+    }
+}
+
+/*
+ * 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;
+}
+
+/*
+ * 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(struct meminfo *meminfo,
+                                         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 = meminfo->nr_banks;
+
+    for ( i = 0; i < bank_num; i++ )
+    {
+        bank_start = meminfo->bank[i].start;
+        bank_end = bank_start + meminfo->bank[i].size;
+
+        if ( 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;
+}
+
+/*
+ * 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)
+{
+    /* Check if input region is overlapping with bootinfo.reserved_mem banks */
+    if ( meminfo_overlap_check(&bootinfo.reserved_mem,
+                               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;
+}
+
+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');
+}
+
+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,
+                                          uint32_t address_cells, uint32_t size_cells,
+                                          void *data, enum membank_type type)
+{
+    const struct fdt_property *prop;
+    unsigned int i, banks;
+    const __be32 *cell;
+    uint32_t reg_cells = address_cells + size_cells;
+    paddr_t start, size;
+    struct meminfo *mem = data;
+
+    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(uint32_t));
+
+    for ( i = 0; i < banks && mem->nr_banks < NR_MEM_BANKS; i++ )
+    {
+        device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
+        if ( mem == &bootinfo.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;
+}
+
+uint32_t __init device_tree_get_uint32_t(const void *fdt, int node,
+                               const char *prop_name, uint32_t dflt)
+{
+    const struct fdt_property *prop;
+
+    prop = fdt_get_property(fdt, node, prop_name, NULL);
+    if ( !prop || prop->len < sizeof(uint32_t) )
+        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;
+    uint32_t address_cells[DEVICE_TREE_MAX_DEPTH];
+    uint32_t size_cells[DEVICE_TREE_MAX_DEPTH];
+    int ret;
+
+    do {
+        const char *name = fdt_get_name(fdt, node, NULL);
+        uint32_t 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_uint32_t(fdt, node,
+                                                   "#address-cells", as);
+        size_cells[depth] = device_tree_get_uint32_t(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,
+                                      uint32_t address_cells, uint32_t size_cells,
+                                      void *data)
+{
+    return device_tree_get_meminfo(fdt, node, "reg", address_cells, size_cells,
+                                   data, MEMBANK_DEFAULT);
+}
+
+static int __init process_reserved_memory_node(const void *fdt, int node,
+                                               const char *name, int depth,
+                                               uint32_t address_cells,
+                                               uint32_t size_cells,
+                                               void *data)
+{
+    int rc;
+
+    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,
+                                          uint32_t address_cells, uint32_t size_cells)
+{
+    return device_tree_for_each_node(fdt, node,
+                                     process_reserved_memory_node,
+                                     &bootinfo.reserved_mem);
+}
+
+static int __init process_chosen_node(const void *fdt, int node,
+                                      const char *name,
+                                      uint32_t address_cells, uint32_t size_cells)
+{
+    const struct fdt_property *prop;
+    paddr_t start, end;
+    int len;
+
+    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(uint32_t) && len != sizeof(uint64_t) )
+    {
+        printk("linux,initrd-start property has invalid length %d\n", len);
+        return -EINVAL;
+    }
+    start = dt_read_paddr((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(uint32_t) && len != sizeof(uint64_t) )
+    {
+        printk("linux,initrd-end property has invalid length %d\n", len);
+        return -EINVAL;
+    }
+    end = dt_read_paddr((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 early_scan_node(const void *fdt,
+                                  int node, const char *name, int depth,
+                                  uint32_t address_cells, uint32_t size_cells,
+                                  void *data)
+{
+    int rc = 0;
+
+    if( device_tree_node_matches(fdt, node, "memory") )
+        rc = process_memory_node(fdt, node, name, depth,
+                                 address_cells, size_cells, &bootinfo.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 == 1 && device_tree_node_matches(fdt, node, "chosen") )
+        rc = process_chosen_node(fdt, node, name, address_cells, size_cells);
+
+    if ( rc < 0 )
+        printk("fdt: node `%s': parsing failed\n", name);
+    return rc;
+}
+
+static void __init early_print_info(void)
+{
+    struct meminfo *mi = &bootinfo.mem;
+    struct meminfo *mem_resv = &bootinfo.reserved_mem;
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootcmdlines *cmds = &bootinfo.cmdlines;
+    unsigned int i, j;
+
+    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 ( j = 0; j < mem_resv->nr_banks; j++, i++ )
+    {
+        printk(" RESVD_[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i,
+               mem_resv->bank[j].start,
+               mem_resv->bank[j].start + mem_resv->bank[j].size - 1);
+    }
+    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");
+}
+
+/**
+ * boot_fdt_init - initialize bootinfo from a DTB
+ * @fdt: flattened device tree binary
+ * @paddr: physical address of device tree binary
+ *
+ * Returns the size of the DTB.
+ */
+size_t __init boot_fdt_init(const void *fdt, paddr_t paddr)
+{
+    int ret;
+    paddr_t xen_start, xen_end;
+
+    ret = fdt_check_header(fdt);
+    if ( ret < 0 )
+        panic("No valid device tree\n");
+
+    device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
+
+    /*
+     * The device tree passed to us may have been allocated by skiboot, in which
+     * case it will exist within a reserved region and this call will fail. This
+     * is fine, however, since either way the allocator will know not to step on
+     * the device tree.
+     */
+    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
+
+    /*
+     * Xen relocates itself at the ppc64 entrypoint, so we need to manually mark
+     * the kernel module.
+     */
+    xen_start = __pa(_start);
+    xen_end = PAGE_ALIGN(__pa(_end));
+    if ( !add_boot_module(BOOTMOD_KERNEL, xen_start, xen_end, false) )
+        panic("Xen overlaps reserved memory! %016lx - %016lx\n", xen_start,
+              xen_end);
+
+    early_print_info();
+
+    return fdt_totalsize(fdt);
+}
diff --git a/xen/arch/ppc/include/asm/setup.h b/xen/arch/ppc/include/asm/setup.h
index e4f64879b6..f6e1940fa9 100644
--- a/xen/arch/ppc/include/asm/setup.h
+++ b/xen/arch/ppc/include/asm/setup.h
@@ -3,4 +3,117 @@
 
 #define max_init_domid (0)
 
+#include <public/version.h>
+#include <asm/p2m.h>
+#include <xen/device_tree.h>
+
+#define MIN_FDT_ALIGN 8
+#define MAX_FDT_SIZE SZ_2M
+
+#define NR_MEM_BANKS 256
+
+#define MAX_MODULES 32 /* Current maximum useful modules */
+
+typedef enum {
+    BOOTMOD_XEN,
+    BOOTMOD_FDT,
+    BOOTMOD_KERNEL,
+    BOOTMOD_RAMDISK,
+}  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,
+};
+
+/* Indicates the maximum number of characters(\0 included) for shm_id */
+#define MAX_SHM_ID_LENGTH 16
+
+struct membank {
+    paddr_t start;
+    paddr_t size;
+    enum membank_type type;
+};
+
+struct meminfo {
+    unsigned int nr_banks;
+    struct membank bank[NR_MEM_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;
+    struct meminfo reserved_mem;
+    struct bootmodules modules;
+    struct bootcmdlines cmdlines;
+    bool static_heap;
+};
+
+extern struct bootinfo bootinfo;
+
+/*
+ * setup.c
+ */
+
+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);
+void add_boot_cmdline(const char *name, const char *cmdline,
+                      bootmodule_kind kind, paddr_t start, bool domU);
+const char *boot_module_kind_as_string(bootmodule_kind kind);
+
+/*
+ * bootfdt.c
+ */
+size_t boot_fdt_init(const void *fdt, paddr_t paddr);
+
 #endif /* __ASM_PPC_SETUP_H__ */
diff --git a/xen/arch/ppc/setup.c b/xen/arch/ppc/setup.c
index 101bdd8bb6..90de99051e 100644
--- a/xen/arch/ppc/setup.c
+++ b/xen/arch/ppc/setup.c
@@ -1,16 +1,116 @@
 /* SPDX-License-Identifier: GPL-2.0-or-later */
 #include <xen/init.h>
 #include <xen/lib.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/mm.h>
 #include <public/version.h>
 #include <asm/boot.h>
 #include <asm/early_printk.h>
 #include <asm/mm.h>
 #include <asm/processor.h>
+#include <asm/setup.h>
 
 /* Xen stack for bringing up the first CPU. */
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE] __aligned(STACK_SIZE);
 
+/*
+ * 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;
+}
+
+static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
+                                         void (*cb)(paddr_t ps, paddr_t pe),
+                                         unsigned int first)
+{
+    unsigned int i;
+
+    for ( i = 0 ; i < bootinfo.reserved_mem.nr_banks; i++ )
+    {
+        paddr_t r_s = bootinfo.reserved_mem.bank[i].start;
+        paddr_t r_e = r_s + bootinfo.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;
+        }
+    }
+
+    cb(s, e);
+}
+
+/*
+ * Populate the boot allocator. Based on arch/arm/setup.c's
+ * populate_boot_allocator.
+ * All RAM but the following regions will be added to the boot allocator:
+ *  - Modules (e.g., Xen, Kernel)
+ *  - Reserved regions
+ */
+static void __init populate_boot_allocator(void)
+{
+    unsigned int i;
+    const struct meminfo *banks = &bootinfo.mem;
+    paddr_t s, e;
+
+    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;
+
+            dt_unreserved_regions(s, e, init_boot_pages, 0);
+
+            s = n;
+        }
+    }
+}
+
 void setup_exceptions(void)
 {
     unsigned long lpcr;
@@ -24,6 +124,8 @@ void __init noreturn start_xen(unsigned long r3, unsigned long r4,
                                unsigned long r5, unsigned long r6,
                                unsigned long r7)
 {
+    void *boot_fdt;
+
     if ( r5 )
     {
         /* Unsupported OpenFirmware boot protocol */
@@ -32,11 +134,16 @@ void __init noreturn start_xen(unsigned long r3, unsigned long r4,
     else
     {
         /* kexec boot protocol */
-        boot_opal_init((void *)r3);
+        boot_fdt = (void *)r3;
+        boot_opal_init(boot_fdt);
     }
 
     setup_exceptions();
 
+    boot_fdt_init(boot_fdt, r3);
+
+    populate_boot_allocator();
+
     setup_initial_pagetables();
 
     early_printk("Hello, ppc64le!\n");
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:04:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:04:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645680.1007965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99kE-0003BQ-OQ; Fri, 01 Dec 2023 20:04:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645680.1007965; Fri, 01 Dec 2023 20: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 1r99kE-0003BJ-Lv; Fri, 01 Dec 2023 20:04:14 +0000
Received: by outflank-mailman (input) for mailman id 645680;
 Fri, 01 Dec 2023 19:59: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=cfBb=HM=proton.me=renewin@srs-se1.protection.inumbo.net>)
 id 1r99fe-0008Ng-Ai
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 19:59:31 +0000
Received: from mail-40134.protonmail.ch (mail-40134.protonmail.ch
 [185.70.40.134]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 210cc5d4-9084-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 20:59:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 210cc5d4-9084-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1701460765; x=1701719965;
	bh=2AmH3Hb8FqeisSu7ScxFGSik/ltWjd5VwAxGhyGAlQw=;
	h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=cNWhzsb1TpgRIjmyP45p1e/bjaoAsndFixH3K1WDqgH0TBXu6/dVyPxkn8N1DXN7k
	 25vEzzhv5bz3nmPaLgdivjKrELN6/x30EJvSORQ8liWFCc0BMiYyg1XD5GVJnYv2qn
	 tvNXU0Sn5wx1eS8uPFk3KmNxbtaI8L6IM2y/AWhazT/lhzH6f5I48dlofiXjEPQcyo
	 iTgjGUM3K1u72PKb8L2NLyDmjw91hwuBBwJmIRlAiFk4woQLOBidfCzqaX/RgOWz66
	 q/6Utk8fiL38ZqD3kIOc9gvMt4TCuv7pq6gyPBrA0OHokW7aXv/fjs+1Kc32jzTi0b
	 wIRA6LFknAl+g==
Date: Fri, 01 Dec 2023 19:59:12 +0000
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: =?utf-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Subject: Trying add smt=off disabled cores to cpupool crash xen
Message-ID: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
Feedback-ID: 45853758:user:proton
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha512; boundary="------08aeeaf5fdfa0d2107f357d7ac96c3f8203141a9a0d317189db93fb70591b31d"; charset=utf-8

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------08aeeaf5fdfa0d2107f357d7ac96c3f8203141a9a0d317189db93fb70591b31d
Content-Type: multipart/mixed;boundary=---------------------f94de33a37ba315914385a1efdebb5da

-----------------------f94de33a37ba315914385a1efdebb5da
Content-Type: multipart/alternative;boundary=---------------------6df91a8ddd19c3542ed41ea32b0a3a21

-----------------------6df91a8ddd19c3542ed41ea32b0a3a21
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;charset=utf-8

If I set smt=3Doff and try to configure cpupools with credit(1) as if all =
cores are available, I get the following crash. =C2=A0


The crash happens when I try to use xl cpupool-add-cpu on the disabled HT =
sibling cores.



Hyper-threading is enabled in the firmware, and only disabled with smt=3Do=
ff.



Software: Xen-4.17.3 / Qubes OS 4.2.0-RC5
Firmware: Dasharo 0.9.0 - Z790P
Hardware: 13900K



(XEN) ----[ Xen-4.17.3-pre =C2=A0x86_64 =C2=A0debug=3Dy =C2=A0Not tainted =
]----(XEN) CPU: =C2=A0 =C2=A06
(XEN) RIP: =C2=A0 =C2=A0e008:[<ffff82d040248f89>] schedule_cpu_add+0x50/0x=
456
(XEN) RFLAGS: 0000000000010202 =C2=A0 CONTEXT: hypervisor (d0v3)
(XEN) rax: ffff82d0405a9288 =C2=A0 rbx: ffff83107f5a1980 =C2=A0 rcx: 00000=
00000000020
(XEN) rdx: 80007d2fbfa59000 =C2=A0 rsi: ffff83107f5a1980 =C2=A0 rdi: 00000=
00000000020
(XEN) rbp: 0000000000000009 =C2=A0 rsp: ffff831087d3fc68 =C2=A0 r8: =C2=A0=
0000000000000000
(XEN) r9: =C2=A0ffff82d0405b6b60 =C2=A0 r10: ffff831087d22ab0 =C2=A0 r11: =
0000000000000003
(XEN) r12: ffff831087d22ab0 =C2=A0 r13: 0000000000000020 =C2=A0 r14: ffff8=
31087d22ab0
(XEN) r15: ffff82d0405ae680 =C2=A0 cr0: 0000000080050033 =C2=A0 cr4: 00000=
00000b526e0
(XEN) cr3: 0000000912e30000 =C2=A0 cr2: 000072e5cb008375
(XEN) fsb: 000072e5caac7380 =C2=A0 gsb: ffff8881b9d80000 =C2=A0 gss: 00000=
00000000000
(XEN) ds: 0000 =C2=A0 es: 0000 =C2=A0 fs: 0000 =C2=A0 gs: 0000 =C2=A0 ss: =
e010 =C2=A0 cs: e008
(XEN) Xen code around <ffff82d040248f89> (schedule_cpu_add+0x50/0x456):
(XEN) =C2=A0db 8e 37 00 48 8b 14 ca <4c> 8b 2c 02 3b 3d 75 f0 1f 00 0f 83 =
c9 01 00 00
(XEN) Xen stack trace from rsp=3Dffff831087d3fc68:
(XEN) =C2=A0 =C2=A0ffff83107f5a16e0 ffff82d040204c3b ffff831000000018 ffff=
831087d3fd28
(XEN) =C2=A0 =C2=A0ffff831087d3fcc8 3431831087d3fcd0 ffff83107f002033 ffff=
831087d3fcd0
(XEN) =C2=A0 =C2=A00000000000000000 ffff831087d40d70 ffff82d040246d48 0000=
000000000000
(XEN) =C2=A0 =C2=A0ffff83107f5a1980 0000000000000009 ffff831087d22ab0 0000=
000000000020
(XEN) =C2=A0 =C2=A0ffff831087d22ab0 ffff82d0405ae680 ffff82d040235dec ffff=
831087d3fe20
(XEN) =C2=A0 =C2=A000000000ffffffed 0000000000000009 ffff83107f5a1980 ffff=
82d040236b05
(XEN) =C2=A0 =C2=A00000000000000000 0000000000000000 000072e5cb098010 ffff=
831087d3ffff
(XEN) =C2=A0 =C2=A00000000000000000 ffff82d04045d5d8 ffff82d040234763 0000=
0000c0000102
(XEN) =C2=A0 =C2=A00000000000000000 0000000000000000 00000000c0000102 0000=
000d00000000
(XEN) =C2=A0 =C2=A0ffffffff8101ede6 000000000000e033 0000000000011082 ffff=
c90043c1fb00
(XEN) =C2=A0 =C2=A0000000000000e02b 11e6f31d9b4cbeef 96994088d9fcbeef 7d89=
7394f3ecbeef
(XEN) =C2=A0 =C2=A0c501dd1632b4beef ffff82d040227cc6 ffff831087d3fe48 0000=
000000000000
(XEN) =C2=A0 =C2=A00000000000011082 0000000000000000 ffff831087d3ffff 0000=
000000000000
(XEN) =C2=A0 =C2=A0ffffffff8101ede4 ffff82d0403495d0 0000001500000012 0000=
000200000004
(XEN) =C2=A0 =C2=A00000000000000000 0000000000000009 000072e5cad9cb60 7be3=
82ddb0c16b00
(XEN) =C2=A0 =C2=A00000000000a97768 0000000000a97150 0000000000000000 0000=
7ffe90589abc
(XEN) =C2=A0 =C2=A000007ffe9058a780 000000000043d990 000000000043d9b0 0000=
72e5cad20434
(XEN) =C2=A0 =C2=A000007ffe90589ac0 000072e5cafa3f79 0000000000000008 ffff=
831087d3fef8
(XEN) =C2=A0 =C2=A00000000000000023 ffff83107f52b000 0000000000000000 0000=
000000000000
(XEN) =C2=A0 =C2=A00000000000000000 ffff82d0402dd07f ffff83107f52b000 0000=
000000000000
(XEN) Xen call trace:
(XEN) =C2=A0 =C2=A0[<ffff82d040248f89>] R schedule_cpu_add+0x50/0x456
(XEN) =C2=A0 =C2=A0[<ffff82d040204c3b>] S debugtrace_printk+0x119/0x2cc
(XEN) =C2=A0 =C2=A0[<ffff82d040246d48>] S free_affinity_masks+0x15/0x17
(XEN) =C2=A0 =C2=A0[<ffff82d040235dec>] S cpupool.c#cpupool_assign_cpu_loc=
ked+0x53/0x160
(XEN) =C2=A0 =C2=A0[<ffff82d040236b05>] S cpupool_do_sysctl+0x367/0x760
(XEN) =C2=A0 =C2=A0[<ffff82d040234763>] S do_sysctl+0x827/0x1269
(XEN) =C2=A0 =C2=A0[<ffff82d040227cc6>] S timer.c#timer_lock+0x69/0x143
(XEN) =C2=A0 =C2=A0[<ffff82d0403495d0>] S x86_emulate_wrapper+0x24/0x56
(XEN) =C2=A0 =C2=A0[<ffff82d0402dd07f>] S pv_hypercall+0x3a2/0x4a9
(XEN) =C2=A0 =C2=A0[<ffff82d0402012b7>] S lstar_enter+0x137/0x140
(XEN)
(XEN) debugtrace_dump() global buffer starting
(XEN) wrap: 0
(XEN) debugtrace_dump() global buffer finished
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 6:
(XEN) GENERAL PROTECTION FAULT
(XEN) [error_code=3D0000]
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...

/rene
-----------------------6df91a8ddd19c3542ed41ea32b0a3a21
Content-Type: multipart/related;boundary=---------------------9343bbedf538043a542760126bd77762

-----------------------9343bbedf538043a542760126bd77762
Content-Type: text/html;charset=utf-8
Content-Transfer-Encoding: base64

PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0
cHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwg
MjU1KTsiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVy
IE5ldywgbW9ub3NwYWNlOyI+SWYgSSBzZXQgc210PW9mZiBhbmQgdHJ5IHRvIGNvbmZpZ3VyZSBj
cHVwb29scyB3aXRoIGNyZWRpdCgxKSBhcyBpZiBhbGwgY29yZXMgYXJlIGF2YWlsYWJsZSwgSSBn
ZXQgdGhlIGZvbGxvd2luZyBjcmFzaC4gJm5ic3A7IDxicj48L3NwYW4+PC9kaXY+PGRpdiBzdHls
ZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGNvbG9y
OiByZ2IoMCwgMCwgMCk7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsiPjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9u
b3NwYWNlOyI+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWws
IHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHJnYigwLCAwLCAwKTsgYmFja2dy
b3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5
OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij5UaGUgY3Jhc2ggaGFw
cGVucyB3aGVuIEkgdHJ5IHRvIHVzZSB4bCBjcHVwb29sLWFkZC1jcHUgb24gdGhlIGRpc2FibGVk
IEhUIHNpYmxpbmcgY29yZXMuPGJyPjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWls
eTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHJnYigwLCAwLCAw
KTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyI+PHNwYW4gc3R5bGU9ImZv
bnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij48YnI+
PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsg
Zm9udC1zaXplOiAxNHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoMjU1LCAyNTUsIDI1NSk7Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25z
b2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPkh5cGVyLXRocmVhZGluZyBpcyBlbmFibGVk
IGluIHRoZSBmaXJtd2FyZSwgYW5kIG9ubHkgZGlzYWJsZWQgd2l0aCBzbXQ9b2ZmLjxicj48L3Nw
YW4+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250
LXNpemU6IDE0cHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGJhY2tncm91bmQtY29sb3I6IHJnYigy
NTUsIDI1NSwgMjU1KTsiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFz
LCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPSJm
b250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHJn
YigwLCAwLCAwKTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyI+PHNwYW4g
c3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3Bh
Y2U7Ij5Tb2Z0d2FyZTogWGVuLTQuMTcuMyAvIFF1YmVzIE9TIDQuMi4wLVJDNTwvc3Bhbj48L2Rp
dj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTog
MTRweDsgY29sb3I6IHJnYigwLCAwLCAwKTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1
LCAyNTUpOyI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJp
ZXIgTmV3LCBtb25vc3BhY2U7Ij5GaXJtd2FyZTogRGFzaGFybyAwLjkuMCAtIFo3OTBQPC9zcGFu
PjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1z
aXplOiAxNHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1
LCAyNTUsIDI1NSk7Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywg
Q291cmllciBOZXcsIG1vbm9zcGFjZTsiPkhhcmR3YXJlOiAxMzkwMEs8YnI+PC9zcGFuPjwvZGl2
PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAx
NHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUs
IDI1NSk7Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmll
ciBOZXcsIG1vbm9zcGFjZTsiPjxicj48L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1p
bHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij48c3BhbiBzdHlsZT0iZm9u
dC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4p
IC0tLS1bIFhlbi00LjE3LjMtcHJlICZuYnNwO3g4Nl82NCAmbmJzcDtkZWJ1Zz15ICZuYnNwO05v
dCB0YWludGVkIF0tLS0tPC9zcGFuPjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5s
bywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSBDUFU6ICZuYnNwOyAm
bmJzcDs2PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywg
Q29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSBSSVA6ICZuYnNwOyAmbmJz
cDtlMDA4OlsmbHQ7ZmZmZjgyZDA0MDI0OGY4OSZndDtdIHNjaGVkdWxlX2NwdV9hZGQrMHg1MC8w
eDQ1Njwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENv
bnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgUkZMQUdTOiAwMDAwMDAwMDAw
MDEwMjAyICZuYnNwOyBDT05URVhUOiBoeXBlcnZpc29yIChkMHYzKTwvc3Bhbj48L2Rpdj48ZGl2
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywg
bW9ub3NwYWNlOyI+KFhFTikgcmF4OiBmZmZmODJkMDQwNWE5Mjg4ICZuYnNwOyByYng6IGZmZmY4
MzEwN2Y1YTE5ODAgJm5ic3A7IHJjeDogMDAwMDAwMDAwMDAwMDAyMDwvc3Bhbj48L2Rpdj48ZGl2
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywg
bW9ub3NwYWNlOyI+KFhFTikgcmR4OiA4MDAwN2QyZmJmYTU5MDAwICZuYnNwOyByc2k6IGZmZmY4
MzEwN2Y1YTE5ODAgJm5ic3A7IHJkaTogMDAwMDAwMDAwMDAwMDAyMDwvc3Bhbj48L2Rpdj48ZGl2
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywg
bW9ub3NwYWNlOyI+KFhFTikgcmJwOiAwMDAwMDAwMDAwMDAwMDA5ICZuYnNwOyByc3A6IGZmZmY4
MzEwODdkM2ZjNjggJm5ic3A7IHI4OiAmbmJzcDswMDAwMDAwMDAwMDAwMDAwPC9zcGFuPjwvZGl2
PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIg
TmV3LCBtb25vc3BhY2U7Ij4oWEVOKSByOTogJm5ic3A7ZmZmZjgyZDA0MDViNmI2MCAmbmJzcDsg
cjEwOiBmZmZmODMxMDg3ZDIyYWIwICZuYnNwOyByMTE6IDAwMDAwMDAwMDAwMDAwMDM8L3NwYW4+
PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291
cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIHIxMjogZmZmZjgzMTA4N2QyMmFiMCAmbmJzcDsg
cjEzOiAwMDAwMDAwMDAwMDAwMDIwICZuYnNwOyByMTQ6IGZmZmY4MzEwODdkMjJhYjA8L3NwYW4+
PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291
cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIHIxNTogZmZmZjgyZDA0MDVhZTY4MCAmbmJzcDsg
Y3IwOiAwMDAwMDAwMDgwMDUwMDMzICZuYnNwOyBjcjQ6IDAwMDAwMDAwMDBiNTI2ZTA8L3NwYW4+
PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291
cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIGNyMzogMDAwMDAwMDkxMmUzMDAwMCAmbmJzcDsg
Y3IyOiAwMDAwNzJlNWNiMDA4Mzc1PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQt
ZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSBm
c2I6IDAwMDA3MmU1Y2FhYzczODAgJm5ic3A7IGdzYjogZmZmZjg4ODFiOWQ4MDAwMCAmbmJzcDsg
Z3NzOiAwMDAwMDAwMDAwMDAwMDAwPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQt
ZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSBk
czogMDAwMCAmbmJzcDsgZXM6IDAwMDAgJm5ic3A7IGZzOiAwMDAwICZuYnNwOyBnczogMDAwMCAm
bmJzcDsgc3M6IGUwMTAgJm5ic3A7IGNzOiBlMDA4PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5
bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7
Ij4oWEVOKSBYZW4gY29kZSBhcm91bmQgJmx0O2ZmZmY4MmQwNDAyNDhmODkmZ3Q7IChzY2hlZHVs
ZV9jcHVfYWRkKzB4NTAvMHg0NTYpOjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250
LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikg
Jm5ic3A7ZGIgOGUgMzcgMDAgNDggOGIgMTQgY2EgJmx0OzRjJmd0OyA4YiAyYyAwMiAzYiAzZCA3
NSBmMCAxZiAwMCAwZiA4MyBjOSAwMSAwMCAwMDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxl
PSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+
KFhFTikgWGVuIHN0YWNrIHRyYWNlIGZyb20gcnNwPWZmZmY4MzEwODdkM2ZjNjg6PC9zcGFuPjwv
ZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJp
ZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7ZmZmZjgzMTA3ZjVhMTZlMCBm
ZmZmODJkMDQwMjA0YzNiIGZmZmY4MzEwMDAwMDAwMTggZmZmZjgzMTA4N2QzZmQyODwvc3Bhbj48
L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3Vy
aWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwO2ZmZmY4MzEwODdkM2ZjYzgg
MzQzMTgzMTA4N2QzZmNkMCBmZmZmODMxMDdmMDAyMDMzIGZmZmY4MzEwODdkM2ZjZDA8L3NwYW4+
PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291
cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDswMDAwMDAwMDAwMDAwMDAw
IGZmZmY4MzEwODdkNDBkNzAgZmZmZjgyZDA0MDI0NmQ0OCAwMDAwMDAwMDAwMDAwMDAwPC9zcGFu
PjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENv
dXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7ZmZmZjgzMTA3ZjVhMTk4
MCAwMDAwMDAwMDAwMDAwMDA5IGZmZmY4MzEwODdkMjJhYjAgMDAwMDAwMDAwMDAwMDAyMDwvc3Bh
bj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBD
b3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwO2ZmZmY4MzEwODdkMjJh
YjAgZmZmZjgyZDA0MDVhZTY4MCBmZmZmODJkMDQwMjM1ZGVjIGZmZmY4MzEwODdkM2ZlMjA8L3Nw
YW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywg
Q291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDswMDAwMDAwMGZmZmZm
ZmVkIDAwMDAwMDAwMDAwMDAwMDkgZmZmZjgzMTA3ZjVhMTk4MCBmZmZmODJkMDQwMjM2YjA1PC9z
cGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMs
IENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7MDAwMDAwMDAwMDAw
MDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDA3MmU1Y2IwOTgwMTAgZmZmZjgzMTA4N2QzZmZmZjwv
c3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFz
LCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwOzAwMDAwMDAwMDAw
MDAwMDAgZmZmZjgyZDA0MDQ1ZDVkOCBmZmZmODJkMDQwMjM0NzYzIDAwMDAwMDAwYzAwMDAxMDI8
L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xh
cywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDswMDAwMDAwMDAw
MDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDBjMDAwMDEwMiAwMDAwMDAwZDAwMDAwMDAw
PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29s
YXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7ZmZmZmZmZmY4
MTAxZWRlNiAwMDAwMDAwMDAwMDBlMDMzIDAwMDAwMDAwMDAwMTEwODIgZmZmZmM5MDA0M2MxZmIw
MDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNv
bGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwOzAwMDAwMDAw
MDAwMGUwMmIgMTFlNmYzMWQ5YjRjYmVlZiA5Njk5NDA4OGQ5ZmNiZWVmIDdkODk3Mzk0ZjNlY2Jl
ZWY8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25z
b2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDtjNTAxZGQx
NjMyYjRiZWVmIGZmZmY4MmQwNDAyMjdjYzYgZmZmZjgzMTA4N2QzZmU0OCAwMDAwMDAwMDAwMDAw
MDAwPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29u
c29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7MDAwMDAw
MDAwMDAxMTA4MiAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4MzEwODdkM2ZmZmYgMDAwMDAwMDAwMDAw
MDAwMDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENv
bnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwO2ZmZmZm
ZmZmODEwMWVkZTQgZmZmZjgyZDA0MDM0OTVkMCAwMDAwMDAxNTAwMDAwMDEyIDAwMDAwMDAyMDAw
MDAwMDQ8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBD
b25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDswMDAw
MDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDkgMDAwMDcyZTVjYWQ5Y2I2MCA3YmUzODJkZGIw
YzE2YjAwPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywg
Q29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7MDAw
MDAwMDAwMGE5Nzc2OCAwMDAwMDAwMDAwYTk3MTUwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDdmZmU5
MDU4OWFiYzwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8s
IENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwOzAw
MDA3ZmZlOTA1OGE3ODAgMDAwMDAwMDAwMDQzZDk5MCAwMDAwMDAwMDAwNDNkOWIwIDAwMDA3MmU1
Y2FkMjA0MzQ8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxv
LCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDsw
MDAwN2ZmZTkwNTg5YWMwIDAwMDA3MmU1Y2FmYTNmNzkgMDAwMDAwMDAwMDAwMDAwOCBmZmZmODMx
MDg3ZDNmZWY4PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5s
bywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7
MDAwMDAwMDAwMDAwMDAyMyBmZmZmODMxMDdmNTJiMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAw
MDAwMDAwMDAwMDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVu
bG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNw
OzAwMDAwMDAwMDAwMDAwMDAgZmZmZjgyZDA0MDJkZDA3ZiBmZmZmODMxMDdmNTJiMDAwIDAwMDAw
MDAwMDAwMDAwMDA8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1l
bmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIFhlbiBjYWxsIHRy
YWNlOjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENv
bnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwO1smbHQ7
ZmZmZjgyZDA0MDI0OGY4OSZndDtdIFIgc2NoZWR1bGVfY3B1X2FkZCsweDUwLzB4NDU2PC9zcGFu
PjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENv
dXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7WyZsdDtmZmZmODJkMDQw
MjA0YzNiJmd0O10gUyBkZWJ1Z3RyYWNlX3ByaW50aysweDExOS8weDJjYzwvc3Bhbj48L2Rpdj48
ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5l
dywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwO1smbHQ7ZmZmZjgyZDA0MDI0NmQ0OCZn
dDtdIFMgZnJlZV9hZmZpbml0eV9tYXNrcysweDE1LzB4MTc8L3NwYW4+PC9kaXY+PGRpdj48c3Bh
biBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9z
cGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDtbJmx0O2ZmZmY4MmQwNDAyMzVkZWMmZ3Q7XSBTIGNw
dXBvb2wuYyNjcHVwb29sX2Fzc2lnbl9jcHVfbG9ja2VkKzB4NTMvMHgxNjA8L3NwYW4+PC9kaXY+
PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBO
ZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDtbJmx0O2ZmZmY4MmQwNDAyMzZiMDUm
Z3Q7XSBTIGNwdXBvb2xfZG9fc3lzY3RsKzB4MzY3LzB4NzYwPC9zcGFuPjwvZGl2PjxkaXY+PHNw
YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25v
c3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7WyZsdDtmZmZmODJkMDQwMjM0NzYzJmd0O10gUyBk
b19zeXNjdGwrMHg4MjcvMHgxMjY5PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQt
ZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAm
bmJzcDsgJm5ic3A7WyZsdDtmZmZmODJkMDQwMjI3Y2M2Jmd0O10gUyB0aW1lci5jI3RpbWVyX2xv
Y2srMHg2OS8weDE0Mzwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTog
TWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZu
YnNwO1smbHQ7ZmZmZjgyZDA0MDM0OTVkMCZndDtdIFMgeDg2X2VtdWxhdGVfd3JhcHBlcisweDI0
LzB4NTY8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBD
b25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDtbJmx0
O2ZmZmY4MmQwNDAyZGQwN2YmZ3Q7XSBTIHB2X2h5cGVyY2FsbCsweDNhMi8weDRhOTwvc3Bhbj48
L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3Vy
aWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwO1smbHQ7ZmZmZjgyZDA0MDIw
MTJiNyZndDtdIFMgbHN0YXJfZW50ZXIrMHgxMzcvMHgxNDA8L3NwYW4+PC9kaXY+PGRpdj48c3Bh
biBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9z
cGFjZTsiPihYRU4pIDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTog
TWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgZGVidWd0cmFj
ZV9kdW1wKCkgZ2xvYmFsIGJ1ZmZlciBzdGFydGluZzwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNl
OyI+KFhFTikgd3JhcDogMDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWls
eTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgZGVidWd0
cmFjZV9kdW1wKCkgZ2xvYmFsIGJ1ZmZlciBmaW5pc2hlZDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3Nw
YWNlOyI+KFhFTikgPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBN
ZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5
bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7
Ij4oWEVOKSBQYW5pYyBvbiBDUFUgNjo8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9u
dC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4p
IEdFTkVSQUwgUFJPVEVDVElPTiBGQVVMVDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJm
b250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhF
TikgW2Vycm9yX2NvZGU9MDAwMF08L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1m
YW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio8L3NwYW4+PC9kaXY+PGRpdj48
c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1v
bm9zcGFjZTsiPihYRU4pIDwvc3Bhbj48L2Rpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1l
bmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIFJlYm9vdCBpbiBm
aXZlIHNlY29uZHMuLi48L3NwYW4+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBB
cmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9
ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjog
cmdiKDAsIDAsIDApOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ij4vcmVu
ZTxicj48L2Rpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291
cmllciBOZXcsIG1vbm9zcGFjZTsiPgo8L3NwYW4+
-----------------------9343bbedf538043a542760126bd77762--
-----------------------6df91a8ddd19c3542ed41ea32b0a3a21--
-----------------------f94de33a37ba315914385a1efdebb5da
Content-Type: application/pgp-keys; filename="publickey - renewin@proton.me - 0x43C32E54.asc"; name="publickey - renewin@proton.me - 0x43C32E54.asc"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="publickey - renewin@proton.me - 0x43C32E54.asc"; name="publickey - renewin@proton.me - 0x43C32E54.asc"

LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgp4ak1FWWxmZy9oWUpLd1lCQkFI
YVJ3OEJBUWRBOWhrZnlRblEzVlVETWZsT3FPZU1sc1o0N252eml1cmoKbXJnZTFCd040d3pOSlhK
bGJtVjNhVzVBY0hKdmRHOXVMbTFsSUR4eVpXNWxkMmx1UUhCeWIzUnZiaTV0ClpUN0Nqd1FRRmdv
QUlBVUNZbGZnL2dZTENRY0lBd0lFRlFnS0FnUVdBZ0VBQWhrQkFoc0RBaDRCQUNFSgpFQXRxSisz
WXh1S1hGaUVFUThNdVZIeDNmREZGcnZqSEMyb243ZGpHNHBkYUtBRC9WMnNlNk5lTGJ0VkkKVzVB
ck1XRHdJN21xZ0dNSDgrQ3ZCelh1RUE5Y2xrOEEvUkNLbjdzRE1HZVJzWVNENWNFRXdidVRLK01B
CkZ4T2owaEZGOS9PNHRxQUd6amdFWWxmZy9oSUtLd1lCQkFHWFZRRUZBUUVIUUlmc3ozdGNhVElk
MWp2YQpZVG12NURmdUVRVGY4V2s3RmtGVG5LNHltMjRJQXdFSUI4SjRCQmdXQ0FBSkJRSmlWK0Qr
QWhzTUFDRUoKRUF0cUorM1l4dUtYRmlFRVE4TXVWSHgzZkRGRnJ2akhDMm9uN2RqRzRwZDZpUUQr
TzVrR0w2ZjhndktJCmlpSStidS94NkFacytvNGZERmVlc052bS9TWkFRZUVBLzBxbEw1RHR2ckJD
TjY5b2xZMERlRjQ1d0R0bQpEbDlIZ2dtc09sdXRTYzRCCj1xUFNVCi0tLS0tRU5EIFBHUCBQVUJM
SUMgS0VZIEJMT0NLLS0tLS0K
-----------------------f94de33a37ba315914385a1efdebb5da--

--------08aeeaf5fdfa0d2107f357d7ac96c3f8203141a9a0d317189db93fb70591b31d
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: ProtonMail

wnUEARYKACcFgmVqOv8JkAtqJ+3YxuKXFiEEQ8MuVHx3fDFFrvjHC2on7djG
4pcAACmeAQCJSZey9dMiYP3QgGgnUFqfdS+gRA28e5uYKzlK4F+xZAD+JZ2S
ipzvWEdaexU6RsDzx/3pZy7fY8kRftz9pbbg+Qc=
=fX2S
-----END PGP SIGNATURE-----


--------08aeeaf5fdfa0d2107f357d7ac96c3f8203141a9a0d317189db93fb70591b31d--



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:12:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:12:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645712.1007976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99s0-0005qr-MB; Fri, 01 Dec 2023 20:12:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645712.1007976; Fri, 01 Dec 2023 20:12: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 1r99s0-0005qk-JP; Fri, 01 Dec 2023 20:12:16 +0000
Received: by outflank-mailman (input) for mailman id 645712;
 Fri, 01 Dec 2023 20:12:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lSip=HM=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1r99ry-0005qc-V8
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:12:14 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9dedf7f-9085-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 21:12:12 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40b2ad4953cso23576315e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 12:12:12 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 l3-20020a5d5603000000b00333371c7382sm346242wrv.72.2023.12.01.12.12.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Dec 2023 12:12:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9dedf7f-9085-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701461532; x=1702066332; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=4c9p1UzylfeOvsY3GAXGAElNqsAViAFy9WFT4KoI0Kc=;
        b=SYwEjaqoftjp1JbS/D1M8VDUsASNwMnG8YPXufyCQv4tiXe2cDygcBjXyd7+NQr2es
         vY8XUiwqBbaThj549cJeTR+5hekcLynx3ht/uw9WuXcz0hgI41y63CAfVhCVQFMWfxXk
         95l0ad044VUWVy5yBTVVY99YiywZCTp3cFBGI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701461532; x=1702066332;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=4c9p1UzylfeOvsY3GAXGAElNqsAViAFy9WFT4KoI0Kc=;
        b=iFpuknObuf1s1V872j+A1GYczxgJaYxDd0L18VI/asE96pGP9FyUNqdORKORZYCwBm
         vCvxqxLMfr1/eph/2hChhQ2yGbL13O7Zp5DBrEf4S2+EM9MkzkWqfrf/bVHLlpcLG8DN
         z4v2uNlg2nWy/jT2kTFMlSYbJkCkkF4Nng3HddqhakVRDJ5ZzWBceI9koZP6dk5OaYC6
         U/0ir7aU5u6EM4SUGh3g3F8b/O14U3rTpepkPEQHYQUpTbOpdDb8bkjXmD3JBbpavl6v
         Dw2caPNE71zcBFTwT2CC/BTkimV/D4xxz8JKkDpQtLcIR2w/Mh+sVeTH56CY9JOqhC2X
         osYw==
X-Gm-Message-State: AOJu0Yx0x/WxGoVXNyrr/ivpZANuo2STT9Nl55ik2Dd/AbnOLw1QILGN
	mD/tx8XLu5uU2SLg2u+gGsy22w==
X-Google-Smtp-Source: AGHT+IFqFZcJopuO8yFGi7+kEJsphLDQLX3h6TjVTJjZgi8uSU5T7sk6KD/9LzdO4Wz1NkZImLkrxA==
X-Received: by 2002:a05:600c:3581:b0:40b:5e1f:c383 with SMTP id p1-20020a05600c358100b0040b5e1fc383mr1049373wmq.25.1701461531968;
        Fri, 01 Dec 2023 12:12:11 -0800 (PST)
Message-ID: <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
Date: Fri, 1 Dec 2023 20:12:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
Content-Language: en-GB
To: =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
Cc: Juergen Gross <jgross@suse.com>, George Dunlap
 <george.dunlap@citrix.com>, Dario Faggioli <dfaggioli@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/12/2023 7:59 pm, RenÃ© Winther HÃ¸jgaard wrote:
> If I set smt=off and try to configure cpupools with credit(1) as if
> all cores are available, I get the following crash. Â 
>
> The crash happens when I try to use xl cpupool-add-cpu on the disabled
> HT sibling cores.
>
> Hyper-threading is enabled in the firmware, and only disabled with
> smt=off.

CC'ing some maintainers.

I expect this will also explode when a CPU is runtime offlined with
`xen-hptool cpu-offline` and then added to a cpupool.

Interestingly, the crash is mov (%rdx,%rax,1),%r13, and I think that's
the percpu posion value in %rdx.

I expect cpupools want to reject parked/offline CPUs.

~Andrew

>
> Software: Xen-4.17.3 / Qubes OS 4.2.0-RC5
> Firmware: Dasharo 0.9.0 - Z790P
> Hardware: 13900K
>
> (XEN) ----[ Xen-4.17.3-pre Â x86_64 Â debug=y Â Not tainted ]----
> (XEN) CPU: Â  Â 6
> (XEN) RIP: Â  Â e008:[<ffff82d040248f89>] schedule_cpu_add+0x50/0x456
> (XEN) RFLAGS: 0000000000010202 Â  CONTEXT: hypervisor (d0v3)
> (XEN) rax: ffff82d0405a9288 Â  rbx: ffff83107f5a1980 Â  rcx:
> 0000000000000020
> (XEN) rdx: 80007d2fbfa59000 Â  rsi: ffff83107f5a1980 Â  rdi:
> 0000000000000020
> (XEN) rbp: 0000000000000009 Â  rsp: ffff831087d3fc68 Â  r8:
> Â 0000000000000000
> (XEN) r9: Â ffff82d0405b6b60 Â  r10: ffff831087d22ab0 Â  r11:
> 0000000000000003
> (XEN) r12: ffff831087d22ab0 Â  r13: 0000000000000020 Â  r14:
> ffff831087d22ab0
> (XEN) r15: ffff82d0405ae680 Â  cr0: 0000000080050033 Â  cr4:
> 0000000000b526e0
> (XEN) cr3: 0000000912e30000 Â  cr2: 000072e5cb008375
> (XEN) fsb: 000072e5caac7380 Â  gsb: ffff8881b9d80000 Â  gss:
> 0000000000000000
> (XEN) ds: 0000 Â  es: 0000 Â  fs: 0000 Â  gs: 0000 Â  ss: e010 Â  cs: e008
> (XEN) Xen code around <ffff82d040248f89> (schedule_cpu_add+0x50/0x456):
> (XEN) Â db 8e 37 00 48 8b 14 ca <4c> 8b 2c 02 3b 3d 75 f0 1f 00 0f 83
> c9 01 00 00
> (XEN) Xen stack trace from rsp=ffff831087d3fc68:
> (XEN) Â  Â ffff83107f5a16e0 ffff82d040204c3b ffff831000000018
> ffff831087d3fd28
> (XEN) Â  Â ffff831087d3fcc8 3431831087d3fcd0 ffff83107f002033
> ffff831087d3fcd0
> (XEN) Â  Â 0000000000000000 ffff831087d40d70 ffff82d040246d48
> 0000000000000000
> (XEN) Â  Â ffff83107f5a1980 0000000000000009 ffff831087d22ab0
> 0000000000000020
> (XEN) Â  Â ffff831087d22ab0 ffff82d0405ae680 ffff82d040235dec
> ffff831087d3fe20
> (XEN) Â  Â 00000000ffffffed 0000000000000009 ffff83107f5a1980
> ffff82d040236b05
> (XEN) Â  Â 0000000000000000 0000000000000000 000072e5cb098010
> ffff831087d3ffff
> (XEN) Â  Â 0000000000000000 ffff82d04045d5d8 ffff82d040234763
> 00000000c0000102
> (XEN) Â  Â 0000000000000000 0000000000000000 00000000c0000102
> 0000000d00000000
> (XEN) Â  Â ffffffff8101ede6 000000000000e033 0000000000011082
> ffffc90043c1fb00
> (XEN) Â  Â 000000000000e02b 11e6f31d9b4cbeef 96994088d9fcbeef
> 7d897394f3ecbeef
> (XEN) Â  Â c501dd1632b4beef ffff82d040227cc6 ffff831087d3fe48
> 0000000000000000
> (XEN) Â  Â 0000000000011082 0000000000000000 ffff831087d3ffff
> 0000000000000000
> (XEN) Â  Â ffffffff8101ede4 ffff82d0403495d0 0000001500000012
> 0000000200000004
> (XEN) Â  Â 0000000000000000 0000000000000009 000072e5cad9cb60
> 7be382ddb0c16b00
> (XEN) Â  Â 0000000000a97768 0000000000a97150 0000000000000000
> 00007ffe90589abc
> (XEN) Â  Â 00007ffe9058a780 000000000043d990 000000000043d9b0
> 000072e5cad20434
> (XEN) Â  Â 00007ffe90589ac0 000072e5cafa3f79 0000000000000008
> ffff831087d3fef8
> (XEN) Â  Â 0000000000000023 ffff83107f52b000 0000000000000000
> 0000000000000000
> (XEN) Â  Â 0000000000000000 ffff82d0402dd07f ffff83107f52b000
> 0000000000000000
> (XEN) Xen call trace:
> (XEN) Â  Â [<ffff82d040248f89>] R schedule_cpu_add+0x50/0x456
> (XEN) Â  Â [<ffff82d040204c3b>] S debugtrace_printk+0x119/0x2cc
> (XEN) Â  Â [<ffff82d040246d48>] S free_affinity_masks+0x15/0x17
> (XEN) Â  Â [<ffff82d040235dec>] S
> cpupool.c#cpupool_assign_cpu_locked+0x53/0x160
> (XEN) Â  Â [<ffff82d040236b05>] S cpupool_do_sysctl+0x367/0x760
> (XEN) Â  Â [<ffff82d040234763>] S do_sysctl+0x827/0x1269
> (XEN) Â  Â [<ffff82d040227cc6>] S timer.c#timer_lock+0x69/0x143
> (XEN) Â  Â [<ffff82d0403495d0>] S x86_emulate_wrapper+0x24/0x56
> (XEN) Â  Â [<ffff82d0402dd07f>] S pv_hypercall+0x3a2/0x4a9
> (XEN) Â  Â [<ffff82d0402012b7>] S lstar_enter+0x137/0x140
> (XEN)
> (XEN) debugtrace_dump() global buffer starting
> (XEN) wrap: 0
> (XEN) debugtrace_dump() global buffer finished
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 6:
> (XEN) GENERAL PROTECTION FAULT
> (XEN) [error_code=0000]
> (XEN) ****************************************
> (XEN)
> (XEN) Reboot in five seconds...
>
> /rene



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:13:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:13:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645717.1007985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r99tO-0006at-0E; Fri, 01 Dec 2023 20:13:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645717.1007985; Fri, 01 Dec 2023 20: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 1r99tN-0006am-Ty; Fri, 01 Dec 2023 20:13:41 +0000
Received: by outflank-mailman (input) for mailman id 645717;
 Fri, 01 Dec 2023 20:13: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=cfBb=HM=proton.me=renewin@srs-se1.protection.inumbo.net>)
 id 1r99tM-0006Ze-U0
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:13:41 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d5fd425-9086-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 21:13:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d5fd425-9086-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1701461617; x=1701720817;
	bh=wxipLpn4DcncRcYud0TNKvU0FfhJVWPopR3Y2aJ3Sro=;
	h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=N6GP6ctTIcCnOvm7ErXHzmQgtyq299kIBNUvtk8SMg6RVhdnnLQADY7eM5sjSYNSm
	 5vWrP+6gBN7GVwLtGQq/rfvhlO9FrzPOQq1QcxaXzmyNL8MfmcBe82f41crDvAsTaj
	 dPbI5rDDTcHZZZQrz1pJl5os5Ibwgb0KLI92zH3q8zXuGRizvdvQzOQHZodwRh0eTq
	 SYBJPGGSASPCf7Vk3i4mWNMLysDj91x62q6cFDSL98wnWhpKRR4fKlK2j3mgf8NdUT
	 nzhezV2gLHNCQp11A49I24+Eu1AcWJAWSwJmcv+g24ZiCUcY6/df0FYfiM2Dpxsn9V
	 BexSH0UxHeEaA==
Date: Fri, 01 Dec 2023 20:13:31 +0000
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: =?utf-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Subject: Moving domain from credit2 to credit cpupool crash xen
Message-ID: <dnfWU_V9cXmbF4wNEEzLue_FUJefwMiic1J0gTnWryyEIiB3hV-h3zC_CjBeBJkcQS8ZMA5ZdkTbJBK2hf_1a1oY3GJvteqG8NqEduCjCrY=@proton.me>
Feedback-ID: 45853758:user:proton
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha512; boundary="------b7c8c37d6c8c00cab76247cdb285c174ab952ff5e9c2eaa4d9ae9ac98d036df5"; charset=utf-8

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------b7c8c37d6c8c00cab76247cdb285c174ab952ff5e9c2eaa4d9ae9ac98d036df5
Content-Type: multipart/mixed;boundary=---------------------85214eeef1a9fb476d4ccecfae78b72c

-----------------------85214eeef1a9fb476d4ccecfae78b72c
Content-Type: multipart/alternative;boundary=---------------------71a8de1d06e4c5373a854d57bf402ab6

-----------------------71a8de1d06e4c5373a854d57bf402ab6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;charset=utf-8

When I move a domain from pool0 with credit2 to any pool with credit(1) I =
get the following crash.


Software: Xen-4.17.3 / Qubes OS 4.2.0-RC5
Firmware: Dasharo 0.9.0 - Z790P
Hardware: 13900K
(XEN) Xen BUG at common/sched/credit.c:1051(XEN) ----[ Xen-4.17.3-pre =C2=A0=
x86_64 =C2=A0debug=3Dy =C2=A0Not tainted ]----
(XEN) CPU: =C2=A0 =C2=A02
(XEN) RIP: =C2=A0 =C2=A0e008:[<ffff82d040237cfd>] credit.c#csched_free_uda=
ta+0x12/0x14
(XEN) RFLAGS: 0000000000010202 =C2=A0 CONTEXT: hypervisor (d0v2)
(XEN) rax: ffff82d040237ceb =C2=A0 rbx: 0000000000000014 =C2=A0 rcx: 00000=
00000000013
(XEN) rdx: ffff831087d7ffff =C2=A0 rsi: ffff830ad80e8da0 =C2=A0 rdi: ffff8=
30ad80e8da0
(XEN) rbp: 0000000000000000 =C2=A0 rsp: ffff831087d7fc90 =C2=A0 r8: =C2=A0=
ffff830e2d6a49b0
(XEN) r9: =C2=A0ffff831087d7fbe0 =C2=A0 r10: ffff83107c481068 =C2=A0 r11: =
0000002cfd1c274a
(XEN) r12: ffff830ad80e8c80 =C2=A0 r13: ffff83107c45bee0 =C2=A0 r14: 00000=
00000000000
(XEN) r15: ffff82d0405a9288 =C2=A0 cr0: 0000000080050033 =C2=A0 cr4: 00000=
00000b526e0
(XEN) cr3: 00000009284d8000 =C2=A0 cr2: 00007fb535181240
(XEN) fsb: 00007fb534c5f380 =C2=A0 gsb: ffff8881b9d00000 =C2=A0 gss: 00000=
00000000000
(XEN) ds: 0000 =C2=A0 es: 0000 =C2=A0 fs: 0000 =C2=A0 gs: 0000 =C2=A0 ss: =
e010 =C2=A0 cs: e008
(XEN) Xen code around <ffff82d040237cfd> (credit.c#csched_free_udata+0x12/=
0x14):
(XEN) =C2=A075 06 e8 19 74 ff ff c3 <0f> 0b f3 0f 1e fa 53 48 8b 5f 18 48 =
85 db 74 2b
(XEN) Xen stack trace from rsp=3Dffff831087d7fc90:
(XEN) =C2=A0 =C2=A0ffff82d040247503 0000001300002030 ffff830ad80e8bf0 ffff=
82d0405a9288
(XEN) =C2=A0 =C2=A0ffff83107f59aa80 ffff830ad80e8c80 ffff83107c45bee0 ffff=
830ad80e8bf0
(XEN) =C2=A0 =C2=A0ffff831000af1010 ffff83107c45bee0 ffff830ad80ed000 ffff=
83107c45bee0
(XEN) =C2=A0 =C2=A00000000000000000 ffff82d04045d5d8 ffff82d0405ae680 ffff=
82d040235303
(XEN) =C2=A0 =C2=A0ffff831087d7fe20 00000000fffffffe ffff82d040236ec3 ffff=
830ad80ed000
(XEN) =C2=A0 =C2=A00000000000000000 00007fb535230010 ffff831087d7ffff 0000=
000000000000
(XEN) =C2=A0 =C2=A0ffff82d04045d5d8 ffff82d040234763 00000000c0000102 0000=
000000000000
(XEN) =C2=A0 =C2=A00000000000000000 00000000c0000102 0000000d00000000 ffff=
ffff8101ede6
(XEN) =C2=A0 =C2=A0000000000000e033 0000000000011082 ffffc90046ebba90 0000=
00000000e02b
(XEN) =C2=A0 =C2=A05a33a1a65352beef feadf9effdf1beef 122ae2fa736bbeef 4602=
3e9af174beef
(XEN) =C2=A0 =C2=A0ffff82d040227cc6 ffff831087d7fe48 0000000000000000 0000=
000000011082
(XEN) =C2=A0 =C2=A00000000000000000 ffff831087d7ffff 0000000000000000 ffff=
ffff8101ede4
(XEN) =C2=A0 =C2=A0ffff82d0403495d0 0000001500000012 0000000100000006 0000=
000d00000000
(XEN) =C2=A0 =C2=A000007ffdf93fb3fc 0000000000431042 000000000043d990 0000=
00000043d9b0
(XEN) =C2=A0 =C2=A000007fb534eb8434 00007ffdf93fb400 0000000000000013 0000=
000002361838
(XEN) =C2=A0 =C2=A004457fe81f7cf300 0000000002360870 ffffffffffffff80 0000=
000000000000
(XEN) =C2=A0 =C2=A000007ffdf93fc652 000000000043d980 ffff831087d7fef8 0000=
000000000023
(XEN) =C2=A0 =C2=A0ffff83107f544000 0000000000000000 0000000000000000 0000=
000000000000
(XEN) =C2=A0 =C2=A0ffff82d0402dd07f ffff83107f544000 0000000000000000 0000=
000000000000
(XEN) =C2=A0 =C2=A0ffff82d0402012b7 0000000000000000 ffff88811abbc100 0000=
7ffdf93fb2c0
(XEN) Xen call trace:
(XEN) =C2=A0 =C2=A0[<ffff82d040237cfd>] R credit.c#csched_free_udata+0x12/=
0x14
(XEN) =C2=A0 =C2=A0[<ffff82d040247503>] S sched_move_domain+0x5b0/0x5cc
(XEN) =C2=A0 =C2=A0[<ffff82d040235303>] S cpupool.c#cpupool_move_domain_lo=
cked+0x1d/0x3b
(XEN) =C2=A0 =C2=A0[<ffff82d040236ec3>] S cpupool_do_sysctl+0x725/0x760
(XEN) =C2=A0 =C2=A0[<ffff82d040234763>] S do_sysctl+0x827/0x1269
(XEN) =C2=A0 =C2=A0[<ffff82d040227cc6>] S timer.c#timer_lock+0x69/0x143
(XEN) =C2=A0 =C2=A0[<ffff82d0403495d0>] S x86_emulate_wrapper+0x24/0x56
(XEN) =C2=A0 =C2=A0[<ffff82d0402dd07f>] S pv_hypercall+0x3a2/0x4a9
(XEN) =C2=A0 =C2=A0[<ffff82d0402012b7>] S lstar_enter+0x137/0x140
(XEN)
(XEN) debugtrace_dump() global buffer starting
(XEN) wrap: 0
(XEN) debugtrace_dump() global buffer finished
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 2:
(XEN) Xen BUG at common/sched/credit.c:1051
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...

/rene
-----------------------71a8de1d06e4c5373a854d57bf402ab6
Content-Type: multipart/related;boundary=---------------------40be745a0eb8977dafd876f237b486ff

-----------------------40be745a0eb8977dafd876f237b486ff
Content-Type: text/html;charset=utf-8
Content-Transfer-Encoding: base64

PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0
cHg7Ij48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZv
bnQtc2l6ZTogMTRweDsgY29sb3I6IHJnYigwLCAwLCAwKTsgYmFja2dyb3VuZC1jb2xvcjogcmdi
KDI1NSwgMjU1LCAyNTUpOyI+V2hlbiBJIG1vdmUgYSBkb21haW4gZnJvbSBwb29sMCB3aXRoIGNy
ZWRpdDIgdG8gYW55IHBvb2wgd2l0aCBjcmVkaXQoMSkgSSBnZXQgdGhlIGZvbGxvd2luZyBjcmFz
aC48YnI+PC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAy
NTUpOyI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Ok1lbmxvLCBDb25zb2xhcywgQ291cmllciBO
ZXcsIG1vbm9zcGFjZSI+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6TWVubG8s
IENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlIj5Tb2Z0d2FyZTogWGVuLTQuMTcuMyAv
IFF1YmVzIE9TIDQuMi4wLVJDNTwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6TWVubG8s
IENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlIj5GaXJtd2FyZTogRGFzaGFybyAwLjku
MCAtIFo3OTBQPC9zcGFuPjwvZGl2PjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2Io
MjU1LCAyNTUsIDI1NSk7Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6TWVubG8sIENvbnNvbGFz
LCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlIj5IYXJkd2FyZTogMTM5MDBLPC9zcGFuPjwvc3Bhbj48
ZGl2IGNsYXNzPSJwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jayAiIHN0eWxlPSJmb250LWZhbWls
eTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjxkaXYgY2xhc3M9InByb3Rv
bm1haWxfc2lnbmF0dXJlX2Jsb2NrLXVzZXIgIj48ZGl2Pjxicj48L2Rpdj48ZGl2PjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNl
OyI+KFhFTikgWGVuIEJVRyBhdCBjb21tb24vc2NoZWQvY3JlZGl0LmM6MTA1MTwvc3Bhbj48ZGl2
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywg
bW9ub3NwYWNlOyI+KFhFTikgLS0tLVsgWGVuLTQuMTcuMy1wcmUgJm5ic3A7eDg2XzY0ICZuYnNw
O2RlYnVnPXkgJm5ic3A7Tm90IHRhaW50ZWQgXS0tLS08L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBz
dHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFj
ZTsiPihYRU4pIENQVTogJm5ic3A7ICZuYnNwOzI8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHls
ZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsi
PihYRU4pIFJJUDogJm5ic3A7ICZuYnNwO2UwMDg6WyZsdDtmZmZmODJkMDQwMjM3Y2ZkJmd0O10g
Y3JlZGl0LmMjY3NjaGVkX2ZyZWVfdWRhdGErMHgxMi8weDE0PC9zcGFuPjwvZGl2PjxkaXY+PHNw
YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25v
c3BhY2U7Ij4oWEVOKSBSRkxBR1M6IDAwMDAwMDAwMDAwMTAyMDIgJm5ic3A7IENPTlRFWFQ6IGh5
cGVydmlzb3IgKGQwdjIpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5
OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSByYXg6IGZm
ZmY4MmQwNDAyMzdjZWIgJm5ic3A7IHJieDogMDAwMDAwMDAwMDAwMDAxNCAmbmJzcDsgcmN4OiAw
MDAwMDAwMDAwMDAwMDEzPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5
OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSByZHg6IGZm
ZmY4MzEwODdkN2ZmZmYgJm5ic3A7IHJzaTogZmZmZjgzMGFkODBlOGRhMCAmbmJzcDsgcmRpOiBm
ZmZmODMwYWQ4MGU4ZGEwPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5
OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSByYnA6IDAw
MDAwMDAwMDAwMDAwMDAgJm5ic3A7IHJzcDogZmZmZjgzMTA4N2Q3ZmM5MCAmbmJzcDsgcjg6ICZu
YnNwO2ZmZmY4MzBlMmQ2YTQ5YjA8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1m
YW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIHI5
OiAmbmJzcDtmZmZmODMxMDg3ZDdmYmUwICZuYnNwOyByMTA6IGZmZmY4MzEwN2M0ODEwNjggJm5i
c3A7IHIxMTogMDAwMDAwMmNmZDFjMjc0YTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJm
b250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhF
TikgcjEyOiBmZmZmODMwYWQ4MGU4YzgwICZuYnNwOyByMTM6IGZmZmY4MzEwN2M0NWJlZTAgJm5i
c3A7IHIxNDogMDAwMDAwMDAwMDAwMDAwMDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJm
b250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhF
TikgcjE1OiBmZmZmODJkMDQwNWE5Mjg4ICZuYnNwOyBjcjA6IDAwMDAwMDAwODAwNTAwMzMgJm5i
c3A7IGNyNDogMDAwMDAwMDAwMGI1MjZlMDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJm
b250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhF
TikgY3IzOiAwMDAwMDAwOTI4NGQ4MDAwICZuYnNwOyBjcjI6IDAwMDA3ZmI1MzUxODEyNDA8L3Nw
YW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywg
Q291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIGZzYjogMDAwMDdmYjUzNGM1ZjM4MCAmbmJz
cDsgZ3NiOiBmZmZmODg4MWI5ZDAwMDAwICZuYnNwOyBnc3M6IDAwMDAwMDAwMDAwMDAwMDA8L3Nw
YW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywg
Q291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIGRzOiAwMDAwICZuYnNwOyBlczogMDAwMCAm
bmJzcDsgZnM6IDAwMDAgJm5ic3A7IGdzOiAwMDAwICZuYnNwOyBzczogZTAxMCAmbmJzcDsgY3M6
IGUwMDg8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBD
b25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIFhlbiBjb2RlIGFyb3VuZCAm
bHQ7ZmZmZjgyZDA0MDIzN2NmZCZndDsgKGNyZWRpdC5jI2NzY2hlZF9mcmVlX3VkYXRhKzB4MTIv
MHgxNCk6PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywg
Q29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDs3NSAwNiBlOCAx
OSA3NCBmZiBmZiBjMyAmbHQ7MGYmZ3Q7IDBiIGYzIDBmIDFlIGZhIDUzIDQ4IDhiIDVmIDE4IDQ4
IDg1IGRiIDc0IDJiPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBN
ZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSBYZW4gc3RhY2sg
dHJhY2UgZnJvbSByc3A9ZmZmZjgzMTA4N2Q3ZmM5MDo8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBz
dHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFj
ZTsiPihYRU4pICZuYnNwOyAmbmJzcDtmZmZmODJkMDQwMjQ3NTAzIDAwMDAwMDEzMDAwMDIwMzAg
ZmZmZjgzMGFkODBlOGJmMCBmZmZmODJkMDQwNWE5Mjg4PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4g
c3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3Bh
Y2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7ZmZmZjgzMTA3ZjU5YWE4MCBmZmZmODMwYWQ4MGU4Yzgw
IGZmZmY4MzEwN2M0NWJlZTAgZmZmZjgzMGFkODBlOGJmMDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3Nw
YWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwO2ZmZmY4MzEwMDBhZjEwMTAgZmZmZjgzMTA3YzQ1YmVl
MCBmZmZmODMwYWQ4MGVkMDAwIGZmZmY4MzEwN2M0NWJlZTA8L3NwYW4+PC9kaXY+PGRpdj48c3Bh
biBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9z
cGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDswMDAwMDAwMDAwMDAwMDAwIGZmZmY4MmQwNDA0NWQ1
ZDggZmZmZjgyZDA0MDVhZTY4MCBmZmZmODJkMDQwMjM1MzAzPC9zcGFuPjwvZGl2PjxkaXY+PHNw
YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25v
c3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7ZmZmZjgzMTA4N2Q3ZmUyMCAwMDAwMDAwMGZmZmZm
ZmZlIGZmZmY4MmQwNDAyMzZlYzMgZmZmZjgzMGFkODBlZDAwMDwvc3Bhbj48L2Rpdj48ZGl2Pjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9u
b3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwOzAwMDAwMDAwMDAwMDAwMDAgMDAwMDdmYjUzNTIz
MDAxMCBmZmZmODMxMDg3ZDdmZmZmIDAwMDAwMDAwMDAwMDAwMDA8L3NwYW4+PC9kaXY+PGRpdj48
c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1v
bm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDtmZmZmODJkMDQwNDVkNWQ4IGZmZmY4MmQwNDAy
MzQ3NjMgMDAwMDAwMDBjMDAwMDEwMiAwMDAwMDAwMDAwMDAwMDAwPC9zcGFuPjwvZGl2PjxkaXY+
PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBt
b25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7MDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMGMw
MDAwMTAyIDAwMDAwMDBkMDAwMDAwMDAgZmZmZmZmZmY4MTAxZWRlNjwvc3Bhbj48L2Rpdj48ZGl2
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywg
bW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwOzAwMDAwMDAwMDAwMGUwMzMgMDAwMDAwMDAw
MDAxMTA4MiBmZmZmYzkwMDQ2ZWJiYTkwIDAwMDAwMDAwMDAwMGUwMmI8L3NwYW4+PC9kaXY+PGRp
dj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcs
IG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDs1YTMzYTFhNjUzNTJiZWVmIGZlYWRmOWVm
ZmRmMWJlZWYgMTIyYWUyZmE3MzZiYmVlZiA0NjAyM2U5YWYxNzRiZWVmPC9zcGFuPjwvZGl2Pjxk
aXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3
LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7ZmZmZjgyZDA0MDIyN2NjNiBmZmZmODMx
MDg3ZDdmZTQ4IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAxMTA4Mjwvc3Bhbj48L2Rpdj48
ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5l
dywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwOzAwMDAwMDAwMDAwMDAwMDAgZmZmZjgz
MTA4N2Q3ZmZmZiAwMDAwMDAwMDAwMDAwMDAwIGZmZmZmZmZmODEwMWVkZTQ8L3NwYW4+PC9kaXY+
PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBO
ZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDtmZmZmODJkMDQwMzQ5NWQwIDAwMDAw
MDE1MDAwMDAwMTIgMDAwMDAwMDEwMDAwMDAwNiAwMDAwMDAwZDAwMDAwMDAwPC9zcGFuPjwvZGl2
PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIg
TmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7MDAwMDdmZmRmOTNmYjNmYyAwMDAw
MDAwMDAwNDMxMDQyIDAwMDAwMDAwMDA0M2Q5OTAgMDAwMDAwMDAwMDQzZDliMDwvc3Bhbj48L2Rp
dj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVy
IE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwOzAwMDA3ZmI1MzRlYjg0MzQgMDAw
MDdmZmRmOTNmYjQwMCAwMDAwMDAwMDAwMDAwMDEzIDAwMDAwMDAwMDIzNjE4Mzg8L3NwYW4+PC9k
aXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmll
ciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDswNDQ1N2ZlODFmN2NmMzAwIDAw
MDAwMDAwMDIzNjA4NzAgZmZmZmZmZmZmZmZmZmY4MCAwMDAwMDAwMDAwMDAwMDAwPC9zcGFuPjwv
ZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJp
ZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7MDAwMDdmZmRmOTNmYzY1MiAw
MDAwMDAwMDAwNDNkOTgwIGZmZmY4MzEwODdkN2ZlZjggMDAwMDAwMDAwMDAwMDAyMzwvc3Bhbj48
L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3Vy
aWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwO2ZmZmY4MzEwN2Y1NDQwMDAg
MDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDA8L3NwYW4+
PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291
cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDtmZmZmODJkMDQwMmRkMDdm
IGZmZmY4MzEwN2Y1NDQwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwPC9zcGFu
PjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENv
dXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7ZmZmZjgyZDA0MDIwMTJi
NyAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODgxMWFiYmMxMDAgMDAwMDdmZmRmOTNmYjJjMDwvc3Bh
bj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBD
b3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgWGVuIGNhbGwgdHJhY2U6PC9zcGFuPjwvZGl2
PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIg
TmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7WyZsdDtmZmZmODJkMDQwMjM3Y2Zk
Jmd0O10gUiBjcmVkaXQuYyNjc2NoZWRfZnJlZV91ZGF0YSsweDEyLzB4MTQ8L3NwYW4+PC9kaXY+
PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBO
ZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDtbJmx0O2ZmZmY4MmQwNDAyNDc1MDMm
Z3Q7XSBTIHNjaGVkX21vdmVfZG9tYWluKzB4NWIwLzB4NWNjPC9zcGFuPjwvZGl2PjxkaXY+PHNw
YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25v
c3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7WyZsdDtmZmZmODJkMDQwMjM1MzAzJmd0O10gUyBj
cHVwb29sLmMjY3B1cG9vbF9tb3ZlX2RvbWFpbl9sb2NrZWQrMHgxZC8weDNiPC9zcGFuPjwvZGl2
PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIg
TmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7WyZsdDtmZmZmODJkMDQwMjM2ZWMz
Jmd0O10gUyBjcHVwb29sX2RvX3N5c2N0bCsweDcyNS8weDc2MDwvc3Bhbj48L2Rpdj48ZGl2Pjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9u
b3NwYWNlOyI+KFhFTikgJm5ic3A7ICZuYnNwO1smbHQ7ZmZmZjgyZDA0MDIzNDc2MyZndDtdIFMg
ZG9fc3lzY3RsKzB4ODI3LzB4MTI2OTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250
LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikg
Jm5ic3A7ICZuYnNwO1smbHQ7ZmZmZjgyZDA0MDIyN2NjNiZndDtdIFMgdGltZXIuYyN0aW1lcl9s
b2NrKzB4NjkvMHgxNDM8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAm
bmJzcDtbJmx0O2ZmZmY4MmQwNDAzNDk1ZDAmZ3Q7XSBTIHg4Nl9lbXVsYXRlX3dyYXBwZXIrMHgy
NC8weDU2PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywg
Q29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSAmbmJzcDsgJm5ic3A7WyZs
dDtmZmZmODJkMDQwMmRkMDdmJmd0O10gUyBwdl9oeXBlcmNhbGwrMHgzYTIvMHg0YTk8L3NwYW4+
PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291
cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pICZuYnNwOyAmbmJzcDtbJmx0O2ZmZmY4MmQwNDAy
MDEyYjcmZ3Q7XSBTIGxzdGFyX2VudGVyKzB4MTM3LzB4MTQwPC9zcGFuPjwvZGl2PjxkaXY+PHNw
YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25v
c3BhY2U7Ij4oWEVOKSA8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIGRlYnVndHJh
Y2VfZHVtcCgpIGdsb2JhbCBidWZmZXIgc3RhcnRpbmc8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBz
dHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFj
ZTsiPihYRU4pIHdyYXA6IDA8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1p
bHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZTsiPihYRU4pIGRlYnVn
dHJhY2VfZHVtcCgpIGdsb2JhbCBidWZmZXIgZmluaXNoZWQ8L3NwYW4+PC9kaXY+PGRpdj48c3Bh
biBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9z
cGFjZTsiPihYRU4pIDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTog
TWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+KFhFTikgKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywgbW9ub3NwYWNl
OyI+KFhFTikgUGFuaWMgb24gQ1BVIDI6PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZv
bnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVO
KSBYZW4gQlVHIGF0IGNvbW1vbi9zY2hlZC9jcmVkaXQuYzoxMDUxPC9zcGFuPjwvZGl2PjxkaXY+
PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBt
b25vc3BhY2U7Ij4oWEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29s
YXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7Ij4oWEVOKSA8L3NwYW4+PC9kaXY+PHNwYW4gc3R5
bGU9ImZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2U7
Ij4oWEVOKSBSZWJvb3QgaW4gZml2ZSBzZWNvbmRzLi4uPC9zcGFuPjxicj48L2Rpdj48ZGl2Pjxi
cj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogTWVubG8sIENvbnNvbGFzLCBD
b3VyaWVyIE5ldywgbW9ub3NwYWNlOyI+L3JlbmU8L3NwYW4+PGJyPjwvZGl2PjwvZGl2PgogICAg
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLXByb3Rv
biBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1lbXB0eSI+CiAgICAgICAgCiAgICAgICAgICAg
IDwvZGl2Pgo8L2Rpdj4K
-----------------------40be745a0eb8977dafd876f237b486ff--
-----------------------71a8de1d06e4c5373a854d57bf402ab6--
-----------------------85214eeef1a9fb476d4ccecfae78b72c
Content-Type: application/pgp-keys; filename="publickey - renewin@proton.me - 0x43C32E54.asc"; name="publickey - renewin@proton.me - 0x43C32E54.asc"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="publickey - renewin@proton.me - 0x43C32E54.asc"; name="publickey - renewin@proton.me - 0x43C32E54.asc"

LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgp4ak1FWWxmZy9oWUpLd1lCQkFI
YVJ3OEJBUWRBOWhrZnlRblEzVlVETWZsT3FPZU1sc1o0N252eml1cmoKbXJnZTFCd040d3pOSlhK
bGJtVjNhVzVBY0hKdmRHOXVMbTFsSUR4eVpXNWxkMmx1UUhCeWIzUnZiaTV0ClpUN0Nqd1FRRmdv
QUlBVUNZbGZnL2dZTENRY0lBd0lFRlFnS0FnUVdBZ0VBQWhrQkFoc0RBaDRCQUNFSgpFQXRxSisz
WXh1S1hGaUVFUThNdVZIeDNmREZGcnZqSEMyb243ZGpHNHBkYUtBRC9WMnNlNk5lTGJ0VkkKVzVB
ck1XRHdJN21xZ0dNSDgrQ3ZCelh1RUE5Y2xrOEEvUkNLbjdzRE1HZVJzWVNENWNFRXdidVRLK01B
CkZ4T2owaEZGOS9PNHRxQUd6amdFWWxmZy9oSUtLd1lCQkFHWFZRRUZBUUVIUUlmc3ozdGNhVElk
MWp2YQpZVG12NURmdUVRVGY4V2s3RmtGVG5LNHltMjRJQXdFSUI4SjRCQmdXQ0FBSkJRSmlWK0Qr
QWhzTUFDRUoKRUF0cUorM1l4dUtYRmlFRVE4TXVWSHgzZkRGRnJ2akhDMm9uN2RqRzRwZDZpUUQr
TzVrR0w2ZjhndktJCmlpSStidS94NkFacytvNGZERmVlc052bS9TWkFRZUVBLzBxbEw1RHR2ckJD
TjY5b2xZMERlRjQ1d0R0bQpEbDlIZ2dtc09sdXRTYzRCCj1xUFNVCi0tLS0tRU5EIFBHUCBQVUJM
SUMgS0VZIEJMT0NLLS0tLS0K
-----------------------85214eeef1a9fb476d4ccecfae78b72c--

--------b7c8c37d6c8c00cab76247cdb285c174ab952ff5e9c2eaa4d9ae9ac98d036df5
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: ProtonMail

wnUEARYKACcFgmVqPk8JkAtqJ+3YxuKXFiEEQ8MuVHx3fDFFrvjHC2on7djG
4pcAAI2TAQDwNLXyqpQetVlNej+UIW0HpMIPHxdH3tZqWx3aCm2/HAD/RTGh
Es/Ag+mU0UVYQLOTXb96IRIZqLFQ1cgUf3aq7gE=
=aLlb
-----END PGP SIGNATURE-----


--------b7c8c37d6c8c00cab76247cdb285c174ab952ff5e9c2eaa4d9ae9ac98d036df5--



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:48:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645740.1008021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AQv-0007nW-F4; Fri, 01 Dec 2023 20:48:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645740.1008021; Fri, 01 Dec 2023 20:48:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AQv-0007mc-AQ; Fri, 01 Dec 2023 20:48:21 +0000
Received: by outflank-mailman (input) for mailman id 645740;
 Fri, 01 Dec 2023 20:48:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yVFl=HM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1r9AQu-0007Cg-S5
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:48:20 +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 f6032f4d-908a-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 21:48:20 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2c9bd3ec4f6so32579011fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 12:48:20 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 i18-20020a2ea372000000b002c6ed7e546esm511142ljn.124.2023.12.01.12.48.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 12:48:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6032f4d-908a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701463699; x=1702068499; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/UjRVghE9J4L7xQTZkvPdVbMV4X+mNlL7EmIYrZm+io=;
        b=iEWljsrN7irkOrODpaFCArSB04ycQtj694iIdpnOfybDFafP6smzsTairpq8ca5nZr
         3PmHV15hiVbh3vdKzBnvL8HOZCjTexszq52cfk2Z4jr7NwLg0W9B8YgNRbVq2MgSm675
         5jL+n9EH7BL6qzMYlf4rWIuCti7gF17zZMbye1f/+lP0DoSdDAY4HfdiJ7d+xW9BpMNg
         DEZ5w0JHQGoraOGz2hd05I0WHNqcs3qUPFWyZG+IuBD24ib/AY+ynPbaqw85LJkocVb2
         hc/WSI/f37j4G96zx/qiYnF2+3mba77EVJz6pmUeE0GCMDJOwa6x7B9x3i1z/X9JUsL4
         W9tw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701463699; x=1702068499;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=/UjRVghE9J4L7xQTZkvPdVbMV4X+mNlL7EmIYrZm+io=;
        b=qQg8oH+H/sw1XkSZEk+sbaj+ELI22rsFtgVDMKDtH9fuuWUJAw8AEsVpIvbZ9KxoX0
         kD+vODmNCLK3vAMWU5A6UU4uE0TMTsmQJG8InoJH2hLPwZcb7Ptmd4U+Yjn969EsSP9p
         13zAfqXeDEyugDjfhzvh56NKK5mGDQ3Ij7u9Gb63skz/G+zLb2NfbmTgTwdssYqWBoV8
         ofAnam5OU9fbng8THzQyMz/p/Zhl9dAHY6xcQVUvf/0CNJwjzd+92YrbiN1gE9CxiaYW
         TGRAgH4w0kKxhJnrcl5Q7F0nd++sD14CKCTDclQY2HtXO8p81i77X/PxsHhYjvEDz91k
         DZVg==
X-Gm-Message-State: AOJu0YwLkGgr9ARyMV4ObQ6OGovspFhUJnnIv58Kh6z+Fb6TA6bFCy2I
	F/z9FCHM3YSUThDRzLEM//TiscCUZUj1Tw==
X-Google-Smtp-Source: AGHT+IH5vurx8p7bWFO45XGaaJms9rqDfrneohtT4L7xQU+8npR3XxsnunrAzVyVIbOVjPlzKUXlpQ==
X-Received: by 2002:a2e:9ec1:0:b0:2c9:c05b:9870 with SMTP id h1-20020a2e9ec1000000b002c9c05b9870mr1096802ljk.23.1701463698941;
        Fri, 01 Dec 2023 12:48:18 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v5 3/7] xen/asm-generic: introduce stub header numa.h
Date: Fri,  1 Dec 2023 22:48:06 +0200
Message-ID: <d6dfb3f110376026e089ddf9eb850307aeed37e8.1701453087.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1701453087.git.oleksii.kurochko@gmail.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

<asm/numa.h> is common through some archs so it is moved
to asm-generic.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V5:
  - Added Acked-by: Jan Beulich <jbeulich@suse.com>
  - Updated the comment around first_valid_mfn. ( Arm -> GENERIC )
  - Added Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V4:
 - Updated guards name: *ARCH_GENERIC* -> *ASM_GENERIC*.
 - Moved inclusion of xen/mm-frame.h under "#ifndef CONFIG_NUMA".
 - Added Reviewed-by: Michal Orzel <michal.orzel@amd.com>.
---
Changes in V3:
 - Remove old header inclusion in asm-generic numa.h and include
   <xen/mm-frame.h> and <xen/stdint.h>
 - Drop Arm and PPC's numa.h and use asm-generic version instead.
---
Changes in V2:
	- update the commit message.
	- change u8 to uint8_t.
	- add ifnded CONFIG_NUMA.
---
 xen/arch/arm/include/asm/Makefile             |  1 +
 xen/arch/ppc/include/asm/Makefile             |  1 +
 xen/arch/ppc/include/asm/numa.h               | 26 -------------------
 .../asm => include/asm-generic}/numa.h        | 16 +++++++-----
 4 files changed, 12 insertions(+), 32 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/numa.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/numa.h (67%)

diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
index 8221429c2c..0c855a798a 100644
--- a/xen/arch/arm/include/asm/Makefile
+++ b/xen/arch/arm/include/asm/Makefile
@@ -2,6 +2,7 @@
 generic-y += altp2m.h
 generic-y += hardirq.h
 generic-y += iocap.h
+generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index a8e848d4d0..f09c5ea8a1 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -4,6 +4,7 @@ generic-y += div64.h
 generic-y += hardirq.h
 generic-y += hypercall.h
 generic-y += iocap.h
+generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
diff --git a/xen/arch/ppc/include/asm/numa.h b/xen/arch/ppc/include/asm/numa.h
deleted file mode 100644
index 7fdf66c3da..0000000000
--- a/xen/arch/ppc/include/asm/numa.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ASM_PPC_NUMA_H__
-#define __ASM_PPC_NUMA_H__
-
-#include <xen/types.h>
-#include <xen/mm.h>
-
-typedef uint8_t nodeid_t;
-
-/* Fake one node for now. See also node_online_map. */
-#define cpu_to_node(cpu) 0
-#define node_to_cpumask(node)   (cpu_online_map)
-
-/*
- * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
- * is required because the dummy helpers are using it.
- */
-extern mfn_t first_valid_mfn;
-
-/* XXX: implement NUMA support */
-#define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
-#define node_start_pfn(nid) (mfn_x(first_valid_mfn))
-#define __node_distance(a, b) (20)
-
-#define arch_want_default_dmazone() (false)
-
-#endif /* __ASM_PPC_NUMA_H__ */
diff --git a/xen/arch/arm/include/asm/numa.h b/xen/include/asm-generic/numa.h
similarity index 67%
rename from xen/arch/arm/include/asm/numa.h
rename to xen/include/asm-generic/numa.h
index e2bee2bd82..7f95a77e89 100644
--- a/xen/arch/arm/include/asm/numa.h
+++ b/xen/include/asm-generic/numa.h
@@ -1,18 +1,21 @@
-#ifndef __ARCH_ARM_NUMA_H
-#define __ARCH_ARM_NUMA_H
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_GENERIC_NUMA_H
+#define __ASM_GENERIC_NUMA_H
 
-#include <xen/mm.h>
+#include <xen/stdint.h>
 
-typedef u8 nodeid_t;
+typedef uint8_t nodeid_t;
 
 #ifndef CONFIG_NUMA
 
+#include <xen/mm-frame.h>
+
 /* Fake one node for now. See also node_online_map. */
 #define cpu_to_node(cpu) 0
 #define node_to_cpumask(node)   (cpu_online_map)
 
 /*
- * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
+ * TODO: make first_valid_mfn static when NUMA is supported on GENERIC, this
  * is required because the dummy helpers are using it.
  */
 extern mfn_t first_valid_mfn;
@@ -26,7 +29,8 @@ extern mfn_t first_valid_mfn;
 
 #define arch_want_default_dmazone() (false)
 
-#endif /* __ARCH_ARM_NUMA_H */
+#endif /* __ASM_GENERIC_NUMA_H */
+
 /*
  * Local variables:
  * mode: C
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:48:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645737.1007995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AQr-0007EY-LX; Fri, 01 Dec 2023 20:48:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645737.1007995; Fri, 01 Dec 2023 20:48: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 1r9AQr-0007ER-IX; Fri, 01 Dec 2023 20:48:17 +0000
Received: by outflank-mailman (input) for mailman id 645737;
 Fri, 01 Dec 2023 20:48: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=yVFl=HM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1r9AQq-0007Cg-6V
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:48:16 +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 f2db8375-908a-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 21:48:15 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2c9b5c12898so32468871fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 12:48:15 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 i18-20020a2ea372000000b002c6ed7e546esm511142ljn.124.2023.12.01.12.48.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 12:48:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2db8375-908a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701463694; x=1702068494; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=MqJ/uO0Md37RBsPopiP5cQEJm40LrqWs0MJlj9zt0vs=;
        b=BtHFfofFq8MIYvdb1PN1e97mRe20pjM5uw6sFUIFpqsOeCGxW5lGcWqGr1OtG9cGIG
         T/+49nIxe4+q7Hf2v+DImKpA1n8T4d+5EIl35+NbG/SZg5PDaDnalbrlttDLdUHtrX+v
         YW4f6Bc+DigFiMiHyFn4CEgxiPSIkd61H+kRFw/0J6ieWtRA0HUlFHkxuPEZkGblfX+/
         zrSZ2YBeSJtPD5AEFnHxkQ8A3xpglPdTV9hAD6joWUwmbD+F+4zchsBYidxVLb6gTCmt
         2KSKg4xdnSWxPtrvLWdnsIZEERXW551fiBUQo/DD85EkFZSDzcjhlcgNBAPFSZonhH6T
         VEkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701463694; x=1702068494;
        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=MqJ/uO0Md37RBsPopiP5cQEJm40LrqWs0MJlj9zt0vs=;
        b=uwPmRe1n0BMDpPWRtsIpCe6T6sBkdYZ4rPIbaz+WEs54wh7oJvemWcB5oXmQqdX2jD
         ZQKQQ2vfGKB/V92CKSNu0qXpIaAdVJ6ptYL80w8FZwYbpeyVXPxuEoxxr5aeXjN58t6r
         DPEAjlSIkobma5R6tUAhefwprBM05QG/A2em7e4Qvs8IV05rAVQVyRGWrblt7/1CdPUB
         1nVc8PijPKRG8p2+Q5aAChJKOFB7C0dm/HAPgZlYvqaBlb8QkWaU2Rag7cWbc0lZ74vV
         6Vfhzi0WWoDD2osyVbqIhv32S/ElICRmaskIQYJ7mSOJuuiOpysu8+iOw/kYbxOBLxnY
         L64g==
X-Gm-Message-State: AOJu0Yzis1tJsDBgeszrho49SDp5r961QVhzNJYme5U47SBBh/0JH5dr
	xyk9VFt84R5/COvSQ9/3AvphDJdiI8GR7g==
X-Google-Smtp-Source: AGHT+IE73nT7gn6xZH/ptiC3DU6xw9vAmh3fNOX7mVYMrxdIkS67sCmCTNh83eXU0/Vcfd2MIlucMQ==
X-Received: by 2002:a2e:8257:0:b0:2c5:56b:cbd1 with SMTP id j23-20020a2e8257000000b002c5056bcbd1mr1159689ljh.10.1701463693884;
        Fri, 01 Dec 2023 12:48:13 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.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>
Subject: [PATCH v5 0/7] Introduce generic headers
Date: Fri,  1 Dec 2023 22:48:03 +0200
Message-ID: <cover.1701453087.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some headers are common between several architectures, so the current patch series
provide them.

Another one reason to have them as generic is a simplification of adding support
necessary to make a complete Xen build as it was/is being done in the patch series [1]
and [2].

Also, instead of providing generic/stub headers, it was used
"#ifdef CONFIG_* #include <asm/*.h> #endif" instead of providing empty headers.

This patch series is a pre-requisite for "Enable build of full Xen for RISC-V" [3].

[1] https://lore.kernel.org/xen-devel/cover.1694543103.git.sanastasio@raptorengineering.com/
[2] https://lore.kernel.org/xen-devel/cover.1692181079.git.oleksii.kurochko@gmail.com/
[3] https://lore.kernel.org/xen-devel/cover.1700761381.git.oleksii.kurochko@gmail.com/

---
Changes in V5:
 - Update the patch series message as patch related to delay.h was merged.
 - Rebase on top of staging because half of the patches of the patch series were
   merged to staging branch.
 - Add A-by for some of the patches.
 - Add "depends on X86 || Arm" for CONFIG_GRANT_TABLE and CONFIG_MEM_ACCESS to be
   sure it won't be turned on by randconfig in CI.
 - Partly switch Arm and PPC to asm-generic/monitor.h.
 - Some other minor changes
---
Changes in V4:
 - Update the cover letter message
 - Add Reviewed-by/Acked-by for patches:
    [PATCH v3 01/14] xen/asm-generic: introduce stub header paging.h
    [PATCH v3 03/14] xen/asm-generic: introduce generic hypercall.h
    [PATCH v3 04/14] xen/asm-generic: introduce generic header iocap.h
    [PATCH v3 05/14] xen/asm-generic: introduce stub header <asm/random.h>
    [PATCH v3 06/14] xen/asm-generic: introduce generic header percpu.h
    [PATCH v3 07/14] xen/asm-generic: introduce generalized hardirq.h
    [PATCH v3 08/14] xen/asm-generic: introduce generic div64.h header
    [PATCH v3 09/14] xen/asm-generic: introduce generic header altp2m.h
    [PATCH v3 10/14] xen/asm-generic: introduce stub header monitor.h
    [PATCH v3 11/14] xen/asm-generic: introduce stub header numa.h
    [PATCH v3 12/14] xen/asm-generic: introduce stub header softirq.h
 - Fix some code style and minor issues.
 - Use asm-generic version of device.h for Arm and PPC.
---
Changes in V3:
 - Update the commit message of the cover letter.
 - Drop the following patch as it can be arch-specific enough:
   * [PATCH v2 09/15] xen/asm-generic: introduce generic header smp.h
 - Drop correspondent arch specific headers and use asm-generic version of
   a header.
 - Back to the patch series patches:
   * xen: ifdef inclusion of <asm/grant_table.h> in <xen/grant_table.h>
   * xen/asm-generic: ifdef inclusion of <asm/mem_access.h>
---
Changes in V2:
 - Update the commit message of the cover letter.
 - Drop the following patches because they are arch-specific or was sent as a separate patch:
   - xen/asm-generic: introduce stub header event.h
	 - xen/asm-generic: introduce stub header spinlock.h
	 - [PATCH v1 03/29] xen/asm-generic: introduce stub header cpufeature.h
	 - [PATCH v1 07/29] xen/asm-generic: introduce stub header guest_atomics.h
	 - [PATCH v1 10/29] xen/asm-generic: introduce stub header iommu.h
	 - [PATCH v1 12/29] xen/asm-generic: introduce stub header pci.h because separate patch was sent [5]
	 - [PATCH v1 14/29] xen/asm-generic: introduce stub header setup.h
	 - [PATCH v1 15/29] xen/asm-generic: introduce stub header xenoprof.h because of [3].
	 - [PATCH v1 16/29] xen/asm-generic: introduce stub header flushtlb.h
	 - [PATCH v1 22/29] xen/asm-generic: introduce stub header delay.h because of [3]
	 - [PATCH v1 23/29] xen/asm-generic: introduce stub header domain.h
	 - [PATCH v1 24/29] xen/asm-generic: introduce stub header guest_access.h
	 - [PATCH v1 25/29] xen/asm-generic: introduce stub header irq.h ( probably not so generic as I expected, I'll back to it if it will be necessary in the future )
	 - [PATCH v1 28/29] xen/asm-generic: introduce stub header p2m.h ( probably not so generic as I expected, I'll back to it if it will be necessary in the future )
 - For the rest of the patches please look at changes for each patch separately.
---

Oleksii Kurochko (7):
  xen/asm-generic: introduce generic div64.h header
  xen/asm-generic: introduce stub header monitor.h
  xen/asm-generic: introduce stub header numa.h
  xen/asm-generic: introduce stub header softirq.h
  xen: ifdef inclusion of <asm/grant_table.h> in <xen/grant_table.h>
  xen/asm-generic: ifdef inclusion of <asm/mem_access.h>
  xen/asm-generic: introduce generic device.h

 xen/arch/arm/device.c                         |  15 ++-
 xen/arch/arm/domain_build.c                   |   3 +-
 xen/arch/arm/gic-v2.c                         |   4 +-
 xen/arch/arm/gic-v3.c                         |   6 +-
 xen/arch/arm/gic.c                            |   4 +-
 xen/arch/arm/include/asm/Makefile             |   3 +
 xen/arch/arm/include/asm/div64.h              |   8 +-
 xen/arch/arm/include/asm/monitor.h            |  28 +---
 xen/arch/arm/p2m.c                            |   1 +
 xen/arch/arm/traps.c                          |   1 +
 xen/arch/ppc/include/asm/Makefile             |   4 +
 xen/arch/ppc/include/asm/device.h             |  53 --------
 xen/arch/ppc/include/asm/div64.h              |  14 --
 xen/arch/ppc/include/asm/grant_table.h        |   5 -
 xen/arch/ppc/include/asm/mem_access.h         |   5 -
 xen/arch/ppc/include/asm/monitor.h            |  28 +---
 xen/arch/ppc/include/asm/numa.h               |  26 ----
 xen/arch/ppc/include/asm/softirq.h            |   8 --
 xen/arch/x86/include/asm/Makefile             |   1 +
 xen/arch/x86/include/asm/div64.h              |  14 --
 xen/common/Kconfig                            |   3 +-
 .../asm => include/asm-generic}/device.h      | 125 +++++++++++-------
 xen/include/asm-generic/div64.h               |  27 ++++
 xen/include/asm-generic/monitor.h             |  57 ++++++++
 .../asm => include/asm-generic}/numa.h        |  16 ++-
 .../asm => include/asm-generic}/softirq.h     |   7 +-
 xen/include/xen/grant_table.h                 |   3 +
 xen/include/xen/mem_access.h                  |   2 +
 28 files changed, 219 insertions(+), 252 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/device.h
 delete mode 100644 xen/arch/ppc/include/asm/div64.h
 delete mode 100644 xen/arch/ppc/include/asm/grant_table.h
 delete mode 100644 xen/arch/ppc/include/asm/mem_access.h
 delete mode 100644 xen/arch/ppc/include/asm/numa.h
 delete mode 100644 xen/arch/ppc/include/asm/softirq.h
 delete mode 100644 xen/arch/x86/include/asm/div64.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/device.h (79%)
 create mode 100644 xen/include/asm-generic/div64.h
 create mode 100644 xen/include/asm-generic/monitor.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/numa.h (67%)
 rename xen/{arch/arm/include/asm => include/asm-generic}/softirq.h (56%)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:48:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645738.1008001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AQr-0007HO-Tb; Fri, 01 Dec 2023 20:48:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645738.1008001; Fri, 01 Dec 2023 20:48: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 1r9AQr-0007Gy-Q1; Fri, 01 Dec 2023 20:48:17 +0000
Received: by outflank-mailman (input) for mailman id 645738;
 Fri, 01 Dec 2023 20:48: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=yVFl=HM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1r9AQq-0007Cg-Tu
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:48:16 +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 f3ad980a-908a-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 21:48:16 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2c9b88cf626so35147531fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 12:48:16 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 i18-20020a2ea372000000b002c6ed7e546esm511142ljn.124.2023.12.01.12.48.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 12:48:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3ad980a-908a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701463696; x=1702068496; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kntzdviDOrMkN3wCkTohVu+TWP0dwfqrKsJ3rPfsygc=;
        b=dNAa8xN0gEsAJrzf1rOkYz12bmYnnc3It8BzpMXsjCdaPPuYhyM7jr7anzmIGPUUUq
         HlJhlo3czhS2aOXn++vGW6VOeDzaAnyliNCQSxB0D/IjdWNs5YSumktuuW7H1lR/Pc9U
         owtvrXuNXApgiSZeBob9JDW1hLay8xAswZROwhMHszOKvBt7SxDb8D0WKVALG0PFQ2wt
         m1l6nr51lEwBWhpLFmkVeZ1w+r5iIroo0BbRSLqs9LoFeupw44VCmrrgjCxTBvet/LqF
         AcRR/HjulUV38teeiBfe/RPCPwFU/9iQoLHA3ORmJcSTVkgafnwFohY5MP5hBlwFzePM
         qy/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701463696; x=1702068496;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=kntzdviDOrMkN3wCkTohVu+TWP0dwfqrKsJ3rPfsygc=;
        b=iiMAfpMqmnL7yMxMGmxDlsxyZroly4U4PMMGth2ZJwskKXPfCfp70QjYfaJLOogryb
         quaTR0FXKmVuT3nJQZZ+dm8qzvCTc779beuuw9hr2vczia460Ke4nrpeQFpemi3V+w5/
         LUONiwFpMO0V5zX1XAGv4ODVNQoPxIPFCWr/ivaauK6PNHgkahtFARHTe0Z1YMy3o0T6
         MB9fJJX9J/oLRX1iJEoHgEzyXmmfov2N2qFivXmnFPqErt2BbI7f7+DF2xmNyvc1Jrmr
         1o0KjjrziLNfgxlwQHk9waLUe7NxKgFLYEvjip2BXHC3EiCezDq/tpRnhi8eaRgLMM71
         ZSaw==
X-Gm-Message-State: AOJu0YzGfbqL9GeXx8+8XKW5HU6vHKaNf+UtD6R0AtNPho3RmJ5/WaUl
	tpfQQLVYS/QhrJsWySeYT0+T73YdG/ju8Q==
X-Google-Smtp-Source: AGHT+IEK4j4Ndtrh17dUAZYcYk2MnIRP2Fl/vPdXGIk3NqXEZwSdCDGHgiIEbScdkHP+dYCnvK4m+g==
X-Received: by 2002:a2e:3310:0:b0:2c9:abe5:67df with SMTP id d16-20020a2e3310000000b002c9abe567dfmr1127135ljc.48.1701463695445;
        Fri, 01 Dec 2023 12:48:15 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v5 1/7] xen/asm-generic: introduce generic div64.h header
Date: Fri,  1 Dec 2023 22:48:04 +0200
Message-ID: <32c29653e071f134bc3eb0c707ee6e2f947014ad.1701453087.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1701453087.git.oleksii.kurochko@gmail.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

All archs have the do_div implementation for BITS_PER_LONG == 64
so do_div64.h is moved to asm-generic.

x86 and PPC were switched to asm-generic version of div64.h.
Arm was switched partly because Arm has different implementation
for 32-bits.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V5:
  - add Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
  - Update the commit message
  - Partly switch Arm's div64.h to asm-generic version. Arm has different
    implementation for 32-bits so only 64-bit version was switched.
---
Changes in V4:
 - Added Acked-by: Jan Beulich <jbeulich@suse.com>.
 - include <asm-generic/div64.h> in Arm's div64.h for 64-bit case.
---
Changes in V3:
 - Drop x86 and PPC's div64.h.
 - Update the commit message.
---
Changes in V2:
	- rename base to divisor
	- add "#if BITS_PER_LONG == 64"
	- fix code style
---
 xen/arch/arm/include/asm/div64.h  |  8 +-------
 xen/arch/ppc/include/asm/Makefile |  1 +
 xen/arch/ppc/include/asm/div64.h  | 14 --------------
 xen/arch/x86/include/asm/Makefile |  1 +
 xen/arch/x86/include/asm/div64.h  | 14 --------------
 xen/include/asm-generic/div64.h   | 27 +++++++++++++++++++++++++++
 6 files changed, 30 insertions(+), 35 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/div64.h
 delete mode 100644 xen/arch/x86/include/asm/div64.h
 create mode 100644 xen/include/asm-generic/div64.h

diff --git a/xen/arch/arm/include/asm/div64.h b/xen/arch/arm/include/asm/div64.h
index fc667a80f9..0459d5cc01 100644
--- a/xen/arch/arm/include/asm/div64.h
+++ b/xen/arch/arm/include/asm/div64.h
@@ -24,13 +24,7 @@
 
 #if BITS_PER_LONG == 64
 
-# define do_div(n,base) ({                                      \
-        uint32_t __base = (base);                               \
-        uint32_t __rem;                                         \
-        __rem = ((uint64_t)(n)) % __base;                       \
-        (n) = ((uint64_t)(n)) / __base;                         \
-        __rem;                                                  \
- })
+#include <asm-generic/div64.h>
 
 #elif BITS_PER_LONG == 32
 
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index 2da995bb2f..a8e848d4d0 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 generic-y += altp2m.h
+generic-y += div64.h
 generic-y += hardirq.h
 generic-y += hypercall.h
 generic-y += iocap.h
diff --git a/xen/arch/ppc/include/asm/div64.h b/xen/arch/ppc/include/asm/div64.h
deleted file mode 100644
index d213e50585..0000000000
--- a/xen/arch/ppc/include/asm/div64.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_PPC_DIV64_H__
-#define __ASM_PPC_DIV64_H__
-
-#include <xen/types.h>
-
-#define do_div(n, base) ({                       \
-    uint32_t base_ = (base);                     \
-    uint32_t rem_ = (uint64_t)(n) % base_;       \
-    (n) = (uint64_t)(n) / base_;                 \
-    rem_;                                        \
-})
-
-#endif /* __ASM_PPC_DIV64_H__ */
diff --git a/xen/arch/x86/include/asm/Makefile b/xen/arch/x86/include/asm/Makefile
index 874429ed30..daab34ff0a 100644
--- a/xen/arch/x86/include/asm/Makefile
+++ b/xen/arch/x86/include/asm/Makefile
@@ -1,2 +1,3 @@
 # SPDX-License-Identifier: GPL-2.0-only
+generic-y += div64.h
 generic-y += percpu.h
diff --git a/xen/arch/x86/include/asm/div64.h b/xen/arch/x86/include/asm/div64.h
deleted file mode 100644
index dd49f64a3b..0000000000
--- a/xen/arch/x86/include/asm/div64.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __X86_DIV64
-#define __X86_DIV64
-
-#include <xen/types.h>
-
-#define do_div(n,base) ({                       \
-    uint32_t __base = (base);                   \
-    uint32_t __rem;                             \
-    __rem = ((uint64_t)(n)) % __base;           \
-    (n) = ((uint64_t)(n)) / __base;             \
-    __rem;                                      \
-})
-
-#endif
diff --git a/xen/include/asm-generic/div64.h b/xen/include/asm-generic/div64.h
new file mode 100644
index 0000000000..068d8a11ad
--- /dev/null
+++ b/xen/include/asm-generic/div64.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_GENERIC_DIV64
+#define __ASM_GENERIC_DIV64
+
+#include <xen/types.h>
+
+#if BITS_PER_LONG == 64
+
+#define do_div(n, divisor) ({                   \
+    uint32_t divisor_ = (divisor);              \
+    uint32_t rem_ = (uint64_t)(n) % divisor_;   \
+    (n) = (uint64_t)(n) / divisor_;             \
+    rem_;                                       \
+})
+
+#endif /* BITS_PER_LONG */
+
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:48:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645739.1008016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AQv-0007jz-4M; Fri, 01 Dec 2023 20:48:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645739.1008016; Fri, 01 Dec 2023 20:48:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AQv-0007jr-1B; Fri, 01 Dec 2023 20:48:21 +0000
Received: by outflank-mailman (input) for mailman id 645739;
 Fri, 01 Dec 2023 20:48: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=yVFl=HM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1r9AQt-0007Cg-95
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:48:19 +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 f4fa5bb2-908a-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 21:48:18 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-50bc811d12fso3606748e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 12:48:18 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 i18-20020a2ea372000000b002c6ed7e546esm511142ljn.124.2023.12.01.12.48.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 12:48:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4fa5bb2-908a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701463698; x=1702068498; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U/Fa3V+suVuY5Wl4cnMTSRfOG8VUNxvSJcflHXogt7E=;
        b=WPcrJlWDVWLfTosghFwDp3uH2wzUSNYO2ieyUJus8OX8vYMPvJPDOJVoZOfWUk4sMB
         Ou6Dc7Znj0tdHKIks8J9HdC8sQTrqNOxbF7mE/ZcR9puwqnOY77RkypcoE3RLLSJm+9o
         XpJpUehMH9rV5pHxC+zyeEcRJWk/PfELOXy2LKMgRYl78FRqf+s6vnYuao5wCMy+Sw/K
         7NN6eK5IdEzNslDaJL+nVJbFzMQRtTBTLhuNh+7n2xZ6F4dlFCtmS11oz9nNpv/NQZyW
         q+RYwfB6KSdibz0qNZKmkNV/J7l2Goty9Fj4v+LEYp5hVQtlLhpKv6B1yn+lqRJPG62m
         RPZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701463698; x=1702068498;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=U/Fa3V+suVuY5Wl4cnMTSRfOG8VUNxvSJcflHXogt7E=;
        b=gbwkXHBmBEFeePo98uBr/Dt1EBaZMbVcuts8Bac6wOiCAq2epveCyM/kBl6BjwJsU6
         fg0LYMR+GxMrN4Ac01BJs24nx3hNDCguc6fByCLiG8o9bbljNiAEnJxsCvqzMCwmvWIc
         skXkfrJdzX8Jmrozucg825FDFo0sGBzkYdueaAQ15iHU6Yss7TQ5dwe37ERk1V1yGJRo
         IAphYxWPuWmyVhPnog3IV9O4sBXelW08dt4/fXs/L+ozkPoyobCHamturHXrLg2z1D43
         67TKUDJmhPvWFX2dRxQEOI64K6/4JjWpJdCrrl9OnTJiSDPpcNbVhOsdXZzsQww6e/Dn
         9KdA==
X-Gm-Message-State: AOJu0Yy+t5g6HEMEDm5KE4fqLNvud13pt4Htg14sRoYvdqakl8/bqU1H
	FB8hYDR7bwY9V2cKajOMugxCMFfc5keOcw==
X-Google-Smtp-Source: AGHT+IFWs2H8CtxOHc9wOx2zpzoQ08DIixhbTwRslXs2DSEgkFsBo4hLz8/rpY8QZwzf66GVzWMLww==
X-Received: by 2002:a2e:8017:0:b0:2c9:dae6:43f4 with SMTP id j23-20020a2e8017000000b002c9dae643f4mr633507ljg.118.1701463697700;
        Fri, 01 Dec 2023 12:48:17 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v5 2/7] xen/asm-generic: introduce stub header monitor.h
Date: Fri,  1 Dec 2023 22:48:05 +0200
Message-ID: <e968b9763890ca784b8da0a83f65c43470748e9b.1701453087.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1701453087.git.oleksii.kurochko@gmail.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The header is shared between several archs so it is
moved to asm-generic.

Switch partly Arm and PPC to asm-generic/monitor.h and only
arch_monitor_get_capabilities() left in arch-specific/monitor.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V5:
  - Switched partly Arm and PPC to asm-generic monitor.h only
    arch_monitor_get_capabilities() left in arch-specific/monitor.h.
  - Updated the commit message.
---
Changes in V4:
 - Removed the double blank line.
 - Added Acked-by: Jan Beulich <jbeulich@suse.com>.
 - Update the commit message
---
Changes in V3:
 - Use forward-declaration of struct domain instead of " #include <xen/sched.h> ".
 - Add ' include <xen/errno.h> '
 - Drop PPC's monitor.h.
---
Changes in V2:
	- remove inclusion of "+#include <public/domctl.h>"
	- add "struct xen_domctl_monitor_op;"
	- remove one of SPDX tags.
---
 xen/arch/arm/include/asm/monitor.h | 28 +--------------
 xen/arch/ppc/include/asm/monitor.h | 28 +--------------
 xen/include/asm-generic/monitor.h  | 57 ++++++++++++++++++++++++++++++
 3 files changed, 59 insertions(+), 54 deletions(-)
 create mode 100644 xen/include/asm-generic/monitor.h

diff --git a/xen/arch/arm/include/asm/monitor.h b/xen/arch/arm/include/asm/monitor.h
index 7567be66bd..045217c310 100644
--- a/xen/arch/arm/include/asm/monitor.h
+++ b/xen/arch/arm/include/asm/monitor.h
@@ -25,33 +25,7 @@
 #include <xen/sched.h>
 #include <public/domctl.h>
 
-static inline
-void arch_monitor_allow_userspace(struct domain *d, bool allow_userspace)
-{
-}
-
-static inline
-int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
-{
-    /* No arch-specific monitor ops on ARM. */
-    return -EOPNOTSUPP;
-}
-
-int arch_monitor_domctl_event(struct domain *d,
-                              struct xen_domctl_monitor_op *mop);
-
-static inline
-int arch_monitor_init_domain(struct domain *d)
-{
-    /* No arch-specific domain initialization on ARM. */
-    return 0;
-}
-
-static inline
-void arch_monitor_cleanup_domain(struct domain *d)
-{
-    /* No arch-specific domain cleanup on ARM. */
-}
+#include <asm-generic/monitor.h>
 
 static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 {
diff --git a/xen/arch/ppc/include/asm/monitor.h b/xen/arch/ppc/include/asm/monitor.h
index e5b0282bf1..89000dacc6 100644
--- a/xen/arch/ppc/include/asm/monitor.h
+++ b/xen/arch/ppc/include/asm/monitor.h
@@ -6,33 +6,7 @@
 #include <public/domctl.h>
 #include <xen/errno.h>
 
-static inline
-void arch_monitor_allow_userspace(struct domain *d, bool allow_userspace)
-{
-}
-
-static inline
-int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
-{
-    /* No arch-specific monitor ops on PPC. */
-    return -EOPNOTSUPP;
-}
-
-int arch_monitor_domctl_event(struct domain *d,
-                              struct xen_domctl_monitor_op *mop);
-
-static inline
-int arch_monitor_init_domain(struct domain *d)
-{
-    /* No arch-specific domain initialization on PPC. */
-    return 0;
-}
-
-static inline
-void arch_monitor_cleanup_domain(struct domain *d)
-{
-    /* No arch-specific domain cleanup on PPC. */
-}
+#include <asm-generic/monitor.h>
 
 static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 {
diff --git a/xen/include/asm-generic/monitor.h b/xen/include/asm-generic/monitor.h
new file mode 100644
index 0000000000..74e4870cd7
--- /dev/null
+++ b/xen/include/asm-generic/monitor.h
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * include/asm-generic/monitor.h
+ *
+ * Arch-specific monitor_op domctl handler.
+ *
+ * Copyright (c) 2015 Tamas K Lengyel (tamas@tklengyel.com)
+ * Copyright (c) 2016, Bitdefender S.R.L.
+ *
+ */
+
+#ifndef __ASM_GENERIC_MONITOR_H__
+#define __ASM_GENERIC_MONITOR_H__
+
+#include <xen/errno.h>
+
+struct domain;
+struct xen_domctl_monitor_op;
+
+static inline
+void arch_monitor_allow_userspace(struct domain *d, bool allow_userspace)
+{
+}
+
+static inline
+int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
+{
+    /* No arch-specific monitor ops on GENERIC. */
+    return -EOPNOTSUPP;
+}
+
+int arch_monitor_domctl_event(struct domain *d,
+                              struct xen_domctl_monitor_op *mop);
+
+static inline
+int arch_monitor_init_domain(struct domain *d)
+{
+    /* No arch-specific domain initialization on GENERIC. */
+    return 0;
+}
+
+static inline
+void arch_monitor_cleanup_domain(struct domain *d)
+{
+    /* No arch-specific domain cleanup on GENERIC. */
+}
+
+#endif /* __ASM_GENERIC_MONITOR_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: BSD
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:48:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645741.1008036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AQx-0008Hp-Ri; Fri, 01 Dec 2023 20:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645741.1008036; Fri, 01 Dec 2023 20: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 1r9AQx-0008Hg-NH; Fri, 01 Dec 2023 20:48:23 +0000
Received: by outflank-mailman (input) for mailman id 645741;
 Fri, 01 Dec 2023 20:48:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yVFl=HM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1r9AQx-0007Cg-0t
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:48:23 +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 f7453d72-908a-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 21:48:22 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-50aab20e828so3568801e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 12:48:22 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 i18-20020a2ea372000000b002c6ed7e546esm511142ljn.124.2023.12.01.12.48.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 12:48:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7453d72-908a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701463702; x=1702068502; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=98dqye18fLwa72WEQaaSfMetNkq8ERwjcy/m8vcBQK8=;
        b=DO5OIK27pOj1REHF6laIFaDmM/ujXi67SmLwc5OuV+MTgGR6OHTuiIxSe1I6KQ97v5
         YOqOSbZpe/JAwurvB8GGKGeK7SJAn/4sWfLl72GymRh0TTO0XqI1kgol0u+MU2Q3Dy1O
         aNbOTXfRqo8UwXVwdTFBRe3QyfTUv7aNGVruode9I6dXDua4mmcn1kCrupJXAAFf9Y30
         NQ1oBqYICtuSnFgQPi4tvycee3C3jCdSWc6VewMJxwOGsdbk8UEZ82vB2JP/clNxiF0H
         hzeqSVumVQByDW7XMkdwpwvSM6TrnikuTr41FViObdVXsokR8ksoOqLAEHCTVPc0BlCp
         313w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701463702; x=1702068502;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=98dqye18fLwa72WEQaaSfMetNkq8ERwjcy/m8vcBQK8=;
        b=IyNJs3k6ZR8Cef/kFK8Aq/vkEIMNxD8Q1RInv0GwiTRfW10IUBLM4wg6XfGOJXKRAy
         KAx/rpbA9xkIUrd2uwYk4QSZXJ+xOQ6w2Ibny1bR717o52EcmLq24zJ1yf3JwlU7psSc
         f8Nn3bMQ83tEjcsDWPLZLPVq4MiNtTozoxhbyZm5DT5tInDqX1qOneY7FhPR4wA9npSA
         QziHlkZ54Noh36vRscEdGBxSiOFyerq+4UHnLb4jf63c5D4LwKVTms2aWb8Ps0WC2JO8
         c2RCKkjWLal2ygUNYkZxCC/k7Wg4LvQX7wR2/8UxiAoqLmnjsydRFd5eavJy33YXh7As
         +H6w==
X-Gm-Message-State: AOJu0Yxke6RDXBC795/kHiHCQRRYuRmIlAl6/ASSxRw+G2+osTviilNV
	NKKyP7jodsBO4hr6ma4BbNOkdDV+6hriGQ==
X-Google-Smtp-Source: AGHT+IEKoeZjYR6H3G2x7WPpojiIkwmASYCXEv2VAgpB6L1AmXxvi4ZmlpfB0myoSwll+u63sIyAHQ==
X-Received: by 2002:a2e:9919:0:b0:2c9:d874:20ce with SMTP id v25-20020a2e9919000000b002c9d87420cemr1409509lji.88.1701463701770;
        Fri, 01 Dec 2023 12:48:21 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in <xen/grant_table.h>
Date: Fri,  1 Dec 2023 22:48:08 +0200
Message-ID: <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1701453087.git.oleksii.kurochko@gmail.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Ifdef-ing inclusion of <asm/grant_table.h> allows to avoid
generation of empty <asm/grant_table.h> for cases when
CONFIG_GRANT_TABLE is not enabled.

The following changes were done for Arm:
<asm/grant_table.h> should be included directly because it contains
gnttab_dom0_frames() macros which is unique for Arm and is used in
arch/arm/domain_build.c.
<asm/grant_table.h> is #ifdef-ed with CONFIG_GRANT_TABLE in
<xen/grant_table.h> so in case of !CONFIG_GRANT_TABLE gnttab_dom0_frames
won't be available for use in arch/arm/domain_build.c.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V5:
 - Added dependencies for "Config GRANT_TABLE" to be sure that randconfig will not
   turn on the config.
---
Changes in V4:
 - Nothing changed. Only rebase.
---
Changes in V3:
 - Remove unnecessary comment.
---
 xen/arch/arm/domain_build.c            | 1 +
 xen/arch/ppc/include/asm/grant_table.h | 5 -----
 xen/common/Kconfig                     | 1 +
 xen/include/xen/grant_table.h          | 3 +++
 4 files changed, 5 insertions(+), 5 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/grant_table.h

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index df66fb88d8..28df515a3d 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -36,6 +36,7 @@
 
 #include <xen/irq.h>
 #include <xen/grant_table.h>
+#include <asm/grant_table.h>
 #include <xen/serial.h>
 
 #define STATIC_EVTCHN_NODE_SIZE_CELLS 2
diff --git a/xen/arch/ppc/include/asm/grant_table.h b/xen/arch/ppc/include/asm/grant_table.h
deleted file mode 100644
index d0ff58dd3d..0000000000
--- a/xen/arch/ppc/include/asm/grant_table.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_PPC_GRANT_TABLE_H__
-#define __ASM_PPC_GRANT_TABLE_H__
-
-#endif /* __ASM_PPC_GRANT_TABLE_H__ */
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 310ad4229c..13e26ca06f 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -15,6 +15,7 @@ config CORE_PARKING
 config GRANT_TABLE
 	bool "Grant table support" if EXPERT
 	default y
+	depends on ARM || X86
 	---help---
 	  Grant table provides a generic mechanism to memory sharing
 	  between domains. This shared memory interface underpins the
diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
index 85fe6b7b5e..50edfecfb6 100644
--- a/xen/include/xen/grant_table.h
+++ b/xen/include/xen/grant_table.h
@@ -26,7 +26,10 @@
 #include <xen/mm-frame.h>
 #include <xen/rwlock.h>
 #include <public/grant_table.h>
+
+#ifdef CONFIG_GRANT_TABLE
 #include <asm/grant_table.h>
+#endif
 
 struct grant_table;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:48:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:48:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645742.1008046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AR0-00009X-3u; Fri, 01 Dec 2023 20:48:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645742.1008046; Fri, 01 Dec 2023 20:48: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 1r9AR0-00009K-0G; Fri, 01 Dec 2023 20:48:26 +0000
Received: by outflank-mailman (input) for mailman id 645742;
 Fri, 01 Dec 2023 20:48:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yVFl=HM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1r9AQy-0008SX-MU
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:48:24 +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 f6dc7b51-908a-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 21:48:22 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2c9c149848fso33125571fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 12:48:21 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 i18-20020a2ea372000000b002c6ed7e546esm511142ljn.124.2023.12.01.12.48.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 12:48:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6dc7b51-908a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701463700; x=1702068500; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8K0BYHGWC+ogJ6gBKSwmGTMdkzCbZuHLzNWf4Sj6tTQ=;
        b=Fp9CMOCPpf5JGCK4HACnzwkanlzaWMhDJiNi+mGQzTt/UGqRU9Q2VjI+yHfaH5vU6N
         39M4W1q63uyZ6qxI8tfV7crhn2Y9Z+Qmea3qFEbKbSn5fX20ZU4iW/l4Lvobz4mkBCcc
         WxU8J1ZXmn/xBT1i6EDo/o1BebstyICubvql6YU5YSyGmR56q1psmrotfSjgNv7rnVO8
         3oMFm0L35leNXilWOeAYHdYkraf8MbdMMZKOT2O5Nf+uvloynU/s59KpPvgEJPoP8DKp
         zhDZxKUF4hk1wzx3UtcFjfCnjxNO+CyDPdD+mSI5s5Tfd/8iT9TjdeelQxBXi3HP6XCG
         LN/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701463700; x=1702068500;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=8K0BYHGWC+ogJ6gBKSwmGTMdkzCbZuHLzNWf4Sj6tTQ=;
        b=kLqPu8grBR4BoYpD5KH8qZlxN2VfxwNpxJCUH1MzCN9ZguKFu71l1ok52IlydCEgM3
         1xvqlFuquh4YWu2PlTNYAOpNRgmQ8A8PRQocRDTr0UO/5T7ZwELgxSWoZ5gUaJTlT34R
         WTroNkmht3vH5GXoa4pCTylmotSLDkerLr2JiJ8qheYjLrLA60PCPJNrea924k05bRK1
         8sZwbx0Uv1esm2wB7Iw+MGpBWzOAkOTVznebK5fQ8aRPW3nq4xs/9tz1TmgkCDRFuyS9
         s67DyjqElqmmH3m6dQJH03/YopuUSJ8D7cuPOeYnS/peuarzwInUQls0CrzUtED48Riq
         6NwA==
X-Gm-Message-State: AOJu0YxQleqQh+6DXqT/Aqy3D4c/6BrvCbSqF7WuJzM8gkYz0C78+GrW
	Mue2aSruukIKRPpV9ljq1EF+ojzHGInRoA==
X-Google-Smtp-Source: AGHT+IHwoqKK/fylcEtCmUl06UVfE5szR9Dr+PSwdTucXZKF9B4qEHFRgrM3cdOmVKbTGjFnDwKmzg==
X-Received: by 2002:a2e:9286:0:b0:2c9:c43e:8ac2 with SMTP id d6-20020a2e9286000000b002c9c43e8ac2mr1054667ljh.12.1701463700396;
        Fri, 01 Dec 2023 12:48:20 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v5 4/7] xen/asm-generic: introduce stub header softirq.h
Date: Fri,  1 Dec 2023 22:48:07 +0200
Message-ID: <56ce43435f5f9be025d74503f173ef04176f4882.1701453087.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1701453087.git.oleksii.kurochko@gmail.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

<asm/softirq.h> is common between Arm, PPC and RISC-V so it is
moved to asm-generic.

Drop Arm and PPC's softirq.h and use asm-generic version instead.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V5:
 - Strayed "Added" in commit message
 - Added Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V4:
 - Added Reviewed-by: Michal Orzel <michal.orzel@amd.com>
 - Added Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V3:
 - Drop Arm and PPC's softirq.h
 - Update the commit message.
---
Changes in V2:
    - update the commit message.
---
 xen/arch/arm/include/asm/Makefile                         | 1 +
 xen/arch/ppc/include/asm/Makefile                         | 1 +
 xen/arch/ppc/include/asm/softirq.h                        | 8 --------
 .../arm/include/asm => include/asm-generic}/softirq.h     | 7 ++++---
 4 files changed, 6 insertions(+), 11 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/softirq.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/softirq.h (56%)

diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
index 0c855a798a..a28cc5d1b1 100644
--- a/xen/arch/arm/include/asm/Makefile
+++ b/xen/arch/arm/include/asm/Makefile
@@ -6,4 +6,5 @@ generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
+generic-y += softirq.h
 generic-y += vm_event.h
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index f09c5ea8a1..efd72862c8 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -8,4 +8,5 @@ generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
+generic-y += softirq.h
 generic-y += vm_event.h
diff --git a/xen/arch/ppc/include/asm/softirq.h b/xen/arch/ppc/include/asm/softirq.h
deleted file mode 100644
index a0b28a5e51..0000000000
--- a/xen/arch/ppc/include/asm/softirq.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __ASM_PPC_SOFTIRQ_H__
-#define __ASM_PPC_SOFTIRQ_H__
-
-#define NR_ARCH_SOFTIRQS 0
-
-#define arch_skip_send_event_check(cpu) 0
-
-#endif /* __ASM_PPC_SOFTIRQ_H__ */
diff --git a/xen/arch/arm/include/asm/softirq.h b/xen/include/asm-generic/softirq.h
similarity index 56%
rename from xen/arch/arm/include/asm/softirq.h
rename to xen/include/asm-generic/softirq.h
index 976e0ebd70..83be855e50 100644
--- a/xen/arch/arm/include/asm/softirq.h
+++ b/xen/include/asm-generic/softirq.h
@@ -1,11 +1,12 @@
-#ifndef __ASM_SOFTIRQ_H__
-#define __ASM_SOFTIRQ_H__
+/* SPDX-License-Identifier: GPL-2.0-only */
+#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_SOFTIRQ_H__ */
+#endif /* __ASM_GENERIC_SOFTIRQ_H__ */
 /*
  * Local variables:
  * mode: C
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:48:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:48:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645743.1008056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AR1-0000RU-Er; Fri, 01 Dec 2023 20:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645743.1008056; Fri, 01 Dec 2023 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 1r9AR1-0000Qm-9H; Fri, 01 Dec 2023 20:48:27 +0000
Received: by outflank-mailman (input) for mailman id 645743;
 Fri, 01 Dec 2023 20:48: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=yVFl=HM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1r9AQz-0008SX-Dg
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:48:25 +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 f82634ef-908a-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 21:48:23 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2c9d44b2919so19082571fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 12:48:23 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 i18-20020a2ea372000000b002c6ed7e546esm511142ljn.124.2023.12.01.12.48.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 12:48:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f82634ef-908a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701463703; x=1702068503; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gkZXGmuGzsXLXktMQsuaQS4qtKJYPDwgQkxhzE80/l8=;
        b=mKFKbijvXUhyabQyNf+yjy0Wd/Xx8mkUj1vaeJUs52Y75Zn/GzkP6v1tBekGyXyNc3
         imxXfFqH9umTySaw1N1n91lNtatUSKEVW/nXTGUJ7QHXK4sJHUxFF9f7CfG7hxZJ0eE+
         UyGYLNKzfyVBZL3gw23kmd1gBWrCjcyiVfm2GClMbyITp8nV+k6R2wDy+szkH2RhYsM7
         1DVvVQvq1UXgM0AAcIULMgKVUrCLTLU8ayfZxURCUGcEiFEen7r7ctekjmQHoj8hbGzb
         ReS0aNnFElzrIo+thYlviCKjB6PpsBma4Lf1OnGt7lvBDUgU1NW+bI0ZOiQ/jy/AwR0Z
         2Bgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701463703; x=1702068503;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=gkZXGmuGzsXLXktMQsuaQS4qtKJYPDwgQkxhzE80/l8=;
        b=st9+9QmnKVtj54Q6SCTW4asX66wijxsYY2AtOTZoV49b+UvEBkjnA3qcLkN8ecL0ss
         ZGjAlPoVprzpz+fy6tVODErdnGn6J7+VKzbIi58hOk/HBACswXAoMISHfnjjVsoHw3ky
         2W9Ri1zzHKmPZdu1/771MqZL8K36Tq0t47E2CUbxvQ44yvLimhOuplOK6ZHh5UV61jsJ
         xA8zIswIKZhm9N+yAjLCZ1uj4KrbkXjDevQv5goo/olhz+9C7fsaXGm6gqM3Mmpn9abb
         rL/nfBbK0d4VsD0RX8qM1GLABEET3Dcu8/waKO6CzNb2lgsY3NPbeha5iYiKdk0FKK1q
         S8MA==
X-Gm-Message-State: AOJu0YwDkBG604tfrK7vKJxcLWRZuWYBmHO0ustQKHfiscuQpmGOVqNf
	tIIINbPHAOjemtnOMM/QnLgJZWnjrWIAOw==
X-Google-Smtp-Source: AGHT+IHSzvXp41ecTtLxNJopxQEGJM7JxaTiAcad3Y/MtaYOacGIrtstdEpEJMEV1PeJi5oVxmEdNg==
X-Received: by 2002:a05:651c:2124:b0:2c9:cd5c:16a8 with SMTP id a36-20020a05651c212400b002c9cd5c16a8mr1450876ljq.24.1701463703143;
        Fri, 01 Dec 2023 12:48:23 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v5 6/7] xen/asm-generic: ifdef inclusion of <asm/mem_access.h>
Date: Fri,  1 Dec 2023 22:48:09 +0200
Message-ID: <d42a34866edc70a12736b5c6976aa1b44b4ebd8a.1701453087.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1701453087.git.oleksii.kurochko@gmail.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

ifdefing inclusion of <asm/mem_access.h> in <xen/mem_access.h>
allows to avoid generation of empty <asm/mem_access.h> header
for the case when !CONFIG_MEM_ACCESS.

For Arm it was explicitly added inclusion of <asm/mem_access.h> for p2m.c
and traps.c because they require some functions from <asm/mem_access.h> which
aren't available in case of !CONFIG_MEM_ACCESS.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V5:
 - Added dependencies for "Config MEM_ACCESS" to be sure that randconfig will not
   turn on the config.
---
Changes in V4:
 - Nothing changed. Only rebase.
---
Changes in V3:
 - Remove unnecessary comment.
---
 xen/arch/arm/p2m.c                    | 1 +
 xen/arch/arm/traps.c                  | 1 +
 xen/arch/ppc/include/asm/mem_access.h | 5 -----
 xen/common/Kconfig                    | 2 +-
 xen/include/xen/mem_access.h          | 2 ++
 5 files changed, 5 insertions(+), 6 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/mem_access.h

diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index b991b76ce4..2465c266e9 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -7,6 +7,7 @@
 #include <asm/event.h>
 #include <asm/flushtlb.h>
 #include <asm/guest_walk.h>
+#include <asm/mem_access.h>
 #include <asm/page.h>
 #include <asm/traps.h>
 
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 3784e8276e..37a457f4b1 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -35,6 +35,7 @@
 #include <asm/cpufeature.h>
 #include <asm/event.h>
 #include <asm/hsr.h>
+#include <asm/mem_access.h>
 #include <asm/mmio.h>
 #include <asm/regs.h>
 #include <asm/smccc.h>
diff --git a/xen/arch/ppc/include/asm/mem_access.h b/xen/arch/ppc/include/asm/mem_access.h
deleted file mode 100644
index e7986dfdbd..0000000000
--- a/xen/arch/ppc/include/asm/mem_access.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_PPC_MEM_ACCESS_H__
-#define __ASM_PPC_MEM_ACCESS_H__
-
-#endif /* __ASM_PPC_MEM_ACCESS_H__ */
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 13e26ca06f..d84e395a0b 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -87,7 +87,7 @@ config MEM_ACCESS_ALWAYS_ON
 config MEM_ACCESS
 	def_bool MEM_ACCESS_ALWAYS_ON
 	prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON
-	depends on HVM
+	depends on HVM && (ARM || X86)
 	---help---
 
 	  Framework to configure memory access types for guests and receive
diff --git a/xen/include/xen/mem_access.h b/xen/include/xen/mem_access.h
index 4e4811680d..87d93b31f6 100644
--- a/xen/include/xen/mem_access.h
+++ b/xen/include/xen/mem_access.h
@@ -33,7 +33,9 @@
  */
 struct vm_event_st;
 
+#ifdef CONFIG_MEM_ACCESS
 #include <asm/mem_access.h>
+#endif
 
 /*
  * Additional access types, which are used to further restrict
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:48:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645744.1008066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AR2-0000kY-NV; Fri, 01 Dec 2023 20:48:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645744.1008066; Fri, 01 Dec 2023 20: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 1r9AR2-0000jb-IW; Fri, 01 Dec 2023 20:48:28 +0000
Received: by outflank-mailman (input) for mailman id 645744;
 Fri, 01 Dec 2023 20: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=yVFl=HM=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1r9AR0-0008SX-FI
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:48:26 +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 f8a93560-908a-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 21:48:24 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2c9b88cf626so35149281fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 12:48:24 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 i18-20020a2ea372000000b002c6ed7e546esm511142ljn.124.2023.12.01.12.48.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Dec 2023 12:48:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8a93560-908a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701463704; x=1702068504; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zbQv/IdBQa83UkIVCYiNgPLJy5E21/Mcx7SRRKDsQK0=;
        b=Rl8sOnnuzxw/XZGHlM9VdIq1+wqooP+LN4gVAmVXxp06+KhkpqG5O0B5hKfNNL0ZsC
         GHlzplm93VacGhSjeFwmBofMQMdx8It/Ohp9E3okcA5p47mn9ZsBh7ptywnIQY8zgLxi
         /+hq5X7k/XsbmaAnpD2bcnB6XQRrtXjGjAHNX4wC3pPCYqPa7/7+2+ilJfeU3E8tFqrN
         Hy7Fxn89CXkaT2PpbWc8A9BdNfbK8UjogmgwFwMPesR+dM48aF57FHumMdBBTYJlEtAf
         nTduUexPmkS3Ss3icjrEmaJsd7NqybgPbG7rx7bPfghX0D3HmdB0kMr1PwsFr1op4cSp
         nnXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701463704; x=1702068504;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=zbQv/IdBQa83UkIVCYiNgPLJy5E21/Mcx7SRRKDsQK0=;
        b=Oxv/l5Ypf2OdHhioCHlbf96bJNLptjtij6ANgX0MGCGuwkydqtngQgzQ2Gvpd1AYW1
         OmcCJHNF2tAL4wF7cFyDQrQ6x6RHleZguHTjOPS5gDgxI+t5AYViLdpf7MW7QEtrkIfM
         9zLd+sFXn8Y0x9KSR+njKNulyuJdRVxkTGYDcTR0E0C9fDwqGnkJRVANN42P/zkk0SN4
         SaM0qXcTqcxCcr+Ljnpf2MtZHaFVk/cCWgMFFibBP9/QodsZuTTtNnB6CtGkuLPv7y0N
         f8yagxtNi10R7nxNCR5KUy837S1pgiGcuyEPs8cB6FCxe/sQq/zywRPB9FCn7Zq2zqwI
         qEzg==
X-Gm-Message-State: AOJu0YxLUUwjvD6xaBwoShESfeihlXdMCldCQVjaPF8kFEMGdKYAk1kN
	Oqd9IR0R2/P5JGqi3uoByBSUA0XS+kdxBA==
X-Google-Smtp-Source: AGHT+IF03NQK4DYzakt4daF2vEkoDuVlRTeGblp5ZgHEAgmG1vtmcna/lUxnf1FeAaW0T00TDHcEaw==
X-Received: by 2002:a2e:99d5:0:b0:2c9:e7d6:551c with SMTP id l21-20020a2e99d5000000b002c9e7d6551cmr484001ljj.84.1701463703975;
        Fri, 01 Dec 2023 12:48:23 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v5 7/7] xen/asm-generic: introduce generic device.h
Date: Fri,  1 Dec 2023 22:48:10 +0200
Message-ID: <13c839b2ae26ec8a677048c02da9fa1a9ce14d3c.1701453087.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1701453087.git.oleksii.kurochko@gmail.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Arm, PPC and RISC-V use the same device.h thereby device.h
was moved to asm-generic. Arm's device.h was taken as a base with
the following changes:
 - #ifdef PCI related things.
 - #ifdef ACPI related things.
 - Rename #ifdef guards.
 - Add SPDX tag.
 - #ifdef CONFIG_HAS_DEVICE_TREE related things.
 - #ifdef-ing iommu related things with CONFIG_HAS_PASSTHROUGH.

Also Arm and PPC are switched to asm-generic version of device.h

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---

     Jan wrote the following:
       Overall I think there are too many changes done all in one go here.
       But it's mostly Arm which is affected, so I'll leave judging about that
       to the Arm maintainers.
     
     Arm maintainers will it be fine for you to not split the patch?

---
Changes in V5:
  - Removed generated file: xen/include/headers++.chk.new
  - Removed pointless #ifdef CONFIG_HAS_DEVICE_TREE ... #endif for PPC as
    CONFIG_HAS_DEVICE_TREE will be always used for PPC.
---
Changes in V4:
 - Updated the commit message
 - Switched Arm and PPC to asm-generic version of device.h
 - Replaced HAS_PCI with CONFIG_HAS_PCI
 - ifdef-ing iommu filed of dev_archdata struct with CONFIG_HAS_PASSTHROUGH
 - ifdef-ing iommu_fwspec of device struct with CONFIG_HAS_PASSTHROUGH
 - ifdef-ing DT related things with CONFIG_HAS_DEVICE_TREE
 - Updated the commit message ( remove a note with question about
   if device.h should be in asm-generic or not )
 - Replaced DEVICE_IC with DEVICE_INTERRUPT_CONTROLLER
 - Rationalized usage of CONFIG_HAS_* in device.h
 - Fixed indents for ACPI_DEVICE_START and ACPI_DEVICE_END
---
Changes in V3:
 - ifdef device tree related things.
 - update the commit message
---
Changes in V2:
	- take ( as common ) device.h from Arm as PPC and RISC-V use it as a base.
	- #ifdef PCI related things.
	- #ifdef ACPI related things.
	- rename DEVICE_GIC to DEVIC_IC.
	- rename #ifdef guards.
	- switch Arm and PPC to generic device.h
	- add SPDX tag
	- update the commit message

---
 xen/arch/arm/device.c                         |  15 ++-
 xen/arch/arm/domain_build.c                   |   2 +-
 xen/arch/arm/gic-v2.c                         |   4 +-
 xen/arch/arm/gic-v3.c                         |   6 +-
 xen/arch/arm/gic.c                            |   4 +-
 xen/arch/arm/include/asm/Makefile             |   1 +
 xen/arch/ppc/include/asm/Makefile             |   1 +
 xen/arch/ppc/include/asm/device.h             |  53 --------
 .../asm => include/asm-generic}/device.h      | 125 +++++++++++-------
 9 files changed, 102 insertions(+), 109 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/device.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/device.h (79%)

diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
index 1f631d3274..affbe79f9a 100644
--- a/xen/arch/arm/device.c
+++ b/xen/arch/arm/device.c
@@ -16,7 +16,10 @@
 #include <xen/lib.h>
 
 extern const struct device_desc _sdevice[], _edevice[];
+
+#ifdef CONFIG_ACPI
 extern const struct acpi_device_desc _asdevice[], _aedevice[];
+#endif
 
 int __init device_init(struct dt_device_node *dev, enum device_class class,
                        const void *data)
@@ -45,6 +48,7 @@ int __init device_init(struct dt_device_node *dev, enum device_class class,
     return -EBADF;
 }
 
+#ifdef CONFIG_ACPI
 int __init acpi_device_init(enum device_class class, const void *data, int class_type)
 {
     const struct acpi_device_desc *desc;
@@ -61,6 +65,7 @@ int __init acpi_device_init(enum device_class class, const void *data, int class
 
     return -EBADF;
 }
+#endif
 
 enum device_class device_get_class(const struct dt_device_node *dev)
 {
@@ -329,9 +334,13 @@ int handle_device(struct domain *d, struct dt_device_node *dev, p2m_type_t p2mt,
     struct map_range_data mr_data = {
         .d = d,
         .p2mt = p2mt,
-        .skip_mapping = !own_device ||
-                        (is_pci_passthrough_enabled() &&
-                        (device_get_class(dev) == DEVICE_PCI_HOSTBRIDGE)),
+        .skip_mapping =
+                        !own_device
+#ifdef CONFIG_HAS_PCI
+                        || (is_pci_passthrough_enabled() &&
+                        (device_get_class(dev) == DEVICE_PCI_HOSTBRIDGE))
+#endif
+                        ,
         .iomem_ranges = iomem_ranges,
         .irq_ranges = irq_ranges
     };
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 28df515a3d..a0518993b1 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1651,7 +1651,7 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
      * Replace these nodes with our own. Note that the original may be
      * used_by DOMID_XEN so this check comes first.
      */
-    if ( device_get_class(node) == DEVICE_GIC )
+    if ( device_get_class(node) == DEVICE_INTERRUPT_CONTROLLER )
         return make_gic_node(d, kinfo->fdt, node);
     if ( dt_match_node(timer_matches, node) )
         return make_timer_node(kinfo);
diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index cf392bfd1c..5d6885e389 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1366,7 +1366,7 @@ static const struct dt_device_match gicv2_dt_match[] __initconst =
     { /* sentinel */ },
 };
 
-DT_DEVICE_START(gicv2, "GICv2", DEVICE_GIC)
+DT_DEVICE_START(gicv2, "GICv2", DEVICE_INTERRUPT_CONTROLLER)
         .dt_match = gicv2_dt_match,
         .init = gicv2_dt_preinit,
 DT_DEVICE_END
@@ -1381,7 +1381,7 @@ static int __init gicv2_acpi_preinit(const void *data)
     return 0;
 }
 
-ACPI_DEVICE_START(agicv2, "GICv2", DEVICE_GIC)
+ACPI_DEVICE_START(agicv2, "GICv2", DEVICE_INTERRUPT_CONTROLLER)
         .class_type = ACPI_MADT_GIC_VERSION_V2,
         .init = gicv2_acpi_preinit,
 ACPI_DEVICE_END
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 18289cd645..9e135aeb3d 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1879,7 +1879,7 @@ static const struct dt_device_match gicv3_dt_match[] __initconst =
     { /* sentinel */ },
 };
 
-DT_DEVICE_START(gicv3, "GICv3", DEVICE_GIC)
+DT_DEVICE_START(gicv3, "GICv3", DEVICE_INTERRUPT_CONTROLLER)
         .dt_match = gicv3_dt_match,
         .init = gicv3_dt_preinit,
 DT_DEVICE_END
@@ -1894,12 +1894,12 @@ static int __init gicv3_acpi_preinit(const void *data)
     return 0;
 }
 
-ACPI_DEVICE_START(agicv3, "GICv3", DEVICE_GIC)
+ACPI_DEVICE_START(agicv3, "GICv3", DEVICE_INTERRUPT_CONTROLLER)
         .class_type = ACPI_MADT_GIC_VERSION_V3,
         .init = gicv3_acpi_preinit,
 ACPI_DEVICE_END
 
-ACPI_DEVICE_START(agicv4, "GICv4", DEVICE_GIC)
+ACPI_DEVICE_START(agicv4, "GICv4", DEVICE_INTERRUPT_CONTROLLER)
         .class_type = ACPI_MADT_GIC_VERSION_V4,
         .init = gicv3_acpi_preinit,
 ACPI_DEVICE_END
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index d922ea67aa..b5a9c8266c 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -234,7 +234,7 @@ static void __init gic_dt_preinit(void)
         if ( !dt_get_parent(node) )
             continue;
 
-        rc = device_init(node, DEVICE_GIC, NULL);
+        rc = device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL);
         if ( !rc )
         {
             /* NOTE: Only one GIC is supported */
@@ -262,7 +262,7 @@ static void __init gic_acpi_preinit(void)
 
     dist = container_of(header, struct acpi_madt_generic_distributor, header);
 
-    if ( acpi_device_init(DEVICE_GIC, NULL, dist->version) )
+    if ( acpi_device_init(DEVICE_INTERRUPT_CONTROLLER, NULL, dist->version) )
         panic("Unable to find compatible GIC in the ACPI table\n");
 }
 #else
diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
index a28cc5d1b1..c3f4291ee2 100644
--- a/xen/arch/arm/include/asm/Makefile
+++ b/xen/arch/arm/include/asm/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 generic-y += altp2m.h
+generic-y += device.h
 generic-y += hardirq.h
 generic-y += iocap.h
 generic-y += numa.h
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index efd72862c8..adb752b804 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 generic-y += altp2m.h
+generic-y += device.h
 generic-y += div64.h
 generic-y += hardirq.h
 generic-y += hypercall.h
diff --git a/xen/arch/ppc/include/asm/device.h b/xen/arch/ppc/include/asm/device.h
deleted file mode 100644
index 8253e61d51..0000000000
--- a/xen/arch/ppc/include/asm/device.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_PPC_DEVICE_H__
-#define __ASM_PPC_DEVICE_H__
-
-enum device_type
-{
-    DEV_DT,
-    DEV_PCI,
-};
-
-struct device {
-    enum device_type type;
-#ifdef CONFIG_HAS_DEVICE_TREE
-    struct dt_device_node *of_node; /* Used by drivers imported from Linux */
-#endif
-};
-
-enum device_class
-{
-    DEVICE_SERIAL,
-    DEVICE_IOMMU,
-    DEVICE_PCI_HOSTBRIDGE,
-    /* Use for error */
-    DEVICE_UNKNOWN,
-};
-
-struct device_desc {
-    /* Device name */
-    const char *name;
-    /* Device class */
-    enum device_class class;
-    /* List of devices supported by this driver */
-    const struct dt_device_match *dt_match;
-    /*
-     * Device initialization.
-     *
-     * -EAGAIN is used to indicate that device probing is deferred.
-     */
-    int (*init)(struct dt_device_node *dev, const void *data);
-};
-
-typedef struct device device_t;
-
-#define DT_DEVICE_START(name_, namestr_, class_)                    \
-static const struct device_desc __dev_desc_##name_ __used           \
-__section(".dev.info") = {                                          \
-    .name = namestr_,                                               \
-    .class = class_,                                                \
-
-#define DT_DEVICE_END                                               \
-};
-
-#endif /* __ASM_PPC_DEVICE_H__ */
diff --git a/xen/arch/arm/include/asm/device.h b/xen/include/asm-generic/device.h
similarity index 79%
rename from xen/arch/arm/include/asm/device.h
rename to xen/include/asm-generic/device.h
index b5d451e087..063c448c4e 100644
--- a/xen/arch/arm/include/asm/device.h
+++ b/xen/include/asm-generic/device.h
@@ -1,14 +1,37 @@
-#ifndef __ASM_ARM_DEVICE_H
-#define __ASM_ARM_DEVICE_H
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_GENERIC_DEVICE_H__
+#define __ASM_GENERIC_DEVICE_H__
+
+#include <xen/stdbool.h>
 
 enum device_type
 {
+#ifdef CONFIG_HAS_DEVICE_TREE
     DEV_DT,
+#endif
+
+#ifdef CONFIG_HAS_PCI
     DEV_PCI,
+#endif
+    DEV_TYPE_MAX,
+};
+
+enum device_class
+{
+    DEVICE_SERIAL,
+    DEVICE_IOMMU,
+    DEVICE_INTERRUPT_CONTROLLER,
+#ifdef CONFIG_HAS_PCI
+    DEVICE_PCI_HOSTBRIDGE,
+#endif
+    /* Use for error */
+    DEVICE_UNKNOWN,
 };
 
 struct dev_archdata {
+#ifdef CONFIG_HAS_PASSTHROUGH
     void *iommu;    /* IOMMU private data */
+#endif
 };
 
 /* struct device - The basic device structure */
@@ -19,31 +42,65 @@ struct device
     struct dt_device_node *of_node; /* Used by drivers imported from Linux */
 #endif
     struct dev_archdata archdata;
+#ifdef CONFIG_HAS_PASSTHROUGH
     struct iommu_fwspec *iommu_fwspec; /* per-device IOMMU instance data */
+#endif
 };
 
 typedef struct device device_t;
 
+#ifdef CONFIG_HAS_DEVICE_TREE
+
 #include <xen/device_tree.h>
 
-#define dev_is_pci(dev) ((dev)->type == DEV_PCI)
 #define dev_is_dt(dev)  ((dev)->type == DEV_DT)
 
-enum device_class
-{
-    DEVICE_SERIAL,
-    DEVICE_IOMMU,
-    DEVICE_GIC,
-    DEVICE_PCI_HOSTBRIDGE,
-    /* Use for error */
-    DEVICE_UNKNOWN,
+/**
+ *  device_init - Initialize a device
+ *  @dev: device to initialize
+ *  @class: class of the device (serial, network...)
+ *  @data: specific data for initializing the device
+ *
+ *  Return 0 on success.
+ */
+int device_init(struct dt_device_node *dev, enum device_class class,
+                const void *data);
+
+/**
+ * device_get_type - Get the type of the device
+ * @dev: device to match
+ *
+ * Return the device type on success or DEVICE_ANY on failure
+ */
+enum device_class device_get_class(const struct dt_device_node *dev);
+
+#define DT_DEVICE_START(_name, _namestr, _class)                    \
+static const struct device_desc __dev_desc_##_name __used           \
+__section(".dev.info") = {                                          \
+    .name = _namestr,                                               \
+    .class = _class,                                                \
+
+#define DT_DEVICE_END                                               \
 };
 
+#else /* !CONFIG_HAS_DEVICE_TREE */
+#define dev_is_dt(dev) ((void)(dev), false)
+#endif /* CONFIG_HAS_DEVICE_TREE */
+
+#ifdef CONFIG_HAS_PCI
+#define dev_is_pci(dev) ((dev)->type == DEV_PCI)
+#else
+#define dev_is_pci(dev) ((void)(dev), false)
+#endif
+
 struct device_desc {
     /* Device name */
     const char *name;
     /* Device class */
     enum device_class class;
+
+#ifdef CONFIG_HAS_DEVICE_TREE
+
     /* List of devices supported by this driver */
     const struct dt_device_match *dt_match;
     /*
@@ -52,8 +109,12 @@ struct device_desc {
      * -EAGAIN is used to indicate that device probing is deferred.
      */
     int (*init)(struct dt_device_node *dev, const void *data);
+
+#endif
 };
 
+#ifdef CONFIG_ACPI
+
 struct acpi_device_desc {
     /* Device name */
     const char *name;
@@ -75,44 +136,18 @@ struct acpi_device_desc {
 int acpi_device_init(enum device_class class,
                      const void *data, int class_type);
 
-/**
- *  device_init - Initialize a device
- *  @dev: device to initialize
- *  @class: class of the device (serial, network...)
- *  @data: specific data for initializing the device
- *
- *  Return 0 on success.
- */
-int device_init(struct dt_device_node *dev, enum device_class class,
-                const void *data);
-
-/**
- * device_get_type - Get the type of the device
- * @dev: device to match
- *
- * Return the device type on success or DEVICE_ANY on failure
- */
-enum device_class device_get_class(const struct dt_device_node *dev);
+#define ACPI_DEVICE_START(_name, _namestr, _class)              \
+static const struct acpi_device_desc __dev_desc_##_name __used  \
+__section(".adev.info") = {                                     \
+    .name = _namestr,                                           \
+    .class = _class,                                            \
 
-#define DT_DEVICE_START(_name, _namestr, _class)                    \
-static const struct device_desc __dev_desc_##_name __used           \
-__section(".dev.info") = {                                          \
-    .name = _namestr,                                               \
-    .class = _class,                                                \
-
-#define DT_DEVICE_END                                               \
+#define ACPI_DEVICE_END                                         \
 };
 
-#define ACPI_DEVICE_START(_name, _namestr, _class)                    \
-static const struct acpi_device_desc __dev_desc_##_name __used           \
-__section(".adev.info") = {                       \
-    .name = _namestr,                                               \
-    .class = _class,                                                \
-
-#define ACPI_DEVICE_END                                               \
-};
+#endif /* CONFIG_ACPI */
 
-#endif /* __ASM_ARM_DEVICE_H */
+#endif /* __ASM_GENERIC_DEVICE_H__ */
 
 /*
  * Local variables:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 20:56:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 20:56:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645762.1008075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AYl-0004dO-Mh; Fri, 01 Dec 2023 20:56:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645762.1008075; Fri, 01 Dec 2023 20: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 1r9AYl-0004dH-K4; Fri, 01 Dec 2023 20:56:27 +0000
Received: by outflank-mailman (input) for mailman id 645762;
 Fri, 01 Dec 2023 20:56:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1r9AYk-0004dB-UU
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 20:56:26 +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 1r9AYk-0000L7-6J; Fri, 01 Dec 2023 20:56:26 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r9AYj-0006Qj-W2; Fri, 01 Dec 2023 20:56:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=NQLaIwUZPorgLBX9VVZGLxq9mqY+hCwMWWoudaGWMYc=; b=m+DAylLBkdiVNBQDd8f0fFZ524
	EOr0dUYLBE1Qd4bia5okL55/D4DwTdxcHqPgFru4Fw8JrDqVNzJvmxTUXhP26BxnFmevvBUZ6v9aj
	aC5Ltu9+ufyIHV/ylNPlXwMVT/ME0SDnjPF2MJAPsFAujv7578aHH/7FKjzjmQJGV8cs=;
Message-ID: <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
Date: Fri, 1 Dec 2023 20:56:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 Jan Beulich <jbeulich@suse.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Oleksii <oleksii.kurochko@gmail.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
 <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

(+ Arm and RISC-V folks)

Hi Shawn,

On 01/12/2023 20:59, Shawn Anastasio wrote:
> Adapt arm's earlyfdt parsing code to ppc64 and enable Xen's early boot
> allocator. Routines for parsing arm-specific devicetree nodes (e.g.
> multiboot) were excluded, reducing the overall footprint of code that
> was copied.

I expect RISC-V to want similar code. I am not really thrilled in the 
idea of having 3 similar copy of the parsing. So can we extract the 
common bits (or harmonize it) so it can be shared?

Maybe Oleksii has already a version doing that.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 21:10:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 21:10:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645766.1008085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9AmO-0001Kn-Rg; Fri, 01 Dec 2023 21:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645766.1008085; Fri, 01 Dec 2023 21: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 1r9AmO-0001Kg-Or; Fri, 01 Dec 2023 21:10:32 +0000
Received: by outflank-mailman (input) for mailman id 645766;
 Fri, 01 Dec 2023 21:10:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=w7my=HM=raptorengineering.com=tpearson@srs-se1.protection.inumbo.net>)
 id 1r9AmN-0001JK-EM
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 21:10:31 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c3bec5e-908e-11ee-9b0f-b553b5be7939;
 Fri, 01 Dec 2023 22:10:26 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 783448285554;
 Fri,  1 Dec 2023 15:10:25 -0600 (CST)
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 Bk2M7rLww1-q; Fri,  1 Dec 2023 15:10:23 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 9391B8285721;
 Fri,  1 Dec 2023 15:10:23 -0600 (CST)
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 XKxKmtOH0yH1; Fri,  1 Dec 2023 15:10:23 -0600 (CST)
Received: from vali.starlink.edu (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 2E6378285554;
 Fri,  1 Dec 2023 15:10:23 -0600 (CST)
Received: from 192.168.3.91 (proxying for 172.58.188.160)
 (SquirrelMail authenticated user tpearson@raptorengineering.com)
 by vali.starlink.edu with HTTP; Fri, 1 Dec 2023 15:10:23 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c3bec5e-908e-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 9391B8285721
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1701465023; bh=bxT2AZjZ2cRdzkzG2sHEsDpTCKjhUQftBvzpCjUGa00=;
	h=Message-ID:Date:From:To:MIME-Version;
	b=iWRoOZ8hpdTStrvDg/bzyiGNMR+SGnR5vSGW0f51htju3hq9WiZyDiU9epYrLUlSt
	 0qQ7Jd5+HuVBIvVDtrYaBh5OEarZNDX/DQ6mThoM+sbME/BPJ9rm4cspV2cvhls49t
	 zEdH2POQrxGCFElZ23S+4WopqdfB3SBtSE08vqx8=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <7e0ea8d9ca0a3a90550eb7b9e65fe86c.squirrel@vali.starlink.edu>
In-Reply-To: <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
    <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
    <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
Date: Fri, 1 Dec 2023 15:10:23 -0600
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
From: tpearson@raptorengineering.com
To: "Julien Grall" <julien@xen.org>
Cc: "Shawn Anastasio" <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org,
 "Jan Beulich" <jbeulich@suse.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "Stefano Stabellini" <sstabellini@kernel.org>,
 "Bertrand Marquis" <bertrand.marquis@arm.com>,
 "Michal Orzel" <michal.orzel@amd.com>,
 "Oleksii" <oleksii.kurochko@gmail.com>
User-Agent: SquirrelMail/1.4.22
MIME-Version: 1.0
Content-Type: text/plain;charset=utf-8
X-Priority: 3 (Normal)
Importance: Normal
Content-Transfer-Encoding: quoted-printable

> (+ Arm and RISC-V folks)
>
> Hi Shawn,
>
> On 01/12/2023 20:59, Shawn Anastasio wrote:
>> Adapt arm's earlyfdt parsing code to ppc64 and enable Xen's early boot
>> allocator. Routines for parsing arm-specific devicetree nodes (e.g.
>> multiboot) were excluded, reducing the overall footprint of code that
>> was copied.
>
> I expect RISC-V to want similar code. I am not really thrilled in the
> idea of having 3 similar copy of the parsing. So can we extract the
> common bits (or harmonize it) so it can be shared?
>
> Maybe Oleksii has already a version doing that.

Just my $0.02, but wouldn't it make more sense to have the RISC-V port
handle the deduplication, seeing as the POWER support came first here?  W=
e
don't know if/when the RISC-V port will be ready for submission, so I'm
not sure why we should be on the hook for this particular work.

Thanks!



From xen-devel-bounces@lists.xenproject.org Fri Dec 01 21:37:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 21:37:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645770.1008096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9BCi-0000xu-1d; Fri, 01 Dec 2023 21:37:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645770.1008096; Fri, 01 Dec 2023 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 1r9BCh-0000xn-Um; Fri, 01 Dec 2023 21:37:43 +0000
Received: by outflank-mailman (input) for mailman id 645770;
 Fri, 01 Dec 2023 21:37: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 1r9BCg-0000v9-0L; Fri, 01 Dec 2023 21:37: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 1r9BCf-00018x-Re; Fri, 01 Dec 2023 21:37: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 1r9BCf-0007Zv-Bc; Fri, 01 Dec 2023 21:37:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9BCf-0003Xg-Av; Fri, 01 Dec 2023 21:37: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=Bw1fiT77VrljZ1Mk22ZSb7rRnDvV6g2OU1MOonkT3F8=; b=pHjzqRtg4gxezn+J26bs8uMwcU
	DKoaedx3yaRJy3UmurOkWItcz8LiQh/Mz+44T4txs4fK0d1ux4O66g00jyjtGl6NpNreOa+uZ/xeT
	O1nC4+lwy/E4pPNctKhhb4lvOWnpBm27kynldQtdYulf/RbyOydZr+igXhZJ0xUVmKcs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183961-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183961: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-freebsd11-amd64:guest-saverestore.2:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-arndale:host-ping-check-xen: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-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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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: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-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-multivcpu:saverestore-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-qcow2: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=994d5c58e50e91bb02c7be4a91d5186292a895c8
X-Osstest-Versions-That:
    linux=6172a5180fcc65170bfa2d49e55427567860f2a7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 01 Dec 2023 21:37:41 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-freebsd11-amd64 18 guest-saverestore.2 fail pass in 183967-retest
 test-armhf-armhf-xl-arndale  10 host-ping-check-xen fail pass in 183967-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 183967 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 183967 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183957
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183957
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183957
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183957
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183957
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183957
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183957
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183957
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-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-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          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-libvirt     15 migrate-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-rtds     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-rtds     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-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                994d5c58e50e91bb02c7be4a91d5186292a895c8
baseline version:
 linux                6172a5180fcc65170bfa2d49e55427567860f2a7

Last test of basis   183957  2023-11-30 23:42:23 Z    0 days
Testing same since   183961  2023-12-01 08:05:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Gustavo A. R. Silva" <gustavoars@kernel.org>
  Arnaldo Carvalho de Melo <acme@redhat.com>
  Bill Wendling <morbo@google.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Gustavo A. R. Silva <gustavoars@kernel.org>
  Kees Cook <keescook@chromium.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masahiro Yamada <masahiroy@kernel.org>
  Maxime Ripard <mripard@kernel.org>
  Michal Wajdeczko <michal.wajdeczko@intel.com>
  Miguel Ojeda <ojeda@kernel.org>
  Namhyung Kim <namhyung@kernel.org>
  Nathan Chancellor <nathan@kernel.org>
  ndesaulniers@google.com <ndesaulniers@google.com>
  Nick Desaulniers <ndesaulniers@google.com>
  Oliver Upton <oliver.upton@linux.dev>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Yang Jihong <yangjihong1@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-freebsd11-amd64                             fail    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   6172a5180fcc..994d5c58e50e  994d5c58e50e91bb02c7be4a91d5186292a895c8 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 21:44:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 21:44:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645776.1008106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9BJC-0003Jq-MG; Fri, 01 Dec 2023 21:44:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645776.1008106; Fri, 01 Dec 2023 21: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 1r9BJC-0003Jj-JY; Fri, 01 Dec 2023 21:44:26 +0000
Received: by outflank-mailman (input) for mailman id 645776;
 Fri, 01 Dec 2023 21: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=QmaB=HM=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r9BJB-0003Jd-Fd
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 21:44:25 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cacfbd1d-9092-11ee-98e5-6d05b1d4d9a1;
 Fri, 01 Dec 2023 22:44:23 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 78BB1B8496B;
 Fri,  1 Dec 2023 21:44:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C182C433D9;
 Fri,  1 Dec 2023 21:44: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: cacfbd1d-9092-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701467061;
	bh=anh8td+sCO7BNAZ0CEzGJOncT8BnY0Mwtm/M6vry5Sc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TUiofiOSwSgRP6pknRcgaUUSlCpOsXV93yMJ33oqCqWqNQ6FMtRTYSgZSx+XnAge4
	 hWidMj+K7/nGx0fHjqz/SRGxGv5y976Z2SoaiDUi8+dRhohq5W44YNBprJvpYjkZsO
	 Jw7jfnD+WRabbQr8XQMvGHZ8zFEVKDih2jRB5+esTuBQDa/jaMHVK67hXJSp4Zwpck
	 NNn66nsIZ9VQ6PS8K3/cLNexf8Bjg/hDcX/Z/SSyHT4kZimFCTSKvYORGuPUU5EtBG
	 PcRQJIlq4ZPpPcdoVPJWNeCXtRiDpJqrVx38b74aBj5vQS8AesQY4rJwv9dNY3qeud
	 B/1sBMVFM/Wsw==
Date: Fri, 1 Dec 2023 13:44:19 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: George Dunlap <george.dunlap@cloud.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Kelly Choi <kelly.choi@cloud.com>, xen-devel@lists.xenproject.org, 
    committers@xenproject.org
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
In-Reply-To: <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
Message-ID: <alpine.DEB.2.22.394.2312011253390.110490@ubuntu-linux-20-04-desktop>
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com> <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop> <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

Replying here on a couple of different people on this thread.


On Thu, 30 Nov 2023, Tamas K Lengyel wrote:
> I think this form is bad and is not helpful. 

I agree with Tamas and (also Jan) that this form is not helpful.


On Fri, 1 Dec 2023, George Dunlap wrote:
> If most people in the community really do think that "broken" is
> suitable for the documentation in our project, then of course the
> maintainers should stop objecting to that kind of language.  If most
> of the people in the community think that "broken" is *not* suitable
> for technical documentation, then of course this isn't an example of
> unreasonable review (although other instances may be).

I think there was a misconception when Kelly created this form that the
push back was on the usage of the word "broken" globally in Xen Project.
It is not the case.

I for example agree that "broken" can be used in Xen Project, but I
don't think that it is a good idea to use it in that specific instance.


On Fri, 1 Dec 2023, George Dunlap wrote:
> [Andy] removing "broken" is a completely unreasonable request

I am in favor on moving faster and nitpicking less. Also, Andy put the
effort to produce the patch so he should have the default choice in the
wording. If the choice is taking the patch as is or rejecting it, I
would take it as is.

I might have a preference on a different wording and I voiced that
preference. We could say that my request should have been optional, not
mandatory. But when the majority of reviewers request the same thing,
which wording choice should apply?

If we decide to ignore the feedback as unresonable or because it should
have been all optional and commit the patch, what would stop anyone from
sending a patch to "fix" the wording in the comments to use "deprecated"
instead? And if someone pushes back on the second patch, would that be
nitpicking? If we commit the second patch, what if someone send a third
patch changing the wording back to "broken"? We risk getting into
"commit wars".

To avoid this, I think we should go with the majority, whatever that is,
and the decision has to stick. We have just introduced informal votes.
We should have just used that in the original thread. By the informal
voting, we have 3 against "broken" and 2 in favor (not 1 as George wrote
as Andrew's vote counts too). 

The easiest would have been to go with the majority, resend the patch,
get it committed. If Andrew feels strongly that the "broken" is the best
wording, then a proper voting form is a good idea, like Kelly did (which
I think is a full formal vote, not an informal vote). Except that the
form Kelly created is too generic and has too few options.

In conclusion, I don't care about the wording. I do care that we reach
alignment and move forward quicker. I think the informal voting
mechanism is the best way to do it.


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 22:35:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 22:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645780.1008116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9C6d-0006sj-IC; Fri, 01 Dec 2023 22:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645780.1008116; Fri, 01 Dec 2023 22: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 1r9C6d-0006sc-E0; Fri, 01 Dec 2023 22:35:31 +0000
Received: by outflank-mailman (input) for mailman id 645780;
 Fri, 01 Dec 2023 22:35: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 1r9C6c-0006sN-H2; Fri, 01 Dec 2023 22:35: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 1r9C6c-00029g-70; Fri, 01 Dec 2023 22:35: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 1r9C6b-0000cD-Ry; Fri, 01 Dec 2023 22:35:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9C6b-0006qU-RV; Fri, 01 Dec 2023 22:35:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=UdQd5vJYjVNabZtBvJbbv34BdaYeFbxs+gMGWUNbE2k=; b=x4xoTiNVrmuhmgHGgLwyVbXVLk
	wPe+xbElT2kio+I3iT6+zdlzR5aJh7+L7TYUStsBcBqZaVkfHeLiTAtqS7/rMOzEi85kEpwzWbJHw
	U0TjyEqFrjJlnJpikh4XxEczdU0s25Hmmgp0ERbxlrmdTuK3LrANjtuc3XeYo03xC/k4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183968-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 183968: 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=525c7c094b258e8a46b494488eef96f5670eb352
X-Osstest-Versions-That:
    xen=1571ff7a987b88b20598a6d49910457f3b2c59f1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 01 Dec 2023 22:35:29 +0000

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

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                  525c7c094b258e8a46b494488eef96f5670eb352
baseline version:
 xen                  1571ff7a987b88b20598a6d49910457f3b2c59f1

Last test of basis   183963  2023-12-01 10:02:10 Z    0 days
Testing same since   183968  2023-12-01 20:00:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  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
   1571ff7a98..525c7c094b  525c7c094b258e8a46b494488eef96f5670eb352 -> smoke


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 22:35:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 22:35:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645785.1008126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9C74-0007IE-SA; Fri, 01 Dec 2023 22:35:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645785.1008126; Fri, 01 Dec 2023 22:35: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 1r9C74-0007I5-OD; Fri, 01 Dec 2023 22:35:58 +0000
Received: by outflank-mailman (input) for mailman id 645785;
 Fri, 01 Dec 2023 22:35: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 1r9C73-0007Hr-Sh
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 22:35: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 1r9C73-0002AH-EA; Fri, 01 Dec 2023 22:35:57 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r9C73-0002nL-5L; Fri, 01 Dec 2023 22:35:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=oXiayIAEPdSKjSozKprMBupV43WPfTMCHeOOFKKLhp4=; b=U2hc7NTVaB/A7/XzmZ1a14l0sx
	uP6N6dl/H+2A839NJO2TAw7laldOvfjIgzg5kTIs2JeIsxELsWO5h9wxXU8m7z1AZXCbnMsvUgWK5
	DalVNuZUXukU+xVNRE+ygtMYSaBZL8rsqiVGTMoMLkd/Mxj5lDncuFo19LkrJk3z/8eA=;
Message-ID: <1981531f-a919-4569-9b6b-8f962f9d7cfb@xen.org>
Date: Fri, 1 Dec 2023 22:35:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
Content-Language: en-GB
To: tpearson@raptorengineering.com
Cc: Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Oleksii <oleksii.kurochko@gmail.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
 <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
 <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
 <7e0ea8d9ca0a3a90550eb7b9e65fe86c.squirrel@vali.starlink.edu>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7e0ea8d9ca0a3a90550eb7b9e65fe86c.squirrel@vali.starlink.edu>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 01/12/2023 22:10, tpearson@raptorengineering.com wrote:
>> (+ Arm and RISC-V folks)
>>
>> Hi Shawn,
>>
>> On 01/12/2023 20:59, Shawn Anastasio wrote:
>>> Adapt arm's earlyfdt parsing code to ppc64 and enable Xen's early boot
>>> allocator. Routines for parsing arm-specific devicetree nodes (e.g.
>>> multiboot) were excluded, reducing the overall footprint of code that
>>> was copied.
>>
>> I expect RISC-V to want similar code. I am not really thrilled in the
>> idea of having 3 similar copy of the parsing. So can we extract the
>> common bits (or harmonize it) so it can be shared?
>>
>> Maybe Oleksii has already a version doing that.
> 
> Just my $0.02, but wouldn't it make more sense to have the RISC-V port
> handle the deduplication, seeing as the POWER support came first here?  We
> don't know if/when the RISC-V port will be ready for submission, so I'm
> not sure why we should be on the hook for this particular work.

That would have been a valid point if you were writing a brand new 
implementation. But this was *copied* from Arm.

Looking at the diff between arm/bootfdt.c and ppc/bootfdt.c, you seem to 
have:
    - As well copied some code from arm/setup.c
    - Re-order some statement (not clear why)
    - Remove some code which you say are Arm specific. Yet some is part 
of the Device-Tree spec and I would expect to be used in the future.

So my question here stands. Why are you mainly copying verbatimly the 
Arm code rather than consolidating in one place?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 23:01:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 23:01:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645790.1008136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9CW5-0005eK-Qt; Fri, 01 Dec 2023 23:01:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645790.1008136; Fri, 01 Dec 2023 23: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 1r9CW5-0005eD-OK; Fri, 01 Dec 2023 23:01:49 +0000
Received: by outflank-mailman (input) for mailman id 645790;
 Fri, 01 Dec 2023 23: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=w7my=HM=raptorengineering.com=tpearson@srs-se1.protection.inumbo.net>)
 id 1r9CW4-0005e4-Dc
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 23:01:48 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a1cd2d5-909d-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 00:01:47 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id C65088285496;
 Fri,  1 Dec 2023 17:01:45 -0600 (CST)
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 xurLKxvRr7JS; Fri,  1 Dec 2023 17:01:45 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id D977282856B0;
 Fri,  1 Dec 2023 17:01:44 -0600 (CST)
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 J6oPcrO6Ab09; Fri,  1 Dec 2023 17:01:44 -0600 (CST)
Received: from vali.starlink.edu (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id A996A8285496;
 Fri,  1 Dec 2023 17:01:44 -0600 (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: 9a1cd2d5-909d-11ee-98e5-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com D977282856B0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1701471704; bh=r6B8UVs+UZ/IEmwf7QetgNvELJn57r/q8IdnKxERrFs=;
	h=Date:From:To:Message-ID:MIME-Version;
	b=fO/Mig7pwnig5QRnsSgHplUD460xKgdtIBKuDmTgFxoThJRJLJygZIheCr6CGbsWX
	 g4gGZPKw5JUUjq3bNxIDcv7tDrRDX62+XgT+7QorXxiAla8TJqbHBZ2v+IPA8VMvhx
	 FT0EnswfZtSh8et7na6G1VdeB3/VKAKjjkY1hJns=
X-Virus-Scanned: amavisd-new at rptsys.com
Date: Fri, 1 Dec 2023 17:01:44 -0600 (CST)
From: Timothy Pearson <tpearson@raptorengineering.com>
To: Julien Grall <julien@xen.org>
Cc: Timothy Pearson <tpearson@raptorengineering.com>, 
	Shawn Anastasio <sanastasio@raptorengineering.com>, 
	xen-devel <xen-devel@lists.xenproject.org>, 
	Jan Beulich <jbeulich@suse.com>, 
	"Daniel P. Smith" <dpsmith@apertussolutions.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, 
	Oleksii <oleksii.kurochko@gmail.com>
Message-ID: <536439989.51518893.1701471704571.JavaMail.zimbra@raptorengineeringinc.com>
In-Reply-To: <1981531f-a919-4569-9b6b-8f962f9d7cfb@xen.org>
References: <cover.1701384928.git.sanastasio@raptorengineering.com> <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com> <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org> <7e0ea8d9ca0a3a90550eb7b9e65fe86c.squirrel@vali.starlink.edu> <1981531f-a919-4569-9b6b-8f962f9d7cfb@xen.org>
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Mailer: Zimbra 8.5.0_GA_3042 (ZimbraWebClient - GC119 (Linux)/8.5.0_GA_3042)
Thread-Topic: xen/ppc: Enable Boot Allocator
Thread-Index: DaF2BIYnhldWCJYJ83PZexzm5UYCqg==



----- Original Message -----
> From: "Julien Grall" <julien@xen.org>
> To: "Timothy Pearson" <tpearson@raptorengineering.com>
> Cc: "Shawn Anastasio" <sanastasio@raptorengineering.com>, "xen-devel" <xen-devel@lists.xenproject.org>, "Jan Beulich"
> <jbeulich@suse.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, "Stefano Stabellini" <sstabellini@kernel.org>,
> "Bertrand Marquis" <bertrand.marquis@arm.com>, "Michal Orzel" <michal.orzel@amd.com>, "Oleksii"
> <oleksii.kurochko@gmail.com>
> Sent: Friday, December 1, 2023 4:35:55 PM
> Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator

> Hi,
> 
> On 01/12/2023 22:10, tpearson@raptorengineering.com wrote:
>>> (+ Arm and RISC-V folks)
>>>
>>> Hi Shawn,
>>>
>>> On 01/12/2023 20:59, Shawn Anastasio wrote:
>>>> Adapt arm's earlyfdt parsing code to ppc64 and enable Xen's early boot
>>>> allocator. Routines for parsing arm-specific devicetree nodes (e.g.
>>>> multiboot) were excluded, reducing the overall footprint of code that
>>>> was copied.
>>>
>>> I expect RISC-V to want similar code. I am not really thrilled in the
>>> idea of having 3 similar copy of the parsing. So can we extract the
>>> common bits (or harmonize it) so it can be shared?
>>>
>>> Maybe Oleksii has already a version doing that.
>> 
>> Just my $0.02, but wouldn't it make more sense to have the RISC-V port
>> handle the deduplication, seeing as the POWER support came first here?  We
>> don't know if/when the RISC-V port will be ready for submission, so I'm
>> not sure why we should be on the hook for this particular work.
> 
> That would have been a valid point if you were writing a brand new
> implementation. But this was *copied* from Arm.
> 
> Looking at the diff between arm/bootfdt.c and ppc/bootfdt.c, you seem to
> have:
>    - As well copied some code from arm/setup.c
>    - Re-order some statement (not clear why)
>    - Remove some code which you say are Arm specific. Yet some is part
> of the Device-Tree spec and I would expect to be used in the future.
> 
> So my question here stands. Why are you mainly copying verbatimly the
> Arm code rather than consolidating in one place?

That's fair, with the future RISC-V port removed from the discussion and good reasons still being put forth it makes more sense to deduplicate now.  Thank you for clarifying the objection! :)


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 23:03:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 23:03:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645792.1008146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9CXM-0006Ag-5D; Fri, 01 Dec 2023 23:03:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645792.1008146; Fri, 01 Dec 2023 23:03:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9CXM-0006AZ-1t; Fri, 01 Dec 2023 23:03:08 +0000
Received: by outflank-mailman (input) for mailman id 645792;
 Fri, 01 Dec 2023 23:03:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=utmH=HM=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1r9CXK-0006AE-W7
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 23:03:07 +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 c94cab90-909d-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 00:03:05 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2c9b88cf626so36588921fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Dec 2023 15:03:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c94cab90-909d-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701471785; x=1702076585; 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=ABBrnleNU0W8SIEzwXZDZhKtg63XV9Hs8/osuuo8yAQ=;
        b=j5gIIimidL6ZHeRPU5Ok/71bOy5GSZCc1l34mGpcKGbZ+0diUtMFrtUKNzyX/FPPxq
         VgltdaktZjsVSMcCrD+hdA2EVjH0J92cSO3Pq8odMX/BRgxKGGqcW8wSKq5p3A/WkUzd
         sxnkOGQXvIT90QSrJzgE+5KJFWITjSvbWh1YM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701471785; x=1702076585;
        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=ABBrnleNU0W8SIEzwXZDZhKtg63XV9Hs8/osuuo8yAQ=;
        b=fX1DM3YXbjMpenrLETl/DQXj926HOGvFpvu2AMjmK9dXc+oDb3f3pDcAPXzK2YjisZ
         FXNqM9GEarCXshnb/nKLhD2Cqav2nI+DG7F8ZwiWuT0J/oTM4oAi+PJpupPdEIlO6Oie
         RdRvp2feLWDiVY9ymNYRMmt8QUQQtFYmRmG4JajHSj0AQKd7NZoAbh2LgQSgIFI96qbL
         XIx0F7s7UAflE2bs6M5oAYZBe3+M+4MPMTEh8eVsZ0n4LAuqeBbA5ZpLRzPSOf5ooyLv
         UCqRJTwf2yl5MYUiptx37BLMqz5Pbn7YBeXtBEK70skirJIri/ov1C7veBW8SfQEGdFn
         Kc1A==
X-Gm-Message-State: AOJu0Yxamj8WVenz+eScGyhFJLd7OOxUfsLYOYFlA7fgINzlU7IltRc0
	lG0D6PogUCh9cm71IdeWqu9y9BT4fIBQRGNDMl/Bzw==
X-Google-Smtp-Source: AGHT+IHhy1h6bv9dRdkMZwlgwTBFJTqNJf7zTlBe6IB+9HmNsPlUTfBJKUfe5A30J8iZqgn/pV8P+IR9ORgTh7wytTY=
X-Received: by 2002:a2e:9b14:0:b0:2c9:cd86:c2c7 with SMTP id
 u20-20020a2e9b14000000b002c9cd86c2c7mr1175106lji.36.1701471785230; Fri, 01
 Dec 2023 15:03:05 -0800 (PST)
MIME-Version: 1.0
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
 <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com> <alpine.DEB.2.22.394.2312011253390.110490@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2312011253390.110490@ubuntu-linux-20-04-desktop>
From: George Dunlap <george.dunlap@cloud.com>
Date: Fri, 1 Dec 2023 23:02:54 +0000
Message-ID: <CA+zSX=aZf1UQt2eE0byMgwL+3EfW3B6CJkUHuFBVGA7Na=9gqA@mail.gmail.com>
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Kelly Choi <kelly.choi@cloud.com>, xen-devel@lists.xenproject.org, 
	committers@xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Dec 1, 2023 at 9:44=E2=80=AFPM Stefano Stabellini
<sstabellini@kernel.org> wrote:
> By the informal
> voting, we have 3 against "broken" and 2 in favor (not 1 as George wrote
> as Andrew's vote counts too).

Just to clarify: The opinions on that thread (if you include all
versions of the series) were:

Andy, Daniel for keeping "broken
Julien, Jan, Stefano, George: for changing "broken"

That's the "2 (+) / 4 split" I referred to (The "(+)" being the people
who agreed with Andy in private).  Regarding voting, I was only
counting the maintainers of the code in question; it coming under THE
REST, that would include everyone except Daniel; hence 1 - 4.  Not at
all that Daniel's opinion doesn't matter, but that from a governance
perspective, it's the maintainers (and then the committers) who get
votes in the case of a formal escalation.

 -George


From xen-devel-bounces@lists.xenproject.org Fri Dec 01 23:23:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Dec 2023 23:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645796.1008156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Cr5-0002T4-Oq; Fri, 01 Dec 2023 23:23:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645796.1008156; Fri, 01 Dec 2023 23:23:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Cr5-0002Sx-MD; Fri, 01 Dec 2023 23:23:31 +0000
Received: by outflank-mailman (input) for mailman id 645796;
 Fri, 01 Dec 2023 23:23: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 1r9Cr4-0002Sr-74
 for xen-devel@lists.xenproject.org; Fri, 01 Dec 2023 23:23: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 1r9Cr3-00032J-4T; Fri, 01 Dec 2023 23:23:29 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r9Cr2-0004tP-RB; Fri, 01 Dec 2023 23:23:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=GDj1avht0w4HfBlVmADhv/jZTV+adPqS60hFif+I7I4=; b=WU9th68OdFuiUFwadAJnEqeFV4
	TZrA7dBUuMTgKEImXtsiBIyHhi3Zh7Sv7tWcxgw9/xL9jRP4dftU6I/pbWmAQehCZUwy9aE2A/Gy2
	Z50kBd/IVC8mOt5EqPgWGpnFJUFLhzBn9F89MkZsF11LjTuUIt44Q9osYAZjYIcS1M8c=;
Message-ID: <4ce0f52f-8a63-4d10-8cea-5c3b905477ec@xen.org>
Date: Fri, 1 Dec 2023 23:23:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
Content-Language: en-GB
To: Timothy Pearson <tpearson@raptorengineering.com>
Cc: Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Oleksii <oleksii.kurochko@gmail.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
 <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
 <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
 <7e0ea8d9ca0a3a90550eb7b9e65fe86c.squirrel@vali.starlink.edu>
 <1981531f-a919-4569-9b6b-8f962f9d7cfb@xen.org>
 <536439989.51518893.1701471704571.JavaMail.zimbra@raptorengineeringinc.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <536439989.51518893.1701471704571.JavaMail.zimbra@raptorengineeringinc.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 01/12/2023 00:01, Timothy Pearson wrote:
> 
> 
> ----- Original Message -----
>> From: "Julien Grall" <julien@xen.org>
>> To: "Timothy Pearson" <tpearson@raptorengineering.com>
>> Cc: "Shawn Anastasio" <sanastasio@raptorengineering.com>, "xen-devel" <xen-devel@lists.xenproject.org>, "Jan Beulich"
>> <jbeulich@suse.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, "Stefano Stabellini" <sstabellini@kernel.org>,
>> "Bertrand Marquis" <bertrand.marquis@arm.com>, "Michal Orzel" <michal.orzel@amd.com>, "Oleksii"
>> <oleksii.kurochko@gmail.com>
>> Sent: Friday, December 1, 2023 4:35:55 PM
>> Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
> 
>> Hi,
>>
>> On 01/12/2023 22:10, tpearson@raptorengineering.com wrote:
>>>> (+ Arm and RISC-V folks)
>>>>
>>>> Hi Shawn,
>>>>
>>>> On 01/12/2023 20:59, Shawn Anastasio wrote:
>>>>> Adapt arm's earlyfdt parsing code to ppc64 and enable Xen's early boot
>>>>> allocator. Routines for parsing arm-specific devicetree nodes (e.g.
>>>>> multiboot) were excluded, reducing the overall footprint of code that
>>>>> was copied.
>>>>
>>>> I expect RISC-V to want similar code. I am not really thrilled in the
>>>> idea of having 3 similar copy of the parsing. So can we extract the
>>>> common bits (or harmonize it) so it can be shared?
>>>>
>>>> Maybe Oleksii has already a version doing that.
>>>
>>> Just my $0.02, but wouldn't it make more sense to have the RISC-V port
>>> handle the deduplication, seeing as the POWER support came first here?  We
>>> don't know if/when the RISC-V port will be ready for submission, so I'm
>>> not sure why we should be on the hook for this particular work.
>>
>> That would have been a valid point if you were writing a brand new
>> implementation. But this was *copied* from Arm.
>>
>> Looking at the diff between arm/bootfdt.c and ppc/bootfdt.c, you seem to
>> have:
>>     - As well copied some code from arm/setup.c
>>     - Re-order some statement (not clear why)
>>     - Remove some code which you say are Arm specific. Yet some is part
>> of the Device-Tree spec and I would expect to be used in the future.
>>
>> So my question here stands. Why are you mainly copying verbatimly the
>> Arm code rather than consolidating in one place?
> 
> That's fair, with the future RISC-V port removed from the discussion and good reasons still being put forth it makes more sense to deduplicate now.  Thank you for clarifying the objection! :)

I have had a brief look at the differences. I moved some of the 
functions to bootfdt.c in order to match PPC. Below the diff after that.

Leaving aside some of the clean-up, it sounds like you:
* removed BOOTMOD_{RAMDISK, XSM...}. So how do you plan to pass XSM blob 
and ramdisk in the future?
* split long prink-messages. For Xen, we keep them in one line even if 
it is over 80 characters to facilite grepping.
* Remove device_tree_node_is_available(), I believe you still need it 
because the property is not Arm specific.
* Remove process_multiboot(), how do you plan to handle dom0less domain 
in the future?
* Likewise for xen,static-mem and boot_fdt_cmdline()?
* fdt_get_mem_rsv_paddr(), this is part of the DT is used to reserve 
memory. This was superseed to /reserved-memory, but I wonder how 
widespread this is on PPC?
* You are removing the sorting of the memory bank. We had to do the 
sorting on Arm because some DT didn't have the banks sorted and this 
helped will the logic memory subystem logic. I can understand if you 
don't need it, but it would not hurt.
* If am not mistaken you are adding the Xen module as BOOTMOD_KERNEL, 
however this is meant to be used for the domain kernel. Xen should be 
BOOTMOD_XEN.

Overall, it feels to me that nearly (if not all) bootfdt.c can be moved 
to common (maybe under a new directory common/device-tree?) and #ifdef 
bits that are dom0less specific (we now have a Kconfig for that). You 
can do the clean-up as well, but they would belong to separate patches.

I hope that helps.

Cheers,

--- ../arm/bootfdt.c	2023-12-01 23:02:43.501050219 +0000
+++ bootfdt.c	2023-12-01 22:26:47.719734253 +0000
@@ -1,9 +1,12 @@
-/* SPDX-License-Identifier: GPL-2.0 */
+/* SPDX-License-Identifier: GPL-2.0-only */
  /*
- * Early Device Tree
+ * Early Device Tree and boot info bookkeeping.
+ * Derived from arch/arm/bootfdt.c and setup.c.
   *
   * Copyright (C) 2012-2014 Citrix Systems, Inc.
+ * Copyright (C) Raptor Engineering LLC
   */
+
  #include <xen/types.h>
  #include <xen/lib.h>
  #include <xen/kernel.h>
@@ -15,7 +18,8 @@
  #include <xen/sort.h>
  #include <xsm/xsm.h>
  #include <asm/setup.h>
-#include <asm/static-shmem.h>
+
+struct bootinfo __initdata bootinfo;

  struct bootmodule __init *add_boot_module(bootmodule_kind kind,
                                            paddr_t start, paddr_t size,
@@ -62,10 +66,6 @@
      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();
      }
  }
@@ -91,8 +91,9 @@
              continue;
          else
          {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping 
with mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, mod_start, mod_end);
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with"
+                   " mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n", 
region_start,
+                   region_end, i, mod_start, mod_end);
              return true;
          }
      }
@@ -121,8 +122,9 @@
              continue;
          else
          {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping 
with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, bank_start, bank_end);
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with"
+                   " bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n", 
region_start,
+                   region_end, i, bank_start, bank_end);
              return true;
          }
      }
@@ -149,30 +151,6 @@
                                     region_start, region_size) )
          return true;

-#ifdef CONFIG_ACPI
-    /* Check if input region is overlapping with ACPI 
EfiACPIReclaimMemory */
-    if ( meminfo_overlap_check(&bootinfo.acpi, region_start, region_size) )
-        return true;
-#endif
-
-    return false;
-}
-
-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;
  }

@@ -185,33 +163,14 @@
      name = fdt_get_name(fdt, node, NULL);
      match_len = strlen(match);

-    /* Match both "match" and "match@..." patterns but not
-       "match-foo". */
+    /*
+     * 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)
@@ -247,19 +206,16 @@

  static int __init device_tree_get_meminfo(const void *fdt, int node,
                                            const char *prop_name,
-                                          u32 address_cells, u32 
size_cells,
+                                          uint32_t address_cells, 
uint32_t size_cells,
                                            void *data, enum 
membank_type type)
  {
      const struct fdt_property *prop;
      unsigned int i, banks;
      const __be32 *cell;
-    u32 reg_cells = address_cells + size_cells;
+    uint32_t reg_cells = address_cells + size_cells;
      paddr_t start, size;
      struct meminfo *mem = data;

-    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",
@@ -272,7 +228,7 @@
          return -ENOENT;

      cell = (const __be32 *)prop->data;
-    banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
+    banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof(uint32_t));

      for ( i = 0; i < banks && mem->nr_banks < NR_MEM_BANKS; i++ )
      {
@@ -298,13 +254,13 @@
      return 0;
  }

-u32 __init device_tree_get_u32(const void *fdt, int node,
-                               const char *prop_name, u32 dflt)
+uint32_t __init device_tree_get_uint32_t(const void *fdt, int node,
+                               const char *prop_name, uint32_t dflt)
  {
      const struct fdt_property *prop;

      prop = fdt_get_property(fdt, node, prop_name, NULL);
-    if ( !prop || prop->len < sizeof(u32) )
+    if ( !prop || prop->len < sizeof(uint32_t) )
          return dflt;

      return fdt32_to_cpu(*(uint32_t*)prop->data);
@@ -332,13 +288,13 @@
       */
      int depth = 0;
      const int first_node = node;
-    u32 address_cells[DEVICE_TREE_MAX_DEPTH];
-    u32 size_cells[DEVICE_TREE_MAX_DEPTH];
+    uint32_t address_cells[DEVICE_TREE_MAX_DEPTH];
+    uint32_t size_cells[DEVICE_TREE_MAX_DEPTH];
      int ret;

      do {
          const char *name = fdt_get_name(fdt, node, NULL);
-        u32 as, ss;
+        uint32_t as, ss;

          if ( depth >= DEVICE_TREE_MAX_DEPTH )
          {
@@ -350,9 +306,9 @@
          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[depth] = device_tree_get_uint32_t(fdt, node,
                                                     "#address-cells", as);
-        size_cells[depth] = device_tree_get_u32(fdt, node,
+        size_cells[depth] = device_tree_get_uint32_t(fdt, node,
                                                  "#size-cells", ss);

          /* skip the first node */
@@ -371,7 +327,7 @@

  static int __init process_memory_node(const void *fdt, int node,
                                        const char *name, int depth,
-                                      u32 address_cells, u32 size_cells,
+                                      uint32_t address_cells, uint32_t 
size_cells,
                                        void *data)
  {
      return device_tree_get_meminfo(fdt, node, "reg", address_cells, 
size_cells,
@@ -380,13 +336,16 @@

  static int __init process_reserved_memory_node(const void *fdt, int node,
                                                 const char *name, int 
depth,
-                                               u32 address_cells,
-                                               u32 size_cells,
+                                               uint32_t address_cells,
+                                               uint32_t size_cells,
                                                 void *data)
  {
-    int rc = process_memory_node(fdt, node, name, depth, address_cells,
+    int rc;
+
+    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 )
@@ -396,124 +355,28 @@

  static int __init process_reserved_memory(const void *fdt, int node,
                                            const char *name, int depth,
-                                          u32 address_cells, u32 
size_cells)
+                                          uint32_t address_cells, 
uint32_t size_cells)
  {
      return device_tree_for_each_node(fdt, node,
                                       process_reserved_memory_node,
                                       &bootinfo.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)
+                                      uint32_t address_cells, uint32_t 
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.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) )
+    if ( len != sizeof(uint32_t) && len != sizeof(uint64_t) )
      {
          printk("linux,initrd-start property has invalid length %d\n", 
len);
          return -EINVAL;
@@ -526,7 +389,7 @@
          printk("linux,initrd-end not present but -start was\n");
          return -EINVAL;
      }
-    if ( len != sizeof(u32) && len != sizeof(u64) )
+    if ( len != sizeof(uint32_t) && len != sizeof(uint64_t) )
      {
          printk("linux,initrd-end property has invalid length %d\n", len);
          return -EINVAL;
@@ -547,51 +410,21 @@
      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.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,
+                                  uint32_t address_cells, uint32_t 
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") )
+    if( device_tree_node_matches(fdt, node, "memory") )
          rc = process_memory_node(fdt, node, name, depth,
                                   address_cells, size_cells, 
&bootinfo.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);
@@ -604,7 +437,7 @@
      struct meminfo *mem_resv = &bootinfo.reserved_mem;
      struct bootmodules *mods = &bootinfo.modules;
      struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    unsigned int i, j, nr_rsvd;
+    unsigned int i, j;

      for ( i = 0; i < mi->nr_banks; i++ )
          printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
@@ -618,21 +451,9 @@
                  mods->module[i].start + mods->module[i].size,
                  boot_module_kind_as_string(mods->module[i].kind));

-    nr_rsvd = fdt_num_mem_rsv(device_tree_flattened);
-    for ( i = 0; i < nr_rsvd; i++ )
-    {
-        paddr_t s, e;
-
-        if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &e) < 0 )
-            continue;
-
-        /* fdt_get_mem_rsv_paddr returns length */
-        e += s;
-        printk(" RESVD[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i, s, e);
-    }
      for ( j = 0; j < mem_resv->nr_banks; j++, i++ )
      {
-        printk(" RESVD[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i,
+        printk(" RESVD_[%u]: %"PRIpaddr" - %"PRIpaddr"\n", i,
                 mem_resv->bank[j].start,
                 mem_resv->bank[j].start + mem_resv->bank[j].size - 1);
      }
@@ -644,89 +465,43 @@
      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
+ * boot_fdt_init - initialize bootinfo from a DTB
   * @fdt: flattened device tree binary
+ * @paddr: physical address of device tree binary
   *
   * Returns the size of the DTB.
   */
-size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
+size_t __init boot_fdt_init(const void *fdt, paddr_t paddr)
  {
      int ret;
+    paddr_t xen_start, xen_end;

      ret = fdt_check_header(fdt);
      if ( ret < 0 )
          panic("No valid device tree\n");

-    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
-
      device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);

      /*
-     * 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.
+     * The device tree passed to us may have been allocated by skiboot, 
in which
+     * case it will exist within a reserved region and this call will 
fail. This
+     * is fine, however, since either way the allocator will know not 
to step on
+     * the device tree.
       */
-    sort(bootinfo.mem.bank, bootinfo.mem.nr_banks, sizeof(struct membank),
-         cmp_memory_node, swap_memory_node);
+    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
+
+    /*
+     * Xen relocates itself at the ppc64 entrypoint, so we need to 
manually mark
+     * the kernel module.
+     */
+    xen_start = __pa(_start);
+    xen_end = PAGE_ALIGN(__pa(_end));
+    if ( !add_boot_module(BOOTMOD_KERNEL, xen_start, xen_end, false) )
+        panic("Xen overlaps reserved memory! %016lx - %016lx\n", xen_start,
+              xen_end);

      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:
- */


-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 00:59:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 00:59:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645822.1008222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9ELi-0004pL-Hh; Sat, 02 Dec 2023 00:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645822.1008222; Sat, 02 Dec 2023 00: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 1r9ELi-0004pE-F4; Sat, 02 Dec 2023 00:59:14 +0000
Received: by outflank-mailman (input) for mailman id 645822;
 Sat, 02 Dec 2023 00:59: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 1r9ELh-0004p4-I5; Sat, 02 Dec 2023 00:59: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 1r9ELh-0005MC-Ff; Sat, 02 Dec 2023 00:59: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 1r9ELh-0007Ve-0w; Sat, 02 Dec 2023 00:59:13 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9ELg-0001gC-UD; Sat, 02 Dec 2023 00:59:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Y70htq2kZLDG6YFlKvMixDyZn7pPZjCyj3XnZmwTQt0=; b=PGjwIwwxW1y0rVHMLEGpQDqzxW
	ANY+ILKCUeN3blNieZwxS/te25qTE2ybfS5+JmOkIMSy5UBpGg22P8A5BKiVDCwRRifEIKVcoZLz/
	wyK/T4pSocZoy7XDxTTMnjBxC9X7qi0hw72uB2JJLckLyOIkQxs/3WAVCN6keSiWOcFs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183965-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 183965: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-qemut-rhel6hvm-amd:guest-start/redhat.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm: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: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-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-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-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-i386-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-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-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-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1571ff7a987b88b20598a6d49910457f3b2c59f1
X-Osstest-Versions-That:
    xen=f0dd0cd9598f22ee5509bb5d1466e4821834c4ba
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 02 Dec 2023 00:59:12 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-qemut-rhel6hvm-amd 14 guest-start/redhat.repeat fail pass in 183970-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183952
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183959
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183959
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183959
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183959
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183959
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183959
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183959
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183959
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183959
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183959
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183959
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-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-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-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-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-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-i386-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-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     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-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-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1571ff7a987b88b20598a6d49910457f3b2c59f1
baseline version:
 xen                  f0dd0cd9598f22ee5509bb5d1466e4821834c4ba

Last test of basis   183959  2023-12-01 03:24:21 Z    0 days
Testing same since   183965  2023-12-01 14:40:34 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Julien Grall <jgrall@amazon.com>
  Michal Orzel <michal.orzel@amd.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Simone Ballarin <simone.ballarin@bugseng.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           fail    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   f0dd0cd959..1571ff7a98  1571ff7a987b88b20598a6d49910457f3b2c59f1 -> master


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645833.1008270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emw-0002wT-0H; Sat, 02 Dec 2023 01:27:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645833.1008270; Sat, 02 Dec 2023 01:27:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emv-0002uL-Ri; Sat, 02 Dec 2023 01:27:21 +0000
Received: by outflank-mailman (input) for mailman id 645833;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Emt-000271-O8
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:19 +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 ed06d412-90b1-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 02:27:16 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B20exWb004068; Sat, 2 Dec 2023 01:27:14 GMT
Received: from eur02-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur02lp2040.outbound.protection.outlook.com [104.47.11.40])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqt8mg1hm-4
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:14 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:09 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27: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: ed06d412-90b1-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LmNB+vq+TOgQkcGi81io7BXU1Y49/WmBS+YUC0NuOXDV6Yzk2lNrVuOoPfZZ4AY2g4WPSiNx8GI1/l/86DLzzHkKTKXW1nrpWF1EYgu+mZ5VGyzBRc8Pjm+kaF+67k/NqvVIpKXa8tMFedEBq1XEQlGzsJ+4b922DlPDLt639pC04KvR7b5BXvQ/8Y/fYJet7AKSo16tSGMYvnD5uC+DGy3g5OLl5f3w0f8F707PVv/Hs+wIYovUyodQ+5W1St2Fzn+22qAYlAG+VwDkn5paApHlbd0wheZ8cnG7LYirglGLVFrJT71BMIT12iURasru0Zfl7/rPnOlEZtqfDLegVA==
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=HU3w/MVRT7OnffWTfx0/oqZxB5j1V8feoRNAk0O5Ezo=;
 b=jq8IEYCGGOrhw2u32VsxwnUSe9zGje8Hg+hE4V7vAs+T49Sbxgtjz5v4szGRUPlS/44u/94qtGgI2YmaWq8TlNgRcACThbsq/gtTkeQKYP6lgLTnD2w9Tyzebay+Q7tYhAmA9Ch05zo4a1mkBhkcupmMSXIAyFrIsmxvYieLiSiDCKDw/5oW7P2QeAdHd3czatRjFXaoiFGAWFPZKgouesF5VHVMGlBbhsXH8fEw7OEXaWnMwltahJzoXutgs0DhSFZcUCi9u12gXYVR6FcI6twfx5wzfpcqlLYw3+yAeeZvdGemF9Yvmvo+9/O0trLgIHXHgytTJG284i+dOC7fiA==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HU3w/MVRT7OnffWTfx0/oqZxB5j1V8feoRNAk0O5Ezo=;
 b=LHdYUO2H4ADVu2K5xxb9f9z95unZ3poZ9Y4mndVEwMJNmuhf6dlyUWNcilrV2R6kB3DLUj11xictAhe99x0/a3z722GdVQ2oLEgi08bTp+QL84bN0Al2+yVqnMEmMBpnTIpar4eAYSoPttm+FrkwPDAOpV7nhrX8ipd17TqRXMp4fCz1ExgklBYIBI6zXvcST0YXSyL5t2tV2HD5OqgDZJ0TPqvdWgUAvx/k+nN/rPOXJbbtw2fricXkhJnTaS3ay9SPxYl/80cILpPE+nG1M7exs5cKL7jXc5Q9kTaGhgcG7MjbShTz+p2ovMfD2hJciS+5f+i6cWytuAyNULnhVA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 10/17] vpci/header: handle p2m range sets per BAR
Thread-Topic: [PATCH v11 10/17] vpci/header: handle p2m range sets per BAR
Thread-Index: AQHaJL6ovuONmUhRl0Ozo/OYp0VBgw==
Date: Sat, 2 Dec 2023 01:27:05 +0000
Message-ID: <20231202012556.2012281-11-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 8c0d6dd1-22ac-4fdf-8f1a-08dbf2d5cd2c
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;
x-microsoft-antispam-message-info: 
 ACc05rBYttSwdH0bhs5E9hNr/W3ulRZmqIMNWEWDv0GCUayoROtm5kKes8ORIyHI/3pdc33pdRKzrXEeBAbHZBOaBE3A4qxG+tadd1++YLaKn7pyPlq1DBC0l7UefgMD3lmb0NtI6qF2M5iJoKHZHdnP0r/BdNiAAYtR1kEnlP08R8jTdmmu5cyIvkiiw9kQyUfN20nbldXCnKEVIthybf+PfGFSP0DEV6dMxOhWxuIp1nfLOnpKyh3IroN6XrcxNxVMpIjlUFuO4BdaZKuSPwhGHi2J2DpwBJkdsjt40cj/CU4SJxN2ZgHPcFoHJTAxVA8+W2709iZCHzvfzR31rcVCZV/eVD3s/JDehTHUM3NgITLWJv+Fd6eV6RUZmiYnf+k2Pah38MbCypllkEhbLQYusy/NWKAIfphbOpdRapdtks8FLz5dOrZ9MGTQDWeUijCdncuuCV15RWyo+yBx+45/xE595MRNOvNDpXdqGWYgcVWlXezl2isx4fYww7PS/5mInujOTnHQqO/fNzM29BGm/lrCzwKXr2SfqUcPoAIyEUgWGBW1SIpjpj4hB/L9melAjtv28CZSfORoW9Eev5Nr0VfVOisl1idwI3V7Q9+cFNrm4yqjHXgAATL8aI1+JBQ9OGWmzT9zeQEheiTll2rr38WckUCIuoamW2Q0lZI=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(230273577357003)(230173577357003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(30864003)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?T1BUOXRaTEdMSWd1aEFzK21XZWlGQXB5TU1CUUJ2NjVwY0FwckRFRWpBUERp?=
 =?utf-8?B?Y0FSUjZXVFVvKzV4eUlZZENMalZkaGJodEFTaHhCWUdqY1BlNWoycDZMc08x?=
 =?utf-8?B?Um1SejJxR2ZkeDZoaTYrS2gvQ1llL21QV3g1NjJSRWoralg2NVBzdDlJZFQw?=
 =?utf-8?B?SmlDa1c1UXJEdEZ5aGVBMlFMQ2dxYW95NWM4VlJ2bXFWQS9xSi9jZG53Rm1r?=
 =?utf-8?B?V1pvTnJ0aHkzWDRWOTVVcjN4SnZCVzZXQTFkUG5wd3h6d0E0Uko3QVlxaU9t?=
 =?utf-8?B?Q0s5dlRtYnhHNHptaU5nQmhDNi9qeTJWeXFpVXVOQldzRWNHSjVIRlVxc011?=
 =?utf-8?B?VjFjbWt3NFg4S08zeWNRTHkwcXo2VDkvTXpGRnBYMWM1a05RZHNNSW9ROUJ1?=
 =?utf-8?B?Y3BWRlJIdVZ3OGVCNmhyNnluQjA2d2QrS25ERGRESzZ1am9wd1NVb2FxUG9n?=
 =?utf-8?B?R1ExWEFyenYyY0RYY1gyd1craytPbzVSR3U4SDhtMHVOME5IV0E2MHM4VDZG?=
 =?utf-8?B?dElINFlmOU5rQ2ZqTG9iaWdlbmlQQWpkeCs2OFJxTDUvSjQ3ZG1HRkNVUVFk?=
 =?utf-8?B?U1hJelZxT3RCYWxadUFuVVBwWk9NRFIyV0NQTXdKQUc1V0NPVHUrUFpXdTZJ?=
 =?utf-8?B?eUJlUXVrbXRjbVR1UE5Pa2pGQzIwclE2RU8zRWZLdEZ3RnRtWk9zMWROelhY?=
 =?utf-8?B?WUdveG02cWZuVDU4ZlJkQXpVNW14TlMzOWZOV05wdGVodXJNby91V1hVd1gv?=
 =?utf-8?B?bjVMcllMazg4eFR5NVYvWGJEaGtLN1l3cHh4M29iYTc3dlJoK2h6eGJiSnZw?=
 =?utf-8?B?VDlmck8wblVkZk5wWjVvZmlIb2k4SmYwZ2dHbnJwa2ZiM2FCeS8xNHc5akFZ?=
 =?utf-8?B?cjcvSk9EcWdPbnZhRW9zNFVaR1pzT2RMb2RkbWJlbTh3NVplN1JTUWNObFlt?=
 =?utf-8?B?N2hkUGZ3NytZOG0wQ0Q1SUFQM2ZNZk9JazFzYkgza0ZxcGpuUTFhT1FHOG5M?=
 =?utf-8?B?a0ZpM1NqaG9lbDJ2NXJ5VURvK2NNSVg4eHE5SzFwY21mVTk3eHUxMDMvZ3Rl?=
 =?utf-8?B?RmNHVG1jUHhWTUZUczdlbGJPQU9MSlhTSStlN1FERU05MTZCNHQ3bFBIWDJI?=
 =?utf-8?B?MS9NR2Rab1hvZTBza1Q0bUxlamgzRVo2MVVXOXRweFFNQWhmWTR1N1kvOWFr?=
 =?utf-8?B?aVdhWnR5dmphOGNqTUxjem5sTEY4dDEzay9zOE4rUDJhOVcvUWRRZGhUWWdC?=
 =?utf-8?B?Ry9YbkxxVDNnVHgvbGZ4VW5LSzJRbWVDaXd3a0o1Z2RkU2RNc3FnOVBSNDhC?=
 =?utf-8?B?SDBIcTd3YnNFanJBdVluNXFlVEpFbXlXRVVuRTdjdHBDNmxrRkJIRFU3YmNK?=
 =?utf-8?B?L1IzZXZTZ0RCL2krM0RjVWJKNU1NUXNvQ3JZcEpTOHFhT1FaaG9EMEJJUGVG?=
 =?utf-8?B?aHJ1L0o2bitHTDdqa3o0QWY5WEtxTG90Z0hRaTVUQTZkQXp0ZmpnREdQRUl1?=
 =?utf-8?B?K0dGYXFsKzJyeHI0OC9oYWpROFNNMXZpb2w0K3AvTEZVWDMvQlp3UlhrSDRk?=
 =?utf-8?B?WGpQRXNNdlZrM0Q3VmVSL3BMMzVzekg4MWZkcGQxNzJPSkNyajNhTG5QOHZy?=
 =?utf-8?B?dHJTQVhTb3lGT2F6Y3ZlZlcwWlMvNmtSQTRkcHp0TWhFRWN5c3RiM2QreFow?=
 =?utf-8?B?QWdEdVBRWVEybVM4b2I0Mmc0VlpCWEpBTWlmd0pVeTBtcy94OXc0Z2tadTFS?=
 =?utf-8?B?ZHVoczN6emh2RUFrUFYwOGtLV3I2T2NhQndTRUo5bkFnK080TkhJTnE1Z0w2?=
 =?utf-8?B?amVRb2lrcndlZ0tIQkQwOURHbDZaKzltRHFQK3loV3hQWjN6WUk5ZUpTSFFr?=
 =?utf-8?B?cEZJOTV2UU5Iek1CdGpHNnFrZTJ1RFdhdnpIeXlmbFUxSVd4RUNOMU9jaENr?=
 =?utf-8?B?c1VDaWJsVUZKckRmTlZXVldaZFJiYzBKY2wzazNBZHVDMko1NHZra3Y2eXA0?=
 =?utf-8?B?a0paTmZLSXFxajFYZjB3WDhmcHg4M1pnSEJsZWgyWFpNdkpObC9PcjhPWkJv?=
 =?utf-8?B?YnlMSmtRTjJ5a0svODd0SC90amJ6OWxXVVQwdFQzelo0UkdJN2EvMzM4TUpM?=
 =?utf-8?B?elpveVZERFNtUyt5NmNxanJYSStjWnZydU9nb01sdE9WMEZkZWNhb3c3amRn?=
 =?utf-8?B?QUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <17F77D55BA824E4184BB3E1AAC4D11DB@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c0d6dd1-22ac-4fdf-8f1a-08dbf2d5cd2c
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:05.4098
 (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: qXvwjJSqm2E1ESW1zU1Ri18Umjfw4XchjKLd5GHJJwKzNP5oQujUKwrmV7jy+C2xZPRh2mzUdPEGukXbSXJQ7H2UxUQnLmoMheeHEm5di/o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-ORIG-GUID: 4Swmap5dXgCDj_U_mu-8DJ8dqBQi8fJV
X-Proofpoint-GUID: 4Swmap5dXgCDj_U_mu-8DJ8dqBQi8fJV
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0
 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0
 malwarescore=0 lowpriorityscore=0 mlxlogscore=999 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw
YW0uY29tPg0KDQpJbnN0ZWFkIG9mIGhhbmRsaW5nIGEgc2luZ2xlIHJhbmdlIHNldCwgdGhhdCBj
b250YWlucyBhbGwgdGhlIG1lbW9yeQ0KcmVnaW9ucyBvZiBhbGwgdGhlIEJBUnMgYW5kIFJPTSwg
aGF2ZSB0aGVtIHBlciBCQVIuDQpBcyB0aGUgcmFuZ2Ugc2V0cyBhcmUgbm93IGNyZWF0ZWQgd2hl
biBhIFBDSSBkZXZpY2UgaXMgYWRkZWQgYW5kIGRlc3Ryb3llZA0Kd2hlbiBpdCBpcyByZW1vdmVk
IHNvIG1ha2UgdGhlbSBuYW1lZCBhbmQgYWNjb3VudGVkLg0KDQpOb3RlIHRoYXQgcmFuZ2VzZXRz
IHdlcmUgY2hvc2VuIGhlcmUgZGVzcGl0ZSB0aGVyZSBiZWluZyBvbmx5IHVwIHRvDQozIHNlcGFy
YXRlIHJhbmdlcyBpbiBlYWNoIHNldCAodHlwaWNhbGx5IGp1c3QgMSkuIEJ1dCByYW5nZXNldCBw
ZXIgQkFSDQp3YXMgY2hvc2VuIGZvciB0aGUgZWFzZSBvZiBpbXBsZW1lbnRhdGlvbiBhbmQgZXhp
c3RpbmcgY29kZSByZS11c2FiaWxpdHkuDQoNCkFsc28gbm90ZSB0aGF0IGVycm9yIGhhbmRsaW5n
IG9mIHZwY2lfcHJvY2Vzc19wZW5kaW5nKCkgaXMgc2xpZ2h0bHkNCm1vZGlmaWVkLCBhbmQgdGhh
dCB2UENJIGhhbmRsZXJzIGFyZSBubyBsb25nZXIgcmVtb3ZlZCBpZiB0aGUgY3JlYXRpb24NCm9m
IHRoZSBtYXBwaW5ncyBpbiB2cGNpX3Byb2Nlc3NfcGVuZGluZygpIGZhaWxzLCBhcyB0aGF0J3Mg
dW5saWtlbHkgdG8NCmxlYWQgdG8gYSBmdW5jdGlvbmFsIGRldmljZSBpbiBhbnkgY2FzZS4NCg0K
VGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBvZiBtYWtpbmcgbm9uLWlkZW50aXR5IG1hcHBpbmdzIGlu
IHAybSBmb3IgdGhlIE1NSU9zLg0KDQpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNo
ZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+DQpTaWduZWQtb2ZmLWJ5OiBW
b2xvZHlteXIgQmFiY2h1ayA8dm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20+DQpSZXZpZXdlZC1i
eTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQoNCi0tLQ0KSW4gdjEx
Og0KLSBNb2RpZmllZCBjb21taXQgbWVzc2FnZSB0byBub3RlIGNoYW5nZXMgaW4gZXJyb3IgaGFu
ZGxpbmcgaW4NCnZwY2lfcHJvY2Vzc19wZW5kaW5nKCkNCi0gUmVtb3ZlZCByZWR1bmRhbnQgQVNT
RVJUKCkgaW4gZGVmZXJfbWFwLiBUaGVyZSBpcyBubyByZWFzb24gdG8NCmludHJvZHVjZSBpdCBp
biB0aGlzIHBhdGNoIGFuZCB0aGVyZSBpcyBubyBvdGhlciBwYXRjaCB3aGVyZQ0KaW50cm9kdWNp
bmcgdGhhdCBBU1NFUlQoKSB3YXMgYXBwcm9wcmlhdGUuDQotIEZpeGVkIGZvcm1hdHRpbmcNCi0g
dnBjaV9wcm9jZXNzX3BlbmRpbmcoKSBjbGVhcnMgdi0+dnBjaS5wZGV2IGlmIGl0IGZhaWxlZA0K
ICBjaGVja3MgYXQgdGhlIGJlZ2lubmluZw0KLSBBZGRlZCBSb2dlcidzIFItQiB0YWcNCkluIHYx
MDoNCi0gQWRkZWQgYWRkaXRpb25hbCBjaGVja3MgdG8gdnBjaV9wcm9jZXNzX3BlbmRpbmcoKQ0K
LSB2cGNpX3Byb2Nlc3NfcGVuZGluZygpIG5vdyBjbGVhcnMgcmFuZ2VzZXQgaW4gY2FzZSBvZiBm
YWlsdXJlDQotIEZpeGVkIGxvY2tzIGluIHZwY2lfcHJvY2Vzc19wZW5kaW5nKCkNCi0gRml4ZWQg
Y29kaW5nIHN0eWxlIGlzc3Vlcw0KLSBGaXhlZCBlcnJvciBoYW5kbGluZyBpbiBpbml0X2JhcnMN
CkluIHY5Og0KLSByZW1vdmVkIGQtPnZwY2kubWFwX3BlbmRpbmcgaW4gZmF2b3Igb2YgY2hlY2tp
bmcgdi0+dnBjaS5wZGV2ICE9DQpOVUxMDQotIHByaW50ayAtPiBncHJpbnRrDQotIHJlbmFtZWQg
YmFyIHZhcmlhYmxlIHRvIGZpeCBzaGFkb3dpbmcNCi0gZml4ZWQgYnVnIHdpdGggaXRlcmF0aW5n
IG9uIHJlbW90ZSBkZXZpY2UncyBCQVJzDQotIHJlbGF4ZWQgbG9jayBpbiB2cGNpX3Byb2Nlc3Nf
cGVuZGluZw0KLSByZW1vdmVkIHN0YWxlIGNvbW1lbnQNClNpbmNlIHY2Og0KLSB1cGRhdGUgYWNj
b3JkaW5nIHRvIHRoZSBuZXcgbG9ja2luZyBzY2hlbWUNCi0gcmVtb3ZlIG9kZCBmYWlsIGxhYmVs
IGluIG1vZGlmeV9iYXJzDQpTaW5jZSB2NToNCi0gZml4IGNvbW1lbnRzDQotIG1vdmUgcmFuZ2Vz
ZXQgYWxsb2NhdGlvbiB0byBpbml0X2JhcnMgYW5kIG9ubHkgYWxsb2NhdGUNCiAgZm9yIE1BUFBB
QkxFIEJBUnMNCi0gY2hlY2sgZm9yIG92ZXJsYXAgd2l0aCB0aGUgYWxyZWFkeSBzZXR1cCBCQVIg
cmFuZ2VzDQpTaW5jZSB2NDoNCi0gdXNlIG5hbWVkIHJhbmdlIHNldHMgZm9yIEJBUnMgKEphbikN
Ci0gY2hhbmdlcyByZXF1aXJlZCBieSB0aGUgbmV3IGxvY2tpbmcgc2NoZW1lDQotIHVwZGF0ZWQg
Y29tbWl0IG1lc3NhZ2UgKEphbikNClNpbmNlIHYzOg0KLSByZS13b3JrIHZwY2lfY2FuY2VsX3Bl
bmRpbmcgYWNjb3JkaW5nbHkgdG8gdGhlIHBlci1CQVIgaGFuZGxpbmcNCi0gcy9udW1fbWVtX3Jh
bmdlcy9tYXBfcGVuZGluZyBhbmQgcy91aW50OF90L2Jvb2wNCi0gQVNTRVJUKGJhci0+bWVtKSBp
biBtb2RpZnlfYmFycw0KLSBjcmVhdGUgYW5kIGRlc3Ryb3kgdGhlIHJhbmdlc2V0cyBvbiBhZGQv
cmVtb3ZlDQotLS0NCiB4ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jIHwgMjU3ICsrKysrKysrKysr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tDQogeGVuL2RyaXZlcnMvdnBjaS92cGNpLmMgICB8
ICAgNiArDQogeGVuL2luY2x1ZGUveGVuL3ZwY2kuaCAgICB8ICAgMiArLQ0KIDMgZmlsZXMgY2hh
bmdlZCwgMTg1IGluc2VydGlvbnMoKyksIDgwIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEv
eGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCmlu
ZGV4IDQzMjE2NDI5ZDkuLjdjODRjZWU1ZDEgMTAwNjQ0DQotLS0gYS94ZW4vZHJpdmVycy92cGNp
L2hlYWRlci5jDQorKysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQpAQCAtMTYxLDYzICsx
NjEsMTA3IEBAIHN0YXRpYyB2b2lkIG1vZGlmeV9kZWNvZGluZyhjb25zdCBzdHJ1Y3QgcGNpX2Rl
diAqcGRldiwgdWludDE2X3QgY21kLA0KIA0KIGJvb2wgdnBjaV9wcm9jZXNzX3BlbmRpbmcoc3Ry
dWN0IHZjcHUgKnYpDQogew0KLSAgICBpZiAoIHYtPnZwY2kubWVtICkNCisgICAgc3RydWN0IHBj
aV9kZXYgKnBkZXYgPSB2LT52cGNpLnBkZXY7DQorICAgIHN0cnVjdCBtYXBfZGF0YSBkYXRhID0g
ew0KKyAgICAgICAgLmQgPSB2LT5kb21haW4sDQorICAgICAgICAubWFwID0gdi0+dnBjaS5jbWQg
JiBQQ0lfQ09NTUFORF9NRU1PUlksDQorICAgIH07DQorICAgIHN0cnVjdCB2cGNpX2hlYWRlciAq
aGVhZGVyID0gTlVMTDsNCisgICAgdW5zaWduZWQgaW50IGk7DQorDQorICAgIGlmICggIXBkZXYg
KQ0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAgICByZWFkX2xvY2soJnYtPmRvbWFpbi0+
cGNpX2xvY2spOw0KKw0KKyAgICBpZiAoICFwZGV2LT52cGNpIHx8ICh2LT5kb21haW4gIT0gcGRl
di0+ZG9tYWluKSApDQorICAgIHsNCisgICAgICAgIHYtPnZwY2kucGRldiA9IE5VTEw7DQorICAg
ICAgICByZWFkX3VubG9jaygmdi0+ZG9tYWluLT5wY2lfbG9jayk7DQorICAgICAgICByZXR1cm4g
ZmFsc2U7DQorICAgIH0NCisNCisgICAgaGVhZGVyID0gJnBkZXYtPnZwY2ktPmhlYWRlcjsNCisg
ICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhlYWRlci0+YmFycyk7IGkrKyApDQogICAg
IHsNCi0gICAgICAgIHN0cnVjdCBtYXBfZGF0YSBkYXRhID0gew0KLSAgICAgICAgICAgIC5kID0g
di0+ZG9tYWluLA0KLSAgICAgICAgICAgIC5tYXAgPSB2LT52cGNpLmNtZCAmIFBDSV9DT01NQU5E
X01FTU9SWSwNCi0gICAgICAgIH07DQotICAgICAgICBpbnQgcmMgPSByYW5nZXNldF9jb25zdW1l
X3Jhbmdlcyh2LT52cGNpLm1lbSwgbWFwX3JhbmdlLCAmZGF0YSk7DQorICAgICAgICBzdHJ1Y3Qg
dnBjaV9iYXIgKmJhciA9ICZoZWFkZXItPmJhcnNbaV07DQorICAgICAgICBpbnQgcmM7DQorDQor
ICAgICAgICBpZiAoIHJhbmdlc2V0X2lzX2VtcHR5KGJhci0+bWVtKSApDQorICAgICAgICAgICAg
Y29udGludWU7DQorDQorICAgICAgICByYyA9IHJhbmdlc2V0X2NvbnN1bWVfcmFuZ2VzKGJhci0+
bWVtLCBtYXBfcmFuZ2UsICZkYXRhKTsNCiANCiAgICAgICAgIGlmICggcmMgPT0gLUVSRVNUQVJU
ICkNCisgICAgICAgIHsNCisgICAgICAgICAgICByZWFkX3VubG9jaygmdi0+ZG9tYWluLT5wY2lf
bG9jayk7DQogICAgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAgICB9DQogDQotICAgICAg
ICB3cml0ZV9sb2NrKCZ2LT5kb21haW4tPnBjaV9sb2NrKTsNCi0gICAgICAgIHNwaW5fbG9jaygm
di0+dnBjaS5wZGV2LT52cGNpLT5sb2NrKTsNCi0gICAgICAgIC8qIERpc2FibGUgbWVtb3J5IGRl
Y29kaW5nIHVuY29uZGl0aW9uYWxseSBvbiBmYWlsdXJlLiAqLw0KLSAgICAgICAgbW9kaWZ5X2Rl
Y29kaW5nKHYtPnZwY2kucGRldiwNCi0gICAgICAgICAgICAgICAgICAgICAgICByYyA/IHYtPnZw
Y2kuY21kICYgflBDSV9DT01NQU5EX01FTU9SWSA6IHYtPnZwY2kuY21kLA0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICFyYyAmJiB2LT52cGNpLnJvbV9vbmx5KTsNCi0gICAgICAgIHNwaW5fdW5s
b2NrKCZ2LT52cGNpLnBkZXYtPnZwY2ktPmxvY2spOw0KLQ0KLSAgICAgICAgcmFuZ2VzZXRfZGVz
dHJveSh2LT52cGNpLm1lbSk7DQotICAgICAgICB2LT52cGNpLm1lbSA9IE5VTEw7DQogICAgICAg
ICBpZiAoIHJjICkNCi0gICAgICAgICAgICAvKg0KLSAgICAgICAgICAgICAqIEZJWE1FOiBpbiBj
YXNlIG9mIGZhaWx1cmUgcmVtb3ZlIHRoZSBkZXZpY2UgZnJvbSB0aGUgZG9tYWluLg0KLSAgICAg
ICAgICAgICAqIE5vdGUgdGhhdCB0aGVyZSBtaWdodCBzdGlsbCBiZSBsZWZ0b3ZlciBtYXBwaW5n
cy4gV2hpbGUgdGhpcyBpcw0KLSAgICAgICAgICAgICAqIHNhZmUgZm9yIERvbTAsIGZvciBEb21V
cyB0aGUgZG9tYWluIHdpbGwgbGlrZWx5IG5lZWQgdG8gYmUNCi0gICAgICAgICAgICAgKiBraWxs
ZWQgaW4gb3JkZXIgdG8gYXZvaWQgbGVha2luZyBzdGFsZSBwMm0gbWFwcGluZ3Mgb24NCi0gICAg
ICAgICAgICAgKiBmYWlsdXJlLg0KLSAgICAgICAgICAgICAqLw0KLSAgICAgICAgICAgIHZwY2lf
ZGVhc3NpZ25fZGV2aWNlKHYtPnZwY2kucGRldik7DQotICAgICAgICB3cml0ZV91bmxvY2soJnYt
PmRvbWFpbi0+cGNpX2xvY2spOw0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHNwaW5fbG9jaygm
cGRldi0+dnBjaS0+bG9jayk7DQorICAgICAgICAgICAgLyogRGlzYWJsZSBtZW1vcnkgZGVjb2Rp
bmcgdW5jb25kaXRpb25hbGx5IG9uIGZhaWx1cmUuICovDQorICAgICAgICAgICAgbW9kaWZ5X2Rl
Y29kaW5nKHBkZXYsIHYtPnZwY2kuY21kICYgflBDSV9DT01NQU5EX01FTU9SWSwNCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOw0KKyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZw
ZGV2LT52cGNpLT5sb2NrKTsNCisNCisgICAgICAgICAgICAvKiBDbGVhbiBhbGwgdGhlIHJhbmdl
c2V0cyAqLw0KKyAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0laRShoZWFkZXIt
PmJhcnMpOyBpKysgKQ0KKyAgICAgICAgICAgICAgICBpZiAoICFyYW5nZXNldF9pc19lbXB0eSho
ZWFkZXItPmJhcnNbaV0ubWVtKSApDQorICAgICAgICAgICAgICAgICAgICAgcmFuZ2VzZXRfZW1w
dHkoaGVhZGVyLT5iYXJzW2ldLm1lbSk7DQorDQorICAgICAgICAgICAgdi0+dnBjaS5wZGV2ID0g
TlVMTDsNCisNCisgICAgICAgICAgICByZWFkX3VubG9jaygmdi0+ZG9tYWluLT5wY2lfbG9jayk7
DQorDQorICAgICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKHYtPmRvbWFpbikgKQ0K
KyAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsNCisNCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7DQorICAgICAgICB9DQogICAgIH0NCisgICAgdi0+dnBjaS5wZGV2ID0g
TlVMTDsNCisNCisgICAgc3Bpbl9sb2NrKCZwZGV2LT52cGNpLT5sb2NrKTsNCisgICAgbW9kaWZ5
X2RlY29kaW5nKHBkZXYsIHYtPnZwY2kuY21kLCB2LT52cGNpLnJvbV9vbmx5KTsNCisgICAgc3Bp
bl91bmxvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0KKw0KKyAgICByZWFkX3VubG9jaygmdi0+ZG9t
YWluLT5wY2lfbG9jayk7DQogDQogICAgIHJldHVybiBmYWxzZTsNCiB9DQogDQogc3RhdGljIGlu
dCBfX2luaXQgYXBwbHlfbWFwKHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0cnVjdCBwY2lfZGV2
ICpwZGV2LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcmFuZ2VzZXQgKm1l
bSwgdWludDE2X3QgY21kKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBj
bWQpDQogew0KICAgICBzdHJ1Y3QgbWFwX2RhdGEgZGF0YSA9IHsgLmQgPSBkLCAubWFwID0gdHJ1
ZSB9Ow0KLSAgICBpbnQgcmM7DQorICAgIHN0cnVjdCB2cGNpX2hlYWRlciAqaGVhZGVyID0gJnBk
ZXYtPnZwY2ktPmhlYWRlcjsNCisgICAgaW50IHJjID0gMDsNCisgICAgdW5zaWduZWQgaW50IGk7
DQogDQogICAgIEFTU0VSVChyd19pc193cml0ZV9sb2NrZWQoJmQtPnBjaV9sb2NrKSk7DQogDQot
ICAgIHdoaWxlICggKHJjID0gcmFuZ2VzZXRfY29uc3VtZV9yYW5nZXMobWVtLCBtYXBfcmFuZ2Us
ICZkYXRhKSkgPT0gLUVSRVNUQVJUICkNCisgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpF
KGhlYWRlci0+YmFycyk7IGkrKyApDQogICAgIHsNCi0gICAgICAgIC8qDQotICAgICAgICAgKiBJ
dCdzIHNhZmUgdG8gZHJvcCBhbmQgcmVhY3F1aXJlIHRoZSBsb2NrIGluIHRoaXMgY29udGV4dA0K
LSAgICAgICAgICogd2l0aG91dCByaXNraW5nIHBkZXYgZGlzYXBwZWFyaW5nIGJlY2F1c2UgZGV2
aWNlcyBjYW5ub3QgYmUNCi0gICAgICAgICAqIHJlbW92ZWQgdW50aWwgdGhlIGluaXRpYWwgZG9t
YWluIGhhcyBiZWVuIHN0YXJ0ZWQuDQotICAgICAgICAgKi8NCi0gICAgICAgIHdyaXRlX3VubG9j
aygmZC0+cGNpX2xvY2spOw0KLSAgICAgICAgcHJvY2Vzc19wZW5kaW5nX3NvZnRpcnFzKCk7DQot
ICAgICAgICB3cml0ZV9sb2NrKCZkLT5wY2lfbG9jayk7DQotICAgIH0NCisgICAgICAgIHN0cnVj
dCB2cGNpX2JhciAqYmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCisNCisgICAgICAgIGlmICggcmFu
Z2VzZXRfaXNfZW1wdHkoYmFyLT5tZW0pICkNCisgICAgICAgICAgICBjb250aW51ZTsNCiANCi0g
ICAgcmFuZ2VzZXRfZGVzdHJveShtZW0pOw0KKyAgICAgICAgd2hpbGUgKCAocmMgPSByYW5nZXNl
dF9jb25zdW1lX3JhbmdlcyhiYXItPm1lbSwgbWFwX3JhbmdlLA0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YSkpID09IC1FUkVTVEFSVCApDQorICAg
ICAgICB7DQorICAgICAgICAgICAgLyoNCisgICAgICAgICAgICAgKiBJdCdzIHNhZmUgdG8gZHJv
cCBhbmQgcmVhY3F1aXJlIHRoZSBsb2NrIGluIHRoaXMgY29udGV4dA0KKyAgICAgICAgICAgICAq
IHdpdGhvdXQgcmlza2luZyBwZGV2IGRpc2FwcGVhcmluZyBiZWNhdXNlIGRldmljZXMgY2Fubm90
IGJlDQorICAgICAgICAgICAgICogcmVtb3ZlZCB1bnRpbCB0aGUgaW5pdGlhbCBkb21haW4gaGFz
IGJlZW4gc3RhcnRlZC4NCisgICAgICAgICAgICAgKi8NCisgICAgICAgICAgICB3cml0ZV91bmxv
Y2soJmQtPnBjaV9sb2NrKTsNCisgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMo
KTsNCisgICAgICAgICAgICB3cml0ZV9sb2NrKCZkLT5wY2lfbG9jayk7DQorICAgICAgICB9DQor
ICAgIH0NCiAgICAgaWYgKCAhcmMgKQ0KICAgICAgICAgbW9kaWZ5X2RlY29kaW5nKHBkZXYsIGNt
ZCwgZmFsc2UpOw0KIA0KQEAgLTIyNSw3ICsyNjksNyBAQCBzdGF0aWMgaW50IF9faW5pdCBhcHBs
eV9tYXAoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsDQogfQ0K
IA0KIHN0YXRpYyB2b2lkIGRlZmVyX21hcChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcGNpX2Rl
diAqcGRldiwNCi0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJhbmdlc2V0ICptZW0sIHVp
bnQxNl90IGNtZCwgYm9vbCByb21fb25seSkNCisgICAgICAgICAgICAgICAgICAgICAgdWludDE2
X3QgY21kLCBib29sIHJvbV9vbmx5KQ0KIHsNCiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJy
ZW50Ow0KIA0KQEAgLTIzNiw3ICsyODAsNiBAQCBzdGF0aWMgdm9pZCBkZWZlcl9tYXAoc3RydWN0
IGRvbWFpbiAqZCwgc3RydWN0IHBjaV9kZXYgKnBkZXYsDQogICAgICAqIHN0YXJ0ZWQgZm9yIHRo
ZSBzYW1lIGRldmljZSBpZiB0aGUgZG9tYWluIGlzIG5vdCB3ZWxsLWJlaGF2ZWQuDQogICAgICAq
Lw0KICAgICBjdXJyLT52cGNpLnBkZXYgPSBwZGV2Ow0KLSAgICBjdXJyLT52cGNpLm1lbSA9IG1l
bTsNCiAgICAgY3Vyci0+dnBjaS5jbWQgPSBjbWQ7DQogICAgIGN1cnItPnZwY2kucm9tX29ubHkg
PSByb21fb25seTsNCiAgICAgLyoNCkBAIC0yNTAsMzMgKzI5MywzMyBAQCBzdGF0aWMgdm9pZCBk
ZWZlcl9tYXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHBjaV9kZXYgKnBkZXYsDQogc3RhdGlj
IGludCBtb2RpZnlfYmFycyhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdWludDE2X3QgY21k
LCBib29sIHJvbV9vbmx5KQ0KIHsNCiAgICAgc3RydWN0IHZwY2lfaGVhZGVyICpoZWFkZXIgPSAm
cGRldi0+dnBjaS0+aGVhZGVyOw0KLSAgICBzdHJ1Y3QgcmFuZ2VzZXQgKm1lbSA9IHJhbmdlc2V0
X25ldyhOVUxMLCBOVUxMLCAwKTsNCiAgICAgc3RydWN0IHBjaV9kZXYgKnRtcCwgKmRldiA9IE5V
TEw7DQogICAgIGNvbnN0IHN0cnVjdCBkb21haW4gKmQ7DQogICAgIGNvbnN0IHN0cnVjdCB2cGNp
X21zaXggKm1zaXggPSBwZGV2LT52cGNpLT5tc2l4Ow0KLSAgICB1bnNpZ25lZCBpbnQgaTsNCisg
ICAgdW5zaWduZWQgaW50IGksIGo7DQogICAgIGludCByYzsNCiANCiAgICAgQVNTRVJUKHJ3X2lz
X3dyaXRlX2xvY2tlZCgmcGRldi0+ZG9tYWluLT5wY2lfbG9jaykpOw0KIA0KLSAgICBpZiAoICFt
ZW0gKQ0KLSAgICAgICAgcmV0dXJuIC1FTk9NRU07DQotDQogICAgIC8qDQotICAgICAqIENyZWF0
ZSBhIHJhbmdlc2V0IHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudCBkZXZpY2UgQkFScyBtZW1v
cnkgcmVnaW9uDQotICAgICAqIGFuZCBjb21wYXJlIGl0IGFnYWluc3QgYWxsIHRoZSBjdXJyZW50
bHkgYWN0aXZlIEJBUiBtZW1vcnkgcmVnaW9ucy4gSWYNCi0gICAgICogYW4gb3ZlcmxhcCBpcyBm
b3VuZCwgc3VidHJhY3QgaXQgZnJvbSB0aGUgcmVnaW9uIHRvIGJlIG1hcHBlZC91bm1hcHBlZC4N
CisgICAgICogQ3JlYXRlIGEgcmFuZ2VzZXQgcGVyIEJBUiB0aGF0IHJlcHJlc2VudHMgdGhlIGN1
cnJlbnQgZGV2aWNlIG1lbW9yeQ0KKyAgICAgKiByZWdpb24gYW5kIGNvbXBhcmUgaXQgYWdhaW5z
dCBhbGwgdGhlIGN1cnJlbnRseSBhY3RpdmUgQkFSIG1lbW9yeQ0KKyAgICAgKiByZWdpb25zLiBJ
ZiBhbiBvdmVybGFwIGlzIGZvdW5kLCBzdWJ0cmFjdCBpdCBmcm9tIHRoZSByZWdpb24gdG8gYmUN
CisgICAgICogbWFwcGVkL3VubWFwcGVkLg0KICAgICAgKg0KLSAgICAgKiBGaXJzdCBmaWxsIHRo
ZSByYW5nZXNldCB3aXRoIGFsbCB0aGUgQkFScyBvZiB0aGlzIGRldmljZSBvciB3aXRoIHRoZSBS
T00NCisgICAgICogRmlyc3QgZmlsbCB0aGUgcmFuZ2VzZXRzIHdpdGggdGhlIEJBUiBvZiB0aGlz
IGRldmljZSBvciB3aXRoIHRoZSBST00NCiAgICAgICogQkFSIG9ubHksIGRlcGVuZGluZyBvbiB3
aGV0aGVyIHRoZSBndWVzdCBpcyB0b2dnbGluZyB0aGUgbWVtb3J5IGRlY29kZQ0KICAgICAgKiBi
aXQgb2YgdGhlIGNvbW1hbmQgcmVnaXN0ZXIsIG9yIHRoZSBlbmFibGUgYml0IG9mIHRoZSBST00g
QkFSIHJlZ2lzdGVyLg0KICAgICAgKi8NCiAgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpF
KGhlYWRlci0+YmFycyk7IGkrKyApDQogICAgIHsNCi0gICAgICAgIGNvbnN0IHN0cnVjdCB2cGNp
X2JhciAqYmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCisgICAgICAgIHN0cnVjdCB2cGNpX2JhciAq
YmFyID0gJmhlYWRlci0+YmFyc1tpXTsNCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQgPSBQ
Rk5fRE9XTihiYXItPmFkZHIpOw0KICAgICAgICAgdW5zaWduZWQgbG9uZyBlbmQgPSBQRk5fRE9X
TihiYXItPmFkZHIgKyBiYXItPnNpemUgLSAxKTsNCiANCisgICAgICAgIGlmICggIWJhci0+bWVt
ICkNCisgICAgICAgICAgICBjb250aW51ZTsNCisNCiAgICAgICAgIGlmICggIU1BUFBBQkxFX0JB
UihiYXIpIHx8DQogICAgICAgICAgICAgIChyb21fb25seSA/IGJhci0+dHlwZSAhPSBWUENJX0JB
Ul9ST00NCiAgICAgICAgICAgICAgICAgICAgICAgIDogKGJhci0+dHlwZSA9PSBWUENJX0JBUl9S
T00gJiYgIWhlYWRlci0+cm9tX2VuYWJsZWQpKSB8fA0KQEAgLTI5MiwxNCArMzM1LDMxIEBAIHN0
YXRpYyBpbnQgbW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQxNl90
IGNtZCwgYm9vbCByb21fb25seSkNCiAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgIH0N
CiANCi0gICAgICAgIHJjID0gcmFuZ2VzZXRfYWRkX3JhbmdlKG1lbSwgc3RhcnQsIGVuZCk7DQor
ICAgICAgICByYyA9IHJhbmdlc2V0X2FkZF9yYW5nZShiYXItPm1lbSwgc3RhcnQsIGVuZCk7DQog
ICAgICAgICBpZiAoIHJjICkNCiAgICAgICAgIHsNCiAgICAgICAgICAgICBwcmludGsoWEVOTE9H
X0dfV0FSTklORyAiRmFpbGVkIHRvIGFkZCBbJWx4LCAlbHhdOiAlZFxuIiwNCiAgICAgICAgICAg
ICAgICAgICAgc3RhcnQsIGVuZCwgcmMpOw0KLSAgICAgICAgICAgIHJhbmdlc2V0X2Rlc3Ryb3ko
bWVtKTsNCiAgICAgICAgICAgICByZXR1cm4gcmM7DQogICAgICAgICB9DQorDQorICAgICAgICAv
KiBDaGVjayBmb3Igb3ZlcmxhcCB3aXRoIHRoZSBhbHJlYWR5IHNldHVwIEJBUiByYW5nZXMuICov
DQorICAgICAgICBmb3IgKCBqID0gMDsgaiA8IGk7IGorKyApDQorICAgICAgICB7DQorICAgICAg
ICAgICAgc3RydWN0IHZwY2lfYmFyICpwcmV2X2JhciA9ICZoZWFkZXItPmJhcnNbal07DQorDQor
ICAgICAgICAgICAgaWYgKCByYW5nZXNldF9pc19lbXB0eShwcmV2X2Jhci0+bWVtKSApDQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOw0KKw0KKyAgICAgICAgICAgIHJjID0gcmFuZ2VzZXRfcmVt
b3ZlX3JhbmdlKHByZXZfYmFyLT5tZW0sIHN0YXJ0LCBlbmQpOw0KKyAgICAgICAgICAgIGlmICgg
cmMgKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FS
TklORywNCisgICAgICAgICAgICAgICAgICAgICAgICIlcHA6IGZhaWxlZCB0byByZW1vdmUgb3Zl
cmxhcHBpbmcgcmFuZ2UgWyVseCwgJWx4XTogJWRcbiIsDQorICAgICAgICAgICAgICAgICAgICAg
ICAgJnBkZXYtPnNiZGYsIHN0YXJ0LCBlbmQsIHJjKTsNCisgICAgICAgICAgICAgICAgcmV0dXJu
IHJjOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCiAgICAgfQ0KIA0KICAgICAvKiBSZW1v
dmUgYW55IE1TSVggcmVnaW9ucyBpZiBwcmVzZW50LiAqLw0KQEAgLTMwOSwxNCArMzY5LDIxIEBA
IHN0YXRpYyBpbnQgbW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQx
Nl90IGNtZCwgYm9vbCByb21fb25seSkNCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgZW5kID0gUEZO
X0RPV04odm1zaXhfdGFibGVfYWRkcihwZGV2LT52cGNpLCBpKSArDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZtc2l4X3RhYmxlX3NpemUocGRldi0+dnBjaSwgaSkgLSAx
KTsNCiANCi0gICAgICAgIHJjID0gcmFuZ2VzZXRfcmVtb3ZlX3JhbmdlKG1lbSwgc3RhcnQsIGVu
ZCk7DQotICAgICAgICBpZiAoIHJjICkNCisgICAgICAgIGZvciAoIGogPSAwOyBqIDwgQVJSQVlf
U0laRShoZWFkZXItPmJhcnMpOyBqKysgKQ0KICAgICAgICAgew0KLSAgICAgICAgICAgIHByaW50
ayhYRU5MT0dfR19XQVJOSU5HDQotICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gcmVtb3Zl
IE1TSVggdGFibGUgWyVseCwgJWx4XTogJWRcbiIsDQotICAgICAgICAgICAgICAgICAgIHN0YXJ0
LCBlbmQsIHJjKTsNCi0gICAgICAgICAgICByYW5nZXNldF9kZXN0cm95KG1lbSk7DQotICAgICAg
ICAgICAgcmV0dXJuIHJjOw0KKyAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2cGNpX2JhciAqYmFy
ID0gJmhlYWRlci0+YmFyc1tqXTsNCisNCisgICAgICAgICAgICBpZiAoIHJhbmdlc2V0X2lzX2Vt
cHR5KGJhci0+bWVtKSApDQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKw0KKyAgICAgICAg
ICAgIHJjID0gcmFuZ2VzZXRfcmVtb3ZlX3JhbmdlKGJhci0+bWVtLCBzdGFydCwgZW5kKTsNCisg
ICAgICAgICAgICBpZiAoIHJjICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGdw
cmludGsoWEVOTE9HX1dBUk5JTkcsDQorICAgICAgICAgICAgICAgICAgICAgICAiJXBwOiBmYWls
ZWQgdG8gcmVtb3ZlIE1TSVggdGFibGUgWyVseCwgJWx4XTogJWRcbiIsDQorICAgICAgICAgICAg
ICAgICAgICAgICAgJnBkZXYtPnNiZGYsIHN0YXJ0LCBlbmQsIHJjKTsNCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHJjOw0KKyAgICAgICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgfQ0KIA0KQEAg
LTM1NiwyNyArNDIzLDM3IEBAIHN0YXRpYyBpbnQgbW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBj
aV9kZXYgKnBkZXYsIHVpbnQxNl90IGNtZCwgYm9vbCByb21fb25seSkNCiANCiAgICAgICAgICAg
ICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUodG1wLT52cGNpLT5oZWFkZXIuYmFycyk7IGkr
KyApDQogICAgICAgICAgICAgew0KLSAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdnBjaV9i
YXIgKmJhciA9ICZ0bXAtPnZwY2ktPmhlYWRlci5iYXJzW2ldOw0KLSAgICAgICAgICAgICAgICB1
bnNpZ25lZCBsb25nIHN0YXJ0ID0gUEZOX0RPV04oYmFyLT5hZGRyKTsNCi0gICAgICAgICAgICAg
ICAgdW5zaWduZWQgbG9uZyBlbmQgPSBQRk5fRE9XTihiYXItPmFkZHIgKyBiYXItPnNpemUgLSAx
KTsNCi0NCi0gICAgICAgICAgICAgICAgaWYgKCAhYmFyLT5lbmFibGVkIHx8DQotICAgICAgICAg
ICAgICAgICAgICAgIXJhbmdlc2V0X292ZXJsYXBzX3JhbmdlKG1lbSwgc3RhcnQsIGVuZCkgfHwN
Ci0gICAgICAgICAgICAgICAgICAgICAvKg0KLSAgICAgICAgICAgICAgICAgICAgICAqIElmIG9u
bHkgdGhlIFJPTSBlbmFibGUgYml0IGlzIHRvZ2dsZWQgY2hlY2sgYWdhaW5zdA0KLSAgICAgICAg
ICAgICAgICAgICAgICAqIG90aGVyIEJBUnMgaW4gdGhlIHNhbWUgZGV2aWNlIGZvciBvdmVybGFw
cywgYnV0IG5vdA0KLSAgICAgICAgICAgICAgICAgICAgICAqIGFnYWluc3QgdGhlIHNhbWUgUk9N
IEJBUi4NCi0gICAgICAgICAgICAgICAgICAgICAgKi8NCi0gICAgICAgICAgICAgICAgICAgICAo
cm9tX29ubHkgJiYgdG1wID09IHBkZXYgJiYgYmFyLT50eXBlID09IFZQQ0lfQkFSX1JPTSkgKQ0K
KyAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdnBjaV9iYXIgKnJlbW90ZV9iYXIgPSAmdG1w
LT52cGNpLT5oZWFkZXIuYmFyc1tpXTsNCisgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBz
dGFydCA9IFBGTl9ET1dOKHJlbW90ZV9iYXItPmFkZHIpOw0KKyAgICAgICAgICAgICAgICB1bnNp
Z25lZCBsb25nIGVuZCA9IFBGTl9ET1dOKHJlbW90ZV9iYXItPmFkZHIgKw0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZV9iYXItPnNpemUgLSAxKTsN
CisNCisgICAgICAgICAgICAgICAgaWYgKCAhcmVtb3RlX2Jhci0+ZW5hYmxlZCApDQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsNCiANCi0gICAgICAgICAgICAgICAgcmMgPSByYW5nZXNl
dF9yZW1vdmVfcmFuZ2UobWVtLCBzdGFydCwgZW5kKTsNCi0gICAgICAgICAgICAgICAgaWYgKCBy
YyApDQorICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgQVJSQVlfU0laRShoZWFkZXIt
PmJhcnMpOyBqKyspDQogICAgICAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgICAgIHBy
aW50ayhYRU5MT0dfR19XQVJOSU5HICJGYWlsZWQgdG8gcmVtb3ZlIFslbHgsICVseF06ICVkXG4i
LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsIHJjKTsNCi0gICAgICAg
ICAgICAgICAgICAgIHJhbmdlc2V0X2Rlc3Ryb3kobWVtKTsNCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybiByYzsNCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2cGNpX2JhciAq
YmFyID0gJmhlYWRlci0+YmFyc1tqXTsNCisNCisgICAgICAgICAgICAgICAgICAgIGlmICggIXJh
bmdlc2V0X292ZXJsYXBzX3JhbmdlKGJhci0+bWVtLCBzdGFydCwgZW5kKSB8fA0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAvKg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJZiBvbmx5
IHRoZSBST00gZW5hYmxlIGJpdCBpcyB0b2dnbGVkIGNoZWNrIGFnYWluc3QNCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICogb3RoZXIgQkFScyBpbiB0aGUgc2FtZSBkZXZpY2UgZm9yIG92ZXJs
YXBzLCBidXQgbm90DQorICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFnYWluc3QgdGhlIHNh
bWUgUk9NIEJBUi4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICovDQorICAgICAgICAgICAg
ICAgICAgICAgICAgIChyb21fb25seSAmJg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgdG1w
ID09IHBkZXYgJiYNCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJhci0+dHlwZSA9PSBWUENJ
X0JBUl9ST00pICkNCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCisNCisgICAg
ICAgICAgICAgICAgICAgIHJjID0gcmFuZ2VzZXRfcmVtb3ZlX3JhbmdlKGJhci0+bWVtLCBzdGFy
dCwgZW5kKTsNCisgICAgICAgICAgICAgICAgICAgIGlmICggcmMgKQ0KKyAgICAgICAgICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcs
DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXBwOiBmYWlsZWQgdG8gcmVtb3Zl
IFslbHgsICVseF06ICVkXG4iLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBk
ZXYtPnNiZGYsIHN0YXJ0LCBlbmQsIHJjKTsNCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gcmM7DQorICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIH0NCiAgICAg
ICAgICAgICB9DQogICAgICAgICB9DQpAQCAtNDAwLDEwICs0NzcsMTAgQEAgc3RhdGljIGludCBt
b2RpZnlfYmFycyhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdWludDE2X3QgY21kLCBib29s
IHJvbV9vbmx5KQ0KICAgICAgICAgICogd2lsbCBhbHdheXMgYmUgdG8gZXN0YWJsaXNoIG1hcHBp
bmdzIGFuZCBwcm9jZXNzIGFsbCB0aGUgQkFScy4NCiAgICAgICAgICAqLw0KICAgICAgICAgQVNT
RVJUKChjbWQgJiBQQ0lfQ09NTUFORF9NRU1PUlkpICYmICFyb21fb25seSk7DQotICAgICAgICBy
ZXR1cm4gYXBwbHlfbWFwKHBkZXYtPmRvbWFpbiwgcGRldiwgbWVtLCBjbWQpOw0KKyAgICAgICAg
cmV0dXJuIGFwcGx5X21hcChwZGV2LT5kb21haW4sIHBkZXYsIGNtZCk7DQogICAgIH0NCiANCi0g
ICAgZGVmZXJfbWFwKGRldi0+ZG9tYWluLCBkZXYsIG1lbSwgY21kLCByb21fb25seSk7DQorICAg
IGRlZmVyX21hcChkZXYtPmRvbWFpbiwgZGV2LCBjbWQsIHJvbV9vbmx5KTsNCiANCiAgICAgcmV0
dXJuIDA7DQogfQ0KQEAgLTU5OCw2ICs2NzUsMTggQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgcm9t
X3dyaXRlKA0KICAgICAgICAgcm9tLT5hZGRyID0gdmFsICYgUENJX1JPTV9BRERSRVNTX01BU0s7
DQogfQ0KIA0KK3N0YXRpYyBpbnQgYmFyX2FkZF9yYW5nZXNldChjb25zdCBzdHJ1Y3QgcGNpX2Rl
diAqcGRldiwgc3RydWN0IHZwY2lfYmFyICpiYXIsDQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBpKQ0KK3sNCisgICAgY2hhciBzdHJbMzJdOw0KKw0KKyAgICBzbnBy
aW50ZihzdHIsIHNpemVvZihzdHIpLCAiJXBwOkJBUiV1IiwgJnBkZXYtPnNiZGYsIGkpOw0KKw0K
KyAgICBiYXItPm1lbSA9IHJhbmdlc2V0X25ldyhwZGV2LT5kb21haW4sIHN0ciwgUkFOR0VTRVRG
X25vX3ByaW50KTsNCisNCisgICAgcmV0dXJuICFiYXItPm1lbSA/IC1FTk9NRU0gOiAwOw0KK30N
CisNCiBzdGF0aWMgaW50IGNmX2NoZWNrIGluaXRfYmFycyhzdHJ1Y3QgcGNpX2RldiAqcGRldikN
CiB7DQogICAgIHVpbnQxNl90IGNtZDsNCkBAIC02NzksNiArNzY4LDEwIEBAIHN0YXRpYyBpbnQg
Y2ZfY2hlY2sgaW5pdF9iYXJzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KICAgICAgICAgZWxzZQ0K
ICAgICAgICAgICAgIGJhcnNbaV0udHlwZSA9IFZQQ0lfQkFSX01FTTMyOw0KIA0KKyAgICAgICAg
cmMgPSBiYXJfYWRkX3Jhbmdlc2V0KHBkZXYsICZiYXJzW2ldLCBpKTsNCisgICAgICAgIGlmICgg
cmMgKQ0KKyAgICAgICAgICAgIGdvdG8gZmFpbDsNCisNCiAgICAgICAgIHJjID0gcGNpX3NpemVf
bWVtX2JhcihwZGV2LT5zYmRmLCByZWcsICZhZGRyLCAmc2l6ZSwNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaSA9PSBudW1fYmFycyAtIDEpID8gUENJX0JBUl9MQVNUIDogMCk7DQog
ICAgICAgICBpZiAoIHJjIDwgMCApDQpAQCAtNzI4LDYgKzgyMSwxMiBAQCBzdGF0aWMgaW50IGNm
X2NoZWNrIGluaXRfYmFycyhzdHJ1Y3QgcGNpX2RldiAqcGRldikNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJvbV9yZWcsIDQsIHJvbSk7DQogICAgICAgICAgICAgaWYgKCBy
YyApDQogICAgICAgICAgICAgICAgIHJvbS0+dHlwZSA9IFZQQ0lfQkFSX0VNUFRZOw0KKyAgICAg
ICAgICAgIGVsc2UNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIHJjID0gYmFyX2Fk
ZF9yYW5nZXNldChwZGV2LCByb20sIGkpOw0KKyAgICAgICAgICAgICAgICBpZiAoIHJjICkNCisg
ICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsNCisgICAgICAgICAgICB9DQogICAgICAgICB9
DQogICAgIH0NCiAgICAgZWxzZQ0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5j
IGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCmluZGV4IDlkYWNiY2Y5NTguLjg4NjVjMTU4MGUg
MTAwNjQ0DQotLS0gYS94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYw0KKysrIGIveGVuL2RyaXZlcnMv
dnBjaS92cGNpLmMNCkBAIC0zOCw2ICszOCw4IEBAIGV4dGVybiB2cGNpX3JlZ2lzdGVyX2luaXRf
dCAqY29uc3QgX19lbmRfdnBjaV9hcnJheVtdOw0KIA0KIHZvaWQgdnBjaV9kZWFzc2lnbl9kZXZp
Y2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQogew0KKyAgICB1bnNpZ25lZCBpbnQgaTsNCisNCiAg
ICAgQVNTRVJUKHJ3X2lzX3dyaXRlX2xvY2tlZCgmcGRldi0+ZG9tYWluLT5wY2lfbG9jaykpOw0K
IA0KICAgICBpZiAoICFoYXNfdnBjaShwZGV2LT5kb21haW4pIHx8ICFwZGV2LT52cGNpICkNCkBA
IC02Myw2ICs2NSwxMCBAQCB2b2lkIHZwY2lfZGVhc3NpZ25fZGV2aWNlKHN0cnVjdCBwY2lfZGV2
ICpwZGV2KQ0KICAgICAgICAgICAgIGlmICggcGRldi0+dnBjaS0+bXNpeC0+dGFibGVbaV0gKQ0K
ICAgICAgICAgICAgICAgICBpb3VubWFwKHBkZXYtPnZwY2ktPm1zaXgtPnRhYmxlW2ldKTsNCiAg
ICAgfQ0KKw0KKyAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUocGRldi0+dnBjaS0+aGVh
ZGVyLmJhcnMpOyBpKysgKQ0KKyAgICAgICAgcmFuZ2VzZXRfZGVzdHJveShwZGV2LT52cGNpLT5o
ZWFkZXIuYmFyc1tpXS5tZW0pOw0KKw0KICAgICB4ZnJlZShwZGV2LT52cGNpLT5tc2l4KTsNCiAg
ICAgeGZyZWUocGRldi0+dnBjaS0+bXNpKTsNCiAgICAgeGZyZWUocGRldi0+dnBjaSk7DQpkaWZm
IC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZwY2kuaCBiL3hlbi9pbmNsdWRlL3hlbi92cGNpLmgN
CmluZGV4IDIwMjhmMjE1MWYuLjE4YTBlY2EzZGEgMTAwNjQ0DQotLS0gYS94ZW4vaW5jbHVkZS94
ZW4vdnBjaS5oDQorKysgYi94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQpAQCAtNzIsNiArNzIsNyBA
QCBzdHJ1Y3QgdnBjaSB7DQogICAgICAgICAgICAgLyogR3Vlc3QgYWRkcmVzcy4gKi8NCiAgICAg
ICAgICAgICB1aW50NjRfdCBndWVzdF9hZGRyOw0KICAgICAgICAgICAgIHVpbnQ2NF90IHNpemU7
DQorICAgICAgICAgICAgc3RydWN0IHJhbmdlc2V0ICptZW07DQogICAgICAgICAgICAgZW51bSB7
DQogICAgICAgICAgICAgICAgIFZQQ0lfQkFSX0VNUFRZLA0KICAgICAgICAgICAgICAgICBWUENJ
X0JBUl9JTywNCkBAIC0xNTYsNyArMTU3LDYgQEAgc3RydWN0IHZwY2kgew0KIA0KIHN0cnVjdCB2
cGNpX3ZjcHUgew0KICAgICAvKiBQZXItdmNwdSBzdHJ1Y3R1cmUgdG8gc3RvcmUgc3RhdGUgd2hp
bGUge3VufW1hcHBpbmcgb2YgUENJIEJBUnMuICovDQotICAgIHN0cnVjdCByYW5nZXNldCAqbWVt
Ow0KICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldjsNCiAgICAgdWludDE2X3QgY21kOw0KICAgICBi
b29sIHJvbV9vbmx5IDogMTsNCi0tIA0KMi40Mi4wDQo=


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645829.1008237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emt-0002Ay-Ts; Sat, 02 Dec 2023 01:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645829.1008237; Sat, 02 Dec 2023 01:27: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 1r9Emt-0002Ao-Qk; Sat, 02 Dec 2023 01:27:19 +0000
Received: by outflank-mailman (input) for mailman id 645829;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Ems-000271-Gj
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:18 +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 eb9763e6-90b1-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 02:27:14 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B20exWY004068; Sat, 2 Dec 2023 01:27:12 GMT
Received: from eur02-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur02lp2040.outbound.protection.outlook.com [104.47.11.40])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqt8mg1hm-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:11 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:06 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb9763e6-90b1-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PVV67vpxBffXxsYMlmmK8gJaR/DMybyhELr2tdhCVNw3hW0O0kXW68wkcapv0Ncfg0Rj2E+9jNidiIgfx/0+aq8YqreY6rzRqvnNJArH2F72q+JFkiIJtR0Cw2Axg+aKGfBnVyrqgcCjYKaxcDwRqXDM6xjvS6HSePLHDa/h8Ui8GTbHCAevSCNPEi5q8aCiHryReFM7aqoZz+KVOYu2uKuNgPNpipnGcM3N18ogPxlhmLcI5xRL2IgucwL69jiSCXJ9Hbc2OuQzbRIKGJJrpQnIZ4oiHvQA8G/wss7fwVZlkojgxq1gRr4ikGlfbB12PwyxwzyzGSYzWA/4RclyEw==
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=kEcu45xdaIpfXtUGO2Sqnh0DJtv9WM0RX9NJ+e+vxXs=;
 b=nZej2pAQdMYTWnY1bn+qOynGXYYu4KqAS7k8GvFFypdaOPzH4Velgtkd/8pJJWu54w6uNuKCNQW2oFDoq7eE70Pre4H/LDLqidGJlArMXSWGteW7ekg5V8oKyynKAY32MC3PJHZ/42jBX5frh4ueqqfzX1sg5lqsPJJEk+pbq+QfzUHmpZjhXhhP1DScs1qywzi3rELpHnB22J4SUzN1gmmQuX7fbogVDmY1criJ48Uma/9kt2EW0lpiOUXJtK5vTsxtnpnKtFaa6eY7gYAwQtD8q7uQJzp+L3mVu00Nxdi9um1k1oAnZyCh+EyjuHsrfUqppmCbA7dZyQ0BBgyShw==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kEcu45xdaIpfXtUGO2Sqnh0DJtv9WM0RX9NJ+e+vxXs=;
 b=UODhRrK7CCn3wvuVnh6kgfZTEVVI8/4u9ribXWt9c4560GyJmKMnCiOElfC6dIr5tX2dxPKguL0AUNCS8bIG1wSiCPGCy5ho3fH8cWKqYZ2kBsonSTookbLLydbPbjJes62k+gU0gkCV/BWO/L+IIsqpmr8S406g/BuQyeebsJWmJfOZHOodPVKA4QzIsESuvQMR3Qgn/ewq+p4V3yvE0kCQmoXQRYYNgNbtX8aUNZbPxXVPrUIqBTR8zMo9Xtgf7Al2CjIFs2OeK+5BPc63DLeGXYFja/w4NE2PHLBfqyoOaoQcK9Qi1zspqVTbGFwXHO5VCjHyAP5aB/i4ey0Hyg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 04/17] vpci: restrict unhandled read/write operations for
 guests
Thread-Topic: [PATCH v11 04/17] vpci: restrict unhandled read/write operations
 for guests
Thread-Index: AQHaJL6nE24AjhfTmkCFnkV7ezIkjw==
Date: Sat, 2 Dec 2023 01:27:03 +0000
Message-ID: <20231202012556.2012281-5-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 80ec34e3-a240-4e66-ebcc-08dbf2d5cbae
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;
x-microsoft-antispam-message-info: 
 2N/TNAahW4L73JX+HAXfzCTMdpr1gcTQhVzVOy+PLMysr87Ho5bS1WZ4sUwqYLwqkDxkmPOMTS3fcS0R14AZzEcxqvjUYOhi2bFuhggx9DmsICGIvRWWxBbwwKbDTjcf9iQ4B7XhZ0M30Z4zXR8Wf1ebgKClp+wK0p7vbk2uPYwg8L2C6Yy/KW+TXmBJgYBGhh4KPeSBzBNk8NFFYOcEH8Kr6xAxI6/RAMmEK1pMZ66FJxk2gNua8zVitz9Wf8nSunb8v/KqJ21bdi/Ltqw4y2/GzCur5r9DaJaWi5E6U7bJ5bpeWYtB6Yl6znjPnFcwFITSzMyK+XFwdwRiyYoSHyATLd6zlURGOVosnHsoceeuP90duHQGCUgxlX7oBIDzpFYHdOdPM4ngYQJn+ZHfte42dGSAggDfsZjyIWLLzjiLb0L1gDVfdZa78JxExxJG0TLvRLkyVykANsm2FTo33gHhzqKYNQdPGrCtQ+H6PIfe7ie2PFVdphjy7GZgDXPNRZ46crvdZ4HDfb1Y1I1cW1rRRurHCADnGLPSWTlh5SRRdvEFijVFExeDxtA5eY9xovoMgQtwoN+1tOnQJWU9r0QIKfz0dD7Sl0Ov8LNQdudLcfnyIVJaEngpChDl80K0
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?dDhla0tVZFRuQm5pZDM2R0xSeDlpZkx1RWdrSzR1elVOQ1pTSWZXZ1BLK3Jl?=
 =?utf-8?B?cXRxMkdybTFGdVBnYkY2alhFZXdvRmlBNDVVdC9kdnFYN1B0SzlpU0c0Y1RY?=
 =?utf-8?B?ZG5QdDRMeUJPelptNW40bVNmS3BkNlZHakdhWlFKVHVjTkFsRGw1aUZlYmZO?=
 =?utf-8?B?QkRtVlBqVTV3UnppdThKMnJ0VzJ1aEc1M0RnY3VrZVd2Mkl6R2tTclQ4SGNk?=
 =?utf-8?B?OTk4aTJvckMyeCtwN3pwakJZYW01d1ZzYVZKbDg2WG9lZVlWcnBvZE96Mmkz?=
 =?utf-8?B?ZUUrMHRBKzE2d0FFd2dKaUJqUzkzUnB1TFpzRVh0eWsyM0FYUGlwTmpmYnRz?=
 =?utf-8?B?NzVuMi9ieDN2ZGhpTEUvUlN2VUJwdGtxaEQ4ZmZBRUJuZit1OEZ6amVxL3Fp?=
 =?utf-8?B?Z2trdkkwOXdsSG00aTlzbEx1ODdNcldHQlhnSXQwVDJ2T0ZWMnlqVElUL2ps?=
 =?utf-8?B?UzRScE1zMWJqcy9TMXFsUEpRaVcwYVRORWI1NjROQTRmZVNXSG5Vb25CenlJ?=
 =?utf-8?B?NVFPRFgzdG44cDNHd2NSSTVIaGpNc3Z6ZVNad21Kbk9oNzlpSnBWdTFxaHlO?=
 =?utf-8?B?eGY0NjdKTHFnWkRNajFUMEtmcml1TTJrbkRyaWV0RVNmT3NYOUs2ZitHelAx?=
 =?utf-8?B?bW9saHdPak03V3VsNXBZU3RJMXI4aVJQUXB6TTJOZDdPN0JMQU9Ndyt3UTBS?=
 =?utf-8?B?RDR5Qlp4eUNiaS91NEFxcnVJUVV6eU1OSXNNenZ5aU00QXdWQ0l4NXpWMWJ5?=
 =?utf-8?B?bktMQlZtdmdaQkt4a1crRE9qOElxMy9scjh4ZDkrUlRoNCt2TW5tSU5ncmZI?=
 =?utf-8?B?SS8wNmVDL2pMMWRraWRzZkl5TGZhVXhHL3R5MVZoL3lWV1JDWWFXY1Awd1VE?=
 =?utf-8?B?eTViV2JCZGRBM2Z3RnBiemFMNzJNZWh3Tm50MzRkdERjK211VFVwNThFWjZY?=
 =?utf-8?B?Tk1jN0FlSnViZFJ4cXVVRk5RMUpuSm5GRUVTQmNxVHdTTzdCcnNRdFE5UURD?=
 =?utf-8?B?NkNHa2RmZHVHNXVQMm82bkwrRWJsVG1CVkFWVURxdUx1bnJ5cE1sSVV3alor?=
 =?utf-8?B?MTBzZ1lJdjluYmxzNnNwNFBlYVR3RVMwTDV1N1B2R2hKLzBzU0V6UGlJaTNw?=
 =?utf-8?B?Z0dSdnhPVW5zejhLZ1RMNldaVXVEblBlQXZpL2orRDJhMGlLeVVzZ2Y0TkpX?=
 =?utf-8?B?MW9kSFNNNmFHM2gvQUh3RWpXcC9xWVd3eGtXSit2NmJONzFrT1VqRytVM21W?=
 =?utf-8?B?VWk1Q3dHWlRkcGZYRXZMeFFXMlFWckdJTVMzazlZdHFEOHRNYmwweGpQR2dt?=
 =?utf-8?B?ZVlqeHpmaFJnU2RlMStQM1VnNzg3M2YvS29jM0t6VTFUSENaamQ3YzdQUjM3?=
 =?utf-8?B?UFdlZFRJNnh4YUZkYm0yUUFBNEsvZXdJL0hSaTkwb1o5cFhKUDJpYmIzWStx?=
 =?utf-8?B?S2tRRHY5VmpFUTJVMTlhQ1pMRlRzZVRuUVNaTDRsU2dzWVI4NkpSbXgzSDNV?=
 =?utf-8?B?N3RFKzh2eG5qVXB5NFNobytKOTAxMndXMVY5L3poRFl5Q0RJakh3cWFwSGQz?=
 =?utf-8?B?ZGNlL3RvQmU5dzVUaUNKM1AyVDRERXhlbFN1aTgwSTd2YWh5VlhadERpTVBR?=
 =?utf-8?B?T0ViV1V0NTRkQlhxMm1TdUh4ZXUwek9FQkx2V0E0UFh6aGRvQUhvSmFVLzFn?=
 =?utf-8?B?N0p2c3EzOXBDd1p6YzNreUhRWDJ4NkI0cDMya2gwSFhTeU5QN2FxY2hJakNF?=
 =?utf-8?B?UWp6bnQyTklyb1YvS3hXOXkwY2k1S2N1eWVJM3U0MnExN1FDbW4vc1NqeEdy?=
 =?utf-8?B?b1BuckpsVUNnMEh4SEg0Vi9YN1FUcGM0c1YrWVpvUGt5QkljcmpmdG81TlZ4?=
 =?utf-8?B?dlBZVno2NmIvaGZMQzRUNW9vZktuMy9ucEMvcHJGMTlRMHhJUUl3UTI5MDlP?=
 =?utf-8?B?Y1Zlb1BERm43RU1DMnZYMGFERjNvZVJpUncvNExweUU0K3AySCt6LzNORm50?=
 =?utf-8?B?TGhvS1l5cHByT0NuSHJIRFVRbENqS2Zack9aK0ludWdrN2c3UDNMQ1lJNTBN?=
 =?utf-8?B?dEMxbXZURGZoOSt6ZmhPdmNiMVIyL1BWWUhXWCt6Z0kzVlB1Njl6eEZJanZI?=
 =?utf-8?B?Mk5STzhiNHNVVHJpWFJlRVp1MWlPNll3a1U4M1JCQ0JkQWZneVdHdzJBbytv?=
 =?utf-8?B?TkE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0602D929B1A7F342A0843CA4FA2B004F@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 80ec34e3-a240-4e66-ebcc-08dbf2d5cbae
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:03.5224
 (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: Vww/+lC8a1TlEoTF72cbIYT1y9XqExC3c/h9NufnURYzjLVp4D0kOePyFjXMc7b/acBK5+/+ZoZZxjDz98W2Iw1n78y13+M4VRaQAkS1guU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-ORIG-GUID: NWLUW9YaROk7wzB6Wg9Jh9JOx0Yo-LuI
X-Proofpoint-GUID: NWLUW9YaROk7wzB6Wg9Jh9JOx0Yo-LuI
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0
 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0
 malwarescore=0 lowpriorityscore=0 mlxlogscore=999 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw
YW0uY29tPg0KDQpBIGd1ZXN0IHdvdWxkIGJlIGFibGUgdG8gcmVhZCBhbmQgd3JpdGUgdGhvc2Ug
cmVnaXN0ZXJzIHdoaWNoIGFyZSBub3QNCmVtdWxhdGVkIGFuZCBoYXZlIG5vIHJlc3BlY3RpdmUg
dlBDSSBoYW5kbGVycywgc28gaXQgd2lsbCBiZSBwb3NzaWJsZQ0KZm9yIGl0IHRvIGFjY2VzcyB0
aGUgaGFyZHdhcmUgZGlyZWN0bHkuDQpJbiBvcmRlciB0byBwcmV2ZW50IGEgZ3Vlc3QgZnJvbSBy
ZWFkcyBhbmQgd3JpdGVzIGZyb20vdG8gdGhlIHVuaGFuZGxlZA0KcmVnaXN0ZXJzIG1ha2Ugc3Vy
ZSBvbmx5IGhhcmR3YXJlIGRvbWFpbiBjYW4gYWNjZXNzIHRoZSBoYXJkd2FyZSBkaXJlY3RseQ0K
YW5kIHJlc3RyaWN0IGd1ZXN0cyBmcm9tIGRvaW5nIHNvLg0KDQpTdWdnZXN0ZWQtYnk6IFJvZ2Vy
IFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0KU2lnbmVkLW9mZi1ieTogT2xla3Nh
bmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPg0KU2ln
bmVkLW9mZi1ieTogVm9sb2R5bXlyIEJhYmNodWsgPHZvbG9keW15cl9iYWJjaHVrQGVwYW0uY29t
Pg0KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0K
DQotLS0NClNpbmNlIHY5Og0KLSByZW1vdmVkIHN0cmF5IGZvcm1hdHRpbmcgY2hhbmdlDQotIGFk
ZGVkIFJvZ2VyJ3MgUi1iIHRhZw0KU2luY2UgdjY6DQotIGRvIG5vdCB1c2UgaXNfaHdkb20gcGFy
YW1ldGVyIGZvciB2cGNpX3tyZWFkfHdyaXRlfV9odyBhbmQgdXNlDQogIGN1cnJlbnQtPmRvbWFp
biBpbnRlcm5hbGx5DQotIHVwZGF0ZSBjb21taXQgbWVzc2FnZQ0KTmV3IGluIHY2DQotLS0NCiB4
ZW4vZHJpdmVycy92cGNpL3ZwY2kuYyB8IDggKysrKysrKysNCiAxIGZpbGUgY2hhbmdlZCwgOCBp
bnNlcnRpb25zKCspDQoNCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYyBiL3hl
bi9kcml2ZXJzL3ZwY2kvdnBjaS5jDQppbmRleCAwYjY5NGJlYWRmLi40ZmVjNGIyNmQ5IDEwMDY0
NA0KLS0tIGEveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCisrKyBiL3hlbi9kcml2ZXJzL3ZwY2kv
dnBjaS5jDQpAQCAtMjMzLDYgKzIzMywxMCBAQCBzdGF0aWMgdWludDMyX3QgdnBjaV9yZWFkX2h3
KHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQgaW50IHJlZywNCiB7DQogICAgIHVpbnQzMl90IGRh
dGE7DQogDQorICAgIC8qIEd1ZXN0IGRvbWFpbnMgYXJlIG5vdCBhbGxvd2VkIHRvIHJlYWQgcmVh
bCBoYXJkd2FyZS4gKi8NCisgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJlbnQtPmRv
bWFpbikgKQ0KKyAgICAgICAgcmV0dXJuIH4odWludDMyX3QpMDsNCisNCiAgICAgc3dpdGNoICgg
c2l6ZSApDQogICAgIHsNCiAgICAgY2FzZSA0Og0KQEAgLTI3Niw2ICsyODAsMTAgQEAgc3RhdGlj
IHVpbnQzMl90IHZwY2lfcmVhZF9odyhwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGludCByZWcs
DQogc3RhdGljIHZvaWQgdnBjaV93cml0ZV9odyhwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGlu
dCByZWcsIHVuc2lnbmVkIGludCBzaXplLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDMyX3QgZGF0YSkNCiB7DQorICAgIC8qIEd1ZXN0IGRvbWFpbnMgYXJlIG5vdCBhbGxvd2VkIHRv
IHdyaXRlIHJlYWwgaGFyZHdhcmUuICovDQorICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihj
dXJyZW50LT5kb21haW4pICkNCisgICAgICAgIHJldHVybjsNCisNCiAgICAgc3dpdGNoICggc2l6
ZSApDQogICAgIHsNCiAgICAgY2FzZSA0Og0KLS0gDQoyLjQyLjANCg==


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645828.1008232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emt-00027Z-LP; Sat, 02 Dec 2023 01:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645828.1008232; Sat, 02 Dec 2023 01:27: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 1r9Emt-00027S-IS; Sat, 02 Dec 2023 01:27:19 +0000
Received: by outflank-mailman (input) for mailman id 645828;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Ems-000272-8U
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:18 +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 ec92fc62-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:16 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGv0008549; Sat, 2 Dec 2023 01:27:12 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-6
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:12 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:07 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27: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: ec92fc62-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fNOrBjonGpoY9DN1gCwVwR2d6NwrLJyAara6IXSLX1N5WHxSxrCfy7ZuXI25PS5qO30S8xvMYOEc6g9hc3O41mg91O047itZA8NFTLdxay0HpFAlX8mH2azn7fGnI2DE9biI9Rniu8SyVTo3Cqbu1SSZCtsPY9N2JecLL400Pqk42hK4p/GtB8WTM7cp3insIxEd2tIdx6+I4PGRyXpR8qBJkIlu5lA8d2u1yKR22jnQIAJvbObSaKq+RGUOUpHxLtesg59Dv5DdejCz4EU7RPAgmt9m6QmLxv+SPGXChkkcwMapMTMs3c+gUokWDKAjVDzUA48k8aw5V75KnV0H0A==
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=fCAtQkOh1LlRj3VEXjXrBI42f2r4sRFKlSbnUPHqVJA=;
 b=BH+U/AlC8xu908Yx+05uXx85l7StqHYXsUWum4OGSKeYcPTF0qQzAs1TbbZACbZQHTOgQZ3z1EJBnBlpVw38cGuDMvI000QHsLorwp55sdHq4NF21OExLgssXuBsF8Zc32oDVAjZE1FktPBzIWNApfjRrXP0Agoles9EJulBBs4vUPI6Fq88PzJfOw1WrTB6NSaplEvMbZaQwWBYsOfRRqVreUBGD+b5LFdalNWM1LVbKldJRJM4kvcURtLFOLtSxfWQ7UoMATBZLMhGqEL8cdNbjOxiswLd826oZyHLqLzgsDLLA4+2OoTl+fvyeSkbyb22D4R83pMdR6b/BgdEcg==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fCAtQkOh1LlRj3VEXjXrBI42f2r4sRFKlSbnUPHqVJA=;
 b=J/LuqckK9XcohCSzJGtJvEEQFCu3cPWCBA9fg6MreZWdkXJh71qKm2u1sNXZg0IpCUV9c8HCd5nlrjbzgXSIqKAPZF9LX9Kg+FjfBjWqRmLR4uAyU++adIOrdrbftMhkG8m6Fi/v2Gz0U00SjbdP4X4dZwY+aAxsBbYDJicu1ZLNrNRSAMeeE2+zftUWLdhKMdaHlxWyPV7Ex6kNOTwl07Eqerq31dfWADXJkrCUuX5JDgolcSOwUYBYMzqRAAczqck0AvOgIeGrTjs19WqS3ekXuWpwLj0tiw7XWjcbGt0I8yUPk82u3d7cXZEiPx3po4jj27FLDrubQrXqmO6e4w==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 07/17] vpci/header: implement guest BAR register handlers
Thread-Topic: [PATCH v11 07/17] vpci/header: implement guest BAR register
 handlers
Thread-Index: AQHaJL6oqjV1cLv4e0GmK4Y233LkQA==
Date: Sat, 2 Dec 2023 01:27:04 +0000
Message-ID: <20231202012556.2012281-8-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 4096a790-67a7-4017-985c-08dbf2d5cc65
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;
x-microsoft-antispam-message-info: 
 bZ/mq0D5DD02n0TzDj21sjIrPTrc5BYS8fSHsWsO/PBomx1RvJstm182hO1w/+JDII4pXOJlM2XINppKZQxEezv+wbTSDKhxqx1vvpPEq7t4QaeghGUylzetrILD9eKf07x9nNMF2WO15UP87MOTwMYEdElLCtQw9iAhxlvsxt4n3OeVT3j7krqTSS3MM6sUUz2Vn34FU4npSCMCXAf8Lz7AGehQeg/cC47evwLyOIjlpiU736OyTmCqBGe3R6xnMJhO2sg9nfU4a2MbVUlGXTXU8PJ87+XeMi3zVZV3scfJ6dENAFYriwj8kSPeNC2Mev+vWqgSulBCcFyJgHcMmsOxW6l7L8mimQFVL+LScUQNHvEIxF3vKa3nHcIgQjySSdjrrMQ+mmcrmt2yH7IhymE1c3nOmz9c2Dga5IGqjV+8TXRC9jfIRmrIj+Wzd6WT2FLwcohrEbe9mBqGyxcOd8H1HLZMFX//QLot34Z5oJr7Ke/2yJUJ7Of1Tmrv5Me6BpogTYkmflKpQxnH6L+uqxlX3SN8994d+03jikhgLsVzthNONokwJ+K+EVn1tM+0AHrtdtQYWdtt49WRlag/NKK8aTs7hmvnnEEooHmMu6eKgHObeIYlmRPfipQ17a7u9CIO4YI7DDobKeFYCuxFxwBxFOS1SVCdXPW83JEQsrQ=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(230273577357003)(230173577357003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?Htiq+dBpyQVuNr6YzmL/BOobwv5XoY6X8QAQQm3GTyYklzxwMl4QitTh8g?=
 =?iso-8859-1?Q?pnQzFVCXOOmjf7jxAUASsQaqWSbPMM63nvufSu/OJmsQo8XXP/kCuL796W?=
 =?iso-8859-1?Q?ymhrskc38JiUMfeGtnV5kBy4hRm1cVOW37iyCiwNWytLx2zBbbyM88IOgL?=
 =?iso-8859-1?Q?jT7NWN+6s4gf6+VEbvX++4atJbcdNQh+zucmmPcSX1+P9J2AtuH4APFhMf?=
 =?iso-8859-1?Q?edIUBfpQuUyNHiqNbsTf8Rg5dfkWfBaBAlTyamkEB1Oa1QRh/CeqriMcvg?=
 =?iso-8859-1?Q?d5fJIkgZeJufkUsgr8sDplces7RZdqJ1Z7HTXhJUOHrvhsbTy5tMvDawXy?=
 =?iso-8859-1?Q?XAmilu+xhbwtxDRb75VlyIUVxblSx4JgrG7hqOwQAfqtbINRATlxqj+coI?=
 =?iso-8859-1?Q?CijCAYqWadwzfTaKbzakCH4HfHu5+BGIWlw5Pg2qljB+JS01fHzL4Wtvup?=
 =?iso-8859-1?Q?Lv965uIvMEyW4R0ewRalGVTvsLq9PLycww5apkQzId76DKo6kk8hMUJY8D?=
 =?iso-8859-1?Q?0B4qOGIWuIXAcFctuw1TqDTU7AUO08/D28bJNHiqF+72PXK9fbW9S1NfHD?=
 =?iso-8859-1?Q?ePLUHlIlyk3kgZhFtqoo230pn4jHMRme4RUncQu3/OufS/CKrqAtIqygUM?=
 =?iso-8859-1?Q?WssLtGCcJXzFiabygOK6YuXX79g2H6AngZO7UuZfsbwq2zGdM+IU4h73NY?=
 =?iso-8859-1?Q?8uS7bBteH7zdHq3OOEe79k16bwKn5pNxsmR3637rHeJKGFPrD0qJYMdHg0?=
 =?iso-8859-1?Q?Tq1Khx85TGNyxRS6LnZ0T4R5IiwtQkirbhms0BhzVUu8TC0ajqlBPfu03f?=
 =?iso-8859-1?Q?uJJp/Tg9qekbN36YQSgzddvFzkZuMv79DKqsQShhj7OB3Pv4SfU1zagho+?=
 =?iso-8859-1?Q?tJ7kTirJCWeJZ0fdrfEG45BLCRfFq2a125GfHCtKbs0e1tJKei1fTHh6iV?=
 =?iso-8859-1?Q?9IhmmSVD66+UDGzqBRypy1n/AEfxycJagudOS/OuThSOYwX1XxmwJFdoaT?=
 =?iso-8859-1?Q?Snzee0pLZdEo/AQYuefvFkv+tEQ/dJQy1HOU6zllCwmPZubEpXBJf/rhAC?=
 =?iso-8859-1?Q?YgtrAF6WkG5E33+yVc4njFzwhvK21+VvoEGSdZO7oUvA+boAV/fT9Azunj?=
 =?iso-8859-1?Q?rIDkXnhhSfsRt21kR/v6VE5O181o5k3lD1KbTBoH+q6S6LVABfxLN2tKDb?=
 =?iso-8859-1?Q?0NEyD4vSu4LkTtWC9YrPEFQy29c6MtMJ5yvbMtg9qRgWXi0FFdTk0W4amJ?=
 =?iso-8859-1?Q?Y9m+1y93OyQ7WcxLrmplnvwRa+Wm39OQX1P4wmKI/bBlwJfquT/olAPhtG?=
 =?iso-8859-1?Q?EoNRKr8TwKlTnL1QvoYhhPZyE72N4OnOQnMk9tiip+cjn6koZGZBEOGSm6?=
 =?iso-8859-1?Q?A0K3+WX5m10dfa8hSdubMZVNpwfQWlwGzWbM0eC0f6PJdKXeRXgBqyvBx3?=
 =?iso-8859-1?Q?m5bLPxfrjbWPG4IlnaQkO9Xnej3xQXOQ/LRj1GWIWiU1ZSc7tJvOUOxJ2H?=
 =?iso-8859-1?Q?WQyyAkZ5KQrjdBdXYHkvyAs1daYv9oV0ECh3eExMwdeuU3aJUqKC4O9GxE?=
 =?iso-8859-1?Q?qd885aMBE5OV0Ol+5Sun3IQx4jFY1BOiLLjWggcdM/7Vgd1YGZlUH4HA/h?=
 =?iso-8859-1?Q?+GdbKdJno9uPzb2LWpakutau0INxEd6OlckkSvTGLOelA/mHDWpHLJqQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4096a790-67a7-4017-985c-08dbf2d5cc65
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:04.5039
 (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: zdp+vZbn8xdrJiaDy1p0te9QVmS4piHM514fR+wL1/RJpEnFhuhSkt4mE1xrzFSNmVYp6/HDd1ao7krFSNOrr7iZaGYN8FSLMiSbweM/c9g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: sCeXfsJgOFqBdcKh-tnc0IaIldpWNxpk
X-Proofpoint-ORIG-GUID: sCeXfsJgOFqBdcKh-tnc0IaIldpWNxpk
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Add relevant vpci register handlers when assigning PCI device to a domain
and remove those when de-assigning. This allows having different
handlers for different domains, e.g. hwdom and other guests.

Emulate guest BAR register values: this allows creating a guest view
of the registers and emulates size and properties probe as it is done
during PCI device enumeration by the guest.

All empty, IO and ROM BARs for guests are emulated by returning 0 on
reads and ignoring writes: this BARs are special with this respect as
their lower bits have special meaning, so returning default ~0 on read
may confuse guest OS.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
In v11:
- Access guest_addr after adjusting for MEM64_HI bar in
guest_bar_write()
- guest bar handlers renamed and now  _mem_ part to denote
that they are handling only memory BARs
- refuse to update guest BAR address if BAR is enabled
In v10:
- ull -> ULL to be MISRA-compatbile
- Use PAGE_OFFSET() instead of combining with ~PAGE_MASK
- Set type of empty bars to VPCI_BAR_EMPTY
In v9:
- factored-out "fail" label introduction in init_bars()
- replaced #ifdef CONFIG_X86 with IS_ENABLED()
- do not pass bars[i] to empty_bar_read() handler
- store guest's BAR address instead of guests BAR register view
Since v6:
- unify the writing of the PCI_COMMAND register on the
  error path into a label
- do not introduce bar_ignore_access helper and open code
- s/guest_bar_ignore_read/empty_bar_read
- update error message in guest_bar_write
- only setup empty_bar_read for IO if !x86
Since v5:
- make sure that the guest set address has the same page offset
  as the physical address on the host
- remove guest_rom_{read|write} as those just implement the default
  behaviour of the registers not being handled
- adjusted comment for struct vpci.addr field
- add guest handlers for BARs which are not handled and will otherwise
  return ~0 on read and ignore writes. The BARs are special with this
  respect as their lower bits have special meaning, so returning ~0
  doesn't seem to be right
Since v4:
- updated commit message
- s/guest_addr/guest_reg
Since v3:
- squashed two patches: dynamic add/remove handlers and guest BAR
  handler implementation
- fix guest BAR read of the high part of a 64bit BAR (Roger)
- add error handling to vpci_assign_device
- s/dom%pd/%pd
- blank line before return
Since v2:
- remove unneeded ifdefs for CONFIG_HAS_VPCI_GUEST_SUPPORT as more code
  has been eliminated from being built on x86
Since v1:
 - constify struct pci_dev where possible
 - do not open code is_system_domain()
 - simplify some code3. simplify
 - use gdprintk + error code instead of gprintk
 - gate vpci_bar_{add|remove}_handlers with CONFIG_HAS_VPCI_GUEST_SUPPORT,
   so these do not get compiled for x86
 - removed unneeded is_system_domain check
 - re-work guest read/write to be much simpler and do more work on write
   than read which is expected to be called more frequently
 - removed one too obvious comment
---
 xen/drivers/vpci/header.c | 135 +++++++++++++++++++++++++++++++++-----
 xen/include/xen/vpci.h    |   3 +
 2 files changed, 122 insertions(+), 16 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index e6a1d58c42..43216429d9 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -477,6 +477,75 @@ static void cf_check bar_write(
     pci_conf_write32(pdev->sbdf, reg, val);
 }
=20
+static void cf_check guest_mem_bar_write(const struct pci_dev *pdev,
+                                         unsigned int reg, uint32_t val,
+                                         void *data)
+{
+    struct vpci_bar *bar =3D data;
+    bool hi =3D false;
+    uint64_t guest_addr;
+
+    if ( bar->type =3D=3D VPCI_BAR_MEM64_HI )
+    {
+        ASSERT(reg > PCI_BASE_ADDRESS_0);
+        bar--;
+        hi =3D true;
+    }
+    else
+    {
+        val &=3D PCI_BASE_ADDRESS_MEM_MASK;
+    }
+
+    guest_addr =3D bar->guest_addr;
+    guest_addr &=3D ~(0xffffffffULL << (hi ? 32 : 0));
+    guest_addr |=3D (uint64_t)val << (hi ? 32 : 0);
+
+    /* Allow guest to size BAR correctly */
+    guest_addr &=3D ~(bar->size - 1);
+
+    /*
+     * Xen only cares whether the BAR is mapped into the p2m, so allow BAR
+     * writes as long as the BAR is not mapped into the p2m.
+     */
+    if ( bar->enabled )
+    {
+        /* If the value written is the current one avoid printing a warnin=
g. */
+        if ( guest_addr !=3D bar->guest_addr )
+            gprintk(XENLOG_WARNING,
+                    "%pp: ignored guest BAR %zu write while mapped\n",
+                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
+        return;
+    }
+    bar->guest_addr =3D guest_addr;
+}
+
+static uint32_t cf_check guest_mem_bar_read(const struct pci_dev *pdev,
+                                            unsigned int reg, void *data)
+{
+    const struct vpci_bar *bar =3D data;
+    uint32_t reg_val;
+
+    if ( bar->type =3D=3D VPCI_BAR_MEM64_HI )
+    {
+        ASSERT(reg > PCI_BASE_ADDRESS_0);
+        bar--;
+        return bar->guest_addr >> 32;
+    }
+
+    reg_val =3D bar->guest_addr;
+    reg_val |=3D bar->type =3D=3D VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_TY=
PE_32 :
+                                             PCI_BASE_ADDRESS_MEM_TYPE_64;
+    reg_val |=3D bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
+
+    return reg_val;
+}
+
+static uint32_t cf_check empty_bar_read(const struct pci_dev *pdev,
+                                        unsigned int reg, void *data)
+{
+    return 0;
+}
+
 static void cf_check rom_write(
     const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data=
)
 {
@@ -537,6 +606,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
     struct vpci_header *header =3D &pdev->vpci->header;
     struct vpci_bar *bars =3D header->bars;
     int rc;
+    bool is_hwdom =3D is_hardware_domain(pdev->domain);
=20
     ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
=20
@@ -578,8 +648,11 @@ static int cf_check init_bars(struct pci_dev *pdev)
         if ( i && bars[i - 1].type =3D=3D VPCI_BAR_MEM64_LO )
         {
             bars[i].type =3D VPCI_BAR_MEM64_HI;
-            rc =3D vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write=
, reg,
-                                   4, &bars[i]);
+            rc =3D vpci_add_register(pdev->vpci,
+                                   is_hwdom ? vpci_hw_read32 :
+                                                        guest_mem_bar_read=
,
+                                   is_hwdom ? bar_write : guest_mem_bar_wr=
ite,
+                                   reg, 4, &bars[i]);
             if ( rc )
                 goto fail;
=20
@@ -590,6 +663,14 @@ static int cf_check init_bars(struct pci_dev *pdev)
         if ( (val & PCI_BASE_ADDRESS_SPACE) =3D=3D PCI_BASE_ADDRESS_SPACE_=
IO )
         {
             bars[i].type =3D VPCI_BAR_IO;
+            if ( !IS_ENABLED(CONFIG_X86) && !is_hwdom )
+            {
+                rc =3D vpci_add_register(pdev->vpci, empty_bar_read, NULL,
+                                       reg, 4, NULL);
+                if ( rc )
+                    goto fail;
+            }
+
             continue;
         }
         if ( (val & PCI_BASE_ADDRESS_MEM_TYPE_MASK) =3D=3D
@@ -606,6 +687,15 @@ static int cf_check init_bars(struct pci_dev *pdev)
         if ( size =3D=3D 0 )
         {
             bars[i].type =3D VPCI_BAR_EMPTY;
+
+            if ( !is_hwdom )
+            {
+                rc =3D vpci_add_register(pdev->vpci, empty_bar_read, NULL,
+                                       reg, 4, NULL);
+                if ( rc )
+                    goto fail;
+            }
+
             continue;
         }
=20
@@ -613,28 +703,41 @@ static int cf_check init_bars(struct pci_dev *pdev)
         bars[i].size =3D size;
         bars[i].prefetchable =3D val & PCI_BASE_ADDRESS_MEM_PREFETCH;
=20
-        rc =3D vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write, re=
g, 4,
-                               &bars[i]);
+        rc =3D vpci_add_register(pdev->vpci,
+                               is_hwdom ? vpci_hw_read32 : guest_mem_bar_r=
ead,
+                               is_hwdom ? bar_write : guest_mem_bar_write,
+                               reg, 4, &bars[i]);
         if ( rc )
             goto fail;
     }
=20
-    /* Check expansion ROM. */
-    rc =3D pci_size_mem_bar(pdev->sbdf, rom_reg, &addr, &size, PCI_BAR_ROM=
);
-    if ( rc > 0 && size )
+    if ( is_hwdom )
     {
-        struct vpci_bar *rom =3D &header->bars[num_bars];
+        rc =3D pci_size_mem_bar(pdev->sbdf, rom_reg, &addr, &size, PCI_BAR=
_ROM);
+        if ( rc > 0 && size )
+        {
+            struct vpci_bar *rom =3D &header->bars[num_bars];
=20
-        rom->type =3D VPCI_BAR_ROM;
-        rom->size =3D size;
-        rom->addr =3D addr;
-        header->rom_enabled =3D pci_conf_read32(pdev->sbdf, rom_reg) &
-                              PCI_ROM_ADDRESS_ENABLE;
+            rom->type =3D VPCI_BAR_ROM;
+            rom->size =3D size;
+            rom->addr =3D addr;
+            header->rom_enabled =3D pci_conf_read32(pdev->sbdf, rom_reg) &
+                                  PCI_ROM_ADDRESS_ENABLE;
=20
-        rc =3D vpci_add_register(pdev->vpci, vpci_hw_read32, rom_write, ro=
m_reg,
-                               4, rom);
+            rc =3D vpci_add_register(pdev->vpci, vpci_hw_read32, rom_write=
,
+                                   rom_reg, 4, rom);
+            if ( rc )
+                rom->type =3D VPCI_BAR_EMPTY;
+        }
+    }
+    else
+    {
+        /* TODO: Check expansion ROM, we do not handle ROM for guests for =
now */
+        header->bars[num_bars].type =3D VPCI_BAR_EMPTY;
+        rc =3D vpci_add_register(pdev->vpci, empty_bar_read, NULL,
+                               rom_reg, 4, NULL);
         if ( rc )
-            rom->type =3D VPCI_BAR_EMPTY;
+            goto fail;
     }
=20
     return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false) : 0;
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 75cfb532ee..2028f2151f 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -67,7 +67,10 @@ struct vpci {
     struct vpci_header {
         /* Information about the PCI BARs of this device. */
         struct vpci_bar {
+            /* Physical (host) address. */
             uint64_t addr;
+            /* Guest address. */
+            uint64_t guest_addr;
             uint64_t size;
             enum {
                 VPCI_BAR_EMPTY,
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645834.1008282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emw-0003DA-Pw; Sat, 02 Dec 2023 01:27:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645834.1008282; Sat, 02 Dec 2023 01:27:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emw-0003A8-K0; Sat, 02 Dec 2023 01:27:22 +0000
Received: by outflank-mailman (input) for mailman id 645834;
 Sat, 02 Dec 2023 01:27:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Emu-000272-Cp
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:20 +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 eec6a01c-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:19 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGuu008549; Sat, 2 Dec 2023 01:27:09 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:08 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:03 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27: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: eec6a01c-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DslJoTQFHmjSct0YQDC2OWdL/+ojFYhj50ygnLXpLNQkPqhLvS7MgjVyHoZZN60d7wABqDUxELiDd0vxybFBAHi3Y6W0R1avuDYL6ROEPLcWFL9T0M1voeZGo/s1j8WTWwwOpEID2QlkIKXQ/GUEX7ZWAc+Mo9e0l1EQqAnkAtZJNmnWqyRWbv7olqssLTYIub1SOSfhzXgmTQyrSmT6aNlLRWHZGdMdlF9MAl71K+OTMkISX4DO4/hLDlO+ZnNOH92zRXc0XcE7ZiObfQkuOjcfPBB6qTKk9gChMIsz1JFjHKzG4ZR3+rI384EA9cjw19Pf/UyAM2V5PqpDVbCU0Q==
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=4G495MYzvuMQHdmRAHaXxuT/rdye2JvaiP/jgpIr1+U=;
 b=jMLzmViePie6sO8v8VzBFTePUfPA5N24JKZ+JXANlJP2tX1DyLJrXrrA5QBKFjxIc5hszrjAs/IxIMTeVCrCwQJptagBXScMliC4n57vr0UgGFb044tH+W43D5Bnl7NvRHT3GjEua1mJtsjwQDIg8gmIS61WKxfIyyJ4K1LyPBIj1uwYlfbEuPGHGbJpo21BLSS1ZJljxnPovvBGuDuU38ZAx3NHdK0iA1gIpmrip6VXZpJHJ5XRuMxmeWmTUxJz5cpDyzDpsgnl7L3WdjLdPNmNaI4F3vAJcuZv81qcauSrImIxR+VQNlXQrvMNkudRCzEt5XKTM1hmQp6ZmLl8YA==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4G495MYzvuMQHdmRAHaXxuT/rdye2JvaiP/jgpIr1+U=;
 b=IIr6XWQPw1Hrcb/D6C5jn8eWkaa6+NCHKdZmvcJG380Q8zKEl2revyJhNkfnoInRWtrbxZn4ELTAHphnTva6Tx+7aaxVm940XfngN3jK+iVDM7OW9EJ9Awxlf3wxhtNgfELFDNisfMthVE53AbFt+VQQFkYp2rkFKCX4G1B/eDdDS3eRUJP8LPE6EGcnRxo0lYcmeRVEcJqZShJ7VZ4o08SaK95B7tpI0Bf7vWG0OaoKbTgOOAPs0Pr8Vx2z3V19ciT2J3fDdCMYj/jmnZctCzXOiUaCNWcCdGDPKb6jvSJc9Yks5+LY/01XliWfsUhOfSmkK4Bx8SRfxFQVSs+wkQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Jan Beulich <jbeulich@suse.com>,
        Andrew Cooper
	<andrew.cooper3@citrix.com>,
        =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>,
        Wei Liu <wl@xen.org>, George Dunlap
	<george.dunlap@citrix.com>,
        Julien Grall <julien@xen.org>,
        Stefano Stabellini
	<sstabellini@kernel.org>
Subject: [PATCH v11 01/17] pci: msi: pass pdev to pci_enable_msi() function
Thread-Topic: [PATCH v11 01/17] pci: msi: pass pdev to pci_enable_msi()
 function
Thread-Index: AQHaJL6ns+Jw4l4utUGjbwsXvB/LmQ==
Date: Sat, 2 Dec 2023 01:27:02 +0000
Message-ID: <20231202012556.2012281-2-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: d518bee5-c3ca-48e4-6d3f-08dbf2d5c9ed
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;
x-microsoft-antispam-message-info: 
 chqwC0f3SIFfrzc24kdrEDAdU4FEZMZosOlprBGYeT2H5yQmW9RlgRcez5oDbISKg6VDgkupDnQ+Fso9BcI4l5umcGdch6XRQMxnKQAlzh/AOMhihB4nIv+CZxPpdskjIl13eHrZsKVz6NmoegSCSCNMcIMxrbgYSNvIvzT7O6gnb6DKv5YOqVyTvYpdebLa3qEIF7rxf9TnPdEAVivEDvgRbxZxvd9c9F4cQzi3RhqcPx3RJu33apmhkOHcEnfT4Iodw9MG3VeCMteNXHk+F/aXsI0jdfDJ5Bl7i9rpPIl5BoGdzwfs99KrE8brrdUFqg3bVJYrgvVcJFOrrlvUjry+oehykAO9dHz2q9kGi5b1w6WepPz2tRyievD13nwH9FBqvhjbTH1cJVxevoqe96V6BhzoRI0iKav1TukWNcmkHkMz6myLJOEFrCAcxl5QsGW0vDHTkqoQeOCrWN4mLGkrhIEdjCcqUh4oB6GS0fnC+40R/6mv3fziu3UTQNjDt7F+Ku/ta3nW+P4Fkz4mC6kr/4khlFPO/3XUhNe9OCTxbgnRn3UUeg9agjUCjUKSphWT2Ip5o/xqmzQvKVMVMs0lwc9RdtWcabbLtZJ1YihoWzZlXSJL11+iEvyuJ3YK
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?zIDxl/XMTKd7aTsYYVC/t5GYEgM0tLTB7BJGmzvLPZ/mgFY163A5F2/Ggy?=
 =?iso-8859-1?Q?xnKBsTi9RkkAx3eXiY1zJ1o/WjHKDBtsVmVKv58AhPHbrxZ8hg7xYlQsAs?=
 =?iso-8859-1?Q?sJvpzNzzUG1jdHoYNMmR+hnTSEJOEsXgG9fR8SP2kx480Y9aKIGmc/MjKZ?=
 =?iso-8859-1?Q?g0kxVYnPx/Ho/0A1bnA2kZQrRw4c+CTuF8n3oqSSBiSxHgulHB/VaAerI5?=
 =?iso-8859-1?Q?RQedl4TJdFy3DcxHGxVvCkFauqOOFZEDotvmK7o0sg6eokUcORZtunWuWS?=
 =?iso-8859-1?Q?KrMD13hbfkJigE8XeuC/6BYefX9TD4+rIOAhA46HUjo3s6jGoFM+fsOsxH?=
 =?iso-8859-1?Q?m5/jqonXZAh0CZI5rnQ50wHysW97ruBJpRdnLWGLWZr3+2bYCNtz/Rdm7H?=
 =?iso-8859-1?Q?h+aO6uROKE3ZDa0aEj1vnv7UdzQ5mn7oZG5FtPXIfOtGJ2FRZfwLf55LQl?=
 =?iso-8859-1?Q?8IwBjQGPChkyPX9JDJXv+yxy6M3gyfS6KebumsCug3vhyLEvVv3YPlE7j7?=
 =?iso-8859-1?Q?DSoZ+TkaVi5xXPBztI4XF+3USZ8ge9Jw+P1o+sBmM1FCRorCEdXGQxMfOF?=
 =?iso-8859-1?Q?lLN5Yoscad3cIiRMBBcMDvdg/TFD9ZRYkVxQRyaHTePqp7lKBTirDz5Ueu?=
 =?iso-8859-1?Q?Qdc0yG7aYv/sUrbAxe9H0rxbHJITuwXLndjPy9/XoCxYlEJuZbXs7Z3naw?=
 =?iso-8859-1?Q?5LEQIWwlXN/ieE4j9h7U7JvHi3cumH6ruAAjOI4WALWLUMkYj4WeDeBWYD?=
 =?iso-8859-1?Q?p92Y0FgT2GiRdh2UE2ZgmZDhslhu0bIxgZzYR47wE2Zv+1Xqe7LsZY1w1y?=
 =?iso-8859-1?Q?YTXQ09cW6xCka1Y8zJwwA/ZH4hTHBltnknlpjivC4qF2t0Boqfh4LeV66U?=
 =?iso-8859-1?Q?V9jF+IEkYcnO0A0oqfAxPEUzhRw6xspwm1AexGaRXm9Qz0LvAQS7O+u5R7?=
 =?iso-8859-1?Q?KNyshNOwNuRJT5J3TktvnbGoVAZgj7rclkG4bxJC/3h3v64m7RoD3UunFe?=
 =?iso-8859-1?Q?dkIG6UPupY8ZhkhvNqK7eU5LCmz046AVgQm7NAttTKVNroMy6qn0nv5EhP?=
 =?iso-8859-1?Q?cg5UMxtNoP2ZsyS/KobXFDm6MAY6z6UELJeYCHCgk0/3K8OtJ4WNaAsX4c?=
 =?iso-8859-1?Q?hitqZKfe7AfohrFTPgIxkxhu4bNu73YtpaCuwqwo6YdytcMEiCzc2Ti5cV?=
 =?iso-8859-1?Q?uPAmfjq+tg6TQJPI3l+HhbOsZNu2LHmcY+mr43CjQVRJIeDSy0fJRnXcsq?=
 =?iso-8859-1?Q?2oN6Vhixidzob3JHKOpHuB+WXMD0l0mRdr5FrMJdJsaCbj0Y5H8ZPCq5ob?=
 =?iso-8859-1?Q?UfLJWF8WTtRahsS/cQvXX45c5LtYtBG7YTRrvWXkjJU3EgTlA2G+IQXb+1?=
 =?iso-8859-1?Q?q80p9pjr3SCKBa1Bt5lyGe1aOroggdcagJnca28nS+HJpeuOZoPOkwG+W3?=
 =?iso-8859-1?Q?Pe0tUQUCYAbC38qX2VUmu4/D4Aicoc0mTMdg0p3SJxiuL81/LVAEHkZ4ei?=
 =?iso-8859-1?Q?wQgoivJotPI/IoK/ZKzEqdsIMf1tzKse1GIpxDvlMsnFIelMNKEyeC7F4u?=
 =?iso-8859-1?Q?1zlEk5nyGo9EW7wTikggr/066qpNENIXjOoXswC64mcB2mr6CzXwcXhJq8?=
 =?iso-8859-1?Q?Y+eDh4MHnw0Jw8/eiPt6n25GREmSnDZwMl4RK2ae32EZFpMgkiqAvFCQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d518bee5-c3ca-48e4-6d3f-08dbf2d5c9ed
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:02.5985
 (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: 8fTZhMk9O60ROip8imXIkZbsfZv6URjP/oouUUWSXhonpxYcA8WlB/63TL7vcPT4aIgoHMxKXbW5FbzcPMP4gnS5e2ket0AdIhUaT/CKjow=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: VsgJcOmBAdO4fmSzjT8sVc2vOJro-q6x
X-Proofpoint-ORIG-GUID: VsgJcOmBAdO4fmSzjT8sVc2vOJro-q6x
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=441 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

Previously pci_enable_msi() function obtained pdev pointer by itself,
but taking into account upcoming changes to PCI locking, it is better
when caller passes already acquired pdev pointer to the function,
because caller knows better how to obtain the pointer and which locks
are needed to be used. Also, in most cases caller already has pointer
to pdev, so we can avoid an extra list walk.

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

---
In v11:
 - Made pdev parameter very first in pci_enable_msi() and friends.
 - Extended the commit message
 - Added check for pdev into ns16550 driver
 - Replaced hard tabs with spaces

Changes in v10:

 - New in v10. This is the result of discussion in "vpci: add initial
 support for virtual PCI bus topology"
---
 xen/arch/x86/include/asm/msi.h |  5 +++--
 xen/arch/x86/irq.c             |  2 +-
 xen/arch/x86/msi.c             | 19 ++++++++++---------
 xen/drivers/char/ns16550.c     | 28 ++++++++++++++++++----------
 4 files changed, 32 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.=
h
index c1ece2786e..07b3ee55e9 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -81,8 +81,9 @@ struct irq_desc;
 struct hw_interrupt_type;
 struct msi_desc;
 /* Helper functions */
-extern int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc);
-extern void pci_disable_msi(struct msi_desc *msi_desc);
+extern int pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
+                          struct msi_desc **desc);
+extern void pci_disable_msi(struct msi_desc *desc);
 extern int pci_prepare_msix(u16 seg, u8 bus, u8 devfn, bool off);
 extern void pci_cleanup_msi(struct pci_dev *pdev);
 extern int setup_msi_irq(struct irq_desc *desc, struct msi_desc *msidesc);
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 6e668b1b4f..50e49e1a4b 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2176,7 +2176,7 @@ int map_domain_pirq(
         if ( !pdev )
             goto done;
=20
-        ret =3D pci_enable_msi(msi, &msi_desc);
+        ret =3D pci_enable_msi(pdev, msi, &msi_desc);
         if ( ret )
         {
             if ( ret > 0 )
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 7f8e794254..335c0868a2 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -983,13 +983,13 @@ static int msix_capability_init(struct pci_dev *dev,
  * irq or non-zero for otherwise.
  **/
=20
-static int __pci_enable_msi(struct msi_info *msi, struct msi_desc **desc)
+static int __pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
+                            struct msi_desc **desc)
 {
-    struct pci_dev *pdev;
     struct msi_desc *old_desc;
=20
     ASSERT(pcidevs_locked());
-    pdev =3D pci_get_pdev(NULL, msi->sbdf);
+
     if ( !pdev )
         return -ENODEV;
=20
@@ -1038,13 +1038,13 @@ static void __pci_disable_msi(struct msi_desc *entr=
y)
  * of irqs available. Driver should use the returned value to re-send
  * its request.
  **/
-static int __pci_enable_msix(struct msi_info *msi, struct msi_desc **desc)
+static int __pci_enable_msix(struct pci_dev *pdev, struct msi_info *msi,
+                             struct msi_desc **desc)
 {
-    struct pci_dev *pdev;
     struct msi_desc *old_desc;
=20
     ASSERT(pcidevs_locked());
-    pdev =3D pci_get_pdev(NULL, msi->sbdf);
+
     if ( !pdev || !pdev->msix )
         return -ENODEV;
=20
@@ -1151,15 +1151,16 @@ int pci_prepare_msix(u16 seg, u8 bus, u8 devfn, boo=
l off)
  * Notice: only construct the msi_desc
  * no change to irq_desc here, and the interrupt is masked
  */
-int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc)
+int pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
+                   struct msi_desc **desc)
 {
     ASSERT(pcidevs_locked());
=20
     if ( !use_msi )
         return -EPERM;
=20
-    return msi->table_base ? __pci_enable_msix(msi, desc) :
-                             __pci_enable_msi(msi, desc);
+    return msi->table_base ? __pci_enable_msix(pdev, msi, desc) :
+                             __pci_enable_msi(pdev, msi, desc);
 }
=20
 /*
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index ddf2a48be6..cfe9ff8d2a 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -452,21 +452,29 @@ static void __init cf_check ns16550_init_postirq(stru=
ct serial_port *port)
             if ( rc > 0 )
             {
                 struct msi_desc *msi_desc =3D NULL;
+                struct pci_dev *pdev;
=20
                 pcidevs_lock();
=20
-                rc =3D pci_enable_msi(&msi, &msi_desc);
-                if ( !rc )
+                pdev =3D pci_get_pdev(NULL, msi.sbdf);
+                if ( pdev )
                 {
-                    struct irq_desc *desc =3D irq_to_desc(msi.irq);
-                    unsigned long flags;
-
-                    spin_lock_irqsave(&desc->lock, flags);
-                    rc =3D setup_msi_irq(desc, msi_desc);
-                    spin_unlock_irqrestore(&desc->lock, flags);
-                    if ( rc )
-                        pci_disable_msi(msi_desc);
+                    rc =3D pci_enable_msi(pdev, &msi, &msi_desc);
+
+                    if ( !rc )
+                    {
+                        struct irq_desc *desc =3D irq_to_desc(msi.irq);
+                        unsigned long flags;
+
+                        spin_lock_irqsave(&desc->lock, flags);
+                        rc =3D setup_msi_irq(desc, msi_desc);
+                        spin_unlock_irqrestore(&desc->lock, flags);
+                        if ( rc )
+                            pci_disable_msi(msi_desc);
+                    }
                 }
+                else
+                    rc =3D -ENODEV;
=20
                 pcidevs_unlock();
=20
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645835.1008291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emx-0003LF-Gh; Sat, 02 Dec 2023 01:27:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645835.1008291; Sat, 02 Dec 2023 01:27: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 1r9Emx-0003K7-46; Sat, 02 Dec 2023 01:27:23 +0000
Received: by outflank-mailman (input) for mailman id 645835;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Emu-000271-OH
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:20 +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 ed77f349-90b1-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 02:27:17 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B20exWc004068; Sat, 2 Dec 2023 01:27:15 GMT
Received: from eur02-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur02lp2040.outbound.protection.outlook.com [104.47.11.40])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqt8mg1hm-5
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:14 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:09 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01: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: ed77f349-90b1-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bCQtJj4C3OyLvyP07sjtYz/XMAIavCGvgfPgqI078Uw4ifiMe2Ks+WDclK3kAA8fmW54UUckTOzQdf0l8lzcfjY89SmN8z6sl+pgCd9HRA/6UDrpwsC6tUwgaeyXOXq8mVWtMuvkL7wIsnh8I1GablCWsxfDc1+CRUlGOyKWhag6t9QVi5zmFPjPMpoQ2c2Qp77v1sIPhGeRsXH2+z7M2r67U04qM/VseKQl2gZt2Tsch5pSlVioaFbWMbeaT7cMixrDxe/wZ4QipHV9V6NN4Jwd4/FymYiEn/EXyKu5OO+QhgJDvhrwBefjXbi9ElqsulJMsSjakmS9pW/GiVj2gA==
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=Q3pAsw+LQMW37ya9xY/fsEtMgle4eyEFHTErMj7PTwA=;
 b=UjyMO+dt5QnyuFZ1My3/vv+m+fj4UzGRzGlkr1lOiaKOPtJguC9oKSMvVZBJhMCG8yL6GSyFq81QgJKMdsFpcesFeSQNkmB74gqsjmchQyl0C3eDpcOfm6RHWhm95JDUfB53y1Ogr30MWRncLI0EFchySU3O9nl7xUNUD98ZU6l35O1WwoGiHC8GTOiFnzdwYAuUeFKNuiwFERL6imOm7J94CxNYtuyQRrF6QdL/J9Kh+AJDthNcoa+cs7xKWvkWV7+jRk9kW9kVsFtqO8B6uk4J4tqZYNvdjyppEpptPm7bBpvsLW/p4duIdx9iWGJnSme1jQeoRAzTWruFEbih0A==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Q3pAsw+LQMW37ya9xY/fsEtMgle4eyEFHTErMj7PTwA=;
 b=lNrTyzTZs3cOeRQ8SMNKIowGFqODO2etAm86cg3flk9Tz/BppgSo271B3C5/42D3YCCD5JG5edmBFfrkeIlh6eHZlh1NrENsCj2Na8tbYZE+9lPuMXKrMicF8/tjx5zb/Tpo1xiL0m1yQDKHiVjh5ewP6ssyBZ8mRAXQajGjiJaiTxn0XhkiNm8Pi90FGwpo3d2tqOEpfQi/5mw7GseIHs2Lp2BAmmIEhXHwTe2rlOxvujPMEs5g78+PcT8U5X3xUK0Pmwyj6ecXCTvu+3KkCntcTpzTNwzaN65HGDMdp5PT9FjIV1jehRdoqlb/dvbeVhpekjWHBRsk7ntJ8kmLHQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 12/17] vpci/header: emulate PCI_COMMAND register for
 guests
Thread-Topic: [PATCH v11 12/17] vpci/header: emulate PCI_COMMAND register for
 guests
Thread-Index: AQHaJL6pbF2piO+GXk2gsbpguvwtEw==
Date: Sat, 2 Dec 2023 01:27:05 +0000
Message-ID: <20231202012556.2012281-13-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 7eeb0784-d548-49f3-edaa-08dbf2d5cdcd
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;
x-microsoft-antispam-message-info: 
 3E8QrFBpn4d2JTFqbXNlmc+7Y5PmnvBKTQWcUZG/y7btkyH54A+cFcPtVBXSJR6yOImji76Nn/miJN2JMoeMWOfT1T3ZWXdUEjai/hbFhT9hbKKaYrDneFHtgVP16JQxTqU2SMKPpmrFV5plS1z8y1YgYR1F6zS2PR3SV8Xe8dsA/LXULHA+fNgkYlXiokvxA0pA+00Z68xsmGdhg1p9F7rcpo6jvjaWMOsUHK3+z3mOd0Lh3PcjC24fjLq9p9bhoRGZTvuPIbn/V9JsSyOGvUbzHZem+zYAZae0kf9/0gObSWNq+fnEqYwzdL5E/tI11NBmHHOrL+q487cTTbKycNilwRjj4QI3HENyCOMYz8CCBfUU18R/yzFyShNG/jQH+S+JAda8Zc+IjnrGtGh+U7UWMFJftFYcuJqhiBs92JniKzWS0uZln0D6WM90aCexM0KIX0tQhdkbObct4GOd/dmZAvrGx6mrWHRwJ2tL5uuf9Ca2VSNwuWL2v8lq5ZmLK9GVrSbksb/KjEyPJf/rr+U9hYOVt2bjX2HqTG3QbAijr1Sm8WykrHTWtcx4k1SHg9GE6WArNIZhyEeZWurih54D1QJKM4HogbfI8b8SH9DrwSl8jSB0LS5cdv0gykde+O62AQAN8+RELsZacs4DGWrsGn9DOdcp1VcejnkGOpo=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(230273577357003)(230173577357003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?LFbhjfAeQtPViVq9hvudyKubyzH56K+b0vUaMLbp6E/HmsGzeOFPs8MMj7?=
 =?iso-8859-1?Q?IIJ2F225wxlWQCe5O7XCyXMTJGsU9POIElFhT77Y52xE40AenBP0ViYLws?=
 =?iso-8859-1?Q?ssAjFEQvn7cM1xO2W7xzrE19UN+HwoS32fx+czCcRQjH4CpowhTb71wcOW?=
 =?iso-8859-1?Q?E6+HdvXb2YLN+kLkZv1GqsXcKshEOKgveQkuCRtAQsyRXDRXDkdTcVEpuc?=
 =?iso-8859-1?Q?2Qdg0pRE0YK9cie5kkTttseYAQUhjjwLPSnKrXqqRdUEa/b/YXBsQzNKmk?=
 =?iso-8859-1?Q?nbZmPjXsx94Vla62IlXjQGcDXDvf7kCKm2e6Oe21POX0GepJ5LP4Zr9BQ7?=
 =?iso-8859-1?Q?G5u6760ZfdKk2I1pHicGcw6wUl5s3rc2/oeukRbzXKZdSB7JwbgG/LwVNz?=
 =?iso-8859-1?Q?JAf4t4e/ZjEWZ7ZaABCq4e1ZpJAgdsqKuCiuZmzKjFOnyo7Mmf1fHTTTQ8?=
 =?iso-8859-1?Q?u4kn/LJ7qoN5AIT3heXE2z1SFnfRapTKqCm0yYPc2cTNMwqFbJUEG1xxIc?=
 =?iso-8859-1?Q?kFN00OM1vF3/cEMaxpxDBoKXsLtxjAKR7ZrWi8EcLxyLHbAYkTio5moNEr?=
 =?iso-8859-1?Q?wL5QmADXX9CKVdP18zibJWpKDRk1KkLBD/vbsn1u0v8HIvq7+jyP9xOsHW?=
 =?iso-8859-1?Q?PubVNABm0Han+JeLJPUBl+1HJLYZIDvohnv0xg0gT/PBNLqD/f/nW6QA3z?=
 =?iso-8859-1?Q?OvteMKUGwMuYhFPDVeViFPm0ZpRRp/WjYmMrFvR6+6jZSMkbseVlKjpABB?=
 =?iso-8859-1?Q?490ZX5ueTcxGCqfeAyzmYVSgg/PGMrigtecbMGJ6MNoOmK75YA5FOBk1iW?=
 =?iso-8859-1?Q?EpL5IeYNbD0X2hL8yniQ1lpxBARF96mKjgGRPNCD66toh/iVe5T7l/iWQz?=
 =?iso-8859-1?Q?Z41+h46nksvMdSAkIP7OHzQLAMFLJ4VLwz8abQ1AYr1cX6h14olU1B2IGL?=
 =?iso-8859-1?Q?fXvbnCR8pE2w4HEowo4RdXIfg1XQIQDzKXF9jFYt+RjppvbWPkg+1lz05f?=
 =?iso-8859-1?Q?niA5KVF51CV+tu/olh6pE44AazDozPxz5130LqmbbMBwNV/qGhsEBGZ9Up?=
 =?iso-8859-1?Q?aafHypnhUW68yycvlIl3hrcmVdPUiOtchv4rhDdxrPQEefZFzO/ac1s2Mh?=
 =?iso-8859-1?Q?tjrs8hj6lA9B+baeBRATDXLjB09XZcGj8dF2GXqIb7jSI90/iUTVxVdER7?=
 =?iso-8859-1?Q?MGdll/ttJqss7tvNME8G6rigZDiKNaK6lJXMpvQc9d10UYdEb225asbwyL?=
 =?iso-8859-1?Q?A8dRTmSIeyvg4aNdyvXyGFWbx7dZE60dsa07CKfOQegAsVr41pYk1bWZb0?=
 =?iso-8859-1?Q?/CzI84qFBvQonnDnv2AdxMfw7t19U95kx/wbNBWYzxRqs5VGS6u2WrT6xD?=
 =?iso-8859-1?Q?UT6bgFGr5Fp7U4xp2WUPfUyseMnHIdB/1EhlBag5HrpIuhpHTs3/aq9UcZ?=
 =?iso-8859-1?Q?QakadqKipHVpnP5NNcyUFGz+fDTetW8i48UeZiJlNy7E7HhqUeEBRQ/tf2?=
 =?iso-8859-1?Q?0DocKDi8AkiYrN6ruqmz0L9OSl3rF36ubpGf15ufZBtoU69XrRSfc/n85A?=
 =?iso-8859-1?Q?eV/KIivTMh3XwLc5JHZmH1ijGc7z7cQOuURJGCTikkiYle1cCp0hGH56L0?=
 =?iso-8859-1?Q?gTYPrTCgQszvDhNv1rUtL8FmfXMe2IRKJUx5Ml+8NRK0nL7GfTrWUDUA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7eeb0784-d548-49f3-edaa-08dbf2d5cdcd
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:05.9424
 (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: scQYzCULk6geVBzzqAFkPuaJciwpisnhaDop1ed+LL5jDiOFuXHcwMu4DtPJHVmPju1nOD9Jo9WIp2VexLbdZ64bsV/hhZutt5FQMJV4v3g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-ORIG-GUID: w3MQhgRcfDnR5a8Ep2nAdKiHh-HfIuWo
X-Proofpoint-GUID: w3MQhgRcfDnR5a8Ep2nAdKiHh-HfIuWo
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0
 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0
 malwarescore=0 lowpriorityscore=0 mlxlogscore=999 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Xen and/or Dom0 may have put values in PCI_COMMAND which they expect
to remain unaltered. PCI_COMMAND_SERR bit is a good example: while the
guest's view of this will want to be zero initially, the host having set
it to 1 may not easily be overwritten with 0, or else we'd effectively
imply giving the guest control of the bit. Thus, PCI_COMMAND register needs
proper emulation in order to honor host's settings.

According to "PCI LOCAL BUS SPECIFICATION, REV. 3.0", section "6.2.2
Device Control" the reset state of the command register is typically 0,
so when assigning a PCI device use 0 as the initial state for the guest's v=
iew
of the command register.

Here is the full list of command register bits with notes about
emulation, along with QEMU behavior in the same situation:

PCI_COMMAND_IO - QEMU does not allow a guest to change value of this bit
in real device. Instead it is always set to 1. A guest can write to this
register, but writes are ignored.

PCI_COMMAND_MEMORY - QEMU behaves exactly as with PCI_COMMAND_IO. In
Xen case, we handle writes to this bit by mapping/unmapping BAR
regions. For devices assigned to DomUs, memory decoding will be
disabled at the initialization.

PCI_COMMAND_MASTER - Allow guest to control it. QEMU passes through
writes to this bit.

PCI_COMMAND_SPECIAL - Guest can generate special cycles only if it has
access to host bridge that supports software generation of special
cycles. In our case guest has no access to host bridges at all. Value
after reset is 0. QEMU passes through writes of this bit, we will do
the same.

PCI_COMMAND_INVALIDATE - Allows "Memory Write and Invalidate" commands
to be generated. It requires additional configuration via Cacheline
Size register. We are not emulating this register right now and we
can't expect guest to properly configure it. QEMU "emulates" access to
Cachline Size register by ignoring all writes to it. QEMU passes through
writes of PCI_COMMAND_INVALIDATE bit, we will do the same.

PCI_COMMAND_VGA_PALETTE - Enable VGA palette snooping. QEMU passes
through writes of this bit, we will do the same.

PCI_COMMAND_PARITY - Controls how device response to parity
errors. QEMU ignores writes to this bit, we will do the same.

PCI_COMMAND_WAIT - Reserved. Should be 0, but QEMU passes
through writes of this bit, so we will do the same.

PCI_COMMAND_SERR - Controls if device can assert SERR. QEMU ignores
writes to this bit, we will do the same.

PCI_COMMAND_FAST_BACK - Optional bit that allows fast back-to-back
transactions. It is configured by firmware, so we don't want guest to
control it. QEMU ignores writes to this bit, we will do the same.

PCI_COMMAND_INTX_DISABLE - Disables INTx signals. If MSI(X) is
enabled, device is prohibited from asserting INTx as per
specification. Value after reset is 0. In QEMU case, it checks of INTx
was mapped for a device. If it is not, then guest can't control
PCI_COMMAND_INTX_DISABLE bit. In our case, we prohibit a guest to
change value of this bit if MSI(X) is enabled.

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

It is better to rework this patch using new register handling tools
that Stewart Hildenbrand upstreaming right now.

In v11:
- Fix copy-paste mistake: vpci->msi should be vpci->msix
- Handle PCI_COMMAND_IO
- Fix condition for disabling INTx in the MSI-X code
- Show domU changes to only allowed bits
- Show PCI_COMMAND_MEMORY write only after P2M was altered
- Update comments in the code
In v10:
- Added cf_check attribute to guest_cmd_read
- Removed warning about non-zero cmd
- Updated comment MSI code regarding disabling INTX
- Used ternary operator in vpci_add_register() call
- Disable memory decoding for DomUs in init_bars()
In v9:
- Reworked guest_cmd_read
- Added handling for more bits
Since v6:
- fold guest's logic into cmd_write
- implement cmd_read, so we can report emulated INTx state to guests
- introduce header->guest_cmd to hold the emulated state of the
  PCI_COMMAND register for guests
Since v5:
- add additional check for MSI-X enabled while altering INTX bit
- make sure INTx disabled while guests enable MSI/MSI-X
Since v3:
- gate more code on CONFIG_HAS_MSI
- removed logic for the case when MSI/MSI-X not enabled
---
 xen/drivers/vpci/header.c | 53 ++++++++++++++++++++++++++++++++++++---
 xen/drivers/vpci/msi.c    |  6 +++++
 xen/drivers/vpci/msix.c   |  5 ++++
 xen/include/xen/vpci.h    |  3 +++
 4 files changed, 64 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 21b3fb5579..bc2ebe125b 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -167,6 +167,9 @@ static void modify_decoding(const struct pci_dev *pdev,=
 uint16_t cmd,
     if ( !rom_only )
     {
         pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
+        /* Show DomU that we updated P2M */
+        header->guest_cmd &=3D ~PCI_COMMAND_MEMORY;
+        header->guest_cmd =3D (val & PCI_COMMAND_MEMORY);
         header->bars_mapped =3D map;
     }
     else
@@ -518,14 +521,40 @@ static int modify_bars(const struct pci_dev *pdev, ui=
nt16_t cmd, bool rom_only)
     return 0;
 }
=20
+/* TODO: Add proper emulation for all bits of the command register. */
 static void cf_check cmd_write(
     const struct pci_dev *pdev, unsigned int reg, uint32_t cmd, void *data=
)
 {
     struct vpci_header *header =3D data;
=20
+    if ( !is_hardware_domain(pdev->domain) )
+    {
+        const struct vpci *vpci =3D pdev->vpci;
+        uint16_t excluded =3D PCI_COMMAND_PARITY | PCI_COMMAND_SERR |
+            PCI_COMMAND_FAST_BACK | PCI_COMMAND_IO;
+
+        if ( (vpci->msi && vpci->msi->enabled) ||
+             (vpci->msix && vpci->msix->enabled) )
+            excluded |=3D PCI_COMMAND_INTX_DISABLE;
+
+        cmd &=3D ~excluded;
+
+        /*
+         * Show guest that we allowed it to change bits that are not
+         * immediately excluded. Do not show change to
+         * PCI_COMMAND_MEMORY bit till we finish with P2M
+         */
+        header->guest_cmd =3D (header->guest_cmd &
+                             (excluded | PCI_COMMAND_MEMORY)) |
+            (cmd & ~PCI_COMMAND_MEMORY);
+
+        cmd |=3D pci_conf_read16(pdev->sbdf, reg) & excluded;
+    }
+
     /*
      * Let Dom0 play with all the bits directly except for the memory
-     * decoding one.
+     * decoding one. Bits that are not allowed for DomU are already
+     * handled above.
      */
     if ( header->bars_mapped !=3D !!(cmd & PCI_COMMAND_MEMORY) )
         /*
@@ -539,6 +568,14 @@ static void cf_check cmd_write(
         pci_conf_write16(pdev->sbdf, reg, cmd);
 }
=20
+static uint32_t cf_check guest_cmd_read(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
+{
+    const struct vpci_header *header =3D data;
+
+    return header->guest_cmd;
+}
+
 static void cf_check bar_write(
     const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data=
)
 {
@@ -755,8 +792,9 @@ static int cf_check init_bars(struct pci_dev *pdev)
     }
=20
     /* Setup a handler for the command register. */
-    rc =3D vpci_add_register(pdev->vpci, vpci_hw_read16, cmd_write, PCI_CO=
MMAND,
-                           2, header);
+    rc =3D vpci_add_register(pdev->vpci,
+                           is_hwdom ? vpci_hw_read16 : guest_cmd_read,
+                           cmd_write, PCI_COMMAND, 2, header);
     if ( rc )
         return rc;
=20
@@ -768,6 +806,15 @@ static int cf_check init_bars(struct pci_dev *pdev)
     if ( cmd & PCI_COMMAND_MEMORY )
         pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd & ~PCI_COMMAND_MEMOR=
Y);
=20
+    /*
+     * Clear PCI_COMMAND_MEMORY for DomUs, so they will always start with
+     * memory decoding disabled and to ensure that we will not call modify=
_bars()
+     * at the end of this function.
+     */
+    if ( !is_hwdom )
+        cmd &=3D ~ (PCI_COMMAND_MEMORY | PCI_COMMAND_IO);
+    header->guest_cmd =3D cmd;
+
     for ( i =3D 0; i < num_bars; i++ )
     {
         uint8_t reg =3D PCI_BASE_ADDRESS_0 + i * 4;
diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index 6ff71e5f9a..6cfa9aea00 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -70,6 +70,12 @@ static void cf_check control_write(
=20
         if ( vpci_msi_arch_enable(msi, pdev, vectors) )
             return;
+
+        /*
+         * Make sure domU doesn't enable INTx while enabling MSI.
+         */
+        if ( !is_hardware_domain(pdev->domain) )
+            pci_intx(pdev, false);
     }
     else
         vpci_msi_arch_disable(msi, pdev);
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index b6abab47ef..2aa2833160 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -97,6 +97,7 @@ static void cf_check control_write(
         for ( i =3D 0; i < msix->max_entries; i++ )
             if ( !msix->entries[i].masked && msix->entries[i].updated )
                 update_entry(&msix->entries[i], pdev, i);
+
     }
     else if ( !new_enabled && msix->enabled )
     {
@@ -135,6 +136,10 @@ static void cf_check control_write(
         }
     }
=20
+    /* Make sure domU doesn't enable INTx while enabling MSI-X. */
+    if ( new_enabled && !msix->enabled && !is_hardware_domain(pdev->domain=
) )
+        pci_intx(pdev, false);
+
     msix->masked =3D new_masked;
     msix->enabled =3D new_enabled;
=20
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index c39fab4832..a50dad6968 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -87,6 +87,9 @@ struct vpci {
         } bars[PCI_HEADER_NORMAL_NR_BARS + 1];
         /* At most 6 BARS + 1 expansion ROM BAR. */
=20
+        /* Guest (domU only) view of the PCI_COMMAND register. */
+        uint16_t guest_cmd;
+
         /*
          * Store whether the ROM enable bit is set (doesn't imply ROM BAR
          * is mapped into guest p2m) if there's a ROM BAR on the device.
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645830.1008244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emu-0002IG-An; Sat, 02 Dec 2023 01:27:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645830.1008244; Sat, 02 Dec 2023 01: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 1r9Emu-0002HK-5C; Sat, 02 Dec 2023 01:27:20 +0000
Received: by outflank-mailman (input) for mailman id 645830;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Ems-000271-Nj
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:18 +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 ebfa4255-90b1-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 02:27:14 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B20exWZ004068; Sat, 2 Dec 2023 01:27:12 GMT
Received: from eur02-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur02lp2040.outbound.protection.outlook.com [104.47.11.40])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqt8mg1hm-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:12 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:07 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27: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: ebfa4255-90b1-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hP60KBmfNMFnjfgi1NsdMQEhxrg1U9g4M9jo8A6E9qNb9kDA9lmalLgcqOL77+sm4L1FyYepuJiiMlqbGh8oGPY7NHfTpDpbmGmdKxXgPM9pZ503bdwRHi4ntmmhfSHrqDlCVFS9mRKXag7RmMqHShJavjjDb6MSdNOJsk8NKs3iW36He4ugQLtEjcT9U1SUfAJ11sl2xAvvxC6U/4nHaCFn/vsphczfKc1KB0VjM1aINSuoqZxYoFlufUBedqC9k/mZxAf2W5GQm6HUDl6pKTMF3EQok/G/3Q+f4mYAfWQfnTgClnJAdRUPkrKDUzfUjzi3PDfsf4PZ0zjAuiqjbg==
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=SFwYHxU24LM47Wx7eKT7t91aTd5L+oJ//Tk/2jLWySA=;
 b=euaBkwaH4JkwfYUsiOJbB8lyo2DSGT3Pp19b0KD/ttzezvKzta83irEPVvdLDNDqfmUqZfeSeQGo3E7DBkHmoxmBltOtBuSU/IyDVpg/qVtFmCRC7Pj4vT70ri/7IX63PB/igZNrdU6zvg3Ig7deQBDy4r2WG/gWa99y0KJROavN2EbR6ToHKjUhlYs32DQD72egn8nCurnj4V5Kx0Raho1mkVKsHqMP/ciUuHWYlYeI0j9qnOSwpQxUKPZookA1a33aeiH6KRgjDMDXlil74II88BfSVyI7vI+4upXZ5qbMs24aMMFIHE+c/fpYEelPdtCpTWfZ84ItW8+XeXVHCA==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SFwYHxU24LM47Wx7eKT7t91aTd5L+oJ//Tk/2jLWySA=;
 b=P6GtjoKrKttcLr4AYJm9tfR4Cm7oSOmuKtCFLa/x0kIjrtkE7EcKdWpRkA74IRIVmfxLp6pXm6usY3Ic8RtEGBJcbEb1NwV03BTl1b2keVyktQFKdRwaiksjRiabCqDwfnjqyyP1Z8pcb6CV6AGewjtj5V+ypD48PdvBXxXZyHmD394Fu642H2+29r/+STMyZP5RGJplhGn1DgrWNCvz+SalpB3fQGLjKEUI/olq7J6H7dLYsyuOoaKBZqv4RQ34kHpuMae3Tdj9VLY6O4qczxibzyXjEdOhfNrbchXkaYV9pFDeNntq5G72pyWmoduGaD6+r0tqW5vl/JCp0Dsk1w==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
Subject: [PATCH v11 06/17] vpci/header: rework exit path in init_bars
Thread-Topic: [PATCH v11 06/17] vpci/header: rework exit path in init_bars
Thread-Index: AQHaJL6n1kPp1+DEXkyG3DA4rY4zlA==
Date: Sat, 2 Dec 2023 01:27:04 +0000
Message-ID: <20231202012556.2012281-7-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 9198ba8e-0535-4f38-dfc3-08dbf2d5cc2b
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;
x-microsoft-antispam-message-info: 
 is4K3x+RaHsNn5pOgEiOOEKDVwXh7Y6YF4KcfKgo6iXJObxSNcTYyiJ9sVsXS8i1Cxf2/fXhY/RtoQy/SbEMwqxJ/oTgC6vug6PkMkMbO2iqwJYIwT4HnM1JVtH89AxWEViW0oFgnNOd9VJ0r4ow/yqxelLdo8d0QIxEt58nUK6XuWW2dRMCrItiIbu9pbgs6M0PAtMjmgqi/yh1kiAN8ACdP/bR0Lj5mtWX1J3NGD0+JsB0Gqfk91qmC/NEmtbk55ibPASYvs4RsW/nHlURoHdryK2ndeUGrB7x8rTb4c5aRZ/eVjE8SK6imTa+JqGxi0Q85fLQwAsvVzI75wOl/S7VXO49jnq/0AohqriaV4a2s5n6Lvao6v4S+RqVo5vPDbNiygULFZMKOplflS06RR5ciyXtKfGLfQ24Vi/6a3dz/guc72oBe1w28aDGgJCNYwqoWVooRxIldxQWhXFRKcTpVgiADaGw7he6ndFLpgrrZbf1d1hFsXYUw4YI7bcPD0qB/W3ghS+pywiekB95EITkA/V4afqWH119yTyquF6gwPp7jjvDvalgMBOJJpcidKG0DBMtb/zBYNXBazfv7Rnb3Ix88v5G8fwg1z7tVvyI5QHSdj2fUMC1usApD8nG
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?N2hjdUJQVHpoYWJGSW9xZ1hlL1dLK051MGdIY2k3Q1pLSVpUNksyZWVIZjFh?=
 =?utf-8?B?eXFwQlJPSU1oWGp0ZGxrRmR5UE5SMU9sTE5GVlVmSUVVWXY2YmtzMmtueStr?=
 =?utf-8?B?dEl4UWNseEZ6dm9LYjY4TW1kMWhiMUttOFVMOExiYkUwWndrY01HcHNlYitx?=
 =?utf-8?B?K1Y5OUZhN3NVMFhLQU1neUFMRXo3K3NMNWoxMGdHeHNqQWQ3NEZieUkrb3Fz?=
 =?utf-8?B?VXA2NVByNDVnTkxOUVN3NmNmaTJmaERpK0FnaU8zV1grNmYyV1IzV28zQ0Fo?=
 =?utf-8?B?YTQ5TlNBajlQVTVGTk9RbUxYTyt0UU5jRzB3aDJYdEMyYXZMZnhpSjl6SUhm?=
 =?utf-8?B?Y09qZU5mR2tFSENDejNTZDhKendHYkxBUTlEaUtWTG9VMUluWnZzei9OZHo4?=
 =?utf-8?B?QjFXc0xqOWtrd081YnIrZDZjQW5NYXZ2L0d2b2djRGt6NjFiQ0kyS2FuMWRm?=
 =?utf-8?B?elBWZUhHQ0kvd21mVVlYNlRRb2d4T1dCT0xSd1VtbnFhTVFYSEZDQllsb08r?=
 =?utf-8?B?cFBRdTlvSiszYzlDWWFnT1ZJR2NScW9nMWlhcFI0aXRZbFB0N2ljbDE5VkJK?=
 =?utf-8?B?eThHYUhTMzJQQlRSdFdFRVBYUEEvU3owRHdvVEsyWXUydk9wTlkxbDY3dGNr?=
 =?utf-8?B?QmFjaWxUQyt2bm9UaWozSGNWdjRldUpQdWhBOHh1YnMrRTBhS2F3aXZSN1Uv?=
 =?utf-8?B?MTQ0OXdYQU5PQkZabUhLZk1LMVQ4T0RmYkxLNkVCWGxCdGhvK09QWXp4djYy?=
 =?utf-8?B?aFFRNnZ2QlVRZ0EvRy9udktTQjVnOUJadTljTFFkc1VEVjc5TDhFSWRkank1?=
 =?utf-8?B?U1BIUkxESk9LYzA4L0FvVFJTcTZwNG5KTHV2bkw4cUZpVER5K212ZEVWL0gy?=
 =?utf-8?B?dVRTYmZBVEc2bE92Sm9KbDlZemkwS085Nm5nODM1L0YwTXdMc3RmYlloUVZ0?=
 =?utf-8?B?L3krMmt5eUxTWGp2b1ZFemFDM1BIY2RiVXB4WjlXYmlnT0FZcERmVVltT0Qx?=
 =?utf-8?B?N1N1VldhaGsrTGxFbHlBQzZlU3lPbDJ5RlRxeWl2OHdDMWNSLzEwR1lEK2lM?=
 =?utf-8?B?bDY0bHdnNmhvOVpRS2Z6aG8zYVBubkRrOXFwRGp1L1hiWG9FWDZxbU96bkwy?=
 =?utf-8?B?MUhCMG5YQk5GS1FYakJrSUFyQ1MzbWh3NDROTzhTTlUvL04rK1N3ZXdLYUNo?=
 =?utf-8?B?NGIrN2pkYnhOVk5ya09UVDdlTExsYUR4eDlHa09XYlU0VG90NjJLMUxPbWlo?=
 =?utf-8?B?M3E3eUhFZGdxNjFkQWdnWC9OMm1iTlZPSThGbG8rbEhPdW56aUVxdmpBcVZk?=
 =?utf-8?B?bzFxdEdha3pxVkl2SzF1MUhnM2o0Zm93czFaSnNXa3RsblhpWm5Oa2huRC9O?=
 =?utf-8?B?aDFkdW1wYlg1MzdxVC9WNmMxTGNOMmpjL09xV1dyY0xaMDJWdHlsMXNtdzE3?=
 =?utf-8?B?S1R6NXk3YXNJbEFTQk13QXRaQ2wxRVE4eVdpci9hUVJzZ2pXbzBNb1JoRnpu?=
 =?utf-8?B?ZkNoRU9XT0prRSt1SjZ1ckowRG5tam4xREVpZHk1WUZqVWJjZGpsRmxlMXVI?=
 =?utf-8?B?Y3VoWUtzWXZWMmpKTVZmd2FMUGtkUmZsTFc0S3R6aHlmcnFqN3RISlV5em5y?=
 =?utf-8?B?K1pVMUNKa0VYdllvYkN6L3dUMEtmMXB4azhZMzdTb2R0dVRKRlp2eGtpeGlL?=
 =?utf-8?B?Zm0ySnphZjFZQ2prVkFpbkY2anFnRlJtMm1oUm9wSi90czBMRzFDa05HWnV3?=
 =?utf-8?B?Nk1FTVRYSjFUSXZWZXR3YjNPU2hsTGVrNkF0SXFSblYweG92M2xEZnozOEJr?=
 =?utf-8?B?Y3Zmc2RxTS93UmJUNXZSNG1uNTV4Z0JLTVUweUUyS2tTbFhoWEZoaHBCR2hE?=
 =?utf-8?B?WHUybHJBZzJDRVFwUmRUMnVjZEZGSjNIR3A4Z0xSUFh3Ty80S0piV241dzhj?=
 =?utf-8?B?eVpSL2U0MDRuZ0ZyM1VFTmNxdnR6L0JPK3k4ai91U1R4SVpFWU5pS2lHUUts?=
 =?utf-8?B?dDgrTnZaZVJDWEVON2FiUGpTY3J0R216MXlVcmhsRWtDTDZ2TGxhVi9KYXdC?=
 =?utf-8?B?ZWtXSFh0c1NvV2xTb3Nlai84YVVuWGhZK3gyUEYwaVVQc09aWitlVldZTE9C?=
 =?utf-8?B?czEya2hIU0tjdTNjelVJeUlKSWxUSE5KVS9DV21udEFQU3pZL0tCLzF3L29w?=
 =?utf-8?B?K1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B94DC1D15413C241802C71B6AE82126B@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9198ba8e-0535-4f38-dfc3-08dbf2d5cc2b
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:04.1397
 (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: bPrDjI8ZhUaHNyVjvH0tWsCZwlrQWOQKz+4lQKh6DTveeedSLI32RgMW7zprGVlSmtTLnSHIE4L4zWu8MJXey8LeBehgPHEbKIlrCCIKYsk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-ORIG-GUID: T730irxzVb2dsD5u96ynCg5bhDM3i3Kk
X-Proofpoint-GUID: T730irxzVb2dsD5u96ynCg5bhDM3i3Kk
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0
 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0
 malwarescore=0 lowpriorityscore=0 mlxlogscore=930 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

SW50cm9kdWNlICJmYWlsIiBsYWJlbCBpbiBpbml0X2JhcnMoKSBmdW5jdGlvbiB0byBoYXZlIHRo
ZSBjZW50cmFsaXplZA0KZXJyb3IgcmV0dXJuIHBhdGguIFRoaXMgaXMgdGhlIHByZS1yZXF1aXJl
bWVudCBmb3IgdGhlIGZ1dHVyZSBjaGFuZ2VzDQppbiB0aGlzIGZ1bmN0aW9uLg0KDQpUaGlzIHBh
dGNoIGRvZXMgbm90IGludHJvZHVjZSBmdW5jdGlvbmFsIGNoYW5nZXMuDQoNClNpZ25lZC1vZmYt
Ynk6IFZvbG9keW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4NClN1Z2dl
c3RlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQpBY2tlZC1i
eTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQotLQ0KSW4gdjExOg0K
LSBEbyBub3QgcmVtb3ZlIGVtcHR5IGxpbmUgYmV0d2VlbiAiZ290byBmYWlsOyIgYW5kICJjb250
aW51ZTsiDQpJbiB2MTA6DQotIEFkZGVkIFJvZ2VyJ3MgQS1iIHRhZy4NCkluIHY5Og0KLSBOZXcg
aW4gdjkNCi0tLQ0KIHhlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgfCAxOSArKysrKysrLS0tLS0t
LS0tLS0tDQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0p
DQoNCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jIGIveGVuL2RyaXZlcnMv
dnBjaS9oZWFkZXIuYw0KaW5kZXggZWM2YzkzZWVmNi4uZTZhMWQ1OGM0MiAxMDA2NDQNCi0tLSBh
L3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCisrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVy
LmMNCkBAIC01ODEsMTAgKzU4MSw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgaW5pdF9iYXJzKHN0
cnVjdCBwY2lfZGV2ICpwZGV2KQ0KICAgICAgICAgICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0ZXIo
cGRldi0+dnBjaSwgdnBjaV9od19yZWFkMzIsIGJhcl93cml0ZSwgcmVnLA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNCwgJmJhcnNbaV0pOw0KICAgICAgICAgICAgIGlmICgg
cmMgKQ0KLSAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUxNihw
ZGV2LT5zYmRmLCBQQ0lfQ09NTUFORCwgY21kKTsNCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJj
Ow0KLSAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgZ290byBmYWlsOw0KIA0KICAgICAg
ICAgICAgIGNvbnRpbnVlOw0KICAgICAgICAgfQ0KQEAgLTYwNCwxMCArNjAxLDcgQEAgc3RhdGlj
IGludCBjZl9jaGVjayBpbml0X2JhcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQogICAgICAgICBy
YyA9IHBjaV9zaXplX21lbV9iYXIocGRldi0+c2JkZiwgcmVnLCAmYWRkciwgJnNpemUsDQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkgPT0gbnVtX2JhcnMgLSAxKSA/IFBDSV9CQVJf
TEFTVCA6IDApOw0KICAgICAgICAgaWYgKCByYyA8IDAgKQ0KLSAgICAgICAgew0KLSAgICAgICAg
ICAgIHBjaV9jb25mX3dyaXRlMTYocGRldi0+c2JkZiwgUENJX0NPTU1BTkQsIGNtZCk7DQotICAg
ICAgICAgICAgcmV0dXJuIHJjOw0KLSAgICAgICAgfQ0KKyAgICAgICAgICAgIGdvdG8gZmFpbDsN
CiANCiAgICAgICAgIGlmICggc2l6ZSA9PSAwICkNCiAgICAgICAgIHsNCkBAIC02MjIsMTAgKzYx
Niw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgaW5pdF9iYXJzKHN0cnVjdCBwY2lfZGV2ICpwZGV2
KQ0KICAgICAgICAgcmMgPSB2cGNpX2FkZF9yZWdpc3RlcihwZGV2LT52cGNpLCB2cGNpX2h3X3Jl
YWQzMiwgYmFyX3dyaXRlLCByZWcsIDQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZiYXJzW2ldKTsNCiAgICAgICAgIGlmICggcmMgKQ0KLSAgICAgICAgew0KLSAgICAgICAgICAg
IHBjaV9jb25mX3dyaXRlMTYocGRldi0+c2JkZiwgUENJX0NPTU1BTkQsIGNtZCk7DQotICAgICAg
ICAgICAgcmV0dXJuIHJjOw0KLSAgICAgICAgfQ0KKyAgICAgICAgICAgIGdvdG8gZmFpbDsNCiAg
ICAgfQ0KIA0KICAgICAvKiBDaGVjayBleHBhbnNpb24gUk9NLiAqLw0KQEAgLTY0Nyw2ICs2Mzgs
MTAgQEAgc3RhdGljIGludCBjZl9jaGVjayBpbml0X2JhcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYp
DQogICAgIH0NCiANCiAgICAgcmV0dXJuIChjbWQgJiBQQ0lfQ09NTUFORF9NRU1PUlkpID8gbW9k
aWZ5X2JhcnMocGRldiwgY21kLCBmYWxzZSkgOiAwOw0KKw0KKyBmYWlsOg0KKyAgICBwY2lfY29u
Zl93cml0ZTE2KHBkZXYtPnNiZGYsIFBDSV9DT01NQU5ELCBjbWQpOw0KKyAgICByZXR1cm4gcmM7
DQogfQ0KIFJFR0lTVEVSX1ZQQ0lfSU5JVChpbml0X2JhcnMsIFZQQ0lfUFJJT1JJVFlfTUlERExF
KTsNCiANCi0tIA0KMi40Mi4wDQo=


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645836.1008301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emy-0003gY-LZ; Sat, 02 Dec 2023 01:27:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645836.1008301; Sat, 02 Dec 2023 01:27:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emy-0003eZ-2g; Sat, 02 Dec 2023 01:27:24 +0000
Received: by outflank-mailman (input) for mailman id 645836;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Emv-000272-Rw
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:21 +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 ef9d9905-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:20 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGv3008549; Sat, 2 Dec 2023 01:27:15 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-9
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:15 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:10 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01: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: ef9d9905-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OvyuZRmdhw+QyvsQKkf4y618fBcDryLJKYr+YkBBxcpgN4e8nYCowiY3YaUfMPKQ4qK7KqEkJEl/5dXkCJuSKeUyVmfPNg86vFEXZg3pvxmKutREuq4oPVNISaHTmkVy0r/j60BkPYbVbBsQkOZpGsBpWcoPSpjxyUWnuAd1X84okxsb2ek54BLo6iaZk7VE4KMdmHMUYsrfnFL693bdhM3bnFk2uWPAg+SMiaUMkLzLyN94jl3d9vVsXU3J/B6fcfyIahbwCZlH9gcLZO6613bVgIo49tJu84uPnOBffkHFtjWw2tGYT+ehCqBS5On8dKe6zpCDyU+yQkyxNeyAPA==
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=nvwRYk1bAN4JyImy8c8Ch0HVDpPVv8XFVfUhLtLPGZo=;
 b=N0ghPJuqaihdkMY5ANVKJgaApu2BwpGeX+3PoSeA4iWcyLKu3kh41XcwKUoBQD+IBbAi+C7f/8JQ0Cu+WVAEmV1HQvbMlBpkLb6bq7o2DxSThzG44URwmbKG2LltzPEz5a0yNPpq8s3Ap5G/gClvqIzAtZ58FzJ3dc4Qhlk8suD9BY3tmjZNYUv262cd6cwj83Hk0hjo4Qb1nf/fmL1/PqQpqtdkLWZdz+PWMt6zRit30+bpLShWZdoU85zOAiGzD0zcPhs8RBWgEuNWhwD/qxmvAHkWp40TvoOnhIun6b1swTYpK2lGOOD/xy51suhTng0CoboeLVXREBMUisMniw==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nvwRYk1bAN4JyImy8c8Ch0HVDpPVv8XFVfUhLtLPGZo=;
 b=rJWgxohtDRtBX7h1BrpXHOJmdg27x+FIkzuU/FO8vnYYogUJ0ubiOQ5eujW5PdvNRYvoZBqdYI71DiEf+eGEEo4R2rxnarCbC2Ph6P6rNbGEknkdSm6K2vf8Gi5C77e2CWbaKz3QtBD9DYimZc56CmpAK60WzSr+vfovCA2Ub6koynpBAL3UjRR9VGGrhrQEwTlCueF5HCjuX2gFwab4pQKuR2alcN0zlKd5PlloYi5LsD5DIQ3h6GcCKadJ8MNpgCVXbn+v/+opmC9xNUH2Lh5C46nbsQF87SPJqm9qMbSBsApvgMAgWDh3AyQyEH/o0P+7MG0V+w/irLIOb6EBcA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.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>, Wei Liu <wl@xen.org>,
        =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 13/17] vpci: add initial support for virtual PCI bus
 topology
Thread-Topic: [PATCH v11 13/17] vpci: add initial support for virtual PCI bus
 topology
Thread-Index: AQHaJL6puZ1COBY1lkyH/O/4FVoj/g==
Date: Sat, 2 Dec 2023 01:27:06 +0000
Message-ID: <20231202012556.2012281-14-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: e9759de7-86f5-4474-9989-08dbf2d5ce14
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;
x-microsoft-antispam-message-info: 
 ZOhTyIlegJlSD1VDS6nSnSk0omMBd+/gus4217HcRldMHDbaZI0MMFcaSFGKffzubV5PNFs7OP2RI2P8+JOoUGweDytdonDY+S5S/DXmdd7Yl68hQpwItp0p0ueZ/X3n3YZh1r0gTc40ElQPbtPiouNOXbC5SuzkycVsdH38bLXcPCmbJCKcr3BzGquKZCG6UYtUfvSGkIw4Fpoodz3wcIp7nwCgaULZb8sv26mT8YbtJQuo+CBOVqGJkE7FiN3PBqMJpv3YdZjIHepjnlOd9VOb914ia74GLWNW/8eaAICUNu48BCJwdYztqMV9B5yNX4z9zEBXRYbX7dviDNPtnA8DUkYaJP52kSuGPB1c9RRiLBTkJs0Z49rCKlPYUy0kiF2+FMZFEwAG92Fe7DKXtFD8qn+Kb6A0fZs86PaLqU8szf3BL1c236/ZbAEJ5te2EJNjwycWpnZYubdNCDvUX3HzIaG6LfVWceeHkBJc71nlwHboVxNhZUVrU4vRng/fkq494fVuezw0cghv0QDDtLrLBiz063cMSgDSEKFBwCZEYWAU1Ns2W8L8AQLIFp7cKPso0qU/XzTHAgMWRRc0mPMqxMtAeZT3nDK6AqLYBbPCy5DbN0qcGhlmyPeo20Jl
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?27JXlJA5kQiY1dOUVSa7gw5Ne8UFGK41GmuafqHi7DCJELezXt0CjgkTDa?=
 =?iso-8859-1?Q?6lW8cXibcMdqbllSaaWE6/P9LMZLyyixCg4TlNKDc8a0+L57QIio17hYQR?=
 =?iso-8859-1?Q?FrVmFHLonzF1n89dlh4tfHlQl4pP9DWwufDHWnfrzk/pR/enwOFPzWi1WT?=
 =?iso-8859-1?Q?BBXy0emx1UZhZVzCzUDMZALxEKipFuc/W/1hNIkMe06iLw0QGmfkGN+AAc?=
 =?iso-8859-1?Q?KyRu1gZ6fUIQ5V4wR1peTyMoDHGWbjFKyNvlI4hT7s7aSx+T8UalAfySBf?=
 =?iso-8859-1?Q?E61UgCweeAY0mUH8UGFaFJ2B5Cs/Y27qPNlxUQzetZfEHQkaZfLtDFS+UD?=
 =?iso-8859-1?Q?WoSfUdAQCAoK94c4n/CVmb9NJJhh5VJYQxpRI/fE2tZ1zovea5KUJqhYYA?=
 =?iso-8859-1?Q?omGPPEWPk2qtoJaD1WPfqqi+PaFL7WGpHI832y5DEce8Xtwf3n64gobEeL?=
 =?iso-8859-1?Q?DOYi/LNJVS+Rz1/amyUFK4M4e3vDELZGtk/iqFnBbL7lI8rZJEI2afIDEz?=
 =?iso-8859-1?Q?OCx1qPikyRvAzNGY9ZUfEnBxGOBJgdMQyTOCLM0GEB6LgXa7k+GGT8a2/g?=
 =?iso-8859-1?Q?+gDMiPMotFPdGN86i7VzM2xZQKzPUIw5v6Kq0XzQ67L0axDLzgZX5Glvd4?=
 =?iso-8859-1?Q?ws/4QeZdOVuPcAAh++8FyQvR/X626og7Myg79PpKtUvbJFsxx0fePaeBEq?=
 =?iso-8859-1?Q?3IXjbiEgSd+JiqoNMP0FEtbQB4UICiTc2YlFCDVqvdb4BgJkGa2kzWaglG?=
 =?iso-8859-1?Q?qdZoFxryC/Bqvo/+Y47Flv0Tg+Mps338I+ZF0NZ4AmcPyNTDUAn7Q170OQ?=
 =?iso-8859-1?Q?7W43mOyJzaXcKOBDtAbE7CkClWczMX7uj2q/+hDOvKbopBxtbsxh4ASRbe?=
 =?iso-8859-1?Q?N54Ad/7xxq867SRpoNXgAG/GaXzh5TOHhnyvUTXCjpuWge2/RGOxz+oHm+?=
 =?iso-8859-1?Q?seU2yvaHfNqJ1Gn/ck5Ta/E7zYmj5Rilx/skxnRCBvYDtcwcotE9OxkVif?=
 =?iso-8859-1?Q?9YAee4Rx8+NqUF7Vw7W66H9G01T1U8WSA/lU2aF8JQZfm45vjpE+mySwnC?=
 =?iso-8859-1?Q?RdFl9L0BtmWyEGTOxGd5soWzACKVcI/ENCoB2/XpOnZrH+4OHjJ1H4+KI5?=
 =?iso-8859-1?Q?tRYQ2gCSw7qN4LlV9Tsluh0nubY8MKs5rIG6w+UB6GVN8Bdgm1hTizm85y?=
 =?iso-8859-1?Q?7MheNcsU9Z9PRoMtqCRAZ4fNcbT/GnqwbZnuEPssDRlrbjfE0DO2ogkBf8?=
 =?iso-8859-1?Q?4O5lJ4AwULP9G7ewYQCdjAPK6VCPkCosqzeWZyvCJ2JtUwgSc5lsR6EMiX?=
 =?iso-8859-1?Q?r36CUriq9JkUmZj6IIL1ByE5rb4Rj7LJW3/A6pwLGugMOsSQYha2Jqqcif?=
 =?iso-8859-1?Q?EH0qdBlHWDlGsBt7aHPGEGpw2AmQ0uTMlXLG+JH7HAfgrG53SVUXzTw7vk?=
 =?iso-8859-1?Q?0ZTRB6CJ+be317fZFvgEBz/dJmtfgN4LtYP/aBinwwXib+AGsLlod0XVGZ?=
 =?iso-8859-1?Q?qGDq5rpq/tKnwednD/Hmc8LxRuyoYDRJD5uNNnkf8dD0IRKhPLGWctNgYS?=
 =?iso-8859-1?Q?bYcF7FDr3ThSF76SB24R9b/YkaaSF7JpU8U/GkebHal0uAnSQ2ogMXN2lt?=
 =?iso-8859-1?Q?rX9nSeix3tBvusb2qN3n8kLc9mbnOJllPCyPkWn87BJ/dxrvv+22stBQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e9759de7-86f5-4474-9989-08dbf2d5ce14
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:06.2020
 (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: yk+rGzhWAGivMeF6OYzcCrZ+u8ebLTEu2HIM/mvTsStgFPOKrL2vvuJEHH1bJtlgxlWjcv4uzZmsWX9euIg44NXC+egOBi0eOiqr6l7x1fA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: WTwQsomRv3Z7QJzM_Y3WrHyo2UHSYsYP
X-Proofpoint-ORIG-GUID: WTwQsomRv3Z7QJzM_Y3WrHyo2UHSYsYP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Assign SBDF to the PCI devices being passed through with bus 0.
The resulting topology is where PCIe devices reside on the bus 0 of the
root complex itself (embedded endpoints).
This implementation is limited to 32 devices which are allowed on
a single PCI bus.

Please note, that at the moment only function 0 of a multifunction
device can be passed through.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
In v11:
- Fixed code formatting
- Removed bogus write_unlock() call
- Fixed type for new_dev_number
In v10:
- Removed ASSERT(pcidevs_locked())
- Removed redundant code (local sbdf variable, clearing sbdf during
device removal, etc)
- Added __maybe_unused attribute to "out:" label
- Introduced HAS_VPCI_GUEST_SUPPORT Kconfig option, as this is the
  first patch where it is used (previously was in "vpci: add hooks for
  PCI device assign/de-assign")
In v9:
- Lock in add_virtual_device() replaced with ASSERT (thanks, Stewart)
In v8:
- Added write lock in add_virtual_device
Since v6:
- re-work wrt new locking scheme
- OT: add ASSERT(pcidevs_write_locked()); to add_virtual_device()
Since v5:
- s/vpci_add_virtual_device/add_virtual_device and make it static
- call add_virtual_device from vpci_assign_device and do not use
  REGISTER_VPCI_INIT machinery
- add pcidevs_locked ASSERT
- use DECLARE_BITMAP for vpci_dev_assigned_map
Since v4:
- moved and re-worked guest sbdf initializers
- s/set_bit/__set_bit
- s/clear_bit/__clear_bit
- minor comment fix s/Virtual/Guest/
- added VPCI_MAX_VIRT_DEV constant (PCI_SLOT(~0) + 1) which will be used
  later for counting the number of MMIO handlers required for a guest
  (Julien)
Since v3:
 - make use of VPCI_INIT
 - moved all new code to vpci.c which belongs to it
 - changed open-coded 31 to PCI_SLOT(~0)
 - added comments and code to reject multifunction devices with
   functions other than 0
 - updated comment about vpci_dev_next and made it unsigned int
 - implement roll back in case of error while assigning/deassigning devices
 - s/dom%pd/%pd
Since v2:
 - remove casts that are (a) malformed and (b) unnecessary
 - add new line for better readability
 - remove CONFIG_HAS_VPCI_GUEST_SUPPORT ifdef's as the relevant vPCI
    functions are now completely gated with this config
 - gate common code with CONFIG_HAS_VPCI_GUEST_SUPPORT
New in v2
---
 xen/drivers/Kconfig     |  4 +++
 xen/drivers/vpci/vpci.c | 57 +++++++++++++++++++++++++++++++++++++++++
 xen/include/xen/sched.h |  8 ++++++
 xen/include/xen/vpci.h  | 11 ++++++++
 4 files changed, 80 insertions(+)

diff --git a/xen/drivers/Kconfig b/xen/drivers/Kconfig
index db94393f47..780490cf8e 100644
--- a/xen/drivers/Kconfig
+++ b/xen/drivers/Kconfig
@@ -15,4 +15,8 @@ source "drivers/video/Kconfig"
 config HAS_VPCI
 	bool
=20
+config HAS_VPCI_GUEST_SUPPORT
+	bool
+	depends on HAS_VPCI
+
 endmenu
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 8865c1580e..c92f2d7bc3 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -36,6 +36,49 @@ extern vpci_register_init_t *const __start_vpci_array[];
 extern vpci_register_init_t *const __end_vpci_array[];
 #define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
=20
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+static int add_virtual_device(struct pci_dev *pdev)
+{
+    struct domain *d =3D pdev->domain;
+    unsigned int new_dev_number;
+
+    if ( is_hardware_domain(d) )
+        return 0;
+
+    ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
+
+    /*
+     * Each PCI bus supports 32 devices/slots at max or up to 256 when
+     * there are multi-function ones which are not yet supported.
+     */
+    if ( pdev->info.is_extfn && !pdev->info.is_virtfn )
+    {
+        gdprintk(XENLOG_ERR, "%pp: only function 0 passthrough supported\n=
",
+                 &pdev->sbdf);
+        return -EOPNOTSUPP;
+    }
+    new_dev_number =3D find_first_zero_bit(d->vpci_dev_assigned_map,
+                                         VPCI_MAX_VIRT_DEV);
+    if ( new_dev_number =3D=3D VPCI_MAX_VIRT_DEV )
+        return -ENOSPC;
+
+    __set_bit(new_dev_number, &d->vpci_dev_assigned_map);
+
+    /*
+     * Both segment and bus number are 0:
+     *  - we emulate a single host bridge for the guest, e.g. segment 0
+     *  - with bus 0 the virtual devices are seen as embedded
+     *    endpoints behind the root complex
+     *
+     * TODO: add support for multi-function devices.
+     */
+    pdev->vpci->guest_sbdf =3D PCI_SBDF(0, 0, new_dev_number, 0);
+
+    return 0;
+}
+
+#endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
+
 void vpci_deassign_device(struct pci_dev *pdev)
 {
     unsigned int i;
@@ -45,6 +88,12 @@ void vpci_deassign_device(struct pci_dev *pdev)
     if ( !has_vpci(pdev->domain) || !pdev->vpci )
         return;
=20
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    if ( pdev->vpci->guest_sbdf.sbdf !=3D ~0 )
+        __clear_bit(pdev->vpci->guest_sbdf.dev,
+                    &pdev->domain->vpci_dev_assigned_map);
+#endif
+
     spin_lock(&pdev->vpci->lock);
     while ( !list_empty(&pdev->vpci->handlers) )
     {
@@ -101,6 +150,13 @@ int vpci_assign_device(struct pci_dev *pdev)
     INIT_LIST_HEAD(&pdev->vpci->handlers);
     spin_lock_init(&pdev->vpci->lock);
=20
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    pdev->vpci->guest_sbdf.sbdf =3D ~0;
+    rc =3D add_virtual_device(pdev);
+    if ( rc )
+        goto out;
+#endif
+
     for ( i =3D 0; i < NUM_VPCI_INIT; i++ )
     {
         rc =3D __start_vpci_array[i](pdev);
@@ -108,6 +164,7 @@ int vpci_assign_device(struct pci_dev *pdev)
             break;
     }
=20
+ out: __maybe_unused;
     if ( rc )
         vpci_deassign_device(pdev);
=20
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 57391e74b6..84e608f670 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -462,6 +462,14 @@ struct domain
 #ifdef CONFIG_HAS_PCI
     struct list_head pdev_list;
     rwlock_t pci_lock;
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /*
+     * The bitmap which shows which device numbers are already used by the
+     * virtual PCI bus topology and is used to assign a unique SBDF to the
+     * next passed through virtual PCI device.
+     */
+    DECLARE_BITMAP(vpci_dev_assigned_map, VPCI_MAX_VIRT_DEV);
+#endif
 #endif
=20
 #ifdef CONFIG_HAS_PASSTHROUGH
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index a50dad6968..6a06267ef2 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -21,6 +21,13 @@ typedef int vpci_register_init_t(struct pci_dev *dev);
=20
 #define VPCI_ECAM_BDF(addr)     (((addr) & 0x0ffff000) >> 12)
=20
+/*
+ * Maximum number of devices supported by the virtual bus topology:
+ * each PCI bus supports 32 devices/slots at max or up to 256 when
+ * there are multi-function ones which are not yet supported.
+ */
+#define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
+
 #define REGISTER_VPCI_INIT(x, p)                \
   static vpci_register_init_t *const x##_entry  \
                __used_section(".data.vpci." p) =3D x
@@ -155,6 +162,10 @@ struct vpci {
             struct vpci_arch_msix_entry arch;
         } entries[];
     } *msix;
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    /* Guest SBDF of the device. */
+    pci_sbdf_t guest_sbdf;
+#endif
 #endif
 };
=20
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645831.1008251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emu-0002Pg-O9; Sat, 02 Dec 2023 01:27:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645831.1008251; Sat, 02 Dec 2023 01: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 1r9Emu-0002NY-FM; Sat, 02 Dec 2023 01:27:20 +0000
Received: by outflank-mailman (input) for mailman id 645831;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Ems-000271-Uk
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:18 +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 ec023917-90b1-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 02:27:15 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGux008549; Sat, 2 Dec 2023 01:27:12 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-5
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:11 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:06 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec023917-90b1-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mM8yHmad3IcII5Zqb2UQEHPu7SwkbZGTuQSS6nbF2dK0DMeoL2k4eZyKCBzD0auCTQguH9frS6HmZ6hJ+E8xr5Vfg2/fdRdISec5U+kgs9PxST0XX5q68aZSZx6bL9QscgkPf0sc0Zkb9K9xVlJrvCxjzEYGyB1eATQPxKoQaWD8NtGe2U7YN121SK13u4Jk5C03wQkFnHNPUZ6W4pNdkuxkrVpKLu3sPo36C6vfDMjFZalb9CCL+lMPfWw50dTWaPcOdIBS8/TL6BiuXmpUm5ffHsDbsq8WW3rk/Yj6i/9dM2OlMY+yuvXWw2ijPwccZ02fQ/0aICxWzNgBHgzsIg==
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=+ufRyLrmUQweuEkuIRkuhaAtvncGzXThnIHC9E3OfTc=;
 b=JriZjHaqC94pObkSE5KRdpBUtSpFtvGQkDTBybBwrsx1MzrOdpvD6MqsjHsGgPYooQLX1kYmHaU3ar4TjzxeAchdIFbsDbj8NU7bXr02NbdaFrthBZUWOFGWQjIp3DLpI8I4nybpI4gVxs0nM5yph/nphZZmspKKrnd43E7Y06rREshif5KkdBa1qv/oUs/BLH1RoPVA5sIWtMwNxeMg0gG+JQtslwhK/Es83WMG7S1WxHIAEs80TJodnh8msfIp40ygVO6NcuKW3vMqzZDuvrOPsO8O/aQYU+1+rRLqRGG86ZkKrvSgqRmb0t4mlkPJwEjNne+CGVuVU9Wu7wT0vg==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+ufRyLrmUQweuEkuIRkuhaAtvncGzXThnIHC9E3OfTc=;
 b=H0Gtq134SqUatHUkpFlx1/snqF5tK46UDPsq5CHvEqMkiMQFGAvtdcYhoBv+8uusXWv8lxWyDs8hzaEN4d6Guu4E1tycR3QOuxCOis5lo46U9qYl9xiW+sUPcr3eqsDKW/+Xwz0P3PW9MByfBsmVsKqd7D7uzKG61GPNoWarxQqMufsTyWuKtl6tAsqgAbsF2wzDREcbhudenY+A//jL3GkVBN+71Rk86lHQlqHTg76RwBcNBDs6jQzw+DYQ7pdO/tmKNANu1aKMupCu/S0Ku4rWXC3JaysZOglCgiU7YZ3CV5S32wWPnvV0K1eq/SijxriCPOECZ+FJ6rYXxXIQkQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        Jan Beulich <jbeulich@suse.com>, Paul
 Durrant <paul@xen.org>,
        =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 05/17] vpci: add hooks for PCI device assign/de-assign
Thread-Topic: [PATCH v11 05/17] vpci: add hooks for PCI device
 assign/de-assign
Thread-Index: AQHaJL6ni6LuV+9huE67e0lasEO6Tw==
Date: Sat, 2 Dec 2023 01:27:03 +0000
Message-ID: <20231202012556.2012281-6-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 4ac59772-3fe1-43cf-2a7f-08dbf2d5cbf5
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;
x-microsoft-antispam-message-info: 
 T1NXKGGBLZ1YwzegKp3eCX/AU7B4El6e4EuVC5d0aVazkim0vi1AJqqzryZ7lT5glNUOBY9yCfLlL4ZeO8iISXlsT4CLbxw3lWM3dBXuNQ631bFW4zdOdsDE0k78URgpi7Ht0Io/g9nx9d0gRh8xWkf/Gb4uogR2tFP1L1shtQsHbNMx9d9HHA6FbFdJHV4BDk2NeAPFQSoaGakHInJj3k99ipvPBWR6C5CNN8XSEge0iJzl6ltuvrkiezbj/acUTt0JCM2yaAmnIiRVCT7nR+wJffKaTw7v0Jl0XwiV9cRf+zlGK95KyR2s/Jrk8hVR55CHoO65AQXcS6qAMe5/uW7H3QdZWdlwQth9BLkUC27Ve3ApnaeBdDFs6Dz0wYxsCtzJkV8x6m0rGycOKEaUuS6UzqdaxZocjlPp/4In5qX2lh2v3r46+TxTx6A9jM/gGjja43TUgmoL25SCuSdWlxLaXHrDLyq7J3ncvH/TWPfzJkarWVU47tlbROfN3AoEcLUgHNPsQ1VCu9S+0ZDAm4RM2UzcM3gkqwMNxXHoORsseLt7n6NFAxUql23muNbLT+X1nizrMguyJUKfFFg2PzYmv+2SnY4nyMQTA72SKBnhpex4i3xIXw04iyXDVqdyZufW56Rh3dThET7I48JwQ3SAOZTSpwaRTIDoJObTPPQ=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(230273577357003)(230173577357003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?ukb3y7IMqtxe1PfIdSc2J0Wus/HZyRol4omHP+bsNBUOzAXbVQn0c6KuJL?=
 =?iso-8859-1?Q?td5vtGVrGHb6QWqMRYYTvEw7XAOZJTP5AN2Tys0KE82iOdk1ko3QLuZO99?=
 =?iso-8859-1?Q?hSdeFqgtNnk6BpUCvLpCD7Dn5xkktf2MJAjQo148V/md0pxcfj4yyAxudp?=
 =?iso-8859-1?Q?Zu6bKoEOC4fsgLKIhA3Ome9NmbHnRVyvs7tVl/rlMUkD2NEn5OV24daP9n?=
 =?iso-8859-1?Q?Ih3OiXFZOZ6r7CIZNjX4KSH7BDJR5B83oX6kMUZHZaDc4VvfxsbBYYprpl?=
 =?iso-8859-1?Q?udqxaVZD2l8DXaJ8HQGQsB9dJwgr706/SfuQf9A0wwdzBDFQmdFLmbA/GZ?=
 =?iso-8859-1?Q?KWRhcT/Z8C1S88+gzItMoJ64QIgWAOWA9uUKwv6KfgpUfMrvZcg/iPl8+K?=
 =?iso-8859-1?Q?NAM7IvFPVrP3oPUQs2hzxyF+k3m8Rxnm518h7CbddZqN06NkiCOAy5Y/y1?=
 =?iso-8859-1?Q?498iD2rku07ZgcVhYAwtAVGWqEeBPWm46bD28TWZ5NbMYx9lba3bf3wYlR?=
 =?iso-8859-1?Q?BfdpGdbYa3FLSn9o1dl4OpQ7d5nyvNphXl3iTyhX5bb+sgc/C1anF7VwCu?=
 =?iso-8859-1?Q?Y5d0zSEbjdkCsPovk6iQRroCd48d5QtO7ooQT7V2Zqkzpqf+HO2wf5QbXy?=
 =?iso-8859-1?Q?w1SdF22dhuXh40B0OGIkxcYVGP1+5FkmK7SIKR+vgyHkpYZ5NEtaFi0j5P?=
 =?iso-8859-1?Q?pLhkZ7VrF1Wn2we9y8syEvw6uTB9EEWWnef3ZB6lrqYrUW3Q0ijVqA0U5Q?=
 =?iso-8859-1?Q?iSjPcfcwbwOoZwRBFGpJFztxiYNc2k5SYuTkHN0W+mRzSfVvUHOC7iJsRz?=
 =?iso-8859-1?Q?sr2/Vseqz6Aeo/skIYJJgPcGpIZdIKS9bYhblJnHiEVTdS9K4OIPfGPSbc?=
 =?iso-8859-1?Q?iNmTMIrIhTHHzcsEZW4ZfUp70V9kSCHxBqIseiVUQJrXvd1jH/M2dtKoO+?=
 =?iso-8859-1?Q?m/kf0GO6K+7Cv7R2FZGoAWG5iah+C47/uwKQMrOQHehLOnE7PlQYxW9tq+?=
 =?iso-8859-1?Q?ceoonTFzbsgm7oTf5QKpmfZJq13veMzRLfI6zyN8iKR/bdtGjweDHaXcPM?=
 =?iso-8859-1?Q?nP28MYeutTxmu+qCsKnC/ETMsTWQTtnxmaB+gv8YM34dhG7vbzQaSaH+zg?=
 =?iso-8859-1?Q?Y1UkRFKKa9hYr0n5ZDINIYLsOAEXR3Gl5eexMD6egSnIRoZhNp8pLNUuhl?=
 =?iso-8859-1?Q?tTuSCVeDUQQJsObprfM9DCFmPGs7jrhCXfN5nJV0Z+kgOemlH13aLCMMlg?=
 =?iso-8859-1?Q?mR8HLlmFxvDOnugieD54y9RMBesrecu5gFKE/74zp8aHyhQtcSQLZPu5LK?=
 =?iso-8859-1?Q?47ocPI13H2rXMwxDmVN2hJXDWnv4vIghbPWffdTmjsdaAbLA8D7inhPabD?=
 =?iso-8859-1?Q?pwZTPZAz/C7g/pT01IZjJxKF97/Gn1dTmwJa/z2rxTj7YV0ulc5m+OHnCR?=
 =?iso-8859-1?Q?beG3zOGoYNbR0aD4g2Aeas2AbIf0CvP577TBm1Z8diULAgq60PZ0QMR3T2?=
 =?iso-8859-1?Q?4Fha2olcM+IEKNebMBfVfh8VXJRR888VXQD7H30aLW0NIX7ySlKVPf54NA?=
 =?iso-8859-1?Q?ajcDQaekiqqViyWCOqPoEIl9VRnP1n4IcU6rG2zICrffciSdYBPEFxf34A?=
 =?iso-8859-1?Q?mvt3ppBphBrhahKJehgW6HWB33JV3Rho0dqM24jxe3Ti1GWSXEpNl9pg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ac59772-3fe1-43cf-2a7f-08dbf2d5cbf5
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:03.8312
 (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: apciIFBOVQw2VZTUe+CQTqJ59dVXwGcHVhf1gl8IkNeTxC4PA+dnxBidAuoS5UBSkZwfMKnmtcVerRJdbzoZjLlmJYteEO7sTTY8zha1v00=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: w0xi6zycblUHWwVUxpM0FEYZ4N3Kodon
X-Proofpoint-ORIG-GUID: w0xi6zycblUHWwVUxpM0FEYZ4N3Kodon
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=753 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

When a PCI device gets assigned/de-assigned we need to
initialize/de-initialize vPCI state for the device.

Also, rename vpci_add_handlers() to vpci_assign_device() and
vpci_remove_device() to vpci_deassign_device() to better reflect role
of the functions.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
In v11:
- Call vpci_assign_device() in "deassign_device" if IOMMU call
"reassign_device" was successful.
In v10:
- removed HAS_VPCI_GUEST_SUPPORT checks
- HAS_VPCI_GUEST_SUPPORT config option (in Kconfig) as it is not used
  anywhere
In v9:
- removed previous  vpci_[de]assign_device function and renamed
  existing handlers
- dropped attempts to handle errors in assign_device() function
- do not call vpci_assign_device for dom_io
- use d instead of pdev->domain
- use IS_ENABLED macro
In v8:
- removed vpci_deassign_device
In v6:
- do not pass struct domain to vpci_{assign|deassign}_device as
  pdev->domain can be used
- do not leave the device assigned (pdev->domain =3D=3D new domain) in case
  vpci_assign_device fails: try to de-assign and if this also fails, then
  crash the domain
In v5:
- do not split code into run_vpci_init
- do not check for is_system_domain in vpci_{de}assign_device
- do not use vpci_remove_device_handlers_locked and re-allocate
  pdev->vpci completely
- make vpci_deassign_device void
In v4:
 - de-assign vPCI from the previous domain on device assignment
 - do not remove handlers in vpci_assign_device as those must not
   exist at that point
In v3:
 - remove toolstack roll-back description from the commit message
   as error are to be handled with proper cleanup in Xen itself
 - remove __must_check
 - remove redundant rc check while assigning devices
 - fix redundant CONFIG_HAS_VPCI check for CONFIG_HAS_VPCI_GUEST_SUPPORT
 - use REGISTER_VPCI_INIT machinery to run required steps on device
   init/assign: add run_vpci_init helper
In v2:
- define CONFIG_HAS_VPCI_GUEST_SUPPORT so dead code is not compiled
  for x86
In v1:
 - constify struct pci_dev where possible
 - do not open code is_system_domain()
 - extended the commit message
---
 xen/drivers/passthrough/pci.c | 24 ++++++++++++++++++++----
 xen/drivers/vpci/header.c     |  2 +-
 xen/drivers/vpci/vpci.c       |  6 +++---
 xen/include/xen/vpci.h        | 10 +++++-----
 4 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 182da45acb..a3312fdab2 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -755,7 +755,7 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
          * For devices not discovered by Xen during boot, add vPCI handler=
s
          * when Dom0 first informs Xen about such devices.
          */
-        ret =3D vpci_add_handlers(pdev);
+        ret =3D vpci_assign_device(pdev);
         if ( ret )
         {
             list_del(&pdev->domain_list);
@@ -769,7 +769,7 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         if ( ret )
         {
             write_lock(&hardware_domain->pci_lock);
-            vpci_remove_device(pdev);
+            vpci_deassign_device(pdev);
             list_del(&pdev->domain_list);
             write_unlock(&hardware_domain->pci_lock);
             pdev->domain =3D NULL;
@@ -817,7 +817,7 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
     list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
         if ( pdev->bus =3D=3D bus && pdev->devfn =3D=3D devfn )
         {
-            vpci_remove_device(pdev);
+            vpci_deassign_device(pdev);
             pci_cleanup_msi(pdev);
             ret =3D iommu_remove_device(pdev);
             if ( pdev->domain )
@@ -875,6 +875,10 @@ static int deassign_device(struct domain *d, uint16_t =
seg, uint8_t bus,
             goto out;
     }
=20
+    write_lock(&d->pci_lock);
+    vpci_deassign_device(pdev);
+    write_unlock(&d->pci_lock);
+
     devfn =3D pdev->devfn;
     ret =3D iommu_call(hd->platform_ops, reassign_device, d, target, devfn=
,
                      pci_to_dev(pdev));
@@ -886,6 +890,10 @@ static int deassign_device(struct domain *d, uint16_t =
seg, uint8_t bus,
=20
     pdev->fault.count =3D 0;
=20
+    write_lock(&target->pci_lock);
+    ret =3D vpci_assign_device(pdev);
+    write_unlock(&target->pci_lock);
+
  out:
     if ( ret )
         printk(XENLOG_G_ERR "%pd: deassign (%pp) failed (%d)\n",
@@ -1146,7 +1154,7 @@ static void __hwdom_init setup_one_hwdom_device(const=
 struct setup_hwdom *ctxt,
               PCI_SLOT(devfn) =3D=3D PCI_SLOT(pdev->devfn) );
=20
     write_lock(&ctxt->d->pci_lock);
-    err =3D vpci_add_handlers(pdev);
+    err =3D vpci_assign_device(pdev);
     write_unlock(&ctxt->d->pci_lock);
     if ( err )
         printk(XENLOG_ERR "setup of vPCI for d%d failed: %d\n",
@@ -1476,6 +1484,10 @@ static int assign_device(struct domain *d, u16 seg, =
u8 bus, u8 devfn, u32 flag)
     if ( pdev->broken && d !=3D hardware_domain && d !=3D dom_io )
         goto done;
=20
+    write_lock(&pdev->domain->pci_lock);
+    vpci_deassign_device(pdev);
+    write_unlock(&pdev->domain->pci_lock);
+
     rc =3D pdev_msix_assign(d, pdev);
     if ( rc )
         goto done;
@@ -1502,6 +1514,10 @@ static int assign_device(struct domain *d, u16 seg, =
u8 bus, u8 devfn, u32 flag)
                         pci_to_dev(pdev), flag);
     }
=20
+    write_lock(&d->pci_lock);
+    rc =3D vpci_assign_device(pdev);
+    write_unlock(&d->pci_lock);
+
  done:
     if ( rc )
         printk(XENLOG_G_WARNING "%pd: assign (%pp) failed (%d)\n",
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index c86d33d0cd..ec6c93eef6 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -190,7 +190,7 @@ bool vpci_process_pending(struct vcpu *v)
              * killed in order to avoid leaking stale p2m mappings on
              * failure.
              */
-            vpci_remove_device(v->vpci.pdev);
+            vpci_deassign_device(v->vpci.pdev);
         write_unlock(&v->domain->pci_lock);
     }
=20
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 4fec4b26d9..9dacbcf958 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -36,7 +36,7 @@ extern vpci_register_init_t *const __start_vpci_array[];
 extern vpci_register_init_t *const __end_vpci_array[];
 #define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
=20
-void vpci_remove_device(struct pci_dev *pdev)
+void vpci_deassign_device(struct pci_dev *pdev)
 {
     ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
=20
@@ -69,7 +69,7 @@ void vpci_remove_device(struct pci_dev *pdev)
     pdev->vpci =3D NULL;
 }
=20
-int vpci_add_handlers(struct pci_dev *pdev)
+int vpci_assign_device(struct pci_dev *pdev)
 {
     unsigned int i;
     const unsigned long *ro_map;
@@ -103,7 +103,7 @@ int vpci_add_handlers(struct pci_dev *pdev)
     }
=20
     if ( rc )
-        vpci_remove_device(pdev);
+        vpci_deassign_device(pdev);
=20
     return rc;
 }
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index d743d96a10..75cfb532ee 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -25,11 +25,11 @@ typedef int vpci_register_init_t(struct pci_dev *dev);
   static vpci_register_init_t *const x##_entry  \
                __used_section(".data.vpci." p) =3D x
=20
-/* Add vPCI handlers to device. */
-int __must_check vpci_add_handlers(struct pci_dev *pdev);
+/* Assign vPCI to device by adding handlers to device. */
+int __must_check vpci_assign_device(struct pci_dev *pdev);
=20
 /* Remove all handlers and free vpci related structures. */
-void vpci_remove_device(struct pci_dev *pdev);
+void vpci_deassign_device(struct pci_dev *pdev);
=20
 /* Add/remove a register handler. */
 int __must_check vpci_add_register(struct vpci *vpci,
@@ -235,12 +235,12 @@ bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg=
, unsigned int len,
 #else /* !CONFIG_HAS_VPCI */
 struct vpci_vcpu {};
=20
-static inline int vpci_add_handlers(struct pci_dev *pdev)
+static inline int vpci_assign_device(struct pci_dev *pdev)
 {
     return 0;
 }
=20
-static inline void vpci_remove_device(struct pci_dev *pdev) { }
+static inline void vpci_deassign_device(struct pci_dev *pdev) { }
=20
 static inline void vpci_dump_msi(void) { }
=20
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645832.1008257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emv-0002ZH-1u; Sat, 02 Dec 2023 01:27:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645832.1008257; Sat, 02 Dec 2023 01: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 1r9Emu-0002Wk-TN; Sat, 02 Dec 2023 01:27:20 +0000
Received: by outflank-mailman (input) for mailman id 645832;
 Sat, 02 Dec 2023 01:27:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Ems-000272-T2
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:19 +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 edc4a75c-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:17 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGv2008549; Sat, 2 Dec 2023 01:27:14 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-8
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:14 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:09 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01: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: edc4a75c-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MJ8P1LR0sHZ0c63MAEMiae1onWOKXr68uT2ZXgD/7RSnk/3zwyF/DD/aBZH1CsGHEBJzdPPVwH9hdONRJ73lp/vgYO1GoZ0wylmwMq1axear86DTDrjaMBZ1CQv70imOC8OcXq4j6CAWzzUt1lc+n/XEW3HMpMHAUAqUNE7hNHoqW8K4YKp1PPiGtocp4a8PUiwSAEFXq7aG4aTZmHOAxnWurqcRu3JRK3U/q07MefbhMPIS/Hz7oX9VBDSMi4OatzdZDalI2NPLZqwkozOJZpfU64hDff5PKpLbQh0XR8aVt48DOtcnDPxIJycNQEL/1eDX1/C3h8RLxlgi8Ga2bQ==
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=6JZJ4KNkIkIzlijRLVq+YijCSEjROoN8dREC9RVL4YU=;
 b=eU5RxjpI8ooCAk0V2nT0qfntZrlj9CFAcWJ1Fmp49Ffp7EoDVGs1+QqCX7rJtFkResp3oMRGXQ1HSLjz/5oyNrKuvHEXDlCcEFre5KquO5Iv/XGtCPWmgovRkuRTsUr9BnSDFUs+ER6ocpMsSbt4UY++GRKvmpQjz/LlLfoH5uT01wu9IJqlDu9I8yZTTzci9muE85WZTYT9uayjC5pOuRCO29wG2CWJK6//PNIHIyHgMNO97x8BoHuEqqXFGBbnvGoD/qh9pc9URcj8G3SFDbXvXA8T2o5T5wMx8VaFD5ZwJQoQIidLRlkJWn1luoUi2GZOHP5VgiWGvdb3plwWSQ==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6JZJ4KNkIkIzlijRLVq+YijCSEjROoN8dREC9RVL4YU=;
 b=Gnrv63yCISztxCQ2XP19Dnfrz17fRPZWzYohEHGTfL/bbgEG0loSmBHO+U8/TABph3rSF9kAr5LSsZKNJ2hedCG2qzOWSwz8kZizaL+RTU5bAUWM9r+G4TStBCdgwnHfdg0e4QRzJZJ+3bfpfFGT4sDETnku1sFj4jMq2RXoFkLYTGEyUVgDM0XrSYFYGLbPqO7ZAB4gcOQs8d2iQKSi0SB7G6boZO3wki+S5rfcv8z33AWR/m1jSSCnxXsL0Etiw+yplrxJ5R6yPxJz9B01BtLoIgQkRwpFN591av7C23cB5RKZA1h63tyqskmq0vsCqI8S1OpWeQbiNpLU5TYZ+g==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>,
        "Daniel P. Smith" <dpsmith@apertussolutions.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 11/17] vpci/header: program p2m with guest BAR view
Thread-Topic: [PATCH v11 11/17] vpci/header: program p2m with guest BAR view
Thread-Index: AQHaJL6om72B3RYnP0aRq1inaCmShA==
Date: Sat, 2 Dec 2023 01:27:05 +0000
Message-ID: <20231202012556.2012281-12-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 28c3a8a2-7ce8-453b-af25-08dbf2d5cd8e
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;
x-microsoft-antispam-message-info: 
 peh66Gl38lFbeQ7++fR9s6DvKkkNl42E8JKcVxQX55SpMMRCmyQys8KdRUNqIbJMgJW+mFJ41RTGl08XcXEzOpOnsp/hUYs4kTg75K7RlT9e3sROz6yedFVIhcQ2ONou4z8hAxQ20XadoqlytwobXees7G2mKwt0+IrKMcNQhXzpBbUR7EbnlhkEBwD/R9QL4SlU5k99QRiBuyTUa/RMncDmIaQxLw4ehrR9kSE1WAXkwYmFHAIFIhwGKQR4t6AefpmC8J75UfKBqvazEzy4uTVem1up437hk1okHEy8yeV8TvgOLAkW5JMqnG7E5SQ5yM0Oh2AgkuhTYMMLoZlDX6Fv6/EjQeGukGQ7TapZy+1bRiv3ITF/YMlr6eo5gTjII72vkinqbh43NcTiR//QxjOSn12ssgrTDNjyMvAsUrY6mD/COpodsMl5skRTnl6HuXHkQ92THfuYnvs406lTQCA15SzgnRHYbwScHrjQJZbCRy5b0CYg/DXAkoY3q5evaOpCiQrkpQo4yUR8X89ktUlj0QJXEUAj2thGVSKJy1yyTjKo74182kssPXLkT5XwkkeLSAmXBtkVhgs34v8kDjLrngCWT3XvduMsupTKWbbxhtm97EjMuTXqOl7+cmXxvz4S7hOS4snm7jEbGHvXBM2Kn6SFD+4sRj1swUkw0FA=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(230273577357003)(230173577357003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(30864003)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?dF9536ehMnXKgtonKO0GR6mnGuk8C055hgxSQXsq/2mGy1biysrurt/UpW?=
 =?iso-8859-1?Q?LWSc3EQxeTM/m9Wh3cfCjsOiqyKrz7kJ576zx5pX+jeLOfITZ/jIQAJG60?=
 =?iso-8859-1?Q?7DxsjaV9HVhCBAOT5IkxNRdI6f5NFUx9h2jY4Ld+wmKuv5GP8oNZ3D+pFf?=
 =?iso-8859-1?Q?BlLudxoWPN3EMkvTcTiTt8et51gusSTJwTdedX45glc8FzG7n3ZDTAet22?=
 =?iso-8859-1?Q?FF6Mb5wFWiS7R7o8reRlcJfFzLgEfsISO9Ddfix1ujuwJifb2IOoN51otV?=
 =?iso-8859-1?Q?PKUrmyjvuiiRKOHLRZNluM6e09oYHyUVwRG43Ck1ZBPbJul/o7pf6w2XsI?=
 =?iso-8859-1?Q?P2nWHN3bpDusKTTCc2XbqWXn6abEqk7AzNwly8F2FOxy3AS/Ai0B8RWXFc?=
 =?iso-8859-1?Q?A4Y2dLMUxQCob2NJxt79MlwHWGEHyMuIoFdwB8vV2dO0+mapafyuJWM3ln?=
 =?iso-8859-1?Q?PwG1bYU3BjKIfA9ZGtuU5lg1DA6zvtbMib2EFPmrjSfkToqsmhSg3YwpdU?=
 =?iso-8859-1?Q?RD3OtXwwllR4J55epmdMQqEz9X4q2FZ1jKnvZunpaX8cwbKO4jvoD34q0W?=
 =?iso-8859-1?Q?ipU3z1kdI/mTDRZVDU4tGLfwcGu8UqiteI8zpd4KYrihdtJrPtUdyhemsh?=
 =?iso-8859-1?Q?TCKwxVZI9Taf0LZf11PFs0N3Fj5iIzZMSGCpLth02PK1BLnxPWduHH2RU9?=
 =?iso-8859-1?Q?FUKh4uCm7jrvxCl1d9cHllHXT3Hnz49QWzlBBxmq214H8RVMUQaL7X+sUg?=
 =?iso-8859-1?Q?E7tsUtO577JqsU/zQvx06jmJsXZX33EikrKmgR1WAUUZmGkdzQe58gnz2S?=
 =?iso-8859-1?Q?z6Yig8InGi3YeYvbXCpjpPkU5zK09GxAQw/PeZJVvl0pZrvXz2vWUmqEoV?=
 =?iso-8859-1?Q?zVNyvtyrsC8aY8byY7dpxdrzy7ENUQqoh81nm8FXTnK5JbxGENLwV/U9kD?=
 =?iso-8859-1?Q?PzXgf1Xxom1ds/DhzVkjRsPz4sGOFlyEo0OHx+OMEoOOG1FrfGwTuJcPtN?=
 =?iso-8859-1?Q?6GvYrG6EMbssbSx8oUbyl0W+tie6NZsuKGeSFXS9g4iEtKD0w+HTxGW0xB?=
 =?iso-8859-1?Q?A08t68C0eMPfD7qRbHf5W4npX2TzNOHqeiwnJC6gXtOsLgq56B/4TATV9a?=
 =?iso-8859-1?Q?vI4U6jsasKfCwixql6/HU0sPmKnWybysSg23lUN4N0mwL4gbIVlloGusHT?=
 =?iso-8859-1?Q?ZCvXqVmMrzl8dITjxZ3LfQCslp8xKXgUOyaid2UkP/AOkFzfw+n7An0PCk?=
 =?iso-8859-1?Q?oF+1D5MOsNywc35aXGfUeToIvoGnJiAF8BIwR50qT4Ci7hy8Kzh2+kpgNC?=
 =?iso-8859-1?Q?1ugn5QpJgtHXlMOlB/SO8Wk0eWaHtrkruNXN0OhHpME+vXj9B2OkM2j0rA?=
 =?iso-8859-1?Q?WIo0ReCgEEKwtLrjcPwzLwWsQ9i5Rv4e0UmMMPAZGlmBSJnC1Zst1Ii4+Y?=
 =?iso-8859-1?Q?pNC1T7qFTZCGtSBAwQKH3HiCwJcaDUKbDQin77X8W1DG+AYH0MhkNdoJlk?=
 =?iso-8859-1?Q?ug10evq3vv7RXWuXJb7c7NyIJ/rH4XKTkBscO6ClxYmvsiyt30BnB2gt9b?=
 =?iso-8859-1?Q?JpPx79QUnvQlW9hQ8paF+o9iNGiZ1hh8nr4R3qIsdIxc2o6/ZcyEQzzWt6?=
 =?iso-8859-1?Q?jy4GgtNVelgm7mhy/ubGLq8zADg8SNBTnNZdXFrdVmozqPvOMXeqV0Hw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 28c3a8a2-7ce8-453b-af25-08dbf2d5cd8e
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:05.6553
 (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: c45RotjQVgWwH7ivQzjwrjyQeVc+xLGpUI+d5Rc3CgKUgOwSHYeNbp9OvckWzAzoh8i4wGBRjbFKWtg1jUvuZfYLupRPQDSNxG556BMkK84=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: zCpSr2_hKR2E1wjHDHosQKpIg6EeqP3W
X-Proofpoint-ORIG-GUID: zCpSr2_hKR2E1wjHDHosQKpIg6EeqP3W
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Take into account guest's BAR view and program its p2m accordingly:
gfn is guest's view of the BAR and mfn is the physical BAR value.
This way hardware domain sees physical BAR values and guest sees
emulated ones.

Hardware domain continues getting the BARs identity mapped, while for
domUs the BARs are mapped at the requested guest address without
modifying the BAR address in the device PCI config space.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
In v11:
- Add vmsix_guest_table_addr() and vmsix_guest_table_base() functions
  to access guest's view of the VMSIx tables.
- Use MFN (not GFN) to check access permissions
- Move page offset check to this patch
- Call rangeset_remove_range() with correct parameters
In v10:
- Moved GFN variable definition outside the loop in map_range()
- Updated printk error message in map_range()
- Now BAR address is always stored in bar->guest_addr, even for
  HW dom, this removes bunch of ugly is_hwdom() checks in modify_bars()
- vmsix_table_base() now uses .guest_addr instead of .addr
In v9:
- Extended the commit message
- Use bar->guest_addr in modify_bars
- Extended printk error message in map_range
- Moved map_data initialization so .bar can be initialized during declarati=
on
Since v5:
- remove debug print in map_range callback
- remove "identity" from the debug print
Since v4:
- moved start_{gfn|mfn} calculation into map_range
- pass vpci_bar in the map_data instead of start_{gfn|mfn}
- s/guest_addr/guest_reg
Since v3:
- updated comment (Roger)
- removed gfn_add(map->start_gfn, rc); which is wrong
- use v->domain instead of v->vpci.pdev->domain
- removed odd e.g. in comment
- s/d%d/%pd in altered code
- use gdprintk for map/unmap logs
Since v2:
- improve readability for data.start_gfn and restructure ?: construct
Since v1:
 - s/MSI/MSI-X in comments
---
 xen/drivers/vpci/header.c | 79 +++++++++++++++++++++++++++++----------
 xen/include/xen/vpci.h    | 13 +++++++
 2 files changed, 73 insertions(+), 19 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 7c84cee5d1..21b3fb5579 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -33,6 +33,7 @@
=20
 struct map_data {
     struct domain *d;
+    const struct vpci_bar *bar;
     bool map;
 };
=20
@@ -40,13 +41,24 @@ static int cf_check map_range(
     unsigned long s, unsigned long e, void *data, unsigned long *c)
 {
     const struct map_data *map =3D data;
+    /* Start address of the BAR as seen by the guest. */
+    unsigned long start_gfn =3D PFN_DOWN(map->bar->guest_addr);
+    /* Physical start address of the BAR. */
+    mfn_t start_mfn =3D _mfn(PFN_DOWN(map->bar->addr));
     int rc;
=20
     for ( ; ; )
     {
         unsigned long size =3D e - s + 1;
+        /*
+         * Ranges to be mapped don't always start at the BAR start address=
, as
+         * there can be holes or partially consumed ranges. Account for th=
e
+         * offset of the current address from the BAR start.
+         */
+        mfn_t map_mfn =3D mfn_add(start_mfn, s - start_gfn);
+        unsigned long m_end =3D mfn_x(map_mfn) + size - 1;
=20
-        if ( !iomem_access_permitted(map->d, s, e) )
+        if ( !iomem_access_permitted(map->d, mfn_x(map_mfn), m_end) )
         {
             printk(XENLOG_G_WARNING
                    "%pd denied access to MMIO range [%#lx, %#lx]\n",
@@ -54,7 +66,8 @@ static int cf_check map_range(
             return -EPERM;
         }
=20
-        rc =3D xsm_iomem_mapping(XSM_HOOK, map->d, s, e, map->map);
+        rc =3D xsm_iomem_mapping(XSM_HOOK, map->d, mfn_x(map_mfn), m_end,
+                               map->map);
         if ( rc )
         {
             printk(XENLOG_G_WARNING
@@ -72,8 +85,8 @@ static int cf_check map_range(
          * - {un}map_mmio_regions doesn't support preemption.
          */
=20
-        rc =3D map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(s))
-                      : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(s))=
;
+        rc =3D map->map ? map_mmio_regions(map->d, _gfn(s), size, map_mfn)
+                      : unmap_mmio_regions(map->d, _gfn(s), size, map_mfn)=
;
         if ( rc =3D=3D 0 )
         {
             *c +=3D size;
@@ -82,8 +95,9 @@ static int cf_check map_range(
         if ( rc < 0 )
         {
             printk(XENLOG_G_WARNING
-                   "Failed to identity %smap [%lx, %lx] for d%d: %d\n",
-                   map->map ? "" : "un", s, e, map->d->domain_id, rc);
+                   "Failed to %smap [%lx %lx] -> [%lx %lx] for %pd: %d\n",
+                   map->map ? "" : "un", s, e, mfn_x(map_mfn),
+                   mfn_x(map_mfn) + size, map->d, rc);
             break;
         }
         ASSERT(rc < size);
@@ -162,10 +176,6 @@ static void modify_decoding(const struct pci_dev *pdev=
, uint16_t cmd,
 bool vpci_process_pending(struct vcpu *v)
 {
     struct pci_dev *pdev =3D v->vpci.pdev;
-    struct map_data data =3D {
-        .d =3D v->domain,
-        .map =3D v->vpci.cmd & PCI_COMMAND_MEMORY,
-    };
     struct vpci_header *header =3D NULL;
     unsigned int i;
=20
@@ -185,6 +195,11 @@ bool vpci_process_pending(struct vcpu *v)
     for ( i =3D 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar =3D &header->bars[i];
+        struct map_data data =3D {
+            .d =3D v->domain,
+            .map =3D v->vpci.cmd & PCI_COMMAND_MEMORY,
+            .bar =3D bar,
+        };
         int rc;
=20
         if ( rangeset_is_empty(bar->mem) )
@@ -235,7 +250,6 @@ bool vpci_process_pending(struct vcpu *v)
 static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
                             uint16_t cmd)
 {
-    struct map_data data =3D { .d =3D d, .map =3D true };
     struct vpci_header *header =3D &pdev->vpci->header;
     int rc =3D 0;
     unsigned int i;
@@ -245,6 +259,7 @@ static int __init apply_map(struct domain *d, const str=
uct pci_dev *pdev,
     for ( i =3D 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar =3D &header->bars[i];
+        struct map_data data =3D { .d =3D d, .map =3D true, .bar =3D bar }=
;
=20
         if ( rangeset_is_empty(bar->mem) )
             continue;
@@ -310,12 +325,16 @@ static int modify_bars(const struct pci_dev *pdev, ui=
nt16_t cmd, bool rom_only)
      * First fill the rangesets with the BAR of this device or with the RO=
M
      * BAR only, depending on whether the guest is toggling the memory dec=
ode
      * bit of the command register, or the enable bit of the ROM BAR regis=
ter.
+     *
+     * For non-hardware domain we use guest physical addresses.
      */
     for ( i =3D 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar =3D &header->bars[i];
         unsigned long start =3D PFN_DOWN(bar->addr);
         unsigned long end =3D PFN_DOWN(bar->addr + bar->size - 1);
+        unsigned long start_guest =3D PFN_DOWN(bar->guest_addr);
+        unsigned long end_guest =3D PFN_DOWN(bar->guest_addr + bar->size -=
 1);
=20
         if ( !bar->mem )
             continue;
@@ -335,11 +354,25 @@ static int modify_bars(const struct pci_dev *pdev, ui=
nt16_t cmd, bool rom_only)
             continue;
         }
=20
-        rc =3D rangeset_add_range(bar->mem, start, end);
+        /*
+         * Make sure that the guest set address has the same page offset
+         * as the physical address on the host or otherwise things won't w=
ork as
+         * expected.
+         */
+        if ( PAGE_OFFSET(bar->guest_addr) !=3D PAGE_OFFSET(bar->addr) )
+        {
+            gprintk(XENLOG_G_WARNING,
+                    "%pp: Can't map BAR%d because of page offset mismatch:=
 %lx vs %lx\n",
+                    &pdev->sbdf, i, PAGE_OFFSET(bar->guest_addr),
+                    PAGE_OFFSET(bar->addr));
+            return -EINVAL;
+        }
+
+        rc =3D rangeset_add_range(bar->mem, start_guest, end_guest);
         if ( rc )
         {
             printk(XENLOG_G_WARNING "Failed to add [%lx, %lx]: %d\n",
-                   start, end, rc);
+                   start_guest, end_guest, rc);
             return rc;
         }
=20
@@ -351,12 +384,12 @@ static int modify_bars(const struct pci_dev *pdev, ui=
nt16_t cmd, bool rom_only)
             if ( rangeset_is_empty(prev_bar->mem) )
                 continue;
=20
-            rc =3D rangeset_remove_range(prev_bar->mem, start, end);
+            rc =3D rangeset_remove_range(prev_bar->mem, start_guest, end_g=
uest);
             if ( rc )
             {
                 gprintk(XENLOG_WARNING,
                        "%pp: failed to remove overlapping range [%lx, %lx]=
: %d\n",
-                        &pdev->sbdf, start, end, rc);
+                        &pdev->sbdf, start_guest, end_guest, rc);
                 return rc;
             }
         }
@@ -365,8 +398,8 @@ static int modify_bars(const struct pci_dev *pdev, uint=
16_t cmd, bool rom_only)
     /* Remove any MSIX regions if present. */
     for ( i =3D 0; msix && i < ARRAY_SIZE(msix->tables); i++ )
     {
-        unsigned long start =3D PFN_DOWN(vmsix_table_addr(pdev->vpci, i));
-        unsigned long end =3D PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
+        unsigned long start =3D PFN_DOWN(vmsix_guest_table_addr(pdev->vpci=
, i));
+        unsigned long end =3D PFN_DOWN(vmsix_guest_table_addr(pdev->vpci, =
i) +
                                      vmsix_table_size(pdev->vpci, i) - 1);
=20
         for ( j =3D 0; j < ARRAY_SIZE(header->bars); j++ )
@@ -424,8 +457,8 @@ static int modify_bars(const struct pci_dev *pdev, uint=
16_t cmd, bool rom_only)
             for ( i =3D 0; i < ARRAY_SIZE(tmp->vpci->header.bars); i++ )
             {
                 const struct vpci_bar *remote_bar =3D &tmp->vpci->header.b=
ars[i];
-                unsigned long start =3D PFN_DOWN(remote_bar->addr);
-                unsigned long end =3D PFN_DOWN(remote_bar->addr +
+                unsigned long start =3D PFN_DOWN(remote_bar->guest_addr);
+                unsigned long end =3D PFN_DOWN(remote_bar->guest_addr +
                                              remote_bar->size - 1);
=20
                 if ( !remote_bar->enabled )
@@ -512,6 +545,8 @@ static void cf_check bar_write(
     struct vpci_bar *bar =3D data;
     bool hi =3D false;
=20
+    ASSERT(is_hardware_domain(pdev->domain));
+
     if ( bar->type =3D=3D VPCI_BAR_MEM64_HI )
     {
         ASSERT(reg > PCI_BASE_ADDRESS_0);
@@ -542,6 +577,10 @@ static void cf_check bar_write(
      */
     bar->addr &=3D ~(0xffffffffULL << (hi ? 32 : 0));
     bar->addr |=3D (uint64_t)val << (hi ? 32 : 0);
+    /*
+     * Update guest address as well, so hardware domain sees BAR identity =
mapped
+     */
+    bar->guest_addr =3D bar->addr;
=20
     /* Make sure Xen writes back the same value for the BAR RO bits. */
     if ( !hi )
@@ -793,6 +832,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
         }
=20
         bars[i].addr =3D addr;
+        bars[i].guest_addr =3D addr;
         bars[i].size =3D size;
         bars[i].prefetchable =3D val & PCI_BASE_ADDRESS_MEM_PREFETCH;
=20
@@ -814,6 +854,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
             rom->type =3D VPCI_BAR_ROM;
             rom->size =3D size;
             rom->addr =3D addr;
+            rom->guest_addr =3D addr;
             header->rom_enabled =3D pci_conf_read32(pdev->sbdf, rom_reg) &
                                   PCI_ROM_ADDRESS_ENABLE;
=20
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 18a0eca3da..c39fab4832 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -205,6 +205,19 @@ static inline paddr_t vmsix_table_addr(const struct vp=
ci *vpci, unsigned int nr)
            (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
 }
=20
+static inline paddr_t vmsix_guest_table_base(const struct vpci *vpci,
+                                             unsigned int nr)
+{
+    return (vpci->header.bars[vpci->msix->tables[nr] &
+           PCI_MSIX_BIRMASK].guest_addr & PCI_BASE_ADDRESS_MEM_MASK);
+}
+
+static inline paddr_t vmsix_guest_table_addr(const struct vpci *vpci,
+                                             unsigned int nr)
+{
+    return vmsix_guest_table_base(vpci, nr) +
+           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
+}
 /*
  * Note regarding the size calculation of the PBA: the spec mentions "The =
last
  * QWORD will not necessarily be fully populated", so it implies that the =
PBA
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645837.1008316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En0-0004CX-5T; Sat, 02 Dec 2023 01:27:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645837.1008316; Sat, 02 Dec 2023 01:27:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Emz-0004Az-Sx; Sat, 02 Dec 2023 01:27:25 +0000
Received: by outflank-mailman (input) for mailman id 645837;
 Sat, 02 Dec 2023 01:27:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Emy-000272-JS
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:24 +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 f1555a11-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:23 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGv1008549; Sat, 2 Dec 2023 01:27:13 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-7
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:13 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:08 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27: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: f1555a11-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UznBWdFVrRl3jnC+ikULpAj8Vkr8LmSDh/3KmsehG7mQRgp4iv36SqjfMMQfadtw3m1sdsZk03o84JHjJKRIgVgZN7NCnIDSzsoNTtcvG9AAYz+6NzXnMxEG8oJw2ggYxKy//NA5wpDunPXwFt6vFEK6tUw8D/TJ/vAEUJrZ1GbgYOh+r6G4Fx5j/1Ylq8FwxQ9pLV6jH04vQl8Rl7SMlVkll20rVRhU3+pZGHEBKbJyMVAIFAds/d6/pbHy2u5i25qn5H4YVfAWCaENWeh6MHJt8oanlkcvSY9uLxCqGTnYp2zxY4GKa0wYdswEGzXwG7yyNq7YC0eaTrvsjih8hg==
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=IwB9N34h98HO0xQgLgRJxTUI/bKMCMF1l0/De+vjKko=;
 b=DF4Ln2xBkwLagblpkJzmUoDoLr/QftQXNYhmbIwY0E4zNk6hwZgv6KP+CLmMTVWygbKPdNPj6cP5vOvKJvdGgpc4Rza1FAqn16zPCZNH+MP6xY9QduKIFVe4lVGidPXtqwuzM3eXMj/2bhTeQ27XbVM2oIS3HNVChx07Hn9YQ9YpI5ZEDtHA/rrGEaFmvCf2/8YoLSHWYNFZRGjwh1XcdKocUiwnU5z9dKsvfCNbCHFxdIqPhztI/vY/gna6HKbIcCRxfqeszSCkhQEyWBO3s2XwmcbOue6ZmFH6zO4e07i/GvEFB413QYJv+xmNrv6b9bZ7+oo7n/8QlGQUfpkNQg==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IwB9N34h98HO0xQgLgRJxTUI/bKMCMF1l0/De+vjKko=;
 b=J98vTK6i3gAk9MzMQDm/TvOTrl5PG5bAqPAbeVzwGQzBdsKbeJ74kOXH1dxtUtaFAlJrAAIgIinbq4XB+ww1CvH05ogiSDa3F3vprysYuOMsaoMRmDQ7f2mfetfsfdQIiHDPHJgG2BKjpo0rbh7li+pXc2dfy983BVtcUqLMTJTpOsiTQqrIoAtc/FIVlv2mBEEpBbeCgGc0JYHP811E1FNgkNik5knHC2tuFJWC+msLMLU6kopvo17XJizrxRNEztlqqmIFG0R+ctrZiMB8fEy0+v09Acg6jyhX3InzQwPtZqoEb7VK4+V1wIAfyY7F7Vx6Sd3HYjPMDuYhp1jOZQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.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>, Wei Liu <wl@xen.org>
Subject: [PATCH v11 09/17] rangeset: add rangeset_empty() function
Thread-Topic: [PATCH v11 09/17] rangeset: add rangeset_empty() function
Thread-Index: AQHaJL6oz4wJTetDeUydVFKkkhEQHg==
Date: Sat, 2 Dec 2023 01:27:04 +0000
Message-ID: <20231202012556.2012281-10-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: aadcf4ec-9550-43e7-ab63-08dbf2d5cceb
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;
x-microsoft-antispam-message-info: 
 nhlQ1WsmfK9OsXn13NI4hVSXNbVK25Vm2Tpy1/MRS4IsGSMe4BE8pVywbvj0zFWOMpjE7unxHsAj7xn6gWQn47+UREjxdWPnsIZwqVUfiv5TxT1uDhVlV3uaNzHbEvJFz1NCNxVUmlAJ/jJpXYP9XVBenoh7HsyKPJGm3pxSH2UhK4nfynDq45E5ja7VbIfu4z6P+YM0z0bLoJI8hzN16bRt816i3GnyTo66NjT6ADWLIero9pZBbzb5q/RlsW0LybaAO8Nk9qE60nAdDw4dVOhxx70CmYCC0AU5fyXVo8jojrOzVqIy85jFo9vBD/Z4xn4ZmfRhyzQVSimsDiaP6EYi+F/Xz4DPBEt1bK7TFYmnnLrY2GN4oJ/PYxMzZYlmNYBvE6VNLKtUhPhFxYPG5R2Vys9+V1/NKHdTh4g/vKREfXwRTbvNwSEMVbK0I46knYE5kwIt/9PrkZr0VkY9u7v0I8ufAhPBjUDw+NTDJAzQS7MCrJQ85S2OjQRyzPhjteVWYap+cECqu8fpC96bf5ExWVpnaoV7z2T+Z61Ni1p3wSqmlmPWi0uu8vc/9iZaeBFsVysx3FSWZrHHt2Xm0fMrSOSZPaDL5D2zh9pwn8yZXazUrFs9yOuOV24zjeME
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?WLvcgjsvBHsMqky0zQwQcM4XeuRjS0Qw095cQpfIaQUWwMAC028rmCOL2P?=
 =?iso-8859-1?Q?JA1O2zalPEpt4h+dtUMkiMy8BHaxo2t5Xie2uKqk9SDQAVvpa4hvXUkfSb?=
 =?iso-8859-1?Q?vbTOPc5hwvfg5DV29/MbumzOZWLWrLCDuxoKdDPfsMUPgyCe9ZZ/DMZNy+?=
 =?iso-8859-1?Q?MV3LxiUv+FKzJr5zCd2Cq4pD8PnATwYHrFAcxg5TPfT3WLVnsulkquqxXF?=
 =?iso-8859-1?Q?ghcsUmRqvS/r9OBAKWKm2xf4yZh4djKteP9nXxFXRR8srTrs3gngVAwI2e?=
 =?iso-8859-1?Q?ppTpyzB/wqqBI6oLqtPW2ucDr83UxtU+q8Tmb5Pa0MxoA8CUwqrMZ11kn9?=
 =?iso-8859-1?Q?52czd9Cs8AA/P2XIy/ab2pqQ/39C3g0bZxaEZzb6MQH2seVwzNvq/NaXjb?=
 =?iso-8859-1?Q?Kn70caFR4/2hiHd4vJKczP+7Z9QT86L5Q+tM1oDBDzqg/nrAybSEJLpmts?=
 =?iso-8859-1?Q?ek9EMOVlQaIv+ucPfkUSGK5VWeLOi/rcI//ZL3WPpCL5UNETWEkjQ2Q6nZ?=
 =?iso-8859-1?Q?dnC0LbUvkzd8DD5xLWjaGV9A1slttx3L+hHweu8sX40tRjaIpxgeDqgc58?=
 =?iso-8859-1?Q?nU1ZbvPLL0M9V4ev/sp86WGcBzjFIzAc7SWLomUoRhpBaN2EWYmy+Si4ia?=
 =?iso-8859-1?Q?EW8aE1UnaKiVGBQOYQdL7SUU1GTct52gy7r9uTU30giRXr9M9bX3nSVnHG?=
 =?iso-8859-1?Q?0fzhyq/MsUj0k7llUpfLic4chwzInHhQLYwr8R4tIzbZvmI9YmnEq2Un03?=
 =?iso-8859-1?Q?TX2dLRpXHZvhLYMMkE9byahXNcl5zPgG6ovjAJxqb8v/6+HOT93LKg9q2g?=
 =?iso-8859-1?Q?3qsSTDrmEtXD552hyH23lUZvnkw73QuS0ps/mairbP+NWYm5ojc2ICcTAn?=
 =?iso-8859-1?Q?IJBRdYlf8OnwmBtxwEmiod5seVupHZHJy/SUx6m6buQ7vDNBvRmI+onEoc?=
 =?iso-8859-1?Q?2qs1QUzntA1Bf3rDlLxh5hgxTBcPtMXyGweieCqZYhkJO000Q0lnlldPsH?=
 =?iso-8859-1?Q?1uzbZWIvLxX2DGuU66S8lq9f+op3/HKMkC/4fMfYjlgPZurkmh2ctVlJTR?=
 =?iso-8859-1?Q?a23MqGHyapXeL5XjVN9cxJO+I/GkUh/sgafXusBdpUGfjhZcbN7q78wDcs?=
 =?iso-8859-1?Q?cuBBTefuPyuPzlIpWAfQHg2ujOOVRKe4vFY7L8jD1ImjZXc93bGdWleE5y?=
 =?iso-8859-1?Q?NzGIB2X8PcpPeknsnbUdVGoykCgSkd5ceM7bxUJqM2FOReh3ykQCsrJkmw?=
 =?iso-8859-1?Q?cf7C4GlivH/Q+6JvfhFwcBbr4NQkllMxzljEWgGJD2Amc5MIlKDcoGCRe/?=
 =?iso-8859-1?Q?0vn1uf7c5jKl1YCMW+pAtExzTWEgtU99Dhg1ktcJ46A/CVCdh9TJXKSDNH?=
 =?iso-8859-1?Q?lKxEQDS7qcy4XRDv1NVznTAPjRZMeB/Uk16/KDTXxjQPEqWLLG3bK5F4n/?=
 =?iso-8859-1?Q?k30GSm99dgCNHOx+UuypfnCcjH9MyrqDfvEvzGq7Lwo/qXMRYxNtEVJddv?=
 =?iso-8859-1?Q?FoMJ/nRhH9YaOzyCuK2hRs/aiL3x/rQRrVa/ipilh3MKOtYOoZIgShJ+22?=
 =?iso-8859-1?Q?rUYumC6J6xGOvKBELHKPvm/IJ+bW2nnNNOvU0cF0zHQgaprUKIM53yqSMg?=
 =?iso-8859-1?Q?adOWajyr+2yxH9qLpI76YLUJuAHbi3kpFBoqKJzjv1yI/dFMjqUAXUpQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aadcf4ec-9550-43e7-ab63-08dbf2d5cceb
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:05.0030
 (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: jUN888k2aiTDk+PrJARDtnLVfiwHu932wFOQ4QlOF/+aaKfJfDJFV1NxyME7ZQRi+nqt33fNx95kfE7Xj09WGeDTdteWAjEki1uxXStkk5U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: EhZ-FRdFIeSCDyhSlkw-nvwWhrmdKWxX
X-Proofpoint-ORIG-GUID: EhZ-FRdFIeSCDyhSlkw-nvwWhrmdKWxX
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=706 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

This function can be used when user wants to remove all rangeset
entries but do not want to destroy rangeset itself.

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

---
Changes in v11:
 - Now the function only empties rangeset, without removing it from
   domain's list

Changes in v10:
 - New in v10. The function is used in "vpci/header: handle p2m range sets =
per BAR"
---
 xen/common/rangeset.c      | 16 ++++++++++++----
 xen/include/xen/rangeset.h |  3 ++-
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/xen/common/rangeset.c b/xen/common/rangeset.c
index 0ccd53caac..d0c525cb50 100644
--- a/xen/common/rangeset.c
+++ b/xen/common/rangeset.c
@@ -448,11 +448,20 @@ struct rangeset *rangeset_new(
     return r;
 }
=20
-void rangeset_destroy(
-    struct rangeset *r)
+void rangeset_empty(struct rangeset *r)
 {
     struct range *x;
=20
+    if ( r =3D=3D NULL )
+        return;
+
+    while ( (x =3D first_range(r)) !=3D NULL )
+        destroy_range(r, x);
+}
+
+void rangeset_destroy(
+    struct rangeset *r)
+{
     if ( r =3D=3D NULL )
         return;
=20
@@ -463,8 +472,7 @@ void rangeset_destroy(
         spin_unlock(&r->domain->rangesets_lock);
     }
=20
-    while ( (x =3D first_range(r)) !=3D NULL )
-        destroy_range(r, x);
+    rangeset_empty(r);
=20
     xfree(r);
 }
diff --git a/xen/include/xen/rangeset.h b/xen/include/xen/rangeset.h
index 87bd956962..62cb67b49b 100644
--- a/xen/include/xen/rangeset.h
+++ b/xen/include/xen/rangeset.h
@@ -56,7 +56,7 @@ void rangeset_limit(
 bool __must_check rangeset_is_empty(
     const struct rangeset *r);
=20
-/* Add/claim/remove/query a numeric range. */
+/* Add/claim/remove/query/empty a numeric range. */
 int __must_check rangeset_add_range(
     struct rangeset *r, unsigned long s, unsigned long e);
 int __must_check rangeset_claim_range(struct rangeset *r, unsigned long si=
ze,
@@ -70,6 +70,7 @@ bool __must_check rangeset_overlaps_range(
 int rangeset_report_ranges(
     struct rangeset *r, unsigned long s, unsigned long e,
     int (*cb)(unsigned long s, unsigned long e, void *data), void *ctxt);
+void rangeset_empty(struct rangeset *r);
=20
 /*
  * Note that the consume function can return an error value apart from
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645838.1008324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En1-0004V0-Fi; Sat, 02 Dec 2023 01:27:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645838.1008324; Sat, 02 Dec 2023 01: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 1r9En1-0004Pb-2N; Sat, 02 Dec 2023 01:27:27 +0000
Received: by outflank-mailman (input) for mailman id 645838;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9Emz-000272-JR
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:25 +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 f1b1c5c7-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:24 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B20exWa004068; Sat, 2 Dec 2023 01:27:13 GMT
Received: from eur02-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur02lp2040.outbound.protection.outlook.com [104.47.11.40])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqt8mg1hm-3
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:13 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:08 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27: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: f1b1c5c7-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WsTiag/Nyo8pa7Cp19bBLPah6EcvNwpz9qqJWOKb6wSn6n/lTDKOzxee37RRRXIoYVLuxCTz4HEYUmA8sL8QzfANiGU6hkgwB+wtKpQh15KL672PUnTIqoJwM7aiO1qnvBFdWFeHUHu8myHqV7GZgqjjHpcuDVAp/YhOY3OOnNI5gtiFxQVwJI86VRhuvFK4ivdl3z/64ntNRhPQ9HbUww+qirnuTwUSMa4aeYkhN2EvQ6snpeJbWVZy1HoC2tcxVHma+iMvxwtcXKnBz5bZdeOsErsS7P34C1sSgjB9Kc4wP9WH5yWpe2LRfzTR0MSesE/5Bj6nHwoe93rq3oJrxQ==
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=cjuf4AqZ+uhh774QaAreURssqr1arEGYp9N8KZKWT+c=;
 b=N/0vUNF85upo7GnfXXQPL07ngpb9gzQPeLlv+SYOXV3l4RQZAGfUPly/ldYqM4McwCBsp7ZgxFFr+fcArYrQMzYaVQ2ZDWkoOO1BQ02HjJC0VaGrNexf5Z1JBk5ujjqjqMODvUCu/xdzZIqA2QKkP+jaVfJNQGc5euqltpXqw0PGL4lbUCyCqJg3koJ+Djn3abcCg0bFzyw6sH+TQqDwY5Pe8Of1D6oZz9mXcMcGuxB0l1ad9KyiAWoJ3SsqXzi0RFrbNmyOAnGP3UJCRSDCA2TiAI2inZ53LsbYAIS1nJeTL3eT9IFM1V8MfZHwAcvLTwZywnSuIK5HBpAaOun6Xw==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cjuf4AqZ+uhh774QaAreURssqr1arEGYp9N8KZKWT+c=;
 b=pvDY/UgvjFb130NHJBqlyDf818MizzZBGe4VaNObNhzWFw0Fbs0EWkJyRKbL1srBPOyT+sbXvaLVvhnxwNXuxMI8DOVo2g1eZJ9RixdKM71SqAl0BpXfQn3tnUpKQFwcIMS8tn1ygYwj43EA6+LNisvbuK1rgCXbHeNHjzggu43h8pwejkTKGLnkOixJGtRXTq1quTwJaFnTv+gW71SN/gdeaq8dYJQRdlLmVTyY92fGVAaah/yLHJcfaNbihqp6SbAUnaaNic3CeM5dcamPBwdOsr7P7mouqisq/h7oR6AsGfPBZnDH9YZDYo9SOmR53ntn4SNVIjgUxx8PB2xqzQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.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>, Wei Liu <wl@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 08/17] rangeset: add RANGESETF_no_print flag
Thread-Topic: [PATCH v11 08/17] rangeset: add RANGESETF_no_print flag
Thread-Index: AQHaJL6oAOK+50zr5Ea10ElGDBGzrQ==
Date: Sat, 2 Dec 2023 01:27:04 +0000
Message-ID: <20231202012556.2012281-9-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: d63231e4-0d73-4807-e57d-08dbf2d5ccb0
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;
x-microsoft-antispam-message-info: 
 bfujD/gXSTsGuZxF+1V9JRKOHyLwRq8rQjOHQQ180quws1TZu/x0opCGLWdmu/0quYEaS3svecZwyufC0uZQna5lpjmUApQukhzmjTzJniAbK/ssE6ahCMZlxA1/i3vtYRuFip1MvU5Z2GDQ7+atk0sh3883ZDTSGjFnRmbGdisLoMX+bLNz+f8+CJfk+WaWjHeiUKKsV1jOfOfEOtlp7XCzzXcQZ1XbeJlBKj7SsGRu2eCpDKB0ozwa+Mw33KRKRJ1Nk/odRTUgGMC7u5fhhHL24J6ki3yEqRnxknxV5i2z4NXA6rh9mxXU61YnxSn9MHcDZ/qtzZ2JbnhBK3fp+c9XJk1kcJUsxjonS73zMuGzRknsQUCmUn6W20HPA2k/yVu33LIoTbSMSUdQlSqHfSeOSiwTxVkuxkTSJje7i7WtjNBcnvjuBy/6DTw3ppvCnkHsiz3jW7ztvQjbtDDzDHezbQt3VwnfOzmqMZulBTClQ7yVFw5+7Jl1TiNFZP8Lvw5Kv3qDEv123ecQt9VkjnrnOhT2G2ZwadnS+8nG8HHx8LXGySoEqo0L/JRQiUyqml9ICY1hqu8eRC/nT0VUqyRnOmz2l5dknbPTeoKrJeztvOaVufeQsIoAMIEw38Vd
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?VaCPbk407zia+di7zjrgr8/yQ7gcnxIMTlnigGXqh+dQClnR8ON/RGzYDi?=
 =?iso-8859-1?Q?jkzaM/Jevlw17Ek+19IRkJAOWfXiLoBM38NTpIw2QkQX5Sr/10c7u3ayea?=
 =?iso-8859-1?Q?zIutHENRI9p2kqSIADqJniYYr30nE4sGOSpzlbpZFkVbaayytuNPLvOQTd?=
 =?iso-8859-1?Q?Z34097aFpdMdYxGoRGW7ZyJTI2DC2uOU+uX+x3kl9VSAPpmxYkbs3JJayY?=
 =?iso-8859-1?Q?tMgrT7Ua57GI6m+Qjr785P9RPHiTRbZnuP+2dD+GPJKaBvc1ehCHGY9IZq?=
 =?iso-8859-1?Q?93kx2UPhPkQC1H8L16QEQE8fhOXSohqwL596W6+1W3kn0Wx04JIbitkO/w?=
 =?iso-8859-1?Q?O5POAbIS7gNahhbhZW/jmolNAHoHoSN+XO5jkkYnPOkUKHRSuMMePBPQeJ?=
 =?iso-8859-1?Q?YT88TNY3bDtuZXTdq+ZYdebYDHtMT4fLts54tZV0mWzqxTIuYRzAKImEco?=
 =?iso-8859-1?Q?JfbnaiX0WammfBZylgfloFwCNpXOgZaBDyMupdM59dZ/Gskc7APnjgsSMR?=
 =?iso-8859-1?Q?zRMYK2Zavh2lcaJEHUiKI9lqYIhmkoZv/R9V5hjxbyAGUSsRAOSPrbz0xO?=
 =?iso-8859-1?Q?Jgd7VMXAyl0I2+9KzT/58ooLpRLlKz9mxolzb0coHpNehyq/ESFltYVNp/?=
 =?iso-8859-1?Q?J6Cxez+Rkvu6aw4/cTLegyNyu0wDYeOWKSDLitKHdCfbe/3RLSL2PBW1Ws?=
 =?iso-8859-1?Q?S+2pGZ7CFgOczDtUOGjujXSNyqUxZOqbW5evPQ3BRZFR8w0vtUuX4zD/pv?=
 =?iso-8859-1?Q?2rkbHT7kXKXMo+NmjyFB9Ts1Sy98rQOHsXinJXUhcbhKk19s3W97ovbCPY?=
 =?iso-8859-1?Q?dqTblt1uq6Vocn1VGhOFFr/0rQsN8dKT1UYAmb88Zc/Ai4hYQKAEEfOnGI?=
 =?iso-8859-1?Q?TsiiHTh3VX68hqClPyqbjk+IdX0MD7B8ppYHVwtCrg7pDnYKV2g6OYowQv?=
 =?iso-8859-1?Q?h4UF/FXoYG/skJn8Lw7nI2uaKSoxz5cmVxp5b56A7C2ohe0r0x9fOwqY8W?=
 =?iso-8859-1?Q?dAAfhLuVV6D3YrudgwBq7y/a3RALuvAcuBVBCV17X+GdN8TvIt7AeaTG0B?=
 =?iso-8859-1?Q?a2k5XIPgelng8MdE1WodU7Rh/WSZ4XO3iFiThz874gjJqddAi8tPxL+ShF?=
 =?iso-8859-1?Q?F+huqfe2vJP8eLEjCcy3HI/XwMnvtQR3zLimaRgHqkktLoCyr791uTJovx?=
 =?iso-8859-1?Q?SlcEL2oR7R8oBAsREi8uvYZW6HIbUJYhi9oOnGHPcL5jAEJl56AE9OveKB?=
 =?iso-8859-1?Q?JswLfc4/wiSRJxK92whpnv+kliJF52kDk3xFavHl2LGqBoCrC35krwzMP1?=
 =?iso-8859-1?Q?thVIOHCDvakUgos4R16K2+KqDf4vjW1Qs5y+ydtsP9sjbKzhIO8cVj190l?=
 =?iso-8859-1?Q?hJ2a6ODumX7aL7mxBI6RCytDf016oTPFBlZExLfCn9o69C0NxMA0daRLNK?=
 =?iso-8859-1?Q?kdGzLYKrINm21/D4qCr+QmTqF21CJIrhDdjZwqMgnr9fIjrtKV183DmGMh?=
 =?iso-8859-1?Q?lewLGRSAua1HtHuI0FHtLB2IQIZjGeEXua9cSMyyeaASDW+H3JpAQ3oAqX?=
 =?iso-8859-1?Q?OFFXWXZLZqTQVEzNovTWFJSjBTKCu60RkkgT3aW06Qwia6xFoGowld+p59?=
 =?iso-8859-1?Q?wtnwv4xdiIjxCz+uIRFIZtD56LOXLiH5T3ZSbD8Kwn5dFepBSwfWLtZg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d63231e4-0d73-4807-e57d-08dbf2d5ccb0
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:04.7658
 (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: qZefivLQ10rNr+I3opfWEfd/HHOvkfZVL6SBoP1WbOaOJBXBGDaaE9PgjNi9j8Ih3GFhH1fD4fzyEkm6MS3A2o+iHmMgw0vLysiUyCE7+wg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-ORIG-GUID: M-rz3I0bjEPDnKG-omNko7Zd3fxZyvrC
X-Proofpoint-GUID: M-rz3I0bjEPDnKG-omNko7Zd3fxZyvrC
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0
 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0
 malwarescore=0 lowpriorityscore=0 mlxlogscore=999 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There are range sets which should not be printed, so introduce a flag
which allows marking those as such. Implement relevant logic to skip
such entries while printing.

While at it also simplify the definition of the flags by directly
defining those without helpers.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Since v5:
- comment indentation (Jan)
Since v1:
- update BUG_ON with new flag
- simplify the definition of the flags
---
 xen/common/rangeset.c      | 5 ++++-
 xen/include/xen/rangeset.h | 5 +++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/xen/common/rangeset.c b/xen/common/rangeset.c
index 16a4c3b842..0ccd53caac 100644
--- a/xen/common/rangeset.c
+++ b/xen/common/rangeset.c
@@ -433,7 +433,7 @@ struct rangeset *rangeset_new(
     INIT_LIST_HEAD(&r->range_list);
     r->nr_ranges =3D -1;
=20
-    BUG_ON(flags & ~RANGESETF_prettyprint_hex);
+    BUG_ON(flags & ~(RANGESETF_prettyprint_hex | RANGESETF_no_print));
     r->flags =3D flags;
=20
     safe_strcpy(r->name, name ?: "(no name)");
@@ -575,6 +575,9 @@ void rangeset_domain_printk(
=20
     list_for_each_entry ( r, &d->rangesets, rangeset_list )
     {
+        if ( r->flags & RANGESETF_no_print )
+            continue;
+
         printk("    ");
         rangeset_printk(r);
         printk("\n");
diff --git a/xen/include/xen/rangeset.h b/xen/include/xen/rangeset.h
index 8be0722787..87bd956962 100644
--- a/xen/include/xen/rangeset.h
+++ b/xen/include/xen/rangeset.h
@@ -49,8 +49,9 @@ void rangeset_limit(
=20
 /* Flags for passing to rangeset_new(). */
  /* Pretty-print range limits in hexadecimal. */
-#define _RANGESETF_prettyprint_hex 0
-#define RANGESETF_prettyprint_hex  (1U << _RANGESETF_prettyprint_hex)
+#define RANGESETF_prettyprint_hex   (1U << 0)
+ /* Do not print entries marked with this flag. */
+#define RANGESETF_no_print          (1U << 1)
=20
 bool __must_check rangeset_is_empty(
     const struct rangeset *r);
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645839.1008338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En2-0004vH-U0; Sat, 02 Dec 2023 01:27:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645839.1008338; Sat, 02 Dec 2023 01: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 1r9En2-0004s8-Is; Sat, 02 Dec 2023 01:27:28 +0000
Received: by outflank-mailman (input) for mailman id 645839;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9En0-000271-FY
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:26 +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 f1d96726-90b1-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 02:27:24 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGv5008549; Sat, 2 Dec 2023 01:27:17 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-11
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:16 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:11 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1d96726-90b1-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LqwzjfVbpuSbADigDKB3q6s/+4Ysl4kv9K1b1mlW2jPLkPg+2IdgeCtSwFrGA788BBfs82E/2RoEUefWNFdczzKy+K42djELnHHrMAc8AOfalgfPhiH4dl0XvfxT8mGIHn32uQtdHNWcpAqp9ivhwu/jSyI+X+7UzNVsqjnseVWe9dPLAEr+yJA68ljINOnq4/prp80gAZbXt3LzyMQwEjkw7DKXHSXgN+7QabEu6khWfU1vOjHAJ208go4yg1ZfEnn7ughdCpYQcCqDOIo3lXYVsRSjzRI8q3OPPslOPOnHQ4vIjM/lDPs1pmae7EplKrPSnUBiprkIUCr8Juxncw==
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=hdZ0jIGkzRKTDO0d37Jm8MydN5O2zv8obceLXDno5fI=;
 b=NkHMRIbbbIG/oXJff0ijwMmlAED6egLPtwuxyZGI9PYvf0zx9LzE3iLDOBfzF8njxAW1CJiOXSX25nbJX9eZd3/kjeV/Pfk7n77fe3Rz4/gaK1LOGyemDGq2UEoa4CdeGur/LcNbCd2ZdyQNfELfbnnEoz97wkPReLfNmPcTxIDT2OO9wQkrmUHB1/eGKycafJ6fRDp18bmyRD+YSEGRGCP4BHWmUEkph7KAjaZvZvkn91Oj1hNp5ohetTzPNnOqI36exYGZ0DcTAEgxTR3K8TsyErHbF0/HElwTm/pSxPjw00/PgitWs2hGgJm6yIl3xK9SMXOcCcopL9eIuHz4/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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hdZ0jIGkzRKTDO0d37Jm8MydN5O2zv8obceLXDno5fI=;
 b=IYfK9x9TGxqAs0x86VS3DmPrsSwIYQOJZqDDAZTlLMexzplhUksPdYI1ANszeXdn4fgKvWxIMqm8w7B71emdWTIlxoic33WQuQ/ZABaP6tmD6u2MMJIf3RUsIQc9CYbqXUJnO0wq9rHarGF7abN12th4frc+8fWEYdPEQ5tNHvPhr8JbIS+WgRHSU6TgQKDpa4ikt8J34od1UTMnO7ZcAqWbZo1KsWRolj9z4+WblpBrp+4BfQw3Mqhc4O8azGzZPd2Pra+XdGWULjhn+1koE/OyNR8ICIYLGQ1m3kuITpFY6AeAbvSmdKFNDe+05hrUuv78GbgOnjYa3Ko3sLYZlQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Michal Orzel <michal.orzel@amd.com>,
        Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>,
        Andrew Cooper
	<andrew.cooper3@citrix.com>,
        George Dunlap <george.dunlap@citrix.com>,
        Jan
 Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 16/17] xen/arm: vpci: permit access to guest vpci space
Thread-Topic: [PATCH v11 16/17] xen/arm: vpci: permit access to guest vpci
 space
Thread-Index: AQHaJL6psXyo5g/AOESuTV51rbTuPw==
Date: Sat, 2 Dec 2023 01:27:07 +0000
Message-ID: <20231202012556.2012281-17-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: f88aa59d-d7ae-41e0-9770-08dbf2d5ced5
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;
x-microsoft-antispam-message-info: 
 TFoblPe7cdkIG+CF31m0fHdzEKcUHB+nVJ4ql8yuHAwHWdKtng4Kg2gTA76H2qj3cEsLbbOGB/UW9Z3sRtwnoEUruR5AhrsDLe9+9SOvDvcheCCQW4IVcOdWB7WQPpRPCTbEgNf21/djYPe1i9bQ1Bg6xTJiewxQ/2OkG3GIqbY0souisgtiWE1Ng0V+Asn/GDuU8l3szdzJ/62YrfhViU2yA8vVdc2ySY2O9OKaAbzmR2hh3hnb83L5y6y6hNTSoFCvAbGkOjLAjf+B3SPJoj3ATLKFvU7vxOSHgWkQDlggiOkRT4bd6HZ4/i9eVWCB6/0iWuo9I6gt6aCgWPH6GjcqpovBNH+4tlMsq3Na0nz7MzcMtNkY2XaxC/rnntKechf1NPHqPAxLlqhWvyKOUUaA6HSwIGdkNuVm4GPHPX0MsKwjd7NnxCNhxG0EU0R+roc953jRjLG/vSZf2c9zI+ZJrOSEaQRCgnybRDyAnJ3m05wxeASEJEA6LH9tYdRPJnEGf8hqedy3OP4+pnTuTP2lcwA08J1kg8VMQ3fu0i391a0euXqQv3lk57dVFfJU4xdjniPmiwNwH9azBJfb0corzopa6lpmYf85LXQHILSksicvD1pp4/wDi95b2jZg
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(7416002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?Fwz1+ysKbbDmT8z+qXOD4TrkiQkMe6nSowDqR1CBUNB1L+DDZvhterRx7z?=
 =?iso-8859-1?Q?YuqMTQZmh0xf12dFrY3mtoAkY0X4ewf5yBtryKNjlrnqk7GV7d9NZ504X6?=
 =?iso-8859-1?Q?37NwU+/fZmbMEIwqAEh7NzHMGe3oCWuWlaHyULD72+axK4S7kliXVvGdrp?=
 =?iso-8859-1?Q?wogUT9KTQKLgWh2MhJTuggLEj+faBTxqN1q7mw1gC5bLSJ9AS7mDFgFg0c?=
 =?iso-8859-1?Q?P5yn+rfJ07+T5m7aaBkoabIdsDJn6ihqcLJ//28k34/OHI2eOQad7ra7vK?=
 =?iso-8859-1?Q?/FJRtFWKS/XRUTwczo1TdisijcDAmUcvd3PEK9V2iur7NJJeAG4VmeAFgu?=
 =?iso-8859-1?Q?Tbe1WDJ+Acab76ke3M5F/ODUdOnreDxkahuZEz5ekEzsv2GX+rncnlmwGD?=
 =?iso-8859-1?Q?9I+RgfmC+dGy3grbMOK5B15AjR2FjxLHDyNZdYeNfrMWo7g9b2jUn1IOUY?=
 =?iso-8859-1?Q?sVfpnkZ+dlRTVN/CSSS6Etlp7SKvAstJfumFBT4H7N9L/9QQDIJRhjE2vs?=
 =?iso-8859-1?Q?thOWQQxeRvhhfAoG9SFbQMfPnR+0sGfw6a9sxp9McOAjI+I8YX8SgyH6VL?=
 =?iso-8859-1?Q?hpHK0h7dg6+osooGGpyXWBQ7aLwQ/SIi+OHsz2LeTHjtEEtF4ddjhI19yQ?=
 =?iso-8859-1?Q?vjvG4rMw/qhXOW/tXUYtnG4sooz5aQyZz4ZNOf08gnBR5Qb8f3XzzVw1X9?=
 =?iso-8859-1?Q?wtGcR7z04YC+s66FkYV3myf4Rn1/zvb/1iMaTozIfEblR6vqfwdRN/Y5YN?=
 =?iso-8859-1?Q?hIaILCjepKzNfE0sTlOa2yC05A2hXAUzXu2NwRMf6sAyohZ4cXf8a3vAuC?=
 =?iso-8859-1?Q?hoeg1w4gPeiB8f77rYgIij6STtgonRCjF5QhLI4e3wMNQfGmyLQq+/uikJ?=
 =?iso-8859-1?Q?4jjCQYvtZIrp8vFM6yAG2J2RaFDOIrv39r9WyG6xzLQd6O5YT1v9Lo5s6y?=
 =?iso-8859-1?Q?Sq/Hj+ONlirl35IyjrQolHKuw4LucV0ZyBGvJzwvKXepRqgnnmyg4zI6UF?=
 =?iso-8859-1?Q?g4vdvuktU13u13TU8TGOWmC0AWsqqopqI8qQ1Yb70XiTq06W4qZE6jWDId?=
 =?iso-8859-1?Q?oKWIr+6ACaPu5aJy+bFow8O7gQ6vItr2xPMY3FltAR8K1Jsq+d4xhZo66W?=
 =?iso-8859-1?Q?RaKgBDaDmf3a1JzXU3KnMQBdyCt17Ov+XkD2813LMw3JfFC284B/UrGues?=
 =?iso-8859-1?Q?Jsj+UE2i1QrL4J9awiMpPGkNO6i2sNi5w2WJOK4fFK2B0HN62S2fklXNoS?=
 =?iso-8859-1?Q?+H2xh2Bt+IWQmMKFrfm5uvUe+w2fLZu+qIGpR6SbA7VEYi/ygU6nfIol5x?=
 =?iso-8859-1?Q?NwdR0KXA27OtCQqtne/T2LV+4xzttShbrDeGKTCh2PEzEwPDoKfUp1QjSF?=
 =?iso-8859-1?Q?hpZ3YelmNCb2tW5NH3JzsIbKFFsE0rsVDUL6wpKqdblmcNVWmBjcADjzee?=
 =?iso-8859-1?Q?ZhCJQitSf8AAKYmi0zYAt+3//PcZRM6ZAul7tieAQFRsJ8Mhk4/tEZet9r?=
 =?iso-8859-1?Q?uPd2C53fclkBYshV/ivF43r5q7t2YW2NNy96wETSpPCKHPcdS5SMpLlnj2?=
 =?iso-8859-1?Q?4efjxHdDcJS97nTrC4Lqc4eea9/9NNqqLRhELM/qgmwNDRnks/YIfxP2U6?=
 =?iso-8859-1?Q?hSJZmNpKWbitxSiZXg5es7uohUyF4RhspcHVsbw3ydcE1/llW1RHlr4Q?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f88aa59d-d7ae-41e0-9770-08dbf2d5ced5
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:07.4675
 (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: vCsHc3wz1+dVzVYuVNuZ0AbUHPSC500soctpl6D42mEKaUB9cvY8P+fsB3XyrZL1ksJLz6jMJw9PLHQpi39doupGc6Nh6CNMGpTe24oo/Bg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: dGrDLNxqCYl5a5Kf7fTKg2uqQU53M4Ue
X-Proofpoint-ORIG-GUID: dGrDLNxqCYl5a5Kf7fTKg2uqQU53M4Ue
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=720 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

From: Stewart Hildebrand <stewart.hildebrand@amd.com>

Move iomem_caps initialization earlier (before arch_domain_create()).

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
Changes in v10:
* fix off-by-one
* also permit access to GUEST_VPCI_PREFETCH_MEM_ADDR

Changes in v9:
* new patch

This is sort of a follow-up to:

  baa6ea700386 ("vpci: add permission checks to map_range()")

I don't believe we need a fixes tag since this depends on the vPCI p2m BAR
patches.
---
 xen/arch/arm/vpci.c | 9 +++++++++
 xen/common/domain.c | 4 +++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 348ba0fbc8..b6ef440f17 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -2,6 +2,7 @@
 /*
  * xen/arch/arm/vpci.c
  */
+#include <xen/iocap.h>
 #include <xen/sched.h>
 #include <xen/vpci.h>
=20
@@ -115,8 +116,16 @@ int domain_vpci_init(struct domain *d)
             return ret;
     }
     else
+    {
         register_mmio_handler(d, &vpci_mmio_handler,
                               GUEST_VPCI_ECAM_BASE, GUEST_VPCI_ECAM_SIZE, =
NULL);
+        iomem_permit_access(d, paddr_to_pfn(GUEST_VPCI_MEM_ADDR),
+                            paddr_to_pfn(GUEST_VPCI_MEM_ADDR +
+                                         GUEST_VPCI_MEM_SIZE - 1));
+        iomem_permit_access(d, paddr_to_pfn(GUEST_VPCI_PREFETCH_MEM_ADDR),
+                            paddr_to_pfn(GUEST_VPCI_PREFETCH_MEM_ADDR +
+                                         GUEST_VPCI_PREFETCH_MEM_SIZE - 1)=
);
+    }
=20
     return 0;
 }
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 9b8902daa3..dccd272533 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -695,6 +695,9 @@ struct domain *domain_create(domid_t domid,
         radix_tree_init(&d->pirq_tree);
     }
=20
+    if ( !is_idle_domain(d) )
+        d->iomem_caps =3D rangeset_new(d, "I/O Memory", RANGESETF_prettypr=
int_hex);
+
     if ( (err =3D arch_domain_create(d, config, flags)) !=3D 0 )
         goto fail;
     init_status |=3D INIT_arch;
@@ -711,7 +714,6 @@ struct domain *domain_create(domid_t domid,
         watchdog_domain_init(d);
         init_status |=3D INIT_watchdog;
=20
-        d->iomem_caps =3D rangeset_new(d, "I/O Memory", RANGESETF_prettypr=
int_hex);
         d->irq_caps   =3D rangeset_new(d, "Interrupts", 0);
         if ( !d->iomem_caps || !d->irq_caps )
             goto fail;
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645840.1008343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En3-00051D-GC; Sat, 02 Dec 2023 01:27:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645840.1008343; Sat, 02 Dec 2023 01: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 1r9En3-0004yv-4f; Sat, 02 Dec 2023 01:27:29 +0000
Received: by outflank-mailman (input) for mailman id 645840;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9En0-000272-Jr
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:26 +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 f15d6cb9-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:23 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGuw008549; Sat, 2 Dec 2023 01:27:11 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-4
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:10 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:05 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f15d6cb9-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UXEU4vleLxXE8/i07IX4ceyEdWgyWp/0G9+2oRT1IESSOHHqBA+O8qWd488MEwxriDwwHSXj332M9/e6JWNAtIE5LG7Ssuy/bprGydff1SNXVrdXQDdSJ7x1LhBm2+SVE5Z3bp9xRtVUiy2AikNACki4M5CypgWaUxbrqBCXCllZQ50WB4P8QQc3sUw42mhP9hvSRYEtKzQciOZV5uJ1tuTxsKDVQAea5n4/9i0cxuPYES/DB1CsV2JklJH5VpaHm4OuwQOlBmyY6g6iHVXrn1RnJ1m9plWtnTg94WmZ7OcqniUFi+kPhlwKkGoNYHKUTBLsCuu8eRLK0g5g8+BrAw==
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=cRAy4fTV/DZJicZixDZOgYxrMqpCiX7LtB/4lX/CcM8=;
 b=SQN8AHUmTVXRXdH+SU36FGzL3lCAHXk6K1B4sAa4HWMfkLif2WYC0XGvT4z9gLoNRuKglSKnfRTsclHmnk0g8vjKUmCxpG6MEOLNAa66S1Om6WIQLvsAdMM58pKG8Qt3Y1g45q+5AEMtxxMCuWKWlizRfLM5yGGaNjc5LS+QXkdgCf1fhZlcT2BvKAk93DNkKD1qa/shJxSNZ4rNPPo6T7AxbxYFUwQ7JpQwRiEaCa/jRMMrfiG7QPS/AjwnFIgSdGhOgOHana+h7DQg1WYZIrzw19MgX4nsf5+R340swrMTHs2YDhZ+J/iTgaY+DdHJzg2SGnyIOma7ezyARdXSMw==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cRAy4fTV/DZJicZixDZOgYxrMqpCiX7LtB/4lX/CcM8=;
 b=nrrxBwGNYvFrQxZhvUdcf2Bq/zvs1nD0+UkrtjpXUnqnxVPe9E6gqeejmxn81ZWfMR9EBL0wi8FPUYZXY81O34vyr3bBPpJSnUAedxsv7EUoPaa5rVse6uG53UeULULdBJO5jObvn3LHQn6AGEPCQwwLt1yJq+GxeITkXqssQkRlM67gNX64VlX8AjMBJxTlFjzNeNoMzXzLkF/wz3Y3yWvf/FD63rDXtXqk247zA3q/Wonw8Fkbx2ROPHpySNhYCh88W/pumCbOZ6Di0c7V8nXTDi1rKZwjZpLo4PG9wmc2t5befpkaCPBmKNqxnE1s6al1BUh02yW+r54hY6hu+g==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        Jan Beulich <jbeulich@suse.com>,
        Andrew
 Cooper <andrew.cooper3@citrix.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        Wei Liu <wl@xen.org>, Jun Nakajima
	<jun.nakajima@intel.com>,
        Kevin Tian <kevin.tian@intel.com>, Paul Durrant
	<paul@xen.org>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 03/17] vpci: use per-domain PCI lock to protect vpci
 structure
Thread-Topic: [PATCH v11 03/17] vpci: use per-domain PCI lock to protect vpci
 structure
Thread-Index: AQHaJL6nSmaa9yrPGkyMNHyYLaQzMQ==
Date: Sat, 2 Dec 2023 01:27:03 +0000
Message-ID: <20231202012556.2012281-4-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 596e1aac-28f6-4160-f525-08dbf2d5cb25
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;
x-microsoft-antispam-message-info: 
 kjJoz97MBr8uR75DiSdp70VH6hOV1SszBvaZyTS69122yiusj7IjlYkQZSa4yxSWA48R5fl7mYpLgUoz5q1Fwuqk+lc0+PAix2TSYwHdYIoeIbtrbQmuGHOFS2dNKVTGeILOdMKWwjlWfvezGg6cFNIplvBcg/ezquhHUFMHUr1vJ9WbtyGjXpEVdYxkbkOjsJG0459otIdskHyjsx9HK3P3a770fZaAHDtlHJhXnwakya+I1aaTo6NaH7VI13JV0YoGIJEtla+0F2qai7zTeDvzaBSAa5b/FScjue5E2fg4mrEyfgURnkbFRIG2JjDTYPaUCxmDxHqKyumIPGNfkszSZmsHKLg4/P104RaQN07QnMFQvH+yTs9O/opK+1N7cSJscVnHe/d+qYHp8V36/v16aeN8crpDq9srdP3qhvX6pcfkhMi06UzApp5eG5GJoanDbhZATED+H/S775KDZyT1wl1Kp5aY/a9FeQiEs5frD2t1eVT98fIZIOeKS18Sa00xMOPI/zWa45tV9laCs6TUIbRFPCYoaxl7r803bHbXgx7ALmyOe/O2vvvlKCwGcy3xJmthAUwNaaCtzbasCCum6yvlneOs/Iujwm2N7/Dv+y05INXachOPVTk7guubQgsFB8RxFA8ehp5xH3VWaQ==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(30864003)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007)(559001)(579004)(309714004);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?L25IaXJXZmgybnFJb2NOREhyVlNnY1F3aHhjblphbDc3RmRzZW1lMlpxYXlF?=
 =?utf-8?B?QlVCUHBKZzM4KzRTQ1dWNmpzUXVkUTBHRkdnQm9KK3FHK0ZRUnc4SzB6VU1K?=
 =?utf-8?B?TnVOZFRuTEY2L2tTbmhvVkFKdGNNODZZQVltUmViNTdKRDY2aDdQL3ByWkxi?=
 =?utf-8?B?Tm96eURlUHYrdmZLdTJ6QWUyY2YwK2VaNGN0YkpnT21mL1JyK0NnMkJvWVlv?=
 =?utf-8?B?VWZUaVo4alNvNXE4K3grRExhMDJLcFR3Mkp6VnhOSHVrMlRrL3d0MEg1QWZv?=
 =?utf-8?B?VXZLLzNxU1I1L3MrQnVjbFlYUFNjYTJCTjBKc3NyckVQLzdLQmE4REI2TzVT?=
 =?utf-8?B?U3RVTktHTE5oVzZlZTdmWnArV0FsbFFJeXRWNnAvdlllZHNZbytaekN0Y1NO?=
 =?utf-8?B?WUV4OG1xSVlOcGVTQ2ZZNjFJdUZLN2d3NVQ2dlVKb0JLOHBvZ0kxQ0oxcXA3?=
 =?utf-8?B?Wlo0aURJRVRLM3dJaTVNYjdlelUrZnJsV3crTEVSZzBmWUZwRWFqMjVhQlZv?=
 =?utf-8?B?TUF0YUtGZlJMdlpGSDU1cW1kaWZZWFRIRzdFRHZaZnI5NkYwdjVQMGp3TzhJ?=
 =?utf-8?B?azUrVld6SU1OUWZkYkxXVTY3MzFhYTB2THB2MzJLbThEdWNoR290bytTNlJi?=
 =?utf-8?B?bE1LczBLT2Vzb2lvYlJFSlZGRTFGMll4SjhRTkJFUFM5bWZ2Q2J5TkNpbFQ5?=
 =?utf-8?B?UWJmU2Fuc1NaL202dGJtUjI3L2J2UE03aG9tbytnVVBlYlg1N2dVT0VKR0Z1?=
 =?utf-8?B?ckJSUngxeCs2dTlKcEZRMThCUmVzWG9OdmVYWkF1RVFPT2NvY1dzaC9tOVRI?=
 =?utf-8?B?ZTVjd1h2RjU5RzFNS3BEU25jR0tUMCtOd20wV1Y3Ylk1eFpOVWtaZHQyUGEv?=
 =?utf-8?B?RUxiMzRYTVBQRE8wVjkwcGM0andsenBhcGdobkxWTStrSUZEbFVHaWZmdllH?=
 =?utf-8?B?eWFIUnY2NkdCcGZwcmxiZ1BveTBpWWJBYnltMWlRdmRFMldEd0s5VGZVMXNG?=
 =?utf-8?B?TkFOVDI1RXozTzJ4ekZTNW5FRzVodmJBaHhlbmdkSFFkSXd1UG53V0p3ZGU0?=
 =?utf-8?B?cmxCbnVzUHNPb3lPK0k0RnFBTlFITUwzUkRCSGFMQU5uTzIwaFRLOGdGS1dS?=
 =?utf-8?B?djY2ZWlkd3VuYjFWbkkrNkRRdHhBVittUkJZYy9vQWgybUtnVGNEdkFwQ3Yx?=
 =?utf-8?B?TGs4MjA5T2d0aGVyNFNaVXovTjNZMkZ0VmFqN1JNNEVkK3RHUThtdGsxQm5E?=
 =?utf-8?B?YlFxWElzU3dpZFhkUm5TaEFaN2JqUktlK3FNL1FNM0pIZURIcVhkbFg3NTRz?=
 =?utf-8?B?cFZoTEhzZ3FKTGhaL0t5cE9xUE5pUk54N3VaNUNyWVlFcHRxeGpLVFFMdy9D?=
 =?utf-8?B?L3Z6QnZFeTVQZUZwUVJJUDJlWUVqRktHUlZOYVA0bW1DUHA0SXBVS1o5Y1ph?=
 =?utf-8?B?Nk9rUFZrMFBLNHFEY0ZiWVFjRFVqbXJJMDE5aG1tWXZPOTJ3aU4vKzFuV01w?=
 =?utf-8?B?K2RCTExhei9LUHMzS1VlcjMxUWRkZm9mb3Rnb05FRUF4MHlhN2RqenhoVTNL?=
 =?utf-8?B?eFY4RnR4Sm9KNWl6R1FjUGdHcjJIbHhacHlyRW1CeGt6ZGNyK3o5Ky9VU1pT?=
 =?utf-8?B?YTNlSVlUWVVENUZhSnNsQ001c2tpckE3ak0yRUlwNUxvZnhpYjl3K3VkR0s5?=
 =?utf-8?B?cDFoQ2trS1lSbjZwMFRTWHNrNS9rcWNtU3A0NnZJeXBUeTNQdjdSeG05Sitm?=
 =?utf-8?B?R1RBNVpsMzZBNmlUNkEyeDBoVEZ5UVByWUE3c0JJTmwyaFB2Vk9LLzh4S2t5?=
 =?utf-8?B?dldncUhwc2ZnS0VjaEVDVlRycDBhS1NFWFhkZ2ExSDhNZUt0TkJraTM3TzZJ?=
 =?utf-8?B?Z1Z1Vms4NFpqYTgxbkJTcGYxaHhNNk1YMDgzMllKckJMT1ByQnZYcUQvVzlQ?=
 =?utf-8?B?UWhUM0tvTWFwZVBZbDFzUVh0OUJWZEs1ZytUQUk2Nlo0TVJSSnM2R2QvSXBy?=
 =?utf-8?B?Y0IrM0M0VG1YUlcybVlKU0tZTDQ4L0NuUmRoRXJ4aDNUWFM4Sy9vcG54c2xj?=
 =?utf-8?B?UFM3OUJrUmg0TmpTNEdEbkZucTlpaWtkbjZlM0w4Qlp0TkN1bllBbFh3cU1F?=
 =?utf-8?B?QmYvRHJqZWdMT015bU1GVTFmNUh0dGZ1bDdhOHgvQmJwa3hlWU5HU3hZN0dj?=
 =?utf-8?B?Snc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0B1D1D1E00A5804E95A9220661BC4728@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 596e1aac-28f6-4160-f525-08dbf2d5cb25
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:03.2638
 (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: 80R1qTd0ATc99ZB3zFH4rQSzXqTk8vJdgzfVfetuu4iO+Nw1P+YPnqvAM/RwYNRCzLjiM6YVg5Nu9A556j/Mz3xFAnqg7VbmAhRCycFoJQU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: nXYKR62mWrGcTEkuz1d59TIQrkR_v0Mv
X-Proofpoint-ORIG-GUID: nXYKR62mWrGcTEkuz1d59TIQrkR_v0Mv
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw
YW0uY29tPg0KDQpVc2UgYSBwcmV2aW91c2x5IGludHJvZHVjZWQgcGVyLWRvbWFpbiByZWFkL3dy
aXRlIGxvY2sgdG8gY2hlY2sNCndoZXRoZXIgdnBjaSBpcyBwcmVzZW50LCBzbyB3ZSBhcmUgc3Vy
ZSB0aGVyZSBhcmUgbm8gYWNjZXNzZXMgdG8gdGhlDQpjb250ZW50cyBvZiB0aGUgdnBjaSBzdHJ1
Y3QgaWYgbm90LiBUaGlzIGxvY2sgY2FuIGJlIHVzZWQgKGFuZCBpbiBhDQpmZXcgY2FzZXMgaXMg
dXNlZCByaWdodCBhd2F5KSBzbyB0aGF0IHZwY2kgcmVtb3ZhbCBjYW4gYmUgcGVyZm9ybWVkDQp3
aGlsZSBob2xkaW5nIHRoZSBsb2NrIGluIHdyaXRlIG1vZGUuIFByZXZpb3VzbHkgc3VjaCByZW1v
dmFsIGNvdWxkDQpyYWNlIHdpdGggdnBjaV9yZWFkIGZvciBleGFtcGxlLg0KDQpXaGVuIHRha2lu
ZyBib3RoIGQtPnBjaV9sb2NrIGFuZCBwZGV2LT52cGNpLT5sb2NrLCB0aGV5IHNob3VsZCBiZQ0K
dGFrZW4gaW4gdGhpcyBleGFjdCBvcmRlcjogZC0+cGNpX2xvY2sgdGhlbiBwZGV2LT52cGNpLT5s
b2NrIHRvIGF2b2lkDQpwb3NzaWJsZSBkZWFkbG9jayBzaXR1YXRpb25zLg0KDQoxLiBQZXItZG9t
YWluJ3MgcGNpX3J3bG9jayBpcyB1c2VkIHRvIHByb3RlY3QgcGRldi0+dnBjaSBzdHJ1Y3R1cmUN
CmZyb20gYmVpbmcgcmVtb3ZlZC4NCg0KMi4gV3JpdGluZyB0aGUgY29tbWFuZCByZWdpc3RlciBh
bmQgUk9NIEJBUiByZWdpc3RlciBtYXkgdHJpZ2dlcg0KbW9kaWZ5X2JhcnMgdG8gcnVuLCB3aGlj
aCBpbiB0dXJuIG1heSBhY2Nlc3MgbXVsdGlwbGUgcGRldnMgd2hpbGUNCmNoZWNraW5nIGZvciB0
aGUgZXhpc3RpbmcgQkFSJ3Mgb3ZlcmxhcC4gVGhlIG92ZXJsYXBwaW5nIGNoZWNrLCBpZg0KZG9u
ZSB1bmRlciB0aGUgcmVhZCBsb2NrLCByZXF1aXJlcyB2cGNpLT5sb2NrIHRvIGJlIGFjcXVpcmVk
IG9uIGJvdGgNCmRldmljZXMgYmVpbmcgY29tcGFyZWQsIHdoaWNoIG1heSBwcm9kdWNlIGEgZGVh
ZGxvY2suIEl0IGlzIG5vdA0KcG9zc2libGUgdG8gdXBncmFkZSByZWFkIGxvY2sgdG8gd3JpdGUg
bG9jayBpbiBzdWNoIGEgY2FzZS4gU28sIGluDQpvcmRlciB0byBwcmV2ZW50IHRoZSBkZWFkbG9j
aywgdXNlIGQtPnBjaV9sb2NrIGluc3RlYWQuIFRvIHByZXZlbnQNCmRlYWRsb2NrIHdoaWxlIGxv
Y2tpbmcgYm90aCBod2RvbS0+cGNpX2xvY2sgYW5kIGRvbV94ZW4tPnBjaV9sb2NrLA0KYWx3YXlz
IGxvY2sgaHdkb20gZmlyc3QuDQoNCkFsbCBvdGhlciBjb2RlLCB3aGljaCBkb2Vzbid0IGxlYWQg
dG8gcGRldi0+dnBjaSBkZXN0cnVjdGlvbiBhbmQgZG9lcw0Kbm90IGFjY2VzcyBtdWx0aXBsZSBw
ZGV2cyBhdCB0aGUgc2FtZSB0aW1lLCBjYW4gc3RpbGwgdXNlIGENCmNvbWJpbmF0aW9uIG9mIHRo
ZSByZWFkIGxvY2sgYW5kIHBkZXYtPnZwY2ktPmxvY2suDQoNCjMuIERyb3AgY29uc3QgcXVhbGlm
aWVyIHdoZXJlIHRoZSBuZXcgcndsb2NrIGlzIHVzZWQgYW5kIHRoaXMgaXMNCmFwcHJvcHJpYXRl
Lg0KDQo0LiBEbyBub3QgY2FsbCBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMgd2l0aCBhbnkgbG9j
a3MgaGVsZC4gRm9yIHRoYXQNCnVubG9jayBwcmlvciB0aGUgY2FsbCBhbmQgcmUtYWNxdWlyZSB0
aGUgbG9ja3MgYWZ0ZXIuIEFmdGVyDQpyZS1hY3F1aXJpbmcgdGhlIGxvY2sgdGhlcmUgaXMgbm8g
bmVlZCB0byBjaGVjayBpZiBwZGV2LT52cGNpIGV4aXN0czoNCiAtIGluIGFwcGx5X21hcCBiZWNh
dXNlIG9mIHRoZSBjb250ZXh0IGl0IGlzIGNhbGxlZCAobm8gcmFjZSBjb25kaXRpb24NCiAgIHBv
c3NpYmxlKQ0KIC0gZm9yIE1TSS9NU0ktWCBkZWJ1ZyBjb2RlIGJlY2F1c2UgaXQgaXMgY2FsbGVk
IGF0IHRoZSBlbmQgb2YNCiAgIHBkZXYtPnZwY2kgYWNjZXNzIGFuZCBubyBmdXJ0aGVyIGFjY2Vz
cyB0byBwZGV2LT52cGNpIGlzIG1hZGUNCg0KNS4gVXNlIGQtPnBjaV9sb2NrIGFyb3VuZCBmb3Jf
ZWFjaF9wZGV2IGFuZCBwY2lfZ2V0X3BkZXZfYnlfZG9tYWluDQp3aGlsZSBhY2Nlc3NpbmcgcGRl
dnMgaW4gdnBjaSBjb2RlLg0KDQo2LiBXZSBhcmUgcmVtb3ZpbmcgbXVsdGlwbGUgQVNTRVJUKHBj
aWRldnNfbG9ja2VkKCkpIGluc3RhbmNlcyBiZWNhdXNlDQp0aGV5IGFyZSB0b28gc3RyaWN0IG5v
dzogdGhleSBzaG91bGQgYmUgY29ycmVjdGVkIHRvDQpBU1NFUlQocGNpZGV2c19sb2NrZWQoKSB8
fCByd19pc19sb2NrZWQoJmQtPnBjaV9sb2NrKSksIGJ1dCBwcm9ibGVtIGlzDQp0aGF0IG1lbnRp
b25lZCBpbnN0YW5jZXMgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIGRvbWFpbg0KcG9pbnRl
ciBhbmQgaXQgaXMgbm90IGZlYXNpYmxlIHRvIHBhc3MgYSBkb21haW4gcG9pbnRlciB0byBhIGZ1
bmN0aW9uDQpqdXN0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuDQoNClN1Z2dlc3RlZC1ieTogUm9n
ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQpTdWdnZXN0ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRy
dXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4NClNpZ25lZC1vZmYt
Ynk6IFZvbG9keW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4NCg0KLS0t
DQpDaGFuZ2VzIGluIHYxMToNCiAtIEZpeGVkIGNvbW1pdCBtZXNzYWdlIHJlZ2FyZGluZyBwb3Nz
aWJsZSBzcGlubG9ja3MNCiAtIFJlbW92ZWQgcGFyYW1ldGVyIGZyb20gYWxsb2NhdGVfYW5kX21h
cF9tc2lfcGlycSgpLCB3aGljaCB3YXMgYWRkZWQNCiBpbiB0aGUgcHJldiB2ZXJzaW9uLiBOb3cg
d2UgYXJlIHRha2luZyBwY2lkZXZzX2xvY2sgaW4NCiBwaHlzZGV2X21hcF9waXJxKCkNCiAtIFJl
dHVybmVkIEFTU0VSVCB0byBwY2lfZW5hYmxlX21zaQ0KIC0gRml4ZWQgY2FzZSB3aGVuIHdlIHRv
b2sgcmVhZCBsb2NrIGluc3RlYWQgb2Ygd3JpdGUgb25lDQogLSBGaXhlZCBsYWJlbCBpbmRlbnRh
dGlvbg0KDQpDaGFuZ2VzIGluIHYxMDoNCiAtIE1vdmVkIHByaW50ayBwYXMgbG9ja2VkIGFyZWEN
CiAtIFJldHVybmVkIGJhY2sgQVNTRVJUcw0KIC0gQWRkZWQgbmV3IHBhcmFtZXRlciB0byBhbGxv
Y2F0ZV9hbmRfbWFwX21zaV9waXJxKCkgc28gaXQga25vd3MgaWYNCiBpdCBzaG91bGQgdGFrZSB0
aGUgZ2xvYmFsIHBjaSBsb2NrDQogLSBBZGRlZCBjb21tZW50IGFib3V0IHBvc3NpYmxlIGltcHJv
dmVtZW50IGluIHZwY2lfd3JpdGUNCiAtIENoYW5nZWQgQVNTRVJUKHJ3X2lzX2xvY2tlZCgpKSB0
byByd19pc193cml0ZV9sb2NrZWQoKSBpbg0KICAgYXBwcm9wcmlhdGUgcGxhY2VzDQogLSBSZW5h
bWVkIHJlbGVhc2VfZG9tYWluX2xvY2tzKCkgdG8gcmVsZWFzZV9kb21haW5fd3JpdGVfbG9ja3Mo
KQ0KIC0gbW92ZWQgZG9tYWluX2RvbmUgbGFiZWwgaW4gdnBjaV9kdW1wX21zaSgpIHRvIGNvcnJl
Y3QgcGxhY2UNCkNoYW5nZXMgaW4gdjk6DQogLSBleHRlbmRlZCBsb2NrZWQgcmVnaW9uIHRvIHBy
b3RlY3QgdnBjaV9yZW1vdmVfZGV2aWNlIGFuZA0KICAgdnBjaV9hZGRfaGFuZGxlcnMoKSBjYWxs
cw0KIC0gdnBjaV93cml0ZSgpIHRha2VzIGxvY2sgaW4gdGhlIHdyaXRlIG1vZGUgdG8gcHJvdGVj
dA0KICAgcG90ZW50aWFsIGNhbGwgdG8gbW9kaWZ5X2JhcnMoKQ0KIC0gcmVuYW1lZCBsb2NrIHJl
bGVhc2luZyBmdW5jdGlvbg0KIC0gcmVtb3ZlZCBBU1NFUlQoKXMgZnJvbSBtc2kgY29kZQ0KIC0g
YWRkZWQgdHJ5bG9jayBpbiB2cGNpX2R1bXBfbXNpDQoNCkNoYW5nZXMgaW4gdjg6DQogLSBjaGFu
Z2VkIGQtPnZwY2lfbG9jayB0byBkLT5wY2lfbG9jaw0KIC0gaW50cm9kdWNpbmcgZC0+cGNpX2xv
Y2sgaW4gYSBzZXBhcmF0ZSBwYXRjaA0KIC0gZXh0ZW5kZWQgbG9ja2VkIHJlZ2lvbiBpbiB2cGNp
X3Byb2Nlc3NfcGVuZGluZw0KIC0gcmVtb3ZlZCBwY2lkZXZzX2xvY2tpcyB2cGNpX2R1bXBfbXNp
KCkNCiAtIHJlbW92ZWQgc29tZSBjaGFuZ2VzIGFzIHRoZXkgYXJlIG5vdCBuZWVkZWQgd2l0aA0K
ICAgdGhlIG5ldyBsb2NraW5nIHNjaGVtZQ0KIC0gYWRkZWQgaGFuZGxpbmcgZm9yIGh3ZG9tICYm
IGRvbV94ZW4gY2FzZQ0KLS0tDQogeGVuL2FyY2gveDg2L2h2bS92bXNpLmMgICAgICAgfCAyMiAr
KysrKysrLS0tLS0tLS0NCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyAgICB8ICAyIC0tDQog
eGVuL2FyY2gveDg2L2lycS5jICAgICAgICAgICAgfCAgOCArKystLS0NCiB4ZW4vYXJjaC94ODYv
bXNpLmMgICAgICAgICAgICB8IDEwICsrLS0tLS0NCiB4ZW4vYXJjaC94ODYvcGh5c2Rldi5jICAg
ICAgICB8ICAyICsrDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgfCAgOSArKystLS0N
CiB4ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jICAgICB8IDE4ICsrKysrKysrKysrKw0KIHhlbi9k
cml2ZXJzL3ZwY2kvbXNpLmMgICAgICAgIHwgMjggKysrKysrKysrKysrKysrKystLQ0KIHhlbi9k
cml2ZXJzL3ZwY2kvbXNpeC5jICAgICAgIHwgNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrLS0tLS0NCiB4ZW4vZHJpdmVycy92cGNpL3ZwY2kuYyAgICAgICB8IDUwICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKystLQ0KIDEwIGZpbGVzIGNoYW5nZWQsIDE2MCBpbnNlcnRpb25z
KCspLCA0MSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm1z
aS5jIGIveGVuL2FyY2gveDg2L2h2bS92bXNpLmMNCmluZGV4IDEyOGYyMzYzNjIuLjAzY2FmOTFi
ZWUgMTAwNjQ0DQotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYw0KKysrIGIveGVuL2FyY2gv
eDg2L2h2bS92bXNpLmMNCkBAIC00NjgsNyArNDY4LDcgQEAgaW50IG1zaXh0YmxfcHRfcmVnaXN0
ZXIoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHBpcnEgKnBpcnEsIHVpbnQ2NF90IGd0YWJsZSkN
CiAgICAgc3RydWN0IG1zaXh0YmxfZW50cnkgKmVudHJ5LCAqbmV3X2VudHJ5Ow0KICAgICBpbnQg
ciA9IC1FSU5WQUw7DQogDQotICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsNCisgICAgQVNT
RVJUKHBjaWRldnNfbG9ja2VkKCkgfHwgcndfaXNfbG9ja2VkKCZkLT5wY2lfbG9jaykpOw0KICAg
ICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZkLT5ldmVudF9sb2NrKSk7DQogDQogICAgIGlm
ICggIW1zaXh0YmxfaW5pdGlhbGlzZWQoZCkgKQ0KQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIG1z
aXh0YmxfcHRfdW5yZWdpc3RlcihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcGlycSAqcGlycSkN
CiAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXY7DQogICAgIHN0cnVjdCBtc2l4dGJsX2VudHJ5ICpl
bnRyeTsNCiANCi0gICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOw0KKyAgICBBU1NFUlQocGNp
ZGV2c19sb2NrZWQoKSB8fCByd19pc19sb2NrZWQoJmQtPnBjaV9sb2NrKSk7DQogICAgIEFTU0VS
VChyd19pc193cml0ZV9sb2NrZWQoJmQtPmV2ZW50X2xvY2spKTsNCiANCiAgICAgaWYgKCAhbXNp
eHRibF9pbml0aWFsaXNlZChkKSApDQpAQCAtNjg0LDcgKzY4NCw3IEBAIHN0YXRpYyBpbnQgdnBj
aV9tc2lfdXBkYXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MzJfdCBkYXRhLA0K
IHsNCiAgICAgdW5zaWduZWQgaW50IGk7DQogDQotICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgp
KTsNCisgICAgQVNTRVJUKHJ3X2lzX2xvY2tlZCgmcGRldi0+ZG9tYWluLT5wY2lfbG9jaykpOw0K
IA0KICAgICBpZiAoIChhZGRyZXNzICYgTVNJX0FERFJfQkFTRV9NQVNLKSAhPSBNU0lfQUREUl9I
RUFERVIgKQ0KICAgICB7DQpAQCAtNzI1LDggKzcyNSw4IEBAIHZvaWQgdnBjaV9tc2lfYXJjaF91
cGRhdGUoc3RydWN0IHZwY2lfbXNpICptc2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0K
ICAgICBpbnQgcmM7DQogDQogICAgIEFTU0VSVChtc2ktPmFyY2gucGlycSAhPSBJTlZBTElEX1BJ
UlEpOw0KKyAgICBBU1NFUlQocndfaXNfbG9ja2VkKCZwZGV2LT5kb21haW4tPnBjaV9sb2NrKSk7
DQogDQotICAgIHBjaWRldnNfbG9jaygpOw0KICAgICBmb3IgKCBpID0gMDsgaSA8IG1zaS0+dmVj
dG9ycyAmJiBtc2ktPmFyY2guYm91bmQ7IGkrKyApDQogICAgIHsNCiAgICAgICAgIHN0cnVjdCB4
ZW5fZG9tY3RsX2JpbmRfcHRfaXJxIHVuYmluZCA9IHsNCkBAIC03NDUsNyArNzQ1LDYgQEAgdm9p
ZCB2cGNpX21zaV9hcmNoX3VwZGF0ZShzdHJ1Y3QgdnBjaV9tc2kgKm1zaSwgY29uc3Qgc3RydWN0
IHBjaV9kZXYgKnBkZXYpDQogDQogICAgIG1zaS0+YXJjaC5ib3VuZCA9ICF2cGNpX21zaV91cGRh
dGUocGRldiwgbXNpLT5kYXRhLCBtc2ktPmFkZHJlc3MsDQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXNpLT52ZWN0b3JzLCBtc2ktPmFyY2gucGlycSwgbXNpLT5tYXNr
KTsNCi0gICAgcGNpZGV2c191bmxvY2soKTsNCiB9DQogDQogc3RhdGljIGludCB2cGNpX21zaV9l
bmFibGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBuciwNCkBAIC03
NzgsMTUgKzc3NywxNCBAQCBpbnQgdnBjaV9tc2lfYXJjaF9lbmFibGUoc3RydWN0IHZwY2lfbXNp
ICptc2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KICAgICBpbnQgcmM7DQogDQogICAg
IEFTU0VSVChtc2ktPmFyY2gucGlycSA9PSBJTlZBTElEX1BJUlEpOw0KKyAgICBBU1NFUlQocndf
aXNfbG9ja2VkKCZwZGV2LT5kb21haW4tPnBjaV9sb2NrKSk7DQogICAgIHJjID0gdnBjaV9tc2lf
ZW5hYmxlKHBkZXYsIHZlY3RvcnMsIDApOw0KICAgICBpZiAoIHJjIDwgMCApDQogICAgICAgICBy
ZXR1cm4gcmM7DQogICAgIG1zaS0+YXJjaC5waXJxID0gcmM7DQogDQotICAgIHBjaWRldnNfbG9j
aygpOw0KICAgICBtc2ktPmFyY2guYm91bmQgPSAhdnBjaV9tc2lfdXBkYXRlKHBkZXYsIG1zaS0+
ZGF0YSwgbXNpLT5hZGRyZXNzLCB2ZWN0b3JzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1zaS0+YXJjaC5waXJxLCBtc2ktPm1hc2spOw0KLSAgICBwY2lkZXZzX3Vu
bG9jaygpOw0KIA0KICAgICByZXR1cm4gMDsNCiB9DQpAQCAtNzk3LDggKzc5NSw4IEBAIHN0YXRp
YyB2b2lkIHZwY2lfbXNpX2Rpc2FibGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBw
aXJxLA0KICAgICB1bnNpZ25lZCBpbnQgaTsNCiANCiAgICAgQVNTRVJUKHBpcnEgIT0gSU5WQUxJ
RF9QSVJRKTsNCisgICAgQVNTRVJUKHJ3X2lzX2xvY2tlZCgmcGRldi0+ZG9tYWluLT5wY2lfbG9j
aykpOw0KIA0KLSAgICBwY2lkZXZzX2xvY2soKTsNCiAgICAgZm9yICggaSA9IDA7IGkgPCBuciAm
JiBib3VuZDsgaSsrICkNCiAgICAgew0KICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfYmluZF9w
dF9pcnEgYmluZCA9IHsNCkBAIC04MTQsNyArODEyLDYgQEAgc3RhdGljIHZvaWQgdnBjaV9tc2lf
ZGlzYWJsZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IHBpcnEsDQogICAgIHdyaXRl
X2xvY2soJnBkZXYtPmRvbWFpbi0+ZXZlbnRfbG9jayk7DQogICAgIHVubWFwX2RvbWFpbl9waXJx
KHBkZXYtPmRvbWFpbiwgcGlycSk7DQogICAgIHdyaXRlX3VubG9jaygmcGRldi0+ZG9tYWluLT5l
dmVudF9sb2NrKTsNCi0gICAgcGNpZGV2c191bmxvY2soKTsNCiB9DQogDQogdm9pZCB2cGNpX21z
aV9hcmNoX2Rpc2FibGUoc3RydWN0IHZwY2lfbXNpICptc2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2
ICpwZGV2KQ0KQEAgLTg1NCw2ICs4NTEsNyBAQCBpbnQgdnBjaV9tc2l4X2FyY2hfZW5hYmxlX2Vu
dHJ5KHN0cnVjdCB2cGNpX21zaXhfZW50cnkgKmVudHJ5LA0KICAgICBpbnQgcmM7DQogDQogICAg
IEFTU0VSVChlbnRyeS0+YXJjaC5waXJxID09IElOVkFMSURfUElSUSk7DQorICAgIEFTU0VSVChy
d19pc19sb2NrZWQoJnBkZXYtPmRvbWFpbi0+cGNpX2xvY2spKTsNCiAgICAgcmMgPSB2cGNpX21z
aV9lbmFibGUocGRldiwgdm1zaXhfZW50cnlfbnIocGRldi0+dnBjaS0+bXNpeCwgZW50cnkpLA0K
ICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9iYXNlKTsNCiAgICAgaWYgKCByYyA8IDAg
KQ0KQEAgLTg2MSw3ICs4NTksNiBAQCBpbnQgdnBjaV9tc2l4X2FyY2hfZW5hYmxlX2VudHJ5KHN0
cnVjdCB2cGNpX21zaXhfZW50cnkgKmVudHJ5LA0KIA0KICAgICBlbnRyeS0+YXJjaC5waXJxID0g
cmM7DQogDQotICAgIHBjaWRldnNfbG9jaygpOw0KICAgICByYyA9IHZwY2lfbXNpX3VwZGF0ZShw
ZGV2LCBlbnRyeS0+ZGF0YSwgZW50cnktPmFkZHIsIDEsIGVudHJ5LT5hcmNoLnBpcnEsDQogICAg
ICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5tYXNrZWQpOw0KICAgICBpZiAoIHJjICkNCkBA
IC04NjksNyArODY2LDYgQEAgaW50IHZwY2lfbXNpeF9hcmNoX2VuYWJsZV9lbnRyeShzdHJ1Y3Qg
dnBjaV9tc2l4X2VudHJ5ICplbnRyeSwNCiAgICAgICAgIHZwY2lfbXNpX2Rpc2FibGUocGRldiwg
ZW50cnktPmFyY2gucGlycSwgMSwgZmFsc2UpOw0KICAgICAgICAgZW50cnktPmFyY2gucGlycSA9
IElOVkFMSURfUElSUTsNCiAgICAgfQ0KLSAgICBwY2lkZXZzX3VubG9jaygpOw0KIA0KICAgICBy
ZXR1cm4gcmM7DQogfQ0KQEAgLTg5NSw2ICs4OTEsOCBAQCBpbnQgdnBjaV9tc2l4X2FyY2hfcHJp
bnQoY29uc3Qgc3RydWN0IHZwY2lfbXNpeCAqbXNpeCkNCiB7DQogICAgIHVuc2lnbmVkIGludCBp
Ow0KIA0KKyAgICBBU1NFUlQocndfaXNfbG9ja2VkKCZtc2l4LT5wZGV2LT5kb21haW4tPnBjaV9s
b2NrKSk7DQorDQogICAgIGZvciAoIGkgPSAwOyBpIDwgbXNpeC0+bWF4X2VudHJpZXM7IGkrKyAp
DQogICAgIHsNCiAgICAgICAgIGNvbnN0IHN0cnVjdCB2cGNpX21zaXhfZW50cnkgKmVudHJ5ID0g
Jm1zaXgtPmVudHJpZXNbaV07DQpAQCAtOTEzLDcgKzkxMSw5IEBAIGludCB2cGNpX21zaXhfYXJj
aF9wcmludChjb25zdCBzdHJ1Y3QgdnBjaV9tc2l4ICptc2l4KQ0KICAgICAgICAgICAgIHN0cnVj
dCBwY2lfZGV2ICpwZGV2ID0gbXNpeC0+cGRldjsNCiANCiAgICAgICAgICAgICBzcGluX3VubG9j
aygmbXNpeC0+cGRldi0+dnBjaS0+bG9jayk7DQorICAgICAgICAgICAgcmVhZF91bmxvY2soJnBk
ZXYtPmRvbWFpbi0+cGNpX2xvY2spOw0KICAgICAgICAgICAgIHByb2Nlc3NfcGVuZGluZ19zb2Z0
aXJxcygpOw0KKyAgICAgICAgICAgIHJlYWRfbG9jaygmcGRldi0+ZG9tYWluLT5wY2lfbG9jayk7
DQogICAgICAgICAgICAgLyogTkI6IHdlIGFzc3VtZSB0aGF0IHBkZXYgY2Fubm90IGdvIGF3YXkg
Zm9yIGFuIGFsaXZlIGRvbWFpbi4gKi8NCiAgICAgICAgICAgICBpZiAoICFwZGV2LT52cGNpIHx8
ICFzcGluX3RyeWxvY2soJnBkZXYtPnZwY2ktPmxvY2spICkNCiAgICAgICAgICAgICAgICAgcmV0
dXJuIC1FQlVTWTsNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hl
bi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jDQppbmRleCA1NjYzYmMwMTc4Li5kZDgzNmU0OWYzIDEw
MDY0NA0KLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMNCisrKyBiL3hlbi9hcmNoL3g4
Ni9odm0vdm14L3ZteC5jDQpAQCAtNDEzLDggKzQxMyw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sg
dm14X3BpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LA0KIA0KICAgICBzcGluX3Vu
bG9ja19pcnEoJmRlc2MtPmxvY2spOw0KIA0KLSAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7
DQotDQogICAgIHJldHVybiBpb21tdV91cGRhdGVfaXJlX2Zyb21fbXNpKG1zaV9kZXNjLCAmbXNp
X2Rlc2MtPm1zZyk7DQogDQogIHVubG9ja19vdXQ6DQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2
L2lycS5jIGIveGVuL2FyY2gveDg2L2lycS5jDQppbmRleCA1MGU0OWUxYTRiLi40ZDg5ZDlhZjk5
IDEwMDY0NA0KLS0tIGEveGVuL2FyY2gveDg2L2lycS5jDQorKysgYi94ZW4vYXJjaC94ODYvaXJx
LmMNCkBAIC0yMTY2LDcgKzIxNjYsNyBAQCBpbnQgbWFwX2RvbWFpbl9waXJxKA0KICAgICAgICAg
c3RydWN0IHBjaV9kZXYgKnBkZXY7DQogICAgICAgICB1bnNpZ25lZCBpbnQgbnIgPSAwOw0KIA0K
LSAgICAgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOw0KKyAgICAgICAgQVNTRVJUKHBjaWRl
dnNfbG9ja2VkKCkgfHwgcndfaXNfbG9ja2VkKCZkLT5wY2lfbG9jaykpOw0KIA0KICAgICAgICAg
cmV0ID0gLUVOT0RFVjsNCiAgICAgICAgIGlmICggIWNwdV9oYXNfYXBpYyApDQpAQCAtMjMyMyw3
ICsyMzIzLDcgQEAgaW50IHVubWFwX2RvbWFpbl9waXJxKHN0cnVjdCBkb21haW4gKmQsIGludCBw
aXJxKQ0KICAgICBpZiAoIChwaXJxIDwgMCkgfHwgKHBpcnEgPj0gZC0+bnJfcGlycXMpICkNCiAg
ICAgICAgIHJldHVybiAtRUlOVkFMOw0KIA0KLSAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7
DQorICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpIHx8IHJ3X2lzX2xvY2tlZCgmZC0+cGNpX2xv
Y2spKTsNCiAgICAgQVNTRVJUKHJ3X2lzX3dyaXRlX2xvY2tlZCgmZC0+ZXZlbnRfbG9jaykpOw0K
IA0KICAgICBpbmZvID0gcGlycV9pbmZvKGQsIHBpcnEpOw0KQEAgLTI4ODgsNiArMjg4OCw4IEBA
IGludCBhbGxvY2F0ZV9hbmRfbWFwX21zaV9waXJxKHN0cnVjdCBkb21haW4gKmQsIGludCBpbmRl
eCwgaW50ICpwaXJxX3AsDQogew0KICAgICBpbnQgaXJxLCBwaXJxLCByZXQ7DQogDQorICAgIEFT
U0VSVChwY2lkZXZzX2xvY2tlZCgpIHx8IHJ3X2lzX2xvY2tlZCgmZC0+cGNpX2xvY2spKTsNCisN
CiAgICAgc3dpdGNoICggdHlwZSApDQogICAgIHsNCiAgICAgY2FzZSBNQVBfUElSUV9UWVBFX01T
SToNCkBAIC0yOTE3LDcgKzI5MTksNiBAQCBpbnQgYWxsb2NhdGVfYW5kX21hcF9tc2lfcGlycShz
dHJ1Y3QgZG9tYWluICpkLCBpbnQgaW5kZXgsIGludCAqcGlycV9wLA0KIA0KICAgICBtc2ktPmly
cSA9IGlycTsNCiANCi0gICAgcGNpZGV2c19sb2NrKCk7DQogICAgIC8qIFZlcmlmeSBvciBnZXQg
cGlycS4gKi8NCiAgICAgd3JpdGVfbG9jaygmZC0+ZXZlbnRfbG9jayk7DQogICAgIHBpcnEgPSBh
bGxvY2F0ZV9waXJxKGQsIGluZGV4LCAqcGlycV9wLCBpcnEsIHR5cGUsICZtc2ktPmVudHJ5X25y
KTsNCkBAIC0yOTMzLDcgKzI5MzQsNiBAQCBpbnQgYWxsb2NhdGVfYW5kX21hcF9tc2lfcGlycShz
dHJ1Y3QgZG9tYWluICpkLCBpbnQgaW5kZXgsIGludCAqcGlycV9wLA0KIA0KICBkb25lOg0KICAg
ICB3cml0ZV91bmxvY2soJmQtPmV2ZW50X2xvY2spOw0KLSAgICBwY2lkZXZzX3VubG9jaygpOw0K
ICAgICBpZiAoIHJldCApDQogICAgIHsNCiAgICAgICAgIHN3aXRjaCAoIHR5cGUgKQ0KZGlmZiAt
LWdpdCBhL3hlbi9hcmNoL3g4Ni9tc2kuYyBiL3hlbi9hcmNoL3g4Ni9tc2kuYw0KaW5kZXggMzM1
YzA4NjhhMi4uNmE1NDg2MTFhNSAxMDA2NDQNCi0tLSBhL3hlbi9hcmNoL3g4Ni9tc2kuYw0KKysr
IGIveGVuL2FyY2gveDg2L21zaS5jDQpAQCAtNjAyLDcgKzYwMiw3IEBAIHN0YXRpYyBpbnQgbXNp
X2NhcGFiaWxpdHlfaW5pdChzdHJ1Y3QgcGNpX2RldiAqZGV2LA0KICAgICB1bnNpZ25lZCBpbnQg
aSwgbXBvczsNCiAgICAgdWludDE2X3QgY29udHJvbDsNCiANCi0gICAgQVNTRVJUKHBjaWRldnNf
bG9ja2VkKCkpOw0KKyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSB8fCByd19pc19sb2NrZWQo
JmRldi0+ZG9tYWluLT5wY2lfbG9jaykpOw0KICAgICBwb3MgPSBwY2lfZmluZF9jYXBfb2Zmc2V0
KGRldi0+c2JkZiwgUENJX0NBUF9JRF9NU0kpOw0KICAgICBpZiAoICFwb3MgKQ0KICAgICAgICAg
cmV0dXJuIC1FTk9ERVY7DQpAQCAtNzcxLDcgKzc3MSw3IEBAIHN0YXRpYyBpbnQgbXNpeF9jYXBh
YmlsaXR5X2luaXQoc3RydWN0IHBjaV9kZXYgKmRldiwNCiAgICAgaWYgKCAhcG9zICkNCiAgICAg
ICAgIHJldHVybiAtRU5PREVWOw0KIA0KLSAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7DQor
ICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpIHx8IHJ3X2lzX2xvY2tlZCgmZGV2LT5kb21haW4t
PnBjaV9sb2NrKSk7DQogDQogICAgIGNvbnRyb2wgPSBwY2lfY29uZl9yZWFkMTYoZGV2LT5zYmRm
LCBtc2l4X2NvbnRyb2xfcmVnKHBvcykpOw0KICAgICAvKg0KQEAgLTk4OCw4ICs5ODgsNiBAQCBz
dGF0aWMgaW50IF9fcGNpX2VuYWJsZV9tc2koc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBt
c2lfaW5mbyAqbXNpLA0KIHsNCiAgICAgc3RydWN0IG1zaV9kZXNjICpvbGRfZGVzYzsNCiANCi0g
ICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOw0KLQ0KICAgICBpZiAoICFwZGV2ICkNCiAgICAg
ICAgIHJldHVybiAtRU5PREVWOw0KIA0KQEAgLTEwNDMsOCArMTA0MSw2IEBAIHN0YXRpYyBpbnQg
X19wY2lfZW5hYmxlX21zaXgoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBtc2lfaW5mbyAq
bXNpLA0KIHsNCiAgICAgc3RydWN0IG1zaV9kZXNjICpvbGRfZGVzYzsNCiANCi0gICAgQVNTRVJU
KHBjaWRldnNfbG9ja2VkKCkpOw0KLQ0KICAgICBpZiAoICFwZGV2IHx8ICFwZGV2LT5tc2l4ICkN
CiAgICAgICAgIHJldHVybiAtRU5PREVWOw0KIA0KQEAgLTExNTQsNyArMTE1MCw3IEBAIGludCBw
Y2lfcHJlcGFyZV9tc2l4KHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sIGJvb2wgb2ZmKQ0KIGlu
dCBwY2lfZW5hYmxlX21zaShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IG1zaV9pbmZvICpt
c2ksDQogICAgICAgICAgICAgICAgICAgIHN0cnVjdCBtc2lfZGVzYyAqKmRlc2MpDQogew0KLSAg
ICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7DQorICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgp
IHx8IHJ3X2lzX2xvY2tlZCgmcGRldi0+ZG9tYWluLT5wY2lfbG9jaykpOw0KIA0KICAgICBpZiAo
ICF1c2VfbXNpICkNCiAgICAgICAgIHJldHVybiAtRVBFUk07DQpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L3BoeXNkZXYuYyBiL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMNCmluZGV4IDQ3YzRkYTBh
ZjcuLjM2OWM5ZTc4OGMgMTAwNjQ0DQotLS0gYS94ZW4vYXJjaC94ODYvcGh5c2Rldi5jDQorKysg
Yi94ZW4vYXJjaC94ODYvcGh5c2Rldi5jDQpAQCAtMTIzLDcgKzEyMyw5IEBAIGludCBwaHlzZGV2
X21hcF9waXJxKGRvbWlkX3QgZG9taWQsIGludCB0eXBlLCBpbnQgKmluZGV4LCBpbnQgKnBpcnFf
cCwNCiANCiAgICAgY2FzZSBNQVBfUElSUV9UWVBFX01TSToNCiAgICAgY2FzZSBNQVBfUElSUV9U
WVBFX01VTFRJX01TSToNCisgICAgICAgIHBjaWRldnNfbG9jaygpOw0KICAgICAgICAgcmV0ID0g
YWxsb2NhdGVfYW5kX21hcF9tc2lfcGlycShkLCAqaW5kZXgsIHBpcnFfcCwgdHlwZSwgbXNpKTsN
CisgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7DQogICAgICAgICBicmVhazsNCiANCiAgICAgZGVm
YXVsdDoNCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyBiL3hlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jDQppbmRleCBiOGFkNGZhMDdjLi4xODJkYTQ1YWNiIDEw
MDY0NA0KLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMNCisrKyBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jDQpAQCAtNzUwLDcgKzc1MCw2IEBAIGludCBwY2lfYWRkX2Rl
dmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLA0KICAgICAgICAgcGRldi0+ZG9tYWluID0g
aGFyZHdhcmVfZG9tYWluOw0KICAgICAgICAgd3JpdGVfbG9jaygmaGFyZHdhcmVfZG9tYWluLT5w
Y2lfbG9jayk7DQogICAgICAgICBsaXN0X2FkZCgmcGRldi0+ZG9tYWluX2xpc3QsICZoYXJkd2Fy
ZV9kb21haW4tPnBkZXZfbGlzdCk7DQotICAgICAgICB3cml0ZV91bmxvY2soJmhhcmR3YXJlX2Rv
bWFpbi0+cGNpX2xvY2spOw0KIA0KICAgICAgICAgLyoNCiAgICAgICAgICAqIEZvciBkZXZpY2Vz
IG5vdCBkaXNjb3ZlcmVkIGJ5IFhlbiBkdXJpbmcgYm9vdCwgYWRkIHZQQ0kgaGFuZGxlcnMNCkBA
IC03NTksMTggKzc1OCwxOCBAQCBpbnQgcGNpX2FkZF9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1
OCBkZXZmbiwNCiAgICAgICAgIHJldCA9IHZwY2lfYWRkX2hhbmRsZXJzKHBkZXYpOw0KICAgICAg
ICAgaWYgKCByZXQgKQ0KICAgICAgICAgew0KLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJS
ICJTZXR1cCBvZiB2UENJIGZhaWxlZDogJWRcbiIsIHJldCk7DQotICAgICAgICAgICAgd3JpdGVf
bG9jaygmaGFyZHdhcmVfZG9tYWluLT5wY2lfbG9jayk7DQogICAgICAgICAgICAgbGlzdF9kZWwo
JnBkZXYtPmRvbWFpbl9saXN0KTsNCiAgICAgICAgICAgICB3cml0ZV91bmxvY2soJmhhcmR3YXJl
X2RvbWFpbi0+cGNpX2xvY2spOw0KICAgICAgICAgICAgIHBkZXYtPmRvbWFpbiA9IE5VTEw7DQor
ICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIlNldHVwIG9mIHZQQ0kgZmFpbGVkOiAlZFxu
IiwgcmV0KTsNCiAgICAgICAgICAgICBnb3RvIG91dDsNCiAgICAgICAgIH0NCisgICAgICAgIHdy
aXRlX3VubG9jaygmaGFyZHdhcmVfZG9tYWluLT5wY2lfbG9jayk7DQogICAgICAgICByZXQgPSBp
b21tdV9hZGRfZGV2aWNlKHBkZXYpOw0KICAgICAgICAgaWYgKCByZXQgKQ0KICAgICAgICAgew0K
LSAgICAgICAgICAgIHZwY2lfcmVtb3ZlX2RldmljZShwZGV2KTsNCiAgICAgICAgICAgICB3cml0
ZV9sb2NrKCZoYXJkd2FyZV9kb21haW4tPnBjaV9sb2NrKTsNCisgICAgICAgICAgICB2cGNpX3Jl
bW92ZV9kZXZpY2UocGRldik7DQogICAgICAgICAgICAgbGlzdF9kZWwoJnBkZXYtPmRvbWFpbl9s
aXN0KTsNCiAgICAgICAgICAgICB3cml0ZV91bmxvY2soJmhhcmR3YXJlX2RvbWFpbi0+cGNpX2xv
Y2spOw0KICAgICAgICAgICAgIHBkZXYtPmRvbWFpbiA9IE5VTEw7DQpAQCAtMTE0Niw3ICsxMTQ1
LDkgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IHNldHVwX29uZV9od2RvbV9kZXZpY2UoY29u
c3Qgc3RydWN0IHNldHVwX2h3ZG9tICpjdHh0LA0KICAgICB9IHdoaWxlICggZGV2Zm4gIT0gcGRl
di0+ZGV2Zm4gJiYNCiAgICAgICAgICAgICAgIFBDSV9TTE9UKGRldmZuKSA9PSBQQ0lfU0xPVChw
ZGV2LT5kZXZmbikgKTsNCiANCisgICAgd3JpdGVfbG9jaygmY3R4dC0+ZC0+cGNpX2xvY2spOw0K
ICAgICBlcnIgPSB2cGNpX2FkZF9oYW5kbGVycyhwZGV2KTsNCisgICAgd3JpdGVfdW5sb2NrKCZj
dHh0LT5kLT5wY2lfbG9jayk7DQogICAgIGlmICggZXJyICkNCiAgICAgICAgIHByaW50ayhYRU5M
T0dfRVJSICJzZXR1cCBvZiB2UENJIGZvciBkJWQgZmFpbGVkOiAlZFxuIiwNCiAgICAgICAgICAg
ICAgICBjdHh0LT5kLT5kb21haW5faWQsIGVycik7DQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMv
dnBjaS9oZWFkZXIuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCmluZGV4IDc2N2MxYmE3
MTguLmM4NmQzM2QwY2QgMTAwNjQ0DQotLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQor
KysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQpAQCAtMTcyLDYgKzE3Miw3IEBAIGJvb2wg
dnBjaV9wcm9jZXNzX3BlbmRpbmcoc3RydWN0IHZjcHUgKnYpDQogICAgICAgICBpZiAoIHJjID09
IC1FUkVTVEFSVCApDQogICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogDQorICAgICAgICB3cml0
ZV9sb2NrKCZ2LT5kb21haW4tPnBjaV9sb2NrKTsNCiAgICAgICAgIHNwaW5fbG9jaygmdi0+dnBj
aS5wZGV2LT52cGNpLT5sb2NrKTsNCiAgICAgICAgIC8qIERpc2FibGUgbWVtb3J5IGRlY29kaW5n
IHVuY29uZGl0aW9uYWxseSBvbiBmYWlsdXJlLiAqLw0KICAgICAgICAgbW9kaWZ5X2RlY29kaW5n
KHYtPnZwY2kucGRldiwNCkBAIC0xOTAsNiArMTkxLDcgQEAgYm9vbCB2cGNpX3Byb2Nlc3NfcGVu
ZGluZyhzdHJ1Y3QgdmNwdSAqdikNCiAgICAgICAgICAgICAgKiBmYWlsdXJlLg0KICAgICAgICAg
ICAgICAqLw0KICAgICAgICAgICAgIHZwY2lfcmVtb3ZlX2RldmljZSh2LT52cGNpLnBkZXYpOw0K
KyAgICAgICAgd3JpdGVfdW5sb2NrKCZ2LT5kb21haW4tPnBjaV9sb2NrKTsNCiAgICAgfQ0KIA0K
ICAgICByZXR1cm4gZmFsc2U7DQpAQCAtMjAxLDggKzIwMywyMCBAQCBzdGF0aWMgaW50IF9faW5p
dCBhcHBseV9tYXAoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYs
DQogICAgIHN0cnVjdCBtYXBfZGF0YSBkYXRhID0geyAuZCA9IGQsIC5tYXAgPSB0cnVlIH07DQog
ICAgIGludCByYzsNCiANCisgICAgQVNTRVJUKHJ3X2lzX3dyaXRlX2xvY2tlZCgmZC0+cGNpX2xv
Y2spKTsNCisNCiAgICAgd2hpbGUgKCAocmMgPSByYW5nZXNldF9jb25zdW1lX3JhbmdlcyhtZW0s
IG1hcF9yYW5nZSwgJmRhdGEpKSA9PSAtRVJFU1RBUlQgKQ0KKyAgICB7DQorICAgICAgICAvKg0K
KyAgICAgICAgICogSXQncyBzYWZlIHRvIGRyb3AgYW5kIHJlYWNxdWlyZSB0aGUgbG9jayBpbiB0
aGlzIGNvbnRleHQNCisgICAgICAgICAqIHdpdGhvdXQgcmlza2luZyBwZGV2IGRpc2FwcGVhcmlu
ZyBiZWNhdXNlIGRldmljZXMgY2Fubm90IGJlDQorICAgICAgICAgKiByZW1vdmVkIHVudGlsIHRo
ZSBpbml0aWFsIGRvbWFpbiBoYXMgYmVlbiBzdGFydGVkLg0KKyAgICAgICAgICovDQorICAgICAg
ICB3cml0ZV91bmxvY2soJmQtPnBjaV9sb2NrKTsNCiAgICAgICAgIHByb2Nlc3NfcGVuZGluZ19z
b2Z0aXJxcygpOw0KKyAgICAgICAgd3JpdGVfbG9jaygmZC0+cGNpX2xvY2spOw0KKyAgICB9DQor
DQogICAgIHJhbmdlc2V0X2Rlc3Ryb3kobWVtKTsNCiAgICAgaWYgKCAhcmMgKQ0KICAgICAgICAg
bW9kaWZ5X2RlY29kaW5nKHBkZXYsIGNtZCwgZmFsc2UpOw0KQEAgLTI0Myw2ICsyNTcsOCBAQCBz
dGF0aWMgaW50IG1vZGlmeV9iYXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MTZf
dCBjbWQsIGJvb2wgcm9tX29ubHkpDQogICAgIHVuc2lnbmVkIGludCBpOw0KICAgICBpbnQgcmM7
DQogDQorICAgIEFTU0VSVChyd19pc193cml0ZV9sb2NrZWQoJnBkZXYtPmRvbWFpbi0+cGNpX2xv
Y2spKTsNCisNCiAgICAgaWYgKCAhbWVtICkNCiAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KIA0K
QEAgLTUyMiw2ICs1MzgsOCBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGluaXRfYmFycyhzdHJ1Y3Qg
cGNpX2RldiAqcGRldikNCiAgICAgc3RydWN0IHZwY2lfYmFyICpiYXJzID0gaGVhZGVyLT5iYXJz
Ow0KICAgICBpbnQgcmM7DQogDQorICAgIEFTU0VSVChyd19pc193cml0ZV9sb2NrZWQoJnBkZXYt
PmRvbWFpbi0+cGNpX2xvY2spKTsNCisNCiAgICAgc3dpdGNoICggcGNpX2NvbmZfcmVhZDgocGRl
di0+c2JkZiwgUENJX0hFQURFUl9UWVBFKSAmIDB4N2YgKQ0KICAgICB7DQogICAgIGNhc2UgUENJ
X0hFQURFUl9UWVBFX05PUk1BTDoNCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL21zaS5j
IGIveGVuL2RyaXZlcnMvdnBjaS9tc2kuYw0KaW5kZXggYTI1M2NjYmQ3ZC4uNmZmNzFlNWY5YSAx
MDA2NDQNCi0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNpLmMNCisrKyBiL3hlbi9kcml2ZXJzL3Zw
Y2kvbXNpLmMNCkBAIC0yNjMsNyArMjYzLDcgQEAgUkVHSVNURVJfVlBDSV9JTklUKGluaXRfbXNp
LCBWUENJX1BSSU9SSVRZX0xPVyk7DQogDQogdm9pZCB2cGNpX2R1bXBfbXNpKHZvaWQpDQogew0K
LSAgICBjb25zdCBzdHJ1Y3QgZG9tYWluICpkOw0KKyAgICBzdHJ1Y3QgZG9tYWluICpkOw0KIA0K
ICAgICByY3VfcmVhZF9sb2NrKCZkb21saXN0X3JlYWRfbG9jayk7DQogICAgIGZvcl9lYWNoX2Rv
bWFpbiAoIGQgKQ0KQEAgLTI3NSw2ICsyNzUsOSBAQCB2b2lkIHZwY2lfZHVtcF9tc2kodm9pZCkN
CiANCiAgICAgICAgIHByaW50aygidlBDSSBNU0kvTVNJLVggZCVkXG4iLCBkLT5kb21haW5faWQp
Ow0KIA0KKyAgICAgICAgaWYgKCAhcmVhZF90cnlsb2NrKCZkLT5wY2lfbG9jaykgKQ0KKyAgICAg
ICAgICAgIGNvbnRpbnVlOw0KKw0KICAgICAgICAgZm9yX2VhY2hfcGRldiAoIGQsIHBkZXYgKQ0K
ICAgICAgICAgew0KICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2cGNpX21zaSAqbXNpOw0KQEAg
LTMxNiwxNCArMzE5LDMzIEBAIHZvaWQgdnBjaV9kdW1wX21zaSh2b2lkKQ0KICAgICAgICAgICAg
ICAgICAgICAgICogaG9sZGluZyB0aGUgbG9jay4NCiAgICAgICAgICAgICAgICAgICAgICAqLw0K
ICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKCJ1bmFibGUgdG8gcHJpbnQgYWxsIE1TSS1YIGVu
dHJpZXM6ICVkXG4iLCByYyk7DQotICAgICAgICAgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdf
c29mdGlycXMoKTsNCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAg
ICAgICAgICAgZ290byBwZGV2X2RvbmU7DQogICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg
ICB9DQogDQogICAgICAgICAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0KKyAg
ICAgICAgcGRldl9kb25lOg0KKyAgICAgICAgICAgIC8qDQorICAgICAgICAgICAgICogVW5sb2Nr
IGxvY2sgdG8gcHJvY2VzcyBwZW5kaW5nIHNvZnRpcnFzLiBUaGlzIGlzDQorICAgICAgICAgICAg
ICogcG90ZW50aWFsbHkgdW5zYWZlLCBhcyBkLT5wZGV2X2xpc3QgY2FuIGJlIGNoYW5nZWQgaW4N
CisgICAgICAgICAgICAgKiBtZWFudGltZS4NCisgICAgICAgICAgICAgKi8NCisgICAgICAgICAg
ICByZWFkX3VubG9jaygmZC0+cGNpX2xvY2spOw0KICAgICAgICAgICAgIHByb2Nlc3NfcGVuZGlu
Z19zb2Z0aXJxcygpOw0KKyAgICAgICAgICAgIGlmICggIXJlYWRfdHJ5bG9jaygmZC0+cGNpX2xv
Y2spICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIHByaW50aygidW5hYmxlIHRv
IGFjY2VzcyBvdGhlciBkZXZpY2VzIGZvciB0aGUgZG9tYWluXG4iKTsNCisgICAgICAgICAgICAg
ICAgZ290byBkb21haW5fZG9uZTsNCisgICAgICAgICAgICB9DQogICAgICAgICB9DQorICAgICAg
ICByZWFkX3VubG9jaygmZC0+cGNpX2xvY2spOw0KKyAgICBkb21haW5fZG9uZToNCisgICAgICAg
IC8qDQorICAgICAgICAgKiBXZSBuZWVkIHRoaXMgbGFiZWwgYXQgdGhlIGVuZCBvZiB0aGUgbG9v
cCwgYnV0IHNvbWUNCisgICAgICAgICAqIGNvbXBpbGVycyBtaWdodCBub3QgYmUgaGFwcHkgYWJv
dXQgbGFiZWwgYXQgdGhlIGVuZCBvZiB0aGUNCisgICAgICAgICAqIGNvbXBvdW5kIHN0YXRlbWVu
dCBzbyB3ZSBhZGRpbmcgYW4gZW1wdHkgc3RhdGVtZW50IGhlcmUuDQorICAgICAgICAgKi8NCisg
ICAgICAgIDsNCiAgICAgfQ0KICAgICByY3VfcmVhZF91bmxvY2soJmRvbWxpc3RfcmVhZF9sb2Nr
KTsNCiB9DQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBjaS9tc2l4LmMgYi94ZW4vZHJpdmVy
cy92cGNpL21zaXguYw0KaW5kZXggZDExMjZhNDE3ZC4uYjZhYmFiNDdlZiAxMDA2NDQNCi0tLSBh
L3hlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jDQorKysgYi94ZW4vZHJpdmVycy92cGNpL21zaXguYw0K
QEAgLTE0Nyw2ICsxNDcsOCBAQCBzdGF0aWMgc3RydWN0IHZwY2lfbXNpeCAqbXNpeF9maW5kKGNv
bnN0IHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgYWRkcikNCiB7DQogICAgIHN0cnVj
dCB2cGNpX21zaXggKm1zaXg7DQogDQorICAgIEFTU0VSVChyd19pc19sb2NrZWQoJmQtPnBjaV9s
b2NrKSk7DQorDQogICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBtc2l4LCAmZC0+YXJjaC5odm0u
bXNpeF90YWJsZXMsIG5leHQgKQ0KICAgICB7DQogICAgICAgICBjb25zdCBzdHJ1Y3QgdnBjaV9i
YXIgKmJhcnMgPSBtc2l4LT5wZGV2LT52cGNpLT5oZWFkZXIuYmFyczsNCkBAIC0xNjMsNyArMTY1
LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgdnBjaV9tc2l4ICptc2l4X2ZpbmQoY29uc3Qgc3RydWN0IGRv
bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBhZGRyKQ0KIA0KIHN0YXRpYyBpbnQgY2ZfY2hlY2sgbXNp
eF9hY2NlcHQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgYWRkcikNCiB7DQotICAgIHJl
dHVybiAhIW1zaXhfZmluZCh2LT5kb21haW4sIGFkZHIpOw0KKyAgICBpbnQgcmM7DQorDQorICAg
IHJlYWRfbG9jaygmdi0+ZG9tYWluLT5wY2lfbG9jayk7DQorICAgIHJjID0gISFtc2l4X2ZpbmQo
di0+ZG9tYWluLCBhZGRyKTsNCisgICAgcmVhZF91bmxvY2soJnYtPmRvbWFpbi0+cGNpX2xvY2sp
Ow0KKw0KKyAgICByZXR1cm4gcmM7DQogfQ0KIA0KIHN0YXRpYyBib29sIGFjY2Vzc19hbGxvd2Vk
KGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBsb25nIGFkZHIsDQpAQCAtMzU4
LDIxICszNjYsMzUgQEAgc3RhdGljIGludCBhZGphY2VudF9yZWFkKGNvbnN0IHN0cnVjdCBkb21h
aW4gKmQsIGNvbnN0IHN0cnVjdCB2cGNpX21zaXggKm1zaXgsDQogc3RhdGljIGludCBjZl9jaGVj
ayBtc2l4X3JlYWQoDQogICAgIHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIsIHVu
c2lnbmVkIGludCBsZW4sIHVuc2lnbmVkIGxvbmcgKmRhdGEpDQogew0KLSAgICBjb25zdCBzdHJ1
Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOw0KLSAgICBzdHJ1Y3QgdnBjaV9tc2l4ICptc2l4ID0g
bXNpeF9maW5kKGQsIGFkZHIpOw0KKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOw0K
KyAgICBzdHJ1Y3QgdnBjaV9tc2l4ICptc2l4Ow0KICAgICBjb25zdCBzdHJ1Y3QgdnBjaV9tc2l4
X2VudHJ5ICplbnRyeTsNCiAgICAgdW5zaWduZWQgaW50IG9mZnNldDsNCiANCiAgICAgKmRhdGEg
PSB+MFVMOw0KIA0KKyAgICByZWFkX2xvY2soJmQtPnBjaV9sb2NrKTsNCisNCisgICAgbXNpeCA9
IG1zaXhfZmluZChkLCBhZGRyKTsNCiAgICAgaWYgKCAhbXNpeCApDQorICAgIHsNCisgICAgICAg
IHJlYWRfdW5sb2NrKCZkLT5wY2lfbG9jayk7DQogICAgICAgICByZXR1cm4gWDg2RU1VTF9SRVRS
WTsNCisgICAgfQ0KIA0KICAgICBpZiAoIGFkamFjZW50X2hhbmRsZShtc2l4LCBhZGRyKSApDQot
ICAgICAgICByZXR1cm4gYWRqYWNlbnRfcmVhZChkLCBtc2l4LCBhZGRyLCBsZW4sIGRhdGEpOw0K
KyAgICB7DQorICAgICAgICBpbnQgcmMgPSBhZGphY2VudF9yZWFkKGQsIG1zaXgsIGFkZHIsIGxl
biwgZGF0YSk7DQorDQorICAgICAgICByZWFkX3VubG9jaygmZC0+cGNpX2xvY2spOw0KKyAgICAg
ICAgcmV0dXJuIHJjOw0KKyAgICB9DQogDQogICAgIGlmICggIWFjY2Vzc19hbGxvd2VkKG1zaXgt
PnBkZXYsIGFkZHIsIGxlbikgKQ0KKyAgICB7DQorICAgICAgICByZWFkX3VubG9jaygmZC0+cGNp
X2xvY2spOw0KICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsNCisgICAgfQ0KIA0KICAgICBz
cGluX2xvY2soJm1zaXgtPnBkZXYtPnZwY2ktPmxvY2spOw0KICAgICBlbnRyeSA9IGdldF9lbnRy
eShtc2l4LCBhZGRyKTsNCkBAIC00MDQsNiArNDI2LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBt
c2l4X3JlYWQoDQogICAgICAgICBicmVhazsNCiAgICAgfQ0KICAgICBzcGluX3VubG9jaygmbXNp
eC0+cGRldi0+dnBjaS0+bG9jayk7DQorICAgIHJlYWRfdW5sb2NrKCZkLT5wY2lfbG9jayk7DQog
DQogICAgIHJldHVybiBYODZFTVVMX09LQVk7DQogfQ0KQEAgLTQ5MSwxOSArNTE0LDMzIEBAIHN0
YXRpYyBpbnQgYWRqYWNlbnRfd3JpdGUoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qgc3Ry
dWN0IHZwY2lfbXNpeCAqbXNpeCwNCiBzdGF0aWMgaW50IGNmX2NoZWNrIG1zaXhfd3JpdGUoDQog
ICAgIHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGludCBsZW4s
IHVuc2lnbmVkIGxvbmcgZGF0YSkNCiB7DQotICAgIGNvbnN0IHN0cnVjdCBkb21haW4gKmQgPSB2
LT5kb21haW47DQotICAgIHN0cnVjdCB2cGNpX21zaXggKm1zaXggPSBtc2l4X2ZpbmQoZCwgYWRk
cik7DQorICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47DQorICAgIHN0cnVjdCB2cGNp
X21zaXggKm1zaXg7DQogICAgIHN0cnVjdCB2cGNpX21zaXhfZW50cnkgKmVudHJ5Ow0KICAgICB1
bnNpZ25lZCBpbnQgb2Zmc2V0Ow0KIA0KKyAgICByZWFkX2xvY2soJmQtPnBjaV9sb2NrKTsNCisN
CisgICAgbXNpeCA9IG1zaXhfZmluZChkLCBhZGRyKTsNCiAgICAgaWYgKCAhbXNpeCApDQorICAg
IHsNCisgICAgICAgIHJlYWRfdW5sb2NrKCZkLT5wY2lfbG9jayk7DQogICAgICAgICByZXR1cm4g
WDg2RU1VTF9SRVRSWTsNCisgICAgfQ0KIA0KICAgICBpZiAoIGFkamFjZW50X2hhbmRsZShtc2l4
LCBhZGRyKSApDQotICAgICAgICByZXR1cm4gYWRqYWNlbnRfd3JpdGUoZCwgbXNpeCwgYWRkciwg
bGVuLCBkYXRhKTsNCisgICAgew0KKyAgICAgICAgaW50IHJjID0gYWRqYWNlbnRfd3JpdGUoZCwg
bXNpeCwgYWRkciwgbGVuLCBkYXRhKTsNCisNCisgICAgICAgIHJlYWRfdW5sb2NrKCZkLT5wY2lf
bG9jayk7DQorICAgICAgICByZXR1cm4gcmM7DQorICAgIH0NCiANCiAgICAgaWYgKCAhYWNjZXNz
X2FsbG93ZWQobXNpeC0+cGRldiwgYWRkciwgbGVuKSApDQorICAgIHsNCisgICAgICAgIHJlYWRf
dW5sb2NrKCZkLT5wY2lfbG9jayk7DQogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOw0KKyAg
ICB9DQogDQogICAgIHNwaW5fbG9jaygmbXNpeC0+cGRldi0+dnBjaS0+bG9jayk7DQogICAgIGVu
dHJ5ID0gZ2V0X2VudHJ5KG1zaXgsIGFkZHIpOw0KQEAgLTU3OSw2ICs2MTYsNyBAQCBzdGF0aWMg
aW50IGNmX2NoZWNrIG1zaXhfd3JpdGUoDQogICAgICAgICBicmVhazsNCiAgICAgfQ0KICAgICBz
cGluX3VubG9jaygmbXNpeC0+cGRldi0+dnBjaS0+bG9jayk7DQorICAgIHJlYWRfdW5sb2NrKCZk
LT5wY2lfbG9jayk7DQogDQogICAgIHJldHVybiBYODZFTVVMX09LQVk7DQogfQ0KZGlmZiAtLWdp
dCBhL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jIGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCmlu
ZGV4IDNiZWM5YTQxNTMuLjBiNjk0YmVhZGYgMTAwNjQ0DQotLS0gYS94ZW4vZHJpdmVycy92cGNp
L3ZwY2kuYw0KKysrIGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCkBAIC0zOCw2ICszOCw4IEBA
IGV4dGVybiB2cGNpX3JlZ2lzdGVyX2luaXRfdCAqY29uc3QgX19lbmRfdnBjaV9hcnJheVtdOw0K
IA0KIHZvaWQgdnBjaV9yZW1vdmVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KIHsNCisg
ICAgQVNTRVJUKHJ3X2lzX3dyaXRlX2xvY2tlZCgmcGRldi0+ZG9tYWluLT5wY2lfbG9jaykpOw0K
Kw0KICAgICBpZiAoICFoYXNfdnBjaShwZGV2LT5kb21haW4pIHx8ICFwZGV2LT52cGNpICkNCiAg
ICAgICAgIHJldHVybjsNCiANCkBAIC03Myw2ICs3NSw4IEBAIGludCB2cGNpX2FkZF9oYW5kbGVy
cyhzdHJ1Y3QgcGNpX2RldiAqcGRldikNCiAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqcm9fbWFw
Ow0KICAgICBpbnQgcmMgPSAwOw0KIA0KKyAgICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZw
ZGV2LT5kb21haW4tPnBjaV9sb2NrKSk7DQorDQogICAgIGlmICggIWhhc192cGNpKHBkZXYtPmRv
bWFpbikgKQ0KICAgICAgICAgcmV0dXJuIDA7DQogDQpAQCAtMzI2LDExICszMzAsMTIgQEAgc3Rh
dGljIHVpbnQzMl90IG1lcmdlX3Jlc3VsdCh1aW50MzJfdCBkYXRhLCB1aW50MzJfdCBuZXcsIHVu
c2lnbmVkIGludCBzaXplLA0KIA0KIHVpbnQzMl90IHZwY2lfcmVhZChwY2lfc2JkZl90IHNiZGYs
IHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCBzaXplKQ0KIHsNCi0gICAgY29uc3Qgc3Ry
dWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsNCisgICAgc3RydWN0IGRvbWFpbiAqZCA9
IGN1cnJlbnQtPmRvbWFpbjsNCiAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXY7DQogICAg
IGNvbnN0IHN0cnVjdCB2cGNpX3JlZ2lzdGVyICpyOw0KICAgICB1bnNpZ25lZCBpbnQgZGF0YV9v
ZmZzZXQgPSAwOw0KICAgICB1aW50MzJfdCBkYXRhID0gfih1aW50MzJfdCkwOw0KKyAgICByd2xv
Y2tfdCAqbG9jazsNCiANCiAgICAgaWYgKCAhc2l6ZSApDQogICAgIHsNCkBAIC0zNDIsMTEgKzM0
NywyMSBAQCB1aW50MzJfdCB2cGNpX3JlYWQocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQg
cmVnLCB1bnNpZ25lZCBpbnQgc2l6ZSkNCiAgICAgICogRmluZCB0aGUgUENJIGRldiBtYXRjaGlu
ZyB0aGUgYWRkcmVzcywgd2hpY2ggZm9yIGh3ZG9tIGFsc28gcmVxdWlyZXMNCiAgICAgICogY29u
c3VsdGluZyBEb21YRU4uICBQYXNzdGhyb3VnaCBldmVyeXRoaW5nIHRoYXQncyBub3QgdHJhcHBl
ZC4NCiAgICAgICovDQorICAgIGxvY2sgPSAmZC0+cGNpX2xvY2s7DQorICAgIHJlYWRfbG9jayhs
b2NrKTsNCiAgICAgcGRldiA9IHBjaV9nZXRfcGRldihkLCBzYmRmKTsNCiAgICAgaWYgKCAhcGRl
diAmJiBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KKyAgICB7DQorICAgICAgICByZWFkX3VubG9j
ayhsb2NrKTsNCisgICAgICAgIGxvY2sgPSAmZG9tX3hlbi0+cGNpX2xvY2s7DQorICAgICAgICBy
ZWFkX2xvY2sobG9jayk7DQogICAgICAgICBwZGV2ID0gcGNpX2dldF9wZGV2KGRvbV94ZW4sIHNi
ZGYpOw0KKyAgICB9DQogICAgIGlmICggIXBkZXYgfHwgIXBkZXYtPnZwY2kgKQ0KKyAgICB7DQor
ICAgICAgICByZWFkX3VubG9jayhsb2NrKTsNCiAgICAgICAgIHJldHVybiB2cGNpX3JlYWRfaHco
c2JkZiwgcmVnLCBzaXplKTsNCisgICAgfQ0KIA0KICAgICBzcGluX2xvY2soJnBkZXYtPnZwY2kt
PmxvY2spOw0KIA0KQEAgLTM5Miw2ICs0MDcsNyBAQCB1aW50MzJfdCB2cGNpX3JlYWQocGNpX3Ni
ZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgc2l6ZSkNCiAgICAgICAg
IEFTU0VSVChkYXRhX29mZnNldCA8IHNpemUpOw0KICAgICB9DQogICAgIHNwaW5fdW5sb2NrKCZw
ZGV2LT52cGNpLT5sb2NrKTsNCisgICAgcmVhZF91bmxvY2sobG9jayk7DQogDQogICAgIGlmICgg
ZGF0YV9vZmZzZXQgPCBzaXplICkNCiAgICAgew0KQEAgLTQzMSwxMCArNDQ3LDIzIEBAIHN0YXRp
YyB2b2lkIHZwY2lfd3JpdGVfaGVscGVyKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KICAg
ICAgICAgICAgICByLT5wcml2YXRlKTsNCiB9DQogDQorLyogSGVscGVyIGZ1bmN0aW9uIHRvIHVu
bG9jayBsb2NrcyB0YWtlbiBieSB2cGNpX3dyaXRlIGluIHByb3BlciBvcmRlciAqLw0KK3N0YXRp
YyB2b2lkIHJlbGVhc2VfZG9tYWluX3dyaXRlX2xvY2tzKHN0cnVjdCBkb21haW4gKmQpDQorew0K
KyAgICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZkLT5wY2lfbG9jaykpOw0KKw0KKyAgICBp
ZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApDQorICAgIHsNCisgICAgICAgIEFTU0VSVChyd19p
c193cml0ZV9sb2NrZWQoJmRvbV94ZW4tPnBjaV9sb2NrKSk7DQorICAgICAgICB3cml0ZV91bmxv
Y2soJmRvbV94ZW4tPnBjaV9sb2NrKTsNCisgICAgfQ0KKyAgICB3cml0ZV91bmxvY2soJmQtPnBj
aV9sb2NrKTsNCit9DQorDQogdm9pZCB2cGNpX3dyaXRlKHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWdu
ZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHNpemUsDQogICAgICAgICAgICAgICAgIHVpbnQzMl90
IGRhdGEpDQogew0KLSAgICBjb25zdCBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWlu
Ow0KKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOw0KICAgICBjb25zdCBz
dHJ1Y3QgcGNpX2RldiAqcGRldjsNCiAgICAgY29uc3Qgc3RydWN0IHZwY2lfcmVnaXN0ZXIgKnI7
DQogICAgIHVuc2lnbmVkIGludCBkYXRhX29mZnNldCA9IDA7DQpAQCAtNDQ3LDggKzQ3NiwyMCBA
QCB2b2lkIHZwY2lfd3JpdGUocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNp
Z25lZCBpbnQgc2l6ZSwNCiANCiAgICAgLyoNCiAgICAgICogRmluZCB0aGUgUENJIGRldiBtYXRj
aGluZyB0aGUgYWRkcmVzcywgd2hpY2ggZm9yIGh3ZG9tIGFsc28gcmVxdWlyZXMNCi0gICAgICog
Y29uc3VsdGluZyBEb21YRU4uICBQYXNzdGhyb3VnaCBldmVyeXRoaW5nIHRoYXQncyBub3QgdHJh
cHBlZC4NCisgICAgICogY29uc3VsdGluZyBEb21YRU4uIFBhc3N0aHJvdWdoIGV2ZXJ5dGhpbmcg
dGhhdCdzIG5vdCB0cmFwcGVkLg0KKyAgICAgKiBJZiB0aGlzIGlzIGh3ZG9tLCB3ZSBuZWVkIHRv
IGhvbGQgbG9ja3MgZm9yIGJvdGggZG9tYWluIGluIGNhc2UgaWYNCisgICAgICogbW9kaWZ5X2Jh
cnMoKSBpcyBjYWxsZWQNCiAgICAgICovDQorICAgIC8qDQorICAgICAqIFRPRE86IFdlIG5lZWQg
dG8gdGFrZSBwY2lfbG9ja3MgaW4gZXhjbHVzaXZlIG1vZGUgb25seSBpZiB3ZQ0KKyAgICAgKiBh
cmUgbW9kaWZ5aW5nIEJBUnMsIHNvIHRoZXJlIGlzIGEgcm9vbSBmb3IgaW1wcm92ZW1lbnQuDQor
ICAgICAqLw0KKyAgICB3cml0ZV9sb2NrKCZkLT5wY2lfbG9jayk7DQorDQorICAgIC8qIGRvbV94
ZW4tPnBjaV9sb2NrIGFsd2F5cyBzaG91bGQgYmUgdGFrZW4gc2Vjb25kIHRvIHByZXZlbnQgZGVh
ZGxvY2sgKi8NCisgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KKyAgICAgICAgd3Jp
dGVfbG9jaygmZG9tX3hlbi0+cGNpX2xvY2spOw0KKw0KICAgICBwZGV2ID0gcGNpX2dldF9wZGV2
KGQsIHNiZGYpOw0KICAgICBpZiAoICFwZGV2ICYmIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApDQog
ICAgICAgICBwZGV2ID0gcGNpX2dldF9wZGV2KGRvbV94ZW4sIHNiZGYpOw0KQEAgLTQ1Nyw2ICs0
OTgsOCBAQCB2b2lkIHZwY2lfd3JpdGUocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVn
LCB1bnNpZ25lZCBpbnQgc2l6ZSwNCiAgICAgICAgIC8qIElnbm9yZSB3cml0ZXMgdG8gcmVhZC1v
bmx5IGRldmljZXMsIHdoaWNoIGhhdmUgbm8gLT52cGNpLiAqLw0KICAgICAgICAgY29uc3QgdW5z
aWduZWQgbG9uZyAqcm9fbWFwID0gcGNpX2dldF9yb19tYXAoc2JkZi5zZWcpOw0KIA0KKyAgICAg
ICAgcmVsZWFzZV9kb21haW5fd3JpdGVfbG9ja3MoZCk7DQorDQogICAgICAgICBpZiAoICFyb19t
YXAgfHwgIXRlc3RfYml0KHNiZGYuYmRmLCByb19tYXApICkNCiAgICAgICAgICAgICB2cGNpX3dy
aXRlX2h3KHNiZGYsIHJlZywgc2l6ZSwgZGF0YSk7DQogICAgICAgICByZXR1cm47DQpAQCAtNDk4
LDYgKzU0MSw3IEBAIHZvaWQgdnBjaV93cml0ZShwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGlu
dCByZWcsIHVuc2lnbmVkIGludCBzaXplLA0KICAgICAgICAgQVNTRVJUKGRhdGFfb2Zmc2V0IDwg
c2l6ZSk7DQogICAgIH0NCiAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0KKyAg
ICByZWxlYXNlX2RvbWFpbl93cml0ZV9sb2NrcyhkKTsNCiANCiAgICAgaWYgKCBkYXRhX29mZnNl
dCA8IHNpemUgKQ0KICAgICAgICAgLyogVGFpbGluZyBnYXAsIHdyaXRlIHRoZSByZW1haW5pbmcu
ICovDQotLSANCjIuNDIuMA0K


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645841.1008350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En4-0005Am-GZ; Sat, 02 Dec 2023 01:27:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645841.1008350; Sat, 02 Dec 2023 01:27:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En3-00058M-Sz; Sat, 02 Dec 2023 01:27:29 +0000
Received: by outflank-mailman (input) for mailman id 645841;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9En1-000272-K5
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:27 +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 f243ff3b-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:25 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGv4008549; Sat, 2 Dec 2023 01:27:16 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-10
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:15 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:11 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f243ff3b-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eB4bd+G5qUD75eQXMR/lOkFVQEOzoQ5eKGuoPzBsWir2qx7GHtukzxUwADNZtGDG+UmF+FWK3daHfJCuXfn+HiseQ3n/0EU4P3dIyeL95VoL+gGwgmhpyjEvW8k2W6hUdcK5O12/hjqewdi3m/tnn4Lix+WLlNF5wG3o35s4QZ3p93TKqBzhqjsCo7tIvw0aZLKlXoEzanULa5wXnvkJ8hWGwtCrbjDdzjXo/zRrYHk4jC7KsYK1NByJ9vKnmgFzh/no3/yg23U97acQWh92pYwihksmVWeQ94zBo3oqxVB34Df5MQKvohw7lUuEf6PDWuNkIkN2q5MFYdMkVWXAEQ==
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=22ltegJ1p7Qot1PJ9ShhvDH8ZaJL6Qo1XKi3VZAv5vo=;
 b=a00GlAtIWWE1HPHzPyWKQHaqSTEc+DeDbtSdWUpYNPgofTixJMAKF8n+qYpoEU2keqQRPcJDjzxMjMwTvWM5xt6n3CREwQ6VwP4u6bxdo7aovD9XL+3WvVxYQXueLR7Yxx3fSbsqSkQ3VrJ5PdAM8c0sEUHoFLK0GDixgnAVjmY7fLwCx3YArYMW7wqFZeQcBYIKD19/txSUFb2zndPb2yHXLyBwpmM/+yETGH0T0ijpH4OKAOr0VknWytxGMBUqVr/uZAnipjm+7dEkjU9FGs5bOWoWdq8An6OqAqDvSDP4jg+biCWZeOHkDorGMirvBDUPX/cPELv2wRMJ1RJIRg==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=22ltegJ1p7Qot1PJ9ShhvDH8ZaJL6Qo1XKi3VZAv5vo=;
 b=K/a4cXricBvqbwuH5aFCGNR/d5bLAS5NHDy/mULx7lwCWK3aluRhm9ZlQFRcceEWBKrfjz5VTbx4bbDAc9xYhLEsADL8HnLJDUiMWTuAkgY9YkSP1sceVTAVdkiiNlh97ma1RWvEmU7txdVVcou9/XCgG0GjTyjBGCBaUPQpszD0XspmI+ifgRUaLWoYcYYQ35Hn6oTidY20DAW0fYfJf8fQMln2G9TZF+lyD2GjptWDUTyJLubJCiIrhcqYZg5xsMgxkdl1jrCdHX8XgG/4JDoI2NlJWHQoRaEc9xZXtQdBQaH7+YDgGTvU0Lf0wOMX1mxyq/UHMNi4KSKJgq/5bA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Michal Orzel <michal.orzel@amd.com>,
        Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>,
        Julien Grall <jgrall@amazon.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 15/17] xen/arm: account IO handlers for emulated PCI MSI-X
Thread-Topic: [PATCH v11 15/17] xen/arm: account IO handlers for emulated PCI
 MSI-X
Thread-Index: AQHaJL6p9eGZ4W17RUGnV1K8Sgg+4w==
Date: Sat, 2 Dec 2023 01:27:07 +0000
Message-ID: <20231202012556.2012281-16-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 28609c78-400e-4876-6c4d-08dbf2d5ce9b
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;
x-microsoft-antispam-message-info: 
 BLmX9YE5PDVxL2tS9RtMDUPBEInubQi8eTN8Rlw2p83ZtYKxLnh2rtpIteDIG+Y+ACXeBs7Bg3pFI1Tq19P43g4TIiBHzCBxixmo5cCOcB8Zi83N0FL+jzsNRJQ7sVvrXKsbgItdmx+/L/L6620yU9l2SqJVTckbvut+QVKfU2+b7rJoUdMVkilszsfwXiOcP2F4yXkcHcVYGOQQwAMBOW9wrlFj0Eqt//CCorAvSMe/tk8MFZ9D6jOEvWaHWYEaEvW46zt68yVIIgj9L7C7Vv36Oy4d7eKlVfwqFoVseE2SfFUzdQ/bBXS0vupi6B2wrjiRKTpzYaACYiHczuvWYrcDLULZHBNzetQMQE+rLFSKRzuuq7xzvJqdJKcRittxxeP8gMBfktbEp4DldqYA7ebsxxS9m4ayVAjWZHsuEFNsDQGJM0ZM/D5nMprjMi9ld3vN1uSSI+3pDvjTt8HMZbLTj5v9qU9Wsm9Ef/84XNkyddLFI677Q7RXt5fwxOXQ4N/KA0QDDooU1qKUoHzmMh1BrEAdvipEeLLeD5BAybRJUOkbrR/nvK+OJAxydqiM2/ASMl6ejoUuhic6LOqdCZ05H/937BGV68knZij64BCvkDOsIKCJToRfBirJlR8T
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(66899024)(4326008)(8676002)(8936002)(2906002)(15650500001)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?WcsZYxn3QwWqbDQbQvvMMAJ1lCmdikKYzToszdgjOzmLZjUnckXb6iLpUJ?=
 =?iso-8859-1?Q?oXiYOChFeQDTELUO0CpM6Khe1wflXa4MnQP+KsM0/f5T/FM/1GUtsR4Ohr?=
 =?iso-8859-1?Q?y9DciP7fahj0jTk/ufRG6vyldkUe/DcBJaI5PG1vVrz0ESoXGS0V/wQKE+?=
 =?iso-8859-1?Q?emF1NuKORw+c29GGMPTJ7+zcoXt1Gimp7Eku4Kel8JukEs3aiJoAP0Gt3k?=
 =?iso-8859-1?Q?Xw5zjgyVnoWgca689XjdiRh3lUjovBzeZsThtDLAhi3OXyO+Apl8veoa6/?=
 =?iso-8859-1?Q?LV6l0r/h4PzJ/NOwwPNdYDMz4/izur1ygXFbNs0nAeZ2xOL6LhK8rYA00e?=
 =?iso-8859-1?Q?oUVxZZxjeL7UdZXxUS897vFM80w5jmZ9FQFuNSz33yTpfIe3X/3C5VYq95?=
 =?iso-8859-1?Q?UCXwgw0eAyawGkdqVAX601ahSjUCb54+hpmZdFQhBvLRi38a/G3CKDeTMA?=
 =?iso-8859-1?Q?/vH9AG/ND0x3+WYFMZUf+m59zO1+fZZvsk/LrUaMK/+YgghuE4/LE8qPdD?=
 =?iso-8859-1?Q?RDeEZkXlvYHCy/DNuxDx4JUFEekfYX2QesTHNbuqQiTlYPGWTfMgXt558V?=
 =?iso-8859-1?Q?faEnFz118vAeUJrvGwParkv57f8QeSieGnd/u8XqLSiWsfHx6NtgnL4NbS?=
 =?iso-8859-1?Q?jTXijVv1MIfGo0yBeVlTQgowInLW0i1o9kLm+YGchogxFa8WZc5xpvI0yF?=
 =?iso-8859-1?Q?uTRviuh9MtXTt+YEL3WlenVkoFkVeg5kK+oRk0rS+kv/NWJOb+mL9EEKEM?=
 =?iso-8859-1?Q?bqdACHPaDYrUbTaTqXJkv38O4te7MpQEREvkqsmzmM1Ud5hyc4bm8Q+s4J?=
 =?iso-8859-1?Q?kzevR4hzlOI7v3CExz1+9xFVCdwkWYk10NOb8oFikg/NRAmMs4oSItszcL?=
 =?iso-8859-1?Q?biUaKFh5EmFP3Rys57+FfLyJDPRiJG1I8hprfLTysReN+sjiQZunv82wH9?=
 =?iso-8859-1?Q?QfsPORBEoz7DgAFuVRbdeDoaNXgiU3zh7r6X+q1q0VY8N8I3Aa/7fWQMr3?=
 =?iso-8859-1?Q?VJA6eOJEzCFijUrmQmHpdUY0nqkhtctSbXt8Po1XikR/MWhCoZGv9rihPu?=
 =?iso-8859-1?Q?Z5Rn9AB7b+Z9CjeDl+X8Y1d2DwgZhBR2DfFZCSd752vj3khwbLHxPiP+PL?=
 =?iso-8859-1?Q?R0+DtWKBkIe1JgLlNGHVYebwbRtlvHLBGGbWtOes6xbAlaWNWIXkz+lh83?=
 =?iso-8859-1?Q?EbB896mPwPgguej4yv1da2MqA1DG/wI/X3JAXFpTzkT+nXsvu1teyN97Vm?=
 =?iso-8859-1?Q?SotWkvAJgEuiXZ5E55DHvULJ06mgs6L9dTIFcw/UjAKBNGF8VkRwEGCE9z?=
 =?iso-8859-1?Q?haje3O+//cGXimtGJRRLW1AMxJdTrWhGZnWDWwMSAGnQvyA/Hndiuf6M3A?=
 =?iso-8859-1?Q?KCYX4wj1EpXBkQ+Sb/CFKp4Wq9d6oJ4NKDTrOzJgKHy57iI9GPJDbwdLCx?=
 =?iso-8859-1?Q?jzrBGPJqOgWdzr4PcMXeQ3cYJBRPKn0P8C49FS3PgnsIYsQxUTPeHWv57F?=
 =?iso-8859-1?Q?w/Ml9yiqZlknUXIzRvRkkZ2iv3gxacwcRBNDScRy+5gjSJp1YGZp5p2c1+?=
 =?iso-8859-1?Q?+ouDNyZqLIOdDqa3F/sxhWkGGMLqHZ7oLKFZp/I2V9z3F2kkBHkfCar2fK?=
 =?iso-8859-1?Q?XCeDVHoSrD5LRyV89be/nSPgAPQlP5AgzqlDP/G2pN+ens9B2vv53Pyw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 28609c78-400e-4876-6c4d-08dbf2d5ce9b
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:07.1866
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 8HnUlaeCbebl0Qk5tIhOKyMGqB2hKDCA1eLKpRlYNDuftGtfHM3s6XMSTXqQ/DBw1OOzmaJtvTyCqwk63/wz8UsLYpwto+Ac2y+VjuqoHus=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: _pKyBxUJvXrRlOj-gNFJXZ5EHgRpb6yz
X-Proofpoint-ORIG-GUID: _pKyBxUJvXrRlOj-gNFJXZ5EHgRpb6yz
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1011 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=404 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

At the moment, we always allocate an extra 16 slots for IO handlers
(see MAX_IO_HANDLER). So while adding IO trap handlers for the emulated
MSI-X registers we need to explicitly tell that we have additional IO
handlers, so those are accounted.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
This actually moved here from the part 2 of the prep work for PCI
passthrough on Arm as it seems to be the proper place for it.

Since v5:
- optimize with IS_ENABLED(CONFIG_HAS_PCI_MSI) since VPCI_MAX_VIRT_DEV is
  defined unconditionally
New in v5
---
 xen/arch/arm/vpci.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 7a6a0017d1..348ba0fbc8 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -130,6 +130,8 @@ static int vpci_get_num_handlers_cb(struct domain *d,
=20
 unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
 {
+    unsigned int count;
+
     if ( !has_vpci(d) )
         return 0;
=20
@@ -150,7 +152,17 @@ unsigned int domain_vpci_get_num_mmio_handlers(struct =
domain *d)
      * For guests each host bridge requires one region to cover the
      * configuration space. At the moment, we only expose a single host br=
idge.
      */
-    return 1;
+    count =3D 1;
+
+    /*
+     * There's a single MSI-X MMIO handler that deals with both PBA
+     * and MSI-X tables per each PCI device being passed through.
+     * Maximum number of emulated virtual devices is VPCI_MAX_VIRT_DEV.
+     */
+    if ( IS_ENABLED(CONFIG_HAS_PCI_MSI) )
+        count +=3D VPCI_MAX_VIRT_DEV;
+
+    return count;
 }
=20
 /*
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645842.1008359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En5-0005R4-Mh; Sat, 02 Dec 2023 01:27:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645842.1008359; Sat, 02 Dec 2023 01:27: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 1r9En5-0005Mc-4U; Sat, 02 Dec 2023 01:27:31 +0000
Received: by outflank-mailman (input) for mailman id 645842;
 Sat, 02 Dec 2023 01: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9En2-000272-KO
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:28 +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 f25d04f0-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:25 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGut008549; Sat, 2 Dec 2023 01:27:08 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:07 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:02 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27: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: f25d04f0-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IIqBCiNYoGhG/BlDqcA6mrjYkL019QzzNWF/XwrWndnDqavoj8v6LF0RBbNxoNytTsHKeZ0J9QwBFNXuFtVEpWTt/TxnX26ps9UefBMzVKLjy+znJEzZWaRvr6QO31bwy3BO/XmaIUJLXy+uJrJ3AQHywj7jPFqhGHUE8ESdzq7u7PyCC7Ybvq/2kY/NPT+6OSlontyXylEBqgljTJrs+SwDNzsTCm5/347Zt2XmC3WpLY2RB/EkVK+IH8Il+0eP4efPG1H9Swm8FU9ryhtkTk82oClmIAjtSxFaQ1ojrYGmgbwDQIQiThF9kf+6xCMlQECEgH+kyTUHNl1LRkZ2hA==
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=/8REnoszUXW5wdC5BqFWoMkuaC9Yq6ifN4ZAzhjkY6U=;
 b=ayvET9LAl41JH6VNmuztqeCLydjMI3OuZDs61K+IP5ufREXvdsVuZW7cnKRZS0DYUQXksDYK1Mhguk7hAV0eovqgiKMurmaQ0WdgVmyQjN818FszpDf8uOTV1mgEhuzWQPx6BBS4yl9IEJkFPtrDtQ/kIrKDxP1Xj72enzZx+qLO7QWkmEB7ZQAR2P3b9NMkE7u+NKIOgCPvcD0mNblheJZ3LmoqBypZKtujCa4znisFnXGJYbDxYZ3lBGTyqwCwvv9ubK8PPfUtNtHwsNUjMRZmeyCMv/lFtBeXELnmxJ3cJXjfIvOkHkrJX7sZLiKM2rSQxAxwSZUhEBUnddizkw==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/8REnoszUXW5wdC5BqFWoMkuaC9Yq6ifN4ZAzhjkY6U=;
 b=m3UP1Jk7+MAZo88/BJftbssBvUlEKkXny74VF8bTLE9MRzarL/+lvJjBpWxF/M+TmbsU8m0pvTgojjNalNdjruf4yewj7e5RaVtKdEzFl5kLLbMttBMS1Bky7owLCYUS3WzUodsjk/DOcUOtnathqBIuYrIWe/nsrJS9AiEJT1w6tMn3PRN22YGVg0+DSWwLdS6BK/qedEKXUy1jpv92qHLfOjxx4kgsMR5VfI9IwcSPpf98jEUW3m0Lc2l7KhGIfOAERxpRWD50Bn0pIruJnwnGEB7TVNr6FSNk32Fg0ZSoyXs2DZZ+peep8MuNfzJsJY6YABTk0+lAmh8Yyl55aQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Jan Beulich <jbeulich@suse.com>,
        Andrew Cooper
	<andrew.cooper3@citrix.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>,
        Wei Liu <wl@xen.org>, George Dunlap
	<george.dunlap@citrix.com>,
        Julien Grall <julien@xen.org>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Paul Durrant <paul@xen.org>, Kevin Tian
	<kevin.tian@intel.com>,
        Jun Nakajima <jun.nakajima@intel.com>,
        "Daniel P.
 Smith" <dpsmith@apertussolutions.com>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Michal Orzel <michal.orzel@amd.com>,
        Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 00/17] PCI devices passthrough on Arm, part 3
Thread-Topic: [PATCH v11 00/17] PCI devices passthrough on Arm, part 3
Thread-Index: AQHaJL6myOgOEzRKR0O0HH5CmIGjcw==
Date: Sat, 2 Dec 2023 01:27:02 +0000
Message-ID: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 912774a1-66b4-4982-4653-08dbf2d5c93f
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;
x-microsoft-antispam-message-info: 
 H2NgLWBk3jq92rGbZMnfcC0nK4F07GEbnlaQIT7yMkqzy+j/K09U2pun+578v6KWpaWLQOi/xZ+SBn0U9JPp8MGixfF1hwrgaSb4ughpoliRTT6jS4kr3/g3dWaQJMm75NIny/NhO+ecomvsNNJExjeG3GQ6u4WRuvh2zljmUpnn0uQkWhwrxkRBG2bX6viY5b1AhlQR5vmYDXSENkfqM7JeNfPUud8cKoqL/jqIPEi6y26R1jmDHTuFkeArapG0jQMIKq9C0alaURJfRjv/6/O4ys0FaY+f1rP/GXGmwRVgRqrcjlazi/Tx6Hcb7B8XkaABwjV801UvBZk0g0GJD64O659Or4D36IOrwI9s6HJwnYeo+nHZDi5kwjdTRZ1Bwh7n7tgxRsgBrM/W2F6M8Zsy7foXPJL5DojrfbNHHlbr+5GVKPWX62IWhBWSjdz3d2wJsVmv0Y1uK5U5r7f8YqglXoMxeSBEv0ynG7r5T9iEp1vYlc6vRcSDHc7WDSindLCUorn3iw1KYUSEnpVmLWwLM2+rH+3TD3DEiZC5u7a0Epq0KaH+saZ/pR2pbYE99U7JNCWMlkYFnxXsp/Crqd/DoqNtLKCLzoO6f0KixQqNmYcse/MUo7sS+0wGqNlx
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(7416002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?K25YMUMvUzl5bUNTYmFzZTQ5L2NSVkxRMkIreHFhNWNCNitFa2pLQUZtK3Nt?=
 =?utf-8?B?RVFWUVphR0pUZ3hCZXprTlZxRE1paWJoMCtOWGo2RG5hVGtMMFBWQ29PMjZ2?=
 =?utf-8?B?dEs0RXYrb2Q4K1FRa1FtanlTMzloOWMwSUtzZEcydFZwU2FIRERPakdNVTVx?=
 =?utf-8?B?RDNCMEl5ZnYrc2hZQnB5QzQ1UytWZ1RRRGNtY25QeEhqYVgyUndkSnlRaVpS?=
 =?utf-8?B?anlveXE4VHFyMU15ZmxNTndoRXdTSFhLbWprUFVkUkxZODZRMG1PdWJ6blJE?=
 =?utf-8?B?VzJPblI3UzhhWk03UG40WnpIOXZuOGtnZ0U4RmprenFId0YwbkI3Z1pJc0NI?=
 =?utf-8?B?VkJjUEN4bFdqdFN6dDF3RDI1QmlHTU5pNWlzQWRrdU1sR0d0cTVRVTlONk81?=
 =?utf-8?B?MVhldkhYNFZvYWZlZXVoUUJ2UE96YUVOV3k0N01WUE02NWRIdUhweTJ3MDJH?=
 =?utf-8?B?bStjcVdSMkFwb1FENy9JTnhQS3QxL1poSStTb0dSb0xYQUxIS2RBNWFRL09Q?=
 =?utf-8?B?Vlh0L0g1eUpFU2VzcXppbjNhMUV5cDBvY2Jjbld5elBHTHpFN0kva3VkU0d4?=
 =?utf-8?B?a0h6RFVNUzZGU0w4bGZTdTNZOFdveCs1NC9aT2N6V2l5a3RmbnpCYVZMWEZy?=
 =?utf-8?B?NUtSaDRoMVFtc3RKVElya1FIdlpKQ3dPZ3J2RWowZEttOTRlNDJySytjZHF4?=
 =?utf-8?B?VGg2TEp1djV2RE9DOTREcndxL2trLzVDdnBCRGEvdGxMNWthbUxPNDZMUUZH?=
 =?utf-8?B?L3NrSEo4UVlGQ2ZHN0p3SUpGUi90OUw5MlJ3a0VQbkd0Mlo5VFlVVHdIbXF6?=
 =?utf-8?B?RDE0aTlMcWxHMEdIWHRueHVqUU1kMCtjcUN2RHMwaU9Qb3NzdmdOMHo5aFFO?=
 =?utf-8?B?emcwM0VBcGlDYXFaSjd3d3BxOXBmTW8wSW83RU42VlFKUXBZdmd5MGFtZ0Rr?=
 =?utf-8?B?Q0NtSTBkc1BkOEtDc0pZQk1vcHVYUjVMR3gxOEpDYnlEaVdwQ1hJZ0xWRnpp?=
 =?utf-8?B?MGxkdGp4MVFxOVBmN1FxR1JUY1VxeTBhcmVUb1R4RWNnWnFUT0JWcmp6cTUy?=
 =?utf-8?B?UzNyNmVrNURvKzcyZFpHdmFrdTcxbTNCWDRZUVM0dFBoU2pvdVZEOENsK1V6?=
 =?utf-8?B?TERpWDk0ZGh4V1Q1amM1cks5MmNOL1ZSOWhWM3pmVGJ6NlZvMXNQc0tjVTNE?=
 =?utf-8?B?eTBoTS96VFZJTEwvRDRVOWpsR0s5M2lYM2RWUGpvaU1pK0xWUDZZWUJIdEZs?=
 =?utf-8?B?MlFIVnVUNjA3RUY0RFJOc1VpcVFRNXNwMWdmaW10UVg3WEg3ZWI4TE9pOFR6?=
 =?utf-8?B?WE0xZTE4cU9JS1JYZk94dXl0RmNQWlNVS0NQQnZvNEd5TVRhMzl4VUhSSGp5?=
 =?utf-8?B?emtDZy9RelBpS3FxVDZqT25VQVhyMEVCOWcyenBNV2RzYk4vZ3NXYzFkakJ4?=
 =?utf-8?B?eTZweXNWYTBZdTlVSS9FS3MzU3c0VlBPaWhLRko3M0lSMEtTMHV4STdJMWJH?=
 =?utf-8?B?STY2WkFsdFYvL1NiTGs0VEZKcC92ckFUOTMxQk5uK0FEOFVOQlh5ZldieW1x?=
 =?utf-8?B?V0ZQeWRDK1dEVHJLaFZGZkthVzNLU0hYY3hVV2FzcmFlWHN0b0loZlg4SjNp?=
 =?utf-8?B?VTJxQTBMeTdhalBhSGovRDZSOW1kUUtjMWEvemQyMGkvakYxS05hNTcvZVpw?=
 =?utf-8?B?ZkUxRTVZUWpGSDNqcU9SdlZXT1NsWGxhZzRHcFdZSC9DdTBIQTFvN2s5dlZ6?=
 =?utf-8?B?dFFlNENIeDdaMVE0d0NrcTFrc2hqdzR2dGRCMWFuakpzbGcrY21TTnJSRUh3?=
 =?utf-8?B?dEhXOE8za3BjUnV1Y3FqQ0tkWGZmK2ViY3A1QU4vcUNSaDAvYWx5OFpBR1Y0?=
 =?utf-8?B?MzNwN2ZZOUlST1JHU25BZURyM1l4bWhXQ2pWMm1DbTdiLzE1SXJ5cTJrdzhl?=
 =?utf-8?B?dXp0TGJrTm85VnFpU2NHSGsxdlM1d1pwSzRQRzRTT0pTVzU4bGhVb1hzUWJL?=
 =?utf-8?B?NlRPYjlTdi9MNGU5UXJCYUFneU5QcmZOQVJ3L1dJYXVtaThjSVp4Qy9qeW5n?=
 =?utf-8?B?YmdoelNTVGQySWpsK0x2N3M2MXBLV2hJaWF3TG9qclAxV3FJZjQ3VTRMSWpT?=
 =?utf-8?B?d0cxdFlPT1JYL3I3NXFDZnhYWUsveUJFaXR5NnB2UXhJZVlrdmdFTWJRZDFJ?=
 =?utf-8?B?Rnc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6BF1220A4C9618489C236B32BB61BDCC@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 912774a1-66b4-4982-4653-08dbf2d5c93f
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:02.1276
 (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: ExMgDjOZIDHt/Wau8GTG2MXZUtaPoJo37TeYL8X4n+C9lZjBzvwzUYuQcMO5y7juYfDismga5irDfv6060WKno1nkZPUR1B/5h/iu8fm4kQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: v6lXct2_OViYMeufBpgk_jBtWo6kngv-
X-Proofpoint-ORIG-GUID: v6lXct2_OViYMeufBpgk_jBtWo6kngv-
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1011 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

VGhpcyBpcyBuZXh0IHZlcnNpb24gb2YgdlBDSSByZXdvcmsuIEFpbSBvZiB0aGlzIHNlcmllcyBp
cyB0byBwcmVwYXJlDQpncm91bmQgZm9yIGludHJvZHVjaW5nIFBDSSBzdXBwb3J0IG9uIEFSTSBw
bGF0Zm9ybS4NCg0KaW4gdjExOg0KIC0gQWRkZWQgbXkgU2lnbmVkLW9mZi1ieSB0YWcgdG8gYWxs
IHBhdGNoZXMNCiAtIFBhdGNoICJ2cGNpL2hlYWRlcjogZW11bGF0ZSBQQ0lfQ09NTUFORCByZWdp
c3RlciBmb3IgZ3Vlc3RzIiBpcyBpbg0KICAgaW50ZXJtZWRpYXRlIHN0YXRlLCBiZWNhdXNlIGl0
IHdhcyBhZ3JlZWQgdG8gcmV3b3JrIGl0IG9uY2UgU3Rld2FydCdzDQogICBzZXJpZXMgb24gcmVn
aXN0ZXIgaGFuZGxpbmcgYXJlIGluLg0KIC0gQWRkcmVzc2VkIGNvbW1lbnRzLCBwbGVhc2Ugc2Vl
IHBhdGNoIGRlc2NyaXB0aW9ucyBmb3IgZGV0YWlscy4NCg0KaW4gdjEwOg0KDQogLSBSZW1vdmVk
IHBhdGNoICgieGVuL2FybTogdnBjaTogY2hlY2sgZ3Vlc3QgcmFuZ2UiKSwgcHJvcGVyIGZpeA0K
ICAgZm9yIHRoZSBpc3N1ZSBpcyBwYXJ0IG9mICgidnBjaS9oZWFkZXI6IGVtdWxhdGUgUENJX0NP
TU1BTkQNCiAgIHJlZ2lzdGVyIGZvciBndWVzdHMiKQ0KIC0gUmVtb3ZlZCBwYXRjaCAoInBjaS9o
ZWFkZXI6IHJlc2V0IHRoZSBjb21tYW5kIHJlZ2lzdGVyIHdoZW4gYWRkaW5nDQogICBkZXZpY2Vz
IikNCiAtIEFkZGVkIHBhdGNoICgicmFuZ2VzZXQ6IGFkZCByYW5nZXNldF9lbXB0eSgpIGZ1bmN0
aW9uIikgYmVjYXVzZQ0KICAgdGhpcyBmdW5jdGlvbiBpcyBuZWVkZWQgaW4gKCJ2cGNpL2hlYWRl
cjogaGFuZGxlIHAybSByYW5nZSBzZXRzDQogICBwZXIgQkFSIikNCiAtIEFkZGVkICgidnBjaS9o
ZWFkZXI6IGhhbmRsZSBwMm0gcmFuZ2Ugc2V0cyBwZXIgQkFSIikgd2hpY2ggYWRkcmVzc2VkDQog
ICBhbiBpc3N1ZSBkaXNjb3ZlcmVkIGJ5IEFuZHJpaSBDaGVwdXJueWkgZHVyaW5nIHZpcnRpbyBp
bnRlZ3JhdGlvbg0KIC0gQWRkZWQgKCJwY2k6IG1zaTogcGFzcyBwZGV2IHRvIHBjaV9lbmFibGVf
bXNpKCkgZnVuY3Rpb24iKSwgd2hpY2ggaXMNCiAgIHByZXJlcSBmb3IgKCJwY2k6IGludHJvZHVj
ZSBwZXItZG9tYWluIFBDSSByd2xvY2siKQ0KIC0gRml4ZWQgIlNpbmNlIHY5L3Y4Ly4uLiAiIGNv
bW1lbnRzIGluIGNoYW5nZWxvZ3MgdG8gcmVkdWNlIGNvbmZ1c2lvbi4NCiAgIEkgbGVmdCAiU2lu
Y2UiIGVudHJpZXMgZm9yIG9sZGVyIHZlcnNpb25zLCBiZWNhdXNlIHRoZXkgd2VyZSBhZGRlZA0K
ICAgYnkgb3JpZ2luYWwgYXV0aG9yIG9mIHRoZSBwYXRjaGVzLg0KDQppbiB2OToNCg0KdjkgaW5j
bHVkZXMgYWRkcmVzc2VkIGNvbW1lbnRlcyBmcm9tIGEgcHJldmlvdXMgb25lLiBBbHNvIGl0DQpp
bnRyb2R1Y2VzIGEgY291cGxlIHBhdGNoZXMgZnJvbSBTdGV3YXJ0LiBUaGlzIHBhdGNoZXMgYXJl
IHJlbGF0ZWQgdG8NCnZQQ0kgdXNlIG9uIEFSTS4gUGF0Y2ggInZwY2kvaGVhZGVyOiByZXdvcmsg
ZXhpdCBwYXRoIGluIGluaXRfYmFycyINCndhcyBmYWN0b3JlZC1vdXQgZnJvbSAidnBjaS9oZWFk
ZXI6IGhhbmRsZSBwMm0gcmFuZ2Ugc2V0cyBwZXIgQkFSIi4NCg0KaW4gdjg6DQoNClRoZSBiaWdn
ZXN0IGNoYW5nZSBmcm9tIHByZXZpb3VzLCBtaXN0YWtlbmx5IG5hbWVkLCB2NyBzZXJpZXMgaXMg
aG93DQpsb2NraW5nIGlzIGltcGxlbWVudGVkLiBJbnN0ZWFkIG9mIGQtPnZwY2lfcndsb2NrIHdl
IGludHJvZHVjZQ0KZC0+cGNpX2xvY2sgd2hpY2ggaGFzIGJyb2FkZXIgc2NvcGUsIGFzIGl0IHBy
b3RlY3RzIG5vdCBvbmx5IGRvbWFpbidzDQp2cGNpIHN0YXRlLCBidXQgZG9tYWluJ3MgbGlzdCBv
ZiBQQ0kgZGV2aWNlcyBhcyB3ZWxsLg0KDQpBcyB3ZSBkaXNjdXNzZWQgaW4gSVJDIHdpdGggUm9n
ZXIsIGl0IGlzIG5vdCBmZWFzaWJsZSB0byByZXdvcmsgYWxsDQp0aGUgZXhpc3RpbmcgY29kZSB0
byB1c2UgdGhlIG5ldyBsb2NrIHJpZ2h0IGF3YXkuIEl0IHdhcyBhZ3JlZWQgdGhhdA0KYW55IHdy
aXRlIGFjY2VzcyB0byBkLT5wZGV2X2xpc3Qgd2lsbCBiZSBwcm90ZWN0ZWQgYnkgKipib3RoKioN
CmQtPnBjaV9sb2NrIGluIHdyaXRlIG1vZGUgYW5kIHBjaWRldnNfbG9jaygpLiBSZWFkIGFjY2Vz
cyBvbiBvdGhlcg0KaGFuZCBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGVpdGhlciBkLT5wY2lfbG9j
ayBpbiByZWFkIG1vZGUgb3INCnBjaWRldnNfbG9jaygpLiBJdCBpcyBleHBlY3RlZCB0aGF0IGV4
aXN0aW5nIGNvZGUgd2lsbCB1c2UNCnBjaWRldnNfbG9jaygpIGFuZCBuZXcgdXNlcnMgd2lsbCB1
c2UgbmV3IHJ3IGxvY2suIE9mIGNvdXJzZSwgdGhpcw0KZG9lcyBub3QgbWVhbiB0aGF0IG5ldyB1
c2VycyBzaGFsbCBub3QgdXNlIHBjaWRldnNfbG9jaygpIHdoZW4gaXQgaXMNCmFwcHJvcHJpYXRl
Lg0KDQoNCg0KQ2hhbmdlcyBmcm9tIHByZXZpb3VzIHZlcnNpb25zIGFyZSBkZXNjcmliZWQgaW4g
ZWFjaCBzZXBhcmF0ZSBwYXRjaC4NCg0KSGVsbG8gYWxsLA0KDQpUaGlzIGlzIG5leHQgdmVyc2lv
biBvZiB2UENJIHJld29yay4gQWltIG9mIHRoaXMgc2VyaWVzIGlzIHRvIHByZXBhcmUNCmdyb3Vu
ZCBmb3IgaW50cm9kdWNpbmcgUENJIHN1cHBvcnQgb24gQVJNIHBsYXRmb3JtLg0KDQppbiB2MTA6
DQoNCiAtIFJlbW92ZWQgcGF0Y2ggKCJ4ZW4vYXJtOiB2cGNpOiBjaGVjayBndWVzdCByYW5nZSIp
LCBwcm9wZXIgZml4DQogICBmb3IgdGhlIGlzc3VlIGlzIHBhcnQgb2YgKCJ2cGNpL2hlYWRlcjog
ZW11bGF0ZSBQQ0lfQ09NTUFORA0KICAgcmVnaXN0ZXIgZm9yIGd1ZXN0cyIpDQogLSBSZW1vdmVk
IHBhdGNoICgicGNpL2hlYWRlcjogcmVzZXQgdGhlIGNvbW1hbmQgcmVnaXN0ZXIgd2hlbiBhZGRp
bmcNCiAgIGRldmljZXMiKQ0KIC0gQWRkZWQgcGF0Y2ggKCJyYW5nZXNldDogYWRkIHJhbmdlc2V0
X2VtcHR5KCkgZnVuY3Rpb24iKSBiZWNhdXNlDQogICB0aGlzIGZ1bmN0aW9uIGlzIG5lZWRlZCBp
biAoInZwY2kvaGVhZGVyOiBoYW5kbGUgcDJtIHJhbmdlIHNldHMNCiAgIHBlciBCQVIiKQ0KIC0g
QWRkZWQgKCJ2cGNpL2hlYWRlcjogaGFuZGxlIHAybSByYW5nZSBzZXRzIHBlciBCQVIiKSB3aGlj
aCBhZGRyZXNzZWQNCiAgIGFuIGlzc3VlIGRpc2NvdmVyZWQgYnkgQW5kcmlpIENoZXB1cm55aSBk
dXJpbmcgdmlydGlvIGludGVncmF0aW9uDQogLSBBZGRlZCAoInBjaTogbXNpOiBwYXNzIHBkZXYg
dG8gcGNpX2VuYWJsZV9tc2koKSBmdW5jdGlvbiIpLCB3aGljaCBpcw0KICAgcHJlcmVxIGZvciAo
InBjaTogaW50cm9kdWNlIHBlci1kb21haW4gUENJIHJ3bG9jayIpDQogLSBGaXhlZCAiU2luY2Ug
djkvdjgvLi4uICIgY29tbWVudHMgaW4gY2hhbmdlbG9ncyB0byByZWR1Y2UgY29uZnVzaW9uLg0K
ICAgSSBsZWZ0ICJTaW5jZSIgZW50cmllcyBmb3Igb2xkZXIgdmVyc2lvbnMsIGJlY2F1c2UgdGhl
eSB3ZXJlIGFkZGVkDQogICBieSBvcmlnaW5hbCBhdXRob3Igb2YgdGhlIHBhdGNoZXMuDQoNCmlu
IHY5Og0KDQp2OSBpbmNsdWRlcyBhZGRyZXNzZWQgY29tbWVudGVzIGZyb20gYSBwcmV2aW91cyBv
bmUuIEFsc28gaXQNCmludHJvZHVjZXMgYSBjb3VwbGUgcGF0Y2hlcyBmcm9tIFN0ZXdhcnQuIFRo
aXMgcGF0Y2hlcyBhcmUgcmVsYXRlZCB0bw0KdlBDSSB1c2Ugb24gQVJNLiBQYXRjaCAidnBjaS9o
ZWFkZXI6IHJld29yayBleGl0IHBhdGggaW4gaW5pdF9iYXJzIg0Kd2FzIGZhY3RvcmVkLW91dCBm
cm9tICJ2cGNpL2hlYWRlcjogaGFuZGxlIHAybSByYW5nZSBzZXRzIHBlciBCQVIiLg0KDQppbiB2
ODoNCg0KVGhlIGJpZ2dlc3QgY2hhbmdlIGZyb20gcHJldmlvdXMsIG1pc3Rha2VubHkgbmFtZWQs
IHY3IHNlcmllcyBpcyBob3cNCmxvY2tpbmcgaXMgaW1wbGVtZW50ZWQuIEluc3RlYWQgb2YgZC0+
dnBjaV9yd2xvY2sgd2UgaW50cm9kdWNlDQpkLT5wY2lfbG9jayB3aGljaCBoYXMgYnJvYWRlciBz
Y29wZSwgYXMgaXQgcHJvdGVjdHMgbm90IG9ubHkgZG9tYWluJ3MNCnZwY2kgc3RhdGUsIGJ1dCBk
b21haW4ncyBsaXN0IG9mIFBDSSBkZXZpY2VzIGFzIHdlbGwuDQoNCkFzIHdlIGRpc2N1c3NlZCBp
biBJUkMgd2l0aCBSb2dlciwgaXQgaXMgbm90IGZlYXNpYmxlIHRvIHJld29yayBhbGwNCnRoZSBl
eGlzdGluZyBjb2RlIHRvIHVzZSB0aGUgbmV3IGxvY2sgcmlnaHQgYXdheS4gSXQgd2FzIGFncmVl
ZCB0aGF0DQphbnkgd3JpdGUgYWNjZXNzIHRvIGQtPnBkZXZfbGlzdCB3aWxsIGJlIHByb3RlY3Rl
ZCBieSAqKmJvdGgqKg0KZC0+cGNpX2xvY2sgaW4gd3JpdGUgbW9kZSBhbmQgcGNpZGV2c19sb2Nr
KCkuIFJlYWQgYWNjZXNzIG9uIG90aGVyDQpoYW5kIHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZWl0
aGVyIGQtPnBjaV9sb2NrIGluIHJlYWQgbW9kZSBvcg0KcGNpZGV2c19sb2NrKCkuIEl0IGlzIGV4
cGVjdGVkIHRoYXQgZXhpc3RpbmcgY29kZSB3aWxsIHVzZQ0KcGNpZGV2c19sb2NrKCkgYW5kIG5l
dyB1c2VycyB3aWxsIHVzZSBuZXcgcncgbG9jay4gT2YgY291cnNlLCB0aGlzDQpkb2VzIG5vdCBt
ZWFuIHRoYXQgbmV3IHVzZXJzIHNoYWxsIG5vdCB1c2UgcGNpZGV2c19sb2NrKCkgd2hlbiBpdCBp
cw0KYXBwcm9wcmlhdGUuDQoNCg0KDQpDaGFuZ2VzIGZyb20gcHJldmlvdXMgdmVyc2lvbnMgYXJl
IGRlc2NyaWJlZCBpbiBlYWNoIHNlcGFyYXRlIHBhdGNoLg0KDQoNCk9sZWtzYW5kciBBbmRydXNo
Y2hlbmtvICgxMSk6DQogIHZwY2k6IHVzZSBwZXItZG9tYWluIFBDSSBsb2NrIHRvIHByb3RlY3Qg
dnBjaSBzdHJ1Y3R1cmUNCiAgdnBjaTogcmVzdHJpY3QgdW5oYW5kbGVkIHJlYWQvd3JpdGUgb3Bl
cmF0aW9ucyBmb3IgZ3Vlc3RzDQogIHZwY2k6IGFkZCBob29rcyBmb3IgUENJIGRldmljZSBhc3Np
Z24vZGUtYXNzaWduDQogIHZwY2kvaGVhZGVyOiBpbXBsZW1lbnQgZ3Vlc3QgQkFSIHJlZ2lzdGVy
IGhhbmRsZXJzDQogIHJhbmdlc2V0OiBhZGQgUkFOR0VTRVRGX25vX3ByaW50IGZsYWcNCiAgdnBj
aS9oZWFkZXI6IGhhbmRsZSBwMm0gcmFuZ2Ugc2V0cyBwZXIgQkFSDQogIHZwY2kvaGVhZGVyOiBw
cm9ncmFtIHAybSB3aXRoIGd1ZXN0IEJBUiB2aWV3DQogIHZwY2kvaGVhZGVyOiBlbXVsYXRlIFBD
SV9DT01NQU5EIHJlZ2lzdGVyIGZvciBndWVzdHMNCiAgdnBjaTogYWRkIGluaXRpYWwgc3VwcG9y
dCBmb3IgdmlydHVhbCBQQ0kgYnVzIHRvcG9sb2d5DQogIHhlbi9hcm06IHRyYW5zbGF0ZSB2aXJ0
dWFsIFBDSSBidXMgdG9wb2xvZ3kgZm9yIGd1ZXN0cw0KICB4ZW4vYXJtOiBhY2NvdW50IElPIGhh
bmRsZXJzIGZvciBlbXVsYXRlZCBQQ0kgTVNJLVgNCg0KU3Rld2FydCBIaWxkZWJyYW5kICgxKToN
CiAgeGVuL2FybTogdnBjaTogcGVybWl0IGFjY2VzcyB0byBndWVzdCB2cGNpIHNwYWNlDQoNClZv
bG9keW15ciBCYWJjaHVrICg1KToNCiAgcGNpOiBtc2k6IHBhc3MgcGRldiB0byBwY2lfZW5hYmxl
X21zaSgpIGZ1bmN0aW9uDQogIHBjaTogaW50cm9kdWNlIHBlci1kb21haW4gUENJIHJ3bG9jaw0K
ICB2cGNpL2hlYWRlcjogcmV3b3JrIGV4aXQgcGF0aCBpbiBpbml0X2JhcnMNCiAgcmFuZ2VzZXQ6
IGFkZCByYW5nZXNldF9lbXB0eSgpIGZ1bmN0aW9uDQogIGFybS92cGNpOiBob25vciBhY2Nlc3Mg
c2l6ZSB3aGVuIHJldHVybmluZyBhbiBlcnJvcg0KDQogeGVuL2FyY2gvYXJtL3ZwY2kuYyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICA3MiArKy0NCiB4ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYyAg
ICAgICAgICAgICAgICAgICAgIHwgIDIyICstDQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMg
ICAgICAgICAgICAgICAgICB8ICAgMiAtDQogeGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zaS5o
ICAgICAgICAgICAgICB8ICAgNSArLQ0KIHhlbi9hcmNoL3g4Ni9pcnEuYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMTAgKy0NCiB4ZW4vYXJjaC94ODYvbXNpLmMgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDI1ICstDQogeGVuL2FyY2gveDg2L3BoeXNkZXYuYyAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMiArDQogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgNSArLQ0KIHhlbi9jb21tb24vcmFuZ2VzZXQuYyAgICAgICAgICAgICAgICAgICAg
ICAgfCAgMjEgKy0NCiB4ZW4vZHJpdmVycy9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICA0ICsNCiB4ZW4vZHJpdmVycy9jaGFyL25zMTY1NTAuYyAgICAgICAgICAgICAgICAgIHwg
IDI4ICstDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyB8ICAg
OSArLQ0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jICAgICAgICAgICAgICAgfCAgOTgg
KysrLQ0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jICAgICAgICAgfCAgIDkg
Ky0NCiB4ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jICAgICAgICAgICAgICAgICAgIHwgNTEzICsr
KysrKysrKysrKysrKystLS0tDQogeGVuL2RyaXZlcnMvdnBjaS9tc2kuYyAgICAgICAgICAgICAg
ICAgICAgICB8ICAzNCArLQ0KIHhlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jICAgICAgICAgICAgICAg
ICAgICAgfCAgNTcgKystDQogeGVuL2RyaXZlcnMvdnBjaS92cGNpLmMgICAgICAgICAgICAgICAg
ICAgICB8IDE1MSArKysrKy0NCiB4ZW4vaW5jbHVkZS94ZW4vcmFuZ2VzZXQuaCAgICAgICAgICAg
ICAgICAgIHwgICA4ICstDQogeGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAgICAgICAgICAgICAg
ICAgICB8ICAgOSArDQogeGVuL2luY2x1ZGUveGVuL3ZwY2kuaCAgICAgICAgICAgICAgICAgICAg
ICB8ICA1NCArKy0NCiAyMSBmaWxlcyBjaGFuZ2VkLCA5MjggaW5zZXJ0aW9ucygrKSwgMjEwIGRl
bGV0aW9ucygtKQ0KDQotLSANCjIuNDIuMA0K


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645843.1008370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En7-0005up-Nq; Sat, 02 Dec 2023 01:27:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645843.1008370; Sat, 02 Dec 2023 01:27: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 1r9En7-0005t8-Ef; Sat, 02 Dec 2023 01:27:33 +0000
Received: by outflank-mailman (input) for mailman id 645843;
 Sat, 02 Dec 2023 01:27:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9En3-000271-C4
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:29 +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 f3c1fae9-90b1-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 02:27:27 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B20exWd004068; Sat, 2 Dec 2023 01:27:16 GMT
Received: from eur02-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur02lp2040.outbound.protection.outlook.com [104.47.11.40])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqt8mg1hm-6
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:15 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:10 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01: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: f3c1fae9-90b1-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Gcz2fapa26LFQAmG1I8hVtDYK9jALeWrZB4DOZdt0BzwvqgvCrF8Olrnm/zYHQJYdQavkfEKsjUl8nD69BlsGUmoRpz6fPaU8zJbI4LENuIxaQw2Y5FauB4qrDIN6+YAIK2rC3K255dwKplyuwO7DADfST4HjfrlOAsiAHKIWPIx3UW/y+SpkEJRajVshOAclC3uqNZ9XMhbZXaHdy7srIisr4EsTSpOsi1mYT7uBpvJMr4cluX8/3SZHfuUZTYuJeRUKXEleUs5uOwZGvCQEFTT2R52Vo4cL3RB40Bdi+mCmah3sz6iJEZniLfRVczHIx+I5L46JL8b21KObiLcQQ==
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=PbQ7MUIQ2IkedJNUm+tfwIF8ti84wzB5RJbUQkThnyY=;
 b=ZOaHy6KqIy72HdGYkLM32Ielp1BvC4Tsm75c6fEywoLdFK+NRPTQUORF80D9Fo8aQoaNQvnOneKI7+Fa/wJnvST/UwY9T3CXObSI9qkPfMnklyCAd2Fk7INwYRCUVmTvr9n9/KNfI8VBCcfPB8gDk0S5QaJ+o71aBUbowbovUdLBz8V6w8hP+lm8OIXysqzfbPwO2FgqiEeXdiyHokoN5MfyIC4gB9hP3uqbcMCf0OZpP/muKaftGESsPFupathe3EMFOXvg7bJxCvrtQoH8dmrtaFQxqPBkLkp8McXFV7sOmdrx6TfrEQJ1dDrSjfO83xvsvGWBoIjH6ai/MBPg+A==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PbQ7MUIQ2IkedJNUm+tfwIF8ti84wzB5RJbUQkThnyY=;
 b=dVVclVNkDLNX0e+t0qzaDqyjPucNs51ccJWSxjvYg9EQDB+XZMTNc+GfPiKNyD9hzzZc14CReKXHxXFQ86vYj+j4wWWWviV3tfTUdG/7Soif2aDp99wFtPTWAVIT0o7IjNjbeRpt19v30Kqukz0HpQ1BQuxSlaj3na47W3sKi3jZjY+Iowl969AZQT9zccpd9v6dDww2Jkl37DR8P19/Zb/p2uDF2IsBDe2dQkfo0kVHCUFqaCKZzo/It4ZAfY8uApjgcIYfV92o23CR0mA3mfZ/8rrUbDa+9gRui71EaibxzV5XZkVgyvz5fHIeb2YewOoMPwFeRG84Z+opv657uw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Michal Orzel <michal.orzel@amd.com>,
        Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>,
        =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 14/17] xen/arm: translate virtual PCI bus topology for
 guests
Thread-Topic: [PATCH v11 14/17] xen/arm: translate virtual PCI bus topology
 for guests
Thread-Index: AQHaJL6pGDTUzUqjcE21xonM3gZpjA==
Date: Sat, 2 Dec 2023 01:27:06 +0000
Message-ID: <20231202012556.2012281-15-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 1b72d35d-ceaf-452c-688b-08dbf2d5ce5b
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;
x-microsoft-antispam-message-info: 
 BhuAiKPS14c6DzpW49cSHpSn4xRJopWjveOMY2wYYQpBy/o+AL/sVgoiE/5U2Ii90JDQyG7KyBfOcAZrMSkU2IIRPOm8yFalVv1JXU421cBpoi7OAPIaCgPiLDutPbQDo4Dmot7UT0EBEYTP0MEfdMT+0tvkrbrrM1OZ36zPsBSSshvEpkVHPNk19aYjg3zaAGxGBSwiDAYZNAedf3SA8m9CsU3PCY1QAI7e6knB6A+LFLMLUvoNkyiisZKoUC4TmX0zyrabVUqDnT3ZX1PKUZa4qNecPMoJVyLN/XJJU2tXuEmt9JijJq8u5EpoOGQwJdiLaYOqgHdgkmOlFtlFB3W43fw1bQFHTWCjP/dnOlDK2iDVkAEOQtcJ7GZAJBHC3siwr/Da43Cx0EUg4t+bkr7ZrHg+VhsHOqayryidOrBOjlQrpxM46ptM36p3o/0tAD1+CfIU8+E/iCL/Lm1BKyhbHfAMRumhJSe6K89ob/3QmsQS4pOpCYgY8Bf9wH8uMn+uhO64shFUTcQtLfkqg7ceSSzROjQ2gdD5U8DFxS6A7zw5Wh9x92DSfbs2hCCG+M3GGj4V12dL/OASQ2xyaV9ZdD6XG5P+uvOXTJJ2Se28L3Dij11DzfOlqtWZOGHg
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?it+ETn2n+fRtJW4vDkVaBTAvTPCMdx8wT7Im1tREvpvA+6LEeo3rDWyhvL?=
 =?iso-8859-1?Q?qFh4FhFrotTRr5bIZrsKThjttwpYKiXCrUzZr/aJxDZmi3QMW0+UuN4c1n?=
 =?iso-8859-1?Q?p3DDmxO09TEuiHR6MwM8f9UqRhKNYJgH1r78+OXfklKSBsYP+0z597I+Tk?=
 =?iso-8859-1?Q?UfNM6r0CFlSjF6Y6t3kIdR3Sw4PF5MnSrpa2sUoWMOzWYY+eCm4Fraacxc?=
 =?iso-8859-1?Q?oMRW38Wxo+KxIizRyrnQtmrfGTd50v64pdPrF8oj9tjGQ/8hU5N8m6rD7u?=
 =?iso-8859-1?Q?SI1PoBa9YpfLyaVFJshfcnlQD9cI7w2Qq6lwsqfodtme6UaZ1j4ZDdKLfa?=
 =?iso-8859-1?Q?HKd+tDxyXq6DtU/ed20Fijv0nwyVG2GUNfbjS4WRdz4KctUW2cpOKQ99hc?=
 =?iso-8859-1?Q?K5eBKTLJLciahnBPHlW6SvtBKPo/QpCp0grEPBThOr50dbYqavtUTxU6Ty?=
 =?iso-8859-1?Q?ElT/ABzb1fRP7S/AwJZTHu5bXH5D+BRsTiJnxzfQus3cUJckkE/pAhchi/?=
 =?iso-8859-1?Q?VQa4XwpJmK+qagYXFZjU7pJGwr0+qrWJug7Ok/iNh1AzjrI/iZueUWoZxo?=
 =?iso-8859-1?Q?LjFKgh5lFVaelyKAa8vl8ThUOHjyio4E132SWCgtzfh+YeIKuBa5dWd/qI?=
 =?iso-8859-1?Q?Aah1fVtcy5jEcMHma1K6tG6ZayJQiKA0iD0vKDjJxqNVhO9ZWZbjlLBRrl?=
 =?iso-8859-1?Q?N1qWJPFP4OVXJgjqUO0fOgbqnOIvFAsX0wA6sXBm5PFzbMCezZ9GW/kUbs?=
 =?iso-8859-1?Q?9GsgSx/XB8P8U5HRLufPdxbxkBZGhxIQSsWinSuAKS9bgzMgOvcYU2Qu4v?=
 =?iso-8859-1?Q?u5ofBi0olre+fcSos+fkR0hYtmNLJu18XDZwruv4l4Rwj2d/eW1pemhi3O?=
 =?iso-8859-1?Q?LO0QyItrcKYdDGRybJ91zM9jD/b3TMn/gtcmIpFuuYnZZKp7DjuwZCXmSU?=
 =?iso-8859-1?Q?ETs1zW7W2OD4FWzTgsV1h4f1Zvnwntayl2HbKde54eC6uY7Fy9yOjLx2Cw?=
 =?iso-8859-1?Q?B80M/2JaX/F1faZacsNs4EcvZsjxEGmlRX7QSy2IQOUi22RXw9bjotFxFL?=
 =?iso-8859-1?Q?6UQmMMgaAMgqF5L7QqRHGQKzXPodyrZEgIAdGiCUrrtL65Dfxh1jh01qMx?=
 =?iso-8859-1?Q?TUu3IzqyG/hVrxE0KOHPQC/5cf3srHX09O7G0Pd07nZBnw943KPOVQuTMb?=
 =?iso-8859-1?Q?YY6HbVFtFHPWjjArLtR4sISfakAoBC7EAMGCRsHCtWvkhZpaXn6sTNDxUz?=
 =?iso-8859-1?Q?uucUX0e/qAQxtz1aiJRgrD4Bl+KX65/Iq8zItNyLp3OWOHxIEWsFp0wPGE?=
 =?iso-8859-1?Q?FuA716ARwBUfAIz5uxUDYciNPvBHehkuDvCzQfwCbzmpCC+gOdR6+0IUsN?=
 =?iso-8859-1?Q?G87ce8ZFHIeh8r7CeM0FkjMRWc0tXO2FVRtMhBP7lk5On6U/kMLL28Mh9N?=
 =?iso-8859-1?Q?IpWP9whH+5I2/QU+ge99gxSfHKwz44lNCqngsvi5eHUhxdcX517gwm3cub?=
 =?iso-8859-1?Q?0vVZ1sMq9ZFRdfbztoJBJEUjn0Hc3LySJRI6uZDatSpbwMRDwM1r8+xtBg?=
 =?iso-8859-1?Q?OmSDP8mhFYEa0nWeJdvXlt82kss3PI8jBvPgYLaMUJ7x1EtUt4VCGd+JCF?=
 =?iso-8859-1?Q?tEG6amar+ZTTg+mq7RmQnAG6GIBqp+P/kUk3zr7aKsyte+XYE7F3tNwA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b72d35d-ceaf-452c-688b-08dbf2d5ce5b
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:06.4593
 (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: sfLpyYgFxmli5SNiqjaGvaNs4tATJklytmbXrCI3WYMkzJHot/fv8gf8IOpIbBOnuA8lWAGCafTQmNIcLvjAW3tMQIujyGTIFt30dcphYjQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-ORIG-GUID: HMiYs3pK8hazm7EO0Zwij9s3iT339YZz
X-Proofpoint-GUID: HMiYs3pK8hazm7EO0Zwij9s3iT339YZz
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0
 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0
 malwarescore=0 lowpriorityscore=0 mlxlogscore=999 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There are three  originators for the PCI configuration space access:
1. The domain that owns physical host bridge: MMIO handlers are
there so we can update vPCI register handlers with the values
written by the hardware domain, e.g. physical view of the registers
vs guest's view on the configuration space.
2. Guest access to the passed through PCI devices: we need to properly
map virtual bus topology to the physical one, e.g. pass the configuration
space access to the corresponding physical devices.
3. Emulated host PCI bridge access. It doesn't exist in the physical
topology, e.g. it can't be mapped to some physical host bridge.
So, all access to the host bridge itself needs to be trapped and
emulated.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
In v11:
- Fixed format issues
- Added ASSERT_UNREACHABLE() to the dummy implementation of
vpci_translate_virtual_device()
- Moved variable in vpci_sbdf_from_gpa(), now it is easier to follow
the logic in the function
Since v9:
- Commend about required lock replaced with ASSERT()
- Style fixes
- call to vpci_translate_virtual_device folded into vpci_sbdf_from_gpa
Since v8:
- locks moved out of vpci_translate_virtual_device()
Since v6:
- add pcidevs locking to vpci_translate_virtual_device
- update wrt to the new locking scheme
Since v5:
- add vpci_translate_virtual_device for #ifndef CONFIG_HAS_VPCI_GUEST_SUPPO=
RT
  case to simplify ifdefery
- add ASSERT(!is_hardware_domain(d)); to vpci_translate_virtual_device
- reset output register on failed virtual SBDF translation
Since v4:
- indentation fixes
- constify struct domain
- updated commit message
- updates to the new locking scheme (pdev->vpci_lock)
Since v3:
- revisit locking
- move code to vpci.c
Since v2:
 - pass struct domain instead of struct vcpu
 - constify arguments where possible
 - gate relevant code with CONFIG_HAS_VPCI_GUEST_SUPPORT
New in v2
---
 xen/arch/arm/vpci.c     | 47 +++++++++++++++++++++++++++++++----------
 xen/drivers/vpci/vpci.c | 24 +++++++++++++++++++++
 xen/include/xen/vpci.h  | 12 +++++++++++
 3 files changed, 72 insertions(+), 11 deletions(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 3bc4bb5508..7a6a0017d1 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -7,31 +7,51 @@
=20
 #include <asm/mmio.h>
=20
-static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
-                                     paddr_t gpa)
+static bool vpci_sbdf_from_gpa(struct domain *d,
+                               const struct pci_host_bridge *bridge,
+                               paddr_t gpa, pci_sbdf_t *sbdf)
 {
-    pci_sbdf_t sbdf;
+    bool translated =3D true;
+
+    ASSERT(sbdf);
=20
     if ( bridge )
     {
-        sbdf.sbdf =3D VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
-        sbdf.seg =3D bridge->segment;
-        sbdf.bus +=3D bridge->cfg->busn_start;
+        sbdf->sbdf =3D VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
+        sbdf->seg =3D bridge->segment;
+        sbdf->bus +=3D bridge->cfg->busn_start;
     }
     else
-        sbdf.sbdf =3D VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
+    {
+        /*
+         * For the passed through devices we need to map their virtual SBD=
F
+         * to the physical PCI device being passed through.
+         */
+        sbdf->sbdf =3D VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
+        read_lock(&d->pci_lock);
+        translated =3D vpci_translate_virtual_device(d, sbdf);
+        read_unlock(&d->pci_lock);
+    }
=20
-    return sbdf;
+    return translated;
 }
=20
 static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
                           register_t *r, void *p)
 {
     struct pci_host_bridge *bridge =3D p;
-    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa);
+    pci_sbdf_t sbdf;
     /* data is needed to prevent a pointer cast on 32bit */
     unsigned long data;
=20
+    ASSERT(!bridge =3D=3D !is_hardware_domain(v->domain));
+
+    if ( !vpci_sbdf_from_gpa(v->domain, bridge, info->gpa, &sbdf) )
+    {
+        *r =3D ~0UL;
+        return 1;
+    }
+
     if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
                         1U << info->dabt.size, &data) )
     {
@@ -39,7 +59,7 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *in=
fo,
         return 1;
     }
=20
-    *r =3D ~0ul;
+    *r =3D ~0UL;
=20
     return 0;
 }
@@ -48,7 +68,12 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *=
info,
                            register_t r, void *p)
 {
     struct pci_host_bridge *bridge =3D p;
-    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa);
+    pci_sbdf_t sbdf;
+
+    ASSERT(!bridge =3D=3D !is_hardware_domain(v->domain));
+
+    if ( !vpci_sbdf_from_gpa(v->domain, bridge, info->gpa, &sbdf) )
+        return 1;
=20
     return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                            1U << info->dabt.size, r);
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index c92f2d7bc3..7c0b610ccc 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -77,6 +77,30 @@ static int add_virtual_device(struct pci_dev *pdev)
     return 0;
 }
=20
+/*
+ * Find the physical device which is mapped to the virtual device
+ * and translate virtual SBDF to the physical one.
+ */
+bool vpci_translate_virtual_device(const struct domain *d, pci_sbdf_t *sbd=
f)
+{
+    const struct pci_dev *pdev;
+
+    ASSERT(!is_hardware_domain(d));
+    ASSERT(rw_is_locked(&d->pci_lock));
+
+    for_each_pdev ( d, pdev )
+    {
+        if ( pdev->vpci && (pdev->vpci->guest_sbdf.sbdf =3D=3D sbdf->sbdf)=
 )
+        {
+            /* Replace guest SBDF with the physical one. */
+            *sbdf =3D pdev->sbdf;
+            return true;
+        }
+    }
+
+    return false;
+}
+
 #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
=20
 void vpci_deassign_device(struct pci_dev *pdev)
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 6a06267ef2..ec6598237b 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -294,6 +294,18 @@ static inline bool __must_check vpci_process_pending(s=
truct vcpu *v)
 }
 #endif
=20
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+bool vpci_translate_virtual_device(const struct domain *d, pci_sbdf_t *sbd=
f);
+#else
+static inline bool vpci_translate_virtual_device(const struct domain *d,
+                                                 pci_sbdf_t *sbdf)
+{
+    ASSERT_UNREACHABLE();
+
+    return false;
+}
+#endif
+
 #endif
=20
 /*
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645844.1008378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En9-00069F-9S; Sat, 02 Dec 2023 01:27:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645844.1008378; Sat, 02 Dec 2023 01:27:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En8-00067B-BM; Sat, 02 Dec 2023 01:27:34 +0000
Received: by outflank-mailman (input) for mailman id 645844;
 Sat, 02 Dec 2023 01:27: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9En3-000272-KR
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:29 +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 f28e4afa-90b1-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:27:25 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B1NLGuv008549; Sat, 2 Dec 2023 01:27:10 GMT
Received: from eur03-dba-obe.outbound.protection.outlook.com
 (mail-dbaeur03lp2169.outbound.protection.outlook.com [104.47.51.169])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uqfjgj05q-3
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:09 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:05 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27: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: f28e4afa-90b1-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EtsSzTTFKfMxr9RT3u7c667tfDkp40sFebXgbVBZl2pfkgxTcOQhVvsVtqSqgJMnsiEYM25PHvLkUR9u7lHnYd2Fsfm1mHQNiHmMTPRv9XaGFypUvJ0N1v2Q3cfBaNCIjFDxgl+D70MMlwzIHIZSEXPi1Qgw+uqLazQUYQkVQ4x3zHoB9yZIMa//ftyevRG7SK5xBMJQY3fjVrHZfECtBj/ykbjhjfZC6UCec63e5DmeLVBIyW3V5WOrK+HDZ8OvhP7Tsqo0/sE2LBij1D3Qja+fItcnsiC7u8AJs21Q518A4nnX+Zl8Z6v9tJKGiYyOggPx7lFBhCMYFTUXnyIsrw==
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=IICNCcNAN0CxumVVzE/EyahOFwl5SBHiAYz4cBvI7SY=;
 b=KPSiaLdszceynAJ4498AxfHYvxQSkaCsJu4sfh5jAinQIWoF8l4QLtXMJQUsmkFsqu74d6GwjW3ipyYoVL3vVr7RSQsPS9Zv42p892Eq0VHzmegIEMawguZ0bxOWatubmo2IVe+uMMHMWRt7GLE8EP/wqrDM3JjTFSagmgRH5Vkz6cwrXEdOxcckavX/9hj4d2+s8VRRwpKiAdDOeoR6JHN9X/jnVnNXNEIaZ7scuowcoTcXYwkJyF2avO1ZntZJQu5IO5Vl2y08Yp3eHcc5L8S9KyDjNo3Bavl9ZRS6ovKjb7N0KD3W1NlioH5SwmCfvQszE6qKEahRP54ZdJHsvQ==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IICNCcNAN0CxumVVzE/EyahOFwl5SBHiAYz4cBvI7SY=;
 b=cy94FqguVr4bbMwcACAJYI7hwhmvWhith8Pdx0FlH9CyPXyatOFwGQEgZeWIY7cGxCAlLYDIKzI+gVRNEdu/BZohljtDs9wRxB3iDCYHAo1o0PyTF8tXEaVl6lt3fQ8njw7ToySLgbWRl93TvpqmymSfSv3txKZu20pUtzfZhOUkqrFwm6OCfFVJ3wBZX2K00fFX/tk655yUzMdREjkf2hVKqVdeJOBxv0EUOz4I9rnXLLgCW3eLiT5a6G7PfxsbuPA5PgFoZ7mOySpQUqI8SG30Algr825S1NsPjKJL/nFG5W8c+CW2k/ZCvRJczKXXQph0wAqzFPp7gHeQ38jeiQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.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>, Wei Liu <wl@xen.org>,
        Paul Durrant <paul@xen.org>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        Kevin Tian
	<kevin.tian@intel.com>
Subject: [PATCH v11 02/17] pci: introduce per-domain PCI rwlock
Thread-Topic: [PATCH v11 02/17] pci: introduce per-domain PCI rwlock
Thread-Index: AQHaJL6n2Oa1PKslt0Wo3rzC+KkVjQ==
Date: Sat, 2 Dec 2023 01:27:02 +0000
Message-ID: <20231202012556.2012281-3-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 9001b78d-5e3f-4a6d-8e86-08dbf2d5caea
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;
x-microsoft-antispam-message-info: 
 e0GE2z6cPR+Kk8pM706jF6sVXMbpqpThb0Q4GOjknq/TdSc8kmcS1fpUYUVDJVH7PJIDF0CVuLDrXWGH5CbdLt3Zek0DJavc8A4cDI5fSzqxhjBAqzggXk98cigogP2lF3yGQXRKP3IeZrRt0X83dD/3DyQ6/SE2QOkT/QrwaTAahOh1qm3uovi+P93rX7aRJsGUH8CxoZ0W66xDgSf9s9FoX4enWjGMUEZjbf2886FWYeoVc3jgg5zDgRktR7k2zw707lpvPMQyUkYHP3erVWqvTCNo11ENaYMlqfk7lBKma1SlFVcX053RkiODCtsaQrrfQbAfOEIZKWvqABesQIlqRFqqLx57QsGRu0viM8IYdFej8BW5a5jSBqYk/yvMPX9qx9wgLa3KjDZKVgmLJeQ6jhWNLVMn8OCiKcuSsB9+KY5NllrOKMxAxGVtU9qqKA3ykWeoX6Jvr5tmIfxxUU70o2dA/xWXDHbc8F0neBPgdT6+2TTkWYTQ1mEhaxo9ue8ULwJLzNVlnCYafxKYmpgm1n4qd7/ghN0jjuJ9S6HIZ75jNIXduybNBFjcH1exZITpGyu7Tr/0UtxH0HSLDKMv2D0tXPxb16cGbW1BDod9ceEaYzmms5SS3jW6eDbM
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(7416002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?UDVCTzJvWUF6VTVma0M3cGovemZaWWxnWi9hTFhMenBVdzNDYVBYanVRZ2Zi?=
 =?utf-8?B?MURubTRWWDd3MlJEOEVsTkQvN1h6RzBPbW9OdjRjQ2ZmRXFKOGhtcjVKcFpi?=
 =?utf-8?B?cS9peXYzS3pFSmlueGprb29HcFlDNzZ2SVJFcTNmQnVpR0Q2OFp4bFN2ZUVW?=
 =?utf-8?B?MitZYmFZTmkzeTUvU3JOeENLR1EybDlNeFpFbnFORGpZNlljVm1tUUd1SFkr?=
 =?utf-8?B?V09kRm1helpGTlRMRFphdmhPakVhdisyYVVaN2I1ZVV0R3BYN3JabTVQTDhk?=
 =?utf-8?B?ajBYeXJYTmFsb3QvdlJoeVhrNXVmaE8zVVl6eWdLL3FFOHNSVkUwUkZldnZX?=
 =?utf-8?B?NWM5OCtKRGxKT29IVEZxcWNORld5TWNnWEN6dm9nV0QvS1VYbHkxWU01a0xH?=
 =?utf-8?B?ZHl5QjE2OUxSd25yU1h5WVI1c2g5R0o3b21hanJERHdJN1NULzRCMWlpZWwv?=
 =?utf-8?B?cTRLYUF0TFdBWGcxclBqcjQ1bzJzemg5aTZLenp1RkdvNnRNNElCVm51dmtP?=
 =?utf-8?B?UGFuNXZ0b2M2b2pDYkhyWDFpaE5NZThaMkRna2Y5S01hOG1TTUxBUk9XSXZT?=
 =?utf-8?B?OWN2ekRpNWx4b0xNMngzSnFWRUNDeEZUR3NGZGhIRGxkRG1haTdiQUh1Z25x?=
 =?utf-8?B?T1ZORXBCcWxWenVqbmx4QTljUUpsRGNOOHI5YWpYV3lNcXIyYmxTOUE4ekdh?=
 =?utf-8?B?S2k2VWJRSStPRURRTTBpNDFLVUJDald2NGFXbkpxM0JEd3BOSWkycjdQNjh4?=
 =?utf-8?B?S1ZvT1o2ZytlMEI3SG9nTFpCOFNkdTNFWTc1ZkVpQngxWXRzamRXanNRWGxr?=
 =?utf-8?B?Ty9pTTZNQThlN2IwQnJDbFVJZHozTElvRmlNS29BNjY5ZFpOVGhtenJMSTlj?=
 =?utf-8?B?NjhqRlBoN3NLK3VJejNDalVNaTR3YzB0QjFpS2Z1QzZ1R2RNV3VDeVJvTVdp?=
 =?utf-8?B?L3duVnhrLy8rTVE3c1E4eVdPK2FOVHR6RVRnUlpKV3pQdzlKM1AyN1RxWU85?=
 =?utf-8?B?Q1ZpRHVkc2UvdXk3dmwxS3pDOUhsNXMrbzJITmxZYmlhcDViNDU1NFZZbEY3?=
 =?utf-8?B?QWZSaXJ1cVMwc1B4dm1TOEdvNUNsSm5oUnFDd3kwdDI3REZBSEpjOTFwZW0w?=
 =?utf-8?B?V2lZemZUUmxqVGtmSXQrRmV6Q0UxWmFyMHlIcXE2bERGZFROcmUwN1g0aEU4?=
 =?utf-8?B?N0JzTTVRTjQwVjJ1aE9pcUg4VW1XNEZXZlNmbG9CWlRnakU3TDdkdFpaR2VQ?=
 =?utf-8?B?WU1pVFNoQ1J2TE9vOU9nWG93a0pad1dmOURmZHRoZVFVaS80OFAzYzVlOVZ6?=
 =?utf-8?B?WUdrZ1hFdkhwL1Y1dkJmcytEYWIzeERIRFJwSFdkbmNDeEgxTjcrVzhoZFhi?=
 =?utf-8?B?NFJUNkl5RlRxVUw5bE0wY3JpU2NQQ1l5K1RsRlVOT2Yza3RycDBwcURsOFh6?=
 =?utf-8?B?bHU2cTNFbDBianNIeUNVQXNLOUJ3ajdoSGJNMHVaUUJJNHFUdDVKSU5aM0Vh?=
 =?utf-8?B?dTdrVjQxT3l2OFN4Sjk0TG9PV2xuUW5KY1NxaDJxWHpuZGVEd3RTS3FMdmtS?=
 =?utf-8?B?QTVSbTBIRFNMSnU1all5aStjSW9EOG1YRHNpOG5McmtBZmg5RzJTaG96RWQ3?=
 =?utf-8?B?WmIxb1dGai9PcWdiSnZUVEFQaTR3ckM1cTMwZnF0NlFJelY5bUZIUitiRXFz?=
 =?utf-8?B?SS9lbk95NXR6Y2Nnd1RuQjA2U0VPUzcrL00rVU9zbmgvenZBUENhazNxSS9t?=
 =?utf-8?B?czhkTWk2ZXM1Y0s5d1phNTRveEcza3Z0bmpGdTJnYUlxTUY4dUh1MXNLWGJx?=
 =?utf-8?B?K2cxS0RaSzBQOHA2cVI1YjV4YzZYZ1ZaRDhaQ29iMkpWQlFhT2MvNE93OUQx?=
 =?utf-8?B?WEk5aE5sdFdhUHNESUw1MlNWSzFmY1FnRll5SmwxUWNVeFd0dnd3aTNzZThM?=
 =?utf-8?B?TFNqTWhMR0ZSK09peDc2ZCtYZXFGQW00YW10cDFrRHRhdWNVWkxQUTBaQkJ1?=
 =?utf-8?B?Y1BKa2c3aHNRWDRJbUFSUEZldFJGbGR1VklmdStGTVJuUlROeHN3ZE0vdkw2?=
 =?utf-8?B?aTFFMkFkZnNUWUxoenRJU1JhM1ZzQ1Fvb0R1eEJ0M3o2cGpoazZwSkxxZ3h3?=
 =?utf-8?B?clAwSFdHa0gvQ0RkRWdBd0ZtVVZHRUJHcjRGYlJLS3VIa3c0bTgyamNBOHV0?=
 =?utf-8?B?WFE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4992D0DFB71AB74A97E397CF7B083A59@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9001b78d-5e3f-4a6d-8e86-08dbf2d5caea
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:02.9281
 (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: Heozpc5Ctl5PMKuY2ty3OCNbKXtAt4Qu/zOR/YGyq4jN65ILqtQEnUgNfse9debQS5zDQgVWjlyvH1lsFKs6rVE578AKchShrQNv/FgKkwg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-GUID: aR7fQrPtL88xBAhVHPNd2McuMJ03MFdI
X-Proofpoint-ORIG-GUID: aR7fQrPtL88xBAhVHPNd2McuMJ03MFdI
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 clxscore=1015 suspectscore=0
 impostorscore=0 adultscore=0 bulkscore=0 priorityscore=1501 mlxscore=0
 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

QWRkIHBlci1kb21haW4gZC0+cGNpX2xvY2sgdGhhdCBwcm90ZWN0cyBhY2Nlc3MgdG8NCmQtPnBk
ZXZfbGlzdC4gUHVycG9zZSBvZiB0aGlzIGxvY2sgaXMgdG8gZ2l2ZSBndWFyYW50ZWVzIHRvIFZQ
Q0kgY29kZQ0KdGhhdCB1bmRlcmx5aW5nIHBkZXYgd2lsbCBub3QgZGlzYXBwZWFyIHVuZGVyIGZl
ZXQuIFRoaXMgaXMgYSBydy1sb2NrLA0KYnV0IHRoaXMgcGF0Y2ggYWRkcyBvbmx5IHdyaXRlX2xv
Y2soKXMuIFRoZXJlIHdpbGwgYmUgcmVhZF9sb2NrKCkNCnVzZXJzIGluIHRoZSBuZXh0IHBhdGNo
ZXMuDQoNClRoaXMgbG9jayBzaG91bGQgYmUgdGFrZW4gaW4gd3JpdGUgbW9kZSBldmVyeSB0aW1l
IGQtPnBkZXZfbGlzdCBpcw0KYWx0ZXJlZC4gQWxsIHdyaXRlIGFjY2Vzc2VzIGFsc28gc2hvdWxk
IGJlIHByb3RlY3RlZCBieSBwY2lkZXZzX2xvY2soKQ0KYXMgd2VsbC4gSWRlYSBpcyB0aGF0IGFu
eSB1c2VyIHRoYXQgd2FudHMgcmVhZCBhY2Nlc3MgdG8gdGhlIGxpc3Qgb3INCnRvIHRoZSBkZXZp
Y2VzIHN0b3JlZCBpbiB0aGUgbGlzdCBzaG91bGQgdXNlIGVpdGhlciB0aGlzIG5ldw0KZC0+cGNp
X2xvY2sgb3Igb2xkIHBjaWRldnNfbG9jaygpLiBVc2FnZSBvZiBhbnkgb2YgdGhpcyB0d28gbG9j
a3Mgd2lsbA0KZW5zdXJlIG9ubHkgdGhhdCBwZGV2IG9mIGludGVyZXN0IHdpbGwgbm90IGRpc2Fw
cGVhciBmcm9tIHVuZGVyIGZlZXQNCmFuZCB0aGF0IHRoZSBwZGV2IHN0aWxsIHdpbGwgYmUgYXNz
aWduZWQgdG8gdGhlIHNhbWUgZG9tYWluLiBPZg0KY291cnNlLCBhbnkgbmV3IHVzZXJzIHNob3Vs
ZCB1c2UgcGNpZGV2c19sb2NrKCkgd2hlbiBpdCBpcw0KYXBwcm9wcmlhdGUgKGUuZy4gd2hlbiBh
Y2Nlc3NpbmcgYW55IG90aGVyIHN0YXRlIHRoYXQgaXMgcHJvdGVjdGVkIGJ5DQp0aGUgc2FpZCBs
b2NrKS4gSW4gY2FzZSBib3RoIHRoZSBuZXdseSBpbnRyb2R1Y2VkIHBlci1kb21haW4gcndsb2Nr
DQphbmQgdGhlIHBjaWRldnMgbG9jayBpcyB0YWtlbiwgdGhlIGxhdHRlciBtdXN0IGJlIGFjcXVp
cmVkIGZpcnN0Lg0KDQpTdWdnZXN0ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPg0KU3VnZ2VzdGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+
DQpTaWduZWQtb2ZmLWJ5OiBWb2xvZHlteXIgQmFiY2h1ayA8dm9sb2R5bXlyX2JhYmNodWtAZXBh
bS5jb20+DQpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+DQoNCi0tLQ0KDQpDaGFuZ2VzIGluIHYxMDoNCiAtIHBkZXYtPmRvbWFpbiBpcyBhc3NpZ25l
ZCBhZnRlciByZW1vdmluZyBmcm9tIHNvdXJjZSBkb21haW4gYnV0DQogICBiZWZvcmUgYWRkaW5n
IHRvIHRhcmdldCBkb21haW4gaW4gcmVhc3NpZ25fZGV2aWNlKCkgZnVuY3Rpb25zLg0KDQpDaGFu
Z2VzIGluIHY5Og0KIC0gcmV0dXJuZWQgYmFjayAicGRldi0+ZG9tYWluID0gdGFyZ2V0OyIgaW4g
QU1EIElPTU1VIGNvZGUNCiAtIHVzZWQgInNvdXJjZSIgaW5zdGVhZCBvZiBwZGV2LT5kb21haW4g
aW4gSU9NTVUgZnVuY3Rpb25zDQogLSBhZGRlZCBjb21tZW50IGFib3V0IGxvY2sgb3JkZXJpbmcg
aW4gdGhlIGNvbW1pdCBtZXNzYWdlDQogLSByZWR1Y2VkIGxvY2tlZCByZWdpb25zDQogLSBtaW5v
ciBjaGFuZ2VzIG5vbi1mdW5jdGlvbmFsIGNoYW5nZXMgaW4gdmFyaW91cyBwbGFjZXMNCg0KQ2hh
bmdlcyBpbiB2ODoNCiAtIE5ldyBwYXRjaA0KDQpDaGFuZ2VzIGluIHY4IHZzIFJGQzoNCiAtIFJl
bW92ZWQgYWxsIHJlYWRfbG9ja3MgYWZ0ZXIgZGlzY3Vzc2lvbiB3aXRoIFJvZ2VyIGluICN4ZW5k
ZXZlbA0KIC0gcGNpX3JlbGVhc2VfZGV2aWNlcygpIG5vdyByZXR1cm5zIHRoZSBmaXJzdCBlcnJv
ciBjb2RlDQogLSBleHRlbmRlZCBjb21taXQgbWVzc2FnZQ0KIC0gYWRkZWQgbWlzc2luZyBsb2Nr
IGluIHBjaV9yZW1vdmVfZGV2aWNlKCkNCiAtIGV4dGVuZGVkIGxvY2tlZCByZWdpb24gaW4gcGNp
X2FkZF9kZXZpY2UoKSB0byBwcm90ZWN0IGxpc3RfZGVsKCkgY2FsbHMNCi0tLQ0KIHhlbi9jb21t
b24vZG9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArDQogeGVuL2RyaXZlcnMv
cGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyB8ICA5ICsrLQ0KIHhlbi9kcml2ZXJzL3Bh
c3N0aHJvdWdoL3BjaS5jICAgICAgICAgICAgICAgfCA3MSArKysrKysrKysrKysrKysrKy0tLS0N
CiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyAgICAgICAgIHwgIDkgKystDQog
eGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAgICAgICAgICAgICAgICAgICB8ICAxICsNCiA1IGZp
bGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0t
Z2l0IGEveGVuL2NvbW1vbi9kb21haW4uYyBiL3hlbi9jb21tb24vZG9tYWluLmMNCmluZGV4IGNk
MmNhNmQ0OWEuLjliODkwMmRhYTMgMTAwNjQ0DQotLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jDQor
KysgYi94ZW4vY29tbW9uL2RvbWFpbi5jDQpAQCAtNjUxLDYgKzY1MSw3IEBAIHN0cnVjdCBkb21h
aW4gKmRvbWFpbl9jcmVhdGUoZG9taWRfdCBkb21pZCwNCiANCiAjaWZkZWYgQ09ORklHX0hBU19Q
Q0kNCiAgICAgSU5JVF9MSVNUX0hFQUQoJmQtPnBkZXZfbGlzdCk7DQorICAgIHJ3bG9ja19pbml0
KCZkLT5wY2lfbG9jayk7DQogI2VuZGlmDQogDQogICAgIC8qIEFsbCBlcnJvciBwYXRocyBjYW4g
ZGVwZW5kIG9uIHRoZSBhYm92ZSBzZXR1cC4gKi8NCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9w
YXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv
YW1kL3BjaV9hbWRfaW9tbXUuYw0KaW5kZXggNmJjNzNkYzIxMC4uNWNkMjA4YmJlZiAxMDA2NDQN
Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMNCisrKyBi
L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMNCkBAIC00ODEsOCAr
NDgxLDE1IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgcmVhc3NpZ25fZGV2aWNlKA0KIA0KICAgICBp
ZiAoIGRldmZuID09IHBkZXYtPmRldmZuICYmIHBkZXYtPmRvbWFpbiAhPSB0YXJnZXQgKQ0KICAg
ICB7DQotICAgICAgICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmdGFyZ2V0LT5wZGV2
X2xpc3QpOw0KKyAgICAgICAgd3JpdGVfbG9jaygmc291cmNlLT5wY2lfbG9jayk7DQorICAgICAg
ICBsaXN0X2RlbCgmcGRldi0+ZG9tYWluX2xpc3QpOw0KKyAgICAgICAgd3JpdGVfdW5sb2NrKCZz
b3VyY2UtPnBjaV9sb2NrKTsNCisNCiAgICAgICAgIHBkZXYtPmRvbWFpbiA9IHRhcmdldDsNCisN
CisgICAgICAgIHdyaXRlX2xvY2soJnRhcmdldC0+cGNpX2xvY2spOw0KKyAgICAgICAgbGlzdF9h
ZGQoJnBkZXYtPmRvbWFpbl9saXN0LCAmdGFyZ2V0LT5wZGV2X2xpc3QpOw0KKyAgICAgICAgd3Jp
dGVfdW5sb2NrKCZ0YXJnZXQtPnBjaV9sb2NrKTsNCiAgICAgfQ0KIA0KICAgICAvKg0KZGlmZiAt
LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFzc3Ro
cm91Z2gvcGNpLmMNCmluZGV4IDA0ZDAwYzdjMzcuLmI4YWQ0ZmEwN2MgMTAwNjQ0DQotLS0gYS94
ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYw0KKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91
Z2gvcGNpLmMNCkBAIC00NTMsNyArNDUzLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IF9wY2lfaGlk
ZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQogICAgIGlmICggcGRldi0+ZG9tYWluICkN
CiAgICAgICAgIHJldHVybjsNCiAgICAgcGRldi0+ZG9tYWluID0gZG9tX3hlbjsNCisgICAgd3Jp
dGVfbG9jaygmZG9tX3hlbi0+cGNpX2xvY2spOw0KICAgICBsaXN0X2FkZCgmcGRldi0+ZG9tYWlu
X2xpc3QsICZkb21feGVuLT5wZGV2X2xpc3QpOw0KKyAgICB3cml0ZV91bmxvY2soJmRvbV94ZW4t
PnBjaV9sb2NrKTsNCiB9DQogDQogaW50IF9faW5pdCBwY2lfaGlkZV9kZXZpY2UodW5zaWduZWQg
aW50IHNlZywgdW5zaWduZWQgaW50IGJ1cywNCkBAIC03NDYsNyArNzQ4LDkgQEAgaW50IHBjaV9h
ZGRfZGV2aWNlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sDQogICAgIGlmICggIXBkZXYtPmRv
bWFpbiApDQogICAgIHsNCiAgICAgICAgIHBkZXYtPmRvbWFpbiA9IGhhcmR3YXJlX2RvbWFpbjsN
CisgICAgICAgIHdyaXRlX2xvY2soJmhhcmR3YXJlX2RvbWFpbi0+cGNpX2xvY2spOw0KICAgICAg
ICAgbGlzdF9hZGQoJnBkZXYtPmRvbWFpbl9saXN0LCAmaGFyZHdhcmVfZG9tYWluLT5wZGV2X2xp
c3QpOw0KKyAgICAgICAgd3JpdGVfdW5sb2NrKCZoYXJkd2FyZV9kb21haW4tPnBjaV9sb2NrKTsN
CiANCiAgICAgICAgIC8qDQogICAgICAgICAgKiBGb3IgZGV2aWNlcyBub3QgZGlzY292ZXJlZCBi
eSBYZW4gZHVyaW5nIGJvb3QsIGFkZCB2UENJIGhhbmRsZXJzDQpAQCAtNzU2LDcgKzc2MCw5IEBA
IGludCBwY2lfYWRkX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLA0KICAgICAgICAg
aWYgKCByZXQgKQ0KICAgICAgICAgew0KICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJT
ZXR1cCBvZiB2UENJIGZhaWxlZDogJWRcbiIsIHJldCk7DQorICAgICAgICAgICAgd3JpdGVfbG9j
aygmaGFyZHdhcmVfZG9tYWluLT5wY2lfbG9jayk7DQogICAgICAgICAgICAgbGlzdF9kZWwoJnBk
ZXYtPmRvbWFpbl9saXN0KTsNCisgICAgICAgICAgICB3cml0ZV91bmxvY2soJmhhcmR3YXJlX2Rv
bWFpbi0+cGNpX2xvY2spOw0KICAgICAgICAgICAgIHBkZXYtPmRvbWFpbiA9IE5VTEw7DQogICAg
ICAgICAgICAgZ290byBvdXQ7DQogICAgICAgICB9DQpAQCAtNzY0LDcgKzc3MCw5IEBAIGludCBw
Y2lfYWRkX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLA0KICAgICAgICAgaWYgKCBy
ZXQgKQ0KICAgICAgICAgew0KICAgICAgICAgICAgIHZwY2lfcmVtb3ZlX2RldmljZShwZGV2KTsN
CisgICAgICAgICAgICB3cml0ZV9sb2NrKCZoYXJkd2FyZV9kb21haW4tPnBjaV9sb2NrKTsNCiAg
ICAgICAgICAgICBsaXN0X2RlbCgmcGRldi0+ZG9tYWluX2xpc3QpOw0KKyAgICAgICAgICAgIHdy
aXRlX3VubG9jaygmaGFyZHdhcmVfZG9tYWluLT5wY2lfbG9jayk7DQogICAgICAgICAgICAgcGRl
di0+ZG9tYWluID0gTlVMTDsNCiAgICAgICAgICAgICBnb3RvIG91dDsNCiAgICAgICAgIH0NCkBA
IC04MTQsNyArODIyLDExIEBAIGludCBwY2lfcmVtb3ZlX2RldmljZSh1MTYgc2VnLCB1OCBidXMs
IHU4IGRldmZuKQ0KICAgICAgICAgICAgIHBjaV9jbGVhbnVwX21zaShwZGV2KTsNCiAgICAgICAg
ICAgICByZXQgPSBpb21tdV9yZW1vdmVfZGV2aWNlKHBkZXYpOw0KICAgICAgICAgICAgIGlmICgg
cGRldi0+ZG9tYWluICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIHdyaXRlX2xv
Y2soJnBkZXYtPmRvbWFpbi0+cGNpX2xvY2spOw0KICAgICAgICAgICAgICAgICBsaXN0X2RlbCgm
cGRldi0+ZG9tYWluX2xpc3QpOw0KKyAgICAgICAgICAgICAgICB3cml0ZV91bmxvY2soJnBkZXYt
PmRvbWFpbi0+cGNpX2xvY2spOw0KKyAgICAgICAgICAgIH0NCiAgICAgICAgICAgICBwcmludGso
WEVOTE9HX0RFQlVHICJQQ0kgcmVtb3ZlIGRldmljZSAlcHBcbiIsICZwZGV2LT5zYmRmKTsNCiAg
ICAgICAgICAgICBmcmVlX3BkZXYocHNlZywgcGRldik7DQogICAgICAgICAgICAgYnJlYWs7DQpA
QCAtODg1LDI2ICs4OTcsNjEgQEAgc3RhdGljIGludCBkZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGRv
bWFpbiAqZCwgdWludDE2X3Qgc2VnLCB1aW50OF90IGJ1cywNCiANCiBpbnQgcGNpX3JlbGVhc2Vf
ZGV2aWNlcyhzdHJ1Y3QgZG9tYWluICpkKQ0KIHsNCi0gICAgc3RydWN0IHBjaV9kZXYgKnBkZXYs
ICp0bXA7DQotICAgIHU4IGJ1cywgZGV2Zm47DQotICAgIGludCByZXQ7DQorICAgIGludCBjb21i
aW5lZF9yZXQ7DQorICAgIExJU1RfSEVBRChmYWlsZWRfcGRldnMpOw0KIA0KICAgICBwY2lkZXZz
X2xvY2soKTsNCi0gICAgcmV0ID0gYXJjaF9wY2lfY2xlYW5fcGlycXMoZCk7DQotICAgIGlmICgg
cmV0ICkNCisNCisgICAgY29tYmluZWRfcmV0ID0gYXJjaF9wY2lfY2xlYW5fcGlycXMoZCk7DQor
ICAgIGlmICggY29tYmluZWRfcmV0ICkNCiAgICAgew0KICAgICAgICAgcGNpZGV2c191bmxvY2so
KTsNCi0gICAgICAgIHJldHVybiByZXQ7DQorICAgICAgICByZXR1cm4gY29tYmluZWRfcmV0Ow0K
ICAgICB9DQotICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSAoIHBkZXYsIHRtcCwgJmQtPnBk
ZXZfbGlzdCwgZG9tYWluX2xpc3QgKQ0KKw0KKyAgICB3cml0ZV9sb2NrKCZkLT5wY2lfbG9jayk7
DQorDQorICAgIHdoaWxlICggIWxpc3RfZW1wdHkoJmQtPnBkZXZfbGlzdCkgKQ0KICAgICB7DQot
ICAgICAgICBidXMgPSBwZGV2LT5idXM7DQotICAgICAgICBkZXZmbiA9IHBkZXYtPmRldmZuOw0K
LSAgICAgICAgcmV0ID0gZGVhc3NpZ25fZGV2aWNlKGQsIHBkZXYtPnNlZywgYnVzLCBkZXZmbikg
PzogcmV0Ow0KKyAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBsaXN0X2ZpcnN0X2VudHJ5
KCZkLT5wZGV2X2xpc3QsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IHBjaV9kZXYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZG9tYWluX2xpc3QpOw0KKyAgICAgICAgdWludDE2X3Qgc2VnID0g
cGRldi0+c2VnOw0KKyAgICAgICAgdWludDhfdCBidXMgPSBwZGV2LT5idXM7DQorICAgICAgICB1
aW50OF90IGRldmZuID0gcGRldi0+ZGV2Zm47DQorICAgICAgICBpbnQgcmV0Ow0KKw0KKyAgICAg
ICAgd3JpdGVfdW5sb2NrKCZkLT5wY2lfbG9jayk7DQorICAgICAgICByZXQgPSBkZWFzc2lnbl9k
ZXZpY2UoZCwgc2VnLCBidXMsIGRldmZuKTsNCisgICAgICAgIHdyaXRlX2xvY2soJmQtPnBjaV9s
b2NrKTsNCisgICAgICAgIGlmICggcmV0ICkNCisgICAgICAgIHsNCisgICAgICAgICAgICBjb25z
dCBzdHJ1Y3QgcGNpX2RldiAqdG1wOw0KKw0KKyAgICAgICAgICAgIC8qDQorICAgICAgICAgICAg
ICogV2UgbmVlZCB0byBjaGVjayBpZiBkZWFzc2lnbl9kZXZpY2UoKSBsZWZ0IG91ciBwZGV2IGlu
DQorICAgICAgICAgICAgICogZG9tYWluJ3MgbGlzdC4gQXMgd2UgZHJvcHBlZCB0aGUgbG9jaywg
d2UgY2FuJ3QgYmUgc3VyZQ0KKyAgICAgICAgICAgICAqIHRoYXQgbGlzdCB3YXNuJ3QgcGVybXV0
YXRlZCBpbiBzb21lIHJhbmRvbSB3YXksIHNvIHdlDQorICAgICAgICAgICAgICogbmVlZCB0byB0
cmF2ZXJzZSB0aGUgd2hvbGUgbGlzdC4NCisgICAgICAgICAgICAgKi8NCisgICAgICAgICAgICBm
b3JfZWFjaF9wZGV2ICggZCwgdG1wICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAg
IGlmICggdG1wID09IHBkZXYgKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAg
ICAgICBsaXN0X21vdmVfdGFpbCgmcGRldi0+ZG9tYWluX2xpc3QsICZmYWlsZWRfcGRldnMpOw0K
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAg
ICAgICB9DQorDQorICAgICAgICAgICAgY29tYmluZWRfcmV0ID0gY29tYmluZWRfcmV0ID86IHJl
dDsNCisgICAgICAgIH0NCiAgICAgfQ0KKw0KKyAgICBsaXN0X3NwbGljZSgmZmFpbGVkX3BkZXZz
LCAmZC0+cGRldl9saXN0KTsNCisgICAgd3JpdGVfdW5sb2NrKCZkLT5wY2lfbG9jayk7DQogICAg
IHBjaWRldnNfdW5sb2NrKCk7DQogDQotICAgIHJldHVybiByZXQ7DQorICAgIHJldHVybiBjb21i
aW5lZF9yZXQ7DQogfQ0KIA0KICNkZWZpbmUgUENJX0NMQVNTX0JSSURHRV9IT1NUICAgIDB4MDYw
MA0KQEAgLTExMjQsNyArMTE3MSw5IEBAIHN0YXRpYyBpbnQgX19od2RvbV9pbml0IGNmX2NoZWNr
IF9zZXR1cF9od2RvbV9wY2lfZGV2aWNlcygNCiAgICAgICAgICAgICBpZiAoICFwZGV2LT5kb21h
aW4gKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluID0gY3R4
dC0+ZDsNCisgICAgICAgICAgICAgICAgd3JpdGVfbG9jaygmY3R4dC0+ZC0+cGNpX2xvY2spOw0K
ICAgICAgICAgICAgICAgICBsaXN0X2FkZCgmcGRldi0+ZG9tYWluX2xpc3QsICZjdHh0LT5kLT5w
ZGV2X2xpc3QpOw0KKyAgICAgICAgICAgICAgICB3cml0ZV91bmxvY2soJmN0eHQtPmQtPnBjaV9s
b2NrKTsNCiAgICAgICAgICAgICAgICAgc2V0dXBfb25lX2h3ZG9tX2RldmljZShjdHh0LCBwZGV2
KTsNCiAgICAgICAgICAgICB9DQogICAgICAgICAgICAgZWxzZSBpZiAoIHBkZXYtPmRvbWFpbiA9
PSBkb21feGVuICkNCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t
bXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jDQppbmRleCBlMTNiN2Q5
OWRiLi5kM2RmYWI2NzllIDEwMDY0NA0KLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk
L2lvbW11LmMNCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jDQpAQCAt
MjgxNiw4ICsyODE2LDE1IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgcmVhc3NpZ25fZGV2aWNlX293
bmVyc2hpcCgNCiANCiAgICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBwZGV2LT5kb21h
aW4gIT0gdGFyZ2V0ICkNCiAgICAgew0KLSAgICAgICAgbGlzdF9tb3ZlKCZwZGV2LT5kb21haW5f
bGlzdCwgJnRhcmdldC0+cGRldl9saXN0KTsNCisgICAgICAgIHdyaXRlX2xvY2soJnNvdXJjZS0+
cGNpX2xvY2spOw0KKyAgICAgICAgbGlzdF9kZWwoJnBkZXYtPmRvbWFpbl9saXN0KTsNCisgICAg
ICAgIHdyaXRlX3VubG9jaygmc291cmNlLT5wY2lfbG9jayk7DQorDQogICAgICAgICBwZGV2LT5k
b21haW4gPSB0YXJnZXQ7DQorDQorICAgICAgICB3cml0ZV9sb2NrKCZ0YXJnZXQtPnBjaV9sb2Nr
KTsNCisgICAgICAgIGxpc3RfYWRkKCZwZGV2LT5kb21haW5fbGlzdCwgJnRhcmdldC0+cGRldl9s
aXN0KTsNCisgICAgICAgIHdyaXRlX3VubG9jaygmdGFyZ2V0LT5wY2lfbG9jayk7DQogICAgIH0N
CiANCiAgICAgaWYgKCAhaGFzX2FyY2hfcGRldnMoc291cmNlKSApDQpkaWZmIC0tZ2l0IGEveGVu
L2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaA0KaW5kZXggMzYw
OWVmODhjNC4uNTczOTFlNzRiNiAxMDA2NDQNCi0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5o
DQorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaA0KQEAgLTQ2MSw2ICs0NjEsNyBAQCBzdHJ1
Y3QgZG9tYWluDQogDQogI2lmZGVmIENPTkZJR19IQVNfUENJDQogICAgIHN0cnVjdCBsaXN0X2hl
YWQgcGRldl9saXN0Ow0KKyAgICByd2xvY2tfdCBwY2lfbG9jazsNCiAjZW5kaWYNCiANCiAjaWZk
ZWYgQ09ORklHX0hBU19QQVNTVEhST1VHSA0KLS0gDQoyLjQyLjANCg==


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:27:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:27:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645845.1008384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9EnA-0006Js-2f; Sat, 02 Dec 2023 01:27:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645845.1008384; Sat, 02 Dec 2023 01:27:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9En9-0006HX-7B; Sat, 02 Dec 2023 01:27:35 +0000
Received: by outflank-mailman (input) for mailman id 645845;
 Sat, 02 Dec 2023 01:27:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9En4-000271-1m
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:27:30 +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 f43a1941-90b1-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 02:27:28 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B20exWe004068; Sat, 2 Dec 2023 01:27:17 GMT
Received: from eur02-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur02lp2040.outbound.protection.outlook.com [104.47.11.40])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqt8mg1hm-7
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:27:16 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DU0PR03MB8599.eurprd03.prod.outlook.com (2603:10a6:10:3e6::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:27:12 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:27:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f43a1941-90b1-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=a7JNZrgUj2PpAz83t3yqhrFYTPLO4rXqg7kb8Q4pBN4HbrufLP4SJ4iLVUCxVJN3ZfVut9dNYGQrLxa8q2WtAXdWsJzpO7LMO8aXVJ/SdfvgYjnfSL+WBev0qngdPf+1lBR9FPM3tDXAtRAR+Ee7XPFaSqxON05xEjftqc1hT7U6SbxfIf2roWgFSAH+7C0keMoBu3SN5wUizyG1/9g/9a8YlyIDFtqAixqm07Qc8rmPwtuHPK4gCFzhz+PGWol5rS6apY67mAQxQTmsA777YWnwZ95PVIbRNt8c7/duo9p0ClkWMGUE2bsLATb9eg8afvBSiH/hSGxf6hMfd+iAog==
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=XatSDoliS1e0RbDS2pE/RuspFe++g/oP6bCvkIjzp1E=;
 b=abI954K3Uifyls8k+aJGfmF0dmXIPoWk2DxTsFFSIYdNCO2gPCMFKWDG8KVZEUybqP65HqnwvjGEXCESFHwBngCgwRpqt6OPtFzzEAfm18IBH1MhsCMNhfi0y2+9GHRxLjyqfDB/0D/vrZxYwe2V3Ksqs76f3yfntNi/p5Vl8545kZJkm/jck2Ww1IeIdYV9Vpu3NOtFMxIvcvoA8s2HPGco73Pg61TaUSBn68wv0DKDRmZ8PwIvu8sy8gYccliAT65FkorlYR7Sy+TnqRlRwL7wL1Hyt5Mc/JoErNJFh1EQ7g4+yE3HUhGX5JjRVpAxiG9al0j4Yx9TaU6vlJTFNA==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XatSDoliS1e0RbDS2pE/RuspFe++g/oP6bCvkIjzp1E=;
 b=D+OJHAAGRkqvdCWVlTPVNB+fNN15PrS5EPAtV7rbdZvjfOaXilPaRLZGN0c0jdPwl2s7P0+cie9fEe4cPT3W99R+xF0jPDKEJN1GEBdmThXtoRmMUPOxjzFn38vPtTSjsYnYLCpeLPANhEkgK7CEmY69uwBW9ppFSm3vipIJQysCsTs05v70Kp5FzR0AH8wGecAzOvoAHR+UZK3vq6lYwJN8zFnQRF4V4J/HeeEyMGmX4PwJ6RqFDVRxVW2hadBU572eEbW8zjp/8siU7zjn2dkpTo8OBzVHV6GLZuWrXmz18ESY1OYo9ZqkcfttvxWO0BfqOl6UKTrFXi15g5zsxw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Michal Orzel <michal.orzel@amd.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: [PATCH v11 17/17] arm/vpci: honor access size when returning an error
Thread-Topic: [PATCH v11 17/17] arm/vpci: honor access size when returning an
 error
Thread-Index: AQHaJL6qzrPLCvUkHkyTdIPsJJSlOA==
Date: Sat, 2 Dec 2023 01:27:07 +0000
Message-ID: <20231202012556.2012281-18-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DU0PR03MB8599:EE_
x-ms-office365-filtering-correlation-id: 790126c9-ae6d-448f-9d16-08dbf2d5cf17
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;
x-microsoft-antispam-message-info: 
 C4StpRTQe8cgl5GLJroaSGZQ6WbA4kMVH1CAH1Uy7+0GXoUQk79KPVPtfPZmpgiGjSy+R6vZUpeaY7iwc/5JPsreQFy8Ru0QLYb/XXaYbyx3wnwqCe5xOMFkQLQKXRL9byZHbVoiOljnXEUQ2rmaBUT/lLdE27pW+TwuOfpv/r2rnxcOuLyIytC/7Pdoy7U4AUsoA2yj90NUrkqTe8EGWL5RdQwPuiyhSf9YSAj8m+cypu/SqQRGvAw43P6jO9dpVXtB+KVEFO4CXml+wkjoxaf4a+mABsRAdou7MW3q6yHPGOUbI6wlx5qFEgZ/MYJIoPwMmbF85KO4CeUUrq8D8RZixt9lUM10prrFqjaeK7NxzGCWoVit/ARCv82n9BhPzbmEQMBOusBGIGHxoiLwNg75XAXfBIyHLEjpZ/EY8wZeGV8PuafTmqtBkc3mWg56PeYYOa98BHi+1W9dp096QFLMdkrmeIEKMuL+VVQO06HvnL6D21R5N9FXsjDga76zsyiPNfcicnjurQbcmnBsrgvmOGiOL9w6ACWn7fFNPTzmB2lRFjvMFELyrKUGILImM1DnSIz8493kPmMZTTfQLXkf4QoEzop5nGLzAfkYVu+7WplHG9oBZW9zPrbD1vyX
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(38070700009)(41300700001)(36756003)(2616005)(107886003)(1076003)(6512007)(6506007)(55236004)(83380400001)(6486002)(478600001)(26005)(71200400001)(6666004)(38100700002)(122000001)(316002)(91956017)(54906003)(64756008)(66446008)(6916009)(66476007)(66556008)(76116006)(66946007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?+E7IAylV0uyncK6YgKmckpXLsfqpzaiALM40OTSFAnjy4uEb54ptwhvqCJ?=
 =?iso-8859-1?Q?Xpr0Iv3o2BsPsBKbMRQ6BbyX/h73b7csYJcCqXpHz4Zt5BpDq2+JwsYi6O?=
 =?iso-8859-1?Q?mwwH7y/iBNwvAcX4Oi627U51rO1O8lqdU2oRJxFPWcnx7/7JQPXx6ul2Mn?=
 =?iso-8859-1?Q?okU9UrBaQve50DdCuEOu2qDT+UOUcOT7b8d5jswbi6sVLScAsnIMD+zAcU?=
 =?iso-8859-1?Q?cBv9FnfRVrWKTSut4VZgmWXeormoMV40pYfuraQTkVWUtxnRI72Xevy571?=
 =?iso-8859-1?Q?ZHo+IDrhTkcP4dFlFVRwt16o0ST85j/01cGKp/IY7BnMhJOzdquvbynthx?=
 =?iso-8859-1?Q?UF6PkqaHWoBn+WIlLdkTx1nZJ7i8WpKwwuGr9e2yiX1jt04zQLIOQB+cuy?=
 =?iso-8859-1?Q?VwlUz2UF+20qKeOtUhllXgH/QD1DIpvKt4ctaN/KiGEbC0welmbjqFoz7Q?=
 =?iso-8859-1?Q?63YxFNM7dxiRnTQH7r+JFGNVeU61ReKnvmEHl03w3eh5AY2RJDp5gKaQCK?=
 =?iso-8859-1?Q?agAQdMcdfsLoVj5D3kTqjdMYGwSQ3oPYzlGl9Ab8B1z4ReQujQkUMiKtmc?=
 =?iso-8859-1?Q?bbEFot3Vnxroth0S1vLs98zPnrnx95qeRZnlfDf7OxjiDRYGPogxBAPmLk?=
 =?iso-8859-1?Q?uLZRCVthDQRz8naSirFBYAd8AYeYpMUZAaRZAdBymUHllkT0evAGd82lOU?=
 =?iso-8859-1?Q?tWm2m++XQRmO65y0MM5J3+9X5nj4NMhLMrW6mwrv/cvDjsNe5kiI3vfxcE?=
 =?iso-8859-1?Q?jabKhoi3QVO4Z3uFEPK5XXpTPN4ChG+mJtCsUw9tCu1kqwBpvUmg8b6cn1?=
 =?iso-8859-1?Q?YmC9UkwC09bIRY2M6vQJ+AHWXdITzgVC7+BlEJNdudsSb15/CJb0jxSJXt?=
 =?iso-8859-1?Q?o1k9Zx5mFqEExMODd4j4qVrAChCJ+z1SXKR7zHrxWN27NrqnyY44vGxyaM?=
 =?iso-8859-1?Q?QWtig6mRKN5i0FzgpDsQOS9WHfB4QHUydVvu31PMG9hqLMSOHe/f3zy8qF?=
 =?iso-8859-1?Q?0sCYGSVDWjiUl9j4EXF5u1XI/TMaYjBlNulDDGAAM9t/5WTQvr1OrdmQ50?=
 =?iso-8859-1?Q?aM/qHGfKvkFV4zVE6dLOJITAIKYOL+p2NVXCxsH+Qnt/lje3zDgKbNPSj5?=
 =?iso-8859-1?Q?ftMDu3wT/blm4Wyg+OZ+Pa+NTUJiVnsWQ0rHHhQJHlPIMJVXgYKH5KLZgf?=
 =?iso-8859-1?Q?6w8vm6lvApa+OI3Wwt44OGeCfUC3VPflHZkBN5QQiT85Qab7THxwdNytLl?=
 =?iso-8859-1?Q?LsUElZHjHwosbf5ydNHfWfgZWL7h9ch/EDAaPwnxJ/wj2wqOBiefMbqXZT?=
 =?iso-8859-1?Q?e65N/s1N84Purq6nkojIa91JJh3A4dNtk4dh2hsvn0Ey8DSdmmziWUs8hC?=
 =?iso-8859-1?Q?PcPNRQpZbuBVeXFBr0dxvwccwB59AA9lFZQ7WcjAReijZoZnoEu+Ud3GV4?=
 =?iso-8859-1?Q?ZGNkJYPaNN4GXJINfRT5R+peJedtXSn8+j873OJkCiq+PV5kEII5FwfKy+?=
 =?iso-8859-1?Q?6opjzdhppY6yZMRR8f1N/ctcz7nq/YD9zwpTdoePl658ej2lju2AlQzlo3?=
 =?iso-8859-1?Q?08Bc9UyAU3q2PbxyZ77OcDxgc5iHDDuZzgEINJoj7OrdjMa/uUJtP2KG9g?=
 =?iso-8859-1?Q?WwI3XWtgMIEJMPLmUxoTpbHyqn1pargQvzEZFHilAkXTX/Jc0x/E5otQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 790126c9-ae6d-448f-9d16-08dbf2d5cf17
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:27:07.6995
 (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: FCKmHkfcEAC9BPZLtu1lgyIBg1B9zq6mz9O28MTUqGKQbSJ3apN0gDh3ZCMZuce75KhEh+g9r5w9OjFxRFimJZbO7yqdnrIDoG44IcoZKmg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8599
X-Proofpoint-ORIG-GUID: SIiNy1jAmIhYwptOJd8C2gwuStlBMK-X
X-Proofpoint-GUID: SIiNy1jAmIhYwptOJd8C2gwuStlBMK-X
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0
 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0
 malwarescore=0 lowpriorityscore=0 mlxlogscore=824 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020008

Guest can try to read config space using different access sizes: 8,
16, 32, 64 bits. We need to take this into account when we are
returning an error back to MMIO handler, otherwise it is possible to
provide more data than requested: i.e. guest issues LDRB instruction
to read one byte, but we are writing 0xFFFFFFFFFFFFFFFF in the target
register.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 xen/arch/arm/vpci.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index b6ef440f17..05a479096e 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -42,6 +42,8 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *in=
fo,
 {
     struct pci_host_bridge *bridge =3D p;
     pci_sbdf_t sbdf;
+    const uint8_t access_size =3D (1 << info->dabt.size) * 8;
+    const uint64_t access_mask =3D GENMASK_ULL(access_size - 1, 0);
     /* data is needed to prevent a pointer cast on 32bit */
     unsigned long data;
=20
@@ -49,7 +51,7 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *in=
fo,
=20
     if ( !vpci_sbdf_from_gpa(v->domain, bridge, info->gpa, &sbdf) )
     {
-        *r =3D ~0UL;
+        *r =3D access_mask;
         return 1;
     }
=20
@@ -60,7 +62,7 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *in=
fo,
         return 1;
     }
=20
-    *r =3D ~0UL;
+    *r =3D access_mask;
=20
     return 0;
 }
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:41:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:41:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645876.1008412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9F0g-000736-Pb; Sat, 02 Dec 2023 01:41:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645876.1008412; Sat, 02 Dec 2023 01: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 1r9F0g-00072z-LK; Sat, 02 Dec 2023 01:41:34 +0000
Received: by outflank-mailman (input) for mailman id 645876;
 Sat, 02 Dec 2023 01:41: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9F0f-00072l-0t
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:41:33 +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 eaa68380-90b3-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:41:31 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 3B21X1Qm015641;
 Sat, 2 Dec 2023 01:41:26 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqa3aucrx-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:41:26 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB7285.eurprd03.prod.outlook.com (2603:10a6:20b:2ef::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:41:21 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:41: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: eaa68380-90b3-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Al0hqmWcJ5SVYym2QD9l6trDde0nES0K+LUnxEcDfZ0dE+piyaYEJh6mMMezzU9cmSizQLheQIGWrte5zqc/4l3VU+9vhp60KS2DCgJr+wRoe1GulOc45J6h+4AgdwsGP44I2Nk2U/9Hs5nIvhg9J1HFu0G0kbKNGgaBuutF+6rVIZ0iUVstJqqVos3e91ytgMyuaB7paDtCcVKlYFhBRILsVv3EWUgofUwPc6h3hMcFWEoyzrIrx+XvtoXth+z5o8DJRP7NevNTRTq8Yp/8lDAKqCu9Exy6vkh7NGEHIlYswOKsIGnIkCoo+cCPJtHHlrWHesR9+c8lwJXDHjL0tA==
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=xHbTU4afcP4VPCt7c5t9HdrtExRFqhrJyZbbFA7antU=;
 b=LXYNTES626N6WVrrtUj8y2tH9yuJhV+u7CWfoXGN5SsTJ4zj0TK/70X/+HLFhBSbJFRARGXp5YClMKw8mYN90+lrjBOrzw+K58n9sO/gKUAgKldjLmhdc9u5gFQj7ccEg8dlj/rmLFuqHDR2i1JSLRxraAaYeDrB0CNFML2C6GnHf5jS9U1dhx0M3uBS3YAgkDY1a4gwJ4/kQtnqnn5KqlKJ9yLnqCGCvH6XC2SfAvswRvHcwtApAmRXxQWx649SZ8Z088t6gfve1V7FMjPHSZ+m0Uf24PCcyuO+5vk1lmTLizdFNl1jS0s56YSSFHelywo3G3TN9VMY7mAN3LJohg==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xHbTU4afcP4VPCt7c5t9HdrtExRFqhrJyZbbFA7antU=;
 b=PtHfUbJaDc5STELSmfCJq0P8LXFjcTdBkb3y2rmA93rEaP9PJ4KF6Qac6dC3hcDP+cdlYqxN84cJzW06sVFdqSnpqMR9JA+dukqUFdMs4fBsOFK7QfXFNpyYIc7t7Zd1sQgp6TGBfG6044mgx5q8lGYtZMElEqBpZeVaMZIofr3M5l5sWS/Pj+41U1TvQU0y43bqFCWI27GrbglVUAYzhxENHcrgE7F747dhH5mxYUrrRkWe2GbUanEW+iIHSlZ3xQ3cvtwiXOIayiVpS5Gj7Vc0p4IjfbQ5U4A1T6xfK4H8XRG39FXJYM2PmIrTOFP1uZNrxIIqy3jDvF1GI//bdQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
CC: David Woodhouse <dwmw@amazon.co.uk>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>, Paul Durrant
	<paul@xen.org>,
        Anthony Perard <anthony.perard@citrix.com>,
        Kevin Wolf
	<kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>,
        =?iso-8859-1?Q?Marc-Andr=E9_Lureau?= <marcandre.lureau@redhat.com>,
        Paolo
 Bonzini <pbonzini@redhat.com>, Jason Wang <jasowang@redhat.com>,
        "open
 list:X86 Xen CPUs" <xen-devel@lists.xenproject.org>,
        "open list:Block layer
 core" <qemu-block@nongnu.org>
Subject: [PATCH v4 1/6] hw/xen: Set XenBackendInstance in the XenDevice before
 realizing it
Thread-Topic: [PATCH v4 1/6] hw/xen: Set XenBackendInstance in the XenDevice
 before realizing it
Thread-Index: AQHaJMCmNcy1jH3c30+hdicFpfwJ+Q==
Date: Sat, 2 Dec 2023 01:41:21 +0000
Message-ID: <20231202014108.2017803-2-volodymyr_babchuk@epam.com>
References: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB7285:EE_
x-ms-office365-filtering-correlation-id: 55de17d1-f2c3-49db-c873-08dbf2d7c995
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 SEmRHbAvkOF1F+M92scRmJda/E2LKTScNWl3z+dwwicVp9uQcdr+2iVtygauYY69ujsvNQ8fDDLrg+hZfMy0hbGE2xC2ir/I8syyhAqBgzqxb0YCEFfHEtDWjxKregYsAm5ozxD8c/4L5H545pnKuXOH3PGF+eWJYkO272X6ZyIg5EoKkjsJCQ9QIYtUXq9vz/ZQJkTuqeu+lTc0Wsh073ytOdtVkKGbc+8mzzmECRDHBMk4vtvAhcs068WR74F4iZJ/tDThkH9letr9MyxUHxzgjXH3vYqzdYvmLZX3J7DA1LBXfvZswojXSVITZBpTyNPbHe3T1ts5YLk0Wk1Lwi77EQAJKEYb7lgdOfsgS6P3NvyCd8ZTmqBl4MRXmmlJnM5HZ3rxIAPfm0QnqrsNZgaLV0y8KJbCQ+/s3FIokXDQzVmNa85lLjjX7xqmYDf+WJvpY8mjxgnjVFfct7z+TfLYX5d0cxYhNaAfUoeKU3fcu5bMpeocUvU3ZvN0gGQV+iSHsZZ+mfB6mjZS15U50wfosfVbTXhjTv0FdJIP6AkvkzsMdSygxR0M6yrYjBn21/rTZP1uOjjOTH6JhfYGCk4fbzEnO7XGRwAXGEAtZdFKgFuBGS5g4tPJk2PDPOW8
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(376002)(396003)(366004)(346002)(136003)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(122000001)(38070700009)(41300700001)(2906002)(7416002)(5660300002)(83380400001)(71200400001)(55236004)(38100700002)(6506007)(6512007)(1076003)(2616005)(26005)(66556008)(478600001)(91956017)(6486002)(36756003)(76116006)(66946007)(64756008)(66446008)(8936002)(6916009)(54906003)(86362001)(66476007)(4326008)(316002)(8676002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?a7Qj4f9DRmURavv37ag2UMatMN5hyNgP8Z7r55nTOXOvP97FvNHsSE4rnd?=
 =?iso-8859-1?Q?8kWS7yXkUo6ngjiKMiuu4Xc7u9Ek3dWG9oz22Bld/rVcOQf2/z1CcX2ZKg?=
 =?iso-8859-1?Q?oRErpsyVYit/08RSKW5zrFC2XXaLb6+Rt8oP4AvjpnOusvvChMrw2+CpCV?=
 =?iso-8859-1?Q?ztscTZaLvYU4JTMvXUClaeSMWcCr1jo/0ftUvcQq+py4IJMw4j6XZ0eCRb?=
 =?iso-8859-1?Q?Ju8opI9MfTZQkO36v/MEEdA2vxyX/pyhOCqbzChz4emeKs0Zy7lTd5+TRa?=
 =?iso-8859-1?Q?xTZ6jaHeTqm8Jca9ZBO9KQZnBEfikqs51X5HwhzDJUwBD6tRZewSdiLKaj?=
 =?iso-8859-1?Q?xnIt+nRJ0TVmlTNIr4kRcO0LwkUmPKcUet86uarcAQPuC6egtszvMCIUDh?=
 =?iso-8859-1?Q?2RBb2CFE9LhzDtQDCX3VcmcZzuFrYcJltrtRz/qSySq4eHJ7YfXBw/J28Q?=
 =?iso-8859-1?Q?d9cw89STJk7wR7dMDmSQS3mKeq+Lh9oDI/jRljCOzXnl33VSFRbmxLYNDm?=
 =?iso-8859-1?Q?u5zBan9DGWNuqju1zNn3cp+caWkx0H5vD09MYK81dBWVwFnme6MGzQW7Bt?=
 =?iso-8859-1?Q?dSfqpwI49JsZ5QpgSFvm3s9PTYBBfdPc+3Z+kWa8hRwVtZOoX7KTc+BOdu?=
 =?iso-8859-1?Q?sw3NZ6NZnQ6V79afHbr8z/HZhn8f+cq/x2p4L7HP50rZmwBLzC1n4BKJ/0?=
 =?iso-8859-1?Q?TNLTvCFS+woyXbtwmW7ERZieFT57lUQIrfhfJdNZajITUkJY8DqOCKpwzk?=
 =?iso-8859-1?Q?eFfKSPyMW3N2xvGtXwoRG1Qdx6XJ79xeqBM01f0RvLeG8j9CpF6AUSZXDK?=
 =?iso-8859-1?Q?5MAv0mvogyK4Wc55/rhMmzuiw/CYdDF/ocasUEGiU78U+tu9oJvcNoTrr6?=
 =?iso-8859-1?Q?XWkrZYA8IfdLlqW3KHL4tLvd/1mDk4W5k5iP0Mo0Y8TilucpdGan/J+ct1?=
 =?iso-8859-1?Q?a6HNuJXx3j7zYjeUgQ+pDM+uMK08bD+CdJL1dGcGsE+GKHmJ6Lc6Z5cA5Q?=
 =?iso-8859-1?Q?uNgwB/cl9TPaHkKWbZ4eR5Hzi992wxMBqyhrZLgG0oBBTQ5pgAJpG0+cEu?=
 =?iso-8859-1?Q?nGCiOSspgqef70yEZhZLk6yKqKmJOKC//n+EXZeSN9G6evxLkhDXM4p8fl?=
 =?iso-8859-1?Q?t6hDhrisnOHFsqE872s3SWiLRvjRJiwtiofzCeljUGCmLvjusAxruCX5it?=
 =?iso-8859-1?Q?grZfP8badv/l+56Gtc/dAxL7Ghh/6E71Lx62aLMUf2vT5kOaf7MBM0DCD+?=
 =?iso-8859-1?Q?9rPQ2AZqzG8ytYzRgeWgQZg546nKUG96hTqeugm0uWBS+pUaI9qT7KSVd8?=
 =?iso-8859-1?Q?26Rp/yocBvWEPF5h9PSdUo/N0GRUWXA7QY4kqNeR7TP6yV6jYZ20xWSqRs?=
 =?iso-8859-1?Q?ToGtOQoJrYp++EXAMjrtH1PAsjYIwfJLr2dHQYEvTf1aJV7Aq/h++uJRm8?=
 =?iso-8859-1?Q?1GTatKPZcLP1B8kvq065kzAZ1uKKoguuyneolgBXulrpcl3IYVPHd0ZduL?=
 =?iso-8859-1?Q?DILV8nHaVs5AEak6MFaSjnHFW4M1bPIITB2qs8oepSjmj2+NVYvL/J6fZF?=
 =?iso-8859-1?Q?ra2nrHkFN/pARedFLTC6eCmNFuXMlfHxNSF3wTspQzafiAP6xKwVcTjxKI?=
 =?iso-8859-1?Q?tSjq/l/MQon7RjonEVWNN6FRp/noaZjHEeT5Gu+kW3YLfMNPrLNZjlCA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 55de17d1-f2c3-49db-c873-08dbf2d7c995
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:41:21.4747
 (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: OlIU3njXmpGSqJXQCcZYXlAx7K8RNyQRla0IH1J9p5qpS3pMlSPmWdjKjFd0KoFuLc82GOF8QnZx85xzSAJckddQmurvz+W4CcJRzUILGik=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7285
X-Proofpoint-ORIG-GUID: NY1ySJ2ni0D9wvujoIJInK0EAWdhitnJ
X-Proofpoint-GUID: NY1ySJ2ni0D9wvujoIJInK0EAWdhitnJ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=412
 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0
 priorityscore=1501 adultscore=0 spamscore=0 impostorscore=0 clxscore=1015
 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020009

From: David Woodhouse <dwmw@amazon.co.uk>

This allows a XenDevice implementation to know whether it was created
by QEMU, or merely discovered in XenStore after the toolstack created
it. This will allow us to create frontend/backend nodes only when we
should, rather than unconditionally attempting to overwrite them from
a driver domain which doesn't have privileges to do so.

As an added benefit, it also means we no longer have to call the
xen_backend_set_device() function from the device models immediately
after calling qdev_realize_and_unref(). Even though we could make
the argument that it's safe to do so, and the pointer to the unreffed
device *will* actually still be valid, it still made my skin itch to
look at it.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 hw/block/xen-block.c         |  3 +--
 hw/char/xen_console.c        |  2 +-
 hw/net/xen_nic.c             |  2 +-
 hw/xen/xen-backend.c         | 15 +--------------
 hw/xen/xen-bus.c             |  4 ++++
 include/hw/xen/xen-backend.h |  2 --
 include/hw/xen/xen-bus.h     |  2 ++
 7 files changed, 10 insertions(+), 20 deletions(-)

diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index 6d64ede94f..c2ac9db4a2 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -1081,13 +1081,12 @@ static void xen_block_device_create(XenBackendInsta=
nce *backend,
=20
     blockdev->iothread =3D iothread;
     blockdev->drive =3D drive;
+    xendev->backend =3D backend;
=20
     if (!qdev_realize_and_unref(DEVICE(xendev), BUS(xenbus), errp)) {
         error_prepend(errp, "realization of device %s failed: ", type);
         goto fail;
     }
-
-    xen_backend_set_device(backend, xendev);
     return;
=20
 fail:
diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
index 5cbee2f184..bef8a3a621 100644
--- a/hw/char/xen_console.c
+++ b/hw/char/xen_console.c
@@ -600,8 +600,8 @@ static void xen_console_device_create(XenBackendInstanc=
e *backend,
         goto fail;
     }
=20
+    xendev->backend =3D backend;
     if (qdev_realize_and_unref(DEVICE(xendev), BUS(xenbus), errp)) {
-        xen_backend_set_device(backend, xendev);
         goto done;
     }
=20
diff --git a/hw/net/xen_nic.c b/hw/net/xen_nic.c
index af4ba3f1e6..afa10c96e8 100644
--- a/hw/net/xen_nic.c
+++ b/hw/net/xen_nic.c
@@ -627,8 +627,8 @@ static void xen_net_device_create(XenBackendInstance *b=
ackend,
     net->dev =3D number;
     memcpy(&net->conf.macaddr, &mac, sizeof(mac));
=20
+    xendev->backend =3D backend;
     if (qdev_realize_and_unref(DEVICE(xendev), BUS(xenbus), errp)) {
-        xen_backend_set_device(backend, xendev);
         return;
     }
=20
diff --git a/hw/xen/xen-backend.c b/hw/xen/xen-backend.c
index b9bf70a9f5..b2e753ebc8 100644
--- a/hw/xen/xen-backend.c
+++ b/hw/xen/xen-backend.c
@@ -88,19 +88,6 @@ static void xen_backend_list_add(XenBackendInstance *bac=
kend)
     QLIST_INSERT_HEAD(&backend_list, backend, entry);
 }
=20
-static XenBackendInstance *xen_backend_list_find(XenDevice *xendev)
-{
-    XenBackendInstance *backend;
-
-    QLIST_FOREACH(backend, &backend_list, entry) {
-        if (backend->xendev =3D=3D xendev) {
-            return backend;
-        }
-    }
-
-    return NULL;
-}
-
 bool xen_backend_exists(const char *type, const char *name)
 {
     const XenBackendImpl *impl =3D xen_backend_table_lookup(type);
@@ -170,7 +157,7 @@ XenDevice *xen_backend_get_device(XenBackendInstance *b=
ackend)
=20
 bool xen_backend_try_device_destroy(XenDevice *xendev, Error **errp)
 {
-    XenBackendInstance *backend =3D xen_backend_list_find(xendev);
+    XenBackendInstance *backend =3D xendev->backend;
     const XenBackendImpl *impl;
=20
     if (!backend) {
diff --git a/hw/xen/xen-bus.c b/hw/xen/xen-bus.c
index 4973e7d9c9..dd0171ab98 100644
--- a/hw/xen/xen-bus.c
+++ b/hw/xen/xen-bus.c
@@ -1079,6 +1079,10 @@ static void xen_device_realize(DeviceState *dev, Err=
or **errp)
         }
     }
=20
+    if (xendev->backend) {
+        xen_backend_set_device(xendev->backend, xendev);
+    }
+
     xendev->exit.notify =3D xen_device_exit;
     qemu_add_exit_notifier(&xendev->exit);
     return;
diff --git a/include/hw/xen/xen-backend.h b/include/hw/xen/xen-backend.h
index 0f01631ae7..ea080ba7c9 100644
--- a/include/hw/xen/xen-backend.h
+++ b/include/hw/xen/xen-backend.h
@@ -10,8 +10,6 @@
=20
 #include "hw/xen/xen-bus.h"
=20
-typedef struct XenBackendInstance XenBackendInstance;
-
 typedef void (*XenBackendDeviceCreate)(XenBackendInstance *backend,
                                        QDict *opts, Error **errp);
 typedef void (*XenBackendDeviceDestroy)(XenBackendInstance *backend,
diff --git a/include/hw/xen/xen-bus.h b/include/hw/xen/xen-bus.h
index 334ddd1ff6..7647c4c38e 100644
--- a/include/hw/xen/xen-bus.h
+++ b/include/hw/xen/xen-bus.h
@@ -14,9 +14,11 @@
 #include "qom/object.h"
=20
 typedef struct XenEventChannel XenEventChannel;
+typedef struct XenBackendInstance XenBackendInstance;
=20
 struct XenDevice {
     DeviceState qdev;
+    XenBackendInstance *backend;
     domid_t frontend_id;
     char *name;
     struct qemu_xs_handle *xsh;
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:41:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:41:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645878.1008431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9F0i-0007XY-BP; Sat, 02 Dec 2023 01:41:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645878.1008431; Sat, 02 Dec 2023 01: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 1r9F0i-0007Wl-8l; Sat, 02 Dec 2023 01:41:36 +0000
Received: by outflank-mailman (input) for mailman id 645878;
 Sat, 02 Dec 2023 01:41:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9F0g-00072l-LZ
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:41:34 +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 ebe81143-90b3-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:41:33 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B21Xj1F026535; Sat, 2 Dec 2023 01:41:28 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2169.outbound.protection.outlook.com [104.47.17.169])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqt8mg21a-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:41:28 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB7285.eurprd03.prod.outlook.com (2603:10a6:20b:2ef::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:41:22 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:41:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ebe81143-90b3-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SEAmJw/RfgQlQetNGPXo4byxBirZelVMJD5WPeHgSFmJUwbhNzYy5i9cdd7y333i6TR7fB5xFPJPAvkM1jPqYR5YHa2iyNNTd9mcoDbs8QBO9lcV/O0TxMnt+THk7htiA+aJRr12XbdlOROacR4Qhjrf6wZoEAPrsdWuJ8o9XowXuc9YNI/mv3q8PP411fM0tl3fv207rGUJAW6CtjPBLNjmi5+jsqqis9wwX+TVvOFRwgOaz8gSVhdYYV/NCwqseqEYTmmp1ozhtWkxysdnsi+TeICxVJo8sCKXblgvp74/4DCzvXWRnaqlMm/PseJbNx6q+Xsap42b7UvG9J+A/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=e1n55VDPs3q/qzv0KviJW7OAskEpl6y9Jb0QmGMv7BY=;
 b=H14uBLZ9SV8COi0sLNJoH9JCpr2imtKK7egkdqVmpFf35Rxh+r5LlHDoQbfM61YSB2pOrEnhOZUKyc4kGWEIkvap2ImddRXuXfPjy2d/e2rZs2ccuoHFBnKxWe0a3FW5tEMgPhj+WDScFR1E0Ibr4n62c7WubZBkxGFlb3GNfS6rfPRIZIlznjdpNODp+KkvK4WYpG7orhpeONQZ+72QeY1oV4n2v+Ip4q6NBj8dzfm9qUosI9IcRQpq/4u7SFhKgQICxMN2tMZkMUdLQQ4rm2SdOTEmjLLB/sHhASvcF984IPEKl/cVMCMn+0jhPodBNMdcXXX11c3oSuO4eKLnYg==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=e1n55VDPs3q/qzv0KviJW7OAskEpl6y9Jb0QmGMv7BY=;
 b=cCkpiFp+kXiGriRoI8mV6kMEJOnSJtDNVWy2iCabs7WeOdbpPOd2/mAAG2Q5U1dD+Ta9bTEQcj53B0ijvxqCNzn3PviFqluGOAdV/z2KTrJ9zDURaIEdOk/Q1+xP2XZG/uoR1MJ0T5pzKOdidB5+t8oyzwQny7kt0L57fGpVUh4Be/N9j0C/EBCZeBTLnazDXzQyid3SvNh7DPp9iCzepSdpI70tQPqFiMPZHbGmzEzu3wWTtNLMeh9+bLT/6S0yJ8efWxy2A8Zb5P2kkFnp+YJ1ySLYmFvIEvV2VPH9R0xCQdf7gg0t96VJcTvm/9YRUG/kMJIPkNmb2OLVJ1lCEA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
CC: David Woodhouse <dwmw@amazon.co.uk>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Paul Durrant <xadimgnik@gmail.com>,
        Oleksandr
 Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
        Anthony Perard
	<anthony.perard@citrix.com>,
        Paul Durrant <paul@xen.org>, Kevin Wolf
	<kwolf@redhat.com>,
        Hanna Reitz <hreitz@redhat.com>, Jason Wang
	<jasowang@redhat.com>,
        "open list:X86 Xen CPUs"
	<xen-devel@lists.xenproject.org>,
        "open list:Block layer core"
	<qemu-block@nongnu.org>
Subject: [PATCH v4 2/6] xen: backends: don't overwrite XenStore nodes created
 by toolstack
Thread-Topic: [PATCH v4 2/6] xen: backends: don't overwrite XenStore nodes
 created by toolstack
Thread-Index: AQHaJMCnWt9mOmaDRU+ewbw5BkugTg==
Date: Sat, 2 Dec 2023 01:41:21 +0000
Message-ID: <20231202014108.2017803-3-volodymyr_babchuk@epam.com>
References: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB7285:EE_
x-ms-office365-filtering-correlation-id: 2d1ede76-dd9d-4e19-7f6d-08dbf2d7c9c3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 MMThguZxYyc2qA1XGKMz68EIW9kBjMLwXgX1YRmjswg5MpXuBZMFqz4530j4qTmvGfEzf4QpvDgn/ZGqW2ETHypnn2BcQho5f1rD3ECd795v8+XuB7jrOAmJxPkooUBrMKz7qHqpk8g0N5x+cAZJz0+BmnFMg2y+/kbMU8AR/IqKs34JbBTlCZ0McssgU2gp10rCPLkn6EehBP9CjJKxXwde8qG22pBVtINOaTOi+WaaRY71TYSs5O0Fhf4iWbWRCw7dPk00VHowuHpQv+3ax1C8lpSAZ/2ejsn/iv+RKYuip/Nn3rTqT9Zwp44W8fJXH2Q1lvxcBjJ1feEQtENMU7i506AbhuIxBqV4s6Sw2bfLNg0YUwF1WLQK9+4GHrE/bp8/AzonGKIy8ymzvoFP71cAQorIg2P3MueX5DaMWeiUiYlBBesRcDCzfOLBIAC/TynUCvHuc20pw69qwkEd3u7RD2lzskg1zaP1YnMCKkgnrZUqOceiJnOCYcIqUc17xJDvtGLD2TQLB/FsjdqeVb/EXJHXw5ZHmj5pvzniU6sKsg0p/R6kXA0HffwGtitOX40aPKkAGWMZNfUuSD9+45NWMDCfTIyjRGTKLXffsTU3bqhPFSeLuXr1mduZOgma
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(376002)(396003)(366004)(346002)(136003)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(122000001)(38070700009)(41300700001)(2906002)(7416002)(5660300002)(83380400001)(71200400001)(55236004)(38100700002)(6506007)(6512007)(1076003)(2616005)(26005)(66556008)(478600001)(91956017)(6486002)(36756003)(76116006)(66946007)(64756008)(66446008)(8936002)(6916009)(54906003)(86362001)(66476007)(4326008)(316002)(8676002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?51HpuABsT+tbpDbgqyY9AbOxSV3pOA+yo7ZIgcKPxX3+Yl3xlM+Vbh+7BR?=
 =?iso-8859-1?Q?XYv4jUYUkebgveC2lO21EB41Jr5YTve61LB+pxcCCSlhdMzGf0aQsoEhDF?=
 =?iso-8859-1?Q?FvJOxUkVM4EsfgSN2fMJPybvwzn2GsQtC8E8uyDiR/lHutVXVqDrAMQSfe?=
 =?iso-8859-1?Q?xQ6WzSOv5NUj7lOtIX6cr5JEkkzXHYyOnpjQ92ux7FEYPBvNXmBR6cBAMF?=
 =?iso-8859-1?Q?nnfV5wBs4jLtyahgH8ko1lx1oXHMxyPDd4Q5FxwqrU3MkzlxkhN8jU6htt?=
 =?iso-8859-1?Q?cF4GlEdWrRiEr41xMrYETpOC3MQnnx+ikNPlTKTDOU2tU3HQZihVIJOLSD?=
 =?iso-8859-1?Q?6nXP0FoNwiYu7KxOlR+Lik4T4bbnbPWrOrOCrCQl4VQp+76Y0bjO5maDB6?=
 =?iso-8859-1?Q?vNFd2ypi4InVFYGWifRbN3gwvh0JzhlUsbRIewwvVqFmAtKaDjhsHu8E8Y?=
 =?iso-8859-1?Q?839dLGyN4unOoUouWTUVFiwX8q1l5nCcyF6PdQ3lW8tbV3WUgVwWCDyR+f?=
 =?iso-8859-1?Q?rVmPzX9cPBop8WyTrH32xdcPnfTodRDQDt06Thpl9S3WV3sO20J83XhRNU?=
 =?iso-8859-1?Q?QKVLwujHjgxg2aNQ2cy2fB7vzVRkLIqBOahgE8r/AC/CTHI4aYFMcY5302?=
 =?iso-8859-1?Q?EGxV0F4AsBKz08TKx/NQXmEWS59XgX6QhJAAO+dD8x8MaV7g2vZ53JvSbX?=
 =?iso-8859-1?Q?X4xtl/j8W0mAm8RkmUJACAAJHT04dQEGNtE1b6NGZCnpST6oAfz1Y5DUU7?=
 =?iso-8859-1?Q?L8SpGkOpH3RXieHaLIdSF1rTeBeo4VlGNaUGFad9GfReksU4P4JkBrFPxT?=
 =?iso-8859-1?Q?2Le1rzzGswcfJNsOblU4GNuwa3f9RMQ5ztY3zGp33xfBTQQ0KiTA6PCELu?=
 =?iso-8859-1?Q?OJDn7a3QfEg90voMtLBRCy7fAvcUpCuVoBu3OuqAHVoqFYHd6kw0htoH3W?=
 =?iso-8859-1?Q?cziwFFfg2Bg07YlqkX6oaeiA/jbH0ism9ogZpHAxQeaeorK9OnE32CXUsB?=
 =?iso-8859-1?Q?WAh6dcgySAahJ3ujvVhQybOQk6iW4Fa7Or0uhIT3QJAxOKyM6N9/jEl9dO?=
 =?iso-8859-1?Q?YyQ03bLk1pqACIgT2hMA+547J22FgmGpC2850M4guwbP30lXN1vcPgRagH?=
 =?iso-8859-1?Q?cgmsEwuc1L8GY+vzkGHkOpf9fb5XI2+RHoZkjJFKZlvqZ+b9OgoeAby4K0?=
 =?iso-8859-1?Q?iSRqWyCRfNwh9lyypwXwYPlrlCgYj3UGiWr9grCTXgkUqCrPVn6PI/aNBI?=
 =?iso-8859-1?Q?oq1Qr+29RfYBqfbGw52YqTcSrisxnbTHA0GC+dcm43bXVQHX9XsYjF9GLY?=
 =?iso-8859-1?Q?9NIJR1LWsiWZ/D7O733mnUp9qnPf7kAI7acAK/adUOXXdZw6mBQvV+mqjg?=
 =?iso-8859-1?Q?qzZDdYAVujc4yoyHUDacRewipRBz9hblr8xMtH9nFYmxQ6TKLd7YvfjBHv?=
 =?iso-8859-1?Q?wVTqXVVgCTH+KIlFa8dxkourpkmKKQqKVjFwk/8AAysb2uMFyOe7VrpyHk?=
 =?iso-8859-1?Q?bCIpSg8dCkcA9vsk3URnSn0wxZUee/zfXd7ZzLur08dAkA4+Qh9MUNB1IL?=
 =?iso-8859-1?Q?Zydfq0x1+ubuKDbWQwEir4+KU6Iqn8TfrkdnaJNUkgFcngs8RbnkvuzvUs?=
 =?iso-8859-1?Q?1yfrMF32EWwJ1zCgl8cFKuCRt6o7rbYfq1HT/UCYDEQnyqvAlYBq3aCg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d1ede76-dd9d-4e19-7f6d-08dbf2d7c9c3
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:41:21.8562
 (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: cMQRk7WlMAfSNsVqy3636sGywGbOhKOh16PGYpKJeoRjC0y1+tJpdgxeO5Gr7PVYuecS2oLks5jbrBk0WCeJBQlTiBHDGHyfDKTPiZzLWgc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7285
X-Proofpoint-ORIG-GUID: vAFYO3NAXhPymQwhKxackEVEJwcDayWJ
X-Proofpoint-GUID: vAFYO3NAXhPymQwhKxackEVEJwcDayWJ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0
 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0
 malwarescore=0 lowpriorityscore=0 mlxlogscore=999 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020009

Xen PV devices in QEMU can be created in two ways: either by QEMU
itself, if they were passed via command line, or by Xen toolstack. In
the latter case, QEMU scans XenStore entries and configures devices
accordingly.

In the second case we don't want QEMU to write/delete front-end
entries for two reasons: it might have no access to those entries if
it is running in un-privileged domain and it is just incorrect to
overwrite entries already provided by Xen toolstack, because toolstack
manages those nodes. For example, it might read backend- or frontend-
state to be sure that they are both disconnected and it is safe to
destroy a domain.

This patch checks presence of xendev->backend to check if Xen PV
device was configured by Xen toolstack to decide if it should touch
frontend entries in XenStore. Also, when we need to remove XenStore
entries during device teardown only if they weren't created by Xen
toolstack. If they were created by toolstack, then it is toolstack's
job to do proper clean-up.

Suggested-by: Paul Durrant <xadimgnik@gmail.com>
Suggested-by: David Woodhouse <dwmw@amazon.co.uk>
Co-Authored-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

---

Changes in v4:
  - don't touch "tty" entry in the console backend

Changes in v3:
 - Rephrased the commit message
---
 hw/block/xen-block.c | 16 +++++++++-------
 hw/net/xen_nic.c     | 18 ++++++++++--------
 hw/xen/xen-bus.c     | 14 +++++++++-----
 3 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index c2ac9db4a2..dac519a6d3 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -390,13 +390,15 @@ static void xen_block_realize(XenDevice *xendev, Erro=
r **errp)
=20
     xen_device_backend_printf(xendev, "info", "%u", blockdev->info);
=20
-    xen_device_frontend_printf(xendev, "virtual-device", "%lu",
-                               vdev->number);
-    xen_device_frontend_printf(xendev, "device-type", "%s",
-                               blockdev->device_type);
-
-    xen_device_backend_printf(xendev, "sector-size", "%u",
-                              conf->logical_block_size);
+    if (!xendev->backend) {
+        xen_device_frontend_printf(xendev, "virtual-device", "%lu",
+                                   vdev->number);
+        xen_device_frontend_printf(xendev, "device-type", "%s",
+                                   blockdev->device_type);
+
+        xen_device_backend_printf(xendev, "sector-size", "%u",
+                                  conf->logical_block_size);
+    }
=20
     xen_block_set_size(blockdev);
=20
diff --git a/hw/net/xen_nic.c b/hw/net/xen_nic.c
index afa10c96e8..27442bef38 100644
--- a/hw/net/xen_nic.c
+++ b/hw/net/xen_nic.c
@@ -315,14 +315,16 @@ static void xen_netdev_realize(XenDevice *xendev, Err=
or **errp)
=20
     qemu_macaddr_default_if_unset(&netdev->conf.macaddr);
=20
-    xen_device_frontend_printf(xendev, "mac", "%02x:%02x:%02x:%02x:%02x:%0=
2x",
-                               netdev->conf.macaddr.a[0],
-                               netdev->conf.macaddr.a[1],
-                               netdev->conf.macaddr.a[2],
-                               netdev->conf.macaddr.a[3],
-                               netdev->conf.macaddr.a[4],
-                               netdev->conf.macaddr.a[5]);
-
+    if (!xendev->backend) {
+        xen_device_frontend_printf(xendev, "mac",
+                                   "%02x:%02x:%02x:%02x:%02x:%02x",
+                                   netdev->conf.macaddr.a[0],
+                                   netdev->conf.macaddr.a[1],
+                                   netdev->conf.macaddr.a[2],
+                                   netdev->conf.macaddr.a[3],
+                                   netdev->conf.macaddr.a[4],
+                                   netdev->conf.macaddr.a[5]);
+    }
     netdev->nic =3D qemu_new_nic(&net_xen_info, &netdev->conf,
                                object_get_typename(OBJECT(xendev)),
                                DEVICE(xendev)->id, netdev);
diff --git a/hw/xen/xen-bus.c b/hw/xen/xen-bus.c
index dd0171ab98..d0f17aeb27 100644
--- a/hw/xen/xen-bus.c
+++ b/hw/xen/xen-bus.c
@@ -599,8 +599,10 @@ static void xen_device_backend_destroy(XenDevice *xend=
ev)
=20
     g_assert(xenbus->xsh);
=20
-    xs_node_destroy(xenbus->xsh, XBT_NULL, xendev->backend_path,
-                    &local_err);
+    if (!xendev->backend) {
+        xs_node_destroy(xenbus->xsh, XBT_NULL, xendev->backend_path,
+                        &local_err);
+    }
     g_free(xendev->backend_path);
     xendev->backend_path =3D NULL;
=20
@@ -764,8 +766,10 @@ static void xen_device_frontend_destroy(XenDevice *xen=
dev)
=20
     g_assert(xenbus->xsh);
=20
-    xs_node_destroy(xenbus->xsh, XBT_NULL, xendev->frontend_path,
-                    &local_err);
+    if (!xendev->backend) {
+        xs_node_destroy(xenbus->xsh, XBT_NULL, xendev->frontend_path,
+                        &local_err);
+    }
     g_free(xendev->frontend_path);
     xendev->frontend_path =3D NULL;
=20
@@ -1063,7 +1067,7 @@ static void xen_device_realize(DeviceState *dev, Erro=
r **errp)
     xen_device_backend_set_online(xendev, true);
     xen_device_backend_set_state(xendev, XenbusStateInitWait);
=20
-    if (!xen_device_frontend_exists(xendev)) {
+    if (!xen_device_frontend_exists(xendev) && !xendev->backend) {
         xen_device_frontend_printf(xendev, "backend", "%s",
                                    xendev->backend_path);
         xen_device_frontend_printf(xendev, "backend-id", "%u",
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:41:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:41:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645877.1008416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9F0h-00076W-1v; Sat, 02 Dec 2023 01:41:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645877.1008416; Sat, 02 Dec 2023 01: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 1r9F0g-00075R-U6; Sat, 02 Dec 2023 01:41:34 +0000
Received: by outflank-mailman (input) for mailman id 645877;
 Sat, 02 Dec 2023 01:41: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9F0f-00072l-LF
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:41:33 +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 eb1aacd0-90b3-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:41:32 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 3B21X1Qn015641;
 Sat, 2 Dec 2023 01:41:27 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqa3aucrx-3
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:41:26 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB7285.eurprd03.prod.outlook.com (2603:10a6:20b:2ef::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:41:22 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:41:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb1aacd0-90b3-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZGD0e7m4fHO7rrIi7b57NDXGrXsJOiVyUOQy6QMj+OD4PhtJTsbeq7/+d/zTjTRUPF7J3+tk9+sNb3ouWuBfhogPutkQ6w4rAXeGdyWfKymZFICKlvB3Tq3M4ZKHJeFE8s1mvFB2H+j7au+M/J3NbyuZiJzcl0U6U1Pli9m3kd7LFWF6aEOMf+EGOSSNJbvJAq+4DKFAppxDZAKy4mj/0tm6BXoD9EtTIVUNsN0uUKbErO5ibGLO5m+98HjcvW8hOipaEqt7xNy3IRq1Um0FJNVsZhsiN7hvZUr1bnX1FbAN4eegDQ3oDqrg2e+gKaCPfO1g5afqe/RSaV7cZmffvQ==
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=HQ7QrNqUdBOnC13Grzj8pxJaSJ4ipHc7/EE49RhGldU=;
 b=cX1rfShD156QCdWssHvQjWQ7exwpWXv6TaVaMioyH5dszq/Q4n9GMbR2Iyi7+F2QJyTjBijmtwwrymT2/GOLtb2RryrEaXo6yeMydfeZNgyNgc9M5BZ/IgZ9p+0lPbAwQAkMgQ/RsZVZ3gpCcmKa6jmS0xz2dc7iEFncOqivbv0xpSEukmBuV6f2N3jgkuEuQkDFhNcN5sys1+Nje7ztQkbuJJDeQcX8TrIBeC4aOmITYofa3Ib40sIyivAS5NSfdNKyJ4zml15AGhii06+hrpXIYQC/g15cxUWgey41y+RGxjFeJqIiU4AbRMZVYHZjjQ1JJXgbQf35wzJibQC57w==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HQ7QrNqUdBOnC13Grzj8pxJaSJ4ipHc7/EE49RhGldU=;
 b=SZkF2URPDxzMOTe+isYiG4g0ofM5LAgNufi560Af0UXCpvs9tZdW5XLdSdyyGvAdY7FZwO0Y1nph6TUADDpbYt83VSRVmLUUw5lG6YV5tDlpGd0jZmseM/zWZHU9G7b6Jxuo/04uQVRJ/aqJSmEIWvBqSAUNFrfV7a9m4i7dSUiw/mUp47wB3YjTUqiSjTFsm8Szx3hWHf2IlyuB8qA8oLeJC0qNJXhbUJyfQylHjwij0rNMFSWjJAwTLvb5FWb5Gzw+7z/MKjFey1GhZnQq5rYZSiCAmKn2tPNV+0qikesvN4oPtWf4ppe3Z+dK54wffSiy93YiC6+LlKENP0IGuQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
CC: David Woodhouse <dwmw@amazon.co.uk>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Anthony Perard <anthony.perard@citrix.com>,
        Paul Durrant <paul@xen.org>,
        "open list:X86 Xen CPUs"
	<xen-devel@lists.xenproject.org>
Subject: [PATCH v4 3/6] xen: decouple generic xen code from legacy backends
 codebase
Thread-Topic: [PATCH v4 3/6] xen: decouple generic xen code from legacy
 backends codebase
Thread-Index: AQHaJMCnSKd/ZWVB1UiEphLKoDVW4A==
Date: Sat, 2 Dec 2023 01:41:22 +0000
Message-ID: <20231202014108.2017803-4-volodymyr_babchuk@epam.com>
References: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB7285:EE_
x-ms-office365-filtering-correlation-id: 7c35c8ea-f2f4-4658-e979-08dbf2d7ca0f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 8E8Asu8bD+G16EADm3fUcQycwlOIrVhUcCRzC37BVbITNdVpHuLU+Y1/OhqQUTzMdWX+dE7tExnWIskackhmE8NBm99p50SZx8RQR6VgBq2apabHh5is15YC8lqFje/BzSDhablref1oErRtUQUGTnwtOonmhw0iYT6Sxmnm59pC7k81mwuybGzQE5oOmyIUE/NUrQ2Ea/ed9iIuzNcUrG0r9cBIPd3PYwx7ov/I2PY9vob4hSalcT5n/u6tDPGvD5tcJmqTJRWr7P0ITNg4Fr/PtKUf53pUI7A/ZUIglRiAQWBhoppMdq7lgSMDGfOTfC6J1jt+d5nWm2kPct8Hn4rDgGnTyaJZ8RqecIx/n2HWRfDp9UPtru2vRA9YNiqEHFsh6se9i3GDHU4la5szy74LBvwvsUzLBK3V8CC3B/LZzvuD0VRkT9xMr2Sj6jM8mrp5kdwdu4GWKsN/7GaOijgS5X5wmiqNSsQrMF87Z5PKpKwPjvmJN/iznnxzhZ7VKiRSJ+qirlKXTk+g8sU2tW6o5J9RVfwLgderNPKtPRQ0WV5f1LnKhDZXbUuaQRMeVVDpf7DC6CTHEC2i9CDXl/mC01s3DC1o90rU5DYfZZ8N3e03XyfxRI7PRx/hl6HSH4KohYopgiGLvFKHs3OCLg==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(376002)(396003)(366004)(346002)(136003)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(122000001)(38070700009)(41300700001)(2906002)(5660300002)(83380400001)(71200400001)(55236004)(38100700002)(6506007)(6512007)(1076003)(2616005)(26005)(66556008)(478600001)(91956017)(6486002)(36756003)(76116006)(66946007)(64756008)(66446008)(8936002)(6916009)(54906003)(86362001)(66476007)(4326008)(316002)(8676002)(41533002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?w85TDjIJhgU03SEmx2jVb22I8cG9cEEElvfMr5gAeeyBTrb6jR9xlwXV4s?=
 =?iso-8859-1?Q?x/kArsPOEZXSGDKjieueNpchi7CDqwYN53vFzSVJKNvhYK3ylnar3zgzIJ?=
 =?iso-8859-1?Q?9Q4yJNcEcXe0g0qRS6QWNyOvYEudotb/TVzLWgh0/f/zrBjiHNc50CxdyK?=
 =?iso-8859-1?Q?zp7QihUKZvQsci/7IMfA29/C25mAZh5uyGACmvnhge4j64jXh847rjbbTq?=
 =?iso-8859-1?Q?C14ogDLdEH262Cu8QuRH+5tdKuk2oqvc/PKDdWgv6UIQV/23pvRcM4H8Kk?=
 =?iso-8859-1?Q?omt5UIuqVBrkBWf7LFXsXnfVUwpbXdfaFL9l4MJRorvDV8hz7UYlxEE19A?=
 =?iso-8859-1?Q?WMPhiCnUXVa9lrZ6BuudL8KHTXB7fHmmCKMyXNwIsU275ffj/x5Dyv4OpE?=
 =?iso-8859-1?Q?A+13Bn9Pm7jfJY1UwinlgUlqWQhES1g5jTj5X3dGm0t513KyN44sHLe8jt?=
 =?iso-8859-1?Q?aPbu/Fo1rONqvVonSAA9BlMUVaZ0gWyzZvXaHDUMyZlGmqkaG11RDKgOKE?=
 =?iso-8859-1?Q?0BX3fq0fh5jbuHDYsWEVOvvfs9/Hskwgzgyw04V0XdNADxWkrBZrT2EqCX?=
 =?iso-8859-1?Q?hAz1ZoLIGdKjuWJhuktJK0GcqwYmasgR8sK80eqvEahFmJoNxgRkubiktA?=
 =?iso-8859-1?Q?2qllMkYiU/7P6jKjKNwBAmELs28bz82otcAhuYj/lhgya3E5dM0jO2CNcd?=
 =?iso-8859-1?Q?M3Hs81vBHlugsWR8e1XiTNxu+JSPmbbKCTJhDRgMqgwsOBkgRCvIlHntKD?=
 =?iso-8859-1?Q?ykp/QjUmhDmS92Lux/Rjcc3vOKjCXm1mUHCqYixSqZBJpjOWzSC58vLL36?=
 =?iso-8859-1?Q?6s5Tz61D8CL90bgszowyi7KuwOk8zXDPqzNWggSBvL4r9vaZM2deEKf1rk?=
 =?iso-8859-1?Q?QFfgk2bubFUTL6dr/Z3Y1FnsjEBQNeGNWDuQUKHDkHG/iPAkrgHhDTijhe?=
 =?iso-8859-1?Q?+6uSVPH33Siz96IlObP2ji11m96TpMyphq0qhqeKkXLVzolySMBTG5NFf6?=
 =?iso-8859-1?Q?mPe6JtBzOO700ThldhBZKvtPMvY2DvhLRYkLBK4kS92CubQ5zUDiLtALKn?=
 =?iso-8859-1?Q?Z2vVzF/MlRW9bsGILRBFg2nuRbFxKCE79ZZlOBqYNM2vohgyZdemmUVSVQ?=
 =?iso-8859-1?Q?dd0dOWOF7tFHHs3BJk2SZnJK9R59u+m4YMnMka7k+giNBxf/LRllu4JfiJ?=
 =?iso-8859-1?Q?hyRJUTUCceFK5eOk5/2WLutx1jlAIE0jETgJKH/ucjfPdZjDqIkArjei04?=
 =?iso-8859-1?Q?mNmZwHoQwIEB1GmqyTsxzsGR72jN5lv3sHvDVreKP0JgT8yLIpG6BjixNj?=
 =?iso-8859-1?Q?6uR6yULBNK9POoc+1EMR/7rkxRlbrsnh2dC4seIJICCdbn9GoaK1irh2hN?=
 =?iso-8859-1?Q?CDLzId6XfsADZx0/VFmnSxlZDu1HHBBeVfcnEJuJHuy7rG6xOhgMSKd9Pb?=
 =?iso-8859-1?Q?uGlmgNeL0FNUl/zwhADltHda7vS8GLVoy2A9JhFoPT+E+05As9FnyjB8Zl?=
 =?iso-8859-1?Q?l7Ei9IUhGpzprxwODIrF/md5fziur2RMTngmLbGB5UzazltyduOdBMeNgo?=
 =?iso-8859-1?Q?pOWedCd/uFmzoqIgxtMtDoWcwwvKpo2mH8z9zdiS/1gQ2Eat2p4jUZW/XQ?=
 =?iso-8859-1?Q?BS5KgT+z46iFdfFn2aZZIojiRVJJUOeVjD8WPXwSk6MY7MqJMMBAKOow?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7c35c8ea-f2f4-4658-e979-08dbf2d7ca0f
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:41:22.4783
 (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: yRvAfL4Bfj9hEDUmG8q06hammh8xmttkHjqlkeXanvuPrlqCG2gm4xwfpUXyWQipmk0+E6qKtJ+FIu7I1Nn+HCAdepHfhvR+Uz2c5R6B7SM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7285
X-Proofpoint-ORIG-GUID: kWKuNfjc1JuJ-6sL3MVA_lOQrCrkuJ_e
X-Proofpoint-GUID: kWKuNfjc1JuJ-6sL3MVA_lOQrCrkuJ_e
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=851
 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0
 priorityscore=1501 adultscore=0 spamscore=0 impostorscore=0 clxscore=1015
 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020009

In xen-all.c there are unneeded dependencies on xen-legacy-backend.c:

 - xen_init() uses xen_pv_printf() to report errors, but it does not
 provide a pointer to the struct XenLegacyDevice, so it is kind of
 useless, we can use standard error_report() instead.

 - xen-all.c has function xenstore_record_dm_state() which uses global
 variable "xenstore" defined and initialized in xen-legacy-backend.c
 It is used exactly once, so we can just open a new connection to the
 xenstore, update DM state and close connection back.

Those two changes allows us to remove xen-legacy-backend.c at all,
what should be done in the future anyways. But right now this patch
moves us one step close to have QEMU build without legacy Xen
backends.

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

---

In v4:

 - New in v4, previous was part of "xen: add option to disable legacy
 backends"
 - Do not move xenstore global variable from xen-legacy-backend.c,
   instead use a local variable.
---
 accel/xen/xen-all.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/accel/xen/xen-all.c b/accel/xen/xen-all.c
index 5ff0cb8bd9..6c2342581f 100644
--- a/accel/xen/xen-all.c
+++ b/accel/xen/xen-all.c
@@ -33,12 +33,20 @@ xendevicemodel_handle *xen_dmod;
 static void xenstore_record_dm_state(const char *state)
 {
     char path[50];
+    struct qemu_xs_handle *xsh =3D qemu_xen_xs_open();
+
+    if (!xsh) {
+        error_report("error opening xenstore");
+        exit(1);
+    }
=20
     snprintf(path, sizeof (path), "device-model/%u/state", xen_domid);
-    if (!qemu_xen_xs_write(xenstore, XBT_NULL, path, state, strlen(state))=
) {
+    if (!qemu_xen_xs_write(xsh, XBT_NULL, path, state, strlen(state))) {
         error_report("error recording dm state");
         exit(1);
     }
+
+    qemu_xen_xs_close(xsh);
 }
=20
=20
@@ -80,18 +88,18 @@ static int xen_init(MachineState *ms)
=20
     xen_xc =3D xc_interface_open(0, 0, 0);
     if (xen_xc =3D=3D NULL) {
-        xen_pv_printf(NULL, 0, "can't open xen interface\n");
+        error_report("can't open xen interface\n");
         return -1;
     }
     xen_fmem =3D xenforeignmemory_open(0, 0);
     if (xen_fmem =3D=3D NULL) {
-        xen_pv_printf(NULL, 0, "can't open xen fmem interface\n");
+        error_report("can't open xen fmem interface\n");
         xc_interface_close(xen_xc);
         return -1;
     }
     xen_dmod =3D xendevicemodel_open(0, 0);
     if (xen_dmod =3D=3D NULL) {
-        xen_pv_printf(NULL, 0, "can't open xen devicemodel interface\n");
+        error_report("can't open xen devicemodel interface\n");
         xenforeignmemory_close(xen_fmem);
         xc_interface_close(xen_xc);
         return -1;
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:41:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:41:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645879.1008441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9F0k-0007qM-KU; Sat, 02 Dec 2023 01:41:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645879.1008441; Sat, 02 Dec 2023 01: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 1r9F0k-0007qD-H4; Sat, 02 Dec 2023 01:41:38 +0000
Received: by outflank-mailman (input) for mailman id 645879;
 Sat, 02 Dec 2023 01:41: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9F0j-0007jp-Cq
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:41:37 +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 ec9ee78c-90b3-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 02:41:34 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B21Xj1G026535; Sat, 2 Dec 2023 01:41:29 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2169.outbound.protection.outlook.com [104.47.17.169])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqt8mg21a-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:41:28 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB7285.eurprd03.prod.outlook.com (2603:10a6:20b:2ef::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:41:23 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:41: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: ec9ee78c-90b3-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jGCrxnIg0hx0I3TroprqXEzfV37pt5UBN3qgZ6sHOIaLco2UI05WeDf63axAmzWBd1/ijxxnXvwdweK6tu5lvhRh/RE+9pTP2G8+adDlbIglzwzWlrTAlXvLTdZlxluGQ6Y1HzLvDwnDhEB8ENNjyYSYxPvSOUkniY/a3CuaElP/XImGEWNw0iSULnK7yu/eBtZxzuVRHG/G5bmTujZrKe+OJUMebD51rhRpp84UM8e0B2xjpe2Fhud/cZHFe6Y1fkUB5U4ajOPBpH1CRtfn8WnhO2XXDt6pAmEm8SEW2xDdI+WpUZb9hS/MfkXt2A72Suhg93v+zVj28YGEBXjprA==
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=D1sE3o7/1/WPykkUQrLgvygBnr35JJ7+xArB8a3+h6c=;
 b=Ga0bvfX1781S5oJ36DK+txA+SIru21JrwNvdbJA++aWoarOvheBw3/tnmIdU3JzvffKVBSpIia+uHH61hAwwglTylple+AMST8z7oAkwrzW2ibFejJznUTSYEN5FtcOq7I0/lMpJYLb9M/CPIYx/DZbJBRlhgPNE5DkCQxpPFoBxh7ea2kdd7SSl7eyTNIKnDT68F8tRAFQuccw+7QsZNEungjBazOEbRkq4ZJIMR/rrbzn+O+uTGdroywaErbZfvQhCCmzU8R4oDUe7C/Rr432dZZrVs5UqFN8M05jvU5CFuUBYzdlbIAdOvMjKhv3P2YRytKx9gF5pumb4nO8DPA==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=D1sE3o7/1/WPykkUQrLgvygBnr35JJ7+xArB8a3+h6c=;
 b=cjla2c6sIf2gY0Bk6CbEMrhNTKF/v206Un2TND/fDyd7GBqGM9BxXmgrjtap7b76z5p5VYirm4ZhY0wE4wZ4sLdXsK59MAizaW7YcDyO/+7wFvrWq7dWYQ+ChqVtKV2ONVmyrYpPVocNre63zSwgptZAe9iVX8HhLdRqaQKMOTggMCqfgUkQHp9cKzEfBOfJdWkGNjajtuSm9uRDMYpqVbbmPO7xM+ZcZGFWNuX7eTU0GU0CfH9tOgRPJuKvvqCVO4/XDZhNsshIicso3duyWw5XUa5F75C1xTOq/oG17RfziQxRg4nCcjGKaRKHg7/G6pnwDjsogErtABe/RCOJYg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
CC: David Woodhouse <dwmw@amazon.co.uk>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Peter Maydell <peter.maydell@linaro.org>,
        Anthony Perard <anthony.perard@citrix.com>,
        Paul Durrant <paul@xen.org>,
        "open list:ARM TCG CPUs" <qemu-arm@nongnu.org>,
        "open list:X86 Xen CPUs"
	<xen-devel@lists.xenproject.org>
Subject: [PATCH v4 6/6] xen_arm: Add virtual PCIe host bridge support
Thread-Topic: [PATCH v4 6/6] xen_arm: Add virtual PCIe host bridge support
Thread-Index: AQHaJMCo0BornjVbl0aSaRGzaWWdGA==
Date: Sat, 2 Dec 2023 01:41:23 +0000
Message-ID: <20231202014108.2017803-7-volodymyr_babchuk@epam.com>
References: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB7285:EE_
x-ms-office365-filtering-correlation-id: 949ee9dc-8a24-4199-2fba-08dbf2d7cad8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 KjcoTtbcWIF5OI9JMph43mydcyPVte4s3LMDrNx5qdhvPSNe0/0WYy66kIGdvXPRsG1OII0xO4bQtscefMIdVX1GLtLX9HiNsE6VNylJ28AQEVf/qwoqky8TFmL7sFI4IjznsGXRT/Z31s3w7mFvDPTdiaDZoTIPaXP3PvF2hH9308KG+blQiApKyMSaUkaWxroEdgnkK0L3oWAwUuBBvH8SVOMbhrYs+3KWV4hM1P8eZZzxbbG/s5RVQXM6L8/1aKNEHxaCRhfIUxH2HNIKPnjqiPB0l3xror0VlAV31QJigvn6CsheyKvdMmPccdjCy9NDSoY3IxD1HTaaQZnW9wpkYb7GJYeEuFmqoY2CffJY+RjvBCnnsT8gXGloDrIn5fjk8OPtVu/6QzJsMXG9OdRG06CscvbvNfginu52f/g2u8tmgq3Nnq7okFaMEmYkjYx9OgF74oNmhl+VjUnFH2ciraxSmirBoAr3IHLPvVkwkT5VKizaXLIJ8+G/qUjOky2BX/tti/DDu0VgFutkR7eiYujXkLr1zad/X1Q4aJ+SK9ujG7CjYuQVFCB2Hmi8AaTQV15Y6lXTeEV+45w9UaDxv8Zl4KXDfPvJMeBKrraK2pxBuZtiZ6S2gEXFYYYr
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(376002)(396003)(366004)(346002)(136003)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(122000001)(38070700009)(41300700001)(2906002)(30864003)(5660300002)(83380400001)(71200400001)(55236004)(38100700002)(6506007)(6512007)(1076003)(2616005)(26005)(66556008)(478600001)(91956017)(6486002)(36756003)(76116006)(66946007)(64756008)(66446008)(8936002)(6916009)(54906003)(86362001)(66476007)(4326008)(316002)(8676002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?VhgFjOw+sealzzey+FGUtYx94cTDA3Fwtvwmq16SmwvPTlWgX5H3ssFwFL?=
 =?iso-8859-1?Q?0Fosjv3h/vxxmJmoZXu9zVwy31vbYcKHiR5dQ08rEMxG7izt6aAlNsTG1k?=
 =?iso-8859-1?Q?Wp7NLi6lmjzElnlT1FH+1W7Bh8xcgqT7TXyV3Wq76j3GPSNwslqNI6ICMl?=
 =?iso-8859-1?Q?qYewA6FbZ+PbXTJw6nt98MtcsvsaAhuRFGxmfZ2KxEvjIAurslCK+tHa9X?=
 =?iso-8859-1?Q?AiBNsmGB47HQH36nDPL9pyNfUfXU7nZaM56c1OojZqxCmWuxqjaVBV52kP?=
 =?iso-8859-1?Q?KmGhZ0RCPCQwmbz7Xz0XyZpHoIQ3iZ+8beBJE3TwuMVqZ7NOJJnxBrcApO?=
 =?iso-8859-1?Q?8p3Ux6bwxtbXP5htXiqyWxeYkJ6Mfk+635xCpJIROSScArkQq+TAOLHxGk?=
 =?iso-8859-1?Q?zceKiRNevznDa9wLalBJYdQ2whq105PF/ddDJWm2c+k1pTf09p+Ya14eeO?=
 =?iso-8859-1?Q?4ICz7qvhdzlYlK750kqsNdzI08MkhhXYbwoZ9wIfVCpfbhOoRwTjYZptnG?=
 =?iso-8859-1?Q?cKx7YZbWVny7y/ftvuhcb+I/LGfNSPW+S9KFOQVzLvQ+UBlQvVbA6tMY4U?=
 =?iso-8859-1?Q?tkOTzdWRKecrUvNw9wBMN883xslrNE2Tnav1A7oGvcxOGuWVRp48NMYt1v?=
 =?iso-8859-1?Q?QEW9FSELaWS13fkGoJ7RfPfXT9DWcGDwaCtV7ORvjjFNtDUseseL67fv2S?=
 =?iso-8859-1?Q?FLYnQ2nUpSWRQg5pUdY6zZSdegViUWjxrnQz3x4fkniSozTynM8wQi2zMp?=
 =?iso-8859-1?Q?W1zLJi/Nj7/88/kin6ARaxEBjymdb11E3N4PnidqHP1TonsV6V44WaVyx3?=
 =?iso-8859-1?Q?R2LR6pDh58b+DDkMluWTaO9VpFVQsCQNp9JmbUly/azjNtK+GBoCUyoy0u?=
 =?iso-8859-1?Q?pLJTEF9D/V02rNYvpvfYVKi0m22cXrvQx+HRwvEjaxfo/T/w6UBuJqwkb8?=
 =?iso-8859-1?Q?fNA6C2fhZ9H/gcFCW1PqiOlKidG1CuYhAF+0CZkn+GY2RR9jlKT03YbeZf?=
 =?iso-8859-1?Q?qBrXSuBifypJswmMCgvcTY1RaWE3fz0I0xKY3kRV9E9EXcq+HcyoQBqmI/?=
 =?iso-8859-1?Q?aSYhrTr0c0fmMg9E53DHYYdC6kOet5T/UvahnLJrAIgxcoyOCzcSeIkm43?=
 =?iso-8859-1?Q?p6Pi47OMb9KNR71cqcoa16Wrwr9XtX/ib0dDmL9sM9vz9QzpyfIMQoZQ6p?=
 =?iso-8859-1?Q?K35griJGW7/Ct2S+wPhd4Z8ezmc3dqkQkiNBeruRoOlpGBE/1L/1TxNi4l?=
 =?iso-8859-1?Q?AWvLxMlcJdWDOR0tsGT3RtBjnK6knZfXiYm8frb5cqAG74njybQDIsAYP4?=
 =?iso-8859-1?Q?Hmx3TPX6pmHmzh1Grnu0uX7hUHhZ31PbUoj2UfVt8wNCqSr5LfphHVJ6uO?=
 =?iso-8859-1?Q?mdMq2fLw7nA3JjWLWe0J/jeV8Zz0r+Dxs+6fvDodPxdT08VWYRCezs5f5B?=
 =?iso-8859-1?Q?X0izHYqIxbhUcYsYRMSMgGxw5EzF4U8Z9VxBaOIkGNNwPXbua2HRWXm0mA?=
 =?iso-8859-1?Q?YPspzzGL2IlgKMuuBbyy3Tp63gvqZu/BMLL/uMP5T9lRq+Ohl+dsr7R4O/?=
 =?iso-8859-1?Q?XRwlG8s3yMhTUD3ScLcf+wvbzh5O+Ai7yxOOvxZNpEoeSM7/tQJY1YdvWS?=
 =?iso-8859-1?Q?2aazPX28x5hKi7u0r88hOWWSRgeAZeKlox4+osPF3zv6V29n0QFQ5pow?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 949ee9dc-8a24-4199-2fba-08dbf2d7cad8
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:41:23.7697
 (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: K5v7ptYctR9rW7ZhsrwIHjfqXwoq44w6D1no8yvkruzTXjGGCP8BfZJENombVT6PWoRF/fHWT/9E7P7bBxmCDTJNraWf7drlA2uQX0A819I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7285
X-Proofpoint-ORIG-GUID: zPLSo3Bgabl3StRLPmaNAY-xl3gPbGSz
X-Proofpoint-GUID: zPLSo3Bgabl3StRLPmaNAY-xl3gPbGSz
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0
 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 adultscore=0
 malwarescore=0 lowpriorityscore=0 mlxlogscore=999 clxscore=1015
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020009

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

The bridge is needed for virtio-pci support, as QEMU can emulate the
whole bridge with any virtio-pci devices connected to it.

This patch provides a flexible way to configure PCIe bridge resources
using QEMU machine properties. We made this for several reasons:

- We don't want to clash with vPCI devices, so we need information
  from Xen toolstack on which PCI bus to use.
- The guest memory layout that describes these resources is not stable
  and may vary between guests, so we cannot rely on static resources
  to be always the same for both ends.
- Also the device-models which run in different domains and serve
  virtio-pci devices for the same guest should use different host
  bridge resources for Xen to distinguish. The rule for the guest
  device-tree generation is one PCI host bridge per backend domain.

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

---

Changes in v3:

 - Use QOM properties instead of reading from XenStore
 - Remove unneeded includes
 - Move pcie_* fields into "struct cfg"

Changes in v2:

 - Renamed virtio_pci_host to pcie_host entries in XenStore, because
 there is nothing specific to virtio-pci: any PCI device can be
 emulated via this newly created bridge.
---
 hw/arm/xen_arm.c            | 226 ++++++++++++++++++++++++++++++++++++
 hw/xen/xen-hvm-common.c     |   9 +-
 include/hw/xen/xen_native.h |   8 +-
 3 files changed, 240 insertions(+), 3 deletions(-)

diff --git a/hw/arm/xen_arm.c b/hw/arm/xen_arm.c
index b9c3ae14b6..dc6d3a1d82 100644
--- a/hw/arm/xen_arm.c
+++ b/hw/arm/xen_arm.c
@@ -34,6 +34,7 @@
 #include "hw/xen/xen-hvm-common.h"
 #include "sysemu/tpm.h"
 #include "hw/xen/arch_hvm.h"
+#include "hw/pci-host/gpex.h"
=20
 #define TYPE_XEN_ARM  MACHINE_TYPE_NAME("xenpvh")
 OBJECT_DECLARE_SIMPLE_TYPE(XenArmState, XEN_ARM)
@@ -57,6 +58,10 @@ struct XenArmState {
=20
     struct {
         uint64_t tpm_base_addr;
+        MemMapEntry pcie_mmio;
+        MemMapEntry pcie_ecam;
+        MemMapEntry pcie_mmio_high;
+        int         pcie_irq_base;
     } cfg;
 };
=20
@@ -73,6 +78,15 @@ static MemoryRegion ram_lo, ram_hi;
 #define NR_VIRTIO_MMIO_DEVICES   \
    (GUEST_VIRTIO_MMIO_SPI_LAST - GUEST_VIRTIO_MMIO_SPI_FIRST)
=20
+#define XEN_ARM_PCIE_ECAM_BASE          "pcie-ecam-base"
+#define XEN_ARM_PCIE_ECAM_SIZE          "pcie-ecam-size"
+#define XEN_ARM_PCIE_MEM_BASE           "pcie-mem-base"
+#define XEN_ARM_PCIE_MEM_SIZE           "pcie-mem-size"
+#define XEN_ARM_PCIE_PREFETCH_BASE      "pcie-prefetch-mem-base"
+#define XEN_ARM_PCIE_PREFETCH_SIZE      "pcie-prefetch-mem-size"
+#define XEN_ARM_PCIE_IRQ_BASE           "pcie-irq-base"
+
+/* TODO It should be xendevicemodel_set_pci_intx_level() for PCI interrupt=
s. */
 static void xen_set_irq(void *opaque, int irq, int level)
 {
     if (xendevicemodel_set_irq_level(xen_dmod, xen_domid, irq, level)) {
@@ -129,6 +143,89 @@ static void xen_init_ram(MachineState *machine)
     }
 }
=20
+static bool xen_validate_pcie_config(XenArmState *xam)
+{
+    if (xam->cfg.pcie_ecam.base =3D=3D 0 &&
+        xam->cfg.pcie_ecam.size =3D=3D 0 &&
+        xam->cfg.pcie_mmio.base =3D=3D 0 &&
+        xam->cfg.pcie_mmio.size =3D=3D 0 &&
+        xam->cfg.pcie_mmio_high.base =3D=3D 0 &&
+        xam->cfg.pcie_mmio_high.size =3D=3D 0 &&
+        xam->cfg.pcie_irq_base =3D=3D 0) {
+
+        /* It's okay, user just don't want PCIe brige */
+
+        return false;
+    }
+
+    if (xam->cfg.pcie_ecam.base =3D=3D 0 ||
+        xam->cfg.pcie_ecam.size =3D=3D 0 ||
+        xam->cfg.pcie_mmio.base =3D=3D 0 ||
+        xam->cfg.pcie_mmio.size =3D=3D 0 ||
+        xam->cfg.pcie_mmio_high.base =3D=3D 0 ||
+        xam->cfg.pcie_mmio_high.size =3D=3D 0 ||
+        xam->cfg.pcie_irq_base =3D=3D 0) {
+
+        /* User provided some PCIe options, but not all of them */
+
+        error_printf("Incomplete PCIe bridge configuration\n");
+
+        exit(1);
+    }
+
+    return true;
+}
+
+static void xen_create_pcie(XenArmState *xam)
+{
+    MemoryRegion *mmio_alias, *mmio_alias_high, *mmio_reg;
+    MemoryRegion *ecam_alias, *ecam_reg;
+    DeviceState *dev;
+    int i;
+
+    dev =3D qdev_new(TYPE_GPEX_HOST);
+    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
+
+    /* Map ECAM space */
+    ecam_alias =3D g_new0(MemoryRegion, 1);
+    ecam_reg =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 0);
+    memory_region_init_alias(ecam_alias, OBJECT(dev), "pcie-ecam",
+                             ecam_reg, 0, xam->cfg.pcie_ecam.size);
+    memory_region_add_subregion(get_system_memory(), xam->cfg.pcie_ecam.ba=
se,
+                                ecam_alias);
+
+    /* Map the MMIO space */
+    mmio_alias =3D g_new0(MemoryRegion, 1);
+    mmio_reg =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 1);
+    memory_region_init_alias(mmio_alias, OBJECT(dev), "pcie-mmio",
+                             mmio_reg,
+                             xam->cfg.pcie_mmio.base,
+                             xam->cfg.pcie_mmio.size);
+    memory_region_add_subregion(get_system_memory(), xam->cfg.pcie_mmio.ba=
se,
+                                mmio_alias);
+
+    /* Map the MMIO_HIGH space */
+    mmio_alias_high =3D g_new0(MemoryRegion, 1);
+    memory_region_init_alias(mmio_alias_high, OBJECT(dev), "pcie-mmio-high=
",
+                             mmio_reg,
+                             xam->cfg.pcie_mmio_high.base,
+                             xam->cfg.pcie_mmio_high.size);
+    memory_region_add_subregion(get_system_memory(),
+                                xam->cfg.pcie_mmio_high.base,
+                                mmio_alias_high);
+
+    /* Legacy PCI interrupts (#INTA - #INTD) */
+    for (i =3D 0; i < GPEX_NUM_IRQS; i++) {
+        qemu_irq irq =3D qemu_allocate_irq(xen_set_irq, NULL,
+                                         xam->cfg.pcie_irq_base + i);
+
+        sysbus_connect_irq(SYS_BUS_DEVICE(dev), i, irq);
+        gpex_set_irq_num(GPEX_HOST(dev), i, xam->cfg.pcie_irq_base + i);
+    }
+
+    DPRINTF("Created PCIe host bridge\n");
+}
+
 void arch_handle_ioreq(XenIOState *state, ioreq_t *req)
 {
     hw_error("Invalid ioreq type 0x%x\n", req->type);
@@ -189,6 +286,12 @@ static void xen_arm_init(MachineState *machine)
     xen_register_ioreq(xam->state, machine->smp.cpus, &xen_memory_listener=
);
=20
     xen_create_virtio_mmio_devices(xam);
+    if (xen_validate_pcie_config(xam)) {
+        xen_create_pcie(xam);
+    } else {
+        DPRINTF("PCIe host bridge is not configured,"
+                " only virtio-mmio can be used\n");
+    }
=20
 #ifdef CONFIG_TPM
     if (xam->cfg.tpm_base_addr) {
@@ -225,6 +328,90 @@ static void xen_arm_set_tpm_base_addr(Object *obj, Vis=
itor *v,
 }
 #endif
=20
+static void xen_arm_get_pcie_prop(Object *obj, Visitor *v,
+                                  const char *name, void *opaque,
+                                  Error **errp)
+{
+    XenArmState *xam =3D XEN_ARM(obj);
+    hwaddr *target;
+
+    if (!strcmp(name, XEN_ARM_PCIE_ECAM_BASE)) {
+        target =3D &xam->cfg.pcie_ecam.base;
+    } else if (!strcmp(name, XEN_ARM_PCIE_ECAM_SIZE)) {
+        target =3D &xam->cfg.pcie_ecam.size;
+    } else if (!strcmp(name, XEN_ARM_PCIE_MEM_BASE)) {
+        target =3D &xam->cfg.pcie_mmio.base;
+    } else if (!strcmp(name, XEN_ARM_PCIE_MEM_SIZE)) {
+        target =3D &xam->cfg.pcie_mmio.size;
+    } else if (!strcmp(name, XEN_ARM_PCIE_PREFETCH_BASE)) {
+        target =3D &xam->cfg.pcie_mmio_high.base;
+    } else if (!strcmp(name, XEN_ARM_PCIE_PREFETCH_SIZE)) {
+        target =3D &xam->cfg.pcie_mmio_high.size;
+    } else {
+        /* Unreachable */
+        assert(false);
+        return;
+    }
+
+    visit_type_uint64(v, name, target, errp);
+}
+
+static void xen_arm_set_pcie_prop(Object *obj, Visitor *v,
+                                  const char *name, void *opaque,
+                                  Error **errp)
+{
+    XenArmState *xam =3D XEN_ARM(obj);
+    uint64_t value;
+    hwaddr *target;
+
+    if (!strcmp(name, XEN_ARM_PCIE_ECAM_BASE)) {
+        target =3D &xam->cfg.pcie_ecam.base;
+    } else if (!strcmp(name, XEN_ARM_PCIE_ECAM_SIZE)) {
+        target =3D &xam->cfg.pcie_ecam.size;
+    } else if (!strcmp(name, XEN_ARM_PCIE_MEM_BASE)) {
+        target =3D &xam->cfg.pcie_mmio.base;
+    } else if (!strcmp(name, XEN_ARM_PCIE_MEM_SIZE)) {
+        target =3D &xam->cfg.pcie_mmio.size;
+    } else if (!strcmp(name, XEN_ARM_PCIE_PREFETCH_BASE)) {
+        target =3D &xam->cfg.pcie_mmio_high.base;
+    } else if (!strcmp(name, XEN_ARM_PCIE_PREFETCH_SIZE)) {
+        target =3D &xam->cfg.pcie_mmio_high.size;
+    } else {
+        /* Unreachable */
+        assert(false);
+        return;
+    }
+
+    if (!visit_type_uint64(v, name, &value, errp)) {
+        return;
+    }
+    *target =3D value;
+}
+
+static void xen_arm_get_pcie_irq_base(Object *obj, Visitor *v,
+                                      const char *name, void *opaque,
+                                      Error **errp)
+{
+    XenArmState *xam =3D XEN_ARM(obj);
+    int64_t value =3D xam->cfg.pcie_irq_base;
+
+    visit_type_int(v, name, &value, errp);
+}
+
+static void xen_arm_set_pcie_irq_base(Object *obj, Visitor *v,
+                                      const char *name, void *opaque,
+                                      Error **errp)
+{
+    XenArmState *xam =3D XEN_ARM(obj);
+    int64_t value;
+
+    if (!visit_type_int(v, name, &value, errp)) {
+        return;
+    }
+
+    xam->cfg.pcie_irq_base =3D value;
+}
+
 static void xen_arm_machine_class_init(ObjectClass *oc, void *data)
 {
=20
@@ -246,6 +433,45 @@ static void xen_arm_machine_class_init(ObjectClass *oc=
, void *data)
=20
     machine_class_allow_dynamic_sysbus_dev(mc, TYPE_TPM_TIS_SYSBUS);
 #endif
+
+    object_class_property_add(oc, XEN_ARM_PCIE_ECAM_BASE, "uint64_t",
+                              xen_arm_get_pcie_prop,
+                              xen_arm_set_pcie_prop, NULL, NULL);
+    object_class_property_set_description(oc, XEN_ARM_PCIE_ECAM_BASE,
+        "Base address for ECAM range of virtual PCIe host bridge");
+    object_class_property_add(oc, XEN_ARM_PCIE_ECAM_SIZE, "uint64_t",
+                              xen_arm_get_pcie_prop,
+                              xen_arm_set_pcie_prop, NULL, NULL);
+    object_class_property_set_description(oc, XEN_ARM_PCIE_ECAM_SIZE,
+        "Size of ECAM range of virtual PCIe host bridge");
+
+    object_class_property_add(oc, XEN_ARM_PCIE_MEM_BASE, "uint64_t",
+                              xen_arm_get_pcie_prop,
+                              xen_arm_set_pcie_prop, NULL, NULL);
+    object_class_property_set_description(oc, XEN_ARM_PCIE_MEM_BASE,
+        "Base address for non-prefetchable memory of virtual PCIe host bri=
dge");
+    object_class_property_add(oc, XEN_ARM_PCIE_MEM_SIZE, "uint64_t",
+                              xen_arm_get_pcie_prop,
+                              xen_arm_set_pcie_prop, NULL, NULL);
+    object_class_property_set_description(oc, XEN_ARM_PCIE_MEM_SIZE,
+        "Size of non-prefetchable memory of virtual PCIe host bridge");
+
+    object_class_property_add(oc, XEN_ARM_PCIE_PREFETCH_BASE, "uint64_t",
+                              xen_arm_get_pcie_prop,
+                              xen_arm_set_pcie_prop, NULL, NULL);
+    object_class_property_set_description(oc, XEN_ARM_PCIE_PREFETCH_BASE,
+        "Base address for prefetchable memory of virtual PCIe host bridge"=
);
+    object_class_property_add(oc, XEN_ARM_PCIE_PREFETCH_SIZE, "uint64_t",
+                              xen_arm_get_pcie_prop,
+                              xen_arm_set_pcie_prop, NULL, NULL);
+    object_class_property_set_description(oc, XEN_ARM_PCIE_PREFETCH_SIZE,
+        "Size of prefetchable memory of virtual PCIe host bridge");
+
+    object_class_property_add(oc, XEN_ARM_PCIE_IRQ_BASE, "int",
+                              xen_arm_get_pcie_irq_base,
+                              xen_arm_set_pcie_irq_base, NULL, NULL);
+    object_class_property_set_description(oc, XEN_ARM_PCIE_IRQ_BASE,
+        "Number of first PCI legacy interrupt for PCIe host bridge");
 }
=20
 static const TypeInfo xen_arm_machine_type =3D {
diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c
index 2e7897dbd2..19fcccdb16 100644
--- a/hw/xen/xen-hvm-common.c
+++ b/hw/xen/xen-hvm-common.c
@@ -47,6 +47,8 @@ void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, =
MemoryRegion *mr,
     g_free(pfn_list);
 }
=20
+uint16_t xen_pci_segment;
+
 static void xen_set_memory(struct MemoryListener *listener,
                            MemoryRegionSection *section,
                            bool add)
@@ -382,7 +384,12 @@ static void cpu_ioreq_config(XenIOState *state, ioreq_=
t *req)
     }
=20
     QLIST_FOREACH(xendev, &state->dev_list, entry) {
-        if (xendev->sbdf !=3D sbdf) {
+        /*
+         * As we append xen_pci_segment just before forming dm_op in
+         * xen_map_pcidev() we need to check with appended xen_pci_segment
+         * here as well.
+         */
+        if ((xendev->sbdf | (xen_pci_segment << 16)) !=3D sbdf) {
             continue;
         }
=20
diff --git a/include/hw/xen/xen_native.h b/include/hw/xen/xen_native.h
index 6f09c48823..2b1debaff4 100644
--- a/include/hw/xen/xen_native.h
+++ b/include/hw/xen/xen_native.h
@@ -431,6 +431,8 @@ static inline void xen_unmap_io_section(domid_t dom,
                                                     0, start_addr, end_add=
r);
 }
=20
+extern uint16_t xen_pci_segment;
+
 static inline void xen_map_pcidev(domid_t dom,
                                   ioservid_t ioservid,
                                   PCIDevice *pci_dev)
@@ -441,7 +443,8 @@ static inline void xen_map_pcidev(domid_t dom,
=20
     trace_xen_map_pcidev(ioservid, pci_dev_bus_num(pci_dev),
                          PCI_SLOT(pci_dev->devfn), PCI_FUNC(pci_dev->devfn=
));
-    xendevicemodel_map_pcidev_to_ioreq_server(xen_dmod, dom, ioservid, 0,
+    xendevicemodel_map_pcidev_to_ioreq_server(xen_dmod, dom, ioservid,
+                                              xen_pci_segment,
                                               pci_dev_bus_num(pci_dev),
                                               PCI_SLOT(pci_dev->devfn),
                                               PCI_FUNC(pci_dev->devfn));
@@ -457,7 +460,8 @@ static inline void xen_unmap_pcidev(domid_t dom,
=20
     trace_xen_unmap_pcidev(ioservid, pci_dev_bus_num(pci_dev),
                            PCI_SLOT(pci_dev->devfn), PCI_FUNC(pci_dev->dev=
fn));
-    xendevicemodel_unmap_pcidev_from_ioreq_server(xen_dmod, dom, ioservid,=
 0,
+    xendevicemodel_unmap_pcidev_from_ioreq_server(xen_dmod, dom, ioservid,
+                                                  xen_pci_segment,
                                                   pci_dev_bus_num(pci_dev)=
,
                                                   PCI_SLOT(pci_dev->devfn)=
,
                                                   PCI_FUNC(pci_dev->devfn)=
);
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 01:41:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 01:41:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645880.1008452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9F0w-0008MS-7c; Sat, 02 Dec 2023 01:41:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645880.1008452; Sat, 02 Dec 2023 01:41: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 1r9F0w-0008MD-2S; Sat, 02 Dec 2023 01:41:50 +0000
Received: by outflank-mailman (input) for mailman id 645880;
 Sat, 02 Dec 2023 01:41: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=jVJG=HN=epam.com=prvs=6700ee1bd8=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1r9F0u-00072l-4D
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 01:41:48 +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 f42cf6f0-90b3-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 02:41:47 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 3B21X1Qp015641;
 Sat, 2 Dec 2023 01:41:28 GMT
Received: from eur05-vi1-obe.outbound.protection.outlook.com
 (mail-vi1eur05lp2168.outbound.protection.outlook.com [104.47.17.168])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uqa3aucrx-5
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Sat, 02 Dec 2023 01:41:28 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB7285.eurprd03.prod.outlook.com (2603:10a6:20b:2ef::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.27; Sat, 2 Dec
 2023 01:41:23 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.027; Sat, 2 Dec 2023
 01:41:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f42cf6f0-90b3-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=evgsby7gz/Ac8GwTIfqoRFTRzPmH0hKPD7MXGciMQApj+h6bzr+qiBXDrqvdOeHSOTiAOCf2dDrxrwVXvoQH2IwR9hYCNEtrMDpbhs+TPIl9H8bPeGpytNIkv+Fm9myvomwhMI4W3O2Z35Po3s5jzalZqSjsgNFrvDLuBhNhLc2MFXD9daFmSvZ9OV4QLAl0AwZ9WJ4zE49kMCvnxG6f+qPb21O8K0pXLZW1pRnVBaCZW2ULZGqycTE77OZBnEoW+2cV6iKY4eD85YYh9eCBlbpnVTyzKRTttn/21GDgqQ4roTIW2cwVV1lVoDSyYUnJX1aVprKUchrIzYA6Wj4PoA==
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=Fd2GMMSSgW+cobh8ZFxigRxf9cE6MrLzy6vrJfU+U7k=;
 b=H8nppiCDopCEb4w4RFLyg5fnqD7n2zxU61EBUWHbI7dOQh95DbaHny/Xn1hZZNUwFC0mYifREFd4Iw5RFHXhyUVHFHxJ44akhw/vcxBpPynz5yrZSqdfpxXlaVdnDUxwqkuhrRabjGIOgGpfEJpEBBCnhI3qhOf+i55FriY0wLlvogGnlKshgNzpr3hExRwz+G0s0iEop5NBxNSOM5wY5fZMnV+KAc2QJ7x+Qr4lrJYK7AIhIMHXF6DDuqY+Vh7cH3Ix/+iuKp0UelppDyWDOGJYuhF0t6KYH06xbG5YCVL77dyJsp/OkLmEtdDDaV8hJXK7P0iRBeETrtmadSi+Nw==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Fd2GMMSSgW+cobh8ZFxigRxf9cE6MrLzy6vrJfU+U7k=;
 b=fhiCsy4UcIdXcJzerKHyeBvLKrFvEnwvUEo38J+B4dtHk+/M0ljwut9yWBYxVk6Jx5thkuLPhrNCj+uVumXUltzf0wyiv2bDAAmONj/xUVfLA6SHIohdh4Jo3ojqh6vgEXP4EYfes49mYNtWDb2oMDOhZ+K8q5gSL3yXyovbKPaAX7kgGrwth4C5Zre7fUmYyeiL4+rYcVXyW5VLE79psW3zhB0NlqOkdqYYCRFRTdXLvJkPCJ5RiU6qBvy6f5FuBL/adjNxjD9R0dublAjDDtZmL3TSHf7wmss6mU7w1wmgVbgPeotG+WbWQeDQpsIkBvI289drc5/Fh2CtdRPAbA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
CC: David Woodhouse <dwmw@amazon.co.uk>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Greg Kurz <groug@kaod.org>,
        Christian
 Schoenebeck <qemu_oss@crudebyte.com>,
        Paolo Bonzini <pbonzini@redhat.com>,
        Richard Henderson <richard.henderson@linaro.org>,
        Eduardo Habkost
	<eduardo@habkost.net>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Marcel
 Apfelbaum <marcel.apfelbaum@gmail.com>,
        Gerd Hoffmann <kraxel@redhat.com>,
        Anthony Perard <anthony.perard@citrix.com>,
        Paul Durrant <paul@xen.org>,
        =?iso-8859-1?Q?Marc-Andr=E9_Lureau?= <marcandre.lureau@redhat.com>,
        =?iso-8859-1?Q?Daniel_P=2E_Berrang=E9?= <berrange@redhat.com>,
        Thomas Huth
	<thuth@redhat.com>,
        =?iso-8859-1?Q?Philippe_Mathieu-Daud=E9?=
	<philmd@linaro.org>,
        "open list:X86 Xen CPUs"
	<xen-devel@lists.xenproject.org>
Subject: [RFC PATCH v4 4/6] xen: add option to disable legacy backends
Thread-Topic: [RFC PATCH v4 4/6] xen: add option to disable legacy backends
Thread-Index: AQHaJMCn9jPeta/9M0OenQld9P6brA==
Date: Sat, 2 Dec 2023 01:41:22 +0000
Message-ID: <20231202014108.2017803-5-volodymyr_babchuk@epam.com>
References: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.42.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB7285:EE_
x-ms-office365-filtering-correlation-id: 5480e286-e83e-4782-b3d8-08dbf2d7ca52
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 CerkD+0MuaBOyAz3p6g74xYtIv9wM49imDVSzEdH3vDYnA3TKQ/rNAsW0LPMKG2ffUlv06Q57NdqD3EpzEKMz8vy3FIRgSoDx+DhZMgyFyoBG6TW6H0nM7cTgy62y6VMkZJ9ZajZcnR9PxjPt8PAz5jMfFSb405akum1WdBgRwO/YQIB9I4Op/hoxpX2y6JeoVlnOT3/yAQ20IfICBWtxzrBuVyHzXj40KVqrll+/M5y+dF44MJPbwoK6uL9SH3DMfSTearFMsNZK+cU1xxZApcKmJhn8fr12Of3W3ymCod57+SqXYdV+5yy9IIgk3onppc1a2VuUOa0NyCgPKHm/HqY7iD+ujZEMihs6ULLDYjjJUlanHg3feVXsHFFbvB9URV5LpF1k6C8wdYwET+c7vxVL6EUWuFpFsbPdDQDHaZBmN5zAO8mYfAYCFfxmWV2/YC3BH3+x/jOy+G0KcvnNI1me00rPnUj7yRGROwETs6zWApkW4d0xoxPkMaLZkj6bH2EMo+J65TN2YbQKyDw+pObl2U2wSh51xdBDYdwf1VqF6/VjKo/ZyECydhc5AQtw3bL0C174OpevwPOjB5QoWTbTnGrz2/4XsB4OBx3tHz7q84SohuyZcBZuUZg9m3lME+XxSEEs5Jf+l3O1d4e1Q==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(376002)(396003)(366004)(346002)(136003)(230173577357003)(230273577357003)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(122000001)(38070700009)(41300700001)(2906002)(7416002)(5660300002)(83380400001)(71200400001)(55236004)(38100700002)(6506007)(6512007)(1076003)(2616005)(26005)(66556008)(478600001)(91956017)(966005)(6486002)(36756003)(76116006)(66946007)(64756008)(66446008)(8936002)(6916009)(54906003)(86362001)(66476007)(4326008)(316002)(8676002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?VDaAzlQx3V58HmlzhgqPi4loXNjVAuABbd53jLxEG/sNIsj1WGzNiNpctK?=
 =?iso-8859-1?Q?FL4qcwfYU4+IhSAJIoibLF/26qGFCTR6P0y42LaVa+xFOTHVMqnHoEljHY?=
 =?iso-8859-1?Q?rSbjUGyHnuii5/9CSYRNybCv2OZvXAwIy7LQ0+BY3l/zK5ynrZ1ZMVPyw2?=
 =?iso-8859-1?Q?EwqBxFymhHzeyl73w11KcSTM4wWa8nlbn63FJt594XHO5bhlaz/AZUIB8u?=
 =?iso-8859-1?Q?cECmvxGZUmUkE/2fBnn1O1VMbl/l/VxXQtyzKqvNtudp4TW5BYwB7ZHPli?=
 =?iso-8859-1?Q?/hd3BtrdgAI/hsPNEBQQfSBqDmYyeLTRxHRguGQyesEUeOBoVQYISsdSkD?=
 =?iso-8859-1?Q?qlzuR32seLeic430mKHMbfu2J3DSkZyrPNt/2LnOmKSwSCYF2OtQpNtqxx?=
 =?iso-8859-1?Q?DsE5suCT/6HyQ96r4wLu4K45XuY56fK6lHPZTkQnFZdxioBojyqpN3pZGH?=
 =?iso-8859-1?Q?JfAzs6HFYBGhBGpNGt1qQ3R6ywKoekdZaZD5MOJpnMyE1cnDGyHhVEwzNs?=
 =?iso-8859-1?Q?wnDc0i5dRf9UAmhgbpPVxZ/kZjLx0Nl3E6JdtmLiQ2Zu38+AAgKKd19LVC?=
 =?iso-8859-1?Q?WjkLyHoEr2FA5iu6YJEHy577zVd8k2WPPlVPRhXpKWO4LOHNPh03fV9qCC?=
 =?iso-8859-1?Q?97tQexVsPoaRADIiXwIAMxNtbpKVbkNPCk1RHbbhFQqtCpi1fiKGuJaBFX?=
 =?iso-8859-1?Q?ovPBoQcu0/3uTY+giBx7oXKn5Q83yGPUooNUng7Jpa780DspH1nsfuPoA7?=
 =?iso-8859-1?Q?YkaMDtZx5QFslBoKPu+w5FxIgZqQBcCjVWW9LFSAq8ftEESM9xjRy+ehJs?=
 =?iso-8859-1?Q?mVVZCnrP5apO8SQNqIYONFXL0mf9r72aU+jyRxWp3aDhU+Jiyekp3HVEzN?=
 =?iso-8859-1?Q?RD2NGz/S5iHUjpRAIVdPEaQzEf8ACQ0CjfW+JkCArc0gUiEIpLlsu04S69?=
 =?iso-8859-1?Q?kr1xYdeUrlS25qTrI6GbSg+fWORhg77+Ec3b9xyMrkcBqPOgR0UPGdnF60?=
 =?iso-8859-1?Q?pZXvosrul2U1G0/woR5Mvw6PaXeHziDD7xtcKMblvCkDPyEFRXS1TuyTo6?=
 =?iso-8859-1?Q?HJGpcgUslb1mFGviemRbzgPUI/JiCgktF1DNqEoUUqLGNTLD2rXJ/FNuzJ?=
 =?iso-8859-1?Q?QGcouD1Tho6q/u2B2UuoIHlugSCbOSLoSqtIJ2OXSauxMoeK3gmD9aQbz6?=
 =?iso-8859-1?Q?uQiXLN+HBCn1BHhfHoKMuLtuEnf0AVEHoJ2dYaUGN2IKCXKtaEtZMDaVyr?=
 =?iso-8859-1?Q?ekNm20vVcEuc4NDMB1y4aMV+ZWhfukcj+oRYWD2talnCwBu7E7hq3meRF0?=
 =?iso-8859-1?Q?slRHEGsnUaoh9TkhKlnIq7W1JLa0RmL4WWeoKm8laDNUZleYgHu19250Kq?=
 =?iso-8859-1?Q?econ0iUM3gR+uGe+CAsudp4nvvIThbVpT9F0oWGmYHumKGVyOcADDAYmK9?=
 =?iso-8859-1?Q?GsT1e/XXAZJ7m7v4UEpUYp7T8dNKY602XQUzryzseRRKx8FkqJN+UpXeX/?=
 =?iso-8859-1?Q?T8TCrPQ7dDpKYs9og019SVfsrLF9kp+wxY1As0VPNwha1KloYAj0shqjhi?=
 =?iso-8859-1?Q?SyLLUF59TssiwtDgjUCmMuyH1FIVy/UWGNhWj9qP7sgOzAd3VmEWs0BUyd?=
 =?iso-8859-1?Q?Ht3yGMgc1SsgaAmsKYcjOK0s7Cdk5NAOWxaj81VEEUbMjVPLHQy3Udog?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5480e286-e83e-4782-b3d8-08dbf2d7ca52
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 01:41:22.9033
 (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: a1qj5xIyQoXDsKFOo/VQUNU3VnUIgQn/vGUHu79TGShyRiwd+nswyBKKUDkz/0BPoZL9hhI5/tGNHz4LNnnRRAwhsgUl9SDAlUdoZwZBejE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7285
X-Proofpoint-ORIG-GUID: auP1DLL3KenOzM_fnUodKFyRiOKe1i-B
X-Proofpoint-GUID: auP1DLL3KenOzM_fnUodKFyRiOKe1i-B
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-01_24,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999
 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0
 priorityscore=1501 adultscore=0 spamscore=0 impostorscore=0 clxscore=1015
 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020009

This patch makes legacy backends optional. As was discussed at [1]
this is a solution to a problem when we can't run QEMU as a device
model in a non-privileged domain. This is because legacy backends
assume that they are always running in domain with ID =3D 0. Actually,
this may prevent running QEMU in a privileged domain with ID not equal
to zero.

With this patch it is possible to provide
"--disable-xen-legacy-backends" configure option to get QEMU binary
that can run in a driver domain. With price of not be able to use
legacy backends of course.

[1]
https://lists.gnu.org/archive/html/qemu-devel/2023-11/msg05022.html

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

---

I am not sure if I made correct changes to build system, so this patch
is tagged as RFC.

Changes in v3:
 - New patch in v3
---
 hw/9pfs/meson.build           |  4 +++-
 hw/display/meson.build        |  4 +++-
 hw/i386/pc.c                  |  2 ++
 hw/usb/meson.build            |  5 ++++-
 hw/xen/meson.build            | 11 ++++++++---
 hw/xen/xen-hvm-common.c       |  2 ++
 hw/xenpv/xen_machine_pv.c     |  2 ++
 meson.build                   |  5 +++++
 meson_options.txt             |  2 ++
 scripts/meson-buildoptions.sh |  4 ++++
 10 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/hw/9pfs/meson.build b/hw/9pfs/meson.build
index 2944ea63c3..e8306ba8d2 100644
--- a/hw/9pfs/meson.build
+++ b/hw/9pfs/meson.build
@@ -15,7 +15,9 @@ fs_ss.add(files(
 ))
 fs_ss.add(when: 'CONFIG_LINUX', if_true: files('9p-util-linux.c'))
 fs_ss.add(when: 'CONFIG_DARWIN', if_true: files('9p-util-darwin.c'))
-fs_ss.add(when: 'CONFIG_XEN_BUS', if_true: files('xen-9p-backend.c'))
+if have_xen_legacy_backends
+  fs_ss.add(when: 'CONFIG_XEN_BUS', if_true: files('xen-9p-backend.c'))
+endif
 system_ss.add_all(when: 'CONFIG_FSDEV_9P', if_true: fs_ss)
=20
 specific_ss.add(when: 'CONFIG_VIRTIO_9P', if_true: files('virtio-9p-device=
.c'))
diff --git a/hw/display/meson.build b/hw/display/meson.build
index 344dfe3d8c..18d657f6b3 100644
--- a/hw/display/meson.build
+++ b/hw/display/meson.build
@@ -14,7 +14,9 @@ system_ss.add(when: 'CONFIG_PL110', if_true: files('pl110=
.c'))
 system_ss.add(when: 'CONFIG_SII9022', if_true: files('sii9022.c'))
 system_ss.add(when: 'CONFIG_SSD0303', if_true: files('ssd0303.c'))
 system_ss.add(when: 'CONFIG_SSD0323', if_true: files('ssd0323.c'))
-system_ss.add(when: 'CONFIG_XEN_BUS', if_true: files('xenfb.c'))
+if have_xen_legacy_backends
+  system_ss.add(when: 'CONFIG_XEN_BUS', if_true: files('xenfb.c'))
+endif
=20
 system_ss.add(when: 'CONFIG_VGA_PCI', if_true: files('vga-pci.c'))
 system_ss.add(when: 'CONFIG_VGA_ISA', if_true: files('vga-isa.c'))
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 29b9964733..91857af428 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1263,7 +1263,9 @@ void pc_basic_device_init(struct PCMachineState *pcms=
,
             pci_create_simple(pcms->bus, -1, "xen-platform");
         }
         pcms->xenbus =3D xen_bus_init();
+#ifdef CONFIG_XEN_LEGACY_BACKENDS
         xen_be_init();
+#endif
     }
 #endif
=20
diff --git a/hw/usb/meson.build b/hw/usb/meson.build
index e94149ebde..8d395745b2 100644
--- a/hw/usb/meson.build
+++ b/hw/usb/meson.build
@@ -84,6 +84,9 @@ if libusb.found()
   hw_usb_modules +=3D {'host': usbhost_ss}
 endif
=20
-system_ss.add(when: ['CONFIG_USB', 'CONFIG_XEN_BUS', libusb], if_true: fil=
es('xen-usb.c'))
+if have_xen_legacy_backends
+  system_ss.add(when: ['CONFIG_USB', 'CONFIG_XEN_BUS', libusb],
+                if_true: files('xen-usb.c'))
+endif
=20
 modules +=3D { 'hw-usb': hw_usb_modules }
diff --git a/hw/xen/meson.build b/hw/xen/meson.build
index d887fa9ba4..964c3364f2 100644
--- a/hw/xen/meson.build
+++ b/hw/xen/meson.build
@@ -2,11 +2,16 @@ system_ss.add(when: ['CONFIG_XEN_BUS'], if_true: files(
   'xen-backend.c',
   'xen-bus-helper.c',
   'xen-bus.c',
-  'xen-legacy-backend.c',
-  'xen_devconfig.c',
-  'xen_pvdev.c',
 ))
=20
+if have_xen_legacy_backends
+  system_ss.add(when: ['CONFIG_XEN_BUS'], if_true: files(
+    'xen_pvdev.c',
+    'xen-legacy-backend.c',
+    'xen_devconfig.c',
+  ))
+endif
+
 system_ss.add(when: ['CONFIG_XEN', xen], if_true: files(
   'xen-operations.c',
 ))
diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c
index 565dc39c8f..2e7897dbd2 100644
--- a/hw/xen/xen-hvm-common.c
+++ b/hw/xen/xen-hvm-common.c
@@ -869,7 +869,9 @@ void xen_register_ioreq(XenIOState *state, unsigned int=
 max_cpus,
=20
     xen_bus_init();
=20
+#ifdef CONFIG_XEN_LEGACY_BACKENDS
     xen_be_init();
+#endif
=20
     return;
=20
diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
index 9f9f137f99..03a55f345c 100644
--- a/hw/xenpv/xen_machine_pv.c
+++ b/hw/xenpv/xen_machine_pv.c
@@ -37,7 +37,9 @@ static void xen_init_pv(MachineState *machine)
     setup_xen_backend_ops();
=20
     /* Initialize backend core & drivers */
+#ifdef CONFIG_XEN_LEGACY_BACKENDS
     xen_be_init();
+#endif
=20
     switch (xen_mode) {
     case XEN_ATTACH:
diff --git a/meson.build b/meson.build
index ec01f8b138..c8a43dd97d 100644
--- a/meson.build
+++ b/meson.build
@@ -1749,6 +1749,9 @@ have_xen_pci_passthrough =3D get_option('xen_pci_pass=
through') \
            error_message: 'Xen PCI passthrough not available on this platf=
orm') \
   .allowed()
=20
+have_xen_legacy_backends =3D get_option('xen-legacy-backends').require(xen=
.found(),
+           error_message: 'Xen legacy backends requested but Xen not enabl=
ed').allowed()
+
=20
 cacard =3D not_found
 if not get_option('smartcard').auto() or have_system
@@ -2219,6 +2222,7 @@ config_host_data.set('CONFIG_DBUS_DISPLAY', dbus_disp=
lay)
 config_host_data.set('CONFIG_CFI', get_option('cfi'))
 config_host_data.set('CONFIG_SELINUX', selinux.found())
 config_host_data.set('CONFIG_XEN_BACKEND', xen.found())
+config_host_data.set('CONFIG_XEN_LEGACY_BACKENDS', have_xen_legacy_backend=
s)
 config_host_data.set('CONFIG_LIBDW', libdw.found())
 if xen.found()
   # protect from xen.version() having less than three components
@@ -3049,6 +3053,7 @@ config_all +=3D config_targetos
 config_all +=3D config_all_disas
 config_all +=3D {
   'CONFIG_XEN': xen.found(),
+  'CONFIG_XEN_LEGACY_BACKENDS': have_xen_legacy_backends,
   'CONFIG_SYSTEM_ONLY': have_system,
   'CONFIG_USER_ONLY': have_user,
   'CONFIG_ALL': true,
diff --git a/meson_options.txt b/meson_options.txt
index c9baeda639..91dd677257 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -77,6 +77,8 @@ option('nvmm', type: 'feature', value: 'auto',
        description: 'NVMM acceleration support')
 option('xen', type: 'feature', value: 'auto',
        description: 'Xen backend support')
+option('xen-legacy-backends', type: 'feature', value: 'auto',
+       description: 'Xen legacy backends (9pfs, fb, qusb) support')
 option('xen_pci_passthrough', type: 'feature', value: 'auto',
        description: 'Xen PCI passthrough support')
 option('tcg', type: 'feature', value: 'enabled',
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index 680fa3f581..b5acef008f 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -218,6 +218,8 @@ meson_options_help() {
   printf "%s\n" '  werror          Treat warnings as errors'
   printf "%s\n" '  whpx            WHPX acceleration support'
   printf "%s\n" '  xen             Xen backend support'
+  printf "%s\n" '  xen-legacy-backends'
+  printf "%s\n" '                  Xen legacy backends (9pfs, fb, qusb) su=
pport'
   printf "%s\n" '  xen-pci-passthrough'
   printf "%s\n" '                  Xen PCI passthrough support'
   printf "%s\n" '  xkbcommon       xkbcommon support'
@@ -556,6 +558,8 @@ _meson_option_parse() {
     --disable-whpx) printf "%s" -Dwhpx=3Ddisabled ;;
     --enable-xen) printf "%s" -Dxen=3Denabled ;;
     --disable-xen) printf "%s" -Dxen=3Ddisabled ;;
+    --enable-xen-legacy-backends) printf "%s" -Dxen-legacy-backends=3Denab=
led ;;
+    --disable-xen-legacy-backends) printf "%s" -Dxen-legacy-backends=3Ddis=
abled ;;
     --enable-xen-pci-passthrough) printf "%s" -Dxen_pci_passthrough=3Denab=
led ;;
     --disable-xen-pci-passthrough) printf "%s" -Dxen_pci_passthrough=3Ddis=
abled ;;
     --enable-xkbcommon) printf "%s" -Dxkbcommon=3Denabled ;;
--=20
2.42.0


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 02:36:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 02:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645912.1008462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Fs0-0006BZ-5t; Sat, 02 Dec 2023 02:36:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645912.1008462; Sat, 02 Dec 2023 02:36: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 1r9Fs0-0006BS-36; Sat, 02 Dec 2023 02:36:40 +0000
Received: by outflank-mailman (input) for mailman id 645912;
 Sat, 02 Dec 2023 02:36: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=Fhqb=HN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r9Fry-0006BM-VG
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 02:36:39 +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 9c20ed9b-90bb-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 03:36:36 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 0549762167;
 Sat,  2 Dec 2023 02:36:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E051C433C7;
 Sat,  2 Dec 2023 02:36: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: 9c20ed9b-90bb-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701484593;
	bh=ue0fnjufnIgs+iS/q12GjlaFwl+pJcqf59Sgz+NQFrc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=T0l/IElMv+Gsc2wiwoSAEl0109XzO43j43munDOZ8txdYnbSH/WFRAckjIjuKZslI
	 UDGwcrzNDMe8uDKr9bmxzjZYhunymfbMSemMtzIV5ltMOaCAfiXdOdW7b42Nb3kGBY
	 cNFkKeU1hITcaOQRvbMRpOQdXEoQ2Tz7596Ts7EwcBqfusMhp4bZeFYk5c9j0/bQcp
	 tB8wiylAI7mzDC0vApsbkgLt9vWVy/FJ2DZKe+UFI1mErJLo0ekuwrJbnzdzefmtQ7
	 gxC1MB4UHCs5UrIIsp3Vk1HY0rHlsemkHQQ3lVPY0fvS7oB4EPrQQZzQBuFkY+XakV
	 LeQK/fHl2JmHg==
Date: Fri, 1 Dec 2023 18:36:30 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, 
    Anthony PERARD <anthony.perard@citrix.com>, 
    Juergen Gross <jgross@suse.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
Subject: Re: [PATCH v2 3/5] xen/x86: introduce self modifying code test
In-Reply-To: <ZWnMom8D8F4nEZFp@macbook>
Message-ID: <alpine.DEB.2.22.394.2312011835340.110490@ubuntu-linux-20-04-desktop>
References: <20231128100352.35430-1-roger.pau@citrix.com> <20231128100352.35430-4-roger.pau@citrix.com> <3ac223d0-75a1-40b0-8bf9-1c556703c07d@suse.com> <ZWnMom8D8F4nEZFp@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-245369522-1701484593=:110490"

  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-245369522-1701484593=:110490
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> > > @@ -1261,6 +1269,7 @@ struct xen_sysctl {
> > >          struct xen_sysctl_livepatch_op      livepatch;
> > >  #if defined(__i386__) || defined(__x86_64__)
> > >          struct xen_sysctl_cpu_policy        cpu_policy;
> > > +        struct xen_sysctl_test_smc          smc;
> > 
> > Imo the field name would better be test_smc (leaving aside Stefano's comment).
> 
> Right, will see what Stefano thinks about using test_smoc.


If you meant "test_smoc", that's totally fine.

If you meant "test_smc" I think that must be a test for the virtual SMC
interface that Xen exposes, right?  Good we need some tests for vsmc.c
;-)
--8323329-245369522-1701484593=:110490--


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 02:56:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 02:56:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645916.1008472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GBS-000687-Q7; Sat, 02 Dec 2023 02:56:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645916.1008472; Sat, 02 Dec 2023 02:56:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GBS-000680-Md; Sat, 02 Dec 2023 02:56:46 +0000
Received: by outflank-mailman (input) for mailman id 645916;
 Sat, 02 Dec 2023 02: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=Fhqb=HN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r9GBR-00066A-H6
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 02:56: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 6af153a7-90be-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 03:56:42 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id EA20DCE26D5;
 Sat,  2 Dec 2023 02:56:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 348A3C433C8;
 Sat,  2 Dec 2023 02:56:34 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6af153a7-90be-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701485795;
	bh=Q6Nf8w414NhuF1hO6lzOGvFdUsDc+phR9HS3+o5Wchc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rnkHTFpxtFjxeiUJf2ozyjFRI+fRUlzJy1AvMr1Xiq1ZmwbXnwRA+v61dkWDtSizN
	 e8P/4u1lKrr3ApFzsC3sWoA2W1SxnNzVG2yzhtzKuP8fS1EcJoBd/0hznAI7lnynaR
	 uSju4Z30VLrkqMbEBCebei/zoMaFONRDJ7Qmbz7G+622CnIylgr8A2mOR6QadpkNKQ
	 63sbSUVZc9u8Lv970Chkv6FBLWe4EXpOVN4gR2w21uV5GBKx4N83s4cgGXjy5dyB/6
	 DO9lGFyA1w+0Mm8faZ6HablajnakSzm4UpMTJ1zOmpBZp3NVg6TeZmhPmkJmJTEonB
	 Pctc3283DUR/w==
Date: Fri, 1 Dec 2023 18:56:32 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    xen-devel@lists.xenproject.org, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
In-Reply-To: <ZWmkh0Xeaynh43N7@macbook>
Message-ID: <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com> <20231113222118.825758-5-stewart.hildebrand@amd.com> <ZWmkh0Xeaynh43N7@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-6006464-1701485324=:110490"
Content-ID: <alpine.DEB.2.22.394.2312011849100.110490@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-6006464-1701485324=:110490
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312011849101.110490@ubuntu-linux-20-04-desktop>

On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
> > @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
> >          bus = PCI_BUS(machine_sbdf);
> >          devfn = PCI_DEVFN(machine_sbdf);
> >  
> > +        if ( needs_vpci(d) && !has_vpci(d) )
> > +        {
> > +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
> > +                   &PCI_SBDF(seg, bus, devfn), d);
> > +            ret = -EPERM;
> > +            break;
> 
> I think this is likely too restrictive going forward.  The current
> approach is indeed to enable vPCI on a per-domain basis because that's
> how PVH dom0 uses it, due to being unable to use ioreq servers.
> 
> If we start to expose vPCI suport to guests the interface should be on
> a per-device basis, so that vPCI could be enabled for some devices,
> while others could still be handled by ioreq servers.
> 
> We might want to add a new flag to xen_domctl_assign_device (used by
> XEN_DOMCTL_assign_device) in order to signal whether the device will
> use vPCI.

Actually I don't think this is a good idea. I am all for flexibility but
supporting multiple different configurations comes at an extra cost for
both maintainers and contributors. I think we should try to reduce the
amount of configurations we support rather than increasing them
(especially on x86 where we have PV, PVH, HVM).

I don't think we should enable IOREQ servers to handle PCI passthrough
for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
Passthrough can be handled by vPCI just fine. I think this should be a
good anti-feature to have (a goal to explicitly not add this feature) to
reduce complexity. Unless you see a specific usecase to add support for
it?
--8323329-6006464-1701485324=:110490--


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 03:03:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 03:03:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645919.1008481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GIB-0001ia-GC; Sat, 02 Dec 2023 03:03:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645919.1008481; Sat, 02 Dec 2023 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 1r9GIB-0001iT-Db; Sat, 02 Dec 2023 03:03:43 +0000
Received: by outflank-mailman (input) for mailman id 645919;
 Sat, 02 Dec 2023 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=Fhqb=HN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r9GIA-0001iN-Ax
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 03:03:42 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 644c3538-90bf-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 04:03:40 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 73D52B84918;
 Sat,  2 Dec 2023 03:03:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D002C433C8;
 Sat,  2 Dec 2023 03:03: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: 644c3538-90bf-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701486217;
	bh=CsqC6LGUpBbTv5ShXRgk0AVbN2TJ2ScnBCKVebuofMg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cLCJ9TSnm75kpK2qag4N94W29sglI8Q34Rr/57Pdp/tja6vIJIzkZF/GW1XA1KmD7
	 c//VGoLM92tZMbx7EOzQ7ckVLesMnNG9tsbrk/tgb79GxW7JQHhtI9aJDrSv8/uFba
	 I8q9TQBsOJgXpp/sPryXj5mSoDN+CF/2XjKiYj+R6CSI50DrxbuE31DZaKT4J0EUuG
	 nY9oYH78sOhGiZ3WAa15wZpzg8bebVA+Fht0J3uNwvwRtQ8ugrzb9pkzztu/pkCiDO
	 sKoIK/5TaQj+d5Q8om1qDGPEjz/sd1UQKMp9L0AEaI029wtPohWbkymvsWZk7qt0ON
	 e+FFRMJ1UbBCg==
Date: Fri, 1 Dec 2023 19:03:34 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, michal.orzel@amd.com, 
    xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, bertrand.marquis@arm.com, julien@xen.org, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [XEN PATCH 7/7] xen/page_alloc: deviate first_valid_mfn for
 MISRA C Rule 8.4
In-Reply-To: <21956d5b-08ad-45ac-96ff-22fe7d54ec60@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312011901450.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com> <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.git.nicola.vetrini@bugseng.com> <alpine.DEB.2.22.394.2311301847300.110490@ubuntu-linux-20-04-desktop>
 <21956d5b-08ad-45ac-96ff-22fe7d54ec60@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, 1 Dec 2023, Jan Beulich wrote:
> On 01.12.2023 03:47, Stefano Stabellini wrote:
> > On Wed, 29 Nov 2023, Nicola Vetrini wrote:
> >> No functional change.
> >>
> >> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> >> ---
> >> The preferred way to deviate is to use asmlinkage, but this modification is only
> >> the consequence of NUMA on ARM (and possibly PPC) being a work in progress.
> >> As stated in the comment above the textual deviation, first_valid_mfn will
> >> likely then become static and there would be no need for the comment anymore.
> >> This works towards having the analysis for this rule clean (i.e. no violations);
> >> the interest in having a clean rule is that then it could be used to signal
> >> newly introduced violations by making the analysis job fail.
> > 
> > Please add this text as part of the commit message. It can be done on
> > commit.
> 
> I assume you saw my reply on another of the patches in this series as to
> asmlinkage use on variables? IOW I think this paragraph would also need
> adjustment to account for that.

I was going to ask you about that: reading your reply
https://marc.info/?l=xen-devel&m=170142048615336 it is not clear to me
what you are asking or suggesting as next step in regard to asmlinkage
use on variables.


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 03:08:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 03:08:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645923.1008491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GMP-0003pJ-4U; Sat, 02 Dec 2023 03:08:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645923.1008491; Sat, 02 Dec 2023 03:08: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 1r9GMP-0003pC-20; Sat, 02 Dec 2023 03:08:05 +0000
Received: by outflank-mailman (input) for mailman id 645923;
 Sat, 02 Dec 2023 03:08: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=pE22=HN=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1r9GMM-0003p6-Uh
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 03:08:03 +0000
Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com
 [64.147.123.21]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe938d5b-90bf-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 04:08:00 +0100 (CET)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailout.west.internal (Postfix) with ESMTP id 38CD53200BAA;
 Fri,  1 Dec 2023 22:07:56 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Fri, 01 Dec 2023 22:07:56 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 1 Dec 2023 22:07:54 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe938d5b-90bf-11ee-98e5-6d05b1d4d9a1
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:sender:subject:subject:to:to; s=fm1; t=
	1701486475; x=1701572875; bh=kES0Bd33S/OE0IMR0t1k/qrCTXa/bJ8w5LP
	RDFw4ydM=; b=gRJyiFlHoLU4LhmBgvh06fcDSau9gDAB597FYd7O7sUsqr1yH/N
	oHeQipBQN6siUOm1XZRAbzh2hzMmqkAp95BjqD6M9Zaj385Suk+WBhAAh/Ee6hus
	6AggNSaIiszjZQDFxAQ4QQwxJJ3UgXS2rpOR35suW4hdLAI0O2zp0iKN64XJaXH6
	qm7QTJ1KjfmexZLy/pXYq5IggAiPU9WqkRz2aDXggO+pDaVU73g9U1We7yBqgO+p
	q6zwYJChMZdIyj0yrCYRZglRI9PR7d5Tc+PNYJH+UV8Xk4a1bhfX4nX3nRSEXJZ0
	XBD85+zclUigLl9Uvgo9V5Mu8tcAal9qH4g==
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:sender:subject
	:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm1; t=1701486475; x=1701572875; bh=kES0Bd33S/OE0
	IMR0t1k/qrCTXa/bJ8w5LPRDFw4ydM=; b=DWO8NIrp1+zhQPPixZdhTRUydnEVP
	cAd8HlDAxVTGShhUL/jBjX/4C2A5yDoCpbYtKEkUPwuhcN+8RKWGSZKiHlyN+jsE
	486YPKqFWmWwoyLCi/xkFpXHhDtQMHf50JyVd5QJr/3A+R1RtsALNEcjWPaG/Atp
	31Isv3QSqSSrfzxtVi6qVgEdNrwl6c0wbgFM6TlgaM3u+vGb19RbbmMJUMpZesQE
	gEjFNuXBOxTnRViLgCtFkwo2l6XGLklMjNIMVP4jJkn8OIy4bWtaDJ4UhCz1zWEx
	y30gRc4spxid7SExD9HZGMwxYUnNbPnOWsN5jFBE6c+LJZDd0v48nbywg==
X-ME-Sender: <xms:i59qZb4juPCNqqMaGDSOc35twCBZVURXcXLs0cXCfE5SmvuJPh-Lvg>
    <xme:i59qZQ4Iou0WHox0w2HQ89bXb2k3klLdZt68ZaVEq5USA1r3upCM1eJxYma2xcMoS
    kF0OT0VM-mp5g>
X-ME-Received: <xmr:i59qZSdagkk6cbOdSDRhEdUFkfSj7uGq6ZRP650YCbrPBjCv904EKUDrhX5WXAW-kx9NC8G6YxXmm5SuJCJAwjEahp7hHkte7u0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudejtddgheehucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfdu
    leetfeevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluh
    hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:i59qZcLYVpypPhO18a062L_JJG_wQtWYVe_VzSxiGP_l-haneBDYZg>
    <xmx:i59qZfJa1OIMFJufXao6ICHJnsbPqfWBvuHRU1OwE6PZYvuZT7F6Bg>
    <xmx:i59qZVzBHpK2Z4cf3TEzARcM52rt0KF2eTDOiVxo5iaKEH1nxNMAKQ>
    <xmx:i59qZWUUoVEjrZ5EED5eAt4lMU342kzY7__wCafVY6KlPC1rjjr7fg>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 2 Dec 2023 04:07:52 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 2/6] x86/hvm: Allow access to registers on the same
 page as MSI-X table
Message-ID: <ZWqfiN+sIOMHoB9m@mail-itl>
References: <cover.e8ee4f1e4458c19070007220034a9bfdc34190d5.1700790421.git-series.marmarek@invisiblethingslab.com>
 <de5e66c790c9fc5e7f668f06826c7ee781b6d6e1.1700790421.git-series.marmarek@invisiblethingslab.com>
 <277f832d-20ce-437d-a7a3-7935aa6cf34e@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="PmoxiU9FQRt6LvJw"
Content-Disposition: inline
In-Reply-To: <277f832d-20ce-437d-a7a3-7935aa6cf34e@suse.com>


--PmoxiU9FQRt6LvJw
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 2 Dec 2023 04:07:52 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 2/6] x86/hvm: Allow access to registers on the same
 page as MSI-X table

On Mon, Nov 27, 2023 at 06:00:57PM +0100, Jan Beulich wrote:
> On 24.11.2023 02:47, Marek Marczykowski-G=C3=B3recki wrote:
> > GCC gets confused about 'desc' variable:
> >=20
> >     arch/x86/hvm/vmsi.c: In function =E2=80=98msixtbl_range=E2=80=99:
> >     arch/x86/hvm/vmsi.c:553:8: error: =E2=80=98desc=E2=80=99 may be use=
d uninitialized [-Werror=3Dmaybe-uninitialized]
> >       553 |     if ( desc )
> >           |        ^
> >     arch/x86/hvm/vmsi.c:537:28: note: =E2=80=98desc=E2=80=99 was declar=
ed here
> >       537 |     const struct msi_desc *desc;
> >           |                            ^~~~
>=20
> This could do with also indicating the gcc version. Issues like this
> tend to get fixed over time.

Sure, I'll add it's GCC 12.2.1.
And indeed, GCC 13.2.1 does not complain anymore.

> > +
> > +    if ( !msix->adj_access_idx[adj_type] )
> > +    {
> > +        gprintk(XENLOG_WARNING,
> > +                "Page for adjacent(%d) MSI-X table access not initiali=
zed for %pp (addr %#lx, gtable %#lx\n",
> > +                adj_type, &entry->pdev->sbdf, addr, entry->gtable);
> > +
> > +        return ADJACENT_DONT_HANDLE;
> > +    }
> > +
> > +    /* If PBA lives on the same page too, discard writes. */
> > +    if ( write &&
> > +         ((adj_type =3D=3D ADJ_IDX_LAST &&
> > +           msix->table.last =3D=3D msix->pba.first) ||
> > +          (adj_type =3D=3D ADJ_IDX_FIRST &&
> > +           msix->table.first =3D=3D msix->pba.last)) )
> > +    {
> > +        gprintk(XENLOG_WARNING,
> > +                "MSI-X table and PBA of %pp live on the same page, "
> > +                "writing to other registers there is not implemented\n=
",
> > +                &entry->pdev->sbdf);
>=20
> Here and above I think verbosity needs limiting to the first instance per
> device per domain.

Is there some clever API for that already, or do I need to introduce
extra variable in some of those structures (msixtbl_entry? pci_dev?) ?

(other requested changes ok)

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmVqn4gACgkQ24/THMrX
1yxoUQf/VBJvvrA2qQ+libZtyefew7N2vCA+yWJRsqiEuvjb+I1P3URAEYWG1phD
v6UcqThacj5KRva5tAgqdSxrcZsLqx1t/2mAiQdSj2Jat7vHCUaHZdvicJG/jL/4
wCXU4UEbywvTe7JiuaCYe6Nfcxsdoisdmd5WQpcuREZTE+SyBo5/nyv3hjqDKa8o
F+mD56xkClFTKCoYdC7/3NKysdC+YHy4w6d1IofjcQKa6foEJg+d31K00IW4NRR8
oU6JGOkhCtUbTJ8Ghr9nJdMPeh+2+iNl3YWkTQ2ji+3v8AQW1S0/F5M5yw6txw8B
Zb4vbz9SGbUqCMcsKnL/Cv1tB8ok5Q==
=pG7y
-----END PGP SIGNATURE-----

--PmoxiU9FQRt6LvJw--


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 03:15:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 03:15:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645927.1008502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GT4-0006zn-R5; Sat, 02 Dec 2023 03:14:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645927.1008502; Sat, 02 Dec 2023 03:14:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GT4-0006zg-NF; Sat, 02 Dec 2023 03:14:58 +0000
Received: by outflank-mailman (input) for mailman id 645927;
 Sat, 02 Dec 2023 03:14: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=Fhqb=HN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r9GT2-0006za-Jn
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 03:14:56 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6d8e4a2-90c0-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 04:14:54 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 2FFA7B83FFF;
 Sat,  2 Dec 2023 03:14:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0F631C433C8;
 Sat,  2 Dec 2023 03:14:51 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6d8e4a2-90c0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701486892;
	bh=xepMw6EZKlLkyWV7q6zv+S7ghRvI6VF0mTk+RuUdFr4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=QPJckP19zt/O6NwKSNVlGtdq9PceR1gMlHJZ08u9z8jaZELCLMJATKJLbH4Zwy5Q0
	 iZAibwV8PYqHeZi25OYg62mJwee8GdMnkGUImhV70IEtfuTDxIethh9YJqltwVtJo3
	 p+G4/FRE1zdy7XLh1S/+EpBSIsyvmdeE74oYYOsSLVL+CkskOjfexPzosgRzPffsHD
	 TqguLuQDO/5NEkcId6lv3GhUCh3oqt+AyWat5gIqeukr6dMqXVZNndWVV9HsKN6Nbd
	 hl+jxIVDlsPwigLTJ1/JXwDR2MnMEd38fAmwJqaqsCPKQ0i0gavwe65gG4oxpVwUet
	 Wo3T/3OZMjd4w==
Date: Fri, 1 Dec 2023 19:14:49 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] automation/eclair: tag files as "adopted" and "out
 of scope"
In-Reply-To: <548e2f7e5794ec35997d615282f0f4dc6f6250a8.1700835046.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312011914330.110490@ubuntu-linux-20-04-desktop>
References: <548e2f7e5794ec35997d615282f0f4dc6f6250a8.1700835046.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 Fri, 24 Nov 2023, Federico Serafini wrote:
> Tag arm64/efibind.h as "adopted":
> it is used to build the efi stub, which is a separate entry point
> for Xen when booted from EFI firmware.
> 
> Tag common/coverage/* as "out-of-scope":
> it is code to support gcov, hence it is part of the testing machinery.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

I think they should be in the exclude-list ?


> ---
>  automation/eclair_analysis/ECLAIR/out_of_scope.ecl | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
> index e1ec4a607c..3bd385ecf9 100644
> --- a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
> +++ b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
> @@ -84,6 +84,7 @@
>  -doc_begin="Files imported from the gnu-efi package"
>  -file_tag+={adopted,"^xen/include/efi/.*$"}
>  -file_tag+={adopted,"^xen/arch/x86/include/asm/x86_64/efibind\\.h$"}
> +-file_tag+={adopted,"^xen/arch/arm/include/asm/arm64/efibind\\.h$"}
>  -doc_end
>  
>  -doc_begin="Build tools are out of scope."
> @@ -104,6 +105,10 @@
>  -file_tag+={out_of_scope,"^xen/include/xen/xxhash\\.h$"}
>  -doc_end
>  
> +-doc_begin="Out of scope code to support gcov."
> +-file_tag+={out_of_scope, "^xen/common/coverage/.*$"}
> +-doc_end
> +
>  -doc_begin="Headers under xen/include/public/ are the description of the public
>  hypercall ABI so the community is extremely conservative in making changes
>  there, because the interface is maintained for backward compatibility: ignore
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 03:19:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 03:19:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645931.1008512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GXD-0001Dv-CQ; Sat, 02 Dec 2023 03:19:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645931.1008512; Sat, 02 Dec 2023 03: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 1r9GXD-0001Dn-83; Sat, 02 Dec 2023 03:19:15 +0000
Received: by outflank-mailman (input) for mailman id 645931;
 Sat, 02 Dec 2023 03:19: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=Fhqb=HN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r9GXC-0001Af-0Z
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 03:19:14 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90509429-90c1-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 04:19:12 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 86F91B84A10;
 Sat,  2 Dec 2023 03:19:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31AD0C433C8;
 Sat,  2 Dec 2023 03:19: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: 90509429-90c1-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701487150;
	bh=Gc4oZltQpVl5rjQzHn1QjNONFBQpNxGHm//6E6xewz0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rJXebNjYDT8r7+2h+dx7zwLGDSbwCP6N7M2y7dCcwSkK2DOlBwHfy1XS1P3FJcQOa
	 RdGFE8cfZpdaD31ZFlComcxYWU9tkhUipBZcDv0DDlqOexV699kEo96UeyL3I2TtS3
	 AMFPQW6e+rACKkr/XVyFlduumJokzLsCPo6ak5IbQjVFhEpUwiSkTNMckyce7trxhs
	 iBY3h/rj6L1pR8LBZr0xMVVy0DaepgpCpMCoNHaovw8IlZW+2FaFUkj4MkGZKlFjDL
	 P76R9b5+RQkJv1a7hp9djlXBtM8n88DTWLMUI7O3mvuQ3NiqJ7+KSHf9+oZkFn06Ua
	 XgBPtal3VDHHw==
Date: Fri, 1 Dec 2023 19:19:08 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 1/3] automation/eclair: tag function calls to
 address violations of MISRA C:2012 Rule 13.1
In-Reply-To: <fc3e04e5d0432b280110414136f0587a1433d9b0.1700844359.git.simone.ballarin@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312011917030.110490@ubuntu-linux-20-04-desktop>
References: <cover.1700844359.git.simone.ballarin@bugseng.com> <fc3e04e5d0432b280110414136f0587a1433d9b0.1700844359.git.simone.ballarin@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 24 Nov 2023, Simone Ballarin wrote:
> Rule 13.1: Initializer lists shall not contain persistent side effects
> 
> Invocations of functions in initializer lists cause violations of rule
> 13.1 if the called functions are not tagged with __attribute_pure__ or
> __attribute_const__ as they can produce persistent side effects.
> 
> Handling these violations with  attributes is not always possible: the
> pure and const attributes may cause unwanted and potentially dangerous
> optimisations.
> 
> To avoid this problem ECLAIR allows using the same attributes in the
> -call_properties setting. Additionally, it adds the noeffect attribute
> with the following definition:
> "like pure but can also read volatile variable not triggering side effects"
> 
> These patch tags some functions used in initializer lists to address
> violations of Rule 13.1.
> 
> No functional changes.
> 
> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>

Ideally we should also list them somewhere in a document, maybe
docs/misra/deviations.rst? Or a new doc? It would be best if this info
wouldn't only exist in call_properties.ecl.

But give that the below is OK:
Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> Changes in v2:
> New patch partly based on "xen/arm: address violations of MISRA C:2012 Rule 13.1"
> and "xen/include: add pure and const attributes". This new patch uses
> ECL tagging instead of compiler attributes.
> ---
>  .../ECLAIR/call_properties.ecl                | 22 +++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/call_properties.ecl b/automation/eclair_analysis/ECLAIR/call_properties.ecl
> index 3f7794bf8b..c2b2a6182e 100644
> --- a/automation/eclair_analysis/ECLAIR/call_properties.ecl
> +++ b/automation/eclair_analysis/ECLAIR/call_properties.ecl
> @@ -73,6 +73,17 @@
>  -call_properties+={"macro(^va_start$)", {"pointee_write(1=always)", "pointee_read(1=never)", "taken()"}}
>  -call_properties+={"macro(^memcmp$)", {"pointee_write(1..2=never)", "taken()"}}
>  -call_properties+={"macro(^memcpy$)", {"pointee_write(1=always&&2..=never)", "pointee_read(1=never&&2..=always)", "taken()"}}
> +-call_properties+={"name(get_cpu_info)",{pure}}
> +-call_properties+={"name(pdx_to_pfn)",{pure}}
> +-call_properties+={"name(is_pci_passthrough_enabled)",{const}}
> +-call_properties+={"name(get_cycles)", {"noeffect"}}
> +-call_properties+={"name(msi_gflags)",{const}}
> +-call_properties+={"name(hvm_save_size)",{pure}}
> +-call_properties+={"name(cpu_has)",{pure}}
> +-call_properties+={"name(boot_cpu_has)",{pure}}
> +-call_properties+={"name(get_cpu_info)",{pure}}
> +-call_properties+={"name(put_pte_flags)",{const}}
> +-call_properties+={"name(is_pv_vcpu)",{pure}}
>  
>  -doc_begin="Property inferred as a consequence of the semantics of device_tree_get_reg"
>  -call_properties+={"name(acquire_static_memory_bank)", {"pointee_write(4..=always)", "pointee_read(4..=never)", "taken()"}}
> @@ -104,3 +115,14 @@ Furthermore, their uses do initialize the involved variables as needed by futher
>  -call_properties+={"macro(^(__)?(raw_)?copy_from_(paddr|guest|compat)(_offset)?$)", {"pointee_write(1=always)", "pointee_read(1=never)", "taken()"}}
>  -call_properties+={"macro(^(__)?copy_to_(guest|compat)(_offset)?$)", {"pointee_write(2=always)", "pointee_read(2=never)", "taken()"}}
>  -doc_end
> +
> +-doc_begin="Functions generated by build_atomic_read cannot be considered pure
> +since the input pointer is volatile, but they do not produce any persistent side
> +effect."
> +-call_properties+={"^read_u(8|16|32|64|int)_atomic.*$", {noeffect}}
> +-doc_end
> +
> +-doc_begin="Functions generated by TYPE_SAFE are const."
> +-call_properties+={"^(mfn|gfn|pfn)_x\\(.*$",{const}}
> +-call_properties+={"^_(mfn|gfn|pfn)\\(.*$",{const}}
> +-doc_end
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 03:22:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 03:22:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645934.1008521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GaV-0003iW-Pr; Sat, 02 Dec 2023 03:22:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645934.1008521; Sat, 02 Dec 2023 03:22:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GaV-0003iP-N6; Sat, 02 Dec 2023 03:22:39 +0000
Received: by outflank-mailman (input) for mailman id 645934;
 Sat, 02 Dec 2023 03:22:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Fhqb=HN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r9GaU-0003iJ-Sg
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 03:22:38 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0aa3c858-90c2-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 04:22:37 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 9D0FDB84A15;
 Sat,  2 Dec 2023 03:22:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E30B5C433C8;
 Sat,  2 Dec 2023 03:22: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: 0aa3c858-90c2-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701487355;
	bh=DcfszijdC8CW9BSCzBfT3IRaHc2OaKew4trmsy0ctQQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=uwX1ypHBSA3I4O+9JTGjHMM6WSd5AfJWccTP0wrTaE/19iyPvxMyXFHT0Ac7xKBBI
	 /wfRB2VbLzKsDcBH9AxQ2qg9fXO/z+eXylpCCH10XTgkCGziQ5gPvN3iYJ3nnuQeHV
	 qbvTKlYU/yz50nWYCgjoXivL4m7kqo/gZOob257Fn3H1kBSUcBOat6A7WIFvbvpKM6
	 z8LeLb2RA5s92vRUdXnszIPLyaqCj0+ka8wqckRKeBNM1KEPoD7Rdxb1TMCQ7l6C40
	 UqXFsXIwPa5SD9ssso2u3FOIuRan/icjaeSMkTY+fXjRwZ+rRuuhCXvIXP0Av1HUQN
	 nWH/z93QobV/g==
Date: Fri, 1 Dec 2023 19:22:32 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Simone Ballarin <simone.ballarin@bugseng.com>, 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>, Wei Liu <wl@xen.org>, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v2 3/3] xen: address violations of MISRA C:2012 Rule
 13.1
In-Reply-To: <2d4d3dab-f5a2-4b57-904e-e48642f7937f@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312011921250.110490@ubuntu-linux-20-04-desktop>
References: <cover.1700844359.git.simone.ballarin@bugseng.com> <771a6f804f4e7dda3897359b57d1d14c2878ea16.1700844359.git.simone.ballarin@bugseng.com> <2d4d3dab-f5a2-4b57-904e-e48642f7937f@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, 27 Nov 2023, Jan Beulich wrote:
> On 24.11.2023 18:29, Simone Ballarin wrote:
> > Rule 13.1: Initializer lists shall not contain persistent side effects
> > 
> > The assignment operation in:
> > 
> > .irq = rc = uart->irq,
> > 
> > is a persistent side effect in a struct initializer list.
> > 
> > This patch avoids rc assignment and directly uses uart->irq
> > in the following if statement.
> > 
> > No functional changes.
> > 
> > Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> > Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
> 
> Who's the author of this patch? (Either the order of the SoB is wrong, or
> there's a From: tag missing.)
> 
> > ---
> > Changes in v2:
> > - avoid assignment of rc;
> > - drop changes in vcpu_yield(void).
> > ---
> >  xen/drivers/char/ns16550.c | 6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> This warrants a more specific subject prefix. Also there's only a single
> violation being dealt with here.
> 
> > --- a/xen/drivers/char/ns16550.c
> > +++ b/xen/drivers/char/ns16550.c
> > @@ -445,11 +445,13 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
> >              struct msi_info msi = {
> >                  .sbdf = PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
> >                                   uart->ps_bdf[2]),
> > -                .irq = rc = uart->irq,
> > +                .irq = uart->irq,
> >                  .entry_nr = 1
> >              };
> >  
> > -            if ( rc > 0 )
> > +            rc = 0;
> > +
> > +            if ( uart->irq > 0 )
> >              {
> >                  struct msi_desc *msi_desc = NULL;
> 
> The fact that there's no functional change here isn't really obvious.
> Imo you want to prove that to a reasonable degree in the description.
 
Agreed. Only reading this chunk, wouldn't it be better to do:

    };

    rc = uart->irq;

    if ( rc > 0 )

at least it would be obvious?


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 03:38:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 03:38:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645938.1008531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GpV-0000mC-2u; Sat, 02 Dec 2023 03:38:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645938.1008531; Sat, 02 Dec 2023 03:38:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9GpU-0000m5-Vl; Sat, 02 Dec 2023 03:38:08 +0000
Received: by outflank-mailman (input) for mailman id 645938;
 Sat, 02 Dec 2023 03:38: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=Fhqb=HN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1r9GpT-0000kp-Ok
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 03:38:07 +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 33675337-90c4-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 04:38:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 06755CE286A;
 Sat,  2 Dec 2023 03:38:00 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D87EFC433C7;
 Sat,  2 Dec 2023 03:37: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: 33675337-90c4-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701488279;
	bh=NarBwsDGf+urCkR+0KsD6NtO/pJjqSgUz4O5m4o8FXo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=oiQndPNGfYaJ8uCgjjmlyJLqQ7AVNalarc+HVopht2uw+VBhjq9W4AVOdQgnF5Cwt
	 RszsMvfslq5zMX47pvgUJIl20b/wYQz4LMr7VR6waH+WRNKghSlzm4+5RkNLuVqw6V
	 dS01VAIPXzSKDnUDF+ufr1GbldmBmCJaoqaU/XBY9bIlWlqmrt5jDFWgkhhANCvIUh
	 /ul7L7hrFzaapLfSZ2qM3S/gPYyMOdzT/F3qrcXsjxrjy1FBVDw/gQVM8QcEsJ5Ww+
	 oFDstsugb2RJVa0mgqX2n5v+0ukvXsvJUqw9zkdksPihZm5vfmoVJ7PWI3YgX27AIV
	 fv31RAN9zZpXw==
Date: Fri, 1 Dec 2023 19:37:55 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Jiqian Chen <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Thomas Gleixner <tglx@linutronix.de>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>, 
    Bjorn Helgaas <bhelgaas@google.com>, xen-devel@lists.xenproject.org, 
    linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, 
    Stefano Stabellini <stefano.stabellini@amd.com>, 
    Alex Deucher <Alexander.Deucher@amd.com>, 
    Christian Koenig <Christian.Koenig@amd.com>, 
    Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
    Xenia Ragiadakou <xenia.ragiadakou@amd.com>, 
    Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang <Julia.Zhang@amd.com>, 
    Huang Rui <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
In-Reply-To: <ZWmgJNidFsfkDp7q@macbook>
Message-ID: <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com> <20231124103123.3263471-3-Jiqian.Chen@amd.com> <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop> <ZWiyBP4Lzz5lXraP@macbook> <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-579185399-1701486027=:110490"
Content-ID: <alpine.DEB.2.22.394.2312011923070.110490@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-579185399-1701486027=:110490
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312011923071.110490@ubuntu-linux-20-04-desktop>

On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> On Thu, Nov 30, 2023 at 07:15:17PM -0800, Stefano Stabellini wrote:
> > On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> > > On Wed, Nov 29, 2023 at 07:53:59PM -0800, Stefano Stabellini wrote:
> > > > On Fri, 24 Nov 2023, Jiqian Chen wrote:
> > > > > This patch is to solve two problems we encountered when we try to
> > > > > passthrough a device to hvm domU base on Xen PVH dom0.
> > > > > 
> > > > > First, hvm guest will alloc a pirq and irq for a passthrough device
> > > > > by using gsi, before that, the gsi must first has a mapping in dom0,
> > > > > see Xen code pci_add_dm_done->xc_domain_irq_permission, it will call
> > > > > into Xen and check whether dom0 has the mapping. See
> > > > > XEN_DOMCTL_irq_permission->pirq_access_permitted, "current" is PVH
> > > > > dom0 and it return irq is 0, and then return -EPERM.
> > > > > This is because the passthrough device doesn't do PHYSDEVOP_map_pirq
> > > > > when thay are enabled.
> > > > > 
> > > > > Second, in PVH dom0, the gsi of a passthrough device doesn't get
> > > > > registered, but gsi must be configured for it to be able to be
> > > > > mapped into a domU.
> > > > > 
> > > > > After searching codes, we can 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 problems
> > > > > can be conclude to that the gsi of a passthrough device doesn't be
> > > > > unmasked.
> > > > > 
> > > > > To solve the unmaske problem, this patch call the unmask_irq when we
> > > > > assign a device to be passthrough. So that the gsi can get registered
> > > > > and mapped in PVH dom0.
> > > > 
> > > > 
> > > > Roger, this seems to be more of a Xen issue than a Linux issue. Why do
> > > > we need the unmask check in Xen? Couldn't we just do:
> > > > 
> > > > 
> > > > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> > > > index 4e40d3609a..df262a4a18 100644
> > > > --- a/xen/arch/x86/hvm/vioapic.c
> > > > +++ b/xen/arch/x86/hvm/vioapic.c
> > > > @@ -287,7 +287,7 @@ static void vioapic_write_redirent(
> > > >              hvm_dpci_eoi(d, gsi);
> > > >      }
> > > >  
> > > > -    if ( is_hardware_domain(d) && unmasked )
> > > > +    if ( is_hardware_domain(d) )
> > > >      {
> > > >          /*
> > > >           * NB: don't call vioapic_hwdom_map_gsi while holding hvm.irq_lock
> > > 
> > > There are some issues with this approach.
> > > 
> > > mp_register_gsi() will only setup the trigger and polarity of the
> > > IO-APIC pin once, so we do so once the guest unmask the pin in order
> > > to assert that the configuration is the intended one.  A guest is
> > > allowed to write all kind of nonsense stuff to the IO-APIC RTE, but
> > > that doesn't take effect unless the pin is unmasked.
> > > 
> > > Overall the question would be whether we have any guarantees that
> > > the hardware domain has properly configured the pin, even if it's not
> > > using it itself (as it hasn't been unmasked).
> > > 
> > > IIRC PCI legacy interrupts are level triggered and low polarity, so we
> > > could configure any pins that are not setup at bind time?
> > 
> > That could work.
> > 
> > Another idea is to move only the call to allocate_and_map_gsi_pirq at
> > bind time? That might be enough to pass a pirq_access_permitted check.
> 
> Maybe, albeit that would change the behavior of XEN_DOMCTL_bind_pt_irq
> just for PT_IRQ_TYPE_PCI and only when called from a PVH dom0 (as the
> parameter would be a GSI instead of a previously mapped IRQ).  Such
> difference just for PT_IRQ_TYPE_PCI is slightly weird - if we go that
> route I would recommend that we instead introduce a new dmop that has
> this syntax regardless of the domain type it's called from.

Looking at the code it is certainly a bit confusing. My point was that
we don't need to wait until polarity and trigger are set appropriately
to allow Dom0 to pass successfully a pirq_access_permitted() check. Xen
should be able to figure out that Dom0 is permitted pirq access.

So the idea was to move the call to allocate_and_map_gsi_pirq() earlier
somewhere because allocate_and_map_gsi_pirq doesn't require trigger or
polarity to be configured to work. But the suggestion of doing it a
"bind time" (meaning: XEN_DOMCTL_bind_pt_irq) was a bad idea.

But maybe we can find another location, maybe within
xen/arch/x86/hvm/vioapic.c, to call allocate_and_map_gsi_pirq() before
trigger and polarity are set and before the interrupt is unmasked.

Then we change the implementation of vioapic_hwdom_map_gsi to skip the
call to allocate_and_map_gsi_pirq, because by the time
vioapic_hwdom_map_gsi we assume that allocate_and_map_gsi_pirq had
already been done.

I am not familiar with vioapic.c but to give you an idea of what I was
thinking:


diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index 4e40d3609a..16d56fe851 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -189,14 +189,6 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,
         return ret;
     }
 
-    ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
-    if ( ret )
-    {
-        gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
-                 gsi, ret);
-        return ret;
-    }
-
     pcidevs_lock();
     ret = pt_irq_create_bind(currd, &pt_irq_bind);
     if ( ret )
@@ -287,6 +279,17 @@ static void vioapic_write_redirent(
             hvm_dpci_eoi(d, gsi);
     }
 
+    if ( is_hardware_domain(d) ) 
+    {
+        int pirq = gsi, ret;
+        ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
+        if ( ret )
+        {
+            gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
+                    gsi, ret);
+            return ret;
+        }
+    }
     if ( is_hardware_domain(d) && unmasked )
     {
         /*
--8323329-579185399-1701486027=:110490--


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 04:03:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 04:03:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645943.1008541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9HDV-00039V-30; Sat, 02 Dec 2023 04:02:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645943.1008541; Sat, 02 Dec 2023 04:02:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9HDV-00039O-0T; Sat, 02 Dec 2023 04:02:57 +0000
Received: by outflank-mailman (input) for mailman id 645943;
 Sat, 02 Dec 2023 04: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=XI5v=HN=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1r9HDT-00039I-8c
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 04:02:55 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id aa13fa58-90c7-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 05:02:53 +0100 (CET)
Received: from mg.gitlab.com (65.90.74.34.bc.googleusercontent.com
 [34.74.90.65]) by
 2c75a5480883 with SMTP id 656aac6a80c53add0078ee44 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Sat, 02 Dec 2023 04:02:50 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: aa13fa58-90c7-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701489771; x=1701496971; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=jckNhQVjgv0YHl5NbjvLu+Ns2LiLcAzFBklZyK7m8BA=;
 b=aY4CA+prZT/c8iNt+KvE/xv6pXjEqQ34O/5Uiztt7NuNy6nBy5ZUnnFC+yZkJzDb93EVQP9EoU9qCtG2yur4KZYmuzwSeYOfi/Gb7IVU6s1WByxyRxOcu79dCGqeTa/FLDNnmzkHQ4k1NuTd3hxVn2EWrgcbTTsx3ihrK2gKgSk=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Sat, 02 Dec 2023 04:02:50 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656aac6a5002f_2c9b168518be@gitlab-sidekiq-catchall-v2-744664b889-w8f4c.mail>
Subject: xen | Failed pipeline for staging | def73fc1
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656aac6a4623a_2c9b1685177d";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1091754937
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656aac6a4623a_2c9b1685177d
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1091754937 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: def73fc1 ( https://gitlab.com/xen-project/xen/-/commit/def73fc14407252cc801f35cd7746e60ccd70884 )
Commit Message: automation/eclair: improve scheduled analyses

...
Commit Author: Simone Ballarin
Committed by: Stefano Stabellini


Pipeline #1091754937 ( https://gitlab.com/xen-project/xen/-/pipelines/1091754937 ) triggered by Ganis ( https://gitlab.com/ganis )
had 3 failed jobs.

Job #5658840883 ( https://gitlab.com/xen-project/xen/-/jobs/5658840883/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug
Job #5658840879 ( https://gitlab.com/xen-project/xen/-/jobs/5658840879/raw )

Stage: test
Name: zen3p-smoke-x86-64-dom0pvh-gcc-debug
Job #5658840875 ( https://gitlab.com/xen-project/xen/-/jobs/5658840875/raw )

Stage: test
Name: zen3p-smoke-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | def73fc1</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1091754937 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/def73fc14407252cc8=
01f35cd7746e60ccd70884" style=3D"color: #3777b0; text-decoration: none;">=

def73fc1
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
automation/eclair: improve scheduled analyses

...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/e49ba7c313b09f038df1da23726d36ff?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Simone Ballarin
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/50b82a64e2a9f930cabefa3948871101?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Stefano Stabellini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1091754937">#1091754937</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 3 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5658840883" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5658840879" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-smoke-x86-64-dom0pvh-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5658840875" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-smoke-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656aac6a4623a_2c9b1685177d--


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 07:24:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 07:24:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645991.1008551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9KM8-0000zR-2z; Sat, 02 Dec 2023 07:24:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645991.1008551; Sat, 02 Dec 2023 07: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 1r9KM8-0000zK-05; Sat, 02 Dec 2023 07:24:04 +0000
Received: by outflank-mailman (input) for mailman id 645991;
 Sat, 02 Dec 2023 07:24: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=/E5q=HN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1r9KM6-0000zE-Ow
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 07:24:02 +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 c39902f6-90e3-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 08:24:01 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 55BB221D65;
 Sat,  2 Dec 2023 07:24:00 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 2DDEB13588;
 Sat,  2 Dec 2023 07:24:00 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id KeuVCZDbamVCDgAAn2gu4w
 (envelope-from <jgross@suse.com>); Sat, 02 Dec 2023 07:24:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c39902f6-90e3-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701501840; 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=UH019fP1BxPPcQjfP9yhSG/5xpP8AqAQpy+OKJJzXac=;
	b=QkgDBFmrEI96No39C6gLtvgn/yE7dsmyQ8UGPoV5Z5IPFkoAEmX1a8J5rbJBRBOblf3r7z
	uMNywKpOJBELRF6WMg53Dz/pNU+QmUj39N0MDThE1cfFv+rG6XZA4blqu6AtDzFyKw2uoi
	WwGv71R5NWFwwgHlxHG3PaSxmUBgmCU=
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.7-rc4
Date: Sat,  2 Dec 2023 08:23:59 +0100
Message-Id: <20231202072359.30587-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Score: 6.53
X-Spam-Level: ******
X-Spamd-Result: default: False [6.53 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 TO_DN_NONE(0.00)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_SPAM_SHORT(3.00)[0.999];
	 NEURAL_HAM_LONG(-0.96)[-0.963];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MID_CONTAINS_FROM(1.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[];
	 BAYES_HAM(-0.41)[77.87%]

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.7a-rc4-tag

xen: branch for v6.7-rc4

It contains 2 fixes:

- A fix for the Xen event driver setting the correct return value when
  experiencing an allocation failure

- A fix for allocating space for a struct in the percpu area to not
  cross page boundaries (this one is for x86, a similar one for Arm was
  already in the pull request for rc3)


Thanks.

Juergen

 arch/x86/xen/enlighten.c         | 6 +++++-
 arch/x86/xen/xen-ops.h           | 2 +-
 drivers/xen/events/events_base.c | 4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)

Dan Carpenter (1):
      xen/events: fix error code in xen_bind_pirq_msi_to_irq()

Juergen Gross (1):
      x86/xen: fix percpu vcpu_info allocation


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 07:43:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 07:43:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645995.1008561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Kf0-00052t-LV; Sat, 02 Dec 2023 07:43:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645995.1008561; Sat, 02 Dec 2023 07:43:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Kf0-00052m-It; Sat, 02 Dec 2023 07:43:34 +0000
Received: by outflank-mailman (input) for mailman id 645995;
 Sat, 02 Dec 2023 07:43: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 1r9Kez-00052c-Py; Sat, 02 Dec 2023 07:43: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 1r9Kez-00066R-Ag; Sat, 02 Dec 2023 07:43: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 1r9Key-00008D-RC; Sat, 02 Dec 2023 07:43:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9Key-0003hm-QY; Sat, 02 Dec 2023 07:43: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=qMOGG9RKQ9lDne5LkAa4NP3NBn4ZyxCeFTEksQQNREQ=; b=U6/P23ZSF8LkojE5pWnw0+LA9C
	hdLSB4MTXPoAUTsKV0c3StXh3rbGaIDS+A2F3ePeZaaFd5pbYOVN8COgQuoeIwB5ULZHyNgKdDSvE
	cc6UTMBtCgA/7mRSNoixYWYn3Yp9tAtOho13zHYdsDF5sHS+IrjU1J1QUDzYNubQMbEk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183969-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183969: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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: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: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:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-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-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-qcow2: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c1c09da07c550971a1764a113963533dcc8e4d2a
X-Osstest-Versions-That:
    linux=994d5c58e50e91bb02c7be4a91d5186292a895c8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 02 Dec 2023 07:43:32 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183961
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183961
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183961
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183961
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183961
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183961
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183961
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183961
 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          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          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-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-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-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-qcow2 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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                c1c09da07c550971a1764a113963533dcc8e4d2a
baseline version:
 linux                994d5c58e50e91bb02c7be4a91d5186292a895c8

Last test of basis   183961  2023-12-01 08:05:10 Z    0 days
Testing same since   183969  2023-12-01 21:42:21 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Brian Foster <bfoster@redhat.com>
  Jan Kara <jack@suse.cz>
  Kent Overstreet <kent.overstreet@linux.dev>
  Linus Torvalds <torvalds@linux-foundation.org>
  Ritesh Harjani (IBM) <ritesh.list@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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   994d5c58e50e..c1c09da07c55  c1c09da07c550971a1764a113963533dcc8e4d2a -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 07:43:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 07:43:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.645998.1008572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Kf4-0005IU-3X; Sat, 02 Dec 2023 07:43:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 645998.1008572; Sat, 02 Dec 2023 07:43:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Kf4-0005IL-0Y; Sat, 02 Dec 2023 07:43:38 +0000
Received: by outflank-mailman (input) for mailman id 645998;
 Sat, 02 Dec 2023 07:43: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=vqrx=HN=neowutran.ovh=xen@srs-se1.protection.inumbo.net>)
 id 1r9Kf1-0005HP-UT
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 07:43:37 +0000
Received: from neowutran.ovh (core.neowutran.ovh [51.83.40.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e983cb1-90e6-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 08:43:34 +0100 (CET)
Received: from neowutran.ovh (unknown [10.200.200.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384)
 (No client certificate requested)
 by neowutran.ovh (Postfix) with ESMTPSA id 9F15961318
 for <xen-devel@lists.xenproject.org>; Sat,  2 Dec 2023 07: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: 7e983cb1-90e6-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=neowutran.ovh; s=mail;
	t=1701503011; bh=ypjsw/m7w54Gnddidu+YUxRN+sc6xfmWADGsmMjcbbQ=;
	h=Date:From:To:Subject;
	b=T42Yr1P46q1o0wNCSgpKZqJTKQhNo/EhTY27iiZls5C4677eICYuPvJvfr9J1hilG
	 rH8PiAVb5pLnk1QvGRAtYkOdxF/dTksSk/CGLRhbkr3Rae+/j+sGMebWSc7FLQLdMo
	 /IvUHYzm/+D0/SXjTMgCnn3RE6fODPfIMxj8zIbvqhWvjawqCwkI4bExLrJoJfQKmV
	 Z4LCBW4lLz7xmxUQIJIPW4eNBnlizJbxNJ2p63i6O8PrG9gm09pUrIgTj49/7x0LYa
	 xVCwpleauvOi9XMH8jTzV5Zt7i7poxBp4VX4X3S/F0n0aiR5oDxcsn6ld0GheR+nrH
	 JqLgDOjQi2DrISW/RHcE3v1xlpQuB5xL7p8Q13UB5xpScw4KEOBw1xOEUO5f1UqnY7
	 vAOVqiWU5DFaB579CwNZ+mYYhtdqJ1f0mADP5mP8kO8gQmHFe0KMMyFax9dPqW/V5V
	 aBcomjhgzmmReybdjlmiIvNb60B19LtGvQx9jvtzpvJQO7JyKpLS92JvBOc4swym1c
	 oSDJJ5Lprm4gxHcppYoWNOI07kPvzBwato96c2o7tsS4G26n/8iv/+d+R8kMypCcut
	 fKCJnEM+S4NAlGdySUb8it7z1NbT4F+pFIXvZf6VfYlq0Qc/tGkjBoFgUY6aWXM1w6
	 7WcITpBLTqt20rp0u/WorrvY=
Date: Sat, 2 Dec 2023 08:43:17 +0100
From: Neowutran <xen@neowutran.ovh>
To: xen-devel@lists.xenproject.org
Subject: hvmloader - pci - relevance of qemu-traditional workaround
Message-ID: <kcwnsmcrehmynvnzeotiywy74alteymojud4imzhox57gocpce@jkf35uyupmop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

Hello, 

In QubesOS I had the following issue 
(https://github.com/QubesOS/qubes-issues/issues/4321):

When I create a HVM and passthrough a GPU (pci device), it seems to
trash the memory of the guest and either prevent the HVM to be started
or prevent the GPU to be used. 

Looking more at the details, it is a memory corruption issue provoked
by the hvmloader of xen. 
This specific issue is well documented in the xen source code here: 

https://github.com/xen-project/xen/blob/master/tools/firmware/hvmloader/pci.c#L105

"
   /*
     * Do we allow hvmloader to relocate guest memory in order to
     * increase the size of the lowmem MMIO hole?  Defaulting to 1
     * here will 
 mean that non-libxl toolstacks (including xend and
     * home-grown ones) means that those using qemu-xen will still
     * experience the memory relocation bug described below; but it
     * also means that those using qemu-traditional will *not*
     * experience any change; and it also means that there is a
     * work-around for those using qemu-xen, namely switching to
     * qemu-traditional.
     *
     * If we defaulted to 0, and failing to resize the hole caused any
     * problems with qemu-traditional, then there is no work-around.
     *
     * Since xend can only use qemu-traditional, I think this is the
     * option that will have the least impact.
     */
    bool allow_memory_relocate = 1;
"

and the corruption happen here: 

https://github.com/xen-project/xen/blob/master/tools/firmware/hvmloader/pci.c#L355

"
        /*
         * At the moment qemu-xen can't deal with relocated memory regions.
         * It's too close to the release to make a proper fix; for now,
         * only allow t 
he MMIO hole to grow large enough to move guest memory
         * if we're running qemu-traditional.  Items that don't fit will be
         * relocated into the 64-bit address space.
         *
         * This loop now does the following:
         * - If allow_memory_relocate, increase the MMIO hole until it's
         *   big enough, or until it's 2GiB
         * - If !allow_memory_relocate, increase the MMIO hole until it's
         *   big enough, or until it's 2GiB, or until it overlaps guest
         *   memory
         */
        while ( (mmio_total > (pci_mem_end - pci_mem_start))
                && ((pci_mem_start << 1) != 0)
                && (allow_memory_relocate
                    || (((pci_mem_start << 1) >> PAGE_SHIFT)
                        >= hvm_info->low_mem_pgend)) )
            pci_mem_start <<= 1;
"

I wrote a small patch (https://github.com/QubesOS/qubes-vmm-xen/pull/172/files) 
to force the value of "allow_memory_relocate" to be 0.
It fixed the issue I was having, I saw no drawback, 
 so I am suggesting this patch to the QubesOS project. 

But I have some questions: 

- In the xen source code, the default value of "allow_memory_relocate" have been
defined to 1 for qemu-traditional support. As of today, should this default value still be "1" ? 

- Does something have changed regarding "At the moment qemu-xen can't deal with
relocated memory regions." ? / something else should be modified ?



Many thanks, 
Neowutran


 


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 10:10:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 10:10:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646044.1008582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9MxK-0006aA-K7; Sat, 02 Dec 2023 10:10:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646044.1008582; Sat, 02 Dec 2023 10:10:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9MxK-0006a3-HO; Sat, 02 Dec 2023 10:10:38 +0000
Received: by outflank-mailman (input) for mailman id 646044;
 Sat, 02 Dec 2023 10:10: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 1r9MxI-0006Zx-Qw
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 10:10: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 1r9MxF-0000mW-MS; Sat, 02 Dec 2023 10:10:33 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1r9MxF-00014O-Fz; Sat, 02 Dec 2023 10:10:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Bz9lCaYWOKxMw+dImV0pKvZu5ZHmKu1Ikro8YfuO9OY=; b=WGi/GKHxm6TdmiJl3AoTsKMiGP
	cvMa8C/v+cAZB3MR6AqiPc0loL+N7+E5kTJQ6m7l8RlmlC+/XkW9l0RAP9+O4lIwP2MR18ZyXCHT7
	VYje2McH8/QJnvhybj7Ie1UAtQ9rpEr3SkgPnsROi7L6kS79/pMtr/s1hf/k6vrwhvUI=;
Message-ID: <67299896-49cb-4d71-aa93-71a2f18b2d0e@xen.org>
Date: Sat, 2 Dec 2023 10:10:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 7/7] xen/page_alloc: deviate first_valid_mfn for MISRA
 C Rule 8.4
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 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,
 bertrand.marquis@arm.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com>
 <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2311301847300.110490@ubuntu-linux-20-04-desktop>
 <21956d5b-08ad-45ac-96ff-22fe7d54ec60@suse.com>
 <alpine.DEB.2.22.394.2312011901450.110490@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312011901450.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 02/12/2023 04:03, Stefano Stabellini wrote:
> On Fri, 1 Dec 2023, Jan Beulich wrote:
>> On 01.12.2023 03:47, Stefano Stabellini wrote:
>>> On Wed, 29 Nov 2023, Nicola Vetrini wrote:
>>>> No functional change.
>>>>
>>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>> ---
>>>> The preferred way to deviate is to use asmlinkage, but this modification is only
>>>> the consequence of NUMA on ARM (and possibly PPC) being a work in progress.
>>>> As stated in the comment above the textual deviation, first_valid_mfn will
>>>> likely then become static and there would be no need for the comment anymore.
>>>> This works towards having the analysis for this rule clean (i.e. no violations);
>>>> the interest in having a clean rule is that then it could be used to signal
>>>> newly introduced violations by making the analysis job fail.
>>>
>>> Please add this text as part of the commit message. It can be done on
>>> commit.
>>
>> I assume you saw my reply on another of the patches in this series as to
>> asmlinkage use on variables? IOW I think this paragraph would also need
>> adjustment to account for that.
> 
> I was going to ask you about that: reading your reply
> https://marc.info/?l=xen-devel&m=170142048615336 it is not clear to me
> what you are asking or suggesting as next step in regard to asmlinkage
> use on variables.

Regardless what Jan wrote there, I think it would be an abuse to add 
asmlinkage for first_valid_mfn because it is not used by assembly code.

The same goes for the use of SAF-1-safe. This is defined as:

"Functions and variables used only by asm modules do not need to have a 
visible declaration prior to their definition."

Now, regarding the violation itself. AFAIU, this would be a violation 
only on x86 because Arm, PPC, RISC-V will all need the declaration as 
NUMA is not supported. For Arm, we may have NUMA support soon, but I 
doubt this will happen in the next couple of years for the others.

Furthermore, I am sure this is not the only exported variable/function 
which may be used by some archictectures but not others. So I think it 
would be better to declare first_valid_mfn in a common header.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 10:48:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 10:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646061.1008596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9NY9-0003v1-CT; Sat, 02 Dec 2023 10:48:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646061.1008596; Sat, 02 Dec 2023 10:48:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9NY9-0003uu-91; Sat, 02 Dec 2023 10:48:41 +0000
Received: by outflank-mailman (input) for mailman id 646061;
 Sat, 02 Dec 2023 10:48: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 1r9NY8-0003uk-AU; Sat, 02 Dec 2023 10:48: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 1r9NY8-0001Pj-7I; Sat, 02 Dec 2023 10:48: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 1r9NY7-0007kh-Nn; Sat, 02 Dec 2023 10:48:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9NY7-0000fl-N1; Sat, 02 Dec 2023 10:48: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=ClEFI7nwxH47tZrpE4UHZVDMFVxvRBHaJYwYiaUvLSo=; b=EE+P+KxzQS4AkTQGZtCDctMZB9
	yV4d5CfMd/nLKivLTla3O2DakRVz2DN2qPUSZfAHiQ2my8AORuTHOSO6mmIYoNOoxulXzKK08rORv
	NDLYVdBIGC3E39HU/LAmNLsGtPBvrPaVMY8CZ7XJ94yluDAOB3GVSC+U8PuhDYHhwOk8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183971-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 183971: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-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-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
X-Osstest-Versions-That:
    xen=1571ff7a987b88b20598a6d49910457f3b2c59f1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 02 Dec 2023 10:48:39 +0000

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

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 183965
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183965
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183965
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183965
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183965
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183965
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183965
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183965
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183965
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183965
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183965
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183965
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-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-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-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-amd64-i386-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     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-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-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352
baseline version:
 xen                  1571ff7a987b88b20598a6d49910457f3b2c59f1

Last test of basis   183965  2023-12-01 14:40:34 Z    0 days
Testing same since   183971  2023-12-02 01:10:39 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  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                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   1571ff7a98..525c7c094b  525c7c094b258e8a46b494488eef96f5670eb352 -> master


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 11:00:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 11:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646069.1008606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9NjP-0006tG-HO; Sat, 02 Dec 2023 11:00:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646069.1008606; Sat, 02 Dec 2023 11: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 1r9NjP-0006t9-Eb; Sat, 02 Dec 2023 11:00:19 +0000
Received: by outflank-mailman (input) for mailman id 646069;
 Sat, 02 Dec 2023 11:00: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=XI5v=HN=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1r9NjO-0006t3-3X
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 11:00:18 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id f8d0715b-9101-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 12:00:15 +0100 (CET)
Received: from mg.gitlab.com (31.226.74.34.bc.googleusercontent.com
 [34.74.226.31]) by
 c0e87507daf0 with SMTP id 656b0e3d9c464581d8b15010 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Sat, 02 Dec 2023 11:00:13 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: f8d0715b-9101-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701514814; x=1701522014; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=44u8xwobk8ws/4RkrTWncbcfqwgrjuyJWudyzXr1c7M=;
 b=AFXpXADpS3k6MkOIt6Fyiy7M7eIgo8kDm3pFvP9UGdAIGeKypII5cdyyE5DzJXSRrqXBOuvSR+au6Ce8KMy/1jwG3LjzSVj/kArH8MY6t8tVzOn/4Iz4tqMmdTRD6KZMYSWah7aRJDyo+sSGOuMqABb0Oo2bTLC02UaZM4IUF0M=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Sat, 02 Dec 2023 11:00:13 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656b0e3d3589c_2c9b2946727a@gitlab-sidekiq-catchall-v2-744664b889-frqrz.mail>
Subject: xen | Failed pipeline for staging | 1571ff7a
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656b0e3d2543c_2c9b294671e1";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1092052720
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656b0e3d2543c_2c9b294671e1
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1092052720 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 1571ff7a ( https://gitlab.com/xen-project/xen/-/commit/1571ff7a987b88b20598a6d49910457f3b2c59f1 )
Commit Message: tools/xg: Fix potential memory leak in cpu poli...
Commit Author: Alejandro Vallejo
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )


Pipeline #1092052720 ( https://gitlab.com/xen-project/xen/-/pipelines/1092052720 ) triggered by Ganis ( https://gitlab.com/ganis )
had 3 failed jobs.

Job #5660575443 ( https://gitlab.com/xen-project/xen/-/jobs/5660575443/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug
Job #5660575435 ( https://gitlab.com/xen-project/xen/-/jobs/5660575435/raw )

Stage: test
Name: zen3p-smoke-x86-64-dom0pvh-gcc-debug
Job #5660575433 ( https://gitlab.com/xen-project/xen/-/jobs/5660575433/raw )

Stage: test
Name: zen3p-smoke-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 1571ff7a</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1092052720 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/1571ff7a987b88b205=
98a6d49910457f3b2c59f1" style=3D"color: #3777b0; text-decoration: none;">=

1571ff7a
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
tools/xg: Fix potential memory leak in cpu poli...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/50133b2b73449e317452c72069da8553?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Alejandro Vallejo
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1092052720">#1092052720</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 3 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5660575443" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5660575435" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-smoke-x86-64-dom0pvh-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5660575433" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-smoke-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656b0e3d2543c_2c9b294671e1--


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 13:01:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 13:01:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646125.1008615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9PcN-0007Vk-JQ; Sat, 02 Dec 2023 13:01:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646125.1008615; Sat, 02 Dec 2023 13: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 1r9PcN-0007Vd-Gd; Sat, 02 Dec 2023 13:01:11 +0000
Received: by outflank-mailman (input) for mailman id 646125;
 Sat, 02 Dec 2023 13: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=xKAF=HN=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1r9PcL-0007VX-UO
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 13:01:10 +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 da9440a9-9112-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 14:01:06 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a19ce1404e1so232307566b.3
 for <xen-devel@lists.xenproject.org>; Sat, 02 Dec 2023 05:01:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da9440a9-9112-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701522065; x=1702126865; 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=wiUXfQUqCo49tZPnymrLXMAuH54hmokN4Jjmax/AWv8=;
        b=c6QE8A8zaQXhVyIEpbaDrVYKnvuEg7XCL6pyi/xzIH6OyKsHWQHvwE6tHfrJi6L3xr
         8B4o0NQ22RDpmjBvVEr+8zZUyfXTP4sKDNwctOLc6pS9jLmvIQuyKfwkhIcNmc+zZCES
         8EsoPojT8QMJqvo3jYC78q4VoRot5lp2uzHhs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701522065; x=1702126865;
        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=wiUXfQUqCo49tZPnymrLXMAuH54hmokN4Jjmax/AWv8=;
        b=MWT8jqJTSohHrqdtYfE2wVkNKfIl0LIn1sT3o0k8Yfa8s0jmrAihM58PW8YYDKK0Y3
         UvkGYQkvSFpFwGpZu+qwBsGpb/3HAKiiNbxgEeWYMhCMf8fPCZhgwiLE2R/qGw0OQ8MF
         kf3tO7UecvlP9fQC7FeSr/CUXOFCeYvv2IWHB6bVbPM2t7Hkp4pK3RdEj+a+GAzj+B++
         AovEBUj+Y72Ucjutf6PKm8KgNIIMUqgtHBrtxvQ7C/dFtCOadGSRckcWs9A6aP74zZGu
         BSwaxOTQ2UDIVR8pPdE6qEb+pqtXSk0UrU28eCOD4iwmVN8wkjp6W3P0pDr5iATdZxu9
         eiOA==
X-Gm-Message-State: AOJu0YyZ1hzvirQIEVp2YACWrTrBfl5v/31On+tk91D17stvIDTzvHaH
	P1IHFs8bBwuFAPqwgzBojlUhg3uvfE/mSJSvDcud3v8edfetwngP6Pw=
X-Google-Smtp-Source: AGHT+IF7+sgGDXUcZPzWTd3TJy4P+YsklJGRSI7iNrOKFP1QrGI0nq4gpzltE1Bvz1zmfF8Brq0Odd1R7UmbkLbMSdY=
X-Received: by 2002:a17:906:2616:b0:a17:8181:4f3 with SMTP id
 h22-20020a170906261600b00a17818104f3mr1896108ejc.49.1701522065313; Sat, 02
 Dec 2023 05:01:05 -0800 (PST)
MIME-Version: 1.0
References: <CAO-mL=zCpobcXHnAGeLL1tOP5dyqyThVri3a=76t_xYDMa+mrA@mail.gmail.com>
 <96df2df9-b295-6334-d45c-183d116fff88@suse.com> <alpine.DEB.2.22.394.2311131349470.160649@ubuntu-linux-20-04-desktop>
 <CAO-mL=ygwrvepWf_SqLbqXJv-nFBicpMPCJTuegJNitcr1BY2Q@mail.gmail.com>
In-Reply-To: <CAO-mL=ygwrvepWf_SqLbqXJv-nFBicpMPCJTuegJNitcr1BY2Q@mail.gmail.com>
From: Kelly Choi <kelly.choi@cloud.com>
Date: Sat, 2 Dec 2023 13:00:00 +0000
Message-ID: <CAO-mL=yCb0LwPeuuiXVYAkC+iKkk3Wqm4KDgQQpweVdVm7NRTQ@mail.gmail.com>
Subject: Re: Informal voting proposal
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org, 
	committers@xenproject.org
Content-Type: multipart/alternative; boundary="00000000000047f43c060b867a14"

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

Hi all,

Given that there are no further comments, I will add informal voting to our
governance policies.

Many thanks,
Kelly Choi

Xen Project Community Manager
XenServer, Cloud Software Group


On Tue, Nov 14, 2023 at 11:16=E2=80=AFAM Kelly Choi <kelly.choi@cloud.com> =
wrote:

> Thanks for your feedback @Jan Beulich <jbeulich@suse.com> and @Stefano
> Stabellini <sstabellini@kernel.org>.
> Let's go ahead with your suggestion of using "component".
>
> I am sure this is a step in the right direction, and the time saved here
> will benefit from fixing other areas in the project.
>
> Many thanks,
> Kelly Choi
>
> Open Source Community Manager
> XenServer, Cloud Software Group
>
>
> On Mon, Nov 13, 2023 at 10:23=E2=80=AFPM Stefano Stabellini <
> sstabellini@kernel.org> wrote:
>
>> On Mon, 13 Nov 2023, Jan Beulich wrote:
>> > On 06.11.2023 17:40, Kelly Choi wrote:
>> > > Hi all,
>> > >
>> > > As an open-source community, there will always be differences of
>> opinion in
>> > > approaches and the way we think. It is imperative, however, that we
>> view
>> > > this diversity as a source of strength rather than a hindrance.
>> > >
>> > > Recent deliberations within our project have led to certain matters
>> being
>> > > put on hold due to an inability to reach a consensus. While formal
>> voting
>> > > procedures serve their purpose, they can be time-consuming and may n=
ot
>> > > always lead to meaningful progress.
>> > >
>> > > Having received agreement from a few maintainers already, I would
>> like to
>> > > propose the following:
>> > >
>> > > *Informal voting method:*
>> > >
>> > >    1. Each project should ideally have more than 2 maintainers to
>> > >    facilitate impartial discussions. Projects lacking this
>> configuration will
>> > >    be addressed at a later stage.
>> >
>> > Terminology question: What is "project" here? Considering how
>> ./MAINTAINERS
>> > is structured, is it perhaps more "component"?
>>
>> Yes, I think "component" is the right word
>>
>>
>> > >    2. Anyone in the community is welcome to voice their opinions,
>> ideas,
>> > >    and concerns about any patch or contribution.
>> > >    3. If members cannot agree, the majority informal vote of the
>> > >    maintainers will be the decision that stands. For instance, if,
>> after
>> > >    careful consideration of all suggestions and concerns, 2 out of 3
>> > >    maintainers endorse a solution within the x86 subsystem, it shall
>> be the
>> > >    decision we move forward with.
>> >
>> > In a later reply you make explicit what can only be guessed here: Ther=
e
>> > you suggest that out of a range of possible options, up front two are
>> > picked to then choose between. However, when there is a range options
>> > available, and when those can be viewed as points on a scale (rather
>> > than, to take Stefano's earlier example of SAF-* naming, cases where
>> > it's hard to view choices as being on a linear scale), picking two
>> > "points" up front may already pose a problem. (See also another reply
>> > mentioning how to ensure that the various possible options were even
>> > taken into consideration.)
>> >
>> > Not only in such situations, but in general, to me a prereq to even
>> > coming to the point of needing an informal vote is the willingness of
>> > everyone involved to find a compromise. When there's a range of views,
>> > and when "knowing" what's going to be best for the project would requi=
re
>> > a crystal ball, experience suggests to me that chances for an optimal
>> > choice are better when picking a "point" not at the far ends of the
>> scale.
>> > (Such a result then would also much better reflect your named goal of
>> > seeing diversity as a strength.)
>> >
>> > With such willingness I think even informal votes could be avoided mos=
t
>> > of the time, at which point it becomes questionable whether for the fe=
w
>> > remaining cases informal and formal votes really need specifying
>> > separately.
>>
>> The key difference in point of views is that you see as very common to
>> have options on a linear scale, where finding a middle ground makes
>> sense, and you see as an exception cases like SAF-* naming that are not
>> on a scale. In my view cases like SAF-* naming are the common case,
>> while it would be an exception to have options on a linear scale. If
>> it turns out there are indeed many cases where multiple options are on a
>> linear scale, we might be able to come up with another idea on how to
>> get a quick informal consensus for those issues.
>>
>>
>> > >    4. Naturally, there may be exceptional circumstances, as such, a
>> formal
>> > >    vote may be warranted but should happen only a few times a year
>> for serious
>> > >    cases only.
>> > >    5. Informal votes can be as easy as 2 out of 3 maintainers
>> providing
>> > >    their Acked-by/Reviewed-by tag. Alternatively, Maintainers can
>> call an
>> > >    informal vote by simply emailing the thread with "informal vote
>> proposed,
>> > >    option 1 and option 2."
>> >
>> > I find this difficult. Both A-b and R-b assert that the person offerin=
g
>> > the tag endorses the presented solution to the indicated degree. It do=
es
>> > not say anything on possible alternative solutions. As a result taking
>> > such tags as votes is (once again, and once again in my personal view)
>> > reasonable only when there's a black-and-white decision to be taken.
>>
>> From a practical perspective, A-b and R-b are a quick and easy way to
>> gauge informal consensus on an issue. Also, exploring alternative
>> solutions take time. Time for the reviewer, time for the contributor,
>> time for everyone else involved in the email thread. A-b and R-b have a
>> very important role: they say "this is good enough". When you have a
>> majority of people saying "this is good enough", I think we would be
>> better off spending our timing fixing other deficiencies, reviewing
>> other patches, rather than trying to further optimize that particular
>> patch.
>>
>>
>> > >    6. *All maintainers should reply with their vote within 5 working
>> days.*
>> > >
>> > >    7. Please note that with any new process, there will always be
>> room for
>> > >    improvement and we will reiterate where needed.
>> > >
>> > > Ultimately our goal here is to prevent the project coming to a
>> standstill
>> > > while deliberating decisions that we all cannot agree on. This may
>> mean
>> > > compromising in the short term but I am sure the long-term benefits
>> will
>> > > stand for themselves.
>> > >
>> > > *If you have any strong objections to the informal voting, please le=
t
>> me
>> > > know by 30th November 2023. *
>> >
>> > Just FTAOD none of the above is meant to be a "strong objection".
>> Despite
>> > being unconvinced of the proposal (including the need for one, not the
>> > least also considering what has triggered this sudden effort, when the=
re
>> > are - imo - worse problems of "standstill"), I'll try to be a good
>> citizen
>> > and play by what's going to be put in place.
>>
>> Thank you. Let's give it a try and see how it goes. As for every change,
>> we are trying to make improvements. If they don't work, or better ideas
>> come along, we can change again.
>>
>>

--00000000000047f43c060b867a14
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>Given that the=
re are no further comments, I will add informal voting to our governance po=
licies.=C2=A0</div><div><br clear=3D"all"><div><div dir=3D"ltr" class=3D"gm=
ail_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)">Xen Project Comm=
unity Manager</div><div style=3D"color:rgb(136,136,136)">XenServer, Cloud S=
oftware Group</div></div></div></div></div><br></div></div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Nov 14, 2023=
 at 11:16=E2=80=AFAM Kelly Choi &lt;<a href=3D"mailto:kelly.choi@cloud.com"=
>kelly.choi@cloud.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,20=
4);padding-left:1ex"><div dir=3D"ltr">Thanks for your feedback=C2=A0<a clas=
s=3D"gmail_plusreply" id=3D"m_-2315369156882097211plusReplyChip-2" href=3D"=
mailto:jbeulich@suse.com" target=3D"_blank">@Jan Beulich</a>=C2=A0and=C2=A0=
<a class=3D"gmail_plusreply" id=3D"m_-2315369156882097211plusReplyChip-4" h=
ref=3D"mailto:sstabellini@kernel.org" target=3D"_blank">@Stefano Stabellini=
</a>.<div>Let&#39;s go ahead with your suggestion of using &quot;component&=
quot;.=C2=A0</div><div><br></div><div>I am sure this is a step in the=C2=A0=
right direction, and the time saved here will benefit from fixing other are=
as in the project.=C2=A0</div><div><br clear=3D"all"><div><div dir=3D"ltr" =
class=3D"gmail_signature"><div dir=3D"ltr"><div>Many thanks,</div><div>Kell=
y Choi</div><div><br></div><div><div style=3D"color:rgb(136,136,136)">Open =
Source Community Manager</div><div style=3D"color:rgb(136,136,136)">XenServ=
er, Cloud Software Group</div></div></div></div></div><br></div></div><br><=
div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Nov=
 13, 2023 at 10:23=E2=80=AFPM Stefano Stabellini &lt;<a href=3D"mailto:ssta=
bellini@kernel.org" target=3D"_blank">sstabellini@kernel.org</a>&gt; wrote:=
<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8=
ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, 13 Nov =
2023, Jan Beulich wrote:<br>
&gt; On 06.11.2023 17:40, Kelly Choi wrote:<br>
&gt; &gt; Hi all,<br>
&gt; &gt; <br>
&gt; &gt; As an open-source community, there will always be differences of =
opinion in<br>
&gt; &gt; approaches and the way we think. It is imperative, however, that =
we view<br>
&gt; &gt; this diversity as a source of strength rather than a hindrance.<b=
r>
&gt; &gt; <br>
&gt; &gt; Recent deliberations within our project have led to certain matte=
rs being<br>
&gt; &gt; put on hold due to an inability to reach a consensus. While forma=
l voting<br>
&gt; &gt; procedures serve their purpose, they can be time-consuming and ma=
y not<br>
&gt; &gt; always lead to meaningful progress.<br>
&gt; &gt; <br>
&gt; &gt; Having received agreement from a few maintainers already, I would=
 like to<br>
&gt; &gt; propose the following:<br>
&gt; &gt; <br>
&gt; &gt; *Informal voting method:*<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0 1. Each project should ideally have more than 2 main=
tainers to<br>
&gt; &gt;=C2=A0 =C2=A0 facilitate impartial discussions. Projects lacking t=
his configuration will<br>
&gt; &gt;=C2=A0 =C2=A0 be addressed at a later stage.<br>
&gt; <br>
&gt; Terminology question: What is &quot;project&quot; here? Considering ho=
w ./MAINTAINERS<br>
&gt; is structured, is it perhaps more &quot;component&quot;?<br>
<br>
Yes, I think &quot;component&quot; is the right word<br>
<br>
<br>
&gt; &gt;=C2=A0 =C2=A0 2. Anyone in the community is welcome to voice their=
 opinions, ideas,<br>
&gt; &gt;=C2=A0 =C2=A0 and concerns about any patch or contribution.<br>
&gt; &gt;=C2=A0 =C2=A0 3. If members cannot agree, the majority informal vo=
te of the<br>
&gt; &gt;=C2=A0 =C2=A0 maintainers will be the decision that stands. For in=
stance, if, after<br>
&gt; &gt;=C2=A0 =C2=A0 careful consideration of all suggestions and concern=
s, 2 out of 3<br>
&gt; &gt;=C2=A0 =C2=A0 maintainers endorse a solution within the x86 subsys=
tem, it shall be the<br>
&gt; &gt;=C2=A0 =C2=A0 decision we move forward with.<br>
&gt; <br>
&gt; In a later reply you make explicit what can only be guessed here: Ther=
e<br>
&gt; you suggest that out of a range of possible options, up front two are<=
br>
&gt; picked to then choose between. However, when there is a range options<=
br>
&gt; available, and when those can be viewed as points on a scale (rather<b=
r>
&gt; than, to take Stefano&#39;s earlier example of SAF-* naming, cases whe=
re<br>
&gt; it&#39;s hard to view choices as being on a linear scale), picking two=
<br>
&gt; &quot;points&quot; up front may already pose a problem. (See also anot=
her reply<br>
&gt; mentioning how to ensure that the various possible options were even<b=
r>
&gt; taken into consideration.)<br>
&gt; <br>
&gt; Not only in such situations, but in general, to me a prereq to even<br=
>
&gt; coming to the point of needing an informal vote is the willingness of<=
br>
&gt; everyone involved to find a compromise. When there&#39;s a range of vi=
ews,<br>
&gt; and when &quot;knowing&quot; what&#39;s going to be best for the proje=
ct would require<br>
&gt; a crystal ball, experience suggests to me that chances for an optimal<=
br>
&gt; choice are better when picking a &quot;point&quot; not at the far ends=
 of the scale.<br>
&gt; (Such a result then would also much better reflect your named goal of<=
br>
&gt; seeing diversity as a strength.)<br>
&gt; <br>
&gt; With such willingness I think even informal votes could be avoided mos=
t<br>
&gt; of the time, at which point it becomes questionable whether for the fe=
w<br>
&gt; remaining cases informal and formal votes really need specifying<br>
&gt; separately.<br>
<br>
The key difference in point of views is that you see as very common to<br>
have options on a linear scale, where finding a middle ground makes<br>
sense, and you see as an exception cases like SAF-* naming that are not<br>
on a scale. In my view cases like SAF-* naming are the common case,<br>
while it would be an exception to have options on a linear scale. If<br>
it turns out there are indeed many cases where multiple options are on a<br=
>
linear scale, we might be able to come up with another idea on how to<br>
get a quick informal consensus for those issues.<br>
<br>
<br>
&gt; &gt;=C2=A0 =C2=A0 4. Naturally, there may be exceptional circumstances=
, as such, a formal<br>
&gt; &gt;=C2=A0 =C2=A0 vote may be warranted but should happen only a few t=
imes a year for serious<br>
&gt; &gt;=C2=A0 =C2=A0 cases only.<br>
&gt; &gt;=C2=A0 =C2=A0 5. Informal votes can be as easy as 2 out of 3 maint=
ainers providing<br>
&gt; &gt;=C2=A0 =C2=A0 their Acked-by/Reviewed-by tag. Alternatively, Maint=
ainers can call an<br>
&gt; &gt;=C2=A0 =C2=A0 informal vote by simply emailing the thread with &qu=
ot;informal vote proposed,<br>
&gt; &gt;=C2=A0 =C2=A0 option 1 and option 2.&quot;<br>
&gt; <br>
&gt; I find this difficult. Both A-b and R-b assert that the person offerin=
g<br>
&gt; the tag endorses the presented solution to the indicated degree. It do=
es<br>
&gt; not say anything on possible alternative solutions. As a result taking=
<br>
&gt; such tags as votes is (once again, and once again in my personal view)=
<br>
&gt; reasonable only when there&#39;s a black-and-white decision to be take=
n.<br>
<br>
>From a practical perspective, A-b and R-b are a quick and easy way to<br>
gauge informal consensus on an issue. Also, exploring alternative<br>
solutions take time. Time for the reviewer, time for the contributor,<br>
time for everyone else involved in the email thread. A-b and R-b have a<br>
very important role: they say &quot;this is good enough&quot;. When you hav=
e a<br>
majority of people saying &quot;this is good enough&quot;, I think we would=
 be<br>
better off spending our timing fixing other deficiencies, reviewing<br>
other patches, rather than trying to further optimize that particular<br>
patch.<br>
<br>
<br>
&gt; &gt;=C2=A0 =C2=A0 6. *All maintainers should reply with their vote wit=
hin 5 working days.*<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0 7. Please note that with any new process, there will=
 always be room for<br>
&gt; &gt;=C2=A0 =C2=A0 improvement and we will reiterate where needed.<br>
&gt; &gt; <br>
&gt; &gt; Ultimately our goal here is to prevent the project coming to a st=
andstill<br>
&gt; &gt; while deliberating decisions that we all cannot agree on. This ma=
y mean<br>
&gt; &gt; compromising in the short term but I am sure the long-term benefi=
ts will<br>
&gt; &gt; stand for themselves.<br>
&gt; &gt; <br>
&gt; &gt; *If you have any strong objections to the informal voting, please=
 let me<br>
&gt; &gt; know by 30th November 2023. *<br>
&gt; <br>
&gt; Just FTAOD none of the above is meant to be a &quot;strong objection&q=
uot;. Despite<br>
&gt; being unconvinced of the proposal (including the need for one, not the=
<br>
&gt; least also considering what has triggered this sudden effort, when the=
re<br>
&gt; are - imo - worse problems of &quot;standstill&quot;), I&#39;ll try to=
 be a good citizen<br>
&gt; and play by what&#39;s going to be put in place.<br>
<br>
Thank you. Let&#39;s give it a try and see how it goes. As for every change=
,<br>
we are trying to make improvements. If they don&#39;t work, or better ideas=
<br>
come along, we can change again.<br>
<br>
</blockquote></div>
</blockquote></div></div>

--00000000000047f43c060b867a14--


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 17:22:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 17:22:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646169.1008626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Tgk-0000ra-Qe; Sat, 02 Dec 2023 17:21:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646169.1008626; Sat, 02 Dec 2023 17:21:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Tgk-0000rT-Mt; Sat, 02 Dec 2023 17:21:58 +0000
Received: by outflank-mailman (input) for mailman id 646169;
 Sat, 02 Dec 2023 17:21: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 1r9Tgj-0000rI-JS; Sat, 02 Dec 2023 17:21: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 1r9Tgj-00013N-AA; Sat, 02 Dec 2023 17:21: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 1r9Tgi-0001v1-R4; Sat, 02 Dec 2023 17:21:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9Tgi-0006Pl-Qf; Sat, 02 Dec 2023 17:21: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=ItMwfLSjrWXitjPis89SS7NkXdfaBvqe5cipqmF/K4M=; b=aWNTFO/tSw+sGbqpRmwSZfzRA0
	tHshqkPvF/FsUSkJ4USNdb9iOjTvDs/x0arSTdPXz11gqRovLAnvmo9p/UajJct8uCgT9pINDK9lf
	80pH/ZfRPiKZFoBMH4G422TE3RW3NTIWSqnnmqnqKje/VG2UEuOiZRpjytihVD0QhgSg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183972-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 183972: tolerable FAIL - PUSHED
X-Osstest-Failures:
    libvirt:test-arm64-arm64-libvirt-qcow2:guest-start/debian.repeat:fail:heisenbug
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt: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-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=d8de4f2770fbe5195f92c0e142a1921c2a1d8ed9
X-Osstest-Versions-That:
    libvirt=94ded36b3fdde0c68f47ccfad4afa21fe4996fa5
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 02 Dec 2023 17:21:56 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-arm64-arm64-libvirt-qcow2 17 guest-start/debian.repeat fail pass in 183975-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183944
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183944
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183944
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-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-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              d8de4f2770fbe5195f92c0e142a1921c2a1d8ed9
baseline version:
 libvirt              94ded36b3fdde0c68f47ccfad4afa21fe4996fa5

Last test of basis   183944  2023-11-30 04:22:11 Z    2 days
Testing same since   183972  2023-12-02 04:22:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrea Bolognani <abologna@redhat.com>
  Daniel P. BerrangÃ© <berrange@redhat.com>
  Fedora Weblate Translation <i18n@lists.fedoraproject.org>
  GÃ¶ran Uddeborg <goeran@uddeborg.se>
  Jiri Denemark <jdenemar@redhat.com>
  Peter Krempa <pkrempa@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               fail    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   94ded36b3f..d8de4f2770  d8de4f2770fbe5195f92c0e142a1921c2a1d8ed9 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 20:35:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 20:35:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646202.1008636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Wi7-0000CD-1z; Sat, 02 Dec 2023 20:35:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646202.1008636; Sat, 02 Dec 2023 20: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 1r9Wi6-0000C6-VN; Sat, 02 Dec 2023 20:35:34 +0000
Received: by outflank-mailman (input) for mailman id 646202;
 Sat, 02 Dec 2023 20:35: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 1r9Wi5-0000Bw-6P; Sat, 02 Dec 2023 20:35: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 1r9Wi4-0005EV-SI; Sat, 02 Dec 2023 20:35: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 1r9Wi4-0006of-GG; Sat, 02 Dec 2023 20:35:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9Wi4-0003F0-Fr; Sat, 02 Dec 2023 20:35: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=GW0r20gLlyad4kVDbrSVLKt/QYZNmfQITTsoCBHUPYU=; b=GLqUe+kGFJs91tyIyVGUBXZcBO
	GelORZaVCILW6JAx84ekvy89sxByu15nNRIqdKwmjWMgLmVYCHFoY6Z8hKTQPURI3i60MEMP+FpMZ
	TxSyqAsZL/Zkzk4lfHr11oVlm9qxIwmS+Wwj2mN5Jd3fiHSUusTXI5aojLXt2qH+Y/pU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183973-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183973: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot: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-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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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: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: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:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-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-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-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-qcow2: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
X-Osstest-Versions-That:
    linux=c1c09da07c550971a1764a113963533dcc8e4d2a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 02 Dec 2023 20:35:32 +0000

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

Failures :-/ but no regressions.

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

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 183976 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 183976 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183969
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183969
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183969
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183969
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183969
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183969
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183969
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183969
 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          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          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-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-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-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-qcow2 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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9
baseline version:
 linux                c1c09da07c550971a1764a113963533dcc8e4d2a

Last test of basis   183969  2023-12-01 21:42:21 Z    0 days
Testing same since   183973  2023-12-02 07:48:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abdul Halim, Mohd Syazwan <mohd.syazwan.abdul.halim@intel.com>
  Alex Deucher <alexander.deucher@amd.com>
  Alex Sierra <alex.sierra@amd.com>
  Alvin Lee <alvin.lee2@amd.com>
  AndrÃ© Draszik <andre.draszik@linaro.org>
  Ard Biesheuvel <ardb@kernel.org>
  Ayush Jain <ayush.jain3@amd.com>
  Bart Van Assche <bvanassche@acm.org>
  Camille Cho <camille.cho@amd.com>
  Candice Li <candice.li@amd.com>
  Catalin Marinas <catalin.marinas@arm.com>
  Christian KÃ¶nig <christian.koenig@amd.com>
  Christoph Hellwig <hch@lst.de>
  Christoph Niedermaier <cniedermaier@dh-electronics.com>
  Damien Le Moal <dlemoal@kernel.org>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Mentz <danielmentz@google.com>
  Daniel Vetter <daniel@ffwll.ch>
  Daniel Wheeler <daniel.wheeler@amd.com>
  Danilo Krummrich <dakr@redhat.com>
  Dave Airlie <airlied@redhat.com>
  Dave Jiang <dave.jiang@intel.com>
  Dinghao Liu <dinghao.liu@zju.edu.cn>
  Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
  Dmytro Laktyushkin <dmytro.laktyushkin@amd.com>
  Ewan D. Milne <emilne@redhat.com>
  Felix Kuehling <Felix.Kuehling@amd.com>
  Gautham R. Shenoy <gautham.shenoy@amd.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Gustavo A. R. Silva <gustavoars@kernel.org>
  Hamza Mahfooz <hamza.mahfooz@amd.com>
  Hans de Goede <hdegoede@redhat.com>
  Hawking Zhang <Hawking.Zhang@amd.com>
  Huang Rui <ray.huang@amd.com>
  Ilya Bakoulin <ilya.bakoulin@amd.com>
  Jani Nikula <jani.nikula@intel.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Jens Axboe <axboe@kernel.dk>
  Joerg Roedel <jroedel@suse.de>
  Jonathan Kim <jonathan.kim@amd.com>
  Kailang Yang <kailang@realtek.com>
  Keith Busch <kbusch@kernel.org>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Kunwu Chan <chentao@kylinos.cn>
  Li Ma <li.ma@amd.com>
  Lijo Lazar <lijo.lazar@amd.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Liu Ying <victor.liu@nxp.com>
  Lu Baolu <baolu.lu@linux.intel.com>
  Lu Yao <yaolu@kylinos.cn>
  Lukasz Luba <lukasz.luba@arm.com>
  Luo Yuzhang <yuzhang.luo@intel.com> # QAT
  Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  Mario Limonciello <mario.limonciello@amd.com>
  Mark O'Donovan <shiftee@posteo.net>
  Mark Rutland <mark.rutland@arm.com>
  Markus Weippert <markus@gekmihesg.de>
  Martin K. Petersen <martin.petersen@oracle.com>
  Maurizio Lombardi <mlombard@redhat.com>
  Maxime Ripard <mripard@kernel.org>
  Michael Strauss <michael.strauss@amd.com>
  Mike Snitzer <snitzer@kernel.org>
  Mikulas Patocka <mpatocka@redhat.com>
  Ming Lei <ming.lei@redhat.com>
  Mukul Joshi <mukul.joshi@amd.com>
  Neil Armstrong <neil.armstrong@linaro.org>
  Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
  Perry Yuan <perry.yuan@amd.com>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Peter Wang <peter.wang@mediatek.com>
  Prike Liang <Prike.Liang@amd.com>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Robin Murphy <robin.murphy@arm.com>
  Roman Li <Roman.Li@amd.com>
  Stefan Binding <sbinding@opensource.cirrus.com>
  Stephan Gerhold <stephan.gerhold@kernkonzept.com>
  Sung Joon Kim <sungkim@amd.com>
  Taimur Hassan <syed.hassan@amd.com>
  Takashi Iwai <tiwai@suse.de>
  Thierry Reding <treding@nvidia.com>
  Thomas HellstrÃ¶m <thomas.hellstrom@linux.intel.com>
  Thomas Zimmermann <tzimmermann@suse.de>
  Tim Huang <Tim.Huang@amd.com>
  Tom Chung <chiahsuan.chung@amd.com>
  Tony Zhu <tony.zhu@intel.com> # DSA
  Tvrtko Ursulin <tvrtko.ursulin@intel.com>
  Vasiliy Kovalev <kovalev@altlinux.org>
  Vignesh Chander <vignesh.chander@amd.com>
  Ville SyrjÃ¤lÃ¤ <ville.syrjala@linux.intel.com>
  Viresh Kumar <viresh.kumar@linaro.org>
  Wenjing Liu <wenjing.liu@amd.com>
  Will Deacon <will@kernel.org>
  Wu Bo <bo.wu@vivo.com>
  Wyes Karny <wyes.karny@amd.com>
  xiazhengqiao <xiazhengqiao@huaqin.corp-partner.google.com>
  Yang Yingliang <yangyingliang@huawei.com>
  Yu Kuai <yukuai3@huawei.com>
  ZhenGuo Yin <zhenguo.yin@amd.com>
  Zhongwei <zhongwei.zhang@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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   c1c09da07c55..815fb87b7530  815fb87b753055df2d9e50f6cd80eb10235fe3e9 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 21:00:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 21:00:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646211.1008646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9X5v-0004LA-Vq; Sat, 02 Dec 2023 21:00:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646211.1008646; Sat, 02 Dec 2023 21: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 1r9X5v-0004L3-TA; Sat, 02 Dec 2023 21:00:11 +0000
Received: by outflank-mailman (input) for mailman id 646211;
 Sat, 02 Dec 2023 21:00:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XI5v=HN=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1r9X5t-0004Kv-S0
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 21:00:09 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id c51b3d7e-9155-11ee-9b0f-b553b5be7939;
 Sat, 02 Dec 2023 22:00:07 +0100 (CET)
Received: from mg.gitlab.com (28.226.74.34.bc.googleusercontent.com
 [34.74.226.28]) by
 cc512b78074d with SMTP id 656b9ad589d7592b54e48028 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Sat, 02 Dec 2023 21:00:05 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: c51b3d7e-9155-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701550805; x=1701558005; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=psaRV2J1tfx9ktIvLLpBXNLW+0qpF1JrZaOq0TMXKXc=;
 b=jKSpShquDFd61Q8oFI7pGKhvkuEO8DH8jIzfsqNxvxM9Ws+nVWNLu/7bxWtumjtyGxzH5ehSCoPHxlaOp42pmI+JSme6FToqsLfSKy2kqZkAZP9rvFC1GcvEz8CPyhMnRRShUrdNrgtoQk7sMDYjC8lkt5TUgmRCkj6VUCQx3OY=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Sat, 02 Dec 2023 21:00:04 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656b9ad4c0656_2c9b1b813232d@gitlab-sidekiq-catchall-v2-744664b889-4scj5.mail>
Subject: xen | Failed pipeline for staging | 525c7c09
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656b9ad4ad671_2c9b1b813228";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1092667236
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656b9ad4ad671_2c9b1b813228
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1092667236 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 525c7c09 ( https://gitlab.com/xen-project/xen/-/commit/525c7c094b258e8a46b494488eef96f5670eb352 )
Commit Message: xen/arm: Move static event channel feature to a...
Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
Committed by: Julien Grall


Pipeline #1092667236 ( https://gitlab.com/xen-project/xen/-/pipelines/1092667236 ) triggered by Ganis ( https://gitlab.com/ganis )
had 3 failed jobs.

Job #5664669062 ( https://gitlab.com/xen-project/xen/-/jobs/5664669062/raw )

Stage: test
Name: zen3p-smoke-x86-64-gcc-debug
Job #5664669074 ( https://gitlab.com/xen-project/xen/-/jobs/5664669074/raw )

Stage: test
Name: zen3p-smoke-x86-64-dom0pvh-gcc-debug
Job #5664669076 ( https://gitlab.com/xen-project/xen/-/jobs/5664669076/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 525c7c09</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1092667236 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/525c7c094b258e8a46=
b494488eef96f5670eb352" style=3D"color: #3777b0; text-decoration: none;">=

525c7c09
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: Move static event channel feature to a...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/47e2f2ac4637bce0cc380dba59a9412f?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/orzelmichal" style=3D"color=
: #333333; text-decoration: none;">
Michal Orzel
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1092667236">#1092667236</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 3 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5664669062" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-smoke-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5664669074" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-smoke-x86-64-dom0pvh-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5664669076" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656b9ad4ad671_2c9b1b813228--


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 21:47:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 21:47:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646258.1008656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Xp3-0001u8-Ht; Sat, 02 Dec 2023 21:46:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646258.1008656; Sat, 02 Dec 2023 21:46:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Xp3-0001u1-F8; Sat, 02 Dec 2023 21:46:49 +0000
Received: by outflank-mailman (input) for mailman id 646258;
 Sat, 02 Dec 2023 21:46:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pE22=HN=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1r9Xp1-0001tv-LU
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 21:46:47 +0000
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com
 [66.111.4.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 482a6787-915c-11ee-98e5-6d05b1d4d9a1;
 Sat, 02 Dec 2023 22:46:44 +0100 (CET)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44])
 by mailout.nyi.internal (Postfix) with ESMTP id 4F3AD5C00B3;
 Sat,  2 Dec 2023 16:46:42 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute4.internal (MEProxy); Sat, 02 Dec 2023 16:46:42 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 2 Dec 2023 16:46:41 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 482a6787-915c-11ee-98e5-6d05b1d4d9a1
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:sender:subject:subject:to:to; s=fm1; t=
	1701553602; x=1701640002; bh=SUki6GjD0JpSAb3vZ0SSAXCuM0HuNlOTJMe
	KHt4lqV0=; b=BdBmSz/L8KFt8vwkM+g505ziRyssjI7gciiK/4mjBvHcK2RsbxD
	634fwXPtFBlllpoeIAZIgplq9Dn0MhvyU+YGaR4PQI+xgMPjj+KovjP++VKykGta
	g5Kn6qXgsY7H5dnikY09iC7upDxznNJfY9vWnMqhr2w/oShO6irZVWH/8PVBKeor
	lQAWFlTA+kQqW+LLh7J6IrK6VZOfkNAlvg2SdGlsqujN/ZtkokjgnyRoPT7O0vlX
	1lxIhE5aOn0znuiwxFprUDQQ9hU59dlbtVIHGdLDn/jSQ23kUlQA7KT7pVwyql0j
	dnCu5HkF7BftEVVfBhZNMDEG8lTDNKSwmLw==
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:sender:subject
	:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm1; t=1701553602; x=1701640002; bh=SUki6GjD0JpSA
	b3vZ0SSAXCuM0HuNlOTJMeKHt4lqV0=; b=PMUL3AclGsCP3aQZUNaK1Srx8rtm7
	ViEi5Vl9RxIt4IxxKEm6o3C3MOAVH0LzHcDEixYJ88sXGLtLiWsV8duTWn/7k3DQ
	mjR70FQWXXM1vz5F4/3iZdOvAbc4gil0D4YFOTVL76X9xsS4mQ+QZLL3xRdPLkue
	OvWa3yKnarHFY10Fj+M4LYW6xCALSc6pWK8HRfDT6hxodMdb3VTV5rSfrFE+sY8g
	j8YVMvCjKsopb30NsS25rxkaCGarDF9FMz7kh/WCi3dltfit50BzuYt36xs7gAK1
	eubSSWX77NrSZOaiJL0/JcEq6NY+9UpoSFOH0TtZ+hVnrV2rdAp5fZz+A==
X-ME-Sender: <xms:wqVrZU3UedjdP769zrFw4b5J3HcRDY1XsqjPqVKiBZ8EHgDrixnW1A>
    <xme:wqVrZfGujmWxqbCHWQiK9uu0N0MOSEGYqW1aP5n1kuUfP4o2iESXxXpQwHSSKU6LK
    DhbbXGnvdJErQ>
X-ME-Received: <xmr:wqVrZc5aearkNa4gkWIASk4ZOKo0Oc0rADPNff6BM-UMbXb66ad85t58L13DjBWxyWPWTCfzI6q7ihmloTimUoKPVGfYEjCLcVk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudejuddgudehfecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
    necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
    enucfjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghr
    vghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesih
    hnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefg
    udelteefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlh
    hushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgv
    khesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:wqVrZd0pDDxcbGigki61MJ83f30WXHm7BL5aMdR9_Am42uajeoVVfQ>
    <xmx:wqVrZXElyvjJl6ff2QKTPdGi3KZWrd3nYJJ8NmprRsK0i4Az62rfzg>
    <xmx:wqVrZW8TyI4hAkcf5bIBb4t_mETN3K5ZcLxw8AsWx5T_Kz513QC2Gw>
    <xmx:wqVrZexupR1qgd16cPXTSQngWZYw8HY_D2MzhJVTuG9otmx7rMlf8Q>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 2 Dec 2023 22:46:38 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Linux 6.7-rc1+: WARNING at drivers/xen/evtchn.c:167
 evtchn_interrupt
Message-ID: <ZWulvo8Frbm2WNEk@mail-itl>
References: <ZWf0sWey05VnpH7X@mail-itl>
 <258abfda-5f71-4e75-a3a5-abdad85a85f3@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Rr1ym04J3vGeYfwG"
Content-Disposition: inline
In-Reply-To: <258abfda-5f71-4e75-a3a5-abdad85a85f3@suse.com>


--Rr1ym04J3vGeYfwG
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 2 Dec 2023 22:46:38 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Linux 6.7-rc1+: WARNING at drivers/xen/evtchn.c:167
 evtchn_interrupt

On Fri, Dec 01, 2023 at 09:29:30AM +0100, Juergen Gross wrote:
> Hi Marek,
>=20
> On 30.11.23 03:34, Marek Marczykowski-G=C3=B3recki wrote:
> > Hi,
> >=20
> > While testing 6.7-rc3 on Qubes OS I found several warning like in the
> > subject in dom0 log. I see them when running 6.7-rc1 too. I'm not sure
> > what exactly triggers the issue, but my guess would be unbinding an
> > event channel from userspace (closing vchan connection).
> >=20
> > Specific message:
> >=20
> > [   83.973377] ------------[ cut here ]------------
> > [   83.975523] Interrupt for port 77, but apparently not enabled; per-u=
ser 00000000a0e9f1d1
>=20
> Just a guess, but I think this might happen when the vchan connection
> is closed while there is still some traffic. This could result in events
> triggering in parallel to unbinding the event channel.
>=20
> Could you please test the attached patch (only compile tested)?

Unfortunately that doesn't help, I get exactly the same traceback.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmVrpb4ACgkQ24/THMrX
1ywpMwf/Zezy87gjaRQddAkK1AEyoFPk7kSEuGbSdUxC3HZumzXkkisRRFgnTAm3
OEk+vb0uZYO2ooSzzHGSWdRtMHWLXrPU8R/nnWcwuxN3BJd1mKXg4jgN7qWEcBoo
UgtPhzzrIcorc4U36NkiFeYgU/5x+3znJ3/KTlMhUuKxztewsR1f1R2jp77NkHIy
m2Vpk7vTYe/sfVHLzrbT4dRdLOj6ALIC+nCTCkxyp92AP95ciCw3YY1lWNZxTA0a
FZsks5sVJJyi9+h4gk6bl39ymSnx5+N0/oHajDL9rJh4OjsKVreT3m2KXJlDoLu5
GL6/NoYevgznZXxOEoz+DghSTPjFwQ==
=lqOa
-----END PGP SIGNATURE-----

--Rr1ym04J3vGeYfwG--


From xen-devel-bounces@lists.xenproject.org Sat Dec 02 23:53:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Dec 2023 23:53:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646275.1008665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Zn1-000126-Fr; Sat, 02 Dec 2023 23:52:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646275.1008665; Sat, 02 Dec 2023 23:52:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9Zn1-00011z-DK; Sat, 02 Dec 2023 23:52:51 +0000
Received: by outflank-mailman (input) for mailman id 646275;
 Sat, 02 Dec 2023 23:52:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=E4Jt=HN=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1r9Zmz-00011s-Ha
 for xen-devel@lists.xenproject.org; Sat, 02 Dec 2023 23:52:49 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5015838-916d-11ee-98e5-6d05b1d4d9a1;
 Sun, 03 Dec 2023 00:52:47 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id EF28AB806A0;
 Sat,  2 Dec 2023 23:52:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 8998CC433CB;
 Sat,  2 Dec 2023 23:52:45 +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
 71A79DFAA94; Sat,  2 Dec 2023 23:52:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5015838-916d-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701561165;
	bh=GGIa3n94kqspY3wZ09hTkEhBVKQgLDRVe/WLvBfgyog=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=vKIFlWmWKpyTnv6FAwBIG37v+3D6T5smIZt3Mx7pmhw+sPbseKa4Dyq5e/D6b286k
	 8Y7mjMoQ+CZ8k7384R01Y+JIySwCYZSCp/irRr7EtAvlqbcqxajoI5LwlrV1Hfaxp9
	 eO1tlkt19UcabFH06nneB9bVL/OLpy0zQwhAaVrcAwXNJkCK3/Tysou3yvxiwD/Spm
	 8rtm2nHM/gvtjDn9wbIFzS40CUGzeaGXyl7vjRZ31iIhxVJTnQU1OYSz9wzB3hu/iW
	 Q4xliOTzyJTfyYIgzhSxMTzhaV5J/nvFoyuCcswh3SJXG8BKlwmG+m/ESlK6gsadql
	 EKWpcSTqw/iOw==
Subject: Re: [GIT PULL] xen: branch for v6.7-rc4
From: pr-tracker-bot@kernel.org
In-Reply-To: <20231202072359.30587-1-jgross@suse.com>
References: <20231202072359.30587-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20231202072359.30587-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.7a-rc4-tag
X-PR-Tracked-Commit-Id: 7f3da4b698bcc21a6df0e7f114af71d53a3e26ac
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: deb4b9dd3b539c8331bbc0d64dff3b4fb57296ef
Message-Id: <170156116546.30388.4620138403094279812.pr-tracker-bot@kernel.org>
Date: Sat, 02 Dec 2023 23:52:45 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, sstabellini@kernel.org

The pull request you sent on Sat,  2 Dec 2023 08:23:59 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.7a-rc4-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/deb4b9dd3b539c8331bbc0d64dff3b4fb57296ef

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Sun Dec 03 01:19:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Dec 2023 01:19:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646281.1008676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9b8h-0002so-Of; Sun, 03 Dec 2023 01:19:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646281.1008676; Sun, 03 Dec 2023 01: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 1r9b8h-0002sh-Lb; Sun, 03 Dec 2023 01:19:19 +0000
Received: by outflank-mailman (input) for mailman id 646281;
 Sun, 03 Dec 2023 01: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 1r9b8f-0002sX-Vs; Sun, 03 Dec 2023 01:19: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 1r9b8f-0000gc-Js; Sun, 03 Dec 2023 01:19: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 1r9b8e-0005pU-S9; Sun, 03 Dec 2023 01:19:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9b8e-0005lO-Rd; Sun, 03 Dec 2023 01:19:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4oOOrhAebrKLdmOiWs7bRKP7bgTXYpFFItLlSkyCmzM=; b=cX25RQEtgsKghLt6KjvMfd5RXM
	BVlh73Eou6RpbNwzzyqGuEocTY80kNoVpT+9ytt/cR381UG1hdy7sPXNgs5L2iGmApK5gsMakFlzO
	WUHzguy1EN6fZn4M883anksWg/HUuUknI1CRIS5viZXu0psyRL/YA79FeSwbnYOuRQww=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183974-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 183974: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt-raw:debian-di-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-amd64-amd64-libvirt: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-amd64-amd64-libvirt-vhd:migrate-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-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
X-Osstest-Versions-That:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 03 Dec 2023 01:19:16 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-raw 12 debian-di-install          fail pass in 183971
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install    fail pass in 183971

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail in 183971 blocked in 183974
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop fail in 183971 blocked in 183974
 test-armhf-armhf-libvirt-raw 14 migrate-support-check fail in 183971 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183971
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183971
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183971
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183971
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183971
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183971
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183971
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183971
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183971
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183971
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-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-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-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-amd64-i386-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     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
 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-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352
baseline version:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352

Last test of basis   183974  2023-12-02 10:51:09 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 03 07:55:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Dec 2023 07:55:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646327.1008702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9hJj-0005mK-LT; Sun, 03 Dec 2023 07:55:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646327.1008702; Sun, 03 Dec 2023 07: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 1r9hJj-0005mD-Ha; Sun, 03 Dec 2023 07:55:07 +0000
Received: by outflank-mailman (input) for mailman id 646327;
 Sun, 03 Dec 2023 07:55: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 1r9hJi-0005m3-F7; Sun, 03 Dec 2023 07:55: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 1r9hJi-0000kO-6n; Sun, 03 Dec 2023 07:55: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 1r9hJh-0007Fs-Kj; Sun, 03 Dec 2023 07:55:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9hJh-0007TV-JU; Sun, 03 Dec 2023 07:55:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+2zUpx7Y+4wVVJuCjlq1Zl2uV85ptw5lpH6zIksKgPE=; b=5PBfYhEfR7c3M1ITjRTK0+gWn8
	6dMgmor/9nshMeuh6iPTI6nkck/SDJsdGigi2XVfozEdzujlRhXBB5TyHoEFNHz6RpvUrBOqA1n+W
	45AZkSlVbFFdlmzG96JSwemaGeRH+0D9hQ5z9Rc241U8tHt2ziomLMEDcRSeWII5fv8Y=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183977-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183977: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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: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: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:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-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-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: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=1b8af6552cb7c9bf1194e871f8d733a19b113230
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 03 Dec 2023 07:55:05 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Regressions which are regarded as allowable (not blocking):
 test-armhf-armhf-xl-rtds      8 xen-boot                 fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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          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          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-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-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-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-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-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                1b8af6552cb7c9bf1194e871f8d733a19b113230
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    1 days
Testing same since   183977  2023-12-03 00:12:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Jens Axboe <axboe@kernel.dk>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Nicholas Piggin <npiggin@gmail.com>
  Sean Christopherson <seanjc@google.com>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 533 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Dec 03 08:01:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Dec 2023 08:01:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646335.1008711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9hQF-00085J-Lx; Sun, 03 Dec 2023 08:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646335.1008711; Sun, 03 Dec 2023 08: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 1r9hQF-00085C-JT; Sun, 03 Dec 2023 08:01:51 +0000
Received: by outflank-mailman (input) for mailman id 646335;
 Sun, 03 Dec 2023 08:01: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 1r9hQE-000852-Gk; Sun, 03 Dec 2023 08:01: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 1r9hQE-0001Qq-Ci; Sun, 03 Dec 2023 08:01: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 1r9hQD-0007Vl-TG; Sun, 03 Dec 2023 08:01:49 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9hQD-0002eb-Ss; Sun, 03 Dec 2023 08:01: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=1C+5w3o6puKje70raQmfWNFaLapGTGtOqk434MSabQM=; b=CIGzZAOI1vkyS+mLlv7VPHwIQi
	aRel37ARnwHH1Bv0vXukdVxrRC90kkgkvMUunshKUObAhHXuPy1h3MFqSzXbtIJ8/DJDUdEGcdygP
	tK/SlCzAXtIZZPUosDrom/2TmGqzc+GpI2rDEL9DhFZhtK2d7zI2WSZsaqtPPGbXojY4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183979-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 183979: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=3e133f730b69a2b5a5cb875ed27e0439053663c4
X-Osstest-Versions-That:
    ovmf=70b174e24db4a6de1590fda65846074dcb9fd7d3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 03 Dec 2023 08:01:49 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 3e133f730b69a2b5a5cb875ed27e0439053663c4
baseline version:
 ovmf                 70b174e24db4a6de1590fda65846074dcb9fd7d3

Last test of basis   183966  2023-12-01 15:11:04 Z    1 days
Testing same since   183979  2023-12-03 02:41:27 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Pedro Falcato <pedro.falcato@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    
 test-amd64-i386-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
   70b174e24d..3e133f730b  3e133f730b69a2b5a5cb875ed27e0439053663c4 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sun Dec 03 12:07:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Dec 2023 12:07:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646372.1008722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9lFy-0004LS-N7; Sun, 03 Dec 2023 12:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646372.1008722; Sun, 03 Dec 2023 12:07: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 1r9lFy-0004LL-KC; Sun, 03 Dec 2023 12:07:30 +0000
Received: by outflank-mailman (input) for mailman id 646372;
 Sun, 03 Dec 2023 12:07: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 1r9lFw-0004LB-VB; Sun, 03 Dec 2023 12:07: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 1r9lFw-0005jm-ER; Sun, 03 Dec 2023 12:07: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 1r9lFv-0003N7-Sh; Sun, 03 Dec 2023 12:07:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9lFv-0007Fx-Rp; Sun, 03 Dec 2023 12:07: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=67KSq5ain2nydHCggxbZDEU/rwFTWyS4+Yz1pRGP1Qs=; b=KTxFKKkVvSxRHnGav/fGAj6wxe
	UrriHC9lBAG8H/PDV4qtAv4vpPiWWjv+p/mcps27BAdrqrtrO1vCtFKHJG9vIi8R8L/OMsS77qWlX
	Khj9hFS7jDDp6U8TigrDc2GOvWX26vTx6w3u1XiSm6tVu/fa0omHQb0dw1WOgo6SI/9o=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183978-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 183978: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt-raw:debian-di-install:fail:heisenbug
    xen-unstable:test-amd64-i386-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:guest-start/debianhvm.repeat:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-amd64-amd64-libvirt: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-amd64-amd64-libvirt-vhd:migrate-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-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
X-Osstest-Versions-That:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 03 Dec 2023 12:07:27 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-raw 12 debian-di-install fail in 183974 pass in 183978
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 183974
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 20 guest-start/debianhvm.repeat fail pass in 183974

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183971
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183974
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183974
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183974
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183974
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183974
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183974
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183974
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183974
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183974
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183974
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install       fail like 183974
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-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-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-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-amd64-i386-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     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
 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-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352
baseline version:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352

Last test of basis   183978  2023-12-03 01:57: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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 03 15:52:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Dec 2023 15:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646355.1008731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9olR-0006mZ-3L; Sun, 03 Dec 2023 15:52:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646355.1008731; Sun, 03 Dec 2023 15:52:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9olR-0006mS-0Y; Sun, 03 Dec 2023 15:52:13 +0000
Received: by outflank-mailman (input) for mailman id 646355;
 Sun, 03 Dec 2023 09:56: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=7la4=HO=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1r9jD8-0005Y5-Dp
 for xen-devel@lists.xenproject.org; Sun, 03 Dec 2023 09:56:26 +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 35989358-91c2-11ee-9b0f-b553b5be7939;
 Sun, 03 Dec 2023 10:56:21 +0100 (CET)
Received: by mail-oo1-xc29.google.com with SMTP id
 006d021491bc7-58d3c9badf5so2480486eaf.1
 for <xen-devel@lists.xenproject.org>; Sun, 03 Dec 2023 01:56:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35989358-91c2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701597379; x=1702202179; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=mGJ3yZsGs1MFG7BrUM8YKKYWJWsKOJNVUcdh1HBEF9A=;
        b=Swq+ckriopO3z0P/tCT6ufcTC+iZOhBzgbIzP91Bp6q/hmuAn4mga0RrJF4LHAkE+C
         GsDCLEOF9I7pKfRhvIR9Km+49azvOdQ7+XbKzsB3tE456HpGsuiTg5H+u+K5PqKCFpFG
         3PdiPSOpTmCENhUQwPlqVOE00esqFkmZtDTOyXQ4ZM5yVyxU52JEk0R9tIfEMN7Emn1L
         d502tXDEyPfh9hHNpG7z+ZHPg4KzGO/gFlhF4S79UErzDOMSZR+bwJjEv0afNhJ5qLlL
         hqlzH+B8bei+6xVRG8PpiLFICp1kX2ffU/sJ6k2ltwANuP99elBNQxNFJ6jtWxWMmMON
         VNKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701597379; x=1702202179;
        h=to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=mGJ3yZsGs1MFG7BrUM8YKKYWJWsKOJNVUcdh1HBEF9A=;
        b=KC34Mk0FBWO+L9pELzvnd2ZF7ppt9WqpsN/kk9BZqDHy0bZZhjtF5yHvSiHSh1Klya
         1PQaVX3zIW5vPsOczARoDs+G/oV0xZoH2ESV1B82upXMC8Q/nn2nYi86kbIghS71VaST
         qTbZ9LeodIVDOanbbaa+DXaaRxRC4M2i1rQ61vElIi2lYZbnHrnSoB28VTAdITHrFfCf
         df70YZrWcKTbYjGH0GC6jgb2U2msYxXibOkX3eQJflyVBEQZSv6tP91Peo7cc8osh7LO
         VrRqcMNzcgEGdqeKRmfq7W/Z0Yl+B1IzjRaSx85t2URPXPRlih0IoCiIVVZIeis7RHSM
         7lNw==
X-Gm-Message-State: AOJu0YwVgcDBMmAGCsdVgT1mh1nTjywzr+BXtlVkR1tNDb0+bs3wgNtf
	TUH/C0LXhSFVXVbm5Y2JivhJ3p5AzdoVbPVc3ElOd7F2T0M=
X-Google-Smtp-Source: AGHT+IEMzxSnbHcBAd4JO8MSf0lge+LXga8ZqeuuTQE/jhmXxP+dj0ZC7S1xtazj+AifDgz9e+F4ggWMiNEe2oJTmm8=
X-Received: by 2002:a05:6358:cb1a:b0:170:17eb:2057 with SMTP id
 gr26-20020a056358cb1a00b0017017eb2057mr2092732rwb.64.1701597379205; Sun, 03
 Dec 2023 01:56:19 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Sun, 3 Dec 2023 10:56:08 +0100
Message-ID: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
Subject: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000569c7d060b98038f"

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

Hello,

 Trying to get the Framework Laptop 13 AMD to work with QubesOS I hit the
following Xen issue :

Xen version : 4.17.2
Kernel : 6.5.12-300.fc39.x86_64
CPU  model name : AMD Ryzen 7 7840U w/ Radeon  780M Graphics

The touchpad is not working (not detected by evtest) because ( see below
for XXXXXXX values) :
[   10.215870] i2c_hid_acpi i2c-FRMXXXXXXX: failed to reset device: -61

which is maybe related to the previous messages :

[    2.065750] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
...
[    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt

QubesOS issue : https://github.com/QubesOS/qubes-issues/issues/8734

Possibly related issues :

 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1971597

Here's the complete diff of dmesg with and without xen loaded up to the
failed i2c_hid_acpi init :

[    0.000000] Command line: placeholder
root=3DUUID=3D71b1dc59-ea00-484c-b5e4-ee77ede771db ro rhgb quiet
[    0.000000] Released 0 page(s)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: ACPI=3D0x5affe000 ACPI 2.0=3D0x5affe014
TPMFinalLog=3D0x5af3f000 SMBIOS=3D0x51677000 SMBIOS 3.0=3D0x51674000
(MEMATTR=3D0x4b719018 unusable) ESRT=3D0x5af9b018 MOKvar=3D0x5187c000
[    0.000000] Hypervisor detected: Xen PV
[    0.026644] tsc: Detected 3294.105 MHz processor
[    0.026645] tsc: Detected 3293.856 MHz TSC
[    0.026732] MTRR map: 3 entries (0 fixed + 3 variable; max 16), built
from 8 variable MTRRs
[    0.026733] MTRRs set to read-only
[    0.026735] x86/PAT: Configuration [0-7]: WB  WT  UC- UC  WC  WP  UC  UC

[    0.026753] esrt: Reserving ESRT space from 0x000000005af9b018 to
0x000000005af9b050.
[    1.042047] ACPI: BGRT 0x000000005AFB8000 000038 (v01 INSYDE EDK2
00000002 ACPI 00040000)
[    1.042095] Setting APIC routing to Xen PV.
[    1.042116] NUMA turned off
[    1.101730] On node 0, zone DMA: 128 pages in unavailable ranges
[    1.136828] p2m virtual area at (____ptrval____), size is 40000000
[    1.401457] Remapped 728641 page(s)
[    1.402499] Booting kernel on Xen
[    1.402500] Xen version: 4.17.2 (preserve-AD)
[    1.406607] xen: PV spinlocks enabled
[    1.406609] PV qspinlock hash table entries: 256 (order: 0, 4096 bytes,
linear)
[    1.406610] Kernel command line: placeholder
root=3DUUID=3D71b1dc59-ea00-484c-b5e4-ee77ede771db ro rhgb quiet
[    1.406661] Unknown kernel command line parameters "placeholder rhgb",
will be passed to user space.
[    1.406867] random: crng init done
[    1.411447] Built 1 zonelists, mobility grouping on.  Total pages:
15403418
[    1.497107] Memory: 60184272K/62591736K available (18432K kernel code,
3267K rwdata, 14476K rodata, 4532K init, 17364K bss, 2407212K reserved, 0K
cma-reserved)
[    1.508627] xen:events: Using FIFO-based ABI
[    1.508634] xen: --> pirq=3D1 -> irq=3D1 (gsi=3D1)
[    1.508636] xen: --> pirq=3D2 -> irq=3D2 (gsi=3D2)
[    1.508638] xen: --> pirq=3D3 -> irq=3D3 (gsi=3D3)
[    1.508639] xen: --> pirq=3D4 -> irq=3D4 (gsi=3D4)
[    1.508640] xen: --> pirq=3D5 -> irq=3D5 (gsi=3D5)
[    1.508642] xen: --> pirq=3D6 -> irq=3D6 (gsi=3D6)
[    1.508643] xen: --> pirq=3D7 -> irq=3D7 (gsi=3D7)
[    1.508644] xen: --> pirq=3D8 -> irq=3D8 (gsi=3D8)
[    1.508646] xen: --> pirq=3D9 -> irq=3D9 (gsi=3D9)
[    1.508647] xen: --> pirq=3D10 -> irq=3D10 (gsi=3D10)
[    1.508649] xen: --> pirq=3D11 -> irq=3D11 (gsi=3D11)
[    1.508650] xen: --> pirq=3D12 -> irq=3D12 (gsi=3D12)
[    1.508652] xen: --> pirq=3D13 -> irq=3D13 (gsi=3D13)
[    1.508653] xen: --> pirq=3D14 -> irq=3D14 (gsi=3D14)
[    1.508654] xen: --> pirq=3D15 -> irq=3D15 (gsi=3D15)
[    1.508913] printk: console [hvc0] enabled
[    1.543395] ACPI BIOS Warning (bug): Incorrect checksum in table [BGRT]
- 0xC1, should be 0x4C (20230331/utcksum-58)
[    1.543432] clocksource: xen: mask: 0xffffffffffffffff max_cycles:
0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    1.543434] Xen: using vcpuop timer interface
[    1.543436] installing Xen timer for CPU 0
[    1.543449] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles:
0x2f7aa0787ee, max_idle_ns: 440795321263 ns
[    1.543452] Calibrating delay loop (skipped), value calculated using
timer frequency.. 6587.71 BogoMIPS (lpj=3D3293856)
[    1.543485] Spectre V2 : Mitigation: Retpolines
[    1.543487] Spectre V2 : Spectre v2 / SpectreRSB : Filling RSB on VMEXIT
[    1.543489] Speculative Store Bypass: Vulnerable
[    1.543505] x86/fpu: Enabled xstate features 0xe7, context size is 2432
bytes, using 'compacted' format.
[    1.556516] cpu 0 spinlock event irq 57
[    1.556526] VPMU disabled by hypervisor.
[    1.556812] Performance Events: PMU not available due to virtualization,
using software events only.
[    1.559433] NMI watchdog: Perf NMI watchdog permanently disabled
[    1.559727] installing Xen timer for CPU 1
[    1.559965] installing Xen timer for CPU 2
[    1.560180] installing Xen timer for CPU 3
[    1.560396] installing Xen timer for CPU 4
[    1.560599] installing Xen timer for CPU 5
[    1.560813] installing Xen timer for CPU 6
[    1.561021] installing Xen timer for CPU 7
[    1.561230] installing Xen timer for CPU 8
[    1.561420] installing Xen timer for CPU 9
[    1.561597] installing Xen timer for CPU 10
[    1.561783] installing Xen timer for CPU 11
[    1.561980] installing Xen timer for CPU 12
[    1.562155] installing Xen timer for CPU 13
[    1.562327] installing Xen timer for CPU 14
[    1.562503] installing Xen timer for CPU 15
[    1.562551] cpu 1 spinlock event irq 137
[    1.562551] cpu 2 spinlock event irq 138
[    1.562551] cpu 3 spinlock event irq 139
[    1.562551] cpu 4 spinlock event irq 140
[    1.562551] cpu 5 spinlock event irq 141
[    1.562551] cpu 6 spinlock event irq 142
[    1.562551] cpu 7 spinlock event irq 143
[    1.562551] cpu 8 spinlock event irq 144
[    1.563499] cpu 9 spinlock event irq 145
[    1.563502] cpu 10 spinlock event irq 146
[    1.563502] cpu 11 spinlock event irq 147
[    1.563502] cpu 12 spinlock event irq 148
[    1.563502] cpu 13 spinlock event irq 149
[    1.563502] cpu 14 spinlock event irq 150
[    1.563502] cpu 15 spinlock event irq 151
[    1.573211] PM: RTC time: 09:08:20, date: 2023-12-03
[    1.573947] xen:grant_table: Grant tables using version 1 layout
[    1.573958] Grant table initialized
[    1.574502] audit: type=3D2000 audit(1701594499.512:1): state=3Dinitiali=
zed
audit_enabled=3D0 res=3D1
[    1.606054] xen: registering gsi 9 triggering 0 polarity 1
[    1.697597] xen: registering gsi 8 triggering 1 polarity 0
[    1.697705] xen: registering gsi 13 triggering 1 polarity 0
[    1.700360] xen: registering gsi 7 triggering 0 polarity 1
[    1.700819] xen: registering gsi 10 triggering 1 polarity 0
[    1.701110] xen: registering gsi 6 triggering 1 polarity 0
[    1.701690] xen: registering gsi 50 triggering 0 polarity 1
[    1.701706] xen: --> pirq=3D50 -> irq=3D50 (gsi=3D50)
[    1.701757] xen: registering gsi 51 triggering 0 polarity 1
[    1.701768] xen: --> pirq=3D51 -> irq=3D51 (gsi=3D51)
[    1.701810] xen: registering gsi 52 triggering 0 polarity 1
[    1.701818] xen: --> pirq=3D52 -> irq=3D52 (gsi=3D52)
[    1.701860] xen: registering gsi 53 triggering 0 polarity 1
[    1.701869] xen: --> pirq=3D53 -> irq=3D53 (gsi=3D53)
[    1.707071] xen:balloon: Initialising balloon driver
[    1.743187] resource: Expanded resource Reserved due to conflict with
PCI Bus 0000:00
[    1.743524] sysfb: VRAM smaller than advertised
[    1.759417] hugetlbfs: disabling because there are no supported hugepage
sizes
[    1.765826] xen: registering gsi 1 triggering 1 polarity 0
[    1.771944] PM-Timer failed consistency check  (0xffffff) - aborting.
[    1.775360] xen: registering gsi 40 triggering 0 polarity 1
[    1.775387] xen: --> pirq=3D40 -> irq=3D40 (gsi=3D40)
[    1.775481] xen: registering gsi 37 triggering 0 polarity 1
[    1.775494] xen: --> pirq=3D37 -> irq=3D37 (gsi=3D37)
[    1.775841] xen: registering gsi 38 triggering 0 polarity 1
[    1.775855] xen: --> pirq=3D38 -> irq=3D38 (gsi=3D38)
[    1.776235] xen: registering gsi 40 triggering 0 polarity 1
[    1.776238] Already setup the GSI :40
[    1.776281] xen: registering gsi 46 triggering 0 polarity 1
[    1.776293] xen: --> pirq=3D46 -> irq=3D46 (gsi=3D46)
[    1.776646] xen: registering gsi 47 triggering 0 polarity 1
[    1.776656] xen: --> pirq=3D47 -> irq=3D47 (gsi=3D47)
[    1.777614] clocksource: tsc: mask: 0xffffffffffffffff max_cycles:
0x2f7aa0787ee, max_idle_ns: 440795321263 ns
[    1.777677] clocksource: Switched to clocksource tsc
[    2.061207] pcieport 0000:00:02.2: PME: Signaling with IRQ 162
[    2.061369] pcieport 0000:00:02.4: PME: Signaling with IRQ 163
[    2.061604] pcieport 0000:00:03.1: PME: Signaling with IRQ 164
[    2.062263] pcieport 0000:00:04.1: PME: Signaling with IRQ 165
[    2.062813] pcieport 0000:00:08.1: PME: Signaling with IRQ 166
[    2.062953] xen: registering gsi 40 triggering 0 polarity 1
[    2.062967] Already setup the GSI :40
[    2.063063] pcieport 0000:00:08.2: PME: Signaling with IRQ 167
[    2.063213] pcieport 0000:00:08.3: PME: Signaling with IRQ 168
[    2.063345] efifb: probing for efifb
[    2.063985] efifb: No BGRT, not showing boot graphics
[    2.063986] efifb: framebuffer at 0x8800000000, using 13536k, total
13536k
[    2.063988] efifb: mode is 2256x1504x32, linelength=3D9216, pages=3D1
[    2.063989] efifb: scrolling: redraw
[    2.063990] efifb: Truecolor: size=3D8:8:8:8, shift=3D24:16:8:0
[    2.064032] fbcon: Deferring console take-over
[    2.064033] fb0: EFI VGA frame buffer device
[    2.065750] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.065860] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.066008] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.066140] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.066370] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.066586] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.066818] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.066923] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.067082] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.067170] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.067296] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.067473] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.067669] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.067973] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.068215] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.068522] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
(0x0)
[    2.068923] ACPI: thermal: Thermal Zone [TZ00] (26 C)
[    2.069085] ACPI: thermal: Thermal Zone [TZ01] (30 C)
[    2.069242] ACPI: thermal: Thermal Zone [TZ02] (28 C)
[    2.069402] ACPI: thermal: Thermal Zone [TZ03] (46 C)
[    2.072038] hpet_acpi_add: no address or irqs in _CRS
[    2.092763] xen: registering gsi 37 triggering 0 polarity 1
[    2.092769] Already setup the GSI :37
[    2.101751] xen: registering gsi 38 triggering 0 polarity 1
[    2.101755] Already setup the GSI :38
[    2.105493] xen: registering gsi 46 triggering 0 polarity 1
[    2.105496] Already setup the GSI :46
[    2.109521] xen: registering gsi 47 triggering 0 polarity 1
[    2.109525] Already setup the GSI :47
[    2.116721] rtc_cmos 00:01: setting system clock to 2023-12-03T09:08:21
UTC (1701594501)
[    2.117134] amd_pstate: driver load is disabled, boot with specific mode
to enable this
[    2.130271] input: AT Translated Set 2 keyboard as
/devices/platform/i8042/serio0/input/input2
[    2.138905] sched_clock: Marking stable (2104001974,
34790120)->(2142780210, -3988116)
[    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.465229] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.465462] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.465694] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.466003] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.466189] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.466387] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.466584] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    3.790268]     placeholder
[    3.809946] usb 1-2: New USB device found, idVendor=3D1e7d,
idProduct=3D2e22, bcdDevice=3D 1.01
[    3.809950] usb 1-2: New USB device strings: Mfr=3D1, Product=3D2,
SerialNumber=3D0
[    3.809952] usb 1-2: Product: ROCCAT Kone XTD
[    3.809953] usb 1-2: Manufacturer: ROCCAT
[    3.826019] systemd[1]: Detected virtualization vm-other.
[    3.941883] usb 1-4: new full-speed USB device number 3 using xhci_hcd
[    4.099853] usb 1-4: New USB device found, idVendor=3D27c6,
idProduct=3D609c, bcdDevice=3D 1.00
[    4.099862] usb 1-4: New USB device strings: Mfr=3D1, Product=3D2,
SerialNumber=3D3
[    4.099866] usb 1-4: Product: Goodix USB2.0 MISC
[    4.099869] usb 1-4: Manufacturer: Goodix Technology Co., Ltd.
[    4.099873] usb 1-4: SerialNumber: UIDD5F04A7B_XXXX_MOC_B0
[    4.193119] systemd[1]: Finished kmod-static-nodes.service - Create List
of Static Device Nodes.
[    4.221808] usb 1-5: new high-speed USB device number 4 using xhci_hcd
[    4.936497] xen: registering gsi 36 triggering 0 polarity 1
[    4.936543] xen: --> pirq=3D36 -> irq=3D36 (gsi=3D36)
[    4.948276] ccp 0000:c1:00.2: tee: ring init command failed (0x00000005)
[    4.948285] ccp 0000:c1:00.2: tee: failed to init ring buffer
[    4.948287] ccp 0000:c1:00.2: tee initialization failed
[    4.948302] ccp 0000:c1:00.2: psp initialization failed
[    5.018031] fbcon: Taking over console
[    5.018181] Console: switching to colour frame buffer device 282x94
[   10.215870] i2c_hid_acpi i2c-FRMW0005:00: failed to reset device: -61
[   10.215917] i2c_hid_acpi i2c-PIXA3854:00: failed to reset device: -61
[   10.215950] i2c_hid_acpi i2c-FRMW0004:00: failed to reset device: -61
[   10.220217] i2c_hid_acpi i2c-FRMW0004:00: failed to change power setting=
.
[   16.359856] i2c_hid_acpi i2c-PIXA3854:00: failed to reset device: -61
[   16.359856] i2c_hid_acpi i2c-FRMW0004:00: failed to reset device: -61
[   16.359871] i2c_hid_acpi i2c-FRMW0005:00: failed to reset device: -61
[   22.503879] i2c_hid_acpi i2c-FRMW0005:00: failed to reset device: -61
[   22.503915] i2c_hid_acpi i2c-PIXA3854:00: failed to reset device: -61
[   22.503921] i2c_hid_acpi i2c-FRMW0004:00: failed to reset device: -61
[   28.647874] i2c_hid_acpi i2c-FRMW0005:00: failed to reset device: -61
[   28.647879] i2c_hid_acpi i2c-PIXA3854:00: failed to reset device: -61
[   28.647910] i2c_hid_acpi i2c-FRMW0004:00: failed to reset device: -61
[   29.671873] i2c_hid_acpi i2c-FRMW0005:00: can't add hid device: -61
[   29.671874] i2c_hid_acpi i2c-FRMW0004:00: can't add hid device: -61
[   29.671874] i2c_hid_acpi i2c-PIXA3854:00: can't add hid device: -61
[   29.686460] i2c_hid_acpi: probe of i2c-FRMW0005:00 failed with error -61
[   29.686492] i2c_hid_acpi: probe of i2c-PIXA3854:00 failed with error -61
[   29.686683] i2c_hid_acpi: probe of i2c-FRMW0004:00 failed with error -61

Thanks
S=C3=A9bastien

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

<div dir=3D"ltr"><div>Hello,</div><div><br></div><div>=C2=A0Trying to get t=
he Framework Laptop 13 AMD to work with QubesOS I hit the following Xen iss=
ue :</div><div><br></div><div>Xen version : 4.17.2</div><div>Kernel : 6.5.1=
2-300.fc39.x86_64</div><div>CPU=C2=A0 model name	: AMD Ryzen 7 7840U w/ Rad=
eon =C2=A0780M Graphics</div><div><br></div><div>The touchpad is not workin=
g (not detected by evtest) because ( see below for=C2=A0XXXXXXX values) : <=
br></div><div>[ =C2=A0 10.215870] i2c_hid_acpi i2c-FRMXXXXXXX: failed to re=
set device: -61</div><div><br></div><div>which is maybe related to the prev=
ious messages :</div><div><br></div><div>[ =C2=A0 =C2=A02.065750] [Firmware=
 Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)</div><div>...<br></=
div><div>[ =C2=A0 =C2=A02.464598] amd_gpio AMDI0030:00: failed to enable wa=
ke-up interrupt</div><div><br></div><div>QubesOS issue : <a href=3D"https:/=
/github.com/QubesOS/qubes-issues/issues/8734">https://github.com/QubesOS/qu=
bes-issues/issues/8734</a></div><div><br></div><div>Possibly related issues=
 :=C2=A0=C2=A0</div><div>=C2=A0=C2=A0</div><div>=C2=A0<a href=3D"https://bu=
gs.launchpad.net/ubuntu/+source/linux/+bug/1971597">https://bugs.launchpad.=
net/ubuntu/+source/linux/+bug/1971597</a></div><div><br></div><div>Here&#39=
;s the complete diff of dmesg with and without xen loaded up to the failed =
i2c_hid_acpi init :</div><div><br></div><div>[ =C2=A0 =C2=A00.000000] Comma=
nd line: placeholder root=3DUUID=3D71b1dc59-ea00-484c-b5e4-ee77ede771db ro =
rhgb quiet<br>[ =C2=A0 =C2=A00.000000] Released 0 page(s)<br>[ =C2=A0 =C2=
=A00.000000] NX (Execute Disable) protection: active<br>[ =C2=A0 =C2=A00.00=
0000] efi: ACPI=3D0x5affe000 ACPI 2.0=3D0x5affe014 TPMFinalLog=3D0x5af3f000=
 SMBIOS=3D0x51677000 SMBIOS 3.0=3D0x51674000 (MEMATTR=3D0x4b719018 unusable=
) ESRT=3D0x5af9b018 MOKvar=3D0x5187c000 <br>[ =C2=A0 =C2=A00.000000] Hyperv=
isor detected: Xen PV<br>[ =C2=A0 =C2=A00.026644] tsc: Detected 3294.105 MH=
z processor<br>[ =C2=A0 =C2=A00.026645] tsc: Detected 3293.856 MHz TSC<br>[=
 =C2=A0 =C2=A00.026732] MTRR map: 3 entries (0 fixed + 3 variable; max 16),=
 built from 8 variable MTRRs<br>[ =C2=A0 =C2=A00.026733] MTRRs set to read-=
only<br>[ =C2=A0 =C2=A00.026735] x86/PAT: Configuration [0-7]: WB =C2=A0WT =
=C2=A0UC- UC =C2=A0WC =C2=A0WP =C2=A0UC =C2=A0UC =C2=A0<br>[ =C2=A0 =C2=A00=
.026753] esrt: Reserving ESRT space from 0x000000005af9b018 to 0x000000005a=
f9b050.<br>[ =C2=A0 =C2=A01.042047] ACPI: BGRT 0x000000005AFB8000 000038 (v=
01 INSYDE EDK2 =C2=A0 =C2=A0 00000002 ACPI 00040000)<br>[ =C2=A0 =C2=A01.04=
2095] Setting APIC routing to Xen PV.<br>[ =C2=A0 =C2=A01.042116] NUMA turn=
ed off<br>[ =C2=A0 =C2=A01.101730] On node 0, zone DMA: 128 pages in unavai=
lable ranges<br>[ =C2=A0 =C2=A01.136828] p2m virtual area at (____ptrval___=
_), size is 40000000<br>[ =C2=A0 =C2=A01.401457] Remapped 728641 page(s)<br=
>[ =C2=A0 =C2=A01.402499] Booting kernel on Xen<br>[ =C2=A0 =C2=A01.402500]=
 Xen version: 4.17.2 (preserve-AD)<br>[ =C2=A0 =C2=A01.406607] xen: PV spin=
locks enabled<br>[ =C2=A0 =C2=A01.406609] PV qspinlock hash table entries: =
256 (order: 0, 4096 bytes, linear)<br>[ =C2=A0 =C2=A01.406610] Kernel comma=
nd line: placeholder root=3DUUID=3D71b1dc59-ea00-484c-b5e4-ee77ede771db ro =
rhgb quiet<br>[ =C2=A0 =C2=A01.406661] Unknown kernel command line paramete=
rs &quot;placeholder rhgb&quot;, will be passed to user space.<br>[ =C2=A0 =
=C2=A01.406867] random: crng init done<br>[ =C2=A0 =C2=A01.411447] Built 1 =
zonelists, mobility grouping on.=C2=A0 Total pages: 15403418<br>[ =C2=A0 =
=C2=A01.497107] Memory: 60184272K/62591736K available (18432K kernel code, =
3267K rwdata, 14476K rodata, 4532K init, 17364K bss, 2407212K reserved, 0K =
cma-reserved)<br>[ =C2=A0 =C2=A01.508627] xen:events: Using FIFO-based ABI<=
br>[ =C2=A0 =C2=A01.508634] xen: --&gt; pirq=3D1 -&gt; irq=3D1 (gsi=3D1)<br=
>[ =C2=A0 =C2=A01.508636] xen: --&gt; pirq=3D2 -&gt; irq=3D2 (gsi=3D2)<br>[=
 =C2=A0 =C2=A01.508638] xen: --&gt; pirq=3D3 -&gt; irq=3D3 (gsi=3D3)<br>[ =
=C2=A0 =C2=A01.508639] xen: --&gt; pirq=3D4 -&gt; irq=3D4 (gsi=3D4)<br>[ =
=C2=A0 =C2=A01.508640] xen: --&gt; pirq=3D5 -&gt; irq=3D5 (gsi=3D5)<br>[ =
=C2=A0 =C2=A01.508642] xen: --&gt; pirq=3D6 -&gt; irq=3D6 (gsi=3D6)<br>[ =
=C2=A0 =C2=A01.508643] xen: --&gt; pirq=3D7 -&gt; irq=3D7 (gsi=3D7)<br>[ =
=C2=A0 =C2=A01.508644] xen: --&gt; pirq=3D8 -&gt; irq=3D8 (gsi=3D8)<br>[ =
=C2=A0 =C2=A01.508646] xen: --&gt; pirq=3D9 -&gt; irq=3D9 (gsi=3D9)<br>[ =
=C2=A0 =C2=A01.508647] xen: --&gt; pirq=3D10 -&gt; irq=3D10 (gsi=3D10)<br>[=
 =C2=A0 =C2=A01.508649] xen: --&gt; pirq=3D11 -&gt; irq=3D11 (gsi=3D11)<br>=
[ =C2=A0 =C2=A01.508650] xen: --&gt; pirq=3D12 -&gt; irq=3D12 (gsi=3D12)<br=
>[ =C2=A0 =C2=A01.508652] xen: --&gt; pirq=3D13 -&gt; irq=3D13 (gsi=3D13)<b=
r>[ =C2=A0 =C2=A01.508653] xen: --&gt; pirq=3D14 -&gt; irq=3D14 (gsi=3D14)<=
br>[ =C2=A0 =C2=A01.508654] xen: --&gt; pirq=3D15 -&gt; irq=3D15 (gsi=3D15)=
<br>[ =C2=A0 =C2=A01.508913] printk: console [hvc0] enabled<br>[ =C2=A0 =C2=
=A01.543395] ACPI BIOS Warning (bug): Incorrect checksum in table [BGRT] - =
0xC1, should be 0x4C (20230331/utcksum-58)<br>[ =C2=A0 =C2=A01.543432] cloc=
ksource: xen: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_=
ns: 881590591483 ns<br>[ =C2=A0 =C2=A01.543434] Xen: using vcpuop timer int=
erface<br>[ =C2=A0 =C2=A01.543436] installing Xen timer for CPU 0<br>[ =C2=
=A0 =C2=A01.543449] clocksource: tsc-early: mask: 0xffffffffffffffff max_cy=
cles: 0x2f7aa0787ee, max_idle_ns: 440795321263 ns<br>[ =C2=A0 =C2=A01.54345=
2] Calibrating delay loop (skipped), value calculated using timer frequency=
.. 6587.71 BogoMIPS (lpj=3D3293856)<br>[ =C2=A0 =C2=A01.543485] Spectre V2 =
: Mitigation: Retpolines<br>[ =C2=A0 =C2=A01.543487] Spectre V2 : Spectre v=
2 / SpectreRSB : Filling RSB on VMEXIT<br>[ =C2=A0 =C2=A01.543489] Speculat=
ive Store Bypass: Vulnerable<br>[ =C2=A0 =C2=A01.543505] x86/fpu: Enabled x=
state features 0xe7, context size is 2432 bytes, using &#39;compacted&#39; =
format.<br>[ =C2=A0 =C2=A01.556516] cpu 0 spinlock event irq 57<br>[ =C2=A0=
 =C2=A01.556526] VPMU disabled by hypervisor.<br>[ =C2=A0 =C2=A01.556812] P=
erformance Events: PMU not available due to virtualization, using software =
events only.<br>[ =C2=A0 =C2=A01.559433] NMI watchdog: Perf NMI watchdog pe=
rmanently disabled<br>[ =C2=A0 =C2=A01.559727] installing Xen timer for CPU=
 1<br>[ =C2=A0 =C2=A01.559965] installing Xen timer for CPU 2<br>[ =C2=A0 =
=C2=A01.560180] installing Xen timer for CPU 3<br>[ =C2=A0 =C2=A01.560396] =
installing Xen timer for CPU 4<br>[ =C2=A0 =C2=A01.560599] installing Xen t=
imer for CPU 5<br>[ =C2=A0 =C2=A01.560813] installing Xen timer for CPU 6<b=
r>[ =C2=A0 =C2=A01.561021] installing Xen timer for CPU 7<br>[ =C2=A0 =C2=
=A01.561230] installing Xen timer for CPU 8<br>[ =C2=A0 =C2=A01.561420] ins=
talling Xen timer for CPU 9<br>[ =C2=A0 =C2=A01.561597] installing Xen time=
r for CPU 10<br>[ =C2=A0 =C2=A01.561783] installing Xen timer for CPU 11<br=
>[ =C2=A0 =C2=A01.561980] installing Xen timer for CPU 12<br>[ =C2=A0 =C2=
=A01.562155] installing Xen timer for CPU 13<br>[ =C2=A0 =C2=A01.562327] in=
stalling Xen timer for CPU 14<br>[ =C2=A0 =C2=A01.562503] installing Xen ti=
mer for CPU 15<br>[ =C2=A0 =C2=A01.562551] cpu 1 spinlock event irq 137<br>=
[ =C2=A0 =C2=A01.562551] cpu 2 spinlock event irq 138<br>[ =C2=A0 =C2=A01.5=
62551] cpu 3 spinlock event irq 139<br>[ =C2=A0 =C2=A01.562551] cpu 4 spinl=
ock event irq 140<br>[ =C2=A0 =C2=A01.562551] cpu 5 spinlock event irq 141<=
br>[ =C2=A0 =C2=A01.562551] cpu 6 spinlock event irq 142<br>[ =C2=A0 =C2=A0=
1.562551] cpu 7 spinlock event irq 143<br>[ =C2=A0 =C2=A01.562551] cpu 8 sp=
inlock event irq 144<br>[ =C2=A0 =C2=A01.563499] cpu 9 spinlock event irq 1=
45<br>[ =C2=A0 =C2=A01.563502] cpu 10 spinlock event irq 146<br>[ =C2=A0 =
=C2=A01.563502] cpu 11 spinlock event irq 147<br>[ =C2=A0 =C2=A01.563502] c=
pu 12 spinlock event irq 148<br>[ =C2=A0 =C2=A01.563502] cpu 13 spinlock ev=
ent irq 149<br>[ =C2=A0 =C2=A01.563502] cpu 14 spinlock event irq 150<br>[ =
=C2=A0 =C2=A01.563502] cpu 15 spinlock event irq 151<br>[ =C2=A0 =C2=A01.57=
3211] PM: RTC time: 09:08:20, date: 2023-12-03<br>[ =C2=A0 =C2=A01.573947] =
xen:grant_table: Grant tables using version 1 layout<br>[ =C2=A0 =C2=A01.57=
3958] Grant table initialized<br>[ =C2=A0 =C2=A01.574502] audit: type=3D200=
0 audit(1701594499.512:1): state=3Dinitialized audit_enabled=3D0 res=3D1<br=
>[ =C2=A0 =C2=A01.606054] xen: registering gsi 9 triggering 0 polarity 1<br=
>[ =C2=A0 =C2=A01.697597] xen: registering gsi 8 triggering 1 polarity 0<br=
>[ =C2=A0 =C2=A01.697705] xen: registering gsi 13 triggering 1 polarity 0<b=
r>[ =C2=A0 =C2=A01.700360] xen: registering gsi 7 triggering 0 polarity 1<b=
r>[ =C2=A0 =C2=A01.700819] xen: registering gsi 10 triggering 1 polarity 0<=
br>[ =C2=A0 =C2=A01.701110] xen: registering gsi 6 triggering 1 polarity 0<=
br>[ =C2=A0 =C2=A01.701690] xen: registering gsi 50 triggering 0 polarity 1=
<br>[ =C2=A0 =C2=A01.701706] xen: --&gt; pirq=3D50 -&gt; irq=3D50 (gsi=3D50=
)<br>[ =C2=A0 =C2=A01.701757] xen: registering gsi 51 triggering 0 polarity=
 1<br>[ =C2=A0 =C2=A01.701768] xen: --&gt; pirq=3D51 -&gt; irq=3D51 (gsi=3D=
51)<br>[ =C2=A0 =C2=A01.701810] xen: registering gsi 52 triggering 0 polari=
ty 1<br>[ =C2=A0 =C2=A01.701818] xen: --&gt; pirq=3D52 -&gt; irq=3D52 (gsi=
=3D52)<br>[ =C2=A0 =C2=A01.701860] xen: registering gsi 53 triggering 0 pol=
arity 1<br>[ =C2=A0 =C2=A01.701869] xen: --&gt; pirq=3D53 -&gt; irq=3D53 (g=
si=3D53)<br>[ =C2=A0 =C2=A01.707071] xen:balloon: Initialising balloon driv=
er<br>[ =C2=A0 =C2=A01.743187] resource: Expanded resource Reserved due to =
conflict with PCI Bus 0000:00<br>[ =C2=A0 =C2=A01.743524] sysfb: VRAM small=
er than advertised<br>[ =C2=A0 =C2=A01.759417] hugetlbfs: disabling because=
 there are no supported hugepage sizes<br>[ =C2=A0 =C2=A01.765826] xen: reg=
istering gsi 1 triggering 1 polarity 0<br>[ =C2=A0 =C2=A01.771944] PM-Timer=
 failed consistency check =C2=A0(0xffffff) - aborting.<br>[ =C2=A0 =C2=A01.=
775360] xen: registering gsi 40 triggering 0 polarity 1<br>[ =C2=A0 =C2=A01=
.775387] xen: --&gt; pirq=3D40 -&gt; irq=3D40 (gsi=3D40)<br>[ =C2=A0 =C2=A0=
1.775481] xen: registering gsi 37 triggering 0 polarity 1<br>[ =C2=A0 =C2=
=A01.775494] xen: --&gt; pirq=3D37 -&gt; irq=3D37 (gsi=3D37)<br>[ =C2=A0 =
=C2=A01.775841] xen: registering gsi 38 triggering 0 polarity 1<br>[ =C2=A0=
 =C2=A01.775855] xen: --&gt; pirq=3D38 -&gt; irq=3D38 (gsi=3D38)<br>[ =C2=
=A0 =C2=A01.776235] xen: registering gsi 40 triggering 0 polarity 1<br>[ =
=C2=A0 =C2=A01.776238] Already setup the GSI :40<br>[ =C2=A0 =C2=A01.776281=
] xen: registering gsi 46 triggering 0 polarity 1<br>[ =C2=A0 =C2=A01.77629=
3] xen: --&gt; pirq=3D46 -&gt; irq=3D46 (gsi=3D46)<br>[ =C2=A0 =C2=A01.7766=
46] xen: registering gsi 47 triggering 0 polarity 1<br>[ =C2=A0 =C2=A01.776=
656] xen: --&gt; pirq=3D47 -&gt; irq=3D47 (gsi=3D47)<br>[ =C2=A0 =C2=A01.77=
7614] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2f7aa0787ee,=
 max_idle_ns: 440795321263 ns<br>[ =C2=A0 =C2=A01.777677] clocksource: Swit=
ched to clocksource tsc<br>[ =C2=A0 =C2=A02.061207] pcieport 0000:00:02.2: =
PME: Signaling with IRQ 162<br>[ =C2=A0 =C2=A02.061369] pcieport 0000:00:02=
.4: PME: Signaling with IRQ 163<br>[ =C2=A0 =C2=A02.061604] pcieport 0000:0=
0:03.1: PME: Signaling with IRQ 164<br>[ =C2=A0 =C2=A02.062263] pcieport 00=
00:00:04.1: PME: Signaling with IRQ 165<br>[ =C2=A0 =C2=A02.062813] pciepor=
t 0000:00:08.1: PME: Signaling with IRQ 166<br>[ =C2=A0 =C2=A02.062953] xen=
: registering gsi 40 triggering 0 polarity 1<br>[ =C2=A0 =C2=A02.062967] Al=
ready setup the GSI :40<br>[ =C2=A0 =C2=A02.063063] pcieport 0000:00:08.2: =
PME: Signaling with IRQ 167<br>[ =C2=A0 =C2=A02.063213] pcieport 0000:00:08=
.3: PME: Signaling with IRQ 168<br>[ =C2=A0 =C2=A02.063345] efifb: probing =
for efifb<br>[ =C2=A0 =C2=A02.063985] efifb: No BGRT, not showing boot grap=
hics<br>[ =C2=A0 =C2=A02.063986] efifb: framebuffer at 0x8800000000, using =
13536k, total 13536k<br>[ =C2=A0 =C2=A02.063988] efifb: mode is 2256x1504x3=
2, linelength=3D9216, pages=3D1<br>[ =C2=A0 =C2=A02.063989] efifb: scrollin=
g: redraw<br>[ =C2=A0 =C2=A02.063990] efifb: Truecolor: size=3D8:8:8:8, shi=
ft=3D24:16:8:0<br>[ =C2=A0 =C2=A02.064032] fbcon: Deferring console take-ov=
er<br>[ =C2=A0 =C2=A02.064033] fb0: EFI VGA frame buffer device<br>[ =C2=A0=
 =C2=A02.065750] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW=
 (0x0)<br>[ =C2=A0 =C2=A02.065860] [Firmware Bug]: ACPI MWAIT C-state 0x0 n=
ot supported by HW (0x0)<br>[ =C2=A0 =C2=A02.066008] [Firmware Bug]: ACPI M=
WAIT C-state 0x0 not supported by HW (0x0)<br>[ =C2=A0 =C2=A02.066140] [Fir=
mware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)<br>[ =C2=A0 =
=C2=A02.066370] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW =
(0x0)<br>[ =C2=A0 =C2=A02.066586] [Firmware Bug]: ACPI MWAIT C-state 0x0 no=
t supported by HW (0x0)<br>[ =C2=A0 =C2=A02.066818] [Firmware Bug]: ACPI MW=
AIT C-state 0x0 not supported by HW (0x0)<br>[ =C2=A0 =C2=A02.066923] [Firm=
ware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)<br>[ =C2=A0 =C2=
=A02.067082] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x=
0)<br>[ =C2=A0 =C2=A02.067170] [Firmware Bug]: ACPI MWAIT C-state 0x0 not s=
upported by HW (0x0)<br>[ =C2=A0 =C2=A02.067296] [Firmware Bug]: ACPI MWAIT=
 C-state 0x0 not supported by HW (0x0)<br>[ =C2=A0 =C2=A02.067473] [Firmwar=
e Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)<br>[ =C2=A0 =C2=A0=
2.067669] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)<=
br>[ =C2=A0 =C2=A02.067973] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supp=
orted by HW (0x0)<br>[ =C2=A0 =C2=A02.068215] [Firmware Bug]: ACPI MWAIT C-=
state 0x0 not supported by HW (0x0)<br>[ =C2=A0 =C2=A02.068522] [Firmware B=
ug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)<br>[ =C2=A0 =C2=A02.0=
68923] ACPI: thermal: Thermal Zone [TZ00] (26 C)<br>[ =C2=A0 =C2=A02.069085=
] ACPI: thermal: Thermal Zone [TZ01] (30 C)<br>[ =C2=A0 =C2=A02.069242] ACP=
I: thermal: Thermal Zone [TZ02] (28 C)<br>[ =C2=A0 =C2=A02.069402] ACPI: th=
ermal: Thermal Zone [TZ03] (46 C)<br>[ =C2=A0 =C2=A02.072038] hpet_acpi_add=
: no address or irqs in _CRS<br>[ =C2=A0 =C2=A02.092763] xen: registering g=
si 37 triggering 0 polarity 1<br>[ =C2=A0 =C2=A02.092769] Already setup the=
 GSI :37<br>[ =C2=A0 =C2=A02.101751] xen: registering gsi 38 triggering 0 p=
olarity 1<br>[ =C2=A0 =C2=A02.101755] Already setup the GSI :38<br>[ =C2=A0=
 =C2=A02.105493] xen: registering gsi 46 triggering 0 polarity 1<br>[ =C2=
=A0 =C2=A02.105496] Already setup the GSI :46<br>[ =C2=A0 =C2=A02.109521] x=
en: registering gsi 47 triggering 0 polarity 1<br>[ =C2=A0 =C2=A02.109525] =
Already setup the GSI :47<br>[ =C2=A0 =C2=A02.116721] rtc_cmos 00:01: setti=
ng system clock to 2023-12-03T09:08:21 UTC (1701594501)<br>[ =C2=A0 =C2=A02=
.117134] amd_pstate: driver load is disabled, boot with specific mode to en=
able this<br>[ =C2=A0 =C2=A02.130271] input: AT Translated Set 2 keyboard a=
s /devices/platform/i8042/serio0/input/input2<br>[ =C2=A0 =C2=A02.138905] s=
ched_clock: Marking stable (2104001974, 34790120)-&gt;(2142780210, -3988116=
)<br>[ =C2=A0 =C2=A02.464598] amd_gpio AMDI0030:00: failed to enable wake-u=
p interrupt<br>[ =C2=A0 =C2=A02.465229] amd_gpio AMDI0030:00: failed to ena=
ble wake-up interrupt<br>[ =C2=A0 =C2=A02.465462] amd_gpio AMDI0030:00: fai=
led to enable wake-up interrupt<br>[ =C2=A0 =C2=A02.465694] amd_gpio AMDI00=
30:00: failed to enable wake-up interrupt<br>[ =C2=A0 =C2=A02.466003] amd_g=
pio AMDI0030:00: failed to enable wake-up interrupt<br>[ =C2=A0 =C2=A02.466=
189] amd_gpio AMDI0030:00: failed to enable wake-up interrupt<br>[ =C2=A0 =
=C2=A02.466387] amd_gpio AMDI0030:00: failed to enable wake-up interrupt<br=
>[ =C2=A0 =C2=A02.466584] amd_gpio AMDI0030:00: failed to enable wake-up in=
terrupt<br>[ =C2=A0 =C2=A03.790268] =C2=A0 =C2=A0 placeholder<br>[ =C2=A0 =
=C2=A03.809946] usb 1-2: New USB device found, idVendor=3D1e7d, idProduct=
=3D2e22, bcdDevice=3D 1.01<br>[ =C2=A0 =C2=A03.809950] usb 1-2: New USB dev=
ice strings: Mfr=3D1, Product=3D2, SerialNumber=3D0<br>[ =C2=A0 =C2=A03.809=
952] usb 1-2: Product: ROCCAT Kone XTD<br>[ =C2=A0 =C2=A03.809953] usb 1-2:=
 Manufacturer: ROCCAT<br>[ =C2=A0 =C2=A03.826019] systemd[1]: Detected virt=
ualization vm-other.<br>[ =C2=A0 =C2=A03.941883] usb 1-4: new full-speed US=
B device number 3 using xhci_hcd<br>[ =C2=A0 =C2=A04.099853] usb 1-4: New U=
SB device found, idVendor=3D27c6, idProduct=3D609c, bcdDevice=3D 1.00<br>[ =
=C2=A0 =C2=A04.099862] usb 1-4: New USB device strings: Mfr=3D1, Product=3D=
2, SerialNumber=3D3<br>[ =C2=A0 =C2=A04.099866] usb 1-4: Product: Goodix US=
B2.0 MISC<br>[ =C2=A0 =C2=A04.099869] usb 1-4: Manufacturer: Goodix Technol=
ogy Co., Ltd.<br>[ =C2=A0 =C2=A04.099873] usb 1-4: SerialNumber: UIDD5F04A7=
B_XXXX_MOC_B0<br>[ =C2=A0 =C2=A04.193119] systemd[1]: Finished kmod-static-=
nodes.service - Create List of Static Device Nodes.<br>[ =C2=A0 =C2=A04.221=
808] usb 1-5: new high-speed USB device number 4 using xhci_hcd<br>[ =C2=A0=
 =C2=A04.936497] xen: registering gsi 36 triggering 0 polarity 1<br>[ =C2=
=A0 =C2=A04.936543] xen: --&gt; pirq=3D36 -&gt; irq=3D36 (gsi=3D36)<br>[ =
=C2=A0 =C2=A04.948276] ccp 0000:c1:00.2: tee: ring init command failed (0x0=
0000005)<br>[ =C2=A0 =C2=A04.948285] ccp 0000:c1:00.2: tee: failed to init =
ring buffer<br>[ =C2=A0 =C2=A04.948287] ccp 0000:c1:00.2: tee initializatio=
n failed<br>[ =C2=A0 =C2=A04.948302] ccp 0000:c1:00.2: psp initialization f=
ailed<br>[ =C2=A0 =C2=A05.018031] fbcon: Taking over console<br>[ =C2=A0 =
=C2=A05.018181] Console: switching to colour frame buffer device 282x94<br>=
[ =C2=A0 10.215870] i2c_hid_acpi i2c-FRMW0005:00: failed to reset device: -=
61<br>[ =C2=A0 10.215917] i2c_hid_acpi i2c-PIXA3854:00: failed to reset dev=
ice: -61<br>[ =C2=A0 10.215950] i2c_hid_acpi i2c-FRMW0004:00: failed to res=
et device: -61<br>[ =C2=A0 10.220217] i2c_hid_acpi i2c-FRMW0004:00: failed =
to change power setting.<br>[ =C2=A0 16.359856] i2c_hid_acpi i2c-PIXA3854:0=
0: failed to reset device: -61<br>[ =C2=A0 16.359856] i2c_hid_acpi i2c-FRMW=
0004:00: failed to reset device: -61<br>[ =C2=A0 16.359871] i2c_hid_acpi i2=
c-FRMW0005:00: failed to reset device: -61<br>[ =C2=A0 22.503879] i2c_hid_a=
cpi i2c-FRMW0005:00: failed to reset device: -61<br>[ =C2=A0 22.503915] i2c=
_hid_acpi i2c-PIXA3854:00: failed to reset device: -61<br>[ =C2=A0 22.50392=
1] i2c_hid_acpi i2c-FRMW0004:00: failed to reset device: -61<br>[ =C2=A0 28=
.647874] i2c_hid_acpi i2c-FRMW0005:00: failed to reset device: -61<br>[ =C2=
=A0 28.647879] i2c_hid_acpi i2c-PIXA3854:00: failed to reset device: -61<br=
>[ =C2=A0 28.647910] i2c_hid_acpi i2c-FRMW0004:00: failed to reset device: =
-61<br>[ =C2=A0 29.671873] i2c_hid_acpi i2c-FRMW0005:00: can&#39;t add hid =
device: -61<br>[ =C2=A0 29.671874] i2c_hid_acpi i2c-FRMW0004:00: can&#39;t =
add hid device: -61<br>[ =C2=A0 29.671874] i2c_hid_acpi i2c-PIXA3854:00: ca=
n&#39;t add hid device: -61<br>[ =C2=A0 29.686460] i2c_hid_acpi: probe of i=
2c-FRMW0005:00 failed with error -61<br>[ =C2=A0 29.686492] i2c_hid_acpi: p=
robe of i2c-PIXA3854:00 failed with error -61<br>[ =C2=A0 29.686683] i2c_hi=
d_acpi: probe of i2c-FRMW0004:00 failed with error -61</div><div><br></div>=
Thanks<br><div><div>S=C3=A9bastien<br></div></div></div>

--000000000000569c7d060b98038f--


From xen-devel-bounces@lists.xenproject.org Sun Dec 03 18:07:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Dec 2023 18:07:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646419.1008741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9qsC-0007cs-UB; Sun, 03 Dec 2023 18:07:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646419.1008741; Sun, 03 Dec 2023 18:07:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9qsC-0007cl-RZ; Sun, 03 Dec 2023 18:07:20 +0000
Received: by outflank-mailman (input) for mailman id 646419;
 Sun, 03 Dec 2023 18:07: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 1r9qsB-0007cb-Ns; Sun, 03 Dec 2023 18:07: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 1r9qsB-0004PN-D6; Sun, 03 Dec 2023 18:07: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 1r9qsA-0003NO-RX; Sun, 03 Dec 2023 18:07:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9qsA-0000Nt-R3; Sun, 03 Dec 2023 18:07: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=9ife7hRuZXtT8JAmMGLhu4AeS+7mufTboSwdOC2F8ok=; b=aM/TdcfSQD0klBwabBHOd4/WdA
	Pm/hIZBQYhg8bzFbEbyTjXUXPRaDmZM4eZ/VU0DlDC6P6upBQBArfsvwNf2aUyk2jZHpdDY55stPq
	9xfJx5Vhc/qgEahApkH0naM91/Nn7y2jNTVmjGTv5z8sfOCakkaYu9+AC9p0CifoVYak=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183980-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183980: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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: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:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-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-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: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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=968f35f4ab1c0966ceb39af3c89f2e24afedf878
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 03 Dec 2023 18:07:18 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 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-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-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-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-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
 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-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                968f35f4ab1c0966ceb39af3c89f2e24afedf878
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    1 days
Failing since        183977  2023-12-03 00:12:06 Z    0 days    2 attempts
Testing same since   183980  2023-12-03 08:00:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  David Howells <dhowells@redhat.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Jens Axboe <axboe@kernel.dk>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Namjae Jeon <linkinjeon@kernel.org>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Sean Christopherson <seanjc@google.com>
  Steve French <stfrench@microsoft.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 744 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Dec 03 23:51:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Dec 2023 23:51:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646460.1008752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9wF0-0006hN-2m; Sun, 03 Dec 2023 23:51:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646460.1008752; Sun, 03 Dec 2023 23: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 1r9wEz-0006hG-VF; Sun, 03 Dec 2023 23:51:13 +0000
Received: by outflank-mailman (input) for mailman id 646460;
 Sun, 03 Dec 2023 23:51: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 1r9wEz-0006h6-A0; Sun, 03 Dec 2023 23:51: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 1r9wEz-0002Ws-1s; Sun, 03 Dec 2023 23:51: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 1r9wEy-0006Kp-GO; Sun, 03 Dec 2023 23:51:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1r9wEy-0001M6-Fr; Sun, 03 Dec 2023 23:51: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=VXb6oaS22dXFI46cfe488aEKXGVOh78u6qqD+c0GWcM=; b=XfH6g7t6QW94Ptu/MHFTyvRCsp
	kL/aU3CyUjMEM/EnGV5L8z0t7Snq8CapOEwP9yc7j2CPdeBF6V8xAHPZyuFfgD8C76OCkYPt4SZNp
	NuqIZTGxcfYGt/muMApl7E89lVRNsA0HATBzfyOrRMJZE/O6DzSaclQjvduqVBv0afjg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183981-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183981: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:build-arm64-pvops:kernel-build:fail:regression
    linux-linus:test-arm64-arm64-examine:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:build-check(1):blocked: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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:xen-boot:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm: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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt: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-qcow2: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-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=33cc938e65a98f1d29d0a18403dbbee050dcad9a
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 03 Dec 2023 23:51:12 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973
 build-arm64-pvops             6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-examine      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     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-armhf-armhf-xl-credit1   8 xen-boot                     fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-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-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          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-qcow2 14 migrate-support-check        fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                33cc938e65a98f1d29d0a18403dbbee050dcad9a
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    1 days
Failing since        183977  2023-12-03 00:12:06 Z    0 days    3 attempts
Testing same since   183981  2023-12-03 18:14:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  David Howells <dhowells@redhat.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Jens Axboe <axboe@kernel.dk>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Namjae Jeon <linkinjeon@kernel.org>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Sean Christopherson <seanjc@google.com>
  Steve French <stfrench@microsoft.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@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                                            fail    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          blocked 
 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                                 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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                                  blocked 
 test-armhf-armhf-xl-credit1                                  fail    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  blocked 
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     blocked 
 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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-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                                 blocked 
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      blocked 
 test-armhf-armhf-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 750 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 01:02:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 01:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646468.1008762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9xM8-0005yN-P8; Mon, 04 Dec 2023 01:02:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646468.1008762; Mon, 04 Dec 2023 01:02:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9xM8-0005yG-Lt; Mon, 04 Dec 2023 01:02:40 +0000
Received: by outflank-mailman (input) for mailman id 646468;
 Mon, 04 Dec 2023 01:02: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=G3Bv=HP=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1r9xM7-0005yA-WC
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 01:02:40 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf1e3e46-9240-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 02:02:36 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.17.1/8.15.2) with ESMTPS id 3B4126RQ094753
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 3 Dec 2023 20:02:12 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.17.1/8.15.2/Submit) id 3B41249I094751;
 Sun, 3 Dec 2023 17:02:04 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf1e3e46-9240-11ee-9b0f-b553b5be7939
Date: Sun, 3 Dec 2023 17:02:04 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Henry Wang <Henry.Wang@arm.com>,
        xen-devel@lists.xenproject.org,
        George Dunlap <george.dunlap@citrix.com>,
        Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
        Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
        Neowutran <xen@neowutran.ovh>
Subject: Re: [PATCH] x86/x2apic: introduce a mixed physical/cluster mode
Message-ID: <ZW0lDEso5c+GUAQr@mattapan.m5p.com>
References: <ZT/Cs+MsBPibcc9D@mattapan.m5p.com>
 <ZT_LWjKgQxOE9lpj@macbook>
 <ZUqRfgAmzJRImW4O@mattapan.m5p.com>
 <hqj6xjxb7r5lb52biejbzzue2jth3rcth3bouadya4jwarll4l@oswerq2ejbli>
 <ZVgp0wshHg3ZQ/Md@mattapan.m5p.com>
 <81f6bbd5-0487-461a-af1a-dbb6ead47cab@citrix.com>
 <ZV1Rz+FmmyWFHiM9@mattapan.m5p.com>
 <ZV8d2ZiiiBBNySgc@macbook>
 <ZWFKtrBl2kpdvjBC@mattapan.m5p.com>
 <ZWRS5qUTjkoD22MF@macbook>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ZWRS5qUTjkoD22MF@macbook>
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, Nov 27, 2023 at 09:27:18AM +0100, Roger Pau Monn
> On Fri, Nov 24, 2023 at 05:15:34PM -0800, Elliott Mitchell wrote:
> > On Thu, Nov 23, 2023 at 10:39:37AM +0100, Roger Pau Monn
> > > On Tue, Nov 21, 2023 at 04:56:47PM -0800, Elliott Mitchell wrote:
> > > > It was insisted that full logs be sent to xen-devel.  Perhaps I am
> > > > paranoid, but I doubt I would have been successful at scrubbing all
> > > > hardware serial numbers.  As such, I was willing to post substantial
> > > > sections, but not everything.
> > > 
> > > Can you please point out which hardware serial numbers are you
> > > referring to, and where are they printed in Xen dmesg?
> > 
> > I didn't confirm the presence of hardware serial numbers getting into
> > Xen's dmesg, but there was a lot of data and many hexadecimal numbers.
> > With 4000 lines of output, checking for concerning data is troublesome.
> 
> 4000 lines of output from Xen dmesg seems quite suspicious.  Xen dmesg
> on a fully booted box is ~400 lines on my local box.  That might get
> quite longer if you have a box with a lot of memory region, or a lot
> of CPUs.

That was from 4 boots with differing settings.  Since it was full console
log, it also had the initial Linux kernel boot messages.  Each log was
~1000 lines.

> > There was enough for alarms to trigger.
> 
> That's fine, but without pointing out which information is sensitive,
> it's very unlikely such concerns will ever get fixed.
> 
> Could you at least go over the log and point out the first instance of
> such line that you consider contains sensitive information?

I would have been more comfortable with getting some guidance on which
portions were desired or which could be left out.  No need for Linux's
boot messages, what would cut things down by half.  No need for the
memory map, lots more goes.

It is easier to be comfortable with 40 line sections than 1000 line
sections.


-- 
(\___(\___(\______          --=> 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 Dec 04 03:25:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 03:25:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646483.1008772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9za5-0006fY-DE; Mon, 04 Dec 2023 03:25:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646483.1008772; Mon, 04 Dec 2023 03:25: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 1r9za5-0006fR-AX; Mon, 04 Dec 2023 03:25:13 +0000
Received: by outflank-mailman (input) for mailman id 646483;
 Mon, 04 Dec 2023 03: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=5cgf=HP=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1r9za3-0006fL-VN
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 03:25:12 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20600.outbound.protection.outlook.com
 [2a01:111:f400:7eae::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9acc9c5-9254-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 04:25:09 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CH2PR12MB4133.namprd12.prod.outlook.com (2603:10b6:610:7a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 03:25:03 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023
 03:25:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9acc9c5-9254-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YIzmWchLz/hOUWTF1+HvHFHBu1HUEEJl487nvSzWz0fAgJzUV9W6d1WITHzO173O5vATBOq190ia2PH1/lO0w+qkX9OT7biCX2Py3+sEz1vmpeU6wstvj0KYu8w1K5iXLVghDn8N1Hzz6v9PVVkpPWXtjgw1bqjmAnrglyLV638K7cKJ7VIozSnCvlWMJCVmJzdJ3dcVO+NZWo8AJ6eMA/VIkefHer9ziNqWH7Xjenyj2CGSwkqTaY6kWGg536FSuPZXzIEVPJUnBHXVNDrq42Vp5LN5NC9LJxo7/9nQTT1ibV8J7Cfrw8jAO7yGIELYObzGNo2s3pIPTKeFokk/Dw==
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=H4aU/uTLo3RlHfm5FCZIVyq31sQ8yHkfG0fGyTUua+0=;
 b=Hkjfo05P406LpvEbA3WKDMOqyosJlnMW3eSitb5b0ICLLpIH2B7dyEgeIf1t2y1pCZxn80s9Apuh8mqLqay6TgQboF9Fe2Fg7/4RKgDggPovS89nyUS8doSfzzRoLOdqerXcbvH+MgKbppFh6UjURyxtCiiIlj644rO1sNGTDk6jRYBrlUnobw2+H86pgH8AubfUt+OFyKEXkB51PPXGlCs455dbnGcTQQOjFO6x2p8PVi7EXyc8rr0LYJ4iPqozP4NdrlctCZmSfMy0qskLzMsAPQGsZpw0JChBuTlGuHUDxYatFInqSSI1AWDi4S/4g2gsVGsLA5Ocdp2RBCPM5g==
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=H4aU/uTLo3RlHfm5FCZIVyq31sQ8yHkfG0fGyTUua+0=;
 b=K/y5unvmaMdkssfCvdtGsb7otWL7v/3thq3UBHM2yvJpzg0mWM87ekEBy090S3EPMZRUGZIUHdmYohYptDMTUpqViGLbK1x7s391FOtiSWG3Cxm6vX4ezCliM+TWGAhelxb2R73NGFFulZmD7Q6seW/vadK2lIwG/8pvnXOBKsA=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: Juergen Gross <jgross@suse.com>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Thomas Gleixner <tglx@linutronix.de>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, "Rafael J . Wysocki"
	<rafael@kernel.org>, Len Brown <lenb@kernel.org>, Bjorn Helgaas
	<bhelgaas@google.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, "Stabellini,
 Stefano" <stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, "Huang, Honglei1"
	<Honglei1.Huang@amd.com>, "Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Topic: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Index: AQHaHsGaWb8EJvAynUiF4JhdQXSstLCSQgGAgAC8QwCAAADZAIAGC94A
Date: Mon, 4 Dec 2023 03:25:02 +0000
Message-ID:
 <BL1PR12MB5849C9BFEBECAF3C5BCBB09DE786A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-2-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291943260.3533093@ubuntu-linux-20-04-desktop>
 <BL1PR12MB58490EB260D226500141557EE782A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <f78395f3-6588-4bc9-8612-3450a8f44be7@amd.com>
In-Reply-To: <f78395f3-6588-4bc9-8612-3450a8f44be7@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5364.namprd12.prod.outlook.com
 (15.20.7068.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_|CH2PR12MB4133:EE_
x-ms-office365-filtering-correlation-id: 52ff7014-cad1-41a2-7f73-08dbf4789a87
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 lH/UZnpFRrBUFNgqQU1uY84IUlGtcZCnNU5kmmTaVMTdlhsKYt5po5Fjpk2JtWcuy6CTM7EmQnGYMwg3S/xDUGBFG83ezlrYUQVy9P4PgzBCl7MesGaxYZQulZEUsv/P+iKsFIw/My71AFxLiw75oR3ri0ialeWhlho2T5FdMOiZc4K88lMjb8VXV/BP7W472wU0jVLNhLHvIXDI0zBuQr0+RXQLyVCwehQ95Hr4CtYwsPX2jSXIRzGOl7WqkAwim7ulk6WLTr7R8tgU4MW6tsdxQ+M+bCB6d/nqky6kYG35f1oiGUoSqfZoJEzV/m894qK9M33KJmhuqB+VsUxq+LONpKFmMe0jXJ9lieaDAsKf+JpSYG4aUJiqoJeInC0Sv7m4gVygSMbuf4KJVOkHaVdXy7clipUW87ZJZQ0OgFwJAWAFuQ2YS0P0021i9GKx9UZzoxQIBfSqgBw9EURAu/OWMv+eZvQTBZAaV8j0SlwIdtMg+ar531ioHtPt+9nS7YVnLnbbcuQBmbfDpOE8m8MuFqi0T6vukT3QAEcx98CIdvGsmPyY175VUF6PUvwviv/+aeCiNlpZ/6iapPnGULINyQCvzoZ76fR/564i1H9PXhqCVpt+jqSlaA8+XsN2
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:(13230031)(346002)(39860400002)(396003)(136003)(376002)(366004)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(66556008)(110136005)(76116006)(66476007)(66446008)(66946007)(54906003)(64756008)(316002)(478600001)(71200400001)(7416002)(5660300002)(38070700009)(41300700001)(38100700002)(33656002)(2906002)(52536014)(4326008)(8676002)(8936002)(122000001)(83380400001)(55016003)(26005)(9686003)(53546011)(7696005)(6506007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?a1ViekozSEQrQ0o5Q1lERTQvcFV5VmRPZXlnRGp2aEFNdjlrcDFBdGJSSjh1?=
 =?utf-8?B?cEVoa1U3Nzd4OGl6OUdjUTJjbGFuU2NYRmd3YWVSSzVRaWt4cHNQWnpGbXNF?=
 =?utf-8?B?cExXeTN0MDJVaEo3Y0Y1ZU5rWHc2dEJxK3ZiS1JVajlNck1SVzliaFhBNDk0?=
 =?utf-8?B?NG9nMU9GVVExSkRDUy9VdVFNeG9DV2d3T3ZoOSs4L2tpUCtKVDVSQ3ZOa20v?=
 =?utf-8?B?TWt6NTNGN0VrbUdlZEVoazZBcTVieTdQcm5WWWU1dXpTNkV3ZmdBSVl1M2NE?=
 =?utf-8?B?TUo4MkhXT1gwZjFFbEV1OTEyeXFpbHpUMGJIL3V1clk0K0tWSHZSRXcwZ3FN?=
 =?utf-8?B?VHpUckdGOFV2OG05Y0hvTmZObGt6Vi8vSG14YjZyY3FJOGFXZmJITWpETTBV?=
 =?utf-8?B?bHZ4MDdCemR0dTJoUjRYWnE2eEJyVjhaNXhtVmlEMzJpYkNibU04L3pPWnFa?=
 =?utf-8?B?Znh1TzNQMUF1OVdlUjRhaXNwaVhQQ3g4ZzVkOEkveXU3cFBpUjlBeGd5WFpH?=
 =?utf-8?B?eWJBVmRPRkF5N0dkQytreXd2NjRCekF2SE9NYStkNUpzaGFKS2c1bDNTcVFQ?=
 =?utf-8?B?ZjBtekhwblBQL3c0Vlowa0p0VytqWG50NHpORGJGUlpBdVhTM2hMaXY3Vm0w?=
 =?utf-8?B?aFBxV090TkpadS9rZTQ5bU9PNUw5TzFnejNtMEg1VjlaQjI5TzA5bnduUkRv?=
 =?utf-8?B?R3JsemdHRW1KcG5LU0xDdUg4QTAvdWIvWDFXQTFQM25GTXkwc1E4R0hpZXpD?=
 =?utf-8?B?UGJPUWV3YW9WdDZOWVo0TkJmSmlld2lFMjZaVnI4b3JMTWpEcFBzQ2hTMlJ0?=
 =?utf-8?B?ZTkyNnRDaE9kRUNpTmZubFFCTmV2cGVqNVNyN0czcWs1VkpmK3N2S05sTGN3?=
 =?utf-8?B?UzVhY2sxN1NGbDVMSkhKMjlKMGdZOWRkOFUwd1hPL3Vkamk1QVhQTjhDSEsv?=
 =?utf-8?B?ZXlNem42WS9wTVFUbmF5QzhTd1VYY1c3RUFDMkprdWlBVEdDK00rZ3RqOEdi?=
 =?utf-8?B?Sll2dUNnaWxIR2dOOXViL2tFNDJYK0ZCWllRbDQ0aXQrN2tscjJSYWpxQ0Ju?=
 =?utf-8?B?dGpCbEZHaGxrWm8zL1ozRDBGeTkvSCswck1JWWdBdXp3Uzl4T3NaZys0ZWxp?=
 =?utf-8?B?c1gwRUxBNjJ1QXJSNm83QmRQRFY3bVlhY2NKTWVyOGQySmF4UThnS0dEV3V4?=
 =?utf-8?B?cFpPWGp2a3BZOVRBdXpUYW5UNm43Mm4wV3dOSkhUYklOYm04WUIwby91blJW?=
 =?utf-8?B?N28zbGNPbW9ZWmVLOWYzMkd5WnE0SnJQVENoV0NoNDNlcmZrNStYZ2J2UVRP?=
 =?utf-8?B?OUNmOHRBWUwrSW1qMk5VaFNITGprK0xhM3pGM2YxM1F6bGtYWlI2SG9CNTRr?=
 =?utf-8?B?SitNQ2hXMmNEL1V1MnJBZ1hvU2w2RnZSN3QwNFh6UzdvdFhoZFVCTkdZbmQ0?=
 =?utf-8?B?bG1YaVoyYUxXc1Z1YlVTK0EzazF6STFRU1RKZ1d6cTN0Smt2WkFQNERoOHBy?=
 =?utf-8?B?UkptcFJnNU9wTXA2WHgyZmlPd3NUS1FSSUpvL0pFdmw3enRNbzE2R1lzVysx?=
 =?utf-8?B?cnNWODFRNElmM3Y3K1RRaWlsTER0MWhoZDVUSUgyTGowaERiWEdVNVZ3aW0y?=
 =?utf-8?B?bVJCclF3bTNtQkpVUWhaRXNrUWhocHk0eVhxeXU4U0gwSkgvdC9HY1JNSjUx?=
 =?utf-8?B?NHFyd2tYNmxUOWpIWHRvZVpEK0hIWkVkVW93TXU1TTNXN1pLb0hiU0gxL2pE?=
 =?utf-8?B?UlhYWURkQTNKZTZjbDJ2ZHFtcGkzaEkrd0Y1d3lzZjEzUUtSM1NjQ2R4eGF6?=
 =?utf-8?B?dTBzUW9wKzhKOC9KQXhQY0NHVkJ2MVhKeVR3U2ZZZEp6RXhqOTJlL28vNlBB?=
 =?utf-8?B?NkNXYmJsQ1NHSWlqN2J1ZnBGM3I3MXVPQ0YzK3MzWGNFY25hdmlPcEN1SnBD?=
 =?utf-8?B?ZWhNTFpzNmdobGIwOEJZVExmUXExQkhmVzlvN3d0dGhIN3l3eU9TVXc4RDMw?=
 =?utf-8?B?Vzk4bTBhU1hGSGpUdFZIaC81T05XWTZkTG0xc2FjSGZ6cStxTHJPeGg1bndH?=
 =?utf-8?B?ZkVsSytqZFpRZU12UmJSY2VLNVdycjB3RGxqRU1xSkVzUmRrVjJyUGtJNUoy?=
 =?utf-8?Q?TBbY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A98AAE1BD69EB54792977A6FC58254E6@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: 52ff7014-cad1-41a2-7f73-08dbf4789a87
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2023 03:25:02.8479
 (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: bz3REsea0n6E//nrX4UyZEW+N7J/QklP2xRJ/ks/jnpgCjUyHi1NphEeXQKF/VkswrQEbWS+9aYk8aZcPlrWlw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4133

SGkgU3Rld2FydCwNCg0KT24gMjAyMy8xMS8zMCAyMzowMywgU3Rld2FydCBIaWxkZWJyYW5kIHdy
b3RlOg0KPiBPbiAxMS8zMC8yMyAwMjowMywgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4NCj4+IE9u
IDIwMjMvMTEvMzAgMTE6NDYsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4+PiBPbiBGcmks
IDI0IE5vdiAyMDIzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+Pj4gV2hlbiBkZXZpY2Ugb24gZG9t
MCBzaWRlIGhhcyBiZWVuIHJlc2V0LCB0aGUgdnBjaSBvbiBYZW4gc2lkZQ0KPj4+PiB3b24ndCBn
ZXQgbm90aWZpY2F0aW9uLCBzbyB0aGF0IHRoZSBjYWNoZWQgc3RhdGUgaW4gdnBjaSBpcw0KPj4+
PiBhbGwgb3V0IG9mIGRhdGUgd2l0aCB0aGUgcmVhbCBkZXZpY2Ugc3RhdGUuDQo+Pj4+IFRvIHNv
bHZlIHRoYXQgcHJvYmxlbSwgdGhpcyBwYXRjaCBhZGQgYSBmdW5jdGlvbiB0byBjbGVhciBhbGwN
Cj4+Pj4gdnBjaSBkZXZpY2Ugc3RhdGUgd2hlbiBkZXZpY2UgaXMgcmVzZXQgb24gZG9tMCBzaWRl
Lg0KPj4+Pg0KPj4+PiBBbmQgY2FsbCB0aGF0IGZ1bmN0aW9uIGluIHBjaXN0dWJfaW5pdF9kZXZp
Y2UuIEJlY2F1c2Ugd2hlbg0KPj4+PiB3ZSB1c2UgInBjaS1hc3NpZ25hYmxlLWFkZCIgdG8gYXNz
aWduIGEgcGFzc3Rocm91Z2ggZGV2aWNlIGluDQo+Pj4+IFhlbiwgaXQgd2lsbCByZXNldCBwYXNz
dGhyb3VnaCBkZXZpY2UgYW5kIHRoZSB2cGNpIHN0YXRlIHdpbGwNCj4+Pj4gb3V0IG9mIGRhdGUs
IGFuZCB0aGVuIGRldmljZSB3aWxsIGZhaWwgdG8gcmVzdG9yZSBiYXIgc3RhdGUuDQo+Pj4+DQo+
Pj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KPj4+
PiBTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0KPj4+PiAtLS0N
Cj4+Pj4gIGRyaXZlcnMveGVuL3BjaS5jICAgICAgICAgICAgICAgICAgfCAxMiArKysrKysrKysr
KysNCj4+Pj4gIGRyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMgfCAgMyArKysNCj4+
Pj4gIGluY2x1ZGUveGVuL2ludGVyZmFjZS9waHlzZGV2LmggICAgfCAgMiArKw0KPj4+PiAgaW5j
bHVkZS94ZW4vcGNpLmggICAgICAgICAgICAgICAgICB8ICA2ICsrKysrKw0KPj4+PiAgNCBmaWxl
cyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspDQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS9kcml2
ZXJzL3hlbi9wY2kuYyBiL2RyaXZlcnMveGVuL3BjaS5jDQo+Pj4+IGluZGV4IDcyZDRlM2YxOTNh
Zi4uZTliMzBiYzA5MTM5IDEwMDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJzL3hlbi9wY2kuYw0KPj4+
PiArKysgYi9kcml2ZXJzL3hlbi9wY2kuYw0KPj4+PiBAQCAtMTc3LDYgKzE3NywxOCBAQCBzdGF0
aWMgaW50IHhlbl9yZW1vdmVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4+Pj4gIAlyZXR1
cm4gcjsNCj4+Pj4gIH0NCj4+Pj4gIA0KPj4+PiAraW50IHhlbl9yZXNldF9kZXZpY2Vfc3RhdGUo
Y29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikNCj4+Pj4gK3sNCj4+Pj4gKwlzdHJ1Y3QgcGh5c2Rl
dl9wY2lfZGV2aWNlIGRldmljZSA9IHsNCj4+Pj4gKwkJLnNlZyA9IHBjaV9kb21haW5fbnIoZGV2
LT5idXMpLA0KPj4+PiArCQkuYnVzID0gZGV2LT5idXMtPm51bWJlciwNCj4+Pj4gKwkJLmRldmZu
ID0gZGV2LT5kZXZmbg0KPj4+PiArCX07DQo+Pj4+ICsNCj4+Pj4gKwlyZXR1cm4gSFlQRVJWSVNP
Ul9waHlzZGV2X29wKFBIWVNERVZPUF9wY2lfZGV2aWNlX3N0YXRlX3Jlc2V0LCAmZGV2aWNlKTsN
Cj4+Pj4gK30NCj4+Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKHhlbl9yZXNldF9kZXZpY2Vfc3RhdGUp
Ow0KPj4+PiArDQo+Pj4+ICBzdGF0aWMgaW50IHhlbl9wY2lfbm90aWZpZXIoc3RydWN0IG5vdGlm
aWVyX2Jsb2NrICpuYiwNCj4+Pj4gIAkJCSAgICB1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAq
ZGF0YSkNCj4+Pj4gIHsNCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNr
L3BjaV9zdHViLmMgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jDQo+Pj4+IGlu
ZGV4IGUzNGI2MjNlNGI0MS4uNWE5NmI2YzY2YzA3IDEwMDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJz
L3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jDQo+Pj4+ICsrKyBiL2RyaXZlcnMveGVuL3hlbi1w
Y2liYWNrL3BjaV9zdHViLmMNCj4+Pj4gQEAgLTQyMSw2ICs0MjEsOSBAQCBzdGF0aWMgaW50IHBj
aXN0dWJfaW5pdF9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldikNCj4+Pj4gIAllbHNlIHsNCj4+
Pj4gIAkJZGV2X2RiZygmZGV2LT5kZXYsICJyZXNldHRpbmcgKEZMUiwgRDMsIGV0YykgdGhlIGRl
dmljZVxuIik7DQo+Pj4+ICAJCV9fcGNpX3Jlc2V0X2Z1bmN0aW9uX2xvY2tlZChkZXYpOw0KPj4+
PiArCQllcnIgPSB4ZW5fcmVzZXRfZGV2aWNlX3N0YXRlKGRldik7DQo+Pj4+ICsJCWlmIChlcnIp
DQo+Pj4+ICsJCQlnb3RvIGNvbmZpZ19yZWxlYXNlOw0KPj4+DQo+Pj4gT2xkZXIgdmVyc2lvbnMg
b2YgWGVuIHdvbid0IGhhdmUgdGhlIGh5cGVyY2FsbA0KPj4+IFBIWVNERVZPUF9wY2lfZGV2aWNl
X3N0YXRlX3Jlc2V0IGltcGxlbWVudGVkLiBJIHRoaW5rIHdlIHNob3VsZCBkbw0KPj4+IHNvbWV0
aGluZyBsaWtlOg0KPj4+DQo+Pj4gaWYgKGVyciAmJiB4ZW5fcHZoX2RvbWFpbigpKQ0KPj4+ICAg
ICBnb3RvIGNvbmZpZ19yZWxlYXNlOw0KPj4+DQo+Pj4NCj4+PiBPciBldmVuOg0KPj4+DQo+Pj4g
aWYgKHhlbl9wdmhfZG9tYWluKCkpIHsNCj4+PiAgICAgZXJyID0geGVuX3Jlc2V0X2RldmljZV9z
dGF0ZShkZXYpOw0KPj4+ICAgICBpZiAoZXJyKQ0KPj4+ICAgICAgICAgZ290byBjb25maWdfcmVs
ZWFzZTsNCj4+PiB9DQo+Pj4NCj4+PiBkZXBlbmRpbmcgb24gd2hldGhlciB3ZSB3YW50IHRvIGNh
bGwgeGVuX3Jlc2V0X2RldmljZV9zdGF0ZSBhbHNvIGZvciBQVg0KPj4+IGd1ZXN0cyBvciBub3Qu
IEkgYW0gYXNzdW1pbmcgd2UgZG9uJ3Qgd2FudCB0byBlcnJvciBvdXQgb24gZmFpbHVyZSBzdWNo
DQo+Pj4gYXMgLUVOT0VOVCBmb3IgUFYgZ3Vlc3RzLg0KPj4gWWVzLCBvbmx5IGZvciBQVkggZG9t
MCwgSSB3aWxsIGFkZCB0aGUgY29uZGl0aW9uIGluIG5leHQgdmVyc2lvbi4gVGhhbmsgeW91IQ0K
PiANCj4gV2Ugd2lsbCB3YW50IHRvIGNhbGwgeGVuX3Jlc2V0X2RldmljZV9zdGF0ZSgpIGZvciBB
cm0gZG9tMCwgdG9vLCBzbyBjaGVja2luZyB4ZW5fcHZoX2RvbWFpbigpIGFsb25lIGlzIG5vdCBz
dWZmaWNpZW50LiBJIHN1Z2dlc3QgaW5zdGVhZCB0byBjaGVjayAheGVuX3B2X2RvbWFpbigpLg0K
SSBhbSBub3QgdXNpbmcgQXJtLiBCdXQgaXMgQXJtIGRvbTAgbm90IGEgUFZIIHR5cGUgZG9tMD8N
Cg0KPiANCj4+DQo+Pj4NCj4+Pg0KPj4+PiAgCQlwY2lfcmVzdG9yZV9zdGF0ZShkZXYpOw0KPj4+
PiAgCX0NCj4+Pj4gIAkvKiBOb3cgZGlzYWJsZSB0aGUgZGV2aWNlICh0aGlzIGFsc28gZW5zdXJl
cyBzb21lIHByaXZhdGUgZGV2aWNlDQo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRl
cmZhY2UvcGh5c2Rldi5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL3BoeXNkZXYuaA0KPj4+PiBp
bmRleCBhMjM3YWY4Njc4NzMuLjIzMTUyNmY4MGY2YyAxMDA2NDQNCj4+Pj4gLS0tIGEvaW5jbHVk
ZS94ZW4vaW50ZXJmYWNlL3BoeXNkZXYuaA0KPj4+PiArKysgYi9pbmNsdWRlL3hlbi9pbnRlcmZh
Y2UvcGh5c2Rldi5oDQo+Pj4+IEBAIC0yNjMsNiArMjYzLDggQEAgc3RydWN0IHBoeXNkZXZfcGNp
X2RldmljZSB7DQo+Pj4+ICAgICAgdWludDhfdCBkZXZmbjsNCj4+Pj4gIH07DQo+Pj4+ICANCj4+
Pj4gKyNkZWZpbmUgUEhZU0RFVk9QX3BjaV9kZXZpY2Vfc3RhdGVfcmVzZXQgICAgIDMyDQo+Pj4+
ICsNCj4+Pj4gICNkZWZpbmUgUEhZU0RFVk9QX0RCR1BfUkVTRVRfUFJFUEFSRSAgICAxDQo+Pj4+
ICAjZGVmaW5lIFBIWVNERVZPUF9EQkdQX1JFU0VUX0RPTkUgICAgICAgMg0KPj4+PiAgDQo+Pj4+
IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wY2kuaCBiL2luY2x1ZGUveGVuL3BjaS5oDQo+Pj4+
IGluZGV4IGI4MzM3Y2Y4NWZkMS4uYjJlMmU4NTZlZmQ2IDEwMDY0NA0KPj4+PiAtLS0gYS9pbmNs
dWRlL3hlbi9wY2kuaA0KPj4+PiArKysgYi9pbmNsdWRlL3hlbi9wY2kuaA0KPj4+PiBAQCAtNCwx
MCArNCwxNiBAQA0KPj4+PiAgI2RlZmluZSBfX1hFTl9QQ0lfSF9fDQo+Pj4+ICANCj4+Pj4gICNp
ZiBkZWZpbmVkKENPTkZJR19YRU5fRE9NMCkNCj4+Pj4gK2ludCB4ZW5fcmVzZXRfZGV2aWNlX3N0
YXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXYpOw0KPj4+PiAgaW50IHhlbl9maW5kX2Rldmlj
ZV9kb21haW5fb3duZXIoc3RydWN0IHBjaV9kZXYgKmRldik7DQo+Pj4+ICBpbnQgeGVuX3JlZ2lz
dGVyX2RldmljZV9kb21haW5fb3duZXIoc3RydWN0IHBjaV9kZXYgKmRldiwgdWludDE2X3QgZG9t
YWluKTsNCj4+Pj4gIGludCB4ZW5fdW5yZWdpc3Rlcl9kZXZpY2VfZG9tYWluX293bmVyKHN0cnVj
dCBwY2lfZGV2ICpkZXYpOw0KPj4+PiAgI2Vsc2UNCj4+Pj4gK3N0YXRpYyBpbmxpbmUgaW50IHhl
bl9yZXNldF9kZXZpY2Vfc3RhdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikNCj4+Pj4gK3sN
Cj4+Pj4gKwlyZXR1cm4gLTE7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gIHN0YXRpYyBpbmxpbmUg
aW50IHhlbl9maW5kX2RldmljZV9kb21haW5fb3duZXIoc3RydWN0IHBjaV9kZXYgKmRldikNCj4+
Pj4gIHsNCj4+Pj4gIAlyZXR1cm4gLTE7DQo+Pj4+IC0tIA0KPj4+PiAyLjM0LjENCj4+Pj4NCj4+
DQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 03:45:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 03:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646488.1008781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1r9zu0-0001FN-26; Mon, 04 Dec 2023 03:45:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646488.1008781; Mon, 04 Dec 2023 03: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 1r9ztz-0001FG-Vl; Mon, 04 Dec 2023 03:45:47 +0000
Received: by outflank-mailman (input) for mailman id 646488;
 Mon, 04 Dec 2023 03:45:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=y+Gv=HP=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1r9zty-0001FA-OW
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 03:45:46 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2062b.outbound.protection.outlook.com
 [2a01:111:f400:7e8a::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 992e4e82-9257-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 04:45:43 +0100 (CET)
Received: from BL1PR13CA0189.namprd13.prod.outlook.com (2603:10b6:208:2be::14)
 by SN7PR12MB7347.namprd12.prod.outlook.com (2603:10b6:806:29a::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.27; Mon, 4 Dec
 2023 03:45:38 +0000
Received: from MN1PEPF0000F0E5.namprd04.prod.outlook.com
 (2603:10b6:208:2be:cafe::30) by BL1PR13CA0189.outlook.office365.com
 (2603:10b6:208:2be::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22 via Frontend
 Transport; Mon, 4 Dec 2023 03:45:38 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000F0E5.mail.protection.outlook.com (10.167.242.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 03:45: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.34; Sun, 3 Dec
 2023 21:45:35 -0600
Received: from [172.27.137.28] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Sun, 3 Dec 2023 21:45:31 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 992e4e82-9257-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Z8yjozKDYYgAtYu82XyvXrhBToASlpy+QAdgHvzUv93BSJS9moa7KDDOVDHGyRNJaoGxezIlMti3MzjcXXTqkUCVmh4Du4uOCTIUgS+GF/+bzZ4uux72GB+btPgN7ydaOzD8rSOeYsLnifzIv0fSFdMgAEVrMe6lQQZPxx2kADk/RxRZ7ROA4SkmMYucuRZfKDJ3cyNVNUw0cAPwJybVDLtMFpom6qvUGPbGsq20nBEepzcRD7ZfmSw01GbpBFNjKnMf/7cQto2/l78aWGrsQk+325D/nnTh0+OoAHOfxM3uaH2j7NO5TtUzlskLVxGys0pPWuTCwTBw7H6xivPhXQ==
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=JaQ2MMiy6Jn8wfLuIiDszGFIPaf1JoUCtKXHgC9Kw8g=;
 b=VK6y6stcpGnHD7LT5dZrTWm3q9C/DFec7VSl3qOoPSOZxNbEUotDW+MRCNjUNTfwDfnB7OekDm3htM/3aPsV8bukviJTaNsJwjO11PatG+Ke5rotSZQHKHCPYJX2EmHjfPTtEO8GRSfseXjEbjJQXLT+NbnTjKl3AsjZ2vBFDPW1YviwzJebV1WQ46L1OUGAUnOgLHErEQUSgwXmq/sXwX7yNRzfYr+IInbbY7N+4+9D4NlEy5+JjKyPbDRjYALnWqFjFIwRZaPD5pUM/9Xypy6txqeBHjxDQGpCs7iiAmrjRmIrLJgYoBKUKB3uVmnmu005F0KxS0rQXldm3IV4JA==
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=JaQ2MMiy6Jn8wfLuIiDszGFIPaf1JoUCtKXHgC9Kw8g=;
 b=E9TG+hEs6fkpO3w8MYQCmOD7N3YvATN6wl+5M1KHM8aLhEHYDzhNgJte0RzNlWZ6FtGYfuQW7o47nij8HCmQCteHpqQk0AaVok4TfzFRWK3KT11bjM0kmlHREfyE6FjvzRFyaZxz6VVXzj/dWU1axaBpKmO+IasGDTD0LZm9Cdk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <4f21ce4f-7b79-47cb-baad-e31702b8887e@amd.com>
Date: Sun, 3 Dec 2023 22:45:30 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Content-Language: en-US
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: Juergen Gross <jgross@suse.com>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Thomas Gleixner <tglx@linutronix.de>, "Boris
 Ostrovsky" <boris.ostrovsky@oracle.com>, "Rafael J . Wysocki"
	<rafael@kernel.org>, Len Brown <lenb@kernel.org>, Bjorn Helgaas
	<bhelgaas@google.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "linux-acpi@vger.kernel.org"
	<linux-acpi@vger.kernel.org>, "Stabellini, Stefano"
	<stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, "Huang, Honglei1"
	<Honglei1.Huang@amd.com>, "Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-2-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291943260.3533093@ubuntu-linux-20-04-desktop>
 <BL1PR12MB58490EB260D226500141557EE782A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <f78395f3-6588-4bc9-8612-3450a8f44be7@amd.com>
 <BL1PR12MB5849C9BFEBECAF3C5BCBB09DE786A@BL1PR12MB5849.namprd12.prod.outlook.com>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <BL1PR12MB5849C9BFEBECAF3C5BCBB09DE786A@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E5:EE_|SN7PR12MB7347:EE_
X-MS-Office365-Filtering-Correlation-Id: 99e09e39-a133-4033-c156-08dbf47b7abf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	lH/1UGWZqIYIT8cQNn0ECF798tKZc7ufZzvhS/qFwNvMoQ/LwasxCZJSsG+1SYlSB0sV//1EYVemHcUjiLdSMtAOoefCHxCA+DcAHxVp1ypHAFPPJliFQ1Js+WkCJZ4UxGoHa8ms4qPkdxHEzU4XvzaMes3Dzb16vKEu1KJnk+2epmAFI3Xm0WtazaQgX53DvMItphU+x1QNMU2JFNZ+D3JEpq8OrW88Ljgd6RGl30amwgGkd4Ce1Ds5bItOFaeMsIEo17aSOaJ7SvVBhhTL7wWjC+48C/gqLjJ0eMoeD9tfjdOoHfP7jSDcTvFZGNRTFdxHdQat+vx+IrdJTVaY++uxka8J2Gag5IRPnCmHOeOL8cUbGpx+TBUtIHGYe/zDzmaySKhyyKur2UOjVJTjrNPh5EoLzAjC/g1SGeDbk5KzngBKK+5yQ3zCBcAwYeLBDqQCWjvciT7JerIvBAPU7GIa3A2OnVInJA7pZCSznvAclxy+brY0ZJ+xfYkPdO7ce3laCq6d0oHX35wLnCPxv3GX4w1FyVJ7mKsFHvrfRQtIayzqJuxZVF/VhtIiYPtraZLi8YqF3Z8lzNJR2RgmG4Udjp2wEexI/lDuEDsrLo5yZUq9gXujJilCNNW1sohPtJHf2VYIPmD776Tqdk9wYXhNLC1SWTKeKbGBuzkfG3j2WpGBj84+XZvWXma3tz/kfzgdm0yjpYGarhRozYOFJmIxZAKc0TfKO7EXGAulMHbFrbto4sqpa8W4FL6elNgzGw+JXQQjUCFiGREt/tLnx2/PScefqMIC7fSzKZGgM9a70BwBkmrUoQtJkYTrcVwk
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(136003)(376002)(346002)(396003)(230922051799003)(451199024)(186009)(64100799003)(82310400011)(1800799012)(36840700001)(40470700004)(46966006)(4326008)(8936002)(8676002)(31696002)(478600001)(53546011)(40460700003)(110136005)(316002)(16576012)(54906003)(31686004)(36860700001)(86362001)(47076005)(356005)(26005)(36756003)(40480700001)(2616005)(41300700001)(44832011)(70586007)(81166007)(2906002)(7416002)(82740400003)(70206006)(426003)(83380400001)(336012)(5660300002)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 03:45:38.0130
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 99e09e39-a133-4033-c156-08dbf47b7abf
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7347

On 12/3/23 22:25, Chen, Jiqian wrote:
> Hi Stewart,
> 
> On 2023/11/30 23:03, Stewart Hildebrand wrote:
>> On 11/30/23 02:03, Chen, Jiqian wrote:
>>>
>>> On 2023/11/30 11:46, Stefano Stabellini wrote:
>>>> On Fri, 24 Nov 2023, Jiqian Chen wrote:
>>>>> When device on dom0 side has been reset, the vpci on Xen side
>>>>> won't get notification, so that the cached state in vpci is
>>>>> all out of date with the real device state.
>>>>> To solve that problem, this patch add a function to clear all
>>>>> vpci device state when device is reset on dom0 side.
>>>>>
>>>>> And call that function in pcistub_init_device. Because when
>>>>> we use "pci-assignable-add" to assign a passthrough device in
>>>>> Xen, it will reset passthrough device and the vpci state will
>>>>> out of date, and then device will fail to restore bar state.
>>>>>
>>>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>>>> Signed-off-by: Huang Rui <ray.huang@amd.com>
>>>>> ---
>>>>>  drivers/xen/pci.c                  | 12 ++++++++++++
>>>>>  drivers/xen/xen-pciback/pci_stub.c |  3 +++
>>>>>  include/xen/interface/physdev.h    |  2 ++
>>>>>  include/xen/pci.h                  |  6 ++++++
>>>>>  4 files changed, 23 insertions(+)
>>>>>
>>>>> diff --git a/drivers/xen/pci.c b/drivers/xen/pci.c
>>>>> index 72d4e3f193af..e9b30bc09139 100644
>>>>> --- a/drivers/xen/pci.c
>>>>> +++ b/drivers/xen/pci.c
>>>>> @@ -177,6 +177,18 @@ static int xen_remove_device(struct device *dev)
>>>>>  	return r;
>>>>>  }
>>>>>  
>>>>> +int xen_reset_device_state(const struct pci_dev *dev)
>>>>> +{
>>>>> +	struct physdev_pci_device device = {
>>>>> +		.seg = pci_domain_nr(dev->bus),
>>>>> +		.bus = dev->bus->number,
>>>>> +		.devfn = dev->devfn
>>>>> +	};
>>>>> +
>>>>> +	return HYPERVISOR_physdev_op(PHYSDEVOP_pci_device_state_reset, &device);
>>>>> +}
>>>>> +EXPORT_SYMBOL_GPL(xen_reset_device_state);
>>>>> +
>>>>>  static int xen_pci_notifier(struct notifier_block *nb,
>>>>>  			    unsigned long action, void *data)
>>>>>  {
>>>>> diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
>>>>> index e34b623e4b41..5a96b6c66c07 100644
>>>>> --- a/drivers/xen/xen-pciback/pci_stub.c
>>>>> +++ b/drivers/xen/xen-pciback/pci_stub.c
>>>>> @@ -421,6 +421,9 @@ static int pcistub_init_device(struct pci_dev *dev)
>>>>>  	else {
>>>>>  		dev_dbg(&dev->dev, "resetting (FLR, D3, etc) the device\n");
>>>>>  		__pci_reset_function_locked(dev);
>>>>> +		err = xen_reset_device_state(dev);
>>>>> +		if (err)
>>>>> +			goto config_release;
>>>>
>>>> Older versions of Xen won't have the hypercall
>>>> PHYSDEVOP_pci_device_state_reset implemented. I think we should do
>>>> something like:
>>>>
>>>> if (err && xen_pvh_domain())
>>>>     goto config_release;
>>>>
>>>>
>>>> Or even:
>>>>
>>>> if (xen_pvh_domain()) {
>>>>     err = xen_reset_device_state(dev);
>>>>     if (err)
>>>>         goto config_release;
>>>> }
>>>>
>>>> depending on whether we want to call xen_reset_device_state also for PV
>>>> guests or not. I am assuming we don't want to error out on failure such
>>>> as -ENOENT for PV guests.
>>> Yes, only for PVH dom0, I will add the condition in next version. Thank you!
>>
>> We will want to call xen_reset_device_state() for Arm dom0, too, so checking xen_pvh_domain() alone is not sufficient. I suggest instead to check !xen_pv_domain().
> I am not using Arm. But is Arm dom0 not a PVH type dom0?

Apparently not, Arm dom0 appears to be a xen_hvm_domain() from the kernel's perspective.

> 
>>
>>>
>>>>
>>>>
>>>>>  		pci_restore_state(dev);
>>>>>  	}
>>>>>  	/* Now disable the device (this also ensures some private device
>>>>> diff --git a/include/xen/interface/physdev.h b/include/xen/interface/physdev.h
>>>>> index a237af867873..231526f80f6c 100644
>>>>> --- a/include/xen/interface/physdev.h
>>>>> +++ b/include/xen/interface/physdev.h
>>>>> @@ -263,6 +263,8 @@ struct physdev_pci_device {
>>>>>      uint8_t devfn;
>>>>>  };
>>>>>  
>>>>> +#define PHYSDEVOP_pci_device_state_reset     32
>>>>> +
>>>>>  #define PHYSDEVOP_DBGP_RESET_PREPARE    1
>>>>>  #define PHYSDEVOP_DBGP_RESET_DONE       2
>>>>>  
>>>>> diff --git a/include/xen/pci.h b/include/xen/pci.h
>>>>> index b8337cf85fd1..b2e2e856efd6 100644
>>>>> --- a/include/xen/pci.h
>>>>> +++ b/include/xen/pci.h
>>>>> @@ -4,10 +4,16 @@
>>>>>  #define __XEN_PCI_H__
>>>>>  
>>>>>  #if defined(CONFIG_XEN_DOM0)
>>>>> +int xen_reset_device_state(const struct pci_dev *dev);
>>>>>  int xen_find_device_domain_owner(struct pci_dev *dev);
>>>>>  int xen_register_device_domain_owner(struct pci_dev *dev, uint16_t domain);
>>>>>  int xen_unregister_device_domain_owner(struct pci_dev *dev);
>>>>>  #else
>>>>> +static inline int xen_reset_device_state(const struct pci_dev *dev)
>>>>> +{
>>>>> +	return -1;
>>>>> +}
>>>>> +
>>>>>  static inline int xen_find_device_domain_owner(struct pci_dev *dev)
>>>>>  {
>>>>>  	return -1;
>>>>> -- 
>>>>> 2.34.1
>>>>>
>>>
> 


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 03:54:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 03:54:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646493.1008792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA02k-000354-1l; Mon, 04 Dec 2023 03:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646493.1008792; Mon, 04 Dec 2023 03: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 1rA02j-00034x-Uf; Mon, 04 Dec 2023 03:54:49 +0000
Received: by outflank-mailman (input) for mailman id 646493;
 Mon, 04 Dec 2023 03:54: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=y+Gv=HP=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rA02i-00034r-Ns
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 03:54:48 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20616.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dcc7ac7e-9258-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 04:54:46 +0100 (CET)
Received: from BYAPR02CA0047.namprd02.prod.outlook.com (2603:10b6:a03:54::24)
 by CY5PR12MB6324.namprd12.prod.outlook.com (2603:10b6:930:f::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 03:54:42 +0000
Received: from DS3PEPF000099E1.namprd04.prod.outlook.com
 (2603:10b6:a03:54:cafe::cd) by BYAPR02CA0047.outlook.office365.com
 (2603:10b6:a03:54::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Mon, 4 Dec 2023 03:54:41 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099E1.mail.protection.outlook.com (10.167.17.196) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 03:54:41 +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.34; Sun, 3 Dec
 2023 21:54:41 -0600
Received: from [172.27.137.28] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Sun, 3 Dec 2023 21:54:39 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dcc7ac7e-9258-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Np0ScdIpxaP+lB5jhqoHna/+v9p85T9o739huNzeUYSRk1LX9/EEC57oDSTW/dDK3Cn9uF2IDPPdq0EPwz0mgumLmXmwHmyY0SPa5ERwLpOqXWGS22QkDK/Xr0ss7CUHgB6TwQ9gDjmD+Wh9dLToUdngqmv3d1nkwARjhfMo5rzH6lVcL5H1DSO63LPnAZ8xoofyPw7PHRLSN4dXxXdwrbRqfgybFxMba+7b3MfsxbhB50QVz1p5xbY14bujspJ2YNoV4Q6ABFTleE3ufXYrC0RVQcvuboAwo/TC8mjcWypCrl5/xOnq9OhHQ3rAsuZJr39VMYyGLgXAl4dsjaQacQ==
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=G0YDVnMB1/O75VR68CjooSPm0O7pOT1+GJYLgTmg150=;
 b=hTFQMu4AMvyoE3HCS/ZWv1z0hG6oTO9bBayzK3FEhQa0h2PBSKEn4Gyogh4g+q6HRt83b856R320PqRymJKPuk02FztVZfQ+KW40act0dwrcAKtlt6s5ca4q01zFXJW86s07p/x0fdMJjJfegaZ+ClT0WoykTklKTq7J+IObgTJ9VToTivVudbAXqtkxvrLnNvEh3cRZeheB/sAKeZWkxlmUweGFqXgbsRPIJ3y3ZiYSZaMaLlnOAjMuzDhpt/LpA0tojhNXhJyOrMS3xwJWX/YOoayltPi2wawN3kLE8RzwpTBfBgF1OTfLqiU+VRpNTsaxHJv4CMaOq5yophJe4g==
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=G0YDVnMB1/O75VR68CjooSPm0O7pOT1+GJYLgTmg150=;
 b=e+855axeQmG5pVyutpNz+KbOzYpgGEM9J4E3y44Yqs6/lZYPqTTxmHctO/BY6JJ1idtqwC0ctCCcM/iIkHQHKPAA8vzXQUIoQuHLIbDhfM0/GLNMIw9ZClEFV2X+Nl8ZKuiWl9h/nsJgv6qj83IoEE1yZ/nPIbFe7GCcvKFooMU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <c9a9421d-8f7b-453e-a583-4574367ae5f5@amd.com>
Date: Sun, 3 Dec 2023 22:54:34 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099E1:EE_|CY5PR12MB6324:EE_
X-MS-Office365-Filtering-Correlation-Id: ba254c34-02f9-4983-75c3-08dbf47cbeda
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Uwmud7ppXrlV3pZ37kvOMa8GGwqURihNzgH5otuBscHHDtBXMdkaHWQoQ+iZLG8UwM+rPcvUE6jI9ePgYiwH+Sv8j86mfiqOUw6O2Ask+ru07ZtLCWo/ALaMqFsIcSjpEaJhnxY0vtsoyeAZ5ggoAhYQWwTDmTg5NR/n0AWHKGTn7ocEnh5p4t58qDJ+bF+mUNKr7FLMjGz9jPKC3N17s3d754hT0pRQ5PdYqHeVnJ6zz7QbUpHxEw4VVJlbreOS1hMDblx3A6tl+GMTVtiCmB57ad44dYJ9u5V7XU6X9uvJgBnNer7lTQpMZXQoR3ubDjSVZKxhlgoc3VEKQ5MYBwsMBP15QXJ2rhBu8ZR/+L6rhyfhusXLbMH60JHdPPgZbKOCmPnH3mKP4hPqtjChzHFVXWT9f25376pqzfQ1FA0OspWkMiPuLTrPXzMD7yJCxsEftyqiuIv61k0+tT/R9SuCmXuKM4AaY70xmPzjmYgnsLvLrLvOSFeL1hfff0fRr+LP8M9S2ExL+zKPfEnc4htXxP6jCw9CesVJEnBGn7ePaxBHhtNX2Pf5kis/xVhCy5ftnEw1FmC3PuKABJR0B15fwHXdSn48zjQllYl7zZNPHHM1zNeM9KapyBiB7RquXpOSf6Rikk8kYwtzwiriqRLFMBtVUfO0mKkQX78zozAd/rcRicyG6heIvL48IJIblq8lZGnOjuo8CGpjGwvM1Cye17jvbtApdmetcoeiaNGxYEKYw8o3fik2WzuYEkdjOMYwnrhEYaqAvTw2wnIlE6JdcsrOo8RKJN5NsN+RMHzQNhzVsu/dNGxsnGctRGv02T8I+a3R2vTU7y0XCwwwd10tCOgm3zfA+rOB6gUcYqw=
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:(13230031)(4636009)(136003)(39860400002)(376002)(396003)(346002)(230273577357003)(230922051799003)(230173577357003)(64100799003)(451199024)(1800799012)(82310400011)(186009)(40470700004)(36840700001)(46966006)(70206006)(70586007)(316002)(16576012)(54906003)(110136005)(40460700003)(7416002)(2906002)(5660300002)(31696002)(41300700001)(86362001)(36756003)(4326008)(8936002)(8676002)(81166007)(356005)(82740400003)(44832011)(40480700001)(36860700001)(53546011)(426003)(336012)(83380400001)(47076005)(26005)(2616005)(31686004)(6666004)(478600001)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 03:54:41.7386
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ba254c34-02f9-4983-75c3-08dbf47cbeda
X-MS-Exchange-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:
	DS3PEPF000099E1.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6324

On 12/1/23 21:56, Stefano Stabellini wrote:
> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
>> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
>>> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
>>>          bus = PCI_BUS(machine_sbdf);
>>>          devfn = PCI_DEVFN(machine_sbdf);
>>>  
>>> +        if ( needs_vpci(d) && !has_vpci(d) )
>>> +        {
>>> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
>>> +                   &PCI_SBDF(seg, bus, devfn), d);
>>> +            ret = -EPERM;
>>> +            break;
>>
>> I think this is likely too restrictive going forward.  The current
>> approach is indeed to enable vPCI on a per-domain basis because that's
>> how PVH dom0 uses it, due to being unable to use ioreq servers.
>>
>> If we start to expose vPCI suport to guests the interface should be on
>> a per-device basis, so that vPCI could be enabled for some devices,
>> while others could still be handled by ioreq servers.
>>
>> We might want to add a new flag to xen_domctl_assign_device (used by
>> XEN_DOMCTL_assign_device) in order to signal whether the device will
>> use vPCI.
> 
> Actually I don't think this is a good idea. I am all for flexibility but
> supporting multiple different configurations comes at an extra cost for
> both maintainers and contributors. I think we should try to reduce the
> amount of configurations we support rather than increasing them
> (especially on x86 where we have PV, PVH, HVM).
> 
> I don't think we should enable IOREQ servers to handle PCI passthrough
> for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
> Passthrough can be handled by vPCI just fine. I think this should be a
> good anti-feature to have (a goal to explicitly not add this feature) to
> reduce complexity. Unless you see a specific usecase to add support for
> it?

Just to preemptively clarify: there is a use case for passthrough (vPCI) and emulated virtio-pci devices (ioreq). However, the XEN_DOMCTL_assign_device hypercall, where this check is added, is only used for real physical hardware devices as far as I can tell. So I agree, I can't see a use case for passing through some physical devices with vPCI and some physical devices with qemu/ioreq.

With that said, the plumbing for a new flag does not appear to be particularly complex. It may actually be simpler than introducing a per-arch needs_vpci(d) heuristic.

diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 96cb4da0794e..2c38088a4772 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -1113,6 +1113,7 @@ typedef struct pci_add_state {
     libxl_device_pci pci;
     libxl_domid pci_domid;
     int retries;
+    bool vpci;
 } pci_add_state;

 static void pci_add_qemu_trad_watch_state_cb(libxl__egc *egc,
@@ -1176,6 +1177,10 @@ static void do_pci_add(libxl__egc *egc,
         }
     }

+    if (type == LIBXL_DOMAIN_TYPE_PVH /* includes Arm guests */) {
+        pas->vpci = true;
+    }
+
     rc = 0;

 out:
@@ -1418,7 +1423,8 @@ static void pci_add_dm_done(libxl__egc *egc,
     unsigned long long start, end, flags, size;
     int irq, i;
     int r;
-    uint32_t flag = XEN_DOMCTL_DEV_RDM_RELAXED;
+    uint32_t flag = XEN_DOMCTL_DEV_RDM_RELAXED |
+                    (pas->vpci ? XEN_DOMCTL_DEV_USES_VPCI : 0);
     uint32_t domainid = domid;
     bool isstubdom = libxl_is_stubdom(ctx, domid, &domainid);

diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 2203725a2aa6..7786da1cf1e6 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1630,7 +1630,7 @@ int iommu_do_pci_domctl(
         bus = PCI_BUS(machine_sbdf);
         devfn = PCI_DEVFN(machine_sbdf);

-        if ( needs_vpci(d) && !has_vpci(d) )
+        if ( (flags & XEN_DOMCTL_DEV_USES_VPCI) && !has_vpci(d) )
         {
             printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
                    &PCI_SBDF(seg, bus, devfn), d);
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8b3ea62cae06..5735d47219bc 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -527,6 +527,7 @@ struct xen_domctl_assign_device {
     uint32_t dev;   /* XEN_DOMCTL_DEV_* */
     uint32_t flags;
 #define XEN_DOMCTL_DEV_RDM_RELAXED      1 /* assign only */
+#define XEN_DOMCTL_DEV_USES_VPCI        (1 << 1)
     union {
         struct {
             uint32_t machine_sbdf;   /* machine PCI ID of assigned device */


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 05:03:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 05:03:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646499.1008801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA16Y-0005eQ-UH; Mon, 04 Dec 2023 05:02:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646499.1008801; Mon, 04 Dec 2023 05: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 1rA16Y-0005eJ-Rn; Mon, 04 Dec 2023 05:02:50 +0000
Received: by outflank-mailman (input) for mailman id 646499;
 Mon, 04 Dec 2023 05: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=dRte=HP=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1rA16X-0005eC-Eu
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 05:02: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 5cd5ad94-9262-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 06:02:45 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a1b68ae40ffso84277766b.0
 for <xen-devel@lists.xenproject.org>; Sun, 03 Dec 2023 21:02:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5cd5ad94-9262-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701666165; x=1702270965; 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=kArH217FK6O2EcTfOMwWn1+JeyULlLjEiCM5F+n9/Tk=;
        b=HCfLPQTajk1HWVoi+3ne07h86IEYNYdt79yB6LVjheVzvyQjvo6FMWOTQsIf/PQya6
         zvnhj/EDTeWcTW5nzy7i3jRnZVEl+mfMcg1IVqzH5qSDQQBa5z4Inxqu/ADno6zoaB2N
         zBN2Y9Y7B1zNRqQ2bTybHyqnu2shnxJYhUWm0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701666165; x=1702270965;
        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=kArH217FK6O2EcTfOMwWn1+JeyULlLjEiCM5F+n9/Tk=;
        b=lmiLuMqsEH9PdZy62ztU6ORO5e5pJpxHogupeBgTiOflcsXVh+2yqUMcrxNdX9/Hjl
         1+wNa038bDxxDmRacMgXNKINeuATRhIR1snkSMd8cTpi5ioGWHqUANvrb+oPwa23obE8
         SqJHupdqndg8T5lb8oMA0ud3mOGX/lKWaqzuqNvu6IlEypRT0AT42RQLKgOE+dszXD6a
         p0rslZT6LCT/NXcAPA3oU+COUbnRbkmQl8tOGmfrZOk9dyibTTIbPogWpdoRkmyArf1A
         wXrRRnMkgMtNhu+VILcN/hIbofJPuR/kG0CwO7CXzSCOH2dJbfHj2baNeiscnNF1sYXO
         H83g==
X-Gm-Message-State: AOJu0Yz3w3pSv41WH4tV7QquzUe8lae3BHWS1Gh4JfA6N5QCFc3mnTTk
	t9ib1iynnqv2fZKcZ4cMOWN6jeHp2ni2v7+hzsLKsQUur7/K2G5LCfdm6A==
X-Google-Smtp-Source: AGHT+IEpgqFsQeUzg+TlgfX406K26kL0h/Vzj/x3Bi81YnkixB6RhaCNzaZi7j8w+Td0XKY6r8pqqxY1IRRvAiZG/Ts=
X-Received: by 2002:a17:906:dfe9:b0:a19:9b79:8b4f with SMTP id
 lc9-20020a170906dfe900b00a199b798b4fmr2052198ejc.96.1701666165101; Sun, 03
 Dec 2023 21:02:45 -0800 (PST)
MIME-Version: 1.0
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
 <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
 <alpine.DEB.2.22.394.2312011253390.110490@ubuntu-linux-20-04-desktop> <CA+zSX=aZf1UQt2eE0byMgwL+3EfW3B6CJkUHuFBVGA7Na=9gqA@mail.gmail.com>
In-Reply-To: <CA+zSX=aZf1UQt2eE0byMgwL+3EfW3B6CJkUHuFBVGA7Na=9gqA@mail.gmail.com>
From: Kelly Choi <kelly.choi@cloud.com>
Date: Mon, 4 Dec 2023 05:02:08 +0000
Message-ID: <CAO-mL=ybm=AGyeerpngwQBTn6995z937bR5Gf8Qd5vP8MmR2TQ@mail.gmail.com>
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
To: George Dunlap <george.dunlap@cloud.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org, 
	committers@xenproject.org
Content-Type: multipart/alternative; boundary="0000000000004c33f8060ba80777"

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

Hi everyone,

Thank you for your feedback.

Firstly, let me apologise if I have caused confusion with the form. It was
not intended to be a one answer fits all within the community. Rather, it
was created to give community members an option to share how they feel
about the term, with the example mentioned. In the future, I want to ensure
you that I have taken your feedback on board and wider context will be
provided. I'll also make sure that maintainers/committers are CC'd into the
threads.

The form was created as a method to understand the wider view of the
community, whilst making it easier to track responses. The key takeaways
here are what Stefano has addressed earlier: that we should reach a
consensus quicker rather than continue what some would consider nitpicking
small things.

Following the discussions above and my previous emails, we will be adding
informal voting to the governance guidelines and reviewing other ways to
better collaborate. Some suggestions for improvement include discussing
ways in which the wider community can address their concerns, having the
ability to vote, and potentially electing an arbiter or technical steering
committee for similar situations. I will be sending out further
communications and discussing this with the community at a later date.

In the specific example above, it's difficult in the sense that informal
voting wasn't officially in the governance yet when the feedback was
raised. What I would recommend in this instance is that if George and
others feel very strongly about removing that term and have given a proper
explanation, then I'd advise calling an informal vote within the thread and
following the decision. Alternatively if after this conversation, members
understand Andy's point of view and the term doesn't have serious
consequences - let's agree with what Andy inputted in the first place and
move this project ahead.  In an ideal world, we wouldn't require voting,
but rather a discussion. However, if there are strong opinions for/against
a specific decision that is causing us to be at a standstill, this is where
informal voting helps.

*I have updated the form
<https://cryptpad.fr/form/#/2/form/view/7ByH95Vd7KiDOvN4wjV5iUGlMuZbkVdwk7c=
YpZdluWo/>
with wider context and other options to reflect a 5-point survey, should
anyone wish to express/change their vote. It would be good to view how the
community feels about this in general, which should guide us in future
similar situations. *

I just want to reiterate that we all working towards a common goal within
the project, and although disagreements can arise, we should always seek
ways to compromise.

Many thanks,
Kelly Choi

Xen Project Community Manager
XenServer, Cloud Software Group


On Fri, Dec 1, 2023 at 11:03=E2=80=AFPM George Dunlap <george.dunlap@cloud.=
com>
wrote:

> On Fri, Dec 1, 2023 at 9:44=E2=80=AFPM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
> > By the informal
> > voting, we have 3 against "broken" and 2 in favor (not 1 as George wrot=
e
> > as Andrew's vote counts too).
>
> Just to clarify: The opinions on that thread (if you include all
> versions of the series) were:
>
> Andy, Daniel for keeping "broken
> Julien, Jan, Stefano, George: for changing "broken"
>
> That's the "2 (+) / 4 split" I referred to (The "(+)" being the people
> who agreed with Andy in private).  Regarding voting, I was only
> counting the maintainers of the code in question; it coming under THE
> REST, that would include everyone except Daniel; hence 1 - 4.  Not at
> all that Daniel's opinion doesn't matter, but that from a governance
> perspective, it's the maintainers (and then the committers) who get
> votes in the case of a formal escalation.
>
>  -George
>

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

<div dir=3D"ltr">Hi everyone,<div><br></div><div>Thank you for your feedbac=
k.=C2=A0</div><div><br></div><div>Firstly, let me apologise if I have cause=
d confusion=C2=A0with the form. It was not intended to be a one answer fits=
 all within the community. Rather, it was created to give community members=
 an option to share how they feel about the term,=C2=A0with the example men=
tioned. In the future, I want to ensure you that I have taken your feedback=
 on board and wider context will be provided. I&#39;ll also make sure that =
maintainers/committers are CC&#39;d into the threads.=C2=A0=C2=A0</div><div=
><br></div><div>The form was created as a method to understand the wider vi=
ew of the community, whilst making it easier to track responses. The key ta=
keaways here are what Stefano has addressed earlier: that we should reach a=
 consensus quicker rather than continue what some would consider nitpicking=
 small things.=C2=A0</div><div><br></div><div>Following the discussions abo=
ve and my previous emails, we will be adding informal voting to the governa=
nce guidelines and reviewing other ways to better collaborate. Some suggest=
ions for improvement include discussing ways in which the wider community=
=C2=A0can address their concerns, having the ability to vote, and potential=
ly electing an arbiter or technical steering committee for similar situatio=
ns. I will be sending out further communications and discussing this with t=
he community at a later date.</div><div><br></div><div>In the specific exam=
ple above, it&#39;s difficult in the sense that informal voting wasn&#39;t =
officially in the governance yet when the feedback was raised. What I would=
=C2=A0recommend in this instance is that if George and others feel very str=
ongly about removing that term and have given a proper explanation, then I&=
#39;d advise calling an informal=C2=A0vote within the thread and following =
the decision. Alternatively if after this conversation, members understand =
Andy&#39;s point of view and the term doesn&#39;t have serious consequences=
 - let&#39;s agree with what Andy inputted in the first place and move this=
 project ahead.=C2=A0 In an ideal world, we wouldn&#39;t require voting, bu=
t rather a discussion. However, if there are strong opinions for/against a =
specific decision that is causing us to be at a standstill, this is where i=
nformal voting helps.</div><div><b><br></b></div><div><b>I have updated the=
 <a href=3D"https://cryptpad.fr/form/#/2/form/view/7ByH95Vd7KiDOvN4wjV5iUGl=
MuZbkVdwk7cYpZdluWo/">form</a> with wider context and other options to refl=
ect a 5-point survey, should anyone wish to express/change their vote. It w=
ould be good to view how the community feels about=C2=A0this in general, wh=
ich should guide us in future similar situations.=C2=A0</b></div><div><br><=
/div><div>I just want to reiterate that we all working towards a common goa=
l within the project, and although disagreements can arise, we should alway=
s seek ways to compromise.=C2=A0=C2=A0</div><div><br clear=3D"all"><div><di=
v dir=3D"ltr" class=3D"gmail_signature" 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)">Xen Project Community Manager</=
div><div style=3D"color:rgb(136,136,136)">XenServer, Cloud Software Group</=
div></div></div></div></div><br></div></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Fri, Dec 1, 2023 at 11:03=E2=80=AF=
PM George Dunlap &lt;<a href=3D"mailto:george.dunlap@cloud.com">george.dunl=
ap@cloud.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">On Fri, Dec 1, 2023 at 9:44=E2=80=AFPM Stefano Stabellini<br>
&lt;<a href=3D"mailto:sstabellini@kernel.org" target=3D"_blank">sstabellini=
@kernel.org</a>&gt; wrote:<br>
&gt; By the informal<br>
&gt; voting, we have 3 against &quot;broken&quot; and 2 in favor (not 1 as =
George wrote<br>
&gt; as Andrew&#39;s vote counts too).<br>
<br>
Just to clarify: The opinions on that thread (if you include all<br>
versions of the series) were:<br>
<br>
Andy, Daniel for keeping &quot;broken<br>
Julien, Jan, Stefano, George: for changing &quot;broken&quot;<br>
<br>
That&#39;s the &quot;2 (+) / 4 split&quot; I referred to (The &quot;(+)&quo=
t; being the people<br>
who agreed with Andy in private).=C2=A0 Regarding voting, I was only<br>
counting the maintainers of the code in question; it coming under THE<br>
REST, that would include everyone except Daniel; hence 1 - 4.=C2=A0 Not at<=
br>
all that Daniel&#39;s opinion doesn&#39;t matter, but that from a governanc=
e<br>
perspective, it&#39;s the maintainers (and then the committers) who get<br>
votes in the case of a formal escalation.<br>
<br>
=C2=A0-George<br>
</blockquote></div>

--0000000000004c33f8060ba80777--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 05:38:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 05:38:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646502.1008811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA1eq-0002Em-Io; Mon, 04 Dec 2023 05:38:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646502.1008811; Mon, 04 Dec 2023 05:38: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 1rA1eq-0002Ef-FJ; Mon, 04 Dec 2023 05:38:16 +0000
Received: by outflank-mailman (input) for mailman id 646502;
 Mon, 04 Dec 2023 05:38: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=5cgf=HP=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rA1eo-0002EW-QR
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 05:38:15 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20613.outbound.protection.outlook.com
 [2a01:111:f400:7e8d::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4fc11760-9267-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 06:38:12 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MN2PR12MB4341.namprd12.prod.outlook.com (2603:10b6:208:262::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 05:38:07 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023
 05:38: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: 4fc11760-9267-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Jid3Qlpwx8EfBnEp/yJAmVtPKThOQj0ouyG/u2X4qA7L35yHxdyHFuJRD/Jhq6qF1CyO2xANfLCs347CuyrlHqVyAFvIbI48boE3GO9OBw4XLpgFX27X+DIEaMj+iefZ2g5HWWcf0/53nr6fS+53elNUBZ0fE+OOAQwrlKNCjrtFqkj6bHIiy5eXsNw8pIiocMg08Bt4O/uiOonORm6XmkdMkxAI68FVJAMMhowqiajq1r42bw9/V34tW/J2/mN+LOSGPqW0SltxbtOao7MmodmMZtUlpMY2emAUlVPbDHNMvMqUsGe9S3f+RTq3BYazOmDwIhXygNz65HwN9ZV0rg==
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=C+jHOA5crJQE/M3R4WqciUpK6ckU/ukqoKfvEV+sg+4=;
 b=nVPx2iV2mZcFTMpzZNVntpbBjJNPjnjTFcvHHqibHaOW5ajUCGoXOXCffy7ZQbOAriaCO4Dwc65I71mpT3PhyfItAkFGCtps4OgTqVTYD8Gl04z+EGsk7/n7c1hzR0bJ/gmW7Jihofn4uwIudpc7JExnWCl6n7AEVdOVn+K+T143vkXqrZkuZNUi0H4SuU508VUaOH6XfYwcyq2JmVCUHc0VQszS05tOpCJiMUXmLpgrBDR2WbQhGuK4r9H7eM0u+0FHMm0s+ubThI/8qrcraQ1Exwsw+Pvf5bpKEryPxJCvLqUKtqR0GHj5FOXink0yYPxP9lT3N8dNMt8vglBpZg==
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=C+jHOA5crJQE/M3R4WqciUpK6ckU/ukqoKfvEV+sg+4=;
 b=1yW5OW0Yekj4tIhsOw9Kx+lgiW4lmyS07lP+oEwyZ/GM/XzA98dI5cSBQ5N8gOuU9jdE5wPK7PSlkDGw66LxkR5yY2JGRSwkBn/4Q/+bJpOYTE6KBEHdEPviMbKoyGHVtGuNMAMRy+y4LC6RaQUgoWSbGsxUUaUAKDyP1N8k5WA=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>
CC: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>, "Zhang,
 Julia" <Julia.Zhang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v2 3/3] tools: Add new function to get gsi from
 irq
Thread-Topic: [RFC XEN PATCH v2 3/3] tools: Add new function to get gsi from
 irq
Thread-Index:
 AQHaHsLpM7vOINXdREip1dGZpT1r3bCPz92AgAJv+QCAAAbDAIAAZb6AgAEdpwCAAGLbgIAFAhuA
Date: Mon, 4 Dec 2023 05:38:06 +0000
Message-ID:
 <BL1PR12MB5849CEDE0F018E0DB86D8E2BE786A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124104136.3263722-1-Jiqian.Chen@amd.com>
 <20231124104136.3263722-4-Jiqian.Chen@amd.com> <ZWX4R9UEE6oXiqaz@macbook>
 <alpine.DEB.2.22.394.2311291937170.3533093@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2311291956130.3533093@ubuntu-linux-20-04-desktop>
 <ZWheuUjLxShoQ_qn@macbook>
 <alpine.DEB.2.22.394.2311301907370.110490@ubuntu-linux-20-04-desktop>
 <ZWmhRb6Ne4vgplzM@macbook>
In-Reply-To: <ZWmhRb6Ne4vgplzM@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5111.namprd12.prod.outlook.com
 (15.20.7068.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_|MN2PR12MB4341:EE_
x-ms-office365-filtering-correlation-id: 2da88765-61e4-445b-ea82-08dbf48b3128
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 o4+Tihki9OQKeOCz9MHdpsAz0btzcrGG3EEiJ36lkFy0mdl5ceK7AKSgbPjPSqEgTYI+v/RJ3czbzG6AnmWihAnoYER7SEhab+zCUV/NYQV2TMxTOnsP2X07UsnwUQSrUDA/NRR/nAkJCl46KJkBErGlcPX+Ztc3wVtnK1Jiwt7k9NOMvFLizmbZwuYwheIzXu/zXhwUX4vrLfOZtZmBkFpVlN1OW1/hEkYLsoSD5q3CCPBbetXRE3wHimWisqlzuiw+bfA/RNJpIdFh7EEltzgtfT0fETsCLgHsRKmEtJ4KaMow6K5BGc2a9LRMvrVIVQ+LTynb9FM4U6srGEf7OSRezd4FTb3iFeafQSYFniwo91usJSe3Fri+fssmjDyECFqE8ic/moXB3ImgkvdFrina4Twa6wfgPOPSEkNdmDkTgzD/hMxOOP/V0HdZdAWE9zy+U+RKQ8LdbehEGVpGG476JsC/ylWHe4K/FrN9kjL2/Yw1DgMe+avgZHbQ8PlMONndE+LNVmgAqS+WSPVZE241/HnuEWPl4T82lLKVhGo0QiWcUgSwyAWi8PUm2E/E2OdeQB07P2QaCQyq83bdcDZvQDr8gGhzWhIo2svr+G50IJOG/zHeXFXgBdf8FzEh
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:(13230031)(136003)(366004)(39860400002)(396003)(376002)(346002)(230922051799003)(186009)(451199024)(1800799012)(64100799003)(66556008)(66446008)(64756008)(54906003)(316002)(8936002)(8676002)(4326008)(66946007)(66476007)(52536014)(478600001)(110136005)(76116006)(41300700001)(5660300002)(2906002)(33656002)(122000001)(38100700002)(26005)(7696005)(6506007)(71200400001)(9686003)(53546011)(38070700009)(55016003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZTB4eEt1UU5zd0dhMXB1RHB4VGl0dkJlakRIZjNTd3g3bzBCMXNkdFNDTlhr?=
 =?utf-8?B?QTRGbzVBVnZqTTc1TUs4SmlvejdoajhzYi9ubWprNnVSaFFPRzRqTUh4L092?=
 =?utf-8?B?eDNrc0lCcVB1SE5wc0VyMlBqcUZIaU9pWlNhNml5RHdhYm9mMmtLTExrZThV?=
 =?utf-8?B?U0Z6cFZzNm43UFpCMGRSamtrUGtVbE9KSzVMTVRiUCtSbkJjSzFSdEhtL2t3?=
 =?utf-8?B?UG1JRDQrU3BXeUxjeDdJOEhRQWN3VjZtUnZEQnJnKzVaaVlmUUxmQzljWkxQ?=
 =?utf-8?B?bHRqdm9nV0xoZHE2VHpJcDQrOHhXdE1sTzhEejV1N2g5cE5iV1UvT00vTnZM?=
 =?utf-8?B?NGlRdEpHUDF3VXJkdHNPV3ZkQ3lTVUQwUU1RbmtWM2IzNzYxbUlCNFVkT1Z5?=
 =?utf-8?B?bHMyZnY3bk0rTGRPaFo5YWs5cDZjdkR6MkwzenY3OTl0QUpha09JblB0SG85?=
 =?utf-8?B?Q0xvS3Z2a0FGd3BkMkRaMkJteUhtOUVnNnovMHZXdlRoSCtNU1Nxc2FHdUlS?=
 =?utf-8?B?OFU0NHpiSlFRRklBKzB5SkJ3MVVGR2J0M2hBZ0txVUFPSFU1ZWpqaGp6MkJv?=
 =?utf-8?B?SWJCcFkvcG85NVkxUXg4ODZjUlA0S1BzaHVncGROU0ovZ3BnOU5nTmlFZEpI?=
 =?utf-8?B?eHpJRnN0ZlI1bE5iLzltTVZQSTFUMUxpZk5xSGl2cVhmRUp2b3NJOW1sYjFT?=
 =?utf-8?B?RTVNbm9vT3Awb01sNFJuRmE5UmpCbTRXSHJyekJKc2NXYTUycG1STURhOVN6?=
 =?utf-8?B?SGE3b2FZanpkQVluWS9sTjNGMWlETWl6SmIrYVpWK0o3UnI0dC9RUm1aa0VG?=
 =?utf-8?B?VTVITkNrV0JDWmtBaG9sTFhOWFJGTnhmdGg1SjV0ZW5pWDZPZEJ4b0lCeTJy?=
 =?utf-8?B?QUhUSDNnR0Q1UXBVTUFCaXc0ekVJbDE5aHVnNVhic1pyZnMwYnFWWW5ibmRu?=
 =?utf-8?B?elJmYy9uUHh3K1lROWFZSitKcDVXOHA4K1JLV21XUHZVNkZhM0NaMDNqRi9w?=
 =?utf-8?B?M2NURmpoZkdNaGFNYTJmdCtXcVhSRWVOQ0VESXhCN2pIenRnVkFQcXljUVNo?=
 =?utf-8?B?VkpQQkxqQldQczNpY1dHSGJuZVZXOFpwQS9KTTVUSVVWQUhRU0RPT3kycHJh?=
 =?utf-8?B?Q0VRZ2Y0RWRDSnVaMEYrdEhUaUQzWEhkZmgzT3QxV2RDbitCZS8yVDBtZWk3?=
 =?utf-8?B?UmlGcGpLZWxoRXora0pRbTFMajJIV3VDOWJuZnJtQlRFOEpPVzJYOG1NMmsy?=
 =?utf-8?B?WG92aU83Mis4MFM2c3VtVUJKMlBoS3hlZkozYU1xT2c1V25oeGROT3ppb3My?=
 =?utf-8?B?L0JBR2JlTUJvNk1RVkhSYm5ZSk16Mk4vdHJGSGZiZWcxcFpWRzFidDhtcGR5?=
 =?utf-8?B?RzNOU2tzWVZLQnpkOFZ3UTdpQmQydENGTERjYXBxc0xqT2p0cXZRNXJwYzlQ?=
 =?utf-8?B?R1lQODZuVUU3RmNNZFA3RmVndUlmUjBOdmEvVkdnTkFrVVlaWTlzSThlWG84?=
 =?utf-8?B?MWNHQlI0NjhyZTVFZ3JicCswTG1lM2FLbG9xNkNHR215WHYxSkh5MXNiNW8x?=
 =?utf-8?B?S1B5MnE1OWZjci9XdXo1bTJTU2k2anhpQ3ZKNHVTREJuclpVS1hac2VPV2x2?=
 =?utf-8?B?TmV1ZVZJNHRXSlpuTVNmU2d5VE9wT2dwRkNpVXNiL0QvZHBIK2Z2SndGK09Z?=
 =?utf-8?B?RFB6YUFxZFBGTnM0YjJYd0NobWxCMS9UQUtacDhkSlVKOVZtQS9VSXBiTkJZ?=
 =?utf-8?B?aGlPWXFDU2hrcE9TRyszVjBlV0xKMERJM3BqM2lOV0wwR2Y2R0tseEliVmY1?=
 =?utf-8?B?MmhRM00ySTlXdU5IcHZrejlTV3BjSUFycUZyOG9SeUIrb3hScjdRQjFkRXJX?=
 =?utf-8?B?cS9JSktxRldzNkpUcjJFeE9RRXY1d3ExZTBNTTZyTjJWYUNHTXh1MDJIMVVZ?=
 =?utf-8?B?RWpzbkZya3dQUFVPd1dwWnc3V2dBSUxFK1FzdkhiNDl1T2F2YkNjZHlZTUlC?=
 =?utf-8?B?SGZQSHNCNTFWdE5EZXVVdWVTVHVVVjhlQUF5eW5STW4yVGMwZnc1WC9vSzFo?=
 =?utf-8?B?TmNFblhjMWN4OWNjTVVlT21vWmxTdVVFMlNlRGNGcmtwYjBnVjM1MHpLc3Bv?=
 =?utf-8?Q?AyA0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CBDA34E66990694B9D022FB05F60D3D6@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: 2da88765-61e4-445b-ea82-08dbf48b3128
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2023 05:38:06.5413
 (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: iCIgUU3QzN8Cc8F9TGm+Yt+XR52GpljkTlL40Ok/oOf4EuY8dUC1GA6CMp38KUt/BCO22kmf7k7ITH724+K55w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4341

T24gMjAyMy8xMi8xIDE3OjAzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBUaHUsIE5v
diAzMCwgMjAyMyBhdCAwNzowOToxMlBNIC0wODAwLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6
DQo+PiBPbiBUaHUsIDMwIE5vdiAyMDIzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4+IE9u
IFdlZCwgTm92IDI5LCAyMDIzIGF0IDA4OjAyOjQwUE0gLTA4MDAsIFN0ZWZhbm8gU3RhYmVsbGlu
aSB3cm90ZToNCj4+Pj4gbiBXZWQsIDI5IE5vdiAyMDIzLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3Jv
dGU6DQo+Pj4+PiBPbiBUdWUsIDI4IE5vdiAyMDIzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0K
Pj4+Pj4+IE9uIEZyaSwgTm92IDI0LCAyMDIzIGF0IDA2OjQxOjM2UE0gKzA4MDAsIEppcWlhbiBD
aGVuIHdyb3RlOg0KPj4+Pj4+PiBJbiBQVkggZG9tMCwgaXQgdXNlcyB0aGUgbGludXggbG9jYWwg
aW50ZXJydXB0IG1lY2hhbmlzbSwNCj4+Pj4+Pj4gd2hlbiBpdCBhbGxvY3MgaXJxIGZvciBhIGdz
aSwgaXQgaXMgZHluYW1pYywgYW5kIGZvbGxvdw0KPj4+Pj4+PiB0aGUgcHJpbmNpcGxlIG9mIGFw
cGx5aW5nIGZpcnN0LCBkaXN0cmlidXRpbmcgZmlyc3QuIEFuZA0KPj4+Pj4+PiBpZiB5b3UgZGVi
dWcgdGhlIGtlcm5lbCBjb2RlcywgeW91IHdpbGwgZmluZCB0aGUgaXJxDQo+Pj4+Pj4+IG51bWJl
ciBpcyBhbGxvY2VkIGZyb20gc21hbGwgdG8gbGFyZ2UsIGJ1dCB0aGUgYXBwbHlpbmcNCj4+Pj4+
Pj4gZ3NpIG51bWJlciBpcyBub3QsIG1heSBnc2kgMzggY29tZXMgYmVmb3JlIGdzaSAyOCwgdGhh
dA0KPj4+Pj4+PiBjYXVzZXMgdGhlIGlycSBudW1iZXIgaXMgbm90IGVxdWFsIHdpdGggdGhlIGdz
aSBudW1iZXIuDQo+Pj4+Pj4+IEFuZCB3aGVuIHdlIHBhc3N0aHJvdWdoIGEgZGV2aWNlLCBRRU1V
IHdpbGwgdXNlIGl0cyBnc2kNCj4+Pj4+Pj4gbnVtYmVyIHRvIGRvIG1hcHBpbmcgYWN0aW9ucywg
c2VlIHhlbl9wdF9yZWFsaXplLT4NCj4+Pj4+Pj4geGNfcGh5c2Rldl9tYXBfcGlycSwgYnV0IHRo
ZSBnc2kgbnVtYmVyIGlzIGdvdCBmcm9tIGZpbGUNCj4+Pj4+Pj4gL3N5cy9idXMvcGNpL2Rldmlj
ZXMveHh4eDp4eDp4eC54L2lycSBpbiBjdXJyZW50IGNvZGUsDQo+Pj4+Pj4+IHNvIGl0IHdpbGwg
ZmFpbCB3aGVuIG1hcHBpbmcuDQo+Pj4+Pj4+IEFuZCBpbiBjdXJyZW50IGNvZGVzLCB0aGVyZSBp
cyBubyBtZXRob2QgdG8gdHJhbnNsYXRlDQo+Pj4+Pj4+IGlycSB0byBnc2kgZm9yIHVzZXJzcGFj
ZS4NCj4+Pj4+Pg0KPj4+Pj4+IEkgdGhpbmsgaXQgd291bGQgYmUgY2xlYW5lciB0byBqdXN0IGlu
dHJvZHVjZSBhIG5ldyBzeXNmcyBub2RlIHRoYXQNCj4+Pj4+PiBjb250YWlucyB0aGUgZ3NpIGlm
IGEgZGV2aWNlIGlzIHVzaW5nIG9uZSAobXVjaCBsaWtlIHRoZSBpcnEgc3lzZnMNCj4+Pj4+PiBu
b2RlKT8NCj4+Pj4+Pg0KPj4+Pj4+IFN1Y2ggaW9jdGwgdG8gdHJhbnNsYXRlIGZyb20gSVJRIHRv
IEdTSSBoYXMgbm90aGluZyB0byBkbyB3aXRoIFhlbiwgc28NCj4+Pj4+PiBwbGFjaW5nIGl0IGlu
IHByaXZjbWQgZG9lcyBzZWVtIHF1aXRlIHN0cmFuZ2UgdG8gbWUuICBJIHVuZGVyc3RhbmQNCj4+
Pj4+PiB0aGF0IGZvciBwYXNzdGhyb3VnaCB3ZSBuZWVkIHRoZSBHU0ksIGJ1dCBzdWNoIHRyYW5z
bGF0aW9uIGxheWVyIGZyb20NCj4+Pj4+PiBJUlEgdG8gR1NJIGlzIGFsbCBMaW51eCBpbnRlcm5h
bCwgYW5kIGl0IHdvdWxkIGJlIG11Y2ggc2ltcGxlciB0byBqdXN0DQo+Pj4+Pj4gZXhwb3NlIHRo
ZSBHU0kgaW4gc3lzZnMgSU1PLg0KPj4+Pj4NCj4+Pj4+IE1heWJlIHNvbWV0aGluZyB0byBhZGQg
dG8gZHJpdmVycy94ZW4vc3lzLWh5cGVydmlzb3IuYyBpbiBMaW51eC4NCj4+Pj4+IEp1ZXJnZW4g
d2hhdCBkbyB5b3UgdGhpbms/DQo+Pj4+DQo+Pj4+IExldCBtZSBhbHNvIGFkZCB0aGF0IHByaXZj
bWQuYyBpcyBhbHJlYWR5IGEgTGludXggc3BlY2lmaWMgaW50ZXJmYWNlLg0KPj4+PiBBbHRob3Vn
aCBpdCB3YXMgYm9ybiB0byBiZSBhIFhlbiBoeXBlcmNhbGwgInByb3h5IiBpbiByZWFsaXR5IHRv
ZGF5IHdlDQo+Pj4+IGhhdmUgYSBmZXcgcHJpdmNtZCBpb2N0bHMgdGhhdCBkb24ndCB0cmFuc2xh
dGUgaW50byBoeXBlcmNhbGxzLiBTbyBJDQo+Pj4+IGRvbid0IHRoaW5rIHRoYXQgYWRkaW5nIElP
Q1RMX1BSSVZDTURfR1NJX0ZST01fSVJRIHdvdWxkIGJlIGEgcHJvYmxlbS4NCj4+Pg0KPj4+IE1h
eWJlIG5vdCBhbGwgaW9jdGxzIHRyYW5zbGF0ZSB0byBoeXBlcmNhbGxzIChJIGd1ZXNzIHlvdSBh
cmUNCj4+PiByZWZlcnJpbmcgdG8gdGhlIElPQ1RMX1BSSVZDTURfUkVTVFJJQ1QgaW9jdGwpLCBi
dXQgdGhleSBhcmUgc3BlY2lmaWMNCj4+PiBYZW4gYWN0aW9ucy4gIEdldHRpbmcgdGhlIEdTSSB1
c2VkIGJ5IGEgZGV2aWNlIGhhcyBub3RoaW5nIGRvIHRvIHdpdGgNCj4+PiBYZW4uDQo+Pj4NCj4+
PiBJTU8gZHJpdmVycy94ZW4vc3lzLWh5cGVydmlzb3IuYyBpcyBhbHNvIG5vdCBhcHByb3ByaWF0
ZSwgYnV0IEknbSBub3QNCj4+PiB0aGUgbWFpbnRhaW5lciBvZiBhbnkgb2YgdGhvc2UgY29tcG9u
ZW50cy4NCj4+Pg0KPj4+IFRoZXJlJ3Mgbm90aGluZyBYZW4gc3BlY2lmaWMgYWJvdXQgZmV0Y2hp
bmcgdGhlIEdTSSBhc3NvY2lhdGVkIHdpdGggYQ0KPj4+IFBDSSBkZXZpY2UuICBUaGUgZmFjdCB0
aGF0IFhlbiBuZWVkcyBpdCBmb3IgcGFzc3Rocm91Z2ggaXMganVzdCBhIHJlZA0KPj4+IGhlcnJp
bmcsIGZ1cnRoZXIgY2FzZXMgd2hlcmUgdGhlIEdTSSBpcyBuZWVkZWQgbWlnaHQgYXJpc2Ugb3V0
c2lkZSBvZg0KPj4+IFhlbiwgYW5kIGhlbmNlIHN1Y2ggbm9kZSB3b3VsZCBiZXR0ZXIgYmUgcGxh
Y2VkIGluIGEgZ2VuZXJpYw0KPj4+IGxvY2F0aW9uLiAgVGhlIHJpZ2h0IGxvY2F0aW9uIHNob3Vs
ZCBiZSAvc3lzL2J1cy9wY2kvZGV2aWNlcy88c2JkZj4vZ3NpLg0KPj4NCj4+IFRoYXQgbWlnaHQg
YmUgdHJ1ZSBidXQgL3N5cy9idXMvcGNpL2RldmljZXMvPHNiZGY+L2dzaSBpcyBhIG5vbi1YZW4N
Cj4+IGdlbmVyaWMgaW50ZXJmYWNlIGFuZCB0aGUgbWFpbnRhaW5lcnMgb2YgdGhhdCBwb3J0aW9u
IG9mIExpbnV4IGNvZGUNCj4+IG1pZ2h0IGhhdmUgYSBkaWZmZXJlbnQgb3Bpbmlvbi4gV2UnbGwg
aGF2ZSB0byBzZWUuDQo+IA0KPiBSaWdodCwgYnV0IGJlZm9yZSByZXNvcnRpbmcgdG8gaW1wbGVt
ZW50IGEgWGVuIHNwZWNpZmljIHdvcmthcm91bmQNCj4gbGV0J3MgYXR0ZW1wdCB0byBkbyBpdCB0
aGUgcHJvcGVyIHdheSA6KS4NCj4gDQo+IEkgY2Fubm90IHNlZSB3aHkgZXhwb3NpbmcgdGhlIGdz
aSBvbiBzeXNmcyBsaWtlIHRoYXQgd291bGQgYmUgYW4NCj4gaXNzdWUuICBUaGVyZSdzIGEgbG90
IG9mIHJlc291cmNlIGluZm9ybWF0aW9uIGV4cG9zZWQgb24gc3lzZnMNCj4gYWxyZWFkeSwgYW5k
IGl0J3MgYSB0cml2aWFsIG5vZGUgdG8gaW1wbGVtZW50Lg0KVGhhbmtzIGZvciBib3RoIG9mIHlv
dScgcyBzdWdnZXN0aW9ucy4gQXQgcHJlc2VudCwgaXQgc2VlbXMgdGhlIHJlc3VsdCBvZiBkaXNj
dXNzaW9uIGlzIHRoYXQgaXQgbmVlZHMgdG8gYWRkIGEgZ3NpIHN5c2ZzLiBJIHdpbGwgbW9kaWZ5
IGl0IGluIHRoZSBuZXh0IHZlcnNpb24gYW5kIHRoZW4gYWRkIHRoZSBjb3JyZXNwb25kaW5nIG1h
aW50YWluZXIgdG8gdGhlIHJldmlldyBsaXN0Lg0KDQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQot
LSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 05:57:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 05:57:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646506.1008822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA1ws-0005c7-7j; Mon, 04 Dec 2023 05:56:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646506.1008822; Mon, 04 Dec 2023 05:56:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA1ws-0005c0-4m; Mon, 04 Dec 2023 05:56:54 +0000
Received: by outflank-mailman (input) for mailman id 646506;
 Mon, 04 Dec 2023 05:56:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rA1wq-0005bu-Td
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 05:56:52 +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 eb79095c-9269-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 06:56:51 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 134EF21F69;
 Mon,  4 Dec 2023 05:56:51 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id ECEED139AA;
 Mon,  4 Dec 2023 05:56:50 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id ehI7OCJqbWXZcwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 05:56: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: eb79095c-9269-11ee-98e5-6d05b1d4d9a1
Message-ID: <f4e9a8ee-fae6-4d44-b99b-61b2aa6054bf@suse.com>
Date: Mon, 4 Dec 2023 06:56:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [linux-linus test] 183981: regressions - FAIL
Content-Language: en-US
To: osstest service owner <osstest-admin@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <osstest-183981-mainreport@xen.org>
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: <osstest-183981-mainreport@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------70x002DfZbdU02YZAJast3QN"
X-Spamd-Bar: ++++++++++++++++++++
X-Spam-Score: 20.50
X-Rspamd-Server: rspamd1
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine)
X-Rspamd-Queue-Id: 134EF21F69
X-Spam-Flag: NO
X-Spam-Level: ********************
X-Spamd-Result: default: False [20.50 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_TWO(0.00)[2];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.04)[58.00%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_SPAM_SHORT(2.01)[0.671];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 NEURAL_SPAM_LONG(3.49)[0.997];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------70x002DfZbdU02YZAJast3QN
Content-Type: multipart/mixed; boundary="------------z0wMVemwDfXnxYv8shmusATF";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: osstest service owner <osstest-admin@xenproject.org>,
 xen-devel@lists.xenproject.org
Message-ID: <f4e9a8ee-fae6-4d44-b99b-61b2aa6054bf@suse.com>
Subject: Re: [linux-linus test] 183981: regressions - FAIL
References: <osstest-183981-mainreport@xen.org>
In-Reply-To: <osstest-183981-mainreport@xen.org>

--------------z0wMVemwDfXnxYv8shmusATF
Content-Type: multipart/mixed; boundary="------------XiJE4qEg3vBeFLEfMvBGQ6Wq"

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

T24gMDQuMTIuMjMgMDA6NTEsIG9zc3Rlc3Qgc2VydmljZSBvd25lciB3cm90ZToNCj4gZmxp
Z2h0IDE4Mzk4MSBsaW51eC1saW51cyByZWFsIFtyZWFsXQ0KPiBodHRwOi8vbG9ncy50ZXN0
LWxhYi54ZW5wcm9qZWN0Lm9yZy9vc3N0ZXN0L2xvZ3MvMTgzOTgxLw0KPiANCj4gUmVncmVz
c2lvbnMgOi0oDQo+IA0KPiBUZXN0cyB3aGljaCBkaWQgbm90IHN1Y2NlZWQgYW5kIGFyZSBi
bG9ja2luZywNCj4gaW5jbHVkaW5nIHRlc3RzIHdoaWNoIGNvdWxkIG5vdCBiZSBydW46DQo+
ICAgYnVpbGQtaTM4Ni1wdm9wcyAgICAgICAgICAgICAgNiBrZXJuZWwtYnVpbGQgICAgICAg
ICAgICAgZmFpbCBSRUdSLiB2cy4gMTgzOTczDQoNClRoaXMgdGVzdCBpcyBub25zZW5zZS4g
V2UgZG9uJ3Qgc3VwcG9ydCBydW5uaW5nIG9uIGEgUGVudGl1bS1Qcm8sIHdoaWNoIGlzIHRo
ZQ0KY29uZmlndXJlZCBwcm9jZXNzb3IgZm9yIHRoZSBrZXJuZWwuDQoNCldlIHNob3VsZCBk
byBhIDMyLWJpdCBidWlsZCB1c2luZyBhIG1vcmUgcmVjZW50IHByb2Nlc3NvciBtb2RlbC4N
Cg0KPiAgIGJ1aWxkLWFybTY0LXB2b3BzICAgICAgICAgICAgIDYga2VybmVsLWJ1aWxkICAg
ICAgICAgICAgIGZhaWwgUkVHUi4gdnMuIDE4Mzk3Mw0KDQpUaGlzIG9uZSBmYWlsZWQgd2l0
aDoNCg0KZ2NjOiBpbnRlcm5hbCBjb21waWxlciBlcnJvcjogU2VnbWVudGF0aW9uIGZhdWx0
IHNpZ25hbCB0ZXJtaW5hdGVkIHByb2dyYW0gY2MxDQpQbGVhc2Ugc3VibWl0IGEgZnVsbCBi
dWcgcmVwb3J0LA0Kd2l0aCBwcmVwcm9jZXNzZWQgc291cmNlIGlmIGFwcHJvcHJpYXRlLg0K
U2VlIDxmaWxlOi8vL3Vzci9zaGFyZS9kb2MvZ2NjLTgvUkVBRE1FLkJ1Z3M+IGZvciBpbnN0
cnVjdGlvbnMuDQptYWtlWzVdOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6MjQzOiBk
cml2ZXJzL2Nsay9oaXNpbGljb24vY2xrLm9dIEVycm9yIDQNCm1ha2VbNF06ICoqKiBbc2Ny
aXB0cy9NYWtlZmlsZS5idWlsZDo0ODA6IGRyaXZlcnMvY2xrL2hpc2lsaWNvbl0gRXJyb3Ig
Mg0KbWFrZVszXTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjQ4MDogZHJpdmVycy9j
bGtdIEVycm9yIDINCg0KDQpKdWVyZ2VuDQo=
--------------XiJE4qEg3vBeFLEfMvBGQ6Wq
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-----

--------------XiJE4qEg3vBeFLEfMvBGQ6Wq--

--------------z0wMVemwDfXnxYv8shmusATF--

--------------70x002DfZbdU02YZAJast3QN
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/Ey8FAmVtaiIFAwAAAAAACgkQsN6d1ii/Ey9j
Rgf9GXH60Ur7Bx0GfKgShLFUaFpqCDVhVA25G5+tHB877zQdZKPJhslxIBGu/uRTXwRyXuMeUrBg
hz4YQ7TN4lUAmu5lCc24N01vxBaJO6id1oE0DVuri2moK4way4CirCuCaAbBNqmmHP1BBW/Cje8j
Od3H5cYPSOSGpceno0ubMbBBQnq6whHjFEuatMXYvBoFY1MSaoZ/Xg+kDVFDr4cuM03EVwqqmdYO
V7ODs4bp0Os2It4ikyfVoCuG7W3gClvUVpHtfb3puY+xOf6wLTGbqXBuGTPH3qHdf5/oK3iW6YfM
Q8ckUChzR1nUjZgsN9Tz8OC3PonugbeyO9Ntj1BDSA==
=moSh
-----END PGP SIGNATURE-----

--------------70x002DfZbdU02YZAJast3QN--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 06:57:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 06:57:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646515.1008832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA2tF-0005ma-Kl; Mon, 04 Dec 2023 06:57:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646515.1008832; Mon, 04 Dec 2023 06: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 1rA2tF-0005mT-Hq; Mon, 04 Dec 2023 06:57:13 +0000
Received: by outflank-mailman (input) for mailman id 646515;
 Mon, 04 Dec 2023 06: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=5cgf=HP=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rA2tE-0005m4-3O
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 06:57:12 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2062e.outbound.protection.outlook.com
 [2a01:111:f400:7ea9::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56aea58f-9272-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 07:57:08 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MN2PR12MB4488.namprd12.prod.outlook.com (2603:10b6:208:24e::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 06:57:04 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023
 06:57: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: 56aea58f-9272-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VW81TKryDoeOPkUx1mwJpIoQeuY91wxR3a5aoj81njCAKEAZWEOTPuDx+U3DWScntpvdFFvFIKAl3TvEPnUDEEqNs9nZ/bmZrigVG1xCsnomxQUcpkiETB8UB+aWHxhj7htgq/IagWOd2qOKUcV+cn53rz+RfWpiK9JyVU50M4YwGOQe24WNI2LXcd+JeYnwMsNStW3YWu0699wx39K8po68+7T1HZPKEmXKz+EO5y1C/sk8sagFMl+C+8HHkU4OfMl3mj5978eZ6ED4iUPDR1a/W/7GJyqLnMK+rI/suCMMEJzOsnO+9Xa/o1Uc159NYPDqIXI2V+g7Ow0YMt1tfQ==
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=ZOrhusJrXdhP+AeYPG48uTopMy0T2Czd78VoqrPme8A=;
 b=VW5ji0/BCNw35AKqJHo7wJZAZjJq08QOV4mBaUoHwJlida7L8p48VnGkVw525CLNBcSdwm3iIIShHF/D0BvM39CIwcPNisdxbyyO8fSinTmRmBs51PpFdQcUX1fYTY7rtXevmt5g+OgPB4Blzhhsi8S0hRUO9jJ2/EAP/E0PrZAeC2SdUC13q/LFvqtc7tpAISvsMJ25WATLHcbOOp0Y0xQDUhnltnjdZNL++NYYSa3y6tAe996FzWo1cxnFw/LV0niD0RaKqxNU+RrRhx20nx2+cf7JBQGfP8dHFi/Fyi1JerdgY6+hH94rdm0RV30z0OKBDNyCnxsCbyUWiEJwlw==
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=ZOrhusJrXdhP+AeYPG48uTopMy0T2Czd78VoqrPme8A=;
 b=yJPFBPIkuDlKfJSmompGKR1JGeqB/jSFSxpM2exQK1gqtxmujFqf8NmFjbDsLKLoyeWGkJOIbJ215GvFFFGVtYvacdAtsSHY9NvrkADdYrCjTFfeKyUf7K+M34rcxYhfrgF3gJ9nClwrp4rp3Dl7CGQW8Qikx81kr7Fefm/D2kE=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>, "Zhang,
 Julia" <Julia.Zhang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v2 1/3] xen/vpci: Clear all vpci status of device
Thread-Topic: [RFC XEN PATCH v2 1/3] xen/vpci: Clear all vpci status of device
Thread-Index:
 AQHaHsLfq+dfGUvRWUqPIEH3O9fXrbCPyyeAgAMgFYD//+e9gIAABBEAgAAlHwCABknUAA==
Date: Mon, 4 Dec 2023 06:57:03 +0000
Message-ID:
 <BL1PR12MB58494BAD4ECCDEB00EACCF9DE786A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124104136.3263722-1-Jiqian.Chen@amd.com>
 <20231124104136.3263722-2-Jiqian.Chen@amd.com> <ZWX0U1tYooY70UJo@macbook>
 <BL1PR12MB58493CC28A32E3C9B3A1767FE782A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <14d2dd16-be21-4e9a-97eb-bb477af49e73@apertussolutions.com>
 <930da43f-0395-40cb-a79d-012c4e1acbcb@apertussolutions.com>
 <ZWihrmHpIrI_ccX4@macbook>
In-Reply-To: <ZWihrmHpIrI_ccX4@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA1PR12MB7663.namprd12.prod.outlook.com
 (15.20.7068.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_|MN2PR12MB4488:EE_
x-ms-office365-filtering-correlation-id: f6fa093a-4fd2-4d09-5d58-08dbf49638e7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 R1r/efV5YmqNJKeKO5ZOMHg/Vvy/C5n9mJKN1BQV6MhM9h/9WHJIGCAKvki44Mjq4OC6MTch43i8l51d7WgNee9IX5yIYIqK6nWdS4xZYnudX2tRfkQ829OwaPquTacz0/u5nqMpisMWbCpxtAWeiK72T2QCfdBuCGPM6hLrlpMBjtFQ9iooCaD71d06toA8XPbWfaCWpmVe+UKCEjmTmouZaXNMCuXcyirfurqk2iKSdtQx4frRjqADfr0KTc9wrA4PGmfyExvxDOC9nDgez/22pctUfkvQ2B31O1QZYtd8FR87dF/QbQUnugSs9mMdSMl0aAbvq5E7WqhYUDnx2cZiKlejlev6i7Oi/cwU1Vq7V2Olf+4mlJFOUfRNx31Z0gz46XB31qfxZM4RI7XraNVz9ADD0OTyiUzHHDb/tQR6j17QPAN3UYrQYkjIgAfSmsTtljjcjJI67XTQku6ZNA8Rf49lSOy0gcn1DLLEzQtaZqaXMko8T0y/NbsNu0EI2bJ9i25AUQJ/an7Ry6FfCL2YDwNxu0eyJwBfMGSl+UW7dV0I+P2YJHudzkox1BZYC7mSHKLVvoGiRNsxByiB4T8kylTA8uyJ62RxtJm6JRU8/xBiqc5k3hBraqZN5fh4
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:(13230031)(346002)(376002)(396003)(136003)(39860400002)(366004)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(83380400001)(26005)(6506007)(53546011)(9686003)(7696005)(122000001)(38100700002)(55016003)(71200400001)(478600001)(66946007)(76116006)(66556008)(64756008)(66446008)(66476007)(54906003)(110136005)(316002)(8936002)(8676002)(4326008)(33656002)(2906002)(41300700001)(38070700009)(52536014)(5660300002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?alJ6eXJaTXhoWTQ5THY4Sml3OEg4M0QrVVdFRXZLUjcxL1VwQlI4M05yNEJh?=
 =?utf-8?B?MTJ5Qk1hTENvMXVOU0dJbTVZOVNiREhGbnl5eDJ6N3c4aVBKWGJKaGdzbG82?=
 =?utf-8?B?TmE2Mit6WTdiSHd0Tksza0JrdXQyREYrUFRKdnJWaU9TWGNqNVFZcDJETkxL?=
 =?utf-8?B?SVRRaHJ2UDFmdmgvRkNUVTh3K1YvOCtNb1dEdzcvMzBob1RXT2ZaSFFDRU5F?=
 =?utf-8?B?VThXTlZkSmIxTmFTdUFXZnYyeWtmd1pxakdWSVRsbzFpL1J0Zy8wLzg1aVVs?=
 =?utf-8?B?MCs2b2RvM3JZenRqZU40NytKZmtLaUlyM2ZoY2R3TzlxWmQ3NnA1bzA0a3Ux?=
 =?utf-8?B?ZU5CN3ZQaDRiVisxZlprZTQraGJrUk9HdTQ4cEVUTlAwZnAyb1V1ajAwdVFT?=
 =?utf-8?B?L1QybkJIWTRDZHZOYms0dTIrRGN0T3Y5ZU92MWM3U0RseUZJOVpGU0FEcmYy?=
 =?utf-8?B?eCtxWFdXMFlyUjllZUN0dHhsT1EzUWdhQVZMK3c5eDBWM21xZjl4NW5SRjZZ?=
 =?utf-8?B?RWdYSWJ2R0RJaHowai8ybk14dlJTNXlsbXhrS0hHZXVFNEF4eHJyc1NtdlF2?=
 =?utf-8?B?ZllhdXNCQVM1bEpIZkoyR1dxTVNrSmRJdFhDR004OXZEMXQ5dVpEeStibjZz?=
 =?utf-8?B?VHpWcEZnM0w5dDQ0blJHR2ZPRXExWEdZdVM5OERZNWlrZmVtNzBiOWRmTUlr?=
 =?utf-8?B?ZnJ2bGdFOFlQMzcvRzdDL0dJWWV6ak1mNk5RN0hXZzQ2RDIxS09kZFkwdWxY?=
 =?utf-8?B?Ni9TWElaeUdSNEdLK3IzQk1hVFRoakRpTVFUd3JEeXRsRUVBTHZWVCszVFpj?=
 =?utf-8?B?cm9jTS90dGJiMW96STJSTDNWUXh1dDhJWTR5NE8zcUJGcDhQWEkvZXY3WWZr?=
 =?utf-8?B?cXJoR1FKeVBnT0VmV2o1L3dMKys1UmMrOWxTQjJPbXRwRXVzNjRXQnEvbXpn?=
 =?utf-8?B?cFdnOFBTeUd2NG8yYnl5L2RJWG44dVVHR1RRZ1lUV2hSKzNva2dmZ0NOdTVj?=
 =?utf-8?B?MUgrRTFiT1JNM0tkdnZoNUwyUThQcTdGVy9TNnQ2NTFJM05VWlM4QWNPQzBM?=
 =?utf-8?B?SCtBTW85NUNGYks3SFBQTEx2c0ozT3M5ZnVQWHhnLzhzcXh3NVVpMEwzRDJa?=
 =?utf-8?B?SnN5WWtnQTgrVnJONXFlM21LN095dUI1aUdZY1dTNG5weUtlRm5ETUg2WUpq?=
 =?utf-8?B?THFBOGF3M3NZa3Izdk5LTlp3SVhHSkdOa3hFSTNSNWx2SFpvRG9JNkpGbnZN?=
 =?utf-8?B?TjNMQVkxSFVjUGd1U0xCYlErQ3BiZkF2R3IxZnVlbGFEbW5tUVlZb0k2R1h2?=
 =?utf-8?B?anpYSkJ3YlQ4dW9kMUt2VVF0dTNMSGNBN2xNTHFnRU44NGlEL092blFaYzM3?=
 =?utf-8?B?TXhSYWM4STAzYUExOStpeWNzb1JtZ2hVaHFhanErQUlMVVR3bmtlOVFPVjNl?=
 =?utf-8?B?TnRTMFMweklEaXJLTEJzeDhyV1E4Sit2SEo2ZHhGQktVTjVZYUc0ZEdrTHF5?=
 =?utf-8?B?UlJtZXlFVDlKelNlWURMRHpDNW1Db0Fudko0a1dHZ0QrUmdJblB4U0lodlBJ?=
 =?utf-8?B?VmRvS3hBMmtpaVoyNE82WU5HWVNIbkFGMmFTSWR3VHdDNWlmQjB5VmlySysr?=
 =?utf-8?B?MGR0aFVobTB1Vkc0emxFZmVPNUh4SVF4amRTZG11cHZMSEdkYTdtR1VvYkFz?=
 =?utf-8?B?cS9MOHVGaW81bHJ0bmgzdEdxajZ5MDQvYzB4RVhaUUM1SWVSUERSUTdOam4v?=
 =?utf-8?B?TXJCMzVYcVNzTW80K0tOaTJ2QnNFYS8rb2xmRTEwbGFFQnZLYUttZS9MTW9u?=
 =?utf-8?B?Ui9sY25kTXUzZ1JCRit5R3ZvTFZQNlFadWc3TlVsaVB3RUViUVdManFVWWdn?=
 =?utf-8?B?V2NScDFhSzEvKzIyUHgyRU1McjJvbFNiZ0ozK2FGeEJMTTJsQWtHb2JNSWZw?=
 =?utf-8?B?TS9paS9ranRqQ1k5RmtMMWx5L2Z4OVMvMzhYRVl1aVhyb2dEcVRzYWZ3UVUy?=
 =?utf-8?B?dHpjY25sM2llenFaekdLcUdCa2JNdWpaUC9oanpDeFRWSjN6N0R6ZWduSFQ5?=
 =?utf-8?B?NlNtRklKeXpwWkplUjJpVzlSd25KWHZZZCtydlgxV1lURWJwdisrVVdtT3My?=
 =?utf-8?Q?JAUM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BA1089E35CA8964BAD37ECF636C3892D@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: f6fa093a-4fd2-4d09-5d58-08dbf49638e7
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2023 06:57:03.9616
 (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: 4QmEtBg5l3qmm8xD+C1KEZVo+mSQeLsYmiJetDoTGMpi8PhVkHu6crCdRNQWDJbtEJzZvqH5vD006WsHutBw/w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4488

SGkgRGFuaWVsIFAuIFNtaXRoLA0KDQpPbiAyMDIzLzExLzMwIDIyOjUyLCBSb2dlciBQYXUgTW9u
bsOpIHdyb3RlOg0KPiBPbiBUaHUsIE5vdiAzMCwgMjAyMyBhdCAwNzozOTozOEFNIC0wNTAwLCBE
YW5pZWwgUC4gU21pdGggd3JvdGU6DQo+PiBPbiAxMS8zMC8yMyAwNzoyNSwgRGFuaWVsIFAuIFNt
aXRoIHdyb3RlOg0KPj4+IE9uIDExLzMwLzIzIDAxOjIyLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+
Pj4+IEhpIFJvZ2VyIGFuZCBEYW5pZWwgUC4gU21pdGgsDQo+Pj4+DQo+Pj4+IE9uIDIwMjMvMTEv
MjggMjI6MDgsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+PiBPbiBGcmksIE5vdiAyNCwg
MjAyMyBhdCAwNjo0MTozNFBNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+Pj4+PiBXaGVu
IGEgZGV2aWNlIGhhcyBiZWVuIHJlc2V0IG9uIGRvbTAgc2lkZSwgdGhlIHZwY2kgb24gWGVuDQo+
Pj4+Pj4gc2lkZSB3b24ndCBnZXQgbm90aWZpY2F0aW9uLCBzbyB0aGUgY2FjaGVkIHN0YXRlIGlu
IHZwY2kgaXMNCj4+Pj4+PiBhbGwgb3V0IG9mIGRhdGUgY29tcGFyZSB3aXRoIHRoZSByZWFsIGRl
dmljZSBzdGF0ZS4NCj4+Pj4+PiBUbyBzb2x2ZSB0aGF0IHByb2JsZW0sIHRoaXMgcGF0Y2ggYWRk
IG5ldyBoeXBlcmNhbGwgdG8gY2xlYXINCj4+Pj4+PiBhbGwgdnBjaSBkZXZpY2Ugc3RhdGUuIEFu
ZCB3aGVuIHJlc2V0IGRldmljZSBoYXBwZW5zIG9uIGRvbTANCj4+Pj4+PiBzaWRlLCBkb20wIGNh
biBjYWxsIHRoaXMgaHlwZXJjYWxsIHRvIG5vdGlmeSB2cGNpLg0KPj4+Pj4+DQo+Pj4+Pj4gU2ln
bmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+Pj4+Pj4gU2ln
bmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4NCj4+Pj4+PiAtLS0NCj4+
Pj4+PiDCoCB4ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jwqAgfMKgIDEgKw0KPj4+Pj4+IMKg
IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIHwgMjEgKysrKysrKysrKysrKysrKysrKysr
DQo+Pj4+Pj4gwqAgeGVuL2RyaXZlcnMvcGNpL3BoeXNkZXYuY8KgwqDCoMKgIHwgMTQgKysrKysr
KysrKysrKysNCj4+Pj4+PiDCoCB4ZW4vZHJpdmVycy92cGNpL3ZwY2kuY8KgwqDCoMKgwqDCoCB8
wqAgOSArKysrKysrKysNCj4+Pj4+PiDCoCB4ZW4vaW5jbHVkZS9wdWJsaWMvcGh5c2Rldi5owqAg
fMKgIDIgKysNCj4+Pj4+PiDCoCB4ZW4vaW5jbHVkZS94ZW4vcGNpLmjCoMKgwqDCoMKgwqDCoMKg
IHzCoCAxICsNCj4+Pj4+PiDCoCB4ZW4vaW5jbHVkZS94ZW4vdnBjaS5owqDCoMKgwqDCoMKgwqAg
fMKgIDYgKysrKysrDQo+Pj4+Pj4gwqAgNyBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCsp
DQo+Pj4+Pj4NCj4+Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwu
Yw0KPj4+Pj4+IGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYw0KPj4+Pj4+IGluZGV4IGVl
YjczZTFhYTUuLjZhZDViNGQ1ZjEgMTAwNjQ0DQo+Pj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9oeXBlcmNhbGwuYw0KPj4+Pj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMN
Cj4+Pj4+PiBAQCAtODQsNiArODQsNyBAQCBsb25nIGh2bV9waHlzZGV2X29wKGludCBjbWQsDQo+
Pj4+Pj4gWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+Pj4+Pj4gwqDCoMKgwqDC
oCBjYXNlIFBIWVNERVZPUF9wY2lfbW1jZmdfcmVzZXJ2ZWQ6DQo+Pj4+Pj4gwqDCoMKgwqDCoCBj
YXNlIFBIWVNERVZPUF9wY2lfZGV2aWNlX2FkZDoNCj4+Pj4+PiDCoMKgwqDCoMKgIGNhc2UgUEhZ
U0RFVk9QX3BjaV9kZXZpY2VfcmVtb3ZlOg0KPj4+Pj4+ICvCoMKgwqAgY2FzZSBQSFlTREVWT1Bf
cGNpX2RldmljZV9zdGF0ZV9yZXNldDoNCj4+Pj4+PiDCoMKgwqDCoMKgIGNhc2UgUEhZU0RFVk9Q
X2RiZ3Bfb3A6DQo+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggIWlzX2hhcmR3YXJlX2Rv
bWFpbihjdXJyZCkgKQ0KPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAt
RU5PU1lTOw0KPj4+Pj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2ku
Yw0KPj4+Pj4+IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMNCj4+Pj4+PiBpbmRleCAw
NGQwMGM3YzM3Li5mODcxNzE1NTg1IDEwMDY0NA0KPj4+Pj4+IC0tLSBhL3hlbi9kcml2ZXJzL3Bh
c3N0aHJvdWdoL3BjaS5jDQo+Pj4+Pj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNp
LmMNCj4+Pj4+PiBAQCAtODI0LDYgKzgyNCwyNyBAQCBpbnQgcGNpX3JlbW92ZV9kZXZpY2UodTE2
IHNlZywgdTggYnVzLCB1OCBkZXZmbikNCj4+Pj4+PiDCoMKgwqDCoMKgIHJldHVybiByZXQ7DQo+
Pj4+Pj4gwqAgfQ0KPj4+Pj4+ICtpbnQgcGNpX3Jlc2V0X2RldmljZV9zdGF0ZSh1MTYgc2VnLCB1
OCBidXMsIHU4IGRldmZuKQ0KPj4+Pj4NCj4+Pj4+IFlvdSBjb3VsZCB1c2UgcGNpX3NiZGZfdCBo
ZXJlIGluc3RlYWQgb2YgMyBwYXJhbWV0ZXJzLg0KPj4+PiBXaWxsIGNoYW5nZSBpbiBuZXh0IHZl
cnNpb24sIHRoYW5rIHlvdS4NCj4+Pj4NCj4+Pj4+DQo+Pj4+PiBJJ20gaG93ZXZlciB1bnN1cmUg
d2hldGhlciB3ZSByZWFsbHkgbmVlZCB0aGlzIGhlbHBlciBqdXN0IHRvIGZldGNoDQo+Pj4+PiB0
aGUgcGRldiBhbmQgY2FsbCB2cGNpX3Jlc2V0X2RldmljZV9zdGF0ZSgpLCBJIHRoaW5rIHlvdSBj
b3VsZCBwbGFjZQ0KPj4+Pj4gdGhpcyBsb2dpYyBkaXJlY3RseSBpbiBwY2lfcGh5c2Rldl9vcCgp
LsKgIFVubGVzcyB0aGVyZSBhcmUgcGxhbnMgdG8NCj4+Pj4+IHVzZSBzdWNoIGxvZ2ljIG91dHNp
ZGUgb2YgcGNpX3BoeXNkZXZfb3AoKS4NCj4+Pj4gSWYgSSBwbGFjZSB0aGUgbG9naWMgb2YgcGNp
X3Jlc2V0X2RldmljZV9zdGF0ZSBkaXJlY3RseSBpbg0KPj4+PiBwY2lfcGh5c2Rldl9vcC4gSSB0
aGluayBJIG5lZWQgdG8gZGVjbGFyZSB2cGNpX3Jlc2V0X2RldmljZV9zdGF0ZSBpbg0KPj4+PiBw
Y2kuaD8gSWYgaXQgaXMgc3VpdGFibGUsIEkgd2lsbCBjaGFuZ2UgaW4gbmV4dCB2ZXJzaW9uLg0K
Pj4+Pg0KPj4+Pj4NCj4+Pj4+PiArew0KPj4+Pj4+ICvCoMKgwqAgc3RydWN0IHBjaV9kZXYgKnBk
ZXY7DQo+Pj4+Pj4gK8KgwqDCoCBpbnQgcmV0ID0gLUVOT0RFVjsNCj4+Pj4+DQo+Pj4+PiBTb21l
IFhTTSBjaGVjayBzaG91bGQgYmUgaW50cm9kdWNlZCBmcm8gdGhpcyBvcGVyYXRpb24sIGFzIG5v
bmUgb2YgdGhlDQo+Pj4+PiBleGlzdGluZyBvbmVzIGlzIHN1aXRhYmxlLsKgIFNlZSB4c21fcmVz
b3VyY2VfdW5wbHVnX3BjaSgpIGZvciBleGFtcGxlLg0KPj4+Pj4NCj4+Pj4+IHhzbV9yZXNvdXJj
ZV9yZXNldF9zdGF0ZV9wY2koKSBvciBzb21lIHN1Y2ggSSB3b3VsZCBhc3N1bWUuDQo+Pj4+IEkg
ZG9uJ3Qga25vdyB3aGF0IEkgc2hvdWxkIGRvIGluIFhTTSBmdW5jdGlvbihhc3N1bWUgaXQgaXMN
Cj4+Pj4geHNtX3Jlc291cmNlX3Jlc2V0X3N0YXRlX3BjaSkuDQo+Pj4+IEhpIERhbmllbCBQLiBT
bWl0aCwgY291bGQgeW91IHBsZWFzZSBnaXZlIG1lIHNvbWUgc3VnZ2VzdGlvbnM/DQo+Pj4+IEp1
c3QgdG8gY2hlY2sgdGhlIFhTTV9QUklWIGFjdGlvbj8NCj4+Pj4NCj4+Pg0KPj4+IFJvZ2VyLCB0
aGFuayB5b3UgZm9yIHNlZWluZyB0aGlzIGFuZCBhZGRpbmcgbWUgaW4hDQo+Pj4NCj4+PiBKaXFp
YW4sIEkganVzdCB3YW50ZWQgdG8gbGV0IHlvdSBrbm93IEkgaGF2ZSBzZWVuIHlvdXIgcG9zdCBi
dXQgSSBoYXZlDQo+Pj4gYmVlbiBhIGxpdHRsZSB0aWVkIHVwIHRoaXMgd2Vlay4gSnVzdCB3aXRo
IHRoZSBjdXJzb3J5IGxvb2ssIEkgdGhpbmsNCj4+PiBSb2dlciBpcyBzdWdnZXN0aW5nIGEgbmV3
IFhTTSBjaGVjay9ob29rIGlzIHdhcnJhbnRlZC4NCj4+Pg0KPj4+IElmIHlvdSB3b3VsZCBsaWtl
IHRvIGF0dGVtcHQgYXQgd3JpdGluZyB0aGUgZHVtbXkgcG9saWN5IHNpZGUsIG1pbWljDQo+Pj4g
eHNtX3Jlc291cmNlX3BsdWdfcGNpIGluIHhlbi9pbmNsdWRlL3hzbS9kdW1teS5oIGFuZA0KPj4+
IHhlbi9pbmNsdWRlL3hzbS94c20uaCwgdGhlbiBJIGNhbiBsb29rIGF0IGhhbmRsaW5nIHRoZSBG
TEFTSyBwb3J0aW9uDQo+Pj4gbmV4dCB3ZWVrIGFuZCBwcm92aWRlIGl0IHRvIHlvdSBmb3IgaW5j
bHVzaW9uIGludG8gdGhlIHNlcmllcy4gSWYgeW91DQo+Pj4gYXJlIG5vdCBjb21mb3J0YWJsZSB3
aXRoIGl0LCBJIGNhbiBsb29rIGF0IHRoZSB3aG9sZSB0aGluZyBuZXh0IHdlZWsuDQo+Pj4gSnVz
dCBsZXQgbWUga25vdyB3aGF0IHlvdSB3b3VsZCBiZSBjb21mb3J0YWJsZSB3aXRoLg0KPj4NCj4+
IEFwb2xvZ2llcywgdGhpbmtpbmcgYWJvdXQgZm9yIGEgbW9tZW50IGFuZCB3YXMgdGhpbmtpbmcg
dGhlIGhvb2sgc2hvdWxkIGJlDQo+PiBjYWxsZWQgeHNtX3Jlc291cmNlX2NvbmZpZ19wY2kuIEkg
d291bGQgcmVzZXQgYXMgYSBjb25maWcgb3BlcmF0aW9uIGFuZA0KPj4gdGhlcmUgbWlnaHQgYmUg
bmV3IG9uZXMgaW4gdGhlIGZ1dHVyZS4gSSBkbyBub3QgYmVsaWV2ZSB0aGVyZSBpcyBhIG5lZWQg
dG8NCj4+IGhhdmUgZmluZSBncmFpbiBhY2Nlc3MgY29udHJvbCBkb3duIHRvIGluZGl2aWR1YWwg
Y29uZmlnIG9wZXJhdGlvbiwgdGh1cw0KPj4gdGhleSBjb3VsZCBhbGwgYmUgY2FwdHVyZWQgdW5k
ZXIgdGhpcyBvbmUgaG9vay4gUm9nZXIsIHdoYXQgYXJlIHlvdXINCj4+IHRob3VnaHRzIGFib3V0
IHRoaXMsIGluIHBhcnRpY3VsYXIgaG93IHlvdSBzZWUgdnBjaSBldm9sdmluZz8NCj4gDQo+IFNv
IHRoZSBjb25maWd1cmF0aW9uIHNwYWNlIHJlc2V0IHNob3VsZCBvbmx5IGJlIGRvbmUgYnkgdGhl
IGRvbWFpbg0KPiB0aGF0J3MgYWxzbyBjYXBhYmxlIG9mIHRyaWdnZXJpbmcgdGhlIHBoeXNpY2Fs
IGRldmljZSByZXNldCwgdXN1YWxseQ0KPiB0aGUgaGFyZHdhcmUgZG9tYWluLiAgSSBkb24ndCB0
aGluayBpdCdzIHBvc3NpYmxlIEFUTSB0byBhbGxvdyBhDQo+IGRvbWFpbiBkaWZmZXJlbnQgdGhh
biB0aGUgaGFyZHdhcmUgZG9tYWluIHRvIHBlcmZvcm0gYSBQQ0kgcmVzZXQsIGFzDQo+IGRvaW5n
IGl0IHJlcXVpcmVzIHVubWVkaWF0ZWQgYWNjZXNzIHRvIHRoZSBQQ0kgY29uZmlnIHNwYWNlLg0K
PiANCj4gU28gcmVzZXR0aW5nIHRoZSB2UENJIHN0YXRlIHNob3VsZCBlaXRoZXIgYmUgbGltaXRl
ZCB0byB0aGUgaGFyZHdhcmUNCj4gZG9tYWluLCBvciB0byBhIHBjaSByZXNldCBjYXBhYmlsaXR5
IGV4cGxpY2l0bHkNCj4gKHhzbV9yZXNvdXJjZV9yZXNldF9wY2kgb3Igc29tZSBzdWNoPykuICBP
ciBtYXliZQ0KPiB4c21fcmVzb3VyY2VfY29uZmlnX3BjaSBpZiB0aGF0IGRlbm90ZXMgdW5tZWRp
YXRlZCBhY2Nlc3MgdG8gdGhlIFBDSQ0KPiBjb25maWcgc3BhY2UuDQo+IA0KPiBUaGFua3MsIFJv
Z2VyLg0KDQpJcyBpdCBsaWtlIGJlbG93IHRoYXQgSSBuZWVkIHRvIGFkZCBmb3IgWFNNPw0KZGlm
ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFz
c3Rocm91Z2gvcGNpLmMNCmluZGV4IDlkNzUxOWViODkuLjgxY2VhZjE0NWYgMTAwNjQ0DQotLS0g
YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYw0KKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro
cm91Z2gvcGNpLmMNCkBAIC05MzcsNiArOTM3LDEwIEBAIGludCBwY2lfcmVzZXRfZGV2aWNlX3N0
YXRlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pDQogICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2
Ow0KICAgICBpbnQgcmV0ID0gLUVOT0RFVjsNCg0KKyAgICByZXQgPSB4c21fcmVzb3VyY2VfY29u
ZmlnX3BjaShYU01fUFJJViwgKHNlZyA8PCAxNikgfCAoYnVzIDw8IDgpIHwgZGV2Zm4pOw0KKyAg
ICBpZiAoIHJldCApDQorICAgICAgICByZXR1cm4gcmV0Ow0KKw0KICAgICBwY2lkZXZzX2xvY2so
KTsNCg0KICAgICBwZGV2ID0gcGNpX2dldF9wZGV2KE5VTEwsIFBDSV9TQkRGKHNlZywgYnVzLCBk
ZXZmbikpOw0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oIGIveGVuL2luY2x1
ZGUveHNtL2R1bW15LmgNCmluZGV4IDg2NzFhZjFiYTQuLmJjYWZmOTliMjMgMTAwNjQ0DQotLS0g
YS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaA0KKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgN
CkBAIC00NzIsNiArNDcyLDEzIEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21f
cmVzb3VyY2Vfc2V0dXBfcGNpKA0KICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlv
biwgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsNCiB9DQoNCitzdGF0aWMgWFNNX0lOTElORSBpbnQg
Y2ZfY2hlY2sgeHNtX3Jlc291cmNlX2NvbmZpZ19wY2koDQorICAgIFhTTV9ERUZBVUxUX0FSRyB1
aW50MzJfdCBtYWNoaW5lX2JkZikNCit7DQorICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9QUklW
KTsNCisgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFp
biwgTlVMTCk7DQorfQ0KKw0KIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fcmVz
b3VyY2Vfc2V0dXBfZ3NpKFhTTV9ERUZBVUxUX0FSRyBpbnQgZ3NpKQ0KIHsNCiAgICAgWFNNX0FT
U0VSVF9BQ1RJT04oWFNNX1BSSVYpOw0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hzbS94c20u
aCBiL3hlbi9pbmNsdWRlL3hzbS94c20uaA0KaW5kZXggOGRhZDAzZmQzZC4uMWNiMTZiMDBkZSAx
MDA2NDQNCi0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20uaA0KKysrIGIveGVuL2luY2x1ZGUveHNt
L3hzbS5oDQpAQCAtNTcxLDYgKzU3MSwxMiBAQCBzdGF0aWMgaW5saW5lIGludCB4c21fcmVzb3Vy
Y2Vfc2V0dXBfcGNpKA0KICAgICByZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3BzLnJlc291
cmNlX3NldHVwX3BjaSwgbWFjaGluZV9iZGYpOw0KIH0NCg0KK3N0YXRpYyBpbmxpbmUgaW50IHhz
bV9yZXNvdXJjZV9jb25maWdfcGNpKA0KKyAgICB4c21fZGVmYXVsdF90IGRlZiwgdWludDMyX3Qg
bWFjaGluZV9iZGYpDQorew0KKyAgICByZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3BzLnJl
c291cmNlX2NvbmZpZ19wY2ksIG1hY2hpbmVfYmRmKTsNCit9DQorDQogc3RhdGljIGlubGluZSBp
bnQgeHNtX3Jlc291cmNlX3NldHVwX2dzaSh4c21fZGVmYXVsdF90IGRlZiwgaW50IGdzaSkNCiB7
DQogICAgIHJldHVybiBhbHRlcm5hdGl2ZV9jYWxsKHhzbV9vcHMucmVzb3VyY2Vfc2V0dXBfZ3Np
LCBnc2kpOw0KZGlmZiAtLWdpdCBhL3hlbi94c20vZHVtbXkuYyBiL3hlbi94c20vZHVtbXkuYw0K
aW5kZXggZTZmZmE5NDhmNy4uN2EyODliYTVkOCAxMDA2NDQNCi0tLSBhL3hlbi94c20vZHVtbXku
Yw0KKysrIGIveGVuL3hzbS9kdW1teS5jDQpAQCAtOTEsNiArOTEsNyBAQCBzdGF0aWMgY29uc3Qg
c3RydWN0IHhzbV9vcHMgX19pbml0Y29uc3RfY2ZfY2xvYmJlciBkdW1teV9vcHMgPSB7DQogICAg
IC5yZXNvdXJjZV9wbHVnX3BjaSAgICAgICAgICAgICA9IHhzbV9yZXNvdXJjZV9wbHVnX3BjaSwN
CiAgICAgLnJlc291cmNlX3VucGx1Z19wY2kgICAgICAgICAgID0geHNtX3Jlc291cmNlX3VucGx1
Z19wY2ksDQogICAgIC5yZXNvdXJjZV9zZXR1cF9wY2kgICAgICAgICAgICA9IHhzbV9yZXNvdXJj
ZV9zZXR1cF9wY2ksDQorICAgIC5yZXNvdXJjZV9jb25maWdfcGNpICAgICAgICAgICAgPSB4c21f
cmVzb3VyY2VfY29uZmlnX3BjaSwNCiAgICAgLnJlc291cmNlX3NldHVwX2dzaSAgICAgICAgICAg
ID0geHNtX3Jlc291cmNlX3NldHVwX2dzaSwNCg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlh
biBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 07:11:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 07:11:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646521.1008841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA36U-0000AP-Ui; Mon, 04 Dec 2023 07:10:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646521.1008841; Mon, 04 Dec 2023 07:10: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 1rA36U-0000AH-Rw; Mon, 04 Dec 2023 07:10:54 +0000
Received: by outflank-mailman (input) for mailman id 646521;
 Mon, 04 Dec 2023 07:10: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=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rA36T-0000A3-Jv
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 07:10:53 +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 4164a683-9274-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 08:10:50 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id A8A981FE4F;
 Mon,  4 Dec 2023 07:10: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 780D31398A;
 Mon,  4 Dec 2023 07:10:50 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id oUOXG3p7bWU7CwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 07:10:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4164a683-9274-11ee-9b0f-b553b5be7939
Message-ID: <b7e347af-c85b-4a54-b5d7-3bd8d6bdf2c7@suse.com>
Date: Mon, 4 Dec 2023 08:10:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
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: <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------FsJjaZnlEOK8Mxc0ueRCiJz3"
X-Spamd-Bar: ++++++++++++++++++++
X-Spam-Score: 20.63
X-Rspamd-Server: rspamd1
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine)
X-Rspamd-Queue-Id: A8A981FE4F
X-Spam-Flag: NO
X-Spam-Level: ********************
X-Spamd-Result: default: False [20.63 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:+,5:~,6:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_SPAM_SHORT(2.16)[0.719];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain,text/x-patch];
	 NEURAL_SPAM_LONG(3.47)[0.992];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------FsJjaZnlEOK8Mxc0ueRCiJz3
Content-Type: multipart/mixed; boundary="------------K4r0694pD4KCcgN7DyyueSPB";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>
Message-ID: <b7e347af-c85b-4a54-b5d7-3bd8d6bdf2c7@suse.com>
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
In-Reply-To: <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>

--------------K4r0694pD4KCcgN7DyyueSPB
Content-Type: multipart/mixed; boundary="------------M480jiEajsjJ0vYZPWba35o5"

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

T24gMDEuMTIuMjMgMjE6MTIsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDAxLzEyLzIw
MjMgNzo1OSBwbSwgUmVuw6kgV2ludGhlciBIw7hqZ2FhcmQgd3JvdGU6DQo+PiBJZiBJIHNl
dCBzbXQ9b2ZmIGFuZCB0cnkgdG8gY29uZmlndXJlIGNwdXBvb2xzIHdpdGggY3JlZGl0KDEp
IGFzIGlmDQo+PiBhbGwgY29yZXMgYXJlIGF2YWlsYWJsZSwgSSBnZXQgdGhlIGZvbGxvd2lu
ZyBjcmFzaC4NCj4+DQo+PiBUaGUgY3Jhc2ggaGFwcGVucyB3aGVuIEkgdHJ5IHRvIHVzZSB4
bCBjcHVwb29sLWFkZC1jcHUgb24gdGhlIGRpc2FibGVkDQo+PiBIVCBzaWJsaW5nIGNvcmVz
Lg0KPj4NCj4+IEh5cGVyLXRocmVhZGluZyBpcyBlbmFibGVkIGluIHRoZSBmaXJtd2FyZSwg
YW5kIG9ubHkgZGlzYWJsZWQgd2l0aA0KPj4gc210PW9mZi4NCj4gDQo+IENDJ2luZyBzb21l
IG1haW50YWluZXJzLg0KDQpBdHRhY2hlZCBwYXRjaCBzaG91bGQgZml4IHRoZSBjcmFzaC4N
Cg0KUmVuw6ksIGFyZSB5b3UgZmluZSB3aXRoIHRoZSAiUmVwb3J0ZWQtYnk6IiB0YWcgYmVp
bmcgYWRkZWQgdG8gdGhlIHBhdGNoPw0KDQpJJ2xsIHNlbmQgYSBwcm9wZXIgcGF0Y2ggbWFp
bCB3aGVuIGhhdmluZyBoZWFyZCBmcm9tIHlvdS4NCg0KDQpKdWVyZ2VuDQo=
--------------M480jiEajsjJ0vYZPWba35o5
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-xen-sched-fix-adding-offline-cpu-to-cpupool.patch"
Content-Disposition: attachment;
 filename="0001-xen-sched-fix-adding-offline-cpu-to-cpupool.patch"
Content-Transfer-Encoding: base64

RnJvbSA2NWM3MGNjNTNkZjNhNzEyMjViMTFjYjk1ODQ4ZjEyZjVhNTY1ZDVkIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
CkRhdGU6IE1vbiwgNCBEZWMgMjAyMyAwODowMDoyMSArMDEwMApTdWJqZWN0OiBbUEFUQ0hd
IHhlbi9zY2hlZDogZml4IGFkZGluZyBvZmZsaW5lIGNwdSB0byBjcHVwb29sCk1JTUUtVmVy
c2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250
ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUcnlpbmcgdG8gYWRkIGFuIG9mZmxpbmUg
Y3B1IHRvIGEgY3B1cG9vbCBjYW4gY3Jhc2ggdGhlIGh5cGVydmlzb3IsCmFzIHRoZSBwcm9i
YWJseSBub24tZXhpc3RpbmcgcGVyY3B1IGFyZWEgb2YgdGhlIGNwdSBpcyBhY2Nlc3NlZCBi
ZWZvcmUKdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgY3B1IGlzIGJlaW5nIHRlc3RlZC4KCkZp
eCB0aGF0IGJ5IHRlc3RpbmcgdGhlIGNwdSB0byBiZSBvbmxpbmUuCgpGaXhlczogY2I1NjNk
NzY2NWYyICgieGVuL3NjaGVkOiBzdXBwb3J0IGNvcmUgc2NoZWR1bGluZyBmb3IgbW92aW5n
IGNwdXMgdG8vZnJvbSBjcHVwb29scyIpClJlcG9ydGVkLWJ5OiBSZW7DqSBXaW50aGVyIEjD
uGpnYWFyZCA8cmVuZXdpbkBwcm90b24ubWU+ClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jv
c3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiB4ZW4vY29tbW9uL3NjaGVkL2NwdXBvb2wuYyB8
IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94
ZW4vY29tbW9uL3NjaGVkL2NwdXBvb2wuYyBiL3hlbi9jb21tb24vc2NoZWQvY3B1cG9vbC5j
CmluZGV4IDJlMDk0YjBjZmEuLmFkOGY2MDg0NjIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v
c2NoZWQvY3B1cG9vbC5jCisrKyBiL3hlbi9jb21tb24vc2NoZWQvY3B1cG9vbC5jCkBAIC04
OTIsNiArODkyLDggQEAgaW50IGNwdXBvb2xfZG9fc3lzY3RsKHN0cnVjdCB4ZW5fc3lzY3Rs
X2NwdXBvb2xfb3AgKm9wKQogICAgICAgICBpZiAoIGNwdSA+PSBucl9jcHVfaWRzICkKICAg
ICAgICAgICAgIGdvdG8gYWRkY3B1X291dDsKICAgICAgICAgcmV0ID0gLUVOT0RFVjsKKyAg
ICAgICAgaWYgKCAhY3B1X29ubGluZShjcHUpICkKKyAgICAgICAgICAgIGdvdG8gYWRkY3B1
X291dDsKICAgICAgICAgY3B1cyA9IHNjaGVkX2dldF9vcHRfY3B1bWFzayhjLT5ncmFuLCBj
cHUpOwogICAgICAgICBpZiAoICFjcHVtYXNrX3N1YnNldChjcHVzLCAmY3B1cG9vbF9mcmVl
X2NwdXMpIHx8CiAgICAgICAgICAgICAgY3B1bWFza19pbnRlcnNlY3RzKGNwdXMsICZjcHVw
b29sX2xvY2tlZF9jcHVzKSApCi0tIAoyLjM1LjMKCg==
--------------M480jiEajsjJ0vYZPWba35o5
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-----

--------------M480jiEajsjJ0vYZPWba35o5--

--------------K4r0694pD4KCcgN7DyyueSPB--

--------------FsJjaZnlEOK8Mxc0ueRCiJz3
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/Ey8FAmVte3kFAwAAAAAACgkQsN6d1ii/Ey9h
GQf+KJYnVaakcd9QBpwDSlzzvGKqhaKBNG5Zt1k4H5cDa+SOoW07lGKL+3U5RQpMIbeSODMytB1I
CuyCFgUCMD6mHUkdEVd4VoBn/Qgrcp3M82vvomnmx9xuFyL4TkVsxtgI6QZKaOIQdT6nuQiE/8s7
TcS/deaV9bCCfkKgqZun48cPomxq84ZztPi6rJriRyPV4ef5n/Ty3EMqdW6+IIcbS0wEXcZJfqMD
KctBhbMAdQum6rlBhhnup7AkbMW5Ytqo9vdOw0qQ6u3ue68saaXbvGCF9KLDuz1/G8Kg5rAa1+1T
s26WviNPhcMEDci2PXh+TFolgS9u0Wg9WjzaIuN2zQ==
=LxaN
-----END PGP SIGNATURE-----

--------------FsJjaZnlEOK8Mxc0ueRCiJz3--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 07:22:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 07:22:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646525.1008851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3Hu-00024P-Vv; Mon, 04 Dec 2023 07:22:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646525.1008851; Mon, 04 Dec 2023 07: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 1rA3Hu-00024I-TB; Mon, 04 Dec 2023 07:22:42 +0000
Received: by outflank-mailman (input) for mailman id 646525;
 Mon, 04 Dec 2023 07:22: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 1rA3Ht-000248-H2; Mon, 04 Dec 2023 07:22: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 1rA3Ht-0002gj-63; Mon, 04 Dec 2023 07:22: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 1rA3Hs-0001aO-Ko; Mon, 04 Dec 2023 07:22:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rA3Hs-0005gO-Gw; Mon, 04 Dec 2023 07:22: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=lSchVQFi9SQTSsdeZgKtrTIiQq2olMX6yl9Uq+JblLM=; b=C68YiFGIdwf9uWSAHG92j+WfXn
	/QOg1sTD99pGU3kKG98bWRLABwpWF47/RiN1eyq/gaXap9Mm+qTb/B24yyiNCkwszBvuL9SWQIoPc
	aZO8u7zwvkAl+h94OhTuZobwEDl0hsFZpoi6IlfMUy/HknZmK4Qs5NfGTL/V2nTNuGlo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183982-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183982: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-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-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: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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=33cc938e65a98f1d29d0a18403dbbee050dcad9a
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 04 Dec 2023 07:22:40 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 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-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-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-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-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
 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-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                33cc938e65a98f1d29d0a18403dbbee050dcad9a
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    1 days
Failing since        183977  2023-12-03 00:12:06 Z    1 days    4 attempts
Testing same since   183981  2023-12-03 18:14:02 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  David Howells <dhowells@redhat.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Jens Axboe <axboe@kernel.dk>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Namjae Jeon <linkinjeon@kernel.org>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Sean Christopherson <seanjc@google.com>
  Steve French <stfrench@microsoft.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 750 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 07:44:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 07:44:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646534.1008861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3d9-0005Ej-Sc; Mon, 04 Dec 2023 07:44:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646534.1008861; Mon, 04 Dec 2023 07:44:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3d9-0005Ec-Pw; Mon, 04 Dec 2023 07:44:39 +0000
Received: by outflank-mailman (input) for mailman id 646534;
 Mon, 04 Dec 2023 07:44: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA3d8-0005EW-MV
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 07:44:38 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2078.outbound.protection.outlook.com [40.107.7.78])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f8a001a7-9278-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 08:44:36 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by GVXPR04MB9928.eurprd04.prod.outlook.com (2603:10a6:150:117::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.21; Mon, 4 Dec
 2023 07:44:05 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 07: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>
X-Inumbo-ID: f8a001a7-9278-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=XRVdNthR4QOnOsgGjWTwNJ0/czmG7/rivPUQKdwdjd05yRVqJEEAo973NgWYhpWe3iUoHVnbP8PpHNNpNSoLlcSCSthaTdP8xycC7clIMlc9r4kBYFfgZH2pjdkdTLNGrf2TF022UIHVXO6oZvRwM4UmE1paWTNvk1G32lXm60JiTTi1X93AkvNvqBe7DzQgMmzK+Ik8qOtGFPKiKcmZ9kndu9sFAF+doQ+cURyUVR3GH+a/XgCpquWptXVXnuEgc1R/52FX+YcH1yf2kDRxLUDtsNFijHc3guXgqY/+ooYhmm3d0if6Xh+bxMF0YaIERnpl4iS5fx8SzWLouzoxiA==
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=hTnQWDDXK5reUAJZOj6E+h/gCeuGUmuFqw5EW+cC0aA=;
 b=P4O0cTYGGw4yFyn51kXNHvashvL9ncEJNZnory5bO70svmZrPilh3wYAOlNX9vQ+3/4ZGou/WhCutjo7FvrZONdIu4KCl0wRbhVUO10ews+x3wYX0OcJjdnw/Y3jjFTx9pn/vPIXukvVMFvj7gQC5+KU7rATH8BmIV3OOtWgEfbrI+4QXLgBydH43l8pRf1UEA0AWEYwBrSGRhEG/wayRDYCRLqwWkj1rDd4LJx/k6nzDHaEgbc7FGOT3YPD8gpFCDP0XyRb5jyc0Uk9oaITxM2He+2CBH/09GeuNiAk9a3gc8IvJSzQ2e/6SmvY3GZEgjij48YUyOv0Rd6EQG3lRA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hTnQWDDXK5reUAJZOj6E+h/gCeuGUmuFqw5EW+cC0aA=;
 b=tF+E58L82nLiQYaUh5KSyhvPrf/Hr3wqFxDDsmOh3+6n2zu4wtO8FGqfKVMFnlZfboCsEXufKAK/5OPpwsYbaw9EgDwWKsrNBc7Hyqo1wE2awwTUHjbCYNrlNarnAUADAJevvSRA0KGtpcMEQxQtdo/ha7Kbk3ttnmW03UfzAr5D7SKPT4kkYSduCzkMwb75HWtQPlHREjlq4CcmIdGqM69EUcBGOdRYD+PGtdT6xtghHlSnkOny3SrEv90/pfihIfIaNT3JQXlJ8N2PFGJ/984rydELpRmgNqBqKeqIvXwU+ndvinuUGf0NpvtBjjERlB4s/8Ou8x0UFi5VNVX7wg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <5dae5d3e-81f3-4e78-a92f-fd1cc7eb2ea4@suse.com>
Date: Mon, 4 Dec 2023 08:44:05 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 7/7] xen/page_alloc: deviate first_valid_mfn for MISRA
 C Rule 8.4
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, michal.orzel@amd.com,
 xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, consulting@bugseng.com,
 bertrand.marquis@arm.com, julien@xen.org,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com>
 <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2311301847300.110490@ubuntu-linux-20-04-desktop>
 <21956d5b-08ad-45ac-96ff-22fe7d54ec60@suse.com>
 <alpine.DEB.2.22.394.2312011901450.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312011901450.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0190.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a4::8) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|GVXPR04MB9928:EE_
X-MS-Office365-Filtering-Correlation-Id: a78fceab-ab22-43fb-7b2e-08dbf49cc9b1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	6ZRy4OtbDF5Isu085tVxPLPaMmrpqX/o3jUO7oAgNxpUMJEhwHsXldbbrMh8XADPKOwm/ED9wB8hmnqkYQ1a2e40ufIRqbxmMqEDl1JNqcNyO/04NqghIpTKbUwLBn8P9H5RNGbu9ituyYJ9sxB7E6ql3tJIfk8CyAjwn6XY59j1Bq4QQjrKMU8ew8e1zy2TDxcpvPkEPRf3zLbLeCBKpxxDuk5o9KoqESOiSjCry/WVs4RgJkp0NF/AP+jOC2Dknta0qJdDbR1HiG5KB8W7zocJRizykh+G4+pIJUFtoZg5SyJISwehcnHVP/MfG75J0Po0j6JwG63gBsOBljBxSm4fYqpQE/dejD6RCGK6Dl+QSz6w5MDiGzM3w6i5I2YeKfcpq1mR90GZld57/Ems2AWVVnGPyzZ785sFDGqQunf4wgYqHnaXOULdct+Jlg67TkfYQ65+TsiLw76l6314tPUlCJUBRdw/6X2YzGZzwbnuJkrWy1wtme7DvXEY2/rEdKNjMtd2dyLaJrgbUEGuXXmlFozJtpyWUAIgwsOJJ5e4/Li+fo27CxMaARFDdXrRBzqVRx0nHW75FItPElnj8JYIV2hvDmko+6hHE7JwCfIQbkA7fTALdK843J62vrJzMufxOPMS95uncyAHptoA0Q==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(376002)(136003)(346002)(39860400002)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(7416002)(5660300002)(31686004)(54906003)(316002)(4326008)(66946007)(66556008)(66476007)(6916009)(38100700002)(41300700001)(2616005)(83380400001)(26005)(8676002)(31696002)(8936002)(36756003)(86362001)(6486002)(2906002)(53546011)(966005)(6512007)(6506007)(478600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WjVZSDBTRkdSQkY4MmpuSkUxTU85V1FoZFZaSUU0V3NLUktxUHdKYmcrVmdt?=
 =?utf-8?B?aUFZcVhqcjJGUTVOdVpFbElyZjZvMXZUZ3lGb2pWUUlSb2pkK3BwRnkwUUIw?=
 =?utf-8?B?VzFseUdEOWpwbjVsZlVrRFE0bGJpaGpObm9MVUp2N2gyRWpTaXp0QmpiYyt5?=
 =?utf-8?B?elc5cFdUMFZzNGpCYW9RRUlEQUNQNXNRbDJSTG9HcVdMTHlhQVJXa0gvQzVW?=
 =?utf-8?B?YTcyNENHamJhVXVmWEQ2Qlg1YTd5SzVLRldsWkFUc0U4cjNKSFplTEVVdncr?=
 =?utf-8?B?dnlOUnhIcFZRUERhdW9lR3FVa0dvZllVZ2Q2Mlo5ckcwNmh4SHgvRkZkZ1Zh?=
 =?utf-8?B?bWlrMUJMT3h1cTJNMVdsa1RiczBBOU5ycWZrejdwMzB2MWZkWnRRbjMrRmJ6?=
 =?utf-8?B?NGVjN21wdHBhdUlMa3NOQVpNem1lNGY1ZE9MVHRWMTBScG1nK0xaZ1h0MHYz?=
 =?utf-8?B?NDhuaUtvYnpvcFBlUDJjenorMXd2ZWVCQ1J5ZytEVFAwdDRUWWNTZUNkQzlm?=
 =?utf-8?B?TER4ZkpvUDBJb0oxY2tvUlI4NUNsYWtvOGNYUmZuY0ZlelBMbW9EWGRlaGQ5?=
 =?utf-8?B?SVVUZjZhVUlkZ0w0K0hsUkU1R2N0dWZSNmN0b1NHTVpjMkJUUWttdUNYL1hP?=
 =?utf-8?B?dzR4U0t5ZmFoemhYVDhQTjJUUm9RaUJXWUdkZVRuT0pQZ2JtdUJwNVV2aHFN?=
 =?utf-8?B?ZHdNTnUxK0JVWWVYNVE5VmdjWUFyOTRuYWFUVFhCT0M4RVIrSXZtQ1FhSFNM?=
 =?utf-8?B?NUwxK1B4STV0NDcwNklOSlBmZ0tacXRnUnNmQ2FTcGtCT3ZWK2Nya2tZcXcw?=
 =?utf-8?B?NTlhOHhoQUhBUjNIOFN4dnJMa0F3MWVENFl3MmRDQzRzZGJJV2Z2clNNd3k4?=
 =?utf-8?B?Mk1ZelB1YjhvNzFJNE5IRnFoeHQ4eC9INmc0VEkxRGtMWHJEdTYvdmVJbkNp?=
 =?utf-8?B?YkJ3TWdYOFdXeG56NjdOc2xURCs1MzRTbTFGd0RhZGxuZnplaVpKRXRlMk1H?=
 =?utf-8?B?emE2Ny9pTFRma1FQNmZnckdFT1c5YzFDV0hqTmRPbERSU2dFb3JBTUtyczVI?=
 =?utf-8?B?WldHZnd6NnpxZzk2bkk1T0duUXFkU2ZFblFPSzVzNkZqeTFvZlJQYm1BdTM3?=
 =?utf-8?B?ZDVVaGhGbGF3a0QyVjBtTHYwWGh6dEFTY2tLYnBCVEVNQzJIaVdsNGdJSjZj?=
 =?utf-8?B?azlZd2tOR0dGcm9qNFB5d2Z0UWlsc2VFVEIvOGcwd1hWaWxyQmoyOWZ0UXk4?=
 =?utf-8?B?S2ZjamVHYWQwTWtGRVBmMExQNHFFTitqTE00Q1V4M0pNVDZVVXRmY0RCU0FC?=
 =?utf-8?B?THJ1cjZFcm1QSGZIdmNRL2lncFgzTFNVWG9aN285eFRoWnNwVXhtelM4SmRq?=
 =?utf-8?B?RDEvKzdiUUtzb2dLRFBRWjhFeVhlZHVNTUJadHgrYzdzYldpVG1NTVo3M01E?=
 =?utf-8?B?cHpxanZtQ2tNVHIvQU9YY0N1Z3hxVzRQVjdVQnBrRUsrMmdvd0NvaFpuVHM2?=
 =?utf-8?B?Yk1nWHBGcmw5K1ZJbFZHYWVTa3RCREQrd2xkSk9ocHhiT2dtSTgxQ2tTY3Q4?=
 =?utf-8?B?ODU2SmR1VHIwMjJ0ZVdPbk80Z0ZUcGsxZlJDdE1jOU5yNHYxZUwrYlhQZ0Iy?=
 =?utf-8?B?eDlML25CMHNTVmRWQk85TzdKSng5UWFEbkhnM1I3SGx5OEltL210dnM3azRC?=
 =?utf-8?B?Rm9UMFFzUDZuVmVKc0tGME5IQUVxeXVzUVJrdDJhK0NoemYzNVdnR0YwWXNS?=
 =?utf-8?B?ZjdHd2lqRFM5Wm5IZ1MyaXJWUER2MTlScmd3MHFPNENvUTc4RHZmYVY0N2Ny?=
 =?utf-8?B?OXpRUVFNVzcwWVR1N3VPcC9OQzBtaG92eER1SWkwd3kydGx0SXVnVzBvNW1F?=
 =?utf-8?B?Y3lwNXlRRDJnV1hYazU4WXJGZ3VVMTZWMTNSVEFZRVR2b2JpcjdQTExvajVw?=
 =?utf-8?B?aTl4cjNwSWgvazB4cEFyL0RmcDIyOUdwb20xditkRUtDdVJmano1anpTT29p?=
 =?utf-8?B?aGtncDI3dDdhUWlrWTBHVG1qWm52MDJkbG84K3RYU3JBK1NUdVJRRE1Tc0Zl?=
 =?utf-8?B?TjdUQThvZ2NSamhYeENXcThjM3JZekFnaUh3aWpOT0l6ZEpsYUMxTnd0c1BD?=
 =?utf-8?Q?omCl6NumgzIimRxC6yoaKjHTU?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a78fceab-ab22-43fb-7b2e-08dbf49cc9b1
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 07:44:04.0337
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cf09tDUmwWJUM/d8vlKjSphXjaGK8zHeFrF20V2JAS/YoOn1p2w5BNBFGPLDYOUmGDwmzXeajIZFzgGbcCkbxw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB9928

On 02.12.2023 04:03, Stefano Stabellini wrote:
> On Fri, 1 Dec 2023, Jan Beulich wrote:
>> On 01.12.2023 03:47, Stefano Stabellini wrote:
>>> On Wed, 29 Nov 2023, Nicola Vetrini wrote:
>>>> No functional change.
>>>>
>>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>> ---
>>>> The preferred way to deviate is to use asmlinkage, but this modification is only
>>>> the consequence of NUMA on ARM (and possibly PPC) being a work in progress.
>>>> As stated in the comment above the textual deviation, first_valid_mfn will
>>>> likely then become static and there would be no need for the comment anymore.
>>>> This works towards having the analysis for this rule clean (i.e. no violations);
>>>> the interest in having a clean rule is that then it could be used to signal
>>>> newly introduced violations by making the analysis job fail.
>>>
>>> Please add this text as part of the commit message. It can be done on
>>> commit.
>>
>> I assume you saw my reply on another of the patches in this series as to
>> asmlinkage use on variables? IOW I think this paragraph would also need
>> adjustment to account for that.
> 
> I was going to ask you about that: reading your reply
> https://marc.info/?l=xen-devel&m=170142048615336 it is not clear to me
> what you are asking or suggesting as next step in regard to asmlinkage
> use on variables.

Either we need a separate attribute, or we need affirmation that calling
convention attributes are ignored (and going to be going forward) for
variables, or we need to resort to SAF-* comments. I'm not sure what's
best (assuming the "affirm" wouldn't really be possible).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 07:46:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 07:46:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646537.1008872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3fO-0006B2-8Z; Mon, 04 Dec 2023 07:46:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646537.1008872; Mon, 04 Dec 2023 07: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 1rA3fO-0006Av-5Y; Mon, 04 Dec 2023 07:46:58 +0000
Received: by outflank-mailman (input) for mailman id 646537;
 Mon, 04 Dec 2023 07:46:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA3fM-0006Ap-6n
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 07:46:56 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20600.outbound.protection.outlook.com
 [2a01:111:f403:2612::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4af2b430-9279-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 08:46:54 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AM8PR04MB7233.eurprd04.prod.outlook.com (2603:10a6:20b:1df::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 07:46:52 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 07:46: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: 4af2b430-9279-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=a7zfeR3HMSQnctjH4c3nz/crLHK5w94fiRY9DQU0J0zZ/bwYOcUUpUxbddvMu26eCWN+Hf5Jar2SpUaCDDcQk7Vc6hnzVjX5mbN69XOUiO1tFZoXqLPxn7B31YcTrsL/xorqhsaOXNV/amLEEGNjAs4FM39jO4FFTah3CgOq+NDmxmJG/eYtBGIE7rEat3Bx50yTBEfy0CzvRkZRFY85n15KcjYByk+jjuqjZgtQr5Ab3y0UkZQZBfEd4yUbVba2BRO45gYAFzaCyhE/Bg3FHM8uYjpo8F70tgOV4XSwAtAhPJg94WvQlLnAxMBPctxnHqEtCoAe5leui/x2AOGkRg==
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=9NdLm1zNuPzec4QETEPw9e1j7zW5giHJkgFB4eaiKAg=;
 b=bDLpcROjZrfV8uLV+zV2KBkjXizGmm8/E63RumMUpMfLfLEbWnW+he/Qb3XRjuVWHRGiFFg47Vs4NJ/EBFBhHVibMskPVbzGvHWPDotLUA3ShSl2AiaGAMAOHGMcq8jOdak3nNnN0IXvVEBYMLlYipTAOxwuMoRzy1C9U+3sss/UXw7yKs5D8jqfrJesGcKwAJwfcRdI3QBiqWKuD4Ij9Y6ab7YnnmvppzEZm1OiAE1JM9HTu6OSp0MLfzi0T+IkipOyOmoRjfcRJyPsOUz3ojmlFAOCj8JVTRoKhyFpbFM7prItvFFlBik5ynRwFoC1enPaUxtrUPB4keYzUKVLgQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9NdLm1zNuPzec4QETEPw9e1j7zW5giHJkgFB4eaiKAg=;
 b=HedbB3HyBKVhYCLvLHn5Qez4yPT4v4Oiq5NcWe27B3dS0TaFRHjg5D3h78HypvB2sb5yojNQwioirUoMxaoQuBpk2LfX53HyzmehbMPMD+UKH4CbV2U21TCzB7Vda501aIVJMVKyPSXfzfwzee9N98WGSd/B21ZIMsi5Q57o+ZklhooVbcj1CB1wtQBOMa8V76wLgukY47FtHHrIaOewOkJni2waCaQiTLKKHumwqRF81hH3Uy7AToQIJK1dEZGMiOhYJHRaYtTttTT7GT/8yopPkx1DAmxvAR98HI4iO44kMZE2SaI9uriOTfz142PSsQIYeEWtohELkdjmC1Uehg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <dafe662d-cb6b-4ab7-b55c-fcc21cb1a586@suse.com>
Date: Mon, 4 Dec 2023 08:46:53 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 3/3] xen: address violations of MISRA C:2012 Rule
 13.1
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Simone Ballarin <simone.ballarin@bugseng.com>, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 xen-devel@lists.xenproject.org
References: <cover.1700844359.git.simone.ballarin@bugseng.com>
 <771a6f804f4e7dda3897359b57d1d14c2878ea16.1700844359.git.simone.ballarin@bugseng.com>
 <2d4d3dab-f5a2-4b57-904e-e48642f7937f@suse.com>
 <alpine.DEB.2.22.394.2312011921250.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312011921250.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0098.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a9::8) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM8PR04MB7233:EE_
X-MS-Office365-Filtering-Correlation-Id: 94436e33-9b7f-41d3-4776-08dbf49d2dea
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NNMY1sCLpAZ/umS0ayygMc/xCwxXXR9iEqNgpXIFgW3MZ5n2jXqKNRsWr2lXM2b2IOUL1obU1uReMr5z0+tAq1RU1mgkSuoUyB4pKbpL6YHrFDTV0s/wiZk+M3BRGliVeovaYVlhIW4mUJ6Gg+E4jNy3C54lgMGGUEg7XKEnlnpJJhR0WRP1xMvtURjcMn10mk/CTaEE86kBf2C3kUMvdxYEULTbtbCyuF3EzPNYIqh1Kpo/SeNXhOXTIG0SO6uPgMXhdT8sLA4WakdlDj9J0VTJcLajdZq+9pcc/0VlyrbpJ2lwSJZQYpQAsqHTvBmXWoCr8S9QXBsYRjWLg07Ulm0ca5UnBKdJ0+4QQrZfqZdX5UnzX1FuHzxfZuymXDc0D6r6ZGxbNR3utDfJej62KiK640zWJ+A+vWJyt+Tv7oIKAHRIEmXqjJFtKyVrbgM1Vszv1e96cOntyWtKQBSO5DN+ZoDKDxdzWnlSZA0hGej4pbq9VFU46j+5LdtY7lFuaXvuLLrqijTPb93mZTlfvbAB85YQopMz221nHYO0cewGRV5impmImQjoiYmGGBvVlXbyjY4hZ09rRQtr1MgeFOifv5R5v4Nl5x/v0Bz0GLJsvpi8YEZkpqysOOAm/nq/JYy2i6VMbWxXpOpdY8fKqA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(39860400002)(136003)(396003)(376002)(346002)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(54906003)(6916009)(66556008)(66476007)(66946007)(4326008)(8676002)(8936002)(316002)(6486002)(478600001)(66899024)(5660300002)(36756003)(41300700001)(2906002)(31696002)(86362001)(83380400001)(2616005)(26005)(38100700002)(31686004)(6506007)(6512007)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dnFlS25qS2dlbWdkTWNVeGc5UktFdDN1bEN5TkZZK0k2SjVXYXJMcWp5V25I?=
 =?utf-8?B?bHc0LzdmQTF4YWZJQXh0bTV5ZkNWb05CQVo5NXFXc2RoT00rVWNxSXBuamZB?=
 =?utf-8?B?Q0Nyc1VjbmxGL2hkWEpRbGlQaUN3N1plSU0vQTM3VnNWT1FOcHpZYnJXT3lz?=
 =?utf-8?B?SzlDZElNa3Jjei96T0FVcEZuV3ZuZmR4WVBYOW9nV0dyU1A2NkFNQmtkdHNx?=
 =?utf-8?B?WEVXK05GVnZ2eFFxUDh3aWxvTmJFc1IwSmx2bXhacGlXNWlJeUdXMUxsZWVi?=
 =?utf-8?B?UE9tN0YzMkwzb0dmaWZJN0dacUtYNWJPdXdFRHhla2FqWDMzbUJRdFdNbVRq?=
 =?utf-8?B?b0RETVZYcGRoR0pSTEdmaGVXZEFjTC85WFhpbzduM05zTXdkZHhIKy9pQzVG?=
 =?utf-8?B?RFQ4R2g3bzJ2U1VVMFBhYVEyYXEvUG5OV2t5ektOVGsxcWhwTXEwK3lYSW04?=
 =?utf-8?B?cTM3c05oWmxsNWliY2VRV1BPVnF2SHdGVnhHWEtjWlZ1L2M0NFNORXhaWXRZ?=
 =?utf-8?B?SFh6dXhic25GUzE2RS9xWi95TFY3VUxKdmtYL1VFTzM3anRpTFlVSTY2cFZE?=
 =?utf-8?B?RmR2b25MYjNpbkQ1WlVRMWtObFZYYU83ckxjKzFyTXFDN3hrNUpXQ1N4NzlX?=
 =?utf-8?B?VU1xWjJOVFRWSnVFVUlQczA5YzEwRklsRUUzS3BGNmFrL3N3SG1CNjZmTmNY?=
 =?utf-8?B?a0JYOTJVMDRSaHYvaUJ3SmZBbzVQL21qeU0wL2Vya0xXVUdjTE1yeDh3azdX?=
 =?utf-8?B?SnFMeGdCZjZzcWZCTVA3TEszNEFRdGtoWTRPbXFXUUg0ZUY0K3hpYklQajJ2?=
 =?utf-8?B?cWNyajFLMERiaW95SmZ0bnNoS0Q5OGpGenRURmJQVVNjWkpwMzVFbmVwY0xu?=
 =?utf-8?B?VFJLQzVRSSt0M3JKVXZqVm0xMXYzRXVpa0VLQTU5TWNXeXljajhLVmpwMWN1?=
 =?utf-8?B?ZGRPaTJJMUhmcjgzalZHWG1SWlpkY1NFZFdKWFZzdXVZQWVPaGN1NklsWUR4?=
 =?utf-8?B?SU01SEhIOU55ekloUy84NElYWXY1akNZalgzczVuZmFWY2o2VDZVZUZNM1pN?=
 =?utf-8?B?d2x4RVpOdzAvV1cvWFpvT2lwamlrL0xLS21rUENMM01RclY4dTFXeW82S3FQ?=
 =?utf-8?B?VlVNeUZwbmc1WWo1OFduZjdFazdGWUNQSGZ1dzBjN08rOWo0NngwaHNoVzZ0?=
 =?utf-8?B?QjFIRkRwcjFmQWl6Y3M2VStaTUZOWlp6bi9aUzQ0Vnc5aWNyK2NOaG9Delh6?=
 =?utf-8?B?dEc4YnE2eHpBSkEzT1ZmVDk5TGxZamFUbmNoemZtejdCYXZtRERPZ2JPbFo5?=
 =?utf-8?B?bmZ1SlAweFJsaEFLbGhHTHg0MEpNNXNmVFM5cGU4RVpxRko5Q3Q1TFYzeVFr?=
 =?utf-8?B?R21PdGZkYjFZTGN2a0U3a3c2dkxrRU5ZaTNBTWNuSmRmUWNvOHV3TjZRMFRs?=
 =?utf-8?B?SU56VWJOMGltTHJuZU05S2ErMlBKaFNpK2wvdllmcTlCNmMzWGVERStSZDJl?=
 =?utf-8?B?QmFVSWhUbXdRaWhobkVrMGdJLzd0ZXZsejB3NXRJcDJMa3FWbElyVjdmQ05F?=
 =?utf-8?B?RzdTUkZHM0s3RnpBNWl4d21DTlQzVmt3K04xc2N4aXJmOWp0cXhOZ3QvaFVk?=
 =?utf-8?B?dkwxRUNKVG9HK1JMclpKVjRtQUtqZDJMdGxTQ1NrY1kwN3lIMWhQZGRVemNQ?=
 =?utf-8?B?T1VUS1hHWU4wVm5oem9PM2k1cFE0UUlSQmlOd2hVejNNQU5CaFRhbnh6K2t2?=
 =?utf-8?B?OS8ySXNFNXFBbjJRSDhrVm02VXpXbnNBSmtRYk0rT3c0c0p2UExmMjY4UGNk?=
 =?utf-8?B?ME5uRVNJcmp3Ui9xbzJKeVlhenhxS2RLeEFQRUM1QjE3ekVpUWliYlNUK1Q0?=
 =?utf-8?B?a0NTcjNIcVpkc09JTDNyOEsrRmpuYUVaVUJEUWg3OFpia1pIREI5N3ZVK2pM?=
 =?utf-8?B?ejJIcGJvWW9MU2IreDRBMks4WW5tVzRrTVVDZ0ZVWldQVlpScVlpQmI5OExi?=
 =?utf-8?B?SEFDcXhza0p5SU90YjZrZEMrUHJQOERBM0twSGttaVhIZ2NzbnZIZ1BnTldi?=
 =?utf-8?B?ajhtbmxwQkNIUExrRXRKNzUwOXpTQ0dGNjBkU3N2TVFUdlJrTFNEbGpldGFX?=
 =?utf-8?Q?BEBFMTGGzNd3zBXogGzUAFBCW?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 94436e33-9b7f-41d3-4776-08dbf49d2dea
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 07:46:52.4260
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dFP0LCS1+2tWUlhH6+XJvtqB/wcxVI/jokinJeTWvt+ZsY5qEqicjaJ6tPys78olH7U+gS2bt/fV9Qzz47Cutw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7233

On 02.12.2023 04:22, Stefano Stabellini wrote:
> On Mon, 27 Nov 2023, Jan Beulich wrote:
>> On 24.11.2023 18:29, Simone Ballarin wrote:
>>> Rule 13.1: Initializer lists shall not contain persistent side effects
>>>
>>> The assignment operation in:
>>>
>>> .irq = rc = uart->irq,
>>>
>>> is a persistent side effect in a struct initializer list.
>>>
>>> This patch avoids rc assignment and directly uses uart->irq
>>> in the following if statement.
>>>
>>> No functional changes.
>>>
>>> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
>>> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
>>
>> Who's the author of this patch? (Either the order of the SoB is wrong, or
>> there's a From: tag missing.)
>>
>>> ---
>>> Changes in v2:
>>> - avoid assignment of rc;
>>> - drop changes in vcpu_yield(void).
>>> ---
>>>  xen/drivers/char/ns16550.c | 6 ++++--
>>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> This warrants a more specific subject prefix. Also there's only a single
>> violation being dealt with here.
>>
>>> --- a/xen/drivers/char/ns16550.c
>>> +++ b/xen/drivers/char/ns16550.c
>>> @@ -445,11 +445,13 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
>>>              struct msi_info msi = {
>>>                  .sbdf = PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
>>>                                   uart->ps_bdf[2]),
>>> -                .irq = rc = uart->irq,
>>> +                .irq = uart->irq,
>>>                  .entry_nr = 1
>>>              };
>>>  
>>> -            if ( rc > 0 )
>>> +            rc = 0;
>>> +
>>> +            if ( uart->irq > 0 )
>>>              {
>>>                  struct msi_desc *msi_desc = NULL;
>>
>> The fact that there's no functional change here isn't really obvious.
>> Imo you want to prove that to a reasonable degree in the description.
>  
> Agreed. Only reading this chunk, wouldn't it be better to do:
> 
>     };
> 
>     rc = uart->irq;
> 
>     if ( rc > 0 )
> 
> at least it would be obvious?

Indeed.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 07:50:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 07:50:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646541.1008882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3ip-0007c7-Oa; Mon, 04 Dec 2023 07:50:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646541.1008882; Mon, 04 Dec 2023 07:50:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3ip-0007c0-LO; Mon, 04 Dec 2023 07:50:31 +0000
Received: by outflank-mailman (input) for mailman id 646541;
 Mon, 04 Dec 2023 07:50:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA3in-0007bp-II
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 07:50:29 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20601.outbound.protection.outlook.com
 [2a01:111:f403:2612::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c994e1f1-9279-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 08:50:27 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by GVXPR04MB9928.eurprd04.prod.outlook.com (2603:10a6:150:117::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.21; Mon, 4 Dec
 2023 07:50:24 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 07:50: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: c994e1f1-9279-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QPqHoE3y7KB702F84HiX9Qqz4zfxgITRu4KIFChhRBtMuCrIuLcTKRD4D1chtO6Ea0aX7abhsXrlfb+bOGuZNX2fBGvMi/PxuiBBy63MLk1P2QXX1IW2SgeA1UdBFnk8y7wAi+PsngzgVL3HXSvGlTSGPpoQOLFkIWMmBCeNshFtWvQ3PqvrGCy/lUvUqOTGN9kq/b2CHjEcPAIhaPB3ud2SAUERLvQE4gGHYDy6QXL1JM7zGWLRuj3DQReijPk9Y3xKvP3WThdEOZvZ8yNoVwc4MY7P5KSC5NFPp8iJEmq4W7mW+BwLRpRByVjCDHI7ZyuqRY+rbq/VyeCafVwKOQ==
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=nXgSb3N6/KjVKW+Isbo1CyWphVQ8ULYo2yHN6sXAVw8=;
 b=dR6p++mWw2mfTSOVAGOIbj8/0yuyqRpbcizM2laJmU2zdPMy4uzqNJ8SKYd5ktJLhp8uI57vCYPDHBgxg++FHPMYqRSvcjTjCX9xpDbRoPoqO6xpEC9hAnJMjhyhPhWZrqTd985YKnQTHJ8U+JBDkSIhlXbbC7lXOfCjQq+XM8Jmp8AsFvm8B0fID9Niy7/QRh6cPAy8XNCqWTrV7TKbiwO1b2v+AQ21yQdfr+XJEtmAzMJEYsLPV9JnVd24h7nWjuNlx/bEoKu1ThAMt/xh+SiHBCKbiCOPpBpum5HD37O9UG4FqzHg9wykYXG9wfT1XZhmkKzxtIpRC0aD9tHg6w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nXgSb3N6/KjVKW+Isbo1CyWphVQ8ULYo2yHN6sXAVw8=;
 b=4R4r4zy7GQDDhQ8BetCElwvGTF0q27cS2ddoe+VJ1LV42RIg9nEi9Y3RS2Iybm4808wubKJf4liMz0ZJCzfxKynB1sxoleJ+Vyx+2e/wDA9wviTAxMHE7TyHW11lDWMIyFASiJFGgI2V/3tj/bym54xJY4BOOmG1cUAI/3zFizL7r8ij/1n9QOdLFuUobKSrnukaHGJw7lVW2B2cOeXCdN0jbaMdMoYjjrWjhQYUGCEG+4w7YVavjRh+7HBdwYOs5VmrzmuYdEdHdAnIWVeM0VkySy7Mtavd5oW0XkvPNiMty6DV1uYyw52TqIvtS7QKoAq2lkGvCQwuQZg0xbebkA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <b5664d0f-9ca6-4a9d-ba71-7f81e24e6a85@suse.com>
Date: Mon, 4 Dec 2023 08:50:25 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>
Cc: consulting@bugseng.com, maria.celeste.cesario@bugseng.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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <a295b44a9fbb02f962720e086588437876e02ce3.1701430079.git.maria.celeste.cesario@bugseng.com>
 <a33ffc19-1e1c-4126-aba4-4a2b0ee24cf4@xen.org>
 <ca2d37aa-fb8f-4b49-8909-ad7d4065a59c@suse.com>
 <0e3acb5e-b1ff-40dd-8f63-d5806527321c@bugseng.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: <0e3acb5e-b1ff-40dd-8f63-d5806527321c@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0008.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:1d::14) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|GVXPR04MB9928:EE_
X-MS-Office365-Filtering-Correlation-Id: 0e2479bd-3968-48b1-0661-08dbf49dac2b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	gmQo2Qfig2Iz4UJuwzJQUwxaodF68sFYh8rNDknb2gHOEjMqhPjnRlBk49IQj7H09VipXlKL6VHk6SNVEgTIEMoFAV2NXYRuBUW1Ga9DFYP5yBh5K9uKoLTXvdGq8eATTLRxu3NM/NkGo2nHQTFAg9nj/aKlP46WyVZ13Y44mNMKa6iVBNGZI3cOrAb1ci8qK0NloBg+MesMOLq/SVp6t5UJWRmOafP4YgGxmHdqPBHZMrJr9cuEZJ9gMompD95fz+fkSgwhAk4yPvd8UWj00AOJiyaVZEqHg5pDxu6moCIiqO40vJvLp7kUtUw1e1BzLzSefweUPrQpdxd++ja1Ye42/AJL4NN71GJI5aDT8bnFkRAueaeOXO97qU323OPS0Mj+ajFRZN/0sgRwaJAvql5aexl55v+L72VNp5t8lgiJ2vevK1RwPYftMiEDNn/Mf9nDDUowsacyubOBSTZGvE+h2l+MfvLssvQYMGy25pMaEYqCbLWwnK3YN0RdToK3F4eaOkbR97veqWOj/E6LaelMN+TYKRsTJhy2HOGry1StlJnTKMcV45iJznLSNP1aeMTb+ffFc2DtS/T742nbZCb4HrCH2ZrEvd5kAINYbPJGzc4I0wAX7V29CFGCC4cX6dpF6+gibAqIZAKn91QLig==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(376002)(136003)(346002)(39860400002)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(7416002)(5660300002)(31686004)(54906003)(316002)(4326008)(66946007)(66556008)(66476007)(6916009)(38100700002)(41300700001)(2616005)(26005)(8676002)(31696002)(8936002)(36756003)(86362001)(6486002)(2906002)(53546011)(966005)(6512007)(6506007)(478600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bnFuSWJNRzJsckZGL0ZnTU5lZjhqaU5ramh6Q1dLRDZnQWxVWjBvdVpOWlJq?=
 =?utf-8?B?YTMrckd2VXpTdEVReFMzTzQvek03QXhhaXFiMmNwcjFQM3p0emwrU2JHMk5h?=
 =?utf-8?B?QVkvSjJlR201MEhrUjBmcFBUampaZ1JxQkhtTTdZVWt2ZXQ4ajRSaCtjQ3NE?=
 =?utf-8?B?c3NlaUEweXFIVHB2TXVMd0lnSXI4aHk0NnR4NFZUakd1NFI0RzFJcEMrMHJt?=
 =?utf-8?B?M29mL0ltaEl4SnlMQnUxT1h5Nk5TK25Tc3E1T3ExOFY3L2RvSXQ3N2NkR2ZS?=
 =?utf-8?B?MTR6aldsa3lVaEFRM3pGbzBDS0J5b3ZBblVPVnhqUmtkS2lqU1hUL1NqNU1a?=
 =?utf-8?B?K2dJSWZvQ2E1S3p1c1F4d0pmbm5VSDY1bW9lSDJjMTh0OXVIQnlsVjI4dGpZ?=
 =?utf-8?B?OWtZSEpzY2xsVlMyZlBGWW1LOWxnOHFsNWszRkZWVEN2eE5tZVE2Q2VYU2Q1?=
 =?utf-8?B?ODQxb0ZGeVFnczlHK3ZRK1YwWWQ2T0daZ2twYld5aW9FSnNFYms0Y0RJd3gw?=
 =?utf-8?B?dWtUTk9tV0ZranlQZHVQOGZqdE1oS2VjNkkwRE41cU8yMlBSVHM3RDhra29o?=
 =?utf-8?B?ZHRKUkpwd041MEsrT2JScmp4T2pxdkxnRFdVUHZGOVI2d1pKOSt1a1JiVEtV?=
 =?utf-8?B?NURYRHFuRVB0WFVaSHIxS3hzY0p3bnR6QTVVZGJIRm5yWGZVeTNiTTNVZWtl?=
 =?utf-8?B?SXpyb3M5aWQ3MFdtN04zOE5vdlVmWFN2RzNKZHUvc3JBR25ZV29xUDh5SG9V?=
 =?utf-8?B?VnNIRkhqRDNWOGlyOWRMb3Fib0hzelV5VVdzL3lZUUZRWXAxQmNCZElQNnJx?=
 =?utf-8?B?Q1ZxQVFnbmVBaDkrTFQrM1ovZXBLYWdTWjVTSFExMFhnNkdESkRjYWJhNEZt?=
 =?utf-8?B?OEppYjl0UjFoc0xjbi9LWnljTEpCOTlPNEdXclJOd1lEUUVGY2hMczJYK0pq?=
 =?utf-8?B?T2xUazN0bUdRMXRiSUNhaHBnTTlGYWdDZE1NaWhyL05Tb0VxU2gwV3piVWxv?=
 =?utf-8?B?VDlRL1A1Qk40aWlqRFVsZ2dnSWZhM2J0Y2lyTXlJOWxBREpYcEZCM1FrQUMw?=
 =?utf-8?B?REZpYnNwekJwVk5zSm1rTURqaFpYK3Y3eURNTklBM3pxcFdxRk94L2t6SDlv?=
 =?utf-8?B?M3E1ZWJaYlFOTnpkcStGUytDeWJ0R1lzRHFJZE9NT2pRZDFIMkhNRVQzcGJh?=
 =?utf-8?B?RWhTVlljY0V0SnlUOUdObFNubWFnZ2RQSEo4UzlPVUh3MjZxaUU2RTBpcUUz?=
 =?utf-8?B?UVpiV1ZQQjBhQzRnQ2x4c1NRL2dVV01Za3hsckh4MFNsZEtqb21TR3Vkeldx?=
 =?utf-8?B?TWJ4QldPZ1A5akZ4bkJOZ3F4eTJLZTNQdWhBOGMwMmhRUGVJaXJTbzZCaHNO?=
 =?utf-8?B?QXZqS1FKSnZjN0g4bk41QWd6aTFPMXlGMHBVOVZJV1NUZ1hybVQvM25PYkMv?=
 =?utf-8?B?WXdTdnMvdzhDQVQ0NndTZmFadmNlZXVXQ2ZZYktQdjZ2RXdiRnBPREFnNTdP?=
 =?utf-8?B?OGw3QjRQSHMvK3FpRzFRZE1jTi9WTTd1dmRCNC9vNWJCWGJONUVkUCtndW95?=
 =?utf-8?B?clJoY1lCNzJsZkkrS0pxUzMrUXN4NEdHYmJjVTFYZ0RZcElyZTNUV1d5TThN?=
 =?utf-8?B?NkNVazIwSnM0eU55cHNkM0tPNFpUSGRjUFROUUt1VFRLQXRkcUJyeFkvY2FW?=
 =?utf-8?B?ejBNTkd2MmI3b3IrQzdVMjVPRElxWkhnZUJjZDVNMW5ZbndVZDFOZmM1R200?=
 =?utf-8?B?UUdZWXZFQXE0Skt2bEY5OXRWUEhwRW0vOEpyam1wSkJKRzNPKzVjbGNYUStX?=
 =?utf-8?B?MUZXZ3VMU2J3bUdEdUJicmh4Sm94bXdnQ1lsWWU5anBUQ3lNeEZnck9hcGdR?=
 =?utf-8?B?NU5heGxYeEV0WWZ0U1JZdmdjV0JzSCsySFpCSUdraUJOanRsREYzN081UUpU?=
 =?utf-8?B?bVJRSVhNME8xclhvOUZ0UXZyUDNCZVlCUXhCT3RRMjU3VXpCQzNyMVNaL0tT?=
 =?utf-8?B?Q2JHNDFKeTg3Z01ITmJqL1BydGlocjFhTHphdnU1c3MyNmJjcHVPQXQ3OHY5?=
 =?utf-8?B?WXVYdjA4a1Z5TVhwbnloREl4M2R3Z2hPQ05MY1RvQWRsWURrdkl1SnhxVlFD?=
 =?utf-8?Q?+67uZhOsXZixAhO0ARv1E7ZfQ?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e2479bd-3968-48b1-0661-08dbf49dac2b
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 07:50:23.9745
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oOfePtEKOMAR2fOXBPNW2vXEuTP7/TNsEDHh7S41YrRRhjLtnhnHBZTTseM/sNLyBBBHmH2xpRam5j8ILxp5lg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB9928

On 01.12.2023 14:44, Simone Ballarin wrote:
> On 01/12/23 14:03, Jan Beulich wrote:
>> On 01.12.2023 12:48, Julien Grall wrote:
>>> On 01/12/2023 11:37, Simone Ballarin wrote:
>>>> --- a/xen/arch/arm/include/asm/regs.h
>>>> +++ b/xen/arch/arm/include/asm/regs.h
>>>> @@ -48,7 +48,7 @@ static inline bool regs_mode_is_32bit(const struct cpu_user_regs *regs)
>>>>    
>>>>    static inline bool guest_mode(const struct cpu_user_regs *r)
>>>>    {
>>>> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);
>>>> +    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() - (const uintptr_t)(r);
>>>
>>> NIT: The const should not be necessary here. Am I correct?
>>>
>>>> --- a/xen/arch/x86/include/asm/regs.h
>>>> +++ b/xen/arch/x86/include/asm/regs.h
>>>> @@ -6,7 +6,8 @@
>>>>    
>>>>    #define guest_mode(r)                                                         \
>>>>    ({                                                                            \
>>>> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
>>>> +    unsigned long diff = (const uintptr_t)guest_cpu_user_regs() -             \
>>>> +                                                        (const uintptr_t(r)); \
>>>
>>> Was this compiled on x86? Shouldn't the last one be (const uintptr_t)(r))?
>>
>> And again with the stray const-s dropped and with indentation adjusted.
>>
> 
> I will remove the const in the first parameter and fix the indentation
> in the following way:
> 
> unsigned long diff = (uintptr_t)guest_cpu_user_regs() -                \
>                       (const uintptr_t)(r);                             \

That still looks to be one off, but (supported by the \ placement) possibly
merely an artifact of how your or my mail client is configured. It looks
right at https://lists.xen.org/archives/html/xen-devel/2023-12/msg00057.html.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 07:53:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 07:53:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646544.1008892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3lH-0008Fd-8x; Mon, 04 Dec 2023 07:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646544.1008892; Mon, 04 Dec 2023 07:53:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3lH-0008FW-5W; Mon, 04 Dec 2023 07:53:03 +0000
Received: by outflank-mailman (input) for mailman id 646544;
 Mon, 04 Dec 2023 07:53:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA3lF-0008FO-PJ
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 07:53:01 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2060d.outbound.protection.outlook.com
 [2a01:111:f400:7d00::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 254b8fb1-927a-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 08:53:00 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PA4PR04MB7504.eurprd04.prod.outlook.com (2603:10a6:102:e6::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 07:52:57 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 07: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: 254b8fb1-927a-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=F4HGqIh2IPjhAo0CWHlkREC3qfhh/1F/M6mgW4oGPS9jiL9ud76JgLgBmw03AWpDc3gdPu01K5pfyMbcDNkIFYIdeBpK8nS2PHXhV8T3t04jNjJLaB/gM2rGR7OxpvZM+wZpskw+E4i4Dx96wV9ar2w6xqYta8HBNlDq1guDSfelhPh2BkxYWrbChG8U9lja4/HBtthB3QbtgEjO+G09bJRQOhvvp1HVuoNzfu5kSYyMZ6VJLChSCkVdTCHlIoX0dYHXLPJzg3Gl6A18d3RvWv314qDLy32PT/JyTFSVNrd6p6lTstY5lg95meooLcLjNv50bsF0w6hDycljIQuu3A==
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=vNSywvtK4j90I+u03gtvTFQkrMAeUZzFaaF/i48yG9Y=;
 b=jUbXCnuEmYefzukSAOpoBnkS+G4sRha/zFDpq7oSg6g/lLlP8D1zEFb7bNs7v0LaEKr7xfRvqw3Do0fGbZnjb9pCnl38AXYG5u02gpmeBZ8r/VDQ5xeJIRNpgiC1nOPv2ZtPaww5Vmah7hbpbBngt+LDLijQ1KtBl3AlYL6j/MMAoMRSLL3islD07T3shIyFxLu5glnNRAc/BvlWvW/zZ+mNyLQvmbfuFqQ7yH2m9uCxsjUeLp+90/KsCyxG9H7pEcPYKJnC8ME/U61oMCoxR1uJuZRLTVYavq7IxG8idydhvaE5k8E6wCzGqhl6OttrQCjnEVsa9VoalEO1Rwd+ZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vNSywvtK4j90I+u03gtvTFQkrMAeUZzFaaF/i48yG9Y=;
 b=d+zrNYBxYj1mPc78Bsb+BqPYh8+2e4Grx5q0ANGsT/vC0cpFYr/9AUrGTjUYlv4Za/ZILhIWtQ/4MxSt6Wzk5tzsdPMP8tfLgv6PVFNUCfrDD9y0g+rHX6uLJEO7UKThPsAAwZ269C76O7GEdQeoV1NNU1bW3jBTlGYc1TMDFFsTZmq2qbh7dICb39tuvRB4oMUeVOG6DebpDxRe5IB8oEhSBD+oZxLQekW6FGnhmtszUjGPporHuf4o7G9U+ghXhROsUUHCFe0GV7H9XWvYkf3OU6633yDqRI+YoHRHqMBxCGRgDZkT9oORC9JsrBHmha1TeogCX3C+2n6eyiDkOg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <12a6db86-ed45-4982-94fe-1bb1e4477a67@suse.com>
Date: Mon, 4 Dec 2023 08:52:59 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/6] x86/hvm: Allow access to registers on the same
 page as MSI-X table
Content-Language: en-US
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <cover.e8ee4f1e4458c19070007220034a9bfdc34190d5.1700790421.git-series.marmarek@invisiblethingslab.com>
 <de5e66c790c9fc5e7f668f06826c7ee781b6d6e1.1700790421.git-series.marmarek@invisiblethingslab.com>
 <277f832d-20ce-437d-a7a3-7935aa6cf34e@suse.com> <ZWqfiN+sIOMHoB9m@mail-itl>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZWqfiN+sIOMHoB9m@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR0P281CA0167.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b4::13) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB7504:EE_
X-MS-Office365-Filtering-Correlation-Id: 745cc759-f765-4437-e3f5-08dbf49e07bc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JmJ7FaqMyRHQ89v9ZlTRxsByMaEbFs9N7+1VHy389knAHnYjbiO0T9lnnV+eKNPDOeD4aUdxECcqhPxlxrwU6riPbXLVDkbZ5PkERN8fQch9Snw7/UoXwsOYjY7l3/9F+PW/fuVTyHAdWrRJ2SZumgMw0Zhwr7zYO0pwoqTvBAGX3JhGBCg2+FKPP/Kc+P5MNtm69VLN2UGjFjmxeV5+LA3NvDcBSUGrG1OyXl9TP95vnsfk3MrlM4Q7U708k5LDCre7HMk8UxmRl1bZoNhyek4zRTSuq2yazlUFwHE8uZGgseKPWAqi8m+ijhiTcRgUfeqH5RN1OySmo+SAgQYXwU0P4b3adIZy+QOMLbmikXc5dtl3jMKIkhv2Sxc3448pZHCWrb/3+nHloOxFNfLukl4U5I3qb2iHzTtp+fm1IJ8xo4vlB2MbC2yXHgFRiOsQPAb8ECl6+R/A6wSnNScoVx7/jcCRks8fLnC0cbCZfLyImnYE269tTrb++rnupsQkvno/yzJljSH+quOZ0Tph4a7xT58LWCBE9M9vmni88cD8B7ZdjronOHxMpFno+JulZ5eEEbQ26IjK/oUvoXCsaMENQkUd/XzrhAgAeh/9ac7x3271T987b5QhS8R16onlhl5cAOiI9v+oLNiI7198b5QPPzlKgFfYKXRa/iocDXmdJOZOAtEzRvBArAujczji
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(346002)(376002)(366004)(39860400002)(230273577357003)(230173577357003)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(6916009)(66476007)(66556008)(66946007)(316002)(54906003)(4326008)(8936002)(8676002)(31696002)(86362001)(36756003)(6512007)(53546011)(6506007)(478600001)(6486002)(2906002)(2616005)(26005)(66574015)(83380400001)(38100700002)(41300700001)(5660300002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OVN2Z2lPem5GWEdjY3QxQ2RvTUw1cEJBME1HbGovWDVRUWpUTHBzWlRLTEQ5?=
 =?utf-8?B?VlJaTGpZNzZ5T04zUFlSOVpkQVJFVEVqbkt5YmtxK3NVRFdyNUhZek1WRVNj?=
 =?utf-8?B?WVlXa0VQaktvUHMrNzhuTUdSUXZORWNaRWpCcU9UMW4yQ3ovRnZkMTViTFhV?=
 =?utf-8?B?c1VacHRMZFJQRmhYcWdBcTdJbnBWWDBWVHF2NDFuVittUmxoY2Q5ZnI5QWlF?=
 =?utf-8?B?TjYvZUFiL3lCanl3VFl3Z01BaVRrR2lEZDZ2VmNDOHBSWmRwSFNLQVFUU0ls?=
 =?utf-8?B?UkEzcm9GencwM3lYNWF0aWxueGVBZTVtN09OS2VWVjV6YjBGbGRqUkthYW4w?=
 =?utf-8?B?Skk4T0F4NS9adVJQcEVrOWFRbTRSeDBZd1N3RURBeFJ0eU5FSXJkSjFkcTU5?=
 =?utf-8?B?bGhiN3hyZHlQckRmSXpkODhSM2VXbVZkLzFkbUVCV3Ayc01lUXkrZFJYRUxa?=
 =?utf-8?B?T0MxODBSdW9xVm9lTXBLa0I1VzI2bWpZUTZSbytTbi9vWCtiZE9qb0NKUmhU?=
 =?utf-8?B?UVVHb3Z0U1JFSzFtRFdFWE9PZHRaSnh5SkRRQTVDQ01QYlA0MnNKWmhtZWE3?=
 =?utf-8?B?RTFOcjBUOHJjd1JQUGhJM2luaG8xNmZjeGtFRndUdzYzMmJXWjZ2bVhUckdD?=
 =?utf-8?B?RHlQQ01nSG0xVE13elVRcVRNSHBZQ3FGaHBiNHhPNUZhRHhhZkMyODdVTUZl?=
 =?utf-8?B?RVZXUkVkMzNSZG5EeG81WUVkOEJVdy9IRUVzaGlyMkZXeEpqaTBaSkdSbW1n?=
 =?utf-8?B?UjZFdDdCekRjZnhwNjNMZDFQdG01UzVIUjc5aVpzdmVqV0pTZFlrbDNaR3Nz?=
 =?utf-8?B?Y01XajNKY08zeGEwU1hnbnhPc0hvQTFnZGlYTmRRTzNpL3FkVnVsOGs4OGhV?=
 =?utf-8?B?czkwcTgvK0J5WHM4MTloK3g1T0VJTmRQWndsa3pRc0VKa0JJeTJzOTZzTTcw?=
 =?utf-8?B?TkdTZjRGUzdNVzBSZmRkOXp0NFpPMTRwY09Ya3hQbzlrSXNubXpnVFlRelpm?=
 =?utf-8?B?SWlQSEZ6TVdkQ1lzdCt6cS9keVpod2tDM0xvNWFMaDNxSXRtTTZoV1hmZlh0?=
 =?utf-8?B?cmFTRGwweTlUQ1QxYWl2TWZzWXR2M1VWTFVQeWtOVXJ1blFSV2xRTmhjSkRZ?=
 =?utf-8?B?QXRIdVZQV2V0bnZLTlZ0TW10UkFUaHdxd1pmbXhRTjZDUEEzVGJaaCtkRjds?=
 =?utf-8?B?VHZhSFJuU21EZmtabFE3eSs4R3A2MmVpQTAydG1oRFdMTVVpQVVZUnNYc0Fs?=
 =?utf-8?B?Q0dtNnFEbU1hd0NMUkNGc3hJV2tiMjBhR2tKcU5Ib1FTTVBLSTVxSTBoN3A3?=
 =?utf-8?B?VlhybXpqUFcyM1B6cTk1bTVkU0RaWnRrVVl3cmZuME1sUFptZHgyN3dtcGcx?=
 =?utf-8?B?MFdTVkdEVFoxdG9FRjZYaElLb2EvSE40aVE5TENpYVVkaElXQ3J6REo5bDhK?=
 =?utf-8?B?QWJEODJZTy9tYVR5d1hRSW45cWc2c3FKanFUOUlIcFd0L3R3V1NIZGFYdGEw?=
 =?utf-8?B?VmEwNkNoRXZZY0FzdXdSUzdsazVtS2kyT2M4WjQ1bFA0QmRWZzNFSlpjZGN2?=
 =?utf-8?B?UkYzZ2V5cHNNd2xxcS9pOHQ5cTROUEp2aEVxTG9VUXlPS0lmYjB1c2hzRUl1?=
 =?utf-8?B?bExDSldrc2Njajc5THZ6QlIvR0NvRi96UmhmbXR4TkNKclZzdHo4cmlBUC80?=
 =?utf-8?B?MklLMzA2cVR5dVpDcmFvSm5ZY1J1YzBxRDNtRW1vVURnWVdIRWhGb1g1ZWtG?=
 =?utf-8?B?V0RsbzlCeEtjbU4vRS9wNXIva3A1NXIxeEhFRks2OEdZTVp3N3BtSENyWmNw?=
 =?utf-8?B?VFhZV1EvK1JRWmlOdjJ0dmtBOUJ0MU41cHA3SXBnSi9QZnJHNVB3VyszOEJR?=
 =?utf-8?B?dUdFY2dJYXhnN3lqYlBPK1Z6WDVVWEo0R1hlMDhyZTNYUzdPL1kxUG8xUVJR?=
 =?utf-8?B?RkJuYVVha29Cb3ViT0pqRDU2UFY3S0l4clltMm9HeDQyb0dyT3VIc3pkQXlo?=
 =?utf-8?B?QlY0SWU4azVSTVRFdDJLcXV6a2ROTGk4R2ZQM2R6U1pSaVNodE5SSFFXelpV?=
 =?utf-8?B?MWF1dTlvZXpReHZ0TDBRU05keGN3aVNvcnhOQVRwTUpUYjdwQUpQb2JEZWI2?=
 =?utf-8?Q?CCTQdrFxX0pf4u3mm14D775GY?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 745cc759-f765-4437-e3f5-08dbf49e07bc
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 07:52:57.6217
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oujEegND2qpmm+66gt8QWBIIG5F1o2aeVsV78LxXzgeAlU7UIrPABhb7Q6HzY9/rOVvqUaCmn39EMagGiRQLxA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7504

On 02.12.2023 04:07, Marek Marczykowski-GÃ³recki wrote:
> On Mon, Nov 27, 2023 at 06:00:57PM +0100, Jan Beulich wrote:
>> On 24.11.2023 02:47, Marek Marczykowski-GÃ³recki wrote:
>>> +    if ( !msix->adj_access_idx[adj_type] )
>>> +    {
>>> +        gprintk(XENLOG_WARNING,
>>> +                "Page for adjacent(%d) MSI-X table access not initialized for %pp (addr %#lx, gtable %#lx\n",
>>> +                adj_type, &entry->pdev->sbdf, addr, entry->gtable);
>>> +
>>> +        return ADJACENT_DONT_HANDLE;
>>> +    }
>>> +
>>> +    /* If PBA lives on the same page too, discard writes. */
>>> +    if ( write &&
>>> +         ((adj_type == ADJ_IDX_LAST &&
>>> +           msix->table.last == msix->pba.first) ||
>>> +          (adj_type == ADJ_IDX_FIRST &&
>>> +           msix->table.first == msix->pba.last)) )
>>> +    {
>>> +        gprintk(XENLOG_WARNING,
>>> +                "MSI-X table and PBA of %pp live on the same page, "
>>> +                "writing to other registers there is not implemented\n",
>>> +                &entry->pdev->sbdf);
>>
>> Here and above I think verbosity needs limiting to the first instance per
>> device per domain.
> 
> Is there some clever API for that already, or do I need to introduce
> extra variable in some of those structures (msixtbl_entry? pci_dev?) ?

Sadly there isn't, and to be honest I also can't really see how one would
go about generalizing / abstracting this.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 07:57:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 07:57:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646549.1008901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3pR-00018D-OQ; Mon, 04 Dec 2023 07:57:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646549.1008901; Mon, 04 Dec 2023 07:57:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3pR-000186-Lj; Mon, 04 Dec 2023 07:57:21 +0000
Received: by outflank-mailman (input) for mailman id 646549;
 Mon, 04 Dec 2023 07:57:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nDhU=HP=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1rA3pQ-000180-Cz
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 07:57:20 +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 bf619077-927a-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 08:57:19 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-54cde11d0f4so450307a12.2
 for <xen-devel@lists.xenproject.org>; Sun, 03 Dec 2023 23:57:19 -0800 (PST)
Received: from rayden.urgonet (h-217-31-164-171.A175.priv.bahnhof.se.
 [217.31.164.171]) by smtp.gmail.com with ESMTPSA id
 sa12-20020a1709076d0c00b009fd585a2155sm4972023ejc.0.2023.12.03.23.57.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 03 Dec 2023 23:57:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf619077-927a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1701676638; x=1702281438; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=dicC/kX5P2TsFX0dpgAdoM++hBrgoMivXSnmGvQBMt8=;
        b=mSFmWwTx7/lnPVLfHTZ11bLNCdxhlzpWovf8IO7UsyMGtCZaESSr8u8Ze9vIjY9JkI
         02x3AdUe14veQyOfTd0y0uULkweXvOPPDEh0/rgGWqd44lxMPrjmT3Lz08F6IvuSlrtZ
         P1n2n3O2IgCAtuzkA1s5JPRmid8VB1KoahXwkxMIehnnQvAKjKiRMfk9Q5GrvgvIdDvJ
         bNSmY1LXw9aXIwTVbPV2grGTkIYYWAMfvWPGImYOso3pwGuR2h6PdRK+qYqsgt/VaFJR
         j9fu1qodMb7kTUI+lm0sIaZ1RM2pr9yVlYWiFwC/wlc0MM+JZi4mfTwYasdsJMWes4Ri
         YFLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701676638; x=1702281438;
        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=dicC/kX5P2TsFX0dpgAdoM++hBrgoMivXSnmGvQBMt8=;
        b=aJqHjZ4MnqoKXa7NEE8qmMxNEnb0Fll0RncaHVnKxb3XbG+Xu+zwjKxWu14yG9xrjg
         1ZJeCkUuU9Lg3RDQesx1Ivh3vn8T6A2bmok4XYkUoZOHLSslq7eQMj8jJw/TYJtQGvTJ
         gkRKanupxu7n+lcTm8I6B0tVGicXfgvshRGiU8OCWYC7kKqYLs9gc9VoWDTqxnFxuzf8
         /ZpHndUfkuqQ5HFT3csG4Zecjw5UqswB5U6VxulPErqs5K8wd6v1mzz7pmFuLIIqaFiG
         fvnCWwaJHbIdB+PDlN62gdGXkFLuLSdqaavegsBTHjtNVuKzVVHSZKFfK7IawqThFG6w
         tkYQ==
X-Gm-Message-State: AOJu0YzXv0ell7wHciPM1f2Zdk5jRtj4SkhSrad5GMk2ZKLgFhBK0kYm
	wwf+99pY4SygdmL02M8Jdkdgxq5eYho6bxyCjTU=
X-Google-Smtp-Source: AGHT+IFTCVNFjvdrvzd9eyF+h0wvkyajDRYtoTaC560ySHY2WEDWy20SFdMrvbAWkd0/3eBMjBvN+w==
X-Received: by 2002:a17:906:9e23:b0:a19:a1ba:da2e with SMTP id fp35-20020a1709069e2300b00a19a1bada2emr2390252ejc.85.1701676638197;
        Sun, 03 Dec 2023 23:57:18 -0800 (PST)
From: Jens Wiklander <jens.wiklander@linaro.org>
To: xen-devel@lists.xenproject.org
Cc: patches@linaro.org,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [RFC XEN PATCH] xen/arm: ffa: reclaim shared memory on guest destroy
Date: Mon,  4 Dec 2023 08:55:53 +0100
Message-Id: <20231204075552.3585875-1-jens.wiklander@linaro.org>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When an FF-A enabled guest is destroyed it may leave behind memory
shared with SPs. This memory must be reclaimed before it's reused or an
SP may make changes to memory used by a new unrelated guest. So when the
domain is teared down add FF-A requests to reclaim all remaining shared
memory.

SPs in the secure world are notified using VM_DESTROYED that a guest has
been destroyed. An SP is supposed to relinquish all shared memory to allow
reclaiming the memory. The relinquish operation may need to be delayed if
the shared memory is for instance part of a DMA operation.

If the FF-A memory reclaim request fails, return -ERESTART to retry
again. This will effectively block the destruction of the guest until
all memory has been reclaimed.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Hi,

This patch is a bit crude, but gets the job done. In a well designed
system this might even be good enough since the SP or the secure world
will let the memory be reclaimed and we can move on. But, if for some
reason reclaiming the memory is refused it must not be possible to reuse
the memory.

These shared memory ranges are typically quite small compared to the
total memory usage of a guest so it would be an improvement if only
refused shared memory ranges where set aside from future reuse while the
guest was destroyed and other resources made available for reuse. This
could be done by for instance assign the refused shared memory ranges
to a dummy VM like DOMID_IO.

Thanks,
Jens
---
 xen/arch/arm/tee/ffa.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 183528d13388..9c596462a8a2 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -1539,6 +1539,7 @@ static bool is_in_subscr_list(const uint16_t *subscr, uint16_t start,
 static int ffa_domain_teardown(struct domain *d)
 {
     struct ffa_ctx *ctx = d->arch.tee;
+    struct ffa_shm_mem *shm, *tmp;
     unsigned int n;
     int32_t res;
 
@@ -1564,10 +1565,45 @@ static int ffa_domain_teardown(struct domain *d)
             printk(XENLOG_ERR "ffa: Failed to report destruction of vm_id %u to  %u: res %d\n",
                    get_vm_id(d), subscr_vm_destroyed[n], res);
     }
+    /*
+     * If this function is called again due to -ERESTART below, make sure
+     * not to send the FFA_MSG_SEND_VM_DESTROYED's.
+     */
+    subscr_vm_destroyed_count = 0;
 
     if ( ctx->rx )
         rxtx_unmap(ctx);
 
+
+    list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
+    {
+        register_t handle_hi;
+        register_t handle_lo;
+
+        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
+        res = ffa_mem_reclaim(handle_lo, handle_hi, 0);
+        if ( res )
+        {
+            printk(XENLOG_INFO, "ffa: Failed to reclaim handle %#lx : %d\n",
+                   shm->handle, res);
+        }
+        else
+        {
+            printk(XENLOG_DEBUG, "ffa: Reclaimed handle %#lx\n", shm->handle);
+            ctx->shm_count--;
+            list_del(&shm->list);
+        }
+    }
+    if ( !list_empty(&ctx->shm_list) )
+    {
+        printk(XENLOG_INFO, "ffa: Remaining unclaimed handles, retrying\n");
+        /*
+         * TODO: add a timeout where we either panic or let the guest be
+         * fully destroyed.
+         */
+        return -ERESTART;
+    }
+
     XFREE(d->arch.tee);
 
     return 0;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 07:58:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 07:58:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646552.1008911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3qY-0001dr-2y; Mon, 04 Dec 2023 07:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646552.1008911; Mon, 04 Dec 2023 07:58:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3qY-0001dk-0K; Mon, 04 Dec 2023 07:58:30 +0000
Received: by outflank-mailman (input) for mailman id 646552;
 Mon, 04 Dec 2023 07:58:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OYKC=HP=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1rA3qW-0001dW-7W
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 07:58:28 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e6e5437e-927a-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 08:58:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e6e5437e-927a-11ee-9b0f-b553b5be7939
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1701676704;
	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=olLQmfouF3da3Ez0MZE8XTk1beuCISuKI3rPjmx3/hc=;
	b=jROt4+AA2gHCjQQejTIJ4vx61px4E4T6n7je/BoGancpAFJzJip5U7lrImJxKWIqbbMRtq
	6m5nmG8i3VblkEIRlbtxchdeGxnLTRgHOfbPcp6e1doolQTYPM3nQxS48f+2396sY04H3K
	AQa/bymq0fZit98BLuQWFsktYiAx9A2kt/HaXVoWxeU0DbC+m7maUCeeHta7XD7bkH33+G
	Y4l9w4vk77GVv6YHcaiXBxkFEPjXcRomvw0tdn/apFOqCVUrMU/FjOHXztPcy2fZIeQZN+
	lUF9etwZ2a5wpRp3KdgjkdImnU2gAeMF5oRpJDHp9RxgARd5oA3G8KaBaQunow==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1701676704;
	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=olLQmfouF3da3Ez0MZE8XTk1beuCISuKI3rPjmx3/hc=;
	b=BfloaVnhH1keEIYiuj2GPUgURfGHFRALvHxjv42XRmGBcfK9HphTyelqVddlgAlKPMoJTx
	zZ5jWZZYCHljWXBw==
To: Jiqian Chen <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, "Rafael J . Wysocki"
 <rafael@kernel.org>, Len Brown <lenb@kernel.org>, Bjorn Helgaas
 <bhelgaas@google.com>, Roger Pau =?utf-8?Q?Monn=C3=A9?=
 <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 linux-acpi@vger.kernel.org
Cc: Stefano Stabellini <stefano.stabellini@amd.com>, Alex Deucher
 <Alexander.Deucher@amd.com>, Christian Koenig <Christian.Koenig@amd.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Xenia Ragiadakou
 <xenia.ragiadakou@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, Julia
 Zhang <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>, Jiqian Chen
 <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
In-Reply-To: <20231124103123.3263471-2-Jiqian.Chen@amd.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-2-Jiqian.Chen@amd.com>
Date: Mon, 04 Dec 2023 08:58:22 +0100
Message-ID: <87edg2xuu9.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Fri, Nov 24 2023 at 18:31, Jiqian Chen wrote:
> When device on dom0 side has been reset, the vpci on Xen side
> won't get notification, so that the cached state in vpci is
> all out of date with the real device state.
> To solve that problem, this patch add a function to clear all

Please get rid of 'this patch' all over the series.

# grep -r 'This patch' Documentation/process/

> vpci device state when device is reset on dom0 side.
>
> And call that function in pcistub_init_device. Because when
> we use "pci-assignable-add" to assign a passthrough device in
> Xen, it will reset passthrough device and the vpci state will
> out of date, and then device will fail to restore bar state.
>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>

This Signed-off-by chain is incorrect.

Documentation/process/submitting-patches.rst has a full chapter about
S-O-B and the correct usage.

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 07:58:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 07:58:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646553.1008921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3qn-0001yh-C7; Mon, 04 Dec 2023 07:58:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646553.1008921; Mon, 04 Dec 2023 07:58:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3qn-0001ya-9D; Mon, 04 Dec 2023 07:58:45 +0000
Received: by outflank-mailman (input) for mailman id 646553;
 Mon, 04 Dec 2023 07:58: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA3ql-0001xx-Eb
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 07:58:43 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on20615.outbound.protection.outlook.com
 [2a01:111:f400:fe13::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f11b3abf-927a-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 08:58:42 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AS5PR04MB10057.eurprd04.prod.outlook.com (2603:10a6:20b:67d::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 07:58:40 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 07:58: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: f11b3abf-927a-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Guidt3QgCbuPbRccqYKbh5Sf2Gz3B8fZqDqMv01lIe7El/twqsn3G9egFGdR9UO0ruDpspB/GEWB1s8LYrxdwGmhUU4iAnWCwAzHM4xpNpqqLnSOPJC+4zWC49uHBjqxA12RlYhbFgSQOwYKeF2nUvHOne2mhFaUvzMQqwRIVqR0Vf7I1ZJhk89yMaVdYqIFRIUAynQ9t+qdsR1C74rBpuSVpN4Fzebd1QeuhsQxrXBVnOcux1AbPOTZqXu+Hi65b6nAzLZjOZYKG3EsKpVeFI4YLHS2kkuCV9czwoiH7JtOkpLTRO1WvpalIgnqnsLFbABTLrgbsa6e/3SPJXMkzg==
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=5vtBNs0Kaad3Dox45FGtoU5lTHhPYn1mJCWtAJpDAOA=;
 b=YPkBLcEUUzNVmCX0uI0JobGpy4Cj+eEVYtIpAMGpR68g4izUtYBBRRf0d7smXBqQydxIBnoozIAjPwYIhx9L6nC6zSkzZB9tPA0aG5tPKl4eFmCPqVELXDgCoPcG7FK4Z2WPBL67M/rnLeRCeiYxVhO26c+uMt5MUB9LnDdha/lCg9YTSG+dOr0b4GvZo9IQg1ru0kGyfR1zSn1cy5uX0fspwWLP6Eb24g//HFkeUn4UUI4xWV/p4NduRjof+usn6Evr4iL09txYZs4bOBvoEUQRKu3i4HX7oY3oGPb50lNxsRy9ddwVjvS3IEagVm0wZQ7zhrIhuY0szmle6FN0CQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5vtBNs0Kaad3Dox45FGtoU5lTHhPYn1mJCWtAJpDAOA=;
 b=16QziX3/aGAvBM+7ytl5FMDpDP4BpMvPCHuyBNpPNcyVI9XLnANuhQzx0B4hz+MNsczPrDWX6PZtXgRpS0hwGEWiiiODTFG12TTAKzzwQlfAVtcnUYKzTRY24O0J/uYN9+rjiKPeM/2WrKdFt6YUIAVtGPBKiMLzF9NO8a6XmG4P3V9pH3AegzGTv3FsPFglinKSnnhHad4cR1J/dDRrvXyqAnQgoLcW/nALDxIXfBmKThylTDUDUgYPM3kiIkIyiA9VaBjZ6Uyjwms2TndxFrITXizAog3zK3FeDsAlBee+Rp3JCQgf4qXfcwdnduWodi2YHYLCZhgr3cj6iZQ4ng==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <be3936a2-22e6-4528-90f3-a5a5629754ba@suse.com>
Date: Mon, 4 Dec 2023 08:58:42 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/3] Early Boot Allocation on Power
Content-Language: en-US
To: Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <cover.1701384928.git.sanastasio@raptorengineering.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: <cover.1701384928.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0228.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b2::12) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS5PR04MB10057:EE_
X-MS-Office365-Filtering-Correlation-Id: 57e5c62b-a7df-4461-f8ce-08dbf49ed40b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	tQcsaqVbnlkJrCAXDPk1HJFeyWFfNa7d8Or2hB8QzArnAvWwVrqIfrA4fLa0t9PEkO7QHfD3/KGqSD1fb3PsTkhtIX97Cifxh3VeEnvzhuSNE+nQurINjH0Oz7Ca8eKak0/ao0G5a2ynHfk5t8M8uFNZE0ZxEAop6vNUBv6o9r4g7hSoEnWkDeJ4jUeMmdGOKbW6i03krSgBfcC30ifAhoEleTcaMHaLbO8lwsnqm9RXFQY92ts90jNK6TdCnjxuz2uAovHSeQTfHENtJnuydM2xD1lt6hnVypCa4lS3uwo7ccmrPcIalJH1lrI0m/MgRLW7VI0aBgSZHnJo7iM04h5c8GqvL3mbW6xBoGHuoanwOTWiS/nsZhucSPKGM4JW3s7GlXEQmGEiTl/qnk2TvGccTABXpapPK2FXgGulr/w3cUg6jkeoVR1JYHwZyoje70LFav0MYMQExRFeapJgeTyFzbc+8XbyaA/D7OGq5aUzDbIP5Y0l/ra2KfP5dTS6qtt/JIx3RNxfKAm5b+D5x1LdYe9BqWRxBMo2yek2872Po5vnC6E/DCN1nHZSPVy5o/ZDZ4VpRhPRlZgr6PVlFBpEwtbITdfzpMxQ2ewcelPLDkXblXN4VjsHI5B0yR6INxY1GoQ9F+wVuSyQF4PCYg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(136003)(396003)(376002)(366004)(346002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(31696002)(5660300002)(86362001)(4326008)(8676002)(8936002)(2906002)(41300700001)(36756003)(2616005)(6512007)(6506007)(53546011)(83380400001)(6486002)(478600001)(26005)(38100700002)(31686004)(316002)(54906003)(6916009)(66476007)(66556008)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ekIzRjArd3BvZmdiV3pydmNybnJpSnRlSld2Tm96S1VCcUF1NThNbVBTanJp?=
 =?utf-8?B?Y0FkQ3FtNm53WDVaZXI3MW02RWQrMUZTUHFoaWoweCtQQzJnSXViR0t4OG9T?=
 =?utf-8?B?aldKbW15bTUyZzVlVi9wQ3J3Y1RnMGxmL0h0QWxJZFkwZ1llaXE4emFZb0l0?=
 =?utf-8?B?L1JsYm1TbVgvYldJWHFicUtmVzUrNGNST3EzNXFNQk1zMlJPcGR5T0JsVG9x?=
 =?utf-8?B?ZHRZV01neUZHZERzSXNLT3RvMlErWkVwYWxDdWN6dmZrdCtTYWZlcXVYSXJz?=
 =?utf-8?B?T0V4OCt1SlYzR3RZaEE5SkljcTducTRDSER1SE5NZ2FTM2lXa2ZsUXpPWGxT?=
 =?utf-8?B?alhMN1VHTkFzUVdLOVNJUnVKN0EvZlpncDVJRDNUbG51ZUNKeDlrZnBRRVpv?=
 =?utf-8?B?N01WSVl5YkNwa29MTWpoYVhFblhkYVhLejZYS1BhZTBWeFo2cm1oTHJZZUN3?=
 =?utf-8?B?Y2hXMCtVY3RDR0ZEVjR5dStXTlN3TUlieExXbml1dVQrWDQ2Q0E0Q2ZpbzlX?=
 =?utf-8?B?aXRqSVprakExNlBlb0xnTCtueGlkVm0yMS8zcFRmSkxNWFFUZ0JrSVh4VUtT?=
 =?utf-8?B?alZ1VFdWUmszRXFxZnZlV3FxS1ZucFJjQ01IRGpYSmpjVW1sSlhPTm81b2Vj?=
 =?utf-8?B?V3VrTmJkNXEzQ2dHWFlyN0d0VU5sL1p2eGRzQmsrODRETnpVR2M4aDNyUVpQ?=
 =?utf-8?B?Nm9xbGVBWWRlOHFUbFRSNU9vdUNNWUdQMFlBR1FrWVhHZEsyNk9yTzNydWU1?=
 =?utf-8?B?T0ZVQW83Q1RlTFhCT0RjT1VHVzZaejVRZWlvcG5nT0tFT2dOQUhnc1RHOWJh?=
 =?utf-8?B?ZE4rWml2VE5kK1Jpb0Vnd3NkaklKRWpaY2lMeDYzK3BHUjRhT2lzOWtLcWkw?=
 =?utf-8?B?TVdyREFOcWtsc3RWSlRuRWZuMU1KNzVWdEU0ZzlydzBaTmdSM3g2Qlkzd0du?=
 =?utf-8?B?OHNFM1h5M04waHRTQnVnTHpoSDhySm5OQVkxZEdlNkNZTUxRcXo2L3MzSmlq?=
 =?utf-8?B?cEVJejFEemJiTDBwTUE4VzR3cmNMWHBSbVpmN1A4SVJOMmNKTGprU3N1N01Y?=
 =?utf-8?B?aUJNOEYvSDdxbnNycHhBQ25qM040Zy90RVpuUWFqV2IrVzZCVXcvaUJrNG5i?=
 =?utf-8?B?Z3lmbVJsdnNYNW94eTcxSU9hUHQ3UGV1VGt2SytOVk5PeXpjQ054OVgxY0RR?=
 =?utf-8?B?VnA4U2RWVTZ3RTVRdjFma0JUQUVXcGxTK3J1bllhN2MrSnQ3anU3SXVrSkhG?=
 =?utf-8?B?N2xKWkVCdERUU1JaR0hMNHAvQmJyYVI2U2VRZGE2UTlpMUZ3eHVJMkwzaHk1?=
 =?utf-8?B?SlA2T245alplbVQ2S01hZWtBZXowRERIWklCN1VUeGczY1V6NE1GQ3VzSjl1?=
 =?utf-8?B?alJTNXJvdDhqZWlodnN6QVlqV2pmUGo2SDh0TlVLbVUraFl0RGlsampFejFv?=
 =?utf-8?B?eUxIcThmbGpSakRyQVhDQS91akFGRGlyMVc4RXZOcXBEa296b0REWmV3RFNt?=
 =?utf-8?B?QWU0aXBJc0pRZ0lNdU5SMjBQZnRzWVR0RmN6dVhtUDM3VTc3Mnh5anFmWVgw?=
 =?utf-8?B?dkJGOXhMRUZ6SjJQV3JzdmZtUEY3ZlNuMUl0RXYvZ2FxcytRbUZTMUtnYTUw?=
 =?utf-8?B?U2NqL1pCcUtYZGtwNE96VzhLY3oyMllhQk4xSmJQNFJNUVM3bnM3aWtoVGZy?=
 =?utf-8?B?RURYSkpIRnExOHQ0eGpJQlcyTmZUWlE0enkwa3B5ejhmZmNFakR5TjZHcnZX?=
 =?utf-8?B?ekI2VXdhU2FZNHJIT0tCNDdwR0lqMGE4ME1qS01LRDFKemxDcjhkWFJ6WVdn?=
 =?utf-8?B?YTgyS2FFT0lsd1VjdHVpdFZhemVkU1FraEhCUEpjSFBJVFdNcWZ3cE9sbnVX?=
 =?utf-8?B?YlFHNWFpZE5CVDhqZjBuRjFtelpmYmtFdXFmRUU0MHFYMHVxUUMyc1M3U3di?=
 =?utf-8?B?emR4eXBiRnhFcGVDZWEwWTg1MytraXJuNktiZmlWd21kMTlnL1ZScVJybkpZ?=
 =?utf-8?B?czVqR2tIRGZoRFNBdjNKQmNlN3QzMkNWb2o4d1o0MndPR0E0SUlvbENUVGF6?=
 =?utf-8?B?dlA3VVFhYWcvQUx0OTdHdjNqaHAyMXNudk45UUtSZTMyV1F0N2RlUEdvY1Uy?=
 =?utf-8?Q?3quWg8y1XEzgLPHXu860cLgX9?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 57e5c62b-a7df-4461-f8ce-08dbf49ed40b
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 07:58:40.4115
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eTUW9flH8eagL1GO6WWGnn8tmRq3QAA6WMvLHig6UitaEaKj9tMpin5N0pyDunOzlg+/BJ73SKhKXw6qQhmTBg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS5PR04MB10057

On 01.12.2023 20:59, Shawn Anastasio wrote:
> Hello all,
> 
> This series enables the Xen boot time allocator on Power by parsing
> the available memory regions from the firmware-provided device tree.
> 
> The device tree processing and bookkeeping code was adapted from Arm,
> but it was trimmed down to exclude code for parsing Arm-specific dt
> nodes.
> 
> Additionally, the final patch of the series updates the radix mmu
> code to use the newly-enabled boot allocator for the Partition and
> Process tables, instead of statically allocating them like was
> previously done. Among other things, switching to run-time allocation
> allows us to allocate a full-sized Process Table instead of the
> minimal one that was previously used to keep the Xen binary size small.
> 
> Thanks,
> 
> Shawn Anastasio (3):
>   xen/ppc: Enable Boot Allocator

A standalone patch with this title was sent earlier. What's their
interrelation?

Jan

>   xen/ppc: mm-radix: Replace debug printing code with printk
>   xen/ppc: mm-radix: Allocate Partition and Process Tables at runtime
> 
>  xen/arch/ppc/Makefile            |   1 +
>  xen/arch/ppc/bootfdt.c           | 507 +++++++++++++++++++++++++++++++
>  xen/arch/ppc/include/asm/setup.h | 113 +++++++
>  xen/arch/ppc/mm-radix.c          | 197 ++++++------
>  xen/arch/ppc/setup.c             | 109 ++++++-
>  5 files changed, 823 insertions(+), 104 deletions(-)
>  create mode 100644 xen/arch/ppc/bootfdt.c
> 
> --
> 2.30.2
> 



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:03:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:03:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646565.1008932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA3vH-0004Ir-Eg; Mon, 04 Dec 2023 08:03:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646565.1008932; Mon, 04 Dec 2023 08:03: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 1rA3vH-0004Ik-Bo; Mon, 04 Dec 2023 08:03:23 +0000
Received: by outflank-mailman (input) for mailman id 646565;
 Mon, 04 Dec 2023 08:03:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA3vG-0004Ie-IK
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:03:22 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0605.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 975e0bc3-927b-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 09:03:21 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AM9PR04MB8259.eurprd04.prod.outlook.com (2603:10a6:20b:3e4::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 08:03:19 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08:03: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: 975e0bc3-927b-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BdaY+k89VGEZUCjav9/5O/bdAHz446NkYNOS1jsKcYd39SySgAEzkl5Ekc0R+jvTd2GSr6s7DqB/bh4wXz7vZXmHsxi6Z9bzY61kFqkJxoh59asZGFg3CpJDBsZugbH4z4NEdk2fwKhKXO6+IgvmVerf+STyb5twfvPRdwBcqnYqVJxEEuYWPqtM/qJAYtOnHUb0M5gEhW8CGLXUArn+yiUT8lWxYvk5C0l4SEPLoJB0Wxn4+asniqRr3//WtnRJPC9HhbB13OzLlMunBYtNZjn7o+4aYSCt74N9sC4KARu3x+U1LWKGkLff/fS8YPRv3h7gAJhBztU4RAoIkWd8jw==
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=08Ls0TiyUmgUodOxmm4SjyuL+PjFViyeAaX51+q0Jbw=;
 b=VaKMbIEREAH1FJ5UejInwrmhDrydtkwpnQIaeCseZKgz8BesAzxfX7RQNhT7MZw3G+QccNnvPzjux4YVGvl2PYiwZFs4OD1XAHO8Sz/5zizOEkUBTwzENccp7U7nWRZD8Iokod5ppPMmpPp4Y7M4itNq4isOizFNA1L+C7e2CIYviVCb9v4GMHxv14JQRIobijGPTWDfCLUROS9j2hCizIwhbPTx1obXsAiumFs4qKes6543ZmVJqK0v9zA321EhfqI5wWu8mz2eYCAf1NDaO5JUB+DCIBTlM3ka/lNfT63BtQnsjfOsQfwPesvyEeYhqKW1GWN5yBPb8ShQDvUXVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=08Ls0TiyUmgUodOxmm4SjyuL+PjFViyeAaX51+q0Jbw=;
 b=3uMf22bxRfAWJkf5D2W/05lM4NFR3vWC6EGBIQuuDVmaphavVQfmHbFSnXASMPajYZx7bGP2dh3+ZB96oLlg+R6CbN/xBTilB/HPq1ToGR/6OETJCQmhxLq0I7da57/KT2ErwQ6z6ma6B48ru06urPij9ENzYkYSxFZ3bcMv0dkCik2lKYeNxWixWk2Rvvj/0AcIMwdRyvHKrg9b79bJuClIPVLLhrm/cx0WCfrd+QP68nFTEYoOG1AkjjKhWwg2/QGJla6wHMBWoKip2xTFFaxVab6AjeQ9z4qaFUgvykr0kZPWK0nHwvKF28li1v/pDq54D7MvC6ih7xDz8uNa5Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <60e56769-653c-4489-92df-dae52bb03194@suse.com>
Date: Mon, 4 Dec 2023 09:03:20 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/x2apic: introduce a mixed physical/cluster mode
Content-Language: en-US
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Henry Wang
 <Henry.Wang@arm.com>, xen-devel@lists.xenproject.org,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Neowutran <xen@neowutran.ovh>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <ZT/Cs+MsBPibcc9D@mattapan.m5p.com> <ZT_LWjKgQxOE9lpj@macbook>
 <ZUqRfgAmzJRImW4O@mattapan.m5p.com>
 <hqj6xjxb7r5lb52biejbzzue2jth3rcth3bouadya4jwarll4l@oswerq2ejbli>
 <ZVgp0wshHg3ZQ/Md@mattapan.m5p.com>
 <81f6bbd5-0487-461a-af1a-dbb6ead47cab@citrix.com>
 <ZV1Rz+FmmyWFHiM9@mattapan.m5p.com> <ZV8d2ZiiiBBNySgc@macbook>
 <ZWFKtrBl2kpdvjBC@mattapan.m5p.com> <ZWRS5qUTjkoD22MF@macbook>
 <ZW0lDEso5c+GUAQr@mattapan.m5p.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: <ZW0lDEso5c+GUAQr@mattapan.m5p.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0049.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:4a::22) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM9PR04MB8259:EE_
X-MS-Office365-Filtering-Correlation-Id: fda3554c-76bb-49a2-43a5-08dbf49f7a29
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JeRZmS0HXOTxwM9zAVXVS6Nvt93TEpvr3+TWCqF5eQwjQcaLNoHJ1TPXp6BEZbZt81Qm9uawxdQRtE5byqJ1BINITGOy0a4scTBPHY2KrzUwo/idtEvCS+0OP9xn/7s0xH1obhXKlbT1Pu/VGlmx8fg5yn0wiiXRmJPkj12svjcvkQUUTcl0ObbDu0jSBvz279wxJGue7k2nMGFULT51Jkk2a3PUxl+58Pd/Vyq6GgPNNDOQuIWV7OKqSe9q95DyO5D0rK7ijFbT644yLfSvZQlADo9sBFr815OKtPBWpdLyG1dFxOeEKEr6D8RBplu+DD+L5G5OwnvMm/oAZJRyOYce2QBiArALP70bWj0XpmI4IeCWTTHMfzLn5/otkoN7nmK8ThAostBCyxs0R5DkPiee+37nKe1qOPqzcDZZ6xEUz7K4JSrCcCO4zTu+RdvyVKTjBw90/eo8vbyh6Un0zskbs+cDf96OEYbcMOWM7cRh3pEpc1ORSeoeV7PO2zES+JqggT3hdumODUFCAIOB2VOUCKwGOiBtdE5m+9qaf1EJxtWcIvdbjaNN3mtNTHy98kw51ke32um9qtPyw5R4QMH6Yovm6RR1NfvTx1oqUzO+HO3OTMxvmDEJg/xhzP5yrDoCniItrW66NZu79X/RZg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(346002)(376002)(366004)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(31696002)(5660300002)(7416002)(86362001)(4326008)(8676002)(8936002)(2906002)(41300700001)(36756003)(2616005)(6512007)(6506007)(53546011)(83380400001)(6486002)(478600001)(26005)(6666004)(38100700002)(31686004)(316002)(54906003)(66476007)(66556008)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OTlWb3p5cFlRY1ppa0w1RTZuRURDd2t5YU5TZUJyeDZwRlloK1VBdVBCZkZq?=
 =?utf-8?B?VWhrR1VreFFvcE1CMk1YWTdpMkN3NkRJNXhXYVJ3UHZVa3hXRDVLZ1JRclcw?=
 =?utf-8?B?VFkrbERMY050MkRrSldMdis5dEdaWDFNaDk4SWlSTnRnWnY4ajB0M1ZJZWN0?=
 =?utf-8?B?ZFJJSCtDd1M3Z2w2VlJIUVJlZ0YvTi91NzFuWjlOYXJTRG1Nc2pvd0FqTVdz?=
 =?utf-8?B?UG9rZWtDYXltRnFlMWxKbi8rZlMyVFQ5OG9YZVV0RkwzaGJXQ3hpRFdVbnFF?=
 =?utf-8?B?TTdGRi9rNWNXT21PZVNzTnoxM3hjWlVHRWVnZERWRk9jQmhFVzluVTRCQ1B2?=
 =?utf-8?B?WEJLZHQ1RFV0ZkFIdjJJV2ZibGZSSWIrSVlQQldCN2N4MkV3YmhNOWIzSzNz?=
 =?utf-8?B?c1JMQy9CazNTY1NpZEpkNzVBY2UvbzZNMFlFMXhFYjV5R1Vmdm5JWHVSeHpQ?=
 =?utf-8?B?RkNHN0R5c2dLTUx2c3FpdXVzbjdQcENIMVBBa2c5UC9abFZIaDhjUW53M2U3?=
 =?utf-8?B?b0J1amtXWEptWmVZczN2QWhnYjRQazBiWEs0Tmp3OHFhQ2VqM0ZSRWFnUjFu?=
 =?utf-8?B?eFhNZ1hLb2F6aUQwMEVsS3paOU1MTzJ1OU1aRGRzSWxkRmJYeXA4bnhiN09P?=
 =?utf-8?B?MTIraWF1ZGNrMzVWTThKMWNnaldUaUNxRGI2cnY0eURYYVFHWTV4R0pzQVor?=
 =?utf-8?B?VEpGL2JnQlY5NGlsRnUwbytOY1gvSWxEdTh0N3ZwL2JrTXNVSEVIV3M4alRm?=
 =?utf-8?B?MjRiRmY5ckxEQVNDSC9TUXpETk44VzZWUmdNUHhodnZqUkhaQTV3MVowY1hV?=
 =?utf-8?B?QmhWTEJGb1oxK2ZGeTNHU2FYK3hUQU1XR2lMUmU3bHJEaFFTMWpvNXIwRWlC?=
 =?utf-8?B?WkEzL2NIQ21pTERMKzBjT1h5RHdrVTh3THRJK3R5OVhDZUNRUFhEYjBKcVFp?=
 =?utf-8?B?VWJOaGtES0VHVFRaajlueUk3VjNmS1ZUcFMxaTBnRDMwbXJrY2NPUTNBSzVQ?=
 =?utf-8?B?OC9sdDdwOHNTSDA3a1huWXZWS0dSV1FLQzZ2bU5ocmJIOFJhZEI1SzZIekEv?=
 =?utf-8?B?RXVMNFlOL0ZSMlNscmwzWnMrVlZUbDFhR2E1VDk2SU9WdlZpMWRQK0JoeTNT?=
 =?utf-8?B?WU93QktKMitTMGpNbzdYRzA1MDh1S2lKWUp1ZWgrR1NOSGV1ZXlJb0loM0FZ?=
 =?utf-8?B?cjQ1ZEMrZVBwai9OOUo4eGF2UEt5UlBENnJ0N2FUdVdOMnVmNncwQ0F5WnJm?=
 =?utf-8?B?c1BRL203YW5ZS1FXSWNmTzR2UE5JODEzNURqb0h0Sm14bm1HcDJ6THgvbytn?=
 =?utf-8?B?a1RYTUt1Z0MwYkxPMXpvMlhGRzhXbjB3ZmlNa2lDUnJ6SXBEVmpFMzh4d3VH?=
 =?utf-8?B?RmplRTgvdHF2OWJVWldTUXZNNHBBcmdac3N3eWtXb3N1Si8wNE5TU0dNTXp3?=
 =?utf-8?B?eUpSYXI2QnNFdHIxV3V5UTFEQ21UdzNZVXBabUpNL1psOW9reFVDN2FEU3Bn?=
 =?utf-8?B?amdSWUhVWENZaWZ6Y21CdThPU2lWTW5keHd4WEFpZWhpK2pEN0Z0NzRZVDIr?=
 =?utf-8?B?Yjg4cG16NWErU05XaTBYMWlZVnF5Y0xZdWdReC9MajJaL1pvS0lnNC9WalFY?=
 =?utf-8?B?VUV1ajdKT1diYWN1dHIzbkpMc25hdktyYmo5Y3NRSzVDOTRMTE8vVFdxeDNY?=
 =?utf-8?B?QWxaV2dnRUJsQ0hDUTJyRFNkNlcvRHJNWXlxN2s5RjBQUnNFc1lhN3dJTTEz?=
 =?utf-8?B?aWllVDgrWE5UbkVFbGpSei9KQlhob2JBNCsrQ2RsOTRzaTAwcEdlVXZkQkZO?=
 =?utf-8?B?czhJT3Z4d2lCYUFieTNPRjRPVG1pbDUrTXVNdVBwelEzUkI4TnM2c2ZZSFRF?=
 =?utf-8?B?QldEci85eTMyeVdsYWJ6UmtiWVp5ZS9Db2NqUHN3U3E1TFBzaEw3bk5zYVpE?=
 =?utf-8?B?R3czeXVNRTRNU3U2NHdEVHE0OTdBZmdtY083QnUvOG5ZSUw3YnFJanlwOFFv?=
 =?utf-8?B?VkJLRzM3U3RxeElmTXh1TmJTWStJc2lzQ1RxMHE4VXVYZFhEeVpxY0MwdVFv?=
 =?utf-8?B?MEo1V296ayt5QnZRQlBuTVRkd25oYnpSWmlJVjBvZGVvZVc4UjBRL3NjVHBy?=
 =?utf-8?Q?76ax5Id523woXmwHjA/o6m7pn?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fda3554c-76bb-49a2-43a5-08dbf49f7a29
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:03:19.3447
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aDduTrBL3OVzgJWx6qigxUwBGHJhZl70JiFgvnNVQ/WnccKapAYTs1dpIF1bl8SwXneZfpodkD2SCj14ne43qg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8259

On 04.12.2023 02:02, Elliott Mitchell wrote:
> On Mon, Nov 27, 2023 at 09:27:18AM +0100, Roger Pau Monn
>> On Fri, Nov 24, 2023 at 05:15:34PM -0800, Elliott Mitchell wrote:
>>> On Thu, Nov 23, 2023 at 10:39:37AM +0100, Roger Pau Monn
>>>> On Tue, Nov 21, 2023 at 04:56:47PM -0800, Elliott Mitchell wrote:
>>>>> It was insisted that full logs be sent to xen-devel.  Perhaps I am
>>>>> paranoid, but I doubt I would have been successful at scrubbing all
>>>>> hardware serial numbers.  As such, I was willing to post substantial
>>>>> sections, but not everything.
>>>>
>>>> Can you please point out which hardware serial numbers are you
>>>> referring to, and where are they printed in Xen dmesg?
>>>
>>> I didn't confirm the presence of hardware serial numbers getting into
>>> Xen's dmesg, but there was a lot of data and many hexadecimal numbers.
>>> With 4000 lines of output, checking for concerning data is troublesome.
>>
>> 4000 lines of output from Xen dmesg seems quite suspicious.  Xen dmesg
>> on a fully booted box is ~400 lines on my local box.  That might get
>> quite longer if you have a box with a lot of memory region, or a lot
>> of CPUs.
> 
> That was from 4 boots with differing settings.  Since it was full console
> log, it also had the initial Linux kernel boot messages.  Each log was
> ~1000 lines.
> 
>>> There was enough for alarms to trigger.
>>
>> That's fine, but without pointing out which information is sensitive,
>> it's very unlikely such concerns will ever get fixed.
>>
>> Could you at least go over the log and point out the first instance of
>> such line that you consider contains sensitive information?
> 
> I would have been more comfortable with getting some guidance on which
> portions were desired or which could be left out.  No need for Linux's
> boot messages, what would cut things down by half.  No need for the
> memory map, lots more goes.

I didn't think "xl dmesg" spit out any Dom0 kernel messages by default.

Jan

> It is easier to be comfortable with 40 line sections than 1000 line
> sections.
> 
> 



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:13:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:13:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646570.1008941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA45J-0006ww-Ck; Mon, 04 Dec 2023 08:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646570.1008941; Mon, 04 Dec 2023 08:13:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA45J-0006wp-A1; Mon, 04 Dec 2023 08:13:45 +0000
Received: by outflank-mailman (input) for mailman id 646570;
 Mon, 04 Dec 2023 08:13:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA45H-0006wj-VV
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:13:43 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0616.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09c0ab35-927d-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 09:13:43 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PAXPR04MB8590.eurprd04.prod.outlook.com (2603:10a6:102:219::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 08:13:39 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08:13: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: 09c0ab35-927d-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=epVo+LjkyZn9ZAczuOsrjNLZwC43KLLoNWOmmHISgByyNiq673mN9Z714wmFMDj3BBQ81R3DLplM5lyygdj0NW0HaY41MkElTVJbi2Z2xEItSEggTWVGe0CsYSwPUi7as04Oul3kxZIDKMjSWPPMOAtWHc0NooDCDzbKApFI9YUOxuu9vLHUgaS/tgpJFoHPciux98vi1b6rC1EbO9ZS3b+c9gqlb+23Ncej2ErDvvoOw524lP1uzLUNrPdMQ8Q5pTiukrh/7kz2Xc2nlwau8eXQN4YuqE5p0XlWE1+AYfRE7Nt/hzvQ2tJu1EzLyJEJTrMtPSNGmG5unLp21TLrwQ==
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=v79NfEU30e4St70R6K2iTSVGiCrr7q8MfBmXllCerYg=;
 b=R/0ZyCmIQ2MDRmcL8Aa32nPY4uTgmio4PD6To8SDWLs75AiZL0W34c5/9qVcJaVz4QQqVw4g3Qro05qqF2UjBCDq213u7VuBzdGsg79DCcEbNAiRtjyUKXQqXrCiWYQVAZ6Tdp0xneIkZYzaor4fTU1b16BBo0dMmpaaGIMg0IOAVELfqNaxFXTYCgx5eCZ+D3hy20ZNR6fwwN74Gxc0I/YF2Vi/Hu3S5md8kZ45xAJ4hpkrSHbWd86Db0cRuRUG/3njvsRbO8nAxtBxpC8nDAHt8OYivFnx3eYlOhabok+Vdl0kowJeQNtgjdvu7uvsBV1l5zVcg+qWYvARkb5hkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v79NfEU30e4St70R6K2iTSVGiCrr7q8MfBmXllCerYg=;
 b=ohBqy5eFZ3ABp7KXtBmyeLSpDL1LrIFwcudOkc7g1LVAFGERS2jvKUJGI0dC7R21cnlwOsHbzW2aKFCR0X9YPA0zMMNEitaCjkJUVTqPxQcYEmEGfUHeUw8g8jWz7s8C2YC5fJUO1kLJlCbSt7EWgsmitmdMO1+ARis2rvrGxmbZSo3cZlatKs16j7y5XMxYPpBQE2bu/6qYlxn54m/sI90fS1QFdCXcnixyoqtwTeUPUZJG/qzfzqhVz7Uiiu0ipj3s0TcVNKUekpI8BBuS9CvikUlFMFopxyl9VjzjiLH/oMyZkvET5p2WW0rWCJklufFD1kQSRrZhhtIi9Fm+nA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7de015ba-4245-482c-8679-45ef041df9f9@suse.com>
Date: Mon, 4 Dec 2023 09:13:41 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
Content-Language: en-US
To: Kelly Choi <kelly.choi@cloud.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, committers@xenproject.org,
 George Dunlap <george.dunlap@cloud.com>
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
 <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
 <alpine.DEB.2.22.394.2312011253390.110490@ubuntu-linux-20-04-desktop>
 <CA+zSX=aZf1UQt2eE0byMgwL+3EfW3B6CJkUHuFBVGA7Na=9gqA@mail.gmail.com>
 <CAO-mL=ybm=AGyeerpngwQBTn6995z937bR5Gf8Qd5vP8MmR2TQ@mail.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: <CAO-mL=ybm=AGyeerpngwQBTn6995z937bR5Gf8Qd5vP8MmR2TQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0046.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:48::23) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PAXPR04MB8590:EE_
X-MS-Office365-Filtering-Correlation-Id: 230082a9-1cb5-4e74-114b-08dbf4a0ec10
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Yr5bw+5pLwBP3aQkSLn0Z0nvVNObysfZkXBoHufIvVtXX58JCWbcdnGvNSFia6ceyziDXTQ0A7pYbPz8z2rdiWM8wwlmQooLoJsgMp+fsCQOKe1HAidPzHPNUT8wq1uGsJUbIHSGTzrgvehWbpBg0UTsoBHMZUXh2FASlJ91r5ELd4k7AbXyAyr03cn1gljn1t8KtzlYi1n/5+WlNj/tpPHE4MACeA08JIRsN+TVWMJU7An+ov+g/zNC5qf84KhMyXzTvZ4kh2T6lIQOq6bm50n3IEJG8Wfm4AkbhsCieLASHomusvi4ha65Yk6Z17B3whj6SuffoArumZLi6ZfEE1/i5PWOf00oH/s86riraw1b0iegFqVFrEiNqJZI5ipbJbgyqGNcED7vNG9ia7MsYCJ4vfBANdtkf2UH+GXOFj+HJtMCLsIEo/9/hyt6cvNT5YgVNnKNqRyPxXAAzn+dAv9tw/nTqlAwBBaMM8yePH+0cvKlL1YA/AaF0tMyUvVbgW5B3RfzTFRBY9GLzfnaYFu4KUn61AqVndL7nRTrqrJRCABR9O8zIhwj1LWgb1XjoZOZXPpKj4RPsQR7EIkU0onQAtD2fZSc/kVhDHsy7yHqJO77Hn1GgJh48KPzP7ogOd8JPT0NPN8URGr8+esfTQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(346002)(376002)(366004)(39860400002)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(6916009)(66476007)(66556008)(66946007)(316002)(54906003)(4326008)(66899024)(8936002)(8676002)(31696002)(86362001)(36756003)(6512007)(53546011)(6506007)(478600001)(6486002)(6666004)(2906002)(2616005)(26005)(38100700002)(41300700001)(5660300002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aXYzck1TUzZBZ2RqaWdQZHViRzZNVCs5VERXQlpTNjUyVXh0T0FFTzZTNE1r?=
 =?utf-8?B?R2hsaXRZS1lvUTdTV2o2V0JCM3pud0Q2b1dkaW5Ya3RnVUJvR243QTJ0ZWhO?=
 =?utf-8?B?aVZTYWhncTl4NC9EdkE3R1UxeU00K0lXVTZqTC9tdkM3dlAzUUVHYzBIdU9O?=
 =?utf-8?B?NWtmR3lxQm9icXZKcDdRS3MxZXNDOXdVUm9xVmw1Tm5lTTQ3QnRFRUFFdGE2?=
 =?utf-8?B?SXlpRzRHYXREVVNtMkxlM0hlYWlGNzZpemRWNTYxOGM4NytxNmc4enUxclZQ?=
 =?utf-8?B?UXgvbnRjNWhmTHlRZDFrTEkva21GZldNYWxnd3ZtN3dSZHlSM2txL1phVXY0?=
 =?utf-8?B?RXJDekZKRFBCaG54VUY4WSt6Wk5oTlF0bVpmYXI5R29WQ1ZRbWovekNIaEdu?=
 =?utf-8?B?cmdJVnB3MHBhTjcwcmU2b3A5bElZdVU1NzNTQXlFd3VJM0l3cGdUVm8yd0Jv?=
 =?utf-8?B?MGNNT3U0NHhVMWFDUWFZTnZud2hBTkVPSWJtNEtVS0VtMiswNE5pSHI3d0xM?=
 =?utf-8?B?d3dxM3N6dnd2bFhWakx6Mm1aQXlQOGU0bFJvTzNVVEZ6RjB3WVJMQXVVb1g5?=
 =?utf-8?B?U2pYVnZycnEzSy9lWjNHK1hHNEpqanREOEovcElYT0pCdTdLYTNJanRXaTVo?=
 =?utf-8?B?OHpmbHhnWjBsTnNIOWhOYXpLajZabDErMzFlU1ZqanppZjFWZTk1aHRERXpR?=
 =?utf-8?B?RnBvWUE0andLSGJvclB3SnZiWjI0bG9helB6RHd6SWRFdGdqZk9kR3NmVmI3?=
 =?utf-8?B?dHdZSGszZkRXWXhkK0F3cklCUlZBUU5WZkpLbEVKNmx4SHBSeW4veXllcFNt?=
 =?utf-8?B?NFdiRUNadzBVRWpNUCtqaEd2VkdtZHVYcFNiS0tPcXJJRyt5WUxMcjYySmpF?=
 =?utf-8?B?Y3FIaDFOTWM5Zkl3cEFiYkxldUk0RHNGSUtmZzN3R3JuWm54Kzg0d0ZwNGN1?=
 =?utf-8?B?OUlYMlZ2c1hsY3d3MzBra01vbjJRWDJITkdCM1NTN2pNcmZYcmZJKzZPdGxu?=
 =?utf-8?B?OWVpUVYwN2dXbXZqVWV1Z3hCRUxDYTZvQVQreC9HMFJiczlFOWZvQU1wS04y?=
 =?utf-8?B?eDlmNE05RDQ4UTFieHFWM3hxMTh3QlB3T2xLRnc4YmNKRlNoaXhtZVRoZENS?=
 =?utf-8?B?QWFKZE80d0tNNVI0aGdJVEhrL1FSUUlRT0Z6TlVtQ0pac0lQeGlmd0N2S2Jv?=
 =?utf-8?B?bWJZeUNIdWY3bENEbU85OWlxaDlnekV6eE1sSEh2WU5qekRjRmFIVEtJVFlP?=
 =?utf-8?B?YVNoTExVRDREUkVnSFI5ZXVteHZWNmErMnZ3RjdsdG01Wlorcm5qK0F4Tm9j?=
 =?utf-8?B?KzU3bllHQkFGbksvRFNRVFcvY25ZNTlOTVUwV1dHZEtsZXFxcm1pemZQSXVH?=
 =?utf-8?B?bHluUnpaK3Bhbko3TGsyT0ZEdzJHZmgrOXE2eTB3TVJDTGdQRG1HQlVaUFVJ?=
 =?utf-8?B?anBGK2d0Wkl6NlEvaXZ3MmthRlJuNkZSUlBpUUxiVjFLQkRvK2VORkFLendV?=
 =?utf-8?B?TGJ0aDFxSEtYT1dlSitKL0NUUCtoOGFqZ2tscHBUWlhUdjZJTHliZk9Rc3hv?=
 =?utf-8?B?Y0lJeFNsTjJycVlIUnZ1dW4yVGtJWTdoaXlzUll4a1ZBaWVFQTIwdmFhZEZ3?=
 =?utf-8?B?ZFJuR1ZzRjJieWI3aHp1dGFTM0M1Y0hqZlN6U2wzNHVMcnZMUWdzbis0cUox?=
 =?utf-8?B?b05jY1F3QmxWUk5IUmlaZzIzclRkYXRhRlh0V2FId3k3T3JBQktjdlVGNVgv?=
 =?utf-8?B?YUJaTWlMVEpteHFGa0NZRC81dGF6ZEhQNnZFZkdlV0Ezc3dGZ1lPVEZYS2RR?=
 =?utf-8?B?RVExRkt3WktOS1E3MEJwQ3Mxd1d6N0x1aGZ4ZGowOVVVa1JtcEhtZDdraXhk?=
 =?utf-8?B?Um1tQVR3RTlvRTZqMWFpS05ycHlPdGNSelpnV3ZsMkF1ZTJqekg2b1NIcWkw?=
 =?utf-8?B?L3RJUlNCdGxhZ3NJeitSVFlYT0V0NUE4M1k0QUhyZVI0TGhwNGFqR0l2aDQx?=
 =?utf-8?B?ZzZ3VUdDV1BSc2RJQkhoV3IzRXgrSy9vaFZKWlRKUWVEU2lTK1ZkZUFGZ29T?=
 =?utf-8?B?ZW5BZ3RMZGtHaldqbG5mQVJFUzg1bFErNnlqTk1CRWxINGRPQis5clg4ZlRX?=
 =?utf-8?Q?68jtfxXMtxok3aqYuqf8fpKij?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 230082a9-1cb5-4e74-114b-08dbf4a0ec10
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:13:39.6598
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pT52RU9eRlOdhgCN6S9uECJO7kY09gE8HZObwNJtQUNy/75/Dj6+CiCnNdXxPEXMW9e2r3DhyJm4lmtdylEb5Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8590

On 04.12.2023 06:02, Kelly Choi wrote:
> In the specific example above, it's difficult in the sense that informal
> voting wasn't officially in the governance yet when the feedback was
> raised. What I would recommend in this instance is that if George and
> others feel very strongly about removing that term and have given a proper
> explanation, then I'd advise calling an informal vote within the thread and
> following the decision. Alternatively if after this conversation, members
> understand Andy's point of view and the term doesn't have serious
> consequences - let's agree with what Andy inputted in the first place and
> move this project ahead.  In an ideal world, we wouldn't require voting,
> but rather a discussion. However, if there are strong opinions for/against
> a specific decision that is causing us to be at a standstill, this is where
> informal voting helps.

I have some trouble with what the above expresses (and what was an issue
already before): First, the subject of this thread says "informal", yet it
invokes more what I'd call a formal vote. Then above you again say "calling
an informal vote", which isn't my understanding from what an informal vote
is. That's primarily based on my experience with the earlier informal vote
that was taken on another subject: It was simply assumed that supplied tags
had already cast a vote. Similarly here I'd expect that the opinions already
expressed simply constitute the "informal" in the entire process. The
difference merely is that in the other case a majority was in favor (which
can be expressed by A-b tags), while here a majority is against (which
cannot sensibly be expressed by tags, as a NAK would imo be pretty
inappropriate).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:13:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:13:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646572.1008952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA45X-0007Ff-LI; Mon, 04 Dec 2023 08:13:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646572.1008952; Mon, 04 Dec 2023 08: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 1rA45X-0007FY-Ht; Mon, 04 Dec 2023 08:13:59 +0000
Received: by outflank-mailman (input) for mailman id 646572;
 Mon, 04 Dec 2023 08: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=OYKC=HP=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1rA45W-0007F0-CO
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:13:58 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11a8a102-927d-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 09:13:56 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11a8a102-927d-11ee-9b0f-b553b5be7939
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1701677635;
	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=gMNsPU3Juib2yJf6SWQqDXaxEhWmoFOPHWoGv9RWmGg=;
	b=c9Sil9zKcRmAM17YdNijnJ738PZPkK/vFPXvfZqAahgs6pPDG3sDKWQXOdww6YNmkHldsI
	vjwOnAXB+bYEjHmN1RamCkmOVTAX2fGQdmvw2pNYjUI0MxdPmd4T1YHOg6v27La0V6EFgU
	shnYxpZ7VtqifbKRJUw+fltnGt8KchZV9aqpZBYYCcSMPwCNLOTLDHzMzJ3OMeRCm6gji/
	ZBI7XVm6Xe+uzjQsA5VNiKpVTduqxYnPjwbaeWpGWrT98UaiypT/oFki+dXe3gGk7j402j
	xblTjyWiv/lL2Vg+dWyUHVVUVgRYDX3x98dOizKDaWFwW3nuPFqS5GwLQ0e/Fg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1701677635;
	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=gMNsPU3Juib2yJf6SWQqDXaxEhWmoFOPHWoGv9RWmGg=;
	b=zBwXBxP/CtRum3O7TXJpoQS0cbxSZPFzNqDfrXvR7wNiGLNFMWJgE3xAEKIaSQKeV6xH6I
	vHV1cGfsxAipPcAw==
To: Jiqian Chen <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, "Rafael J . Wysocki" <rafael@kernel.org>,
 Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, Roger
 Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org
Cc: Stefano Stabellini <stefano.stabellini@amd.com>, Alex Deucher
 <Alexander.Deucher@amd.com>, Christian Koenig <Christian.Koenig@amd.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Xenia Ragiadakou
 <xenia.ragiadakou@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, Julia
 Zhang <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>, Jiqian Chen
 <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
In-Reply-To: <20231124103123.3263471-3-Jiqian.Chen@amd.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
Date: Mon, 04 Dec 2023 09:13:54 +0100
Message-ID: <87bkb6xu4d.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Fri, Nov 24 2023 at 18:31, Jiqian Chen wrote:
> diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
> index 5a96b6c66c07..b83d02bcc76c 100644
> --- a/drivers/xen/xen-pciback/pci_stub.c
> +++ b/drivers/xen/xen-pciback/pci_stub.c
> @@ -357,6 +357,7 @@ static int pcistub_match(struct pci_dev *dev)
>  static int pcistub_init_device(struct pci_dev *dev)
>  {
>  	struct xen_pcibk_dev_data *dev_data;
> +	struct irq_desc *desc = NULL;
>  	int err = 0;
>  
>  	dev_dbg(&dev->dev, "initializing...\n");
> @@ -399,6 +400,12 @@ static int pcistub_init_device(struct pci_dev *dev)
>  	if (err)
>  		goto config_release;
>  
> +	if (xen_initial_domain() && xen_pvh_domain()) {
> +		if (dev->irq <= 0 || !(desc = irq_to_desc(dev->irq)))

Driver code has absolutely no business to access irq_desc.

> +			goto config_release;
> +		unmask_irq(desc);

Or to invoke any internal function.

> --- a/kernel/irq/chip.c
> +++ b/kernel/irq/chip.c
> @@ -439,6 +439,7 @@ void unmask_irq(struct irq_desc *desc)
>  		irq_state_clr_masked(desc);
>  	}
>  }
> +EXPORT_SYMBOL_GPL(unmask_irq);

Not going to happen.

> --- a/kernel/irq/irqdesc.c
> +++ b/kernel/irq/irqdesc.c
> @@ -380,7 +380,7 @@ struct irq_desc *irq_to_desc(unsigned int irq)
>  {
>  	return mtree_load(&sparse_irqs, irq);
>  }
> -#ifdef CONFIG_KVM_BOOK3S_64_HV_MODULE
> +#if defined CONFIG_KVM_BOOK3S_64_HV_MODULE || defined CONFIG_XEN_PVH

Neither that.

This all smells badly like a XEN internal issue and we are not going to
hack around it by exposing interrupt internals.

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:16:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:16:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646576.1008961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA489-0008Vf-5m; Mon, 04 Dec 2023 08:16:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646576.1008961; Mon, 04 Dec 2023 08: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 1rA489-0008VW-2y; Mon, 04 Dec 2023 08:16:41 +0000
Received: by outflank-mailman (input) for mailman id 646576;
 Mon, 04 Dec 2023 08:16: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA487-0008VQ-Og
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:16:39 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20615.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 727666f0-927d-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 09:16:38 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PAXPR04MB8490.eurprd04.prod.outlook.com (2603:10a6:102:1de::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 08:16:36 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08:16:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 727666f0-927d-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZvxaTcmH1cIoT5XCoRvVLLLZ5cr35sIfPi2O8VhGkQcc7XEFWX/br3uXazpgY/bQmEIH7D8cUYCDZ8Y9jcK315ggUJk2jUm3Qt0rwRtM+NJYHbHoKMXfN0VSOOe/6CcdEiPH4IXpmFOxk9MJW9TJKKkSlmR2kGnLvizpA6oN4xDWfwLTmbeuCXmeTDz1ICH8VI6ApYcpCJkvCZQXvWMGOw6MDbLPL2ORPUj6tFxcobN6Qq/QYDO9hVGcc4KiLqs6sVn6MYSTt0jr09UZP8/lEu+PGEIH7LpNW+YeqJ9VqdydtJykHE/rnURUZbf1aiPYDCH5s25soRCwc0/7VO9tXA==
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=38WwFcSyBUYcdaWCImymQsSRdGzJQINUBhZhlB7Na20=;
 b=NXZVcV9GBTlVFAuRHn4RhlOT5Ijz+/U0JRWhcZGvAeEDGTNaepR3OJxg+3ARv0OeN3/qgsLUhyPpASFgcmWgn7ACsyjJCGr834rBu5iExwlwUUaBnhBbeOE5YGtqwBlFH0vLLWLfCaogufuNXAJEDTClxvtNmwP7/9wiRqCiGHXcNJaHhfe7Z8t0zZFHSn2WKxjMWZdl0CUBeNuPahZxzelrTM5niszfI4Bc1Zcz3dFX0Nq1tWNkWpeVEBMPkcrFFjFyHYiloZY5CXznqVehzpJYWeKmklXWkEJFP0qIGODIjXr1kwKdRRsV8anFeXzLAN0L5K1FCh7Rj/nPIiTGWQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=38WwFcSyBUYcdaWCImymQsSRdGzJQINUBhZhlB7Na20=;
 b=qyV4h8t5M6iALhvZ/oe41XNPP28uKwrvSgWmagz+zjBqtNuUPtpIOLlgm+mZuLz3fcu4tVyK0qs8LkVir+tqmCllk/IkmVrxSvMUAZDyNoeermkAUhmkv+21k0U6Wcw/2UwdHb7IAM//MoOxI2TpBKzSGnb+c4zb6eaK3mk7H5J/zJNKxwet/rCdbCWyPvYg9kGStZ1Mp9wlJPf3A91bSI4BJWwsfOZIQz6MO+7a8GDP4vaO4RCDJtn0htlhQ4RR4RSQgVoPNRFFpT2bR5SurpmaSwcR3kFUlLdVUIbgrcbp703yUJRbheT3f98C8NPL2nu4J7rL3cevpyCuIUsTXQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1978d259-1531-4dcc-a106-d87f6f26885d@suse.com>
Date: Mon, 4 Dec 2023 09:16:37 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Kelly Choi <kelly.choi@cloud.com>, xen-devel@lists.xenproject.org,
 committers@xenproject.org, George Dunlap <george.dunlap@cloud.com>
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
 <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
 <alpine.DEB.2.22.394.2312011253390.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312011253390.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0370.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f8::16) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PAXPR04MB8490:EE_
X-MS-Office365-Filtering-Correlation-Id: 1435dfee-4c03-4a3b-be9d-08dbf4a15514
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	8QjC9A+artuFTNAya/ou2it+yj7eCfd6hWVKGt283DjnLqXdmv0YnUvQU5hXy7XsBtD+r5GQdsTJc/nZ6H8A2IJpu0CJPLlcAVZbu8Pzij94dJOgT+h+2hv2qjrQXPI5fq2kDj0dgyeePI3F5do/l8b31DG01/34yOOOUp55uLyFO75cHdmdQMqx7id2sjwv9B/x4gmY3Ak30s1UUvc7K7pXWdUx3aYmLrJSoO70ZOgStef59OmZJNFvERAhlOi0HogRQuYpBb557QMWFYlkhdXt/uML/CweY0plokJODuqhhPcf/RUxshT0kA3weSc4sl4y/i60fQHRgC5pyXY+fSk8TZOexmdh8Rurx3pf6E9a79g736YnMPcOzGLWqB6VBH1ASbNc7g2+OHLd9IR7AfXKiZ0P6XrR0PQekd66h64jB+2VL47h5CU/l1monM4fLQzlFy7Gh6PgGnPYBsdZC5E04j0tqxdOmsc4CkuDK3kG1nk8Pul4sQjKl3/APDhy1XABU1MiPCaxOza/wsqf0dPSvt9A/d+vh8ok92hDro9mksuU8E91CeGnUTsv+qcOlqobtn/rk7kivLE3mYoWwWmxGBSLYAL4akX+En5y6JtPH2RJ1Dw/BErFXKDrgUJCa6hN59Y2GaMNk5XAHTG/tQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(136003)(366004)(396003)(39860400002)(346002)(230922051799003)(451199024)(64100799003)(186009)(1800799012)(2906002)(6506007)(478600001)(6486002)(4326008)(8676002)(8936002)(86362001)(5660300002)(31696002)(54906003)(66476007)(66556008)(316002)(6916009)(66946007)(83380400001)(26005)(36756003)(41300700001)(31686004)(38100700002)(2616005)(6512007)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b3YvM0ZYTWtiWW1yTDNuRmN3Zk9ZSTgvZDN5ajh3SE9rSHVoTlhUOGdxYnVW?=
 =?utf-8?B?TFJnSStuK3dyWmF5L05qd3pxS2RwR2pBMzlINGtNRk5OdmpjNGRoUlExdDBp?=
 =?utf-8?B?TzBFY2NVdVdsYjdncXk4NTdiQi9pL2V1L1VWRXpFTVordUpjRklUdm1pb0lQ?=
 =?utf-8?B?OTQxQnltTWFoNHpxYWVOVEk3ZHREKzh3b3c1SGhUVmkvajNmak9jSkUvVUNG?=
 =?utf-8?B?eldhSWRCdVUvejBmRmgxQnh4L1pyQ3NMVERtVjRudWsrMXBVS1A3WDd0SzBm?=
 =?utf-8?B?S0RWbDBMQlIwWVVuczZ2MGpKdlVkL2l6UExWYXBYVHdBaENLNXNmVkRVMDBp?=
 =?utf-8?B?N0FqUUxqS25ra2Zta01lWm85UU5vdmovSnF2R28xK0NwYlkrdm9uVDhWZGll?=
 =?utf-8?B?WjNYQVppRXpuUW1nT0Z6REx1MmIzU01lMCt0ditLMmE2OUljb2tGVnNMNGNs?=
 =?utf-8?B?a2x0RVlXelJEa0hqRGdPUUI1c1RzRWp5KzBZaXlVd2pEanRVWGM0a1lZVitG?=
 =?utf-8?B?WEdsSGdUYWEyY0tLbTBndUNyVW50RnFhNTc2ZkU4NGVvdWljWm9sYjQ5YTNI?=
 =?utf-8?B?K0xFbzcyM3lCcmRiZXNPZUM1aTNDeE5YYVh0OHQ5Z2RUWkNCeVZMUTNycU9p?=
 =?utf-8?B?NnF3OWlxbDZEandlLy9JU3p3THRKcFNrc0JaQWdjUnlyMUF1WFYxQ2pFdndX?=
 =?utf-8?B?Q2tYZXZwbTk1RkNWV3VqSFhiM2tNeTZmdzdUcFk0QjBaY1JuUHJXWUtCSEFU?=
 =?utf-8?B?ZTRxZzMrZWRhZUFtbENTeVRHYVNwQXlRL05lMjc5M1BOUmFFalVISXRhVkhj?=
 =?utf-8?B?QU5NTm1JMjFScHp0NGxHWDZPMktCcTVZcEtESWt3cCtJMHpXZVErWnZFdC9Z?=
 =?utf-8?B?MERzQlhxZnZiSmVPZmpMQjJYSy9vQVFGTlA3QnQ1aDF6YXJSRHhNV2V5MGw0?=
 =?utf-8?B?Y2IycmNqUFJhZ0xrVnBpNmVWWlRNekU0TG1kVjAwY0VlZStVUmtWSit0ZFlI?=
 =?utf-8?B?OVNmb3ZEOHFzMEIyaVhyQmZBNzZSdXUvL0VSNGRScW9QTHkrNXM1VVNJZFV4?=
 =?utf-8?B?KzFzK2lSNVJXUXlCaW90d0dZbEdMSktnRUl0YUVUY1l0NEl3Qk1RcXo5TjYw?=
 =?utf-8?B?di9sQ2xJSmtNT1BPenNsbGxUcCtyaUoyVmhoem5HaS9STnpOVU5jRnZJem4x?=
 =?utf-8?B?Z3k0SmlrUlZsSWxwS2swUEN3c1JaT0Z4Y1dMRHZYN3hsYSttVFNVQnE5NVE0?=
 =?utf-8?B?OW4raUNPOUU5OVBzSGYyajZqOXRwNzBOcmUzdExtK1hQYjE2dTlWbkhTaEVX?=
 =?utf-8?B?TFRnNTJ5OEFwOW5jb1dTd3h5VngrdzhsWVA0c3N3TkFMeTlqV0ZUL2JFNEVY?=
 =?utf-8?B?YW45YUZBaGJsZXd0Z2tOeEx1dWpkbDlSMnBaMCt4T1ltQzRxUUxlMmJxYjE4?=
 =?utf-8?B?K09MMVZRWkhudmlsM0d0N3NEczcvaFhWTmNYbDB2a0loNWJLVldhV3FOVUpC?=
 =?utf-8?B?TjJYRU1oZUZTVG4xdEQydk5zdUtuYm9ZU1BCU0FkMk5LWCtGaWNvNmZacVNy?=
 =?utf-8?B?dG9UVG02NlJXeDc2WXVSMzlqcmdMYWt0Y3A1UGpFSEw4d1VwY1V3SWtGcE4z?=
 =?utf-8?B?MEVnOVRHSzR6VnVUOHlKU1EvZm13RVJ6N3pKYkJicDJFZGRMbU5kdWw3WWR4?=
 =?utf-8?B?bFdRbFgrNjljK0tVajRNeTREOW9zYUhYbi90SjJ4OGtwakdneG9sZmFYdDk1?=
 =?utf-8?B?MVVCM1pqeER0QXVZVjRSMnpGY29SYkVYamZ1Y2FRNUFVeERTSGU5VmRQRCtW?=
 =?utf-8?B?QkVOMUYzZlJJbi9LTVZUM204bSt2TWRneUtMdEZQUzJyM2NqUkVqZHhHZ0JX?=
 =?utf-8?B?bHhZTEZNVTJVU2xibm1nSGlZbEhpWGtxc3ZsVi9UQW9ZRkVtUGZBMDBqYmRi?=
 =?utf-8?B?blBBMlBzeFdkOU1CMXVsM3dIWUxKUzNXdytSY1pxY2RET21uSHdPVEdRMWEz?=
 =?utf-8?B?Tk1oZ2g3eERCNkNnZk9YQ0RCVit1M0o5QU5SMzVwN1dQUC9HWUJVQ04zeG0y?=
 =?utf-8?B?TWdEU0d0dkFobTNNUllnaFBCekpEWC83N05ORjhhL1g2L3VxSElWR1llWGxT?=
 =?utf-8?Q?NAnuIA1oJ+HzYq4A7MEuiJHtF?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1435dfee-4c03-4a3b-be9d-08dbf4a15514
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:16:35.9977
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BP/cU6roCDiBOhc8Z5Dy0IYbBvqj0Sh+brp8XKfIMRnjRXXZ0kC/yxMaUBaUrglSIr5giK/2gQqxJOL3/GMILg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8490

On 01.12.2023 22:44, Stefano Stabellini wrote:
> Replying here on a couple of different people on this thread.
> 
> 
> On Thu, 30 Nov 2023, Tamas K Lengyel wrote:
>> I think this form is bad and is not helpful. 
> 
> I agree with Tamas and (also Jan) that this form is not helpful.
> 
> 
> On Fri, 1 Dec 2023, George Dunlap wrote:
>> If most people in the community really do think that "broken" is
>> suitable for the documentation in our project, then of course the
>> maintainers should stop objecting to that kind of language.  If most
>> of the people in the community think that "broken" is *not* suitable
>> for technical documentation, then of course this isn't an example of
>> unreasonable review (although other instances may be).
> 
> I think there was a misconception when Kelly created this form that the
> push back was on the usage of the word "broken" globally in Xen Project.
> It is not the case.
> 
> I for example agree that "broken" can be used in Xen Project, but I
> don't think that it is a good idea to use it in that specific instance.
> 
> 
> On Fri, 1 Dec 2023, George Dunlap wrote:
>> [Andy] removing "broken" is a completely unreasonable request
> 
> I am in favor on moving faster and nitpicking less. Also, Andy put the
> effort to produce the patch so he should have the default choice in the
> wording. If the choice is taking the patch as is or rejecting it, I
> would take it as is.

I'm afraid there's also disagreement about where nitpicking starts. To me
"broken" in the context here is technically incorrect. Hence asking for
the wording to be changed wouldn't count as nitpicking to me. When badly
worded comments of mine are commented upon, I also don't count this as
nitpicking (there's always a grey area, of course).

Jan

> I might have a preference on a different wording and I voiced that
> preference. We could say that my request should have been optional, not
> mandatory. But when the majority of reviewers request the same thing,
> which wording choice should apply?
> 
> If we decide to ignore the feedback as unresonable or because it should
> have been all optional and commit the patch, what would stop anyone from
> sending a patch to "fix" the wording in the comments to use "deprecated"
> instead? And if someone pushes back on the second patch, would that be
> nitpicking? If we commit the second patch, what if someone send a third
> patch changing the wording back to "broken"? We risk getting into
> "commit wars".
> 
> To avoid this, I think we should go with the majority, whatever that is,
> and the decision has to stick. We have just introduced informal votes.
> We should have just used that in the original thread. By the informal
> voting, we have 3 against "broken" and 2 in favor (not 1 as George wrote
> as Andrew's vote counts too). 
> 
> The easiest would have been to go with the majority, resend the patch,
> get it committed. If Andrew feels strongly that the "broken" is the best
> wording, then a proper voting form is a good idea, like Kelly did (which
> I think is a full formal vote, not an informal vote). Except that the
> form Kelly created is too generic and has too few options.
> 
> In conclusion, I don't care about the wording. I do care that we reach
> alignment and move forward quicker. I think the informal voting
> mechanism is the best way to do it.



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:25:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:25:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646582.1008971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4G9-0002SO-Tz; Mon, 04 Dec 2023 08:24:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646582.1008971; Mon, 04 Dec 2023 08:24: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 1rA4G9-0002SH-RS; Mon, 04 Dec 2023 08:24:57 +0000
Received: by outflank-mailman (input) for mailman id 646582;
 Mon, 04 Dec 2023 08:24: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA4G8-0002SB-8w
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:24:56 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20601.outbound.protection.outlook.com
 [2a01:111:f403:2612::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 99df2d85-927e-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 09:24:54 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AM9PR04MB8523.eurprd04.prod.outlook.com (2603:10a6:20b:432::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 08:24:52 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08:24:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 99df2d85-927e-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=IqmSm1GfFS5lXZ4mtu5f3ICO5hU1lFpXvuNln81vjetHQGFdVmXNi9GXC4/r81WpQsWaJBecEW0zGYGgK/h+YdKCacmzpcuJVboLsI9Fgv+Pk2DyopnnyoogyQwguhO773ACUlDmxZJ8mBPeg/q4eqNIiqo+MKmfx3gKD9uTuBzHYsGR897l0hnc/mTQOfNKKsheILVptXWi87sxZNRHJHxQsHZ1lzu6noaVi2aAc2Uv4RTjLmvrnNSVALeB1IuZavfGGHsAxPijUf7m+L9v6pV4/wP2B2X21L/ntUckiyVt9rvc1HgmrrR00SThQcYLc6XlCegk6p3e0MhxG9R5yA==
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=AFaj2/jWpQu46xXVWjD3VVpqSR0iQCgRj5RTySehScc=;
 b=AhpOwNTKzDAdu0xzXBwxc0YUFuGrWojsUzirGRAHrXKXkV7svGXiTughOflMgsUuTUGWqkmXNqi9gJVDC8hpYfE8RKyJzlvdi9d+Oh/DrUb6t41SxIWkrDxxJo1DQcHFGz980S7642ZMDO0X9Wy8J9NUAPyMVzvqmfIvGr5hg352CWYNK9E3JladE3wDnjV6+NibfAAmUf22li7D+2tv9DbICDaF8FWzNVZ1rfb2hfcRvtNkYQ7v3w2Mpnf/7gnJdwbXlP/0/czRur7evROhOSbbmhgPrSwi5tEsDlAsi4B8DJFFI7Y1MuFL9CvnjqUnCG6faWDBPF2TpygDZTocpQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AFaj2/jWpQu46xXVWjD3VVpqSR0iQCgRj5RTySehScc=;
 b=eGhR55HlJ+N4N4xgGiUmoPogBcH784R74HREY7f6p5aD+vU0spGxvJrzg+/2HbvKHX2cV06a7m2WCouooZ49qUm3PRwVQq3UzIWTot1nbRJ2d5ZJ2O9Qo1ptA/EgVXewbd+kC+ahII8tjlQihjsiyp4TaoWwfyOkXrvysbIAmsFS2rgDg3iTwJp8PgQ4FqRPUx+8/6uucw2K7qk/lAKa+MgA7v/PU40tx5HE+5zShAiaZYJWs1KG/nWFOXPb46mFiKsOavatnVKi7RqTXVdqUPwIYPCSNzlD3Zg+dA3BNzHE4fXwwXuwqg9S29VL2X5L2aS9bquUqdMmvfX3FESjTQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fcad8f45-a8a3-42c2-9f69-17a0d8a9be2d@suse.com>
Date: Mon, 4 Dec 2023 09:24:53 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Paul Durrant <paul@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312011847520.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR2P281CA0031.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:14::18) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM9PR04MB8523:EE_
X-MS-Office365-Filtering-Correlation-Id: 2cdd79d7-20ef-4d43-1c26-08dbf4a27c8f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	d3DEYw+rEmwmvSegJBOYbHkCmPC7mOBLjjRg4pHT4CKyZfGxWCTOUbrdNQXRtcTtiOD3XHYNnw6e+oyEHYzyDPEPnW9fl0sa/tGbbWfSYJyk5KFSDux7Au+cikwUDw+8Py1AG/vxWvSangYFTAh+k/4bP+eUHMdrd2Nf09hs9AsXLNiR8GVH17HHqoyTZRglm/LHE9aaBKnGxtTMh0eDJ1JxnlNJ2R5Nad8WwQ9u7gi/0wKsoo2XF6koj4Ie9uJgxrfM0tqBGwOlM0PsiszCvM/Sua3KJbjdVgnEpEPesJFh4f1onH88RYHlVswrpQT5yehLd8kK73BH6sdSm61NFU4q7X2yyWgdgZeFBeqdAuMe1pVSditsNaYY5AJhyAIGq2cELRDJbPEEgq4nNNUb/e+MXauru1Wxn+UXW2xFAqwCktonFSLkTcG2KoCKGbgCFyGobLTVTOg06ymorOM2yzxUVMlLeds9yNgayNEf7KV2fmV0QQkAH/08FgyM8l+zN7DhuyL/wywltOdQouXryTbW4OzYWwd4L5y/AwOZ5jEjIm+oz+m2sFHBpQ/OBMX4tHYV7XGXjBwP3Xw3XVbusv5W0V5OYTfW8TdARu+wGOtBGjLjEjW8Waw25DrduV/rfHABWk0s4J+vCX4uaKIGCAz/ah1tK1b6rV3V2nhjsDYX/2wRcMZ3emXs8slib+oS
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(136003)(396003)(376002)(366004)(346002)(230922051799003)(230273577357003)(230173577357003)(186009)(64100799003)(451199024)(1800799012)(31696002)(5660300002)(7416002)(86362001)(4326008)(8676002)(8936002)(2906002)(41300700001)(36756003)(2616005)(6512007)(6506007)(53546011)(83380400001)(6486002)(478600001)(26005)(38100700002)(31686004)(316002)(54906003)(6916009)(66476007)(66556008)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?K1UrbEZQcHVJZGtqbkFYRmltMnIzL096a05keHYrQXgzUEFBaVdvdTZ6ZFBC?=
 =?utf-8?B?aFcvOXdqc3ZxV1JzK25uUDNHNE0xQTQ5OWx6NlNxZDAvWHdBMHhuS21LSElX?=
 =?utf-8?B?VVg4TjhFRzJ6UWNqcWMrZGdEYnBZNDRRWmF1N1BwYUppYUp4TUR3dEVWQjBa?=
 =?utf-8?B?TEdNeUl5clRtZzkwRjFEa3ZkRHBpT3NBaTVtYWtDMFlpVjZDNnRSaStZSTNC?=
 =?utf-8?B?SmRpU1BhV3FWQ2IySjZRdng4OEpSYTRnK01Yb0ZPUFpza0VJc1kvY0piS3RY?=
 =?utf-8?B?aFVqV3g4UFpsUzVnQjhZMTNWRHNadzFzbmZmdTk2azZ3elBDTWhOZ0JaOTJp?=
 =?utf-8?B?TkZ6RjNMWFhWMjg2b2FoanozZTVnYWFHaW5temkzd0kxTGZpYXBaSGIvVGVN?=
 =?utf-8?B?MjNhbW1lZzFOdU5icHVSTFJ3NUJwRmNIaXk0K0MyWHpKbnU0L29yY3JkZ1NH?=
 =?utf-8?B?YWlncnpCeENPc2lnQm9qTkpvc2tzTlpLKzZlZlJqL29tWWx2Y1MwRFVDbUJy?=
 =?utf-8?B?OGpOVFdra0pNcXJRaW02YmJsdFJ6am1SWTNabHJvV2VDZ2tESjc1TTMvL1Fl?=
 =?utf-8?B?ZnNGVEFUYm5zOWJvNHdFNkplS0tvbkpHcGRrRkJzYUhWYkd1dzJrWVhWTnRX?=
 =?utf-8?B?VEI1RWNRZW9BMVdRVktxUjBqd0txMUk2Z3ZhaW5YeXZvZk1UUGJ6djNMdHZS?=
 =?utf-8?B?WmFIUlRVTFJtaHhzN2FYMCtEVFJ3OTVYaEUwckRMbmhJa2N3QUlhVGsyRU84?=
 =?utf-8?B?ZGdSSWEvalMzWlVKeHpTb1FsTWpYNEhlWnZKREJYbnFhRzIxUEtZNHFFTUJS?=
 =?utf-8?B?aHhBeVdPOElFRkRQTjBnSUJuY0xETm1JVWZ1WW4vL2FaVElNVGYxK2ZBQVpK?=
 =?utf-8?B?YzZHdkhrZjhrR3N2bjdNaEhUNDZGV0xZQ1lLU3p1VndydVhIUllqa0FFNjQ3?=
 =?utf-8?B?enYwOTZkQVRVWXh1aytqeGNzRG9SVDQvRHNiUWc0Y0kyM1B4VVdwUXpIZ2Vo?=
 =?utf-8?B?ek1LVlNmTkRjcUErc0MvKzBYTWFlR3NMdUxkRmR5YzBBL2tYb2swcldYZDdJ?=
 =?utf-8?B?Qjk5d3ZpdGNZVWl6c285RVZ4TlVIb21oQU4wRTBoZ2pJWGs1dmVNa1hzelpj?=
 =?utf-8?B?cHNzODVtZ1Q5bS9Pb1BhTkx4R2l6anZLVHlVMWZUa1VQL0pHSGc2WDZYKzRU?=
 =?utf-8?B?ZmJHVzdQOU16S1pKallNWGNDUVp2aFRsNmhrUys2Rnk0c3kwWi9vR0x1THho?=
 =?utf-8?B?b3VuVjBnQXduY3VVM3AzbkNxSURVWk5JNGdGUi9EcWRIN3k1MHg4M1FMaFg3?=
 =?utf-8?B?aFNuRkNSNVZyWUNLUnpSRWtSbTgxSFozdjNRNFM0L1Y2RHFsY0xvVVpSemlP?=
 =?utf-8?B?d0dGUTNBOEJHWE9Qa3l3R0ZuSHpTSkdFQWZMeXZ2d1Znb0dIWTNCVGpiQThn?=
 =?utf-8?B?U21IU0Vvc3J3a3dvTUxCWEZkUDZjOXE4cnhBcnA3ZytGbVJmb2tXU3ZESW9U?=
 =?utf-8?B?Z2g4cUllbHl2NzQxY0hDNFJTV0FrcFg5Z0ovWlBrdHEvdm1TVGZ0MnNsZ3d3?=
 =?utf-8?B?b3ZSTTFSM3YzWDNLK3hQNi9qOWh6YVhRUUxzVnNnU2ZhSC9YanFtb21jZVI4?=
 =?utf-8?B?aFV2b1Z2cG04bldaM0RvSVlUV2llN1dLbDh5eFhuMUxIeUFzSFhjV1BTaEkx?=
 =?utf-8?B?Q3BadFpMcHl2Y01HdUJrQmdzQWEyVmdzRjd6Y0hIU2lmNXNWckZtZURTVG9m?=
 =?utf-8?B?c2k0QmZ0ZC9kcFdBZGhQaTlMdjZoQWw0OVR5TkQyb2NFWkU0SWlkUFlTY1Ay?=
 =?utf-8?B?NUtCeUppd1RqNE1GbHJWbCtJclgwRllISGd0bDlyR2oyckJLM0VLWXQwSUlo?=
 =?utf-8?B?eEIyVkI2YTZuYmx0TGovSlR4SFB4QlJVa29OQXN5b0swT1hCdGVxVzgvMjhh?=
 =?utf-8?B?cnpNTkZqd09VUW1uNWc4ZysycEZLMzl4ZDQ3VGx6b0R4MUdqUmp6ZFpBQUQr?=
 =?utf-8?B?dnl6ODMra0lENGVXR2MwM094Skh4S1l6cWtHUHpIT3hxcVFPNWQ0OVhIUnla?=
 =?utf-8?B?Ni9MQXNjdTFiY3RnVkpXaHZra0tydFlGUTA5RWQ3NGRzeTVHYysvU2YrZFBv?=
 =?utf-8?Q?oo4jMYJpYElMHfxuClk4h2Jai?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2cdd79d7-20ef-4d43-1c26-08dbf4a27c8f
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:24:51.7000
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BA9SdXVT6AsJKmSLc0ZuaIb0p+to0UfBkw4hRn/dddLIB4SDheZBUPnrpI4nQ1/xBTITmbOhK3D7NumcCFsBfg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8523

On 02.12.2023 03:56, Stefano Stabellini wrote:
> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
>> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
>>> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
>>>          bus = PCI_BUS(machine_sbdf);
>>>          devfn = PCI_DEVFN(machine_sbdf);
>>>  
>>> +        if ( needs_vpci(d) && !has_vpci(d) )
>>> +        {
>>> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
>>> +                   &PCI_SBDF(seg, bus, devfn), d);
>>> +            ret = -EPERM;
>>> +            break;
>>
>> I think this is likely too restrictive going forward.  The current
>> approach is indeed to enable vPCI on a per-domain basis because that's
>> how PVH dom0 uses it, due to being unable to use ioreq servers.
>>
>> If we start to expose vPCI suport to guests the interface should be on
>> a per-device basis, so that vPCI could be enabled for some devices,
>> while others could still be handled by ioreq servers.
>>
>> We might want to add a new flag to xen_domctl_assign_device (used by
>> XEN_DOMCTL_assign_device) in order to signal whether the device will
>> use vPCI.
> 
> Actually I don't think this is a good idea. I am all for flexibility but
> supporting multiple different configurations comes at an extra cost for
> both maintainers and contributors. I think we should try to reduce the
> amount of configurations we support rather than increasing them
> (especially on x86 where we have PV, PVH, HVM).
> 
> I don't think we should enable IOREQ servers to handle PCI passthrough
> for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
> Passthrough can be handled by vPCI just fine. I think this should be a
> good anti-feature to have (a goal to explicitly not add this feature) to
> reduce complexity. Unless you see a specific usecase to add support for
> it?

I could see very special devices to want accompanying by a special ioreq
server. I could also see tandem pass-through/emulated device pairs to
potentially be of use and require coordination in the same ioreq server.

That said, I wouldn't insist on allowing a mix of vPCI and ioreq servers
to be used until an actual use case (with code supporting it) actually
appears.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:29:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:29:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646585.1008982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4Kj-0004RP-Ik; Mon, 04 Dec 2023 08:29:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646585.1008982; Mon, 04 Dec 2023 08:29:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4Kj-0004RI-FQ; Mon, 04 Dec 2023 08:29:41 +0000
Received: by outflank-mailman (input) for mailman id 646585;
 Mon, 04 Dec 2023 08:29:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA4Kh-0004RA-S4
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:29:39 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on2060b.outbound.protection.outlook.com
 [2a01:111:f400:fe12::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 431435ed-927f-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 09:29:38 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DB9PR04MB9749.eurprd04.prod.outlook.com (2603:10a6:10:4ed::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 08:29:35 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08:29:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 431435ed-927f-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZR+kbB5P3qhjOMI6uBVKoOnUwTbTlZmCl1g1SDMNmSfpppwx9xhSKsg9wkQspm124x0jarkW/vsqPgPfePlc9alq6tvuJNIf8njhs35RyN2nrY4clYeSTdwn1HmMZ4KLgXKfJKW6Li5SoQobqWl6GHCbfH7JzSFNJvUCPTIq98S2Z/xJBfQSu6YIhnmRG7z81DQmr8G+tNLS4EPAfmwZ1hF1ztxgOj8E6fYRqBRcvPaMhlHTk3NVaES5XVzglB2jI0fRppaQnE2RebX2go6VQvbziDeqq3lL25N5B9FRU5hggvQG2oJq1K4SjBc2UUhs+41t1cBHEp3X/AszDtObNw==
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=P6qAUzvmfVWsB1lOFab/mNO1yowk2sqfErRFZrqDFSQ=;
 b=ZyOzhKJiKl3i7t0nXKkz2xx4OHb1tJ7fJZOo6prnM3+yqkUg1Q44hfgHPOjFNzcVJtYS5L+3i1/aRYwm5ZAeqFg9RjNTCV4tF5jGGVx/iDrp5KhnNdyfAyYUe7PfHXFidWTsyYDwkVOLxsxbCQM971FNDwzFeHR1wLWGOn1MoNjbPdrqCifeoBO2hSk9JLuXzhldQQNjxULQ7NMOfQljsKHqjRWxWFrIFEInZjbEHwf3Hj7S981mF3Mj0kLC3RnjymTLg8T1a8jMGhSLogWybBb5LtLENtmL259UJkHeEoGr25rFF3VpeUzfTHpRzfDoCc4MplYpAZOH5EesEXKjvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=P6qAUzvmfVWsB1lOFab/mNO1yowk2sqfErRFZrqDFSQ=;
 b=YAy9htybri+TiN9lXMc6JrESldmrMiEHmAda5nEH9I6+rZpHFixWPhpUWLUc57vff7/kTVL8Ue9qfdBvRsOEBD8ahd0i9rYu8+wTHU2yFJcpv04M6AAWA/Ux8ZJ4zORomOKilBVqcsEthuhQU84SrhIERyaHC17fZe+IOcGtPpWqbf3jnyLEaC60LmuFO9fhoWcsNDbsLyW0VgO4aepnJbRZK0kR4/e0re5YVawI06waUoxx2u7fUbjdkuuT95PK4CIv6biVBmJWOvHE2JqAY9oHMX2QzxVMvN1i8PKvgINipmNbuC+704HOr8rOSkQMyM3Vh5MG+AJujMTyF55C7w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <5bb1afc3-6de4-4b78-85a4-2610f5f1d001@suse.com>
Date: Mon, 4 Dec 2023 09:29:35 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 16/17] xen/arm: vpci: permit access to guest vpci
 space
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-17-volodymyr_babchuk@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231202012556.2012281-17-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0148.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b8::13) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DB9PR04MB9749:EE_
X-MS-Office365-Filtering-Correlation-Id: c16fe335-db17-4a8d-5bf3-08dbf4a32569
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	e8YZ46veYiofKKu1bGf9Cg9JD0HnFVTnGvRMcxzIp4uups72h7O8W29uLd6/i5B41Bhh9EuondvaCgFQu+rU5OYajK86BsqRG9/1Em9i5vISKTM0dTY8Vv7jihCHAdwIJ2vJHnQ+GSWZJMxa3KYISwiR+2+g8boPbRVA8j9twRxP0wKUotOoz9zURHPJ8u8JDel9VLGiLdETzW5rqsxeejdzebkmZRV8b3IDyp+rboVOlpcf3IQcjyoqiSv9p1CzuRYxIMupBzVx1ukQ9S0cCaKX00tN+Jd0sBotpzGMehS1OIPTML+gQ97lOt4fo8y8MojlozhPuXIcA6YPKge8ilmRtJgQwYfr9v3aKbBybQ6ouWYSCt77P4LE8y8N0eyGAhtYSaZHeJEDYXHsMMpYmK/7ySXgr/47+WArmHDttiUMA4JuwXHk2o0tsFROmDyBqgKhOmddfkDnn1Yz395yRZnGlQRhqjgIU7t+NyrxRqi7obozl6Gt7XOPUsgJxQEee3rmLT8isUCUWQqXxpefBr0Rs/9epW1BCJX4u30lhTT+uld6GVzVfLpCIG0ENlMAEbjy5IB2kcrG7L45LkTLTVHyn90lTw+MzMy8PokniR3zjRQYcQCjXXVpolQKgIA6w4DTvnvYUbnP/coqV1+ZnA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(136003)(39860400002)(396003)(366004)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(36756003)(41300700001)(5660300002)(2906002)(4744005)(7416002)(86362001)(31696002)(2616005)(478600001)(6512007)(6506007)(53546011)(26005)(6486002)(38100700002)(8676002)(8936002)(4326008)(31686004)(6916009)(66946007)(66556008)(66476007)(54906003)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZnJEUmRzSUd6ZE1mQ0FTeGM5RWlNckQ1R2s2WGtMWU1XaVQzendka0M5aWhQ?=
 =?utf-8?B?WURYeXVxRVIrQkpvdlFpcW45QVJacjBWWkJqUmZPRUJadmpSRlB6VUdRdzRK?=
 =?utf-8?B?MlBNQVJ1d1hWWm9lbVZwcWl0YUdiMEVsTkV1M05JMFJ2amQ2UERKdUoxcHFv?=
 =?utf-8?B?UWxLa3dOZGRWVXdkLzJEMVpUOXJRNlJxQ0tBY2RzVTN2WUJBbzA4eHBRNjVt?=
 =?utf-8?B?MlhLY2ZrSEd1b0t1ZEVLR01HMm5IK3dJbHRScG9GMDJoTmtCMTY1Z3VJc1U1?=
 =?utf-8?B?VmVtZ2F1OHdEWTlqRjVTa3ZOS3BsdXJ6eTlJb2hkSDBXTE9XY3lxckpUSXNo?=
 =?utf-8?B?bWthUGpkcVUrZmJ2VHNGRmI1cWovNGtsa0hTbmw5RnVScXlxVjE1TjNNdy9l?=
 =?utf-8?B?c0lHWTdhdHJDS0hIYU1rdGN2NlFBSkJWQVhvTE5rMUJzU3hkc015UVFGOEdX?=
 =?utf-8?B?Y1NkaHhKSlJ3ZGVRR2FkSXVJQUpQTjZxWmpFV2Y2TStINDVjSDU4bEhRUGVW?=
 =?utf-8?B?QzNNRGlaWXBiWUhHd2xRRktBSFFZV3NZNzEyUjBRaDZocGYwc0p2dkN6Z1Mr?=
 =?utf-8?B?SSt5dkc1Zks0aDkzM1lkOWZOTHVGa3UwOUloQzZVZ1ZoSElMMUp1T2hHcVpy?=
 =?utf-8?B?cEVwNFIzRURtU1hjYlQvbkNvbjRqMlFPZEErNzBMU1djc0szN2ZyMzRhUmxE?=
 =?utf-8?B?Q1NhdHhsSTN6Q3dqRDlSMWlaMk5aN2JDcDd1Nnk2Q0V1ak9qL0VsMmhVazBx?=
 =?utf-8?B?d2tOTHVheGlCVDl3bTBHb0lVbG1TdUtGcloxVXZVTXQyVDN4emcxbnljOW82?=
 =?utf-8?B?UU9vazI5V3RYZTlkeTNrd09tK2V5OEpTR3d0VDAyaW0xanlIZmo1RVoydnp2?=
 =?utf-8?B?QUsxVUlZR1BBaHRhVEkrZFp2TjdBRVZrVGFndnRGSmpOMk5FU2M3VnFqNjhJ?=
 =?utf-8?B?MUx1VTdSL2U1UnFJRUtKU05DQ0NjUi9XY3F5T0NIVTJ3cXdPaGFiRnRNVHBT?=
 =?utf-8?B?dHU3Q2RmTXN2cklSZWFXVGtFN2xEVFg1amN4cmM0S0pjRzBISUFPVjdHaWFu?=
 =?utf-8?B?SHVNb1NJaWtMSThRcXBydUZpZndweDRqekxwbDhHeVpSekhpb0VSbUdUUHVR?=
 =?utf-8?B?cnk2WFg3K2gyM1ZIdVg3NHVMc1E3d1FnYWp0MFR2eTFkTmNSVmZ6cncwMDd0?=
 =?utf-8?B?UUYrQTA5RUJYRnc2d1Y2dDNrWXRRZy9qNi9TZ1J2ZHBlUXVWNkVPVWJIeTY0?=
 =?utf-8?B?YStZWXlmVFI4MTRNb2UvQ1NLb2VCZzdVVllUSkZ1WWNRcUJFMitTMll6Qktm?=
 =?utf-8?B?b3pkaXAzNFMxRmxpZGhFN1Y5WHROZUZUY1lKbWMxaXM5Vkw3ZGZqVkVzM2Nv?=
 =?utf-8?B?RHVDZit5YXdxSjlBUHZ3a0NNWWd1VFdkR2orSUE5M1hRYlhKWlFxTkNUREts?=
 =?utf-8?B?bFhqZVJsbTNhYVZOczBoZlIxbFVsVWJkMG1IQm05VzIvTXhMSHpKOTRZeFRp?=
 =?utf-8?B?QkU4RVN4YzhaWHdwSm9CV0FtVElmTHhWVHVaM1d5VkNENk9qbjJmcllvakZM?=
 =?utf-8?B?REFSbFIyRkhFbGRlMGk0NDBySWRjVVp6cGUxK3d3RzRhN2taMk15Qi9lT3hW?=
 =?utf-8?B?YWV0MW9VNS9IT09FZXhPeWIyMVpxVytOUHRVSHdqY1dNUTNvSU1naFZNQlBL?=
 =?utf-8?B?bGtaYnVzWitMYVdBNTJqaFBvV2hTU3orNFZRS0VOQ2dsbktWZW9SNmNWWm1j?=
 =?utf-8?B?NXFJSzhOZDVSdmFZVU5uNEwwM0lPVkFWdFdYbzU5VFM0STBDRmV0ZlJJSWlW?=
 =?utf-8?B?YUJXWXNkZExOZFRsRUk4aWRkRmhsNHBHa3ZpSTBjWkJTTmdoYVE4QXVEbGVF?=
 =?utf-8?B?MWU5bjdrdGZmYkNTVHFBSzVMd0d1L2MrcUN6NEFjaWJTM09oajVNaDUrV0pR?=
 =?utf-8?B?dGNzazVVaDVid1dxWXlTVEg2NWRvby8wUGdzMk5FNHR3ZWkyM0QwbDFTa0FC?=
 =?utf-8?B?Z3pCUjNheWhrZ0Fpd1pFeXlPQzdkdTJwVGFjdjdETGdEeStVa3BzRW9iOTNp?=
 =?utf-8?B?dHRxVzdTWEgvdVJKRGpkUkdLWWM3ci9hcEw1MElVdDhKelN2SlFSdUNxMUVN?=
 =?utf-8?Q?ktAEbahNRGHTdPMzZXbUvoQP+?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c16fe335-db17-4a8d-5bf3-08dbf4a32569
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:29:34.8723
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L3NTNi4zFLbHW9DbOocbGP9a2pg2F+eC80bMHuUxojUlvTpoJLr2RTEZVB+nWsTPH6dvVHXMjsxbQRlYtO5FgA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB9749

On 02.12.2023 02:27, Volodymyr Babchuk wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -695,6 +695,9 @@ struct domain *domain_create(domid_t domid,
>          radix_tree_init(&d->pirq_tree);
>      }
>  
> +    if ( !is_idle_domain(d) )
> +        d->iomem_caps = rangeset_new(d, "I/O Memory", RANGESETF_prettyprint_hex);
> +
>      if ( (err = arch_domain_create(d, config, flags)) != 0 )
>          goto fail;
>      init_status |= INIT_arch;
> @@ -711,7 +714,6 @@ struct domain *domain_create(domid_t domid,
>          watchdog_domain_init(d);
>          init_status |= INIT_watchdog;
>  
> -        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;

I'm pretty sure I asked before why I/O mem caps' init would be moved, but
IRQ caps' would remain where it is.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:30:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:30:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646589.1008993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4Lq-0005vV-2D; Mon, 04 Dec 2023 08:30:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646589.1008993; Mon, 04 Dec 2023 08: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 1rA4Lp-0005vO-Tp; Mon, 04 Dec 2023 08:30:49 +0000
Received: by outflank-mailman (input) for mailman id 646589;
 Mon, 04 Dec 2023 08: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA4Lp-0005vH-GQ
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:30:49 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on2062d.outbound.protection.outlook.com
 [2a01:111:f400:fe12::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c442eeb-927f-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 09:30:47 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DB9PR04MB9749.eurprd04.prod.outlook.com (2603:10a6:10:4ed::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 08:30:44 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08:30:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c442eeb-927f-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=j3wUA0Gttmc8rXIIChAYt5KNbjeLyqgo7zEBDHA+LYnKqS44TafKjBumWBcsoNcRTy+MVQAwHomn4nfr8c3Q2bkYFBf6l9pFXRIH8bSei+E8ve5vJjSRMcgexH2Sefj4dR5rcSdHR31EbJVSig7ji0Kq1POEnEroFuCipvlG8dlrBEf6EBQKS8GR+bboritfVIZDwSa1v5/8rlKuLKi9wIxuUI+0LYHPlXez6hjgg/BljC2wBaKAYUrBF+lam7f9b+i7AvQ0a6cEmVJ6qsMW/CbRgc10aUih99sU9R8NDxQesC3jj2VVoEVNDYv5VEz5SV2T2hiyD5uYVSOWLuAYag==
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=fIfMEqiGeFIWeBM6GC9hwAQl9t51sfAiDBlYpbS0q0I=;
 b=RRwoLzvBW7m1WlU2ghyU+EgN64ABQ1l5H0Ot6IUEUVR4UQUHlDW1Qre9zhLHyWWnEUHNZ+vAk54EKWLCZ1oAnC7i2vYinzQPlml3feQHYTWTl2VXwQU9VVGS21RaWS6lGQIBSUKk61fud6IYsemYpj1XwaaanH4WSXJbp1Uepx9EG5OMqiuIx/kwDh4G3HlLflYjufzg5HpPo8Z9RnZVFyD8TRbB/p0CBB1/bpA8BUcsCiwf+fLm3vhQ8rJcYyz7zAEwgdYPmJgyHrCpQSGyJrqwAlZgl3IFC2zNXUo3+Oym4dTtZ3mvjqf6LfW7rwSKHIFW5BHVtjP2uuNMFW858w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fIfMEqiGeFIWeBM6GC9hwAQl9t51sfAiDBlYpbS0q0I=;
 b=xWgQGYN15JjExd41dHobF1Qly4IhOZ6IutJ4zjZdYNm9w/hqC7l5uC7eDIu9S1kHcrdAkePq00LJrI+wnU1LzbJ4frAPdU+v/69qDZ0rYd+t4QeiTx4DPnhOkG6mZu7aXhdP1DElqZMSFCscSk04tzRNje+ggP4RMMaogyWPoeTH+ZoIePHjz2rgYItn11BeKNhJgiUNZTcKgfcuSAeaoXBxR5Nv7/1by2mhYNsBvEsY0qT5Gr+cQrLviyRHC2oFU4rsqDH6BWnqkHp26W+GLrU7+rrGhjgcUV3VOALwX1IbUtQ7iv7MpYZ7zGrL20jNodCaVVCnkYgObLDgo12c0g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <11ee03e0-9de9-4179-bb4e-4ea2510122ef@suse.com>
Date: Mon, 4 Dec 2023 09:30:47 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 06/17] vpci/header: rework exit path in init_bars
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-7-volodymyr_babchuk@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231202012556.2012281-7-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0148.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b8::13) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DB9PR04MB9749:EE_
X-MS-Office365-Filtering-Correlation-Id: fd7277db-a8dc-4426-8822-08dbf4a34eca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	3Ybuf/lyKD4TQJhQy1eWuIoZ9fthlzq+s6FOAGYsjEHrMqfrLKfXi5N7jtVu6sPBq9JVlGLcdVaJjLrkA4JpiKcj51IXlYsMZkwIwGr6FjiBJL4Qxm3MQlYPqzHpARwJh1/Z9GyJqK0HT4sluFiEvz04EpiPqtgfm2x1GZRnHy41fF5UkA2CzBMoGEsFZASTJQyks/5BDFNubFM5jD7LfSjlHks/itCQGARJCnNgZQgo8xiPoUpU4pnqUkbTMeHi/X6VIYE4Bsv0U7uR+QWvmTwpcFEZZ3Ns8s4644U4laMqixGqCeYgppQGhPDyGosowCskFGi7SxbKqoCOfQqEt5jHlUzuEN1g3i4UN2VZUVWoUvs1l1KoDvLyvu278vi3RA/1GDlEmKCJr1Rra+MVcDqA5nVawn80X34+m+5MCduEgXhPkfJcV6bNQu2to7CiVmrzogUW9ROVOL9sZi55biIxtfXWJ29IC+8yM4nMY9LVP9c0ycA/rfBeI9Vdtw1LNOo/a+hKygY6RE9VN4a1x+1cxDqr6ktGKtgdFft65zExd5L+iQUzPoWoQfdo84OmUDBVQspzeQSOsQ0gskMaLoVpg0rzdnXqQgcqkmY+Ec5Ze0LkucVC9mkS0+QNd4hBg3PAZVFg7NjZNgbUMb4K2w==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(136003)(39860400002)(396003)(366004)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(36756003)(41300700001)(5660300002)(2906002)(4744005)(86362001)(31696002)(2616005)(478600001)(6512007)(6506007)(53546011)(83380400001)(26005)(6486002)(38100700002)(8676002)(8936002)(4326008)(31686004)(6916009)(66946007)(66556008)(66476007)(54906003)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NGh5bjJYZFphTkgrckU1dUFFMG1Hb0I3NXRNdUduYVE4aThBUnNhOEYyT0lM?=
 =?utf-8?B?cjliMk1INFNHSExHb3Z6Qzc3aVI3QjNUZEVqNEJaSFBhUHRzcWJUQW02VnRC?=
 =?utf-8?B?MjI2VjJlNzR1Mkk2VE9wOHNWWFpVMENYblRJeWE4Ky91SHNRWUtYSXduSHBS?=
 =?utf-8?B?MFJTbERoZ012aG95TzV5WjRUSk9YTEJIbjAxYzhUdkJibDRlL241UFZjNUQv?=
 =?utf-8?B?dnAwdmZXemZDenpOVUxwWGN1QnY4TXVoMkNqWWcxRXpGK09RTGdUOVFmVTNl?=
 =?utf-8?B?Nm5pL0ZkVGZzQmJCVjZkeCt1THVpY0VGZjAzUTJnYmdqa3BUY3J2Y1BybEo4?=
 =?utf-8?B?Y3FuVFJ3cnlyK3Bxbkk2VXhqMkhVb21ManpSbUxKNmJnanNVNlZxdkY4Q256?=
 =?utf-8?B?Q0hrdFRZQ3lIZHRiQTNWS1pYR3ZXZHpqek01cnRDZG9SUGpjaGMrWkVyWDVN?=
 =?utf-8?B?ZHRuZUZjVHdYd1dQYjJFOVpKK2ZYQzl6NC9zeWtXWnczdFUwMGlZYyt2ZUd4?=
 =?utf-8?B?VGU1c1Z2bkx3UUZ4eDNRQm1JRmlva1d4T3B5WmtaRDZIRWo3QlZQM2U5NzFj?=
 =?utf-8?B?a05aa0xiNzlib0gva1YzL1pqME5McVVzNXU4Ym16bmZtTE03WFhpYjlOYmdN?=
 =?utf-8?B?dHVUOTRvdHhQUVV3NGtaZ1BKbnZScU1MRjlSanJzb1pGdG4yUERVdEJkSi9B?=
 =?utf-8?B?ekRuL0hDWXZ3WXE4ckFCSWxDUHlUYlVWdkNxYUNFR3VMMjNUOXloOTBLTndx?=
 =?utf-8?B?K04rem8xSGliVHZiNnh5M2FmazFIUzYzQkliZGJYWTE2cnIrNTgwK0lYNHUz?=
 =?utf-8?B?TjRzZzFpaExlUm5zVk51S2ZDT2JHQTZjK1Uyb3RtM1BJbkJ1dU9vTS9tRy9G?=
 =?utf-8?B?YlNCZUREUHFsano3Nk85L29VVDZtUXN4d2poWVY1MEV5SStwdVBGNHFzZzBu?=
 =?utf-8?B?R1dycXBrKzhGRFN0VmlRZDdmRUVJL0svcnZaRUhHL21PQzhnZGhBeXFzRUpM?=
 =?utf-8?B?aUxtR3JIVHV5Nm5vTkJqcG9obUtLaXJieDY5bG5IRkF2ck9XeVptUUxaZmVT?=
 =?utf-8?B?MFVsWm1Rd1VtVnk3K3B1a1JTRGQ4Q2EydDZ1T2xaQ2FRMmdyZ25rQjBZNUk5?=
 =?utf-8?B?bFRJTHJPQ1lHT1paMERKYVh3djZPVDdPUGgvbmlJS3lTamZoVjRVbWY4M2Ft?=
 =?utf-8?B?djhOOEpaNkpUK0NkbFJsay9kUjJyUGFrMTJCdXNicjZtaHNtTEVNWkNTNWE5?=
 =?utf-8?B?TDR0NjB3QXNJRXNzUEFmd3RnSW45THBLN2J6Q1ZzbCtQT2tUenZETVkvc1Zv?=
 =?utf-8?B?bEdJendyOUFmOFNPOFdsTEZtdHZ4aGlBRnBNbmhyYU9nZm5hTWMwZGY3VTdW?=
 =?utf-8?B?Y0RkT0xmSjdPUUJPRm9kaTJMNGlxQ2N6OE5KbFp0U1JlU29iK2k1Wm00QStU?=
 =?utf-8?B?TXM4VDcvS3BkSGxESUFXeDV0Q0N0MkFoaTF6TnNCQTFZNDJrVzdaUTZQL1I5?=
 =?utf-8?B?bFJQTjRTaWFCeTB6eHZnaGJ3V0JVVTlXMXpYZmRUcDJyOXZjQUVSd1RHMTkr?=
 =?utf-8?B?Rng5YURSUEN4d3plb2hWVjBiRU0vcStZSXBIOExKS0dkN28vK3dvWitMSVpB?=
 =?utf-8?B?M1VWMnF5Z3czVFhmVzZrUExuVkNqUWZpNTNWQ3gwQ09PcW1LRW1jVC9qeEFv?=
 =?utf-8?B?NGljWFhRa1BGU0JkRmY5cGJXalZ2R1M1SFllQ0p5dlcyZmhVL21MUjNjRkVK?=
 =?utf-8?B?cHFvRkI2czFvbTRLR05TaTRZZEVNVTBsNm9tTGpMbVE3SXp1ZC9QeFlPdmJS?=
 =?utf-8?B?Q1U2cTk0bkR6dEpiYTNuWk5rdjYrb1hnMVh4UmVsa1hieDdjZkh4enlZQVJB?=
 =?utf-8?B?QXA5SUJXdmw3RUszVS82SGpPMlN5K0EzbGo3SFAyekVyd2c1MDdvK0ZFdzN4?=
 =?utf-8?B?WCtJSGoyRy9PY2t5UVdHSGVSZUJZUG54LzJRbHZMYjlyWklYVXRMVTJuMkYv?=
 =?utf-8?B?aUJmWXdXaTVRODFXSTRJVFNXN3ZGWGdMckRhWHJLdUhqUWF1Mlp6NEt6ZDk4?=
 =?utf-8?B?TFBMSVBTQUNQdWhRYkFwTm9kZndEeDB0c3VzM1ZpR2xIbmlnRXJIcmJkRVV1?=
 =?utf-8?Q?Aum4FSNEmYivxz29cOV6fd0aB?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd7277db-a8dc-4426-8822-08dbf4a34eca
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:30:44.3029
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: olE0Q2uTQVpyvSTh9p0frXxuRy/zIm6wTJ4AGQDFJm84C9eqbhezzmAAUhts4FCf8skUmoN05CDziz8lV85XPQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB9749

On 02.12.2023 02:27, Volodymyr Babchuk wrote:
> Introduce "fail" label in init_bars() function to have the centralized
> error return path. This is the pre-requirement for the future changes
> in this function.
> 
> This patch does not introduce functional changes.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Nit: Tags in chronological order please.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:35:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:35:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646594.1009001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4Ps-0006Xs-H7; Mon, 04 Dec 2023 08:35:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646594.1009001; Mon, 04 Dec 2023 08:35:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4Ps-0006Xl-EZ; Mon, 04 Dec 2023 08:35:00 +0000
Received: by outflank-mailman (input) for mailman id 646594;
 Mon, 04 Dec 2023 08:34: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=LJlD=HP=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rA4Pr-0006Xd-Ea
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:34:59 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 015ab69f-9280-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 09:34:57 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 97AD24EE073D;
 Mon,  4 Dec 2023 09:34:56 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 015ab69f-9280-11ee-9b0f-b553b5be7939
Message-ID: <5683be1b-5eb9-44a7-89a7-70a71991f2f8@bugseng.com>
Date: Mon, 4 Dec 2023 09:34:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/3] automation/eclair: tag function calls to
 address violations of MISRA C:2012 Rule 13.1
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Doug Goldstein <cardoe@cardoe.com>
References: <cover.1700844359.git.simone.ballarin@bugseng.com>
 <fc3e04e5d0432b280110414136f0587a1433d9b0.1700844359.git.simone.ballarin@bugseng.com>
 <alpine.DEB.2.22.394.2312011917030.110490@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <alpine.DEB.2.22.394.2312011917030.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 02/12/23 04:19, Stefano Stabellini wrote:
> On Fri, 24 Nov 2023, Simone Ballarin wrote:
>> Rule 13.1: Initializer lists shall not contain persistent side effects
>>
>> Invocations of functions in initializer lists cause violations of rule
>> 13.1 if the called functions are not tagged with __attribute_pure__ or
>> __attribute_const__ as they can produce persistent side effects.
>>
>> Handling these violations with  attributes is not always possible: the
>> pure and const attributes may cause unwanted and potentially dangerous
>> optimisations.
>>
>> To avoid this problem ECLAIR allows using the same attributes in the
>> -call_properties setting. Additionally, it adds the noeffect attribute
>> with the following definition:
>> "like pure but can also read volatile variable not triggering side effects"
>>
>> These patch tags some functions used in initializer lists to address
>> violations of Rule 13.1.
>>
>> No functional changes.
>>
>> Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
> 
> Ideally we should also list them somewhere in a document, maybe
> docs/misra/deviations.rst? Or a new doc? It would be best if this info
> wouldn't only exist in call_properties.ecl.

They are not actually deviations, but information that can help
document the code: I suggest creating a new document.

Then, ECLAIR or any other tool will be able to retrieve these properties
directly from this new file.

If you agree I will do it in a separate patch.

> 
> But give that the below is OK:
> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> 
>> ---
>> Changes in v2:
>> New patch partly based on "xen/arm: address violations of MISRA C:2012 Rule 13.1"
>> and "xen/include: add pure and const attributes". This new patch uses
>> ECL tagging instead of compiler attributes.
>> ---
>>   .../ECLAIR/call_properties.ecl                | 22 +++++++++++++++++++
>>   1 file changed, 22 insertions(+)
>>
>> diff --git a/automation/eclair_analysis/ECLAIR/call_properties.ecl b/automation/eclair_analysis/ECLAIR/call_properties.ecl
>> index 3f7794bf8b..c2b2a6182e 100644
>> --- a/automation/eclair_analysis/ECLAIR/call_properties.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/call_properties.ecl
>> @@ -73,6 +73,17 @@
>>   -call_properties+={"macro(^va_start$)", {"pointee_write(1=always)", "pointee_read(1=never)", "taken()"}}
>>   -call_properties+={"macro(^memcmp$)", {"pointee_write(1..2=never)", "taken()"}}
>>   -call_properties+={"macro(^memcpy$)", {"pointee_write(1=always&&2..=never)", "pointee_read(1=never&&2..=always)", "taken()"}}
>> +-call_properties+={"name(get_cpu_info)",{pure}}
>> +-call_properties+={"name(pdx_to_pfn)",{pure}}
>> +-call_properties+={"name(is_pci_passthrough_enabled)",{const}}
>> +-call_properties+={"name(get_cycles)", {"noeffect"}}
>> +-call_properties+={"name(msi_gflags)",{const}}
>> +-call_properties+={"name(hvm_save_size)",{pure}}
>> +-call_properties+={"name(cpu_has)",{pure}}
>> +-call_properties+={"name(boot_cpu_has)",{pure}}
>> +-call_properties+={"name(get_cpu_info)",{pure}}
>> +-call_properties+={"name(put_pte_flags)",{const}}
>> +-call_properties+={"name(is_pv_vcpu)",{pure}}
>>   
>>   -doc_begin="Property inferred as a consequence of the semantics of device_tree_get_reg"
>>   -call_properties+={"name(acquire_static_memory_bank)", {"pointee_write(4..=always)", "pointee_read(4..=never)", "taken()"}}
>> @@ -104,3 +115,14 @@ Furthermore, their uses do initialize the involved variables as needed by futher
>>   -call_properties+={"macro(^(__)?(raw_)?copy_from_(paddr|guest|compat)(_offset)?$)", {"pointee_write(1=always)", "pointee_read(1=never)", "taken()"}}
>>   -call_properties+={"macro(^(__)?copy_to_(guest|compat)(_offset)?$)", {"pointee_write(2=always)", "pointee_read(2=never)", "taken()"}}
>>   -doc_end
>> +
>> +-doc_begin="Functions generated by build_atomic_read cannot be considered pure
>> +since the input pointer is volatile, but they do not produce any persistent side
>> +effect."
>> +-call_properties+={"^read_u(8|16|32|64|int)_atomic.*$", {noeffect}}
>> +-doc_end
>> +
>> +-doc_begin="Functions generated by TYPE_SAFE are const."
>> +-call_properties+={"^(mfn|gfn|pfn)_x\\(.*$",{const}}
>> +-call_properties+={"^_(mfn|gfn|pfn)\\(.*$",{const}}
>> +-doc_end
>> -- 
>> 2.34.1
>>

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:36:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:36:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646597.1009012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4RQ-0007KX-SL; Mon, 04 Dec 2023 08:36:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646597.1009012; Mon, 04 Dec 2023 08: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 1rA4RQ-0007KQ-PA; Mon, 04 Dec 2023 08:36:36 +0000
Received: by outflank-mailman (input) for mailman id 646597;
 Mon, 04 Dec 2023 08: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA4RP-0007J6-2Q
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:36:35 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on2061c.outbound.protection.outlook.com
 [2a01:111:f400:7eaf::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b01e270-9280-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 09:36:34 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PA4PR04MB9415.eurprd04.prod.outlook.com (2603:10a6:102:2aa::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.22; Mon, 4 Dec
 2023 08:36:17 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08: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: 3b01e270-9280-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FI95pEqQg34DDgVU8WzeSjF+PekqFek/lA7Q8iS7/480ME3grcuftnMBSesjH/lVRMm3XREOw1rN8zHiykVvF69p8BEPYHHoCZBvVUT5JDGNXlqyQn9Vj2m0e+93lvSeA2cvlTIoxiw882HOH2XsWFSLbOdeZiiCFYkzLmePU/EOQicN53B/IWSfIj3HbVcomYjRz7tuIWMwAr+Y8dnFY8ovkzBrivuBFA9xF2R9LXJ2LvIpAUYr/mWw7aNv1TEB55P/zcNPZJLftgxalquI76EjYSY2wmB3LtdNgpvsoqAE+RL16QBzUwTWjxV7JQuh7Hv3X0GJNuzeZtH0iajo2g==
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=Kp2R/TEs7nDQayr5C6WP5aqTcA9k0EtH0HF+IZ+keuo=;
 b=ifPkFoBVEM3ZknU6Pqq4CN5mP648FnCaAzOJA1GWaGHO5sAQJznhDTPzcidH8T/n80qwY+2I+gyebIXmb5aAm/nQdnleDL8XmnVqvz4TthhIMAJEoFVwnjqJv/2xYit8LIwXRn+4P5BTHXbERCqhjndVubAzWYC+gbRQjIln/sPdNTUhqschNh7PZJmeM5+FOoZKSRwnTKsK4d2nJsJxu9+rKsi27xQrBTflVo67ZWSv21aGdOi3CMdlFPfQrV7nHlsg8B+E1gniV89X533R5wld6evoFra48GtjjNBvgNGzvcT/vIHsIvK6SI5NS4+8BfuTbyfxrt0DZx0+QKZk9A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Kp2R/TEs7nDQayr5C6WP5aqTcA9k0EtH0HF+IZ+keuo=;
 b=r/syXcNcIL63pWSbbr+Ircpo6zQ5m+DAfNRW3PU1bdc7BvL+K10i/0pEVlapMSknRkgHj9HQDHGX7muD6U/Ao67cfpRdd9Er5ZV+7RvgDKBEgO7ny3Ibv7+DB69K//5RFaa6v9MJWOz8LMeLpsRh7IrUnleS2jWYJFpc5vilmP2O+t45Xt7AJpkJ1xztphStmlv0T3SMajuhz7uNP/h8pwRplTsmpADcyAoPjZDes/8iV4G+UxQsij5Bm3LPfWgKqF3fJxpMjWH9XjLktcaZwXorjb4FN9pP7H1k2l5LCfJjDepSGRHZat7HCtGai96ZUBm+g5/PmKbXCCMvAftzrw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8d44c8f6-aa12-4aa7-996d-68aa50dbec33@suse.com>
Date: Mon, 4 Dec 2023 09:36:16 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 09/17] rangeset: add rangeset_empty() function
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 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: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-10-volodymyr_babchuk@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231202012556.2012281-10-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0265.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e8::8) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB9415:EE_
X-MS-Office365-Filtering-Correlation-Id: d7419cde-9727-4a1b-e157-08dbf4a413b6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	XdYwC7Vm8Uswm6O9AR9yz+wx+mkYhKQx8U1RK9N7yVNDxZqLuH/DpV+y0MyMwCHU0/0tIHpr5k653T3yLi+4ievFV5RpQp7PJTii6XHdFjSYICr6Mji6RS09y4nmPw+OEzOSlqdRb3aBigkM9z1GxCU7os3SYQ7DkCrnxKcBk/qupnjOoeO7duwdTFa1BXSB2/8RtS1eHx/rKxfvRlP6zyCNCUeQ1HSuIMlxikjZj7+fAZBv12KagqRbnJ4zArWVtvgPxfdG5xg59MAAqdsuFfr4AI5PT2IVgnm462AStWMMeISOouOEGoABsfF1s5rgB55Dzs80cUHn72Mkbn6gCfvV9UuZrsC/q5+buh+1hnIhLPXKN9Cd/ns0jWwHIok85qTU8vNUN1tIf02qkHDekhJsyxWu9C9Ho1oXLTh7Of5vHflC4iFa2HZwZno8HlfJnVEDDIrtWJdxE+Xh3JX/SE1KeSfZ6CRF5RqRW87yE6XViwFVwJNrt7U3RVZREDYNgIusSrBEeFNR829tQ/TIBWI0xVA8l3ST7kMbR+RYT3nYZBgYkYE+sPOZLfAF3p9++U+Gr9PqHCm/F0frE5s3IfYB1wgPPiMZB5NT7SLrRTK8gtY+dbS95KBFL3iYSeRejjcfAzyp4zXa3BrujWqggQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(376002)(136003)(366004)(396003)(230922051799003)(64100799003)(1800799012)(451199024)(186009)(31686004)(2616005)(26005)(6512007)(31696002)(36756003)(2906002)(53546011)(86362001)(38100700002)(66556008)(5660300002)(6506007)(41300700001)(316002)(54906003)(8936002)(4326008)(110136005)(66476007)(4744005)(66946007)(478600001)(8676002)(6486002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QzNzREY4WUxzanhlWDBjZG1BZHlkeExYNGVpdHpQcTNZV3R1UUc5UFF6MzhR?=
 =?utf-8?B?ZUFTbDVkNlpwajVqMEhnZnZlUTR3eUJ0VENIaFEvZjJYNzR0UjFKWkNJNjE0?=
 =?utf-8?B?d29LaHZCZWJjYWpublRRQlozSHo3VGMzMWoyRGlMVjRQS2Q4L2wwNDFXYVJH?=
 =?utf-8?B?MS9pREgxWjJnRVBqRjJlMmY3dDFCRE12TUllcm12WTVDNUdjcUR1SnhpZEVD?=
 =?utf-8?B?ZkhvbG1UQmF3d2N3VzFIRFVwSkdkalgveE1ia0YxMnMvdXVkNFNyQTI0L2p4?=
 =?utf-8?B?ZFF6cFd1M1pwRFJPQXhJamkwQWhHSDg2RmJqZDBLMGtOZUFYMDAyWFkyYWtv?=
 =?utf-8?B?S2gzOFJRSWFJRVhFaHFXRWk3elE2SXEzNHJCeGorU09BTm1pWkR0S3M1TGR0?=
 =?utf-8?B?VG91Ujk4QnExUlJ3ZFMycjJIeWJiL1FZRmYyMml2azNib2VhbnpQR3dMQTMy?=
 =?utf-8?B?VmJTQnRYQk01TlhiNDJILzRqN3RTMHY5RE5IT0JtTDhjSFN2S0EzUC9JOVkr?=
 =?utf-8?B?M0g0TmVNeXNXckdjcW13d1RXa1o1WHVvT3BRRmNoZS8wSEtqNGxmK01aK2Ew?=
 =?utf-8?B?dW10cFBlYnFidHNuVUVCSGwvQ1NJT2ZHVFRjeWNSS1JBa29DVFRreDMwRExz?=
 =?utf-8?B?SldVWDArU052S0t5ck9IK0xSSHNPRm1VUmdSM0FDcTJ3SEwzeitFdFpmaU1G?=
 =?utf-8?B?MHUraWJ2VE5XYjB0SFhpSGtFVjJUMnRkY3VZZkRTNUxaUHlnQ0VzbDhOM1JV?=
 =?utf-8?B?ajRpdmxlaVBqSzJtNUQ1SjU1aVNDSWpGTElXSnVZMUFQY3M2N3lXM0VwbEZQ?=
 =?utf-8?B?K092TXZmZklBdWZlWVpNcmh6dkE4NkUrcm5CTitLZzlCdnpsMDkwMjhDU1c1?=
 =?utf-8?B?VEVESk03N0l6UHJ5QXlSSldrL2dyWmI3UVVzTFhBdUF5c2tKS0tFMWd5dkVv?=
 =?utf-8?B?b25QNzVvZ0dSUlFBZXhlQm5ZRUZuV0czdmhQR1VzOU4yeVhPbFk5OGxwUWNY?=
 =?utf-8?B?UUNjeVRwc3o1YjFlWVQ1aTk1NjFrcnNPeWRrTW1hSmh1aC9pSkxKcEFQSzdl?=
 =?utf-8?B?eGZKRVdaM3c5bWtDS0VXZmQ0T09tUEtFNzVGZWVKSm5pam1jVFE0bmZQQ3Bq?=
 =?utf-8?B?eE9RYjREdndBNzZFVEpZOUhlVDVaQ25nWWFrQ3JsbmVFdHQ3MnUvbnRkQVB6?=
 =?utf-8?B?c1ZTQk9sQnViUTN2MkFJQ01LdlYxSFZyQUF1N2xkd2pNL2Y3UXhKV1hOZ0w5?=
 =?utf-8?B?bHQ4L1RHa0NRdzRlTk5MazVSa29neDQrU1FIb1U1OVpETHpoM2tTK0IrZko5?=
 =?utf-8?B?V1pveVRXRlNnTzhjM3JtaFQvRlRsQmxkRWZPQlBIS29pME9tRVA5dGZzd0JD?=
 =?utf-8?B?cUJEeGJ5Q012NWZuRmVlZnZTcXdrZzhMTWhCSmxna09SRVQ0cUhiRGNMaTMy?=
 =?utf-8?B?YjdxNXhrU2t0NTFLdldobGZEcC9TWnZBL0tEY2c5QTdqM04rbm5zZXhtOUZ2?=
 =?utf-8?B?VWR0ME91SDh5V2hFdFUxeUp0Z21Yc2Zpa0pST0N6a1JBK0JwcWdKdi9HTkhU?=
 =?utf-8?B?Y2t1Nm1qMitHY1NzTkZuakFUMHRqWmFGbUI0aExmRERYRloyTDlzN1ZOSm5h?=
 =?utf-8?B?emZqeTBOT2w5aVFvdVhTQ1lPUWVwUS9zc3VjbnY0WEV6VzluNFdYVXdkVWJ2?=
 =?utf-8?B?a0NadVpVSFpYU0VLNEZJZmZUQVFDb3IyZHBZR2F1T1BIZlRiaFRZN2tpYnBX?=
 =?utf-8?B?WlRLaXZtMm1aU2lsMTVQeGVVeGVWWE1DZHhaK093d3AxeVBFdmdZaFhFdGRn?=
 =?utf-8?B?bWtTTzNmYjBrTkhnSEpzK1JGK3I1MTQ4TUJYcktLOFVtWUZYU29ybjRSZlhp?=
 =?utf-8?B?bDdxSUZIZ0RLWG42ZkZLWkg2VFBJakp0d0xUb0FLbUE0dGkzMzloMUFkRHNP?=
 =?utf-8?B?UDFVQlhCQVAxU0NuaFFRTExvTjlrM3dkbEtCUUhqdEY3STVzVTRtU3N2cElW?=
 =?utf-8?B?MFlMSTh1UUpJUXZmVExHbWJtbEx1NEk0TFg4NVpObFhJS040ZWplL2prR0Z2?=
 =?utf-8?B?aDRNTUNiYU9FUEJLV2M1MmJaNjdsVjVxSkFxdG5XVVRPSmRtejVMVkU3Tzkw?=
 =?utf-8?Q?DhP/9voxQ6QValpbgwZ8jkB0z?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d7419cde-9727-4a1b-e157-08dbf4a413b6
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:36:14.6701
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UY31N15de4wDPW4NR4eSXbQJxg6WGVnbMeo9uvEKTbfUN8hqhgclo4s8dUNdRErthSl7YzZwKAXm5bNagKsPjA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9415

On 02.12.2023 02:27, Volodymyr Babchuk wrote:
> This function can be used when user wants to remove all rangeset
> entries but do not want to destroy rangeset itself.

I have to admit that I'm not happy with the name: We're not consistently
naming all predicate-like helpers is_...() (see e.g. cpumask_empty()).
May I suggest to use something which unambiguously expresses an action to
be taken, e.g. rangeset_purge(), rangeset_reset(), or (less suitable as
some ambiguity would remain, yet it would be in line with e.g.
cpumask_clear()) rangeset_clear()?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:38:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:38:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646601.1009022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4TT-00005V-7G; Mon, 04 Dec 2023 08:38:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646601.1009022; Mon, 04 Dec 2023 08: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 1rA4TT-00005O-4S; Mon, 04 Dec 2023 08:38:43 +0000
Received: by outflank-mailman (input) for mailman id 646601;
 Mon, 04 Dec 2023 08:38: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=IRNf=HP=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rA4TR-0008VS-Pq
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:38:42 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060b.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 84c76bd6-9280-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 09:38:38 +0100 (CET)
Received: from DM6PR02CA0044.namprd02.prod.outlook.com (2603:10b6:5:177::21)
 by BY5PR12MB4289.namprd12.prod.outlook.com (2603:10b6:a03:204::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Mon, 4 Dec
 2023 08:38:33 +0000
Received: from CY4PEPF0000EE3C.namprd03.prod.outlook.com
 (2603:10b6:5:177:cafe::16) by DM6PR02CA0044.outlook.office365.com
 (2603:10b6:5:177::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Mon, 4 Dec 2023 08:38:33 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE3C.mail.protection.outlook.com (10.167.242.16) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 08:38:33 +0000
Received: from SATLEXMB08.amd.com (10.181.40.132) 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.34; Mon, 4 Dec
 2023 02:38:32 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB08.amd.com
 (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Mon, 4 Dec
 2023 00:38:32 -0800
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.34 via Frontend
 Transport; Mon, 4 Dec 2023 02:38:31 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84c76bd6-9280-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aaMGVX4ILagGL7bFgyTkqnj20to9j+EhPA/CBakRMSbEejKuAAuUjwvidEoPDrsgzfFzxwMLfkb640HP+UM7uawj01Evppd8PJ8BVCxVyZJLoxO+0wB5AVLSQdOZo85lgdZVTcxJ1Ik5/Ey4QoqZAAbPB9KrhENuOLopPvIkiP72cpLr+jv5Tv6l4xy5Ggr4QTlODwTxzv7/97OXuDz5y5KXXzkjwt9vHHi41Ac0WlCiXWir0XzcGZoE1Nb2q+PV4ZUHXkq3piaPZJjW+LKsfI9nKCvb9f/BVESLaqi/vqEiJ0VLz7f4/7S+JBM3ybrnc7DiL0rerIW1F43mgA9AcA==
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=rlX6Yo3sUaCNRW5NRjFyl2rDQUzXKyjGDeUsaX4WQ18=;
 b=a0lG1PBceyYmLHTKiGm/5B26aqVrD/S0y7QL+rd4e9b69D02y3Uu7G7oD0VFc+wbuNQJZC+RWJSDIUGbVxBv8tQbh8V411EJ6ERlPQMCmZujJM563FEDkJJhl1qoiRfIMwwzDXQlAHxb+dLnyjttN+yhg5cyQMzlXlY970IxOtNF2rPNs2+OW+DE46qu33zd9TqmObXGrVHgc5iDTnWAeXRhNDw7A9NYVF7HQptYk307H+krELxTQPLYEcw66PMhJWcC0GWEdyZGT1jDEWuZzzwJBXOjgVVzY6kaotMaEsfP/8j75kBRYiOEKn56N8EU9E+nRCjWw9cYBVvVV92EXw==
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=rlX6Yo3sUaCNRW5NRjFyl2rDQUzXKyjGDeUsaX4WQ18=;
 b=xom9gkCVZjIAx1Y5uBexXHcULMDwXgBjYcc9XU7oXHPpggL/kg+VXq2sFzDXVppv3v+2jzeNv3bsh8tFX0Q27r6Ss5oYcmgUnqZNY8tI7qB4oH+9YN7y+NdChZ0Tc6l06e4lobFyIdnjgbd1Pn7j9ngGNWvLMn8C5FJPDyIGNx4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <c7a5033d-78d9-49b4-9227-c9e43c2d5997@amd.com>
Date: Mon, 4 Dec 2023 09:38:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, <sstabellini@kernel.org>,
	<stefano.stabellini@amd.com>, <julien@xen.org>, <bertrand.marquis@arm.com>,
	<Volodymyr_Babchuk@epam.com>
CC: <xen-devel@lists.xenproject.org>
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3C:EE_|BY5PR12MB4289:EE_
X-MS-Office365-Filtering-Correlation-Id: d08b8532-4982-4d5f-42fc-08dbf4a4668a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	vxhD2+pau8GdpqxQQ5ABMWEtpGvk1zPc5TA20HCROSzqbOy1sn3NMMiU490eJPJFh27cAGewQ5tNo4F6afrY1DKfJG0+3P1XWsRd59BKUoMfHpO5Xyw8oF2NMQhW56wZX9AcaUzXp1SvAALvcl59bmDlPxl2CzmxC86CJ/oQRRTL3jO9CON72I1YPKsCyvlR470qC91h+5SAu8YX9BRnxe1kuiaD30E2IhZBSPKFiDSUfpzioJnKkWgovqVfB762T1S1B3P1QesSJ68bZC+hwo6lZQT6owAHD9yWRbKr/rUotRxIm1htNQS+k4L40Ujxx77hH43aus+QnapOvacD9o14IYDbwzVoKU+DlqIru8545wmcsmYbyzzHGlsNqEX95lDfVK5sRadFVvz0aCiC6rWS1/qhW8slks5ncP1CV7yaWU29/35pGEOewAyecZVkVVcxveCc6sSCiN/DVjf96e7vizHgbh3f2h9Z0PhYgMCH8nTwQZzAW63stTh+4pV0WbPdqEExIP7KcgolBT20LIdidZR/O2wReJcjASZDWsQWxb5v6tVVZbEPT59awcWqoLZrWBa4ftCxOfz8QM4FElQZ5zmLB0DFMKIZk/T0Pw21TOwi8n+e49r+vK8Mn+yoWzggNY1cOdEW05iCoATlkfwHw5sRtURaGmPmL8BFiOzJBS5ShRn5qvL/OT30NB0t0GfoU15M7Sap4LHLTCIkdnKV/BvVp+3MIvuRRh7J88zrlbrskrEQksBpxnontO3SOcTcdg2N1ph2bcdGe2XjwOau7HXuLq7wOw2SSNwP39pXczS1W97W/GwHk1Yt53ys3N2Um3KtkByYLicFxgNerDYYEadW+a97egXyjVEq4adpNtBcdYZdYcnnNAm4KKzY
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:(13230031)(4636009)(136003)(39850400004)(376002)(396003)(346002)(230173577357003)(230273577357003)(230922051799003)(64100799003)(451199024)(1800799012)(82310400011)(186009)(40470700004)(36840700001)(46966006)(70206006)(16576012)(70586007)(316002)(110136005)(40460700003)(2906002)(5660300002)(31696002)(41300700001)(86362001)(36756003)(4326008)(8936002)(8676002)(81166007)(356005)(82740400003)(44832011)(40480700001)(36860700001)(53546011)(426003)(336012)(83380400001)(47076005)(26005)(2616005)(31686004)(478600001)(36900700001)(43740500002)(2101003);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:38:33.4114
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d08b8532-4982-4d5f-42fc-08dbf4a4668a
X-MS-Exchange-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: BY5PR12MB4289

Hi Ayan,

On 01/12/2023 19:50, Ayan Kumar Halder wrote:
> Currently if user enables HVC_DCC config option in Linux, it invokes
> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
> an undefined exception to the guest. And Linux crashes.
> 
> We wish to avoid this crash by adding a "partial" emulation. DBGDTR_EL0
> is emulated as TXfull | RXfull.
TX/RX are status bits of MDCCSR_EL0, not DBGDTR_EL0. This applies here and elsewhere.

> Refer ARM DDI 0487I.a ID081822, D17.3.8, DBGDTRTX_EL0
> "If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN"
> Also D17.3.7 DBGDTRRX_EL0,
> " If RXfull is set to 1, return the last value written to DTRRX."
> 
> Thus, any OS is expected to read DBGDTR_EL0 and check for TXfull
> before using DBGDTRTX_EL0. Linux does it via hvc_dcc_init() --->
> hvc_dcc_check() , it returns -ENODEV. In this way, we are preventing
> the guest to be aborted.
> 
> We also emulate DBGDTRTX_EL0 as RAZ/WI.
> 
> We have added emulation for AArch32 variant of these registers as well.
> Also, we have added handle_read_val_wi() to emulate DBGDSCREXT register
Emulating DBGDSCREXT is not needed. See below.

> to return a specific value (ie TXfull | RXfull) and ignore any writes
> to this register.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
>  xen/arch/arm/arm64/vsysreg.c         | 21 ++++++++++++++----
>  xen/arch/arm/include/asm/arm64/hsr.h |  3 +++
>  xen/arch/arm/include/asm/cpregs.h    |  2 ++
>  xen/arch/arm/include/asm/traps.h     |  4 ++++
>  xen/arch/arm/traps.c                 | 18 +++++++++++++++
>  xen/arch/arm/vcpreg.c                | 33 +++++++++++++++++++++-------
>  6 files changed, 69 insertions(+), 12 deletions(-)
> 
> diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
> index b5d54c569b..5082dfb02e 100644
> --- a/xen/arch/arm/arm64/vsysreg.c
> +++ b/xen/arch/arm/arm64/vsysreg.c
> @@ -159,9 +159,6 @@ void do_sysreg(struct cpu_user_regs *regs,
>       *
>       * Unhandled:
>       *    MDCCINT_EL1
> -     *    DBGDTR_EL0
> -     *    DBGDTRRX_EL0
> -     *    DBGDTRTX_EL0
>       *    OSDTRRX_EL1
>       *    OSDTRTX_EL1
>       *    OSECCR_EL1
> @@ -172,11 +169,27 @@ void do_sysreg(struct cpu_user_regs *regs,
>      case HSR_SYSREG_MDSCR_EL1:
>          return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>      case HSR_SYSREG_MDCCSR_EL0:
> +    {
> +        /*
> +         * Bit 29: TX full, bit 30: RX full
> +         * Given that we emulate DCC registers as RAZ/WI, doing the same for
> +         * MDCCSR_EL0 would cause a guest to continue using the DCC despite no
> +         * real effect. Setting the TX/RX status bits should result in a probe
> +         * fail (based on Linux behavior).
> +         */
> +        register_t guest_reg_value = (1U << 29) | (1U << 30);
> +
>          /*
>           * Accessible at EL0 only if MDSCR_EL1.TDCC is set to 0. We emulate that
>           * register as RAZ/WI above. So RO at both EL0 and EL1.
>           */
> -        return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
> +        return handle_ro_read_val(regs, regidx, hsr.sysreg.read, hsr, 0,
> +                                  guest_reg_value);
> +    }
> +    case HSR_SYSREG_DBGDTR_EL0:
> +    /* DBGDTR[TR]X_EL0 share the same encoding */
> +    case HSR_SYSREG_DBGDTRTX_EL0:
> +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 0);
>      HSR_SYSREG_DBG_CASES(DBGBVR):
>      HSR_SYSREG_DBG_CASES(DBGBCR):
>      HSR_SYSREG_DBG_CASES(DBGWVR):
> diff --git a/xen/arch/arm/include/asm/arm64/hsr.h b/xen/arch/arm/include/asm/arm64/hsr.h
> index e691d41c17..1495ccddea 100644
> --- a/xen/arch/arm/include/asm/arm64/hsr.h
> +++ b/xen/arch/arm/include/asm/arm64/hsr.h
> @@ -47,6 +47,9 @@
>  #define HSR_SYSREG_OSDLR_EL1      HSR_SYSREG(2,0,c1,c3,4)
>  #define HSR_SYSREG_DBGPRCR_EL1    HSR_SYSREG(2,0,c1,c4,4)
>  #define HSR_SYSREG_MDCCSR_EL0     HSR_SYSREG(2,3,c0,c1,0)
> +#define HSR_SYSREG_DBGDTR_EL0     HSR_SYSREG(2,3,c0,c4,0)
> +#define HSR_SYSREG_DBGDTRTX_EL0   HSR_SYSREG(2,3,c0,c5,0)
> +#define HSR_SYSREG_DBGDTRRX_EL0   HSR_SYSREG(2,3,c0,c5,0)
>  
>  #define HSR_SYSREG_DBGBVRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,4)
>  #define HSR_SYSREG_DBGBCRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,5)
> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
> index 6b083de204..aec9e8f329 100644
> --- a/xen/arch/arm/include/asm/cpregs.h
> +++ b/xen/arch/arm/include/asm/cpregs.h
> @@ -75,6 +75,8 @@
>  #define DBGDIDR         p14,0,c0,c0,0   /* Debug ID Register */
>  #define DBGDSCRINT      p14,0,c0,c1,0   /* Debug Status and Control Internal */
>  #define DBGDSCREXT      p14,0,c0,c2,2   /* Debug Status and Control External */
> +#define DBGDTRRXINT     p14,0,c0,c5,0   /* Debug Data Transfer Register, Receive */
> +#define DBGDTRTXINT     p14,0,c0,c5,0   /* Debug Data Transfer Register, Transmit */
>  #define DBGVCR          p14,0,c0,c7,0   /* Vector Catch */
>  #define DBGBVR0         p14,0,c0,c0,4   /* Breakpoint Value 0 */
>  #define DBGBCR0         p14,0,c0,c0,5   /* Breakpoint Control 0 */
> diff --git a/xen/arch/arm/include/asm/traps.h b/xen/arch/arm/include/asm/traps.h
> index 883dae368e..a2692722d5 100644
> --- a/xen/arch/arm/include/asm/traps.h
> +++ b/xen/arch/arm/include/asm/traps.h
> @@ -56,6 +56,10 @@ void handle_ro_raz(struct cpu_user_regs *regs, int regidx, bool read,
>  void handle_ro_read_val(struct cpu_user_regs *regs, int regidx, bool read,
>                          const union hsr hsr, int min_el, register_t val);
>  
> +/* Read only as value provided with 'val' argument, write ignore */
> +void handle_read_val_wi(struct cpu_user_regs *regs, int regidx,
> +                        const union hsr hsr, int min_el, register_t val);
> +
>  /* Co-processor registers emulation (see arch/arm/vcpreg.c). */
>  void do_cp15_32(struct cpu_user_regs *regs, const union hsr hsr);
>  void do_cp15_64(struct cpu_user_regs *regs, const union hsr hsr);
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 3784e8276e..f5ab555b19 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -1676,6 +1676,24 @@ void handle_ro_read_val(struct cpu_user_regs *regs,
>      advance_pc(regs, hsr);
>  }
>  
> +/* Read as value provided with 'val' argument of this function, write ignore */
> +void handle_read_val_wi(struct cpu_user_regs *regs,
> +                        int regidx,
> +                        const union hsr hsr,
> +                        int min_el,
> +                        register_t val)
> +{
> +    ASSERT((min_el == 0) || (min_el == 1));
> +
> +    if ( min_el > 0 && regs_mode_is_user(regs) )
> +        return inject_undef_exception(regs, hsr);
> +
> +    set_user_reg(regs, regidx, val);
> +
> +    advance_pc(regs, hsr);
> +}
> +
> +
>  /* Read only as read as zero */
>  void handle_ro_raz(struct cpu_user_regs *regs,
>                     int regidx,
> diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
> index 39aeda9dab..3f1276f96e 100644
> --- a/xen/arch/arm/vcpreg.c
> +++ b/xen/arch/arm/vcpreg.c
> @@ -548,20 +548,37 @@ void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
>          break;
>      }
>  
> -    case HSR_CPREG32(DBGDSCRINT):
> +    case HSR_CPREG32(DBGDSCREXT):
1) Why did you invert DBGDSCRINT with DBGDSCREXT? The former should appear first to keep the correct order.

2) Take a look at what I did for arm64. I emulated TX/RX only in MDCCSR_EL0 and not in MDSCR_EL1 (on arm32,
DBGDSCRINT, DBGDSCREXT respectively). This is because according to Arm ARM for MDSCR_EL1 TXfull/RXfull:
"When OSLSR_EL1.OSLK == 0, software must treat this bit as UNK/SBZP"
On arm64, we emulate OSLSR_EL1 as (1<<3) meaning OSLK is 0. UNK/SBZP means RAZ/WI. This implies that
the only way to access the TXfull/RXfull flags is through MDCCSR_EL0.

For arm32, we should do the same. Emulate only RINT and keep REXT as RAZ/WI. The only additional change would
be to emulate (at the moment it is unhandled) DBGOSLSR similar to what we do for arm64.

> +    {
>          /*
> -         * Read-only register. Accessible by EL0 if DBGDSCRext.UDCCdis
> -         * is set to 0, which we emulated below.
> +         * Bit 29: TX full, bit 30: RX full
> +         * Given that we emulate DCC registers as RAZ/WI, doing the same for
> +         * DBGDSCRint would cause a guest to continue using the DCC despite no
> +         * real effect. Setting the TX/RX status bits should result in a probe
> +         * fail (based on Linux behavior).
>           */
> -        return handle_ro_raz(regs, regidx, cp32.read, hsr, 1);
> +        register_t guest_reg_value = (1U << 29) | (1U << 30);
>  
> -    case HSR_CPREG32(DBGDSCREXT):
> +        return handle_read_val_wi(regs, regidx, hsr, 1,
> +                                  guest_reg_value);
> +    }
> +
> +    case HSR_CPREG32(DBGDSCRINT):
> +    {
>          /*
> -         * Implement debug status and control register as RAZ/WI.
> -         * The OS won't use Hardware debug if MDBGen not set.
> +         * Bit 29: TX full, bit 30: RX full
> +         * Given that we emulate DCC registers as RAZ/WI, doing the same for
> +         * DBGDSCRint would cause a guest to continue using the DCC despite no
> +         * real effect. Setting the TX/RX status bits should result in a probe
> +         * fail (based on Linux behavior).
>           */
> -        return handle_raz_wi(regs, regidx, cp32.read, hsr, 1);
> +        register_t guest_reg_value = (1U << 29) | (1U << 30);
> +
> +        return handle_ro_read_val(regs, regidx, cp32.read, hsr, 1,
> +                                  guest_reg_value);
DBGDSCRINT is accessible at EL0 if DBGDSCREXT.UDCCdis is 0 (we emulate REXT as RAZ). There is
even a comment about that which you removed (please restore). Therefore, the minimum EL passed
to handle_ro_read_val should be 0 not 1.

P.S. The current code is incorrect in this regard.

> +    }
>  
> +    case HSR_CPREG32(DBGDTRTXINT):
This would be incorrect. Adding TXINT here would result in calling handle_raz_wi with minimum EL == 1,
but TXINT can be accessed at EL0.

This should be:
    /* DBGDTR[TR]XINT share the same encoding */
    case HSR_CPREG32(DBGDTRTXINT):
        return handle_raz_wi(regs, regidx, cp32.read, hsr, 0);

>      case HSR_CPREG32(DBGVCR):
>      case HSR_CPREG32(DBGBVR0):
>      case HSR_CPREG32(DBGBCR0):


~Michal


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:42:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:42:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646609.1009031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4Wb-0002Hv-Qr; Mon, 04 Dec 2023 08:41:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646609.1009031; Mon, 04 Dec 2023 08: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 1rA4Wb-0002Ho-OL; Mon, 04 Dec 2023 08:41:57 +0000
Received: by outflank-mailman (input) for mailman id 646609;
 Mon, 04 Dec 2023 08:41:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA4Wb-0002Hi-D3
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:41:57 +0000
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01on0615.outbound.protection.outlook.com
 [2a01:111:f400:fe1f::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa8d49b8-9280-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 09:41:55 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AM7PR04MB7094.eurprd04.prod.outlook.com (2603:10a6:20b:11f::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.23; Mon, 4 Dec
 2023 08:41:53 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08:41: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: fa8d49b8-9280-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZEOCY27S9/XFQ4/ZFHWcZkDni0S2fKF6fSbeMNp7GFPwamdxeD42KEkHILLV7tHyAoCiuNGsyVgf+aA0cffaD6GxnUAfjbNx0UYXW5Obc0+7gg6hvyCb2jg2JQSyqCv7KG1HABMoQ1FmNyj+1boIrnbcyyW0FxYJgJduALQaNjgGqmO77lzXz+zRObH26w+062gNXelQ8zRa2kZhcEjXdrh20lqFo4Kr8GfyINl/bMVBWEENkIGq5hT97xEG9uAy7GW5rFr1b9RhsCP9+QlbFHX3vBUmUQAlLQJvRaycTj7fSRVCRSS1s4AiDeSnHP2DDqcCGMlJwKgahMo1jL9QRg==
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=vREgiBgmeRhS0JA5vTBlK5oiH6yfA0mK5OQ3/x28zNE=;
 b=i9dCeH60yB8b5RlRUNpdTHMGwaRkcUM6faQe/fjSjEHR8cBLikcP8P2O/bk9+Lwl4vPFMmsaCViYIthPAq/CE7uNwNF48TUhSPMqv+Tl8oFF7V3OxsFQY4spe6EmgSUDygWoSOjeYptsVtrwCInfUhU5MQTfm8qOQsy9srDSxPtH0VKOcyEBFPgsmHh5hTBIq6IJXtvGwQp3w6BUbq+703BmlF4KFbGcOy8winGmugzFmmVUoFwCdmGBrZz4XAf+7Mr2iGwNCdNykWsQ2/u1GIdJkJbqbd/BZPcOs5b6gotGqcNgj1oN2++njynL2XWJjj7UbhhNSBIwb0qgDr0QrA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vREgiBgmeRhS0JA5vTBlK5oiH6yfA0mK5OQ3/x28zNE=;
 b=Zv7X9QjhH4NBTlA3lwObQdnRu/yCsg+TVKfC0S8KDnSY5QrH+vO+qPgEeOPH2NBPfkCiUwo4/QJieKNF2Sl5yiVRAhm8XxaPrpChLSrtlBMimfkU+t4NUMwFcY2AmIQW5ZJsV9iIW3BU8TVzW07Cjq4ZPNgTnLxI9yBQIp+SawkcVuEXZtIH/9+lcQPKNYm5q/bL5dh8P42eojcdhulNzwhWai0sHvTzAjboW2YS4l1Bpxo9E6lEMM6ZNm56RqzMPt+9UrwVjAoUb1YD653csKlT7lc4NJEzA68QLdlaAYHGkxICK1xg0gCEdApGWNQWXk0IgC6VEd/xQb+EorBB2Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
Date: Mon, 4 Dec 2023 09:41:54 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.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: <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0197.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:ad::20) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM7PR04MB7094:EE_
X-MS-Office365-Filtering-Correlation-Id: c5a70368-a799-4847-f83e-08dbf4a4dd29
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	KqUMt2TltPgy7EEesSti+O/t+uoBRjxfTE3jMZCX9jsRtiS23z3J5J6ZWXkkZJKAzI0SD8aEhGd0Zqp/6yOS/NREbFipI1l0p3Fa3BHu19oau1x4baeE4rX8pRztXozb1S158LfvEnRHgb4imjOK5VgTflC9rVoVY+0Yp+XqxsCd6Q1PT/x3viJdMKjAY0tDIRYkud01LjPOC7xje3wPcagelAoWop7G9pxn101zmXrbuT+tHIfLbCB1oPUx0uHkgcYVIKAEKwey+vb+YU4Sdt1khZ+Vv+X2r/pydxFHhjeGuX3Tg0JmKUVCW2cvw1neClP+BqYXjiHacVNGadX4a5EiReiALr8tptAnibysbxV+wN55EwT6eG/uQ7MMYe4e5hesdhvbMtC3kaSHL3Gyzt2PD7k2VVQk/ZzDs0inbVZP78qu2VSZQKUusnvocRvTHXdba8H9yZyzwjo4OrJy+4r123Safk23zyKa/Ec9FNaLt2uxRytCaxBV38pxj5QjvYHLjoU8AA3LNceiPG8JssaC9+PQNEmNNpO/UNHPtQjchJeRvIBqUP6VxQ1jz1xbUfbHe/ikyPhq/yCBq89X8UqDaGt1atFRekzKMQkKaTSMjQtU7LvcKbj3kyKVipy+ZvaV+5kNQ5dTobSA5a6wcQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(39860400002)(136003)(376002)(346002)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(478600001)(6512007)(2616005)(8936002)(4326008)(8676002)(38100700002)(6916009)(66946007)(54906003)(66476007)(66556008)(316002)(31686004)(26005)(6486002)(53546011)(6506007)(31696002)(86362001)(5660300002)(7416002)(4744005)(2906002)(41300700001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L3FiVFRQdGNTY1dJQjB4L3Z6S0R5ckpkeG52Ni9CSDgwWUNFVE1JMHpCeWhi?=
 =?utf-8?B?Z1pEeDV3ZWRCZkZqWFY2bjlvUkhOa1p4Q3JQaGg1Tk9Jd0lkbEtid2ZtbkR4?=
 =?utf-8?B?Uk5yMGJ1VWJNNEw3ZzNZeDMvdzE3b1NTeFgrQVpGU1J0TUxWcFdEekJMSGlL?=
 =?utf-8?B?aDkrQUFSa0FJeE5lYUdjL3RvWnh4eGw3NU10SDNmNmV2NFk4V2Q0aWJOYy9K?=
 =?utf-8?B?QVI2ZGpmUXdtT2RSVmY0ODFWSUs5YVFoQTZXL3FLbmt3RkdKNWp0eWRHcUs2?=
 =?utf-8?B?MVVsVWgvRjRwN2duNHRMRERMclVPdHNJa01vN0VIUUQ4WXRvbU9zRUZvZDdh?=
 =?utf-8?B?QjdaRkNad0U3enBLN1hHUDl0M0xJS2dMOURyb0IzT0dUd2duR2ZDUWxHUC9w?=
 =?utf-8?B?QW5NbFRxeGlmZmRsZ1VaYWxDMlBlamU5aGJrN3ZQQmhhYTF5endoUmxRZEhr?=
 =?utf-8?B?SjAzSG50VGpzeHhWQTU4emgxNlB6RWNKUkorOXMzVmhZM2MyQWNmOXFGekVr?=
 =?utf-8?B?T2sxNngwUGErVmNQZENUVHZWampDcEZVWGREKytIclNYUUw1UUpBc2wrdDc5?=
 =?utf-8?B?LzV2SDAySlRUQWlnN3ZBaGxSMHd5aHFtSW1mUHRDNnJCNWpjQmhYb2lONnVT?=
 =?utf-8?B?MzFnZzdYT0QvY3BKaHhwb05IdlNkY3RwbnpwZVdMaWFNdTVlT2ZGT1F3b2lF?=
 =?utf-8?B?M1VsMXR1VUY5aktjR01laVpTRHdIYmJkY090SzRXSWRWbjh5a2dTU1E3U1da?=
 =?utf-8?B?MG9qZ3h3a1ZlcWtXSlppby9XTTVOQ3Bydm1XeDJzd2xNUmFFcnhsY3M3dVFH?=
 =?utf-8?B?MmZBZjNwK0RHMGk4NWVxdjlnNXNzNVBXLzByM2hjQVVESWFwdU5hM3hqQlc4?=
 =?utf-8?B?Y2dUMngxL1dWZFkzOERlZ0NyYmpWd2RnSEZSU3JDaThiVjhycmMweEtWL1Va?=
 =?utf-8?B?aUtESERiSG1iaUFrQUZaNjM3c0VuTEJwOFMrTUhMVjJlUVV3UWY4bVZHTkNa?=
 =?utf-8?B?S1YyOUNSaXJ5MFRFQ05WZHF1REpYY2M1UFpZUnNJcXhuSWl1aGcxNW56UytE?=
 =?utf-8?B?eFR1U01TeVdFMXRUREVOVGh2WEhEUnVyNnRkZ3VBeHJKTUt1bWkzMVZKVVNY?=
 =?utf-8?B?ejdxeFhFSnMxUHpsN2Fqb25KNHhzaUhZRWEzalFwazdnYkxsYjU4MWYxd2VJ?=
 =?utf-8?B?WEY5cGxsVUROaFFsTURnODZ4ZHU5TDZTTlBVcFRyY215Zmh5UzFLVE9XZ0ZU?=
 =?utf-8?B?ZjRQWGxVMFNlblFySDJxSGJNMXp5a09oc3o5ZnF1MnJya0Z5ZTBqenI1b2RC?=
 =?utf-8?B?M1dwWE5jSDB0ZldPNFBnWmVja3pwVmNDRkErdTRJZG1uKzg3STFXVVVHZVJT?=
 =?utf-8?B?ZHhqd1AxeTFoRFBmaTkxNUlQNUVvVCsraEg2SElvTE5IYkZWK1h3Z0wxQUp1?=
 =?utf-8?B?cTdwNkJBTlUzR0d5TjNkT3kwUkhNenR3SUVuQ2RYYzJYTVk4Q0FkNFh6ZVNp?=
 =?utf-8?B?YzR1WDVUcmpmS0tlQTFJSmMva1ZremNpc1dqcEx2bXV6NkwzWmdTVGd1d056?=
 =?utf-8?B?bXNtSUFKNFROT2ZadFZXNzFqc0pvUHJmL2F6U2Ywc2ZQTXN2S0FITjM3Q2pS?=
 =?utf-8?B?bi9Ld3V0ZEpHL2tUZUpDUWRyY3dOYnFMQUExOGRIeElKcVFsZGtQQW1jOUFQ?=
 =?utf-8?B?N0x6VmVaelZPSEFRVUkzWHJWVEd6cjFOc2lXM0dIcTBTdnhBbzZuTDJrUDNC?=
 =?utf-8?B?OXFVdmJNbkhDaTdvT2pzOUoweWp1RDNGYjZzRnpjZlE0TlFWREd0cVdLeUQ1?=
 =?utf-8?B?WDBGOEtCMmVVek9ZSjRERUFXNmxXM3BmOEJIMU4zbWNuVXJpa2tZWmxaYVRV?=
 =?utf-8?B?UlQ0RzRFS1lUZWdva1ZCWGltRndtYzZ2K1pVZFBDcmJtMWsvaHJqYlhRSGFQ?=
 =?utf-8?B?MjAzTEJkamJWM3VKTHlPLy9TZmhuTGVJREtwN0tuL2FyMmdleFR2MXRCN0NB?=
 =?utf-8?B?QWV6d2NGMlNYcmxjc0dYMHlnNXdxRXhCMzAwejVCbC93b0dvVHE0bVpLYjBV?=
 =?utf-8?B?S3o4Um9jR1JqMkhWa3REUk9XTXAvOGRDYUtMbUJZaWhWdlVzTUk3TlZNNWRC?=
 =?utf-8?Q?B0WVk5kq5pIIHJC7qUw1QT9yu?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c5a70368-a799-4847-f83e-08dbf4a4dd29
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:41:52.9325
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SHd689cFCzqA3eSges9EcbIKPIqL/G/PIv+IClVYDG/q1eaawYUe4fbYg0faPwoyCUqj+LOwpVAaejI/b/nFFg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7094

On 01.12.2023 21:48, Oleksii Kurochko wrote:
> Ifdef-ing inclusion of <asm/grant_table.h> allows to avoid
> generation of empty <asm/grant_table.h> for cases when
> CONFIG_GRANT_TABLE is not enabled.
> 
> The following changes were done for Arm:
> <asm/grant_table.h> should be included directly because it contains
> gnttab_dom0_frames() macros which is unique for Arm and is used in
> arch/arm/domain_build.c.
> <asm/grant_table.h> is #ifdef-ed with CONFIG_GRANT_TABLE in
> <xen/grant_table.h> so in case of !CONFIG_GRANT_TABLE gnttab_dom0_frames
> won't be available for use in arch/arm/domain_build.c.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>

Not really, no: In particular ...

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -15,6 +15,7 @@ config CORE_PARKING
>  config GRANT_TABLE
>  	bool "Grant table support" if EXPERT
>  	default y
> +	depends on ARM || X86

... this I explicitly said I consider wrong to add.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:46:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:46:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646613.1009041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4b5-0003CF-B2; Mon, 04 Dec 2023 08:46:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646613.1009041; Mon, 04 Dec 2023 08:46:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4b5-0003C8-8G; Mon, 04 Dec 2023 08:46:35 +0000
Received: by outflank-mailman (input) for mailman id 646613;
 Mon, 04 Dec 2023 08:46:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA4b3-0003Bz-UQ
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:46:34 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on0623.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a00880cd-9281-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 09:46:33 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DB9PR04MB8138.eurprd04.prod.outlook.com (2603:10a6:10:25c::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 08:46:30 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08:46:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a00880cd-9281-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iiZtZgYReO0klZSIvD9GAJb0dYHCnG3WQV3/ivI+HueZO11W0+AVZZ+mmzFsT6nAewz4vGARVXOw99nsFTIh2UnIkzUAIozpdbaE92omQzYnADE3eFJCIryEXsiNQs8UEmbTqz1qtk0YkMYXa5Q3iiL2X0hZMDty/xgbybvLmnki2KPr4WM4OZITs3dVVDlhBHXd30B2qFcYJAwuUEVtrP66kwWO0gv2Go2CI8bB1/QxTugUjOcFxO1eL5BT5K5rZxTXWIPnY7H8db8pRgOq1tjHGoZak7/Ir+xlApe0g/CONmfhKuSDxPO48S+k7MM5c6M23TyDUV9eai8vMPHlrg==
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=ZnD8V+ijjlhacRYMNNogsT3kkSLmq8e0R1KNQSIUpws=;
 b=bf30C+zUAI6EhcIzSDNVFWARBZ9ihjSJ9AE8Wx3KyfnEsUDMYZ59MBQa7a+scSPsNrZlEWgE5quQYNCa1jhmdYNBhklrJWmg0Sw1wUNq3DZiGs+l6173LEMUKLUkko51JGJ97eJZd1mK9fOkPPZNn0m1qKhnt9Co73P0QbFRCqes5lQkPMPZO4h+WktRO9PfvOW9PmaM+AI7QlGshPVAEDfQ0Z8FHORArTr6clsZ43Eyl72BM3jqv4jcoEGfw06gGu0wKOVhyYdc33SI0Zf9gTrUPwtwdjh5Fn5m9zHbMKOmqLVK8MT16YoTLYv9NllFlmv0nQ0IkrYtcWF1DhgXCQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZnD8V+ijjlhacRYMNNogsT3kkSLmq8e0R1KNQSIUpws=;
 b=BYCxqorTQ8yj2zdIWRfp5J3FxXvO0ANcqi58h0YvvGUSgS6RU2+e1JvfW+UjWONc+HnmjvGfCIHnz4GP1tcfz5w63kuOQLwYTiTUkmWS3Qfgq3tBwcgQgybw7c5Jub+rLMda+cVh3p4f/mV5M1H89JcUDhu3CALm7Qp+OPN0exU7bN+4i6z/pJfloKvqwUtq2pf2KhHx0Cf1X+oxtlDowzZRKWsZLfJVmXeXMObyrjjy7wxcQ+rEX8OsQlcrlqYAv8TD9TRBw/5lhjkI5aycW3jGNEZknIyFTPAkcLrj6A16l0/o4LRnpPMYt5Nn3Q/fja6vyuYGxnbTKRSBo/5j7A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <14d0c19e-2a40-4669-aaf5-ad1bfc8b77fc@suse.com>
Date: Mon, 4 Dec 2023 09:46:31 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 6/7] xen/asm-generic: ifdef inclusion of
 <asm/mem_access.h>
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
 <d42a34866edc70a12736b5c6976aa1b44b4ebd8a.1701453087.git.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: <d42a34866edc70a12736b5c6976aa1b44b4ebd8a.1701453087.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0056.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:4b::6) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DB9PR04MB8138:EE_
X-MS-Office365-Filtering-Correlation-Id: 672981c7-86fd-469f-11a8-08dbf4a58254
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	0jcvl9iJSUFNM1xl0JR10/X97Ti/IZfejIN0IuSvVUBXkps/6rT0+mV1n2TunWVbuyfyUHdBnAZNiW+tLgfn3A0RJDG5yxnS8HWzcq2uWGo8OWG9StbLpt5au95VGG6KnNBeyvdqgyWkTIo95cuylaDBp5VCcq8ao87EZUhdFPglbHb7FSpw6NutSL5UABxHKkxEeJCFHaJQbQd7FElAnD9amXrSBUR2m5U/EOqoRTLQf4+DmyM5AyS/sItrmtAU4faXqNfB3/eihrEASackXUegJTeIszciVm2cI/umIx/Q8FuZ0ZtW6+fY71E+OT2QIHmoZcawbgXSm959IJIsNYGzfPz0fFvLqzd9EwTL670i2UHyuA49A9TSZlCFa510cklvMAAh55eCcI7dYn/VDMg1FoDQ+0f+cJXwn3uHG5iW3kGTAU7lHKsybnwPwyNs/eDBo6ocoepkAWGEHWj06J2hIKfL27PG5FX04OxiJiUr3iJ18ul2L2YYMwz+Z8J+ieMsQP2c1Yl0IQprhPYg0ho/xE9VjGUnYFQEkRKvbwlqqFQ87jiOG0ah38GO9+kgV8EkAceVaUE+Pe6TcGMPk1BvHZ2Fq3iUquoWmKKLTjTjUgwWnxJo1d/4yQ3MfNlMvXft9WG1xOexB2YygX1VeR1rq+eTIF+g9c2tLGyV/vE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(366004)(376002)(346002)(396003)(136003)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(7416002)(4744005)(5660300002)(31686004)(54906003)(316002)(4326008)(66946007)(66556008)(66476007)(6916009)(38100700002)(41300700001)(2616005)(83380400001)(26005)(8676002)(31696002)(8936002)(36756003)(86362001)(6486002)(2906002)(6512007)(53546011)(478600001)(6506007)(41533002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZGdwTDl2Z3hvdHMzRGx6a0xmb3lxSnJqNUpQeU1BMldaWHlDcEpJVWc2WE5E?=
 =?utf-8?B?ODNxUjlkcnBDUlNLWlJaS1ZWeEJlOUhYSWdDSVpXS2dRa0ErTFlET3lnMzZx?=
 =?utf-8?B?NUVXUFpiaFlQbFZNdVVuNnU4UExTeUttS1pNY2kxUS9yRXZLcks5ZGYzMmNM?=
 =?utf-8?B?dEM3NXk0OWptY1JCUklIelF0aHY4Rk1hZEJ3Tlh0K3NJcVNLMTJDQlBZU1FM?=
 =?utf-8?B?aU02Y3FhdnlwL3o0enpuM2ZjQXp3cC9UbVVEQkNUcEZTS3o4WGo4QmJucTA3?=
 =?utf-8?B?VnV4dVMxeVJtOFFxS091QjF6aEJvS3ZFRHBqeEgwUlNXUWZ2RVRxYnBFUVdI?=
 =?utf-8?B?ZHU3YkhPZ1ZNclAvaEZkYVExbGVtRmcvUFFlem1SS3o0Q2NHU29Na2toSDMx?=
 =?utf-8?B?NHlCanJpNkJZWGkvaGpteXhwL3NDeEhyOXQxZ2VWV1pUN1k0QnlmTERla0JP?=
 =?utf-8?B?UVlnV1R6NDVlM3VndnMzY2gzSnZTNEN3dm9JRXkvYVFOKzBwa0U4dDlURnR5?=
 =?utf-8?B?b1EvZ2hyTktESXhjc2RHdXJ2VG4zM3VWQWVLTyttK0JZVG1ZS2F2VHJXWllU?=
 =?utf-8?B?a25NUEFIbmNyNmNXS1RRTVZyb3BDeXpRWXpYZFptRlBzSXRrRStXWXhhZEtv?=
 =?utf-8?B?enhmVXhaQmVBT05vUlZnbjN6ekRRdnRYa0NNNnFKNDFhK3dKS1lXNXhXdUJl?=
 =?utf-8?B?OWRPTURZU3AvT0ozZWJZa2FYemxsQ3duRVVSU0dyb3BkVWZWRzNnTGh1cEVs?=
 =?utf-8?B?STM0SmQ3SW1QMlAzZG5hZkJiRVFCUzgrOGgvOTdKR0w5eGViWFdYTUh5WGdE?=
 =?utf-8?B?a3l1TzBYZ3hOOTVLbXJHZ0hJYldJY2hPcC9lK0dZMUc2OXlEWGxadmNKRUJ0?=
 =?utf-8?B?UjNuMVRSeVNqdVlvV0ZLLzdnZnhJVkgwUXhwcVc0VHplOFk2TTlSQzNZcnc1?=
 =?utf-8?B?NWoyandHbjE4RlFKbFk5NUtXUW5Uck5scnhhWFBTbENQVHVhMFR3UXpvc1hn?=
 =?utf-8?B?anE4dng0UEVEVFduT0Z6SmJ5ZVJtcHFQcXVzTnN3eGxJU0E4aXo1QlBOWnpI?=
 =?utf-8?B?VnQxY2dVSnZOYVl3bVZSZVY4dFRsdFE4bCsyeU9zM0dOdFpiQUdCb2treHdh?=
 =?utf-8?B?bjlBRHR1d2RxK25ZSXhWRWw1SXQ2TzlMVEZnVmdYVEp3VGQ5bzBlWDJkc2lj?=
 =?utf-8?B?ZlZsRnNnYk9lN1E4SkRqd0MrMUxJc1EyVWFKaDczSUxaVWxPOU5rSmEvS1hH?=
 =?utf-8?B?eE5RRXRVbUw2VEQxSkEzSzhoVzdWS3NXamZxa2l3YkZ5azM3MmFpT01NUWsv?=
 =?utf-8?B?U2VHYUpjN2d1elFaUTVMaXpxTy9MV05wblcxaGpqZ2p4UFZKN3IvTTVaZEZi?=
 =?utf-8?B?bzVIdEI1T2NKK3QrcExQVG1LWDlXbDlpQ3dlanRwenEzVGk5dng3V0hIRUpZ?=
 =?utf-8?B?YytkSCtDUC9ZNUFRWnZwdng4ZXdCUXNXOUYxNlZOdlFrd0l4VkdkZDQ2Q0V3?=
 =?utf-8?B?Q0J1NXEwdURiVnRaOXpaaVZCOXJiNi9sVko4OC94VVc3dTMyMkxVeC85VW5n?=
 =?utf-8?B?N0Z0cndpdzZIWXlBenJrM3RMYUFsa3NTTVRUSDNweEZoUjZLK2hUQTR4Y3ZP?=
 =?utf-8?B?czNPaDBQbUVQNmkrSWdmNmZLL3RJS2VqUFRoUXExcXNnZTdIN0drd1BxV3lL?=
 =?utf-8?B?UW9VVTEyUy9ZS0JwQ2J2UkZkRVYzUGJ0VWl4Vm1UUU5zYllwUkN5Skl6RG5K?=
 =?utf-8?B?bmswb21DYXdHYjdJekVLTkN2K04rcWk4ckQrUHlhWFAzSVIwYzJxaG9mN21X?=
 =?utf-8?B?RkZLRnVHRU5tRXpSU3M5blhvSTBiUFh0UGZnYUxjc2NRUHN1eVFQS25zUWxi?=
 =?utf-8?B?UExBVHNRQ3QrRysvWEpFRy9RVUx3ZWZPOFV1T0loU3JFUGVqZURyNTBOSS9a?=
 =?utf-8?B?Mk03U0E3eDZxdlBMM205MkQ5YlNhb2Zhelk2Qytybm4xNVBvNStMYk9RYVo2?=
 =?utf-8?B?b285b1JNNHZoQ3EzZEtwOGk1a1pMR1BMTTRiM1Fac0tNdWY4ekQzR1ViWHR6?=
 =?utf-8?B?ajI4RENNUFhaaW8zcGF3UnJZaXA4c3cxU1A0ZVlIdjY1aUtabEVBc0pnSmMx?=
 =?utf-8?Q?JitSTVYlssuZsCcRoo7QXpbM/?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 672981c7-86fd-469f-11a8-08dbf4a58254
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:46:29.7807
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: R0vgyVk7y5qW2twg9xVSIpnQiN71JlwLe4MIL9vEQ8vBNStNWVL20eFsv7mvsv1M1dztw5q9+8ObPJzx+ipXYg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8138

On 01.12.2023 21:48, Oleksii Kurochko wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -87,7 +87,7 @@ config MEM_ACCESS_ALWAYS_ON
>  config MEM_ACCESS
>  	def_bool MEM_ACCESS_ALWAYS_ON
>  	prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON
> -	depends on HVM
> +	depends on HVM && (ARM || X86)

While - unlike for GRANT_TABLE - I view going this route as an option, I
still think it wants doing without explicitly naming architectures here.
There wants to be a HAS_MEM_ACCESS, selected by Arm's Kconfig and by
MEM_ACCESS_ALWAYS_ON (which in turn x86 selects). This could then also
replace the HVM dependency here - x86 ought to select MEM_ACCESS_ALWAYS_ON
only when HVM is enabled.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:47:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:47:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646615.1009051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4c2-0004Hn-Jk; Mon, 04 Dec 2023 08:47:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646615.1009051; Mon, 04 Dec 2023 08: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 1rA4c2-0004Hg-H1; Mon, 04 Dec 2023 08:47:34 +0000
Received: by outflank-mailman (input) for mailman id 646615;
 Mon, 04 Dec 2023 08: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=IWUc=HP=kernel.org=arnd@srs-se1.protection.inumbo.net>)
 id 1rA4c1-0004GM-7x
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:47:33 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c28977a8-9281-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 09:47:31 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 1D86BB80D0D;
 Mon,  4 Dec 2023 08:47:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0EB18C433C8;
 Mon,  4 Dec 2023 08:47: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: c28977a8-9281-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701679649;
	bh=yWpIH3H9GnySfKiZ2biNF5eZOOjjW8G9znn26WMmWq8=;
	h=From:To:Cc:Subject:Date:From;
	b=Bt3tvQd17fxJG1QhyKLzWmqZhTgFXCUi8NohfV/BqaRjuxBDL9Fj93TEqKVCQ3prU
	 cECFd3wX7hGQ1ZsUi1sVIDMP1aDiiYTgo30xsobza+llJl7HUKfOl7kkwRGQroloEl
	 yd2Q8qCHNPURUuMjaU/6j+kOWycz0WtS3sXUOyrE3qfJ0RfyJuklEFWgs1tcOV3oXr
	 x869c6XKfR4pe6BA3BUr8dc6woUP3GgRaQiA0e9xzy5syhPrdc0yyIIv0EFZ11zBg+
	 El8TBWLd6TH3ElkOkDmVHbNPpODQxtFJYZbsMQLOInyjm0yqJ75sqGIHTuYHICIIgG
	 yggzDxlBMAi+Q==
From: Arnd Bergmann <arnd@kernel.org>
To: Juergen Gross <jgross@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 1/2] x86/xen: add CPU dependencies for 32-bit build
Date: Mon,  4 Dec 2023 09:47:01 +0100
Message-Id: <20231204084722.3789473-1-arnd@kernel.org>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Arnd Bergmann <arnd@arndb.de>

Xen only supports modern CPUs even when running a 32-bit kernel, and it now
requires a kernel built for a 64 byte (or larger) cache line:

In file included from <command-line>:
In function 'xen_vcpu_setup',
    inlined from 'xen_vcpu_setup_restore' at arch/x86/xen/enlighten.c:111:3,
    inlined from 'xen_vcpu_restore' at arch/x86/xen/enlighten.c:141:3:
include/linux/compiler_types.h:435:45: error: call to '__compiletime_assert_287' declared with attribute error: BUILD_BUG_ON failed: sizeof(*vcpup) > SMP_CACHE_BYTES
arch/x86/xen/enlighten.c:166:9: note: in expansion of macro 'BUILD_BUG_ON'
  166 |         BUILD_BUG_ON(sizeof(*vcpup) > SMP_CACHE_BYTES);
      |         ^~~~~~~~~~~~

Enforce the dependency with a whitelist of CPU configurations. In normal
distro kernels, CONFIG_X86_GENERIC is enabled, and this works fine. When this
is not set, still allow Xen to be built on kernels that target a 64-bit
capable CPU.

Fixes: db2832309a82 ("x86/xen: fix percpu vcpu_info allocation")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/x86/xen/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index 9b1ec5d8c99c..a65fc2ae15b4 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -9,6 +9,7 @@ config XEN
 	select PARAVIRT_CLOCK
 	select X86_HV_CALLBACK_VECTOR
 	depends on X86_64 || (X86_32 && X86_PAE)
+	depends on X86_64 || (X86_GENERIC || MPENTIUM4 || MCORE2 || MATOM || MK8)
 	depends on X86_LOCAL_APIC && X86_TSC
 	help
 	  This is the Linux Xen port.  Enabling this will allow the
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:50:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:50:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646620.1009061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4eV-0006Xb-Vm; Mon, 04 Dec 2023 08:50:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646620.1009061; Mon, 04 Dec 2023 08:50:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4eV-0006XU-T1; Mon, 04 Dec 2023 08:50:07 +0000
Received: by outflank-mailman (input) for mailman id 646620;
 Mon, 04 Dec 2023 08:50:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5cgf=HP=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rA4eU-0006XB-RC
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:50:06 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20618.outbound.protection.outlook.com
 [2a01:111:f400:7e8c::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1dfb6488-9282-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 09:50:05 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CH3PR12MB9429.namprd12.prod.outlook.com (2603:10b6:610:1c9::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 08:49:57 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023
 08:49:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1dfb6488-9282-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=BDP22pmEpabUF8CYEnobLuE0MYpSO5ah4nUTUh2asQCdE8+xZYzsMAehDYnKqEMzmH+Q/FFoudbDmZXZz9chyqyAMdsZOXGcmtpxquA1xoxTYFGAvIBHxv8/+lWsUuls7gqYVy4in4DzZDaM3pTy9ePOWDQZ4TOG0tawzsWgnnCXcXEEUgnkE91KKgW7Nd//PSEssUuVUc9BelChjqxW7IKxbAjhoeFOf+/nWeGq6l0hSb/kP9wHXInFyKMz0QTBLP+Kus3V0d386cd73Du4inv3RLBfi0WxsMLshYUrKZ+x7QPufYHfsPCYptT6xk1nht+tCL5YE3W9Dp5KoID+Fg==
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=lSYNP17FW+d29WFtlOlSR8mnGPm95Lfk7PNHYinfE+U=;
 b=bYf5rMJBYGX57+w1W0KAApgKUz7grYtxoThRtPVLwX1MJvX9stN72RVrf8EQ0atGwuNtwkQoCJt0Iipv6Wi+nUQMQW1Y9GJwfZplpVGmn1INQ6wWrzxicOKgY7KAFkBa81gp16Z8LVmCiGUyr2Jp+tFQJOQm8GqTb3Z+prkE4PO2ZMze32UCWfJcxrDppsZzpT6+pbnvVNOJ9o7SnLvCnHSMaEKgNf8ispYCovPF54niTk0XYBxcEG3/t0rga96aRpCzcPsKrtWOlaWKfdHMXFU2WJmsIQ+WnsZPHfNqcfukRC1uUAPf+fbUZizbZM54tmG9kgPe9lTk1vKzNEed/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lSYNP17FW+d29WFtlOlSR8mnGPm95Lfk7PNHYinfE+U=;
 b=wTaXaZ1oPbgVGX018M/iQR6rHIg5UoRlJ7pV1+2K2tKRJbNkifwk4OtKmqTZPtQees20mISpLM9BNR6Qfr8wwscRFbP2wi30WT+JM5g5fConuKHozRM9Qa+JU/bLcu7a2Z3nGAhVaryE1UieuHtcg+8ib3FzS8YTtXJu7qp6jFw=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Thomas Gleixner <tglx@linutronix.de>
CC: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len
 Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, "Stabellini,
 Stefano" <stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Topic: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Index: AQHaHsGaWb8EJvAynUiF4JhdQXSstLCY0coAgACRkoA=
Date: Mon, 4 Dec 2023 08:49:56 +0000
Message-ID:
 <BL1PR12MB5849F2E24E00BF7B20A0B4A6E786A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-2-Jiqian.Chen@amd.com> <87edg2xuu9.ffs@tglx>
In-Reply-To: <87edg2xuu9.ffs@tglx>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5364.namprd12.prod.outlook.com
 (15.20.7068.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_|CH3PR12MB9429:EE_
x-ms-office365-filtering-correlation-id: 9755d61f-0040-489a-fe82-08dbf4a5fd95
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 UL0U0Hvlt9S9cEWSX3CCh0/9AoeNieO33fWr4UKd1P7+0/8ooWplW5ywV/A5iwzde9Z3pT2kwkoIZspKIdxLLwXW00qcdFv3us+ReF/Dgssc+h7H8UMIXmdU/ph+sEU/Yvi5emYfJ2Gc3dF83e135NEsqQ3h+31vj9MRSbT/ZfvUoiGvKeeErAld1yiSweIYdUhkQkUEjL+ArXVq2c1ywoWAHSyFnMyg7i/GODxhv8HsDdY/Mdu/BV/wF2h9/YdFJ9FOnxQgeBuvGQRl66HPUTd32g4T69n9hfLczvOwrxlUm2zX52vp3u/BXPbN3ywRLWjZQSX2ZvWAopjCpqLSsJ/JHzWY4JPbcXXPZ6z7Ltq/1jQhOnIGdO78w1tWP8hH7okD/zmT9HHSxvIj4/G5GZtmF+yjven9U7UGMsgftfevuDZh4q6YTai/jAzxLn58qaEeZA/7GnZ/9W5B1RgS+ndOIGC0gi93XUi39hwK8ZO5jYiTrlzmQ8HvxQ6VFMB3ncdz6nCR+A9RXVlKVb7bK1M4VuwtoBV4ZJCvOguKKOk3JKlc09d+GbHydEVe6ljBmIv4aVvip7B0h6SEdDtiUJ24ge4lYH48HCziZqunnvdM4IGvltb97uL+K9w0Pz9e
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:(13230031)(346002)(366004)(376002)(39860400002)(396003)(136003)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(478600001)(26005)(83380400001)(7696005)(71200400001)(6506007)(9686003)(53546011)(316002)(6916009)(66476007)(66446008)(64756008)(54906003)(76116006)(66946007)(66556008)(122000001)(38100700002)(55016003)(5660300002)(52536014)(4326008)(2906002)(8936002)(8676002)(7416002)(41300700001)(33656002)(38070700009);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?djNmMmFMWGlReEh4d2hneDhsRWlWNytxNHR4VCsyR3MvdGEycWhaVy93QnZu?=
 =?utf-8?B?NTNrMHJzSFNXa0oxUy9xZGtMYzdZQ2ZIcGdRZFloTUcxYi9mbHE2dkNnWEN3?=
 =?utf-8?B?alEraExhMFBJVXZiYzNmNi9yUlNrVktlNVVtQWZhb0w4WHRPQ09DNzcxM1RD?=
 =?utf-8?B?ZWpkdnZ0RUZCbHpqOW9DMlVCSGFGZ20rVlg1dk82STlZY3hCU1l5RjRNY1hu?=
 =?utf-8?B?TzFnWlJoeURwc3lDekVvTk1XVk5mbHNwZTdoSzVTNUJTaUM2RlpxY0psa1Nz?=
 =?utf-8?B?dXRUZ2pWcm40dW05MUU2NXQ2cllQWDdBNHdoT1dYWnBDaXR2WWZPUHI5blRD?=
 =?utf-8?B?c2l4NW1zbGE4a1d6Ry9idW5MWE1NYTI1bWRsU0l6aTdLT0NjQzF4dllwU2to?=
 =?utf-8?B?VXpLSnpKVHY1Tk1BTTFHbGF6eW1IOVVsRkY3eUQvVEVkRTduQ1BFL01rNWp4?=
 =?utf-8?B?aDFvaXpsaXNlNWRNcERuS2NUZ2RLVnNpQnBTc0JueVJmMEJad09OTSs3dk5H?=
 =?utf-8?B?d2pPTE5kRUl0ZWt6WUZVV3BpRWF4aTFKRmhqTkdDUXFnZUNvKzExU09wdVVJ?=
 =?utf-8?B?ZXMzVi9hVjQwWGMzRDFYa0ZGTjhSdHRiMDRHZUdBWXBJUEpFTGg3UThoOURV?=
 =?utf-8?B?YTB5SEtoL0RIVmk5Z1FyYlFrUmVsWkFPV2Mxd0s3am5XMDE3SldzNDhTdjF2?=
 =?utf-8?B?UGlGUWdyZGphZ3M2K3MrVFpnNDlLTnFVQ2VKRzZJajdJQXB0UUFuMTJRK1Fv?=
 =?utf-8?B?di8rWTB3cStrdVZQT2R1eElCR2Y3RHZJb1IvVlRqWHIvQ25vOUI3SmxPWHFJ?=
 =?utf-8?B?TTFhMTZaMzA2MGhvWUlWaHhsOHNCby9ZMk5pb1hyQVI3T1YyT2Q0Y21PNURY?=
 =?utf-8?B?R3NhRXZUMnRubjJSN2tqSnU3MUo3YlhNRU51ek9pc0UrZERIaEdKSjVXUzRk?=
 =?utf-8?B?MDhLQ1NxM2ZDZzEvN0NhSXVybFBpYVkwTXl6R1JjZUtWOXdOZmFoTXNkMDFP?=
 =?utf-8?B?azQ3TnRyRGYxS216VWdZbS9jZkhpb0gzMnFBK0poWVVWRnVtVllIR3NHZUh4?=
 =?utf-8?B?dXIwUVpJdEVSRnV2UzZqVG5Mc21BQzNpNUVCaVFlQVF0bjBnaEFZMm4zZXM1?=
 =?utf-8?B?REZYMDJwRDdoYXpCL1I0aGpCQVFjY1UrNElUWmVxYlZzVHJ6ZE1ObXd0S0dw?=
 =?utf-8?B?UVliTzlOUXlXS2k5QWxZZjdNRnZuL3FaekdndG91MkpnVEZ5cHVVaDlSVndU?=
 =?utf-8?B?eUlsTVNJQkFZV25XWU1UWmxnUlQvSmkyK0lKcWFsVXQ3d1dQcWVHODRhM1B6?=
 =?utf-8?B?K1loZ0Y1VEFKWVBrVGtTQkx2dkpERmVSREpCbHpoTUM4QnhBNEhidi9OaW5U?=
 =?utf-8?B?NmdCc001dHFEdElkb3k0WmpyTnI2NTl0cXhVMENUNnRCKzVmVnJNbm5IY3lH?=
 =?utf-8?B?WDZGMTl4S3FMZW1OQ3ErbWtOZDllNmFXTi9iMS8yWGYwaU1BdzY2cit6bVhp?=
 =?utf-8?B?SW9kL2hud1V1eXlhcHNYSFp5c1p4WERvZ3IzRXNBbzNXZUtYRUVscnlObDVX?=
 =?utf-8?B?RnpCWXZCZHRrcFZZeCtkMGRsK1lWNFozeGs2QllxQ0VzZFRteVV4OU04Qnh2?=
 =?utf-8?B?RnZ3NkJ0NW9HbVh6MjJJY3ovYkdKd1RrM1ZKQmhlRWphQTk1bFpMaEdweFNH?=
 =?utf-8?B?dzhNUWM1aElVcmo0QXU4OFRUN0s1YzBBR3JwYnNWY0ZjeUZNVU1YY3M4cDh5?=
 =?utf-8?B?VlZlcHhJQlV5ekNVdTBpdysvL3pIZlp1UzBKUGhucHNSV3V2Z1ZJZ1VmT2Ft?=
 =?utf-8?B?d0xLc2RteXZKSWNnVmRpT1lhMXR5U1JSRUl5cVZDV1hwZXZvd25lNFkzOWVU?=
 =?utf-8?B?YjZNanpzQjdNWVo1SW5QU2ZnYk9QUU5qL1pDeEdJZjhrdGtWR1lQMDd3YkF2?=
 =?utf-8?B?Y1d0TUVldmRhM1hITEdpWGRiRjZQVVU0Ry9XRWJhTHhDUDBESTJWYVc4eWZs?=
 =?utf-8?B?WllQUVl1NHVqMTRRYmZZdFF1WUt4QWNDdWJUV24wMjAvcFRYUUw2T1FnZDJV?=
 =?utf-8?B?aWo1T2d0VFdkRkw0YkVDcjYyODRFUmJ2YkRiRnpMc1JoeU1jUzZGOStGeVFL?=
 =?utf-8?Q?Awrw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8C984281BFD69B42B458B06706B2D46A@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: 9755d61f-0040-489a-fe82-08dbf4a5fd95
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2023 08:49:56.4083
 (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: NPw7JkePKsKGEMyHNv98rBmutYbSmuT4k6b4A3mxVYKuzdXGwLGKFKsiVFux/tGP1ghlqA58Vyp4eHF74m2S7A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9429

DQpPbiAyMDIzLzEyLzQgMTU6NTgsIFRob21hcyBHbGVpeG5lciB3cm90ZToNCj4gT24gRnJpLCBO
b3YgMjQgMjAyMyBhdCAxODozMSwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBXaGVuIGRldmljZSBv
biBkb20wIHNpZGUgaGFzIGJlZW4gcmVzZXQsIHRoZSB2cGNpIG9uIFhlbiBzaWRlDQo+PiB3b24n
dCBnZXQgbm90aWZpY2F0aW9uLCBzbyB0aGF0IHRoZSBjYWNoZWQgc3RhdGUgaW4gdnBjaSBpcw0K
Pj4gYWxsIG91dCBvZiBkYXRlIHdpdGggdGhlIHJlYWwgZGV2aWNlIHN0YXRlLg0KPj4gVG8gc29s
dmUgdGhhdCBwcm9ibGVtLCB0aGlzIHBhdGNoIGFkZCBhIGZ1bmN0aW9uIHRvIGNsZWFyIGFsbA0K
PiANCj4gUGxlYXNlIGdldCByaWQgb2YgJ3RoaXMgcGF0Y2gnIGFsbCBvdmVyIHRoZSBzZXJpZXMu
DQo+IA0KPiAjIGdyZXAgLXIgJ1RoaXMgcGF0Y2gnIERvY3VtZW50YXRpb24vcHJvY2Vzcy8NClRo
YW5rcy4gSSB3aWxsIHJlbW92ZSAidGhpcyBwYXRjaCIgb3IgIkkvd2UiIGluIG5leHQgdmVyc2lv
bi4NCg0KPiANCj4+IHZwY2kgZGV2aWNlIHN0YXRlIHdoZW4gZGV2aWNlIGlzIHJlc2V0IG9uIGRv
bTAgc2lkZS4NCj4+DQo+PiBBbmQgY2FsbCB0aGF0IGZ1bmN0aW9uIGluIHBjaXN0dWJfaW5pdF9k
ZXZpY2UuIEJlY2F1c2Ugd2hlbg0KPj4gd2UgdXNlICJwY2ktYXNzaWduYWJsZS1hZGQiIHRvIGFz
c2lnbiBhIHBhc3N0aHJvdWdoIGRldmljZSBpbg0KPj4gWGVuLCBpdCB3aWxsIHJlc2V0IHBhc3N0
aHJvdWdoIGRldmljZSBhbmQgdGhlIHZwY2kgc3RhdGUgd2lsbA0KPj4gb3V0IG9mIGRhdGUsIGFu
ZCB0aGVuIGRldmljZSB3aWxsIGZhaWwgdG8gcmVzdG9yZSBiYXIgc3RhdGUuDQo+Pg0KPj4gU2ln
bmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+PiBTaWduZWQt
b2ZmLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0KPiANCj4gVGhpcyBTaWduZWQt
b2ZmLWJ5IGNoYWluIGlzIGluY29ycmVjdC4NCj4gDQo+IERvY3VtZW50YXRpb24vcHJvY2Vzcy9z
dWJtaXR0aW5nLXBhdGNoZXMucnN0IGhhcyBhIGZ1bGwgY2hhcHRlciBhYm91dA0KPiBTLU8tQiBh
bmQgdGhlIGNvcnJlY3QgdXNhZ2UuDQpJIGFtIHRoZSBhdXRob3Igb2YgdGhpcyBzZXJpZXMgb2Yg
cGF0Y2hlcywgYW5kIEh1YW5nIFJ1aSB0cmFuc3BvcnRlZCB0aGUgdjEgdG8gdXBzdHJlYW0uIEFu
ZCBub3cgSSB0cmFuc3BvcnQgdjIuIEkgYW0gbm90IGF3YXJlIHRoYXQgdGhlIFNPQiBjaGFpbiBp
cyBpbmNvcnJlY3QuDQpEbyB5b3UgaGF2ZSBhbnkgc3VnZ2VzdGlvbnM/DQoNCj4gDQo+IFRoYW5r
cywNCj4gDQo+ICAgICAgICAgdGdseA0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVu
Lg0K


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 08:56:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 08:56:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646627.1009072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4km-0007Rv-Pi; Mon, 04 Dec 2023 08:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646627.1009072; Mon, 04 Dec 2023 08:56:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4km-0007Ro-MM; Mon, 04 Dec 2023 08:56:36 +0000
Received: by outflank-mailman (input) for mailman id 646627;
 Mon, 04 Dec 2023 08:56:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA4kl-0007Ri-CP
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 08:56:35 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01on2048.outbound.protection.outlook.com [40.107.13.48])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 05bd1cf5-9283-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 09:56:33 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AS1PR04MB9584.eurprd04.prod.outlook.com (2603:10a6:20b:473::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 08:56:03 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 08:56: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: 05bd1cf5-9283-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lctKCDIxoT41wkrGRrIy7NAveOf1oeoSJc9adsow8QSEQXAdBGzdoOFSKv5DOWJihC/W8n/g5ioGVYp1+lEGdVQvCKCSmSe+TjRhndlbztVGTm32iJRUnVe2FgOjWPivOXdsUOSvrjw/VeIifBOgRopKI/hIxUHx7xNafZxA0d362R1v/jdFywab4Uweoxr7OgO1NIqau9yUAHCISatGuYu4TlH3NHhXx0Y7fZnuGuM262ASKlF4RzMrFMn59kEhfTPP3EKv9Xbmp/K7joO+CWjX49JXVjlFnHpM3h993y/mKXq7OpsKx4w0D/xyX7tx0/bBiNrSLgRgE5HM41C9xQ==
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=AFCK9BUZ9Q8mVjxDdIcNyxjW0Lu0WqcTs6EVxhdGCfg=;
 b=Z4NjbyqKXhhAlfU9lPq/Oo1FJK8FVUpgMnOC9ZIqh4deHyePdT9UQlMQF5vhOFx7txdv5TG1SPR0UR6Fi73axaSia6qoHlQumqoMqmQeBe483IcMPlA1ebja9j75uQnTgCnZXpcXqR50QMRGuCzv/UKM87uQuxOJYvwx9Cql6KfiXmjSqw9Z2R1ta8yj1+rxuYFiPe71T5D5oS9YHy5Cuyhf2PEOFANSXOT/na0IPBNg9Sy4Bkg5Uhs7bZ1bYEXvrBtWY26Sk5OZ5VKk3GXS9NNYPJYC598ZPC4+hwK5mYApElPpDXB5ci5kpoeEr73Y1KIpftaIwyB7Ivnvty9fJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AFCK9BUZ9Q8mVjxDdIcNyxjW0Lu0WqcTs6EVxhdGCfg=;
 b=4Gr7LY/edQXl5FQND9avhsgmaRDrFNRyHBic3HGapWrluE7GvsUg5cNJAp7QAo87wh3GUjvmM00S/3ZJa+A7HHf4FCR8YOgmzBOxRSozjvxsFXqAtaNJuyKO716Bc3VuzKqMroG20Yzy/iLjwL00PgZhBizmHgVdufmETuQPTv14lYQlFr+CIbBc+NKgC9VG1MK72bO/sHcP8lxpLTurUIh3vlptO5kPJMXXeNno7OMsxxrIO68A2tPcfQahGCIAPRlcLEWh2qIPC0QIDh5V8AhxLMXrwI20tyEFXk0x+FCaSkGdLvf/Up7F2Uy20YaNcVlIClBlwpZ3u+kKtJjITQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fcb2675a-6570-41f7-b386-93fdb4b513fe@suse.com>
Date: Mon, 4 Dec 2023 09:56:05 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: xen | Failed pipeline for staging | 525c7c09
Content-Language: en-US
To: xen-devel@lists.xenproject.org
References: <656b9ad4c0656_2c9b1b813232d@gitlab-sidekiq-catchall-v2-744664b889-4scj5.mail>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <656b9ad4c0656_2c9b1b813232d@gitlab-sidekiq-catchall-v2-744664b889-4scj5.mail>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0012.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:15::17) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS1PR04MB9584:EE_
X-MS-Office365-Filtering-Correlation-Id: a9e7353f-6811-4e96-7993-08dbf4a6d877
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qYIuEFGigxzhKebli9cjvVSi6ZDs1Bs3Rtm+ABmc95fCXDdu3kmdzwwXCrCio5o1c07Uo3i05MtyUva3uD6yXrYsiWNUH+f2nDHELK9Qq2gRcVPUvljNTuq1RnsOFAH6PkRrLbwISz6xF/Qa5RFJA5QUB3u4/zKmLg2zKX9NZDKlMoBx07abB0+FWlMtsdP0rN1Vy87igy2shuFJh855A4ZtRwxgzuOOccphWaey2kklrifPOrTezM1Cp6Cx67VrdFmb0C9KzHMiIxO/J5iVNB/+k/xGOn24AotsEryTnANXSuogK1AD5H24TPeCYL7shmvZBTgByQnBAPWoqzIJlbj4sci7MEKBEkHNtmRaQ0EjDpyP8lDRGvuhsnWwq/nChRb9JgDgC8u9n7k0SqEK2AtmGyYLKM9E34tqCRk6UAMQqimjWqSJ8j4v0/onvAiBYRnUsu3uF7XAPIMvVbdJj4YPtQewiZ0wR1NtzKEO0w9+B/OT8ThAkU7svt63eI48aA0KgixQwB+YUZaWbYJMgNhWbooKALTOrUbbVk5jyZi7VoADPvyqLN+JYiLsumxDJfibebjmGChu4p8XoArhhYsipak3TZdEJK2BI1QbQxeXXgfPUOFW2Rk41tY0TJ3QS0bdxjwa/nEYXl/ubELtAptyXtJ3jWP/X4yNhTDDEbg+a7ioXb19zm6Sg3jlmWyT
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(366004)(376002)(346002)(396003)(136003)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(5660300002)(31686004)(316002)(66946007)(66556008)(66476007)(6916009)(38100700002)(41300700001)(2616005)(83380400001)(26005)(8676002)(31696002)(8936002)(36756003)(86362001)(6486002)(2906002)(966005)(6512007)(53546011)(478600001)(6506007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M1pHSDlQNDJFQW1hVmtTOWcreERISk5ydTVMeVYwUjczYkZaV01Bdkw4clc0?=
 =?utf-8?B?RGZTUUNsZGVmc0E4bmc5T3A5Rk1zMmovQ2JubG1iQUt1S3p0d3ZQdUk1ejN2?=
 =?utf-8?B?NFlER3lSYmNUYVFnY0dBeHhqbHlJekdqQ3ltRWU3ME05blJOR3FqaER0bE5M?=
 =?utf-8?B?TWxJMkNLWmVGVnFPL1RKcW5pdWswY3h5OEZjTllLeldOdWdYSnVhcEFSdnhZ?=
 =?utf-8?B?bE1GT0JrV2Jsdk1reC85NmZJODVpbTZLckRwQklQMUQ3WThmcmxDbG0zdFcr?=
 =?utf-8?B?QnRHZXdLeW02UFVOam9lMEt2OEJhRzF6cGtadmJJZXpGaWNjeWM5aXJlNDFP?=
 =?utf-8?B?N2ZHZFpsY0Fxa2lWWWhJa1pET1NqZ2VEcXI5WEN5ZnpKWTdEV2tpT3VseW1B?=
 =?utf-8?B?bThvdkZEck5RNVdjRjFnM1l3aG9jcFZQYXJSUE5iSmRtLzJUMCtuTjNuNGdy?=
 =?utf-8?B?K2FtRWxCbGNGQUluZ2xJR3l2bXMwUmQ0Q0p5MmZPbTVOY040bW01eGxlVCtN?=
 =?utf-8?B?VUhzTHFyYTh2ekNKcnFWR2tXQTJ0aUE2ZWJhQlFiZkMrVlVRNWZYdXQrUlUy?=
 =?utf-8?B?Ynh4U3NtYVI2QXp1NlRhOVIzZENxWmpGR3J0YmFjd2x3KzJ4QVYzcnJTbmhX?=
 =?utf-8?B?R3djZms1WVFoOHd1RUJycS9TRmhRckVIcGR2SzhBa09SVFkrOWEyS0dNaEJO?=
 =?utf-8?B?UGFWU2lWUnZObUhBQ2tHWGhuNCtmbWNOR0szT0hOQnpiWkZ2Zm9VRHBiZW16?=
 =?utf-8?B?WE9tVG9iWnVLeWNyeXV2WEpNUnMxOUswT3NITC90VW1aVTNRRTFMT0NNSGFu?=
 =?utf-8?B?aHQxVlpRWmN1WStNZGlvcC9zN0dFNEl6WExrQlVXTERXZ1p6VUtoSnF4aEZ0?=
 =?utf-8?B?YW50YTAvaTJSQVZZYXdkeFlZQ29qRERjcnlzL3RNRHNMNnBBUytoOHZxejJN?=
 =?utf-8?B?VVZNVUUrN0VsMVZuM2NoZTJSSE5RRU9kanZ1R0ZXWjgwRHR4cG0wRUY4T2g5?=
 =?utf-8?B?YTZSeWhuN3I1ZUg4aVhJWmVPRk5qTnBNK2o5OXRpN0dsZll2OEY1Y0xReFF3?=
 =?utf-8?B?VFFSY1RpZkdVdlN6ZE8vTXJHRnJmV1loNW84N1h2MWUxMXBsRW1JR25BQ1l3?=
 =?utf-8?B?ZXBLazdpM2N2SFJFUGx3NGVsRUt2WU40QklESWNZUkUvVWNjQUlheDlwYTBB?=
 =?utf-8?B?bXBhZUhOazlIQWlzc3JSNzRCRElldncwN3ZBQVNKZzVORGZRcG9yaXpaaEtp?=
 =?utf-8?B?Qm94N1VJelByQUx4cjVOeE40UWlTTnBLZTUxeVNHZktsU1JUR2pSYUwxS3ZF?=
 =?utf-8?B?c0VocllRWFYrUHlmTDEwTll2TzNUR3VWeTdDME0vZDR3WTZHNi90TlBBOW1k?=
 =?utf-8?B?OFZLYTAyUlJLRFdxVkNGOVZFeDJRdHo1VnQvT3BGOXp4VU41TllObHd0MVhR?=
 =?utf-8?B?ek1lRlFBTzJxUmhoWHJEU0lMZVFtL2dPSEZNYXQvdmt0M3FEeTZGbi94ZUg2?=
 =?utf-8?B?ZU01RXU3d0RIYlVCeFVtSDFTb1o4L1c5bEVvYkd1ZC9vaVJBM1BMMW5uMGVy?=
 =?utf-8?B?aGRrRDQrdHh2ZWFDeWJoVExkVEU0b0xhbUpTUExVcGhDeTRnSEpORTJSQXI4?=
 =?utf-8?B?NzYwUFYvcGVmeElTNi82TS9HVklNZWcwU05naTVPNlRBaUNpNTdtNmFIa2xN?=
 =?utf-8?B?Q0oxeHZzRDNZNEZBRHE5dXdyL3o2T3V6V2dJdEh6MnZOUVVFMEFhM2JXcjA1?=
 =?utf-8?B?YUExbnJtUGExdXUwcGJ3QmRWblZlY2VwWjhSL2F4VWxCTUhvYkhSV0x2MFdD?=
 =?utf-8?B?b0JZUlRRai8wRTE1QnFvMWdKL01kdmpQZmI1eXBHZmh6S2tnZ1pVcjhvZVFK?=
 =?utf-8?B?b3FqUnA5cnFDVjd6MGFsVTc1aWpSUnNwSEFEZHZBVVdXb282Z1FSMHE2Wlpw?=
 =?utf-8?B?UnNHa3VEeG5DQy9WbFpaYnptWlNVMmMvZkhPS1FlSG9sOWtvdjNMUlk1UnhU?=
 =?utf-8?B?cXhqcnVpak56SjBwbExiY0xxblV0dS9nTVlrVmNHdzY5Wkl0TXVxYlBJa2RR?=
 =?utf-8?B?b2U0bWN5MFoySk83RklkVm5pdWxyK1FQb0hZZHo4UGdNMUVVNEhoNkpYQ1lM?=
 =?utf-8?Q?oq51aSSbnHsHrpg96eDGgbCQJ?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9e7353f-6811-4e96-7993-08dbf4a6d877
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 08:56:03.8092
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nsBLy+UTSZciGEoRTyLyHZepBoHAtniLIs+KoZWeZQDrpKRtg6lTXuB94ciI6IJvcGH4BVNS4UdDKm2EZywdMQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9584

On 02.12.2023 22:00, GitLab wrote:
> 
> 
> Pipeline #1092667236 has failed!
> 
> Project: xen ( https://gitlab.com/xen-project/xen )
> Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )
> 
> Commit: 525c7c09 ( https://gitlab.com/xen-project/xen/-/commit/525c7c094b258e8a46b494488eef96f5670eb352 )
> Commit Message: xen/arm: Move static event channel feature to a...
> Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
> Committed by: Julien Grall
> 
> 
> Pipeline #1092667236 ( https://gitlab.com/xen-project/xen/-/pipelines/1092667236 ) triggered by Ganis ( https://gitlab.com/ganis )
> had 3 failed jobs.
> 
> Job #5664669062 ( https://gitlab.com/xen-project/xen/-/jobs/5664669062/raw )
> 
> Stage: test
> Name: zen3p-smoke-x86-64-gcc-debug
> Job #5664669074 ( https://gitlab.com/xen-project/xen/-/jobs/5664669074/raw )
> 
> Stage: test
> Name: zen3p-smoke-x86-64-dom0pvh-gcc-debug
> Job #5664669076 ( https://gitlab.com/xen-project/xen/-/jobs/5664669076/raw )
> 
> Stage: test
> Name: zen3p-pci-hvm-x86-64-gcc-debug

None of the referenced "raw" files look to have any contents at all. What does
this mean?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:06:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:06:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646632.1009082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4uA-0001kP-Mo; Mon, 04 Dec 2023 09:06:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646632.1009082; Mon, 04 Dec 2023 09:06:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA4uA-0001kI-Jt; Mon, 04 Dec 2023 09:06:18 +0000
Received: by outflank-mailman (input) for mailman id 646632;
 Mon, 04 Dec 2023 09:06: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA4u9-0001kC-Ps
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:06:17 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2062a.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61402c72-9284-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:06:16 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DB9PR04MB9236.eurprd04.prod.outlook.com (2603:10a6:10:370::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 09:06:12 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 09:06:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61402c72-9284-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YyPzSinaoNfPWUr0kY4xSTFYlKdj309y+GQSg9E4E/Qw1tRb78N1hqdcMwS4ROHKjD8DHh9MGk39R7fZ6omQ87+Up1dpXP4yLkhQCHlz1wdYUe+MRq6iRhyJPFGYLyv6Z9tm4Xf/mRFkvwjDco7E+lZYodEFWag29e7MCksMl/8ww2ObaVR5spIQWccPdWpGIsNbcDeLkCW88sLSAnoH1eDaXYARt9iQWcr5c0VsjdZ11qEsdPEjGGZju7Es+FLRbd+V9KWXP7y6ZSelibEJOBdSLaQpfOg7mai1Jh5svN2IgJ/Vdj9IPSEKFS7W876SjVf/pA/sfDacJiT9oHivAQ==
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=TL2xyluej5IlMzpe6AGxteDzWrBUSR2Ws9tBegKHXyw=;
 b=TK4X/2z1R7t3HhhDEzey/OEQVzCklOrZkgQ3MUmgiulr25QazIv4ASAjpbMHICOOJaFoDgaGsp3xp3VAxaf1SCoRdBJdyUWK5+zewqezB/oZBjk9pWdxzhqbR00AaSNRbutiyAUT3Z3627OD6M4d92lRxDaUWCMqMmBfi4UyEhTzxJO/Xllr6zXhcrcl7Yo3NSFsFE8+DqG6HqqS4eGjEJCs02ft6Q8POuP1Xkr/cmX7Ci9Pwyl4QsBNQnAf8cVruhi4W58C079UJ6iPaa0KyPycCgWQXDfqzLDCisHE9UUcSzZ9D+i5YzZQ0Cyzj3moZLx7b6oLkDNLKn+BZyXvGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TL2xyluej5IlMzpe6AGxteDzWrBUSR2Ws9tBegKHXyw=;
 b=YUVJ9C5xYmZln+LftN7VVK54PbDi6nQ0JdTNw6fv+q6fHAxZHs+XIRc3dWIfdGCcsb9c0yYgnG2FEKgIbsr7x7ge6+BQmjJEUjDsKyySWZwqnVihiqvuNYj8nR+Fr1YwqiLiSpCOcb4jKFTHfzUvdaciFX3qykN3qn2Jr1S8lHHyGXAs2nOMN8MDlSvpx41NI7nIHc/sJbZmM70rr7AaagSmRFdmcLq/WIe0t5+iX04qhAqu9hhTtioRf7QEe0u/5MpDEByBoT9SmdQFAjNR1HKyzsAtEOxG5QWap08Rp5llGyKA8xooBEj90u0a3GjIp6wZXLFtp+mXchAjagRZwg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
Date: Mon, 4 Dec 2023 10:06:13 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
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: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR3P281CA0169.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a0::8) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DB9PR04MB9236:EE_
X-MS-Office365-Filtering-Correlation-Id: afe01a9e-949a-4370-498d-08dbf4a8427d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	PMMMyKuQex+1XDp4WOEtCWBQ/YVvhepe+kMvRb93wx0QfyTHDaUPvv4Ay9br1FcaUK12DcWk4wYOECGlACsuWf0hEEV3qBiW3PnJ2Pf8YKcFyCcOPFKQT5nraB0AI7zH4Ba3kUVBVBlFMFxHwYNSBkQSqkt2gaEaepW8iCZ7cPSqH2UNhVZFV49MPn/UEllWXXnBzP09XTNZNyVaPwuoyQizcAWCJSyOOSMnqy9pEIjJBpwjFhhMUGBxh6htiPnKkSxkT3WmErreMpaJBXRIBr6rxG6qBTN0p0dIfh38hk5KtwS0S9XL6PSqHWo/W1Mg4bjr6eRolorJ04a9endgp75kcVM4enK307rhxyTvUjxT3rNw2n2U++tOiqynbwKkIk3VoGC1P7TWQcR9UiVWOQm4NFLET6E2+GIlWItEl1+vDZhQB2U1a/+Yq1MmrzgHMipAorQb4MJtvAAvnSWvQaAetKHRAXCxsNjO6jFSpTGSTDa0bwFXDAIvSLrLN9/CGKEMFGPcazTD/jpARtJ8PhwDs0fNL+rLkw4yc13HgkFGg8x49QPZgHBCqbqDMllns3sVEY/A5/RNC1nkEgPdc/lUs6BRflsCIl4UyPWOUAC3qujq8utoe0QRrw0e6/2aTplfbMqCMEMDxI2AicJvWg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(346002)(376002)(136003)(39860400002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(6486002)(4744005)(36756003)(6512007)(53546011)(6506007)(26005)(2616005)(41300700001)(38100700002)(86362001)(31696002)(83380400001)(478600001)(2906002)(316002)(66946007)(66556008)(6916009)(66476007)(8676002)(4326008)(8936002)(31686004)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WWxjNTRFU1I3ZDY5bTZLVDl5dEU4b1NpYjgwd1V1dDNSWno2TTkya2MyWmFD?=
 =?utf-8?B?akkyREJJaTdPWXk0WXN5cEh6VHFqT3BWb2tHRGpRQ292WWUzYWFhKy9jVTlT?=
 =?utf-8?B?Y3Z0WVhDQ3hiUlpsdmo0TG42K3RaT0c4dnFKdVZ6aysrNTV5dnVNYng2N3Yx?=
 =?utf-8?B?ZEg3RnpHM1JpL1ZoVlp4eUxDd0t1RXpDdmF3cGhSRmNNZklWQkllMjRtZUxi?=
 =?utf-8?B?LzR4elBJMEJlS0hXSGlla2p1VXg4YWZ3RlJLaExVeVlHZCs2SFNoZ0oxS2Rz?=
 =?utf-8?B?emJJNVRnUzFCeTRabk5oUU0wbEFZQzZKUzY3OWtldmxiNm4ydnBvd0tMZ0lI?=
 =?utf-8?B?SkY1NGIrT2FnZ2JWL0dpQ0ZTSm02ejZwbU5TcGF4cFNnWXYvUzdGRXNjaXdz?=
 =?utf-8?B?ZkxZRFhTUmFPZnRxWjY3VkpBU211SlUyeUV5TE50RnpKQnMxY1ExME1PWHRS?=
 =?utf-8?B?ZFpWMXZxNWlxdUlVNmphVWJCZzl5MGZkVE5EMExJL3FJRHhDUk9rSG4xQ01k?=
 =?utf-8?B?alc4NndWQXphTkQwT1BWYnhaWnc3cEd5UEFqdUJ3ZWlnQXdaYjhKTVVwTStO?=
 =?utf-8?B?QzJmc3NQZjBPa2o4d2p4MkJRQksrOUdFODVkbGVualBhM1paOWVPWDZXN0FE?=
 =?utf-8?B?bjFoWS9CNmhYNjRycFYzcGh1enBOTWVqWmRZREp5c3NOUlRNZUZQdmphVXE4?=
 =?utf-8?B?KzM5S0NKMW4xUXNXVnVyTTM5MHp5QzU3UjZPMlVDY1AwSzQvd2hIOXNmUTI3?=
 =?utf-8?B?c3diTmxud05FU1cweUFSeWh2SThla0lwMSs2Z2ZqaGxMUUs1WFhUdjhVRXli?=
 =?utf-8?B?ZlRtclE4bEtsUUJiOCt1NU9YMHRjZmc2K1BESzg0M3g1VEFINStESllNSDVL?=
 =?utf-8?B?ZUptcy9LODR6bHFyVnJDbktnRXlwT0h0K0QxTFdhTjY1R3lZWDhPTXV5VG45?=
 =?utf-8?B?aTJ1TzZsL0JhMVh4T3Y4bEZhbUYrdnc0WEpRak5ZUFAzd3lPZ2wxcy9LQ1BU?=
 =?utf-8?B?ZnRqL1l0TkZTSVQ1WXZqaHpxL0hqc1NEbmVvdE9takVXcGpWTERRM1hJekgv?=
 =?utf-8?B?K3pwaVpJTnA5QkFhUjAxbUZsc2N6OFZYQjA4bmxvNGJTQ0FWanJrelNyRStB?=
 =?utf-8?B?bEVEbXVUK29rZThORlFBY3QxaWZGd283RDZMc2ZDb2JGbWNtZ3piTjRUa282?=
 =?utf-8?B?TEJGUy9YK2gzc2JEQVpFS1JLaXdhZUcreGQxdnZwdWN2Y0FJdEpyK3JDVHZa?=
 =?utf-8?B?NVNEdHl6Z2ZmZ1pJS0lHZmk1MTdzSGlTd0FhajhWRTUybjl0c3ZWNHBkQTlD?=
 =?utf-8?B?Vm5iR2UyMCt2azl6WW93akNrQ0ZkZmdPMHdhbE5JczUvZ0FIY2hnWDFrWjRo?=
 =?utf-8?B?T2srVHZMVlZJR0JEdDVqYW9DbWtaTVcwWlBLR0ROZm9rZ1N6STQrLzVKSXBj?=
 =?utf-8?B?ckpsT1ZoaHZzZWY5ZUQ0c1lzV3R4cTVHRTZIQW8rakVXREh6MnMxSCtIRU9u?=
 =?utf-8?B?UFNqczNqbnRrYkZkcGdyaTZ2VG9UdWU0TUFZVW9RTDZLcHVDUWk1c01oazBJ?=
 =?utf-8?B?YjRJZFFGRnJzcGUrVkNVbzZWWDE2elJic1NLNmorN3M5Y2dlMVNUblkxQXg3?=
 =?utf-8?B?VzhSNVoyQjQzQ0QvaExlSmpyU2dqZHFYWUF1VUN6SWV6cTRhVDRGb1NPdDFW?=
 =?utf-8?B?NVY3MkdwYWdLREJpTkZlRDNyUnVEVmJmZ3BBZFJGVkw5VE5yZnZKR3o1M3R6?=
 =?utf-8?B?L0tCZ2FWQ09UWFRZM2lydGNYbTE0REF6Q3pBWmwvY0o0UnFMWjV2bGFzdlFt?=
 =?utf-8?B?K0l6QUsrelR6KzRwOHFLTncrUXlNaEttNEhQNTB5d2NCMmRyREplSWFDZFBG?=
 =?utf-8?B?a0ZKaDhveEdXWDZVMFFTbTE1UzFaZTlZQWV1UHBGVzh4Z1R0WmxUYzF0bVR6?=
 =?utf-8?B?a3VMejliSms0elpIMERaR05KZnpRM0hxSVJqaWRaVXh4QXVJVk83dXd2dnpi?=
 =?utf-8?B?RDA0NGw1M05EelRKS0NGUklwanN4dXMrelhrWGxtaTkxODB3VkxxcnB1eXhC?=
 =?utf-8?B?LzRKLzVkUFhFcXdhT1owaHR5L3lKVnZTazM4bC9qOTEvZzcyb2F1YS9VY3R1?=
 =?utf-8?Q?mnMUcexr3wpf7pW9ngxpmlKE3?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: afe01a9e-949a-4370-498d-08dbf4a8427d
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 09:06:11.1826
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FT7EWGoErY+2Ek+jiG+y7tz7GW3fqNjlFaqjARub39/g6KBZOzC6BAcOn2+KOR80Hd4Se9250senqmX+cckV7A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB9236

On 03.12.2023 10:56, SÃ©bastien Chaumat wrote:
> Hello,
> 
>  Trying to get the Framework Laptop 13 AMD to work with QubesOS I hit the
> following Xen issue :
> 
> Xen version : 4.17.2
> Kernel : 6.5.12-300.fc39.x86_64
> CPU  model name : AMD Ryzen 7 7840U w/ Radeon  780M Graphics
> 
> The touchpad is not working (not detected by evtest) because ( see below
> for XXXXXXX values) :
> [   10.215870] i2c_hid_acpi i2c-FRMXXXXXXX: failed to reset device: -61
> 
> which is maybe related to the previous messages :
> 
> [    2.065750] [Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW
> (0x0)

Not very likely to be connected to this. Afaict you'll see these on all
systems.

> ...
> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt

Possibly releated to this. You'll want to obtain a full-verbosity hypervisor
log with a debug hypervisor, as there may be hypervisor debug messages
telling us what Xen may not like.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:13:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:13:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646639.1009092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA50m-0005uy-DN; Mon, 04 Dec 2023 09:13:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646639.1009092; Mon, 04 Dec 2023 09:13: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 1rA50m-0005ur-AL; Mon, 04 Dec 2023 09:13:08 +0000
Received: by outflank-mailman (input) for mailman id 646639;
 Mon, 04 Dec 2023 09:13:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IRNf=HP=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rA50l-0005ul-PW
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:13:07 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20622.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54d4e829-9285-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:13:06 +0100 (CET)
Received: from PH8PR07CA0015.namprd07.prod.outlook.com (2603:10b6:510:2cd::20)
 by DS0PR12MB6488.namprd12.prod.outlook.com (2603:10b6:8:c3::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 09:13:02 +0000
Received: from SA2PEPF000015CA.namprd03.prod.outlook.com
 (2603:10b6:510:2cd:cafe::a9) by PH8PR07CA0015.outlook.office365.com
 (2603:10b6:510:2cd::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Mon, 4 Dec 2023 09:13:01 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015CA.mail.protection.outlook.com (10.167.241.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 09:13:01 +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.34; Mon, 4 Dec
 2023 03:12:34 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 4 Dec
 2023 03:12:31 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 03:12:30 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54d4e829-9285-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oOHaUdh07Ak2LgpSH6y+954Y9QwGNVXpKZvx7mjxB8TjknqYmsax5FTGcP/NgScaUaV+zAijcjB+1omWoV7Yg/3A7SK39kvCmetxVuGSW7snj299kw6oqjhaxQglDRdpHeN/i18pRlAgGyNlmI7v4MOvGWn8bnDGLi4E1OO1cWRmnmSpHI/EdGk8iqOyGnrNRZjQIChfy2yGYooQO8rRZo1TPbnpCks38MRQVyY6dw69QJ/ebyReycObw6FIECgWi8CuSZLtAvquDKbLHP/+Q4D0MHtCYXA/vD/dK0dTvsm9M353CwCr8yeQzFi8K82sg0/I7bR24CpmUwu5beLxiQ==
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=hxbgpCgy8ggdSBLguLWW8+stBPfnm0i2Fiu4yP5/TYs=;
 b=QRGhoo3qY2Lh73C+X9rTnUUhwu09jwkYOu3HJFuc4XE+9Q/qBx3DwTFfrdds0j876NyGhcAniero1L/0DYLpaPg4esgexmAX+d3+K73iBchIUkX8tkNtWjoGoVPPjjne+OtjATxqkENBenNxj68tlQcTYcoOK6N9+4aoBdThrJpKyXu+TrkqSUgHK/ukb/a8PjcUv4UcQcHI26PyNyB3Zzpc2nagXOwRx8BrQBKQswz8+5mJytCJSGp85C5zrptxtUOKNHNECotjZhFoBjNfUzJaFIhvk6ZIaBWR/1SQYQ0valm+fLWR7bCHX24JAoznMxcK3xEjXC8riZvRIkQ/Hw==
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=hxbgpCgy8ggdSBLguLWW8+stBPfnm0i2Fiu4yP5/TYs=;
 b=dRD1QSysVoQEltMOC9hcN6Q84P3lMeQ60bsh0b+/avTKZZScVJaQs6oCzIyNZxYwjuzhZnLtBb544gxEuUtvNFySCkTyhppNAtNmigoVicmZzTeAKb/ncmtIM6LDUqBJSo/WW6wdLEPMhmFKQN0A3gDLXJP9luz11c5aSWVWB+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
Message-ID: <55353425-2ea9-4b3b-a415-b6c515006c61@amd.com>
Date: Mon, 4 Dec 2023 10:12:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: xen | Failed pipeline for staging | 525c7c09
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, <xen-devel@lists.xenproject.org>
References: <656b9ad4c0656_2c9b1b813232d@gitlab-sidekiq-catchall-v2-744664b889-4scj5.mail>
 <fcb2675a-6570-41f7-b386-93fdb4b513fe@suse.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <fcb2675a-6570-41f7-b386-93fdb4b513fe@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CA:EE_|DS0PR12MB6488:EE_
X-MS-Office365-Filtering-Correlation-Id: 12f6fd88-e6c1-4520-14d4-08dbf4a9372b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Mkern6ZkFxkSrzS4gp+FcPZmvEmrrvFcmuENH7bPEskB6hPwMhnsZN9V+J3LEo+d3RhgR6svv36ciwfXxAu53Cmv9GLR9F/LWpVxNnLxyw1fO6svYY4UhRzP8MVRv6Pbga1EaI893ForKuJ/gxAp2b2ECvIw+KZowoCPd1LvRB1aC3tuBbja8rVW1feuLQ+rWPhPQUNoAnYkn3Ux9dS1PSYyv+GfhPckfZjity1RUZkRA2DAi7AybjavF7T6g73hlPZquDHzBkUMZRWzGxwpmdEYEeeDAdnUU3uYen3xO40DOc+kAqcKznw5yivXC1VNX4vhkpkrKGTbGH9RW1Qmt4S0oyR2Ze3TdoOfqrVpyy/Ji971h7CKzsGr/lZiCWQisWWR3KlseahVAn17JndUMwYKVioAzPe34hXtGIkpixQS5jzWl0HkmjGtMvByTkJDDB2Nqgl+gZudpsYlziSGhcKPMO0GG9VEPaHIb1WMKokZZm/uaQyLOS5w1Ug1+dx7Oz/2WlGBFX92zUuFmECt4MK+3fC/Xs8DQproCJuPIYH3uqpA02vXyBsKD7QJD1FFvNcVhmsx6J6nPqpDKfx7WWxCGOngOdvA1Nps11Ei5EHiESGF9N6DQL7NWbM/6XRcgaXWyfBYbvK0PTySrGp5kauYb7ZmZwvQlFUsKT2rFypIW3PsCWjYIUbk9rQwdmKqVuZPH1W66TaEtCYJ18lPCZd5dV8WpY/1GaZdyhUlYQF1veJnTWmVJZ+MqeQ+YzelyS+bPTEUB82+rA7aIxjPmfdyypLXZfU/39zoxk/70svu7h/Y+Qdb6AeQ/iXVOjPTw88k2nWnuR1/NJMXox8cNw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(396003)(136003)(376002)(346002)(230922051799003)(186009)(64100799003)(82310400011)(451199024)(1800799012)(36840700001)(40470700004)(46966006)(110136005)(70586007)(70206006)(316002)(16576012)(478600001)(40460700003)(966005)(5660300002)(41300700001)(36756003)(2906002)(31696002)(44832011)(86362001)(8676002)(8936002)(31686004)(2616005)(36860700001)(83380400001)(40480700001)(47076005)(356005)(81166007)(26005)(336012)(82740400003)(426003)(53546011)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 09:13:01.4652
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 12f6fd88-e6c1-4520-14d4-08dbf4a9372b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6488



On 04/12/2023 09:56, Jan Beulich wrote:
> 
> 
> On 02.12.2023 22:00, GitLab wrote:
>>
>>
>> Pipeline #1092667236 has failed!
>>
>> Project: xen ( https://gitlab.com/xen-project/xen )
>> Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )
>>
>> Commit: 525c7c09 ( https://gitlab.com/xen-project/xen/-/commit/525c7c094b258e8a46b494488eef96f5670eb352 )
>> Commit Message: xen/arm: Move static event channel feature to a...
>> Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
>> Committed by: Julien Grall
>>
>>
>> Pipeline #1092667236 ( https://gitlab.com/xen-project/xen/-/pipelines/1092667236 ) triggered by Ganis ( https://gitlab.com/ganis )
>> had 3 failed jobs.
>>
>> Job #5664669062 ( https://gitlab.com/xen-project/xen/-/jobs/5664669062/raw )
>>
>> Stage: test
>> Name: zen3p-smoke-x86-64-gcc-debug
>> Job #5664669074 ( https://gitlab.com/xen-project/xen/-/jobs/5664669074/raw )
>>
>> Stage: test
>> Name: zen3p-smoke-x86-64-dom0pvh-gcc-debug
>> Job #5664669076 ( https://gitlab.com/xen-project/xen/-/jobs/5664669076/raw )
>>
>> Stage: test
>> Name: zen3p-pci-hvm-x86-64-gcc-debug
> 
> None of the referenced "raw" files look to have any contents at all. What does
> this mean?
It means that jobs got stuck and we should ping Marek.

~Michal


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:15:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:15:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646642.1009101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA52f-0006We-Ts; Mon, 04 Dec 2023 09:15:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646642.1009101; Mon, 04 Dec 2023 09: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 1rA52f-0006WX-RD; Mon, 04 Dec 2023 09:15:05 +0000
Received: by outflank-mailman (input) for mailman id 646642;
 Mon, 04 Dec 2023 09: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA52e-0006WR-KA
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:15:04 +0000
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01on0611.outbound.protection.outlook.com
 [2a01:111:f400:fe1f::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9af155b4-9285-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 10:15:02 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AM7PR04MB7142.eurprd04.prod.outlook.com (2603:10a6:20b:113::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 09:14:59 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 09:14: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: 9af155b4-9285-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CjjFD73JYpo8mkbr/oMuVuIoOu+T1IlEcd5IJzKSht7T4SvopBrziM6P4Emq7SI5HJgjtHRPp0DigO8EKp6XXIBbGl6Qqk1zO6BJR4q1YgapFhwgT5K+Cj6uwGhsMuD8rctTIU8qZuqXznGvaM3h7n4wapikjrUPOXt6YKLh2TY4yJMb5snUQZbYApC6InAcTlt4ak43LWw3Tn+WFVASegVqscV7uoP28yt7383pAeBD2QjjBJ4YRGdDV7IbusMi9tjauCXXsaGiZZYazxuhndf/I1ipmzMbOiCa51pdgKhMlS80Bl26gsNSnt/2U6bpIbDqRQsSrGaT9+l5ldaHnQ==
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=vSi73X5pv27r1eOFMOjFwIw3O3Gz7ILyW78bNzFZhe4=;
 b=SGdiNyd3o75HkEEnqDsuQvDwQeHgb/mqmfTZFzVhd0Aqxrdh7umJeoq0DXkl/tW8dnZKkqsmpw2AtKPApSR+LZ1bPlh75MBQH4mOKBaJPTnocgtmRJGZiNSwMxFkPlkQmHnwe1FG+v33q/3gqpXkYAInVYRrWj8IdgDYCzRUkbn5lr6CPTQzhGrfetfGFvRhCqSV2Y9pfyWDUq6EmxESYd5AOfsHK+J9+WJlpocIeV44PMmVBQUdfXMpY9mEX55XyZbJM5ko/+QJOVg8xZ8XtpXQUObmF0cOgAbrrUaWXFxlZRQRN8Vxt+xI2RwL0TThHIthvmYyCyLiaAGifKgScQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vSi73X5pv27r1eOFMOjFwIw3O3Gz7ILyW78bNzFZhe4=;
 b=Z27QO/H4Db5qUgmbiYpVEPaPnu2zePnPpGEkrkAhMciO26R5M2h6UQ2PkUKiRvi8T/04o+OMoNzGpTpjx5VX6BEetwk1d6nYoyqnrhFpadYfT6spKe/Yh4zs9m3JzjkfxVF5HUN4n121OTOJcVY02TrKDqSVtocS/re+OPtV7SQvLpBMMLAdceDCAwbeBHwtMuD+fw0VT0iDS5Rcb7hIzkDAD4ZsJf0o0SgU0ZaZxYyPnbaNhoS9yd2vtZg00c/ET9UXbs0tj+yVPgbwufiuh4HouB6lgze+jjvlOdB8DVYGa10ayPs1dGdc7ibPAus0mczbSl7a/2FHb4j8con9Cg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
Date: Mon, 4 Dec 2023 10:15:01 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR5P281CA0002.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f2::20) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM7PR04MB7142:EE_
X-MS-Office365-Filtering-Correlation-Id: 73881f5d-28ba-45ed-babb-08dbf4a97d30
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	bZ3E2aSt8bJD0esz/uzr6NQHEPSKZot56P3WX6qbvDnCuZnyWznjpGSiLF6SbBkLK6XuDb5DEEMu+W67LpoTP/Z+/N9Yn/xA3fsWA5+UF2uR4XQX33DezwouZDMczkpR0yTqzbHBo1Lb0d3h/ymuuI3eaEIeJKVWiRgaWJAl3o/1mBu5KEGtzzUdhFsPtVv8Ub2/pfJzV3tcO0Se8ihv8FpamgRQ/UOFKVnqPQ091Sl2jVDq4FSS9lzydfLM/MnNyBlBTUaovBBfURZm7yW0Dc6oUEL5zlTDMcG7wAWHSTFkesk99E0KUwLoBwXPb7a+Ux/loq18TIooYNq0l79GCYJNUyfAwE6mCOvBA8SOD7RJ5BiXYJG39x35fvB1jvthquMeLKeiLhC7lwUkPdliol5/RoDE8/t8e5uXdfmfhGw5j8p6FQuDRlgRVuqjBEULadxD3GJ9gMdem83JVmj5KX4bpF3yT+QKPqI0AuwsR5UPBXZd9L3CAfZ3o+a89tYkE4ASgC7H6ld8n8p9O3qiiA3w3R4Jj+wa0lojFlKZEHFvBaNH9MTp0KeINWPy5UIX2oYONGHnx6Z9kbGSQN2m+5fLU/SVcikV4PwN/ygb20k09L0JqSfQrCOTtg/0aXq1okd5sSswMC0iB+QEygUlPw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(39860400002)(136003)(366004)(346002)(376002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(31696002)(5660300002)(86362001)(66899024)(4326008)(8676002)(8936002)(2906002)(41300700001)(36756003)(2616005)(6512007)(6506007)(53546011)(66574015)(83380400001)(6486002)(478600001)(26005)(6666004)(38100700002)(31686004)(110136005)(316002)(54906003)(66476007)(6636002)(66556008)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dVY2dUpocm40MzJWZWRCZjh6d0d3UDd4RjM2NUU0WjFKdnNLaVBud0RxVTJ5?=
 =?utf-8?B?RHhsQTRqMlczYTBHVnE1T0pNVG1nUmtjM3VxcUpBK3d0d0VDOFBKK2JNc0g3?=
 =?utf-8?B?K2lYWkhydjFjdUlBcmdmNTZjYkg5MGdQOXFCZUVidC84eDhrRVR3OW83MzM1?=
 =?utf-8?B?aXUrM29JRDM5Tmo0TkRlOXRrMjVXZjJ2OHc1d0NqQkRPbzRlU0ZHdGJDWENG?=
 =?utf-8?B?RmxDZTkrcUliN1VnUmlsYWVHWVBGNmdzZnpEK005b1BjWG04KzRIamVTMlFs?=
 =?utf-8?B?eDZpMnEwaHpKVU5sbmJZcTNBbGRGWkd6eXJxVkVOTjVROEFIK0ZPYjhpbzVx?=
 =?utf-8?B?UUZIMDhFeHZxay9Say96L0VaKzJzdHBDR0c4TXFqNld1SnU3aExkTUMxM1gy?=
 =?utf-8?B?U2JWRmNiYW91WE1HY3FWK2Rsdld4OFhBWHhrbGlBRlFWczE2MDZrVjEycU5S?=
 =?utf-8?B?NHNBOHZndkg0cGhiMDRWOTBHMlJiYUpYeWhqK1hoUytxQmRNcGFNdUtwYnZW?=
 =?utf-8?B?TkF1MW8rNk9YLzU1SUNrRXBWZnpOZGhKazhsR1RjKzhDSnJ0VWxyY3pLRUhP?=
 =?utf-8?B?bEt6c3VMVHJvYWJwUTBRaU16MUZma0R6NWxnTEZYaTlqMG4rODM5NjIrYkQ4?=
 =?utf-8?B?R05veG5aZkJMNERDd1RDZjFmV1FnamRQWlVFZkdzK3c0NStpOTVOc3VLcEVB?=
 =?utf-8?B?MCtNaFkxRzJmMDgzTnBuemtodDhZeitiT1FMc3dKUFIrdVJLOGJtLzdSdk4y?=
 =?utf-8?B?eGZ0dEV5MTlzMTJWMGs3djZicmhFcnVwWitJREJ0a3Q0eTlRYVRRa29MZnVu?=
 =?utf-8?B?dXAyckhBR0dsVWw3Y3d2QXdZV01UVTJ4L202MWZRRGM0UG5EZzBqdWlyR3hJ?=
 =?utf-8?B?amJMZm03ei9zYlFhaDRGaGVuRW1nK1ZQV3pNRThNZFZPL00vMnplWFd5alcv?=
 =?utf-8?B?bWFOS0FjMnhGRFlOZWc2ek4vZHJURURpUHlZUXI1ZTZjZ0FSR3RIVXNJVG55?=
 =?utf-8?B?aVIxU2V3OWp5aUxJT0EyUTNzMEg3bzhpWmxERW1EQVpnOGJHTWRkODJXVUh5?=
 =?utf-8?B?OER3VzQ0eFVhVkVRbkovUVN2RnE5UkFJWG1SaVRwbDV0dXBEMkQzYXhuVlhn?=
 =?utf-8?B?a2lkZEhFeHkvQ09zRU1KWklIcml6RUxjVzY1U21OOXhsMlBRaDE5RndPUUtU?=
 =?utf-8?B?K0ZISHN2SmdXaWpsT3IzYmczUDZIZ3dtQWtmdEZkcXZOUUJSZlNMdXJWMDNM?=
 =?utf-8?B?YkRVSjN6ejBlM1g4TjBCNndEbHFrRjlCNVJYbXJlcDlGSm5MQVlZSU9xaHRa?=
 =?utf-8?B?YkttQzd3SFpYKzdkTGxwaVlzUkpSL2xQRDgrTlVxVEc4OTdtRThZQUNjdnM4?=
 =?utf-8?B?dEZNUWMzUk4zc09TRzQyZnRjanMwZUNjZEthcTlPVkp3Q0JlRTBuRVBKVlN2?=
 =?utf-8?B?dkpqWW9nSkpyVzMwa3pvY2JEVWRhalJiWmxGSlBMSnpsd2xSV1NvVy9xM2Fm?=
 =?utf-8?B?bGdETTJHczduVExZQXdVL1NuRk5nVllsb25PMzZUanRyNllxeTV4TzhoYW5L?=
 =?utf-8?B?MTRhdGFrWStxTW15SGRHbXp2bmppQlYzaC8wYVE4NGdKUXR4ekc2YmNvUmRE?=
 =?utf-8?B?WkUrUlhmVTZMSWJXcG1RNlJTeHBqbU44Z1Q3dUtxVDVybFVYK1hWTG9RWERE?=
 =?utf-8?B?MmxWcEdWL1dNUjREd3l5ZEpsYVBvaVE3aHVYT0N3Y3VOWHFuREVBMXdXWVJ1?=
 =?utf-8?B?dERNTmF2ci8xUHVVbDBOMVo3dDg0NEYzTm53dHlvQWljZmtackNLQ3NGNHUr?=
 =?utf-8?B?bDBsaFV4VHAwV2ZHNG1HTEtCb0RLRWNsS2J5SCs2VE5vVThDTlhmdGl2b0lu?=
 =?utf-8?B?dmp5KzFobklOdnVSREtjR1BacHNCWDVPSCtmWkJ0TGNVakprSU81Z0d3NGR0?=
 =?utf-8?B?S3VTd0hGT3FQRGovMTdYZlBDck95NVpYcE5QbkhvNUY3Q1lFb2dQN3VQeTFt?=
 =?utf-8?B?K3FORUx1RC9kK0VWSmp6YU1Ub0k5VWpNNzZiTnFIYW1RU0RFbFBwUS9oalVN?=
 =?utf-8?B?WGlpM3BpbEE0ODdGcmxJNTlUOHd4eU5hMlBGUkNZbFJWbmJrbkpYNkNUYjVC?=
 =?utf-8?Q?RC4m1fPy6x9r/y7nBdokfJtml?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 73881f5d-28ba-45ed-babb-08dbf4a97d30
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 09:14:59.2165
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: s0FbMR0GulqQ1qeCiDSvYoVOw+D0KfBp0bRxqtZoTJjXV1ctbhRC7dHZNOtFJTX7fjusPZJaVbiXc2RnsksFSw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7142

On 01.12.2023 21:12, Andrew Cooper wrote:
> On 01/12/2023 7:59 pm, RenÃ© Winther HÃ¸jgaard wrote:
>> If I set smt=off and try to configure cpupools with credit(1) as if
>> all cores are available, I get the following crash. Â 
>>
>> The crash happens when I try to use xl cpupool-add-cpu on the disabled
>> HT sibling cores.
>>
>> Hyper-threading is enabled in the firmware, and only disabled with
>> smt=off.
> 
> CC'ing some maintainers.
> 
> I expect this will also explode when a CPU is runtime offlined with
> `xen-hptool cpu-offline` and then added to a cpupool.
> 
> Interestingly, the crash is mov (%rdx,%rax,1),%r13, and I think that's
> the percpu posion value in %rdx.
> 
> I expect cpupools want to reject parked/offline CPUs.

While the only explicit check there is

        if ( cpu >= nr_cpu_ids )
            goto addcpu_out;

I would have expected this

        if ( !cpumask_subset(cpus, &cpupool_free_cpus) ||
             cpumask_intersects(cpus, &cpupool_locked_cpus) )
            goto addcpu_out;

to deal with the situation, as parked/offline CPUs shouldn't be "free".
JÃ¼rgen?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:20:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:20:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646648.1009112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA57v-0000NG-GA; Mon, 04 Dec 2023 09:20:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646648.1009112; Mon, 04 Dec 2023 09:20:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA57v-0000N9-DT; Mon, 04 Dec 2023 09:20:31 +0000
Received: by outflank-mailman (input) for mailman id 646648;
 Mon, 04 Dec 2023 09:20:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rwQq=HP=bounce.vates.tech=bounce-md_30504962.656d99da.v1-7fbc7c9568744c279cbc27da4f4fa45e@srs-se1.protection.inumbo.net>)
 id 1rA57t-0000My-No
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:20:29 +0000
Received: from mail134-25.atl141.mandrillapp.com
 (mail134-25.atl141.mandrillapp.com [198.2.134.25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c7804f8-9286-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:20:27 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-25.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4SkJ6f3CgXz4f3k1y
 for <xen-devel@lists.xenproject.org>; Mon,  4 Dec 2023 09:20:26 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7fbc7c9568744c279cbc27da4f4fa45e; Mon, 04 Dec 2023 09:20: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: 5c7804f8-9286-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.fr;
	s=mandrill; t=1701681626; x=1701942126; i=charles.schulz@vates.fr;
	bh=5YwxzpGjAVX6SqE8fsMcUi7RD16Vu7jGvbwrExzvB5E=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:CC:Date:Subject:From;
	b=Gjb+naD+fOOClieVbvN5ZsnCsUMFvVBbMIhOcsa5d3m4UrL1H1iLH8Z7zPD7Kdb/7
	 BF2qXpaTAh9dD6RgWN68hcwVWuahGLr9H8133L7H4I0eHocagpO/PPVNwOvXRy4bVm
	 xuiKEFeGR0K9qiYjq76mh9AUkL1d3XDhJQd2ciDE=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
 i=@mandrillapp.com; q=dns/txt; s=mandrill; t=1701681626; h=from :
 subject : to : cc : message-id : date : mime-version : content-type :
 from : x-mandrill-user : list-unsubscribe;
 bh=5YwxzpGjAVX6SqE8fsMcUi7RD16Vu7jGvbwrExzvB5E=;
 b=kG4Wvyui203CKn7Neu4xFDM7tQtLDeE09cKugmvE2Yu7xTscIHqGrhav4VyspMLU+1Pne
 7yiB9G94j4CSs7/Q5hC2xx/j6hYBDzThlt5/QnXU4z3/Hovsl3Ep7kzVcuhD3+hFfy2fn8E
 QOCEQTx84qpKd2MApPNXqhb1eOPk9YM=
From: "Charles-H. Schulz" <charles.schulz@vates.fr>
Subject: =?utf-8?Q?Improving=20conflict=20resolution=20inside=20the=20Xen=20Project?=
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1701681623880
To: xen-devel@lists.xenproject.org
Cc: 
Message-Id: <87plzmcoj5.fsf@vates.fr>
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.7fbc7c9568744c279cbc27da4f4fa45e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20231204:md
Date: Mon, 04 Dec 2023 09:20:26 +0000
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="_av-myVoInnGpJ6ZbSELTrdJEA"

--_av-myVoInnGpJ6ZbSELTrdJEA
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hello,

Following up on the discussions on the use of certain terms and the way to
handle disagreements that ultimately lead to conflicts, I would like to
suggest certain mecanisms to more effectively handle such conflicts. This
does not mean I'm against any informal or formal voting - I think it was the
right thing to do at the right time. But looking forward we need to handle
conflicts resolution in a way that inflicts the minimum possible tension and
paralysis on the code contributions and bug fixing.

This means that we need to move to a model that's already quite common
in other projects, namely, a model where conflicts resolution is dealt with
processes implemented by one of the more or less formal committees chartered
or existing in the community governance.

What this would imply: in the absence of a more complex governance within the
Xen Project I suggest the Advisory Board be put in charge of conflicts
resolution. With a simple process that I (and others hopefully) will clarify
soon, the Advisory Board would within a specific timeframe collect and
analyze the conflict either on its own or called upon by one or more
community members. It could effectively talk in more detail and off lists to
the relevant persons and then suggest a way out of the conflict.

Ideally - it's Monday and Christmas is not far so let's dream a bit -  this
would lift the burden of the conflict management away from the development
list and allow it to be focused on development. The Advisory Board should in
these cases work in harmony with the informally proposed Technical Advisoy
Board in order to ensure its decisions are not just the consensus of its own
members but are well understood throughout the project.

Hope this helps,
-- 
Charles-H. Schulz
Vates SAS.


--_av-myVoInnGpJ6ZbSELTrdJEA
Content-Type: application/pgp-signature
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="signature.asc"

LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCmlRSk1CQUVCQ0FBMkZp
RUVCcE15NjBzdVV4LzhhVjUxZnFKcldiZVl0T01GQW1WdG1jNFlIR05vWVhK
c1pYTXUKYzJOb2RXeDZRSFpoZEdWekxtWnlBQW9KRUg2aWExbTNtTFRqOUFB
UC8yeVdQTEZvRFUvYzdFM21aYURQMW9oUApwODV4VDUrYzRKeWFma3VycHF3
MndhRlNGTllRaUgzTzV5QXkxS0VDZXRJSStxTitnMzFvTmtScWl3bVE1M20z
CktGRzZkQTJQUjdLakJMTTZ3RkF5ZGl5R3hGSmJ2STcva2hLWHRaYlJGQXhK
NVl0NWRkdEVLTys3b0tjdzFIOUMKS0R0MTZhNlM5U0pDc1dJMHhZMDdwNWU4
TDNvZitleHB1SEIreHRRMG1JUTZBdFZadUxycThLQVV4YUcrbzFrKwpGUURB
L0FJVTViWDRPYThyS0Z6RDFTTlBmWVZEY3BCd2h1a3NZbmNKaWdQYmZ2Mmdi
eWtpWmlPdXM1RGdlMVR6Ck9XaEgvRGdYUVVlUDFSSWpEeGFSWndxT25HMzFE
NEU4VnNNVjFHZ01RYnRxTzNRaTI0bVBXeDBQbjN3Q2xRZEQKVVBobzI1akpu
NVFMN0xsbTRnQkF4QWtoNnUzSXZFenBHMEk2NTJJSE1oMmU1VGxtNEF0YTRP
NE8zbVhFSU8rLwp3Qnh0U2Q3Znd3OXQxU3ZFa05kR0paZGxTc2xGeEYwTEp1
aFBLVGJ3T0hMcDhHNU96LzYrTmhvWDViZXFFUm9GCnlHdGQ1VnprY3V4TWFD
VXhNSTI2UWM2WHBqcW9sT29taUNaL0ROb05hRmFsVVpPZFV0NVhSbkpOSTBG
ZjF1a3kKYm9ielpEakkybnplU0xpTzZDNW5CdkxjMHd5amNXeGtQdjBLT3NZ
ZjBnUENYR2FzOVhiZTlTVW53dmdBRzlmSwp2VzQxbjBIOWJHVmJzYWg0Z2Ra
amx2TW5kTUVOUUNxMG9QY0JaSm84OGNvT05RR0JBVmI2RGxpa1pINUJXVWVE
ClhsbWEreFBuWk5oVDdOQ2xab1pJCj1hcUJ5Ci0tLS0tRU5EIFBHUCBTSUdO
QVRVUkUtLS0tLQo=

--_av-myVoInnGpJ6ZbSELTrdJEA--



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:24:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:24:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646651.1009122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5BL-0001jI-Ux; Mon, 04 Dec 2023 09:24:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646651.1009122; Mon, 04 Dec 2023 09:24:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5BL-0001jB-SM; Mon, 04 Dec 2023 09:24:03 +0000
Received: by outflank-mailman (input) for mailman id 646651;
 Mon, 04 Dec 2023 09: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA5BJ-0001hw-SD
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:24:01 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0600.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db15e2df-9286-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 10:23:59 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DU0PR04MB9693.eurprd04.prod.outlook.com (2603:10a6:10:322::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.23; Mon, 4 Dec
 2023 09:23:56 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 09:23: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: db15e2df-9286-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=T3BTvI+hpVi/KL8Weg0OTiFmqKUyk55yo43s16aaw95z4cDWuOoq+xXmothfD5559PJ0Yd1baB6UeiXTAwsYIBKzxQMTD7fYr2N0/xqRZbB7uL2lr7WmPUoBqaPolujkyojm2d1qpt7QzX9ETWptJWr6Dnyo5MPk3yTZARhzpzY/LQRBy9A6q9duHtMTJoQAPMgA3bDDrUtbJBYhgxpmof4c30gvJB/jAjcAfMs9TyMXwnn7WnALu7xL138mMswE6/YBT52GDJXvrk8Q1qzB82HYSerUGXZQAAi5cp0xSQsi3nOJpLnXQjGMuNa9RB2v3HpaNFix04gYlu51E9YH9w==
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=my/b24KJPWtpI9z0upvFzWYYmWySoD5UmkW4tA2ie9c=;
 b=ZZcX0K8//OhpmiiEPf1Rc5dHMa2NoEPGON+yetKMV+sC8zWDHEU4g2YXd68mCBImPySubA7t0+6rSHyf8n7eObj+5849fdAytO9Kzz/O1gK+CKfqdSxsLlT+0jeQfQG9ZvwI4J/X0MiAMZkljBiqQ+m0+bfhQvslt4D1am/yu5MTvpehGrqX+p+9s/cmqsXdhMxCk9qvAJyzaTno2PnRE4FMc9Q6ks8IK3PFOVkGBK3ykTCXCMQjBywlPLNSV1Pn0rT+Ee1W2pWHc0oizbvPk5KAsMdW1MzcZtfLcsQRjDNA+DLLfZVck+7cA+ALaz854ekJEIziOYKjUUY8QHXmfA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=my/b24KJPWtpI9z0upvFzWYYmWySoD5UmkW4tA2ie9c=;
 b=DuABeSf9bEg9Vb8dE9ZmF6MlHyBnmKX+o1ql9LfSVlS/q+bzgZvJnutmkQaAP85iSurNYjWTYOEHnkKi9sotdozgklhPwNp+51VKIXzrzbbP0gyYlTaE41bfsxZohBTMDVhHQVBw4nc9NTRFfJgrEqZeXlOiRUoXWrtyyaiJakZFsW8UgWQHsBFd0VaFQmQTJpguF25uEu8t/DPpGqGf5u5+6GWbPpApOXzT7H8s8+N6YDSx8AperxUAWBo0kbI9tEXobQdglunbqpp0I9uROfHGQQgLG++abpoiNebquBYi63uXwZmImr8DLHeXNINBWo9lAgucnAFMzYjwBZvnrg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <d42fedb6-ac96-4404-8478-66783118dbd1@suse.com>
Date: Mon, 4 Dec 2023 10:23:58 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: Moving domain from credit2 to credit cpupool crash xen
Content-Language: en-US
To: =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 Juergen Gross <jgross@suse.com>
References: <dnfWU_V9cXmbF4wNEEzLue_FUJefwMiic1J0gTnWryyEIiB3hV-h3zC_CjBeBJkcQS8ZMA5ZdkTbJBK2hf_1a1oY3GJvteqG8NqEduCjCrY=@proton.me>
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: <dnfWU_V9cXmbF4wNEEzLue_FUJefwMiic1J0gTnWryyEIiB3hV-h3zC_CjBeBJkcQS8ZMA5ZdkTbJBK2hf_1a1oY3GJvteqG8NqEduCjCrY=@proton.me>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0429.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:d1::10) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DU0PR04MB9693:EE_
X-MS-Office365-Filtering-Correlation-Id: 0ef9c08e-28f5-4e2b-1042-08dbf4aabd4b
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	FErm1SEKyZjM6iDB4mS/UFGkCUsvAx7RTe2zOwSaowQwHjj/4dYFjAKRIky2wfv1c/7QI96oAjx2GNf8OKaEezJsm8EWVougBrZE+CKE8p/DZZTOYCL78VrsLd3p6O/9VzfJ8l9wlUTZpy2HePuSrxzO8l2InUkUvMQzz61/QfuNFoC8DYfSTP/a3odRYFBpEIianMV3qs6rr1+GtOBCh3ZIhfElD/J8574UIbz2uKtAOkO39Rk7COG+MVV1Yzywa011ygkl0F8hff8VWQGari0S5R7mzbIDfbCptfts8lhle8bIdVr8k4IdKarOCBvXRKJ4iLnfjZi5QvnVNH52VreUOJ0dnI8NlQbb3DXuTCftTHftcwhaNNd+idUyN/PchaGK096jfSknv2oLQOu11u7xl7tcLCA2sUFt5A+LWJdiiFiKZW+vdbAp+qsCKiwpw1VOLoSei/29wvvL0eQ2MsejE4RLZhm14e9GX9Kd14ZTH+icN68fBWeCbPGg9lJpRA6GpfTtc3eTVR+IITQJKN81oRb1wgg5I2YuY45iM/0X3cXR/OjVsuIRWhLDrrl1hXZRHXqIQFCJ3cBolbreX6ZeDykmUjvJ/Qwp8Mfsf24dllFQelYzQqpZvm32K73Ke8/lw0FxSv7NgGxPkwltiw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(136003)(396003)(366004)(376002)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(36756003)(41300700001)(5660300002)(2906002)(86362001)(31696002)(2616005)(53546011)(6506007)(6512007)(26005)(478600001)(6486002)(38100700002)(31686004)(8936002)(316002)(6636002)(66476007)(4326008)(110136005)(66556008)(66946007)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U2JkTnRnYVhVQWV4WjFmU2pDRURMYlJ3dFpGV0dZbE5ScmwrOEc4Tm4rS0Vh?=
 =?utf-8?B?dHYwMTJXbHpDSFFzTXB1cHROSkFkcHQxcDN3VzdDWGN3WUZqR0lyc3Qvb2xp?=
 =?utf-8?B?bmhUR2xMRnZYZC9LZ3VuSFdzQ2JML1ozNzBtaDlQS3QxZlJ5ODVWSnhLMlB0?=
 =?utf-8?B?WERkMCtJU1BYRlBhSGZvUDlpSXM0blN0T2swWHdFNE1Ud0dNemtBV2pibVk5?=
 =?utf-8?B?QTJwQjJWRVowWmhtTSt0ZlZmakRaRE5tTXdBZE16U1VZcE85TEVMUDJxZXhR?=
 =?utf-8?B?Z1o2cUhhT01qV3JVaWc4YUZPS2NaT042Z3RMT0NhdmluS2s3Sld1Tzg5cStH?=
 =?utf-8?B?alNubHFZQ0F3MjZIa05sWTlEKzF4RCtWcjF6clNnOUZaaEd1K1VWVXFHZDRm?=
 =?utf-8?B?UVE2QWlhcGV6QlpzMm9YS2ZOWm95TjVuVGNKMEpDT0I4VnVCS0J6WHh5VUJw?=
 =?utf-8?B?M3AyeVhFN3o2R2ZCR1NNb3VDaGlhOTVSUUhQd3dXUVN4VDNpaGZRUGtuZ1o2?=
 =?utf-8?B?VlJlTzNkaXYzK2I1VmxXOWRncTF6cGZDZitjVHN1STZJL1piMVBTQWlIeElO?=
 =?utf-8?B?VlVINFI1ZTdDaktoMDg5RzZndHdKd0tCcXB0T3RxZTNETXB2RTVmcXc2MHNo?=
 =?utf-8?B?c2Q0V05JQ0ZTbEl4cFhocmxaeVJXdEFhdm5lb2JBZHYvZ2JJVHNOYTYzUmV6?=
 =?utf-8?B?emdweGVDS0o1ZmExVUw1N0ZsWUEzb0RFQ0ZjVTB3R0ZYcUJNN0xVanJKRzNQ?=
 =?utf-8?B?RGNlWHZSbHFSdkpQbFZDamZiZFdkdVE1K0JLTTdWeWgyY01kVXlIb0lsSUxn?=
 =?utf-8?B?eHdLem14bU5sMGc1QW5VNFg3K1R5UGo2alNRbWZRZUM4MUJSbHN2MUI2VzZi?=
 =?utf-8?B?VlpwTEp0V0czQUI0QjRLUnhOTXJIMk9QMmdZMG9VMEw5RjFLaDdrY01rdS9y?=
 =?utf-8?B?T2pWZHBXUG5tTmpCUGNLUTdLT0JBUkRmUHFWUmxQV0duRFNua2FXNHBFdmxV?=
 =?utf-8?B?RE1Db1FLZEVRZ1BINnZYTVFHUjF0NjYxVUpCN25TZEdlQks3WWJPOVZDUHZX?=
 =?utf-8?B?ZWkxdkw5aGpBSGtKUGFtSVphOU9MUnFSVitDdlM5ay82Um5uWnNqRENTK2Qy?=
 =?utf-8?B?NG9DaTlESHV4dDBLYnZySkpTQ1d1OWQ1YWo0QmFTWnlVUUpWRStxdWoyOFRW?=
 =?utf-8?B?dUdIcmxIa09ITmlySGdUa3lQK2M1WldLY0xrODl5K3lCQXNnV2VscWxUMUFK?=
 =?utf-8?B?QWNxQS8vcTRVdjJxUjg2ZnBUMzJLalJudXVpQ2VKRW93MVh3d3BXV2FUSFpB?=
 =?utf-8?B?enFhNTRmaEZDdzRUNXMyb2xxMmgxY3dQaDNyUjBnSWRzVnQ3QXovMDFMSEZu?=
 =?utf-8?B?Uys4bzg5YytaaU9Pd1l2ekhTdThCQS9jY3lkbExaYnZET0xsS293SmJ2L0FG?=
 =?utf-8?B?UmtpVGFjNHE3dGluSkNaaDh4NWxTOUV4RS9uYVhkT3A4dkJINnkySmVaL0p2?=
 =?utf-8?B?OUltNlpKYTFyK2ZHdlJlbSsvZFlaV1ZwWE5SQWN4U0RxaHVsOUQvQmIwazBM?=
 =?utf-8?B?RDhhTzVUWnlIZkZFS3J4VUduYWRrR0JpdVV3NzJLTzBxVGplMFp4bjliN0pL?=
 =?utf-8?B?amxQQ2x3amM1ZmVoREppZUZlZlJyQW42RC8yWXR1TmI0MTVsWDhkZVhlUHZh?=
 =?utf-8?B?bHVWWVVxazU4b2RRaXRXV0lOK0NnQ2J0aHVwV2VHSkJpRVpKZklqU0dQUEMv?=
 =?utf-8?B?THFzV0MzQmJoRzJXU0sxSGpScGZwNkNON0wzeExBcHhsb2JBd2RIOEVOVXFp?=
 =?utf-8?B?Uk56RXZFV3ZWQ3dxMFVDdGVQeS9UaUZEWnhkcGhDSXFMWEhwSlp0S3JKUzdO?=
 =?utf-8?B?c3Y5alNZRUpMOU5ZOFNjSFU3d3FLbFEyL0lyNlJIM2hZTTZSTGNpZEh1T0dj?=
 =?utf-8?B?ZDFXYlJZYXROZFBXS3cvdUJtQlNxTnBhOGVURzhONG5LK01SZHlZeWR5ZG9R?=
 =?utf-8?B?UlpNVUMyNjFlQkhYOFhrR093Uzk2SmtUQ1R6RHpUQ2w2MStJWWZlV1k4VjQy?=
 =?utf-8?B?dHJHK3RTdGgwZVRyWnhmMDhodjA3NzNiVmNWNHp2eUVsMzFYWFExZjNuYS9L?=
 =?utf-8?Q?ZVRGTSqBRaiWumexHkS4c7Dde?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ef9c08e-28f5-4e2b-1042-08dbf4aabd4b
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 09:23:56.2622
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ht0hClexHbDvD8PupiI9lWOQml4Y8XH+5pJBJiUG0ZmS4bx97/Tfug6a0g9mEZR4aUL8m7K+odC6rAoHbSPngg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9693

On 01.12.2023 21:13, RenÃ© Winther HÃ¸jgaard wrote:
> When I move a domain from pool0 with credit2 to any pool with credit(1) I get the following crash.
> 
> 
> Software: Xen-4.17.3 / Qubes OS 4.2.0-RC5
> Firmware: Dasharo 0.9.0 - Z790P
> Hardware: 13900K
> (XEN) Xen BUG at common/sched/credit.c:1051(XEN) ----[ Xen-4.17.3-pre Â x86_64 Â debug=y Â Not tainted ]----
> (XEN) CPU: Â  Â 2
> (XEN) RIP: Â  Â e008:[<ffff82d040237cfd>] credit.c#csched_free_udata+0x12/0x14
> (XEN) RFLAGS: 0000000000010202 Â  CONTEXT: hypervisor (d0v2)
> (XEN) rax: ffff82d040237ceb Â  rbx: 0000000000000014 Â  rcx: 0000000000000013
> (XEN) rdx: ffff831087d7ffff Â  rsi: ffff830ad80e8da0 Â  rdi: ffff830ad80e8da0
> (XEN) rbp: 0000000000000000 Â  rsp: ffff831087d7fc90 Â  r8: Â ffff830e2d6a49b0
> (XEN) r9: Â ffff831087d7fbe0 Â  r10: ffff83107c481068 Â  r11: 0000002cfd1c274a
> (XEN) r12: ffff830ad80e8c80 Â  r13: ffff83107c45bee0 Â  r14: 0000000000000000
> (XEN) r15: ffff82d0405a9288 Â  cr0: 0000000080050033 Â  cr4: 0000000000b526e0
> (XEN) cr3: 00000009284d8000 Â  cr2: 00007fb535181240
> (XEN) fsb: 00007fb534c5f380 Â  gsb: ffff8881b9d00000 Â  gss: 0000000000000000
> (XEN) ds: 0000 Â  es: 0000 Â  fs: 0000 Â  gs: 0000 Â  ss: e010 Â  cs: e008
> (XEN) Xen code around <ffff82d040237cfd> (credit.c#csched_free_udata+0x12/0x14):
> (XEN) Â 75 06 e8 19 74 ff ff c3 <0f> 0b f3 0f 1e fa 53 48 8b 5f 18 48 85 db 74 2b
> (XEN) Xen stack trace from rsp=ffff831087d7fc90:
> (XEN) Â  Â ffff82d040247503 0000001300002030 ffff830ad80e8bf0 ffff82d0405a9288
> (XEN) Â  Â ffff83107f59aa80 ffff830ad80e8c80 ffff83107c45bee0 ffff830ad80e8bf0
> (XEN) Â  Â ffff831000af1010 ffff83107c45bee0 ffff830ad80ed000 ffff83107c45bee0
> (XEN) Â  Â 0000000000000000 ffff82d04045d5d8 ffff82d0405ae680 ffff82d040235303
> (XEN) Â  Â ffff831087d7fe20 00000000fffffffe ffff82d040236ec3 ffff830ad80ed000
> (XEN) Â  Â 0000000000000000 00007fb535230010 ffff831087d7ffff 0000000000000000
> (XEN) Â  Â ffff82d04045d5d8 ffff82d040234763 00000000c0000102 0000000000000000
> (XEN) Â  Â 0000000000000000 00000000c0000102 0000000d00000000 ffffffff8101ede6
> (XEN) Â  Â 000000000000e033 0000000000011082 ffffc90046ebba90 000000000000e02b
> (XEN) Â  Â 5a33a1a65352beef feadf9effdf1beef 122ae2fa736bbeef 46023e9af174beef
> (XEN) Â  Â ffff82d040227cc6 ffff831087d7fe48 0000000000000000 0000000000011082
> (XEN) Â  Â 0000000000000000 ffff831087d7ffff 0000000000000000 ffffffff8101ede4
> (XEN) Â  Â ffff82d0403495d0 0000001500000012 0000000100000006 0000000d00000000
> (XEN) Â  Â 00007ffdf93fb3fc 0000000000431042 000000000043d990 000000000043d9b0
> (XEN) Â  Â 00007fb534eb8434 00007ffdf93fb400 0000000000000013 0000000002361838
> (XEN) Â  Â 04457fe81f7cf300 0000000002360870 ffffffffffffff80 0000000000000000
> (XEN) Â  Â 00007ffdf93fc652 000000000043d980 ffff831087d7fef8 0000000000000023
> (XEN) Â  Â ffff83107f544000 0000000000000000 0000000000000000 0000000000000000
> (XEN) Â  Â ffff82d0402dd07f ffff83107f544000 0000000000000000 0000000000000000
> (XEN) Â  Â ffff82d0402012b7 0000000000000000 ffff88811abbc100 00007ffdf93fb2c0
> (XEN) Xen call trace:
> (XEN) Â  Â [<ffff82d040237cfd>] R credit.c#csched_free_udata+0x12/0x14
> (XEN) Â  Â [<ffff82d040247503>] S sched_move_domain+0x5b0/0x5cc

Hmm, looks like sched_move_domain()'s calling of sched_free_udata() uses the
new pool's scheduler, not that of the original pool. I'm puzzled though that
there's no sign at all in the function of it caring about what the original
pool was. IOW I'm not sure that the simple and obvious change to latch the
original pool into a local and then use it on the "out_free" path is going
to be enough. JÃ¼rgen (sorry, again you)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:28:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:28:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646659.1009131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Fy-0004xU-Li; Mon, 04 Dec 2023 09:28:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646659.1009131; Mon, 04 Dec 2023 09:28:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Fy-0004x6-Ix; Mon, 04 Dec 2023 09:28:50 +0000
Received: by outflank-mailman (input) for mailman id 646659;
 Mon, 04 Dec 2023 09:28: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=GT4u=HP=linutronix.de=alex@srs-se1.protection.inumbo.net>)
 id 1rA5Fx-0004vg-7x
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:28:49 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8658802c-9287-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 10:28:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8658802c-9287-11ee-9b0f-b553b5be7939
Message-ID: <da50a3db-b950-4a0e-a7e7-a715c1f74f4a@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1701682126;
	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:autocrypt:autocrypt;
	bh=lbiHHiLgWT2Ti+H0E9uATy11k8pqT4M6CrojOb8D//Y=;
	b=KbfPzfTw1+BJaNaxUYqPEFHTrioBQ/i6m65WKUuw0ezhywSqGesby6Hjgp7rsTHY59GMA3
	25ilBISHOuWyoljthmH5nQQCwJdlLjAc4fzKkH/B/7mJ5VAErumt55QEMYVF6b7vJIs0FD
	WKDHuRjGwgK8DsVAfNhFGS7pmG0t1YJpVl7TTDho+IktQJ2EQ3avTdyyRRkML4j+PSpPEj
	sBKJbJN8XbdFn8qCbXH/9J3XpQIWif/DqvaBy/YTM9P6bO+EeKqfLLgAP/4IhMbz+l/+w9
	VzQuqxKd9H4427QBLjkugYMHCoojAU+ckjC5dBCfq6ofTF2NBnAO6eYamD2o4A==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1701682126;
	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:autocrypt:autocrypt;
	bh=lbiHHiLgWT2Ti+H0E9uATy11k8pqT4M6CrojOb8D//Y=;
	b=snKUF2DqY4Gl6QKgyJH7UtIo313eFpwuObKbzICNmA4MJAJx74AFU+LnvLTqm/EMAT5kxI
	FQsg+aC1ZSIJIODw==
Date: Mon, 4 Dec 2023 10:28:43 +0100
MIME-Version: 1.0
Subject: Re: [PATCH] Config.mk: drop -Wdeclaration-after-statement
Content-Language: en-US
To: Julien Grall <julien@xen.org>, Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <20231128174729.3880113-1-alex@linutronix.de>
 <fcb1cc57-b985-4711-a234-4aaa380b9abe@suse.com>
 <81043e30-c9fd-4c5e-ad63-0e42edea733d@linutronix.de>
 <5a469665-54b2-4904-9604-ad686fbbb05e@xen.org>
 <716b0ec4-adce-494d-b9b6-69dbb7e26000@perard>
 <890f54b5-9692-40b8-94fa-9a55268e29f5@suse.com>
 <da7a86ba-7f74-41bb-9540-76f4530ac7ac@xen.org>
From: Alexander Kanavin <alex@linutronix.de>
Autocrypt: addr=alex@linutronix.de; keydata=
 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
In-Reply-To: <da7a86ba-7f74-41bb-9540-76f4530ac7ac@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 12/1/23 20:14, Julien Grall wrote:
>
> So I agree that if we were to remove -Wdeclaration-after-statement 
> then we should also update the CODING_STYLE. However, I am not 
> entirely sure I would want to mix code and declaration in the hypervisor.
>
> Anyway, I think this is a separate discussion from resolving the 
> immediate problem (i.e. building the python bindings).
>
> So for now, I think it would make sense to push the 
> -Wdeclaration-after-statement to the tools.
>
> @Alexander, are you going to send a new version? If not, I would be 
> happy to do it.

Please do it, as in the meantime, my attention has focused entirely 
elsewhere, so I'd have to switch context and find time to study the xen 
source. I don't have specific interest in xen, the reason I looked into 
it is that we're updating python to 3.12 in yocto and this one was one 
of the many issues that came up all over the userspace stack.


-- 
Alexander Kanavin
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-MÃ¼hlhofen
Phone: +49 7556 25 999 39; Fax.: +49 7556 25 999 99

Hinweise zum Datenschutz finden Sie hier (Informations on data privacy
can be found here): https://linutronix.de/legal/data-protection.php

Linutronix GmbH | Firmensitz (Registered Office): Uhldingen-MÃ¼hlhofen |
Registergericht (Registration Court): Amtsgericht Freiburg i.Br., HRB700
806 | GeschÃ¤ftsfÃ¼hrer (Managing Directors): Heinz Egger, Thomas Gleixner,
Sharon Heck, Yulia Beck, Tiffany Silva



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:31:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646661.1009142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Im-0006RW-3t; Mon, 04 Dec 2023 09:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646661.1009142; Mon, 04 Dec 2023 09: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 1rA5Im-0006RP-0B; Mon, 04 Dec 2023 09:31:44 +0000
Received: by outflank-mailman (input) for mailman id 646661;
 Mon, 04 Dec 2023 09:31: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA5Ik-0006RC-Tg
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:31:43 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2054.outbound.protection.outlook.com [40.107.7.54])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee5b9ce7-9287-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:31:41 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DBAPR04MB7350.eurprd04.prod.outlook.com (2603:10a6:10:1a9::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 09:31:11 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 09:31: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: ee5b9ce7-9287-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=e4rPIlecQazsSFR/gfFZzpg48eQlrtT1z46alnay6pGnSflBeceejtIL1nBCBo0DTBILyeWQSGE1THcr9N8VB012+cpsMblaixSNZXtFRDiYCt/T+zu/d6iGoRVmpS/jgioC4Xee9AqDSLIBta4WKrAybpC0LPQKIrHqx36q4Kf/KSwbFsgPD32dPZbKcb890ot8+abvaOCj0GuKgiAymVf/0UizRRWXRop3pZvMUDFOICy19UGDPNvGmhNPzgXDMhtxsDQUD+IXNbwU4IIeHdyz/zBYqQM07sbUbb0Jtqs4/49FYezHUUPKDbSA9brtzJWSpDa4cXBaX3zq3Eyd6Q==
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=JgR7X834o8hhnR4Hhsgr7CTZhxO7yNukrRJKHb2dgoo=;
 b=g6s66HMnN1EgF/XbEbNxKD0Mx4YpuKAkLZkIm2F+73ZpIYpAWhAE5nN4fKKfmAvOGkJB430pvZ3moONN35wzct97DlBBGk2uYM34Mn9yoj1c8BSpmbPw/NQpuRfw3Fqv8Xa8pE5FUpothkJ2hdCt8uux8Cw4G/q7h0x6cbSdf1pGDEsQD0LhwGeBmpfdSK5eoc3pnh0bM500SfY/d2kwkD3oErjh/LXY5KPVp3JB0BZAtObbmE9dyYV5WEZzCMedIVrtYfaF8oZ3NK5IJRsaHNIzDeKYeou5iOJeCZNEhsRg1nsinwPF5M+tYYdTTXAZdczd6VoiLU7M8RD37y2BRg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JgR7X834o8hhnR4Hhsgr7CTZhxO7yNukrRJKHb2dgoo=;
 b=Xt5BY6cpthvuNa2JdfMdzoG6HQtPQ5dFahGZ1iN7iJz6ImzsEoFkOTwiVYL673uztAxx/IJmRGnvPci7HUQRZq/0NX9ljm2GhWFX1EIiw23piYiV1sfTr2PtHvEtI7CV3m/1W8SVw7sOD+MQziSDveKKmk8OoZUliKH4uhiJXyRvSv6ByrsSG7xSOw2IZfxLxMXwBWxyj8eMunxfZEwTwOa+k6BOTwfG6CZptnpCITBKB9M1FMuEopI9PpfuECk158GQ3XrP1/r09Kjx7p/TxH+DQGDrca4/16sxd6+XJ/7HCRsbRgsY0bpSrKiabYwTBYzpYFRpkYl/OS/uCza4lA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <fc2f93f3-7a65-44b3-a25a-9383fe95b16b@suse.com>
Date: Mon, 4 Dec 2023 10:31:12 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: Moving domain from credit2 to credit cpupool crash xen
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 Juergen Gross <jgross@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <dnfWU_V9cXmbF4wNEEzLue_FUJefwMiic1J0gTnWryyEIiB3hV-h3zC_CjBeBJkcQS8ZMA5ZdkTbJBK2hf_1a1oY3GJvteqG8NqEduCjCrY=@proton.me>
 <d42fedb6-ac96-4404-8478-66783118dbd1@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d42fedb6-ac96-4404-8478-66783118dbd1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0296.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e7::16) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DBAPR04MB7350:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d49dadc-27a2-417c-96ae-08dbf4abc083
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Xgvffp61gLudNtIUbq5UfZtbypenLRIg277cgGjzfuI2w2YqYDlwmsAsWjfJ5+9D6uXV+SQD4f9N0rtJzWRJHY0IOBsUH6rmtfr6z7Li1ml+ZthpGJmwkZ0Nm5W6QPtWOzBPYBYwa38SyCcGgoANYo2b/Bjl+kaUxZlFfI5/5ce/kEeDqQwP5QLxHtsYQfUBT30QyT0W3Kv0ugTKzr12iJvj8LfyrRs/z5TB+/LoYnXwY3PjK84Hacm00BHAYrCKqMxkV0SRda682PPDxXT1oGxn7t3Szs9z1nqyAsV9J2gdtKP4E6n3YOytz3tsGRs64yjo8hLNca6sFUr9/WjVzaaeosKq9mSpR0bLV20+tBgfXiWNE5TUA8mP5EVfxjl0D/g1bGnceP0eYIZQ0Ss1kPPwRpa4tdl267TWM0kICSs0NbFVOM5YRf336KKJEZLIn0fbVACoxukKw4vbXA6CvTsi14u9zHzRAZ+QKJyRUEIqwDaQv2sYfN14Nf9sh3KAZcA+jJvYSWxxxnmty8AwWayMolGdz5aHBPDkrc7NxbdID9frbpqri/CD8AXcIemW9KR1iPuVMlErqnWVHLfpGAzFFbt6k5jTHTyFOfKuofaXt0GHXiNVQtXAFhFFWbCZ7wYBgkvNeLXShO57QqU5Lg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(366004)(376002)(346002)(136003)(396003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(478600001)(6512007)(2616005)(8936002)(8676002)(4326008)(38100700002)(66946007)(66476007)(66556008)(110136005)(6636002)(316002)(31686004)(26005)(6486002)(6506007)(53546011)(31696002)(86362001)(5660300002)(2906002)(41300700001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YVJrQmluNlYzOFFYbEF3L1RyeU40MzBFdzdEM0ppdXZZUExrNHNtL2JkRkVY?=
 =?utf-8?B?NXA2WEgxWm54RFlrS01IK0NSeWJYL2paK3NxdVMrNkE1d0VLenBxemFVZ3Nx?=
 =?utf-8?B?SmU2TFJVYm8zRFE0YXErZG9vc0psMWhQd1pzaU94Zk5pM0doQUdKSkF5V1V3?=
 =?utf-8?B?Yk9mTlRjODFXVTllaDRZMjVwQ0pTblhtZGtFL3NNMUJKMklIR2Jkc0UzRlN6?=
 =?utf-8?B?UnZlT2lQYzJuUG8xS3p3TDZVTTY5VG90bVFDYkRUTTJuT21xWWVJOS9nUDBU?=
 =?utf-8?B?Z0ZFdXNEdGo0cmJsbW14T0YyTTg1aGFaQm51UEg3ZTkrZ1dUeUs0WG41YXVv?=
 =?utf-8?B?cEx5aGpaUXIzZkFDc1dFRUkvem83WlAyMmJhL0V5N0ZpWWxRNzkvMStlbmpx?=
 =?utf-8?B?U2VjWVRHQmVsOHNOTnZOdWRMZUsxN3F6YTBYVVlJUEJCaGoxdE90MmljakNj?=
 =?utf-8?B?clU0WWNnZGZlSno4dVVkemhnTzA5clh6Nys5cGVoQ0lVc29rMVJPUjMrMDFJ?=
 =?utf-8?B?MitFcmVaSjdmYTVnUExYaVI4N1dORFBQaG5Da3FPbU00cDRxK3VnaUs3VENE?=
 =?utf-8?B?M29HMjBlWGZLK2VKa1NKRkNiQnoydlk2dVFCeW5yTWFFdFF6U2tBZWovSVJa?=
 =?utf-8?B?YUo4a3J1TDV5WThDL2MzdzU5cThMWThlR2hzc3V3VHczRDczQms2bG9DMlpR?=
 =?utf-8?B?NzVPcFdQejhyRGJiQis1TTgwdzBhYUtTTGY3a0xSOGJkK2F3dVlpL3hKd3d5?=
 =?utf-8?B?SWUvNkJ5TExkSGxxYVA0OVVjRy94VkpxM1pHbWhMaktZcXM5eGpKTlg2WEQr?=
 =?utf-8?B?MHlTSDNOeGhkQ3FlUEZSV2kvTkNHVDFydW1oeWNyeXlnU1hMdjNOYnkrU1hi?=
 =?utf-8?B?TlI1R3ZXd0xGZDZwWlRoNDVoQllSTmMrSXM2S0R4b2xSc2J4cEJJV1NMOXBU?=
 =?utf-8?B?VnBBQXpmaGlBQWtsN25sNG1XWWFFSHhVQWM5MkptQjA5SUFVVUY2anlXSmZQ?=
 =?utf-8?B?VmhZVHlOS1FNaGpWY1hKSW5TakFCQTYycVJqTGd2Ui9jdEtzbmYxcHhmNGh3?=
 =?utf-8?B?UWZCSmNDSzNWbTc5Z3p1bXllS2NFbTZFdkNqWEljZktIY1hDcnlwK0dTWjll?=
 =?utf-8?B?eC93UTJmZ1FGVlhqZWl5N0VXVVVpS1Y0OURSMVBFWFFGdURoL2xhbXU5cndX?=
 =?utf-8?B?VkhjbzlMdVpVUnZXM2FCNWVpN1VoaFN1dVZEckp1WXQzTElXTHU0YU1WTTBX?=
 =?utf-8?B?eTdUczhBaDhyMWgvVW9oRVh0cUtkYkpXNTVmMDhMMG5SQ095a0JzK1FVZXhY?=
 =?utf-8?B?TUZiSU82dkozc2xTd09LNmVyRkp5T04vYzF5NTZjcTQ2ZlZ1TzBIN2lTejJL?=
 =?utf-8?B?WG9SN01vSGJ3NTc5T1AyQ0djOUhpbVBwK0FLNnZ6cGtqYnM4MzJsRDEvNXYy?=
 =?utf-8?B?dk1ta2UrT2dzWS9OcFRzLzA2RWRlN1BjT3lFL044MzVDdzFKVE5peEtXOUJF?=
 =?utf-8?B?WlZnV1pCTGRNMWRiU0ZsY25OQ2F2engzRnlYRnp1ZFJIK3BlMnVpaWlIWk5I?=
 =?utf-8?B?MHl6RkdLZmZtZnNlRXg1bk9LSjBTTitobkVkejNEQmcrQUFTMmdXUWlWWEVE?=
 =?utf-8?B?OXpTWi8rK1pabm52LzUzekl6cjlrYnhjeWNuaGF6WjJUNXFLVjVLVE44ZTZ2?=
 =?utf-8?B?bjJYSnNBM05DTWJNM212QUxXUE9xcy9GSXNEOXRLWGRDVUM1U0NkN0RjU3ZH?=
 =?utf-8?B?dU9lWDFyOTduWThJTzRiVU1MMTBUQ1ZkVHljTmMyNVRJMFcwQnFEdHIzY2hU?=
 =?utf-8?B?amVuUnp2MW90VnF5aENaN0IzeUNYNmVjQWNTaEl6dHZPOEZ5dU5KcEI5cFR1?=
 =?utf-8?B?T3BOeXNoNW9ON3Vlako1VkRGWHo5cnFPQWdWNVpWRGx5ZlVtUVpWQ01iOWZC?=
 =?utf-8?B?S0ZTeCtXNUVxdXIzSGgwTGxwT2NVclNmSTNrQkdScmd4ZWhqaFdScjJkSVli?=
 =?utf-8?B?b21CYWxBOVJ2dm5aeldDVEhxMjdRdzZZaDQ0bEVqMG1EQVV0OHNBSFJlVW85?=
 =?utf-8?B?WGVsdUlHa2IyZEFlN0kzTkwyL0gyU1dhWS8vejlpOG96V1hncXVLNmlhL3Q4?=
 =?utf-8?Q?UMeI/F9sbBoiFUWNL5Ji+w7ah?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d49dadc-27a2-417c-96ae-08dbf4abc083
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 09:31:11.4128
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WI48EXE3HhYeQ7ULKOdMU/TWann7UoKiV7A8Z3HViE3do1ZeAj7LVXW0cnXeVYXxqpIAve2sj6kkrtrcx3jSHg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7350

On 04.12.2023 10:23, Jan Beulich wrote:
> On 01.12.2023 21:13, RenÃ© Winther HÃ¸jgaard wrote:
>> When I move a domain from pool0 with credit2 to any pool with credit(1) I get the following crash.
>>
>>
>> Software: Xen-4.17.3 / Qubes OS 4.2.0-RC5
>> Firmware: Dasharo 0.9.0 - Z790P
>> Hardware: 13900K
>> (XEN) Xen BUG at common/sched/credit.c:1051(XEN) ----[ Xen-4.17.3-pre Â x86_64 Â debug=y Â Not tainted ]----
>> (XEN) CPU: Â  Â 2
>> (XEN) RIP: Â  Â e008:[<ffff82d040237cfd>] credit.c#csched_free_udata+0x12/0x14
>> (XEN) RFLAGS: 0000000000010202 Â  CONTEXT: hypervisor (d0v2)
>> (XEN) rax: ffff82d040237ceb Â  rbx: 0000000000000014 Â  rcx: 0000000000000013
>> (XEN) rdx: ffff831087d7ffff Â  rsi: ffff830ad80e8da0 Â  rdi: ffff830ad80e8da0
>> (XEN) rbp: 0000000000000000 Â  rsp: ffff831087d7fc90 Â  r8: Â ffff830e2d6a49b0
>> (XEN) r9: Â ffff831087d7fbe0 Â  r10: ffff83107c481068 Â  r11: 0000002cfd1c274a
>> (XEN) r12: ffff830ad80e8c80 Â  r13: ffff83107c45bee0 Â  r14: 0000000000000000
>> (XEN) r15: ffff82d0405a9288 Â  cr0: 0000000080050033 Â  cr4: 0000000000b526e0
>> (XEN) cr3: 00000009284d8000 Â  cr2: 00007fb535181240
>> (XEN) fsb: 00007fb534c5f380 Â  gsb: ffff8881b9d00000 Â  gss: 0000000000000000
>> (XEN) ds: 0000 Â  es: 0000 Â  fs: 0000 Â  gs: 0000 Â  ss: e010 Â  cs: e008
>> (XEN) Xen code around <ffff82d040237cfd> (credit.c#csched_free_udata+0x12/0x14):
>> (XEN) Â 75 06 e8 19 74 ff ff c3 <0f> 0b f3 0f 1e fa 53 48 8b 5f 18 48 85 db 74 2b
>> (XEN) Xen stack trace from rsp=ffff831087d7fc90:
>> (XEN) Â  Â ffff82d040247503 0000001300002030 ffff830ad80e8bf0 ffff82d0405a9288
>> (XEN) Â  Â ffff83107f59aa80 ffff830ad80e8c80 ffff83107c45bee0 ffff830ad80e8bf0
>> (XEN) Â  Â ffff831000af1010 ffff83107c45bee0 ffff830ad80ed000 ffff83107c45bee0
>> (XEN) Â  Â 0000000000000000 ffff82d04045d5d8 ffff82d0405ae680 ffff82d040235303
>> (XEN) Â  Â ffff831087d7fe20 00000000fffffffe ffff82d040236ec3 ffff830ad80ed000
>> (XEN) Â  Â 0000000000000000 00007fb535230010 ffff831087d7ffff 0000000000000000
>> (XEN) Â  Â ffff82d04045d5d8 ffff82d040234763 00000000c0000102 0000000000000000
>> (XEN) Â  Â 0000000000000000 00000000c0000102 0000000d00000000 ffffffff8101ede6
>> (XEN) Â  Â 000000000000e033 0000000000011082 ffffc90046ebba90 000000000000e02b
>> (XEN) Â  Â 5a33a1a65352beef feadf9effdf1beef 122ae2fa736bbeef 46023e9af174beef
>> (XEN) Â  Â ffff82d040227cc6 ffff831087d7fe48 0000000000000000 0000000000011082
>> (XEN) Â  Â 0000000000000000 ffff831087d7ffff 0000000000000000 ffffffff8101ede4
>> (XEN) Â  Â ffff82d0403495d0 0000001500000012 0000000100000006 0000000d00000000
>> (XEN) Â  Â 00007ffdf93fb3fc 0000000000431042 000000000043d990 000000000043d9b0
>> (XEN) Â  Â 00007fb534eb8434 00007ffdf93fb400 0000000000000013 0000000002361838
>> (XEN) Â  Â 04457fe81f7cf300 0000000002360870 ffffffffffffff80 0000000000000000
>> (XEN) Â  Â 00007ffdf93fc652 000000000043d980 ffff831087d7fef8 0000000000000023
>> (XEN) Â  Â ffff83107f544000 0000000000000000 0000000000000000 0000000000000000
>> (XEN) Â  Â ffff82d0402dd07f ffff83107f544000 0000000000000000 0000000000000000
>> (XEN) Â  Â ffff82d0402012b7 0000000000000000 ffff88811abbc100 00007ffdf93fb2c0
>> (XEN) Xen call trace:
>> (XEN) Â  Â [<ffff82d040237cfd>] R credit.c#csched_free_udata+0x12/0x14
>> (XEN) Â  Â [<ffff82d040247503>] S sched_move_domain+0x5b0/0x5cc
> 
> Hmm, looks like sched_move_domain()'s calling of sched_free_udata() uses the
> new pool's scheduler, not that of the original pool. I'm puzzled though that
> there's no sign at all in the function of it caring about what the original
> pool was. IOW I'm not sure that the simple and obvious change to latch the
> original pool into a local and then use it on the "out_free" path is going
> to be enough. JÃ¼rgen (sorry, again you)?

Hmm, should have added "in the error case". Seeing there is old_ops, perhaps
simply

--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -810,7 +810,7 @@
     for ( unit = old_units; unit; )
     {
         if ( unit->priv )
-            sched_free_udata(c->sched, unit->priv);
+            sched_free_udata(ret ? c->sched : old_ops, unit->priv);
         old_unit = unit;
         unit = unit->next_in_list;
         xfree(old_unit);


(not even compile tested)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:36:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:36:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646665.1009151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5NK-0007FP-Kn; Mon, 04 Dec 2023 09:36:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646665.1009151; Mon, 04 Dec 2023 09: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 1rA5NK-0007FI-IB; Mon, 04 Dec 2023 09:36:26 +0000
Received: by outflank-mailman (input) for mailman id 646665;
 Mon, 04 Dec 2023 09: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=ZlsO=HP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rA5NJ-0007E0-Fj
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:36: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 973438b6-9288-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:36:24 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2c9ef682264so21311751fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:36:24 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 r8-20020a2eb888000000b002ca0a5dc73csm126553ljp.9.2023.12.04.01.36.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:36:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 973438b6-9288-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701682584; x=1702287384; 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=ad7pck1T9sE2nfwaXcbJmSqne45ZquNKOpGjXndxcOQ=;
        b=ZIscmDR6mjKjzkhGcVFGkl3frJmEA2tAToKtFSbquDrIbIu2wFeG2BSSaq7W/SiFcb
         t8KZWDrO/FGpRFcV0NleL2gyNao0HW/q+jo42Vf3ryN47lj1ZqNZNCSLusVFEeJZU9Ew
         PAawVRG/ShEp4rtveOVR8tmzuXaGmHQ7Oae/PdnH3PsFCybgqpVu4oYlshQuzNFMvHNe
         YHeLdt4V5UMdVtLyL2HToRBOA7x8OmL7z4U9ILkuBq0G0BequAfh2VMJ9tSnjczPEAa+
         2ly6YN0lIvkDh0h5c21YhC4gb1dYv5mE4sNacllVx6SHSPgrUL5URpBM0rYUhmW6ioyQ
         kbOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701682584; x=1702287384;
        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=ad7pck1T9sE2nfwaXcbJmSqne45ZquNKOpGjXndxcOQ=;
        b=w/xJahqnkvXsH+DD79ITqYZMm76vvdjJDBLgA7/SQOZyOvGkxf1eqmT1UQrrAej4Wr
         cqk8vvcM28kBcDcDKnsWpzCl7o9c1P/lml4NAcsTSAYqzQodFwYCopZWsbrGDKj5c/SG
         5snucY10+ez4EuJ0ccZQquk6GVtQIwm9PEn35T8WmMK0qGeW9H8ZMwr4o/KEQAtYBMzZ
         lhMftfIaVRQZUsP04gWd0lD05lKKf5G2TOTAxhs/Zsx1vf1PKXMjT3IClMCdeIMWAY4G
         eOFbBUeM/MIxW/YAl71bBXAqTCKWGEgPVlO3lE52Mq6QXdMAyCbOXC4e3Y+SDxPloVuL
         lN2A==
X-Gm-Message-State: AOJu0YxGFhDtsuHnDwiBVFiHs9KwQdif0wbYm1VZzYKU6O8dtJJsWIxc
	Dm+1pVU8lVdIkNdbH/It0Z0=
X-Google-Smtp-Source: AGHT+IHcb0H7xWlkiggJCqwhGlxgcfpERsmILcoEjbPpsv2ns23RpgB3XeG5lS4AjpGHDn/dr5jXcw==
X-Received: by 2002:a2e:9803:0:b0:2ca:c96:f4b with SMTP id a3-20020a2e9803000000b002ca0c960f4bmr179851ljj.51.1701682583828;
        Mon, 04 Dec 2023 01:36:23 -0800 (PST)
Message-ID: <e995e0394b4f638c421603ae01590543316f8456.camel@gmail.com>
Subject: Re: [PATCH v5 6/7] xen/asm-generic: ifdef inclusion of
 <asm/mem_access.h>
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>,  Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, Tamas K
 Lengyel <tamas@tklengyel.com>,  Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>, Shawn Anastasio
 <sanastasio@raptorengineering.com>, xen-devel@lists.xenproject.org
Date: Mon, 04 Dec 2023 11:36:22 +0200
In-Reply-To: <14d0c19e-2a40-4669-aaf5-ad1bfc8b77fc@suse.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
	 <d42a34866edc70a12736b5c6976aa1b44b4ebd8a.1701453087.git.oleksii.kurochko@gmail.com>
	 <14d0c19e-2a40-4669-aaf5-ad1bfc8b77fc@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-04 at 09:46 +0100, Jan Beulich wrote:
> On 01.12.2023 21:48, Oleksii Kurochko wrote:
> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -87,7 +87,7 @@ config MEM_ACCESS_ALWAYS_ON
> > =C2=A0config MEM_ACCESS
> > =C2=A0	def_bool MEM_ACCESS_ALWAYS_ON
> > =C2=A0	prompt "Memory Access and VM events" if
> > !MEM_ACCESS_ALWAYS_ON
> > -	depends on HVM
> > +	depends on HVM && (ARM || X86)
>=20
> While - unlike for GRANT_TABLE - I view going this route as an
> option, I
> still think it wants doing without explicitly naming architectures
> here.
> There wants to be a HAS_MEM_ACCESS, selected by Arm's Kconfig and by
> MEM_ACCESS_ALWAYS_ON (which in turn x86 selects). This could then
> also
> replace the HVM dependency here - x86 ought to select
> MEM_ACCESS_ALWAYS_ON
> only when HVM is enabled.
Thanks.

It will be definetely better to introduce HAS_MEM_ACCESS.


~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:39:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646668.1009161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5QR-0000EY-2Q; Mon, 04 Dec 2023 09:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646668.1009161; Mon, 04 Dec 2023 09: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 1rA5QQ-0000ER-W7; Mon, 04 Dec 2023 09:39:38 +0000
Received: by outflank-mailman (input) for mailman id 646668;
 Mon, 04 Dec 2023 09:39:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZlsO=HP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rA5QP-0000EL-Al
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:39:37 +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 08c6a262-9289-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 10:39:35 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-50be8ced3ddso1799900e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:39:35 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 b13-20020a0565120b8d00b0050aa4c50590sm1209224lfv.128.2023.12.04.01.39.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:39:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 08c6a262-9289-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701682774; x=1702287574; 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=aBMA8H0kuDQmGVp/jDoERKw0CVGK2B210u9LQOw/Yg8=;
        b=LvNryooIoSY3WTsUgjavEzrvNL77LUa4SHe0eJO48R41UG/Bd77kygbF5GwAIDPved
         ShMicv/KNcsrY30uIKgl+kkF0QXCfIC5rSZjd344VPqvcFvqBo/f9cOVidfHak4x1bVT
         AQC2CKGoew39zgT4Nb3dRYi35KAo5llhIk1TANxOyAobWfqgkYNBZLG0O5s1OTxY3nFO
         gpE8B5QsaV3h72V7s/JBwelJFCxHrr/qxBh3dfPMMB1z0p6o/byf6zQw/vIYq+pCv7VU
         7q7X2xZAu/yikW6Exz/b5UnCwIpgRaAK2eNREsPqLWccXGvW1JZIJ7vyccvjHi6jbAbG
         60Ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701682774; x=1702287574;
        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=aBMA8H0kuDQmGVp/jDoERKw0CVGK2B210u9LQOw/Yg8=;
        b=jY1pWiE5PIxLp6SAXf+FlaBFYpN/mYopTWTxZREWDpf3BUbZcBPYyTgTTLgulT6FF+
         Als4MaiW1JPiGLlOp6yo/yYtwGuX4aDvbgBcRvE6GHGfrr2MaWZGuBKm92G9gueDj5jZ
         KWClTE/LjGUTazCHc2kg1ETt8LZbXNn47XO0IGNrfRjFeva0RAy/PHVtEITYES4O3d01
         XrA43vYJk0ixr2lm/h7hJ077w6PNCZ7/cjrm7Jp4Dxys0IuFlzbzso/SRJSqtEG1+kiO
         tcPIvMrzgeivY7BvNyDLqgWfWZuNfxee7KvIrPh//k58Cg76dVtPbFMDCOjTT4t5pjVk
         bfBQ==
X-Gm-Message-State: AOJu0YxTPesXfMBcsI5vgcDMzt0sytyzeD+Dwm0rmOR/iqlut3We1une
	q9CFwhBi4YRliHD7saARQoQ=
X-Google-Smtp-Source: AGHT+IHl0Q8Q9weOYwAFkJXH/Q82Rd404rlmLhOXzFYFz8RGHjg5R0fDhg1VVnt0MP/FHYTqnC9mLQ==
X-Received: by 2002:ac2:5382:0:b0:50b:e693:ee20 with SMTP id g2-20020ac25382000000b0050be693ee20mr1197894lfh.31.1701682774418;
        Mon, 04 Dec 2023 01:39:34 -0800 (PST)
Message-ID: <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>,  Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, Shawn
 Anastasio <sanastasio@raptorengineering.com>, xen-devel@lists.xenproject.org
Date: Mon, 04 Dec 2023 11:39:33 +0200
In-Reply-To: <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
	 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
	 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-04 at 09:41 +0100, Jan Beulich wrote:
> On 01.12.2023 21:48, Oleksii Kurochko wrote:
> > Ifdef-ing inclusion of <asm/grant_table.h> allows to avoid
> > generation of empty <asm/grant_table.h> for cases when
> > CONFIG_GRANT_TABLE is not enabled.
> >=20
> > The following changes were done for Arm:
> > <asm/grant_table.h> should be included directly because it contains
> > gnttab_dom0_frames() macros which is unique for Arm and is used in
> > arch/arm/domain_build.c.
> > <asm/grant_table.h> is #ifdef-ed with CONFIG_GRANT_TABLE in
> > <xen/grant_table.h> so in case of !CONFIG_GRANT_TABLE
> > gnttab_dom0_frames
> > won't be available for use in arch/arm/domain_build.c.
> >=20
> > Suggested-by: Jan Beulich <jbeulich@suse.com>
>=20
> Not really, no: In particular ...
>=20
> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -15,6 +15,7 @@ config CORE_PARKING
> > =C2=A0config GRANT_TABLE
> > =C2=A0	bool "Grant table support" if EXPERT
> > =C2=A0	default y
> > +	depends on ARM || X86
>=20
> ... this I explicitly said I consider wrong to add.
Then I misunderstood you.

What about to do the same as with MEM_ACCESS config and introduce
HAS_GRANT_TABLE?

Or would it be better just update "depends on" to !RISCV && !PPC?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:39:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646669.1009172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Qe-0000d1-ET; Mon, 04 Dec 2023 09:39:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646669.1009172; Mon, 04 Dec 2023 09:39:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Qe-0000cs-BL; Mon, 04 Dec 2023 09:39:52 +0000
Received: by outflank-mailman (input) for mailman id 646669;
 Mon, 04 Dec 2023 09:39:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA5Qd-0000EL-TF
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:39:51 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2055.outbound.protection.outlook.com [40.107.7.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11a72824-9289-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 10:39:50 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DU2PR04MB9113.eurprd04.prod.outlook.com (2603:10a6:10:2f4::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 09:39:20 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 09:39: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: 11a72824-9289-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MwQzbuUSoOAHChF977uzNqZQLvfcOVaf2d85DgpnlmvGNqCnKJfzM62D2ZI8aObDLXdkNfqTPborKmUl29/aIWGsmMxHuhtfR9emWjw9dw7zQ0S0zJX5EH7ly0DVDXVTwMeGnwB3y0UeGt+hhdbCfIkLYgLuJT8PyY0AeuHzfry+UfJBqo13+sUkShhIH4etzW1GQjoejxAQIgsmODDvp4exME+N3EUL9d3Bq9RU5MXnR/vkIh0+ZH4M04G+TZSUgfZh1Wt/RiTZn9m2J/rA2FqZeLDYSzJsZ6hbwDHqOjnIkOWs7HfvhMCuctTRkaZLzaMpnosWWy1yVoI8fkLVPw==
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=d1ceTXUtd1PCZIPA0k277xVSSqyMnaXzlgmqMPf62c0=;
 b=khkYhPsUzOyQQzaUWlf3f65SpfhkQ1qjrq1y/u/ByRg995FvFiMgbNAYQcnId8bfo9idtjO6ydLk0QxNTpewtoOLfLVk6uMfSzj5eKPg1qs2h//knETwVSfHseGR6lvtwJM7KLU+6PoXNcV+peapzcgShZOieRU1DX6bEGO83y+nCDB348gtLh8jDbrxmhJ5P6U48n9A881kaoNsAuIZuB+R4q+nLh/U6RgzSi67FmAwg7xM6r8t29ei4ewLcTfHVy8kaK5O5GKI6VsX1m81k3l5dOE57j7+qBKAC9WbiahXtyg0Agwj8vQqXMEB/8Ctx/n6uB/udDqszw3OzAJgeA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=d1ceTXUtd1PCZIPA0k277xVSSqyMnaXzlgmqMPf62c0=;
 b=nVd9F3PetE3NPpIVvgU9gS3fgC9oERCbpBb3VYuM91G/m3/fMm3wISsbLh/PGK1M5ICEjk2h6Z2vNIywszqHGX+SkTGp5snbGZ+9y1amHtluIhkQnXwagz3Z/W7pH77EeOf3gZrMwuKhy88pI1gYnFR5iIAZdOVpktVnDEGP6eTwW/zSsee8YPwTiLt49qU1iW0XWoJ2N1e4OyX8dtHyvedHGrKihyvfgNupZB2X2gYkeqGhLMjt8gFtMzePivryCPrXjFACnMrsfGIOmas6fx/2bIgSzlfRyDLlMGGB7VUZNmBSS0wdjpTZwnShtoupFRqBiFJ/OgqsHSRjlg14EQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <cfaf75cf-f658-4df0-b654-f1c3af279b15@suse.com>
Date: Mon, 4 Dec 2023 10:39:22 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <20231201184728.31766-1-julien@xen.org>
 <0e20592b-9800-4b9d-9f2f-a996f9ac00bd@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0e20592b-9800-4b9d-9f2f-a996f9ac00bd@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0130.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b9::18) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DU2PR04MB9113:EE_
X-MS-Office365-Filtering-Correlation-Id: 8514e3dd-ed2a-4589-5763-08dbf4ace457
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jP7izfm8euVwQnmx8qIYGQhyTZ4JIrjBipg6skFflteVU1IQGCjdvV7/pxJ45bcHINXnPeF0cPzEJ0xTyoyImj27VRBwY8YMabKX7OEJ6Us07VdBCL639mj8ImsB0RStUqK9z3WYUNsS7NErDFARjhH6Fu8sKaoJLzhKgiBtHFQI++FKgRh8ZRw/YP3oJFiBSrRG0uaFY3XXnyUgiD5hyKMd5VtQHWMtavevfvH10sLU0qxUgetaNWTOimli97IHcY9IFgmYgLk1NaGbgZ70jmq7R9fTi4LBPuPgKxtf8FBFmNtygKaDPXksfYWdKQeCFhWcr/jSSvdXE4H2lPGGdXY/hIfUPoszhwoveaoeXjQ+ZjUZpb/IqPBbMtVgFlDQROjs3LxAjAa+W2TBzT3b+OkBixj3IpTTRwEQAOSlLFgDcOpUwXwvCElIGmgMyPjGRKYvXAvElv80RPCsajxcwWSycjjYkHBCLgx2GgaGDRIh67qnhIiQOpDtdUUjmFqM6e+dknnLXwM5bT5aErI2FFVxjlsr0y0wWqJFXt4fLKDi0zGjewSUJm0m6naCRhuXjiUjdvmjVUJWsdiuoEUSG+45E+8W8ww3Ta5jeXGZq/eJ6FZVBFTAj7B7wkR/UxCKcjEUSBZJrk+JMDG8M37QHA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(39860400002)(366004)(346002)(396003)(136003)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(66556008)(66476007)(6916009)(54906003)(316002)(66946007)(5660300002)(4326008)(8936002)(8676002)(31686004)(6486002)(38100700002)(31696002)(86362001)(478600001)(2906002)(26005)(2616005)(6506007)(4744005)(6512007)(36756003)(53546011)(41300700001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UGJiMFRIUTJ3RVl2WFIwdmtDbnRhaXdKUTVuSFZnNkJrUEhma0QvZkc0UUxY?=
 =?utf-8?B?eUo3RnhsQmdiTmxaak85UlU2bmV4THpvbE5xR3YycVdGTmRiUlZSaHgxcTdo?=
 =?utf-8?B?RUkzS25xZFFNeWtWUWpST1BoeTk5U3Q1Mi9YK1hNL2MwRXcyM2puVGhwQ0tz?=
 =?utf-8?B?Z1dNbGEwbW90UFQrRkR6RmMwMHp0QURYNGhkZC8vcEZpTUFSOXJwOFQ2TWJS?=
 =?utf-8?B?L3BXeEcvNHZqN3FBRGw3aFdTc3BZcWxWSXJQK1lUcGExOW9sL0Yvb3NTaTQ0?=
 =?utf-8?B?ZktzOTNpbzZUZjRrL2xHYklONS9UYXFSd2gvNktlRnhBTEZiblJhME83RXNv?=
 =?utf-8?B?K2xxRFVvWW5QZk0zMGJIZlpzTFpCdHFkYVpmNFUyYlROQ1Nma1YzZUNUcHVX?=
 =?utf-8?B?NWJIR0tYTnp0eGlHWUlZWUJ5Ykt5a0Vhazlaay9wUGhySjRCNUM3bnlBN29w?=
 =?utf-8?B?a0xlWFYrNDcyZVJOMTRnWlE0TEhHRlJybHJRZFpPYURwSjhtRlgwR2tmcjZk?=
 =?utf-8?B?RWxMOUFKQ1hhU0hQQkpnYUpncDlyVTM5czB2OVhVMDlJTUxsZ0J0T0ZuMkNH?=
 =?utf-8?B?QnNSdXFaN3E0STNLSDhHaE9yVDlUSmEvSDhCd05kLzRFdjBnd1JsMVc5UG9L?=
 =?utf-8?B?MmlHaUdpVkhhVTYySEhkcGR4M2hCeGJJVktOMHpPbnNoVVpLa2h2bmF4WUV3?=
 =?utf-8?B?b3lNVEpoMmJZcEJSNFFiVDVDeFJHQTFTV1Nia2NVNkhqZDZycWpaMUp3YzRj?=
 =?utf-8?B?d3ZwZmxvNWZDb216ZFBSdmtYQTI0eU5EU0h5b0hrZitvdTAvZHBlUnJLaStD?=
 =?utf-8?B?REFINVJka3FndndVb0NscW5jVjhUc0I2MjVVNEw4T05KSEFXQUxhMEFhMndn?=
 =?utf-8?B?OEFYQWdLUS96VG9aQU83b2NZNmxkOFJDcHBWdmNENVk5elp1ZUExZFMrWnhG?=
 =?utf-8?B?Vm1ya09rM0RWSWpxMkQ0VWhFbUNSeTBpQk1Fb3g0L0x2dTlMWFVrd2NpVFVB?=
 =?utf-8?B?N3hYbWFaNkpoZTZETWM5c0VDaDNiWEJYUTg3anp3RkpNSmw3NHJ0WXQ2RVNx?=
 =?utf-8?B?UDN3bzFGdzExcko3SEZmd0dpeTJqT0JNN3h0a2lzSHJMVDV2cnRXQ0sxTUpG?=
 =?utf-8?B?YlJBT2RWN1hrVThwYkRsTDV4V0tLd2s0anl5UnkzR1Avc0VlQkxxM3ZwYlRC?=
 =?utf-8?B?OVE1L3kxbGFnZ1ZieEdmYzA4T1VmUXg5QTdlK05VSzFaM0VRaHJOUElwb3ZO?=
 =?utf-8?B?Ykh5NlljTVR4ak1DMjdiakxiZTV5SUh3NUYvaWw3S3F5czJiSVczNnNPZW1k?=
 =?utf-8?B?R1NkcU1ZRnYvOUJSUUtRZVlFYzlDV2JuWWo4Zm4vNkxJanN1VEc0WEt0SWVw?=
 =?utf-8?B?TG1Id1VJQ2MzWWxLOUVzenFkbjhndTlrbmR4MVp0cVVFdXhPUDRwbU54TTlS?=
 =?utf-8?B?SXNxRmZsSTAzUFQzS2VEcUswKzFBc05nOWZqck1FellZVFNuZDh0bHQ4Z0lj?=
 =?utf-8?B?OTRxWktOVWg3dGtJYzdBZStvcldLa1lqajBGZjgwVUw1VWtYc2l6NHZWdVp5?=
 =?utf-8?B?dmUrMy92em10aG5VRTdLd25WOVlxcGZCSVdzM3FaNTd5anhxekFQK0NybCsx?=
 =?utf-8?B?MVBScnJFSmJqMWUrc0RYR084K0RLbllGRXNYaXVoWjVVSGVVeE44SXlGcVJm?=
 =?utf-8?B?ODRpL25tYXpPTWZVZEVwS1lPT0lnYS9NNll6YmdEMnM3Y2V1YlB2Y3NWTElE?=
 =?utf-8?B?S1FTUVh2bmhLeEJtQjZZaXBpVnE2TTB6RkVvSVlHVkZiaW1nZ09BMjVXRXox?=
 =?utf-8?B?cGQ5dFBHc2FRQVZkTzFidnN2ZllRT3pTeVp4eWVhSjVxVkRIVWlINTZId05y?=
 =?utf-8?B?TmxCdTNHU1pHdGxVemEzRXVHamJldVlaUlhMRTlBTHhVbVRIOFJTbEUyT0wy?=
 =?utf-8?B?Ti81YVhWamlSMHZMdXZwZWZnVGlxVGQyOEhZZVBwSjc1U2xHWWtKSE5ZZjRR?=
 =?utf-8?B?ekdNTG9PSzh5Q1hUS3hvQTM0eldweGlweFhUOERjVThGTnVnWWE4bDFieS9C?=
 =?utf-8?B?ait2RzhaanV4dlF4VzBFMTF4a2t5R3VuaHVIdnlEWEExNXBodWF2ZkcvLzJy?=
 =?utf-8?Q?Iz/RB2hSx+oahWLFBjsYbJqGx?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8514e3dd-ed2a-4589-5763-08dbf4ace457
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 09:39:20.7287
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nFMrGe0CloQ0yheaM6hGaNuoSweYRml6rnk1IH7dvGk/FXowhdp7xggxwrev7vG+BICEvN+S88Cig3AZTwpwgA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB9113

On 01.12.2023 19:49, Julien Grall wrote:
> +Naming convention
> +-----------------
> +
> +'-' should be used to separate words in commandline options and filenames.
> +E.g. timer-works.
> +
> +Note that some of the options and filenames are using '_'. This is now
> +deprecated.

I certainly appreciate and second the intent, yet I'm afraid "Naming convention"
in the doc would (to me at least) first and foremost talk about identifiers used
in the various source files. If this really is to be about only file names and
command line options, then I think the heading would better say so. Alternatively
a clear indication would want adding that text about identifiers is supposed to
be here, but is yet to be written. (The text itself, for the intended purpose,
reads fine to me, fwiw.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:43:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:43:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646677.1009199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Tu-0003Vf-FX; Mon, 04 Dec 2023 09:43:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646677.1009199; Mon, 04 Dec 2023 09: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 1rA5Tu-0003Ux-8n; Mon, 04 Dec 2023 09:43:14 +0000
Received: by outflank-mailman (input) for mailman id 646677;
 Mon, 04 Dec 2023 09:43: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA5Ts-0003MS-OW
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:43:12 +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 89435b09-9289-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 10:43:10 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3332ad5b3e3so2854818f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:43:10 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 z18-20020a5d44d2000000b003333dd777a4sm5331294wrr.46.2023.12.04.01.43.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:43:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89435b09-9289-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701682989; x=1702287789; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ULwH7EoidMy9ekcGhF87RMh2vNMamy8OPFxqY9qAnWs=;
        b=I9WrZTr/Ll8kQrt9BXZZyPifFQV6V6hSXqhGIkEP9L3E/Pak6FSoK3cugnqhMOGE1e
         Db78y/SvSsc+VrCNZsjQIv6rLuddlhp5fi+maNv3FvwEz4KHOA7aXzYbp+aYftnREFri
         XPmp5GpYJNnCwlJon8Daj4fUL86x0zUNmIOOU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701682989; x=1702287789;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ULwH7EoidMy9ekcGhF87RMh2vNMamy8OPFxqY9qAnWs=;
        b=gPbXUwUtozs3CMciTnfBHI8G9quj0/XmpwgyfEdBfRtpwatDzQKKWB2y0FNEJp9cEA
         YeQtSkaKrIqi/XtpYml1hm8+iLQI0QjEyNYfD/s82AXWT+HsNdXuI3qOMBiguH3E9oVq
         cH3aoGrQ0rAIS+6Eu2K7nEE+S+Aq2N1ekG4498gG8Tkw7g7trCnYBP6D82Ng5UvM/cGV
         cqZLSLprhhxiTmKyzk+6xpYY4Qz6H1hrP60OCZm7mQMe4hcvFo3zAsT/A1BsHrH7cbEQ
         h22vyais9RLnLY1dG1Upzz995HW6bHaHTDrII4OpmPYI8T5q5MNUm/JROikwTacr1WiD
         b/KA==
X-Gm-Message-State: AOJu0YxqUqdPjwqrw666ItW5GfDO60cYPdrc2lWJMduO6ymoT0kpSJPN
	CmFgdM8GUzfggGcKmB3OyAV91kYvRnMfzYVG8Ew=
X-Google-Smtp-Source: AGHT+IHtmHJlmpV7+cbxj7f0oOEvGeRQshSi1pJpnGVGwoy79El2rTGA1sxG4112l88AgAbSsmcxGw==
X-Received: by 2002:a05:6000:100d:b0:333:2fd2:51e6 with SMTP id a13-20020a056000100d00b003332fd251e6mr2920439wrx.95.1701682989550;
        Mon, 04 Dec 2023 01:43:09 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Kevin Tian <kevin.tian@intel.com>
Subject: [PATCH v2 1/6] iommu/vt-d: do not assume page table levels for quarantine domain
Date: Mon,  4 Dec 2023 10:43:00 +0100
Message-ID: <20231204094305.59267-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231204094305.59267-1-roger.pau@citrix.com>
References: <20231204094305.59267-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Like XSA-445, do not assume IOMMU page table levels on VT-d are always set
based on DEFAULT_DOMAIN_ADDRESS_WIDTH and instead fetch the value set by
intel_iommu_hwdom_init() from the domain iommu structure.  This prevents
changes to intel_iommu_hwdom_init() possibly getting the levels out of sync
with what intel_iommu_quarantine_init() expects.

No functional change, since on Intel domains are hardcoded to use
DEFAULT_DOMAIN_ADDRESS_WIDTH.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - New in this version.
---
 xen/drivers/passthrough/vtd/iommu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index e13b7d99db40..bc6181c9f911 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -3162,7 +3162,7 @@ static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
 {
     struct domain_iommu *hd = dom_iommu(dom_io);
     struct page_info *pg;
-    unsigned int agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
+    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;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:43:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:43:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646675.1009181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Tr-0003At-Ss; Mon, 04 Dec 2023 09:43:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646675.1009181; Mon, 04 Dec 2023 09:43:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Tr-0003Am-QJ; Mon, 04 Dec 2023 09:43:11 +0000
Received: by outflank-mailman (input) for mailman id 646675;
 Mon, 04 Dec 2023 09:43:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA5Tq-0003Ag-Rw
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:43:10 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8882ac78-9289-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:43:09 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40838915cecso43189545e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:43:09 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 h19-20020a05600c261300b0040523bef620sm4775102wma.0.2023.12.04.01.43.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:43:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8882ac78-9289-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701682988; x=1702287788; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=dvEmeAohoAc4LBfKVFNjk8Z/euUp8xuOkRDjSQf5LPU=;
        b=D0OK5DNKg9bGzbLwpeSrs8sDyJPn03++x6T7tAHsLhaB3YyJcvMYO7jcKeX/7Av26B
         RR8fcMgLBvZKkbDh4IvloJ80AaJUVFHlFQbcd243wN9P4yCmZVd7jVjQRvV+O09i7OUZ
         SUpCXrAcwx8bN/T0++Ldj68X9yBPw3uBPEP4o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701682988; x=1702287788;
        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=dvEmeAohoAc4LBfKVFNjk8Z/euUp8xuOkRDjSQf5LPU=;
        b=KqmkjedDFbZO2ooLrRkpClFLz+asykHOI5xj4CNT+vduk2Sc/bL1I6hSnLZNQRJGfw
         PXOQdv7Sg3cXxRhZ1lnbeP+J8gH2X5H8xMJ1nQBcwjIqHzefutmsKEgzKEAcGwsH04be
         ITN21PyK247nG79m4VkFVs0+tAG4ywDvvFWnDX59zf8NJD9EdaTgpvmz3dtdRxvCoZ3H
         xekjCLyhb1PXN1Pk0MOo7aZhwEluqcCDU6Hp8BjyfZkM5jcEYn7II7nRzAFeQd2tVM3B
         GD7LCuEGCXU6imTzWl9oQqwB0UwYyDWGsiUH6DTdTLPImMdwhJvjhgO0dUDy1knJVy6i
         oT4Q==
X-Gm-Message-State: AOJu0YydymYD7Wia6KAfYgscoBpEn1zQXYA9ySSeuaeOVsnzIQqMrL3U
	TeM8lZguTz9kJJjm53/GK8rMe43PIqufEuggwGQ=
X-Google-Smtp-Source: AGHT+IFZ5H+YyfDJWXwVtflFqlhWdBSctf1en6XYsocT/6yPexNkz/oKJ5qhL70otKVUAgeoQ+vpEw==
X-Received: by 2002:a05:600c:3d90:b0:40b:5e59:da6e with SMTP id bi16-20020a05600c3d9000b0040b5e59da6emr2166236wmb.129.1701682988239;
        Mon, 04 Dec 2023 01:43:08 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Kevin Tian <kevin.tian@intel.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Paul Durrant <paul@xen.org>,
	Wei Liu <wl@xen.org>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Subject: [PATCH v2 0/6] x86/iommu: improve setup time of hwdom IOMMU
Date: Mon,  4 Dec 2023 10:42:59 +0100
Message-ID: <20231204094305.59267-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The aim of the series is to reduce boot time setup of IOMMU page tables
for dom0.

The first patch is completely unrelated leftover work from XSA-445, just
included in the series because it's IOMMU code.

Second patch is a pre-req, as further patches can end up attempting to
create maps above the max RAM address, and hence without properly
setting the IOMMU page tables levels those attempts to map would fail.

Last 4 patches rework the hardware domain IOMMU setup to use a rangeset
instead of iterating over all addresses up to the max RAM page.  See
patch 5/6 for performance figures.

Thanks, Roger.

Roger Pau Monne (6):
  iommu/vt-d: do not assume page table levels for quarantine domain
  amd-vi: set IOMMU page table levels based on guest reported paddr
    width
  x86/iommu: introduce a rangeset to perform hwdom IOMMU setup
  x86/iommu: remove regions not to be mapped
  x86/iommu: switch hwdom IOMMU to use a rangeset
  x86/iommu: cleanup unused functions

 xen/arch/x86/hvm/io.c                       |  16 ++
 xen/arch/x86/include/asm/hvm/io.h           |   4 +-
 xen/arch/x86/include/asm/setup.h            |   2 +-
 xen/arch/x86/setup.c                        |  81 +++---
 xen/arch/x86/tboot.c                        |   2 +-
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  20 +-
 xen/drivers/passthrough/vtd/iommu.c         |   2 +-
 xen/drivers/passthrough/x86/iommu.c         | 279 +++++++++++++-------
 8 files changed, 248 insertions(+), 158 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:43:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:43:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646676.1009192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Tu-0003SB-4D; Mon, 04 Dec 2023 09:43:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646676.1009192; Mon, 04 Dec 2023 09: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 1rA5Tu-0003Ry-0m; Mon, 04 Dec 2023 09:43:14 +0000
Received: by outflank-mailman (input) for mailman id 646676;
 Mon, 04 Dec 2023 09:43: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA5Ts-0003Ag-9b
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:43:12 +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 89e2e47a-9289-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:43:11 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c0e7b8a9bso2011305e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:43:11 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 ay10-20020a05600c1e0a00b0040b397787d3sm18118985wmb.24.2023.12.04.01.43.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:43:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89e2e47a-9289-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701682990; x=1702287790; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MxO8kpq0zK2+9/dmZfmOLjwVt6zHQvWLIdUhj8WPZVM=;
        b=o+ag6wX358A0L9bC1SFExuqSuOXKIlaivYVl9JA9b2yCQjn2V8LotZ5dw62LSgqBGz
         4mxHNr8or8N+UwYZMBhwpBW2BrSBKZXJokluYwOkgEhfnymwJ2mvecDV/DjkeX/LJ/HN
         rCOPq9KIN7Rlwko4q6ef2DnI5WFef6gMcST+k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701682990; x=1702287790;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=MxO8kpq0zK2+9/dmZfmOLjwVt6zHQvWLIdUhj8WPZVM=;
        b=CRNbGBK+RG2z/f5z5aQiH167hz/jHaiviBZZJ7c56zUcibE4OWK/GXrjK5cO8s/7hE
         mHBQ4rRiCAHmh3ngFMhS9AiH73tot9mq0B0OdoEiXkdjLv9Cf6ssNx3ReqeVTruF8E11
         wddEMOB3npi6bQH80QrzKlHqPwwQUYzybQhmWkilvjPtJQQ1UKNLtslrF0drL8jgHQbv
         BjP5E2e5lAH3poyH5Lp6rxrQyf1osoX0ERi24z6hAGmfph1Z2v8MPGdSNP+H/Y7R00xE
         hbnfd7RkbI5Gwq4nQ6OZY+QhOLY7QxILVfgY8pl+3EE1Bag4AMrYmd8CkAK14MACJeQ6
         mSNg==
X-Gm-Message-State: AOJu0YykvtM6qI5XiVjAH8VE7MWuP7hd9xV0Zupq0pv0RSUsIfrI2utS
	ax8j4zeZw1aW2co4VMp+SJ+46rTxdeg7j3XT4ZM=
X-Google-Smtp-Source: AGHT+IGNDDJBhs2J/PSzOTWY71/KIecXkzghzzN/EJTD2aDL9SiW7LnxYg4whlqxv6/bRoeVEDKriQ==
X-Received: by 2002:a05:600c:2946:b0:40b:5e21:dd19 with SMTP id n6-20020a05600c294600b0040b5e21dd19mr2293899wmd.71.1701682990720;
        Mon, 04 Dec 2023 01:43:10 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 2/6] amd-vi: set IOMMU page table levels based on guest reported paddr width
Date: Mon,  4 Dec 2023 10:43:01 +0100
Message-ID: <20231204094305.59267-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231204094305.59267-1-roger.pau@citrix.com>
References: <20231204094305.59267-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

However take into account the minimum number of levels required by unity maps
when setting the page table levels.

The previous setting of the page table levels for PV guests based on the
highest RAM address was bogus, as there can be other non-RAM regions past the
highest RAM address that need to be mapped, for example device MMIO.

For HVM we also take amd_iommu_min_paging_mode into account, however if unity
maps require more than 4 levels attempting to add those will currently fail at
the p2m level, as 4 levels is the maximum supported.

Fixes: 0700c962ac2d ('Add AMD IOMMU support into hypervisor')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
changes since v1:
 - Use paging_max_paddr_bits() instead of hardcoding
   DEFAULT_DOMAIN_ADDRESS_WIDTH.
---
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 6bc73dc21052..00a25e649f22 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -359,21 +359,17 @@ int __read_mostly amd_iommu_min_paging_mode = 1;
 static int cf_check amd_iommu_domain_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    int pglvl = amd_iommu_get_paging_mode(
+                PFN_DOWN(1UL << paging_max_paddr_bits(d)));
+
+    if ( pglvl < 0 )
+        return pglvl;
 
     /*
-     * Choose the number of levels for the IOMMU page tables.
-     * - PV needs 3 or 4, depending on whether there is RAM (including hotplug
-     *   RAM) above the 512G boundary.
-     * - HVM could in principle use 3 or 4 depending on how much guest
-     *   physical address space we give it, but this isn't known yet so use 4
-     *   unilaterally.
-     * - Unity maps may require an even higher number.
+     * Choose the number of levels for the IOMMU page tables, taking into
+     * account unity maps.
      */
-    hd->arch.amd.paging_mode = max(amd_iommu_get_paging_mode(
-            is_hvm_domain(d)
-            ? 1UL << (DEFAULT_DOMAIN_ADDRESS_WIDTH - PAGE_SHIFT)
-            : get_upper_mfn_bound() + 1),
-        amd_iommu_min_paging_mode);
+    hd->arch.amd.paging_mode = max(pglvl, amd_iommu_min_paging_mode);
 
     return 0;
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:43:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:43:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646678.1009212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Tw-0003yg-Lj; Mon, 04 Dec 2023 09:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646678.1009212; Mon, 04 Dec 2023 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 1rA5Tw-0003yV-HJ; Mon, 04 Dec 2023 09:43:16 +0000
Received: by outflank-mailman (input) for mailman id 646678;
 Mon, 04 Dec 2023 09:43: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA5Tu-0003Ag-NN
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:43:14 +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 8b3da560-9289-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:43:14 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40bda47c489so21569455e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:43:14 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 fb13-20020a05600c520d00b0040b3e7569fcsm17876713wmb.11.2023.12.04.01.43.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:43:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b3da560-9289-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701682993; x=1702287793; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9CBBn/nfJfW5I5gQfew3uGEClXixqREpb7mxes5nWVE=;
        b=io+DVSp4WpQd8qFDFNJq6dqRHw+1NqSHgdCK3EN9mytl4JnlNEldcK9r1O0VqzrRo2
         uf8MCqJ8a8yKPRxPszbrO+tZjpu3elX4ChC9MWcGesaecnlDn+YbC4uIjuGNz7ENuJp5
         dgTuKkX1Pa1mwLez9ExxJ3AdzOyi7rQ0Vpt0E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701682993; x=1702287793;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=9CBBn/nfJfW5I5gQfew3uGEClXixqREpb7mxes5nWVE=;
        b=EZfgt6/zaLn5XX58EKF1h3qESnVTG36LJu6f6QEWRIystSohsewlf9sl4Mb+N2Xf16
         KhqeYBhBhJZDz8G7Z6tb0oZF2XVQyDSMMwsWN6ZLsIOMeZcSOrnnShTDQ5T+Zunal2Wn
         yt4w9d8clmjwUGYabNwb4Q7ig5/ud8TykJBOtQtgJc3QXA5S059Qp/X+S2LdBazXrPmu
         7nrYvtvDf4H1Czkh/mpSlRyajFsMtq+ZbQyoffIOo4VfQnQkkO3VQIuMCHZo4oIN6QMt
         h01aqpL1qp4oPHBLzhrYRg33NMScLVEnoLpTAGN3Lwp9HcKp4kx/hQQDDDKxxPlypoAW
         N92g==
X-Gm-Message-State: AOJu0YyOw/1xi0WC1YEXyaBcMumdvmb4iuXJRXoLAeKygzWlxTNU/JLA
	OufmGKo0+I7n2eA6843HOgwbHTvAgLN8Ddf1ggw=
X-Google-Smtp-Source: AGHT+IGOQdlSMXC0XrmskVGzoU5BsJXwCuzOpMBMeVb88PJfiULLufbdNiH+rPUje5K1xKKA4OPjHQ==
X-Received: by 2002:a05:600c:46ca:b0:40b:5e1e:cf6 with SMTP id q10-20020a05600c46ca00b0040b5e1e0cf6mr2360700wmo.49.1701682993282;
        Mon, 04 Dec 2023 01:43:13 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 4/6] x86/iommu: remove regions not to be mapped
Date: Mon,  4 Dec 2023 10:43:03 +0100
Message-ID: <20231204094305.59267-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231204094305.59267-1-roger.pau@citrix.com>
References: <20231204094305.59267-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce the code to remove regions not to be mapped from the rangeset
that will be used to setup the IOMMU page tables for the hardware domain.

This change also introduces two new functions: remove_xen_ranges() and
vpci_subtract_mmcfg() that copy the logic in xen_in_range() and
vpci_is_mmcfg_address() respectively and remove the ranges that would otherwise
be intercepted by the original functions.

Note that the rangeset is still not populated.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - Split from bigger patch.
---
 xen/arch/x86/hvm/io.c               | 16 ++++++++
 xen/arch/x86/include/asm/hvm/io.h   |  3 ++
 xen/arch/x86/include/asm/setup.h    |  1 +
 xen/arch/x86/setup.c                | 48 ++++++++++++++++++++++
 xen/drivers/passthrough/x86/iommu.c | 64 +++++++++++++++++++++++++++++
 5 files changed, 132 insertions(+)

diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
index d75af83ad01f..a42854c52b65 100644
--- a/xen/arch/x86/hvm/io.c
+++ b/xen/arch/x86/hvm/io.c
@@ -369,6 +369,22 @@ bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr)
     return vpci_mmcfg_find(d, addr);
 }
 
+int __hwdom_init vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r)
+{
+    const struct hvm_mmcfg *mmcfg;
+
+    list_for_each_entry ( mmcfg, &d->arch.hvm.mmcfg_regions, next )
+    {
+        int rc = rangeset_remove_range(r, PFN_DOWN(mmcfg->addr),
+                                       PFN_DOWN(mmcfg->addr + mmcfg->size - 1));
+
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
 static unsigned int vpci_mmcfg_decode_addr(const struct hvm_mmcfg *mmcfg,
                                            paddr_t addr, pci_sbdf_t *sbdf)
 {
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index a97731657801..e1e5e6fe7491 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -156,6 +156,9 @@ void destroy_vpci_mmcfg(struct domain *d);
 /* Check if an address is between a MMCFG region for a domain. */
 bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr);
 
+/* Remove MMCFG regions from a given rangeset. */
+int vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r);
+
 #endif /* __ASM_X86_HVM_IO_H__ */
 
 
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 9a460e4db8f4..cd07d98101d8 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -37,6 +37,7 @@ void discard_initial_images(void);
 void *bootstrap_map(const module_t *mod);
 
 int xen_in_range(unsigned long mfn);
+int remove_xen_ranges(struct rangeset *r);
 
 extern uint8_t kbd_shift_flags;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 3cba2be0af6c..71fa0b46f181 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2136,6 +2136,54 @@ int __hwdom_init xen_in_range(unsigned long mfn)
     return 0;
 }
 
+int __hwdom_init remove_xen_ranges(struct rangeset *r)
+{
+    paddr_t start, end;
+    int rc;
+
+    /* S3 resume code (and other real mode trampoline code) */
+    rc = rangeset_remove_range(r, PFN_DOWN(bootsym_phys(trampoline_start)),
+                               PFN_DOWN(bootsym_phys(trampoline_end)));
+    if ( rc )
+        return rc;
+
+    /*
+     * This needs to remain in sync with the uses of the same symbols in
+     * - __start_xen()
+     * - is_xen_fixed_mfn()
+     * - tboot_shutdown()
+     */
+    /* hypervisor .text + .rodata */
+    rc = rangeset_remove_range(r, PFN_DOWN(__pa(&_stext)),
+                               PFN_DOWN(__pa(&__2M_rodata_end)));
+    if ( rc )
+        return rc;
+
+    /* hypervisor .data + .bss */
+    if ( efi_boot_mem_unused(&start, &end) )
+    {
+        ASSERT(__pa(start) >= __pa(&__2M_rwdata_start));
+        rc = rangeset_remove_range(r, PFN_DOWN(__pa(&__2M_rwdata_start)),
+                                   PFN_DOWN(__pa(start)));
+        if ( rc )
+            return rc;
+        ASSERT(__pa(end) <= __pa(&__2M_rwdata_end));
+        rc = rangeset_remove_range(r, PFN_DOWN(__pa(end)),
+                                   PFN_DOWN(__pa(&__2M_rwdata_end)));
+        if ( rc )
+            return rc;
+    }
+    else
+    {
+        rc = rangeset_remove_range(r, PFN_DOWN(__pa(&__2M_rwdata_start)),
+                                   PFN_DOWN(__pa(&__2M_rwdata_end)));
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
 static int __hwdom_init cf_check io_bitmap_cb(
     unsigned long s, unsigned long e, void *ctx)
 {
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 531a428f6496..7e97805fccec 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -370,6 +370,14 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
     return perms;
 }
 
+static int __hwdom_init cf_check map_subtract(unsigned long s, unsigned long e,
+                                              void *data)
+{
+    struct rangeset *map = data;
+
+    return rangeset_remove_range(map, s, e);
+}
+
 struct map_data {
     struct domain *d;
     unsigned int flush_flags;
@@ -522,6 +530,62 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
             goto commit;
     }
 
+    /* Remove any areas in-use by Xen. */
+    rc = remove_xen_ranges(map);
+    if ( rc )
+        panic("IOMMU failed to remove Xen ranges: %d\n", rc);
+
+    /* Remove any overlap with the Interrupt Address Range. */
+    rc = rangeset_remove_range(map, 0xfee00, 0xfeeff);
+    if ( rc )
+        panic("IOMMU failed to remove Interrupt Address Range: %d\n",
+              rc);
+
+    /* If emulating IO-APIC(s) make sure the base address is unmapped. */
+    if ( has_vioapic(d) )
+    {
+        for ( i = 0; i < d->arch.hvm.nr_vioapics; i++ )
+        {
+            rc = rangeset_remove_singleton(map,
+                PFN_DOWN(domain_vioapic(d, i)->base_address));
+            if ( rc )
+                panic("IOMMU failed to remove IO-APIC: %d\n",
+                      rc);
+        }
+    }
+
+    if ( is_pv_domain(d) )
+    {
+        /*
+         * Be consistent with CPU mappings: Dom0 is permitted to establish r/o
+         * ones there (also for e.g. HPET in certain cases), so it should also
+         * have such established for IOMMUs.  Remove any read-only ranges here,
+         * since ranges in mmio_ro_ranges are already explicitly mapped below
+         * in read-only mode.
+         */
+        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, map_subtract, map);
+        if ( rc )
+            panic("IOMMU failed to remove read-only regions: %d\n",
+                  rc);
+    }
+
+    if ( has_vpci(d) )
+    {
+        /*
+         * TODO: runtime added MMCFG regions are not checked to make sure they
+         * don't overlap with already mapped regions, thus preventing trapping.
+         */
+        rc = vpci_subtract_mmcfg(d, map);
+        if ( rc )
+            panic("IOMMU unable to remove MMCFG areas: %d\n", rc);
+    }
+
+    /* Remove any regions past the last address addressable by the domain. */
+    rc = rangeset_remove_range(map, PFN_DOWN(1UL << paging_max_paddr_bits(d)),
+                               ~0UL);
+    if ( rc )
+        panic("IOMMU unable to remove unaddressable ranges: %d\n", rc);
+
     if ( iommu_verbose )
         printk(XENLOG_INFO "d%u: identity mappings for IOMMU:\n",
                d->domain_id);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:43:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:43:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646679.1009218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Tx-00042f-2e; Mon, 04 Dec 2023 09:43:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646679.1009218; Mon, 04 Dec 2023 09:43: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 1rA5Tw-00042C-Sm; Mon, 04 Dec 2023 09:43:16 +0000
Received: by outflank-mailman (input) for mailman id 646679;
 Mon, 04 Dec 2023 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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA5Tu-0003MS-VC
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:43:14 +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 8abe08a9-9289-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 10:43:13 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c0e37cfafso1939595e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:43:13 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 jg23-20020a05600ca01700b0040b30be6244sm14376982wmb.24.2023.12.04.01.43.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:43:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8abe08a9-9289-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701682992; x=1702287792; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uhvbsGVggmpzL6VhFDTXJNRWZSL+PUA9PR1Ri8iXGLA=;
        b=CliS9MysGcFD0fTcqL/ZY5smT34J9ksrIrzqr5q94/gJXy2oU8Mzq7lVp0EogdMQGC
         eyIOI8NoY37snuQAYv/E/77IzGHiDKnsHkAfCnRhTA2oeqVB7C63OMyWwuFqcuB4Xumr
         BmrF1k9nUIx0Ixz8OztsnuBgIbHtb5Wpd8HjA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701682992; x=1702287792;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=uhvbsGVggmpzL6VhFDTXJNRWZSL+PUA9PR1Ri8iXGLA=;
        b=arxf30jkxw+06ZkiByNjxbhcsp9658smc2WK2yV/1aQdB/Qr3S9GO4e10qR+x+Xfgt
         VYZwjer4FyVFGVMy72RDOxqg2Mm99VUL67TNcMb6EJoBnhj1FqdUTcmAl3VAIT2pZTBX
         OpwMX1wwqibEFX4jXfxx6RUwfcUUikpUyfi00CN/KuEgGqdrXObo0Sdkb7RTUOOiNf6B
         KnusvQWsnc+JMwG8YpliSQH6jkOGYOIRbVraf+XAWlveFH91sGRu6pJRQhJdg6/h+BfB
         Mm2WF1b1YzDOWugi4hkhQhK+Yr4GjXUKCuYlvtO9PV3qXzpGp/z48yLatrUud8HVgBD6
         Mktg==
X-Gm-Message-State: AOJu0YyEjpAW29EOB6nmRpcQPIPNV3/s/zbuWMSqv542wTk4Qm5YK30L
	YGajOpg9iDnXtzSVzXQStcd4582/loFrujFgDZE=
X-Google-Smtp-Source: AGHT+IHGbm6svOID28oBbJ+PecxwhKiaRzO5RQK1pDm0gQJ0G0iWUsdq17d4C0+yP1bsmBSFLCBdoA==
X-Received: by 2002:a05:600c:601a:b0:40b:5e59:c557 with SMTP id az26-20020a05600c601a00b0040b5e59c557mr2262756wmb.129.1701682991843;
        Mon, 04 Dec 2023 01:43:11 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v2 3/6] x86/iommu: introduce a rangeset to perform hwdom IOMMU setup
Date: Mon,  4 Dec 2023 10:43:02 +0100
Message-ID: <20231204094305.59267-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231204094305.59267-1-roger.pau@citrix.com>
References: <20231204094305.59267-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This change just introduces the boilerplate code in order to use a rangeset
when setting up the hardware domain IOMMU mappings.  The rangeset is never
populated in this patch, so it's a non-functional change as far as the mappings
the domain gets established.

Note there's a change for HVM domains (ie: PVH dom0) that will get switched to
create the p2m mappings using map_mmio_regions() instead of
p2m_add_identity_entry(), so that ranges can be mapped with a single function
call if possible.  Note that the interface of map_mmio_regions() doesn't allow
creating read-only mappings, but so far there are no such mappings created for
PVH dom0 in arch_iommu_hwdom_init().

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - Split from bigger patch.
---
 xen/drivers/passthrough/x86/iommu.c | 89 +++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)

diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 857dccb6a465..531a428f6496 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -370,10 +370,77 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
     return perms;
 }
 
+struct map_data {
+    struct domain *d;
+    unsigned int flush_flags;
+    bool ro;
+};
+
+static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
+                                              void *data)
+{
+    struct map_data *info = data;
+    struct domain *d = info->d;
+    long rc;
+
+    if ( iommu_verbose )
+        printk(XENLOG_INFO " [%010lx, %010lx] R%c\n",
+               s, e, info->ro ? 'O' : 'W');
+
+    if ( paging_mode_translate(d) )
+    {
+        if ( info->ro )
+        {
+            ASSERT_UNREACHABLE();
+            return 0;
+        }
+        while ( (rc = map_mmio_regions(d, _gfn(s), e - s + 1, _mfn(s))) > 0 )
+        {
+            s += rc;
+            process_pending_softirqs();
+        }
+    }
+    else
+    {
+        const unsigned int perms = IOMMUF_readable | IOMMUF_preempt |
+                                   (info->ro ? 0 : IOMMUF_writable);
+
+        if ( info->ro && !iomem_access_permitted(d, s, e) )
+        {
+            /*
+             * Should be more fine grained in order to not map the forbidden
+             * frame instead of rejecting the region as a whole, but it's only
+             * for read-only MMIO regions, which are very limited.
+             */
+            printk(XENLOG_DEBUG
+                   "IOMMU read-only mapping of region [%lx, %lx] forbidden\n",
+                   s, e);
+            return 0;
+        }
+        while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
+                                perms, &info->flush_flags)) > 0 )
+        {
+            s += rc;
+            process_pending_softirqs();
+        }
+    }
+    ASSERT(rc <= 0);
+    if ( rc )
+        printk(XENLOG_WARNING
+               "IOMMU identity mapping of [%lx, %lx] failed: %ld\n",
+               s, e, rc);
+
+    /* Ignore errors and attempt to map the remaining regions. */
+    return 0;
+}
+
 void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 {
     unsigned long i, top, max_pfn, start, count;
     unsigned int flush_flags = 0, start_perms = 0;
+    struct rangeset *map;
+    struct map_data map_data = { .d = d };
+    int rc;
 
     BUG_ON(!is_hardware_domain(d));
 
@@ -397,6 +464,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
     if ( iommu_hwdom_passthrough )
         return;
 
+    map = rangeset_new(NULL, NULL, 0);
+    if ( !map )
+        panic("IOMMU init: unable to allocate rangeset\n");
+
     max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
     top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
 
@@ -451,6 +522,24 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
             goto commit;
     }
 
+    if ( iommu_verbose )
+        printk(XENLOG_INFO "d%u: identity mappings for IOMMU:\n",
+               d->domain_id);
+
+    rc = rangeset_report_ranges(map, 0, ~0UL, identity_map, &map_data);
+    if ( rc )
+        panic("IOMMU unable to create mappings: %d\n", rc);
+    if ( is_pv_domain(d) )
+    {
+        map_data.ro = true;
+        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, identity_map,
+                                    &map_data);
+        if ( rc )
+            panic("IOMMU unable to create read-only mappings: %d\n", rc);
+    }
+
+    rangeset_destroy(map);
+
     /* Use if to avoid compiler warning */
     if ( iommu_iotlb_flush_all(d, flush_flags) )
         return;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:43:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:43:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646680.1009225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Tx-0004Cc-Ju; Mon, 04 Dec 2023 09:43:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646680.1009225; Mon, 04 Dec 2023 09:43: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 1rA5Tx-0004BU-Df; Mon, 04 Dec 2023 09:43:17 +0000
Received: by outflank-mailman (input) for mailman id 646680;
 Mon, 04 Dec 2023 09:43: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA5Tv-0003Ag-SR
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:43:15 +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 8be4d92e-9289-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:43:15 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3334254cfa3so586336f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:43:15 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 w7-20020a5d6087000000b0033340937da6sm4467635wrt.95.2023.12.04.01.43.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:43:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8be4d92e-9289-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701682994; x=1702287794; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nBxUOp4k8iF04PfE5JQxxLRa/lZUdCotTQUWqLt7x1U=;
        b=Xk+lcZdR3Ef5O4GHZdTFrQXcY0ELxOIPoaeOovburPx8YQg1pXhlPrG91WhrHqa8tn
         WP64db2NAJ2ZRb9WeruXhzl13FksA3BFT6P1eLrsHJNjTVvvM1b2VT/Rgc487xn41yOR
         g1/qliUEFjfS+x7RV8G2UPzza10r2qIyifa+w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701682994; x=1702287794;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nBxUOp4k8iF04PfE5JQxxLRa/lZUdCotTQUWqLt7x1U=;
        b=h8iKT/D6zgpEUkQIEp4jkONg5uHPNo37I7ZAtbSVviL0hZBjE+n+V+3/1uyRV2Cn6f
         kYj0yzRIsBazbTBjeSHfttWsGSwXgMQK4/6ZTOjAebd+Hsjl3xNI+LkAEgkUAyfBS6CR
         36iqD2fcUaeItsx3Gi/zeRumWy9Sf2XaRQox2HUE3w+GuvrzQAhupKrtSwihQrC70XpJ
         x7fgEMahGeC+h6JrixzZT0P5gdTNGIxBOFiAE4fVA3EO7kMfm7kSRrOwOx30gA/cuAzg
         PI6Go0J9yDtxB6m1hDCW4RYaXI16gglLbzI/LCRkc8neHI4lCdT4LP7dbhhaZiqguZcZ
         PT6g==
X-Gm-Message-State: AOJu0YwV/cYmONVQK7s//XsFA0ZaYT9fjr6RrYA4iFkY5khF6hsnYXke
	VmM/Wql6h9byqHbH5wYJHAekuRLDoMGj3fkuABw=
X-Google-Smtp-Source: AGHT+IGt10H1vLQ1ypcgx44pGrMANAyATfBxCWQXY+1f41YKPzKnWdOsUgoBXmadZnPVGkXFL0B5Xg==
X-Received: by 2002:a5d:44c9:0:b0:332:eae9:1db1 with SMTP id z9-20020a5d44c9000000b00332eae91db1mr2409608wrr.4.1701682994342;
        Mon, 04 Dec 2023 01:43:14 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v2 5/6] x86/iommu: switch hwdom IOMMU to use a rangeset
Date: Mon,  4 Dec 2023 10:43:04 +0100
Message-ID: <20231204094305.59267-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231204094305.59267-1-roger.pau@citrix.com>
References: <20231204094305.59267-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current loop that iterates from 0 to the maximum RAM address in order to
setup the IOMMU mappings is highly inefficient, and it will get worse as the
amount of RAM increases.  It's also not accounting for any reserved regions
past the last RAM address.

Instead of iterating over memory addresses, iterate over the memory map regions
and use a rangeset in order to keep track of which ranges need to be identity
mapped in the hardware domain physical address space.

On an AMD EPYC 7452 with 512GiB of RAM, the time to execute
arch_iommu_hwdom_init() in nanoseconds is:

x old
+ new
    N           Min           Max        Median           Avg        Stddev
x   5 2.2364154e+10  2.338244e+10 2.2474685e+10 2.2622409e+10 4.2949869e+08
+   5       1025012       1033036       1026188     1028276.2     3623.1194
Difference at 95.0% confidence
        -2.26214e+10 +/- 4.42931e+08
        -99.9955% +/- 9.05152e-05%
        (Student's t, pooled s = 3.03701e+08)

Execution time of arch_iommu_hwdom_init() goes down from ~22s to ~0.001s.

Note there's a change for HVM domains (ie: PVH dom0) that get switched to
create the p2m mappings using map_mmio_regions() instead of
p2m_add_identity_entry(), so that ranges can be mapped with a single function
call if possible.  Note that the interface of map_mmio_regions() doesn't
allow creating read-only mappings, but so far there are no such mappings
created for PVH dom0 in arch_iommu_hwdom_init().

No change intended in the resulting mappings that a hardware domain gets.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - Split from bigger patch.
 - Remove unneeded default case.
---
 xen/drivers/passthrough/x86/iommu.c | 157 ++++++++--------------------
 1 file changed, 42 insertions(+), 115 deletions(-)

diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 7e97805fccec..81d6129189d0 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -300,76 +300,6 @@ void iommu_identity_map_teardown(struct domain *d)
     }
 }
 
-static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
-                                                 unsigned long pfn,
-                                                 unsigned long max_pfn)
-{
-    mfn_t mfn = _mfn(pfn);
-    unsigned int i, type, perms = IOMMUF_readable | IOMMUF_writable;
-
-    /*
-     * Set up 1:1 mapping for dom0. Default to include only conventional RAM
-     * areas and let RMRRs include needed reserved regions. When set, the
-     * inclusive mapping additionally maps in every pfn up to 4GB except those
-     * that fall in unusable ranges for PV Dom0.
-     */
-    if ( (pfn > max_pfn && !mfn_valid(mfn)) || xen_in_range(pfn) )
-        return 0;
-
-    switch ( type = page_get_ram_type(mfn) )
-    {
-    case RAM_TYPE_UNUSABLE:
-        return 0;
-
-    case RAM_TYPE_CONVENTIONAL:
-        if ( iommu_hwdom_strict )
-            return 0;
-        break;
-
-    default:
-        if ( type & RAM_TYPE_RESERVED )
-        {
-            if ( !iommu_hwdom_inclusive && !iommu_hwdom_reserved )
-                perms = 0;
-        }
-        else if ( is_hvm_domain(d) )
-            return 0;
-        else if ( !iommu_hwdom_inclusive || pfn > max_pfn )
-            perms = 0;
-    }
-
-    /* Check that it doesn't overlap with the Interrupt Address Range. */
-    if ( pfn >= 0xfee00 && pfn <= 0xfeeff )
-        return 0;
-    /* ... or the IO-APIC */
-    if ( has_vioapic(d) )
-    {
-        for ( i = 0; i < d->arch.hvm.nr_vioapics; i++ )
-            if ( pfn == PFN_DOWN(domain_vioapic(d, i)->base_address) )
-                return 0;
-    }
-    else if ( is_pv_domain(d) )
-    {
-        /*
-         * Be consistent with CPU mappings: Dom0 is permitted to establish r/o
-         * ones there (also for e.g. HPET in certain cases), so it should also
-         * have such established for IOMMUs.
-         */
-        if ( iomem_access_permitted(d, pfn, pfn) &&
-             rangeset_contains_singleton(mmio_ro_ranges, pfn) )
-            perms = IOMMUF_readable;
-    }
-    /*
-     * ... or the PCIe MCFG regions.
-     * TODO: runtime added MMCFG regions are not checked to make sure they
-     * don't overlap with already mapped regions, thus preventing trapping.
-     */
-    if ( has_vpci(d) && vpci_is_mmcfg_address(d, pfn_to_paddr(pfn)) )
-        return 0;
-
-    return perms;
-}
-
 static int __hwdom_init cf_check map_subtract(unsigned long s, unsigned long e,
                                               void *data)
 {
@@ -444,8 +374,8 @@ static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
 
 void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 {
-    unsigned long i, top, max_pfn, start, count;
-    unsigned int flush_flags = 0, start_perms = 0;
+    const unsigned long max_pfn = PFN_DOWN(GB(4)) - 1;
+    unsigned int i;
     struct rangeset *map;
     struct map_data map_data = { .d = d };
     int rc;
@@ -476,58 +406,55 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
     if ( !map )
         panic("IOMMU init: unable to allocate rangeset\n");
 
-    max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
-    top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
+    if ( iommu_hwdom_inclusive )
+    {
+        /* Add the whole range below 4GB, UNUSABLE regions will be removed. */
+        rc = rangeset_add_range(map, 0, max_pfn);
+        if ( rc )
+            panic("IOMMU inclusive mappings can't be added: %d\n",
+                  rc);
+    }
 
-    for ( i = 0, start = 0, count = 0; i < top; )
+    for ( i = 0; i < e820.nr_map; i++ )
     {
-        unsigned long pfn = pdx_to_pfn(i);
-        unsigned int perms = hwdom_iommu_map(d, pfn, max_pfn);
+        struct e820entry entry = e820.map[i];
 
-        if ( !perms )
-            /* nothing */;
-        else if ( paging_mode_translate(d) )
+        switch ( entry.type )
         {
-            int rc;
+        case E820_UNUSABLE:
+            if ( !iommu_hwdom_inclusive || PFN_DOWN(entry.addr) > max_pfn )
+                continue;
 
-            rc = p2m_add_identity_entry(d, pfn,
-                                        perms & IOMMUF_writable ? p2m_access_rw
-                                                                : p2m_access_r,
-                                        0);
+            rc = rangeset_remove_range(map, PFN_DOWN(entry.addr),
+                                       PFN_DOWN(entry.addr + entry.size - 1));
             if ( rc )
-                printk(XENLOG_WARNING
-                       "%pd: identity mapping of %lx failed: %d\n",
-                       d, pfn, rc);
-        }
-        else if ( pfn != start + count || perms != start_perms )
-        {
-            long rc;
+                panic("IOMMU failed to remove unusable memory: %d\n",
+                      rc);
+            continue;
 
-        commit:
-            while ( (rc = iommu_map(d, _dfn(start), _mfn(start), count,
-                                    start_perms | IOMMUF_preempt,
-                                    &flush_flags)) > 0 )
-            {
-                start += rc;
-                count -= rc;
-                process_pending_softirqs();
-            }
-            if ( rc )
-                printk(XENLOG_WARNING
-                       "%pd: IOMMU identity mapping of [%lx,%lx) failed: %ld\n",
-                       d, start, start + count, rc);
-            start = pfn;
-            count = 1;
-            start_perms = perms;
+        case E820_RESERVED:
+            if ( !iommu_hwdom_inclusive && !iommu_hwdom_reserved )
+                continue;
+            break;
+
+        case E820_RAM:
+            if ( iommu_hwdom_strict )
+                continue;
+            break;
         }
-        else
-            ++count;
 
-        if ( !(++i & 0xfffff) )
-            process_pending_softirqs();
+        if ( iommu_hwdom_inclusive &&
+             PFN_DOWN(entry.addr + entry.size - 1) <= max_pfn )
+            /*
+             * Any range below 4GB is already in the rangeset if using inclusive
+             * mode.
+             */
+            continue;
 
-        if ( i == top && count )
-            goto commit;
+        rc = rangeset_add_range(map, PFN_DOWN(entry.addr),
+                                PFN_DOWN(entry.addr + entry.size - 1));
+        if ( rc )
+            panic("IOMMU failed to add identity range: %d\n", rc);
     }
 
     /* Remove any areas in-use by Xen. */
@@ -605,7 +532,7 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
     rangeset_destroy(map);
 
     /* Use if to avoid compiler warning */
-    if ( iommu_iotlb_flush_all(d, flush_flags) )
+    if ( iommu_iotlb_flush_all(d, map_data.flush_flags) )
         return;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:43:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:43:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646681.1009242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5Tz-0004jo-20; Mon, 04 Dec 2023 09:43:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646681.1009242; Mon, 04 Dec 2023 09:43: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 1rA5Ty-0004ih-T0; Mon, 04 Dec 2023 09:43:18 +0000
Received: by outflank-mailman (input) for mailman id 646681;
 Mon, 04 Dec 2023 09:43: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA5Tx-0003MS-VT
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:43:17 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c9171d0-9289-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 10:43:16 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3333b46f26aso1602431f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:43:16 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 d7-20020a05600c3ac700b0040b632f31d2sm9370573wms.5.2023.12.04.01.43.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:43:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c9171d0-9289-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701682995; x=1702287795; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dxD/xIKIZNY1Gd+udPylENsx3szHutH/fapKCoFaITg=;
        b=c2MH7ZNoZwZP90Z0dFD7stBvxBoFVPXHD6/Og9rfg9Liw/LCOcK/sCf9/fElYytCJM
         /j+1NcTZWl1LpFCGtEJZiWEeudoVF/Bt04vaCzwGvj+n2b3zAw44qncXT4JS/dcmjJ1K
         MdabpxhRJOzxQim1NImjhz4W0XcdS8VGvlW6A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701682995; x=1702287795;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dxD/xIKIZNY1Gd+udPylENsx3szHutH/fapKCoFaITg=;
        b=uuLidUkhjCofsJ0olzK9orfEDV63CKBETbo9ByRkV4CpagEldXJEO3jukHP10nVI4q
         TK9tdKmlTX/Tc+r7xJSMu8IazHr0RabdR7MZ/y+vKZIv9ZzD/JjzY/j38f3SjNQpn+gY
         i3tLbvw5Ph9HuLMvtWcVn5LQqpiYo0Wnv+xMr6Z4h1zKBV+KjzDuogJuv9U5pJSOe99g
         fc/HmquB/zs7OOHId3QNcuvpRHRHuGZEtD21PrZZ4KEzocdN6NGiKDrrYh7S+VUqFYW3
         fQbNU44OaRwEyPo3IqkJ/14Oz+6U/6ypEQy84rS17Ye7kg+ZzAWPSWR9PdqloCKDsMvE
         hKbA==
X-Gm-Message-State: AOJu0YwwwmDt9Maeir1irNkq8xVT1S1DDEhK1s6r79ut1KdhFUX9tBs+
	x5okhmBbx5s2wLJ8UuDsyDoxwAhiVJrvU1BpPgo=
X-Google-Smtp-Source: AGHT+IHC4vfktUCR6jsvd+9qQfs94hYFg8QP5pZ0Uo7toZQiieUuEjnP32WLZ2tIqVAz6IBf96RBXQ==
X-Received: by 2002:a05:600c:181c:b0:40b:5e59:b7af with SMTP id n28-20020a05600c181c00b0040b5e59b7afmr2209866wmp.140.1701682995478;
        Mon, 04 Dec 2023 01:43:15 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Subject: [PATCH v2 6/6] x86/iommu: cleanup unused functions
Date: Mon,  4 Dec 2023 10:43:05 +0100
Message-ID: <20231204094305.59267-7-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231204094305.59267-1-roger.pau@citrix.com>
References: <20231204094305.59267-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Remove xen_in_range() and vpci_is_mmcfg_address() now that hey are unused.

Adjust comments to point to the new functions that replace the existing ones.

No functional change.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Can be squashed with the previous patch if desired, split as a separate patch
for clarity.
---
 xen/arch/x86/include/asm/hvm/io.h |  3 --
 xen/arch/x86/include/asm/setup.h  |  1 -
 xen/arch/x86/setup.c              | 53 ++-----------------------------
 xen/arch/x86/tboot.c              |  2 +-
 4 files changed, 3 insertions(+), 56 deletions(-)

diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index e1e5e6fe7491..24d1b6134f02 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -153,9 +153,6 @@ int register_vpci_mmcfg_handler(struct domain *d, paddr_t addr,
 /* Destroy tracked MMCFG areas. */
 void destroy_vpci_mmcfg(struct domain *d);
 
-/* Check if an address is between a MMCFG region for a domain. */
-bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr);
-
 /* Remove MMCFG regions from a given rangeset. */
 int vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r);
 
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index cd07d98101d8..1ced1299c77b 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -36,7 +36,6 @@ unsigned long initial_images_nrpages(nodeid_t node);
 void discard_initial_images(void);
 void *bootstrap_map(const module_t *mod);
 
-int xen_in_range(unsigned long mfn);
 int remove_xen_ranges(struct rangeset *r);
 
 extern uint8_t kbd_shift_flags;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 71fa0b46f181..7d2cb61a2a4a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1343,7 +1343,7 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
         relocated = true;
 
         /*
-         * This needs to remain in sync with xen_in_range() and the
+         * This needs to remain in sync with remove_xen_ranges() and the
          * respective reserve_e820_ram() invocation below. No need to
          * query efi_boot_mem_unused() here, though.
          */
@@ -1495,7 +1495,7 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
     if ( using_2M_mapping() )
         efi_boot_mem_unused(NULL, NULL);
 
-    /* This needs to remain in sync with xen_in_range(). */
+    /* This needs to remain in sync with remove_xen_ranges(). */
     if ( efi_boot_mem_unused(&eb_start, &eb_end) )
     {
         reserve_e820_ram(&boot_e820, __pa(_stext), __pa(eb_start));
@@ -2087,55 +2087,6 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
     }
 }
 
-int __hwdom_init xen_in_range(unsigned long mfn)
-{
-    paddr_t start, end;
-    int i;
-
-    enum { region_s3, region_ro, region_rw, region_bss, nr_regions };
-    static struct {
-        paddr_t s, e;
-    } xen_regions[nr_regions] __hwdom_initdata;
-
-    /* initialize first time */
-    if ( !xen_regions[0].s )
-    {
-        /* S3 resume code (and other real mode trampoline code) */
-        xen_regions[region_s3].s = bootsym_phys(trampoline_start);
-        xen_regions[region_s3].e = bootsym_phys(trampoline_end);
-
-        /*
-         * This needs to remain in sync with the uses of the same symbols in
-         * - __start_xen() (above)
-         * - is_xen_fixed_mfn()
-         * - tboot_shutdown()
-         */
-
-        /* hypervisor .text + .rodata */
-        xen_regions[region_ro].s = __pa(&_stext);
-        xen_regions[region_ro].e = __pa(&__2M_rodata_end);
-        /* hypervisor .data + .bss */
-        xen_regions[region_rw].s = __pa(&__2M_rwdata_start);
-        xen_regions[region_rw].e = __pa(&__2M_rwdata_end);
-        if ( efi_boot_mem_unused(&start, &end) )
-        {
-            ASSERT(__pa(start) >= xen_regions[region_rw].s);
-            ASSERT(__pa(end) <= xen_regions[region_rw].e);
-            xen_regions[region_rw].e = __pa(start);
-            xen_regions[region_bss].s = __pa(end);
-            xen_regions[region_bss].e = __pa(&__2M_rwdata_end);
-        }
-    }
-
-    start = (paddr_t)mfn << PAGE_SHIFT;
-    end = start + PAGE_SIZE;
-    for ( i = 0; i < nr_regions; i++ )
-        if ( (start < xen_regions[i].e) && (end > xen_regions[i].s) )
-            return 1;
-
-    return 0;
-}
-
 int __hwdom_init remove_xen_ranges(struct rangeset *r)
 {
     paddr_t start, end;
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 86c4c22cacb8..4c254b4e34b4 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -321,7 +321,7 @@ void tboot_shutdown(uint32_t shutdown_type)
 
         /*
          * Xen regions for tboot to MAC. This needs to remain in sync with
-         * xen_in_range().
+         * remove_xen_ranges().
          */
         g_tboot_shared->num_mac_regions = 3;
         /* S3 resume code (and other real mode trampoline code) */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:46:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:46:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646703.1009252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5XN-0007ml-Jp; Mon, 04 Dec 2023 09:46:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646703.1009252; Mon, 04 Dec 2023 09:46:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5XN-0007me-FI; Mon, 04 Dec 2023 09:46:49 +0000
Received: by outflank-mailman (input) for mailman id 646703;
 Mon, 04 Dec 2023 09:46:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA5XM-0007mY-Hd
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:46:48 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2077.outbound.protection.outlook.com [40.107.7.77])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a7e5125-928a-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 10:46:47 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DU2PR04MB8902.eurprd04.prod.outlook.com (2603:10a6:10:2e1::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 09:46:18 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 09:46: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: 0a7e5125-928a-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Hc5BK2Pne3gvWJmBKTVEIXyOjbk7sd7yO+JL270gDRwdFrWISqtBhwXtVZS2LHX4YhI20neGLwOxJDAbQgd6UTtq1ca3YwIgpyvgjb+cOdF87dei9W0da1vswNBPai+h22EsWtCOKW1oiMaeBN2OWglND5B4foXyyCqhrPU0VXHW2dzfawmvG5cVqpxVMujo24gdPRjxi7CEMqLRecNs835Jx6RQ58SG8XTYlfVp/BJnQ05Nd4W4aeMtblfHM6WpcNR4Qmg/nTpNOHqpNDGBYXVE5R1ppGsec1kvtss1YHktcYG+c/H4QRLxdBOnC8aOHa4VodZMQusbu61HLs4AyA==
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=BgOu7R3b/ruejFf2564NEBBdQQ6D81cOPPTVDf5qamY=;
 b=Ahk31vJ891F7v+0KcmGpo+EVyzucooBCbZtgRCJnKFJMsQaNJCHPGPGbWeqRJzumKtGBZRxxcJLt8nmyvVvZnK8llqu1FNaMJlWNVmmravHR9c5V0PsGhyK8wIcTdq6z+yrlA8a/f8mNV16gFohX9hO8kK7e4t6C8mslb/npbTvrdjtPLPIziPpY+ARbanEnf1uCjtWV+D0mcihtHdpi9nqXixdaDOSGbEccVoRVzAo5iymD8yF3MP1uI2ieZkcFGmHRtgm0ICRAnRg3uRKQ0cq+xho4tyxr5GyLlBfyxev1/gswSd9IaQA63Q6MNkxHxQj4n9xjEe31dgJ/g8Sf5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BgOu7R3b/ruejFf2564NEBBdQQ6D81cOPPTVDf5qamY=;
 b=0zZMj5YtPoEO/n1BDDWtZOkdz6zuK9abG+F+tGICu1m/hjCn6emOlexSqa+aZza8EXJK9Pt5W/TKt2RFqegDne+Bc+xvpikOfPmlEXvAxJdwJDuCebn+0J9i4AVlzMGiKQLtC0WfcVIht+5lUK9NNckWpsp4eCwFYZdZuAG+D8svxk9G8KW77MEDzqfZcae/LDN7WAdpS/2p6Br7Vgi8BQo+UeeGoBBn490ZwD8vQOtyGRdx54a6LhEq1/LksQkzTDrUe/Xitjf5fGaOEPEZmEzQ4J/u9WDudC0pf5fzn2IJuw7oqx/wsmGTdkRDK7BqxwSkUolgAliI/9fv0iiM2A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
Date: Mon, 4 Dec 2023 10:46:20 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
Content-Language: en-US
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
 <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@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: <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR2P281CA0171.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:99::16) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DU2PR04MB8902:EE_
X-MS-Office365-Filtering-Correlation-Id: 8be3c1aa-52bf-4d67-34a4-08dbf4addd51
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	rQy/wW95f/RCc0NdL1orUnQ5wg9aWRK3SWqs6sdaOazcGbA5/Ds2hihM3hKPGCWRcrNwM5+FutuaxBVyQdl97u8zfYH458/LJ/E8gOQdmRyR3Rz9L3B54qiLhtqy1uefNRwt/pfHx0SrIrbCQPkwzWiQYmueXr4BLJdS/GWR7hUEMM/5+vcR0lAwYhN58YmmmSS+dsYlnP7KJHxk6ZIRCNZHvGk4KGnpNkWxva727tTjLJjHUIbCPlrqKLDBNtOFA/Z4b2IhlAySdLD2mCeFm05DdjlQYw7QxnguT/ByeWXJ2rypc6ztqgrPLqytN/DPCfnptYScvuKG2e0xk1SHVeGvVeFTNHjbiV9OKu69JRWC8HQ/x4N8fDY8/L7YvbcgMU8yv00g4J/4wFgDwFzRLk2z1iUR5UJFN7suDqkRdMP2CtE2Vlf8L3bNGjIbmaJlp+4yf3F2KY3FTF1CFNotMdGV+In4dZAD7RUJUM4eGCLZx4yMqoGPX7i44qAmiS5PAZ280cJJvPgCgBmaklSJRBZSxbL1ovJ6FFmjg4swLStaFECQnsTtfwRzeZuMXikubv8ERP8P5OyFCUuUQnJSS/5CRLW31TzDoid5Fuzshi++qHe8efoy4YYuuhnAejorHs5Q464t9b5w042K1IXnyA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(376002)(396003)(39860400002)(346002)(136003)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(7416002)(5660300002)(31686004)(54906003)(316002)(4326008)(66946007)(66556008)(66476007)(6916009)(38100700002)(41300700001)(2616005)(83380400001)(26005)(8676002)(31696002)(8936002)(36756003)(86362001)(6666004)(6486002)(2906002)(53546011)(6512007)(478600001)(6506007)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z3NBZ0dDOUYvcHJOM25xNVlrMncwOHlDYmRDdWtOS1NyaW9aTElTWjk2OHA3?=
 =?utf-8?B?bk5TYTBOSGUzNWxybVhZbER1SGZBVitGcmV6MGkraEFJVG9iWGZvSWZQVHJz?=
 =?utf-8?B?czNxdy8vdnpuOFRkM21zczVqNWpiNi9xbnlnby9KTHJQbnpkb3R0Z0E4ZTZh?=
 =?utf-8?B?bVNSbnNqZDAwS3FFbjZ4dmRubUUvbHljL05JQ1MydmxrWUhFcXNGaEtqSG9p?=
 =?utf-8?B?OHJONjlxaUx6ODJYeFJSLzAzQTlHSU5QOFpUY1dySkFrVjVWblN4UDA3WmhL?=
 =?utf-8?B?Q29NejRMRlZzOVdYQ3R3TUZBM04rSUYwdlcraUxtL3ppY1Z3alJGSlh3ZnNk?=
 =?utf-8?B?RnNvVlAyd09Ka0NDMGFaL0poREp5RE84Q3JObFVhNGI3b1h2MWZXaVhndG05?=
 =?utf-8?B?NU9HTTQ3bW9zZkxpZk9QYmhFMEVSYm01d2tBc0Z4WlJ3RU1TSXdTYUloOGc2?=
 =?utf-8?B?dENJSVRLYTFXQ1c0QlJPcStKeGN2eFRjWUp5M05pd3V1cm9zVWt5Z2ZkZGZ5?=
 =?utf-8?B?Y3cyak1pWHdQcFROUlJWdTVOTDJCR1FHN1VCR21TN245bElxQ0JqSnhDTXA5?=
 =?utf-8?B?OTdycktyL3UrZjFwZmZwbWdtYmVmRUJmQ1F3Rldmd2kvMGxRb29rVUFYUGE3?=
 =?utf-8?B?SjNTeFpPNlZtVzlnR3VjTFk0U1pKN2lLZTZCVEZjV3hxcU9CSTRrT2JBSVJk?=
 =?utf-8?B?OTVNV0Zwb2p4UkwydEtRQVBiaDU4ZjN1eE5sM0JYK2RjdDVSTmh4Y2VKdU5s?=
 =?utf-8?B?SkR5NFZFRkZnQ0RSYUVrV0diNjBoMjRNV1FjRHJKZWFRZFV2NXFxbVFvZHJQ?=
 =?utf-8?B?aE0yTUJYUmFDaHd6NERDUFMzSENaaExHWXhycUtsdE1CTVpEU2MwUzArbmdF?=
 =?utf-8?B?d2hPVmVNancrWEZ0YXFqd243WTZ5WXBaRTRlbWN0U3ZSRm9aSUFPbnIvVWc1?=
 =?utf-8?B?TEZXYmRRRTAzaXhMMzlSUEVSakIrNi9mdTVhK2RSUTkvRkRqYXRaNExHVU9y?=
 =?utf-8?B?MUFYRm5hVGp2NUpBcDdCTFdTWVpsL0xDY2hSVXloQ0V4SldhZGp2MG5OY1RH?=
 =?utf-8?B?MUI4TmdyVU4zdm9ybnk1TEpuSFZpTmI4TlZqdWZkc1lGK1VjTHlCaC9KNmJn?=
 =?utf-8?B?b1g2dDgrVFBvVU01MGl3dUd3L0pJRmJ2dXRtTE5RTFBNaXlhSFlnS3liQVRH?=
 =?utf-8?B?TjhZNmNKcC9zb2RJejcvb2VMS0ZNT1RtMTd1WWpTWXJuVmtyOTFWMFo4bVoz?=
 =?utf-8?B?Tm1MMFl1bmJmR2tUTXh6cDZMOUhuU3QzOUlBZENoN01ESnhieEk3d3BqRWU4?=
 =?utf-8?B?NWU5ZDVNaHdINzNaeGJUMmM2ZFhWd1lEamJic1h5UGozcm5hK25palZta0dM?=
 =?utf-8?B?M3pPRHE4UHJLWlBnMlhwbXVISE5kYmRPMkNLVEJwZkxyYk4wRmF0NjA5OEdx?=
 =?utf-8?B?bXJVV1hYNWJGWVRYNmxZMDdOYzJ6VUpYZjgxRVI4MnhUZmJybFBrQWErYXd6?=
 =?utf-8?B?S3EyUjhrS3JXM2JibE5UV29oSVZ0bmVjS1Nyc2VIeG5CWkc1N1dycFI1RkxZ?=
 =?utf-8?B?OVV3Y1BtNWFoOHpqWVNSVzc3WEdDNzNxdm84T0xmdVB5UHI0Q0g3aVAxV1Fz?=
 =?utf-8?B?blM3TzZ6ME9WeGJJVXp4MlJGdDVoQ2VXS1BCcmEwZWZwYzlodm9lci91N1Jk?=
 =?utf-8?B?UTh4TWx4bXovK0pXWm9vT2NkWit2UUF5UWVWaWJFNUh4K2Q0QlN5cW1HRTQw?=
 =?utf-8?B?WFV4ejVmVWh0TXNlNExzWHdRQUFqMVQvNFNQbTQ1VStJdFVlRkZhWnVJWHBv?=
 =?utf-8?B?dG1nMHZnN0MyQWZZdU9MYkNGZWViZG5mVVozeTVyOUNwaXhXS1hWYnVwdE1v?=
 =?utf-8?B?eCtEaVhHVkFCT2xkVit3UytNSmdlVnFCa1ZUYWpvN0FaelJPZTFMUHAxNlhJ?=
 =?utf-8?B?RHVPS2dKa21RdWtnK2pmeDRQcGdTaFoxbENvTzNFdjNOaDdKbEs3NkR6aDBp?=
 =?utf-8?B?RWk2MUR4U3NXVUxrV3lVbXNERHlkV1pJUTY3dWc4ZktLWGptV0hmekwrNXNt?=
 =?utf-8?B?amdtSjFuSk1BM1pZSWhFU3lvTnNUVW52WThBd3E1SEUyVFpQYUZRSlR0M0Zn?=
 =?utf-8?Q?aBhurspUquDR8y9PQWKLFLJG2?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8be3c1aa-52bf-4d67-34a4-08dbf4addd51
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 09:46:18.6304
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WxfoPVwChidqhfCEqBcVEFQvhlkPbR0I0yp+WP3K40tlNmMYCQpP9JrSODSu18P9mBzItloGwVdaPjWWnY4mzA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8902

On 04.12.2023 10:39, Oleksii wrote:
> On Mon, 2023-12-04 at 09:41 +0100, Jan Beulich wrote:
>> On 01.12.2023 21:48, Oleksii Kurochko wrote:
>>> Ifdef-ing inclusion of <asm/grant_table.h> allows to avoid
>>> generation of empty <asm/grant_table.h> for cases when
>>> CONFIG_GRANT_TABLE is not enabled.
>>>
>>> The following changes were done for Arm:
>>> <asm/grant_table.h> should be included directly because it contains
>>> gnttab_dom0_frames() macros which is unique for Arm and is used in
>>> arch/arm/domain_build.c.
>>> <asm/grant_table.h> is #ifdef-ed with CONFIG_GRANT_TABLE in
>>> <xen/grant_table.h> so in case of !CONFIG_GRANT_TABLE
>>> gnttab_dom0_frames
>>> won't be available for use in arch/arm/domain_build.c.
>>>
>>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>>
>> Not really, no: In particular ...
>>
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>> @@ -15,6 +15,7 @@ config CORE_PARKING
>>> Â config GRANT_TABLE
>>> Â 	bool "Grant table support" if EXPERT
>>> Â 	default y
>>> +	depends on ARM || X86
>>
>> ... this I explicitly said I consider wrong to add.
> Then I misunderstood you.
> 
> What about to do the same as with MEM_ACCESS config and introduce
> HAS_GRANT_TABLE?

That's an option, provided (and I put that under question before) there
realistically can be ports which don't mean to support grant tables.
You mentioned that things are fine for the dom0less setup you're testing,
but I don't think a fully-functional Xen port makes sense to only support
dom0less. But of course I'm willing to hear arguments to the contrary.

> Or would it be better just update "depends on" to !RISCV && !PPC?

Definitely not.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 09:47:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 09:47:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646707.1009262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5YG-00005M-0u; Mon, 04 Dec 2023 09:47:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646707.1009262; Mon, 04 Dec 2023 09: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 1rA5YF-00005F-T1; Mon, 04 Dec 2023 09:47:43 +0000
Received: by outflank-mailman (input) for mailman id 646707;
 Mon, 04 Dec 2023 09: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=ZlsO=HP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rA5YE-00004s-I8
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 09:47:42 +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 2a33a309-928a-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 10:47:40 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2c9f751663bso15154551fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 01:47:40 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 d8-20020a2e3608000000b002c9fe11efe4sm416405lja.28.2023.12.04.01.47.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 01:47:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a33a309-928a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701683260; x=1702288060; 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=vfCxh42SAIcexuottZDoVAumfzPxOM0PeiylIayO29Q=;
        b=W3XEwFwwSRbjRLVj5jp+Ly6TccdvJWUl8Py5GNZOc45zFDGzf67IZBH5K7Z+r0eFkO
         /CbaLvDwGHft4TVuX34zX3p8qigN4VsO84Ka16Pj95a6JdRENfbNjWFFjCfdbgRDoUHJ
         PKwE+0ahmOL5bPGTPwmbKrlsrgZClL9x+XkV3vNezPftGOwY/y9X3xNs6lVWfJBeI7kI
         0coSmuKpOXFqXTlHI/m8i00wBaVVjo0FC+UxAT1I74vbiOz9vueGQ6CKzWJ4dkAgxHc6
         BJ7MwPrqFhdH1n2gsbXe71XHp/hnZXDQ77R/GSTa1fqSQGs/G7uBlu/qdGx4PV3eb/Kr
         VZcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701683260; x=1702288060;
        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=vfCxh42SAIcexuottZDoVAumfzPxOM0PeiylIayO29Q=;
        b=VSDVQLSFSJyyRmkL2IjsfiNkAiT/faMlADiGfSxW8LQwe68ZQsKMJYxJt+lG4Hybdm
         mjEQKoenq1YkDCq1J4dKGqdMKSMG02heU7RtEmvG/tL5cSi4kbWYRFzE/3V7xLWAXSF3
         8CtKH6sFpg8QR0YEIyLDm2OmxbiWTufN6iu0Jrnm931hZlJApP1R0rAmuzjs2v4nZcTr
         9rehd7OvT4fGKt1+ct3mL5ibjvtUV6QqbFjvUp6Wt+rybC7M+m28UXM/Z2ylXTlL/46Z
         8NRf6+ZBmn90rtLS9hXtBnlrkIsl9Bey//K66oaB7yXTbeb55yJxsNrl3u3KIHATbS7l
         zDJQ==
X-Gm-Message-State: AOJu0YxUwNAuYMF7p9tk7xFa8alyMbA3cwW+0z7p6JzW9GqYE0dds//V
	ySbjk7XplQHKjlhztLadLMQ=
X-Google-Smtp-Source: AGHT+IF3gAv3lmESjEykrFt+Sy3AQ0iEpRMpbucl+o75HSOfaJ48do0SoQzitS7U5bqlaN7//4IGPA==
X-Received: by 2002:a2e:9b01:0:b0:2c9:ebe8:e648 with SMTP id u1-20020a2e9b01000000b002c9ebe8e648mr706299lji.130.1701683259957;
        Mon, 04 Dec 2023 01:47:39 -0800 (PST)
Message-ID: <8dfbea602fe5192cdc9342d2850350214bb5e9ef.camel@gmail.com>
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
From: Oleksii <oleksii.kurochko@gmail.com>
To: Julien Grall <julien@xen.org>, Shawn Anastasio
	 <sanastasio@raptorengineering.com>, xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>, Jan Beulich
 <jbeulich@suse.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
 <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Date: Mon, 04 Dec 2023 11:47:39 +0200
In-Reply-To: <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
	 <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
	 <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

Hi Julien and Shawn,

On Fri, 2023-12-01 at 20:56 +0000, Julien Grall wrote:
> (+ Arm and RISC-V folks)
>=20
> Hi Shawn,
>=20
> On 01/12/2023 20:59, Shawn Anastasio wrote:
> > Adapt arm's earlyfdt parsing code to ppc64 and enable Xen's early
> > boot
> > allocator. Routines for parsing arm-specific devicetree nodes (e.g.
> > multiboot) were excluded, reducing the overall footprint of code
> > that
> > was copied.
>=20
> I expect RISC-V to want similar code. I am not really thrilled in the
> idea of having 3 similar copy of the parsing. So can we extract the=20
> common bits (or harmonize it) so it can be shared?
>=20
> Maybe Oleksii has already a version doing that.
On RISC-V side I introduced the common bootfdt but probably it should
be aligned with the latest version ( my plan was to do that before
sending a patch to upstream ) of ARM's bootfdt.c.

https://gitlab.com/xen-project/people/olkur/xen/-/commit/ad2c8766a7d0886df8=
4f6c60823275816c2115f5

I can re-work it this week and send it to the ML but I'll be happy if
Shawn can do it or his version as common so I'll be able to reuse it
soon.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:02:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:02:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646728.1009272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5mI-0007H4-6l; Mon, 04 Dec 2023 10:02:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646728.1009272; Mon, 04 Dec 2023 10: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 1rA5mI-0007Gh-3I; Mon, 04 Dec 2023 10:02:14 +0000
Received: by outflank-mailman (input) for mailman id 646728;
 Mon, 04 Dec 2023 10:02:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rA5mG-0007FM-65
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:02:12 +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 308e17d8-928c-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 11:02:10 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 78C151F898;
 Mon,  4 Dec 2023 10:02:09 +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 47FEC139AA;
 Mon,  4 Dec 2023 10:02:09 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id oonRD6GjbWWfSwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 10:02: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: 308e17d8-928c-11ee-98e5-6d05b1d4d9a1
Message-ID: <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com>
Date: Mon, 4 Dec 2023 11:02:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
 <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
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: <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------axUbdFi8G4sJniSqFRLmMMib"
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-0.997];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 ARC_NA(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 RCPT_COUNT_FIVE(0.00)[6];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: 78C151F898
X-Spam-Flag: YES
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------axUbdFi8G4sJniSqFRLmMMib
Content-Type: multipart/mixed; boundary="------------a3rNEQbV3fYnvfUnBVduIZ57";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com>
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
 <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
In-Reply-To: <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>

--------------a3rNEQbV3fYnvfUnBVduIZ57
Content-Type: multipart/mixed; boundary="------------Fj6kQXg8rMkVq28WK3C0zV2L"

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

T24gMDQuMTIuMjMgMTA6MTUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwMS4xMi4yMDIz
IDIxOjEyLCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPj4gT24gMDEvMTIvMjAyMyA3OjU5IHBt
LCBSZW7DqSBXaW50aGVyIEjDuGpnYWFyZCB3cm90ZToNCj4+PiBJZiBJIHNldCBzbXQ9b2Zm
IGFuZCB0cnkgdG8gY29uZmlndXJlIGNwdXBvb2xzIHdpdGggY3JlZGl0KDEpIGFzIGlmDQo+
Pj4gYWxsIGNvcmVzIGFyZSBhdmFpbGFibGUsIEkgZ2V0IHRoZSBmb2xsb3dpbmcgY3Jhc2gu
DQo+Pj4NCj4+PiBUaGUgY3Jhc2ggaGFwcGVucyB3aGVuIEkgdHJ5IHRvIHVzZSB4bCBjcHVw
b29sLWFkZC1jcHUgb24gdGhlIGRpc2FibGVkDQo+Pj4gSFQgc2libGluZyBjb3Jlcy4NCj4+
Pg0KPj4+IEh5cGVyLXRocmVhZGluZyBpcyBlbmFibGVkIGluIHRoZSBmaXJtd2FyZSwgYW5k
IG9ubHkgZGlzYWJsZWQgd2l0aA0KPj4+IHNtdD1vZmYuDQo+Pg0KPj4gQ0MnaW5nIHNvbWUg
bWFpbnRhaW5lcnMuDQo+Pg0KPj4gSSBleHBlY3QgdGhpcyB3aWxsIGFsc28gZXhwbG9kZSB3
aGVuIGEgQ1BVIGlzIHJ1bnRpbWUgb2ZmbGluZWQgd2l0aA0KPj4gYHhlbi1ocHRvb2wgY3B1
LW9mZmxpbmVgIGFuZCB0aGVuIGFkZGVkIHRvIGEgY3B1cG9vbC4NCj4+DQo+PiBJbnRlcmVz
dGluZ2x5LCB0aGUgY3Jhc2ggaXMgbW92ICglcmR4LCVyYXgsMSksJXIxMywgYW5kIEkgdGhp
bmsgdGhhdCdzDQo+PiB0aGUgcGVyY3B1IHBvc2lvbiB2YWx1ZSBpbiAlcmR4Lg0KPj4NCj4+
IEkgZXhwZWN0IGNwdXBvb2xzIHdhbnQgdG8gcmVqZWN0IHBhcmtlZC9vZmZsaW5lIENQVXMu
DQo+IA0KPiBXaGlsZSB0aGUgb25seSBleHBsaWNpdCBjaGVjayB0aGVyZSBpcw0KPiANCj4g
ICAgICAgICAgaWYgKCBjcHUgPj0gbnJfY3B1X2lkcyApDQo+ICAgICAgICAgICAgICBnb3Rv
IGFkZGNwdV9vdXQ7DQo+IA0KPiBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgdGhpcw0KPiANCj4g
ICAgICAgICAgaWYgKCAhY3B1bWFza19zdWJzZXQoY3B1cywgJmNwdXBvb2xfZnJlZV9jcHVz
KSB8fA0KPiAgICAgICAgICAgICAgIGNwdW1hc2tfaW50ZXJzZWN0cyhjcHVzLCAmY3B1cG9v
bF9sb2NrZWRfY3B1cykgKQ0KPiAgICAgICAgICAgICAgZ290byBhZGRjcHVfb3V0Ow0KPiAN
Cj4gdG8gZGVhbCB3aXRoIHRoZSBzaXR1YXRpb24sIGFzIHBhcmtlZC9vZmZsaW5lIENQVXMg
c2hvdWxkbid0IGJlICJmcmVlIi4NCj4gSsO8cmdlbj8NCg0KVGhlIHByb2JsZW0gaXMgdGhl
IGNhbGwgb2Ygc2NoZWRfZ2V0X29wdF9jcHVtYXNrKCkgdG8gbmVlZCB0aGUgcGVyY3B1IGFy
ZWENCm9mIHRoZSBjcHUgaW4gcXVlc3Rpb24uDQoNCg0KSnVlcmdlbg0K
--------------Fj6kQXg8rMkVq28WK3C0zV2L
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-----

--------------Fj6kQXg8rMkVq28WK3C0zV2L--

--------------a3rNEQbV3fYnvfUnBVduIZ57--

--------------axUbdFi8G4sJniSqFRLmMMib
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/Ey8FAmVto6AFAwAAAAAACgkQsN6d1ii/Ey/r
5gf9G4REmHurVaYJt5fW7mC+GTh79XlmDKQk1FginaTCbWnFYYZVG0ws3yd2ZXTCNPoZmJBU0RZ3
OdN28y54YSFJReprR/EJKuDHMiPCPKOByThaJVoHYCI1/YdxI6LZQ/+AzjIQz7/BGo5eoZEKeaIC
uogRgQJXDR8Nc3xilcHO0/kR8BIhcmpR+Pf5VOCAiOaVXBQUWhrLYJjGgA6hT6T0sVz6OqOpPpNM
bhPZPRyjp+1TNLVpEgAgQOITvSxBn6n38NWzCm6yYvaUxlN0Nh2QD5/oAeVIz58flmhlGnT/J9qs
oMJTIH3FExE9UVxqodGmcHDZwqWJBcXBqlwlPcFfLA==
=AAlR
-----END PGP SIGNATURE-----

--------------axUbdFi8G4sJniSqFRLmMMib--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:10:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:10:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646732.1009282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5uA-00029r-Vn; Mon, 04 Dec 2023 10:10:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646732.1009282; Mon, 04 Dec 2023 10:10: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 1rA5uA-00029k-T5; Mon, 04 Dec 2023 10:10:22 +0000
Received: by outflank-mailman (input) for mailman id 646732;
 Mon, 04 Dec 2023 10: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=P9KO=HP=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rA5uA-00029e-7U
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:10:22 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 548fcd90-928d-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 11:10:21 +0100 (CET)
Received: from mg.gitlab.com (16.226.74.34.bc.googleusercontent.com
 [34.74.226.16]) by
 f3cb218564aa with SMTP id 656da58a6934733ad8adce1c (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Mon, 04 Dec 2023 10:10:18 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 548fcd90-928d-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701684619; x=1701691819; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=RdhyrLDYGHbSdk7FGPeOxPwhK6qjhz23/8HcypY80x8=;
 b=hP8g54vrtHWcf82IskzNq6heMlVclEmVeXd7qYTtN6ws2QMaIzrEQXlQy/5/Lv+SxPTQHmZK6IpweWn+xVtyzAyx7+yuVUrVNsA24F9N+RdDx4kYgDtM576rtHrb0x+bSVP87Sw9IqETQxtcXdfHhxdrjuBwT+5AFwWV+kDGQ0s=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Mon, 04 Dec 2023 10:10:18 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656da58a7e8e9_2c61160742898ef@gitlab-sidekiq-catchall-v2-554c8d565-m77px.mail>
Subject: xen | Failed pipeline for staging | 525c7c09
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656da58a70a40_2c61160742897c7";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1093622286
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656da58a70a40_2c61160742897c7
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1093622286 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 525c7c09 ( https://gitlab.com/xen-project/xen/-/commit/525c7c094b258e8a46b494488eef96f5670eb352 )
Commit Message: xen/arm: Move static event channel feature to a...
Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
Committed by: Julien Grall


Pipeline #1093622286 ( https://gitlab.com/xen-project/xen/-/pipelines/1093622286 ) triggered by Andrew Cooper ( https://gitlab.com/andyhhp )
had 3 failed jobs.

Job #5669490041 ( https://gitlab.com/xen-project/xen/-/jobs/5669490041/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug
Job #5669490022 ( https://gitlab.com/xen-project/xen/-/jobs/5669490022/raw )

Stage: test
Name: zen3p-smoke-x86-64-dom0pvh-gcc-debug
Job #5669490010 ( https://gitlab.com/xen-project/xen/-/jobs/5669490010/raw )

Stage: test
Name: zen3p-smoke-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 525c7c09</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1093622286 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/525c7c094b258e8a46=
b494488eef96f5670eb352" style=3D"color: #3777b0; text-decoration: none;">=

525c7c09
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: Move static event channel feature to a...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/47e2f2ac4637bce0cc380dba59a9412f?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/orzelmichal" style=3D"color=
: #333333; text-decoration: none;">
Michal Orzel
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1093622286">#1093622286</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 3 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5669490041" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5669490022" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-smoke-x86-64-dom0pvh-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5669490010" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-smoke-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656da58a70a40_2c61160742897c7--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:13:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:13:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646764.1009292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5xP-0003aj-HI; Mon, 04 Dec 2023 10:13:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646764.1009292; Mon, 04 Dec 2023 10:13:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5xP-0003ac-EY; Mon, 04 Dec 2023 10:13:43 +0000
Received: by outflank-mailman (input) for mailman id 646764;
 Mon, 04 Dec 2023 10:13: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA5xO-0003aW-3Z
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:13:42 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20611.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca4915ca-928d-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 11:13:41 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AS1PR04MB9287.eurprd04.prod.outlook.com (2603:10a6:20b:4dd::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 10:13:33 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 10:13: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: ca4915ca-928d-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=E+PAKSxEw/+X2LSXJyYZsM8Yb5M5Ru+3V8UWkA7U8UEZNeykPxJ6Bz7pIA8LPbuXUAxYwrRCetuL6+y9flVqaUcBely/UdqvUVEwxBUMNx6327sEQdrlHiIfie1wL9JBRx9uM83+XOifFijuCRW+yXuGcbewE0aQg3IkL9azZuh7a56fcPfYiPlodcY/AvvuHR43WQLlrSi3HcJopHViLJ8fL/722PQ2AF4ackXjIeobbFTBDq/xHi9w61g5Pdxz2hWRExnhmxhBjC66UXJRWHcU9PrXQzCcvIRHFyqbABjsmV/d6WqU0hpLHAhpzLXhNtYYtnShCUlOF5Xnc7UIfg==
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=Vl7m+5dptxbUpLyjIiAk8m9gzzZooMdgEF2grSjLUPc=;
 b=Lj8XaeHcOBz5fVNHnZEWDpPH0hbb+ownlphTe1FGPN4p/rXfbUMDKLhgiP3I07VCD2r1Hw81Rky0VqL1TnThTErWJ7ghLztS47c7lTCNxkCdwKzpDmVv+GR3ETJfdcu3wmA4BXGh5yDdGe1KIqHTV/+fQ0BLUX5Grtw7JDm+/+R5J8ZMG6Dz1JJIQD9EtbHhz9kR9avU/glt4M6BTHKQcQoy2gPZTPPL/Bzm4I3UvQpyYn7LfOc9gAkgVsfLqTBZL8JUZbkQO/kmprNm7E9RuqtfRkQWkFN1Q9a/U9t1lRg4jUTDzEuMXOdx5Y+ssYK501MQrtupY4ZM4M8Nv+eqkQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vl7m+5dptxbUpLyjIiAk8m9gzzZooMdgEF2grSjLUPc=;
 b=uzcuMOQK8FWsIqfNkULuss0J56h/uECR75UC0B8qM5Fwq0ITniG0leQoYSPNskwe+zts9eIJi5Fn3nbMZ2bB1lIRwjW5sm+H0+WZYbuDjeSzOq9i9RTlrAFWnF/sbWGFWqeKU57vPBk0ljR6DfndRJdkCqISEHEF8L1nxfANKHB4Peqr80dlSHtjKWwuj4BYWMw1l/SCaHgv1pEPb+llhE7uw//nQf/8uMN7+bjVcP7KHXWpHlEJTYkBjyTAZ5A+0g5lL44sL4moRns0jaXywFMSGONLrXw0tqu//1ReG/mDUm0qwMRvz0zxysi88sNEjEp4Tk657dGsog4EFz1gGQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <1fc21e82-f9f3-4929-a138-2b3de98c06dc@suse.com>
Date: Mon, 4 Dec 2023 11:13:35 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
 <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
 <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.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: <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR0P281CA0041.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:48::6) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS1PR04MB9287:EE_
X-MS-Office365-Filtering-Correlation-Id: 756ccd75-b1d2-4374-6c53-08dbf4b1abcf
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JEFlbblWMI7lAqFJHaQUWHIHIbWoJ/lJr6KGtnURxSz26WCZewlVqTeFu8c7GPZCUPYh+Qdu5uOKCmlPr8nQvb6yEkTNqmF2IV8WECkjbfbghNJD7FgBxS4OBgRf7jXHoNW8E+mSUqhuviCvTJbATgalb0HcKuspsWv3h/sIhjH1HVlW/jvDAzBbs0VSU819cSNEYH7YD1yppsRMpArfgUpYqJDuuVXI6OKyXURGyQVz2OvlCwMhZk3Q5u1Kr/aYFw3RL25sLQWywe2FN9n2/qPzF0k1PC7kwp67SPZPiO2cBgn8Nr3/3WqbqvWpuuCWkNwNEPjGoSwIefdJOMJKiKl0VktwGjN7zldXjV+yku7SyCrSvHQNfZZ3nHOrQRi5ZggRoNe5yGpP6h9qJ8zab0iCAVS/3adCZXonVoM+5Qu4Twjv/ScV0mvysNgp8aMgahgu0Lkwjau1PfgPJoX5U69EoG/NZFbx9awfuubiuhlUpqTipFjyLOJyicfS0bigEDYVV+lUWWCtYdAcEH0lnnmPZxvn9gXZy1C8/Jm7W2lZ9ukVc1PcG+pp/a9uqv8AIP5hsvsoBLm5w1cyLQei9tDqS4+ywN5Zt+lra3gy1vn+Q4RVUmkym9EUkRi0uIPHNVA5u57O1rZcMo67QE4M1g==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(376002)(366004)(396003)(136003)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(66476007)(66556008)(6636002)(66946007)(316002)(37006003)(54906003)(4326008)(6862004)(66899024)(8936002)(8676002)(31696002)(86362001)(36756003)(53546011)(6512007)(6506007)(478600001)(6486002)(2906002)(2616005)(26005)(66574015)(83380400001)(38100700002)(41300700001)(5660300002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MVBjWGdyWEc1dlBJTEtoSTNzbXllenFSbkNta213Y0F5NDZkZWFyTmFXN2F3?=
 =?utf-8?B?aXpqUjNPRlU2VnVzSEVnZEVsLzZ0QnRIbUtreHY1N1hJd05lRnJjMkV6Y3Er?=
 =?utf-8?B?eDUybzMzM0RqOWV6LzA2QlJaZWtLYmZVT0NvN2NGYzBlQytqdnEwenQxTGQ1?=
 =?utf-8?B?S1NHeFVJTGtvdXIzS2cvK1FXTU0velNYNWZyZWJxNlhhZGhzMVFRN2drWnJM?=
 =?utf-8?B?WVpQNE04bjdWNVhIdEJVWGdpc0Y2V0tyRFZQWDBMZGVWN3YxaEtabkNGQVJY?=
 =?utf-8?B?RUkzRldjK3duQ1J0WDg2Q0JKeVk3UmQ4Q1IvMzFFUlZTN0UxWld6NDFhS09I?=
 =?utf-8?B?TW1lZzZsSlFLUG50bU5uQ2pKa1dDekhxc1pETDJBNXdTZUZWR0tsUE1adkFQ?=
 =?utf-8?B?V3NjOUhjTTgrNHRYOG56NDRwQnBLZ1lUUTF6a3FYR2VranpRby91ZTZnMlQ4?=
 =?utf-8?B?RWE3MDZES3h2emFWU1o5ZGoxazJFRFUvR0YzQkhydVBIZ056QWxmV0VQWnAz?=
 =?utf-8?B?SzgxZ0hXdjc4RWtPWFlQVjV1dHJac1YwZ25HSit6UWFVYVc4NzUreXI3OXpa?=
 =?utf-8?B?QXdUSXpibmdUZzFVWkx1TXBrV2hUalFzYVJHNHZkdnNZQ3lmeDBDQ21kR1VK?=
 =?utf-8?B?WXZVMk5DSENtUHJWaERMZUpvYzlUY0VJRzQ4NVN3ZFJ4c3VSVGVsVnQrOExr?=
 =?utf-8?B?OVdwTTVWbjBrN2NXWjJoMUsydTdyN05hL1RMdVFadDVBaEc2WmQ5dHRLN1Br?=
 =?utf-8?B?azJJZXlTWVp3WHY2L0VDTkRsNVRONEZUT2l6TTg1UEFISGxzTFVSOG94UmtT?=
 =?utf-8?B?b3ZPYUMwZVdsYzVIejFRRmthZWtPS1M5dXA4MXNXam9lWXRjYm9VTjdPcmsw?=
 =?utf-8?B?K3NEV2VqUTVVYUNjMHRXY3M0QS9QdjFLM1BWQU5pbVA4UysrZUR1KzQ5TEEy?=
 =?utf-8?B?ZmNTaXJ1Lzg2Q08vRmFUYnMxWjhIcnBkZnRmWTFjTThrV05mRGpBMUZUY250?=
 =?utf-8?B?cUhNcXE4TitQTWJNNzJvOEtFNXU5OHlxUGVxclZNUHZycW9RQTdVdzU0NDRj?=
 =?utf-8?B?MlZ1bmxBNjFvVEd3aFhObGV4S1A3aGZmMlpJS1pHZHRBR2tTcjY5Y1RqZm9q?=
 =?utf-8?B?R28vRm9Vemh3LzZSMWVJbmhGQTd5VW9uM3VyaDhydGtTL1M1akN1cFQ3dDdR?=
 =?utf-8?B?WENienVqL1JlbEJ2NWdEZVdnYXlKU2NHNmU1VFV0TWRoc3VLK0lKbU1aOWRx?=
 =?utf-8?B?VW1peGhvMUx5Skl3M0NKZ2dEWEJVaEpVSHEvY0VmRlJ2Yy8rdTV4SEoramRI?=
 =?utf-8?B?dXRRV1NKckRWbDhjWlF3Z2h4cXlocHdMNUoxcWc3L0JJY2cwM01CZ25uUi94?=
 =?utf-8?B?Nm1yNlp0MWM4ZE11cG82N05nL3lLaEZnUy9uRC9tYjFqWVkyUzJNZUwzeEhl?=
 =?utf-8?B?U1lNWEhPcTN6cGpwOHdMaE5KZGFzV3RpbkNzb3h5bVZUSU1wdHQrRTQramcy?=
 =?utf-8?B?dWRINkQvSG5EZkhRL1dVWUplYjVjM1lZRlZubEM5R3k0bklhMnRqZWQzeWMv?=
 =?utf-8?B?bEtjRHdQOGx0dFBMckpPcEF0SDBaZnhCV2NqRGdraXlQU1lqcWZ2RG9wWHQ5?=
 =?utf-8?B?eStSQTdQaXRIME9SRG5kYjVRSWNpU3RIZHlTRWc4Q29lMGhWZlUzV2E2bjBM?=
 =?utf-8?B?SG5YaDRnSTRoNTRuK1dDQ2VLSG4xMWZDVXBWNkRsdThEMjVCVmlockdUbGNC?=
 =?utf-8?B?RmhGbjJTYk5WRUhvSFBhN1JBVng5dG9xZHkvVWVXSG94MXBueStHS2ZhV2pU?=
 =?utf-8?B?aW5NQWt6bCtuM1RZYUFwNFZ1c0xDdVlXZiswSS9sYk9rbFBFL3J3SFJJSjNV?=
 =?utf-8?B?YTVtblgxOVJteldhVURjTldQZ20rb0dkazVWT3dwTk9OVXB1eDU3RjF0NTJ3?=
 =?utf-8?B?OUZSV2F2V3BNT1VWM0l1Rk00bTlaZFppOW5zdE5LM3k0aVpYTWpYdWNpLzQ0?=
 =?utf-8?B?K0NObkpqZlBDdTJha2ljUHYxcnZqZDJnQnBNWTFrLzFrWUVSOUhQOEZzb2Ix?=
 =?utf-8?B?U21zem1SM2Z3NHd3K1ZXK24yZ0hIVEpKSklUdjgydUIvck8xTEcvc2JWQkxy?=
 =?utf-8?Q?uW90TIsGV1MDm62Owx/zWuZuC?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 756ccd75-b1d2-4374-6c53-08dbf4b1abcf
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 10:13:33.3293
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2fQlg0yCPT3j1YAyV8NYZOcwtVA4PVGxhP5qlaDfb8uZVKmg8VqPOzaERt4xo1nLoPfOEiMdXJS8L+nE1JvVNw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9287

On 04.12.2023 11:02, Juergen Gross wrote:
> On 04.12.23 10:15, Jan Beulich wrote:
>> On 01.12.2023 21:12, Andrew Cooper wrote:
>>> On 01/12/2023 7:59 pm, RenÃ© Winther HÃ¸jgaard wrote:
>>>> If I set smt=off and try to configure cpupools with credit(1) as if
>>>> all cores are available, I get the following crash.
>>>>
>>>> The crash happens when I try to use xl cpupool-add-cpu on the disabled
>>>> HT sibling cores.
>>>>
>>>> Hyper-threading is enabled in the firmware, and only disabled with
>>>> smt=off.
>>>
>>> CC'ing some maintainers.
>>>
>>> I expect this will also explode when a CPU is runtime offlined with
>>> `xen-hptool cpu-offline` and then added to a cpupool.
>>>
>>> Interestingly, the crash is mov (%rdx,%rax,1),%r13, and I think that's
>>> the percpu posion value in %rdx.
>>>
>>> I expect cpupools want to reject parked/offline CPUs.
>>
>> While the only explicit check there is
>>
>>          if ( cpu >= nr_cpu_ids )
>>              goto addcpu_out;
>>
>> I would have expected this
>>
>>          if ( !cpumask_subset(cpus, &cpupool_free_cpus) ||
>>               cpumask_intersects(cpus, &cpupool_locked_cpus) )
>>              goto addcpu_out;
>>
>> to deal with the situation, as parked/offline CPUs shouldn't be "free".
>> JÃ¼rgen?
> 
> The problem is the call of sched_get_opt_cpumask() to need the percpu area
> of the cpu in question.

That was my first thought, too, but then I saw cpupool_assign_cpu_locked() on
the call trace, which is called only afterwards. Plus sched_get_opt_cpumask()
needs the per-CPU area only when granularity was switched from its default of
SCHED_GRAN_cpu afaics.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:15:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:15:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646768.1009302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA5yt-0004Ud-SO; Mon, 04 Dec 2023 10:15:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646768.1009302; Mon, 04 Dec 2023 10:15: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 1rA5yt-0004Tc-PA; Mon, 04 Dec 2023 10:15:15 +0000
Received: by outflank-mailman (input) for mailman id 646768;
 Mon, 04 Dec 2023 10:15: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=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rA5ys-0004Ss-Mv
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:15:14 +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 015787af-928e-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 11:15:10 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 728211F8A6;
 Mon,  4 Dec 2023 10:15:09 +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 4D035139AA;
 Mon,  4 Dec 2023 10:15:09 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id SCPPEK2mbWV/UAAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 10:15: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: 015787af-928e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701684909; 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=HpEIUACtZSPLVODOo4JLcfN87Fff3k6rA6d+5gVjnt8=;
	b=e9GdNsGuCJjxroTwyURegXHt6F09ijlUUHslbZQVGOEQ89OuvIyzTdr6DsZ2Mwq8xQaO4d
	f3D7ca3WkjuhRNVhlYbP1h1bURlgEiHdtGyRm6V6vvHjJYXQUG/xjBTfTOkq7/+VWsHX57
	iISspmjNwToCs+ytjc34k4hSCbFcUP8=
Message-ID: <4e78257a-5411-4853-b70c-c7ea0de4fe79@suse.com>
Date: Mon, 4 Dec 2023 11:15:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Moving domain from credit2 to credit cpupool crash xen
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?B?UmVuw6kgV2ludGhlciBIw7hqZ2Fh?=
 =?UTF-8?Q?rd?= <renewin@proton.me>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <dnfWU_V9cXmbF4wNEEzLue_FUJefwMiic1J0gTnWryyEIiB3hV-h3zC_CjBeBJkcQS8ZMA5ZdkTbJBK2hf_1a1oY3GJvteqG8NqEduCjCrY=@proton.me>
 <d42fedb6-ac96-4404-8478-66783118dbd1@suse.com>
 <fc2f93f3-7a65-44b3-a25a-9383fe95b16b@suse.com>
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: <fc2f93f3-7a65-44b3-a25a-9383fe95b16b@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Wpw4ZPruGFks68kdaDvRcD8s"
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -2.99
X-Spamd-Result: default: False [-2.99 / 50.00];
	 ARC_NA(0.00)[];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[3];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Wpw4ZPruGFks68kdaDvRcD8s
Content-Type: multipart/mixed; boundary="------------k0iq6QkQteaoV3Gf4zmiFBPC";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?B?UmVuw6kgV2ludGhlciBIw7hqZ2Fh?=
 =?UTF-8?Q?rd?= <renewin@proton.me>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <4e78257a-5411-4853-b70c-c7ea0de4fe79@suse.com>
Subject: Re: Moving domain from credit2 to credit cpupool crash xen
References: <dnfWU_V9cXmbF4wNEEzLue_FUJefwMiic1J0gTnWryyEIiB3hV-h3zC_CjBeBJkcQS8ZMA5ZdkTbJBK2hf_1a1oY3GJvteqG8NqEduCjCrY=@proton.me>
 <d42fedb6-ac96-4404-8478-66783118dbd1@suse.com>
 <fc2f93f3-7a65-44b3-a25a-9383fe95b16b@suse.com>
In-Reply-To: <fc2f93f3-7a65-44b3-a25a-9383fe95b16b@suse.com>

--------------k0iq6QkQteaoV3Gf4zmiFBPC
Content-Type: multipart/mixed; boundary="------------oxzyCRA0zGeaGRSaLLPB5bG8"

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

T24gMDQuMTIuMjMgMTA6MzEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNC4xMi4yMDIz
IDEwOjIzLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+IE9uIDAxLjEyLjIwMjMgMjE6MTMsIFJl
bsOpIFdpbnRoZXIgSMO4amdhYXJkIHdyb3RlOg0KPj4+IFdoZW4gSSBtb3ZlIGEgZG9tYWlu
IGZyb20gcG9vbDAgd2l0aCBjcmVkaXQyIHRvIGFueSBwb29sIHdpdGggY3JlZGl0KDEpIEkg
Z2V0IHRoZSBmb2xsb3dpbmcgY3Jhc2guDQo+Pj4NCj4+Pg0KPj4+IFNvZnR3YXJlOiBYZW4t
NC4xNy4zIC8gUXViZXMgT1MgNC4yLjAtUkM1DQo+Pj4gRmlybXdhcmU6IERhc2hhcm8gMC45
LjAgLSBaNzkwUA0KPj4+IEhhcmR3YXJlOiAxMzkwMEsNCj4+PiAoWEVOKSBYZW4gQlVHIGF0
IGNvbW1vbi9zY2hlZC9jcmVkaXQuYzoxMDUxKFhFTikgLS0tLVsgWGVuLTQuMTcuMy1wcmUg
wqB4ODZfNjQgwqBkZWJ1Zz15IMKgTm90IHRhaW50ZWQgXS0tLS0NCj4+PiAoWEVOKSBDUFU6
IMKgIMKgMg0KPj4+IChYRU4pIFJJUDogwqAgwqBlMDA4Ols8ZmZmZjgyZDA0MDIzN2NmZD5d
IGNyZWRpdC5jI2NzY2hlZF9mcmVlX3VkYXRhKzB4MTIvMHgxNA0KPj4+IChYRU4pIFJGTEFH
UzogMDAwMDAwMDAwMDAxMDIwMiDCoCBDT05URVhUOiBoeXBlcnZpc29yIChkMHYyKQ0KPj4+
IChYRU4pIHJheDogZmZmZjgyZDA0MDIzN2NlYiDCoCByYng6IDAwMDAwMDAwMDAwMDAwMTQg
wqAgcmN4OiAwMDAwMDAwMDAwMDAwMDEzDQo+Pj4gKFhFTikgcmR4OiBmZmZmODMxMDg3ZDdm
ZmZmIMKgIHJzaTogZmZmZjgzMGFkODBlOGRhMCDCoCByZGk6IGZmZmY4MzBhZDgwZThkYTAN
Cj4+PiAoWEVOKSByYnA6IDAwMDAwMDAwMDAwMDAwMDAgwqAgcnNwOiBmZmZmODMxMDg3ZDdm
YzkwIMKgIHI4OiDCoGZmZmY4MzBlMmQ2YTQ5YjANCj4+PiAoWEVOKSByOTogwqBmZmZmODMx
MDg3ZDdmYmUwIMKgIHIxMDogZmZmZjgzMTA3YzQ4MTA2OCDCoCByMTE6IDAwMDAwMDJjZmQx
YzI3NGENCj4+PiAoWEVOKSByMTI6IGZmZmY4MzBhZDgwZThjODAgwqAgcjEzOiBmZmZmODMx
MDdjNDViZWUwIMKgIHIxNDogMDAwMDAwMDAwMDAwMDAwMA0KPj4+IChYRU4pIHIxNTogZmZm
ZjgyZDA0MDVhOTI4OCDCoCBjcjA6IDAwMDAwMDAwODAwNTAwMzMgwqAgY3I0OiAwMDAwMDAw
MDAwYjUyNmUwDQo+Pj4gKFhFTikgY3IzOiAwMDAwMDAwOTI4NGQ4MDAwIMKgIGNyMjogMDAw
MDdmYjUzNTE4MTI0MA0KPj4+IChYRU4pIGZzYjogMDAwMDdmYjUzNGM1ZjM4MCDCoCBnc2I6
IGZmZmY4ODgxYjlkMDAwMDAgwqAgZ3NzOiAwMDAwMDAwMDAwMDAwMDAwDQo+Pj4gKFhFTikg
ZHM6IDAwMDAgwqAgZXM6IDAwMDAgwqAgZnM6IDAwMDAgwqAgZ3M6IDAwMDAgwqAgc3M6IGUw
MTAgwqAgY3M6IGUwMDgNCj4+PiAoWEVOKSBYZW4gY29kZSBhcm91bmQgPGZmZmY4MmQwNDAy
MzdjZmQ+IChjcmVkaXQuYyNjc2NoZWRfZnJlZV91ZGF0YSsweDEyLzB4MTQpOg0KPj4+IChY
RU4pIMKgNzUgMDYgZTggMTkgNzQgZmYgZmYgYzMgPDBmPiAwYiBmMyAwZiAxZSBmYSA1MyA0
OCA4YiA1ZiAxOCA0OCA4NSBkYiA3NCAyYg0KPj4+IChYRU4pIFhlbiBzdGFjayB0cmFjZSBm
cm9tIHJzcD1mZmZmODMxMDg3ZDdmYzkwOg0KPj4+IChYRU4pIMKgIMKgZmZmZjgyZDA0MDI0
NzUwMyAwMDAwMDAxMzAwMDAyMDMwIGZmZmY4MzBhZDgwZThiZjAgZmZmZjgyZDA0MDVhOTI4
OA0KPj4+IChYRU4pIMKgIMKgZmZmZjgzMTA3ZjU5YWE4MCBmZmZmODMwYWQ4MGU4YzgwIGZm
ZmY4MzEwN2M0NWJlZTAgZmZmZjgzMGFkODBlOGJmMA0KPj4+IChYRU4pIMKgIMKgZmZmZjgz
MTAwMGFmMTAxMCBmZmZmODMxMDdjNDViZWUwIGZmZmY4MzBhZDgwZWQwMDAgZmZmZjgzMTA3
YzQ1YmVlMA0KPj4+IChYRU4pIMKgIMKgMDAwMDAwMDAwMDAwMDAwMCBmZmZmODJkMDQwNDVk
NWQ4IGZmZmY4MmQwNDA1YWU2ODAgZmZmZjgyZDA0MDIzNTMwMw0KPj4+IChYRU4pIMKgIMKg
ZmZmZjgzMTA4N2Q3ZmUyMCAwMDAwMDAwMGZmZmZmZmZlIGZmZmY4MmQwNDAyMzZlYzMgZmZm
ZjgzMGFkODBlZDAwMA0KPj4+IChYRU4pIMKgIMKgMDAwMDAwMDAwMDAwMDAwMCAwMDAwN2Zi
NTM1MjMwMDEwIGZmZmY4MzEwODdkN2ZmZmYgMDAwMDAwMDAwMDAwMDAwMA0KPj4+IChYRU4p
IMKgIMKgZmZmZjgyZDA0MDQ1ZDVkOCBmZmZmODJkMDQwMjM0NzYzIDAwMDAwMDAwYzAwMDAx
MDIgMDAwMDAwMDAwMDAwMDAwMA0KPj4+IChYRU4pIMKgIMKgMDAwMDAwMDAwMDAwMDAwMCAw
MDAwMDAwMGMwMDAwMTAyIDAwMDAwMDBkMDAwMDAwMDAgZmZmZmZmZmY4MTAxZWRlNg0KPj4+
IChYRU4pIMKgIMKgMDAwMDAwMDAwMDAwZTAzMyAwMDAwMDAwMDAwMDExMDgyIGZmZmZjOTAw
NDZlYmJhOTAgMDAwMDAwMDAwMDAwZTAyYg0KPj4+IChYRU4pIMKgIMKgNWEzM2ExYTY1MzUy
YmVlZiBmZWFkZjllZmZkZjFiZWVmIDEyMmFlMmZhNzM2YmJlZWYgNDYwMjNlOWFmMTc0YmVl
Zg0KPj4+IChYRU4pIMKgIMKgZmZmZjgyZDA0MDIyN2NjNiBmZmZmODMxMDg3ZDdmZTQ4IDAw
MDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAxMTA4Mg0KPj4+IChYRU4pIMKgIMKgMDAwMDAw
MDAwMDAwMDAwMCBmZmZmODMxMDg3ZDdmZmZmIDAwMDAwMDAwMDAwMDAwMDAgZmZmZmZmZmY4
MTAxZWRlNA0KPj4+IChYRU4pIMKgIMKgZmZmZjgyZDA0MDM0OTVkMCAwMDAwMDAxNTAwMDAw
MDEyIDAwMDAwMDAxMDAwMDAwMDYgMDAwMDAwMGQwMDAwMDAwMA0KPj4+IChYRU4pIMKgIMKg
MDAwMDdmZmRmOTNmYjNmYyAwMDAwMDAwMDAwNDMxMDQyIDAwMDAwMDAwMDA0M2Q5OTAgMDAw
MDAwMDAwMDQzZDliMA0KPj4+IChYRU4pIMKgIMKgMDAwMDdmYjUzNGViODQzNCAwMDAwN2Zm
ZGY5M2ZiNDAwIDAwMDAwMDAwMDAwMDAwMTMgMDAwMDAwMDAwMjM2MTgzOA0KPj4+IChYRU4p
IMKgIMKgMDQ0NTdmZTgxZjdjZjMwMCAwMDAwMDAwMDAyMzYwODcwIGZmZmZmZmZmZmZmZmZm
ODAgMDAwMDAwMDAwMDAwMDAwMA0KPj4+IChYRU4pIMKgIMKgMDAwMDdmZmRmOTNmYzY1MiAw
MDAwMDAwMDAwNDNkOTgwIGZmZmY4MzEwODdkN2ZlZjggMDAwMDAwMDAwMDAwMDAyMw0KPj4+
IChYRU4pIMKgIMKgZmZmZjgzMTA3ZjU0NDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAw
MDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KPj4+IChYRU4pIMKgIMKgZmZmZjgyZDA0MDJk
ZDA3ZiBmZmZmODMxMDdmNTQ0MDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAw
MA0KPj4+IChYRU4pIMKgIMKgZmZmZjgyZDA0MDIwMTJiNyAwMDAwMDAwMDAwMDAwMDAwIGZm
ZmY4ODgxMWFiYmMxMDAgMDAwMDdmZmRmOTNmYjJjMA0KPj4+IChYRU4pIFhlbiBjYWxsIHRy
YWNlOg0KPj4+IChYRU4pIMKgIMKgWzxmZmZmODJkMDQwMjM3Y2ZkPl0gUiBjcmVkaXQuYyNj
c2NoZWRfZnJlZV91ZGF0YSsweDEyLzB4MTQNCj4+PiAoWEVOKSDCoCDCoFs8ZmZmZjgyZDA0
MDI0NzUwMz5dIFMgc2NoZWRfbW92ZV9kb21haW4rMHg1YjAvMHg1Y2MNCj4+DQo+PiBIbW0s
IGxvb2tzIGxpa2Ugc2NoZWRfbW92ZV9kb21haW4oKSdzIGNhbGxpbmcgb2Ygc2NoZWRfZnJl
ZV91ZGF0YSgpIHVzZXMgdGhlDQo+PiBuZXcgcG9vbCdzIHNjaGVkdWxlciwgbm90IHRoYXQg
b2YgdGhlIG9yaWdpbmFsIHBvb2wuIEknbSBwdXp6bGVkIHRob3VnaCB0aGF0DQo+PiB0aGVy
ZSdzIG5vIHNpZ24gYXQgYWxsIGluIHRoZSBmdW5jdGlvbiBvZiBpdCBjYXJpbmcgYWJvdXQg
d2hhdCB0aGUgb3JpZ2luYWwNCj4+IHBvb2wgd2FzLiBJT1cgSSdtIG5vdCBzdXJlIHRoYXQg
dGhlIHNpbXBsZSBhbmQgb2J2aW91cyBjaGFuZ2UgdG8gbGF0Y2ggdGhlDQo+PiBvcmlnaW5h
bCBwb29sIGludG8gYSBsb2NhbCBhbmQgdGhlbiB1c2UgaXQgb24gdGhlICJvdXRfZnJlZSIg
cGF0aCBpcyBnb2luZw0KPj4gdG8gYmUgZW5vdWdoLiBKw7xyZ2VuIChzb3JyeSwgYWdhaW4g
eW91KT8NCj4gDQo+IEhtbSwgc2hvdWxkIGhhdmUgYWRkZWQgImluIHRoZSBlcnJvciBjYXNl
Ii4gU2VlaW5nIHRoZXJlIGlzIG9sZF9vcHMsIHBlcmhhcHMNCj4gc2ltcGx5DQo+IA0KPiAt
LS0gYS94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYw0KPiArKysgYi94ZW4vY29tbW9uL3NjaGVk
L2NvcmUuYw0KPiBAQCAtODEwLDcgKzgxMCw3IEBADQo+ICAgICAgIGZvciAoIHVuaXQgPSBv
bGRfdW5pdHM7IHVuaXQ7ICkNCj4gICAgICAgew0KPiAgICAgICAgICAgaWYgKCB1bml0LT5w
cml2ICkNCj4gLSAgICAgICAgICAgIHNjaGVkX2ZyZWVfdWRhdGEoYy0+c2NoZWQsIHVuaXQt
PnByaXYpOw0KPiArICAgICAgICAgICAgc2NoZWRfZnJlZV91ZGF0YShyZXQgPyBjLT5zY2hl
ZCA6IG9sZF9vcHMsIHVuaXQtPnByaXYpOw0KPiAgICAgICAgICAgb2xkX3VuaXQgPSB1bml0
Ow0KPiAgICAgICAgICAgdW5pdCA9IHVuaXQtPm5leHRfaW5fbGlzdDsNCj4gICAgICAgICAg
IHhmcmVlKG9sZF91bml0KTsNCj4gDQoNClllcywgdGhpcyBsb29rcyBmaW5lLg0KDQpJbiBj
YXNlIHlvdSB3YW50IHRvIHNlbmQgYSBwcm9wZXIgcGF0Y2gsIHlvdSBjYW4gYWRkIG15DQoN
ClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVl
cmdlbg0K
--------------oxzyCRA0zGeaGRSaLLPB5bG8
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-----

--------------oxzyCRA0zGeaGRSaLLPB5bG8--

--------------k0iq6QkQteaoV3Gf4zmiFBPC--

--------------Wpw4ZPruGFks68kdaDvRcD8s
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/Ey8FAmVtpqwFAwAAAAAACgkQsN6d1ii/Ey+W
Hwf9HaAwVvcpnKBjrfywTZLkKLl1LwWBXkt1p38a/RI+syKKFmOrxaD1cVWeqJVJcKh2l5YwBSQa
6Iu1krklN4KRh4vgtpQJzF4oxDACJpqBbnSTuWaHv+OfF+CnJ46bHW+aRGOxN4vW16VzeReCF6O6
KZ3PLFF7LqCQPO/RIx0K4FtSvGhIQXZlDWL0DFvGYzSylibiJsentVoDHsJ3DK0JABuehmfCYYw+
j+NAyTGZwFEkX/WwglMJFtYjlbd9wQURNeNytCJcY7hwMGBgnm/FYY23K/BoEXa/2b0TcD6Qqcch
E5SNubdk0zqmczTzZy1VnTMKB8Tb9LSOGISVPqLeuw==
=wmog
-----END PGP SIGNATURE-----

--------------Wpw4ZPruGFks68kdaDvRcD8s--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:28:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:28:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646783.1009311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6BO-0001dz-3f; Mon, 04 Dec 2023 10:28:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646783.1009311; Mon, 04 Dec 2023 10:28:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6BO-0001ds-19; Mon, 04 Dec 2023 10:28:10 +0000
Received: by outflank-mailman (input) for mailman id 646783;
 Mon, 04 Dec 2023 10: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA6BM-0001cO-Gt
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:28:08 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d08b3c9d-928f-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 11:28:07 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40bda47b7c1so22938925e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 02:28:07 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 r21-20020a05600c35d500b0040b3e79bad3sm14462375wmq.40.2023.12.04.02.28.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 02:28:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d08b3c9d-928f-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701685687; x=1702290487; 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=9Xm7HNFkq0+Qbd6Uu1gKkNyeDxPZw3eWj43IaSy+UC4=;
        b=AKzBUJXDoOTXQVs2I1tTZtBDFLd3gr+1iq/yW0Bty7Ock2PXTShHOXbPjmA1ZOVaMl
         hfOwCHUV3mmo/NP/9Th7GjEklSLIM6lSvPznM8PMrzxfs55BEfTm7k/pbiOxD3Hb6fjv
         1S4I93IkiSYru/L9+fplKabnOSZhju2i6MINE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701685687; x=1702290487;
        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=9Xm7HNFkq0+Qbd6Uu1gKkNyeDxPZw3eWj43IaSy+UC4=;
        b=tqBalB9FoRJnDNBlHDAe7ZnSN2h8qfm0fi5q9N29jfMoZaCU2GCZJxAPMfpXcZsaLL
         I0A/TdoKuL+iBjcap7cRBTxZ7z4dkA4ZiA6gOVcp49MsWBW95uoxzML2CWCjdo15cfap
         CAy0UJPzS1I4oIIjmBCYyA3U6arWZ3O32RvHJ4f4ZXjE31vBS/JyGZUzr+oRjSM/sR82
         6moJxL6QjzahFOnjYQQCd8FiIX9tdugRR81mTeAeS18tip1p0FAsuMNign1KgkLwiuJ7
         Z8xisSS342ICMbKzghcswXazZnxgEdPbSd7xxL0LNQlBUpcKvhQtksmUarspmbfootse
         g6hA==
X-Gm-Message-State: AOJu0Yz2NzUT/fDt/hLmT8dpTtiUk4Ps1eWOuDRCPa3LhpL//QCJp0Jh
	vu/3NnQRz9tU1GYwsNMXZqH6Dw==
X-Google-Smtp-Source: AGHT+IHQrE6G9YfZt6YRb8WN3b3NCDEKLCWBQFePbbHf+vIbFNsdFKpqoANLbKTBhVnrWpsfjOX0Qw==
X-Received: by 2002:a05:600c:3d09:b0:40c:6bf:bdff with SMTP id bh9-20020a05600c3d0900b0040c06bfbdffmr879047wmb.355.1701685686722;
        Mon, 04 Dec 2023 02:28:06 -0800 (PST)
Date: Mon, 4 Dec 2023 11:28:05 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jiqian Chen <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
	linux-acpi@vger.kernel.org,
	Stefano Stabellini <stefano.stabellini@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Christian Koenig <Christian.Koenig@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Message-ID: <ZW2ptexPQXrWBiOS@macbook>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>

On Fri, Dec 01, 2023 at 07:37:55PM -0800, Stefano Stabellini wrote:
> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 30, 2023 at 07:15:17PM -0800, Stefano Stabellini wrote:
> > > On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> > > > On Wed, Nov 29, 2023 at 07:53:59PM -0800, Stefano Stabellini wrote:
> > > > > On Fri, 24 Nov 2023, Jiqian Chen wrote:
> > > > > > This patch is to solve two problems we encountered when we try to
> > > > > > passthrough a device to hvm domU base on Xen PVH dom0.
> > > > > > 
> > > > > > First, hvm guest will alloc a pirq and irq for a passthrough device
> > > > > > by using gsi, before that, the gsi must first has a mapping in dom0,
> > > > > > see Xen code pci_add_dm_done->xc_domain_irq_permission, it will call
> > > > > > into Xen and check whether dom0 has the mapping. See
> > > > > > XEN_DOMCTL_irq_permission->pirq_access_permitted, "current" is PVH
> > > > > > dom0 and it return irq is 0, and then return -EPERM.
> > > > > > This is because the passthrough device doesn't do PHYSDEVOP_map_pirq
> > > > > > when thay are enabled.
> > > > > > 
> > > > > > Second, in PVH dom0, the gsi of a passthrough device doesn't get
> > > > > > registered, but gsi must be configured for it to be able to be
> > > > > > mapped into a domU.
> > > > > > 
> > > > > > After searching codes, we can 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 problems
> > > > > > can be conclude to that the gsi of a passthrough device doesn't be
> > > > > > unmasked.
> > > > > > 
> > > > > > To solve the unmaske problem, this patch call the unmask_irq when we
> > > > > > assign a device to be passthrough. So that the gsi can get registered
> > > > > > and mapped in PVH dom0.
> > > > > 
> > > > > 
> > > > > Roger, this seems to be more of a Xen issue than a Linux issue. Why do
> > > > > we need the unmask check in Xen? Couldn't we just do:
> > > > > 
> > > > > 
> > > > > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> > > > > index 4e40d3609a..df262a4a18 100644
> > > > > --- a/xen/arch/x86/hvm/vioapic.c
> > > > > +++ b/xen/arch/x86/hvm/vioapic.c
> > > > > @@ -287,7 +287,7 @@ static void vioapic_write_redirent(
> > > > >              hvm_dpci_eoi(d, gsi);
> > > > >      }
> > > > >  
> > > > > -    if ( is_hardware_domain(d) && unmasked )
> > > > > +    if ( is_hardware_domain(d) )
> > > > >      {
> > > > >          /*
> > > > >           * NB: don't call vioapic_hwdom_map_gsi while holding hvm.irq_lock
> > > > 
> > > > There are some issues with this approach.
> > > > 
> > > > mp_register_gsi() will only setup the trigger and polarity of the
> > > > IO-APIC pin once, so we do so once the guest unmask the pin in order
> > > > to assert that the configuration is the intended one.  A guest is
> > > > allowed to write all kind of nonsense stuff to the IO-APIC RTE, but
> > > > that doesn't take effect unless the pin is unmasked.
> > > > 
> > > > Overall the question would be whether we have any guarantees that
> > > > the hardware domain has properly configured the pin, even if it's not
> > > > using it itself (as it hasn't been unmasked).
> > > > 
> > > > IIRC PCI legacy interrupts are level triggered and low polarity, so we
> > > > could configure any pins that are not setup at bind time?
> > > 
> > > That could work.
> > > 
> > > Another idea is to move only the call to allocate_and_map_gsi_pirq at
> > > bind time? That might be enough to pass a pirq_access_permitted check.
> > 
> > Maybe, albeit that would change the behavior of XEN_DOMCTL_bind_pt_irq
> > just for PT_IRQ_TYPE_PCI and only when called from a PVH dom0 (as the
> > parameter would be a GSI instead of a previously mapped IRQ).  Such
> > difference just for PT_IRQ_TYPE_PCI is slightly weird - if we go that
> > route I would recommend that we instead introduce a new dmop that has
> > this syntax regardless of the domain type it's called from.
> 
> Looking at the code it is certainly a bit confusing. My point was that
> we don't need to wait until polarity and trigger are set appropriately
> to allow Dom0 to pass successfully a pirq_access_permitted() check. Xen
> should be able to figure out that Dom0 is permitted pirq access.

The logic is certainly not straightforward, and it could benefit from
some comments.

The irq permissions are a bit special, in that they get setup when the
IRQ is mapped.

The problem however is not so much with IRQ permissions, that we can
indeed sort out internally in Xen.  Such check in dom0 has the side
effect of preventing the IRQ from being assigned to a domU without the
hardware source being properly configured AFAICT.

> 
> So the idea was to move the call to allocate_and_map_gsi_pirq() earlier
> somewhere because allocate_and_map_gsi_pirq doesn't require trigger or
> polarity to be configured to work. But the suggestion of doing it a
> "bind time" (meaning: XEN_DOMCTL_bind_pt_irq) was a bad idea.
> 
> But maybe we can find another location, maybe within
> xen/arch/x86/hvm/vioapic.c, to call allocate_and_map_gsi_pirq() before
> trigger and polarity are set and before the interrupt is unmasked.
> 
> Then we change the implementation of vioapic_hwdom_map_gsi to skip the
> call to allocate_and_map_gsi_pirq, because by the time
> vioapic_hwdom_map_gsi we assume that allocate_and_map_gsi_pirq had
> already been done.

But then we would end up in a situation where the
pirq_access_permitted() check will pass, but the IO-APIC pin won't be
configured, which I think it's not what we want.

One option would be to allow mp_register_gsi() to be called multiple
times, and update the IO-APIC pin configuration as long as the pin is
not unmasked.  That would propagate each dom0 RTE update to the
underlying IO-APIC.  However such approach relies on dom0 configuring
all possible IO-APIC pins, even if no device on dom0 is using them, I
think it's not a very reliable option.

Another option would be to modify the toolstack to setup the GSI
itself using the PHYSDEVOP_setup_gsi hypercall.  As said in a previous
email, since we only care about PCI device passthrough the legacy INTx
should always be level triggered and low polarity.

> I am not familiar with vioapic.c but to give you an idea of what I was
> thinking:
> 
> 
> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> index 4e40d3609a..16d56fe851 100644
> --- a/xen/arch/x86/hvm/vioapic.c
> +++ b/xen/arch/x86/hvm/vioapic.c
> @@ -189,14 +189,6 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,
>          return ret;
>      }
>  
> -    ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
> -    if ( ret )
> -    {
> -        gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
> -                 gsi, ret);
> -        return ret;
> -    }
> -
>      pcidevs_lock();
>      ret = pt_irq_create_bind(currd, &pt_irq_bind);
>      if ( ret )
> @@ -287,6 +279,17 @@ static void vioapic_write_redirent(
>              hvm_dpci_eoi(d, gsi);
>      }
>  
> +    if ( is_hardware_domain(d) ) 
> +    {
> +        int pirq = gsi, ret;
> +        ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
> +        if ( ret )
> +        {
> +            gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
> +                    gsi, ret);
> +            return ret;
> +        }
> +    }
>      if ( is_hardware_domain(d) && unmasked )
>      {
>          /*

As said above, such approach relies on dom0 writing to the IO-APIC RTE
of likely each IO-APIC pin, which is IMO not quite reliable.  In there
are two different issues here that need to be fixed for PVH dom0:

 - Fix the XEN_DOMCTL_irq_permission pirq_access_permitted() call to
   succeed for a PVH dom0, even if dom0 is not using the GSI itself.

 - Configure IO-APIC pins for PCI interrupts even if dom0 is not using
   the IO-APIC pin itself.

First one needs to be fixed internally in Xen, second one will require
the toolstack to issue an extra hypercall in order to ensure the
IO-APIC pin is properly configured.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:31:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:31:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646789.1009322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6F1-0004IT-Io; Mon, 04 Dec 2023 10:31:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646789.1009322; Mon, 04 Dec 2023 10: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 1rA6F1-0004IM-G3; Mon, 04 Dec 2023 10:31:55 +0000
Received: by outflank-mailman (input) for mailman id 646789;
 Mon, 04 Dec 2023 10:31: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 1rA6F0-0004IG-QE
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:31: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 1rA6Ew-0007NF-EX; Mon, 04 Dec 2023 10:31:50 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rA6Ew-00048u-5a; Mon, 04 Dec 2023 10:31:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=4RdpTsqHGFFuyHBjzvnx2fGQAhTh7bUYJAnUCw+aLD4=; b=19Z6c36mYRZefsECBPDv5pyr33
	nSss1tXG1HIp5UWSajIf51q6SGEBNfsUFCJGYX9MGsbSlG9LJcSSvBbCVb9f4z44NyGZAoVWnOdx+
	EK4R/XJ9tEU42wfhdDfSCms4QuLlh2eRsqmPTXTMSXvVsBO6diRbKbnz6rGzg4vJaQ40=;
Message-ID: <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
Date: Mon, 4 Dec 2023 10:31:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, sstabellini@kernel.org,
 stefano.stabellini@amd.com, bertrand.marquis@arm.com, michal.orzel@amd.com,
 Volodymyr_Babchuk@epam.com
Cc: xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 01/12/2023 18:50, Ayan Kumar Halder wrote:
> Currently if user enables HVC_DCC config option in Linux, it invokes
> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
> an undefined exception to the guest. And Linux crashes.

I am missing some data points here to be able to say whether I would be 
ok with emulating the registers. So some questions:
   * As you wrote below, HVC_DCC will return -ENODEV after this 
emulation. So may I ask what's the use case to enable it? (e.g. is there 
a distro turning this on?)
  * Linux is writing to the registers unconditionally, but is the spec 
mandating the implementation of the registers? (I couldn't find either way)
  * When was this check introduced in Linux? Did it ever changed?

> 
> We wish to avoid this crash by adding a "partial" emulation. DBGDTR_EL0
> is emulated as TXfull | RXfull.

Skimming through the Arm Arm, I see that TXfull and Rxfull indicates 
that both buffers are full but it doesn't explicitly say this means the 
feature is not available.

I understand this is what Linux checks, but if we want to partially 
emulate the registers in Xen, then I'd like us to make sure this is 
backed by the Arm Arm rather than based on Linux implementation (which 
can change at any point).

> Refer ARM DDI 0487I.a ID081822, D17.3.8, DBGDTRTX_EL0
> "If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN"
> Also D17.3.7 DBGDTRRX_EL0,
> " If RXfull is set to 1, return the last value written to DTRRX."
> 
> Thus, any OS is expected to read DBGDTR_EL0 and check for TXfull
> before using DBGDTRTX_EL0. Linux does it via hvc_dcc_init() --->
> hvc_dcc_check() , it returns -ENODEV. In this way, we are preventing
> the guest to be aborted.

See above, what guarantees us that Linux will not change this behavior 
in the future?

> 
> We also emulate DBGDTRTX_EL0 as RAZ/WI.
> 
> We have added emulation for AArch32 variant of these registers as well.
> Also, we have added handle_read_val_wi() to emulate DBGDSCREXT register
> to return a specific value (ie TXfull | RXfull) and ignore any writes
> to this register.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

We usually expect the first Signed-off-by to also be the author. So 
should Michal be the author of this patch?

> ---
>   xen/arch/arm/arm64/vsysreg.c         | 21 ++++++++++++++----
>   xen/arch/arm/include/asm/arm64/hsr.h |  3 +++
>   xen/arch/arm/include/asm/cpregs.h    |  2 ++
>   xen/arch/arm/include/asm/traps.h     |  4 ++++
>   xen/arch/arm/traps.c                 | 18 +++++++++++++++
>   xen/arch/arm/vcpreg.c                | 33 +++++++++++++++++++++-------
>   6 files changed, 69 insertions(+), 12 deletions(-)
> 
> diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
> index b5d54c569b..5082dfb02e 100644
> --- a/xen/arch/arm/arm64/vsysreg.c
> +++ b/xen/arch/arm/arm64/vsysreg.c
> @@ -159,9 +159,6 @@ void do_sysreg(struct cpu_user_regs *regs,
>        *
>        * Unhandled:
>        *    MDCCINT_EL1
> -     *    DBGDTR_EL0
> -     *    DBGDTRRX_EL0
> -     *    DBGDTRTX_EL0
>        *    OSDTRRX_EL1
>        *    OSDTRTX_EL1
>        *    OSECCR_EL1
> @@ -172,11 +169,27 @@ void do_sysreg(struct cpu_user_regs *regs,
>       case HSR_SYSREG_MDSCR_EL1:
>           return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>       case HSR_SYSREG_MDCCSR_EL0:
> +    {
> +        /*
> +         * Bit 29: TX full, bit 30: RX full
> +         * Given that we emulate DCC registers as RAZ/WI, doing the same for
> +         * MDCCSR_EL0 would cause a guest to continue using the DCC despite no
> +         * real effect. Setting the TX/RX status bits should result in a probe
> +         * fail (based on Linux behavior).
> +         */
> +        register_t guest_reg_value = (1U << 29) | (1U << 30);
> +
>           /*
>            * Accessible at EL0 only if MDSCR_EL1.TDCC is set to 0. We emulate that
>            * register as RAZ/WI above. So RO at both EL0 and EL1.
>            */
> -        return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
> +        return handle_ro_read_val(regs, regidx, hsr.sysreg.read, hsr, 0,
> +                                  guest_reg_value);
> +    }
> +    case HSR_SYSREG_DBGDTR_EL0:
> +    /* DBGDTR[TR]X_EL0 share the same encoding */
> +    case HSR_SYSREG_DBGDTRTX_EL0:
> +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 0);
>       HSR_SYSREG_DBG_CASES(DBGBVR):
>       HSR_SYSREG_DBG_CASES(DBGBCR):
>       HSR_SYSREG_DBG_CASES(DBGWVR):
> diff --git a/xen/arch/arm/include/asm/arm64/hsr.h b/xen/arch/arm/include/asm/arm64/hsr.h
> index e691d41c17..1495ccddea 100644
> --- a/xen/arch/arm/include/asm/arm64/hsr.h
> +++ b/xen/arch/arm/include/asm/arm64/hsr.h
> @@ -47,6 +47,9 @@
>   #define HSR_SYSREG_OSDLR_EL1      HSR_SYSREG(2,0,c1,c3,4)
>   #define HSR_SYSREG_DBGPRCR_EL1    HSR_SYSREG(2,0,c1,c4,4)
>   #define HSR_SYSREG_MDCCSR_EL0     HSR_SYSREG(2,3,c0,c1,0)
> +#define HSR_SYSREG_DBGDTR_EL0     HSR_SYSREG(2,3,c0,c4,0)
> +#define HSR_SYSREG_DBGDTRTX_EL0   HSR_SYSREG(2,3,c0,c5,0)
> +#define HSR_SYSREG_DBGDTRRX_EL0   HSR_SYSREG(2,3,c0,c5,0)
>   
>   #define HSR_SYSREG_DBGBVRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,4)
>   #define HSR_SYSREG_DBGBCRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,5)
> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
> index 6b083de204..aec9e8f329 100644
> --- a/xen/arch/arm/include/asm/cpregs.h
> +++ b/xen/arch/arm/include/asm/cpregs.h
> @@ -75,6 +75,8 @@
>   #define DBGDIDR         p14,0,c0,c0,0   /* Debug ID Register */
>   #define DBGDSCRINT      p14,0,c0,c1,0   /* Debug Status and Control Internal */
>   #define DBGDSCREXT      p14,0,c0,c2,2   /* Debug Status and Control External */
> +#define DBGDTRRXINT     p14,0,c0,c5,0   /* Debug Data Transfer Register, Receive */
> +#define DBGDTRTXINT     p14,0,c0,c5,0   /* Debug Data Transfer Register, Transmit */
>   #define DBGVCR          p14,0,c0,c7,0   /* Vector Catch */
>   #define DBGBVR0         p14,0,c0,c0,4   /* Breakpoint Value 0 */
>   #define DBGBCR0         p14,0,c0,c0,5   /* Breakpoint Control 0 */
> diff --git a/xen/arch/arm/include/asm/traps.h b/xen/arch/arm/include/asm/traps.h
> index 883dae368e..a2692722d5 100644
> --- a/xen/arch/arm/include/asm/traps.h
> +++ b/xen/arch/arm/include/asm/traps.h
> @@ -56,6 +56,10 @@ void handle_ro_raz(struct cpu_user_regs *regs, int regidx, bool read,
>   void handle_ro_read_val(struct cpu_user_regs *regs, int regidx, bool read,
>                           const union hsr hsr, int min_el, register_t val);
>   
> +/* Read only as value provided with 'val' argument, write ignore */
> +void handle_read_val_wi(struct cpu_user_regs *regs, int regidx,
> +                        const union hsr hsr, int min_el, register_t val);
> +
>   /* Co-processor registers emulation (see arch/arm/vcpreg.c). */
>   void do_cp15_32(struct cpu_user_regs *regs, const union hsr hsr);
>   void do_cp15_64(struct cpu_user_regs *regs, const union hsr hsr);
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 3784e8276e..f5ab555b19 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -1676,6 +1676,24 @@ void handle_ro_read_val(struct cpu_user_regs *regs,
>       advance_pc(regs, hsr);
>   }
>   
> +/* Read as value provided with 'val' argument of this function, write ignore */
> +void handle_read_val_wi(struct cpu_user_regs *regs,
> +                        int regidx,
> +                        const union hsr hsr,
> +                        int min_el,
> +                        register_t val)
> +{
> +    ASSERT((min_el == 0) || (min_el == 1));
> +
> +    if ( min_el > 0 && regs_mode_is_user(regs) )
> +        return inject_undef_exception(regs, hsr);
> +
> +    set_user_reg(regs, regidx, val);
> +
> +    advance_pc(regs, hsr);
> +}
> +
> +
>   /* Read only as read as zero */
>   void handle_ro_raz(struct cpu_user_regs *regs,
>                      int regidx,
> diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
> index 39aeda9dab..3f1276f96e 100644
> --- a/xen/arch/arm/vcpreg.c
> +++ b/xen/arch/arm/vcpreg.c
> @@ -548,20 +548,37 @@ void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
>           break;
>       }
>   
> -    case HSR_CPREG32(DBGDSCRINT):
> +    case HSR_CPREG32(DBGDSCREXT):
> +    {
>           /*
> -         * Read-only register. Accessible by EL0 if DBGDSCRext.UDCCdis
> -         * is set to 0, which we emulated below.
> +         * Bit 29: TX full, bit 30: RX full
> +         * Given that we emulate DCC registers as RAZ/WI, doing the same for
> +         * DBGDSCRint would cause a guest to continue using the DCC despite no
> +         * real effect. Setting the TX/RX status bits should result in a probe
> +         * fail (based on Linux behavior).
If you want to mention Linux then you need to be a bit more specific 
because Linux can change at any point. So you at least want to specify 
the Linux version and place in the code.

So this doesn't get stale as soon as the HVC_DCC driver changes.

>            */
> -        return handle_ro_raz(regs, regidx, cp32.read, hsr, 1);
> +        register_t guest_reg_value = (1U << 29) | (1U << 30);
>   
> -    case HSR_CPREG32(DBGDSCREXT):
> +        return handle_read_val_wi(regs, regidx, hsr, 1,
> +                                  guest_reg_value);
> +    }
> +
> +    case HSR_CPREG32(DBGDSCRINT):
> +    {
>           /*
> -         * Implement debug status and control register as RAZ/WI.
> -         * The OS won't use Hardware debug if MDBGen not set.
> +         * Bit 29: TX full, bit 30: RX full
> +         * Given that we emulate DCC registers as RAZ/WI, doing the same for
> +         * DBGDSCRint would cause a guest to continue using the DCC despite no
> +         * real effect. Setting the TX/RX status bits should result in a probe
> +         * fail (based on Linux behavior).
>            */
> -        return handle_raz_wi(regs, regidx, cp32.read, hsr, 1);
> +        register_t guest_reg_value = (1U << 29) | (1U << 30);
> +
> +        return handle_ro_read_val(regs, regidx, cp32.read, hsr, 1,
> +                                  guest_reg_value);
> +    }
>   
> +    case HSR_CPREG32(DBGDTRTXINT):
>       case HSR_CPREG32(DBGVCR):
>       case HSR_CPREG32(DBGBVR0):
>       case HSR_CPREG32(DBGBCR0):

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:34:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:34:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646791.1009331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6HP-0005AM-Ud; Mon, 04 Dec 2023 10:34:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646791.1009331; Mon, 04 Dec 2023 10:34:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6HP-0005AF-SB; Mon, 04 Dec 2023 10:34:23 +0000
Received: by outflank-mailman (input) for mailman id 646791;
 Mon, 04 Dec 2023 10:34:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZlsO=HP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rA6HP-0005A9-1c
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:34:23 +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 af578677-9290-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 11:34:21 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2c9ea37ac87so27415681fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 02:34:21 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 u8-20020a2e9f08000000b002c9f1436d86sm707961ljk.92.2023.12.04.02.34.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 02:34:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af578677-9290-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701686060; x=1702290860; 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=u7UnMKSTsi/xXvfklw13ALh7LQxeSVsIqCMSBCnuWds=;
        b=UFtvloJhnrPQRCX8vRMOXaT3qNZ9qD0ug1/WuIM+KILryTyw4eYJ4pInjjqiqDMg6N
         IB47M7ZaSG8pBC08bsvhPtBOcGQPCrmzVxpI/WYtF+OfEJcmQOHOYkeigsWA9btRvobl
         YK333IeanMKmS0Yrkrw9NJmr/kb8pUwmgmA0FNl9JArTxgnWHXtwsuUi7zckwg0+4Bwz
         kbDuB5/LCGoJVHi2g4rCyityljS9roBbbg4LRP8IVAUls4p87bsQGg5OkLiuFgXs5Yo7
         5p7m8dkd/mCWoK6dI4CgA+DGCyDb1v0xz9Ddw8d8rW0IegUYI7deIsW0gHVjUX8TvpUE
         So4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701686060; x=1702290860;
        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=u7UnMKSTsi/xXvfklw13ALh7LQxeSVsIqCMSBCnuWds=;
        b=MJTWJkwyfD/bltUmAHHip9sSQLWPR0xb8l6HJTBBEAnuf/USavcENTZH3XEoQIjiDi
         KasuOpfIgIjggCmHDYSx/r0xmgynL9hRT81WkzVT4oMI1lbXzVd5L7QrvG1yjffLImPE
         Oezx2Q6na/8aAIBGd9D6KqQJCPUu6GpSaR1OexUL805SrCpB+JZcUrdVevdrRO73ueZh
         p5D/06XnyYmVJ7myOPl6345OltxXmEetAk+nM8Xr3w4Xy2tjl8T2VycnzVT0LfEthCFB
         NoDwo1Lan6mzYexqgwmjdwdn24nra3bvHaIXc6kGJq8ZCN4WP1QP8jnnuuRUAhcMIEnw
         KNZg==
X-Gm-Message-State: AOJu0YxOedFJxPOhuHt7Yo75pxtEp3Eai1ufBH6FawABlSQaMl1IJB+w
	7XfvFrfNWw2tBlS7c95nmkY=
X-Google-Smtp-Source: AGHT+IHSsYrRywfXRIeNZ1niAtEiUKVSGK1p6N5KGz6+s9WyDU7CMbsP8AHOtJmSDkMTK2O8f0r0PQ==
X-Received: by 2002:a2e:9d17:0:b0:2c9:fa32:4263 with SMTP id t23-20020a2e9d17000000b002c9fa324263mr784946lji.15.1701686060386;
        Mon, 04 Dec 2023 02:34:20 -0800 (PST)
Message-ID: <5af2573e588f76b8df3423fd13a1b4275cc18f33.camel@gmail.com>
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>,  Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, Shawn
 Anastasio <sanastasio@raptorengineering.com>, xen-devel@lists.xenproject.org
Date: Mon, 04 Dec 2023 12:34:19 +0200
In-Reply-To: <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
	 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
	 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
	 <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
	 <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-04 at 10:46 +0100, Jan Beulich wrote:
> On 04.12.2023 10:39, Oleksii wrote:
> > On Mon, 2023-12-04 at 09:41 +0100, Jan Beulich wrote:
> > > On 01.12.2023 21:48, Oleksii Kurochko wrote:
> > > > Ifdef-ing inclusion of <asm/grant_table.h> allows to avoid
> > > > generation of empty <asm/grant_table.h> for cases when
> > > > CONFIG_GRANT_TABLE is not enabled.
> > > >=20
> > > > The following changes were done for Arm:
> > > > <asm/grant_table.h> should be included directly because it
> > > > contains
> > > > gnttab_dom0_frames() macros which is unique for Arm and is used
> > > > in
> > > > arch/arm/domain_build.c.
> > > > <asm/grant_table.h> is #ifdef-ed with CONFIG_GRANT_TABLE in
> > > > <xen/grant_table.h> so in case of !CONFIG_GRANT_TABLE
> > > > gnttab_dom0_frames
> > > > won't be available for use in arch/arm/domain_build.c.
> > > >=20
> > > > Suggested-by: Jan Beulich <jbeulich@suse.com>
> > >=20
> > > Not really, no: In particular ...
If it is comment was addressed to Suggested-by. Then it was added when
we didn't have a discussion about config GRANT_TABLE and depends on
things.
Probably I had to remove it after I started to update Kconfig things.

I am really sorry if I had to remove that before send this patch
version.

> > >=20
> > > > --- a/xen/common/Kconfig
> > > > +++ b/xen/common/Kconfig
> > > > @@ -15,6 +15,7 @@ config CORE_PARKING
> > > > =C2=A0config GRANT_TABLE
> > > > =C2=A0	bool "Grant table support" if EXPERT
> > > > =C2=A0	default y
> > > > +	depends on ARM || X86
> > >=20
> > > ... this I explicitly said I consider wrong to add.
> > Then I misunderstood you.
> >=20
> > What about to do the same as with MEM_ACCESS config and introduce
> > HAS_GRANT_TABLE?
>=20
> That's an option, provided (and I put that under question before)
> there
> realistically can be ports which don't mean to support grant tables.
> You mentioned that things are fine for the dom0less setup you're
> testing,
> but I don't think a fully-functional Xen port makes sense to only
> support
> dom0less. But of course I'm willing to hear arguments to the
> contrary.
Unfortunately, I am not experienced in the depths of Xen, but I used
grant tables in Arm to share frames between dom0 and guest in PV
drivers. It should be another usage of grant tables.

I assume it is possible not to use grant tables and come up with
another solution, but it isn't the best idea, and I don't have any
reason not to use what already exists and works. Are there any cases
where something else, instead of grant tables, is used?

Therefore, I agree that a fully functional Xen port will support only
dom0less, but it can live for a long time only with dom0less. And in
non-dom0less grant tables will be used somewhere sooner or later.

>=20
> > Or would it be better just update "depends on" to !RISCV && !PPC?
>=20
> Definitely not.
So we have a "weird" situation.

Considering the message above, grant tables are likely to be used
anyway. From this point of view, there is not a lot of sense in
introducing "temporary" HAS_GRANT_TABLE as, at some point, every
architecture will use grant tables ( the same is with "depends on
!RISCV && &!PPC or any other combination ), and HAS_GRANT_TABLE won't
be needed any more except the time when support for new architecture
will be started and it will live without grant tables for some time.

But an introduction of HAS_GRANT_TABLE makes sense ( at least, when the
work on support for new architectures will be started ) for me.

If you ( or anyone else ) don't mind, I'll update the patch with an
introduction of HAS_GRANT_TABLE.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:34:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:34:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646794.1009342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6Hr-0005e7-9Y; Mon, 04 Dec 2023 10:34:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646794.1009342; Mon, 04 Dec 2023 10:34: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 1rA6Hr-0005e0-6s; Mon, 04 Dec 2023 10:34:51 +0000
Received: by outflank-mailman (input) for mailman id 646794;
 Mon, 04 Dec 2023 10:34:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LJlD=HP=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rA6Hp-0005cx-RS
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:34:49 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bfd0f929-9290-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 11:34:48 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id A1C4F4EE073D;
 Mon,  4 Dec 2023 11:34:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfd0f929-9290-11ee-98e5-6d05b1d4d9a1
Message-ID: <c14428c1-baf4-438d-b386-13bd4f354342@bugseng.com>
Date: Mon, 4 Dec 2023 11:34:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 2/3] xen/arm: add SAF deviation for debugging and
 logging effects
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.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>, Wei Liu <wl@xen.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>,
 Dario Faggioli <dfaggioli@suse.com>, xen-devel@lists.xenproject.org
References: <cover.1700844359.git.simone.ballarin@bugseng.com>
 <761ce615438312ca5d37fb8829a0ba903375392f.1700844359.git.simone.ballarin@bugseng.com>
 <ec587cf6-088b-4142-8067-4d9d67fc58c1@suse.com>
 <59744708-c2fb-488c-9e6b-e47faf7a8007@bugseng.com>
 <497617b3-6a86-46bf-99ea-2b2f1bdf9d97@suse.com>
 <89847582-ff70-4ba2-9cc7-e45ea2b691e3@bugseng.com>
 <12b2d92d-f9b7-491d-affc-0c04708d950a@suse.com>
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <12b2d92d-f9b7-491d-affc-0c04708d950a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 28/11/23 09:42, Jan Beulich wrote:
> On 27.11.2023 18:34, Simone Ballarin wrote:
>> On 27/11/23 16:09, Jan Beulich wrote:
>>> On 27.11.2023 15:35, Simone Ballarin wrote:
>>>> On 27/11/23 11:46, Jan Beulich wrote:
>>>>> On 24.11.2023 18:29, Simone Ballarin wrote:
>>>>>> --- a/docs/misra/safe.json
>>>>>> +++ b/docs/misra/safe.json
>>>>>> @@ -28,6 +28,22 @@
>>>>>>             },
>>>>>>             {
>>>>>>                 "id": "SAF-3-safe",
>>>>>> +            "analyser": {
>>>>>> +                "eclair": "MC3R1.R13.1"
>>>>>> +            },
>>>>>> +            "name": "MC3R1.R13.1: effects for debugging and logging",
>>>>>> +            "text": "Effects for debugging and loggings reasons that crash execution or produce logs are allowed in initializer lists. The evaluation order in abnormal conditions is not relevant."
>>>>>> +        },
>>>>>
>>>>> I'm wary of this statement. Order may not matter much anymore _after_ an
>>>>> abnormal condition was encountered, but in the course of determining whether
>>>>> an abnormal condition might have been reached it may very well still matter.
>>>>
>>>> Do you object to the deviation in general? Or just to the wording?
>>>
>>> Primarily the wording. Yet the need to adjust the wording also hints at there
>>> needing to be care when actually making use of this deviation. Which it turn
>>> I'm not convinced is in the spirit of Misra
>>
>> The rule is really strict, but imho the only real dangerous situation is
>> when an entry performs a persistent side effect that can change the
>> behavior of another entry. I.e.:
>>
>> int y = 0;
>> int x[2] =
>> {
>>     y=1, /* first element will be always 1 */
>>     y    /* second element can be either 0 or 1 */
>> };
>>
>> Above we have a dependency between the first entry and the second.
>>
>> Now let's consider logging effects:
>>
>> #define LOG(x) printf("LOG: %s", x);
>>
>> int x[2] =
>> {
>>     ({ LOG("1"); 1; }),
>>     ({ LOG("2"); 2; })
>> };
>>
>>
>> Here the execution can print:
>> "LOG: 1LOG: 2" or
>> "LOG: 2LOG: 1".
>>
>> Do we agree that the evaluation order of prints caused by logging
>> functions/macros do not normally cause dependencies between the
>> entries? The execution is still non-deterministic, but does it really
>> matter?.
>>
>> In the case of function that crash execution, no dependencies can exist
>> since no further entries will be evaluated.
>>
>> In conclusion, I propose the following rewording:
>>
>> "text": "Effects that crash execution or produce logs are allowed in
>> initializer lists. Logging effects do not affect the evaluation of
>> subsequent entries. Crash effects are allowed as they represent the
>> end of the execution.
> 
> Let's assume we have a BUG_ON() (as the "crash effect") the condition of
> which depends on where in the sequence of operations it actually executes,
> i.e. (potentially) dependent upon another part of the initializer. I hope
> we agree that's not something that should be deviated? Yet even the re-
> worded statement would - according to my reading - permit doing so.
> 
> I guess I should try to remember to bring this up on this afternoon's call.

I known you had a conversation about that during the call, but from what
I known, a clear decision for crash effects wasn't taken.

If the community does not want SAF deviations for such cases, we should 
consider moving them to external variables.

> 
>>>>>> --- a/xen/arch/arm/guestcopy.c
>>>>>> +++ b/xen/arch/arm/guestcopy.c
>>>>>> @@ -110,18 +110,21 @@ static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
>>>>>>     unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
>>>>>>     {
>>>>>>         return copy_guest((void *)from, (vaddr_t)to, len,
>>>>>> +                      /* SAF-4-safe No persistent side effects */
>>>>>>                           GVA_INFO(current), COPY_to_guest | COPY_linear);
>>>>>>     }
>>>>>>     
>>>>>>     unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
>>>>>>                                                  unsigned int len)
>>>>>>     {
>>>>>> +    /* SAF-4-safe No persistent side effects */
>>>>>>         return copy_guest((void *)from, (vaddr_t)to, len, GVA_INFO(current),
>>>>>>                           COPY_to_guest | COPY_flush_dcache | COPY_linear);
>>>>>>     }
>>>>>>     
>>>>>>     unsigned long raw_clear_guest(void *to, unsigned int len)
>>>>>>     {
>>>>>> +    /* SAF-4-safe No persistent side effects */
>>>>>>         return copy_guest(NULL, (vaddr_t)to, len, GVA_INFO(current),
>>>>>>                           COPY_to_guest | COPY_linear);
>>>>>>     }
>>>>>> @@ -129,6 +132,7 @@ unsigned long raw_clear_guest(void *to, unsigned int len)
>>>>>>     unsigned long raw_copy_from_guest(void *to, const void __user *from,
>>>>>>                                       unsigned int len)
>>>>>>     {
>>>>>> +    /* SAF-4-safe No persistent side effects */
>>>>>>         return copy_guest(to, (vaddr_t)from, len, GVA_INFO(current),
>>>>>>                           COPY_from_guest | COPY_linear);
>>>>>>     }
>>>>>
>>>>> I can only guess that in all four of these it's the use of "current" which
>>>>> requires the comment. Yet imo that either needs making explicit, or such a
>>>>> comment shouldn't go on use sites of "current", but on its definition site.
>>>>>
>>>>
>>>> "current" does not contain any violation of R13.1. Its expansion
>>>> produces a side-effect, but this is not a problem in itself. The real
>>>> problem is that GVA_INFO expands it in an initializer list:
>>>> #define GVA_INFO(vcpu) ((copy_info_t) { .gva = { vcpu } })
>>>
>>> But an initializer list doesn't itself constitute a side effect, does it?
>>
>> The side effect should be inside the initializer list. { .gva = 1 } is
>> not a violation.
> 
> I'm afraid I don't see what would be constituting a violation here.
> 
> Jan
> 

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:40:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:40:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646801.1009352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6N6-0000Ap-TF; Mon, 04 Dec 2023 10:40:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646801.1009352; Mon, 04 Dec 2023 10:40:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6N6-0000Ai-Py; Mon, 04 Dec 2023 10:40:16 +0000
Received: by outflank-mailman (input) for mailman id 646801;
 Mon, 04 Dec 2023 10:40: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA6N5-0000Ab-G2
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:40:15 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2080.outbound.protection.outlook.com [40.107.7.80])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81ea5665-9291-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 11:40:14 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PR3PR04MB7308.eurprd04.prod.outlook.com (2603:10a6:102:80::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.19; Mon, 4 Dec
 2023 10:39:45 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 10: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: 81ea5665-9291-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nbMRZB7UKQ0IXBqSMdS+fFOCEnSxaG5Pd+LIe9lrxCM8lZRj+clzUkRwvohspeag6jWBLWshbOCWD5EawuxT31peXXFyuD62mdZC20rqkCPhFeRnDHYcf0rCme8Q71jK2Kk0VOTWhlPbrIV/RxgLpnXUeB/X3VjDWTgLmLt/wjAKSK1g9CLNEKhYF9wlX4arhttuQQYxHcQzmh888TUYvO6JRCeIVKFSKrqs0NFgTCN4Ai0DBYIPY4TOQBeoewev51CazbzwkEmaIvoR0w2zHTU6d4R0gA3yQrqnl0XcZokI1u+aR5n9VDtIqfcvaKcME5kefu+YZLPWNfZuhNuINA==
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=1vL2YuAjFluyJth9uTGT1xD4fzNpamHY+VY9WWWayg0=;
 b=VwTfSsYYK1LCjJFTA+rRFXD/n2n/0+vt420MRZ0Jd8Rr376bd+v7IzkV8zOn0VvcA9hy8tnCs35BdbmexGGICEOyJvs5zPmBuTDnBSM0VcdyW3NV0S/Au9kD4sFdPBOaWgzYMsHubrhqLwpyFrGnrcs+hBJ1rCC/zU7UDD2jgKZZ1A9E2wOSDHkt6KKMXLn3VFrOFnyCcpP0g4yNj6n2rbkWK1lGqM1LaogJItSVjAiEfQgBmnwXDdfIkEUTh1S9U5vuNoPHONtfLW18WvJyQRDHtWxuGHG5YCWjM49lnIl93IMeVu1spxLP7//9CAvndxj+lej++KP1Ktef0URLOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1vL2YuAjFluyJth9uTGT1xD4fzNpamHY+VY9WWWayg0=;
 b=2Q6l92sJB9jFbzqsnZhLE+yrJTOALm+y4XT04snqY+klHQLOIEmAUCjuQS3GX9kYExHSdwlAShzWizfsKHAkGySDzNrlS+rZxR9XxiHb7yqYJmJb07f2W8FJ9GXa7ErWtPxL/Loz5WIU/r5JNt4RvMdLDhZJEIJv+2gLGihSd2fKJ0boqSEy+dD4wgiIr3JTsKI8MuJd7Ok0bM9fPi5uDe93sbnmIEavYe1gvXRqUc+IR1yEWRdFo/k+77JL6+QbwhpsWpgqy1+wakMQO3MpdBIae5EV3rP7O61fzwb0fM2MFxkx7R9UXcnIZTIalLdBOvp+TQRHF6nSRKpqdFyYdQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <abb8c26b-4c8c-4fcf-a8c8-4a15a5067fa0@suse.com>
Date: Mon, 4 Dec 2023 11:39:46 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
Content-Language: en-US
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
 <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
 <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
 <5af2573e588f76b8df3423fd13a1b4275cc18f33.camel@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: <5af2573e588f76b8df3423fd13a1b4275cc18f33.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0217.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e4::19) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PR3PR04MB7308:EE_
X-MS-Office365-Filtering-Correlation-Id: 2e96005d-84d6-4af3-3c6d-08dbf4b5545c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	MAiwD90uUvAs6t4oKakPCVM07Zs0xCUeahSOa4vF2mPyq9KLGVhQqVrvxK/lL6Plssrrvm3NBuURiDmomZZsaGupGmwcbSdVYjfpqH0xzqRe10vOy5wLpyRKGSWtjlY5Hk93wIpqlNghV64UveRGEyO5f17pGrkj2MMjolmOZZeOLik8e0VQDCJD8AiJnsT37tIGrEtHk86rkXlMVKr06YPT1IfEwFSIwnFSGSKC7QyIo/nmIUW7UC7qb43PFUPtXnGVwmHeNFaDRUF9UGDLkgK0Q92Wh1ivLfwABfvzLMSv5F/ZQNrZ5W+83/2IibwHKxSFfgnSL9zdNbkMNf4hXBcACOv4JG/e2ukVvWNyFmW6pc2sUXQRxMVkumoV4agk2mo83fgpAfJpr/kW7DVBH6mTFgHatHsdX+1EIeiJovRFH97CGkpV9bJQQcjd+3dOAcGtlDG8NEDz54X/l5ewm64CZnulrlemBhxCXRZDj1wAGSrcMdUOfYTr+zfGSQ17x4LtvJZZVubsqU7WjWMf06QmU+ghzeo5mBgwjrePPWHXKryRS7d3rz//+GwZH8RtdmRAmhyAtw1QbgQLsym/9ug7W3KZDwLLuXUViym7YSmuUs7YjUEsp0Cs1NQyT6tu+tFc1HH33DSVX+MfUr8chw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(376002)(39860400002)(346002)(136003)(396003)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(66556008)(66476007)(6916009)(54906003)(316002)(66946007)(5660300002)(4326008)(8936002)(8676002)(31686004)(7416002)(6486002)(31696002)(86362001)(38100700002)(83380400001)(2906002)(478600001)(26005)(558084003)(2616005)(6506007)(36756003)(6512007)(53546011)(41300700001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?akJMQ3MvTjk0dy9pUExSN3IwZFVZOEZNbFJsMWQ2bnVjUGtPdEN6clRpa0NE?=
 =?utf-8?B?SGw1NmRYNTBMNFlnNlZLWjZTakhWL0l0TTlVYmRXcittTkNUaWRqOTJxTENB?=
 =?utf-8?B?RjMrOVpSeUdMSXdHbkVWRmpDMHRLcXE5WnlDUmU1cHVHWnZXd3VCRE41bjlL?=
 =?utf-8?B?ak9QZmJ3Zk1RM1I4aTkveE5LNmxzaUQ1cUE0dHV0MFdjQmRvZU9zZ1IwZmZm?=
 =?utf-8?B?c3NQbjRabExhZUVKM3NGT3BWcnRUU0RqbHRsdWt3Tjc1dm95MUwrcHpNclM1?=
 =?utf-8?B?cHlLaytEc2RkNFZObWk5cVdBM0dWblRjekVWK2ZhZFYrc20wUEFNcGZoZjdT?=
 =?utf-8?B?Qyt5WGp0UGVrQ1BEeEh3bnJJR09DbHNSbHlhbDZHT3MxMHZKbGNDVnFnbUto?=
 =?utf-8?B?THJ1ZGpHVGxZanpvTk5haTY3VHBIWHErYlNYM2xnc3RWRkkzZWJ3c3pQWWY3?=
 =?utf-8?B?THUyOURVUkF6dFpCMGN2VWIzTVFBdy9yWGpNYlRQRU41Z0IrZ2JPMGszNThh?=
 =?utf-8?B?bDlQYjdmNkdlczFFWmk4ZlVYUUFIQkswY1NkTVBlY1NINmt0RGtTU0lLSWNM?=
 =?utf-8?B?ZUtoZG9IaXR5aWJ3WGJmVkFXaXUvQWw0V0VnU1hMQ3c2T01zaHRoRTRlZWkr?=
 =?utf-8?B?ckhoN1V6b3EzSmVqT2U1TE9NQnEvVGVrK0dvWU1jckYxRDVDa0dFeDRHOW8v?=
 =?utf-8?B?cHFsU2UxeUFiU05JZUI1T1JzM2dLQ3FsdXF3SVZSd2lzbkw4ZG1kRW90UGtv?=
 =?utf-8?B?MUVXUEJkOHNSbUxTdkRpREUzWEFEWHg5UVJwQXczMXczeHcxcjZwQVhhREg1?=
 =?utf-8?B?elFhVVoybVgzNUl4L281UU8xbHdpKzZ6NWlSWWpBTEN4NlQ1VUZLL05obEVD?=
 =?utf-8?B?MWxnUTB6eFFFbGtITmp3TlZFYmlaSWV3RXZpMnV0anFub3hSWERsbkNGd2Qz?=
 =?utf-8?B?b2RFS1pGMXp0dmN2dGdndmV1aTJ2Z0VHOHo0aVdhUVlXQm9aVEIzV0xFenZC?=
 =?utf-8?B?OEtrUG9CS3dhVnVBZ082MzljKzVUZXE2b2x2VkkyQWhIaWFBWHF2Nnd0c01J?=
 =?utf-8?B?NC9FRHFHVGhMQ2MzK0MxbXUyc01CVjhCeVprWU5TalpIcTFvSWYvTDlBaWlB?=
 =?utf-8?B?SkNaL0g5V1BHb3IrVHA2L2RTcXBTSkltZkxhanhxQ3BqZVc3ZVNaMHk2OWxa?=
 =?utf-8?B?UGhTL2x2dVpUK21aMU5OSXozdUd0YllSRWtXOHI3SHJhSGRjODZDandmNEFZ?=
 =?utf-8?B?b0lNTVhjcUlDMkxWbTZacll1WHB2dlFaZTFzRG9NQU9xRGlFamRWb2JuUDgz?=
 =?utf-8?B?NVh3TWxvK29tQTJlcHpOMEwzU2dhZEtiQ0pOQWZtYWlWQ0xqYWpUMHNZVHQz?=
 =?utf-8?B?RVZ5TG1PZE4rYTAyV3k5MXFaOW10aDZOekFnV3pMM0MrRnRjMTlyYmFhTm1k?=
 =?utf-8?B?VEJ3eHZZUVY1S3F4Z20yZVZieGhzVm5peGRFcUcxcHNpbzl3VVc3UnV4U1U4?=
 =?utf-8?B?TmhjOTRnNk5YMGhwZHJtRFozRTRiak5OVU0ybmRxMTdUNXdqeXl0eUVvZUp0?=
 =?utf-8?B?NXhCdkpGbWpvMWFwR0lXMVNrMkhHOExUaDlrS2hteE5CQkdvMTVTRGo0NDJl?=
 =?utf-8?B?OXo3U2FmejEyRlBFOHFQSFZ4ZWliVzhHTzNNS29kcHZOYXkybThIelk0SUkx?=
 =?utf-8?B?L1cvL3RtdGwrd1VwU3ZpRWNXZGVENnJkRjlhbE5vdEVEcGFkR1hsNUYrdlp5?=
 =?utf-8?B?M2h3WTZtcGZreUlLcU5YUmJ6N0NROFRCR1VJQzhDczRwSUdpM1FQd3JTbnJs?=
 =?utf-8?B?d081d2pJMnI3OVBpZ3BKME45VWhMak1aNm9qZjNCcGQ3V2x3L0RvS0lQUHR3?=
 =?utf-8?B?eHkyRisxTmlQVmMxT0NmeWo2OXJNbW5QeGRvdFlhR05MQ2xMRVBnOFFFbGwr?=
 =?utf-8?B?WlQ2REVHaEdZWU1UYnhpMGovMTRVU3JmcVIyWitlL3dKYVR0c1lvVWxqRmpq?=
 =?utf-8?B?OC93eXVDcDdGQzRYSENWZ2RwdCtyY2ZFUktpOWZXYkp1MjFyVEtOTkFDdjZJ?=
 =?utf-8?B?VmhlWFdZTDJ3bGtlQlE2bVdpTEJsZlhkNEl0ZEdYNWNYdUlxaFVCUUNMallj?=
 =?utf-8?Q?Wn8LNv1LpFqEXNiyLODsk3EMg?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e96005d-84d6-4af3-3c6d-08dbf4b5545c
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 10:39:44.6622
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SRlftKtZMkRM++HIr/ZCdup1TIjqYjZ7FmSDdrwqueCnyY1XNHH7HjOmpxA2YCBb9X37DKZGcpRlMucawF6BsA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7308

On 04.12.2023 11:34, Oleksii wrote:
> If you ( or anyone else ) don't mind, I'll update the patch with an
> introduction of HAS_GRANT_TABLE.

I won't NAK such a patch, but unless convincing arguments appear I also
won't ACK it.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:51:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:51:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646804.1009361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6Xi-0004TX-R7; Mon, 04 Dec 2023 10:51:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646804.1009361; Mon, 04 Dec 2023 10: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 1rA6Xi-0004TQ-OV; Mon, 04 Dec 2023 10:51:14 +0000
Received: by outflank-mailman (input) for mailman id 646804;
 Mon, 04 Dec 2023 10:51: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=bwcF=HP=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rA6Xh-0004T0-D6
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:51:13 +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 09ca9f08-9293-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 11:51:11 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-50bf898c43cso624501e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 02:51:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 09ca9f08-9293-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701687071; x=1702291871; 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=GQfKHH9xUr8JCrXz0Ts9i93STXhIm5hp1tSVgCQAGws=;
        b=GVuYb8RQtAlABI3cMkagOw38R9knBmxPhB5BlaAT4/jSk99ZN0nfceYxGgcn6RSEZl
         WNJYIfG/Jx5ihPnVrAjNWMffj4oq32FQDHVAuC26ApZJtpqx+9swGk9jMQSx6J6yL3ZO
         MPh7k9rbbTGH7hee8ji6ft+qTARmKQyILBv8Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701687071; x=1702291871;
        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=GQfKHH9xUr8JCrXz0Ts9i93STXhIm5hp1tSVgCQAGws=;
        b=XQCSwWhD6e4cU2ODQ625JgyTklkqBRjh7VScPuQ5Xhz3uKfCLZJRUQEZY6gH4x3oCR
         j46SRF+84jobX6jcLbq3b99nl6oyA7ckWEFC/AUva0I9m3zD/Tsx07+XZ4UtaUqpurbV
         zU2tmJcBuv636oRs+1NR0yhS2q2LokHPlQlulv2LbJWho5EoQ/dxvJFz7XCn0WgMYXdu
         fpQTerI+IKxcTWxiWNGUvZMHs2xdMoBIQRqNvNIBOoN+rfLZmjbNuGRX8Yv8ZnS2e7nh
         p4VG1c8cPqL8Bm4SjZ12ETgS/lBswi/ILrpCS7qj2qFf0WYDjOy1RnsHxhbuhrxXEwou
         Hn1A==
X-Gm-Message-State: AOJu0Yxs2W4PeCNpAzaCNYnNX0CFtGjlFjZZPJ3C4ObvHGbpQyla6Zfp
	2O2RqL52uUXuAVz+/IlomlR+h9N8/RKvKXwNw4IqWwywpuZPNIOe
X-Google-Smtp-Source: AGHT+IGYrVbIO6XP3f7valwb25yxyv8aGnRQjCZxkQLWclqLKHQAI6bTlc7ycMHqm7bkRJ+ajlFNKcdoQJx3VKjHiNE=
X-Received: by 2002:a05:6512:6ca:b0:50b:d764:28ec with SMTP id
 u10-20020a05651206ca00b0050bd76428ecmr2401029lff.132.1701687071291; Mon, 04
 Dec 2023 02:51:11 -0800 (PST)
MIME-Version: 1.0
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
 <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
 <alpine.DEB.2.22.394.2312011253390.110490@ubuntu-linux-20-04-desktop> <1978d259-1531-4dcc-a106-d87f6f26885d@suse.com>
In-Reply-To: <1978d259-1531-4dcc-a106-d87f6f26885d@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Mon, 4 Dec 2023 10:51:00 +0000
Message-ID: <CA+zSX=YNcjDZHF-gx8C8owEpyyjSEtj-MKDAqRwp9woHzEFtUg@mail.gmail.com>
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Kelly Choi <kelly.choi@cloud.com>, 
	xen-devel@lists.xenproject.org, committers@xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 4, 2023 at 8:16=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wrot=
e:
> > I am in favor on moving faster and nitpicking less. Also, Andy put the
> > effort to produce the patch so he should have the default choice in the
> > wording. If the choice is taking the patch as is or rejecting it, I
> > would take it as is.
>
> I'm afraid there's also disagreement about where nitpicking starts. To me
> "broken" in the context here is technically incorrect. Hence asking for
> the wording to be changed wouldn't count as nitpicking to me. When badly
> worded comments of mine are commented upon, I also don't count this as
> nitpicking (there's always a grey area, of course).

Whether something is nitpicking or not is a value judgement; different
people come to different conclusions.  I'm afraid even the argument
about whether "broken" is appropriate to use in this context is a
matter of judgement: there are arguments both ways, and different
people have come to different conclusions.  The problem here is that
some people definitely think "broken" is the wrong word; and others
definitely think "broken" is the right word (some +2 and some -2).

Given that we're always going to have differences of judgement, we
need ways to move forward in spite of that.  Ideally the maintainers
should be implementing things according to the value of the community
as a whole: we should not be quibbling over things that the community
as a whole doesn't want quibbled over.

The basic mechanisms we have, voting (with the ability to appeal to
the committers) is meant to be a quick way to approximate that.  The
assumption is that with 6 active people in the leadership team ("the
committers" at the moment), from different companies and backgrounds,
the chance of a vote of the committers being out of sync with the
community is fairly small.

But of course, small is not impossible.  The list of committers hasn't
changed significantly in a while; it's entirely possible in this sort
of case for the values of committers and the values of the community
as a whole to drift.  How do we determine whether that's the case or
not?  Hence the community-wide survey.

The problem with "nitpicking" goes a bit deeper.  By its nature,
nitpicking doesn't really rise to the level of "something obviously
wrong"; it's more "too much time spent asking for changes to code
which is not obviously wrong".  How much is "too much"?  Again, it's a
value judgment.  If someone is nitpicking your patch, it's not really
that obvious what to do about it -- to ask for a formal vote of the
committers about a tiny change request is just as "nitpicky" or
"petty" as the tiny change request itself; it's not this or that
change which causes the problem with nitpicks, but the cumulative
effect.  How can this be "calibrated", so that we can ensure that
maintainers are just the right level if picky -- neither letting
sloppy / ugly code get checked in, nor wasting people's time and
emotional effort asking for changes which aren't worth the effort?
And how do we give people practical options to respond to a maintainer
who they think is being "picky", such that they can either be
convinced that he code changes are worth asking, or that the
maintainer can stop asking for minor changes that aren't worth the
benefits?

The last one I don't really have an answer for.

 -George


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:57:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:57:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646807.1009372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6ds-00070b-G0; Mon, 04 Dec 2023 10:57:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646807.1009372; Mon, 04 Dec 2023 10:57:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6ds-00070U-Cu; Mon, 04 Dec 2023 10:57:36 +0000
Received: by outflank-mailman (input) for mailman id 646807;
 Mon, 04 Dec 2023 10:57: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA6dr-00070O-W1
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:57:36 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 (mail-dbaeur03on2062d.outbound.protection.outlook.com
 [2a01:111:f400:fe1a::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ecd6b4c7-9293-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 11:57:33 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PAWPR04MB9838.eurprd04.prod.outlook.com (2603:10a6:102:380::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.23; Mon, 4 Dec
 2023 10:57:29 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 10:57:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ecd6b4c7-9293-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=e8oMZOXAoTL8Rff217DFCdyWXpxVXoR4eE2aWv1EvBFCNtrjYwdZKDh1/gvzcaBkU49CPOighQOg5kvsxnG7/LY7sVEQddpXFRttgDdBYmJOo7oZYEVSrjhlVVsuSgDAqAlA2eGIpKYTBMlTVkHEcWlpqTNThqswP9QaON80aNr0cNYf1PG0k+QK4oc3d3dYSOjPIme7iaBVZiPC+SiFZaCmbxPTJRIAlL630Ob75HDLs845m3ST2PtL57biS/t2DdYNxdk0jPxeA1MXnhmuz3Dtp2ITfEVu8fo1ca+aOGb6+U2KUn3f6a4d8KQ03BHiKXWiMgjFC4QDYGb6lAen4Q==
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=H6NNk+ncqrLCgyBB/OupLtQMaU3c0uRAHuTLc94F7Cc=;
 b=bZD4OjR1AKOJvKIcOuipP/c21Q9wVsU5YwDxMsVAqTE2tNWVqn5Mrhen2HCvinVIXkf3m+4lqoJfT+amaiouPwUeJGhmTmWqg3AZF5q2u5NlwWCvU+OudEvOZhcn0kBdD4j4aYv8QjpET1z3WARj3TAluPEwbPfu4V29Ozz+1Ot/NKi/gIJ/Q/0MejcUmrLk/GMfI4C7UOIJ8K8jhzFX2FDe0iEJS72wWXM45i85cq/RcZhUKSCx6syTd55uqpThbE7erxtnavEcWKzVGrmaFgSxIEe1fEXj5TCPqH9kGZfBo8S85ffNM2FmCqmwNcQCOyY6RGqFdNKgG+UiD0Soog==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H6NNk+ncqrLCgyBB/OupLtQMaU3c0uRAHuTLc94F7Cc=;
 b=VT0XpVG/A5/0T1fVaXWNq4Fiw16+D78e3u2nqt6E6ObMcngdD3+KGpmrtj/OYsSe0k1UNcCPfSRc+1zGGTLEczou2Eycumvo+NXPR8OBBdn4wbX2om3GSRK3uGuzMQ68vNgrt+cHsy3zk01ZcQ3hE5ADmKPjwSHUxlpEe5ptq7F6ftfxrDCp6l5rlRJhTP8MEz+b5Yg1PCHvM1U6p143LL6Wl6IdF7IwR5mDJVDiwV6Q7s+Hf54upZRKsh7XtgyE7R5xcg1vciQ2k6/XADQJalZnkLO0bpODoWKnB8XGQMDYnBR+wyz5YnVCyRct556nxDHJUTqim70CAlI0/r8d5w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
Date: Mon, 4 Dec 2023 11:57:30 +0100
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] sched: correct sched_move_domain()'s cleanup path
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR2P281CA0021.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:14::8) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PAWPR04MB9838:EE_
X-MS-Office365-Filtering-Correlation-Id: 04310738-b8cb-47c8-f11d-08dbf4b7cf16
X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	45WPzafDx1skEXsMnTc5DzaQ7KoyZXcvISlyWPB0wctSD9MJ7XoaVa0htITjRUmUPZsGaZV60ogY1FeyR9cznoa7YSHp9mnm2nJXr7mVqKrSf+7+wOOhwfibzyZJOrBRES+nAhVNBNigucHghDEuMqQlIg7WSHGzbj+CLayJiKcxa9h4zkQ7klnctdPdIOSj8OOjC9PJLL4FS7XObJp+IQb0Gj2vRBqPia0+wHc3w4bNVDosoY78VAtlaW16rE1tNgw+jQu8JUO2VdxUUeOMI0/EzDWJP95HvOvLWE+oiEFILJpkw1Hbwi9cDlK63EfjEBAhe0bOp+xpY4PCIXLpc6IafNuVN08lIfBPIsjE53FpoghACDssiBN2HtIvougqRkApqUUnnPsPIW19oyaD3aYuKgueTPnnK/eul1v1Nd6KEc3YJMpLHIuTWGSi2zEySgfGH4Da/HiP1hhozg/Ca/ijAA7BLHm8gPc52OnZJEXeAce5l+eQf8Zekd86hEkhZPsalZIefmmap+cITpGxXc8opc9jna9s+Cwgu5+oqB9+rZFlamQXpn4+3VNtkmzPyZ99OUoR9TyhaC8Vbtz1c8RJUEoNR8/0/m9IsS/GIfft4OJVe4aC63vKBns02b9NWiVvux4VcFI4/XnCWJMmIw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(376002)(136003)(346002)(39860400002)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(4744005)(5660300002)(31686004)(54906003)(316002)(4326008)(66946007)(66556008)(66476007)(6916009)(38100700002)(41300700001)(2616005)(26005)(8676002)(31696002)(8936002)(36756003)(86362001)(6666004)(6486002)(2906002)(6512007)(6506007)(478600001)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZVd2bmNsV1B4SUdvRG84ODZTVHVKWGtOWVZPMWpyQ0k1dzhtemVhT2ZkMUtH?=
 =?utf-8?B?R0pIb0hObmt1OEdYYi84Y1NNNHZ2bm94cStLekt3NG9UZEZyV1RoWkREUWRP?=
 =?utf-8?B?dnhSU3MzUDZjUktXaXJRUllpbzh2dVluTUJLeHNaU1ZCRUg1djFSUitGY0sw?=
 =?utf-8?B?ZFRJRENXZGQ3TnVYamllR0sxQjFoN09WcGU0cGd1ZDVnZmNwU0hCRi9xb1lt?=
 =?utf-8?B?Mmg4aGk1RE5NUTdza3NKeXV3cFdva1RjUzBnbDVta0oydjBPVjA3Z3NjanRj?=
 =?utf-8?B?VXN3TGpDUzVHQW9qaG9YN0RzRlRaS2hNVmFWWmNCRkR4YW9MbnhtWkQrbkFF?=
 =?utf-8?B?T2tmUHNjb2F6RktmOVdPOUhaWnRaZldOTVMrUmZuV2hMbVFGQSsvM09obitS?=
 =?utf-8?B?TE1la2Y5elZBWkFnZE1pV2ZoLzVxZjVpeEZEd2JSSnk3bk5aLzZyaFJCUThM?=
 =?utf-8?B?ZnZuY0ZKRVdmdmNieGdRbmFrOW9udGZUT2I1UHRqSXZHZ0tMOVdFQW41ek93?=
 =?utf-8?B?SHhLcG5FNGQ4MEQra2EyOEx6aVhveFNYRXptNGVQY1ExOWk5NldNRzFGbUo4?=
 =?utf-8?B?a25zcE9zbjZiek02NW1zOGJNbmhCaGFWWThlRTZ1SytwcHFMNWZ5UnNRUlNF?=
 =?utf-8?B?S0c4elJMQnZzR1p0NlQyVU5qdTdvSGp1WU93VDd3Y3BjcnBxWXozOHZxV3Nr?=
 =?utf-8?B?Um1McTZFcW9FbDJNb25aQnVUNmtTUmNsUm5iYnBwVlphbEdKZS9BS2cya2Vw?=
 =?utf-8?B?Q2Y5TkpHT0s1bGZSZFJGWHFPWndwQjBVb0NWNUlOdHB5N0tCM3JIVGRlUy96?=
 =?utf-8?B?UFJnOHo0Qi9SYU1GcURKM3pMaFdqMythUE5ZZUZPNENSM0ZhbElpR3hXd00y?=
 =?utf-8?B?SHBjMFV3R0dQWTI5TDZlZFp1Z2EvQ0RtNENSSUZoN05hSkxiUlg5NG55TGFn?=
 =?utf-8?B?QUFrcE1BeUxvL2VacDlSdEdBK2Nqc3l2QTdaRVprSXhUZzJydm16SUoyUHl3?=
 =?utf-8?B?UFNxdjNGUC82ek5JUzFaSTdUcjcwMU1nNi9ybEJVOW5vdHdCK1B6S1FpSmhz?=
 =?utf-8?B?NTdINnBsY1RnQm96TVAyNTRGWE1EVkM1Nnd5a05kWWN3Q0dLV2RwNHNPTWRU?=
 =?utf-8?B?WEFvWk9aN01NVkt5QTQ1ZHgxRlY2R3hpS3ZnKzd3WDJETmd3VDVFL1RIemlK?=
 =?utf-8?B?amRORlROOHJyZ3hQZGU0SEtBU05LZ1oxZVo0TVdlN0wwanNianNDOTJQSW54?=
 =?utf-8?B?SllmZjdvMG9WK3pvWmZ1aCtWSlRDT3BaT1lXcUpjNjJkcXljaUhxL0xJbnN0?=
 =?utf-8?B?OVZFdlQ2OHVIbFVTYlNLejIxMVkzOHJsNHB5UVBlTUt2elRVMU5lMWtWcWM1?=
 =?utf-8?B?N3dCa1lqV0tXTzd2cWloYWM1RVU1WnNTbjQrdXpSMG9JRXVRMkVMVDdNL0hl?=
 =?utf-8?B?WWpvNGRzM1l4SFdVWjNkNTdKVWIvV1dSU3NURHQzU1B0NWltUkVBUjhocXox?=
 =?utf-8?B?SjBZcmFIL1I4eWFERUVVRFN1Zi9wU2xWYW1NdTlUNHlqWHRvZmdoTDc1ejJD?=
 =?utf-8?B?YUFaQzdGcm5RZUc1VktjS3hQWnFTVk43NnNYTk1IM3BrVHNndy9WZ3Z6OXdy?=
 =?utf-8?B?Vk1uelhQZnVQdVU0VUFNc242ZTVjOVlCVmlLUGs5QlRjd2taK3o1Nndkb09Y?=
 =?utf-8?B?UUJUWmhxcFBvYXJCR0ZreGxlMnRIWjBVRHZnb2F4cE12OXhMam1hUXpaOUNX?=
 =?utf-8?B?YlVUV2MzcFRNYk83U1VjaGFaZFEwckpKSjdNSlBJRUM3Q3NZbEhQcW5HaHI4?=
 =?utf-8?B?T1F4QnV0bW9FZmJXTzNZL2taeUNQTkx4UlFhekdaSG54UHZENVB3MnZ3WTds?=
 =?utf-8?B?MmRNYWpnTXRNSnE1a3ptcHhLNlNYbkFwNEZRK3lMM2dVbkY3THZtckZCWXc5?=
 =?utf-8?B?OWd2ZkNGZDRvc0NtemhLL3AvbjJqRG1tSXh0dnNKOGttRVBDeGtIUm55T05n?=
 =?utf-8?B?WmZKdXA3K0Fad1Q3UHZ3dWgrVy9IZ3g2ZjBVbHZPM1hieEFrSkU0ZjBtTmQx?=
 =?utf-8?B?ZUMzVDZMSE9oUUx4UjZRWXVic2pYaWpZYkRjaHFLZTZIYUFVeVRzRDJYclFE?=
 =?utf-8?Q?RFuf1mmQs1YyQY/wyUF1ynHLm?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 04310738-b8cb-47c8-f11d-08dbf4b7cf16
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 10:57:29.5766
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WiFCBcDk0YOiQkFBHIJB3bph9Fl6T+/Ut1ri00MZXGzTU4ED6FCIZpvdKZERMxiAlf0vTFBgM+VUOO+6QFn0Jg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB9838

It is only in the error case that we want to clean up the new pool's
scheduler data; in the success case it's rather the old scheduler's
data which needs cleaning up.

Reported-by: RenÃ© Winther HÃ¸jgaard <renewin@proton.me>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Juergen Gross <jgross@suse.com>

--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -810,7 +810,7 @@ int sched_move_domain(struct domain *d,
     for ( unit = old_units; unit; )
     {
         if ( unit->priv )
-            sched_free_udata(c->sched, unit->priv);
+            sched_free_udata(ret ? c->sched : old_ops, unit->priv);
         old_unit = unit;
         unit = unit->next_in_list;
         xfree(old_unit);


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 10:58:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 10:58:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646810.1009382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6eM-0007eF-Tf; Mon, 04 Dec 2023 10:58:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646810.1009382; Mon, 04 Dec 2023 10:58: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 1rA6eM-0007e5-QX; Mon, 04 Dec 2023 10:58:06 +0000
Received: by outflank-mailman (input) for mailman id 646810;
 Mon, 04 Dec 2023 10:58: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA6eM-00070O-0A
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 10:58:06 +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 ff9c0bc5-9293-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 11:58:04 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c08af319cso14163245e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 02:58:04 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 k3-20020a5d6283000000b0033335cabb9csm7012805wru.28.2023.12.04.02.58.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 02:58:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff9c0bc5-9293-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701687484; x=1702292284; 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=iYi6cbbS90l6J5nSXZFOjrhCVfbmslDt3m8zmXiPtpc=;
        b=pPOaZI5sTtPKF0DIvmgCPCAQZrm8UY7zhzFtvl7nvCD1IU3bXsMy9aRGy+/TxMz0Nl
         tV7bMYyLjP8AyYRh1jDlexqQqBFngbDdlAAL7aVVJF+ketWwXrz2z89KB7XDakRi919y
         QBps4/CN4UuX/aMalUnAyi72FQIbxrKNeD+v4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701687484; x=1702292284;
        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=iYi6cbbS90l6J5nSXZFOjrhCVfbmslDt3m8zmXiPtpc=;
        b=dC6ibK+KZS4eEKqxRSKPb8xbvyYuu089IpZ2lV6tqNKVap27LVbSnOpZdYYABNJna/
         5ieRhnPHGZDjvV4pvyyHOuLNCEMrzZdLq0xmZLp3+Nq1e5iUwx6c4BOm2FwjO5aG0eD7
         lymtD3kxnCo4qVHMtPkWPg20jsOvwnNDGGR1dnVtsyyiWsmkgQfLWVwdLigZVRITv7mo
         tb7LzGJ1vBMvwxG/hbDqZqR3tNTIZ276cW+YpzBsbh0YH5RFh7AMAgcV58ZlSeRpCIUa
         3/uyzgNCTZKx1gGGuG1zaJvLjIkvmcOPqurvWES7TaW+7+oGad8aF7mbxaomeJj/wM+7
         guLw==
X-Gm-Message-State: AOJu0YwtJ30xYq0UtTR7WAqs2yj053r70ImVGS9VJ0qt1h5FuIrfWNQf
	WEhS8G6/DgCUkGr25bsLp+4rzw==
X-Google-Smtp-Source: AGHT+IE+TAFKEGjkK+RJYRELbF18VFrUAhpo7vi9lsZxnaS7j9VVjibOJHsc0djrgl9dQbSIOC38nA==
X-Received: by 2002:a05:600c:4593:b0:40b:4bd3:f8e2 with SMTP id r19-20020a05600c459300b0040b4bd3f8e2mr2395872wmo.22.1701687483631;
        Mon, 04 Dec 2023 02:58:03 -0800 (PST)
Date: Mon, 4 Dec 2023 11:58:02 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Message-ID: <ZW2wuqXW-DneUVi0@macbook>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>

On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> > On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
> > > @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
> > >          bus = PCI_BUS(machine_sbdf);
> > >          devfn = PCI_DEVFN(machine_sbdf);
> > >  
> > > +        if ( needs_vpci(d) && !has_vpci(d) )
> > > +        {
> > > +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
> > > +                   &PCI_SBDF(seg, bus, devfn), d);
> > > +            ret = -EPERM;
> > > +            break;
> > 
> > I think this is likely too restrictive going forward.  The current
> > approach is indeed to enable vPCI on a per-domain basis because that's
> > how PVH dom0 uses it, due to being unable to use ioreq servers.
> > 
> > If we start to expose vPCI suport to guests the interface should be on
> > a per-device basis, so that vPCI could be enabled for some devices,
> > while others could still be handled by ioreq servers.
> > 
> > We might want to add a new flag to xen_domctl_assign_device (used by
> > XEN_DOMCTL_assign_device) in order to signal whether the device will
> > use vPCI.
> 
> Actually I don't think this is a good idea. I am all for flexibility but
> supporting multiple different configurations comes at an extra cost for
> both maintainers and contributors. I think we should try to reduce the
> amount of configurations we support rather than increasing them
> (especially on x86 where we have PV, PVH, HVM).

I think it's perfectly fine to initially require a domain to have all
its devices either passed through using vPCI or ireqs, but the
interface IMO should allow for such differentiation in the future.
That's why I think introducing a domain wide vPCI flag might not be
the best option going forward.

It would be perfectly fine for XEN_DOMCTL_assign_device to set a
domain wide vPCI flag, iow:

if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
{
    if ( has_arch_pdevs(d) )
    {
        printk("All passthrough devices must use the same backend\n");
        return -EINVAL;
    }

    /* Set vPCI domain flag */
}

We have already agreed that we want to aim for a setup where ioreqs
and vPCI could be used for the same domain, but I guess you assumed
that ioreqs would be used for emulated devices exclusively and vPCI
for passthrough devices?

Overall if we agree that ioreqs and vPCI should co-exist for a domain,
I'm not sure there's much reason to limit ioreqs to only handle
emulated devices, seems like an arbitrary limitation.

> I don't think we should enable IOREQ servers to handle PCI passthrough
> for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
> Passthrough can be handled by vPCI just fine. I think this should be a
> good anti-feature to have (a goal to explicitly not add this feature) to
> reduce complexity. Unless you see a specific usecase to add support for
> it?

There are passthrough devices (GPUs) that might require some extra
mediation on dom0 (like the Intel GVT-g thing) that would force the
usage of ioreqs to passthrough.

It's important that the interfaces we introduce are correct IMO,
because that ends up reflecting on the configuration options that we
expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
gets placed there will ultimately influence how the option gets
exposed in xl/libxl, and the interface there is relevant to keep
stable for end user sanity.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:08:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:08:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646817.1009391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6nw-0002FD-PR; Mon, 04 Dec 2023 11:08:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646817.1009391; Mon, 04 Dec 2023 11: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 1rA6nw-0002F6-Ml; Mon, 04 Dec 2023 11:08:00 +0000
Received: by outflank-mailman (input) for mailman id 646817;
 Mon, 04 Dec 2023 11:07:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA6nv-0002Ey-0g
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:07:59 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 618a2a45-9295-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 12:07:58 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c0e7b8a9bso3049585e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 03:07:58 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 fs16-20020a05600c3f9000b0040b48690c49sm14566216wmb.6.2023.12.04.03.07.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 03:07:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 618a2a45-9295-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701688077; x=1702292877; 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=b7lhafCnEiofrBS1RDO84DPiXLdaGcbdNs2AXD0AY3o=;
        b=ZaQJnqGLgZszxTWRaeg8+6tLXf35j+4sbUBpaKnTtfyHOIT+RUoSgCks6t75Kz385t
         /6eJCA4yyaxRfqmupIIlHhJQHJi0Aa8QE7NYwBmh62pk+pF7PAlr+VuWJTCcehLBFzq9
         Ds1qo3lbQKIcbhe0yVaOun3f5j/7xybyAaoKM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701688077; x=1702292877;
        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=b7lhafCnEiofrBS1RDO84DPiXLdaGcbdNs2AXD0AY3o=;
        b=aVBIIGkFfgS0IXzY4wSKTkwo+jiCko6ZvE6UlicbKzsdQurDaoKDBg0ukiVkaDx28z
         SweIPHRMocwkCLibVVtJdgd5Dnk5hAYq9HzwujB5S6aLZJu9ktmjLcff9IdaDQuOujxb
         DzKldIo5tWG9O3QnKdA3m1YI1PobcpqamdGP2/VAyzVOFYKktXoWsplc6pYcM6IHcW/y
         H+UgG+HzuEtS9B3WPjpDg+31uFTX96CDMpeB0g5JPj3t/MUcg9Fbh9eFaWZ1PRURX2Xq
         e0ikRV2R79OvDYwEqyc6quOAjQGiDAWy2sKBydspmLvynEEroL2FEfIkfsKVRvlbaEPx
         LvLg==
X-Gm-Message-State: AOJu0YxWVy4aSBJmdKIIzQ4XdJiYeQw9HqMrtY8k8pqdXJ/3zHrdtcvE
	lR8/idzXHsz1YAUL4uF4YoqMwg==
X-Google-Smtp-Source: AGHT+IHd7JIrdOpgUrcbNrgkxV2XLo/Vnt/E/DjrBrxqsiBvlTrz/cfbeE5+zeYEmczgiCBLvph7QQ==
X-Received: by 2002:a05:600c:181d:b0:40b:5e59:ccdb with SMTP id n29-20020a05600c181d00b0040b5e59ccdbmr2511915wmp.188.1701688077591;
        Mon, 04 Dec 2023 03:07:57 -0800 (PST)
Date: Mon, 4 Dec 2023 12:07:56 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Henry Wang <Henry.Wang@arm.com>, xen-devel@lists.xenproject.org,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Neowutran <xen@neowutran.ovh>
Subject: Re: [PATCH] x86/x2apic: introduce a mixed physical/cluster mode
Message-ID: <ZW2zDPBm8oYi7bjm@macbook>
References: <ZT_LWjKgQxOE9lpj@macbook>
 <ZUqRfgAmzJRImW4O@mattapan.m5p.com>
 <hqj6xjxb7r5lb52biejbzzue2jth3rcth3bouadya4jwarll4l@oswerq2ejbli>
 <ZVgp0wshHg3ZQ/Md@mattapan.m5p.com>
 <81f6bbd5-0487-461a-af1a-dbb6ead47cab@citrix.com>
 <ZV1Rz+FmmyWFHiM9@mattapan.m5p.com>
 <ZV8d2ZiiiBBNySgc@macbook>
 <ZWFKtrBl2kpdvjBC@mattapan.m5p.com>
 <ZWRS5qUTjkoD22MF@macbook>
 <ZW0lDEso5c+GUAQr@mattapan.m5p.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <ZW0lDEso5c+GUAQr@mattapan.m5p.com>

On Sun, Dec 03, 2023 at 05:02:04PM -0800, Elliott Mitchell wrote:
> On Mon, Nov 27, 2023 at 09:27:18AM +0100, Roger Pau Monn
> > On Fri, Nov 24, 2023 at 05:15:34PM -0800, Elliott Mitchell wrote:
> > > On Thu, Nov 23, 2023 at 10:39:37AM +0100, Roger Pau Monn
> > > > On Tue, Nov 21, 2023 at 04:56:47PM -0800, Elliott Mitchell wrote:
> > > > > It was insisted that full logs be sent to xen-devel.  Perhaps I am
> > > > > paranoid, but I doubt I would have been successful at scrubbing all
> > > > > hardware serial numbers.  As such, I was willing to post substantial
> > > > > sections, but not everything.
> > > > 
> > > > Can you please point out which hardware serial numbers are you
> > > > referring to, and where are they printed in Xen dmesg?
> > > 
> > > I didn't confirm the presence of hardware serial numbers getting into
> > > Xen's dmesg, but there was a lot of data and many hexadecimal numbers.
> > > With 4000 lines of output, checking for concerning data is troublesome.
> > 
> > 4000 lines of output from Xen dmesg seems quite suspicious.  Xen dmesg
> > on a fully booted box is ~400 lines on my local box.  That might get
> > quite longer if you have a box with a lot of memory region, or a lot
> > of CPUs.
> 
> That was from 4 boots with differing settings.  Since it was full console
> log, it also had the initial Linux kernel boot messages.  Each log was
> ~1000 lines.

I think this is unfair.  People on the list was willing to go over
your 1000 lines of log in order to help solve your issue, and you
couldn't go over them to assert your claims about it containing
sensitive information?

> > > There was enough for alarms to trigger.
> > 
> > That's fine, but without pointing out which information is sensitive,
> > it's very unlikely such concerns will ever get fixed.
> > 
> > Could you at least go over the log and point out the first instance of
> > such line that you consider contains sensitive information?
> 
> I would have been more comfortable with getting some guidance on which
> portions were desired or which could be left out.  No need for Linux's
> boot messages, what would cut things down by half.

IIRC the specific request was for Xen logs, so yes, you could have
left out the Linux side, at least until asked for.

> memory map, lots more goes.
> 
> It is easier to be comfortable with 40 line sections than 1000 line
> sections.

I don't think that's really feasible, it's unclear how much you would
trim, and whether such trimming could remove important information to
help debug the issue.

Again, it would be very helpful for us to get pointed out at what
sensitive information is being printed, so that it can be removed.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:10:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:10:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646822.1009401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6qS-00043t-6r; Mon, 04 Dec 2023 11:10:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646822.1009401; Mon, 04 Dec 2023 11: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 1rA6qS-00043m-47; Mon, 04 Dec 2023 11:10:36 +0000
Received: by outflank-mailman (input) for mailman id 646822;
 Mon, 04 Dec 2023 11:10:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA6qQ-00043e-Vu
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:10:34 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bdb6c67c-9295-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 12:10:32 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c05ce04a8so19728175e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 03:10:32 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 u2-20020a05600c138200b00405d9a950a2sm18319601wmf.28.2023.12.04.03.10.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 03:10:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bdb6c67c-9295-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701688232; x=1702293032; 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=LXp9vuA+UHz2Z1mCosKBwb/95kOT0cAAWZwkP1FXQWU=;
        b=FvNG341uTpM6p/kgGBUQ1cMjEr2Z7usXgv62AIC7fEyDXjYDQYpFZzDQzjhphvndUN
         h1wDnpZZfPoZvhtqu0avh0DiCIC1P+TUWGa5ykRGa2gK+rysrDFfgcsHJcir79Hijcyf
         t6cL4TQUPr4to5I+YWb3p9seLf63EP6fbnSns=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701688232; x=1702293032;
        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=LXp9vuA+UHz2Z1mCosKBwb/95kOT0cAAWZwkP1FXQWU=;
        b=rwzx9pP4HIPjjpS4KXca4hvFsaQVSOxQigi5GsVt1nVFCOM10TcSR12bFWBDXborJq
         gAoy0E+Vx9hPtrpg5h1ADauEeL571I8/5t3yLnZoJjFffbK5yt1kW5NXq1UwyRfZ1PEe
         2n4csXKHEE2EUsfeNkvNZuuKlmNVpaWUD6tJ/MvDHaG9x+2j6VN1y0AIc/rd8+nRqSL/
         2UVGcHDgS5w5TRIJhjXdUnY2qojKCaXVbXyFdnbN2fqhU3uXfZtdKWmW94wjsWltyupL
         TZXPwXtL9TceBdRaVxG+cGJcJYVvvJzo0pEoFUaSldAoRwvPQyCBhxrMu94dT9YvgSeO
         gWiw==
X-Gm-Message-State: AOJu0YxHlnEecPDYEL/0sT+orZUNMn14ZWIbmaJacwFUE4g8NOaS11ln
	ASbYqmgGXgqx26RMGial3rfYCA==
X-Google-Smtp-Source: AGHT+IGJQYCjlf+ZCCYtgC4eRkJeBcNZkGnHTiFSbuz49gye89s7prlzatO02Y1qDgKGwGU6i2aoOQ==
X-Received: by 2002:a05:600c:491e:b0:40b:5e22:30c with SMTP id f30-20020a05600c491e00b0040b5e22030cmr1280837wmp.120.1701688232205;
        Mon, 04 Dec 2023 03:10:32 -0800 (PST)
Date: Mon, 4 Dec 2023 12:10:31 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>
Subject: Re: [RFC XEN PATCH v2 1/3] xen/vpci: Clear all vpci status of device
Message-ID: <ZW2zp2emocdOn8_o@macbook>
References: <20231124104136.3263722-1-Jiqian.Chen@amd.com>
 <20231124104136.3263722-2-Jiqian.Chen@amd.com>
 <ZWX0U1tYooY70UJo@macbook>
 <BL1PR12MB58493CC28A32E3C9B3A1767FE782A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <14d2dd16-be21-4e9a-97eb-bb477af49e73@apertussolutions.com>
 <930da43f-0395-40cb-a79d-012c4e1acbcb@apertussolutions.com>
 <ZWihrmHpIrI_ccX4@macbook>
 <BL1PR12MB58494BAD4ECCDEB00EACCF9DE786A@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB58494BAD4ECCDEB00EACCF9DE786A@BL1PR12MB5849.namprd12.prod.outlook.com>

On Mon, Dec 04, 2023 at 06:57:03AM +0000, Chen, Jiqian wrote:
> Hi Daniel P. Smith,
> 
> On 2023/11/30 22:52, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 30, 2023 at 07:39:38AM -0500, Daniel P. Smith wrote:
> >> On 11/30/23 07:25, Daniel P. Smith wrote:
> >>> On 11/30/23 01:22, Chen, Jiqian wrote:
> >>>> Hi Roger and Daniel P. Smith,
> >>>>
> >>>> On 2023/11/28 22:08, Roger Pau MonnÃ© wrote:
> >>>>> On Fri, Nov 24, 2023 at 06:41:34PM +0800, 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, this patch add new hypercall to clear
> >>>>>> all vpci device state. And when reset device happens on dom0
> >>>>>> side, dom0 can call this hypercall to notify vpci.
> >>>>>>
> >>>>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >>>>>> Signed-off-by: Huang Rui <ray.huang@amd.com>
> >>>>>> ---
> >>>>>> Â  xen/arch/x86/hvm/hypercall.cÂ  |Â  1 +
> >>>>>> Â  xen/drivers/passthrough/pci.c | 21 +++++++++++++++++++++
> >>>>>> Â  xen/drivers/pci/physdev.cÂ Â Â Â  | 14 ++++++++++++++
> >>>>>> Â  xen/drivers/vpci/vpci.cÂ Â Â Â Â Â  |Â  9 +++++++++
> >>>>>> Â  xen/include/public/physdev.hÂ  |Â  2 ++
> >>>>>> Â  xen/include/xen/pci.hÂ Â Â Â Â Â Â Â  |Â  1 +
> >>>>>> Â  xen/include/xen/vpci.hÂ Â Â Â Â Â Â  |Â  6 ++++++
> >>>>>> Â  7 files changed, 54 insertions(+)
> >>>>>>
> >>>>>> diff --git a/xen/arch/x86/hvm/hypercall.c
> >>>>>> b/xen/arch/x86/hvm/hypercall.c
> >>>>>> index eeb73e1aa5..6ad5b4d5f1 100644
> >>>>>> --- a/xen/arch/x86/hvm/hypercall.c
> >>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
> >>>>>> @@ -84,6 +84,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/passthrough/pci.c
> >>>>>> b/xen/drivers/passthrough/pci.c
> >>>>>> index 04d00c7c37..f871715585 100644
> >>>>>> --- a/xen/drivers/passthrough/pci.c
> >>>>>> +++ b/xen/drivers/passthrough/pci.c
> >>>>>> @@ -824,6 +824,27 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
> >>>>>> Â Â Â Â Â  return ret;
> >>>>>> Â  }
> >>>>>> +int pci_reset_device_state(u16 seg, u8 bus, u8 devfn)
> >>>>>
> >>>>> You could use pci_sbdf_t here instead of 3 parameters.
> >>>> Will change in next version, thank you.
> >>>>
> >>>>>
> >>>>> I'm however unsure whether we really need this helper just to fetch
> >>>>> the pdev and call vpci_reset_device_state(), I think you could place
> >>>>> this logic directly in pci_physdev_op().Â  Unless there are plans to
> >>>>> use such logic outside of pci_physdev_op().
> >>>> If I place the logic of pci_reset_device_state directly in
> >>>> pci_physdev_op. I think I need to declare vpci_reset_device_state in
> >>>> pci.h? If it is suitable, I will change in next version.
> >>>>
> >>>>>
> >>>>>> +{
> >>>>>> +Â Â Â  struct pci_dev *pdev;
> >>>>>> +Â Â Â  int ret = -ENODEV;
> >>>>>
> >>>>> Some XSM check should be introduced fro this operation, as none of the
> >>>>> existing ones is suitable.Â  See xsm_resource_unplug_pci() for example.
> >>>>>
> >>>>> xsm_resource_reset_state_pci() or some such I would assume.
> >>>> I don't know what I should do in XSM function(assume it is
> >>>> xsm_resource_reset_state_pci).
> >>>> Hi Daniel P. Smith, could you please give me some suggestions?
> >>>> Just to check the XSM_PRIV action?
> >>>>
> >>>
> >>> Roger, thank you for seeing this and adding me in!
> >>>
> >>> Jiqian, I just wanted to let you know I have seen your post but I have
> >>> been a little tied up this week. Just with the cursory look, I think
> >>> Roger is suggesting a new XSM check/hook is warranted.
> >>>
> >>> If you would like to attempt at writing the dummy policy side, mimic
> >>> xsm_resource_plug_pci in xen/include/xsm/dummy.h and
> >>> xen/include/xsm/xsm.h, then I can look at handling the FLASK portion
> >>> next week and provide it to you for inclusion into the series. If you
> >>> are not comfortable with it, I can look at the whole thing next week.
> >>> Just let me know what you would be comfortable with.
> >>
> >> Apologies, thinking about for a moment and was thinking the hook should be
> >> called xsm_resource_config_pci. I would reset as a config operation and
> >> there might be new ones in the future. I do not believe there is a need to
> >> have fine grain access control down to individual config operation, thus
> >> they could all be captured under this one hook. Roger, what are your
> >> thoughts about this, in particular how you see vpci evolving?
> > 
> > So the configuration space reset should only be done by the domain
> > that's also capable of triggering the physical device reset, usually
> > the hardware domain.  I don't think it's possible ATM to allow a
> > domain different than the hardware domain to perform a PCI reset, as
> > doing it requires unmediated access to the PCI config space.
> > 
> > So resetting the vPCI state should either be limited to the hardware
> > domain, or to a pci reset capability explicitly
> > (xsm_resource_reset_pci or some such?).  Or maybe
> > xsm_resource_config_pci if that denotes unmediated access to the PCI
> > config space.
> > 
> > Thanks, Roger.
> 
> Is it like below that I need to add for XSM?
> diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
> index e6ffa948f7..7a289ba5d8 100644
> --- a/xen/xsm/dummy.c
> +++ b/xen/xsm/dummy.c
> @@ -91,6 +91,7 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
>      .resource_plug_pci             = xsm_resource_plug_pci,
>      .resource_unplug_pci           = xsm_resource_unplug_pci,
>      .resource_setup_pci            = xsm_resource_setup_pci,
> +    .resource_config_pci            = xsm_resource_config_pci,

Now that I look at it, using the existing xsm_resource_setup_pci might
be enough, no need to introduce a xsm_resource_config_pci.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:12:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:12:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646829.1009412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6sW-0005Ac-J4; Mon, 04 Dec 2023 11:12:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646829.1009412; Mon, 04 Dec 2023 11:12: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 1rA6sW-0005AV-GF; Mon, 04 Dec 2023 11:12:44 +0000
Received: by outflank-mailman (input) for mailman id 646829;
 Mon, 04 Dec 2023 11:12: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA6sU-0005AL-PP
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:12:42 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a030bbf-9296-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 12:12:40 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3334254cfa3so652362f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 03:12:40 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 j10-20020a5d604a000000b003333fd29854sm4955607wrt.45.2023.12.04.03.12.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 03:12:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a030bbf-9296-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701688360; x=1702293160; 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=xcd+lJtiJV0rf/33zhY/14IfMTuerv/klvGcvT9Bn9g=;
        b=M/mJHpXhmuA35NSFTGbrhgbMcu/5Q4Sg25Yl6nJiG12vHexFJ7D2n4XbZzgLDRhPl3
         N1mnKfnAjHH/0xW843pHuW37hM41uBqSlzKYo8WlzGKqiYx6nEyp0bIERVwAmW34YAz9
         HytUoIaNXMd2nZo3gfhLLYV1IwEszBccdrpqo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701688360; x=1702293160;
        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=xcd+lJtiJV0rf/33zhY/14IfMTuerv/klvGcvT9Bn9g=;
        b=XsxeepXxWns4lAP3ftg2gE3DefhyCefigPEl1TapSGw8fjaqySOnRC3LBuQBHnxUPL
         ezDT/eY1kmEok5Hh0fpZyMlE1eR5ABGIEGz5wfbZxwOpLmIRmXRVbrjY98sZiSOekkj4
         Brj57F/KTHL4iKUMVb/1MkUhqdQUm5ClTHQi125Jlzjrt2cqB4+g0hj7LSZdZDdLFRTQ
         3jRCVV4F9ciyWtt+3d+Go4UaaW2bAkSlZFXi+hhgevjx9DJB4RcHxvkJeQhN8Yf1Du2I
         AyIuqSxj9v9F+ZCXNgdEzOveFn0KbIPuFZ4Tzg3b4bbLLfpTL2dG26peh4qZHuHGoPsM
         RzJQ==
X-Gm-Message-State: AOJu0YzperTVMSaCn48wITjrFqj5dy1h+bHXOoYx4GjUB8MhVQzD0Thw
	h9qOlJC8uemDmvzt+1lLRRryZA==
X-Google-Smtp-Source: AGHT+IEGiAO/PNuHEbBC0xubkySMEiFso3hUz212Alw7dFGrZEjXb8f//Bhps4YaMNMNEwJ6c/nqDw==
X-Received: by 2002:adf:e681:0:b0:332:f97e:f560 with SMTP id r1-20020adfe681000000b00332f97ef560mr2514583wrm.30.1701688360191;
        Mon, 04 Dec 2023 03:12:40 -0800 (PST)
Date: Mon, 4 Dec 2023 12:12:39 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>
Subject: Re: [RFC XEN PATCH v2 3/3] tools: Add new function to get gsi from
 irq
Message-ID: <ZW20J5p0jj3dNArE@macbook>
References: <20231124104136.3263722-1-Jiqian.Chen@amd.com>
 <20231124104136.3263722-4-Jiqian.Chen@amd.com>
 <ZWX4R9UEE6oXiqaz@macbook>
 <alpine.DEB.2.22.394.2311291937170.3533093@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2311291956130.3533093@ubuntu-linux-20-04-desktop>
 <ZWheuUjLxShoQ_qn@macbook>
 <alpine.DEB.2.22.394.2311301907370.110490@ubuntu-linux-20-04-desktop>
 <ZWmhRb6Ne4vgplzM@macbook>
 <BL1PR12MB5849CEDE0F018E0DB86D8E2BE786A@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849CEDE0F018E0DB86D8E2BE786A@BL1PR12MB5849.namprd12.prod.outlook.com>

On Mon, Dec 04, 2023 at 05:38:06AM +0000, Chen, Jiqian wrote:
> On 2023/12/1 17:03, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 30, 2023 at 07:09:12PM -0800, Stefano Stabellini wrote:
> >> On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> >>> On Wed, Nov 29, 2023 at 08:02:40PM -0800, Stefano Stabellini wrote:
> >>>> n Wed, 29 Nov 2023, Stefano Stabellini wrote:
> >>>>> On Tue, 28 Nov 2023, Roger Pau MonnÃ© wrote:
> >>>>>> On Fri, Nov 24, 2023 at 06:41:36PM +0800, 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
> >>>>>>> if you debug the kernel codes, you will find the irq
> >>>>>>> number is alloced from small to large, but the applying
> >>>>>>> gsi number is not, may gsi 38 comes before gsi 28, that
> >>>>>>> causes the irq number is not equal with the gsi number.
> >>>>>>> And when we passthrough a device, QEMU will use its gsi
> >>>>>>> number to do mapping actions, see xen_pt_realize->
> >>>>>>> xc_physdev_map_pirq, but the gsi number is got from file
> >>>>>>> /sys/bus/pci/devices/xxxx:xx:xx.x/irq in current code,
> >>>>>>> so it will fail when mapping.
> >>>>>>> And in current codes, there is no method to translate
> >>>>>>> irq to gsi for userspace.
> >>>>>>
> >>>>>> I think it would be cleaner to just introduce a new sysfs node that
> >>>>>> contains the gsi if a device is using one (much like the irq sysfs
> >>>>>> node)?
> >>>>>>
> >>>>>> Such ioctl to translate from IRQ to GSI has nothing to do with Xen, so
> >>>>>> placing it in privcmd does seem quite strange to me.  I understand
> >>>>>> that for passthrough we need the GSI, but such translation layer from
> >>>>>> IRQ to GSI is all Linux internal, and it would be much simpler to just
> >>>>>> expose the GSI in sysfs IMO.
> >>>>>
> >>>>> Maybe something to add to drivers/xen/sys-hypervisor.c in Linux.
> >>>>> Juergen what do you think?
> >>>>
> >>>> Let me also add that privcmd.c is already a Linux specific interface.
> >>>> Although it was born to be a Xen hypercall "proxy" in reality today we
> >>>> have a few privcmd ioctls that don't translate into hypercalls. So I
> >>>> don't think that adding IOCTL_PRIVCMD_GSI_FROM_IRQ would be a problem.
> >>>
> >>> Maybe not all ioctls translate to hypercalls (I guess you are
> >>> referring to the IOCTL_PRIVCMD_RESTRICT ioctl), but they are specific
> >>> Xen actions.  Getting the GSI used by a device has nothing do to with
> >>> Xen.
> >>>
> >>> IMO drivers/xen/sys-hypervisor.c is also not appropriate, but I'm not
> >>> the maintainer of any of those components.
> >>>
> >>> There's nothing Xen specific about fetching the GSI associated with a
> >>> PCI device.  The fact that Xen needs it for passthrough is just a red
> >>> herring, further cases where the GSI is needed might arise outside of
> >>> Xen, and hence such node would better be placed in a generic
> >>> location.  The right location should be /sys/bus/pci/devices/<sbdf>/gsi.
> >>
> >> That might be true but /sys/bus/pci/devices/<sbdf>/gsi is a non-Xen
> >> generic interface and the maintainers of that portion of Linux code
> >> might have a different opinion. We'll have to see.
> > 
> > Right, but before resorting to implement a Xen specific workaround
> > let's attempt to do it the proper way :).
> > 
> > I cannot see why exposing the gsi on sysfs like that would be an
> > issue.  There's a lot of resource information exposed on sysfs
> > already, and it's a trivial node to implement.
> Thanks for both of you' s suggestions. At present, it seems the result of discussion is that it needs to add a gsi sysfs. I will modify it in the next version and then add the corresponding maintainer to the review list.

Thanks, please keep xen-devel on Cc if possible.  Maybe if the
suggested path is not suitable maintainers can recommend another path
where the gsi (or equivalent) node could live.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:13:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:13:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646835.1009422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA6tF-0005se-12; Mon, 04 Dec 2023 11:13:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646835.1009422; Mon, 04 Dec 2023 11:13: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 1rA6tE-0005sX-TJ; Mon, 04 Dec 2023 11:13:28 +0000
Received: by outflank-mailman (input) for mailman id 646835;
 Mon, 04 Dec 2023 11: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=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA6tD-0005Zx-FB
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:13:27 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01on2073.outbound.protection.outlook.com [40.107.13.73])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 259103d8-9296-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 12:13:27 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by AS8PR04MB7895.eurprd04.prod.outlook.com (2603:10a6:20b:2a3::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.22; Mon, 4 Dec
 2023 11:12:57 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 11:12:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 259103d8-9296-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HFKV101nvv+cN/+eIquqcCA/S5kJ6bCunrdYEZLLGMHtMFbXiYF8ccQ01PJpcFmLZQDaQH1w+1bHKsAxsrpRqJd8q+NAhn5zNJhDDAfLXF8JFrfU9AKhj9w4o4wVlITW6fxbEgGV4NbVq9n+OPfuyk0HD11ImhLxXydh+ndlK5J0xWfGHjagqF1IulJcHpQQfqG+N6o9fIDacVznfEL+avTcV5FsEP9KSaSTHgzVtj76dxTs0zKEWogxDxVDskZxCJ0ePwn8FvgqdupoJ3OAE9A5U+7GLenw4wPGsydbIqMgN2cvaZFu90lMoC5a51FKq4DsPqmYeEJvaMWGNHzlHg==
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=wrRvNkjR82XmaQ/0KMbRLr6huECLCNYccX4Bw0YbwN8=;
 b=B8CquYXURSQyVv3+VZGHaEuETrzKwAFs2Mq/HlCMR4C8mi6Xkh7E09O87XHMlsnvAMqCQotRhlPPLzlDVMJRP042eunuPSH1Qq3XEIo+r3hB4ilFHLDGb6T1V1ohuUrSENAoZRcFBs/M3PPc7ticysn/hsUI+BXS9pJih+KK1CDSHpUknD6jG0PcxJkP6q5XLzbFGpw78QBatPMQFrL6kEvJRug0CiMRJkeUQc+Q1006MnZUhzsZQVwH/J3zl/IGCYZmN9SvIJFEbRB2syxDmDTz3z+uoE6rk+i4SvRz33seA80gpWwnXsCffqEvFpLVYXCXBT0f5BwJUQ77qzDLdQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wrRvNkjR82XmaQ/0KMbRLr6huECLCNYccX4Bw0YbwN8=;
 b=T3w1sjlj/pjnTQkrTFQ4ItE1rJl4nDtGhuEOmeYp/DJWrYgNJrQJUeb9+NehpxxFJI4C544skrAI9JdV74dNahEhbTsZq3UWl13dONX2GzN5Xagiq4QwJLwWW7GINPUxgVcOKAwX8O29k1AQmGlp0/DtMbPbq9i+3c21kcHfPeh8EBX9yRBXhW0gkoQ5Uwi2qp1Fj7UX3rX1lv/H+hQhVcprVbMbXqKKjgcewukKOvrdVv9oRz7OMG6fg5w2Z8akpY5ye5foMjhpVEj/rsCMEMmclyLmUR9HMwLv3hE11RqGdrw05PmOqqK65G8DYKgUfLeeOql7OkDidVIvqbH0tA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <03a33b69-b028-4f30-bd26-4e347c2c5c87@suse.com>
Date: Mon, 4 Dec 2023 12:12:58 +0100
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] bump default SeaBIOS version to 1.16.3
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0113.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a3::12) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB7895:EE_
X-MS-Office365-Filtering-Correlation-Id: 3cfe7090-dd29-48b6-f18b-08dbf4b9f817
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OH04o4UGQbquIewFQHPugG7UQ/mJU6MCAWobAC/5MOWRddnd06dWg2gfkuBvX6Q7A/Atwv5Vuih/ztiTpFvAeaiwobW0TBbn0vVjkSbvLeQvGOXFphZQRu7bY0/a53wSQuGnRsqz/l5mq0RrFT1p8jpASt1/dcff7ItwKfYbjH+owDkpHu53ZmTTnmlkw1jo02OtCHveE6lWoCBFVXjX8bqmuguDlqvyauPf+WoYaAi/C7BP4XxA8SYcfnCpy6viUE2avPU6VSZ1PM1OKuu9fvyn9n+/7vbfb6+Ho6W5wRyV06sbTeU4S0RIOoFQXmT6UfLSHDODhdgn03Tki8x9ewyUmLqOcER2RV5VFUxeUPCMbgyOIQb7e095SEfq+kYr1LYkUw8m9OSqEEfdiBI/Rhnp1M1s+7ayWaiId3aG9hV9I6iTJR5K4IrAFqe2iw6WACx0C4+I7rAFVU4ZPixoOkxxQmnbwEpUd2IRH2+/itkKWn4ZFzxfhJW/30yVAl6w87+yf4+seHYJrGBRu7KgyBD2yWTeuHeJQAZ9n8KnGi90FlLxkwGUnJmUEAgBTKdJfdBku+owVVzQhSES5xfVny4hYfJxI+YhTgO/ETgTjEu9yyP7T0ROjaHEqaDz1fa9
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(136003)(366004)(376002)(346002)(39860400002)(230922051799003)(1800799012)(64100799003)(451199024)(186009)(31686004)(36756003)(6506007)(8676002)(2906002)(66476007)(4744005)(2616005)(966005)(6512007)(54906003)(316002)(66556008)(6916009)(66946007)(478600001)(8936002)(41300700001)(26005)(6486002)(4326008)(86362001)(5660300002)(31696002)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VWdia2t2Y2JZZzR4UXp2eFNia2VqRjQ5aGwzbDdCT3IzVnU4NmluZGdHNVRR?=
 =?utf-8?B?TDJvRGhyZFlNY1NDcUhwakpsNFRYMDRlbng2VHNRRkdzelB0Q1hjdzRlYkZt?=
 =?utf-8?B?YnRVenh6ekZaYXkxMXNseU90NTFaMFBwTjcvSGhkS1dXSWhDM05kd3FRNklY?=
 =?utf-8?B?WDdGQ3VETTdSYXMxdUx5cmZSL0p1bTFMQU9ndFp6eGxGN2lxVWsrR0pxaHBp?=
 =?utf-8?B?bW1rdDhYOXFsWjVCcTZCMUtlaFJROHljaDRxSWd0eXkvOWVXQnJUYXFJai9o?=
 =?utf-8?B?V0JFeUJOM2xRbnZDZm9kVkg0ZWxOZS93S1NqQ3ZPS3IxLzY5N1duNmFSWWRw?=
 =?utf-8?B?SFpHZlFnNG03M0VsWUVIMlRWanFJamxhL3l3Z1VPeXBGUTVqY1VtbWFNeThv?=
 =?utf-8?B?eDNGRWcwSGpWWWdCTTNoM2pFV0ZCZk1HWS82eDFGbThzbzlNMzQ2QlNEQzFZ?=
 =?utf-8?B?SUdLK2g2S05rdFNBcTlrNUxqMEZobkJBdGpBZU1yME5XT3M3MWlya0plTWNo?=
 =?utf-8?B?QXZ6ZXBCemdJNUNaVlVPckZnKzB5S21HazlvZ3BaWVlVeFpwdGUySWtVRG9C?=
 =?utf-8?B?enN0ejFxaHJWRUkydEc3SmM2dGM3c29IVzI3MUxNNFdkS2NtN3pEREx0N1RJ?=
 =?utf-8?B?dlBlbHNnbStDZzgwc2IwV0tVRGdselBWNFJIaHZrTDBWMUk5b3VHQXVZajJ0?=
 =?utf-8?B?UUhvanE5am9IK2xqcGloWVMxWjlMWGpJS2pwRTBPWHJoa2Z1c25lclIrVFVh?=
 =?utf-8?B?SVRJQzVCNFAySWp3b1crb09UNWVPTmg1SW9zRklPM29KRGZNQUNJWmtHWFU0?=
 =?utf-8?B?NnNvRUZyakhtZXpEaVdOTEI2SUxhY0I0bTlMUFl1N3NjdStGcVlvZCt5ZXp0?=
 =?utf-8?B?WEg2UDhhQzFoR28rUlBVWCthZGxlSDB6V3RHUGVHSlZQaUVqWE82cDRWU1pR?=
 =?utf-8?B?d3B0dTBOTUJhbk5DL0ltNG00VWZDM0wxa0crRUVrZTVvUXVyZ0tzSXBOaytu?=
 =?utf-8?B?Y04ranFUVXlyOTk2UFpDcnpXWVRTVTZJUW1yNkpnM2pWYkdzK1N1dmM0a1lj?=
 =?utf-8?B?blVOTGczeVR3VFN1SHBtRnFxV1h6WTJ2Sk5xTGhFK2JMM1Q4ZVJaL2U2YkZZ?=
 =?utf-8?B?WERFNjhJaGx1ZkxiOWg3eWFDTUFXbVRwMVZSM29URmdtcnFIU3NFbUoyelRL?=
 =?utf-8?B?Nm1JTC9vTmJOWDRrblYvbWwzMElwaWVsOG43c2lkUEw5dUljbU5oT0x4TDRV?=
 =?utf-8?B?aDJXQ2ZBeU1BaWZhTXdsZk9HUFFHZnNha0dYalRhSXNNVWFXSlcvYS9qMXIw?=
 =?utf-8?B?M1JCcGNOYnZWcGVibU5ENHBjclNVWm1ITFFTY0tHTFMrVmNXUVlycGdPeWov?=
 =?utf-8?B?WjJoV1p6cEtDdTdBQ1A3aUg2aHpOd1I5YWx5ZE1oWjNYUGJoVk51dDlFUUwx?=
 =?utf-8?B?M2NGcXlubGtHZEJ0UTF6ZytydmNjNmxWOEY2QktMUUozRkhJMHlnb29KRFU0?=
 =?utf-8?B?Q0FBR2JJTkFIMGxJbjNtYkRUUFpkK0NDYldtZkgrSFo4UzlRWHNDVEU5TGp0?=
 =?utf-8?B?YkZLTUgyeklTdmNuSkZMMDZOSTBLMzRiU0RxSWZrWFA4TzhOTHcxTW16K1VJ?=
 =?utf-8?B?NXpGZWZFektmM01IZFBGa1lZTTNBM0k2SUg3SEwzVXdUdFpicmdSTVl2T20v?=
 =?utf-8?B?dXQ2RDlFNWwwWTRkVW9DSm5jWkpNdTNvZ1FIWnh2YURFeGhidjBDN3ZTcVdW?=
 =?utf-8?B?c2ZhM0ZqNnFLWHNaaVhSbVlKUWdBRGxtTXM3NzZrcllxblFRcE51aytnRDZ1?=
 =?utf-8?B?d2JmYWZLOTEvY3pNendQaGw1UTN3SGpOYXN0N1RoV0h4cGlUcFhxWjd3ZTBi?=
 =?utf-8?B?bWM1K0F1elJGS1RQRkZKTEVYQ1djdlA4ZlNkZ29GT2FkbVF2ZGtsUHpOVXdk?=
 =?utf-8?B?clBWUTFETVNseURkb0xGa1lGUjVFY3BXUFlqOXZYTEtuYnp1TGFTODVmVGpY?=
 =?utf-8?B?Z05tU1A3eXJPMEhuejhmWUovYTlPd2RCQjJ1alpnQjUyemVMcGdPVnNERDVR?=
 =?utf-8?B?WnNjZVEwSHg0M21hQUlSUE1ZRUN5WTVIMWFzZVIyb2lZbUt1aUYyQTUvQytI?=
 =?utf-8?Q?Ule2NZbOimE7m3RH0OOtoNxrp?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3cfe7090-dd29-48b6-f18b-08dbf4b9f817
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 11:12:57.5765
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lkJVzAM31v/y/5PoNPRhVkNizgdeeUGRJaCmFS5rAuXceTaMqfgAGD4Dw4MNaUBejB0oXkiuVxHK0a14fjwxmw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7895

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

--- a/Config.mk
+++ b/Config.mk
@@ -229,7 +229,7 @@ MINIOS_UPSTREAM_URL ?= https://xenbits.x
 MINIOS_UPSTREAM_REVISION ?= b08019f0b2fbc30c75169a160acb9fd9af5d68f4
 
 SEABIOS_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/seabios.git
-SEABIOS_UPSTREAM_REVISION ?= rel-1.16.2
+SEABIOS_UPSTREAM_REVISION ?= rel-1.16.3
 
 ETHERBOOT_NICS ?= rtl8139 8086100e
 


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:20:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:20:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646841.1009432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA70B-0000t1-NF; Mon, 04 Dec 2023 11:20:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646841.1009432; Mon, 04 Dec 2023 11: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 1rA70B-0000su-KZ; Mon, 04 Dec 2023 11:20:39 +0000
Received: by outflank-mailman (input) for mailman id 646841;
 Mon, 04 Dec 2023 11: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=fUg+=HP=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rA70A-0000sn-NB
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:20:38 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on0608.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::608])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25da2553-9297-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 12:20:37 +0100 (CET)
Received: from AS9PR06CA0178.eurprd06.prod.outlook.com (2603:10a6:20b:45c::10)
 by PAVPR08MB9459.eurprd08.prod.outlook.com (2603:10a6:102:317::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 11:20:34 +0000
Received: from AMS0EPF000001B1.eurprd05.prod.outlook.com
 (2603:10a6:20b:45c:cafe::ac) by AS9PR06CA0178.outlook.office365.com
 (2603:10a6:20b:45c::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Mon, 4 Dec 2023 11:20:34 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF000001B1.mail.protection.outlook.com (10.167.16.165) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 11:20:33 +0000
Received: ("Tessian outbound 7671e7ddc218:v228");
 Mon, 04 Dec 2023 11:20:33 +0000
Received: from 8c26ec8235c4.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 B4328F5B-8DFB-40DC-AB20-9B72A90FCC57.1; 
 Mon, 04 Dec 2023 11:20:27 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8c26ec8235c4.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 04 Dec 2023 11:20:27 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com (2603:10a6:20b:8f::22)
 by PA4PR08MB6029.eurprd08.prod.outlook.com (2603:10a6:102:e7::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 11:20:25 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838]) by AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838%7]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023
 11:20: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: 25da2553-9297-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=TH8uC9U1it20MKjoKHHvYi9QAHSoG9ElgJ3X3QlS7mm1bgOMeq4XGL8XwiUHV+8+RoefvqlXTAkMRVXs2L1xog3R/GUvJgFh/Qy3WQOX7w0lBRMcWLjkssh/2RCatE6rFTswnlOhpkZi9J7Hnd3A3Uf5zYui5fGom2vuzgz8XsAzeuX9iYqqT6JKRNymF4meAhsIrYc7nGCEwDbgdGzWTyneuYL7V6jm/qbgxtRUalJeocEhDvX+jQMp6DypKZSFrsOa6PJT3Eoxdua51EMYpJNk/44mpa+1/8gRJ0pWMYEGcnojXX1tNXcX+iXmMddGFvxndvQ/7923LenGPNcVeA==
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=AKAh+CP7L8sUUdKiWQXAI/d+t9xt+4qqGVTXhh0l9Gs=;
 b=iY/Sh58puz+Eb9H3W1NGvGoGfgDuEBCGlEWmYEnMLGJmzgzvtPeDi43qdw+ObkK/U5gOcbldutkjdaVmkMTpNdHkRRE4Hn+Kyv9sP8NvDPMXDLpQC7XzR6/S29G6MEnY/Ayorb2IaALaqVYT3tcL4uDrC1KnAiisvp/Y2E/d4HHj3B8f+l1uSFpJL/g+8TuC1r0Ji/p+JzBPl1ByqDfnw/GBn8gVQiNfUd2FI6m/L1Abi7ySSqpD4seQMqfyeRVrjeLn5KkUqa1rFLC0GyctpLsmPaRcLfJ2mud3vr7eEXkZc5K9GSUjC5AFOyjWxNOFI0mHbTIZRrw5+cZsZOdvTw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AKAh+CP7L8sUUdKiWQXAI/d+t9xt+4qqGVTXhh0l9Gs=;
 b=pH6UsJ5DIg7zPEcEk6rWrknUlqQFXVlI2w6jkOnhat+IbqgeS6zssVctitvohrQH2kY1z97bgENr24Z8NvannrmKWnr9r7MBtaTjzcMKIJIp/dC2HnIjw+ew2j1uiI9pB4BROcgCGAfbTuAiviqG02ctcccRGkseyeEEmepwZBk=
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=armh.onmicrosoft.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: f0bc67a411945334
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=db7YEtXb7y7MClJtxHG9rhwGWkXxlyvwaizwioe1L0D0VnBV73fcALicH7H8bE/BzdU9fkUmrT3GE8giSMq5+U4F1E61IYUIYgb2Ap3iKHg1oB1+INnpD7kzhXvF15T0ajDoTIv1D/hLpQeHQKGuLIpxJBrmknYXAVmqt8ahC7jVjRH5q4SUQwfd4gdJlJJx24JurRKwBSFE8Aq2j5mW0uSdGZ4cQaU+cjUh9p1E++k5bqEU/DHt4VIgM5IQ5yoYXb1wz81DgyhCv0HP61GLcRulrhOfasQdlIeRWxafuMFhOzKCke3phvNdJ6iKF6GR4NC5OQPPIxzIJjHI1/814w==
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=AKAh+CP7L8sUUdKiWQXAI/d+t9xt+4qqGVTXhh0l9Gs=;
 b=Qtu/93Fwv4U6UwD4yFID7b+aUz/7LTMf6YN1iH7J56kQgCaLXxvfdy1cIW0xJw0Igxht1USMeY0UcPmxjhAjktPGNZgtlXqfIzyv0oLokLMJEDGHxrek947FOCHvv4d2zGJ73HwCXIo12nhDhavCQSOWEab9yjLL+nAbBWbW9BwANAKLHq/K/yLn7I2Sex1pBqjDPsSS2cF93axD2ou7nNZvfsC0XvCm1I1nh0tGM8B4k5Q9y6hHejfEHJ6yuVhLdlYPXavyBeyq2BNqezEmsVnxfyo72lflhOychq7mNUGKLTzKrH2X2qPwefZAfXv77f6hUryjgg0RnFbDL90XXw==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AKAh+CP7L8sUUdKiWQXAI/d+t9xt+4qqGVTXhh0l9Gs=;
 b=pH6UsJ5DIg7zPEcEk6rWrknUlqQFXVlI2w6jkOnhat+IbqgeS6zssVctitvohrQH2kY1z97bgENr24Z8NvannrmKWnr9r7MBtaTjzcMKIJIp/dC2HnIjw+ew2j1uiI9pB4BROcgCGAfbTuAiviqG02ctcccRGkseyeEEmepwZBk=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Julien Grall <julien@xen.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Julien Grall
	<jgrall@amazon.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
Thread-Topic: [PATCH] CODING_STYLE: Add a section of the naming convention
Thread-Index: AQHaJIbmwHP4nuD1ZUiv2fi04v+voLCUxT2AgAQ5aoA=
Date: Mon, 4 Dec 2023 11:20:25 +0000
Message-ID: <956BC72E-0898-490F-9881-226EE7224F94@arm.com>
References: <20231201184728.31766-1-julien@xen.org>
 <0e20592b-9800-4b9d-9f2f-a996f9ac00bd@xen.org>
In-Reply-To: <0e20592b-9800-4b9d-9f2f-a996f9ac00bd@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3749:EE_|PA4PR08MB6029:EE_|AMS0EPF000001B1:EE_|PAVPR08MB9459:EE_
X-MS-Office365-Filtering-Correlation-Id: b69144c7-4a63-41d9-11d0-08dbf4bb085b
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 IDVvXYsuW5XbhFgOov6LZA9rGrGz0ftWvMoHm/8tPGGg/GDEzLspxIQwM6bDOGEvMDLeLbpL6n1COC/OK4vKVwiCl6MH9jTmwbU0sewdWJPJXIQrHe2g8nkynFxVJZU7vYrRIH+mwiM9858YP4MUaOUVBmVVmARbrvJOmFWNf7zI1tUinE+oUNUQMY0C85YjKgn5CGYu95eE5mE9SVuLIba7Xp8UxUvy+k5QKdI4X6ad6FPIF1u0WNxTBSvKKI67u65vnvLGM/EPix+Cb7MWzK8tRUz+pw3TKQswU09cVR9EvzpnZKsr3CQNeaHJYBTE3i0qgKhCJZ6LW8mCxAhBXp7HYeHfVBeAuwZS2AGAaVqMrYgpmATJ3NvjPP48GEEf2sOV83YtBUQ6OfYPtdbKJIz5jTD2MtLu8bB3ehdCGj7ALI3DtGrI0gv3EGehJ7rCl1fGGbKIi8z4JuqTV2L8QukSt7M3JVesuIeS6IWsiqASiSXqlbL/jQIiamA/VHcdV0A517MtS7TQqkDGuS6XiWVQd9Cd4z1WkPhDE51xtYLKjSvbXoxwjA+dTZnGlIcKiYo/TO4Sd2yt9sEl8/AUQojwQlgdkEmrAAyL9Ub0GtC9B8Eyo8/j04Jnk7luamC1fupsiB4cz4qZ0aGczp1g2A==
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:(13230031)(136003)(396003)(346002)(39860400002)(376002)(366004)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(6486002)(36756003)(6512007)(53546011)(6506007)(26005)(2616005)(33656002)(38070700009)(41300700001)(38100700002)(86362001)(122000001)(71200400001)(478600001)(2906002)(91956017)(316002)(66946007)(76116006)(54906003)(66446008)(6916009)(66476007)(66556008)(64756008)(8676002)(4326008)(8936002)(5660300002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <3310F274F19B534DBE287D4B078F769E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6029
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:
 AMS0EPF000001B1.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	28929a04-bff3-410f-99af-08dbf4bb0362
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	7QKL/aE4MxVrDerBdF4YvGBZUjk65O6i7GGzuj6YNtnM7G3akGTLIfWWz9daZLSywMarjpLhwYAYfqm5RKDG9SsIH3dA/7Voc6f07OYw23wZcaF8I0xeZy0p6fE+0I8O/cNvO/c8nxlx5OoaMx4RrjgBTvNkaLsQT3zO9SIMEsXeUuDviufH60KNjsGjXRWxFg1zoyKhAlFj5F9Y5/YeQ5OLBb/ctcrHffzleBdr8TaUPDNkemfD4hT90/T7tfvZiOJsD0Bnj+vE0l9QiKWfrHzBFVRwg1CzjURhHGwUjXX/joMWlnOUBBfMr6ag6srC6jm0epZHvu0g8DZlPXfjxIRquB6T9TGFXPUJcrEazgU8Bygb0oaZjyIzlGZHbsAj/UVRbpGj2ub5pCquVHnJQEyGmL2Dv2rJZpScZAHbBESPTLLv3gS3L4IYGtqMdoOUQtSu3NUehXGuFiOvZ/KVw/gvMKz/FNdpCzDCxK2b2qjvJRb9nIlLdcIKfIQkedv3+7YiRLv7nNiYVtqqnyAdtMP3VQoH1FtC8m6cEt/iK7uMWUiV04Pm/YuURNoTPc7FmDHDHtygsh7d1Is981YmZur+wGcTSxFdObMdqHN+m75cQc/BSAjaJE1oCdaO7oIZu3tOfoemTK9yhSkVQy014P9OJRLKMQqq94RCT4bWqvYztWCZ49+NLJCmbXaX+ckyUxaAAnrvknnA/I5iPm5fDcFUKhzOO01lA7zIwLXU3z3DCcSbVvgR61/wGlf7uREs
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:(13230031)(4636009)(136003)(396003)(39860400002)(346002)(376002)(230922051799003)(64100799003)(451199024)(186009)(82310400011)(1800799012)(36840700001)(40470700004)(46966006)(5660300002)(40460700003)(86362001)(4326008)(6862004)(8676002)(8936002)(2906002)(41300700001)(33656002)(36756003)(2616005)(40480700001)(356005)(6512007)(6506007)(81166007)(53546011)(82740400003)(6486002)(478600001)(26005)(336012)(47076005)(36860700001)(316002)(54906003)(70586007)(70206006);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 11:20:33.8679
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b69144c7-4a63-41d9-11d0-08dbf4bb085b
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:
	AMS0EPF000001B1.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9459

DQoNCj4gT24gMSBEZWMgMjAyMywgYXQgMTg6NDksIEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5v
cmc+IHdyb3RlOg0KPiANCj4gDQo+IA0KPiBPbiAwMS8xMi8yMDIzIDE4OjQ3LCBKdWxpZW4gR3Jh
bGwgd3JvdGU6DQo+PiBGcm9tOiBKdWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24uY29tPg0KPj4g
U2V2ZXJhbCBtYWludGFpbmVycyBoYXZlIGV4cHJlc3NlZCBhIHN0cm9uZ2VyIHByZWZlcmVuY2UN
Cj4+IHRvIHVzZSAnLScgd2hlbiBpbiBmaWxlbmFtZSBhbmQgb3B0aW9uIHRoYXQgY29udGFpbnMg
bXVsdGlwbGUNCj4+IHdvcmRzLg0KPj4gU28gZG9jdW1lbnQgaXQgaW4gQ09ESU5HX1NUWUxFLg0K
Pj4gU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4NCj4+IC0t
LQ0KPj4gIENPRElOR19TVFlMRSB8IDkgKysrKysrKysrDQo+PiAgMSBmaWxlIGNoYW5nZWQsIDkg
aW5zZXJ0aW9ucygrKQ0KPj4gZGlmZiAtLWdpdCBhL0NPRElOR19TVFlMRSBiL0NPRElOR19TVFlM
RQ0KPj4gaW5kZXggY2VkM2FkZTVhNmZiLi5hZmQwOTE3Nzc0NWIgMTAwNjQ0DQo+PiAtLS0gYS9D
T0RJTkdfU1RZTEUNCj4+ICsrKyBiL0NPRElOR19TVFlMRQ0KPj4gQEAgLTE0NCw2ICsxNDQsMTUg
QEAgc2VwYXJhdGUgbGluZXMgYW5kIGVhY2ggbGluZSBzaG91bGQgYmVnaW4gd2l0aCBhIGxlYWRp
bmcgJyonLg0KPj4gICAqIE5vdGUgYmVnaW5uaW5nIGFuZCBlbmQgbWFya2VycyBvbiBzZXBhcmF0
ZSBsaW5lcyBhbmQgbGVhZGluZyAnKicuDQo+PiAgICovDQo+PiAgK05hbWluZyBjb252ZW50aW9u
DQo+PiArLS0tLS0tLS0tLS0tLS0tLS0NCj4+ICsNCj4+ICtXaGVuIGNvbW1hbmQgbGluZSBvcHRp
b24gb3IgZmlsZW5hbWUgY29udGFpbiBtdWx0aXBsZSB3b3JkcywgYSAnLScNCj4+ICtzaG91bGQg
YmUgdG8gc2VwYXJhdGUgdGhlbS4gRS5nLiAndGltZXItd29ya3MnLg0KPj4gKw0KPj4gK05vdGUg
dGhhdCBzb21lIG9mIHRoZSBvcHRpb24gYW5kIGZpbGVuYW1lIGFyZSB1c2luZyAnXycuIFRoaXMg
aXMgbm93DQo+PiArZGVwcmVjYXRlZC4NCj4gDQo+IFVyZ2gsIEkgc2VudCB0aGUgd3JvbmcgZHJh
ZnQgOiguIFRoaXMgaXMgdGhlIHdvcmRpbmcgSSB3YW50ZWQgdG8gcHJvcG9zZToNCj4gDQo+ICtO
YW1pbmcgY29udmVudGlvbg0KPiArLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArJy0nIHNob3Vs
ZCBiZSB1c2VkIHRvIHNlcGFyYXRlIHdvcmRzIGluIGNvbW1hbmRsaW5lIG9wdGlvbnMgYW5kIGZp
bGVuYW1lcy4NCj4gK0UuZy4gdGltZXItd29ya3MuDQo+ICsNCj4gK05vdGUgdGhhdCBzb21lIG9m
IHRoZSBvcHRpb25zIGFuZCBmaWxlbmFtZXMgYXJlIHVzaW5nICdfJy4gVGhpcyBpcyBub3cNCj4g
K2RlcHJlY2F0ZWQuDQo+ICsNCj4gDQoNCkhpIEp1bGllbiwNCg0KQ2FuIHdlIG1ha2UgYW4gZXhj
ZXB0aW9uIGZvciBweXRob24gZmlsZXMgdGhhdCBhcmUgbWVhbnQgdG8gYmUgdXNlZCBhcyBtb2R1
bGU/DQpCZWNhdXNlIG1vZHVsZXMgY29udGFpbmluZyDigJgt4oCYIGNhbm5vdCBiZSBpbXBvcnRl
ZCB1c2luZyDigJhpbXBvcnTigJkga2V5d29yZCBhbmQNCm5lZWRzIGFub3RoZXIgd2F5IHRvIGRv
IHRoZW0gd2hpY2ggaXMgbm90IGNvbnZlbnRpb25hbA0KDQpDaGVlcnMsDQpMdWNhDQoNCg0KPiBD
aGVlcnMsDQo+IA0KPiAtLSANCj4gSnVsaWVuIEdyYWxsDQo+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:31:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:31:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646844.1009441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7AP-0005vh-La; Mon, 04 Dec 2023 11:31:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646844.1009441; Mon, 04 Dec 2023 11:31: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 1rA7AP-0005va-Iz; Mon, 04 Dec 2023 11:31:13 +0000
Received: by outflank-mailman (input) for mailman id 646844;
 Mon, 04 Dec 2023 11:31: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 1rA7AN-0005vU-S3
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:31: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 1rA7AM-0008TB-O5; Mon, 04 Dec 2023 11:31:10 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=[192.168.23.72]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rA7AM-0007ZB-GJ; Mon, 04 Dec 2023 11:31: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=sKeZEULn1zBMx9Gc0uqsKE//ymm9vEyb2hngyXufZkU=; b=uL8d9dqC21w2KhPel3RQHeoUjf
	GmwRjFBBzU9VvzE69+fAXGa0JV1v52zPY5E0lpeTd5aoJ1ObW51ypijNN6ffZQRRvYBswzhyZj+rU
	uSPyxUeQWH8cYNrmKXiVHyDLA7xPY6papOGsKDd75XK3cWBBxGOPKcaF9VnOGGh7ELKY=;
Message-ID: <1038b45c-3427-4d1e-bfed-dbd303b67cd2@xen.org>
Date: Mon, 4 Dec 2023 11:31:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Julien Grall <jgrall@amazon.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231201184728.31766-1-julien@xen.org>
 <0e20592b-9800-4b9d-9f2f-a996f9ac00bd@xen.org>
 <956BC72E-0898-490F-9881-226EE7224F94@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <956BC72E-0898-490F-9881-226EE7224F94@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Luca,

On 04/12/2023 11:20, Luca Fancellu wrote:
> 
> 
>> On 1 Dec 2023, at 18:49, Julien Grall <julien@xen.org> wrote:
>>
>>
>>
>> On 01/12/2023 18:47, Julien Grall wrote:
>>> From: Julien Grall <jgrall@amazon.com>
>>> Several maintainers have expressed a stronger preference
>>> to use '-' when in filename and option that contains multiple
>>> words.
>>> So document it in CODING_STYLE.
>>> Signed-off-by: Julien Grall <jgrall@amazon.com>
>>> ---
>>>   CODING_STYLE | 9 +++++++++
>>>   1 file changed, 9 insertions(+)
>>> diff --git a/CODING_STYLE b/CODING_STYLE
>>> index ced3ade5a6fb..afd09177745b 100644
>>> --- a/CODING_STYLE
>>> +++ b/CODING_STYLE
>>> @@ -144,6 +144,15 @@ separate lines and each line should begin with a leading '*'.
>>>    * Note beginning and end markers on separate lines and leading '*'.
>>>    */
>>>   +Naming convention
>>> +-----------------
>>> +
>>> +When command line option or filename contain multiple words, a '-'
>>> +should be to separate them. E.g. 'timer-works'.
>>> +
>>> +Note that some of the option and filename are using '_'. This is now
>>> +deprecated.
>>
>> Urgh, I sent the wrong draft :(. This is the wording I wanted to propose:
>>
>> +Naming convention
>> +-----------------
>> +
>> +'-' should be used to separate words in commandline options and filenames.
>> +E.g. timer-works.
>> +
>> +Note that some of the options and filenames are using '_'. This is now
>> +deprecated.
>> +
>>
> 
> Hi Julien,
> 
> Can we make an exception for python files that are meant to be used as module?
> Because modules containing â€˜-â€˜ cannot be imported using â€˜importâ€™ keyword and
> needs another way to do them which is not conventional

I am not sure this needs to be written down explicitely. At the top of 
the file we have:

"The Xen coding style described below is the coding style used by the
Xen hypervisor itself (xen/*) as well as various associated low-level
libraries (e.g. tools/libxc/*).

An exception is made for files which are imported from an external
source. In these cases the prevailing coding style of the upstream
source is generally used (commonly the Linux coding style).

Other parts of the code base may use other coding styles, sometimes
explicitly (e.g. tools/libxl/CODING_STYLE) but often implicitly (Linux
coding style is fairly common). In general you should copy the style
of the surrounding code. If you are unsure please ask."

and I would not describe Python as low-level.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:47:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:47:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646853.1009452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7Pm-0001rc-4Z; Mon, 04 Dec 2023 11:47:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646853.1009452; Mon, 04 Dec 2023 11:47:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7Pm-0001rV-1U; Mon, 04 Dec 2023 11:47:06 +0000
Received: by outflank-mailman (input) for mailman id 646853;
 Mon, 04 Dec 2023 11: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=fUg+=HP=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rA7Pk-0001rO-FY
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:47:04 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2052.outbound.protection.outlook.com [40.107.7.52])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6affe86-929a-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 12:47:02 +0100 (CET)
Received: from AM0PR02CA0114.eurprd02.prod.outlook.com (2603:10a6:20b:28c::11)
 by PA4PR08MB5982.eurprd08.prod.outlook.com (2603:10a6:102:eb::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 11:46:28 +0000
Received: from AM3PEPF0000A793.eurprd04.prod.outlook.com
 (2603:10a6:20b:28c:cafe::d9) by AM0PR02CA0114.outlook.office365.com
 (2603:10a6:20b:28c::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Mon, 4 Dec 2023 11:46:28 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM3PEPF0000A793.mail.protection.outlook.com (10.167.16.122) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 11:46:27 +0000
Received: ("Tessian outbound 8289ea11ec17:v228");
 Mon, 04 Dec 2023 11:46:27 +0000
Received: from 3b362c5b53d8.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 83884EE7-84B2-4ACB-B0EB-6EDEB37B5F2E.1; 
 Mon, 04 Dec 2023 11:46:21 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 3b362c5b53d8.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 04 Dec 2023 11:46:21 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com (2603:10a6:20b:8f::22)
 by DB4PR08MB8198.eurprd08.prod.outlook.com (2603:10a6:10:382::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 11:46:19 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838]) by AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838%7]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023
 11:46:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6affe86-929a-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=ISfpEJ/F75lkpHwHno327eWarUpCXlAD7458PCGbQPLFAgFR/dkblm10U+flK6vu+DVgqVz9+rPgFdZCPzTqm9AOyXyv+pVfpBi2eP/JaAx/Lk8DLydT9o+kJRRZX2YM/w+tpk52jyal3XKhXEo7BwFcPf0o5fa8SY8G8LoaS9Jg3A0v9YRoUo9/iwPHzuAtXNwGNOf4hLcfDVS0A0bomgy1WPKZl4y9lDZSUV/dZftHUzvP9n+nQSQlfbeHlEXkcf36OEmWdOTVKOOGuwGNarrISay5BzPvr6drfuLgLvJgIOkhrgJA5/mnljuQHQlxyvo4kS6x2Vb9HDQ7twm2yw==
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=SH786Qtaz73U3Uy/0RWfSRhyfkNXha2QcuCH9A5W2ho=;
 b=b7z6+88Yy61KclfbWYJ4mqIfxDlJZn3Z3Y0TMd+17x3Xd6ISP/JA70xJ0cinORkz5nj2Je0HkMGJKtzS9Dz8P/3aJH+zgJ18G4E/qw93sZWUHCPGGEb1HZ9EQho2pHVKEhrN6H8Lu4ck4tLXB1P8Pmjj7NQLfeWqGm10f8x6grr7QquPGQI2yCQuSF/ZJnT2qOU7bz0Knk/eDXRJmUmgXuTk74eAsxwJURfTMaiT8jupfIcnbb1Jq7Yf8ejERjTpiS+jLzG+/4uqbKr2xavA97kcFo1OuJHOT8867lcnXDaoCoAbwo9GD9nALTSzaZMwSos06TK2V0LUVlgZo7//Fw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SH786Qtaz73U3Uy/0RWfSRhyfkNXha2QcuCH9A5W2ho=;
 b=5gNvyHBlM5vBoibPYoxtEhYrGx43yphFs+J0X2O51AI7zGk2W2Y++AFUMJ7vLOBErPbTMhSRFLGrBVdoAkx1Q6YN4hL8ZAah3Rft/aO0DB1j2dPf1uBiGw1qBMBZZFmKeekavr6tEi11urQYoQljXf7u3XXSiX6zGM32kR8uHvw=
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=armh.onmicrosoft.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: 1714de045a2a82d1
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PoOn4PnyZxnw4tSjvjs7rKvXtO+rN2ugIdLkn60MtTZxEP9gOwdVJ05wI5yxq8r2/ZipDYbnyHnbIyna0UtaTohLzwYVoJ8QaF6/eS8xJAU6FJo2BkgmpsWqmNZfA5aqdwkuwyJivaKUb08+sdbrtDuB05gH5Nj+fGjzZE4L76Dm74nlbtmxlzSdE4lUVcfcQH1N99koW6A9R22aMBok0SwE/Uc+4nC+J1f0uyI6wdpL4DtAm6J9ATXn98S+ZETdbvRixUYXMkrWDPFRWbEEXHIvEgI9kM2dkKKq4C2/LRBrwJjLC9tOvDXigTnFTqBg6yqna1aZ8pexAp2wTL7x4w==
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=SH786Qtaz73U3Uy/0RWfSRhyfkNXha2QcuCH9A5W2ho=;
 b=HvjjlyKfoPSdJffDu6ujHHjjfySj+V6AlMGzP4EPtXT+bOUPYks2DPE2/BdYffJDQPdX2+ASP5je6coAeJN9E6DKLAHkLyuuy4F0WxTUluqtvPE3mvg9blHvZAAAZhZs2tT/9Ukfr/10Xter71ZhyUffTWC+Emn6sHtseyRmiuJxOuZ0p1IFeSXowLNCxq8Gvb974tFkYkSqx5i1XjpLIgwKvhKXpRXiymr+5t/1Qo0uMSAl76KKYRWwCxTPBn1cZSDRxZRxtwQ8mMlDZI+nkUiAuPpeBlObu3oqYhbnlTDh1KFyCXxcYqb/jLSIL71kmkotV9gIa1Rkv8g91+p3uA==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SH786Qtaz73U3Uy/0RWfSRhyfkNXha2QcuCH9A5W2ho=;
 b=5gNvyHBlM5vBoibPYoxtEhYrGx43yphFs+J0X2O51AI7zGk2W2Y++AFUMJ7vLOBErPbTMhSRFLGrBVdoAkx1Q6YN4hL8ZAah3Rft/aO0DB1j2dPf1uBiGw1qBMBZZFmKeekavr6tEi11urQYoQljXf7u3XXSiX6zGM32kR8uHvw=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Julien Grall <julien@xen.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Julien Grall
	<jgrall@amazon.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
Thread-Topic: [PATCH] CODING_STYLE: Add a section of the naming convention
Thread-Index: AQHaJIbmwHP4nuD1ZUiv2fi04v+voLCUxT2AgAQ5aoCAAAMKAIAABDEA
Date: Mon, 4 Dec 2023 11:46:19 +0000
Message-ID: <235A77D3-932D-4D31-8AC1-267B3C734DEE@arm.com>
References: <20231201184728.31766-1-julien@xen.org>
 <0e20592b-9800-4b9d-9f2f-a996f9ac00bd@xen.org>
 <956BC72E-0898-490F-9881-226EE7224F94@arm.com>
 <1038b45c-3427-4d1e-bfed-dbd303b67cd2@xen.org>
In-Reply-To: <1038b45c-3427-4d1e-bfed-dbd303b67cd2@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3749:EE_|DB4PR08MB8198:EE_|AM3PEPF0000A793:EE_|PA4PR08MB5982:EE_
X-MS-Office365-Filtering-Correlation-Id: 2e5d4546-4a5e-447f-810f-08dbf4bea679
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 1IoGpLke5Tlj7Yx7NyzaTCjTZ/1DFDYjh+sODRr1p/vLVpCQllM4Kok0UvKKyOHPyFZFG91fFIM7IMbNcdHvBe7/3o8IocgIehO22DLuSVQmusWLCWa5+mhc5uWsgfBBjACTB49wOtkk/9Zlfs6LK1iHXKiF+CnJc3o17geXoCWKKVRNa40GTOc/H3Oo5TOgCQZSaQYhsv858mOnJSE9sRn2b8pk5RyqT+cJLZEMvHpaP46dcxonwNP5uyYb1UKpf7BU5nxcPvb9kyx/p4Fr/mvAb/664BBnb+cvgAVS6X1FkGU6Q0G6QDJxIEMIAekUl3YIwVVkYOWV7ojUrdRJ8spcVRMfUYipqAYI11eAMzGPIwhD4UZIJZS9OyNzo/bqbaGVPg72a51i/lDKdtNvLpDEY8KbWvZnWO8ATLGHZ0FpQnDfhoGZIvPP85zbfWiGO+cfkhTmgiTTCvWpypt95Rp9Q+zFpGeMjkTS3wwaP1z1xdFQAKbA2WwSA0Pzn9kazono6pB2GbDJYIOITi736WYDCrmQN7Jkd/a6zQAbPOMCvEliPNkrhNiw849Q/3K4p/rQD8JEa21f9FQlFVBz0ZqxcnvCVFT1SRnc8ifjXyrql4gQoSh58Cb0OPw/1d4cGAd0FFqY69bzn03/ve/OXvqKys5tcUzLMnfQCJS/f2RbQOylTjCJrcisi7p+ladH
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:(13230031)(346002)(376002)(396003)(136003)(39850400004)(366004)(230173577357003)(230922051799003)(230273577357003)(64100799003)(1800799012)(186009)(451199024)(2616005)(122000001)(4326008)(8676002)(8936002)(6512007)(6506007)(53546011)(26005)(6486002)(71200400001)(478600001)(91956017)(66476007)(76116006)(66446008)(64756008)(66946007)(66556008)(54906003)(316002)(6916009)(33656002)(2906002)(36756003)(41300700001)(38100700002)(38070700009)(86362001)(5660300002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <4BDF663FA78DAA4B8543BFB59DC7DFB1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB8198
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:
 AM3PEPF0000A793.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	55dd8077-2117-4c6c-3431-08dbf4bea184
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JEp7J2apbEp7cKW/pekgdKTqo0nesG768tV2PEnw3lCuh3VU6B5zPdxzHJlrkn33PP+7FykCaGjTe9lApiW+TmbdVayu+9aLdWkE/CU4AOFTcbhMWFW6gqe/3JYcL8U+F3U3RLzimuLFfnp2nyZwUmAuS2cLIro68fwcY4w3PxpAQiBAdvmQR700JtOSobB+eHYoepARlMxBhrZpo7XJFxndQMrz7pMkM71dpMj5PuLhO5d2gUYRYUDj0a0g7v2rLsKWeN0aUmHMDa3NSA0F4ERqMvDYqlAaLTBIIhCI4D9RyFwU2NNaeI510DQSBhNgj/z+uOcLGavUpwHvUdhIpO7I88X4bstoYW47nzBWLKSH4U0k57oE1au7JctEPcn/QzCpCQgPiweTpwJ7lbfkCD5kUkvXN8X7M3fe9waQpMkjT33YQ+hReG8d6OV3UzB3xLEZQLe9wxhAi21XzO0qV0awxJ+by8IpjnKt5Ddpcar7ob87qHjULcDe5nAjH+6gDEG4w9ztYs7wnWj2BAie5S9xtlhbbm7pUYwfb0/Gt3+7OeQWIbq84uKb0M08bCb69Tj6XwrOgpIT7WiSsV4S6yMG85+u7UIZqhJ98lKprdT2B4j7NNd3Klr/MC7EkqELogIcW2gBeyqiVK3pWfF9X7Eakt7sXvJr2hacKBLBv93gCXr5r/gqJAmBvdBxVb+buOUqHImKc7mViuAdO3AhRyAJOxrcJulsEdtLf1ISvxbSmZD5c6RWxOrfpkevnwmN915z+pYNr7k1iYTwYeTPBRk0U32OqkncN877wrw0JDY=
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:(13230031)(4636009)(346002)(39860400002)(396003)(376002)(136003)(230173577357003)(230922051799003)(230273577357003)(451199024)(1800799012)(64100799003)(186009)(82310400011)(36840700001)(46966006)(40470700004)(47076005)(81166007)(356005)(82740400003)(40480700001)(26005)(336012)(2616005)(6506007)(53546011)(6512007)(36860700001)(478600001)(6486002)(40460700003)(70206006)(70586007)(54906003)(316002)(8936002)(8676002)(6862004)(4326008)(33656002)(2906002)(41300700001)(36756003)(86362001)(5660300002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 11:46:27.6376
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e5d4546-4a5e-447f-810f-08dbf4bea679
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:
	AM3PEPF0000A793.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5982

DQoNCj4gT24gNCBEZWMgMjAyMywgYXQgMTE6MzEsIEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5v
cmc+IHdyb3RlOg0KPiANCj4gSGkgTHVjYSwNCj4gDQo+IE9uIDA0LzEyLzIwMjMgMTE6MjAsIEx1
Y2EgRmFuY2VsbHUgd3JvdGU6DQo+Pj4gT24gMSBEZWMgMjAyMywgYXQgMTg6NDksIEp1bGllbiBH
cmFsbCA8anVsaWVuQHhlbi5vcmc+IHdyb3RlOg0KPj4+IA0KPj4+IA0KPj4+IA0KPj4+IE9uIDAx
LzEyLzIwMjMgMTg6NDcsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+Pj4gRnJvbTogSnVsaWVuIEdy
YWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4NCj4+Pj4gU2V2ZXJhbCBtYWludGFpbmVycyBoYXZlIGV4
cHJlc3NlZCBhIHN0cm9uZ2VyIHByZWZlcmVuY2UNCj4+Pj4gdG8gdXNlICctJyB3aGVuIGluIGZp
bGVuYW1lIGFuZCBvcHRpb24gdGhhdCBjb250YWlucyBtdWx0aXBsZQ0KPj4+PiB3b3Jkcy4NCj4+
Pj4gU28gZG9jdW1lbnQgaXQgaW4gQ09ESU5HX1NUWUxFLg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBK
dWxpZW4gR3JhbGwgPGpncmFsbEBhbWF6b24uY29tPg0KPj4+PiAtLS0NCj4+Pj4gIENPRElOR19T
VFlMRSB8IDkgKysrKysrKysrDQo+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCsp
DQo+Pj4+IGRpZmYgLS1naXQgYS9DT0RJTkdfU1RZTEUgYi9DT0RJTkdfU1RZTEUNCj4+Pj4gaW5k
ZXggY2VkM2FkZTVhNmZiLi5hZmQwOTE3Nzc0NWIgMTAwNjQ0DQo+Pj4+IC0tLSBhL0NPRElOR19T
VFlMRQ0KPj4+PiArKysgYi9DT0RJTkdfU1RZTEUNCj4+Pj4gQEAgLTE0NCw2ICsxNDQsMTUgQEAg
c2VwYXJhdGUgbGluZXMgYW5kIGVhY2ggbGluZSBzaG91bGQgYmVnaW4gd2l0aCBhIGxlYWRpbmcg
JyonLg0KPj4+PiAgICogTm90ZSBiZWdpbm5pbmcgYW5kIGVuZCBtYXJrZXJzIG9uIHNlcGFyYXRl
IGxpbmVzIGFuZCBsZWFkaW5nICcqJy4NCj4+Pj4gICAqLw0KPj4+PiAgK05hbWluZyBjb252ZW50
aW9uDQo+Pj4+ICstLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiArDQo+Pj4+ICtXaGVuIGNvbW1hbmQg
bGluZSBvcHRpb24gb3IgZmlsZW5hbWUgY29udGFpbiBtdWx0aXBsZSB3b3JkcywgYSAnLScNCj4+
Pj4gK3Nob3VsZCBiZSB0byBzZXBhcmF0ZSB0aGVtLiBFLmcuICd0aW1lci13b3JrcycuDQo+Pj4+
ICsNCj4+Pj4gK05vdGUgdGhhdCBzb21lIG9mIHRoZSBvcHRpb24gYW5kIGZpbGVuYW1lIGFyZSB1
c2luZyAnXycuIFRoaXMgaXMgbm93DQo+Pj4+ICtkZXByZWNhdGVkLg0KPj4+IA0KPj4+IFVyZ2gs
IEkgc2VudCB0aGUgd3JvbmcgZHJhZnQgOiguIFRoaXMgaXMgdGhlIHdvcmRpbmcgSSB3YW50ZWQg
dG8gcHJvcG9zZToNCj4+PiANCj4+PiArTmFtaW5nIGNvbnZlbnRpb24NCj4+PiArLS0tLS0tLS0t
LS0tLS0tLS0NCj4+PiArDQo+Pj4gKyctJyBzaG91bGQgYmUgdXNlZCB0byBzZXBhcmF0ZSB3b3Jk
cyBpbiBjb21tYW5kbGluZSBvcHRpb25zIGFuZCBmaWxlbmFtZXMuDQo+Pj4gK0UuZy4gdGltZXIt
d29ya3MuDQo+Pj4gKw0KPj4+ICtOb3RlIHRoYXQgc29tZSBvZiB0aGUgb3B0aW9ucyBhbmQgZmls
ZW5hbWVzIGFyZSB1c2luZyAnXycuIFRoaXMgaXMgbm93DQo+Pj4gK2RlcHJlY2F0ZWQuDQo+Pj4g
Kw0KPj4+IA0KPj4gSGkgSnVsaWVuLA0KPj4gQ2FuIHdlIG1ha2UgYW4gZXhjZXB0aW9uIGZvciBw
eXRob24gZmlsZXMgdGhhdCBhcmUgbWVhbnQgdG8gYmUgdXNlZCBhcyBtb2R1bGU/DQo+PiBCZWNh
dXNlIG1vZHVsZXMgY29udGFpbmluZyDigJgt4oCYIGNhbm5vdCBiZSBpbXBvcnRlZCB1c2luZyDi
gJhpbXBvcnTigJkga2V5d29yZCBhbmQNCj4+IG5lZWRzIGFub3RoZXIgd2F5IHRvIGRvIHRoZW0g
d2hpY2ggaXMgbm90IGNvbnZlbnRpb25hbA0KPiANCj4gSSBhbSBub3Qgc3VyZSB0aGlzIG5lZWRz
IHRvIGJlIHdyaXR0ZW4gZG93biBleHBsaWNpdGVseS4gQXQgdGhlIHRvcCBvZiB0aGUgZmlsZSB3
ZSBoYXZlOg0KPiANCj4gIlRoZSBYZW4gY29kaW5nIHN0eWxlIGRlc2NyaWJlZCBiZWxvdyBpcyB0
aGUgY29kaW5nIHN0eWxlIHVzZWQgYnkgdGhlDQo+IFhlbiBoeXBlcnZpc29yIGl0c2VsZiAoeGVu
LyopIGFzIHdlbGwgYXMgdmFyaW91cyBhc3NvY2lhdGVkIGxvdy1sZXZlbA0KPiBsaWJyYXJpZXMg
KGUuZy4gdG9vbHMvbGlieGMvKikuDQo+IA0KPiBBbiBleGNlcHRpb24gaXMgbWFkZSBmb3IgZmls
ZXMgd2hpY2ggYXJlIGltcG9ydGVkIGZyb20gYW4gZXh0ZXJuYWwNCj4gc291cmNlLiBJbiB0aGVz
ZSBjYXNlcyB0aGUgcHJldmFpbGluZyBjb2Rpbmcgc3R5bGUgb2YgdGhlIHVwc3RyZWFtDQo+IHNv
dXJjZSBpcyBnZW5lcmFsbHkgdXNlZCAoY29tbW9ubHkgdGhlIExpbnV4IGNvZGluZyBzdHlsZSku
DQo+IA0KPiBPdGhlciBwYXJ0cyBvZiB0aGUgY29kZSBiYXNlIG1heSB1c2Ugb3RoZXIgY29kaW5n
IHN0eWxlcywgc29tZXRpbWVzDQo+IGV4cGxpY2l0bHkgKGUuZy4gdG9vbHMvbGlieGwvQ09ESU5H
X1NUWUxFKSBidXQgb2Z0ZW4gaW1wbGljaXRseSAoTGludXgNCj4gY29kaW5nIHN0eWxlIGlzIGZh
aXJseSBjb21tb24pLiBJbiBnZW5lcmFsIHlvdSBzaG91bGQgY29weSB0aGUgc3R5bGUNCj4gb2Yg
dGhlIHN1cnJvdW5kaW5nIGNvZGUuIElmIHlvdSBhcmUgdW5zdXJlIHBsZWFzZSBhc2suIg0KPiAN
Cj4gYW5kIEkgd291bGQgbm90IGRlc2NyaWJlIFB5dGhvbiBhcyBsb3ctbGV2ZWwuDQoNCk9rIG1h
a2VzIHNlbnNlIHRvIG1lISBUaGFua3MNCg0KDQo+IA0KPiBDaGVlcnMsDQo+IA0KPiAtLSANCj4g
SnVsaWVuIEdyYWxsDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:48:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:48:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646855.1009462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7Ql-0002jG-F7; Mon, 04 Dec 2023 11:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646855.1009462; Mon, 04 Dec 2023 11: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 1rA7Ql-0002j9-Bx; Mon, 04 Dec 2023 11:48:07 +0000
Received: by outflank-mailman (input) for mailman id 646855;
 Mon, 04 Dec 2023 11:48:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA7Qk-0002iQ-Sl
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:48:06 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2060a.outbound.protection.outlook.com
 [2a01:111:f400:7d00::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc04477d-929a-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 12:48:04 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by PA4PR04MB7662.eurprd04.prod.outlook.com (2603:10a6:102:f2::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 11:48:02 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 11:48:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc04477d-929a-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KPBM2hTPPcak+EYZbP6Lz9u+9KORHuvriT9Wl5yrdDhT3VGnPXzXWIay7SxazEwBakCY6R01nAl/cRfSYUljRROD/oH7F5Y/dXBi9kZTe+vg6g+NS6PDuGlYq1+HTUx6G/hjpasMpQ2Azx9YHIDDGaZm+hxV2ky2590IWkTaePIG26u8KaYtG5SnEp22xqP1xwGu1Pi4eAZ+pokjJFuUNBKj6AU0198fe/sm9C70ag4ZVytsHrlotCuUAtq+oJicjRAsPAIbY4vBRMlJ7kkvN0fwmgjNFx9R+1pKnRMG0vBmJ8kM9aZ9rMW+lCrZbxq5rWeLXzN0Et2SLLXhWUgK2g==
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=89WWsp8GQ5LJ3HEfd2KLi92uehiqhGoaVjmefjc/7LA=;
 b=BFIJhpW5cKEhLJJzoAC2r0Gc9LVI0Xwjejzk2mBARVgLrZdd83n/DWrx4gWEVIIUjmARr4JlOFqVEHupw+QFop2ZQfb2Qbb18YnvTSLDoPFDDVHfpNTiKlyrfjFxOziyGvF6S4V6sA8J9AUYsluHYs819VYmbfFiLijXadaTVl4S/5S/wLeIpWVSw0BOL73DBDtjgjlUWa3azreuG5N9+ZGw/mvxtudrAMnihLbEUTqEOe9hA0IKlYcSU9GNkv7Hv5sP3rsWMdwjGucUKO+FluuGcO06vOoWSF5jtnoUpTA40uYZz6va7u1AnEvOg1n5Vrj/2RcY44J/nA7NnzR3OA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=89WWsp8GQ5LJ3HEfd2KLi92uehiqhGoaVjmefjc/7LA=;
 b=ng29YIT65Pfw/VCp7lQGNKf0Yvsv7UQxZXnPshHAyv5c4wqjPrmw2M1iM0cF3vwhz08udxN7e5fyI6T3Q7UKVpmqB2XAkJ90eyJL79r9P8CImfbP/H6xP09Ava4vCbhcaLeFX106gRmSRfTxk5hvgOWK/Ao0Xs+9JravRYXXmr5DzqSFWtAwWKpQQSKypyfLl2TJ4vDzlCqrgRjK/t96N+ciw2Z0v1zVz0IHNhBpJrxUrUL3HHytP5IDEOtmuOD23KesVNZf4U0sEgyfeFplPHwpceRm/xHwf/mR5hlvruWORJqboFQPThUN7nqP2ceSgVMIB8et54lw1xvLm7Sj3g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <11674268-4da3-4f20-909c-43b94bdfad2e@suse.com>
Date: Mon, 4 Dec 2023 12:48:00 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/2] xen/vpci: header: filter PCI capabilities
Content-Language: en-US
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: 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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20231201154552.3066321-1-stewart.hildebrand@amd.com>
 <20231201154552.3066321-3-stewart.hildebrand@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: <20231201154552.3066321-3-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0191.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:ab::14) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB7662:EE_
X-MS-Office365-Filtering-Correlation-Id: b00e79cb-b8ab-431f-e857-08dbf4bededa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Sw1oi5bBAZTrjAdrZLtn6nvKzQV6Dgnu0NoF1LRbvrDnnI1xTPMgS0WbGqsQMbp03QZ10G8oheI996iJpT/H05W6s4lbeoyk/N1SLM2G/ZakxpLYLYADgMipb1wZ2TXSeukQv/GJ5GDPexe/j7Ajth0ycO3EXIEQtVQ6MSDlvhNePSTBUrN3i0vHK8N/BW3ddBrIX67JcnivQE2C7B3IaQKzEtlPWjs9ToefGz3ent/1DqaGkPb+z2nbgXKaptXRgWzTsALrVU+vMNzd8NH3TByYCL+ifI9utNc5JEti7cLg8Av2Zr4TyPtu6m/NDlNC4k7A0LaxJatRhxTVkb3m9EMQa9UOrrbZUP3l8SZY1AboPPI8MKI4AycRnc4UKH+wHEi4EV2GeqjP2tRYfxGJLCIwTFnjQgMd4HyC+r60hFZ9MnK9LHYHJf8YJo/HPKhY+N2j0Quu3I1PTVgT4yqxqtP/X38S7q2v3H6/1PZJ0JRCyYO0fz8ifPVYxLk8ruzLx58M24a/plQ2nfcmdKdmNKjLSkTC7q9WeITGgnhCKjFgCiNrkFVsJ2HEcVkBa/u7gN4lHWQ/jplMDDY9c9U6hmgJ6Hu53C55+/og3oLLCT4WvTNTQoosRPqh9ywozDjIU5SruGP2Eox6qV4hsBERhQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(376002)(366004)(136003)(396003)(346002)(230922051799003)(64100799003)(186009)(1800799012)(451199024)(26005)(66946007)(66476007)(66556008)(54906003)(6916009)(316002)(31696002)(36756003)(41300700001)(6512007)(53546011)(31686004)(2616005)(38100700002)(2906002)(6506007)(478600001)(4744005)(6486002)(8676002)(8936002)(4326008)(86362001)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZGo0K2RQZC90ellKbVBsZUpNSmZxdVl3MVFSNjlPc1dSb2taUWR6YURDamE1?=
 =?utf-8?B?N1RqMjJKUEZlVlNjeUc2d0hMS2M3UGUvZGpMMWFZQldHVDFvRzRzSVZEMFBD?=
 =?utf-8?B?cDFKbWs5ZGJUU3JuZUlONkt4UmN6RnFHN0pBM1E2UnZHeTNwTEZGMnR6QXBz?=
 =?utf-8?B?cDdNaGFiQXlCYlNrOVVBdlY4K01Pck40Ujg2M0VQeFc3Ny9EUkdPeHU5cE5i?=
 =?utf-8?B?RmFwL2dmejJqVUo4TENiUHpFbE4remI2TkRjejFFdEJaV0s1azZjV0RybEhi?=
 =?utf-8?B?bHcxY2hIakJuNWtjV2UzcDdpbk15OGtsN2dacWJoaEJpeFF4bktiNXFGMnY2?=
 =?utf-8?B?WDRMMzdhUmVPM0FKaVVydVBTNU4yVHMwQnkxaldjV3FSdEZ2OENnZHdJb1JR?=
 =?utf-8?B?b3E2cDkrZVFHaERrYWxKdFVqViswczdNeDVNVksyVTZyTkdSMk8rM3ZEc0lm?=
 =?utf-8?B?R0NSTDlIY2F5T05pK3BZcjJLczMwSGtpUVd4MnlNd2U1bWZoZnpVWU9OaFhU?=
 =?utf-8?B?RzZHQUNPdlFFaXRlSDdoazdiZ1J5eWpjTVgxYjVwUHZKNVpTS3I0N2RpQS9r?=
 =?utf-8?B?bGFHWGs1c1ZlOUo0bU1aYXJ0cG1kMnJvdTd0L0RKSVdjVlFoNXlFSXY4VFR4?=
 =?utf-8?B?SlB3RVhlekpGQUFuSXNWT2ZvK2NYdVNlRU43MTdnL2JyMkVlV1gwazhGY0Vz?=
 =?utf-8?B?akNDOGFJaHV6UkhPQks2L0RybW5yS1NqeFR0dU96ZG1XQmZKQysvYXlHTzRK?=
 =?utf-8?B?TXBoRnRNR1FQRllTcTBlaEwrcUpacXFyYnZ6cW96UVRaSXBpN3Bta2ExSThy?=
 =?utf-8?B?UlFhR2tPOUY3MTk3R3ZPa0ZwdlFIRVBRcUhoTDdmdURySFhJbk5uMlV1bjY5?=
 =?utf-8?B?Z05lSElKT1RpMHJSd3BwMngvTnFBc2p6dzROUWhpZWJXZTJCZThnb3YwUlNC?=
 =?utf-8?B?c2xlWFE5c3dZVmRNOUxYTDBWL3R5NW4zdWVqOUI1REY5a1NyVlkyelJGMVB1?=
 =?utf-8?B?YU9TaWxpWHEwWUs5Qm1JSG1TUlJQZmJtSTY5M2RtUWdIWFpYb2tOSGNuQkVH?=
 =?utf-8?B?aTRad0hvOHEwd0VTdU1mREw4QVRMM1RPSDRxdVBGL0IvVVAwU0lFc202aStO?=
 =?utf-8?B?V0hBdi92alJyT0kvNzRwSXhSVDBlV1VlMDRGWC9WaXlsVU1uWG5sV2pKV2pw?=
 =?utf-8?B?SUdZZTBJUThlL1NxRk1rOHFXR2l6eUVSTHVRRFJkK0NIbkd2WnR6elFWdFlE?=
 =?utf-8?B?djVCb2ZPUVM3UWFjSzY5MVcwaHBIMHI0amxjZ0E4eFhKUE5SSEVKa3Q2L2RO?=
 =?utf-8?B?RXYwYzRYOXU3OE52ZEdQZFRFRmNoSk11WXpHNWJpVFNBODFBdUJsT2NkQzJ4?=
 =?utf-8?B?Y0dxMXIxdzJEc1Y2WFg3VkVpNXlpOHhyZGQ0VXBPNnhYeTdYMGR4Y1ZNbXox?=
 =?utf-8?B?TkJqQlh1MUZWWWZCZ3dKUkZIdFZOeUVMU3BBL21GaWVsNGRvZlJDRkVpS3pK?=
 =?utf-8?B?b0VFR0pET1cyRjlEanIvekFvWmhXSnJUVWFHdy80R001OUk0ZlBRM0xaQWw5?=
 =?utf-8?B?bkYwa1VKMWl1OWNRUGdyWHEySFZBci90akJ0TnMzQXc4ZnVtT0VhT0JNdmtP?=
 =?utf-8?B?MTBWVXJEM21FajArNlBORG1tUHhPL1c1NWN0RmF6bXNEU2pGU0E4K1JGSW9L?=
 =?utf-8?B?bFY2cjQraEt0NXMxU29TSWhDcVZRWVFxZlNQWFZQNlFGUVZ4UWl1K3R1OEoz?=
 =?utf-8?B?bDd6SzVYZVZRMVgvaThtOE1YZEEvQjdGTUprOGdqTVo0aEJKak1ZZk11Ny8z?=
 =?utf-8?B?bmkvN3lxaERTWVAxNDFyZ2FGVndDbUZhbkppSDl0TVlTSFRyUEJYVXhvdzl6?=
 =?utf-8?B?ZEg0TElWdTVwMFU0clE0RDJSTGFhTDc2Y1AraEtvVWtkb3M3N0xrMnQ3MnNy?=
 =?utf-8?B?aUVIRE5ibkhBUm5CbmRHTXNXeDVncnRaOUh1SHpTUmEzYmlaZWNqSTh4MU1B?=
 =?utf-8?B?aW4ydFFjSWFnZnZoUWhESUkyZ2ZLSnkvQktwWHUwMllzZXFsZ1FGbVA3MmNB?=
 =?utf-8?B?ZDFrdmJmUThkY1c0ckJhREs5V3VVazlnbWplbnZpNkpFRlhVUFNOMG56dnZs?=
 =?utf-8?Q?2OWkvOQ1ix37IYQFXBOx2tIi3?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b00e79cb-b8ab-431f-e857-08dbf4bededa
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 11:48:02.4265
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RLh4Ce7MDSeFiAPb2jgaz/FomsXAiC5As1H0KjBNI8S4jp9EC8vledSAx/bqzqNRK9isLJXiEOfiR2TvX4/M8w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7662

On 01.12.2023 16:45, Stewart Hildebrand wrote:
> --- a/xen/drivers/pci/pci.c
> +++ b/xen/drivers/pci/pci.c
> @@ -39,31 +39,42 @@ unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap)
>      return 0;
>  }
>  
> -unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,
> -                               unsigned int cap)
> +unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
> +                                   const unsigned int *cap, unsigned int n,

Imo this would better be written as cap[] (or even caps[]).

> @@ -545,6 +546,68 @@ static int cf_check init_bars(struct pci_dev *pdev)
>      if ( rc )
>          return rc;
>  
> +    if ( !is_hardware_domain(pdev->domain) )
> +    {
> +        if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
> +        {
> +            /* Only expose capabilities to the guest that vPCI can handle. */
> +            unsigned int next, ttl = 48;
> +            const unsigned int supported_caps[] = {
> +                PCI_CAP_ID_MSI,
> +                PCI_CAP_ID_MSIX,
> +            };

static?

With the two adjustments
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:52:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:52:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646859.1009472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7Uc-0005QS-W9; Mon, 04 Dec 2023 11:52:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646859.1009472; Mon, 04 Dec 2023 11:52:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7Uc-0005QL-Ri; Mon, 04 Dec 2023 11:52:06 +0000
Received: by outflank-mailman (input) for mailman id 646859;
 Mon, 04 Dec 2023 11:52:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wjtD=HP=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rA7Ub-0005QF-UP
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:52:05 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a7445b0-929b-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 12:52:03 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 2F5F24EE073D;
 Mon,  4 Dec 2023 12:52:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a7445b0-929b-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Mon, 04 Dec 2023 12:52:03 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/DMI: adjustments to comply with Misra C:2012 Rule 9.3
In-Reply-To: <0bf576e1-b9ce-44f5-9866-7b67706a100c@suse.com>
References: <4876b0a8-b96b-4f60-8040-a346b2655645@suse.com>
 <0bf576e1-b9ce-44f5-9866-7b67706a100c@suse.com>
Message-ID: <a9e42c5d486003375aec441b17d33d96@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 2023-11-30 15:56, Jan Beulich wrote:
> On 30.11.2023 08:55, Jan Beulich wrote:
>> The rule demands that all array elements be initialized (or dedicated
>> initializers be used). Introduce a small set of macros to allow doing 
>> so
>> without unduly affecting use sites (in particular in terms of how many
>> elements .matches[] actually has; right now there's no use of
>> DMI_MATCH4(), so we could even consider reducing the array size to 3).
>> 
>> Note that DMI_MATCH() needs adjustment because of the comma included 
>> in
>> its expansion, which - due to being unparenthesized - would otherwise
>> cause macro arguments in the "further replacement" step to be wrong.
> 
> Sadly this doesn't work with older gcc (4.8.5 is what I had an issue 
> with,
> complaining "initializer element is not constant").
> 
> Jan

Hi,

I tried plugging the relevant code into godbolt.org to try gcc-4.8.5, 
but I'm not able to reproduce the error (see 
https://godbolt.org/z/cP88YeWhh). Can you please provide some more 
details on where the issue is?

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 11:56:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 11:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646864.1009482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7Yl-0006Nl-H2; Mon, 04 Dec 2023 11:56:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646864.1009482; Mon, 04 Dec 2023 11:56: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 1rA7Yl-0006Ne-EJ; Mon, 04 Dec 2023 11:56:23 +0000
Received: by outflank-mailman (input) for mailman id 646864;
 Mon, 04 Dec 2023 11:56: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=wjtD=HP=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rA7Yk-0006NY-2W
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 11:56:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2352b273-929c-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 12:56:20 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id D93284EE073D;
 Mon,  4 Dec 2023 12:56:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2352b273-929c-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Mon, 04 Dec 2023 12:56:19 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, michal.orzel@amd.com,
 xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, consulting@bugseng.com,
 bertrand.marquis@arm.com, julien@xen.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Wei
 Liu <wl@xen.org>
Subject: Re: [XEN PATCH 7/7] xen/page_alloc: deviate first_valid_mfn for MISRA
 C Rule 8.4
In-Reply-To: <5dae5d3e-81f3-4e78-a92f-fd1cc7eb2ea4@suse.com>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com>
 <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2311301847300.110490@ubuntu-linux-20-04-desktop>
 <21956d5b-08ad-45ac-96ff-22fe7d54ec60@suse.com>
 <alpine.DEB.2.22.394.2312011901450.110490@ubuntu-linux-20-04-desktop>
 <5dae5d3e-81f3-4e78-a92f-fd1cc7eb2ea4@suse.com>
Message-ID: <c7a45a0b0849cd319fb65cbd31f9f9d5@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 2023-12-04 08:44, Jan Beulich wrote:
> On 02.12.2023 04:03, Stefano Stabellini wrote:
>> On Fri, 1 Dec 2023, Jan Beulich wrote:
>>> On 01.12.2023 03:47, Stefano Stabellini wrote:
>>>> On Wed, 29 Nov 2023, Nicola Vetrini wrote:
>>>>> No functional change.
>>>>> 
>>>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>> ---
>>>>> The preferred way to deviate is to use asmlinkage, but this 
>>>>> modification is only
>>>>> the consequence of NUMA on ARM (and possibly PPC) being a work in 
>>>>> progress.
>>>>> As stated in the comment above the textual deviation, 
>>>>> first_valid_mfn will
>>>>> likely then become static and there would be no need for the 
>>>>> comment anymore.
>>>>> This works towards having the analysis for this rule clean (i.e. no 
>>>>> violations);
>>>>> the interest in having a clean rule is that then it could be used 
>>>>> to signal
>>>>> newly introduced violations by making the analysis job fail.
>>>> 
>>>> Please add this text as part of the commit message. It can be done 
>>>> on
>>>> commit.
>>> 
>>> I assume you saw my reply on another of the patches in this series as 
>>> to
>>> asmlinkage use on variables? IOW I think this paragraph would also 
>>> need
>>> adjustment to account for that.
>> 
>> I was going to ask you about that: reading your reply
>> https://marc.info/?l=xen-devel&m=170142048615336 it is not clear to me
>> what you are asking or suggesting as next step in regard to asmlinkage
>> use on variables.
> 
> Either we need a separate attribute, or we need affirmation that 
> calling
> convention attributes are ignored (and going to be going forward) for
> variables, or we need to resort to SAF-* comments. I'm not sure what's
> best (assuming the "affirm" wouldn't really be possible).
> 

Well, gcc does warn on unsupported attributes for the entity which are 
being dropped. This appears to be the case for calling convention 
attributes, as they are not listed in their documentation for variable 
attributes, but some more digging would be required to determine whether 
that's always the case.

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 12:01:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 12:01:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646869.1009491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7dB-0000wZ-4w; Mon, 04 Dec 2023 12:00:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646869.1009491; Mon, 04 Dec 2023 12: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 1rA7dB-0000wS-2R; Mon, 04 Dec 2023 12:00:57 +0000
Received: by outflank-mailman (input) for mailman id 646869;
 Mon, 04 Dec 2023 12:00: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 1rA7d9-0000wI-Ia; Mon, 04 Dec 2023 12:00: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 1rA7d9-0000bE-Bw; Mon, 04 Dec 2023 12:00: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 1rA7d8-0003gw-Q3; Mon, 04 Dec 2023 12:00:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rA7d8-0004zh-Pd; Mon, 04 Dec 2023 12:00: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=bOytFQt2qgAnX3BZ8fyaCh/P0Q8NztHsdge9m3ZVkTA=; b=fM4RJVuHGRZbTHu04m4/fGfDbo
	iZ9201WcAZY5KwPHI6iz3ddoCncB+8Vyo5nCRsJ6Hale4oh3lA3Nr0gXIcu4qgK1iOh5z7jwBMzD4
	pfvVTILNfb/2cZy9CyJrc+araVRL9SiGK3KQ71BbK7+xzKFHCQ6PhyHonbsY8lbwg38M=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183983-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 183983: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-amd64-amd64-libvirt: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-amd64-amd64-libvirt-vhd:migrate-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-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
X-Osstest-Versions-That:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 04 Dec 2023 12:00:54 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183971
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183978
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183978
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183978
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183978
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183978
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183978
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183978
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183978
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183978
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183978
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183978
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-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-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-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-amd64-i386-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     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
 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-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352
baseline version:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352

Last test of basis   183983  2023-12-04 01:54:08 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 04 12:07:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 12:07:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646876.1009501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7jq-00021U-Rg; Mon, 04 Dec 2023 12:07:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646876.1009501; Mon, 04 Dec 2023 12:07:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7jq-00021N-P8; Mon, 04 Dec 2023 12:07:50 +0000
Received: by outflank-mailman (input) for mailman id 646876;
 Mon, 04 Dec 2023 12:07:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rA7jp-00021H-IR
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 12:07: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 bc9bacf3-929d-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 13:07:48 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 227322209F;
 Mon,  4 Dec 2023 12:07: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 E3D77139AA;
 Mon,  4 Dec 2023 12:07:45 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id lNupNRHBbWV4fgAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 12:07:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc9bacf3-929d-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701691666; 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=tgiCsAa+BIXJ+p9AGRAlKDHtD+RXFRTFQjXmGkxnZvU=;
	b=TYo5Xzrgxnst8dRaH0kIPtHnaXWKFDTC23ktBOxdUUUQFBlL/xqWteho67jwutCwpbTtFc
	NkXQ9HtSFBvTkOF0raLasbeZ05CpH5dteKFFPfw/zRkKfsXCcVKncRmVIsqW35mTqOxyX8
	tcgezMx1CV8H+a/jhQJA+HrMNZgFa+w=
Message-ID: <dec807bc-8450-48b0-be99-70bf17e62bca@suse.com>
Date: Mon, 4 Dec 2023 13:07:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?B?UmVuw6kgV2ludGhlciBIw7hqZ2Fh?=
 =?UTF-8?Q?rd?= <renewin@proton.me>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
 <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
 <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com>
 <1fc21e82-f9f3-4929-a138-2b3de98c06dc@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: <1fc21e82-f9f3-4929-a138-2b3de98c06dc@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------guVH0E8jwxmiv0ERU3SnFCnX"
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spamd-Result: default: False [-3.19 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCPT_COUNT_FIVE(0.00)[6];
	 RCVD_COUNT_THREE(0.00)[3];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -3.19

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------guVH0E8jwxmiv0ERU3SnFCnX
Content-Type: multipart/mixed; boundary="------------c2UaUpD7CuLUHS2EdIYnWBjA";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?B?UmVuw6kgV2ludGhlciBIw7hqZ2Fh?=
 =?UTF-8?Q?rd?= <renewin@proton.me>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <dec807bc-8450-48b0-be99-70bf17e62bca@suse.com>
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
 <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
 <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com>
 <1fc21e82-f9f3-4929-a138-2b3de98c06dc@suse.com>
In-Reply-To: <1fc21e82-f9f3-4929-a138-2b3de98c06dc@suse.com>

--------------c2UaUpD7CuLUHS2EdIYnWBjA
Content-Type: multipart/mixed; boundary="------------LV0tgP71xVAbso2eqVMzFW6S"

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

T24gMDQuMTIuMjMgMTE6MTMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNC4xMi4yMDIz
IDExOjAyLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMDQuMTIuMjMgMTA6MTUsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDAxLjEyLjIwMjMgMjE6MTIsIEFuZHJldyBDb29w
ZXIgd3JvdGU6DQo+Pj4+IE9uIDAxLzEyLzIwMjMgNzo1OSBwbSwgUmVuw6kgV2ludGhlciBI
w7hqZ2FhcmQgd3JvdGU6DQo+Pj4+PiBJZiBJIHNldCBzbXQ9b2ZmIGFuZCB0cnkgdG8gY29u
ZmlndXJlIGNwdXBvb2xzIHdpdGggY3JlZGl0KDEpIGFzIGlmDQo+Pj4+PiBhbGwgY29yZXMg
YXJlIGF2YWlsYWJsZSwgSSBnZXQgdGhlIGZvbGxvd2luZyBjcmFzaC4NCj4+Pj4+DQo+Pj4+
PiBUaGUgY3Jhc2ggaGFwcGVucyB3aGVuIEkgdHJ5IHRvIHVzZSB4bCBjcHVwb29sLWFkZC1j
cHUgb24gdGhlIGRpc2FibGVkDQo+Pj4+PiBIVCBzaWJsaW5nIGNvcmVzLg0KPj4+Pj4NCj4+
Pj4+IEh5cGVyLXRocmVhZGluZyBpcyBlbmFibGVkIGluIHRoZSBmaXJtd2FyZSwgYW5kIG9u
bHkgZGlzYWJsZWQgd2l0aA0KPj4+Pj4gc210PW9mZi4NCj4+Pj4NCj4+Pj4gQ0MnaW5nIHNv
bWUgbWFpbnRhaW5lcnMuDQo+Pj4+DQo+Pj4+IEkgZXhwZWN0IHRoaXMgd2lsbCBhbHNvIGV4
cGxvZGUgd2hlbiBhIENQVSBpcyBydW50aW1lIG9mZmxpbmVkIHdpdGgNCj4+Pj4gYHhlbi1o
cHRvb2wgY3B1LW9mZmxpbmVgIGFuZCB0aGVuIGFkZGVkIHRvIGEgY3B1cG9vbC4NCj4+Pj4N
Cj4+Pj4gSW50ZXJlc3RpbmdseSwgdGhlIGNyYXNoIGlzIG1vdiAoJXJkeCwlcmF4LDEpLCVy
MTMsIGFuZCBJIHRoaW5rIHRoYXQncw0KPj4+PiB0aGUgcGVyY3B1IHBvc2lvbiB2YWx1ZSBp
biAlcmR4Lg0KPj4+Pg0KPj4+PiBJIGV4cGVjdCBjcHVwb29scyB3YW50IHRvIHJlamVjdCBw
YXJrZWQvb2ZmbGluZSBDUFVzLg0KPj4+DQo+Pj4gV2hpbGUgdGhlIG9ubHkgZXhwbGljaXQg
Y2hlY2sgdGhlcmUgaXMNCj4+Pg0KPj4+ICAgICAgICAgICBpZiAoIGNwdSA+PSBucl9jcHVf
aWRzICkNCj4+PiAgICAgICAgICAgICAgIGdvdG8gYWRkY3B1X291dDsNCj4+Pg0KPj4+IEkg
d291bGQgaGF2ZSBleHBlY3RlZCB0aGlzDQo+Pj4NCj4+PiAgICAgICAgICAgaWYgKCAhY3B1
bWFza19zdWJzZXQoY3B1cywgJmNwdXBvb2xfZnJlZV9jcHVzKSB8fA0KPj4+ICAgICAgICAg
ICAgICAgIGNwdW1hc2tfaW50ZXJzZWN0cyhjcHVzLCAmY3B1cG9vbF9sb2NrZWRfY3B1cykg
KQ0KPj4+ICAgICAgICAgICAgICAgZ290byBhZGRjcHVfb3V0Ow0KPj4+DQo+Pj4gdG8gZGVh
bCB3aXRoIHRoZSBzaXR1YXRpb24sIGFzIHBhcmtlZC9vZmZsaW5lIENQVXMgc2hvdWxkbid0
IGJlICJmcmVlIi4NCj4+PiBKw7xyZ2VuPw0KPj4NCj4+IFRoZSBwcm9ibGVtIGlzIHRoZSBj
YWxsIG9mIHNjaGVkX2dldF9vcHRfY3B1bWFzaygpIHRvIG5lZWQgdGhlIHBlcmNwdSBhcmVh
DQo+PiBvZiB0aGUgY3B1IGluIHF1ZXN0aW9uLg0KPiANCj4gVGhhdCB3YXMgbXkgZmlyc3Qg
dGhvdWdodCwgdG9vLCBidXQgdGhlbiBJIHNhdyBjcHVwb29sX2Fzc2lnbl9jcHVfbG9ja2Vk
KCkgb24NCj4gdGhlIGNhbGwgdHJhY2UsIHdoaWNoIGlzIGNhbGxlZCBvbmx5IGFmdGVyd2Fy
ZHMuIFBsdXMgc2NoZWRfZ2V0X29wdF9jcHVtYXNrKCkNCj4gbmVlZHMgdGhlIHBlci1DUFUg
YXJlYSBvbmx5IHdoZW4gZ3JhbnVsYXJpdHkgd2FzIHN3aXRjaGVkIGZyb20gaXRzIGRlZmF1
bHQgb2YNCj4gU0NIRURfR1JBTl9jcHUgYWZhaWNzLg0KDQpPaCByaWdodCB5b3UgYXJlLg0K
DQpNeSBwYXRjaCBpcyBuZWVkZWQgZm9yIGxhcmdlciBncmFudWxhcml0aWVzLCB0aG91Z2gu
DQoNCkkndmUgdHJpZWQgdG8gaGl0IHRoZSBzYW1lIHByb2JsZW0gYXMgUmVuw6ksIGJ1dCBl
dmVyeXRoaW5nIHdvcmtzIGFzIGludGVuZGVkIChubw0KY3Jhc2gsIGJ1dCBhZGRpbmcgYW4g
b2ZmbGluZSBjcHUgaXMgYmVpbmcgcmVqZWN0ZWQpLg0KDQpSZW7DqSwgY291bGQgeW91IHBs
ZWFzZSB0ZWxsIHVzIHdoYXQgZXhhY3RseSB5b3UndmUgYmVlbiBkb2luZz8gVGhpcyB3b3Vs
ZCBiZToNCg0KLSBYZW4gY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMNCi0gT3V0cHV0IG9mICJ4
bCBpbmZvIg0KLSBPdXRwdXQgb2YgInhsIGNwdXBvb2wtbGlzdCIgYmVmb3JlIHN0YXJ0aW5n
IHRvIG1hbmlwdWxhdGUgY3B1cG9vbHMNCi0gT3V0cHV0IG9mICJ4bCBjcHVwb29sLWxpc3Qg
LWMiIGJlZm9yZSBzdGFydGluZyB0byBtYW5pcHVsYXRlIGNwdXBvb2xzDQotIENwdXBvb2wg
Y29uZmlnIGZpbGUgdXNlZCB0byBjcmVhdGUgbmV3IGNwdXBvb2wNCi0geGwgY29tbWFuZHMg
eW91J3ZlIHVzZWQgdG8gc2V0dXAgdGhlIGNwdXBvb2wgYW5kIGFkZGluZyB0aGUgY3B1KHMp
IHRvIGl0DQoNClRoYW5rcywNCg0KDQpKdWVyZ2VuDQo=
--------------LV0tgP71xVAbso2eqVMzFW6S
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-----

--------------LV0tgP71xVAbso2eqVMzFW6S--

--------------c2UaUpD7CuLUHS2EdIYnWBjA--

--------------guVH0E8jwxmiv0ERU3SnFCnX
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/Ey8FAmVtwREFAwAAAAAACgkQsN6d1ii/Ey9L
JQf/ScciUWehTKv8j2tBJiINJRt06wexkkuOfmnH2XkTadiSGFKw/KMRgkIpgzaar3Y7q75WEDNa
h6p2MibG32xYSf4bsURLBJcpEGLARDiHeiuIFyokE/QzR0yChHN/jy0ziiQ0XJ5Jlhwx4rwSRl1i
/CwNKVRLeHe0wVU0uRkUKxV2jvp2RNYQafUGUiptOTdr320x2yarl8BAqtzsT/k513vASUx5/9py
iZ0ZfYX5DN8+csXkU1A2mAjbNVSEiqq0gphR56Q+MsFdu54bcXzcBVq9Jhxfrr1AH7c5IwoVINqx
YYurQujjcW9KQSOH3NG2MtVjxqNdVY8BqtyB0907CA==
=gnIr
-----END PGP SIGNATURE-----

--------------guVH0E8jwxmiv0ERU3SnFCnX--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 12:12:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 12:12:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646880.1009511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7oD-00045F-J4; Mon, 04 Dec 2023 12:12:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646880.1009511; Mon, 04 Dec 2023 12:12:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7oD-000458-GV; Mon, 04 Dec 2023 12:12:21 +0000
Received: by outflank-mailman (input) for mailman id 646880;
 Mon, 04 Dec 2023 12:12:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=JBeulich@srs-se1.protection.inumbo.net>)
 id 1rA7oC-000452-7l
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 12:12:20 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0611.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5edac03e-929e-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 13:12:19 +0100 (CET)
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23)
 by DB9PR04MB8172.eurprd04.prod.outlook.com (2603:10a6:10:249::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22; Mon, 4 Dec
 2023 12:12:17 +0000
Received: from DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com
 ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.7068.022; Mon, 4 Dec 2023
 12:12: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: 5edac03e-929e-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=m9CBvF0gIyYUhLjx6w7SqwwmGSHQ1GabKOkZwvFDg00BDW7lpndEpjLgP9YocmmAaQkXv6aauly/6WqP1fT4Pf33RhM6No4DoyU/yAE0HBfk52IOuiYLr/Pmnja5cpg/AQKpTv7S6GiIp3zIlLGWYbA4Rz6EjjgCkvGSUYFnekSADSmgnEtqOA3iX6R6fWT6whEIYu4zHA7zScZyaZ55xC2tZPyqwXx1LH5VOm5Y9/XjNW3xQOtwGq47FqIhcqTBxjdOWOwxomvJov7I4Z49J2PTz0v2xALXJpG3f2xjVNhJMvSFrOTDnxSPi9DC5VOXGFK440IDiPFrvyOqZVaJUg==
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=MJYoOUS2jwS4PXuuYtyED5uxJt9FGAGeE2bySRjvRf0=;
 b=QQz1PJtCvN8F2D21DIkXLg00FpfK3nRVq5AXuR3WHRwGpkPeSrOTRo2JnQkpdF7omfVGjvZ1N9DXg7/D8CCWe0a+Nf4l9FQwD8CfWiqyepD+SJt3QQcgr1XBcd3Q9EFt6Dv0IKbDCCBEm9PwCyD1s5ok807RjAKkLLwPEngDfCnmf2qkC1THcv0nf4a+dhucPaWoGRU1kUiSqXvTmihy2hOj1IHbbLU4vOVJbJ7Lb5hxC/NnGfAYrHETZqmhHElTIILgJ2LvfpvB+hUCICKUyxzPCNDoUGrXp4mA3gH39lbruiO+KTHCUlEbVv4EblnUtbCOf1z/kNcyYpboDTT7fw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com;
 dkim=pass header.d=suse.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MJYoOUS2jwS4PXuuYtyED5uxJt9FGAGeE2bySRjvRf0=;
 b=l6gIsS2YkglR85nqdrCmOlo33nLYdMI2gYy9uWHbuu00Jl5vsUjjIp0kmsUUfmVT57HHqpvpZMAxQlZ2eDXKfMecndKFYcLSwabRb89SCihx58rdwkHBMSDlC7sDGdE4D+jJJGyHqt9YlBuDac8r5u96PshW2Xv9dYr9QW639jeTaw8kZBpGUlFy5ULyL6Qzb6gXkOAbKVFV4ned9MjTjXwFO9hKH8aXorS4V7QFrhuf04N/WwHCdaJQ+KGt/dzcCaOekMSMujeVnFmpXQ5UfucyAZtDLwE0BxupcIF0VZkTtpUiL283iBb8IeuARIiCYdZ0yJD7Da46FOyyIXgLXA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=suse.com;
Message-ID: <8204f9a5-8554-4b30-897a-982848069e71@suse.com>
Date: Mon, 4 Dec 2023 13:12:15 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/DMI: adjustments to comply with Misra C:2012 Rule 9.3
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: 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>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <4876b0a8-b96b-4f60-8040-a346b2655645@suse.com>
 <0bf576e1-b9ce-44f5-9866-7b67706a100c@suse.com>
 <a9e42c5d486003375aec441b17d33d96@bugseng.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: <a9e42c5d486003375aec441b17d33d96@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0409.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:d0::9) To DU2PR04MB8790.eurprd04.prod.outlook.com
 (2603:10a6:10:2e1::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DB9PR04MB8172:EE_
X-MS-Office365-Filtering-Correlation-Id: 3c88ecb3-b384-4000-9b53-08dbf4c2420e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hb46x3db4x79u5JHjEizNwtkFPasvT1dlvZpgSY69o61OIAdk04Gwj7O7qUi1acZn6gNRbRKlcVmRk7YC6iwr+IpZjNJsTj1ZBqgShla9YH/qWkaMG9Xupe91knO3f6xLo03DEOvAU2uB/+PDPX/jnPOIJl727AFQlouXlphMAV6rW+9myVt8KtslIMh0j0Kp9XRi37PiSKPDvstYG6/HBbyrNge1v/gLW0vB0nF9cOs2jJHUsfLDhu80KeKQw6eqA0Cl3MoyQWdeKdGtV92X7AtIHl0tXFmdeTghkw4Ru+lOFP499N5fCPF0lFwoosR4YzouYswyqtOzONpOK+zvS2LO+sCNNz2+o2sd6sIPmefjfYYt8TbQoL85Sw3LlRAe+cOLBjLVS5olYtWmmy46NuWjFFyCFZQ60AVjGee4vMRxKwZP1b/FPL7aue2pRUpvh2a2n2iMrVB9BBrgwpfjUubfCe5xzei2P1pFKHFE6g0479OtDMoUwTWijUSndUpMMMIfAjOqG3byMa9054Cqq/f3BNyf+sGKgCh1DMotmQ8d81ZdYvBXYGOOfT90GYk8wnSdn95iLq3C5TLnT4qn+FWMiXqChFiJz70t58X4kGyhFCtMiG1K3A6msR4FVSk8LR19hgyh4QBNxhSx8VX0A==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(376002)(366004)(396003)(136003)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(6916009)(66476007)(66556008)(66946007)(316002)(54906003)(4326008)(8936002)(31696002)(86362001)(36756003)(8676002)(53546011)(6512007)(4001150100001)(6506007)(478600001)(6486002)(2906002)(966005)(2616005)(26005)(38100700002)(41300700001)(5660300002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QXJjVXkxVmt5NHAzTW1XWGZFckxOVWttak1sK0xoSTMwTmVNbWNyQnZNbnYv?=
 =?utf-8?B?eDBsNVd4SUJjY0tMVW5JTDBXakpXKzArSjgrTG9PSGtmZ1dkVGdLbXd5S3Nm?=
 =?utf-8?B?dm1SZkh0YUU5SjVNT1ZWcVpsaHZsVzlKeE1wY2J5YndvMFhpa1FQTTR5RmlJ?=
 =?utf-8?B?QWNyakd6L0IyNW9xNEhKb3NPeCtrT0p6cEJSY2dWZkt1L0tiYk9OSU9FUmUr?=
 =?utf-8?B?QjJPdXdybk1PZDJzVFdFUTRsemFJK1Y4amZMRUVMNU1sV0xwcEV0NUp2T2h4?=
 =?utf-8?B?b1BzdEs0a1RWZmZ2SWRiMzdtOHVKLyt5V0RCVVJLV2NWRkdRb2N6U1lFd05l?=
 =?utf-8?B?ZWtNNG1xSExBVUVYR2JxNG85V255bUpCdmx5bk9NYW9WZldFRUdleEJrQnZn?=
 =?utf-8?B?cWNTMm41SUcvY0xzU1BEK0M2MG9LNk50WDlOUDg4ZEdRalN3dXkyVmtQVUtW?=
 =?utf-8?B?c05hMllVKzRNSWdOU3EyWVRCNThlWCs5Y3JtcVJVaWc1UGRJbDRZcU01d2g4?=
 =?utf-8?B?TGV5NmRIMW5ldUtnajNJZytvRG9TSFlIUlRrWC96MHh6eWZvcElHYVlrbDhu?=
 =?utf-8?B?TE9Fclh5NklRWmVOaDJpUGozVWZmUTlaZ042c0tYcW5wdDYweVFkMi83cER5?=
 =?utf-8?B?RG51Tms1bHdZVHFUbFlBc2V2TUhid0E3ZXZLQ0RFVEg2V3M1TTUzZnRER1FG?=
 =?utf-8?B?YlBEM1NTbEFtOVFiYmZDQ1NnTUYyOUlnVWY5VzZEM2V5cDI1NkZHR3FKc1E2?=
 =?utf-8?B?ZFZYSVFIZVZoS05yajYzV003dFpLdk5ORFZzcnZQUWlpMU9ZanZJajJldXl1?=
 =?utf-8?B?emprcy9IYW1FMzN3eEZFNnB6SlpabjdaUHBlZzJmQ1RzZUx3SmYwRU5wWXIz?=
 =?utf-8?B?eUl2QWxkUGIxSThZTXh2RndKS0dGSlFWeGxsYmFrdG9OUnZya1JLNm14Wjgy?=
 =?utf-8?B?cEN4K3NRd2Q1OEJRS2p5VVMxRGpzOUZNVjVWTTVzYnpDc09Iam9KUWNPNmpL?=
 =?utf-8?B?QldLK0ZzajZhSStDaWR6NkdhR1B1MEhlNHRnb3FHNDIzdEExZHZBbzY4ZlBR?=
 =?utf-8?B?cWdqT1p1eGJTU2VjY2Y3RVhKVDlrNlhSYWpobCtpaEZRYlZKVXVRSU1RenZ0?=
 =?utf-8?B?ejI3R2hXcUZmSVNiOEJCMGRFeURYR1VqSFFpdVhLL0Qyd3dPSjcrd0s2OG9w?=
 =?utf-8?B?WDNwaXo1WWRGOFFqK3RKUFk3YzBmVWxCVURGWlBiTHpmZnNqdUt0YlRsalYw?=
 =?utf-8?B?VzhWUDRiYmp1QkVUSGZpYXp5QWEyQnMvK1J4RkpEeHdZNjlKYkNUd05wY2ZF?=
 =?utf-8?B?c013djlxK0RkUVp1dWFUYmh5NUQzbTc0d3VuSlFrWmI5QVY5eW1zQ0dKR1pO?=
 =?utf-8?B?SkZ3YUxWQ3piUGtUaytvVzBGdm1xZHNSUW4wTzVrNVJJYzU0UWJUQ3hqTEp5?=
 =?utf-8?B?ZHhoVEpPWmJueWpnMEVCMGZCUUhFWFk5dmJEWEp6Wm85UzdXVXhab29aUGQ4?=
 =?utf-8?B?OTJKVnUrNks1cFZVOTMxUDhMazdpTmxDemZKT2RHQjdiRmJ3MjV1eGtGckUy?=
 =?utf-8?B?WDB5YUVkQUxHeUNmK2lxRGY2cDdwTE5TTVM1SVRRTVhjZSs1L1VycU5hNEdB?=
 =?utf-8?B?b2tZK3hmMWhVQmpmNEczbitZL0dqT1gwMVNjSTJDQ29neXovV08zZ2lHSFNi?=
 =?utf-8?B?Z05IaUMvMFh2UWJFeUUyN1VVVnBGdEZPWUh2UkR4V3g2RjBja0tqbXNqNXlE?=
 =?utf-8?B?ZUttLy9ESmt2QkVicXBhNDJNR0FJMjRBNlBhMkdZUUhQZjRRUzhDRllsSXg0?=
 =?utf-8?B?U29hamdpS2YzeDlqUWFjMU1UdHhYY1lnMnpkY2I4ZDdnVlRFQjFUTlJTNGJN?=
 =?utf-8?B?UHBYeHlwYUpHNWtGenlmUzRyeVhTOHBkbGt2NlBLQlEzTy9MUitSMnh5SUcx?=
 =?utf-8?B?WUpsY3Q2K01ML1dTb3dqeEdOaWpUek9KVjQ2Qzd6TXNDbXQ3ZzJuMnlOL2Zq?=
 =?utf-8?B?WW1wUVgwZ1JLeXkzUU8rTFMwZ1JzSnY3Um95RGhzOUJHOHV2a1ZROFAwZktY?=
 =?utf-8?B?Z29zQ3JpZHpmbytrWUMwRjh1bVhWTDNUMVNPeVAvNm4rb1NFU3VQdGpqSWVN?=
 =?utf-8?Q?4d4BWG4aCIxOlFTADsAbu8mOT?=
X-OriginatorOrg: suse.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c88ecb3-b384-4000-9b53-08dbf4c2420e
X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 12:12:17.3678
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vO02dzW0fN1mFLIWJs+8zfBcilkcYbZbSIT5dhvIP8VGQTr7nrGb0lL7WbrVcis/FSpwGNdp+l2Ux7MEq98HcA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8172

On 04.12.2023 12:52, Nicola Vetrini wrote:
> On 2023-11-30 15:56, Jan Beulich wrote:
>> On 30.11.2023 08:55, Jan Beulich wrote:
>>> The rule demands that all array elements be initialized (or dedicated
>>> initializers be used). Introduce a small set of macros to allow doing 
>>> so
>>> without unduly affecting use sites (in particular in terms of how many
>>> elements .matches[] actually has; right now there's no use of
>>> DMI_MATCH4(), so we could even consider reducing the array size to 3).
>>>
>>> Note that DMI_MATCH() needs adjustment because of the comma included 
>>> in
>>> its expansion, which - due to being unparenthesized - would otherwise
>>> cause macro arguments in the "further replacement" step to be wrong.
>>
>> Sadly this doesn't work with older gcc (4.8.5 is what I had an issue 
>> with,
>> complaining "initializer element is not constant").
> 
> I tried plugging the relevant code into godbolt.org to try gcc-4.8.5, 
> but I'm not able to reproduce the error (see 
> https://godbolt.org/z/cP88YeWhh). Can you please provide some more 
> details on where the issue is?

It apparently doesn't like the compound literal as initializer. I need
to re-submit the adjusted patch, though.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 12:23:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 12:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646886.1009521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA7yv-0008AA-IN; Mon, 04 Dec 2023 12:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646886.1009521; Mon, 04 Dec 2023 12: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 1rA7yv-0008A3-Ff; Mon, 04 Dec 2023 12:23:25 +0000
Received: by outflank-mailman (input) for mailman id 646886;
 Mon, 04 Dec 2023 12:23:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/x5/=HP=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rA7yu-00089x-An
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 12:23:24 +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 e9fe1830-929f-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 13:23:23 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-577-gbryS5XWMFajJ2gqyBp4cw-1; Mon, 04 Dec 2023 07:23:18 -0500
Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com
 [10.11.54.10])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 205218371C6;
 Mon,  4 Dec 2023 12:23:17 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.237])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 671D7492BFE;
 Mon,  4 Dec 2023 12:23: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: e9fe1830-929f-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701692601;
	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=dWZu5FfP/T6893g/T7OkCWZ5TjUDQF2GRJyknmRuI+M=;
	b=YWX10rZ0s5676l67ETxhydAkNz65bip3MQPrnlerfxIFRQJSjeA7SQ4zCVwtC05dWOOtmL
	CK/bEb9FrlgYu06/xEjYEL3eQb7xvBhSoPZb7tnNHhzWgPl5aLYD5V5AQiD1MS7DreDXHM
	JXxyolVQg11PuXNja6QwICYT4DidyCs=
X-MC-Unique: gbryS5XWMFajJ2gqyBp4cw-1
Date: Mon, 4 Dec 2023 13:23:09 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 06/12] scsi: remove AioContext locking
Message-ID: <ZW3ErXZ2ZOo_kX2x@redhat.com>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-7-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231129195553.942921-7-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10

Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> The AioContext lock no longer has any effect. Remove it.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  include/hw/virtio/virtio-scsi.h | 14 --------------
>  hw/scsi/scsi-bus.c              |  2 --
>  hw/scsi/scsi-disk.c             | 28 ++++------------------------
>  hw/scsi/virtio-scsi.c           | 18 ------------------
>  4 files changed, 4 insertions(+), 58 deletions(-)

> @@ -2531,13 +2527,11 @@ static void scsi_unrealize(SCSIDevice *dev)
>  static void scsi_hd_realize(SCSIDevice *dev, Error **errp)
>  {
>      SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, dev);
> -    AioContext *ctx = NULL;
> +
>      /* can happen for devices without drive. The error message for missing
>       * backend will be issued in scsi_realize
>       */
>      if (s->qdev.conf.blk) {
> -        ctx = blk_get_aio_context(s->qdev.conf.blk);
> -        aio_context_acquire(ctx);
>          if (!blkconf_blocksizes(&s->qdev.conf, errp)) {
>              goto out;
>          }
> @@ -2549,15 +2543,11 @@ static void scsi_hd_realize(SCSIDevice *dev, Error **errp)
>      }
>      scsi_realize(&s->qdev, errp);
>  out:
> -    if (ctx) {
> -        aio_context_release(ctx);
> -    }
>  }

This doesn't build for me:

../hw/scsi/scsi-disk.c:2545:1: error: label at end of compound statement is a C2x extension [-Werror,-Wc2x-extensions]
}
^
1 error generated.

Kevin



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 12:35:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 12:35:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646893.1009532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8Aq-0002lg-Kz; Mon, 04 Dec 2023 12:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646893.1009532; Mon, 04 Dec 2023 12:35:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8Aq-0002lZ-HL; Mon, 04 Dec 2023 12:35:44 +0000
Received: by outflank-mailman (input) for mailman id 646893;
 Mon, 04 Dec 2023 12:35: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=/x5/=HP=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rA8Ap-0002lT-NW
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 12:35:43 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2836a81-92a1-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 13:35:42 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-561-Oj5F8mbkOzyGzz28vE5gHQ-1; Mon,
 04 Dec 2023 07:35:35 -0500
Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com
 [10.11.54.8])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id D365129AA3AC;
 Mon,  4 Dec 2023 12:35:34 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.237])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 7F823C1596F;
 Mon,  4 Dec 2023 12:35: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: a2836a81-92a1-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701693341;
	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=qx2GfDHf3/ajVNCVouqYYAoLzEYyS3eVAO/xtWLuxKw=;
	b=CQ5KjotOJMXGQrNQr29HAbASMsfySbOoKfz6kndE5aoiW7t1/VJCkGDxHQSew1HmF6SFru
	5QVFwJEiPSQisooGnaWB4gq8ZEPjMHs5Uq0N1IWmjNRH6f5QmhcOEH3L5ixAox2ltWlOD0
	3d0bRJ6v3fgSxrcbhrL4y+q1GDzQ1/c=
X-MC-Unique: Oj5F8mbkOzyGzz28vE5gHQ-1
Date: Mon, 4 Dec 2023 13:35:27 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 01/12] virtio-scsi: replace AioContext lock with
 tmf_bh_lock
Message-ID: <ZW3Hj_hXJr5auhm7@redhat.com>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-2-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231129195553.942921-2-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8

Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> Protect the Task Management Function BH state with a lock. The TMF BH
> runs in the main loop thread. An IOThread might process a TMF at the
> same time as the TMF BH is running. Therefore tmf_bh_list and tmf_bh
> must be protected by a lock.
> 
> Run TMF request completion in the IOThread using aio_wait_bh_oneshot().
> This avoids more locking to protect the virtqueue and SCSI layer state.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 12:46:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 12:46:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646898.1009542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8LF-00065p-J1; Mon, 04 Dec 2023 12:46:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646898.1009542; Mon, 04 Dec 2023 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 1rA8LF-00065i-GL; Mon, 04 Dec 2023 12:46:29 +0000
Received: by outflank-mailman (input) for mailman id 646898;
 Mon, 04 Dec 2023 12:46: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=/x5/=HP=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rA8LE-00065c-6X
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 12:46:28 +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 23068d18-92a3-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 13:46:26 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-587-WlsnWTGLP9CgoOClcumpYA-1; Mon, 04 Dec 2023 07:46:19 -0500
Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com
 [10.11.54.8])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id CF54285A58B;
 Mon,  4 Dec 2023 12:46:18 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.237])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id B032BC15983;
 Mon,  4 Dec 2023 12:46: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: 23068d18-92a3-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701693985;
	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=OdqJcUWrpkerK9dE7JvdF+gkdvliUlUpsIv/joFLTrU=;
	b=US/ZXufMixJF3shG3LE1TzC5TGQK8Uph39bM4XZ3DDtG4lCUjDkE1ymJwP+UmmNp3QKi6j
	wvSgX8MJNFgiY4TPXMBpcjxkxSVKlfxDHRoahAMw7Mxe+YPkqoAt/IpYpNcgatzJvu3JTA
	w7/jQkhN6KQckDVvjMdOgYODiZXsgkc=
X-MC-Unique: WlsnWTGLP9CgoOClcumpYA-1
Date: Mon, 4 Dec 2023 13:46:13 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 01/12] virtio-scsi: replace AioContext lock with
 tmf_bh_lock
Message-ID: <ZW3KFQ3PsdbVFymi@redhat.com>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-2-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231129195553.942921-2-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8

Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> Protect the Task Management Function BH state with a lock. The TMF BH
> runs in the main loop thread. An IOThread might process a TMF at the
> same time as the TMF BH is running. Therefore tmf_bh_list and tmf_bh
> must be protected by a lock.
> 
> Run TMF request completion in the IOThread using aio_wait_bh_oneshot().
> This avoids more locking to protect the virtqueue and SCSI layer state.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

The second part reminds me that the implicit protection of the virtqueue
and SCSI data structures by having all accesses in a single thread is
hard to review and I think we wanted to put some assertions there to
check that we're really running in the right thread. I don't think we
have done that so far, so I suppose after this patch would be the place
in the series to add them, before we remove the protection by the
AioContext lock?

Kevin



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 12:54:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 12:54:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646905.1009552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8TD-0000Bf-Bs; Mon, 04 Dec 2023 12:54:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646905.1009552; Mon, 04 Dec 2023 12: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 1rA8TD-0000BY-93; Mon, 04 Dec 2023 12:54:43 +0000
Received: by outflank-mailman (input) for mailman id 646905;
 Mon, 04 Dec 2023 12: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=/x5/=HP=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rA8TB-0000BS-TC
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 12:54:41 +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 48fcaf30-92a4-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 13:54:40 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-597-xgfHOnjXMcOjVO-lgMjqSQ-1; Mon,
 04 Dec 2023 07:54:32 -0500
Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com
 [10.11.54.8])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id DD4B03806723;
 Mon,  4 Dec 2023 12:54:31 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.237])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id C27B8C1596F;
 Mon,  4 Dec 2023 12:54: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: 48fcaf30-92a4-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701694479;
	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=SgnTcCI3bcYccUq+7TAOCh4A3Oywg+CFxGQiKy4ybtg=;
	b=dYzsC6UCY9pjSxS8Hwyun64JbeKBrTpNjvHvBK3rjHtafz7lI2KLCRBDY47gMBK1C8TBif
	tUNjpIycS0w6UXORzKH+A5b8fsAZvUNHo5gJoiboBatACoFj+iDzkhoOBAfyOr3w4+zQ4y
	eNAAHWbt2x+PHr8Un/rImXsEc+1kWf0=
X-MC-Unique: xgfHOnjXMcOjVO-lgMjqSQ-1
Date: Mon, 4 Dec 2023 13:54:26 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 02/12] tests: remove aio_context_acquire() tests
Message-ID: <ZW3MAidoeuDFsK0R@redhat.com>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-3-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231129195553.942921-3-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8

Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> The aio_context_acquire() API is being removed. Drop the test case that
> calls the API.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 12:59:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 12:59:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646909.1009562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8Xw-0001rY-23; Mon, 04 Dec 2023 12:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646909.1009562; Mon, 04 Dec 2023 12: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 1rA8Xv-0001rR-VQ; Mon, 04 Dec 2023 12:59:35 +0000
Received: by outflank-mailman (input) for mailman id 646909;
 Mon, 04 Dec 2023 12:59: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=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rA8Xu-0001rL-LQ
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 12:59:34 +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 f7b7ebe3-92a4-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 13:59:32 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id EC66122063;
 Mon,  4 Dec 2023 12:59:31 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 9D37C1398A;
 Mon,  4 Dec 2023 12:59:31 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id /A0IJTPNbWWDEwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 12:59: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: f7b7ebe3-92a4-11ee-9b0f-b553b5be7939
Message-ID: <df186d0d-3178-48fe-a633-3b8f8016f5cf@suse.com>
Date: Mon, 4 Dec 2023 13:59:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/xen: add CPU dependencies for 32-bit build
Content-Language: en-US
To: Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, "H. Peter Anvin"
 <hpa@zytor.com>, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20231204084722.3789473-1-arnd@kernel.org>
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: <20231204084722.3789473-1-arnd@kernel.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------dPJG4frez8typ20Ia4vOpSRn"
X-Spamd-Bar: +++++++++++++++
X-Spam-Score: 15.00
X-Rspamd-Server: rspamd1
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine)
X-Rspamd-Queue-Id: EC66122063
X-Spam-Flag: YES
X-Spam-Level: ***************
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[11];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.00)[28.52%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------dPJG4frez8typ20Ia4vOpSRn
Content-Type: multipart/mixed; boundary="------------EdsUZfSArgzQumTGljWE0fbO";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, "H. Peter Anvin"
 <hpa@zytor.com>, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <df186d0d-3178-48fe-a633-3b8f8016f5cf@suse.com>
Subject: Re: [PATCH 1/2] x86/xen: add CPU dependencies for 32-bit build
References: <20231204084722.3789473-1-arnd@kernel.org>
In-Reply-To: <20231204084722.3789473-1-arnd@kernel.org>

--------------EdsUZfSArgzQumTGljWE0fbO
Content-Type: multipart/mixed; boundary="------------O8w0R37XlgbuJOEYjnu0t7ya"

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

T24gMDQuMTIuMjMgMDk6NDcsIEFybmQgQmVyZ21hbm4gd3JvdGU6DQo+IEZyb206IEFybmQg
QmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+DQo+IA0KPiBYZW4gb25seSBzdXBwb3J0cyBtb2Rl
cm4gQ1BVcyBldmVuIHdoZW4gcnVubmluZyBhIDMyLWJpdCBrZXJuZWwsIGFuZCBpdCBub3cN
Cj4gcmVxdWlyZXMgYSBrZXJuZWwgYnVpbHQgZm9yIGEgNjQgYnl0ZSAob3IgbGFyZ2VyKSBj
YWNoZSBsaW5lOg0KPiANCj4gSW4gZmlsZSBpbmNsdWRlZCBmcm9tIDxjb21tYW5kLWxpbmU+
Og0KPiBJbiBmdW5jdGlvbiAneGVuX3ZjcHVfc2V0dXAnLA0KPiAgICAgIGlubGluZWQgZnJv
bSAneGVuX3ZjcHVfc2V0dXBfcmVzdG9yZScgYXQgYXJjaC94ODYveGVuL2VubGlnaHRlbi5j
OjExMTozLA0KPiAgICAgIGlubGluZWQgZnJvbSAneGVuX3ZjcHVfcmVzdG9yZScgYXQgYXJj
aC94ODYveGVuL2VubGlnaHRlbi5jOjE0MTozOg0KPiBpbmNsdWRlL2xpbnV4L2NvbXBpbGVy
X3R5cGVzLmg6NDM1OjQ1OiBlcnJvcjogY2FsbCB0byAnX19jb21waWxldGltZV9hc3NlcnRf
Mjg3JyBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSBlcnJvcjogQlVJTERfQlVHX09OIGZhaWxl
ZDogc2l6ZW9mKCp2Y3B1cCkgPiBTTVBfQ0FDSEVfQllURVMNCj4gYXJjaC94ODYveGVuL2Vu
bGlnaHRlbi5jOjE2Njo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ0JVSUxEX0JV
R19PTicNCj4gICAgMTY2IHwgICAgICAgICBCVUlMRF9CVUdfT04oc2l6ZW9mKCp2Y3B1cCkg
PiBTTVBfQ0FDSEVfQllURVMpOw0KPiAgICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fg0K
PiANCj4gRW5mb3JjZSB0aGUgZGVwZW5kZW5jeSB3aXRoIGEgd2hpdGVsaXN0IG9mIENQVSBj
b25maWd1cmF0aW9ucy4gSW4gbm9ybWFsDQo+IGRpc3RybyBrZXJuZWxzLCBDT05GSUdfWDg2
X0dFTkVSSUMgaXMgZW5hYmxlZCwgYW5kIHRoaXMgd29ya3MgZmluZS4gV2hlbiB0aGlzDQo+
IGlzIG5vdCBzZXQsIHN0aWxsIGFsbG93IFhlbiB0byBiZSBidWlsdCBvbiBrZXJuZWxzIHRo
YXQgdGFyZ2V0IGEgNjQtYml0DQo+IGNhcGFibGUgQ1BVLg0KPiANCj4gRml4ZXM6IGRiMjgz
MjMwOWE4MiAoIng4Ni94ZW46IGZpeCBwZXJjcHUgdmNwdV9pbmZvIGFsbG9jYXRpb24iKQ0K
PiBTaWduZWQtb2ZmLWJ5OiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPg0KDQpSZXZp
ZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4N
Cg0K
--------------O8w0R37XlgbuJOEYjnu0t7ya
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-----

--------------O8w0R37XlgbuJOEYjnu0t7ya--

--------------EdsUZfSArgzQumTGljWE0fbO--

--------------dPJG4frez8typ20Ia4vOpSRn
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/Ey8FAmVtzTMFAwAAAAAACgkQsN6d1ii/Ey99
nggAnng/G5X6K9f9/BxLAI9EH7d8ySR9UjVM4UOJ7VwrASAO10xftaLy/U7asJfhjgpH4JOrtEvF
rrIGODKrjybCOWECfe9TUgg5kCboBomEgR9WaUZpQf6ONmiwVk9q57FzhcjU0t3A1zEzkrfGHxdq
NRIgcaae8T0qvGQW6be7py9zsIyBRHzZBGvoMrvDtTU8trt9qHhcSbPaOWBdnHgPDNaDs5klRVgV
GcIO2iyBgBCkIP28OlZVFoGYRaVhSixQIzcrBOkdGiQxMYwkmup5JvWXNiDwbNIfhDtfrmFT7hG0
NaU0TPIT5h3R5fPCtCzaxr314b4yt6gCuVSyjFnKTg==
=n1vE
-----END PGP SIGNATURE-----

--------------dPJG4frez8typ20Ia4vOpSRn--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 13:00:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 13:00:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646913.1009572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8Yi-0003SQ-A1; Mon, 04 Dec 2023 13:00:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646913.1009572; Mon, 04 Dec 2023 13: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 1rA8Yi-0003SJ-7V; Mon, 04 Dec 2023 13:00:24 +0000
Received: by outflank-mailman (input) for mailman id 646913;
 Mon, 04 Dec 2023 13:00: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=bwcF=HP=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rA8Yh-0003SD-Dy
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 13:00:23 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14f2baf6-92a5-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 14:00:21 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-50be0f13aa6so2325446e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 05:00:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 14f2baf6-92a5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701694821; x=1702299621; 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=hB0hAu0fUpxj2GhqHqzQ9MR208iJYFJMrWeCss5UAIk=;
        b=lIjr5Pf2hedspkqxygflpKZpsbIXACJV3VUjKXev/N5x+WR/vpJyYaMC8YQj6pUSZ2
         eoWW3iQFDomNTZWcI+YJEX0f87WtCmGD25xRF+Iv7DnY1Sfx1APd3f3akXH2T+cU1681
         Uv2JiPjqfgIbkJ/6WhwllLn6poqwTfg3sTxM0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701694821; x=1702299621;
        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=hB0hAu0fUpxj2GhqHqzQ9MR208iJYFJMrWeCss5UAIk=;
        b=Libs9RVBQq2fxJdysGHWM5sT3Vu6DTJpiLSD2TVdVX7GDcdDP2sj0kif5Ek9a7Y1Lu
         ovDqYunPjb1PobIzBXyDQMzXkEkycz5aknN0xc+lo6e/lbqJAS5fyHtOZQPPXan3VNAP
         X87fk2C7Wp8Meo2GwBWrliXofhcU5pVPS895yXpt8uICAuD1+CCtmLOtf110KqhS3stI
         hDQydcFWmm1eoZ06ujPhhRMaRt2ym6vb8DA4n9WTVgqNzNREan0uSul/sgBluILTaLTX
         hkiGUosLBxV24a0sKkEYYRNhl+dke4SrdUAButYDCh1UnyrB87M8ebUuiD8EA6VArDMN
         mERQ==
X-Gm-Message-State: AOJu0YyUwNcXCKA+KrIOZGXqUDVGZKGMGTzcn20lxM7eIzohIPX1r3QX
	KX0DkP63AIQELbBV//vRiuAh4Ix+t3qDK2SLciIUIw==
X-Google-Smtp-Source: AGHT+IHm4w4mHlceczZP6ViTcmso1QWUsE8ctsviqEU3IONvuts4dJBCOyXL/8clcLbBes2Gkw5/fa5UZ9qo/Dq0/0k=
X-Received: by 2002:a2e:b3d7:0:b0:2c9:c610:7c8e with SMTP id
 j23-20020a2eb3d7000000b002c9c6107c8emr3479093lje.16.1701694820715; Mon, 04
 Dec 2023 05:00:20 -0800 (PST)
MIME-Version: 1.0
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
In-Reply-To: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Mon, 4 Dec 2023 13:00:09 +0000
Message-ID: <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Dario Faggioli <dfaggioli@suse.com>, 
	Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Content-Type: multipart/mixed; boundary="0000000000004e3dfe060baeb329"

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

On Mon, Dec 4, 2023 at 10:57=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> It is only in the error case that we want to clean up the new pool's
> scheduler data; in the success case it's rather the old scheduler's
> data which needs cleaning up.
>
> Reported-by: Ren=C3=A9 Winther H=C3=B8jgaard <renewin@proton.me>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Juergen Gross <jgross@suse.com>
>
> --- a/xen/common/sched/core.c
> +++ b/xen/common/sched/core.c
> @@ -810,7 +810,7 @@ int sched_move_domain(struct domain *d,
>      for ( unit =3D old_units; unit; )
>      {
>          if ( unit->priv )
> -            sched_free_udata(c->sched, unit->priv);
> +            sched_free_udata(ret ? c->sched : old_ops, unit->priv);
>          old_unit =3D unit;
>          unit =3D unit->next_in_list;
>          xfree(old_unit);

This code is unfortunately written in a "clever" way which seems to
have introduced some confusion.  The one place which calls "goto
out_free" goes through and replaces *most* of the "old_*" variables
with the "new" equivalents.  That's why we're iterating over
`old_units` even on the failure path.

The result is that this change doesn't catch another bug on the
following line, in the error case:

sched_free_domdata(old_ops, old_domdata);

At this point, old_ops is still the old ops, but old_domdata is the
*new* domdata.

A patch like the following (compile tested only) would fix it along
the lines of the original intent:
8<-------
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index eba0cea4bb..78f21839d3 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -720,6 +720,7 @@ int sched_move_domain(struct domain *d, struct cpupool =
*c)
         {
             old_units =3D new_units;
             old_domdata =3D domdata;
+            old_ops =3D c->sched;
             ret =3D -ENOMEM;
             goto out_free;
         }
@@ -809,10 +810,15 @@ int sched_move_domain(struct domain *d, struct cpupoo=
l *c)
     domain_unpause(d);

  out_free:
+    /*
+     * NB if we've jumped here, "old_units", "old_ops", and so on will
+     * actually be pointing to the new ops, since when aborting it's
+     * the new ops we want to free.
+     */
     for ( unit =3D old_units; unit; )
     {
         if ( unit->priv )
-            sched_free_udata(c->sched, unit->priv);
+            sched_free_udata(old_ops, unit->priv);
         old_unit =3D unit;
         unit =3D unit->next_in_list;
         xfree(old_unit);
---->8

But given that this kind of cleverness has already fooled two of our
most senior developers, I'd suggest making the whole thing more
explicit; something like the attached (again compile-tested only)?

 -George

--0000000000004e3dfe060baeb329
Content-Type: application/octet-stream; 
	name="0001-sched-clarify-and-correct-sched_move_domain-s-cleanu.patch"
Content-Disposition: attachment; 
	filename="0001-sched-clarify-and-correct-sched_move_domain-s-cleanu.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lpqx5cnv0>
X-Attachment-Id: f_lpqx5cnv0

RnJvbSBhYjdlY2FlOTIxZDBmYTIxYmQyNTYxOTkwYzkxYWVkYTc5Mjc1Y2VmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNsb3VkLmNv
bT4KRGF0ZTogTW9uLCA0IERlYyAyMDIzIDEyOjI1OjAzICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
c2NoZWQ6IGNsYXJpZnkgYW5kIGNvcnJlY3Qgc2NoZWRfbW92ZV9kb21haW4oKSdzIGNsZWFudXAg
cGF0aApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9
VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKV2hpbGUgbW92aW5nIGEgZG9t
YWluLCBzY2hlZF9tb3ZlX2RvbWFpbiBmaXJzdCBtYWtlcyBwZXItc2NoZWR1bGVyCmFsbG9jYXRp
b25zIGZvciB0aGUgc2NoZWR1bGVyIG9mIHRoZSBuZXcgY3B1cG9vbCwgdGhlbiBkZWxldGVzIHRo
ZSBvbGQKb25lcy4gIEluIHRoZSBldmVudCBvZiBhbiBlcnJvciwgdGhlICpuZXcqIGFsbG9jYXRp
b25zIG11c3QgYmUgZnJlZWQKdmlhIHRoZSBuZXcgc2NoZWR1bGVyLgoKSW4gb3JkZXIgdG8gYXZv
aWQgY29kZSBkdXBsaWNhdGlvbiwgdGhlIGVycm9yIHBhdGggY29tbWFuZGVlcmVkIHRoZQpvbGRf
dW5pdHMgYW4gb2xkX2RvbWRhdGEgdmFyaWFibGVzIHRvIHBvaW50IHRoZW0gYXQgdGhlIG5ldyB1
bml0cywgc28KdGhhdCB0aGUgd2hpY2ggb24gdGhlIG5vbi1lcnJvciBwYXRoIGZyZWVkIHRoZSBv
bGQgdW5pdHMgd291bGQgbm93CmZyZWUgdGhlIG5ldyB1bml0cy4KClRoaXMgY29kZSwgaG93ZXZl
ciwgaGFkIHR3byBidWdzIGluIGl0LiAgRmlyc3QsIHdoZW4gbG9vcGluZyBvdmVyIHRoZQp1bml0
cywgaXQgYWx3YXlzIGZyZWVzIHVzaW5nICJjLT5zY2hlZCIgKHRoZSBuZXcgb3BzKTsgbWVhbmlu
ZyBvbiB0aGUKc3VjY2VzcyBwYXRoIHdlJ3JlIGZyZWVpbmcgdGhlIG9sZCBkb21kYXRhIHVzaW5n
IHRoZSBuZXcgc2NoZWR1bGVyLgpTZWNvbmRseSwgd2hlbiBmcmVlaW5nIHRoZSBkb21kYXRhLCBp
dCBhbHdheXMgZnJlZXMgdXNpbmcgb2xkX29wcywKbWVhbmluZyBvbiB0aGUgZmFpbHVyZSBwYXRo
IHdlJ3JlIGZyZWVpbmcgdGhlIG5ldyBkb21kYXRhIHVzaW5nIHRoZQpvbGQgc2NoZWR1bGVyLgoK
V2UgY291bGQgZm9sbG93IHN1aXQgd2l0aCB0aGUgZXhpc3RpbmcgY29kZSwgYW5kIG9uIHRoZSBl
cnJvciBwYXRoIHNldApvbGRfb3BzIHRvIGMtPnNjaGVkLCBhbmQgYWx3YXlzIHVzZSAib2xkX29w
cyIgaW4gdGhlIGZyZWVpbmcgY29kZS4KVGhpcyB3b3VsZCBzb2x2ZSBib3RoIHByb2JsZW1zLgoK
SG93ZXZlciwgZ2l2ZW4gdGhlIG51bWJlciBvZiBtaXN0YWtlcyBhbHJlYWR5IG1hZGUgaW4gdGhp
cyBjb2RlLCBpdApzZWVtcyBsaWtlIGEgYmV0dGVyIG9wdGlvbiBpcyB0byBtYWtlIGEgbmV3IHNl
dCBvZiBleHBsaWNpdGx5LW5hbWVkCiJmcmVlXyoiIHZhcmlhYmxlcyB0byB1c2UgZm9yIHRoaXMg
cHVycG9zZS4KCldoaWxlIGhlcmUsIHJlbmFtZSAiZG9tZGF0YSIgdG8gIm5ld19kb21kYXRhIiwg
aW4gbGluZSB3aXRoCiJuZXdfdW5pdHMiLCBmb3IgY2xhcml0eS4KClJlcG9ydGVkLWJ5OiBSZW7D
qSBXaW50aGVyIEjDuGpnYWFyZCA8cmVuZXdpbkBwcm90b24ubWU+CkluaXRpYWwtZml4LWJ5OiBK
YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5s
YXAgPGdlb3JnZS5kdW5sYXBAY2xvdWQuY29tPgotLS0KIHhlbi9jb21tb24vc2NoZWQvY29yZS5j
IHwgMzQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs
IDIwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21t
b24vc2NoZWQvY29yZS5jIGIveGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMKaW5kZXggZWJhMGNlYTRi
Yi4uYjRkMDc4NTkwMyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMKKysrIGIv
eGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMKQEAgLTY3OCwxMiArNjc4LDExIEBAIGludCBzY2hlZF9t
b3ZlX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgY3B1cG9vbCAqYykKIHsKICAgICBz
dHJ1Y3QgdmNwdSAqdjsKICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCwgKm9sZF91bml0Owot
ICAgIHN0cnVjdCBzY2hlZF91bml0ICpuZXdfdW5pdHMgPSBOVUxMLCAqb2xkX3VuaXRzOworICAg
IHN0cnVjdCBzY2hlZF91bml0ICpuZXdfdW5pdHMgPSBOVUxMLCAqb2xkX3VuaXRzLCAqZnJlZV91
bml0czsKICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqKnVuaXRfcHRyID0gJm5ld191bml0czsKICAg
ICB1bnNpZ25lZCBpbnQgbmV3X3AsIHVuaXRfaWR4OwotICAgIHZvaWQgKmRvbWRhdGE7Ci0gICAg
c3RydWN0IHNjaGVkdWxlciAqb2xkX29wcyA9IGRvbV9zY2hlZHVsZXIoZCk7Ci0gICAgdm9pZCAq
b2xkX2RvbWRhdGE7CisgICAgc3RydWN0IHNjaGVkdWxlciAqb2xkX29wcyA9IGRvbV9zY2hlZHVs
ZXIoZCksICpmcmVlX29wczsKKyAgICB2b2lkICpuZXdfZG9tZGF0YSwgKm9sZF9kb21kYXRhLCAq
ZnJlZV9kb21kYXRhOwogICAgIHVuc2lnbmVkIGludCBncmFuID0gY3B1cG9vbF9nZXRfZ3JhbnVs
YXJpdHkoYyk7CiAgICAgdW5zaWduZWQgaW50IG5fdW5pdHMgPSBkLT52Y3B1WzBdID8gRElWX1JP
VU5EX1VQKGQtPm1heF92Y3B1cywgZ3JhbikgOiAwOwogICAgIGludCByZXQgPSAwOwpAQCAtNjk2
LDEwICs2OTUsMTAgQEAgaW50IHNjaGVkX21vdmVfZG9tYWluKHN0cnVjdCBkb21haW4gKmQsIHN0
cnVjdCBjcHVwb29sICpjKQogCiAgICAgcmN1X3JlYWRfbG9jaygmc2NoZWRfcmVzX3JjdWxvY2sp
OwogCi0gICAgZG9tZGF0YSA9IHNjaGVkX2FsbG9jX2RvbWRhdGEoYy0+c2NoZWQsIGQpOwotICAg
IGlmICggSVNfRVJSKGRvbWRhdGEpICkKKyAgICBuZXdfZG9tZGF0YSA9IHNjaGVkX2FsbG9jX2Rv
bWRhdGEoYy0+c2NoZWQsIGQpOworICAgIGlmICggSVNfRVJSKG5ld19kb21kYXRhKSApCiAgICAg
ewotICAgICAgICByZXQgPSBQVFJfRVJSKGRvbWRhdGEpOworICAgICAgICByZXQgPSBQVFJfRVJS
KG5ld19kb21kYXRhKTsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCkBAIC03MTIsMTQgKzcx
MSwxNiBAQCBpbnQgc2NoZWRfbW92ZV9kb21haW4oc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGNw
dXBvb2wgKmMpCiAgICAgICAgICAgICB1bml0LT5kb21haW4gPSBkOwogICAgICAgICAgICAgdW5p
dC0+dW5pdF9pZCA9IHVuaXRfaWR4ICogZ3JhbjsKICAgICAgICAgICAgIHVuaXQtPnZjcHVfbGlz
dCA9IGQtPnZjcHVbdW5pdC0+dW5pdF9pZF07Ci0gICAgICAgICAgICB1bml0LT5wcml2ID0gc2No
ZWRfYWxsb2NfdWRhdGEoYy0+c2NoZWQsIHVuaXQsIGRvbWRhdGEpOworICAgICAgICAgICAgdW5p
dC0+cHJpdiA9IHNjaGVkX2FsbG9jX3VkYXRhKGMtPnNjaGVkLCB1bml0LCBuZXdfZG9tZGF0YSk7
CiAgICAgICAgICAgICAqdW5pdF9wdHIgPSB1bml0OwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KCAhdW5pdCB8fCAhdW5pdC0+cHJpdiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIG9sZF91bml0
cyA9IG5ld191bml0czsKLSAgICAgICAgICAgIG9sZF9kb21kYXRhID0gZG9tZGF0YTsKKyAgICAg
ICAgICAgIC8qIEZhaWx1cmUgcGF0aCBmcmVlcyB0aGUgbmV3IHVuaXRzL2RvbWRhdGEgZnJvbSB0
aGUgbmV3IG9wcyAqLworICAgICAgICAgICAgZnJlZV91bml0cyA9IG5ld191bml0czsKKyAgICAg
ICAgICAgIGZyZWVfZG9tZGF0YSA9IG5ld19kb21kYXRhOworICAgICAgICAgICAgZnJlZV9vcHMg
PSBjLT5zY2hlZDsKICAgICAgICAgICAgIHJldCA9IC1FTk9NRU07CiAgICAgICAgICAgICBnb3Rv
IG91dF9mcmVlOwogICAgICAgICB9CkBAIC03NTEsNyArNzUyLDcgQEAgaW50IHNjaGVkX21vdmVf
ZG9tYWluKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBjcHVwb29sICpjKQogICAgIG9sZF91bml0
cyA9IGQtPnNjaGVkX3VuaXRfbGlzdDsKIAogICAgIGQtPmNwdXBvb2wgPSBjOwotICAgIGQtPnNj
aGVkX3ByaXYgPSBkb21kYXRhOworICAgIGQtPnNjaGVkX3ByaXYgPSBuZXdfZG9tZGF0YTsKIAog
ICAgIHVuaXQgPSBuZXdfdW5pdHM7CiAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQpAQCAtODA4
LDE3ICs4MDksMjIgQEAgaW50IHNjaGVkX21vdmVfZG9tYWluKHN0cnVjdCBkb21haW4gKmQsIHN0
cnVjdCBjcHVwb29sICpjKQogCiAgICAgZG9tYWluX3VucGF1c2UoZCk7CiAKKyAgICAvKiBTdWNj
ZXNzIHBhdGggZnJlZXMgdGhlIG9sZCB1bml0cy9kb21kYXRhIGZyb20gdGhlIG9sZCBvcHMgKi8K
KyAgICBmcmVlX29wcyA9IG9sZF9vcHM7CisgICAgZnJlZV91bml0cyA9IG9sZF91bml0czsKKyAg
ICBmcmVlX2RvbWRhdGEgPSBvbGRfZG9tZGF0YTsKKwogIG91dF9mcmVlOgotICAgIGZvciAoIHVu
aXQgPSBvbGRfdW5pdHM7IHVuaXQ7ICkKKyAgICBmb3IgKCB1bml0ID0gZnJlZV91bml0czsgdW5p
dDsgKQogICAgIHsKICAgICAgICAgaWYgKCB1bml0LT5wcml2ICkKLSAgICAgICAgICAgIHNjaGVk
X2ZyZWVfdWRhdGEoYy0+c2NoZWQsIHVuaXQtPnByaXYpOworICAgICAgICAgICAgc2NoZWRfZnJl
ZV91ZGF0YShmcmVlX29wcywgdW5pdC0+cHJpdik7CiAgICAgICAgIG9sZF91bml0ID0gdW5pdDsK
ICAgICAgICAgdW5pdCA9IHVuaXQtPm5leHRfaW5fbGlzdDsKICAgICAgICAgeGZyZWUob2xkX3Vu
aXQpOwogICAgIH0KIAotICAgIHNjaGVkX2ZyZWVfZG9tZGF0YShvbGRfb3BzLCBvbGRfZG9tZGF0
YSk7CisgICAgc2NoZWRfZnJlZV9kb21kYXRhKGZyZWVfb3BzLCBmcmVlX2RvbWRhdGEpOwogCiAg
b3V0OgogICAgIHJjdV9yZWFkX3VubG9jaygmc2NoZWRfcmVzX3JjdWxvY2spOwotLSAKMi4yNS4x
Cgo=
--0000000000004e3dfe060baeb329--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 13:03:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 13:03:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646916.1009581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8bC-0004G1-N0; Mon, 04 Dec 2023 13:02:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646916.1009581; Mon, 04 Dec 2023 13:02:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8bC-0004Fu-KL; Mon, 04 Dec 2023 13:02:58 +0000
Received: by outflank-mailman (input) for mailman id 646916;
 Mon, 04 Dec 2023 13:02: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=qRmP=HP=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1rA8bB-0004Fk-8P
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 13:02:57 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062e.outbound.protection.outlook.com
 [2a01:111:f400:7e89::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f58ce99-92a5-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 14:02:54 +0100 (CET)
Received: from SN6PR12MB2621.namprd12.prod.outlook.com (2603:10b6:805:73::15)
 by DM6PR12MB4123.namprd12.prod.outlook.com (2603:10b6:5:21f::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 13:02:49 +0000
Received: from SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1]) by SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1%7]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023
 13:02: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: 6f58ce99-92a5-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=U+R9ct+fmdIAiDQc3V8+YYdyUAeDqcDonKzH4jb0XeWxIZuBWhy8oEXL1X0dy7nILpmoU0BlF9GhNMEblrbeXUWpzLjOTpAw8QKAUhZpcWy1+HVWX+bT7UQNYTF4LMlRbOQe3/jKzH2gYxR8ihewC1xVMCfm0yDoAm+tyfhG4ltgnyyKPYQPEdvJ0pSjOj54zYuaZVCkSw8BnUTPqrXlebpu7aPpAP/PCZOzLIZrtM06QpRrMztTOK6AowQFIsdGlJOWAkIiQ9iGRu904ZMWoc0KrqVV14kMRPE4IMgO5mSPb1dVDt8xDL36iu12M0nOF4aKIgEp3w68QJeiG72oCw==
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=aA/rz75yZpoiQATE/yALj9ePwuFL8Y46CbUJ3WV3dcw=;
 b=IsIfmF8xcmAjdQwfOiaR9uPxmLHVhPd1HNlFm4aMjIYTH2/Ww16FYfClgaRLQeabAd53W7xit4syhFWmMAG7BQeiumIkw3uDNeJ/ZwL6jjenm/9HY0K42Y5hgts9W6PRSTOPgq2VByg7wgAZzup5mgBo2urnXStTwCuwISMCW/vzWl1umj2jStF1NpEsn+BPhkH3wVbXz7WI6VR3lTE9STkFxnIv7s0pFQ0IayJW0sj3Rv+DFEvLwJknkPYYcsS8Ensm7qwBJVTNR6nPrOW4SnG/7dwOOrGWpDfEnESnIJD36RPL4ghf+/hWISVPbqPdEJO5y5nVxI28ZoGNXWQL6A==
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=aA/rz75yZpoiQATE/yALj9ePwuFL8Y46CbUJ3WV3dcw=;
 b=EbrsvCFQv5i/D1ysGFdUKzU66VX6x+Q5x8EPrBG4ewADyxNPuvB8m3spiaEwRuuFF7f1or1HbxdfQ9JyQokqGkZNSei6aHCXlwFPi/gLrhAhBYh7meVwYmO8W2ZR5OoyawTxeQCk6SE6kCngiOrbnO0km1YoWqGvGy0l3+VQYeM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
Date: Mon, 4 Dec 2023 13:02:42 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
To: Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, sstabellini@kernel.org,
 stefano.stabellini@amd.com, bertrand.marquis@arm.com, michal.orzel@amd.com,
 Volodymyr_Babchuk@epam.com
Cc: xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
Content-Language: en-GB
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0142.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:377::10) To SN6PR12MB2621.namprd12.prod.outlook.com
 (2603:10b6:805:73::15)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN6PR12MB2621:EE_|DM6PR12MB4123:EE_
X-MS-Office365-Filtering-Correlation-Id: ed498a6e-cc03-4ebf-9cd5-08dbf4c95138
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	h+DG0yr539Igq3AQac78xCn6vlLzj1SlOs0UKUsV3LniQPR8fABg1dttRGzaWRov9HCNO/vsTIAK4XEe2zkYjakvkKXeFhU5ufuzPjSuYj3RdWNTLIEjTItsqMv0IzUOoR5Pi7Sf1Qr9RkMxwvbxxADkhRYk1Vs5MNyWGiAvy6pUWtG1PV7tbQTAqjN18avLSDxnCFd2k5VPXj1kUodtPGjEMLnV/EV12jb19cnXKlupEjT63Lg1KQEzXkBAVlD3L8w/Cb2RmHh4eele28LIDeeQiH790OSRcYS8aUgk82Kzu2wJTZxAuGfXsBkpZiaLCGHPK7FDXBwg90zH2aGjj6wYnolAz82irGwMToXW2YAuQ/7P5ys/6xRjgrhqhSYAnhSceI+MDFU/8TX3t+J9fVYmBMZimd2s2cU/YWuvZlNleCDqLrCYUWqyYMeOe5ghC6KkbxU8flkyo5Z2PXQCq0E5XjAWpRim8K9j/3146PyLDpMP1I6SqZmFuwBamLfWq+eTpT/f/V0irlWm4k9IUndGMN8pDwGRvoTZNYH5dlpg40RIueBoafH98VL26GDw0enHbf2dGtu6PVQEzdtYFqsRT170nFOLiriEiLYYfa/phFDABYDY1Ng2Ch+lWGVpVT/6huhMhW80ROQfpjtTHcKIAeyBVKaMQ2EW3fJVN/EQNCsls/lBhnytA4Z/tdl3
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR12MB2621.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(376002)(396003)(136003)(366004)(230922051799003)(230273577357003)(230173577357003)(1800799012)(186009)(451199024)(64100799003)(31686004)(2616005)(8676002)(4326008)(8936002)(6512007)(6506007)(53546011)(83380400001)(26005)(6486002)(478600001)(6666004)(66476007)(66946007)(66556008)(110136005)(316002)(2906002)(36756003)(41300700001)(38100700002)(31696002)(5660300002)(30864003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c092emdjMHdQMDhvTjJ4VTJjaHpwMDBHUUdNNis5aVVVN1l3eld1Um9qN3Fw?=
 =?utf-8?B?R2xPSHdtQmpVS09vdFdqK2pkS3lBSGUzc2xDK1JiMFVkRDBwNjZlWlVxRENV?=
 =?utf-8?B?TTRWRUk2RE1FOExCb05TSHA2Ykk1ZHduL1UyZnZQUDBrb2RTdUdtQ1A5QXg2?=
 =?utf-8?B?MHpXdWJEYmdaOUh5cWFwVkMxQU5MUjFZUkdScWxKQmxBaUhwTExmaDYwMnFM?=
 =?utf-8?B?MmdvYW5CcEMwVXZNKzlpa2RRbmN5QUl6RmJzK0JpcVBKcUNyM2ZXeEdFN1Nv?=
 =?utf-8?B?RW5sWHZWQnBNVXVKcy9NY3BhWmZsZ1F5WlB3aGZxRXYwYVRZd2Z4c21GOVpt?=
 =?utf-8?B?YkxlNlVZWVAwUytJazlkV2RmbEc5ZzN2RnV5Qkc4OVJRNkM5ZkpKMmljRlhJ?=
 =?utf-8?B?NnpkUmxUaVdlNjBrVFdWL1dnd0VKU29WLzlsTkxIbEZDa3VsazNnaFB0RW9D?=
 =?utf-8?B?eHpXUGhkSGs1ZUFFRGxJYnVuYXlyMjI3dFdrZzdybXZjbk1kY0J2QUx4QnhU?=
 =?utf-8?B?aTlES1JoYWhLNG9uZy9NNmR0RlJWVDl4VHM4RHlzcU5MMTFBWHFOT3Zxankv?=
 =?utf-8?B?SGU5ZDdUV1dvSEVGdWsrU0RRL0h0dlNRYVpoRVBsR3RabzZ5bDNZZjNJMzBl?=
 =?utf-8?B?bmthWUg5Q21IU09tWm9YNzVUcmNqcUtvZWlCRmQvTHBkS2l3QmxFU1pZa1M4?=
 =?utf-8?B?WmpYL1JGbjk2QkxjWkFFOWVpK0hiTTBFcWpEbXhSaEMwcnJuYi9XcUc3U2Nk?=
 =?utf-8?B?cy85YmZoN3pLY2JjMFFzcDMyNkJJVzYwYWFMd0Rjem9DWHZDWmxqazFOYUZK?=
 =?utf-8?B?UEpqTHUxUXZRN2ljSmFzVDl3dGhZZmFuY3JNU1Y5Y3AxTHFUNU1SS0dNWmtL?=
 =?utf-8?B?TzlkaWhVVUlFZWJnVVVuazkxM3lkWHRhZVpEdkJVaCtWcCttUGgwQ1BmRHRa?=
 =?utf-8?B?MnlJL0F1U3I2THRPSFN4ZVBVY1ZRK29DVnB1UTd1S2VWNUFFeXN5cTVnb0pk?=
 =?utf-8?B?aHFRYmhwcUhnMkVFWGk3MW1rNXhva3gvMCtrRnVjOHBiOGhnbUNXRjRWa2J4?=
 =?utf-8?B?Y3ZRMGRiOHh2S3Y4dnRDZmh1UGN1MUNZZEdPb2sxQWc1aFFHUWlXMFBJTUpI?=
 =?utf-8?B?TlhsRzNNUkx6WjRZMEpJYnJFaE9OdkVNOTZKY1NoYjhYNDlWaGozaHZDb0E5?=
 =?utf-8?B?eG9uL04xZnBCOFVRQVRwVzBBRFdPSkh0THNTZVNaa3MzNmpPbXZUL25WOHph?=
 =?utf-8?B?ZDlxa2x4VENNa1A1NzdDbVh6Z3lobGM3UlRGdlJlOUtFQTgvZEtZejc2dDJM?=
 =?utf-8?B?cW9pUkhmWjlGTElUZ1JPQSs2VEtGNGR4TXdESmNGeGZneWc2S2FkNWM0OHNq?=
 =?utf-8?B?bnFVNXVoTGN1b1FocVA3cy81YVBjcTdQOXZVZHBLWlRjNGtSZEplRUJ6ZE56?=
 =?utf-8?B?U3BsTk9VbHNucEs1TWU4Y1ZwYWZSQ0dyRzFzakdOSFN2MWJ6dmRCamlTT08r?=
 =?utf-8?B?bFpkWlk4RkdienR4UG9iREdzZFFDdUE0YzR4RzVjamo4d09DY0NLUmIybHZs?=
 =?utf-8?B?bkIvbUZhWTczNktCVlhnMURjaVRTWEhTVkFNbnJwZ1cvek1vaHJjUW5RS1NV?=
 =?utf-8?B?djVZWklMVnBxM1BnNFp2dnorTnBDVEJBeVVzbjk5N2FhblpNc2U2TUF2bVJS?=
 =?utf-8?B?RlJmbm1uek84VThTcm1TQ2hRZHZJaEl4bUZnK09yWGRrdS9OMVZadEthbktB?=
 =?utf-8?B?UVQ2clVWYnVnQ1FTdGZvckJoSVZmR0NaVE1RYkdSbmY5Z3dtdEhQL0I0UU1i?=
 =?utf-8?B?eTdzanNtSjJFR0RlUDJyOU5HZlBVQVAwWGJFczhQdzNCdjI0OFB4Z0drZXEv?=
 =?utf-8?B?WGVoT0lMb0gxL2JtQ05mYXhtMzR4eW8xV2VYektQMDRJSHRsd0FObnJRQ1Zk?=
 =?utf-8?B?MVhjQUdhYkZCUzVuUG56cGlaRzd1Vit3K2VwYWRLYXFRME5MeG1WbzVaZXNj?=
 =?utf-8?B?ODN1OG10STh1SkttQkhLcTFMOXlpSWw1ZlBaZVc0VDVZTHNxVkN2VUx0TXUx?=
 =?utf-8?B?ZVpka1pPMWMyWkxpNmk1ZkhiV3RCQk8wNUl2R0gvN3lGZEoycFRZa3Z3VXhL?=
 =?utf-8?Q?fnl8ihuOAKs25cTm13qwXViTn?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed498a6e-cc03-4ebf-9cd5-08dbf4c95138
X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2621.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 13:02:49.3834
 (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: Mv7Q9Bi8fE3dbo0BxU/uZ56WdVqLowHwQY+qroWz+U9z+nNDyUGNlrj0YGFcEljXKRJ5yYdovZs7xTX/dX/C/g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4123


On 04/12/2023 10:31, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 01/12/2023 18:50, Ayan Kumar Halder wrote:
>> Currently if user enables HVC_DCC config option in Linux, it invokes
>> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
>> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
>> an undefined exception to the guest. And Linux crashes.
>
> I am missing some data points here to be able to say whether I would 
> be ok with emulating the registers. So some questions:
> Â  * As you wrote below, HVC_DCC will return -ENODEV after this 
> emulation. So may I ask what's the use case to enable it? (e.g. is 
> there a distro turning this on?)

I am not aware of any distro using (or not using) this feature. This 
issue came to light during our internal testing, when HVC_DCC was 
enabled to use the debug console. When Linux runs without Xen, then we 
could observe the logs on the debug console. When Linux was running as a 
VM, it crashed.

My intention here was to do the bare minimum emulation so that the crash 
could be avoided.

> Â * Linux is writing to the registers unconditionally, but is the spec 
> mandating the implementation of the registers? (I couldn't find either 
> way)

 From ARM DDI 0487I.a ID081822, H1.2, External debug,

"The Debug Communications Channel, DCC, passes data between the PE and 
the debugger:

â€” The DCC includes the data transfer registers, DTRRX and DTRTX, and 
associated flow-control flags.

â€” Although the DCC is an essential part of Debug state operation, it can 
also be used in Non-debug state."

 From this I infer that the spec mandates the implementation of these 
registers. IOW, these registers should always be present in any Arm 
compliant SoC.

> Â * When was this check introduced in Linux? Did it ever changed?
>
This check was introduced in the following commit

"commit f377775dc083506e2fd7739d8615971c46b5246e
Author: Rob Herring <rob.herring@calxeda.com>
Date:Â Â  Tue Sep 24 21:05:58 2013 -0500

 Â Â Â  TTY: hvc_dcc: probe for a JTAG connection before registering

 Â Â Â  Enabling the ARM DCC console and using without a JTAG connection will
 Â Â Â  simply hang the system. Since distros like to turn on all options, this
 Â Â Â  is a reoccurring problem to debug. We can do better by checking if
 Â Â Â  anything is attached and handling characters. There is no way to probe
 Â Â Â  this, so send a newline and check that it is handled.
"

As of today, this check hasn't changed.

>>
>> We wish to avoid this crash by adding a "partial" emulation. DBGDTR_EL0
>> is emulated as TXfull | RXfull.
>
> Skimming through the Arm Arm, I see that TXfull and Rxfull indicates 
> that both buffers are full but it doesn't explicitly say this means 
> the feature is not available.
We are not saying that the feature is not available. Rather ...
>
> I understand this is what Linux checks, but if we want to partially 
> emulate the registers in Xen, then I'd like us to make sure this is 
> backed by the Arm Arm rather than based on Linux implementation (which 
> can change at any point).
>
>> Refer ARM DDI 0487I.a ID081822, D17.3.8, DBGDTRTX_EL0
>> "If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN"
>> Also D17.3.7 DBGDTRRX_EL0,
>> " If RXfull is set to 1, return the last value written to DTRRX."
>>
>> Thus, any OS is expected to read DBGDTR_EL0 and check for TXfull
>> before using DBGDTRTX_EL0. Linux does it via hvc_dcc_init() --->
>> hvc_dcc_check() , it returns -ENODEV. In this way, we are preventing
>> the guest to be aborted.
>
> See above, what guarantees us that Linux will not change this behavior 
> in the future?

If I understand "If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN" 
correctly, it seems that Arm ARM expects OS to check for TXfull.

If the condition is true, it should return some error.

Let me know if I misunderstood this.

>
>>
>> We also emulate DBGDTRTX_EL0 as RAZ/WI.
>>
>> We have added emulation for AArch32 variant of these registers as well.
>> Also, we have added handle_read_val_wi() to emulate DBGDSCREXT register
>> to return a specific value (ie TXfull | RXfull) and ignore any writes
>> to this register.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>
> We usually expect the first Signed-off-by to also be the author. So 
> should Michal be the author of this patch?
Yes, I will make Michal as the author.
>
>> ---
>> Â  xen/arch/arm/arm64/vsysreg.cÂ Â Â Â Â Â Â Â  | 21 ++++++++++++++----
>> Â  xen/arch/arm/include/asm/arm64/hsr.h |Â  3 +++
>> Â  xen/arch/arm/include/asm/cpregs.hÂ Â Â  |Â  2 ++
>> Â  xen/arch/arm/include/asm/traps.hÂ Â Â Â  |Â  4 ++++
>> Â  xen/arch/arm/traps.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 18 +++++++++++++++
>> Â  xen/arch/arm/vcpreg.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 33 +++++++++++++++++++++-------
>> Â  6 files changed, 69 insertions(+), 12 deletions(-)
>>
>> diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
>> index b5d54c569b..5082dfb02e 100644
>> --- a/xen/arch/arm/arm64/vsysreg.c
>> +++ b/xen/arch/arm/arm64/vsysreg.c
>> @@ -159,9 +159,6 @@ void do_sysreg(struct cpu_user_regs *regs,
>> Â Â Â Â Â Â  *
>> Â Â Â Â Â Â  * Unhandled:
>> Â Â Â Â Â Â  *Â Â Â  MDCCINT_EL1
>> -Â Â Â Â  *Â Â Â  DBGDTR_EL0
>> -Â Â Â Â  *Â Â Â  DBGDTRRX_EL0
>> -Â Â Â Â  *Â Â Â  DBGDTRTX_EL0
>> Â Â Â Â Â Â  *Â Â Â  OSDTRRX_EL1
>> Â Â Â Â Â Â  *Â Â Â  OSDTRTX_EL1
>> Â Â Â Â Â Â  *Â Â Â  OSECCR_EL1
>> @@ -172,11 +169,27 @@ void do_sysreg(struct cpu_user_regs *regs,
>> Â Â Â Â Â  case HSR_SYSREG_MDSCR_EL1:
>> Â Â Â Â Â Â Â Â Â  return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>> Â Â Â Â Â  case HSR_SYSREG_MDCCSR_EL0:
>> +Â Â Â  {
>> +Â Â Â Â Â Â Â  /*
>> +Â Â Â Â Â Â Â Â  * Bit 29: TX full, bit 30: RX full
>> +Â Â Â Â Â Â Â Â  * Given that we emulate DCC registers as RAZ/WI, doing the 
>> same for
>> +Â Â Â Â Â Â Â Â  * MDCCSR_EL0 would cause a guest to continue using the DCC 
>> despite no
>> +Â Â Â Â Â Â Â Â  * real effect. Setting the TX/RX status bits should result 
>> in a probe
>> +Â Â Â Â Â Â Â Â  * fail (based on Linux behavior).
>> +Â Â Â Â Â Â Â Â  */
>> +Â Â Â Â Â Â Â  register_t guest_reg_value = (1U << 29) | (1U << 30);
>> +
>> Â Â Â Â Â Â Â Â Â  /*
>> Â Â Â Â Â Â Â Â Â Â  * Accessible at EL0 only if MDSCR_EL1.TDCC is set to 0. We 
>> emulate that
>> Â Â Â Â Â Â Â Â Â Â  * register as RAZ/WI above. So RO at both EL0 and EL1.
>> Â Â Â Â Â Â Â Â Â Â  */
>> -Â Â Â Â Â Â Â  return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
>> +Â Â Â Â Â Â Â  return handle_ro_read_val(regs, regidx, hsr.sysreg.read, 
>> hsr, 0,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  guest_reg_value);
>> +Â Â Â  }
>> +Â Â Â  case HSR_SYSREG_DBGDTR_EL0:
>> +Â Â Â  /* DBGDTR[TR]X_EL0 share the same encoding */
>> +Â Â Â  case HSR_SYSREG_DBGDTRTX_EL0:
>> +Â Â Â Â Â Â Â  return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 0);
>> Â Â Â Â Â  HSR_SYSREG_DBG_CASES(DBGBVR):
>> Â Â Â Â Â  HSR_SYSREG_DBG_CASES(DBGBCR):
>> Â Â Â Â Â  HSR_SYSREG_DBG_CASES(DBGWVR):
>> diff --git a/xen/arch/arm/include/asm/arm64/hsr.h 
>> b/xen/arch/arm/include/asm/arm64/hsr.h
>> index e691d41c17..1495ccddea 100644
>> --- a/xen/arch/arm/include/asm/arm64/hsr.h
>> +++ b/xen/arch/arm/include/asm/arm64/hsr.h
>> @@ -47,6 +47,9 @@
>> Â  #define HSR_SYSREG_OSDLR_EL1Â Â Â Â Â  HSR_SYSREG(2,0,c1,c3,4)
>> Â  #define HSR_SYSREG_DBGPRCR_EL1Â Â Â  HSR_SYSREG(2,0,c1,c4,4)
>> Â  #define HSR_SYSREG_MDCCSR_EL0Â Â Â Â  HSR_SYSREG(2,3,c0,c1,0)
>> +#define HSR_SYSREG_DBGDTR_EL0Â Â Â Â  HSR_SYSREG(2,3,c0,c4,0)
>> +#define HSR_SYSREG_DBGDTRTX_EL0Â Â  HSR_SYSREG(2,3,c0,c5,0)
>> +#define HSR_SYSREG_DBGDTRRX_EL0Â Â  HSR_SYSREG(2,3,c0,c5,0)
>> Â  Â  #define HSR_SYSREG_DBGBVRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,4)
>> Â  #define HSR_SYSREG_DBGBCRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,5)
>> diff --git a/xen/arch/arm/include/asm/cpregs.h 
>> b/xen/arch/arm/include/asm/cpregs.h
>> index 6b083de204..aec9e8f329 100644
>> --- a/xen/arch/arm/include/asm/cpregs.h
>> +++ b/xen/arch/arm/include/asm/cpregs.h
>> @@ -75,6 +75,8 @@
>> Â  #define DBGDIDRÂ Â Â Â Â Â Â Â  p14,0,c0,c0,0Â Â  /* Debug ID Register */
>> Â  #define DBGDSCRINTÂ Â Â Â Â  p14,0,c0,c1,0Â Â  /* Debug Status and Control 
>> Internal */
>> Â  #define DBGDSCREXTÂ Â Â Â Â  p14,0,c0,c2,2Â Â  /* Debug Status and Control 
>> External */
>> +#define DBGDTRRXINTÂ Â Â Â  p14,0,c0,c5,0Â Â  /* Debug Data Transfer 
>> Register, Receive */
>> +#define DBGDTRTXINTÂ Â Â Â  p14,0,c0,c5,0Â Â  /* Debug Data Transfer 
>> Register, Transmit */
>> Â  #define DBGVCRÂ Â Â Â Â Â Â Â Â  p14,0,c0,c7,0Â Â  /* Vector Catch */
>> Â  #define DBGBVR0Â Â Â Â Â Â Â Â  p14,0,c0,c0,4Â Â  /* Breakpoint Value 0 */
>> Â  #define DBGBCR0Â Â Â Â Â Â Â Â  p14,0,c0,c0,5Â Â  /* Breakpoint Control 0 */
>> diff --git a/xen/arch/arm/include/asm/traps.h 
>> b/xen/arch/arm/include/asm/traps.h
>> index 883dae368e..a2692722d5 100644
>> --- a/xen/arch/arm/include/asm/traps.h
>> +++ b/xen/arch/arm/include/asm/traps.h
>> @@ -56,6 +56,10 @@ void handle_ro_raz(struct cpu_user_regs *regs, int 
>> regidx, bool read,
>> Â  void handle_ro_read_val(struct cpu_user_regs *regs, int regidx, 
>> bool read,
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const union hsr hsr, int min_el, register_t 
>> val);
>> Â  +/* Read only as value provided with 'val' argument, write ignore */
>> +void handle_read_val_wi(struct cpu_user_regs *regs, int regidx,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const union hsr hsr, int min_el, register_t 
>> val);
>> +
>> Â  /* Co-processor registers emulation (see arch/arm/vcpreg.c). */
>> Â  void do_cp15_32(struct cpu_user_regs *regs, const union hsr hsr);
>> Â  void do_cp15_64(struct cpu_user_regs *regs, const union hsr hsr);
>> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
>> index 3784e8276e..f5ab555b19 100644
>> --- a/xen/arch/arm/traps.c
>> +++ b/xen/arch/arm/traps.c
>> @@ -1676,6 +1676,24 @@ void handle_ro_read_val(struct cpu_user_regs 
>> *regs,
>> Â Â Â Â Â  advance_pc(regs, hsr);
>> Â  }
>> Â  +/* Read as value provided with 'val' argument of this function, 
>> write ignore */
>> +void handle_read_val_wi(struct cpu_user_regs *regs,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  int regidx,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const union hsr hsr,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  int min_el,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  register_t val)
>> +{
>> +Â Â Â  ASSERT((min_el == 0) || (min_el == 1));
>> +
>> +Â Â Â  if ( min_el > 0 && regs_mode_is_user(regs) )
>> +Â Â Â Â Â Â Â  return inject_undef_exception(regs, hsr);
>> +
>> +Â Â Â  set_user_reg(regs, regidx, val);
>> +
>> +Â Â Â  advance_pc(regs, hsr);
>> +}
>> +
>> +
>> Â  /* Read only as read as zero */
>> Â  void handle_ro_raz(struct cpu_user_regs *regs,
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  int regidx,
>> diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
>> index 39aeda9dab..3f1276f96e 100644
>> --- a/xen/arch/arm/vcpreg.c
>> +++ b/xen/arch/arm/vcpreg.c
>> @@ -548,20 +548,37 @@ void do_cp14_32(struct cpu_user_regs *regs, 
>> const union hsr hsr)
>> Â Â Â Â Â Â Â Â Â  break;
>> Â Â Â Â Â  }
>> Â  -Â Â Â  case HSR_CPREG32(DBGDSCRINT):
>> +Â Â Â  case HSR_CPREG32(DBGDSCREXT):
>> +Â Â Â  {
>> Â Â Â Â Â Â Â Â Â  /*
>> -Â Â Â Â Â Â Â Â  * Read-only register. Accessible by EL0 if DBGDSCRext.UDCCdis
>> -Â Â Â Â Â Â Â Â  * is set to 0, which we emulated below.
>> +Â Â Â Â Â Â Â Â  * Bit 29: TX full, bit 30: RX full
>> +Â Â Â Â Â Â Â Â  * Given that we emulate DCC registers as RAZ/WI, doing the 
>> same for
>> +Â Â Â Â Â Â Â Â  * DBGDSCRint would cause a guest to continue using the DCC 
>> despite no
>> +Â Â Â Â Â Â Â Â  * real effect. Setting the TX/RX status bits should result 
>> in a probe
>> +Â Â Â Â Â Â Â Â  * fail (based on Linux behavior).
> If you want to mention Linux then you need to be a bit more specific 
> because Linux can change at any point. So you at least want to specify 
> the Linux version and place in the code.
>
> So this doesn't get stale as soon as the HVC_DCC driver changes.

(based on Linux behavior since f377775dc083).

- Ayan

>
>> Â Â Â Â Â Â Â Â Â Â  */
>> -Â Â Â Â Â Â Â  return handle_ro_raz(regs, regidx, cp32.read, hsr, 1);
>> +Â Â Â Â Â Â Â  register_t guest_reg_value = (1U << 29) | (1U << 30);
>> Â  -Â Â Â  case HSR_CPREG32(DBGDSCREXT):
>> +Â Â Â Â Â Â Â  return handle_read_val_wi(regs, regidx, hsr, 1,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  guest_reg_value);
>> +Â Â Â  }
>> +
>> +Â Â Â  case HSR_CPREG32(DBGDSCRINT):
>> +Â Â Â  {
>> Â Â Â Â Â Â Â Â Â  /*
>> -Â Â Â Â Â Â Â Â  * Implement debug status and control register as RAZ/WI.
>> -Â Â Â Â Â Â Â Â  * The OS won't use Hardware debug if MDBGen not set.
>> +Â Â Â Â Â Â Â Â  * Bit 29: TX full, bit 30: RX full
>> +Â Â Â Â Â Â Â Â  * Given that we emulate DCC registers as RAZ/WI, doing the 
>> same for
>> +Â Â Â Â Â Â Â Â  * DBGDSCRint would cause a guest to continue using the DCC 
>> despite no
>> +Â Â Â Â Â Â Â Â  * real effect. Setting the TX/RX status bits should result 
>> in a probe
>> +Â Â Â Â Â Â Â Â  * fail (based on Linux behavior).
>> Â Â Â Â Â Â Â Â Â Â  */
>> -Â Â Â Â Â Â Â  return handle_raz_wi(regs, regidx, cp32.read, hsr, 1);
>> +Â Â Â Â Â Â Â  register_t guest_reg_value = (1U << 29) | (1U << 30);
>> +
>> +Â Â Â Â Â Â Â  return handle_ro_read_val(regs, regidx, cp32.read, hsr, 1,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  guest_reg_value);
>> +Â Â Â  }
>> Â  +Â Â Â  case HSR_CPREG32(DBGDTRTXINT):
>> Â Â Â Â Â  case HSR_CPREG32(DBGVCR):
>> Â Â Â Â Â  case HSR_CPREG32(DBGBVR0):
>> Â Â Â Â Â  case HSR_CPREG32(DBGBCR0):
>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 13:18:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 13:18:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646925.1009591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8pm-0007pI-40; Mon, 04 Dec 2023 13:18:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646925.1009591; Mon, 04 Dec 2023 13:18:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8pm-0007pB-0q; Mon, 04 Dec 2023 13:18:02 +0000
Received: by outflank-mailman (input) for mailman id 646925;
 Mon, 04 Dec 2023 13:18: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA8pk-0007p5-NR
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 13:18:00 +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 8bb60d15-92a7-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 14:17:59 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40a4848c6e1so45846985e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 05:17:59 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 fb13-20020a05600c520d00b0040b3e7569fcsm18522993wmb.11.2023.12.04.05.17.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 05:17:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bb60d15-92a7-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701695879; x=1702300679; 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=33Rutust3RPtLW6QbveDXqKoII39w2irxSt0w099HAg=;
        b=vH1wNvf8FVK//3t1JJtumnu+hll2Ye+HGncxhzAngoAKNsl3GRB0C0PfIGq1wBXLsC
         7EM+Njd3vnYZVy1p7W6Z5jyEHkMqhqgXNa0WGYm6MkrPZB1ULFIpopXJ0HquDx95M+3f
         bjPQB0Dov9LPenyZLNBrzfWgacVAMiJZpLCr8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701695879; x=1702300679;
        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=33Rutust3RPtLW6QbveDXqKoII39w2irxSt0w099HAg=;
        b=YJJgaMG3SGwIl/gJGaNhPqDdyP8r0cFtTMajdFm1FZc+NyLhazDDszcpJy2bpcsYdt
         Obhp4eJHL+DHLL2a9kZYa/IHPTd9eRtQvYsJbbJ5WjzJwcXJl/MvS/PXlOutrdt49WOd
         JWDIe9apV1wswmTZPDIwj4LBakNjpQycFkwX55VPa+I27RV6j51Y0iQAKoc2ts40nnaf
         +tHwAp13Sf0J1wjJxHwNRtPLEPZQA9WSjFeAxwf8mkg8tuSuSk0D6eu//OkrroUfGX0H
         kd4q7C5biW2KT+esLYSUs1pfdiGjgLKTCzxsni9TwKAkAy1Fl4qgxRWdDLm4GZI5+HOq
         1xFg==
X-Gm-Message-State: AOJu0YzWi2YN4iEbaLkX5dW/DvyghU0aGzIbHxLl7oHPpo9ubYXW/7AA
	8Yp9fpJU5NMKWvc9cGX7lzpzug==
X-Google-Smtp-Source: AGHT+IF4BybFkBkpeYuBYL/57F4U8qGRqM0vMd8ifiIciKjA0LQQfQpKQY3u3kE8arABqJe0KUt2mg==
X-Received: by 2002:a05:600c:1d19:b0:40b:5e21:bdb0 with SMTP id l25-20020a05600c1d1900b0040b5e21bdb0mr2178658wms.63.1701695879214;
        Mon, 04 Dec 2023 05:17:59 -0800 (PST)
Date: Mon, 4 Dec 2023 14:17:57 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH] bump default SeaBIOS version to 1.16.3
Message-ID: <ZW3RhTc9RHFCLkSN@macbook>
References: <03a33b69-b028-4f30-bd26-4e347c2c5c87@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <03a33b69-b028-4f30-bd26-4e347c2c5c87@suse.com>

On Mon, Dec 04, 2023 at 12:12:58PM +0100, Jan Beulich wrote:
> 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 Mon Dec 04 13:18:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 13:18:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646930.1009602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8qe-0000Bo-Co; Mon, 04 Dec 2023 13:18:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646930.1009602; Mon, 04 Dec 2023 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 1rA8qe-0000Bh-AF; Mon, 04 Dec 2023 13:18:56 +0000
Received: by outflank-mailman (input) for mailman id 646930;
 Mon, 04 Dec 2023 13:18:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/x5/=HP=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rA8qd-0000BZ-9j
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 13:18:55 +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 ab9135d2-92a7-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 14:18:54 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-628-mkzkasI9PUCWPgI5RxpOKg-1; Mon, 04 Dec 2023 08:18:49 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9B9E1101A52D;
 Mon,  4 Dec 2023 13:18:48 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.237])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id B423140C6EB9;
 Mon,  4 Dec 2023 13:18:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab9135d2-92a7-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701695932;
	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=VHQ4HR2B7MLC//HgFh3nAtqLerMP/Y4A9vM9X/MfQuk=;
	b=Y/yT/TrpLB5Gj9E15XhysxQkcjQEqu390dVfNjgfuiQY1BxT+pk16SpTDI8m4Wb8rqEYY0
	pcL4gi3/mFgjm4aMYomwRYeO7A32+A7FETXcSFCl8oOVWD0+shDZwThZglxzdOBGtNuqdP
	FSitNfdh0W3hiy0q7nhV1VRH73lvN6o=
X-MC-Unique: mkzkasI9PUCWPgI5RxpOKg-1
Date: Mon, 4 Dec 2023 14:18:42 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 03/12] aio: make
 aio_context_acquire()/aio_context_release() a no-op
Message-ID: <ZW3RsnWZou44DFSE@redhat.com>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-4-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231129195553.942921-4-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2

Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> aio_context_acquire()/aio_context_release() has been replaced by
> fine-grained locking to protect state shared by multiple threads. The
> AioContext lock still plays the role of balancing locking in
> AIO_WAIT_WHILE() and many functions in QEMU either require that the
> AioContext lock is held or not held for this reason. In other words, the
> AioContext lock is purely there for consistency with itself and serves
> no real purpose anymore.
> 
> Stop actually acquiring/releasing the lock in
> aio_context_acquire()/aio_context_release() so that subsequent patches
> can remove callers across the codebase incrementally.
> 
> I have performed "make check" and qemu-iotests stress tests across
> x86-64, ppc64le, and aarch64 to confirm that there are no failures as a
> result of eliminating the lock.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

YOLO.

Acked-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 13:20:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 13:20:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646934.1009612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8sS-0001zV-PU; Mon, 04 Dec 2023 13:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646934.1009612; Mon, 04 Dec 2023 13:20:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8sS-0001zO-Lo; Mon, 04 Dec 2023 13:20:48 +0000
Received: by outflank-mailman (input) for mailman id 646934;
 Mon, 04 Dec 2023 13:20:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aSPQ=HP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rA8sR-0001xk-Jv
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 13:20:47 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef326aa3-92a7-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 14:20:46 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40838915cecso45219975e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 05:20:46 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 az33-20020a05600c602100b0040c03c3289bsm8575397wmb.37.2023.12.04.05.20.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 05:20:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef326aa3-92a7-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701696046; x=1702300846; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=lRkNhFftyAeH31ks+enNpkoW+966GXjOkrNtq0j45ps=;
        b=Ur7IjuqUs41Eigyt1Fo0XJt2qoxVT8UBKT5drwrh2H03T9+4+4VmH74Ec7H73/eUzI
         Qqgkp1oTDMKaWY61UQYGsko1v4MRJad4ndsPLIZcJf6Gw/ZgmhRUuY+6rzgTUD9aCQhx
         In56JRp8soo2g8zfPQnJEQPAZJX65/83BJtlM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701696046; x=1702300846;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=lRkNhFftyAeH31ks+enNpkoW+966GXjOkrNtq0j45ps=;
        b=In/L80uAcZ5naKSX6Cz7bfvmZNGC4rFtkz/hFmntuwK5YzCFif3/TfM2z0AWjjNAtZ
         oNIY4EU/P7wZ5lQ6q7j2rLRRXwTGzyIjCErr06qwZKwjhU0K7GxBIvOJvP/E1j1xu7LF
         kmJtGJVwG//kIdSQc6sI3tulEjw/tKP8v1TdGYuJZHdHP0G5muKBGwlZBqZ6i0b/RHB3
         4dEgGhmdiX9qw+XAQRuOEkwd0cjYrVVTW0irPj5t5L7z7QWo+afnRr4NOsJ6Cr82Fjt3
         f2lTddynTE02Vpdn+R17KzljlbHJcS8KVQ7UtTrhEpJxhv4A7N/0JilUkMbzDOFBW9JK
         97Fg==
X-Gm-Message-State: AOJu0YzG2I8i6lmwtffB0lpRbbKdUjpgXvmUfkJaldCkG5v97hFDlzeG
	YcSN0ePMQbKD0TGIjxU/xaL0XA==
X-Google-Smtp-Source: AGHT+IH04g+r5UAKrTDQlF/LGT4+1wXsX0v9SWtQdIzfNWpQ6wWj1WhaUTBgg3oAGz1jaGNhz0lYrA==
X-Received: by 2002:a05:600c:5129:b0:407:7ea1:e9a4 with SMTP id o41-20020a05600c512900b004077ea1e9a4mr2483055wms.5.1701696046103;
        Mon, 04 Dec 2023 05:20:46 -0800 (PST)
Message-ID: <76790232-a83f-4641-b362-585a65e50528@citrix.com>
Date: Mon, 4 Dec 2023 13:20:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86emul: avoid triggering event related assertions
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <a056a258-51c0-2721-1ef2-1e7796c85659@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <a056a258-51c0-2721-1ef2-1e7796c85659@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/04/2023 1:23 pm, Jan Beulich wrote:
> The assertion at the end of x86_emulate_wrapper() as well as the ones
> in x86_emul_{hw_exception,pagefault}() can trigger if we ignore
> X86EMUL_EXCEPTION coming back from certain hook functions. Squash
> exceptions when merely probing MSRs, plus on SWAPGS'es "best effort"
> error handling path.
>
> In adjust_bnd() add another assertion after the read_xcr(0, ...)
> invocation, paralleling the one in x86emul_get_fpu() - XCR0 reads should
> never fault when XSAVE is (implicitly) known to be available.
>
> Also update the respective comment in x86_emulate_wrapper().
>
> Fixes: 14a6be89ec04 ("x86emul: correct EFLAGS.TF handling")
> Fixes: cb2626c75813 ("x86emul: conditionally clear BNDn for branches")
> Fixes: 6eb43fcf8a0b ("x86emul: support SWAPGS")
> Reported-by: AFL
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 13:22:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 13:22:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646936.1009621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8tb-0002eI-2h; Mon, 04 Dec 2023 13:21:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646936.1009621; Mon, 04 Dec 2023 13:21:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA8ta-0002eB-Vu; Mon, 04 Dec 2023 13:21:58 +0000
Received: by outflank-mailman (input) for mailman id 646936;
 Mon, 04 Dec 2023 13: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=/x5/=HP=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rA8tZ-0002e3-Fw
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 13:21:57 +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 17dac7d9-92a8-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 14:21:55 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-77-ZOo2ok2OMkqoi5jbbBhWEA-1; Mon, 04 Dec 2023 08:21:49 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3E0F088D044;
 Mon,  4 Dec 2023 13:21:48 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.237])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 5098240C6EB9;
 Mon,  4 Dec 2023 13:21: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: 17dac7d9-92a8-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701696114;
	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=Q67bgl+WrnYaCgZVyHzoiOzX46IFG9rk/6uwJuMvZTw=;
	b=OZ69ufndUhaZZ7MHvOLKHOk6LCY5uGcMseesEfyu+8/iOtMU2udwVKZi85Ey7o7cmpevAu
	GL92eWfmGLNAOrwPnCBorMlryaNrn40XyCVnJvw9sznLhqn6i0PNzz/F4CyR8A4qyS7xoW
	KcaB1IFzDs0UTraduWzfaIoQoN6yfbA=
X-MC-Unique: ZOo2ok2OMkqoi5jbbBhWEA-1
Date: Mon, 4 Dec 2023 14:21:43 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 04/12] graph-lock: remove AioContext locking
Message-ID: <ZW3SZ4Jv08FM3KqV@redhat.com>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-5-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231129195553.942921-5-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2

Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> Stop acquiring/releasing the AioContext lock in
> bdrv_graph_wrlock()/bdrv_graph_unlock() since the lock no longer has any
> effect.
> 
> The distinction between bdrv_graph_wrunlock() and
> bdrv_graph_wrunlock_ctx() becomes meaningless and they can be collapsed
> into one function.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 13:47:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 13:47:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646948.1009632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA9IE-0000mO-30; Mon, 04 Dec 2023 13:47:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646948.1009632; Mon, 04 Dec 2023 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 1rA9ID-0000mH-W9; Mon, 04 Dec 2023 13:47:25 +0000
Received: by outflank-mailman (input) for mailman id 646948;
 Mon, 04 Dec 2023 13:47: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=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rA9IC-0000ko-4J
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 13:47: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 a349ccd5-92ab-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 14:47:17 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 BED111FE65;
 Mon,  4 Dec 2023 13:47:16 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8E2DD139AA;
 Mon,  4 Dec 2023 13:47:16 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 7kgsIWTYbWUvJwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 13:47: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: a349ccd5-92ab-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701697636; 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=M2Vk4y3Oo1U2EMkoE57mje0B9hMZ4tS+eZ2bsv0DZno=;
	b=AR7qjyZsVTT1OzdUxw/OgK8U63kbSF0oQ+LpyMyXYY8QyGbNUSLsfeyFdXwNaGnJC5jUCj
	kOZazSgIg477coGm6nA51CPADIou49cdxATFPG/L4H1nTCMEShZmSUA0H52xsuyKF96GH0
	fjQgRgmLG38srxOM+Dqk61wY742wA0A=
Message-ID: <7a3afb15-b7af-4fdc-bb16-bea46db6d3ed@suse.com>
Date: Mon, 4 Dec 2023 14:47:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
Content-Language: en-US
To: George Dunlap <george.dunlap@cloud.com>, Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
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: <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------RIaMgdHfSJYWtb2GyHERhOVZ"
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -5.99
X-Spamd-Result: default: False [-5.99 / 50.00];
	 ARC_NA(0.00)[];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------RIaMgdHfSJYWtb2GyHERhOVZ
Content-Type: multipart/mixed; boundary="------------0K0HfKvtoeB0dZB5J2uByl4z";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: George Dunlap <george.dunlap@cloud.com>, Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Message-ID: <7a3afb15-b7af-4fdc-bb16-bea46db6d3ed@suse.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
In-Reply-To: <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>

--------------0K0HfKvtoeB0dZB5J2uByl4z
Content-Type: multipart/mixed; boundary="------------1mb3w4dsbCGInveQUpWUWf6O"

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

T24gMDQuMTIuMjMgMTQ6MDAsIEdlb3JnZSBEdW5sYXAgd3JvdGU6DQo+IE9uIE1vbiwgRGVj
IDQsIDIwMjMgYXQgMTA6NTfigK9BTSBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+
IHdyb3RlOg0KPj4NCj4+IEl0IGlzIG9ubHkgaW4gdGhlIGVycm9yIGNhc2UgdGhhdCB3ZSB3
YW50IHRvIGNsZWFuIHVwIHRoZSBuZXcgcG9vbCdzDQo+PiBzY2hlZHVsZXIgZGF0YTsgaW4g
dGhlIHN1Y2Nlc3MgY2FzZSBpdCdzIHJhdGhlciB0aGUgb2xkIHNjaGVkdWxlcidzDQo+PiBk
YXRhIHdoaWNoIG5lZWRzIGNsZWFuaW5nIHVwLg0KPj4NCj4+IFJlcG9ydGVkLWJ5OiBSZW7D
qSBXaW50aGVyIEjDuGpnYWFyZCA8cmVuZXdpbkBwcm90b24ubWU+DQo+PiBTaWduZWQtb2Zm
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+PiBSZXZpZXdlZC1ieTog
SnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KPj4NCj4+IC0tLSBhL3hlbi9jb21t
b24vc2NoZWQvY29yZS5jDQo+PiArKysgYi94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYw0KPj4g
QEAgLTgxMCw3ICs4MTAsNyBAQCBpbnQgc2NoZWRfbW92ZV9kb21haW4oc3RydWN0IGRvbWFp
biAqZCwNCj4+ICAgICAgIGZvciAoIHVuaXQgPSBvbGRfdW5pdHM7IHVuaXQ7ICkNCj4+ICAg
ICAgIHsNCj4+ICAgICAgICAgICBpZiAoIHVuaXQtPnByaXYgKQ0KPj4gLSAgICAgICAgICAg
IHNjaGVkX2ZyZWVfdWRhdGEoYy0+c2NoZWQsIHVuaXQtPnByaXYpOw0KPj4gKyAgICAgICAg
ICAgIHNjaGVkX2ZyZWVfdWRhdGEocmV0ID8gYy0+c2NoZWQgOiBvbGRfb3BzLCB1bml0LT5w
cml2KTsNCj4+ICAgICAgICAgICBvbGRfdW5pdCA9IHVuaXQ7DQo+PiAgICAgICAgICAgdW5p
dCA9IHVuaXQtPm5leHRfaW5fbGlzdDsNCj4+ICAgICAgICAgICB4ZnJlZShvbGRfdW5pdCk7
DQo+IA0KPiBUaGlzIGNvZGUgaXMgdW5mb3J0dW5hdGVseSB3cml0dGVuIGluIGEgImNsZXZl
ciIgd2F5IHdoaWNoIHNlZW1zIHRvDQo+IGhhdmUgaW50cm9kdWNlZCBzb21lIGNvbmZ1c2lv
bi4gIFRoZSBvbmUgcGxhY2Ugd2hpY2ggY2FsbHMgImdvdG8NCj4gb3V0X2ZyZWUiIGdvZXMg
dGhyb3VnaCBhbmQgcmVwbGFjZXMgKm1vc3QqIG9mIHRoZSAib2xkXyoiIHZhcmlhYmxlcw0K
PiB3aXRoIHRoZSAibmV3IiBlcXVpdmFsZW50cy4gIFRoYXQncyB3aHkgd2UncmUgaXRlcmF0
aW5nIG92ZXINCj4gYG9sZF91bml0c2AgZXZlbiBvbiB0aGUgZmFpbHVyZSBwYXRoLg0KPiAN
Cj4gVGhlIHJlc3VsdCBpcyB0aGF0IHRoaXMgY2hhbmdlIGRvZXNuJ3QgY2F0Y2ggYW5vdGhl
ciBidWcgb24gdGhlDQo+IGZvbGxvd2luZyBsaW5lLCBpbiB0aGUgZXJyb3IgY2FzZToNCj4g
DQo+IHNjaGVkX2ZyZWVfZG9tZGF0YShvbGRfb3BzLCBvbGRfZG9tZGF0YSk7DQo+IA0KPiBB
dCB0aGlzIHBvaW50LCBvbGRfb3BzIGlzIHN0aWxsIHRoZSBvbGQgb3BzLCBidXQgb2xkX2Rv
bWRhdGEgaXMgdGhlDQo+ICpuZXcqIGRvbWRhdGEuDQo+IA0KPiBBIHBhdGNoIGxpa2UgdGhl
IGZvbGxvd2luZyAoY29tcGlsZSB0ZXN0ZWQgb25seSkgd291bGQgZml4IGl0IGFsb25nDQo+
IHRoZSBsaW5lcyBvZiB0aGUgb3JpZ2luYWwgaW50ZW50Og0KPiA4PC0tLS0tLS0NCj4gZGlm
ZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWQvY29yZS5jIGIveGVuL2NvbW1vbi9zY2hlZC9j
b3JlLmMNCj4gaW5kZXggZWJhMGNlYTRiYi4uNzhmMjE4MzlkMyAxMDA2NDQNCj4gLS0tIGEv
eGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMNCj4gKysrIGIveGVuL2NvbW1vbi9zY2hlZC9jb3Jl
LmMNCj4gQEAgLTcyMCw2ICs3MjAsNyBAQCBpbnQgc2NoZWRfbW92ZV9kb21haW4oc3RydWN0
IGRvbWFpbiAqZCwgc3RydWN0IGNwdXBvb2wgKmMpDQo+ICAgICAgICAgICB7DQo+ICAgICAg
ICAgICAgICAgb2xkX3VuaXRzID0gbmV3X3VuaXRzOw0KPiAgICAgICAgICAgICAgIG9sZF9k
b21kYXRhID0gZG9tZGF0YTsNCj4gKyAgICAgICAgICAgIG9sZF9vcHMgPSBjLT5zY2hlZDsN
Cj4gICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOw0KPiAgICAgICAgICAgICAgIGdvdG8g
b3V0X2ZyZWU7DQo+ICAgICAgICAgICB9DQo+IEBAIC04MDksMTAgKzgxMCwxNSBAQCBpbnQg
c2NoZWRfbW92ZV9kb21haW4oc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGNwdXBvb2wgKmMp
DQo+ICAgICAgIGRvbWFpbl91bnBhdXNlKGQpOw0KPiANCj4gICAgb3V0X2ZyZWU6DQo+ICsg
ICAgLyoNCj4gKyAgICAgKiBOQiBpZiB3ZSd2ZSBqdW1wZWQgaGVyZSwgIm9sZF91bml0cyIs
ICJvbGRfb3BzIiwgYW5kIHNvIG9uIHdpbGwNCj4gKyAgICAgKiBhY3R1YWxseSBiZSBwb2lu
dGluZyB0byB0aGUgbmV3IG9wcywgc2luY2Ugd2hlbiBhYm9ydGluZyBpdCdzDQo+ICsgICAg
ICogdGhlIG5ldyBvcHMgd2Ugd2FudCB0byBmcmVlLg0KPiArICAgICAqLw0KPiAgICAgICBm
b3IgKCB1bml0ID0gb2xkX3VuaXRzOyB1bml0OyApDQo+ICAgICAgIHsNCj4gICAgICAgICAg
IGlmICggdW5pdC0+cHJpdiApDQo+IC0gICAgICAgICAgICBzY2hlZF9mcmVlX3VkYXRhKGMt
PnNjaGVkLCB1bml0LT5wcml2KTsNCj4gKyAgICAgICAgICAgIHNjaGVkX2ZyZWVfdWRhdGEo
b2xkX29wcywgdW5pdC0+cHJpdik7DQo+ICAgICAgICAgICBvbGRfdW5pdCA9IHVuaXQ7DQo+
ICAgICAgICAgICB1bml0ID0gdW5pdC0+bmV4dF9pbl9saXN0Ow0KPiAgICAgICAgICAgeGZy
ZWUob2xkX3VuaXQpOw0KPiAtLS0tPjgNCj4gDQo+IEJ1dCBnaXZlbiB0aGF0IHRoaXMga2lu
ZCBvZiBjbGV2ZXJuZXNzIGhhcyBhbHJlYWR5IGZvb2xlZCB0d28gb2Ygb3VyDQo+IG1vc3Qg
c2VuaW9yIGRldmVsb3BlcnMsIEknZCBzdWdnZXN0IG1ha2luZyB0aGUgd2hvbGUgdGhpbmcg
bW9yZQ0KPiBleHBsaWNpdDsgc29tZXRoaW5nIGxpa2UgdGhlIGF0dGFjaGVkIChhZ2FpbiBj
b21waWxlLXRlc3RlZCBvbmx5KT8NCg0KQW5kIEkgaGF2ZSBhZ2FpbiBhIHRoaXJkIGFwcHJv
YWNoLCBtYWtpbmcgaXQgY3J5c3RhbCBjbGVhciB3aGF0IGlzIGhhcHBlbmluZw0Kd2l0aCB3
aGljaCBkYXRhLiBObyBuZWVkIHRvIGV4cGxhaW4gd2hhdCBpcyBmcmVlZCB2aWEgd2hpY2gg
dmFyaWFibGVzLiBTZWUNCmF0dGFjaGVkIHBhdGNoLg0KDQpUaG91Z2h0cz8NCg0KDQpKdWVy
Z2VuDQo=
--------------1mb3w4dsbCGInveQUpWUWf6O
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-----

--------------1mb3w4dsbCGInveQUpWUWf6O--

--------------0K0HfKvtoeB0dZB5J2uByl4z--

--------------RIaMgdHfSJYWtb2GyHERhOVZ
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/Ey8FAmVt2GQFAwAAAAAACgkQsN6d1ii/Ey+M
DwgAm6g4zPNY7ZGa447+cjVklu6rmqiMLSOez9tnXM9TretY4GoHp7mr9ysjIpvbOEke5/Q/wX2r
XkqYOXokyTmuQAAhRCY+QDPgsbQ513h62+F3dea5h4CNArVusIREOFiwHJSjd3rir3Fd0tIwzEPS
Iu7SgQYVkoGCS5BRYj86ECR95WXIo4da9QtDeu8vh4Qb0i1l0udAxNXTbJLVkKgBnLNlrtFmoQGA
X8bF7OSr9+D/JeCRUGRJR0SgemBpj/EJCXa4OxjEDPAqu1WhF/yvCj1wCaCo7HhWd8DwZkRutZ22
4x0KPmf95AwHXcEjwD7FkGsCxE9c82nKPE5DPARd8w==
=RlN4
-----END PGP SIGNATURE-----

--------------RIaMgdHfSJYWtb2GyHERhOVZ--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 13:49:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 13:49:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646951.1009641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA9KL-0001ye-Hu; Mon, 04 Dec 2023 13:49:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646951.1009641; Mon, 04 Dec 2023 13:49:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA9KL-0001yX-FL; Mon, 04 Dec 2023 13:49:37 +0000
Received: by outflank-mailman (input) for mailman id 646951;
 Mon, 04 Dec 2023 13:49:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P9KO=HP=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rA9KK-0001yR-KQ
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 13:49:36 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id f49c3f96-92ab-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 14:49:34 +0100 (CET)
Received: from mg.gitlab.com (64.90.74.34.bc.googleusercontent.com
 [34.74.90.64]) by
 6ce6a2f21a3e with SMTP id 656dd8ec75c1c4f204cadab8 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Mon, 04 Dec 2023 13:49:32 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: f49c3f96-92ab-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701697772; x=1701704972; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=SQ3Xvqr1yTPX8RjSrI2nnu/9ruAsxiZJicIkESNb0QQ=;
 b=DGGru0JiEpMKfOn1RLtRcnbnwGd5r6s6UOifHty99juJ5l9Ro20nOfA8cFfECHYoz9kz4wnPWO6gvUuDITFH35C/VCoF6ZrlI1Svs7Lgpgb/zCcoHGV9L2tYQ/IU8Jb4MMtViDwAk+d8cc6Lg8IuzlXLXlZ+b+xuZ3hpGbnmldY=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Mon, 04 Dec 2023 13:49:32 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656dd8ec78216_2c9b244497c6@gitlab-sidekiq-catchall-v2-7764599879-9qv42.mail>
Subject: xen | Successful pipeline for staging | 525c7c09
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656dd8ec6f1e2_2c9b24449626";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1093622286
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656dd8ec6f1e2_2c9b24449626
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1093622286 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 525c7c09 ( https://gitlab.com/xen-project/xen/-/commit/525c7c094b258e8a46b494488eef96f5670eb352 )
Commit Message: xen/arm: Move static event channel feature to a...
Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
Committed by: Julien Grall



Pipeline #1093622286 ( https://gitlab.com/xen-project/xen/-/pipelines/1093622286 ) triggered by Andrew Cooper ( https://gitlab.com/andyhhp )
successfully completed 136 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 525c7c09</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1093622286 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/525c7c094b258e8a46=
b494488eef96f5670eb352" style=3D"color: #3777b0; text-decoration: none;">=
525c7c09</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: Move static event channel feature to a...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/47e2f2ac4637bce0cc380dba59a9412f?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/orzelmichal" style=3D"color=
: #333333; text-decoration: none;">
Michal Orzel
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/109362=
2286" style=3D"color: #3777b0; text-decoration: none;">#1093622286</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 136 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656dd8ec6f1e2_2c9b24449626--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 13:55:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 13:55:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646987.1009652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA9Q9-00045m-7h; Mon, 04 Dec 2023 13:55:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646987.1009652; Mon, 04 Dec 2023 13: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 1rA9Q9-00045f-4c; Mon, 04 Dec 2023 13:55:37 +0000
Received: by outflank-mailman (input) for mailman id 646987;
 Mon, 04 Dec 2023 13:55: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=bwcF=HP=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rA9Q8-00045Z-5E
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 13:55:36 +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 cbbc8df2-92ac-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 14:55:34 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-50bf3efe2cbso1280416e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 05:55:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbbc8df2-92ac-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701698134; x=1702302934; 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=FV2Oq2v1SxYDnRxaqu0JYtg4pnX8gVxl1mHoZ5zChlA=;
        b=AKl9xoi1yp6BEGAUjfmPCCPH1NiptWS/E6McSRcNGUlyAIXHv4cfPF//W955z9eRNv
         RITEcNOeqc3rgBBcPccszTwGbvwMjPyZkeTOqMwQqg7x6TuMoqEl4snCLJkZcxuWB0Qp
         27uZyOZF93pgKBZqik1LfLilWsQxFEqjpssCI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701698134; x=1702302934;
        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=FV2Oq2v1SxYDnRxaqu0JYtg4pnX8gVxl1mHoZ5zChlA=;
        b=bknOI7kBmHcdWoXZS90G3ffIFQJ9N7mM78VjwsndRcct2LMObj/aqVZnTOk7ks/tZo
         Mm/Ggdr1On5myHfynVtiV97yevnddCdmDcaXOqjZwQxmirBEy0s/jX9HRRVsse84qUuK
         xZ/+boG4CmXSDpSNypJr3zxHpEWgz9cISIC6bmUI0gyxmmtVBGORpdasxeQG7eTujQ3f
         ZpomFV344gJ6o7RDqM9ZHGqnQs/8tLaR0WCzgZIIFJPLvoCGlHLClN71C8XGlTvxPh+G
         6fL5rdDJIXzX4XxGH4JB+YYhta3dMMNAcpSkzrH7iUZuyGHAcwv9XVZoyVJ170WYvUWK
         WkDw==
X-Gm-Message-State: AOJu0YzPMDR4rdvh5cb1VjOHOP09fIpE/114LZz2KOZI9VKnlPyyPpS3
	YU8po9aee0N8gwXpUHqdjjVPhRME1k1HR/d5R9NNaA==
X-Google-Smtp-Source: AGHT+IGHzWYoJ/1gQc6DR9B6EQWIz4qsLCO9KpeXmgI4+91jKT8A7tlNEu5w3frn5fKV/A4Aibk5cOJYuVloFma+d9A=
X-Received: by 2002:a05:6512:370c:b0:50b:e694:e7fe with SMTP id
 z12-20020a056512370c00b0050be694e7femr618762lfr.260.1701698134045; Mon, 04
 Dec 2023 05:55:34 -0800 (PST)
MIME-Version: 1.0
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com> <7a3afb15-b7af-4fdc-bb16-bea46db6d3ed@suse.com>
In-Reply-To: <7a3afb15-b7af-4fdc-bb16-bea46db6d3ed@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Mon, 4 Dec 2023 13:55:23 +0000
Message-ID: <CA+zSX=YyPvi_atOV_Kbboo604UYEy5cD9CWgbaqx7eJ2o=bF+A@mail.gmail.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
To: Juergen Gross <jgross@suse.com>
Cc: Jan Beulich <jbeulich@suse.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Dario Faggioli <dfaggioli@suse.com>, 
	=?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 4, 2023 at 1:47=E2=80=AFPM Juergen Gross <jgross@suse.com> wrot=
e:
>
> On 04.12.23 14:00, George Dunlap wrote:
> > On Mon, Dec 4, 2023 at 10:57=E2=80=AFAM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >>
> >> It is only in the error case that we want to clean up the new pool's
> >> scheduler data; in the success case it's rather the old scheduler's
> >> data which needs cleaning up.
> >>
> >> Reported-by: Ren=C3=A9 Winther H=C3=B8jgaard <renewin@proton.me>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> Reviewed-by: Juergen Gross <jgross@suse.com>
> >>
> >> --- a/xen/common/sched/core.c
> >> +++ b/xen/common/sched/core.c
> >> @@ -810,7 +810,7 @@ int sched_move_domain(struct domain *d,
> >>       for ( unit =3D old_units; unit; )
> >>       {
> >>           if ( unit->priv )
> >> -            sched_free_udata(c->sched, unit->priv);
> >> +            sched_free_udata(ret ? c->sched : old_ops, unit->priv);
> >>           old_unit =3D unit;
> >>           unit =3D unit->next_in_list;
> >>           xfree(old_unit);
> >
> > This code is unfortunately written in a "clever" way which seems to
> > have introduced some confusion.  The one place which calls "goto
> > out_free" goes through and replaces *most* of the "old_*" variables
> > with the "new" equivalents.  That's why we're iterating over
> > `old_units` even on the failure path.
> >
> > The result is that this change doesn't catch another bug on the
> > following line, in the error case:
> >
> > sched_free_domdata(old_ops, old_domdata);
> >
> > At this point, old_ops is still the old ops, but old_domdata is the
> > *new* domdata.
> >
> > A patch like the following (compile tested only) would fix it along
> > the lines of the original intent:
> > 8<-------
> > diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
> > index eba0cea4bb..78f21839d3 100644
> > --- a/xen/common/sched/core.c
> > +++ b/xen/common/sched/core.c
> > @@ -720,6 +720,7 @@ int sched_move_domain(struct domain *d, struct cpup=
ool *c)
> >           {
> >               old_units =3D new_units;
> >               old_domdata =3D domdata;
> > +            old_ops =3D c->sched;
> >               ret =3D -ENOMEM;
> >               goto out_free;
> >           }
> > @@ -809,10 +810,15 @@ int sched_move_domain(struct domain *d, struct cp=
upool *c)
> >       domain_unpause(d);
> >
> >    out_free:
> > +    /*
> > +     * NB if we've jumped here, "old_units", "old_ops", and so on will
> > +     * actually be pointing to the new ops, since when aborting it's
> > +     * the new ops we want to free.
> > +     */
> >       for ( unit =3D old_units; unit; )
> >       {
> >           if ( unit->priv )
> > -            sched_free_udata(c->sched, unit->priv);
> > +            sched_free_udata(old_ops, unit->priv);
> >           old_unit =3D unit;
> >           unit =3D unit->next_in_list;
> >           xfree(old_unit);
> > ---->8
> >
> > But given that this kind of cleverness has already fooled two of our
> > most senior developers, I'd suggest making the whole thing more
> > explicit; something like the attached (again compile-tested only)?
>
> And I have again a third approach, making it crystal clear what is happen=
ing
> with which data. No need to explain what is freed via which variables. Se=
e
> attached patch.
>
> Thoughts?

I only see a PGP key and signature.  Did you forget to attach the patch?

 -George


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:10:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:10:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.646998.1009663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA9eV-00005W-Ek; Mon, 04 Dec 2023 14:10:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 646998.1009663; Mon, 04 Dec 2023 14:10:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA9eV-00005P-AJ; Mon, 04 Dec 2023 14:10:27 +0000
Received: by outflank-mailman (input) for mailman id 646998;
 Mon, 04 Dec 2023 14:10:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA9eU-00005J-DV
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:10:26 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de86ef46-92ae-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 15:10:25 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40c09dfd82aso16075425e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 06:10:25 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 ay31-20020a05600c1e1f00b004080f0376a0sm15156173wmb.42.2023.12.04.06.10.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 06:10:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de86ef46-92ae-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701699024; x=1702303824; 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=g+1JIDq/jNQnEDgf7q5xQmXB2HwG4wjc80W59a30rXM=;
        b=fxUCAVgK8z0bG68dbWQWUTl5UjBBcufjrAkgJdoLGKBGYVB9ufsShWKL8ovnA38onh
         iL5dx4LXm3i5jT6ClmWxC4NPoS1t/sqZAsy9Sjtt2cCXd84FrDVvZ0q7NfCAZDeJcb9p
         GSAB2tMyiKr7fbFjUaz4i7xE4QBjRMV58MAik=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701699024; x=1702303824;
        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=g+1JIDq/jNQnEDgf7q5xQmXB2HwG4wjc80W59a30rXM=;
        b=rw404Z2MVU/U2dHvDu0fMv1oPGqJ2CQVAEc6eBmc5854uv3qWYh7tiSU7vw9S/8Ng7
         t3d1ZYA6AMAu8RJn13hY3YviNycH9gcP2+BtzA1msnY0rFTw+gdG0it+hUYB333vjOkT
         DKYrjSg38/SKUbcngre8YepZ7RR+vbfwn7SuepXoNdGjqso+9WvbZ2ielNBzp/xoRbhk
         /LOoM6C2v2HmJrNvLwz7YP4tbOU61KtN2X0znm/Jm9nXcZ3/MZL1I/+hGQqhjTSBAt5O
         pLaFGgibCUukkeYUapZooVSm4FMw9JluUfyh8OIcEjxHeHKxRR0poELNYHz0a38Tuzm0
         xq8w==
X-Gm-Message-State: AOJu0Yzu2VzQE4HKEQoh1O5c0i83/pJBa+lptt1kZoFxuc6auXpZfeGv
	AKR/wfOduhtkS4esC5Z5BMhzhg==
X-Google-Smtp-Source: AGHT+IFyfcNdvBS35vsoa+AawHejHbNi8vcBQUlxsSUA7VjPZltlc5eVmQVE3764IgNIFwbze2aN1w==
X-Received: by 2002:a05:600c:4746:b0:40b:5e59:ccb2 with SMTP id w6-20020a05600c474600b0040b5e59ccb2mr2761284wmo.147.1701699024637;
        Mon, 04 Dec 2023 06:10:24 -0800 (PST)
Date: Mon, 4 Dec 2023 15:10:23 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.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>
Subject: Re: [PATCH v9 1/2] xen/vpci: header: status register handler
Message-ID: <ZW3dzyMsZKOClZNZ@macbook>
References: <20231201154552.3066321-1-stewart.hildebrand@amd.com>
 <20231201154552.3066321-2-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231201154552.3066321-2-stewart.hildebrand@amd.com>

On Fri, Dec 01, 2023 at 10:45:49AM -0500, Stewart Hildebrand wrote:
> Introduce a handler for the PCI status register, with ability to mask
> the capabilities bit. The status register contains RsvdZ bits,
> read-only bits, and write-1-to-clear bits. Additionally, we use RsvdP to
> mask the capabilities bit. Introduce bitmasks to handle these in vPCI.
> If a bit in the bitmask is set, then the special meaning applies:
> 
>   ro_mask: read normal, guest write ignore (preserve on write to hardware)
>   rw1c_mask: read normal, write 1 to clear
>   rsvdp_mask: read as zero, guest write ignore (preserve on write to hardware)
>   rsvdz_mask: read as zero, guest write ignore (write zero to hardware)
> 
> The RO/RW1C/RsvdP/RsvdZ naming and definitions were borrowed from the
> PCI Express Base 6.1 specification. RsvdP/RsvdZ bits help Xen enforce
> our view of the world. Xen preserves the value of read-only bits on
> write to hardware, discarding the guests write value. This is done in
> case hardware wrongly implements R/O bits as R/W.
> 
> The mask_cap_list flag will be set in a follow-on patch.
                                                    ^ s/patch/change/

> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:10:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:10:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647004.1009673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA9f0-0000hk-QE; Mon, 04 Dec 2023 14:10:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647004.1009673; Mon, 04 Dec 2023 14: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 1rA9f0-0000hd-Lr; Mon, 04 Dec 2023 14:10:58 +0000
Received: by outflank-mailman (input) for mailman id 647004;
 Mon, 04 Dec 2023 14:10: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=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rA9ez-0000Xk-K7
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:10: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 f08df3c5-92ae-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:10:55 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 8708D1FE65;
 Mon,  4 Dec 2023 14:10:54 +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 50310139AA;
 Mon,  4 Dec 2023 14:10:54 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id QW3JEe7dbWWVMQAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 14: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: f08df3c5-92ae-11ee-9b0f-b553b5be7939
Message-ID: <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
Date: Mon, 4 Dec 2023 15:10:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
To: George Dunlap <george.dunlap@cloud.com>, Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.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: <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------yC5bohNtndtBwCMpIwyzed7v"
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:+,6:~];
	 BAYES_HAM(-3.00)[100.00%];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain,text/x-patch];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: 8708D1FE65
X-Spam-Flag: YES
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------yC5bohNtndtBwCMpIwyzed7v
Content-Type: multipart/mixed; boundary="------------5Q6MPXTMRZgh0wXh2d0DQ00c";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: George Dunlap <george.dunlap@cloud.com>, Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Message-ID: <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
In-Reply-To: <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>

--------------5Q6MPXTMRZgh0wXh2d0DQ00c
Content-Type: multipart/mixed; boundary="------------hNd3SMThRn7y6eGbr0bmCqA0"

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

T24gMDQuMTIuMjMgMTQ6MDAsIEdlb3JnZSBEdW5sYXAgd3JvdGU6DQo+IE9uIE1vbiwgRGVj
IDQsIDIwMjMgYXQgMTA6NTfigK9BTSBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+
IHdyb3RlOg0KPj4NCj4+IEl0IGlzIG9ubHkgaW4gdGhlIGVycm9yIGNhc2UgdGhhdCB3ZSB3
YW50IHRvIGNsZWFuIHVwIHRoZSBuZXcgcG9vbCdzDQo+PiBzY2hlZHVsZXIgZGF0YTsgaW4g
dGhlIHN1Y2Nlc3MgY2FzZSBpdCdzIHJhdGhlciB0aGUgb2xkIHNjaGVkdWxlcidzDQo+PiBk
YXRhIHdoaWNoIG5lZWRzIGNsZWFuaW5nIHVwLg0KPj4NCj4+IFJlcG9ydGVkLWJ5OiBSZW7D
qSBXaW50aGVyIEjDuGpnYWFyZCA8cmVuZXdpbkBwcm90b24ubWU+DQo+PiBTaWduZWQtb2Zm
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+PiBSZXZpZXdlZC1ieTog
SnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KPj4NCj4+IC0tLSBhL3hlbi9jb21t
b24vc2NoZWQvY29yZS5jDQo+PiArKysgYi94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYw0KPj4g
QEAgLTgxMCw3ICs4MTAsNyBAQCBpbnQgc2NoZWRfbW92ZV9kb21haW4oc3RydWN0IGRvbWFp
biAqZCwNCj4+ICAgICAgIGZvciAoIHVuaXQgPSBvbGRfdW5pdHM7IHVuaXQ7ICkNCj4+ICAg
ICAgIHsNCj4+ICAgICAgICAgICBpZiAoIHVuaXQtPnByaXYgKQ0KPj4gLSAgICAgICAgICAg
IHNjaGVkX2ZyZWVfdWRhdGEoYy0+c2NoZWQsIHVuaXQtPnByaXYpOw0KPj4gKyAgICAgICAg
ICAgIHNjaGVkX2ZyZWVfdWRhdGEocmV0ID8gYy0+c2NoZWQgOiBvbGRfb3BzLCB1bml0LT5w
cml2KTsNCj4+ICAgICAgICAgICBvbGRfdW5pdCA9IHVuaXQ7DQo+PiAgICAgICAgICAgdW5p
dCA9IHVuaXQtPm5leHRfaW5fbGlzdDsNCj4+ICAgICAgICAgICB4ZnJlZShvbGRfdW5pdCk7
DQo+IA0KPiBUaGlzIGNvZGUgaXMgdW5mb3J0dW5hdGVseSB3cml0dGVuIGluIGEgImNsZXZl
ciIgd2F5IHdoaWNoIHNlZW1zIHRvDQo+IGhhdmUgaW50cm9kdWNlZCBzb21lIGNvbmZ1c2lv
bi4gIFRoZSBvbmUgcGxhY2Ugd2hpY2ggY2FsbHMgImdvdG8NCj4gb3V0X2ZyZWUiIGdvZXMg
dGhyb3VnaCBhbmQgcmVwbGFjZXMgKm1vc3QqIG9mIHRoZSAib2xkXyoiIHZhcmlhYmxlcw0K
PiB3aXRoIHRoZSAibmV3IiBlcXVpdmFsZW50cy4gIFRoYXQncyB3aHkgd2UncmUgaXRlcmF0
aW5nIG92ZXINCj4gYG9sZF91bml0c2AgZXZlbiBvbiB0aGUgZmFpbHVyZSBwYXRoLg0KPiAN
Cj4gVGhlIHJlc3VsdCBpcyB0aGF0IHRoaXMgY2hhbmdlIGRvZXNuJ3QgY2F0Y2ggYW5vdGhl
ciBidWcgb24gdGhlDQo+IGZvbGxvd2luZyBsaW5lLCBpbiB0aGUgZXJyb3IgY2FzZToNCj4g
DQo+IHNjaGVkX2ZyZWVfZG9tZGF0YShvbGRfb3BzLCBvbGRfZG9tZGF0YSk7DQo+IA0KPiBB
dCB0aGlzIHBvaW50LCBvbGRfb3BzIGlzIHN0aWxsIHRoZSBvbGQgb3BzLCBidXQgb2xkX2Rv
bWRhdGEgaXMgdGhlDQo+ICpuZXcqIGRvbWRhdGEuDQo+IA0KPiBBIHBhdGNoIGxpa2UgdGhl
IGZvbGxvd2luZyAoY29tcGlsZSB0ZXN0ZWQgb25seSkgd291bGQgZml4IGl0IGFsb25nDQo+
IHRoZSBsaW5lcyBvZiB0aGUgb3JpZ2luYWwgaW50ZW50Og0KPiA4PC0tLS0tLS0NCj4gZGlm
ZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWQvY29yZS5jIGIveGVuL2NvbW1vbi9zY2hlZC9j
b3JlLmMNCj4gaW5kZXggZWJhMGNlYTRiYi4uNzhmMjE4MzlkMyAxMDA2NDQNCj4gLS0tIGEv
eGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMNCj4gKysrIGIveGVuL2NvbW1vbi9zY2hlZC9jb3Jl
LmMNCj4gQEAgLTcyMCw2ICs3MjAsNyBAQCBpbnQgc2NoZWRfbW92ZV9kb21haW4oc3RydWN0
IGRvbWFpbiAqZCwgc3RydWN0IGNwdXBvb2wgKmMpDQo+ICAgICAgICAgICB7DQo+ICAgICAg
ICAgICAgICAgb2xkX3VuaXRzID0gbmV3X3VuaXRzOw0KPiAgICAgICAgICAgICAgIG9sZF9k
b21kYXRhID0gZG9tZGF0YTsNCj4gKyAgICAgICAgICAgIG9sZF9vcHMgPSBjLT5zY2hlZDsN
Cj4gICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOw0KPiAgICAgICAgICAgICAgIGdvdG8g
b3V0X2ZyZWU7DQo+ICAgICAgICAgICB9DQo+IEBAIC04MDksMTAgKzgxMCwxNSBAQCBpbnQg
c2NoZWRfbW92ZV9kb21haW4oc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGNwdXBvb2wgKmMp
DQo+ICAgICAgIGRvbWFpbl91bnBhdXNlKGQpOw0KPiANCj4gICAgb3V0X2ZyZWU6DQo+ICsg
ICAgLyoNCj4gKyAgICAgKiBOQiBpZiB3ZSd2ZSBqdW1wZWQgaGVyZSwgIm9sZF91bml0cyIs
ICJvbGRfb3BzIiwgYW5kIHNvIG9uIHdpbGwNCj4gKyAgICAgKiBhY3R1YWxseSBiZSBwb2lu
dGluZyB0byB0aGUgbmV3IG9wcywgc2luY2Ugd2hlbiBhYm9ydGluZyBpdCdzDQo+ICsgICAg
ICogdGhlIG5ldyBvcHMgd2Ugd2FudCB0byBmcmVlLg0KPiArICAgICAqLw0KPiAgICAgICBm
b3IgKCB1bml0ID0gb2xkX3VuaXRzOyB1bml0OyApDQo+ICAgICAgIHsNCj4gICAgICAgICAg
IGlmICggdW5pdC0+cHJpdiApDQo+IC0gICAgICAgICAgICBzY2hlZF9mcmVlX3VkYXRhKGMt
PnNjaGVkLCB1bml0LT5wcml2KTsNCj4gKyAgICAgICAgICAgIHNjaGVkX2ZyZWVfdWRhdGEo
b2xkX29wcywgdW5pdC0+cHJpdik7DQo+ICAgICAgICAgICBvbGRfdW5pdCA9IHVuaXQ7DQo+
ICAgICAgICAgICB1bml0ID0gdW5pdC0+bmV4dF9pbl9saXN0Ow0KPiAgICAgICAgICAgeGZy
ZWUob2xkX3VuaXQpOw0KPiAtLS0tPjgNCj4gDQo+IEJ1dCBnaXZlbiB0aGF0IHRoaXMga2lu
ZCBvZiBjbGV2ZXJuZXNzIGhhcyBhbHJlYWR5IGZvb2xlZCB0d28gb2Ygb3VyDQo+IG1vc3Qg
c2VuaW9yIGRldmVsb3BlcnMsIEknZCBzdWdnZXN0IG1ha2luZyB0aGUgd2hvbGUgdGhpbmcg
bW9yZQ0KPiBleHBsaWNpdDsgc29tZXRoaW5nIGxpa2UgdGhlIGF0dGFjaGVkIChhZ2FpbiBj
b21waWxlLXRlc3RlZCBvbmx5KT8NCg0KQW5kIEkgaGF2ZSBhZ2FpbiBhIHRoaXJkIGFwcHJv
YWNoLCBtYWtpbmcgaXQgY3J5c3RhbCBjbGVhciB3aGF0IGlzIGhhcHBlbmluZw0Kd2l0aCB3
aGljaCBkYXRhLiBObyBuZWVkIHRvIGV4cGxhaW4gd2hhdCBpcyBmcmVlZCB2aWEgd2hpY2gg
dmFyaWFibGVzLiBTZWUNCmF0dGFjaGVkIHBhdGNoICh0aGlzIHRpbWUgaXQgc2hvdWxkIGJl
IHJlYWxseSB0aGVyZSkuDQoNClRob3VnaHRzPw0KDQoNCkp1ZXJnZW4NCg==
--------------hNd3SMThRn7y6eGbr0bmCqA0
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-----

--------------hNd3SMThRn7y6eGbr0bmCqA0
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-xen-sched-fix-sched_move_domain.patch"
Content-Disposition: attachment;
 filename="0001-xen-sched-fix-sched_move_domain.patch"
Content-Transfer-Encoding: base64

RnJvbSBiODMxM2Q3MDYwZTk0OTlmYTc1ODAyNjViZGE3MDNjY2UwNWZlNDZhIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
CkRhdGU6IE1vbiwgNCBEZWMgMjAyMyAxNDoxNTo0NSArMDEwMApTdWJqZWN0OiBbUEFUQ0hd
IHhlbi9zY2hlZDogZml4IHNjaGVkX21vdmVfZG9tYWluKCkKTUlNRS1WZXJzaW9uOiAxLjAK
Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNm
ZXItRW5jb2Rpbmc6IDhiaXQKCkRvIGNsZWFudXAgaW4gc2NoZWRfbW92ZV9kb21haW4oKSBp
biBhIGRlZGljYXRlZCBzZXJ2aWNlIGZ1bmN0aW9uLAp3aGljaCBpcyBjYWxsZWQgZWl0aGVy
IGluIGVycm9yIGNhc2Ugd2l0aCBuZXdseSBhbGxvY2F0ZWQgZGF0YSwgb3IgaW4Kc3VjY2Vz
cyBjYXNlIHdpdGggdGhlIG9sZCBkYXRhIHRvIGJlIGZyZWVkLgoKVGhpcyB3aWxsIGF0IG9u
Y2UgZml4IHNvbWUgc3VidGxlIGJ1Z3Mgd2hpY2ggc25lYWtlZCBpbiBkdWUgdG8KZm9yZ2V0
dGluZyB0byBvdmVyd3JpdGUgc29tZSBwb2ludGVycyBpbiB0aGUgZXJyb3IgY2FzZS4KCkZp
eGVzOiA3MGZhZGM0MTYzNWIgKCJ4ZW4vY3B1cG9vbDogc3VwcG9ydCBtb3ZpbmcgZG9tYWlu
IGJldHdlZW4gY3B1cG9vbHMgd2l0aCBkaWZmZXJlbnQgZ3JhbnVsYXJpdHkiKQpSZXBvcnRl
ZC1ieTogUmVuw6kgV2ludGhlciBIw7hqZ2FhcmQgPHJlbmV3aW5AcHJvdG9uLm1lPgpJbml0
aWFsLWZpeC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpJbml0aWFsLWZp
eC1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjbG91ZC5jb20+ClNpZ25lZC1v
ZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiB4ZW4vY29tbW9u
L3NjaGVkL2NvcmUuYyB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t
LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMgYi94ZW4vY29tbW9u
L3NjaGVkL2NvcmUuYwppbmRleCBlYmEwY2VhNGJiLi5mZDkyZTliMTNhIDEwMDY0NAotLS0g
YS94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYworKysgYi94ZW4vY29tbW9uL3NjaGVkL2NvcmUu
YwpAQCAtNjQ3LDYgKzY0NywyNCBAQCBzdGF0aWMgdm9pZCBzY2hlZF9tb3ZlX2lycXMoY29u
c3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiAgICAgICAgIHZjcHVfbW92ZV9pcnFzKHYp
OwogfQogCitzdGF0aWMgdm9pZCBzY2hlZF9tb3ZlX2RvbWFpbl9jbGVhbnVwKHN0cnVjdCBz
Y2hlZHVsZXIgKm9wcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IHNjaGVkX3VuaXQgKnVuaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2b2lkICpkb21kYXRhKQoreworICAgIHN0cnVjdCBzY2hlZF91bml0ICp1
bml0LCAqb2xkX3VuaXQ7CisKKyAgICBmb3IgKCB1bml0ID0gdW5pdHM7IHVuaXQ7ICkKKyAg
ICB7CisgICAgICAgIGlmICggdW5pdC0+cHJpdiApCisgICAgICAgICAgICBzY2hlZF9mcmVl
X3VkYXRhKG9wcywgdW5pdC0+cHJpdik7CisgICAgICAgIG9sZF91bml0ID0gdW5pdDsKKyAg
ICAgICAgdW5pdCA9IHVuaXQtPm5leHRfaW5fbGlzdDsKKyAgICAgICAgeGZyZWUob2xkX3Vu
aXQpOworICAgIH0KKworICAgIHNjaGVkX2ZyZWVfZG9tZGF0YShvcHMsIGRvbWRhdGEpOwor
fQorCiAvKgogICogTW92ZSBhIGRvbWFpbiBmcm9tIG9uZSBjcHVwb29sIHRvIGFub3RoZXIu
CiAgKgpAQCAtNjg2LDcgKzcwNCw2IEBAIGludCBzY2hlZF9tb3ZlX2RvbWFpbihzdHJ1Y3Qg
ZG9tYWluICpkLCBzdHJ1Y3QgY3B1cG9vbCAqYykKICAgICB2b2lkICpvbGRfZG9tZGF0YTsK
ICAgICB1bnNpZ25lZCBpbnQgZ3JhbiA9IGNwdXBvb2xfZ2V0X2dyYW51bGFyaXR5KGMpOwog
ICAgIHVuc2lnbmVkIGludCBuX3VuaXRzID0gZC0+dmNwdVswXSA/IERJVl9ST1VORF9VUChk
LT5tYXhfdmNwdXMsIGdyYW4pIDogMDsKLSAgICBpbnQgcmV0ID0gMDsKIAogICAgIGZvcl9l
YWNoX3ZjcHUgKCBkLCB2ICkKICAgICB7CkBAIC02OTksOCArNzE2LDkgQEAgaW50IHNjaGVk
X21vdmVfZG9tYWluKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBjcHVwb29sICpjKQogICAg
IGRvbWRhdGEgPSBzY2hlZF9hbGxvY19kb21kYXRhKGMtPnNjaGVkLCBkKTsKICAgICBpZiAo
IElTX0VSUihkb21kYXRhKSApCiAgICAgewotICAgICAgICByZXQgPSBQVFJfRVJSKGRvbWRh
dGEpOwotICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgcmN1X3JlYWRfdW5sb2NrKCZzY2hl
ZF9yZXNfcmN1bG9jayk7CisKKyAgICAgICAgcmV0dXJuIFBUUl9FUlIoZG9tZGF0YSk7CiAg
ICAgfQogCiAgICAgZm9yICggdW5pdF9pZHggPSAwOyB1bml0X2lkeCA8IG5fdW5pdHM7IHVu
aXRfaWR4KysgKQpAQCAtNzE4LDEwICs3MzYsMTAgQEAgaW50IHNjaGVkX21vdmVfZG9tYWlu
KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBjcHVwb29sICpjKQogCiAgICAgICAgIGlmICgg
IXVuaXQgfHwgIXVuaXQtPnByaXYgKQogICAgICAgICB7Ci0gICAgICAgICAgICBvbGRfdW5p
dHMgPSBuZXdfdW5pdHM7Ci0gICAgICAgICAgICBvbGRfZG9tZGF0YSA9IGRvbWRhdGE7Ci0g
ICAgICAgICAgICByZXQgPSAtRU5PTUVNOwotICAgICAgICAgICAgZ290byBvdXRfZnJlZTsK
KyAgICAgICAgICAgIHNjaGVkX21vdmVfZG9tYWluX2NsZWFudXAoYy0+c2NoZWQsIG5ld191
bml0cywgZG9tZGF0YSk7CisgICAgICAgICAgICByY3VfcmVhZF91bmxvY2soJnNjaGVkX3Jl
c19yY3Vsb2NrKTsKKworICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAgICAgIH0K
IAogICAgICAgICB1bml0X3B0ciA9ICZ1bml0LT5uZXh0X2luX2xpc3Q7CkBAIC04MDgsMjIg
KzgyNiwxMSBAQCBpbnQgc2NoZWRfbW92ZV9kb21haW4oc3RydWN0IGRvbWFpbiAqZCwgc3Ry
dWN0IGNwdXBvb2wgKmMpCiAKICAgICBkb21haW5fdW5wYXVzZShkKTsKIAotIG91dF9mcmVl
OgotICAgIGZvciAoIHVuaXQgPSBvbGRfdW5pdHM7IHVuaXQ7ICkKLSAgICB7Ci0gICAgICAg
IGlmICggdW5pdC0+cHJpdiApCi0gICAgICAgICAgICBzY2hlZF9mcmVlX3VkYXRhKGMtPnNj
aGVkLCB1bml0LT5wcml2KTsKLSAgICAgICAgb2xkX3VuaXQgPSB1bml0OwotICAgICAgICB1
bml0ID0gdW5pdC0+bmV4dF9pbl9saXN0OwotICAgICAgICB4ZnJlZShvbGRfdW5pdCk7Ci0g
ICAgfQotCi0gICAgc2NoZWRfZnJlZV9kb21kYXRhKG9sZF9vcHMsIG9sZF9kb21kYXRhKTsK
KyAgICBzY2hlZF9tb3ZlX2RvbWFpbl9jbGVhbnVwKG9sZF9vcHMsIG9sZF91bml0cywgb2xk
X2RvbWRhdGEpOwogCi0gb3V0OgogICAgIHJjdV9yZWFkX3VubG9jaygmc2NoZWRfcmVzX3Jj
dWxvY2spOwogCi0gICAgcmV0dXJuIHJldDsKKyAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBz
Y2hlZF9kZXN0cm95X3ZjcHUoc3RydWN0IHZjcHUgKnYpCi0tIAoyLjM1LjMKCg==

--------------hNd3SMThRn7y6eGbr0bmCqA0--

--------------5Q6MPXTMRZgh0wXh2d0DQ00c--

--------------yC5bohNtndtBwCMpIwyzed7v
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/Ey8FAmVt3e0FAwAAAAAACgkQsN6d1ii/Ey8X
Owf/RXfpzUuoPmhDqLdkBIZ8xan1fvUtH8d6J7k/Ol8p2JY2ApYFjlaVdBjktjHXIn3grazR4LXu
Mz9KZ3P4pTAfOfNqydXqnYSiLM2Nb/5pIXof7nm9cRtjXOaOk1IBNdsvoXJq08UObsad8eHgocRr
aTpKX61zpzALCqotam8fuWXSs1NgiPSIrIkouXaqOeEB4XfGj+upfCp39dYCThsFKJB2TK5XN4xA
zxXchPzODqi5wSwhygWDT/qvjbZq41tKIReZeEcW6stQC3jBkpEArnIrs/eQEB4OKJuJfsSnKxrX
5qdArXbF9bjZCedRz/ZIZIpkTcetxbcB3PDWgQ7pOQ==
=fMtZ
-----END PGP SIGNATURE-----

--------------yC5bohNtndtBwCMpIwyzed7v--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:11:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:11:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647006.1009682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA9fJ-00016L-03; Mon, 04 Dec 2023 14:11:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647006.1009682; Mon, 04 Dec 2023 14: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 1rA9fI-00016E-TV; Mon, 04 Dec 2023 14:11:16 +0000
Received: by outflank-mailman (input) for mailman id 647006;
 Mon, 04 Dec 2023 14:11:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rA9fH-0000Xk-Nk
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:11:15 +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 fbbdda18-92ae-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:11:14 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-50bce78f145so5331245e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 06:11:14 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 e14-20020a5d500e000000b0033335644478sm7694127wrt.114.2023.12.04.06.11.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 06:11:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbbdda18-92ae-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701699073; x=1702303873; 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=OV7JDXsw4T8t6RmiQ2mrWIVppwMRgt2M9rFfBsbnIao=;
        b=LlLKik4ew1x1nVJIgj5HL0owDhS7oM2cX/6owbVK8ccOIylIt+H+uM9TV///UMSb7Z
         4vg88Jjsg4xJYWc5/m4zoYptycgUzEjrWDeHWzT3OnD7OeQ766XykUwzAIFg0v5O/p1D
         t6MXRV2U/00m16kDvHgZMmEQXm+ai0KFq62Oo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701699073; x=1702303873;
        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=OV7JDXsw4T8t6RmiQ2mrWIVppwMRgt2M9rFfBsbnIao=;
        b=XSLmfSoEZsKIoqQdczg2JQQ+w4oVFXghBK6O1xc7WxQ68arBhpKuyXEQqqCK3Ppl55
         BTxGtxh6PS6j0SlJcVav2U0vnaQCmAQVQNiPcuA03oofesrsPTrD6qFLcfEHIPk3yitq
         hTL5wf38PrKKlid3cPWL70VtbWiqtwkbHmRXgTh5GHFaQeaycjPme6yaiPuOaNzSZY59
         9CSr35gwe/4ZBGI+a3D3JtZ/D3fjaIbL74c3bF+McSf7iEn17DjkYwDKDGHoqsJIsAcn
         8LMGdqwiGq0byOedoeVlxsmOnXF/qlj5XN2bW2BEZSD7jspokSgVvisa4kuOWFRpacyg
         qeXA==
X-Gm-Message-State: AOJu0Yydc5Sw+cv6Vz98aGhPWBOgG2KS/ZQ1A3Myo+9d3W74hSoEha5U
	yBgfXulTMAZFh6oOddH+9ZrwgQ==
X-Google-Smtp-Source: AGHT+IF0q1cly9Art+8S9DGcTEcPuKXcoR2SQtOxNOBqDExm6XcLofIKGSlFfHU//Qb2BjxSMgDIyA==
X-Received: by 2002:a05:6512:1113:b0:50b:fbdf:de7d with SMTP id l19-20020a056512111300b0050bfbdfde7dmr348169lfg.154.1701699073580;
        Mon, 04 Dec 2023 06:11:13 -0800 (PST)
Date: Mon, 4 Dec 2023 15:11:12 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v9 2/2] xen/vpci: header: filter PCI capabilities
Message-ID: <ZW3eAAb9TvSIup8J@macbook>
References: <20231201154552.3066321-1-stewart.hildebrand@amd.com>
 <20231201154552.3066321-3-stewart.hildebrand@amd.com>
 <11674268-4da3-4f20-909c-43b94bdfad2e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <11674268-4da3-4f20-909c-43b94bdfad2e@suse.com>

On Mon, Dec 04, 2023 at 12:48:00PM +0100, Jan Beulich wrote:
> On 01.12.2023 16:45, Stewart Hildebrand wrote:
> > --- a/xen/drivers/pci/pci.c
> > +++ b/xen/drivers/pci/pci.c
> > @@ -39,31 +39,42 @@ unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap)
> >      return 0;
> >  }
> >  
> > -unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,
> > -                               unsigned int cap)
> > +unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
> > +                                   const unsigned int *cap, unsigned int n,
> 
> Imo this would better be written as cap[] (or even caps[]).
> 
> > @@ -545,6 +546,68 @@ static int cf_check init_bars(struct pci_dev *pdev)
> >      if ( rc )
> >          return rc;
> >  
> > +    if ( !is_hardware_domain(pdev->domain) )
> > +    {
> > +        if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
> > +        {
> > +            /* Only expose capabilities to the guest that vPCI can handle. */
> > +            unsigned int next, ttl = 48;
> > +            const unsigned int supported_caps[] = {
> > +                PCI_CAP_ID_MSI,
> > +                PCI_CAP_ID_MSIX,
> > +            };
> 
> static?
> 
> With the two adjustments
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

FTAOD: please also keep my RB when doing those adjustments.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:19:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:19:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647015.1009692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rA9mt-00043v-Md; Mon, 04 Dec 2023 14:19:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647015.1009692; Mon, 04 Dec 2023 14:19: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 1rA9mt-00043o-Jf; Mon, 04 Dec 2023 14:19:07 +0000
Received: by outflank-mailman (input) for mailman id 647015;
 Mon, 04 Dec 2023 14:19:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bwcF=HP=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rA9mr-00042T-Jj
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:19:05 +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 13824487-92b0-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:19:03 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-50be10acaf9so2454889e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 06:19:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13824487-92b0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701699543; x=1702304343; 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=aoXpYKeAwkkXM5zAxEhzOuV4q5RZWoJvtgzz21y8toE=;
        b=kQozw+dN9mhS+HxrbNdou3xSNWK1cWQSZK5TYY3V0nhgLdwrXbePwazjJDx3DOz5ml
         v7dbx4CcXWnUQZ6GmO5p2S/WUP9VROVrEVjz5dgdQOHM8zgyq8ass1USmDGPR55So/h4
         mLBsJcSQeyYzN2Y9C0EzKjoPwTdHGYIZdIOu8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701699543; x=1702304343;
        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=aoXpYKeAwkkXM5zAxEhzOuV4q5RZWoJvtgzz21y8toE=;
        b=dA0/EZy81g8zBg+DedAJ4NhRzpZT9glBO2SOAps9rO5faqZh3Dwm88pAsvZcclWBqd
         6CBQ7URaaJKeDiGprJG52cKUzymdMa9foOvMQO+9PLVBNcRoYpDtA+5oFCJnAXL5YwZr
         V/q6dUg8fl0JUoRh4OVNt+E3f9EAEuWXFT2y5sQhjrv3kTzSmLwRqospi1DSADagIEK4
         Im17qMdakWGHB7bGaTRDrS++uQ7prrHMj9rJ/5DKYCiQAZMa9DITffpxkasPV6vRMSrO
         qZDyLM1Wpvoh7nuqgsVCi/ArAD0FXi+bS9hAmsXhSrTBag2bqV8NjPD1u9ulAE1YjjFw
         EKXw==
X-Gm-Message-State: AOJu0YzJOP2FuzF+l2OxwyjC7i7nO+xr8cDEPf4somz8Fo0o6dgEUdw5
	uJ+TJUdyGl9xwSP7jyzpyPGt/hYPlRx+ezgEiJ5Djg==
X-Google-Smtp-Source: AGHT+IHzgXYXlV5kZlqZeRDSc0KdLqRPGLuEz/Oy4IzEgPC1nm7GcEwCrPaQrhuPB6DE+gJ8ekslu0qdttWGT/5dOno=
X-Received: by 2002:ac2:5dc3:0:b0:50b:f3fc:125a with SMTP id
 x3-20020ac25dc3000000b0050bf3fc125amr963378lfq.10.1701699542965; Mon, 04 Dec
 2023 06:19:02 -0800 (PST)
MIME-Version: 1.0
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com> <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
In-Reply-To: <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Mon, 4 Dec 2023 14:18:52 +0000
Message-ID: <CA+zSX=aicqMNWybLQYe3Jb6rzfePVrgbg6KT=rYnLnvq-GKrcA@mail.gmail.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
To: Juergen Gross <jgross@suse.com>
Cc: Jan Beulich <jbeulich@suse.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Dario Faggioli <dfaggioli@suse.com>, 
	=?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 4, 2023 at 2:10=E2=80=AFPM Juergen Gross <jgross@suse.com> wrot=
e:
>
> On 04.12.23 14:00, George Dunlap wrote:
> > On Mon, Dec 4, 2023 at 10:57=E2=80=AFAM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >>
> >> It is only in the error case that we want to clean up the new pool's
> >> scheduler data; in the success case it's rather the old scheduler's
> >> data which needs cleaning up.
> >>
> >> Reported-by: Ren=C3=A9 Winther H=C3=B8jgaard <renewin@proton.me>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> Reviewed-by: Juergen Gross <jgross@suse.com>
> >>
> >> --- a/xen/common/sched/core.c
> >> +++ b/xen/common/sched/core.c
> >> @@ -810,7 +810,7 @@ int sched_move_domain(struct domain *d,
> >>       for ( unit =3D old_units; unit; )
> >>       {
> >>           if ( unit->priv )
> >> -            sched_free_udata(c->sched, unit->priv);
> >> +            sched_free_udata(ret ? c->sched : old_ops, unit->priv);
> >>           old_unit =3D unit;
> >>           unit =3D unit->next_in_list;
> >>           xfree(old_unit);
> >
> > This code is unfortunately written in a "clever" way which seems to
> > have introduced some confusion.  The one place which calls "goto
> > out_free" goes through and replaces *most* of the "old_*" variables
> > with the "new" equivalents.  That's why we're iterating over
> > `old_units` even on the failure path.
> >
> > The result is that this change doesn't catch another bug on the
> > following line, in the error case:
> >
> > sched_free_domdata(old_ops, old_domdata);
> >
> > At this point, old_ops is still the old ops, but old_domdata is the
> > *new* domdata.
> >
> > A patch like the following (compile tested only) would fix it along
> > the lines of the original intent:
> > 8<-------
> > diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
> > index eba0cea4bb..78f21839d3 100644
> > --- a/xen/common/sched/core.c
> > +++ b/xen/common/sched/core.c
> > @@ -720,6 +720,7 @@ int sched_move_domain(struct domain *d, struct cpup=
ool *c)
> >           {
> >               old_units =3D new_units;
> >               old_domdata =3D domdata;
> > +            old_ops =3D c->sched;
> >               ret =3D -ENOMEM;
> >               goto out_free;
> >           }
> > @@ -809,10 +810,15 @@ int sched_move_domain(struct domain *d, struct cp=
upool *c)
> >       domain_unpause(d);
> >
> >    out_free:
> > +    /*
> > +     * NB if we've jumped here, "old_units", "old_ops", and so on will
> > +     * actually be pointing to the new ops, since when aborting it's
> > +     * the new ops we want to free.
> > +     */
> >       for ( unit =3D old_units; unit; )
> >       {
> >           if ( unit->priv )
> > -            sched_free_udata(c->sched, unit->priv);
> > +            sched_free_udata(old_ops, unit->priv);
> >           old_unit =3D unit;
> >           unit =3D unit->next_in_list;
> >           xfree(old_unit);
> > ---->8
> >
> > But given that this kind of cleverness has already fooled two of our
> > most senior developers, I'd suggest making the whole thing more
> > explicit; something like the attached (again compile-tested only)?
>
> And I have again a third approach, making it crystal clear what is happen=
ing
> with which data. No need to explain what is freed via which variables. Se=
e
> attached patch (this time it should be really there).

Yes, I thought about making a function as well -- that works for me too.

Personally I prefer to keep the "goto out", rather than duplicating
the rcu_read_unlock().  I'd yield if Jan said he preferred
duplication, however.

 -George


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:34:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:34:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647019.1009702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAA1U-0000AY-3M; Mon, 04 Dec 2023 14:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647019.1009702; Mon, 04 Dec 2023 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 1rAA1T-0000AR-WB; Mon, 04 Dec 2023 14:34:11 +0000
Received: by outflank-mailman (input) for mailman id 647019;
 Mon, 04 Dec 2023 14:34:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/x5/=HP=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rAA1S-0000AL-Iy
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:34:10 +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 2ebf6329-92b2-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 15:34:09 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-647-j35TmjwUNKevqb14ZTIcdA-1; Mon,
 04 Dec 2023 09:34:06 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id D5A631C06535;
 Mon,  4 Dec 2023 14:34:03 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.237])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id B9F2240C6EB9;
 Mon,  4 Dec 2023 14:33:58 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ebf6329-92b2-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701700447;
	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=VmAAnk2hgXAxz3YwAXy2av/6HBbaMs5STpe6b+ZkGUU=;
	b=L1EXhP8/uSfY9G5tysVB+4nVjlM5xoLVVhSS0jjgIJkQzM8iltNSTo/n0BpmFEHsfjs/wa
	Xe9r4T/N9z56FobAyrEUvWRhZM8+XkonRi50xxHRhaX50HAPbrvrMaTEKN6921krX67P2C
	kROjdLIYMd8AxQeUVAOP78zb0Au+Fqw=
X-MC-Unique: j35TmjwUNKevqb14ZTIcdA-1
Date: Mon, 4 Dec 2023 15:33:57 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 05/12] block: remove AioContext locking
Message-ID: <ZW3jVZZ_Kuf99g8O@redhat.com>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-6-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231129195553.942921-6-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2

Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> This is the big patch that removes
> aio_context_acquire()/aio_context_release() from the block layer and
> affected block layer users.
> 
> There isn't a clean way to split this patch and the reviewers are likely
> the same group of people, so I decided to do it in one patch.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

> @@ -7585,29 +7433,12 @@ void coroutine_fn bdrv_co_leave(BlockDriverState *bs, AioContext *old_ctx)
>  
>  void coroutine_fn bdrv_co_lock(BlockDriverState *bs)
>  {
> -    AioContext *ctx = bdrv_get_aio_context(bs);
> -
> -    /* In the main thread, bs->aio_context won't change concurrently */
> -    assert(qemu_get_current_aio_context() == qemu_get_aio_context());
> -
> -    /*
> -     * We're in coroutine context, so we already hold the lock of the main
> -     * loop AioContext. Don't lock it twice to avoid deadlocks.
> -     */
> -    assert(qemu_in_coroutine());
> -    if (ctx != qemu_get_aio_context()) {
> -        aio_context_acquire(ctx);
> -    }
> +    /* TODO removed in next patch */
>  }

It's still there at the end of the series.

>  void coroutine_fn bdrv_co_unlock(BlockDriverState *bs)
>  {
> -    AioContext *ctx = bdrv_get_aio_context(bs);
> -
> -    assert(qemu_in_coroutine());
> -    if (ctx != qemu_get_aio_context()) {
> -        aio_context_release(ctx);
> -    }
> +    /* TODO removed in next patch */
>  }

This one, too.

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:38:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:38:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647021.1009711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAA5o-0001Dp-Jf; Mon, 04 Dec 2023 14:38:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647021.1009711; Mon, 04 Dec 2023 14:38:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAA5o-0001Di-H5; Mon, 04 Dec 2023 14:38:40 +0000
Received: by outflank-mailman (input) for mailman id 647021;
 Mon, 04 Dec 2023 14:38:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAA5n-0001Dc-93
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:38:39 +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 cee92578-92b2-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:38:37 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3332f1512e8so2925677f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 06:38:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 b12-20020a05600010cc00b0033340aa3de2sm5083686wrx.14.2023.12.04.06.38.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 06:38:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cee92578-92b2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701700716; x=1702305516; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ERY7B9xrhsNnqsuSdCl+RCz3BWS/9BHjcxr3X07ohtg=;
        b=ZB46NYg0AVclEvmZExyjEDRk0dgNVzpXa0yoqsdPHXj+j77aIAtm3l37q6HYXbMrfM
         LYadmg/ioAWdn0jqgY2EfM6hkoNq49mEbXClFi3/mYr3yRwEjbhOlB6iDOQNxmKLqYo8
         jFG22t/hjt4/rwJF2s4o7gTqTDeZkZ96U4Xo7HcZ3F+ARIeZLSp3Nvge5X0f+9q6xXjn
         9qxRMoGYDcwLyTIl0A557yyKbfqnBwMTIrNEBvcOOl/+1voZrCYBzoEpl6NHDKwuWVIA
         YQ0PaTpAk/tb7ywMSkE3eEygx6EQPPlZ2zo4iVbCaPNrMBjrBk93Gip5NZbeafAFCqma
         5Nmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701700716; x=1702305516;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ERY7B9xrhsNnqsuSdCl+RCz3BWS/9BHjcxr3X07ohtg=;
        b=po0EQ5nXizTQVOp66Ml1xi8GI93j/Z/VppCBp6XXMH3Q8LJU6mr2/GK7Hp5FE1Gytm
         g7fIQ8EL4S7zyH6lJ4w9j+y54flTkORbkSlDHGrDxHm97dGP/UfAvcLgBI20H1hKat1r
         yzg72XpcLtcwDnpKVAQzOyj1izD+buv5/seJHnSQoSiFUWh2kwrUNBvWwwybaSDnp9EW
         rhkwRbVy7rwgZviRwqo6Wv3fjVjiiTkYUNrJrw4sJ3yp1g0zb0Ps2fjM9L7YamO2O39V
         iLYJY4t/tUyEQxDQOR1ltnwQKsjbC2SJVQcln1KC4Z76jgFGN9mm190fIVXHdJSd27U1
         E4Dw==
X-Gm-Message-State: AOJu0Yz0cAZ6llhHpoAVYhN5qiIoTS5UXjk/nBMOli1a1XpxcqssMUhi
	5U00LwTqt9s9RUPYshwG89A+
X-Google-Smtp-Source: AGHT+IGbbXnoFfeDGMsxq2HLu0QgJuMJl0EsyYa5ZSRFSk6Lxt8dmYuXfKLSqeCrWvrlIJUmKsApxw==
X-Received: by 2002:a5d:510d:0:b0:333:3fc7:f2bf with SMTP id s13-20020a5d510d000000b003333fc7f2bfmr1829023wrt.134.1701700716455;
        Mon, 04 Dec 2023 06:38:36 -0800 (PST)
Message-ID: <3b0cee73-5eb5-4724-add7-f64c199f56b3@suse.com>
Date: Mon, 4 Dec 2023 15:38:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 George Dunlap <george.dunlap@cloud.com>
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
 <88796b63-390d-4a4f-982f-ce86f21017c1@suse.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: <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 15:10, Juergen Gross wrote:
> And I have again a third approach, making it crystal clear what is happening
> with which data. No need to explain what is freed via which variables. See
> attached patch (this time it should be really there).

Looks more neat to me than George's. Just one minor thing: Please can the
first parameter of sched_move_domain_cleanup() be constified?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:39:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647024.1009722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAA6j-0001uB-TP; Mon, 04 Dec 2023 14:39:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647024.1009722; Mon, 04 Dec 2023 14:39:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAA6j-0001u4-QC; Mon, 04 Dec 2023 14:39:37 +0000
Received: by outflank-mailman (input) for mailman id 647024;
 Mon, 04 Dec 2023 14:39:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAA6i-0001ty-V2
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:39:36 +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 f177edac-92b2-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:39:35 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-332f90a375eso3617698f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 06:39:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 b12-20020a05600010cc00b0033340aa3de2sm5083686wrx.14.2023.12.04.06.39.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 06:39:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f177edac-92b2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701700774; x=1702305574; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=YcNakCq4Iq1CKBsmXKLeg2bQw+NFFQKVEBEIzK7fSvg=;
        b=YMNgJjEt+zRfxljFpAA6wdHp5a3MWj9t8g20F2h8ytejy/7eSQrduHU5Nb7wT/CDHs
         EFHn3vh2zLwBiXUjpydq5f9p2UcTXZo55iHnMeVqm0w3E/F1bfbcdHceyvTlUqoGXBdH
         FVpRUH2L4YUVCqmhCL+nF/7AGShr8h4q7cv69nEDCUMzbCnA45S60p9fn/KI2x0R0egq
         HhUtO7Mnv5AhEzvRyxrR7IlUJqYWz1qFYReA7SV6Nf7QbckuPFsSr7//Xt2xB7d85gpM
         ahpL+pGPo5oxhDZnrEVd1hfSDaf2Z99lQMv0lh9f5iojqWYd9xPDeK7twRALM1FYTnc6
         X+FQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701700774; x=1702305574;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=YcNakCq4Iq1CKBsmXKLeg2bQw+NFFQKVEBEIzK7fSvg=;
        b=RAGKwwX29q0qTWQ4He1mGM317judPTJrAnYGwUL6ByBapehAx9C1P1brLF5ayiV8Ro
         RQaxPAPYBBF52gt77WSzO6CaCCSUbphUSn+XDRMjwnll+d3KE4Uaku7Zp/Wf6V11ngMg
         s324f08Cfl5f4f4Ql85+nHcsHkSEahzzXwhwtGyLuDYwXSkQxADyGvhG733VxsAwLGzg
         QsxnMjlF1+97alcnS8CvP5E1jYtFSV3qMWANZoWYVU2S3i9+bjz3kNxIyPSGumNuGT75
         +YyDuyauvZ5TJMXSMO7Nc1MmAkmInTEQgK1jMX9KcYq1GLj5SeddfyvqaLelk9aGfbuu
         fpOQ==
X-Gm-Message-State: AOJu0YzDMnnImNJVIxpIoCIDPzs/p3+1mvwOLhNgXWPtP4ZHQnQbROic
	LWDxhqjdvEhodwp+gqBgUQAu
X-Google-Smtp-Source: AGHT+IF0O5kVGdTmNrAsAuPUo6gSfYQyMSu1s4Y5mdzt5Y8AUTh9obdMlpR0qRK+5cHShoBksompyw==
X-Received: by 2002:a5d:44c8:0:b0:333:3eaa:f67a with SMTP id z8-20020a5d44c8000000b003333eaaf67amr2061400wrr.75.1701700774548;
        Mon, 04 Dec 2023 06:39:34 -0800 (PST)
Message-ID: <15398b81-ad6b-4b14-a35a-e1e5d58fe935@suse.com>
Date: Mon, 4 Dec 2023 15:39:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
Content-Language: en-US
To: George Dunlap <george.dunlap@cloud.com>, Juergen Gross <jgross@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
 <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
 <CA+zSX=aicqMNWybLQYe3Jb6rzfePVrgbg6KT=rYnLnvq-GKrcA@mail.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: <CA+zSX=aicqMNWybLQYe3Jb6rzfePVrgbg6KT=rYnLnvq-GKrcA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.12.2023 15:18, George Dunlap wrote:
> On Mon, Dec 4, 2023 at 2:10â€¯PM Juergen Gross <jgross@suse.com> wrote:
>>
>> On 04.12.23 14:00, George Dunlap wrote:
>>> On Mon, Dec 4, 2023 at 10:57â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
>>>>
>>>> It is only in the error case that we want to clean up the new pool's
>>>> scheduler data; in the success case it's rather the old scheduler's
>>>> data which needs cleaning up.
>>>>
>>>> Reported-by: RenÃ© Winther HÃ¸jgaard <renewin@proton.me>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>> Reviewed-by: Juergen Gross <jgross@suse.com>
>>>>
>>>> --- a/xen/common/sched/core.c
>>>> +++ b/xen/common/sched/core.c
>>>> @@ -810,7 +810,7 @@ int sched_move_domain(struct domain *d,
>>>>       for ( unit = old_units; unit; )
>>>>       {
>>>>           if ( unit->priv )
>>>> -            sched_free_udata(c->sched, unit->priv);
>>>> +            sched_free_udata(ret ? c->sched : old_ops, unit->priv);
>>>>           old_unit = unit;
>>>>           unit = unit->next_in_list;
>>>>           xfree(old_unit);
>>>
>>> This code is unfortunately written in a "clever" way which seems to
>>> have introduced some confusion.  The one place which calls "goto
>>> out_free" goes through and replaces *most* of the "old_*" variables
>>> with the "new" equivalents.  That's why we're iterating over
>>> `old_units` even on the failure path.
>>>
>>> The result is that this change doesn't catch another bug on the
>>> following line, in the error case:
>>>
>>> sched_free_domdata(old_ops, old_domdata);
>>>
>>> At this point, old_ops is still the old ops, but old_domdata is the
>>> *new* domdata.
>>>
>>> A patch like the following (compile tested only) would fix it along
>>> the lines of the original intent:
>>> 8<-------
>>> diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
>>> index eba0cea4bb..78f21839d3 100644
>>> --- a/xen/common/sched/core.c
>>> +++ b/xen/common/sched/core.c
>>> @@ -720,6 +720,7 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
>>>           {
>>>               old_units = new_units;
>>>               old_domdata = domdata;
>>> +            old_ops = c->sched;
>>>               ret = -ENOMEM;
>>>               goto out_free;
>>>           }
>>> @@ -809,10 +810,15 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
>>>       domain_unpause(d);
>>>
>>>    out_free:
>>> +    /*
>>> +     * NB if we've jumped here, "old_units", "old_ops", and so on will
>>> +     * actually be pointing to the new ops, since when aborting it's
>>> +     * the new ops we want to free.
>>> +     */
>>>       for ( unit = old_units; unit; )
>>>       {
>>>           if ( unit->priv )
>>> -            sched_free_udata(c->sched, unit->priv);
>>> +            sched_free_udata(old_ops, unit->priv);
>>>           old_unit = unit;
>>>           unit = unit->next_in_list;
>>>           xfree(old_unit);
>>> ---->8
>>>
>>> But given that this kind of cleverness has already fooled two of our
>>> most senior developers, I'd suggest making the whole thing more
>>> explicit; something like the attached (again compile-tested only)?
>>
>> And I have again a third approach, making it crystal clear what is happening
>> with which data. No need to explain what is freed via which variables. See
>> attached patch (this time it should be really there).
> 
> Yes, I thought about making a function as well -- that works for me too.
> 
> Personally I prefer to keep the "goto out", rather than duplicating
> the rcu_read_unlock().  I'd yield if Jan said he preferred
> duplication, however.

I'm on the edge there actually.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:41:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647033.1009732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAA84-0003an-70; Mon, 04 Dec 2023 14:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647033.1009732; Mon, 04 Dec 2023 14: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 1rAA84-0003ag-3j; Mon, 04 Dec 2023 14:41:00 +0000
Received: by outflank-mailman (input) for mailman id 647033;
 Mon, 04 Dec 2023 14:40:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAA82-0003ZK-Jw
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:40:58 +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 21fa208e-92b3-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:40:56 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 E94FD220DB;
 Mon,  4 Dec 2023 14:40: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 BD3761398A;
 Mon,  4 Dec 2023 14:40:55 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id QE7eLPfkbWVePwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 14:40:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 21fa208e-92b3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701700855; 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=VlwA8My+dbRpoPnWxNeaKNiDQ2moVS2bpUubgiTOliA=;
	b=iryStg1DMLg3vcGEjts99dzqlD39GGQDgUMOpuFsoNQb5MKoAZ2BmcxHFzVBCuEQK0rRcl
	RJFqHcSMM4nN2FPfp1P7NaCEREA28NFm+OqTqWrLRB//SfVABYiURcAzORnU9nZ64EKhbv
	nYYkaEHlTuWCN+i6/UmKmfsVUwsKkzE=
Message-ID: <47944eb9-7407-43d4-b66b-c35f2c453134@suse.com>
Date: Mon, 4 Dec 2023 15:40:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 George Dunlap <george.dunlap@cloud.com>
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
 <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
 <3b0cee73-5eb5-4724-add7-f64c199f56b3@suse.com>
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: <3b0cee73-5eb5-4724-add7-f64c199f56b3@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------YbsBuylPUypvlqTbtEC6L4pN"
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spamd-Result: default: False [-2.92 / 50.00];
	 ARC_NA(0.00)[];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-0.73)[83.78%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Score: -2.92

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------YbsBuylPUypvlqTbtEC6L4pN
Content-Type: multipart/mixed; boundary="------------NAu5DGGSuB8WYuGlOj6Xu6VE";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 George Dunlap <george.dunlap@cloud.com>
Message-ID: <47944eb9-7407-43d4-b66b-c35f2c453134@suse.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
 <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
 <3b0cee73-5eb5-4724-add7-f64c199f56b3@suse.com>
In-Reply-To: <3b0cee73-5eb5-4724-add7-f64c199f56b3@suse.com>

--------------NAu5DGGSuB8WYuGlOj6Xu6VE
Content-Type: multipart/mixed; boundary="------------B0NHqW4zFPQlmqYjVIvkgXPC"

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

T24gMDQuMTIuMjMgMTU6MzgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNC4xMi4yMDIz
IDE1OjEwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gQW5kIEkgaGF2ZSBhZ2FpbiBhIHRo
aXJkIGFwcHJvYWNoLCBtYWtpbmcgaXQgY3J5c3RhbCBjbGVhciB3aGF0IGlzIGhhcHBlbmlu
Zw0KPj4gd2l0aCB3aGljaCBkYXRhLiBObyBuZWVkIHRvIGV4cGxhaW4gd2hhdCBpcyBmcmVl
ZCB2aWEgd2hpY2ggdmFyaWFibGVzLiBTZWUNCj4+IGF0dGFjaGVkIHBhdGNoICh0aGlzIHRp
bWUgaXQgc2hvdWxkIGJlIHJlYWxseSB0aGVyZSkuDQo+IA0KPiBMb29rcyBtb3JlIG5lYXQg
dG8gbWUgdGhhbiBHZW9yZ2Uncy4gSnVzdCBvbmUgbWlub3IgdGhpbmc6IFBsZWFzZSBjYW4g
dGhlDQo+IGZpcnN0IHBhcmFtZXRlciBvZiBzY2hlZF9tb3ZlX2RvbWFpbl9jbGVhbnVwKCkg
YmUgY29uc3RpZmllZD8NCg0KWWVzLCB3aWxsIGRvIHRoYXQuDQoNCkknbGwgc2VuZCBvdXQg
VjIgc29vbiB0b2dldGhlciB3aXRoIHRoZSBvdGhlciBmaXggKHRoaXMgcHJvYmFibHkgd2Fu
dHMNCmFuIHVwZGF0ZSBvZiB0aGUgY29tbWl0IG1lc3NhZ2UpIGFuZCBhIHNtYWxsIGNsZWFu
dXAgcGF0Y2ggSSBoYXZlLg0KDQoNCkp1ZXJnZW4NCg==
--------------B0NHqW4zFPQlmqYjVIvkgXPC
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-----

--------------B0NHqW4zFPQlmqYjVIvkgXPC--

--------------NAu5DGGSuB8WYuGlOj6Xu6VE--

--------------YbsBuylPUypvlqTbtEC6L4pN
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/Ey8FAmVt5PcFAwAAAAAACgkQsN6d1ii/Ey8Z
2QgAifO2IXxJa21RqPR8mc5ZaIbns3wYpLcJHA6wa4uRhMnbgD7lxnAVrs4vL0j4+HkG9koTvAcx
MGYuFflNX6J83QMS8TLZ94Ay2qHbgleIuqyBjw+b/dzEuTyoKSSw7rL91IGhUyC0uxXfjixicimo
20bJGhLGy4M12W9jH5hhgicmuLtT0oIwkvsY930+du2RGQOZnG8Qh9bVoXsQDueMLG6ygVBENKl2
kUqDHJoXfNtTLZ3sebAk1cF/LhEyaBpjvEQXsDLmT8kZ2C5kVctXTTcLoRyxCFYSEZTG5Y2uIZwC
nO26vOrlJHNsJvllDuvpZoijGUPuls9FzuWBIJiiuQ==
=N0qV
-----END PGP SIGNATURE-----

--------------YbsBuylPUypvlqTbtEC6L4pN--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:42:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:42:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647043.1009742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAA9I-0004QX-KP; Mon, 04 Dec 2023 14:42:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647043.1009742; Mon, 04 Dec 2023 14:42: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 1rAA9I-0004QQ-HW; Mon, 04 Dec 2023 14:42:16 +0000
Received: by outflank-mailman (input) for mailman id 647043;
 Mon, 04 Dec 2023 14: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=+lk/=HP=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rAA9H-0004QI-Q1
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:42:15 +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 4ff058d9-92b3-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:42:13 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c0f3a7717so2667615e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 06:42:13 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 r21-20020a05600c35d500b0040b3e79bad3sm15222486wmq.40.2023.12.04.06.42.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 06:42:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ff058d9-92b3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701700933; x=1702305733; 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=XJlNr3OkKwgMfdXnSpyltT2DWzPEGhXETLbh84JRuew=;
        b=jzszGPe42V9JgAOY+81Qjy/oZTNc8oKGCXmvtY+JsfO5TVXtl5KSXowsZUek6gYVzg
         c96//tCWp9kXz2kBR1KktCxVoPDSk9hCrPt5lU+0SxdjUFcTO2laqFJQA64cvzgpkT3O
         hTHzltLZWxYbYqDnQtG2hG46u8rkJttoO1dQA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701700933; x=1702305733;
        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=XJlNr3OkKwgMfdXnSpyltT2DWzPEGhXETLbh84JRuew=;
        b=bnHr3RMvDNRJQKMr+iNIgSEUnLXYQ05rKiQICB4Qyyt1VTgbhteXzecTg7rRrCRKN6
         FxQE1k4CYFuHGCzMidUVvdGW71ExhcfF0uuLWh4zj4sFMir3WGLbPlHyaTRgRIOtbSAz
         vrhTpzEr9DxAlDv1Y6O92D2Sw1tqvFpmm1cuXTpfwl/AHedL6OmmgKM2Qs6QZC+o/s3+
         XT5JTxFBl1PIaXmAeU5pUWCpuDPG3oYYcHZPa1o3ajDgVSjyIjoOpeofq/lrGPbeF3PO
         ea9k9D3xldVML/fw8nkJ5C0NgrAvxOTzZEOH2lF/iP2YfL38T5YtV3MFnEXePYZLlHsD
         tw/w==
X-Gm-Message-State: AOJu0YwGKRyuPWC/ZP+EBCxIHuIa9ub+owYVMJ2qrXAlAAa6Xz4sBhmC
	HpJ1QIpCcyrLGk9qDmQOcDZJlg==
X-Google-Smtp-Source: AGHT+IENQ2rUsGiV/eS3db5Pr1Dw/vxx9UEllyOIHQBhxXK38j4LEkhnwo2k1YVB7jTw9m5svHCqDA==
X-Received: by 2002:a05:600c:4f06:b0:40b:5401:f02 with SMTP id l6-20020a05600c4f0600b0040b54010f02mr1400920wmq.32.1701700932920;
        Mon, 04 Dec 2023 06:42:12 -0800 (PST)
Date: Mon, 4 Dec 2023 14:42:12 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Juergen Gross <jgross@suse.com>
Cc: osstest service owner <osstest-admin@xenproject.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [linux-linus test] 183981: regressions - FAIL
Message-ID: <b80a2f3c-0cba-402b-b59b-4c386cbe1a59@perard>
References: <osstest-183981-mainreport@xen.org>
 <f4e9a8ee-fae6-4d44-b99b-61b2aa6054bf@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <f4e9a8ee-fae6-4d44-b99b-61b2aa6054bf@suse.com>

On Mon, Dec 04, 2023 at 06:56:50AM +0100, Juergen Gross wrote:
> On 04.12.23 00:51, osstest service owner wrote:
> > flight 183981 linux-linus real [real]
> > http://logs.test-lab.xenproject.org/osstest/logs/183981/
> > 
> > Regressions :-(
> > 
> > Tests which did not succeed and are blocking,
> > including tests which could not be run:
> >   build-i386-pvops              6 kernel-build             fail REGR. vs. 183973
> 
> This test is nonsense. We don't support running on a Pentium-Pro, which is the
> configured processor for the kernel.
> 
> We should do a 32-bit build using a more recent processor model.

That's Linux doing, that's the default model. osstest doesn't change it
or select anything in particular.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:44:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647063.1009752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAABG-0005Wz-11; Mon, 04 Dec 2023 14:44:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647063.1009752; Mon, 04 Dec 2023 14:44:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAABF-0005Ws-U3; Mon, 04 Dec 2023 14:44:17 +0000
Received: by outflank-mailman (input) for mailman id 647063;
 Mon, 04 Dec 2023 14:44:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAABE-0005WU-GE
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:44:16 +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 98873654-92b3-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 15:44:15 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id CBA311FCE2;
 Mon,  4 Dec 2023 14:44:14 +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 9BEA21398A;
 Mon,  4 Dec 2023 14:44:14 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id IdPhI77lbWV6QAAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 14:44: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: 98873654-92b3-11ee-98e5-6d05b1d4d9a1
Message-ID: <cd4b8857-ad69-489b-9a4f-63d53c4d360e@suse.com>
Date: Mon, 4 Dec 2023 15:44:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, George Dunlap <george.dunlap@cloud.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
 <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
 <CA+zSX=aicqMNWybLQYe3Jb6rzfePVrgbg6KT=rYnLnvq-GKrcA@mail.gmail.com>
 <15398b81-ad6b-4b14-a35a-e1e5d58fe935@suse.com>
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: <15398b81-ad6b-4b14-a35a-e1e5d58fe935@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------YkEuqfNQLPu8IPFdH4kn8LWo"
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: CBA311FCE2
X-Spam-Flag: YES
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------YkEuqfNQLPu8IPFdH4kn8LWo
Content-Type: multipart/mixed; boundary="------------VFTwj0KbDRYEmcqDxIGxGhdy";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, George Dunlap <george.dunlap@cloud.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Message-ID: <cd4b8857-ad69-489b-9a4f-63d53c4d360e@suse.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
 <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
 <CA+zSX=aicqMNWybLQYe3Jb6rzfePVrgbg6KT=rYnLnvq-GKrcA@mail.gmail.com>
 <15398b81-ad6b-4b14-a35a-e1e5d58fe935@suse.com>
In-Reply-To: <15398b81-ad6b-4b14-a35a-e1e5d58fe935@suse.com>

--------------VFTwj0KbDRYEmcqDxIGxGhdy
Content-Type: multipart/mixed; boundary="------------bccwx5pm9XoIgQ0qyZm3oSQB"

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

T24gMDQuMTIuMjMgMTU6MzksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNC4xMi4yMDIz
IDE1OjE4LCBHZW9yZ2UgRHVubGFwIHdyb3RlOg0KPj4gT24gTW9uLCBEZWMgNCwgMjAyMyBh
dCAyOjEw4oCvUE0gSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPiB3cm90ZToNCj4+
Pg0KPj4+IE9uIDA0LjEyLjIzIDE0OjAwLCBHZW9yZ2UgRHVubGFwIHdyb3RlOg0KPj4+PiBP
biBNb24sIERlYyA0LCAyMDIzIGF0IDEwOjU34oCvQU0gSmFuIEJldWxpY2ggPGpiZXVsaWNo
QHN1c2UuY29tPiB3cm90ZToNCj4+Pj4+DQo+Pj4+PiBJdCBpcyBvbmx5IGluIHRoZSBlcnJv
ciBjYXNlIHRoYXQgd2Ugd2FudCB0byBjbGVhbiB1cCB0aGUgbmV3IHBvb2wncw0KPj4+Pj4g
c2NoZWR1bGVyIGRhdGE7IGluIHRoZSBzdWNjZXNzIGNhc2UgaXQncyByYXRoZXIgdGhlIG9s
ZCBzY2hlZHVsZXIncw0KPj4+Pj4gZGF0YSB3aGljaCBuZWVkcyBjbGVhbmluZyB1cC4NCj4+
Pj4+DQo+Pj4+PiBSZXBvcnRlZC1ieTogUmVuw6kgV2ludGhlciBIw7hqZ2FhcmQgPHJlbmV3
aW5AcHJvdG9uLm1lPg0KPj4+Pj4gU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPg0KPj4+Pj4gUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9z
c0BzdXNlLmNvbT4NCj4+Pj4+DQo+Pj4+PiAtLS0gYS94ZW4vY29tbW9uL3NjaGVkL2NvcmUu
Yw0KPj4+Pj4gKysrIGIveGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMNCj4+Pj4+IEBAIC04MTAs
NyArODEwLDcgQEAgaW50IHNjaGVkX21vdmVfZG9tYWluKHN0cnVjdCBkb21haW4gKmQsDQo+
Pj4+PiAgICAgICAgZm9yICggdW5pdCA9IG9sZF91bml0czsgdW5pdDsgKQ0KPj4+Pj4gICAg
ICAgIHsNCj4+Pj4+ICAgICAgICAgICAgaWYgKCB1bml0LT5wcml2ICkNCj4+Pj4+IC0gICAg
ICAgICAgICBzY2hlZF9mcmVlX3VkYXRhKGMtPnNjaGVkLCB1bml0LT5wcml2KTsNCj4+Pj4+
ICsgICAgICAgICAgICBzY2hlZF9mcmVlX3VkYXRhKHJldCA/IGMtPnNjaGVkIDogb2xkX29w
cywgdW5pdC0+cHJpdik7DQo+Pj4+PiAgICAgICAgICAgIG9sZF91bml0ID0gdW5pdDsNCj4+
Pj4+ICAgICAgICAgICAgdW5pdCA9IHVuaXQtPm5leHRfaW5fbGlzdDsNCj4+Pj4+ICAgICAg
ICAgICAgeGZyZWUob2xkX3VuaXQpOw0KPj4+Pg0KPj4+PiBUaGlzIGNvZGUgaXMgdW5mb3J0
dW5hdGVseSB3cml0dGVuIGluIGEgImNsZXZlciIgd2F5IHdoaWNoIHNlZW1zIHRvDQo+Pj4+
IGhhdmUgaW50cm9kdWNlZCBzb21lIGNvbmZ1c2lvbi4gIFRoZSBvbmUgcGxhY2Ugd2hpY2gg
Y2FsbHMgImdvdG8NCj4+Pj4gb3V0X2ZyZWUiIGdvZXMgdGhyb3VnaCBhbmQgcmVwbGFjZXMg
Km1vc3QqIG9mIHRoZSAib2xkXyoiIHZhcmlhYmxlcw0KPj4+PiB3aXRoIHRoZSAibmV3IiBl
cXVpdmFsZW50cy4gIFRoYXQncyB3aHkgd2UncmUgaXRlcmF0aW5nIG92ZXINCj4+Pj4gYG9s
ZF91bml0c2AgZXZlbiBvbiB0aGUgZmFpbHVyZSBwYXRoLg0KPj4+Pg0KPj4+PiBUaGUgcmVz
dWx0IGlzIHRoYXQgdGhpcyBjaGFuZ2UgZG9lc24ndCBjYXRjaCBhbm90aGVyIGJ1ZyBvbiB0
aGUNCj4+Pj4gZm9sbG93aW5nIGxpbmUsIGluIHRoZSBlcnJvciBjYXNlOg0KPj4+Pg0KPj4+
PiBzY2hlZF9mcmVlX2RvbWRhdGEob2xkX29wcywgb2xkX2RvbWRhdGEpOw0KPj4+Pg0KPj4+
PiBBdCB0aGlzIHBvaW50LCBvbGRfb3BzIGlzIHN0aWxsIHRoZSBvbGQgb3BzLCBidXQgb2xk
X2RvbWRhdGEgaXMgdGhlDQo+Pj4+ICpuZXcqIGRvbWRhdGEuDQo+Pj4+DQo+Pj4+IEEgcGF0
Y2ggbGlrZSB0aGUgZm9sbG93aW5nIChjb21waWxlIHRlc3RlZCBvbmx5KSB3b3VsZCBmaXgg
aXQgYWxvbmcNCj4+Pj4gdGhlIGxpbmVzIG9mIHRoZSBvcmlnaW5hbCBpbnRlbnQ6DQo+Pj4+
IDg8LS0tLS0tLQ0KPj4+PiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMg
Yi94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYw0KPj4+PiBpbmRleCBlYmEwY2VhNGJiLi43OGYy
MTgzOWQzIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYw0KPj4+
PiArKysgYi94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYw0KPj4+PiBAQCAtNzIwLDYgKzcyMCw3
IEBAIGludCBzY2hlZF9tb3ZlX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgY3B1
cG9vbCAqYykNCj4+Pj4gICAgICAgICAgICB7DQo+Pj4+ICAgICAgICAgICAgICAgIG9sZF91
bml0cyA9IG5ld191bml0czsNCj4+Pj4gICAgICAgICAgICAgICAgb2xkX2RvbWRhdGEgPSBk
b21kYXRhOw0KPj4+PiArICAgICAgICAgICAgb2xkX29wcyA9IGMtPnNjaGVkOw0KPj4+PiAg
ICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOw0KPj4+PiAgICAgICAgICAgICAgICBnb3Rv
IG91dF9mcmVlOw0KPj4+PiAgICAgICAgICAgIH0NCj4+Pj4gQEAgLTgwOSwxMCArODEwLDE1
IEBAIGludCBzY2hlZF9tb3ZlX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgY3B1
cG9vbCAqYykNCj4+Pj4gICAgICAgIGRvbWFpbl91bnBhdXNlKGQpOw0KPj4+Pg0KPj4+PiAg
ICAgb3V0X2ZyZWU6DQo+Pj4+ICsgICAgLyoNCj4+Pj4gKyAgICAgKiBOQiBpZiB3ZSd2ZSBq
dW1wZWQgaGVyZSwgIm9sZF91bml0cyIsICJvbGRfb3BzIiwgYW5kIHNvIG9uIHdpbGwNCj4+
Pj4gKyAgICAgKiBhY3R1YWxseSBiZSBwb2ludGluZyB0byB0aGUgbmV3IG9wcywgc2luY2Ug
d2hlbiBhYm9ydGluZyBpdCdzDQo+Pj4+ICsgICAgICogdGhlIG5ldyBvcHMgd2Ugd2FudCB0
byBmcmVlLg0KPj4+PiArICAgICAqLw0KPj4+PiAgICAgICAgZm9yICggdW5pdCA9IG9sZF91
bml0czsgdW5pdDsgKQ0KPj4+PiAgICAgICAgew0KPj4+PiAgICAgICAgICAgIGlmICggdW5p
dC0+cHJpdiApDQo+Pj4+IC0gICAgICAgICAgICBzY2hlZF9mcmVlX3VkYXRhKGMtPnNjaGVk
LCB1bml0LT5wcml2KTsNCj4+Pj4gKyAgICAgICAgICAgIHNjaGVkX2ZyZWVfdWRhdGEob2xk
X29wcywgdW5pdC0+cHJpdik7DQo+Pj4+ICAgICAgICAgICAgb2xkX3VuaXQgPSB1bml0Ow0K
Pj4+PiAgICAgICAgICAgIHVuaXQgPSB1bml0LT5uZXh0X2luX2xpc3Q7DQo+Pj4+ICAgICAg
ICAgICAgeGZyZWUob2xkX3VuaXQpOw0KPj4+PiAtLS0tPjgNCj4+Pj4NCj4+Pj4gQnV0IGdp
dmVuIHRoYXQgdGhpcyBraW5kIG9mIGNsZXZlcm5lc3MgaGFzIGFscmVhZHkgZm9vbGVkIHR3
byBvZiBvdXINCj4+Pj4gbW9zdCBzZW5pb3IgZGV2ZWxvcGVycywgSSdkIHN1Z2dlc3QgbWFr
aW5nIHRoZSB3aG9sZSB0aGluZyBtb3JlDQo+Pj4+IGV4cGxpY2l0OyBzb21ldGhpbmcgbGlr
ZSB0aGUgYXR0YWNoZWQgKGFnYWluIGNvbXBpbGUtdGVzdGVkIG9ubHkpPw0KPj4+DQo+Pj4g
QW5kIEkgaGF2ZSBhZ2FpbiBhIHRoaXJkIGFwcHJvYWNoLCBtYWtpbmcgaXQgY3J5c3RhbCBj
bGVhciB3aGF0IGlzIGhhcHBlbmluZw0KPj4+IHdpdGggd2hpY2ggZGF0YS4gTm8gbmVlZCB0
byBleHBsYWluIHdoYXQgaXMgZnJlZWQgdmlhIHdoaWNoIHZhcmlhYmxlcy4gU2VlDQo+Pj4g
YXR0YWNoZWQgcGF0Y2ggKHRoaXMgdGltZSBpdCBzaG91bGQgYmUgcmVhbGx5IHRoZXJlKS4N
Cj4+DQo+PiBZZXMsIEkgdGhvdWdodCBhYm91dCBtYWtpbmcgYSBmdW5jdGlvbiBhcyB3ZWxs
IC0tIHRoYXQgd29ya3MgZm9yIG1lIHRvby4NCj4+DQo+PiBQZXJzb25hbGx5IEkgcHJlZmVy
IHRvIGtlZXAgdGhlICJnb3RvIG91dCIsIHJhdGhlciB0aGFuIGR1cGxpY2F0aW5nDQo+PiB0
aGUgcmN1X3JlYWRfdW5sb2NrKCkuICBJJ2QgeWllbGQgaWYgSmFuIHNhaWQgaGUgcHJlZmVy
cmVkDQo+PiBkdXBsaWNhdGlvbiwgaG93ZXZlci4NCj4gDQo+IEknbSBvbiB0aGUgZWRnZSB0
aGVyZSBhY3R1YWxseS4NCg0KSW4gdGhpcyBjYXNlIEknZCBwcmVmZXIgaXQgbXkgd2F5LCBh
cyBpdCBhdm9pZHMgaGF2aW5nIHRvIHNjcm9sbCBkb3duIHRvIHRoZQ0Kb3V0OiBsYWJlbCB0
byBzZWUgd2hhdCBpcyBoYXBwZW5pbmcgdGhlcmUuIEFkZGl0aW9uYWxseSBpdCBlbmFibGVz
IHRvIGdldCByaWQNCm9mIHRoZSByZXQgdmFyaWFibGUuDQoNCkluIHRoZSBlbmQgdGhlIG1h
aW4gcGFydCBvZiB0aGUgcGF0Y2ggaXMgdGhlIG5ldyBmdW5jdGlvbiwgc28gSSdtIG5vdCBy
ZWFsbHkNCmZlZWxpbmcgc3Ryb25nIHJlZ2FyZGluZyB0aGUgZHJvcHBpbmcgb2YgImdvdG8g
b3V0Ii4NCg0KDQpKdWVyZ2VuDQo=
--------------bccwx5pm9XoIgQ0qyZm3oSQB
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-----

--------------bccwx5pm9XoIgQ0qyZm3oSQB--

--------------VFTwj0KbDRYEmcqDxIGxGhdy--

--------------YkEuqfNQLPu8IPFdH4kn8LWo
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/Ey8FAmVt5b4FAwAAAAAACgkQsN6d1ii/Ey//
XAf/Tv+j2UjTtEt8/Prr8AsFYoij4tmsxr2fLYuFNDVku272IKo2MriJmW1O1wmdQMU2+LQql3yh
LS/NqXS5zghL1To6J+P4yfh6xSSP+921BS+JMTznO93v5h23DVAJQ+5TIz6M73HZZ3A5wgVhGkOi
Rv8UPwms0YCRWBxo65RofHmkP/AzvAegLHLhqXQan4yIHPpdv4qaUY+xkYlB5U2xUSUATTIXbXpb
KXVW6raoe5yUGPfZPMUZQKAdu3Sn2KdEjM21Tbkj1YrvDlD/W7FUyOZPq4fPPolAoDl9P6nRMmI+
m5rdvcCAY8FtBe3RZj/Dp+6SgK+fpj70TIg+I/f7Pw==
=Qe/H
-----END PGP SIGNATURE-----

--------------YkEuqfNQLPu8IPFdH4kn8LWo--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:49:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:49:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647073.1009762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAGO-00079h-L4; Mon, 04 Dec 2023 14:49:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647073.1009762; Mon, 04 Dec 2023 14:49:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAGO-00079a-Go; Mon, 04 Dec 2023 14:49:36 +0000
Received: by outflank-mailman (input) for mailman id 647073;
 Mon, 04 Dec 2023 14:49: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=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAAGN-00079U-Dr
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:49:35 +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 56b9ea28-92b4-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 15:49:34 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id C00DB1FE65;
 Mon,  4 Dec 2023 14:49: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 A09FE1398A;
 Mon,  4 Dec 2023 14:49:33 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id N9mMJf3mbWX8QgAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 14:49:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56b9ea28-92b4-11ee-98e5-6d05b1d4d9a1
Message-ID: <b4dc8e37-f5e1-43b0-8351-116fa6b63f37@suse.com>
Date: Mon, 4 Dec 2023 15:49:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [linux-linus test] 183981: regressions - FAIL
Content-Language: en-US
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: osstest service owner <osstest-admin@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <osstest-183981-mainreport@xen.org>
 <f4e9a8ee-fae6-4d44-b99b-61b2aa6054bf@suse.com>
 <b80a2f3c-0cba-402b-b59b-4c386cbe1a59@perard>
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: <b80a2f3c-0cba-402b-b59b-4c386cbe1a59@perard>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------jnQ0AUXlQ10WtjTh87wR1rg5"
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.54 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[3];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 ARC_NA(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 RCVD_COUNT_THREE(0.00)[3];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 NEURAL_SPAM_LONG(0.54)[0.155];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Score: 15.54
X-Rspamd-Queue-Id: C00DB1FE65
X-Spam-Flag: YES
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------jnQ0AUXlQ10WtjTh87wR1rg5
Content-Type: multipart/mixed; boundary="------------YWQ4wqkH8kbaTYIqTw0ZwzLh";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: osstest service owner <osstest-admin@xenproject.org>,
 xen-devel@lists.xenproject.org
Message-ID: <b4dc8e37-f5e1-43b0-8351-116fa6b63f37@suse.com>
Subject: Re: [linux-linus test] 183981: regressions - FAIL
References: <osstest-183981-mainreport@xen.org>
 <f4e9a8ee-fae6-4d44-b99b-61b2aa6054bf@suse.com>
 <b80a2f3c-0cba-402b-b59b-4c386cbe1a59@perard>
In-Reply-To: <b80a2f3c-0cba-402b-b59b-4c386cbe1a59@perard>

--------------YWQ4wqkH8kbaTYIqTw0ZwzLh
Content-Type: multipart/mixed; boundary="------------DYhOqT3cTGL8tIj38aYlfDkT"

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

T24gMDQuMTIuMjMgMTU6NDIsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBNb24sIERl
YyAwNCwgMjAyMyBhdCAwNjo1Njo1MEFNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gT24gMDQuMTIuMjMgMDA6NTEsIG9zc3Rlc3Qgc2VydmljZSBvd25lciB3cm90ZToNCj4+
PiBmbGlnaHQgMTgzOTgxIGxpbnV4LWxpbnVzIHJlYWwgW3JlYWxdDQo+Pj4gaHR0cDovL2xv
Z3MudGVzdC1sYWIueGVucHJvamVjdC5vcmcvb3NzdGVzdC9sb2dzLzE4Mzk4MS8NCj4+Pg0K
Pj4+IFJlZ3Jlc3Npb25zIDotKA0KPj4+DQo+Pj4gVGVzdHMgd2hpY2ggZGlkIG5vdCBzdWNj
ZWVkIGFuZCBhcmUgYmxvY2tpbmcsDQo+Pj4gaW5jbHVkaW5nIHRlc3RzIHdoaWNoIGNvdWxk
IG5vdCBiZSBydW46DQo+Pj4gICAgYnVpbGQtaTM4Ni1wdm9wcyAgICAgICAgICAgICAgNiBr
ZXJuZWwtYnVpbGQgICAgICAgICAgICAgZmFpbCBSRUdSLiB2cy4gMTgzOTczDQo+Pg0KPj4g
VGhpcyB0ZXN0IGlzIG5vbnNlbnNlLiBXZSBkb24ndCBzdXBwb3J0IHJ1bm5pbmcgb24gYSBQ
ZW50aXVtLVBybywgd2hpY2ggaXMgdGhlDQo+PiBjb25maWd1cmVkIHByb2Nlc3NvciBmb3Ig
dGhlIGtlcm5lbC4NCj4+DQo+PiBXZSBzaG91bGQgZG8gYSAzMi1iaXQgYnVpbGQgdXNpbmcg
YSBtb3JlIHJlY2VudCBwcm9jZXNzb3IgbW9kZWwuDQo+IA0KPiBUaGF0J3MgTGludXggZG9p
bmcsIHRoYXQncyB0aGUgZGVmYXVsdCBtb2RlbC4gb3NzdGVzdCBkb2Vzbid0IGNoYW5nZSBp
dA0KPiBvciBzZWxlY3QgYW55dGhpbmcgaW4gcGFydGljdWxhci4NCg0KSSB0aGluayBYODZf
R0VORVJJQyB3b3VsZCBiZSBhbiBhcHByb3ByaWF0ZSBzZWxlY3Rpb24uDQoNCg0KSnVlcmdl
bg0K
--------------DYhOqT3cTGL8tIj38aYlfDkT
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-----

--------------DYhOqT3cTGL8tIj38aYlfDkT--

--------------YWQ4wqkH8kbaTYIqTw0ZwzLh--

--------------jnQ0AUXlQ10WtjTh87wR1rg5
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/Ey8FAmVt5v0FAwAAAAAACgkQsN6d1ii/Ey9B
jwf/RuKtwfRVrPL4wb113CEsXffZkL7wvrI1b16WoloNAjmG13C9Y/kda9JDlU6hzCm9m9KTLXNh
WLd1K4B1tUrIZEgSox50GNpT7KkScDw8iGc07BW1jjsFVLE5un/t65/uOur+UvQtWHChZeIFGZT7
qOeRQh1dzUsttC3MCkKSrHZcRxmf/PNEwEtoxlWl7W0MuYKhbAzAipV+fZDw8fCVbNGwDiD6jMp+
vbpQQvy5AKXEd56FHc0Sl5tPHRZuK4tuQ2L1TXHU+hVq1yxuSfDSzgNjiStHERwnw8GysjxRvabx
BuxqRZj4m1xe3JHXiN5Blxnrz/R4+sLSieW3yt3C4g==
=/2ke
-----END PGP SIGNATURE-----

--------------jnQ0AUXlQ10WtjTh87wR1rg5--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:50:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:50:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647078.1009773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAGw-0000Kf-33; Mon, 04 Dec 2023 14:50:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647078.1009773; Mon, 04 Dec 2023 14:50:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAGv-0000KY-U2; Mon, 04 Dec 2023 14:50:09 +0000
Received: by outflank-mailman (input) for mailman id 647078;
 Mon, 04 Dec 2023 14:50: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=PgPa=HP=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAAGu-0007Vk-9r
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:50:08 +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 691e95ec-92b4-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:50:06 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-241-5wDKJD6mPs27fxPG3prMrg-1; Mon, 04 Dec 2023 09:49:58 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4B74B811E8F;
 Mon,  4 Dec 2023 14:49:57 +0000 (UTC)
Received: from localhost (unknown [10.39.192.49])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 3903240C6EB9;
 Mon,  4 Dec 2023 14:49:55 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 691e95ec-92b4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701701404;
	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=q15/3BVVyOaihcucEucNKs/jzap+i7xs4+FWf0/CsZk=;
	b=Ost3AWy/dHsq1RQsEKl+UDWP48e3cYiFMOCYJmO/kVxeipKWOo/Lkw5lyJB0XEROYe8m6r
	0Zb7jCnWL2u8CMMTtCzcKd3uIyN/1QpkxzOo6w781FOzVSw0yh19E8f3Ey+ULesqDedV+p
	qvgcGNnoGXlcMx++HIzYKuYizMf6YEg=
X-MC-Unique: 5wDKJD6mPs27fxPG3prMrg-1
Date: Mon, 4 Dec 2023 09:49:54 -0500
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Kevin Wolf <kwolf@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 01/12] virtio-scsi: replace AioContext lock with
 tmf_bh_lock
Message-ID: <20231204144954.GA1492005@fedora>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-2-stefanha@redhat.com>
 <tng432xox5h3zwi7vkc7nbuu2bckkackqtdifqt2dtsn7t2eti@m2jwhopket2s>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="xuVVbWEiWN36eeYa"
Content-Disposition: inline
In-Reply-To: <tng432xox5h3zwi7vkc7nbuu2bckkackqtdifqt2dtsn7t2eti@m2jwhopket2s>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2


--xuVVbWEiWN36eeYa
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 30, 2023 at 09:25:52AM -0600, Eric Blake wrote:
> On Wed, Nov 29, 2023 at 02:55:42PM -0500, Stefan Hajnoczi wrote:
> > Protect the Task Management Function BH state with a lock. The TMF BH
> > runs in the main loop thread. An IOThread might process a TMF at the
> > same time as the TMF BH is running. Therefore tmf_bh_list and tmf_bh
> > must be protected by a lock.
> >=20
> > Run TMF request completion in the IOThread using aio_wait_bh_oneshot().
> > This avoids more locking to protect the virtqueue and SCSI layer state.
>=20
> Are we trying to get this into 8.2?

No. 8.2 still has the AioContext lock is therefore safe without this
patch.

Stefan

>=20
> >=20
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > ---
> >  include/hw/virtio/virtio-scsi.h |  3 +-
> >  hw/scsi/virtio-scsi.c           | 62 ++++++++++++++++++++++-----------
> >  2 files changed, 43 insertions(+), 22 deletions(-)
> >
>=20
> Reviewed-by: Eric Blake <eblake@redhat.com>
>=20
> --=20
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.
> Virtualization:  qemu.org | libguestfs.org
>=20

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

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

iQEzBAEBCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmVt5xIACgkQnKSrs4Gr
c8jrKAgAi9Ez+xTcPA2/0XgPvi0dsAshvngJFgGPGKyor2T6HSiEfY5fZnA+zl/Z
6RqIc79YvldlUyqQVTXHU/H0yF/UW4h9d2gz0nlaCBx/1H0xzbAmLUTMW5bGQ/vT
N5SCBl6RSfDRmU/eZcbrIqHOaphPCeBt4v6mnfrCF5F9XAS/Iarz7MybbHWnZEq3
93KGFY1LBRQIwp/IhNA+lkMxrysBl5fYLCoKaVxj03r5DSP3c/QwSKcy2jyubAG1
SQS2QRmPHmOOK5jyL2mMs6cnUk8spfmqH9BJl/46nXpvYpJ63m/6ujHjfxGbp9EJ
dJdPCfP8N/qcMJGUlSGyGL7UfQp3cQ==
=UZuA
-----END PGP SIGNATURE-----

--xuVVbWEiWN36eeYa--



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:50:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:50:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647080.1009782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAHM-0000oU-8Q; Mon, 04 Dec 2023 14:50:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647080.1009782; Mon, 04 Dec 2023 14:50:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAHM-0000oN-5m; Mon, 04 Dec 2023 14:50:36 +0000
Received: by outflank-mailman (input) for mailman id 647080;
 Mon, 04 Dec 2023 14:50:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rEKU=HP=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rAAHK-0007Vk-KT
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:50:34 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79b05037-92b4-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:50:33 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c09dfd82aso16687645e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 06:50:33 -0800 (PST)
Received: from [192.168.17.187] (54-240-197-227.amazon.com. [54.240.197.227])
 by smtp.gmail.com with ESMTPSA id
 t15-20020a05600c198f00b0040b501ddd34sm18955384wmq.48.2023.12.04.06.50.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 06:50:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79b05037-92b4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701701432; x=1702306232; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:cc:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=QuFxYfCQgGqyDlmipQJ9xAOvctGkAf1KGLHtYl2aWIs=;
        b=FtnUgNWPKW1/F5nqM7rpr4ilbEbzG5R50YIar3XqiGa9asQC/6/8q3VSO9EOJrPCaI
         oyRDypaIl/zrNPJKf6ZMy2aWtNhoq61wN9hwHKOrJ9XLL7jyBWXR0naw7nQBVuy4V8ky
         8Na6T1EgAvrxwOG7vcMAHeAR3RK5EqzQ4Zb3gIQLoov96UqcgA59Wtc+ZIHaq3Prs01T
         I6ZL1weeHAKpSPAZr+ziNT7U5FUE41YzScVuo0io/wNB+FXAvQYhdxJ3eKZPLt2Mpfm3
         J6tPayvy5Pww8FioAawjR5y59KN2M9mK5X/N7YKEOFyFUiIbwEMXNMco898cnNEkknjH
         i3Iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701701432; x=1702306232;
        h=content-transfer-encoding:in-reply-to:organization:references:cc:to
         :content-language: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=QuFxYfCQgGqyDlmipQJ9xAOvctGkAf1KGLHtYl2aWIs=;
        b=EmnyJ+d2V4VZHxhkeHiiUT1DHxmh0NCcogt5vpV6yEEBsdC+3XxD358DzW9v1Ld17R
         N9U9rpu8iQquLePMWdZ4bCaaOSbBIWkOWw1PvanQAiR2EOx9sAt4MRI/2QNdc7//Djdo
         apgSSE5QsRL2JxZeP1pe/8EnTSNKeKV2XlFItSHa+k0atyTq6W2w4sEYyUbybmSq9u6E
         8suLSRDanbsA/o9Va0UX+xKhda5TeLcS3NW7Y4oOph86X7/ydKvLJgp33jucnSfY+u71
         eRuKvbazbz8VJPXw4ihtgr/hTTG+NzBw05PC51BMF25xc83knsjzbmSvvEbAW0dEG+Hr
         sIVQ==
X-Gm-Message-State: AOJu0Yy9o+dNkLXlKkVd5agAlCsPMUQ4/VPp4jH/umMUzWu5sxHtotbk
	Dyqx02i5AMBL3QZYxhf6IMA=
X-Google-Smtp-Source: AGHT+IF21sWOb6KsB5O/DUFH/HjWdwEv6jhyxSjG9c7CR7UGAYutJWZUg8JZwLoPIYHj8tpXXVAIfA==
X-Received: by 2002:a05:600c:acd:b0:40b:38a8:6c65 with SMTP id c13-20020a05600c0acd00b0040b38a86c65mr1942181wmr.26.1701701432222;
        Mon, 04 Dec 2023 06:50:32 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <07817159-7516-44e8-aee0-f3f6330b2b6f@xen.org>
Date: Mon, 4 Dec 2023 14:50:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v4 3/6] xen: decouple generic xen code from legacy
 backends codebase
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Cc: David Woodhouse <dwmw@amazon.co.uk>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Anthony Perard <anthony.perard@citrix.com>,
 "open list:X86 Xen CPUs" <xen-devel@lists.xenproject.org>
References: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
 <20231202014108.2017803-4-volodymyr_babchuk@epam.com>
Organization: Xen Project
In-Reply-To: <20231202014108.2017803-4-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 02/12/2023 01:41, Volodymyr Babchuk wrote:
> In xen-all.c there are unneeded dependencies on xen-legacy-backend.c:
> 
>   - xen_init() uses xen_pv_printf() to report errors, but it does not
>   provide a pointer to the struct XenLegacyDevice, so it is kind of
>   useless, we can use standard error_report() instead.
> 
>   - xen-all.c has function xenstore_record_dm_state() which uses global
>   variable "xenstore" defined and initialized in xen-legacy-backend.c
>   It is used exactly once, so we can just open a new connection to the
>   xenstore, update DM state and close connection back.
> 
> Those two changes allows us to remove xen-legacy-backend.c at all,
> what should be done in the future anyways. But right now this patch
> moves us one step close to have QEMU build without legacy Xen
> backends.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> ---
> 
> In v4:
> 
>   - New in v4, previous was part of "xen: add option to disable legacy
>   backends"
>   - Do not move xenstore global variable from xen-legacy-backend.c,
>     instead use a local variable.
> ---
>   accel/xen/xen-all.c | 16 ++++++++++++----
>   1 file changed, 12 insertions(+), 4 deletions(-)
> 

Reviewed-by: Paul Durrant <paul@xen.org>



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:51:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:51:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647083.1009791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAHu-0001QT-IL; Mon, 04 Dec 2023 14:51:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647083.1009791; Mon, 04 Dec 2023 14:51:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAHu-0001QM-FL; Mon, 04 Dec 2023 14:51:10 +0000
Received: by outflank-mailman (input) for mailman id 647083;
 Mon, 04 Dec 2023 14: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=PgPa=HP=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAAHt-0001Q8-48
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:51:09 +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 8df6a82c-92b4-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 15:51:08 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-595-7kVZWR21Pym7Nfk5yaUfnQ-1; Mon, 04 Dec 2023 09:51:04 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6976685A59D;
 Mon,  4 Dec 2023 14:51:03 +0000 (UTC)
Received: from localhost (unknown [10.39.192.49])
 by smtp.corp.redhat.com (Postfix) with ESMTP id C43E440C6EB9;
 Mon,  4 Dec 2023 14:51: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: 8df6a82c-92b4-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701701466;
	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=xEOIXWa0DaRIIsxxh+p/yqRV4ny33fxYNbdSCdVwz7E=;
	b=JJ0te5dURjetktuKM6aa8Gm4BKdjtXzGlSRyL8wQ/7txs8PI216obBMk/jCrf5Gy2ENO+4
	lNxKZBwXYbnIZVl3om3C6cwH7oXHwWoiSCJxPM1XhMZzt+6OGy7Oy3dHCmzC1JAEzGZHGx
	LW0URNtHrAhuTwSGrgBSm+FSblEt/7E=
X-MC-Unique: 7kVZWR21Pym7Nfk5yaUfnQ-1
Date: Mon, 4 Dec 2023 09:51:01 -0500
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 01/12] virtio-scsi: replace AioContext lock with
 tmf_bh_lock
Message-ID: <20231204145101.GB1492005@fedora>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-2-stefanha@redhat.com>
 <ZW3KFQ3PsdbVFymi@redhat.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="mjl6rdY6Uz2gkcPm"
Content-Disposition: inline
In-Reply-To: <ZW3KFQ3PsdbVFymi@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2


--mjl6rdY6Uz2gkcPm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 04, 2023 at 01:46:13PM +0100, Kevin Wolf wrote:
> Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> > Protect the Task Management Function BH state with a lock. The TMF BH
> > runs in the main loop thread. An IOThread might process a TMF at the
> > same time as the TMF BH is running. Therefore tmf_bh_list and tmf_bh
> > must be protected by a lock.
> >=20
> > Run TMF request completion in the IOThread using aio_wait_bh_oneshot().
> > This avoids more locking to protect the virtqueue and SCSI layer state.
> >=20
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
>=20
> The second part reminds me that the implicit protection of the virtqueue
> and SCSI data structures by having all accesses in a single thread is
> hard to review and I think we wanted to put some assertions there to
> check that we're really running in the right thread. I don't think we
> have done that so far, so I suppose after this patch would be the place
> in the series to add them, before we remove the protection by the
> AioContext lock?

Thanks for reminding me. I will add assertions in the next revision of
this series.

Stefan

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

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

iQEzBAEBCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmVt51UACgkQnKSrs4Gr
c8hFWgf+I5YP/4aOTKFaILLn7G6zRxMS0IOYp/agq08hZZX5uuODZdNJUtpvigRH
223SAFBeEWaIbzUlnbaUtw7/jucFuBfA6WsxCM9wwr/iL0AH9pHzDjnfY3XbJIyp
JsKSmTxS18OXWoK+mhrD6avFK8h9UKa+L5VV74gzbnjSmpQIBwXsSVzBjmton24v
c2tQIyRtBQiwZkgRJSa8GgzB4OPrXIQ9u0WfjXx0tOOJAXcIrTOPu6TYFDM/BbWH
6DP0WCKwetByfeC8aMEnU4F1weafWWk5xEeX5cQRWsECNbgyqIgfBTK8PgOSqC0M
bO4Kx4X2LBokyHJOzdsOT29Qh9pNvQ==
=xK/8
-----END PGP SIGNATURE-----

--mjl6rdY6Uz2gkcPm--



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:51:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:51:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647090.1009801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAIb-0002HZ-Qz; Mon, 04 Dec 2023 14:51:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647090.1009801; Mon, 04 Dec 2023 14:51:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAIb-0002HS-Ns; Mon, 04 Dec 2023 14:51:53 +0000
Received: by outflank-mailman (input) for mailman id 647090;
 Mon, 04 Dec 2023 14:51:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAAIa-0001Q8-Bm
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:51:52 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8a2037d-92b4-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 15:51:51 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40bda47c489so25198965e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 06:51:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 b18-20020a05600c4e1200b0040c08567bbfsm6274349wmq.17.2023.12.04.06.51.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 06:51:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8a2037d-92b4-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701701511; x=1702306311; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=hjOdG3wuffTyVvy9BYMeUZ43lJdjY7OuszqYTsw5Z5c=;
        b=PlcTot3WhIlBOiP2RapcieIOpYBXn3hN5v5seI2WocsTL2Ficd3yYeWmxsrZMoAVEN
         N2dkt/7PPQBYrJ9yIE9S7PjIaN7fG47CIxZ0L0VOSf2Fi2pC7wF32nYGxzLI0B9BcdgY
         Js9nKvysPTM8HvVKAKKjui7ZgdobE7btXNiJ3oaeA3cKZnv70GK8cGBpNxeCZeFjyH3f
         xK3sQ3Ri/hr+cbwgteM6MSgXXKIZMwZOI7wH2oPxjYwmQXEgTM03U6fyK/sGzOfU/wDA
         ICBjsu+P2u79RAqkDy4NwbB6GW9ND1J0MTfi2APw+mKSVL7SGqBahQKyFJ5agqmCljLd
         NWwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701701511; x=1702306311;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=hjOdG3wuffTyVvy9BYMeUZ43lJdjY7OuszqYTsw5Z5c=;
        b=CYHuUh1B9mNonzwhLU57UxSNEWJJg6N1ZDu6WjGBNULP1Gq/wxI3hPyWUZQ0XxewLr
         x84alKL6UvzXEwzIjwj9tX6XEXUh4XWXwZXYB6rVcBepjqK9ZnmRr5TM3LC2GJrZND9n
         PwPI2JwVDGjKGijLWRK75jaO6EvueCiiSRZRkHZBOz66QKw1bBOARE0tCSxGK345RqQ8
         6PIN/cIhfRdX2T5V/XPnNYSX0ZOvlG9Owl8PDJVanAdNQUp/8EAcbLKk8FWv506d4jmb
         OBtlxSZCl3w4bU6Cw7f5/i2PnNOJyFhAxdaO/cj0WMcHbA00oAL+WIpDeJgUSCXgRp7i
         c06g==
X-Gm-Message-State: AOJu0YyMAymK4mocm8pdf+JLp0l9yZewU/0FtR+VEAUZe/FrRpMjSw0H
	cffH+SrMkeMmjHzpOa21yXfBB/FLtKH2jnxL/+MR
X-Google-Smtp-Source: AGHT+IGyZaoRPqsBDcqgVOQHwqQ1NyiG7wswiID66shHF711NODk4yYtctqrtQgnURBi1ppWPgWFvg==
X-Received: by 2002:a05:600c:601a:b0:40b:5e59:c557 with SMTP id az26-20020a05600c601a00b0040b5e59c557mr2510343wmb.129.1701701511284;
        Mon, 04 Dec 2023 06:51:51 -0800 (PST)
Message-ID: <43513284-c28a-407b-9567-2f120b2e322f@suse.com>
Date: Mon, 4 Dec 2023 15:51:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/2] x86/p2m: preparation work for
 xenmem_add_to_physmap_one()
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, xen-devel@lists.xenproject.org
References: <cover.1701344917.git.federico.serafini@bugseng.com>
 <aeafaee0fc4a507f6ba0c10e8fed90ed73a6bd6d.1701344917.git.federico.serafini@bugseng.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: <aeafaee0fc4a507f6ba0c10e8fed90ed73a6bd6d.1701344917.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.11.2023 16:48, Federico Serafini wrote:
> The objective is to use parameter name "gfn" for
> xenmem_add_to_physmap_one().
> Since the name "gfn" is currently used as identifier for a local
> variable, bad things could happen if new uses of such variable are
> committed while a renaming patch is waiting for the approval.
> To avoid such danger, as first thing rename the local variable from
> "gfn" to "gmfn".

"..., in line with XENMAPSPACE_gmfn which is the only case it is used
with."

This is to justify the name not matching our generally aimed at "gfn"
and "mfn" scheme.

> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 14:54:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 14:54:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647102.1009811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAALO-0003Fv-7a; Mon, 04 Dec 2023 14:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647102.1009811; Mon, 04 Dec 2023 14:54:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAALO-0003Fo-4c; Mon, 04 Dec 2023 14:54:46 +0000
Received: by outflank-mailman (input) for mailman id 647102;
 Mon, 04 Dec 2023 14:54: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=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAALN-0003Ff-CO
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 14:54:45 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0edcb241-92b5-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 15:54:43 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c032962c5so26876635e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 06:54:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e15-20020a5d594f000000b003334d9c3b1esm1996576wri.16.2023.12.04.06.54.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 06:54:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0edcb241-92b5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701701683; x=1702306483; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=loUlAoDavnWabJCpbmKa8GaTGlEB+TFUd9KZxEd6dRA=;
        b=ghG26PENm+I1abL+FS8LRlPq8PlxRHPsocBNPFsDJsC4brzqod758sFeOTJll9zR2d
         kupf0sSebMmshmR0kpbToVzIjUSdZGopFU1SsdLq2oAKzeuPf/090kXmXzXmXzrwlwsi
         YVXHEVG/s5oLYJ530yKac7EKlllhCYkOj4sKj0KgV87FIugmzduBi8q6njVTCc5Rw9q6
         7YoXJ4AVKC4aw1KELIPCaaFx8ryATzLu3FPYxc/Vdp5EtRShtcTSwck5FUf4t8PqcPHF
         czKQ0XCo7KxhONxdPSUH1Qr4+I2kgD9rCmFDbD9MxZQbhmBvUa+POL0ONiqMTfHBxjzv
         2XHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701701683; x=1702306483;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=loUlAoDavnWabJCpbmKa8GaTGlEB+TFUd9KZxEd6dRA=;
        b=mohr3dqZkSP5nOlf/i391jn4+n9QWwtTS6RtMlvhsTBR7dhPlERg69JjjES1ZOfLul
         qAkHq9nGp1lFAqDc8UfgAwSdb3iDQqlwtY88adCOGVWDcif1gNCeIQxbKj1U4ULUmXXi
         P07ULUddSNGDtkGBbXEoy7ZUglibnjjGbDw0yHGPyqSNddM+TAhTs/6T2UKT9tqEv4+b
         y40XJjkeEdGROu8WMgaz+1/vN12LsLm3DLkuw70+h9SAwlpeZIrtG5FxEGD0nGLvI9DX
         ENtg0TJ/OC3+Ep9d8tYhC02gVYHwHXa883FhJHLKuI48F4m0F9KbrKu1LcQYXlHxL768
         hTVA==
X-Gm-Message-State: AOJu0YzWEzWzbJ1ALjhkUOZvtJg53HeZKVegqwFDyyySKepdewnif54t
	swaP63zWeFZPu05S3NDZXcvQ
X-Google-Smtp-Source: AGHT+IGbTVlkbZIRdop6SmspnznaM0LUB2ZM+MwoQms1km5Lq3Xi5J/rZKsD8MuE9ptHnjd5yzHI6A==
X-Received: by 2002:a1c:4c16:0:b0:40b:5e59:99d6 with SMTP id z22-20020a1c4c16000000b0040b5e5999d6mr1739519wmf.246.1701701682804;
        Mon, 04 Dec 2023 06:54:42 -0800 (PST)
Message-ID: <a330ae4b-7df6-456c-9711-0034a38fc26d@suse.com>
Date: Mon, 4 Dec 2023 15:54:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/2] x86/p2m: address a violation of MISRA C:2012 Rule
 8.3
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, xen-devel@lists.xenproject.org
References: <cover.1701344917.git.federico.serafini@bugseng.com>
 <0faaa66465367a9e4c4da5749bc123b832e02103.1701344917.git.federico.serafini@bugseng.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: <0faaa66465367a9e4c4da5749bc123b832e02103.1701344917.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.11.2023 16:48, Federico Serafini wrote:
> Make function declaration and definition consistent changing
> parameter name from "gpfn" to "gfn".
> For consistency, rename also "old_gpfn" to "old_gfn".
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

> ---
> This patch depends on patch 1/2 of the same series.

There's no need to state this, btw. Within a series later patches depending
on earlier ones if the default. There instead it can help committers if it
is made clear when patches do not depend on one another (and hence can be
committed in a order different from the submission's).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 15:18:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 15:18:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647109.1009822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAhk-0001En-4z; Mon, 04 Dec 2023 15:17:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647109.1009822; Mon, 04 Dec 2023 15: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 1rAAhk-0001Eg-16; Mon, 04 Dec 2023 15:17:52 +0000
Received: by outflank-mailman (input) for mailman id 647109;
 Mon, 04 Dec 2023 15:17: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=PiNa=HP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rAAhi-0001DD-Pe
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 15:17:50 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 487a5631-92b8-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 16:17:48 +0100 (CET)
Received: from [192.168.1.27] (host-79-46-48-173.retail.telecomitalia.it
 [79.46.48.173])
 by support.bugseng.com (Postfix) with ESMTPSA id E4FB44EE073D;
 Mon,  4 Dec 2023 16:17:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 487a5631-92b8-11ee-9b0f-b553b5be7939
Message-ID: <647030e4-a57b-4873-a03a-3279a27553a8@bugseng.com>
Date: Mon, 4 Dec 2023 16:17:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/2] x86/p2m: address a violation of MISRA C:2012 Rule
 8.3
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, xen-devel@lists.xenproject.org
References: <cover.1701344917.git.federico.serafini@bugseng.com>
 <0faaa66465367a9e4c4da5749bc123b832e02103.1701344917.git.federico.serafini@bugseng.com>
 <a330ae4b-7df6-456c-9711-0034a38fc26d@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <a330ae4b-7df6-456c-9711-0034a38fc26d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 04/12/23 15:54, Jan Beulich wrote:
> On 30.11.2023 16:48, Federico Serafini wrote:
>> Make function declaration and definition consistent changing
>> parameter name from "gpfn" to "gfn".
>> For consistency, rename also "old_gpfn" to "old_gfn".
>> No functional change.
>>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
>> ---
>> This patch depends on patch 1/2 of the same series.
> 
> There's no need to state this, btw. Within a series later patches depending
> on earlier ones if the default. There instead it can help committers if it
> is made clear when patches do not depend on one another (and hence can be
> committed in a order different from the submission's).

Thanks for the information.

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 15:18:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 15:18:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647110.1009831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAi6-0001n2-B9; Mon, 04 Dec 2023 15:18:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647110.1009831; Mon, 04 Dec 2023 15:18:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAi6-0001mv-8F; Mon, 04 Dec 2023 15:18:14 +0000
Received: by outflank-mailman (input) for mailman id 647110;
 Mon, 04 Dec 2023 15:18: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=PgPa=HP=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAAi5-0001jk-1p
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 15:18:13 +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 552210c3-92b8-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 16:18:10 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-373-Q7vPoqGuPbqZZ9WrmOSLTg-1; Mon, 04 Dec 2023 10:18:04 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id AD91B81B56A;
 Mon,  4 Dec 2023 15:18:03 +0000 (UTC)
Received: from localhost (unknown [10.39.192.49])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 89EDE40C6EBB;
 Mon,  4 Dec 2023 15:18: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: 552210c3-92b8-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701703089;
	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=kBZ1SZVWRnkDiTr92kHl7AK+tPgCY2ZrLpcj1yanM/w=;
	b=bsl+/Horf9FBZiWUIjzZptUawgJe9roBE6cA99oL9d7md34MVkcIZmSa8Tk7z8hEThgi84
	aGi2+gEQC8GK2gFEjFavZrMtNqhuKt/q34I2euLNVg/Xp4UvS4qg1UvYL6MfaM/1FKAIvk
	tEVIC9d+Qisv6dsaPS6dIYWZh6Ssr7M=
X-MC-Unique: Q7vPoqGuPbqZZ9WrmOSLTg-1
Date: Mon, 4 Dec 2023 10:17:55 -0500
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 05/12] block: remove AioContext locking
Message-ID: <20231204151755.GC1492005@fedora>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-6-stefanha@redhat.com>
 <ZW3jVZZ_Kuf99g8O@redhat.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="+4Jsw1CxaxIgWzJ/"
Content-Disposition: inline
In-Reply-To: <ZW3jVZZ_Kuf99g8O@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2


--+4Jsw1CxaxIgWzJ/
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 04, 2023 at 03:33:57PM +0100, Kevin Wolf wrote:
> Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> > This is the big patch that removes
> > aio_context_acquire()/aio_context_release() from the block layer and
> > affected block layer users.
> >=20
> > There isn't a clean way to split this patch and the reviewers are likely
> > the same group of people, so I decided to do it in one patch.
> >=20
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
>=20
> > @@ -7585,29 +7433,12 @@ void coroutine_fn bdrv_co_leave(BlockDriverStat=
e *bs, AioContext *old_ctx)
> > =20
> >  void coroutine_fn bdrv_co_lock(BlockDriverState *bs)
> >  {
> > -    AioContext *ctx =3D bdrv_get_aio_context(bs);
> > -
> > -    /* In the main thread, bs->aio_context won't change concurrently */
> > -    assert(qemu_get_current_aio_context() =3D=3D qemu_get_aio_context(=
));
> > -
> > -    /*
> > -     * We're in coroutine context, so we already hold the lock of the =
main
> > -     * loop AioContext. Don't lock it twice to avoid deadlocks.
> > -     */
> > -    assert(qemu_in_coroutine());
> > -    if (ctx !=3D qemu_get_aio_context()) {
> > -        aio_context_acquire(ctx);
> > -    }
> > +    /* TODO removed in next patch */
> >  }
>=20
> It's still there at the end of the series.

Will fix in v2. Thanks!

--+4Jsw1CxaxIgWzJ/
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmVt7aMACgkQnKSrs4Gr
c8jOnAgAroCsRM62VuXidh1DiXsdM/0hkCfNnvZSyW8BYwcZlOo16u9i6w1n4+fW
HrkQPylQsCI5gHfj72kqrfphVoxWDdjCeaTN+ILBnSbbvKzvym2bNtsYfuuZpMGO
v9wItcMUPP0UkEwiPgSTj28FlfAj9SqzjDEiaIqgJjzL6jVEqQ/xuI9tvESarulP
SKVf02Lwrz2y4dH25crdvwyP1w2x0ZK9TtaE59g5hElfOC/bhBiFiPtVEeAFOwDw
5HXPwJA9U0NOzjVxvYg1Bg2rxhlTxRu3A22b7T+zYwKHIG+FYan3ejiDvOz1YwF3
baMaVDb0ovZiApd+ipPwctALD+HI9g==
=TuU3
-----END PGP SIGNATURE-----

--+4Jsw1CxaxIgWzJ/--



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 15:23:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 15:23:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647119.1009852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAnE-0005nY-4a; Mon, 04 Dec 2023 15:23:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647119.1009852; Mon, 04 Dec 2023 15:23:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAnE-0005nP-1z; Mon, 04 Dec 2023 15:23:32 +0000
Received: by outflank-mailman (input) for mailman id 647119;
 Mon, 04 Dec 2023 15:23:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAAnD-0005Xf-6L
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 15:23:31 +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 13bc8396-92b9-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 16:23:29 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 2CA21220CE;
 Mon,  4 Dec 2023 15:23:29 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 03EEE13588;
 Mon,  4 Dec 2023 15:23:28 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id 0LZJO/DubWUqJgAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 15:23: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: 13bc8396-92b9-11ee-9b0f-b553b5be7939
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	George Dunlap <george.dunlap@citrix.com>,
	=?UTF-8?q?Ren=C3=A9=20Winther=20H=C3=B8jgaard?= <renewin@proton.me>
Subject: [PATCH v2 1/3] xen/sched: fix adding offline cpu to cpupool
Date: Mon,  4 Dec 2023 16:23:19 +0100
Message-Id: <20231204152321.16520-2-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231204152321.16520-1-jgross@suse.com>
References: <20231204152321.16520-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Rspamd-Server: rspamd1
Authentication-Results: smtp-out1.suse.de;
	none
X-Rspamd-Queue-Id: 2CA21220CE
X-Spam-Score: -4.00
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.00 / 50.00];
	 REPLY(-4.00)[]

Trying to add an offline cpu to a cpupool can crash the hypervisor,
as the probably non-existing percpu area of the cpu is accessed before
the availability of the cpu is being tested. This can happen in case
the cpupool's granularity is "core" or "socket".

Fix that by testing the cpu to be online.

Fixes: cb563d7665f2 ("xen/sched: support core scheduling for moving cpus to/from cpupools")
Reported-by: RenÃ© Winther HÃ¸jgaard <renewin@proton.me>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- enhance commit message
---
 xen/common/sched/cpupool.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index 2e094b0cfa..ad8f608462 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -892,6 +892,8 @@ int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op)
         if ( cpu >= nr_cpu_ids )
             goto addcpu_out;
         ret = -ENODEV;
+        if ( !cpu_online(cpu) )
+            goto addcpu_out;
         cpus = sched_get_opt_cpumask(c->gran, cpu);
         if ( !cpumask_subset(cpus, &cpupool_free_cpus) ||
              cpumask_intersects(cpus, &cpupool_locked_cpus) )
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 15:23:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 15:23:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647118.1009841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAn8-0005Xs-U7; Mon, 04 Dec 2023 15:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647118.1009841; Mon, 04 Dec 2023 15:23:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAn8-0005Xl-RV; Mon, 04 Dec 2023 15:23:26 +0000
Received: by outflank-mailman (input) for mailman id 647118;
 Mon, 04 Dec 2023 15:23:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAAn8-0005Xf-ER
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 15:23:26 +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 109f680f-92b9-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 16:23:24 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 A51A8220D9;
 Mon,  4 Dec 2023 15:23:23 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 7252513588;
 Mon,  4 Dec 2023 15:23:23 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id h2xNGuvubWUgJgAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 15:23:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 109f680f-92b9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701703403; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=Lq1X+5oqV08B6nb7+2V7icPYOvOMJTkcMH+E08fMf0M=;
	b=ac9FqAIhC9mtWDQM+9haV58mVH6FZqxEBm0PINDBR7GMlhPUTnEkDQR3DCa6n99wubGiwr
	zfquuioZ4IAXa6cwZ0vY63Y5Zyeb50bQ/I7Kn66y0phwwBNeB2sxKnchnG9KIxg3oJomWs
	Byb6UBxGUSp6E6v+dXKl4GzPFJ2+UJM=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	George Dunlap <george.dunlap@citrix.com>
Subject: [PATCH v2 0/3] xen/sched: fixes and cleanup related to cpupools
Date: Mon,  4 Dec 2023 16:23:18 +0100
Message-Id: <20231204152321.16520-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spamd-Result: default: False [-0.30 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 NEURAL_HAM_SHORT(-0.20)[-0.991];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-0.997];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MID_CONTAINS_FROM(1.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -0.30

Fix 2 bugs related to cpupool handling and do some related cleanups.

V2:
- send out the fixes tagged properly as "PATCH"
- add cleanup patch
 
Juergen Gross (3):
  xen/sched: fix adding offline cpu to cpupool
  xen/sched: fix sched_move_domain()
  xen/sched: do some minor cleanup of sched_move_domain()

 xen/common/sched/core.c    | 74 ++++++++++++++++++++------------------
 xen/common/sched/cpupool.c |  2 ++
 2 files changed, 41 insertions(+), 35 deletions(-)

-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 15:23:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 15:23:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647120.1009862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAnK-00066U-CC; Mon, 04 Dec 2023 15:23:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647120.1009862; Mon, 04 Dec 2023 15: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 1rAAnK-00066L-9S; Mon, 04 Dec 2023 15:23:38 +0000
Received: by outflank-mailman (input) for mailman id 647120;
 Mon, 04 Dec 2023 15: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=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAAnJ-00064x-5w
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 15:23:37 +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 175903ae-92b9-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 16:23:35 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 B29E51FE58;
 Mon,  4 Dec 2023 15:23:34 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 8151513588;
 Mon,  4 Dec 2023 15:23:34 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id m6VRHvbubWU4JgAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 15:23: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: 175903ae-92b9-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701703414; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=06xhZUNn8wMG33vXmrBvLhXQYrmhEPNGSLjT0D5WEEg=;
	b=PWqbjIbCKJRmP9IpOQuHXskej2+0oGva+bYoAGrvQJ+rp2189LjzkCSVJ+EZFpKT6zIBF5
	8bp/TeQ8C4bTZe2wSSloWLJ5kTg+LLYwDNfmEf0CkaVcmKZ8z/KFXscbNBZ4NRkhVIVohV
	zUDGXhksYfpzJ46Nn4KeW9sKOLnXP8M=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	=?UTF-8?q?Ren=C3=A9=20Winther=20H=C3=B8jgaard?= <renewin@proton.me>,
	Jan Beulich <jbeulich@suse.com>,
	George Dunlap <george.dunlap@cloud.com>
Subject: [PATCH v2 2/3] xen/sched: fix sched_move_domain()
Date: Mon,  4 Dec 2023 16:23:20 +0100
Message-Id: <20231204152321.16520-3-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231204152321.16520-1-jgross@suse.com>
References: <20231204152321.16520-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -4.10
X-Spamd-Result: default: False [-4.10 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 REPLY(-4.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 RCPT_COUNT_SEVEN(0.00)[7];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[];
	 BAYES_HAM(-0.00)[12.34%]
X-Spam-Flag: NO

Do cleanup in sched_move_domain() in a dedicated service function,
which is called either in error case with newly allocated data, or in
success case with the old data to be freed.

This will at once fix some subtle bugs which sneaked in due to
forgetting to overwrite some pointers in the error case.

Fixes: 70fadc41635b ("xen/cpupool: support moving domain between cpupools with different granularity")
Reported-by: RenÃ© Winther HÃ¸jgaard <renewin@proton.me>
Initial-fix-by: Jan Beulich <jbeulich@suse.com>
Initial-fix-by: George Dunlap <george.dunlap@cloud.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- make ops parameter of new function const (Jan Beulich)
---
 xen/common/sched/core.c | 47 +++++++++++++++++++++++------------------
 1 file changed, 27 insertions(+), 20 deletions(-)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index eba0cea4bb..901782bbb4 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -647,6 +647,24 @@ static void sched_move_irqs(const struct sched_unit *unit)
         vcpu_move_irqs(v);
 }
 
+static void sched_move_domain_cleanup(const struct scheduler *ops,
+                                      struct sched_unit *units,
+                                      void *domdata)
+{
+    struct sched_unit *unit, *old_unit;
+
+    for ( unit = units; unit; )
+    {
+        if ( unit->priv )
+            sched_free_udata(ops, unit->priv);
+        old_unit = unit;
+        unit = unit->next_in_list;
+        xfree(old_unit);
+    }
+
+    sched_free_domdata(ops, domdata);
+}
+
 /*
  * Move a domain from one cpupool to another.
  *
@@ -686,7 +704,6 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
     void *old_domdata;
     unsigned int gran = cpupool_get_granularity(c);
     unsigned int n_units = d->vcpu[0] ? DIV_ROUND_UP(d->max_vcpus, gran) : 0;
-    int ret = 0;
 
     for_each_vcpu ( d, v )
     {
@@ -699,8 +716,9 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
     domdata = sched_alloc_domdata(c->sched, d);
     if ( IS_ERR(domdata) )
     {
-        ret = PTR_ERR(domdata);
-        goto out;
+        rcu_read_unlock(&sched_res_rculock);
+
+        return PTR_ERR(domdata);
     }
 
     for ( unit_idx = 0; unit_idx < n_units; unit_idx++ )
@@ -718,10 +736,10 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
 
         if ( !unit || !unit->priv )
         {
-            old_units = new_units;
-            old_domdata = domdata;
-            ret = -ENOMEM;
-            goto out_free;
+            sched_move_domain_cleanup(c->sched, new_units, domdata);
+            rcu_read_unlock(&sched_res_rculock);
+
+            return -ENOMEM;
         }
 
         unit_ptr = &unit->next_in_list;
@@ -808,22 +826,11 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
 
     domain_unpause(d);
 
- out_free:
-    for ( unit = old_units; unit; )
-    {
-        if ( unit->priv )
-            sched_free_udata(c->sched, unit->priv);
-        old_unit = unit;
-        unit = unit->next_in_list;
-        xfree(old_unit);
-    }
-
-    sched_free_domdata(old_ops, old_domdata);
+    sched_move_domain_cleanup(old_ops, old_units, old_domdata);
 
- out:
     rcu_read_unlock(&sched_res_rculock);
 
-    return ret;
+    return 0;
 }
 
 void sched_destroy_vcpu(struct vcpu *v)
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 15:23:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 15:23:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647121.1009872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAnO-0006Pb-K5; Mon, 04 Dec 2023 15:23:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647121.1009872; Mon, 04 Dec 2023 15: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 1rAAnO-0006PR-GF; Mon, 04 Dec 2023 15:23:42 +0000
Received: by outflank-mailman (input) for mailman id 647121;
 Mon, 04 Dec 2023 15:23: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=THDE=HP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAAnN-00064x-Dh
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 15:23: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 1a5f6f12-92b9-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 16:23:40 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 3A968220DA;
 Mon,  4 Dec 2023 15:23:40 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 1635813588;
 Mon,  4 Dec 2023 15:23:40 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id bag1BPzubWVHJgAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 04 Dec 2023 15:23: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: 1a5f6f12-92b9-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701703420; 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=t+n+ooepeFxvmrkgaRJSTpiRMUBlO5vWL9QgpNTdaX0=;
	b=EdapVsXnX0I0jlf0s0el02O39j1XMRgi8tlpeUmnQa0INrGteU0d7xBvXYd5oiNLaeS/qO
	R895BemGN/X09+u2lKfFjeecvA1HsFcJv3gEUAgbSXQRo23c/UzjiPhQ0+chMTJIp45dAq
	pDczQTDAqZ1TukZy3itSsYuDcGe1wLI=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Dario Faggioli <dfaggioli@suse.com>
Subject: [PATCH v2 3/3] xen/sched: do some minor cleanup of sched_move_domain()
Date: Mon,  4 Dec 2023 16:23:21 +0100
Message-Id: <20231204152321.16520-4-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231204152321.16520-1-jgross@suse.com>
References: <20231204152321.16520-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spamd-Result: default: False [-0.30 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 REPLY(-4.00)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 TO_DN_SOME(0.00)[];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -0.30

Do some minor cleanups:

- Move setting of old_domdata and old_units next to each other
- Drop incrementing unit_idx in the final loop of sched_move_domain()
  as it isn't used afterwards
- Rename new_p to new_cpu and unit_p to unit_cpu

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 xen/common/sched/core.c | 27 ++++++++++++---------------
 1 file changed, 12 insertions(+), 15 deletions(-)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 901782bbb4..f6ac1e5af8 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -698,7 +698,7 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
     struct sched_unit *unit, *old_unit;
     struct sched_unit *new_units = NULL, *old_units;
     struct sched_unit **unit_ptr = &new_units;
-    unsigned int new_p, unit_idx;
+    unsigned int new_cpu, unit_idx;
     void *domdata;
     struct scheduler *old_ops = dom_scheduler(d);
     void *old_domdata;
@@ -748,13 +748,14 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
     domain_pause(d);
 
     old_domdata = d->sched_priv;
+    old_units = d->sched_unit_list;
 
     /*
      * Remove all units from the old scheduler, and temporarily move them to
      * the same processor to make locking easier when moving the new units to
      * new processors.
      */
-    new_p = cpumask_first(d->cpupool->cpu_valid);
+    new_cpu = cpumask_first(d->cpupool->cpu_valid);
     for_each_sched_unit ( d, unit )
     {
         spinlock_t *lock;
@@ -762,12 +763,10 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
         sched_remove_unit(old_ops, unit);
 
         lock = unit_schedule_lock_irq(unit);
-        sched_set_res(unit, get_sched_res(new_p));
+        sched_set_res(unit, get_sched_res(new_cpu));
         spin_unlock_irq(lock);
     }
 
-    old_units = d->sched_unit_list;
-
     d->cpupool = c;
     d->sched_priv = domdata;
 
@@ -781,32 +780,32 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
         unit->state_entry_time = old_unit->state_entry_time;
         unit->runstate_cnt[v->runstate.state]++;
         /* Temporarily use old resource assignment */
-        unit->res = get_sched_res(new_p);
+        unit->res = get_sched_res(new_cpu);
 
         v->sched_unit = unit;
     }
 
     d->sched_unit_list = new_units;
 
-    new_p = cpumask_first(c->cpu_valid);
+    new_cpu = cpumask_first(c->cpu_valid);
     for_each_sched_unit ( d, unit )
     {
         spinlock_t *lock;
-        unsigned int unit_p = new_p;
+        unsigned int unit_cpu = new_cpu;
 
         for_each_sched_unit_vcpu ( unit, v )
         {
-            migrate_timer(&v->periodic_timer, new_p);
-            migrate_timer(&v->singleshot_timer, new_p);
-            migrate_timer(&v->poll_timer, new_p);
-            new_p = cpumask_cycle(new_p, c->cpu_valid);
+            migrate_timer(&v->periodic_timer, new_cpu);
+            migrate_timer(&v->singleshot_timer, new_cpu);
+            migrate_timer(&v->poll_timer, new_cpu);
+            new_cpu = cpumask_cycle(new_cpu, c->cpu_valid);
         }
 
         lock = unit_schedule_lock_irq(unit);
 
         sched_set_affinity(unit, &cpumask_all, &cpumask_all);
 
-        sched_set_res(unit, get_sched_res(unit_p));
+        sched_set_res(unit, get_sched_res(unit_cpu));
         /*
          * With v->processor modified we must not
          * - make any further changes assuming we hold the scheduler lock,
@@ -818,8 +817,6 @@ int sched_move_domain(struct domain *d, struct cpupool *c)
             sched_move_irqs(unit);
 
         sched_insert_unit(c->sched, unit);
-
-        unit_idx++;
     }
 
     domain_update_node_affinity(d);
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 15:28:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 15:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647134.1009892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAsQ-0001nu-JM; Mon, 04 Dec 2023 15:28:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647134.1009892; Mon, 04 Dec 2023 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 1rAAsQ-0001nj-GL; Mon, 04 Dec 2023 15:28:54 +0000
Received: by outflank-mailman (input) for mailman id 647134;
 Mon, 04 Dec 2023 15: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=PgPa=HP=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAAsP-0001XU-Ql
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 15:28:53 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3bab602-92b9-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 16:28:52 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-428-0j3kj1VvMKy-e8MFdpknvw-1; Mon,
 04 Dec 2023 10:28:47 -0500
Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com
 [10.11.54.5])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id E55F929AA3AC;
 Mon,  4 Dec 2023 15:28:44 +0000 (UTC)
Received: from localhost (unknown [10.39.192.49])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 4EDB210F44;
 Mon,  4 Dec 2023 15:28: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: d3bab602-92b9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701703731;
	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=IjZQ/pcxJi6moEy2NVEzJM5HAt5V3Rf3SCpNVckP6Fg=;
	b=VC2qaEOXgNXMTfo47CgcQa5mkxiVuZGtnXCC5lcyqxB51NbgMhi1vtpoBEy6f7S+Ssu12Q
	visEr/8ZVmGfBSHXpfYHEtr6r6rPasJ/thHm3/IfeEI3jkfRb8w965r5MedePZYGv4CqAH
	UnTg2L28Sp0kIREUYnWSZdXi/Ght7P0=
X-MC-Unique: 0j3kj1VvMKy-e8MFdpknvw-1
Date: Mon, 4 Dec 2023 10:28:42 -0500
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Eric Blake <eblake@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 06/12] scsi: remove AioContext locking
Message-ID: <20231204152842.GE1492005@fedora>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-7-stefanha@redhat.com>
 <ZW3ErXZ2ZOo_kX2x@redhat.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="HT+PqrFVEZkfTlWB"
Content-Disposition: inline
In-Reply-To: <ZW3ErXZ2ZOo_kX2x@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5


--HT+PqrFVEZkfTlWB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 04, 2023 at 01:23:09PM +0100, Kevin Wolf wrote:
> Am 29.11.2023 um 20:55 hat Stefan Hajnoczi geschrieben:
> > The AioContext lock no longer has any effect. Remove it.
> >=20
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > ---
> >  include/hw/virtio/virtio-scsi.h | 14 --------------
> >  hw/scsi/scsi-bus.c              |  2 --
> >  hw/scsi/scsi-disk.c             | 28 ++++------------------------
> >  hw/scsi/virtio-scsi.c           | 18 ------------------
> >  4 files changed, 4 insertions(+), 58 deletions(-)
>=20
> > @@ -2531,13 +2527,11 @@ static void scsi_unrealize(SCSIDevice *dev)
> >  static void scsi_hd_realize(SCSIDevice *dev, Error **errp)
> >  {
> >      SCSIDiskState *s =3D DO_UPCAST(SCSIDiskState, qdev, dev);
> > -    AioContext *ctx =3D NULL;
> > +
> >      /* can happen for devices without drive. The error message for mis=
sing
> >       * backend will be issued in scsi_realize
> >       */
> >      if (s->qdev.conf.blk) {
> > -        ctx =3D blk_get_aio_context(s->qdev.conf.blk);
> > -        aio_context_acquire(ctx);
> >          if (!blkconf_blocksizes(&s->qdev.conf, errp)) {
> >              goto out;
> >          }
> > @@ -2549,15 +2543,11 @@ static void scsi_hd_realize(SCSIDevice *dev, Er=
ror **errp)
> >      }
> >      scsi_realize(&s->qdev, errp);
> >  out:
> > -    if (ctx) {
> > -        aio_context_release(ctx);
> > -    }
> >  }
>=20
> This doesn't build for me:
>=20
> ../hw/scsi/scsi-disk.c:2545:1: error: label at end of compound statement =
is a C2x extension [-Werror,-Wc2x-extensions]
> }
> ^
> 1 error generated.

Will fix in v2. Thanks!

Stefan

--HT+PqrFVEZkfTlWB
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmVt8CoACgkQnKSrs4Gr
c8jc8wf/ZyGml3wk5T11oOQ1CpoCFpwfa/2Opfc5agssTpQ0CYaFXlM5ArdLiF4K
mMIdqI8vMbqF+Zvg7A67ETjSCE7idXIKcKdpFmG2ee1e8GDx1Piy0I1S48p4aMN4
TXmCfUeYeRf7F2gLPd5kuHQ/dp0tCN4qcghpkH627y3q4J3SykkLdza7elISopVA
z+B/Cvm9kyktQCV3yv5ezFE0bjeQH4c50T08WhpGsHUh2+k96DFMf1+30v0jmTSX
xRXpAFQeGdseABg0If6kZtso29BXOQMoZx4dIWUowTydjeTGDr6rOKtr6zseQFlm
6sC6sMotxD64mB1uyHE2/8Zo/Tlh7A==
=ToER
-----END PGP SIGNATURE-----

--HT+PqrFVEZkfTlWB--



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 15:28:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 15:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647133.1009882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAAsO-0001Yy-Bm; Mon, 04 Dec 2023 15:28:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647133.1009882; Mon, 04 Dec 2023 15: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 1rAAsO-0001Yr-91; Mon, 04 Dec 2023 15:28:52 +0000
Received: by outflank-mailman (input) for mailman id 647133;
 Mon, 04 Dec 2023 15:28:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PgPa=HP=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAAsM-0001XU-Ac
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 15:28:50 +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 c448153c-92b9-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 16:28:26 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-352-_Yfp09vsNCuBjPIILTtLvw-1; Mon,
 04 Dec 2023 10:28:23 -0500
Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com
 [10.11.54.9])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 84BD21C0652D;
 Mon,  4 Dec 2023 15:28:21 +0000 (UTC)
Received: from localhost (unknown [10.39.192.49])
 by smtp.corp.redhat.com (Postfix) with ESMTP id C79C3492BE0;
 Mon,  4 Dec 2023 15:28:19 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c448153c-92b9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701703705;
	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=Mw1n2iwWlxYJr/7HBbY1pvYJV1N7+O+g4l43V+wCbdA=;
	b=P3E2VSMkpXhM/I0q3w8L0RLl149dOua8TmUCDxSqoNCy94QatNWqAa7yzGqLLi+ApDSZ9m
	4/S22d/UassbhVNX98N3fasByOC7HA2S1t7PzdLH5zEcgfYs9jPomd/kuO/7+PCxpHCPqB
	OsPm2xBKeZUsKHIUM7fCtBZdcT/LJfM=
X-MC-Unique: _Yfp09vsNCuBjPIILTtLvw-1
Date: Mon, 4 Dec 2023 10:28:17 -0500
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
	Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>,
	Alberto Garcia <berto@igalia.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	John Snow <jsnow@redhat.com>, Kevin Wolf <kwolf@redhat.com>,
	Wen Congyang <wencongyang2@huawei.com>, qemu-block@nongnu.org,
	xen-devel@lists.xenproject.org, Coiby Xu <Coiby.Xu@gmail.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Ari Sundholm <ari@tuxera.com>, Li Zhijian <lizhijian@fujitsu.com>,
	Cleber Rosa <crosa@redhat.com>, Juan Quintela <quintela@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Zhang Chen <chen.zhang@intel.com>, Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Leonardo Bras <leobras@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Fam Zheng <fam@euphon.net>, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 05/12] block: remove AioContext locking
Message-ID: <20231204152817.GD1492005@fedora>
References: <20231129195553.942921-1-stefanha@redhat.com>
 <20231129195553.942921-6-stefanha@redhat.com>
 <haqk3uaxn25it4myxsockwyqxarroyqpzpticpxfdzld4qwewh@edcz4bipmqlw>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="HAuHzOT83qxPp7gF"
Content-Disposition: inline
In-Reply-To: <haqk3uaxn25it4myxsockwyqxarroyqpzpticpxfdzld4qwewh@edcz4bipmqlw>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.9


--HAuHzOT83qxPp7gF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 30, 2023 at 03:31:37PM -0600, Eric Blake wrote:
> On Wed, Nov 29, 2023 at 02:55:46PM -0500, Stefan Hajnoczi wrote:
> > This is the big patch that removes
> > aio_context_acquire()/aio_context_release() from the block layer and
> > affected block layer users.
> >=20
> > There isn't a clean way to split this patch and the reviewers are likely
> > the same group of people, so I decided to do it in one patch.
> >=20
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > ---
>=20
> > +++ b/block.c
> > @@ -7585,29 +7433,12 @@ void coroutine_fn bdrv_co_leave(BlockDriverStat=
e *bs, AioContext *old_ctx)
> > =20
> >  void coroutine_fn bdrv_co_lock(BlockDriverState *bs)
> >  {
> > -    AioContext *ctx =3D bdrv_get_aio_context(bs);
> > -
> > -    /* In the main thread, bs->aio_context won't change concurrently */
> > -    assert(qemu_get_current_aio_context() =3D=3D qemu_get_aio_context(=
));
> > -
> > -    /*
> > -     * We're in coroutine context, so we already hold the lock of the =
main
> > -     * loop AioContext. Don't lock it twice to avoid deadlocks.
> > -     */
> > -    assert(qemu_in_coroutine());
>=20
> Is this assertion worth keeping in the short term?...

Probably not because coroutine vs non-coroutine functions don't change
in this patch series, so it's unlikely that this will break.

>=20
> > -    if (ctx !=3D qemu_get_aio_context()) {
> > -        aio_context_acquire(ctx);
> > -    }
> > +    /* TODO removed in next patch */
> >  }
>=20
> ...I guess I'll see in the next patch.
>=20
> > =20
> >  void coroutine_fn bdrv_co_unlock(BlockDriverState *bs)
> >  {
> > -    AioContext *ctx =3D bdrv_get_aio_context(bs);
> > -
> > -    assert(qemu_in_coroutine());
> > -    if (ctx !=3D qemu_get_aio_context()) {
> > -        aio_context_release(ctx);
> > -    }
> > +    /* TODO removed in next patch */
> >  }
>=20
> Same comment.
>=20
> > +++ b/blockdev.c
> > @@ -1395,7 +1352,6 @@ static void external_snapshot_action(TransactionA=
ction *action,
> >      /* File name of the new image (for 'blockdev-snapshot-sync') */
> >      const char *new_image_file;
> >      ExternalSnapshotState *state =3D g_new0(ExternalSnapshotState, 1);
> > -    AioContext *aio_context;
> >      uint64_t perm, shared;
> > =20
> >      /* TODO We'll eventually have to take a writer lock in this functi=
on */
>=20
> I'm guessing removal of the locking gets us one step closer to
> implementing this TODO at a later time?  Or is it now a stale comment?
> Either way, it doesn't affect this patch.

I'm not sure. Kevin can answer questions about the graph lock.

> > +++ b/tests/unit/test-blockjob.c
>=20
> > -static void test_complete_in_standby(void)
> > -{
>=20
> > @@ -531,13 +402,5 @@ int main(int argc, char **argv)
> >      g_test_add_func("/blockjob/cancel/standby", test_cancel_standby);
> >      g_test_add_func("/blockjob/cancel/pending", test_cancel_pending);
> >      g_test_add_func("/blockjob/cancel/concluded", test_cancel_conclude=
d);
> > -
> > -    /*
> > -     * This test is flaky and sometimes fails in CI and otherwise:
> > -     * don't run unless user opts in via environment variable.
> > -     */
> > -    if (getenv("QEMU_TEST_FLAKY_TESTS")) {
> > -        g_test_add_func("/blockjob/complete_in_standby", test_complete=
_in_standby);
> > -    }
>=20
> Looks like you ripped out this entire test, because it is no longer
> viable.  I might have mentioned it in the commit message, or squashed
> the removal of this test into the earlier 02/12 patch.

I have sent a separate patch to remove this test and once it's merged
this hunk will disappear this patch series:
https://lore.kernel.org/qemu-devel/20231127170210.422728-1-stefanha@redhat.=
com/

Stefan

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

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

iQEzBAEBCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmVt8BEACgkQnKSrs4Gr
c8hIDgf5AYIr9dtEi7g5tsNLswyVkC2lDiMCBpf3ojJvX75zC6z2Y8fKDhunSi4B
7HpCHDeCFhoBFNQj7eXRbQgkdgqX7gLeBbXbwh+MT8q24VjfKHprjXuQJz4HFFNx
tls/oGcNkdSoPqfkO9Paso1BNF9gl9xQIAubT7foM3O0eJ9gQk+vEiBIw5/8QykZ
QKIHF6LkP6S7r7QOwhP9X4TBtudTZ9O2GIGXFdcpT9H4rYiTKSnT06NWziHZqqX6
3hViBZQI4yJySS9/wNhqX813PUjgfZAdZUGeye3eUHbdwlxNtYr6zF+4FshxfaI9
n4t6uI9nuJAyXYDz4wCBh3QI2yauuw==
=/mcM
-----END PGP SIGNATURE-----

--HAuHzOT83qxPp7gF--



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 15:42:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 15:42:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647141.1009902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAB5H-000605-N8; Mon, 04 Dec 2023 15:42:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647141.1009902; Mon, 04 Dec 2023 15: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 1rAB5H-0005zy-K3; Mon, 04 Dec 2023 15:42:11 +0000
Received: by outflank-mailman (input) for mailman id 647141;
 Mon, 04 Dec 2023 15:42: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=PiNa=HP=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rAB5G-0005zs-Q1
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 15:42:10 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae8596b1-92bb-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 16:42:08 +0100 (CET)
Received: from [192.168.1.27] (host-79-46-48-173.retail.telecomitalia.it
 [79.46.48.173])
 by support.bugseng.com (Postfix) with ESMTPSA id 385484EE073D;
 Mon,  4 Dec 2023 16:42:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae8596b1-92bb-11ee-9b0f-b553b5be7939
Message-ID: <e349b85b-53b4-4850-a1af-5d99ff7eba82@bugseng.com>
Date: Mon, 4 Dec 2023 16:42:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/2] x86/p2m: preparation work for
 xenmem_add_to_physmap_one()
Content-Language: en-US, it
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, xen-devel@lists.xenproject.org
References: <cover.1701344917.git.federico.serafini@bugseng.com>
 <aeafaee0fc4a507f6ba0c10e8fed90ed73a6bd6d.1701344917.git.federico.serafini@bugseng.com>
 <43513284-c28a-407b-9567-2f120b2e322f@suse.com>
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <43513284-c28a-407b-9567-2f120b2e322f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 04/12/23 15:51, Jan Beulich wrote:
> On 30.11.2023 16:48, Federico Serafini wrote:
>> The objective is to use parameter name "gfn" for
>> xenmem_add_to_physmap_one().
>> Since the name "gfn" is currently used as identifier for a local
>> variable, bad things could happen if new uses of such variable are
>> committed while a renaming patch is waiting for the approval.
>> To avoid such danger, as first thing rename the local variable from
>> "gfn" to "gmfn".
> 
> "..., in line with XENMAPSPACE_gmfn which is the only case it is used
> with."
> 
> This is to justify the name not matching our generally aimed at "gfn"
> and "mfn" scheme.
> 
>> No functional change.
>>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

There is an use of "gfn" also few lines outside of the
switch statement, within an if condition where also XENMAPSPACE_gmfn is
involved:
what is true is that "gfn" is used only when space == XENMAPSPACE_gmfn.

What do you think about improve the description by adding:
"..., in line with XENMAPSPACE_gmfn which is the only *space* it is used
with."

However, the description improvement can be done on commit?

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:16:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:16:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647152.1009911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rABcI-0007JX-7s; Mon, 04 Dec 2023 16:16:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647152.1009911; Mon, 04 Dec 2023 16: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 1rABcI-0007JQ-5D; Mon, 04 Dec 2023 16:16:18 +0000
Received: by outflank-mailman (input) for mailman id 647152;
 Mon, 04 Dec 2023 16: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=y+Gv=HP=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rABcG-0007Hy-DJ
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:16:16 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20614.outbound.protection.outlook.com
 [2a01:111:f400:7e89::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71e52d88-92c0-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 17:16:15 +0100 (CET)
Received: from MW4PR03CA0110.namprd03.prod.outlook.com (2603:10b6:303:b7::25)
 by SA3PR12MB7924.namprd12.prod.outlook.com (2603:10b6:806:313::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 16:16:09 +0000
Received: from CO1PEPF000044FC.namprd21.prod.outlook.com
 (2603:10b6:303:b7:cafe::76) by MW4PR03CA0110.outlook.office365.com
 (2603:10b6:303:b7::25) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Mon, 4 Dec 2023 16:16:06 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FC.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.2 via Frontend Transport; Mon, 4 Dec 2023 16:16:06 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 4 Dec
 2023 10:16:05 -0600
Received: from [172.27.137.28] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 10:16:04 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71e52d88-92c0-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ipfg1Oa9AQP+JysetJ1xpNy61o2NXLcr++sTCwXUrx0TcoJs67sszfnEigSbTRFH1NCABc5a0mRL5sX1cC/ten7dEppnyRt9xE9SzxWNoN5RerIJQLCsTGZ90IVjyyKCi6wCrM6zt84mWjVXW89gj0i+TLf679j1e77b35LTEFMjQ6YpVBHlBhth9CWyrvyvm2pu1fyCRAphs7Xicy4PiM7icLExpWU6GdObpFYAIl0UVUEAtvz8FU3pPW0wUlUP8oa4DapgY4VtgYF2PFog1QU967aR7k/UduwgJ8aQiweg2L15TMJsklzxQrekpgOojqV82RPGF4xmyeq8x6s0GA==
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=9WWyHuCzZCX1QFVOEv+VPJ7iAgNzOwSmkPflLsMLbqs=;
 b=QXxo9J7+6CpxOxNp2+mlKjhbvlzxFkPklmHozvgmw729ZxnjQa0grnM0vZWlPL1+P/pZ3l54NDLS9gHWUCJIF3glUryZIGrYRiRIvCzhCSKP1Mhb4AzNlh52wPTDUwP6rm0NyAh7Ks+THye0+aMwx3RP6WQI1JR8vwWjg7SP9CSszNngEpXSlmXhYvPU74qhgds4GlY5F8UjowQIC6mJCHrRcW6WjClJRDpVIJg6o1mc3lAhymaAZvr892HgL8yfyVlogH6QSbDK0qjfGY9Mg0m1Ia4Wlk9NctUlIcDK9ZHbUEaZP4qgnlAqz5foViQe80HZNbMFpjeY3vUnfhckYg==
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=9WWyHuCzZCX1QFVOEv+VPJ7iAgNzOwSmkPflLsMLbqs=;
 b=R2mbh5UeqKihm06L2gJ957/LIDUw7bL4ph/+E7qz6qH/jHJuzeoCorwc5HO6OcM5h06azPCg3cL4/0clqZBiLGP32B6b+XxBTKhgf0icDMXFf8FwpeROTtcTKMESSZy8SHGWHna6rZSG60ijD01T5233x+EsN70cUYrh5ZO/FHg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <4920dfd5-38b2-4122-8108-508aa643ddf6@amd.com>
Date: Mon, 4 Dec 2023 11:16:03 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 16/17] xen/arm: vpci: permit access to guest vpci
 space
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "George
 Dunlap" <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-17-volodymyr_babchuk@epam.com>
 <5bb1afc3-6de4-4b78-85a4-2610f5f1d001@suse.com>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <5bb1afc3-6de4-4b78-85a4-2610f5f1d001@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044FC:EE_|SA3PR12MB7924:EE_
X-MS-Office365-Filtering-Correlation-Id: b58e54a3-565d-404c-85e2-08dbf4e451f5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	UQpC6LBFg8sm1WdUItIbik5I8frog8xdReDz6GyNxQh5VwDZw5FC50noNNp+eX5po7mko/5XibUXWHn9yJj6rzDK5l86cYn7cIagy/CmqfZaGaA20yZauFtd7O1NidqWRrE0RV7WOy4RZhJFuA798SdOkO/folk0mAar1o7/hJJwainQc0pF/e3h7kmZlVzm2fFMgEnFD1Wom/1IVafNwe2QInxcI7LSBbpBZRutNf6ACrekhSRSvJyEXQoWb+X1RSgjuJr3UqKuWL6xlahG8aI5qbnbWWte0KjJuK1vR/QBDHEvw3yx/3T6w5xI67S0WKBFmANZ/pAdI/0etXAYwCnMgb018n6J9lDc/yiN1Arab5re6YQckPMSLuXNE355gp4kgL7Ivl6YUic74D1yxmDF8KpUilkpm0Vg/Fr7bVNha9UUywCrvRqWMfH/HraPYOHIl0buAqmghFh+AI7pt59xtbactZC8ZYjUf8xn7fGuYNZod2oBzJqlzahFpKxzunOQgP7oc/jkCmgmFNN9AdR6Q6xF8YcMNU8XWM1OWpOT7+aD3wtS1FG8pknjpUiBhAXL9u4WFIkW68W+ZUEYciuOI+1GJhtTsbGjGj1470H1tId61IJ74aiVp5WP3jOpCuhlYlvIGXmP0yEoZYULir2XLLinQXGjwDZCpzEVnsl8QV06LBn5JXYH7aE5AQVTVw+yK9dSooJBj3YGtypvj6mBHW0BTe4aCWuhu6WAybAZvCYNL6i+SNWX4vWjgU0w34Ynf/Wh8WjCovtHYLBz66JRFTPZnBnsztSjVizB9/Huv8X33U6bnC8ygoJg9ITW
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(136003)(376002)(346002)(396003)(230922051799003)(82310400011)(64100799003)(1800799012)(451199024)(186009)(36840700001)(40470700004)(46966006)(2616005)(83380400001)(426003)(336012)(82740400003)(8676002)(8936002)(4326008)(44832011)(86362001)(53546011)(47076005)(81166007)(40480700001)(356005)(31686004)(26005)(36860700001)(40460700003)(478600001)(54906003)(16576012)(70206006)(70586007)(316002)(110136005)(2906002)(41300700001)(31696002)(36756003)(5660300002)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 16:16:06.5948
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b58e54a3-565d-404c-85e2-08dbf4e451f5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FC.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7924

On 12/4/23 03:29, Jan Beulich wrote:
> On 02.12.2023 02:27, Volodymyr Babchuk wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -695,6 +695,9 @@ struct domain *domain_create(domid_t domid,
>>          radix_tree_init(&d->pirq_tree);
>>      }
>>  
>> +    if ( !is_idle_domain(d) )
>> +        d->iomem_caps = rangeset_new(d, "I/O Memory", RANGESETF_prettyprint_hex);
>> +
>>      if ( (err = arch_domain_create(d, config, flags)) != 0 )
>>          goto fail;
>>      init_status |= INIT_arch;
>> @@ -711,7 +714,6 @@ struct domain *domain_create(domid_t domid,
>>          watchdog_domain_init(d);
>>          init_status |= INIT_watchdog;
>>  
>> -        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;
> 
> I'm pretty sure I asked before why I/O mem caps' init would be moved, but
> IRQ caps' would remain where it is.

You did. Sorry about that, I made the change locally but forgot to propagate it to Volodymyr. I will reply here with the updated patch.

> 
> Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:18:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:18:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647156.1009921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rABeL-0008Ej-LI; Mon, 04 Dec 2023 16:18:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647156.1009921; Mon, 04 Dec 2023 16: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 1rABeL-0008Ec-Id; Mon, 04 Dec 2023 16:18:25 +0000
Received: by outflank-mailman (input) for mailman id 647156;
 Mon, 04 Dec 2023 16:18: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=y+Gv=HP=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rABeJ-0008Cw-Gq
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:18:23 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20624.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd225b86-92c0-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 17:18:21 +0100 (CET)
Received: from MW4PR02CA0001.namprd02.prod.outlook.com (2603:10b6:303:16d::21)
 by CY5PR12MB6573.namprd12.prod.outlook.com (2603:10b6:930:43::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 16:18:17 +0000
Received: from CO1PEPF000044FA.namprd21.prod.outlook.com
 (2603:10b6:303:16d:cafe::df) by MW4PR02CA0001.outlook.office365.com
 (2603:10b6:303:16d::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Mon, 4 Dec 2023 16:18:17 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FA.mail.protection.outlook.com (10.167.241.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.2 via Frontend Transport; Mon, 4 Dec 2023 16:18:16 +0000
Received: from SATLEXMB08.amd.com (10.181.40.132) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 4 Dec
 2023 10:18:16 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB08.amd.com
 (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Mon, 4 Dec
 2023 08:18:15 -0800
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.34 via Frontend
 Transport; Mon, 4 Dec 2023 10:18:09 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd225b86-92c0-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=imvvKSK9s2HXdXgLzZbjBnM/uPMIhJ1J1fC7PMCWzskRDQ0z3QA6G0lJPFOkVwoh3Ncg1MmI9ODrENhKdZ0fMBAIopt2mrhWS7XB/lwHhfF/jmTv/+hgqUn6RfsMl2xkZV/d+tjnnieZVnbi4EMtoGn7fTIMhnI6dQ1zwN1QCvuknCQfr5SwA4Fp9psy2fe3Gz3b6KetTnZ2XBdq44QppaOqKjvP9hzOvhXV9pvE6uw/n94ReiwQzLp0w8MM3tgh1aK/kIviFjc9YuLxUeKogN4z5XSqxVN+S5Lpwi9pkaitMB9olE/J+8CgyCXeH+bY2QOH1RvOGMw5E0G0bXNNOQ==
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=iHX0uWWJY5+FNWlcKyNRL+7ZP1E/EvuXbuqBjJQtE4g=;
 b=VQ6iWrXa8nKDznWnsKGpAey6GZT7yxeZOjwECv6T85eDWWPssYaldmq3lGNpqES3+y7HzE1ALh3EFA1B4cuExV64+Splke2GJO1wtn0KAMj+mzcZxzKV2YtTC53Jpcfr2LVvtvIrknuFe5tQqvqy8eKcnbu5T2tAt6mgyvuW8hEvLTsRn7ZbkrP/6Ifd1YszRCgHf/tmKPMiQL7C7qsapzVx0+UgJfb9Ygeoa5WitxDmsUsWnhuC6uiQwxUFjUq51k4kWpbM8+zyZ08FIEUnYwL3Ty8vCOh2lqSzmqSWU/KdOexAUKV7owKKUEJgiJpa/C+/t7A4wJp0l1v0YiJJUQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iHX0uWWJY5+FNWlcKyNRL+7ZP1E/EvuXbuqBjJQtE4g=;
 b=XcaVJFWyo7k/VpJR55tVKbNLrkoI3tdZb1/SFOCWXvPojjHP8GaNRbV30lN3CgbJXz1XuLNWcc1GglruEuLlv+M4L/QrSuZwFGFSpoAfN0zjVRvl9U5D2Iae4WM5NKFO4JmGiY545v5ogIIkd4eg9jB+dDjIMuhmlVvYdcljgB8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>
Subject: [PATCH v11.1 16/17] xen/arm: vpci: permit access to guest vpci space
Date: Mon, 4 Dec 2023 11:18:01 -0500
Message-ID: <20231204161802.3537573-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <4920dfd5-38b2-4122-8108-508aa643ddf6@amd.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com> <20231202012556.2012281-17-volodymyr_babchuk@epam.com> <5bb1afc3-6de4-4b78-85a4-2610f5f1d001@suse.com> <4920dfd5-38b2-4122-8108-508aa643ddf6@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044FA:EE_|CY5PR12MB6573:EE_
X-MS-Office365-Filtering-Correlation-Id: 856d414a-732f-43fd-3d76-08dbf4e49f9a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	cvOqu+Gpl7f/r8Qoy3qi4dI1qVmLHcc8LT1XJVtMruTx6A+KM/U5db4yj9yQuHsJ0vc13+DGAYzu8s0Rxo2Oo4+UqCTVJnEcGjfv4KsiLLEjVpQx30NvrN6V/k95QBKDb7UDOexcyUQE+QfhlidFh+bbymyKIuA1/4wvXmp6t14Y9WcbI2imMphZnv4//DP8BYxUwYo7dxfD43rBKUk5+Nh5cD1SJA6x77xFPtMG/cX7Y8R2wO60kFwn9gqervDHGTMV9n4jhrse3sdtDXvv76mzqaPx4ZqU8WQ1eh3pBXpmGirCMCEEWR85NtJx9zyGUIMX59zQUBwCHBSPwaxAeVt+k35Nkp0I9C/THyLlT5jRh5Y4Pu7mN5JkqJGSeo3Rm4KuBMm1RhRQOJJ32uTc3IpD0GeaOHhaS8rGRWrwc1+N7nGntdlsVS9SLPpKSEssYA4WZblDa065PjVRAa6+kMcfCteOdqDOmmCYZhNrLL07oC5w4HkeJhIWg5zm/p2XNFGyBSeHQJ2zyaFF88KmswSS7KKI4ULRvBy79d1HKBDs4DWqGGjTU8qKwq4TakRwrmmX9ZJx8GpOtAPH/8Ic/aXzUtkfJf5TUF3MSXPubrOrXu4nfklBfm0YFCxqUiqZ8a+hyVwOR/MQ1GjOQ0U8QOCgIrrbx4psLSvN34AQ9JvgJ42ZniIVQcfYGw/Wct7ERw0KJ092+FtvGRmOvSKSBNldCU/w1H7RZ2vi+yBzj13NRz26s3ieSZmMesRkQ8sRpxRLC7g1cjrOB/YimNqadg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(396003)(39860400002)(346002)(376002)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(82310400011)(40470700004)(46966006)(36840700001)(40480700001)(44832011)(41300700001)(6666004)(86362001)(40460700003)(5660300002)(2906002)(83380400001)(356005)(4326008)(8676002)(8936002)(54906003)(36756003)(316002)(70206006)(70586007)(2616005)(478600001)(26005)(1076003)(6916009)(82740400003)(81166007)(336012)(426003)(47076005)(36860700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 16:18:16.9057
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 856d414a-732f-43fd-3d76-08dbf4e49f9a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FA.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6573

Move iomem_caps initialization earlier (before arch_domain_create()).

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
Changes in v11:
* move both iomem_caps and irq_caps initializations earlier, along with NULL
  check

Changes in v10:
* fix off-by-one
* also permit access to GUEST_VPCI_PREFETCH_MEM_ADDR

Changes in v9:
* new patch

This is sort of a follow-up to:

  baa6ea700386 ("vpci: add permission checks to map_range()")

I don't believe we need a fixes tag since this depends on the vPCI p2m BAR
patches.
---
 xen/arch/arm/vpci.c |  7 +++++++
 xen/common/domain.c | 10 +++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 796ff55d09d0..f8cdd085e27f 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -2,6 +2,7 @@
 /*
  * xen/arch/arm/vpci.c
  */
+#include <xen/iocap.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
 #include <xen/vpci.h>
@@ -128,6 +129,12 @@ int domain_vpci_init(struct domain *d)
         }
         register_mmio_handler(d, &vpci_mmio_handler,
                               GUEST_VPCI_ECAM_BASE, GUEST_VPCI_ECAM_SIZE, NULL);
+        iomem_permit_access(d, paddr_to_pfn(GUEST_VPCI_MEM_ADDR),
+                            paddr_to_pfn(GUEST_VPCI_MEM_ADDR +
+                                         GUEST_VPCI_MEM_SIZE - 1));
+        iomem_permit_access(d, paddr_to_pfn(GUEST_VPCI_PREFETCH_MEM_ADDR),
+                            paddr_to_pfn(GUEST_VPCI_PREFETCH_MEM_ADDR +
+                                         GUEST_VPCI_PREFETCH_MEM_SIZE - 1));
     }
 
     return 0;
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 26b4d558a41c..0aeb0520c96f 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -706,6 +706,11 @@ struct domain *domain_create(domid_t domid,
         d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
 
         radix_tree_init(&d->pirq_tree);
+
+        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 = arch_domain_create(d, config, flags)) != 0 )
@@ -724,11 +729,6 @@ struct domain *domain_create(domid_t domid,
         watchdog_domain_init(d);
         init_status |= INIT_watchdog;
 
-        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;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:26:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:26:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647162.1009932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rABlr-0003kL-JO; Mon, 04 Dec 2023 16:26:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647162.1009932; Mon, 04 Dec 2023 16: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 1rABlr-0003kE-Ga; Mon, 04 Dec 2023 16:26:11 +0000
Received: by outflank-mailman (input) for mailman id 647162;
 Mon, 04 Dec 2023 16:26:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bwcF=HP=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rABlq-0003k2-DZ
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:26:10 +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 d0a0796e-92c1-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 17:26:02 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2c9f72176cfso21240291fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 08:26:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0a0796e-92c1-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701707161; x=1702311961; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=T3QdI1C+dXcYTjlrn+RsitEevQdL9pj9FuRq72TdleM=;
        b=eneMLp/CVEzAj7tJV/wHFkQKqk7y+7rz/UeCDZbuiy4CJRWZ3Nnzyvj8mtju70ufIL
         0bDh4SkHhXv03DnIleAzuqHZLddt/F9l0xnTSBU0Nw2Am6BYkMtUPwnGYPMLmEbrou0a
         wdX3ryImk13VS88fbkr9baW7eTDB88feJ9UjU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701707161; x=1702311961;
        h=to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=T3QdI1C+dXcYTjlrn+RsitEevQdL9pj9FuRq72TdleM=;
        b=iUoT9OYkbgRMWgBSLqIotaNiJXSActFBG4p195YHJMQ84h+/2eNWvtpwSC8Fl2wa9X
         3tq5fTZeqXSdOAAAi80Mh2brKfp+lezVVKQx4eJ4zZXmeMewwWMuyMItI71XCtVjg4D1
         qsNuIYDTxJ3HsPNvhP+Bh/VoNV1geWfXgdy46nuVtnNFKzpNcoBc3So9KpLozOUSKAJ+
         tEXuvu3LyPuXDGgSi8FqgdPA8rwIGi66cZNB/Ypy2x64wunSuwFybcbpYAwi5CHGW2y/
         uteZzI6r5A+RinSm4Mzsp7qLNCcxDFhnUcpjFPyoWEsn9LZbP8rE3Iq7LheTcxAlB2IQ
         b/YA==
X-Gm-Message-State: AOJu0YwHz3LadkyaPZzRtBq2PGynXwFaIV0yUf4A8F7mD6WzplQVRdKP
	YqjtARqq2QT3Ak2aP0dLV3J+vfB/J8T3D6nbWn6awdC34U3cMXUQZekkuQ==
X-Google-Smtp-Source: AGHT+IFng8YeExqguCpr6kLVw5IazKc35fhaMnb+D6ZvSvhHuhrWiZP+U50MIHkRXGuRBIyw2OXGip4/72GtCa6n5sQ=
X-Received: by 2002:a2e:a304:0:b0:2c9:bb88:6ef3 with SMTP id
 l4-20020a2ea304000000b002c9bb886ef3mr1237937lje.18.1701707161438; Mon, 04 Dec
 2023 08:26:01 -0800 (PST)
MIME-Version: 1.0
From: George Dunlap <george.dunlap@cloud.com>
Date: Mon, 4 Dec 2023 16:25:50 +0000
Message-ID: <CA+zSX=bpVoB7vB0_FgxadybyjTP-SL7a4uFZRwRXtA-CPqZ16A@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items for YYY Community Call @ 1500 UTC
To: Xen-devel <xen-devel@lists.xenproject.org>, 
	Tamas K Lengyel <tamas.k.lengyel@gmail.com>, "intel-xen@intel.com" <intel-xen@intel.com>, 
	"daniel.kiper@oracle.com" <daniel.kiper@oracle.com>, Roger Pau Monne <roger.pau@citrix.com>, 
	Sergey Dyasli <sergey.dyasli@citrix.com>, 
	Christopher Clark <christopher.w.clark@gmail.com>, Rich Persaud <persaur@gmail.com>, 
	Kevin Pearson <kevin.pearson@ortmanconsulting.com>, Juergen Gross <jgross@suse.com>, 
	Paul Durrant <pdurrant@amazon.com>, "Ji, John" <john.ji@intel.com>, 
	"robin.randhawa@arm.com" <robin.randhawa@arm.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>, 
	Matt Spencer <Matt.Spencer@arm.com>, Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Jeff Kubascik <Jeff.Kubascik@dornerworks.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Rian Quinn <rianquinn@gmail.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLRG91ZyBHb2xkc3RlaW4=?= <cardoe@cardoe.com>, 
	George Dunlap <george.dunlap@citrix.com>, David Woodhouse <dwmw@amazon.co.uk>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLQW1pdCBTaGFo?= <amit@infradead.org>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLVmFyYWQgR2F1dGFt?= <varadgautam@gmail.com>, 
	Brian Woods <brian.woods@xilinx.com>, Robert Townley <rob.townley@gmail.com>, 
	Bobby Eshleman <bobby.eshleman@gmail.com>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLQ29yZXkgTWlueWFyZA==?= <cminyard@mvista.com>, 
	Olivier Lambert <olivier.lambert@vates.fr>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Ash Wilding <ash.j.wilding@gmail.com>, Rahul Singh <Rahul.Singh@arm.com>, 
	=?UTF-8?Q?Piotr_Kr=C3=B3l?= <piotr.krol@3mdeb.com>, 
	Brendan Kerrigan <brendank310@gmail.com>, Thierry Laurion <insurgo@riseup.net>, 
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Scott Davis <scottwd@gmail.com>, 
	Anthony PERARD <anthony.perard@citrix.com>, Michal Orzel <michal.orzel@amd.com>, 
	Marc Ungeschikts <marc.ungeschikts@vates.fr>, Zhiming Shen <zshen@exotanium.io>, 
	Xenia Ragiadakou <burzalodowa@gmail.com>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLSGVucnkgV2FuZw==?= <Henry.Wang@arm.com>, 
	Per Bilse <per.bilse@citrix.com>, Samuel Verschelde <stormi-xcp@ylix.fr>, 
	Andrei Semenov <andrei.semenov@vates.fr>, Yann Dirson <yann.dirson@vates.fr>, 
	Bernhard Kaindl <bernhard.kaindl@cloud.com>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLTHVjYSBGYW5jZWxsdQ==?= <luca.fancellu@arm.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Vikram Garhwal <vikram.garhwal@amd.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>, 
	Kelly Choi <kelly.choi@cloud.com>, Vaishali Thakkar <me.vaishalithakkar@gmail.com>
Content-Type: text/plain; charset="UTF-8"

Hi all,

I'll be running the community call while Kelly is travelling.

The proposed agenda is in
https://cryptpad.fr/pad/#/2/pad/edit/SvabZ2utDN3G7XRSG2k1NSLJ/ and you
can edit to add items.  Alternatively, you can reply to this mail
directly.

Agenda items appreciated a few days before the call: please put your
name besides items if you edit the document.

Note the following administrative conventions for the call:
* Unless, agreed in the previous meeting otherwise, the call is on the
1st Thursday of each month at 1600 British Time (either GMT or BST)
* I usually send out a meeting reminder a few days before with a
provisional agenda

* To allow time to switch between meetings, we'll plan on starting the
agenda at 16:05 sharp.  Aim to join by 16:03 if possible to allocate
time to sort out technical difficulties &c

* If you want to be CC'ed please add or remove yourself from the
sign-up-sheet at
https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/

Best Regards
George


== Dial-in Information ==
## Meeting time
16:00 - 17:00 British time
Further International meeting times:
https://www.timeanddate.com/worldclock/meetingdetails.html?year=2023&month=12&day=7&hour=16&min=0&sec=0&p1=1234&p2=37&p3=224&p4=179


## Dial in details
Web: https://meet.jit.si/XenProjectCommunityCall

Dial-in info and pin can be found here:

https://meet.jit.si/static/dialInInfo.html?room=XenProjectCommunityCall


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:26:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:26:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647163.1009941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rABls-000409-QB; Mon, 04 Dec 2023 16:26:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647163.1009941; Mon, 04 Dec 2023 16:26: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 1rABls-000402-Nd; Mon, 04 Dec 2023 16:26:12 +0000
Received: by outflank-mailman (input) for mailman id 647163;
 Mon, 04 Dec 2023 16: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=wjtD=HP=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rABlr-0003k8-5j
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:26:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3f30ed3-92c1-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 17:26:08 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 54CD44EE073D;
 Mon,  4 Dec 2023 17:26:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3f30ed3-92c1-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Mon, 04 Dec 2023 17:26:07 +0100
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, bertrand.marquis@arm.com,
 julien@xen.org, Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?R?=
 =?UTF-8?Q?oger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 6/7] xen/x86: remove stale comment
In-Reply-To: <528ef7334c091ad9acb0316cf4b5558b@bugseng.com>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com>
 <d06ee9f139392045fb8d927ff3a0c38fdc5080c6.1701270983.git.nicola.vetrini@bugseng.com>
 <48f44ee5-95c5-4656-97f1-7fa6d0fdc53c@suse.com>
 <528ef7334c091ad9acb0316cf4b5558b@bugseng.com>
Message-ID: <5b48da47a91a8e339b202a78bc5fd1eb@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 2023-12-01 17:57, Nicola Vetrini wrote:
> On 2023-11-30 17:41, Jan Beulich wrote:
>> On 29.11.2023 16:24, Nicola Vetrini wrote:
>>> The comment referred to the declaration for do_mca, which
>>> now is part of hypercall-defs.h, therefore the comment is stale.
>> 
>> If the comments were stale, the #include-s should also be able to
>> disappear?

>>> --- a/xen/arch/x86/include/asm/hypercall.h
>>> +++ b/xen/arch/x86/include/asm/hypercall.h
>>> @@ -12,7 +12,7 @@
>>>  #include <xen/types.h>
>>>  #include <public/physdev.h>
>>>  #include <public/event_channel.h>
>>> -#include <public/arch-x86/xen-mca.h> /* for do_mca */
>>> +#include <public/arch-x86/xen-mca.h>
>>>  #include <asm/paging.h>
>> 
>> Here otoh I'm not even sure this public header (or the others) is 
>> (are)
>> really needed.
>> 
> 
> I confirm this. It build even without this header.

It does appear to be needed after all. I did two differential pipeline 
runs, and some jobs fail to compile when I remove the header (e.g., 
[1]). Looking trough the build log, it's not entirely clear what is the 
relationship, but it seems related to some use of this struct defined in 
xen-mca.h:

typedef struct xen_mc xen_mc_t;
DEFINE_XEN_GUEST_HANDLE(xen_mc_t);

[1] https://gitlab.com/xen-project/people/bugseng/xen/-/jobs/5675760184

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:34:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647171.1009952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rABtr-0007Sq-IK; Mon, 04 Dec 2023 16:34:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647171.1009952; Mon, 04 Dec 2023 16:34: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 1rABtr-0007Sj-FV; Mon, 04 Dec 2023 16:34:27 +0000
Received: by outflank-mailman (input) for mailman id 647171;
 Mon, 04 Dec 2023 16:34:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LJlD=HP=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rABtp-0007Sd-QN
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:34:25 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb7b079a-92c2-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 17:34:23 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 889584EE073D;
 Mon,  4 Dec 2023 17:34:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb7b079a-92c2-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	maria.celeste.cesario@bugseng.com,
	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>,
	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>
Subject: [PATCH v3] xen: address violations of MISRA C:2012 Rule 11.8.
Date: Mon,  4 Dec 2023 17:32:40 +0100
Message-Id: <de2bfb322d91e99cf794c233461a04e638ee93aa.1701707356.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

Remove or amend casts to comply with Rule 11.8.

Fix violations by adding missing const qualifier in cast.
Fix violations by removing unnecessary cast.
Change type of operands from char* to uintptr_t: uintptr_t is
the appropriate type for memory address operations.

No functional changes.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>

---
Changes in v3:
- drop const qualifier in both operands of the variable diff.
- fix parentheses error.
Changes in v2:
- arm/regs.h: add const qualifier to the first operand,
    change types of both operands from char* to uintptr_t.
- x86/regs.h: add const qualifier to both operands. Change
    types of both operands from char* to uintptr_t to
    conform with the arm version.
- dom0less-build.c: rebase change in the new file.
---
 xen/arch/arm/dom0less-build.c     | 2 +-
 xen/arch/arm/include/asm/atomic.h | 2 +-
 xen/arch/arm/include/asm/regs.h   | 2 +-
 xen/arch/x86/include/asm/regs.h   | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index d39cbd969a..fb63ec6fd1 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -354,7 +354,7 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
     if ( node == NULL )
     {
         printk(XENLOG_ERR "Couldn't find node %s in host_dt!\n",
-               (char *)xen_path->data);
+               xen_path->data);
         return -EINVAL;
     }
 
diff --git a/xen/arch/arm/include/asm/atomic.h b/xen/arch/arm/include/asm/atomic.h
index 64314d59b3..517216d2a8 100644
--- a/xen/arch/arm/include/asm/atomic.h
+++ b/xen/arch/arm/include/asm/atomic.h
@@ -154,7 +154,7 @@ static always_inline void write_atomic_size(volatile void *p,
  */
 static inline int atomic_read(const atomic_t *v)
 {
-    return *(volatile int *)&v->counter;
+    return *(const volatile int *)&v->counter;
 }
 
 static inline int _atomic_read(atomic_t v)
diff --git a/xen/arch/arm/include/asm/regs.h b/xen/arch/arm/include/asm/regs.h
index 8a0db95415..f998aedff5 100644
--- a/xen/arch/arm/include/asm/regs.h
+++ b/xen/arch/arm/include/asm/regs.h
@@ -48,7 +48,7 @@ static inline bool regs_mode_is_32bit(const struct cpu_user_regs *regs)
 
 static inline bool guest_mode(const struct cpu_user_regs *r)
 {
-    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);
+    unsigned long diff = (uintptr_t)guest_cpu_user_regs() - (uintptr_t)(r);
     /* Frame pointer must point into current CPU stack. */
     ASSERT(diff < STACK_SIZE);
     /* If not a guest frame, it must be a hypervisor frame. */
diff --git a/xen/arch/x86/include/asm/regs.h b/xen/arch/x86/include/asm/regs.h
index 3fb94deedc..ddf5e14e57 100644
--- a/xen/arch/x86/include/asm/regs.h
+++ b/xen/arch/x86/include/asm/regs.h
@@ -6,7 +6,7 @@
 
 #define guest_mode(r)                                                         \
 ({                                                                            \
-    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
+    unsigned long diff = (uintptr_t)guest_cpu_user_regs() - (uintptr_t)(r);   \
     /* Frame pointer must point into current CPU stack. */                    \
     ASSERT(diff < STACK_SIZE);                                                \
     /* If not a guest frame, it must be a hypervisor frame. */                \
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:41:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:41:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647178.1009962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAC0F-0001jj-6N; Mon, 04 Dec 2023 16:41:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647178.1009962; Mon, 04 Dec 2023 16:41:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAC0F-0001jc-2Y; Mon, 04 Dec 2023 16:41:03 +0000
Received: by outflank-mailman (input) for mailman id 647178;
 Mon, 04 Dec 2023 16:41:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAC0D-0001jW-ML
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:41:01 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e7df6095-92c3-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 17:41:00 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c09fcfa9fso15132665e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 08:41:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p36-20020a05600c1da400b0040b478da760sm15732961wms.48.2023.12.04.08.40.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 08:40:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7df6095-92c3-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701708060; x=1702312860; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=NIMtUuTQIhSPd9127Q5A27fFAL47NR7g+c/kyNr6Q94=;
        b=EKnT81YRZ476vcoHAZVTxi5MhFKCJQ2mp3RH9iG9/qaJv/pCNgBOHZhkd6zD3zpQpe
         P5P+P1FjWpYSwXDl7yXCFFxx/Akkpv3FvSAtwAwpZ34X2OZ9EVSwccdQnirxveurura0
         K6GZcoKY6Kp5GBijgQg0lJvMCWfp4/zABbgbQQ53YqVfz75ETDT+yv3hXvyiQcZUHE5W
         wUq8y3TIc4eGhlxL3OY6jxKYv2cSO5pnkUOd7SK3YLbh4oMxJqRyLghk4ObrgTC9cisy
         C9JCPFrnGxSB4TYssv+NpwtWNPnbotcyxGsm9DHyEYoMRVtnUfBBMfLG/UJdZtzvPYAO
         26hA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701708060; x=1702312860;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=NIMtUuTQIhSPd9127Q5A27fFAL47NR7g+c/kyNr6Q94=;
        b=kAzAPbDfTgBmj217kP1/wkHXTnz0A+VlCmCwEqlF/pNeRDEyl1Ls6FM8JwXW/P1BCO
         38gucawmXR+d9qTYPH4dH/egZb9y4e8UdWLb0NOKBxZxN4Hj/iLfA0LPuyywHuN0r0/l
         4J/VuQHkU7xZ73jpGvkgrzWJ8hsJzVEl78swYPmUTL87I0yfQWUKVvr1L6civG2hQoGM
         +7smcDvy2x3GbL4+qFKfAZC2Y4k+A2ltL496pBQLbydAByIP3JBH5Z9rfMvlYDv3hguG
         BudJMBRtpOLWtG++OUSp7OtLM0eyJmIwnljfrjBy/EnMwHIDL09jx+Fu/MvdIzdEBfFq
         JIJQ==
X-Gm-Message-State: AOJu0YzrPNX4LyvccFIuRufriMzivDMUBp83oJRUK0DKDeFYZ/gbcQi7
	yUW1COqSaX/5pcrfmX1S3JnK
X-Google-Smtp-Source: AGHT+IHtufL+DiWDYI6HeTUI/PGm5rG9xQhggheS4VxidZa3OxOPF2wB+78VVmZw9NVNoyTb1qktWA==
X-Received: by 2002:a7b:ce0e:0:b0:40b:5e59:f73c with SMTP id m14-20020a7bce0e000000b0040b5e59f73cmr1451476wmc.174.1701708059676;
        Mon, 04 Dec 2023 08:40:59 -0800 (PST)
Message-ID: <fa2971c0-10fc-48b8-9031-53e56ae08319@suse.com>
Date: Mon, 4 Dec 2023 17:40:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 6/7] xen/x86: remove stale comment
Content-Language: en-US
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, bertrand.marquis@arm.com,
 julien@xen.org, 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.1701270983.git.nicola.vetrini@bugseng.com>
 <d06ee9f139392045fb8d927ff3a0c38fdc5080c6.1701270983.git.nicola.vetrini@bugseng.com>
 <48f44ee5-95c5-4656-97f1-7fa6d0fdc53c@suse.com>
 <528ef7334c091ad9acb0316cf4b5558b@bugseng.com>
 <5b48da47a91a8e339b202a78bc5fd1eb@bugseng.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: <5b48da47a91a8e339b202a78bc5fd1eb@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 17:26, Nicola Vetrini wrote:
> On 2023-12-01 17:57, Nicola Vetrini wrote:
>> On 2023-11-30 17:41, Jan Beulich wrote:
>>> On 29.11.2023 16:24, Nicola Vetrini wrote:
>>>> The comment referred to the declaration for do_mca, which
>>>> now is part of hypercall-defs.h, therefore the comment is stale.
>>>
>>> If the comments were stale, the #include-s should also be able to
>>> disappear?
> 
>>>> --- a/xen/arch/x86/include/asm/hypercall.h
>>>> +++ b/xen/arch/x86/include/asm/hypercall.h
>>>> @@ -12,7 +12,7 @@
>>>>  #include <xen/types.h>
>>>>  #include <public/physdev.h>
>>>>  #include <public/event_channel.h>
>>>> -#include <public/arch-x86/xen-mca.h> /* for do_mca */
>>>> +#include <public/arch-x86/xen-mca.h>
>>>>  #include <asm/paging.h>
>>>
>>> Here otoh I'm not even sure this public header (or the others) is 
>>> (are)
>>> really needed.
>>>
>>
>> I confirm this. It build even without this header.
> 
> It does appear to be needed after all. I did two differential pipeline 
> runs, and some jobs fail to compile when I remove the header (e.g., 
> [1]). Looking trough the build log, it's not entirely clear what is the 
> relationship, but it seems related to some use of this struct defined in 
> xen-mca.h:
> 
> typedef struct xen_mc xen_mc_t;
> DEFINE_XEN_GUEST_HANDLE(xen_mc_t);

That do_mca()'s parameter type, so in a way the comment is still correct
then.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:45:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647181.1009972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAC4b-0002ry-NC; Mon, 04 Dec 2023 16:45:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647181.1009972; Mon, 04 Dec 2023 16:45: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 1rAC4b-0002rr-K7; Mon, 04 Dec 2023 16:45:33 +0000
Received: by outflank-mailman (input) for mailman id 647181;
 Mon, 04 Dec 2023 16:45: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=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAC4a-0002rl-1d
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:45:32 +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 8937b64d-92c4-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 17:45:31 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40bd5eaa66cso31562235e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 08:45:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e13-20020a5d594d000000b0033350f5f94dsm1903408wri.101.2023.12.04.08.45.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 08:45:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8937b64d-92c4-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701708330; x=1702313130; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=KTMdSgNE/IWCX4CDotv9Oadqb/mh4kxpk7kwPcr5KfQ=;
        b=dcTCHitGVQr1OqyH74vDLF1Zs47eaKHgV+ku5nntEAnI1L36YcTnQ+Ub0fsffP1v2i
         g5v5qY+53e1PKHi4G/0nzjyIocV3jzrnC06NJTTKQsaFZcIaNxWvshItWULNY0Wjbj2X
         8C5wbabHD+TBbtQaPSqk53vzMYiJYmy5yiWeI6Hew2XHR9i5GjXGIIey0JrusE5Tm2Wj
         OStj2dnGZku4ORRnEoSFdYOE7a1SULbYAv+fMjlPUA4LCSXTGEWAUWh4w95Y8h9dKzQY
         HaLc7A0GKv0TBsgXPbtg/OgU7EG52WB9uj+VggH0t687nPz+ugQ2LjC+7Jjl+xVPTPE0
         rKcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701708330; x=1702313130;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=KTMdSgNE/IWCX4CDotv9Oadqb/mh4kxpk7kwPcr5KfQ=;
        b=pormgWsJ0Ud6WPn4QzAFtCKZKjCqnTH0z6x5NRdFqXZIPe1mFR3FifBQQftt3n7dO4
         etCbI8apcuuqUeSV2XeQDJkCjEremnAhIWaNRyFrKVwDLJy97tJpLVJfNAerJovh3jDm
         c7gm4yrPXigQmFEwGVumTIIBTTqK9CXRzgHLzjmDMbbUlRm4xKwGUwwZj5MCmJSDSEp9
         IGKjl6S+cLPiK76w6MqVkYoPYTNwUQ2+zOutGgbdm6Mh9Psb2tDX5R6/lu+ea+IgHe8s
         +EhjVwsz+V4t67Wy4bWEEyRpW7e5tFE7OO0ppudo/qPPzm4aNNpqjUFiA6jnSQwoO9Kz
         /xaA==
X-Gm-Message-State: AOJu0YyGfXHM+wqrnaRJMTukgT2tM8pOmUjroZHJHnpAREU566jTlKJf
	lFcgjcIgX5YTmFM0FkBWGAj5
X-Google-Smtp-Source: AGHT+IELNdyWG3rBx4vgmLcS8y3ySQjA7auhTKuqh1tYhzmFOcwQi92RO1Qc4B/FpdMjfAvUT3+j6Q==
X-Received: by 2002:a05:600c:458e:b0:40b:5e59:cca2 with SMTP id r14-20020a05600c458e00b0040b5e59cca2mr2903371wmo.131.1701708330500;
        Mon, 04 Dec 2023 08:45:30 -0800 (PST)
Message-ID: <ca864b85-db6a-47fd-ba0d-d95614e770dd@suse.com>
Date: Mon, 4 Dec 2023 17:45:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/2] x86/p2m: preparation work for
 xenmem_add_to_physmap_one()
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, xen-devel@lists.xenproject.org
References: <cover.1701344917.git.federico.serafini@bugseng.com>
 <aeafaee0fc4a507f6ba0c10e8fed90ed73a6bd6d.1701344917.git.federico.serafini@bugseng.com>
 <43513284-c28a-407b-9567-2f120b2e322f@suse.com>
 <e349b85b-53b4-4850-a1af-5d99ff7eba82@bugseng.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: <e349b85b-53b4-4850-a1af-5d99ff7eba82@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 16:42, Federico Serafini wrote:
> On 04/12/23 15:51, Jan Beulich wrote:
>> On 30.11.2023 16:48, Federico Serafini wrote:
>>> The objective is to use parameter name "gfn" for
>>> xenmem_add_to_physmap_one().
>>> Since the name "gfn" is currently used as identifier for a local
>>> variable, bad things could happen if new uses of such variable are
>>> committed while a renaming patch is waiting for the approval.
>>> To avoid such danger, as first thing rename the local variable from
>>> "gfn" to "gmfn".
>>
>> "..., in line with XENMAPSPACE_gmfn which is the only case it is used
>> with."
>>
>> This is to justify the name not matching our generally aimed at "gfn"
>> and "mfn" scheme.
>>
>>> No functional change.
>>>
>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> There is an use of "gfn" also few lines outside of the
> switch statement, within an if condition where also XENMAPSPACE_gmfn is
> involved:
> what is true is that "gfn" is used only when space == XENMAPSPACE_gmfn.

Well, sure - me saying "case" wasn't meant to limit things to the switch()
statement.

> What do you think about improve the description by adding:
> "..., in line with XENMAPSPACE_gmfn which is the only *space* it is used
> with."

Fine with me.

> However, the description improvement can be done on commit?

It can. Nevertheless you want to avoid getting into the habit of asking
for things to be done while committing. Strictly speaking on-commit
editing isn't entirely correct, as committing ought to be a purely
mechanical operation. In how far a particular committer is willing to
deviate from that should be left to them.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:50:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:50:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647186.1009983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAC9F-0004oU-Gj; Mon, 04 Dec 2023 16:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647186.1009983; Mon, 04 Dec 2023 16: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 1rAC9F-0004oN-CG; Mon, 04 Dec 2023 16:50:21 +0000
Received: by outflank-mailman (input) for mailman id 647186;
 Mon, 04 Dec 2023 16:50:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wjtD=HP=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rAC9E-0004oH-NE
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:50:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3546316b-92c5-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 17:50:19 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 49EC24EE0C8A;
 Mon,  4 Dec 2023 17:50:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3546316b-92c5-11ee-98e5-6d05b1d4d9a1
MIME-Version: 1.0
Date: Mon, 04 Dec 2023 17:50:19 +0100
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, bertrand.marquis@arm.com,
 julien@xen.org, Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?R?=
 =?UTF-8?Q?oger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 6/7] xen/x86: remove stale comment
In-Reply-To: <fa2971c0-10fc-48b8-9031-53e56ae08319@suse.com>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com>
 <d06ee9f139392045fb8d927ff3a0c38fdc5080c6.1701270983.git.nicola.vetrini@bugseng.com>
 <48f44ee5-95c5-4656-97f1-7fa6d0fdc53c@suse.com>
 <528ef7334c091ad9acb0316cf4b5558b@bugseng.com>
 <5b48da47a91a8e339b202a78bc5fd1eb@bugseng.com>
 <fa2971c0-10fc-48b8-9031-53e56ae08319@suse.com>
Message-ID: <f20ee3bf483c040c82ba5540a2102953@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 2023-12-04 17:40, Jan Beulich wrote:
> On 04.12.2023 17:26, Nicola Vetrini wrote:
>> On 2023-12-01 17:57, Nicola Vetrini wrote:
>>> On 2023-11-30 17:41, Jan Beulich wrote:
>>>> On 29.11.2023 16:24, Nicola Vetrini wrote:
>>>>> The comment referred to the declaration for do_mca, which
>>>>> now is part of hypercall-defs.h, therefore the comment is stale.
>>>> 
>>>> If the comments were stale, the #include-s should also be able to
>>>> disappear?
>> 
>>>>> --- a/xen/arch/x86/include/asm/hypercall.h
>>>>> +++ b/xen/arch/x86/include/asm/hypercall.h
>>>>> @@ -12,7 +12,7 @@
>>>>>  #include <xen/types.h>
>>>>>  #include <public/physdev.h>
>>>>>  #include <public/event_channel.h>
>>>>> -#include <public/arch-x86/xen-mca.h> /* for do_mca */
>>>>> +#include <public/arch-x86/xen-mca.h>
>>>>>  #include <asm/paging.h>
>>>> 
>>>> Here otoh I'm not even sure this public header (or the others) is
>>>> (are)
>>>> really needed.
>>>> 
>>> 
>>> I confirm this. It build even without this header.
>> 
>> It does appear to be needed after all. I did two differential pipeline
>> runs, and some jobs fail to compile when I remove the header (e.g.,
>> [1]). Looking trough the build log, it's not entirely clear what is 
>> the
>> relationship, but it seems related to some use of this struct defined 
>> in
>> xen-mca.h:
>> 
>> typedef struct xen_mc xen_mc_t;
>> DEFINE_XEN_GUEST_HANDLE(xen_mc_t);
> 
> That do_mca()'s parameter type, so in a way the comment is still 
> correct
> then.
> 
> Jan

Yeah, this patch can be dropped.

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:50:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:50:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647188.1009992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAC9Y-0005CY-NA; Mon, 04 Dec 2023 16:50:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647188.1009992; Mon, 04 Dec 2023 16: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 1rAC9Y-0005CR-Jq; Mon, 04 Dec 2023 16:50:40 +0000
Received: by outflank-mailman (input) for mailman id 647188;
 Mon, 04 Dec 2023 16:50: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=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAC9X-0004oH-1r
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:50: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 403f7988-92c5-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 17:50:38 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c09f5a7cfso15839255e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 08:50:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r16-20020a05600c459000b00406408dc788sm19249838wmo.44.2023.12.04.08.50.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 08:50:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 403f7988-92c5-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701708637; x=1702313437; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1Jm90OFxUl5ehXt5wrUuk/uvgAsW1jqHXp26bMI2lys=;
        b=IZ4by1WhcJSCht8ZyzeGaX3VklE+GpnIEqFJ3l/jjlgRCYECTyN/VEe7S77eBrWAv+
         4tlqyMp9UKlki32Dha2FRZJNjvC4Fnut0/sL/j5OotlS591vwbG3TFMseN2T/bccXBU5
         YcBXpXrRL79CaZYEOAi8M6vKeJCFH+Wkc5LwXbuGW5OcbluJYSQGfsbuBITGARcwaXUK
         tCnLlPuCUAj2vk4VYV+E6GvTxQ65mF8ceynzcDY2w9qWOgKgzS4TSW4ovY5aOPTiQnWr
         nP9vP0z65apbk9npR46UF9ZhIWBh2OeL5d7M/pSXLql02foYfarojWUPELFiaN4P25qt
         BNNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701708637; x=1702313437;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=1Jm90OFxUl5ehXt5wrUuk/uvgAsW1jqHXp26bMI2lys=;
        b=BMDV5rA3aMi5ds6z73davt63GV9XfVx7Xci1pB2N/y23JLNQW0bANgbU7eLXrL3arW
         8NdB1d1j6d60GjoXyQzwsboSRvj1cAsf4wHmKEfScAVLCJw3mkuP6txuEs634rdynWZf
         DQTydJh+nSHyNOb25k3I6TK/lGzPXOOjj4fzdl54PyzJHGMDT7uBH/ZQ4hzVjFatwZH2
         meDKnACtrIGafT3bNXAvoTwi7TrrsWKcNG73XP1aBzxjbyVnDyDK5sRrJgV4GG4vD/eF
         WUuBP2XmmhqgNH7l3BSLK9O7cNWD2o2rQXxuUB/Uu3lVX575eLdHyKCSSoYkjY53JCV7
         kNZA==
X-Gm-Message-State: AOJu0YxXYyojCSWmrx55afJhoGVPSG+qsIhSkdN0209KuVVoywEmTNck
	FRiEZqURt1hBbbpWohAG3U2XaWt/6cbibtCNj8Km
X-Google-Smtp-Source: AGHT+IEfblEEQNMrJsqzjA3aGulFxWr3piqfrCGRUdGJKkP4YNOpu5VqUgSFIoeaxZ80/qvp1rcpGQ==
X-Received: by 2002:a05:600c:6cf:b0:40b:5e59:ea17 with SMTP id b15-20020a05600c06cf00b0040b5e59ea17mr2546834wmn.182.1701708637488;
        Mon, 04 Dec 2023 08:50:37 -0800 (PST)
Message-ID: <8fc5333a-1529-42d2-a90f-dbaff9e2f23f@suse.com>
Date: Mon, 4 Dec 2023 17:50:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [ANNOUNCE] Call for agenda items for YYY Community Call @ 1500
 UTC
Content-Language: en-US
To: George Dunlap <george.dunlap@cloud.com>
References: <CA+zSX=bpVoB7vB0_FgxadybyjTP-SL7a4uFZRwRXtA-CPqZ16A@mail.gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CA+zSX=bpVoB7vB0_FgxadybyjTP-SL7a4uFZRwRXtA-CPqZ16A@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 17:25, George Dunlap wrote:
> I'll be running the community call while Kelly is travelling.
> 
> The proposed agenda is in
> https://cryptpad.fr/pad/#/2/pad/edit/SvabZ2utDN3G7XRSG2k1NSLJ/ and you
> can edit to add items.  Alternatively, you can reply to this mail
> directly.
> 
> Agenda items appreciated a few days before the call: please put your
> name besides items if you edit the document.
> 
> Note the following administrative conventions for the call:
> * Unless, agreed in the previous meeting otherwise, the call is on the
> 1st Thursday of each month at 1600 British Time (either GMT or BST)

IOW in the subject it's 1600 UTC and YYY == Dec 7?

Jan

> * I usually send out a meeting reminder a few days before with a
> provisional agenda
> 
> * To allow time to switch between meetings, we'll plan on starting the
> agenda at 16:05 sharp.  Aim to join by 16:03 if possible to allocate
> time to sort out technical difficulties &c
> 
> * If you want to be CC'ed please add or remove yourself from the
> sign-up-sheet at
> https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/
> 
> Best Regards
> George
> 
> 
> == Dial-in Information ==
> ## Meeting time
> 16:00 - 17:00 British time
> Further International meeting times:
> https://www.timeanddate.com/worldclock/meetingdetails.html?year=2023&month=12&day=7&hour=16&min=0&sec=0&p1=1234&p2=37&p3=224&p4=179
> 
> 
> ## Dial in details
> Web: https://meet.jit.si/XenProjectCommunityCall
> 
> Dial-in info and pin can be found here:
> 
> https://meet.jit.si/static/dialInInfo.html?room=XenProjectCommunityCall
> 



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:54:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:54:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647193.1010001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACDF-0006Gt-68; Mon, 04 Dec 2023 16:54:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647193.1010001; Mon, 04 Dec 2023 16:54:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACDF-0006Gm-3U; Mon, 04 Dec 2023 16:54:29 +0000
Received: by outflank-mailman (input) for mailman id 647193;
 Mon, 04 Dec 2023 16:54:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rACDD-0006Gg-MO
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:54:27 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c85f9f2c-92c5-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 17:54:26 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c039e9719so25886745e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 08:54:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v11-20020a05600c444b00b003fefaf299b6sm15608248wmn.38.2023.12.04.08.54.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 08:54:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c85f9f2c-92c5-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701708866; x=1702313666; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1A6QnzPypumBV3mDGEut2cRF7BruW14XQb66UfO1we8=;
        b=eQLurn4VVq3g7qVWBuiMUiFnCOQdBP6hvrhCph9tmPkIho4rmiW1NPRGa6EY1lc20U
         aVFOx0QJLFO4w7fkjIMC9u8iMHxocluoxFU+DrUKJf0hFuloLXJxqn/Oo1P89yUPZ3gF
         M2oYGL2IFUHiCAyN6GLprV1DTdJOh20/F0bGoafmyEYOV+36LpnEAWedNToTLR806iOc
         5kn9tbZCJlHdzglGdwmqFJwlC+1hmeVRX2rsR9KN+XSbTGkqVQXmuT+peBXMpT3Xt15K
         BD+HJ+7mXGIgqMZnm2hDmj6QYp7l3xYbCvj2OqhZyc8zDG7JGn3QMW2XtyOBNx8xHn9l
         AWdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701708866; x=1702313666;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1A6QnzPypumBV3mDGEut2cRF7BruW14XQb66UfO1we8=;
        b=d5fbnKNtNoeoNxfu2w/Y8rGmepSPvzD1WpT2fo2y41SZ3iH1PAgP+g8Z1DZc2O8Mzb
         gpJ35vFnlFfKwl6lc2sLYlugCMH1KDLcd2yS0R2lMZRU778I7QLLwzIAYehrQYYxD3vC
         ikWpsddrOhX2qE8GW//OMfpvlGWzrlorxwW3T8ryTCOwj1u7zq8a5cE4apon1CEM1WAK
         kIC2pn2owwiaQpyn7V2Z7AQxWjEemaQGyjFf5cG7YBmIc4NZncldg/UDP3bPPfgyVZOh
         wezM9ppwPF48cYVHi9oUFf2J8jujK6KBuQn/hM1FAMcwdB4KW9IFIh9qPDKbYfpxZLYI
         OvxA==
X-Gm-Message-State: AOJu0YzzDvdD9HyMqZJrsU3xGztAX+cYJ8HaT+9/wMqZV+to/duUV1f6
	vREdOarDOMbfCGSF7EB7GDr1
X-Google-Smtp-Source: AGHT+IFmrBekvPQ1oZmxmni/DNjAet7c46s5dooGC5cY6A4dww3NJmQ1f8ypWKFZofeKw3qC2TebNA==
X-Received: by 2002:a05:600c:2195:b0:401:bd2e:49fc with SMTP id e21-20020a05600c219500b00401bd2e49fcmr1477959wme.24.1701708865934;
        Mon, 04 Dec 2023 08:54:25 -0800 (PST)
Message-ID: <3c7abc30-20d7-4a4e-b963-27339952e7a3@suse.com>
Date: Mon, 4 Dec 2023 17:54:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>
Cc: consulting@bugseng.com, 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>,
 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: <de2bfb322d91e99cf794c233461a04e638ee93aa.1701707356.git.maria.celeste.cesario@bugseng.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: <de2bfb322d91e99cf794c233461a04e638ee93aa.1701707356.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 17:32, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Remove or amend casts to comply with Rule 11.8.
> 
> Fix violations by adding missing const qualifier in cast.
> Fix violations by removing unnecessary cast.
> Change type of operands from char* to uintptr_t: uintptr_t is
> the appropriate type for memory address operations.
> 
> No functional changes.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>

I consider it good practice to at least briefly say what the rule is
about, so it is clear why certain changes need doing.

> --- a/xen/arch/arm/include/asm/atomic.h
> +++ b/xen/arch/arm/include/asm/atomic.h
> @@ -154,7 +154,7 @@ static always_inline void write_atomic_size(volatile void *p,
>   */
>  static inline int atomic_read(const atomic_t *v)
>  {
> -    return *(volatile int *)&v->counter;
> +    return *(const volatile int *)&v->counter;
>  }

What about PPC's identical code?

> --- a/xen/arch/x86/include/asm/regs.h
> +++ b/xen/arch/x86/include/asm/regs.h
> @@ -6,7 +6,7 @@
>  
>  #define guest_mode(r)                                                         \
>  ({                                                                            \
> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
> +    unsigned long diff = (uintptr_t)guest_cpu_user_regs() - (uintptr_t)(r);   \
>      /* Frame pointer must point into current CPU stack. */                    \
>      ASSERT(diff < STACK_SIZE);                                                \
>      /* If not a guest frame, it must be a hypervisor frame. */                \

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:55:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:55:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647201.1010032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACEV-0007BW-Ks; Mon, 04 Dec 2023 16:55:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647201.1010032; Mon, 04 Dec 2023 16:55:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACEV-0007BN-Hx; Mon, 04 Dec 2023 16:55:47 +0000
Received: by outflank-mailman (input) for mailman id 647201;
 Mon, 04 Dec 2023 16:55: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=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rACET-000780-PC
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:55:45 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f66df2bf-92c5-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 17:55:43 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c09dfd82aso18631485e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 08:55:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v11-20020a05600c444b00b003fefaf299b6sm15608248wmn.38.2023.12.04.08.55.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 08:55:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f66df2bf-92c5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701708943; x=1702313743; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=CgAteeg6LMJxGIGHWSA1PXYNRpVdIA3VRULDp+0+gDE=;
        b=YpU13M5vczURTFauLrW46+voAJrAqSLgXD3lHP1iesRKQyWIx1/ps9D7HIIkYQ+Jml
         1iG9/hHO5EpWw7zFc5FXe2+UCjhGPmTMAYRsF1pKQcqHTVqi5i08WLewsDbtHymSILu2
         FzHtkUlmQXMiEHHDdlWrI9XoOlB9p+w1o56dV3oCeMqSDQGSm1uM1AaWsAmvvjrtfQmb
         WN7wV4AwAX9ow+m3c3P1WdKWM5cOkB/AdtO6aNuJ2Tv9AHbnIcw3o88YUSYYH0V4eWmc
         vnVANqFXNdgLT+SuUbpTv8+r4pYCBFd6KOpRtMEdktyBRjjoy+C7zntKXQoLefZHyMAr
         SDTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701708943; x=1702313743;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=CgAteeg6LMJxGIGHWSA1PXYNRpVdIA3VRULDp+0+gDE=;
        b=MfrmQi0GBlBD0619tLE2zyviSOt6VC+r4EAWqfdYqWeI3/3ppMhjbDggDMmnXQX5rN
         18OC/ExwwoqmBs/y5YL+5InbphvKJIulC6f5prpf4NuSB5zWFt84bRVWv8kSF/Kzyj9y
         5oThvVOWTNDXBPlYaFyYMVNIZGB2WcX+JGxKtdDcmvz/wes6C3iFOe5jHBcXjpKxDBPT
         ZJ3+iSY1vxZeMd9aGY8Pkq0jvmQMRZxWk3PJVA6lsdDDsfzMtP43/pBtqK1N+Npq1xmQ
         V4FFcTTKUuqNxJR5SyUlQvXMP0vjjmyDkFPe+xlrjDIKephnXVbTUxY57hBG4Rf6NfpB
         BgfA==
X-Gm-Message-State: AOJu0Yw8TWDoTBILy9O1vO0A0KfqM3mnJrfbK+GN+PnAXSa5vUlMxwie
	VJhuBnAF18drFEfhE6Zh8Jm8
X-Google-Smtp-Source: AGHT+IE2HUbNIQhnb+kR6yWdNdShkuaLva1gWtraEKxFG5xrbcNadAj4slZK14MRdgq/Pomtk7rVOQ==
X-Received: by 2002:a05:600c:2041:b0:40b:3056:7420 with SMTP id p1-20020a05600c204100b0040b30567420mr2862379wmg.39.1701708943241;
        Mon, 04 Dec 2023 08:55:43 -0800 (PST)
Message-ID: <34f5d241-54ad-40c6-abd2-46d2c65514af@suse.com>
Date: Mon, 4 Dec 2023 17:55:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/sched: fix adding offline cpu to cpupool
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Dario Faggioli <dfaggioli@suse.com>,
 George Dunlap <george.dunlap@citrix.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 xen-devel@lists.xenproject.org
References: <20231204152321.16520-1-jgross@suse.com>
 <20231204152321.16520-2-jgross@suse.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: <20231204152321.16520-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.12.2023 16:23, Juergen Gross wrote:
> Trying to add an offline cpu to a cpupool can crash the hypervisor,
> as the probably non-existing percpu area of the cpu is accessed before
> the availability of the cpu is being tested. This can happen in case
> the cpupool's granularity is "core" or "socket".
> 
> Fix that by testing the cpu to be online.
> 
> Fixes: cb563d7665f2 ("xen/sched: support core scheduling for moving cpus to/from cpupools")
> Reported-by: RenÃ© Winther HÃ¸jgaard <renewin@proton.me>
> Signed-off-by: Juergen Gross <jgross@suse.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Dec 04 16:56:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 16:56:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647208.1010058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACFG-0007uY-3C; Mon, 04 Dec 2023 16:56:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647208.1010058; Mon, 04 Dec 2023 16:56:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACFF-0007uR-Vs; Mon, 04 Dec 2023 16:56:33 +0000
Received: by outflank-mailman (input) for mailman id 647208;
 Mon, 04 Dec 2023 16:56:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CG6/=HP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rACFE-000780-Un
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 16:56:32 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12cde042-92c6-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 17:56:31 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40b538d5c4eso42402935e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 08:56:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v11-20020a05600c444b00b003fefaf299b6sm15608248wmn.38.2023.12.04.08.56.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 08:56:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12cde042-92c6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701708991; x=1702313791; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=A6ZH0H0fotw8fuQGfCpZi0icnqE1Qk9bGZN671DPR58=;
        b=RexZNUAT/55J/hOmPqH9+CZO7bdwuH0RDW7TPlfxhr2KK6g7z8HEIYOieO2ZRC+PQV
         Dj2HV3wvB9iwntEc1veZL9HlpaxeGnb4mOcgOewgv4xzsxud7iX9uCRFvSQBX+uB0Eso
         7aIBZmUHMIiFHKjzTIauJaPVSAQfAaHprxF3L4zCjAqnPk1Hrc1hejDsiWOcvBjUx8HD
         k6DhWsgCuqK7xxy47JkLu4cbJzH8bTHSqydGUQwEAoec0dJwoathhQcb7gJ9xluD2eaG
         V+21fYzdaKCp0O2M0882Hcwz4LuX4xY4TxdZwe3xZVu+Tr3hMoS8D3EVaywPTknNRo8u
         70IA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701708991; x=1702313791;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=A6ZH0H0fotw8fuQGfCpZi0icnqE1Qk9bGZN671DPR58=;
        b=gNQGOX4GLM0hANg9E6CCgHF++EpV0U3qhi51bQkV1K4vKp03fMtev6f/l89rXoqxLI
         YVtIgG2QVZmN7M3ZsANBo6fReOqTEwjV+otAvzZ2h8AWOz14JBKsoetdbD68XEfX2KIp
         o0SacnXlg0Y8AlfybLqEVdO5K5vxBFY45q3Ia8iFCSTLkdBsdNy4RRzN4mg4QnFRrqOb
         TmHkb0ZqedXxm54bxlBhJ25jiQlJ/gZ/ZQamaInhZa491ZLoOjsHkfqh4pKKpvU5/CTD
         vsPKuR7rN/FCy70N3nygPpabQ7KMX+b6/BKND3O8JcppLogVj63vtl+fKFTPB9TyUuEi
         HpbA==
X-Gm-Message-State: AOJu0YwqH+1qA9Qj0h+Thh332ridyIQvuaQVDPmIc51Hj3YsKZXpuwjA
	JEhxM3Z1w0xJkZH4nz16+sADT8csPg7wCW4g8C50
X-Google-Smtp-Source: AGHT+IHz6etayH3kO+EghH9l0IzDltwRriD3uDI9lNXhlasCzNk9mStUJF82ZTT2xZpjciNW0b1qeg==
X-Received: by 2002:a1c:6a16:0:b0:40c:835:b9a with SMTP id f22-20020a1c6a16000000b0040c08350b9amr1416935wmc.167.1701708990971;
        Mon, 04 Dec 2023 08:56:30 -0800 (PST)
Message-ID: <c1438011-6f26-4ab6-b7ae-ac273a1beee0@suse.com>
Date: Mon, 4 Dec 2023 17:56:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/sched: fix sched_move_domain()
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>,
 George Dunlap <george.dunlap@cloud.com>, xen-devel@lists.xenproject.org
References: <20231204152321.16520-1-jgross@suse.com>
 <20231204152321.16520-3-jgross@suse.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: <20231204152321.16520-3-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.12.2023 16:23, Juergen Gross wrote:
> Do cleanup in sched_move_domain() in a dedicated service function,
> which is called either in error case with newly allocated data, or in
> success case with the old data to be freed.
> 
> This will at once fix some subtle bugs which sneaked in due to
> forgetting to overwrite some pointers in the error case.
> 
> Fixes: 70fadc41635b ("xen/cpupool: support moving domain between cpupools with different granularity")
> Reported-by: RenÃ© Winther HÃ¸jgaard <renewin@proton.me>
> Initial-fix-by: Jan Beulich <jbeulich@suse.com>
> Initial-fix-by: George Dunlap <george.dunlap@cloud.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Dec 04 17:12:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 17:12:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647242.1010160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACUy-0006uF-FB; Mon, 04 Dec 2023 17:12:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647242.1010160; Mon, 04 Dec 2023 17:12: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 1rACUy-0006u8-Cb; Mon, 04 Dec 2023 17:12:48 +0000
Received: by outflank-mailman (input) for mailman id 647242;
 Mon, 04 Dec 2023 17:12:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LJlD=HP=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rACUx-0006u2-4B
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 17:12:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 57bae942-92c8-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 18:12:46 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id DA7524EE0C8A;
 Mon,  4 Dec 2023 18:12:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 57bae942-92c8-11ee-98e5-6d05b1d4d9a1
Message-ID: <deaf5661-b4ed-432f-940f-11ff44681f2f@bugseng.com>
Date: Mon, 4 Dec 2023 18:12:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, 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>,
 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: <de2bfb322d91e99cf794c233461a04e638ee93aa.1701707356.git.maria.celeste.cesario@bugseng.com>
 <3c7abc30-20d7-4a4e-b963-27339952e7a3@suse.com>
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <3c7abc30-20d7-4a4e-b963-27339952e7a3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 04/12/23 17:54, Jan Beulich wrote:
> On 04.12.2023 17:32, Simone Ballarin wrote:
>> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
>>
>> Remove or amend casts to comply with Rule 11.8.
>>
>> Fix violations by adding missing const qualifier in cast.
>> Fix violations by removing unnecessary cast.
>> Change type of operands from char* to uintptr_t: uintptr_t is
>> the appropriate type for memory address operations.
>>
>> No functional changes.
>>
>> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
>> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> 
> I consider it good practice to at least briefly say what the rule is
> about, so it is clear why certain changes need doing.
> 
>> --- a/xen/arch/arm/include/asm/atomic.h
>> +++ b/xen/arch/arm/include/asm/atomic.h
>> @@ -154,7 +154,7 @@ static always_inline void write_atomic_size(volatile void *p,
>>    */
>>   static inline int atomic_read(const atomic_t *v)
>>   {
>> -    return *(volatile int *)&v->counter;
>> +    return *(const volatile int *)&v->counter;
>>   }
> 
> What about PPC's identical code?

If the ARM part is accepted, I will include this change in an upcoming 
series for Rule 11.8 (which I'm working on), otherwise in v4.

> 
>> --- a/xen/arch/x86/include/asm/regs.h
>> +++ b/xen/arch/x86/include/asm/regs.h
>> @@ -6,7 +6,7 @@
>>   
>>   #define guest_mode(r)                                                         \
>>   ({                                                                            \
>> -    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
>> +    unsigned long diff = (uintptr_t)guest_cpu_user_regs() - (uintptr_t)(r);   \
>>       /* Frame pointer must point into current CPU stack. */                    \
>>       ASSERT(diff < STACK_SIZE);                                                \
>>       /* If not a guest frame, it must be a hypervisor frame. */                \
> 
> This part
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Jan

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 17:23:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 17:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647247.1010170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACfD-0002F8-DR; Mon, 04 Dec 2023 17:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647247.1010170; Mon, 04 Dec 2023 17:23:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACfD-0002F1-AU; Mon, 04 Dec 2023 17:23:23 +0000
Received: by outflank-mailman (input) for mailman id 647247;
 Mon, 04 Dec 2023 17:23: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 1rACfC-0002Er-37; Mon, 04 Dec 2023 17:23: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 1rACfB-0007T1-Mf; Mon, 04 Dec 2023 17:23: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 1rACfB-0003Ta-62; Mon, 04 Dec 2023 17:23:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rACfB-00052m-5a; Mon, 04 Dec 2023 17:23:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dmkJN7KLoi+H+Q2mIfbZnLvqs54KBA7DMEo6J7K9l54=; b=Ra3eVOosN18sZx1h0eYGcZ0FYk
	6mHvNbsdF5Ue/kJBejfzVwCext/aG4inB3dgkrXQ5BJeJTSmNl4cuzAsHVCy882DtUsCb1tdgiwTx
	seiGGwzVQd+Isq0YAf9yszy7+dEk53LBhhmTX7K79Z4QifAkCTV0kBkgQQd3zUdqt1t4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183984-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183984: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-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-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-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds: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-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-raw: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=33cc938e65a98f1d29d0a18403dbbee050dcad9a
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 04 Dec 2023 17:23:21 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

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

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 183982 like 183973
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 183982 never pass
 test-armhf-armhf-xl         15 migrate-support-check fail in 183982 never pass
 test-armhf-armhf-xl     16 saverestore-support-check fail in 183982 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 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-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-multivcpu 15 migrate-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-arndale  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-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                33cc938e65a98f1d29d0a18403dbbee050dcad9a
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    2 days
Failing since        183977  2023-12-03 00:12:06 Z    1 days    5 attempts
Testing same since   183981  2023-12-03 18:14:02 Z    0 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  David Howells <dhowells@redhat.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Jens Axboe <axboe@kernel.dk>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Namjae Jeon <linkinjeon@kernel.org>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Sean Christopherson <seanjc@google.com>
  Steve French <stfrench@microsoft.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 750 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 17:27:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 17:27:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647251.1010179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACin-0002wf-So; Mon, 04 Dec 2023 17:27:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647251.1010179; Mon, 04 Dec 2023 17:27:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACin-0002wY-Q2; Mon, 04 Dec 2023 17:27:05 +0000
Received: by outflank-mailman (input) for mailman id 647251;
 Mon, 04 Dec 2023 17:27: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=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rACin-0002wR-57
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 17:27:05 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 568d8398-92ca-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 18:27:03 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c09fcfa9fso15682495e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 09:27:03 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 a13-20020a05600c348d00b0040b5377cf03sm19538133wmq.1.2023.12.04.09.27.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 09:27:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 568d8398-92ca-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701710822; x=1702315622; 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=E/z2cCkWrr6RQfDK8s7AltEM2rUC1pyxG+qGmIePOvY=;
        b=SrPKrLfQzftS6yttlFHM+CTPRYGbomCU1bQVFzyq+hSoTyXj94wACy5wUudKVFWOcH
         E/H5mJx3WqcNaW2TXPTvNylZwEHK9Tx/mFhhi6loHxXQcpa1JOhuPL4W91TRC6DsYyYV
         ZDB0utzbYQ8valUvU2BkZ0qaLQcBhfmYp8XTo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701710822; x=1702315622;
        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=E/z2cCkWrr6RQfDK8s7AltEM2rUC1pyxG+qGmIePOvY=;
        b=UX0r40ySu/JRZTExvVE2uBRsA/w4bWFcYa4WhHcoynr/Q9zARc/yTlJ78BLNMZ1sUo
         Sd/S4ZLWlJxtmz0N4ps+31UZMOvUDwRYuz5OJxSK4w31A4MZHlMWqaYLcD2690Ea60Dc
         oLWVg00Mr2LoG0SJKzgEsDMaWMdgguV1hxg9pwASbShuf1KuTRA7ZTffFFP0hYODSatT
         BzdJgkS0P9ZsK007V6lbl2LNWRUI4zHCcg1ATdFDTPVm7KY8/if49tH9H7V4XxA00H2Y
         /wTHlw/xnweCBqjIQFemtsC07JaQ/N+bNHotrigVS7t59mWMQZyTpy4Y5KOoJ6uzflJB
         InQA==
X-Gm-Message-State: AOJu0Ywd0sPgh0LwHKjTez6FDQM/TH8t3rGeAPJ8lqfWohuDveLYYlVq
	RARW50+MBfxwnf84tTtSquxRiw==
X-Google-Smtp-Source: AGHT+IEzWJh6UZ5LSIEFlPOQZM7tuKMinzVNyJWQo7RafJj8Y1PJVW8KKC96H4zZpfx3a3t6Qh/t0A==
X-Received: by 2002:a05:600c:3d96:b0:40b:5f03:b3ec with SMTP id bi22-20020a05600c3d9600b0040b5f03b3ecmr1156449wmb.270.1701710822423;
        Mon, 04 Dec 2023 09:27:02 -0800 (PST)
Date: Mon, 4 Dec 2023 18:27:01 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Message-ID: <ZW4L5Q4SMprtmbK-@macbook>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com>

On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
> ..., at least as reasonably feasible without making a check hook
> mandatory (in particular strict vs relaxed/zero-extend length checking
> can't be done early this way).
> 
> Note that only one of the two uses of hvm_load() is accompanied with
> hvm_check(). The other directly consumes hvm_save() output, which ought
> to be well-formed. This means that while input data related checks don't
> need repeating in the "load" function when already done by the "check"
> one (albeit assertions to this effect may be desirable), domain state
> related checks (e.g. has_xyz(d)) will be required in both places.
> 
> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Do we really need all the copying involved in use of _hvm_read_entry()
> (backing hvm_load_entry()? Zero-extending loads are likely easier to
> handle that way, but for strict loads all we gain is a reduced risk of
> unaligned accesses (compared to simply pointing into h->data[]).

See below, but I wonder whether the checks could be performed as part
of hvm_load() without having to introduce a separate handler and loop
over the context entries.

> Would the hvm_sr_handlers[] better use array_access_nospec()?

Maybe?  Given this is a domctl I do wonder whether a domain already
having access to such interface won't have easier ways to leak data
from Xen.  Maybe for a disaggregated setup.

> ---
> v2: New.
> 
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -379,6 +379,10 @@ long arch_do_domctl(
>          if ( copy_from_guest(c.data, domctl->u.hvmcontext.buffer, c.size) != 0 )
>              goto sethvmcontext_out;
>  
> +        ret = hvm_check(d, &c);
> +        if ( ret )
> +            goto sethvmcontext_out;
> +
>          domain_pause(d);
>          ret = hvm_load(d, &c);
>          domain_unpause(d);
> --- a/xen/arch/x86/hvm/save.c
> +++ b/xen/arch/x86/hvm/save.c
> @@ -30,7 +30,8 @@ static void arch_hvm_save(struct domain
>      d->arch.hvm.sync_tsc = rdtsc();
>  }
>  
> -static int arch_hvm_load(struct domain *d, const struct hvm_save_header *hdr)
> +static int arch_hvm_check(const struct domain *d,
> +                          const struct hvm_save_header *hdr)
>  {
>      uint32_t eax, ebx, ecx, edx;
>  
> @@ -55,6 +56,11 @@ static int arch_hvm_load(struct domain *
>                 "(%#"PRIx32") and restored on another (%#"PRIx32").\n",
>                 d->domain_id, hdr->cpuid, eax);
>  
> +    return 0;
> +}
> +
> +static void arch_hvm_load(struct domain *d, const struct hvm_save_header *hdr)
> +{
>      /* Restore guest's preferred TSC frequency. */
>      if ( hdr->gtsc_khz )
>          d->arch.tsc_khz = hdr->gtsc_khz;
> @@ -66,13 +72,12 @@ static int arch_hvm_load(struct domain *
>  
>      /* VGA state is not saved/restored, so we nobble the cache. */
>      d->arch.hvm.stdvga.cache = STDVGA_CACHE_DISABLED;
> -
> -    return 0;
>  }
>  
>  /* List of handlers for various HVM save and restore types */
>  static struct {
>      hvm_save_handler save;
> +    hvm_check_handler check;
>      hvm_load_handler load;
>      const char *name;
>      size_t size;
> @@ -88,6 +93,7 @@ void __init hvm_register_savevm(uint16_t
>  {
>      ASSERT(typecode <= HVM_SAVE_CODE_MAX);
>      ASSERT(hvm_sr_handlers[typecode].save == NULL);
> +    ASSERT(hvm_sr_handlers[typecode].check == NULL);
>      ASSERT(hvm_sr_handlers[typecode].load == NULL);
>      hvm_sr_handlers[typecode].save = save_state;
>      hvm_sr_handlers[typecode].load = load_state;
> @@ -275,6 +281,78 @@ int hvm_save(struct domain *d, hvm_domai
>      return 0;
>  }
>  
> +int hvm_check(const struct domain *d, hvm_domain_context_t *h)
> +{
> +    const struct hvm_save_header *hdr;
> +    int rc;
> +
> +    if ( d->is_dying )
> +        return -EINVAL;
> +
> +    /* Get at the save header, which must be first. */
> +    hdr = hvm_get_entry(HEADER, h);
> +    if ( !hdr )
> +        return -ENODATA;
> +
> +    rc = arch_hvm_check(d, hdr);
> +    if ( rc )
> +        return rc;
> +
> +    for ( ; ; )
> +    {
> +        const struct hvm_save_descriptor *desc;
> +        hvm_check_handler handler;
> +
> +        if ( h->size - h->cur < sizeof(*desc) )
> +        {
> +            /* Run out of data */
> +            printk(XENLOG_G_ERR
> +                   "HVM restore %pd: save did not end with a null entry\n",
> +                   d);
> +            return -ENODATA;
> +        }
> +
> +        /* Read the typecode of the next entry and check for the end-marker. */
> +        desc = (const void *)&h->data[h->cur];
> +        if ( desc->typecode == HVM_SAVE_CODE(END) )
> +        {
> +            /* Reset cursor for hvm_load(). */
> +            h->cur = 0;
> +            return 0;
> +        }
> +
> +        /* Find the handler for this entry. */
> +        if ( desc->typecode >= ARRAY_SIZE(hvm_sr_handlers) ||
> +             !hvm_sr_handlers[desc->typecode].name ||
> +             !hvm_sr_handlers[desc->typecode].load )
> +        {
> +            printk(XENLOG_G_ERR "HVM restore %pd: unknown entry typecode %u\n",
> +                   d, desc->typecode);
> +            return -EINVAL;
> +        }
> +
> +        /* Check the entry. */
> +        handler = hvm_sr_handlers[desc->typecode].check;
> +        if ( !handler )
> +        {
> +            if ( desc->length > h->size - h->cur - sizeof(*desc) )
> +                return -ENODATA;
> +            h->cur += sizeof(*desc) + desc->length;
> +        }
> +        else if ( (rc = handler(d, h)) )
> +        {
> +            printk(XENLOG_G_ERR
> +                   "HVM restore %pd: failed to check %s:%u rc %d\n",
> +                   d, hvm_sr_handlers[desc->typecode].name, desc->instance, rc);
> +            return rc;
> +        }
> +
> +        process_pending_softirqs();

Looking at this, won't it be better to call the check() hooks inside
the hvm_load() function instead of duplicating the loop?

I realize that you only perform the checks when the state is loaded
from a domctl, but still seems quite a lot of code duplication for
little benefit.

hvm_load() could gain an extra parameter to select whether the input
must be checked or not, and that would avoid having to iterate twice
over the context.

> +    }
> +
> +    /* Not reached */

ASSERT_UNREACHABLE() maybe?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 17:28:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 17:28:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647258.1010189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACk9-0003YG-BI; Mon, 04 Dec 2023 17:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647258.1010189; Mon, 04 Dec 2023 17: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 1rACk9-0003Y9-8Z; Mon, 04 Dec 2023 17:28:29 +0000
Received: by outflank-mailman (input) for mailman id 647258;
 Mon, 04 Dec 2023 17:28:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rACk7-0003Y1-KX
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 17:28:27 +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 1rACk6-0007YL-LI; Mon, 04 Dec 2023 17:28:26 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=[192.168.23.72]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rACk6-0005IU-Ef; Mon, 04 Dec 2023 17:28:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=JO+1xJmHICPUF3HautaGK23vUEzYv/EMy96CippJyXE=; b=3pZKqf2i6WEIkc2o8VAsnwJtm/
	rnXW/9Ut71dxa975BhXwJoNTRZkJw1lLvYpwHyxNwGxCFQzPFJXzZ3VqwhNUWXUiv0L3Svil+zdY6
	x82ETF3gDamEiyjd8FVJ4BAUEEZnGur7Gt5/ZgThYCgrMOsPdKJmdXB5YbzGR0cruEtw=;
Message-ID: <2d7f5ae2-410f-49d4-b0b0-05e9f690bd76@xen.org>
Date: Mon, 4 Dec 2023 17:28:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: address violations of MISRA C:2012 Rule 11.8.
Content-Language: en-GB
To: Simone Ballarin <simone.ballarin@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, maria.celeste.cesario@bugseng.com,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu <wl@xen.org>
References: <de2bfb322d91e99cf794c233461a04e638ee93aa.1701707356.git.maria.celeste.cesario@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <de2bfb322d91e99cf794c233461a04e638ee93aa.1701707356.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 04/12/2023 16:32, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Remove or amend casts to comply with Rule 11.8.
> 
> Fix violations by adding missing const qualifier in cast.
> Fix violations by removing unnecessary cast.
> Change type of operands from char* to uintptr_t: uintptr_t is
> the appropriate type for memory address operations.
> 
> No functional changes.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 17:40:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 17:40:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647262.1010200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rACvm-0000gm-7j; Mon, 04 Dec 2023 17:40:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647262.1010200; Mon, 04 Dec 2023 17: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 1rACvm-0000gf-4w; Mon, 04 Dec 2023 17:40:30 +0000
Received: by outflank-mailman (input) for mailman id 647262;
 Mon, 04 Dec 2023 17: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=r4Wa=HP=proton.me=renewin@srs-se1.protection.inumbo.net>)
 id 1rACvj-0000gZ-Nf
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 17:40:28 +0000
Received: from mail-40134.protonmail.ch (mail-40134.protonmail.ch
 [185.70.40.134]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3490474b-92cc-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 18:40:25 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3490474b-92cc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1701711623; x=1701970823;
	bh=Prd9yO0AI5mvo/Hqtmdc6j47eDUY+OS3gy3qYZJET9A=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector;
	b=BCG8+UDJw2AFid2hisbL/T4z0VsvlWqEYz6flmKTTAdRYNqwofhHXIPHwQKEw/4sS
	 IO272BBmF5S5JsS+7+zYYUxS0TrGDKBfnDJFWSiu8amvV08/2v74PVPEoHnQDHA2Kg
	 +0WDXjmpQXoDKaqYmH+vPFK3s8vgH5o8OaVca6fNpUo+JXszXI5wIDNCJm6/ndHsdY
	 xKNppGwqKeRw08gkHd33VjkbC+CGjHPmly8HA70d+UY1mmP75EQo1OJJQuSsQY/Vxx
	 1tFuctfv5eM1N+al7x5OOXqxNqdGazEaePSPNgDvaCk8qIDGhxvadnWPcevwFJ4Ish
	 OwFP/FlNwIErQ==
Date: Mon, 04 Dec 2023 17:40:07 +0000
To: Juergen Gross <jgross@suse.com>
From: =?utf-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Cc: Jan Beulich <jbeulich@suse.com>, George Dunlap <george.dunlap@citrix.com>, Dario Faggioli <dfaggioli@suse.com>, "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
Message-ID: <eoYHHXdHJzBIPmppjwYPoxVy_LbXN8PCF5FawlOBYMIpqAUeOiPNsW9ZVL3u_iCpzCy7xB0muzDKIfCIDdiFkR-bumO3TgxZkksrOZE7_oE=@proton.me>
In-Reply-To: <dec807bc-8450-48b0-be99-70bf17e62bca@suse.com>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me> <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com> <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com> <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com> <1fc21e82-f9f3-4929-a138-2b3de98c06dc@suse.com> <dec807bc-8450-48b0-be99-70bf17e62bca@suse.com>
Feedback-ID: 45853758:user:proton
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha512; boundary="------421f8b95fe0fbd45dd94a5daaf07c5f81dc893bddac33491d512ccb044bbed43"; charset=utf-8

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------421f8b95fe0fbd45dd94a5daaf07c5f81dc893bddac33491d512ccb044bbed43
Content-Type: multipart/mixed;boundary=---------------------d45fa8f498a911e229a632c0d0a073a7

-----------------------d45fa8f498a911e229a632c0d0a073a7
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;charset=utf-8

Hi Juergen,

Sorry for the late reply.

Here are the commands I execute, it is 'xl cpupool-cpu-add pcores 4-15' th=
at crash the system.

xl cpupool-cpu-remove Pool-0 4-31
xl cpupool-create name=3D\"ecores\" sched=3D\"credit\"
xl cpupool-cpu-add ecores 16-31

xl cpupool-create name=3D\"pcores\" sched=3D\"credit\"
xl cpupool-cpu-add pcores 4-15


Here is the other information you asked for.

xl cpupool-list:
Name               CPUs   Sched     Active   Domain count
Pool-0              24    credit       y          5

xl cpupool-list -c:
Name               CPU list
Pool-0             0,2,4,6,8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,=
28,29,30,31

xl info:
host                   : dom0
release                : 6.1.62-1.qubes.fc37.x86_64
version                : #1 SMP PREEMPT_DYNAMIC Tue Nov 14 06:16:38 GMT 20=
23
machine                : x86_64
nr_cpus                : 24
max_cpu_id             : 31
nr_nodes               : 1
cores_per_socket       : 24
threads_per_core       : 1
cpu_mhz                : 2995.196
hw_caps                : bfebfbff:77faf3ff:2c100800:00000121:0000000f:239c=
27eb:1840078c:00000100
virt_caps              : pv hvm hvm_directio pv_directio hap iommu_hap_pt_=
share vmtrace gnttab-v1
total_memory           : 65373
free_memory            : 56505
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 17
xen_extra              : .2
xen_version            : 4.17.2
xen_caps               : xen-3.0-x86_64 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm=
-3.0-x86_64 =


xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=3D0xffff800000000000
xen_changeset          : =


xen_commandline        : placeholder dom0_mem=3Dmin:2048M dom0_mem=3Dmax:4=
096M ucode=3Dscan gnttab_max_frames=3D2048 gnttab_max_maptrack_frames=3D40=
96 smt=3Doff dom0_max_vcpus=3D4 dom0_vcpus_pin sched-gran=3Dcore sched=3Dc=
redit no-real-mode edd=3Doff
cc_compiler            : gcc (GCC) 12.3.1 20230508 (Red Hat 12.3.1-1)
cc_compile_by          : mockbuild
cc_compile_domain      : [unknown]
cc_compile_date        : Tue Nov 14 00:00:00 UTC 2023
build_id               : a426597e4f24a9487bed72dafc63d4eb523be22b
xend_config_format     : 4


I'm not sure which file is the cpupool config file, this is the content fr=
om /etc/xen/cpupool
# the name of the new cpupool
name =3D "Example-Cpupool"

# the scheduler to use: valid are e.g. credit, credit2 and rtds
sched =3D "credit"

# list of cpus to use
cpus =3D ["2", "3"]

/rene


On Monday, December 4th, 2023 at 13:07, Juergen Gross <jgross@suse.com> wr=
ote:


> On 04.12.23 11:13, Jan Beulich wrote:
> =


> > On 04.12.2023 11:02, Juergen Gross wrote:
> > =


> > > On 04.12.23 10:15, Jan Beulich wrote:
> > > =


> > > > On 01.12.2023 21:12, Andrew Cooper wrote:
> > > > =


> > > > > On 01/12/2023 7:59 pm, Ren=C3=A9 Winther H=C3=B8jgaard wrote:
> > > > > =


> > > > > > If I set smt=3Doff and try to configure cpupools with credit(1=
) as if
> > > > > > all cores are available, I get the following crash.
> > > > > > =


> > > > > > The crash happens when I try to use xl cpupool-add-cpu on the =
disabled
> > > > > > HT sibling cores.
> > > > > > =


> > > > > > Hyper-threading is enabled in the firmware, and only disabled =
with
> > > > > > smt=3Doff.
> > > > > =


> > > > > CC'ing some maintainers.
> > > > > =


> > > > > I expect this will also explode when a CPU is runtime offlined w=
ith
> > > > > `xen-hptool cpu-offline` and then added to a cpupool.
> > > > > =


> > > > > Interestingly, the crash is mov (%rdx,%rax,1),%r13, and I think =
that's
> > > > > the percpu posion value in %rdx.
> > > > > =


> > > > > I expect cpupools want to reject parked/offline CPUs.
> > > > =


> > > > While the only explicit check there is
> > > > =


> > > > if ( cpu >=3D nr_cpu_ids )
> > > > goto addcpu_out;
> > > > =


> > > > I would have expected this
> > > > =


> > > > if ( !cpumask_subset(cpus, &cpupool_free_cpus) ||
> > > > cpumask_intersects(cpus, &cpupool_locked_cpus) )
> > > > goto addcpu_out;
> > > > =


> > > > to deal with the situation, as parked/offline CPUs shouldn't be "f=
ree".
> > > > J=C3=BCrgen?
> > > =


> > > The problem is the call of sched_get_opt_cpumask() to need the percp=
u area
> > > of the cpu in question.
> > =


> > That was my first thought, too, but then I saw cpupool_assign_cpu_lock=
ed() on
> > the call trace, which is called only afterwards. Plus sched_get_opt_cp=
umask()
> > needs the per-CPU area only when granularity was switched from its def=
ault of
> > SCHED_GRAN_cpu afaics.
> =


> =


> Oh right you are.
> =


> My patch is needed for larger granularities, though.
> =


> I've tried to hit the same problem as Ren=C3=A9, but everything works as=
 intended (no
> crash, but adding an offline cpu is being rejected).
> =


> Ren=C3=A9, could you please tell us what exactly you've been doing? This=
 would be:
> =


> - Xen command line parameters
> - Output of "xl info"
> - Output of "xl cpupool-list" before starting to manipulate cpupools
> - Output of "xl cpupool-list -c" before starting to manipulate cpupools
> - Cpupool config file used to create new cpupool
> - xl commands you've used to setup the cpupool and adding the cpu(s) to =
it
> =


> Thanks,
> =


> =


> Juergen
-----------------------d45fa8f498a911e229a632c0d0a073a7
Content-Type: application/pgp-keys; filename="publickey - renewin@proton.me - 0x43C32E54.asc"; name="publickey - renewin@proton.me - 0x43C32E54.asc"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="publickey - renewin@proton.me - 0x43C32E54.asc"; name="publickey - renewin@proton.me - 0x43C32E54.asc"

LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgp4ak1FWWxmZy9oWUpLd1lCQkFI
YVJ3OEJBUWRBOWhrZnlRblEzVlVETWZsT3FPZU1sc1o0N252eml1cmoKbXJnZTFCd040d3pOSlhK
bGJtVjNhVzVBY0hKdmRHOXVMbTFsSUR4eVpXNWxkMmx1UUhCeWIzUnZiaTV0ClpUN0Nqd1FRRmdv
QUlBVUNZbGZnL2dZTENRY0lBd0lFRlFnS0FnUVdBZ0VBQWhrQkFoc0RBaDRCQUNFSgpFQXRxSisz
WXh1S1hGaUVFUThNdVZIeDNmREZGcnZqSEMyb243ZGpHNHBkYUtBRC9WMnNlNk5lTGJ0VkkKVzVB
ck1XRHdJN21xZ0dNSDgrQ3ZCelh1RUE5Y2xrOEEvUkNLbjdzRE1HZVJzWVNENWNFRXdidVRLK01B
CkZ4T2owaEZGOS9PNHRxQUd6amdFWWxmZy9oSUtLd1lCQkFHWFZRRUZBUUVIUUlmc3ozdGNhVElk
MWp2YQpZVG12NURmdUVRVGY4V2s3RmtGVG5LNHltMjRJQXdFSUI4SjRCQmdXQ0FBSkJRSmlWK0Qr
QWhzTUFDRUoKRUF0cUorM1l4dUtYRmlFRVE4TXVWSHgzZkRGRnJ2akhDMm9uN2RqRzRwZDZpUUQr
TzVrR0w2ZjhndktJCmlpSStidS94NkFacytvNGZERmVlc052bS9TWkFRZUVBLzBxbEw1RHR2ckJD
TjY5b2xZMERlRjQ1d0R0bQpEbDlIZ2dtc09sdXRTYzRCCj1xUFNVCi0tLS0tRU5EIFBHUCBQVUJM
SUMgS0VZIEJMT0NLLS0tLS0K
-----------------------d45fa8f498a911e229a632c0d0a073a7--

--------421f8b95fe0fbd45dd94a5daaf07c5f81dc893bddac33491d512ccb044bbed43
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: ProtonMail

wnUEARYKACcFgmVuDtoJkAtqJ+3YxuKXFiEEQ8MuVHx3fDFFrvjHC2on7djG
4pcAAJywAP9doH5ldQrU5Lc+C8yuJkUm/SWJnPqSvTo+APaCtDspWgD9G7P+
fe2G/pav0druKMzhG8LiaOwDnC3UHhtt5czlzgU=
=GkUX
-----END PGP SIGNATURE-----


--------421f8b95fe0fbd45dd94a5daaf07c5f81dc893bddac33491d512ccb044bbed43--



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 17:46:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 17:46:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647265.1010209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAD1k-0001fb-Rn; Mon, 04 Dec 2023 17:46:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647265.1010209; Mon, 04 Dec 2023 17:46:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAD1k-0001fU-PG; Mon, 04 Dec 2023 17:46:40 +0000
Received: by outflank-mailman (input) for mailman id 647265;
 Mon, 04 Dec 2023 17:46:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uft2=HP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAD1j-0001eC-JY
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 17:46:39 +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 1262964b-92cd-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 18:46:37 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c032962c5so29031515e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 09:46:37 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 r20-20020a05600c35d400b0040c05c768afsm8588814wmq.9.2023.12.04.09.46.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Dec 2023 09:46:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1262964b-92cd-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701711996; x=1702316796; 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=l0SOcOhAedmGbSblAZ4sqnCPC/P04NuInPl8PQK3Mjs=;
        b=Nrp/0xh4otlSL2myjDO9+1R2xA+aZ8iOZaA8UwJqerRe3P1bZQ1La6o0EIL+YatZha
         LKHHj+leAjyuYiFM5mxHLz2gETSrifGUXpllOsiXN+JW/RHGkhg2WXrwmvENWbVKc4p8
         1QlzJ/QjbM/ssyBmjzrHORUsK6XpF/e3baEOg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701711996; x=1702316796;
        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=l0SOcOhAedmGbSblAZ4sqnCPC/P04NuInPl8PQK3Mjs=;
        b=xMZ6v00B2XZpwdmW03IB7oGzA9nQ+eRNbLlngcpfHCXEp6uFHK5oh4B80eB4t9B8Y8
         6L4cuaGIFDac46dsU6LzB2OS2t03b0wSXjjp0wTMil60WW0fJ+pqkHbNjrDSw9mFpUvX
         Fd9rZxvU1n/nmihQqlmKy5N7s/kJwv26mBHdnm8NU4MPLEQNwlHTHpH5E/+D55uxNY95
         TQBSvJ58XM46nXh31IaRr6kiFdqgFmolIC0SvL81aLSLIUdieXsHILS8aksa//xXkUFf
         SJvfqFGXZA8O1TpG4iY49gtcdv77Y2mPaFQI26MhhSvsCEl25QWokFIrGdVt7kK/IoEj
         rGLw==
X-Gm-Message-State: AOJu0YxiuW5bjgmQE3lm2FKpChovXq2YuM38OvKxCIEvmLz0+sP7J+Xe
	zcZ+TYvY4Y/OS8q5tKXHBb91XQ==
X-Google-Smtp-Source: AGHT+IE+ElWLnSJSKr1KibRJlCfKHM5W7Q20K3f6H90Tmvo9Jxtp7HCioElHE4eqMgLhgMwqNtxV7Q==
X-Received: by 2002:a7b:c396:0:b0:40c:f1e:5ed9 with SMTP id s22-20020a7bc396000000b0040c0f1e5ed9mr294923wmj.217.1701711996415;
        Mon, 04 Dec 2023 09:46:36 -0800 (PST)
Date: Mon, 4 Dec 2023 18:46:35 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 4/6] x86/vPIT: check values loaded from state save
 record
Message-ID: <ZW4Qe1H-v0dqu2YS@macbook>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <cf1ff132-878a-4cb6-8eae-1995a78576a0@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <cf1ff132-878a-4cb6-8eae-1995a78576a0@suse.com>

On Tue, Nov 28, 2023 at 11:35:18AM +0100, Jan Beulich wrote:
> In particular pit_latch_status() and speaker_ioport_read() perform
> calculations which assume in-bounds values. Several of the state save
> record fields can hold wider ranges, though. Refuse to load values which
> cannot result from normal operation, except mode, the init state of
> which (see also below) cannot otherwise be reached.
> 
> Note that ->gate should only be possible to be zero for channel 2;
> enforce that as well.
> 
> Adjust pit_reset()'s writing of ->mode as well, to not unduly affect
> the value pit_latch_status() may calculate. The chosen mode of 7 is
> still one which cannot be established by writing the control word. Note
> that with or without this adjustment effectively all switch() statements
> using mode as the control expression aren't quite right when the PIT is
> still in that init state; there is an apparent assumption that before
> these can sensibly be invoked, the guest would init the PIT (i.e. in
> particular set the mode).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

> ---
> For mode we could refuse to load values in the [0x08,0xfe] range; I'm

I'm missing something, why should we accept a 0xff mode?  Don't modes
go up to 7 at most (0b111, mode 3).

> not certain that's going to be overly helpful.

I don't have a strong opinion.  Could be done in a separate change
anyway.  I guess since we are at it it might be worth to check for as
much as we can, even if it's not going to affect the logic.

> For count I was considering to clip the saved value to 16 bits (i.e. to
> convert the internally used 0x10000 back to the architectural 0x0000),
> but pit_save() doesn't easily lend itself to such a "fixup". If desired
> perhaps better a separate change anyway.

I would prefer a separate change iff you want to implement this.

> ---
> v3: Slightly adjust two comments. Re-base over rename in earlier patch.
> v2: Introduce separate checking function; switch to refusing to load
>     bogus values. Re-base.
> 
> --- a/xen/arch/x86/emul-i8254.c
> +++ b/xen/arch/x86/emul-i8254.c
> @@ -47,6 +47,7 @@
>  #define RW_STATE_MSB 2
>  #define RW_STATE_WORD0 3
>  #define RW_STATE_WORD1 4
> +#define RW_STATE_NUM 5
>  
>  #define get_guest_time(v) \
>     (is_hvm_vcpu(v) ? hvm_get_guest_time(v) : (u64)get_s_time())
> @@ -427,6 +428,47 @@ static int cf_check pit_save(struct vcpu
>      return rc;
>  }
>  
> +static int cf_check pit_check(const struct domain *d, hvm_domain_context_t *h)
> +{
> +    const struct hvm_hw_pit *hw;
> +    unsigned int i;
> +
> +    if ( !has_vpit(d) )
> +        return -ENODEV;
> +
> +    hw = hvm_get_entry(PIT, h);
> +    if ( !hw )
> +        return -ENODATA;
> +
> +    /*
> +     * Check to-be-loaded values are within valid range, for them to represent
> +     * actually reachable state.  Uses of some of the values elsewhere assume
> +     * this is the case.  Note that the channels' mode fields aren't checked;
> +     * Xen prior to 4.19 might save them as 0xff.

Oh, OK, so that explains the weird 0xff mode.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 18:23:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 18:23:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647272.1010219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rADbE-0003Ti-LU; Mon, 04 Dec 2023 18:23:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647272.1010219; Mon, 04 Dec 2023 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 1rADbE-0003Tb-Il; Mon, 04 Dec 2023 18:23:20 +0000
Received: by outflank-mailman (input) for mailman id 647272;
 Mon, 04 Dec 2023 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=wjtD=HP=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rADbD-0003TC-Oq
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 18:23:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 326ebb05-92d2-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 19:23:18 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id B836C4EE0C8A;
 Mon,  4 Dec 2023 19:23:16 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 326ebb05-92d2-11ee-98e5-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH] docs/misra: deviate deliberately unused labels
Date: Mon,  4 Dec 2023 19:23:11 +0100
Message-Id: <669f63d14926f6335a081711de5a34ef04c61717.1701714146.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The labels marked with __maybe_unused are either used only
in certain build configurations or deliberately unused.
See the justification in docs/misra/deviations.rst.

No functional changes.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 4 ++++
 docs/misra/deviations.rst                        | 8 ++++++++
 2 files changed, 12 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index c9e3a90801aa..f18ed6345e67 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -37,6 +37,10 @@ removed by the compiler, the resulting slowdown is negligible."
 -config=MC3R1.R2.2,reports+={disapplied,"any()"}
 -doc_end
 
+-doc_begin="Some labels are unused in certain build configurations, or are deliberately marked as unused, so that the compiler is entitled to remove them."
+-config=MC3R1.R2.6,reports+={deliberate, "any_area(text(^.*__maybe_unused.*$))"}
+-doc_end
+
 #
 # Series 3.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 160513b997ae..9979ddae7c7d 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -73,6 +73,14 @@ Deviations related to MISRA C:2012 Rules:
        resulting slowdown is negligible.
      - Project-wide deviation, tagged as `disapplied` for ECLAIR.
 
+   * - R2.6
+     - Labels deliberately marked as unused trough the pseudo-attribute
+       `__maybe_unused` are either the result of them not being in certain build
+       configurations, or as a deliberate practice (e.g., `unimplemented_insn`).
+       Given that the compiler is then entitled to remove them, the presence of
+       such labels poses no risks.
+     - Tagged as `deliberate` for ECLAIR.
+
    * - R3.1
      - Comments starting with '/\*' and containing hyperlinks are safe as they
        are not instances of commented-out code.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 19:05:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 19:05:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647276.1010229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAEFj-0003l5-OW; Mon, 04 Dec 2023 19:05:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647276.1010229; Mon, 04 Dec 2023 19:05: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 1rAEFj-0003ky-LM; Mon, 04 Dec 2023 19:05:11 +0000
Received: by outflank-mailman (input) for mailman id 647276;
 Mon, 04 Dec 2023 19:05:10 +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 1rAEFi-0003ks-P9
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 19:05:10 +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 1rAEFg-0001AX-1V; Mon, 04 Dec 2023 19:05:08 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=[192.168.23.72]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAEFf-0001LJ-Qx; Mon, 04 Dec 2023 19:05: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=xcIGVCT+PzjA+edF2JFCki0/42EB50E0k+Jsd503egM=; b=LXxMqiztfjHqxL2lYFFsapxgr5
	+Fy6jPXqH2XQ4ntOvxEP443QFgMhJlSSHd3zfMh6htWxaH51K0o/Ij4UIxDTMB20GaVEALuHh5+RN
	KjSD5mqa6UAGzgLD3J1rocAXgvK56CrShrjvwdjyTVi39WsEdkOsc024BbLr56MRjLAk=;
Message-ID: <f40d6838-9a82-48cd-9a6b-a298c281f8cf@xen.org>
Date: Mon, 4 Dec 2023 19:05:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <20231201184728.31766-1-julien@xen.org>
 <0e20592b-9800-4b9d-9f2f-a996f9ac00bd@xen.org>
 <cfaf75cf-f658-4df0-b654-f1c3af279b15@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <cfaf75cf-f658-4df0-b654-f1c3af279b15@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 04/12/2023 09:39, Jan Beulich wrote:
> On 01.12.2023 19:49, Julien Grall wrote:
>> +Naming convention
>> +-----------------
>> +
>> +'-' should be used to separate words in commandline options and filenames.
>> +E.g. timer-works.
>> +
>> +Note that some of the options and filenames are using '_'. This is now
>> +deprecated.
> 
> I certainly appreciate and second the intent, yet I'm afraid "Naming convention"
> in the doc would (to me at least) first and foremost talk about identifiers used
> in the various source files. If this really is to be about only file names and
> command line options, then I think the heading would better say so. Alternatively
> a clear indication would want adding that text about identifiers is supposed to
> be here, but is yet to be written. (The text itself, for the intended purpose, > reads fine to me, fwiw.)

Right now, I don't have any plan to document the naming convention for 
identifiers. In fact, I don't know if we have one...

So how about renaming the section to:

"Naming convention for files and comand line options"

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 19:09:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 19:09:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647279.1010239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAEJp-00057k-8d; Mon, 04 Dec 2023 19:09:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647279.1010239; Mon, 04 Dec 2023 19:09:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAEJp-00057d-5j; Mon, 04 Dec 2023 19:09:25 +0000
Received: by outflank-mailman (input) for mailman id 647279;
 Mon, 04 Dec 2023 19: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=y+Gv=HP=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rAEJn-00057T-LZ
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 19:09:23 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060d.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a157657d-92d8-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 20:09:22 +0100 (CET)
Received: from BL1PR13CA0208.namprd13.prod.outlook.com (2603:10b6:208:2be::33)
 by IA1PR12MB8538.namprd12.prod.outlook.com (2603:10b6:208:455::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 19:09:17 +0000
Received: from MN1PEPF0000ECD8.namprd02.prod.outlook.com
 (2603:10b6:208:2be:cafe::44) by BL1PR13CA0208.outlook.office365.com
 (2603:10b6:208:2be::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.22 via Frontend
 Transport; Mon, 4 Dec 2023 19:09:17 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MN1PEPF0000ECD8.mail.protection.outlook.com (10.167.242.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 19:09:17 +0000
Received: from SATLEXMB08.amd.com (10.181.40.132) 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.34; Mon, 4 Dec
 2023 13:09:17 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB08.amd.com
 (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Mon, 4 Dec
 2023 11:09:16 -0800
Received: from [172.27.137.28] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 13:09:14 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a157657d-92d8-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hmtQAz0Vw7QkAaGXNyFS9waieVgKAmrH+1UnEn553vIaY0cFTmK6XHPE4pkdFVBJgevj85FwA3/zOnypv36vkBEiQ803bZ+CNeJ9I/94zzqgG/kkLc89yAdUNxBeB3VCbMJxFQrs/DCUPrm47hoHvsWOz0UcAgSKPIeiMrRgqd0KjT8KLrnKhC29XU1kFQKJ7njA4BOmFVsOMeb3Y7wXQqOdfXXK+C5A6pm3ZS46e4EX4Pm7Zlbr28je9jq/vpXI6kE7rljZeOlo8PiJ/KNzC6N1iXTfxCy8WTRENUSM/fohWJkAVXEjUnikXJcPVjqLilecdZdLxQKJPRnUU0eBNA==
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=AK6IDfB+uHzESfBkkm0rwzbiYaOUfaR6S9LDe9NxFCI=;
 b=E09jxR0MPHmMQgJZWhgDFn1ueuMChHkzC0HVNTmFB2RgziszTY1cxVoOElqLyzw83vKDKnybMSnock47Vkdy0gZi4uwGS/2qzErMlmM+n8rW+agWww/dDhw8IflJsNJVbODOLw8HzKVWcATbm0lVQwMFKCXOvcgow9PSukRIvBtgt4Nw3aM2wdVCRjyxhtl1wBypcRswieZ8yLWYrsvpblj7Dl5KFVpQMQaXvEEhhUqdA8YKcKFiypmr9Fif4U3x2IYsh/HrKTFO5GN9IMBmRH2eViXcBhGnRUlJkngWYHarjGFY+bfRhl4/sMqS1Vkd3NdaIyScvfo/n+X4/xWowQ==
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=AK6IDfB+uHzESfBkkm0rwzbiYaOUfaR6S9LDe9NxFCI=;
 b=PLg6bh7h9TxQV9Gn6H/yM+aZH3+Ke4ZB9AonRdCBwNJfs+WQgfXsQ+S2F4RjCd30pcesS0v+2jGdEcgf0BOMBKO75eVasDAztPjqgZMMvjvaN4j2SJwr3+Jyvq+fhjiVphdDPtuvqPR1Pgu9SKlc+GaU3XJMDkPOh3AC96dp2jg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <2d9b98f3-0c7d-4467-8354-5644623429dc@amd.com>
Date: Mon, 4 Dec 2023 14:09:14 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
 <ZW2wuqXW-DneUVi0@macbook>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <ZW2wuqXW-DneUVi0@macbook>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD8:EE_|IA1PR12MB8538:EE_
X-MS-Office365-Filtering-Correlation-Id: 6fb4728b-90ab-4f31-7392-08dbf4fc8343
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	WWVmWS2OTwVt1UbbPjo6tMeO8cqHP16BW2d1mmF4BPXDU1zmJ4zRMBQ7l6OLjZIgG5bNf54zjNKuKvPqOjn8CkLfAfM1ljtHi/j2fmt+UNPo/STJKN0BAXi1KXSiJKKHsCeNEGoaskSZVqocG/7ixR05kZQXu/EcHv4iOmJZlnbzoKuKQw6+x5KiJEYuu1bFsvILb/esFWsYMPHetAVUN1U1nXIqwAvMCR7wx678ESh1AZW9euxoWRsr4MJB6MInev6SZFxMWdj3YiXBGpQj4QbH8KTA5xCxFdb0tFdLAwEEAyMos6OZP8y6Aa+ZfXXJeDS5qNW88fQQKlwtDlG2x0G2cZrxHsFXhaQJE2lCTeyBu97/vR+NNHM9tzghNgfHNN28E49/9Kq0Md1sNAHkT9ECw87hKELxkVKZKhYSa6FqzJszBC3RtYCFQuVljkTFwR3jefDJE9QszuxbEf5wTLI2rGD1ESHqU8ycAXf8SXnGTap3dM9t6crWgMx/Pab5sknpAHFK32FieYvnTntwvYHDTEcBMfJuwI72W//oiuDLwNkNLYnBSDodCcFpq2jV9F//HFDkbYI1Dw2DGRw87cpM8ojrCsb0Pva7wwmKng5//n0Htc495suKZmZhtqYJMCzHhYwpZlgJLwWYWiRF15OQ1Qlt4UIzkdNUZjU3L3d2m3xu3l6CkM7V3TYAqhztkEuQRWoYr8NbFgCu3GMEW8+nHGjCmxbrCFItQgBa1f0QqISRfhhvmWewhktecaXOBdzi7q3ztRq5HoDqLAuYg1kdicWeJvNEPptZlv5VgVIHlQ+YEj9Ks7x37LRr1DDCHzJoHRmTQKQL1hJ+6Njec8ekuoja+Tk6x49mSw1CSmI=
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:(13230031)(4636009)(396003)(136003)(346002)(39860400002)(376002)(230173577357003)(230922051799003)(230273577357003)(1800799012)(82310400011)(186009)(64100799003)(451199024)(40470700004)(36840700001)(46966006)(31696002)(36756003)(31686004)(40480700001)(53546011)(2616005)(2906002)(478600001)(86362001)(5660300002)(4326008)(54906003)(316002)(16576012)(8936002)(8676002)(110136005)(47076005)(336012)(426003)(83380400001)(40460700003)(26005)(70586007)(36860700001)(70206006)(7416002)(44832011)(81166007)(82740400003)(41300700001)(356005)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 19:09:17.3760
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6fb4728b-90ab-4f31-7392-08dbf4fc8343
X-MS-Exchange-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:
	MN1PEPF0000ECD8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8538

On 12/4/23 05:58, Roger Pau MonnÃ© wrote:
> On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
>> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
>>> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
>>>> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
>>>>          bus = PCI_BUS(machine_sbdf);
>>>>          devfn = PCI_DEVFN(machine_sbdf);
>>>>  
>>>> +        if ( needs_vpci(d) && !has_vpci(d) )
>>>> +        {
>>>> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
>>>> +                   &PCI_SBDF(seg, bus, devfn), d);
>>>> +            ret = -EPERM;
>>>> +            break;
>>>
>>> I think this is likely too restrictive going forward.  The current
>>> approach is indeed to enable vPCI on a per-domain basis because that's
>>> how PVH dom0 uses it, due to being unable to use ioreq servers.
>>>
>>> If we start to expose vPCI suport to guests the interface should be on
>>> a per-device basis, so that vPCI could be enabled for some devices,
>>> while others could still be handled by ioreq servers.
>>>
>>> We might want to add a new flag to xen_domctl_assign_device (used by
>>> XEN_DOMCTL_assign_device) in order to signal whether the device will
>>> use vPCI.
>>
>> Actually I don't think this is a good idea. I am all for flexibility but
>> supporting multiple different configurations comes at an extra cost for
>> both maintainers and contributors. I think we should try to reduce the
>> amount of configurations we support rather than increasing them
>> (especially on x86 where we have PV, PVH, HVM).
> 
> I think it's perfectly fine to initially require a domain to have all
> its devices either passed through using vPCI or ireqs, but the
> interface IMO should allow for such differentiation in the future.
> That's why I think introducing a domain wide vPCI flag might not be
> the best option going forward.
> 
> It would be perfectly fine for XEN_DOMCTL_assign_device to set a
> domain wide vPCI flag, iow:
> 
> if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
> {
>     if ( has_arch_pdevs(d) )
>     {
>         printk("All passthrough devices must use the same backend\n");
>         return -EINVAL;
>     }
> 
>     /* Set vPCI domain flag */

There is a vPCI initializer that would need to be called too (on Arm, to set up mmio handlers). It is normally called earlier during arch_domain_create(), but it looks to be okay to call here as long as it is done before the guest boots.

    d->options |= XEN_DOMCTL_CDF_vpci;
    domain_vpci_init(d);

Perhaps the flag should be set inside domain_vpci_init(d).

> }
> 
> We have already agreed that we want to aim for a setup where ioreqs
> and vPCI could be used for the same domain, but I guess you assumed
> that ioreqs would be used for emulated devices exclusively and vPCI
> for passthrough devices?
> 
> Overall if we agree that ioreqs and vPCI should co-exist for a domain,
> I'm not sure there's much reason to limit ioreqs to only handle
> emulated devices, seems like an arbitrary limitation.
> 
>> I don't think we should enable IOREQ servers to handle PCI passthrough
>> for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
>> Passthrough can be handled by vPCI just fine. I think this should be a
>> good anti-feature to have (a goal to explicitly not add this feature) to
>> reduce complexity. Unless you see a specific usecase to add support for
>> it?
> 
> There are passthrough devices (GPUs) that might require some extra
> mediation on dom0 (like the Intel GVT-g thing) that would force the
> usage of ioreqs to passthrough.
> 
> It's important that the interfaces we introduce are correct IMO,
> because that ends up reflecting on the configuration options that we
> expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
> XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
> gets placed there will ultimately influence how the option gets
> exposed in xl/libxl, and the interface there is relevant to keep
> stable for end user sanity.
> 
> Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 19:17:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 19:17:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647284.1010250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAERT-0006oo-70; Mon, 04 Dec 2023 19:17:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647284.1010250; Mon, 04 Dec 2023 19: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 1rAERT-0006oh-4D; Mon, 04 Dec 2023 19:17:19 +0000
Received: by outflank-mailman (input) for mailman id 647284;
 Mon, 04 Dec 2023 19:17: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=JJkP=HP=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rAERR-0006ob-He
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 19:17:17 +0000
Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com
 [2607:f8b0:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bbf7a812-92d9-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 20:17:16 +0100 (CET)
Received: by mail-pg1-x530.google.com with SMTP id
 41be03b00d2f7-5c66e7eafabso1598207a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 11:17:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bbf7a812-92d9-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701717435; x=1702322235; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:in-reply-to:references:mime-version
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xu1dydmfdjg2ZqHXnRrl+/wMsmtepwWqFi5Gg8jzvBw=;
        b=hX2wnblQzFOlusXGJtcotFJmo1Lb1t391Pa0RZE1X8XFwkwgjeynSnxlCaLSEuKQDD
         LT94hjf8QfvZFwV+8YlhK7ATQIwyFGlSg06uSAnqni217P93vd0n/eZKGTvMZAAQ0JEW
         jpQORIQQqzTOkhth1SnwdgfcTyC+xWudYVbyNKrY4iPHqvFFO9IqVYYy+K71ZBVfAT4b
         ud7N5Ju37BQ7+r/eEWIFOWV3fJHlsPdrcbOs8gzy7lYrj2lw+3DtVzTDeoC7ApinKE4t
         L8A71PufgneRs/binp/L3wm4jjJTpmkAVeqe9qQids8bs3CP9w+gTMhsph1wfAb0Q4bD
         ddgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701717435; x=1702322235;
        h=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=xu1dydmfdjg2ZqHXnRrl+/wMsmtepwWqFi5Gg8jzvBw=;
        b=nacz+G+l1Wy4mQCwcgH0KQx3EZqP5CRKU1jSae28Ue3DtCvl/QdAFGiTpIi/aG6BjY
         iUqxKvo/Psj2nQqgEvJbPWfP9h2g8DracWXUdlkIJqjE9clKXA7n+6uis6kQveuZfV7/
         3QTGx0k+6xVsAPWdT8LrtLcmSNtyC28qfp1W/5jVRGGl2JOfFb2Ara0kmPp1d5OBmBU3
         4+UPWpv7T+EzmtGb9C1DGGZaCqxrmTKRz1A7jUuqW6iUilma3aXV/WAGmsYcgJqNssAl
         NgGHO3nD6XOWgWb5pkuVThlM+UfzKc+gZiN2DHrUBzdDDr1F8CDmQHy8ZdiitTsOgpC3
         Da6g==
X-Gm-Message-State: AOJu0Yxo6sfHZ/iXI2DY1ClpzjtLE/3rm4ShsXkdugfOAPYr+FFoRQOX
	6tJk2Psh6KUjcH1lkx2OWlrAsC40WFjVFsqixtWbM1gA
X-Google-Smtp-Source: AGHT+IFCM0M7m9aM5X139KyNKfphwm8qLfg2xClXpoq1RsGvOgg+C10YW4Bk4r0Si/EZNCKQoj6DejJU8l/3Q4T9ask=
X-Received: by 2002:a17:90a:a016:b0:286:6cc0:cac6 with SMTP id
 q22-20020a17090aa01600b002866cc0cac6mr50502pjp.61.1701717434391; Mon, 04 Dec
 2023 11:17:14 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
In-Reply-To: <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Mon, 4 Dec 2023 20:17:02 +0100
Message-ID: <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary="0000000000002f8487060bb3f772"

--0000000000002f8487060bb3f772
Content-Type: multipart/alternative; boundary="0000000000002f8486060bb3f770"

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

Le lun. 4 d=C3=A9c. 2023 =C3=A0 10:06, Jan Beulich <jbeulich@suse.com> a =
=C3=A9crit :

> On 03.12.2023 10:56, S=C3=A9bastien Chaumat wrote:
> > Hello,
> >
> >  Trying to get the Framework Laptop 13 AMD to work with QubesOS I hit t=
he
> > following Xen issue :
> >
> > Xen version : 4.17.2
>
+ tested with 4.18.0


> > Kernel : 6.5.12-300.fc39.x86_64
> > CPU  model name : AMD Ryzen 7 7840U w/ Radeon  780M Graphics
>


> > [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
>
> Possibly releated to this. You'll want to obtain a full-verbosity
> hypervisor
> log with a debug hypervisor, as there may be hypervisor debug messages
> telling us what Xen may not like.
>

xl dmesg with some traces attached.

--0000000000002f8486060bb3f770
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">Le=C2=A0lun. 4 d=C3=A9c. 2023 =C3=A0=
=C2=A010:06, Jan Beulich &lt;<a href=3D"mailto:jbeulich@suse.com" target=3D=
"_blank">jbeulich@suse.com</a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px so=
lid rgb(204,204,204);padding-left:1ex">On 03.12.2023 10:56, S=C3=A9bastien =
Chaumat wrote:<br>
&gt; Hello,<br>
&gt; <br>
&gt;=C2=A0 Trying to get the Framework Laptop 13 AMD to work with QubesOS I=
 hit the<br>
&gt; following Xen issue :<br>
&gt; <br>
&gt; Xen version : 4.17.2<br></blockquote><div>+ tested with 4.18.0</div><d=
iv>=C2=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; Kernel : 6.5.12-300.fc39.x86_64<br>
&gt; CPU=C2=A0 model name : AMD Ryzen 7 7840U w/ Radeon=C2=A0 780M Graphics=
<br></blockquote><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">
&gt; [=C2=A0 =C2=A0 2.464598] amd_gpio AMDI0030:00: failed to enable wake-u=
p interrupt<br>
<br>
Possibly releated to this. You&#39;ll want to obtain a full-verbosity hyper=
visor<br>
log with a debug hypervisor, as there may be hypervisor debug messages<br>
telling us what Xen may not like.<br></blockquote><div>=C2=A0</div><div>xl =
dmesg with some traces attached.</div><div><br></div></div></div>

--0000000000002f8486060bb3f770--
--0000000000002f8487060bb3f772
Content-Type: application/gzip; name="xl-dmesg-4.18.txt.gz"
Content-Disposition: attachment; filename="xl-dmesg-4.18.txt.gz"
Content-Transfer-Encoding: base64
Content-ID: <f_lprajrnc0>
X-Attachment-Id: f_lprajrnc0

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
--0000000000002f8487060bb3f772--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 19:24:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 19:24:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647287.1010260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAEYB-0000YG-TQ; Mon, 04 Dec 2023 19:24:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647287.1010260; Mon, 04 Dec 2023 19:24: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 1rAEYB-0000Y9-Qn; Mon, 04 Dec 2023 19:24:15 +0000
Received: by outflank-mailman (input) for mailman id 647287;
 Mon, 04 Dec 2023 19:24:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAEYB-0000Y3-H4
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 19:24:15 +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 1rAEYA-0001WE-QO; Mon, 04 Dec 2023 19:24:14 +0000
Received: from 54-240-197-230.amazon.com ([54.240.197.230]
 helo=[192.168.23.72]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAEYA-00027p-Kb; Mon, 04 Dec 2023 19:24: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=laiipq6V+pqUiURzB1RVLNgF5DKpwY/uwkGOl+Bc+CQ=; b=bCNnj/yVVY0r7gWHaFh2jvYC/o
	hydUxU6uozcBwtcAqit8gF7oe4/zDwxeebafILvqJBY4k+JmVw2hpbzH4zOcgzXE/qGjwxBJDZ05b
	f2KPkbzkRw+1YYPpimUJbap9JwBqSCwubXTN1Z4ZKFMskP2c1aK7yvwC76zsEtEgPISU=;
Message-ID: <232c2496-77d6-4e37-a400-dbefd135ef3c@xen.org>
Date: Mon, 4 Dec 2023 19:24:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH] xen/arm: ffa: reclaim shared memory on guest
 destroy
Content-Language: en-GB
To: Jens Wiklander <jens.wiklander@linaro.org>, xen-devel@lists.xenproject.org
Cc: patches@linaro.org, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20231204075552.3585875-1-jens.wiklander@linaro.org>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231204075552.3585875-1-jens.wiklander@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jens,

On 04/12/2023 07:55, Jens Wiklander wrote:
> When an FF-A enabled guest is destroyed it may leave behind memory
> shared with SPs. This memory must be reclaimed before it's reused or an
> SP may make changes to memory used by a new unrelated guest. So when the
> domain is teared down add FF-A requests to reclaim all remaining shared
> memory.
> 
> SPs in the secure world are notified using VM_DESTROYED that a guest has
> been destroyed. An SP is supposed to relinquish all shared memory to allow
> reclaiming the memory. The relinquish operation may need to be delayed if
> the shared memory is for instance part of a DMA operation.
> 
> If the FF-A memory reclaim request fails, return -ERESTART to retry
> again. This will effectively block the destruction of the guest until
> all memory has been reclaimed.
> 
> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
> ---
> Hi,
> 
> This patch is a bit crude, but gets the job done. In a well designed
> system this might even be good enough since the SP or the secure world
> will let the memory be reclaimed and we can move on. But, if for some
> reason reclaiming the memory is refused it must not be possible to reuse
> the memory.

IIUC, we are trying to harden against a buggy SP. Is that correct?

> 
> These shared memory ranges are typically quite small compared to the
> total memory usage of a guest so it would be an improvement if only
> refused shared memory ranges where set aside from future reuse while the
> guest was destroyed and other resources made available for reuse. This
> could be done by for instance assign the refused shared memory ranges
> to a dummy VM like DOMID_IO.

I like the idea to use a dummy VM, but I don't think DOMID_IO is right. 
Once teardown has completed, the domain will stay around until the last 
reference on all pages are dropped. At this point, the amount of memory 
left-over is minimum (this is mostly bookeeping in Xen).

 From the userland PoV, the domain will still show-up in the list but 
tools like "xl list" will show "(null)". They are called zombie domains.

So I would consider to keep the same domain around. The advantage is you 
can call "xl destroy" again to retry the operation.

> 
> Thanks,
> Jens
> ---
>   xen/arch/arm/tee/ffa.c | 36 ++++++++++++++++++++++++++++++++++++
>   1 file changed, 36 insertions(+)
> 
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 183528d13388..9c596462a8a2 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -1539,6 +1539,7 @@ static bool is_in_subscr_list(const uint16_t *subscr, uint16_t start,
>   static int ffa_domain_teardown(struct domain *d)
>   {
>       struct ffa_ctx *ctx = d->arch.tee;
> +    struct ffa_shm_mem *shm, *tmp;
>       unsigned int n;
>       int32_t res;
>   
> @@ -1564,10 +1565,45 @@ static int ffa_domain_teardown(struct domain *d)
>               printk(XENLOG_ERR "ffa: Failed to report destruction of vm_id %u to  %u: res %d\n",
>                      get_vm_id(d), subscr_vm_destroyed[n], res);
>       }
> +    /*
> +     * If this function is called again due to -ERESTART below, make sure
> +     * not to send the FFA_MSG_SEND_VM_DESTROYED's.
> +     */
> +    subscr_vm_destroyed_count = 0;

AFAICT, this variable is global. So wouldn't you effectively break other 
domain if let say the unmapping error is temporary?

>   
>       if ( ctx->rx )
>           rxtx_unmap(ctx);
>   
> +
> +    list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
> +    {
> +        register_t handle_hi;
> +        register_t handle_lo;
> +
> +        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
> +        res = ffa_mem_reclaim(handle_lo, handle_hi, 0);

Is this call expensive? If so, we may need to handle continuation here.

> +        if ( res )
> +        {
> +            printk(XENLOG_INFO, "ffa: Failed to reclaim handle %#lx : %d\n",
> +                   shm->handle, res);

I think you want to use XENLOG_G_INFO to use the guest ratelimit. Also, 
I would suggest to print the domain ID in the logs (see '%pd').


> +        }
> +        else
> +        {
> +            printk(XENLOG_DEBUG, "ffa: Reclaimed handle %#lx\n", shm->handle);

Same here. You want to use XENLOG_G_DEBUG and print the domain ID.

> +            ctx->shm_count--;
> +            list_del(&shm->list);
> +        }
> +    }

NIT: New line here please for clarity.

> +    if ( !list_empty(&ctx->shm_list) )
> +    {
> +        printk(XENLOG_INFO, "ffa: Remaining unclaimed handles, retrying\n");

Same as the other printks.

> +        /*
> +         * TODO: add a timeout where we either panic or let the guest be
> +         * fully destroyed.
> +         */
Timeout with proper handling would be a solution. I am not sure about 
panic-ing. Do you think the TEE would be in a bad state if we can't 
release memory?

> +        return -ERESTART;
> +    }
> +
>       XFREE(d->arch.tee);
>   
>       return 0;

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 19:33:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 19:33:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647290.1010270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAEgy-0002xJ-Nr; Mon, 04 Dec 2023 19:33:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647290.1010270; Mon, 04 Dec 2023 19:33: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 1rAEgy-0002xC-Kb; Mon, 04 Dec 2023 19:33:20 +0000
Received: by outflank-mailman (input) for mailman id 647290;
 Mon, 04 Dec 2023 19:33: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=bwcF=HP=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rAEgy-0002wn-57
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 19:33:20 +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 f9497360-92db-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 20:33:17 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2ca0c36f5beso11786701fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 11:33:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9497360-92db-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701718397; x=1702323197; 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=8bpxM4hLK4WGKwUO3Qa5qRxTSXt9Rg90KE0V/M9a+CE=;
        b=hE2PzX4K6VuKqbVP07nsvVsW9vrTtlz/MDCkV1QuHm3VboXAhKezqw3UkrQiOH2vVv
         L9wPcpk/qdn7PjsRigUGPC58zsLHwTTt4QyfDYu4S+lOudyw8/zwCc3EqrAos7urOSkn
         0ag1fb70Eh0YMx2itMibIe353XhBYoNAnNI/Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701718397; x=1702323197;
        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=8bpxM4hLK4WGKwUO3Qa5qRxTSXt9Rg90KE0V/M9a+CE=;
        b=GY48B5/uJi6OKNY+9b+HllrBBxo/Co38FZX0d8J0rTrBFno01KYhGgcBYSlB5orMoP
         iUGkrsZdaBvPRqmj+zdg8H5kLWZV1EB+eWHeNuW4MyEOgSwbQZRuNCfzm+R4e2A7PO1U
         1BuRWlMoQlAaIt5/EF7RNtsu1jv5olB2/+NQQ0A3AHoIz62rv7vAf1+F4g7wWlD2ELB7
         rLPVE1B/sgPJLLY5b70gx2YDY+nH2eDG3OD2Lsg+DaBtJSx3OBHZDIEt8CGgLMEfKhbY
         z6L54D4kR3Pbt4wRm+C70QRN2rHEoAT6UNzFklpaRjfDAd4Q+a5OtefRZBe004AyLXzS
         qIlA==
X-Gm-Message-State: AOJu0YwldHR1Rh7BYwIP8q2PrNduCWBhdifChmXmsOdHLPZB1qd21Et7
	qqnlh8xXgbqtfjMEEx4GG8Z+L1z27YCaTEa/4kkw9A==
X-Google-Smtp-Source: AGHT+IGatogwaod5sgFI0d57lf1sC5URkabiSKZHB9VbDR9jEZkBBt3xAl6eOhY5feshfpT2/tAGabK3EZFaLPXtNFY=
X-Received: by 2002:a2e:8341:0:b0:2ca:41b:74da with SMTP id
 l1-20020a2e8341000000b002ca041b74damr953760ljh.4.1701718396821; Mon, 04 Dec
 2023 11:33:16 -0800 (PST)
MIME-Version: 1.0
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
 <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com> <CA+zSX=aicqMNWybLQYe3Jb6rzfePVrgbg6KT=rYnLnvq-GKrcA@mail.gmail.com>
 <15398b81-ad6b-4b14-a35a-e1e5d58fe935@suse.com> <cd4b8857-ad69-489b-9a4f-63d53c4d360e@suse.com>
In-Reply-To: <cd4b8857-ad69-489b-9a4f-63d53c4d360e@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Mon, 4 Dec 2023 19:33:05 +0000
Message-ID: <CA+zSX=b0fVbRcyonZ3axXfbS6Kaw_kKTebNBhUie6C555JbLvg@mail.gmail.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
To: Juergen Gross <jgross@suse.com>
Cc: Jan Beulich <jbeulich@suse.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Dario Faggioli <dfaggioli@suse.com>, 
	=?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 4, 2023 at 2:44=E2=80=AFPM Juergen Gross <jgross@suse.com> wrot=
e:
> >> Personally I prefer to keep the "goto out", rather than duplicating
> >> the rcu_read_unlock().  I'd yield if Jan said he preferred
> >> duplication, however.
> >
> > I'm on the edge there actually.
>
> In this case I'd prefer it my way, as it avoids having to scroll down to =
the
> out: label to see what is happening there. Additionally it enables to get=
 rid
> of the ret variable.

The issue is, suppose we change something else, like needing to grab
(and release) another lock?  Sharing the exit path makes it easier to
avoid those kinds of mistakes.

 -George


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 19:34:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 19:34:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647292.1010279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAEi6-0003TX-WB; Mon, 04 Dec 2023 19:34:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647292.1010279; Mon, 04 Dec 2023 19:34: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 1rAEi6-0003TQ-Te; Mon, 04 Dec 2023 19:34:30 +0000
Received: by outflank-mailman (input) for mailman id 647292;
 Mon, 04 Dec 2023 19:34:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bwcF=HP=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rAEi5-0003TI-Lf
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 19:34:29 +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 234b46b2-92dc-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 20:34:27 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2c9c18e7990so66094011fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 11:34:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 234b46b2-92dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701718467; x=1702323267; 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=xZM9UmmAJGFfqGGzxljCGuIRbzVQdM1Xn9ODlR1S3fc=;
        b=S14Uq0fxKgmiReEsHy2rAjUn7XYt0qd5COQnGK2lTsQTDvT5voxHPWOeD20IuYYCcP
         yZnmcu1mWdSbRO8zgwA/uBGPBvHeGumYagBQl2+yc06BGvPW5Hbir+KN3Uj5sao6LOjB
         DrB3AGSr9as1j8tqVVzix0o+B6HixYEXeX3vA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701718467; x=1702323267;
        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=xZM9UmmAJGFfqGGzxljCGuIRbzVQdM1Xn9ODlR1S3fc=;
        b=tJ23JB/zQtibBj0lB6XkLjkkYhdkIzsRh07yIU9BJN+x5PwpMPD+4wkgRJVyafkA7n
         7aa147l3XIUv9Q0cW43m3qDCwg2ypGZ+Q4Xte6V74L5ucH5kXJQhnkgh4kMcRQcwc/7b
         GXvz4JnwSElAsxRHm2NoYV9/oJ0to3IR5j9JmUNLBgPD83ocWnxHC3Pbh6qqdLtiXrK/
         MsYH8DExByxmQVLtJjvnD5e6OQBv7vlN6y/UqDrS/6P0Lq0ZoeG1dqbAYqWSWmGsmHRa
         iB23vnms99nQ5/JbMFfPDHfyO7NKQBoe6F6jFvifc1dJyyIilAYA/YVDg63S/NNBBZ9D
         NYIQ==
X-Gm-Message-State: AOJu0Yykv5u3zb8Xshv+K4ARZ15dCyZzNsL49msK12BHsZCFXQurCL+B
	UEKA/CXgX6cqcZADGnoAcWX7ceYrKkCBDdbC7NKKS5bTk/RSNj8zNeE=
X-Google-Smtp-Source: AGHT+IENvvRz1KlJKyMoZArBIPMs8ouYCHzU3VFcJcQ5spqqnWCTqLnuWWrJCFqj++4D6qu6TbYED+zdYW3cREMlDwo=
X-Received: by 2002:a05:651c:157:b0:2ca:290:a103 with SMTP id
 c23-20020a05651c015700b002ca0290a103mr1012276ljd.43.1701718467336; Mon, 04
 Dec 2023 11:34:27 -0800 (PST)
MIME-Version: 1.0
References: <CA+zSX=bpVoB7vB0_FgxadybyjTP-SL7a4uFZRwRXtA-CPqZ16A@mail.gmail.com>
 <8fc5333a-1529-42d2-a90f-dbaff9e2f23f@suse.com>
In-Reply-To: <8fc5333a-1529-42d2-a90f-dbaff9e2f23f@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Mon, 4 Dec 2023 19:34:16 +0000
Message-ID: <CA+zSX=apegoMtYCxmT+KWH4ZCvw950oDZdfUW=z7xNF_Rk7_vQ@mail.gmail.com>
Subject: Re: [ANNOUNCE] Call for agenda items for 7 DECEMBER Community Call @
 1600 UTC
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"

> > Note the following administrative conventions for the call:
> > * Unless, agreed in the previous meeting otherwise, the call is on the
> > 1st Thursday of each month at 1600 British Time (either GMT or BST)
>
> IOW in the subject it's 1600 UTC and YYY == Dec 7?

Oops -- yes, 7 December, 1600UTC!

 -George


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 19:55:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 19:55:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647298.1010290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAF2I-00082m-PM; Mon, 04 Dec 2023 19:55:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647298.1010290; Mon, 04 Dec 2023 19:55:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAF2I-00082f-Md; Mon, 04 Dec 2023 19:55:22 +0000
Received: by outflank-mailman (input) for mailman id 647298;
 Mon, 04 Dec 2023 19:55:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAF2H-00082Z-F8
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 19:55:21 +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 1rAF2D-00024O-Iq; Mon, 04 Dec 2023 19:55:17 +0000
Received: from 54-240-197-230.amazon.com ([54.240.197.230]
 helo=[192.168.23.72]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAF2D-0005Bk-CU; Mon, 04 Dec 2023 19:55:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=1/iYg1xVoT4Batkm0nSjXtS0wof6SMbTof+9yg7MyuM=; b=L4Ikfu8JQcW3Ph/HYfqiUIGKeq
	OlkOlG2Iyi7omKKg88W0FxYmsWA1HC6HMNyHCNPMxycKSOhoDZD63Abuesahiq7gHuiDphmcCrJNT
	xbk4OCf26+wQKHJcoXez4G3aVq0ti6a5ZSaNhvm1vAP0mEY46PksdDVrEC52mvjhOelk=;
Message-ID: <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
Date: Mon, 4 Dec 2023 19:55:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Ayan Kumar Halder <ayankuma@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, sstabellini@kernel.org,
 stefano.stabellini@amd.com, bertrand.marquis@arm.com, michal.orzel@amd.com,
 Volodymyr_Babchuk@epam.com
Cc: xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 04/12/2023 13:02, Ayan Kumar Halder wrote:
> 
> On 04/12/2023 10:31, Julien Grall wrote:
>> Hi Ayan,
> Hi Julien,
>>
>> On 01/12/2023 18:50, Ayan Kumar Halder wrote:
>>> Currently if user enables HVC_DCC config option in Linux, it invokes
>>> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
>>> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
>>> an undefined exception to the guest. And Linux crashes.
>>
>> I am missing some data points here to be able to say whether I would 
>> be ok with emulating the registers. So some questions:
>> Â  * As you wrote below, HVC_DCC will return -ENODEV after this 
>> emulation. So may I ask what's the use case to enable it? (e.g. is 
>> there a distro turning this on?)
> 
> I am not aware of any distro using (or not using) this feature. This 
> issue came to light during our internal testing, when HVC_DCC was 
> enabled to use the debug console. When Linux runs without Xen, then we 
> could observe the logs on the debug console. When Linux was running as a 
> VM, it crashed.
> 
> My intention here was to do the bare minimum emulation so that the crash 
> could be avoided.
This reminds me a bit the discussion around "xen/arm64: Decode ldr/str 
post increment operations". I don't want Xen to contain half-backed 
emulation just to please an OS in certain configuration that doesn't 
seem to be often used.

Also, AFAICT, KVM is in the same situation...

Given this is internal testing, have you considered to ask them to 
disable HVC_DCC?

> 
>> Â * Linux is writing to the registers unconditionally, but is the spec 
>> mandating the implementation of the registers? (I couldn't find either 
>> way)
> 
>  From ARM DDI 0487I.a ID081822, H1.2, External debug,
> 
> "The Debug Communications Channel, DCC, passes data between the PE and 
> the debugger:
> 
> â€” The DCC includes the data transfer registers, DTRRX and DTRTX, and 
> associated flow-control flags.
> 
> â€” Although the DCC is an essential part of Debug state operation, it can 
> also be used in Non-debug state."
> 
>  From this I infer that the spec mandates the implementation of these 
> registers. IOW, these registers should always be present in any Arm 
> compliant SoC.
> 
>> Â * When was this check introduced in Linux? Did it ever changed?
>>
> This check was introduced in the following commit
> 
> "commit f377775dc083506e2fd7739d8615971c46b5246e
> Author: Rob Herring <rob.herring@calxeda.com>
> Date:Â Â  Tue Sep 24 21:05:58 2013 -0500
> 
>  Â Â Â  TTY: hvc_dcc: probe for a JTAG connection before registering
> 
>  Â Â Â  Enabling the ARM DCC console and using without a JTAG connection will
>  Â Â Â  simply hang the system. Since distros like to turn on all options, 
> this
>  Â Â Â  is a reoccurring problem to debug. We can do better by checking if
>  Â Â Â  anything is attached and handling characters. There is no way to probe
>  Â Â Â  this, so send a newline and check that it is handled.
> "

I think this is the part I was missing from the commit message. I have 
proposed some wording below.

> 
> As of today, this check hasn't changed.
> 
>>>
>>> We wish to avoid this crash by adding a "partial" emulation. DBGDTR_EL0
>>> is emulated as TXfull | RXfull.
>>
>> Skimming through the Arm Arm, I see that TXfull and Rxfull indicates 
>> that both buffers are full but it doesn't explicitly say this means 
>> the feature is not available.
> We are not saying that the feature is not available. Rather ...
>>
>> I understand this is what Linux checks, but if we want to partially 
>> emulate the registers in Xen, then I'd like us to make sure this is 
>> backed by the Arm Arm rather than based on Linux implementation (which 
>> can change at any point).
>>
>>> Refer ARM DDI 0487I.a ID081822, D17.3.8, DBGDTRTX_EL0
>>> "If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN"
>>> Also D17.3.7 DBGDTRRX_EL0,
>>> " If RXfull is set to 1, return the last value written to DTRRX."
>>>
>>> Thus, any OS is expected to read DBGDTR_EL0 and check for TXfull
>>> before using DBGDTRTX_EL0. Linux does it via hvc_dcc_init() --->
>>> hvc_dcc_check() , it returns -ENODEV. In this way, we are preventing
>>> the guest to be aborted.
>>
>> See above, what guarantees us that Linux will not change this behavior 
>> in the future?
> 
> If I understand "If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN" 
> correctly, it seems that Arm ARM expects OS to check for TXfull.
> 
> If the condition is true, it should return some error.
> 
> Let me know if I misunderstood this.

You understand the Arm spec correcly. I think we are disagreeing on the 
wording and whether we should accept basic emulation (see above).

I would like more opinion on that.

[...]

>>> diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
>>> index 39aeda9dab..3f1276f96e 100644
>>> --- a/xen/arch/arm/vcpreg.c
>>> +++ b/xen/arch/arm/vcpreg.c
>>> @@ -548,20 +548,37 @@ void do_cp14_32(struct cpu_user_regs *regs, 
>>> const union hsr hsr)
>>> Â Â Â Â Â Â Â Â Â  break;
>>> Â Â Â Â Â  }
>>> Â  -Â Â Â  case HSR_CPREG32(DBGDSCRINT):
>>> +Â Â Â  case HSR_CPREG32(DBGDSCREXT):
>>> +Â Â Â  {
>>> Â Â Â Â Â Â Â Â Â  /*
>>> -Â Â Â Â Â Â Â Â  * Read-only register. Accessible by EL0 if DBGDSCRext.UDCCdis
>>> -Â Â Â Â Â Â Â Â  * is set to 0, which we emulated below.
>>> +Â Â Â Â Â Â Â Â  * Bit 29: TX full, bit 30: RX full
>>> +Â Â Â Â Â Â Â Â  * Given that we emulate DCC registers as RAZ/WI, doing the 
>>> same for
>>> +Â Â Â Â Â Â Â Â  * DBGDSCRint would cause a guest to continue using the DCC 
>>> despite no
>>> +Â Â Â Â Â Â Â Â  * real effect. Setting the TX/RX status bits should result 
>>> in a probe
>>> +Â Â Â Â Â Â Â Â  * fail (based on Linux behavior).
>> If you want to mention Linux then you need to be a bit more specific 
>> because Linux can change at any point. So you at least want to specify 
>> the Linux version and place in the code.
>>
>> So this doesn't get stale as soon as the HVC_DCC driver changes.
> 
> (based on Linux behavior since f377775dc083).

Base on the discussion above, I would like to suggest the following:

Xen doesn't expose a real (or emulated) Debug Communications Channel 
(DCC) to a domain. Yet the Arm Arm implies this is not an optional 
feature. So some domains may start to probe it. For instance, the 
HVC_DCC driver in Linux (since f377775dc083 and at least up to v6.7), 
will try to write some characters and check if the transmit buffer has 
emptied. By setting TX status bit to indicate the transmit buffer is 
full. This we would hint the OS that the DCC is probably not working.

This would give enough information for the reader to know what's going 
and how you emulate.

Also, while writing the proposed comment, I wonder why we need to set 
RX? Wouldn't this potentially indicate to the OS that there are some 
data to read?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 21:09:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 21:09:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647310.1010310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAGCG-0005od-D8; Mon, 04 Dec 2023 21:09:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647310.1010310; Mon, 04 Dec 2023 21: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 1rAGCG-0005oW-A4; Mon, 04 Dec 2023 21:09:44 +0000
Received: by outflank-mailman (input) for mailman id 647310;
 Mon, 04 Dec 2023 21: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=y+Gv=HP=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rAGCF-0005XB-7r
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 21:09:43 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20605.outbound.protection.outlook.com
 [2a01:111:f400:7eab::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6fa195a7-92e9-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 22:09:40 +0100 (CET)
Received: from MW4PR04CA0330.namprd04.prod.outlook.com (2603:10b6:303:82::35)
 by SJ2PR12MB8848.namprd12.prod.outlook.com (2603:10b6:a03:537::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 21:09:34 +0000
Received: from CO1PEPF000044F4.namprd05.prod.outlook.com
 (2603:10b6:303:82:cafe::a7) by MW4PR04CA0330.outlook.office365.com
 (2603:10b6:303:82::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Mon, 4 Dec 2023 21:09:34 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044F4.mail.protection.outlook.com (10.167.241.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 21:09:33 +0000
Received: from SATLEXMB08.amd.com (10.181.40.132) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 4 Dec
 2023 15:09:32 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB08.amd.com
 (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Mon, 4 Dec
 2023 13:09:32 -0800
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 15:09:31 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6fa195a7-92e9-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kj2Y1ESJVqX/l7ZysLMAcHn2IH/EqtzxL8Miq3DKJ/i1xNLkx/BaLcYsP5y6JPOcplXAR5kXrC3WOaCpWYhZTV5kHFWcz63znLsRmFNmLdxgIyVkcUQazU9FN8hoQpwHlpdZb/5CyTKtZCubPoPU4EiawGPxkwRuBljfaSMh3+krftI8iAMh47CmgBmrFkXsHRVp5ffPM2b3K6A5HMpRczIo93ZvZWnFWr0/oKni7o3iacrARNJcLeF9D0nxxuDA9Mb1avL+s3Jd7HQBtxaW3LwBupUw8DjLZDDM0vlOJ+ImHHLycgggDL3NoJxEbURIKL1YThZmn1erXe8B3gyUnQ==
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=Y+quwPLtW2g+qaggyRdl6Ui8Hi5RH/K25fGJJ240XZ0=;
 b=OBTCU1ViBAvE5r8yfWDNkQv9SmoqT/o3oVzd9vZJyD5+EMZDPiyRBvM9E97eEEBQTPsfS49Hspz+MDIYE5jzx+p4OdcIQk80uVl6RleG1wKCZQJyB/YFlrFuXF745VM6fD264IfEWl4R7uvZWHs6o29pGu/iEK6h5ASJbBCxlRypa/AGcEc968eEUhu8CyQSgJZIPw3fMYK6KROiU7Yujuq7heQNYetMV+fXYHi/TAqU/fGQVubK1Rl5xrOFEosWJqH0wOyLaAxNmd7/vOmk5R9m0oMCL4Jl56oLC72kbq5UPat3ucYsnJOLc9uKN1T2mRQE+Jp3vaCqaFkeynST1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y+quwPLtW2g+qaggyRdl6Ui8Hi5RH/K25fGJJ240XZ0=;
 b=AFiCAd0hbSlBoV78LjC3Y5WzBAwFeDFgxa6ZbxFYaGMb888D37+UWQFf3pBhQJvIA6qd9Dr6YEdzWw7P5cq6Mp7/PSKfG5gaeFfj62U2EdKRwbdkiRAOfS/bgzyypRJrZ5aIPEcfYNgfkr9EjggQ0ijTkWGy5SSmoC6Yc3+HVtU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Anthony PERARD <anthony.perard@citrix.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>
Subject: [PATCH v10 1/2] xen/vpci: header: status register handler
Date: Mon, 4 Dec 2023 16:09:12 -0500
Message-ID: <20231204210916.3651999-2-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231204210916.3651999-1-stewart.hildebrand@amd.com>
References: <20231204210916.3651999-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F4:EE_|SJ2PR12MB8848:EE_
X-MS-Office365-Filtering-Correlation-Id: 7934089c-0147-454b-59a1-08dbf50d5081
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	wCAynt1HobAl+DYfbdl2gH1IjTVSlQdw2egznzNpuJOyjMbWawsZwAcqCA6nahyaZU9utrp0K1+ihnzpGZsKME7z4JoGKkGUrKrTHyXQ9h/qK53k9yGnKx4e3Y8opIGT3Lgklk6iRSDLDM+WYw6SfZRzU7GAILRwFvmSWze0Ka8+FotqCv93S3NWsS6+x0DxKZm5xfno1bT0R3BdYv60pqfPxYmyTVicEKXib+oJ6oKo6d2frdcslkIGV1il5bjpWyM4F5Fbl+7M6o/YIjN5PfjBiBfFzC+IL1poy50C9BPoZ+61BBuX9PGUxBVcw8q4cI2dj9QmxUN3sr0eSJkf+LFlCu6kL9a+KPOe+BkxsaH5tX5aSXO7lUYg/WT70ztI/h28amXlF4Temghl20oGoKLj3fDQeCi/A/RW4x4ZZYRr5Fy2t8v7WLeNYaoCL1a33szK8X+Um5yhiaw6LYz/4VQUTpFuiL52D2Pf3fXlgA1iXWCB+YFcye08ODhgGzDR0xDEgdnRu77hVX9yJvDH/f/hmLfAuxior9uO9wKCDxSNI+rlTGhVEMmVaMAaGAx7QfAMTqPs75wptJaQEQPxdu3zbPgM//61VZLp8U8MY3geYHz8nC8NPP2WMm4aZhmDTHBwG2NhSzQAN1zNH1rrzW41cQu7Y6IwjEOTpvu8kQ6EdPKWEd79TgaxAZqNGtsm/Nd66zdPnUTzBqNhAYjYDi47Dw/f61hI8JyXrCFe5l2UQaTeSobG0gQZk/F8b4kRWsFFeq1ZWBYeLP8LLyR/9A==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(396003)(376002)(346002)(39860400002)(230922051799003)(64100799003)(451199024)(82310400011)(1800799012)(186009)(40470700004)(36840700001)(46966006)(40460700003)(66899024)(6916009)(54906003)(316002)(44832011)(8936002)(86362001)(8676002)(4326008)(70206006)(478600001)(70586007)(966005)(19627235002)(41300700001)(36756003)(2906002)(30864003)(5660300002)(36860700001)(356005)(81166007)(47076005)(26005)(2616005)(426003)(1076003)(82740400003)(83380400001)(336012)(6666004)(40480700001)(36900700001)(357404004);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 21:09:33.5529
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7934089c-0147-454b-59a1-08dbf50d5081
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F4.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8848

Introduce a handler for the PCI status register, with ability to mask
the capabilities bit. The status register contains RsvdZ bits,
read-only bits, and write-1-to-clear bits. Additionally, we use RsvdP to
mask the capabilities bit. Introduce bitmasks to handle these in vPCI.
If a bit in the bitmask is set, then the special meaning applies:

  ro_mask: read normal, guest write ignore (preserve on write to hardware)
  rw1c_mask: read normal, write 1 to clear
  rsvdp_mask: read as zero, guest write ignore (preserve on write to hardware)
  rsvdz_mask: read as zero, guest write ignore (write zero to hardware)

The RO/RW1C/RsvdP/RsvdZ naming and definitions were borrowed from the
PCI Express Base 6.1 specification. RsvdP/RsvdZ bits help Xen enforce
our view of the world. Xen preserves the value of read-only bits on
write to hardware, discarding the guests write value. This is done in
case hardware wrongly implements R/O bits as R/W.

The mask_cap_list flag will be set in a follow-on change.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
v9->v10:
* change a word in the commit message
* add Roger's R-b tag

v8->v9:
* check that masks don't have bits set above register size
* rename variable in vpci_write_helper()
* only export one vpci_add_register* function, make the other one static inline
* style fixups

v7->v8:
* move PCI_STATUS_UDF to rsvdz_mask (per PCI Express Base 6 spec)
* add support for rsvdp bits
* add tests for ro/rw1c/rsvdp/rsvdz bits in tools/tests/vpci/main.c
* dropped R-b tag [1] since the patch has changed moderately since the last rev

[1] https://lists.xenproject.org/archives/html/xen-devel/2023-09/msg00909.html

v6->v7:
* re-work args passed to vpci_add_register_mask() (called in init_bars())
* also check for overlap of (rsvdz_mask & ro_mask) in add_register()
* slightly adjust masking operation in vpci_write_helper()

v5->v6:
* remove duplicate PCI_STATUS_CAP_LIST in constant definition
* style fixup in constant definitions
* s/res_mask/rsvdz_mask/
* combine a new masking operation into single line
* preserve r/o bits on write
* get rid of status_read. Instead, use rsvdz_mask for conditionally masking
  PCI_STATUS_CAP_LIST bit
* add comment about PCI_STATUS_CAP_LIST and rsvdp behavior
* add sanity checks in add_register
* move mask_cap_list from struct vpci_header to local variable

v4->v5:
* add support for res_mask
* add support for ro_mask (squash ro_mask patch)
* add constants for reserved, read-only, and rw1c masks

v3->v4:
* move mask_cap_list setting to the capabilities patch
* single pci_conf_read16 in status_read
* align mask_cap_list bitfield in struct vpci_header
* change to rw1c bit mask instead of treating whole register as rw1c
* drop subsystem prefix on renamed add_register function

v2->v3:
* new patch
---
 tools/tests/vpci/main.c    | 111 +++++++++++++++++++++++++++++++++++++
 xen/drivers/vpci/header.c  |  12 ++++
 xen/drivers/vpci/vpci.c    |  52 ++++++++++++-----
 xen/include/xen/pci_regs.h |   9 +++
 xen/include/xen/vpci.h     |  24 ++++++--
 5 files changed, 189 insertions(+), 19 deletions(-)

diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index b9a0a6006bb9..64d4552936c7 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -70,6 +70,28 @@ static void vpci_write32(const struct pci_dev *pdev, unsigned int reg,
     *(uint32_t *)data = val;
 }
 
+struct mask_data {
+    uint32_t val;
+    uint32_t rw1c_mask;
+};
+
+static uint32_t vpci_read32_mask(const struct pci_dev *pdev, unsigned int reg,
+                                 void *data)
+{
+    const struct mask_data *md = data;
+
+    return md->val;
+}
+
+static void vpci_write32_mask(const struct pci_dev *pdev, unsigned int reg,
+                              uint32_t val, void *data)
+{
+    struct mask_data *md = data;
+
+    md->val  = val | (md->val & md->rw1c_mask);
+    md->val &= ~(val & md->rw1c_mask);
+}
+
 #define VPCI_READ(reg, size, data) ({                           \
     data = vpci_read((pci_sbdf_t){ .sbdf = 0 }, reg, size);     \
 })
@@ -94,9 +116,21 @@ static void vpci_write32(const struct pci_dev *pdev, unsigned int reg,
     assert(!vpci_add_register(test_pdev.vpci, fread, fwrite, off, size,     \
                               &store))
 
+#define VPCI_ADD_REG_MASK(fread, fwrite, off, size, store,                     \
+                          ro_mask, rw1c_mask, rsvdp_mask, rsvdz_mask)          \
+    assert(!vpci_add_register_mask(test_pdev.vpci, fread, fwrite, off, size,   \
+                                   &store,                                     \
+                                   ro_mask, rw1c_mask, rsvdp_mask, rsvdz_mask))
+
 #define VPCI_ADD_INVALID_REG(fread, fwrite, off, size)                      \
     assert(vpci_add_register(test_pdev.vpci, fread, fwrite, off, size, NULL))
 
+#define VPCI_ADD_INVALID_REG_MASK(fread, fwrite, off, size,                   \
+                                  ro_mask, rw1c_mask, rsvdp_mask, rsvdz_mask) \
+    assert(vpci_add_register_mask(test_pdev.vpci, fread, fwrite, off, size,   \
+                                  NULL, ro_mask, rw1c_mask, rsvdp_mask,       \
+                                  rsvdz_mask))
+
 #define VPCI_REMOVE_REG(off, size)                                          \
     assert(!vpci_remove_register(test_pdev.vpci, off, size))
 
@@ -154,6 +188,7 @@ main(int argc, char **argv)
     uint16_t r20[2] = { };
     uint32_t r24 = 0;
     uint8_t r28, r30;
+    struct mask_data r32;
     unsigned int i;
     int rc;
 
@@ -213,6 +248,24 @@ main(int argc, char **argv)
     /* Try to add a register with missing handlers. */
     VPCI_ADD_INVALID_REG(NULL, NULL, 8, 2);
 
+    /* Try to add registers with the same bits set in multiple masks. */
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 1, 1, 0, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 1, 0, 1, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 1, 0, 0, 1);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 0, 1, 1, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 0, 1, 0, 1);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read32, vpci_write32, 8, 4, 0, 0, 1, 1);
+
+    /* Try to add registers with mask bits set beyond the register size */
+    VPCI_ADD_INVALID_REG_MASK(vpci_read8, vpci_write8, 8, 1, 0x100U, 0, 0, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read8, vpci_write8, 8, 1, 0, 0x100U, 0, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read8, vpci_write8, 8, 1, 0, 0, 0x100U, 0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read8, vpci_write8, 8, 1, 0, 0, 0, 0x100U);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read16, vpci_write16, 8, 2, 0x10000U,0,0,0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read16, vpci_write16, 8, 2, 0,0x10000U,0,0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read16, vpci_write16, 8, 2, 0,0,0x10000U,0);
+    VPCI_ADD_INVALID_REG_MASK(vpci_read16, vpci_write16, 8, 2, 0,0,0,0x10000U);
+
     /* Read/write of unset register. */
     VPCI_READ_CHECK(8, 4, 0xffffffff);
     VPCI_READ_CHECK(8, 2, 0xffff);
@@ -287,6 +340,64 @@ main(int argc, char **argv)
     VPCI_ADD_REG(vpci_read8, vpci_write8, 30, 1, r30);
     VPCI_WRITE_CHECK(28, 4, 0xffacffdc);
 
+    /*
+     * Test ro/rw1c/rsvdp/rsvdz masks.
+     *
+     * 32     24     16      8      0
+     *  +------+------+------+------+
+     *  |rsvdz |rsvdp | rw1c |  ro  | 32
+     *  +------+------+------+------+
+     *
+     */
+    r32.rw1c_mask = 0x0000ff00U;
+    VPCI_ADD_REG_MASK(vpci_read32_mask, vpci_write32_mask, 32, 4, r32,
+                      0x000000ffU   /* RO    */,
+                      r32.rw1c_mask /* RW1C  */,
+                      0x00ff0000U   /* RsvdP */,
+                      0xff000000U   /* RsvdZ */);
+
+    /* ro */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(32, 1, 0x0f);
+    VPCI_WRITE(32, 1, 0x5a);
+    VPCI_READ_CHECK(32, 1, 0x0f);
+    assert(r32.val == 0x000f0f0fU);
+
+    /* rw1c */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(33, 1, 0x0f);
+    VPCI_WRITE(33, 1, 0x5a);
+    VPCI_READ_CHECK(33, 1, 0x05);
+    assert(r32.val == 0x000f050fU);
+
+    /* rsvdp */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(34, 1, 0);
+    VPCI_WRITE(34, 1, 0x5a);
+    VPCI_READ_CHECK(34, 1, 0);
+    assert(r32.val == 0x000f0f0fU);
+
+    /* rsvdz */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(35, 1, 0);
+    VPCI_WRITE(35, 1, 0x5a);
+    VPCI_READ_CHECK(35, 1, 0);
+    assert(r32.val == 0x000f0f0fU);
+
+    /* write all 0's */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(32, 4, 0x00000f0fU);
+    VPCI_WRITE(32, 4, 0);
+    VPCI_READ_CHECK(32, 4, 0x00000f0fU);
+    assert(r32.val == 0x000f0f0fU);
+
+    /* write all 1's */
+    r32.val = 0x0f0f0f0fU;
+    VPCI_READ_CHECK(32, 4, 0x00000f0fU);
+    VPCI_WRITE(32, 4, 0xffffffffU);
+    VPCI_READ_CHECK(32, 4, 0x0000000fU);
+    assert(r32.val == 0x000f000fU);
+
     /* Finally try to remove a couple of registers. */
     VPCI_REMOVE_REG(28, 1);
     VPCI_REMOVE_REG(24, 4);
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 767c1ba718d7..351318121e48 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -521,6 +521,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
     struct vpci_header *header = &pdev->vpci->header;
     struct vpci_bar *bars = header->bars;
     int rc;
+    bool mask_cap_list = false;
 
     switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
     {
@@ -544,6 +545,17 @@ static int cf_check init_bars(struct pci_dev *pdev)
     if ( rc )
         return rc;
 
+    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
+    rc = vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
+                                PCI_STATUS, 2, NULL,
+                                PCI_STATUS_RO_MASK &
+                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
+                                PCI_STATUS_RW1C_MASK,
+                                mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
+                                PCI_STATUS_RSVDZ_MASK);
+    if ( rc )
+        return rc;
+
     if ( pdev->ignore_bars )
         return 0;
 
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 3bec9a4153da..d569f596a4c3 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -29,6 +29,10 @@ struct vpci_register {
     unsigned int offset;
     void *private;
     struct list_head node;
+    uint32_t ro_mask;
+    uint32_t rw1c_mask;
+    uint32_t rsvdp_mask;
+    uint32_t rsvdz_mask;
 };
 
 #ifdef __XEN__
@@ -145,9 +149,17 @@ uint32_t cf_check vpci_hw_read32(
     return pci_conf_read32(pdev->sbdf, reg);
 }
 
-int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,
-                      vpci_write_t *write_handler, unsigned int offset,
-                      unsigned int size, void *data)
+void cf_check vpci_hw_write16(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
+{
+    pci_conf_write16(pdev->sbdf, reg, val);
+}
+
+int vpci_add_register_mask(struct vpci *vpci, vpci_read_t *read_handler,
+                           vpci_write_t *write_handler, unsigned int offset,
+                           unsigned int size, void *data, uint32_t ro_mask,
+                           uint32_t rw1c_mask, uint32_t rsvdp_mask,
+                           uint32_t rsvdz_mask)
 {
     struct list_head *prev;
     struct vpci_register *r;
@@ -155,7 +167,14 @@ int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,
     /* Some sanity checks. */
     if ( (size != 1 && size != 2 && size != 4) ||
          offset >= PCI_CFG_SPACE_EXP_SIZE || (offset & (size - 1)) ||
-         (!read_handler && !write_handler) )
+         (!read_handler && !write_handler) || (ro_mask & rw1c_mask) ||
+         (ro_mask & rsvdp_mask) || (ro_mask & rsvdz_mask) ||
+         (rw1c_mask & rsvdp_mask) || (rw1c_mask & rsvdz_mask) ||
+         (rsvdp_mask & rsvdz_mask) )
+        return -EINVAL;
+
+    if ( size != 4 &&
+         ((ro_mask | rw1c_mask | rsvdp_mask | rsvdz_mask) >> (8 * size)) )
         return -EINVAL;
 
     r = xmalloc(struct vpci_register);
@@ -167,6 +186,10 @@ int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,
     r->size = size;
     r->offset = offset;
     r->private = data;
+    r->ro_mask = ro_mask;
+    r->rw1c_mask = rw1c_mask;
+    r->rsvdp_mask = rsvdp_mask;
+    r->rsvdz_mask = rsvdz_mask;
 
     spin_lock(&vpci->lock);
 
@@ -376,6 +399,7 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
         }
 
         val = r->read(pdev, r->offset, r->private);
+        val &= ~(r->rsvdp_mask | r->rsvdz_mask);
 
         /* Check if the read is in the middle of a register. */
         if ( r->offset < emu.offset )
@@ -407,26 +431,26 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
 
 /*
  * Perform a maybe partial write to a register.
- *
- * Note that this will only work for simple registers, if Xen needs to
- * trap accesses to rw1c registers (like the status PCI header register)
- * the logic in vpci_write will have to be expanded in order to correctly
- * deal with them.
  */
 static void vpci_write_helper(const struct pci_dev *pdev,
                               const struct vpci_register *r, unsigned int size,
                               unsigned int offset, uint32_t data)
 {
+    uint32_t curval = 0;
+    uint32_t preserved_mask = r->ro_mask | r->rsvdp_mask;
+
     ASSERT(size <= r->size);
 
-    if ( size != r->size )
+    if ( (size != r->size) || preserved_mask )
     {
-        uint32_t val;
-
-        val = r->read(pdev, r->offset, r->private);
-        data = merge_result(val, data, size, offset);
+        curval = r->read(pdev, r->offset, r->private);
+        curval &= ~r->rw1c_mask;
+        data = merge_result(curval, data, size, offset);
     }
 
+    data &= ~(preserved_mask | r->rsvdz_mask);
+    data |= curval & preserved_mask;
+
     r->write(pdev, r->offset, data & (0xffffffffU >> (32 - 8 * r->size)),
              r->private);
 }
diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
index 84b18736a85d..9909b27425a5 100644
--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -66,6 +66,15 @@
 #define  PCI_STATUS_REC_MASTER_ABORT	0x2000 /* Set on master abort */
 #define  PCI_STATUS_SIG_SYSTEM_ERROR	0x4000 /* Set when we drive SERR */
 #define  PCI_STATUS_DETECTED_PARITY	0x8000 /* Set on parity error */
+#define  PCI_STATUS_RSVDZ_MASK		0x0046 /* Includes PCI_STATUS_UDF */
+
+#define  PCI_STATUS_RO_MASK (PCI_STATUS_IMM_READY | PCI_STATUS_INTERRUPT | \
+    PCI_STATUS_CAP_LIST | PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK | \
+    PCI_STATUS_DEVSEL_MASK)
+#define  PCI_STATUS_RW1C_MASK (PCI_STATUS_PARITY | \
+    PCI_STATUS_SIG_TARGET_ABORT | PCI_STATUS_REC_TARGET_ABORT | \
+    PCI_STATUS_REC_MASTER_ABORT | PCI_STATUS_SIG_SYSTEM_ERROR | \
+    PCI_STATUS_DETECTED_PARITY)
 
 #define PCI_CLASS_REVISION	0x08	/* High 24 bits are class, low 8 revision */
 #define PCI_REVISION_ID		0x08	/* Revision ID */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index d743d96a10b8..85c52a1ebac7 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -32,11 +32,23 @@ int __must_check vpci_add_handlers(struct pci_dev *pdev);
 void vpci_remove_device(struct pci_dev *pdev);
 
 /* Add/remove a register handler. */
-int __must_check vpci_add_register(struct vpci *vpci,
-                                   vpci_read_t *read_handler,
-                                   vpci_write_t *write_handler,
-                                   unsigned int offset, unsigned int size,
-                                   void *data);
+int __must_check vpci_add_register_mask(struct vpci *vpci,
+                                        vpci_read_t *read_handler,
+                                        vpci_write_t *write_handler,
+                                        unsigned int offset, unsigned int size,
+                                        void *data, uint32_t ro_mask,
+                                        uint32_t rw1c_mask, uint32_t rsvdp_mask,
+                                        uint32_t rsvdz_mask);
+static inline int __must_check vpci_add_register(struct vpci *vpci,
+                                                 vpci_read_t *read_handler,
+                                                 vpci_write_t *write_handler,
+                                                 unsigned int offset,
+                                                 unsigned int size, void *data)
+{
+    return vpci_add_register_mask(vpci, read_handler, write_handler, offset,
+                                  size, data, 0, 0, 0, 0);
+}
+
 int __must_check vpci_remove_register(struct vpci *vpci, unsigned int offset,
                                       unsigned int size);
 
@@ -50,6 +62,8 @@ uint32_t cf_check vpci_hw_read16(
     const struct pci_dev *pdev, unsigned int reg, void *data);
 uint32_t cf_check vpci_hw_read32(
     const struct pci_dev *pdev, unsigned int reg, void *data);
+void cf_check vpci_hw_write16(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
 
 /*
  * Check for pending vPCI operations on this vcpu. Returns true if the vcpu
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 21:09:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 21:09:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647309.1010300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAGC2-0005XO-4G; Mon, 04 Dec 2023 21:09:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647309.1010300; Mon, 04 Dec 2023 21:09: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 1rAGC2-0005XH-1L; Mon, 04 Dec 2023 21:09:30 +0000
Received: by outflank-mailman (input) for mailman id 647309;
 Mon, 04 Dec 2023 21:09: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=y+Gv=HP=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rAGC0-0005XB-4b
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 21:09:28 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f400:fe59::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 663a8085-92e9-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 22:09:24 +0100 (CET)
Received: from DS7PR05CA0021.namprd05.prod.outlook.com (2603:10b6:5:3b9::26)
 by MW6PR12MB8900.namprd12.prod.outlook.com (2603:10b6:303:244::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec
 2023 21:09:21 +0000
Received: from DS2PEPF00003442.namprd04.prod.outlook.com
 (2603:10b6:5:3b9:cafe::d7) by DS7PR05CA0021.outlook.office365.com
 (2603:10b6:5:3b9::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.23 via Frontend
 Transport; Mon, 4 Dec 2023 21:09:21 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS2PEPF00003442.mail.protection.outlook.com (10.167.17.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 21:09:20 +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.34; Mon, 4 Dec
 2023 15:09:20 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 15:09:18 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 663a8085-92e9-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TfTOgl11OCcsHbXWqhRBShAyI/hcUpX26JL1ge1vMZ4hq9anKOVbp2vPb8PnYG1yzW8+HQPyR79iKOpaCjfBZPlw6ffFj/6JwUr1GKLNf9mKI1oRZYd3hMiEFaxErdowbdkeWLiTOBw1erheuJ8SCNEkcxjVCD9FUYpZBTa04aaox+s9m+Tn+J8krPoO7nj6NjEvhzqw5ssQAgCizJ6HgXRVlYtc0LpqmKo1U5EKA8UwUlL0KqysIE8BROcxKHFAm/ZVP5CWzOr2lFJzvVUa7fHmKqbqr1J2zRN2jbSHixDXYiMFiXlmhX3RTz5iuC2JABim1n1fpuyS0RLopATxqw==
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=t5zDZAQHtH5DU8J90znZ+kdopSo5KFgGnZOx3zB55d4=;
 b=LxkF8c9vKYPt84wqSHbAwln9hsHzFM6jHmaVAFcMs9PcYyxZZQSI5wwt5A/nyRZMbuaGCCvzxq+5eps63o6ZNCNvHsH6sesVI0YZwVE6QfhLm6X5U/iDAC1Tus5W1SpXBi9mrb+Y3MeSgoOff6e2UFzBNmMOkDYG0T0U7W996e2dAOYs994Z8bCK6YofPBSyFAzqjAIVZ+WUGakvZdNCkT/GYDkL6RxgsW2GoT0zjnNKPZHt6nIIBIs9cZU03vH3DUHTFloWIBSunH+YxXuATyHkpe5yw4YFJWZ9HSNYMY3s4AOWi6OQlEtkLcUNvD/aAsgaqWKHG+voYE3gKe+wSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t5zDZAQHtH5DU8J90znZ+kdopSo5KFgGnZOx3zB55d4=;
 b=hdoUMXG1YVdFLVpBsa6Uyga/q/ZK6arSowIO7X/Av/adU7NB0yoC8dBws37q6ZC6vAAJwNTlAPNz8zsmOqh2RNs7+Zb++NY8ppsxFrGaUBk+6XjCz3UelkAK5tYczDbjzp2vxjtfmkEZW6bhP2gWsHialu7cygzmLINeXuCUTSQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, Anthony PERARD <anthony.perard@citrix.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>
Subject: [PATCH v10 0/2] vPCI capabilities filtering
Date: Mon, 4 Dec 2023 16:09:11 -0500
Message-ID: <20231204210916.3651999-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003442:EE_|MW6PR12MB8900:EE_
X-MS-Office365-Filtering-Correlation-Id: e741df0b-2c7b-48ef-03cc-08dbf50d48cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	B6yAgD+h993/0SRSC7X42MifMibABnLzMhvT91yw+LUYbN12O0uOom33wnUxRRbYFSajKCY4wOnX+fnu5qVAaonYQ+prtVbwfANQP2AS2ylVvi+v0SsYHZUGyBeCVoGP0kNW4Sa2xZyZkgOVp8HWTQb2MlsVhb38wYYYyLH1FAOAnbtpURRJPjn1ATV3wysbSu6hVqdso3eBM1vUDP5thKqUhZS3ZCQu/UpezaMJIgg8k47fV+FxIFz7aD+sLaXSz/rchAEMYLtc8Gc2cJv969qcFSKaa1+CQRBjvHkQRubKocMMgP7ZdWYtTDs9qrID4UGwuACcJ+cCtZ5N9RzWMV0D2e0l6oFxYzBD6YceLq6zaH7BXkE2NyfbNyVXOX8Ox3aVKXT8hl2r4xSGYaqLxblf+yE+hSkOGgxsUvIBLtsnU2xDxAolx3dA2TmwCiq1IaoScigk6weMB2Z7MXyDU/9nF0a4DKCAAxZoQ4hqUDTO541a/JW7U0Dx3vvi+whnzN5HDUvXSVDOpbM4Ukxv/ZJ5nAzEGN66I/lRu8zwNE4hMI0kn8WWH7sbRqHIBiQT2owYL3RBa/FKzhDaaNOGEFvgEWZQoo1x6G8B8mBakmDLaM9OnAE7j9c6440gqXtQSM+YUQP/PmfTw5dyTXcU+ydGRkSYFDFv7cu6rpJv7AtZELli2jpyYIjk5aRUVFXT8LR2QaUxpSIHzxOuiHxrRYg1DkdhSXAOlYnFpC6y7jrwaBbyybb54Qk35HIy1PI/DRIe2ShAWkXEb4bjI1AO+A==
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:(13230031)(4636009)(136003)(396003)(39860400002)(346002)(376002)(230922051799003)(451199024)(64100799003)(186009)(82310400011)(1800799012)(36840700001)(40470700004)(46966006)(5660300002)(40460700003)(44832011)(86362001)(4326008)(66899024)(8676002)(8936002)(2906002)(41300700001)(36756003)(2616005)(40480700001)(1076003)(426003)(81166007)(356005)(82740400003)(83380400001)(966005)(478600001)(336012)(26005)(6666004)(47076005)(36860700001)(316002)(54906003)(6916009)(70586007)(70206006)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 21:09:20.6985
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e741df0b-2c7b-48ef-03cc-08dbf50d48cc
X-MS-Exchange-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:
	DS2PEPF00003442.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8900

This small series enables vPCI to filter which PCI capabilities we expose to a
domU. This series adds vPCI register handlers within
xen/drivers/vpci/header.c:init_bars(), along with some supporting functions.

Note there are minor rebase conflicts with the in-progress vPCI series [1].
These conflicts fall into the category of functions and code being added
adjacent to one another, so are easily resolved. I did not identify any
dependency on the vPCI locking work, and the two series deal with different
aspects of emulating the PCI header.

Future work may involve adding handlers for more registers in the vPCI header,
such as VID/DID, etc. Future work may also involve exposing additional
capabilities to the guest for broader device/driver support.

v9->v10:
* address feedback, add R-b tags

v8->v9:
* address feedback

v7->v8:
* address feedback

v6->v7:
* address feedback in ("xen/vpci: header: status register handler")
* drop ("xen/pci: convert pci_find_*cap* to pci_sbdf_t") and
  ("x86/msi: rearrange read_pci_mem_bar slightly") as they were committed

v5->v6:
* drop ("xen/pci: update PCI_STATUS_* constants") as it has been committed

v4->v5:
* drop ("x86/msi: remove some unused-but-set-variables") as it has been
  committed
* add ("xen/pci: update PCI_STATUS_* constants")
* squash ro_mask patch

v3->v4:
* drop "xen/pci: address a violation of MISRA C:2012 Rule 8.3" as it has been
  committed
* re-order status register handler and capabilities filtering patches
* split an unrelated change from ("xen/pci: convert pci_find_*cap* to pci_sbdf_t")
  into its own patch
* add new patch ("x86/msi: rearrange read_pci_mem_bar slightly") based on
  feedback
* add new RFC patch ("xen/vpci: support ro mask")

v2->v3:
* drop RFC "xen/vpci: header: avoid cast for value passed to vpci_read_val"
* minor misra C violation fixup in preparatory patch
* switch to pci_sbdf_t in preparatory patch
* introduce status handler

v1->v2:
* squash helper functions into the patch where they are used to avoid transient
  dead code situation
* add new RFC patch, possibly throwaway, to get an idea of what it would look
  like to get rid of the (void *)(uintptr_t) cast by introducing a new memory
  allocation

[1] https://lists.xenproject.org/archives/html/xen-devel/2023-08/msg02361.html

Stewart Hildebrand (2):
  xen/vpci: header: status register handler
  xen/vpci: header: filter PCI capabilities

 tools/tests/vpci/main.c    | 111 +++++++++++++++++++++++++++++++++++++
 xen/drivers/pci/pci.c      |  33 +++++++----
 xen/drivers/vpci/header.c  |  79 +++++++++++++++++++++++++-
 xen/drivers/vpci/vpci.c    |  64 ++++++++++++++++-----
 xen/include/xen/pci.h      |   3 +
 xen/include/xen/pci_regs.h |   9 +++
 xen/include/xen/vpci.h     |  30 ++++++++--
 7 files changed, 297 insertions(+), 32 deletions(-)


base-commit: 525c7c094b258e8a46b494488eef96f5670eb352
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 21:09:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 21:09:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647311.1010320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAGCR-0006Bo-QR; Mon, 04 Dec 2023 21:09:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647311.1010320; Mon, 04 Dec 2023 21:09: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 1rAGCR-0006Bh-MY; Mon, 04 Dec 2023 21:09:55 +0000
Received: by outflank-mailman (input) for mailman id 647311;
 Mon, 04 Dec 2023 21:09: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=y+Gv=HP=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rAGCQ-000698-6M
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 21:09:54 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20601.outbound.protection.outlook.com
 [2a01:111:f400:7eae::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 773c3930-92e9-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 22:09:53 +0100 (CET)
Received: from MW4PR03CA0024.namprd03.prod.outlook.com (2603:10b6:303:8f::29)
 by CH2PR12MB4087.namprd12.prod.outlook.com (2603:10b6:610:7f::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Mon, 4 Dec
 2023 21:09:46 +0000
Received: from CO1PEPF000044F5.namprd05.prod.outlook.com
 (2603:10b6:303:8f:cafe::24) by MW4PR03CA0024.outlook.office365.com
 (2603:10b6:303:8f::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Mon, 4 Dec 2023 21:09:46 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044F5.mail.protection.outlook.com (10.167.241.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Mon, 4 Dec 2023 21:09:45 +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.34; Mon, 4 Dec
 2023 15:09:45 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 15:09:43 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 773c3930-92e9-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mV9Pq8L4nzuROBsNtI82U7W7V+rhRLK19D12bK8f8AYvYYUNf+SpJ4nIwEd3YYRPs+vlGYJCfB0JG724Jf1gnfpmawn3CjPZgpf/PcegPNYC069eeTZCqmCGrgFe07AxeYKjoqifIeYccvgmg6cqR+9dcEF2b1RpPvS2Sq9nmZTgEe+LiVClkalr8o36/D4Dtc8hYES+C5IiiVblmUj9XxQkY6vsCdzpad63Q01F7GBaqcw9ZtP822CVqZPHSI+dHxYaqhRcxvtU6KuY8K7drupfm3ibipSIomChX2hmjoXJutBk+oOsXO0YexLgpql2VNfqWe4TsQ+fodmL8aXCKg==
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=pRL0UvNdHD3s4CJd428rmdW97NYNmAI0AVnnctl7IJU=;
 b=Z1HfNLdeiGKu1soBCl5MFZvWX0UcXxTrNyUlHnUv51XW0GThB8SMh5C8/5DxBh6gWoZ4XPCwEbPC1RpDJZaGUbQQMmTXe/TLoCUfqMQPpqKpgD6X7KejOPohLDvJv+bf57DauHquNn09QadlYd/eQ9rRkX59Ce878RhiMKNcbjzPV8qOm1Qka4zBz8ZKc23H29JGCUwC7bXPcbFqAtIUxYfBEpVP6lA5+J2r+htLaDi04+LLQf/vU76rQ/SvFcdnd3Y9/wti+UmxvHKAGFqKH2xyr1qncI8Rdo9rezhGcuqKS8i+3UUG8DGqcQeshwGRvxRkvFg/jh+/adZBS71W0w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pRL0UvNdHD3s4CJd428rmdW97NYNmAI0AVnnctl7IJU=;
 b=1+PcMvFAzrGbT/lN/U9caiCr+MipdVfLb0KqXBW+V5C4NE/LiVlWog/AYZlUP3GE7kphuecEKMqMmaWtYJlO7wHQFSHVugYpYpt1tx3PYmG4EaHnNpw9A8j9Wb9jOAzD+rLkONWozEcI7FCpDyDWUMfDL0qNJTGMop5jW7ptzJQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, 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>, Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v10 2/2] xen/vpci: header: filter PCI capabilities
Date: Mon, 4 Dec 2023 16:09:13 -0500
Message-ID: <20231204210916.3651999-3-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231204210916.3651999-1-stewart.hildebrand@amd.com>
References: <20231204210916.3651999-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F5:EE_|CH2PR12MB4087:EE_
X-MS-Office365-Filtering-Correlation-Id: 50ea0472-51c2-45db-a118-08dbf50d57e5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	8JiYhka1OAEpNF0t93kym/VsJ18OBG/x4E5ac6kj6rKXYF5VR1weSjOfsG6Zc3rScWc3HfTSuTD+LkRXZ4xg2eeozYgzz1GSFVNa0t2LCBj3D0bnPvP5tp+aNLhiTnzjq9fHC2jLwMSt+7jdmrpi6ih8q+8qGmt2j44PAO0RcYi2ya7oSf4+Rj+51sk4MwcJEhTcIKTrlKtFv9QCJ3F679vr0hePKZlfCK9yeh4MpjZqhXhBjrIIhuPAfDHotEWQm7UQDiIjOwN2aWT+9Kfm2MULKBUrkTlDbsDdIotZ87d7kFs1mQKJwXGzt/f6eZhhhDFdqDUuDyV22dMnSfzxWS3dKwcPt5N1+i/tiLtXA+Fk4fpCZNsA+JS2KTuKizUjzz4xdtT/RrPqXqYaRYR4YCCdnDclebEzVL63wcdR+yAF3uLNMoAiU2OgyzvXnYW4DU2gdDZVYe//a6Lvs2WRTwFaQagS/OsUb1RBg6CZNaHICSsXPkDXOdfmDhXBJ8bDWCfzYq848yXvqN49Fhojo7M9YYdzoFN6wZaCk5yBj7nAI902f3/PdI09+Ytm8JpwnyDVz3b8FnCW5RUisRM2GGGJuo3VoxuGidViVXs0wuqSIPCwz7kznl8b22uFByvcHXEEsvmcIgFVdoxPBJr9YJBn4Ax3w17Bi8rS28bZDxeB4PsmyDX7AJ0iXRvlhknbuH7TKi6FkVNKHWIMDbuK3EIfCfsi3GTFY5o4FeWnDKV+NPVZMsYqoCtMH6dDKC0xd3A/71vNSQUOhBV0p/1gFg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(376002)(39860400002)(396003)(136003)(230922051799003)(82310400011)(1800799012)(64100799003)(451199024)(186009)(40470700004)(46966006)(36840700001)(336012)(26005)(478600001)(83380400001)(47076005)(6666004)(356005)(81166007)(426003)(1076003)(40480700001)(82740400003)(36756003)(2616005)(316002)(6916009)(54906003)(70586007)(70206006)(36860700001)(5660300002)(4326008)(86362001)(2906002)(8936002)(8676002)(40460700003)(44832011)(41300700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 21:09:45.8916
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 50ea0472-51c2-45db-a118-08dbf50d57e5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F5.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4087

Currently, Xen vPCI only supports virtualizing the MSI and MSI-X capabilities.
Hide all other PCI capabilities (including extended capabilities) from domUs for
now, even though there may be certain devices/drivers that depend on being able
to discover certain capabilities.

We parse the physical PCI capabilities linked list and add vPCI register
handlers for the next elements, inserting our own next value, thus presenting a
modified linked list to the domU.

Introduce helper functions vpci_hw_read8 and vpci_read_val. The vpci_read_val
helper function returns a fixed value, which may be used for read as zero
registers, or registers whose value doesn't change.

Introduce pci_find_next_cap_ttl() helper while adapting the logic from
pci_find_next_cap() to suit our needs, and implement the existing
pci_find_next_cap() in terms of the new helper.

Rename init_bars() to init_header() since it is now doing more than initializing
BARs.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
v9->v10:
* rename s/cap/caps/ parameter in pci_find_next_cap_ttl()
* make caps parameter in pci_find_next_cap_ttl() an actual array
* make supported_caps static
* add Jan's R-b tag
* mention renaming s/init_bars/init_header/ in commit message

v8->v9:
* move local variable definitions inside loop in pci_find_next_cap_ttl()
* constify supported_caps array and cap parameter of pci_find_next_cap_ttl()
* add comment by vpci_read_val() helper
* rename s/init_bars/init_header/
* add Roger's R-b tag

v7->v8:
* use to array instead of match function
* include lib.h for ARRAY_SIZE
* don't emulate PCI_CAPABILITY_LIST register if PCI_STATUS_CAP_LIST bit is not
  set in hardware
* spell out RAZ/WI acronym
* dropped R-b tag since the patch has changed moderately since the last rev

v6->v7:
* no change

v5->v6:
* add register handlers before status register handler in init_bars()
* s/header->mask_cap_list/mask_cap_list/

v4->v5:
* use more appropriate types, continued
* get rid of unnecessary hook function
* add Jan's R-b

v3->v4:
* move mask_cap_list setting to this patch
* leave pci_find_next_cap signature alone
* use more appropriate types

v2->v3:
* get rid of > 0 in loop condition
* implement pci_find_next_cap in terms of new pci_find_next_cap_ttl function so
  that hypothetical future callers wouldn't be required to pass &ttl.
* change NULL to (void *)0 for RAZ value passed to vpci_read_val
* change type of ttl to unsigned int
* remember to mask off the low 2 bits of next in the initial loop iteration
* change return type of pci_find_next_cap and pci_find_next_cap_ttl
* avoid wrapping the PCI_STATUS_CAP_LIST condition by using ! instead of == 0

v1->v2:
* change type of ttl to int
* use switch statement instead of if/else
* adapt existing pci_find_next_cap helper instead of rolling our own
* pass ttl as in/out
* "pass through" the lower 2 bits of the next pointer
* squash helper functions into this patch to avoid transient dead code situation
* extended capabilities RAZ/WI
---
 xen/drivers/pci/pci.c     | 33 ++++++++++++-------
 xen/drivers/vpci/header.c | 67 +++++++++++++++++++++++++++++++++++++--
 xen/drivers/vpci/vpci.c   | 12 +++++++
 xen/include/xen/pci.h     |  3 ++
 xen/include/xen/vpci.h    |  6 ++++
 5 files changed, 108 insertions(+), 13 deletions(-)

diff --git a/xen/drivers/pci/pci.c b/xen/drivers/pci/pci.c
index 3569ccb24e9e..edf5b9f7ae9f 100644
--- a/xen/drivers/pci/pci.c
+++ b/xen/drivers/pci/pci.c
@@ -39,31 +39,42 @@ unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap)
     return 0;
 }
 
-unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,
-                               unsigned int cap)
+unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
+                                   const unsigned int caps[], unsigned int n,
+                                   unsigned int *ttl)
 {
-    u8 id;
-    int ttl = 48;
-
-    while ( ttl-- )
+    while ( (*ttl)-- )
     {
+        unsigned int id, i;
+
         pos = pci_conf_read8(sbdf, pos);
         if ( pos < 0x40 )
             break;
 
-        pos &= ~3;
-        id = pci_conf_read8(sbdf, pos + PCI_CAP_LIST_ID);
+        id = pci_conf_read8(sbdf, (pos & ~3) + PCI_CAP_LIST_ID);
 
         if ( id == 0xff )
             break;
-        if ( id == cap )
-            return pos;
+        for ( i = 0; i < n; i++ )
+        {
+            if ( id == caps[i] )
+                return pos;
+        }
 
-        pos += PCI_CAP_LIST_NEXT;
+        pos = (pos & ~3) + PCI_CAP_LIST_NEXT;
     }
+
     return 0;
 }
 
+unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,
+                               unsigned int cap)
+{
+    unsigned int ttl = 48;
+
+    return pci_find_next_cap_ttl(sbdf, pos, &cap, 1, &ttl) & ~3;
+}
+
 /**
  * pci_find_ext_capability - Find an extended capability
  * @sbdf: PCI device to query
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 351318121e48..58195549d50a 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -18,6 +18,7 @@
  */
 
 #include <xen/iocap.h>
+#include <xen/lib.h>
 #include <xen/sched.h>
 #include <xen/softirq.h>
 #include <xen/vpci.h>
@@ -513,7 +514,7 @@ static void cf_check rom_write(
         rom->addr = val & PCI_ROM_ADDRESS_MASK;
 }
 
-static int cf_check init_bars(struct pci_dev *pdev)
+static int cf_check init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
     uint64_t addr, size;
@@ -545,6 +546,68 @@ static int cf_check init_bars(struct pci_dev *pdev)
     if ( rc )
         return rc;
 
+    if ( !is_hardware_domain(pdev->domain) )
+    {
+        if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
+        {
+            /* Only expose capabilities to the guest that vPCI can handle. */
+            unsigned int next, ttl = 48;
+            static const unsigned int supported_caps[] = {
+                PCI_CAP_ID_MSI,
+                PCI_CAP_ID_MSIX,
+            };
+
+            next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
+                                         supported_caps,
+                                         ARRAY_SIZE(supported_caps), &ttl);
+
+            rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                                   PCI_CAPABILITY_LIST, 1,
+                                   (void *)(uintptr_t)next);
+            if ( rc )
+                return rc;
+
+            next &= ~3;
+
+            if ( !next )
+                /*
+                 * If we don't have any supported capabilities to expose to the
+                 * guest, mask the PCI_STATUS_CAP_LIST bit in the status
+                 * register.
+                 */
+                mask_cap_list = true;
+
+            while ( next && ttl )
+            {
+                unsigned int pos = next;
+
+                next = pci_find_next_cap_ttl(pdev->sbdf,
+                                             pos + PCI_CAP_LIST_NEXT,
+                                             supported_caps,
+                                             ARRAY_SIZE(supported_caps), &ttl);
+
+                rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
+                                       pos + PCI_CAP_LIST_ID, 1, NULL);
+                if ( rc )
+                    return rc;
+
+                rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                                       pos + PCI_CAP_LIST_NEXT, 1,
+                                       (void *)(uintptr_t)next);
+                if ( rc )
+                    return rc;
+
+                next &= ~3;
+            }
+        }
+
+        /* Extended capabilities read as zero, write ignore */
+        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL, 0x100, 4,
+                               (void *)0);
+        if ( rc )
+            return rc;
+    }
+
     /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
     rc = vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
                                 PCI_STATUS, 2, NULL,
@@ -642,7 +705,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
 
     return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false) : 0;
 }
-REGISTER_VPCI_INIT(init_bars, VPCI_PRIORITY_MIDDLE);
+REGISTER_VPCI_INIT(init_header, VPCI_PRIORITY_MIDDLE);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index d569f596a4c3..72ef277c4f8e 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -137,6 +137,18 @@ static void cf_check vpci_ignored_write(
 {
 }
 
+uint32_t cf_check vpci_read_val(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
+{
+    return (uintptr_t)data;
+}
+
+uint32_t cf_check vpci_hw_read8(
+    const struct pci_dev *pdev, unsigned int reg, void *data)
+{
+    return pci_conf_read8(pdev->sbdf, reg);
+}
+
 uint32_t cf_check vpci_hw_read16(
     const struct pci_dev *pdev, unsigned int reg, void *data)
 {
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 50d7dfb2a2fd..2a0a01bf92e5 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -205,6 +205,9 @@ int pci_mmcfg_read(unsigned int seg, unsigned int bus,
 int pci_mmcfg_write(unsigned int seg, unsigned int bus,
                     unsigned int devfn, int reg, int len, u32 value);
 unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap);
+unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
+                                   const unsigned int caps[], unsigned int n,
+                                   unsigned int *ttl);
 unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,
                                unsigned int cap);
 unsigned int pci_find_ext_capability(pci_sbdf_t sbdf, unsigned int cap);
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 85c52a1ebac7..d20c301a3db3 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -57,7 +57,13 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size);
 void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
                 uint32_t data);
 
+/* Helper to return the value passed in data. */
+uint32_t cf_check vpci_read_val(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+
 /* Passthrough handlers. */
+uint32_t cf_check vpci_hw_read8(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
 uint32_t cf_check vpci_hw_read16(
     const struct pci_dev *pdev, unsigned int reg, void *data);
 uint32_t cf_check vpci_hw_read32(
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 21:31:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 21:31:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647319.1010329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAGXR-0003NB-Hn; Mon, 04 Dec 2023 21:31:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647319.1010329; Mon, 04 Dec 2023 21:31:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAGXR-0003N4-F7; Mon, 04 Dec 2023 21:31:37 +0000
Received: by outflank-mailman (input) for mailman id 647319;
 Mon, 04 Dec 2023 21:31: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=8A84=HP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAGXP-0003MB-NU
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 21:31:35 +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 7df85136-92ec-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 22:31:33 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 6E94A61346;
 Mon,  4 Dec 2023 21:31:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87769C433C8;
 Mon,  4 Dec 2023 21:31: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: 7df85136-92ec-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701725491;
	bh=jZE8WhQFFk5OHFb1w+ll7JB5KoaZRmBWaeDlAuQbU04=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Yu51sE3vS37G/VqsMHOxqKss2H9lLc4fVXXc5Sswc7TWVZjCgeKTO9ir8aGro4AeS
	 K+Mdx7AbXDvIaTiNM7EJLY6Kz13WkF/5sEcmT2/1rFAokfwoKLWJKZstos9WHut7bE
	 JUZ8TcEAGE9K+XFxplS2TnChfCNABEy0P3SsvlGMr6qu5da3hWCuc9PiDaees+tkhp
	 7dV2Ee3diB7OkvxVY3U043mJCUsBP7aejaGnpmqJ7SAF4M0ZuZgbdwi/xNEgdLu73w
	 cgXGTviVpjT7CtDCU3eeWQ1JePKAjfPB5FI2JU+ySDBuAobRBAcQ46WkQzOwDXXi8q
	 g5naLxareX1NQ==
Date: Mon, 4 Dec 2023 13:31:27 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
cc: Thomas Gleixner <tglx@linutronix.de>, Juergen Gross <jgross@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>, 
    Bjorn Helgaas <bhelgaas@google.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, 
    "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, 
    "Stabellini, Stefano" <stefano.stabellini@amd.com>, 
    "Deucher, Alexander" <Alexander.Deucher@amd.com>, 
    "Koenig, Christian" <Christian.Koenig@amd.com>, 
    "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, 
    "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, 
    "Huang, Honglei1" <Honglei1.Huang@amd.com>, 
    "Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
In-Reply-To: <BL1PR12MB5849F2E24E00BF7B20A0B4A6E786A@BL1PR12MB5849.namprd12.prod.outlook.com>
Message-ID: <alpine.DEB.2.22.394.2312041331210.110490@ubuntu-linux-20-04-desktop>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com> <20231124103123.3263471-2-Jiqian.Chen@amd.com> <87edg2xuu9.ffs@tglx> <BL1PR12MB5849F2E24E00BF7B20A0B4A6E786A@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 Mon, 3 Dec 2023, Chen, Jiqian wrote:
> >> vpci device state when device is reset on dom0 side.
> >>
> >> And call that function in pcistub_init_device. Because when
> >> we use "pci-assignable-add" to assign a passthrough device in
> >> Xen, it will reset passthrough device and the vpci state will
> >> out of date, and then device will fail to restore bar state.
> >>
> >> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >> Signed-off-by: Huang Rui <ray.huang@amd.com>
> > 
> > This Signed-off-by chain is incorrect.
> > 
> > Documentation/process/submitting-patches.rst has a full chapter about
> > S-O-B and the correct usage.
> I am the author of this series of patches, and Huang Rui transported the v1 to upstream. And now I transport v2. I am not aware that the SOB chain is incorrect.
> Do you have any suggestions?

I think he means that your Signed-off-by should be the second one of the
two as you are the one submitting the patch to the LKML


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 22:08:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 22:08:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647328.1010340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAH6g-0001S3-5l; Mon, 04 Dec 2023 22:08:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647328.1010340; Mon, 04 Dec 2023 22:08:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAH6g-0001Rw-2p; Mon, 04 Dec 2023 22:08:02 +0000
Received: by outflank-mailman (input) for mailman id 647328;
 Mon, 04 Dec 2023 22:08:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8A84=HP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAH6e-0001Qj-An
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 22:08: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 93de5bf8-92f1-11ee-98e5-6d05b1d4d9a1;
 Mon, 04 Dec 2023 23:07:57 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 797BE61408;
 Mon,  4 Dec 2023 22:07:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4DBEDC433C8;
 Mon,  4 Dec 2023 22:07:53 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93de5bf8-92f1-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701727675;
	bh=Yj9s4ZlBlXNkKQ3M4mmvLhWZ849iVnYCzOnBOl9yV8Y=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Atv7C3hliiqneW6VcwPC5u55ltlXDlYXXm7lEL/YojYEqlJf8i9/WY6TmuZvZktUs
	 VO7Z9iCrsIXfGbNFTP/chbAgE8uioTHmg3xe4pUvDYCERJ0KTEmRipXkwzoiissTuf
	 Hewe9f6OsYnzqV2kjGqxd/d97F/etRZp/E4MS+6cRPwyn7NSj2uKMAkLdKAwdCM7BT
	 lBx1CPcNB+E4WHz9ihtpnrQfJnop0u/w2kTMR0orpWS+aJE+JDeFqmNKvlmqi55MiP
	 NSYl8AxagMGZflTo+nWRnSo0jLFe3R6ugY3nNdWaI+/V5MWpdrft/TCZMr4CVZRT7a
	 QbKeR49qkvBBQ==
Date: Mon, 4 Dec 2023 14:07:51 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
In-Reply-To: <ZW2wuqXW-DneUVi0@macbook>
Message-ID: <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com> <20231113222118.825758-5-stewart.hildebrand@amd.com> <ZWmkh0Xeaynh43N7@macbook> <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop> <ZW2wuqXW-DneUVi0@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-63937670-1701725629=:110490"
Content-ID: <alpine.DEB.2.22.394.2312041333510.110490@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-63937670-1701725629=:110490
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312041333511.110490@ubuntu-linux-20-04-desktop>

On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
> On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
> > On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> > > On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
> > > > @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
> > > >          bus = PCI_BUS(machine_sbdf);
> > > >          devfn = PCI_DEVFN(machine_sbdf);
> > > >  
> > > > +        if ( needs_vpci(d) && !has_vpci(d) )
> > > > +        {
> > > > +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
> > > > +                   &PCI_SBDF(seg, bus, devfn), d);
> > > > +            ret = -EPERM;
> > > > +            break;
> > > 
> > > I think this is likely too restrictive going forward.  The current
> > > approach is indeed to enable vPCI on a per-domain basis because that's
> > > how PVH dom0 uses it, due to being unable to use ioreq servers.
> > > 
> > > If we start to expose vPCI suport to guests the interface should be on
> > > a per-device basis, so that vPCI could be enabled for some devices,
> > > while others could still be handled by ioreq servers.
> > > 
> > > We might want to add a new flag to xen_domctl_assign_device (used by
> > > XEN_DOMCTL_assign_device) in order to signal whether the device will
> > > use vPCI.
> > 
> > Actually I don't think this is a good idea. I am all for flexibility but
> > supporting multiple different configurations comes at an extra cost for
> > both maintainers and contributors. I think we should try to reduce the
> > amount of configurations we support rather than increasing them
> > (especially on x86 where we have PV, PVH, HVM).
> 
> I think it's perfectly fine to initially require a domain to have all
> its devices either passed through using vPCI or ireqs, but the
> interface IMO should allow for such differentiation in the future.
> That's why I think introducing a domain wide vPCI flag might not be
> the best option going forward.
> 
> It would be perfectly fine for XEN_DOMCTL_assign_device to set a
> domain wide vPCI flag, iow:
> 
> if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
> {
>     if ( has_arch_pdevs(d) )
>     {
>         printk("All passthrough devices must use the same backend\n");
>         return -EINVAL;
>     }
> 
>     /* Set vPCI domain flag */
> }

That would be fine by me, but maybe we can avoid this change too. I was
imagining that vPCI would be enabled at domain creation, not at runtime.
And that vPCI would be enabled by default for all PVH guests (once we
are past the initial experimental phase.)


> We have already agreed that we want to aim for a setup where ioreqs
> and vPCI could be used for the same domain, but I guess you assumed
> that ioreqs would be used for emulated devices exclusively and vPCI
> for passthrough devices?

Yes, that's right


> Overall if we agree that ioreqs and vPCI should co-exist for a domain,
> I'm not sure there's much reason to limit ioreqs to only handle
> emulated devices, seems like an arbitrary limitation.

Reply below


> > I don't think we should enable IOREQ servers to handle PCI passthrough
> > for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
> > Passthrough can be handled by vPCI just fine. I think this should be a
> > good anti-feature to have (a goal to explicitly not add this feature) to
> > reduce complexity. Unless you see a specific usecase to add support for
> > it?
> 
> There are passthrough devices (GPUs) that might require some extra
> mediation on dom0 (like the Intel GVT-g thing) that would force the
> usage of ioreqs to passthrough.

>From an architectural perspective, I think it would be cleaner, simpler
to maintain, and simpler to understand if Xen was the sole owner of the
PCI Root Complex and PCI config space mediation (implemented with vPCI).
IOREQ can be used for emulation and it works very well for that. At
least in my mind, that makes things much simpler.

I understand there are non-trivial cases, like virtual GPUs with
hardware access, but I don't classify those as passthrough. That's
because there isn't one device that gets fully assigned to the guest.
Instead, there is an emulated device (hence IOREQ) with certain MMIO
regions and interrupts that end up being directly mapped from real
hardware.

So I think it is natural in those cases to use IOREQ and it is also
natural to have QEMU remap MMIO/IRQs at runtime. From a vPCI
perspective, I hope it will mostly look as if the device is assigned to
Dom0. Even if it ends up being more complex than that, Rome wasn't
built in one day, and I don't think we should try to solve this problem
on day1 (as long as the interfaces are not stable interfaces).


> It's important that the interfaces we introduce are correct IMO,
> because that ends up reflecting on the configuration options that we
> expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
> XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
> gets placed there will ultimately influence how the option gets
> exposed in xl/libxl, and the interface there is relevant to keep
> stable for end user sanity.

I agree with you on the stable interfaces. The important part is not to
introduce changes to stable interfaces that could limit us in the
future. Specifically that includes xl and libxl, we need to be careful
there. But I don't see a single per-domain vPCI enable/disable option as
a problem. Let's say that in the future we have a mediated vGPU
implementation: if it works together with vPCI then the per-domain vPCI
option in libxl will be enabled (either explicitely or by default), if
it doesn't then vPCI will be disabled (either explicitely or by the
newer vGPU options.)

For *unstable* interfaces (XEN_DOMCTL_assign_device) I would rather wait
before adding more changes on top of them, not because I don't care
about the mediated GPU problem (we do have something similar at AMD),
but because I worry that if we try to change them now we might not do a
good enough job. I would prefer to wait until we know more about the
actual use case, ideally with code supporting it.

I think the difference in points of views comes from the fact that I see
vPCI as the default, QEMU only as a limited peripheral emulator (or
mediator for the vGPU case) but not in control. vPCI and QEMU are not
equal in my view. vPCI is in charge and always present if not in very
uncommon setups (even if we decide to hook it inside Xen by using
internal IOREQ interfaces). QEMU might come and go.

Now that I am writing this, I realize this is also why I wasn't too
happy with the idea of hooking vPCI using IOREQ. It makes them look as
if they are the same, while I don't they should be considered at the
same level of priority, criticality, safety, integration in the system,
etc.
--8323329-63937670-1701725629=:110490--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 22:19:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 22:19:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647332.1010350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAHHz-0003yh-Ch; Mon, 04 Dec 2023 22:19:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647332.1010350; Mon, 04 Dec 2023 22:19:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAHHz-0003ya-8s; Mon, 04 Dec 2023 22:19:43 +0000
Received: by outflank-mailman (input) for mailman id 647332;
 Mon, 04 Dec 2023 22:19:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8A84=HP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAHHy-0003yQ-Nv
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 22:19:42 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 36a1473c-92f3-11ee-9b0f-b553b5be7939;
 Mon, 04 Dec 2023 23:19:39 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 3360BB81233;
 Mon,  4 Dec 2023 22:19:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B907CC433C8;
 Mon,  4 Dec 2023 22:19:34 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36a1473c-92f3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701728377;
	bh=0hNiw7to/yO9/NIok2V2cBm5rPlBjCyUvP5ni95GaCo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=nl2Zobp4xA5MMX0jOv7fSNJ3LZ7p6u6rrTEfJqV3NaH9iLF5TGS+8W1XJ3DSaXp7I
	 CfnzIX09PeJ0dI7Av/hlmk2xlYT41Yw96jdH2Bcr6fKBtqrA6TAU37MNT6UXUFKLLG
	 fLkP9o2Xk+xEk2uSax32m1PuJESDhZvvI4rWklxEflp5JVXPwfMwVF+3C/559d9gz+
	 D7uyDJeh0fCJ1ceOAruTXFN8PHTXP9ZB4KrZOPEjy4TEc1CbdQJkPQqT/tvJGGXGbB
	 cGRTgfnABxD9Rtj9nn7YKUUjZVPCtprOMd0dvkekZCY3J/VlKBdRig+5FFznGyg0HQ
	 VfR2Qofk/fH3g==
Date: Mon, 4 Dec 2023 14:19:33 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Jiqian Chen <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Thomas Gleixner <tglx@linutronix.de>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>, 
    Bjorn Helgaas <bhelgaas@google.com>, xen-devel@lists.xenproject.org, 
    linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, 
    Stefano Stabellini <stefano.stabellini@amd.com>, 
    Alex Deucher <Alexander.Deucher@amd.com>, 
    Christian Koenig <Christian.Koenig@amd.com>, 
    Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
    Xenia Ragiadakou <xenia.ragiadakou@amd.com>, 
    Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang <Julia.Zhang@amd.com>, 
    Huang Rui <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
In-Reply-To: <ZW2ptexPQXrWBiOS@macbook>
Message-ID: <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com> <20231124103123.3263471-3-Jiqian.Chen@amd.com> <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop> <ZWiyBP4Lzz5lXraP@macbook> <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook> <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop> <ZW2ptexPQXrWBiOS@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1207504391-1701728057=:110490"
Content-ID: <alpine.DEB.2.22.394.2312041414460.110490@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-1207504391-1701728057=:110490
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312041414461.110490@ubuntu-linux-20-04-desktop>

On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
> On Fri, Dec 01, 2023 at 07:37:55PM -0800, Stefano Stabellini wrote:
> > On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> > > On Thu, Nov 30, 2023 at 07:15:17PM -0800, Stefano Stabellini wrote:
> > > > On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> > > > > On Wed, Nov 29, 2023 at 07:53:59PM -0800, Stefano Stabellini wrote:
> > > > > > On Fri, 24 Nov 2023, Jiqian Chen wrote:
> > > > > > > This patch is to solve two problems we encountered when we try to
> > > > > > > passthrough a device to hvm domU base on Xen PVH dom0.
> > > > > > > 
> > > > > > > First, hvm guest will alloc a pirq and irq for a passthrough device
> > > > > > > by using gsi, before that, the gsi must first has a mapping in dom0,
> > > > > > > see Xen code pci_add_dm_done->xc_domain_irq_permission, it will call
> > > > > > > into Xen and check whether dom0 has the mapping. See
> > > > > > > XEN_DOMCTL_irq_permission->pirq_access_permitted, "current" is PVH
> > > > > > > dom0 and it return irq is 0, and then return -EPERM.
> > > > > > > This is because the passthrough device doesn't do PHYSDEVOP_map_pirq
> > > > > > > when thay are enabled.
> > > > > > > 
> > > > > > > Second, in PVH dom0, the gsi of a passthrough device doesn't get
> > > > > > > registered, but gsi must be configured for it to be able to be
> > > > > > > mapped into a domU.
> > > > > > > 
> > > > > > > After searching codes, we can 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 problems
> > > > > > > can be conclude to that the gsi of a passthrough device doesn't be
> > > > > > > unmasked.
> > > > > > > 
> > > > > > > To solve the unmaske problem, this patch call the unmask_irq when we
> > > > > > > assign a device to be passthrough. So that the gsi can get registered
> > > > > > > and mapped in PVH dom0.
> > > > > > 
> > > > > > 
> > > > > > Roger, this seems to be more of a Xen issue than a Linux issue. Why do
> > > > > > we need the unmask check in Xen? Couldn't we just do:
> > > > > > 
> > > > > > 
> > > > > > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> > > > > > index 4e40d3609a..df262a4a18 100644
> > > > > > --- a/xen/arch/x86/hvm/vioapic.c
> > > > > > +++ b/xen/arch/x86/hvm/vioapic.c
> > > > > > @@ -287,7 +287,7 @@ static void vioapic_write_redirent(
> > > > > >              hvm_dpci_eoi(d, gsi);
> > > > > >      }
> > > > > >  
> > > > > > -    if ( is_hardware_domain(d) && unmasked )
> > > > > > +    if ( is_hardware_domain(d) )
> > > > > >      {
> > > > > >          /*
> > > > > >           * NB: don't call vioapic_hwdom_map_gsi while holding hvm.irq_lock
> > > > > 
> > > > > There are some issues with this approach.
> > > > > 
> > > > > mp_register_gsi() will only setup the trigger and polarity of the
> > > > > IO-APIC pin once, so we do so once the guest unmask the pin in order
> > > > > to assert that the configuration is the intended one.  A guest is
> > > > > allowed to write all kind of nonsense stuff to the IO-APIC RTE, but
> > > > > that doesn't take effect unless the pin is unmasked.
> > > > > 
> > > > > Overall the question would be whether we have any guarantees that
> > > > > the hardware domain has properly configured the pin, even if it's not
> > > > > using it itself (as it hasn't been unmasked).
> > > > > 
> > > > > IIRC PCI legacy interrupts are level triggered and low polarity, so we
> > > > > could configure any pins that are not setup at bind time?
> > > > 
> > > > That could work.
> > > > 
> > > > Another idea is to move only the call to allocate_and_map_gsi_pirq at
> > > > bind time? That might be enough to pass a pirq_access_permitted check.
> > > 
> > > Maybe, albeit that would change the behavior of XEN_DOMCTL_bind_pt_irq
> > > just for PT_IRQ_TYPE_PCI and only when called from a PVH dom0 (as the
> > > parameter would be a GSI instead of a previously mapped IRQ).  Such
> > > difference just for PT_IRQ_TYPE_PCI is slightly weird - if we go that
> > > route I would recommend that we instead introduce a new dmop that has
> > > this syntax regardless of the domain type it's called from.
> > 
> > Looking at the code it is certainly a bit confusing. My point was that
> > we don't need to wait until polarity and trigger are set appropriately
> > to allow Dom0 to pass successfully a pirq_access_permitted() check. Xen
> > should be able to figure out that Dom0 is permitted pirq access.
> 
> The logic is certainly not straightforward, and it could benefit from
> some comments.
> 
> The irq permissions are a bit special, in that they get setup when the
> IRQ is mapped.
> 
> The problem however is not so much with IRQ permissions, that we can
> indeed sort out internally in Xen.  Such check in dom0 has the side
> effect of preventing the IRQ from being assigned to a domU without the
> hardware source being properly configured AFAICT.

Now I understand why you made a comment previously about Xen having to
configure trigger and polarity for these interrupts on its own.


> > So the idea was to move the call to allocate_and_map_gsi_pirq() earlier
> > somewhere because allocate_and_map_gsi_pirq doesn't require trigger or
> > polarity to be configured to work. But the suggestion of doing it a
> > "bind time" (meaning: XEN_DOMCTL_bind_pt_irq) was a bad idea.
> > 
> > But maybe we can find another location, maybe within
> > xen/arch/x86/hvm/vioapic.c, to call allocate_and_map_gsi_pirq() before
> > trigger and polarity are set and before the interrupt is unmasked.
> > 
> > Then we change the implementation of vioapic_hwdom_map_gsi to skip the
> > call to allocate_and_map_gsi_pirq, because by the time
> > vioapic_hwdom_map_gsi we assume that allocate_and_map_gsi_pirq had
> > already been done.
> 
> But then we would end up in a situation where the
> pirq_access_permitted() check will pass, but the IO-APIC pin won't be
> configured, which I think it's not what we want.
> 
> One option would be to allow mp_register_gsi() to be called multiple
> times, and update the IO-APIC pin configuration as long as the pin is
> not unmasked.  That would propagate each dom0 RTE update to the
> underlying IO-APIC.  However such approach relies on dom0 configuring
> all possible IO-APIC pins, even if no device on dom0 is using them, I
> think it's not a very reliable option.
> 
> Another option would be to modify the toolstack to setup the GSI
> itself using the PHYSDEVOP_setup_gsi hypercall.  As said in a previous
> email, since we only care about PCI device passthrough the legacy INTx
> should always be level triggered and low polarity.
> 
> > I am not familiar with vioapic.c but to give you an idea of what I was
> > thinking:
> > 
> > 
> > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> > index 4e40d3609a..16d56fe851 100644
> > --- a/xen/arch/x86/hvm/vioapic.c
> > +++ b/xen/arch/x86/hvm/vioapic.c
> > @@ -189,14 +189,6 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,
> >          return ret;
> >      }
> >  
> > -    ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
> > -    if ( ret )
> > -    {
> > -        gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
> > -                 gsi, ret);
> > -        return ret;
> > -    }
> > -
> >      pcidevs_lock();
> >      ret = pt_irq_create_bind(currd, &pt_irq_bind);
> >      if ( ret )
> > @@ -287,6 +279,17 @@ static void vioapic_write_redirent(
> >              hvm_dpci_eoi(d, gsi);
> >      }
> >  
> > +    if ( is_hardware_domain(d) ) 
> > +    {
> > +        int pirq = gsi, ret;
> > +        ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
> > +        if ( ret )
> > +        {
> > +            gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
> > +                    gsi, ret);
> > +            return ret;
> > +        }
> > +    }
> >      if ( is_hardware_domain(d) && unmasked )
> >      {
> >          /*
> 
> As said above, such approach relies on dom0 writing to the IO-APIC RTE
> of likely each IO-APIC pin, which is IMO not quite reliable.  In there
> are two different issues here that need to be fixed for PVH dom0:
> 
>  - Fix the XEN_DOMCTL_irq_permission pirq_access_permitted() call to
>    succeed for a PVH dom0, even if dom0 is not using the GSI itself.

Yes makes sense


>  - Configure IO-APIC pins for PCI interrupts even if dom0 is not using
>    the IO-APIC pin itself.
> 
> First one needs to be fixed internally in Xen, second one will require
> the toolstack to issue an extra hypercall in order to ensure the
> IO-APIC pin is properly configured.
 
On ARM, Xen doesn't need to wait for dom0 to configure interrupts
correctly. Xen configures them all on its own at boot based on Device
Tree information. I guess it is not possible to do the same on x86? If
not, then I can see why we would need 1 extra toolstack hypercall for
that (or to bundle the operation of configuring IO-APIC pins together
with an existing toolstack hypercall).
--8323329-1207504391-1701728057=:110490--


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 23:13:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 23:13:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647340.1010359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAI8H-0005qK-6r; Mon, 04 Dec 2023 23:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647340.1010359; Mon, 04 Dec 2023 23:13:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAI8H-0005qD-48; Mon, 04 Dec 2023 23:13:45 +0000
Received: by outflank-mailman (input) for mailman id 647340;
 Mon, 04 Dec 2023 23:13:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8A84=HP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAI8G-0005q7-23
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 23:13:44 +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 c2d5addb-92fa-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 00:13:42 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 38453CE134C;
 Mon,  4 Dec 2023 23:13:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7710C433C7;
 Mon,  4 Dec 2023 23:13:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2d5addb-92fa-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701731618;
	bh=e9k4q9sgvXCMMMEiOW/0/Ti2oAfmVqbtFy6V+ERJT58=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=YGZuWCOumN4jf7pS26x/W9u1L4O5kX8Su78C1YXu1x2NvA+pNK+EguvwpSkLCFqIG
	 wWjfFYYWLzkeG0rPyQ5TTMPhpAZEwSS2Q0kEQV8oYKkBMIlyEZgp/zk8fCeP13csB1
	 zAtAw2HGSwnrIEHo6svA7+CVU4FMr0+lgh9s070WHmLithZ6vvexIudEdTxWDjjPYh
	 F3m4EI8iLq92S+w0B3oKoyAZy3NW2IJz6k6iFpS58jkw/YO/yAthB87aD1cFivMJos
	 hTOvzifSVUt8+e6qncM3wZLswFAnY/t5e9hXCA0csg3Ygnp9N+v0oKNsqZH2qq+ug3
	 D4bvjzFyqPxUg==
Date: Mon, 4 Dec 2023 15:13:36 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH v2 1/3] automation/eclair: tag function calls to
 address violations of MISRA C:2012 Rule 13.1
In-Reply-To: <5683be1b-5eb9-44a7-89a7-70a71991f2f8@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312041513210.110490@ubuntu-linux-20-04-desktop>
References: <cover.1700844359.git.simone.ballarin@bugseng.com> <fc3e04e5d0432b280110414136f0587a1433d9b0.1700844359.git.simone.ballarin@bugseng.com> <alpine.DEB.2.22.394.2312011917030.110490@ubuntu-linux-20-04-desktop>
 <5683be1b-5eb9-44a7-89a7-70a71991f2f8@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, 4 Dec 2023, Simone Ballarin wrote:
> On 02/12/23 04:19, Stefano Stabellini wrote:
> > On Fri, 24 Nov 2023, Simone Ballarin wrote:
> > > Rule 13.1: Initializer lists shall not contain persistent side effects
> > > 
> > > Invocations of functions in initializer lists cause violations of rule
> > > 13.1 if the called functions are not tagged with __attribute_pure__ or
> > > __attribute_const__ as they can produce persistent side effects.
> > > 
> > > Handling these violations with  attributes is not always possible: the
> > > pure and const attributes may cause unwanted and potentially dangerous
> > > optimisations.
> > > 
> > > To avoid this problem ECLAIR allows using the same attributes in the
> > > -call_properties setting. Additionally, it adds the noeffect attribute
> > > with the following definition:
> > > "like pure but can also read volatile variable not triggering side
> > > effects"
> > > 
> > > These patch tags some functions used in initializer lists to address
> > > violations of Rule 13.1.
> > > 
> > > No functional changes.
> > > 
> > > Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
> > 
> > Ideally we should also list them somewhere in a document, maybe
> > docs/misra/deviations.rst? Or a new doc? It would be best if this info
> > wouldn't only exist in call_properties.ecl.
> 
> They are not actually deviations, but information that can help
> document the code: I suggest creating a new document.
> 
> Then, ECLAIR or any other tool will be able to retrieve these properties
> directly from this new file.
> 
> If you agree I will do it in a separate patch.

Yes a separate patch is fine. Please don't forget :-)


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 23:16:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 23:16:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647342.1010370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAIBH-0006ik-KE; Mon, 04 Dec 2023 23:16:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647342.1010370; Mon, 04 Dec 2023 23: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 1rAIBH-0006id-Hf; Mon, 04 Dec 2023 23:16:51 +0000
Received: by outflank-mailman (input) for mailman id 647342;
 Mon, 04 Dec 2023 23: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=8A84=HP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAIBF-0006iT-U4
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 23:16:49 +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 328e2b94-92fb-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 00:16:48 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 11BEE61369;
 Mon,  4 Dec 2023 23:16:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 46AF1C433C8;
 Mon,  4 Dec 2023 23:16:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 328e2b94-92fb-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701731806;
	bh=ZX4mr9e3TWfFPkhIEvt//rDHPs/Zz/dT+NjgiDZzjQ0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=hP4aE2jjyoer7VT6Ohq1RMXMhoZoWLBzFn3CMHIccFc8NDNoq2+udGwFzXzTnrwjG
	 rSHUPj3ItNU9i3ODnTFyHPdguLE00dB+iMYKWOxw6MHt+r0GEzGePGlwAWoeYHGiHR
	 LhZoDwY9o1N6ESaPcr3nsRdSyORjTruenhTUvVS+dqynzmh87B5ZdSe9Iaf+WHKgzt
	 CpF6EiP0MM2pY5XksT3wWXrAa9PkXdB4MKTPtFG+ElY4ltIT/n9RWp3dqvrTLl0y/P
	 ApaCWu5/pRMsm3i3Uan+Bt4MTTAjk6B/RDm+rehRvhlgoRAA9itesLfiZz3SoDzJ8D
	 +P038d+5Q78xA==
Date: Mon, 4 Dec 2023 15:16:43 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH] docs/misra: deviate deliberately unused labels
In-Reply-To: <669f63d14926f6335a081711de5a34ef04c61717.1701714146.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312041516350.110490@ubuntu-linux-20-04-desktop>
References: <669f63d14926f6335a081711de5a34ef04c61717.1701714146.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 Mon, 4 Dec 2023, Nicola Vetrini wrote:
> The labels marked with __maybe_unused are either used only
> in certain build configurations or deliberately unused.
> See the justification in docs/misra/deviations.rst.
> 
> No functional changes.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Dec 04 23:18:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 23:18:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647345.1010380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAID3-0007cT-Vm; Mon, 04 Dec 2023 23:18:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647345.1010380; Mon, 04 Dec 2023 23: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 1rAID3-0007cM-T7; Mon, 04 Dec 2023 23:18:41 +0000
Received: by outflank-mailman (input) for mailman id 647345;
 Mon, 04 Dec 2023 23: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=8A84=HP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAID2-0007cE-AN
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 23:18:40 +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 73506ffa-92fb-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 00:18:38 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id B8D55CE1378;
 Mon,  4 Dec 2023 23:18:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 56CA4C433C7;
 Mon,  4 Dec 2023 23:18: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: 73506ffa-92fb-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701731915;
	bh=qAlJz03GWPrqksZsndqCUGsWbl90zT4UeqNlEDotEmg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=l30on7bV0uRcexc6cSnykJKOpFsFRhd9kVKk+7Miot+yyCH9G7v4JSDJl/vriNlaR
	 jsBZA8Ot6XEeExqqfy2fRBBqKPPyIKCGfzxmjI/zZz76tXUp25LBCNMvZeaHvWVLrW
	 lrNXCPWXqdFHrEC+qZEwwSX8jhsFu5oN66iLbttB1BZKjqNeyUOOQt6DwHKU0u6LzH
	 C4F5QQyP4q8hHMj4hb244O4oqWqIhRwNLZiUmdqBbz39+8/l5WIc4f+1tbcdgRwx+H
	 GIwct73vfz13DTUbmM7Gk1eolJLr3iE+JJutNQuNwyMNMWS6OKdT5W6LiKchzAsqZJ
	 lUV6bH1cSD7pg==
Date: Mon, 4 Dec 2023 15:18:31 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, michal.orzel@amd.com, 
    xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, bertrand.marquis@arm.com, julien@xen.org, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 7/7] xen/page_alloc: deviate first_valid_mfn for
 MISRA C Rule 8.4
In-Reply-To: <c7a45a0b0849cd319fb65cbd31f9f9d5@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312041517310.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com> <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.git.nicola.vetrini@bugseng.com> <alpine.DEB.2.22.394.2311301847300.110490@ubuntu-linux-20-04-desktop> <21956d5b-08ad-45ac-96ff-22fe7d54ec60@suse.com>
 <alpine.DEB.2.22.394.2312011901450.110490@ubuntu-linux-20-04-desktop> <5dae5d3e-81f3-4e78-a92f-fd1cc7eb2ea4@suse.com> <c7a45a0b0849cd319fb65cbd31f9f9d5@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, 4 Dec 2023, Nicola Vetrini wrote:
> On 2023-12-04 08:44, Jan Beulich wrote:
> > On 02.12.2023 04:03, Stefano Stabellini wrote:
> > > On Fri, 1 Dec 2023, Jan Beulich wrote:
> > > > On 01.12.2023 03:47, Stefano Stabellini wrote:
> > > > > On Wed, 29 Nov 2023, Nicola Vetrini wrote:
> > > > > > No functional change.
> > > > > > 
> > > > > > Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > > > > > ---
> > > > > > The preferred way to deviate is to use asmlinkage, but this
> > > > > > modification is only
> > > > > > the consequence of NUMA on ARM (and possibly PPC) being a work in
> > > > > > progress.
> > > > > > As stated in the comment above the textual deviation,
> > > > > > first_valid_mfn will
> > > > > > likely then become static and there would be no need for the comment
> > > > > > anymore.
> > > > > > This works towards having the analysis for this rule clean (i.e. no
> > > > > > violations);
> > > > > > the interest in having a clean rule is that then it could be used to
> > > > > > signal
> > > > > > newly introduced violations by making the analysis job fail.
> > > > > 
> > > > > Please add this text as part of the commit message. It can be done on
> > > > > commit.
> > > > 
> > > > I assume you saw my reply on another of the patches in this series as to
> > > > asmlinkage use on variables? IOW I think this paragraph would also need
> > > > adjustment to account for that.
> > > 
> > > I was going to ask you about that: reading your reply
> > > https://marc.info/?l=xen-devel&m=170142048615336 it is not clear to me
> > > what you are asking or suggesting as next step in regard to asmlinkage
> > > use on variables.
> > 
> > Either we need a separate attribute, or we need affirmation that calling
> > convention attributes are ignored (and going to be going forward) for
> > variables, or we need to resort to SAF-* comments. I'm not sure what's
> > best (assuming the "affirm" wouldn't really be possible).
> > 
> 
> Well, gcc does warn on unsupported attributes for the entity which are being
> dropped. This appears to be the case for calling convention attributes, as
> they are not listed in their documentation for variable attributes, but some
> more digging would be required to determine whether that's always the case.

Given that I don't suppose we have many variables that need deviating
(probably only 2-3 overall?) I think it is just easier to add a SAF
comment.


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 23:19:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 23:19:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647347.1010389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAIDf-00088C-7A; Mon, 04 Dec 2023 23:19:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647347.1010389; Mon, 04 Dec 2023 23: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 1rAIDf-000885-4U; Mon, 04 Dec 2023 23:19:19 +0000
Received: by outflank-mailman (input) for mailman id 647347;
 Mon, 04 Dec 2023 23:19: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=8A84=HP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAIDd-00081e-Gd
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 23:19:17 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b5513ec-92fb-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 00:19:16 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 4E122B8159B;
 Mon,  4 Dec 2023 23:19:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EACA2C433C8;
 Mon,  4 Dec 2023 23:19:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b5513ec-92fb-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701731955;
	bh=K5vOBrBN+0un2jPiJXMxLI+rVZy/jeyXqClh0diXL2o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=qM6gis7LG6OoCDy1Kcip5weUETWGi8ypXtEu61c4RCN3zrv3h3YaJNr90EJnMjkZo
	 aHdADYeHLmmXT7udsyckbTd7mu+U0eG2PcIIxShay3KQSO4164knfI4dXyPGjq2b30
	 2o5SJ0uhLSZT48mDBq3rFVR5SLxmIF9sEDuteez1KeCoMslTLcY9fPYDRywqjpUvYs
	 +ciN6J8rTYj7aNYzaVH2r+pa1nZ6n0Z5Per8V/P8APGIDCyXm6P6k9pYxcNRzmVmLH
	 yuKPy4YThKPPHSYAzHmUeq3ClaCbR5lBsdxLu0t+pD9ziSI0abVc6bJfEoh67duE3i
	 vtpIyfSC5rP5g==
Date: Mon, 4 Dec 2023 15:19:12 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org, 
    michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, bertrand.marquis@arm.com, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [XEN PATCH 7/7] xen/page_alloc: deviate first_valid_mfn for
 MISRA C Rule 8.4
In-Reply-To: <67299896-49cb-4d71-aa93-71a2f18b2d0e@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312041518460.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com> <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.git.nicola.vetrini@bugseng.com> <alpine.DEB.2.22.394.2311301847300.110490@ubuntu-linux-20-04-desktop> <21956d5b-08ad-45ac-96ff-22fe7d54ec60@suse.com>
 <alpine.DEB.2.22.394.2312011901450.110490@ubuntu-linux-20-04-desktop> <67299896-49cb-4d71-aa93-71a2f18b2d0e@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 2 Dec 2023, Julien Grall wrote:
> Hi,
> 
> On 02/12/2023 04:03, Stefano Stabellini wrote:
> > On Fri, 1 Dec 2023, Jan Beulich wrote:
> > > On 01.12.2023 03:47, Stefano Stabellini wrote:
> > > > On Wed, 29 Nov 2023, Nicola Vetrini wrote:
> > > > > No functional change.
> > > > > 
> > > > > Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > > > > ---
> > > > > The preferred way to deviate is to use asmlinkage, but this
> > > > > modification is only
> > > > > the consequence of NUMA on ARM (and possibly PPC) being a work in
> > > > > progress.
> > > > > As stated in the comment above the textual deviation, first_valid_mfn
> > > > > will
> > > > > likely then become static and there would be no need for the comment
> > > > > anymore.
> > > > > This works towards having the analysis for this rule clean (i.e. no
> > > > > violations);
> > > > > the interest in having a clean rule is that then it could be used to
> > > > > signal
> > > > > newly introduced violations by making the analysis job fail.
> > > > 
> > > > Please add this text as part of the commit message. It can be done on
> > > > commit.
> > > 
> > > I assume you saw my reply on another of the patches in this series as to
> > > asmlinkage use on variables? IOW I think this paragraph would also need
> > > adjustment to account for that.
> > 
> > I was going to ask you about that: reading your reply
> > https://marc.info/?l=xen-devel&m=170142048615336 it is not clear to me
> > what you are asking or suggesting as next step in regard to asmlinkage
> > use on variables.
> 
> Regardless what Jan wrote there, I think it would be an abuse to add
> asmlinkage for first_valid_mfn because it is not used by assembly code.
> 
> The same goes for the use of SAF-1-safe. This is defined as:
> 
> "Functions and variables used only by asm modules do not need to have a
> visible declaration prior to their definition."
> 
> Now, regarding the violation itself. AFAIU, this would be a violation only on
> x86 because Arm, PPC, RISC-V will all need the declaration as NUMA is not
> supported. For Arm, we may have NUMA support soon, but I doubt this will
> happen in the next couple of years for the others.
> 
> Furthermore, I am sure this is not the only exported variable/function which
> may be used by some archictectures but not others. So I think it would be
> better to declare first_valid_mfn in a common header.

That is true


From xen-devel-bounces@lists.xenproject.org Mon Dec 04 23:51:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Dec 2023 23:51:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647354.1010399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAIio-0006bD-PA; Mon, 04 Dec 2023 23:51:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647354.1010399; Mon, 04 Dec 2023 23:51:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAIio-0006b6-MX; Mon, 04 Dec 2023 23:51:30 +0000
Received: by outflank-mailman (input) for mailman id 647354;
 Mon, 04 Dec 2023 23:51: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=8A84=HP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAIin-0006b0-6F
 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2023 23:51:29 +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 07b46616-9300-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 00:51:24 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A30A661254;
 Mon,  4 Dec 2023 23:51:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 798A2C433C8;
 Mon,  4 Dec 2023 23:51: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: 07b46616-9300-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701733882;
	bh=yIW68xJUrwAvtznLJmo18RWVROlHx/acwzfA1j1B+qo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Qy48tNEB0H9qZaO5+YfV6rXOJhaXUllOcProD3h2kBHKE92BZcm3Z4eCZMuslEjLp
	 /nNsBijcyxp47+0SUpBO9cPCLMltZE0Cq0QI0Ge6+0EAUeDiiS5mqBAQiwT6Hp0BM2
	 NDibPYzV4J1qE+Gacy1fC6kH3rf0CRVtpyUNlJFoGenatJdeMcwsCWYelZwKIAyaLi
	 1OCf4ScimH16E0+cJPLEoaR551R2v6xpsYVg+5TUWVsnKDmpEqlPxCnC2I1f0HtS+X
	 v3W+XeOBPoCECA405dtWMQE+CiB9ckZqHrKVC+3UbdKPnb2lhHoMzJOKVzOy9r0QP0
	 xFY9uzmeD6ErQ==
Date: Mon, 4 Dec 2023 15:51:19 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: George Dunlap <george.dunlap@cloud.com>
cc: Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Kelly Choi <kelly.choi@cloud.com>, xen-devel@lists.xenproject.org, 
    committers@xenproject.org
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
In-Reply-To: <CA+zSX=YNcjDZHF-gx8C8owEpyyjSEtj-MKDAqRwp9woHzEFtUg@mail.gmail.com>
Message-ID: <alpine.DEB.2.22.394.2312041524180.110490@ubuntu-linux-20-04-desktop>
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com> <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop> <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com> <alpine.DEB.2.22.394.2312011253390.110490@ubuntu-linux-20-04-desktop>
 <1978d259-1531-4dcc-a106-d87f6f26885d@suse.com> <CA+zSX=YNcjDZHF-gx8C8owEpyyjSEtj-MKDAqRwp9woHzEFtUg@mail.gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 4 Dec 2023, George Dunlap wrote:
> And how do we give people practical options to respond to a maintainer
> who they think is being "picky"

If a maintainer is too picky the contributor and the other maintainers
should say that the patch is good enough in their view. If the
maintainers disagree (on that topic or another) the new informal voting
rule should help us move forward faster.

The informal voting would have helped us move forward faster in the
original thread.


On Mon, 4 Dec 2023, George Dunlap wrote:
> the chance of a vote of the committers being out of sync with the
> community is fairly small. But of course, small is not impossible.
> [...] Hence the community-wide survey.

Yes. If someone cares about the outcome, and they are not happy with the
informal vote, then they need to call for a formal vote.

But maintainers/committers might not always be the right people to
escalate the voting to.

Yes committers' opinions should count, but certain things have more to
do with our users and the way they understand our documentation than
implementation correctness. For these things, our users' opinions should
count as much as ours.

So I can see that in those cases, if someone is not happy with the
informal vote, the best next step would be a community-wide survey like
Kelly did here. That's a good idea. 

I don't think that's written anywhere in our governance specifically,
but I think it would be a good addition.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 00:53:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 00:53:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647360.1010410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAJgK-00013V-Ld; Tue, 05 Dec 2023 00:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647360.1010410; Tue, 05 Dec 2023 00:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAJgK-00013O-HR; Tue, 05 Dec 2023 00:53:00 +0000
Received: by outflank-mailman (input) for mailman id 647360;
 Tue, 05 Dec 2023 00:52:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V90W=HQ=epam.com=prvs=67037769f0=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1rAJgJ-00013I-Ne
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 00:52:59 +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 9ff561cd-9308-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 01:52:55 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 3B5080kb017069;
 Tue, 5 Dec 2023 00:52:44 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3ushdvs6eq-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 05 Dec 2023 00:52:44 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS2PR03MB8795.eurprd03.prod.outlook.com (2603:10a6:20b:553::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 00:52:40 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.033; Tue, 5 Dec 2023
 00: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>
X-Inumbo-ID: 9ff561cd-9308-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=JCaR55m2Hw+t/SESfVOTcWhuCzk1BzCOCrCt+d4OLlVhKAR18wNhikJLxctnFX6NKfG5H0EhAOHNqMkVpFnvQQQzaaYzwd62NyDSfWqbwQ60ISZzUCnXRH1s1FVrXmmlkvFEl9XyBvK948tzGVdbut9CoVKeLblGJTO8TgmN9mMB3cdVS4DRokxj2YW9D80ZtmgMmJyAt3QnO9Gs9o105f1JtvQnSBCM88CM2rajD7O9zitfao5b4yp94t9+Do4r2mbAkw1Kl+HMqdHCCVN0+b6wXBpsin3rYsoHM4ejF93aigEA6T4KoFJrOWrdrUcYar3nVFmUkmfUxOgu+KJIpw==
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=GqwPNLlBenU8Aph9VxiP0M2gcBQwU8At8YPIwJb06v4=;
 b=Ym6IIN/EgmmZJj6OzaL8bQ86F1cyMEr5lAcE0CWevvWgfhdzLFRxWvspvL81YuzY/uaRMT5iOkrvOdTv2CULWgtxjGWo0lVCMq5wXlAwGW8ZMK/rTWU5Rt7tILr5TcSRlkOZWjaz8CoO64rRSV+5G3ZaLewmZrpTnGQ9vz8gGrDBG3LDs0WFTvcdGo6LWF+TQTHjaXjbzUON43l9y4VOIrDORTAdhKhmHcFtvC18ObXgBmCyxcIqHCYTAhxTpCDlZZDIQqE9h9/YRUyJRjODkR/vlSEQhnKihMZSKzYqBkQIetl68LU0X8aEl63b5rgQhU9mhEMdUK2OV1EIdqbIdw==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GqwPNLlBenU8Aph9VxiP0M2gcBQwU8At8YPIwJb06v4=;
 b=ChK/xxbSt6zd8yt/TUhfD2FuMf2vIBBlQd0QPDb7tXv5s7Er/ecrFq34Y5esbFmUOXLN7OUzWzXPLEUuZLmhewzj5LpYMwkOgCzZkcSHvVlRaSlkkxO5QfToiR2dDb2hPqMSBBd1kdWiVB3tI+wqKghhrPjEj1vuXy6gkrPCrj5TUqla3GVL/u+QW1dnbImorfuM6O6/sqAEMRDcGeaHUM3k/PJexC+WF/xYGBFX/dCqfoP/a0mCGa4YcnoHKMXoDKqOM6an6VQQHpqrY7WkqQ6jXlkPb9lSnzC6UrLLUkWXOcZTT9dY/iCzTwpr3NWA+VjqeDNy84UK/mQCZWxt1g==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Stewart
 Hildebrand <stewart.hildebrand@amd.com>,
        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 v11 09/17] rangeset: add rangeset_empty() function
Thread-Topic: [PATCH v11 09/17] rangeset: add rangeset_empty() function
Thread-Index: AQHaJL6oz4wJTetDeUydVFKkkhEQHrCY0GYAgAEQN4A=
Date: Tue, 5 Dec 2023 00:52:39 +0000
Message-ID: <87sf4hsc6h.fsf@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-10-volodymyr_babchuk@epam.com>
 <8d44c8f6-aa12-4aa7-996d-68aa50dbec33@suse.com>
In-Reply-To: <8d44c8f6-aa12-4aa7-996d-68aa50dbec33@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: mu4e 1.10.7; emacs 29.1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS2PR03MB8795:EE_
x-ms-office365-filtering-correlation-id: b5f6c2c4-69f9-4846-fb70-08dbf52c7b11
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;
x-microsoft-antispam-message-info: 
 YVi/kzECH2oZgmRFmNIW+VR3SJrVdDKgTGczyemUq8ytQq0odNjLlQh0Alce6tcZ3nZuxoc6tusvVWPXo5ifhymT8Z08zxZuQDPd/POvjEcQKPu8Q4O+y6238S0JGySxycM7ozAdElTZ3iyq70LJtFHnM3Lof9m4zyDT060EXuwbFe9oPR0ywTx9v2HxXV9Xj3BACQbHDMtDhv/s9KnjLXCcqTxDmfUzfcXE52DJPyPUjhGF9xyTCjbIhZsAFeNSoiXJbIfC90hWj1acBSNUjkQTfFMcWryyCyCBjRmbNExVEswe3kW9pEQesX3jixbsJkp99MAQ/zt5C1Uv3pZBseCM+HNY3GSn1b53zHpgm7zCtYHTIyNC3S5LY81BL3Ru6LEnDVQdYgaqTX2Yh71cHguxYcDb8unLcSzV0BMDlUkQPMqBIz+FnX3BFEv3SIfFntXFDvrAP1K7ft9y+7+AXXCk9bjLR4Y8REWBQddVi1zxZUXDEJiv9BAgHBqk272I0Ip2HiHv6J/hQ1a7TV1UhkzFdyJvbH88r5rw40a0YoM5+q8neIGgDzHdKTWwQwes6OCKeeGsxTEjKasIsveZVmYDr7G+bPz8GCXq9ZajLZWu0p0jauS0UGJ9YJP/mXP6
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(136003)(396003)(346002)(376002)(39860400002)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(6486002)(478600001)(6512007)(2616005)(55236004)(53546011)(6506007)(26005)(71200400001)(316002)(91956017)(66476007)(66446008)(64756008)(54906003)(6916009)(66556008)(76116006)(66946007)(86362001)(41300700001)(36756003)(8676002)(4326008)(8936002)(38070700009)(4744005)(2906002)(5660300002)(122000001)(38100700002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?VEy58aX4w6CdidsSYM1RJA5JbgbGQruyrPU03LtyUMlX5q1jkFNBVIfMVn?=
 =?iso-8859-1?Q?2eLMdBNWoCGrTl1YJ8urV40VtWDwLOvGb+lKG6wH1LFVYid420UTZqnCEL?=
 =?iso-8859-1?Q?h8Zs7QFRzyyEpfduJp+aEHx+Ux3U2vnKin08+//jmeavyuhDcXSMSSJGjN?=
 =?iso-8859-1?Q?ifYaGS1X3Eo83wV/RfKRsQp8R7sC+BcKOnkK+8Bkl+EzhxPjc+zlOeUnGx?=
 =?iso-8859-1?Q?7y5109PBtCjvrOC4MRpc9RfjjQUrBio+eiE2R74dOKzJ0b1MQkWxp2olAa?=
 =?iso-8859-1?Q?8slHKEnjbRrGlCIslSBCCyVizVee63LVpko1hmKQ1uBs8kARifeG1MeIpc?=
 =?iso-8859-1?Q?fsf0pdKedqehAYEjuRncFoUMweSWkHPrPe7ARuRbU0nU9bmnHOrj61+Pvv?=
 =?iso-8859-1?Q?0ooUllx2MmHCkQr4SK8FLdyEdpCzuj45QKjkDGCWjxcAFA0GgtTYF9YN9c?=
 =?iso-8859-1?Q?PWyF3pGBAiIMX+7h35y4ZfJdBzuVcXBCGn/kDVe9hCWVxVPKS4MUcqN7FP?=
 =?iso-8859-1?Q?mpO6DhwRJ/7lLwyiy2ayNgJPhAHTMg5P53Fs4OggCaXm2vZ99Qib7hQE9J?=
 =?iso-8859-1?Q?FGWoXmGxDUIDREKI6DFg9oDPnWvdpFnUalhghduc1jonXDprwH9HUKB7Gn?=
 =?iso-8859-1?Q?1D7Ro4PTrMOonDv7qgYeyyBH5xrFOTk0XSFg1HBaaRKk2Dp/QSbf9q6Hei?=
 =?iso-8859-1?Q?ciZ5OQ3A4Q8hvUdqIRDns+dWdZACTLvangV5kkY9TIsSTs8TqW1n/VQhNL?=
 =?iso-8859-1?Q?Y5br9NCCj9strw47Lj+Z1gUCAyoyCvWabXqU/uiG0XTdEw0eo8yGCTc6pg?=
 =?iso-8859-1?Q?agrRHMPDQA6pedzRWw08AT038CD2z38RFjIZhRpU9zXhAI5RNfIZqYDpln?=
 =?iso-8859-1?Q?MfrHGrnmDucvbAHqUs+2YS+0gT4Q/dIaInKdl+NU7JojdZA6tZAArvit0y?=
 =?iso-8859-1?Q?ij6xeXlGJg3fhs7Q6M9+jfpXIF1NKlQoTKRT5kcQ+Lh3qf/1N/srbMCT6t?=
 =?iso-8859-1?Q?0FyIgpKiqpT5RNca8NkHga2kGl6kQeoAkdLdxnLAybI6fCyoFm9QBWYzsj?=
 =?iso-8859-1?Q?UF5gG6lmYSIhmQ7E0gdUlgWxekMMVbjcpw6vyWGegZ1eHUrm4NyZ8ve+1T?=
 =?iso-8859-1?Q?SxR9wFmDueXlcu5wS62l9lokL0S6VDeMQKe9XxZv0/XAPlzuWc+u4GhhpQ?=
 =?iso-8859-1?Q?4pg8O2+j9Lk7Q5coMFgQl8PmUuyL4bCzWNM+HXpI33tPiSuTWAUcwr7LaE?=
 =?iso-8859-1?Q?qlQi6MgLPDh8stzQrLp8sXlWWQkp/fuVlTCTYg3rsFtbUHT1+bc2B6BTLb?=
 =?iso-8859-1?Q?VDv9ZutvTGmykHosTeB2wiBqjw7rWGSbkrP/ui8rHE9t9FMtys/vOD+vfe?=
 =?iso-8859-1?Q?ZEKqXExtx0kOTev57bTbQtomOphrBHnlKAC6/suubLZi1CbfccTKieFGNA?=
 =?iso-8859-1?Q?j5xg9y9+n2MVWYzjBC2mroEv3Vx2U5CAjFam77KoiKxCn0bXOqwtaFTsIu?=
 =?iso-8859-1?Q?UMUZcXaPiPrHQdFt7S9MrKjddgfOqSDgujjzK/onTAzvmEVetzH665HJDO?=
 =?iso-8859-1?Q?jtS7rO0HamtmHRivOd3Jgamr8jl6VNhi34KhSlNTquYtdFOsAbMPyTP9fY?=
 =?iso-8859-1?Q?YPUctyRoS7BCPYNFqKmPAtSSqiaOE9v1pwuxsG0E7eYjEXrYSW+fDxng?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b5f6c2c4-69f9-4846-fb70-08dbf52c7b11
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2023 00:52:39.4852
 (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: wuaXyPkLod7BFPKXRQS/pTlcd22y79uRvhy0Uj/xY/L76R2jaSOSqM0AiHdTbTNhYOomZFsi/fzVpCusTImj3cqzODEKapmnyFPe6e2d7J4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB8795
X-Proofpoint-ORIG-GUID: Z2ubGJ2HDvdC2xeWvKVttMP_bM5KJloY
X-Proofpoint-GUID: Z2ubGJ2HDvdC2xeWvKVttMP_bM5KJloY
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-04_23,2023-12-04_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0
 priorityscore=1501 phishscore=0 mlxscore=0 spamscore=0 clxscore=1015
 adultscore=0 lowpriorityscore=0 mlxlogscore=999 bulkscore=0
 impostorscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2311060000 definitions=main-2312050005


Hi Jan,

Jan Beulich <jbeulich@suse.com> writes:

> On 02.12.2023 02:27, Volodymyr Babchuk wrote:
>> This function can be used when user wants to remove all rangeset
>> entries but do not want to destroy rangeset itself.
>
> I have to admit that I'm not happy with the name: We're not consistently
> naming all predicate-like helpers is_...() (see e.g. cpumask_empty()).
> May I suggest to use something which unambiguously expresses an action to
> be taken, e.g. rangeset_purge(), rangeset_reset(), or (less suitable as
> some ambiguity would remain, yet it would be in line with e.g.
> cpumask_clear()) rangeset_clear()?

Naming this is not my best trait, so I am open for any suggestions. From
all proposed variants I like rangeset_purge() most. So if there are no
other objections, I'll rename this function in the next version.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 00:53:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 00:53:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647362.1010420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAJh4-0001Up-Uo; Tue, 05 Dec 2023 00:53:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647362.1010420; Tue, 05 Dec 2023 00: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 1rAJh4-0001Ui-S0; Tue, 05 Dec 2023 00:53:46 +0000
Received: by outflank-mailman (input) for mailman id 647362;
 Tue, 05 Dec 2023 00:53: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=V90W=HQ=epam.com=prvs=67037769f0=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1rAJh3-0001TU-So
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 00:53:45 +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 bcbdb2ca-9308-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 01:53:43 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B50866Z032243; Tue, 5 Dec 2023 00:53:42 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2105.outbound.protection.outlook.com [104.47.17.105])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3usejgj1k2-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 05 Dec 2023 00:53:41 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS2PR03MB8795.eurprd03.prod.outlook.com (2603:10a6:20b:553::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 00:53:38 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7046.033; Tue, 5 Dec 2023
 00:53: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: bcbdb2ca-9308-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QNpfeyJyqlbPIWd8IBDNLXAFEVOOCBUKe5xLCcij5mggJEOnbc/WJHLlJR8wIvNwaBScyQoSBRK8Q4a4CwrPBdREI1IR5V7WsPumzYt57u4wZi4XeuwnqqrIsZ8/tDJOhZ5CnCp9xmZxSnlXD6atV6xFddm7spD65Lzstp1llF3VMX7JPepz1pYEn5o11Zx3WqcSVQG8SChW5kPL7sZfxgv5o02eTy8WdzPILoVPHvuKnqGkIlRxOCb8cR4nirkY434NlGyF/KMDqAITvzy19ToTq7p6JSxP3ZTE1Ae/RFRlyIzRV+nqDjCamcQ+KRLF7jOUNwtVbIjDEWjCKIzrKQ==
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=F1xsGQ4MYPeDidDh8+TUu5AzjMyGCZLqUrfdEoBS1h4=;
 b=TbupHye1UL/GqA+1vmAOC8GU3wtt0PkbIedaRjZDLI2xqZDz2AyLAO0CTQQ6tbCFHJLhP2XOxh1E/6SbOVAv16dkFSjmjs9s1DZWesQ14KSkjPutC4P+RNdYOv5U3UL2fHdwNlTjVhACgluzI/mur5v2dsO5YGrbBPmZ9LTaFBAMlVikSaSzbDDz4OGkdpA3fRNmY+4od7NhaUuxZaK+kmbjyymxRL1GZsI3xZmxO24uyXAmPDJLIQsoWonAeGMaaMHIBX+f6582rQxe5pP/FCXdztIx2Bh+OKhpX9LaW6tJxkH8S3eqL2VkDNFxjpqhNHMPGxJNxRL/P2kSAiRXRQ==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=F1xsGQ4MYPeDidDh8+TUu5AzjMyGCZLqUrfdEoBS1h4=;
 b=EwWHtnYONv7AWB97xBWtK5fGDvUhgYqqc+XT179/MUwIDAquQ+zS8mPWORSwKAzBhgqV3Gg5sCpoEpPKvUTgO/gLeQLFzdY2v4tKkiK5D4SOSpVDvOuxGaCsxKrGFdQ16V7Y9E0uAItF2JIIDhMCJeRB4pWG0luQt+iwZ0v9t6ZmkLRb4hrziFemdvrLj1BrRguT81ZFkPgZZvnl+VJXv1QwpI/qcDxZ7ms+VDiLN2KxTX2OtvdKpUcKO+ekey2tHfECREn7zZ5YGJ5HWAwDyhk/lOYihNty+dP/QI0HmwDfsz305jMRicf79KQ0WFNkPfGQrHAegpl5Hx5T3augEQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v11 06/17] vpci/header: rework exit path in init_bars
Thread-Topic: [PATCH v11 06/17] vpci/header: rework exit path in init_bars
Thread-Index: AQHaJL6n1kPp1+DEXkyG3DA4rY4zlLCYzt6AgAESXIA=
Date: Tue, 5 Dec 2023 00:53:38 +0000
Message-ID: <87lea9sc4u.fsf@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-7-volodymyr_babchuk@epam.com>
 <11ee03e0-9de9-4179-bb4e-4ea2510122ef@suse.com>
In-Reply-To: <11ee03e0-9de9-4179-bb4e-4ea2510122ef@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: mu4e 1.10.7; emacs 29.1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS2PR03MB8795:EE_
x-ms-office365-filtering-correlation-id: 1bdeaac6-611a-41f0-ae2d-08dbf52c9e1d
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;
x-microsoft-antispam-message-info: 
 7xwQvmJCSSY0jo7+y9x+kv6rHlQnPRRRB109GQCwQ/NMLWeYZM8zE3DpoV8Gx7a+a+lLkAARwSouoD7dr43GqjIJPB/NPu0w/zCJuiVN7oWSt2eiJtCsfqe1/WGI7Re0WY68vNCG5mlHbEaljtWSxJh4I/FARGp4x6QB+leySecOkLmFAO8VrWIrKbXfYjfr8cFlSRCBStFDNVSnWfN8ZMV7hnhXg00DcH444mJ7El2Ksrge2Uih0QJkyS+7zmxQezzqXSLIZoKXIhUkYnUbb+wm9mVh2A9p24XzxDVbNsPQakFy1d1kbTzgSYNePOhs4pbfAFlLZHl4Xiy16USadrw9XGWGqgTHF86UpD7ulLXNh69dFmyC0/R8QH91LKB21S9XiMZ4Qrt/dH6hxBzQm6kIuHL9esGAjo5PkXtZJfrJhlH2c/AiEi0we1GwCF89iZnKhRS4BoflXF01SiOGSul79YVC5LiFhoREtxcxsAN5fH+S0pnLD63xG8Aa43gGSdkupksF5HffxApKfZ/Rv21gVZ4ZiYiJJDPIgeea502q08BiXmRN6ItQ/6DWPnXp2dqj480ASpucGj786S7hoq3CHU/tk9/HmLfV7evty/r3pKgDkOf3eURS96rUzOfn
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(136003)(396003)(346002)(376002)(39860400002)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(6486002)(83380400001)(478600001)(6512007)(2616005)(55236004)(53546011)(6506007)(26005)(71200400001)(316002)(91956017)(66476007)(66446008)(64756008)(54906003)(6916009)(66556008)(76116006)(66946007)(86362001)(41300700001)(36756003)(8676002)(4326008)(8936002)(38070700009)(4744005)(2906002)(5660300002)(122000001)(38100700002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?cWhab1FPaERhb1JaMUdBM2FPQXUxYS9SVDdiTTUvTlNBOUtmWTIxUHVLNFQw?=
 =?utf-8?B?S1B5UkhjYUVCSDJxT3JEV01LMEhlbVEzM1F6S2dBWk84dnQ0MVgzM2l4ODBu?=
 =?utf-8?B?ZjJpOXlVT0Vnbk9wOWFMcWZqd1FRcFRoeDkwZHRlei9hNGFNQ094bUI0cW85?=
 =?utf-8?B?ajZOSmNZOGRxbERuODdic2ZwM3M4am55NlpuYjF0UmdBMTdNQkc2MDZxUGZt?=
 =?utf-8?B?KzZubFBIMXp6M09NZjhrcTl6OTRVVXl6aUpOcThFQkJHUmlnWE5HL2Q0LzFS?=
 =?utf-8?B?K2YvUlI2QzZaTzhmWGVVZGRUVkl4alJQNTVPcFFDUElYT3phTFF5ZFQrK2xJ?=
 =?utf-8?B?NERVanRQazFveXdwK1h2M1d3SVlOVEdCNXZkMFdON0ZlQkZTaXBEaFp4MEw1?=
 =?utf-8?B?TEdpdVhRYlUvWm14cVhtNW1Mem5EN1N4bklVSEVPMmhTY0lIYjhPRzN6Qmty?=
 =?utf-8?B?NDNHMWJFTGExU1NiZFl4U2M2UXdUU3c1VnpsR1JoS0NocTBHYThkNDBtQVdK?=
 =?utf-8?B?RHFjMDN4VTA3Q21wdGtoVEJvY25rb2dFWjdWdktsYUNpUHIyZ1hBOG5icVlJ?=
 =?utf-8?B?NXlDODU5cEc4d2dKUEdnOWZUWDF1ZDRSUGQwUmhCelQvdWJQQVFITTVSS1FC?=
 =?utf-8?B?cUwvdEZPT2kvclB1Z1ZPampMRzN5T2tMRG1PRDNtMEREMCt6VGswMzRUZDZI?=
 =?utf-8?B?RzdPUFVwR0c3azArc2toSWZaTysyYTg5b0R6KzVLUTg5b2hDUUNCOFpVVnRW?=
 =?utf-8?B?bENQbmE3NnYvOHl6QzIvNjY4blVOZDZtdC9tcGdxa3lidkx3eFV6Y0FHOFpq?=
 =?utf-8?B?alE2b2RMbEJxWjNVM3NjS3J0a01qRTNaWXRvbXFJM1dMSjRGLy9OVFNtdFk2?=
 =?utf-8?B?Q2pQUFVJU1hteDBueXhKWjViOEFOSDdPUE5mYThiQU1vZjdLNnh2Wm52eVlL?=
 =?utf-8?B?RWRnSEZSVHUzWmpDTHdRRjg3bGNxdzFNb2IzN0VKcE5KdDZValY4SFVVY0Ja?=
 =?utf-8?B?a1ROMUl1NWFUaDFmQXk5WlU0MUNQMVltd2RJaWptMFNUNnc3U3pFZ2pUQzVE?=
 =?utf-8?B?OCtTelUwek9XTGVrYU1lcUNzWThKZWRKd0dndHVyaTdoKzViVmFWTTMzYnRY?=
 =?utf-8?B?eXJweExIYXVKZjZhY0orUklZd2RxU3NaUTg0VHdXNEI5Y1R0b2RtNXZaNDJM?=
 =?utf-8?B?dzVBVkpsL2NZaWdMUzBRTmFKSDd1V2RmRVZHR0IwQzd2WUVBbmVhZkQzOVRo?=
 =?utf-8?B?VWVYcmN2MExQYUUraUc2NVluaVJmbEg1NS8xb3RQaStiVVVQSkdpZnJGYTk0?=
 =?utf-8?B?QnJySjIwNXZlWnJaRldlRmxqOGNFeEZjL280RkVOTjdEQ05wMDc3MFBtYk4y?=
 =?utf-8?B?MnB1UW9nQlFaZGhGUys2MGtHK3hiWnlwc0lYTG9LS1lzdmZOdHVLdThlVTli?=
 =?utf-8?B?YWMyeGYraHNKdVp0TEE1QXY1UDRoS2cxV0MxRFJQZnVYeFk1V3pEQVdIWXVy?=
 =?utf-8?B?WlhQSUZOL0JuK3NtZUlwd2JzTmtGR0d5eFJTcXBtN1YvcnZLZittaTh1SUdm?=
 =?utf-8?B?UEIwbGsraDcyRGJDa0h2NlJZL2ZVVTlhMmduYStuR3ZXaWphMU96TW1DOGJo?=
 =?utf-8?B?Mm9SaHJybytnODVvZzE4Tm8zMk5RZ214Ry9CaXp2ZFA2aGVHL04yRTlsWVJu?=
 =?utf-8?B?R2ZSWWxlY3I2RTNVUVMvVzljMEhCSXczMFE1MTYrMW9mcFd6eXFWSDVqS3hM?=
 =?utf-8?B?cHVVSXlXcmlscGFULzhPNisweFBOR2w4MTh6MUZRcEZCSTc2UmFGSHFkZklv?=
 =?utf-8?B?UEhnQVhMWXNLbDF6NkhweVhLayt6YSttUEM4WUZvNFloRGtJb3dlTHdDKzBV?=
 =?utf-8?B?OUpERTZVaitObjdDTXFKZXhxVTZBLzB4OWFvLzY0ODg1bzF3ejIwLzV5V3FL?=
 =?utf-8?B?RkM0aVVCOEtjczhGT1NvSDRYSVBSUFJPYmtOMGVyZVJHUC9wUVAyRGlFUHVk?=
 =?utf-8?B?dXFrYmthNEVWMUFlNCtscGQ2STdJRlJ5cmZXRG1QM21vSktDdTVnL09EQi9t?=
 =?utf-8?B?NmZiUVNnVjRqUUtnS2VKN3BxS1pzb0lDeFdIMUNUWGZmSDVBcWhodXl3UDEy?=
 =?utf-8?B?cW0xUVllRWdOUGtMeU5DRStPaVZFSVk1bUUwRjVVUXBGUnA2aWg0NTFXZzFj?=
 =?utf-8?B?anc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F33C4B3CE09D7F49BB0883296D906225@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1bdeaac6-611a-41f0-ae2d-08dbf52c9e1d
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2023 00:53:38.3019
 (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: X8aOMyJrtNj2zprh6fMUeu1OnHtl8TSDV+TMNM8DGMW/Ial/srmJbQX1HgZECU/TvfSkIhKiNisfqB2XPKLCgW1lkuXlqkqVkU0z+hDcGM0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB8795
X-Proofpoint-GUID: x087ifakXWvBAdthUUg9Q5ULrlfD9jkx
X-Proofpoint-ORIG-GUID: x087ifakXWvBAdthUUg9Q5ULrlfD9jkx
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-04_24,2023-12-04_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0
 mlxlogscore=669 malwarescore=0 clxscore=1015 priorityscore=1501
 suspectscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 spamscore=0
 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312050006

SGVsbG8gSmFuLA0KDQpKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+IHdyaXRlczoNCg0K
PiBPbiAwMi4xMi4yMDIzIDAyOjI3LCBWb2xvZHlteXIgQmFiY2h1ayB3cm90ZToNCj4+IEludHJv
ZHVjZSAiZmFpbCIgbGFiZWwgaW4gaW5pdF9iYXJzKCkgZnVuY3Rpb24gdG8gaGF2ZSB0aGUgY2Vu
dHJhbGl6ZWQNCj4+IGVycm9yIHJldHVybiBwYXRoLiBUaGlzIGlzIHRoZSBwcmUtcmVxdWlyZW1l
bnQgZm9yIHRoZSBmdXR1cmUgY2hhbmdlcw0KPj4gaW4gdGhpcyBmdW5jdGlvbi4NCj4+IA0KPj4g
VGhpcyBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgZnVuY3Rpb25hbCBjaGFuZ2VzLg0KPj4gDQo+
PiBTaWduZWQtb2ZmLWJ5OiBWb2xvZHlteXIgQmFiY2h1ayA8dm9sb2R5bXlyX2JhYmNodWtAZXBh
bS5jb20+DQo+PiBTdWdnZXN0ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRy
aXguY29tPg0KPj4gQWNrZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPg0KPg0KPiBOaXQ6IFRhZ3MgaW4gY2hyb25vbG9naWNhbCBvcmRlciBwbGVhc2UuDQoNCkp1
c3QgdG8gYmUgY2xhcmlmeSwgaXQgc2hvdWxkIGJlDQoNClN1Z2dlc3RlZC1ieQ0KU2lnbmVkLW9m
Zi1ieQ0KQWNrZWQtYnkNCg0KQ29ycmVjdD8NCg0KLS0gDQpXQlIsIFZvbG9keW15cg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 01:32:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 01:32:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647366.1010430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAKIB-00075n-QM; Tue, 05 Dec 2023 01:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647366.1010430; Tue, 05 Dec 2023 01: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 1rAKIB-00075f-LF; Tue, 05 Dec 2023 01:32:07 +0000
Received: by outflank-mailman (input) for mailman id 647366;
 Tue, 05 Dec 2023 01:32:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t8Su=HQ=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1rAKIA-00075X-7i
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 01:32:06 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 17d4e86b-930e-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 02:32:03 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a0029289b1bso659656966b.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 17:32:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17d4e86b-930e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701739923; x=1702344723; 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=7Q79mS7K1AUoyftnmiKiPwwtRfwl5V1DKCGolJPsZbs=;
        b=aYgONVK+I06jlq9GhhHi3uZf3pu8QaMI0/9e9QMfk/xS00fbbjUZKHtKyrHdZ/S0YS
         jpcfGzfjbk9n25mdUc7TA+xBmGaT9vlPhG3Ww0m5ZKzuMSYXO62vylEdSnJGghxfLKKk
         AQoaqngwNYLKk9Dpbn3yW6fPZQbR3S7skMac8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701739923; x=1702344723;
        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=7Q79mS7K1AUoyftnmiKiPwwtRfwl5V1DKCGolJPsZbs=;
        b=mz4hi/KwdnuuzLp1GH51kRXMj7JSmxgUDeoWDfiZqX875X7iIyFuzuzNj8kl90VF02
         BXGvOyntou6razQ2DZE6dQi3w4L74KYTI7AYqZ7kkC7E4Nu30PCAlcKgPr0fVILDXcRe
         pR1udtefKXOcsiJi44g3e+FB2khRbZWg/G2cDRtKUTnp3OI36q/AL+B6V49Ia6EmLqMK
         vNLzgBZpdZ5dRIRYLLJhDqU/PTjApzgRB0oZl6G8j/CxI4p6uGBs6Vyl5OXCbGldt7bZ
         v03ToJGW5OlT4kDpW3CRF9WbNuLdCbp4V+ci0XAZ4Y5Vqlj96AaUzmzWcyOXpNqpTUsq
         5bWw==
X-Gm-Message-State: AOJu0Yz//512NZIrkyBaickBRtdby1TL+3aCgw5U4nHzwKwRqzS+qYt4
	qzH3/B5ucuaMlarIBqlLLJmeOVI03e7JYz7i4zY7hA==
X-Google-Smtp-Source: AGHT+IHAz/TuRNsDxwREuqrJuS2CFa9qUIFwRThJsfHnn0V2B6RJmtG8kGJOk8V1WmhMHfjN5FC0f+mEPhwYTLfbqyk=
X-Received: by 2002:a17:906:101d:b0:a18:97fb:138a with SMTP id
 29-20020a170906101d00b00a1897fb138amr4183404ejm.62.1701739922963; Mon, 04 Dec
 2023 17:32:02 -0800 (PST)
MIME-Version: 1.0
References: <62E07D85-2601-406F-AC27-956BF986ED7F@gmail.com>
In-Reply-To: <62E07D85-2601-406F-AC27-956BF986ED7F@gmail.com>
From: Kelly Choi <kelly.choi@cloud.com>
Date: Tue, 5 Dec 2023 01:31:26 +0000
Message-ID: <CAO-mL=xuSYjhpB1ZwobC8bN+s-iY8j4CBvngqJjo5UXcbRUpMw@mail.gmail.com>
Subject: Re: Informal voting proposal
To: Rich Persaud <persaur@gmail.com>
Cc: committers@xenproject.org, openxt <openxt@googlegroups.com>, 
	xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000009bd6b3060bb933c1"

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

Hi Rich,

I am away on business travel, so did not see your reply before sending my
last email.

The problem we have noted is that there are frequent disagreements within
the project, mainly due to a difference in opinion among other factors. As
a bid to help us move quicker and progress within the community, the
informal voting method was suggested. There probably are many cases where
this can be applicable, but historically a formal vote is a long process
that many want to avoid.

A solution orientated approach is the reason for suggesting a method such
as informal voting. Rather than approaching each problem with a unique
process, this approach encourages the community to work together to achieve
a consensus. Only when this is not possible, then informal voting should be
called.

The informal voting aims to consider multiple solutions, before deciding
between the best two. So I'd disagree with your point that it is either one
solution or no solution.
Instead, the informal voting process aims to empower individuals to present
the best solutions after discussions. I would suggest that historical test
cases be used here as part of the argument whilst presenting the solution.
Again, if we considered every single solution and still disagreed then this
would defeat the point of a vote. It would also be time consuming for
members involved to consistently argue the benefits of each point when it
is clear there are disagreements.

For specific test cases, I agree this would be helpful to have. This would
fit better in aspirational guidelines within governance documents as to
what has happened previously, the solution in that instance, and how it was
resolved.

Our goal here is to progress whilst achieving a majority consensus. It
doesn't mean that the informal voted decision cannot be reviewed when
things change, but this solution will help break up disagreements and avoid
stagnation. Processes such as these will always be reviewed to ensure
consistent improvements in our ways of working.

On a more positive note, it's great to hear your opinion. It simply means
that you and others within the community care and want the best out of the
project.




On Fri, 1 Dec 2023 at 18:08, Rich Persaud <persaur@gmail.com> wrote:

> On Nov 6, 2023, at 13:53, Kelly Choi <kelly.choi@cloud.com> wrote:
>
>
> =EF=BB=BF
> Hi all,
>
> As an open-source community, there will always be differences of opinion
> in approaches and the way we think. It is imperative, however, that we vi=
ew
> this diversity as a source of strength rather than a hindrance.
>
> Recent deliberations within our project have led to certain matters being
> put on hold due to an inability to reach a consensus. While formal voting
> procedures serve their purpose, they can be time-consuming and may not
> always lead to meaningful progress.
>
> Having received agreement from a few maintainers already, I would like to
> propose the following:
>
> *Informal voting method:*
>
>    1. Each project should ideally have more than 2 maintainers to
>    facilitate impartial discussions. Projects lacking this configuration =
will
>    be addressed at a later stage.
>    2. Anyone in the community is welcome to voice their opinions, ideas,
>    and concerns about any patch or contribution.
>    3. If members cannot agree, the majority informal vote of the
>    maintainers will be the decision that stands. For instance, if, after
>    careful consideration of all suggestions and concerns, 2 out of 3
>    maintainers endorse a solution within the x86 subsystem, it shall be t=
he
>    decision we move forward with.
>    4. Naturally, there may be exceptional circumstances, as such, a
>    formal vote may be warranted but should happen only a few times a year=
 for
>    serious cases only.
>    5. Informal votes can be as easy as 2 out of 3 maintainers providing
>    their Acked-by/Reviewed-by tag. Alternatively, Maintainers can call an
>    informal vote by simply emailing the thread with "informal vote propos=
ed,
>    option 1 and option 2."
>    6. *All maintainers should reply with their vote within 5 working
>    days.*
>    7. Please note that with any new process, there will always be room
>    for improvement and we will reiterate where needed.
>
> Ultimately our goal here is to prevent the project coming to a standstill
> while deliberating decisions that we all cannot agree on. This may mean
> compromising in the short term but I am sure the long-term benefits will
> stand for themselves.
>
> *If you have any strong objections to the informal voting, please let me
> know by 30th November 2023. *
> *Should I receive no objections, the process will be implemented as of 1s=
t
> December 2023.*
>
>
> Apologies for the late response, I was recently asked to look at this
> thread, and it's now the end of my Nov 30th USA day.
>
> In order to evaluate new governance proposals, historical test cases are
> needed.  Then the existing process, proposed process (and other candidate
> processes!) can be applied to each test case in turn, so we can evaluate
> the benefits and costs of each candidate.
>
> If the problem is not defined, how can candidate solutions be evaluated?
> Perhaps those who have responded to the thread have already discussed the
> problem(s) elsewhere, but we need to include them in the public, on-list
> discussion record.
>
>
> Again there will be times for that call for flexibility, but we should
> always aim to have a vote for two of the best solutions to avoid the
> project coming to another standstill.
>
>
> Unless I am mistaken, only *one* solution has been proposed for a problem
> that has zero on-list examples or test cases.  The community is being giv=
en
> a choice between one solution and no solution?
>
> If we can define the problem, with more than one historical example, then
> we can consider multiple solutions, pick *two* of the best solutions, and
> approve one of the solutions for implementation.
>
> Regards,
> Rich
>
> p.s. This is a strong objection to the absence of a problem definition.
>

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

<div dir=3D"ltr"><div dir=3D"auto">Hi Rich,</div><div dir=3D"auto"><br></di=
v><div dir=3D"auto">I am away on business travel, so did not see your reply=
 before sending my last email.=C2=A0<br></div><div dir=3D"auto"><br></div><=
div>The problem we have noted is that there are frequent disagreements with=
in the project, mainly due to a difference in opinion among other factors. =
As a bid to help us move quicker and progress within the community, the inf=
ormal voting method was suggested. There probably are many cases where this=
 can be applicable, but historically a formal vote is a long process that m=
any want to avoid.=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"auto"=
>A solution orientated approach is the reason for suggesting a method such =
as informal voting. Rather than approaching each problem with a unique proc=
ess, this approach encourages=C2=A0the community to work together to achiev=
e a consensus. Only when this is not possible, then informal voting should =
be called.=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"auto">The inf=
ormal voting aims to consider multiple solutions, before deciding between t=
he best two. So I&#39;d disagree with your point that it is either one solu=
tion or no solution.</div><div dir=3D"auto">Instead, the informal voting pr=
ocess aims to empower individuals to present the best solutions after discu=
ssions. I would suggest that historical test cases be used here as part of =
the argument whilst presenting the solution. Again, if we considered every =
single solution and still disagreed then this would defeat the point of a v=
ote. It would also be time consuming for members involved to consistently a=
rgue the benefits of each point when it is clear there are disagreements.</=
div><div dir=3D"auto"><br></div><div dir=3D"auto">For specific test cases, =
I agree this would be helpful to have. This would fit better in aspirationa=
l guidelines within governance documents as to what has happened previously=
, the solution in that instance, and how it was resolved.=C2=A0</div><div d=
ir=3D"auto"><br></div><div>Our goal here is to progress whilst achieving a =
majority consensus. It doesn&#39;t mean that the informal voted decision ca=
nnot be reviewed when things change, but this solution will help break up d=
isagreements and avoid stagnation. Processes such as these will always be=
=C2=A0reviewed to ensure consistent improvements in our ways of working.=C2=
=A0</div><div><br></div><div>On a more positive note, it&#39;s great to hea=
r your opinion. It simply means that you and others within the community ca=
re and want the best out of the project.=C2=A0</div></div><div dir=3D"auto"=
><br></div><div dir=3D"auto"><br></div><div dir=3D"auto"><br></div><div><br=
><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, 1=
 Dec 2023 at 18:08, Rich Persaud &lt;<a href=3D"mailto:persaur@gmail.com" t=
arget=3D"_blank">persaur@gmail.com</a>&gt; wrote:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex"><div dir=3D"auto"><div dir=3D"ltr">On Nov=
 6, 2023, at 13:53, Kelly Choi &lt;<a href=3D"mailto:kelly.choi@cloud.com" =
target=3D"_blank">kelly.choi@cloud.com</a>&gt; wrote:<div dir=3D"ltr"><div =
dir=3D"ltr"><blockquote type=3D"cite"><br></blockquote></div><blockquote ty=
pe=3D"cite"><div dir=3D"ltr">=EF=BB=BF<div dir=3D"ltr">Hi all,<div><br>As a=
n open-source community, there will always be differences of opinion in app=
roaches and the way we think. It is imperative, however, that we view this =
diversity as a source of strength rather than a hindrance.<br><br>Recent de=
liberations within our project have led to certain matters being put on hol=
d due to an inability to reach a consensus. While formal voting procedures =
serve their purpose, they can be time-consuming and may not always lead to =
meaningful progress.<div><br></div><div>Having received agreement from a fe=
w maintainers already, I would like to propose=C2=A0the following:</div><di=
v><br></div><div><b>Informal voting method:</b></div><div><ol><li>Each proj=
ect should ideally have more than 2 maintainers to facilitate impartial dis=
cussions. Projects lacking this configuration will be addressed at a later =
stage.</li><li>Anyone in the community is welcome to voice their opinions, =
ideas, and concerns about any patch or contribution.</li><li>If members can=
not agree, the majority informal vote of the maintainers will be the decisi=
on that stands. For instance, if, after careful consideration of all sugges=
tions and concerns, 2 out of 3 maintainers endorse a solution within the x8=
6 subsystem, it shall be the decision we move forward with.</li><li>Natural=
ly, there may be exceptional circumstances, as such, a formal vote may be w=
arranted but should happen only a few times a year for serious cases only.<=
/li><li>Informal votes can be as easy as 2 out of 3 maintainers providing t=
heir Acked-by/Reviewed-by tag. Alternatively, Maintainers can call an infor=
mal vote by simply emailing the thread with &quot;informal vote proposed, o=
ption 1 and option 2.&quot;=C2=A0</li><li><b>All maintainers should reply w=
ith their vote within 5 working days.</b>=C2=A0=C2=A0</li><li>Please note t=
hat with any new process, there will always be room for improvement and we =
will reiterate where needed.</li></ol><div>Ultimately=C2=A0our goal here is=
 to prevent the project coming to a standstill while deliberating decisions=
 that=C2=A0we all cannot agree on. This may mean compromising in the short =
term but I am sure the long-term benefits will stand for themselves.=C2=A0=
=C2=A0</div><div><font color=3D"#ff0000"><br></font></div><div><font color=
=3D"#ff0000"><b>If you have any strong objections to the informal voting, p=
lease let me know by <u>30th November 2023.=C2=A0</u></b></font></div><div>=
<font color=3D"#ff0000"><b>Should I receive no objections, the process will=
 be implemented as of 1st December 2023.</b></font></div><div><br></div></d=
iv></div></div>
</div></blockquote><br><div>Apologies for the late response, I was recently=
 asked to look at this thread, and it&#39;s now the end of my Nov 30th USA =
day.</div><div><br></div><div>In order to evaluate new governance proposals=
, historical test cases are needed.=C2=A0 Then the existing process, propos=
ed process (and other candidate processes!) can be applied to each test cas=
e in turn, so we can evaluate the benefits and costs of each candidate. =C2=
=A0</div><div><br></div><div>If the problem is not defined, how can candida=
te solutions be evaluated?=C2=A0 Perhaps those who have responded to the th=
read have already discussed the problem(s) elsewhere, but we need to includ=
e them in the public, on-list discussion record.</div><div><br></div><div><=
br></div><div><blockquote type=3D"cite"><span style=3D"color:rgb(255,0,0);b=
ackground-color:rgb(255,255,255)">Again there will be times for that call f=
or flexibility, but we should always aim to have a vote for two of the best=
 solutions to avoid the project coming to another standstill.=C2=A0</span><=
/blockquote></div><div><br></div><div>Unless I am mistaken, only <b>one</b>=
 solution has been proposed for a problem that has zero on-list examples or=
 test cases.=C2=A0 The community is being given a choice between one soluti=
on and no solution? =C2=A0</div><div><br></div><div>If we can define the pr=
oblem, with more than one historical example, then we can consider multiple=
 solutions, pick <b>two</b> of the best solutions, and approve one of the s=
olutions for implementation.</div><div><br></div><div>Regards,</div><div>Ri=
ch</div><div><br></div><div><div>p.s. This is a strong objection to the abs=
ence of a problem definition.</div></div></div></div></div></blockquote></d=
iv></div>

--0000000000009bd6b3060bb933c1--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 02:45:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 02:45:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647378.1010440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rALR9-0001sT-Tr; Tue, 05 Dec 2023 02:45:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647378.1010440; Tue, 05 Dec 2023 02:45:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rALR9-0001sM-RD; Tue, 05 Dec 2023 02:45:27 +0000
Received: by outflank-mailman (input) for mailman id 647378;
 Tue, 05 Dec 2023 02:45:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H3q/=HQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rALR8-0001rv-6l
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 02:45:26 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20622.outbound.protection.outlook.com
 [2a01:111:f400:7e8d::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 55368475-9318-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 03:45:22 +0100 (CET)
Received: from MW4PR03CA0133.namprd03.prod.outlook.com (2603:10b6:303:8c::18)
 by DM4PR12MB7549.namprd12.prod.outlook.com (2603:10b6:8:10f::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Tue, 5 Dec
 2023 02:45:17 +0000
Received: from MWH0EPF000989E7.namprd02.prod.outlook.com
 (2603:10b6:303:8c:cafe::5e) by MW4PR03CA0133.outlook.office365.com
 (2603:10b6:303:8c::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Tue, 5 Dec 2023 02:45:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 02:45:15 +0000
Received: from SATLEXMB08.amd.com (10.181.40.132) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 4 Dec
 2023 20:45:15 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB08.amd.com
 (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Mon, 4 Dec
 2023 18:45:14 -0800
Received: from [172.27.137.28] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 20:45:14 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55368475-9318-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aSHbSQkoV+8vTrk0o+3lnuFOQPuqKt1WjgS5IqIxIMW/5ZA5C/oABS/2Q/y2ps1bKDBS65Wm/Xp2DYoPM1LygHJ+jYajPgvhaX/ewoyA4zJSCJS67AEezEv/Xfta2J8hpY7xjrbHSaQHz7zN32eH8MWvyjinjAQihX1ZXZ+9i5g9vQLFBx3XIK3ScPd0CE6p13Azmi+5eWIKcJ1sevoAK68A3nLElTnrJjB6d51SsM5q+DY1QdMuD5bx7e5hSN/Hu0JpwIZ4b/XXQD16oEHEs1f8su7cR5QnhfwbYd4HiyHARFLAsfACLaoBuOJqnFdFQf/HDeGuv4gDWcY3mcZ9Pg==
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=88uRk3jdohLNmjxocnljUSXOZuC9n4eCPuzq0fnjPJ8=;
 b=bZ3lDNDKnxAf6GlFgxl+amXz7IqlwN9q5LzFk5QxuD2PLb5lOJecFPJN/7slC3fL1/1fb8OQsZoq0WhCEGIzqre3kxUfohdaP9wS5R46Vd2nWyqZr6/F19w7EWlSgQlGfnxhDtGB+aS7nBeT/QzbIA/fVBGaY/JckPUw7sOZ+Xi5PzbxrN98g9OA6olbvfbDnOMinzT1wP2XanuAfHo5a31R3/QPijhywBz+EZDrIliECIZMzcMTcIVOi88BKh2DoPoncyEAc8htTuf217FZcka+sVsV4/t7NLm313iBlKJm+Axu3g8+XVRyeCHZQ/Rl+y4UoXomZuym+wn48aAxBg==
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=88uRk3jdohLNmjxocnljUSXOZuC9n4eCPuzq0fnjPJ8=;
 b=ft4GNSqRJ+3KpyFRSWzpyLJHhTkrMiaZBtIGbMO3TVhWiS/lSuZHkl/P3/Z/t4TzFv+KAMRAFq9u8iFv9GFSPzbHFyrHDtS43iSNWMG1C0qtcWvD35/HVNBCZUfxjUN7/JsboYesRcv63YGZB7zsB4uMG01niPaFVwJRED3WvzY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <b30812b1-aaa4-41b2-9d82-5ca1478012c0@amd.com>
Date: Mon, 4 Dec 2023 21:45:12 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 12/17] vpci/header: emulate PCI_COMMAND register for
 guests
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-13-volodymyr_babchuk@epam.com>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20231202012556.2012281-13-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|DM4PR12MB7549:EE_
X-MS-Office365-Filtering-Correlation-Id: c5d5cc14-a031-4a21-9910-08dbf53c369c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	DZ6djxQKBPazqa7Hi0uC8GIpIA3yDPpgQEj4stNByvqxChmXB9JoPwHq39tbRl+S2MnmgmWRVGCvOYPrHZwxggx5QAivkVhoWONBiX3bs0p5FitZLssLZhpfEAUygWwqr4U8oSXpOGWVE6tHv9KuOdVV3XsjGJb1akdKSghkRsy6GdUKJ1s14rjeQYqeQDOkvUop7DvNJlAfs9Rh3l1Q1AZoXjz0UbdlhkKJhy9gJU6o0jNS2Dy32NISKS8H5V9tJsidiL8hFRPk66fUDA+j3YFclKWfZ7Vr4wg+5K4YuWQoGzH5ME++GfQz7qHtNi1t6y5fPIvmf0/dYjw42IrE9FAas0Od/mv7cU55LK0NQHL/BuzG3kWt7VttXD9Gow1F3F3meDyCKVBXcKFif/sAmQt2CV0IkbLGRKqLf9zumxprwYsTevkS1hS/mw5FeQZmxTI7H/R4kisl4mVtokYiZD2ny32WRzI/TWF/etfG8Hry1qlft6j6EJdNJgOm49Wuc1WQEaz5vOleAs8umnTdOmB6CoSysBHMK+9VseEv+cJd2UpuS97lSOmZV53bg0mFLKy5Y0X2hPGLKZlM9s8e7EftU7CKF8D14fzHnrzpnxKABtLT6ejFbrEcNfDw62CifUclfXQ+Fyfb12XHdo0NqNjc6V/YB6saEVX35fLRNR9xE7YfuI0zgqlEYuNx+ULJNJ/hDtyb0Uf7pJg5NSHn9/OCh2HjbRSvx/cMaqlty4h8m/7Pp37Vv5irChnsSfuqntidZ9KWy7vtUeepiuHz5mR5BLJZ/OQPP7R42GQF22l0vJrqVUaa+dthQFtsHVQl
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(39860400002)(346002)(376002)(136003)(230922051799003)(451199024)(82310400011)(1800799012)(64100799003)(186009)(46966006)(36840700001)(40470700004)(40460700003)(4744005)(53546011)(36756003)(26005)(2616005)(36860700001)(41300700001)(81166007)(82740400003)(356005)(336012)(86362001)(31696002)(426003)(83380400001)(47076005)(2906002)(478600001)(40480700001)(44832011)(316002)(70586007)(110136005)(70206006)(54906003)(16576012)(8676002)(4326008)(8936002)(31686004)(5660300002)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 02:45:15.9101
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c5d5cc14-a031-4a21-9910-08dbf53c369c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989E7.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7549

On 12/1/23 20:27, Volodymyr Babchuk wrote:
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 21b3fb5579..bc2ebe125b 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -167,6 +167,9 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>      if ( !rom_only )
>      {
>          pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
> +        /* Show DomU that we updated P2M */
> +        header->guest_cmd &= ~PCI_COMMAND_MEMORY;
> +        header->guest_cmd = (val & PCI_COMMAND_MEMORY);

Was this assignment meant to be a bitwise operation (e.g. |= ) ?

Also, "val" doesn't appear to be declared in this scope? Maybe you meant "cmd"?


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 02:56:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 02:56:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647383.1010450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rALbR-0003ux-S8; Tue, 05 Dec 2023 02:56:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647383.1010450; Tue, 05 Dec 2023 02:56:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rALbR-0003uq-P9; Tue, 05 Dec 2023 02:56:05 +0000
Received: by outflank-mailman (input) for mailman id 647383;
 Tue, 05 Dec 2023 02:56: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=H3q/=HQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rALbQ-0003uk-4n
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 02:56:04 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20613.outbound.protection.outlook.com
 [2a01:111:f400:7e88::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d1c6cd3c-9319-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 03:56:00 +0100 (CET)
Received: from MW4PR04CA0081.namprd04.prod.outlook.com (2603:10b6:303:6b::26)
 by CH2PR12MB4200.namprd12.prod.outlook.com (2603:10b6:610:ac::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 02:55:57 +0000
Received: from CO1PEPF000044FB.namprd21.prod.outlook.com
 (2603:10b6:303:6b:cafe::91) by MW4PR04CA0081.outlook.office365.com
 (2603:10b6:303:6b::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Tue, 5 Dec 2023 02:55:57 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FB.mail.protection.outlook.com (10.167.241.201) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.2 via Frontend Transport; Tue, 5 Dec 2023 02:55:56 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 4 Dec
 2023 20:55:55 -0600
Received: from [172.27.137.28] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 20:55:53 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1c6cd3c-9319-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QnFnorVmNgynXBXf6jK84fSRSpmuYgC9dojA79iNdJdOo3cdEzmNYBDvry95/3t23LnH1/3rpJE53KFFzSHSp0BQMIfiX0wXAVaz+qShmcDa4PwOFoF3gtyfJ5p+XeD/EtSh65EC4Yj2piMv4IvBW0Tmmb3Y09kMgN/X53acdheS1YPXC2Si8xEXyDUlyEBRCbbuAjl77gV78J8a/QlY26NamQmRKrHjSfMJTUo6meAg+xmne1QtqWYgEL0kB6DhP6xHPI8QMZVXEDcjZ7nZeWjCHbuH4AYYLTfKAk6nwitzMxVO5fn6va7AbDEPVwnm94YxYiq/WeVDFBGuPYOMOA==
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=vjRfouQkKU4RpguekyvqFKOrZx10k+GkbjMSwaIfngc=;
 b=BYF64IqjEY9zhkUXSYFm35Tz0O3CiNnjq4+CCGEZDxBKoACT5fPuVusK6E5bfJ0mLjOKALs/ek4HK7nOIfi90PU7aJnLl8Gw5SAGRBixUED4q5+lmoVjJcGhg1RttuWyL0OI5mEa50Zb+IwK4HZZbF7/DVvcQLruzSbmVYF2LU2okH1IBX/Q8qFiOwZfOyi6PmgMiCGqAM1yQSYm3WFm9FTvNp7svwl4sBJS/bg1xKL2fB5uNAmTPGHkqP7zu6LjSwumYQ1G5gTmOKHJFMrAu98kKTXMUQfphmkbnr8BwTPLenWtUCnGUiT+LPSmivZyiM4lu8QKQwvvjiadGbkHxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vjRfouQkKU4RpguekyvqFKOrZx10k+GkbjMSwaIfngc=;
 b=0P/uof9oCPeoMzLF+xPCMA+n1usssD0tj8jcVEo+gF2me4Kj6r7AzyKD8QPEBOXFRJZfGvNXOMhq8HVl+1xm/q+7DPkk5OhjUOtjfTGbfpAg+yUoujd6neKfhtR0r9uz2K2IAL0pJZVc5M7sHJWgzRfn/Fq99mH9QnhmmUUQrv8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <61591bd9-60bf-405f-a4f1-152193972823@amd.com>
Date: Mon, 4 Dec 2023 21:55:53 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11.1 16/17] xen/arm: vpci: permit access to guest vpci
 space
Content-Language: en-US
To: <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Wei Liu
	<wl@xen.org>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-17-volodymyr_babchuk@epam.com>
 <5bb1afc3-6de4-4b78-85a4-2610f5f1d001@suse.com>
 <4920dfd5-38b2-4122-8108-508aa643ddf6@amd.com>
 <20231204161802.3537573-1-stewart.hildebrand@amd.com>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20231204161802.3537573-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044FB:EE_|CH2PR12MB4200:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f81f1f3-56e9-4bca-db80-08dbf53db3f4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qlAcba08c2sD8h3JcA8Ybb+VEyZDUaOszy4+A32IIo02vFwmwROEpzpzVTj1y4q3rcvfUkp//j08gMUIwwFK03A1n+CzLsrdnEkX3u88lAKLYHQ4FR/Cko/sB+ntsd5ump/aCttqywlLdRumUqKsKkZqnhzLgpOL6rFUIZ7nyXxdSFFuCkjCgLQVGzHMw94cndtqpOwaUDsqPL6JU3RZMKUHr3DeRmANp+iV0Mlni65zQ1RH4p/FMaUQq+PhGpEiW+49Ob2sSgqTULa9uL6csXeptNuWRCVI6PjarW09nHIx07ugcsshcJUgB7kVJEgilcQWA6WyxtUnWShOnUNMLy91hpsc2HvyB+IHSjTGwc7ZkpTWFNd9x1yTc/BMSkigqhrChXAkApcVH5vYIEc3AHGQXmQ+SOu0ko/uXvPLOV1yfDYTINhUiwi3t1Y+50ZNoLS4k3qG+QKElCcKZviHEhmoviIwO8y8lE1uJCxiKH0VijO2ghnKvkVGmMTKB+elrvZUWNp4i4n85+nSYhCg+tInsyDHFIjdPIlPzMM0vWPem8U0OyMVafwfWftC7cXP4ZhW9PbRInoKQQGUnGpql/apYdQ05B22mBA9Mev5fzBQKVmgrHotFKLA/gqtNg/6xskHO7bOYrxnOTbN7o6wNxibAqskygn+ly4rffZHLD6G0vy5JffYcGroi85EFk0wqyFGNnjb4MC++pvLU13zvwfwaK+bSU8gMr2lKhkZsggAt6VPgwLrh2MKFLBJ+QSF6wpZavPI9KvAHfD/MCIs9rwFvtrapJ7+gxFyQK3vxfEkXPTyOScPiDv8e5LS9g/2
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(396003)(136003)(346002)(39860400002)(230922051799003)(64100799003)(451199024)(82310400011)(1800799012)(186009)(40470700004)(36840700001)(46966006)(40460700003)(6916009)(54906003)(8936002)(86362001)(316002)(8676002)(44832011)(4326008)(31696002)(16576012)(70206006)(478600001)(70586007)(36756003)(41300700001)(2906002)(5660300002)(4744005)(36860700001)(81166007)(47076005)(356005)(26005)(2616005)(426003)(53546011)(82740400003)(336012)(31686004)(40480700001)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 02:55:56.2317
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f81f1f3-56e9-4bca-db80-08dbf53db3f4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FB.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4200

On 12/4/23 11:18, Stewart Hildebrand wrote:
> Move iomem_caps initialization earlier (before arch_domain_create()).
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

So sorry, I cherry-picked the wrong one, this one didn't apply. Let me try again.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 02:57:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 02:57:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647387.1010460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rALcz-0004r0-6q; Tue, 05 Dec 2023 02:57:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647387.1010460; Tue, 05 Dec 2023 02:57:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rALcz-0004qt-3p; Tue, 05 Dec 2023 02:57:41 +0000
Received: by outflank-mailman (input) for mailman id 647387;
 Tue, 05 Dec 2023 02:57:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H3q/=HQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rALcy-0004ql-Iz
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 02:57:40 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20600.outbound.protection.outlook.com
 [2a01:111:f400:7eae::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d089068-931a-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 03:57:39 +0100 (CET)
Received: from MW4PR03CA0118.namprd03.prod.outlook.com (2603:10b6:303:b7::33)
 by DM6PR12MB4482.namprd12.prod.outlook.com (2603:10b6:5:2a8::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Tue, 5 Dec
 2023 02:57:35 +0000
Received: from CO1PEPF000044F0.namprd05.prod.outlook.com
 (2603:10b6:303:b7:cafe::d2) by MW4PR03CA0118.outlook.office365.com
 (2603:10b6:303:b7::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Tue, 5 Dec 2023 02:57:35 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000044F0.mail.protection.outlook.com (10.167.241.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 02:57:34 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 4 Dec
 2023 20:57:27 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 20:57:21 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d089068-931a-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FypOhiJTliSvD4cfr+8Dp8i0Jx+ofybEdqd4CAN0MI+jMRcwEOcVbCDXAjOBGxgkM4SELRI/pG+Ai7EKbrNi/wLtWcduQtDNn1Mlw9Ppc6ebCN1uCySOI69IEfmj83/PjK0qeNTB4avGEbCMvWegwSEPvXlNhL2E4oxCBbwJ276PCJt14vBTSRokd1T3/b3p2FSM7DHDegq7LBgKGIThN4lMgkYzwKc00y/dXmTIQTVvMiXHSbLVGGXFDnLS98VOIx6BHYi4/4Z1+2Fm+bEMNDIAPZWYGZI1lhrar2vH7O90YQtUB1s+xUpW7Av6ljPElcd2dJia2AHaRRT3sPOnJQ==
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=8LzxGsfSgseDIFKNBhYmUMDHqo8UtHsN3wMkkk3FOB4=;
 b=CrAKHHDI9q+rAdFg0k2Bad/nJ5EEB6086H/P0r3bytCTx0Sbdi10urqgAotVJ/4yFzZl9NmHqY3g/OwdSVGlr3VbdCKQFGH2PROD6SL1iYfDzyX3+SQVuWDaXmA0seV7N5B0cp8vs0R+ZVl1TLsQTjrZZYbJKenAtRziuShpJ1Z5PL5avmBtlD6Owfyy3vJ03x4h4XJ8dboZxGYQFNDFI3CXyiPtPJjdHCNsbs9ulnEQcHJO32PpShwHqeGt1PoaeWQjeSUpEIQ1HxT3t6m/UwZ3n56vvCub3kcunMSM2zSmwCzG9nj18Wovpm5lZdO7cniegNsUT3PPsbahz4MVAg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8LzxGsfSgseDIFKNBhYmUMDHqo8UtHsN3wMkkk3FOB4=;
 b=Wmotc7pY38wu0JKlvaJQgCxVAJG520wdXxg6hyTGRMTFOsa8JwjWPAcYmYWn3MIK9P4BjQw3YmlJrmL1OoHoO26cRMOpcl36c+yTD3b5GERuZvnxiI7eMxrnjYxCpxK5JwBDL0nhPaX57C38tLkPcF88nROTpl7IYO2EFfqT5ss=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>
Subject: [PATCH v11.2 16/17] xen/arm: vpci: permit access to guest vpci space
Date: Mon, 4 Dec 2023 21:57:14 -0500
Message-ID: <20231205025716.3654662-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <4920dfd5-38b2-4122-8108-508aa643ddf6@amd.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com> <20231202012556.2012281-17-volodymyr_babchuk@epam.com> <5bb1afc3-6de4-4b78-85a4-2610f5f1d001@suse.com> <4920dfd5-38b2-4122-8108-508aa643ddf6@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F0:EE_|DM6PR12MB4482:EE_
X-MS-Office365-Filtering-Correlation-Id: d2a5cefb-0204-4bf0-4fce-08dbf53deeba
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	y24CayYa/P8SCOB4tQCLuQIKS5/BlWEJWF1/pcUbj0t332xKrTQsDwDD+HrRazT7VpAbdpNu/aiCTJV8iubZozkN9OpdbcgZxWPi4fCLmahABs36kc/73X53yhPpw64McCuvYK/MQkcFI2I7FCnWVqjDO+WYWBMrQZpo5gaIdpeTQji5hGtTsOGD6dQC9iSzW4r6PHoSkOLc3e1l3Rqdg/tm7AijQb1FN4pziYKx6GQWCu3sZAWJa+qdzP0QYl16jc56hGpa23a6qa13KKaivDb4GXlJEG8nHSsj/arJG2ks8EvwtPgk62/5wN/UaUKDakkhW7FGwtZcFu/wcWlAyxzZ2YCgYohbLggnS79JDkcTwmsIaz0VyZiAp7J5VXtkgIhT7TxTMJmQOJFWsbdPY8HsxHcgWeeUP/Q35dAOT2Z7Kko+dTuwdvRGXoaNb0L19zNgYSQ0f9Jx4scMaUMK1xY9WlmTF3S5jgf/wrDt/J1fcoGsRKKj9yibS6PzRVY97mMaeVb3e4OSLLSf50wwDK2ai7Lp+oKopGRnv6i0EN6Td+XcmszaxX2ub5ioAw6KoiS91sJpCjD60sJKRWn/Xt9XvrkW3Tr5ZJd8sU0cnQOuYzTsHXIBENjEBKFEVN6bK3Qk9pCQNkVsVoSUgCnsuZP+rzZ8ceVauJHYsEDA0HbHR6Cx6kiKEAu43GYEIBQ5sDI+kd03usNzuKyKEBUIuHaDeWB0WI8fJNqHGuScH1WptgbEzEpFmteI+R0gyLKRinAqp0sJZDsxLYkAC4l0/Q==
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:(13230031)(4636009)(396003)(39860400002)(136003)(346002)(376002)(230922051799003)(64100799003)(186009)(1800799012)(82310400011)(451199024)(40470700004)(46966006)(36840700001)(86362001)(36756003)(44832011)(40460700003)(5660300002)(2906002)(41300700001)(2616005)(40480700001)(1076003)(83380400001)(82740400003)(26005)(426003)(336012)(478600001)(6666004)(356005)(47076005)(81166007)(36860700001)(8936002)(70586007)(54906003)(6916009)(70206006)(316002)(8676002)(4326008)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 02:57:34.8336
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d2a5cefb-0204-4bf0-4fce-08dbf53deeba
X-MS-Exchange-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:
	CO1PEPF000044F0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4482

Move iomem_caps initialization earlier (before arch_domain_create()).

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
Changes in v11:
* move both iomem_caps and irq_caps initializations earlier, along with NULL
  check

Changes in v10:
* fix off-by-one
* also permit access to GUEST_VPCI_PREFETCH_MEM_ADDR

Changes in v9:
* new patch

This is sort of a follow-up to:

  baa6ea700386 ("vpci: add permission checks to map_range()")

I don't believe we need a fixes tag since this depends on the vPCI p2m BAR
patches.
---
 xen/arch/arm/vpci.c |  9 +++++++++
 xen/common/domain.c | 10 +++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 348ba0fbc860..b6ef440f17b0 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -2,6 +2,7 @@
 /*
  * xen/arch/arm/vpci.c
  */
+#include <xen/iocap.h>
 #include <xen/sched.h>
 #include <xen/vpci.h>
 
@@ -115,8 +116,16 @@ int domain_vpci_init(struct domain *d)
             return ret;
     }
     else
+    {
         register_mmio_handler(d, &vpci_mmio_handler,
                               GUEST_VPCI_ECAM_BASE, GUEST_VPCI_ECAM_SIZE, NULL);
+        iomem_permit_access(d, paddr_to_pfn(GUEST_VPCI_MEM_ADDR),
+                            paddr_to_pfn(GUEST_VPCI_MEM_ADDR +
+                                         GUEST_VPCI_MEM_SIZE - 1));
+        iomem_permit_access(d, paddr_to_pfn(GUEST_VPCI_PREFETCH_MEM_ADDR),
+                            paddr_to_pfn(GUEST_VPCI_PREFETCH_MEM_ADDR +
+                                         GUEST_VPCI_PREFETCH_MEM_SIZE - 1));
+    }
 
     return 0;
 }
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 9b8902daa305..57f4578f7f7e 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -693,6 +693,11 @@ struct domain *domain_create(domid_t domid,
         d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
 
         radix_tree_init(&d->pirq_tree);
+
+        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 = arch_domain_create(d, config, flags)) != 0 )
@@ -711,11 +716,6 @@ struct domain *domain_create(domid_t domid,
         watchdog_domain_init(d);
         init_status |= INIT_watchdog;
 
-        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;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 03:29:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 03:29:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647396.1010470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAM7s-0001nO-Mt; Tue, 05 Dec 2023 03:29:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647396.1010470; Tue, 05 Dec 2023 03:29: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 1rAM7s-0001nH-Jq; Tue, 05 Dec 2023 03:29:36 +0000
Received: by outflank-mailman (input) for mailman id 647396;
 Tue, 05 Dec 2023 03: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=H3q/=HQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rAM7r-0001nB-9v
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 03:29:35 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20621.outbound.protection.outlook.com
 [2a01:111:f400:7e89::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80cb99c0-931e-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 04:29:32 +0100 (CET)
Received: from DM6PR06CA0084.namprd06.prod.outlook.com (2603:10b6:5:336::17)
 by PH7PR12MB6396.namprd12.prod.outlook.com (2603:10b6:510:1fc::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.23; Tue, 5 Dec
 2023 03:29:26 +0000
Received: from DS3PEPF000099DD.namprd04.prod.outlook.com
 (2603:10b6:5:336:cafe::54) by DM6PR06CA0084.outlook.office365.com
 (2603:10b6:5:336::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.32 via Frontend
 Transport; Tue, 5 Dec 2023 03:29:26 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 03:29:26 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 4 Dec
 2023 21:29:25 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 4 Dec 2023 21:29:24 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80cb99c0-931e-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eQvjr9Jy2pi1955VIC0VzHCzpy1nYf/vD0W3pDPlH7Hwynl2Ogn4jleRYvs6RJekNKUiLDkwaoDY6RtSq9HoOGtfwzyS7YcvaR5lOGVaoD6QWmFFvR6azRVC8LlaPVE95dO+MHh80XWxkr14pw5LoFid/DROgWEERCZtU96xbxBVntEvMZd19gakDLclnrDKS+stpmkox7qyfhaQHmqWceyXEg5X4ElKU+7VvLNzh5VbyopBuPHfIAiOndbMTCcn0VpVchUyEceRuGm+iOnPlpAhXkVeFwBnT+lQvH34xRfBEa27fduE0I3awrw2e7WFGrdLvaULdm1PLq3E8bMahA==
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=zH1n2UOyz3e/Zk+LuK0xB0Y+U90M5mdvOerHQwWk3lI=;
 b=mWq+m0vSJgwuMj/43wbMk77627WybAcyjGXDr5Ywd3ORE5mKorhrPO9kJWgw1AOPnWhcXyrza2c/y4WyExZH3ajproGSHQccbNpDnMYgx/ytYQHiG3tfMZpuXdmxdmHG0DjqhFJEKzb3Kp1H57+vDX/iaC/n7Vk8+9Nhwn1EyrXrOy2m91siz8AqhGagrMVoYGcw+akYVtreEsus4QJv7gLbz40oFihbyVk9Q5Vq4n7yEgHei+drfTHo3jNFtGr+422uGpXWVMFfDQmYPdUE1wetuAr/ZKwXDjgk35XacfzmKIwgyJo5P0AwkQyHucc+c9Vm24c6+oS8VRefUQO+1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zH1n2UOyz3e/Zk+LuK0xB0Y+U90M5mdvOerHQwWk3lI=;
 b=JK56eBt8DUEES4GkBFyoY38BpM38TXvRqTH4d8uTu2uh+l9iYFxgSGqWvjqfVH1P1E4Eh1MDrerbwl0dDKIiUL9jlZpqqIX87GvUDC1x85VEU9SbbcBa4wTTYsumP9XrFluXK4GYPnbUG2OUgES8VEHoePvvrEjw6smE63rj2uw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, 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>, Wei Liu <wl@xen.org>
Subject: [PATCH] xen/domain: fix error path in domain_create()
Date: Mon, 4 Dec 2023 22:29:11 -0500
Message-ID: <20231205032918.3656211-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099DD:EE_|PH7PR12MB6396:EE_
X-MS-Office365-Filtering-Correlation-Id: 002b0490-5b2b-4c29-bde9-08dbf54261f4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	bnvyo3jVLtEv/4xJwDBd8qw8Qbr+M9tqkW1plJMSQlf2PadoVoDIAT9L2c6+4nZsm4doKek5zU441F8rj+6t0RO6fRhX4Kw1+7W5pQYYdlug51rzNa/RLGoDYWPxFBOmJW02nvcNdc66SMpEiHx7vDWQcfFFLI7EUjXd4SjbYkS527IYNyRm6GxL+YBgzMH8JO7JM+AREmJ7T4UMjasqw5gUCDZ6gMe0SWikoIU/Ioh9jpu7pKJLsrwNlJO0BRX11VgRFJbgc9KuvvEQhmiw7Rax4ON1c7RHdhLCySlWdPtrOoyOGGKNFw14eCxYzaX6nbF40pXHLCDhxYvzxa4wGyCiZwlhrvN9bjV4w9VOr9JlT8JbhxfkR6J/HGUu3i7Yig6kkLiHXE6ZDhvtTdZZkNEhva1J/TFI09wZw4Rxo+A/LXQiuutQDMp37Uq55Umzw1FI+57LjKbegXyyzxBwBOKL3Vi6KHVunIDHr4SxFu4YoBFtXbehdSaG5syZuqlw9UpzsVRE3EyyoKimgSru99A3/rxenJYpS0BeSjWooiSW+kTt+nmpaO3gx3RXepPmgZPysreGKuvlOm3qcPUr44QKjoHLlTqNxrnF8KpE/uBgxScYAML+u+FgXsPf2iWtnLxtwQxyzgtjBhabUoZ6uCkIKctCdKpal9FFpdjOIdQTdcEBHpNJFqj2z06UljaKnc+tJN3vcZB/OM3gt+YgUR0jgeDPbb/MWeqABF7DPJXqjGrzWci8XPYWvKcLnzvsTDKB+UDmI6ndNHAV8vYvUg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(396003)(346002)(39860400002)(376002)(230922051799003)(451199024)(82310400011)(64100799003)(1800799012)(186009)(40470700004)(46966006)(36840700001)(40460700003)(26005)(6666004)(1076003)(336012)(426003)(2616005)(54906003)(70586007)(70206006)(6916009)(40480700001)(81166007)(316002)(82740400003)(356005)(5660300002)(86362001)(8676002)(44832011)(4326008)(36756003)(47076005)(478600001)(2906002)(41300700001)(4744005)(8936002)(36860700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 03:29:26.2351
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 002b0490-5b2b-4c29-bde9-08dbf54261f4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DD.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6396

If rangeset_new() fails, err would not be set to an appropriate error
code. Set it to -ENOMEM.

Fixes: 580c458699e3 ("xen/domain: Call arch_domain_create() as early as possible in domain_create()")
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
 xen/common/domain.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index cd2ca6d49a5e..c5954cdb1ac2 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -710,6 +710,7 @@ struct domain *domain_create(domid_t domid,
         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 )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 05:50:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 05:50:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647400.1010480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAOJl-00065f-9w; Tue, 05 Dec 2023 05:50:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647400.1010480; Tue, 05 Dec 2023 05: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 1rAOJl-00065Y-5Z; Tue, 05 Dec 2023 05:50:01 +0000
Received: by outflank-mailman (input) for mailman id 647400;
 Tue, 05 Dec 2023 05:50: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=Nqzk=HQ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rAOJk-00065Q-1a
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 05:50:00 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2061f.outbound.protection.outlook.com
 [2a01:111:f400:7eab::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1de85cb2-9332-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 06:49:57 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by BY5PR12MB4888.namprd12.prod.outlook.com (2603:10b6:a03:1d8::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 05:49:52 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 05:49: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: 1de85cb2-9332-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HeWoJ5ZkOA/eLGPh+P+OlElQNbWFyP0aEYmWeqHQHg+JcKTq8xai8XoqM2ZxGdwvP91p1BGwtcXAW69JTq+YRsqgSmm94aR+Pc6r1lSOPFbFD5CkG2xVMGE3fGlUVCe/ZIAh7WklGxzsycflE5e9Mg7hYH+Rn27NhG0nrSAAMuQxwJAAbn1bcMebkuzvpT2Kdh5vsoqUhG4UyKQDmzLZDz1d1+i1g8nOUclR4LdKor0sAn2Wa5SpxsXF6pRm8RFoVSMJ/vBHx9QHIcFqyBVQxSvYME5voI15NRovfrLJzISKAm3Vzi3NigvljEvQ2HPDH9v8zAsEYKi31Ji18ULIDw==
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=2K/jlUawXqB+z1ba/qK7p4ALp+c0201T+kiBpevrm1Y=;
 b=U0JCEGlLZe3LiKjjPJ+MHvC4KaCPIi+KcnASq1PCqDi3ZAnaFAnsMm3+7lQbIXC7Qzu/2Rj3QQeaep/9Krh9O66mePIwHg8bH/6hTsefLn4m61kzzgISqYhjVjQheSfnkLGuRYVb+AE+av9Yd0vR17cWFRuuTg2TantzgorhWN9NnEZY5xXi5dw1y43bOtwUqJNfhhTOQTk8+PLo+nN8Pq0ebrkMaRVgrjYEdtu+uJUXrT4CimIwJDwJaZ1yOBWxf2aqaz+/V6rA8yb8HjDj9t1P514h0H134dtxXCA4npLORQ+4XeVB7HefJxC4Wy5citZtd4ee4JvD0QL1E7TuJg==
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=2K/jlUawXqB+z1ba/qK7p4ALp+c0201T+kiBpevrm1Y=;
 b=tTeG9PRPPvH7adrjHBNIvJs16BQb6+qXYRA1O62T4M2UEa2CZLYWN2D09XcGXtQQ3yJU/c6fMpqARCgchrnVWbFs40/4pZOxpWm4JV7sY62TYzmL7lidaMVOdh8wYdoWf+ch34vu/OFn27T3MYe/quj48Y+6nUO9JD9eg+VXdmI=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>
CC: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>, "Zhang,
 Julia" <Julia.Zhang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v2 1/3] xen/vpci: Clear all vpci status of device
Thread-Topic: [RFC XEN PATCH v2 1/3] xen/vpci: Clear all vpci status of device
Thread-Index:
 AQHaHsLfq+dfGUvRWUqPIEH3O9fXrbCPyyeAgAMgFYD//+e9gIAABBEAgAAlHwCABknUAP//wXqAgAG9+YA=
Date: Tue, 5 Dec 2023 05:49:51 +0000
Message-ID:
 <BL1PR12MB584987E07A39C1D0A362A836E785A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124104136.3263722-1-Jiqian.Chen@amd.com>
 <20231124104136.3263722-2-Jiqian.Chen@amd.com> <ZWX0U1tYooY70UJo@macbook>
 <BL1PR12MB58493CC28A32E3C9B3A1767FE782A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <14d2dd16-be21-4e9a-97eb-bb477af49e73@apertussolutions.com>
 <930da43f-0395-40cb-a79d-012c4e1acbcb@apertussolutions.com>
 <ZWihrmHpIrI_ccX4@macbook>
 <BL1PR12MB58494BAD4ECCDEB00EACCF9DE786A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZW2zp2emocdOn8_o@macbook>
In-Reply-To: <ZW2zp2emocdOn8_o@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA1PR12MB7663.namprd12.prod.outlook.com
 (15.20.7091.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_|BY5PR12MB4888:EE_
x-ms-office365-filtering-correlation-id: cc9c9c7d-9a31-41f8-36c9-08dbf555ffe0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 SZmgJAFLPR5oiOlb5sCdVWk5EtcaSs5rCi76aZy0j+soI1g9YIAqy80I/fxc+31pknpmjeBlJMv5OxfrEqsrdJVaebCA458YoucDJNEdFPPXzWuS/MpKxpEbzRXlGMn+lWpWI3WuH+wjYtQ+JRSMWni7okjNhAtSNJJkMphWYsiglYDxwLof/trIOTi2va+pAx5f1yYfqVRvUIWfuuYTYJOZoc+k7cVUk3Qgs1mjenJnnQ1Bq14R7pKR4SjErsxlPXdZMv+prKKyniEKWJ+G9MkmZs5KK3plwQdV5zNsc4iEQYV4E8vKC1ksyFU6MvgBT+GpZOQhvrbv9CquGkUKSGA1wJXBWiFI7o1zMOvI94ueHFek3ml74nn1+aO4l3yNps+YCYpIKha51foIPCC4+kC2Jv3je7KJSxopcDomFlbTax2k7dmtQR84p3T0qS0rjoHJd+isY/QUxS7GJuwsGw0EsGQezRdjXZV9k7NOJh5TXidoidPshO72Li0qB70DaeMuO0k8ialsAxuhd9pUo2qDaMufYq1tNOSJ/8rdJvrR+hQWvMn2Dvr+QWUpQ9couvie6KsZdSuBornhVHX3RGNuyVYA9w0Y5VNpJcOI4A6pDiTzf457sCZ/BFbU41ocJx4h4rxJH1Tj2RP76yENKo4WjgdSlJ8Yoabt/qDMCHA=
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:(13230031)(366004)(136003)(376002)(396003)(39860400002)(346002)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(54906003)(66556008)(66476007)(66446008)(64756008)(66946007)(76116006)(4326008)(8936002)(8676002)(316002)(110136005)(478600001)(71200400001)(5660300002)(38070700009)(41300700001)(33656002)(2906002)(52536014)(83380400001)(26005)(38100700002)(122000001)(55016003)(6506007)(9686003)(7696005)(53546011);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Y2szOWNQdEtYVUlJdlg1Zmh2TzB5RDR2MHVKZHBudDRHbHdZZ0huTGx2Y0Uv?=
 =?utf-8?B?UnNvZzBhUGRGOUpkR3hPVlFRaGNtS01CSVJZTklPM0kwanB3THQyZTNTMktS?=
 =?utf-8?B?RFRjNmZXazkyclhSQ0dxV0dyekwveXJtcGNUTlVNWUhnc0plUitYYWNxdmhB?=
 =?utf-8?B?OFNzWnNMS01Xcm02ZXk3cWxZRERBUzQ1UjQ3MGF4RW1MYnBWUGtaZHkrcEdr?=
 =?utf-8?B?VENJNXAyTjc4S01ucjY3WUw3dHl4QW82VUI1WHFMU0haREk2VFhrUTIwOWNk?=
 =?utf-8?B?eDZES3A3OGgxVk82WmcrVUpDWHI5SVdNd2Y3R1pVWkNORXFMVk5uMjk5S0JX?=
 =?utf-8?B?SXowSlA5UVNONWc0aGQvWUw5eVZmV00zZEk5TThGWTluVlEyVDQxNSt0VjBO?=
 =?utf-8?B?Nm81VUpnaXFrc2pldnFJR1ZPR0ZGaU1YdVlpc2R3N25objZObXJldDZNTUph?=
 =?utf-8?B?TlpCNEdxZmRxTkw3VzZEc1pqVzl1ZStMZm9ZZ3JDeEJ3aEFMOVBmdVIrQWhV?=
 =?utf-8?B?T2h6OXZrK053bEUyVkoxbmdVdWEvb2d3MDBmczZqbG52SmQ1RDdMVXJBRDFU?=
 =?utf-8?B?cVlpRWxuZVZERnZXWlRNc28yL01sK0xZZERsVkpHOHdCYVFwUlhUZDJaYkZM?=
 =?utf-8?B?MlkxelkvTmM0dmFLdExwNEJpdEFtNlRHMWpia0FNQW9BYklwYlpVcHJ3a2JD?=
 =?utf-8?B?K3NmN0MzbitMTnlzTlBjcUg5d2l3ckZrR05VM0dMRFhieUw0Z2w0aElZTUUy?=
 =?utf-8?B?S1JQUTI1VFlrUTFkTmZVd2JLNWdwTFZlUmc3NFJPcEpWcnZ0MXI1cnhINENv?=
 =?utf-8?B?WDI5YkZWWEYzQm91UHhFbG9hVE5YS2NTU1ZNQjBIVWo1MnZ3Vm9OM05PWndZ?=
 =?utf-8?B?L0FCc01TOE5Sc1J0QzkwNm9RMyswK0RLOE9GSVpabEU2WW10dUVoWVdvcVZn?=
 =?utf-8?B?TkhIM2NCNE9nWEQrZk5nUDhLYjhiY3c5Y0FmWUo4Y0dEQXcrZ21FWG9Kakd5?=
 =?utf-8?B?Q0RlbStKZitSTXFvRmVNSzdKOGRXWmJkMlFEckw2eDdBeTJMSW0xVnc4cnFu?=
 =?utf-8?B?M0M2SkFIU0p6YUxzRUpOeDMyVmVqNVEzK21FMHd1UzlPU2ZJUTBOYy9sVVVs?=
 =?utf-8?B?b1lNeDVES0FOT3BHcUs1MHhWcU1wR09rbWtaMXBESjkzMDFvcVNyUGRKb2ZE?=
 =?utf-8?B?dkpMRkNvRkVjdlYra0FrS3RyNmJjZE5JajhzU1RWMmNIblB4SzQ5KzNHZHlo?=
 =?utf-8?B?czV2cUZEYllIQXRFZ3dmZkZtK3lZbTlpVFc2QWJMMy81dE5nMkRWSm0zVWtI?=
 =?utf-8?B?THQwQ2xZY2dYSzZDNFB4dXd2a3NvRzZ1YVRtaWNTWURXbDhGakRLelZkVEVr?=
 =?utf-8?B?TUZ1bXBybHgxQWhMditXSDUvS1dsRG50em8xVDErcFE0dmMzT2gvTkRIY2sz?=
 =?utf-8?B?OXExK291THpQeW9PU2poK0YzV25IOTgwVFdzNFdhbjhDaU4wNDFSblM3TmRw?=
 =?utf-8?B?SUVCcUtLWVJPOE1xYUQ5bXVJWXFHQmlTMEc5dVZ2a1VIWjdzTEVnWVVxTG5U?=
 =?utf-8?B?UXdxUU1EV3RWcGNEK3VYWFlUV0kwUlhBNnFqL3NmQzFSK1hEdTNIdm1NY2k5?=
 =?utf-8?B?YTNOR09mTFBQMU5oY2lGMXJmZEtNbzFMdmp2bkFJZW9ZRFY5c0tobUx4d2FM?=
 =?utf-8?B?MFd1Qkd6OGhlQ1J3YmdTSjF5Y3lNMmNhR21XdkluTmR6R0M4bGExd0sxVitX?=
 =?utf-8?B?UXE1VDV6VmlkS09wcUUzNWljeDdqbmw2YWtMZVRvdE4zYlRSSFE0QXA1UzFG?=
 =?utf-8?B?VjZOcnN2SndWSllWSjcxblFkUjVrRE94Z2FCZGxwMXRzb29xVy9hd3FoTEVa?=
 =?utf-8?B?R3F1MmJUYXkwZThML1lLYUdQZjlWNjIyN2lTeXkzTzZJeVViczk1SG5VMjR0?=
 =?utf-8?B?V216Zk5QY0N2VGtpZzQ5TEkyMGdybEh4R0xzSXdTWGNVdEREVzIvU1VsLzNM?=
 =?utf-8?B?OGVRNDloUXZ4bzQrdzkxM2dIRmxiMTRsMkNQTUlQdzBGRksvQ2xnaUxkd0Jy?=
 =?utf-8?B?UVB5RHpCK3ViQWtXWnRmTTBDTG9NcFpiWnMrNGtZT3QrclI3VzdKWjBTZk1V?=
 =?utf-8?Q?Y5Xw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CD6D61EF8EE0BE4A826CBAACBADCC3C0@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: cc9c9c7d-9a31-41f8-36c9-08dbf555ffe0
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2023 05:49:51.6457
 (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: jqrGVM/1j5FYxdCKnEISurmHBB47PjHxi6sZzSs3pnQTfLZ1jwDd09jYaJpWHkktatt/rf5+n1fHFMxsrEgIBA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4888

T24gMjAyMy8xMi80IDE5OjEwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBNb24sIERl
YyAwNCwgMjAyMyBhdCAwNjo1NzowM0FNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+PiBI
aSBEYW5pZWwgUC4gU21pdGgsDQo+Pg0KPj4gT24gMjAyMy8xMS8zMCAyMjo1MiwgUm9nZXIgUGF1
IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBUaHUsIE5vdiAzMCwgMjAyMyBhdCAwNzozOTozOEFNIC0w
NTAwLCBEYW5pZWwgUC4gU21pdGggd3JvdGU6DQo+Pj4+IE9uIDExLzMwLzIzIDA3OjI1LCBEYW5p
ZWwgUC4gU21pdGggd3JvdGU6DQo+Pj4+PiBPbiAxMS8zMC8yMyAwMToyMiwgQ2hlbiwgSmlxaWFu
IHdyb3RlOg0KPj4+Pj4+IEhpIFJvZ2VyIGFuZCBEYW5pZWwgUC4gU21pdGgsDQo+Pj4+Pj4NCj4+
Pj4+PiBPbiAyMDIzLzExLzI4IDIyOjA4LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4+Pj4+
PiBPbiBGcmksIE5vdiAyNCwgMjAyMyBhdCAwNjo0MTozNFBNICswODAwLCBKaXFpYW4gQ2hlbiB3
cm90ZToNCj4+Pj4+Pj4+IFdoZW4gYSBkZXZpY2UgaGFzIGJlZW4gcmVzZXQgb24gZG9tMCBzaWRl
LCB0aGUgdnBjaSBvbiBYZW4NCj4+Pj4+Pj4+IHNpZGUgd29uJ3QgZ2V0IG5vdGlmaWNhdGlvbiwg
c28gdGhlIGNhY2hlZCBzdGF0ZSBpbiB2cGNpIGlzDQo+Pj4+Pj4+PiBhbGwgb3V0IG9mIGRhdGUg
Y29tcGFyZSB3aXRoIHRoZSByZWFsIGRldmljZSBzdGF0ZS4NCj4+Pj4+Pj4+IFRvIHNvbHZlIHRo
YXQgcHJvYmxlbSwgdGhpcyBwYXRjaCBhZGQgbmV3IGh5cGVyY2FsbCB0byBjbGVhcg0KPj4+Pj4+
Pj4gYWxsIHZwY2kgZGV2aWNlIHN0YXRlLiBBbmQgd2hlbiByZXNldCBkZXZpY2UgaGFwcGVucyBv
biBkb20wDQo+Pj4+Pj4+PiBzaWRlLCBkb20wIGNhbiBjYWxsIHRoaXMgaHlwZXJjYWxsIHRvIG5v
dGlmeSB2cGNpLg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVu
IDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KPj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogSHVhbmcgUnVp
IDxyYXkuaHVhbmdAYW1kLmNvbT4NCj4+Pj4+Pj4+IC0tLQ0KPj4+Pj4+Pj4gwqAgeGVuL2FyY2gv
eDg2L2h2bS9oeXBlcmNhbGwuY8KgIHzCoCAxICsNCj4+Pj4+Pj4+IMKgIHhlbi9kcml2ZXJzL3Bh
c3N0aHJvdWdoL3BjaS5jIHwgMjEgKysrKysrKysrKysrKysrKysrKysrDQo+Pj4+Pj4+PiDCoCB4
ZW4vZHJpdmVycy9wY2kvcGh5c2Rldi5jwqDCoMKgwqAgfCAxNCArKysrKysrKysrKysrKw0KPj4+
Pj4+Pj4gwqAgeGVuL2RyaXZlcnMvdnBjaS92cGNpLmPCoMKgwqDCoMKgwqAgfMKgIDkgKysrKysr
KysrDQo+Pj4+Pj4+PiDCoCB4ZW4vaW5jbHVkZS9wdWJsaWMvcGh5c2Rldi5owqAgfMKgIDIgKysN
Cj4+Pj4+Pj4+IMKgIHhlbi9pbmNsdWRlL3hlbi9wY2kuaMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEg
Kw0KPj4+Pj4+Pj4gwqAgeGVuL2luY2x1ZGUveGVuL3ZwY2kuaMKgwqDCoMKgwqDCoMKgIHzCoCA2
ICsrKysrKw0KPj4+Pj4+Pj4gwqAgNyBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspDQo+
Pj4+Pj4+Pg0KPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxs
LmMNCj4+Pj4+Pj4+IGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYw0KPj4+Pj4+Pj4gaW5k
ZXggZWViNzNlMWFhNS4uNmFkNWI0ZDVmMSAxMDA2NDQNCj4+Pj4+Pj4+IC0tLSBhL3hlbi9hcmNo
L3g4Ni9odm0vaHlwZXJjYWxsLmMNCj4+Pj4+Pj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHlw
ZXJjYWxsLmMNCj4+Pj4+Pj4+IEBAIC04NCw2ICs4NCw3IEBAIGxvbmcgaHZtX3BoeXNkZXZfb3Ao
aW50IGNtZCwNCj4+Pj4+Pj4+IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQ0KPj4+
Pj4+Pj4gwqDCoMKgwqDCoCBjYXNlIFBIWVNERVZPUF9wY2lfbW1jZmdfcmVzZXJ2ZWQ6DQo+Pj4+
Pj4+PiDCoMKgwqDCoMKgIGNhc2UgUEhZU0RFVk9QX3BjaV9kZXZpY2VfYWRkOg0KPj4+Pj4+Pj4g
wqDCoMKgwqDCoCBjYXNlIFBIWVNERVZPUF9wY2lfZGV2aWNlX3JlbW92ZToNCj4+Pj4+Pj4+ICvC
oMKgwqAgY2FzZSBQSFlTREVWT1BfcGNpX2RldmljZV9zdGF0ZV9yZXNldDoNCj4+Pj4+Pj4+IMKg
wqDCoMKgwqAgY2FzZSBQSFlTREVWT1BfZGJncF9vcDoNCj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKg
wqDCoCBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oY3VycmQpICkNCj4+Pj4+Pj4+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PU1lTOw0KPj4+Pj4+Pj4gZGlmZiAtLWdpdCBh
L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jDQo+Pj4+Pj4+PiBiL3hlbi9kcml2ZXJzL3Bh
c3N0aHJvdWdoL3BjaS5jDQo+Pj4+Pj4+PiBpbmRleCAwNGQwMGM3YzM3Li5mODcxNzE1NTg1IDEw
MDY0NA0KPj4+Pj4+Pj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMNCj4+Pj4+
Pj4+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jDQo+Pj4+Pj4+PiBAQCAtODI0
LDYgKzgyNCwyNyBAQCBpbnQgcGNpX3JlbW92ZV9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBk
ZXZmbikNCj4+Pj4+Pj4+IMKgwqDCoMKgwqAgcmV0dXJuIHJldDsNCj4+Pj4+Pj4+IMKgIH0NCj4+
Pj4+Pj4+ICtpbnQgcGNpX3Jlc2V0X2RldmljZV9zdGF0ZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRl
dmZuKQ0KPj4+Pj4+Pg0KPj4+Pj4+PiBZb3UgY291bGQgdXNlIHBjaV9zYmRmX3QgaGVyZSBpbnN0
ZWFkIG9mIDMgcGFyYW1ldGVycy4NCj4+Pj4+PiBXaWxsIGNoYW5nZSBpbiBuZXh0IHZlcnNpb24s
IHRoYW5rIHlvdS4NCj4+Pj4+Pg0KPj4+Pj4+Pg0KPj4+Pj4+PiBJJ20gaG93ZXZlciB1bnN1cmUg
d2hldGhlciB3ZSByZWFsbHkgbmVlZCB0aGlzIGhlbHBlciBqdXN0IHRvIGZldGNoDQo+Pj4+Pj4+
IHRoZSBwZGV2IGFuZCBjYWxsIHZwY2lfcmVzZXRfZGV2aWNlX3N0YXRlKCksIEkgdGhpbmsgeW91
IGNvdWxkIHBsYWNlDQo+Pj4+Pj4+IHRoaXMgbG9naWMgZGlyZWN0bHkgaW4gcGNpX3BoeXNkZXZf
b3AoKS7CoCBVbmxlc3MgdGhlcmUgYXJlIHBsYW5zIHRvDQo+Pj4+Pj4+IHVzZSBzdWNoIGxvZ2lj
IG91dHNpZGUgb2YgcGNpX3BoeXNkZXZfb3AoKS4NCj4+Pj4+PiBJZiBJIHBsYWNlIHRoZSBsb2dp
YyBvZiBwY2lfcmVzZXRfZGV2aWNlX3N0YXRlIGRpcmVjdGx5IGluDQo+Pj4+Pj4gcGNpX3BoeXNk
ZXZfb3AuIEkgdGhpbmsgSSBuZWVkIHRvIGRlY2xhcmUgdnBjaV9yZXNldF9kZXZpY2Vfc3RhdGUg
aW4NCj4+Pj4+PiBwY2kuaD8gSWYgaXQgaXMgc3VpdGFibGUsIEkgd2lsbCBjaGFuZ2UgaW4gbmV4
dCB2ZXJzaW9uLg0KPj4+Pj4+DQo+Pj4+Pj4+DQo+Pj4+Pj4+PiArew0KPj4+Pj4+Pj4gK8KgwqDC
oCBzdHJ1Y3QgcGNpX2RldiAqcGRldjsNCj4+Pj4+Pj4+ICvCoMKgwqAgaW50IHJldCA9IC1FTk9E
RVY7DQo+Pj4+Pj4+DQo+Pj4+Pj4+IFNvbWUgWFNNIGNoZWNrIHNob3VsZCBiZSBpbnRyb2R1Y2Vk
IGZybyB0aGlzIG9wZXJhdGlvbiwgYXMgbm9uZSBvZiB0aGUNCj4+Pj4+Pj4gZXhpc3Rpbmcgb25l
cyBpcyBzdWl0YWJsZS7CoCBTZWUgeHNtX3Jlc291cmNlX3VucGx1Z19wY2koKSBmb3IgZXhhbXBs
ZS4NCj4+Pj4+Pj4NCj4+Pj4+Pj4geHNtX3Jlc291cmNlX3Jlc2V0X3N0YXRlX3BjaSgpIG9yIHNv
bWUgc3VjaCBJIHdvdWxkIGFzc3VtZS4NCj4+Pj4+PiBJIGRvbid0IGtub3cgd2hhdCBJIHNob3Vs
ZCBkbyBpbiBYU00gZnVuY3Rpb24oYXNzdW1lIGl0IGlzDQo+Pj4+Pj4geHNtX3Jlc291cmNlX3Jl
c2V0X3N0YXRlX3BjaSkuDQo+Pj4+Pj4gSGkgRGFuaWVsIFAuIFNtaXRoLCBjb3VsZCB5b3UgcGxl
YXNlIGdpdmUgbWUgc29tZSBzdWdnZXN0aW9ucz8NCj4+Pj4+PiBKdXN0IHRvIGNoZWNrIHRoZSBY
U01fUFJJViBhY3Rpb24/DQo+Pj4+Pj4NCj4+Pj4+DQo+Pj4+PiBSb2dlciwgdGhhbmsgeW91IGZv
ciBzZWVpbmcgdGhpcyBhbmQgYWRkaW5nIG1lIGluIQ0KPj4+Pj4NCj4+Pj4+IEppcWlhbiwgSSBq
dXN0IHdhbnRlZCB0byBsZXQgeW91IGtub3cgSSBoYXZlIHNlZW4geW91ciBwb3N0IGJ1dCBJIGhh
dmUNCj4+Pj4+IGJlZW4gYSBsaXR0bGUgdGllZCB1cCB0aGlzIHdlZWsuIEp1c3Qgd2l0aCB0aGUg
Y3Vyc29yeSBsb29rLCBJIHRoaW5rDQo+Pj4+PiBSb2dlciBpcyBzdWdnZXN0aW5nIGEgbmV3IFhT
TSBjaGVjay9ob29rIGlzIHdhcnJhbnRlZC4NCj4+Pj4+DQo+Pj4+PiBJZiB5b3Ugd291bGQgbGlr
ZSB0byBhdHRlbXB0IGF0IHdyaXRpbmcgdGhlIGR1bW15IHBvbGljeSBzaWRlLCBtaW1pYw0KPj4+
Pj4geHNtX3Jlc291cmNlX3BsdWdfcGNpIGluIHhlbi9pbmNsdWRlL3hzbS9kdW1teS5oIGFuZA0K
Pj4+Pj4geGVuL2luY2x1ZGUveHNtL3hzbS5oLCB0aGVuIEkgY2FuIGxvb2sgYXQgaGFuZGxpbmcg
dGhlIEZMQVNLIHBvcnRpb24NCj4+Pj4+IG5leHQgd2VlayBhbmQgcHJvdmlkZSBpdCB0byB5b3Ug
Zm9yIGluY2x1c2lvbiBpbnRvIHRoZSBzZXJpZXMuIElmIHlvdQ0KPj4+Pj4gYXJlIG5vdCBjb21m
b3J0YWJsZSB3aXRoIGl0LCBJIGNhbiBsb29rIGF0IHRoZSB3aG9sZSB0aGluZyBuZXh0IHdlZWsu
DQo+Pj4+PiBKdXN0IGxldCBtZSBrbm93IHdoYXQgeW91IHdvdWxkIGJlIGNvbWZvcnRhYmxlIHdp
dGguDQo+Pj4+DQo+Pj4+IEFwb2xvZ2llcywgdGhpbmtpbmcgYWJvdXQgZm9yIGEgbW9tZW50IGFu
ZCB3YXMgdGhpbmtpbmcgdGhlIGhvb2sgc2hvdWxkIGJlDQo+Pj4+IGNhbGxlZCB4c21fcmVzb3Vy
Y2VfY29uZmlnX3BjaS4gSSB3b3VsZCByZXNldCBhcyBhIGNvbmZpZyBvcGVyYXRpb24gYW5kDQo+
Pj4+IHRoZXJlIG1pZ2h0IGJlIG5ldyBvbmVzIGluIHRoZSBmdXR1cmUuIEkgZG8gbm90IGJlbGll
dmUgdGhlcmUgaXMgYSBuZWVkIHRvDQo+Pj4+IGhhdmUgZmluZSBncmFpbiBhY2Nlc3MgY29udHJv
bCBkb3duIHRvIGluZGl2aWR1YWwgY29uZmlnIG9wZXJhdGlvbiwgdGh1cw0KPj4+PiB0aGV5IGNv
dWxkIGFsbCBiZSBjYXB0dXJlZCB1bmRlciB0aGlzIG9uZSBob29rLiBSb2dlciwgd2hhdCBhcmUg
eW91cg0KPj4+PiB0aG91Z2h0cyBhYm91dCB0aGlzLCBpbiBwYXJ0aWN1bGFyIGhvdyB5b3Ugc2Vl
IHZwY2kgZXZvbHZpbmc/DQo+Pj4NCj4+PiBTbyB0aGUgY29uZmlndXJhdGlvbiBzcGFjZSByZXNl
dCBzaG91bGQgb25seSBiZSBkb25lIGJ5IHRoZSBkb21haW4NCj4+PiB0aGF0J3MgYWxzbyBjYXBh
YmxlIG9mIHRyaWdnZXJpbmcgdGhlIHBoeXNpY2FsIGRldmljZSByZXNldCwgdXN1YWxseQ0KPj4+
IHRoZSBoYXJkd2FyZSBkb21haW4uICBJIGRvbid0IHRoaW5rIGl0J3MgcG9zc2libGUgQVRNIHRv
IGFsbG93IGENCj4+PiBkb21haW4gZGlmZmVyZW50IHRoYW4gdGhlIGhhcmR3YXJlIGRvbWFpbiB0
byBwZXJmb3JtIGEgUENJIHJlc2V0LCBhcw0KPj4+IGRvaW5nIGl0IHJlcXVpcmVzIHVubWVkaWF0
ZWQgYWNjZXNzIHRvIHRoZSBQQ0kgY29uZmlnIHNwYWNlLg0KPj4+DQo+Pj4gU28gcmVzZXR0aW5n
IHRoZSB2UENJIHN0YXRlIHNob3VsZCBlaXRoZXIgYmUgbGltaXRlZCB0byB0aGUgaGFyZHdhcmUN
Cj4+PiBkb21haW4sIG9yIHRvIGEgcGNpIHJlc2V0IGNhcGFiaWxpdHkgZXhwbGljaXRseQ0KPj4+
ICh4c21fcmVzb3VyY2VfcmVzZXRfcGNpIG9yIHNvbWUgc3VjaD8pLiAgT3IgbWF5YmUNCj4+PiB4
c21fcmVzb3VyY2VfY29uZmlnX3BjaSBpZiB0aGF0IGRlbm90ZXMgdW5tZWRpYXRlZCBhY2Nlc3Mg
dG8gdGhlIFBDSQ0KPj4+IGNvbmZpZyBzcGFjZS4NCj4+Pg0KPj4+IFRoYW5rcywgUm9nZXIuDQo+
Pg0KPj4gSXMgaXQgbGlrZSBiZWxvdyB0aGF0IEkgbmVlZCB0byBhZGQgZm9yIFhTTT8NCj4+IGRp
ZmYgLS1naXQgYS94ZW4veHNtL2R1bW15LmMgYi94ZW4veHNtL2R1bW15LmMNCj4+IGluZGV4IGU2
ZmZhOTQ4ZjcuLjdhMjg5YmE1ZDggMTAwNjQ0DQo+PiAtLS0gYS94ZW4veHNtL2R1bW15LmMNCj4+
ICsrKyBiL3hlbi94c20vZHVtbXkuYw0KPj4gQEAgLTkxLDYgKzkxLDcgQEAgc3RhdGljIGNvbnN0
IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0X2NmX2Nsb2JiZXIgZHVtbXlfb3BzID0gew0KPj4g
ICAgICAucmVzb3VyY2VfcGx1Z19wY2kgICAgICAgICAgICAgPSB4c21fcmVzb3VyY2VfcGx1Z19w
Y2ksDQo+PiAgICAgIC5yZXNvdXJjZV91bnBsdWdfcGNpICAgICAgICAgICA9IHhzbV9yZXNvdXJj
ZV91bnBsdWdfcGNpLA0KPj4gICAgICAucmVzb3VyY2Vfc2V0dXBfcGNpICAgICAgICAgICAgPSB4
c21fcmVzb3VyY2Vfc2V0dXBfcGNpLA0KPj4gKyAgICAucmVzb3VyY2VfY29uZmlnX3BjaSAgICAg
ICAgICAgID0geHNtX3Jlc291cmNlX2NvbmZpZ19wY2ksDQo+IA0KPiBOb3cgdGhhdCBJIGxvb2sg
YXQgaXQsIHVzaW5nIHRoZSBleGlzdGluZyB4c21fcmVzb3VyY2Vfc2V0dXBfcGNpIG1pZ2h0DQo+
IGJlIGVub3VnaCwgbm8gbmVlZCB0byBpbnRyb2R1Y2UgYSB4c21fcmVzb3VyY2VfY29uZmlnX3Bj
aS4NCk9rLCB0aGFuayB5b3UuIEkgd2lsbCBhZGQgeHNtX3Jlc291cmNlX3NldHVwX3BjaSBjaGVj
ayBpbnRvIFBIWVNERVZPUF9wY2lfZGV2aWNlX3N0YXRlX3Jlc2V0IG5leHQgc3RlcC4NCg0KPiAN
Cj4gVGhhbmtzLCBSb2dlci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 06:21:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 06:21:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647405.1010489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAOnx-0003CE-H1; Tue, 05 Dec 2023 06:21:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647405.1010489; Tue, 05 Dec 2023 06:21:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAOnx-0003C7-EO; Tue, 05 Dec 2023 06:21:13 +0000
Received: by outflank-mailman (input) for mailman id 647405;
 Tue, 05 Dec 2023 06:21:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAOnv-0003C1-QG
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 06:21:11 +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 7b3ddef2-9336-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 07:21:10 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 B4BBF1FB6C;
 Tue,  5 Dec 2023 06:21:09 +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 7C678136CF;
 Tue,  5 Dec 2023 06:21:09 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id DTxJHFXBbmV8DAAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 06:21: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: 7b3ddef2-9336-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701757269; 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=aKfyYx7lUsnRISXdC0QikAeubapZ9LeOfhW7e8yKQDM=;
	b=asyxkitvagD01GZmi79KIBx67WAq3ZfM4Z/D/5NkxihA3q5lq6LQKZP06wzVBFOqCVWD+g
	Kcl3J1a4j0G87wqhAJBjnS/bNy4AH3lWS3pgc0OL1mWqgRyPZt79cRsIjzQVxlw3bUlsVB
	5CUXBh1dL6g8Y8/hcGmDaq0GLaNdx3k=
Message-ID: <4f6445b2-f871-415a-aa72-7c08a2c357e0@suse.com>
Date: Tue, 5 Dec 2023 07:21:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
Content-Language: en-US
To: =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Cc: Jan Beulich <jbeulich@suse.com>, George Dunlap
 <george.dunlap@citrix.com>, Dario Faggioli <dfaggioli@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
 <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
 <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com>
 <1fc21e82-f9f3-4929-a138-2b3de98c06dc@suse.com>
 <dec807bc-8450-48b0-be99-70bf17e62bca@suse.com>
 <eoYHHXdHJzBIPmppjwYPoxVy_LbXN8PCF5FawlOBYMIpqAUeOiPNsW9ZVL3u_iCpzCy7xB0muzDKIfCIDdiFkR-bumO3TgxZkksrOZE7_oE=@proton.me>
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: <eoYHHXdHJzBIPmppjwYPoxVy_LbXN8PCF5FawlOBYMIpqAUeOiPNsW9ZVL3u_iCpzCy7xB0muzDKIfCIDdiFkR-bumO3TgxZkksrOZE7_oE=@proton.me>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------J9Ckw51FayVhhexmGxNRpoz8"
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -2.99
X-Spamd-Result: default: False [-2.99 / 50.00];
	 ARC_NA(0.00)[];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-0.00)[24.29%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 RCPT_COUNT_FIVE(0.00)[6];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------J9Ckw51FayVhhexmGxNRpoz8
Content-Type: multipart/mixed; boundary="------------pJv4ypT97oWvc9HHsjZAU391";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Cc: Jan Beulich <jbeulich@suse.com>, George Dunlap
 <george.dunlap@citrix.com>, Dario Faggioli <dfaggioli@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <4f6445b2-f871-415a-aa72-7c08a2c357e0@suse.com>
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
 <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
 <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com>
 <1fc21e82-f9f3-4929-a138-2b3de98c06dc@suse.com>
 <dec807bc-8450-48b0-be99-70bf17e62bca@suse.com>
 <eoYHHXdHJzBIPmppjwYPoxVy_LbXN8PCF5FawlOBYMIpqAUeOiPNsW9ZVL3u_iCpzCy7xB0muzDKIfCIDdiFkR-bumO3TgxZkksrOZE7_oE=@proton.me>
In-Reply-To: <eoYHHXdHJzBIPmppjwYPoxVy_LbXN8PCF5FawlOBYMIpqAUeOiPNsW9ZVL3u_iCpzCy7xB0muzDKIfCIDdiFkR-bumO3TgxZkksrOZE7_oE=@proton.me>

--------------pJv4ypT97oWvc9HHsjZAU391
Content-Type: multipart/mixed; boundary="------------bVP9NjCP0xsq6Fwk8FqFYDom"

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

T24gMDQuMTIuMjMgMTg6NDAsIFJlbsOpIFdpbnRoZXIgSMO4amdhYXJkIHdyb3RlOg0KPiBI
aSBKdWVyZ2VuLA0KPiANCj4gU29ycnkgZm9yIHRoZSBsYXRlIHJlcGx5Lg0KPiANCj4gSGVy
ZSBhcmUgdGhlIGNvbW1hbmRzIEkgZXhlY3V0ZSwgaXQgaXMgJ3hsIGNwdXBvb2wtY3B1LWFk
ZCBwY29yZXMgNC0xNScgdGhhdCBjcmFzaCB0aGUgc3lzdGVtLg0KPiANCj4geGwgY3B1cG9v
bC1jcHUtcmVtb3ZlIFBvb2wtMCA0LTMxDQo+IHhsIGNwdXBvb2wtY3JlYXRlIG5hbWU9XCJl
Y29yZXNcIiBzY2hlZD1cImNyZWRpdFwiDQo+IHhsIGNwdXBvb2wtY3B1LWFkZCBlY29yZXMg
MTYtMzENCj4gDQo+IHhsIGNwdXBvb2wtY3JlYXRlIG5hbWU9XCJwY29yZXNcIiBzY2hlZD1c
ImNyZWRpdFwiDQo+IHhsIGNwdXBvb2wtY3B1LWFkZCBwY29yZXMgNC0xNQ0KPiANCj4gDQo+
IEhlcmUgaXMgdGhlIG90aGVyIGluZm9ybWF0aW9uIHlvdSBhc2tlZCBmb3IuDQo+IA0KPiB4
bCBjcHVwb29sLWxpc3Q6DQo+IE5hbWUgICAgICAgICAgICAgICBDUFVzICAgU2NoZWQgICAg
IEFjdGl2ZSAgIERvbWFpbiBjb3VudA0KPiBQb29sLTAgICAgICAgICAgICAgIDI0ICAgIGNy
ZWRpdCAgICAgICB5ICAgICAgICAgIDUNCj4gDQo+IHhsIGNwdXBvb2wtbGlzdCAtYzoNCj4g
TmFtZSAgICAgICAgICAgICAgIENQVSBsaXN0DQo+IFBvb2wtMCAgICAgICAgICAgICAwLDIs
NCw2LDgsMTAsMTIsMTQsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgs
MjksMzAsMzENCj4gDQo+IHhsIGluZm86DQo+IGhvc3QgICAgICAgICAgICAgICAgICAgOiBk
b20wDQo+IHJlbGVhc2UgICAgICAgICAgICAgICAgOiA2LjEuNjItMS5xdWJlcy5mYzM3Lng4
Nl82NA0KPiB2ZXJzaW9uICAgICAgICAgICAgICAgIDogIzEgU01QIFBSRUVNUFRfRFlOQU1J
QyBUdWUgTm92IDE0IDA2OjE2OjM4IEdNVCAyMDIzDQo+IG1hY2hpbmUgICAgICAgICAgICAg
ICAgOiB4ODZfNjQNCj4gbnJfY3B1cyAgICAgICAgICAgICAgICA6IDI0DQo+IG1heF9jcHVf
aWQgICAgICAgICAgICAgOiAzMQ0KPiBucl9ub2RlcyAgICAgICAgICAgICAgIDogMQ0KPiBj
b3Jlc19wZXJfc29ja2V0ICAgICAgIDogMjQNCj4gdGhyZWFkc19wZXJfY29yZSAgICAgICA6
IDENCj4gY3B1X21oeiAgICAgICAgICAgICAgICA6IDI5OTUuMTk2DQo+IGh3X2NhcHMgICAg
ICAgICAgICAgICAgOiBiZmViZmJmZjo3N2ZhZjNmZjoyYzEwMDgwMDowMDAwMDEyMTowMDAw
MDAwZjoyMzljMjdlYjoxODQwMDc4YzowMDAwMDEwMA0KPiB2aXJ0X2NhcHMgICAgICAgICAg
ICAgIDogcHYgaHZtIGh2bV9kaXJlY3RpbyBwdl9kaXJlY3RpbyBoYXAgaW9tbXVfaGFwX3B0
X3NoYXJlIHZtdHJhY2UgZ250dGFiLXYxDQo+IHRvdGFsX21lbW9yeSAgICAgICAgICAgOiA2
NTM3Mw0KPiBmcmVlX21lbW9yeSAgICAgICAgICAgIDogNTY1MDUNCj4gc2hhcmluZ19mcmVl
ZF9tZW1vcnkgICA6IDANCj4gc2hhcmluZ191c2VkX21lbW9yeSAgICA6IDANCj4gb3V0c3Rh
bmRpbmdfY2xhaW1zICAgICA6IDANCj4gZnJlZV9jcHVzICAgICAgICAgICAgICA6IDANCj4g
eGVuX21ham9yICAgICAgICAgICAgICA6IDQNCj4geGVuX21pbm9yICAgICAgICAgICAgICA6
IDE3DQo+IHhlbl9leHRyYSAgICAgICAgICAgICAgOiAuMg0KPiB4ZW5fdmVyc2lvbiAgICAg
ICAgICAgIDogNC4xNy4yDQo+IHhlbl9jYXBzICAgICAgICAgICAgICAgOiB4ZW4tMy4wLXg4
Nl82NCBodm0tMy4wLXg4Nl8zMiBodm0tMy4wLXg4Nl8zMnAgaHZtLTMuMC14ODZfNjQNCj4g
DQo+IHhlbl9zY2hlZHVsZXIgICAgICAgICAgOiBjcmVkaXQNCj4geGVuX3BhZ2VzaXplICAg
ICAgICAgICA6IDQwOTYNCj4gcGxhdGZvcm1fcGFyYW1zICAgICAgICA6IHZpcnRfc3RhcnQ9
MHhmZmZmODAwMDAwMDAwMDAwDQo+IHhlbl9jaGFuZ2VzZXQgICAgICAgICAgOg0KPiANCj4g
eGVuX2NvbW1hbmRsaW5lICAgICAgICA6IHBsYWNlaG9sZGVyIGRvbTBfbWVtPW1pbjoyMDQ4
TSBkb20wX21lbT1tYXg6NDA5Nk0gdWNvZGU9c2NhbiBnbnR0YWJfbWF4X2ZyYW1lcz0yMDQ4
IGdudHRhYl9tYXhfbWFwdHJhY2tfZnJhbWVzPTQwOTYgc210PW9mZiBkb20wX21heF92Y3B1
cz00IGRvbTBfdmNwdXNfcGluIHNjaGVkLWdyYW49Y29yZSBzY2hlZD1jcmVkaXQgbm8tcmVh
bC1tb2RlIGVkZD1vZmYNCg0KUGxlYXNlIGRyb3AgdGhlICJzY2hlZC1ncmFuPWNvcmUiIGZy
b20gdGhlIFhlbiBib290IHBhcmFtZXRlcnMuIEl0IGRvZXNuJ3QgbWFrZQ0KYW55IHNlbnNl
IHdpdGggc210PW9mZiBhbmQgaXMgYWRkaW5nIGFkZGl0aW9uYWwgY29tcGxleGl0eS4NCg0K
SXQgc2hvdWxkbid0IGNyYXNoLCBidXQgY29yZSBzY2hlZHVsaW5nIGlzIHN0aWxsICJFeHBl
cmltZW50YWwiLiBJJ2xsIGxvb2sgaW50bw0KdGhlIGlzc3VlIGxhdGVyLg0KDQoNCkp1ZXJn
ZW4NCg==
--------------bVP9NjCP0xsq6Fwk8FqFYDom
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-----

--------------bVP9NjCP0xsq6Fwk8FqFYDom--

--------------pJv4ypT97oWvc9HHsjZAU391--

--------------J9Ckw51FayVhhexmGxNRpoz8
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/Ey8FAmVuwVUFAwAAAAAACgkQsN6d1ii/Ey9X
HQf+L1I6C2FsZqgd5IuRFc+nu5K7M0jt3RePzJkGEDgndghlN/vy4dPijyAeTIrcjx50ngzpqDqW
vJ0QSbMwHvhVlySyPH7EZGMpTIBknh2K3so0FZQNZfHRRLB+8pViA9NhsgGHUpp399/siK0XCHzx
iJSc+L7AQqNkyz5DeLcrovppxY3reD+TZftYeT9sFHOeiUyiZzYX0paS5FewZFkB7kBj3CHv9/fs
4SMvggJYABcF1VjOlWFc8/CZUQU2m2crtQ1Z8fKdWMfEB80FY76w2/lXK7Ad9kvqYTtNAU/Deq0w
Sz4GgXGfwGw9jfyJRQ0mfnSUNS00Cu0sFP395nwz/w==
=ZI/M
-----END PGP SIGNATURE-----

--------------J9Ckw51FayVhhexmGxNRpoz8--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 06:33:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 06:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647409.1010499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAOzJ-0005H2-I8; Tue, 05 Dec 2023 06:32:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647409.1010499; Tue, 05 Dec 2023 06:32: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 1rAOzJ-0005Gv-FW; Tue, 05 Dec 2023 06:32:57 +0000
Received: by outflank-mailman (input) for mailman id 647409;
 Tue, 05 Dec 2023 06:32: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=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAOzH-0005Gp-Sd
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 06:32:55 +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 1f2d92aa-9338-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 07:32:54 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 1BF9321FF7;
 Tue,  5 Dec 2023 06:32:54 +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 E7544136CF;
 Tue,  5 Dec 2023 06:32:53 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id zJC+NhXEbmVaEAAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 06:32: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: 1f2d92aa-9338-11ee-98e5-6d05b1d4d9a1
Message-ID: <2142bcca-7f77-4579-bf62-dd6b2442bab6@suse.com>
Date: Tue, 5 Dec 2023 07:32:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/29] tools/xenlogd: add 9pfs response generation
 support
Content-Language: en-US
To: Jason Andryuk <jandryuk@gmail.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20231110160804.29021-1-jgross@suse.com>
 <20231110160804.29021-6-jgross@suse.com>
 <CAKf6xpvHdBsWn9z5Yu9MY18Q2CzT-YKVqEa1fYnptwTxve31cQ@mail.gmail.com>
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: <CAKf6xpvHdBsWn9z5Yu9MY18Q2CzT-YKVqEa1fYnptwTxve31cQ@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------wiwPbVt0xPaEf2uA0l9CB1TC"
X-Spamd-Bar: +++++++++++++++++++++
X-Spam-Score: 21.33
X-Rspamd-Server: rspamd1
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine)
X-Rspamd-Queue-Id: 1BF9321FF7
X-Spam-Flag: NO
X-Spam-Level: *********************
X-Spamd-Result: default: False [21.33 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FREEMAIL_TO(0.00)[gmail.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.00)[34.20%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 NEURAL_SPAM_SHORT(2.97)[0.990];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 NEURAL_SPAM_LONG(3.36)[0.960];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------wiwPbVt0xPaEf2uA0l9CB1TC
Content-Type: multipart/mixed; boundary="------------QOdDnHko9QT0yqqWCyIXDU05";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jason Andryuk <jandryuk@gmail.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <2142bcca-7f77-4579-bf62-dd6b2442bab6@suse.com>
Subject: Re: [PATCH v2 05/29] tools/xenlogd: add 9pfs response generation
 support
References: <20231110160804.29021-1-jgross@suse.com>
 <20231110160804.29021-6-jgross@suse.com>
 <CAKf6xpvHdBsWn9z5Yu9MY18Q2CzT-YKVqEa1fYnptwTxve31cQ@mail.gmail.com>
In-Reply-To: <CAKf6xpvHdBsWn9z5Yu9MY18Q2CzT-YKVqEa1fYnptwTxve31cQ@mail.gmail.com>

--------------QOdDnHko9QT0yqqWCyIXDU05
Content-Type: multipart/mixed; boundary="------------QLQ9uB2PN50nvuMy0nT2uYtk"

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

T24gMDEuMTIuMjMgMjA6MzAsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIEZyaSwgTm92
IDEwLCAyMDIzIGF0IDE6NDHigK9QTSBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
IHdyb3RlOg0KPj4gK3N0YXRpYyB2b2lkIGZpbGxfYnVmZmVyKHN0cnVjdCByaW5nICpyaW5n
LCB1aW50OF90IGNtZCwgdWludDE2X3QgdGFnLA0KPj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQ0KPj4gK3sNCj4+ICsgICAgc3RydWN0IHA5X2hl
YWRlciAqaGRyID0gcmluZy0+YnVmZmVyOw0KPj4gKyAgICB2b2lkICpkYXRhID0gaGRyICsg
MTsNCj4+ICsgICAgY29uc3QgY2hhciAqZjsNCj4+ICsgICAgY29uc3Qgdm9pZCAqcGFyOw0K
Pj4gKyAgICBjb25zdCBjaGFyICpzdHJfdmFsOw0KPj4gKyAgICBjb25zdCBzdHJ1Y3QgcDlf
cWlkICpxaWQ7DQo+PiArICAgIHVuc2lnbmVkIGludCBsZW47DQo+PiArICAgIHZhX2xpc3Qg
YXA7DQo+PiArICAgIHVuc2lnbmVkIGludCBhcnJheV9zeiA9IDA7DQo+PiArICAgIHVuc2ln
bmVkIGludCBlbGVtX3N6ID0gMDsNCj4+ICsNCj4+ICsgICAgaGRyLT5jbWQgPSBjbWQ7DQo+
PiArICAgIGhkci0+dGFnID0gdGFnOw0KPj4gKw0KPj4gKyAgICB2YV9zdGFydChhcCwgZm10
KTsNCj4+ICsNCj4+ICsgICAgZm9yICggZiA9IGZtdDsgKmY7IGYrKyApDQo+PiArICAgIHsN
Cj4+ICsgICAgICAgIGlmICggIWFycmF5X3N6ICkNCj4+ICsgICAgICAgICAgICBwYXIgPSB2
YV9hcmcoYXAsIGNvbnN0IHZvaWQgKik7DQo+PiArICAgICAgICBlbHNlDQo+PiArICAgICAg
ICB7DQo+PiArICAgICAgICAgICAgcGFyICs9IGVsZW1fc3o7DQo+PiArICAgICAgICAgICAg
YXJyYXlfc3otLTsNCj4+ICsgICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgIHN3aXRjaCAo
ICpmICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgIGNhc2UgJ2EnOg0KPj4gKyAgICAg
ICAgICAgIGYrKzsNCj4+ICsgICAgICAgICAgICBpZiAoICEqZiB8fCBhcnJheV9zeiApDQo+
PiArICAgICAgICAgICAgICAgIGZtdF9lcnIoZm10KTsNCj4+ICsgICAgICAgICAgICBhcnJh
eV9zeiA9ICooY29uc3QgdW5zaWduZWQgaW50ICopcGFyOw0KPj4gKyAgICAgICAgICAgIGlm
ICggYXJyYXlfc3ogPiAweGZmZmYgKQ0KPj4gKyAgICAgICAgICAgIHsNCj4+ICsgICAgICAg
ICAgICAgICAgc3lzbG9nKExPR19DUklULCAiYXJyYXkgc2l6ZSAldSBpbiBmaWxsX2J1ZmZl
cigpIiwgYXJyYXlfc3opOw0KPj4gKyAgICAgICAgICAgICAgICBleGl0KDEpOw0KPj4gKyAg
ICAgICAgICAgIH0NCj4+ICsgICAgICAgICAgICAqKF9fcGFja2VkIHVpbnQxNl90ICopZGF0
YSA9IGFycmF5X3N6Ow0KPiANCj4gQ29tcGlsaW5nIG9uIEZlZG9yYSAzOSwgZ2NjIDEzLjIu
MToNCj4gDQo+IGlvLmM6IEluIGZ1bmN0aW9uIOKAmGZpbGxfYnVmZmVy4oCZOg0KPiBpby5j
OjIzMzoxMzogZXJyb3I6IOKAmHBhY2tlZOKAmSBhdHRyaWJ1dGUgaWdub3JlZCBmb3IgdHlw
ZSDigJh1aW50MTZfdCAq4oCZDQo+IHtha2Eg4oCYc2hvcnQgdW5zaWduZWQgaW50ICrigJl9
IFstV2Vycm9yPWF0dHJpYnV0ZXNdDQo+ICAgIDIzMyB8ICAgICAgICAgICAgICooX19wYWNr
ZWQgdWludDE2X3QgKilkYXRhID0gYXJyYXlfc3o7DQo+ICAgICAgICB8ICAgICAgICAgICAg
IF4NCj4gDQo+IEZvciBhbGwgdGhlc2UgdXNlcyBvZiBfX3BhY2tlZC4NCg0KTWVoLg0KDQpP
a2F5LCB3aWxsIGFkZCBnZXRfdW5hbGlnbmVkKCkgYW5kIHB1dF91bmFsaWduZWQoKSBmb3Ig
dGhhdCBwdXJwb3NlIGRlYWxpbmcNCndpdGggdGhlIGlzc3VlIGluIGEgY2xlYW4gd2F5Lg0K
DQoNCkp1ZXJnZW4NCg==
--------------QLQ9uB2PN50nvuMy0nT2uYtk
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-----

--------------QLQ9uB2PN50nvuMy0nT2uYtk--

--------------QOdDnHko9QT0yqqWCyIXDU05--

--------------wiwPbVt0xPaEf2uA0l9CB1TC
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/Ey8FAmVuxBUFAwAAAAAACgkQsN6d1ii/Ey+Z
hwf7BUtNdEp7NGZiJnpFaO609OVJJiPflSiBbCl4Qa0DkzX8G4Ihwh4KAchGC1rZ//xtezB0+j69
ziCeM4G6dV5qlCRwoAQyWhGNQQTriP3X1BYIglGIKgINcC253EButRO5cZwaGxOGJrWfgBIJHvLh
qVHp6iRJTE8C0KHTHT9thctjlm8J+Xv2gmFTYvgANhQO6XDJ/+bOSxC1rr5iQac715Ja445/2BsJ
KvDKo4knXl4ylEQW15x5V2gSee5cP8nRTnlGTS847L9+Y6SU127bk9N+Z2bcKn7YfoZQMGwt6wk7
wDi21rvuBA1wYEktGlEGKbTqyElw7NXHqG8kDUO0rg==
=RjaV
-----END PGP SIGNATURE-----

--------------wiwPbVt0xPaEf2uA0l9CB1TC--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 06:47:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 06:47:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647412.1010510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAPCy-0007gv-O1; Tue, 05 Dec 2023 06:47:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647412.1010510; Tue, 05 Dec 2023 06:47: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 1rAPCy-0007go-LA; Tue, 05 Dec 2023 06:47:04 +0000
Received: by outflank-mailman (input) for mailman id 647412;
 Tue, 05 Dec 2023 06:47: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=Nqzk=HQ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rAPCw-0007gg-OF
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 06:47:02 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20611.outbound.protection.outlook.com
 [2a01:111:f400:fe59::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16699ea4-933a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 07:46:59 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS7PR12MB6239.namprd12.prod.outlook.com (2603:10b6:8:95::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 06:46:56 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 06:46: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: 16699ea4-933a-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=B7xmP18Ey6DfoIA6OfAXvMW1XpXHs67T1yajMz89LOC70jlGwPKIsql5w4akn5dOqMPWtMWRq73BtRHqoE27qnxmqiKeLp97Gm+EdwAj60HfAd+cCCKpgARoWGCeSXEA2z9ruJzz6ocU6FBQuA4KuU4Saly4tn4qgjOQI1T6AUZeV8W/yRmim4H+ZPp5vip0gfNFT+nsLOK4t8tfQKm0X/oVywCdSGpCXb3se6K4J+pFo6NpnL337m2jOyRn6+kIBRedW6BGWZMrRXJB6J0c616Kk7NaGWPd0HgPIUdt24j/Tlq+lOhKd1ok3M/Qd2pSSz1Hn3K1yqQ3Ep6zGG1mLw==
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=sqx+cxsH1B7Jfs5EkBX9S2OoALgUZEXE8Euzheto1uA=;
 b=kXmfLl2pA0nDLhoTv4nd/QmOR4xSCHeMRcNSHI389XqUnNrkx2xznEJO3yiwAe9D/1hU/FQyUKIBXwwcpln7JQfSYDmoBBAaMIyT/O98NtLn+LfBeFD7m8Z2rQOiCs1a6pjwmBvO6l+nGq+w94kh4XIYqH1C5OKzZYPj6vVhpbv0/7SnoVgxixnblMJv2ZfYOU4yqgsvGre2lb+Bb8qrzp4BBfhNm54Ka46MCZRR4VOm4Ge7LsjLunSk/+DFLiceP/ee+XGDtDePB64dRBGm8U0CWEb01hyuN9I61uAwHWeXDqu9wozDGRYvwsy9vMrubiw69Zxq/uaTydH5wqZCuA==
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=sqx+cxsH1B7Jfs5EkBX9S2OoALgUZEXE8Euzheto1uA=;
 b=RtjhcwZG8wR6knyyNC2bolj60geb+433wU35ohE//LX+IRlKp0+msPW8cCWDCSYmy4qC09l3pHQbxo+QZSwz7VsIMpFXMpVsBKDLIznDiVoMKlfwtWO8IxE+2Q9XfZ4b5MjXQMmqjhSu2NaN4KGFgaxpouWM4Yx1E3e5AuH1abY=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>
CC: Juergen Gross <jgross@suse.com>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Thomas Gleixner <tglx@linutronix.de>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, "Rafael J . Wysocki"
	<rafael@kernel.org>, Len Brown <lenb@kernel.org>, Bjorn Helgaas
	<bhelgaas@google.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "linux-acpi@vger.kernel.org"
	<linux-acpi@vger.kernel.org>, "Stabellini, Stefano"
	<stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Topic: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Index:
 AQHaHsGdlNZnjmvNCkucW725DqxYz7CSRC+AgADLdgCAALwOgIAAX9AAgAE42ICAA5dDgIAB2GiA
Date: Tue, 5 Dec 2023 06:46:56 +0000
Message-ID:
 <BL1PR12MB584944749CEE372A1F475C62E785A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
In-Reply-To: <ZW2ptexPQXrWBiOS@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: MN0PR12MB6151.namprd12.prod.outlook.com
 (15.20.7091.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_|DS7PR12MB6239:EE_
x-ms-office365-filtering-correlation-id: 3449475d-4b3f-42d5-cdee-08dbf55df903
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 ahry19Wj5T1NZ6e2CzVIR0tS+UNI9UdTPJ/rAb1q7wr/k3shsF4kEO8VPA0BPYzLlTrqd85pW68hWxd09wMhPJ3TbbXK7r0fuO3CJfTXh0wn1YdtPOqk4HMc+6MbU/c4AdC9Bp+SG8joq6tY2SQzx2kLDJOiasz521DqMWtqsKn1nlM8yc3Km5MhuWwFMg7M3px0hSm29CsKjlDe9qrMR7TepCSRYkrQDkLpqzJmqfkYjy5ayW8niMmjtX4kMb1OXO+ojZdedzbP4b8Gc0QMTiWzvYm7xlkAcadqd6efP8triG8OCJsrDmnwTUy/XerOHXvaQUPusuc6fVACyrFxuq+MqfVQZgBmbTkAkqT6NE3A3U855vFRgtb+NnyqfEbLvnwMSmSHa65cKf2KjBfCquuPAAUYCf2XSa3GogmzVXWiHF1rvM5tDmykEOnzI2K5OdR8vUhvFU5TKk/7zb3fF+SH/DjlJ2Qs4V5N2HFY/0CfvSPOhjK4flI9gBSxmvhKiZalRNOrv9YO7Kcn7KkBN4XGbsYkzpWpwPu6OsfwspC6rjySs+NMTqQDMSGTDPlA87NCGRf2A1cYGqaNUdawsCyl7FqWWfbbE5+W75G+50xZjaRky3gAWuxNTeO2C0HhnOCPAnaj/v399FQ+lxxdBURhnoKRxVd/2jwV/YTPZlw=
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:(13230031)(346002)(376002)(366004)(136003)(39860400002)(396003)(230922051799003)(230273577357003)(230173577357003)(64100799003)(1800799012)(451199024)(186009)(55016003)(122000001)(8676002)(8936002)(83380400001)(38100700002)(53546011)(7696005)(6506007)(9686003)(26005)(71200400001)(478600001)(316002)(64756008)(66556008)(54906003)(66476007)(76116006)(66446008)(110136005)(66946007)(33656002)(2906002)(38070700009)(41300700001)(52536014)(4326008)(5660300002)(7416002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Vk9NNEY2NVhqa2kyWVVtWG9YRlpoSW1qbWw1OExnaFpaZzdDVzZPY3dUdkFh?=
 =?utf-8?B?YnBOd0doUHVOeU1PZUFSOWwyYzdpSzNvSmRWRHFFa0N6UEUwNzl2Zk9WY1lo?=
 =?utf-8?B?VEhOSit6V3k1YTNsMHZRNG1vdjJhSys3YS9kTHhmVFlrYkN4V2lKVXNHNnVZ?=
 =?utf-8?B?aWw3YXRFaDVVanFOWVlLUlBUSVBnV1ZkUjlVaUVvbDcybVpiM1p1T2Rsd3J4?=
 =?utf-8?B?MDJFYVVqOTExV3NHWFVUQUJ3b2h0cFdDaFBOQ0M4enArOEhCNzFWL0taRDlD?=
 =?utf-8?B?Q3dBRnBBSHFJdVVjbjBoK1M4RUF0dEtURFdtbmRoNkFCdCs5c0xXUmMxelEv?=
 =?utf-8?B?QklJZVc1SDhDbXVsZ2Q3M1l3cWQ0SWd0dDcyN1dtNUJiOWV5YVJnT05mUG1z?=
 =?utf-8?B?TGJxRFR4VXIyRDFOS1JPdVR6WGdkd1F1K3R3dXZNYXdJY0ljWkNpWkszYmlq?=
 =?utf-8?B?RzVGYUt3Mm1LZlNvVnBiYi9vU2lvM21yMEcycURvL3lzbWJFRjRQcEhaNVBG?=
 =?utf-8?B?cXZiUUl3MWF2dnFnRDNEZ1JYbEhCbnR1TG03TjhJNzZyYXFBRTRoMzl0SjZq?=
 =?utf-8?B?SEl1TWNvVDBzeTNDYXJHSi9kd1pjTDlrcHprN3B2SFVHRTE0UzQzSlBXcHk1?=
 =?utf-8?B?eDNrcDFJTWxCczhlZ0haeTRPYXVSNzhwV25EaGUzaTNBb2FrcXUyR0FUTExI?=
 =?utf-8?B?NnBJSjQzQ0JnVUlTUjR4b0tScW5rNGtMSDNsQ2J4MVVNQm9NMGlZYnpiakN6?=
 =?utf-8?B?UzVlaklYZjBlMTQ3RkNEd3UxNTBIb2lHbS83a3JTSk9xRjdzbW84ZEVSMis1?=
 =?utf-8?B?RU9nWXRlSmk2Q0lQOUxpbTJhak9yRzE1UFBPaC9yTXJFVEM2UmhJVzFtdk82?=
 =?utf-8?B?WnZLVlFWbHVEcDlzYTZhaHo3N1VSYnRHdG9PNlR0M05FdldIYXAwcTRaQXhD?=
 =?utf-8?B?c2p1dEdONVhGakZkVUhzUU5oSjY3cVhPeDJmeE81dFlraTF0NDZLdmFzT1VH?=
 =?utf-8?B?MDhIY1ZiYVM5Y2g1NnRXTGVqQVA1K09sL0IwNE1LcTJmYmtVNGxSK2RTRlJx?=
 =?utf-8?B?TmcwbVVCZmVocysyRk5xYmkvcVJrOWpDR25PSjl3aDZhNUNGeHFudTNVcnFk?=
 =?utf-8?B?RmNrdllsYVM0TUxDeWtKaEpxTkFLVEJVRTVKclNTam5hVzg1RTJFc2YzWSsr?=
 =?utf-8?B?SWNRcUN0S04zTWxZODM2RXl1Yk84ZVlFY01XRUpPVUMxNHk3TVd0YjBMN1dm?=
 =?utf-8?B?TFd4NzJmQnA0UjB0L05iaTNvVERaOGxxVU8xRlI5cWJEeTYvd25aUWRVa1R1?=
 =?utf-8?B?RkVIVDFpRnFCcDVNV0p3dnd6TnhFTUhMTnRMc2lvZEFkTXA4M0pEMExNZml3?=
 =?utf-8?B?VjJlcm9wNlJqakxNVlF1bXo0ZW1xSmR0azlBejBKMDhrWHFrVEFuTUYreVB5?=
 =?utf-8?B?QnFKMVNCSWhrZGM0bE1adEUvbVJEaCtsVE5LTXFXdFdqZkg2M09rcTNic05a?=
 =?utf-8?B?Y0VNdXhULzBDSGN6SW1OTDRDTUFTZnNnSC9UeUxLQXJvWGNZTG4wY2xjTHNi?=
 =?utf-8?B?Q1FxY2k1VjdkUzJ5alN2S0dkN25rTjFFZFZVdS84OGVuMzFWS0JjM2I4UWxH?=
 =?utf-8?B?K1dlT2UxcHBuN2s3dGVrRUl6ZERXSUYwOEJScDdnSHdEWjJBcE94YXhmNHZ3?=
 =?utf-8?B?VWlaQ2tMZjZKelhTNmhKRXJaK1ZFODErT2dWTlE0M012VlNpOWVyT1dVTk9G?=
 =?utf-8?B?bjljb3FZaHh2c3huMVJpbTRmd1ZKdmQ2TVRaaWZuWWdSaXRrM0M3UkVjTklR?=
 =?utf-8?B?ZzBrc1FmbGJzQWRBa0x6VEp4cXA5WlJJU1I1dTdzeldtaVBrRnd5bXRNSDFz?=
 =?utf-8?B?eEkzb0huc0d2SGRqWWV6YXAzZDFVWXRVcmhmZXBUVFdPK044NGFTKzVOQjJx?=
 =?utf-8?B?dVJxa3Z1U0kxeTEvVlVHNmlVV2tFd05HVU9DY3ZZMWZyUThPTzFnOU5xTzVw?=
 =?utf-8?B?Nmp5SExwMGJhNTdwZWdxMWpsVjZ6RkxYQjZBVkcraHlwRlJDLzdRTFE5VDc1?=
 =?utf-8?B?N2lzc1FrRGVseldFQnd3VWo0UUd0R1Yvdk9XU01aUjlWOFRLRW5tS2JuNkp0?=
 =?utf-8?Q?TG4U=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3A4E4569F409F84B9B4778209EADF3BB@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: 3449475d-4b3f-42d5-cdee-08dbf55df903
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2023 06:46:56.1161
 (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: CucxFi4cN53Wsm7Yz37yBY8bNeWEnxhWEkpmx31AabUPdKzzOnjRTYw/T/J6M5zkia2NpHc71TeSq8LcQQxYnA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6239

T24gMjAyMy8xMi80IDE4OjI4LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBGcmksIERl
YyAwMSwgMjAyMyBhdCAwNzozNzo1NVBNIC0wODAwLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6
DQo+PiBPbiBGcmksIDEgRGVjIDIwMjMsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4gT24g
VGh1LCBOb3YgMzAsIDIwMjMgYXQgMDc6MTU6MTdQTSAtMDgwMCwgU3RlZmFubyBTdGFiZWxsaW5p
IHdyb3RlOg0KPj4+PiBPbiBUaHUsIDMwIE5vdiAyMDIzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3Rl
Og0KPj4+Pj4gT24gV2VkLCBOb3YgMjksIDIwMjMgYXQgMDc6NTM6NTlQTSAtMDgwMCwgU3RlZmFu
byBTdGFiZWxsaW5pIHdyb3RlOg0KPj4+Pj4+IE9uIEZyaSwgMjQgTm92IDIwMjMsIEppcWlhbiBD
aGVuIHdyb3RlOg0KPj4+Pj4+PiBUaGlzIHBhdGNoIGlzIHRvIHNvbHZlIHR3byBwcm9ibGVtcyB3
ZSBlbmNvdW50ZXJlZCB3aGVuIHdlIHRyeSB0bw0KPj4+Pj4+PiBwYXNzdGhyb3VnaCBhIGRldmlj
ZSB0byBodm0gZG9tVSBiYXNlIG9uIFhlbiBQVkggZG9tMC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gRmly
c3QsIGh2bSBndWVzdCB3aWxsIGFsbG9jIGEgcGlycSBhbmQgaXJxIGZvciBhIHBhc3N0aHJvdWdo
IGRldmljZQ0KPj4+Pj4+PiBieSB1c2luZyBnc2ksIGJlZm9yZSB0aGF0LCB0aGUgZ3NpIG11c3Qg
Zmlyc3QgaGFzIGEgbWFwcGluZyBpbiBkb20wLA0KPj4+Pj4+PiBzZWUgWGVuIGNvZGUgcGNpX2Fk
ZF9kbV9kb25lLT54Y19kb21haW5faXJxX3Blcm1pc3Npb24sIGl0IHdpbGwgY2FsbA0KPj4+Pj4+
PiBpbnRvIFhlbiBhbmQgY2hlY2sgd2hldGhlciBkb20wIGhhcyB0aGUgbWFwcGluZy4gU2VlDQo+
Pj4+Pj4+IFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb24tPnBpcnFfYWNjZXNzX3Blcm1pdHRlZCwg
ImN1cnJlbnQiIGlzIFBWSA0KPj4+Pj4+PiBkb20wIGFuZCBpdCByZXR1cm4gaXJxIGlzIDAsIGFu
ZCB0aGVuIHJldHVybiAtRVBFUk0uDQo+Pj4+Pj4+IFRoaXMgaXMgYmVjYXVzZSB0aGUgcGFzc3Ro
cm91Z2ggZGV2aWNlIGRvZXNuJ3QgZG8gUEhZU0RFVk9QX21hcF9waXJxDQo+Pj4+Pj4+IHdoZW4g
dGhheSBhcmUgZW5hYmxlZC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gU2Vjb25kLCBpbiBQVkggZG9tMCwg
dGhlIGdzaSBvZiBhIHBhc3N0aHJvdWdoIGRldmljZSBkb2Vzbid0IGdldA0KPj4+Pj4+PiByZWdp
c3RlcmVkLCBidXQgZ3NpIG11c3QgYmUgY29uZmlndXJlZCBmb3IgaXQgdG8gYmUgYWJsZSB0byBi
ZQ0KPj4+Pj4+PiBtYXBwZWQgaW50byBhIGRvbVUuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IEFmdGVyIHNl
YXJjaGluZyBjb2Rlcywgd2UgY2FuIGZpbmQgbWFwX3BpcnEgYW5kIHJlZ2lzdGVyX2dzaSB3aWxs
IGJlDQo+Pj4+Pj4+IGRvbmUgaW4gZnVuY3Rpb24gdmlvYXBpY193cml0ZV9yZWRpcmVudC0+dmlv
YXBpY19od2RvbV9tYXBfZ3NpIHdoZW4NCj4+Pj4+Pj4gdGhlIGdzaShha2EgaW9hcGljJ3MgcGlu
KSBpcyB1bm1hc2tlZCBpbiBQVkggZG9tMC4gU28gdGhlIHByb2JsZW1zDQo+Pj4+Pj4+IGNhbiBi
ZSBjb25jbHVkZSB0byB0aGF0IHRoZSBnc2kgb2YgYSBwYXNzdGhyb3VnaCBkZXZpY2UgZG9lc24n
dCBiZQ0KPj4+Pj4+PiB1bm1hc2tlZC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gVG8gc29sdmUgdGhlIHVu
bWFza2UgcHJvYmxlbSwgdGhpcyBwYXRjaCBjYWxsIHRoZSB1bm1hc2tfaXJxIHdoZW4gd2UNCj4+
Pj4+Pj4gYXNzaWduIGEgZGV2aWNlIHRvIGJlIHBhc3N0aHJvdWdoLiBTbyB0aGF0IHRoZSBnc2kg
Y2FuIGdldCByZWdpc3RlcmVkDQo+Pj4+Pj4+IGFuZCBtYXBwZWQgaW4gUFZIIGRvbTAuDQo+Pj4+
Pj4NCj4+Pj4+Pg0KPj4+Pj4+IFJvZ2VyLCB0aGlzIHNlZW1zIHRvIGJlIG1vcmUgb2YgYSBYZW4g
aXNzdWUgdGhhbiBhIExpbnV4IGlzc3VlLiBXaHkgZG8NCj4+Pj4+PiB3ZSBuZWVkIHRoZSB1bm1h
c2sgY2hlY2sgaW4gWGVuPyBDb3VsZG4ndCB3ZSBqdXN0IGRvOg0KPj4+Pj4+DQo+Pj4+Pj4NCj4+
Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMgYi94ZW4vYXJjaC94
ODYvaHZtL3Zpb2FwaWMuYw0KPj4+Pj4+IGluZGV4IDRlNDBkMzYwOWEuLmRmMjYyYTRhMTggMTAw
NjQ0DQo+Pj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMNCj4+Pj4+PiArKysg
Yi94ZW4vYXJjaC94ODYvaHZtL3Zpb2FwaWMuYw0KPj4+Pj4+IEBAIC0yODcsNyArMjg3LDcgQEAg
c3RhdGljIHZvaWQgdmlvYXBpY193cml0ZV9yZWRpcmVudCgNCj4+Pj4+PiAgICAgICAgICAgICAg
aHZtX2RwY2lfZW9pKGQsIGdzaSk7DQo+Pj4+Pj4gICAgICB9DQo+Pj4+Pj4gIA0KPj4+Pj4+IC0g
ICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgJiYgdW5tYXNrZWQgKQ0KPj4+Pj4+ICsgICAg
aWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KPj4+Pj4+ICAgICAgew0KPj4+Pj4+ICAgICAg
ICAgIC8qDQo+Pj4+Pj4gICAgICAgICAgICogTkI6IGRvbid0IGNhbGwgdmlvYXBpY19od2RvbV9t
YXBfZ3NpIHdoaWxlIGhvbGRpbmcgaHZtLmlycV9sb2NrDQo+Pj4+Pg0KPj4+Pj4gVGhlcmUgYXJl
IHNvbWUgaXNzdWVzIHdpdGggdGhpcyBhcHByb2FjaC4NCj4+Pj4+DQo+Pj4+PiBtcF9yZWdpc3Rl
cl9nc2koKSB3aWxsIG9ubHkgc2V0dXAgdGhlIHRyaWdnZXIgYW5kIHBvbGFyaXR5IG9mIHRoZQ0K
Pj4+Pj4gSU8tQVBJQyBwaW4gb25jZSwgc28gd2UgZG8gc28gb25jZSB0aGUgZ3Vlc3QgdW5tYXNr
IHRoZSBwaW4gaW4gb3JkZXINCj4+Pj4+IHRvIGFzc2VydCB0aGF0IHRoZSBjb25maWd1cmF0aW9u
IGlzIHRoZSBpbnRlbmRlZCBvbmUuICBBIGd1ZXN0IGlzDQo+Pj4+PiBhbGxvd2VkIHRvIHdyaXRl
IGFsbCBraW5kIG9mIG5vbnNlbnNlIHN0dWZmIHRvIHRoZSBJTy1BUElDIFJURSwgYnV0DQo+Pj4+
PiB0aGF0IGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW5sZXNzIHRoZSBwaW4gaXMgdW5tYXNrZWQuDQo+
Pj4+Pg0KPj4+Pj4gT3ZlcmFsbCB0aGUgcXVlc3Rpb24gd291bGQgYmUgd2hldGhlciB3ZSBoYXZl
IGFueSBndWFyYW50ZWVzIHRoYXQNCj4+Pj4+IHRoZSBoYXJkd2FyZSBkb21haW4gaGFzIHByb3Bl
cmx5IGNvbmZpZ3VyZWQgdGhlIHBpbiwgZXZlbiBpZiBpdCdzIG5vdA0KPj4+Pj4gdXNpbmcgaXQg
aXRzZWxmIChhcyBpdCBoYXNuJ3QgYmVlbiB1bm1hc2tlZCkuDQo+Pj4+Pg0KPj4+Pj4gSUlSQyBQ
Q0kgbGVnYWN5IGludGVycnVwdHMgYXJlIGxldmVsIHRyaWdnZXJlZCBhbmQgbG93IHBvbGFyaXR5
LCBzbyB3ZQ0KPj4+Pj4gY291bGQgY29uZmlndXJlIGFueSBwaW5zIHRoYXQgYXJlIG5vdCBzZXR1
cCBhdCBiaW5kIHRpbWU/DQo+Pj4+DQo+Pj4+IFRoYXQgY291bGQgd29yay4NCj4+Pj4NCj4+Pj4g
QW5vdGhlciBpZGVhIGlzIHRvIG1vdmUgb25seSB0aGUgY2FsbCB0byBhbGxvY2F0ZV9hbmRfbWFw
X2dzaV9waXJxIGF0DQo+Pj4+IGJpbmQgdGltZT8gVGhhdCBtaWdodCBiZSBlbm91Z2ggdG8gcGFz
cyBhIHBpcnFfYWNjZXNzX3Blcm1pdHRlZCBjaGVjay4NCj4+Pg0KPj4+IE1heWJlLCBhbGJlaXQg
dGhhdCB3b3VsZCBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIFhFTl9ET01DVExfYmluZF9wdF9pcnEN
Cj4+PiBqdXN0IGZvciBQVF9JUlFfVFlQRV9QQ0kgYW5kIG9ubHkgd2hlbiBjYWxsZWQgZnJvbSBh
IFBWSCBkb20wIChhcyB0aGUNCj4+PiBwYXJhbWV0ZXIgd291bGQgYmUgYSBHU0kgaW5zdGVhZCBv
ZiBhIHByZXZpb3VzbHkgbWFwcGVkIElSUSkuICBTdWNoDQo+Pj4gZGlmZmVyZW5jZSBqdXN0IGZv
ciBQVF9JUlFfVFlQRV9QQ0kgaXMgc2xpZ2h0bHkgd2VpcmQgLSBpZiB3ZSBnbyB0aGF0DQo+Pj4g
cm91dGUgSSB3b3VsZCByZWNvbW1lbmQgdGhhdCB3ZSBpbnN0ZWFkIGludHJvZHVjZSBhIG5ldyBk
bW9wIHRoYXQgaGFzDQo+Pj4gdGhpcyBzeW50YXggcmVnYXJkbGVzcyBvZiB0aGUgZG9tYWluIHR5
cGUgaXQncyBjYWxsZWQgZnJvbS4NCj4+DQo+PiBMb29raW5nIGF0IHRoZSBjb2RlIGl0IGlzIGNl
cnRhaW5seSBhIGJpdCBjb25mdXNpbmcuIE15IHBvaW50IHdhcyB0aGF0DQo+PiB3ZSBkb24ndCBu
ZWVkIHRvIHdhaXQgdW50aWwgcG9sYXJpdHkgYW5kIHRyaWdnZXIgYXJlIHNldCBhcHByb3ByaWF0
ZWx5DQo+PiB0byBhbGxvdyBEb20wIHRvIHBhc3Mgc3VjY2Vzc2Z1bGx5IGEgcGlycV9hY2Nlc3Nf
cGVybWl0dGVkKCkgY2hlY2suIFhlbg0KPj4gc2hvdWxkIGJlIGFibGUgdG8gZmlndXJlIG91dCB0
aGF0IERvbTAgaXMgcGVybWl0dGVkIHBpcnEgYWNjZXNzLg0KPiANCj4gVGhlIGxvZ2ljIGlzIGNl
cnRhaW5seSBub3Qgc3RyYWlnaHRmb3J3YXJkLCBhbmQgaXQgY291bGQgYmVuZWZpdCBmcm9tDQo+
IHNvbWUgY29tbWVudHMuDQo+IA0KPiBUaGUgaXJxIHBlcm1pc3Npb25zIGFyZSBhIGJpdCBzcGVj
aWFsLCBpbiB0aGF0IHRoZXkgZ2V0IHNldHVwIHdoZW4gdGhlDQo+IElSUSBpcyBtYXBwZWQuDQo+
IA0KPiBUaGUgcHJvYmxlbSBob3dldmVyIGlzIG5vdCBzbyBtdWNoIHdpdGggSVJRIHBlcm1pc3Np
b25zLCB0aGF0IHdlIGNhbg0KPiBpbmRlZWQgc29ydCBvdXQgaW50ZXJuYWxseSBpbiBYZW4uICBT
dWNoIGNoZWNrIGluIGRvbTAgaGFzIHRoZSBzaWRlDQo+IGVmZmVjdCBvZiBwcmV2ZW50aW5nIHRo
ZSBJUlEgZnJvbSBiZWluZyBhc3NpZ25lZCB0byBhIGRvbVUgd2l0aG91dCB0aGUNCj4gaGFyZHdh
cmUgc291cmNlIGJlaW5nIHByb3Blcmx5IGNvbmZpZ3VyZWQgQUZBSUNULg0KPiANCj4+DQo+PiBT
byB0aGUgaWRlYSB3YXMgdG8gbW92ZSB0aGUgY2FsbCB0byBhbGxvY2F0ZV9hbmRfbWFwX2dzaV9w
aXJxKCkgZWFybGllcg0KPj4gc29tZXdoZXJlIGJlY2F1c2UgYWxsb2NhdGVfYW5kX21hcF9nc2lf
cGlycSBkb2Vzbid0IHJlcXVpcmUgdHJpZ2dlciBvcg0KPj4gcG9sYXJpdHkgdG8gYmUgY29uZmln
dXJlZCB0byB3b3JrLiBCdXQgdGhlIHN1Z2dlc3Rpb24gb2YgZG9pbmcgaXQgYQ0KPj4gImJpbmQg
dGltZSIgKG1lYW5pbmc6IFhFTl9ET01DVExfYmluZF9wdF9pcnEpIHdhcyBhIGJhZCBpZGVhLg0K
Pj4NCj4+IEJ1dCBtYXliZSB3ZSBjYW4gZmluZCBhbm90aGVyIGxvY2F0aW9uLCBtYXliZSB3aXRo
aW4NCj4+IHhlbi9hcmNoL3g4Ni9odm0vdmlvYXBpYy5jLCB0byBjYWxsIGFsbG9jYXRlX2FuZF9t
YXBfZ3NpX3BpcnEoKSBiZWZvcmUNCj4+IHRyaWdnZXIgYW5kIHBvbGFyaXR5IGFyZSBzZXQgYW5k
IGJlZm9yZSB0aGUgaW50ZXJydXB0IGlzIHVubWFza2VkLg0KPj4NCj4+IFRoZW4gd2UgY2hhbmdl
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB2aW9hcGljX2h3ZG9tX21hcF9nc2kgdG8gc2tpcCB0aGUN
Cj4+IGNhbGwgdG8gYWxsb2NhdGVfYW5kX21hcF9nc2lfcGlycSwgYmVjYXVzZSBieSB0aGUgdGlt
ZQ0KPj4gdmlvYXBpY19od2RvbV9tYXBfZ3NpIHdlIGFzc3VtZSB0aGF0IGFsbG9jYXRlX2FuZF9t
YXBfZ3NpX3BpcnEgaGFkDQo+PiBhbHJlYWR5IGJlZW4gZG9uZS4NCj4gDQo+IEJ1dCB0aGVuIHdl
IHdvdWxkIGVuZCB1cCBpbiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUNCj4gcGlycV9hY2Nlc3NfcGVy
bWl0dGVkKCkgY2hlY2sgd2lsbCBwYXNzLCBidXQgdGhlIElPLUFQSUMgcGluIHdvbid0IGJlDQo+
IGNvbmZpZ3VyZWQsIHdoaWNoIEkgdGhpbmsgaXQncyBub3Qgd2hhdCB3ZSB3YW50Lg0KPiANCj4g
T25lIG9wdGlvbiB3b3VsZCBiZSB0byBhbGxvdyBtcF9yZWdpc3Rlcl9nc2koKSB0byBiZSBjYWxs
ZWQgbXVsdGlwbGUNCj4gdGltZXMsIGFuZCB1cGRhdGUgdGhlIElPLUFQSUMgcGluIGNvbmZpZ3Vy
YXRpb24gYXMgbG9uZyBhcyB0aGUgcGluIGlzDQo+IG5vdCB1bm1hc2tlZC4gIFRoYXQgd291bGQg
cHJvcGFnYXRlIGVhY2ggZG9tMCBSVEUgdXBkYXRlIHRvIHRoZQ0KPiB1bmRlcmx5aW5nIElPLUFQ
SUMuICBIb3dldmVyIHN1Y2ggYXBwcm9hY2ggcmVsaWVzIG9uIGRvbTAgY29uZmlndXJpbmcNCj4g
YWxsIHBvc3NpYmxlIElPLUFQSUMgcGlucywgZXZlbiBpZiBubyBkZXZpY2Ugb24gZG9tMCBpcyB1
c2luZyB0aGVtLCBJDQo+IHRoaW5rIGl0J3Mgbm90IGEgdmVyeSByZWxpYWJsZSBvcHRpb24uDQo+
IA0KPiBBbm90aGVyIG9wdGlvbiB3b3VsZCBiZSB0byBtb2RpZnkgdGhlIHRvb2xzdGFjayB0byBz
ZXR1cCB0aGUgR1NJDQo+IGl0c2VsZiB1c2luZyB0aGUgUEhZU0RFVk9QX3NldHVwX2dzaSBoeXBl
cmNhbGwuICBBcyBzYWlkIGluIGEgcHJldmlvdXMNCj4gZW1haWwsIHNpbmNlIHdlIG9ubHkgY2Fy
ZSBhYm91dCBQQ0kgZGV2aWNlIHBhc3N0aHJvdWdoIHRoZSBsZWdhY3kgSU5UeA0KPiBzaG91bGQg
YWx3YXlzIGJlIGxldmVsIHRyaWdnZXJlZCBhbmQgbG93IHBvbGFyaXR5Lg0KDQpJIGFtIHRoaW5r
aW5nIGlmIHdlIGNhbiBkbyBQSFlTREVWT1BfbWFwX3BpcnEgYW5kIFBIWVNERVZPUF9zZXR1cF9n
c2kgb25seSBmb3IgcGFzc3Rocm91Z2ggZGV2aWNlcyhpbiBmdW5jdGlvbiBwY2lzdHViX2luaXRf
ZGV2aWNlKS4NClRoZW4gaXQgY2FuIHBhc3MgcGVybWlzc2lvbiBjaGVjayBhbmQgc2V0dXAgZ3Np
IHdpdGhvdXQgYWZmZWN0aW5nIG90aGVyIGRldmljZXMgdGhhdCBkbyBub3QgdXNlIElPLUFQSUMg
cGlucy4NCldoYXQgZG8geW91IHRoaW5rPw0KDQo+IA0KPj4gSSBhbSBub3QgZmFtaWxpYXIgd2l0
aCB2aW9hcGljLmMgYnV0IHRvIGdpdmUgeW91IGFuIGlkZWEgb2Ygd2hhdCBJIHdhcw0KPj4gdGhp
bmtpbmc6DQo+Pg0KPj4NCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3Zpb2FwaWMu
YyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlvYXBpYy5jDQo+PiBpbmRleCA0ZTQwZDM2MDlhLi4xNmQ1
NmZlODUxIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMNCj4+ICsr
KyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlvYXBpYy5jDQo+PiBAQCAtMTg5LDE0ICsxODksNiBAQCBz
dGF0aWMgaW50IHZpb2FwaWNfaHdkb21fbWFwX2dzaSh1bnNpZ25lZCBpbnQgZ3NpLCB1bnNpZ25l
ZCBpbnQgdHJpZywNCj4+ICAgICAgICAgIHJldHVybiByZXQ7DQo+PiAgICAgIH0NCj4+ICANCj4+
IC0gICAgcmV0ID0gYWxsb2NhdGVfYW5kX21hcF9nc2lfcGlycShjdXJyZCwgcGlycSwgJnBpcnEp
Ow0KPj4gLSAgICBpZiAoIHJldCApDQo+PiAtICAgIHsNCj4+IC0gICAgICAgIGdwcmludGsoWEVO
TE9HX1dBUk5JTkcsICJ2aW9hcGljOiBlcnJvciBtYXBwaW5nIEdTSSAldTogJWRcbiIsDQo+PiAt
ICAgICAgICAgICAgICAgICBnc2ksIHJldCk7DQo+PiAtICAgICAgICByZXR1cm4gcmV0Ow0KPj4g
LSAgICB9DQo+PiAtDQo+PiAgICAgIHBjaWRldnNfbG9jaygpOw0KPj4gICAgICByZXQgPSBwdF9p
cnFfY3JlYXRlX2JpbmQoY3VycmQsICZwdF9pcnFfYmluZCk7DQo+PiAgICAgIGlmICggcmV0ICkN
Cj4+IEBAIC0yODcsNiArMjc5LDE3IEBAIHN0YXRpYyB2b2lkIHZpb2FwaWNfd3JpdGVfcmVkaXJl
bnQoDQo+PiAgICAgICAgICAgICAgaHZtX2RwY2lfZW9pKGQsIGdzaSk7DQo+PiAgICAgIH0NCj4+
ICANCj4+ICsgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKSANCj4+ICsgICAgew0KPj4g
KyAgICAgICAgaW50IHBpcnEgPSBnc2ksIHJldDsNCj4+ICsgICAgICAgIHJldCA9IGFsbG9jYXRl
X2FuZF9tYXBfZ3NpX3BpcnEoY3VycmQsIHBpcnEsICZwaXJxKTsNCj4+ICsgICAgICAgIGlmICgg
cmV0ICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19XQVJO
SU5HLCAidmlvYXBpYzogZXJyb3IgbWFwcGluZyBHU0kgJXU6ICVkXG4iLA0KPj4gKyAgICAgICAg
ICAgICAgICAgICAgZ3NpLCByZXQpOw0KPj4gKyAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiAr
ICAgICAgICB9DQo+PiArICAgIH0NCj4+ICAgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkg
JiYgdW5tYXNrZWQgKQ0KPj4gICAgICB7DQo+PiAgICAgICAgICAvKg0KPiANCj4gQXMgc2FpZCBh
Ym92ZSwgc3VjaCBhcHByb2FjaCByZWxpZXMgb24gZG9tMCB3cml0aW5nIHRvIHRoZSBJTy1BUElD
IFJURQ0KPiBvZiBsaWtlbHkgZWFjaCBJTy1BUElDIHBpbiwgd2hpY2ggaXMgSU1PIG5vdCBxdWl0
ZSByZWxpYWJsZS4gIEluIHRoZXJlDQo+IGFyZSB0d28gZGlmZmVyZW50IGlzc3VlcyBoZXJlIHRo
YXQgbmVlZCB0byBiZSBmaXhlZCBmb3IgUFZIIGRvbTA6DQo+IA0KPiAgLSBGaXggdGhlIFhFTl9E
T01DVExfaXJxX3Blcm1pc3Npb24gcGlycV9hY2Nlc3NfcGVybWl0dGVkKCkgY2FsbCB0bw0KPiAg
ICBzdWNjZWVkIGZvciBhIFBWSCBkb20wLCBldmVuIGlmIGRvbTAgaXMgbm90IHVzaW5nIHRoZSBH
U0kgaXRzZWxmLg0KPiANCj4gIC0gQ29uZmlndXJlIElPLUFQSUMgcGlucyBmb3IgUENJIGludGVy
cnVwdHMgZXZlbiBpZiBkb20wIGlzIG5vdCB1c2luZw0KPiAgICB0aGUgSU8tQVBJQyBwaW4gaXRz
ZWxmLg0KPiANCj4gRmlyc3Qgb25lIG5lZWRzIHRvIGJlIGZpeGVkIGludGVybmFsbHkgaW4gWGVu
LCBzZWNvbmQgb25lIHdpbGwgcmVxdWlyZQ0KPiB0aGUgdG9vbHN0YWNrIHRvIGlzc3VlIGFuIGV4
dHJhIGh5cGVyY2FsbCBpbiBvcmRlciB0byBlbnN1cmUgdGhlDQo+IElPLUFQSUMgcGluIGlzIHBy
b3Blcmx5IGNvbmZpZ3VyZWQuDQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQotLSANCkJlc3QgcmVn
YXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 06:51:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 06:51:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647416.1010520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAPGg-0000kL-D5; Tue, 05 Dec 2023 06:50:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647416.1010520; Tue, 05 Dec 2023 06:50:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAPGg-0000kE-91; Tue, 05 Dec 2023 06:50:54 +0000
Received: by outflank-mailman (input) for mailman id 647416;
 Tue, 05 Dec 2023 06:50:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nqzk=HQ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rAPGe-0000k6-7S
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 06:50:52 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060a.outbound.protection.outlook.com
 [2a01:111:f400:7e89::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d55f087-933a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 07:50:47 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS0PR12MB7745.namprd12.prod.outlook.com (2603:10b6:8:13c::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 06:50:40 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 06:50: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: 9d55f087-933a-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UXZyjhPZBsrP9/NCInsoEaxUySuWaJw8KkDbsD7a3oVqiws4W/495qKi566K2VV5cucRD0kVaZz1Ksyqm9GrFykApP4UwYQWnIGBFGLKxSteJWk0pKkoSbLlsYwTnrzF8mNAc0yA7WUbS1z47b54KhJ+WYsCxXPLa8hjlHW4PT5lJUFZhJN9mkpNwQTmWoBVzYHd6dxPqIffYBhdBdhzE3pwdymmvdfCGr9q08xK4OSuERMzmZ1Rxux7lBit5drsYpSl60uObb/LlxVkjaQck5zIrAC4nV9mLzxQz9lv/i24xom/sOk5FC9nD3bGF/TRXtdzdF0OJ37jNEdj7C5eZw==
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=7f6RNUL+Ut+CYXBUDWZ4JCiI5JMo8p99RsiMYMVlPc0=;
 b=PeV0iWLujT6KTKGYw5Q/mZCpUvb75Vtq585IkZCs1Kc8ZVXREizce3cGP7PVuloog57/yyerc6vwhTFFJYR3/CeI0zptgsqQACZKr0vEv5qtxwKALN4qLCAMqadc8gBrduSqAMjT+Iwv5IeI8EyrjaraH/czki8RX42mtp6hZwfcluuTfPb4qJI19KKFKiDZoCqXl8/dAAAKUnGlldwKBCR8hs/nQ6x9ofj1m8rN2OdZUnIJodTasfDqy1RQrdndGctSk4WHrbWVz/iZ/NlET/Rxb8DFL1TXxA2hv6NgVi95z90idlFdC740WEcds5aeCXO0j3N9cvhHql84ft0tDQ==
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=7f6RNUL+Ut+CYXBUDWZ4JCiI5JMo8p99RsiMYMVlPc0=;
 b=LggkYs6WOWCMgSzvYhl/CIslfdJhh7AlPBpI2afHatU39X/knZ57tIVpZDnNrMSLDY1DHyxMWx/Cm58gnTSZJ/CzpueyOJEDWK0yhuYY5+iS8e7nOQbOfeCzFsYbouXLOypM5P7zUMC0IdCRmiTiWRA8fzpcbZjatNJBwCu2jzg=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Thomas Gleixner
	<tglx@linutronix.de>
CC: Juergen Gross <jgross@suse.com>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len
 Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, "Stabellini,
 Stefano" <stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Topic: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Index: AQHaHsGaWb8EJvAynUiF4JhdQXSstLCY0coAgACRkoCAAFGagIABIYqA
Date: Tue, 5 Dec 2023 06:50:40 +0000
Message-ID:
 <BL1PR12MB5849F70BA37B8612ACAE0127E785A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-2-Jiqian.Chen@amd.com> <87edg2xuu9.ffs@tglx>
 <BL1PR12MB5849F2E24E00BF7B20A0B4A6E786A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <alpine.DEB.2.22.394.2312041331210.110490@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2312041331210.110490@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: IA1PR12MB7661.namprd12.prod.outlook.com
 (15.20.7091.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_|DS0PR12MB7745:EE_
x-ms-office365-filtering-correlation-id: 5471572c-7c44-4f17-8220-08dbf55e7ec3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 eGvCrMJllxXyNcP2469yhaBtiHjVtbkNtQav/qdsT3yRvCY55qWFSFZsSDIYmGp5/Lj4/QmxsMB+rrl6kdRBmpnVWUtfT77dRdesPojPnOTnVT13eQPzD8CMfSMRgkOkOkhtyWEtszbPTA6rfh0J3v1EJ02rk1PmXzLjA4d6+jWFnD2dt6IIa6tNP6jx6ylsSEyg1zfXg5krZpWm5nVJFfbAgu/C89Su1B67ODby4JZjyEjZPPBR/UPRFfS4rwygzhOAc5ccsVHHKPx6mGelQ2ozcP9b6CAQuA9wrhJdhAUwW3kLLR5mE/bo2MetwP8yVPfCkuJQ3AzDIayfajORki7lOZxe2hbakkpa9g4QtH9n+zbhLqAkco6UwwOM1ZYthWyE0QLrFhsHjBuSuLNypbh7Omv1iKsHiVqOCPfxJGBhuX9Lxg/u5L4o21jLr1FxLkcKw3rxv9/Dhuu+H5mHVYznOTB6dyX68gtu2pDeQxnvvm1+jlo8DmKE+7oIAShofZxOfHSxWjiabZMj45joZBw9LawpkFdddr9LJPfH921nHrhmoqouMDNtYu2WISod5mdRbXNSGw6dQvebbtGmHIyh+0qEvp4aszMRuLMp2MERmqB/0poiOXUECfwrLnCb
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:(13230031)(376002)(346002)(136003)(366004)(39860400002)(396003)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(38100700002)(122000001)(55016003)(53546011)(9686003)(6506007)(7696005)(478600001)(71200400001)(110136005)(54906003)(64756008)(66946007)(66446008)(66556008)(66476007)(76116006)(316002)(26005)(83380400001)(4326008)(8676002)(8936002)(52536014)(5660300002)(7416002)(2906002)(33656002)(38070700009)(41300700001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MldvWUgzNnhZN2VBeEk1STZCOXNvZDZQUGNtNndiS2dBcXVKazFMcFlDWXBj?=
 =?utf-8?B?MG1rUnowVHJTNkdQMFB6RmFDdE1NdC9LeWRPc2duL0UzVXVPODE3NUFuVVNZ?=
 =?utf-8?B?V0Q1SlkwOTN5aEpScXdOckgxSENZZDNrcWdXTUFKQ2RDWU9SQnl0NDNLcmdX?=
 =?utf-8?B?SzRYZE1BWmNIbTc4WXh0TWNLQzZVbUd2SW1JTW0rVzIvYWVoRVl4YXo1RFY3?=
 =?utf-8?B?eWFUUlRUWUYrekxVRWFDSXQzZXNMTmkzdkNEdjhDN2p3akhrTkUyNzNPZHJu?=
 =?utf-8?B?c2dOL2N0bnI3bTBRQUxPWE1SYUMyWVQrRDl2b3hCQnpJaGFEZTh2QmxBS29Q?=
 =?utf-8?B?cml3ZmZyN3dIQnNPR2hvMlZrQTR3L1IxQTNHQ1dXQTNMeE1aZEVyaDA3UG14?=
 =?utf-8?B?dHVZb3FxWWIwUHM2M0huSmlUU0Q3c1VDcTZPQkVqRWMyTmhxL1pVVjlhM1pr?=
 =?utf-8?B?bUdPUExZV0lSOEdiOVdyV2FxV2JHYXZwdFhIdzgxaTRRNjgyeW5OS2xTNVBj?=
 =?utf-8?B?TlBNQ2ZzV21XQkRoYXJPSUUyWnpGK045YkZjYWk0cUhUcjNNZkJoV3A2aWRB?=
 =?utf-8?B?L1VQL1U5bzB6WWptQTVlVW9CQVYzbk5EMndFTm5XTjZmOFhvVzBHUGMrcElk?=
 =?utf-8?B?S0l4dnZ3aWpQTlo2WFAveHJHMHFQelhHeVptMzRTbjhPbG90NVhJRGFjRmZv?=
 =?utf-8?B?WkFDSXRpd2kwcU1IUldURTV2WWxEOHV4TlpmU0tmckJjbnk5a1Jra2F0Tk95?=
 =?utf-8?B?Yk1mTCs4ellPNWljbDI0YjVqSjR5akZKVmwzR21KaExzbzd2MEM1SjRlY1lH?=
 =?utf-8?B?WjBaT0UrQk9Rb3N4YjFIcFd1cHNybnVLcTBqMXpKUVd2NEtKcEVxODRUR1VR?=
 =?utf-8?B?M3hJdmJPTThTOHdzOUp2Ui95ZzRvZno3NEtzbDM3NFBvc3YzdStacnk1bkxK?=
 =?utf-8?B?Nnl1WjdWOW9LU1BQRU1Nd2lFaTdVckFBKzh0NDJCcFE1Wk1IMmx0bC9UTGlx?=
 =?utf-8?B?enYycEladlJHYUdhYVhHQ3FTZWlmUTA0T3JhMEpoOUdXQjYzalhla2hCSE9M?=
 =?utf-8?B?dHpnK08vcHZ1Z2l1QzF1bk9wSUdhcXNQNHB1TWhzZFhFczV3SVNoL1c5b1lx?=
 =?utf-8?B?WGRFZGF5MlNoYVlKb1FER0hCVWVnV0VQdXN4L3kwQ1FURk1YWFh2NEZmRTdq?=
 =?utf-8?B?SlQ5d2hkMlBLaURPZFBhYThEa0w4c0NTOEZEaExlRXR4cWkwQUs2aFV3L29t?=
 =?utf-8?B?WDlnZml2WmZiSDE1YXpkM2xZc0FtbmhISGM2Y1Vka0dQSGRwN1psUXNlMGxq?=
 =?utf-8?B?WmsyZSsrQnN6bWVtakh6dDVTNHoySHhMQ3ExNTlGNWk1dnhPRkFJSnB2UEFZ?=
 =?utf-8?B?OGxwRkZ3M01oeEd3VXBGZUZpYjhJaHJVeFBOanQyZEMrSnZSY0Z2dDBCNkto?=
 =?utf-8?B?UldxdFNLRkFDWHZPTHpDdlRyV0F6UnR1K2RFUkpTL0pJMVVzQ1JSZEora3VB?=
 =?utf-8?B?ZzYrb0wzTVo2cHRUcDI1SlpnaFNqQWhuQXhXeGJkNHZTZFpSRHlqRENFTksx?=
 =?utf-8?B?ZGpQM2t0UVNsMDVQTVNoZDdQVjdkSm9ZWldoa0RPN29wUFVtY2JDZ3NseURz?=
 =?utf-8?B?SDVsY3pDVzhtcXhsVUt0eGMyMXBjK3JBdVJsdUs1VTBTeVA2M2ZnTUFuUlA3?=
 =?utf-8?B?Q0RnNldHR3lBTmFMRm5iekxaZjhRdlRlVUpvNVZWazVZak82TUZCdHNscnNj?=
 =?utf-8?B?OEFQTWwrR0h6ZzZqVjgzZXFkNWFjNC96RFFLVmdoeCt4UVQwRVA4c005dU0w?=
 =?utf-8?B?RERKMzR0bnJEa3RlVDBmeEhpQnExS25qVEhFaU5aRGZ6VWxKWjBFNnd4Q3VE?=
 =?utf-8?B?OHBBR3M3VHNTZzVtM2tKaVo1K091eWRCMHBxdnU5cWFWQkR6U2RHdXg2STUw?=
 =?utf-8?B?Yi80UjIyYUszTVVIeWNwM3pxaXg3UFcvTm1lTmtZak1jTnM0RjJYcHNmT1k5?=
 =?utf-8?B?QTFSc0NvVDNMUmVjVG8wZ0phcEpXQUVTeWV1VmlrRWg0aGpJZjNlTzlkNkUw?=
 =?utf-8?B?Znl5QVIxbC9kL0h6cHpNZXE3YWFCdzU3d3RJMGVFRUhyL25sSWJueXFvUVNt?=
 =?utf-8?Q?6HgA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <33FB979D19384B4D901DE537355E7F4D@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: 5471572c-7c44-4f17-8220-08dbf55e7ec3
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2023 06:50:40.5049
 (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: esRnGxmSEtFxfB6302diDexVOR4eFOP8HhCtGumMr89ZhTAZJ4iNAP7iaFa18kv5ixaWVY+lzoZKTc8d5NSLhw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7745

T24gMjAyMy8xMi81IDA1OjMxLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+IE9uIE1vbiwg
MyBEZWMgMjAyMywgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4+PiB2cGNpIGRldmljZSBzdGF0ZSB3
aGVuIGRldmljZSBpcyByZXNldCBvbiBkb20wIHNpZGUuDQo+Pj4+DQo+Pj4+IEFuZCBjYWxsIHRo
YXQgZnVuY3Rpb24gaW4gcGNpc3R1Yl9pbml0X2RldmljZS4gQmVjYXVzZSB3aGVuDQo+Pj4+IHdl
IHVzZSAicGNpLWFzc2lnbmFibGUtYWRkIiB0byBhc3NpZ24gYSBwYXNzdGhyb3VnaCBkZXZpY2Ug
aW4NCj4+Pj4gWGVuLCBpdCB3aWxsIHJlc2V0IHBhc3N0aHJvdWdoIGRldmljZSBhbmQgdGhlIHZw
Y2kgc3RhdGUgd2lsbA0KPj4+PiBvdXQgb2YgZGF0ZSwgYW5kIHRoZW4gZGV2aWNlIHdpbGwgZmFp
bCB0byByZXN0b3JlIGJhciBzdGF0ZS4NCj4+Pj4NCj4+Pj4gU2lnbmVkLW9mZi1ieTogSmlxaWFu
IENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEh1YW5nIFJ1
aSA8cmF5Lmh1YW5nQGFtZC5jb20+DQo+Pj4NCj4+PiBUaGlzIFNpZ25lZC1vZmYtYnkgY2hhaW4g
aXMgaW5jb3JyZWN0Lg0KPj4+DQo+Pj4gRG9jdW1lbnRhdGlvbi9wcm9jZXNzL3N1Ym1pdHRpbmct
cGF0Y2hlcy5yc3QgaGFzIGEgZnVsbCBjaGFwdGVyIGFib3V0DQo+Pj4gUy1PLUIgYW5kIHRoZSBj
b3JyZWN0IHVzYWdlLg0KPj4gSSBhbSB0aGUgYXV0aG9yIG9mIHRoaXMgc2VyaWVzIG9mIHBhdGNo
ZXMsIGFuZCBIdWFuZyBSdWkgdHJhbnNwb3J0ZWQgdGhlIHYxIHRvIHVwc3RyZWFtLiBBbmQgbm93
IEkgdHJhbnNwb3J0IHYyLiBJIGFtIG5vdCBhd2FyZSB0aGF0IHRoZSBTT0IgY2hhaW4gaXMgaW5j
b3JyZWN0Lg0KPj4gRG8geW91IGhhdmUgYW55IHN1Z2dlc3Rpb25zPw0KPiANCj4gSSB0aGluayBo
ZSBtZWFucyB0aGF0IHlvdXIgU2lnbmVkLW9mZi1ieSBzaG91bGQgYmUgdGhlIHNlY29uZCBvbmUg
b2YgdGhlDQo+IHR3byBhcyB5b3UgYXJlIHRoZSBvbmUgc3VibWl0dGluZyB0aGUgcGF0Y2ggdG8g
dGhlIExLTUwNCkdvdCBpdC4gVGhhbmtzIFN0ZWZhbm8hIEkgd2lsbCBhZGp1c3QgdGhlIHNlcXVl
bmNlIGluIG5leHQgdmVyc2lvbi4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4N
Cg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 07:03:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 07:03:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647422.1010530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAPT7-0002y2-Gc; Tue, 05 Dec 2023 07:03:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647422.1010530; Tue, 05 Dec 2023 07:03:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAPT7-0002xv-Dr; Tue, 05 Dec 2023 07:03:45 +0000
Received: by outflank-mailman (input) for mailman id 647422;
 Tue, 05 Dec 2023 07:03:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nqzk=HQ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rAPT6-0002xl-OI
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 07:03:44 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20612.outbound.protection.outlook.com
 [2a01:111:f400:7e8a::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6cbb2bea-933c-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 08:03:43 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by BL1PR12MB5208.namprd12.prod.outlook.com (2603:10b6:208:311::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 07:03:31 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 07:03: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: 6cbb2bea-933c-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Sk7564trNkkxXgp1Rpma1ils7H+xmV06spXmId6QBKAGlxsIyOptPtAr2dSXf/33UI0saPuCgo2naBdsIqGY1X1s4Xg6sfKauqxQ0ChndAwwcx0JpX2ixcGjCNeEc3fukRzBJWPF/OQxXEUtkP4Q/k4OC8lLDLdFpz/g1tboJHJUbdwZbE0jAx+K4U9e7q+h2hEtHlwIovgT3/mbXPtm+wWYhjopkfiP4jpHW7YKkXsThg3WdLqXBe1pKNU53syLbAITWa0Jlw2zytT6yPhL1ApWjthghh1UUGef0C8BVJ6IulMc7YhKdxOOgazm3OVb4St8ar7cjlzOMGk8QYZ1Ng==
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=QFwEYzQ4/8GxG6jK1OV9K+yVFMjmfST+HoKxmzIAGeo=;
 b=lNltlMSRlsDTexciwoxLM6OMGim/x29rDjMCcXoqGi5gY2lygZp6FQlSC++h6EaWlteTLOCt1jEMUaoZlT9qS3rAVwk2g5Ze8mY9WAi4qRCeO69EU2U8mK9NLX8K626mlwJcXZK219Pfwh6yqIgOfZjBhJvRDfRzJwQ/Z+UvMSFy5Uj5aZCZSUpT9gTK/ufUsDgTu/ZqEENhdHIme7q3VG1sP8Sh07100S67NSZCYABV7R1E4HtUGdFQq21xEmYzsjJXjAYEAr35bvGL0zbtOJgqn0ZGAxVKoldn0AoHwcKixOmlerLbNGr6p1XI9gMxXiEqNJ2nuvSYPG/aMV9mWg==
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=QFwEYzQ4/8GxG6jK1OV9K+yVFMjmfST+HoKxmzIAGeo=;
 b=ms1WPW0ci0uwhjOSaIJCB056E+WGIAYISmxEpgN49uLoxTEnf7iz0BIvg51QJ0x1hxUCfJjG7UmbnHeYX7xGqZsBpvnF1cJfEp5vtQURSnBO1sOsvvKLOp1AfhrIWgsxwOGBl8M2x1EFmaWbZL71LosdI5QkMEa3ct+72xWEQkI=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Thomas Gleixner <tglx@linutronix.de>
CC: Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
	<jgross@suse.com>, Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, "Rafael J . Wysocki"
	<rafael@kernel.org>, Len Brown <lenb@kernel.org>, Bjorn Helgaas
	<bhelgaas@google.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "linux-acpi@vger.kernel.org"
	<linux-acpi@vger.kernel.org>, "Stabellini, Stefano"
	<stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Topic: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Index: AQHaHsGdlNZnjmvNCkucW725DqxYz7CY1iEAgAICoQA=
Date: Tue, 5 Dec 2023 07:03:30 +0000
Message-ID:
 <BL1PR12MB5849CB9EE88BF3E5269438DFE785A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com> <87bkb6xu4d.ffs@tglx>
In-Reply-To: <87bkb6xu4d.ffs@tglx>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: MN0PR12MB5762.namprd12.prod.outlook.com
 (15.20.7091.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_|BL1PR12MB5208:EE_
x-ms-office365-filtering-correlation-id: 496a8e72-56dc-4c32-3de7-08dbf560498c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 h4lbqILofD1J3lujlAGnQHq0NYcpphk1eejA+OOJD3NLukLtW+cQkplS0nIrx73lFNwm+a8oiTk0LqSanGG0ff6TCXOI4mEnGnEChG0K+eyy83DKMAhWeyItF17/V5phNz+A1Teg58fJdOBlU0cWfbmGRBxBatWXNNN1tYg9GZq4lsXrXmjK8cJ/asAfym2aMXOL9tKGE0oX9jUvt0GxTr4LNZykhY1aMLrl3AO2+9SjFwzBXzerpdBCJZmowj4bmhptsJ3sXXIMre75El/Zyo8+Vy73CztbqX6cjDKE/m0AtLzK0bleo2NgfR7A94GQl81peXykb3ugXbGyi+z1iuB1F1yiU1Jctc8VPg35ZmBNayEh1kNVyXGLYW8yr97EB5yle6eZdWVVy7JpI4WoL2tv/uXZCL1zmpOxCvZXuOnwu/BBJqJ3r6fJEONfuNoPMAh3UiLu6swVIf4v1u2LbPg9XrrmqeMaRekEXTxEu7dpz5mfG+mjrL2FE7CAgWZ5/5PCYMviS0hRX1FfBNweWfaIJCpJ601c5HS/CCZHIhKu6rcArb/unhTNv39yqAGBbA78UiLFcepE1NW5QX770W/a4Hz3cMLV3568x3WoucpILEiajYnjgKe/8bMGXWNs
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:(13230031)(376002)(346002)(39860400002)(136003)(396003)(366004)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(66946007)(54906003)(66476007)(66556008)(76116006)(66446008)(64756008)(38100700002)(316002)(6916009)(478600001)(71200400001)(7416002)(5660300002)(38070700009)(41300700001)(33656002)(2906002)(52536014)(8676002)(4326008)(8936002)(122000001)(83380400001)(55016003)(26005)(9686003)(53546011)(7696005)(6506007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RXBnSXp0eFBMODA4SG14S1ZSNGJBTWtvTG5zNVJabTRuMTZlc1dXNE1aV0ov?=
 =?utf-8?B?MURkUnFWdi91dmpIMHc0ZStCMVQ3aWdsSWI3YlZtVnVXTGVrWDRGWU9UNThi?=
 =?utf-8?B?azFEVUN5RmJwaEJ6bDJqUjBlemJDYmtudDlOaHlPWEFSUUpJbXVnWW1Ua3hB?=
 =?utf-8?B?UGw0S0x6QzB5cGdsWnQ1c284TUZrT0JpV2pvbHd3c1Y2RzgxMWtkMlRvK0Iv?=
 =?utf-8?B?UUZaUVFPQ2t3U3pMSWNVYW1pb01rN09yRkwzcml0NnFzRk1qNXg3QlZPSEUw?=
 =?utf-8?B?TmpaTmwzM2RpbTlzV0F4V2dzVmVxTFJNbDFCa2FrQURGSDhpUUF2MEVzdDFY?=
 =?utf-8?B?Z1FGUXcvSHlCQ2taaFNPallrbUpOTWU1WndCdGVnb2pBTjQvZHZlQWY4R21N?=
 =?utf-8?B?TWdBQ2tlREFHSk9XNWgvWnV5cUpuMmZYc0RDeWgzSUdObUFHQjdHY0ZxdXVz?=
 =?utf-8?B?Q0x6d0UwUWxYUHJ4N3A3Y3F0Y3F1V0RpTjlsY1VxckF3Z3N0M204SE4rRnVh?=
 =?utf-8?B?WDFDU3cyT2k3bmVrZnJzMnVJZEh4cjZWSjBnMGJJU0s4aDJvVXdpRyt4am1G?=
 =?utf-8?B?YVNraEZoSnljNmd6WCs0eXRDYXI1aVFkeit2WkZwY2RMa1hOclVHdEhXNkVt?=
 =?utf-8?B?eWZlbm81elZOSDJaUUc1bXd1RHV6RG8yVXgvQWJXZnh5cGFWcW51dzcwVWJz?=
 =?utf-8?B?RGp1RTdIbnlhdmRkRyt3NFk4MEpMaUsrZ2ZBQ2tLS1pPeENCSUFvT3FrYlI1?=
 =?utf-8?B?czZTdmhXdDU1cXNEU0Y3L2NzaGEzYUZmQUhsSDBoVlIxb0gyelVYVFVJL3FT?=
 =?utf-8?B?djdsQnVHNU9hMFArRG9hdTlncTkzR1Q3bmRBTXlXMFI5YUdjdlVpdEYyWW41?=
 =?utf-8?B?blhzSE5aVUVBc1VRdW1kTTFyRndWQU1uWldCTUFoT0pOK2VFYVVtT0w0b2xt?=
 =?utf-8?B?eWswT2NTSzRUV2lLZ0dQajhubTFrcis5cmNNOEgzUm0xLzlYN0dDRlhJcjVh?=
 =?utf-8?B?OG8xNnJYT0pKaWJjRzVIZGlJZVArckZZOFpuYW02djNaOXlBTFRqZzRicXNm?=
 =?utf-8?B?M09sTlgxdHVwU0JaTnZNNFV3QVMwMnBvU25ESVNtc0hBdVMxdmEwbnBRMnY5?=
 =?utf-8?B?ZUhrNDdNTGt1TEhkSWRvUnJaU0xhTUlxbm55VmprTnpjQTRvSnFmRm85QlNY?=
 =?utf-8?B?Tkp2R2ROY2Q4aUF4QmxTTjVJTlN6SmVRQTBVaHFBSm9rZnFNNTZ3V2o0bCtJ?=
 =?utf-8?B?VHpUQUZJc1BJTUVkc3pXUzNMaFVyendCaG8yUFo1S2N3eGdsRG1JWDk2RE9W?=
 =?utf-8?B?SmY3WWlUWGxpalV1akE0OXExQlpHQ2NveXppcUQxS2hpK3hvTTZORmhJMnNq?=
 =?utf-8?B?OFc3TlN2YVhoN2p5ZWdzbmp4cUp2V2I1NHQ1cDVKL3ZoQ3ZHYUVMNkcrdGxa?=
 =?utf-8?B?K056cFAwNFdiT2V4Ny9jdnU2ck43Mloxd2c2bGZPSjZ3bStoUEZiYjBvZGQ0?=
 =?utf-8?B?SnJ3Mk5UVXdldFJORmJIQXRFMUp1U2Yxa0YrWkJBdTJiK0d5TGUwdjNYVjFa?=
 =?utf-8?B?Y1piRE5ZclBSZTdFaVBCb1A5Z2lSaWpKZXVKM2VLTGNGTDhSbUl0UGlGN240?=
 =?utf-8?B?dnZ0RTE3WVRIRVd1TVJYdlNMelJaQWZiOC9kbW5sVUZTSnpoM0VidHdIMVNZ?=
 =?utf-8?B?THhZQmVtUmJibkEzbC9GcnpobzFzOTJmaTJwRkNHWkE5SlBOVkFrMGZ0Nms3?=
 =?utf-8?B?OXBYMDJnalhNM09xeWlvejY3bGxodW9yZ2lvV3F2dnREaTNEcFJrTE5uZFF2?=
 =?utf-8?B?YVEyT1ZNLytHZGtyNnRQUlE4NGdqdWxhWUwySEtIUnF3bGhienhhRXJMY1NL?=
 =?utf-8?B?ci93Tlh2MmRFWVQ3OUtIZ3pDSzBsWTNhMkt1eHZrekdieTVkQ0NJZTdDNjNZ?=
 =?utf-8?B?ekJIVjAvNitHUWJ4YTJjamRyYjg2NEEvTHlhRUg4dWx4b2VFc2QzazFSRnFx?=
 =?utf-8?B?dWxGM0ZOQXQ4WHlwRm1hTUs0N1duNUthWmovckU1RWRkMGg5YWFJa2RBK3Vj?=
 =?utf-8?B?aGlqU056RlNYRkR0Zkd0OXhUZ1lkcERYT2NrUitMNUI0eHk0eGZtaGV4RHhw?=
 =?utf-8?Q?Rvjc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5646BC56D81469478E4713A31429530A@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: 496a8e72-56dc-4c32-3de7-08dbf560498c
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2023 07:03:30.2348
 (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: fyvfvqH9IJl9JEevQjn/X2pLnl/Mij5Wk7rb7blQlhgxcwEudbA0kzNf/Ly8Ut5iEWIG2uPEjQuM4Ofpp6hUsg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5208

SGkgVGhvbWFzIEdsZWl4bmVyLA0KDQpUaGFuayB5b3UgZm9yIHJldmlldywgYW5kIHlvdSBhcmUg
cmlnaHQsIGl0IHNlZW1zIG1vcmUgbGlrZSBhIFhFTiBpbnRlcm5hbCBpc3N1ZS4gV2UgYXJlIGRp
c2N1c3NpbmcgaXQgYW5kIG1heWJlIHdpbGwgZml4IGl0IGluIFhlbiBjb2RlIG5leHQgdmVyc2lv
bi4NCg0KT24gMjAyMy8xMi80IDE2OjEzLCBUaG9tYXMgR2xlaXhuZXIgd3JvdGU6DQo+IE9uIEZy
aSwgTm92IDI0IDIwMjMgYXQgMTg6MzEsIEppcWlhbiBDaGVuIHdyb3RlOg0KPj4gZGlmZiAtLWdp
dCBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMgYi9kcml2ZXJzL3hlbi94ZW4t
cGNpYmFjay9wY2lfc3R1Yi5jDQo+PiBpbmRleCA1YTk2YjZjNjZjMDcuLmI4M2QwMmJjYzc2YyAx
MDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMNCj4+ICsr
KyBiL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMNCj4+IEBAIC0zNTcsNiArMzU3
LDcgQEAgc3RhdGljIGludCBwY2lzdHViX21hdGNoKHN0cnVjdCBwY2lfZGV2ICpkZXYpDQo+PiAg
c3RhdGljIGludCBwY2lzdHViX2luaXRfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpDQo+PiAg
ew0KPj4gIAlzdHJ1Y3QgeGVuX3BjaWJrX2Rldl9kYXRhICpkZXZfZGF0YTsNCj4+ICsJc3RydWN0
IGlycV9kZXNjICpkZXNjID0gTlVMTDsNCj4+ICAJaW50IGVyciA9IDA7DQo+PiAgDQo+PiAgCWRl
dl9kYmcoJmRldi0+ZGV2LCAiaW5pdGlhbGl6aW5nLi4uXG4iKTsNCj4+IEBAIC0zOTksNiArNDAw
LDEyIEBAIHN0YXRpYyBpbnQgcGNpc3R1Yl9pbml0X2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2
KQ0KPj4gIAlpZiAoZXJyKQ0KPj4gIAkJZ290byBjb25maWdfcmVsZWFzZTsNCj4+ICANCj4+ICsJ
aWYgKHhlbl9pbml0aWFsX2RvbWFpbigpICYmIHhlbl9wdmhfZG9tYWluKCkpIHsNCj4+ICsJCWlm
IChkZXYtPmlycSA8PSAwIHx8ICEoZGVzYyA9IGlycV90b19kZXNjKGRldi0+aXJxKSkpDQo+IA0K
PiBEcml2ZXIgY29kZSBoYXMgYWJzb2x1dGVseSBubyBidXNpbmVzcyB0byBhY2Nlc3MgaXJxX2Rl
c2MuDQo+IA0KPj4gKwkJCWdvdG8gY29uZmlnX3JlbGVhc2U7DQo+PiArCQl1bm1hc2tfaXJxKGRl
c2MpOw0KPiANCj4gT3IgdG8gaW52b2tlIGFueSBpbnRlcm5hbCBmdW5jdGlvbi4NCj4gDQo+PiAt
LS0gYS9rZXJuZWwvaXJxL2NoaXAuYw0KPj4gKysrIGIva2VybmVsL2lycS9jaGlwLmMNCj4+IEBA
IC00MzksNiArNDM5LDcgQEAgdm9pZCB1bm1hc2tfaXJxKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykN
Cj4+ICAJCWlycV9zdGF0ZV9jbHJfbWFza2VkKGRlc2MpOw0KPj4gIAl9DQo+PiAgfQ0KPj4gK0VY
UE9SVF9TWU1CT0xfR1BMKHVubWFza19pcnEpOw0KPiANCj4gTm90IGdvaW5nIHRvIGhhcHBlbi4N
Cj4gDQo+PiAtLS0gYS9rZXJuZWwvaXJxL2lycWRlc2MuYw0KPj4gKysrIGIva2VybmVsL2lycS9p
cnFkZXNjLmMNCj4+IEBAIC0zODAsNyArMzgwLDcgQEAgc3RydWN0IGlycV9kZXNjICppcnFfdG9f
ZGVzYyh1bnNpZ25lZCBpbnQgaXJxKQ0KPj4gIHsNCj4+ICAJcmV0dXJuIG10cmVlX2xvYWQoJnNw
YXJzZV9pcnFzLCBpcnEpOw0KPj4gIH0NCj4+IC0jaWZkZWYgQ09ORklHX0tWTV9CT09LM1NfNjRf
SFZfTU9EVUxFDQo+PiArI2lmIGRlZmluZWQgQ09ORklHX0tWTV9CT09LM1NfNjRfSFZfTU9EVUxF
IHx8IGRlZmluZWQgQ09ORklHX1hFTl9QVkgNCj4gDQo+IE5laXRoZXIgdGhhdC4NCj4gDQo+IFRo
aXMgYWxsIHNtZWxscyBiYWRseSBsaWtlIGEgWEVOIGludGVybmFsIGlzc3VlIGFuZCB3ZSBhcmUg
bm90IGdvaW5nIHRvDQo+IGhhY2sgYXJvdW5kIGl0IGJ5IGV4cG9zaW5nIGludGVycnVwdCBpbnRl
cm5hbHMuDQo+IA0KPiBUaGFua3MsDQo+IA0KPiAgICAgICAgIHRnbHgNCg0KLS0gDQpCZXN0IHJl
Z2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 07:26:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 07:26:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647430.1010540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAPpN-00072y-By; Tue, 05 Dec 2023 07:26:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647430.1010540; Tue, 05 Dec 2023 07:26:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAPpN-00072r-8P; Tue, 05 Dec 2023 07:26:45 +0000
Received: by outflank-mailman (input) for mailman id 647430;
 Tue, 05 Dec 2023 07: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=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAPpM-00071D-GW
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 07:26:44 +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 a39aea47-933f-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 08:26:43 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 D812D21EA9;
 Tue,  5 Dec 2023 07:26: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 A984E13A2E;
 Tue,  5 Dec 2023 07:26:42 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id K3F7J7LQbmWNIgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 07:26:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a39aea47-933f-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701761202; 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=gYYrslexbeasbMTYOtSkxaEKNNOdVW1CSS6dagoWibM=;
	b=hJxX2wuV51MggW08AtkHoAHqbeK3EDQWfs2fBqTMmob5t+j91ZI7omCIZBvIM7oopoCqf1
	g+h2Ys1XDlzqAOQyhKosIMzCJee+g/4PgnN5l92V2l3qOciHRSkfR7W6gqMZIVrtEi+TJr
	AejMjEwePki60L4LXdTAQ1t+I3i3Gl4=
Message-ID: <092bab73-90a8-493d-9e5f-2d4ee9359b35@suse.com>
Date: Tue, 5 Dec 2023 08:26:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
Content-Language: en-US
To: George Dunlap <george.dunlap@cloud.com>
Cc: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
 <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
 <CA+zSX=aicqMNWybLQYe3Jb6rzfePVrgbg6KT=rYnLnvq-GKrcA@mail.gmail.com>
 <15398b81-ad6b-4b14-a35a-e1e5d58fe935@suse.com>
 <cd4b8857-ad69-489b-9a4f-63d53c4d360e@suse.com>
 <CA+zSX=b0fVbRcyonZ3axXfbS6Kaw_kKTebNBhUie6C555JbLvg@mail.gmail.com>
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: <CA+zSX=b0fVbRcyonZ3axXfbS6Kaw_kKTebNBhUie6C555JbLvg@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------4MhnT0AclkpJm68nDvql0wHr"
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spamd-Result: default: False [-3.18 / 50.00];
	 ARC_NA(0.00)[];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-0.00)[14.22%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.19)[-0.968];
	 MIME_BASE64_TEXT(0.10)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Score: -3.18

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------4MhnT0AclkpJm68nDvql0wHr
Content-Type: multipart/mixed; boundary="------------x2x2HEzOi254MApP0bxKsJLE";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: George Dunlap <george.dunlap@cloud.com>
Cc: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dario Faggioli <dfaggioli@suse.com>,
 =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Message-ID: <092bab73-90a8-493d-9e5f-2d4ee9359b35@suse.com>
Subject: Re: [PATCH] sched: correct sched_move_domain()'s cleanup path
References: <2b59a3a2-d2f3-4d29-ab40-3f630fd497fe@suse.com>
 <CA+zSX=Zenkkyv2cQD-CKt=i90YUxxf=B_AuLgh82HDRUEkXJcg@mail.gmail.com>
 <88796b63-390d-4a4f-982f-ce86f21017c1@suse.com>
 <CA+zSX=aicqMNWybLQYe3Jb6rzfePVrgbg6KT=rYnLnvq-GKrcA@mail.gmail.com>
 <15398b81-ad6b-4b14-a35a-e1e5d58fe935@suse.com>
 <cd4b8857-ad69-489b-9a4f-63d53c4d360e@suse.com>
 <CA+zSX=b0fVbRcyonZ3axXfbS6Kaw_kKTebNBhUie6C555JbLvg@mail.gmail.com>
In-Reply-To: <CA+zSX=b0fVbRcyonZ3axXfbS6Kaw_kKTebNBhUie6C555JbLvg@mail.gmail.com>

--------------x2x2HEzOi254MApP0bxKsJLE
Content-Type: multipart/mixed; boundary="------------QZjKM0Iiikn0WALLGmYeWX5u"

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

T24gMDQuMTIuMjMgMjA6MzMsIEdlb3JnZSBEdW5sYXAgd3JvdGU6DQo+IE9uIE1vbiwgRGVj
IDQsIDIwMjMgYXQgMjo0NOKAr1BNIEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4g
d3JvdGU6DQo+Pj4+IFBlcnNvbmFsbHkgSSBwcmVmZXIgdG8ga2VlcCB0aGUgImdvdG8gb3V0
IiwgcmF0aGVyIHRoYW4gZHVwbGljYXRpbmcNCj4+Pj4gdGhlIHJjdV9yZWFkX3VubG9jaygp
LiAgSSdkIHlpZWxkIGlmIEphbiBzYWlkIGhlIHByZWZlcnJlZA0KPj4+PiBkdXBsaWNhdGlv
biwgaG93ZXZlci4NCj4+Pg0KPj4+IEknbSBvbiB0aGUgZWRnZSB0aGVyZSBhY3R1YWxseS4N
Cj4+DQo+PiBJbiB0aGlzIGNhc2UgSSdkIHByZWZlciBpdCBteSB3YXksIGFzIGl0IGF2b2lk
cyBoYXZpbmcgdG8gc2Nyb2xsIGRvd24gdG8gdGhlDQo+PiBvdXQ6IGxhYmVsIHRvIHNlZSB3
aGF0IGlzIGhhcHBlbmluZyB0aGVyZS4gQWRkaXRpb25hbGx5IGl0IGVuYWJsZXMgdG8gZ2V0
IHJpZA0KPj4gb2YgdGhlIHJldCB2YXJpYWJsZS4NCj4gDQo+IFRoZSBpc3N1ZSBpcywgc3Vw
cG9zZSB3ZSBjaGFuZ2Ugc29tZXRoaW5nIGVsc2UsIGxpa2UgbmVlZGluZyB0byBncmFiDQo+
IChhbmQgcmVsZWFzZSkgYW5vdGhlciBsb2NrPyAgU2hhcmluZyB0aGUgZXhpdCBwYXRoIG1h
a2VzIGl0IGVhc2llciB0bw0KPiBhdm9pZCB0aG9zZSBraW5kcyBvZiBtaXN0YWtlcy4NCg0K
WWVzLCB0aGlzIGNvdWxkIGhhcHBlbi4gT1RPSCBpdCBjb3VsZCBoYXBwZW4gdGhhdCBhbiBh
Y3Rpb24gaXMgYWRkZWQNCm9uIHRoZSBleGl0IHBhdGggd2hpY2ggc2hvdWxkIF9ub3RfIGJl
IGV4ZWN1dGVkIGluIHRoZSBlcnJvciBjYXNlLg0KDQpJIGFncmVlIHRoYXQgaW4gY2FzZSBv
ZiBtb3JlIHRoYW4gb25lIGV4aXQgYWN0aW9uIG5lZWRlZCB0aGUgZ290byBhcHByb2FjaA0K
aXMgc3VwZXJpb3IuIEZvciB6ZXJvIGV4aXQgYWN0aW9ucyBpdCBpcyBpbmZlcmlvciwgd2hp
bGUgZm9yIG9uZSBpdCB3aWxsDQpkZXBlbmQgb24gdGhlIHNwZWNpZmljIGNhc2UgSU1ITy4N
Cg0KDQpKdWVyZ2VuDQo=
--------------QZjKM0Iiikn0WALLGmYeWX5u
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-----

--------------QZjKM0Iiikn0WALLGmYeWX5u--

--------------x2x2HEzOi254MApP0bxKsJLE--

--------------4MhnT0AclkpJm68nDvql0wHr
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/Ey8FAmVu0LIFAwAAAAAACgkQsN6d1ii/Ey8L
awgAmh4yskBnlFJ9A+gkcTF9nZWW7/h+rLH2kLWzwyz67uJSEONPE0bELwzdxDkxN3kUgz+8BZv3
KfwB8IH5MQ6lHboxob6ltWpmSIhHiejcMYk+p5gRGCK99qIUicemvwyc328w45nTMjmsaFsbhwto
gt/+OztYA+5O/lHzj88BloTHlMZ5yLkIZ+CvKMKOu9j8yTnSM5lcxjIdRwTKFBPe6VvUFlAFF9Kp
SpgqhJ7mP4q0YVkxzv9Mas4jtVjbc+ddXGIXSCAnmvv5R8jTAv/2PFSy6mpJh/+7B5R2tXaQMDZR
Ff75P01vTN6Z7UJHFymCWEHzdoYkO3eh2gpC0GJq0Q==
=zk09
-----END PGP SIGNATURE-----

--------------4MhnT0AclkpJm68nDvql0wHr--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 07:41:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 07:41:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647435.1010549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQ3M-00024r-Lp; Tue, 05 Dec 2023 07:41:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647435.1010549; Tue, 05 Dec 2023 07:41: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 1rAQ3M-00024k-JJ; Tue, 05 Dec 2023 07:41:12 +0000
Received: by outflank-mailman (input) for mailman id 647435;
 Tue, 05 Dec 2023 07: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAQ3L-00024e-0D
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 07:41:11 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a7fc3b80-9341-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 08:41:09 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c09d0b045so24411045e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 23:41:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o18-20020a05600c511200b004064e3b94afsm21308607wms.4.2023.12.04.23.41.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 23:41:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7fc3b80-9341-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701762069; x=1702366869; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7WxAKZQAgaTWVKUhYpVD8IpfnSvWa1qBDTj64N7VOtA=;
        b=S8vG8iaro5kX/qoZlXA3xSPuPh0X10heBRd6qEMTtKcJEqaK8r9lAqVlq76Ys/b5m0
         hX64FbVa6BO9ZJZvUdjaf3iaICMZ+7BZTw4429sSIojjyirkF241HNglVJ+oxk1YhS1a
         DGU6e0f7gtfLGSy3eQwA2u5zIKi32AtYDmrjyYWmEvWNSyL7EkUsouwxJHCqdeJ10D0R
         rI8SWaA9nITNewAOiZrT9NzLAblMsRL51fyqaPt60SxEJUcRYCKhySS31/XbUCpjb/oe
         EppzqmARhGeC9G35jAk0Yjojoc115yL1FQXHsd/GA7rOy2W7NE0gpzN5pKGdOpxq/Zec
         CvAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701762069; x=1702366869;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7WxAKZQAgaTWVKUhYpVD8IpfnSvWa1qBDTj64N7VOtA=;
        b=WJlsYeAYXyqw6tOf/cowlY7TaGumcaRijzL5O02sAx2nUxIxD3qfESVLfcy88UOpc/
         hH1NcfRzeLKPCKxCW/5J/G47SqZQs5FWFBnCWqYGAIrSpIAmK/8SiwV8SBI6pRlV2Pv6
         uopMHmWWn9RvNMUclacrqT2Ri02Q4qwB0NJb0N14zxJ6bACBUVVrRBvIedrU/g1UIIvP
         oTqMeNe8nil6b1joZ7J46myYLGUKJqHSdYhN3Sgyf3AGqigQigM2x3pj5ZAaF/f0jmKv
         wqDV8/k42MSh592i+ZN2Q5U6ep6uLYEDZGK7cZQoiLJ8LF9rmrik3DRUwPpWnpdpVYNf
         Ls1Q==
X-Gm-Message-State: AOJu0Yydu72XK6pDcZFSMzG7L0zhGWUksE6r6DHlJTneOQx55x/Vb3No
	Etwqw7yiIXuXgGljPCfll/rt
X-Google-Smtp-Source: AGHT+IGDqOX1TzNDG6qND3b8PII9E9GJhJQHy07GYTjYNCXNkNBNBi7lWDRwXhMgUie80GYRJxdJlA==
X-Received: by 2002:a05:600c:4fcb:b0:40b:5e21:c5b5 with SMTP id o11-20020a05600c4fcb00b0040b5e21c5b5mr136954wmq.131.1701762069141;
        Mon, 04 Dec 2023 23:41:09 -0800 (PST)
Message-ID: <b5de9652-c421-4236-90d6-3d166a006e0c@suse.com>
Date: Tue, 5 Dec 2023 08:41:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <20231201184728.31766-1-julien@xen.org>
 <0e20592b-9800-4b9d-9f2f-a996f9ac00bd@xen.org>
 <cfaf75cf-f658-4df0-b654-f1c3af279b15@suse.com>
 <f40d6838-9a82-48cd-9a6b-a298c281f8cf@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: <f40d6838-9a82-48cd-9a6b-a298c281f8cf@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 20:05, Julien Grall wrote:
> On 04/12/2023 09:39, Jan Beulich wrote:
>> On 01.12.2023 19:49, Julien Grall wrote:
>>> +Naming convention
>>> +-----------------
>>> +
>>> +'-' should be used to separate words in commandline options and filenames.
>>> +E.g. timer-works.
>>> +
>>> +Note that some of the options and filenames are using '_'. This is now
>>> +deprecated.
>>
>> I certainly appreciate and second the intent, yet I'm afraid "Naming convention"
>> in the doc would (to me at least) first and foremost talk about identifiers used
>> in the various source files. If this really is to be about only file names and
>> command line options, then I think the heading would better say so. Alternatively
>> a clear indication would want adding that text about identifiers is supposed to
>> be here, but is yet to be written. (The text itself, for the intended purpose, > reads fine to me, fwiw.)
> 
> Right now, I don't have any plan to document the naming convention for 
> identifiers. In fact, I don't know if we have one...
> 
> So how about renaming the section to:
> 
> "Naming convention for files and comand line options"

That would be fine with me (with - nit - "command"). Then
Acked-by: Jan Beulich <jbeulich@suse.com>


Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 07:43:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 07:43:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647437.1010560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQ5A-0002dU-22; Tue, 05 Dec 2023 07:43:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647437.1010560; Tue, 05 Dec 2023 07: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 1rAQ59-0002dN-VC; Tue, 05 Dec 2023 07:43:03 +0000
Received: by outflank-mailman (input) for mailman id 647437;
 Tue, 05 Dec 2023 07: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAQ58-0002dD-7H
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 07:43:02 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e983994c-9341-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 08:42:59 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40b397793aaso32649015e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Dec 2023 23:42:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v11-20020a05600c444b00b003fefaf299b6sm17683643wmn.38.2023.12.04.23.42.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Dec 2023 23:42:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e983994c-9341-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701762179; x=1702366979; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=D+t/k016g3pSBuQKs00qMwpTb2MZJX5koZcrx9Uib58=;
        b=eLPCDMS6+gtgwjy348Ni+qBMb3DnS5/jAQcBRqVEtIFzb3v1uvAMMXAIRXF6Q6uvtp
         LonAy2aga3A7Qcn+gnY9QnzSOVV8CNRB+KgZPMWwYHlVJgKvEfl0J6uwKSIcX+V4sOis
         Z3sUU9SFOKLU/q/CdUXc0FBe7hm+uTAgc+F2aYR4JpOHkq9BV1hNajylEnEY7kHUznjQ
         PSxSezptWWiO14jYuTbP1071uXklrWHP0c/Hs8jTFnRPhjZQBrEWwyGIgKMxb6/R5qp2
         07qQz9VuG3RqqqU4jCUmpV8PfxStgyZvaNTywhAbQt/KVNSSVbzOFHQlcWxULVStmkfd
         RAJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701762179; x=1702366979;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=D+t/k016g3pSBuQKs00qMwpTb2MZJX5koZcrx9Uib58=;
        b=n9E3j9Jv+Nn06RfzX3EfUui/ycT7Z2CqcqUvcuYeRUZf1Z9sc9m5xC3ADIPHoykjX8
         xNyZ8AUJVHhdvreeg4Kd7p/jXyzBHPD8/hadqsEnsu6D/CGgLIz/CXhWrTO3wNGX5EKC
         umcnMHR40RnPgGdu7qu5yNSjAhDGO1AcGx1hd7gVuTKG379Ogw7PHh77Qv0Fb771c/ap
         1oe0Ybq0nnqE80/OhH6ae82eQBt6cJ8z/wvnMjP53UMcgMb9XysbWiXVxhqaFdU049oB
         7P2yUqtr90TPNU7U5ruKpJ9YoVTr6CDJcLLWgr3wO/obL96Q0bnkaQFrtW06j6ouDU4c
         XRPA==
X-Gm-Message-State: AOJu0YwkFPBgVUwvpd7z4kWk7mLQ+68sO2mG7a4wc1PLylpYM0nrwAF2
	v1SA/tU83ltRHfu3nhM/+6cJ
X-Google-Smtp-Source: AGHT+IGfAzefKgv9PZBW6/Lfv2yfBDJ3ope/hExUGeTwmFa+3GtLu/9dYd6YinIS8HTyvtPD5knSPg==
X-Received: by 2002:a7b:cd09:0:b0:40b:5e56:7b41 with SMTP id f9-20020a7bcd09000000b0040b5e567b41mr241933wmj.138.1701762179146;
        Mon, 04 Dec 2023 23:42:59 -0800 (PST)
Message-ID: <4e9dce92-9cd4-4031-9440-40ac0a627413@suse.com>
Date: Tue, 5 Dec 2023 08:42:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 06/17] vpci/header: rework exit path in init_bars
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-7-volodymyr_babchuk@epam.com>
 <11ee03e0-9de9-4179-bb4e-4ea2510122ef@suse.com> <87lea9sc4u.fsf@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <87lea9sc4u.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 01:53, Volodymyr Babchuk wrote:
> Jan Beulich <jbeulich@suse.com> writes:
>> On 02.12.2023 02:27, Volodymyr Babchuk wrote:
>>> Introduce "fail" label in init_bars() function to have the centralized
>>> error return path. This is the pre-requirement for the future changes
>>> in this function.
>>>
>>> This patch does not introduce functional changes.
>>>
>>> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> Nit: Tags in chronological order please.
> 
> Just to be clarify, it should be
> 
> Suggested-by
> Signed-off-by
> Acked-by
> 
> Correct?

Yes.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 07:53:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 07:53:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647441.1010571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQEr-0004z3-1C; Tue, 05 Dec 2023 07:53:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647441.1010571; Tue, 05 Dec 2023 07:53: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 1rAQEq-0004yw-SY; Tue, 05 Dec 2023 07:53:04 +0000
Received: by outflank-mailman (input) for mailman id 647441;
 Tue, 05 Dec 2023 07:53: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 1rAQEq-0004ym-1u; Tue, 05 Dec 2023 07:53: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 1rAQEp-0007G9-RS; Tue, 05 Dec 2023 07:53: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 1rAQEp-0004ah-CU; Tue, 05 Dec 2023 07:53:03 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAQEp-00039e-C0; Tue, 05 Dec 2023 07: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HYCMyX5zJ+vTWp9gAcMZf+BVb6elQWfJrKwVAwpsvgo=; b=tikQFWwV6988CEfNgDq+NQZJyO
	akhFLMgct0/VjEtse+G1+lZ2CtU9dEW+/Rl1jwLNwZ8HRn8Rz6SPHtZO5OvPvpS5gBRBKvWJ2zYlM
	IAXvGJ5ICPPJgRnh+t+NhghFsRNIqywmnyEyslXft26UulB2wRDc6ff63Yw+gRK56ks4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183991-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 183991: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=120aa6064465496c962b6664a9365a2573e54d1f
X-Osstest-Versions-That:
    ovmf=3e133f730b69a2b5a5cb875ed27e0439053663c4
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 05 Dec 2023 07:53:03 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 120aa6064465496c962b6664a9365a2573e54d1f
baseline version:
 ovmf                 3e133f730b69a2b5a5cb875ed27e0439053663c4

Last test of basis   183979  2023-12-03 02:41:27 Z    2 days
Testing same since   183991  2023-12-05 03:42:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abner Chang <abner.chang@amd.com>
  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    
 test-amd64-i386-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
   3e133f730b..120aa60644  120aa6064465496c962b6664a9365a2573e54d1f -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 08:10:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 08:10:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647451.1010579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQVq-00018i-Pm; Tue, 05 Dec 2023 08:10:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647451.1010579; Tue, 05 Dec 2023 08:10:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQVq-00018b-My; Tue, 05 Dec 2023 08:10:38 +0000
Received: by outflank-mailman (input) for mailman id 647451;
 Tue, 05 Dec 2023 08:10: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAQVp-00018V-Na
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 08:10:37 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c47b81cd-9345-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 09:10:35 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-33334480eb4so3597051f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 00:10:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c12-20020a056000104c00b00333339e5f42sm10476756wrx.32.2023.12.05.00.10.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 00:10:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c47b81cd-9345-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701763835; x=1702368635; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=LciaDmhsaDXGS8lo6shpwLxWi2FhY2LeHEF8/hywLro=;
        b=CeyHBnXaLJtSi/080tl8LdfZgq1ODped2oHwCkeJZ7wK/FSw/wb/otc60c53q0D0fz
         1yqbKp4uAidB30PLmOIGUWRvOWILyOkMRuOM5UD70sbjMirgxVrFfKVwQgyMT5EtpN+q
         AFWBgZzc/b1euFxRxtic1afiEtl0VHQY/9rMHjxw6fayjr4qtGodkgzbA3Arp36cKSt3
         onUXgr4sghmFHmwQr204BRVek89TNsnkVwJbC10AHLfRfVJeV0t58LvftDUpZT3bxaq9
         UtQiYNgMiuhqzmXVDcj5gz6XCYTCvOSzINwbhglDs1WlNCuVUv2fysRXrlWx7kzuxkX9
         ROJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701763835; x=1702368635;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=LciaDmhsaDXGS8lo6shpwLxWi2FhY2LeHEF8/hywLro=;
        b=SvYn/+q75BeYUddnm6xMtBfxtPF0YYoA19uzhFTXQT3Adtt7m+D0dsbd+66XcYtXw4
         164om9dTM71AIwBGZdevL8QLCqNIjIy0xzlb06uG0Xf3PZwAnUsN05oAs4NpX0apeMiY
         fSP1uXpebCGoCBTJGjRWzlH/iMKY5/vam/fsi8t0oy5vTPrPq+fsHdGWXQ2pQRk+RKuA
         Zid68RxYmAeyPjlT/eKJGDOMy9oaNXo9EzYqhx9mLUbAsgfqZI6yYnwECwmKs70FBnxF
         YqmcHTas9qM2+UikgXsowF4ttbD1gh/tgw46SieFRetUTboODUCVi7AI6nkKdA/vfgSw
         2nvw==
X-Gm-Message-State: AOJu0YwQSs/jn2jvUfl5JPe01VfVHR3yCNIYgoXZzDU8tRGMfi1uehm3
	9Ic2/8+hv9VoXxfImhhc45A1
X-Google-Smtp-Source: AGHT+IFMY/G2MDEkU/lmXuMl6SekHVdmvlq1ncCo2xjGNuLmDhrSeuJwIgPH/3IU4lKVwQRnUqqxOQ==
X-Received: by 2002:adf:fd45:0:b0:333:3e39:8ff3 with SMTP id h5-20020adffd45000000b003333e398ff3mr2230547wrs.57.1701763835018;
        Tue, 05 Dec 2023 00:10:35 -0800 (PST)
Message-ID: <1692a83f-e483-42be-b781-18e9ca4f4804@suse.com>
Date: Tue, 5 Dec 2023 09:10:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-2-Jiqian.Chen@amd.com> <87edg2xuu9.ffs@tglx>
 <BL1PR12MB5849F2E24E00BF7B20A0B4A6E786A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <alpine.DEB.2.22.394.2312041331210.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312041331210.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

(reducing Cc list)

On 04.12.2023 22:31, Stefano Stabellini wrote:
> On Mon, 3 Dec 2023, Chen, Jiqian wrote:
>>>> vpci device state when device is reset on dom0 side.
>>>>
>>>> And call that function in pcistub_init_device. Because when
>>>> we use "pci-assignable-add" to assign a passthrough device in
>>>> Xen, it will reset passthrough device and the vpci state will
>>>> out of date, and then device will fail to restore bar state.
>>>>
>>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>>> Signed-off-by: Huang Rui <ray.huang@amd.com>
>>>
>>> This Signed-off-by chain is incorrect.
>>>
>>> Documentation/process/submitting-patches.rst has a full chapter about
>>> S-O-B and the correct usage.
>> I am the author of this series of patches, and Huang Rui transported the v1 to upstream. And now I transport v2. I am not aware that the SOB chain is incorrect.
>> Do you have any suggestions?
> 
> I think he means that your Signed-off-by should be the second one of the
> two as you are the one submitting the patch to the LKML

But that's not really correct either, as it then doesn't represent the
sequence of events. The first S-o-b normally is the (original) author's,
isn't it?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 08:14:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 08:14:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647454.1010590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQZv-0001jU-9K; Tue, 05 Dec 2023 08:14:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647454.1010590; Tue, 05 Dec 2023 08: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 1rAQZv-0001jN-6a; Tue, 05 Dec 2023 08:14:51 +0000
Received: by outflank-mailman (input) for mailman id 647454;
 Tue, 05 Dec 2023 08: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=9cV0=HQ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1rAQZt-0001jH-GI
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 08:14:49 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0622.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59f35c41-9346-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 09:14:46 +0100 (CET)
Received: from DUZPR01CA0139.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4bd::14) by AM8PR08MB5572.eurprd08.prod.outlook.com
 (2603:10a6:20b:1db::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 08:14:42 +0000
Received: from DB5PEPF00014B92.eurprd02.prod.outlook.com
 (2603:10a6:10:4bd:cafe::1b) by DUZPR01CA0139.outlook.office365.com
 (2603:10a6:10:4bd::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Tue, 5 Dec 2023 08:14:42 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5PEPF00014B92.mail.protection.outlook.com (10.167.8.230) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 08:14:42 +0000
Received: ("Tessian outbound 8289ea11ec17:v228");
 Tue, 05 Dec 2023 08:14:42 +0000
Received: from aa171aba97fc.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 9B9E52A6-C8D2-48E0-BF69-B0D1A80A08A3.1; 
 Tue, 05 Dec 2023 08:14:34 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id aa171aba97fc.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 05 Dec 2023 08:14:34 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by VE1PR08MB5616.eurprd08.prod.outlook.com (2603:10a6:800:1a1::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 08:14:32 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b%6]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 08:14: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: 59f35c41-9346-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=kLBvsd3Poiez/TN5gnol85RJBiKl6EKbyGB2+kdxPk4wrXW4M9j91IlrtLlSoHJ+zfhLhDnET65teIygn3LrVGdAj7UIwzsq/XOAg8wPxWXyntSKH6esCkvLGm6MVD4HclzON9sTAMt+iGV4fSy25MvnAKyTqYQ+Wf+QGGR9yNBpHMIFqbu3jatX0V0XwOWeD2v5J1diO2FvYsNQgD4Y6TX3lkgoXStJRYCrkBoEwXq/rdBuC40Ph+WRTtRUE9KvqvZedjUFTSxpM9P3PuBaaZqfA8U90u2HY3fyVF/CHvUJqdpK6iGEZTGHgddqVSPPFT/aVJfMmLTQ1HZrjRKzkw==
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=4DxCdyJHeqP3pz7iPZ8ZZwlVp2S1lyQAMvolsbtSrxU=;
 b=NzslR14hHZ5ZQLAd3A+lT5Iq93beJ0zxPzQU3BSmXFYs3qH17vLY43jDKy6tJFS+3cgv8y5qzUJ9ir0WXS5k7fezouHAWgOOmi0fjT2UAT5S3H0kjgpJMcda5dToAstUOIk72mKP1u0J7MYaWLwlyzt+x/C9d8KuiGdCOtyTq3hCHHP3x9qdQCdnH5aN185s4orjnKSqAbxVrCwImcd7dn6OfH4JcV47M7KRwNxOh4U+cTjl6PofWeDRLeIkxUqQTOdCv7ZDfXeVwwXxQJ196EkcXj+yTk5QZTBTSRrrRTdOb0T1Wweq5G48s2rTKaGrFI1/Q6bDzz2wfEz7VcSCZw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4DxCdyJHeqP3pz7iPZ8ZZwlVp2S1lyQAMvolsbtSrxU=;
 b=oFaZ9v1JFu/xsC7V/cA7+vaVyEU6SpbXFCwYSi+p59ZTBqCIUKkgqNtJkwPAI48MDZtt++pax+NQLfvtoBcvA/Q1my5xTMAvmsBi7fXSwapTRBXZF8ID/iVKh6PWi+wI0hIKaOKtAjOOM1FlNl6Uq9wi8CNxJ6F9GRVTWKibg/A=
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=armh.onmicrosoft.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: 338863f038d3e0a0
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Y1AFsKK5U16xXWqmjWGxvSgM0wnG2IEe2pO7TazaDtqNbrQkdr5kCYjKYrfZ//DMWY0TWu1Bh25roDjZrhY6VCDZuBF6YniVRRMvo24K5gg6RkjkBrWvoTFA/P6aMhSm0X8d7GT+o2Za3zlB0Sy0Ja8wdt0Jtj4kQQLAx46gebQAraIcedqJUxDd5b+lhNShbYwBu1TsP4jKrX/1f5oKUWJsW5CrHiGymlVpwgLA667OKMmncNNuVLGVilQzbTzU2kGSrXQWLhBfeybVSksIHkvIDx6uO6L83cPKue0N3g6OEXi9HGm1AusInYL2QDDNdWQ+ZE2ZUYmkNH8crPCwXg==
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=4DxCdyJHeqP3pz7iPZ8ZZwlVp2S1lyQAMvolsbtSrxU=;
 b=ea0Et3P5efdAx4CVjJoQ++DsVR6KlYYsxkcjIfML1L/vca/Meu94ULC7Mo9ezotU7KgAsxgSgvXXF8+75kZAIxN2x11MXVyMcjMHy2Dt6DcwRr1nfeUMpFxYOUTpMTOs0kYGCf8+eTlonjV10AoeSXLXLYKKj7nruRXmamDkjOF3rgybS8EQJF906QJx3AjI53/sOjlH3QNo7u8qqcTY4SuBYhHr01ovC1DiCW5bu82C1DK/XpZ5WF/h7kTLxnifjBSTbqrgF2Sgsi9yte7eNKZ6+aoHTFfHRcFCMMr5XAfqxbe4djaqcv8OQ6XiW95Xuk2ZFJbHBbxnMZoOFMv1tg==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4DxCdyJHeqP3pz7iPZ8ZZwlVp2S1lyQAMvolsbtSrxU=;
 b=oFaZ9v1JFu/xsC7V/cA7+vaVyEU6SpbXFCwYSi+p59ZTBqCIUKkgqNtJkwPAI48MDZtt++pax+NQLfvtoBcvA/Q1my5xTMAvmsBi7fXSwapTRBXZF8ID/iVKh6PWi+wI0hIKaOKtAjOOM1FlNl6Uq9wi8CNxJ6F9GRVTWKibg/A=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Jens Wiklander <jens.wiklander@linaro.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"patches@linaro.org" <patches@linaro.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [RFC XEN PATCH] xen/arm: ffa: reclaim shared memory on guest
 destroy
Thread-Topic: [RFC XEN PATCH] xen/arm: ffa: reclaim shared memory on guest
 destroy
Thread-Index: AQHaJoeGwF1xR3NTTUaqMmqvuUyS9rCZgdwAgADXLwA=
Date: Tue, 5 Dec 2023 08:14:32 +0000
Message-ID: <0B35D609-5378-4180-B79E-0CAE69D42165@arm.com>
References: <20231204075552.3585875-1-jens.wiklander@linaro.org>
 <232c2496-77d6-4e37-a400-dbefd135ef3c@xen.org>
In-Reply-To: <232c2496-77d6-4e37-a400-dbefd135ef3c@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3784:EE_|VE1PR08MB5616:EE_|DB5PEPF00014B92:EE_|AM8PR08MB5572:EE_
X-MS-Office365-Filtering-Correlation-Id: 2b7d0238-b209-4180-1a91-08dbf56a3be0
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 89axDm2AF4tzAYcx8XNleUBJREHhjFZORHSHiDtK+32CsrSfb73Ght/eC9C9SpBmuysqLR+dHX2BKe0x3QgNqLCB0z3muvMG4e0jCIjKIGur3P5qHYpPUGhc5bADkQ+EXOH8HlxH68IhfZo4npoM6mBCa2h6FwQRCqdmofPTb1rvXpnpEcOEMWikEOIr/ULXz/zwFx3hC2ehHCyZ5wvaAHgk6fwkIju5VebKZHJ2upwEU9RHZxYCDsbQdGiRicHZImAcfhUbosj19wUOzGQ7soXZiPCe/ESwjJ28os185xs8GyiPevjGVJKrztlN5aLPs+mZqxxprEPCTSAm5HeUHMACmJA/PsOgIEdMOjhGrqxUDM1RM+l+9Wr0OygvJck8Pdll1UQj0ta5+yAyVNvscbn5zBgmbzZvpN3saNrvC83FK5pzVR7bunK1uBipGldyIenUfFEd4l5TqzLJfYxFU4ucivhf+OSx8TqugH7EbLHxxVv2U+EPh2I2U+vPZT2GY9dtG3phBg5CCNFF4ibh+Q/L2pIE8DRFdA5gF+jK9kt/ac2QC+sXWtiU3WRJqCKDiZ2maATsRQxNBZdyNrqB+rxUEvyzNk5jbhiNyUFiWdELvB0WTwtUojsujtyE3k39olpdStnpwixAZs4/xtGPLg==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(39850400004)(346002)(366004)(136003)(396003)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(6916009)(316002)(66556008)(66446008)(64756008)(54906003)(66476007)(86362001)(8936002)(8676002)(4326008)(66946007)(478600001)(6486002)(91956017)(76116006)(41300700001)(36756003)(5660300002)(2906002)(33656002)(122000001)(38100700002)(2616005)(6506007)(71200400001)(53546011)(6512007)(83380400001)(38070700009)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <6ED5C370F3625944AAAAE4BC32BE3612@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5616
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:
 DB5PEPF00014B92.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ef35af77-e390-4fcc-2033-08dbf56a35fa
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	K/cCrf2/gXFXS7jvM2l0b8vRLxpcrYLwV5PcrAoiy5OT90YrMiLakvSGDy9TC/tKQJsYpGC9km8f0oJXbhWXxQPiOgiZ1V4xOW3LkRqUCGxy/3/TRbqhOaAtf0QVhzRMfmbf8Gi7zxY3Ulkvu4iH3nIooGDinTtVR8O40HgwCiNF8zP1ipkdUuT9FjbtD62VXUXYkG7rXlVr0/HdyJr9wnIm5LPwzmlEdFy+Ctnm4xfBvaySKl3wBIitf2uyaMRFkxH4NRE+keIlEJbLYnarSDL02dNnpcTiON3pzqun2jIZgBHc/BUqU6eiz/fOYuEkLby7N1BpEk33WnosL7hupU5pHiNjD/KXGDslKtd5pRvJTRj5W85sZfwhVHwQdvMdoHe0lLEqE8Ev0RUAUBDP4Z/nz6TL2O22ycgkMKbfzymPvBG/UmubG77gtjJavPB1SkGX9sGVSfj90DcOeh11B54hJLJ2hogs91N16xhnHwCMlaTARA7yJSoAmn+eF4BGDnF+nbpZJM3lnzW+PUhMTaMbUyF7lV/Lk1I1v1kLIeh6wtHxYEGvaFFzuy59iBhJ/RAAASmj+24WwidYx4e5ETnkoYJLeAm8/ted4QLdk1M6zeXwvZiZnB13/S0AyxsBW3gNywJ66ZizzhsABpc8bXGaW4i0eKrJfcTObcdN6g/cag2/dcZZ1qmbBiT968LTIP7Ma8zYrn2RMwIFwqugnKdNRNx6ARBoBoB3RuOEy+7Tmf4C5UU3uRKEoGOHSSPL
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:(13230031)(4636009)(39860400002)(136003)(346002)(396003)(376002)(230922051799003)(64100799003)(1800799012)(82310400011)(451199024)(186009)(36840700001)(46966006)(40470700004)(54906003)(70586007)(70206006)(8676002)(4326008)(6862004)(8936002)(316002)(478600001)(6486002)(40460700003)(5660300002)(41300700001)(36756003)(33656002)(2906002)(86362001)(6512007)(40480700001)(81166007)(356005)(83380400001)(26005)(107886003)(336012)(2616005)(53546011)(6506007)(82740400003)(47076005)(36860700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 08:14:42.2938
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2b7d0238-b209-4180-1a91-08dbf56a3be0
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:
	DB5PEPF00014B92.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5572

Hi Julien,

Thanks a lot for your review and comment, this is very helpful.

> On 4 Dec 2023, at 20:24, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Jens,
>=20
> On 04/12/2023 07:55, Jens Wiklander wrote:
>> When an FF-A enabled guest is destroyed it may leave behind memory
>> shared with SPs. This memory must be reclaimed before it's reused or an
>> SP may make changes to memory used by a new unrelated guest. So when the
>> domain is teared down add FF-A requests to reclaim all remaining shared
>> memory.
>> SPs in the secure world are notified using VM_DESTROYED that a guest has
>> been destroyed. An SP is supposed to relinquish all shared memory to all=
ow
>> reclaiming the memory. The relinquish operation may need to be delayed i=
f
>> the shared memory is for instance part of a DMA operation.
>> If the FF-A memory reclaim request fails, return -ERESTART to retry
>> again. This will effectively block the destruction of the guest until
>> all memory has been reclaimed.
>> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
>> ---
>> Hi,
>> This patch is a bit crude, but gets the job done. In a well designed
>> system this might even be good enough since the SP or the secure world
>> will let the memory be reclaimed and we can move on. But, if for some
>> reason reclaiming the memory is refused it must not be possible to reuse
>> the memory.
>=20
> IIUC, we are trying to harden against a buggy SP. Is that correct?

This is not hardening as this is a possible scenario with a correctly imple=
mented SP.
This is valid for the SP to not be able to relinquish the memory directly s=
o we have
to take this possibility into account and retry.

What is not expected if for the SP to never release the memory hence the po=
ssible
"todo" at the end of the code where i think we might have to implement a co=
unter
to bound the possible number of loops but as always the question is how man=
y...

In this case the only solution would be to park the memory as suggested aft=
er
but we are not completely sure where hence the RFC.

>=20
>> These shared memory ranges are typically quite small compared to the
>> total memory usage of a guest so it would be an improvement if only
>> refused shared memory ranges where set aside from future reuse while the
>> guest was destroyed and other resources made available for reuse. This
>> could be done by for instance assign the refused shared memory ranges
>> to a dummy VM like DOMID_IO.
>=20
> I like the idea to use a dummy VM, but I don't think DOMID_IO is right. O=
nce teardown has completed, the domain will stay around until the last refe=
rence on all pages are dropped. At this point, the amount of memory left-ov=
er is minimum (this is mostly bookeeping in Xen).
>=20
> From the userland PoV, the domain will still show-up in the list but tool=
s like "xl list" will show "(null)". They are called zombie domains.
>=20
> So I would consider to keep the same domain around. The advantage is you =
can call "xl destroy" again to retry the operation.

In this scenario the "restart" implementation here is right but how could w=
e park the VM as "zombie" instead of busy looping in
the "kill" loop of userland ?

Also we need to release all the memory of the VM but the one shared with th=
e SP.=20

I will let Jens answer the more implementation questions here after and try=
 to help on the more "system" ones.

>=20
>> Thanks,
>> Jens
>> ---
>>  xen/arch/arm/tee/ffa.c | 36 ++++++++++++++++++++++++++++++++++++
>>  1 file changed, 36 insertions(+)
>> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
>> index 183528d13388..9c596462a8a2 100644
>> --- a/xen/arch/arm/tee/ffa.c
>> +++ b/xen/arch/arm/tee/ffa.c
>> @@ -1539,6 +1539,7 @@ static bool is_in_subscr_list(const uint16_t *subs=
cr, uint16_t start,
>>  static int ffa_domain_teardown(struct domain *d)
>>  {
>>      struct ffa_ctx *ctx =3D d->arch.tee;
>> +    struct ffa_shm_mem *shm, *tmp;
>>      unsigned int n;
>>      int32_t res;
>>  @@ -1564,10 +1565,45 @@ static int ffa_domain_teardown(struct domain *d=
)
>>              printk(XENLOG_ERR "ffa: Failed to report destruction of vm_=
id %u to  %u: res %d\n",
>>                     get_vm_id(d), subscr_vm_destroyed[n], res);
>>      }
>> +    /*
>> +     * If this function is called again due to -ERESTART below, make su=
re
>> +     * not to send the FFA_MSG_SEND_VM_DESTROYED's.
>> +     */
>> +    subscr_vm_destroyed_count =3D 0;
>=20
> AFAICT, this variable is global. So wouldn't you effectively break other =
domain if let say the unmapping error is temporary?
>=20
>>        if ( ctx->rx )
>>          rxtx_unmap(ctx);
>>  +
>> +    list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
>> +    {
>> +        register_t handle_hi;
>> +        register_t handle_lo;
>> +
>> +        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
>> +        res =3D ffa_mem_reclaim(handle_lo, handle_hi, 0);
>=20
> Is this call expensive? If so, we may need to handle continuation here.

This call should not be expensive in the normal case as memory is reclaimab=
le
so there is no processing required in the SP and all is done in the SPMC wh=
ich
should basically just return a yes or no depending on a state for the handl=
e.

So I think this is the best trade.

@Jens: One thing to consider is that a Destroy might get a retry or busy an=
swer and we
will have to issue it again and this is not considered in the current imple=
mentation.

After discussing the subject internally we could in fact consider that if a=
n SP cannot release
some memory shared with the VM destroyed, it should tell it by returning "r=
etry" to the message.
Here that could simplify things by doing a strategy where:
- we retry on the VM_DESTROY message if required
- if some memory is not reclaimable we check if we could park it and make t=
he VM a zombie.
What do you think ?


>=20
>> +        if ( res )
>> +        {
>> +            printk(XENLOG_INFO, "ffa: Failed to reclaim handle %#lx : %=
d\n",
>> +                   shm->handle, res);
>=20
> I think you want to use XENLOG_G_INFO to use the guest ratelimit. Also, I=
 would suggest to print the domain ID in the logs (see '%pd').
>=20
>=20
>> +        }
>> +        else
>> +        {
>> +            printk(XENLOG_DEBUG, "ffa: Reclaimed handle %#lx\n", shm->h=
andle);
>=20
> Same here. You want to use XENLOG_G_DEBUG and print the domain ID.
>=20
>> +            ctx->shm_count--;
>> +            list_del(&shm->list);
>> +        }
>> +    }
>=20
> NIT: New line here please for clarity.
>=20
>> +    if ( !list_empty(&ctx->shm_list) )
>> +    {
>> +        printk(XENLOG_INFO, "ffa: Remaining unclaimed handles, retrying=
\n");
>=20
> Same as the other printks.
>=20
>> +        /*
>> +         * TODO: add a timeout where we either panic or let the guest b=
e
>> +         * fully destroyed.
>> +         */
> Timeout with proper handling would be a solution. I am not sure about pan=
ic-ing. Do you think the TEE would be in a bad state if we can't release me=
mory?
>=20
>> +        return -ERESTART;
>> +    }
>> +
>>      XFREE(d->arch.tee);
>>        return 0;
>=20
> Cheers,
>=20

Cheers
Bertrand

> --=20
> Julien Grall




From xen-devel-bounces@lists.xenproject.org Tue Dec 05 08:17:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 08:17:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647457.1010600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQc9-0002lJ-Q4; Tue, 05 Dec 2023 08:17:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647457.1010600; Tue, 05 Dec 2023 08:17:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQc9-0002lC-Mk; Tue, 05 Dec 2023 08:17:09 +0000
Received: by outflank-mailman (input) for mailman id 647457;
 Tue, 05 Dec 2023 08:17: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAQc7-0002l4-TO
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 08:17:07 +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 ad218b12-9346-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 09:17:05 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-33334480eb4so3601930f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 00:17:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j1-20020a5d5641000000b0033349de2622sm4871429wrw.94.2023.12.05.00.17.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 00:17:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad218b12-9346-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701764225; x=1702369025; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1bRMg95vdDsMh1U8nyGb9KTb/zRJKHM19tW5tRmZQnI=;
        b=VjIGchonZBkSYQKsk2sObv74NgcueHz05aStdVd+Wvix2/rHL18ODfV//MeV9aUqNf
         7+Hl1rhsNbxFGk/oShce8wM2GKS/6EN/F4PE3bGyLaO6fggBslyryJXxoJdiprEhNtB/
         9laj332/4N7SpuIb1iQpDDcDDxrXI2QoDffCEL0Ll2vLxhfPpKCMZ0hZT9qfPCo9BtPZ
         AnkDLaycoo0tWXxwXXqQ9yvMm61IQZe2b/O0rffRI6gL+ZLiaRn8iQeLuFuNV4tZj1x3
         U9jYa2P5FPdV4md55qZM3j9W+BaOd5vmLMSjpqIYILUK0nlYRwm2MQLEfznTKRT5pkna
         GpVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701764225; x=1702369025;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=1bRMg95vdDsMh1U8nyGb9KTb/zRJKHM19tW5tRmZQnI=;
        b=RMbiNYaKrmwzk+snNgUSIOA5oX+1JsaRl7drQA7OWw7+WjbDJtxr4kGbvJA3zZrnEC
         Gs+241BmTa3JcHKxMeHPK9+k6Z+wK1I6Ovt7bNHpyRGIuVhtAZrvYVl9iGx56ZpUO0Zx
         V99J7Lw3qMWLmmjuPTZvQnDiRHwK1fYWmud5j8FhNpgTGlHxL8ZXv99718h68AFqdXrB
         ec1ZY9ght11Uztre0r+3mb34FOT42JlDaWkhfRJn6EHi0T6wyH1a+up4HWS2ygDAEdMT
         9XzmuMFB/FYUFh9V4JB2Ns45szMbO02izfhPuF+uqZ2I262einafLYRDE3KgEBr/pUL5
         e0pg==
X-Gm-Message-State: AOJu0YxhNttA+w45Muc+a6zNwngv8ius4MfKHhcnoKeoporMUfC+H2GP
	Nm4IDwDRwreTtVdnKg3UUHte
X-Google-Smtp-Source: AGHT+IFEJA7TGMSLfB3W7s5f3vMFo768HvsVmaZeDDTPr1FeqWcabImyo0iQBFLDttaJ2zf/1anEYw==
X-Received: by 2002:adf:f043:0:b0:32f:7734:a0fa with SMTP id t3-20020adff043000000b0032f7734a0famr4009515wro.2.1701764225313;
        Tue, 05 Dec 2023 00:17:05 -0800 (PST)
Message-ID: <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
Date: Tue, 5 Dec 2023 09:17:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
 <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
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: <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.12.2023 20:17, SÃ©bastien Chaumat wrote:
> Le lun. 4 dÃ©c. 2023 Ã  10:06, Jan Beulich <jbeulich@suse.com> a Ã©crit :
> 
>> On 03.12.2023 10:56, SÃ©bastien Chaumat wrote:
>>> Hello,
>>>
>>>  Trying to get the Framework Laptop 13 AMD to work with QubesOS I hit the
>>> following Xen issue :
>>>
>>> Xen version : 4.17.2
>>
> + tested with 4.18.0
> 
> 
>>> Kernel : 6.5.12-300.fc39.x86_64
>>> CPU  model name : AMD Ryzen 7 7840U w/ Radeon  780M Graphics
>>
> 
> 
>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
>>
>> Possibly releated to this. You'll want to obtain a full-verbosity
>> hypervisor
>> log with a debug hypervisor, as there may be hypervisor debug messages
>> telling us what Xen may not like.
>>
> 
> xl dmesg with some traces attached.

Nothing that looks relevant here. The anomalies are related to you also
having enabled lock debugging and ubsan.

I'm afraid this needs looking into from the kernel side first, to understand
what's going wrong there. Once that's known, it'll hopefully be more clear
whether this is a Xen or a kernel issue.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 08:26:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 08:26:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647461.1010610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQlQ-00057R-Ll; Tue, 05 Dec 2023 08:26:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647461.1010610; Tue, 05 Dec 2023 08:26:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAQlQ-00057K-Ic; Tue, 05 Dec 2023 08:26:44 +0000
Received: by outflank-mailman (input) for mailman id 647461;
 Tue, 05 Dec 2023 08:26:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAQlP-00057D-Lw
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 08:26:43 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 044c4dab-9348-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 09:26:41 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40a4848c6e1so57072855e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 00:26:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g18-20020a05600c311200b0040b42df75fcsm17896351wmo.39.2023.12.05.00.26.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 00:26:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 044c4dab-9348-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701764801; x=1702369601; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=h3rHz7hPHpRpFEzLV7NU+SZsJdf93jlXNE810uL086U=;
        b=KzHSs+Wzwus8H4oVJDbbWUEx/33BI38Vvi+Luzh57MwWh0/GHM3eYW73WIPto3q621
         yMfSF0ue1J9Z2rDUfH+ycHD0RZ2FcwNg/MqyJSMsqf30uHfTHPes16g6UZ2eU7inCBA+
         LLLEiOdv4C3YgDaILw75qaUFUXJhJwVZHd3zS+On4bSwGx/3bFT9XCsFgAM+1mYwc7tw
         Zv6uxLstJlAP0sB+t5rwVX+DzKNxkAIqsmmFcWdd8bvzsfyTbvHNrZWTv7PXYE/0Hyr0
         a4bhv29l3CNDi2S6nYUINGjHJ/uZVExNoPGqdHNxLBLhz+kWKB3j7D0ZYmSophDHfSwC
         hIgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701764801; x=1702369601;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=h3rHz7hPHpRpFEzLV7NU+SZsJdf93jlXNE810uL086U=;
        b=SR6CDOLF+/D0qh+PV/sNqOsesL7FdlWoIFN0n7c7AR9zTuDrfXxa5qzlDyRYTYb76M
         WGwoXO1zldItammWOJ5X9Pu/+Oz0Kv6YSm3S9jlpUwjURA8Q65OjO7zYC8mB0D1SuY5u
         qc8LmYeoMl5TJ7E8N3R0uCIgBzfnd+YelRsG+AbFoZO6GsX/tllIOxYC7yUGRsaDiKqr
         Bg/kFvjdDn/TCA5ZdjDGdet53V0Mn+JmJrugQfUZwj+fCil3tsBvAiNznacO5qqT2T00
         5tmCzDasishcuyUGbG9wbZ7tSsz57egx/qR9lOZAxhTtxuxPk6tzsqyMIbvOigb2nPLG
         F7hQ==
X-Gm-Message-State: AOJu0YxWeI70Gy3xZct8qK32Y3AYcwUWmBxiltk3sEhvuuYtKxGzEQm9
	1ELOXSNBDncxqXh8F1Xwg2ql
X-Google-Smtp-Source: AGHT+IFtWhVqG/9DdiZ1YhA26EGQVqsM8AoUCmR9BBWjh/8RTT4HrK+4hL22GenoWSccw7if8b3nPQ==
X-Received: by 2002:a05:600c:1391:b0:40b:5e4a:4068 with SMTP id u17-20020a05600c139100b0040b5e4a4068mr208296wmf.136.1701764801096;
        Tue, 05 Dec 2023 00:26:41 -0800 (PST)
Message-ID: <a801a2da-6cb7-41df-929e-a4521d581d9d@suse.com>
Date: Tue, 5 Dec 2023 09:26:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/domain: fix error path in domain_create()
Content-Language: en-US
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: 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>,
 xen-devel@lists.xenproject.org
References: <20231205032918.3656211-1-stewart.hildebrand@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: <20231205032918.3656211-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2023 04:29, Stewart Hildebrand wrote:
> If rangeset_new() fails, err would not be set to an appropriate error
> code. Set it to -ENOMEM.
> 
> Fixes: 580c458699e3 ("xen/domain: Call arch_domain_create() as early as possible in domain_create()")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 05 08:50:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 08:50:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647466.1010619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAR8h-0002qk-E4; Tue, 05 Dec 2023 08:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647466.1010619; Tue, 05 Dec 2023 08: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 1rAR8h-0002qd-BZ; Tue, 05 Dec 2023 08:50:47 +0000
Received: by outflank-mailman (input) for mailman id 647466;
 Tue, 05 Dec 2023 08:50: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=7WXV=HQ=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rAR8g-0002qX-UM
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 08:50:47 +0000
Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com
 [2607:f8b0:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5fcce299-934b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 09:50:44 +0100 (CET)
Received: by mail-pl1-x631.google.com with SMTP id
 d9443c01a7336-1cfc9c4acb6so23546585ad.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 00:50:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5fcce299-934b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701766243; x=1702371043; 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=KxsmGtDRn1Wo9Fz8BQwrLB7AzZJnt699cGgqD5Tx4tA=;
        b=YldaX+KgIkUZS4udJ0P4K/PcMHWIrWjimW6Qlb7U3GdXsyM2HC1obiOU55803J6Wu4
         aGun/fUlnXAZrpBG5EJtwl48SNE/0ptHNnXA2nXjBZcWaWCsrjoiZhxqfnSa5ZYBNTjs
         47o8PQmgGjyFeZ7qc7JUY3PMO/cRv/puOA6rIHU79b4LS6d0hI4k3x77vHPjq7xGcg6U
         7vWHntUY+CfwxBabJd5837Ay5sV+kMZxHK2C1jAZifP2eJlfxGXewx4c4ekWBcVRpgRG
         x7TaxmCeW+3R3ZBP+VoJs+IQnU9aJiLCmHLvzUswmyJ/2sx8m+ztR6da47wnwCJeNBj5
         1h6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701766243; x=1702371043;
        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=KxsmGtDRn1Wo9Fz8BQwrLB7AzZJnt699cGgqD5Tx4tA=;
        b=vbj7xM0+Qzs6seBoRTsTxdqdcet76KzmuG3d7sqpjcuOjqtNTnkpzgTZITy/Hdur5N
         A8LpDTz5UwQCSrjhSNxBxsFk+/qNTm3IiCU/kIxlOB53Asgx1fEsjnreKS+7WKlqwlve
         4l4RYAewPxxS2jy/AXtiLnIyW6eEkpwgubTblKHsfpQ8MIOUV4x5rmOcmdG6dWWgSuEd
         kPHVu1F55Q+8EheiGY8cBxeOpSVXJn/TgmdFjzn0fD3AkmRe37A49+7fmvoQxxxvovwx
         GR7N6P5n4Qfb89CEvLR7lGGtcWdrJs3NpDJzsbB/b2tOx1CbRnr+Lr6dYOCPHs6NM8DD
         FZ8g==
X-Gm-Message-State: AOJu0Ywmzy90boHvv5N5UYcPXGOX/hZwFfNKHk9b6lPMJTRnn6d1SEyD
	zHbn1KFD7/AcIE/fwzD64gmQ+aNgebHsG4ideWo=
X-Google-Smtp-Source: AGHT+IHHSKMXsneBOM96qZfAEML/IVvHEQopHpJ980yMSrEsuJy2GoQigxvPbynVtnekTWzA2e5YxiKa168qB4jamwY=
X-Received: by 2002:a17:90a:e2ce:b0:286:6cc0:886e with SMTP id
 fr14-20020a17090ae2ce00b002866cc0886emr617165pjb.91.1701766242581; Tue, 05
 Dec 2023 00:50:42 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
In-Reply-To: <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Tue, 5 Dec 2023 09:50:31 +0100
Message-ID: <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000614288060bbf54c2"

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

Any direction on how I can enhance the debugging at the kernel level ?

There was an old issue with amd_gpio there :
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1971597
Coud the kernel be confused by IRQ/GSI mapping ? Any way to test this
hypothesis?

Thanks




Le mar. 5 d=C3=A9c. 2023 =C3=A0 09:17, Jan Beulich <jbeulich@suse.com> a =
=C3=A9crit :

> On 04.12.2023 20:17, S=C3=A9bastien Chaumat wrote:
> > Le lun. 4 d=C3=A9c. 2023 =C3=A0 10:06, Jan Beulich <jbeulich@suse.com> =
a =C3=A9crit :
> >
> >> On 03.12.2023 10:56, S=C3=A9bastien Chaumat wrote:
> >>> Hello,
> >>>
> >>>  Trying to get the Framework Laptop 13 AMD to work with QubesOS I hit
> the
> >>> following Xen issue :
> >>>
> >>> Xen version : 4.17.2
> >>
> > + tested with 4.18.0
> >
> >
> >>> Kernel : 6.5.12-300.fc39.x86_64
> >>> CPU  model name : AMD Ryzen 7 7840U w/ Radeon  780M Graphics
> >>
> >
> >
> >>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interru=
pt
> >>
> >> Possibly releated to this. You'll want to obtain a full-verbosity
> >> hypervisor
> >> log with a debug hypervisor, as there may be hypervisor debug messages
> >> telling us what Xen may not like.
> >>
> >
> > xl dmesg with some traces attached.
>
> Nothing that looks relevant here. The anomalies are related to you also
> having enabled lock debugging and ubsan.
>
> I'm afraid this needs looking into from the kernel side first, to
> understand
> what's going wrong there. Once that's known, it'll hopefully be more clea=
r
> whether this is a Xen or a kernel issue.
>
> Jan
>

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

<div dir=3D"ltr"><div>Any direction on how I can enhance the debugging at t=
he kernel level ?</div><div><br></div><div>There was an old issue with amd_=
gpio there : <a href=3D"https://bugs.launchpad.net/ubuntu/+source/linux/+bu=
g/1971597">https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1971597</a>=
</div><div>Coud the kernel be confused by IRQ/GSI mapping ? Any way to test=
 this hypothesis?</div><div><br></div><div>Thanks<br></div><div><br></div><=
div><br></div><div><br></div></div><br><div class=3D"gmail_quote"><div dir=
=3D"ltr" class=3D"gmail_attr">Le=C2=A0mar. 5 d=C3=A9c. 2023 =C3=A0=C2=A009:=
17, Jan Beulich &lt;<a href=3D"mailto:jbeulich@suse.com">jbeulich@suse.com<=
/a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">On 04.12.2023 20:17, S=C3=A9bastien Chaumat wrote:<br>
&gt; Le lun. 4 d=C3=A9c. 2023 =C3=A0 10:06, Jan Beulich &lt;<a href=3D"mail=
to:jbeulich@suse.com" target=3D"_blank">jbeulich@suse.com</a>&gt; a =C3=A9c=
rit :<br>
&gt; <br>
&gt;&gt; On 03.12.2023 10:56, S=C3=A9bastien Chaumat wrote:<br>
&gt;&gt;&gt; Hello,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;=C2=A0 Trying to get the Framework Laptop 13 AMD to work with Q=
ubesOS I hit the<br>
&gt;&gt;&gt; following Xen issue :<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Xen version : 4.17.2<br>
&gt;&gt;<br>
&gt; + tested with 4.18.0<br>
&gt; <br>
&gt; <br>
&gt;&gt;&gt; Kernel : 6.5.12-300.fc39.x86_64<br>
&gt;&gt;&gt; CPU=C2=A0 model name : AMD Ryzen 7 7840U w/ Radeon=C2=A0 780M =
Graphics<br>
&gt;&gt;<br>
&gt; <br>
&gt; <br>
&gt;&gt;&gt; [=C2=A0 =C2=A0 2.464598] amd_gpio AMDI0030:00: failed to enabl=
e wake-up interrupt<br>
&gt;&gt;<br>
&gt;&gt; Possibly releated to this. You&#39;ll want to obtain a full-verbos=
ity<br>
&gt;&gt; hypervisor<br>
&gt;&gt; log with a debug hypervisor, as there may be hypervisor debug mess=
ages<br>
&gt;&gt; telling us what Xen may not like.<br>
&gt;&gt;<br>
&gt; <br>
&gt; xl dmesg with some traces attached.<br>
<br>
Nothing that looks relevant here. The anomalies are related to you also<br>
having enabled lock debugging and ubsan.<br>
<br>
I&#39;m afraid this needs looking into from the kernel side first, to under=
stand<br>
what&#39;s going wrong there. Once that&#39;s known, it&#39;ll hopefully be=
 more clear<br>
whether this is a Xen or a kernel issue.<br>
<br>
Jan<br>
</blockquote></div>

--000000000000614288060bbf54c2--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 08:52:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 08:52:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647468.1010630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rARAS-0003Pu-Pq; Tue, 05 Dec 2023 08:52:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647468.1010630; Tue, 05 Dec 2023 08:52:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rARAS-0003Pn-NC; Tue, 05 Dec 2023 08:52:36 +0000
Received: by outflank-mailman (input) for mailman id 647468;
 Tue, 05 Dec 2023 08:52:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rARAR-0003Pe-PF
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 08:52:35 +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 a145045b-934b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 09:52:33 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c09dfa03cso23310645e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 00:52:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 f18-20020a05600c155200b004094d4292aesm18022403wmg.18.2023.12.05.00.52.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 00:52:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a145045b-934b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701766353; x=1702371153; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Ts9bPpccPlYsKv8vzcv1tEsiLpLyS8c4dtjGIgClwaI=;
        b=bLmN7Zm2VVzb4349FVJeY7hPzILJvkbF5gTxVthGaiJBfgmsC0bjEe+9Q5+Pp733lp
         Rily0KqLsDLQz0XIrdRGY+oqwHOwPv+8SaZ1w9ncw3tvM/fRsLUJS8ytsH2nVL9vb5EY
         DbX4qtGNv9Ak868L8HTCj3ufFCuQcOwSAhVvm/3Lw2s/JQkKi2W2pa11UbFNZRSe/BSb
         fIb7HvXBehRFA1Sl0zD7ZCiTzusmSRzEuYO42Gg5DpoIodFabPuC2LSZCSGGrJ6Xro7G
         6a3b+y8qYFbctZW5E2ibgqF8fx5UaQKD5pkXO14KinLTxqgD1GzjL5EWJ06it1hJoZeg
         cCFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701766353; x=1702371153;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Ts9bPpccPlYsKv8vzcv1tEsiLpLyS8c4dtjGIgClwaI=;
        b=KoKfuHjIXQuK1+DH2SNQ+oMwh2SF8sI78Z3PmYHF0lGaOaN9eqMEMZg+7xmgiYdsxW
         F59ZQ2+9wHDNgNJLjFtut7iC3o4XYcNlp5C9fRR+XRmyHQJSK9ATQf0VxueDS+prnZCR
         Jc01BK4iDnxKm29mfSBbL5JrcAvKiEjDa0ALWNG7lLfHnylM9mkSFiz1LlXdxIGtw/l4
         gQl/TyQIujfMNYvhCGnxIg4jNbEdcg1UJ47Y5JFt7AGYWn5GCJhl8VlYpugKIMS2lDMt
         C5uiGc8478Vznlzxgtwd35FGx+x39Nwda3sxf0K39y68JYr75w+/zAuSrRHckc4X1vEf
         vkMA==
X-Gm-Message-State: AOJu0YwfYRIjhw/NnwaEg2rt9rl31tHZSekjGlvi7kfNRkwM6vkVjtit
	hG9E154whhIU/18ko1Qit2O4
X-Google-Smtp-Source: AGHT+IHPi4sbtH7ziKOYwSaRAzA2vx/pcSVZclIzOCVfdnmmulJSdEnXs7FB5EYUtVEEDsYVn86WNw==
X-Received: by 2002:a05:600c:4f12:b0:40b:5e59:c581 with SMTP id l18-20020a05600c4f1200b0040b5e59c581mr260285wmq.171.1701766352890;
        Tue, 05 Dec 2023 00:52:32 -0800 (PST)
Message-ID: <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com>
Date: Tue, 5 Dec 2023 09:52:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com> <ZW4L5Q4SMprtmbK-@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW4L5Q4SMprtmbK-@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.12.2023 18:27, Roger Pau MonnÃ© wrote:
> On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
>> ..., at least as reasonably feasible without making a check hook
>> mandatory (in particular strict vs relaxed/zero-extend length checking
>> can't be done early this way).
>>
>> Note that only one of the two uses of hvm_load() is accompanied with
>> hvm_check(). The other directly consumes hvm_save() output, which ought
>> to be well-formed. This means that while input data related checks don't
>> need repeating in the "load" function when already done by the "check"
>> one (albeit assertions to this effect may be desirable), domain state
>> related checks (e.g. has_xyz(d)) will be required in both places.
>>
>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Do we really need all the copying involved in use of _hvm_read_entry()
>> (backing hvm_load_entry()? Zero-extending loads are likely easier to
>> handle that way, but for strict loads all we gain is a reduced risk of
>> unaligned accesses (compared to simply pointing into h->data[]).
> 
> See below, but I wonder whether the checks could be performed as part
> of hvm_load() without having to introduce a separate handler and loop
> over the context entries.

Specifically not. State loading (in the longer run) would better not fail
once started. (Imo it should have been this way from the beginning.) Only
then will the vCPU still be in a predictable state even after a possible
error.

>> Would the hvm_sr_handlers[] better use array_access_nospec()?
> 
> Maybe?  Given this is a domctl I do wonder whether a domain already
> having access to such interface won't have easier ways to leak data
> from Xen.  Maybe for a disaggregated setup.

Hmm, now we're in the middle - Andrew effectively said "no need to".

>> @@ -275,6 +281,78 @@ int hvm_save(struct domain *d, hvm_domai
>>      return 0;
>>  }
>>  
>> +int hvm_check(const struct domain *d, hvm_domain_context_t *h)
>> +{
>> +    const struct hvm_save_header *hdr;
>> +    int rc;
>> +
>> +    if ( d->is_dying )
>> +        return -EINVAL;
>> +
>> +    /* Get at the save header, which must be first. */
>> +    hdr = hvm_get_entry(HEADER, h);
>> +    if ( !hdr )
>> +        return -ENODATA;
>> +
>> +    rc = arch_hvm_check(d, hdr);
>> +    if ( rc )
>> +        return rc;
>> +
>> +    for ( ; ; )
>> +    {
>> +        const struct hvm_save_descriptor *desc;
>> +        hvm_check_handler handler;
>> +
>> +        if ( h->size - h->cur < sizeof(*desc) )
>> +        {
>> +            /* Run out of data */
>> +            printk(XENLOG_G_ERR
>> +                   "HVM restore %pd: save did not end with a null entry\n",
>> +                   d);
>> +            return -ENODATA;
>> +        }
>> +
>> +        /* Read the typecode of the next entry and check for the end-marker. */
>> +        desc = (const void *)&h->data[h->cur];
>> +        if ( desc->typecode == HVM_SAVE_CODE(END) )
>> +        {
>> +            /* Reset cursor for hvm_load(). */
>> +            h->cur = 0;
>> +            return 0;
>> +        }
>> +
>> +        /* Find the handler for this entry. */
>> +        if ( desc->typecode >= ARRAY_SIZE(hvm_sr_handlers) ||
>> +             !hvm_sr_handlers[desc->typecode].name ||
>> +             !hvm_sr_handlers[desc->typecode].load )
>> +        {
>> +            printk(XENLOG_G_ERR "HVM restore %pd: unknown entry typecode %u\n",
>> +                   d, desc->typecode);
>> +            return -EINVAL;
>> +        }
>> +
>> +        /* Check the entry. */
>> +        handler = hvm_sr_handlers[desc->typecode].check;
>> +        if ( !handler )
>> +        {
>> +            if ( desc->length > h->size - h->cur - sizeof(*desc) )
>> +                return -ENODATA;
>> +            h->cur += sizeof(*desc) + desc->length;
>> +        }
>> +        else if ( (rc = handler(d, h)) )
>> +        {
>> +            printk(XENLOG_G_ERR
>> +                   "HVM restore %pd: failed to check %s:%u rc %d\n",
>> +                   d, hvm_sr_handlers[desc->typecode].name, desc->instance, rc);
>> +            return rc;
>> +        }
>> +
>> +        process_pending_softirqs();
> 
> Looking at this, won't it be better to call the check() hooks inside
> the hvm_load() function instead of duplicating the loop?
> 
> I realize that you only perform the checks when the state is loaded
> from a domctl, but still seems quite a lot of code duplication for
> little benefit.
> 
> hvm_load() could gain an extra parameter to select whether the input
> must be checked or not, and that would avoid having to iterate twice
> over the context.

Well, see above.

>> +    }
>> +
>> +    /* Not reached */
> 
> ASSERT_UNREACHABLE() maybe?

Hmm, I'd find it kind of odd to have such here. While hvm_load() doesn't
have such either, perhaps that's not a meaningful reference. Adding this
would make me fear introducing a Misra violation (adding dead code).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 08:56:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 08:56:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647473.1010639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rARDw-0004Jz-CN; Tue, 05 Dec 2023 08:56:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647473.1010639; Tue, 05 Dec 2023 08:56: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 1rARDw-0004Js-9j; Tue, 05 Dec 2023 08:56:12 +0000
Received: by outflank-mailman (input) for mailman id 647473;
 Tue, 05 Dec 2023 08:56: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 1rARDv-0004Gr-2E; Tue, 05 Dec 2023 08:56: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 1rARDu-0000SH-R9; Tue, 05 Dec 2023 08:56: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 1rARDu-00068N-GS; Tue, 05 Dec 2023 08:56:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rARDu-0007Yw-G5; Tue, 05 Dec 2023 08:56: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=EGazK5tQo2Smdmcg3kdgltSqKhz52xpVSIchP+tifdI=; b=fMA8CrwDOxqWYmbymyMPK2Wsol
	HletvNAX/OLtSSqXEklp3/hN4vVEAykqMyirQckbOIxaxExiJGNL6INtkRoOc7y+dAw3GkRE3ZX6m
	p5Rl8ygLjMopXHrodGWVMZ3S7TtBILl2iDjZ1n7YkBpdwOVU8ON9kBWN6/VbUeOf9c38=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183989-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183989: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl:xen-boot:fail:heisenbug
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm: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-raw: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=33cc938e65a98f1d29d0a18403dbbee050dcad9a
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 05 Dec 2023 08:56:10 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt      8 xen-boot         fail in 183984 pass in 183989
 test-armhf-armhf-xl           8 xen-boot         fail in 183984 pass in 183989
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 183984

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-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          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-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                33cc938e65a98f1d29d0a18403dbbee050dcad9a
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    3 days
Failing since        183977  2023-12-03 00:12:06 Z    2 days    6 attempts
Testing same since   183981  2023-12-03 18:14:02 Z    1 days    4 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  David Howells <dhowells@redhat.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Jens Axboe <axboe@kernel.dk>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Namjae Jeon <linkinjeon@kernel.org>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Sean Christopherson <seanjc@google.com>
  Steve French <stfrench@microsoft.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 750 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 09:19:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 09:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647486.1010649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rARaG-0001Hs-8i; Tue, 05 Dec 2023 09:19:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647486.1010649; Tue, 05 Dec 2023 09: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 1rARaG-0001Hl-6C; Tue, 05 Dec 2023 09:19:16 +0000
Received: by outflank-mailman (input) for mailman id 647486;
 Tue, 05 Dec 2023 09: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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rARaF-0001Hf-5A
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 09:19:15 +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 59f8af17-934f-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 10:19:11 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3334d9b57adso1110799f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 01:19:12 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 y9-20020adfee09000000b0033335d9dcc5sm9368477wrn.64.2023.12.05.01.19.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 01:19:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59f8af17-934f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701767952; x=1702372752; 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=F+VP6WQcIrsDH0Zff4QJsWWwMzTosRIH5yRoGDbkymE=;
        b=Pn4BrK8znYeapcVvCktadoiNLmfAmzqnB8uKG6dsbbRw0FY1YfssWSM6ZwipQOq19U
         1XzEzZ4HYw+SIvb699ejoL9752CvMxF2+fhfwvWQUxy5digeNw4a2yIzThP4FRAt6iDR
         ln32sFy8OShDBGAvvUzXccvudf0eIOPbOjXik=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701767952; x=1702372752;
        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=F+VP6WQcIrsDH0Zff4QJsWWwMzTosRIH5yRoGDbkymE=;
        b=jC4NvrTiFedjqmhNjmX3qnrr2nnfXZTeMCZ0Bc3gddVNQcD0JefKAjJUaZnTd0Wzc1
         LbmOomtywMn4ZVaIZRPwO9Yu5x4UAKNaPHacVfn3jUDALNftXf3CcyzwFYxwuHFS+YGn
         I4SYWKo5fV5X4oYTPfgvawYnKuT86d3s+MwNNlTHFUWG4PyN0IVFVsvJwZRxud8a+/zf
         lpyS5gQ9KoGO1PhX6U5va3h6fWNoGpJBbkdcD/9sncibMpCtfCzL89I6cZkcG4faiBrJ
         1YIzOmR6sALumV9TIonVquqkthz6IxHc/JfdtEdWqjPb8izAGTwFfeak22lUHHPrpw+b
         iJwQ==
X-Gm-Message-State: AOJu0Yx2Q1dpVUtuR65ru7U2nqN+uu8gRO4ztqjaaRo+BeYweDBvbwla
	fp+73HsAa/GFsdcirR+g/aSQFg==
X-Google-Smtp-Source: AGHT+IH0uFCOxhNtL6FLq9N1oklrCee2yHoZBcq3run0oKQF7DG7u5oqm1pNNQSbuJDMHpPEvAaJEw==
X-Received: by 2002:adf:e78a:0:b0:333:2fd2:812c with SMTP id n10-20020adfe78a000000b003332fd2812cmr4009412wrm.73.1701767951928;
        Tue, 05 Dec 2023 01:19:11 -0800 (PST)
Date: Tue, 5 Dec 2023 10:19:10 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Cc: Jiqian Chen <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
	linux-acpi@vger.kernel.org,
	Stefano Stabellini <stefano.stabellini@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Christian Koenig <Christian.Koenig@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Message-ID: <ZW7rDjjC0gxEI1cq@macbook>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>

On Mon, Dec 04, 2023 at 02:19:33PM -0800, Stefano Stabellini wrote:
> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
> > On Fri, Dec 01, 2023 at 07:37:55PM -0800, Stefano Stabellini wrote:
> > > On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> > > > On Thu, Nov 30, 2023 at 07:15:17PM -0800, Stefano Stabellini wrote:
> > > > > On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> > > > > > On Wed, Nov 29, 2023 at 07:53:59PM -0800, Stefano Stabellini wrote:
> > > > > > > On Fri, 24 Nov 2023, Jiqian Chen wrote:
> > > > > > > > This patch is to solve two problems we encountered when we try to
> > > > > > > > passthrough a device to hvm domU base on Xen PVH dom0.
> > > > > > > > 
> > > > > > > > First, hvm guest will alloc a pirq and irq for a passthrough device
> > > > > > > > by using gsi, before that, the gsi must first has a mapping in dom0,
> > > > > > > > see Xen code pci_add_dm_done->xc_domain_irq_permission, it will call
> > > > > > > > into Xen and check whether dom0 has the mapping. See
> > > > > > > > XEN_DOMCTL_irq_permission->pirq_access_permitted, "current" is PVH
> > > > > > > > dom0 and it return irq is 0, and then return -EPERM.
> > > > > > > > This is because the passthrough device doesn't do PHYSDEVOP_map_pirq
> > > > > > > > when thay are enabled.
> > > > > > > > 
> > > > > > > > Second, in PVH dom0, the gsi of a passthrough device doesn't get
> > > > > > > > registered, but gsi must be configured for it to be able to be
> > > > > > > > mapped into a domU.
> > > > > > > > 
> > > > > > > > After searching codes, we can 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 problems
> > > > > > > > can be conclude to that the gsi of a passthrough device doesn't be
> > > > > > > > unmasked.
> > > > > > > > 
> > > > > > > > To solve the unmaske problem, this patch call the unmask_irq when we
> > > > > > > > assign a device to be passthrough. So that the gsi can get registered
> > > > > > > > and mapped in PVH dom0.
> > > > > > > 
> > > > > > > 
> > > > > > > Roger, this seems to be more of a Xen issue than a Linux issue. Why do
> > > > > > > we need the unmask check in Xen? Couldn't we just do:
> > > > > > > 
> > > > > > > 
> > > > > > > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> > > > > > > index 4e40d3609a..df262a4a18 100644
> > > > > > > --- a/xen/arch/x86/hvm/vioapic.c
> > > > > > > +++ b/xen/arch/x86/hvm/vioapic.c
> > > > > > > @@ -287,7 +287,7 @@ static void vioapic_write_redirent(
> > > > > > >              hvm_dpci_eoi(d, gsi);
> > > > > > >      }
> > > > > > >  
> > > > > > > -    if ( is_hardware_domain(d) && unmasked )
> > > > > > > +    if ( is_hardware_domain(d) )
> > > > > > >      {
> > > > > > >          /*
> > > > > > >           * NB: don't call vioapic_hwdom_map_gsi while holding hvm.irq_lock
> > > > > > 
> > > > > > There are some issues with this approach.
> > > > > > 
> > > > > > mp_register_gsi() will only setup the trigger and polarity of the
> > > > > > IO-APIC pin once, so we do so once the guest unmask the pin in order
> > > > > > to assert that the configuration is the intended one.  A guest is
> > > > > > allowed to write all kind of nonsense stuff to the IO-APIC RTE, but
> > > > > > that doesn't take effect unless the pin is unmasked.
> > > > > > 
> > > > > > Overall the question would be whether we have any guarantees that
> > > > > > the hardware domain has properly configured the pin, even if it's not
> > > > > > using it itself (as it hasn't been unmasked).
> > > > > > 
> > > > > > IIRC PCI legacy interrupts are level triggered and low polarity, so we
> > > > > > could configure any pins that are not setup at bind time?
> > > > > 
> > > > > That could work.
> > > > > 
> > > > > Another idea is to move only the call to allocate_and_map_gsi_pirq at
> > > > > bind time? That might be enough to pass a pirq_access_permitted check.
> > > > 
> > > > Maybe, albeit that would change the behavior of XEN_DOMCTL_bind_pt_irq
> > > > just for PT_IRQ_TYPE_PCI and only when called from a PVH dom0 (as the
> > > > parameter would be a GSI instead of a previously mapped IRQ).  Such
> > > > difference just for PT_IRQ_TYPE_PCI is slightly weird - if we go that
> > > > route I would recommend that we instead introduce a new dmop that has
> > > > this syntax regardless of the domain type it's called from.
> > > 
> > > Looking at the code it is certainly a bit confusing. My point was that
> > > we don't need to wait until polarity and trigger are set appropriately
> > > to allow Dom0 to pass successfully a pirq_access_permitted() check. Xen
> > > should be able to figure out that Dom0 is permitted pirq access.
> > 
> > The logic is certainly not straightforward, and it could benefit from
> > some comments.
> > 
> > The irq permissions are a bit special, in that they get setup when the
> > IRQ is mapped.
> > 
> > The problem however is not so much with IRQ permissions, that we can
> > indeed sort out internally in Xen.  Such check in dom0 has the side
> > effect of preventing the IRQ from being assigned to a domU without the
> > hardware source being properly configured AFAICT.
> 
> Now I understand why you made a comment previously about Xen having to
> configure trigger and polarity for these interrupts on its own.
> 
> 
> > > So the idea was to move the call to allocate_and_map_gsi_pirq() earlier
> > > somewhere because allocate_and_map_gsi_pirq doesn't require trigger or
> > > polarity to be configured to work. But the suggestion of doing it a
> > > "bind time" (meaning: XEN_DOMCTL_bind_pt_irq) was a bad idea.
> > > 
> > > But maybe we can find another location, maybe within
> > > xen/arch/x86/hvm/vioapic.c, to call allocate_and_map_gsi_pirq() before
> > > trigger and polarity are set and before the interrupt is unmasked.
> > > 
> > > Then we change the implementation of vioapic_hwdom_map_gsi to skip the
> > > call to allocate_and_map_gsi_pirq, because by the time
> > > vioapic_hwdom_map_gsi we assume that allocate_and_map_gsi_pirq had
> > > already been done.
> > 
> > But then we would end up in a situation where the
> > pirq_access_permitted() check will pass, but the IO-APIC pin won't be
> > configured, which I think it's not what we want.
> > 
> > One option would be to allow mp_register_gsi() to be called multiple
> > times, and update the IO-APIC pin configuration as long as the pin is
> > not unmasked.  That would propagate each dom0 RTE update to the
> > underlying IO-APIC.  However such approach relies on dom0 configuring
> > all possible IO-APIC pins, even if no device on dom0 is using them, I
> > think it's not a very reliable option.
> > 
> > Another option would be to modify the toolstack to setup the GSI
> > itself using the PHYSDEVOP_setup_gsi hypercall.  As said in a previous
> > email, since we only care about PCI device passthrough the legacy INTx
> > should always be level triggered and low polarity.
> > 
> > > I am not familiar with vioapic.c but to give you an idea of what I was
> > > thinking:
> > > 
> > > 
> > > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> > > index 4e40d3609a..16d56fe851 100644
> > > --- a/xen/arch/x86/hvm/vioapic.c
> > > +++ b/xen/arch/x86/hvm/vioapic.c
> > > @@ -189,14 +189,6 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,
> > >          return ret;
> > >      }
> > >  
> > > -    ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
> > > -    if ( ret )
> > > -    {
> > > -        gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
> > > -                 gsi, ret);
> > > -        return ret;
> > > -    }
> > > -
> > >      pcidevs_lock();
> > >      ret = pt_irq_create_bind(currd, &pt_irq_bind);
> > >      if ( ret )
> > > @@ -287,6 +279,17 @@ static void vioapic_write_redirent(
> > >              hvm_dpci_eoi(d, gsi);
> > >      }
> > >  
> > > +    if ( is_hardware_domain(d) ) 
> > > +    {
> > > +        int pirq = gsi, ret;
> > > +        ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
> > > +        if ( ret )
> > > +        {
> > > +            gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
> > > +                    gsi, ret);
> > > +            return ret;
> > > +        }
> > > +    }
> > >      if ( is_hardware_domain(d) && unmasked )
> > >      {
> > >          /*
> > 
> > As said above, such approach relies on dom0 writing to the IO-APIC RTE
> > of likely each IO-APIC pin, which is IMO not quite reliable.  In there
> > are two different issues here that need to be fixed for PVH dom0:
> > 
> >  - Fix the XEN_DOMCTL_irq_permission pirq_access_permitted() call to
> >    succeed for a PVH dom0, even if dom0 is not using the GSI itself.
> 
> Yes makes sense
> 
> 
> >  - Configure IO-APIC pins for PCI interrupts even if dom0 is not using
> >    the IO-APIC pin itself.
> > 
> > First one needs to be fixed internally in Xen, second one will require
> > the toolstack to issue an extra hypercall in order to ensure the
> > IO-APIC pin is properly configured.
>  
> On ARM, Xen doesn't need to wait for dom0 to configure interrupts
> correctly. Xen configures them all on its own at boot based on Device
> Tree information. I guess it is not possible to do the same on x86?

No, not exactly.  There's some interrupt information in the ACPI MADT,
but that's just for very specific sources (Interrupt Source Override
Structures)

Then on AML devices can have resource descriptors that contain
information about how interrupts are setup.  However Xen is not able
to read any of this information on AML.

Legacy PCI interrupts are (always?) level triggered and low polarity,
because it's assumed that an interrupt source can be shared between
multiple devices.

I'm however not able to find any reference to this in the PCI spec,
hence I'm reluctant to take this for granted in Xen, and default all
GSIs >= 16 to such mode.

OTOH legacy PCI interrupts are not that used anymore, as almost all
devices will support MSI(-X) (because PCIe mandates it) and OSes
should prefer the latter.  SR-IOV VF don't even support legacy PCI
interrupts anymore.

> If
> not, then I can see why we would need 1 extra toolstack hypercall for
> that (or to bundle the operation of configuring IO-APIC pins together
> with an existing toolstack hypercall).

One suitable compromise would be to default unconfigured GSIs >= 16 to
level-triggered and low-polarity, as I would expect that to work in
almost all cases.  We can always introduce the usage of
PHYSDEVOP_setup_gsi later if required.

Maybe Jan has more input here, would you agree to defaulting non-ISA
GSIs to level-triggered, low-polarity in the absence of a specific
setup provided by dom0?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 09:26:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 09:26:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647494.1010660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rARhH-0003Hl-56; Tue, 05 Dec 2023 09:26:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647494.1010660; Tue, 05 Dec 2023 09:26: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 1rARhH-0003He-1w; Tue, 05 Dec 2023 09:26:31 +0000
Received: by outflank-mailman (input) for mailman id 647494;
 Tue, 05 Dec 2023 09:26: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=7WXV=HQ=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rARhF-0003FZ-5Y
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 09:26:29 +0000
Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com
 [2607:f8b0:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c8b8772-9350-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 10:26:26 +0100 (CET)
Received: by mail-pl1-x631.google.com with SMTP id
 d9443c01a7336-1cfabcbda7bso28050745ad.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 01:26:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c8b8772-9350-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701768385; x=1702373185; 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=voHcd0iBeVOiIUr12oMDfA/1qeN2WgYey00aesmGlW0=;
        b=PcIz0EDvjywn4ueO2owHWhcl7dqsG98gJ3Ucw0F7Au3M5UM578M694TWCB0cyedb0U
         tRkbQmLyFW5BggPD185P4Ut4rK5M54t6HklZLhRZqy7zbbQ4hVe36V6+ED1K5qks4HrZ
         CYgT/UE8Y9u0gnISpffogYZVGbJrikhsNKP2mMy/5E6a6zCMWnoNmU8TxFSFrCbq0qnE
         ksr5rjvnQPQlQ295ck3OruDZcl1cOpXMvs39xY5m7ZoLQ59Uy78c3NhmbOSV6C6ZHgAc
         VAF8CzAeeztlOB3OoZI+8W4TVysI3N1zM3J+RqToAMhebofpe5QRoXMv+xHyaxD7Epb/
         7x9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701768385; x=1702373185;
        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=voHcd0iBeVOiIUr12oMDfA/1qeN2WgYey00aesmGlW0=;
        b=Daa6FC7pSlVjGN50pHGw9ISIxA3feSBOJaqsihSHfGjDHNVOxl7uQkR0aQO1Qxz5FG
         ET4GzvfKEpBKno/3ELfSxyEoVdGf9Yit8x76oGW1GD5Ifg8CIV76r6EkMjozPk7s9Otd
         VZr7dVMO76sOpQKqEKS6ePs358/vk8d1oYAxLW12KAiUDj6Bd/jNejIZxtLnpPIrStVl
         b4xdTFBLwTm86eptbrS9r5S9NAKybnYBl1bN579elr83f+pi79C8OcxeeXku5sNokgwT
         9IqgX9bvvAnfpsqa2FiepOrcPvUq4wDX4fhvyw7x4+K/AKOD3iIbVrG9MfiJBw1GHsD8
         RhDQ==
X-Gm-Message-State: AOJu0YxhJ4bVEQbYOpbWwGP+mptQwRyAs41ZxqI7hK8FdJOaVuXJEPUP
	CHhMz4AzYEUYYsHUH9tEoI47GeEuOHD6nxpLgIIVS0hYjhU=
X-Google-Smtp-Source: AGHT+IGja+HfhBZE/j6ZG6VZCOUd9/fczlAB4bfibiPwIeu5E/nj7NXbE1lToWpSUYRTSaM2k6m+msSCbN8IdXBFykI=
X-Received: by 2002:a17:90a:2a0a:b0:286:b6c0:e0ea with SMTP id
 i10-20020a17090a2a0a00b00286b6c0e0eamr1115349pjd.24.1701768385398; Tue, 05
 Dec 2023 01:26:25 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
In-Reply-To: <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Tue, 5 Dec 2023 10:26:14 +0100
Message-ID: <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Le mar. 5 d=C3=A9c. 2023 =C3=A0 09:50, S=C3=A9bastien Chaumat <euidzero@gma=
il.com> a =C3=A9crit :
>
> Any direction on how I can enchance the debugging at the kernel level ?
>
> There was an old issue with amd_gpio there : https://bugs.launchpad.net/u=
buntu/+source/linux/+bug/1971597
> Coud the kernel be confused by IRQ/GSI mapping ? Any way to test this hyp=
othesis?
>

Interestingly only one result when searching for the amg_gpio " failed
to enable wake-up interrupt" message :

in the dmesg attached to thread about Ryzen 6000 :
 https://lists.xenproject.org/archives/html/xen-devel/2022-08/msg00927.html


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 09:29:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 09:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647500.1010669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rARjj-0004JW-NF; Tue, 05 Dec 2023 09:29:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647500.1010669; Tue, 05 Dec 2023 09: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 1rARjj-0004JP-KT; Tue, 05 Dec 2023 09:29:03 +0000
Received: by outflank-mailman (input) for mailman id 647500;
 Tue, 05 Dec 2023 09:29: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=ibAO=HQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rARji-0004JI-8E
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 09:29:02 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20611.outbound.protection.outlook.com
 [2a01:111:f400:7e88::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b736df63-9350-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 10:28:58 +0100 (CET)
Received: from BL0PR0102CA0013.prod.exchangelabs.com (2603:10b6:207:18::26) by
 SA0PR12MB7091.namprd12.prod.outlook.com (2603:10b6:806:2d5::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 09:28:56 +0000
Received: from BL02EPF0001A108.namprd05.prod.outlook.com
 (2603:10b6:207:18:cafe::5a) by BL0PR0102CA0013.outlook.office365.com
 (2603:10b6:207:18::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Tue, 5 Dec 2023 09:28:55 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A108.mail.protection.outlook.com (10.167.241.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 09:28:55 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 5 Dec
 2023 03:28:49 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 5 Dec
 2023 03:28:26 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Tue, 5 Dec 2023 03:28:24 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b736df63-9350-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cONGvRPHnyBpBCvvll0wc2MW15pL2VkCN0Kt+t+TL8/1JtdXYvhUx16P5fU8TAavJ0zhTeJCgbLjwrRBJaLtO2Kc4B4dCX1gd+0E1Sx02QKAEW6ZQBu6S+f1ZY77we/zQQ+AkU/9x/aclao4RJPPl8AMuSbnT07KF++txeQd3OO5svTmzmUCct1TnM2cRokVeYdrvS+0Yj6cg0VUKYx9MW++mJ4CgY+SqbPutDUOoXTKccEO40Da2gz24BsZI7VfrAZPZnCHQide8PQyMFuVzemf/UCdrGKmBGh0Z7EucDolYtFxbtuWvYwmztkHsTdODd/rVtxjnhzaAk3iDpgNZg==
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=Dq/eWD7ZR+Cw6TfOCj2wmsrt2b/CaEMZES+ozWudqqc=;
 b=oTvWk6tRu4e1fm1k/dmgy/JOvggsA+1aUOAOtj7qj/b9hBHVo8Fk6KirzZ/qoXP+1YSAgOoOLN9BtO+RaocqUAFbyz5S9HLBSKe9leuIUbsWftmfEHv3CNpYTn4B807JHmlkU+69tduBTa3QWZmYXmdSHe0DUJ7B4+pfDNO9WZ+jNYf/YnJKWvIJGNA96EWYj4mQ5n9cgcisMXwE6ByXtAosyOuNISg3WlFpxoH92JnXqUi4IBVGUeEN/XO6Hblo3EFS09i4M5p8kg6duZECAZaV29IEyLVL9EsrCRzCWIgYcdwTalXmuhwvLXpYp1nR9g3IY+UWwGR2Y2dnQD9a8A==
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=Dq/eWD7ZR+Cw6TfOCj2wmsrt2b/CaEMZES+ozWudqqc=;
 b=bWuE9Ryk2lEGCa0VHg3IGyQdXMYgeRRErK+RdjsHuFZtAzNd5MDz+1Z+olQVWn6TdXnsxmUVvK2jtT5Sre7scOellbRE6QHWyFT6zEUmZkUuqi2yrwrPDfgTVFYjmHsAsx8iLV4zsoDGSUzchuWJs2bEO5xPbA+XImLQdkCouEw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
Date: Tue, 5 Dec 2023 10:28:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-US
To: Julien Grall <julien@xen.org>, Ayan Kumar Halder <ayankuma@amd.com>, "Ayan
 Kumar Halder" <ayan.kumar.halder@amd.com>, <sstabellini@kernel.org>,
	<stefano.stabellini@amd.com>, <bertrand.marquis@arm.com>,
	<Volodymyr_Babchuk@epam.com>
CC: <xen-devel@lists.xenproject.org>
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A108:EE_|SA0PR12MB7091:EE_
X-MS-Office365-Filtering-Correlation-Id: e8fa365c-3e38-4e60-8824-08dbf5749a22
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	RLXMm4PFZxzCALMiPbfB4F2e83ZLWN46OF7QpRuUn8rEC7eQdZLEuiYxoI7La1ja9W4rY4ZCRSO5X5KuOv2cejivfpmkeRyXsQ5goSU3Smfw61k8LWKsMgYDh4hIUhL+L5++5I9N7s8m+KyplFmf9byioFHi/U3Em4XzPbc6JoL1GxYoYw/BZg/vAzXJrIAsxMUCDCavA2pwaDyTR33KEY2YUKQ9ztubHnmwytsu9qOssKMb5IENU8MwaaV2HAb/dIS9lQ6pCLoM9wXVCg2M4mMlj/VGDKfh1eizvtbeB4BiKHTka+huF6oMk6oxY+eoi92H7lqygewKn8M9XiNsBL9Fb4zl9syBsrOj+QwcU1HBN3gstZcN4xW+9fgrcwVobc+4FDSvn0aQ/TXgAMvxJ4OL9br1f6P3CGI7GiVrt/aoPLNFpj+2oUVa9/AkVyYZm9DUmRNfo55MODFbDcp88YbR7JPnPIpDBYathlhdDkCtmwNMeXaAzEN6QtuBF3cbq+XPIdMy9MoLkcoLT7PEgXb3ijt+nqRys5rXmTR7tIt6kwQPP3APT3ozoKi09dS+DUSIxpnAaYUpZNn2G3B/o2b/Zmew8JCB5c6DILVkzJPY30VM470ErNkUFjFaYJSCnPxxBwGWNseOU3WVwYYzpz4p7paVbr71ifzxjBvMZkvDexMZfapuc9BghOPRoz0J0sQdnCIdPHNbL/Ju4Gr0jZZ8FUh8LRZoBtrY+emovi7+djj6mwzlS9J7pZZh6ChNbE91RE2z75fXGzjLCifk4O83CqWvt527xLWmAhjgdMxVxa5vDVVrUpxK4wVIutQQuELpdmSq340m+1lV7L1r2euetXFUdVVtXWzvIts+dCbyfjc8IQXJt6TVjlsZhCju
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(376002)(346002)(39860400002)(136003)(230173577357003)(230273577357003)(230922051799003)(82310400011)(64100799003)(186009)(451199024)(1800799012)(46966006)(36840700001)(40470700004)(26005)(40480700001)(82740400003)(81166007)(356005)(83380400001)(336012)(426003)(36756003)(36860700001)(47076005)(53546011)(41300700001)(2616005)(31686004)(6666004)(40460700003)(2906002)(31696002)(86362001)(44832011)(16576012)(70206006)(70586007)(110136005)(5660300002)(316002)(8936002)(478600001)(8676002)(4326008)(2101003)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 09:28:55.3397
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e8fa365c-3e38-4e60-8824-08dbf5749a22
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A108.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7091

Hi Julien,

On 04/12/2023 20:55, Julien Grall wrote:
> 
> 
> On 04/12/2023 13:02, Ayan Kumar Halder wrote:
>>
>> On 04/12/2023 10:31, Julien Grall wrote:
>>> Hi Ayan,
>> Hi Julien,
>>>
>>> On 01/12/2023 18:50, Ayan Kumar Halder wrote:
>>>> Currently if user enables HVC_DCC config option in Linux, it invokes
>>>> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
>>>> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
>>>> an undefined exception to the guest. And Linux crashes.
>>>
>>> I am missing some data points here to be able to say whether I would
>>> be ok with emulating the registers. So some questions:
>>>   * As you wrote below, HVC_DCC will return -ENODEV after this
>>> emulation. So may I ask what's the use case to enable it? (e.g. is
>>> there a distro turning this on?)
>>
>> I am not aware of any distro using (or not using) this feature. This
>> issue came to light during our internal testing, when HVC_DCC was
>> enabled to use the debug console. When Linux runs without Xen, then we
>> could observe the logs on the debug console. When Linux was running as a
>> VM, it crashed.
>>
>> My intention here was to do the bare minimum emulation so that the crash
>> could be avoided.
> This reminds me a bit the discussion around "xen/arm64: Decode ldr/str
> post increment operations". I don't want Xen to contain half-backed
> emulation just to please an OS in certain configuration that doesn't
> seem to be often used.
> 
> Also, AFAICT, KVM is in the same situation...
Well, KVM is not in the same situation. It emulates all DCC regs as RAZ/WI, so there
will be no fault on an attempt to access the DCC.

In general, I think that if a register is not optional and does not depend on other register
to be checked first (e.g. a feature/control register we emulate), which implies that it is fully ok for a guest to
access it directly - we should at least try to do something not to crash a guest.

I agree that this feature is not widely used. In fact I can only find it implemented in Linux and U-BOOT
and the issue I found in DBGDSCRINT (no access from EL0, even though we emulate REXT.UDCCdis as 0) only
proves that. At the same time, it does not cost us much to add this trivial support.

> 
> Given this is internal testing, have you considered to ask them to
> disable HVC_DCC?
> 
>>
>>>  * Linux is writing to the registers unconditionally, but is the spec
>>> mandating the implementation of the registers? (I couldn't find either
>>> way)
>>
>>  From ARM DDI 0487I.a ID081822, H1.2, External debug,
>>
>> "The Debug Communications Channel, DCC, passes data between the PE and
>> the debugger:
>>
>> â€” The DCC includes the data transfer registers, DTRRX and DTRTX, and
>> associated flow-control flags.
>>
>> â€” Although the DCC is an essential part of Debug state operation, it can
>> also be used in Non-debug state."
>>
>>  From this I infer that the spec mandates the implementation of these
>> registers. IOW, these registers should always be present in any Arm
>> compliant SoC.
>>
>>>  * When was this check introduced in Linux? Did it ever changed?
>>>
>> This check was introduced in the following commit
>>
>> "commit f377775dc083506e2fd7739d8615971c46b5246e
>> Author: Rob Herring <rob.herring@calxeda.com>
>> Date:   Tue Sep 24 21:05:58 2013 -0500
>>
>>      TTY: hvc_dcc: probe for a JTAG connection before registering
>>
>>      Enabling the ARM DCC console and using without a JTAG connection will
>>      simply hang the system. Since distros like to turn on all options,
>> this
>>      is a reoccurring problem to debug. We can do better by checking if
>>      anything is attached and handling characters. There is no way to probe
>>      this, so send a newline and check that it is handled.
>> "
> 
> I think this is the part I was missing from the commit message. I have
> proposed some wording below.
> 
>>
>> As of today, this check hasn't changed.
>>
>>>>
>>>> We wish to avoid this crash by adding a "partial" emulation. DBGDTR_EL0
>>>> is emulated as TXfull | RXfull.
>>>
>>> Skimming through the Arm Arm, I see that TXfull and Rxfull indicates
>>> that both buffers are full but it doesn't explicitly say this means
>>> the feature is not available.
>> We are not saying that the feature is not available. Rather ...
>>>
>>> I understand this is what Linux checks, but if we want to partially
>>> emulate the registers in Xen, then I'd like us to make sure this is
>>> backed by the Arm Arm rather than based on Linux implementation (which
>>> can change at any point).
>>>
>>>> Refer ARM DDI 0487I.a ID081822, D17.3.8, DBGDTRTX_EL0
>>>> "If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN"
>>>> Also D17.3.7 DBGDTRRX_EL0,
>>>> " If RXfull is set to 1, return the last value written to DTRRX."
>>>>
>>>> Thus, any OS is expected to read DBGDTR_EL0 and check for TXfull
>>>> before using DBGDTRTX_EL0. Linux does it via hvc_dcc_init() --->
>>>> hvc_dcc_check() , it returns -ENODEV. In this way, we are preventing
>>>> the guest to be aborted.
>>>
>>> See above, what guarantees us that Linux will not change this behavior
>>> in the future?
>>
>> If I understand "If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN"
>> correctly, it seems that Arm ARM expects OS to check for TXfull.
>>
>> If the condition is true, it should return some error.
>>
>> Let me know if I misunderstood this.
> 
> You understand the Arm spec correcly. I think we are disagreeing on the
> wording and whether we should accept basic emulation (see above).
> 
> I would like more opinion on that.
> 
> [...]
> 
>>>> diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
>>>> index 39aeda9dab..3f1276f96e 100644
>>>> --- a/xen/arch/arm/vcpreg.c
>>>> +++ b/xen/arch/arm/vcpreg.c
>>>> @@ -548,20 +548,37 @@ void do_cp14_32(struct cpu_user_regs *regs,
>>>> const union hsr hsr)
>>>>           break;
>>>>       }
>>>>   -    case HSR_CPREG32(DBGDSCRINT):
>>>> +    case HSR_CPREG32(DBGDSCREXT):
>>>> +    {
>>>>           /*
>>>> -         * Read-only register. Accessible by EL0 if DBGDSCRext.UDCCdis
>>>> -         * is set to 0, which we emulated below.
>>>> +         * Bit 29: TX full, bit 30: RX full
>>>> +         * Given that we emulate DCC registers as RAZ/WI, doing the
>>>> same for
>>>> +         * DBGDSCRint would cause a guest to continue using the DCC
>>>> despite no
>>>> +         * real effect. Setting the TX/RX status bits should result
>>>> in a probe
>>>> +         * fail (based on Linux behavior).
>>> If you want to mention Linux then you need to be a bit more specific
>>> because Linux can change at any point. So you at least want to specify
>>> the Linux version and place in the code.
>>>
>>> So this doesn't get stale as soon as the HVC_DCC driver changes.
>>
>> (based on Linux behavior since f377775dc083).
> 
> Base on the discussion above, I would like to suggest the following:
> 
> Xen doesn't expose a real (or emulated) Debug Communications Channel
> (DCC) to a domain. Yet the Arm Arm implies this is not an optional
> feature. So some domains may start to probe it. For instance, the
> HVC_DCC driver in Linux (since f377775dc083 and at least up to v6.7),
> will try to write some characters and check if the transmit buffer has
> emptied. By setting TX status bit to indicate the transmit buffer is
> full. This we would hint the OS that the DCC is probably not working.
> 
> This would give enough information for the reader to know what's going
> and how you emulate.
> 
> Also, while writing the proposed comment, I wonder why we need to set
> RX? Wouldn't this potentially indicate to the OS that there are some
> data to read?
You're right. No need for that.

~Michal


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 09:39:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 09:39:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647504.1010680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rARtq-0006wB-Lc; Tue, 05 Dec 2023 09:39:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647504.1010680; Tue, 05 Dec 2023 09:39:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rARtq-0006w4-IM; Tue, 05 Dec 2023 09:39:30 +0000
Received: by outflank-mailman (input) for mailman id 647504;
 Tue, 05 Dec 2023 09: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=Nqzk=HQ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rARtp-0006vf-LD
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 09:39:29 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2060c.outbound.protection.outlook.com
 [2a01:111:f400:7eb2::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2eab5d44-9352-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 10:39:27 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH0PR12MB8029.namprd12.prod.outlook.com (2603:10b6:510:26c::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 09:39:21 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 09:39: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: 2eab5d44-9352-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GsZjFvC2UScDORsTHyytX6vqlUcEqneyioc9ZmHnShS3TkHSeoA4Cnj/XCSgPfjtY1hM+xns96bqGHf4PxwqJzKFMjoak7qwV/IDMJJRSy13fWaUJiVAMcP7jkZApUiKtNGO/MHgWYwzBMJHZzW0VMQt6vGaT+ISTImEl9LkliH9NXVAdQ8WnKcMvkvUOLhd7qrCPJ33wLwXat9zZ/ht9Qux2xncN5AFZVzDpyXVKDHZ8X51Jpmu/jsQC1M5wZOcs74+PGsEjv6PlgjqrxjhFU7SU9MNNduZyDZx7BXi5ka0gz/+yJg9SSQD3d9K6vom2a3Mmmja9/Ly3kb/daVmbA==
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=1nrglIYSxYM2EJmf+8XsozZm2TAZ3TGaTjF1YbZGELc=;
 b=LSvAKpYhdGmHhm7wFrFMbNayhzrL18S2ytkkKehNSvNv0CPDzs+R8mhdVfv16URdGcIAQDKgxaqcescNikuosx9UPs+QaFd5Rc4WSB3vGw3NN2WCXBon/l18Ju/Tw+rbE+7gdcRMfC9+e76/tzgyYXzp1L4qmQmx07UAk2blASnhqJfo262UrVr2Qp0fFPRanNAueKzWhztV5wEhvEuV/nSBizHk7hGdBNFHYdf3WE0FfOAPH6e6FpvWgCypv642/nbO1h1UF2zXP118AcSTHVDPvrLmcyREPo2Q3If/NcmjQnjGPdZHXkPsT8uut0jv9KHwRy2gedDUWlvjX3cIew==
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=1nrglIYSxYM2EJmf+8XsozZm2TAZ3TGaTjF1YbZGELc=;
 b=ZP3rfu8Kl5YqPErTTCg5nJNNxpisodrPmL2XwW/Fv/q9TdcuP6O2wzpAgtyxTFOSHVmSqEA7bH3w09d4hn1L0MuHB9lqQ8AyYHfiM2lhAbypPXHLBhDIwlpISEm1JmxQA94jcb1nIStkYEGbs2yREhwlD5mCftDnPwYVVdhZBP0=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Jan Beulich <jbeulich@suse.com>
CC: "Chen, Jiqian" <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Thomas Gleixner
	<tglx@linutronix.de>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, "Rafael J
 . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>, Bjorn Helgaas
	<bhelgaas@google.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "linux-acpi@vger.kernel.org"
	<linux-acpi@vger.kernel.org>, "Stabellini, Stefano"
	<stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Topic: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Index:
 AQHaHsGdlNZnjmvNCkucW725DqxYz7CSRC+AgADLdgCAALwOgIAAX9AAgAE42ICAA5dDgIAAxsiAgAC4TACAAIo8AA==
Date: Tue, 5 Dec 2023 09:39:20 +0000
Message-ID:
 <BL1PR12MB5849ACC0BB3CC06C21974015E785A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook>
In-Reply-To: <ZW7rDjjC0gxEI1cq@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA0PR12MB8351.namprd12.prod.outlook.com
 (15.20.7091.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_|PH0PR12MB8029:EE_
x-ms-office365-filtering-correlation-id: d108d2c2-87cf-4e74-dac1-08dbf5760f05
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 5Gy2wXdkRExHe6vlKD4GyHSJTyUzCVhlH4rmOqNKpahnqHzgP7/IMQyUvMMa1QtzvVPRur/+Os7rm7UZ1EeHi7IXZE1HpbXEXO3HF4Ous/ltaZiZJq9edhp5iBbCuo4iaxm1jgRLsTdJ9pgHCEIiuERSUtEFVBxRr1EqtvfELkV1PJgeikINujqiOP2aBLrZvP8cAa39rAni0zNOCRZBZekPWtnW7idHW+mWg00MCYjGqQnAGwy5zlGLKUzA64P8RMOgvjVa0ukh4hQdsWcPCfcTc6BpKxjJZ3I4SMKCnjyEEvv5mBvzyd2B9vG7lsKw36rXrLIBHPBL2NE1GEP7ibjdo0DGsFiO0Zuzhz4H7LVvRamA2glDb+1zu8tcLKUWOBsM2xPnTRQPw2057E4gkfhBd3YYj9ClZgnWrvSoEUfuCDXMw2urhXIHAEB/3Dmf5qihPqe3kYnAG81VY6JXIORX7cHUwsvSWbRphm5etspXblTRPwc7GLRX1V4+B735pBd78t0gNOj4SUajro0ZIrlKzosis4K9664WFkbXScUE5Xv98zdGz92p8BWisxnxTXBJuzDU0OBdN7vJdIyj6YfyU88ZKXKkKdhEhN/d6osuWa94MHRLCE0CKkqYhR1ZX5xFbpq1unXtpRT2jacVdOEOKvy4JC66VRh6a9CoibY=
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:(13230031)(396003)(376002)(366004)(346002)(39860400002)(136003)(230273577357003)(230922051799003)(230173577357003)(1800799012)(451199024)(186009)(64100799003)(83380400001)(478600001)(9686003)(6506007)(53546011)(26005)(7696005)(71200400001)(316002)(110136005)(66476007)(66446008)(64756008)(54906003)(66556008)(76116006)(66946007)(55016003)(8676002)(52536014)(4326008)(8936002)(41300700001)(38070700009)(30864003)(7416002)(33656002)(2906002)(5660300002)(122000001)(38100700002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aU9rVURaR2Y4ejhaL21iMWllOHpramsrVDVhRzV3aWV5b2xVdFhSMndBcnp0?=
 =?utf-8?B?ZWlUbHlxTG1NN3ppcEtBR3dTcEVuWDkxcFNndkRjc0ZtclVlemFhWCtlN1Bx?=
 =?utf-8?B?VjdpYkpoN1ZUT2E2bkduZEIvYXJNL2svOTQ4OEt4SWp3YzQvK2pVN2Zzays0?=
 =?utf-8?B?S3oyQlM2ekNzTlJ0cTBxamE4SDVuQlZoWThWKzdLWEViUnVKZWZVTndNMTdN?=
 =?utf-8?B?RGdzRzFnQmEzQ3dvUytHdWZqdG1qaEVySzA0eE81RlFjZUFuenAxaGV4elF6?=
 =?utf-8?B?Mzg4UFV4dGNBMjc1aFg5dWZzVnBqcVFXZzhRa1h4ZUQ2NjFiYk5OVzdsWXlI?=
 =?utf-8?B?Ty9UQ2pZekFkSmwwUmJMOEhZVG9jVlBZVmtxZE5UbGdVejBSVkxSYTVjMVhR?=
 =?utf-8?B?dnRMTE54bjBDSDg3c0VBekhJZVVUSnI3RHlyWGEyUTgvRXk0aHh6YTc5bnZN?=
 =?utf-8?B?NHJJL3BuTU1PVnhoaUdnRyswNDVxejVXT3RVdmc0VWdzSFFxeHg4ZTB5WU9r?=
 =?utf-8?B?d2FEa29tc3RrRGJxYU5xNVgrS1AxdTZCcG03T21HQ3BvVmRvbW5Jb1VqTUky?=
 =?utf-8?B?bzlWRFhhRE1oYUQ3S1dQWG9ZNUZMTG50UUE5blYvNUtweVpsVUtEWFFGR2JP?=
 =?utf-8?B?Ulo1dy8yNGI4bzRaSk53SGR2eWU3YTRKMG1tbHBlSmhuKzk4K1JrMmhaY0xN?=
 =?utf-8?B?N3dsanlNT005WStGa21QNHhmNWpYajVMNTcrbmc2TjYyR1diVXN3b0JhazdK?=
 =?utf-8?B?NlF6eG1VOUkyckhnZnh5aEVuem9BYVNqaEJpYzZyY1FMVkJ4QklsUGpPdE0v?=
 =?utf-8?B?WkxOL1E5bkJhSXVqM1BRZEFnWVRDMkNDS21jWGMrTGxwS2pSRmlKN3QwQVlG?=
 =?utf-8?B?S28vSjRqWGhHRDM1SjhvVnhXcG4vS1d5Ymp6OEFPMVlHdmZHUk1Rb2prS3Q3?=
 =?utf-8?B?Yk5xaXhZUEYwMlZXVUZ0U0VWdGNvRkQ2TzlKUjhNK1FzYm9QVUZTWG50MGdi?=
 =?utf-8?B?UlhYQktaVkdLMHdCZk53YTFGdjU0YXZMZE51V0VONzdkOFQwREpaOGV1UTl3?=
 =?utf-8?B?Y3g4dDl3RmcxekZQSE0yNVJaWENNV1l4dUkzaTF1SzFvaDhPSitjSEJhYzR0?=
 =?utf-8?B?ejBBODVUbi9yS1BlQlJBSExOZS9BVWtIb2xNZkxYWFFwN1NJREppcDN6eXEr?=
 =?utf-8?B?S0xMNEVDY2VkN0RxSElmb1QvclF6NkpjU01xZkRYUVV4bUtPOW1VYldaQXk3?=
 =?utf-8?B?NG9Ld0VCWGt4bHVvSElvcXlTNWpGYXpSbHRtZHhsbEY4OFBsdGhHZklNN1Nj?=
 =?utf-8?B?cFdMRlhTRldtWkE0dy9NRTR4VFV5WHEwUlIvbS9JYjcvZEJaYkZ0eDBTUmE0?=
 =?utf-8?B?VENoZU1Gb09vRTI2R2Y3TGp1MGx6MG1CMER1NVYrQlBLMVhoV2QxbjhYcmlx?=
 =?utf-8?B?eE1GMkRqYnhTQkt3YzVxUzZhcXRtZEpqekd6aDlJems3czc5eG1PQkp4ODll?=
 =?utf-8?B?SEZ6Z0RrQkQydXVNSThxVkxXL3BEekZoMzY3dHBHVkRuVTZETE9QK0NBQUJZ?=
 =?utf-8?B?b2dab3ZpTE9NL05kdkpQMjlwL3JEVXVnUVJFdHJDdU9sRUZxMGgyQ0gzS0I0?=
 =?utf-8?B?TDJkc092azZxZXlFc1FtZXZndU9PaEwxeWI1NUc2YU5xMWVoTEJ2aENJcDFG?=
 =?utf-8?B?RDAveENmbWlhZFNQSTBwZERPR1BudVBqZkRSbU9FeVd0SnU5Wk4rN0xaN3pk?=
 =?utf-8?B?QmZSS2ZzOVhUTkJBT1Z3TTh4K0xZVSsxYzlxMHJjWXFNalBhVDZhNng5eGd6?=
 =?utf-8?B?M2ZzY1Z2TDZBamNEMlJuSGJ1Z0dQUWFpTmxBQ0h4SS91UTlhSVN1clh2WnRJ?=
 =?utf-8?B?ZXBNZHlVR2FnaGlFVytva1lTVjBxalA5RjBBU1h4VDY2UkwrVVVFVDJXc1hC?=
 =?utf-8?B?M2g2SktxYzlTM2xWeGFFQWlHUFhUclg5ZjRDZTZLNS9VSzBNWHU0OERGeVRX?=
 =?utf-8?B?K3ZoREJsMEE3aDhPS2hWWnpXK0pzazI5RWVzVTBTWmRUNndHSGYyWldTWG1Z?=
 =?utf-8?B?RDhEMXhUWlc1NXhPUmVzZENtV3AweUFMUG9taDNoc1VYN2ViVm5OZ1JpRWxi?=
 =?utf-8?Q?xyiY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <525BEBCA1E83914A87960A19A85E3A7E@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: d108d2c2-87cf-4e74-dac1-08dbf5760f05
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2023 09:39:20.9465
 (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: 7TdOotIMSRe0m8FweuHLu/CnyfTQQ2faYS4z/97M5FLV2SKkaYYLsOrrpiEJ11e249JxzCDJaLgseVVDkozKbg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8029

DQpPbiAyMDIzLzEyLzUgMTc6MTksIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+IE9uIE1vbiwg
RGVjIDA0LCAyMDIzIGF0IDAyOjE5OjMzUE0gLTA4MDAsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90
ZToNCj4+IE9uIE1vbiwgNCBEZWMgMjAyMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBP
biBGcmksIERlYyAwMSwgMjAyMyBhdCAwNzozNzo1NVBNIC0wODAwLCBTdGVmYW5vIFN0YWJlbGxp
bmkgd3JvdGU6DQo+Pj4+IE9uIEZyaSwgMSBEZWMgMjAyMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90
ZToNCj4+Pj4+IE9uIFRodSwgTm92IDMwLCAyMDIzIGF0IDA3OjE1OjE3UE0gLTA4MDAsIFN0ZWZh
bm8gU3RhYmVsbGluaSB3cm90ZToNCj4+Pj4+PiBPbiBUaHUsIDMwIE5vdiAyMDIzLCBSb2dlciBQ
YXUgTW9ubsOpIHdyb3RlOg0KPj4+Pj4+PiBPbiBXZWQsIE5vdiAyOSwgMjAyMyBhdCAwNzo1Mzo1
OVBNIC0wODAwLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+Pj4+Pj4+PiBPbiBGcmksIDI0
IE5vdiAyMDIzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+Pj4+Pj4+PiBUaGlzIHBhdGNoIGlzIHRv
IHNvbHZlIHR3byBwcm9ibGVtcyB3ZSBlbmNvdW50ZXJlZCB3aGVuIHdlIHRyeSB0bw0KPj4+Pj4+
Pj4+IHBhc3N0aHJvdWdoIGEgZGV2aWNlIHRvIGh2bSBkb21VIGJhc2Ugb24gWGVuIFBWSCBkb20w
Lg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gRmlyc3QsIGh2bSBndWVzdCB3aWxsIGFsbG9jIGEgcGly
cSBhbmQgaXJxIGZvciBhIHBhc3N0aHJvdWdoIGRldmljZQ0KPj4+Pj4+Pj4+IGJ5IHVzaW5nIGdz
aSwgYmVmb3JlIHRoYXQsIHRoZSBnc2kgbXVzdCBmaXJzdCBoYXMgYSBtYXBwaW5nIGluIGRvbTAs
DQo+Pj4+Pj4+Pj4gc2VlIFhlbiBjb2RlIHBjaV9hZGRfZG1fZG9uZS0+eGNfZG9tYWluX2lycV9w
ZXJtaXNzaW9uLCBpdCB3aWxsIGNhbGwNCj4+Pj4+Pj4+PiBpbnRvIFhlbiBhbmQgY2hlY2sgd2hl
dGhlciBkb20wIGhhcyB0aGUgbWFwcGluZy4gU2VlDQo+Pj4+Pj4+Pj4gWEVOX0RPTUNUTF9pcnFf
cGVybWlzc2lvbi0+cGlycV9hY2Nlc3NfcGVybWl0dGVkLCAiY3VycmVudCIgaXMgUFZIDQo+Pj4+
Pj4+Pj4gZG9tMCBhbmQgaXQgcmV0dXJuIGlycSBpcyAwLCBhbmQgdGhlbiByZXR1cm4gLUVQRVJN
Lg0KPj4+Pj4+Pj4+IFRoaXMgaXMgYmVjYXVzZSB0aGUgcGFzc3Rocm91Z2ggZGV2aWNlIGRvZXNu
J3QgZG8gUEhZU0RFVk9QX21hcF9waXJxDQo+Pj4+Pj4+Pj4gd2hlbiB0aGF5IGFyZSBlbmFibGVk
Lg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gU2Vjb25kLCBpbiBQVkggZG9tMCwgdGhlIGdzaSBvZiBh
IHBhc3N0aHJvdWdoIGRldmljZSBkb2Vzbid0IGdldA0KPj4+Pj4+Pj4+IHJlZ2lzdGVyZWQsIGJ1
dCBnc2kgbXVzdCBiZSBjb25maWd1cmVkIGZvciBpdCB0byBiZSBhYmxlIHRvIGJlDQo+Pj4+Pj4+
Pj4gbWFwcGVkIGludG8gYSBkb21VLg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gQWZ0ZXIgc2VhcmNo
aW5nIGNvZGVzLCB3ZSBjYW4gZmluZCBtYXBfcGlycSBhbmQgcmVnaXN0ZXJfZ3NpIHdpbGwgYmUN
Cj4+Pj4+Pj4+PiBkb25lIGluIGZ1bmN0aW9uIHZpb2FwaWNfd3JpdGVfcmVkaXJlbnQtPnZpb2Fw
aWNfaHdkb21fbWFwX2dzaSB3aGVuDQo+Pj4+Pj4+Pj4gdGhlIGdzaShha2EgaW9hcGljJ3MgcGlu
KSBpcyB1bm1hc2tlZCBpbiBQVkggZG9tMC4gU28gdGhlIHByb2JsZW1zDQo+Pj4+Pj4+Pj4gY2Fu
IGJlIGNvbmNsdWRlIHRvIHRoYXQgdGhlIGdzaSBvZiBhIHBhc3N0aHJvdWdoIGRldmljZSBkb2Vz
bid0IGJlDQo+Pj4+Pj4+Pj4gdW5tYXNrZWQuDQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+PiBUbyBzb2x2
ZSB0aGUgdW5tYXNrZSBwcm9ibGVtLCB0aGlzIHBhdGNoIGNhbGwgdGhlIHVubWFza19pcnEgd2hl
biB3ZQ0KPj4+Pj4+Pj4+IGFzc2lnbiBhIGRldmljZSB0byBiZSBwYXNzdGhyb3VnaC4gU28gdGhh
dCB0aGUgZ3NpIGNhbiBnZXQgcmVnaXN0ZXJlZA0KPj4+Pj4+Pj4+IGFuZCBtYXBwZWQgaW4gUFZI
IGRvbTAuDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IFJvZ2VyLCB0aGlzIHNlZW1zIHRv
IGJlIG1vcmUgb2YgYSBYZW4gaXNzdWUgdGhhbiBhIExpbnV4IGlzc3VlLiBXaHkgZG8NCj4+Pj4+
Pj4+IHdlIG5lZWQgdGhlIHVubWFzayBjaGVjayBpbiBYZW4/IENvdWxkbid0IHdlIGp1c3QgZG86
DQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv
aHZtL3Zpb2FwaWMuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlvYXBpYy5jDQo+Pj4+Pj4+PiBpbmRl
eCA0ZTQwZDM2MDlhLi5kZjI2MmE0YTE4IDEwMDY0NA0KPj4+Pj4+Pj4gLS0tIGEveGVuL2FyY2gv
eDg2L2h2bS92aW9hcGljLmMNCj4+Pj4+Pj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlvYXBp
Yy5jDQo+Pj4+Pj4+PiBAQCAtMjg3LDcgKzI4Nyw3IEBAIHN0YXRpYyB2b2lkIHZpb2FwaWNfd3Jp
dGVfcmVkaXJlbnQoDQo+Pj4+Pj4+PiAgICAgICAgICAgICAgaHZtX2RwY2lfZW9pKGQsIGdzaSk7
DQo+Pj4+Pj4+PiAgICAgIH0NCj4+Pj4+Pj4+ICANCj4+Pj4+Pj4+IC0gICAgaWYgKCBpc19oYXJk
d2FyZV9kb21haW4oZCkgJiYgdW5tYXNrZWQgKQ0KPj4+Pj4+Pj4gKyAgICBpZiAoIGlzX2hhcmR3
YXJlX2RvbWFpbihkKSApDQo+Pj4+Pj4+PiAgICAgIHsNCj4+Pj4+Pj4+ICAgICAgICAgIC8qDQo+
Pj4+Pj4+PiAgICAgICAgICAgKiBOQjogZG9uJ3QgY2FsbCB2aW9hcGljX2h3ZG9tX21hcF9nc2kg
d2hpbGUgaG9sZGluZyBodm0uaXJxX2xvY2sNCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhlcmUgYXJlIHNv
bWUgaXNzdWVzIHdpdGggdGhpcyBhcHByb2FjaC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gbXBfcmVnaXN0
ZXJfZ3NpKCkgd2lsbCBvbmx5IHNldHVwIHRoZSB0cmlnZ2VyIGFuZCBwb2xhcml0eSBvZiB0aGUN
Cj4+Pj4+Pj4gSU8tQVBJQyBwaW4gb25jZSwgc28gd2UgZG8gc28gb25jZSB0aGUgZ3Vlc3QgdW5t
YXNrIHRoZSBwaW4gaW4gb3JkZXINCj4+Pj4+Pj4gdG8gYXNzZXJ0IHRoYXQgdGhlIGNvbmZpZ3Vy
YXRpb24gaXMgdGhlIGludGVuZGVkIG9uZS4gIEEgZ3Vlc3QgaXMNCj4+Pj4+Pj4gYWxsb3dlZCB0
byB3cml0ZSBhbGwga2luZCBvZiBub25zZW5zZSBzdHVmZiB0byB0aGUgSU8tQVBJQyBSVEUsIGJ1
dA0KPj4+Pj4+PiB0aGF0IGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW5sZXNzIHRoZSBwaW4gaXMgdW5t
YXNrZWQuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IE92ZXJhbGwgdGhlIHF1ZXN0aW9uIHdvdWxkIGJlIHdo
ZXRoZXIgd2UgaGF2ZSBhbnkgZ3VhcmFudGVlcyB0aGF0DQo+Pj4+Pj4+IHRoZSBoYXJkd2FyZSBk
b21haW4gaGFzIHByb3Blcmx5IGNvbmZpZ3VyZWQgdGhlIHBpbiwgZXZlbiBpZiBpdCdzIG5vdA0K
Pj4+Pj4+PiB1c2luZyBpdCBpdHNlbGYgKGFzIGl0IGhhc24ndCBiZWVuIHVubWFza2VkKS4NCj4+
Pj4+Pj4NCj4+Pj4+Pj4gSUlSQyBQQ0kgbGVnYWN5IGludGVycnVwdHMgYXJlIGxldmVsIHRyaWdn
ZXJlZCBhbmQgbG93IHBvbGFyaXR5LCBzbyB3ZQ0KPj4+Pj4+PiBjb3VsZCBjb25maWd1cmUgYW55
IHBpbnMgdGhhdCBhcmUgbm90IHNldHVwIGF0IGJpbmQgdGltZT8NCj4+Pj4+Pg0KPj4+Pj4+IFRo
YXQgY291bGQgd29yay4NCj4+Pj4+Pg0KPj4+Pj4+IEFub3RoZXIgaWRlYSBpcyB0byBtb3ZlIG9u
bHkgdGhlIGNhbGwgdG8gYWxsb2NhdGVfYW5kX21hcF9nc2lfcGlycSBhdA0KPj4+Pj4+IGJpbmQg
dGltZT8gVGhhdCBtaWdodCBiZSBlbm91Z2ggdG8gcGFzcyBhIHBpcnFfYWNjZXNzX3Blcm1pdHRl
ZCBjaGVjay4NCj4+Pj4+DQo+Pj4+PiBNYXliZSwgYWxiZWl0IHRoYXQgd291bGQgY2hhbmdlIHRo
ZSBiZWhhdmlvciBvZiBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxDQo+Pj4+PiBqdXN0IGZvciBQVF9J
UlFfVFlQRV9QQ0kgYW5kIG9ubHkgd2hlbiBjYWxsZWQgZnJvbSBhIFBWSCBkb20wIChhcyB0aGUN
Cj4+Pj4+IHBhcmFtZXRlciB3b3VsZCBiZSBhIEdTSSBpbnN0ZWFkIG9mIGEgcHJldmlvdXNseSBt
YXBwZWQgSVJRKS4gIFN1Y2gNCj4+Pj4+IGRpZmZlcmVuY2UganVzdCBmb3IgUFRfSVJRX1RZUEVf
UENJIGlzIHNsaWdodGx5IHdlaXJkIC0gaWYgd2UgZ28gdGhhdA0KPj4+Pj4gcm91dGUgSSB3b3Vs
ZCByZWNvbW1lbmQgdGhhdCB3ZSBpbnN0ZWFkIGludHJvZHVjZSBhIG5ldyBkbW9wIHRoYXQgaGFz
DQo+Pj4+PiB0aGlzIHN5bnRheCByZWdhcmRsZXNzIG9mIHRoZSBkb21haW4gdHlwZSBpdCdzIGNh
bGxlZCBmcm9tLg0KPj4+Pg0KPj4+PiBMb29raW5nIGF0IHRoZSBjb2RlIGl0IGlzIGNlcnRhaW5s
eSBhIGJpdCBjb25mdXNpbmcuIE15IHBvaW50IHdhcyB0aGF0DQo+Pj4+IHdlIGRvbid0IG5lZWQg
dG8gd2FpdCB1bnRpbCBwb2xhcml0eSBhbmQgdHJpZ2dlciBhcmUgc2V0IGFwcHJvcHJpYXRlbHkN
Cj4+Pj4gdG8gYWxsb3cgRG9tMCB0byBwYXNzIHN1Y2Nlc3NmdWxseSBhIHBpcnFfYWNjZXNzX3Bl
cm1pdHRlZCgpIGNoZWNrLiBYZW4NCj4+Pj4gc2hvdWxkIGJlIGFibGUgdG8gZmlndXJlIG91dCB0
aGF0IERvbTAgaXMgcGVybWl0dGVkIHBpcnEgYWNjZXNzLg0KPj4+DQo+Pj4gVGhlIGxvZ2ljIGlz
IGNlcnRhaW5seSBub3Qgc3RyYWlnaHRmb3J3YXJkLCBhbmQgaXQgY291bGQgYmVuZWZpdCBmcm9t
DQo+Pj4gc29tZSBjb21tZW50cy4NCj4+Pg0KPj4+IFRoZSBpcnEgcGVybWlzc2lvbnMgYXJlIGEg
Yml0IHNwZWNpYWwsIGluIHRoYXQgdGhleSBnZXQgc2V0dXAgd2hlbiB0aGUNCj4+PiBJUlEgaXMg
bWFwcGVkLg0KPj4+DQo+Pj4gVGhlIHByb2JsZW0gaG93ZXZlciBpcyBub3Qgc28gbXVjaCB3aXRo
IElSUSBwZXJtaXNzaW9ucywgdGhhdCB3ZSBjYW4NCj4+PiBpbmRlZWQgc29ydCBvdXQgaW50ZXJu
YWxseSBpbiBYZW4uICBTdWNoIGNoZWNrIGluIGRvbTAgaGFzIHRoZSBzaWRlDQo+Pj4gZWZmZWN0
IG9mIHByZXZlbnRpbmcgdGhlIElSUSBmcm9tIGJlaW5nIGFzc2lnbmVkIHRvIGEgZG9tVSB3aXRo
b3V0IHRoZQ0KPj4+IGhhcmR3YXJlIHNvdXJjZSBiZWluZyBwcm9wZXJseSBjb25maWd1cmVkIEFG
QUlDVC4NCj4+DQo+PiBOb3cgSSB1bmRlcnN0YW5kIHdoeSB5b3UgbWFkZSBhIGNvbW1lbnQgcHJl
dmlvdXNseSBhYm91dCBYZW4gaGF2aW5nIHRvDQo+PiBjb25maWd1cmUgdHJpZ2dlciBhbmQgcG9s
YXJpdHkgZm9yIHRoZXNlIGludGVycnVwdHMgb24gaXRzIG93bi4NCj4+DQo+Pg0KPj4+PiBTbyB0
aGUgaWRlYSB3YXMgdG8gbW92ZSB0aGUgY2FsbCB0byBhbGxvY2F0ZV9hbmRfbWFwX2dzaV9waXJx
KCkgZWFybGllcg0KPj4+PiBzb21ld2hlcmUgYmVjYXVzZSBhbGxvY2F0ZV9hbmRfbWFwX2dzaV9w
aXJxIGRvZXNuJ3QgcmVxdWlyZSB0cmlnZ2VyIG9yDQo+Pj4+IHBvbGFyaXR5IHRvIGJlIGNvbmZp
Z3VyZWQgdG8gd29yay4gQnV0IHRoZSBzdWdnZXN0aW9uIG9mIGRvaW5nIGl0IGENCj4+Pj4gImJp
bmQgdGltZSIgKG1lYW5pbmc6IFhFTl9ET01DVExfYmluZF9wdF9pcnEpIHdhcyBhIGJhZCBpZGVh
Lg0KPj4+Pg0KPj4+PiBCdXQgbWF5YmUgd2UgY2FuIGZpbmQgYW5vdGhlciBsb2NhdGlvbiwgbWF5
YmUgd2l0aGluDQo+Pj4+IHhlbi9hcmNoL3g4Ni9odm0vdmlvYXBpYy5jLCB0byBjYWxsIGFsbG9j
YXRlX2FuZF9tYXBfZ3NpX3BpcnEoKSBiZWZvcmUNCj4+Pj4gdHJpZ2dlciBhbmQgcG9sYXJpdHkg
YXJlIHNldCBhbmQgYmVmb3JlIHRoZSBpbnRlcnJ1cHQgaXMgdW5tYXNrZWQuDQo+Pj4+DQo+Pj4+
IFRoZW4gd2UgY2hhbmdlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB2aW9hcGljX2h3ZG9tX21hcF9n
c2kgdG8gc2tpcCB0aGUNCj4+Pj4gY2FsbCB0byBhbGxvY2F0ZV9hbmRfbWFwX2dzaV9waXJxLCBi
ZWNhdXNlIGJ5IHRoZSB0aW1lDQo+Pj4+IHZpb2FwaWNfaHdkb21fbWFwX2dzaSB3ZSBhc3N1bWUg
dGhhdCBhbGxvY2F0ZV9hbmRfbWFwX2dzaV9waXJxIGhhZA0KPj4+PiBhbHJlYWR5IGJlZW4gZG9u
ZS4NCj4+Pg0KPj4+IEJ1dCB0aGVuIHdlIHdvdWxkIGVuZCB1cCBpbiBhIHNpdHVhdGlvbiB3aGVy
ZSB0aGUNCj4+PiBwaXJxX2FjY2Vzc19wZXJtaXR0ZWQoKSBjaGVjayB3aWxsIHBhc3MsIGJ1dCB0
aGUgSU8tQVBJQyBwaW4gd29uJ3QgYmUNCj4+PiBjb25maWd1cmVkLCB3aGljaCBJIHRoaW5rIGl0
J3Mgbm90IHdoYXQgd2Ugd2FudC4NCj4+Pg0KPj4+IE9uZSBvcHRpb24gd291bGQgYmUgdG8gYWxs
b3cgbXBfcmVnaXN0ZXJfZ3NpKCkgdG8gYmUgY2FsbGVkIG11bHRpcGxlDQo+Pj4gdGltZXMsIGFu
ZCB1cGRhdGUgdGhlIElPLUFQSUMgcGluIGNvbmZpZ3VyYXRpb24gYXMgbG9uZyBhcyB0aGUgcGlu
IGlzDQo+Pj4gbm90IHVubWFza2VkLiAgVGhhdCB3b3VsZCBwcm9wYWdhdGUgZWFjaCBkb20wIFJU
RSB1cGRhdGUgdG8gdGhlDQo+Pj4gdW5kZXJseWluZyBJTy1BUElDLiAgSG93ZXZlciBzdWNoIGFw
cHJvYWNoIHJlbGllcyBvbiBkb20wIGNvbmZpZ3VyaW5nDQo+Pj4gYWxsIHBvc3NpYmxlIElPLUFQ
SUMgcGlucywgZXZlbiBpZiBubyBkZXZpY2Ugb24gZG9tMCBpcyB1c2luZyB0aGVtLCBJDQo+Pj4g
dGhpbmsgaXQncyBub3QgYSB2ZXJ5IHJlbGlhYmxlIG9wdGlvbi4NCj4+Pg0KPj4+IEFub3RoZXIg
b3B0aW9uIHdvdWxkIGJlIHRvIG1vZGlmeSB0aGUgdG9vbHN0YWNrIHRvIHNldHVwIHRoZSBHU0kN
Cj4+PiBpdHNlbGYgdXNpbmcgdGhlIFBIWVNERVZPUF9zZXR1cF9nc2kgaHlwZXJjYWxsLiAgQXMg
c2FpZCBpbiBhIHByZXZpb3VzDQo+Pj4gZW1haWwsIHNpbmNlIHdlIG9ubHkgY2FyZSBhYm91dCBQ
Q0kgZGV2aWNlIHBhc3N0aHJvdWdoIHRoZSBsZWdhY3kgSU5UeA0KPj4+IHNob3VsZCBhbHdheXMg
YmUgbGV2ZWwgdHJpZ2dlcmVkIGFuZCBsb3cgcG9sYXJpdHkuDQo+Pj4NCj4+Pj4gSSBhbSBub3Qg
ZmFtaWxpYXIgd2l0aCB2aW9hcGljLmMgYnV0IHRvIGdpdmUgeW91IGFuIGlkZWEgb2Ygd2hhdCBJ
IHdhcw0KPj4+PiB0aGlua2luZzoNCj4+Pj4NCj4+Pj4NCj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL3g4Ni9odm0vdmlvYXBpYy5jIGIveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMNCj4+Pj4g
aW5kZXggNGU0MGQzNjA5YS4uMTZkNTZmZTg1MSAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gv
eDg2L2h2bS92aW9hcGljLmMNCj4+Pj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMN
Cj4+Pj4gQEAgLTE4OSwxNCArMTg5LDYgQEAgc3RhdGljIGludCB2aW9hcGljX2h3ZG9tX21hcF9n
c2kodW5zaWduZWQgaW50IGdzaSwgdW5zaWduZWQgaW50IHRyaWcsDQo+Pj4+ICAgICAgICAgIHJl
dHVybiByZXQ7DQo+Pj4+ICAgICAgfQ0KPj4+PiAgDQo+Pj4+IC0gICAgcmV0ID0gYWxsb2NhdGVf
YW5kX21hcF9nc2lfcGlycShjdXJyZCwgcGlycSwgJnBpcnEpOw0KPj4+PiAtICAgIGlmICggcmV0
ICkNCj4+Pj4gLSAgICB7DQo+Pj4+IC0gICAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcsICJ2
aW9hcGljOiBlcnJvciBtYXBwaW5nIEdTSSAldTogJWRcbiIsDQo+Pj4+IC0gICAgICAgICAgICAg
ICAgIGdzaSwgcmV0KTsNCj4+Pj4gLSAgICAgICAgcmV0dXJuIHJldDsNCj4+Pj4gLSAgICB9DQo+
Pj4+IC0NCj4+Pj4gICAgICBwY2lkZXZzX2xvY2soKTsNCj4+Pj4gICAgICByZXQgPSBwdF9pcnFf
Y3JlYXRlX2JpbmQoY3VycmQsICZwdF9pcnFfYmluZCk7DQo+Pj4+ICAgICAgaWYgKCByZXQgKQ0K
Pj4+PiBAQCAtMjg3LDYgKzI3OSwxNyBAQCBzdGF0aWMgdm9pZCB2aW9hcGljX3dyaXRlX3JlZGly
ZW50KA0KPj4+PiAgICAgICAgICAgICAgaHZtX2RwY2lfZW9pKGQsIGdzaSk7DQo+Pj4+ICAgICAg
fQ0KPj4+PiAgDQo+Pj4+ICsgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKSANCj4+Pj4g
KyAgICB7DQo+Pj4+ICsgICAgICAgIGludCBwaXJxID0gZ3NpLCByZXQ7DQo+Pj4+ICsgICAgICAg
IHJldCA9IGFsbG9jYXRlX2FuZF9tYXBfZ3NpX3BpcnEoY3VycmQsIHBpcnEsICZwaXJxKTsNCj4+
Pj4gKyAgICAgICAgaWYgKCByZXQgKQ0KPj4+PiArICAgICAgICB7DQo+Pj4+ICsgICAgICAgICAg
ICBncHJpbnRrKFhFTkxPR19XQVJOSU5HLCAidmlvYXBpYzogZXJyb3IgbWFwcGluZyBHU0kgJXU6
ICVkXG4iLA0KPj4+PiArICAgICAgICAgICAgICAgICAgICBnc2ksIHJldCk7DQo+Pj4+ICsgICAg
ICAgICAgICByZXR1cm4gcmV0Ow0KPj4+PiArICAgICAgICB9DQo+Pj4+ICsgICAgfQ0KPj4+PiAg
ICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICYmIHVubWFza2VkICkNCj4+Pj4gICAgICB7
DQo+Pj4+ICAgICAgICAgIC8qDQo+Pj4NCj4+PiBBcyBzYWlkIGFib3ZlLCBzdWNoIGFwcHJvYWNo
IHJlbGllcyBvbiBkb20wIHdyaXRpbmcgdG8gdGhlIElPLUFQSUMgUlRFDQo+Pj4gb2YgbGlrZWx5
IGVhY2ggSU8tQVBJQyBwaW4sIHdoaWNoIGlzIElNTyBub3QgcXVpdGUgcmVsaWFibGUuICBJbiB0
aGVyZQ0KPj4+IGFyZSB0d28gZGlmZmVyZW50IGlzc3VlcyBoZXJlIHRoYXQgbmVlZCB0byBiZSBm
aXhlZCBmb3IgUFZIIGRvbTA6DQo+Pj4NCj4+PiAgLSBGaXggdGhlIFhFTl9ET01DVExfaXJxX3Bl
cm1pc3Npb24gcGlycV9hY2Nlc3NfcGVybWl0dGVkKCkgY2FsbCB0bw0KPj4+ICAgIHN1Y2NlZWQg
Zm9yIGEgUFZIIGRvbTAsIGV2ZW4gaWYgZG9tMCBpcyBub3QgdXNpbmcgdGhlIEdTSSBpdHNlbGYu
DQo+Pg0KPj4gWWVzIG1ha2VzIHNlbnNlDQo+Pg0KPj4NCj4+PiAgLSBDb25maWd1cmUgSU8tQVBJ
QyBwaW5zIGZvciBQQ0kgaW50ZXJydXB0cyBldmVuIGlmIGRvbTAgaXMgbm90IHVzaW5nDQo+Pj4g
ICAgdGhlIElPLUFQSUMgcGluIGl0c2VsZi4NCj4+Pg0KPj4+IEZpcnN0IG9uZSBuZWVkcyB0byBi
ZSBmaXhlZCBpbnRlcm5hbGx5IGluIFhlbiwgc2Vjb25kIG9uZSB3aWxsIHJlcXVpcmUNCj4+PiB0
aGUgdG9vbHN0YWNrIHRvIGlzc3VlIGFuIGV4dHJhIGh5cGVyY2FsbCBpbiBvcmRlciB0byBlbnN1
cmUgdGhlDQo+Pj4gSU8tQVBJQyBwaW4gaXMgcHJvcGVybHkgY29uZmlndXJlZC4NCj4+ICANCj4+
IE9uIEFSTSwgWGVuIGRvZXNuJ3QgbmVlZCB0byB3YWl0IGZvciBkb20wIHRvIGNvbmZpZ3VyZSBp
bnRlcnJ1cHRzDQo+PiBjb3JyZWN0bHkuIFhlbiBjb25maWd1cmVzIHRoZW0gYWxsIG9uIGl0cyBv
d24gYXQgYm9vdCBiYXNlZCBvbiBEZXZpY2UNCj4+IFRyZWUgaW5mb3JtYXRpb24uIEkgZ3Vlc3Mg
aXQgaXMgbm90IHBvc3NpYmxlIHRvIGRvIHRoZSBzYW1lIG9uIHg4Nj8NCj4gDQo+IE5vLCBub3Qg
ZXhhY3RseS4gIFRoZXJlJ3Mgc29tZSBpbnRlcnJ1cHQgaW5mb3JtYXRpb24gaW4gdGhlIEFDUEkg
TUFEVCwNCj4gYnV0IHRoYXQncyBqdXN0IGZvciB2ZXJ5IHNwZWNpZmljIHNvdXJjZXMgKEludGVy
cnVwdCBTb3VyY2UgT3ZlcnJpZGUNCj4gU3RydWN0dXJlcykNCj4gDQo+IFRoZW4gb24gQU1MIGRl
dmljZXMgY2FuIGhhdmUgcmVzb3VyY2UgZGVzY3JpcHRvcnMgdGhhdCBjb250YWluDQo+IGluZm9y
bWF0aW9uIGFib3V0IGhvdyBpbnRlcnJ1cHRzIGFyZSBzZXR1cC4gIEhvd2V2ZXIgWGVuIGlzIG5v
dCBhYmxlDQo+IHRvIHJlYWQgYW55IG9mIHRoaXMgaW5mb3JtYXRpb24gb24gQU1MLg0KPiANCj4g
TGVnYWN5IFBDSSBpbnRlcnJ1cHRzIGFyZSAoYWx3YXlzPykgbGV2ZWwgdHJpZ2dlcmVkIGFuZCBs
b3cgcG9sYXJpdHksDQo+IGJlY2F1c2UgaXQncyBhc3N1bWVkIHRoYXQgYW4gaW50ZXJydXB0IHNv
dXJjZSBjYW4gYmUgc2hhcmVkIGJldHdlZW4NCj4gbXVsdGlwbGUgZGV2aWNlcy4NCj4gDQo+IEkn
bSBob3dldmVyIG5vdCBhYmxlIHRvIGZpbmQgYW55IHJlZmVyZW5jZSB0byB0aGlzIGluIHRoZSBQ
Q0kgc3BlYywNCj4gaGVuY2UgSSdtIHJlbHVjdGFudCB0byB0YWtlIHRoaXMgZm9yIGdyYW50ZWQg
aW4gWGVuLCBhbmQgZGVmYXVsdCBhbGwNCj4gR1NJcyA+PSAxNiB0byBzdWNoIG1vZGUuDQo+IA0K
PiBPVE9IIGxlZ2FjeSBQQ0kgaW50ZXJydXB0cyBhcmUgbm90IHRoYXQgdXNlZCBhbnltb3JlLCBh
cyBhbG1vc3QgYWxsDQo+IGRldmljZXMgd2lsbCBzdXBwb3J0IE1TSSgtWCkgKGJlY2F1c2UgUENJ
ZSBtYW5kYXRlcyBpdCkgYW5kIE9TZXMNCj4gc2hvdWxkIHByZWZlciB0aGUgbGF0dGVyLiAgU1It
SU9WIFZGIGRvbid0IGV2ZW4gc3VwcG9ydCBsZWdhY3kgUENJDQo+IGludGVycnVwdHMgYW55bW9y
ZS4NCj4gDQo+PiBJZg0KPj4gbm90LCB0aGVuIEkgY2FuIHNlZSB3aHkgd2Ugd291bGQgbmVlZCAx
IGV4dHJhIHRvb2xzdGFjayBoeXBlcmNhbGwgZm9yDQo+PiB0aGF0IChvciB0byBidW5kbGUgdGhl
IG9wZXJhdGlvbiBvZiBjb25maWd1cmluZyBJTy1BUElDIHBpbnMgdG9nZXRoZXINCj4+IHdpdGgg
YW4gZXhpc3RpbmcgdG9vbHN0YWNrIGh5cGVyY2FsbCkuDQo+IA0KPiBPbmUgc3VpdGFibGUgY29t
cHJvbWlzZSB3b3VsZCBiZSB0byBkZWZhdWx0IHVuY29uZmlndXJlZCBHU0lzID49IDE2IHRvDQo+
IGxldmVsLXRyaWdnZXJlZCBhbmQgbG93LXBvbGFyaXR5LCBhcyBJIHdvdWxkIGV4cGVjdCB0aGF0
IHRvIHdvcmsgaW4NCj4gYWxtb3N0IGFsbCBjYXNlcy4gIFdlIGNhbiBhbHdheXMgaW50cm9kdWNl
IHRoZSB1c2FnZSBvZg0KPiBQSFlTREVWT1Bfc2V0dXBfZ3NpIGxhdGVyIGlmIHJlcXVpcmVkLg0K
PiANCj4gTWF5YmUgSmFuIGhhcyBtb3JlIGlucHV0IGhlcmUsIHdvdWxkIHlvdSBhZ3JlZSB0byBk
ZWZhdWx0aW5nIG5vbi1JU0ENCj4gR1NJcyB0byBsZXZlbC10cmlnZ2VyZWQsIGxvdy1wb2xhcml0
eSBpbiB0aGUgYWJzZW5jZSBvZiBhIHNwZWNpZmljDQo+IHNldHVwIHByb3ZpZGVkIGJ5IGRvbTA/
DQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQpObyBpbnRlbnRpb24gdG8gZGlzdHVyYiBpZiBJIGFt
IGluY29ycmVjdCwganVzdCBhIGxpdHRsZSBpbnB1dC4gT24gZG9tMCBQVkgsIHdoZW4gaXQgZW5h
YmxlcyBkZXZpY2VzLCBpdCB3aWxsIGNhbGwgYWNwaV9wY2lfaXJxX2VuYWJsZSwgYW5kIGluIHRo
YXQgZnVuY3Rpb24sIGl0cyBkZWZhdWx0IHRyaWdnZXIgaXMgbGV2ZWwgYW5kIHBvbGFyaXR5IGlz
IGxvdyBmb3IgcGNpIGludGVycnVwdC4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hl
bi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 10:01:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 10:01:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647509.1010689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rASFM-00047T-Hp; Tue, 05 Dec 2023 10:01:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647509.1010689; Tue, 05 Dec 2023 10:01: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 1rASFM-00047M-Ec; Tue, 05 Dec 2023 10:01:44 +0000
Received: by outflank-mailman (input) for mailman id 647509;
 Tue, 05 Dec 2023 10:01:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rASFL-00047G-Fy
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 10:01:43 +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 1rASFG-0001hY-MZ; Tue, 05 Dec 2023 10:01:38 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rASFG-0003Dv-GB; Tue, 05 Dec 2023 10:01:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=emITBoV3TzCZp2reSjmHhDi/1Y0czcMhxi2xOmBM4c8=; b=z88XR1jh1LiWWJtNcw1ZuDc5Om
	xphf3ylRNxyFmCjTGX5gjSz4vJ8DIFPfi4ypcF0+J6jCjlgBJNkU3qPjm7ije+26+eGk7wIhTu1D3
	VqubnMulAl8/nfb9szV+H8C/Cu55cjjJ4IWSwVI9gkHBrZgyNxMsEAl3ijzjfYDHJYW4=;
Message-ID: <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
Date: Tue, 5 Dec 2023 10:01:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Ayan Kumar Halder
 <ayankuma@amd.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 sstabellini@kernel.org, stefano.stabellini@amd.com,
 bertrand.marquis@arm.com, Volodymyr_Babchuk@epam.com
Cc: xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 05/12/2023 09:28, Michal Orzel wrote:
> Hi Julien,
> 
> On 04/12/2023 20:55, Julien Grall wrote:
>>
>>
>> On 04/12/2023 13:02, Ayan Kumar Halder wrote:
>>>
>>> On 04/12/2023 10:31, Julien Grall wrote:
>>>> Hi Ayan,
>>> Hi Julien,
>>>>
>>>> On 01/12/2023 18:50, Ayan Kumar Halder wrote:
>>>>> Currently if user enables HVC_DCC config option in Linux, it invokes
>>>>> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
>>>>> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
>>>>> an undefined exception to the guest. And Linux crashes.
>>>>
>>>> I am missing some data points here to be able to say whether I would
>>>> be ok with emulating the registers. So some questions:
>>>>    * As you wrote below, HVC_DCC will return -ENODEV after this
>>>> emulation. So may I ask what's the use case to enable it? (e.g. is
>>>> there a distro turning this on?)
>>>
>>> I am not aware of any distro using (or not using) this feature. This
>>> issue came to light during our internal testing, when HVC_DCC was
>>> enabled to use the debug console. When Linux runs without Xen, then we
>>> could observe the logs on the debug console. When Linux was running as a
>>> VM, it crashed.
>>>
>>> My intention here was to do the bare minimum emulation so that the crash
>>> could be avoided.
>> This reminds me a bit the discussion around "xen/arm64: Decode ldr/str
>> post increment operations". I don't want Xen to contain half-backed
>> emulation just to please an OS in certain configuration that doesn't
>> seem to be often used.
>>
>> Also, AFAICT, KVM is in the same situation...
> Well, KVM is not in the same situation. It emulates all DCC regs as RAZ/WI, so there
> will be no fault on an attempt to access the DCC.

Does this mean a guest will think the JTAG is availabe?

> 
> In general, I think that if a register is not optional and does not depend on other register
> to be checked first (e.g. a feature/control register we emulate), which implies that it is fully ok for a guest to
> access it directly - we should at least try to do something not to crash a guest.

This is where we have opposing opinion. I view crashing a guest better 
than providing a wrong emulation because it gives a clear signal that 
the register they are trying to access will not function properly.

We had this exact same discussion a few years ago when Linux started to 
access GIC*_ACTIVER registers. I know that Stefano was for emulating 
them as RAZ but this had consequences on the domain side (Linux 
sometimes need to read them). We settled on printing a warning which is 
not great but better than claiming we properly emulate the register.

> 
> I agree that this feature is not widely used. In fact I can only find it implemented in Linux and U-BOOT
> and the issue I found in DBGDSCRINT (no access from EL0, even though we emulate REXT.UDCCdis as 0) only
> proves that. At the same time, it does not cost us much to add this trivial support.

See above. If we provide an (even basic) emulation, we need to make sure 
it is correct and doesn't have a side effect on the guest. If we can't 
guarantee that (e.g. like for set/way when a device is assigned), then 
the best course of action is to crash the domain.

AFAICT, the proposed emulation would be ok. But I want to make clear 
that I would not generally be ok with this approach and the decision 
would need to be on the case by case basis.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 10:08:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 10:08:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647512.1010700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rASLS-0005kS-5H; Tue, 05 Dec 2023 10:08:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647512.1010700; Tue, 05 Dec 2023 10:08:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rASLS-0005kL-2S; Tue, 05 Dec 2023 10:08:02 +0000
Received: by outflank-mailman (input) for mailman id 647512;
 Tue, 05 Dec 2023 10:08:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rASLR-0005kF-41
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 10:08:01 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a263359-9356-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 11:07:58 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 659D322060;
 Tue,  5 Dec 2023 10:07:58 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 18D64138FF;
 Tue,  5 Dec 2023 10:07:58 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id fXJ/BH72bmXyMAAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 10:07:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a263359-9356-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701770878; 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=3pLGrDwnK3jAaev0mySNOBjMO3Q36w958rI8Dt5sBmA=;
	b=TTzvJ5y3BN8dLICVwNRqlfs0qq83yap2Vb/IYw6EFcvTxwHv1eqCPt2BY9cfUZUoGxjY5V
	qzOMXlhU31x1K1GwLE4CEOWEQcYc1wKyRhh7FF6zA3E0Uka7jGeok4bwfMW9bVDjuHOKLn
	7qLw58C2XtSPvdewHz4AUkDIPzIrH8M=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/2] xen: have a more generic unaligned.h header
Date: Tue,  5 Dec 2023 11:07:54 +0100
Message-Id: <20231205100756.18920-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Score: 3.81
X-Spam-Level: ***
X-Spamd-Result: default: False [3.81 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(0.11)[62.11%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MID_CONTAINS_FROM(1.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]

Update Xen's unaligned.h header to support all architectures, allowing
to remove the architecture specific variants (x86 only until now).

Juergen Gross (2):
  xen: make include/xen/unaligned.h usable on all architectures
  xen: remove asm/unaligned.h

 xen/arch/x86/include/asm/unaligned.h |   6 --
 xen/common/lz4/defs.h                |   2 +-
 xen/common/lzo.c                     |   2 +-
 xen/common/unlzo.c                   |   2 +-
 xen/common/xz/private.h              |   2 +-
 xen/common/zstd/mem.h                |   2 +-
 xen/include/xen/unaligned.h          | 121 +++++++++++++++++++--------
 xen/lib/xxhash32.c                   |   2 +-
 xen/lib/xxhash64.c                   |   2 +-
 9 files changed, 93 insertions(+), 48 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/unaligned.h

-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 10:08:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 10:08:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647513.1010710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rASLY-00060p-BX; Tue, 05 Dec 2023 10:08:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647513.1010710; Tue, 05 Dec 2023 10:08:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rASLY-00060i-8q; Tue, 05 Dec 2023 10:08:08 +0000
Received: by outflank-mailman (input) for mailman id 647513;
 Tue, 05 Dec 2023 10:08: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=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rASLW-0005zz-Le
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 10:08: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 2e91f1bd-9356-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 11:08:05 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 0121122060;
 Tue,  5 Dec 2023 10:08:04 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id B7DD3138FF;
 Tue,  5 Dec 2023 10:08:03 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id ArWzK4P2bmX6MAAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 10:08: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: 2e91f1bd-9356-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701770884; 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=2fYQv/39LJ/pI8k7gLnqlsK8l/cey3HS0JyD9skuDbw=;
	b=px9YmtebgyHlc7a5wrtMn8qltRRRoBjVOspgyMydzA1AQvl3txfWWUPkmgs7arLdbA5l3P
	zGPza2ljlKaI2LIoPT3HjEP+7Y1Q2h5YS7mkn+9rtHjO+2/D8HdtBlbo2f3RFO3ZfWlCmn
	pj7BictQ/LKTnzHgMMjdupkqtG4Fx3A=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>,
	Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all architectures
Date: Tue,  5 Dec 2023 11:07:55 +0100
Message-Id: <20231205100756.18920-2-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231205100756.18920-1-jgross@suse.com>
References: <20231205100756.18920-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spamd-Result: default: False [-3.30 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 REPLY(-4.00)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[arndb.de:email,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[];
	 BAYES_HAM(-3.00)[99.99%]
X-Spam-Score: -3.30

Instead of defining get_unaligned() and put_unaligned() in a way that
is only supporting architectures allowing unaligned accesses, use the
same approach as the Linux kernel and let the compiler do the
decision how to generate the code for probably unaligned data accesses.

Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
the Linux kernel.

The generated code has been checked to be the same on x86.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 803f4e1eab7a
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 xen/include/xen/unaligned.h | 121 +++++++++++++++++++++++++-----------
 1 file changed, 86 insertions(+), 35 deletions(-)

diff --git a/xen/include/xen/unaligned.h b/xen/include/xen/unaligned.h
index 0a2b16d05d..325d9f875f 100644
--- a/xen/include/xen/unaligned.h
+++ b/xen/include/xen/unaligned.h
@@ -1,12 +1,4 @@
-/*
- * This header can be used by architectures where unaligned accesses work
- * without faulting, and at least reasonably efficiently.  Other architectures
- * will need to have a custom asm/unaligned.h.
- */
-#ifndef __ASM_UNALIGNED_H__
-#error "xen/unaligned.h should not be included directly - include asm/unaligned.h instead"
-#endif
-
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef __XEN_UNALIGNED_H__
 #define __XEN_UNALIGNED_H__
 
@@ -15,67 +7,126 @@
 #include <asm/byteorder.h>
 #endif
 
-#define get_unaligned(p) (*(p))
-#define put_unaligned(val, p) (*(p) = (val))
+/*
+ * This is the most generic implementation of unaligned accesses
+ * and should work almost anywhere.
+ */
+
+#define __get_unaligned_t(type, ptr) ({						\
+	const struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr);	\
+	__pptr->x;								\
+})
+
+#define __put_unaligned_t(type, val, ptr) do {					\
+	struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr);		\
+	__pptr->x = (val);							\
+} while (0)
+
+#define get_unaligned(ptr)	__get_unaligned_t(typeof(*(ptr)), (ptr))
+#define put_unaligned(val, ptr) __put_unaligned_t(typeof(*(ptr)), (val), (ptr))
+
+static inline u16 get_unaligned_le16(const void *p)
+{
+	return le16_to_cpu(__get_unaligned_t(__le16, p));
+}
+
+static inline u32 get_unaligned_le32(const void *p)
+{
+	return le32_to_cpu(__get_unaligned_t(__le32, p));
+}
+
+static inline u64 get_unaligned_le64(const void *p)
+{
+	return le64_to_cpu(__get_unaligned_t(__le64, p));
+}
+
+static inline void put_unaligned_le16(u16 val, void *p)
+{
+	__put_unaligned_t(__le16, cpu_to_le16(val), p);
+}
+
+static inline void put_unaligned_le32(u32 val, void *p)
+{
+	__put_unaligned_t(__le32, cpu_to_le32(val), p);
+}
+
+static inline void put_unaligned_le64(u64 val, void *p)
+{
+	__put_unaligned_t(__le64, cpu_to_le64(val), p);
+}
+
+static inline u16 get_unaligned_be16(const void *p)
+{
+	return be16_to_cpu(__get_unaligned_t(__be16, p));
+}
+
+static inline u32 get_unaligned_be32(const void *p)
+{
+	return be32_to_cpu(__get_unaligned_t(__be32, p));
+}
 
-static inline uint16_t get_unaligned_be16(const void *p)
+static inline u64 get_unaligned_be64(const void *p)
 {
-	return be16_to_cpup(p);
+	return be64_to_cpu(__get_unaligned_t(__be64, p));
 }
 
-static inline void put_unaligned_be16(uint16_t val, void *p)
+static inline void put_unaligned_be16(u16 val, void *p)
 {
-	*(__force __be16*)p = cpu_to_be16(val);
+	__put_unaligned_t(__be16, cpu_to_be16(val), p);
 }
 
-static inline uint32_t get_unaligned_be32(const void *p)
+static inline void put_unaligned_be32(u32 val, void *p)
 {
-	return be32_to_cpup(p);
+	__put_unaligned_t(__be32, cpu_to_be32(val), p);
 }
 
-static inline void put_unaligned_be32(uint32_t val, void *p)
+static inline void put_unaligned_be64(u64 val, void *p)
 {
-	*(__force __be32*)p = cpu_to_be32(val);
+	__put_unaligned_t(__be64, cpu_to_be64(val), p);
 }
 
-static inline uint64_t get_unaligned_be64(const void *p)
+static inline u32 __get_unaligned_be24(const u8 *p)
 {
-	return be64_to_cpup(p);
+	return p[0] << 16 | p[1] << 8 | p[2];
 }
 
-static inline void put_unaligned_be64(uint64_t val, void *p)
+static inline u32 get_unaligned_be24(const void *p)
 {
-	*(__force __be64*)p = cpu_to_be64(val);
+	return __get_unaligned_be24(p);
 }
 
-static inline uint16_t get_unaligned_le16(const void *p)
+static inline u32 __get_unaligned_le24(const u8 *p)
 {
-	return le16_to_cpup(p);
+	return p[0] | p[1] << 8 | p[2] << 16;
 }
 
-static inline void put_unaligned_le16(uint16_t val, void *p)
+static inline u32 get_unaligned_le24(const void *p)
 {
-	*(__force __le16*)p = cpu_to_le16(val);
+	return __get_unaligned_le24(p);
 }
 
-static inline uint32_t get_unaligned_le32(const void *p)
+static inline void __put_unaligned_be24(const u32 val, u8 *p)
 {
-	return le32_to_cpup(p);
+	*p++ = val >> 16;
+	*p++ = val >> 8;
+	*p++ = val;
 }
 
-static inline void put_unaligned_le32(uint32_t val, void *p)
+static inline void put_unaligned_be24(const u32 val, void *p)
 {
-	*(__force __le32*)p = cpu_to_le32(val);
+	__put_unaligned_be24(val, p);
 }
 
-static inline uint64_t get_unaligned_le64(const void *p)
+static inline void __put_unaligned_le24(const u32 val, u8 *p)
 {
-	return le64_to_cpup(p);
+	*p++ = val;
+	*p++ = val >> 8;
+	*p++ = val >> 16;
 }
 
-static inline void put_unaligned_le64(uint64_t val, void *p)
+static inline void put_unaligned_le24(const u32 val, void *p)
 {
-	*(__force __le64*)p = cpu_to_le64(val);
+	__put_unaligned_le24(val, p);
 }
 
 #endif /* __XEN_UNALIGNED_H__ */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 10:08:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 10:08:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647514.1010720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rASLc-0006In-I7; Tue, 05 Dec 2023 10:08:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647514.1010720; Tue, 05 Dec 2023 10: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 1rASLc-0006Ie-FJ; Tue, 05 Dec 2023 10:08:12 +0000
Received: by outflank-mailman (input) for mailman id 647514;
 Tue, 05 Dec 2023 10: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=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rASLa-0005zz-OG
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 10:08:10 +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 313a06f1-9356-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 11:08:10 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 9440122060;
 Tue,  5 Dec 2023 10:08:09 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 559D3138FF;
 Tue,  5 Dec 2023 10:08:09 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id T0yiE4n2bmUIMQAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 10:08: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: 313a06f1-9356-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701770889; 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=lq6Aix92m1tHhsIqJbDqfDfy3efyJN8pLKRv9vH1cNQ=;
	b=pBEvvnH2FkEEI5TtKI0Dx+Q692w8oeck2k9zDaBZ2cXJy/i6X6dALwo1gCQQ71/NWJBxxj
	LNRNJpXIiq456Piw0CZupK/zz3tOMn8b6ThMWH4T3S5f2t4DuPNh7SJzR42FvfbzVpC/F/
	AJRCnLHEmH7+gK8w+1OGcER8dOcO36A=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] xen: remove asm/unaligned.h
Date: Tue,  5 Dec 2023 11:07:56 +0100
Message-Id: <20231205100756.18920-3-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231205100756.18920-1-jgross@suse.com>
References: <20231205100756.18920-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Score: 4.80
X-Spam-Level: ****
X-Spamd-Result: default: False [4.80 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 REPLY(-4.00)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]

With include/xen/unaligned.h now dealing properly with unaligned
accesses for all architectures, asm/unaligned.h can be removed and
users can be switched to include xen/unaligned.h instead.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 xen/arch/x86/include/asm/unaligned.h | 6 ------
 xen/common/lz4/defs.h                | 2 +-
 xen/common/lzo.c                     | 2 +-
 xen/common/unlzo.c                   | 2 +-
 xen/common/xz/private.h              | 2 +-
 xen/common/zstd/mem.h                | 2 +-
 xen/lib/xxhash32.c                   | 2 +-
 xen/lib/xxhash64.c                   | 2 +-
 8 files changed, 7 insertions(+), 13 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/unaligned.h

diff --git a/xen/arch/x86/include/asm/unaligned.h b/xen/arch/x86/include/asm/unaligned.h
deleted file mode 100644
index 6070801d4a..0000000000
--- a/xen/arch/x86/include/asm/unaligned.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_UNALIGNED_H__
-#define __ASM_UNALIGNED_H__
-
-#include <xen/unaligned.h>
-
-#endif /* __ASM_UNALIGNED_H__ */
diff --git a/xen/common/lz4/defs.h b/xen/common/lz4/defs.h
index 10609f5a53..6d81113266 100644
--- a/xen/common/lz4/defs.h
+++ b/xen/common/lz4/defs.h
@@ -10,7 +10,7 @@
 
 #ifdef __XEN__
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u16 get_unaligned_le16(const void *p)
diff --git a/xen/common/lzo.c b/xen/common/lzo.c
index a87c76dded..cc03f0f554 100644
--- a/xen/common/lzo.c
+++ b/xen/common/lzo.c
@@ -97,7 +97,7 @@
 #ifdef __XEN__
 #include <xen/lib.h>
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 #define get_unaligned_le16(_p) (*(u16 *)(_p))
 #endif
diff --git a/xen/common/unlzo.c b/xen/common/unlzo.c
index 74056778eb..bdcefa95b3 100644
--- a/xen/common/unlzo.c
+++ b/xen/common/unlzo.c
@@ -34,7 +34,7 @@
 
 #ifdef __XEN__
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u16 get_unaligned_be16(const void *p)
diff --git a/xen/common/xz/private.h b/xen/common/xz/private.h
index e6814250e8..2299705378 100644
--- a/xen/common/xz/private.h
+++ b/xen/common/xz/private.h
@@ -13,7 +13,7 @@
 #ifdef __XEN__
 #include <xen/kernel.h>
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u32 get_unaligned_le32(const void *p)
diff --git a/xen/common/zstd/mem.h b/xen/common/zstd/mem.h
index 2acae6a8ed..ae1e305126 100644
--- a/xen/common/zstd/mem.h
+++ b/xen/common/zstd/mem.h
@@ -23,7 +23,7 @@
 #ifdef __XEN__
 #include <xen/string.h> /* memcpy */
 #include <xen/types.h>  /* size_t, ptrdiff_t */
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #endif
 
 /*-****************************************
diff --git a/xen/lib/xxhash32.c b/xen/lib/xxhash32.c
index e8d403e5ce..32efa651c5 100644
--- a/xen/lib/xxhash32.c
+++ b/xen/lib/xxhash32.c
@@ -42,7 +42,7 @@
 #include <xen/errno.h>
 #include <xen/string.h>
 #include <xen/xxhash.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 
 /*-*************************************
  * Macros
diff --git a/xen/lib/xxhash64.c b/xen/lib/xxhash64.c
index 481e76fbcf..1858e236fe 100644
--- a/xen/lib/xxhash64.c
+++ b/xen/lib/xxhash64.c
@@ -43,7 +43,7 @@
 #include <xen/errno.h>
 #include <xen/string.h>
 #include <xen/xxhash.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #endif
 
 /*-*************************************
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 10:30:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 10:30:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647525.1010730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAShQ-0004HW-Bd; Tue, 05 Dec 2023 10:30:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647525.1010730; Tue, 05 Dec 2023 10: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 1rAShQ-0004HP-8o; Tue, 05 Dec 2023 10:30:44 +0000
Received: by outflank-mailman (input) for mailman id 647525;
 Tue, 05 Dec 2023 10:30:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ibAO=HQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rAShP-0004HJ-5y
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 10:30:43 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2060b.outbound.protection.outlook.com
 [2a01:111:f400:7e8b::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 558327ed-9359-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 11:30:40 +0100 (CET)
Received: from DM6PR02CA0082.namprd02.prod.outlook.com (2603:10b6:5:1f4::23)
 by SN7PR12MB7810.namprd12.prod.outlook.com (2603:10b6:806:34c::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 10:30:35 +0000
Received: from DS2PEPF0000343F.namprd02.prod.outlook.com
 (2603:10b6:5:1f4:cafe::eb) by DM6PR02CA0082.outlook.office365.com
 (2603:10b6:5:1f4::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Tue, 5 Dec 2023 10:30:35 +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.7068.20 via Frontend Transport; Tue, 5 Dec 2023 10:30:34 +0000
Received: from SATLEXMB08.amd.com (10.181.40.132) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 5 Dec
 2023 04:30:31 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB08.amd.com
 (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 5 Dec
 2023 02:30:17 -0800
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.34 via Frontend
 Transport; Tue, 5 Dec 2023 04:30:16 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 558327ed-9359-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dtT45+Ioq5gZxwS1AE3gGZCj9bdkvehY2+9ClAd4AlwD/7KYM1YAjr5xjqJD2UE7Xl/KHxpF2vFS0oYG/4wWgIR9lt0wj3iAzSro4V89PkO1GYmegjAOrzRzKt0d3n9ze7iQmhsGOwh1aJhQk5xdDc2AcdxYl5yjbCJF/Rl5spUwtEd0mHl6Ba+5CgxP/aT9ya+1iLJy4UQrhkJ9KYBgmt+MbO1LYctjClMBNSxZ1GGRTDcrkAFNWgG0hflUI8MT0m7qp0KaDiDHkBZVxsI15I+Vf6VloJtwOzAohOxxP+b8pD/6ey/5w1cchCH5l+zRmiX+KFvsDZNRzzF7BiwutQ==
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=XRRycqvsnZ55Tn/c5Gjr5mCYcItaczlpUEwVwLZmPmY=;
 b=DLXdMBwwSpdz7Uv1GHubYYkXduzTzEXai2PKbNl5zW+MKHjo7jn8J0kL2QDz362tJZeF4oX8XZ0KGj8hwChd+Z84qbno7b/6qEVyAkN8cQ3TPbYi4RN/hU2Pdey3MHGGlMwKQInCvTeTD1Ba7uLllkwiXqH03ZFJ6RyoHAB1NrWRI5E9kp9yxr9DOyhVacojaFItIyddjD+1TZadEJSfTkTMBixdaKVcmWRqcRWG1+blqZkTnSQftGzfxx0I/4ccmQQoRLCeuT64xTj7Vll6lBdfmCfI94GcLB5GJMlBQT09Zay/lrIvMEXJixL0V9+SKGpP2f3Q+5vV8XLp4lRy+g==
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=XRRycqvsnZ55Tn/c5Gjr5mCYcItaczlpUEwVwLZmPmY=;
 b=LWs7/ToKJ2zV3PsX+2obDOz54ympxy0tpRTIqb+P0746CtujEDhHlxdR/LC2BwoPeUNLJBlKvnbjrhF2UP1sG9y8kBgiV7G3VYKJzFFKGudFHOTyLEfTl1+UghHbpQh71u+auqtW5ccI8ndciUnIKfbBc23ALPxpN5IxpZz0W8A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
Date: Tue, 5 Dec 2023 11:30:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-US
To: Julien Grall <julien@xen.org>, Ayan Kumar Halder <ayankuma@amd.com>, "Ayan
 Kumar Halder" <ayan.kumar.halder@amd.com>, <sstabellini@kernel.org>,
	<stefano.stabellini@amd.com>, <bertrand.marquis@arm.com>,
	<Volodymyr_Babchuk@epam.com>
CC: <xen-devel@lists.xenproject.org>
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF0000343F:EE_|SN7PR12MB7810:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f05640c-aa8f-46a5-ecab-08dbf57d3712
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OAGKy4NZ6DaIOakhIQlKVJFFDpaHHwbKeDDhXkidppJtvSl9MMHNDHxqAtzjPM1rmMo5wSUgb8O0VNb1KsVM7cPBdNGuhSYjXixBoo8iTmdLqwtrko7avW9f5zIKWJH3v4oQ1PaPC3n2ao+SFxCI2QBT6P5OY3wzsMx9la0FZuJcrahSPAsDQzU+0pzrJLvDUWmzmswNAhYG3lsx6d/+lZe7ESO2K/spywh+JItkbhi9INXVIIzZ+2ilVeZHKmumrYlYs0/ldr1N19yMSq9tbJKsXqUTfTRWjL3ut7ZAzvLLlOJe0yQK3QFKtMvSLcCz/GPYuJ7reliUoe4uhp8e1l80SP8K5PSDMcMb3noMrMUv9dPrlLt5u5b9Ahw9TAogGozdFd6hPZv+ZD9jMTf4CRXnMbhvJjIVybmRDxJ3BEPmmBHDZ7r9SvziT9Ym6p2MPGmeI4LSCcUgjvf+cIfIa0X/gDtd2OgHCgUHJ41/DWhmaAREZjAh3x95YlmPXkJIA0qAGnZMiCjsxci340sN7acnw8NqB+e8jtYFzDCiDrQ4DRUgOFhgUrkpNHPdhTWevBl3nhUvgv8RzmknW2UXv90spLDAebOEWdiOF/wwfte9901numMlBBX5X2HED3XJoBEVj0UDOLueV0khnlnqZyAORk0aUiaFlDWygVVHpSAKylcEfDcQMQ1O24Dq3nAUws+CcLZWQYfHwvaYlJ6JH5HPADcZ7znzi8d0tm2rzt6RV4eGWug6DBx+FHMqgtDTQt/TkvRnCK91tuyT2c61QJ7P1EJkZ1nTYCjsa1zj4SpymGXqE8xa0HRLVfdOVLEpgrqBFjw6LizGLflflUQdKZirsezV8B1DRTwDri7iT2zHZZMWbIxRibMN/ZCDxaVL
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(396003)(136003)(39860400002)(376002)(230922051799003)(230273577357003)(230173577357003)(64100799003)(451199024)(186009)(1800799012)(82310400011)(36840700001)(40470700004)(46966006)(47076005)(40480700001)(26005)(53546011)(356005)(81166007)(4326008)(8936002)(8676002)(110136005)(31686004)(70206006)(316002)(70586007)(36860700001)(16576012)(82740400003)(336012)(2616005)(426003)(478600001)(83380400001)(2906002)(41300700001)(5660300002)(40460700003)(86362001)(44832011)(36756003)(31696002)(2101003)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 10:30:34.5823
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f05640c-aa8f-46a5-ecab-08dbf57d3712
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: SN7PR12MB7810



On 05/12/2023 11:01, Julien Grall wrote:
> 
> 
> On 05/12/2023 09:28, Michal Orzel wrote:
>> Hi Julien,
>>
>> On 04/12/2023 20:55, Julien Grall wrote:
>>>
>>>
>>> On 04/12/2023 13:02, Ayan Kumar Halder wrote:
>>>>
>>>> On 04/12/2023 10:31, Julien Grall wrote:
>>>>> Hi Ayan,
>>>> Hi Julien,
>>>>>
>>>>> On 01/12/2023 18:50, Ayan Kumar Halder wrote:
>>>>>> Currently if user enables HVC_DCC config option in Linux, it invokes
>>>>>> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
>>>>>> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
>>>>>> an undefined exception to the guest. And Linux crashes.
>>>>>
>>>>> I am missing some data points here to be able to say whether I would
>>>>> be ok with emulating the registers. So some questions:
>>>>>    * As you wrote below, HVC_DCC will return -ENODEV after this
>>>>> emulation. So may I ask what's the use case to enable it? (e.g. is
>>>>> there a distro turning this on?)
>>>>
>>>> I am not aware of any distro using (or not using) this feature. This
>>>> issue came to light during our internal testing, when HVC_DCC was
>>>> enabled to use the debug console. When Linux runs without Xen, then we
>>>> could observe the logs on the debug console. When Linux was running as a
>>>> VM, it crashed.
>>>>
>>>> My intention here was to do the bare minimum emulation so that the crash
>>>> could be avoided.
>>> This reminds me a bit the discussion around "xen/arm64: Decode ldr/str
>>> post increment operations". I don't want Xen to contain half-backed
>>> emulation just to please an OS in certain configuration that doesn't
>>> seem to be often used.
>>>
>>> Also, AFAICT, KVM is in the same situation...
>> Well, KVM is not in the same situation. It emulates all DCC regs as RAZ/WI, so there
>> will be no fault on an attempt to access the DCC.
> 
> Does this mean a guest will think the JTAG is availabe?
Yes, it will believe the DCC is available which is not a totally bad idea. Yes, it will not have
any effect but at least covers the polling loop. The solution proposed here sounds better but does not take
into account the busy while loop when sending the char. Linux DCC earlycon does not make an initial check that runtime
driver does and will keep waiting in the loop if TXfull is set. Emulating everything as RAZ/WI solves that.
As you can see, each solution has its flaws and depends on the OS implementation.

> 
>>
>> In general, I think that if a register is not optional and does not depend on other register
>> to be checked first (e.g. a feature/control register we emulate), which implies that it is fully ok for a guest to
>> access it directly - we should at least try to do something not to crash a guest.
> 
> This is where we have opposing opinion. I view crashing a guest better
> than providing a wrong emulation because it gives a clear signal that
> the register they are trying to access will not function properly.
> 
> We had this exact same discussion a few years ago when Linux started to
> access GIC*_ACTIVER registers. I know that Stefano was for emulating
> them as RAZ but this had consequences on the domain side (Linux
> sometimes need to read them). We settled on printing a warning which is
> not great but better than claiming we properly emulate the register.
> 
>>
>> I agree that this feature is not widely used. In fact I can only find it implemented in Linux and U-BOOT
>> and the issue I found in DBGDSCRINT (no access from EL0, even though we emulate REXT.UDCCdis as 0) only
>> proves that. At the same time, it does not cost us much to add this trivial support.
> 
> See above. If we provide an (even basic) emulation, we need to make sure
> it is correct and doesn't have a side effect on the guest. If we can't
> guarantee that (e.g. like for set/way when a device is assigned), then
> the best course of action is to crash the domain.
> 
> AFAICT, the proposed emulation would be ok. But I want to make clear
> that I would not generally be ok with this approach and the decision
> would need to be on the case by case basis.
This goes without saying. Every issue requires separate investigation.

~Michal


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 10:32:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 10:32:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647528.1010740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rASiw-0004tb-QI; Tue, 05 Dec 2023 10:32:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647528.1010740; Tue, 05 Dec 2023 10:32: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 1rASiw-0004tU-My; Tue, 05 Dec 2023 10:32:18 +0000
Received: by outflank-mailman (input) for mailman id 647528;
 Tue, 05 Dec 2023 10:32:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rASiv-0004tO-92
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 10:32:17 +0000
Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com
 [2a00:1450:4864:20::441])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e584258-9359-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 11:32:14 +0100 (CET)
Received: by mail-wr1-x441.google.com with SMTP id
 ffacd0b85a97d-3334254cfa3so1390408f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 02:32:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 s1-20020a5d5101000000b003333521a1cesm10126337wrt.57.2023.12.05.02.32.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 02:32:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e584258-9359-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701772334; x=1702377134; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=DVNqy7YsuIkl8aQ4ZbP26tEAG4Op9jDFwyUj1GfebWM=;
        b=b+SyUWHcExnaaQjOe4lmvdQPLKFp/2x3VeWED/Yx+u3ddbVV/7HiJN3O81+zAomAgu
         j60qdcWTmBIBHoX+OSCKPQQjbcgnvoXeRZp9p14Gtj/G4H/XNWpCvvGlKablJ/aFtYle
         /V9XN+TONiDJIpMEf0tLiRPsxdCXKAaid4xYMp/SeP9mdAZ+k+0QQtkQLovfOzOrHGf4
         kcTQU/vC36jT9uK9oDmnTBuSe+9hjUf1iFlwGckTiRjtH91J34Ew/nvaiLZP9/2NrF6f
         syEQGsK+6UxHtd39gHKbmzMkaD9GWJCOAugXIpvA374y+a2LKUD1s7jsoy3fc38R/IJu
         sgIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701772334; x=1702377134;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=DVNqy7YsuIkl8aQ4ZbP26tEAG4Op9jDFwyUj1GfebWM=;
        b=oOZ77L/+WtgypUQOHlXlamgzUVslX9dMfS1n432Knw9gDC/fI3vOyJVhItM7soZlMj
         tRllEkvHeV1RYTu1jcnJt8CKNAix9l7oceNlnB/AgPP5e8lAuDKUycStKw2l1qPl+Z/S
         9q6oLKDg6rJvzC5pjdN1o+sm0n7OScOgRskJAylyUzZy375qhwFjgQmlVaQFPAQF4fNN
         A4Ao9m4RUcGNfQAMRvDBwnYELIqwWLSUJYvu/Vv0zgUqbhUu2nQyRFiOgYmJ8dat7h+n
         IliVnmMFC3HozitEf4uSQjHVlFXH6Dn9dSTZBJyjnEs7N5SpWaRNTTco6kGo5uF0708K
         5IDA==
X-Gm-Message-State: AOJu0Ywa+Bz+XR5Prw5EmZM/K7FoT94fu8mtoT0Tijkzzo5/Ow4jiDnC
	26OkoAVI5GfrCuHQes/q2yW/
X-Google-Smtp-Source: AGHT+IGUv2+FcEpWRrKS8f75v5tGnUn79eiMPuocryfL3u4IX6/sUBY1Mpx8NL+uvLx34AxvGV5tYA==
X-Received: by 2002:adf:fd48:0:b0:333:2fd7:95f8 with SMTP id h8-20020adffd48000000b003332fd795f8mr614778wrs.51.1701772333985;
        Tue, 05 Dec 2023 02:32:13 -0800 (PST)
Message-ID: <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
Date: Tue, 5 Dec 2023 11:32:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Jiqian Chen <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Bjorn Helgaas <bhelgaas@google.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 Alex Deucher <Alexander.Deucher@amd.com>,
 Christian Koenig <Christian.Koenig@amd.com>,
 Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang <Julia.Zhang@amd.com>,
 Huang Rui <Ray.Huang@amd.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW7rDjjC0gxEI1cq@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 10:19, Roger Pau MonnÃ© wrote:
> On Mon, Dec 04, 2023 at 02:19:33PM -0800, Stefano Stabellini wrote:
>> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
>>> On Fri, Dec 01, 2023 at 07:37:55PM -0800, Stefano Stabellini wrote:
>>>> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
>>>>> On Thu, Nov 30, 2023 at 07:15:17PM -0800, Stefano Stabellini wrote:
>>>>>> On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
>>>>>>> On Wed, Nov 29, 2023 at 07:53:59PM -0800, Stefano Stabellini wrote:
>>>>>>>> On Fri, 24 Nov 2023, Jiqian Chen wrote:
>>>>>>>>> This patch is to solve two problems we encountered when we try to
>>>>>>>>> passthrough a device to hvm domU base on Xen PVH dom0.
>>>>>>>>>
>>>>>>>>> First, hvm guest will alloc a pirq and irq for a passthrough device
>>>>>>>>> by using gsi, before that, the gsi must first has a mapping in dom0,
>>>>>>>>> see Xen code pci_add_dm_done->xc_domain_irq_permission, it will call
>>>>>>>>> into Xen and check whether dom0 has the mapping. See
>>>>>>>>> XEN_DOMCTL_irq_permission->pirq_access_permitted, "current" is PVH
>>>>>>>>> dom0 and it return irq is 0, and then return -EPERM.
>>>>>>>>> This is because the passthrough device doesn't do PHYSDEVOP_map_pirq
>>>>>>>>> when thay are enabled.
>>>>>>>>>
>>>>>>>>> Second, in PVH dom0, the gsi of a passthrough device doesn't get
>>>>>>>>> registered, but gsi must be configured for it to be able to be
>>>>>>>>> mapped into a domU.
>>>>>>>>>
>>>>>>>>> After searching codes, we can 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 problems
>>>>>>>>> can be conclude to that the gsi of a passthrough device doesn't be
>>>>>>>>> unmasked.
>>>>>>>>>
>>>>>>>>> To solve the unmaske problem, this patch call the unmask_irq when we
>>>>>>>>> assign a device to be passthrough. So that the gsi can get registered
>>>>>>>>> and mapped in PVH dom0.
>>>>>>>>
>>>>>>>>
>>>>>>>> Roger, this seems to be more of a Xen issue than a Linux issue. Why do
>>>>>>>> we need the unmask check in Xen? Couldn't we just do:
>>>>>>>>
>>>>>>>>
>>>>>>>> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
>>>>>>>> index 4e40d3609a..df262a4a18 100644
>>>>>>>> --- a/xen/arch/x86/hvm/vioapic.c
>>>>>>>> +++ b/xen/arch/x86/hvm/vioapic.c
>>>>>>>> @@ -287,7 +287,7 @@ static void vioapic_write_redirent(
>>>>>>>>              hvm_dpci_eoi(d, gsi);
>>>>>>>>      }
>>>>>>>>  
>>>>>>>> -    if ( is_hardware_domain(d) && unmasked )
>>>>>>>> +    if ( is_hardware_domain(d) )
>>>>>>>>      {
>>>>>>>>          /*
>>>>>>>>           * NB: don't call vioapic_hwdom_map_gsi while holding hvm.irq_lock
>>>>>>>
>>>>>>> There are some issues with this approach.
>>>>>>>
>>>>>>> mp_register_gsi() will only setup the trigger and polarity of the
>>>>>>> IO-APIC pin once, so we do so once the guest unmask the pin in order
>>>>>>> to assert that the configuration is the intended one.  A guest is
>>>>>>> allowed to write all kind of nonsense stuff to the IO-APIC RTE, but
>>>>>>> that doesn't take effect unless the pin is unmasked.
>>>>>>>
>>>>>>> Overall the question would be whether we have any guarantees that
>>>>>>> the hardware domain has properly configured the pin, even if it's not
>>>>>>> using it itself (as it hasn't been unmasked).
>>>>>>>
>>>>>>> IIRC PCI legacy interrupts are level triggered and low polarity, so we
>>>>>>> could configure any pins that are not setup at bind time?
>>>>>>
>>>>>> That could work.
>>>>>>
>>>>>> Another idea is to move only the call to allocate_and_map_gsi_pirq at
>>>>>> bind time? That might be enough to pass a pirq_access_permitted check.
>>>>>
>>>>> Maybe, albeit that would change the behavior of XEN_DOMCTL_bind_pt_irq
>>>>> just for PT_IRQ_TYPE_PCI and only when called from a PVH dom0 (as the
>>>>> parameter would be a GSI instead of a previously mapped IRQ).  Such
>>>>> difference just for PT_IRQ_TYPE_PCI is slightly weird - if we go that
>>>>> route I would recommend that we instead introduce a new dmop that has
>>>>> this syntax regardless of the domain type it's called from.
>>>>
>>>> Looking at the code it is certainly a bit confusing. My point was that
>>>> we don't need to wait until polarity and trigger are set appropriately
>>>> to allow Dom0 to pass successfully a pirq_access_permitted() check. Xen
>>>> should be able to figure out that Dom0 is permitted pirq access.
>>>
>>> The logic is certainly not straightforward, and it could benefit from
>>> some comments.
>>>
>>> The irq permissions are a bit special, in that they get setup when the
>>> IRQ is mapped.
>>>
>>> The problem however is not so much with IRQ permissions, that we can
>>> indeed sort out internally in Xen.  Such check in dom0 has the side
>>> effect of preventing the IRQ from being assigned to a domU without the
>>> hardware source being properly configured AFAICT.
>>
>> Now I understand why you made a comment previously about Xen having to
>> configure trigger and polarity for these interrupts on its own.
>>
>>
>>>> So the idea was to move the call to allocate_and_map_gsi_pirq() earlier
>>>> somewhere because allocate_and_map_gsi_pirq doesn't require trigger or
>>>> polarity to be configured to work. But the suggestion of doing it a
>>>> "bind time" (meaning: XEN_DOMCTL_bind_pt_irq) was a bad idea.
>>>>
>>>> But maybe we can find another location, maybe within
>>>> xen/arch/x86/hvm/vioapic.c, to call allocate_and_map_gsi_pirq() before
>>>> trigger and polarity are set and before the interrupt is unmasked.
>>>>
>>>> Then we change the implementation of vioapic_hwdom_map_gsi to skip the
>>>> call to allocate_and_map_gsi_pirq, because by the time
>>>> vioapic_hwdom_map_gsi we assume that allocate_and_map_gsi_pirq had
>>>> already been done.
>>>
>>> But then we would end up in a situation where the
>>> pirq_access_permitted() check will pass, but the IO-APIC pin won't be
>>> configured, which I think it's not what we want.
>>>
>>> One option would be to allow mp_register_gsi() to be called multiple
>>> times, and update the IO-APIC pin configuration as long as the pin is
>>> not unmasked.  That would propagate each dom0 RTE update to the
>>> underlying IO-APIC.  However such approach relies on dom0 configuring
>>> all possible IO-APIC pins, even if no device on dom0 is using them, I
>>> think it's not a very reliable option.
>>>
>>> Another option would be to modify the toolstack to setup the GSI
>>> itself using the PHYSDEVOP_setup_gsi hypercall.  As said in a previous
>>> email, since we only care about PCI device passthrough the legacy INTx
>>> should always be level triggered and low polarity.
>>>
>>>> I am not familiar with vioapic.c but to give you an idea of what I was
>>>> thinking:
>>>>
>>>>
>>>> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
>>>> index 4e40d3609a..16d56fe851 100644
>>>> --- a/xen/arch/x86/hvm/vioapic.c
>>>> +++ b/xen/arch/x86/hvm/vioapic.c
>>>> @@ -189,14 +189,6 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,
>>>>          return ret;
>>>>      }
>>>>  
>>>> -    ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
>>>> -    if ( ret )
>>>> -    {
>>>> -        gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
>>>> -                 gsi, ret);
>>>> -        return ret;
>>>> -    }
>>>> -
>>>>      pcidevs_lock();
>>>>      ret = pt_irq_create_bind(currd, &pt_irq_bind);
>>>>      if ( ret )
>>>> @@ -287,6 +279,17 @@ static void vioapic_write_redirent(
>>>>              hvm_dpci_eoi(d, gsi);
>>>>      }
>>>>  
>>>> +    if ( is_hardware_domain(d) ) 
>>>> +    {
>>>> +        int pirq = gsi, ret;
>>>> +        ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
>>>> +        if ( ret )
>>>> +        {
>>>> +            gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
>>>> +                    gsi, ret);
>>>> +            return ret;
>>>> +        }
>>>> +    }
>>>>      if ( is_hardware_domain(d) && unmasked )
>>>>      {
>>>>          /*
>>>
>>> As said above, such approach relies on dom0 writing to the IO-APIC RTE
>>> of likely each IO-APIC pin, which is IMO not quite reliable.  In there
>>> are two different issues here that need to be fixed for PVH dom0:
>>>
>>>  - Fix the XEN_DOMCTL_irq_permission pirq_access_permitted() call to
>>>    succeed for a PVH dom0, even if dom0 is not using the GSI itself.
>>
>> Yes makes sense
>>
>>
>>>  - Configure IO-APIC pins for PCI interrupts even if dom0 is not using
>>>    the IO-APIC pin itself.
>>>
>>> First one needs to be fixed internally in Xen, second one will require
>>> the toolstack to issue an extra hypercall in order to ensure the
>>> IO-APIC pin is properly configured.
>>  
>> On ARM, Xen doesn't need to wait for dom0 to configure interrupts
>> correctly. Xen configures them all on its own at boot based on Device
>> Tree information. I guess it is not possible to do the same on x86?
> 
> No, not exactly.  There's some interrupt information in the ACPI MADT,
> but that's just for very specific sources (Interrupt Source Override
> Structures)
> 
> Then on AML devices can have resource descriptors that contain
> information about how interrupts are setup.  However Xen is not able
> to read any of this information on AML.
> 
> Legacy PCI interrupts are (always?) level triggered and low polarity,
> because it's assumed that an interrupt source can be shared between
> multiple devices.

Except that as per what you said just in the earlier paragraph ACPI can
tell us otherwise.

> I'm however not able to find any reference to this in the PCI spec,
> hence I'm reluctant to take this for granted in Xen, and default all
> GSIs >= 16 to such mode.
> 
> OTOH legacy PCI interrupts are not that used anymore, as almost all
> devices will support MSI(-X) (because PCIe mandates it) and OSes
> should prefer the latter.  SR-IOV VF don't even support legacy PCI
> interrupts anymore.
> 
>> If
>> not, then I can see why we would need 1 extra toolstack hypercall for
>> that (or to bundle the operation of configuring IO-APIC pins together
>> with an existing toolstack hypercall).
> 
> One suitable compromise would be to default unconfigured GSIs >= 16 to
> level-triggered and low-polarity, as I would expect that to work in
> almost all cases.  We can always introduce the usage of
> PHYSDEVOP_setup_gsi later if required.
> 
> Maybe Jan has more input here, would you agree to defaulting non-ISA
> GSIs to level-triggered, low-polarity in the absence of a specific
> setup provided by dom0?

Well, such defaulting is an option, but in case it's wrong we might
end up with hard to diagnose issues. Personally I'd prefer if we
didn't take shortcuts here, i.e. if we followed what Dom0 is able
to read from ACPI.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 10:35:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 10:35:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647531.1010749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rASlo-0005U6-5q; Tue, 05 Dec 2023 10:35:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647531.1010749; Tue, 05 Dec 2023 10:35:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rASlo-0005Tz-3H; Tue, 05 Dec 2023 10:35:16 +0000
Received: by outflank-mailman (input) for mailman id 647531;
 Tue, 05 Dec 2023 10:35:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rASlm-0005Tt-O7
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 10:35:14 +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 f8584422-9359-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 11:35:12 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 E2D911FB8B;
 Tue,  5 Dec 2023 10:35:11 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 9F590139E2;
 Tue,  5 Dec 2023 10:35:11 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id wgeOJd/8bmUmOwAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 10:35:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8584422-9359-11ee-9b0f-b553b5be7939
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>
Subject: [PATCH] config: update Mini-OS commit
Date: Tue,  5 Dec 2023 11:35:08 +0100
Message-Id: <20231205103508.5811-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 BAYES_SPAM(0.00)[23.20%];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: E2D911FB8B
X-Spam-Flag: YES
X-Spam: Yes

Update the Mini-OS upstream revision.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 Config.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Config.mk b/Config.mk
index 594c70d8bb..c184add653 100644
--- a/Config.mk
+++ b/Config.mk
@@ -226,7 +226,7 @@ QEMU_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/qemu-xen.git
 QEMU_UPSTREAM_REVISION ?= master
 
 MINIOS_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/mini-os.git
-MINIOS_UPSTREAM_REVISION ?= b08019f0b2fbc30c75169a160acb9fd9af5d68f4
+MINIOS_UPSTREAM_REVISION ?= 33411a11f848853b6c81a38426faaab303477a31
 
 SEABIOS_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/seabios.git
 SEABIOS_UPSTREAM_REVISION ?= rel-1.16.3
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 10:43:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 10:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647536.1010760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAStH-0008Gi-VK; Tue, 05 Dec 2023 10:42:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647536.1010760; Tue, 05 Dec 2023 10:42:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAStH-0008Gb-Ru; Tue, 05 Dec 2023 10:42:59 +0000
Received: by outflank-mailman (input) for mailman id 647536;
 Tue, 05 Dec 2023 10:42: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 1rAStG-0008GV-Hw
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 10:42: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 1rAStD-0002Ou-29; Tue, 05 Dec 2023 10:42:55 +0000
Received: from [15.248.3.117] (helo=[10.24.67.37])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAStC-00055O-Ru; Tue, 05 Dec 2023 10: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=JaKj1PhGM0I/nj2UrDftTlh8X0T3GOVz2sKirH0wEmc=; b=EJEbdvQmW3x5M5++8LGndJaG0/
	hKhDNgK8Sm5UYDgFi4XwI6awvcLdcwB0KUZpd1GJFzRv4lCsb167VkFPPSuFuR+TYrS0fMH1sxSpT
	FgVdkDYasoKDgezPYOc+MZhFcg/hCVe63PKTuXjmilV2aC3qUI0v8T99KNAeOWf31SJY=;
Message-ID: <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org>
Date: Tue, 5 Dec 2023 10:42:52 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Ayan Kumar Halder
 <ayankuma@amd.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 sstabellini@kernel.org, stefano.stabellini@amd.com,
 bertrand.marquis@arm.com, Volodymyr_Babchuk@epam.com
Cc: xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
 <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 05/12/2023 10:30, Michal Orzel wrote:
> 
> 
> On 05/12/2023 11:01, Julien Grall wrote:
>>
>>
>> On 05/12/2023 09:28, Michal Orzel wrote:
>>> Hi Julien,
>>>
>>> On 04/12/2023 20:55, Julien Grall wrote:
>>>>
>>>>
>>>> On 04/12/2023 13:02, Ayan Kumar Halder wrote:
>>>>>
>>>>> On 04/12/2023 10:31, Julien Grall wrote:
>>>>>> Hi Ayan,
>>>>> Hi Julien,
>>>>>>
>>>>>> On 01/12/2023 18:50, Ayan Kumar Halder wrote:
>>>>>>> Currently if user enables HVC_DCC config option in Linux, it invokes
>>>>>>> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
>>>>>>> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
>>>>>>> an undefined exception to the guest. And Linux crashes.
>>>>>>
>>>>>> I am missing some data points here to be able to say whether I would
>>>>>> be ok with emulating the registers. So some questions:
>>>>>>     * As you wrote below, HVC_DCC will return -ENODEV after this
>>>>>> emulation. So may I ask what's the use case to enable it? (e.g. is
>>>>>> there a distro turning this on?)
>>>>>
>>>>> I am not aware of any distro using (or not using) this feature. This
>>>>> issue came to light during our internal testing, when HVC_DCC was
>>>>> enabled to use the debug console. When Linux runs without Xen, then we
>>>>> could observe the logs on the debug console. When Linux was running as a
>>>>> VM, it crashed.
>>>>>
>>>>> My intention here was to do the bare minimum emulation so that the crash
>>>>> could be avoided.
>>>> This reminds me a bit the discussion around "xen/arm64: Decode ldr/str
>>>> post increment operations". I don't want Xen to contain half-backed
>>>> emulation just to please an OS in certain configuration that doesn't
>>>> seem to be often used.
>>>>
>>>> Also, AFAICT, KVM is in the same situation...
>>> Well, KVM is not in the same situation. It emulates all DCC regs as RAZ/WI, so there
>>> will be no fault on an attempt to access the DCC.
>>
>> Does this mean a guest will think the JTAG is availabe?
> Yes, it will believe the DCC is available which is not a totally bad idea. Yes, it will not have
> any effect but at least covers the polling loop. The solution proposed here sounds better but does not take
> into account the busy while loop when sending the char. Linux DCC earlycon does not make an initial check that runtime
> driver does and will keep waiting in the loop if TXfull is set. Emulating everything as RAZ/WI solves that.
> As you can see, each solution has its flaws and depends on the OS implementation.

Right, which prove my earlier point. You are providing an emulation just 
to please a specific driver in Linux (not even the whole Linux). This is 
what I was the most concern of.

So ...

>>> In general, I think that if a register is not optional and does not depend on other register
>>> to be checked first (e.g. a feature/control register we emulate), which implies that it is fully ok for a guest to
>>> access it directly - we should at least try to do something not to crash a guest.
>>
>> This is where we have opposing opinion. I view crashing a guest better
>> than providing a wrong emulation because it gives a clear signal that
>> the register they are trying to access will not function properly.
>>
>> We had this exact same discussion a few years ago when Linux started to
>> access GIC*_ACTIVER registers. I know that Stefano was for emulating
>> them as RAZ but this had consequences on the domain side (Linux
>> sometimes need to read them). We settled on printing a warning which is
>> not great but better than claiming we properly emulate the register.
>>
>>>
>>> I agree that this feature is not widely used. In fact I can only find it implemented in Linux and U-BOOT
>>> and the issue I found in DBGDSCRINT (no access from EL0, even though we emulate REXT.UDCCdis as 0) only
>>> proves that. At the same time, it does not cost us much to add this trivial support.
>>
>> See above. If we provide an (even basic) emulation, we need to make sure
>> it is correct and doesn't have a side effect on the guest. If we can't
>> guarantee that (e.g. like for set/way when a device is assigned), then
>> the best course of action is to crash the domain.
>>
>> AFAICT, the proposed emulation would be ok.

... I will need to revise this statement. I am now against this patch.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 10:53:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 10:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647539.1010770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAT31-0002hL-SE; Tue, 05 Dec 2023 10:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647539.1010770; Tue, 05 Dec 2023 10:53:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAT31-0002hE-P7; Tue, 05 Dec 2023 10:53:03 +0000
Received: by outflank-mailman (input) for mailman id 647539;
 Tue, 05 Dec 2023 10:53:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cmhw=HQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAT31-0002h8-Bi
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 10:53:03 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 75005890-935c-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 11:53:00 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3333fbbeab9so2389472f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 02:53:00 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 b14-20020adff90e000000b0033346fe9b9bsm6019558wrr.83.2023.12.05.02.52.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 02:52:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 75005890-935c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701773580; x=1702378380; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gBfyyYHdoaZo+tMVL/3oFuk2m5NmkJejWqjBwhqVL8o=;
        b=MQzsrhF45Ur/8dHUvX9YwU9gTWpmS/D2i7TBcDYABoHXXitDhjYhbGPT3XozCnQD56
         7NkegKvKrwao0zXqQq/Uk0r3AUwoG5UEQM6HMDyg21S0mHOZKouU78Kke0CtqwCEXyd7
         6HBbRFnWSFhsxP1CTnyafu0v0ISYodCgtTyFw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701773580; x=1702378380;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=gBfyyYHdoaZo+tMVL/3oFuk2m5NmkJejWqjBwhqVL8o=;
        b=I+J7f6Vr7vhIiKl01e0OF2S+vgKAhSly1SuNqzCKR2AhleGSaHWhV3a0Lf+iyk2ROv
         QCnKGowNiRyxlGvCJNOYGgK1CCWWxB+HqM/SocbkfAx+Nyh6F/aS8og7MewOqvvV4Rhr
         kIk/+yT9jbljKsGZDM++al+N2DpTG95Hy7Yb4KXvXel1mmXUrlG0ut6W7OAVibEw/BZH
         gZo61E5o6QFDaLtC3yDq3/ozm99P76qVoRuKL5FhkUx6A6xpdgrLAHYF7+nxJxs49Y9B
         XYM1aPz2FEr1+T+5GbH7o+htjSr5hLr7Cnbj9J04bB9FCOhyy1+jEz347O0E8bEgh85R
         UQPQ==
X-Gm-Message-State: AOJu0YwDhBDcL7HOkQig7IWUPUvqW6LIec/erN4Q4oUFlituKBI7zNYn
	QKQ2KMARTFR9gq16Flo0pnFhmg==
X-Google-Smtp-Source: AGHT+IH0Qeat3251pfRpxMH9Y9xkUL03RLdSnQyUmCH/p10SOMcP92ihW25/W+qiVc2mrCQ8MD+ekw==
X-Received: by 2002:adf:f9d0:0:b0:333:533d:9cf1 with SMTP id w16-20020adff9d0000000b00333533d9cf1mr1061160wrr.103.1701773580005;
        Tue, 05 Dec 2023 02:53:00 -0800 (PST)
Message-ID: <6aaeea8c-cba9-4d3b-85a8-905dfee69e6f@citrix.com>
Date: Tue, 5 Dec 2023 10:52:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH] xen/arm: ffa: reclaim shared memory on guest
 destroy
Content-Language: en-GB
To: Bertrand Marquis <Bertrand.Marquis@arm.com>, Julien Grall <julien@xen.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "patches@linaro.org" <patches@linaro.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20231204075552.3585875-1-jens.wiklander@linaro.org>
 <232c2496-77d6-4e37-a400-dbefd135ef3c@xen.org>
 <0B35D609-5378-4180-B79E-0CAE69D42165@arm.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <0B35D609-5378-4180-B79E-0CAE69D42165@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/12/2023 8:14 am, Bertrand Marquis wrote:
> Hi Julien,
>
> Thanks a lot for your review and comment, this is very helpful.
>
>> On 4 Dec 2023, at 20:24, Julien Grall <julien@xen.org> wrote:
>>
>> Hi Jens,
>>
>> On 04/12/2023 07:55, Jens Wiklander wrote:
>>>        if ( ctx->rx )
>>>          rxtx_unmap(ctx);
>>>  +
>>> +    list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
>>> +    {
>>> +        register_t handle_hi;
>>> +        register_t handle_lo;
>>> +
>>> +        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
>>> +        res = ffa_mem_reclaim(handle_lo, handle_hi, 0);
>> Is this call expensive? If so, we may need to handle continuation here.
> This call should not be expensive in the normal case as memory is reclaimable
> so there is no processing required in the SP and all is done in the SPMC which
> should basically just return a yes or no depending on a state for the handle.
>
> So I think this is the best trade.
>
> @Jens: One thing to consider is that a Destroy might get a retry or busy answer and we
> will have to issue it again and this is not considered in the current implementation.
>
> After discussing the subject internally we could in fact consider that if an SP cannot release
> some memory shared with the VM destroyed, it should tell it by returning "retry" to the message.
> Here that could simplify things by doing a strategy where:
> - we retry on the VM_DESTROY message if required
> - if some memory is not reclaimable we check if we could park it and make the VM a zombie.
> What do you think ?

This is the cleanup issue discussed at XenSummit, isn't it?

You cannot feasibly implement this cleanup by having
ffa_domain_teardown() return -ERESTART.

Yes, it will probably function - but now you're now bouncing in/out of
Xen as fast as the CPU will allow, rechecking a condition which will
take an unbounded quantity of time.Â  Meanwhile, you've tied up a
userspace thread (the invocation of `xl destroy`) to do so, and one of
dom0's vCPU for however long the scheduler is willing to schedule the
destroy invocation, which will be 100% of the time as it's always busy
in the hypervisor.

The teardown/kill infrastructure is intended and expected to always make
forward progress.


The closest thing to this patch which will work sanely is this:

Hold a single domain reference for any non-zero amount of magic memory
held.Â  See domain_adjust_tot_pages() and how it interacts with
{get,put}_domain(), and copy it.Â  Importantly, this prevents the domain
being freed until the final piece of magic memory has been released.

Have some way (can be early on the teardown/kill path, or a separate
hypercall - assuming the VM can't ever be scheduled again) to kick Xen
into being responsible for trying to reclaim the memory.Â  (Start a
timer, or reclaim in the idle loop, whatever.)

This way, you can `xl destroy` a VM in an arbitrary state, *and* the
invocation will terminate when Xen has nothing deterministic left to do,
*and* in the case that the secure world or Xen has an issue, the VM will
stay around as a zombie holding minimal resources.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:03:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:03:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647543.1010780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATD6-0005hU-VV; Tue, 05 Dec 2023 11:03:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647543.1010780; Tue, 05 Dec 2023 11: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 1rATD6-0005hN-S5; Tue, 05 Dec 2023 11:03:28 +0000
Received: by outflank-mailman (input) for mailman id 647543;
 Tue, 05 Dec 2023 11: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=ibAO=HQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rATD5-0005hH-Fx
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:03:27 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2060c.outbound.protection.outlook.com
 [2a01:111:f400:fe59::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ccacb159-935d-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:02:38 +0100 (CET)
Received: from MW4PR02CA0007.namprd02.prod.outlook.com (2603:10b6:303:16d::33)
 by BL0PR12MB4899.namprd12.prod.outlook.com (2603:10b6:208:1cf::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 11:02:32 +0000
Received: from CO1PEPF000042A7.namprd03.prod.outlook.com
 (2603:10b6:303:16d:cafe::17) by MW4PR02CA0007.outlook.office365.com
 (2603:10b6:303:16d::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Tue, 5 Dec 2023 11:02:31 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000042A7.mail.protection.outlook.com (10.167.243.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 11:02:31 +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.34; Tue, 5 Dec
 2023 05:02:30 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 5 Dec
 2023 05:02:30 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Tue, 5 Dec 2023 05:02:28 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ccacb159-935d-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AKEeslhqk9ff3fOo8O+C02ZzBeAAuiT0nOOaiTxKO/gaY2k+uM+ekFQ+aVN3+R3E7kLTEcEQpNqtP6yqaw8IwdZftKIs3IvKjSVqRdbId5EWHhecsV9T6RlxiUeaL2QSiczUVUD5oCRUY4JBHeGFjwzBM5pnTO731/YLU0QosLwlACGICJgk20/luVIrkwmRktDSDj/TiHiiqz4rNySM70Q4jIyHqedfdagu0bpA4MjRz0X90mPqF2WPkVqLgeHsSH+OL4lCSPIGQ1LHHGaD6wXKCTquz2NOAqrOWn/LPxckJLY0TRJz3Rerdyx6lH5sBSNUgvdH3NlURzkbrZE7DQ==
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=ytuLXMV96imYv8nU18kaIKWbU83DwGoQIx/XQ4xNORQ=;
 b=Wm7xLdmkbctBNYvt7kIrklIqH89VTaILdpi1/PpANmdxZwtyzVYoexlpNozEJ7wzT1tkPQwLS4U3//aIC5wLnUMXtIRRs3yhmQaj2skoAh3fZTjRy25TDz7fU2WDYOglFwa8qO+7nK5UwuIM0fNONGFOvo57n00mPdcaK4fYOjRnGFY1EI3VHNImeqfy8kXN0zI62mU8cT4aDdGJSC8+mN77JHcePWx2iOl/ayGpKqQE0VbR2x4zjdAKkSG/+JobECm5Hy/K6LiaLrI76/zuNOIJp6Hu8aR8ZMSYlkMBshiFvQYW60+2eWETuKMc7rXNnlQa3mF0oKrxJTywT8Vl6g==
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=ytuLXMV96imYv8nU18kaIKWbU83DwGoQIx/XQ4xNORQ=;
 b=nVRCJRjlGcjEKNPwrLj567MMSNGEe2PGCLxEmv1ce7MzwtUCu/7pamg45M3tasEgySFFsu6lrspodIaSzwRp8jUetDI/tl/W5jydccewS3Js4Hku6bIjHzB3CdDYQEMvhc1fe8pwpRm0kGIgrvYTZbM8iUKYaxMpi28E5pznPYI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com>
Date: Tue, 5 Dec 2023 12:02:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-US
To: Julien Grall <julien@xen.org>, Ayan Kumar Halder <ayankuma@amd.com>, "Ayan
 Kumar Halder" <ayan.kumar.halder@amd.com>, <sstabellini@kernel.org>,
	<stefano.stabellini@amd.com>, <bertrand.marquis@arm.com>,
	<Volodymyr_Babchuk@epam.com>
CC: <xen-devel@lists.xenproject.org>
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
 <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
 <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000042A7:EE_|BL0PR12MB4899:EE_
X-MS-Office365-Filtering-Correlation-Id: 1caace06-1c8d-4aee-259c-08dbf581ad85
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/rE2gZE0f+yeAjVpvT5fKhMsGVDJ6xNCTOa283y6FBtYfstLE+VP+NwqB/NGI5ESxcQAszu3jm4m7K8mI1UIhpNzZPINrG1JmjP4VVW1S5YKWBbZqcQMnxFNTnbSkKhSX51u2qxCW5dOhZVuMSiLtsXcVwvsSSE5pzHYNFkVNEK99nuFjhjRt7uQH4LpZBTr56o7HvxRvQ3iYR6Pi7g7HGDCyMMvencGznC7tGrzwPjUPDNCScdwNB+FQTBigVya6AjLXoZr9asLi6QWCHlySmLOslgcHFX55HfKOZSp7E0OZJTdfVwaNyX0BK7owVsEdNupVLk/6KBvkJZ3z5ZV0iTMiD81T2lKj4+C1ebbRMD8A9oJmtG5QYrHL96BKz96mcALZx8cxgQzCSsx6SkorLAZWNA16XxKf6IvmmBLTNJ4YL0Ib/N4d2hNMjnQRALejNAsxmaWIN9yv6maxE8FMuDei7hdCcRAmUMLq2vClQaP9t1tc6Oe4le9dUuyyIvQXg1QCG+uNTOPtm+gqGsEmVfySCZ32sN4yO3QncWksxlZ5Lcb0Vf8QqrCNDad6w3HAVC5xht3FDEfmEQtKsWpEXYX7uDNQpPjhWoZmDra/hFolz5IIh7RKHC9RQ+yZLCbO/cfbN7DVue1jSHgVobYSo021NBf5mRzSl9fMNjZ8TCE/9RrAryh4T7x7aRHFZofvkBcvShRey8IGm/D01FY9xZuAp6YAlKDpoXPFudr84hxIUMfY9HTQuHyELzXWM+s4H+Xh2ju3CGcuKkFhjk0ndVrOn4fJPUhj4LI0Csrb55IMlmz/QYc1mWZZ43Yyb/YYqtDEJxVJPEbuEN1YNVtKPzPz8PWVg3+6KRnI8N0vFUMzvfrmlTiTMJM++3veem4
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(396003)(376002)(346002)(39860400002)(230173577357003)(230273577357003)(230922051799003)(186009)(82310400011)(1800799012)(451199024)(64100799003)(46966006)(40470700004)(36840700001)(110136005)(70586007)(70206006)(316002)(16576012)(478600001)(40460700003)(5660300002)(36756003)(41300700001)(2906002)(31696002)(44832011)(86362001)(4326008)(8936002)(8676002)(31686004)(2616005)(36860700001)(83380400001)(81166007)(40480700001)(356005)(47076005)(26005)(426003)(336012)(82740400003)(53546011)(43740500002)(36900700001)(2101003);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 11:02:31.1640
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1caace06-1c8d-4aee-259c-08dbf581ad85
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000042A7.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4899



On 05/12/2023 11:42, Julien Grall wrote:
> 
> 
> On 05/12/2023 10:30, Michal Orzel wrote:
>>
>>
>> On 05/12/2023 11:01, Julien Grall wrote:
>>>
>>>
>>> On 05/12/2023 09:28, Michal Orzel wrote:
>>>> Hi Julien,
>>>>
>>>> On 04/12/2023 20:55, Julien Grall wrote:
>>>>>
>>>>>
>>>>> On 04/12/2023 13:02, Ayan Kumar Halder wrote:
>>>>>>
>>>>>> On 04/12/2023 10:31, Julien Grall wrote:
>>>>>>> Hi Ayan,
>>>>>> Hi Julien,
>>>>>>>
>>>>>>> On 01/12/2023 18:50, Ayan Kumar Halder wrote:
>>>>>>>> Currently if user enables HVC_DCC config option in Linux, it invokes
>>>>>>>> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
>>>>>>>> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
>>>>>>>> an undefined exception to the guest. And Linux crashes.
>>>>>>>
>>>>>>> I am missing some data points here to be able to say whether I would
>>>>>>> be ok with emulating the registers. So some questions:
>>>>>>>     * As you wrote below, HVC_DCC will return -ENODEV after this
>>>>>>> emulation. So may I ask what's the use case to enable it? (e.g. is
>>>>>>> there a distro turning this on?)
>>>>>>
>>>>>> I am not aware of any distro using (or not using) this feature. This
>>>>>> issue came to light during our internal testing, when HVC_DCC was
>>>>>> enabled to use the debug console. When Linux runs without Xen, then we
>>>>>> could observe the logs on the debug console. When Linux was running as a
>>>>>> VM, it crashed.
>>>>>>
>>>>>> My intention here was to do the bare minimum emulation so that the crash
>>>>>> could be avoided.
>>>>> This reminds me a bit the discussion around "xen/arm64: Decode ldr/str
>>>>> post increment operations". I don't want Xen to contain half-backed
>>>>> emulation just to please an OS in certain configuration that doesn't
>>>>> seem to be often used.
>>>>>
>>>>> Also, AFAICT, KVM is in the same situation...
>>>> Well, KVM is not in the same situation. It emulates all DCC regs as RAZ/WI, so there
>>>> will be no fault on an attempt to access the DCC.
>>>
>>> Does this mean a guest will think the JTAG is availabe?
>> Yes, it will believe the DCC is available which is not a totally bad idea. Yes, it will not have
>> any effect but at least covers the polling loop. The solution proposed here sounds better but does not take
>> into account the busy while loop when sending the char. Linux DCC earlycon does not make an initial check that runtime
>> driver does and will keep waiting in the loop if TXfull is set. Emulating everything as RAZ/WI solves that.
>> As you can see, each solution has its flaws and depends on the OS implementation.
> 
> Right, which prove my earlier point. You are providing an emulation just
> to please a specific driver in Linux (not even the whole Linux). This is
> what I was the most concern of.
> 
> So ...
> 
>>>> In general, I think that if a register is not optional and does not depend on other register
>>>> to be checked first (e.g. a feature/control register we emulate), which implies that it is fully ok for a guest to
>>>> access it directly - we should at least try to do something not to crash a guest.
>>>
>>> This is where we have opposing opinion. I view crashing a guest better
>>> than providing a wrong emulation because it gives a clear signal that
>>> the register they are trying to access will not function properly.
>>>
>>> We had this exact same discussion a few years ago when Linux started to
>>> access GIC*_ACTIVER registers. I know that Stefano was for emulating
>>> them as RAZ but this had consequences on the domain side (Linux
>>> sometimes need to read them). We settled on printing a warning which is
>>> not great but better than claiming we properly emulate the register.
>>>
>>>>
>>>> I agree that this feature is not widely used. In fact I can only find it implemented in Linux and U-BOOT
>>>> and the issue I found in DBGDSCRINT (no access from EL0, even though we emulate REXT.UDCCdis as 0) only
>>>> proves that. At the same time, it does not cost us much to add this trivial support.
>>>
>>> See above. If we provide an (even basic) emulation, we need to make sure
>>> it is correct and doesn't have a side effect on the guest. If we can't
>>> guarantee that (e.g. like for set/way when a device is assigned), then
>>> the best course of action is to crash the domain.
>>>
>>> AFAICT, the proposed emulation would be ok.
> 
> ... I will need to revise this statement. I am now against this patch.
Yes, the problem was tricky from the very beginning and I somewhat agree. I prepared a POC with one solution
that Ayan extended and sent to gather feedback (hence RFC). I think we should still wait for others
opinion (@Stefano, @Bertrand). I think the thread contains all the necessary information
to decide what to do:
- do nothing* (guest crashes)
- emulate DCC the same way as KVM i.e. RAZ/WI (no crash, no busy loop, guest keeps using DCC with no effect)
- emulate DCC with TXfull set to 1 (no crash, runtime DCC in Linux returns -ENODEV, earlycon busy loop issue)

* I still think we should fix DBGDSCRINT but I can send a separate patch (not really related to the DCC problem)

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:08:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:08:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647547.1010789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATHa-0006sd-GN; Tue, 05 Dec 2023 11:08:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647547.1010789; Tue, 05 Dec 2023 11: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 1rATHa-0006sW-Dn; Tue, 05 Dec 2023 11:08:06 +0000
Received: by outflank-mailman (input) for mailman id 647547;
 Tue, 05 Dec 2023 11:08:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rATHZ-0006rE-BP
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:08:05 +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 8f5bc06a-935e-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:08:04 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c09fcfa9fso24839055e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 03:08:04 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 f17-20020a05600c155100b004083729fc14sm21999524wmg.20.2023.12.05.03.08.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 03:08:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f5bc06a-935e-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701774483; x=1702379283; 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=56vYMAsRG6GsPmoxi6wMLC4lVhJLRcfY/9/4nOhHiV0=;
        b=ov8DDYh8G0F4miDVDJXkCaDBTtciQ/J9ZI/7ZatfgcYHKeLaf0SXWRMVsV1fBu+ZCg
         /yoq7MtG9FdnIst6f/lIByxgqNnGJynV0iqmEwPgn/iH2uk1mTdd58sQKdDOLYUaHS3d
         UgXJ6MWNKmF/W5muvkU2WUmLq3yxRNIJzS634=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701774483; x=1702379283;
        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=56vYMAsRG6GsPmoxi6wMLC4lVhJLRcfY/9/4nOhHiV0=;
        b=U8NhrntR2PZrseahrzhKjik16JWqoe2GPKAsrri3oYTgxSDNj6XRYrk1dn7OjS6d21
         d+fEQzjDnyiyODkvqjI9OdtS4Pb2kiKIz1360GGvT/djaK1g2vViSB2RV7Jrutyy8e3f
         S1v1wGHr2+/mcg1tbNvWEQ2Xp3kE+6wXf3FojLogCs/+9L82Toy+Rd/29CDDAVYvaUBp
         gvYpE95BGXaa0qhKDBKErnj8RPPND1YjGV9boetxp5EJYwifAGzwDBz+I5OeZ4gNVkuX
         mlpnUdnPeEy7UtdLK8FDYxOoIltBbc1i3QaebgTEotSdSJDHNcn38+MhC6LdHMGVf7IC
         sQtA==
X-Gm-Message-State: AOJu0Yw5rWNjoij/GZnaHvDL9U2bIYuRuRp7+g5HbtBq1TlmwcqdeYAM
	EZlLxhtC0E4+rhnbTOiqvXOa8w==
X-Google-Smtp-Source: AGHT+IEGXlzuSmfU+DGXXcVZ8jcpD0Z9HDnMTPDf1AVqOJkzbcVTjwX4kSuQRs9BDcvkmuda4DR0mQ==
X-Received: by 2002:a05:600c:21d6:b0:40b:5e59:f71f with SMTP id x22-20020a05600c21d600b0040b5e59f71fmr1549037wmj.145.1701774483194;
        Tue, 05 Dec 2023 03:08:03 -0800 (PST)
Date: Tue, 5 Dec 2023 12:08:01 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Message-ID: <ZW8EkQLTwEEK6fXC@macbook>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
 <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop>

On Mon, Dec 04, 2023 at 02:07:51PM -0800, Stefano Stabellini wrote:
> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
> > On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
> > > On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> > > > On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
> > > > > @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
> > > > >          bus = PCI_BUS(machine_sbdf);
> > > > >          devfn = PCI_DEVFN(machine_sbdf);
> > > > >  
> > > > > +        if ( needs_vpci(d) && !has_vpci(d) )
> > > > > +        {
> > > > > +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
> > > > > +                   &PCI_SBDF(seg, bus, devfn), d);
> > > > > +            ret = -EPERM;
> > > > > +            break;
> > > > 
> > > > I think this is likely too restrictive going forward.  The current
> > > > approach is indeed to enable vPCI on a per-domain basis because that's
> > > > how PVH dom0 uses it, due to being unable to use ioreq servers.
> > > > 
> > > > If we start to expose vPCI suport to guests the interface should be on
> > > > a per-device basis, so that vPCI could be enabled for some devices,
> > > > while others could still be handled by ioreq servers.
> > > > 
> > > > We might want to add a new flag to xen_domctl_assign_device (used by
> > > > XEN_DOMCTL_assign_device) in order to signal whether the device will
> > > > use vPCI.
> > > 
> > > Actually I don't think this is a good idea. I am all for flexibility but
> > > supporting multiple different configurations comes at an extra cost for
> > > both maintainers and contributors. I think we should try to reduce the
> > > amount of configurations we support rather than increasing them
> > > (especially on x86 where we have PV, PVH, HVM).
> > 
> > I think it's perfectly fine to initially require a domain to have all
> > its devices either passed through using vPCI or ireqs, but the
> > interface IMO should allow for such differentiation in the future.
> > That's why I think introducing a domain wide vPCI flag might not be
> > the best option going forward.
> > 
> > It would be perfectly fine for XEN_DOMCTL_assign_device to set a
> > domain wide vPCI flag, iow:
> > 
> > if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
> > {
> >     if ( has_arch_pdevs(d) )
> >     {
> >         printk("All passthrough devices must use the same backend\n");
> >         return -EINVAL;
> >     }
> > 
> >     /* Set vPCI domain flag */
> > }
> 
> That would be fine by me, but maybe we can avoid this change too. I was
> imagining that vPCI would be enabled at domain creation, not at runtime.
> And that vPCI would be enabled by default for all PVH guests (once we
> are past the initial experimental phase.)

Then we don't even need a new CDF flag, and just enable vPCI when
IOMMU is enabled?  IOW: we can key the enabling of vPCI to
XEN_DOMCTL_CDF_iommu for specific domain types?

Maybe that's not so trivial on x86, as there's no x86 PVH domain type
from the hypervisor PoV.

> 
> > We have already agreed that we want to aim for a setup where ioreqs
> > and vPCI could be used for the same domain, but I guess you assumed
> > that ioreqs would be used for emulated devices exclusively and vPCI
> > for passthrough devices?
> 
> Yes, that's right
> 
> 
> > Overall if we agree that ioreqs and vPCI should co-exist for a domain,
> > I'm not sure there's much reason to limit ioreqs to only handle
> > emulated devices, seems like an arbitrary limitation.
> 
> Reply below
> 
> 
> > > I don't think we should enable IOREQ servers to handle PCI passthrough
> > > for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
> > > Passthrough can be handled by vPCI just fine. I think this should be a
> > > good anti-feature to have (a goal to explicitly not add this feature) to
> > > reduce complexity. Unless you see a specific usecase to add support for
> > > it?
> > 
> > There are passthrough devices (GPUs) that might require some extra
> > mediation on dom0 (like the Intel GVT-g thing) that would force the
> > usage of ioreqs to passthrough.
> 
> From an architectural perspective, I think it would be cleaner, simpler
> to maintain, and simpler to understand if Xen was the sole owner of the
> PCI Root Complex and PCI config space mediation (implemented with vPCI).
> IOREQ can be used for emulation and it works very well for that. At
> least in my mind, that makes things much simpler.

But IOREQ already has all the code to mediate accesses to the PCI
config space, and the interface to register separate servers for
different PCI devices.

We would then need to duplicate this internally for vPCI, so that vPCI
could forward accesses to IOREQ just for IOREQ to forward to yet a
different component?  Seems like a lot of duplication for no benefit.

> I understand there are non-trivial cases, like virtual GPUs with
> hardware access, but I don't classify those as passthrough. That's
> because there isn't one device that gets fully assigned to the guest.
> Instead, there is an emulated device (hence IOREQ) with certain MMIO
> regions and interrupts that end up being directly mapped from real
> hardware.
> 
> So I think it is natural in those cases to use IOREQ and it is also
> natural to have QEMU remap MMIO/IRQs at runtime. From a vPCI
> perspective, I hope it will mostly look as if the device is assigned to
> Dom0. Even if it ends up being more complex than that, Rome wasn't
> built in one day, and I don't think we should try to solve this problem
> on day1 (as long as the interfaces are not stable interfaces).

I don't see IOREQ as dealing explicitly with emulation.  Yes, it does
allow for emulators to be implemented in user-space, but at the end
it's just an interface that allows forwarding accesses to certain
resources (for the case we are speaking about here, PCI config space)
to entities that registered as handlers.

vPCI OTOH just deals with a very specific resource (PCI config space)
and only allows internal handlers to be registered on a byte
granularity.

So your proposal would be to implement a hierarchy like the one on the
diagram below:

    â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
    â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
    â””â”€â”€â”€â”€â”€â”€â”€â”¬â”˜ â””â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
            â”‚   â”‚               â”‚
            â”‚   â”‚           â”Œâ”€â”€â”€â”´â”€â”€â”
            â”‚   â”‚           â”‚ vPCI â”‚
            â”‚   â”‚           â””â”€â”¬â”€â”€â”¬â”€â”˜
         â”Œâ”€â”€â”´â”€â”€â”€â”´â”            â”‚  â”‚
         â”‚ IOREQ â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜  â”‚
         â””â”€â”€â”€â”€â”¬â”€â”€â”˜               â”‚
              â”‚                  â”‚
 â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”              â”Œâ”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
 â”‚ IOREQ servers â”‚              â”‚ vPCI handlers â”‚
 â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜              â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜

While what I'm proposing would look like:

    â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
    â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
    â””â”€â”€â”€â”€â”¬â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
         â”‚          â”‚                â”‚
         â””â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”´â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
               â”‚  IOREQ  â”‚
               â””â”€â”¬â”€â”€â”€â”€â”€â”¬â”€â”˜
                 â”‚     â”‚
 â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”
 â”‚ IOREQ servers â”‚          â”‚ vPCI â”‚
 â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜          â””â”€â”€â”€â”¬â”€â”€â”˜
                                â”‚
                            â”Œâ”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
                            â”‚ vPCI handlers â”‚
                            â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜

I'm obviously biased, but I think the latter is cleaner, and allows
all resources to be arbitrated by the same component (IOREQ).

If the concern is about the IOREQ hypercall interface, it would be
fine to introduce an option that limit IOREQs to internal users
(vPCI) without supporting external IOREQ servers.

Think of IOREQ as a resource mediator inside of Xen, that just does
the PCI address decoding and forwards the access to the interested
party, either an external IOREQ server or vPCI.

> 
> > It's important that the interfaces we introduce are correct IMO,
> > because that ends up reflecting on the configuration options that we
> > expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
> > XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
> > gets placed there will ultimately influence how the option gets
> > exposed in xl/libxl, and the interface there is relevant to keep
> > stable for end user sanity.
> 
> I agree with you on the stable interfaces. The important part is not to
> introduce changes to stable interfaces that could limit us in the
> future. Specifically that includes xl and libxl, we need to be careful
> there. But I don't see a single per-domain vPCI enable/disable option as
> a problem. Let's say that in the future we have a mediated vGPU
> implementation: if it works together with vPCI then the per-domain vPCI
> option in libxl will be enabled (either explicitely or by default), if
> it doesn't then vPCI will be disabled (either explicitely or by the
> newer vGPU options.)

If vPCI is hooked into IOREQ there won't be a need anymore to register
the vPCI config space traps, as that would be done by IOREQ, and hence
vPCI managed devices could be registered at runtime with IOREQ.  IOW:
there won't be a need anymore to signal at domain creation whether
vPCI is intended to be used or not.

We would obviously need to enable IOREQ for all domains with IOMMU
enabled, as it would be IOREQ that register the PCI config space
handlers.

> For *unstable* interfaces (XEN_DOMCTL_assign_device) I would rather wait
> before adding more changes on top of them, not because I don't care
> about the mediated GPU problem (we do have something similar at AMD),
> but because I worry that if we try to change them now we might not do a
> good enough job. I would prefer to wait until we know more about the
> actual use case, ideally with code supporting it.
> 
> I think the difference in points of views comes from the fact that I see
> vPCI as the default, QEMU only as a limited peripheral emulator (or
> mediator for the vGPU case) but not in control. vPCI and QEMU are not
> equal in my view. vPCI is in charge and always present if not in very
> uncommon setups (even if we decide to hook it inside Xen by using
> internal IOREQ interfaces). QEMU might come and go.

Xen needs a single component that mediates accesses to resources,
whether that's IOREQ, or something else I don't really care that much.
Having vPCI mediate accesses to the PCI config space, and IOREQ to the
memory (and on x86 IO port) space just seems awfully complicated for
AFAICT no real benefit.

Also, you seem to confabulate IOREQ with QEMU, while the latter is
indeed an user of IOREQ, I do see IOREQ as a simple resource mediator
inside of Xen, that has the ability to forward such accesses to
external emulators using an hypercall interface.

> Now that I am writing this, I realize this is also why I wasn't too
> happy with the idea of hooking vPCI using IOREQ. It makes them look as
> if they are the same, while I don't they should be considered at the
> same level of priority, criticality, safety, integration in the system,
> etc.

I feel there are some fears with IOREQ from a safety PoV?  The code
that does the resource multiplexing is small, and as said above if
there are safety concerns with the hypercall interface it would be
fine to limit it's usage to internal handlers only.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:17:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:17:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647554.1010800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATQb-0001VZ-GK; Tue, 05 Dec 2023 11:17:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647554.1010800; Tue, 05 Dec 2023 11:17: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 1rATQb-0001VS-CJ; Tue, 05 Dec 2023 11:17:25 +0000
Received: by outflank-mailman (input) for mailman id 647554;
 Tue, 05 Dec 2023 11:17: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=6bfq=HQ=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1rATQZ-0001Tt-7a
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:17:23 +0000
Received: from mail-yw1-x1130.google.com (mail-yw1-x1130.google.com
 [2607:f8b0:4864:20::1130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dbce7d42-935f-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:17:22 +0100 (CET)
Received: by mail-yw1-x1130.google.com with SMTP id
 00721157ae682-5d3644ca426so53429117b3.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 03:17:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbce7d42-935f-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1701775041; x=1702379841; 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=FJAAwKm8C7rTan31PK0X98ZE47bw/2K1Byo5zsVXN9I=;
        b=DyJDeIkRZwAT6+2609qK4HKFYxSTkUu6GxDBsxApHMhgk/64S2b9Vy6wS2qFIakdwR
         91cnh0g/ZOpuGhPrO9r+z6QWV2kSRsN4dfXI0gwAgs0VhhrrQ2MO1FOCUmKhST/PblDo
         /47mqv+Y6j6Vk8D3An58mcVl+AJwyq0H3B28Pw5lqRt6z4kiX4ptfp1CWQOcwCQa0epm
         5j6GDf4rsJ5bV8gpBFKLUdmMQOxzHaY4wFLk7J3AVYnBTTwLXVsuaHEYDh1/04jL/mLR
         ouOoT73G9yfccX5VN+pHxtPssbEldwXuN2NpSlMoPCDBSoIpajiOvtRPfobkmePakrZv
         BGiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701775041; x=1702379841;
        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=FJAAwKm8C7rTan31PK0X98ZE47bw/2K1Byo5zsVXN9I=;
        b=FpzziHDcQrDIowveTEmH/zIjAkul2wx/hbPUGNbjVRx3+vFbKYOs6QhgnJOb9uCw5l
         YaUkFL7zQnHS48R90SOXbaDjPKzU3qOCnVa56HLTmz61ioN/aNnYNFBkbsfU95uF6F2H
         mw8uLnaecGujR5ep+uIOO6JSscqHzJ7D5RJMkQPM9UZq61Wih9hEptB7B0Y68PruAWe1
         CZbYDKTok5JZhmfiuXVRBlzd/3s6bSuQ0QESejDrQw/1eg9fcn5Nnrb3F3dXXLLMpcoq
         SIWLmVxNQGUgdPkkN6okNu3zpHw2ale4xvAFfrGS0vETaa6F0W7ToVOmJspMyvyTIAIT
         hy2g==
X-Gm-Message-State: AOJu0Yy2I+0HeAJAAhyPkWB4LOq0ual+Q23O39Qm1lJt2i0GF9Y9z1E1
	dloxhD+V2ezkmk2IZZi523svoj7q554i7FFM4xaemA==
X-Google-Smtp-Source: AGHT+IEpEL5PFdN564HKW6/HyU/QBa9Mzf05gb6Ow/rEFDjzTO9pLpfKtiyBgGC5zSQOsq7KWrrDoW8K0yerDOvg3tE=
X-Received: by 2002:a0d:d1c1:0:b0:5c8:cc4d:2aca with SMTP id
 t184-20020a0dd1c1000000b005c8cc4d2acamr3769625ywd.31.1701775040923; Tue, 05
 Dec 2023 03:17:20 -0800 (PST)
MIME-Version: 1.0
References: <20231204075552.3585875-1-jens.wiklander@linaro.org> <232c2496-77d6-4e37-a400-dbefd135ef3c@xen.org>
In-Reply-To: <232c2496-77d6-4e37-a400-dbefd135ef3c@xen.org>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 5 Dec 2023 12:17:09 +0100
Message-ID: <CAHUa44Fqxc2Doy=e6KzHUbUEeASuqMUwqZEeEVL=2oUWQwA0cw@mail.gmail.com>
Subject: Re: [RFC XEN PATCH] xen/arm: ffa: reclaim shared memory on guest destroy
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, patches@linaro.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

Thanks for the feedback. I'm answering the straightforward issues here
and saving the rest for the emerging thread.

On Mon, Dec 4, 2023 at 8:24=E2=80=AFPM Julien Grall <julien@xen.org> wrote:
>
> Hi Jens,
>
> On 04/12/2023 07:55, Jens Wiklander wrote:
> > When an FF-A enabled guest is destroyed it may leave behind memory
> > shared with SPs. This memory must be reclaimed before it's reused or an
> > SP may make changes to memory used by a new unrelated guest. So when th=
e
> > domain is teared down add FF-A requests to reclaim all remaining shared
> > memory.
> >
> > SPs in the secure world are notified using VM_DESTROYED that a guest ha=
s
> > been destroyed. An SP is supposed to relinquish all shared memory to al=
low
> > reclaiming the memory. The relinquish operation may need to be delayed =
if
> > the shared memory is for instance part of a DMA operation.
> >
> > If the FF-A memory reclaim request fails, return -ERESTART to retry
> > again. This will effectively block the destruction of the guest until
> > all memory has been reclaimed.
> >
> > Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
> > ---
> > Hi,
> >
> > This patch is a bit crude, but gets the job done. In a well designed
> > system this might even be good enough since the SP or the secure world
> > will let the memory be reclaimed and we can move on. But, if for some
> > reason reclaiming the memory is refused it must not be possible to reus=
e
> > the memory.
>
> IIUC, we are trying to harden against a buggy SP. Is that correct?
>
> >
> > These shared memory ranges are typically quite small compared to the
> > total memory usage of a guest so it would be an improvement if only
> > refused shared memory ranges where set aside from future reuse while th=
e
> > guest was destroyed and other resources made available for reuse. This
> > could be done by for instance assign the refused shared memory ranges
> > to a dummy VM like DOMID_IO.
>
> I like the idea to use a dummy VM, but I don't think DOMID_IO is right.
> Once teardown has completed, the domain will stay around until the last
> reference on all pages are dropped. At this point, the amount of memory
> left-over is minimum (this is mostly bookeeping in Xen).
>
>  From the userland PoV, the domain will still show-up in the list but
> tools like "xl list" will show "(null)". They are called zombie domains.
>
> So I would consider to keep the same domain around. The advantage is you
> can call "xl destroy" again to retry the operation.
>
> >
> > Thanks,
> > Jens
> > ---
> >   xen/arch/arm/tee/ffa.c | 36 ++++++++++++++++++++++++++++++++++++
> >   1 file changed, 36 insertions(+)
> >
> > diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> > index 183528d13388..9c596462a8a2 100644
> > --- a/xen/arch/arm/tee/ffa.c
> > +++ b/xen/arch/arm/tee/ffa.c
> > @@ -1539,6 +1539,7 @@ static bool is_in_subscr_list(const uint16_t *sub=
scr, uint16_t start,
> >   static int ffa_domain_teardown(struct domain *d)
> >   {
> >       struct ffa_ctx *ctx =3D d->arch.tee;
> > +    struct ffa_shm_mem *shm, *tmp;
> >       unsigned int n;
> >       int32_t res;
> >
> > @@ -1564,10 +1565,45 @@ static int ffa_domain_teardown(struct domain *d=
)
> >               printk(XENLOG_ERR "ffa: Failed to report destruction of v=
m_id %u to  %u: res %d\n",
> >                      get_vm_id(d), subscr_vm_destroyed[n], res);
> >       }
> > +    /*
> > +     * If this function is called again due to -ERESTART below, make s=
ure
> > +     * not to send the FFA_MSG_SEND_VM_DESTROYED's.
> > +     */
> > +    subscr_vm_destroyed_count =3D 0;
>
> AFAICT, this variable is global. So wouldn't you effectively break other
> domain if let say the unmapping error is temporary?

You're right! I'll have to change this part a bit.

>
> >
> >       if ( ctx->rx )
> >           rxtx_unmap(ctx);
> >
> > +
> > +    list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
> > +    {
> > +        register_t handle_hi;
> > +        register_t handle_lo;
> > +
> > +        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
> > +        res =3D ffa_mem_reclaim(handle_lo, handle_hi, 0);
>
> Is this call expensive? If so, we may need to handle continuation here.
>
> > +        if ( res )
> > +        {
> > +            printk(XENLOG_INFO, "ffa: Failed to reclaim handle %#lx : =
%d\n",
> > +                   shm->handle, res);
>
> I think you want to use XENLOG_G_INFO to use the guest ratelimit. Also,
> I would suggest to print the domain ID in the logs (see '%pd').

Thanks for the tip, I'll update accordingly here and at the other places.

>
>
> > +        }
> > +        else
> > +        {
> > +            printk(XENLOG_DEBUG, "ffa: Reclaimed handle %#lx\n", shm->=
handle);
>
> Same here. You want to use XENLOG_G_DEBUG and print the domain ID.
>
> > +            ctx->shm_count--;
> > +            list_del(&shm->list);
> > +        }
> > +    }
>
> NIT: New line here please for clarity.

OK

>
> > +    if ( !list_empty(&ctx->shm_list) )
> > +    {
> > +        printk(XENLOG_INFO, "ffa: Remaining unclaimed handles, retryin=
g\n");
>
> Same as the other printks.
>
> > +        /*
> > +         * TODO: add a timeout where we either panic or let the guest =
be
> > +         * fully destroyed.
> > +         */
> Timeout with proper handling would be a solution. I am not sure about
> panic-ing. Do you think the TEE would be in a bad state if we can't
> release memory?

No, that's not likely.

Thanks,
Jens

>
> > +        return -ERESTART;
> > +    }
> > +
> >       XFREE(d->arch.tee);
> >
> >       return 0;
>
> Cheers,
>
> --
> Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647557.1010815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUU-0003g7-7E; Tue, 05 Dec 2023 11:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647557.1010815; Tue, 05 Dec 2023 11:21:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUU-0003fK-35; Tue, 05 Dec 2023 11:21:26 +0000
Received: by outflank-mailman (input) for mailman id 647557;
 Tue, 05 Dec 2023 11:21:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUS-0003dP-SL
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:24 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a2ccb30-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:22 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:18 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:15 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a2ccb30-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775283; x=1733311283;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=v3nbyVMf0aIerMrm1+y/EcRcYpBPiiRgvkDlUBHsaxM=;
  b=nKWkJLvpuTDlze4r/fDMdxgNAtX/r2FTbwmy5d3xSDFIXLYaNPX3X3ls
   /qzRUsKZLMq8x4zo+IIv7pob7uXRd9aOkkqfM/LgJ7LGhl6k7I25rcCaH
   SmLpx8WPIsY9/B3OeFZOt6DqmZQ9cn+fY7cxAmj98yhFVfE7/VgywWmGc
   idoRtz0xpAmq+3vF43iw7vjFnPuJic0AwgXdXFTbx6q0v17AgUnTamHAj
   LMuJTematMX5tmEryVNxmnhXOuZE9LmlBP6BzyK64pG/0nJU6YP+rYGaz
   TtgFlLYqkzNgm9luiYTbLb+9YnIAzftPrKWIvMMnMOCwT+KT0NeEkJu8W
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942315"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942315"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192896"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192896"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 01/35] x86/cpufeatures,opcode,msr: Add the WRMSRNS instruction support
Date: Tue,  5 Dec 2023 02:49:50 -0800
Message-ID: <20231205105030.8698-2-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

WRMSRNS is an instruction that behaves exactly like WRMSR, with
the only difference being that it is not a serializing instruction
by default. Under certain conditions, WRMSRNS may replace WRMSR to
improve performance.

Add its CPU feature bit, opcode to the x86 opcode map, and an
always inline API __wrmsrns() to embed WRMSRNS into the code.

Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v12:
* Merge the 3 WRMSRNS patches into one (Borislav Petkov).
* s/cpu/CPU/g (Borislav Petkov).
* Shorten the WRMSRNS description (Borislav Petkov).
---
 arch/x86/include/asm/cpufeatures.h       |  1 +
 arch/x86/include/asm/msr.h               | 18 ++++++++++++++++++
 arch/x86/lib/x86-opcode-map.txt          |  2 +-
 tools/arch/x86/include/asm/cpufeatures.h |  1 +
 tools/arch/x86/lib/x86-opcode-map.txt    |  2 +-
 5 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index 149cc5d5c2ae..a903fc130e49 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -325,6 +325,7 @@
 #define X86_FEATURE_FSRS		(12*32+11) /* "" Fast short REP STOSB */
 #define X86_FEATURE_FSRC		(12*32+12) /* "" Fast short REP {CMPSB,SCASB} */
 #define X86_FEATURE_LKGS		(12*32+18) /* "" Load "kernel" (userspace) GS */
+#define X86_FEATURE_WRMSRNS		(12*32+19) /* "" Non-serializing WRMSR */
 #define X86_FEATURE_AMX_FP16		(12*32+21) /* "" AMX fp16 Support */
 #define X86_FEATURE_AVX_IFMA            (12*32+23) /* "" Support for VPMADD52[H,L]UQ */
 #define X86_FEATURE_LAM			(12*32+26) /* Linear Address Masking */
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 65ec1965cd28..c284ff9ebe67 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -97,6 +97,19 @@ static __always_inline void __wrmsr(unsigned int msr, u32 low, u32 high)
 		     : : "c" (msr), "a"(low), "d" (high) : "memory");
 }
 
+/*
+ * WRMSRNS behaves exactly like WRMSR with the only difference being
+ * that it is not a serializing instruction by default.
+ */
+static __always_inline void __wrmsrns(u32 msr, u32 low, u32 high)
+{
+	/* Instruction opcode for WRMSRNS; supported in binutils >= 2.40. */
+	asm volatile("1: .byte 0x0f,0x01,0xc6\n"
+		     "2:\n"
+		     _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR)
+		     : : "c" (msr), "a"(low), "d" (high));
+}
+
 #define native_rdmsr(msr, val1, val2)			\
 do {							\
 	u64 __val = __rdmsr((msr));			\
@@ -297,6 +310,11 @@ do {							\
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
+static __always_inline void wrmsrns(u32 msr, u64 val)
+{
+	__wrmsrns(msr, val, val >> 32);
+}
+
 /*
  * 64-bit version of wrmsr_safe():
  */
diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt
index 5168ee0360b2..1efe1d9bf5ce 100644
--- a/arch/x86/lib/x86-opcode-map.txt
+++ b/arch/x86/lib/x86-opcode-map.txt
@@ -1051,7 +1051,7 @@ GrpTable: Grp6
 EndTable
 
 GrpTable: Grp7
-0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B)
+0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B) | WRMSRNS (110),(11B)
 1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
 2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
 3: LIDT Ms
diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h
index 4af140cf5719..26a73ae18a86 100644
--- a/tools/arch/x86/include/asm/cpufeatures.h
+++ b/tools/arch/x86/include/asm/cpufeatures.h
@@ -322,6 +322,7 @@
 #define X86_FEATURE_FSRS		(12*32+11) /* "" Fast short REP STOSB */
 #define X86_FEATURE_FSRC		(12*32+12) /* "" Fast short REP {CMPSB,SCASB} */
 #define X86_FEATURE_LKGS		(12*32+18) /* "" Load "kernel" (userspace) GS */
+#define X86_FEATURE_WRMSRNS		(12*32+19) /* "" Non-serializing WRMSR */
 #define X86_FEATURE_AMX_FP16		(12*32+21) /* "" AMX fp16 Support */
 #define X86_FEATURE_AVX_IFMA            (12*32+23) /* "" Support for VPMADD52[H,L]UQ */
 #define X86_FEATURE_LAM			(12*32+26) /* Linear Address Masking */
diff --git a/tools/arch/x86/lib/x86-opcode-map.txt b/tools/arch/x86/lib/x86-opcode-map.txt
index 5168ee0360b2..1efe1d9bf5ce 100644
--- a/tools/arch/x86/lib/x86-opcode-map.txt
+++ b/tools/arch/x86/lib/x86-opcode-map.txt
@@ -1051,7 +1051,7 @@ GrpTable: Grp6
 EndTable
 
 GrpTable: Grp7
-0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B)
+0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B) | WRMSRNS (110),(11B)
 1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
 2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
 3: LIDT Ms
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647556.1010809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUT-0003dj-V8; Tue, 05 Dec 2023 11:21:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647556.1010809; Tue, 05 Dec 2023 11: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 1rATUT-0003dc-SE; Tue, 05 Dec 2023 11:21:25 +0000
Received: by outflank-mailman (input) for mailman id 647556;
 Tue, 05 Dec 2023 11:21:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUS-0003dP-6r
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:24 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 690b8cc6-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:20 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:17 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:15 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 690b8cc6-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775281; x=1733311281;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=CTJMCsqO4pq6z+5Iad0prB2mBV/JKDBtPQe8pvTOcU8=;
  b=KMmG+SHWRFu4n3DwFqmpsK89E7XoVQw/VkYSTUjEjYlPoH0pX8ACGVKB
   C5I/7BGTJdkngQ+5IGsZ7Y23wdeHYrUS98dUcG3t9BuC/yxLFT4+Q6Y47
   l92Bmkipwo1V+RatCCbWXxSut5uJ82d23iv4Fy3Nare9o6/ntalL8v6EY
   lTner4w5aGBbaoxAaQdmcjviCPe5l/PgfUUWqifxFnmgB4xEdnJ8CJs1j
   liA5IDO4nFag9/z+3f+CjG6I4UDpCr3jN0Jqtln9wSA0r5hKKc61yrXk5
   NvqJ+n0KvaOJFdquTeaYYatmTZdwsqUlf0rU9WvMw/FFrKTwaUXq4hVz2
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942302"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942302"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192891"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192891"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 00/35] x86: enable FRED for x86-64
Date: Tue,  5 Dec 2023 02:49:49 -0800
Message-ID: <20231205105030.8698-1-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch set enables the Intel flexible return and event delivery
(FRED) architecture for x86-64.

The FRED architecture defines simple new transitions that change
privilege level (ring transitions). The FRED architecture was
designed with the following goals:

1) Improve overall performance and response time by replacing event
   delivery through the interrupt descriptor table (IDT event
   delivery) and event return by the IRET instruction with lower
   latency transitions.

2) Improve software robustness by ensuring that event delivery
   establishes the full supervisor context and that event return
   establishes the full user context.

The new transitions defined by the FRED architecture are FRED event
delivery and, for returning from events, two FRED return instructions.
FRED event delivery can effect a transition from ring 3 to ring 0, but
it is used also to deliver events incident to ring 0. One FRED
instruction (ERETU) effects a return from ring 0 to ring 3, while the
other (ERETS) returns while remaining in ring 0. Collectively, FRED
event delivery and the FRED return instructions are FRED transitions.

Search for the latest FRED spec in most search engines with this search pattern:

  site:intel.com FRED (flexible return and event delivery) specification

As of now there is no publicly avaiable CPU supporting FRED, thus the Intel
SimicsÂ® Simulator is used as software development and testing vehicles. And
it can be downloaded from:
  https://www.intel.com/content/www/us/en/developer/articles/tool/simics-simulator.html

To enable FRED, the Simics package 8112 QSP-CPU needs to be installed with
CPU model configured as:
	$cpu_comp_class = "x86-experimental-fred"


Changes since v12:
* Merge the 3 WRMSRNS patches into one (Borislav Petkov).
* s/cpu/CPU/g (Borislav Petkov).
* Shorten the WRMSRNS description (Borislav Petkov).
* Put comments ontop, not on the side (Borislav Petkov).
* Use the ASCII char ' (char number 0x27), instead of its unicode char
  (Borislav Petkov).
* No "we" in a commit message, use passive voice (Borislav Petkov).
* Fix confusing Signed-off-by chains (Borislav Petkov).

Changes since v11:
* Add a new structure fred_cs to denote the FRED flags above CS
  selector as what is done for SS (H. Peter Anvin).

Changes since v10:
* No need to invalidate SYSCALL and SYSENTER MSRs (Thomas Gleixner).
* Better explain the reason why no need to check current stack level
  (Paolo Bonzini).
* Replace "IS_ENABLED(CONFIG_IA32_EMULATION)" with the new ia32_enabled()
  API (Nikolay Borisov).
* FRED feature is defined in cpuid word 12, not 13 (Nikolay Borisov).
* Reword a sentence in the new FRED documentation to improve readability
  (Nikolay Borisov).
* A few comment fixes and improvements to event type definitions
  (Andrew Cooper).

Changes since v9:
* Set unused sysvec table entries to fred_handle_spurious_interrupt()
  in fred_complete_exception_setup() (Thomas Gleixner).
* Shove the whole thing into arch/x86/entry/entry_64_fred.S for invoking
  external_interrupt() and fred_exc_nmi() (Sean Christopherson).
* Correct and improve a few comments (Sean Christopherson).
* Merge the two IRQ/NMI asm entries into one as it's fine to invoke
  noinstr code from regular code (Thomas Gleixner).
* Setup the long mode and NMI flags in the augmented SS field of FRED
  stack frame in C instead of asm (Thomas Gleixner).
* Don't use jump tables, indirect jumps are expensive (Thomas Gleixner).
* Except #NMI/#DB/#MCE, FRED really can share the exception handlers
  with IDT (Thomas Gleixner).
* Avoid the sysvec_* idt_entry muck, do it at a central place, reuse code
  instead of blindly copying it, which breaks the performance optimized
  sysvec entries like reschedule_ipi (Thomas Gleixner).
* Add asm_ prefix to FRED asm entry points (Thomas Gleixner).
* Disable #DB to avoid endless recursion and stack overflow when a
  watchpoint/breakpoint is set in the code path which is executed by
  #DB handler (Thomas Gleixner).
* Introduce a new structure fred_ss to denote the FRED flags above SS
  selector, which avoids FRED_SSX_ macros and makes the code simpler
  and easier to read (Thomas Gleixner).
* Use type u64 to define FRED bit fields instead of type unsigned int
  (Thomas Gleixner).
* Avoid a type cast by defining X86_CR4_FRED as 0 on 32-bit (Thomas
  Gleixner).
* Add the WRMSRNS instruction support (Thomas Gleixner).

Changes since v8:
* Move the FRED initialization patch after all required changes are in
  place (Thomas Gleixner).
* Don't do syscall early out in fred_entry_from_user() before there are
  proper performance numbers and justifications (Thomas Gleixner).
* Add the control exception handler to the FRED exception handler table
  (Thomas Gleixner).
* Introduce a macro sysvec_install() to derive the asm handler name from
  a C handler, which simplifies the code and avoids an ugly typecast
  (Thomas Gleixner).
* Remove junk code that assumes no local APIC on x86_64 (Thomas Gleixner).
* Put IDTENTRY changes in a separate patch (Thomas Gleixner).
* Use high-order 48 bits above the lowest 16 bit SS only when FRED is
  enabled (Thomas Gleixner).
* Explain why writing directly to the IA32_KERNEL_GS_BASE MSR is
  doing the right thing (Thomas Gleixner).
* Reword some patch descriptions (Thomas Gleixner).
* Add a new macro VMX_DO_FRED_EVENT_IRQOFF for FRED instead of
  refactoring VMX_DO_EVENT_IRQOFF (Sean Christopherson).
* Do NOT use a trampoline, just LEA+PUSH the return RIP, PUSH the error
  code, and jump to the FRED kernel entry point for NMI or call
  external_interrupt() for IRQs (Sean Christopherson).
* Call external_interrupt() only when FRED is enabled, and convert the
  non-FRED handling to external_interrupt() after FRED lands (Sean
  Christopherson).
* Use __packed instead of __attribute__((__packed__)) (Borislav Petkov).
* Put all comments above the members, like the rest of the file does
  (Borislav Petkov).
* Reflect the FRED spec 5.0 change that ERETS and ERETU add 8 to %rsp
  before popping the return context from the stack.
* Reflect stack frame definition changes from FRED spec 3.0 to 5.0.
* Add ENDBR to the FRED_ENTER asm macro after kernel IBT is added to
  FRED base line in FRED spec 5.0.
* Add a document which briefly introduces FRED features.
* Remove 2 patches, "allow FRED systems to use interrupt vectors
  0x10-0x1f" and "allow dynamic stack frame size", from this patch set,
  as they are "optimizations" only.
* Send 2 patches, "header file for event types" and "do not modify the
  DPL bits for a null selector", as pre-FRED patches.

Changes since v7:
* Always call external_interrupt() for VMX IRQ handling on x86_64, thus avoid
  re-entering the noinstr code.
* Create a FRED stack frame when FRED is compiled-in but not enabled, which
  uses some extra stack space but simplifies the code.
* Add a log message when FRED is enabled.

Changes since v6:
* Add a comment to explain why it is safe to write to a previous FRED stack
  frame. (Lai Jiangshan).
* Export fred_entrypoint_kernel(), required when kvm-intel built as a module.
* Reserve a REDZONE for CALL emulation and Align RSP to a 64-byte boundary
  before pushing a new FRED stack frame.
* Replace pt_regs csx flags prefix FRED_CSL_ with FRED_CSX_.

Changes since v5:
* Initialize system_interrupt_handlers with dispatch_table_spurious_interrupt()
  instead of NULL to get rid of a branch (Peter Zijlstra).
* Disallow #DB inside #MCE for robustness sake (Peter Zijlstra).
* Add a comment for FRED stack level settings (Lai Jiangshan).
* Move the NMI bit from an invalid stack frame, which caused ERETU to fault,
  to the fault handler's stack frame, thus to unblock NMI ASAP if NMI is blocked
  (Lai Jiangshan).
* Refactor VMX_DO_EVENT_IRQOFF to handle IRQ/NMI in IRQ/NMI induced VM exits
  when FRED is enabled (Sean Christopherson).

Changes since v4:
* Do NOT use the term "injection", which in the KVM context means to
  reinject an event into the guest (Sean Christopherson).
* Add the explanation of why to execute "int $2" to invoke the NMI handler
  in NMI caused VM exits (Sean Christopherson).
* Use cs/ss instead of csx/ssx when initializing the pt_regs structure
  for calling external_interrupt(), otherwise it breaks i386 build.

Changes since v3:
* Call external_interrupt() to handle IRQ in IRQ caused VM exits.
* Execute "int $2" to handle NMI in NMI caused VM exits.
* Rename csl/ssl of the pt_regs structure to csx/ssx (x for extended)
  (Andrew Cooper).

Changes since v2:
* Improve comments for changes in arch/x86/include/asm/idtentry.h.

Changes since v1:
* call irqentry_nmi_{enter,exit}() in both IDT and FRED debug fault kernel
  handler (Peter Zijlstra).
* Initialize a FRED exception handler to fred_bad_event() instead of NULL
  if no FRED handler defined for an exception vector (Peter Zijlstra).
* Push calling irqentry_{enter,exit}() and instrumentation_{begin,end}()
  down into individual FRED exception handlers, instead of in the dispatch
  framework (Peter Zijlstra).


H. Peter Anvin (Intel) (20):
  x86/fred: Add Kconfig option for FRED (CONFIG_X86_FRED)
  x86/cpufeatures: Add the CPU feature bit for FRED
  x86/fred: Disable FRED support if CONFIG_X86_FRED is disabled
  x86/opcode: Add ERET[US] instructions to the x86 opcode map
  x86/objtool: Teach objtool about ERET[US]
  x86/cpu: Add X86_CR4_FRED macro
  x86/cpu: Add MSR numbers for FRED configuration
  x86/fred: Add a new header file for FRED definitions
  x86/fred: Reserve space for the FRED stack frame
  x86/fred: Update MSR_IA32_FRED_RSP0 during task switch
  x86/fred: Disallow the swapgs instruction when FRED is enabled
  x86/fred: No ESPFIX needed when FRED is enabled
  x86/fred: Allow single-step trap and NMI when starting a new task
  x86/fred: Make exc_page_fault() work for FRED
  x86/fred: Add a debug fault entry stub for FRED
  x86/fred: Add a NMI entry stub for FRED
  x86/fred: FRED entry/exit and dispatch code
  x86/fred: Let ret_from_fork_asm() jmp to asm_fred_exit_user when FRED
    is enabled
  x86/fred: Add FRED initialization functions
  x86/fred: Invoke FRED initialization code to enable FRED

Peter Zijlstra (Intel) (1):
  x86/entry/calling: Allow PUSH_AND_CLEAR_REGS being used beyond actual
    entry code

Xin Li (14):
  x86/cpufeatures,opcode,msr: Add the WRMSRNS instruction support
  x86/entry: Remove idtentry_sysvec from entry_{32,64}.S
  x86/trapnr: Add event type macros to <asm/trapnr.h>
  Documentation/x86/64: Add a documentation for FRED
  x86/fred: Disable FRED by default in its early stage
  x86/ptrace: Cleanup the definition of the pt_regs structure
  x86/ptrace: Add FRED additional information to the pt_regs structure
  x86/idtentry: Incorporate definitions/declarations of the FRED entries
  x86/fred: Add a machine check entry stub for FRED
  x86/traps: Add sysvec_install() to install a system interrupt handler
  x86/fred: Fixup fault on ERETU by jumping to fred_entrypoint_user
  x86/entry: Add fred_entry_from_kvm() for VMX to handle IRQ/NMI
  KVM: VMX: Call fred_entry_from_kvm() for IRQ/NMI handling
  x86/syscall: Split IDT syscall setup code into idt_syscall_init()

 .../admin-guide/kernel-parameters.txt         |   3 +
 Documentation/arch/x86/x86_64/fred.rst        |  96 ++++++
 Documentation/arch/x86/x86_64/index.rst       |   1 +
 arch/x86/Kconfig                              |   9 +
 arch/x86/entry/Makefile                       |   5 +-
 arch/x86/entry/calling.h                      |  15 +-
 arch/x86/entry/entry_32.S                     |   4 -
 arch/x86/entry/entry_64.S                     |  14 +-
 arch/x86/entry/entry_64_fred.S                | 133 +++++++++
 arch/x86/entry/entry_fred.c                   | 279 ++++++++++++++++++
 arch/x86/entry/vsyscall/vsyscall_64.c         |   2 +-
 arch/x86/include/asm/asm-prototypes.h         |   1 +
 arch/x86/include/asm/cpufeatures.h            |   2 +
 arch/x86/include/asm/desc.h                   |   2 -
 arch/x86/include/asm/disabled-features.h      |   8 +-
 arch/x86/include/asm/extable_fixup_types.h    |   4 +-
 arch/x86/include/asm/fred.h                   |  97 ++++++
 arch/x86/include/asm/idtentry.h               |  88 +++++-
 arch/x86/include/asm/msr-index.h              |  13 +-
 arch/x86/include/asm/msr.h                    |  18 ++
 arch/x86/include/asm/ptrace.h                 | 104 ++++++-
 arch/x86/include/asm/switch_to.h              |   8 +-
 arch/x86/include/asm/thread_info.h            |  12 +-
 arch/x86/include/asm/trapnr.h                 |  12 +
 arch/x86/include/asm/vmx.h                    |  17 +-
 arch/x86/include/uapi/asm/processor-flags.h   |   7 +
 arch/x86/kernel/Makefile                      |   1 +
 arch/x86/kernel/cpu/acrn.c                    |   4 +-
 arch/x86/kernel/cpu/common.c                  |  41 ++-
 arch/x86/kernel/cpu/cpuid-deps.c              |   2 +
 arch/x86/kernel/cpu/mce/core.c                |  26 ++
 arch/x86/kernel/cpu/mshyperv.c                |  15 +-
 arch/x86/kernel/espfix_64.c                   |   8 +
 arch/x86/kernel/fred.c                        |  59 ++++
 arch/x86/kernel/idt.c                         |   4 +-
 arch/x86/kernel/irqinit.c                     |   7 +-
 arch/x86/kernel/kvm.c                         |   2 +-
 arch/x86/kernel/nmi.c                         |  28 ++
 arch/x86/kernel/process_64.c                  |  67 ++++-
 arch/x86/kernel/traps.c                       |  48 ++-
 arch/x86/kvm/vmx/vmx.c                        |  12 +-
 arch/x86/lib/x86-opcode-map.txt               |   4 +-
 arch/x86/mm/extable.c                         |  79 +++++
 arch/x86/mm/fault.c                           |   5 +-
 drivers/xen/events/events_base.c              |   2 +-
 tools/arch/x86/include/asm/cpufeatures.h      |   2 +
 .../arch/x86/include/asm/disabled-features.h  |   8 +-
 tools/arch/x86/include/asm/msr-index.h        |  13 +-
 tools/arch/x86/lib/x86-opcode-map.txt         |   4 +-
 tools/objtool/arch/x86/decode.c               |  19 +-
 50 files changed, 1300 insertions(+), 114 deletions(-)
 create mode 100644 Documentation/arch/x86/x86_64/fred.rst
 create mode 100644 arch/x86/entry/entry_64_fred.S
 create mode 100644 arch/x86/entry/entry_fred.c
 create mode 100644 arch/x86/include/asm/fred.h
 create mode 100644 arch/x86/kernel/fred.c


base-commit: 5d868f6ec314aaee65ec5d12c03f18d79e632043
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647558.1010830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUV-00048V-Ji; Tue, 05 Dec 2023 11:21:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647558.1010830; Tue, 05 Dec 2023 11:21:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUV-00048O-Gx; Tue, 05 Dec 2023 11:21:27 +0000
Received: by outflank-mailman (input) for mailman id 647558;
 Tue, 05 Dec 2023 11:21: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUT-0003dP-TU
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:25 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ad2501a-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:23 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:18 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:16 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ad2501a-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775285; x=1733311285;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=4HjA/ehjhpPNNDfV0w3r41UQQGamUWV+NqHjpKdn1bk=;
  b=NdHApvaQJQvfQVBebrbZVDl9Kpxe0+TGRfJMQ2OzEZo87IRw8/8Iu2kR
   B9Axf41QNaM80nMWr6tx8QnsXKf41ssPIUGRXCMV4UW9v1ilXuEl40ztp
   WV5mBcJQoDOCr4312+1nOT+K0om0r/wkIXtrK2TQKCOWgDLiL7OPQxBDq
   gRa6n6XWb8rKieOdoV8ncW8MI8UihQe7jq3mLimBwhPs5McvqGS129DHB
   /prbIwO+fgx8ZWlrLY5ymnKzvL2d/nfK9tSQkDzJz1JkIey3j1alaL8qd
   mtDNtfB6iYMHV6UjcSW7KsQz2ey9lb6miQkYJuw1SxuEf2rJADaYNaREW
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942322"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942322"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192900"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192900"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 02/35] x86/entry: Remove idtentry_sysvec from entry_{32,64}.S
Date: Tue,  5 Dec 2023 02:49:51 -0800
Message-ID: <20231205105030.8698-3-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

idtentry_sysvec is really just DECLARE_IDTENTRY defined in
<asm/idtentry.h>, no need to define it separately.

Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/entry/entry_32.S       | 4 ----
 arch/x86/entry/entry_64.S       | 8 --------
 arch/x86/include/asm/idtentry.h | 2 +-
 3 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
index 4e295798638b..1b0fe4b49ea0 100644
--- a/arch/x86/entry/entry_32.S
+++ b/arch/x86/entry/entry_32.S
@@ -649,10 +649,6 @@ SYM_CODE_START_LOCAL(asm_\cfunc)
 SYM_CODE_END(asm_\cfunc)
 .endm
 
-.macro idtentry_sysvec vector cfunc
-	idtentry \vector asm_\cfunc \cfunc has_error_code=0
-.endm
-
 /*
  * Include the defines which emit the idt entries which are shared
  * shared between 32 and 64 bit and emit the __irqentry_text_* markers
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 567d973eed03..5a1660701623 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -370,14 +370,6 @@ SYM_CODE_END(\asmsym)
 	idtentry \vector asm_\cfunc \cfunc has_error_code=1
 .endm
 
-/*
- * System vectors which invoke their handlers directly and are not
- * going through the regular common device interrupt handling code.
- */
-.macro idtentry_sysvec vector cfunc
-	idtentry \vector asm_\cfunc \cfunc has_error_code=0
-.endm
-
 /**
  * idtentry_mce_db - Macro to generate entry stubs for #MC and #DB
  * @vector:		Vector number
diff --git a/arch/x86/include/asm/idtentry.h b/arch/x86/include/asm/idtentry.h
index 05fd175cec7d..cfca68f6cb84 100644
--- a/arch/x86/include/asm/idtentry.h
+++ b/arch/x86/include/asm/idtentry.h
@@ -447,7 +447,7 @@ __visible noinstr void func(struct pt_regs *regs,			\
 
 /* System vector entries */
 #define DECLARE_IDTENTRY_SYSVEC(vector, func)				\
-	idtentry_sysvec vector func
+	DECLARE_IDTENTRY(vector, func)
 
 #ifdef CONFIG_X86_64
 # define DECLARE_IDTENTRY_MCE(vector, func)				\
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647559.1010840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUW-0004P5-V2; Tue, 05 Dec 2023 11:21:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647559.1010840; Tue, 05 Dec 2023 11:21:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUW-0004Ow-Q9; Tue, 05 Dec 2023 11:21:28 +0000
Received: by outflank-mailman (input) for mailman id 647559;
 Tue, 05 Dec 2023 11:21:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUU-0003dP-ST
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:26 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c311f48-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:24 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:18 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:16 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c311f48-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775285; x=1733311285;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=jUmKwc/SMnY0ZGiDGUCu3QSu4hVAIRhy7FwTA3XKz/Q=;
  b=YFVQajwickw0ewsmdV5m2snAmElv+XHdW6nXr2U8UgGZdTyRb/aRXSln
   3Puf7ouF8AfXiTw5Roo0zaHpr0CpRmhXq+M7bKU8XPACBpHESSWjQn5Ow
   sGtT7o6PNaSJXE6Pu0fLtIA1Sjtm+O4OGY6v8qwGJpffmPRxrjBe/l7L8
   Lra1+a2RlkZA+/xXq+Rjia0ALBEKX97Ez8r2GVhH6Lewg0qQAKz6uaRZL
   qclSQ+lI/BmN2xkXdZxlJSKqii7Biywic7OLs75xZnqhuQIldh85U2xHJ
   b5typ95TP1+2d+S3I7B805HqrOUUtmCyl/nzgVm/DyVYzglXGNEfR1GJ6
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942329"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942329"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192905"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192905"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 03/35] x86/trapnr: Add event type macros to <asm/trapnr.h>
Date: Tue,  5 Dec 2023 02:49:52 -0800
Message-ID: <20231205105030.8698-4-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Intel VT-x classifies events into eight different types, which is
inherited by FRED for event identification. As such, event type
becomes a common x86 concept, and should be defined in a common x86
header.

Add event type macros to <asm/trapnr.h>, and use it in <asm/vmx.h>.

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v10:
* A few comment fixes and improvements (Andrew Cooper).
---
 arch/x86/include/asm/trapnr.h | 12 ++++++++++++
 arch/x86/include/asm/vmx.h    | 17 +++++++++--------
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/trapnr.h b/arch/x86/include/asm/trapnr.h
index f5d2325aa0b7..8d1154cdf787 100644
--- a/arch/x86/include/asm/trapnr.h
+++ b/arch/x86/include/asm/trapnr.h
@@ -2,6 +2,18 @@
 #ifndef _ASM_X86_TRAPNR_H
 #define _ASM_X86_TRAPNR_H
 
+/*
+ * Event type codes used by FRED, Intel VT-x and AMD SVM
+ */
+#define EVENT_TYPE_EXTINT	0	// External interrupt
+#define EVENT_TYPE_RESERVED	1
+#define EVENT_TYPE_NMI		2	// NMI
+#define EVENT_TYPE_HWEXC	3	// Hardware originated traps, exceptions
+#define EVENT_TYPE_SWINT	4	// INT n
+#define EVENT_TYPE_PRIV_SWEXC	5	// INT1
+#define EVENT_TYPE_SWEXC	6	// INTO, INT3
+#define EVENT_TYPE_OTHER	7	// FRED SYSCALL/SYSENTER, VT-x MTF
+
 /* Interrupts/Exceptions */
 
 #define X86_TRAP_DE		 0	/* Divide-by-zero */
diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h
index 0e73616b82f3..4dba17363008 100644
--- a/arch/x86/include/asm/vmx.h
+++ b/arch/x86/include/asm/vmx.h
@@ -17,6 +17,7 @@
 #include <linux/types.h>
 
 #include <uapi/asm/vmx.h>
+#include <asm/trapnr.h>
 #include <asm/vmxfeatures.h>
 
 #define VMCS_CONTROL_BIT(x)	BIT(VMX_FEATURE_##x & 0x1f)
@@ -374,14 +375,14 @@ enum vmcs_field {
 #define VECTORING_INFO_DELIVER_CODE_MASK    	INTR_INFO_DELIVER_CODE_MASK
 #define VECTORING_INFO_VALID_MASK       	INTR_INFO_VALID_MASK
 
-#define INTR_TYPE_EXT_INTR              (0 << 8) /* external interrupt */
-#define INTR_TYPE_RESERVED              (1 << 8) /* reserved */
-#define INTR_TYPE_NMI_INTR		(2 << 8) /* NMI */
-#define INTR_TYPE_HARD_EXCEPTION	(3 << 8) /* processor exception */
-#define INTR_TYPE_SOFT_INTR             (4 << 8) /* software interrupt */
-#define INTR_TYPE_PRIV_SW_EXCEPTION	(5 << 8) /* ICE breakpoint - undocumented */
-#define INTR_TYPE_SOFT_EXCEPTION	(6 << 8) /* software exception */
-#define INTR_TYPE_OTHER_EVENT           (7 << 8) /* other event */
+#define INTR_TYPE_EXT_INTR		(EVENT_TYPE_EXTINT << 8)	/* external interrupt */
+#define INTR_TYPE_RESERVED		(EVENT_TYPE_RESERVED << 8)	/* reserved */
+#define INTR_TYPE_NMI_INTR		(EVENT_TYPE_NMI << 8)		/* NMI */
+#define INTR_TYPE_HARD_EXCEPTION	(EVENT_TYPE_HWEXC << 8)		/* processor exception */
+#define INTR_TYPE_SOFT_INTR		(EVENT_TYPE_SWINT << 8)		/* software interrupt */
+#define INTR_TYPE_PRIV_SW_EXCEPTION	(EVENT_TYPE_PRIV_SWEXC << 8)	/* ICE breakpoint */
+#define INTR_TYPE_SOFT_EXCEPTION	(EVENT_TYPE_SWEXC << 8)		/* software exception */
+#define INTR_TYPE_OTHER_EVENT		(EVENT_TYPE_OTHER << 8)		/* other event */
 
 /* GUEST_INTERRUPTIBILITY_INFO flags. */
 #define GUEST_INTR_STATE_STI		0x00000001
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647560.1010845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUX-0004SN-8p; Tue, 05 Dec 2023 11:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647560.1010845; Tue, 05 Dec 2023 11:21:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUX-0004Rl-4D; Tue, 05 Dec 2023 11:21:29 +0000
Received: by outflank-mailman (input) for mailman id 647560;
 Tue, 05 Dec 2023 11:21:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUV-0003dP-SU
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:27 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6cd8b9cc-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:25 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:18 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:16 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6cd8b9cc-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775286; x=1733311286;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=rcIX7hZP19m5L490VTf3i3xI4HPGPBfZoYyDd0t+hRM=;
  b=QyLJKSOHG1YURSmhSE6+Ta7wXoFOslKhEFLlXdEwWbeWKNpOf/239lUh
   b7aWw+f3m09tfUnJd5xYXWsLfr/M2FBQhCOPPMqXY73BO3zLvvFeMa5yS
   D0yRMdX2ndbyVT0VZhOz7vwW2MC9AHC0UlmnvEiCTzjbITAvPJ64yF/EW
   1na/LQUEv5Q6KTh0HzfHZtXlGYvOgjKUwnhFojZ5k8l3wVv2X34gmhKUz
   FxEZFC0R5QUxZLzghcBD4HasO6jmIO1b1y95Sw9me4SoFGqrlpeUNwls6
   brnaWD+/yHObbSC9e02DRWfyK37byBOjlKU+s9dVoM1AyPvwj/jsxLEHB
   Q==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942335"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942335"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192908"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192908"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 04/35] Documentation/x86/64: Add a documentation for FRED
Date: Tue,  5 Dec 2023 02:49:53 -0800
Message-ID: <20231205105030.8698-5-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Briefly introduce FRED, and its advantages compared to IDT.

Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v10:
* Reword a sentence to improve readability (Nikolay Borisov).
---
 Documentation/arch/x86/x86_64/fred.rst  | 96 +++++++++++++++++++++++++
 Documentation/arch/x86/x86_64/index.rst |  1 +
 2 files changed, 97 insertions(+)
 create mode 100644 Documentation/arch/x86/x86_64/fred.rst

diff --git a/Documentation/arch/x86/x86_64/fred.rst b/Documentation/arch/x86/x86_64/fred.rst
new file mode 100644
index 000000000000..9f57e7b91f7e
--- /dev/null
+++ b/Documentation/arch/x86/x86_64/fred.rst
@@ -0,0 +1,96 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=========================================
+Flexible Return and Event Delivery (FRED)
+=========================================
+
+Overview
+========
+
+The FRED architecture defines simple new transitions that change
+privilege level (ring transitions). The FRED architecture was
+designed with the following goals:
+
+1) Improve overall performance and response time by replacing event
+   delivery through the interrupt descriptor table (IDT event
+   delivery) and event return by the IRET instruction with lower
+   latency transitions.
+
+2) Improve software robustness by ensuring that event delivery
+   establishes the full supervisor context and that event return
+   establishes the full user context.
+
+The new transitions defined by the FRED architecture are FRED event
+delivery and, for returning from events, two FRED return instructions.
+FRED event delivery can effect a transition from ring 3 to ring 0, but
+it is used also to deliver events incident to ring 0. One FRED
+instruction (ERETU) effects a return from ring 0 to ring 3, while the
+other (ERETS) returns while remaining in ring 0. Collectively, FRED
+event delivery and the FRED return instructions are FRED transitions.
+
+In addition to these transitions, the FRED architecture defines a new
+instruction (LKGS) for managing the state of the GS segment register.
+The LKGS instruction can be used by 64-bit operating systems that do
+not use the new FRED transitions.
+
+Furthermore, the FRED architecture is easy to extend for future CPU
+architectures.
+
+Software based event dispatching
+================================
+
+FRED operates differently from IDT in terms of event handling. Instead
+of directly dispatching an event to its handler based on the event
+vector, FRED requires the software to dispatch an event to its handler
+based on both the event's type and vector. Therefore, an event dispatch
+framework must be implemented to facilitate the event-to-handler
+dispatch process. The FRED event dispatch framework takes control
+once an event is delivered, and employs a two-level dispatch.
+
+The first level dispatching is event type based, and the second level
+dispatching is event vector based.
+
+Full supervisor/user context
+============================
+
+FRED event delivery atomically save and restore full supervisor/user
+context upon event delivery and return. Thus it avoids the problem of
+transient states due to %cr2 and/or %dr6, and it is no longer needed
+to handle all the ugly corner cases caused by half baked entry states.
+
+FRED allows explicit unblock of NMI with new event return instructions
+ERETS/ERETU, avoiding the mess caused by IRET which unconditionally
+unblocks NMI, e.g., when an exception happens during NMI handling.
+
+FRED always restores the full value of %rsp, thus ESPFIX is no longer
+needed when FRED is enabled.
+
+LKGS
+====
+
+LKGS behaves like the MOV to GS instruction except that it loads the
+base address into the IA32_KERNEL_GS_BASE MSR instead of the GS
+segmentâ€™s descriptor cache. With LKGS, it ends up with avoiding
+mucking with kernel GS, i.e., an operating system can always operate
+with its own GS base address.
+
+Because FRED event delivery from ring 3 and ERETU both swap the value
+of the GS base address and that of the IA32_KERNEL_GS_BASE MSR, plus
+the introduction of LKGS instruction, the SWAPGS instruction is no
+longer needed when FRED is enabled, thus is disallowed (#UD).
+
+Stack levels
+============
+
+4 stack levels 0~3 are introduced to replace the nonreentrant IST for
+event handling, and each stack level should be configured to use a
+dedicated stack.
+
+The current stack level could be unchanged or go higher upon FRED
+event delivery. If unchanged, the CPU keeps using the current event
+stack. If higher, the CPU switches to a new event stack specified by
+the MSR of the new stack level, i.e., MSR_IA32_FRED_RSP[123].
+
+Only execution of a FRED return instruction ERET[US], could lower the
+current stack level, causing the CPU to switch back to the stack it was
+on before a previous event delivery that promoted the stack level.
diff --git a/Documentation/arch/x86/x86_64/index.rst b/Documentation/arch/x86/x86_64/index.rst
index a56070fc8e77..ad15e9bd623f 100644
--- a/Documentation/arch/x86/x86_64/index.rst
+++ b/Documentation/arch/x86/x86_64/index.rst
@@ -15,3 +15,4 @@ x86_64 Support
    cpu-hotplug-spec
    machinecheck
    fsgs
+   fred
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647561.1010860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUY-0004uP-IU; Tue, 05 Dec 2023 11:21:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647561.1010860; Tue, 05 Dec 2023 11: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 1rATUY-0004tv-F5; Tue, 05 Dec 2023 11:21:30 +0000
Received: by outflank-mailman (input) for mailman id 647561;
 Tue, 05 Dec 2023 11:21:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUW-0003dP-SX
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:28 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ca7069c-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:26 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:19 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:17 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ca7069c-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775287; x=1733311287;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=XAJxKoMf+2QJIK9eDHNvPpRiHTb0PPLqXWearFjnRKA=;
  b=ZwJr9giykQwTkJo7bybLidF14PQQuL/pxMcqjLjC9BGsZOhLvWNccMn7
   7Md222P09CL1ggbjZTQQQ0fmmxUafzcFoBmMNFLvpGlOOmtYpp7a/iGQG
   gei02IfNmjhXJxFVbohRhDCNw0+wr2xJ7YXtO9X5AgHZJCgYo81tDnCd5
   V2E3NlGH0koCHbRR6Xha6qenUSbn4Ww+eT3BoIPdMCamytSioUTFY93Ex
   3GufM1IaKZBqgvCVTXfon3PfT4jdSGAQHsPHbxRW2TZUOz359cbWyrgBW
   cPMj/myhTrx4J1obil9dC5Mt/KwhYpFUJngYWwr3kau0ccJUIG2w+S5AG
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942384"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942384"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192916"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192916"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 06/35] x86/cpufeatures: Add the CPU feature bit for FRED
Date: Tue,  5 Dec 2023 02:49:55 -0800
Message-ID: <20231205105030.8698-7-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Any FRED CPU will always have the following features as its baseline:
  1) LKGS, load attributes of the GS segment but the base address into
     the IA32_KERNEL_GS_BASE MSR instead of the GS segmentâ€™s descriptor
     cache.
  2) WRMSRNS, non-serializing WRMSR for faster MSR writes.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Change since v12:
* s/cpu/CPU/g (Borislav Petkov).
---
 arch/x86/include/asm/cpufeatures.h       | 1 +
 arch/x86/kernel/cpu/cpuid-deps.c         | 2 ++
 tools/arch/x86/include/asm/cpufeatures.h | 1 +
 3 files changed, 4 insertions(+)

diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index a903fc130e49..fef95d190054 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -324,6 +324,7 @@
 #define X86_FEATURE_FZRM		(12*32+10) /* "" Fast zero-length REP MOVSB */
 #define X86_FEATURE_FSRS		(12*32+11) /* "" Fast short REP STOSB */
 #define X86_FEATURE_FSRC		(12*32+12) /* "" Fast short REP {CMPSB,SCASB} */
+#define X86_FEATURE_FRED		(12*32+17) /* Flexible Return and Event Delivery */
 #define X86_FEATURE_LKGS		(12*32+18) /* "" Load "kernel" (userspace) GS */
 #define X86_FEATURE_WRMSRNS		(12*32+19) /* "" Non-serializing WRMSR */
 #define X86_FEATURE_AMX_FP16		(12*32+21) /* "" AMX fp16 Support */
diff --git a/arch/x86/kernel/cpu/cpuid-deps.c b/arch/x86/kernel/cpu/cpuid-deps.c
index e462c1d3800a..b7174209d855 100644
--- a/arch/x86/kernel/cpu/cpuid-deps.c
+++ b/arch/x86/kernel/cpu/cpuid-deps.c
@@ -82,6 +82,8 @@ static const struct cpuid_dep cpuid_deps[] = {
 	{ X86_FEATURE_XFD,			X86_FEATURE_XGETBV1   },
 	{ X86_FEATURE_AMX_TILE,			X86_FEATURE_XFD       },
 	{ X86_FEATURE_SHSTK,			X86_FEATURE_XSAVES    },
+	{ X86_FEATURE_FRED,			X86_FEATURE_LKGS      },
+	{ X86_FEATURE_FRED,			X86_FEATURE_WRMSRNS   },
 	{}
 };
 
diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h
index 26a73ae18a86..f433e9f61354 100644
--- a/tools/arch/x86/include/asm/cpufeatures.h
+++ b/tools/arch/x86/include/asm/cpufeatures.h
@@ -321,6 +321,7 @@
 #define X86_FEATURE_FZRM		(12*32+10) /* "" Fast zero-length REP MOVSB */
 #define X86_FEATURE_FSRS		(12*32+11) /* "" Fast short REP STOSB */
 #define X86_FEATURE_FSRC		(12*32+12) /* "" Fast short REP {CMPSB,SCASB} */
+#define X86_FEATURE_FRED		(12*32+17) /* Flexible Return and Event Delivery */
 #define X86_FEATURE_LKGS		(12*32+18) /* "" Load "kernel" (userspace) GS */
 #define X86_FEATURE_WRMSRNS		(12*32+19) /* "" Non-serializing WRMSR */
 #define X86_FEATURE_AMX_FP16		(12*32+21) /* "" AMX fp16 Support */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647562.1010870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUZ-0005EU-VC; Tue, 05 Dec 2023 11:21:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647562.1010870; Tue, 05 Dec 2023 11:21: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 1rATUZ-0005DR-RC; Tue, 05 Dec 2023 11:21:31 +0000
Received: by outflank-mailman (input) for mailman id 647562;
 Tue, 05 Dec 2023 11:21: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUX-0003dP-Sp
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:29 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d95f8ea-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:26 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:19 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:17 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d95f8ea-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775287; x=1733311287;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=yH4lF8AAQOSRX1ndoBAeOBidmlKnduYQQwpRB60hdFM=;
  b=CLRHJH0LYX4q60ydssLLcA3e/OM2BQ3AzASnM92e2MUlWqlLH7y2WPs7
   aO/j4MOtszdvOHP5rEXGVFS/I93CdyCZh6zHyELHZyem5YngymeJZz8bw
   QGQFxNl0k4DcSzZ8emPCSkVcw//o1IFSKzhlwAeMaiPHtLK302ELIr9nW
   NwAIzCIwRh+BbbQjIZ0sZPzSyWfZfq/7tZZNBNKs4yUguFVrshvdIIGj/
   RYgxjYJxdzUYuzGcEA9v0PLQRvOOjTWiSwLkXxcGQ6xuQX3AD4+DSKPhE
   l03EOZG0A4p808MZKREUmCV9GOz4jQ/J0DlEMtQTxhEjYAiPRAZXr1b2V
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942375"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942375"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192911"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192911"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 05/35] x86/fred: Add Kconfig option for FRED (CONFIG_X86_FRED)
Date: Tue,  5 Dec 2023 02:49:54 -0800
Message-ID: <20231205105030.8698-6-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Add the configuration option CONFIG_X86_FRED to enable FRED.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/Kconfig | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c456c9b1fc7c..ec923d4055c5 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -492,6 +492,15 @@ config X86_CPU_RESCTRL
 
 	  Say N if unsure.
 
+config X86_FRED
+	bool "Flexible Return and Event Delivery"
+	depends on X86_64
+	help
+	  When enabled, try to use Flexible Return and Event Delivery
+	  instead of the legacy SYSCALL/SYSENTER/IDT architecture for
+	  ring transitions and exception/interrupt handling if the
+	  system supports.
+
 if X86_32
 config X86_BIGSMP
 	bool "Support for big SMP systems with more than 8 CPUs"
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647563.1010875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUa-0005K8-HW; Tue, 05 Dec 2023 11:21:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647563.1010875; Tue, 05 Dec 2023 11: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 1rATUa-0005II-BS; Tue, 05 Dec 2023 11:21:32 +0000
Received: by outflank-mailman (input) for mailman id 647563;
 Tue, 05 Dec 2023 11:21:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUY-0003dP-TA
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:30 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d9637ad-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:26 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:19 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:18 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d9637ad-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775287; x=1733311287;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=at3P90/0BHfZm4A3RDkp4mmTPKN/FQQ6JC7gRORtMwU=;
  b=Hi9+qqrSRYSHE/bzr39tBZYAb7pb7u5HtKapuGTBoHQ2eQB03Nqb5Rcb
   WmVB16Zdd3UnYH0myD/ofUhh46kNNIlFlCtCI7fUh2hBGX5qMjIJHfllD
   2kNmZh8VTRZtlINDOjUX1mPsEhq9wru1h87egoPoex4LtBylCn7ARRJMj
   rVQnfqH5IcFwDjwndokZOEBw1LtkMcUDkIt33qu7EDikg8dUYT9rQhlym
   NG4H9ROyKMYovwEHlc2hwxPP9ASzhAGXMv6MVdOXBgjcS86yatZyE2Svl
   BvQv05wAzzwUUH771WwfDwAr6efYOaY9QWkIXzcABzunm+9Utc3bYEX4c
   Q==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942402"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942402"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192924"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192924"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 08/35] x86/fred: Disable FRED by default in its early stage
Date: Tue,  5 Dec 2023 02:49:57 -0800
Message-ID: <20231205105030.8698-9-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To enable FRED, a new kernel command line option "fred" needs to be added.

Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 Documentation/admin-guide/kernel-parameters.txt | 3 +++
 arch/x86/kernel/cpu/common.c                    | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 65731b060e3f..6992b392e8d3 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1526,6 +1526,9 @@
 			Warning: use of this parameter will taint the kernel
 			and may cause unknown problems.
 
+	fred		[X86-64]
+			Enable flexible return and event delivery
+
 	ftrace=[tracer]
 			[FTRACE] will set and start the specified tracer
 			as early as possible in order to facilitate early
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 4d4b87c6885d..68102acd63b0 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1491,6 +1491,9 @@ static void __init cpu_parse_early_param(void)
 	char *argptr = arg, *opt;
 	int arglen, taint = 0;
 
+	if (!cmdline_find_option_bool(boot_command_line, "fred"))
+		setup_clear_cpu_cap(X86_FEATURE_FRED);
+
 #ifdef CONFIG_X86_32
 	if (cmdline_find_option_bool(boot_command_line, "no387"))
 #ifdef CONFIG_MATH_EMULATION
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647564.1010881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUb-0005Ro-5p; Tue, 05 Dec 2023 11:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647564.1010881; Tue, 05 Dec 2023 11:21:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUa-0005Py-Sv; Tue, 05 Dec 2023 11:21:32 +0000
Received: by outflank-mailman (input) for mailman id 647564;
 Tue, 05 Dec 2023 11:21:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUZ-0003dP-TU
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:31 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e40954d-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:27 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:19 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:17 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e40954d-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775288; x=1733311288;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=x84ckBkGQ2mHZOwuZkHd1Fjs3DcMdeHjBJ7YSwg1yco=;
  b=mG+79kt1PnclPWYi/wfM9HpXrxbRn+HR5TS1C0tWhfczgmGW2vgW+VDc
   F7C0AXLgP0expNv0iIaot4va8cemLadJibBONaFB2HgaYupCqJyJfpPuR
   gz0ax6VW/vbHa4e1f7tXJ/6NBDtNAVOSAETMZtrYHLussUq4HN8R0W5Br
   COy0BRHGZ0QIS16SQxDLkFtjv1gMjLsh1mcMKPSWktXP8GKR8fd7cLtPg
   caz1qgbAGeBqQ1XY/jLG5CbYhl2rvV7mARNESUWUJ685YyzyXXu/f6LTg
   X/FraMH4SYb+eFmo0L/FC2CT8YT0Sv9kz7lpBJimDFwEGTFf3pNWscgNb
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942395"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942395"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192919"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192919"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 07/35] x86/fred: Disable FRED support if CONFIG_X86_FRED is disabled
Date: Tue,  5 Dec 2023 02:49:56 -0800
Message-ID: <20231205105030.8698-8-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Add CONFIG_X86_FRED to <asm/disabled-features.h> to make
cpu_feature_enabled() work correctly with FRED.

Originally-by: Megha Dey <megha.dey@intel.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v10:
* FRED feature is defined in cpuid word 12, not 13 (Nikolay Borisov).
---
 arch/x86/include/asm/disabled-features.h       | 8 +++++++-
 tools/arch/x86/include/asm/disabled-features.h | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/disabled-features.h b/arch/x86/include/asm/disabled-features.h
index 702d93fdd10e..f40b29d3abad 100644
--- a/arch/x86/include/asm/disabled-features.h
+++ b/arch/x86/include/asm/disabled-features.h
@@ -117,6 +117,12 @@
 #define DISABLE_IBT	(1 << (X86_FEATURE_IBT & 31))
 #endif
 
+#ifdef CONFIG_X86_FRED
+# define DISABLE_FRED	0
+#else
+# define DISABLE_FRED	(1 << (X86_FEATURE_FRED & 31))
+#endif
+
 /*
  * Make sure to add features to the correct mask
  */
@@ -133,7 +139,7 @@
 #define DISABLED_MASK10	0
 #define DISABLED_MASK11	(DISABLE_RETPOLINE|DISABLE_RETHUNK|DISABLE_UNRET| \
 			 DISABLE_CALL_DEPTH_TRACKING|DISABLE_USER_SHSTK)
-#define DISABLED_MASK12	(DISABLE_LAM)
+#define DISABLED_MASK12	(DISABLE_FRED|DISABLE_LAM)
 #define DISABLED_MASK13	0
 #define DISABLED_MASK14	0
 #define DISABLED_MASK15	0
diff --git a/tools/arch/x86/include/asm/disabled-features.h b/tools/arch/x86/include/asm/disabled-features.h
index 702d93fdd10e..f40b29d3abad 100644
--- a/tools/arch/x86/include/asm/disabled-features.h
+++ b/tools/arch/x86/include/asm/disabled-features.h
@@ -117,6 +117,12 @@
 #define DISABLE_IBT	(1 << (X86_FEATURE_IBT & 31))
 #endif
 
+#ifdef CONFIG_X86_FRED
+# define DISABLE_FRED	0
+#else
+# define DISABLE_FRED	(1 << (X86_FEATURE_FRED & 31))
+#endif
+
 /*
  * Make sure to add features to the correct mask
  */
@@ -133,7 +139,7 @@
 #define DISABLED_MASK10	0
 #define DISABLED_MASK11	(DISABLE_RETPOLINE|DISABLE_RETHUNK|DISABLE_UNRET| \
 			 DISABLE_CALL_DEPTH_TRACKING|DISABLE_USER_SHSTK)
-#define DISABLED_MASK12	(DISABLE_LAM)
+#define DISABLED_MASK12	(DISABLE_FRED|DISABLE_LAM)
 #define DISABLED_MASK13	0
 #define DISABLED_MASK14	0
 #define DISABLED_MASK15	0
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647565.1010896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUc-0005vd-Nh; Tue, 05 Dec 2023 11:21:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647565.1010896; Tue, 05 Dec 2023 11: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 1rATUc-0005ub-Dy; Tue, 05 Dec 2023 11:21:34 +0000
Received: by outflank-mailman (input) for mailman id 647565;
 Tue, 05 Dec 2023 11:21:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUa-0005GD-D9
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:32 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ec67679-9360-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:21:29 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:21 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:19 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ec67679-9360-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775291; x=1733311291;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=3V1Fp4B8bT1xxvwEaEZ/zEmVdVDD76mAnFdI8sJmtEA=;
  b=WeQHtPDaeBDPfkfZTdxy5TrcpxSeWg+V8TgoIij6kiS5y84dV4Dih17o
   dLoKvZ8qEEiQHInDB+y8xtIo7DCZJuWZ8tylXLcB7KoyM0YfyVZpSdq3T
   y/B0v2pfGeVmrnBNMvo+sv8Z4q6RtySsweaNndzeM3UqHHy7VPFzUUYls
   91kS2y9KgpyJwRKj7sPI2GZgEjmR8/wsZVuQNGc2DZz+7Z9NZ1awaNFwc
   tfvXUDrUZ4/UAKccPhae2yVUOyV9HzWD0zLWiw84EWl9kLGX45jJ4DNqB
   S3i3SxpxKph3teHzPG+WURC3p3rZntGbEXInfWbhVsemPnEKvfne+iYZj
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942464"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942464"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192942"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192942"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 13/35] x86/ptrace: Cleanup the definition of the pt_regs structure
Date: Tue,  5 Dec 2023 02:50:02 -0800
Message-ID: <20231205105030.8698-14-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

struct pt_regs is hard to read because the member or section related
comments are not aligned with the members.

The 'cs' and 'ss' members of pt_regs are type of 'unsigned long' while
in reality they are only 16-bit wide. This works so far as the
remaining space is unused, but FRED will use the remaining bits for
other purposes.

To prepare for FRED:

  - Cleanup the formatting
  - Convert 'cs' and 'ss' to u16 and embed them into an union
    with a u64
  - Fixup the related printk() format strings

Originally-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Change since v12:
* Put comments ontop, not on the side (Borislav Petkov).
---
 arch/x86/entry/vsyscall/vsyscall_64.c |  2 +-
 arch/x86/include/asm/ptrace.h         | 48 +++++++++++++++++++--------
 arch/x86/kernel/process_64.c          |  2 +-
 3 files changed, 37 insertions(+), 15 deletions(-)

diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c
index e0ca8120aea8..a3c0df11d0e6 100644
--- a/arch/x86/entry/vsyscall/vsyscall_64.c
+++ b/arch/x86/entry/vsyscall/vsyscall_64.c
@@ -76,7 +76,7 @@ static void warn_bad_vsyscall(const char *level, struct pt_regs *regs,
 	if (!show_unhandled_signals)
 		return;
 
-	printk_ratelimited("%s%s[%d] %s ip:%lx cs:%lx sp:%lx ax:%lx si:%lx di:%lx\n",
+	printk_ratelimited("%s%s[%d] %s ip:%lx cs:%x sp:%lx ax:%lx si:%lx di:%lx\n",
 			   level, current->comm, task_pid_nr(current),
 			   message, regs->ip, regs->cs,
 			   regs->sp, regs->ax, regs->si, regs->di);
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index f4db78b09c8f..b268cd2a2d01 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -57,17 +57,19 @@ struct pt_regs {
 #else /* __i386__ */
 
 struct pt_regs {
-/*
- * C ABI says these regs are callee-preserved. They aren't saved on kernel entry
- * unless syscall needs a complete, fully filled "struct pt_regs".
- */
+	/*
+	 * C ABI says these regs are callee-preserved. They aren't saved on
+	 * kernel entry unless syscall needs a complete, fully filled
+	 * "struct pt_regs".
+	 */
 	unsigned long r15;
 	unsigned long r14;
 	unsigned long r13;
 	unsigned long r12;
 	unsigned long bp;
 	unsigned long bx;
-/* These regs are callee-clobbered. Always saved on kernel entry. */
+
+	/* These regs are callee-clobbered. Always saved on kernel entry. */
 	unsigned long r11;
 	unsigned long r10;
 	unsigned long r9;
@@ -77,18 +79,38 @@ struct pt_regs {
 	unsigned long dx;
 	unsigned long si;
 	unsigned long di;
-/*
- * On syscall entry, this is syscall#. On CPU exception, this is error code.
- * On hw interrupt, it's IRQ number:
- */
+
+	/*
+	 * orig_ax is used on entry for:
+	 * - the syscall number (syscall, sysenter, int80)
+	 * - error_code stored by the CPU on traps and exceptions
+	 * - the interrupt number for device interrupts
+	 */
 	unsigned long orig_ax;
-/* Return frame for iretq */
+
+	/* The IRETQ return frame starts here */
 	unsigned long ip;
-	unsigned long cs;
+
+	union {
+		/* The full 64-bit data slot containing CS */
+		u64		csx;
+		/* CS selector */
+		u16		cs;
+	};
+
 	unsigned long flags;
 	unsigned long sp;
-	unsigned long ss;
-/* top of stack page */
+
+	union {
+		/* The full 64-bit data slot containing SS */
+		u64		ssx;
+		/* SS selector */
+		u16		ss;
+	};
+
+	/*
+	 * Top of stack on IDT systems.
+	 */
 };
 
 #endif /* !__i386__ */
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 1553e19904e0..b924477c5ba8 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -117,7 +117,7 @@ void __show_regs(struct pt_regs *regs, enum show_regs_mode mode,
 
 	printk("%sFS:  %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n",
 	       log_lvl, fs, fsindex, gs, gsindex, shadowgs);
-	printk("%sCS:  %04lx DS: %04x ES: %04x CR0: %016lx\n",
+	printk("%sCS:  %04x DS: %04x ES: %04x CR0: %016lx\n",
 		log_lvl, regs->cs, ds, es, cr0);
 	printk("%sCR2: %016lx CR3: %016lx CR4: %016lx\n",
 		log_lvl, cr2, cr3, cr4);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647566.1010904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUd-00065v-Jz; Tue, 05 Dec 2023 11:21:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647566.1010904; Tue, 05 Dec 2023 11:21:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUd-00064Z-0U; Tue, 05 Dec 2023 11:21:35 +0000
Received: by outflank-mailman (input) for mailman id 647566;
 Tue, 05 Dec 2023 11:21:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUa-0003dP-Tq
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:32 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ec9678c-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:28 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:20 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:18 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ec9678c-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775289; x=1733311289;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=fBLiRRcKVyAMRaXpDMNfuo7m3LN99KBaGmZAQi3QyEY=;
  b=N7v8on1XPdEA0HLHVf4QwtVtLw++UxF1ptrhUHk4MSXxSxJCYBGUixTb
   gCjun8yIU88bq2JRTZGU9hUNEic2l3Pc3GoRHi3bdlpt+oaqTZ5xSdi1f
   IwWXP+/JZ74a3m5q0gRWfnpsrqmv5OrsP5XMOTcHsq3EqsNofiyK7Jcsm
   V1xJwN2SE1yZLmMHR7o+zO3oe4o3iKfH9YpkQ3viQHNbljdJGYVC4MM6j
   CuBbg1UbK0/W10dLn2IGKYacj2yK5mC4UBKW6ZTjRcMFXLibxTj5vgsYJ
   oKm1q6mEE1uPgi97z2ii6/ETAa5lpMSil8Fj906OrL6oIG62JLtPCWR+r
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942415"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942415"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192928"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192928"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 09/35] x86/opcode: Add ERET[US] instructions to the x86 opcode map
Date: Tue,  5 Dec 2023 02:49:58 -0800
Message-ID: <20231205105030.8698-10-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

ERETU returns from an event handler while making a transition to ring 3,
and ERETS returns from an event handler while staying in ring 0.

Add instruction opcodes used by ERET[US] to the x86 opcode map; opcode
numbers are per FRED spec v5.0.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/lib/x86-opcode-map.txt       | 2 +-
 tools/arch/x86/lib/x86-opcode-map.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt
index 1efe1d9bf5ce..12af572201a2 100644
--- a/arch/x86/lib/x86-opcode-map.txt
+++ b/arch/x86/lib/x86-opcode-map.txt
@@ -1052,7 +1052,7 @@ EndTable
 
 GrpTable: Grp7
 0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B) | WRMSRNS (110),(11B)
-1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
+1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B) | ERETU (F3),(010),(11B) | ERETS (F2),(010),(11B)
 2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
 3: LIDT Ms
 4: SMSW Mw/Rv
diff --git a/tools/arch/x86/lib/x86-opcode-map.txt b/tools/arch/x86/lib/x86-opcode-map.txt
index 1efe1d9bf5ce..12af572201a2 100644
--- a/tools/arch/x86/lib/x86-opcode-map.txt
+++ b/tools/arch/x86/lib/x86-opcode-map.txt
@@ -1052,7 +1052,7 @@ EndTable
 
 GrpTable: Grp7
 0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B) | WRMSRNS (110),(11B)
-1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
+1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B) | ERETU (F3),(010),(11B) | ERETS (F2),(010),(11B)
 2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
 3: LIDT Ms
 4: SMSW Mw/Rv
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647567.1010910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUe-00069b-1b; Tue, 05 Dec 2023 11:21:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647567.1010910; Tue, 05 Dec 2023 11:21:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUd-00068b-Ew; Tue, 05 Dec 2023 11:21:35 +0000
Received: by outflank-mailman (input) for mailman id 647567;
 Tue, 05 Dec 2023 11:21:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUb-0005GD-UA
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:33 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71355103-9360-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:21:32 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:23 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:21 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71355103-9360-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775294; x=1733311294;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=hmQpiQvapcbti3jANBGIdxV6K3xVoAfCMfULqYzqZvw=;
  b=hk5ZJYNoJsRuKrHHQ8eCDFxC4b3dK1UPmyRly4fUaHyGzrSGs5HOYDvm
   gdipRKRLOKesu5nP9ZtS0addaqYgy3aA05hmBfvZAu6PESdZXxyHWAsn8
   p2kk5H+/V6uq8eAvFyWPcdJkgT+19Vu19llJGTOQqzgS/34r1JIze5/Ex
   r/IjxbcDqRVhagplgrWE4K6kt9t6RdEDKpnHX2DvPMDuL7UxPbr40v8Sm
   Ijo6728RU/pd+UgxO66KRIP7+us9Ir+bGu3u3wJCPUeRR29/uZExqFbpv
   tB/gUj/Xu//JYVfavHPsnzHWbVkZWigknyBe38SdpXDsJgM+xrVKc4OVt
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942514"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942514"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192957"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192957"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 17/35] x86/fred: Update MSR_IA32_FRED_RSP0 during task switch
Date: Tue,  5 Dec 2023 02:50:06 -0800
Message-ID: <20231205105030.8698-18-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

MSR_IA32_FRED_RSP0 is used during ring 3 event delivery, and needs to
be updated to point to the top of next task stack during task switch.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/include/asm/switch_to.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
index f42dbf17f52b..c3bd0c0758c9 100644
--- a/arch/x86/include/asm/switch_to.h
+++ b/arch/x86/include/asm/switch_to.h
@@ -70,9 +70,13 @@ static inline void update_task_stack(struct task_struct *task)
 #ifdef CONFIG_X86_32
 	this_cpu_write(cpu_tss_rw.x86_tss.sp1, task->thread.sp0);
 #else
-	/* Xen PV enters the kernel on the thread stack. */
-	if (cpu_feature_enabled(X86_FEATURE_XENPV))
+	if (cpu_feature_enabled(X86_FEATURE_FRED)) {
+		/* WRMSRNS is a baseline feature for FRED. */
+		wrmsrns(MSR_IA32_FRED_RSP0, (unsigned long)task_stack_page(task) + THREAD_SIZE);
+	} else if (cpu_feature_enabled(X86_FEATURE_XENPV)) {
+		/* Xen PV enters the kernel on the thread stack. */
 		load_sp0(task_top_of_stack(task));
+	}
 #endif
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647568.1010921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUf-0006fz-Kb; Tue, 05 Dec 2023 11:21:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647568.1010921; Tue, 05 Dec 2023 11:21:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUf-0006do-8j; Tue, 05 Dec 2023 11:21:37 +0000
Received: by outflank-mailman (input) for mailman id 647568;
 Tue, 05 Dec 2023 11:21:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUd-0005GD-2c
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:35 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7254f875-9360-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:21:34 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:24 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:22 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7254f875-9360-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775295; x=1733311295;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=0MXczFK3xOQViMofjzuL8bjmZe4faEq58HCGtZP2g9c=;
  b=L/XFE+VJ8BD89duxqUzniC6bhdtnpdLq/KHj1Cgj/PWCpSQX/i1RTRWj
   HsuqXEMslKruTmUMRNMZj2TGIBzXwctH9BDQ0buEwXlRCwU4agmLFokOA
   pTe8iOr2ofPiJ8my7Edd1dQNQFW8P630miVUbhT7cM3vqqiOFDPrHt15V
   I14r0cRvDuhTu5IChQ91CYuIvaZWw2preKLkVPaz9hBAdm5rDkE8dYAQ4
   DFtwxC2OdliaWFBT0ihLI+Tr35C29ErSJA0AMY3JJTqFvxrYbfY+JJ193
   4PYEfkgnPSiSqnhaf3dWdCXQH6+qKqamkDPEWvU1xq9Lzg+YhGBSfkzO4
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942565"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942565"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192972"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192972"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 21/35] x86/fred: Make exc_page_fault() work for FRED
Date: Tue,  5 Dec 2023 02:50:10 -0800
Message-ID: <20231205105030.8698-22-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

On a FRED system, the faulting address (CR2) is passed on the stack,
to avoid the problem of transient state.  Thus the page fault address
is read from the FRED stack frame instead of CR2 when FRED is enabled.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Change since v12:
* No "we" in a commit message, use passive voice (Borislav Petkov).
---
 arch/x86/mm/fault.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index ab778eac1952..7675bc067153 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -34,6 +34,7 @@
 #include <asm/kvm_para.h>		/* kvm_handle_async_pf		*/
 #include <asm/vdso.h>			/* fixup_vdso_exception()	*/
 #include <asm/irq_stack.h>
+#include <asm/fred.h>
 
 #define CREATE_TRACE_POINTS
 #include <asm/trace/exceptions.h>
@@ -1516,8 +1517,10 @@ handle_page_fault(struct pt_regs *regs, unsigned long error_code,
 
 DEFINE_IDTENTRY_RAW_ERRORCODE(exc_page_fault)
 {
-	unsigned long address = read_cr2();
 	irqentry_state_t state;
+	unsigned long address;
+
+	address = cpu_feature_enabled(X86_FEATURE_FRED) ? fred_event_data(regs) : read_cr2();
 
 	prefetchw(&current->mm->mmap_lock);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647569.1010930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUh-0006wz-5x; Tue, 05 Dec 2023 11:21:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647569.1010930; Tue, 05 Dec 2023 11:21:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUg-0006tf-II; Tue, 05 Dec 2023 11:21:38 +0000
Received: by outflank-mailman (input) for mailman id 647569;
 Tue, 05 Dec 2023 11:21:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUe-0005GD-Bx
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:36 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 730f3b57-9360-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:21:35 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:25 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:23 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 730f3b57-9360-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775296; x=1733311296;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=vHkfUOkHLHmL9MW/AMzgDgLZBnOiSQn6Z3TVJI+bGO8=;
  b=DOMTJ95gOqfihqEw1RceMgpGlsX/PENWbRZvu/KRrmGTWUZJZpM7g9nG
   6xbKsZzSx2azj2oHrclAuZkA5GWR0U9cS8TdHOAGDKArhHX6SsmppxAnl
   J4kO1qZBud54rmPMJOqJR0Sl7ebTnGinuNgGKMD6J6sOBzgYTK/E6++By
   ikqgQLNlv8MmgERLjTO2arLKenRBxNOJ2JsYFHb5wZ/40TSAfC9kxKtYV
   wsJItG+w0nrPPipQUAx0OZ/4DbZxl2IsRGYOhObXQn8x+DdpXWQjtG4FX
   hjo+BGI/xERlnVcmzquxU0r6a2lZ1nMy0+1WZvBWpIOlyobcwznETxWhZ
   Q==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942595"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942595"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192984"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192984"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 24/35] x86/fred: Add a NMI entry stub for FRED
Date: Tue,  5 Dec 2023 02:50:13 -0800
Message-ID: <20231205105030.8698-25-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

On a FRED system, NMIs nest both with themselves and faults, transient
information is saved into the stack frame, and NMI unblocking only
happens when the stack frame indicates that so should happen.

Thus, the NMI entry stub for FRED is really quite small...

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/kernel/nmi.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
index 17e955ab69fe..56350d839e44 100644
--- a/arch/x86/kernel/nmi.c
+++ b/arch/x86/kernel/nmi.c
@@ -35,6 +35,7 @@
 #include <asm/nospec-branch.h>
 #include <asm/microcode.h>
 #include <asm/sev.h>
+#include <asm/fred.h>
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/nmi.h>
@@ -651,6 +652,33 @@ void nmi_backtrace_stall_check(const struct cpumask *btp)
 
 #endif
 
+#ifdef CONFIG_X86_FRED
+/*
+ * With FRED, CR2/DR6 is pushed to #PF/#DB stack frame during FRED
+ * event delivery, i.e., there is no problem of transient states.
+ * And NMI unblocking only happens when the stack frame indicates
+ * that so should happen.
+ *
+ * Thus, the NMI entry stub for FRED is really straightforward and
+ * as simple as most exception handlers. As such, #DB is allowed
+ * during NMI handling.
+ */
+DEFINE_FREDENTRY_NMI(exc_nmi)
+{
+	irqentry_state_t irq_state;
+
+	if (IS_ENABLED(CONFIG_SMP) && arch_cpu_is_offline(smp_processor_id()))
+		return;
+
+	irq_state = irqentry_nmi_enter(regs);
+
+	inc_irq_stat(__nmi_count);
+	default_do_nmi(regs);
+
+	irqentry_nmi_exit(regs, irq_state);
+}
+#endif
+
 void stop_nmi(void)
 {
 	ignore_nmis++;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647570.1010940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUj-0007Oi-5B; Tue, 05 Dec 2023 11:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647570.1010940; Tue, 05 Dec 2023 11:21:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUi-0007ME-Ns; Tue, 05 Dec 2023 11:21:40 +0000
Received: by outflank-mailman (input) for mailman id 647570;
 Tue, 05 Dec 2023 11:21:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUf-0005GD-MY
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:37 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 73c888cc-9360-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:21:36 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:26 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:25 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73c888cc-9360-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775297; x=1733311297;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=c4v54mG+yNciVv+S7CXnyMniWVPMoCmWvn//znfwVvI=;
  b=Z84pk1Fc9psctUckgygqQYKX7gQ5/TAG+UwODCUcJGQRKJw+AngR8amL
   qDJ6xKzDI4WyRd392+VyMrwgKILGhLtn7QwD1HG4gs6ID9D9ZXJObYw5o
   9CX/FZEKGyodIZguu/0jDsxk3Imy95B2VFRb3hIj2nLGBy3gT9fLybd3H
   lGoQuHKKYk7LCKH4HwOeMJyiEEHxL2ocIkX4XGUUrkuOxQpB5iL46JepN
   qsK0rAcMcV54alUrVisM6s6nWcmCIINECvRolAHBx+EY6WHFmzVtCChJG
   YYdW+h2wqT8GJ/Rk+y5Ljxy7jxRuMWUFmKa3cxpaZwIJBiv3NPhobYZPN
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942658"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942658"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018193002"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018193002"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 29/35] x86/fred: Fixup fault on ERETU by jumping to fred_entrypoint_user
Date: Tue,  5 Dec 2023 02:50:18 -0800
Message-ID: <20231205105030.8698-30-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

If the stack frame contains an invalid user context (e.g. due to invalid SS,
a non-canonical RIP, etc.) the ERETU instruction will trap (#SS or #GP).

>From a Linux point of view, this really should be considered a user space
failure, so use the standard fault fixup mechanism to intercept the fault,
fix up the exception frame, and redirect execution to fred_entrypoint_user.
The end result is that it appears just as if the hardware had taken the
exception immediately after completing the transition to user space.

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v8:
* Reflect the FRED spec 5.0 change that ERETS and ERETU add 8 to %rsp
  before popping the return context from the stack.

Changes since v6:
* Add a comment to explain why it is safe to write to the previous FRED stack
  frame. (Lai Jiangshan).

Changes since v5:
* Move the NMI bit from an invalid stack frame, which caused ERETU to fault,
  to the fault handler's stack frame, thus to unblock NMI ASAP if NMI is blocked
  (Lai Jiangshan).
---
 arch/x86/entry/entry_64_fred.S             |  5 +-
 arch/x86/include/asm/extable_fixup_types.h |  4 +-
 arch/x86/mm/extable.c                      | 79 ++++++++++++++++++++++
 3 files changed, 86 insertions(+), 2 deletions(-)

diff --git a/arch/x86/entry/entry_64_fred.S b/arch/x86/entry/entry_64_fred.S
index 5781c3411b44..d1c2fc4af8ae 100644
--- a/arch/x86/entry/entry_64_fred.S
+++ b/arch/x86/entry/entry_64_fred.S
@@ -3,6 +3,7 @@
  * The actual FRED entry points.
  */
 
+#include <asm/asm.h>
 #include <asm/fred.h>
 
 #include "calling.h"
@@ -34,7 +35,9 @@ SYM_CODE_START_NOALIGN(asm_fred_entrypoint_user)
 	call	fred_entry_from_user
 SYM_INNER_LABEL(asm_fred_exit_user, SYM_L_GLOBAL)
 	FRED_EXIT
-	ERETU
+1:	ERETU
+
+	_ASM_EXTABLE_TYPE(1b, asm_fred_entrypoint_user, EX_TYPE_ERETU)
 SYM_CODE_END(asm_fred_entrypoint_user)
 
 .fill asm_fred_entrypoint_kernel - ., 1, 0xcc
diff --git a/arch/x86/include/asm/extable_fixup_types.h b/arch/x86/include/asm/extable_fixup_types.h
index 991e31cfde94..1585c798a02f 100644
--- a/arch/x86/include/asm/extable_fixup_types.h
+++ b/arch/x86/include/asm/extable_fixup_types.h
@@ -64,6 +64,8 @@
 #define	EX_TYPE_UCOPY_LEN4		(EX_TYPE_UCOPY_LEN | EX_DATA_IMM(4))
 #define	EX_TYPE_UCOPY_LEN8		(EX_TYPE_UCOPY_LEN | EX_DATA_IMM(8))
 
-#define EX_TYPE_ZEROPAD			20 /* longword load with zeropad on fault */
+#define	EX_TYPE_ZEROPAD			20 /* longword load with zeropad on fault */
+
+#define	EX_TYPE_ERETU			21
 
 #endif
diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
index 271dcb2deabc..fc40a4e12f3a 100644
--- a/arch/x86/mm/extable.c
+++ b/arch/x86/mm/extable.c
@@ -6,6 +6,7 @@
 #include <xen/xen.h>
 
 #include <asm/fpu/api.h>
+#include <asm/fred.h>
 #include <asm/sev.h>
 #include <asm/traps.h>
 #include <asm/kdebug.h>
@@ -223,6 +224,80 @@ static bool ex_handler_ucopy_len(const struct exception_table_entry *fixup,
 	return ex_handler_uaccess(fixup, regs, trapnr, fault_address);
 }
 
+#ifdef CONFIG_X86_FRED
+static bool ex_handler_eretu(const struct exception_table_entry *fixup,
+			     struct pt_regs *regs, unsigned long error_code)
+{
+	struct pt_regs *uregs = (struct pt_regs *)
+		(regs->sp - offsetof(struct pt_regs, orig_ax));
+	unsigned short ss = uregs->ss;
+	unsigned short cs = uregs->cs;
+
+	/*
+	 * Move the NMI bit from the invalid stack frame, which caused ERETU
+	 * to fault, to the fault handler's stack frame, thus to unblock NMI
+	 * with the fault handler's ERETS instruction ASAP if NMI is blocked.
+	 */
+	regs->fred_ss.nmi = uregs->fred_ss.nmi;
+
+	/*
+	 * Sync event information to uregs, i.e., the ERETU return frame, but
+	 * is it safe to write to the ERETU return frame which is just above
+	 * current event stack frame?
+	 *
+	 * The RSP used by FRED to push a stack frame is not the value in %rsp,
+	 * it is calculated from %rsp with the following 2 steps:
+	 * 1) RSP = %rsp - (IA32_FRED_CONFIG & 0x1c0)	// Reserve N*64 bytes
+	 * 2) RSP = RSP & ~0x3f		// Align to a 64-byte cache line
+	 * when an event delivery doesn't trigger a stack level change.
+	 *
+	 * Here is an example with N*64 (N=1) bytes reserved:
+	 *
+	 *  64-byte cache line ==>  ______________
+	 *                         |___Reserved___|
+	 *                         |__Event_data__|
+	 *                         |_____SS_______|
+	 *                         |_____RSP______|
+	 *                         |_____FLAGS____|
+	 *                         |_____CS_______|
+	 *                         |_____IP_______|
+	 *  64-byte cache line ==> |__Error_code__| <== ERETU return frame
+	 *                         |______________|
+	 *                         |______________|
+	 *                         |______________|
+	 *                         |______________|
+	 *                         |______________|
+	 *                         |______________|
+	 *                         |______________|
+	 *  64-byte cache line ==> |______________| <== RSP after step 1) and 2)
+	 *                         |___Reserved___|
+	 *                         |__Event_data__|
+	 *                         |_____SS_______|
+	 *                         |_____RSP______|
+	 *                         |_____FLAGS____|
+	 *                         |_____CS_______|
+	 *                         |_____IP_______|
+	 *  64-byte cache line ==> |__Error_code__| <== ERETS return frame
+	 *
+	 * Thus a new FRED stack frame will always be pushed below a previous
+	 * FRED stack frame ((N*64) bytes may be reserved between), and it is
+	 * safe to write to a previous FRED stack frame as they never overlap.
+	 */
+	fred_info(uregs)->edata = fred_event_data(regs);
+	uregs->ssx = regs->ssx;
+	uregs->fred_ss.ss = ss;
+	/* The NMI bit was moved away above */
+	uregs->fred_ss.nmi = 0;
+	uregs->csx = regs->csx;
+	uregs->fred_cs.sl = 0;
+	uregs->fred_cs.wfe = 0;
+	uregs->cs = cs;
+	uregs->orig_ax = error_code;
+
+	return ex_handler_default(fixup, regs);
+}
+#endif
+
 int ex_get_fixup_type(unsigned long ip)
 {
 	const struct exception_table_entry *e = search_exception_tables(ip);
@@ -300,6 +375,10 @@ int fixup_exception(struct pt_regs *regs, int trapnr, unsigned long error_code,
 		return ex_handler_ucopy_len(e, regs, trapnr, fault_addr, reg, imm);
 	case EX_TYPE_ZEROPAD:
 		return ex_handler_zeropad(e, regs, fault_addr);
+#ifdef CONFIG_X86_FRED
+	case EX_TYPE_ERETU:
+		return ex_handler_eretu(e, regs, error_code);
+#endif
 	}
 	BUG();
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647571.1010948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUk-0007ZN-9f; Tue, 05 Dec 2023 11:21:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647571.1010948; Tue, 05 Dec 2023 11:21:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUj-0007Wk-ME; Tue, 05 Dec 2023 11:21:41 +0000
Received: by outflank-mailman (input) for mailman id 647571;
 Tue, 05 Dec 2023 11:21:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUg-0005GD-SD
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:38 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7492f17a-9360-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:21:38 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:26 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:25 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7492f17a-9360-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775299; x=1733311299;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=uIZltVBi8wI2fdlt/Uk1Bni3bjv6/HHLxi0uq5CIvWc=;
  b=EeipshQKdwjmkmHjh3C2V0+5DRsy4dHyNDiEidGjgG1rCK6I99LNKDZN
   jxep4y3vibgN+y/QDHG2s3l6S6qf4hCNQzm2JLcJJz8Q3E244wq9K+A1k
   n8zokUfVI2tkkr1+nJQ49o7cU/xf26UL9au4KO2OFA9Lf8G3U4gZumwow
   Vcnp5/jmjpDBgMUaAZ+IMcWgFe7PMhQ4MbdDGxc5VItYMyqS5GqFSnE8T
   7roX1Vv7HczlIcZKMZoL9MWCTTSyo0DqbinT8Yzwaws89i1jJSAq0OIlV
   QjC6E2/6w12hdTRz78o+9k3b2A4N7jsjLh9XmEcv2Qj9r2AP4CuhjU9xX
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942668"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942668"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018193005"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018193005"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 30/35] x86/entry/calling: Allow PUSH_AND_CLEAR_REGS being used beyond actual entry code
Date: Tue,  5 Dec 2023 02:50:19 -0800
Message-ID: <20231205105030.8698-31-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Peter Zijlstra (Intel)" <peterz@infradead.org>

PUSH_AND_CLEAR_REGS could be used besides actual entry code; in that case
%rbp shouldn't be cleared (otherwise the frame pointer is destroyed) and
UNWIND_HINT shouldn't be added.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/entry/calling.h | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/arch/x86/entry/calling.h b/arch/x86/entry/calling.h
index e59d3073e7cf..a023d9a97cd2 100644
--- a/arch/x86/entry/calling.h
+++ b/arch/x86/entry/calling.h
@@ -65,7 +65,7 @@ For 32-bit we have the following conventions - kernel is built with
  * for assembly code:
  */
 
-.macro PUSH_REGS rdx=%rdx rcx=%rcx rax=%rax save_ret=0
+.macro PUSH_REGS rdx=%rdx rcx=%rcx rax=%rax save_ret=0 unwind_hint=1
 	.if \save_ret
 	pushq	%rsi		/* pt_regs->si */
 	movq	8(%rsp), %rsi	/* temporarily store the return address in %rsi */
@@ -87,14 +87,17 @@ For 32-bit we have the following conventions - kernel is built with
 	pushq	%r13		/* pt_regs->r13 */
 	pushq	%r14		/* pt_regs->r14 */
 	pushq	%r15		/* pt_regs->r15 */
+
+	.if \unwind_hint
 	UNWIND_HINT_REGS
+	.endif
 
 	.if \save_ret
 	pushq	%rsi		/* return address on top of stack */
 	.endif
 .endm
 
-.macro CLEAR_REGS
+.macro CLEAR_REGS clear_bp=1
 	/*
 	 * Sanitize registers of values that a speculation attack might
 	 * otherwise want to exploit. The lower registers are likely clobbered
@@ -109,7 +112,9 @@ For 32-bit we have the following conventions - kernel is built with
 	xorl	%r10d, %r10d	/* nospec r10 */
 	xorl	%r11d, %r11d	/* nospec r11 */
 	xorl	%ebx,  %ebx	/* nospec rbx */
+	.if \clear_bp
 	xorl	%ebp,  %ebp	/* nospec rbp */
+	.endif
 	xorl	%r12d, %r12d	/* nospec r12 */
 	xorl	%r13d, %r13d	/* nospec r13 */
 	xorl	%r14d, %r14d	/* nospec r14 */
@@ -117,9 +122,9 @@ For 32-bit we have the following conventions - kernel is built with
 
 .endm
 
-.macro PUSH_AND_CLEAR_REGS rdx=%rdx rcx=%rcx rax=%rax save_ret=0
-	PUSH_REGS rdx=\rdx, rcx=\rcx, rax=\rax, save_ret=\save_ret
-	CLEAR_REGS
+.macro PUSH_AND_CLEAR_REGS rdx=%rdx rcx=%rcx rax=%rax save_ret=0 clear_bp=1 unwind_hint=1
+	PUSH_REGS rdx=\rdx, rcx=\rcx, rax=\rax, save_ret=\save_ret unwind_hint=\unwind_hint
+	CLEAR_REGS clear_bp=\clear_bp
 .endm
 
 .macro POP_REGS pop_rdi=1
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:21:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:21:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647572.1010955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUl-0007l6-6S; Tue, 05 Dec 2023 11:21:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647572.1010955; Tue, 05 Dec 2023 11:21:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATUk-0007gc-FN; Tue, 05 Dec 2023 11:21:42 +0000
Received: by outflank-mailman (input) for mailman id 647572;
 Tue, 05 Dec 2023 11:21:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUi-0005GD-4l
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:40 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 754a6a2c-9360-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:21:39 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:28 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:26 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 754a6a2c-9360-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775300; x=1733311300;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=GKdJrpjNAAfGimUxYAq3wTN/xrTwaQ33LU4i4+qObUE=;
  b=gdDgwlDBCU8LJ6neaiShDVSKjoFhzx+s8aTe18lgt9BllNVZg9/w+z78
   SUZ4k9j4f4StSnPpKdamcMNHyTnvMo7L3jK+wgJ9ypMy3Bdt1iCwINj4o
   Yvf03eOQTUnrjwyhGvTcJX5GB7QFN6k9uy8P539P6u2Vm5ge32mKvChOT
   sZdM9mAc/MeoOmBLHWjYnqSbPTtENs7i4Y3bYK98Mb4pp0Ocp9/FOxO+L
   Gn/2Gdxm8PnWsg17P40I67brwtqtHbOFFBkukxh/YSTDv4NYme8Xm+B9s
   2TqN3RchjYdg4CvpOF8y2WP27CvaImmDhacoRsj5bQSMEZMGWsYVVQDk1
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942730"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942730"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018193022"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018193022"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 35/35] x86/fred: Invoke FRED initialization code to enable FRED
Date: Tue,  5 Dec 2023 02:50:24 -0800
Message-ID: <20231205105030.8698-36-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Let cpu_init_exception_handling() call cpu_init_fred_exceptions() to
initialize FRED. However if FRED is unavailable or disabled, it falls
back to set up TSS IST and initialize IDT.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Co-developed-by: Xin Li <xin3.li@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v10:
* No need to invalidate SYSCALL and SYSENTER MSRs (Thomas Gleixner).

Changes since v8:
* Move this patch after all required changes are in place (Thomas
  Gleixner).
---
 arch/x86/kernel/cpu/common.c | 22 +++++++++++++++++-----
 arch/x86/kernel/irqinit.c    |  7 ++++++-
 arch/x86/kernel/traps.c      |  5 ++++-
 3 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 9a075792e275..91d2f6018c48 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -61,6 +61,7 @@
 #include <asm/microcode.h>
 #include <asm/intel-family.h>
 #include <asm/cpu_device_id.h>
+#include <asm/fred.h>
 #include <asm/uv/uv.h>
 #include <asm/ia32.h>
 #include <asm/set_memory.h>
@@ -2117,7 +2118,15 @@ void syscall_init(void)
 	/* The default user and kernel segments */
 	wrmsr(MSR_STAR, 0, (__USER32_CS << 16) | __KERNEL_CS);
 
-	idt_syscall_init();
+	/*
+	 * Except the IA32_STAR MSR, there is NO need to setup SYSCALL and
+	 * SYSENTER MSRs for FRED, because FRED uses the ring 3 FRED
+	 * entrypoint for SYSCALL and SYSENTER, and ERETU is the only legit
+	 * instruction to return to ring 3 (both sysexit and sysret cause
+	 * #UD when FRED is enabled).
+	 */
+	if (!cpu_feature_enabled(X86_FEATURE_FRED))
+		idt_syscall_init();
 }
 
 #else	/* CONFIG_X86_64 */
@@ -2223,8 +2232,9 @@ void cpu_init_exception_handling(void)
 	/* paranoid_entry() gets the CPU number from the GDT */
 	setup_getcpu(cpu);
 
-	/* IST vectors need TSS to be set up. */
-	tss_setup_ist(tss);
+	/* For IDT mode, IST vectors need to be set in TSS. */
+	if (!cpu_feature_enabled(X86_FEATURE_FRED))
+		tss_setup_ist(tss);
 	tss_setup_io_bitmap(tss);
 	set_tss_desc(cpu, &get_cpu_entry_area(cpu)->tss.x86_tss);
 
@@ -2233,8 +2243,10 @@ void cpu_init_exception_handling(void)
 	/* GHCB needs to be setup to handle #VC. */
 	setup_ghcb();
 
-	/* Finally load the IDT */
-	load_current_idt();
+	if (cpu_feature_enabled(X86_FEATURE_FRED))
+		cpu_init_fred_exceptions();
+	else
+		load_current_idt();
 }
 
 /*
diff --git a/arch/x86/kernel/irqinit.c b/arch/x86/kernel/irqinit.c
index c683666876f1..f79c5edc0b89 100644
--- a/arch/x86/kernel/irqinit.c
+++ b/arch/x86/kernel/irqinit.c
@@ -28,6 +28,7 @@
 #include <asm/setup.h>
 #include <asm/i8259.h>
 #include <asm/traps.h>
+#include <asm/fred.h>
 #include <asm/prom.h>
 
 /*
@@ -96,7 +97,11 @@ void __init native_init_IRQ(void)
 	/* Execute any quirks before the call gates are initialised: */
 	x86_init.irqs.pre_vector_init();
 
-	idt_setup_apic_and_irq_gates();
+	if (cpu_feature_enabled(X86_FEATURE_FRED))
+		fred_complete_exception_setup();
+	else
+		idt_setup_apic_and_irq_gates();
+
 	lapic_assign_system_vectors();
 
 	if (!acpi_ioapic && !of_ioapic && nr_legacy_irqs()) {
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index 848c85208a57..0ee78a30e14a 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -1411,7 +1411,10 @@ void __init trap_init(void)
 
 	/* Initialize TSS before setting up traps so ISTs work */
 	cpu_init_exception_handling();
+
 	/* Setup traps as cpu_init() might #GP */
-	idt_setup_traps();
+	if (!cpu_feature_enabled(X86_FEATURE_FRED))
+		idt_setup_traps();
+
 	cpu_init();
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:25:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:25:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647595.1010985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATYh-0004lr-K6; Tue, 05 Dec 2023 11:25:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647595.1010985; Tue, 05 Dec 2023 11:25:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATYh-0004kx-Gj; Tue, 05 Dec 2023 11:25:47 +0000
Received: by outflank-mailman (input) for mailman id 647595;
 Tue, 05 Dec 2023 11:25:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUj-0003dP-Ud
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:41 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71f1981c-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:33 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:23 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:21 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71f1981c-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775294; x=1733311294;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=hPsnAnmRCEio5pl6T3lxKlJogXHr45sRU/QYYYLaUzw=;
  b=LpQLmyXaI9qKZgZCwahESvpBGqmTx8iCH9ISzWRfLQe7U5dIrWVwtBZR
   UDrFSxhpL27uTdadYLlbB631iU79tsTKTN3XHnhxKUOHjvx58nSKJZu5P
   BJ6pXqkefkMD1VderwYsNm8xiGoBhiwqbR/4Yc9A2QJjolLD3XMKWFtYd
   uV2jjMQLWqWycEzA1Brw9i/fjufZtIrbKbz8YU875Irh1LzJstdkNWQIj
   vbTa0NNXyCp4bJGLJfhcOCxgLhTMfQvsxQaacbhATT9RUFmRL84SXRp5F
   y4u0dPigozoLtZtSACzhmh7lorOXVaFhJitgfi2Mm47teyZDd1ac45OJy
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942537"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942537"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192965"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192965"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 19/35] x86/fred: No ESPFIX needed when FRED is enabled
Date: Tue,  5 Dec 2023 02:50:08 -0800
Message-ID: <20231205105030.8698-20-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Because FRED always restores the full value of %rsp, ESPFIX is
no longer needed when it's enabled.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/kernel/espfix_64.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/x86/kernel/espfix_64.c b/arch/x86/kernel/espfix_64.c
index 16f9814c9be0..6726e0473d0b 100644
--- a/arch/x86/kernel/espfix_64.c
+++ b/arch/x86/kernel/espfix_64.c
@@ -106,6 +106,10 @@ void __init init_espfix_bsp(void)
 	pgd_t *pgd;
 	p4d_t *p4d;
 
+	/* FRED systems always restore the full value of %rsp */
+	if (cpu_feature_enabled(X86_FEATURE_FRED))
+		return;
+
 	/* Install the espfix pud into the kernel page directory */
 	pgd = &init_top_pgt[pgd_index(ESPFIX_BASE_ADDR)];
 	p4d = p4d_alloc(&init_mm, pgd, ESPFIX_BASE_ADDR);
@@ -129,6 +133,10 @@ void init_espfix_ap(int cpu)
 	void *stack_page;
 	pteval_t ptemask;
 
+	/* FRED systems always restore the full value of %rsp */
+	if (cpu_feature_enabled(X86_FEATURE_FRED))
+		return;
+
 	/* We only have to do this once... */
 	if (likely(per_cpu(espfix_stack, cpu)))
 		return;		/* Already initialized */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:25:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:25:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647594.1010980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATYh-0004iY-Cr; Tue, 05 Dec 2023 11:25:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647594.1010980; Tue, 05 Dec 2023 11:25:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATYh-0004iR-9O; Tue, 05 Dec 2023 11:25:47 +0000
Received: by outflank-mailman (input) for mailman id 647594;
 Tue, 05 Dec 2023 11:25:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUp-0003dP-V6
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:47 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7383e649-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:36 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:25 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:24 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7383e649-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775297; x=1733311297;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=P4BKwwxZjNA35zXhN23eflIGEejxxbnos06jsBzXQIU=;
  b=JBvzSrtfdcf7kbEjL6E5eq2ValttEHj4RuRfX6q7NYVqx06YibzOUoX8
   z3naSDu+3v9K6dmXiwqbRp+CCzHt7EuqBt8okUwH3c5GxaiHuA9t9IFi8
   hhm8HrZZd68Z4q+drqWhh3+rX461i0Ri2UQXF10b3YASw16wu4IfeGAR0
   zXvhlZMMh7DDgOf7vaz9ZnLQQ4BIA3z3yJmpEJtU0X/IMM6NPd/JQaCtb
   bH31XrNsmGjL1XrhdkH/oDCR8AgZVnPUzb/NXqcFdrs3gK0rDsu7fXzwJ
   5PVXg9VnD45uytzPtBgah1+VP/QGtiEhuzJ0XFAobF9UB+Fgmy+1rR3ik
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942632"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942632"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192995"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192995"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 27/35] x86/traps: Add sysvec_install() to install a system interrupt handler
Date: Tue,  5 Dec 2023 02:50:16 -0800
Message-ID: <20231205105030.8698-28-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add sysvec_install() to install a system interrupt handler into the IDT
or the FRED system interrupt handler table.

Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v8:
* Introduce a macro sysvec_install() to derive the asm handler name from
  a C handler, which simplifies the code and avoids an ugly typecast
  (Thomas Gleixner).
---
 arch/x86/entry/entry_fred.c      | 14 ++++++++++++++
 arch/x86/include/asm/desc.h      |  2 --
 arch/x86/include/asm/idtentry.h  | 15 +++++++++++++++
 arch/x86/kernel/cpu/acrn.c       |  4 ++--
 arch/x86/kernel/cpu/mshyperv.c   | 15 +++++++--------
 arch/x86/kernel/idt.c            |  4 ++--
 arch/x86/kernel/kvm.c            |  2 +-
 drivers/xen/events/events_base.c |  2 +-
 8 files changed, 42 insertions(+), 16 deletions(-)

diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c
index 215883e90f94..e80e3efbc057 100644
--- a/arch/x86/entry/entry_fred.c
+++ b/arch/x86/entry/entry_fred.c
@@ -126,6 +126,20 @@ static idtentry_t sysvec_table[NR_SYSTEM_VECTORS] __ro_after_init = {
 	SYSVEC(POSTED_INTR_NESTED_VECTOR,	kvm_posted_intr_nested_ipi),
 };
 
+static bool fred_setup_done __initdata;
+
+void __init fred_install_sysvec(unsigned int sysvec, idtentry_t handler)
+{
+	if (WARN_ON_ONCE(sysvec < FIRST_SYSTEM_VECTOR))
+		return;
+
+	if (WARN_ON_ONCE(fred_setup_done))
+		return;
+
+	if (!WARN_ON_ONCE(sysvec_table[sysvec - FIRST_SYSTEM_VECTOR]))
+		 sysvec_table[sysvec - FIRST_SYSTEM_VECTOR] = handler;
+}
+
 static noinstr void fred_extint(struct pt_regs *regs)
 {
 	unsigned int vector = regs->fred_ss.vector;
diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
index ab97b22ac04a..ec95fe44fa3a 100644
--- a/arch/x86/include/asm/desc.h
+++ b/arch/x86/include/asm/desc.h
@@ -402,8 +402,6 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit)
 	desc->limit1 = (limit >> 16) & 0xf;
 }
 
-void alloc_intr_gate(unsigned int n, const void *addr);
-
 static inline void init_idt_data(struct idt_data *data, unsigned int n,
 				 const void *addr)
 {
diff --git a/arch/x86/include/asm/idtentry.h b/arch/x86/include/asm/idtentry.h
index 4f26ee9b8b74..650c98160152 100644
--- a/arch/x86/include/asm/idtentry.h
+++ b/arch/x86/include/asm/idtentry.h
@@ -459,6 +459,21 @@ __visible noinstr void func(struct pt_regs *regs,			\
 #define DEFINE_FREDENTRY_DEBUG		DEFINE_FREDENTRY_RAW
 #endif
 
+void idt_install_sysvec(unsigned int n, const void *function);
+
+#ifdef CONFIG_X86_FRED
+void fred_install_sysvec(unsigned int vector, const idtentry_t function);
+#else
+static inline void fred_install_sysvec(unsigned int vector, const idtentry_t function) { }
+#endif
+
+#define sysvec_install(vector, function) {				\
+	if (cpu_feature_enabled(X86_FEATURE_FRED))			\
+		fred_install_sysvec(vector, function);			\
+	else								\
+		idt_install_sysvec(vector, asm_##function);		\
+}
+
 #else /* !__ASSEMBLY__ */
 
 /*
diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
index bfeb18fad63f..2c5b51aad91a 100644
--- a/arch/x86/kernel/cpu/acrn.c
+++ b/arch/x86/kernel/cpu/acrn.c
@@ -26,8 +26,8 @@ static u32 __init acrn_detect(void)
 
 static void __init acrn_init_platform(void)
 {
-	/* Setup the IDT for ACRN hypervisor callback */
-	alloc_intr_gate(HYPERVISOR_CALLBACK_VECTOR, asm_sysvec_acrn_hv_callback);
+	/* Install system interrupt handler for ACRN hypervisor callback */
+	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_acrn_hv_callback);
 
 	x86_platform.calibrate_tsc = acrn_get_tsc_khz;
 	x86_platform.calibrate_cpu = acrn_get_tsc_khz;
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index 01fa06dd06b6..45e0e70e238c 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -539,19 +539,18 @@ static void __init ms_hyperv_init_platform(void)
 	 */
 	x86_platform.apic_post_init = hyperv_init;
 	hyperv_setup_mmu_ops();
-	/* Setup the IDT for hypervisor callback */
-	alloc_intr_gate(HYPERVISOR_CALLBACK_VECTOR, asm_sysvec_hyperv_callback);
 
-	/* Setup the IDT for reenlightenment notifications */
+	/* Install system interrupt handler for hypervisor callback */
+	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_hyperv_callback);
+
+	/* Install system interrupt handler for reenlightenment notifications */
 	if (ms_hyperv.features & HV_ACCESS_REENLIGHTENMENT) {
-		alloc_intr_gate(HYPERV_REENLIGHTENMENT_VECTOR,
-				asm_sysvec_hyperv_reenlightenment);
+		sysvec_install(HYPERV_REENLIGHTENMENT_VECTOR, sysvec_hyperv_reenlightenment);
 	}
 
-	/* Setup the IDT for stimer0 */
+	/* Install system interrupt handler for stimer0 */
 	if (ms_hyperv.misc_features & HV_STIMER_DIRECT_MODE_AVAILABLE) {
-		alloc_intr_gate(HYPERV_STIMER0_VECTOR,
-				asm_sysvec_hyperv_stimer0);
+		sysvec_install(HYPERV_STIMER0_VECTOR, sysvec_hyperv_stimer0);
 	}
 
 # ifdef CONFIG_SMP
diff --git a/arch/x86/kernel/idt.c b/arch/x86/kernel/idt.c
index 8857abc706e4..2b734927eec1 100644
--- a/arch/x86/kernel/idt.c
+++ b/arch/x86/kernel/idt.c
@@ -337,7 +337,7 @@ void idt_invalidate(void)
 	load_idt(&idt);
 }
 
-void __init alloc_intr_gate(unsigned int n, const void *addr)
+void __init idt_install_sysvec(unsigned int n, const void *function)
 {
 	if (WARN_ON(n < FIRST_SYSTEM_VECTOR))
 		return;
@@ -346,5 +346,5 @@ void __init alloc_intr_gate(unsigned int n, const void *addr)
 		return;
 
 	if (!WARN_ON(test_and_set_bit(n, system_vectors)))
-		set_intr_gate(n, addr);
+		set_intr_gate(n, function);
 }
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 0ddb3bd0f1aa..70d3aa717a29 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -829,7 +829,7 @@ static void __init kvm_guest_init(void)
 
 	if (kvm_para_has_feature(KVM_FEATURE_ASYNC_PF_INT) && kvmapf) {
 		static_branch_enable(&kvm_async_pf_enabled);
-		alloc_intr_gate(HYPERVISOR_CALLBACK_VECTOR, asm_sysvec_kvm_asyncpf_interrupt);
+		sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_kvm_asyncpf_interrupt);
 	}
 
 #ifdef CONFIG_SMP
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index b8cfea7812d6..e2813bac92d4 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -2216,7 +2216,7 @@ static __init void xen_alloc_callback_vector(void)
 		return;
 
 	pr_info("Xen HVM callback vector for event delivery is enabled\n");
-	alloc_intr_gate(HYPERVISOR_CALLBACK_VECTOR, asm_sysvec_xen_hvm_callback);
+	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_xen_hvm_callback);
 }
 #else
 void xen_setup_callback_vector(void) {}
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:26:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:26:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647596.1011000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATYz-0005Zi-1r; Tue, 05 Dec 2023 11:26:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647596.1011000; Tue, 05 Dec 2023 11:26: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 1rATYy-0005Zb-TD; Tue, 05 Dec 2023 11:26:04 +0000
Received: by outflank-mailman (input) for mailman id 647596;
 Tue, 05 Dec 2023 11:26: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUc-0003dP-Tx
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:34 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f10460b-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:28 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:20 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:19 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f10460b-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775289; x=1733311289;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=ednaCMmFl3XJWL+gfBq22HioBkuQBmZA1PVTbNrlGWM=;
  b=I1g9kkLgd9Uok/KqyuKDoQroB+KZZk44KmQ74ATmJ9fTEq1wIjIqbp1T
   76FpcJ8vDOI7aZs8NT/TTANjM4NTqsbs5JwJV86FYBo6DndroHo8qMJUG
   BqG44YWyk48DO6X3otGJ6TGKF1F3Qx7TfTOwcM7j6tS6PmbBc+nJRqsRe
   4t9myb8VUXgOOZlmz7i2hMqPcccVwQFXsqkw5E/RKUNMj2QM3Na65pVxf
   3Yykc0L24N2nvSYIQ/jfFf+DvgjqtxwUolaMCkNoSRyZlhbYQM8wcW4tx
   imYromX+8DYdNp9D6AwW6Xrzz3Zgr45JpWdqPZ1DwxihcksMONLSj9169
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942439"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942439"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192936"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192936"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 11/35] x86/cpu: Add X86_CR4_FRED macro
Date: Tue,  5 Dec 2023 02:50:00 -0800
Message-ID: <20231205105030.8698-12-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Add X86_CR4_FRED macro for the FRED bit in %cr4. This bit must not be
changed after initialization, so add it to the pinned CR4 bits.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v9:
* Avoid a type cast by defining X86_CR4_FRED as 0 on 32-bit (Thomas
  Gleixner).
---
 arch/x86/include/uapi/asm/processor-flags.h | 7 +++++++
 arch/x86/kernel/cpu/common.c                | 5 ++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/arch/x86/include/uapi/asm/processor-flags.h b/arch/x86/include/uapi/asm/processor-flags.h
index d898432947ff..f1a4adc78272 100644
--- a/arch/x86/include/uapi/asm/processor-flags.h
+++ b/arch/x86/include/uapi/asm/processor-flags.h
@@ -139,6 +139,13 @@
 #define X86_CR4_LAM_SUP_BIT	28 /* LAM for supervisor pointers */
 #define X86_CR4_LAM_SUP		_BITUL(X86_CR4_LAM_SUP_BIT)
 
+#ifdef __x86_64__
+#define X86_CR4_FRED_BIT	32 /* enable FRED kernel entry */
+#define X86_CR4_FRED		_BITUL(X86_CR4_FRED_BIT)
+#else
+#define X86_CR4_FRED		(0)
+#endif
+
 /*
  * x86-64 Task Priority Register, CR8
  */
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 68102acd63b0..132f41f7c27f 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -389,9 +389,8 @@ static __always_inline void setup_umip(struct cpuinfo_x86 *c)
 }
 
 /* These bits should not change their value after CPU init is finished. */
-static const unsigned long cr4_pinned_mask =
-	X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_UMIP |
-	X86_CR4_FSGSBASE | X86_CR4_CET;
+static const unsigned long cr4_pinned_mask = X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_UMIP |
+					     X86_CR4_FSGSBASE | X86_CR4_CET | X86_CR4_FRED;
 static DEFINE_STATIC_KEY_FALSE_RO(cr_pinning);
 static unsigned long cr4_pinned_bits __ro_after_init;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:26:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:26:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647602.1011010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATZJ-0006Xa-8b; Tue, 05 Dec 2023 11:26:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647602.1011010; Tue, 05 Dec 2023 11:26:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATZJ-0006XP-5F; Tue, 05 Dec 2023 11:26:25 +0000
Received: by outflank-mailman (input) for mailman id 647602;
 Tue, 05 Dec 2023 11:26: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUd-0003dP-Ty
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:35 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f915bc3-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:29 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:20 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:19 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f915bc3-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775290; x=1733311290;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=1fzGqu48NP+nQ4Wei8H/FiUdtI6VnB83SN+47a+BzSw=;
  b=SLjBlCrocaKwGPbotF1v7rfAt46oFSbirlwMbuQsMw2DGUGa6etwBIIM
   BTcsoPEOc6G02+rc2u3qnZNXQIlOds/rC9/XLSFenxUKjhkvYDZOaxM5z
   u4oPK88CFuKU9EflKFRtJ61RxH7oIAnBCi3hctub2uUjpXjoaGMPUhP+s
   of1jqQ45bpE8f0HXaJcDG+CwC1dOtkCNhai/YrndHmTgA6UQvYXpqNbqT
   RCBmbF64+VJgV26wPYjzUlyh6kQ6SuoqFcZCULy8fwZX9Ha+iZPASeQRC
   sNqjodfXIL8SZ0PxyGmL5LFDykA404kyuUmflnvSOikLyVE3FvdSPoXvk
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942452"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942452"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192939"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192939"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 12/35] x86/cpu: Add MSR numbers for FRED configuration
Date: Tue,  5 Dec 2023 02:50:01 -0800
Message-ID: <20231205105030.8698-13-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Add MSR numbers for the FRED configuration registers per FRED spec 5.0.

Originally-by: Megha Dey <megha.dey@intel.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/include/asm/msr-index.h       | 13 ++++++++++++-
 tools/arch/x86/include/asm/msr-index.h | 13 ++++++++++++-
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index 737a52b89e64..d1d6b3c3e6bd 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -36,8 +36,19 @@
 #define EFER_FFXSR		(1<<_EFER_FFXSR)
 #define EFER_AUTOIBRS		(1<<_EFER_AUTOIBRS)
 
-/* Intel MSRs. Some also available on other CPUs */
+/* FRED MSRs */
+#define MSR_IA32_FRED_RSP0	0x1cc			/* Level 0 stack pointer */
+#define MSR_IA32_FRED_RSP1	0x1cd			/* Level 1 stack pointer */
+#define MSR_IA32_FRED_RSP2	0x1ce			/* Level 2 stack pointer */
+#define MSR_IA32_FRED_RSP3	0x1cf			/* Level 3 stack pointer */
+#define MSR_IA32_FRED_STKLVLS	0x1d0			/* Exception stack levels */
+#define MSR_IA32_FRED_SSP0	MSR_IA32_PL0_SSP	/* Level 0 shadow stack pointer */
+#define MSR_IA32_FRED_SSP1	0x1d1			/* Level 1 shadow stack pointer */
+#define MSR_IA32_FRED_SSP2	0x1d2			/* Level 2 shadow stack pointer */
+#define MSR_IA32_FRED_SSP3	0x1d3			/* Level 3 shadow stack pointer */
+#define MSR_IA32_FRED_CONFIG	0x1d4			/* Entrypoint and interrupt stack level */
 
+/* Intel MSRs. Some also available on other CPUs */
 #define MSR_TEST_CTRL				0x00000033
 #define MSR_TEST_CTRL_SPLIT_LOCK_DETECT_BIT	29
 #define MSR_TEST_CTRL_SPLIT_LOCK_DETECT		BIT(MSR_TEST_CTRL_SPLIT_LOCK_DETECT_BIT)
diff --git a/tools/arch/x86/include/asm/msr-index.h b/tools/arch/x86/include/asm/msr-index.h
index 1d51e1850ed0..74f2c63ce717 100644
--- a/tools/arch/x86/include/asm/msr-index.h
+++ b/tools/arch/x86/include/asm/msr-index.h
@@ -36,8 +36,19 @@
 #define EFER_FFXSR		(1<<_EFER_FFXSR)
 #define EFER_AUTOIBRS		(1<<_EFER_AUTOIBRS)
 
-/* Intel MSRs. Some also available on other CPUs */
+/* FRED MSRs */
+#define MSR_IA32_FRED_RSP0	0x1cc			/* Level 0 stack pointer */
+#define MSR_IA32_FRED_RSP1	0x1cd			/* Level 1 stack pointer */
+#define MSR_IA32_FRED_RSP2	0x1ce			/* Level 2 stack pointer */
+#define MSR_IA32_FRED_RSP3	0x1cf			/* Level 3 stack pointer */
+#define MSR_IA32_FRED_STKLVLS	0x1d0			/* Exception stack levels */
+#define MSR_IA32_FRED_SSP0	MSR_IA32_PL0_SSP	/* Level 0 shadow stack pointer */
+#define MSR_IA32_FRED_SSP1	0x1d1			/* Level 1 shadow stack pointer */
+#define MSR_IA32_FRED_SSP2	0x1d2			/* Level 2 shadow stack pointer */
+#define MSR_IA32_FRED_SSP3	0x1d3			/* Level 3 shadow stack pointer */
+#define MSR_IA32_FRED_CONFIG	0x1d4			/* Entrypoint and interrupt stack level */
 
+/* Intel MSRs. Some also available on other CPUs */
 #define MSR_TEST_CTRL				0x00000033
 #define MSR_TEST_CTRL_SPLIT_LOCK_DETECT_BIT	29
 #define MSR_TEST_CTRL_SPLIT_LOCK_DETECT		BIT(MSR_TEST_CTRL_SPLIT_LOCK_DETECT_BIT)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:27:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:27:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647606.1011020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATaK-0007ZL-H8; Tue, 05 Dec 2023 11:27:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647606.1011020; Tue, 05 Dec 2023 11: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 1rATaK-0007ZE-Ed; Tue, 05 Dec 2023 11:27:28 +0000
Received: by outflank-mailman (input) for mailman id 647606;
 Tue, 05 Dec 2023 11:27: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUl-0003dP-Uq
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:43 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 725aecfa-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:34 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:24 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:23 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 725aecfa-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775295; x=1733311295;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=k2EFvyDZMYbQ2fXvfAoaFsJLuhPG//kHzGw1Pxarr6c=;
  b=ChozjMgg4lkanS3GQSK80M7EkNFrcCvCB7el1FHu1fDtgJJO2G7VJqX7
   pc63ilSgM1sQ0k8LO4kqi+FFiLkElXP+92qBMmVw5WlFb03jggjC1j1BW
   Kl/WfygHEwj17lbJyYLA/31RytbIaHcCGJSaziWDie0M2SrzHw2Xq2K+T
   y8m/g4gqHw/sPC1T5KnTMItic8CgMjd3XpjmiNT0ykGB5yHodWLpnECg5
   qk7bZy5xa1Mf1R8Nmap1/68h5Xi8Pb/b3hpCxAQqHkJJedBnkjxvlenRU
   2MHb6sloU5i5xm/vrNNlrymWj1vvcyjxuzuovIS6rqjv+upuyEeYpS7ta
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942583"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942583"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192980"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192980"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 23/35] x86/fred: Add a debug fault entry stub for FRED
Date: Tue,  5 Dec 2023 02:50:12 -0800
Message-ID: <20231205105030.8698-24-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

When occurred on different ring level, i.e., from user or kernel context,
#DB needs to be handled on different stack: User #DB on current task
stack, while kernel #DB on a dedicated stack. This is exactly how FRED
event delivery invokes an exception handler: ring 3 event on level 0
stack, i.e., current task stack; ring 0 event on the #DB dedicated stack
specified in the IA32_FRED_STKLVLS MSR. So unlike IDT, the FRED debug
exception entry stub doesn't do stack switch.

On a FRED system, the debug trap status information (DR6) is passed on
the stack, to avoid the problem of transient state. Furthermore, FRED
transitions avoid a lot of ugly corner cases the handling of which can,
and should be, skipped.

The FRED debug trap status information saved on the stack differs from
DR6 in both stickiness and polarity; it is exactly in the format which
debug_read_clear_dr6() returns for the IDT entry points.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v9:
* Disable #DB to avoid endless recursion and stack overflow when a
  watchpoint/breakpoint is set in the code path which is executed by
  #DB handler (Thomas Gleixner).

Changes since v1:
* call irqentry_nmi_{enter,exit}() in both IDT and FRED debug fault kernel
  handler (Peter Zijlstra).
---
 arch/x86/kernel/traps.c | 43 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 38 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index c876f1d36a81..848c85208a57 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -50,6 +50,7 @@
 #include <asm/ftrace.h>
 #include <asm/traps.h>
 #include <asm/desc.h>
+#include <asm/fred.h>
 #include <asm/fpu/api.h>
 #include <asm/cpu.h>
 #include <asm/cpu_entry_area.h>
@@ -934,8 +935,7 @@ static bool notify_debug(struct pt_regs *regs, unsigned long *dr6)
 	return false;
 }
 
-static __always_inline void exc_debug_kernel(struct pt_regs *regs,
-					     unsigned long dr6)
+static noinstr void exc_debug_kernel(struct pt_regs *regs, unsigned long dr6)
 {
 	/*
 	 * Disable breakpoints during exception handling; recursive exceptions
@@ -947,6 +947,11 @@ static __always_inline void exc_debug_kernel(struct pt_regs *regs,
 	 *
 	 * Entry text is excluded for HW_BP_X and cpu_entry_area, which
 	 * includes the entry stack is excluded for everything.
+	 *
+	 * For FRED, nested #DB should just work fine. But when a watchpoint or
+	 * breakpoint is set in the code path which is executed by #DB handler,
+	 * it results in an endless recursion and stack overflow. Thus we stay
+	 * with the IDT approach, i.e., save DR7 and disable #DB.
 	 */
 	unsigned long dr7 = local_db_save();
 	irqentry_state_t irq_state = irqentry_nmi_enter(regs);
@@ -976,7 +981,8 @@ static __always_inline void exc_debug_kernel(struct pt_regs *regs,
 	 * Catch SYSENTER with TF set and clear DR_STEP. If this hit a
 	 * watchpoint at the same time then that will still be handled.
 	 */
-	if ((dr6 & DR_STEP) && is_sysenter_singlestep(regs))
+	if (!cpu_feature_enabled(X86_FEATURE_FRED) &&
+	    (dr6 & DR_STEP) && is_sysenter_singlestep(regs))
 		dr6 &= ~DR_STEP;
 
 	/*
@@ -1008,8 +1014,7 @@ static __always_inline void exc_debug_kernel(struct pt_regs *regs,
 	local_db_restore(dr7);
 }
 
-static __always_inline void exc_debug_user(struct pt_regs *regs,
-					   unsigned long dr6)
+static noinstr void exc_debug_user(struct pt_regs *regs, unsigned long dr6)
 {
 	bool icebp;
 
@@ -1093,6 +1098,34 @@ DEFINE_IDTENTRY_DEBUG_USER(exc_debug)
 {
 	exc_debug_user(regs, debug_read_clear_dr6());
 }
+
+#ifdef CONFIG_X86_FRED
+/*
+ * When occurred on different ring level, i.e., from user or kernel
+ * context, #DB needs to be handled on different stack: User #DB on
+ * current task stack, while kernel #DB on a dedicated stack.
+ *
+ * This is exactly how FRED event delivery invokes an exception
+ * handler: ring 3 event on level 0 stack, i.e., current task stack;
+ * ring 0 event on the #DB dedicated stack specified in the
+ * IA32_FRED_STKLVLS MSR. So unlike IDT, the FRED debug exception
+ * entry stub doesn't do stack switch.
+ */
+DEFINE_FREDENTRY_DEBUG(exc_debug)
+{
+	/*
+	 * FRED #DB stores DR6 on the stack in the format which
+	 * debug_read_clear_dr6() returns for the IDT entry points.
+	 */
+	unsigned long dr6 = fred_event_data(regs);
+
+	if (user_mode(regs))
+		exc_debug_user(regs, dr6);
+	else
+		exc_debug_kernel(regs, dr6);
+}
+#endif /* CONFIG_X86_FRED */
+
 #else
 /* 32 bit does not have separate entry points. */
 DEFINE_IDTENTRY_RAW(exc_debug)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:28:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:28:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647610.1011029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATbH-00005s-Qj; Tue, 05 Dec 2023 11:28:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647610.1011029; Tue, 05 Dec 2023 11:28:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATbH-00005K-Nz; Tue, 05 Dec 2023 11:28:27 +0000
Received: by outflank-mailman (input) for mailman id 647610;
 Tue, 05 Dec 2023 11:28:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUb-0003dP-Tw
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:33 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6eedd4cf-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:28 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:20 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:18 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6eedd4cf-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775289; x=1733311289;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=8zwQaI6Tk7f8mb2xHC28eOqgRd27v5i+M1zjLpRj75Y=;
  b=U3KcXSwXnBOvxd35RuSmHsodDrM1LmrOr+5A8mlf/V7S3qegJ0K91x9Z
   rwNqI5NKWZxB//4DXztmSAvZI4bLBAsdZGelBpAZP7KFlJnTcRYEAkpiR
   fLu4Ta5g1tfCgD4dmmbxIm1Lxx3sYOWQANoWLJ+XPTsNfs7NgNNMP++Sr
   3gFGyxlzIPMDpvD+i6F8T1Jan7Kt0ezi6YpeJf91wJcvlrBrArARPA/08
   TKPv6DYlZJ9CXq4IvTvEJqDrBzLNICWc2NDZa6nLaIDbYjXkoWbxcCX4V
   GHwDeJR3TeVBkYp34dQDNBnpIlfTL6o85yeKrDE2jv9vVeb7ek4G6FybB
   Q==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942427"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942427"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192932"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192932"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 10/35] x86/objtool: Teach objtool about ERET[US]
Date: Tue,  5 Dec 2023 02:49:59 -0800
Message-ID: <20231205105030.8698-11-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Update the objtool decoder to know about the ERET[US] instructions
(type INSN_CONTEXT_SWITCH).

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 tools/objtool/arch/x86/decode.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/tools/objtool/arch/x86/decode.c b/tools/objtool/arch/x86/decode.c
index e327cd827135..3a1d80a7878d 100644
--- a/tools/objtool/arch/x86/decode.c
+++ b/tools/objtool/arch/x86/decode.c
@@ -509,11 +509,20 @@ int arch_decode_instruction(struct objtool_file *file, const struct section *sec
 
 		if (op2 == 0x01) {
 
-			if (modrm == 0xca)
-				insn->type = INSN_CLAC;
-			else if (modrm == 0xcb)
-				insn->type = INSN_STAC;
-
+			switch (insn_last_prefix_id(&ins)) {
+			case INAT_PFX_REPE:
+			case INAT_PFX_REPNE:
+				if (modrm == 0xca)
+					/* eretu/erets */
+					insn->type = INSN_CONTEXT_SWITCH;
+				break;
+			default:
+				if (modrm == 0xca)
+					insn->type = INSN_CLAC;
+				else if (modrm == 0xcb)
+					insn->type = INSN_STAC;
+				break;
+			}
 		} else if (op2 >= 0x80 && op2 <= 0x8f) {
 
 			insn->type = INSN_JUMP_CONDITIONAL;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:28:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:28:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647614.1011040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATbR-0000VY-1h; Tue, 05 Dec 2023 11:28:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647614.1011040; Tue, 05 Dec 2023 11:28:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATbQ-0000VR-VK; Tue, 05 Dec 2023 11:28:36 +0000
Received: by outflank-mailman (input) for mailman id 647614;
 Tue, 05 Dec 2023 11:28:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUt-0003dP-VV
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:51 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 751beeef-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:38 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:27 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:26 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 751beeef-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775300; x=1733311300;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=UVhP7f+75Ax+FxvYCkHZURx9ZVwCqbLITZRLMgz0Nr0=;
  b=GmWxsUBBhd1slAkZzx9RFtv19DACoJq+oMKuRy+URTqiorKHVoMS8zTH
   pw0eXCQT80r08CEVTOr///1FLP21QkE4YSScdhOb5tDOVlZtbyOxyc0vp
   69Ek2F/UhX8aMq4JLJVw3TEMtveqEGVnSCQyYcwCi/aQKVS2BMivFlUF1
   DypkB2swzJUoeTq9Mk3++rONf6TkmuCjd2kgqkFqtin/IAPTehA/2KQqE
   l6RCrPw3tFtQZNWbIJhs+ndJZu+blfjQz0PVsikKyIF6DVpJdABw1HWDM
   SOzLw8zYWbWwLa9ELs4TAZs4XMpz6TIqX9nhNAzl610rsMlIBbPjOhpWs
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942706"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942706"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018193015"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018193015"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 33/35] x86/syscall: Split IDT syscall setup code into idt_syscall_init()
Date: Tue,  5 Dec 2023 02:50:22 -0800
Message-ID: <20231205105030.8698-34-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Because FRED uses the ring 3 FRED entrypoint for SYSCALL and SYSENTER and
ERETU is the only legit instruction to return to ring 3, there is NO need
to setup SYSCALL and SYSENTER MSRs for FRED, except the IA32_STAR MSR.

Split IDT syscall setup code into idt_syscall_init() to make it easy to
skip syscall setup code when FRED is enabled.

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/kernel/cpu/common.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 132f41f7c27f..9a075792e275 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -2076,10 +2076,8 @@ static void wrmsrl_cstar(unsigned long val)
 		wrmsrl(MSR_CSTAR, val);
 }
 
-/* May not be marked __init: used by software suspend */
-void syscall_init(void)
+static inline void idt_syscall_init(void)
 {
-	wrmsr(MSR_STAR, 0, (__USER32_CS << 16) | __KERNEL_CS);
 	wrmsrl(MSR_LSTAR, (unsigned long)entry_SYSCALL_64);
 
 	if (ia32_enabled()) {
@@ -2113,6 +2111,15 @@ void syscall_init(void)
 	       X86_EFLAGS_AC|X86_EFLAGS_ID);
 }
 
+/* May not be marked __init: used by software suspend */
+void syscall_init(void)
+{
+	/* The default user and kernel segments */
+	wrmsr(MSR_STAR, 0, (__USER32_CS << 16) | __KERNEL_CS);
+
+	idt_syscall_init();
+}
+
 #else	/* CONFIG_X86_64 */
 
 #ifdef CONFIG_STACKPROTECTOR
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:28:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:28:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647615.1011050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATbV-0000pp-F5; Tue, 05 Dec 2023 11:28:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647615.1011050; Tue, 05 Dec 2023 11:28:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATbV-0000pi-C7; Tue, 05 Dec 2023 11:28:41 +0000
Received: by outflank-mailman (input) for mailman id 647615;
 Tue, 05 Dec 2023 11:28: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUs-0003dP-Vc
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:50 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74fddc09-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:38 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:27 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:26 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74fddc09-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775299; x=1733311299;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=SQLskgfezeMmMUQK7hRm+in8U5EG93C8+IUmjWFkZJ4=;
  b=e6dqYL2826IKDf354zom8O6hrtYqB09fZZhDZIqkWFX1rlYbJVrlwiti
   iFkpfDFIJDDx/a8dgAEsOyVGmQuwDU8/D+ZTIvW3ZGA0gpXiKZGzb1zAf
   Y3JoQfkni4RefPsaA9KlrAz+TMABWNDR80dQZAwdk0E9c+pxeOX8AQuWj
   4o7MkVMiK8nf9BKhZqs7zG/FtH+ZWyZZP4SiaR8ghxE5/qdqfy0aIMF6b
   3C1BojI+Cqq1oW4wwZv7GU91ZVfr6tfj7H9t8KpNCJNlDczMTtRdJIOKd
   9/qv7LMcXHbRDCnNXDKU8T0AtCenDZjv3bwqSjV9SWl4S9mrJX4ty5KZM
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942695"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942695"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018193012"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018193012"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 32/35] KVM: VMX: Call fred_entry_from_kvm() for IRQ/NMI handling
Date: Tue,  5 Dec 2023 02:50:21 -0800
Message-ID: <20231205105030.8698-33-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When FRED is enabled, call fred_entry_from_kvm() to handle IRQ/NMI in
IRQ/NMI induced VM exits.

Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
---
 arch/x86/kvm/vmx/vmx.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index be20a60047b1..ba5cd26137e0 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -38,6 +38,7 @@
 #include <asm/desc.h>
 #include <asm/fpu/api.h>
 #include <asm/fpu/xstate.h>
+#include <asm/fred.h>
 #include <asm/idtentry.h>
 #include <asm/io.h>
 #include <asm/irq_remapping.h>
@@ -6962,14 +6963,16 @@ static void handle_external_interrupt_irqoff(struct kvm_vcpu *vcpu)
 {
 	u32 intr_info = vmx_get_intr_info(vcpu);
 	unsigned int vector = intr_info & INTR_INFO_VECTOR_MASK;
-	gate_desc *desc = (gate_desc *)host_idt_base + vector;
 
 	if (KVM_BUG(!is_external_intr(intr_info), vcpu->kvm,
 	    "unexpected VM-Exit interrupt info: 0x%x", intr_info))
 		return;
 
 	kvm_before_interrupt(vcpu, KVM_HANDLING_IRQ);
-	vmx_do_interrupt_irqoff(gate_offset(desc));
+	if (cpu_feature_enabled(X86_FEATURE_FRED))
+		fred_entry_from_kvm(EVENT_TYPE_EXTINT, vector);
+	else
+		vmx_do_interrupt_irqoff(gate_offset((gate_desc *)host_idt_base + vector));
 	kvm_after_interrupt(vcpu);
 
 	vcpu->arch.at_instruction_boundary = true;
@@ -7262,7 +7265,10 @@ static noinstr void vmx_vcpu_enter_exit(struct kvm_vcpu *vcpu,
 	if ((u16)vmx->exit_reason.basic == EXIT_REASON_EXCEPTION_NMI &&
 	    is_nmi(vmx_get_intr_info(vcpu))) {
 		kvm_before_interrupt(vcpu, KVM_HANDLING_NMI);
-		vmx_do_nmi_irqoff();
+		if (cpu_feature_enabled(X86_FEATURE_FRED))
+			fred_entry_from_kvm(EVENT_TYPE_NMI, NMI_VECTOR);
+		else
+			vmx_do_nmi_irqoff();
 		kvm_after_interrupt(vcpu);
 	}
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:29:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:29:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647622.1011060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATbu-0001re-Nb; Tue, 05 Dec 2023 11:29:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647622.1011060; Tue, 05 Dec 2023 11:29:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATbu-0001rW-Kh; Tue, 05 Dec 2023 11:29:06 +0000
Received: by outflank-mailman (input) for mailman id 647622;
 Tue, 05 Dec 2023 11: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUh-0003dP-UV
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:39 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70e625f1-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:31 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:23 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:21 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70e625f1-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775293; x=1733311293;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=/uN2WUhxBQNYcu14PCjKEEJ/KO0CK2Le/qFJcLIBoLk=;
  b=eXjW0sGMETibNzXYiuneEF8yJ12Lpx64YjHxAYQDwDGbHjnd1ejzvye3
   X9O1/adT/elBboJOTgn9wyhPBqRu3S/uHWkpaWgn78H/GJsleb7riNnII
   wpgI5kJIuF1GvgAZmKFid3w26FkV4zJzQroT7xo0JWnCZ9BFJqpvwEK3K
   ne+Ql4opnUCsQY3i+2w6gLCN3YpzTp0a3hl7H46pfGy1fc/8B22PJWCm8
   JuklxvOHnJaC+7iW4pR+rlMFWc7o2zLFoqHPxi3DyNzy6Wf9NUGMY7bWk
   0++KpDvM58j9M8gSkb7Wcjf/vbbx0AzeoBFxqS0RYrz3P/YI96y8QaHbz
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942520"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942520"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192960"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192960"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 18/35] x86/fred: Disallow the swapgs instruction when FRED is enabled
Date: Tue,  5 Dec 2023 02:50:07 -0800
Message-ID: <20231205105030.8698-19-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

SWAPGS is no longer needed thus NOT allowed with FRED because FRED
transitions ensure that an operating system can _always_ operate
with its own GS base address:
- For events that occur in ring 3, FRED event delivery swaps the GS
  base address with the IA32_KERNEL_GS_BASE MSR.
- ERETU (the FRED transition that returns to ring 3) also swaps the
  GS base address with the IA32_KERNEL_GS_BASE MSR.

And the operating system can still setup the GS segment for a user
thread without the need of loading a user thread GS with:
- Using LKGS, available with FRED, to modify other attributes of the
  GS segment without compromising its ability always to operate with
  its own GS base address.
- Accessing the GS segment base address for a user thread as before
  using RDMSR or WRMSR on the IA32_KERNEL_GS_BASE MSR.

Note, LKGS loads the GS base address into the IA32_KERNEL_GS_BASE MSR
instead of the GS segment's descriptor cache. As such, the operating
system never changes its runtime GS base address.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Change since v12:
* Use the ASCII char ' (char number 0x27), instead of its unicode char
  (Borislav Petkov).

Change since v8:
* Explain why writing directly to the IA32_KERNEL_GS_BASE MSR is
  doing the right thing (Thomas Gleixner).
---
 arch/x86/kernel/process_64.c | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index b924477c5ba8..7f66c0b14de6 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -166,7 +166,29 @@ static noinstr unsigned long __rdgsbase_inactive(void)
 
 	lockdep_assert_irqs_disabled();
 
-	if (!cpu_feature_enabled(X86_FEATURE_XENPV)) {
+	/*
+	 * SWAPGS is no longer needed thus NOT allowed with FRED because
+	 * FRED transitions ensure that an operating system can _always_
+	 * operate with its own GS base address:
+	 * - For events that occur in ring 3, FRED event delivery swaps
+	 *   the GS base address with the IA32_KERNEL_GS_BASE MSR.
+	 * - ERETU (the FRED transition that returns to ring 3) also swaps
+	 *   the GS base address with the IA32_KERNEL_GS_BASE MSR.
+	 *
+	 * And the operating system can still setup the GS segment for a
+	 * user thread without the need of loading a user thread GS with:
+	 * - Using LKGS, available with FRED, to modify other attributes
+	 *   of the GS segment without compromising its ability always to
+	 *   operate with its own GS base address.
+	 * - Accessing the GS segment base address for a user thread as
+	 *   before using RDMSR or WRMSR on the IA32_KERNEL_GS_BASE MSR.
+	 *
+	 * Note, LKGS loads the GS base address into the IA32_KERNEL_GS_BASE
+	 * MSR instead of the GS segmentâ€™s descriptor cache. As such, the
+	 * operating system never changes its runtime GS base address.
+	 */
+	if (!cpu_feature_enabled(X86_FEATURE_FRED) &&
+	    !cpu_feature_enabled(X86_FEATURE_XENPV)) {
 		native_swapgs();
 		gsbase = rdgsbase();
 		native_swapgs();
@@ -191,7 +213,8 @@ static noinstr void __wrgsbase_inactive(unsigned long gsbase)
 {
 	lockdep_assert_irqs_disabled();
 
-	if (!cpu_feature_enabled(X86_FEATURE_XENPV)) {
+	if (!cpu_feature_enabled(X86_FEATURE_FRED) &&
+	    !cpu_feature_enabled(X86_FEATURE_XENPV)) {
 		native_swapgs();
 		wrgsbase(gsbase);
 		native_swapgs();
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:29:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:29:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647627.1011076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATcl-0002rM-Ar; Tue, 05 Dec 2023 11:29:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647627.1011076; Tue, 05 Dec 2023 11:29: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 1rATcl-0002qY-4r; Tue, 05 Dec 2023 11:29:59 +0000
Received: by outflank-mailman (input) for mailman id 647627;
 Tue, 05 Dec 2023 11: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUn-0003dP-V0
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:46 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73547fd3-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:36 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:25 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:24 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73547fd3-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775297; x=1733311297;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=EQkZcdlIGejyKoHaUNRbB39EMDdMWkYBuyy3w6bmovA=;
  b=CoOulSmagvO1aE6R3pY3kkov9FCH/dMIKxAPzoxY5nWZL31FIcuW8JC2
   8n/Ov20IiylMIdzDKbKT+HmZ3WaXmwikm4SI9cqwPKsBFlnGAfMpTRP7a
   qfZGpKDCOcXC5wKeiSxFqwDAyMzIqdZJRjrqARNcaOp86Zta5sVmdPS7n
   ZcXee0v2W2TzUR4KYzHb1DuX6zialEdIHivSafq7QrHHbmw0KDP3LXuy1
   EAYAzxpsMyCgjqoaPkIR3GVssVU+dVci1ouRZO8Viu0ZGkTomyaarGJE8
   uvQlorp67Zag19mRxazIQlExY4zYRPgG+NJb0pGNruLrgFJizdYf8t2vf
   Q==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942622"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942622"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192992"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192992"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Date: Tue,  5 Dec 2023 02:50:15 -0800
Message-ID: <20231205105030.8698-27-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

The code to actually handle kernel and event entry/exit using
FRED. It is split up into two files thus:

- entry_64_fred.S contains the actual entrypoints and exit code, and
  saves and restores registers.
- entry_fred.c contains the two-level event dispatch code for FRED.
  The first-level dispatch is on the event type, and the second-level
  is on the event vector.

Originally-by: Megha Dey <megha.dey@intel.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Co-developed-by: Xin Li <xin3.li@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v10:
* Replace "IS_ENABLED(CONFIG_IA32_EMULATION)" with the new ia32_enabled()
  API (Nikolay Borisov).

Changes since v9:
* Don't use jump tables, indirect jumps are expensive (Thomas Gleixner).
* Except NMI/#DB/#MCE, FRED really can share the exception handlers
  with IDT (Thomas Gleixner).
* Avoid the sysvec_* idt_entry muck, do it at a central place, reuse code
  instead of blindly copying it, which breaks the performance optimized
  sysvec entries like reschedule_ipi (Thomas Gleixner).
* Add asm_ prefix to FRED asm entry points (Thomas Gleixner).

Changes since v8:
* Don't do syscall early out in fred_entry_from_user() before there are
  proper performance numbers and justifications (Thomas Gleixner).
* Add the control exception handler to the FRED exception handler table
  (Thomas Gleixner).
* Add ENDBR to the FRED_ENTER asm macro.
* Reflect the FRED spec 5.0 change that ERETS and ERETU add 8 to %rsp
  before popping the return context from the stack.

Changes since v1:
* Initialize a FRED exception handler to fred_bad_event() instead of NULL
  if no FRED handler defined for an exception vector (Peter Zijlstra).
* Push calling irqentry_{enter,exit}() and instrumentation_{begin,end}()
  down into individual FRED exception handlers, instead of in the dispatch
  framework (Peter Zijlstra).
---
 arch/x86/entry/Makefile               |   5 +-
 arch/x86/entry/entry_64_fred.S        |  52 ++++++
 arch/x86/entry/entry_fred.c           | 230 ++++++++++++++++++++++++++
 arch/x86/include/asm/asm-prototypes.h |   1 +
 arch/x86/include/asm/fred.h           |   6 +
 5 files changed, 293 insertions(+), 1 deletion(-)
 create mode 100644 arch/x86/entry/entry_64_fred.S
 create mode 100644 arch/x86/entry/entry_fred.c

diff --git a/arch/x86/entry/Makefile b/arch/x86/entry/Makefile
index ca2fe186994b..c93e7f5c2a06 100644
--- a/arch/x86/entry/Makefile
+++ b/arch/x86/entry/Makefile
@@ -18,6 +18,9 @@ obj-y				+= vdso/
 obj-y				+= vsyscall/
 
 obj-$(CONFIG_PREEMPTION)	+= thunk_$(BITS).o
+CFLAGS_entry_fred.o		+= -fno-stack-protector
+CFLAGS_REMOVE_entry_fred.o	+= -pg $(CC_FLAGS_FTRACE)
+obj-$(CONFIG_X86_FRED)		+= entry_64_fred.o entry_fred.o
+
 obj-$(CONFIG_IA32_EMULATION)	+= entry_64_compat.o syscall_32.o
 obj-$(CONFIG_X86_X32_ABI)	+= syscall_x32.o
-
diff --git a/arch/x86/entry/entry_64_fred.S b/arch/x86/entry/entry_64_fred.S
new file mode 100644
index 000000000000..37a1dd5e8ace
--- /dev/null
+++ b/arch/x86/entry/entry_64_fred.S
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * The actual FRED entry points.
+ */
+
+#include <asm/fred.h>
+
+#include "calling.h"
+
+	.code64
+	.section .noinstr.text, "ax"
+
+.macro FRED_ENTER
+	UNWIND_HINT_END_OF_STACK
+	ENDBR
+	PUSH_AND_CLEAR_REGS
+	movq	%rsp, %rdi	/* %rdi -> pt_regs */
+.endm
+
+.macro FRED_EXIT
+	UNWIND_HINT_REGS
+	POP_REGS
+.endm
+
+/*
+ * The new RIP value that FRED event delivery establishes is
+ * IA32_FRED_CONFIG & ~FFFH for events that occur in ring 3.
+ * Thus the FRED ring 3 entry point must be 4K page aligned.
+ */
+	.align 4096
+
+SYM_CODE_START_NOALIGN(asm_fred_entrypoint_user)
+	FRED_ENTER
+	call	fred_entry_from_user
+	FRED_EXIT
+	ERETU
+SYM_CODE_END(asm_fred_entrypoint_user)
+
+.fill asm_fred_entrypoint_kernel - ., 1, 0xcc
+
+/*
+ * The new RIP value that FRED event delivery establishes is
+ * (IA32_FRED_CONFIG & ~FFFH) + 256 for events that occur in
+ * ring 0, i.e., asm_fred_entrypoint_user + 256.
+ */
+	.org asm_fred_entrypoint_user + 256
+SYM_CODE_START_NOALIGN(asm_fred_entrypoint_kernel)
+	FRED_ENTER
+	call	fred_entry_from_kernel
+	FRED_EXIT
+	ERETS
+SYM_CODE_END(asm_fred_entrypoint_kernel)
diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c
new file mode 100644
index 000000000000..215883e90f94
--- /dev/null
+++ b/arch/x86/entry/entry_fred.c
@@ -0,0 +1,230 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * The FRED specific kernel/user entry functions which are invoked from
+ * assembly code and dispatch to the associated handlers.
+ */
+#include <linux/kernel.h>
+#include <linux/kdebug.h>
+#include <linux/nospec.h>
+
+#include <asm/desc.h>
+#include <asm/fred.h>
+#include <asm/idtentry.h>
+#include <asm/syscall.h>
+#include <asm/trapnr.h>
+#include <asm/traps.h>
+
+/* FRED EVENT_TYPE_OTHER vector numbers */
+#define FRED_SYSCALL			1
+#define FRED_SYSENTER			2
+
+static noinstr void fred_bad_type(struct pt_regs *regs, unsigned long error_code)
+{
+	irqentry_state_t irq_state = irqentry_nmi_enter(regs);
+
+	instrumentation_begin();
+
+	/* Panic on events from a high stack level */
+	if (regs->fred_cs.sl > 0) {
+		pr_emerg("PANIC: invalid or fatal FRED event; event type %u "
+			 "vector %u error 0x%lx aux 0x%lx at %04x:%016lx\n",
+			 regs->fred_ss.type, regs->fred_ss.vector, regs->orig_ax,
+			 fred_event_data(regs), regs->cs, regs->ip);
+		die("invalid or fatal FRED event", regs, regs->orig_ax);
+		panic("invalid or fatal FRED event");
+	} else {
+		unsigned long flags = oops_begin();
+		int sig = SIGKILL;
+
+		pr_alert("BUG: invalid or fatal FRED event; event type %u "
+			 "vector %u error 0x%lx aux 0x%lx at %04x:%016lx\n",
+			 regs->fred_ss.type, regs->fred_ss.vector, regs->orig_ax,
+			 fred_event_data(regs), regs->cs, regs->ip);
+
+		if (__die("Invalid or fatal FRED event", regs, regs->orig_ax))
+			sig = 0;
+
+		oops_end(flags, regs, sig);
+	}
+
+	instrumentation_end();
+	irqentry_nmi_exit(regs, irq_state);
+}
+
+static noinstr void fred_intx(struct pt_regs *regs)
+{
+	switch (regs->fred_ss.vector) {
+	/* INT0 */
+	case X86_TRAP_OF:
+		exc_overflow(regs);
+		return;
+
+	/* INT3 */
+	case X86_TRAP_BP:
+		exc_int3(regs);
+		return;
+
+	/* INT80 */
+	case IA32_SYSCALL_VECTOR:
+		if (ia32_enabled()) {
+			/* Save the syscall number */
+			regs->orig_ax = regs->ax;
+			regs->ax = -ENOSYS;
+			do_int80_syscall_32(regs);
+			return;
+		}
+		fallthrough;
+
+	default:
+		exc_general_protection(regs, 0);
+		return;
+	}
+}
+
+static __always_inline void fred_other(struct pt_regs *regs)
+{
+	/* The compiler can fold these conditions into a single test */
+	if (likely(regs->fred_ss.vector == FRED_SYSCALL && regs->fred_ss.lm)) {
+		regs->orig_ax = regs->ax;
+		regs->ax = -ENOSYS;
+		do_syscall_64(regs, regs->orig_ax);
+		return;
+	} else if (ia32_enabled() &&
+		   likely(regs->fred_ss.vector == FRED_SYSENTER &&
+			  !regs->fred_ss.lm)) {
+		regs->orig_ax = regs->ax;
+		regs->ax = -ENOSYS;
+		do_fast_syscall_32(regs);
+		return;
+	} else {
+		exc_invalid_op(regs);
+		return;
+	}
+}
+
+#define SYSVEC(_vector, _function) [_vector - FIRST_SYSTEM_VECTOR] = fred_sysvec_##_function
+
+static idtentry_t sysvec_table[NR_SYSTEM_VECTORS] __ro_after_init = {
+	SYSVEC(ERROR_APIC_VECTOR,		error_interrupt),
+	SYSVEC(SPURIOUS_APIC_VECTOR,		spurious_apic_interrupt),
+	SYSVEC(LOCAL_TIMER_VECTOR,		apic_timer_interrupt),
+	SYSVEC(X86_PLATFORM_IPI_VECTOR,		x86_platform_ipi),
+
+	SYSVEC(RESCHEDULE_VECTOR,		reschedule_ipi),
+	SYSVEC(CALL_FUNCTION_SINGLE_VECTOR,	call_function_single),
+	SYSVEC(CALL_FUNCTION_VECTOR,		call_function),
+	SYSVEC(REBOOT_VECTOR,			reboot),
+
+	SYSVEC(THRESHOLD_APIC_VECTOR,		threshold),
+	SYSVEC(DEFERRED_ERROR_VECTOR,		deferred_error),
+	SYSVEC(THERMAL_APIC_VECTOR,		thermal),
+
+	SYSVEC(IRQ_WORK_VECTOR,			irq_work),
+
+	SYSVEC(POSTED_INTR_VECTOR,		kvm_posted_intr_ipi),
+	SYSVEC(POSTED_INTR_WAKEUP_VECTOR,	kvm_posted_intr_wakeup_ipi),
+	SYSVEC(POSTED_INTR_NESTED_VECTOR,	kvm_posted_intr_nested_ipi),
+};
+
+static noinstr void fred_extint(struct pt_regs *regs)
+{
+	unsigned int vector = regs->fred_ss.vector;
+
+	if (WARN_ON_ONCE(vector < FIRST_EXTERNAL_VECTOR))
+		return;
+
+	if (likely(vector >= FIRST_SYSTEM_VECTOR)) {
+		irqentry_state_t state = irqentry_enter(regs);
+
+		instrumentation_begin();
+		sysvec_table[vector - FIRST_SYSTEM_VECTOR](regs);
+		instrumentation_end();
+		irqentry_exit(regs, state);
+	} else {
+		common_interrupt(regs, vector);
+	}
+}
+
+static noinstr void fred_exception(struct pt_regs *regs, unsigned long error_code)
+{
+	/* Optimize for #PF. That's the only exception which matters performance wise */
+	if (likely(regs->fred_ss.vector == X86_TRAP_PF)) {
+		exc_page_fault(regs, error_code);
+		return;
+	}
+
+	switch (regs->fred_ss.vector) {
+	case X86_TRAP_DE: return exc_divide_error(regs);
+	case X86_TRAP_DB: return fred_exc_debug(regs);
+	case X86_TRAP_BP: return exc_int3(regs);
+	case X86_TRAP_OF: return exc_overflow(regs);
+	case X86_TRAP_BR: return exc_bounds(regs);
+	case X86_TRAP_UD: return exc_invalid_op(regs);
+	case X86_TRAP_NM: return exc_device_not_available(regs);
+	case X86_TRAP_DF: return exc_double_fault(regs, error_code);
+	case X86_TRAP_TS: return exc_invalid_tss(regs, error_code);
+	case X86_TRAP_NP: return exc_segment_not_present(regs, error_code);
+	case X86_TRAP_SS: return exc_stack_segment(regs, error_code);
+	case X86_TRAP_GP: return exc_general_protection(regs, error_code);
+	case X86_TRAP_MF: return exc_coprocessor_error(regs);
+	case X86_TRAP_AC: return exc_alignment_check(regs, error_code);
+	case X86_TRAP_XF: return exc_simd_coprocessor_error(regs);
+
+#ifdef CONFIG_X86_MCE
+	case X86_TRAP_MC: return fred_exc_machine_check(regs);
+#endif
+#ifdef CONFIG_INTEL_TDX_GUEST
+	case X86_TRAP_VE: return exc_virtualization_exception(regs);
+#endif
+#ifdef CONFIG_X86_KERNEL_IBT
+	case X86_TRAP_CP: return exc_control_protection(regs, error_code);
+#endif
+	default: return fred_bad_type(regs, error_code);
+	}
+}
+
+__visible noinstr void fred_entry_from_user(struct pt_regs *regs)
+{
+	unsigned long error_code = regs->orig_ax;
+
+	/* Invalidate orig_ax so that syscall_get_nr() works correctly */
+	regs->orig_ax = -1;
+
+	switch (regs->fred_ss.type) {
+	case EVENT_TYPE_EXTINT:
+		return fred_extint(regs);
+	case EVENT_TYPE_NMI:
+		return fred_exc_nmi(regs);
+	case EVENT_TYPE_SWINT:
+		return fred_intx(regs);
+	case EVENT_TYPE_HWEXC:
+	case EVENT_TYPE_SWEXC:
+	case EVENT_TYPE_PRIV_SWEXC:
+		return fred_exception(regs, error_code);
+	case EVENT_TYPE_OTHER:
+		return fred_other(regs);
+	default:
+		return fred_bad_type(regs, error_code);
+	}
+}
+
+__visible noinstr void fred_entry_from_kernel(struct pt_regs *regs)
+{
+	unsigned long error_code = regs->orig_ax;
+
+	/* Invalidate orig_ax so that syscall_get_nr() works correctly */
+	regs->orig_ax = -1;
+
+	switch (regs->fred_ss.type) {
+	case EVENT_TYPE_EXTINT:
+		return fred_extint(regs);
+	case EVENT_TYPE_NMI:
+		return fred_exc_nmi(regs);
+	case EVENT_TYPE_HWEXC:
+	case EVENT_TYPE_SWEXC:
+	case EVENT_TYPE_PRIV_SWEXC:
+		return fred_exception(regs, error_code);
+	default:
+		return fred_bad_type(regs, error_code);
+	}
+}
diff --git a/arch/x86/include/asm/asm-prototypes.h b/arch/x86/include/asm/asm-prototypes.h
index b1a98fa38828..076bf8dee702 100644
--- a/arch/x86/include/asm/asm-prototypes.h
+++ b/arch/x86/include/asm/asm-prototypes.h
@@ -12,6 +12,7 @@
 #include <asm/special_insns.h>
 #include <asm/preempt.h>
 #include <asm/asm.h>
+#include <asm/fred.h>
 #include <asm/gsseg.h>
 
 #ifndef CONFIG_X86_CMPXCHG64
diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index f514fdb5a39f..16a64ffecbf8 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -60,6 +60,12 @@ static __always_inline unsigned long fred_event_data(struct pt_regs *regs)
 	return fred_info(regs)->edata;
 }
 
+void asm_fred_entrypoint_user(void);
+void asm_fred_entrypoint_kernel(void);
+
+__visible void fred_entry_from_user(struct pt_regs *regs);
+__visible void fred_entry_from_kernel(struct pt_regs *regs);
+
 #else /* CONFIG_X86_FRED */
 static __always_inline unsigned long fred_event_data(struct pt_regs *regs) { return 0; }
 #endif /* CONFIG_X86_FRED */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:30:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:30:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647626.1011070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATck-0002ob-WB; Tue, 05 Dec 2023 11:29:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647626.1011070; Tue, 05 Dec 2023 11: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 1rATck-0002oQ-Ta; Tue, 05 Dec 2023 11:29:58 +0000
Received: by outflank-mailman (input) for mailman id 647626;
 Tue, 05 Dec 2023 11: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUf-0003dP-UB
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:37 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7049dbef-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:30 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:21 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:20 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7049dbef-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775292; x=1733311292;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=1ausx4Z+ZyraUX+YcuvtrDimsqYt0aM/gmBdfI6uiWo=;
  b=MwjJWuhSj0q+AcEqPm8Xn8+7dUDlbN4+PM8/mxPevlmmr8UeskRhXx6F
   AQfomNO3Jx5S2zR5u9VAMEGgTBbMtfjiOEeJLr3TdgWYGRuXvulVc/olD
   jsRQqNBN6PHYqBzQEruSnEER9IhnzxATp7NpZ2YAraG3cZtb6dCOl95/h
   n1sTtzxsGzOpWZIJ4qVZDEkPJNeLvc+zWOPXPXdNxhslELYFdvJssUV7B
   HdYVhhsRRftZY3ze3IJlCuU2JbtdhpvcLwOBTws4sSmoaUkJyUcA6uOxE
   NGhbB+osQfFUtyuDjNlhkMYyN4R6ZgoelOHAFQXPCiqm9rqXnXdXLiIFA
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942488"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942488"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192949"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192949"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 15/35] x86/fred: Add a new header file for FRED definitions
Date: Tue,  5 Dec 2023 02:50:04 -0800
Message-ID: <20231205105030.8698-16-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Add a header file for FRED prototypes and definitions.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v6:
* Replace pt_regs csx flags prefix FRED_CSL_ with FRED_CSX_.
---
 arch/x86/include/asm/fred.h | 68 +++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 arch/x86/include/asm/fred.h

diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
new file mode 100644
index 000000000000..f514fdb5a39f
--- /dev/null
+++ b/arch/x86/include/asm/fred.h
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Macros for Flexible Return and Event Delivery (FRED)
+ */
+
+#ifndef ASM_X86_FRED_H
+#define ASM_X86_FRED_H
+
+#include <linux/const.h>
+
+#include <asm/asm.h>
+
+/*
+ * FRED event return instruction opcodes for ERET{S,U}; supported in
+ * binutils >= 2.41.
+ */
+#define ERETS			_ASM_BYTES(0xf2,0x0f,0x01,0xca)
+#define ERETU			_ASM_BYTES(0xf3,0x0f,0x01,0xca)
+
+/*
+ * RSP is aligned to a 64-byte boundary before used to push a new stack frame
+ */
+#define FRED_STACK_FRAME_RSP_MASK	_AT(unsigned long, (~0x3f))
+
+/*
+ * Used for the return address for call emulation during code patching,
+ * and measured in 64-byte cache lines.
+ */
+#define FRED_CONFIG_REDZONE_AMOUNT	1
+#define FRED_CONFIG_REDZONE		(_AT(unsigned long, FRED_CONFIG_REDZONE_AMOUNT) << 6)
+#define FRED_CONFIG_INT_STKLVL(l)	(_AT(unsigned long, l) << 9)
+#define FRED_CONFIG_ENTRYPOINT(p)	_AT(unsigned long, (p))
+
+#ifndef __ASSEMBLY__
+
+#ifdef CONFIG_X86_FRED
+#include <linux/kernel.h>
+
+#include <asm/ptrace.h>
+
+struct fred_info {
+	/* Event data: CR2, DR6, ... */
+	unsigned long edata;
+	unsigned long resv;
+};
+
+/* Full format of the FRED stack frame */
+struct fred_frame {
+	struct pt_regs   regs;
+	struct fred_info info;
+};
+
+static __always_inline struct fred_info *fred_info(struct pt_regs *regs)
+{
+	return &container_of(regs, struct fred_frame, regs)->info;
+}
+
+static __always_inline unsigned long fred_event_data(struct pt_regs *regs)
+{
+	return fred_info(regs)->edata;
+}
+
+#else /* CONFIG_X86_FRED */
+static __always_inline unsigned long fred_event_data(struct pt_regs *regs) { return 0; }
+#endif /* CONFIG_X86_FRED */
+#endif /* !__ASSEMBLY__ */
+
+#endif /* ASM_X86_FRED_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:32:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:32:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647640.1011089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATfD-0005e9-Ny; Tue, 05 Dec 2023 11:32:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647640.1011089; Tue, 05 Dec 2023 11:32:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATfD-0005e1-LN; Tue, 05 Dec 2023 11:32:31 +0000
Received: by outflank-mailman (input) for mailman id 647640;
 Tue, 05 Dec 2023 11:32:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUi-0003dP-Ua
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:40 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71f49636-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:33 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:23 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:22 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71f49636-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775294; x=1733311294;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=g+1BPOHGWOCmAN2ihj8vafw+Z+qq/YZJt19PCQv0I50=;
  b=euize58b3+7zzzajc7N/1k2fn0/RgfENL6arpP8W6UwPv/v4C5FXDDd+
   W6Bef4K2VA7bAaJmcoNs48CO3yN1c27GcYTgelLsd65/A/Ej2GAlJNb1I
   bUdz57dA9V7r2PSvog4CZr69kthonFnuFbf6dWxKntRfwge9FZrJQxj+J
   AHrNwIcHl1/F8uJ9X/TUXI+s+JMBfu9svRmz2uEruR5bb4i4SmX3gtsjR
   aH8/ZjLmbueTaDqvWfYgv+Chdb8lJywoooN/Y0b6sx0swJj+aeA+Nl47G
   z83pfhUhHdEk40l2eyjIwdWJGF2wsqP//h0ubXkE6n8X3C1Ys45FicRbv
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942539"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942539"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192968"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192968"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 20/35] x86/fred: Allow single-step trap and NMI when starting a new task
Date: Tue,  5 Dec 2023 02:50:09 -0800
Message-ID: <20231205105030.8698-21-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Entering a new task is logically speaking a return from a system call
(exec, fork, clone, etc.). As such, if ptrace enables single stepping
a single step exception should be allowed to trigger immediately upon
entering user space. This is not optional.

NMI should *never* be disabled in user space. As such, this is an
optional, opportunistic way to catch errors.

Allow single-step trap and NMI when starting a new task, thus once
the new task enters user space, single-step trap and NMI are both
enabled immediately.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v8:
* Use high-order 48 bits above the lowest 16 bit SS only when FRED
  is enabled (Thomas Gleixner).
---
 arch/x86/kernel/process_64.c | 38 ++++++++++++++++++++++++++++++------
 1 file changed, 32 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 7f66c0b14de6..7062b84dd467 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -56,6 +56,7 @@
 #include <asm/resctrl.h>
 #include <asm/unistd.h>
 #include <asm/fsgsbase.h>
+#include <asm/fred.h>
 #ifdef CONFIG_IA32_EMULATION
 /* Not included via unistd.h */
 #include <asm/unistd_32_ia32.h>
@@ -528,7 +529,7 @@ void x86_gsbase_write_task(struct task_struct *task, unsigned long gsbase)
 static void
 start_thread_common(struct pt_regs *regs, unsigned long new_ip,
 		    unsigned long new_sp,
-		    unsigned int _cs, unsigned int _ss, unsigned int _ds)
+		    u16 _cs, u16 _ss, u16 _ds)
 {
 	WARN_ON_ONCE(regs != current_pt_regs());
 
@@ -545,11 +546,36 @@ start_thread_common(struct pt_regs *regs, unsigned long new_ip,
 	loadsegment(ds, _ds);
 	load_gs_index(0);
 
-	regs->ip		= new_ip;
-	regs->sp		= new_sp;
-	regs->cs		= _cs;
-	regs->ss		= _ss;
-	regs->flags		= X86_EFLAGS_IF;
+	regs->ip	= new_ip;
+	regs->sp	= new_sp;
+	regs->csx	= _cs;
+	regs->ssx	= _ss;
+	/*
+	 * Allow single-step trap and NMI when starting a new task, thus
+	 * once the new task enters user space, single-step trap and NMI
+	 * are both enabled immediately.
+	 *
+	 * Entering a new task is logically speaking a return from a
+	 * system call (exec, fork, clone, etc.). As such, if ptrace
+	 * enables single stepping a single step exception should be
+	 * allowed to trigger immediately upon entering user space.
+	 * This is not optional.
+	 *
+	 * NMI should *never* be disabled in user space. As such, this
+	 * is an optional, opportunistic way to catch errors.
+	 *
+	 * Paranoia: High-order 48 bits above the lowest 16 bit SS are
+	 * discarded by the legacy IRET instruction on all Intel, AMD,
+	 * and Cyrix/Centaur/VIA CPUs, thus can be set unconditionally,
+	 * even when FRED is not enabled. But we choose the safer side
+	 * to use these bits only when FRED is enabled.
+	 */
+	if (cpu_feature_enabled(X86_FEATURE_FRED)) {
+		regs->fred_ss.swevent	= true;
+		regs->fred_ss.nmi	= true;
+	}
+
+	regs->flags	= X86_EFLAGS_IF | X86_EFLAGS_FIXED;
 }
 
 void
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:32:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:32:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647642.1011100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATfL-0005xy-0B; Tue, 05 Dec 2023 11:32:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647642.1011100; Tue, 05 Dec 2023 11:32:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATfK-0005xr-Tj; Tue, 05 Dec 2023 11:32:38 +0000
Received: by outflank-mailman (input) for mailman id 647642;
 Tue, 05 Dec 2023 11:32:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUo-0003dP-V4
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:46 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73bfcde9-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:36 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:26 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:24 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73bfcde9-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775297; x=1733311297;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=WNry4Fzy15Ftidcudz/wq0ei+oIMjP7Ry/4o5mJqLAU=;
  b=jlqDFujMN9L0jJmBdfd6DccH5f6z5n5kIBh+TUJcZUiXB2UdN9UVlX+J
   8KmczzdBv1mO17opiTUfvn6EGzDKx4TFuVhhg4e3T6nqVIwfZ7O9YCqnQ
   bH8TFOqb2phyRDTAPQ0vVRSF73x3IdLqi98eBywpClKcPffym2TYWjjJJ
   ItzZhi5CZm0ohVjAfSo+nRc66LEp/d9kr3BszfK8gZvP9TKgU6tr+4lJc
   uxcEbWH02Z15sd8KMO3ojWtbj0tCFWMgy1LvbIl/UuU1gipdJQjTBdyAW
   ayDQ9pvSA7Zn3Bt3xYMKarB1EFTMCf3iCx+qUU9+a6LUVqR4IXgIsf9VW
   Q==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942646"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942646"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192998"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192998"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 28/35] x86/fred: Let ret_from_fork_asm() jmp to asm_fred_exit_user when FRED is enabled
Date: Tue,  5 Dec 2023 02:50:17 -0800
Message-ID: <20231205105030.8698-29-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Let ret_from_fork_asm() jmp to asm_fred_exit_user when FRED is enabled,
otherwise the existing IDT code is chosen.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/entry/entry_64.S      | 6 ++++++
 arch/x86/entry/entry_64_fred.S | 1 +
 2 files changed, 7 insertions(+)

diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 5a1660701623..87d817296dcb 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -247,7 +247,13 @@ SYM_CODE_START(ret_from_fork_asm)
 	 * and unwind should work normally.
 	 */
 	UNWIND_HINT_REGS
+
+#ifdef CONFIG_X86_FRED
+	ALTERNATIVE "jmp swapgs_restore_regs_and_return_to_usermode", \
+		    "jmp asm_fred_exit_user", X86_FEATURE_FRED
+#else
 	jmp	swapgs_restore_regs_and_return_to_usermode
+#endif
 SYM_CODE_END(ret_from_fork_asm)
 .popsection
 
diff --git a/arch/x86/entry/entry_64_fred.S b/arch/x86/entry/entry_64_fred.S
index 37a1dd5e8ace..5781c3411b44 100644
--- a/arch/x86/entry/entry_64_fred.S
+++ b/arch/x86/entry/entry_64_fred.S
@@ -32,6 +32,7 @@
 SYM_CODE_START_NOALIGN(asm_fred_entrypoint_user)
 	FRED_ENTER
 	call	fred_entry_from_user
+SYM_INNER_LABEL(asm_fred_exit_user, SYM_L_GLOBAL)
 	FRED_EXIT
 	ERETU
 SYM_CODE_END(asm_fred_entrypoint_user)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:33:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:33:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647648.1011110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATfq-0006nZ-AB; Tue, 05 Dec 2023 11:33:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647648.1011110; Tue, 05 Dec 2023 11:33:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATfq-0006nS-68; Tue, 05 Dec 2023 11:33:10 +0000
Received: by outflank-mailman (input) for mailman id 647648;
 Tue, 05 Dec 2023 11:33:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUr-0003dP-VP
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:49 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74bba901-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:38 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:27 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:25 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74bba901-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775299; x=1733311299;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=p+DpQXfFjluhEPpBgGqFegRQUmj2AdYX7lnZ9lGR9vg=;
  b=TI+bMRht9g89dUAdmHviwWlrkw4v/mjOpYCuCmid7+QnETIhps+bgRqL
   KuxU4xl1ONqRMoJCXvxCDY5DyCT2k8PzJyReL5hP4C6q7xIo4c1uyByk6
   I1cJFT00UNeKTtHuv/yKCmT3H8ZJKp52BbYontaKQd606P8M9as2oIYfl
   gNGQBuO1hQx+G0oQAU9it/UR049Jvs6dWTEDtmz6BHKpV5fkkJBdRoTUJ
   PSJNCF7MRgMlYYEPpdCJFMK5uloQQ9VeQXDIV5rYHGZ0xIbrYhOgP4AzF
   LnrZHOGkXZ/UxAz0TQ/mn1xrNpz13V7AqXzs5yD7+TKKNigxq5jkvju92
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942682"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942682"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018193009"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018193009"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 31/35] x86/entry: Add fred_entry_from_kvm() for VMX to handle IRQ/NMI
Date: Tue,  5 Dec 2023 02:50:20 -0800
Message-ID: <20231205105030.8698-32-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In IRQ/NMI induced VM exits, KVM VMX needs to execute the respective
handlers, which requires the software to create a FRED stack frame,
and use it to invoke the handlers. Add fred_irq_entry_from_kvm() for
this job.

Export fred_entry_from_kvm() because VMX can be compiled as a module.

Suggested-by: Sean Christopherson <seanjc@google.com>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v10:
* Better explain the reason why no need to check current stack level
  (Paolo Bonzini).

Changes since v9:
* Shove the whole thing into arch/x86/entry/entry_64_fred.S for invoking
  external_interrupt() and fred_exc_nmi() (Sean Christopherson).
* Correct and improve a few comments (Sean Christopherson).
* Merge the two IRQ/NMI asm entries into one as it's fine to invoke
  noinstr code from regular code (Thomas Gleixner).
* Setup the long mode and NMI flags in the augmented SS field of FRED
  stack frame in C instead of asm (Thomas Gleixner).
* Add UNWIND_HINT_{SAVE,RESTORE} to get rid of the warning: "objtool:
  asm_fred_entry_from_kvm+0x0: unreachable instruction" (Peter Zijlstra).

Changes since v8:
* Add a new macro VMX_DO_FRED_EVENT_IRQOFF for FRED instead of
  refactoring VMX_DO_EVENT_IRQOFF (Sean Christopherson).
* Do NOT use a trampoline, just LEA+PUSH the return RIP, PUSH the error
  code, and jump to the FRED kernel entry point for NMI or call
  external_interrupt() for IRQs (Sean Christopherson).
* Call external_interrupt() only when FRED is enabled, and convert the
  non-FRED handling to external_interrupt() after FRED lands (Sean
  Christopherson).
---
 arch/x86/entry/entry_64_fred.S | 77 ++++++++++++++++++++++++++++++++++
 arch/x86/entry/entry_fred.c    | 14 +++++++
 arch/x86/include/asm/fred.h    | 18 ++++++++
 3 files changed, 109 insertions(+)

diff --git a/arch/x86/entry/entry_64_fred.S b/arch/x86/entry/entry_64_fred.S
index d1c2fc4af8ae..eedf98de7538 100644
--- a/arch/x86/entry/entry_64_fred.S
+++ b/arch/x86/entry/entry_64_fred.S
@@ -3,8 +3,11 @@
  * The actual FRED entry points.
  */
 
+#include <linux/export.h>
+
 #include <asm/asm.h>
 #include <asm/fred.h>
+#include <asm/segment.h>
 
 #include "calling.h"
 
@@ -54,3 +57,77 @@ SYM_CODE_START_NOALIGN(asm_fred_entrypoint_kernel)
 	FRED_EXIT
 	ERETS
 SYM_CODE_END(asm_fred_entrypoint_kernel)
+
+#if IS_ENABLED(CONFIG_KVM_INTEL)
+SYM_FUNC_START(asm_fred_entry_from_kvm)
+	push %rbp
+	mov %rsp, %rbp
+
+	UNWIND_HINT_SAVE
+
+	/*
+	 * Both IRQ and NMI from VMX can be handled on current task stack
+	 * because there is no need to protect from reentrancy and the call
+	 * stack leading to this helper is effectively constant and shallow
+	 * (relatively speaking). Do the same when FRED is active, i.e., no
+	 * need to check current stack level for a stack switch.
+	 *
+	 * Emulate the FRED-defined redzone and stack alignment.
+	 */
+	sub $(FRED_CONFIG_REDZONE_AMOUNT << 6), %rsp
+	and $FRED_STACK_FRAME_RSP_MASK, %rsp
+
+	/*
+	 * Start to push a FRED stack frame, which is always 64 bytes:
+	 *
+	 * +--------+-----------------+
+	 * | Bytes  | Usage           |
+	 * +--------+-----------------+
+	 * | 63:56  | Reserved        |
+	 * | 55:48  | Event Data      |
+	 * | 47:40  | SS + Event Info |
+	 * | 39:32  | RSP             |
+	 * | 31:24  | RFLAGS          |
+	 * | 23:16  | CS + Aux Info   |
+	 * |  15:8  | RIP             |
+	 * |   7:0  | Error Code      |
+	 * +--------+-----------------+
+	 */
+	push $0				/* Reserved, must be 0 */
+	push $0				/* Event data, 0 for IRQ/NMI */
+	push %rdi			/* fred_ss handed in by the caller */
+	push %rbp
+	pushf
+	mov $__KERNEL_CS, %rax
+	push %rax
+
+	/*
+	 * Unlike the IDT event delivery, FRED _always_ pushes an error code
+	 * after pushing the return RIP, thus the CALL instruction CANNOT be
+	 * used here to push the return RIP, otherwise there is no chance to
+	 * push an error code before invoking the IRQ/NMI handler.
+	 *
+	 * Use LEA to get the return RIP and push it, then push an error code.
+	 */
+	lea 1f(%rip), %rax
+	push %rax				/* Return RIP */
+	push $0					/* Error code, 0 for IRQ/NMI */
+
+	PUSH_AND_CLEAR_REGS clear_bp=0 unwind_hint=0
+	movq %rsp, %rdi				/* %rdi -> pt_regs */
+	call __fred_entry_from_kvm		/* Call the C entry point */
+	POP_REGS
+	ERETS
+1:
+	/*
+	 * Objtool doesn't understand what ERETS does, this hint tells it that
+	 * yes, we'll reach here and with what stack state. A save/restore pair
+	 * isn't strictly needed, but it's the simplest form.
+	 */
+	UNWIND_HINT_RESTORE
+	pop %rbp
+	RET
+
+SYM_FUNC_END(asm_fred_entry_from_kvm)
+EXPORT_SYMBOL_GPL(asm_fred_entry_from_kvm);
+#endif
diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c
index e80e3efbc057..3e33a4ab4624 100644
--- a/arch/x86/entry/entry_fred.c
+++ b/arch/x86/entry/entry_fred.c
@@ -242,3 +242,17 @@ __visible noinstr void fred_entry_from_kernel(struct pt_regs *regs)
 		return fred_bad_type(regs, error_code);
 	}
 }
+
+#if IS_ENABLED(CONFIG_KVM_INTEL)
+__visible noinstr void __fred_entry_from_kvm(struct pt_regs *regs)
+{
+	switch (regs->fred_ss.type) {
+	case EVENT_TYPE_EXTINT:
+		return fred_extint(regs);
+	case EVENT_TYPE_NMI:
+		return fred_exc_nmi(regs);
+	default:
+		WARN_ON_ONCE(1);
+	}
+}
+#endif
diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index 16a64ffecbf8..2fa9f34e5c95 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -9,6 +9,7 @@
 #include <linux/const.h>
 
 #include <asm/asm.h>
+#include <asm/trapnr.h>
 
 /*
  * FRED event return instruction opcodes for ERET{S,U}; supported in
@@ -62,12 +63,29 @@ static __always_inline unsigned long fred_event_data(struct pt_regs *regs)
 
 void asm_fred_entrypoint_user(void);
 void asm_fred_entrypoint_kernel(void);
+void asm_fred_entry_from_kvm(struct fred_ss);
 
 __visible void fred_entry_from_user(struct pt_regs *regs);
 __visible void fred_entry_from_kernel(struct pt_regs *regs);
+__visible void __fred_entry_from_kvm(struct pt_regs *regs);
+
+/* Can be called from noinstr code, thus __always_inline */
+static __always_inline void fred_entry_from_kvm(unsigned int type, unsigned int vector)
+{
+	struct fred_ss ss = {
+		.ss     =__KERNEL_DS,
+		.type   = type,
+		.vector = vector,
+		.nmi    = type == EVENT_TYPE_NMI,
+		.lm     = 1,
+	};
+
+	asm_fred_entry_from_kvm(ss);
+}
 
 #else /* CONFIG_X86_FRED */
 static __always_inline unsigned long fred_event_data(struct pt_regs *regs) { return 0; }
+static __always_inline void fred_entry_from_kvm(unsigned int type, unsigned int vector) { }
 #endif /* CONFIG_X86_FRED */
 #endif /* !__ASSEMBLY__ */
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:34:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647653.1011130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATgr-0007xg-PR; Tue, 05 Dec 2023 11:34:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647653.1011130; Tue, 05 Dec 2023 11: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 1rATgr-0007xV-MW; Tue, 05 Dec 2023 11:34:13 +0000
Received: by outflank-mailman (input) for mailman id 647653;
 Tue, 05 Dec 2023 11:34: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUg-0003dP-UR
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:38 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 706219f1-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:31 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:22 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:20 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 706219f1-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775292; x=1733311292;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=rAnyLosJqaaOHxof3xhnPHEJruwr0RNdRmdgUfbYES8=;
  b=MPPIMS8y8/fSi2JeoQSP015mOeWEtityefHWgUD5TvTQ1uPHSH42oXvB
   4b2AMG/IxweURv/cyydy2b8xxKTDOh7RtrVIDIZ2i+rci0tyRNoDysASk
   XY4NBx80IM0lRqRXB5BekVMIHtKjvLSDgzGo0DpmQnJ7WdxlUSISKtHA4
   VsPbFvy6szRhKTULsgL8OVdG60ajI1MOq7MAur4ZWu6wrKzbeyPnn0XzZ
   e+/XFouYgBmfkOe31qNWUAwFpnhCWLqga5ix8F52tKorXY6weP6PslR5A
   OR4Fe1EM00221Ecc/tcaruMAqPAwpTRklahq+jOqjdTF3tx5ldGEa+Y1b
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942501"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942501"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192953"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192953"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 16/35] x86/fred: Reserve space for the FRED stack frame
Date: Tue,  5 Dec 2023 02:50:05 -0800
Message-ID: <20231205105030.8698-17-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

When using FRED, reserve space at the top of the stack frame, just
like i386 does.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---
 arch/x86/include/asm/thread_info.h | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
index d63b02940747..12da7dfd5ef1 100644
--- a/arch/x86/include/asm/thread_info.h
+++ b/arch/x86/include/asm/thread_info.h
@@ -31,7 +31,9 @@
  * In vm86 mode, the hardware frame is much longer still, so add 16
  * bytes to make room for the real-mode segments.
  *
- * x86_64 has a fixed-length stack frame.
+ * x86-64 has a fixed-length stack frame, but it depends on whether
+ * or not FRED is enabled. Future versions of FRED might make this
+ * dynamic, but for now it is always 2 words longer.
  */
 #ifdef CONFIG_X86_32
 # ifdef CONFIG_VM86
@@ -39,8 +41,12 @@
 # else
 #  define TOP_OF_KERNEL_STACK_PADDING 8
 # endif
-#else
-# define TOP_OF_KERNEL_STACK_PADDING 0
+#else /* x86-64 */
+# ifdef CONFIG_X86_FRED
+#  define TOP_OF_KERNEL_STACK_PADDING (2 * 8)
+# else
+#  define TOP_OF_KERNEL_STACK_PADDING 0
+# endif
 #endif
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:34:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647651.1011121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATgq-0007ii-Jl; Tue, 05 Dec 2023 11:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647651.1011121; Tue, 05 Dec 2023 11: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 1rATgq-0007ib-F9; Tue, 05 Dec 2023 11:34:12 +0000
Received: by outflank-mailman (input) for mailman id 647651;
 Tue, 05 Dec 2023 11: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUm-0003dP-Us
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:44 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7350f7e4-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:36 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:25 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:23 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7350f7e4-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775297; x=1733311297;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=9l8F1WmhlJ7jRL54JQMm6v1HYP6GXYsOB2qRuf6ZAIU=;
  b=O9MIXii0i+RBpyZqynEC0q3ye+WYl3Ns6mOdYaKYj7I+9Wc1eosyxN45
   uJqZ1dfRsAElj2xkzae3v6nkSjpI8wsgeDY9LPuGenZoRvZhHHymAgkeZ
   jPQ5MyzMVxQx0kvZ/ysH6wNtPAjceU958ukxKPVyUt56jvA0bVaR6NgaJ
   FsGDlv6JzRkVb6xI1NnS/C1R87pWFGSUiD+V9ii2PcBgCLXT5Uc7hLzDB
   UaBX3fHOZq24sa0JbPLFJqbytioYwOqUR4QZyLNzFSsx+bZn5+JlDaG+Z
   ZVATRGsRhBgCB0Urdca1Kgw20e0BO7Nw2zRJbsxBjBJ70oShkm5VWL5vu
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942608"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942608"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192988"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192988"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 25/35] x86/fred: Add a machine check entry stub for FRED
Date: Tue,  5 Dec 2023 02:50:14 -0800
Message-ID: <20231205105030.8698-26-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Like #DB, when occurred on different ring level, i.e., from user or kernel
context, #MCE needs to be handled on different stack: User #MCE on current
task stack, while kernel #MCE on a dedicated stack.

This is exactly how FRED event delivery invokes an exception handler: ring
3 event on level 0 stack, i.e., current task stack; ring 0 event on the
#MCE dedicated stack specified in the IA32_FRED_STKLVLS MSR. So unlike IDT,
the FRED machine check entry stub doesn't do stack switch.

Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v5:
* Disallow #DB inside #MCE for robustness sake (Peter Zijlstra).
---
 arch/x86/kernel/cpu/mce/core.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 1642018dd6c9..d524eb87f76c 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -53,6 +53,7 @@
 #include <asm/mce.h>
 #include <asm/msr.h>
 #include <asm/reboot.h>
+#include <asm/fred.h>
 
 #include "internal.h"
 
@@ -2150,6 +2151,31 @@ DEFINE_IDTENTRY_MCE_USER(exc_machine_check)
 	exc_machine_check_user(regs);
 	local_db_restore(dr7);
 }
+
+#ifdef CONFIG_X86_FRED
+/*
+ * When occurred on different ring level, i.e., from user or kernel
+ * context, #MCE needs to be handled on different stack: User #MCE
+ * on current task stack, while kernel #MCE on a dedicated stack.
+ *
+ * This is exactly how FRED event delivery invokes an exception
+ * handler: ring 3 event on level 0 stack, i.e., current task stack;
+ * ring 0 event on the #MCE dedicated stack specified in the
+ * IA32_FRED_STKLVLS MSR. So unlike IDT, the FRED machine check entry
+ * stub doesn't do stack switch.
+ */
+DEFINE_FREDENTRY_MCE(exc_machine_check)
+{
+	unsigned long dr7;
+
+	dr7 = local_db_save();
+	if (user_mode(regs))
+		exc_machine_check_user(regs);
+	else
+		exc_machine_check_kernel(regs);
+	local_db_restore(dr7);
+}
+#endif
 #else
 /* 32bit unified entry point */
 DEFINE_IDTENTRY_RAW(exc_machine_check)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:34:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:34:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647654.1011140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATgw-0008Km-5B; Tue, 05 Dec 2023 11:34:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647654.1011140; Tue, 05 Dec 2023 11: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 1rATgw-0008Kb-1W; Tue, 05 Dec 2023 11:34:18 +0000
Received: by outflank-mailman (input) for mailman id 647654;
 Tue, 05 Dec 2023 11:34:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUe-0003dP-U0
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:36 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70277cb5-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:30 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:21 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:20 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70277cb5-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775291; x=1733311291;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=FnZS/yD0JeHn5+eEO+y+LbIbxiSvYr0DpCCKe3lA/lE=;
  b=dOqMZishECIM5u8mqdTaA5W0QMzgdJhG+ruUXCz5sbjg+rI2I2vTGZ6E
   6Y/d55Od6UXV8AjSusr4NsUezxO5fNQLBrJV6vTlNqjoEZQ4SMlLDC7lz
   rGMobIfYKQJOAuuDUO7p591sKAMcE7tt6sJHpwIzAZ7+77PRr7WtARZnK
   G2AK8NsFuxeh0yfxQuKY/vm/VrmPl+YF5pO7c1RiHoeo4vtmxMRyefeBO
   SdLbIYPXM2xqLgG3KZscIGeMCIbpMYyALnu/PBisATOMfiQr7ZdGGLlvF
   IrwoSpZd5qU0vjYpjASkPk7pSEkDTnDW8su5NjRk2qXi8vCYBXWtZML3k
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942475"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942475"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192946"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192946"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 14/35] x86/ptrace: Add FRED additional information to the pt_regs structure
Date: Tue,  5 Dec 2023 02:50:03 -0800
Message-ID: <20231205105030.8698-15-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FRED defines additional information in the upper 48 bits of cs/ss
fields. Therefore add the information definitions into the pt_regs
structure.

Specially introduce a new structure fred_ss to denote the FRED flags
above SS selector, which avoids FRED_SSX_ macros and makes the code
simpler and easier to read.

Originally-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Change since v11:
* Add a new structure fred_cs to denote the FRED flags above CS
  selector as what is done for SS (H. Peter Anvin).

Changes since v9:
* Introduce a new structure fred_ss to denote the FRED flags above SS
  selector, which avoids FRED_SSX_ macros and makes the code simpler
  and easier to read (Thomas Gleixner).
* Use type u64 to define FRED bit fields instead of type unsigned int
  (Thomas Gleixner).

Changes since v8:
* Reflect stack frame definition changes from FRED spec 3.0 to 5.0.
* Use __packed instead of __attribute__((__packed__)) (Borislav Petkov).
* Put all comments above the members, like the rest of the file does
  (Borislav Petkov).

Changes since v3:
* Rename csl/ssl of the pt_regs structure to csx/ssx (x for extended)
  (Andrew Cooper).
---
 arch/x86/include/asm/ptrace.h | 66 ++++++++++++++++++++++++++++++++---
 1 file changed, 61 insertions(+), 5 deletions(-)

diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index b268cd2a2d01..5a83fbd9bc0b 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -56,6 +56,50 @@ struct pt_regs {
 
 #else /* __i386__ */
 
+struct fred_cs {
+		/* CS selector */
+	u64	cs	: 16,
+		/* Stack level at event time */
+		sl	:  2,
+		/* IBT in WAIT_FOR_ENDBRANCH state */
+		wfe	:  1,
+			: 45;
+};
+
+struct fred_ss {
+		/* SS selector */
+	u64	ss	: 16,
+		/* STI state */
+		sti	:  1,
+		/* Set if syscall, sysenter or INT n */
+		swevent	:  1,
+		/* Event is NMI type */
+		nmi	:  1,
+			: 13,
+		/* Event vector */
+		vector	:  8,
+			:  8,
+		/* Event type */
+		type	:  4,
+			:  4,
+		/* Event was incident to enclave execution */
+		enclave	:  1,
+		/* CPU was in long mode */
+		lm	:  1,
+		/*
+		 * Nested exception during FRED delivery, not set
+		 * for #DF.
+		 */
+		nested	:  1,
+			:  1,
+		/*
+		 * The length of the instruction causing the event.
+		 * Only set for INTO, INT1, INT3, INT n, SYSCALL
+		 * and SYSENTER.  0 otherwise.
+		 */
+		insnlen	:  4;
+};
+
 struct pt_regs {
 	/*
 	 * C ABI says these regs are callee-preserved. They aren't saved on
@@ -85,6 +129,12 @@ struct pt_regs {
 	 * - the syscall number (syscall, sysenter, int80)
 	 * - error_code stored by the CPU on traps and exceptions
 	 * - the interrupt number for device interrupts
+	 *
+	 * A FRED stack frame starts here:
+	 *   1) It _always_ includes an error code;
+	 *
+	 *   2) The return frame for ERET[US] starts here, but
+	 *      the content of orig_ax is ignored.
 	 */
 	unsigned long orig_ax;
 
@@ -92,24 +142,30 @@ struct pt_regs {
 	unsigned long ip;
 
 	union {
-		/* The full 64-bit data slot containing CS */
-		u64		csx;
 		/* CS selector */
 		u16		cs;
+		/* The extended 64-bit data slot containing CS */
+		u64		csx;
+		/* The FRED CS extension */
+		struct fred_cs	fred_cs;
 	};
 
 	unsigned long flags;
 	unsigned long sp;
 
 	union {
-		/* The full 64-bit data slot containing SS */
-		u64		ssx;
 		/* SS selector */
 		u16		ss;
+		/* The extended 64-bit data slot containing SS */
+		u64		ssx;
+		/* The FRED SS extension */
+		struct fred_ss	fred_ss;
 	};
 
 	/*
-	 * Top of stack on IDT systems.
+	 * Top of stack on IDT systems, while FRED systems have extra fields
+	 * defined above for storing exception related information, e.g. CR2 or
+	 * DR6.
 	 */
 };
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:34:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:34:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647657.1011149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATh6-0000Z7-BZ; Tue, 05 Dec 2023 11:34:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647657.1011149; Tue, 05 Dec 2023 11:34:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATh6-0000Yz-8p; Tue, 05 Dec 2023 11:34:28 +0000
Received: by outflank-mailman (input) for mailman id 647657;
 Tue, 05 Dec 2023 11:34: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUk-0003dP-Ul
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:42 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71f72086-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:33 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:24 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:22 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71f72086-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775294; x=1733311294;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=0d3DQGm/I5ml9Pn9RDXaRIVibuYwsK2Hzyh1Rbxiqo8=;
  b=f4ZcupoRpybK9ORpKfHT4iN/IRTwpbYpWh5zmmvRJsPENQlKK6Eo3d14
   tylWxPJxN6zqTkCTFuR9LuJdVyemMK1xe7U78bNomNzcLm0Np/egwLdCL
   ad+qJW8MLPZ9uynrCC7LaQS1LVhkv033cc9JJHOAYJXAUQmyq7ZLVh836
   VtqB7q851Wr2+tEZGsR4LT+wBKg9uVuteDE9b64a059aCkCD7xP2Vcfvd
   zLLxBrGuZaMZV+9yydiwbLfK4d4omntuUEQwMIHUwfVEHCPFuhX2VKGuI
   GFNkgRL2K/fj+Sg0Sr8xGeABqPB1p8AZpRjjlUjHNnCoEruazKlWpDyGB
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942571"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942571"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018192976"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018192976"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 22/35] x86/idtentry: Incorporate definitions/declarations of the FRED entries
Date: Tue,  5 Dec 2023 02:50:11 -0800
Message-ID: <20231205105030.8698-23-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FRED and IDT can share most of the definitions and declarations so
that in the majority of cases the actual handler implementation is the
same.

The differences are the exceptions where FRED stores exception related
information on the stack and the sysvec implementations as FRED can
handle irqentry/exit() in the dispatcher instead of having it in each
handler.

Also add stub defines for vectors which are not used due to Kconfig
decisions to spare the ifdeffery in the actual FRED dispatch code.

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Change since v9:
* Except NMI/#DB/#MCE, FRED really should share the exception handlers
  with IDT (Thomas Gleixner).

Change since v8:
* Put IDTENTRY changes in a separate patch (Thomas Gleixner).
---
 arch/x86/include/asm/idtentry.h | 71 +++++++++++++++++++++++++++++----
 1 file changed, 63 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/idtentry.h b/arch/x86/include/asm/idtentry.h
index cfca68f6cb84..4f26ee9b8b74 100644
--- a/arch/x86/include/asm/idtentry.h
+++ b/arch/x86/include/asm/idtentry.h
@@ -13,15 +13,18 @@
 
 #include <asm/irq_stack.h>
 
+typedef void (*idtentry_t)(struct pt_regs *regs);
+
 /**
  * DECLARE_IDTENTRY - Declare functions for simple IDT entry points
  *		      No error code pushed by hardware
  * @vector:	Vector number (ignored for C)
  * @func:	Function name of the entry point
  *
- * Declares three functions:
+ * Declares four functions:
  * - The ASM entry point: asm_##func
  * - The XEN PV trap entry point: xen_##func (maybe unused)
+ * - The C handler called from the FRED event dispatcher (maybe unused)
  * - The C handler called from the ASM entry point
  *
  * Note: This is the C variant of DECLARE_IDTENTRY(). As the name says it
@@ -31,6 +34,7 @@
 #define DECLARE_IDTENTRY(vector, func)					\
 	asmlinkage void asm_##func(void);				\
 	asmlinkage void xen_asm_##func(void);				\
+	void fred_##func(struct pt_regs *regs);				\
 	__visible void func(struct pt_regs *regs)
 
 /**
@@ -137,6 +141,17 @@ static __always_inline void __##func(struct pt_regs *regs,		\
 #define DEFINE_IDTENTRY_RAW(func)					\
 __visible noinstr void func(struct pt_regs *regs)
 
+/**
+ * DEFINE_FREDENTRY_RAW - Emit code for raw FRED entry points
+ * @func:	Function name of the entry point
+ *
+ * @func is called from the FRED event dispatcher with interrupts disabled.
+ *
+ * See @DEFINE_IDTENTRY_RAW for further details.
+ */
+#define DEFINE_FREDENTRY_RAW(func)					\
+noinstr void fred_##func(struct pt_regs *regs)
+
 /**
  * DECLARE_IDTENTRY_RAW_ERRORCODE - Declare functions for raw IDT entry points
  *				    Error code pushed by hardware
@@ -233,17 +248,27 @@ static noinline void __##func(struct pt_regs *regs, u32 vector)
 #define DEFINE_IDTENTRY_SYSVEC(func)					\
 static void __##func(struct pt_regs *regs);				\
 									\
+static __always_inline void instr_##func(struct pt_regs *regs)		\
+{									\
+	kvm_set_cpu_l1tf_flush_l1d();					\
+	run_sysvec_on_irqstack_cond(__##func, regs);			\
+}									\
+									\
 __visible noinstr void func(struct pt_regs *regs)			\
 {									\
 	irqentry_state_t state = irqentry_enter(regs);			\
 									\
 	instrumentation_begin();					\
-	kvm_set_cpu_l1tf_flush_l1d();					\
-	run_sysvec_on_irqstack_cond(__##func, regs);			\
+	instr_##func (regs);						\
 	instrumentation_end();						\
 	irqentry_exit(regs, state);					\
 }									\
 									\
+void fred_##func(struct pt_regs *regs)					\
+{									\
+	instr_##func (regs);						\
+}									\
+									\
 static noinline void __##func(struct pt_regs *regs)
 
 /**
@@ -260,19 +285,29 @@ static noinline void __##func(struct pt_regs *regs)
 #define DEFINE_IDTENTRY_SYSVEC_SIMPLE(func)				\
 static __always_inline void __##func(struct pt_regs *regs);		\
 									\
-__visible noinstr void func(struct pt_regs *regs)			\
+static __always_inline void instr_##func(struct pt_regs *regs)		\
 {									\
-	irqentry_state_t state = irqentry_enter(regs);			\
-									\
-	instrumentation_begin();					\
 	__irq_enter_raw();						\
 	kvm_set_cpu_l1tf_flush_l1d();					\
 	__##func (regs);						\
 	__irq_exit_raw();						\
+}									\
+									\
+__visible noinstr void func(struct pt_regs *regs)			\
+{									\
+	irqentry_state_t state = irqentry_enter(regs);			\
+									\
+	instrumentation_begin();					\
+	instr_##func (regs);						\
 	instrumentation_end();						\
 	irqentry_exit(regs, state);					\
 }									\
 									\
+void fred_##func(struct pt_regs *regs)					\
+{									\
+	instr_##func (regs);						\
+}									\
+									\
 static __always_inline void __##func(struct pt_regs *regs)
 
 /**
@@ -410,15 +445,18 @@ __visible noinstr void func(struct pt_regs *regs,			\
 /* C-Code mapping */
 #define DECLARE_IDTENTRY_NMI		DECLARE_IDTENTRY_RAW
 #define DEFINE_IDTENTRY_NMI		DEFINE_IDTENTRY_RAW
+#define DEFINE_FREDENTRY_NMI		DEFINE_FREDENTRY_RAW
 
 #ifdef CONFIG_X86_64
 #define DECLARE_IDTENTRY_MCE		DECLARE_IDTENTRY_IST
 #define DEFINE_IDTENTRY_MCE		DEFINE_IDTENTRY_IST
 #define DEFINE_IDTENTRY_MCE_USER	DEFINE_IDTENTRY_NOIST
+#define DEFINE_FREDENTRY_MCE		DEFINE_FREDENTRY_RAW
 
 #define DECLARE_IDTENTRY_DEBUG		DECLARE_IDTENTRY_IST
 #define DEFINE_IDTENTRY_DEBUG		DEFINE_IDTENTRY_IST
 #define DEFINE_IDTENTRY_DEBUG_USER	DEFINE_IDTENTRY_NOIST
+#define DEFINE_FREDENTRY_DEBUG		DEFINE_FREDENTRY_RAW
 #endif
 
 #else /* !__ASSEMBLY__ */
@@ -651,23 +689,36 @@ DECLARE_IDTENTRY(RESCHEDULE_VECTOR,			sysvec_reschedule_ipi);
 DECLARE_IDTENTRY_SYSVEC(REBOOT_VECTOR,			sysvec_reboot);
 DECLARE_IDTENTRY_SYSVEC(CALL_FUNCTION_SINGLE_VECTOR,	sysvec_call_function_single);
 DECLARE_IDTENTRY_SYSVEC(CALL_FUNCTION_VECTOR,		sysvec_call_function);
+#else
+# define fred_sysvec_reschedule_ipi			NULL
+# define fred_sysvec_reboot				NULL
+# define fred_sysvec_call_function_single		NULL
+# define fred_sysvec_call_function			NULL
 #endif
 
 #ifdef CONFIG_X86_LOCAL_APIC
 # ifdef CONFIG_X86_MCE_THRESHOLD
 DECLARE_IDTENTRY_SYSVEC(THRESHOLD_APIC_VECTOR,		sysvec_threshold);
+# else
+# define fred_sysvec_threshold				NULL
 # endif
 
 # ifdef CONFIG_X86_MCE_AMD
 DECLARE_IDTENTRY_SYSVEC(DEFERRED_ERROR_VECTOR,		sysvec_deferred_error);
+# else
+# define fred_sysvec_deferred_error			NULL
 # endif
 
 # ifdef CONFIG_X86_THERMAL_VECTOR
 DECLARE_IDTENTRY_SYSVEC(THERMAL_APIC_VECTOR,		sysvec_thermal);
+# else
+# define fred_sysvec_thermal				NULL
 # endif
 
 # ifdef CONFIG_IRQ_WORK
 DECLARE_IDTENTRY_SYSVEC(IRQ_WORK_VECTOR,		sysvec_irq_work);
+# else
+# define fred_sysvec_irq_work				NULL
 # endif
 #endif
 
@@ -675,12 +726,16 @@ DECLARE_IDTENTRY_SYSVEC(IRQ_WORK_VECTOR,		sysvec_irq_work);
 DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_VECTOR,		sysvec_kvm_posted_intr_ipi);
 DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_WAKEUP_VECTOR,	sysvec_kvm_posted_intr_wakeup_ipi);
 DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_NESTED_VECTOR,	sysvec_kvm_posted_intr_nested_ipi);
+#else
+# define fred_sysvec_kvm_posted_intr_ipi		NULL
+# define fred_sysvec_kvm_posted_intr_wakeup_ipi		NULL
+# define fred_sysvec_kvm_posted_intr_nested_ipi		NULL
 #endif
 
 #if IS_ENABLED(CONFIG_HYPERV)
 DECLARE_IDTENTRY_SYSVEC(HYPERVISOR_CALLBACK_VECTOR,	sysvec_hyperv_callback);
 DECLARE_IDTENTRY_SYSVEC(HYPERV_REENLIGHTENMENT_VECTOR,	sysvec_hyperv_reenlightenment);
-DECLARE_IDTENTRY_SYSVEC(HYPERV_STIMER0_VECTOR,	sysvec_hyperv_stimer0);
+DECLARE_IDTENTRY_SYSVEC(HYPERV_STIMER0_VECTOR,		sysvec_hyperv_stimer0);
 #endif
 
 #if IS_ENABLED(CONFIG_ACRN_GUEST)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:36:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647668.1011159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATid-0002P7-M0; Tue, 05 Dec 2023 11:36:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647668.1011159; Tue, 05 Dec 2023 11:36:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATid-0002P0-JP; Tue, 05 Dec 2023 11:36:03 +0000
Received: by outflank-mailman (input) for mailman id 647668;
 Tue, 05 Dec 2023 11:36: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=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rATUu-0003dP-VZ
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:21:52 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 75364c9f-9360-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:21:39 +0100 (CET)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 03:21:28 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga006.fm.intel.com with ESMTP; 05 Dec 2023 03:21:26 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 75364c9f-9360-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701775300; x=1733311300;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=hUnJXd4Og3bi9hMQPhy7/57sMPohL9ggwF5nLer6ATE=;
  b=OHpBGf8SFQ+WAx0+UAC+kewWsQ7RDH/DV+V04Ys8LZyoyYKE6NaFSVPc
   1BTC+7u8B9zUrLutGnrESGCK8fNEOHdHiCiyzvFHgCEAhMI6+yEJ6CsMH
   YWPWRsPFK9EBRnWgh/ql9K8cTu8n/nMXYFBF1UVyZNdYLTahMmJytFdZA
   JaA/ASUgbpZDAcwYLUGihn40MtGzN1hBZoJgg/4UAYZw7E1fYaahbFT3g
   v1ESQpdIQAosxBygmOcR/USaZefmmEXqXmSoLwqoBxGBtomq9nEr4GI0d
   l+97fBPr35DjQAb0/3ZONmGdAMR+LnAbMd0gGB4Id/taasCJlotR0AA+k
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="942719"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="942719"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="1018193019"
X-IronPort-AV: E=Sophos;i="6.04,252,1695711600"; 
   d="scan'208";a="1018193019"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13 34/35] x86/fred: Add FRED initialization functions
Date: Tue,  5 Dec 2023 02:50:23 -0800
Message-ID: <20231205105030.8698-35-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231205105030.8698-1-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Add cpu_init_fred_exceptions() to:
  - Set FRED entrypoints for events happening in ring 0 and 3.
  - Specify the stack level for IRQs occurred ring 0.
  - Specify dedicated event stacks for #DB/NMI/#MCE/#DF.
  - Enable FRED and invalidtes IDT.
  - Force 32-bit system calls to use "int $0x80" only.

Add fred_complete_exception_setup() to:
  - Initialize system_vectors as done for IDT systems.
  - Set unused sysvec_table entries to fred_handle_spurious_interrupt().

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Co-developed-by: Xin Li <xin3.li@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v9:
* Set unused sysvec table entries to fred_handle_spurious_interrupt()
  in fred_complete_exception_setup() (Thomas Gleixner).

Changes since v5:
* Add a comment for FRED stack level settings (Lai Jiangshan).
* Define NMI/#DB/#MCE/#DF stack levels using macros.
---
 arch/x86/entry/entry_fred.c | 21 +++++++++++++
 arch/x86/include/asm/fred.h |  5 ++++
 arch/x86/kernel/Makefile    |  1 +
 arch/x86/kernel/fred.c      | 59 +++++++++++++++++++++++++++++++++++++
 4 files changed, 86 insertions(+)
 create mode 100644 arch/x86/kernel/fred.c

diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c
index 3e33a4ab4624..abe66d65fa2d 100644
--- a/arch/x86/entry/entry_fred.c
+++ b/arch/x86/entry/entry_fred.c
@@ -140,6 +140,27 @@ void __init fred_install_sysvec(unsigned int sysvec, idtentry_t handler)
 		 sysvec_table[sysvec - FIRST_SYSTEM_VECTOR] = handler;
 }
 
+static noinstr void fred_handle_spurious_interrupt(struct pt_regs *regs)
+{
+	spurious_interrupt(regs, regs->fred_ss.vector);
+}
+
+void __init fred_complete_exception_setup(void)
+{
+	unsigned int vector;
+
+	for (vector = 0; vector < FIRST_EXTERNAL_VECTOR; vector++)
+		set_bit(vector, system_vectors);
+
+	for (vector = 0; vector < NR_SYSTEM_VECTORS; vector++) {
+		if (sysvec_table[vector])
+			set_bit(vector + FIRST_SYSTEM_VECTOR, system_vectors);
+		else
+			sysvec_table[vector] = fred_handle_spurious_interrupt;
+	}
+	fred_setup_done = true;
+}
+
 static noinstr void fred_extint(struct pt_regs *regs)
 {
 	unsigned int vector = regs->fred_ss.vector;
diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index 2fa9f34e5c95..e86c7ba32435 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -83,8 +83,13 @@ static __always_inline void fred_entry_from_kvm(unsigned int type, unsigned int
 	asm_fred_entry_from_kvm(ss);
 }
 
+void cpu_init_fred_exceptions(void);
+void fred_complete_exception_setup(void);
+
 #else /* CONFIG_X86_FRED */
 static __always_inline unsigned long fred_event_data(struct pt_regs *regs) { return 0; }
+static inline void cpu_init_fred_exceptions(void) { }
+static inline void fred_complete_exception_setup(void) { }
 static __always_inline void fred_entry_from_kvm(unsigned int type, unsigned int vector) { }
 #endif /* CONFIG_X86_FRED */
 #endif /* !__ASSEMBLY__ */
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index 0000325ab98f..0dcbfc1a4c41 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -48,6 +48,7 @@ obj-y			+= platform-quirks.o
 obj-y			+= process_$(BITS).o signal.o signal_$(BITS).o
 obj-y			+= traps.o idt.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
 obj-y			+= time.o ioport.o dumpstack.o nmi.o
+obj-$(CONFIG_X86_FRED)	+= fred.o
 obj-$(CONFIG_MODIFY_LDT_SYSCALL)	+= ldt.o
 obj-$(CONFIG_X86_KERNEL_IBT)		+= ibt_selftest.o
 obj-y			+= setup.o x86_init.o i8259.o irqinit.o
diff --git a/arch/x86/kernel/fred.c b/arch/x86/kernel/fred.c
new file mode 100644
index 000000000000..4bcd8791ad96
--- /dev/null
+++ b/arch/x86/kernel/fred.c
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#include <linux/kernel.h>
+
+#include <asm/desc.h>
+#include <asm/fred.h>
+#include <asm/tlbflush.h>
+#include <asm/traps.h>
+
+/* #DB in the kernel would imply the use of a kernel debugger. */
+#define FRED_DB_STACK_LEVEL		1UL
+#define FRED_NMI_STACK_LEVEL		2UL
+#define FRED_MC_STACK_LEVEL		2UL
+/*
+ * #DF is the highest level because a #DF means "something went wrong
+ * *while delivering an exception*." The number of cases for which that
+ * can happen with FRED is drastically reduced and basically amounts to
+ * "the stack you pointed me to is broken." Thus, always change stacks
+ * on #DF, which means it should be at the highest level.
+ */
+#define FRED_DF_STACK_LEVEL		3UL
+
+#define FRED_STKLVL(vector, lvl)	((lvl) << (2 * (vector)))
+
+void cpu_init_fred_exceptions(void)
+{
+	/* When FRED is enabled by default, remove this log message */
+	pr_info("Initialize FRED on CPU%d\n", smp_processor_id());
+
+	wrmsrl(MSR_IA32_FRED_CONFIG,
+	       /* Reserve for CALL emulation */
+	       FRED_CONFIG_REDZONE |
+	       FRED_CONFIG_INT_STKLVL(0) |
+	       FRED_CONFIG_ENTRYPOINT(asm_fred_entrypoint_user));
+
+	/*
+	 * The purpose of separate stacks for NMI, #DB and #MC *in the kernel*
+	 * (remember that user space faults are always taken on stack level 0)
+	 * is to avoid overflowing the kernel stack.
+	 */
+	wrmsrl(MSR_IA32_FRED_STKLVLS,
+	       FRED_STKLVL(X86_TRAP_DB,  FRED_DB_STACK_LEVEL) |
+	       FRED_STKLVL(X86_TRAP_NMI, FRED_NMI_STACK_LEVEL) |
+	       FRED_STKLVL(X86_TRAP_MC,  FRED_MC_STACK_LEVEL) |
+	       FRED_STKLVL(X86_TRAP_DF,  FRED_DF_STACK_LEVEL));
+
+	/* The FRED equivalents to IST stacks... */
+	wrmsrl(MSR_IA32_FRED_RSP1, __this_cpu_ist_top_va(DB));
+	wrmsrl(MSR_IA32_FRED_RSP2, __this_cpu_ist_top_va(NMI));
+	wrmsrl(MSR_IA32_FRED_RSP3, __this_cpu_ist_top_va(DF));
+
+	/* Enable FRED */
+	cr4_set_bits(X86_CR4_FRED);
+	/* Any further IDT use is a bug */
+	idt_invalidate();
+
+	/* Use int $0x80 for 32-bit system calls in FRED mode */
+	setup_clear_cpu_cap(X86_FEATURE_SYSENTER32);
+	setup_clear_cpu_cap(X86_FEATURE_SYSCALL32);
+}
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:38:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:38:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647675.1011170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATkf-0004GL-2h; Tue, 05 Dec 2023 11:38:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647675.1011170; Tue, 05 Dec 2023 11:38:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATke-0004GE-V3; Tue, 05 Dec 2023 11:38:08 +0000
Received: by outflank-mailman (input) for mailman id 647675;
 Tue, 05 Dec 2023 11:38:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rATkc-0004Er-VU
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:38:06 +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 c0e06ecb-9362-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:38:04 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40b2ad4953cso41095885e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 03:38:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bg24-20020a05600c3c9800b0040b3d33ab55sm22284633wmb.47.2023.12.05.03.38.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 03:38:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0e06ecb-9362-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701776284; x=1702381084; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=hzKa1Dx2dZg8S7YoZWzImzxxkEiCHh71hCRgk8iUnCM=;
        b=Vw5vT90I1zD+bb2heoQhjm1F1ywJigVLyJb16UHNl76BeVrxemqZ8gnhnsucMH440F
         rTC+T/1fol4djdPFLVWv2xPB9462vWvxQni8ZiJCFR7mH3ReuRDbT5VO2MS6ra4RAsI1
         E64zPqW11vjNHm0AzBVxzbdbpsLo7MoIpeGzzAfIKjkumnzBI9HUrWvRfoqeWLrUKXLF
         ECBHLnned8Q0oRfSBVQAo4gLm7YelmqX6bzDEayjqbmFPnAKJbk5hEPpsM5ZDG81Y6LU
         oZM2GUnTU/3Nheg+JXD6HENiB2i5jN+Xp6WyUSo6pnqy+K7ba0xiuK2Yh72l3w8RqrjB
         euaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701776284; x=1702381084;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=hzKa1Dx2dZg8S7YoZWzImzxxkEiCHh71hCRgk8iUnCM=;
        b=rAXWTpnR0cKWZbdlEihbQOWzw9glwg84PchHq0nE7MJ9xzgfl7lsi8YcvNeXlutCUr
         21237rw9YelDIDkCbks3gL0FRPeoNfqgoe+oRkA8x6hgOa+sXBszdzNTdWu5vmTr3c98
         FmgCafDiEE0NSdt0hZZ58Ac1cMl0jxzmifqDKLsYAiC0m6JSCwo0Jy1oIjYBMgrZZpKr
         8lC2krWzohYi/FpxBVCsPpf223L4yF0g9qVlwIby5qXCwPM5skpjdaYFsSr6gCFddsxf
         dp17t1PmYAJZY3CzjdyetbgMnx4MWofVxkhV2AiTYjLNfuUjq62WSZh/wMJCh9saj6lh
         UBjQ==
X-Gm-Message-State: AOJu0YzRkUC4+7ehmhns6rek6pYjJMCRyQdGuceTnf5gjY4H9kElCn/U
	UugP1Uy1EtLCIAWiBnpM0TqF
X-Google-Smtp-Source: AGHT+IE+0UfSMY5RmZdIWdGIoDJePrEVu/5oBUk9g1tCz0qZstyFZFK9gDngh9FLJ/F6eNrP3lbr0Q==
X-Received: by 2002:a05:600c:4c08:b0:40b:5e4a:2368 with SMTP id d8-20020a05600c4c0800b0040b5e4a2368mr413527wmp.106.1701776284412;
        Tue, 05 Dec 2023 03:38:04 -0800 (PST)
Message-ID: <4797d75b-5ad9-445d-bbd7-6e90cd80f5a3@suse.com>
Date: Tue, 5 Dec 2023 12:38:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] config: update Mini-OS commit
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: 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>,
 xen-devel@lists.xenproject.org
References: <20231205103508.5811-1-jgross@suse.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: <20231205103508.5811-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2023 11:35, Juergen Gross wrote:
> Update the Mini-OS upstream revision.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:42:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:42:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647680.1011180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAToc-0007LR-Mx; Tue, 05 Dec 2023 11:42:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647680.1011180; Tue, 05 Dec 2023 11:42:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAToc-0007LK-Jb; Tue, 05 Dec 2023 11:42:14 +0000
Received: by outflank-mailman (input) for mailman id 647680;
 Tue, 05 Dec 2023 11:42: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=6bfq=HQ=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1rATob-0007LE-SC
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:42:13 +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 5397dc23-9363-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:42:11 +0100 (CET)
Received: by mail-qk1-x735.google.com with SMTP id
 af79cd13be357-77f04969d2eso176812285a.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 03:42:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5397dc23-9363-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1701776530; x=1702381330; 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=WXxtA6ZxbQLZB9JWDZXA4b6fiXxGvPDU1q2MsDgqlac=;
        b=AC5SQC1zSbb3ibAgWEwuRiWTgmT389lZEbMQvoTJYruqpqrMFMqtWtMypaNKkuRN1d
         YmBcH+v/H7I5UuOZA4tiHZtbkVcO49syHwqzfdZ5QhLTcnim3FDMrn22MgHkRGcszFg8
         6M8TXnIYFI+7KVGj0+ichVjkgyYAAzoM72h50lWVS4+IYP1+MoGAwwzFUcjEIJdkmQpA
         HYsFoAh7x5MK0GJed9G82PvmG6fierGttwf+McbH95v+lVF+PVlzYvvIJWxKkkAXpNm3
         TfuMHGNa+VkvD1CBICxJsdNR2HlJU1fhT1OPrchz+Z8x0S4uJd13ZngPckU/3XREeXhT
         o0kw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701776530; x=1702381330;
        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=WXxtA6ZxbQLZB9JWDZXA4b6fiXxGvPDU1q2MsDgqlac=;
        b=WQRLMh7A0yj3B7oQfN2+tCepVh/Fj+bfrzq7nBUSfYxgG2mmkxgOK8MHrPGR9F2JVK
         smQUWbNkSDbmGFGxK5x5crMX0QQT71WBsP1+qkjk8QufK5IovCkCM1pGTgDUa5yQgZSx
         9NSyGmAUBaVgKgQ7BF7ipn7ZnYm4mzePUKy54M/tx5hHtpBDzgEeaSTP17zPjQ4UYXBp
         BYtDo7RfD0eUnDczsnEgNXZZrCGPCD81PpDJOJjdUPdtmXu43Ex4zzQrW+kSqr5QrXbS
         i76KNpjgQDrqarlZ96jtLGLhnsm9Q4k+IdmFT3JZ5ZiKe4LuhbYUcC9er9xQctsfm8rT
         bMGw==
X-Gm-Message-State: AOJu0YxIvyEEqW0WEUTg8YizB/v3zTYok3KyVntbqqqrDYs92eliG9MD
	vmMJBphdnFT9JXeyXAThbG2fAauDIkjfHHYxPhO5kxlVe2v6sBIZaNU=
X-Google-Smtp-Source: AGHT+IFh4KJJ/A0VaYCd5raQyYnOc9AhZUofYotIimGSUBCDT6Wcw1XUsmANbouhx21CNPsRnJ6BwQvwIvqCIg51Oy8=
X-Received: by 2002:ad4:4482:0:b0:67a:b592:458c with SMTP id
 m2-20020ad44482000000b0067ab592458cmr1132711qvt.9.1701776530378; Tue, 05 Dec
 2023 03:42:10 -0800 (PST)
MIME-Version: 1.0
References: <20231204075552.3585875-1-jens.wiklander@linaro.org>
 <232c2496-77d6-4e37-a400-dbefd135ef3c@xen.org> <0B35D609-5378-4180-B79E-0CAE69D42165@arm.com>
In-Reply-To: <0B35D609-5378-4180-B79E-0CAE69D42165@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 5 Dec 2023 12:41:59 +0100
Message-ID: <CAHUa44GGU5WWBeOAF3S3+N8vkCNC3ZraGC_E9__EJhh0nAi2hA@mail.gmail.com>
Subject: Re: [RFC XEN PATCH] xen/arm: ffa: reclaim shared memory on guest destroy
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Julien Grall <julien@xen.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "patches@linaro.org" <patches@linaro.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,

On Tue, Dec 5, 2023 at 9:14=E2=80=AFAM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Julien,
>
> Thanks a lot for your review and comment, this is very helpful.
>
> > On 4 Dec 2023, at 20:24, Julien Grall <julien@xen.org> wrote:
> >
> > Hi Jens,
> >
> > On 04/12/2023 07:55, Jens Wiklander wrote:
> >> When an FF-A enabled guest is destroyed it may leave behind memory
> >> shared with SPs. This memory must be reclaimed before it's reused or a=
n
> >> SP may make changes to memory used by a new unrelated guest. So when t=
he
> >> domain is teared down add FF-A requests to reclaim all remaining share=
d
> >> memory.
> >> SPs in the secure world are notified using VM_DESTROYED that a guest h=
as
> >> been destroyed. An SP is supposed to relinquish all shared memory to a=
llow
> >> reclaiming the memory. The relinquish operation may need to be delayed=
 if
> >> the shared memory is for instance part of a DMA operation.
> >> If the FF-A memory reclaim request fails, return -ERESTART to retry
> >> again. This will effectively block the destruction of the guest until
> >> all memory has been reclaimed.
> >> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
> >> ---
> >> Hi,
> >> This patch is a bit crude, but gets the job done. In a well designed
> >> system this might even be good enough since the SP or the secure world
> >> will let the memory be reclaimed and we can move on. But, if for some
> >> reason reclaiming the memory is refused it must not be possible to reu=
se
> >> the memory.
> >
> > IIUC, we are trying to harden against a buggy SP. Is that correct?
>
> This is not hardening as this is a possible scenario with a correctly imp=
lemented SP.
> This is valid for the SP to not be able to relinquish the memory directly=
 so we have
> to take this possibility into account and retry.
>
> What is not expected if for the SP to never release the memory hence the =
possible
> "todo" at the end of the code where i think we might have to implement a =
counter
> to bound the possible number of loops but as always the question is how m=
any...
>
> In this case the only solution would be to park the memory as suggested a=
fter
> but we are not completely sure where hence the RFC.
>
> >
> >> These shared memory ranges are typically quite small compared to the
> >> total memory usage of a guest so it would be an improvement if only
> >> refused shared memory ranges where set aside from future reuse while t=
he
> >> guest was destroyed and other resources made available for reuse. This
> >> could be done by for instance assign the refused shared memory ranges
> >> to a dummy VM like DOMID_IO.
> >
> > I like the idea to use a dummy VM, but I don't think DOMID_IO is right.=
 Once teardown has completed, the domain will stay around until the last re=
ference on all pages are dropped. At this point, the amount of memory left-=
over is minimum (this is mostly bookeeping in Xen).
> >
> > From the userland PoV, the domain will still show-up in the list but to=
ols like "xl list" will show "(null)". They are called zombie domains.
> >
> > So I would consider to keep the same domain around. The advantage is yo=
u can call "xl destroy" again to retry the operation.
>
> In this scenario the "restart" implementation here is right but how could=
 we park the VM as "zombie" instead of busy looping in
> the "kill" loop of userland ?
>
> Also we need to release all the memory of the VM but the one shared with =
the SP.
>
> I will let Jens answer the more implementation questions here after and t=
ry to help on the more "system" ones.
>
> >
> >> Thanks,
> >> Jens
> >> ---
> >>  xen/arch/arm/tee/ffa.c | 36 ++++++++++++++++++++++++++++++++++++
> >>  1 file changed, 36 insertions(+)
> >> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> >> index 183528d13388..9c596462a8a2 100644
> >> --- a/xen/arch/arm/tee/ffa.c
> >> +++ b/xen/arch/arm/tee/ffa.c
> >> @@ -1539,6 +1539,7 @@ static bool is_in_subscr_list(const uint16_t *su=
bscr, uint16_t start,
> >>  static int ffa_domain_teardown(struct domain *d)
> >>  {
> >>      struct ffa_ctx *ctx =3D d->arch.tee;
> >> +    struct ffa_shm_mem *shm, *tmp;
> >>      unsigned int n;
> >>      int32_t res;
> >>  @@ -1564,10 +1565,45 @@ static int ffa_domain_teardown(struct domain =
*d)
> >>              printk(XENLOG_ERR "ffa: Failed to report destruction of v=
m_id %u to  %u: res %d\n",
> >>                     get_vm_id(d), subscr_vm_destroyed[n], res);
> >>      }
> >> +    /*
> >> +     * If this function is called again due to -ERESTART below, make =
sure
> >> +     * not to send the FFA_MSG_SEND_VM_DESTROYED's.
> >> +     */
> >> +    subscr_vm_destroyed_count =3D 0;
> >
> > AFAICT, this variable is global. So wouldn't you effectively break othe=
r domain if let say the unmapping error is temporary?
> >
> >>        if ( ctx->rx )
> >>          rxtx_unmap(ctx);
> >>  +
> >> +    list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
> >> +    {
> >> +        register_t handle_hi;
> >> +        register_t handle_lo;
> >> +
> >> +        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
> >> +        res =3D ffa_mem_reclaim(handle_lo, handle_hi, 0);
> >
> > Is this call expensive? If so, we may need to handle continuation here.
>
> This call should not be expensive in the normal case as memory is reclaim=
able
> so there is no processing required in the SP and all is done in the SPMC =
which
> should basically just return a yes or no depending on a state for the han=
dle.

I agree, this should only be a thing between the hypervisor and the
SPMC in the secure world.

>
> So I think this is the best trade.
>
> @Jens: One thing to consider is that a Destroy might get a retry or busy =
answer and we
> will have to issue it again and this is not considered in the current imp=
lementation.

You're right, we'll need to keep track of which SPs we've been able to
send a VM_DESTROY message to.

>
> After discussing the subject internally we could in fact consider that if=
 an SP cannot release
> some memory shared with the VM destroyed, it should tell it by returning =
"retry" to the message.
> Here that could simplify things by doing a strategy where:
> - we retry on the VM_DESTROY message if required

We should keep a record of which SPs remain to be signaled with
VM_DESTROY. An SP may have other reasons to return an error so this
call can be retried later.

> - if some memory is not reclaimable we check if we could park it and make=
 the VM a zombie.
> What do you think ?

The zombie option sounds like a good fallback when automatic reclaim
(reasonable timeouts have expired etc) has failed.

Thanks,
Jens

>
>
> >
> >> +        if ( res )
> >> +        {
> >> +            printk(XENLOG_INFO, "ffa: Failed to reclaim handle %#lx :=
 %d\n",
> >> +                   shm->handle, res);
> >
> > I think you want to use XENLOG_G_INFO to use the guest ratelimit. Also,=
 I would suggest to print the domain ID in the logs (see '%pd').
> >
> >
> >> +        }
> >> +        else
> >> +        {
> >> +            printk(XENLOG_DEBUG, "ffa: Reclaimed handle %#lx\n", shm-=
>handle);
> >
> > Same here. You want to use XENLOG_G_DEBUG and print the domain ID.
> >
> >> +            ctx->shm_count--;
> >> +            list_del(&shm->list);
> >> +        }
> >> +    }
> >
> > NIT: New line here please for clarity.
> >
> >> +    if ( !list_empty(&ctx->shm_list) )
> >> +    {
> >> +        printk(XENLOG_INFO, "ffa: Remaining unclaimed handles, retryi=
ng\n");
> >
> > Same as the other printks.
> >
> >> +        /*
> >> +         * TODO: add a timeout where we either panic or let the guest=
 be
> >> +         * fully destroyed.
> >> +         */
> > Timeout with proper handling would be a solution. I am not sure about p=
anic-ing. Do you think the TEE would be in a bad state if we can't release =
memory?
> >
> >> +        return -ERESTART;
> >> +    }
> >> +
> >>      XFREE(d->arch.tee);
> >>        return 0;
> >
> > Cheers,
> >
>
> Cheers
> Bertrand
>
> > --
> > Julien Grall
>
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:49:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:49:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647684.1011189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATvf-0002BZ-EH; Tue, 05 Dec 2023 11:49:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647684.1011189; Tue, 05 Dec 2023 11: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 1rATvf-0002BS-BW; Tue, 05 Dec 2023 11:49:31 +0000
Received: by outflank-mailman (input) for mailman id 647684;
 Tue, 05 Dec 2023 11:49: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=6bfq=HQ=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1rATve-0002B3-2w
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:49:30 +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 57b3bc0e-9364-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:49:27 +0100 (CET)
Received: by mail-qk1-x72c.google.com with SMTP id
 af79cd13be357-77d6b28aa9aso377361785a.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 03:49:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 57b3bc0e-9364-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1701776967; x=1702381767; 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=TwCFPVCbDa50OL/ChB5rqB+T/HQ9KdESV0FYZgKnLz8=;
        b=gN50E7ToYmdWWmXaHxhbM8Za1647qQHaDD2oW5n04lr31TjWCI7KQ94eMlxriiid2n
         FsDIPPLE8LLcovjZ8aYkU8Krdmgo+Ar6MouN9/mAcnrhGg3gC/8TUkzSK3bVX0IeBhp1
         17UohrgWhgRkMhGUxgX5xA/45uBZChyerFVQJlKHdCQcQp0dOMU41DR8d7sh9yp/8/tF
         WtZ8PnM78AsNsv3OZ2zCrOJ7/aTzUEB8VD6k0aXIPtSA2dJYo9sfUG0vec02jDcBIlzE
         8Ackh4DWhCw/rZIYXSsWc/WNFbiPZzgXl7p+HvHLfe1GHWYMt7c7ouuserP6QP7esy8/
         eS3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701776967; x=1702381767;
        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=TwCFPVCbDa50OL/ChB5rqB+T/HQ9KdESV0FYZgKnLz8=;
        b=i+SWvudqraa5uexzowk552S8ZNMXva4wNVdRBW0W7zcN7RSdR8bFu456VuT0Lcm2gu
         PHO8VETuBpzPBRz+pxMS6EtGIoWRqPMbMmbKfJytfNNAjhd/FTqe5M4GGlbqkG/IpnCj
         GPH9z3P6SgDEGvH9jrhUzZVwmg4BNbRyy8kK82xLEE5978v2AesPuCrIvWzRhkTEiMGn
         w7MNTC74Ap5bXe36luXmCHUm6q8VLQ3v9ORowRHETcLiJrkZaRzGFEmgh7H3j9Hzvyog
         UWo+QHndvn21tzr/7QXPkvIkHgr96e6a+u4SD9SDX560lMyBT05TpBZYrmH13LX0eJrf
         Q7+A==
X-Gm-Message-State: AOJu0YyXUHlot/AlhWZvRuMGU3IlUrayWAqpy4UtS7LQLMg46IwY7e09
	MofDczTYNb8bNOxxU9Fq3YezFgdHg+DvuDnCD2zl7JoVPP0jYByD
X-Google-Smtp-Source: AGHT+IG2o4jiH5bSl5VNvxrNDC2PyfRcl0d4pga4m+fmo3ob7nhujhmfEJM2EXFV6uDeXdNRGnkWdJkWtdlmFEn0ew0=
X-Received: by 2002:a0c:d7cb:0:b0:67a:a721:b1a0 with SMTP id
 g11-20020a0cd7cb000000b0067aa721b1a0mr1101637qvj.91.1701776966791; Tue, 05
 Dec 2023 03:49:26 -0800 (PST)
MIME-Version: 1.0
References: <20231204075552.3585875-1-jens.wiklander@linaro.org>
 <232c2496-77d6-4e37-a400-dbefd135ef3c@xen.org> <0B35D609-5378-4180-B79E-0CAE69D42165@arm.com>
 <6aaeea8c-cba9-4d3b-85a8-905dfee69e6f@citrix.com>
In-Reply-To: <6aaeea8c-cba9-4d3b-85a8-905dfee69e6f@citrix.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 5 Dec 2023 12:49:15 +0100
Message-ID: <CAHUa44HKVT9-DozjsKs+bZBE573BBh=e-h5qGhW3xeCsajuo4g@mail.gmail.com>
Subject: Re: [RFC XEN PATCH] xen/arm: ffa: reclaim shared memory on guest destroy
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>, Julien Grall <julien@xen.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "patches@linaro.org" <patches@linaro.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Andrew,

On Tue, Dec 5, 2023 at 11:53=E2=80=AFAM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> On 05/12/2023 8:14 am, Bertrand Marquis wrote:
> > Hi Julien,
> >
> > Thanks a lot for your review and comment, this is very helpful.
> >
> >> On 4 Dec 2023, at 20:24, Julien Grall <julien@xen.org> wrote:
> >>
> >> Hi Jens,
> >>
> >> On 04/12/2023 07:55, Jens Wiklander wrote:
> >>>        if ( ctx->rx )
> >>>          rxtx_unmap(ctx);
> >>>  +
> >>> +    list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
> >>> +    {
> >>> +        register_t handle_hi;
> >>> +        register_t handle_lo;
> >>> +
> >>> +        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
> >>> +        res =3D ffa_mem_reclaim(handle_lo, handle_hi, 0);
> >> Is this call expensive? If so, we may need to handle continuation here=
.
> > This call should not be expensive in the normal case as memory is recla=
imable
> > so there is no processing required in the SP and all is done in the SPM=
C which
> > should basically just return a yes or no depending on a state for the h=
andle.
> >
> > So I think this is the best trade.
> >
> > @Jens: One thing to consider is that a Destroy might get a retry or bus=
y answer and we
> > will have to issue it again and this is not considered in the current i=
mplementation.
> >
> > After discussing the subject internally we could in fact consider that =
if an SP cannot release
> > some memory shared with the VM destroyed, it should tell it by returnin=
g "retry" to the message.
> > Here that could simplify things by doing a strategy where:
> > - we retry on the VM_DESTROY message if required
> > - if some memory is not reclaimable we check if we could park it and ma=
ke the VM a zombie.
> > What do you think ?
>
> This is the cleanup issue discussed at XenSummit, isn't it?
>
> You cannot feasibly implement this cleanup by having
> ffa_domain_teardown() return -ERESTART.
>
> Yes, it will probably function - but now you're now bouncing in/out of
> Xen as fast as the CPU will allow, rechecking a condition which will
> take an unbounded quantity of time.  Meanwhile, you've tied up a
> userspace thread (the invocation of `xl destroy`) to do so, and one of
> dom0's vCPU for however long the scheduler is willing to schedule the
> destroy invocation, which will be 100% of the time as it's always busy
> in the hypervisor.
>
> The teardown/kill infrastructure is intended and expected to always make
> forward progress.
>

OK

>
> The closest thing to this patch which will work sanely is this:
>
> Hold a single domain reference for any non-zero amount of magic memory
> held.  See domain_adjust_tot_pages() and how it interacts with
> {get,put}_domain(), and copy it.  Importantly, this prevents the domain
> being freed until the final piece of magic memory has been released.
>
> Have some way (can be early on the teardown/kill path, or a separate
> hypercall - assuming the VM can't ever be scheduled again) to kick Xen
> into being responsible for trying to reclaim the memory.  (Start a
> timer, or reclaim in the idle loop, whatever.)
>
> This way, you can `xl destroy` a VM in an arbitrary state, *and* the
> invocation will terminate when Xen has nothing deterministic left to do,
> *and* in the case that the secure world or Xen has an issue, the VM will
> stay around as a zombie holding minimal resources.

Thanks for the pointers, very helpful, and now I at least know where
to start looking.

Cheers,
Jens

>
> ~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:49:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:49:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647685.1011200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATvr-0002aP-Lx; Tue, 05 Dec 2023 11:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647685.1011200; Tue, 05 Dec 2023 11:49:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATvr-0002Zl-JB; Tue, 05 Dec 2023 11:49:43 +0000
Received: by outflank-mailman (input) for mailman id 647685;
 Tue, 05 Dec 2023 11:49:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rATvp-0002YJ-U9
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:49:41 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fa946df-9364-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:49:40 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c09dfd82aso30386455e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 03:49:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bg36-20020a05600c3ca400b003fe1fe56202sm18724702wmb.33.2023.12.05.03.49.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 03:49:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5fa946df-9364-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701776980; x=1702381780; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jas3LCYBNcXt0QeS+ug1YQuk2rbSkKdbnfMaiDcy0I8=;
        b=J1Z12VB/ALu3QyItHrY4TBLd/IAgTjUPIRUJgzjd2OChe4egIiiAR37+e6F4Q2Zy1+
         ypW3nH4iRlz2zV9XfO2KhzO9hB/wlE00V4Y8I27Fxg+GqXH8bGT4FMeyMgDNS+3LrOP6
         J/2cItXpTxpZ1KL9uD8gJu/Pg4Vu3fGxXJZCNekUkRaAPiwfB4cbLgcoCoZePOllB8rA
         O/c/HXNJelM9QY0JSCpEQobboafal7iut9114oq5P5wvOSOu0ChaO+duRph/kdYs7o+S
         ylpg9IEHiUDpFkTEAbFCXVDWczoxgMKPkMDVCcPdM6GNlgu+0FsSbmoCdnnJfenvZNxx
         hgig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701776980; x=1702381780;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=jas3LCYBNcXt0QeS+ug1YQuk2rbSkKdbnfMaiDcy0I8=;
        b=Iv5Qgv2sBE60j1AFQWVgGDA3rcVhwzMC6Rq2BNEmLkD4AT4U2Jza7ozG/crUHluXlH
         bqwXqF5/UceORLrTCcCRpD9kzSLzGs+yoxvaknM2mu3utDDF7O74+ixhZO10FpwZHQCj
         yu1ot85+Wa7Q9TTkylon3i6tXBpzRTQRjiQ2Oa2xsWzhQ2nrvekMYHfy2PY6YkrnKbtZ
         nqWAPIBl//8XwF96AVn8F+4D1Sv6BpQpqL7yBEvHnjDNcB0Xjtdj49mirSVUx4fdR29+
         d4zkwoP82puGfdd+pGj16mB8M5y/eLKxaShrDWCRjw9BmrfAotwYWCyjp2uRtvgUWsX/
         ji3g==
X-Gm-Message-State: AOJu0Yww/ND/JRKTCqhWKK6PLGSRfCTVOvc/BExy/diilAoWI1kYpGwB
	oJ1wQUqm/d0UmokhUF7g/ddm
X-Google-Smtp-Source: AGHT+IEXmm2HI+MUvf5UXGZN6/uCoO1PKL/IZictJSyjuDkichV2Lx3AVwoS0VJhK9vMi5oGYCgn9A==
X-Received: by 2002:a05:600c:11c8:b0:40b:5e59:ccc1 with SMTP id b8-20020a05600c11c800b0040b5e59ccc1mr466108wmi.162.1701776980232;
        Tue, 05 Dec 2023 03:49:40 -0800 (PST)
Message-ID: <00de64fd-5669-424d-9b32-2342b5936f1a@suse.com>
Date: Tue, 5 Dec 2023 12:49:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/5] x86/livepatch: introduce a basic live patch test
 to gitlab CI
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.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: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-5-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231128100352.35430-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.11.2023 11:03, Roger Pau Monne wrote:
> Introduce a basic livepatch test using the interface to run self modifying
> tests.  The introduced test relies on changing a function from returning false
> to returning true.
> 
> To simplify the burden of keeping a patch that can be provided to
> livepatch-build-tools, introduce two new files: one containing the unpatched
> test functions, and another one that contains the patched forms of such
> functions.  Note that only the former is linked into the Xen image, the latter
> is built but the object file is not consumed afterwards.  Do this to assert
> that the file containing the patched functions continues to build.
> 
> Since livepatch testing will ensure that the functions are not patched previous
> the applying the livepatch, allow the livepatch related tests to fail without
> tainting the hypervisor.
> 
> Note the livepatch tests are not run as part of the self modifying checks
> executed during boot, as they would obviously fail.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
> Changes since v1:
>  - New interface & test.
> ---
>  tools/misc/xen-livepatch.c          | 29 +++++++++++++++++++++++++++++
>  xen/arch/x86/Makefile               |  2 ++
>  xen/arch/x86/include/asm/test-smc.h |  2 ++
>  xen/arch/x86/setup.c                |  2 +-
>  xen/arch/x86/test-smc-lp-alt.c      | 23 +++++++++++++++++++++++
>  xen/arch/x86/test-smc-lp.c          | 23 +++++++++++++++++++++++
>  xen/arch/x86/test-smc.c             | 11 ++++++++++-
>  xen/include/public/sysctl.h         |  6 +++++-
>  8 files changed, 95 insertions(+), 3 deletions(-)
>  create mode 100644 xen/arch/x86/test-smc-lp-alt.c
>  create mode 100644 xen/arch/x86/test-smc-lp.c

Can these (and perhaps also the one file introduced earlier in the series)
perhaps become xen/arch/x86/test/smc*.c?

> --- /dev/null
> +++ b/xen/arch/x86/test-smc-lp-alt.c
> @@ -0,0 +1,23 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#include <asm/test-smc.h>
> +
> +/*
> + * Interesting case because `return false` can be encoded as an xor
> + * instruction, which is shorter than `return true` which is a mov instruction,
> + * and also shorter than a jmp instruction.
> + */

I'm a little wary of this comment: "mov $1, %al" is two bytes only, just like
"xor %eax, %eax" is.

> +bool cf_check test_lp_insn_replacement(void)

What's the purpose of the cf_check here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:51:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:51:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647689.1011209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATxY-0004uL-0V; Tue, 05 Dec 2023 11:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647689.1011209; Tue, 05 Dec 2023 11:51: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 1rATxX-0004uE-U7; Tue, 05 Dec 2023 11:51:27 +0000
Received: by outflank-mailman (input) for mailman id 647689;
 Tue, 05 Dec 2023 11:51: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=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rATxW-0004u8-7M
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:51:26 +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 9defacd2-9364-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:51:25 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 A5D141FB87;
 Tue,  5 Dec 2023 11:51:24 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 77ACD138FF;
 Tue,  5 Dec 2023 11:51:24 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id cYz3G7wOb2WSUwAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 11:51: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: 9defacd2-9364-11ee-98e5-6d05b1d4d9a1
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	Pry Mar <pryorm09@gmail.com>
Subject: [PATCH] xen: update PV-device interface headers
Date: Tue,  5 Dec 2023 12:51:21 +0100
Message-Id: <20231205115121.11627-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 MIME_GOOD(-0.10)[text/plain];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 RCPT_COUNT_FIVE(0.00)[6];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+];
	 FREEMAIL_CC(0.00)[suse.com,kernel.org,epam.com,lists.xenproject.org,gmail.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: A5D141FB87
X-Spam-Flag: YES
X-Spam: Yes

Update the Xen PV-device interface headers in order to avoid undefined
behavior with flexible arrays being defined with one array element.

Reported-by: Pry Mar <pryorm09@gmail.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 include/xen/interface/io/displif.h | 2 +-
 include/xen/interface/io/ring.h    | 2 +-
 include/xen/interface/io/sndif.h   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/xen/interface/io/displif.h b/include/xen/interface/io/displif.h
index 18417b017869..60e42d3b760e 100644
--- a/include/xen/interface/io/displif.h
+++ b/include/xen/interface/io/displif.h
@@ -537,7 +537,7 @@ struct xendispl_dbuf_create_req {
 
 struct xendispl_page_directory {
 	grant_ref_t gref_dir_next_page;
-	grant_ref_t gref[1]; /* Variable length */
+	grant_ref_t gref[];
 };
 
 /*
diff --git a/include/xen/interface/io/ring.h b/include/xen/interface/io/ring.h
index ba4c4274b714..4fef1efcdcab 100644
--- a/include/xen/interface/io/ring.h
+++ b/include/xen/interface/io/ring.h
@@ -95,7 +95,7 @@ struct __name##_sring {                                                 \
     RING_IDX req_prod, req_event;                                       \
     RING_IDX rsp_prod, rsp_event;                                       \
     uint8_t __pad[48];                                                  \
-    union __name##_sring_entry ring[1]; /* variable-length */           \
+    union __name##_sring_entry ring[];                                  \
 };                                                                      \
                                                                         \
 /* "Front" end's private variables */                                   \
diff --git a/include/xen/interface/io/sndif.h b/include/xen/interface/io/sndif.h
index 445657cdb1de..b818517588b5 100644
--- a/include/xen/interface/io/sndif.h
+++ b/include/xen/interface/io/sndif.h
@@ -659,7 +659,7 @@ struct xensnd_open_req {
 
 struct xensnd_page_directory {
 	grant_ref_t gref_dir_next_page;
-	grant_ref_t gref[1]; /* Variable length */
+	grant_ref_t gref[];
 };
 
 /*
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:53:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:53:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647694.1011219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATzO-0006l5-Hs; Tue, 05 Dec 2023 11:53:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647694.1011219; Tue, 05 Dec 2023 11:53:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rATzO-0006ky-FK; Tue, 05 Dec 2023 11:53:22 +0000
Received: by outflank-mailman (input) for mailman id 647694;
 Tue, 05 Dec 2023 11:53:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rATzN-0006jd-5i
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:53:21 +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 1rATzM-0004G4-TM; Tue, 05 Dec 2023 11:53:20 +0000
Received: from [15.248.3.117] (helo=[10.24.67.37])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rATzM-0000KZ-Ng; Tue, 05 Dec 2023 11:53:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=U9c8mR1DZocEOTXExm9KvDdFaKFd0emz9LynjhI4/K0=; b=0G/BivVq7DGwm1O0uKCdP/+V1p
	kIeJeXZGOf4uVj8+XOsNhqe1ZU/9dLuwkXtHWd9dT/CkSvDt/jhmRg3WXWg3U3pMzWUJC9ATyQWYF
	hJReM06QsR0GAeMqbDf956akQvOVhY+9FvQVjTGQxwnVLI4yPKuP2qnbTYZT7RvPOTLA=;
Message-ID: <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
Date: Tue, 5 Dec 2023 11:53:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231205100756.18920-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 05/12/2023 10:07, Juergen Gross wrote:
> Instead of defining get_unaligned() and put_unaligned() in a way that
> is only supporting architectures allowing unaligned accesses, use the
> same approach as the Linux kernel and let the compiler do the
> decision how to generate the code for probably unaligned data accesses.
> 
> Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
> the Linux kernel.
> 
> The generated code has been checked to be the same on x86.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 803f4e1eab7a
> Signed-off-by: Juergen Gross <jgross@suse.com>

Can you outline your end goal? At least on arm32, I believe this will 
result to abort because event if the architecture support unaligned 
access, we are preventing them on Arm32.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:56:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647698.1011237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAU22-0008GI-8b; Tue, 05 Dec 2023 11:56:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647698.1011237; Tue, 05 Dec 2023 11: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 1rAU22-0008F7-23; Tue, 05 Dec 2023 11:56:06 +0000
Received: by outflank-mailman (input) for mailman id 647698;
 Tue, 05 Dec 2023 11: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=pDPQ=HQ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rAU21-0008Co-8n
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:56:05 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44096803-9365-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:56:03 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-79-46-48-173.retail.telecomitalia.it [79.46.48.173])
 by support.bugseng.com (Postfix) with ESMTPSA id 64D884EE074C;
 Tue,  5 Dec 2023 12:56:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44096803-9365-11ee-98e5-6d05b1d4d9a1
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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 2/6] x86/mm: address violations of MISRA C:2012 Rule 8.2
Date: Tue,  5 Dec 2023 12:55:51 +0100
Message-Id: <461a97a14a530286a8b8d0d30a1a8ed63690bc26.1701764980.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701764980.git.federico.serafini@bugseng.com>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/include/asm/mm.h | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 05dfe35502..a270f8ddd6 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -406,7 +406,7 @@ void put_page_type(struct page_info *page);
 int  get_page_type(struct page_info *page, unsigned long type);
 int  put_page_type_preemptible(struct page_info *page);
 int  get_page_type_preemptible(struct page_info *page, unsigned long type);
-int  put_old_guest_table(struct vcpu *);
+int  put_old_guest_table(struct vcpu *v);
 int  get_page_from_l1e(
     l1_pgentry_t l1e, struct domain *l1e_owner, struct domain *pg_owner);
 void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner);
@@ -557,7 +557,7 @@ void audit_domains(void);
 
 void make_cr3(struct vcpu *v, mfn_t mfn);
 pagetable_t update_cr3(struct vcpu *v);
-int vcpu_destroy_pagetables(struct vcpu *);
+int vcpu_destroy_pagetables(struct vcpu *v);
 void *do_page_walk(struct vcpu *v, unsigned long addr);
 
 /* Allocator functions for Xen pagetables. */
@@ -572,20 +572,20 @@ int __sync_local_execstate(void);
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 long subarch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void));
-int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
+int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
 
 #define NIL(type) ((type *)-sizeof(type))
 #define IS_NIL(ptr) (!((uintptr_t)(ptr) + sizeof(*(ptr))))
 
-int create_perdomain_mapping(struct domain *, unsigned long va,
-                             unsigned int nr, l1_pgentry_t **,
-                             struct page_info **);
-void destroy_perdomain_mapping(struct domain *, unsigned long va,
+int create_perdomain_mapping(struct domain *d, unsigned long va,
+                             unsigned int nr, l1_pgentry_t **pl1tab,
+                             struct page_info **ppg);
+void destroy_perdomain_mapping(struct domain *d, unsigned long va,
                                unsigned int nr);
-void free_perdomain_mappings(struct domain *);
+void free_perdomain_mappings(struct domain *d);
 
-void __iomem *ioremap_wc(paddr_t, size_t);
+void __iomem *ioremap_wc(paddr_t pa, size_t len);
 
 extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:56:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647699.1011250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAU23-0000Kb-Fo; Tue, 05 Dec 2023 11:56:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647699.1011250; Tue, 05 Dec 2023 11:56:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAU23-0000KA-AQ; Tue, 05 Dec 2023 11:56:07 +0000
Received: by outflank-mailman (input) for mailman id 647699;
 Tue, 05 Dec 2023 11:56: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=pDPQ=HQ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rAU22-0008Co-94
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:56:06 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43d20997-9365-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:56:03 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-79-46-48-173.retail.telecomitalia.it [79.46.48.173])
 by support.bugseng.com (Postfix) with ESMTPSA id 0AC094EE074A;
 Tue,  5 Dec 2023 12:56:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43d20997-9365-11ee-98e5-6d05b1d4d9a1
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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 1/6] xen/acpi: address remaining violations of MISRA C:2012 Rule 8.2
Date: Tue,  5 Dec 2023 12:55:50 +0100
Message-Id: <6c0fa7c13641c53800c323285275fd58d9989326.1701764980.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701764980.git.federico.serafini@bugseng.com>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names to address violations of MISRA C:2012
Rule 8.2. Furthermore, use C standard types to comply with XEN coding style.

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/include/asm/acpi.h           |  2 +-
 xen/include/acpi/apei.h                   |  5 +++--
 xen/include/acpi/cpufreq/cpufreq.h        |  2 +-
 xen/include/acpi/cpufreq/processor_perf.h | 16 ++++++++--------
 4 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/include/asm/acpi.h b/xen/arch/x86/include/asm/acpi.h
index 0df92d3714..d54c105f61 100644
--- a/xen/arch/x86/include/asm/acpi.h
+++ b/xen/arch/x86/include/asm/acpi.h
@@ -81,7 +81,7 @@ extern bool acpi_lapic, acpi_ioapic, acpi_noirq;
 extern bool acpi_force, acpi_ht, acpi_disabled;
 extern u32 acpi_smi_cmd;
 extern u8 acpi_enable_value, acpi_disable_value;
-void acpi_pic_sci_set_trigger(unsigned int, u16);
+void acpi_pic_sci_set_trigger(unsigned int irq, uint16_t trigger);
 
 static inline void disable_acpi(void)
 {
diff --git a/xen/include/acpi/apei.h b/xen/include/acpi/apei.h
index eab16e2543..495819e362 100644
--- a/xen/include/acpi/apei.h
+++ b/xen/include/acpi/apei.h
@@ -12,8 +12,9 @@
 
 #define FIX_APEI_RANGE_MAX 64
 
-typedef int (*apei_hest_func_t)(const struct acpi_hest_header *, void *);
-int apei_hest_parse(apei_hest_func_t, void *);
+typedef int (*apei_hest_func_t)(const struct acpi_hest_header *hest_hdr,
+                                void *data);
+int apei_hest_parse(apei_hest_func_t func, void *data);
 
 int erst_write(const struct cper_record_header *record);
 ssize_t erst_get_record_count(void);
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 3456d4c95f..b4685a9085 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -177,7 +177,7 @@ struct cpufreq_driver {
 
 extern struct cpufreq_driver cpufreq_driver;
 
-int cpufreq_register_driver(const struct cpufreq_driver *);
+int cpufreq_register_driver(const struct cpufreq_driver *driver_data);
 
 static inline
 void cpufreq_verify_within_limits(struct cpufreq_policy *policy,
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 8b5a1b9bde..7cd2400619 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -10,16 +10,16 @@
 int powernow_cpufreq_init(void);
 unsigned int powernow_register_driver(void);
 unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
-void cpufreq_residency_update(unsigned int, uint8_t);
-void cpufreq_statistic_update(unsigned int, uint8_t, uint8_t);
-int  cpufreq_statistic_init(unsigned int);
-void cpufreq_statistic_exit(unsigned int);
-void cpufreq_statistic_reset(unsigned int);
+void cpufreq_residency_update(unsigned int cpu, uint8_t state);
+void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to);
+int  cpufreq_statistic_init(unsigned int cpuid);
+void cpufreq_statistic_exit(unsigned int cpuid);
+void cpufreq_statistic_reset(unsigned int cpuid);
 
-int  cpufreq_limit_change(unsigned int);
+int  cpufreq_limit_change(unsigned int cpu);
 
-int  cpufreq_add_cpu(unsigned int);
-int  cpufreq_del_cpu(unsigned int);
+int  cpufreq_add_cpu(unsigned int cpu);
+int  cpufreq_del_cpu(unsigned int cpu);
 
 struct processor_performance {
     uint32_t state;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:56:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647703.1011270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAU25-0000pB-E5; Tue, 05 Dec 2023 11:56:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647703.1011270; Tue, 05 Dec 2023 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 1rAU25-0000my-7g; Tue, 05 Dec 2023 11:56:09 +0000
Received: by outflank-mailman (input) for mailman id 647703;
 Tue, 05 Dec 2023 11:56: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=pDPQ=HQ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rAU24-0008Co-9i
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:56:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44aa20d2-9365-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:56:05 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-79-46-48-173.retail.telecomitalia.it [79.46.48.173])
 by support.bugseng.com (Postfix) with ESMTPSA id 70CF74EE0750;
 Tue,  5 Dec 2023 12:56:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44aa20d2-9365-11ee-98e5-6d05b1d4d9a1
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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 5/6] x86/mce: address violations of MISRA C:2012 Rule 8.2
Date: Tue,  5 Dec 2023 12:55:54 +0100
Message-Id: <16a4587adaac7b116026c0df4addd254d4a33715.1701764980.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701764980.git.federico.serafini@bugseng.com>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/cpu/mcheck/mce.h  | 2 +-
 xen/arch/x86/include/asm/mce.h | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index b6fc9c3617..34285296b4 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -158,7 +158,7 @@ extern void mce_need_clearbank_register(mce_need_clearbank_t cbfunc);
  * MCi_STATUS value for that bank.
  */
 typedef struct mcinfo_extended *(*x86_mce_callback_t)
-    (struct mc_info *, uint16_t, uint64_t);
+    (struct mc_info *mi, uint16_t bank, uint64_t status);
 extern void x86_mce_callback_register(x86_mce_callback_t cbfunc);
 
 void *x86_mcinfo_reserve(struct mc_info *mi,
diff --git a/xen/arch/x86/include/asm/mce.h b/xen/arch/x86/include/asm/mce.h
index 2c63318c08..6ce56b5b85 100644
--- a/xen/arch/x86/include/asm/mce.h
+++ b/xen/arch/x86/include/asm/mce.h
@@ -37,8 +37,8 @@ struct domain;
 struct vcpu;
 
 /* Guest vMCE MSRs virtualization */
-extern void vmce_init_vcpu(struct vcpu *);
-extern int vmce_restore_vcpu(struct vcpu *, const struct hvm_vmce_vcpu *);
+extern void vmce_init_vcpu(struct vcpu *v);
+extern int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt);
 extern int vmce_wrmsr(uint32_t msr, uint64_t val);
 extern int vmce_rdmsr(uint32_t msr, uint64_t *val);
 extern bool vmce_has_lmce(const struct vcpu *v);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:56:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:56:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647700.1011260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAU24-0000dZ-Lo; Tue, 05 Dec 2023 11:56:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647700.1011260; Tue, 05 Dec 2023 11: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 1rAU24-0000dO-IH; Tue, 05 Dec 2023 11:56:08 +0000
Received: by outflank-mailman (input) for mailman id 647700;
 Tue, 05 Dec 2023 11:56: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=pDPQ=HQ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rAU23-0008Co-9N
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:56:07 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44380e29-9365-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:56:04 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-79-46-48-173.retail.telecomitalia.it [79.46.48.173])
 by support.bugseng.com (Postfix) with ESMTPSA id BEAEA4EE074D;
 Tue,  5 Dec 2023 12:56:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44380e29-9365-11ee-98e5-6d05b1d4d9a1
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>
Subject: [XEN PATCH 3/6] AMD/IOMMU: address violations of MISRA C:2012 Rule 8.2
Date: Tue,  5 Dec 2023 12:55:52 +0100
Message-Id: <c529cb0d8eba253436c5bba22f8bceddeaaf5831.1701764980.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701764980.git.federico.serafini@bugseng.com>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names to address violations of MISRA C:2012
Rule 8.2. Furthermore, remove trailing spaces and use C standard types to
comply with XEN coding style.

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/drivers/passthrough/amd/iommu.h      | 17 ++++++++++-------
 xen/drivers/passthrough/amd/iommu_init.c | 24 ++++++++++++++----------
 2 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index d4416ebc43..1b62c083ba 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -138,10 +138,12 @@ struct ivrs_mappings {
 extern unsigned int ivrs_bdf_entries;
 extern u8 ivhd_type;
 
-struct ivrs_mappings *get_ivrs_mappings(u16 seg);
-int iterate_ivrs_mappings(int (*)(u16 seg, struct ivrs_mappings *));
-int iterate_ivrs_entries(int (*)(const struct amd_iommu *,
-                                 struct ivrs_mappings *, uint16_t));
+struct ivrs_mappings *get_ivrs_mappings(uint16_t seg);
+int iterate_ivrs_mappings(int (*handler)(uint16_t seg,
+                                         struct ivrs_mappings *map));
+int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *iommu,
+                                        struct ivrs_mappings *map,
+                                        uint16_t bdf));
 
 /* iommu tables in guest space */
 struct mmio_reg {
@@ -226,7 +228,7 @@ struct acpi_ivrs_hardware;
 /* amd-iommu-detect functions */
 int amd_iommu_get_ivrs_dev_entries(void);
 int amd_iommu_get_supported_ivhd_type(void);
-int amd_iommu_detect_one_acpi(const struct acpi_ivrs_hardware *);
+int amd_iommu_detect_one_acpi(const struct acpi_ivrs_hardware *ivhd_block);
 int amd_iommu_detect_acpi(void);
 void get_iommu_features(struct amd_iommu *iommu);
 
@@ -295,9 +297,10 @@ struct amd_iommu *find_iommu_for_device(int seg, int bdf);
 bool cf_check iov_supports_xt(void);
 int amd_iommu_setup_ioapic_remapping(void);
 void *amd_iommu_alloc_intremap_table(
-    const struct amd_iommu *, unsigned long **, unsigned int nr);
+    const struct amd_iommu *iommu, unsigned long **inuse_map, unsigned int nr);
 int cf_check amd_iommu_free_intremap_table(
-    const struct amd_iommu *, struct ivrs_mappings *, uint16_t);
+    const struct amd_iommu *iommu, struct ivrs_mappings *ivrs_mapping,
+    uint16_t bdf);
 unsigned int amd_iommu_intremap_table_order(
     const void *irt, const struct amd_iommu *iommu);
 void cf_check amd_iommu_ioapic_update_ire(
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 5515cb70fd..62f9bfdfc8 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -300,12 +300,13 @@ static void cf_check set_iommu_ppr_log_control(
 static int iommu_read_log(struct amd_iommu *iommu,
                           struct ring_buffer *log,
                           unsigned int entry_size,
-                          void (*parse_func)(struct amd_iommu *, u32 *))
+                          void (*parse_func)(struct amd_iommu *iommu,
+                                             uint32_t *entry))
 {
     unsigned int tail, tail_offest, head_offset;
 
     BUG_ON(!iommu || ((log != &iommu->event_log) && (log != &iommu->ppr_log)));
-    
+
     spin_lock(&log->lock);
 
     /* make sure there's an entry in the log */
@@ -361,14 +362,15 @@ static int iommu_read_log(struct amd_iommu *iommu,
 
  out:
     spin_unlock(&log->lock);
-   
+
     return 0;
 }
 
 /* reset event log or ppr log when overflow */
 static void iommu_reset_log(struct amd_iommu *iommu,
                             struct ring_buffer *log,
-                            void (*ctrl_func)(struct amd_iommu *iommu, bool))
+                            void (*ctrl_func)(struct amd_iommu *iommu,
+                                              bool iommu_control))
 {
     unsigned int entry, run_bit, loop_count = 1000;
     bool log_run;
@@ -1158,14 +1160,15 @@ static void __init amd_iommu_init_cleanup(void)
     iommuv2_enabled = 0;
 }
 
-struct ivrs_mappings *get_ivrs_mappings(u16 seg)
+struct ivrs_mappings *get_ivrs_mappings(uint16_t seg)
 {
     return radix_tree_lookup(&ivrs_maps, seg);
 }
 
-int iterate_ivrs_mappings(int (*handler)(u16 seg, struct ivrs_mappings *))
+int iterate_ivrs_mappings(int (*handler)(uint16_t seg,
+                                         struct ivrs_mappings *map))
 {
-    u16 seg = 0;
+    uint16_t seg = 0;
     int rc = 0;
 
     do {
@@ -1180,10 +1183,11 @@ int iterate_ivrs_mappings(int (*handler)(u16 seg, struct ivrs_mappings *))
     return rc;
 }
 
-int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *,
-                                        struct ivrs_mappings *, uint16_t bdf))
+int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *iommu,
+                                        struct ivrs_mappings *map,
+                                        uint16_t bdf))
 {
-    u16 seg = 0;
+    uint16_t seg = 0;
     int rc = 0;
 
     do {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:56:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:56:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647697.1011229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAU21-0008D9-UN; Tue, 05 Dec 2023 11:56:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647697.1011229; Tue, 05 Dec 2023 11:56:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAU21-0008D1-RU; Tue, 05 Dec 2023 11:56:05 +0000
Received: by outflank-mailman (input) for mailman id 647697;
 Tue, 05 Dec 2023 11:56: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=pDPQ=HQ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rAU20-0008Co-JA
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:56:04 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 439ae457-9365-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:56:03 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-79-46-48-173.retail.telecomitalia.it [79.46.48.173])
 by support.bugseng.com (Postfix) with ESMTPSA id 7D1884EE0742;
 Tue,  5 Dec 2023 12:56:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 439ae457-9365-11ee-98e5-6d05b1d4d9a1
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>,
	Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH 0/6] xen: address violations of MISRA C:2012 Rule 8.2
Date: Tue,  5 Dec 2023 12:55:49 +0100
Message-Id: <cover.1701764980.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series adds the missing parameter names and makes some
improvements to the coding style as the removal of trailing spaces and
the use of C standard integer types over Linux typedefs.

No functional changes are introduced.

Federico Serafini (6):
  xen/acpi: address remaining violations of MISRA C:2012 Rule 8.2
  x86/mm: address violations of MISRA C:2012 Rule 8.2
  AMD/IOMMU: address violations of MISRA C:2012 Rule 8.2
  x86/page: address violations of MISRA C:2012 Rule 8.2
  x86/mce: address violations of MISRA C:2012 Rule 8.2
  xen/pci: address violations of MISRA C:2012 Rule 8.2

 xen/arch/x86/cpu/mcheck/mce.h             |  2 +-
 xen/arch/x86/include/asm/acpi.h           |  2 +-
 xen/arch/x86/include/asm/mce.h            |  4 ++--
 xen/arch/x86/include/asm/mm.h             | 20 +++++++++----------
 xen/arch/x86/include/asm/page.h           |  6 +++---
 xen/drivers/passthrough/amd/iommu.h       | 17 +++++++++-------
 xen/drivers/passthrough/amd/iommu_init.c  | 24 +++++++++++++----------
 xen/drivers/passthrough/pci.c             |  8 ++++----
 xen/include/acpi/apei.h                   |  5 +++--
 xen/include/acpi/cpufreq/cpufreq.h        |  2 +-
 xen/include/acpi/cpufreq/processor_perf.h | 16 +++++++--------
 xen/include/xen/pci.h                     |  3 ++-
 12 files changed, 59 insertions(+), 50 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:56:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:56:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647702.1011264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAU25-0000gp-1a; Tue, 05 Dec 2023 11:56:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647702.1011264; Tue, 05 Dec 2023 11: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 1rAU24-0000fj-SB; Tue, 05 Dec 2023 11:56:08 +0000
Received: by outflank-mailman (input) for mailman id 647702;
 Tue, 05 Dec 2023 11: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=pDPQ=HQ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rAU23-0000Kl-NX
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:56:07 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 446a8958-9365-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 12:56:04 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-79-46-48-173.retail.telecomitalia.it [79.46.48.173])
 by support.bugseng.com (Postfix) with ESMTPSA id 158004EE074F;
 Tue,  5 Dec 2023 12:56:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 446a8958-9365-11ee-9b0f-b553b5be7939
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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 4/6] x86/page: address violations of MISRA C:2012 Rule 8.2
Date: Tue,  5 Dec 2023 12:55:53 +0100
Message-Id: <626f8040804d8f7dbdcde57725ac4eab895f295c.1701764980.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701764980.git.federico.serafini@bugseng.com>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/include/asm/page.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/page.h b/xen/arch/x86/include/asm/page.h
index 93a7b368ac..350d1fb110 100644
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -232,8 +232,8 @@ typedef struct { u64 pfn; } pagetable_t;
 #define pagetable_from_paddr(p) pagetable_from_pfn((p)>>PAGE_SHIFT)
 #define pagetable_null()        pagetable_from_pfn(0)
 
-void clear_page_sse2(void *);
-void copy_page_sse2(void *, const void *);
+void clear_page_sse2(void *pg);
+void copy_page_sse2(void *to, const void *from);
 
 #define clear_page(_p)      clear_page_sse2(_p)
 #define copy_page(_t, _f)   copy_page_sse2(_t, _f)
@@ -303,7 +303,7 @@ extern l3_pgentry_t l3_bootmap[L3_PAGETABLE_ENTRIES];
 extern l2_pgentry_t l2_directmap[4*L2_PAGETABLE_ENTRIES];
 extern l1_pgentry_t l1_fixmap[L1_PAGETABLE_ENTRIES];
 void paging_init(void);
-void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t);
+void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e);
 #endif /* !defined(__ASSEMBLY__) */
 
 #define _PAGE_NONE     _AC(0x000,U)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 11:56:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 11:56:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647704.1011289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAU27-0001PY-1Q; Tue, 05 Dec 2023 11:56:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647704.1011289; Tue, 05 Dec 2023 11:56: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 1rAU26-0001NY-QH; Tue, 05 Dec 2023 11:56:10 +0000
Received: by outflank-mailman (input) for mailman id 647704;
 Tue, 05 Dec 2023 11:56: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=pDPQ=HQ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rAU25-0008Co-A4
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 11:56:09 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44f7385f-9365-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 12:56:05 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-79-46-48-173.retail.telecomitalia.it [79.46.48.173])
 by support.bugseng.com (Postfix) with ESMTPSA id CC5C64EE074D;
 Tue,  5 Dec 2023 12:56:04 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44f7385f-9365-11ee-98e5-6d05b1d4d9a1
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>,
	Paul Durrant <paul@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	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: [XEN PATCH 6/6] xen/pci: address violations of MISRA C:2012 Rule 8.2
Date: Tue,  5 Dec 2023 12:55:55 +0100
Message-Id: <f84479a28a7f9d6e44829259229460dcf7c497c4.1701764980.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701764980.git.federico.serafini@bugseng.com>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names to address violations of MISRA C:2012
Rule 8.2. Furthermore, use C standard types to comply with XEN coding style.
No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/drivers/passthrough/pci.c | 8 ++++----
 xen/include/xen/pci.h         | 3 ++-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 04d00c7c37..28ed8ea817 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -104,9 +104,9 @@ static struct pci_seg *alloc_pseg(u16 seg)
 }
 
 static int pci_segments_iterate(
-    int (*handler)(struct pci_seg *, void *), void *arg)
+    int (*handler)(struct pci_seg *pseg, void *arg), void *arg)
 {
-    u16 seg = 0;
+    uint16_t seg = 0;
     int rc = 0;
 
     do {
@@ -1077,7 +1077,7 @@ int __init scan_pci_devices(void)
 
 struct setup_hwdom {
     struct domain *d;
-    int (*handler)(u8 devfn, struct pci_dev *);
+    int (*handler)(uint8_t devfn, struct pci_dev *pdev);
 };
 
 static void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom *ctxt,
@@ -1157,7 +1157,7 @@ static int __hwdom_init cf_check _setup_hwdom_pci_devices(
 }
 
 void __hwdom_init setup_hwdom_pci_devices(
-    struct domain *d, int (*handler)(u8 devfn, struct pci_dev *))
+    struct domain *d, int (*handler)(uint8_t devfn, struct pci_dev *pdev))
 {
     struct setup_hwdom ctxt = { .d = d, .handler = handler };
 
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 50d7dfb2a2..a3b7434818 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -178,7 +178,8 @@ enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn);
 int find_upstream_bridge(u16 seg, u8 *bus, u8 *devfn, u8 *secbus);
 
 void setup_hwdom_pci_devices(struct domain *d,
-                            int (*handler)(u8 devfn, struct pci_dev *pdev));
+                             int (*handler)(uint8_t devfn,
+                                            struct pci_dev *pdev));
 int pci_release_devices(struct domain *d);
 void pci_segments_init(void);
 int pci_add_segment(u16 seg);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:25:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:25:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647729.1011300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUUV-00053t-FA; Tue, 05 Dec 2023 12:25:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647729.1011300; Tue, 05 Dec 2023 12: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 1rAUUV-00053m-BA; Tue, 05 Dec 2023 12:25:31 +0000
Received: by outflank-mailman (input) for mailman id 647729;
 Tue, 05 Dec 2023 12:25: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=cmhw=HQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAUUU-00052Y-2O
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:25:30 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f1f369e-9369-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 13:25:27 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40a4848c6e1so59741695e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 04:25:27 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 hg10-20020a05600c538a00b0040b398f0585sm18773310wmb.9.2023.12.05.04.25.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 04:25:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f1f369e-9369-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701779127; x=1702383927; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=QNCLk+56fWI2chNhpjUr6+slGM9CjcICEgag2GdvCoc=;
        b=nVX/Y8mDSsTfVjVty/rpwp9tyaYQWB9UeIKUPQ2+7XMQ3wndwHrHf2I6cSg0O/xynS
         6kvKyl+9ZyGD2ZrbsF+uJxojQBfdbPXv4EeNOqcXgWp1XO7Vi5424b005DvtHiXdAxvU
         zEmRKj2gmeg3NNcFXIFEV0j1Fn7W1MW1zU9Pg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701779127; x=1702383927;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=QNCLk+56fWI2chNhpjUr6+slGM9CjcICEgag2GdvCoc=;
        b=p1rMK8lEt4deNnJTCyYeRN/5GpdI/0cpzevE9Nzo/MistEXNl6sjEatPXf45tnvQq+
         EjsZyUnlhhhV5fLyp3UrYdTopwHrhxw8LzqUK8+8Z3XmIfAFxx2hDjIxi6Dz4zonIldW
         7eNAlOShoZqzOtPBIulzxLfJ+Jx7KdFXwRmgxnYOLQTILXZ2+i26PHZQD7qBDcq27ebG
         4PxU9QwrWPQMdRCsUKHWdahPt2DYjaY9btLWZGXhMgdUVtQ3/JvDLvRq3eZ943icBK5Q
         Mw7U85RE2X8IglmYU0wpPYukKWsQ3PM1SQ/HYMygNR4fxEXyF0F3vn8ZLLw8OQnmkh2U
         tTPQ==
X-Gm-Message-State: AOJu0YyNHXmYP0qlb2VK8zqOLcgvFVdNTTZYeBKGyN1e8FtJxWb/o4od
	ECNCvlPtCI6t5clTUyS1OYfICg==
X-Google-Smtp-Source: AGHT+IFxBxp6EQ7qVgNSuhOPqdIy0eT6mG75SBCSajakYFILb/bhoaJag+l06/bE/PKNsb6QbMajOg==
X-Received: by 2002:a05:600c:600b:b0:40b:4e4e:2b22 with SMTP id az11-20020a05600c600b00b0040b4e4e2b22mr365566wmb.38.1701779126718;
        Tue, 05 Dec 2023 04:25:26 -0800 (PST)
Message-ID: <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com>
Date: Tue, 5 Dec 2023 12:25:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Content-Language: en-GB
To: Xin Li <xin3.li@intel.com>, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org,
 linux-hyperv@vger.kernel.org, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, luto@kernel.org,
 pbonzini@redhat.com, seanjc@google.com, peterz@infradead.org,
 jgross@suse.com, ravi.v.shankar@intel.com, mhiramat@kernel.org,
 jiangshanlai@gmail.com, nik.borisov@suse.com, shan.kang@intel.com
References: <20231205105030.8698-1-xin3.li@intel.com>
 <20231205105030.8698-27-xin3.li@intel.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20231205105030.8698-27-xin3.li@intel.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/12/2023 10:50 am, Xin Li wrote:
> diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c
> new file mode 100644
> index 000000000000..215883e90f94
> --- /dev/null
> +++ b/arch/x86/entry/entry_fred.c
> @@ -0,0 +1,230 @@
> ...
> +static noinstr void fred_intx(struct pt_regs *regs)
> +{
> +	switch (regs->fred_ss.vector) {
> +	/* INT0 */

INTO (for overflow), not INT-zero.Â  However...

> +	case X86_TRAP_OF:
> +		exc_overflow(regs);
> +		return;
> +
> +	/* INT3 */
> +	case X86_TRAP_BP:
> +		exc_int3(regs);
> +		return;

... neither OF nor BP will ever enter fred_intx() because they're type
SWEXC not SWINT.

SWINT is strictly the INT $imm8 instruction.

> ...
> +static noinstr void fred_extint(struct pt_regs *regs)
> +{
> +	unsigned int vector = regs->fred_ss.vector;
> +
> +	if (WARN_ON_ONCE(vector < FIRST_EXTERNAL_VECTOR))
> +		return;
> +
> +	if (likely(vector >= FIRST_SYSTEM_VECTOR)) {
> +		irqentry_state_t state = irqentry_enter(regs);
> +
> +		instrumentation_begin();
> +		sysvec_table[vector - FIRST_SYSTEM_VECTOR](regs);

array_index_mask_nospec()

This is easy for an attacker to abuse, to install non-function-pointer
targets into the indirect predictor.

> +		instrumentation_end();
> +		irqentry_exit(regs, state);
> +	} else {
> +		common_interrupt(regs, vector);
> +	}
> +}
> +
> +static noinstr void fred_exception(struct pt_regs *regs, unsigned long error_code)
> +{
> +	/* Optimize for #PF. That's the only exception which matters performance wise */
> +	if (likely(regs->fred_ss.vector == X86_TRAP_PF)) {
> +		exc_page_fault(regs, error_code);
> +		return;
> +	}
> +
> +	switch (regs->fred_ss.vector) {
> +	case X86_TRAP_DE: return exc_divide_error(regs);
> +	case X86_TRAP_DB: return fred_exc_debug(regs);
> +	case X86_TRAP_BP: return exc_int3(regs);
> +	case X86_TRAP_OF: return exc_overflow(regs);

Depending on what you want to do with BP/OF vs fred_intx(), this may
need adjusting.

If you are cross-checking type and vector, then these should be rejected
for not being of type HWEXC.

> +	case X86_TRAP_BR: return exc_bounds(regs);
> +	case X86_TRAP_UD: return exc_invalid_op(regs);
> +	case X86_TRAP_NM: return exc_device_not_available(regs);
> +	case X86_TRAP_DF: return exc_double_fault(regs, error_code);
> +	case X86_TRAP_TS: return exc_invalid_tss(regs, error_code);
> +	case X86_TRAP_NP: return exc_segment_not_present(regs, error_code);
> +	case X86_TRAP_SS: return exc_stack_segment(regs, error_code);
> +	case X86_TRAP_GP: return exc_general_protection(regs, error_code);
> +	case X86_TRAP_MF: return exc_coprocessor_error(regs);
> +	case X86_TRAP_AC: return exc_alignment_check(regs, error_code);
> +	case X86_TRAP_XF: return exc_simd_coprocessor_error(regs);
> +
> +#ifdef CONFIG_X86_MCE
> +	case X86_TRAP_MC: return fred_exc_machine_check(regs);
> +#endif
> +#ifdef CONFIG_INTEL_TDX_GUEST
> +	case X86_TRAP_VE: return exc_virtualization_exception(regs);
> +#endif
> +#ifdef CONFIG_X86_KERNEL_IBT

CONFIG_X86_CET

Userspace can use CET even if the kernel isn't compiled with IBT, so
this exception needs handling.

> +	case X86_TRAP_CP: return exc_control_protection(regs, error_code);
> +#endif
> +	default: return fred_bad_type(regs, error_code);
> +	}
> +}
> +
> +__visible noinstr void fred_entry_from_user(struct pt_regs *regs)
> +{
> +	unsigned long error_code = regs->orig_ax;
> +
> +	/* Invalidate orig_ax so that syscall_get_nr() works correctly */
> +	regs->orig_ax = -1;
> +
> +	switch (regs->fred_ss.type) {
> +	case EVENT_TYPE_EXTINT:
> +		return fred_extint(regs);
> +	case EVENT_TYPE_NMI:
> +		return fred_exc_nmi(regs);
> +	case EVENT_TYPE_SWINT:
> +		return fred_intx(regs);
> +	case EVENT_TYPE_HWEXC:
> +	case EVENT_TYPE_SWEXC:
> +	case EVENT_TYPE_PRIV_SWEXC:
> +		return fred_exception(regs, error_code);

PRIV_SWEXC should have it's own function and not fall into fred_exception().

It is strictly only the ICEBP (INT1) instruction at the moment, so
should fall into bad_type() for any vector other than X86_TRAP_DB.

> +	case EVENT_TYPE_OTHER:
> +		return fred_other(regs);
> +	default:
> +		return fred_bad_type(regs, error_code);
> +	}
> +}

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:34:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:34:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647736.1011310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUcy-0007H8-8U; Tue, 05 Dec 2023 12:34:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647736.1011310; Tue, 05 Dec 2023 12: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 1rAUcy-0007H1-4k; Tue, 05 Dec 2023 12:34:16 +0000
Received: by outflank-mailman (input) for mailman id 647736;
 Tue, 05 Dec 2023 12: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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAUcw-0007Ff-OY
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:34:14 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 98551dbd-936a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 13:34:12 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c0a074e71so22245895e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 04:34:12 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 g14-20020a05600c310e00b0040b481222e3sm22391417wmo.41.2023.12.05.04.34.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 04:34:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98551dbd-936a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701779651; x=1702384451; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=4Fqyc6JPbEffc12vul4iA7D2vP1qKTReNpKbh0bHSQk=;
        b=ek+HHtanF1HVj8WaY2h3Jm0YJY2F8Uo/DVkKrAXx3BH+COWQAZ6Y3fOG0Mys/1CgaF
         Cr09ldLlAE55calNBnKjQjPO9gRazXiTsiZhdA6XORE8es2jKdOcvqy2+co/dQk6lLDz
         nbyLSbrAGuwqXre/qwoRxKgz8EOTNeGYrMeVE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701779651; x=1702384451;
        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=4Fqyc6JPbEffc12vul4iA7D2vP1qKTReNpKbh0bHSQk=;
        b=G8DCK3l9H71VpsndV0T4xlZPEfhTMB7EFmz7JaaIe0V8a98du5I7FaCnckau3Uez/T
         BhG3L5TrsPF7jjnAoqE+vTqy9t2Bg/eraH91RV6aw+rLbS9Qllf/rzZBJmy4vpsgwO6C
         D8+tmRu+NQyESFAOFG58uckdN0UD+VoGq2xhn7hAVjualp4iWGU/kQGxdVN0Xu3Je17f
         Y0wP6RImPpeIZKM0PcrBvCsp5/JVBhx25l3cL4ahAGNJ/JQGvuN2zybWqDgCACR7coTH
         GLGan4G3ru1Zs+ihaMQ+1pTx9C0ezGG8oXraaf47tMuU7+NRHSHnIa7ll3Mq1qJ2tk42
         Fg+w==
X-Gm-Message-State: AOJu0YxXIeTpjR5q9X+BN3YBElKOWdr5kTWn/kayTtJzlWeHVmB12jw0
	tFpdbfZ7DtMJcmmAQzGNXN8FD9KUQ9MGmfpnJhg=
X-Google-Smtp-Source: AGHT+IGwhpyT+obAY0DLw8knajDvfpkmX2em2qFn945caqLNO7JwwU99i8l9Y8hoecsCb95BAcQP1A==
X-Received: by 2002:a05:600c:35c4:b0:40b:5e22:96f with SMTP id r4-20020a05600c35c400b0040b5e22096fmr4098727wmq.94.1701779651627;
        Tue, 05 Dec 2023 04:34:11 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] livepatch-build-tools: allow livepatching version.c
Date: Tue,  5 Dec 2023 13:34:03 +0100
Message-ID: <20231205123403.63813-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Currently version.o is explicitly ignored as the file would change as a result
of the orignal and the patched build having possibly different dates and
times.

Fix such difference by exporting the date and time from the build script, so
that both builds share the same build time.  This allows checking for changes
in version.c, since the rest of fields need to be manually changed in order to
produce different output.

Setting XEN_BUILD_{DATE,TIME} as an environment variable has been supported
since before livepatch support was added to Xen, so it's safe to export those
variables unconditionally.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 livepatch-build | 4 ++++
 livepatch-gcc   | 2 --
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/livepatch-build b/livepatch-build
index e2ccce4f7fd7..f622683fc56c 100755
--- a/livepatch-build
+++ b/livepatch-build
@@ -417,6 +417,10 @@ if [ "${SKIP}" != "build" ]; then
 
     export CROSS_COMPILE="${TOOLSDIR}/livepatch-gcc "
 
+    # Force same date and time to prevent unwanted changes in version.c
+    export XEN_BUILD_DATE=`LC_ALL=C date`
+    export XEN_BUILD_TIME=`LC_ALL=C date +%T`
+
     echo "Perform full initial build with ${CPUS} CPU(s)..."
     build_full
 
diff --git a/livepatch-gcc b/livepatch-gcc
index fcad80551aa0..e4cb6fb59029 100755
--- a/livepatch-gcc
+++ b/livepatch-gcc
@@ -33,7 +33,6 @@ if [[ "$TOOLCHAINCMD" =~ $GCC_RE ]] ; then
             obj=$2
             [[ $2 = */.tmp_*.o ]] && obj=${2/.tmp_/}
             case "$(basename $obj)" in
-            version.o|\
             debug.o|\
             check.o|\
             *.xen-syms.*.o|\
@@ -63,7 +62,6 @@ done
 elif [[ "$TOOLCHAINCMD" =~ $OBJCOPY_RE ]] ; then
     obj="${!#}"
     case "$(basename $obj)" in
-        version.o|\
         debug.o|\
         check.o|\
         boot.o|\

base-commit: e588b7914e7afa3abb64b15a32fc2fdb57ded341
prerequisite-patch-id: 3419543c1c7c96b551db398518dbb10d81b3d5d9
prerequisite-patch-id: 640658ca7a1a21a540bfd6a862ff83669f70a065
prerequisite-patch-id: 650cd4210c2e73e9d2588b048be2c8278ae96acd
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647745.1011345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhK-0003cv-Hf; Tue, 05 Dec 2023 12:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647745.1011345; Tue, 05 Dec 2023 12: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 1rAUhK-0003bS-CU; Tue, 05 Dec 2023 12:38:46 +0000
Received: by outflank-mailman (input) for mailman id 647745;
 Tue, 05 Dec 2023 12: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhJ-00035R-Iu
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:45 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35d688c0-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:38:41 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0Sj4lhDz4f3lDT
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:29 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 5C53D1A0A42
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:34 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S5;
 Tue, 05 Dec 2023 20:38:33 +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: 35d688c0-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 01/14] block: add some bdev apis
Date: Tue,  5 Dec 2023 20:37:15 +0800
Message-Id: <20231205123728.1866699-2-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S5
X-Coremail-Antispam: 1UD129KBjvJXoW3GrykCryfur18GF48Cw1xXwb_yoW3tF48pF
	yUKa45JrWUGr1Igrs2yw43Zr1agw10k3WxZa4xA34Yk3yktrn2gF95Kw1UArWSqrWkAFZr
	XFW3ZrWxur1jkFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPY14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jr4l82xGYIkIc2
	x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0
	Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJw
	A2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS
	0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2
	IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0
	Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2
	xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2
	6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMIIYrx
	kI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v2
	6F4j6r4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr
	1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JULXo7U
	UUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Those apis will be used for other modules, so that bd_inode won't be
accessed directly from other modules.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 block/bdev.c           | 116 +++++++++++++++++++++++++++++++++++++++++
 block/bio.c            |   1 +
 block/blk.h            |   2 -
 include/linux/blkdev.h |  27 ++++++++++
 4 files changed, 144 insertions(+), 2 deletions(-)

diff --git a/block/bdev.c b/block/bdev.c
index 6f73b02d549c..fcba5c1bd113 100644
--- a/block/bdev.c
+++ b/block/bdev.c
@@ -92,6 +92,13 @@ void invalidate_bdev(struct block_device *bdev)
 }
 EXPORT_SYMBOL(invalidate_bdev);
 
+void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
+			   pgoff_t end)
+{
+	invalidate_mapping_pages(bdev->bd_inode->i_mapping, start, end);
+}
+EXPORT_SYMBOL_GPL(invalidate_bdev_range);
+
 /*
  * Drop all buffers & page cache for given bdev range. This function bails
  * with error if bdev has other exclusive owner (such as filesystem).
@@ -124,6 +131,7 @@ int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
 					     lstart >> PAGE_SHIFT,
 					     lend >> PAGE_SHIFT);
 }
+EXPORT_SYMBOL_GPL(truncate_bdev_range);
 
 static void set_init_blocksize(struct block_device *bdev)
 {
@@ -138,6 +146,18 @@ static void set_init_blocksize(struct block_device *bdev)
 	bdev->bd_inode->i_blkbits = blksize_bits(bsize);
 }
 
+loff_t bdev_size(struct block_device *bdev)
+{
+	loff_t size;
+
+	spin_lock(&bdev->bd_size_lock);
+	size = i_size_read(bdev->bd_inode);
+	spin_unlock(&bdev->bd_size_lock);
+
+	return size;
+}
+EXPORT_SYMBOL_GPL(bdev_size);
+
 int set_blocksize(struct block_device *bdev, int size)
 {
 	/* Size must be a power of two, and between 512 and PAGE_SIZE */
@@ -1144,3 +1164,99 @@ static int __init setup_bdev_allow_write_mounted(char *str)
 	return 1;
 }
 __setup("bdev_allow_write_mounted=", setup_bdev_allow_write_mounted);
+
+struct folio *bdev_read_folio(struct block_device *bdev, pgoff_t index)
+{
+	return read_mapping_folio(bdev->bd_inode->i_mapping, index, NULL);
+}
+EXPORT_SYMBOL_GPL(bdev_read_folio);
+
+struct folio *bdev_read_folio_gfp(struct block_device *bdev, pgoff_t index,
+				  gfp_t gfp)
+{
+	return mapping_read_folio_gfp(bdev->bd_inode->i_mapping, index, gfp);
+}
+EXPORT_SYMBOL_GPL(bdev_read_folio_gfp);
+
+struct folio *bdev_get_folio(struct block_device *bdev, pgoff_t index)
+{
+	return filemap_get_folio(bdev->bd_inode->i_mapping, index);
+}
+EXPORT_SYMBOL_GPL(bdev_get_folio);
+
+struct folio *bdev_find_or_create_folio(struct block_device *bdev,
+					pgoff_t index, gfp_t gfp)
+{
+	return __filemap_get_folio(bdev->bd_inode->i_mapping, index,
+				   FGP_LOCK | FGP_ACCESSED | FGP_CREAT, gfp);
+}
+EXPORT_SYMBOL_GPL(bdev_find_or_create_folio);
+
+int bdev_wb_err_check(struct block_device *bdev, errseq_t since)
+{
+	return errseq_check(&bdev->bd_inode->i_mapping->wb_err, since);
+}
+EXPORT_SYMBOL_GPL(bdev_wb_err_check);
+
+int bdev_wb_err_check_and_advance(struct block_device *bdev, errseq_t *since)
+{
+	return errseq_check_and_advance(&bdev->bd_inode->i_mapping->wb_err,
+					since);
+}
+EXPORT_SYMBOL_GPL(bdev_wb_err_check_and_advance);
+
+void bdev_balance_dirty_pages_ratelimited(struct block_device *bdev)
+{
+	return balance_dirty_pages_ratelimited(bdev->bd_inode->i_mapping);
+}
+EXPORT_SYMBOL_GPL(bdev_balance_dirty_pages_ratelimited);
+
+void bdev_sync_readahead(struct block_device *bdev, struct file_ra_state *ra,
+			 struct file *file, pgoff_t index,
+			 unsigned long req_count)
+{
+	struct file_ra_state tmp_ra = {};
+
+	if (!ra) {
+		ra = &tmp_ra;
+		file_ra_state_init(ra, bdev->bd_inode->i_mapping);
+	}
+	page_cache_sync_readahead(bdev->bd_inode->i_mapping, ra, file, index,
+				  req_count);
+}
+EXPORT_SYMBOL_GPL(bdev_sync_readahead);
+
+void bdev_attach_wb(struct block_device *bdev)
+{
+	inode_attach_wb(bdev->bd_inode, NULL);
+}
+EXPORT_SYMBOL_GPL(bdev_attach_wb);
+
+void bdev_correlate_mapping(struct block_device *bdev,
+			    struct address_space *mapping)
+{
+	mapping->host = bdev->bd_inode;
+}
+EXPORT_SYMBOL_GPL(bdev_correlate_mapping);
+
+gfp_t bdev_gfp_constraint(struct block_device *bdev, gfp_t gfp)
+{
+	return mapping_gfp_constraint(bdev->bd_inode->i_mapping, gfp);
+}
+EXPORT_SYMBOL_GPL(bdev_gfp_constraint);
+
+/*
+ * The del_gendisk() function uninitializes the disk-specific data
+ * structures, including the bdi structure, without telling anyone
+ * else.  Once this happens, any attempt to call mark_buffer_dirty()
+ * (for example, by ext4_commit_super), will cause a kernel OOPS.
+ * This is a kludge to prevent these oops until we can put in a proper
+ * hook in del_gendisk() to inform the VFS and file system layers.
+ */
+int bdev_ejected(struct block_device *bdev)
+{
+	struct backing_dev_info *bdi = inode_to_bdi(bdev->bd_inode);
+
+	return bdi->dev == NULL;
+}
+EXPORT_SYMBOL_GPL(bdev_ejected);
diff --git a/block/bio.c b/block/bio.c
index 816d412c06e9..f7123ad9b4ee 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1119,6 +1119,7 @@ void bio_add_folio_nofail(struct bio *bio, struct folio *folio, size_t len,
 	WARN_ON_ONCE(off > UINT_MAX);
 	__bio_add_page(bio, &folio->page, len, off);
 }
+EXPORT_SYMBOL_GPL(bio_add_folio_nofail);
 
 /**
  * bio_add_folio - Attempt to add part of a folio to a bio.
diff --git a/block/blk.h b/block/blk.h
index 08a358bc0919..da4becd4f7e9 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -467,8 +467,6 @@ extern struct device_attribute dev_attr_events_poll_msecs;
 extern struct attribute_group blk_trace_attr_group;
 
 blk_mode_t file_to_blk_mode(struct file *file);
-int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
-		loff_t lstart, loff_t lend);
 long blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg);
 long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg);
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 3f8a21cd9233..a55db77274a4 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -1342,6 +1342,11 @@ static inline unsigned int block_size(struct block_device *bdev)
 	return 1 << bdev->bd_inode->i_blkbits;
 }
 
+static inline u8 block_bits(struct block_device *bdev)
+{
+	return bdev->bd_inode->i_blkbits;
+}
+
 int kblockd_schedule_work(struct work_struct *work);
 int kblockd_mod_delayed_work_on(int cpu, struct delayed_work *dwork, unsigned long delay);
 
@@ -1515,6 +1520,28 @@ struct block_device *blkdev_get_no_open(dev_t dev);
 void blkdev_put_no_open(struct block_device *bdev);
 
 struct block_device *I_BDEV(struct inode *inode);
+loff_t bdev_size(struct block_device *bdev);
+void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
+			   pgoff_t end);
+int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
+		loff_t lstart, loff_t lend);
+struct folio *bdev_get_folio(struct block_device *bdev, pgoff_t index);
+struct folio *bdev_find_or_create_folio(struct block_device *bdev,
+					pgoff_t index, gfp_t gfp);
+struct folio *bdev_read_folio(struct block_device *bdev, pgoff_t index);
+struct folio *bdev_read_folio_gfp(struct block_device *bdev, pgoff_t index,
+				  gfp_t gfp);
+int bdev_wb_err_check(struct block_device *bdev, errseq_t since);
+int bdev_wb_err_check_and_advance(struct block_device *bdev, errseq_t *since);
+void bdev_balance_dirty_pages_ratelimited(struct block_device *bdev);
+void bdev_sync_readahead(struct block_device *bdev, struct file_ra_state *ra,
+			 struct file *file, pgoff_t index,
+			 unsigned long req_count);
+void bdev_attach_wb(struct block_device *bdev);
+void bdev_correlate_mapping(struct block_device *bdev,
+			    struct address_space *mapping);
+gfp_t bdev_gfp_constraint(struct block_device *bdev, gfp_t gfp);
+int bdev_ejected(struct block_device *bdev);
 
 #ifdef CONFIG_BLOCK
 void invalidate_bdev(struct block_device *bdev);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647742.1011321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhI-00035e-Px; Tue, 05 Dec 2023 12:38:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647742.1011321; Tue, 05 Dec 2023 12:38:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhI-00035W-LE; Tue, 05 Dec 2023 12:38:44 +0000
Received: by outflank-mailman (input) for mailman id 647742;
 Tue, 05 Dec 2023 12:38:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhH-00035L-6Y
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:43 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3520b307-936b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 13:38:39 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0Sl5mkSz4f3jYk
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:31 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id D2FD81A0808
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:32 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S4;
 Tue, 05 Dec 2023 20:38:32 +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: 3520b307-936b-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 00/14] block: don't access bd_inode directly from other modules
Date: Tue,  5 Dec 2023 20:37:14 +0800
Message-Id: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S4
X-Coremail-Antispam: 1UD129KBjvJXoW7Kw4Utry8XFW7Zr18Jr43Wrg_yoW8WF1kpr
	y3KF1fGr1Uu347Zaya9an7tryrJw4kGay7GF17t34rZr13JryfAr4ktrW8Ja48Jr9rXr4k
	Xw1DtryFgr10gaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUvF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U
	JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc
	CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E
	2Ix0cI8IcVAFwI0_Jrv_JF1lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV
	W8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2
	Y2ka0xkIwI1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4
	xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26rWY6r4U
	JwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x
	0267AKxVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_WFyUJVCq3wCI42IY6I8E87Iv67AK
	xVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvj
	fUoL0eDUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Patch 1 add some bdev apis, then follow up patches will use these apis
to avoid access bd_inode directly, and hopefully the field bd_inode can
be removed eventually(after figure out a way for fs/buffer.c).

Yu Kuai (14):
  block: add some bdev apis
  xen/blkback: use bdev api in xen_update_blkif_status()
  bcache: use bdev api in read_super()
  mtd: block2mtd: use bdev apis
  s390/dasd: use bdev api in dasd_format()
  scsicam: use bdev api in scsi_bios_ptable()
  bcachefs: remove dead function bdev_sectors()
  btrfs: use bdev apis
  cramfs: use bdev apis in cramfs_blkdev_read()
  erofs: use bdev api
  ext4: use bdev apis
  jbd2: use bdev apis
  gfs2: use bdev api
  nilfs2: use bdev api in nilfs_attach_log_writer()

 block/bdev.c                       | 116 +++++++++++++++++++++++++++++
 block/bio.c                        |   1 +
 block/blk.h                        |   2 -
 drivers/block/xen-blkback/xenbus.c |   3 +-
 drivers/md/bcache/super.c          |  11 ++-
 drivers/mtd/devices/block2mtd.c    |  80 +++++++++-----------
 drivers/s390/block/dasd_ioctl.c    |   5 +-
 drivers/scsi/scsicam.c             |   3 +-
 fs/bcachefs/util.h                 |   5 --
 fs/btrfs/disk-io.c                 |  68 ++++++++---------
 fs/btrfs/volumes.c                 |  17 ++---
 fs/btrfs/zoned.c                   |  12 ++-
 fs/cramfs/inode.c                  |  35 +++------
 fs/erofs/data.c                    |  17 +++--
 fs/erofs/internal.h                |   1 +
 fs/ext4/dir.c                      |   6 +-
 fs/ext4/ext4_jbd2.c                |   6 +-
 fs/ext4/super.c                    |  27 +------
 fs/gfs2/glock.c                    |   2 +-
 fs/gfs2/ops_fstype.c               |   2 +-
 fs/jbd2/journal.c                  |   3 +-
 fs/jbd2/recovery.c                 |   6 +-
 fs/nilfs2/segment.c                |   2 +-
 include/linux/blkdev.h             |  27 +++++++
 include/linux/buffer_head.h        |   5 +-
 25 files changed, 273 insertions(+), 189 deletions(-)

-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647744.1011341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhK-0003ZQ-9o; Tue, 05 Dec 2023 12:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647744.1011341; Tue, 05 Dec 2023 12: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 1rAUhK-0003ZD-4Q; Tue, 05 Dec 2023 12:38:46 +0000
Received: by outflank-mailman (input) for mailman id 647744;
 Tue, 05 Dec 2023 12: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhI-00035R-Uk
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:44 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 37108604-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:38:41 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0Sm4YLLz4f3lVM
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:32 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 533FE1A0BFD
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:37 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S7;
 Tue, 05 Dec 2023 20:38:36 +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: 37108604-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 03/14] bcache: use bdev api in read_super()
Date: Tue,  5 Dec 2023 20:37:17 +0800
Message-Id: <20231205123728.1866699-4-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S7
X-Coremail-Antispam: 1UD129KBjvJXoW7Ww17Zw4kZr48Xr13XF18Xwb_yoW8Gry5pF
	Z2kasxZr48Gw17u3y8Zr4DZFyftasrKFWUKa4xC3y3Za4aqw1Y9FW3Ja4UW34rZrW8WFs2
	vF4rJr4xu3WDGrJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JrWl82xGYIkIc2
	x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0
	Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJw
	A2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS
	0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2
	IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0
	Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2
	xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2
	6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMIIYrx
	kI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v2
	6r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r
	4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjfUoL0e
	DUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/md/bcache/super.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index 1402096b8076..376b9dc2523f 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -168,14 +168,13 @@ static const char *read_super(struct cache_sb *sb, struct block_device *bdev,
 {
 	const char *err;
 	struct cache_sb_disk *s;
-	struct page *page;
+	struct folio *folio;
 	unsigned int i;
 
-	page = read_cache_page_gfp(bdev->bd_inode->i_mapping,
-				   SB_OFFSET >> PAGE_SHIFT, GFP_KERNEL);
-	if (IS_ERR(page))
+	folio = bdev_read_folio_gfp(bdev, SB_OFFSET >> PAGE_SHIFT, GFP_KERNEL);
+	if (IS_ERR(folio))
 		return "IO error";
-	s = page_address(page) + offset_in_page(SB_OFFSET);
+	s = folio_address(folio) + offset_in_folio(folio, SB_OFFSET);
 
 	sb->offset		= le64_to_cpu(s->offset);
 	sb->version		= le64_to_cpu(s->version);
@@ -272,7 +271,7 @@ static const char *read_super(struct cache_sb *sb, struct block_device *bdev,
 	*res = s;
 	return NULL;
 err:
-	put_page(page);
+	folio_put(folio);
 	return err;
 }
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647743.1011327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhJ-000391-3r; Tue, 05 Dec 2023 12:38:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647743.1011327; Tue, 05 Dec 2023 12:38:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhI-00038S-Sp; Tue, 05 Dec 2023 12:38:44 +0000
Received: by outflank-mailman (input) for mailman id 647743;
 Tue, 05 Dec 2023 12:38: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhI-00035L-In
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:44 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 361fe373-936b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 13:38:42 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0Sl0zpQz4f3lDJ
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:31 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id D05371A06E3
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:35 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S6;
 Tue, 05 Dec 2023 20:38:35 +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: 361fe373-936b-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 02/14] xen/blkback: use bdev api in xen_update_blkif_status()
Date: Tue,  5 Dec 2023 20:37:16 +0800
Message-Id: <20231205123728.1866699-3-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S6
X-Coremail-Antispam: 1UD129KBjvdXoW7XFW7tFW3Wr4xCFyrtrWfAFb_yoWfWFb_ZF
	18urWxXrn7Crs0kayUuFs3Z3yv93WrurWF9ay2qFySqw1UXFWSq39FvFn5Gr47ZayUGws0
	yF17uFW7tr4xXjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbDAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUXwA2048vs2IY02
	0Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv
	wVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM2
	8EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AI
	xVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20x
	vE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xv
	r2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2IY04
	v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_
	Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIxkGc2
	Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_
	Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr
	1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUlZXOU
	UUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/block/xen-blkback/xenbus.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c
index e34219ea2b05..e645afa4af57 100644
--- a/drivers/block/xen-blkback/xenbus.c
+++ b/drivers/block/xen-blkback/xenbus.c
@@ -104,8 +104,7 @@ static void xen_update_blkif_status(struct xen_blkif *blkif)
 		xenbus_dev_error(blkif->be->dev, err, "block flush");
 		return;
 	}
-	invalidate_inode_pages2(
-			blkif->vbd.bdev_handle->bdev->bd_inode->i_mapping);
+	invalidate_bdev(blkif->vbd.bdev_handle->bdev);
 
 	for (i = 0; i < blkif->nr_rings; i++) {
 		ring = &blkif->rings[i];
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647746.1011359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhL-00046o-VS; Tue, 05 Dec 2023 12:38:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647746.1011359; Tue, 05 Dec 2023 12: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 1rAUhL-00046b-S3; Tue, 05 Dec 2023 12:38:47 +0000
Received: by outflank-mailman (input) for mailman id 647746;
 Tue, 05 Dec 2023 12:38:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhK-00035L-4H
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:46 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 387f862a-936b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 13:38:43 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0Sp11k0z4f3lVs
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:34 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id CE4C21A0920
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:38 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S8;
 Tue, 05 Dec 2023 20:38:38 +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: 387f862a-936b-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 04/14] mtd: block2mtd: use bdev apis
Date: Tue,  5 Dec 2023 20:37:18 +0800
Message-Id: <20231205123728.1866699-5-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S8
X-Coremail-Antispam: 1UD129KBjvJXoW3Jw1DtryDWw17CF45XFyrZwb_yoW7AF15pa
	y3Ca95Aw4UKrn8ur4xXwn8Zr12g3sFqayUCay7C3yakF93JryIkas7ta45KFyrKry8AFWk
	XF4DArs5XF40grJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPa14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F
	4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq
	3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7
	IYx2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4U
	M4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2
	kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E
	14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMI
	IYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E
	14v26r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r
	1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjfU
	oxhLUUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/mtd/devices/block2mtd.c | 80 +++++++++++++++------------------
 1 file changed, 35 insertions(+), 45 deletions(-)

diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
index aa44a23ec045..927fc9cf0856 100644
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
@@ -46,40 +46,34 @@ struct block2mtd_dev {
 /* Static info about the MTD, used in cleanup_module */
 static LIST_HEAD(blkmtd_device_list);
 
-
-static struct page *page_read(struct address_space *mapping, pgoff_t index)
-{
-	return read_mapping_page(mapping, index, NULL);
-}
-
 /* erase a specified part of the device */
 static int _block2mtd_erase(struct block2mtd_dev *dev, loff_t to, size_t len)
 {
-	struct address_space *mapping =
-				dev->bdev_handle->bdev->bd_inode->i_mapping;
-	struct page *page;
+	struct block_device *bdev = dev->bdev_handle->bdev;
+	struct folio *folio;
 	pgoff_t index = to >> PAGE_SHIFT;	// page index
 	int pages = len >> PAGE_SHIFT;
 	u_long *p;
 	u_long *max;
 
 	while (pages) {
-		page = page_read(mapping, index);
-		if (IS_ERR(page))
-			return PTR_ERR(page);
+		folio = bdev_read_folio(bdev, index);
+		if (IS_ERR(folio))
+			return PTR_ERR(folio);
 
-		max = page_address(page) + PAGE_SIZE;
-		for (p=page_address(page); p<max; p++)
+		max = folio_address(folio) + folio_size(folio);
+		for (p = folio_address(folio); p < max; p++)
 			if (*p != -1UL) {
-				lock_page(page);
-				memset(page_address(page), 0xff, PAGE_SIZE);
-				set_page_dirty(page);
-				unlock_page(page);
-				balance_dirty_pages_ratelimited(mapping);
+				folio_lock(folio);
+				memset(folio_address(folio), 0xff,
+				       folio_size(folio));
+				folio_mark_dirty(folio);
+				folio_unlock(folio);
+				bdev_balance_dirty_pages_ratelimited(bdev);
 				break;
 			}
 
-		put_page(page);
+		folio_put(folio);
 		pages--;
 		index++;
 	}
@@ -106,9 +100,7 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
 		size_t *retlen, u_char *buf)
 {
 	struct block2mtd_dev *dev = mtd->priv;
-	struct address_space *mapping =
-				dev->bdev_handle->bdev->bd_inode->i_mapping;
-	struct page *page;
+	struct folio *folio;
 	pgoff_t index = from >> PAGE_SHIFT;
 	int offset = from & (PAGE_SIZE-1);
 	int cpylen;
@@ -120,12 +112,12 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
 			cpylen = len;	// this page
 		len = len - cpylen;
 
-		page = page_read(mapping, index);
-		if (IS_ERR(page))
-			return PTR_ERR(page);
+		folio = bdev_read_folio(dev->bdev_handle->bdev, index);
+		if (IS_ERR(folio))
+			return PTR_ERR(folio);
 
-		memcpy(buf, page_address(page) + offset, cpylen);
-		put_page(page);
+		memcpy(buf, folio_address(folio) + offset, cpylen);
+		folio_put(folio);
 
 		if (retlen)
 			*retlen += cpylen;
@@ -141,9 +133,8 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
 static int _block2mtd_write(struct block2mtd_dev *dev, const u_char *buf,
 		loff_t to, size_t len, size_t *retlen)
 {
-	struct page *page;
-	struct address_space *mapping =
-				dev->bdev_handle->bdev->bd_inode->i_mapping;
+	struct block_device *bdev = dev->bdev_handle->bdev;
+	struct folio *folio;
 	pgoff_t index = to >> PAGE_SHIFT;	// page index
 	int offset = to & ~PAGE_MASK;	// page offset
 	int cpylen;
@@ -155,18 +146,18 @@ static int _block2mtd_write(struct block2mtd_dev *dev, const u_char *buf,
 			cpylen = len;			// this page
 		len = len - cpylen;
 
-		page = page_read(mapping, index);
-		if (IS_ERR(page))
-			return PTR_ERR(page);
+		folio = bdev_read_folio(bdev, index);
+		if (IS_ERR(folio))
+			return PTR_ERR(folio);
 
-		if (memcmp(page_address(page)+offset, buf, cpylen)) {
-			lock_page(page);
-			memcpy(page_address(page) + offset, buf, cpylen);
-			set_page_dirty(page);
-			unlock_page(page);
-			balance_dirty_pages_ratelimited(mapping);
+		if (memcmp(folio_address(folio) + offset, buf, cpylen)) {
+			folio_lock(folio);
+			memcpy(folio_address(folio) + offset, buf, cpylen);
+			folio_mark_dirty(folio);
+			folio_unlock(folio);
+			bdev_balance_dirty_pages_ratelimited(bdev);
 		}
-		put_page(page);
+		folio_put(folio);
 
 		if (retlen)
 			*retlen += cpylen;
@@ -211,8 +202,7 @@ static void block2mtd_free_device(struct block2mtd_dev *dev)
 	kfree(dev->mtd.name);
 
 	if (dev->bdev_handle) {
-		invalidate_mapping_pages(
-			dev->bdev_handle->bdev->bd_inode->i_mapping, 0, -1);
+		invalidate_bdev(dev->bdev_handle->bdev);
 		bdev_release(dev->bdev_handle);
 	}
 
@@ -295,7 +285,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
 		goto err_free_block2mtd;
 	}
 
-	if ((long)bdev->bd_inode->i_size % erase_size) {
+	if ((long)bdev_size(bdev) % erase_size) {
 		pr_err("erasesize must be a divisor of device size\n");
 		goto err_free_block2mtd;
 	}
@@ -313,7 +303,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
 
 	dev->mtd.name = name;
 
-	dev->mtd.size = bdev->bd_inode->i_size & PAGE_MASK;
+	dev->mtd.size = bdev_size(bdev) & PAGE_MASK;
 	dev->mtd.erasesize = erase_size;
 	dev->mtd.writesize = 1;
 	dev->mtd.writebufsize = PAGE_SIZE;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647747.1011365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhM-0004Aw-FB; Tue, 05 Dec 2023 12:38:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647747.1011365; Tue, 05 Dec 2023 12:38:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhM-0004AT-8w; Tue, 05 Dec 2023 12:38:48 +0000
Received: by outflank-mailman (input) for mailman id 647747;
 Tue, 05 Dec 2023 12:38:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhK-00035R-J9
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:46 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38d3e812-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:38:44 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0Sq4VkHz4f3lDb
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:35 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 5291D1A0B43
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:40 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S9;
 Tue, 05 Dec 2023 20:38:39 +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: 38d3e812-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 05/14] s390/dasd: use bdev api in dasd_format()
Date: Tue,  5 Dec 2023 20:37:19 +0800
Message-Id: <20231205123728.1866699-6-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S9
X-Coremail-Antispam: 1UD129KBjvdXoW7XFWrKF1rWw4UAw4kXFWkWFg_yoWfWrg_Zr
	1fGryxtr1xCr9Ikr1YvF15Zr9Y9F1kWr4Svry3KryfXFnrXFsaq3ykuFW3JrZ7JayUG3s3
	GF9rXw10yr15WjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr
	1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr
	0_Cr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUl
	2NtUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/s390/block/dasd_ioctl.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
index 61b9675e2a67..bbfb958237e6 100644
--- a/drivers/s390/block/dasd_ioctl.c
+++ b/drivers/s390/block/dasd_ioctl.c
@@ -221,8 +221,9 @@ dasd_format(struct dasd_block *block, struct format_data_t *fdata)
 	 * enabling the device later.
 	 */
 	if (fdata->start_unit == 0) {
-		block->gdp->part0->bd_inode->i_blkbits =
-			blksize_bits(fdata->blksize);
+		rc = set_blocksize(block->gdp->part0, fdata->blksize);
+		if (rc)
+			return rc;
 	}
 
 	rc = base->discipline->format_device(base, fdata, 1);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647748.1011380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhN-0004cZ-RV; Tue, 05 Dec 2023 12:38:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647748.1011380; Tue, 05 Dec 2023 12:38: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 1rAUhN-0004ag-K5; Tue, 05 Dec 2023 12:38:49 +0000
Received: by outflank-mailman (input) for mailman id 647748;
 Tue, 05 Dec 2023 12:38: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhL-00035L-SK
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:47 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 39ae3db5-936b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 13:38:45 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0Sw5R1Dz4f3kKg
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:40 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id C842F1A0373
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:41 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S10;
 Tue, 05 Dec 2023 20:38:41 +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: 39ae3db5-936b-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 06/14] scsicam: use bdev api in scsi_bios_ptable()
Date: Tue,  5 Dec 2023 20:37:20 +0800
Message-Id: <20231205123728.1866699-7-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S10
X-Coremail-Antispam: 1UD129KBjvdXoW7XFW7Jry5ZFy8tw45tFykGrg_yoW3CFX_CF
	WI9ryxWr1FkFs7Kw45tF43Zryvva15XF1I9FWSq34Svw1UXr95Kr4vvr17Zr47Gr4DJw1f
	Cr17WrWakrsFgjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr
	1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr
	0_Cr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUl
	2NtUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/scsi/scsicam.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/scsi/scsicam.c b/drivers/scsi/scsicam.c
index e2c7d8ef205f..1c99b964a0eb 100644
--- a/drivers/scsi/scsicam.c
+++ b/drivers/scsi/scsicam.c
@@ -32,11 +32,10 @@
  */
 unsigned char *scsi_bios_ptable(struct block_device *dev)
 {
-	struct address_space *mapping = bdev_whole(dev)->bd_inode->i_mapping;
 	unsigned char *res = NULL;
 	struct folio *folio;
 
-	folio = read_mapping_folio(mapping, 0, NULL);
+	folio = bdev_read_folio(bdev_whole(dev), 0);
 	if (IS_ERR(folio))
 		return NULL;
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647749.1011390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhP-0004y2-F7; Tue, 05 Dec 2023 12:38:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647749.1011390; Tue, 05 Dec 2023 12:38:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhP-0004xo-A3; Tue, 05 Dec 2023 12:38:51 +0000
Received: by outflank-mailman (input) for mailman id 647749;
 Tue, 05 Dec 2023 12:38: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhN-00035R-BF
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:49 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3ac40935-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:38:47 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0St4Mj2z4f3lCd
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:38 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 4C3721A093E
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:43 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S11;
 Tue, 05 Dec 2023 20:38:42 +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: 3ac40935-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 07/14] bcachefs: remove dead function bdev_sectors()
Date: Tue,  5 Dec 2023 20:37:21 +0800
Message-Id: <20231205123728.1866699-8-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S11
X-Coremail-Antispam: 1UD129KBjvdXoWrZFyrKrWkuF1fAw4fZrWUurg_yoW3Wrc_KF
	92vF18Ww4xZF1F93ZFqr1vvr4jv34UXrW2gFn0v3W7A3WDJ395ZFZ5KrW5ZrsrW397uFy2
	q3yxXrW7uryFkjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr
	1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr
	0_Cr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUl
	2NtUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

bdev_sectors() is not used hence remove it.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/bcachefs/util.h | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/fs/bcachefs/util.h b/fs/bcachefs/util.h
index b93d5f481c7e..932ca6f7a37b 100644
--- a/fs/bcachefs/util.h
+++ b/fs/bcachefs/util.h
@@ -541,11 +541,6 @@ static inline unsigned fract_exp_two(unsigned x, unsigned fract_bits)
 void bch2_bio_map(struct bio *bio, void *base, size_t);
 int bch2_bio_alloc_pages(struct bio *, size_t, gfp_t);
 
-static inline sector_t bdev_sectors(struct block_device *bdev)
-{
-	return bdev->bd_inode->i_size >> 9;
-}
-
 #define closure_bio_submit(bio, cl)					\
 do {									\
 	closure_get(cl);						\
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647750.1011398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhQ-0005FT-Q1; Tue, 05 Dec 2023 12:38:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647750.1011398; Tue, 05 Dec 2023 12: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 1rAUhQ-0005EE-LT; Tue, 05 Dec 2023 12:38:52 +0000
Received: by outflank-mailman (input) for mailman id 647750;
 Tue, 05 Dec 2023 12: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhP-00035L-J2
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:51 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b7b6ea4-936b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 13:38:49 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0Sw0lwyz4f3lVC
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:40 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id C43A71A0C7E
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:44 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S12;
 Tue, 05 Dec 2023 20:38:44 +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: 3b7b6ea4-936b-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 08/14] btrfs: use bdev apis
Date: Tue,  5 Dec 2023 20:37:22 +0800
Message-Id: <20231205123728.1866699-9-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S12
X-Coremail-Antispam: 1UD129KBjvJXoW3JFW5WF1UtFWDury7AFyfXrb_yoW3Kr45pr
	W7CF95trWUJrn8Ww4kWw4kAw1Sq3sFvay8CF9xGw4Ska45t3sYgFyvy34Fqa4Fkry8JF97
	XF4UtFWxuF1IkF7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPa14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F
	4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq
	3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7
	IYx2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4U
	M4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2
	kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E
	14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMI
	IYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E
	14v26r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r
	4j6F4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjfU
	oxhLUUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/btrfs/disk-io.c | 68 ++++++++++++++++++++--------------------------
 fs/btrfs/volumes.c | 17 ++++++------
 fs/btrfs/zoned.c   | 12 ++++----
 3 files changed, 42 insertions(+), 55 deletions(-)

diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 9317606017e2..cfe7ea417760 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3597,28 +3597,24 @@ ALLOW_ERROR_INJECTION(open_ctree, ERRNO);
 static void btrfs_end_super_write(struct bio *bio)
 {
 	struct btrfs_device *device = bio->bi_private;
-	struct bio_vec *bvec;
-	struct bvec_iter_all iter_all;
-	struct page *page;
-
-	bio_for_each_segment_all(bvec, bio, iter_all) {
-		page = bvec->bv_page;
+	struct folio_iter fi;
 
+	bio_for_each_folio_all(fi, bio) {
 		if (bio->bi_status) {
 			btrfs_warn_rl_in_rcu(device->fs_info,
 				"lost page write due to IO error on %s (%d)",
 				btrfs_dev_name(device),
 				blk_status_to_errno(bio->bi_status));
-			ClearPageUptodate(page);
-			SetPageError(page);
+			folio_clear_uptodate(fi.folio);
+			folio_set_error(fi.folio);
 			btrfs_dev_stat_inc_and_print(device,
 						     BTRFS_DEV_STAT_WRITE_ERRS);
 		} else {
-			SetPageUptodate(page);
+			folio_mark_uptodate(fi.folio);
 		}
 
-		put_page(page);
-		unlock_page(page);
+		folio_put(fi.folio);
+		folio_unlock(fi.folio);
 	}
 
 	bio_put(bio);
@@ -3628,9 +3624,8 @@ struct btrfs_super_block *btrfs_read_dev_one_super(struct block_device *bdev,
 						   int copy_num, bool drop_cache)
 {
 	struct btrfs_super_block *super;
-	struct page *page;
+	struct folio *folio;
 	u64 bytenr, bytenr_orig;
-	struct address_space *mapping = bdev->bd_inode->i_mapping;
 	int ret;
 
 	bytenr_orig = btrfs_sb_offset(copy_num);
@@ -3651,16 +3646,15 @@ struct btrfs_super_block *btrfs_read_dev_one_super(struct block_device *bdev,
 		 * Drop the page of the primary superblock, so later read will
 		 * always read from the device.
 		 */
-		invalidate_inode_pages2_range(mapping,
-				bytenr >> PAGE_SHIFT,
+		invalidate_bdev_range(bdev, bytenr >> PAGE_SHIFT,
 				(bytenr + BTRFS_SUPER_INFO_SIZE) >> PAGE_SHIFT);
 	}
 
-	page = read_cache_page_gfp(mapping, bytenr >> PAGE_SHIFT, GFP_NOFS);
-	if (IS_ERR(page))
-		return ERR_CAST(page);
+	folio = bdev_read_folio_gfp(bdev, bytenr >> PAGE_SHIFT, GFP_NOFS);
+	if (IS_ERR(folio))
+		return ERR_CAST(folio);
 
-	super = page_address(page);
+	super = folio_address(folio);
 	if (btrfs_super_magic(super) != BTRFS_MAGIC) {
 		btrfs_release_disk_super(super);
 		return ERR_PTR(-ENODATA);
@@ -3717,7 +3711,6 @@ static int write_dev_supers(struct btrfs_device *device,
 			    struct btrfs_super_block *sb, int max_mirrors)
 {
 	struct btrfs_fs_info *fs_info = device->fs_info;
-	struct address_space *mapping = device->bdev->bd_inode->i_mapping;
 	SHASH_DESC_ON_STACK(shash, fs_info->csum_shash);
 	int i;
 	int errors = 0;
@@ -3730,7 +3723,7 @@ static int write_dev_supers(struct btrfs_device *device,
 	shash->tfm = fs_info->csum_shash;
 
 	for (i = 0; i < max_mirrors; i++) {
-		struct page *page;
+		struct folio *folio;
 		struct bio *bio;
 		struct btrfs_super_block *disk_super;
 
@@ -3755,9 +3748,10 @@ static int write_dev_supers(struct btrfs_device *device,
 				    BTRFS_SUPER_INFO_SIZE - BTRFS_CSUM_SIZE,
 				    sb->csum);
 
-		page = find_or_create_page(mapping, bytenr >> PAGE_SHIFT,
-					   GFP_NOFS);
-		if (!page) {
+		folio = bdev_find_or_create_folio(device->bdev,
+						  bytenr >> PAGE_SHIFT,
+						  GFP_NOFS);
+		if (IS_ERR(folio)) {
 			btrfs_err(device->fs_info,
 			    "couldn't get super block page for bytenr %llu",
 			    bytenr);
@@ -3766,9 +3760,9 @@ static int write_dev_supers(struct btrfs_device *device,
 		}
 
 		/* Bump the refcount for wait_dev_supers() */
-		get_page(page);
+		folio_get(folio);
 
-		disk_super = page_address(page);
+		disk_super = folio_address(folio);
 		memcpy(disk_super, sb, BTRFS_SUPER_INFO_SIZE);
 
 		/*
@@ -3782,8 +3776,8 @@ static int write_dev_supers(struct btrfs_device *device,
 		bio->bi_iter.bi_sector = bytenr >> SECTOR_SHIFT;
 		bio->bi_private = device;
 		bio->bi_end_io = btrfs_end_super_write;
-		__bio_add_page(bio, page, BTRFS_SUPER_INFO_SIZE,
-			       offset_in_page(bytenr));
+		bio_add_folio_nofail(bio, folio, BTRFS_SUPER_INFO_SIZE,
+				     offset_in_folio(folio, bytenr));
 
 		/*
 		 * We FUA only the first super block.  The others we allow to
@@ -3819,7 +3813,7 @@ static int wait_dev_supers(struct btrfs_device *device, int max_mirrors)
 		max_mirrors = BTRFS_SUPER_MIRROR_MAX;
 
 	for (i = 0; i < max_mirrors; i++) {
-		struct page *page;
+		struct folio *folio;
 
 		ret = btrfs_sb_log_location(device, i, READ, &bytenr);
 		if (ret == -ENOENT) {
@@ -3834,27 +3828,23 @@ static int wait_dev_supers(struct btrfs_device *device, int max_mirrors)
 		    device->commit_total_bytes)
 			break;
 
-		page = find_get_page(device->bdev->bd_inode->i_mapping,
-				     bytenr >> PAGE_SHIFT);
-		if (!page) {
+		folio = bdev_get_folio(device->bdev, bytenr >> PAGE_SHIFT);
+		if (!folio) {
 			errors++;
 			if (i == 0)
 				primary_failed = true;
 			continue;
 		}
 		/* Page is submitted locked and unlocked once the IO completes */
-		wait_on_page_locked(page);
-		if (PageError(page)) {
+		folio_wait_locked(folio);
+		if (folio_test_error(folio)) {
 			errors++;
 			if (i == 0)
 				primary_failed = true;
 		}
 
-		/* Drop our reference */
-		put_page(page);
-
-		/* Drop the reference from the writing run */
-		put_page(page);
+		/* Drop our reference and the reference from the writing run */
+		folio_put_refs(folio, 2);
 	}
 
 	/* log error, force error return */
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 1cc6b5d5eb61..3930495aebd1 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -1230,16 +1230,16 @@ int btrfs_open_devices(struct btrfs_fs_devices *fs_devices,
 
 void btrfs_release_disk_super(struct btrfs_super_block *super)
 {
-	struct page *page = virt_to_page(super);
+	struct folio *folio = virt_to_folio(super);
 
-	put_page(page);
+	folio_put(folio);
 }
 
 static struct btrfs_super_block *btrfs_read_disk_super(struct block_device *bdev,
 						       u64 bytenr, u64 bytenr_orig)
 {
 	struct btrfs_super_block *disk_super;
-	struct page *page;
+	struct folio *folio;
 	void *p;
 	pgoff_t index;
 
@@ -1257,15 +1257,14 @@ static struct btrfs_super_block *btrfs_read_disk_super(struct block_device *bdev
 		return ERR_PTR(-EINVAL);
 
 	/* pull in the page with our super */
-	page = read_cache_page_gfp(bdev->bd_inode->i_mapping, index, GFP_KERNEL);
+	folio = bdev_read_folio_gfp(bdev, index, GFP_KERNEL);
+	if (IS_ERR(folio))
+		return ERR_CAST(folio);
 
-	if (IS_ERR(page))
-		return ERR_CAST(page);
-
-	p = page_address(page);
+	p = folio_address(folio);
 
 	/* align our pointer to the offset of the super block */
-	disk_super = p + offset_in_page(bytenr);
+	disk_super = p + offset_in_folio(folio, bytenr);
 
 	if (btrfs_super_bytenr(disk_super) != bytenr_orig ||
 	    btrfs_super_magic(disk_super) != BTRFS_MAGIC) {
diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 12066afc235c..77d5f906ff16 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -120,8 +120,6 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones,
 		return -ENOENT;
 	} else if (full[0] && full[1]) {
 		/* Compare two super blocks */
-		struct address_space *mapping = bdev->bd_inode->i_mapping;
-		struct page *page[BTRFS_NR_SB_LOG_ZONES];
 		struct btrfs_super_block *super[BTRFS_NR_SB_LOG_ZONES];
 		int i;
 
@@ -129,15 +127,15 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones,
 			u64 zone_end = (zones[i].start + zones[i].capacity) << SECTOR_SHIFT;
 			u64 bytenr = ALIGN_DOWN(zone_end, BTRFS_SUPER_INFO_SIZE) -
 						BTRFS_SUPER_INFO_SIZE;
-
-			page[i] = read_cache_page_gfp(mapping,
+			struct folio *folio = bdev_read_folio_gfp(bdev,
 					bytenr >> PAGE_SHIFT, GFP_NOFS);
-			if (IS_ERR(page[i])) {
+
+			if (IS_ERR(folio)) {
 				if (i == 1)
 					btrfs_release_disk_super(super[0]);
-				return PTR_ERR(page[i]);
+				return PTR_ERR(folio);
 			}
-			super[i] = page_address(page[i]);
+			super[i] = folio_address(folio);
 		}
 
 		if (btrfs_super_generation(super[0]) >
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647751.1011409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhS-0005Yg-9V; Tue, 05 Dec 2023 12:38:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647751.1011409; Tue, 05 Dec 2023 12:38:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhS-0005XS-4T; Tue, 05 Dec 2023 12:38:54 +0000
Received: by outflank-mailman (input) for mailman id 647751;
 Tue, 05 Dec 2023 12:38: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhQ-00035R-9K
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:52 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c5c2c12-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:38:51 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0Sx4Cydz4f3lDS
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:41 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 4871A1A0C92
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:46 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S13;
 Tue, 05 Dec 2023 20:38:45 +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: 3c5c2c12-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 09/14] cramfs: use bdev apis in cramfs_blkdev_read()
Date: Tue,  5 Dec 2023 20:37:23 +0800
Message-Id: <20231205123728.1866699-10-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S13
X-Coremail-Antispam: 1UD129KBjvJXoW7Ww17ur1fXryfAF1rJr4UCFg_yoW8trW7pF
	1akanIkr4q9ry29ay3Xr1DZF15Ga4kXF4kCFWxuw43Z3W5trna9r10kry0qFW8GrZFqryv
	9r4jkryfur15Ka7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUP214x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j6r
	xdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr
	0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUbCe
	HDUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Also do some cleanup that there is no need for two for loop, and remove
local array pages.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/cramfs/inode.c | 35 ++++++++++++-----------------------
 1 file changed, 12 insertions(+), 23 deletions(-)

diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c
index 60dbfa0f8805..46ff4e5506fd 100644
--- a/fs/cramfs/inode.c
+++ b/fs/cramfs/inode.c
@@ -183,9 +183,6 @@ static int next_buffer;
 static void *cramfs_blkdev_read(struct super_block *sb, unsigned int offset,
 				unsigned int len)
 {
-	struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
-	struct file_ra_state ra = {};
-	struct page *pages[BLKS_PER_BUF];
 	unsigned i, blocknr, buffer;
 	unsigned long devsize;
 	char *data;
@@ -214,37 +211,29 @@ static void *cramfs_blkdev_read(struct super_block *sb, unsigned int offset,
 	devsize = bdev_nr_bytes(sb->s_bdev) >> PAGE_SHIFT;
 
 	/* Ok, read in BLKS_PER_BUF pages completely first. */
-	file_ra_state_init(&ra, mapping);
-	page_cache_sync_readahead(mapping, &ra, NULL, blocknr, BLKS_PER_BUF);
-
-	for (i = 0; i < BLKS_PER_BUF; i++) {
-		struct page *page = NULL;
-
-		if (blocknr + i < devsize) {
-			page = read_mapping_page(mapping, blocknr + i, NULL);
-			/* synchronous error? */
-			if (IS_ERR(page))
-				page = NULL;
-		}
-		pages[i] = page;
-	}
+	bdev_sync_readahead(sb->s_bdev, NULL, NULL, blocknr, BLKS_PER_BUF);
 
 	buffer = next_buffer;
 	next_buffer = NEXT_BUFFER(buffer);
 	buffer_blocknr[buffer] = blocknr;
 	buffer_dev[buffer] = sb;
-
 	data = read_buffers[buffer];
+
 	for (i = 0; i < BLKS_PER_BUF; i++) {
-		struct page *page = pages[i];
+		struct folio *folio = NULL;
+
+		if (blocknr + i < devsize)
+			folio = bdev_read_folio(sb->s_bdev, blocknr + i);
 
-		if (page) {
-			memcpy_from_page(data, page, 0, PAGE_SIZE);
-			put_page(page);
-		} else
+		if (IS_ERR_OR_NULL(folio)) {
 			memset(data, 0, PAGE_SIZE);
+		} else {
+			memcpy_from_folio(data, folio, 0, PAGE_SIZE);
+			folio_put(folio);
+		}
 		data += PAGE_SIZE;
 	}
+
 	return read_buffers[buffer] + offset;
 }
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647752.1011417 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhT-0005hd-8o; Tue, 05 Dec 2023 12:38:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647752.1011417; Tue, 05 Dec 2023 12: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 1rAUhS-0005fW-NZ; Tue, 05 Dec 2023 12:38:54 +0000
Received: by outflank-mailman (input) for mailman id 647752;
 Tue, 05 Dec 2023 12:38: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhR-00035R-9b
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:53 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d3f98b9-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:38:51 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0T25FW2z4f3kK8
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:46 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id C18DC1A0A55
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:47 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S14;
 Tue, 05 Dec 2023 20:38:47 +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: 3d3f98b9-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 10/14] erofs: use bdev api
Date: Tue,  5 Dec 2023 20:37:24 +0800
Message-Id: <20231205123728.1866699-11-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S14
X-Coremail-Antispam: 1UD129KBjvJXoW7ZF4kGw13Gw48JryUZw45Awb_yoW8trW5pF
	W3Cr1fGrWrXrn09wn2gr4UXr43ta97Jw48CayxJw1Fv3yUtryagFy0ywnrGr4UKr4vkrs2
	qF1IvrWxCw1UGrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j6r
	xdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Cr1j6rxdMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JV
	WxJwCI42IY6I8E87Iv6xkF7I0E14v26F4UJVW0obIYCTnIWIevJa73UjIFyTuYvjfUoxhL
	UUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/erofs/data.c     | 17 +++++++++++------
 fs/erofs/internal.h |  1 +
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/fs/erofs/data.c b/fs/erofs/data.c
index c98aeda8abb2..b9d2c90f9b22 100644
--- a/fs/erofs/data.c
+++ b/fs/erofs/data.c
@@ -32,8 +32,8 @@ void erofs_put_metabuf(struct erofs_buf *buf)
 void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
 		  enum erofs_kmap_type type)
 {
-	struct inode *inode = buf->inode;
-	erofs_off_t offset = (erofs_off_t)blkaddr << inode->i_blkbits;
+	u8 blkbits = buf->inode ? buf->inode->i_blkbits : block_bits(buf->bdev);
+	erofs_off_t offset = (erofs_off_t)blkaddr << blkbits;
 	pgoff_t index = offset >> PAGE_SHIFT;
 	struct page *page = buf->page;
 	struct folio *folio;
@@ -43,7 +43,9 @@ void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
 		erofs_put_metabuf(buf);
 
 		nofs_flag = memalloc_nofs_save();
-		folio = read_cache_folio(inode->i_mapping, index, NULL, NULL);
+		folio = buf->inode ?
+			read_mapping_folio(buf->inode->i_mapping, index, NULL) :
+			bdev_read_folio(buf->bdev, index);
 		memalloc_nofs_restore(nofs_flag);
 		if (IS_ERR(folio))
 			return folio;
@@ -67,10 +69,13 @@ void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
 
 void erofs_init_metabuf(struct erofs_buf *buf, struct super_block *sb)
 {
-	if (erofs_is_fscache_mode(sb))
+	if (erofs_is_fscache_mode(sb)) {
 		buf->inode = EROFS_SB(sb)->s_fscache->inode;
-	else
-		buf->inode = sb->s_bdev->bd_inode;
+		buf->bdev = NULL;
+	} else {
+		buf->inode = NULL;
+		buf->bdev = sb->s_bdev;
+	}
 }
 
 void *erofs_read_metabuf(struct erofs_buf *buf, struct super_block *sb,
diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
index b0409badb017..a68b0924c052 100644
--- a/fs/erofs/internal.h
+++ b/fs/erofs/internal.h
@@ -224,6 +224,7 @@ enum erofs_kmap_type {
 
 struct erofs_buf {
 	struct inode *inode;
+	struct block_device *bdev;
 	struct page *page;
 	void *base;
 	enum erofs_kmap_type kmap_type;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:38:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:38:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647755.1011429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUhW-0006Mr-5o; Tue, 05 Dec 2023 12:38:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647755.1011429; Tue, 05 Dec 2023 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 1rAUhV-0006Hr-KC; Tue, 05 Dec 2023 12:38:57 +0000
Received: by outflank-mailman (input) for mailman id 647755;
 Tue, 05 Dec 2023 12:38: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUhU-00035R-AP
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:38:56 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e2a5a6e-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:38:54 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Sl0T30jVNz4f3kG6
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:47 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 4AE061A0CAB
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:38:49 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw7GGW9lr8E8Cw--.35507S15;
 Tue, 05 Dec 2023 20:38:48 +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: 3e2a5a6e-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 11/14] ext4: use bdev apis
Date: Tue,  5 Dec 2023 20:37:25 +0800
Message-Id: <20231205123728.1866699-12-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw7GGW9lr8E8Cw--.35507S15
X-Coremail-Antispam: 1UD129KBjvJXoW3Jr18GF1xAr47Kw47JFyxKrg_yoW7tryUpa
	sxCFyxArWDuFyj9a97GrsrX3WY9w10kFyxGryxu34avrW2qr9aqFykKF1xAFyFyrW8Zry8
	XFWjkrWfCr45KrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j6r
	xdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Cr1j6rxdMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JV
	WxJwCI42IY6I8E87Iv6xkF7I0E14v26F4UJVW0obIYCTnIWIevJa73UjIFyTuYvjfUoxhL
	UUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/ext4/dir.c               |  6 ++----
 fs/ext4/ext4_jbd2.c         |  6 +++---
 fs/ext4/super.c             | 27 ++++-----------------------
 include/linux/buffer_head.h |  5 +++--
 4 files changed, 12 insertions(+), 32 deletions(-)

diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
index 3985f8c33f95..64e35eb6a324 100644
--- a/fs/ext4/dir.c
+++ b/fs/ext4/dir.c
@@ -191,10 +191,8 @@ static int ext4_readdir(struct file *file, struct dir_context *ctx)
 			pgoff_t index = map.m_pblk >>
 					(PAGE_SHIFT - inode->i_blkbits);
 			if (!ra_has_index(&file->f_ra, index))
-				page_cache_sync_readahead(
-					sb->s_bdev->bd_inode->i_mapping,
-					&file->f_ra, file,
-					index, 1);
+				bdev_sync_readahead(sb->s_bdev, &file->f_ra,
+						    file, index, 1);
 			file->f_ra.prev_pos = (loff_t)index << PAGE_SHIFT;
 			bh = ext4_bread(NULL, inode, map.m_lblk, 0);
 			if (IS_ERR(bh)) {
diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c
index d1a2e6624401..c1bf3a00fad9 100644
--- a/fs/ext4/ext4_jbd2.c
+++ b/fs/ext4/ext4_jbd2.c
@@ -206,7 +206,6 @@ static void ext4_journal_abort_handle(const char *caller, unsigned int line,
 
 static void ext4_check_bdev_write_error(struct super_block *sb)
 {
-	struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
 	int err;
 
@@ -216,9 +215,10 @@ static void ext4_check_bdev_write_error(struct super_block *sb)
 	 * we could read old data from disk and write it out again, which
 	 * may lead to on-disk filesystem inconsistency.
 	 */
-	if (errseq_check(&mapping->wb_err, READ_ONCE(sbi->s_bdev_wb_err))) {
+	if (bdev_wb_err_check(sb->s_bdev, READ_ONCE(sbi->s_bdev_wb_err))) {
 		spin_lock(&sbi->s_bdev_wb_lock);
-		err = errseq_check_and_advance(&mapping->wb_err, &sbi->s_bdev_wb_err);
+		err = bdev_wb_err_check_and_advance(sb->s_bdev,
+						    &sbi->s_bdev_wb_err);
 		spin_unlock(&sbi->s_bdev_wb_lock);
 		if (err)
 			ext4_error_err(sb, -err,
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 0980845c8b8f..243671d86db3 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -244,8 +244,7 @@ static struct buffer_head *__ext4_sb_bread_gfp(struct super_block *sb,
 struct buffer_head *ext4_sb_bread(struct super_block *sb, sector_t block,
 				   blk_opf_t op_flags)
 {
-	gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping,
-			~__GFP_FS) | __GFP_MOVABLE;
+	gfp_t gfp = bdev_gfp_constraint(sb->s_bdev, ~__GFP_FS) | __GFP_MOVABLE;
 
 	return __ext4_sb_bread_gfp(sb, block, op_flags, gfp);
 }
@@ -253,8 +252,7 @@ struct buffer_head *ext4_sb_bread(struct super_block *sb, sector_t block,
 struct buffer_head *ext4_sb_bread_unmovable(struct super_block *sb,
 					    sector_t block)
 {
-	gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping,
-			~__GFP_FS);
+	gfp_t gfp = bdev_gfp_constraint(sb->s_bdev, ~__GFP_FS);
 
 	return __ext4_sb_bread_gfp(sb, block, 0, gfp);
 }
@@ -492,22 +490,6 @@ static void ext4_maybe_update_superblock(struct super_block *sb)
 		schedule_work(&EXT4_SB(sb)->s_sb_upd_work);
 }
 
-/*
- * The del_gendisk() function uninitializes the disk-specific data
- * structures, including the bdi structure, without telling anyone
- * else.  Once this happens, any attempt to call mark_buffer_dirty()
- * (for example, by ext4_commit_super), will cause a kernel OOPS.
- * This is a kludge to prevent these oops until we can put in a proper
- * hook in del_gendisk() to inform the VFS and file system layers.
- */
-static int block_device_ejected(struct super_block *sb)
-{
-	struct inode *bd_inode = sb->s_bdev->bd_inode;
-	struct backing_dev_info *bdi = inode_to_bdi(bd_inode);
-
-	return bdi->dev == NULL;
-}
-
 static void ext4_journal_commit_callback(journal_t *journal, transaction_t *txn)
 {
 	struct super_block		*sb = journal->j_private;
@@ -5585,8 +5567,7 @@ static int __ext4_fill_super(struct fs_context *fc, struct super_block *sb)
 	 * used to detect the metadata async write error.
 	 */
 	spin_lock_init(&sbi->s_bdev_wb_lock);
-	errseq_check_and_advance(&sb->s_bdev->bd_inode->i_mapping->wb_err,
-				 &sbi->s_bdev_wb_err);
+	bdev_wb_err_check_and_advance(sb->s_bdev, &sbi->s_bdev_wb_err);
 	EXT4_SB(sb)->s_mount_state |= EXT4_ORPHAN_FS;
 	ext4_orphan_cleanup(sb, es);
 	EXT4_SB(sb)->s_mount_state &= ~EXT4_ORPHAN_FS;
@@ -6185,7 +6166,7 @@ static int ext4_commit_super(struct super_block *sb)
 
 	if (!sbh)
 		return -EINVAL;
-	if (block_device_ejected(sb))
+	if (bdev_ejected(sb->s_bdev))
 		return -ENODEV;
 
 	ext4_update_super(sb);
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index 5f23ee599889..3a88b295b4f2 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -15,6 +15,7 @@
 #include <linux/pagemap.h>
 #include <linux/wait.h>
 #include <linux/atomic.h>
+#include <linux/blkdev.h>
 
 enum bh_state_bits {
 	BH_Uptodate,	/* Contains valid data */
@@ -341,7 +342,7 @@ static inline struct buffer_head *getblk_unmovable(struct block_device *bdev,
 {
 	gfp_t gfp;
 
-	gfp = mapping_gfp_constraint(bdev->bd_inode->i_mapping, ~__GFP_FS);
+	gfp = bdev_gfp_constraint(bdev, ~__GFP_FS);
 	gfp |= __GFP_NOFAIL;
 
 	return bdev_getblk(bdev, block, size, gfp);
@@ -352,7 +353,7 @@ static inline struct buffer_head *__getblk(struct block_device *bdev,
 {
 	gfp_t gfp;
 
-	gfp = mapping_gfp_constraint(bdev->bd_inode->i_mapping, ~__GFP_FS);
+	gfp = bdev_gfp_constraint(bdev, ~__GFP_FS);
 	gfp |= __GFP_MOVABLE | __GFP_NOFAIL;
 
 	return bdev_getblk(bdev, block, size, gfp);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:46:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:46:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647775.1011439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUoN-0004fG-Qr; Tue, 05 Dec 2023 12:46:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647775.1011439; Tue, 05 Dec 2023 12:46:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUoN-0004f9-Nx; Tue, 05 Dec 2023 12:46:03 +0000
Received: by outflank-mailman (input) for mailman id 647775;
 Tue, 05 Dec 2023 12:46:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAUoM-0004f3-NM
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:46:02 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 3dd585ba-936c-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:46:00 +0100 (CET)
Received: from mg.gitlab.com (12.226.74.34.bc.googleusercontent.com
 [34.74.226.12]) by
 0e9384c414f7 with SMTP id 656f1b861268d98757e71874 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 12:45:58 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 3dd585ba-936c-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701780358; x=1701787558; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=XwEHwIjupGDo6DDD6QASE+ALG2LEcjF/LNXGMPSL62g=;
 b=bEyD9agiQf1e1JaOXW/eMmbx0LrKb25rU/WnEIea+z8M/uu8FQYSsBomtZZkrr03XXXJs2T3NVmSV+a8UDslKOL3XaIDovXvh+kQAbGc2FmAnHN5n6dTpasZzN4ijbGoIghbY6MqEt0DCiw8mMKgQjNot4+O63Mwyp7F0EuJhw8=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 12:45:58 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656f1b86b8c1e_2c3459950164943@gitlab-sidekiq-catchall-v2-69c84d7947-7mmfn.mail>
Subject: xen | Failed pipeline for staging | ff117806
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656f1b86a9811_2c345995016489d";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1095625095
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656f1b86a9811_2c345995016489d
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1095625095 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: ff117806 ( https://gitlab.com/xen-project/xen/-/commit/ff1178062094837d55ef342070e58316c43a54c9 )
Commit Message: xen/domain: fix error path in domain_create()

...
Commit Author: Stewart Hildebrand ( https://gitlab.com/stewarthildebrand )
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )


Pipeline #1095625095 ( https://gitlab.com/xen-project/xen/-/pipelines/1095625095 ) triggered by Ganis ( https://gitlab.com/ganis )
had 1 failed job.

Job #5681497106 ( https://gitlab.com/xen-project/xen/-/jobs/5681497106/raw )

Stage: test
Name: adl-smoke-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | ff117806</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1095625095 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/ff1178062094837d55=
ef342070e58316c43a54c9" style=3D"color: #3777b0; text-decoration: none;">=

ff117806
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/domain: fix error path in domain_create()

...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/86887961f183325c6bc3eca04f6fd4f4?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/stewarthildebrand" style=3D=
"color: #333333; text-decoration: none;">
Stewart Hildebrand
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1095625095">#1095625095</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 1 failed job
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed job
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5681497106" style=3D=
"color: #3777b0; text-decoration: none;">
adl-smoke-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656f1b86a9811_2c345995016489d--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:46:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:46:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647802.1011450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUpH-0005nV-6C; Tue, 05 Dec 2023 12:46:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647802.1011450; Tue, 05 Dec 2023 12:46:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUpH-0005nO-2g; Tue, 05 Dec 2023 12:46:59 +0000
Received: by outflank-mailman (input) for mailman id 647802;
 Tue, 05 Dec 2023 12:46: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=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUih-00035R-B3
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:40:11 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b6b716b-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:40:10 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0VS0Kd0z4f3l1v
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:40:00 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id B580B1A0539
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:40:04 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgCnqxEiGm9lNdk8Cw--.27561S4;
 Tue, 05 Dec 2023 20:40: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: 6b6b716b-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 13/14] gfs2: use bdev api
Date: Tue,  5 Dec 2023 20:39:00 +0800
Message-Id: <20231205123900.1866871-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgCnqxEiGm9lNdk8Cw--.27561S4
X-Coremail-Antispam: 1UD129KBjvJXoW7ZFyUZFWfCw1kJrWxJrW3GFg_yoW8Jw47pF
	yDAF1akF4DWrnIga1kZF4rt3Wj9aykG3y0yr95Aw1YvrsrGw1ag392kF4DJF4UXa97Xws0
	ga1ay3yakr1aqr7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_Gr0_Zr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	ZNVDUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/gfs2/glock.c      | 2 +-
 fs/gfs2/ops_fstype.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index f28c67181230..c66b0ed07e15 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -1227,7 +1227,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number,
 	mapping = gfs2_glock2aspace(gl);
 	if (mapping) {
                 mapping->a_ops = &gfs2_meta_aops;
-		mapping->host = s->s_bdev->bd_inode;
+		bdev_correlate_mapping(s->s_bdev, mapping);
 		mapping->flags = 0;
 		mapping_set_gfp_mask(mapping, GFP_NOFS);
 		mapping->i_private_data = NULL;
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 00ce89bdf32c..3145a56c88cb 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -114,7 +114,7 @@ static struct gfs2_sbd *init_sbd(struct super_block *sb)
 
 	address_space_init_once(mapping);
 	mapping->a_ops = &gfs2_rgrp_aops;
-	mapping->host = sb->s_bdev->bd_inode;
+	bdev_correlate_mapping(sb->s_bdev, mapping);
 	mapping->flags = 0;
 	mapping_set_gfp_mask(mapping, GFP_NOFS);
 	mapping->i_private_data = NULL;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:50:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:50:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647812.1011460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUsK-00017R-Os; Tue, 05 Dec 2023 12:50:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647812.1011460; Tue, 05 Dec 2023 12:50:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUsK-00017K-LB; Tue, 05 Dec 2023 12:50:08 +0000
Received: by outflank-mailman (input) for mailman id 647812;
 Tue, 05 Dec 2023 12:50:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUil-00035R-Tu
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:40:15 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e5e27de-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:40:14 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0VY3HbQz4f3l1J
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:40:05 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 28AE11A0B3B
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:40:10 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgA3iA4nGm9ljNo8Cw--.18416S4;
 Tue, 05 Dec 2023 20:40:09 +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: 6e5e27de-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 14/14] nilfs2: use bdev api in nilfs_attach_log_writer()
Date: Tue,  5 Dec 2023 20:39:05 +0800
Message-Id: <20231205123905.1866894-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgA3iA4nGm9ljNo8Cw--.18416S4
X-Coremail-Antispam: 1UD129KBjvdXoW7XFWxAFW7ZFyrGFW3ZFyDGFg_yoW3Gwc_Zr
	n8GryvgryFqFZ3Zw4DCrZ0yryrJ3WrKa18XryrGFyrGF40yrs5Cr1qvr4jqayUWwnrXws3
	JwnrWr98tw15XjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbxxFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w
	A2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j
	6rxdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s
	0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xII
	jxv20xvE14v26r126r1DMcIj6I8E87Iv67AKxVW8JVWxJwAm72CE4IkC6x0Yz7v_Jr0_Gr
	1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxa
	n2IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrV
	AFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1l
	IxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxV
	AFwI0_Cr1j6rxdMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8
	JVWxJwCI42IY6I8E87Iv6xkF7I0E14v26F4UJVW0obIYCTnIWIevJa73UjIFyTuYvjfU59
	NVDUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/nilfs2/segment.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index 52995838f2de..be47a1d21889 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -2824,7 +2824,7 @@ int nilfs_attach_log_writer(struct super_block *sb, struct nilfs_root *root)
 	if (!nilfs->ns_writer)
 		return -ENOMEM;
 
-	inode_attach_wb(nilfs->ns_bdev->bd_inode, NULL);
+	bdev_attach_wb(nilfs->ns_bdev);
 
 	err = nilfs_segctor_start_thread(nilfs->ns_writer);
 	if (unlikely(err))
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:51:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:51:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647818.1011470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUtJ-00027a-0m; Tue, 05 Dec 2023 12:51:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647818.1011470; Tue, 05 Dec 2023 12:51:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUtI-00027T-U2; Tue, 05 Dec 2023 12:51:08 +0000
Received: by outflank-mailman (input) for mailman id 647818;
 Tue, 05 Dec 2023 12:51: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=iwiP=HQ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1rAUtI-00027L-3i
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:51:08 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20601.outbound.protection.outlook.com
 [2a01:111:f400:7eae::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f35d75fb-936c-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 13:51:05 +0100 (CET)
Received: from SN6PR12MB2621.namprd12.prod.outlook.com (2603:10b6:805:73::15)
 by IA1PR12MB8221.namprd12.prod.outlook.com (2603:10b6:208:3f0::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 12:51:00 +0000
Received: from SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1]) by SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1%7]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 12: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>
X-Inumbo-ID: f35d75fb-936c-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=m6IHlrgSy9a1MwSDvm5hqjkO2BSF156Lc074zx6F6bAwg+9jDOTUgaACdDWqxcUJ9LKXDN4GbmOmU3arq+l7Drcr55BV6Ckh+UhKH52Z7DiCL3jgUwGOQXTHthoVHukSICOnCyy/dHPPcNkbeGsXSNU1PhTVnFi2+Q0GVHlw2uheb1vPaHT7ODuB0PETcwR7P6Uj/2RFH68SNLGTHFX7GubuN167xAORtY1kVXBJxIGMayFaJvAi/hHsaciSgvPHeSixXpf7VTt7lfpCxNsHLkvrokfs5yz1Cs6EJHVX7Ow7mG5MxLatazsQ9FdDItaQQCsWmvCUmBpp00QVRsLLpg==
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=wRruaQ6Sd30IO8DwWloQV6HUOYIrN6z/l1RBijTxObc=;
 b=MElHGqKcq3L2QvzpDesiS+969bJphJyHktiYNQ1snfVVpBuE5cykokG/d8Q95SV3h2j+zEUlyTLDxuT7wRz/W3CTYfxNwqdmAqIHKOII0NjoydVBwaQgNU0DaQ4ttZuK7qiwt8vL+gSo6wHoZ96FObF1VlK0Nmmu5rB1GAQq1v+wD3GpRzpI+ePo+fBQFywZRbIp7S9XU0K/LAepAT6IbnBqs1OBa5XX6aUvmPgTOiXKhXfnIgt/ilfcGvrPBR/I+LRx0p5v1BONi9lKV5p2oNdKo9MfoX9XcmnnZdTw+6r7s+hVR+4pWOJO4/IkPxA1NiLoW/jLXzlOjXUm1r1eCg==
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=wRruaQ6Sd30IO8DwWloQV6HUOYIrN6z/l1RBijTxObc=;
 b=OL+SCTq8UosAp4rJeQSgczJrCxiLZlfVI4hh8JuRtsM7qIX/aTh005BD5IZT7uxdJ9HJYJ8AzxmR/9cPpaVQM3bhbRHNRNrfYLrF2BEXaWxt3HOHLHDi8lCMkAo0MU0/AnIWzeKDfVHoTCTtmFgEPjw8YfamjO9mctJBDJzvOLA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
Date: Tue, 5 Dec 2023 12:50:53 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, sstabellini@kernel.org,
 stefano.stabellini@amd.com, bertrand.marquis@arm.com,
 Volodymyr_Babchuk@epam.com
Cc: xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
 <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
 <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org>
 <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PA7P264CA0312.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:395::25) To SN6PR12MB2621.namprd12.prod.outlook.com
 (2603:10b6:805:73::15)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN6PR12MB2621:EE_|IA1PR12MB8221:EE_
X-MS-Office365-Filtering-Correlation-Id: 3344bc55-8230-4551-1ef9-08dbf590d464
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	nAreizocERUUPTT9cmYdPwJ72DQex43yTh6bwp+r/jSI332LiK5G5FTBb17UjjI6EeiX22EMbwXyo4DYYvx9XMevEupIBtSlmP49ThWWh2BTjxunQ/MUdH+e6H6MG9DurzcBB5ItJRqLCq7yj9KfL6JU1DvLBxKvd0wYna/Mko+tfS3DSKpqGcXZ23cnKLFhYRyEdrLO1iI3vPg7qjFIoWm7172/sSP9off9wCCn9szbeNnKL3nwCtec/I7I0M+O1JiamlRO1EKggnxWrG1E/v1CK/N6EZHaq9EyDGspN5RSnvEHS0Xip46nyDV9a+9R+1QF9lZsUkhMHGR+44rDesbX1A0aNpv4f3jqU8ubfVVmIsOKWtAx3ggS+TPb0bMx2PnGSCl/Y0OxHIdltMAcchSpy/JkigbxuoYJhQ6HMfMl2a4o9tGQb157lJHJGDBbcHW3tiM0g8nijEefpC+T2CPh9L90GJ7+4ZeAZyxZb6DhSAvxU1LntfMhLCZhJDw51ZC9kf0POcAKHLzTQKNRB7v8iTI/vlt9yZkgW7dGtz0TjZsA7wKaNJybUv5F5GdVHz+jJ6a6cPdT6MK6FG2n1n1kLGCrTO5NEyGg1HFRaUpzyxJhl16GPRkHHg75z4h50xahHDKwOrrbNE3TZ0DhHtsXF//qHamJBqp7XJvuUuAoJI95WzRs/MQTranYWOmj
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR12MB2621.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(366004)(346002)(396003)(136003)(39860400002)(230922051799003)(230173577357003)(230273577357003)(186009)(64100799003)(451199024)(1800799012)(66476007)(110136005)(66946007)(316002)(66556008)(478600001)(6486002)(6666004)(5660300002)(41300700001)(36756003)(2906002)(31696002)(8676002)(4326008)(8936002)(2616005)(38100700002)(83380400001)(26005)(53546011)(6506007)(6512007)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bTlPUzV1ZVczTTJIUUsrbW8yb3JpeXlqUzdLL096ckV4MWpOUzEwL2pXUFh1?=
 =?utf-8?B?Wmkrd3YvS2E5a2t4UEtZbnI3VkpkNWRTZFJYTkNRTmhHU0JtTC8yUWRnV25o?=
 =?utf-8?B?SVpDeVpvTG1nM1cwTTFVU3hhYllKSlVKQllQVWk4Kzl4RnRCQmNQNFcwMmJt?=
 =?utf-8?B?TVM2RitvUTY3NzViUzlIVytFMTdUNjZzMVZ0eDFudkhVako2aTZ3M1E4c2o5?=
 =?utf-8?B?Nmp1aXFoMWxpdU9oSHNsT3hmdUk3Wkg1U2x2VHZHODRXVEEzVkcvT0gycUx0?=
 =?utf-8?B?L2NFWTFDdjBHbEc4MUQrWVV6Um8rNDJ4RWRnZmVCK3JqWC8vZXJ6MkFqWi9V?=
 =?utf-8?B?RS9wWWhNdjJUbmtRSG1mZThMSjJPbzV4dGRRRExMbWlaTGQ1ZDl4V2VjY3ZM?=
 =?utf-8?B?T3pOM2RFQTIrVUh2bUNUa2UxNU85Y2dGSWhXcU1pUjZwcWIzUHdGcGlzWmhs?=
 =?utf-8?B?RENtYXN3bUUwWHpBVHpUbWhPSlRrTWRZTHdHK2hvTXFYUWIxZ3k0QlBEeXQ2?=
 =?utf-8?B?dGdNUFozK1ZNSXEyV0VWK3NGYk9YVm9ENlNRWVRyZTVnbWxFRkxHRm1kMjhS?=
 =?utf-8?B?YzdVY09wb2RYdEJFOVM3SytGRHdlaFlrUDAwaGkvaG9SeFhvVlhUbGFjcXZJ?=
 =?utf-8?B?Y3VmdHBoMnQyYkFIZmpuTEhWclRjNjRGMjVzdGRMUWtvWkg1YXV0dmdmcE5t?=
 =?utf-8?B?aHhOVFl5Sjdvbm9JZUlPcWlaemVMaXd4UFM4bzZ3MWozSFZiTVVTQTRJQVAw?=
 =?utf-8?B?dDZabDZHMWwrUzhLemtxY0hieXI0QkJGaS9oUm1ReldPQWN4UHNSc2p4YlFa?=
 =?utf-8?B?OW93VVY3aXFGUDBySDZVazZVR1UyUW1JZDBpbWlyUUc2cllXWjhiUjVyQmta?=
 =?utf-8?B?TjRLMDNNUUcxQjgxUHJFdXhIRUczRGFseFNhQkhmNWQvZS96SWRZMHdzQmxm?=
 =?utf-8?B?REVuQUlLYWVYUXR2SzR0T0wvT2lLcU16SzdFejIvUTZPdVQ2SW1YSnZibXNs?=
 =?utf-8?B?amtQZ21wNmdkZ2ZzQitkVEVEUGZYYUMrL1RYNVBERTNzcE92S2t0Vy80eElS?=
 =?utf-8?B?alJGYVZqSzl1SXgwM0tiOFNUU0hpSkJYdE1taVlEaFFsZzBsd3JvbGpVcVJs?=
 =?utf-8?B?NmNObllNVEFvNmJDZmFSbUQvQkUzTUVmZ043aE55bEx2SkY1L2h4MEswQWRq?=
 =?utf-8?B?THVaY0tOdzVmZTA4OUk5alpXOGFxbjFnK0tWRzVLN3llaWsrbnUvNkJ6dWdB?=
 =?utf-8?B?NVpWZXhvODV4K3NyaVdXMDY3SnJxOE1taDZVUStYMkZ0MExjSzhlaWxSa0tZ?=
 =?utf-8?B?QmV5S3pLbHF4SmVCdWprQTR1S2dXWWVRbUkzWDVNcGtpV1ZYZmNPOUJPYkxh?=
 =?utf-8?B?WmY4N1RwV1lkK1pON3F0c0I3dU15WTRYb1RWYW52SHpmVVFSL2JTalZUSDR2?=
 =?utf-8?B?N1N2eEtOeHN6OXdCNUpvd244azZqSWxXNTY3LzllZDNhZTI1WDdSelBOMlRo?=
 =?utf-8?B?NWZLamRvUHF0Tm1UN3NpYW5IS0ROZDhCdy9IMWE1ZXphVHA2NGNGZ05ORS9w?=
 =?utf-8?B?YTE5TjlEcjF3OE9JTHk1MlBGWkt1UEVvYnh5T2l1ZGdHaGtaVnRNQm5BWUtN?=
 =?utf-8?B?bit2NnAyM2pJajI4ZDdhYStKZWEzb1FoZVd5RHFZSDcyV1NmRjFQVys1SEE2?=
 =?utf-8?B?TEJ6VndVdzlKcFdkSWp3OHREdHZxT1NibjNOanQxNUMyMnNxVmRDSldoaTJx?=
 =?utf-8?B?QkYwKzg5N0tIcnZFdk5TSjVyM1JNb25lbjBmdjloZnhBRWJOTUVvSm1uUUxL?=
 =?utf-8?B?WDQ1SU4zeWlIeTRmOEdLYXlobjdIZElzWXQ1YS9kNlM5c1F1OHQ3OFVicWtB?=
 =?utf-8?B?OEN1Um5CQjZxNmlZVEpMUzdvVWw4QTZ5cktscjBGNWZiY3kzMFZwOVprWGd4?=
 =?utf-8?B?NXJXVnVCYkhIOTVyY2s3dlJIL3Z0c2FtK0tDeGR0enZYaWFDdE96ZGozRjJi?=
 =?utf-8?B?S1htRkJ5UEFVS0NOV1ZYRXRGT1dKM2IrcFp4UEJlaTdMOTIrcjFhZXdxUFRR?=
 =?utf-8?B?SWc0NHJXczY1SkE5aFUzdzNyWTE5d1NSRVdIWGNOc3ZUR0RYamVTTkxpTUc1?=
 =?utf-8?Q?exqL7ZtE/Exn72FVjJfmIqi1E?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3344bc55-8230-4551-1ef9-08dbf590d464
X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2621.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 12:50:59.2733
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9H5JhANImiuQz1C2dBWcPNQ5/1z57Qrf0Fodz2Rz21yMF0TxKRC3JJm1DF9EEnSB8zd7VmiEPXRnYQ/kwG7JbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8221

Hi Julien/All,

On 05/12/2023 11:02, Michal Orzel wrote:
>
> On 05/12/2023 11:42, Julien Grall wrote:
>>
>> On 05/12/2023 10:30, Michal Orzel wrote:
>>>
>>> On 05/12/2023 11:01, Julien Grall wrote:
>>>>
>>>> On 05/12/2023 09:28, Michal Orzel wrote:
>>>>> Hi Julien,
>>>>>
>>>>> On 04/12/2023 20:55, Julien Grall wrote:
>>>>>>
>>>>>> On 04/12/2023 13:02, Ayan Kumar Halder wrote:
>>>>>>> On 04/12/2023 10:31, Julien Grall wrote:
>>>>>>>> Hi Ayan,
>>>>>>> Hi Julien,
>>>>>>>> On 01/12/2023 18:50, Ayan Kumar Halder wrote:
>>>>>>>>> Currently if user enables HVC_DCC config option in Linux, it invokes
>>>>>>>>> access to debug data transfer registers (ie DBGDTRTX_EL0 on arm64,
>>>>>>>>> DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
>>>>>>>>> an undefined exception to the guest. And Linux crashes.
>>>>>>>> I am missing some data points here to be able to say whether I would
>>>>>>>> be ok with emulating the registers. So some questions:
>>>>>>>>      * As you wrote below, HVC_DCC will return -ENODEV after this
>>>>>>>> emulation. So may I ask what's the use case to enable it? (e.g. is
>>>>>>>> there a distro turning this on?)
>>>>>>> I am not aware of any distro using (or not using) this feature. This
>>>>>>> issue came to light during our internal testing, when HVC_DCC was
>>>>>>> enabled to use the debug console. When Linux runs without Xen, then we
>>>>>>> could observe the logs on the debug console. When Linux was running as a
>>>>>>> VM, it crashed.
>>>>>>>
>>>>>>> My intention here was to do the bare minimum emulation so that the crash
>>>>>>> could be avoided.
>>>>>> This reminds me a bit the discussion around "xen/arm64: Decode ldr/str
>>>>>> post increment operations". I don't want Xen to contain half-backed
>>>>>> emulation just to please an OS in certain configuration that doesn't
>>>>>> seem to be often used.
>>>>>>
>>>>>> Also, AFAICT, KVM is in the same situation...
>>>>> Well, KVM is not in the same situation. It emulates all DCC regs as RAZ/WI, so there
>>>>> will be no fault on an attempt to access the DCC.
>>>> Does this mean a guest will think the JTAG is availabe?
>>> Yes, it will believe the DCC is available which is not a totally bad idea. Yes, it will not have
>>> any effect but at least covers the polling loop. The solution proposed here sounds better but does not take
>>> into account the busy while loop when sending the char. Linux DCC earlycon does not make an initial check that runtime
>>> driver does and will keep waiting in the loop if TXfull is set. Emulating everything as RAZ/WI solves that.
>>> As you can see, each solution has its flaws and depends on the OS implementation.
>> Right, which prove my earlier point. You are providing an emulation just
>> to please a specific driver in Linux (not even the whole Linux). This is
>> what I was the most concern of.
I have sent out a patch ("[PATCH] tty: hvc: dcc: Check for TXfull 
condition while setting up early console") to fix this.
>>
>> So ...
>>
>>>>> In general, I think that if a register is not optional and does not depend on other register
>>>>> to be checked first (e.g. a feature/control register we emulate), which implies that it is fully ok for a guest to
>>>>> access it directly - we should at least try to do something not to crash a guest.
>>>> This is where we have opposing opinion. I view crashing a guest better
>>>> than providing a wrong emulation because it gives a clear signal that
>>>> the register they are trying to access will not function properly.
>>>>
>>>> We had this exact same discussion a few years ago when Linux started to
>>>> access GIC*_ACTIVER registers. I know that Stefano was for emulating
>>>> them as RAZ but this had consequences on the domain side (Linux
>>>> sometimes need to read them). We settled on printing a warning which is
>>>> not great but better than claiming we properly emulate the register.
>>>>
>>>>> I agree that this feature is not widely used. In fact I can only find it implemented in Linux and U-BOOT
>>>>> and the issue I found in DBGDSCRINT (no access from EL0, even though we emulate REXT.UDCCdis as 0) only
>>>>> proves that. At the same time, it does not cost us much to add this trivial support.
>>>> See above. If we provide an (even basic) emulation, we need to make sure
>>>> it is correct and doesn't have a side effect on the guest. If we can't
>>>> guarantee that (e.g. like for set/way when a device is assigned), then
>>>> the best course of action is to crash the domain.
>>>>
>>>> AFAICT, the proposed emulation would be ok.
>> ... I will need to revise this statement. I am now against this patch.
> Yes, the problem was tricky from the very beginning and I somewhat agree. I prepared a POC with one solution
> that Ayan extended and sent to gather feedback (hence RFC). I think we should still wait for others
> opinion (@Stefano, @Bertrand). I think the thread contains all the necessary information
> to decide what to do:
> - do nothing* (guest crashes)
> - emulate DCC the same way as KVM i.e. RAZ/WI (no crash, no busy loop, guest keeps using DCC with no effect)
> - emulate DCC with TXfull set to 1 (no crash, runtime DCC in Linux returns -ENODEV, earlycon busy loop issue)
>
> * I still think we should fix DBGDSCRINT but I can send a separate patch (not really related to the DCC problem)

Regardless if the linux hvc earlycon is fixed or not

@Julien , would you be ok with option 2 or 3 with a suitable warning ?

Also will wait for Stefano's and Bertrand's opinions.

Crashing the guest would seem quite severe imo if there can be a better 
way (option 2 or 3) to tell that DCC is not available.

- Ayan

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:52:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647822.1011480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUua-00032n-AO; Tue, 05 Dec 2023 12:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647822.1011480; Tue, 05 Dec 2023 12: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 1rAUua-00032g-7B; Tue, 05 Dec 2023 12:52:28 +0000
Received: by outflank-mailman (input) for mailman id 647822;
 Tue, 05 Dec 2023 12:52:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JQhx=HQ=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAUiR-00035R-Jh
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:39:55 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6278df53-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:39:54 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sl0VF14Lwz4f3jpv
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:39:49 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 308141A09A2
 for <xen-devel@lists.xenproject.org>; Tue,  5 Dec 2023 20:39:50 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgCn9gwTGm9lgdU8Cw--.14977S4;
 Tue, 05 Dec 2023 20:39:49 +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: 6278df53-936b-11ee-98e5-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH -next RFC 12/14] jbd2: use bdev apis
Date: Tue,  5 Dec 2023 20:38:45 +0800
Message-Id: <20231205123845.1866826-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgCn9gwTGm9lgdU8Cw--.14977S4
X-Coremail-Antispam: 1UD129KBjvJXoW7ZF4DtryUur43Kr4DJr4DCFg_yoW8ZFyrpr
	yUGas8CrZFvrW8XF1kGF4kJrWjga40vayUCFnF93Z2yw4Svr1avw18Kr13GFyYvFWFga1U
	Xr1jyay8Kw4YgFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUvY14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_Zr0_Wr1UMIIF0xvEx4A2jsIE14v2
	6r4j6F4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Cr1j6rxdYxBIdaVFxhVjvjDU0xZFpf9x0J
	ULtxhUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/jbd2/journal.c  | 3 +--
 fs/jbd2/recovery.c | 6 ++----
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index ed53188472f9..f1b5ffeaf02a 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -2003,8 +2003,7 @@ static int __jbd2_journal_erase(journal_t *journal, unsigned int flags)
 		byte_count = (block_stop - block_start + 1) *
 				journal->j_blocksize;
 
-		truncate_inode_pages_range(journal->j_dev->bd_inode->i_mapping,
-				byte_start, byte_stop);
+		truncate_bdev_range(journal->j_dev, 0, byte_start, byte_stop);
 
 		if (flags & JBD2_JOURNAL_FLUSH_DISCARD) {
 			err = blkdev_issue_discard(journal->j_dev,
diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index 01f744cb97a4..6b6a2c4585fa 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -290,7 +290,6 @@ int jbd2_journal_recover(journal_t *journal)
 
 	struct recovery_info	info;
 	errseq_t		wb_err;
-	struct address_space	*mapping;
 
 	memset(&info, 0, sizeof(info));
 	sb = journal->j_superblock;
@@ -309,8 +308,7 @@ int jbd2_journal_recover(journal_t *journal)
 	}
 
 	wb_err = 0;
-	mapping = journal->j_fs_dev->bd_inode->i_mapping;
-	errseq_check_and_advance(&mapping->wb_err, &wb_err);
+	bdev_wb_err_check_and_advance(journal->j_fs_dev, &wb_err);
 	err = do_one_pass(journal, &info, PASS_SCAN);
 	if (!err)
 		err = do_one_pass(journal, &info, PASS_REVOKE);
@@ -334,7 +332,7 @@ int jbd2_journal_recover(journal_t *journal)
 	err2 = sync_blockdev(journal->j_fs_dev);
 	if (!err)
 		err = err2;
-	err2 = errseq_check_and_advance(&mapping->wb_err, &wb_err);
+	err2 = bdev_wb_err_check_and_advance(journal->j_fs_dev, &wb_err);
 	if (!err)
 		err = err2;
 	/* Make sure all replayed data is on permanent storage */
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 12:57:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 12:57:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647839.1011490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAUzD-0005gU-TA; Tue, 05 Dec 2023 12:57:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647839.1011490; Tue, 05 Dec 2023 12:57: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 1rAUzD-0005gN-Ph; Tue, 05 Dec 2023 12:57:15 +0000
Received: by outflank-mailman (input) for mailman id 647839;
 Tue, 05 Dec 2023 12:57: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=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAUhy-00035R-PQ
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 12:39:26 +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 5302c3b6-936b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 13:39:26 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 5D8ED21FF1;
 Tue,  5 Dec 2023 12:39:25 +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 1C6BF136CF;
 Tue,  5 Dec 2023 12:39:25 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id NfK5BP0Zb2WGIAAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 12:39:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5302c3b6-936b-11ee-98e5-6d05b1d4d9a1
Message-ID: <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
Date: Tue, 5 Dec 2023 13:39:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
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: <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------DnqYG7WqsUfoP6lbLIqUyU5k"
X-Spam-Score: 15.00
X-Rspamd-Server: rspamd1
X-Spam-Flag: YES
X-Rspamd-Queue-Id: 5D8ED21FF1
X-Spam-Level: ***************
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine)
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 ARC_NA(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spamd-Bar: +++++++++++++++
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------DnqYG7WqsUfoP6lbLIqUyU5k
Content-Type: multipart/mixed; boundary="------------a6BFPvwkXT120LaWFU2zvZJz";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
Message-ID: <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
In-Reply-To: <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>

--------------a6BFPvwkXT120LaWFU2zvZJz
Content-Type: multipart/mixed; boundary="------------Qq60TizL4yvIRyOWkqInkDTU"

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

T24gMDUuMTIuMjMgMTI6NTMsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDA1LzEyLzIwMjMgMTA6MDcsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBJ
bnN0ZWFkIG9mIGRlZmluaW5nIGdldF91bmFsaWduZWQoKSBhbmQgcHV0X3VuYWxpZ25lZCgp
IGluIGEgd2F5IHRoYXQNCj4+IGlzIG9ubHkgc3VwcG9ydGluZyBhcmNoaXRlY3R1cmVzIGFs
bG93aW5nIHVuYWxpZ25lZCBhY2Nlc3NlcywgdXNlIHRoZQ0KPj4gc2FtZSBhcHByb2FjaCBh
cyB0aGUgTGludXgga2VybmVsIGFuZCBsZXQgdGhlIGNvbXBpbGVyIGRvIHRoZQ0KPj4gZGVj
aXNpb24gaG93IHRvIGdlbmVyYXRlIHRoZSBjb2RlIGZvciBwcm9iYWJseSB1bmFsaWduZWQg
ZGF0YSBhY2Nlc3Nlcy4NCj4+DQo+PiBVcGRhdGUgaW5jbHVkZS94ZW4vdW5hbGlnbmVkLmgg
ZnJvbSBpbmNsdWRlL2FzbS1nZW5lcmljL3VuYWxpZ25lZC5oIG9mDQo+PiB0aGUgTGludXgg
a2VybmVsLg0KPj4NCj4+IFRoZSBnZW5lcmF0ZWQgY29kZSBoYXMgYmVlbiBjaGVja2VkIHRv
IGJlIHRoZSBzYW1lIG9uIHg4Ni4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBBcm5kIEJlcmdt
YW5uIDxhcm5kQGFybmRiLmRlPg0KPj4gT3JpZ2luOiBnaXQ6Ly9naXQua2VybmVsLm9yZy9w
dWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0IA0KPj4gODAzZjRl
MWVhYjdhDQo+PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5j
b20+DQo+IA0KPiBDYW4geW91IG91dGxpbmUgeW91ciBlbmQgZ29hbD8gQXQgbGVhc3Qgb24g
YXJtMzIsIEkgYmVsaWV2ZSB0aGlzIHdpbGwgcmVzdWx0IHRvIA0KPiBhYm9ydCBiZWNhdXNl
IGV2ZW50IGlmIHRoZSBhcmNoaXRlY3R1cmUgc3VwcG9ydCB1bmFsaWduZWQgYWNjZXNzLCB3
ZSBhcmUgDQo+IHByZXZlbnRpbmcgdGhlbSBvbiBBcm0zMi4NCg0KSSBuZWVkIHNvbWV0aGlu
ZyBsaWtlIHRoYXQgaW4gWGVuIHRvb2xzIGZvciBzdXBwb3J0aW5nIHBhY2tlZCBkYXRhIGFj
Y2Vzc2VzDQpvbiB0aGUgOXBmcyByaW5nIHBhZ2UsIHNvIEkgbG9va2VkIGludG8gdGhlIGh5
cGVydmlzb3IgZm9yIHJlbGF0ZWQgc3VwcG9ydC4NCg0KSSBndWVzcyBmb3IgYXJtMzIgdXNp
bmcgLW1uby11bmFsaWduZWQtYWNjZXNzIHdoZW4gYnVpbGRpbmcgc2hvdWxkIGF2b2lkIGFu
eQ0KdW5hbGlnbmVkIGFjY2Vzc2VzPw0KDQoNCkp1ZXJnZW4NCg==
--------------Qq60TizL4yvIRyOWkqInkDTU
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-----

--------------Qq60TizL4yvIRyOWkqInkDTU--

--------------a6BFPvwkXT120LaWFU2zvZJz--

--------------DnqYG7WqsUfoP6lbLIqUyU5k
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/Ey8FAmVvGfwFAwAAAAAACgkQsN6d1ii/Ey+w
mQf7ByqK0jVPKPCyD+HVo1kDlNDMXGwiM7r9Mc1GicN/BSHNrX1SuT9FSpj76c/+OHuXDS6Mb3sG
BUdpnAAKhIkSHzfpL7zMaBJaYoAJ9bT5iXA/EUSQ8SwrF5Shobzoqu5yKpNdAXz0vh4Q1DYnZoUx
Fdm9KAu7kyhsdl1Un92yUB7fsTLa1DqYVKbV/022oU37wnKvF0VnUbx9qugUpT7dUyhG4f7jfgD4
W1KlNg35C7KlxQ7iJK0yJMCDbnFVPKXoiBgT7+m+m80LK3NOHqu2W8XKddaz08Fr7E4TGGFmnFXs
yRXo6kRXtgqDc7Vim0pGZaTN5N2gJcrhHYv06rZtvQ==
=aU9G
-----END PGP SIGNATURE-----

--------------DnqYG7WqsUfoP6lbLIqUyU5k--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647849.1011500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVAK-0002HX-1v; Tue, 05 Dec 2023 13:08:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647849.1011500; Tue, 05 Dec 2023 13:08:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVAJ-0002HQ-VE; Tue, 05 Dec 2023 13:08:43 +0000
Received: by outflank-mailman (input) for mailman id 647849;
 Tue, 05 Dec 2023 13:08:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAVAI-0002HK-Gj
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:08:42 +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 68fe8809-936f-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 14:08:41 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3332fc9b9b2so3744604f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 05:08:41 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 c1-20020adfa301000000b003333a216682sm9217761wrb.97.2023.12.05.05.08.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 05:08:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 68fe8809-936f-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701781720; x=1702386520; 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=MUqnKUy3IFc15kUZSPH6q5WAl16kF4M3HttC7VoHIOo=;
        b=YjvCOxA5Jx6PQEeT2T+SDrxXuzMcml40l6j/YqudiYZRFE2DCmiKUtZ6NUNJKt8+u1
         rQeZbGs35Xd+A+QfZWwtJrk/demYOPGmQjb+hnCCbJrzp2jGIBq9+1meP3YzUsJFT6qV
         99zdNHuBDX17ZBQXssGLp6cmhjaOgzUzAwsRw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701781720; x=1702386520;
        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=MUqnKUy3IFc15kUZSPH6q5WAl16kF4M3HttC7VoHIOo=;
        b=HZ7EDcIZXRGDVnPCfSaDY1OvyssZzqowi4KOMjToiO/2dhpD3HrHfa7m77RcesTq6M
         hW1btWg+ExdTRBbE2tvCXbK7JJ6M+VwZP40iPAnL4cRjcRe38AUanh0l38k4YuKU2Bx1
         LHDylB5oHAsMZccjSEO1Nlr8ji+dELO6OsajorW8HxnY8QpmIEjI6bw3aH2BU3cxXkem
         Wf4RLQZV0fAIn8g13Yem6dgEfiA4eb+hPGbVr2M55ZR0dr8BSh2J1X5DhlSY814AW+tC
         gJR8kIklra064pwr/GFrWch+SL8Veo3sO/wk2h31G6KGdzLG4sIUHSqrtRIhyRMqB5OS
         OpuQ==
X-Gm-Message-State: AOJu0YzhIxeGCCA8aB45i1d6MuRIgCLxL7ek+oSmtl5w3LNDITv3G8rq
	cxSO0rbYf+nGDszHebg3kMCxsA==
X-Google-Smtp-Source: AGHT+IFB9Zzgx0rDzUTEvxHb6mwVwM6996HD3eO0VBQmJX5e80bYxGBkaCRNcqM+NWxEQl3uop9lVw==
X-Received: by 2002:a5d:54cd:0:b0:333:529b:e75 with SMTP id x13-20020a5d54cd000000b00333529b0e75mr666535wrv.61.1701781720351;
        Tue, 05 Dec 2023 05:08:40 -0800 (PST)
Date: Tue, 5 Dec 2023 14:08:39 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.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
Subject: Re: [PATCH v2 4/5] x86/livepatch: introduce a basic live patch test
 to gitlab CI
Message-ID: <ZW8g144id8e1Aoy3@macbook>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-5-roger.pau@citrix.com>
 <00de64fd-5669-424d-9b32-2342b5936f1a@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <00de64fd-5669-424d-9b32-2342b5936f1a@suse.com>

On Tue, Dec 05, 2023 at 12:49:38PM +0100, Jan Beulich wrote:
> On 28.11.2023 11:03, Roger Pau Monne wrote:
> > Introduce a basic livepatch test using the interface to run self modifying
> > tests.  The introduced test relies on changing a function from returning false
> > to returning true.
> > 
> > To simplify the burden of keeping a patch that can be provided to
> > livepatch-build-tools, introduce two new files: one containing the unpatched
> > test functions, and another one that contains the patched forms of such
> > functions.  Note that only the former is linked into the Xen image, the latter
> > is built but the object file is not consumed afterwards.  Do this to assert
> > that the file containing the patched functions continues to build.
> > 
> > Since livepatch testing will ensure that the functions are not patched previous
> > the applying the livepatch, allow the livepatch related tests to fail without
> > tainting the hypervisor.
> > 
> > Note the livepatch tests are not run as part of the self modifying checks
> > executed during boot, as they would obviously fail.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> > Changes since v1:
> >  - New interface & test.
> > ---
> >  tools/misc/xen-livepatch.c          | 29 +++++++++++++++++++++++++++++
> >  xen/arch/x86/Makefile               |  2 ++
> >  xen/arch/x86/include/asm/test-smc.h |  2 ++
> >  xen/arch/x86/setup.c                |  2 +-
> >  xen/arch/x86/test-smc-lp-alt.c      | 23 +++++++++++++++++++++++
> >  xen/arch/x86/test-smc-lp.c          | 23 +++++++++++++++++++++++
> >  xen/arch/x86/test-smc.c             | 11 ++++++++++-
> >  xen/include/public/sysctl.h         |  6 +++++-
> >  8 files changed, 95 insertions(+), 3 deletions(-)
> >  create mode 100644 xen/arch/x86/test-smc-lp-alt.c
> >  create mode 100644 xen/arch/x86/test-smc-lp.c
> 
> Can these (and perhaps also the one file introduced earlier in the series)
> perhaps become xen/arch/x86/test/smc*.c?

Yes, sure, I don't see why not.

> > --- /dev/null
> > +++ b/xen/arch/x86/test-smc-lp-alt.c
> > @@ -0,0 +1,23 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +
> > +#include <asm/test-smc.h>
> > +
> > +/*
> > + * Interesting case because `return false` can be encoded as an xor
> > + * instruction, which is shorter than `return true` which is a mov instruction,
> > + * and also shorter than a jmp instruction.
> > + */
> 
> I'm a little wary of this comment: "mov $1, %al" is two bytes only, just like

Don't we need to zero the high part of the register also?  Or since
the return type is a bool the compiler could assume it's truncated by
the caller?

> "xor %eax, %eax" is.

GCC 13.2 (from godbolt) generates at -O2:

mov    $0x1,%eax
ret

Which is 5 bytes long mov insn.

The return false case is:

xor    %eax,%eax
ret

I can adjust to mention this specific behavior.

> > +bool cf_check test_lp_insn_replacement(void)
> 
> What's the purpose of the cf_check here?

Because it's added to the array of test functions to call in
test_smc().  Doesn't it need cf_check in that case?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:15:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:15:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647857.1011510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVGx-00053W-NO; Tue, 05 Dec 2023 13:15:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647857.1011510; Tue, 05 Dec 2023 13: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 1rAVGx-00053P-K5; Tue, 05 Dec 2023 13:15:35 +0000
Received: by outflank-mailman (input) for mailman id 647857;
 Tue, 05 Dec 2023 13:15: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 1rAVGw-00053F-4F; Tue, 05 Dec 2023 13:15: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 1rAVGv-0005wR-Q0; Tue, 05 Dec 2023 13:15: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 1rAVGv-0006xo-Dp; Tue, 05 Dec 2023 13:15:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAVGv-0006o0-DK; Tue, 05 Dec 2023 13:15: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=kWHSgp24XMPYWvMDbVQicpLv8GVjVftXqINfPje+MxU=; b=JIF7/0NMlSEmAwjfZnO/VCrzH7
	GGmjZ3UxHopxTNFF2bthcERtFAwzq8aQWedyM4U4Mp/N6VCGljFRPTkmecC6iBkzxpHF4AwDK4y1W
	agBi0n5Re4nOV9CPCC9t7trnZkg4n0jIC33aLpE8utRZWGbqfO2KkZcpDA/3gpseX92c=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183994-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 183994: 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=ff1178062094837d55ef342070e58316c43a54c9
X-Osstest-Versions-That:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 05 Dec 2023 13:15:33 +0000

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

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                  ff1178062094837d55ef342070e58316c43a54c9
baseline version:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352

Last test of basis   183968  2023-12-01 20:00:25 Z    3 days
Testing same since   183994  2023-12-05 10:00:30 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Henry Wang <Henry.Wang@arm.com> # CHANGELOG
  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>
  Simone Ballarin  <simone.ballarin@bugseng.com>
  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
   525c7c094b..ff11780620  ff1178062094837d55ef342070e58316c43a54c9 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:23:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:23:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647865.1011520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVO3-0004hA-FO; Tue, 05 Dec 2023 13:22:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647865.1011520; Tue, 05 Dec 2023 13:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVO3-0004h3-CK; Tue, 05 Dec 2023 13:22:55 +0000
Received: by outflank-mailman (input) for mailman id 647865;
 Tue, 05 Dec 2023 13:22:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QNL/=HQ=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rAVO1-0004eT-KI
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:22:53 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20620.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63d484fa-9371-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 14:22:51 +0100 (CET)
Received: from AM0P190CA0010.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:190::20)
 by AS8PR08MB9792.eurprd08.prod.outlook.com (2603:10a6:20b:613::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 13:22:44 +0000
Received: from AM4PEPF00027A6A.eurprd04.prod.outlook.com
 (2603:10a6:208:190:cafe::b0) by AM0P190CA0010.outlook.office365.com
 (2603:10a6:208:190::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Tue, 5 Dec 2023 13:22:44 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A6A.mail.protection.outlook.com (10.167.16.88) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 13:22:43 +0000
Received: ("Tessian outbound 5d213238733f:v228");
 Tue, 05 Dec 2023 13:22:43 +0000
Received: from a45ecf292b01.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 BFBEAABB-8970-4A18-9BEE-8E45A0BC6725.1; 
 Tue, 05 Dec 2023 13:22:32 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a45ecf292b01.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 05 Dec 2023 13:22:32 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com (2603:10a6:20b:8f::22)
 by AS4PR08MB7832.eurprd08.prod.outlook.com (2603:10a6:20b:51c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 13:22:30 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838]) by AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838%7]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 13:22:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63d484fa-9371-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=O9lG0zyAo13dDoYVUCfdgc2peGnk68UNx7edcFd+AlbL1RasDFXw4/52NNp3n1B3ektYhWyTCICY1pMxjYuWaEPpdxRGs1Zo9vjO0RKGbzd/MAVF5g7ej/qJXFEqDd8JnRtUyJjCkOlxCm96WH7D+fU6J5zcoh1T9ZWJEJzL0yZa0m9/GeDuuPbMcolosR4qsqgY8jNGzgnoTkaz/Wa8kpj86SELcDJ6Uggenye7qyHq8vhdiB4NWXZ4/pRRSJO/dexp9K0YzovNL+TImmquTM0X3P8yXvbvDIqVOB0DdYGBxd+CnvUVTfH/HbiMm1AXnXO2P35IZYUVZKf6ZEg3Ag==
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=Ze7xFQ4WK5xmWyHHKeDjnMk0qaKjBqmLHcOq3uIH0L0=;
 b=jgD8YNvxNLUBQAUsW6fHcj84gpeVCRxKJyJoo8TmpZKBXi5kLkAJqgk28qOKAYo2EL/KL12JSPuB6DU2vRsY38JgrLcT3RVN65IeEvGrDu7jU7jbJO71cUBcRcHCNzsmQy60vpQa+OU9wBbShJezHLUzvB80mMRDxDLtRhHqZm+BYMSbQuHE/kJNfglbEPc70ZnaU9pz4NJjJF8rk5nAs1J9E4UXan7wdap/iYClKvWU2MGOEae7mU2Ej8x8Xwu8lLhoEmYN/C4Vh/yVo80SYcljxDSKsUXROz1pdcIwrmFy4BHrJBAIS+c74q8YtHGvpxHK/Uh9NaPM6DHAF/CIEg==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ze7xFQ4WK5xmWyHHKeDjnMk0qaKjBqmLHcOq3uIH0L0=;
 b=PkXuABAOh964Wwq8P3L/h0nIMQBM+4gveU/WgkAewfDCjxNtLdbr/tcfTCcDBhFql/90Ql+wV9Im+mipvnU5Iz/jQC2FlmEPLgWf0dFh+GyTg5OtU1KGQhOtQ8x8C+jg3C/XXV6QFMNlEaHpHQGZRAIbjLHc413+U7L19AoNa+Y=
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=armh.onmicrosoft.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: 9bfb587bfab14422
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SRbIi/lP2SYIvWdBXcGGw1w2eYP0GjLEtnHnpMePlfxV9tXpi2jnjneLXbffDkPh7l30XpZYbjxHDZm3YMo4aUyqSET4DDzYWZWCAClBnzBF60BTLdKiyWThWhQWVR8t8hpWJmM4qDOc8KJP958HJ1ONtBMSHe8q6ZZsEK18ReSk+fvE6A0NW5JObUhgiREavsDl2HmBrpuweHqaJAzOpSy+1ir8lL1zFjTzmBEuqrzhnPSJKO0ZRD45TjvZovBghCBZpNJyyYFyMJzBYHMd4UXCgBLlJxaDjSZz8MIu98gzdTciLy0HQR9eopiLFrxjtCBceIp5X71Yd8Pc3saeBg==
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=Ze7xFQ4WK5xmWyHHKeDjnMk0qaKjBqmLHcOq3uIH0L0=;
 b=Hvf0yRNt/ZyPezPjU9n9oD8Jhjb2TJAT1a0sYI60GadrUF3OQzyXiVeyR7/KL6kwesMBhb4CqKICmiHzvp224GTPPZGhCYmRXwA7+xFUYs9QNUWJjWIWh2WR/io+KKPZMfOFqOdIRNmEl16RoJUCOY80iTV7UYuMiqCwUcIxyc5bdCtOO23qeDrFjXjvlivURde4MWEVhA3fxBn1clc5lI2+6HAk0nCQnVr8s3WB6gxv2uxjZwdKUqw9FW7CGNwdxLONq8yn/ViMxsyB+/T9rsWHxJ/L5YERT4gYkZUXTeLLpWb0PLJUtg3N/lh35dDTpybFX4wtyksvuo1WNKtGlA==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ze7xFQ4WK5xmWyHHKeDjnMk0qaKjBqmLHcOq3uIH0L0=;
 b=PkXuABAOh964Wwq8P3L/h0nIMQBM+4gveU/WgkAewfDCjxNtLdbr/tcfTCcDBhFql/90Ql+wV9Im+mipvnU5Iz/jQC2FlmEPLgWf0dFh+GyTg5OtU1KGQhOtQ8x8C+jg3C/XXV6QFMNlEaHpHQGZRAIbjLHc413+U7L19AoNa+Y=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal
 Orzel <Michal.Orzel@amd.com>, George Dunlap <george.dunlap@citrix.com>, Wei
 Liu <wl@xen.org>
Subject: SAF-* comment at the end of the line
Thread-Topic: SAF-* comment at the end of the line
Thread-Index: AQHaJ34YkUD/Uc9X1UGSJ1pz/QdYhw==
Date: Tue, 5 Dec 2023 13:22:29 +0000
Message-ID: <27B32A01-F4D9-4A92-BA16-F43D0AF4F29E@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3749:EE_|AS4PR08MB7832:EE_|AM4PEPF00027A6A:EE_|AS8PR08MB9792:EE_
X-MS-Office365-Filtering-Correlation-Id: 5b3c9f85-ad58-40ff-b91f-08dbf59543d4
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 FgjhRcI8BObcKeMG6nADIBAco3w8LY3YvGxbVvbL9GLcvR92HPh/k9YZLex3Gcf22OPN5Uc2fxTdAyMnY4ZwNHtqohE7d+G4mDAaIc40sBURjhzrV1TFujnDPAoyD3UarwWjnIb/xg5U5+CDwSLBGt7CPBZ0UhgNWdRzFy5sefH1L/zkwfQg7KcUIoVityQmVmIT57oPPvAPLxDYN7oUzt7hw3IyGi33NNrsZbI2pLwUgk1ApzVUOdRyqy1+WGqvLWsuqSuvqANvFvpOdcUyVq80A9zBQTkmYxfM0yI6CBpPyBiGYdlYHB5xaS5qDCwVCCp1zqI0ay7tY3awUISnMjLofrh8yQeClI1NZ9AS03UkP5k3Eu28XZhQURsCMDg9Cds2ew36aPHRNA21agcw62iJJyZty1k1P6bFp1QMlxLp3V3EHMVVsO68mXwm558CZNBf+k3WAIZ6nfFSQdiuTL9T+vN5W82ewg/hybQWzkO2apJU0cmfVogpXWSch0csGUxM+OZsTuahZCmqjOFmlzv8gZUGjkds/cFQ3OzlHoWQt01X58PAy2XdDoDHLrHlD2jGcfhlDgFhbczn2doS39Y2AikTFkj8WQA3SeznAThz6hcq5IE1ySfef8ewD4fxKOvix9gemiYC4CtitTHp1g==
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:(13230031)(366004)(396003)(376002)(346002)(39860400002)(136003)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(6486002)(478600001)(6512007)(2616005)(6506007)(26005)(71200400001)(316002)(66899024)(66476007)(91956017)(66446008)(64756008)(54906003)(6916009)(66556008)(66946007)(8676002)(86362001)(4326008)(8936002)(41300700001)(36756003)(76116006)(38070700009)(33656002)(2906002)(5660300002)(122000001)(38100700002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <BF5956C9056D734FA00B6BABD2574162@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7832
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:
 AM4PEPF00027A6A.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a8e7ba3e-150b-4680-699d-08dbf5953b6f
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1ECJ7dy0+tkjSZpON3oyzEG6Xf79ga2gcQyGdlx7ZsIo/+rDcQngk7TR8A+Ku7ZEfLyIr4Jms6QjwD+NM4PoHOxzUmCqFmZbaNwdheZl3qkIAVCKq4cqQUigZUICyjse8OA55dO4K0jGAXby9nLQNJVvLj0oUdYwnJ28sMfXYg6+/f8IKAUdd7ymp97/znhDVxzbrlqu2iHLLir1zzwdylPrC8os4Vlj5tqfuRhhgE/j1K3XfUlC5GNe50BRkMa5uQ2JDjVCuysnd08xC344JyzpHK6CfMFWzywLyyeiFN85etFvV0EeX0MWAtpGRSJjmqKqyOzTvgCtVyR6/nAb7RnlFNX61GQCnecvtIA8lDI3+0KJzHkjveeQ3/ChKVXtgIaQ+cVbMHwgV9jH9gv8oyhzK5pes16POkNsBj7mgwdj/3EP1xK2RsXD/5lzAEOjF14eIwfJrx3HeItWKXrmdS/3J51mqDZCw38B/3OsO8+qbnS8raunq2MQVk7efwvyuG74bgm3vPxzryOtIpUR542+AjEDCe2GtrCpczu8E0Y8vb+wY3w7ufsRtQD/z2oK/MVRDrxZN1KfYsL6s/fglQf/SzT3RFfB67G+fZDVVRUkWz6HynwMdZiy5p3sw+JY+zk6bhUFIEly/tpIAMZGvb30HttJqlN8Y6kQxWn6g7iddpSnPm1yCxW9wt/D70tCxfj25y6/06TPFXkoXbBB6V6m704g55iMsgV8plgkJHPepGyABqhtYTSiqeL2OmJY
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:(13230031)(4636009)(376002)(136003)(396003)(346002)(39860400002)(230922051799003)(1800799012)(451199024)(186009)(82310400011)(64100799003)(46966006)(36840700001)(40470700004)(40480700001)(40460700003)(6512007)(478600001)(6506007)(6486002)(8676002)(47076005)(2616005)(26005)(336012)(6916009)(54906003)(4326008)(70206006)(70586007)(8936002)(316002)(82740400003)(5660300002)(81166007)(66899024)(33656002)(36756003)(356005)(41300700001)(2906002)(36860700001)(86362001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 13:22:43.9535
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b3c9f85-ad58-40ff-b91f-08dbf59543d4
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:
	AM4PEPF00027A6A.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9792

SGkgYWxsLA0KDQpJ4oCZbSB3cml0aW5nIHRoaXMgbWFpbCB0byBjb2xsZWN0IHRob3VnaHRzIGFi
b3V0IHRoZSBuZWVkIHRvIGltcHJvdmUgdGhlIFNBRi0qIGNvbW1lbnRzLg0KDQpJIHRoaW5rIHdl
IHJlYWNoZWQgYSBwb2ludCB3aGVyZSB3ZSBuZWVkIHRvIHVzZSBkZXZpYXRpb25zIGZvciBzb21l
IHZpb2xhdGlvbiB0aGF0IHdlIHdhbnQNCnRvIGtlZXAgaW4gdGhlIGNvZGUgd2l0aCBhIHByb3Bl
ciBqdXN0aWZpY2F0aW9uIGFuZCBhbiBpc3N1ZSB3YXMgcmFpc2VkIHdoZW4gdGhlIGNvbW1lbnQN
CmNhbm5vdCBiZSBwdXQgb24gYSBsaW5lIG9uIGl0cyBvd24uDQoNCmUuZy4NCg0KSWYgKCBjb25k
aXRpb24tMSAmJg0KICAgICBjb25kaXRpb24tMiAmJg0KICAgICAgWy4uLl0gKQ0Kew0KICAgIC4u
Lg0KfQ0KDQpGb3IgZXhhbXBsZSBpbiB0aGUgY29kZSBhYm92ZSwgaWYgdGhlIHZpb2xhdGlvbiBp
cyBpbiB0aGUgc2Vjb25kIGNvbmRpdGlvbiwgYnJlYWtpbmcgdGhlIGNvbmRpdGlvbnMNCnRvIGhh
dmUgYW4gZW1wdHkgbGluZSBiZXR3ZWVuIHRoZW0gZm9yIHRoZSBTQUYtKiBjb21tZW50IGlzIG5v
dCBpZGVhbCwgc28gd2UgY291bGQgbWF5YmUNCmltcHJvdmUgdGhlIGluLWNvZGUgY29tbWVudCB0
byBiZSB1c2VkIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmU6DQoNCmUuZy4NCg0KSWYgKCBjb25kaXRp
b24tMSAmJg0KICAgICBjb25kaXRpb24tMiAmJiAvKiBTQUYtKi1zYWZlIFsuLi5dICovDQogICAg
ICBbLi4uXSApDQp7DQogICAgLi4uDQp9DQoNClRoaXMgbWlnaHQgcmVxdWlyZSBhbHNvIGEgZGV2
aWF0aW9uIG9uIHRoZSBjb2Rpbmcgc3R5bGUgdG8gYWxsb3cgdGhlIGNvbW1lbnQgdG8gb3ZlcmNv
bWUgdGhlIGxpbmUgbGVuZ3RoLg0KDQpCZXJ0cmFuZCwgZnJvbSBoaXMgZXhwZXJpZW5jZSB3aXRo
IHNhZmV0eSBjZXJ0aWZpY2F0aW9ucywgZmVlbHMgdGhhdCBhZGRpbmcgdGhpcyBmZWF0dXJlIGNv
dWxkIGJlIGVub3VnaA0KdG8gY292ZXIgdGhlIG1ham9yaXR5IG9mIHRoZSBjYXNlcyB3aGVyZSB3
ZSBuZWVkIHRvIGRldmlhdGUgYSB2aW9sYXRpb24gaW4gdGhlIGNvZGUuDQoNClVzaW5nIGl0IGNv
bnNpc3RlbnRseSBpbiB0aGUgY29kZSBiYXNlIGFzIHRoZSBvbmx5IHdheSB0byBkZXZpYXRlIGEg
dmlvbGF0aW9uIGNhbiBhbHNvIGhlbHAgdGhlIGFkb3B0aW9uDQpvZiB0aGUgcHJvamVjdCB0byBw
ZW9wbGUgd2hvIG1pZ2h0IHdhbnQgdG8gZml4IHRoZW0gaW5zdGVhZCBvZiBkZXZpYXRpbmcgdGhl
bSwgdGhlIG9ubHkgdGhpbmcgdGhleSB3b3VsZCBuZWVkDQp0byBkbyBpcyB0byBncmVwIGZvciBT
QUYtKiB0byBoYXZlIGEgcm91Z2ggaWRlYSBvZiBob3cgbWFueSBqdXN0aWZpZWQgdmlvbGF0aW9u
IGFyZSBpbiB0aGUgY29kZS4NCg0KUGxlYXNlIGxldCBtZSBrbm93IHlvdXIgdGhvdWdodHMgYmVm
b3JlIEkgc3RhcnQgdG8gaW1wbGVtZW50IHRoZSBmZWF0dXJlLg0KDQpDaGVlcnMsDQpMdWNhDQoN
Cg0K


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:23:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:23:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647866.1011530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVOE-00054S-Nz; Tue, 05 Dec 2023 13:23:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647866.1011530; Tue, 05 Dec 2023 13: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 1rAVOE-00054L-Kg; Tue, 05 Dec 2023 13:23:06 +0000
Received: by outflank-mailman (input) for mailman id 647866;
 Tue, 05 Dec 2023 13: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAVOD-00053o-Mu
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:23:05 +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 6b1368c1-9371-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 14:23:03 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c0a03eb87so26293225e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 05:23:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 t17-20020a05600c451100b0040b379e8526sm22219422wmo.25.2023.12.05.05.23.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 05:23:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b1368c1-9371-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701782583; x=1702387383; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jMcn1Dv/BCuFpWqbgMxo+xk7m0QXnQkn6DxoF81FIfg=;
        b=OvvWfwCtQ57iVmj9jmz/Q6PIgvnS+6Wx6bf8SVLfewBo/o9dOmVVq+Ruu1IsuyHZwF
         DkrW09Ua2GKB5StOYFo91tQyZRYjD4sfz+UbirngWYAKCHxGRTyBslPYK9iAiNVQBlZx
         vAS2hzv8EdUhNKRuAQq2UGfnPKhjkR5IfF8fIxW5pnmXwOgiyim+snA0Rw3eWVgkm/9j
         S64DI2A9it3K5ThVE+HGVdsiWL+0WA8Ej+Ir9HshZYHZrq+wR4F75LBIQKDMVlEkfuAf
         eqg+w5U+nAa+RSTey/ry9687qa2dWhXvdPLd8/sj5vrNaIrtMEUv1TT04KgmHJX14h8Q
         kG0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701782583; x=1702387383;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=jMcn1Dv/BCuFpWqbgMxo+xk7m0QXnQkn6DxoF81FIfg=;
        b=W2Tpbpn2ODSKm+2ovW0vUaD7WulzAEJWTisVuq4wdqVh4cyMsG2TGhnj8Z313tuJqY
         qILg8RgTqMgKXXneCWUK6dW64GwJUSLnOLI1Usf4b1h8ZNbCmQ/afsB9nnV3AP7sHh6N
         ftyjvWetFcwHr/rFR2juxT/HpgUii+M7/m1EUAvgLWg6dnWVC80PZr9oST1yhZ9o/a7L
         ooh5G5s+Vg7+VgQnpHiHHNtR6BMSk+6Bd8hkx0MDsbk07NVgAya6Zjt/KPpwzJk5JwZp
         WaXc6cUNz7P0978sKo2iPRqc8jMTTv7NHqkmbdicdi1roVcihyOoEHqMfThQLxuUvaFb
         Ri9A==
X-Gm-Message-State: AOJu0Yw827yW9liI5m8xabdzAmE7pW2+OlihrU9exLHU8y3ymxp+5HAw
	W9y0twyZ4TaoGgIa20hMg3A8
X-Google-Smtp-Source: AGHT+IGJ5WVisJu+RzrcQbibsSsbKmiq4dZ+xQBmLpJEuu7aKxQ0GrYoHd6s9pZMepJiP8X7WqGjGQ==
X-Received: by 2002:a05:600c:3652:b0:40c:f27:1b81 with SMTP id y18-20020a05600c365200b0040c0f271b81mr500626wmq.373.1701782582803;
        Tue, 05 Dec 2023 05:23:02 -0800 (PST)
Message-ID: <df0df233-d44c-4386-a864-0e08e06d07a1@suse.com>
Date: Tue, 5 Dec 2023 14:23:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/5] x86/livepatch: introduce a basic live patch test
 to gitlab CI
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.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: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-5-roger.pau@citrix.com>
 <00de64fd-5669-424d-9b32-2342b5936f1a@suse.com> <ZW8g144id8e1Aoy3@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW8g144id8e1Aoy3@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 14:08, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 12:49:38PM +0100, Jan Beulich wrote:
>> On 28.11.2023 11:03, Roger Pau Monne wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/x86/test-smc-lp-alt.c
>>> @@ -0,0 +1,23 @@
>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>> +
>>> +#include <asm/test-smc.h>
>>> +
>>> +/*
>>> + * Interesting case because `return false` can be encoded as an xor
>>> + * instruction, which is shorter than `return true` which is a mov instruction,
>>> + * and also shorter than a jmp instruction.
>>> + */
>>
>> I'm a little wary of this comment: "mov $1, %al" is two bytes only, just like
> 
> Don't we need to zero the high part of the register also?  Or since
> the return type is a bool the compiler could assume it's truncated by
> the caller?

I think so, yes. I.e. ...

>> "xor %eax, %eax" is.
> 
> GCC 13.2 (from godbolt) generates at -O2:
> 
> mov    $0x1,%eax
> ret
> 
> Which is 5 bytes long mov insn.

... at -Os I'd kind of expect the compiler to use the shorter (albeit
slower to execute) "mov $1,%al" (unless of course I'm overlooking a
specific rule in psABI).

> The return false case is:
> 
> xor    %eax,%eax
> ret
> 
> I can adjust to mention this specific behavior.
> 
>>> +bool cf_check test_lp_insn_replacement(void)
>>
>> What's the purpose of the cf_check here?
> 
> Because it's added to the array of test functions to call in
> test_smc().  Doesn't it need cf_check in that case?

Oh, of course it does. I managed to overlook that use (misguided by one
of the two files being built without being actually used).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:31:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:31:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647873.1011539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVW6-0001vm-Jf; Tue, 05 Dec 2023 13:31:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647873.1011539; Tue, 05 Dec 2023 13: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 1rAVW6-0001vf-HC; Tue, 05 Dec 2023 13:31:14 +0000
Received: by outflank-mailman (input) for mailman id 647873;
 Tue, 05 Dec 2023 13:31:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAVW5-0001vW-CT
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:31:13 +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 1rAVW4-0006EM-Vq; Tue, 05 Dec 2023 13:31:12 +0000
Received: from 54-240-197-228.amazon.com ([54.240.197.228]
 helo=[10.95.100.251]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAVW4-0004rW-Ob; Tue, 05 Dec 2023 13:31:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=o/fokPQ+zQHTwAkPAK9SuoY+XxmjJJewc8zOtX0omFM=; b=jFJyzQ2FJWz6iiBsbJA7O/b8JY
	Gbpu+q9xL6NAWUeIg4kMce5TCA0UU7ONRiF24Nh/sRtVNOl8y3di3mnyUC53DTsqls/Awx9FKOiCU
	CG9Gi3jovDQI2iVntZSB61gXRyDxjBdd8DVMTkYQvbauyJfQn1GKVig3OrzFpk+H5dEs=;
Message-ID: <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
Date: Tue, 5 Dec 2023 13:31:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 05/12/2023 12:39, Juergen Gross wrote:
> On 05.12.23 12:53, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 05/12/2023 10:07, Juergen Gross wrote:
>>> Instead of defining get_unaligned() and put_unaligned() in a way that
>>> is only supporting architectures allowing unaligned accesses, use the
>>> same approach as the Linux kernel and let the compiler do the
>>> decision how to generate the code for probably unaligned data accesses.
>>>
>>> Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
>>> the Linux kernel.
>>>
>>> The generated code has been checked to be the same on x86.
>>>
>>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>>> Origin: 
>>> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
>>> 803f4e1eab7a
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>
>> Can you outline your end goal? At least on arm32, I believe this will 
>> result to abort because event if the architecture support unaligned 
>> access, we are preventing them on Arm32.
> 
> I need something like that in Xen tools for supporting packed data accesses
> on the 9pfs ring page, so I looked into the hypervisor for related support.

Did we really introduce an ABI requiring unaligned access??? Or is this 
something you are coming up with?

Anyway, IIRC Linux allows unaligned access. So the problem I am 
describing is only for the hypervisor. Although, I would like to point 
out that unaligned access has no atomicity guarantee. I assume this is 
not going to be a concern for you?

> I guess for arm32 using -mno-unaligned-access when building should avoid 
> any
> unaligned accesses?

I am not sure. This is implies the compiler will be able to infer that 
the access will be unaligned. Is this always the case?

Anyway, given you don't seem to have a use-case yet, I would simply to 
consider to surround the declaration with an a config which can be 
selected if unaligned access is supported.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:35:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:35:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647876.1011550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVaO-0004dm-4R; Tue, 05 Dec 2023 13:35:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647876.1011550; Tue, 05 Dec 2023 13:35:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVaO-0004df-1Y; Tue, 05 Dec 2023 13:35:40 +0000
Received: by outflank-mailman (input) for mailman id 647876;
 Tue, 05 Dec 2023 13:35: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAVaN-0004c9-00
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:35: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 2bcbeadc-9373-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 14:35:36 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c09f4814eso32000475e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 05:35:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 h15-20020a05600c314f00b004083a105f27sm22034752wmo.26.2023.12.05.05.35.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 05:35:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2bcbeadc-9373-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701783335; x=1702388135; 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=icdcTl4R53Kx/pBJJ95pkV2aMDgZm8pZTvVT9ZSHUhc=;
        b=CFgTk8qO08u6e/Fcp/Q0r7v49gXPg/glENjjOZw9LL9+MrEFJdWA64NK0g1vTwl+pt
         CpYyB/dntDavatwwwAiu5xAzW3cLO+XcSI472Gp42w/YaCpc3efk1ChP5VHCsc5/YSre
         HMjSSQtHsAb+es5d49EuktnvFCKUsaPbe5i3kRl5ZFHRkkd2WXv8JyqyzuB+jEU8sKZh
         //fR0INedhQp3+OzZKWIXbQLja+msDFYvK8vOvdiMX9L6DOczjguKarDWSYgBKuPIQNK
         E5SvTWWa3OaOaeH/QVvpGyi7OV6Cs0QoSS2J8VoaFv3wO7nJf08n6Q9YMvkqGAMVP5oW
         PqLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701783335; x=1702388135;
        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=icdcTl4R53Kx/pBJJ95pkV2aMDgZm8pZTvVT9ZSHUhc=;
        b=k8fqiMVKv4JgUc1JT3XwUyiAbh/W2wbF0m7uiTioIcZrLvuzuCplCBjZd8HSBrvvEa
         rpOyy6Ae5T9lnnRUyZm4RQTVeDfAg4ga545G6IhzUBDbW4m4a0z6nOK36nmpF3tEoFaW
         CX3v8uhKOdcXXp0VOLh8VXm+j70BWL/zOCflO7AI5996V1XQr2GP2nH1r+/0kqkYRl3k
         lteE4sWnHAeFSUfY7vwYFC1yiN25pVtTKgOC30DZbljijW4A1364o/FHMgAlaKcpsTAX
         At1B+KCqD2A05oEOoOxxlXkufZsMOtNeSE+0V+FMXWmsyH/PzMoOaUSNffMBHspAzCjM
         M9rA==
X-Gm-Message-State: AOJu0YzfV8KrwK9vdAI0eXqkBn0HGSwVY/5Tw8BkVG/DD/VNUgWCe/AY
	eIzwuzKffV038ArHXNNeioudn5hWIbNIw5VrqE1l
X-Google-Smtp-Source: AGHT+IEbR74fT7sx5xeMZ2d8yer15hxtkcPZfg9BatZ6kIsb2hk+7ezkXulY8PdRIZaKJiL+SsdCNQ==
X-Received: by 2002:a05:600c:30d4:b0:40b:5e59:cc9e with SMTP id h20-20020a05600c30d400b0040b5e59cc9emr567904wmn.127.1701783335428;
        Tue, 05 Dec 2023 05:35:35 -0800 (PST)
Message-ID: <1ca903e7-ed2c-435e-999d-2a8519957498@suse.com>
Date: Tue, 5 Dec 2023 14:35:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] x86/DMI: adjustments to comply with Misra C:2012 Rule 9.3
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: 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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The rule demands that all array elements be initialized (or dedicated
initializers be used). Introduce a small set of macros to allow doing so
without unduly affecting use sites (in particular in terms of how many
elements .matches[] actually has; right now there's no use of
DMI_MATCH4(), so we could even consider reducing the array size to 3).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of course a question is how many of these DMI table entries are in fact
no longer applicable (e.g. because of naming 32-bit-only systems).
Subsequently the table in dmi_scan.c itself may want cleaning up as
well, yet I guess the question of stale entries is even more relevant
there.
---
v2: Make things also build with older gcc.

--- a/xen/arch/x86/genapic/bigsmp.c
+++ b/xen/arch/x86/genapic/bigsmp.c
@@ -19,11 +19,14 @@ static int __init cf_check force_bigsmp(
 
 
 static const struct dmi_system_id __initconstrel bigsmp_dmi_table[] = {
-	{ force_bigsmp, "UNISYS ES7000-ONE", {
-		DMI_MATCH(DMI_PRODUCT_NAME, "ES7000-ONE")
-	 }},
+	{
+	    .ident = "UNISYS ES7000-ONE",
+	    .callback = force_bigsmp,
+	    DMI_MATCH1(
+		DMI_MATCH(DMI_PRODUCT_NAME, "ES7000-ONE")),
+	},
 	
-	 { }
+	{ }
 };
 
 
--- a/xen/arch/x86/hvm/quirks.c
+++ b/xen/arch/x86/hvm/quirks.c
@@ -36,42 +36,37 @@ static int __init cf_check check_port80(
         {
             .callback = dmi_hvm_deny_port80,
             .ident    = "Compaq Presario V6000",
-            .matches  = {
+	    DMI_MATCH2(
                 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
-                DMI_MATCH(DMI_BOARD_NAME,   "30B7")
-            }
+                DMI_MATCH(DMI_BOARD_NAME,   "30B7")),
         },
         {
             .callback = dmi_hvm_deny_port80,
             .ident    = "HP Pavilion dv9000z",
-            .matches  = {
+	    DMI_MATCH2(
                 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
-                DMI_MATCH(DMI_BOARD_NAME,   "30B9")
-            }
+                DMI_MATCH(DMI_BOARD_NAME,   "30B9")),
         },
         {
             .callback = dmi_hvm_deny_port80,
             .ident    = "HP Pavilion dv6000",
-            .matches  = {
+	    DMI_MATCH2(
                 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
-                DMI_MATCH(DMI_BOARD_NAME,   "30B8")
-            }
+                DMI_MATCH(DMI_BOARD_NAME,   "30B8")),
         },
         {
             .callback = dmi_hvm_deny_port80,
             .ident    = "HP Pavilion tx1000",
-            .matches  = {
+	    DMI_MATCH2(
                 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
-                DMI_MATCH(DMI_BOARD_NAME,   "30BF")
-            }
+                DMI_MATCH(DMI_BOARD_NAME,   "30BF")),
         },
         {
             .callback = dmi_hvm_deny_port80,
             .ident    = "Presario F700",
-            .matches  = {
+	    DMI_MATCH2(
                 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
-                DMI_MATCH(DMI_BOARD_NAME,   "30D3")
-            }
+                DMI_MATCH(DMI_BOARD_NAME,   "30D3")),
         },
         { }
     };
--- a/xen/arch/x86/ioport_emulate.c
+++ b/xen/arch/x86/ioport_emulate.c
@@ -43,59 +43,51 @@ static const struct dmi_system_id __init
      */
     {
         .ident = "HP ProLiant DL3xx",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL3"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL3")),
     },
     {
         .ident = "HP ProLiant DL5xx",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL5"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL5")),
     },
     {
         .ident = "HP ProLiant DL7xx",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL7"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL7")),
     },
     {
         .ident = "HP ProLiant ML3xx",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant ML3"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant ML3")),
     },
     {
         .ident = "HP ProLiant ML5xx",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant ML5"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant ML5")),
     },
     {
         .ident = "HP ProLiant BL2xx",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL2"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL2")),
     },
     {
         .ident = "HP ProLiant BL4xx",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL4"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL4")),
     },
     {
         .ident = "HP ProLiant BL6xx",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL6"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant BL6")),
     },
     { }
 };
--- a/xen/arch/x86/shutdown.c
+++ b/xen/arch/x86/shutdown.c
@@ -187,348 +187,310 @@ static const struct dmi_system_id __init
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell E520",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Dell DM061"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Dell DM061")),
     },
     {    /* Handle problems with rebooting on Dell 1300's */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell PowerEdge 1300",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 1300/"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 1300/")),
     },
     {    /* Handle problems with rebooting on Dell 300's */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell PowerEdge 300",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 300/"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 300/")),
     },
     {    /* Handle problems with rebooting on Dell Optiplex 745's SFF */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 745",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 745"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 745")),
     },
     {    /* Handle problems with rebooting on Dell Optiplex 745's DFF */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 745",
-        .matches = {
+        DMI_MATCH3(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
             DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 745"),
-            DMI_MATCH(DMI_BOARD_NAME, "0MM599"),
-        },
+            DMI_MATCH(DMI_BOARD_NAME, "0MM599")),
     },
     {    /* Handle problems with rebooting on Dell Optiplex 745 with 0KW626 */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 745",
-        .matches = {
+        DMI_MATCH3(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
             DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 745"),
-            DMI_MATCH(DMI_BOARD_NAME, "0KW626"),
-        },
+            DMI_MATCH(DMI_BOARD_NAME, "0KW626")),
     },
     {    /* Handle problems with rebooting on Dell Optiplex 330 with 0KP561 */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 330",
-        .matches = {
+        DMI_MATCH3(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
             DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 330"),
-            DMI_MATCH(DMI_BOARD_NAME, "0KP561"),
-        },
+            DMI_MATCH(DMI_BOARD_NAME, "0KP561")),
     },
     {    /* Handle problems with rebooting on Dell Optiplex 360 with 0T656F */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 360",
-        .matches = {
+        DMI_MATCH3(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
             DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 360"),
-            DMI_MATCH(DMI_BOARD_NAME, "0T656F"),
-        },
+            DMI_MATCH(DMI_BOARD_NAME, "0T656F")),
     },
     {    /* Handle problems with rebooting on Dell OptiPlex 760 with 0G919G */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell OptiPlex 760",
-        .matches = {
+        DMI_MATCH3(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
             DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 760"),
-            DMI_MATCH(DMI_BOARD_NAME, "0G919G"),
-        },
+            DMI_MATCH(DMI_BOARD_NAME, "0G919G")),
     },
     {    /* Handle problems with rebooting on Dell 2400's */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell PowerEdge 2400",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 2400"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 2400")),
     },
     {    /* Handle problems with rebooting on Dell T5400's */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell Precision T5400",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation T5400"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation T5400")),
     },
     {    /* Handle problems with rebooting on Dell T7400's */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell Precision T7400",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation T7400"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation T7400")),
     },
     {    /* Handle problems with rebooting on HP laptops */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "HP Compaq Laptop",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq")),
     },
     {    /* Handle problems with rebooting on Dell XPS710 */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell XPS710",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Dell XPS710"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Dell XPS710")),
     },
     {    /* Handle problems with rebooting on Dell DXP061 */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Dell DXP061",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Dell DXP061"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Dell DXP061")),
     },
     {    /* Handle problems with rebooting on Sony VGN-Z540N */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Sony VGN-Z540N",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z540N"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z540N")),
     },
     {    /* Handle problems with rebooting on ASUS P4S800 */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "ASUS P4S800",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
-            DMI_MATCH(DMI_BOARD_NAME, "P4S800"),
-        },
+            DMI_MATCH(DMI_BOARD_NAME, "P4S800")),
     },
     {    /* Handle reboot issue on Acer Aspire one */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_KBD,
         .ident = "Acer Aspire One A110",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
-            DMI_MATCH(DMI_PRODUCT_NAME, "AOA110"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "AOA110")),
     },
     {    /* Handle problems with rebooting on Apple MacBook5 */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Apple MacBook5",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5")),
     },
     {    /* Handle problems with rebooting on Apple MacBookPro5 */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Apple MacBookPro5",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5")),
     },
     {    /* Handle problems with rebooting on Apple Macmini3,1 */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Apple Macmini3,1",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Macmini3,1"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Macmini3,1")),
     },
     {    /* Handle problems with rebooting on the iMac9,1. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Apple iMac9,1",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "iMac9,1"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "iMac9,1")),
     },
     {    /* Handle problems with rebooting on the Latitude E6320. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell Latitude E6320",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6320"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6320")),
     },
     {    /* Handle problems with rebooting on the Latitude E5420. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell Latitude E5420",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420")),
     },
     {       /* Handle problems with rebooting on the Latitude E6220. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell Latitude E6220",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6220"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6220")),
     },
     {    /* Handle problems with rebooting on the Latitude E6420. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell Latitude E6420",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6420"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6420")),
     },
     {    /* Handle problems with rebooting on the OptiPlex 990. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell OptiPlex 990",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990")),
     },
     {    /* Handle problems with rebooting on the Precision M6600. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell OptiPlex 990",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Precision M6600"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Precision M6600")),
     },
     {    /* Handle problems with rebooting on the Latitude E6520. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell Latitude E6520",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520")),
     },
     {       /* Handle problems with rebooting on the OptiPlex 790. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell OptiPlex 790",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 790"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 790")),
     },
     {    /* Handle problems with rebooting on the OptiPlex 990. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell OptiPlex 990",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990")),
     },
     {    /* Handle problems with rebooting on the OptiPlex 390. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell OptiPlex 390",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 390"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 390")),
     },
     {    /* Handle problems with rebooting on Dell OptiPlex 9020. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_ACPI,
         .ident = "Dell OptiPlex 9020",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 9020"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 9020")),
     },
     {    /* Handle problems with rebooting on the Latitude E6320. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell Latitude E6320",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6320"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6320")),
     },
     {    /* Handle problems with rebooting on the Latitude E6420. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell Latitude E6420",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6420"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6420")),
     },
     {    /* Handle problems with rebooting on the Latitude E6520. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_CF9,
         .ident = "Dell Latitude E6520",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520")),
     },
     {    /* Handle problems with rebooting on Dell PowerEdge R540. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_ACPI,
         .ident = "Dell PowerEdge R540",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R540"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R540")),
     },
     {    /* Handle problems with rebooting on Dell PowerEdge R740. */
         .callback = override_reboot,
         .driver_data = (void *)(long)BOOT_ACPI,
         .ident = "Dell PowerEdge R740",
-        .matches = {
+        DMI_MATCH2(
             DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R740"),
-        },
+            DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R740")),
     },
     { }
 };
--- a/xen/arch/x86/x86_64/mmconf-fam10h.c
+++ b/xen/arch/x86/x86_64/mmconf-fam10h.c
@@ -188,9 +188,8 @@ void fam10h_check_enable_mmcfg(void)
 static const struct dmi_system_id __initconstrel mmconf_dmi_table[] = {
 	{
 		.ident = "Sun Microsystems Machine",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Sun Microsystems"),
-		},
+		DMI_MATCH1(
+			DMI_MATCH(DMI_SYS_VENDOR, "Sun Microsystems")),
 	},
 	{}
 };
--- a/xen/include/xen/dmi.h
+++ b/xen/include/xen/dmi.h
@@ -32,6 +32,11 @@ struct dmi_system_id {
 
 #define DMI_MATCH(a,b)	{ a, b }
 
+#define DMI_MATCH4(m1, m2, m3, m4) .matches = { m1, m2, m3, m4 }
+#define DMI_MATCH3(m1, m2, m3)     .matches = { [0] = m1, [1] = m2, [2] = m3 }
+#define DMI_MATCH2(m1, m2)         .matches = { [0] = m1, [1] = m2 }
+#define DMI_MATCH1(m1)             .matches = { [0] = m1 }
+
 extern int dmi_check_system(const struct dmi_system_id *list);
 extern void dmi_scan_machine(void);
 extern const char *dmi_get_table(paddr_t *base, u32 *len);


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:41:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:41:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647880.1011560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVfW-0000Ty-U8; Tue, 05 Dec 2023 13:40:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647880.1011560; Tue, 05 Dec 2023 13: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 1rAVfW-0000Tr-QF; Tue, 05 Dec 2023 13:40:58 +0000
Received: by outflank-mailman (input) for mailman id 647880;
 Tue, 05 Dec 2023 13:40: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 1rAVfV-0000SM-7T
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:40: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 1rAVfQ-0006Pe-Rk; Tue, 05 Dec 2023 13:40:52 +0000
Received: from 54-240-197-228.amazon.com ([54.240.197.228]
 helo=[10.95.100.251]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAVfQ-0005O7-La; Tue, 05 Dec 2023 13: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>
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=HGDL+6rdyIdXPQvbpfLq6DgcwKNZTS8E9v2K729BorM=; b=MturlTrZUVLw+1UfcZQcR7/2eC
	a2Ma2Sd1N/7fbvletb1Yc/UQZhJhuk/tXl8rLJqx4pL9mD9Ov5WqyyzUd/e2e1ag5zqI7yoP+1OtI
	5AuuOn0jqyH0jpGppad7IlNX3aKgqkwIF0EgeDDOuiKHBD8uzEHhp1T6uvemY7FpVMRM=;
Message-ID: <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org>
Date: Tue, 5 Dec 2023 13:40:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Ayan Kumar Halder <ayankuma@amd.com>, Michal Orzel
 <michal.orzel@amd.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 sstabellini@kernel.org, stefano.stabellini@amd.com,
 bertrand.marquis@arm.com, Volodymyr_Babchuk@epam.com
Cc: xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
 <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
 <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org>
 <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com>
 <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Ayan,

On 05/12/2023 12:50, Ayan Kumar Halder wrote:
> Hi Julien/All,
> 
> On 05/12/2023 11:02, Michal Orzel wrote:
>>
>> On 05/12/2023 11:42, Julien Grall wrote:
>>>
>>> On 05/12/2023 10:30, Michal Orzel wrote:
>>>>
>>>> On 05/12/2023 11:01, Julien Grall wrote:
>>>>>
>>>>> On 05/12/2023 09:28, Michal Orzel wrote:
>>>>>> Hi Julien,
>>>>>>
>>>>>> On 04/12/2023 20:55, Julien Grall wrote:
>>>>>>>
>>>>>>> On 04/12/2023 13:02, Ayan Kumar Halder wrote:
>>>>>>>> On 04/12/2023 10:31, Julien Grall wrote:
>>>>>>>>> Hi Ayan,
>>>>>>>> Hi Julien,
>>>>>>>>> On 01/12/2023 18:50, Ayan Kumar Halder wrote:
>>>>>>>>>> Currently if user enables HVC_DCC config option in Linux, it 
>>>>>>>>>> invokes
>>>>>>>>>> access to debug data transfer registers (ie DBGDTRTX_EL0 on 
>>>>>>>>>> arm64,
>>>>>>>>>> DBGDTRTXINT on arm32). As these registers are not emulated, 
>>>>>>>>>> Xen injects
>>>>>>>>>> an undefined exception to the guest. And Linux crashes.
>>>>>>>>> I am missing some data points here to be able to say whether I 
>>>>>>>>> would
>>>>>>>>> be ok with emulating the registers. So some questions:
>>>>>>>>> Â Â Â Â  * As you wrote below, HVC_DCC will return -ENODEV after this
>>>>>>>>> emulation. So may I ask what's the use case to enable it? (e.g. is
>>>>>>>>> there a distro turning this on?)
>>>>>>>> I am not aware of any distro using (or not using) this feature. 
>>>>>>>> This
>>>>>>>> issue came to light during our internal testing, when HVC_DCC was
>>>>>>>> enabled to use the debug console. When Linux runs without Xen, 
>>>>>>>> then we
>>>>>>>> could observe the logs on the debug console. When Linux was 
>>>>>>>> running as a
>>>>>>>> VM, it crashed.
>>>>>>>>
>>>>>>>> My intention here was to do the bare minimum emulation so that 
>>>>>>>> the crash
>>>>>>>> could be avoided.
>>>>>>> This reminds me a bit the discussion around "xen/arm64: Decode 
>>>>>>> ldr/str
>>>>>>> post increment operations". I don't want Xen to contain half-backed
>>>>>>> emulation just to please an OS in certain configuration that doesn't
>>>>>>> seem to be often used.
>>>>>>>
>>>>>>> Also, AFAICT, KVM is in the same situation...
>>>>>> Well, KVM is not in the same situation. It emulates all DCC regs 
>>>>>> as RAZ/WI, so there
>>>>>> will be no fault on an attempt to access the DCC.
>>>>> Does this mean a guest will think the JTAG is availabe?
>>>> Yes, it will believe the DCC is available which is not a totally bad 
>>>> idea. Yes, it will not have
>>>> any effect but at least covers the polling loop. The solution 
>>>> proposed here sounds better but does not take
>>>> into account the busy while loop when sending the char. Linux DCC 
>>>> earlycon does not make an initial check that runtime
>>>> driver does and will keep waiting in the loop if TXfull is set. 
>>>> Emulating everything as RAZ/WI solves that.
>>>> As you can see, each solution has its flaws and depends on the OS 
>>>> implementation.
>>> Right, which prove my earlier point. You are providing an emulation just
>>> to please a specific driver in Linux (not even the whole Linux). This is
>>> what I was the most concern of.
> I have sent out a patch ("[PATCH] tty: hvc: dcc: Check for TXfull 
> condition while setting up early console") to fix this.
>>>
>>> So ...
>>>
>>>>>> In general, I think that if a register is not optional and does 
>>>>>> not depend on other register
>>>>>> to be checked first (e.g. a feature/control register we emulate), 
>>>>>> which implies that it is fully ok for a guest to
>>>>>> access it directly - we should at least try to do something not to 
>>>>>> crash a guest.
>>>>> This is where we have opposing opinion. I view crashing a guest better
>>>>> than providing a wrong emulation because it gives a clear signal that
>>>>> the register they are trying to access will not function properly.
>>>>>
>>>>> We had this exact same discussion a few years ago when Linux 
>>>>> started to
>>>>> access GIC*_ACTIVER registers. I know that Stefano was for emulating
>>>>> them as RAZ but this had consequences on the domain side (Linux
>>>>> sometimes need to read them). We settled on printing a warning 
>>>>> which is
>>>>> not great but better than claiming we properly emulate the register.
>>>>>
>>>>>> I agree that this feature is not widely used. In fact I can only 
>>>>>> find it implemented in Linux and U-BOOT
>>>>>> and the issue I found in DBGDSCRINT (no access from EL0, even 
>>>>>> though we emulate REXT.UDCCdis as 0) only
>>>>>> proves that. At the same time, it does not cost us much to add 
>>>>>> this trivial support.
>>>>> See above. If we provide an (even basic) emulation, we need to make 
>>>>> sure
>>>>> it is correct and doesn't have a side effect on the guest. If we can't
>>>>> guarantee that (e.g. like for set/way when a device is assigned), then
>>>>> the best course of action is to crash the domain.
>>>>>
>>>>> AFAICT, the proposed emulation would be ok.
>>> ... I will need to revise this statement. I am now against this patch.
>> Yes, the problem was tricky from the very beginning and I somewhat 
>> agree. I prepared a POC with one solution
>> that Ayan extended and sent to gather feedback (hence RFC). I think we 
>> should still wait for others
>> opinion (@Stefano, @Bertrand). I think the thread contains all the 
>> necessary information
>> to decide what to do:
>> - do nothing* (guest crashes)
>> - emulate DCC the same way as KVM i.e. RAZ/WI (no crash, no busy loop, 
>> guest keeps using DCC with no effect)
>> - emulate DCC with TXfull set to 1 (no crash, runtime DCC in Linux 
>> returns -ENODEV, earlycon busy loop issue)
>>
>> * I still think we should fix DBGDSCRINT but I can send a separate 
>> patch (not really related to the DCC problem)
> 
> Regardless if the linux hvc earlycon is fixed or not
> 
> @Julien , would you be ok with option 2 or 3 with a suitable warning ?

I am afraid the answer is no.

> Also will wait for Stefano's and Bertrand's opinions.
> 
> Crashing the guest would seem quite severe imo if there can be a better 
> way (option 2 or 3) to tell that DCC is not available.

Well in option 2, you don't tell the DCC is not available. You just lie 
to it claiming there is one but it is not behaving properly.

I agree that crashing a guest is bad, but is lying to the domain really 
better? The consequence here is not that bad and hopefully it would be 
fairly easy to find. But this is not always the case. So I definitely 
would place a half-backed emulation more severe than a guest crash.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:41:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:41:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647881.1011569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVfo-0000yn-4C; Tue, 05 Dec 2023 13:41:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647881.1011569; Tue, 05 Dec 2023 13: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 1rAVfo-0000yg-1F; Tue, 05 Dec 2023 13:41:16 +0000
Received: by outflank-mailman (input) for mailman id 647881;
 Tue, 05 Dec 2023 13:41:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAVfn-0000yK-8J
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:41:15 +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 f45e975d-9373-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 14:41:12 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 2E7C11F8BE;
 Tue,  5 Dec 2023 13:41:12 +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 DDA5A1386E;
 Tue,  5 Dec 2023 13:41:11 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id CDDBNHcob2VFOgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 13:41: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: f45e975d-9373-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701783672; 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=+y8XUWNf7xOIEJZbYM72amkPH7x7C6Hzt6Zdl/smweI=;
	b=FtL+cZr1VraSYWrMXjfWasSc0H2MB1WNRid+8PPAMZrg4CqVQnatzsT2CF8GAo0VNLabOH
	xzOY/14qLx1BX2zdbHBRNBlxediwVWIKKr+F4kkpFoCyU/LnVkqNzqrpn19WBVGyoRRCXo
	OVKZ0bb8Psq6e7/SXxxbJcSiuArjf2I=
Message-ID: <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
Date: Tue, 5 Dec 2023 14:41:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
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: <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------FP7WiuE8V9g9xlZoydSa2664"
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -4.15
X-Spamd-Result: default: False [-4.15 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.16)[-0.803];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------FP7WiuE8V9g9xlZoydSa2664
Content-Type: multipart/mixed; boundary="------------XjY4muYZW3IALh5t0V096L6x";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
Message-ID: <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
In-Reply-To: <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>

--------------XjY4muYZW3IALh5t0V096L6x
Content-Type: multipart/mixed; boundary="------------0jKTJDYJx0e3bJRYUXf1ol4e"

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

T24gMDUuMTIuMjMgMTQ6MzEsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDA1LzEyLzIwMjMgMTI6MzksIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBP
biAwNS4xMi4yMyAxMjo1MywgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4+IEhpIEp1ZXJnZW4s
DQo+Pj4NCj4+PiBPbiAwNS8xMi8yMDIzIDEwOjA3LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4+PiBJbnN0ZWFkIG9mIGRlZmluaW5nIGdldF91bmFsaWduZWQoKSBhbmQgcHV0X3VuYWxp
Z25lZCgpIGluIGEgd2F5IHRoYXQNCj4+Pj4gaXMgb25seSBzdXBwb3J0aW5nIGFyY2hpdGVj
dHVyZXMgYWxsb3dpbmcgdW5hbGlnbmVkIGFjY2Vzc2VzLCB1c2UgdGhlDQo+Pj4+IHNhbWUg
YXBwcm9hY2ggYXMgdGhlIExpbnV4IGtlcm5lbCBhbmQgbGV0IHRoZSBjb21waWxlciBkbyB0
aGUNCj4+Pj4gZGVjaXNpb24gaG93IHRvIGdlbmVyYXRlIHRoZSBjb2RlIGZvciBwcm9iYWJs
eSB1bmFsaWduZWQgZGF0YSBhY2Nlc3Nlcy4NCj4+Pj4NCj4+Pj4gVXBkYXRlIGluY2x1ZGUv
eGVuL3VuYWxpZ25lZC5oIGZyb20gaW5jbHVkZS9hc20tZ2VuZXJpYy91bmFsaWduZWQuaCBv
Zg0KPj4+PiB0aGUgTGludXgga2VybmVsLg0KPj4+Pg0KPj4+PiBUaGUgZ2VuZXJhdGVkIGNv
ZGUgaGFzIGJlZW4gY2hlY2tlZCB0byBiZSB0aGUgc2FtZSBvbiB4ODYuDQo+Pj4+DQo+Pj4+
IFNpZ25lZC1vZmYtYnk6IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+DQo+Pj4+IE9y
aWdpbjogZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3Rv
cnZhbGRzL2xpbnV4LmdpdCANCj4+Pj4gODAzZjRlMWVhYjdhDQo+Pj4+IFNpZ25lZC1vZmYt
Ynk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+Pg0KPj4+IENhbiB5b3Ug
b3V0bGluZSB5b3VyIGVuZCBnb2FsPyBBdCBsZWFzdCBvbiBhcm0zMiwgSSBiZWxpZXZlIHRo
aXMgd2lsbCByZXN1bHQgDQo+Pj4gdG8gYWJvcnQgYmVjYXVzZSBldmVudCBpZiB0aGUgYXJj
aGl0ZWN0dXJlIHN1cHBvcnQgdW5hbGlnbmVkIGFjY2Vzcywgd2UgYXJlIA0KPj4+IHByZXZl
bnRpbmcgdGhlbSBvbiBBcm0zMi4NCj4+DQo+PiBJIG5lZWQgc29tZXRoaW5nIGxpa2UgdGhh
dCBpbiBYZW4gdG9vbHMgZm9yIHN1cHBvcnRpbmcgcGFja2VkIGRhdGEgYWNjZXNzZXMNCj4+
IG9uIHRoZSA5cGZzIHJpbmcgcGFnZSwgc28gSSBsb29rZWQgaW50byB0aGUgaHlwZXJ2aXNv
ciBmb3IgcmVsYXRlZCBzdXBwb3J0Lg0KPiANCj4gRGlkIHdlIHJlYWxseSBpbnRyb2R1Y2Ug
YW4gQUJJIHJlcXVpcmluZyB1bmFsaWduZWQgYWNjZXNzPz8/IE9yIGlzIHRoaXMgDQo+IHNv
bWV0aGluZyB5b3UgYXJlIGNvbWluZyB1cCB3aXRoPw0KDQpUaGlzIGlzIHRoZSA5cGZzIHBy
b3RvY29sIChzZWUgWzFdKS4NCg0KPiBBbnl3YXksIElJUkMgTGludXggYWxsb3dzIHVuYWxp
Z25lZCBhY2Nlc3MuIFNvIHRoZSBwcm9ibGVtIEkgYW0gZGVzY3JpYmluZyBpcyANCj4gb25s
eSBmb3IgdGhlIGh5cGVydmlzb3IuIEFsdGhvdWdoLCBJIHdvdWxkIGxpa2UgdG8gcG9pbnQg
b3V0IHRoYXQgdW5hbGlnbmVkIA0KPiBhY2Nlc3MgaGFzIG5vIGF0b21pY2l0eSBndWFyYW50
ZWUuIEkgYXNzdW1lIHRoaXMgaXMgbm90IGdvaW5nIHRvIGJlIGEgY29uY2VybiANCj4gZm9y
IHlvdT8NCg0KQ29ycmVjdC4NCg0KPiANCj4+IEkgZ3Vlc3MgZm9yIGFybTMyIHVzaW5nIC1t
bm8tdW5hbGlnbmVkLWFjY2VzcyB3aGVuIGJ1aWxkaW5nIHNob3VsZCBhdm9pZCBhbnkNCj4+
IHVuYWxpZ25lZCBhY2Nlc3Nlcz8NCj4gDQo+IEkgYW0gbm90IHN1cmUuIFRoaXMgaXMgaW1w
bGllcyB0aGUgY29tcGlsZXIgd2lsbCBiZSBhYmxlIHRvIGluZmVyIHRoYXQgdGhlIA0KPiBh
Y2Nlc3Mgd2lsbCBiZSB1bmFsaWduZWQuIElzIHRoaXMgYWx3YXlzIHRoZSBjYXNlPw0KDQpU
aGlzIHNob3VsZCBoYXBwZW4gdGhyb3VnaCB0aGUgIl9fcGFja2VkIiBhdHRyaWJ1dGUgb24g
dGhlIGFjY2VzcyBtYWNyb3MuIEFzDQplLmcuIE1JUFMgZG9lc24ndCBzdXBwb3J0IHVuYWxp
Z25lZCBhY2Nlc3NlcywgYnV0IGlzIHdvcmtpbmcgd2l0aCB0aG9zZSBhY2Nlc3MNCm1hY3Jv
cyBpbiB0aGUgTGludXgga2VybmVsLCBJIHN1c3BlY3QgdGhlIGF0dHJpYnV0ZSBpcyBkb2lu
ZyBpdHMgam9iLg0KDQo+IEFueXdheSwgZ2l2ZW4geW91IGRvbid0IHNlZW0gdG8gaGF2ZSBh
IHVzZS1jYXNlIHlldCwgSSB3b3VsZCBzaW1wbHkgdG8gY29uc2lkZXIgDQo+IHRvIHN1cnJv
dW5kIHRoZSBkZWNsYXJhdGlvbiB3aXRoIGFuIGEgY29uZmlnIHdoaWNoIGNhbiBiZSBzZWxl
Y3RlZCBpZiB1bmFsaWduZWQgDQo+IGFjY2VzcyBpcyBzdXBwb3J0ZWQuDQoNCkxpa2UgaW4g
eGVuL2NvbW1vbi9sem8uYyBldCBhbD8gVGhvc2UgYXJlIGNvbXBpbGVkIHdpdGggQ09ORklH
X1g4NiBvbmx5IHRvZGF5LA0KYnV0IEkgZ3Vlc3Mgb3RoZXIgYXJjaHMgbWlnaHQgbmVlZCB0
aGUgZGVjb21wcmVzc29ycyBpbiBmdXR1cmUsIHRvby4NCg0KDQpKdWVyZ2VuDQoNClsxXTog
aHR0cDovL2VyaWN2aC5naXRodWIuaW8vOXAtcmZjL3JmYzlwMjAwMC5odG1sDQo=
--------------0jKTJDYJx0e3bJRYUXf1ol4e
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-----

--------------0jKTJDYJx0e3bJRYUXf1ol4e--

--------------XjY4muYZW3IALh5t0V096L6x--

--------------FP7WiuE8V9g9xlZoydSa2664
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/Ey8FAmVvKHcFAwAAAAAACgkQsN6d1ii/Ey8U
mAf9HzBoCEbP8iWxhaceGsFWdDboVmto7Z8+0GMjtFZzlykijhOSssZywD0ih04aCkmYqCzz5g0d
XdCWGBGYa1a9ueLjVDYItxmhHSL8UO34ipvReYJ5qhRnJqwAOIpgOc1r2lOcx0ksU3u2WRZZJuMz
qNgIzeIU3fdMdUOTiKmCPYuyR6ewyV9eR2ix6rcPSGxUTLrUVg5vBq6vqeZhddLVczGAXIDsGbqF
gIvssRvKbghBQOWa0Fl78uQROLStN5REoOejX1hVdGSrIbp+dOvp7uxsKlAJ1AywMAp15tCy2f5w
aNPY6I0+YBNCRNs7UjF/ompG3W8Xo+fLR1tefvZBgw==
=zdFx
-----END PGP SIGNATURE-----

--------------FP7WiuE8V9g9xlZoydSa2664--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:42:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:42:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647884.1011580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVhF-0002e8-FP; Tue, 05 Dec 2023 13:42:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647884.1011580; Tue, 05 Dec 2023 13: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 1rAVhF-0002dY-BX; Tue, 05 Dec 2023 13:42:45 +0000
Received: by outflank-mailman (input) for mailman id 647884;
 Tue, 05 Dec 2023 13:42:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cmhw=HQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAVhE-0002aj-IW
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:42:44 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a696fe2-9374-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 14:42:43 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c09f5a7cfso27180185e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 05:42:43 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 n16-20020a05600c501000b00407b93d8085sm22470957wmr.27.2023.12.05.05.42.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 05:42:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a696fe2-9374-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701783763; x=1702388563; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=i5Yq+mDPb1tH42ajcfV9REQSaM26LCsvxcLpnrwduaA=;
        b=fSxDwANuN0PmYtFlRaBv6aJmY1oMTeY1s6oVDjE2KVvMbWbqXv9Cu/Cr/uLskYM1oE
         hMzR930hWafO1QQLuVylCOJKLZ88OjKTXPcJySTwn/lr77+LnniaCw/QqJ27yWpQxtZS
         MOTyrEhMw9h1gFqzHTHIhciRtBj/kpxdsFDJw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701783763; x=1702388563;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=i5Yq+mDPb1tH42ajcfV9REQSaM26LCsvxcLpnrwduaA=;
        b=t2+vwlEwYomQQ8bm171XHDm4QfrRIhrwst0JWrmZz2qX6b2xfRgc+F2AqY2IJVbBMT
         NBl9Q9VLaS47AFGL5na15IaerSJ6nA9mxPFL8W7yGXszyA3QPaVnJAAyGHOARE+aYJZD
         llMHIGX2xJf+XHWLZuuSff4TOVZR2ldBaKO+Gf+rqIJ6j5JWfp84ejTPQaqzqCpq9heN
         wlASoy8I9J7DeGC8RTkGP6hAMgO/8qjJIaITZvIBKhv3YpRFWvR81VGhE1G3lsLXJSSk
         PbuWkZQWwWPU8IjsuvxKbmSBzut4TQFyMiTRB9ZU1U47m0Ts7R9S9Wdo+JpMB6ox8woS
         iZ+g==
X-Gm-Message-State: AOJu0YwySpoeYTBCHD5et35qGt6jkMrDx1/6bSVobIc/xel4lcvTXp6v
	dByf9YtN3RKRhRB6axGthhG0MA==
X-Google-Smtp-Source: AGHT+IFN3b0xlfIUbxzdZ4iiuLahVRYNMKqX/BMiaceALDoKZReRjjzibPkij2the91mLAfKQmdRWw==
X-Received: by 2002:a05:600c:4187:b0:40b:5e21:ec31 with SMTP id p7-20020a05600c418700b0040b5e21ec31mr436692wmh.99.1701783762827;
        Tue, 05 Dec 2023 05:42:42 -0800 (PST)
Message-ID: <ddbf1fad-e0c1-4b7c-9734-71d4997b5aa0@citrix.com>
Date: Tue, 5 Dec 2023 13:42:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231128100352.35430-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/11/2023 10:03 am, Roger Pau Monne wrote:
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index f3abdf9cd111..f629157086d0 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -82,6 +82,8 @@ obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
>  obj-y += sysctl.o
>  endif
>  
> +CFLAGS-$(CONFIG_LIVEPATCH) += -falign-functions=$(CONFIG_CC_FUNCTION_ALIGNMENT)

I'd really prefer not to express it like this.Â  For one, a major reason
for using an alignment of 16b or more is simply performance.

Also, it isn't "CC" when we get the asm macros working.

Copy Linux more closely.Â  Then, you have LIVEPATCH select
FUNCTION_ALIGNMENT_{8,16}B as appropriate.Â  And PERFORMANCE selects
FUNCTION_ALIGNMENT_16B or perhaps 32B depending on uarch.

If we ever get around to having KCFI, then we need 16B irrespective of
anything else.



As for the subject, it's not really about size; the function size is
still going to be small irrespective of the alignment.Â  It's about
having space in the final binary to livepatch:

int foo(void)
{
Â Â Â  return 0;
}

into

int foo(void)
{
Â Â Â  return 1;
}

which is something you can't always do right now without overwriting the
head of whichever function is following foo() in the binary.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:46:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:46:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647890.1011590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVkp-0006q4-22; Tue, 05 Dec 2023 13:46:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647890.1011590; Tue, 05 Dec 2023 13:46:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVko-0006px-UP; Tue, 05 Dec 2023 13:46:26 +0000
Received: by outflank-mailman (input) for mailman id 647890;
 Tue, 05 Dec 2023 13:46:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAVkn-0006pr-HF
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:46:25 +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 1rAVkn-0006WK-7j; Tue, 05 Dec 2023 13:46:25 +0000
Received: from 54-240-197-228.amazon.com ([54.240.197.228]
 helo=[10.95.100.251]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAVkm-0005ig-W6; Tue, 05 Dec 2023 13: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>
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=7CsabIMiGe8A3VLGNd55kAYqfmJoncNT33iG05EDwXQ=; b=dzsV9upOuLiMwjdKSOcJrtpr9T
	srQMQvr/HzX2KiZhN7nzmZHOOotumuHr1SPF8VpgytXb5OoTcHfe2U94s9V5QExt7B7VinAHnJXZ2
	TKUFgn5D0IGmWQuhXEEYd7k5EIguOxawSjX3KPaXruaefeyPVczsNSEwz4UrL5+zE0IY=;
Message-ID: <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
Date: Tue, 5 Dec 2023 13:46:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 05/12/2023 13:41, Juergen Gross wrote:
> On 05.12.23 14:31, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 05/12/2023 12:39, Juergen Gross wrote:
>>> On 05.12.23 12:53, Julien Grall wrote:
>>>> Hi Juergen,
>>>>
>>>> On 05/12/2023 10:07, Juergen Gross wrote:
>>>>> Instead of defining get_unaligned() and put_unaligned() in a way that
>>>>> is only supporting architectures allowing unaligned accesses, use the
>>>>> same approach as the Linux kernel and let the compiler do the
>>>>> decision how to generate the code for probably unaligned data 
>>>>> accesses.
>>>>>
>>>>> Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
>>>>> the Linux kernel.
>>>>>
>>>>> The generated code has been checked to be the same on x86.
>>>>>
>>>>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>>>>> Origin: 
>>>>> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
>>>>> 803f4e1eab7a
>>>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>>>
>>>> Can you outline your end goal? At least on arm32, I believe this 
>>>> will result to abort because event if the architecture support 
>>>> unaligned access, we are preventing them on Arm32.
>>>
>>> I need something like that in Xen tools for supporting packed data 
>>> accesses
>>> on the 9pfs ring page, so I looked into the hypervisor for related 
>>> support.
>>
>> Did we really introduce an ABI requiring unaligned access??? Or is 
>> this something you are coming up with?
> 
> This is the 9pfs protocol (see [1]).

Urgh :(.

> 
>> Anyway, IIRC Linux allows unaligned access. So the problem I am 
>> describing is only for the hypervisor. Although, I would like to point 
>> out that unaligned access has no atomicity guarantee. I assume this is 
>> not going to be a concern for you?
> 
> Correct.
> 
>>
>>> I guess for arm32 using -mno-unaligned-access when building should 
>>> avoid any
>>> unaligned accesses?
>>
>> I am not sure. This is implies the compiler will be able to infer that 
>> the access will be unaligned. Is this always the case?
> 
> This should happen through the "__packed" attribute on the access 
> macros. As
> e.g. MIPS doesn't support unaligned accesses, but is working with those 
> access
> macros in the Linux kernel, I suspect the attribute is doing its job.

Someone will need to dig a bit deeper to confirm and also the impact on 
the rest of the hypervisor.

> 
>> Anyway, given you don't seem to have a use-case yet, I would simply to 
>> consider to surround the declaration with an a config which can be 
>> selected if unaligned access is supported.
> 
> Like in xen/common/lzo.c et al?

Just to clarify, I am suggesting to add in unaligned.h:

#ifdef CONFIG_HAS_UNALIGNED_ACCESS

your definitions

#endif

And then for X86, select CONFIG_HAS_UNALIGNED_ACCESS.

  Those are compiled with CONFIG_X86 only
> today,
> but I guess other archs might need the decompressors in future, too.
Possibly yes. But my point is that you don't have to solve the problem 
today. Yet I don't think it is wise to allow the header to be used on 
arm32 until we have done some investigation.

And to clarify, I am not asking you to do the investigation.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:46:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:46:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647891.1011600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVl5-0007Wp-8X; Tue, 05 Dec 2023 13:46:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647891.1011600; Tue, 05 Dec 2023 13:46: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 1rAVl5-0007We-5b; Tue, 05 Dec 2023 13:46:43 +0000
Received: by outflank-mailman (input) for mailman id 647891;
 Tue, 05 Dec 2023 13:46: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=QNL/=HQ=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rAVl3-0007Ub-RC
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:46:41 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20600.outbound.protection.outlook.com
 [2a01:111:f403:2612::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b796167e-9374-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 14:46:40 +0100 (CET)
Received: from AM6PR04CA0052.eurprd04.prod.outlook.com (2603:10a6:20b:f0::29)
 by DU0PR08MB7566.eurprd08.prod.outlook.com (2603:10a6:10:31e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 13:46:29 +0000
Received: from AM2PEPF0001C714.eurprd05.prod.outlook.com
 (2603:10a6:20b:f0:cafe::dd) by AM6PR04CA0052.outlook.office365.com
 (2603:10a6:20b:f0::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend
 Transport; Tue, 5 Dec 2023 13:46:29 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM2PEPF0001C714.mail.protection.outlook.com (10.167.16.184) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 13:46:28 +0000
Received: ("Tessian outbound 385ad2f98d71:v228");
 Tue, 05 Dec 2023 13:46:28 +0000
Received: from 525f584c6da2.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E663F846-AA07-484C-8FD9-75BE1FBA861C.1; 
 Tue, 05 Dec 2023 13:46:17 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 525f584c6da2.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 05 Dec 2023 13:46:17 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com (2603:10a6:20b:8f::22)
 by AM8PR08MB5570.eurprd08.prod.outlook.com (2603:10a6:20b:1d2::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 13:46:16 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838]) by AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838%7]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 13:46:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b796167e-9374-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=TnLFqyNrcx6pXVq5ThqlOUc72W3MYzqi1f2e+SV9e5T/1RVmWmuMGWNAkMDH/7Bs0vTkaULtHT/wVhLGRnkAxj6SnXixUm46FsdDZq4x9Mg+SRyZaabL+khUe/WHo/H8wYEdxigmDI2vPfV9pVabMwYqpbCVuqhUbqi0LlekwrNXB2FNvmK+161cE5aKsW4Z17zwuviGEb4/bGVo4JLnSB5FddGEWNtp+0likL+h6FEjuvZarCaUEGBQI9dKHQSn/Nuo0QHWdZ3884hD8NqRx9afWuGgMwCsUHA+Bi+yW9BI0qIjhbJefb0qNTtey86ZygXHWFIbGeFoP/mR9mZfCQ==
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=MkcRtQSt+ZngtZUfvVnKnyw+5YWnh/NRGw5LsMRqcrI=;
 b=nT9upRfQdYPT8Wmp5+etYoqXE7r6taPBSp42Q3txskPTWxIPPW//qR+HNpF/iOA4S3qMmNRNWA627afBZJQ8QVKjgAjYFLmQIJIv2OPrxheoSIcfYibIUxHuuPmnJWNSjw26zlZMfMMnRZo2oclC9++cVG9LloplIU5p4yMZPuDiR89JbukCTJbsB4G/SDnLeNvYOfpeJfgONxfyYslUWGo09yMsY+ZLyYV6x0pAIDRL/NumkKqw5Z0NGhtjZ01j0KYBHwfFpg9DUslIq/FUeBLPwCJXr6x5UjHM8k1tEE3hW4t369EUiY5y02koHPPaCwTQkNRBfMQrEAqTzX9SXg==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MkcRtQSt+ZngtZUfvVnKnyw+5YWnh/NRGw5LsMRqcrI=;
 b=sw1UtwDejQ8E/NIyT9uyc6C61djN/i6jr92ZkaMRlyFdR/Wz24n5l/kpO/2luntV6eAvYsi/GGuodjutZA9zrOhEcFafCj2S5Z5mmDH8lB69v7F/1sIkDSlKY0C6eH+Rg8eNyvGNdYkMogLpV+UAWOxqJAoeq4IyLTg1uMhInyA=
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=armh.onmicrosoft.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: cd7893aea5649c05
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PPKTi91qEeXLEWunAXY+CDcyxV33gLcB6U+uV8yFyqFiJQqU12D+Cfa5H71Pkq0kgltuRsBloBz/s8toufBq1pt7+A1MysFCDfZ7E3/A9yynLnfj1sv6UKLkUh3PgeO5I5hDeQSCLTFRfM3l0+KGONKj5OX8tGZ57u0mWxDY4KDsWw8ysPws2qfUqeWGP5XRRD1jabUvBY2nHnBgWZnBtaJHy19M2zeOXUpbWnFGq+AJOkAVlvIaVLV2yWzvEUuZOhDRFae2eB/aN6FnJymMJku4jpg43Px+HK2qdBROUsdlc8VEgHASqpFcYUYI1yR1vvYNlPwxiGaeVSaqobIIZQ==
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=MkcRtQSt+ZngtZUfvVnKnyw+5YWnh/NRGw5LsMRqcrI=;
 b=n1/njHfo34LECIOTiXfu8o3RyhK9Dy8PyNRJhuO3OJjJhTWKvDWunfdAZ641ywuVSwrVdFGqpCIlZaHJOOd5zDDzRhU9rpzQMPV9Z5bzWuQrikAvoeVqJzVe8Kmodv2/yKARAFhx/h9bmhS6aZ4uYlxWOSdGldWGflY+03o1klPdgVzRnv4AnT+c+JPppjFZPHGQTrDt3LP7EmEYqwWkmywyv2bZK4h6hWf/9iwPZLoOu2IXW5Z6kmwLh33Jc72qA+lXK54X/KvAUs6yWIf5LgOCpBk1zu7ugp5P05Yb4tGEk2SLT3Yza2o1Rx3ZhpJFxKaWutXh6gOJOD5VCtJIdQ==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MkcRtQSt+ZngtZUfvVnKnyw+5YWnh/NRGw5LsMRqcrI=;
 b=sw1UtwDejQ8E/NIyT9uyc6C61djN/i6jr92ZkaMRlyFdR/Wz24n5l/kpO/2luntV6eAvYsi/GGuodjutZA9zrOhEcFafCj2S5Z5mmDH8lB69v7F/1sIkDSlKY0C6eH+Rg8eNyvGNdYkMogLpV+UAWOxqJAoeq4IyLTg1uMhInyA=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal
 Orzel <Michal.Orzel@amd.com>, George Dunlap <george.dunlap@citrix.com>, Wei
 Liu <wl@xen.org>
Subject: Re: Clang-format configuration discussion - pt 2
Thread-Topic: Clang-format configuration discussion - pt 2
Thread-Index: AQHaHhwDfni7SbjBtk6S7YLD/w4HebCaxpCA
Date: Tue, 5 Dec 2023 13:46:15 +0000
Message-ID: <2E778E49-C2F5-421F-9598-CED15E7D4284@arm.com>
References: <1B83FF45-E93B-47D7-AD21-615CFCFD0816@arm.com>
In-Reply-To: <1B83FF45-E93B-47D7-AD21-615CFCFD0816@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3749:EE_|AM8PR08MB5570:EE_|AM2PEPF0001C714:EE_|DU0PR08MB7566:EE_
X-MS-Office365-Filtering-Correlation-Id: 2bc34f1e-63a2-4d71-7c90-08dbf5989525
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 kzOwAhmg8yesBT6jhOOUP3J39qEIAZMqvwXDWRV5rScnaob6TOS7fVQbsv2bjSXl9meYfp1EeT0mA4CZyJ0V8kVhWhXalbNLbK6yDtrWf+V3/34lCLdXVuo67Pm22qjlXOkwchLQO1deIUfcdIeE42R4ywGGEgHhPZTShoXp3zb+zuhV9HX1FgJW00fT8qkCXRpL1YIJagC5rQdtfBQTfh7eMWb8YRfYWQ5oDmXiJBLqJDDG1FyAKAQ3XNHA23fl2sWe+hVDyCA5Djer8cYvoMJWnc2FADFyM847Fj9NAWrfBriQl4Tv/o3lXMEL4sQVWzRfykOLaTIxH5o2TD7ott/El8jKIFWAyyNoVnaVDez+Dn4OPNUEzxsDkQ7BM+rgu+gGAt7Bc13XoQ78nChvIpqkkjjj4uL4eDvmg0hxUBJkdlwvtpart2eYDAiQ2NWs1nk6udSBXcX6x1S2YDiG+dD0xaR07fD/ydqVu3Cey/MmantoA3t7qZUlbMlLTq/aJLL82tRUN/Eu21H73bOjHu4QPN3RVtlIGGGxqw0wKmN4ouSeM4ye15MAAh666vDf6fE/h8N7kjMEvl6tACbogzmjWrC9xFRfiHaITP51v+ldeLBApaVt3eOWEUVW/fTxA8fmm7/uLp8GLkBk4Htu0RW2Y6hEV8WGYEjTN75pDWZ5yyIo7vXYFVlYyCWp7ip2
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:(13230031)(39860400002)(396003)(366004)(346002)(376002)(136003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(2906002)(33656002)(316002)(66899024)(91956017)(66556008)(6916009)(54906003)(64756008)(66446008)(66476007)(38070700009)(76116006)(86362001)(66946007)(8676002)(41300700001)(36756003)(4326008)(8936002)(5660300002)(38100700002)(122000001)(6486002)(83380400001)(478600001)(966005)(26005)(71200400001)(2616005)(6512007)(53546011)(6506007)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <7639F983F4CC614583EB5C63C484BA11@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5570
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:
 AM2PEPF0001C714.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f24a89b2-5fc5-4efb-59c9-08dbf5988d75
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	mBs91WgdiY4csIYP7DaILs2cUIpXVArMYaROtEs+/0u2inF9Wr3Aor/DFNjawGQulEdqR/LVkcsRR1An9gqu4wC4FxgcnX3T1CKc7EHikN23BT/mVSlb+dHSruwRKfzhHzQcB2YP2LKAuS6talGA6eqUMGTnZfdz4wICz6a0axrUrdElgInRiTps5fULgaCvAGFZdVtPmiAzQwghRSDJMW0by88FntJwa2Vbdq5Sx8tRVh6NpXJ9Yf/CLx9wsrSdqFdjfziS7F2P8GpwyfvHxU3epWUA29S+txU32EqiQ3Q78QGtMnWhGqligxvixAajJvhLaw00gW99I0BG5SbMPS/zL2ycUKSffMSSV5vg0yam9I/TELflTjvt+kq33ulSzDWMJX7CXqfkByGQsoWT6A1SoSqrEcy1RwwBHE6NkKZtnUhEodIOowwX/BvC6Z0KmqPETNQ8opnlq8x/QUXUlueiHfa5V+yt7Fjf9I4l98u4066vUUD1u2AbaUDGdoKFEy5p8KWHXTh19t9nUnqT6D0qIqwRF2bL3l/xOCOd8AwFREMx7oZtegq26iwtCZ/y03wd1gcimC2e8rwme49KtukR3lraem/NGC+Ki+ic8rIXDVxp5tyMQIWdHvhkbI504/zk+3BGr1g4W/+TptSyDUcvzR5SilXTeL3l7wJGs6I2kCk++2Aoy831fh0qS2w2phItuIiWaEDyMkP66tc73C/4IXUXXnNSBfneRVK+LTPoJCkVduCdzc2szP9zKBMMPOpqAj0zbL/ZWpU/LqvF9A==
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:(13230031)(4636009)(39860400002)(396003)(346002)(136003)(376002)(230922051799003)(64100799003)(186009)(1800799012)(82310400011)(451199024)(40470700004)(46966006)(36840700001)(356005)(47076005)(81166007)(83380400001)(478600001)(6486002)(966005)(53546011)(6506007)(82740400003)(36860700001)(8676002)(8936002)(316002)(54906003)(70206006)(6916009)(70586007)(40480700001)(6512007)(26005)(336012)(2616005)(86362001)(5660300002)(40460700003)(2906002)(4326008)(41300700001)(66899024)(36756003)(33656002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 13:46:28.8528
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2bc34f1e-63a2-4d71-7c90-08dbf5989525
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:
	AM2PEPF0001C714.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7566

DQoNCj4gT24gMjMgTm92IDIwMjMsIGF0IDE0OjQ3LCBMdWNhIEZhbmNlbGx1IDxMdWNhLkZhbmNl
bGx1QGFybS5jb20+IHdyb3RlOg0KPiANCj4gSGkgYWxsLA0KPiANCj4gTGV04oCZcyBjb250aW51
ZSB0aGUgZGlzY3Vzc2lvbiBhYm91dCBjbGFuZy1mb3JtYXQgY29uZmlndXJhdGlvbiwgdGhpcyBp
cyBwYXJ0IDIsIHByZXZpb3VzIGRpc2N1c3Npb25zIGFyZToNCj4gDQo+IC0gaHR0cHM6Ly9saXN0
cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDIzLTExL21zZzAwNDk4
Lmh0bWwNCj4gDQo+IFlvdSBjYW4gZmluZCB0aGUgc2VyaWUgaW50cm9kdWNpbmcgY2xhbmctZm9y
bWF0IGhlcmU6DQo+IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC94ZW4tZGV2
ZWwvY292ZXIvMjAyMzEwMzExMzIzMDQuMjU3MzkyNC0xLWx1Y2EuZmFuY2VsbHVAYXJtLmNvbS8N
Cj4gYW5kIHRoZXJlIGlzIGFsc28gYSBwYXRjaCBsaW5rZWQgdG8gbXkgZ2l0bGFiIGFjY291bnQg
d2hlcmUgeW91IGNhbiBmaW5kIHRoZSBvdXRwdXQgZm9yIHRoZSBoeXBlcnZpc29yIGNvZGUuDQo+
IA0KPiBGb3IgYSBmdWxsIGxpc3Qgb2YgY29uZmlndXJhYmxlcyBhbmQgdG8gZmluZCB0aGUgcG9z
c2libGUgdmFsdWVzIGZvciB0aGVtLCBwbGVhc2UgcmVmZXIgdG8gdGhpcyBwYWdlOg0KPiBodHRw
czovL2NsYW5nLmxsdm0ub3JnL2RvY3MvQ2xhbmdGb3JtYXRTdHlsZU9wdGlvbnMuaHRtbA0KPiAN
Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gDQoNClsuLi5dDQoNCj4gDQo+
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IA0KPiBBbGlnbkFmdGVyT3BlbkJy
YWNrZXQ6IEFsaWduDQo+IA0KPiAtLS0NCj4gVGhpcyBvbmUgaXMgdG8gYWxpZ24gZnVuY3Rpb24g
cGFyYW1ldGVycyB0aGF0IG92ZXJmbG93cyB0aGUgbGluZSBsZW5ndGgsIEkgY2hvc2UgdG8gYWxp
Z24gdGhlbQ0KPiB0byB0aGUgb3BlbiBicmFja2V0IHRvIG1hdGNoIHRoZSBjdXJyZW50IGNvZGVi
YXNlIChob3BlZnVsbHkpDQo+IA0KPiBlLmcuOg0KPiBzb21lTG9uZ0Z1bmN0aW9uKGFyZ3VtZW50
MSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudDIpOw0KPiANCj4g
VGhpcyBvbmUgY2FuIGJlIGEgY2FuZGlkYXRlIGZvciBhbiBlbnRyeSBpbiBvdXIgY29kaW5nIHN0
eWxlDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiANCj4gQWxpZ25B
cnJheU9mU3RydWN0dXJlczogTGVmdA0KPiANCj4gLS0tDQo+IOKAnFdoZW4gdXNpbmcgaW5pdGlh
bGl6YXRpb24gZm9yIGFuIGFycmF5IG9mIHN0cnVjdHMgYWxpZ25zIHRoZSBmaWVsZHMgaW50byBj
b2x1bW5zLiINCj4gSXTigJlzIGltcG9ydGFudCB0byBzYXkgdGhhdCBldmVuIGlmIHdlIHNwZWNp
Znkg4oCcTm9uZeKAnSwgaXQgaXMgZ29pbmcgdG8gZm9ybWF0IHRoZSBkYXRhIHN0cnVjdHVyZSBh
bnl3YXksDQo+IEkgY2hvb3NlIGxlZnQsIGJ1dCBjbGVhcmx5IEnigJltIG9wZW4gdG8gc3VnZ2Vz
dGlvbnMuDQo+IA0KPiBJIGRvbuKAmXQga25vdyBob3cgdG8gcGhyYXNlIHRoaXMgb25lIGluIG91
ciBjb2Rpbmcgc3R5bGUNCj4gDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+
IA0KPiBBbGlnbkNvbnNlY3V0aXZlQXNzaWdubWVudHM6IE5vbmUNCj4gDQo+IC0tLQ0KPiBUaGlz
IG9uZSBpcyBkaXNhYmxlZCBiZWNhdXNlIG9mIGZlZWRiYWNrcyBmcm9tIFN0ZWZhbm8gYW5kIEFs
ZWphbmRybyBhYm91dCBzb21lIHdlaXJkIGJlaGF2aW91ciBvbiBvdXINCj4gY29kZWJhc2UuDQo+
IA0KPiBUaGlzIG9uZSBjb3VsZCBiZSBwaGFzZWQgYWxvbmcgdGhpcyBsaW5lOiDigJxDb25zZWN1
dGl2ZSBhc3NpZ25tZW50cyBkb24ndCBuZWVkIHRvIGJlIGFsaWduZWQu4oCdLCB0aGUgaXNzdWUg
aXMNCj4gdGhhdCBpbiB0aGlzIHdheSBpdCBzZWVtcyB0aGF0IGl04oCZcyBvcHRpb25hbCwgYnV0
IGNsYW5nLWZvcm1hdCBpcyBnb2luZyB0byByZW1vdmUgdGhlIGFsaWdubWVudCBhbnl3YXkgZm9y
DQo+IGFzc2lnbm1lbnQgdGhhdCBhcmUgY29uc2VjdXRpdmUgYW5kIGFsaWduZWQuDQo+IA0KPiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiANCj4gQWxpZ25Db25zZWN1dGl2ZUJp
dEZpZWxkczogTm9uZQ0KPiANCj4gLS0tDQo+IFNhbWUgdGhpbmcgYXMgQWxpZ25Db25zZWN1dGl2
ZUFzc2lnbm1lbnRzLCBidXQgZm9yIGJpdGZpZWxkcy4NCj4gDQo+IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQo+IA0KPiBBbGlnbkNvbnNlY3V0aXZlRGVjbGFyYXRpb25zOiBOb25l
DQo+IA0KPiAtLS0NCj4gVGhpcyBhbGlnbnMgZGVjbGFyYXRpb25zIG5hbWVzLCBzYW1lIGNvbnNp
ZGVyYXRpb25zIGFzIEFsaWduQ29uc2VjdXRpdmVBc3NpZ25tZW50cy4NCj4gDQo+IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IA0KPiBPayB0aGlzIGlzIGl0IGZvciBub3csIGxl
dCBtZSBrbm93IHlvdXIgdGhvdWdodHMgYWJvdXQgdGhlbSwgaWRlYWxseSBpZiBJIGRvbuKAmXQg
Z2V0IGFueSByZXBseSBpbiB0d28gd2Vla3MgKDd0aCBvZiBEZWNlbWJlciksDQo+IEkgd2lsbCBj
b25zaWRlciB0aGF0IHdlIGhhdmUgYW4gYWdyZWVtZW50IG9uIHRoZXNlIGNvbmZpZ3VyYXRpb24u
DQoNCkhpIGFsbCwNCg0KSnVzdCBhIHBpbmcgZm9yIHdobyB3YW50cyB0byBzYXkgaGlzIHRob3Vn
aHRzIGFib3V0IHRoaXMsIEphbiBhbHJlYWR5IG1hZGUgY2xlYXIgaGlzIGNvbmNlcm5zIGFib3V0
IHRoZSBsYWNrIG9mIGZsZXhpYmlsaXR5DQpvZiB0aGUgdG9vbCwgd2hpY2ggd291bGQgcHJvdmlk
ZSBhIGRlZmF1bHQgZm9ybWF0dGluZyB3aXRob3V0IGxlYXZpbmcgdGhlIG9wdGlvbiB0byBsZWF2
ZSB0aGUgY29kZSBhcyBpdCBpcywgbWFraW5nIHRoZSB0b29sDQpub3QgZml0IGluIGhpcyBvcGlu
aW9uIHRvIHRoZSB1c2Ugb24gb3VyIGNvZGViYXNlLg0KDQpJbiBteSBvcGluaW9uLCBJIGRvbuKA
mXQga25vdyBvZiBhbnkgdG9vbCB0aGF0IGNhbiBhZGRyZXNzIGFsbCB0aGUgZmxleGliaWxpdHkg
dGhlIFhlbiBjb2Rlc3R5bGUgYWxsb3dzLCB5ZXQgdGhlIHVzZSBvZiBhdXRvbWF0aWMNCmNoZWNr
ZXJzIHdvdWxkIGltcHJvdmUgdGhlIHJldmlldyB0aW1lLCBhbGxvdyBtb3JlIG5ldyBjb250cmli
dXRvcnMgdG8gYXBwcm9hY2ggdGhlIGNvbW11bml0eSB3aXRob3V0IGJlaW5nIHB1dCBkb3duIGJ5
DQp0aGUgYW1vdW50IG9mIGNvZGUtc3R5bGUgY29tbWVudHMsIGNvbnNvbGlkYXRlIHRoZSBzdHls
ZSBhY3Jvc3MgdGhlIGNvZGViYXNlLg0KDQpTbywgcGxlYXNlIG1haW50YWluZXJzLCBsZXQgbWUg
a25vdyB5b3VyIHRob3VnaHRzIG9uIHRoYXQgb3IgcGxlYXNlIHNheSBjbGVhcmx5IHRoYXQgd2Ug
YXJlIG5vdCByZWFkeSB5ZXQgdG8gdXNlIGFuDQpBdXRvbWF0aWMgY29kZSBzdHlsZSBjaGVja2Vy
Lg0KDQpDaGVlcnMsDQpMdWNhDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:48:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:48:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647895.1011610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVmM-0001S1-Jg; Tue, 05 Dec 2023 13:48:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647895.1011610; Tue, 05 Dec 2023 13: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 1rAVmM-0001Ru-Gz; Tue, 05 Dec 2023 13:48:02 +0000
Received: by outflank-mailman (input) for mailman id 647895;
 Tue, 05 Dec 2023 13: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAVmK-0001M0-P5
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:48:00 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e64c247a-9374-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 14:47:58 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40b5155e154so60840955e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 05:47:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 f16-20020a05600c4e9000b0040b4e44cf8dsm18718737wmq.47.2023.12.05.05.47.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 05:47:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e64c247a-9374-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701784078; x=1702388878; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HUuyfBMpPDj7pIB6gxTVnbrQBYgplSGL0ZpfBB/ycxs=;
        b=a90hPG77NpAO2lH3dMp4m1R3vUwfuNhu0Fkbf2TFnju/mG8rjEoFvRrK/na6MCZozC
         w2Tj1APHLZaTKCNQoS0eOP7c/N1K7JHNInsyBNzdBmIc85SK+46mFGoZLohYQtTPlO0m
         K2QyWXrNsEG/pamJixIztBQ1wyeezXqRgh0hXQDSL4cWWOvX9vM6G2J0oUwLEEVOPLZV
         uo89v+PeOgIlDTqyW80GJVmEKcPssLKURV5o0BCkhlQ8mMAdXkG4HilSWO7Jdz6SstgR
         GgUv5OdX8TLDav9TLfu5lEmeYljwfKyJ7bXrPgVA4kUxwNVVkMQ4yeyBvw/AjI8guX04
         e6zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701784078; x=1702388878;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=HUuyfBMpPDj7pIB6gxTVnbrQBYgplSGL0ZpfBB/ycxs=;
        b=EvQj+A/nRul0q99PWMxNi+i15zOSQmadIl3YtrYmWmrPo3YJKKr/DzM4xwm91kc/wC
         9mdbz293aGwfDIxuvzFFrXnSrR8QBfyaOUZVRQgUH/QcPU8WkMc4/5rd0St2IIb1YHdV
         DZGUime0IAdUPfmp4okAitRQPL9wHW+Qe2gGrSEHcrUp8OEmWs4BMFXT0aT27SGoKisv
         Opm3xLAX933nuCJzghdWzzCuoHZlik9GmuN2OWqxjR95sI42ZdxiUbOPk3IR33UD0nEq
         ++He60Cyd3QFSZOXK/UMOUSdTerBq0fc3OwLepvOgZoBYTmR16yq1rRhNaZjJr0aET2g
         7YJQ==
X-Gm-Message-State: AOJu0Yzrm6xWv213yHjH7emoAe0k++0APjlnhA9lfdTw6NCxpVEZRC+F
	Snjl8bWqc8ZAsOce33VormYO
X-Google-Smtp-Source: AGHT+IFe+uSySxjNTBZbNWmMhnAoGMBiD45JfkK+FapGsmWdrvm8EHE4cg3QdxXhqcj+ejm1xFJFcg==
X-Received: by 2002:a05:600c:548a:b0:40c:909:42ab with SMTP id iv10-20020a05600c548a00b0040c090942abmr457848wmb.82.1701784078068;
        Tue, 05 Dec 2023 05:47:58 -0800 (PST)
Message-ID: <4bfb71ef-0443-40dd-a854-349db42a7a30@suse.com>
Date: Tue, 5 Dec 2023 14:47:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] xen/livepatch: register livepatch regions when loaded
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 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>,
 xen-devel@lists.xenproject.org
References: <20231130142944.46322-1-roger.pau@citrix.com>
 <20231130142944.46322-2-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231130142944.46322-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.11.2023 15:29, Roger Pau Monne wrote:
> Currently livepatch regions are registered as virtual regions only after the
> livepatch has been applied.
> 
> This can lead to issues when using the pre-apply or post-revert hooks, as at
> the point the livepatch is not in the virtual regions list.  If a livepatch
> pre-apply hook contains a WARN() it would trigger an hypervisor crash, as the
> code to handle the bug frame won't be able to find the instruction pointer that
> triggered the #UD in any of the registered virtual regions, and hence crash.
> 
> Fix this by adding the livepatch payloads as virtual regions as soon as loaded,
> and only remove them once the payload is unloaded.  This requires some changes
> to the virtual regions code, as the removal of the virtual regions is no longer
> done in stop machine context, and hence an RCU barrier is added in order to
> make sure there are no users of the virtual region after it's been removed from
> the list.
> 
> Fixes: 8313c864fa95 ('livepatch: Implement pre-|post- apply|revert hooks')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  xen/common/livepatch.c      |  5 +++--
>  xen/common/virtual_region.c | 40 +++++++++++--------------------------
>  2 files changed, 15 insertions(+), 30 deletions(-)
> 
> diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
> index 1209fea2566c..3199432f11f5 100644
> --- a/xen/common/livepatch.c
> +++ b/xen/common/livepatch.c
> @@ -942,6 +942,8 @@ static int prepare_payload(struct payload *payload,
>          }
>      }
>  
> +    register_virtual_region(region);
> +
>      return 0;
>  }
>  
> @@ -1071,6 +1073,7 @@ static int build_symbol_table(struct payload *payload,
>  static void free_payload(struct payload *data)
>  {
>      ASSERT(spin_is_locked(&payload_lock));
> +    unregister_virtual_region(&data->region);
>      list_del(&data->list);
>      payload_cnt--;
>      payload_version++;
> @@ -1386,7 +1389,6 @@ static inline void apply_payload_tail(struct payload *data)
>       * The applied_list is iterated by the trap code.
>       */
>      list_add_tail_rcu(&data->applied_list, &applied_list);
> -    register_virtual_region(&data->region);
>  
>      data->state = LIVEPATCH_STATE_APPLIED;
>  }
> @@ -1432,7 +1434,6 @@ static inline void revert_payload_tail(struct payload *data)
>       * The applied_list is iterated by the trap code.
>       */
>      list_del_rcu(&data->applied_list);
> -    unregister_virtual_region(&data->region);
>  
>      data->reverted = true;
>      data->state = LIVEPATCH_STATE_CHECKED;
> diff --git a/xen/common/virtual_region.c b/xen/common/virtual_region.c
> index 5f89703f513b..b444253848cf 100644
> --- a/xen/common/virtual_region.c
> +++ b/xen/common/virtual_region.c
> @@ -23,14 +23,8 @@ static struct virtual_region core_init __initdata = {
>  };
>  
>  /*
> - * RCU locking. Additions are done either at startup (when there is only
> - * one CPU) or when all CPUs are running without IRQs.
> - *
> - * Deletions are bit tricky. We do it when Live Patch (all CPUs running
> - * without IRQs) or during bootup (when clearing the init).
> - *
> - * Hence we use list_del_rcu (which sports an memory fence) and a spinlock
> - * on deletion.
> + * RCU locking. Modifications to the list must be done in exclusive mode, and
> + * hence need to hold the spinlock.
>   *
>   * All readers of virtual_region_list MUST use list_for_each_entry_rcu.
>   */
> @@ -58,38 +52,28 @@ const struct virtual_region *find_text_region(unsigned long addr)
>  
>  void register_virtual_region(struct virtual_region *r)
>  {
> -    ASSERT(!local_irq_is_enabled());
> +    unsigned long flags;
>  
> +    spin_lock_irqsave(&virtual_region_lock, flags);
>      list_add_tail_rcu(&r->list, &virtual_region_list);
> +    spin_unlock_irqrestore(&virtual_region_lock, flags);
>  }
>  
>  static void remove_virtual_region(struct virtual_region *r)
>  {
> -    unsigned long flags;
> +     unsigned long flags;

Nit: Stray blank added?

> -    spin_lock_irqsave(&virtual_region_lock, flags);
> -    list_del_rcu(&r->list);
> -    spin_unlock_irqrestore(&virtual_region_lock, flags);
> -    /*
> -     * We do not need to invoke call_rcu.
> -     *
> -     * This is due to the fact that on the deletion we have made sure
> -     * to use spinlocks (to guard against somebody else calling
> -     * unregister_virtual_region) and list_deletion spiced with
> -     * memory barrier.
> -     *
> -     * That protects us from corrupting the list as the readers all
> -     * use list_for_each_entry_rcu which is safe against concurrent
> -     * deletions.
> -     */
> +     spin_lock_irqsave(&virtual_region_lock, flags);
> +     list_del_rcu(&r->list);
> +     spin_unlock_irqrestore(&virtual_region_lock, flags);
>  }
>  
>  void unregister_virtual_region(struct virtual_region *r)
>  {
> -    /* Expected to be called from Live Patch - which has IRQs disabled. */
> -    ASSERT(!local_irq_is_enabled());
> -
>      remove_virtual_region(r);
> +
> +    /* Assert that no CPU might be using the removed region. */
> +    rcu_barrier();
>  }

rcu_barrier() is a relatively heavy operation aiui. Seeing ...

>  #if defined(CONFIG_LIVEPATCH) && defined(CONFIG_X86)

... this I'd like to ask to consider hiding {,un}register_virtual_region()
in "#ifdef CONFIG_LIVEPATCH" as well, to make clear these aren't supposed
to be used for other purpose. Would at the same time address two Misra
violations, I think (both functions having no callers when !LIVEPATCH).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:52:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:52:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647903.1011620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVqR-0006AM-8h; Tue, 05 Dec 2023 13:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647903.1011620; Tue, 05 Dec 2023 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 1rAVqR-0006AF-5y; Tue, 05 Dec 2023 13:52:15 +0000
Received: by outflank-mailman (input) for mailman id 647903;
 Tue, 05 Dec 2023 13:52:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sj5z=HQ=g.ecc.u-tokyo.ac.jp=ishiir@srs-se1.protection.inumbo.net>)
 id 1rAVqP-000690-L4
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:52:14 +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 7b9e07f0-9375-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 14:52:09 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a1cee2c1620so37824166b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 05:52:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b9e07f0-9375-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=g.ecc.u-tokyo.ac.jp; s=google; t=1701784328; x=1702389128; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=9BfGcZinPd4wP7BbUerFSAXuXjqp24nzPF9aWovC7ks=;
        b=McccP7xnroXTHrXbHugu7UxBQ+BZORhIXCm/JMnzmcznRecIcvLVOehTqpVjD2E0RV
         Wryk6bk00wxugg3luzzaulHtKy+zLg1kNSV3pWMekASeKUuLMAU6V4YQANKHsQimZUoW
         lnQ3V5oisDaZH6MgImALkTzgdphwjuvwZ3slaSyo1d7LDkkwAwN5b+y0CUeaexBsS+KJ
         hV2X2bWTkBXKRNgyij2l1VYrBcAvTBqM9ZsCjIlYbyfYvVrY0aHbfVRS1+BOMSryazZl
         T/ZpkJryK3d/qzWiEQa5Cdcunn484LtJLCaA9MDsS9ohXrU5pkNlbz/pS+gw0dWbn0sV
         KIwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701784328; x=1702389128;
        h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=9BfGcZinPd4wP7BbUerFSAXuXjqp24nzPF9aWovC7ks=;
        b=tge1h8qKRUh+oodvSIosEDeglLtSsODSLEqjWRK5zSlZ4HeF2PyCtDj4z7yDj6c6JL
         rvkIIJtkztPjWRxD0mh4caR5DfNfOlbgDrwmKD8aZC1nLK/CZLsbf3I4sXQBJUiRoZof
         84ga+bquL8IgYIA9UaDqL6rVMEVh8sUkQXyy3zM32OFfSqUFoePHMBaDgoNOBylDOVZL
         aTa9g/HIZcLcP6A45NwIAoBl7YQc8Ygs3LHL3YhZynbpME2rV6bX0pa03kcP3NamQ0T7
         ncNxZ6hAdOsYvThy1STlz1YaD9FDsPaoPujVKwuu5Kb2WUGU8VHTJ2JLAFnZTNot4HeD
         HlFQ==
X-Gm-Message-State: AOJu0YxqEq76Y70cIoi4z2zk7yAWFr8POkSX2QmYd/y76JkiX5dtwHko
	q19OslC09AA2TbtbA7HUrhsVb003RpF7y8oepFGNNNDwkqVemqsD4oB0GQ==
X-Google-Smtp-Source: AGHT+IFcJQqkdHteiLnbJEcH2VFM/jqJ/PhF0efb3QVwYBRNQAc4ECA7jueAmC7NPX0vjxfPD72wXIz9S0FDxHPMI+U=
X-Received: by 2002:a17:906:338b:b0:a19:a1ba:baab with SMTP id
 v11-20020a170906338b00b00a19a1babaabmr1725406eja.81.1701784328126; Tue, 05
 Dec 2023 05:52:08 -0800 (PST)
MIME-Version: 1.0
From: Reima ISHII <ishiir@g.ecc.u-tokyo.ac.jp>
Date: Tue, 5 Dec 2023 22:51:56 +0900
Message-ID: <CA+aCS-Ha4jSYFfxhOwMGiGJPdCOtgBJLt=3Q=v9dfp6SQJys4w@mail.gmail.com>
Subject: [BUG] Nested Virtualization Bug on x86-64 AMD CPU
To: xen-devel@lists.xenproject.org
Cc: Takahiro Shinagawa <shina@ecc.u-tokyo.ac.jp>
Content-Type: text/plain; charset="UTF-8"

Dear Xen Development Team,

I am writing to report a bug that I have encountered in a Xen HVM
guest with nested virtualization.
Below is a detailed description of the bug, its potential impact, and
the environment in which it was observed.

[Bug Description]
The issue emerges when operating an HVM guest with nested
virtualization on an x86-64 AMD CPU, specifically in 64-bit mode (Long
Mode). The sequence to reproduce the bug is as follows:

1. Enable nestedhvm on an HVM guest.
2. In the L1 guest hypervisor, set CR0.PE, PG to 1 in VMCB12 and
execute  VMRUN, correctly resulting in a VM entry into the L2 guest.
3. In the L2 guest, perform a vmcall, which returns control back to
the L1 hypervisor.
4. Subsequently, while still in 64-bit mode, the L1 hypervisor just
changes the CR0.PG to 0 in VMCB12 and then executes VMRUN.

It is this specific action - executing VMRUN with CR0.PG set to 0 in
Long Mode - that triggers the BUG() within the
nsvm_vmcb_guest_intercepts_exitcode function in
arch/x86/hvm/svm/nestedsvm.c.
For an unknown reason, a vmexit occurs with the code 0x402, which is
flagged as an illegal exitcode, thus triggering the BUG().

[Potential Impact]
This bug presents a vulnerability that could allow a DoS attack from
the guest VM to the host hypervisor.

[Environment Details]
Here are the specs of the environment where the bug occurred:
- Xen Version: Xen-4.18-unstable (commit
290f82375d828ef93f831a5ef028f1283aa1ea47)
- Architecture: x86_64 (intel)

[Error Log]
(XEN) d1v0 Unexpected nested vmexit: reason 0x66
(XEN) d1v0 Unexpected nested vmexit: reason 0x7b
(XEN) d1v0 Unexpected nested vmexit: reason 0x7b
(XEN) d1v0 Unexpected nested vmexit: reason 0x7b
(XEN) d1v0 Unexpected nested vmexit: reason 0x7b
(XEN) arch/x86/hvm/svm/nestedsvm.c:982:d1v0 Illegal exitcode 0x402
(XEN) Xen BUG at arch/x86/hvm/svm/nestedsvm.c:983
(XEN) Debugging connection not set up.
(XEN) ----[ Xen-4.18-unstable  x86_64  debug=y gcov=y  Tainted:   C    ]----
(XEN) CPU:    10
(XEN) RIP:    e008:[<ffff82d0402997b8>]
arch/x86/hvm/svm/nestedsvm.c#nsvm_vmcb_guest_intercepts_exitcode+0x29e/0x4c1
(XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor (d1v0)
(XEN) rax: ffff830839bdd040   rbx: ffff83084f593000   rcx: 0000000000000008
(XEN) rdx: ffff830839bd7fff   rsi: ffff830839be5da8   rdi: ffff830839be5da0
(XEN) rbp: ffff830839bd7e48   rsp: ffff830839bd7e30   r8:  0000000000000001
(XEN) r9:  ffff830839be5da0   r10: 0000000000000001   r11: 0000000000000010
(XEN) r12: ffff83084f593000   r13: ffff83084f583000   r14: ffff83084f593000
(XEN) r15: 0000000000000001   cr0: 000000008005003b   cr4: 0000000000f506e0
(XEN) cr3: 000000084f6d4000   cr2: 0000000000000000
(XEN) fsb: 0000000000000000   gsb: ffff888490140000   gss: 0000000000000000
(XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
(XEN) Xen code around <ffff82d0402997b8>
(arch/x86/hvm/svm/nestedsvm.c#nsvm_vmcb_guest_intercepts_exitcode+0x29e/0x4c1):
(XEN)  48 83 05 e0 ee 3b 00 01 <0f> 0b 48 83 05 de ee 3b 00 01 48 83 05 96 ee 3b
(XEN) Xen stack trace from rsp=ffff830839bd7e30:
(XEN)    0000000000000402 ffff83084f593000 ffff83084f583000 ffff830839bd7e70
(XEN)    ffff82d04029b052 0000000000000402 ffff830839bd7ef8 ffff83084f583000
(XEN)    ffff830839bd7ee8 ffff82d0402a1121 ffff82d0402a4afa ffff82d0402a4b00
(XEN)    ffff82d0402a4afa ffff82c0002d8000 ffff82d0402a4afa ffff82d0402a4b00
(XEN)    ffff82d0402a4afa ffff82d0402a4b00 ffff83084f593000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 00007cf7c64280e7
(XEN)    ffff82d0402a4b4c 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 000000001f4604f7 0000000000000006 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000002040
(XEN)    00000000000004f7 0000000000000000 0000000000000000 000000001f467473
(XEN)    0000beef0000beef 000000000000ffff 000000bf0000beef 0000000000000082
(XEN)    0000000000000c62 000000000000beef 000000000000beef 000000000000beef
(XEN)    00000000ffffbeef 000000000000beef 0000e0100000000a ffff83084f593000
(XEN)    00000037f95a2000 0000000000f506e0 0000000000000000 0000000000000000
(XEN)    0000030300000000 0000000000000000
(XEN) Xen call trace:
(XEN)    [<ffff82d0402997b8>] R
arch/x86/hvm/svm/nestedsvm.c#nsvm_vmcb_guest_intercepts_exitcode+0x29e/0x4c1
(XEN)    [<ffff82d04029b052>] F nestedsvm_check_intercepts+0x29/0x214
(XEN)    [<ffff82d0402a1121>] F svm_vmexit_handler+0x351/0x2502
(XEN)    [<ffff82d0402a4b4c>] F svm_stgi_label+0x5/0x15
(XEN)
(XEN) debugtrace_dump() global buffer starting
1 cpupool_create(pool=0,sched=6)
2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
3 cpupool_add_domain(dom=0,pool=0) n_dom 1 rc 0
4-14 p2m: p2m_alloc_table(): allocating p2m table
15 cpupool_add_domain(dom=1,pool=0) n_dom 2 rc 0
(XEN) wrap: 0
(XEN) debugtrace_dump() global buffer finished
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 10:
(XEN) Xen BUG at arch/x86/hvm/svm/nestedsvm.c:983
(XEN) ****************************************
(XEN)

-- 
Graduate School of Information Science and Technology, The University of Tokyo
Reima Ishii
ishiir@g.ecc.u-tokyo.ac.jp


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:55:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:55:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647905.1011630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVt9-0007XV-Me; Tue, 05 Dec 2023 13:55:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647905.1011630; Tue, 05 Dec 2023 13:55:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVt9-0007XO-J6; Tue, 05 Dec 2023 13:55:03 +0000
Received: by outflank-mailman (input) for mailman id 647905;
 Tue, 05 Dec 2023 13:55: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAVt8-0007XG-Um
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:55:02 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e27f9118-9375-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 14:55:01 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c09d62b70so28551275e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 05:55:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 f17-20020a05600c155100b004083729fc14sm22479702wmg.20.2023.12.05.05.55.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 05:55:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e27f9118-9375-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701784501; x=1702389301; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gUkHute28QJ0yx9fsSEsxddF0ft/WA9qp8dCCGt8ke8=;
        b=MqNJOe/mqIMOg+fiDs4+IbZgmIf2LnyV5Dk9RTDTsWOkHwNw+u4p9bd2IvLdQtfc1/
         vNSSgo1Sdt7Dx5wjpfgHwe8DLxH2hc+OyJwHgSz8Zq9oIiPpF08THpnxjYfgbspvkCLG
         Uf9PvwKI3zKBEokMM2s1olN9Dt6XaagO01J8wSTcIUbWisESILNAJO4S8elUm530O+Kf
         sa0GXBc/XrGeHU5r04Uof5lu0qrh/gxbzf2atAizWzoRFJEcmbGmWO7tOX1F5rsOdcje
         8nxDm/6Uyd/c9OaPboZz+Eorsd2aDQmeFEHMz4aTXwfc8IxAQLy9HhcptkzoEwfqNfGH
         FY8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701784501; x=1702389301;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=gUkHute28QJ0yx9fsSEsxddF0ft/WA9qp8dCCGt8ke8=;
        b=QBZuGGgSJH4XvwBLrmigRMHsf8UDdYKSHW7xkLdBd/BO5QbmEcrKPBntp4dTJT0UCF
         fWJPkrKTsf+wxeO4/WE1jO/M2jbnDhQ2iKdxMSG1VqX4/x6u/vgPhVZep8oXFDY10c5B
         YB9kPv66MQv9xelNkmFKG/lzdp3/LLk+9zCbvqzF9IHlkje1T6ToO9WAkwSbEgScvXpU
         P/wx6eGIeQzdsRG5H89RIGq9z+/ztmWi9mlbUTFP5gz3i/FK6mDiKdA5/uoIcOuOrQSo
         RHBtCBcU01tnuNBMK+Am6eOvJ1kDhd81CI/1pDYrh4BhMzACKiPFzsCf6+zMzvr91HO7
         afSg==
X-Gm-Message-State: AOJu0Ywt2FuPXZbOv8fhmjscM5APYnw4hphXiYE48dU6K+paQitONgEi
	K8wCVGrCTIYQS23V8mw078Pl
X-Google-Smtp-Source: AGHT+IGsYm97j5so8SuU4BQV9k19EbY/+ovfpnGH6474N6Jtk3zn80qeErCDnBEcGY0B4bl4PxqafQ==
X-Received: by 2002:a05:600c:4d1e:b0:40c:c1a:cfac with SMTP id u30-20020a05600c4d1e00b0040c0c1acfacmr290011wmp.158.1701784501131;
        Tue, 05 Dec 2023 05:55:01 -0800 (PST)
Message-ID: <8aa1ae99-5bc3-4165-90eb-e522769d4de3@suse.com>
Date: Tue, 5 Dec 2023 14:55:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: 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>,
 Arnd Bergmann <arnd@arndb.de>, xen-devel@lists.xenproject.org
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.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: <20231205100756.18920-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2023 11:07, Juergen Gross wrote:
> @@ -15,67 +7,126 @@
>  #include <asm/byteorder.h>
>  #endif
>  
> -#define get_unaligned(p) (*(p))
> -#define put_unaligned(val, p) (*(p) = (val))
> +/*
> + * This is the most generic implementation of unaligned accesses
> + * and should work almost anywhere.
> + */
> +
> +#define __get_unaligned_t(type, ptr) ({						\
> +	const struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr);	\
> +	__pptr->x;								\
> +})
> +
> +#define __put_unaligned_t(type, val, ptr) do {					\
> +	struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr);		\
> +	__pptr->x = (val);							\
> +} while (0)

Please can we avoid gaining new (even double) leading underscore symbols,
especially when they're in helper (i.e. not intended to be used directly)
constructs? No reason to introduce further issues wrt Misra adoption.

> +#define get_unaligned(ptr)	__get_unaligned_t(typeof(*(ptr)), (ptr))
> +#define put_unaligned(val, ptr) __put_unaligned_t(typeof(*(ptr)), (val), (ptr))

May I ask to omit excess parentheses where possible?

> +static inline u16 get_unaligned_le16(const void *p)
> +{
> +	return le16_to_cpu(__get_unaligned_t(__le16, p));
> +}
> +
> +static inline u32 get_unaligned_le32(const void *p)
> +{
> +	return le32_to_cpu(__get_unaligned_t(__le32, p));
> +}
> +
> +static inline u64 get_unaligned_le64(const void *p)
> +{
> +	return le64_to_cpu(__get_unaligned_t(__le64, p));
> +}
> +
> +static inline void put_unaligned_le16(u16 val, void *p)
> +{
> +	__put_unaligned_t(__le16, cpu_to_le16(val), p);
> +}
> +
> +static inline void put_unaligned_le32(u32 val, void *p)
> +{
> +	__put_unaligned_t(__le32, cpu_to_le32(val), p);
> +}
> +
> +static inline void put_unaligned_le64(u64 val, void *p)
> +{
> +	__put_unaligned_t(__le64, cpu_to_le64(val), p);
> +}
> +
> +static inline u16 get_unaligned_be16(const void *p)
> +{
> +	return be16_to_cpu(__get_unaligned_t(__be16, p));
> +}
> +
> +static inline u32 get_unaligned_be32(const void *p)
> +{
> +	return be32_to_cpu(__get_unaligned_t(__be32, p));
> +}
>  
> -static inline uint16_t get_unaligned_be16(const void *p)
> +static inline u64 get_unaligned_be64(const void *p)
>  {
> -	return be16_to_cpup(p);
> +	return be64_to_cpu(__get_unaligned_t(__be64, p));
>  }
>  
> -static inline void put_unaligned_be16(uint16_t val, void *p)
> +static inline void put_unaligned_be16(u16 val, void *p)
>  {
> -	*(__force __be16*)p = cpu_to_be16(val);
> +	__put_unaligned_t(__be16, cpu_to_be16(val), p);
>  }
>  
> -static inline uint32_t get_unaligned_be32(const void *p)
> +static inline void put_unaligned_be32(u32 val, void *p)
>  {
> -	return be32_to_cpup(p);
> +	__put_unaligned_t(__be32, cpu_to_be32(val), p);
>  }
>  
> -static inline void put_unaligned_be32(uint32_t val, void *p)
> +static inline void put_unaligned_be64(u64 val, void *p)
>  {
> -	*(__force __be32*)p = cpu_to_be32(val);
> +	__put_unaligned_t(__be64, cpu_to_be64(val), p);
>  }
>  
> -static inline uint64_t get_unaligned_be64(const void *p)
> +static inline u32 __get_unaligned_be24(const u8 *p)

Here and below - do you foresee use of these 24-bit helpers? They weren't
there before, and the description also doesn't justify their introduction.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 13:57:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 13:57:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647908.1011640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVve-0000V3-2n; Tue, 05 Dec 2023 13:57:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647908.1011640; Tue, 05 Dec 2023 13:57: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 1rAVvd-0000Uw-VK; Tue, 05 Dec 2023 13:57:37 +0000
Received: by outflank-mailman (input) for mailman id 647908;
 Tue, 05 Dec 2023 13:57: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAVvd-0000Ta-0a
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 13:57:37 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3dc403be-9376-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 14:57:34 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40bd5eaa66cso45540675e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 05:57:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j35-20020a05600c1c2300b004076f522058sm22660085wms.0.2023.12.05.05.57.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 05:57:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3dc403be-9376-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701784654; x=1702389454; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=qsWZxyy0NLSl6egU5ts9/0A9uLo96gMVmdJfhPHnNIU=;
        b=QaH/mwToej/CNp9rlMHRkRZ0/5xaZQ+w4BXXbFeJDokK1zyaW29SrIRoGoY0T9b2ET
         bDENNJS3PAUrmxkFm6M6aRGSyXLbq3YgLUzNxRh3pcQoCLiOIJdmKundxWZcn3EdPBEM
         kqLckAF40FtbfUpfK9mJ8CmLi4XxikJ+hkfSPYO3vQ3dzBRfqy6aL956nNxFD4/1cWFG
         5lBbpaDF3n+cMate+Fx6gnwOfAOoIow8oKptf5Oa4YLtV157FPRr5xoE7w+eXeBlGwjD
         THDmK+ozPQrWx5El0sjUOX7vUjx3hTUSgs81PTlDANOefJ0uAzXBzyOasTSuDEds3CBk
         jhzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701784654; x=1702389454;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=qsWZxyy0NLSl6egU5ts9/0A9uLo96gMVmdJfhPHnNIU=;
        b=cBkMLbwZTFEs/padnKjfQb26gOFCmADyzBXv+1i91KfAG4MJ8rtChOKHa3R5HEWmSD
         Lij25WIBcZl6adyZVYG5IGod9rdgl3R5zPviUEf26B7WHxEJ1yWz5AXfnLHTy6gsIAld
         ou85iCr1DpRoUTjeJUT02rGjnSVTKeDFJ2mP0LNClUa3tGLB3JUyJujP75Z9m8wq0k6E
         g2xfJ1yjieu537ewQpLDoTlugNhD3zShGYPUqWCVghD6ysMZ1eaugqxmxqDCErwafoEl
         Spl/LKvi/Nrmj7E+ureCSpdrvdLHgI2YC3ViEzIGC+Tb65rD7s5wIE/5GIZJ2mknOHQt
         iBpw==
X-Gm-Message-State: AOJu0YxNqkl7u11LOHOhnqa2N+CmSjYLSiKR+quHxK+PAsK0bRsOwxnP
	Z2lqnCZim7Gc4F0Kc249JxfO
X-Google-Smtp-Source: AGHT+IHVcIB8g8fFwMUgMJAdQiXthk5jc17fujtV57Pag9NFAIwv0HkB2TUffnlIrASvwIlqUVZisg==
X-Received: by 2002:a05:600c:46d5:b0:40b:5e21:dd20 with SMTP id q21-20020a05600c46d500b0040b5e21dd20mr541396wmo.78.1701784654326;
        Tue, 05 Dec 2023 05:57:34 -0800 (PST)
Message-ID: <dd3a316e-1eb8-45f7-a27e-1467e8295a16@suse.com>
Date: Tue, 5 Dec 2023 14:57:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen: remove asm/unaligned.h
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-3-jgross@suse.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: <20231205100756.18920-3-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2023 11:07, Juergen Gross wrote:
> With include/xen/unaligned.h now dealing properly with unaligned
> accesses for all architectures, asm/unaligned.h can be removed and
> users can be switched to include xen/unaligned.h instead.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:00:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:00:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647911.1011650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVxy-0002KD-Fy; Tue, 05 Dec 2023 14:00:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647911.1011650; Tue, 05 Dec 2023 14:00: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 1rAVxy-0002Jg-C7; Tue, 05 Dec 2023 14:00:02 +0000
Received: by outflank-mailman (input) for mailman id 647911;
 Tue, 05 Dec 2023 14:00:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAVxw-0001wF-Ir
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:00: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 934ee92e-9376-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 14:59:58 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40bd5eaa66eso38944425e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 05:59:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fk14-20020a05600c0cce00b0040b2a52ecaasm22784362wmb.2.2023.12.05.05.59.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 05:59:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 934ee92e-9376-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701784798; x=1702389598; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=yshCHNldBlAnFm1ij+X3Ur7gze1BanWPgtNuhU6jShE=;
        b=dAMSxuU4Js04S1lo4l+4xsxx6MZiyB2XB1BwQxi9Xbp60AqWMGMxPGpQr8CBwyP+dV
         0Qdqzr1p3sETV0+VzD/9L/OXJgaKlDp8owsEbCT/8CAeLGSQ2cRnL9jpKn08N1nwVV58
         B/eTeEHR4/qC0ZB3IZtzN3Gg15rRY3tSJwsXpKRFiRhVVMQ+NvduUghAj6g5kWeieKvb
         BmTqQyXOQ31Hmz5K4FXXmTnprMoWu/RZM4Rk4KV1YIxi6/l+Hsz0bSuwyNUIID69quud
         MenvVpdKhqr5GVyS4n7dT3bik2aHom13XSisG2B6UUrw2Z++K2W6N9qyQbXFw/Xetq2D
         HQ1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701784798; x=1702389598;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=yshCHNldBlAnFm1ij+X3Ur7gze1BanWPgtNuhU6jShE=;
        b=NGLmx4AlZQufSvyrjfETcRky5IUzPA9jmAhzFdR88/tcWDKR3vZ3depO23MVoH9GsH
         g6cGVnko19gq5iuNHBudLSA8+gzmwjiGHt7nZalBGhfHQvfnXlz1SfRk0Bh/ZN4mTueR
         h2HvABwS3nhenIB0uijhhf6kDuwvFjSIex6Y+S/NFIF48czHBv555e8/OgjYzeIEyaiS
         yiJqaXftu9cceMnzt1CP9r/aajh9woeoSQB6Zmnv5Xztt98/p/SNSlIYuyuFPsf9O3N7
         qJMxZp86OhPQtMOrdZPaTkCaVRWFSKssVZrW4Eqcvg6mLRGaJ/f9tloS5HUB4jiE2+OU
         T95g==
X-Gm-Message-State: AOJu0YxPu9lK/ugeoa0vbgcVxYdNVcVtmusQP7vnRYaZNQjqjsRu/8Ip
	luVjUKSTUFheVREFdZVSxuQS2mYTN/+qT5+BQnJi
X-Google-Smtp-Source: AGHT+IED4j8777n1Anxf6EgyulW8VJlL9uT2hNdonM67Q3ZwxMTMTfQwDBYt0ReJcMTnoxPnvgIEOA==
X-Received: by 2002:a05:600c:4f8f:b0:40b:5e21:ec34 with SMTP id n15-20020a05600c4f8f00b0040b5e21ec34mr517528wmq.102.1701784797857;
        Tue, 05 Dec 2023 05:59:57 -0800 (PST)
Message-ID: <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
Date: Tue, 5 Dec 2023 14:59:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>, Juergen Gross <jgross@suse.com>,
 xen-devel@lists.xenproject.org
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2023 14:46, Julien Grall wrote:
> On 05/12/2023 13:41, Juergen Gross wrote:
>> On 05.12.23 14:31, Julien Grall wrote:
>>> Anyway, given you don't seem to have a use-case yet, I would simply to 
>>> consider to surround the declaration with an a config which can be 
>>> selected if unaligned access is supported.
>>
>> Like in xen/common/lzo.c et al?
> 
> Just to clarify, I am suggesting to add in unaligned.h:
> 
> #ifdef CONFIG_HAS_UNALIGNED_ACCESS
> 
> your definitions
> 
> #endif

But that would be wrong: HAS_UNALIGNED_ACCESS would be there to indicate
one does _not_ need any special accessors.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:02:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:02:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647915.1011660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAVzs-0003iu-Va; Tue, 05 Dec 2023 14:02:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647915.1011660; Tue, 05 Dec 2023 14: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 1rAVzs-0003in-Qx; Tue, 05 Dec 2023 14:02:00 +0000
Received: by outflank-mailman (input) for mailman id 647915;
 Tue, 05 Dec 2023 14:01: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 1rAVzr-0003ih-R1
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:01: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 1rAVzn-0006xJ-CM; Tue, 05 Dec 2023 14:01:55 +0000
Received: from 54-240-197-228.amazon.com ([54.240.197.228]
 helo=[10.95.100.251]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAVzn-0006Ky-6F; Tue, 05 Dec 2023 14: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>
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=BaPBm1tL6VgpQRXw2pAF9+h1siOyAS9WR0c9DGF4R3Q=; b=Rca2mqvEVQbDfp6AG2Ml8c/iZP
	d2Olazouthghu90nECgIirTWRX/Oflt4F6ZG4ZTzXL5XnhuxfRwPGqrCgct/vMvNXjec4aY1E00m5
	0T05OC0O9TaQBK0L1zzVTDN0kmlHtAKdbHR1S8fgJ+HqTeFjzEFvUDWx/QyEqK9L2sDQ=;
Message-ID: <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
Date: Tue, 5 Dec 2023 14:01:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>, Juergen Gross <jgross@suse.com>,
 xen-devel@lists.xenproject.org
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
 <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 05/12/2023 13:59, Jan Beulich wrote:
> On 05.12.2023 14:46, Julien Grall wrote:
>> On 05/12/2023 13:41, Juergen Gross wrote:
>>> On 05.12.23 14:31, Julien Grall wrote:
>>>> Anyway, given you don't seem to have a use-case yet, I would simply to
>>>> consider to surround the declaration with an a config which can be
>>>> selected if unaligned access is supported.
>>>
>>> Like in xen/common/lzo.c et al?
>>
>> Just to clarify, I am suggesting to add in unaligned.h:
>>
>> #ifdef CONFIG_HAS_UNALIGNED_ACCESS
>>
>> your definitions
>>
>> #endif
> 
> But that would be wrong: HAS_UNALIGNED_ACCESS would be there to indicate
> one does _not_ need any special accessors.

I am guessing you are disagreeing on the name rather than the concept? 
If so, what about CONFIG_UNALIGNED_ACCESS_ALLOWED?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:07:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:07:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647919.1011669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAW5L-0004Ze-HC; Tue, 05 Dec 2023 14:07:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647919.1011669; Tue, 05 Dec 2023 14: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 1rAW5L-0004ZX-ES; Tue, 05 Dec 2023 14:07:39 +0000
Received: by outflank-mailman (input) for mailman id 647919;
 Tue, 05 Dec 2023 14:07: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAW5K-0004ZR-50
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:07:38 +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 a4bd64c5-9377-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 15:07:37 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40bd5ea84d6so19487625e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:07:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e5-20020a5d4e85000000b0033333bee379sm11152615wru.107.2023.12.05.06.07.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 06:07:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4bd64c5-9377-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701785256; x=1702390056; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=EusjO1/skqkVA1DYhsgZo/RGjdoUKYpfCbONqIYTX3E=;
        b=HDrU/buroeuIrE0bBXeRH6Lv9cYmtKv2ONhZwbRPQal3M+znTBhSA8nByJ4iGQCJvy
         M2msJjbdS3MrNeQUFE3L37UOfmTdnzVUXhRKM9J5evuSbvHC3ccP/3nJck312ZGh8t1U
         kite7dcLTj8MXrd8nGBqIrGj+1A9LvW2SfJn6Ex1ge6eeWlTBJk7BaoB3b+wuhJP4fFb
         QH6yANjX4bihx8LjokNvvp7qV72cJ0gJXE+SxT4Tcg+uvpBE+zkLV7pRiBkiLGFbJsD1
         O30M6gZUk8cpY0ACtej24Agbw6B5j0QnEWkeBWDYrn9SejuZVvvtGBqJQxTG/sxziLBD
         aADA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701785256; x=1702390056;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=EusjO1/skqkVA1DYhsgZo/RGjdoUKYpfCbONqIYTX3E=;
        b=Ns7BJMsPPu/wGMUumUwPdIyuR5c5dbA9A5KCn9+HTRjMUhNAB2bbHeedlVe4QLpaYm
         aFkR9dQ4JunOg/agdeqmZlfeZVSiEp1Uskpeazhdc9L77lzkq9yA7As4im80jrnv9gRh
         yCavmjKNCR0gR/DPpyGfDCR2VqyJApoBUq250tmTiDKIAEI+tlKH4a7WbGMtBHE0s2gA
         D7PD08vdpQVJ4/gK8W1J06Q9x0/HB74KEexvue+pZJwIEEgfz63OrzUKJVnH7Pyaxbj2
         J0HykrDotLYvENl0vX08Th//T/SdqNwRBkZ9MDZzKlUdeISbfLnS+6wnAWPkdf03vnl/
         YlrA==
X-Gm-Message-State: AOJu0Yz03rVsvfaKD5Vw/QovgsYItdc+4+hZNR7p4ziJ9MW2ffTC44Xq
	GyeJc7TbW47ovbyrTjPWXmZw
X-Google-Smtp-Source: AGHT+IE75w9PCBkiNGidPmirrIk2RL0JlO5SKPV4pPAgabLNiDM3YXVX+02Oi/8Ggc+dvRdfhJe+Pg==
X-Received: by 2002:a05:600c:b47:b0:40b:5e4a:2353 with SMTP id k7-20020a05600c0b4700b0040b5e4a2353mr614692wmr.85.1701785256597;
        Tue, 05 Dec 2023 06:07:36 -0800 (PST)
Message-ID: <827e24a2-0ecd-48c4-becb-12129c4208dc@suse.com>
Date: Tue, 5 Dec 2023 15:07:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Clang-format configuration discussion - pt 2
Content-Language: en-US
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <Michal.Orzel@amd.com>, George Dunlap
 <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1B83FF45-E93B-47D7-AD21-615CFCFD0816@arm.com>
 <2E778E49-C2F5-421F-9598-CED15E7D4284@arm.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: <2E778E49-C2F5-421F-9598-CED15E7D4284@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 14:46, Luca Fancellu wrote:
> In my opinion, I donâ€™t know of any tool that can address all the flexibility the Xen codestyle allows, yet the use of automatic
> checkers would improve the review time, allow more new contributors to approach the community without being put down by
> the amount of code-style comments,

Since this argument is being repeated: I find it odd. No-one needs to even
fear any amount of style comments if they simply follow the written down
policy plus a tiny bit of common sense. According to my observation, (some)
newcomers don't even care to look at what is being said about our style.
It's not like you and I haven't been through this. When I started working
with GNU toolchain, I had to adopt to their style. When I later started to
work with Linux, I had to also adopt there. And then for Xen. And all of
that already past closed source projects I had been working on before.

Jan

> consolidate the style across the codebase.



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:11:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:11:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647922.1011679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAW8l-0006N0-V8; Tue, 05 Dec 2023 14:11:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647922.1011679; Tue, 05 Dec 2023 14: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 1rAW8l-0006Mt-Sc; Tue, 05 Dec 2023 14:11:11 +0000
Received: by outflank-mailman (input) for mailman id 647922;
 Tue, 05 Dec 2023 14: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=UsGn=HQ=arndb.de=arnd@srs-se1.protection.inumbo.net>)
 id 1rAW8k-0006Mk-Fd
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:11:10 +0000
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com
 [66.111.4.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ff440e2-9378-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 15:11:05 +0100 (CET)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailout.nyi.internal (Postfix) with ESMTP id 3F3435C0221;
 Tue,  5 Dec 2023 09:11:03 -0500 (EST)
Received: from imap51 ([10.202.2.101])
 by compute5.internal (MEProxy); Tue, 05 Dec 2023 09:11:03 -0500
Received: by mailuser.nyi.internal (Postfix, from userid 501)
 id F1107B60089; Tue,  5 Dec 2023 09:11:02 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ff440e2-9378-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc
	:cc:content-transfer-encoding:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:sender:subject:subject:to:to; s=fm3; t=
	1701785463; x=1701871863; bh=j3N0QWRlwKTdKTX4J89FkfNpMXL+zjMjp+z
	yBpPFcGk=; b=XBFPNxabboiuMjgl4yR3FMQJuxLZtkJrLU9g2lTEuyDx9KQq3Fe
	2ormUyzLAVKspwVUse7XFOS3BnbN16Gib50hyGOgSNgxqUvq+1FMfpGqYeD5TFxv
	qy48WUMeE+UCiA2QTOPuNjmsDWPugKxJ6uGd6nqWIswJqiCTv2kTXcax3tBrMqcI
	O1Zla64CYmVC35W/aNT7EF7hzUvbWkebaykgVXTY0m30lIzNEnx8VsMW+BCz4NzB
	mjpoxkIRpv/zJWfyl2P5hnymkHmJcrClpuJFKh9oEH2CLejezCLJBvzSX332ZcJq
	VIZE6dF8maj56gw7EOq/IDNYE8tVNGbl2+Q==
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:sender:subject:subject:to:to:x-me-proxy
	:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1701785463; x=1701871863; bh=j3N0QWRlwKTdKTX4J89FkfNpMXL+zjMjp+z
	yBpPFcGk=; b=v+tT197yi+LisCzzXZe+r48uIpomQDrCkwohu8Xbn4M3zeHjQAE
	v9PXfo0hnG3RHOnrpvznsRS4Co/meNkyvGNWomGNRasnXQuD0i9L1ik58JezE9dv
	7j1vdh/Jotlqwb2S4sWM+mvqkqO772mr71OHMs5jvLApKS/DJh/YD2CL4/wRoFD4
	jrt46vr63sNXcugPLv+v7VwDt3K5N/SQa9UuxXiMXEWkEkHdMZhyiRNwGcNp87YE
	FR+M/fzL4eh8jJ8y7iP1lkU0zZ3hmP061TqgLCAvXmI6EdGGN8mxdN9DIvKCilOz
	2Qammbg5GQJljILYcFLw0K66qyCkZJtQnGw==
X-ME-Sender: <xms:dy9vZYPi6yzzebzLGV8vIAifCfOL_TkhLhY13f4kGqVDjGesafDr_A>
    <xme:dy9vZe8_q8AjGIOB3iGseJb7qO9gnHNQnvJQQtDuUJBOl4vcsbWEEwfJwW_hROk0E
    5h2dgyL_gFkzQs5NIg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudejkedgieduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepofgfggfkjghffffhvfevufgtgfesthhqredtreerjeenucfhrhhomhepfdet
    rhhnugcuuegvrhhgmhgrnhhnfdcuoegrrhhnugesrghrnhgusgdruggvqeenucggtffrrg
    htthgvrhhnpeegtdduhffgueekhffgteetheehjeeiteeifeffteetgffgtdfhteeuheev
    veetueenucffohhmrghinhepghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedtne
    curfgrrhgrmhepmhgrihhlfhhrohhmpegrrhhnugesrghrnhgusgdruggv
X-ME-Proxy: <xmx:dy9vZfRKDw7lcLOXfwJwwJl4weQ1m2DJ4gaRQu7l6EOaKrJ0XG5eCA>
    <xmx:dy9vZQuOra8ddNNMlIojupBygovyCEthp78bSLdAD_ydTPLpW5avHw>
    <xmx:dy9vZQch63Iolopp8XWa0-lb-wJkhVWMZKDHAEGiUHP7C9fpZPpurQ>
    <xmx:dy9vZVGRoBeQ2egxGpJnTdkscj5qr0issiXke4aD1RZi-4DwmKWw4Q>
Feedback-ID: i56a14606:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.9.0-alpha0-1178-geeaf0069a7-fm-20231114.001-geeaf0069
MIME-Version: 1.0
Message-Id: <5a05e194-28d1-409d-9f45-ca4de0fc78c8@app.fastmail.com>
In-Reply-To: <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
 <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
 <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
Date: Tue, 05 Dec 2023 15:10:40 +0100
From: "Arnd Bergmann" <arnd@arndb.de>
To: "Julien Grall" <julien@xen.org>, "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 "George Dunlap" <george.dunlap@citrix.com>,
 "Stefano Stabellini" <sstabellini@kernel.org>, "Wei Liu" <wl@xen.org>,
 "Juergen Gross" <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all architectures
Content-Type: text/plain;charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 5, 2023, at 15:01, Julien Grall wrote:
> On 05/12/2023 13:59, Jan Beulich wrote:
>> On 05.12.2023 14:46, Julien Grall wrote:
>>> On 05/12/2023 13:41, Juergen Gross wrote:
>>>> On 05.12.23 14:31, Julien Grall wrote:
>>>>> Anyway, given you don't seem to have a use-case yet, I would simpl=
y to
>>>>> consider to surround the declaration with an a config which can be
>>>>> selected if unaligned access is supported.
>>>>
>>>> Like in xen/common/lzo.c et al?
>>>
>>> Just to clarify, I am suggesting to add in unaligned.h:
>>>
>>> #ifdef CONFIG_HAS_UNALIGNED_ACCESS
>>>
>>> your definitions
>>>
>>> #endif
>>=20
>> But that would be wrong: HAS_UNALIGNED_ACCESS would be there to indic=
ate
>> one does _not_ need any special accessors.
>
> I am guessing you are disagreeing on the name rather than the concept?=20
> If so, what about CONFIG_UNALIGNED_ACCESS_ALLOWED?

This would repeat the mistake that we had in Linux in the
past (and still do in some drivers): Simply dereferencing
a misaligned pointer is always a bug, even on architectures
that have efficient unaligned load/store instructions,
because C makes this undefined behavior and gcc has
optimizations that assume e.g. 'int *' to never have
the lower two bits set [1].

The helpers that J=C3=BCrgen copied from Linux is what we
use to abstract accesses to objects that we know may
be misaligned. If the underlying ISA allows a direct
access (e.g. on arm64 and x86), this is as efficient
as a normal pointer access but prevents the dangerous
optimizations in gcc. On architectures without these
instructions, the access will be turned into safe
bytewise access.

This is similar to a __packed annotation on a
data structure, but also works in cases where such
an annotation wouldn't work for other reasons.

     Arnd

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D100363


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:11:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:11:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647923.1011690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAW8w-0006eu-68; Tue, 05 Dec 2023 14:11:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647923.1011690; Tue, 05 Dec 2023 14:11:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAW8w-0006en-3I; Tue, 05 Dec 2023 14:11:22 +0000
Received: by outflank-mailman (input) for mailman id 647923;
 Tue, 05 Dec 2023 14:11: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=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAW8u-0006Mk-8t
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:11:20 +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 286d51f4-9378-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 15:11:18 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 404501F8BF;
 Tue,  5 Dec 2023 14:11:17 +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 F350F1386E;
 Tue,  5 Dec 2023 14:11:16 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id nq0UOoQvb2W/SgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 14:11: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: 286d51f4-9378-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701785477; 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=vds+xSphqYEOsfxiI2YJYeIZvVVp7tw8P160r19+a5Q=;
	b=V69iUSg8d4M1kHUGcAuh3ENM6L+DFmuyP2etRBn80n3zKOa39L8Kvl8+yCl9ydjhsDUjde
	NStgMDk4HjItY/kqwngoRdxyw+785h+TmrF/5kEsboSLX9eDippBuPwJVdNs1NZj+dRX7l
	Fj2mmYLniIVr8WUsxjKtNgJ1svXeVqc=
Message-ID: <9e14e65c-8cc0-4e51-ad52-33bdc40eacf0@suse.com>
Date: Tue, 5 Dec 2023 15:11:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>,
 Arnd Bergmann <arnd@arndb.de>, xen-devel@lists.xenproject.org
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <8aa1ae99-5bc3-4165-90eb-e522769d4de3@suse.com>
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: <8aa1ae99-5bc3-4165-90eb-e522769d4de3@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------8I9o3TinJtBxY5awZ310DFeS"
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -4.11
X-Spamd-Result: default: False [-4.11 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.12)[-0.609];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------8I9o3TinJtBxY5awZ310DFeS
Content-Type: multipart/mixed; boundary="------------b81fTC4Z0yjAgMf9lQ05puq0";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>,
 Arnd Bergmann <arnd@arndb.de>, xen-devel@lists.xenproject.org
Message-ID: <9e14e65c-8cc0-4e51-ad52-33bdc40eacf0@suse.com>
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <8aa1ae99-5bc3-4165-90eb-e522769d4de3@suse.com>
In-Reply-To: <8aa1ae99-5bc3-4165-90eb-e522769d4de3@suse.com>

--------------b81fTC4Z0yjAgMf9lQ05puq0
Content-Type: multipart/mixed; boundary="------------mv4CixqtfXnh5lf1SZsOyILC"

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

T24gMDUuMTIuMjMgMTQ6NTUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNS4xMi4yMDIz
IDExOjA3LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gQEAgLTE1LDY3ICs3LDEyNiBAQA0K
Pj4gICAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPg0KPj4gICAjZW5kaWYNCj4+ICAgDQo+
PiAtI2RlZmluZSBnZXRfdW5hbGlnbmVkKHApICgqKHApKQ0KPj4gLSNkZWZpbmUgcHV0X3Vu
YWxpZ25lZCh2YWwsIHApICgqKHApID0gKHZhbCkpDQo+PiArLyoNCj4+ICsgKiBUaGlzIGlz
IHRoZSBtb3N0IGdlbmVyaWMgaW1wbGVtZW50YXRpb24gb2YgdW5hbGlnbmVkIGFjY2Vzc2Vz
DQo+PiArICogYW5kIHNob3VsZCB3b3JrIGFsbW9zdCBhbnl3aGVyZS4NCj4+ICsgKi8NCj4+
ICsNCj4+ICsjZGVmaW5lIF9fZ2V0X3VuYWxpZ25lZF90KHR5cGUsIHB0cikgKHsJCQkJCQlc
DQo+PiArCWNvbnN0IHN0cnVjdCB7IHR5cGUgeDsgfSBfX3BhY2tlZCAqX19wcHRyID0gKHR5
cGVvZihfX3BwdHIpKShwdHIpOwlcDQo+PiArCV9fcHB0ci0+eDsJCQkJCQkJCVwNCj4+ICt9
KQ0KPj4gKw0KPj4gKyNkZWZpbmUgX19wdXRfdW5hbGlnbmVkX3QodHlwZSwgdmFsLCBwdHIp
IGRvIHsJCQkJCVwNCj4+ICsJc3RydWN0IHsgdHlwZSB4OyB9IF9fcGFja2VkICpfX3BwdHIg
PSAodHlwZW9mKF9fcHB0cikpKHB0cik7CQlcDQo+PiArCV9fcHB0ci0+eCA9ICh2YWwpOwkJ
CQkJCQlcDQo+PiArfSB3aGlsZSAoMCkNCj4gDQo+IFBsZWFzZSBjYW4gd2UgYXZvaWQgZ2Fp
bmluZyBuZXcgKGV2ZW4gZG91YmxlKSBsZWFkaW5nIHVuZGVyc2NvcmUgc3ltYm9scywNCj4g
ZXNwZWNpYWxseSB3aGVuIHRoZXkncmUgaW4gaGVscGVyIChpLmUuIG5vdCBpbnRlbmRlZCB0
byBiZSB1c2VkIGRpcmVjdGx5KQ0KPiBjb25zdHJ1Y3RzPyBObyByZWFzb24gdG8gaW50cm9k
dWNlIGZ1cnRoZXIgaXNzdWVzIHdydCBNaXNyYSBhZG9wdGlvbi4NCj4gDQo+PiArI2RlZmlu
ZSBnZXRfdW5hbGlnbmVkKHB0cikJX19nZXRfdW5hbGlnbmVkX3QodHlwZW9mKCoocHRyKSks
IChwdHIpKQ0KPj4gKyNkZWZpbmUgcHV0X3VuYWxpZ25lZCh2YWwsIHB0cikgX19wdXRfdW5h
bGlnbmVkX3QodHlwZW9mKCoocHRyKSksICh2YWwpLCAocHRyKSkNCj4gDQo+IE1heSBJIGFz
ayB0byBvbWl0IGV4Y2VzcyBwYXJlbnRoZXNlcyB3aGVyZSBwb3NzaWJsZT8NCj4gDQo+PiAr
c3RhdGljIGlubGluZSB1MTYgZ2V0X3VuYWxpZ25lZF9sZTE2KGNvbnN0IHZvaWQgKnApDQo+
PiArew0KPj4gKwlyZXR1cm4gbGUxNl90b19jcHUoX19nZXRfdW5hbGlnbmVkX3QoX19sZTE2
LCBwKSk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgdTMyIGdldF91bmFsaWdu
ZWRfbGUzMihjb25zdCB2b2lkICpwKQ0KPj4gK3sNCj4+ICsJcmV0dXJuIGxlMzJfdG9fY3B1
KF9fZ2V0X3VuYWxpZ25lZF90KF9fbGUzMiwgcCkpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0
aWMgaW5saW5lIHU2NCBnZXRfdW5hbGlnbmVkX2xlNjQoY29uc3Qgdm9pZCAqcCkNCj4+ICt7
DQo+PiArCXJldHVybiBsZTY0X3RvX2NwdShfX2dldF91bmFsaWduZWRfdChfX2xlNjQsIHAp
KTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRf
bGUxNih1MTYgdmFsLCB2b2lkICpwKQ0KPj4gK3sNCj4+ICsJX19wdXRfdW5hbGlnbmVkX3Qo
X19sZTE2LCBjcHVfdG9fbGUxNih2YWwpLCBwKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGlj
IGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRfbGUzMih1MzIgdmFsLCB2b2lkICpwKQ0KPj4g
K3sNCj4+ICsJX19wdXRfdW5hbGlnbmVkX3QoX19sZTMyLCBjcHVfdG9fbGUzMih2YWwpLCBw
KTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRf
bGU2NCh1NjQgdmFsLCB2b2lkICpwKQ0KPj4gK3sNCj4+ICsJX19wdXRfdW5hbGlnbmVkX3Qo
X19sZTY0LCBjcHVfdG9fbGU2NCh2YWwpLCBwKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGlj
IGlubGluZSB1MTYgZ2V0X3VuYWxpZ25lZF9iZTE2KGNvbnN0IHZvaWQgKnApDQo+PiArew0K
Pj4gKwlyZXR1cm4gYmUxNl90b19jcHUoX19nZXRfdW5hbGlnbmVkX3QoX19iZTE2LCBwKSk7
DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgdTMyIGdldF91bmFsaWduZWRfYmUz
Mihjb25zdCB2b2lkICpwKQ0KPj4gK3sNCj4+ICsJcmV0dXJuIGJlMzJfdG9fY3B1KF9fZ2V0
X3VuYWxpZ25lZF90KF9fYmUzMiwgcCkpOw0KPj4gK30NCj4+ICAgDQo+PiAtc3RhdGljIGlu
bGluZSB1aW50MTZfdCBnZXRfdW5hbGlnbmVkX2JlMTYoY29uc3Qgdm9pZCAqcCkNCj4+ICtz
dGF0aWMgaW5saW5lIHU2NCBnZXRfdW5hbGlnbmVkX2JlNjQoY29uc3Qgdm9pZCAqcCkNCj4+
ICAgew0KPj4gLQlyZXR1cm4gYmUxNl90b19jcHVwKHApOw0KPj4gKwlyZXR1cm4gYmU2NF90
b19jcHUoX19nZXRfdW5hbGlnbmVkX3QoX19iZTY0LCBwKSk7DQo+PiAgIH0NCj4+ICAgDQo+
PiAtc3RhdGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRfYmUxNih1aW50MTZfdCB2YWws
IHZvaWQgKnApDQo+PiArc3RhdGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRfYmUxNih1
MTYgdmFsLCB2b2lkICpwKQ0KPj4gICB7DQo+PiAtCSooX19mb3JjZSBfX2JlMTYqKXAgPSBj
cHVfdG9fYmUxNih2YWwpOw0KPj4gKwlfX3B1dF91bmFsaWduZWRfdChfX2JlMTYsIGNwdV90
b19iZTE2KHZhbCksIHApOw0KPj4gICB9DQo+PiAgIA0KPj4gLXN0YXRpYyBpbmxpbmUgdWlu
dDMyX3QgZ2V0X3VuYWxpZ25lZF9iZTMyKGNvbnN0IHZvaWQgKnApDQo+PiArc3RhdGljIGlu
bGluZSB2b2lkIHB1dF91bmFsaWduZWRfYmUzMih1MzIgdmFsLCB2b2lkICpwKQ0KPj4gICB7
DQo+PiAtCXJldHVybiBiZTMyX3RvX2NwdXAocCk7DQo+PiArCV9fcHV0X3VuYWxpZ25lZF90
KF9fYmUzMiwgY3B1X3RvX2JlMzIodmFsKSwgcCk7DQo+PiAgIH0NCj4+ICAgDQo+PiAtc3Rh
dGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRfYmUzMih1aW50MzJfdCB2YWwsIHZvaWQg
KnApDQo+PiArc3RhdGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRfYmU2NCh1NjQgdmFs
LCB2b2lkICpwKQ0KPj4gICB7DQo+PiAtCSooX19mb3JjZSBfX2JlMzIqKXAgPSBjcHVfdG9f
YmUzMih2YWwpOw0KPj4gKwlfX3B1dF91bmFsaWduZWRfdChfX2JlNjQsIGNwdV90b19iZTY0
KHZhbCksIHApOw0KPj4gICB9DQo+PiAgIA0KPj4gLXN0YXRpYyBpbmxpbmUgdWludDY0X3Qg
Z2V0X3VuYWxpZ25lZF9iZTY0KGNvbnN0IHZvaWQgKnApDQo+PiArc3RhdGljIGlubGluZSB1
MzIgX19nZXRfdW5hbGlnbmVkX2JlMjQoY29uc3QgdTggKnApDQo+IA0KPiBIZXJlIGFuZCBi
ZWxvdyAtIGRvIHlvdSBmb3Jlc2VlIHVzZSBvZiB0aGVzZSAyNC1iaXQgaGVscGVycz8gVGhl
eSB3ZXJlbid0DQo+IHRoZXJlIGJlZm9yZSwgYW5kIHRoZSBkZXNjcmlwdGlvbiBhbHNvIGRv
ZXNuJ3QganVzdGlmeSB0aGVpciBpbnRyb2R1Y3Rpb24uDQoNCkkgaGF2ZSBqdXN0IGFwcGxp
ZWQgdGhlIHBhdGNoIGZyb20gdGhlIGtlcm5lbCAoc2VlIE9yaWdpbjogdGFnKS4NCg0KSSBj
YW4gY2hhbmdlIHRoZSBwYXRjaCBhY2NvcmRpbmcgdG8geW91ciBjb21tZW50cywgb2YgY291
cnNlLg0KDQoNCkp1ZXJnZW4NCg==
--------------mv4CixqtfXnh5lf1SZsOyILC
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-----

--------------mv4CixqtfXnh5lf1SZsOyILC--

--------------b81fTC4Z0yjAgMf9lQ05puq0--

--------------8I9o3TinJtBxY5awZ310DFeS
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/Ey8FAmVvL4QFAwAAAAAACgkQsN6d1ii/Ey8t
3Af/SfXYaV704fed31GNdS9aMuWqoq26b+74k71jxc7WA7Xc6cEZYA1TJ6PNGJ0qQh3LywqwcfTE
Teq9ivayf96PPNgBWvpTr0IbauMTBT5wefXBh5nGZl55DfeeOMaFeyz8ZTKi3pmDYkyU3mc5vdWe
c0Wa9646YN4pJuUv73leRoTDvjoy6c22hYE/Otk5skJUBok7CK1DAPM62Q9vthHX5DS8gpf7gehH
kjioYojW5IYVKp4vT4Q9o85wr8ZDQJ+hbvpEoovGZ0302f6ld6xxjOenuf5/4VqCyh2nZxwfcbmk
PYZHS3f2asULJRcY57FkyRGJLVoabjr3nsUkg3YyNg==
=jKZe
-----END PGP SIGNATURE-----

--------------8I9o3TinJtBxY5awZ310DFeS--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:11:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:11:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647925.1011700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAW90-0006xp-IA; Tue, 05 Dec 2023 14:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647925.1011700; Tue, 05 Dec 2023 14: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 1rAW90-0006xg-El; Tue, 05 Dec 2023 14:11:26 +0000
Received: by outflank-mailman (input) for mailman id 647925;
 Tue, 05 Dec 2023 14:11:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAW8y-0006eb-DM
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:11:24 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2bd27c5c-9378-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 15:11:23 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-33349b3f99aso1790169f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:11:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fs20-20020a05600c3f9400b0040b5517ae31sm21649714wmb.6.2023.12.05.06.11.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 06:11:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2bd27c5c-9378-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701785483; x=1702390283; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=A07R8nZe2kZ1OoLl3Eyhf5BWSkwzYxMlQyHCJgZQb6U=;
        b=XPqBRs2X6JWFF9ydWSdF5N5keVMvrHg26RD/L5vf8Kfpwyq9QLe2ZXMkOIkS9Fo919
         tZenc9dO2oO2vfAtW83Qyg7wmieJ0SiSw5fgW5Qri2ZxzoZvt8enj9UFJovMokwvW7Mx
         btyZ8vEVFaxfUZP6HM6eCFayrOPFpHXk7SDcQ9SaqnHbj+eSt9Ihf3DO4t8oUWKOJ9E8
         E3GbktBF5t50JXnxmIXoOcgIQpYYJ9DQ+t4Z48yRqky7HGhpL9hxQ81RJ2R7rLS73Nsp
         /VeiZ404hC3uPaJvj2pP5FVrvBLDxNrfnabim3lAevWPy+xPX+pTeIkT7c3RRQSPVpot
         5xHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701785483; x=1702390283;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=A07R8nZe2kZ1OoLl3Eyhf5BWSkwzYxMlQyHCJgZQb6U=;
        b=vAU4f9aLassmpaAZXvxyZG+5QiqHTnVv73elCRqO8G8y4Ieok4uRD3pWpvczqZr0sW
         65o/tGqGD7nknE5oemD5nWPZRMCJ5simgqKH/3u34XqWvIpuKvEFhzS9bEttbfAtxPRM
         DazS+Ps+2pmPRVPH7KE9+l1gj527yZCTiSL1n81xsnWEsmcpf3wv3m2eIQZBVk2p9RuE
         HW6D34/2b30gzZGNsSCv2Q0afVZvg9KvTY7q4K8PyNUoMo+yKF8IMPKKIPmW5q1lFSWy
         uot3xJH4LQ1tNgqJZcYtqmGN48Rapisux2N0zmfaBWSXbUMPg6RR2embxSl1csfo7h2M
         Y9dg==
X-Gm-Message-State: AOJu0YyjQbor1t9HlCm7gFsS5S8LTJdby82PNrNLCxXBFKE0B//TvtKQ
	p8eTuTAVTnObfR9WCAb9KH5D
X-Google-Smtp-Source: AGHT+IHGTpOyJxWtBgyyE3YgZd3wWAOzr+t2VAg1iC8qJzqjhAQgo42XlrXN2wlkZp1mdWphzemScw==
X-Received: by 2002:a05:600c:354c:b0:407:8e85:89ad with SMTP id i12-20020a05600c354c00b004078e8589admr531251wmq.14.1701785483126;
        Tue, 05 Dec 2023 06:11:23 -0800 (PST)
Message-ID: <cbfe6823-9092-4fa3-8641-81d9819fed09@suse.com>
Date: Tue, 5 Dec 2023 15:11:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>, Juergen Gross <jgross@suse.com>,
 xen-devel@lists.xenproject.org
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
 <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
 <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2023 15:01, Julien Grall wrote:
> On 05/12/2023 13:59, Jan Beulich wrote:
>> On 05.12.2023 14:46, Julien Grall wrote:
>>> On 05/12/2023 13:41, Juergen Gross wrote:
>>>> On 05.12.23 14:31, Julien Grall wrote:
>>>>> Anyway, given you don't seem to have a use-case yet, I would simply to
>>>>> consider to surround the declaration with an a config which can be
>>>>> selected if unaligned access is supported.
>>>>
>>>> Like in xen/common/lzo.c et al?
>>>
>>> Just to clarify, I am suggesting to add in unaligned.h:
>>>
>>> #ifdef CONFIG_HAS_UNALIGNED_ACCESS
>>>
>>> your definitions
>>>
>>> #endif
>>
>> But that would be wrong: HAS_UNALIGNED_ACCESS would be there to indicate
>> one does _not_ need any special accessors.
> 
> I am guessing you are disagreeing on the name rather than the concept? 
> If so, what about CONFIG_UNALIGNED_ACCESS_ALLOWED?

Not really, no. Of course the name needs to properly express the purpose.
But I don't see why a Kconfig control would be appropriate here. You simply
want to provide accessors to unaligned data. Nobody needs to use them, but
when you have to, they ought to be there. A Kconfig control (of the name
you suggested first) would be helpful to not penalize architectures which
can do unaligned accesses without any helpers (in case the code generated
through the helpers turned out sub-optimal).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:14:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:14:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647934.1011710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWC4-0000Zy-1I; Tue, 05 Dec 2023 14:14:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647934.1011710; Tue, 05 Dec 2023 14: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 1rAWC3-0000Zr-Uy; Tue, 05 Dec 2023 14:14:35 +0000
Received: by outflank-mailman (input) for mailman id 647934;
 Tue, 05 Dec 2023 14:14: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=7WXV=HQ=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rAWC3-0000Zl-GS
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:14:35 +0000
Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com
 [2607:f8b0:4864:20::102a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9d11260e-9378-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 15:14:34 +0100 (CET)
Received: by mail-pj1-x102a.google.com with SMTP id
 98e67ed59e1d1-286e57fde73so361374a91.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:14:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d11260e-9378-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701785673; x=1702390473; 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=eugi3LJPk8rwPJF3ewrBaB6RIcMiqfgdnHhizrGagQs=;
        b=P+L7XPl8TugTwIIjZhQaYmdIsB0nPulUicQ1zLPlXt9JZtVtVmW/PPmDzrEtMCbq9h
         RrLJ2QtRPuDesmLBbl4bRMy7t+p0ZD+xDFFiyjAtPk1cE+5fm9yd5hJQ1GWVvWItfbhv
         NQC4Xlbd66EjE9N3x6GqqwOPMBF/toi/HCMIDdOp3YJH2E9gx9vU+MOQm+NQv93AvqeO
         cRiNK3i67TWYWxpVuq7NPwKIThaqvs5WemGGehcV9Le7sxZbG6TcJ2LtA7BIrqu7O3FP
         bNo43XMM+vYGymQkWHajTd8vYAOc2Zvf+jAt7Y/6G2uVOznvVGVVXUt1JVAQXkNDfegL
         tsvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701785673; x=1702390473;
        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=eugi3LJPk8rwPJF3ewrBaB6RIcMiqfgdnHhizrGagQs=;
        b=UZAjvdnlPFM7sv66YHAZSA/dixS3kayyHuMqxa4fol0GEcaPUwQbPdmUWvLClxwj6t
         Dt17H6WuYfj9sbM9euHej3huk31VPqCM6YxpLnLZYHxmch64AFzjdbIitJFJZgMZ+y2Z
         lkYebw/EAr4WMgXbC9xniQz5wuRO+f0l7HesszKzd4IJJAgmK+NRye41I2USw9Gukc6F
         I338Ch5NFrbNM0NB2zujo14NowvlqOiM4oKoOMSFrlW1UgLw4o0VEWGWYaTs98G0fecN
         t3RAyq6cw5fyAFIS27iEphrp0hvo/IqIBX9sVulyyPh5+iAt8+9b3t0XslZzOT6pZLLu
         Wmyw==
X-Gm-Message-State: AOJu0YwE6nDg+l5vJTd+b/f+Sp/6osmSgKTYvvZ3C1/3RWqzhFG5Mzk/
	gjq+MxnY0PPzzPApfQ64BXuTVYJtUKIHrPwFogNVCSt3Pko=
X-Google-Smtp-Source: AGHT+IHKQf0E64pS76qN32ZvIO/yrpurcQRb80bo0l8wyRKWzQIVzpn98u1B85XJERJlnxTZ89HOpJBRLqJ/FqbINfM=
X-Received: by 2002:a17:90a:4007:b0:286:54a3:c34e with SMTP id
 u7-20020a17090a400700b0028654a3c34emr935771pjc.26.1701785672749; Tue, 05 Dec
 2023 06:14:32 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
In-Reply-To: <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Tue, 5 Dec 2023 15:14:21 +0100
Message-ID: <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

 booting kernel with "dyndbg=file drivers/gpio/* +p"

[    1.997798] i2c_designware AMDI0010:00: using ACPI '\_SB.I2CA' for
'scl' GPIO lookup
[    1.997804] acpi AMDI0010:00: GPIO: looking up scl-gpios
[    1.997806] acpi AMDI0010:00: GPIO: looking up scl-gpio
[    1.997807] i2c_designware AMDI0010:00: using lookup tables for GPIO lookup
[    1.997809] i2c_designware AMDI0010:00: No GPIO consumer scl found
[    2.007517] i2c_designware AMDI0010:03: using ACPI '\_SB.I2CD' for
'scl' GPIO lookup
[    2.007521] acpi AMDI0010:03: GPIO: looking up scl-gpios
[    2.007523] acpi AMDI0010:03: GPIO: looking up scl-gpio
[    2.007524] i2c_designware AMDI0010:03: using lookup tables for GPIO lookup
[    2.007526] i2c_designware AMDI0010:03: No GPIO consumer scl found
[    2.343905] gpiochip_find_base: found new base at 512
[    2.344408] gpio gpiochip0: Persistence not supported for GPIO 0
[    2.344436] gpio gpiochip0: Persistence not supported for GPIO 61
[    2.344458] gpio gpiochip0: Persistence not supported for GPIO 62
[    2.344480] gpio gpiochip0: Persistence not supported for GPIO 58
[    2.344502] gpio gpiochip0: Persistence not supported for GPIO 59
[    2.344523] gpio gpiochip0: Persistence not supported for GPIO 2
[    2.344546] gpio gpiochip0: Persistence not supported for GPIO 6
[    2.344571] gpio gpiochip0: Persistence not supported for GPIO 54
[    2.344646] gpio gpiochip0: (AMDI0030:00): added GPIO chardev (254:0)
[    2.344648] gpio gpiochip0: registered GPIOs 512 to 767 on AMDI0030:00
[    2.344650] gpio gpiochip0: (AMDI0030:00): created GPIO range
0->255 ==> AMDI0030:00 PIN 0->255
[    2.357663] acpi MSFT0101:00: GPIO: looking up 0 in _CRS
[    2.376188] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    2.376193] mdio_bus fixed-0: No GPIO consumer reset found
[    2.401459] rtc_cmos 00:01: using ACPI '\_SB.PCI0.LPC0.RTC' for
'wp' GPIO lookup
[    2.401464] acpi PNP0B00:00: GPIO: looking up wp-gpios
[    2.401465] acpi PNP0B00:00: GPIO: looking up wp-gpio
[    2.401467] rtc_cmos 00:01: using lookup tables for GPIO lookup
[    2.401468] rtc_cmos 00:01: No GPIO consumer wp found
[    2.659765] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.660047] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.660162] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.660277] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.660393] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.660504] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.660609] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    2.660726] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
[    5.445265] acpi FRMW0004:00: GPIO: looking up 0 in _CRS
[    5.445396] acpi FRMW0005:00: GPIO: looking up 0 in _CRS
[    5.448467] acpi PIXA3854:00: GPIO: looking up 0 in _CRS
[    5.448483] gpio gpiochip0: Persistence not supported for GPIO 84
[    5.452476] gpio gpiochip0: Persistence not supported for GPIO 5
[    5.463304] gpio gpiochip0: Persistence not supported for GPIO 8


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:15:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:15:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647935.1011720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWCc-0001BY-Af; Tue, 05 Dec 2023 14:15:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647935.1011720; Tue, 05 Dec 2023 14:15: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 1rAWCc-0001BR-6k; Tue, 05 Dec 2023 14:15:10 +0000
Received: by outflank-mailman (input) for mailman id 647935;
 Tue, 05 Dec 2023 14:15:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cmhw=HQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAWCb-0001B8-59
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:15:09 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b0fb99d0-9378-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 15:15:07 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c09f5a7cfso27592705e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:15:07 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 r16-20020a05600c459000b00406408dc788sm22439735wmo.44.2023.12.05.06.15.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 06:15:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0fb99d0-9378-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701785706; x=1702390506; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=j1opGavxz8TwcFCrwdX7Fk20nmJ0k675jB1bULHd0YU=;
        b=iSK8+PfKwhhbx6R7uo3ZDOsxngzhFeiYgWzFeP6APHOnSYki84PaHQlFUFhqkipqdR
         1bauUPtPpP4zu4LcH0fJYE2xx9omlbGewsQ0a52ih+KAGIiNyQVe6JGzp/H1jdhXv+dk
         qIElHQtUYaAJ2S4Um1UPrJLm1iqDn8jBDkevU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701785706; x=1702390506;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=j1opGavxz8TwcFCrwdX7Fk20nmJ0k675jB1bULHd0YU=;
        b=pMqF0bbNZXW/n36zV6Wscbp8pA9SsQZktJrCMnl4249tB5DIJWAxZK4F149NE8YKhG
         huc3dM9VM708NIPIhFN7tEIxkBJ/yX4/xYKbvv8WkLBaDTRvGkIWtK8pC7rKQOKzXP4e
         q9G2yINx5Xj4nFEbFnkkI02IzWJISW7RwkihJNZOwC28A7pReoMsSsWGhravhyziiBfp
         iGE21KuYcaSi/BPqb7jkDKh+dCHvGyzJHtjZmj5YOCxlKPRXFutQZ+yckHenfvlrXiLn
         k4d6Ut5yx0qiY/5pFuKS20EcsdaYdA1PVVApq0aJqkdmXbif6+g7n6bvudb8hVfD3uns
         XSgA==
X-Gm-Message-State: AOJu0YyVgyQ4GUjOSj5hGJxY6pEuUfmyY/sDJX/XCRhsaekQ3IiCajvj
	/9Te+RqWkBVxExm0B6Ynozwx/A==
X-Google-Smtp-Source: AGHT+IHM+00yicD+N5cglAkjvSLSskOrQO7fT08yP+V8r5XCE5tNVJUch783fcZqc9g/lplrMFAj4A==
X-Received: by 2002:a05:600c:230a:b0:40b:5e59:e9e9 with SMTP id 10-20020a05600c230a00b0040b5e59e9e9mr494713wmo.136.1701785706605;
        Tue, 05 Dec 2023 06:15:06 -0800 (PST)
Message-ID: <824c50c3-ad3f-4d97-a3e8-5343564cbde5@citrix.com>
Date: Tue, 5 Dec 2023 14:15:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] livepatch-build-tools: allow livepatching version.c
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>
References: <20231205123403.63813-1-roger.pau@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231205123403.63813-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/12/2023 12:34 pm, Roger Pau Monne wrote:
> Currently version.o is explicitly ignored as the file would change as a result
> of the orignal and the patched build having possibly different dates and
> times.
>
> Fix such difference by exporting the date and time from the build script, so
> that both builds share the same build time.  This allows checking for changes
> in version.c, since the rest of fields need to be manually changed in order to
> produce different output.
>
> Setting XEN_BUILD_{DATE,TIME} as an environment variable has been supported
> since before livepatch support was added to Xen, so it's safe to export those
> variables unconditionally.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  livepatch-build | 4 ++++
>  livepatch-gcc   | 2 --
>  2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/livepatch-build b/livepatch-build
> index e2ccce4f7fd7..f622683fc56c 100755
> --- a/livepatch-build
> +++ b/livepatch-build
> @@ -417,6 +417,10 @@ if [ "${SKIP}" != "build" ]; then
>  
>      export CROSS_COMPILE="${TOOLSDIR}/livepatch-gcc "
>  
> +    # Force same date and time to prevent unwanted changes in version.c
> +    export XEN_BUILD_DATE=`LC_ALL=C date`
> +    export XEN_BUILD_TIME=`LC_ALL=C date +%T`

Date is the one that goes wrong every time, but everything else in
compile.h can go wrong in a way that causes version.o to change.

Ideally, the pristine source for building livepatches would include a
generated compile.h, and livepatch would have a way to force no
regeneration of the header.Â  But I've got no idea how nice that would be
to arrange.

That way, you're using the same details as the Xen being patched, rather
than hoping that two identical different details will cancel out in the
binary diff.

> +
>      echo "Perform full initial build with ${CPUS} CPU(s)..."
>      build_full
>  
> diff --git a/livepatch-gcc b/livepatch-gcc
> index fcad80551aa0..e4cb6fb59029 100755
> --- a/livepatch-gcc
> +++ b/livepatch-gcc
> @@ -33,7 +33,6 @@ if [[ "$TOOLCHAINCMD" =~ $GCC_RE ]] ; then
>              obj=$2
>              [[ $2 = */.tmp_*.o ]] && obj=${2/.tmp_/}
>              case "$(basename $obj)" in
> -            version.o|\
>              debug.o|\
>              check.o|\

Tangential question.Â  check.o is excluded because it's a toolchain test,
but any idea what debug.o is doing in this list?

It can't possibly be the debug.c I've recently added to x86 (which we'll
want to be able to livepatch), so I guess it's got something to do the
ARM debug.S's, but I can't see anything in those that are worthy of
exemption either...

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:17:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:17:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647938.1011729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWEO-0003EI-Km; Tue, 05 Dec 2023 14:17:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647938.1011729; Tue, 05 Dec 2023 14:17:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWEO-0003EB-Hx; Tue, 05 Dec 2023 14:17:00 +0000
Received: by outflank-mailman (input) for mailman id 647938;
 Tue, 05 Dec 2023 14:16:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAWEN-00039M-6b
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:16:59 +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 f25d4b08-9378-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 15:16:57 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id B6AB41FB3F;
 Tue,  5 Dec 2023 14:16:54 +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 7869E136CF;
 Tue,  5 Dec 2023 14:16:54 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id KEsYHNYwb2XuTAAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 14:16: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: f25d4b08-9378-11ee-9b0f-b553b5be7939
Message-ID: <2ea05b0a-94b6-456a-bc3d-515471efa5aa@suse.com>
Date: Tue, 5 Dec 2023 15:16:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
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: <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------XgQliq0SwO2etWWuYa8YV6bd"
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 NEURAL_HAM_SHORT(-0.05)[-0.275];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 BAYES_HAM(-3.00)[100.00%];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[arndb.de:email,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: B6AB41FB3F
X-Spam-Flag: YES
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------XgQliq0SwO2etWWuYa8YV6bd
Content-Type: multipart/mixed; boundary="------------d0pebPDkZljMXoZL2TAd0EIL";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
Message-ID: <2ea05b0a-94b6-456a-bc3d-515471efa5aa@suse.com>
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
In-Reply-To: <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>

--------------d0pebPDkZljMXoZL2TAd0EIL
Content-Type: multipart/mixed; boundary="------------EuHe299Q0QxFU6JztJZzOWWT"

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

T24gMDUuMTIuMjMgMTQ6NDYsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gDQo+IA0KPiBPbiAw
NS8xMi8yMDIzIDEzOjQxLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMDUuMTIuMjMg
MTQ6MzEsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+PiBIaSBKdWVyZ2VuLA0KPj4+DQo+Pj4g
T24gMDUvMTIvMjAyMyAxMjozOSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+Pj4gT24gMDUu
MTIuMjMgMTI6NTMsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+Pj4+IEhpIEp1ZXJnZW4sDQo+
Pj4+Pg0KPj4+Pj4gT24gMDUvMTIvMjAyMyAxMDowNywgSnVlcmdlbiBHcm9zcyB3cm90ZToN
Cj4+Pj4+PiBJbnN0ZWFkIG9mIGRlZmluaW5nIGdldF91bmFsaWduZWQoKSBhbmQgcHV0X3Vu
YWxpZ25lZCgpIGluIGEgd2F5IHRoYXQNCj4+Pj4+PiBpcyBvbmx5IHN1cHBvcnRpbmcgYXJj
aGl0ZWN0dXJlcyBhbGxvd2luZyB1bmFsaWduZWQgYWNjZXNzZXMsIHVzZSB0aGUNCj4+Pj4+
PiBzYW1lIGFwcHJvYWNoIGFzIHRoZSBMaW51eCBrZXJuZWwgYW5kIGxldCB0aGUgY29tcGls
ZXIgZG8gdGhlDQo+Pj4+Pj4gZGVjaXNpb24gaG93IHRvIGdlbmVyYXRlIHRoZSBjb2RlIGZv
ciBwcm9iYWJseSB1bmFsaWduZWQgZGF0YSBhY2Nlc3Nlcy4NCj4+Pj4+Pg0KPj4+Pj4+IFVw
ZGF0ZSBpbmNsdWRlL3hlbi91bmFsaWduZWQuaCBmcm9tIGluY2x1ZGUvYXNtLWdlbmVyaWMv
dW5hbGlnbmVkLmggb2YNCj4+Pj4+PiB0aGUgTGludXgga2VybmVsLg0KPj4+Pj4+DQo+Pj4+
Pj4gVGhlIGdlbmVyYXRlZCBjb2RlIGhhcyBiZWVuIGNoZWNrZWQgdG8gYmUgdGhlIHNhbWUg
b24geDg2Lg0KPj4+Pj4+DQo+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQXJuZCBCZXJnbWFubiA8
YXJuZEBhcm5kYi5kZT4NCj4+Pj4+PiBPcmlnaW46IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1
Yi9zY20vbGludXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQgDQo+Pj4+Pj4gODAz
ZjRlMWVhYjdhDQo+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3Nz
QHN1c2UuY29tPg0KPj4+Pj4NCj4+Pj4+IENhbiB5b3Ugb3V0bGluZSB5b3VyIGVuZCBnb2Fs
PyBBdCBsZWFzdCBvbiBhcm0zMiwgSSBiZWxpZXZlIHRoaXMgd2lsbCANCj4+Pj4+IHJlc3Vs
dCB0byBhYm9ydCBiZWNhdXNlIGV2ZW50IGlmIHRoZSBhcmNoaXRlY3R1cmUgc3VwcG9ydCB1
bmFsaWduZWQgYWNjZXNzLCANCj4+Pj4+IHdlIGFyZSBwcmV2ZW50aW5nIHRoZW0gb24gQXJt
MzIuDQo+Pj4+DQo+Pj4+IEkgbmVlZCBzb21ldGhpbmcgbGlrZSB0aGF0IGluIFhlbiB0b29s
cyBmb3Igc3VwcG9ydGluZyBwYWNrZWQgZGF0YSBhY2Nlc3Nlcw0KPj4+PiBvbiB0aGUgOXBm
cyByaW5nIHBhZ2UsIHNvIEkgbG9va2VkIGludG8gdGhlIGh5cGVydmlzb3IgZm9yIHJlbGF0
ZWQgc3VwcG9ydC4NCj4+Pg0KPj4+IERpZCB3ZSByZWFsbHkgaW50cm9kdWNlIGFuIEFCSSBy
ZXF1aXJpbmcgdW5hbGlnbmVkIGFjY2Vzcz8/PyBPciBpcyB0aGlzIA0KPj4+IHNvbWV0aGlu
ZyB5b3UgYXJlIGNvbWluZyB1cCB3aXRoPw0KPj4NCj4+IFRoaXMgaXMgdGhlIDlwZnMgcHJv
dG9jb2wgKHNlZSBbMV0pLg0KPiANCj4gVXJnaCA6KC4NCj4gDQo+Pg0KPj4+IEFueXdheSwg
SUlSQyBMaW51eCBhbGxvd3MgdW5hbGlnbmVkIGFjY2Vzcy4gU28gdGhlIHByb2JsZW0gSSBh
bSBkZXNjcmliaW5nIGlzIA0KPj4+IG9ubHkgZm9yIHRoZSBoeXBlcnZpc29yLiBBbHRob3Vn
aCwgSSB3b3VsZCBsaWtlIHRvIHBvaW50IG91dCB0aGF0IHVuYWxpZ25lZCANCj4+PiBhY2Nl
c3MgaGFzIG5vIGF0b21pY2l0eSBndWFyYW50ZWUuIEkgYXNzdW1lIHRoaXMgaXMgbm90IGdv
aW5nIHRvIGJlIGEgY29uY2VybiANCj4+PiBmb3IgeW91Pw0KPj4NCj4+IENvcnJlY3QuDQo+
Pg0KPj4+DQo+Pj4+IEkgZ3Vlc3MgZm9yIGFybTMyIHVzaW5nIC1tbm8tdW5hbGlnbmVkLWFj
Y2VzcyB3aGVuIGJ1aWxkaW5nIHNob3VsZCBhdm9pZCBhbnkNCj4+Pj4gdW5hbGlnbmVkIGFj
Y2Vzc2VzPw0KPj4+DQo+Pj4gSSBhbSBub3Qgc3VyZS4gVGhpcyBpcyBpbXBsaWVzIHRoZSBj
b21waWxlciB3aWxsIGJlIGFibGUgdG8gaW5mZXIgdGhhdCB0aGUgDQo+Pj4gYWNjZXNzIHdp
bGwgYmUgdW5hbGlnbmVkLiBJcyB0aGlzIGFsd2F5cyB0aGUgY2FzZT8NCj4+DQo+PiBUaGlz
IHNob3VsZCBoYXBwZW4gdGhyb3VnaCB0aGUgIl9fcGFja2VkIiBhdHRyaWJ1dGUgb24gdGhl
IGFjY2VzcyBtYWNyb3MuIEFzDQo+PiBlLmcuIE1JUFMgZG9lc24ndCBzdXBwb3J0IHVuYWxp
Z25lZCBhY2Nlc3NlcywgYnV0IGlzIHdvcmtpbmcgd2l0aCB0aG9zZSBhY2Nlc3MNCj4+IG1h
Y3JvcyBpbiB0aGUgTGludXgga2VybmVsLCBJIHN1c3BlY3QgdGhlIGF0dHJpYnV0ZSBpcyBk
b2luZyBpdHMgam9iLg0KPiANCj4gU29tZW9uZSB3aWxsIG5lZWQgdG8gZGlnIGEgYml0IGRl
ZXBlciB0byBjb25maXJtIGFuZCBhbHNvIHRoZSBpbXBhY3Qgb24gdGhlIHJlc3QgDQo+IG9m
IHRoZSBoeXBlcnZpc29yLg0KPiANCj4+DQo+Pj4gQW55d2F5LCBnaXZlbiB5b3UgZG9uJ3Qg
c2VlbSB0byBoYXZlIGEgdXNlLWNhc2UgeWV0LCBJIHdvdWxkIHNpbXBseSB0byANCj4+PiBj
b25zaWRlciB0byBzdXJyb3VuZCB0aGUgZGVjbGFyYXRpb24gd2l0aCBhbiBhIGNvbmZpZyB3
aGljaCBjYW4gYmUgc2VsZWN0ZWQgDQo+Pj4gaWYgdW5hbGlnbmVkIGFjY2VzcyBpcyBzdXBw
b3J0ZWQuDQo+Pg0KPj4gTGlrZSBpbiB4ZW4vY29tbW9uL2x6by5jIGV0IGFsPw0KPiANCj4g
SnVzdCB0byBjbGFyaWZ5LCBJIGFtIHN1Z2dlc3RpbmcgdG8gYWRkIGluIHVuYWxpZ25lZC5o
Og0KPiANCj4gI2lmZGVmIENPTkZJR19IQVNfVU5BTElHTkVEX0FDQ0VTUw0KPiANCj4geW91
ciBkZWZpbml0aW9ucw0KPiANCj4gI2VuZGlmDQo+IA0KPiBBbmQgdGhlbiBmb3IgWDg2LCBz
ZWxlY3QgQ09ORklHX0hBU19VTkFMSUdORURfQUNDRVNTLg0KPiANCj4gIMKgVGhvc2UgYXJl
IGNvbXBpbGVkIHdpdGggQ09ORklHX1g4NiBvbmx5DQo+PiB0b2RheSwNCj4+IGJ1dCBJIGd1
ZXNzIG90aGVyIGFyY2hzIG1pZ2h0IG5lZWQgdGhlIGRlY29tcHJlc3NvcnMgaW4gZnV0dXJl
LCB0b28uDQo+IFBvc3NpYmx5IHllcy4gQnV0IG15IHBvaW50IGlzIHRoYXQgeW91IGRvbid0
IGhhdmUgdG8gc29sdmUgdGhlIHByb2JsZW0gdG9kYXkuIA0KPiBZZXQgSSBkb24ndCB0aGlu
ayBpdCBpcyB3aXNlIHRvIGFsbG93IHRoZSBoZWFkZXIgdG8gYmUgdXNlZCBvbiBhcm0zMiB1
bnRpbCB3ZSANCj4gaGF2ZSBkb25lIHNvbWUgaW52ZXN0aWdhdGlvbi4NCj4gDQo+IEFuZCB0
byBjbGFyaWZ5LCBJIGFtIG5vdCBhc2tpbmcgeW91IHRvIGRvIHRoZSBpbnZlc3RpZ2F0aW9u
Lg0KDQpJJ3ZlIGRvbmUgYSBxdWljayB2ZXJpZmljYXRpb24gdXNpbmcgZ2NjIDcuNS4NCg0K
VXNpbmcgLW1uby11bmFsaWduZWQtYWNjZXNzIGZvciAzMi1iaXQgQXJtIHNlZW1zIHRvIGRv
IHRoZSBqb2I6DQoNCiNpbmNsdWRlIDx4ZW4vdW5hbGlnbmVkLmg+DQppbnQgdHN0KGNvbnN0
IHVuc2lnbmVkIHNob3J0ICppbikNCnsNCiAgICAgcmV0dXJuIGdldF91bmFsaWduZWQoaW4p
Ow0KfQ0KDQpyZXN1bHRzIGluOg0KDQowMDAwMDAwMCA8dHN0PjoNCiAgICAwOiAgIGU1MmRi
MDA0ICAgICAgICBwdXNoICAgIHtmcH0gICAgICAgICAgICBAIChzdHIgZnAsIFtzcCwgIy00
XSEpDQogICAgNDogICBlMjhkYjAwMCAgICAgICAgYWRkICAgICBmcCwgc3AsICMwDQogICAg
ODogICBlNWQwMzAwMCAgICAgICAgbGRyYiAgICByMywgW3IwXQ0KICAgIGM6ICAgZTVkMDAw
MDEgICAgICAgIGxkcmIgICAgcjAsIFtyMCwgIzFdDQogICAxMDogICBlMTgzMDQwMCAgICAg
ICAgb3JyICAgICByMCwgcjMsIHIwLCBsc2wgIzgNCiAgIDE0OiAgIGUyOGJkMDAwICAgICAg
ICBhZGQgICAgIHNwLCBmcCwgIzANCiAgIDE4OiAgIGU0OWRiMDA0ICAgICAgICBwb3AgICAg
IHtmcH0gICAgICAgICAgICBAIChsZHIgZnAsIFtzcF0sICM0KQ0KICAgMWM6ICAgZTEyZmZm
MWUgICAgICAgIGJ4ICAgICAgbHINCg0KV2l0aG91dCB0aGUgLW1uby11bmFsaWduZWQtYWNj
ZXNzIEknbSBnZXR0aW5nOg0KDQowMDAwMDAwMCA8dHN0PjoNCiAgICAwOiAgIGU1MmRiMDA0
ICAgICAgICBwdXNoICAgIHtmcH0gICAgICAgICAgICBAIChzdHIgZnAsIFtzcCwgIy00XSEp
DQogICAgNDogICBlMjhkYjAwMCAgICAgICAgYWRkICAgICBmcCwgc3AsICMwDQogICAgODog
ICBlMWQwMDBiMCAgICAgICAgbGRyaCAgICByMCwgW3IwXQ0KICAgIGM6ICAgZTI4YmQwMDAg
ICAgICAgIGFkZCAgICAgc3AsIGZwLCAjMA0KICAgMTA6ICAgZTQ5ZGIwMDQgICAgICAgIHBv
cCAgICAge2ZwfSAgICAgICAgICAgIEAgKGxkciBmcCwgW3NwXSwgIzQpDQogICAxNDogICBl
MTJmZmYxZSAgICAgICAgYnggICAgICBscg0KDQoNCkp1ZXJnZW4NCg==
--------------EuHe299Q0QxFU6JztJZzOWWT
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-----

--------------EuHe299Q0QxFU6JztJZzOWWT--

--------------d0pebPDkZljMXoZL2TAd0EIL--

--------------XgQliq0SwO2etWWuYa8YV6bd
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/Ey8FAmVvMNYFAwAAAAAACgkQsN6d1ii/Ey8y
rgf+JwbBYrfGoEOXM9KFjExvvMG8C/GzhOQ+Jf/eYWYfr/CsDFLVa61CWOztMpCW+qzl6xs+KCHx
t+cHTiZIAkcU82IQObdH4JlD+n/3kfONKPDwza8dKbZRxEkOXsEbTTORxyEg4xepa6qvdtFJKErC
QEq1LwmXnj3LjYIh2pgLh74/W1iXwgJNeesZmIzqdMnFV+pJv9430MvTVi+o/czw7DytyV/Hs8v0
NGsvDLWtrJ79fsL9tdTDHx052hXsUmf86kYBiAek4MRSjevjsXs64IYf+RjbViOdUFtq/D0Yj6zs
dewOSm+z8MopEECNOwFkQ6jm1MkwdiEmMxCzEfIV5w==
=Kj7s
-----END PGP SIGNATURE-----

--------------XgQliq0SwO2etWWuYa8YV6bd--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:18:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:18:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647944.1011740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWFp-0004rz-44; Tue, 05 Dec 2023 14:18:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647944.1011740; Tue, 05 Dec 2023 14:18:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWFp-0004rs-0E; Tue, 05 Dec 2023 14:18:29 +0000
Received: by outflank-mailman (input) for mailman id 647944;
 Tue, 05 Dec 2023 14:18: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAWFn-0004nk-FE
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:18:27 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26fc57fb-9379-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 15:18:25 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-332d5c852a0so4523088f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:18:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c1-20020adfa301000000b003333a216682sm9360488wrb.97.2023.12.05.06.18.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 06:18:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26fc57fb-9379-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701785904; x=1702390704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AotARsj+VFna1B6Y1dBKJsrGcJLPZmGGYp80tG8dyY8=;
        b=TCdZ/9n43D+g7GQ/PTC466GdZq6Oi6jL2wBa7y6U4PSlb8bFK/+3TPzuKhvYOnc9hZ
         v5/5clghgI86ydk6uL56CC7NThn9nst33nLL5FHGtdlh03Ibf/L/SUjZy3GkCxbp6mGq
         vth/qUVGF4UysrATLty28Psj7TWMYYjBXKwsMeSxEE3YyixmSLRd4kA2eaVRfiBSjUiM
         CtZV+YGA2Mmsw/q1yelp2rCIlk+o2LtoyiKwH4+SnIAErEStd+xQyXPuEhE6oEVnzAM4
         yatwb7VeKkHvaULA2zfYOq9j7PkWhmYbxman9N8EyeISmXIJrIE2HZpo1rg3cur9s0IW
         DzdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701785904; x=1702390704;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=AotARsj+VFna1B6Y1dBKJsrGcJLPZmGGYp80tG8dyY8=;
        b=OdVYh3vxoQM7b50jT2RsWB1WoYyCdrMmHmeUvp2DkM4IyCtA1xb3SCY3sjcK26hOUd
         lfn2KjJFZTxlfE6ST4ATQdprBP9omxp/x+xyQUV4hE2C5mpd0j+RRV7H7/dlMJnhEJxU
         ICd+j/BKYIzEQrBjHTuvg9HFzWlL3UKeTHjgWMjDWAMbes81sWvKkhu0sVdHt8mp9+z5
         bVAR3W6EJUEKY9m7w13bso7XKp6PLU5Sr9cYfjIh2/3hqCPhd9EeME+V0RLgWKuuRErf
         fUoL3xltKgiL9r2sbDz0VoHrnTmkvTUizKi8b5dhRJkSn0ntAfNu0IUoqFbe5jt9H7C3
         1moA==
X-Gm-Message-State: AOJu0Yyz/yTweWpt9VkmCaKu3A5s3GUlFGmandNz3Jh+WGo5qulUA6Ql
	VawlmqBtFSxBie2Qz10KGrPE4qLwOb0/8QnkgLMw
X-Google-Smtp-Source: AGHT+IFWbc3FD0birsYmOoLKb9NJIOd8apO5yYGotQCSFpy6juI7sMERnMvsZyIdFq62UwVF8lAv7w==
X-Received: by 2002:a05:6000:400d:b0:333:42dc:d42c with SMTP id cp13-20020a056000400d00b0033342dcd42cmr2621012wrb.80.1701785904557;
        Tue, 05 Dec 2023 06:18:24 -0800 (PST)
Message-ID: <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
Date: Tue, 5 Dec 2023 15:18:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
 <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
 <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.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: <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 15:14, SÃ©bastien Chaumat wrote:
>  booting kernel with "dyndbg=file drivers/gpio/* +p"

I'm afraid this doesn't tell me anything. I'm simply not familiar with
Linux'es GPIO handling.

Jan

> [    1.997798] i2c_designware AMDI0010:00: using ACPI '\_SB.I2CA' for
> 'scl' GPIO lookup
> [    1.997804] acpi AMDI0010:00: GPIO: looking up scl-gpios
> [    1.997806] acpi AMDI0010:00: GPIO: looking up scl-gpio
> [    1.997807] i2c_designware AMDI0010:00: using lookup tables for GPIO lookup
> [    1.997809] i2c_designware AMDI0010:00: No GPIO consumer scl found
> [    2.007517] i2c_designware AMDI0010:03: using ACPI '\_SB.I2CD' for
> 'scl' GPIO lookup
> [    2.007521] acpi AMDI0010:03: GPIO: looking up scl-gpios
> [    2.007523] acpi AMDI0010:03: GPIO: looking up scl-gpio
> [    2.007524] i2c_designware AMDI0010:03: using lookup tables for GPIO lookup
> [    2.007526] i2c_designware AMDI0010:03: No GPIO consumer scl found
> [    2.343905] gpiochip_find_base: found new base at 512
> [    2.344408] gpio gpiochip0: Persistence not supported for GPIO 0
> [    2.344436] gpio gpiochip0: Persistence not supported for GPIO 61
> [    2.344458] gpio gpiochip0: Persistence not supported for GPIO 62
> [    2.344480] gpio gpiochip0: Persistence not supported for GPIO 58
> [    2.344502] gpio gpiochip0: Persistence not supported for GPIO 59
> [    2.344523] gpio gpiochip0: Persistence not supported for GPIO 2
> [    2.344546] gpio gpiochip0: Persistence not supported for GPIO 6
> [    2.344571] gpio gpiochip0: Persistence not supported for GPIO 54
> [    2.344646] gpio gpiochip0: (AMDI0030:00): added GPIO chardev (254:0)
> [    2.344648] gpio gpiochip0: registered GPIOs 512 to 767 on AMDI0030:00
> [    2.344650] gpio gpiochip0: (AMDI0030:00): created GPIO range
> 0->255 ==> AMDI0030:00 PIN 0->255
> [    2.357663] acpi MSFT0101:00: GPIO: looking up 0 in _CRS
> [    2.376188] mdio_bus fixed-0: using lookup tables for GPIO lookup
> [    2.376193] mdio_bus fixed-0: No GPIO consumer reset found
> [    2.401459] rtc_cmos 00:01: using ACPI '\_SB.PCI0.LPC0.RTC' for
> 'wp' GPIO lookup
> [    2.401464] acpi PNP0B00:00: GPIO: looking up wp-gpios
> [    2.401465] acpi PNP0B00:00: GPIO: looking up wp-gpio
> [    2.401467] rtc_cmos 00:01: using lookup tables for GPIO lookup
> [    2.401468] rtc_cmos 00:01: No GPIO consumer wp found
> [    2.659765] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> [    2.660047] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> [    2.660162] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> [    2.660277] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> [    2.660393] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> [    2.660504] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> [    2.660609] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> [    2.660726] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> [    5.445265] acpi FRMW0004:00: GPIO: looking up 0 in _CRS
> [    5.445396] acpi FRMW0005:00: GPIO: looking up 0 in _CRS
> [    5.448467] acpi PIXA3854:00: GPIO: looking up 0 in _CRS
> [    5.448483] gpio gpiochip0: Persistence not supported for GPIO 84
> [    5.452476] gpio gpiochip0: Persistence not supported for GPIO 5
> [    5.463304] gpio gpiochip0: Persistence not supported for GPIO 8



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:19:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:19:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647946.1011750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWGa-000671-DE; Tue, 05 Dec 2023 14:19:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647946.1011750; Tue, 05 Dec 2023 14: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 1rAWGa-00066u-A8; Tue, 05 Dec 2023 14:19:16 +0000
Received: by outflank-mailman (input) for mailman id 647946;
 Tue, 05 Dec 2023 14:19:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAWGZ-00066m-R5
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:19:15 +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 1rAWGW-0007GT-4p; Tue, 05 Dec 2023 14:19:12 +0000
Received: from 54-240-197-228.amazon.com ([54.240.197.228]
 helo=[10.95.100.251]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAWGV-00079M-V8; Tue, 05 Dec 2023 14:19:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=sQQzellDuGuYORUGfkXCOE8XjknJ91M4pIxtRmt9gQo=; b=qKHgVlxArYow0E6Pae+ctMI4nN
	0bpa2rlfjGbvZMBXcn6+0vcXfx35Rlsw2qCfE07yUthjAnqi1Cfcr55S+5NYSaYa89Qf7L5UbYsor
	JBuKl1I3o7+N/ii28icyzxMKQHu19EWD0dHLdVrH06MWU3pxPTSu1usS6D2mtTnYsYr8=;
Message-ID: <fcdab8c1-b0ea-4d7a-943e-2180b13234fd@xen.org>
Date: Tue, 5 Dec 2023 14:19:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-GB
To: Arnd Bergmann <arnd@arndb.de>, Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
 <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
 <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
 <5a05e194-28d1-409d-9f45-ca4de0fc78c8@app.fastmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <5a05e194-28d1-409d-9f45-ca4de0fc78c8@app.fastmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Arnd,

Thanks for the answer.

On 05/12/2023 14:10, Arnd Bergmann wrote:
> On Tue, Dec 5, 2023, at 15:01, Julien Grall wrote:
>> On 05/12/2023 13:59, Jan Beulich wrote:
>>> On 05.12.2023 14:46, Julien Grall wrote:
>>>> On 05/12/2023 13:41, Juergen Gross wrote:
>>>>> On 05.12.23 14:31, Julien Grall wrote:
>>>>>> Anyway, given you don't seem to have a use-case yet, I would simply to
>>>>>> consider to surround the declaration with an a config which can be
>>>>>> selected if unaligned access is supported.
>>>>>
>>>>> Like in xen/common/lzo.c et al?
>>>>
>>>> Just to clarify, I am suggesting to add in unaligned.h:
>>>>
>>>> #ifdef CONFIG_HAS_UNALIGNED_ACCESS
>>>>
>>>> your definitions
>>>>
>>>> #endif
>>>
>>> But that would be wrong: HAS_UNALIGNED_ACCESS would be there to indicate
>>> one does _not_ need any special accessors.
>>
>> I am guessing you are disagreeing on the name rather than the concept?
>> If so, what about CONFIG_UNALIGNED_ACCESS_ALLOWED?
> 
> This would repeat the mistake that we had in Linux in the
> past (and still do in some drivers): Simply dereferencing
> a misaligned pointer is always a bug, even on architectures
> that have efficient unaligned load/store instructions,
> because C makes this undefined behavior and gcc has
> optimizations that assume e.g. 'int *' to never have
> the lower two bits set [1].

Just to clarify, I haven't suggested to use 'int *'. My point was more 
that I don't think that the helpers would work as-is on arm32 because
even if the ISA allows a direct access, we are setting the bit in SCTLR 
to disable unaligned access.

As Juergen is proposing a common header, then I could ask him to do the 
work to confirm that the helpers properly work on arm32. But I think 
this is unfair.

I also don't have the time to chase to look at it and this is not yet 
used in code reached by Arm. Hence my suggestion for now to protect the 
code so if someone tries to use them, then they know that it doesn't 
(yet) work on Arm.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:24:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:24:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647952.1011760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWLz-0003xe-0E; Tue, 05 Dec 2023 14:24:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647952.1011760; Tue, 05 Dec 2023 14:24:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWLy-0003xX-Tr; Tue, 05 Dec 2023 14:24:50 +0000
Received: by outflank-mailman (input) for mailman id 647952;
 Tue, 05 Dec 2023 14:24: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAWLy-0003r1-3p
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:24:50 +0000
Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com
 [2a00:1450:4864:20::444])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b776713-937a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 15:24:48 +0100 (CET)
Received: by mail-wr1-x444.google.com with SMTP id
 ffacd0b85a97d-3334d9b57adso1356304f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:24:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bl13-20020adfe24d000000b0033344666878sm6699905wrb.91.2023.12.05.06.24.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 06:24:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b776713-937a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701786288; x=1702391088; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gQmLJOgkh6sIuGYdKUONLWoveERp17lqVvLgypNbpEg=;
        b=A8QG3r/AuZGZLiMlmV4CDwNaOjFPGBa5ivX4OWLjoY+xdZDqjWACQ0/zuImgfV9CAu
         mlleFjaCjbI0GS4EvDMZjVUz0g0/YaD1eylKEihgxTVJLY1eZ2zGD681rxRgj+yjIOpw
         C0dO/dVp0t5Qw0Wa8pieXnQRjfN3R4tz+y68cXLAX3kf75bdntpHLQk8qI2su8PoSeL8
         /EiE0mZDgyFNaO5bZnTiVJ85ngS6AThzOwC2jBr1AlMzKfFzXxJrtyFwAQ9feutEQ/3n
         leuXUuLdFpQ4/qW54y+DYn6qiFzNLtmBqRw0EuYatIur6ATunrL5Ib3RFqzYMkGnX9Ho
         azfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701786288; x=1702391088;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=gQmLJOgkh6sIuGYdKUONLWoveERp17lqVvLgypNbpEg=;
        b=E+2rYqmB3VIMhXU7iG7F9VgYltqAsh3LL7ChGUJKCPONE8BjDxjs9mNOhJil0sTkR/
         PqfJlZ/J3nEOhd4svCe499cz4cTIzWdnECmq7qPpVi3X5mQov1B8+OlFuUC2LoGrTR9U
         UnNgsF7ebB8kYyZHuJEj4hRsW6VXrTNCaYDBs5DtHYobWj7HcFXgpWszR61D8TN5Fvop
         AO7xrBMrOWNawY2gplIZbTYQ8Fh5FGfna1kdggepdQ32mtyNfYJ20xosL6rAt2OGneso
         kk5XZVE+77wgMCkSxMX4iwMtGXtWqy8cGnJNGTbocFO0g8WjdgEgIjJ/D+QG0Burky6J
         /Jjg==
X-Gm-Message-State: AOJu0YzQszYk3WZogZcUb62y6uMF7A+MLHADLNXyhPMmM3ikIkjm0cHj
	2y37Mf1gKknioWMHe8DWFeht
X-Google-Smtp-Source: AGHT+IFd6W6PHzFPjE0uO0X8UvS27/kbNHZUKLTJDzea1X2qyaPYF+9Xi7UjGDln23IzCILa94rj9Q==
X-Received: by 2002:adf:fa0c:0:b0:333:2fd2:8142 with SMTP id m12-20020adffa0c000000b003332fd28142mr5343424wrr.95.1701786287857;
        Tue, 05 Dec 2023 06:24:47 -0800 (PST)
Message-ID: <a9ca40d5-3546-46a4-ab56-3b190b1e4e93@suse.com>
Date: Tue, 5 Dec 2023 15:24:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/6] iommu/vt-d: do not assume page table levels for
 quarantine domain
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Kevin Tian <kevin.tian@intel.com>, xen-devel@lists.xenproject.org
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-2-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231204094305.59267-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.12.2023 10:43, Roger Pau Monne wrote:
> Like XSA-445, do not assume IOMMU page table levels on VT-d are always set
> based on DEFAULT_DOMAIN_ADDRESS_WIDTH and instead fetch the value set by
> intel_iommu_hwdom_init() from the domain iommu structure.  This prevents
> changes to intel_iommu_hwdom_init() possibly getting the levels out of sync

In both cases, don't you mean intel_iommu_domain_init() instead? Only if
so
Reviewed-by: Jan Beulich <jbeulich@suse.com>
(and happy to adjust while committing).

Otherwise I must be missing something.

Jan

> with what intel_iommu_quarantine_init() expects.
> 
> No functional change, since on Intel domains are hardcoded to use
> DEFAULT_DOMAIN_ADDRESS_WIDTH.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
> Changes since v1:
>  - New in this version.
> ---
>  xen/drivers/passthrough/vtd/iommu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
> index e13b7d99db40..bc6181c9f911 100644
> --- a/xen/drivers/passthrough/vtd/iommu.c
> +++ b/xen/drivers/passthrough/vtd/iommu.c
> @@ -3162,7 +3162,7 @@ static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
>  {
>      struct domain_iommu *hd = dom_iommu(dom_io);
>      struct page_info *pg;
> -    unsigned int agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
> +    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;



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:29:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:29:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647955.1011770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWQY-0000av-FY; Tue, 05 Dec 2023 14:29:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647955.1011770; Tue, 05 Dec 2023 14:29:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWQY-0000ao-C3; Tue, 05 Dec 2023 14:29:34 +0000
Received: by outflank-mailman (input) for mailman id 647955;
 Tue, 05 Dec 2023 14:29:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAWQX-0000ZF-1f
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:29:33 +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 b3d72764-937a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 15:29:30 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c09f4814eso32896985e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:29:30 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 i12-20020a5d584c000000b0033342f72bf8sm7011110wrf.9.2023.12.05.06.29.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 06:29:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3d72764-937a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701786570; x=1702391370; 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=3aQcICTQfuMd+zc46y6/S5a47Y9E7zeF7tjwTjquORc=;
        b=kjS0UHeyHKJxgXu+flRl21q8/CXzg2ap6nGSyB0B/T0Y1Y6zv2jC8EjdgzalD10hal
         dWEvHtqMRkJRslKs40UTfbXX5iOKYohSUWxzH3Zj4uPNek89jktWJIy1GUI2H3Fe8LlQ
         HyzqYZ9NHtE8hNf3YSZbBYj2GrBNC8RGpYck4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701786570; x=1702391370;
        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=3aQcICTQfuMd+zc46y6/S5a47Y9E7zeF7tjwTjquORc=;
        b=qC+4gX1EFWA/+brkUzdTFVUjtDLbKE373fNRR8wlxGlwtwpbiGBUzUiIZApQeXuEX0
         RphBemNnbn7BO0jl28bksQqoqrEZn0TeoPqdN/U3oUDAHmbdqWrrYZyAyvME/TVmeLnk
         rQH3N/BjTqnIG9+OOHKb7aBW1ABY5j5zoQhgGTEHrwz3DGFLzKf1YhGLvaB3PpL1RyKW
         ch1A9JtMLqtXN32mEe3yu950+2j3WUXElIbwLIsJIyUBDqiFF1Ly6MsEd43AXhyDmGjL
         UfTanxH/iMKa4xyW9iv6YTUMRfBSn30o9h2AeoPYHgHZS1gbn0XxkV38vXkXNXtQjD89
         ENMQ==
X-Gm-Message-State: AOJu0YwvlUYeVwufSVzcpXHCkLS3/k6l9trOBdKrGg4Es/UORyyLTx9G
	UBqJMWXZ9zjm/BjVxB+/WjF/Kg==
X-Google-Smtp-Source: AGHT+IFKD6LHh7npRzTLcWYuOWpW+ln3EvzvN95Rh/9Fh5fvoERC7fnuHumdZsOL8x7I6wgagiSqtA==
X-Received: by 2002:a05:600c:4f42:b0:3fe:1232:93fa with SMTP id m2-20020a05600c4f4200b003fe123293famr557547wmq.22.1701786570268;
        Tue, 05 Dec 2023 06:29:30 -0800 (PST)
Date: Tue, 5 Dec 2023 15:29:29 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Message-ID: <ZW8zyXkUJDKVt-HX@macbook>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com>
 <ZW4L5Q4SMprtmbK-@macbook>
 <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com>

On Tue, Dec 05, 2023 at 09:52:31AM +0100, Jan Beulich wrote:
> On 04.12.2023 18:27, Roger Pau MonnÃ© wrote:
> > On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
> >> ..., at least as reasonably feasible without making a check hook
> >> mandatory (in particular strict vs relaxed/zero-extend length checking
> >> can't be done early this way).
> >>
> >> Note that only one of the two uses of hvm_load() is accompanied with
> >> hvm_check(). The other directly consumes hvm_save() output, which ought
> >> to be well-formed. This means that while input data related checks don't
> >> need repeating in the "load" function when already done by the "check"
> >> one (albeit assertions to this effect may be desirable), domain state
> >> related checks (e.g. has_xyz(d)) will be required in both places.
> >>
> >> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> Do we really need all the copying involved in use of _hvm_read_entry()
> >> (backing hvm_load_entry()? Zero-extending loads are likely easier to
> >> handle that way, but for strict loads all we gain is a reduced risk of
> >> unaligned accesses (compared to simply pointing into h->data[]).
> > 
> > See below, but I wonder whether the checks could be performed as part
> > of hvm_load() without having to introduce a separate handler and loop
> > over the context entries.
> 
> Specifically not. State loading (in the longer run) would better not fail
> once started. (Imo it should have been this way from the beginning.) Only
> then will the vCPU still be in a predictable state even after a possible
> error.

Looking at the callers, does such predictable state after failure
matter?

One caller is an hypercall used by the toolstack at domain create,
failing can just lead to the domain being destroyed.  The other caller
is vm fork, which will also lead to the fork being destroyed if
context loading fails.

Maybe I'm overlooking something.

> >> Would the hvm_sr_handlers[] better use array_access_nospec()?
> > 
> > Maybe?  Given this is a domctl I do wonder whether a domain already
> > having access to such interface won't have easier ways to leak data
> > from Xen.  Maybe for a disaggregated setup.
> 
> Hmm, now we're in the middle - Andrew effectively said "no need to".

I'm certainly not an expert on whether array_access_nospec() should be
used, so if Andrew says no need, that's likely better advice.

Maybe the xsm check used in such desegregated setups would already
stop speculation?

> >> @@ -275,6 +281,78 @@ int hvm_save(struct domain *d, hvm_domai
> >>      return 0;
> >>  }
> >>  
> >> +int hvm_check(const struct domain *d, hvm_domain_context_t *h)
> >> +{
> >> +    const struct hvm_save_header *hdr;
> >> +    int rc;
> >> +
> >> +    if ( d->is_dying )
> >> +        return -EINVAL;
> >> +
> >> +    /* Get at the save header, which must be first. */
> >> +    hdr = hvm_get_entry(HEADER, h);
> >> +    if ( !hdr )
> >> +        return -ENODATA;
> >> +
> >> +    rc = arch_hvm_check(d, hdr);
> >> +    if ( rc )
> >> +        return rc;
> >> +
> >> +    for ( ; ; )
> >> +    {
> >> +        const struct hvm_save_descriptor *desc;
> >> +        hvm_check_handler handler;
> >> +
> >> +        if ( h->size - h->cur < sizeof(*desc) )
> >> +        {
> >> +            /* Run out of data */
> >> +            printk(XENLOG_G_ERR
> >> +                   "HVM restore %pd: save did not end with a null entry\n",
> >> +                   d);
> >> +            return -ENODATA;
> >> +        }
> >> +
> >> +        /* Read the typecode of the next entry and check for the end-marker. */
> >> +        desc = (const void *)&h->data[h->cur];
> >> +        if ( desc->typecode == HVM_SAVE_CODE(END) )
> >> +        {
> >> +            /* Reset cursor for hvm_load(). */
> >> +            h->cur = 0;
> >> +            return 0;
> >> +        }
> >> +
> >> +        /* Find the handler for this entry. */
> >> +        if ( desc->typecode >= ARRAY_SIZE(hvm_sr_handlers) ||
> >> +             !hvm_sr_handlers[desc->typecode].name ||
> >> +             !hvm_sr_handlers[desc->typecode].load )
> >> +        {
> >> +            printk(XENLOG_G_ERR "HVM restore %pd: unknown entry typecode %u\n",
> >> +                   d, desc->typecode);
> >> +            return -EINVAL;
> >> +        }
> >> +
> >> +        /* Check the entry. */
> >> +        handler = hvm_sr_handlers[desc->typecode].check;
> >> +        if ( !handler )
> >> +        {
> >> +            if ( desc->length > h->size - h->cur - sizeof(*desc) )
> >> +                return -ENODATA;
> >> +            h->cur += sizeof(*desc) + desc->length;
> >> +        }
> >> +        else if ( (rc = handler(d, h)) )
> >> +        {
> >> +            printk(XENLOG_G_ERR
> >> +                   "HVM restore %pd: failed to check %s:%u rc %d\n",
> >> +                   d, hvm_sr_handlers[desc->typecode].name, desc->instance, rc);
> >> +            return rc;
> >> +        }
> >> +
> >> +        process_pending_softirqs();
> > 
> > Looking at this, won't it be better to call the check() hooks inside
> > the hvm_load() function instead of duplicating the loop?
> > 
> > I realize that you only perform the checks when the state is loaded
> > from a domctl, but still seems quite a lot of code duplication for
> > little benefit.
> > 
> > hvm_load() could gain an extra parameter to select whether the input
> > must be checked or not, and that would avoid having to iterate twice
> > over the context.
> 
> Well, see above.
> 
> >> +    }
> >> +
> >> +    /* Not reached */
> > 
> > ASSERT_UNREACHABLE() maybe?
> 
> Hmm, I'd find it kind of odd to have such here. While hvm_load() doesn't
> have such either, perhaps that's not a meaningful reference. Adding this
> would make me fear introducing a Misra violation (adding dead code).

But isn't this the purpose of ASSERT_UNREACHABLE() exactly?  IOW:
Misra will need an exception for all usage of ASSERT_UNREACHABLE()
already.

I think ASSERT_UNREACHABLE() is much better than a Not reached
comment: conveys the same information to readers of the code and has
a run-time consequence on debug builds.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:30:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:30:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647961.1011779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWRa-0002i6-Tn; Tue, 05 Dec 2023 14:30:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647961.1011779; Tue, 05 Dec 2023 14:30:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWRa-0002hz-R8; Tue, 05 Dec 2023 14:30:38 +0000
Received: by outflank-mailman (input) for mailman id 647961;
 Tue, 05 Dec 2023 14:30: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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAWRZ-0000ZF-6A
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:30:37 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id da729a70-937a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 15:30:35 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c0873cf84so30768645e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:30:35 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 n10-20020a05600c4f8a00b0040b4b2a15ebsm18736978wmq.28.2023.12.05.06.30.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 06:30:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da729a70-937a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701786635; x=1702391435; 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=As6pafrDewdwd74baYtQQACTLUGczckFKgBD8E77da0=;
        b=kb9R3bOYU4wmCMs9GF9i+PymeXTappG1jAb0mfavg0tfItuso72gSdl4biqoTeBgqR
         Ok1uiHiQKd7CMyA0FkD0K3Dw01kAwkKP88nXIN+n4+2l1GU42M8E++hBBnR/K0BAxUdm
         mlfMg98ZDMU+//VD1trswwuhsXlYByZVnQslQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701786635; x=1702391435;
        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=As6pafrDewdwd74baYtQQACTLUGczckFKgBD8E77da0=;
        b=G+kUjDpiGSiXDr1KV2d8ORvxMw6MFUMKqdqBWGhoHMIb2OJkLVMduFTNVxMH9u9li6
         XYHR2uSosm01pMdGRKxeRNzLYIZJCjpCwWGg+awTu6GlOUrYvwX7WiW9jfJD9YniZnF+
         m79GjvQtqztRTBlFhGhRGkNd2Ooi1y0f2vC5ybevBbusuJkc4tvAto9wp+8WvdxJB3q/
         WZmZxbuIq/Y0XJyfzhxily4D6TYYNI31oMJIBUjdrjSs9E/van482H6JV1Xq4hpOhDEi
         UhpWtbMcfm5AsysnKaQ6gktjPVTOXXNcT9L9u9vRxgbKwIM5fJTUnSSVpsEPjHUC45sw
         UNmg==
X-Gm-Message-State: AOJu0YxMHkyq+wdVryy1qrCftvJJ1GBLM41SRy/3E3bxBy5tKyjmelXr
	bdccIW4LV/foPWbRbqwa6lbRUw==
X-Google-Smtp-Source: AGHT+IE+FfmlLUFlpjq5XT0UuSzGs8n67PWdYn2FROaxRpQrkQJU4mFjkJEpw1+++PexJfOoCEpMcw==
X-Received: by 2002:a05:600c:16d3:b0:40b:5e59:c55f with SMTP id l19-20020a05600c16d300b0040b5e59c55fmr592412wmn.137.1701786635114;
        Tue, 05 Dec 2023 06:30:35 -0800 (PST)
Date: Tue, 5 Dec 2023 15:30:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Kevin Tian <kevin.tian@intel.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 1/6] iommu/vt-d: do not assume page table levels for
 quarantine domain
Message-ID: <ZW80CvsRqXcM1s-b@macbook>
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-2-roger.pau@citrix.com>
 <a9ca40d5-3546-46a4-ab56-3b190b1e4e93@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <a9ca40d5-3546-46a4-ab56-3b190b1e4e93@suse.com>

On Tue, Dec 05, 2023 at 03:24:46PM +0100, Jan Beulich wrote:
> On 04.12.2023 10:43, Roger Pau Monne wrote:
> > Like XSA-445, do not assume IOMMU page table levels on VT-d are always set
> > based on DEFAULT_DOMAIN_ADDRESS_WIDTH and instead fetch the value set by
> > intel_iommu_hwdom_init() from the domain iommu structure.  This prevents
> > changes to intel_iommu_hwdom_init() possibly getting the levels out of sync
> 
> In both cases, don't you mean intel_iommu_domain_init() instead? Only if

Indeed, sorry.

> so
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> (and happy to adjust while committing).

Thanks.

> Otherwise I must be missing something.

No, you are right.

Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:32:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:32:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647966.1011789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWTK-0004Qa-82; Tue, 05 Dec 2023 14:32:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647966.1011789; Tue, 05 Dec 2023 14:32:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWTK-0004QT-5Z; Tue, 05 Dec 2023 14:32:26 +0000
Received: by outflank-mailman (input) for mailman id 647966;
 Tue, 05 Dec 2023 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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAWTI-0004OY-BH
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:32:24 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 19f24e8c-937b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 15:32:22 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c09dfd82aso32991275e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:32:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fs16-20020a05600c3f9000b0040b48690c49sm18755684wmb.6.2023.12.05.06.32.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 06:32:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19f24e8c-937b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701786741; x=1702391541; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=OHiMdy4DcrJJeUBwh3/rr8HVIg98TVae8pErAvC54dg=;
        b=UfmhQjPG7KCDHQBFWkRYPDCGWMaR8Ibjk5ZfcjJaxIhNwtFdbeiAIN5Nmu6arZclQK
         jeEqYFqNZIMGCqw4lsaGOAUgcVTSrFKsDLaF1PNgxkf3ARMnlADCik0VrPEdHsRWrlmM
         9YVOWBrmYhNY7bshR8pSQIeL0P/2rRIkFGeYCo2vFkXUesxeur8amgYm/LS5hYEtt+rf
         Ruch1g4CErjjrenXOro5iblvA6SXn4pgLOQ5WsyS1p3U9OvDu7hMDi0w9izk/PfK8q+h
         clhxWLIUPaJxMJ0wquV/WTeFxuTQIiVEWsssR9oX05hTkf6tSdXm0y0SVAN6qhPf7Q1u
         rTHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701786741; x=1702391541;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=OHiMdy4DcrJJeUBwh3/rr8HVIg98TVae8pErAvC54dg=;
        b=D5ssrrInJamKbPjBIC9LeugxTHY8AbrsaMhF9N1Tg5j0963sEJWrtMZ3KF9vSixrgd
         m3aqKLgJFR0OpbdtHZp0mU+sexUcyol1aFF3DYmmgo68qE8yAKZmnIRqBEZ2n3gNaHXW
         uH3xzqsZ88QUP35awQTzne1SaCBWuPcJ7bRppklTtXuj2QdTBN8moTa/JZjD7FXGnj56
         Y5vwlg5+1wA8Wln00xT8niJGPaSsOr8vxWF02fx1jXO7JR+BITqgTpgzEsHHY/m0ebIY
         qx2LhRlaaHObZZAiaeWXySAKCb9GiVNnyGpeAeGSDRPe93CM7SzqFmTxjfKNa57E8iRQ
         8NQQ==
X-Gm-Message-State: AOJu0Yx2F3kgJj5xTmZkVHIcdEZiYbzDOcslpwBNmBymq24PHRfkEsz9
	Li9+TsbCi/3VsEQEnBTAfBe0
X-Google-Smtp-Source: AGHT+IHFIYD9UYy9TTUZh2nIbQFodeoBDcug+4VoP/FdWbPzkJOnYMkWosg/C7gxsVakQ4rJf7jDSw==
X-Received: by 2002:a05:600c:2d4c:b0:40b:5e21:dd31 with SMTP id a12-20020a05600c2d4c00b0040b5e21dd31mr617919wmg.95.1701786741666;
        Tue, 05 Dec 2023 06:32:21 -0800 (PST)
Message-ID: <17de355f-623f-4310-ac55-df028235c240@suse.com>
Date: Tue, 5 Dec 2023 15:32:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/6] amd-vi: set IOMMU page table levels based on guest
 reported paddr width
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-3-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231204094305.59267-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 10:43, Roger Pau Monne wrote:
> --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
> +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
> @@ -359,21 +359,17 @@ int __read_mostly amd_iommu_min_paging_mode = 1;
>  static int cf_check amd_iommu_domain_init(struct domain *d)
>  {
>      struct domain_iommu *hd = dom_iommu(d);
> +    int pglvl = amd_iommu_get_paging_mode(
> +                PFN_DOWN(1UL << paging_max_paddr_bits(d)));

This is a function in the paging subsystem, i.e. generally inapplicable
to system domains (specifically DomIO). If this is to remain this way,
the function would imo need to gain a warning. Yet better would imo be
if the function was avoided for system domains.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:38:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:38:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647972.1011800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWZ1-00011T-SW; Tue, 05 Dec 2023 14:38:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647972.1011800; Tue, 05 Dec 2023 14:38:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWZ1-00011M-PV; Tue, 05 Dec 2023 14:38:19 +0000
Received: by outflank-mailman (input) for mailman id 647972;
 Tue, 05 Dec 2023 14:38:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=UsGn=HQ=arndb.de=arnd@srs-se1.protection.inumbo.net>)
 id 1rAWZ1-000110-6o
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:38:19 +0000
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com
 [66.111.4.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed504641-937b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 15:38:17 +0100 (CET)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailout.nyi.internal (Postfix) with ESMTP id 3D8DE5C0209;
 Tue,  5 Dec 2023 09:38:16 -0500 (EST)
Received: from imap51 ([10.202.2.101])
 by compute5.internal (MEProxy); Tue, 05 Dec 2023 09:38:16 -0500
Received: by mailuser.nyi.internal (Postfix, from userid 501)
 id C846FB60089; Tue,  5 Dec 2023 09:38:15 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed504641-937b-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc
	:cc:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:sender
	:subject:subject:to:to; s=fm3; t=1701787096; x=1701873496; bh=Jz
	SQDIO6qim20VuN8EwfbXBLlFnW70R5EUY7HAWzpiM=; b=qawVeVS6xrHMp2gZSM
	RJL7RWYr7Jfwjhzp7770sWfPpRMcK+oA4jU0GmeFcG/5k4nPUQ1sInde09tLS4S8
	ZNn639ozsQBUw4rlMnoeoBkzt7utAb4QnF1od+CyLgrt7vXLi8ahzphsGJ1FxAK1
	L0/Qjgxjl4DxtL7SOZWE23EuQ9R8y5Q6QcZTsjj/osgIRjfLDZFh+RJ6SDczGYYe
	1tjxiaTT6t2VHUcMNF/VdCSorqHu6Nr0gW+QwFfUW4YAhTZ8TiZ22h6NoqStc+8h
	anrTEJ3OsqspNU5lXL46DPDW6+Sxby6zvcB0r+qgXkMS26935sLr5BsEAl+H8AMm
	nHqQ==
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:sender:subject
	:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm1; t=1701787096; x=1701873496; bh=JzSQDIO6qim20
	VuN8EwfbXBLlFnW70R5EUY7HAWzpiM=; b=JJT2uJMYPxypTbmIoX4H1xdC0VTA+
	uI0trRIkPzrd7uFKCqSCPFjATHrpKph+UuEMmUYFSapbOspNe4mQzir08FCyFaSy
	LPqxgDc+T4C+7mTGBFgniUtKxfiyTGeaCFbecePSfXX7UolbGqMp8pXyCdzuqI0a
	ql8LuU8jseYg0dG7jDyj4LINzTnKU3m1vbCSEjzmClmn8xGfdEhde5E67Y6V5Gqo
	A+iKbhGxlhQY12BxBG8Zc/JXn+nfhucRvUlcKQz+uBjm5Gu05kPEDI2XXWNjH8+c
	Zm/3ROfz8/288qkolU6wHTXlyKLXk1vXW8ihudniI7l44pp3I3hUHHCDg==
X-ME-Sender: <xms:1zVvZbL_0OZ_UXFhXj83wFVrIOkzlYfXKlYP7rWfefffmViEXeUf4g>
    <xme:1zVvZfLmxGhgOYShtSrWa3R8fzfMNlLLs7B5W-RETWQlDPm40goSlNI1yQMiA4uTa
    zJzw_Zokl-2_oO2OPU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudejkedgieehucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepofgfggfkjghffffhvfevufgtsehttdertderredtnecuhfhrohhmpedftehr
    nhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnuggsrdguvgeqnecuggftrfgrth
    htvghrnhepffehueegteeihfegtefhjefgtdeugfegjeelheejueethfefgeeghfektdek
    teffnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprg
    hrnhgusegrrhhnuggsrdguvg
X-ME-Proxy: <xmx:1zVvZTsZzD00lF9uPwQgejXWLcMeMOJHxyfvkuWmyxjxjxVen5SFJg>
    <xmx:1zVvZUYs2V85sbuGIK79txnUMhyf8eRkAMKJHCZfZ6bWBpKJldNKog>
    <xmx:1zVvZSaCCq6Zq-3qgHdh_ktHFNzb6Z1ctPlvdBzmp_m8bAYW8M5p3Q>
    <xmx:2DVvZZzKccXQ7PfTE51p8P7Lz_t0e9652_J5wbmgAiZbQX1s-8v2Hg>
Feedback-ID: i56a14606:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.9.0-alpha0-1178-geeaf0069a7-fm-20231114.001-geeaf0069
MIME-Version: 1.0
Message-Id: <ab8c9daa-9543-4aed-85f7-69febd85aeb9@app.fastmail.com>
In-Reply-To: <fcdab8c1-b0ea-4d7a-943e-2180b13234fd@xen.org>
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
 <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
 <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
 <5a05e194-28d1-409d-9f45-ca4de0fc78c8@app.fastmail.com>
 <fcdab8c1-b0ea-4d7a-943e-2180b13234fd@xen.org>
Date: Tue, 05 Dec 2023 15:37:53 +0100
From: "Arnd Bergmann" <arnd@arndb.de>
To: "Julien Grall" <julien@xen.org>, "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 "George Dunlap" <george.dunlap@citrix.com>,
 "Stefano Stabellini" <sstabellini@kernel.org>, "Wei Liu" <wl@xen.org>,
 "Juergen Gross" <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all architectures
Content-Type: text/plain

On Tue, Dec 5, 2023, at 15:19, Julien Grall wrote:
> On 05/12/2023 14:10, Arnd Bergmann wrote:
>> On Tue, Dec 5, 2023, at 15:01, Julien Grall wrote:
>>> On 05/12/2023 13:59, Jan Beulich wrote:
>>>> On 05.12.2023 14:46, Julien Grall wrote:
>> This would repeat the mistake that we had in Linux in the
>> past (and still do in some drivers): Simply dereferencing
>> a misaligned pointer is always a bug, even on architectures
>> that have efficient unaligned load/store instructions,
>> because C makes this undefined behavior and gcc has
>> optimizations that assume e.g. 'int *' to never have
>> the lower two bits set [1].
>
> Just to clarify, I haven't suggested to use 'int *'. My point was more 
> that I don't think that the helpers would work as-is on arm32 because
> even if the ISA allows a direct access, we are setting the bit in SCTLR 
> to disable unaligned access.
>
> As Juergen is proposing a common header, then I could ask him to do the 
> work to confirm that the helpers properly work on arm32. But I think 
> this is unfair.

When I introduced the helpers in Linux, I showed that these
produce the best output on all modern compilers (at least gcc-5,
probably earlier) for both architectures that allow unaligned
access and for those that don't. We used to have architecture
specific helpers depending on what each architecture could
do, but all the other variants we had were either wrong or
less efficient.

If for some reason an Arm system is configured to trap
all unaligned access, then you must already pass
-mno-unaligned-access to the compiler to prevent certain
optimizations, and then the helpers will still behave
correctly (the same way they do on armv5, which never has
unaligned access). On armv7 with -munaligned-access, the
same functions only prevent the use of stm/ldm and strd/ldrd
but still use ldr/str.

     Arnd


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:43:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:43:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647976.1011810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWdv-0005iF-Fl; Tue, 05 Dec 2023 14:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647976.1011810; Tue, 05 Dec 2023 14:43:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWdv-0005i8-Bh; Tue, 05 Dec 2023 14:43:23 +0000
Received: by outflank-mailman (input) for mailman id 647976;
 Tue, 05 Dec 2023 14: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=cmhw=HQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAWdu-0005i2-Aq
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:43:22 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2b68f23-937c-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 15:43:21 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c09fcfa9fso27453005e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:43:21 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 bg36-20020a05600c3ca400b003fe1fe56202sm19205399wmb.33.2023.12.05.06.43.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 06:43:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2b68f23-937c-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701787400; x=1702392200; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AVqXJd8SoXzjXF1oteqKlI3xNcd39qeXf1oX7YvYlR0=;
        b=vCNoyytxohepsrU+bjKf0Ae2R0fLVRXTlHVAHRf2eyxJo/w1mcq+GNjFOvPX13MZtX
         mB7fEZ9em8XW3UTKXgdJYIM1sq3dXhISFKcm+rBegK0bwNpH/8HPFnqp7l4ihDwbVYUx
         b7H59ap4w1+kqmYtE2vIpEf1zymJNqlBqjIhg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701787400; x=1702392200;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=AVqXJd8SoXzjXF1oteqKlI3xNcd39qeXf1oX7YvYlR0=;
        b=Dl8wPw4m+QUgtSroAgtN0yoD4PCPNfGQOZBmHR9fJFfGWygp8pDPUy2gPiWq0uCt53
         s+CWDGjfgS5av+aw5rUPUbvGmn9HUqa+jPKv5PK9B8da60xeCSv6q2inSMk2tnP4u4Bp
         lnnbACLi0xfHChEwqQV1cAR+D/BrM9H9JhhZtzPiRd9OEjOFGK6SGYkmYDTykgWzXFHE
         mbNPVIbk+asYxPGo91V9Yg0VbcBRnuEhCKohnNgVDhmyN8qYojlxobC5/MyTXeteax+B
         QjVYPKBtqahPiW5SNcpnI5oDTwTZwFbK4EWEpqVt2o2TvKi9N7fh+Si3dsI2+hQmWBJL
         b3Mw==
X-Gm-Message-State: AOJu0YxmyrxODX16rrXPsYOEk+uI+hrAifM2aIqS9JcZ5xP05FY+MX25
	yU9qK5UvxZrWQsB7Y3dbKZJGYw==
X-Google-Smtp-Source: AGHT+IFL5yenk8V+e6+S1qVJol+vTZKt96nMmA6xbrxhA/zmfrysAHgn94N6ADEuFIF6eJUHxs6KbQ==
X-Received: by 2002:a1c:7418:0:b0:40b:5e59:f726 with SMTP id p24-20020a1c7418000000b0040b5e59f726mr1690182wmc.152.1701787400518;
        Tue, 05 Dec 2023 06:43:20 -0800 (PST)
Message-ID: <1415ddc9-81f3-4d50-b735-7e44a7f656d5@citrix.com>
Date: Tue, 5 Dec 2023 14:43:19 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG] Nested Virtualization Bug on x86-64 AMD CPU
Content-Language: en-GB
To: Reima ISHII <ishiir@g.ecc.u-tokyo.ac.jp>, xen-devel@lists.xenproject.org
Cc: Takahiro Shinagawa <shina@ecc.u-tokyo.ac.jp>
References: <CA+aCS-Ha4jSYFfxhOwMGiGJPdCOtgBJLt=3Q=v9dfp6SQJys4w@mail.gmail.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <CA+aCS-Ha4jSYFfxhOwMGiGJPdCOtgBJLt=3Q=v9dfp6SQJys4w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/12/2023 1:51 pm, Reima ISHII wrote:
> Dear Xen Development Team,
>
> I am writing to report a bug that I have encountered in a Xen HVM
> guest with nested virtualization.
> Below is a detailed description of the bug, its potential impact, and
> the environment in which it was observed.
>
> [Bug Description]
> The issue emerges when operating an HVM guest with nested
> virtualization on an x86-64 AMD CPU, specifically in 64-bit mode (Long
> Mode). The sequence to reproduce the bug is as follows:
>
> 1. Enable nestedhvm on an HVM guest.
> 2. In the L1 guest hypervisor, set CR0.PE, PG to 1 in VMCB12 and
> execute  VMRUN, correctly resulting in a VM entry into the L2 guest.
> 3. In the L2 guest, perform a vmcall, which returns control back to
> the L1 hypervisor.
> 4. Subsequently, while still in 64-bit mode, the L1 hypervisor just
> changes the CR0.PG to 0 in VMCB12 and then executes VMRUN.

Thankyou for the bug report.

Who is still in 64-bit mode ?

It is legal for a 64-bit L1 to VMRUN into a 32-bit L2 with PG=0.

But I'm guessing that you mean L2 is also 64-bit, and we're clearing PG,
thus creating an illegal state (LMA=1 && PG=0) in VMCB12.

And yes, in that case (virtual) VMRUN at L1 ought to fail with
VMEXIT_INVALID.

>
> It is this specific action - executing VMRUN with CR0.PG set to 0 in
> Long Mode - that triggers the BUG() within the
> nsvm_vmcb_guest_intercepts_exitcode function in
> arch/x86/hvm/svm/nestedsvm.c.
> For an unknown reason, a vmexit occurs with the code 0x402, which is
> flagged as an illegal exitcode, thus triggering the BUG().
>
> [Potential Impact]
> This bug presents a vulnerability that could allow a DoS attack from
> the guest VM to the host hypervisor.
>
> [Environment Details]
> Here are the specs of the environment where the bug occurred:
> - Xen Version: Xen-4.18-unstable (commit
> 290f82375d828ef93f831a5ef028f1283aa1ea47)
> - Architecture: x86_64 (intel)
>
> [Error Log]
> (XEN) d1v0 Unexpected nested vmexit: reason 0x66
> (XEN) d1v0 Unexpected nested vmexit: reason 0x7b
> (XEN) d1v0 Unexpected nested vmexit: reason 0x7b
> (XEN) d1v0 Unexpected nested vmexit: reason 0x7b
> (XEN) d1v0 Unexpected nested vmexit: reason 0x7b
> (XEN) arch/x86/hvm/svm/nestedsvm.c:982:d1v0 Illegal exitcode 0x402
> (XEN) Xen BUG at arch/x86/hvm/svm/nestedsvm.c:983
> (XEN) Debugging connection not set up.
> (XEN) ----[ Xen-4.18-unstable  x86_64  debug=y gcov=y  Tainted:   C    ]----
> (XEN) CPU:    10
> (XEN) RIP:    e008:[<ffff82d0402997b8>]
> arch/x86/hvm/svm/nestedsvm.c#nsvm_vmcb_guest_intercepts_exitcode+0x29e/0x4c1
> (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor (d1v0)
> (XEN) rax: ffff830839bdd040   rbx: ffff83084f593000   rcx: 0000000000000008
> (XEN) rdx: ffff830839bd7fff   rsi: ffff830839be5da8   rdi: ffff830839be5da0
> (XEN) rbp: ffff830839bd7e48   rsp: ffff830839bd7e30   r8:  0000000000000001
> (XEN) r9:  ffff830839be5da0   r10: 0000000000000001   r11: 0000000000000010
> (XEN) r12: ffff83084f593000   r13: ffff83084f583000   r14: ffff83084f593000
> (XEN) r15: 0000000000000001   cr0: 000000008005003b   cr4: 0000000000f506e0
> (XEN) cr3: 000000084f6d4000   cr2: 0000000000000000
> (XEN) fsb: 0000000000000000   gsb: ffff888490140000   gss: 0000000000000000
> (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
> (XEN) Xen code around <ffff82d0402997b8>
> (arch/x86/hvm/svm/nestedsvm.c#nsvm_vmcb_guest_intercepts_exitcode+0x29e/0x4c1):
> (XEN)  48 83 05 e0 ee 3b 00 01 <0f> 0b 48 83 05 de ee 3b 00 01 48 83 05 96 ee 3b
> (XEN) Xen stack trace from rsp=ffff830839bd7e30:
> (XEN)    0000000000000402 ffff83084f593000 ffff83084f583000 ffff830839bd7e70
> (XEN)    ffff82d04029b052 0000000000000402 ffff830839bd7ef8 ffff83084f583000
> (XEN)    ffff830839bd7ee8 ffff82d0402a1121 ffff82d0402a4afa ffff82d0402a4b00
> (XEN)    ffff82d0402a4afa ffff82c0002d8000 ffff82d0402a4afa ffff82d0402a4b00
> (XEN)    ffff82d0402a4afa ffff82d0402a4b00 ffff83084f593000 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000 00007cf7c64280e7
> (XEN)    ffff82d0402a4b4c 0000000000000000 0000000000000000 0000000000000000
> (XEN)    0000000000000000 000000001f4604f7 0000000000000006 0000000000000000
> (XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000002040
> (XEN)    00000000000004f7 0000000000000000 0000000000000000 000000001f467473
> (XEN)    0000beef0000beef 000000000000ffff 000000bf0000beef 0000000000000082
> (XEN)    0000000000000c62 000000000000beef 000000000000beef 000000000000beef
> (XEN)    00000000ffffbeef 000000000000beef 0000e0100000000a ffff83084f593000
> (XEN)    00000037f95a2000 0000000000f506e0 0000000000000000 0000000000000000
> (XEN)    0000030300000000 0000000000000000
> (XEN) Xen call trace:
> (XEN)    [<ffff82d0402997b8>] R
> arch/x86/hvm/svm/nestedsvm.c#nsvm_vmcb_guest_intercepts_exitcode+0x29e/0x4c1
> (XEN)    [<ffff82d04029b052>] F nestedsvm_check_intercepts+0x29/0x214
> (XEN)    [<ffff82d0402a1121>] F svm_vmexit_handler+0x351/0x2502
> (XEN)    [<ffff82d0402a4b4c>] F svm_stgi_label+0x5/0x15
> (XEN)
> (XEN) debugtrace_dump() global buffer starting
> 1 cpupool_create(pool=0,sched=6)
> 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
> 3 cpupool_add_domain(dom=0,pool=0) n_dom 1 rc 0
> 4-14 p2m: p2m_alloc_table(): allocating p2m table
> 15 cpupool_add_domain(dom=1,pool=0) n_dom 2 rc 0
> (XEN) wrap: 0
> (XEN) debugtrace_dump() global buffer finished
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 10:
> (XEN) Xen BUG at arch/x86/hvm/svm/nestedsvm.c:983
> (XEN) ****************************************
> (XEN)

As an incidental observation, that function is particularly absurd and
the two switches should be merged.

VMExit reason 0x402 is AVIC_NOACCEL and Xen has no support for AVIC in
the slightest right now.Â  i.e. Xen shouldn't have AVIC active in the
VMCB, and should never any AVIC related VMExits.

It is possible that we've got memory corruption, and have accidentally
activated AVIC in the VMCB.

But, is this by any chance all running nested under KVM in your fuzzer?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:50:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:50:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647980.1011819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWl7-0000b4-8b; Tue, 05 Dec 2023 14:50:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647980.1011819; Tue, 05 Dec 2023 14:50:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWl7-0000ax-62; Tue, 05 Dec 2023 14:50:49 +0000
Received: by outflank-mailman (input) for mailman id 647980;
 Tue, 05 Dec 2023 14:50:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAWl5-0000ar-LL
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:50:47 +0000
Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com
 [2a00:1450:4864:20::444])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id abfd4d7a-937d-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 15:50:46 +0100 (CET)
Received: by mail-wr1-x444.google.com with SMTP id
 ffacd0b85a97d-3332ad5b3e3so4107691f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:50:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 u29-20020adfa19d000000b003332db7d91dsm13280602wru.39.2023.12.05.06.50.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 06:50:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abfd4d7a-937d-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701787846; x=1702392646; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=7qLqTbRP5u4rxG8SX4Y7wH/O9oBeBnRlY48dCWEpWlk=;
        b=G8gxEwynstU/rUldO6G2DETFaYqh5HK26Y5yZ6G9GRUR3qOxX/+O51B47rEXfneANA
         Jp3b9lfewJrwRWt2KRKW6wvqTHAWl9Ra27xVIo/GLxF8nThTaekJSY/iN187XzJ4gVB3
         hscugi5ExMr7h2GdmVBST0Plyn63cnTpXD4f1NMdMjFcJXqSSO+rw19SYpMSDh10hbIx
         ln2Xq+1z1HMW28HBCRzhvJJUSVudRYK7xu33zlvkKcRGo52J6jUM1nLLCRI0H96kYNrJ
         fPgVANDI3vcn+JrCoz+jbUdODsYbbMhNnZi+pD0Xvgb6rHOiQYRZzYjGYtKN0kck0Z9W
         IsKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701787846; x=1702392646;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=7qLqTbRP5u4rxG8SX4Y7wH/O9oBeBnRlY48dCWEpWlk=;
        b=tO0zhoB4r8+yHiodVPf0CRZm29VEFiSvQaRG2yIyb+YiLLe0fyBRNq6B5pVNttT1z0
         y5gE0R+FyVfaJFR3wjBqfstezRXO0j5eAnxBRSCfOvWA7/fWYbhwNr6k9pg1BmyePbTC
         Pbap8g28Hf/2Uyo54ex/yIkQ+X8nCH3LPAPsJwixYS1EZBu3wt7+yX+3uLuYZCrEwZAx
         GJ0jeuDidZPid4pEDSSLreYA5slIb6v6xXAY4G+ah3gEtPC3G5W7tlb2f9EESGsclijR
         SxSXsZYCgvUwQKcKKFVkAYZHbl7FY/24Sc91GL8QTg5uy7F3Fbi8KsDGQK+rscZ7xdDg
         jG0g==
X-Gm-Message-State: AOJu0Yw0ULHPRB/B7zDCoY1mZ/wYmNrtpVd78CTA948VkSZPVUkDGzni
	aWhMWLnzJvOeSTF+wtjjJbgj
X-Google-Smtp-Source: AGHT+IFe1bpUVLYeBfF+eKFEPox/PE8MtVE41c2XzupOVJ2XIZ9Ix6NsnTJe2KfwpYi+VEijJ8Hwsg==
X-Received: by 2002:a5d:4b42:0:b0:333:7c5:560d with SMTP id w2-20020a5d4b42000000b0033307c5560dmr4735446wrs.10.1701787845639;
        Tue, 05 Dec 2023 06:50:45 -0800 (PST)
Message-ID: <93b57f96-e47e-493b-b0f4-a8183ba8466f@suse.com>
Date: Tue, 5 Dec 2023 15:50:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/6] x86/iommu: introduce a rangeset to perform hwdom
 IOMMU setup
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-4-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231204094305.59267-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 10:43, Roger Pau Monne wrote:
> This change just introduces the boilerplate code in order to use a rangeset
> when setting up the hardware domain IOMMU mappings.  The rangeset is never
> populated in this patch, so it's a non-functional change as far as the mappings
> the domain gets established.
> 
> Note there's a change for HVM domains (ie: PVH dom0) that will get switched to
> create the p2m mappings using map_mmio_regions() instead of
> p2m_add_identity_entry(), so that ranges can be mapped with a single function
> call if possible.  Note that the interface of map_mmio_regions() doesn't allow
> creating read-only mappings, but so far there are no such mappings created for
> PVH dom0 in arch_iommu_hwdom_init().

I don't understand this paragraph: The rangeset remains empty, so nothing is
changing right here. DYM there is going to be such a change as a result of
this patch, but in a later part of this series?

> --- a/xen/drivers/passthrough/x86/iommu.c
> +++ b/xen/drivers/passthrough/x86/iommu.c
> @@ -370,10 +370,77 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
>      return perms;
>  }
>  
> +struct map_data {
> +    struct domain *d;
> +    unsigned int flush_flags;
> +    bool ro;
> +};
> +
> +static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
> +                                              void *data)
> +{
> +    struct map_data *info = data;
> +    struct domain *d = info->d;
> +    long rc;
> +
> +    if ( iommu_verbose )
> +        printk(XENLOG_INFO " [%010lx, %010lx] R%c\n",
> +               s, e, info->ro ? 'O' : 'W');
> +
> +    if ( paging_mode_translate(d) )
> +    {
> +        if ( info->ro )
> +        {
> +            ASSERT_UNREACHABLE();
> +            return 0;
> +        }
> +        while ( (rc = map_mmio_regions(d, _gfn(s), e - s + 1, _mfn(s))) > 0 )
> +        {
> +            s += rc;
> +            process_pending_softirqs();
> +        }
> +    }
> +    else
> +    {
> +        const unsigned int perms = IOMMUF_readable | IOMMUF_preempt |
> +                                   (info->ro ? 0 : IOMMUF_writable);
> +
> +        if ( info->ro && !iomem_access_permitted(d, s, e) )

How is r/o-ness related to iomem_access_permitted()? The present callers
are such that there is a connection, but that's invisible here. I guess
either the field wants to change name (maybe mmio_ro or ro_mmio or even
just mmio), or there wants to be a comment.

> +        {
> +            /*
> +             * Should be more fine grained in order to not map the forbidden
> +             * frame instead of rejecting the region as a whole, but it's only
> +             * for read-only MMIO regions, which are very limited.
> +             */

How certain are you/we that no two adjacent ones may appear, with
different permissions granted to Dom0?

> +            printk(XENLOG_DEBUG
> +                   "IOMMU read-only mapping of region [%lx, %lx] forbidden\n",
> +                   s, e);
> +            return 0;
> +        }
> +        while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
> +                                perms, &info->flush_flags)) > 0 )
> +        {
> +            s += rc;
> +            process_pending_softirqs();
> +        }
> +    }
> +    ASSERT(rc <= 0);
> +    if ( rc )
> +        printk(XENLOG_WARNING
> +               "IOMMU identity mapping of [%lx, %lx] failed: %ld\n",
> +               s, e, rc);
> +
> +    /* Ignore errors and attempt to map the remaining regions. */
> +    return 0;
> +}
> +
>  void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>  {
>      unsigned long i, top, max_pfn, start, count;
>      unsigned int flush_flags = 0, start_perms = 0;
> +    struct rangeset *map;
> +    struct map_data map_data = { .d = d };
> +    int rc;
>  
>      BUG_ON(!is_hardware_domain(d));
>  
> @@ -397,6 +464,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>      if ( iommu_hwdom_passthrough )
>          return;
>  
> +    map = rangeset_new(NULL, NULL, 0);
> +    if ( !map )
> +        panic("IOMMU init: unable to allocate rangeset\n");
> +
>      max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
>      top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
>  
> @@ -451,6 +522,24 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>              goto commit;
>      }
>  
> +    if ( iommu_verbose )
> +        printk(XENLOG_INFO "d%u: identity mappings for IOMMU:\n",
> +               d->domain_id);

%pd: ?

> +    rc = rangeset_report_ranges(map, 0, ~0UL, identity_map, &map_data);
> +    if ( rc )
> +        panic("IOMMU unable to create mappings: %d\n", rc);
> +    if ( is_pv_domain(d) )
> +    {
> +        map_data.ro = true;
> +        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, identity_map,
> +                                    &map_data);
> +        if ( rc )
> +            panic("IOMMU unable to create read-only mappings: %d\n", rc);
> +    }
> +
> +    rangeset_destroy(map);

This could move up, couldn't it?

>      /* Use if to avoid compiler warning */
>      if ( iommu_iotlb_flush_all(d, flush_flags) )

Don't you need to fold map.flush_flags into flush_flags ahead of this call?
Or can the variable perhaps go away altogether, being replaced by the struct
field?

Jan

>          return;



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:57:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:57:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647983.1011829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWrQ-0005Bh-V8; Tue, 05 Dec 2023 14:57:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647983.1011829; Tue, 05 Dec 2023 14:57:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWrQ-0005Ba-SD; Tue, 05 Dec 2023 14:57:20 +0000
Received: by outflank-mailman (input) for mailman id 647983;
 Tue, 05 Dec 2023 14:57:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAWrP-0005A8-79
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:57:19 +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 959efb9d-937e-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 15:57:18 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c09fcfa9fso27673775e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:57:18 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 b18-20020a05600c4e1200b0040c08567bbfsm9915485wmq.17.2023.12.05.06.57.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 06:57:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 959efb9d-937e-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701788237; x=1702393037; 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=LhWNLMI9HZCvwXp4Qw5+sLm0Bub/kktsD695PWMtSUM=;
        b=MJ+hbWkjRrQvsbe88rAC0uxJDcm2laUf8zmoBG+BpgNI89/bLq2AdS4y88vg/4JjpT
         Yax4Nd2s6Qp6ul3/cmz0um12Sy8cN6DctGe0tVOGlw+8A3wBO6jPCgUDMTQeWPNUhCOn
         8PnxjtG0x8OJcRFgA1LF+yjlg9LD6W7OigwQ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701788237; x=1702393037;
        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=LhWNLMI9HZCvwXp4Qw5+sLm0Bub/kktsD695PWMtSUM=;
        b=ErOwPyDooWL0XPEN1ycRmCX7XKG6mxM5SiWwcvlToX/BGk3yEI6wDf5WDrUKXIV3o4
         /62NfdoErh4jLlYWu2U2WtoiUFwTxy8Pbsx4OSUEc5hiEv2/TBdtXOTlXzPzo2pZHpwP
         zYNSVpJLJs2AgEzDpbSW+rUxi5PyvfUia2QLUE7qoAr2xOJw9+IMV6FgcGSw3KMtQTDv
         ykK/+HPPhIfI2lQ009YaUV7BjGFhDnphrCcI1jgfbwiSfwqSkP98inMdWRW27wqBqT73
         zU+vpgKmuzHIBRQk2AS8FIEe5Myb2Hf1dVdG7d+wO6ckYJJlowjQhlCj2KdgbOyOWWEB
         bNYQ==
X-Gm-Message-State: AOJu0Yx6Awfeq3QZ18OH5D3zudmb4+HRrapnHYAhRAFlfUOjr76y6a9P
	jsyk3cO9T/viZY63sAWk8yQxPA==
X-Google-Smtp-Source: AGHT+IGdZxHzOptDmk3tRctP7cFJD7MwbM8IbU4luEXXtih+JknSGHbxi6HWMnHAyfx/a58lYr1rSQ==
X-Received: by 2002:a05:600c:3515:b0:40b:5e22:2de with SMTP id h21-20020a05600c351500b0040b5e2202demr1867399wmq.74.1701788237621;
        Tue, 05 Dec 2023 06:57:17 -0800 (PST)
Date: Tue, 5 Dec 2023 15:57:16 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: Re: [PATCH] livepatch-build-tools: allow livepatching version.c
Message-ID: <ZW86TOTFn3JZswUO@macbook>
References: <20231205123403.63813-1-roger.pau@citrix.com>
 <824c50c3-ad3f-4d97-a3e8-5343564cbde5@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <824c50c3-ad3f-4d97-a3e8-5343564cbde5@citrix.com>

On Tue, Dec 05, 2023 at 02:15:05PM +0000, Andrew Cooper wrote:
> On 05/12/2023 12:34 pm, Roger Pau Monne wrote:
> > Currently version.o is explicitly ignored as the file would change as a result
> > of the orignal and the patched build having possibly different dates and
> > times.
> >
> > Fix such difference by exporting the date and time from the build script, so
> > that both builds share the same build time.  This allows checking for changes
> > in version.c, since the rest of fields need to be manually changed in order to
> > produce different output.
> >
> > Setting XEN_BUILD_{DATE,TIME} as an environment variable has been supported
> > since before livepatch support was added to Xen, so it's safe to export those
> > variables unconditionally.
> >
> > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> >  livepatch-build | 4 ++++
> >  livepatch-gcc   | 2 --
> >  2 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/livepatch-build b/livepatch-build
> > index e2ccce4f7fd7..f622683fc56c 100755
> > --- a/livepatch-build
> > +++ b/livepatch-build
> > @@ -417,6 +417,10 @@ if [ "${SKIP}" != "build" ]; then
> >  
> >      export CROSS_COMPILE="${TOOLSDIR}/livepatch-gcc "
> >  
> > +    # Force same date and time to prevent unwanted changes in version.c
> > +    export XEN_BUILD_DATE=`LC_ALL=C date`
> > +    export XEN_BUILD_TIME=`LC_ALL=C date +%T`
> 
> Date is the one that goes wrong every time, but everything else in
> compile.h can go wrong in a way that causes version.o to change.

I've attempted to reflect that in "since the rest of fields need to be
manually changed in order to produce different output".

For those to change there must be some kind of environment change
between the original and the patched version build, and hence I don't
think that would be supported.

> Ideally, the pristine source for building livepatches would include a
> generated compile.h, and livepatch would have a way to force no
> regeneration of the header.Â  But I've got no idea how nice that would be
> to arrange.

Yes, no idea how fragile that would be either.  IMO the proposed
approach is not that bad.

> That way, you're using the same details as the Xen being patched, rather
> than hoping that two identical different details will cancel out in the
> binary diff.

Another option is to set all the env variables to disable any
build time probing.  However things like compiler or version changing
between the original and the patched builds likely point out to issues
elsewhere, unless it's intentional modification of the helpers.

> > +
> >      echo "Perform full initial build with ${CPUS} CPU(s)..."
> >      build_full
> >  
> > diff --git a/livepatch-gcc b/livepatch-gcc
> > index fcad80551aa0..e4cb6fb59029 100755
> > --- a/livepatch-gcc
> > +++ b/livepatch-gcc
> > @@ -33,7 +33,6 @@ if [[ "$TOOLCHAINCMD" =~ $GCC_RE ]] ; then
> >              obj=$2
> >              [[ $2 = */.tmp_*.o ]] && obj=${2/.tmp_/}
> >              case "$(basename $obj)" in
> > -            version.o|\
> >              debug.o|\
> >              check.o|\
> 
> Tangential question.Â  check.o is excluded because it's a toolchain test,
> but any idea what debug.o is doing in this list?
> 
> It can't possibly be the debug.c I've recently added to x86 (which we'll
> want to be able to livepatch), so I guess it's got something to do the
> ARM debug.S's, but I can't see anything in those that are worthy of
> exemption either...

Hm, that comes from the first commit that imported the wrapper to the
repository, and at that point only x86 had livepatch support.

I'm tempted to think this was inherited from the original xsplice
tooling, and so debug.o needs to be removed from the list.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 14:59:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 14:59:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647988.1011839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWtK-0000q3-9n; Tue, 05 Dec 2023 14:59:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647988.1011839; Tue, 05 Dec 2023 14:59:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWtK-0000pw-6x; Tue, 05 Dec 2023 14:59:18 +0000
Received: by outflank-mailman (input) for mailman id 647988;
 Tue, 05 Dec 2023 14:59:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAWtI-0000mR-6j
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 14:59:16 +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 db529335-937e-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 15:59:15 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-50bf4f97752so3094487e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 06:59:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 iv7-20020a05600c548700b00405959469afsm18907541wmb.3.2023.12.05.06.59.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 06:59:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db529335-937e-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701788354; x=1702393154; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=p9KlrpjUUVLnd/EEjtL8m/ZwmwonL3mRNYsh9nF13Vo=;
        b=W1lSZ3JoJGFNeigRl7hgOSoXIEotr5TxFwvxYD3SQIdWCLDCJMxmuB2IkcG10zkDUZ
         E3jlmzbmBbl2ysQe7QPHGQ1qivB+P34jJHjeqBTcXykHwqen6DTISHdiAwFhoqX5stlM
         1St3zA9ncQmE684ZvxdZIfGIDPIW0Cjt/ylbq1Mc2IGfkh41+Rhof141J4KBI5mf9nz2
         qPnVRmtEUxUllSNh5zdLjuVvuykxS6QLvI5y5Gyq3NYLalC5ZVUejjmzTq/XC0LQMyle
         89c9NZRXEUTv8G+viL0rkvE6dZsOwcnZBEdGPG09LRRNRh4DA7Gy7G8L0p6y9gxOxm6t
         Ae4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701788354; x=1702393154;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=p9KlrpjUUVLnd/EEjtL8m/ZwmwonL3mRNYsh9nF13Vo=;
        b=hNs4YC6lNYG5rYvD9UYwAj0nD3yCalVuDYWlOrtyqjjqUh7+OVyTOKU0+OzRa9RMhv
         uLYosql5fNFHtt/nUVOuQw/kaVadko7bUmUMnsxjt90r23m4bR4sGJ1HgzkmMOt/DlGG
         ADUKajONhoXl54I09nGPQBWGXcP56LMF1tO7v35j4JVE/hAMdLNuipUpciasEIgNJDkD
         NKvTnYnoP0hjbxMw3KA1RC4LkCEwEg6a3FUD2RIokxN9LDoxFLdycYiLlzLF7ZA1LNc4
         hMBjdwrVlePHFMasKKPTn9+qCi1+AZZLH9SKw22BZSzW5HCIWGS29cl38EfaVWLqorTU
         R+0g==
X-Gm-Message-State: AOJu0YwpjGaBZdBReo93E6SF7DFrFrcUuDBdEf1ADgTbJl6R/kIs31Ww
	So6829TepcZgBesTNiVX4h8RXaATJqHeWLovaftP
X-Google-Smtp-Source: AGHT+IHi7XVnVy70LEvG1GoHzuqIHMLykbSSgypfbxOWWUFK8Z4pPlUNMxj0CJ15+jiwBaHpal0Hag==
X-Received: by 2002:a05:6512:10c3:b0:50c:525:abd7 with SMTP id k3-20020a05651210c300b0050c0525abd7mr725734lfg.76.1701788354569;
        Tue, 05 Dec 2023 06:59:14 -0800 (PST)
Message-ID: <2ded19f7-2ba6-4b1c-8752-a73894dcdae0@suse.com>
Date: Tue, 5 Dec 2023 15:59:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com> <ZW4L5Q4SMprtmbK-@macbook>
 <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com> <ZW8zyXkUJDKVt-HX@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW8zyXkUJDKVt-HX@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 15:29, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 09:52:31AM +0100, Jan Beulich wrote:
>> On 04.12.2023 18:27, Roger Pau MonnÃ© wrote:
>>> On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
>>>> ..., at least as reasonably feasible without making a check hook
>>>> mandatory (in particular strict vs relaxed/zero-extend length checking
>>>> can't be done early this way).
>>>>
>>>> Note that only one of the two uses of hvm_load() is accompanied with
>>>> hvm_check(). The other directly consumes hvm_save() output, which ought
>>>> to be well-formed. This means that while input data related checks don't
>>>> need repeating in the "load" function when already done by the "check"
>>>> one (albeit assertions to this effect may be desirable), domain state
>>>> related checks (e.g. has_xyz(d)) will be required in both places.
>>>>
>>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>> ---
>>>> Do we really need all the copying involved in use of _hvm_read_entry()
>>>> (backing hvm_load_entry()? Zero-extending loads are likely easier to
>>>> handle that way, but for strict loads all we gain is a reduced risk of
>>>> unaligned accesses (compared to simply pointing into h->data[]).
>>>
>>> See below, but I wonder whether the checks could be performed as part
>>> of hvm_load() without having to introduce a separate handler and loop
>>> over the context entries.
>>
>> Specifically not. State loading (in the longer run) would better not fail
>> once started. (Imo it should have been this way from the beginning.) Only
>> then will the vCPU still be in a predictable state even after a possible
>> error.
> 
> Looking at the callers, does such predictable state after failure
> matter?
> 
> One caller is an hypercall used by the toolstack at domain create,
> failing can just lead to the domain being destroyed.  The other caller
> is vm fork, which will also lead to the fork being destroyed if
> context loading fails.
> 
> Maybe I'm overlooking something.

You don't (I think), but existing callers necessarily have to behave the
way you describe. From an abstract perspective, though, failed state
loading would better allow a retry. And really I thought that when you
suggested to split checking from loading, you had exactly that in mind.

>>>> Would the hvm_sr_handlers[] better use array_access_nospec()?
>>>
>>> Maybe?  Given this is a domctl I do wonder whether a domain already
>>> having access to such interface won't have easier ways to leak data
>>> from Xen.  Maybe for a disaggregated setup.
>>
>> Hmm, now we're in the middle - Andrew effectively said "no need to".
> 
> I'm certainly not an expert on whether array_access_nospec() should be
> used, so if Andrew says no need, that's likely better advice.
> 
> Maybe the xsm check used in such desegregated setups would already
> stop speculation?

There's no XSM check anywhere near, and even if there was I don't see
how it would stop mis-speculation on those array accesses.

>>>> @@ -275,6 +281,78 @@ int hvm_save(struct domain *d, hvm_domai
>>>>      return 0;
>>>>  }
>>>>  
>>>> +int hvm_check(const struct domain *d, hvm_domain_context_t *h)
>>>> +{
>>>> +    const struct hvm_save_header *hdr;
>>>> +    int rc;
>>>> +
>>>> +    if ( d->is_dying )
>>>> +        return -EINVAL;
>>>> +
>>>> +    /* Get at the save header, which must be first. */
>>>> +    hdr = hvm_get_entry(HEADER, h);
>>>> +    if ( !hdr )
>>>> +        return -ENODATA;
>>>> +
>>>> +    rc = arch_hvm_check(d, hdr);
>>>> +    if ( rc )
>>>> +        return rc;
>>>> +
>>>> +    for ( ; ; )
>>>> +    {
>>>> +        const struct hvm_save_descriptor *desc;
>>>> +        hvm_check_handler handler;
>>>> +
>>>> +        if ( h->size - h->cur < sizeof(*desc) )
>>>> +        {
>>>> +            /* Run out of data */
>>>> +            printk(XENLOG_G_ERR
>>>> +                   "HVM restore %pd: save did not end with a null entry\n",
>>>> +                   d);
>>>> +            return -ENODATA;
>>>> +        }
>>>> +
>>>> +        /* Read the typecode of the next entry and check for the end-marker. */
>>>> +        desc = (const void *)&h->data[h->cur];
>>>> +        if ( desc->typecode == HVM_SAVE_CODE(END) )
>>>> +        {
>>>> +            /* Reset cursor for hvm_load(). */
>>>> +            h->cur = 0;
>>>> +            return 0;
>>>> +        }
>>>> +
>>>> +        /* Find the handler for this entry. */
>>>> +        if ( desc->typecode >= ARRAY_SIZE(hvm_sr_handlers) ||
>>>> +             !hvm_sr_handlers[desc->typecode].name ||
>>>> +             !hvm_sr_handlers[desc->typecode].load )
>>>> +        {
>>>> +            printk(XENLOG_G_ERR "HVM restore %pd: unknown entry typecode %u\n",
>>>> +                   d, desc->typecode);
>>>> +            return -EINVAL;
>>>> +        }
>>>> +
>>>> +        /* Check the entry. */
>>>> +        handler = hvm_sr_handlers[desc->typecode].check;
>>>> +        if ( !handler )
>>>> +        {
>>>> +            if ( desc->length > h->size - h->cur - sizeof(*desc) )
>>>> +                return -ENODATA;
>>>> +            h->cur += sizeof(*desc) + desc->length;
>>>> +        }
>>>> +        else if ( (rc = handler(d, h)) )
>>>> +        {
>>>> +            printk(XENLOG_G_ERR
>>>> +                   "HVM restore %pd: failed to check %s:%u rc %d\n",
>>>> +                   d, hvm_sr_handlers[desc->typecode].name, desc->instance, rc);
>>>> +            return rc;
>>>> +        }
>>>> +
>>>> +        process_pending_softirqs();
>>>
>>> Looking at this, won't it be better to call the check() hooks inside
>>> the hvm_load() function instead of duplicating the loop?
>>>
>>> I realize that you only perform the checks when the state is loaded
>>> from a domctl, but still seems quite a lot of code duplication for
>>> little benefit.
>>>
>>> hvm_load() could gain an extra parameter to select whether the input
>>> must be checked or not, and that would avoid having to iterate twice
>>> over the context.
>>
>> Well, see above.
>>
>>>> +    }
>>>> +
>>>> +    /* Not reached */
>>>
>>> ASSERT_UNREACHABLE() maybe?
>>
>> Hmm, I'd find it kind of odd to have such here. While hvm_load() doesn't
>> have such either, perhaps that's not a meaningful reference. Adding this
>> would make me fear introducing a Misra violation (adding dead code).
> 
> But isn't this the purpose of ASSERT_UNREACHABLE() exactly?  IOW:
> Misra will need an exception for all usage of ASSERT_UNREACHABLE()
> already.
> 
> I think ASSERT_UNREACHABLE() is much better than a Not reached
> comment: conveys the same information to readers of the code and has
> a run-time consequence on debug builds.

I see a difference between uses on paths were we assert that a certain
state cannot be reached (if all our logic is right) vs a case like the
one here where the compiler (or another tool) can actually prove that
the loop can't be exited the "normal" way.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:01:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647991.1011849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWvN-000470-QC; Tue, 05 Dec 2023 15:01:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647991.1011849; Tue, 05 Dec 2023 15:01:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWvN-00046t-Ng; Tue, 05 Dec 2023 15:01:25 +0000
Received: by outflank-mailman (input) for mailman id 647991;
 Tue, 05 Dec 2023 15:01:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAWvM-00046j-DN
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:01:24 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27d4400a-937f-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:01:23 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40b397793aaso35810275e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:01:23 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 n22-20020a05600c3b9600b0040b4562ee20sm1047495wms.0.2023.12.05.07.01.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 07:01:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27d4400a-937f-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701788483; x=1702393283; 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=FOOEb8+qQdQN6+J9ZbelykXv7kxZ6osKw1SFFn7BNXg=;
        b=nNEqtsECd7Lw2tT0ZmQfoJKqNlYu/+1KQgRJ+TO7R3B0IS793uOEMVzGB5GvNklcUb
         PJHVf4lzOH8cy9WXIoUWloEOWbY+K6vJqdU/Jtldrcjt0HuxAlhvzEXSbZ+Qgkw5+aqZ
         6yYgBWB9frQb5jsm4LKkdb8WKLzmLDxxBrKKQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701788483; x=1702393283;
        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=FOOEb8+qQdQN6+J9ZbelykXv7kxZ6osKw1SFFn7BNXg=;
        b=WLGyxLzB177wryQSA31H0hyYsX5igiW0k8gRIXHGG4hIQuDcqBdts8ZeEsSiuSicac
         cCvIj09+XimyfFrQB1R9sMx1iN+Y/HdZqd1NiRnf4EWbYQDUDftYgysfjeYlcMbErPN1
         jckE89uXaOCDWtiuIndbax8tL6FIPXnBBVlJZDCKZVZTlonYz3kfoIwzDOLnV7xdqCR6
         0om1CX31Vcg2mMHQfTYy0yWGh96YG5lh5TkEkOlgTqSzouejPxS3L6Kf77YZSF7XxfN8
         wY2JkAuBwtSwIMjubu1EnJZ8kbKn81c1gCTE29jqTnqxTl4eAIyffzqQ3hkhrDs2NTYd
         8xKA==
X-Gm-Message-State: AOJu0YzDHFJlk19gpUyooD9Wr1iTb15biWBM65eRY8I/8sE9La/Ap23E
	j5m2RDDh15D/yI1mNJNZA3jg+Q==
X-Google-Smtp-Source: AGHT+IE54uqV6URaZkhhD1qv1AgOASQ7HkhjSW9poMyArC+Y1jnIXh+1F9znqbJrk8VvMV8GBRGhGw==
X-Received: by 2002:a05:600c:3d9a:b0:40b:5e56:7b6e with SMTP id bi26-20020a05600c3d9a00b0040b5e567b6emr632046wmb.183.1701788482975;
        Tue, 05 Dec 2023 07:01:22 -0800 (PST)
Date: Tue, 5 Dec 2023 16:01:22 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Message-ID: <ZW87Qq3Hw4ql-ZFw@macbook>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <ddbf1fad-e0c1-4b7c-9734-71d4997b5aa0@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ddbf1fad-e0c1-4b7c-9734-71d4997b5aa0@citrix.com>

On Tue, Dec 05, 2023 at 01:42:42PM +0000, Andrew Cooper wrote:
> On 28/11/2023 10:03 am, Roger Pau Monne wrote:
> > diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> > index f3abdf9cd111..f629157086d0 100644
> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -82,6 +82,8 @@ obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
> >  obj-y += sysctl.o
> >  endif
> >  
> > +CFLAGS-$(CONFIG_LIVEPATCH) += -falign-functions=$(CONFIG_CC_FUNCTION_ALIGNMENT)
> 
> I'd really prefer not to express it like this.Â  For one, a major reason
> for using an alignment of 16b or more is simply performance.
> 
> Also, it isn't "CC" when we get the asm macros working.
> 
> Copy Linux more closely.Â  Then, you have LIVEPATCH select
> FUNCTION_ALIGNMENT_{8,16}B as appropriate.Â  And PERFORMANCE selects
> FUNCTION_ALIGNMENT_16B or perhaps 32B depending on uarch.

So just use CONFIG_FUNCTION_ALIGNMENT and drop the CC part of it?
That would indeed be fine.  We will also need to adjust
CC_SPLIT_SECTIONS to drop the CC_ prefix when we start using it in
assembly code.

> If we ever get around to having KCFI, then we need 16B irrespective of
> anything else.
> 
> 
> 
> As for the subject, it's not really about size; the function size is
> still going to be small irrespective of the alignment.

What about wording it like:

x86/livepatch: set function alignment to ensure minimal space between functions

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:04:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:04:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.647999.1011859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWyR-0005Z2-7a; Tue, 05 Dec 2023 15:04:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 647999.1011859; Tue, 05 Dec 2023 15:04:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAWyR-0005Yr-4d; Tue, 05 Dec 2023 15:04:35 +0000
Received: by outflank-mailman (input) for mailman id 647999;
 Tue, 05 Dec 2023 15:04:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAWyQ-0005XK-9q
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:04:34 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 98171b23-937f-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:04:31 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-33349b3f99aso1841927f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:04:31 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 t6-20020adff606000000b0033339e03a60sm9463879wrp.59.2023.12.05.07.04.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 07:04:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98171b23-937f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701788671; x=1702393471; 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=PUiOyLY2Pjwf708Ro4smCRG8Qe1QO1yDFhCbJ3wkyx4=;
        b=iZxsz7bUWm67YPB5lPlv40jfbWn9fDzD3voZ6bdcVrrH0aS/34ht26ejxKVEOnAvdL
         /OLDkSBWAEH1RTWUs0efpmorzu9WIHZltrfEmahL/+NE0MexUpeM0GztPYsDLKAqqars
         TS62+EW1w50iYYWzj4w/jfVCqFe2yBIsHl61U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701788671; x=1702393471;
        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=PUiOyLY2Pjwf708Ro4smCRG8Qe1QO1yDFhCbJ3wkyx4=;
        b=MWxjxwWWFflA3ukC7S3XGPnJU13rlhxFK7CobjLF4AEqBOOAXXLhWMx8bMsoOmxqDD
         lGZ89jCZz9DSPo4XbTHRIoB7RLjrcp2NgnBA0v/vh1NhMEX5FByR7zgfAJ73uqSKzZW0
         px/x3c21pWY5IiqStjY4UAWwVn54YT5Rt762frG4Nc9HtQEm9QRi/PeklWxjcBB4rvGA
         M1w83uSFHhhgFFK/pKgtfoJ+sRppPpo032j3ubtsMPDjO09GvnIH8sfhCunZUXYcCKBt
         PAqN0Iwq4mU7A60qgr4txsIKiTC4mx+Z6jNLaGbr7xhKvhbYNLY1ydflnWMXHCjTOC7V
         n8eA==
X-Gm-Message-State: AOJu0YxK48VFdqypb3dgIC/L+957DXlub8po/CQ3YlX1A7pkJJvWIDJI
	owYwTUpeyi1bCnZp3OdycnWjjQ==
X-Google-Smtp-Source: AGHT+IFSuDrjQYY6BqlPBnK4aZ7AdWfEioWyO7TqBgo1aqguGJcOnXxNxO8JILgAuZitoMvabtejJA==
X-Received: by 2002:a5d:51c2:0:b0:333:2fd2:51f0 with SMTP id n2-20020a5d51c2000000b003332fd251f0mr4015141wrv.105.1701788671273;
        Tue, 05 Dec 2023 07:04:31 -0800 (PST)
Date: Tue, 5 Dec 2023 16:04:30 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/5] xen/livepatch: register livepatch regions when loaded
Message-ID: <ZW87_kZhE3UJC3UZ@macbook>
References: <20231130142944.46322-1-roger.pau@citrix.com>
 <20231130142944.46322-2-roger.pau@citrix.com>
 <4bfb71ef-0443-40dd-a854-349db42a7a30@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <4bfb71ef-0443-40dd-a854-349db42a7a30@suse.com>

On Tue, Dec 05, 2023 at 02:47:56PM +0100, Jan Beulich wrote:
> On 30.11.2023 15:29, Roger Pau Monne wrote:
> > diff --git a/xen/common/virtual_region.c b/xen/common/virtual_region.c
> > index 5f89703f513b..b444253848cf 100644
> > --- a/xen/common/virtual_region.c
> > +++ b/xen/common/virtual_region.c
> > @@ -23,14 +23,8 @@ static struct virtual_region core_init __initdata = {
> >  };
> >  
> >  /*
> > - * RCU locking. Additions are done either at startup (when there is only
> > - * one CPU) or when all CPUs are running without IRQs.
> > - *
> > - * Deletions are bit tricky. We do it when Live Patch (all CPUs running
> > - * without IRQs) or during bootup (when clearing the init).
> > - *
> > - * Hence we use list_del_rcu (which sports an memory fence) and a spinlock
> > - * on deletion.
> > + * RCU locking. Modifications to the list must be done in exclusive mode, and
> > + * hence need to hold the spinlock.
> >   *
> >   * All readers of virtual_region_list MUST use list_for_each_entry_rcu.
> >   */
> > @@ -58,38 +52,28 @@ const struct virtual_region *find_text_region(unsigned long addr)
> >  
> >  void register_virtual_region(struct virtual_region *r)
> >  {
> > -    ASSERT(!local_irq_is_enabled());
> > +    unsigned long flags;
> >  
> > +    spin_lock_irqsave(&virtual_region_lock, flags);
> >      list_add_tail_rcu(&r->list, &virtual_region_list);
> > +    spin_unlock_irqrestore(&virtual_region_lock, flags);
> >  }
> >  
> >  static void remove_virtual_region(struct virtual_region *r)
> >  {
> > -    unsigned long flags;
> > +     unsigned long flags;
> 
> Nit: Stray blank added?

Oh, my bad.

> > -    spin_lock_irqsave(&virtual_region_lock, flags);
> > -    list_del_rcu(&r->list);
> > -    spin_unlock_irqrestore(&virtual_region_lock, flags);
> > -    /*
> > -     * We do not need to invoke call_rcu.
> > -     *
> > -     * This is due to the fact that on the deletion we have made sure
> > -     * to use spinlocks (to guard against somebody else calling
> > -     * unregister_virtual_region) and list_deletion spiced with
> > -     * memory barrier.
> > -     *
> > -     * That protects us from corrupting the list as the readers all
> > -     * use list_for_each_entry_rcu which is safe against concurrent
> > -     * deletions.
> > -     */
> > +     spin_lock_irqsave(&virtual_region_lock, flags);
> > +     list_del_rcu(&r->list);
> > +     spin_unlock_irqrestore(&virtual_region_lock, flags);
> >  }
> >  
> >  void unregister_virtual_region(struct virtual_region *r)
> >  {
> > -    /* Expected to be called from Live Patch - which has IRQs disabled. */
> > -    ASSERT(!local_irq_is_enabled());
> > -
> >      remove_virtual_region(r);
> > +
> > +    /* Assert that no CPU might be using the removed region. */
> > +    rcu_barrier();
> >  }
> 
> rcu_barrier() is a relatively heavy operation aiui. Seeing ...
> 
> >  #if defined(CONFIG_LIVEPATCH) && defined(CONFIG_X86)
> 
> ... this I'd like to ask to consider hiding {,un}register_virtual_region()
> in "#ifdef CONFIG_LIVEPATCH" as well, to make clear these aren't supposed
> to be used for other purpose. Would at the same time address two Misra
> violations, I think (both functions having no callers when !LIVEPATCH).

That's fine, I can do it this same patch unless you prefer such
adjustment to be in a separate change.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:11:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:11:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648005.1011870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAX4p-0008HP-UI; Tue, 05 Dec 2023 15:11:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648005.1011870; Tue, 05 Dec 2023 15:11:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAX4p-0008HI-QQ; Tue, 05 Dec 2023 15:11:11 +0000
Received: by outflank-mailman (input) for mailman id 648005;
 Tue, 05 Dec 2023 15: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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAX4o-0008Ft-SD
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:11:10 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 852b1775-9380-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:11:09 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c09d0b045so29652965e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:11:09 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 f18-20020a05600c155200b004094d4292aesm19072382wmg.18.2023.12.05.07.11.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 07:11:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 852b1775-9380-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701789069; x=1702393869; 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=lZkw4TD3P9ymEBLOGazy99l9ZiAtxd57Bn0tL7xPlbk=;
        b=CUFZu+2X/8LQLoN5NH7N7PqtLPH3CtNAWRk6Mgzu/0MNQbi2autZX19q+pmh/CTY+D
         faPgfAzeNdesBiak/gpvYp2GFqx6q9TYuu6Huucah/duZHyVX8IG+H2QFUGAZnZl5I1H
         65xL0dWslvMIj7YeF7N4BxjdM7pCfs6ISob8Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701789069; x=1702393869;
        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=lZkw4TD3P9ymEBLOGazy99l9ZiAtxd57Bn0tL7xPlbk=;
        b=eKvNIj0H3YsYNRgqphsivmbWuVGIcOrZeJeCqDY09FPfoYbCVdokOFk4DK32ZZMutU
         12eWePu0OMGxx9RmzhrFX5uOhKnFl6Sgh8EpFjcAGsfPEphqTL71jplp+Jc4wTlPDni1
         ZKl7Y9Kz0TNfSvvcg5/hoYlIiMnq2jRGL/61aS1xCIv4RceGJ4AMJeBagK6QNik+Iqs2
         GlGK6qh5Fy5wUvROiXwg9R2wPrR70M080Ld7CxMylDiKq4SJ03ejq0txCy3+giuc0C+7
         eLNy/PeGGBlRyRQtjWW5LAArGyszweQqCYorLa92ge4YEuaJ30GDSVinw9iGJB18e8+F
         PmUA==
X-Gm-Message-State: AOJu0YzwzU9fJP9gNCqPm/uw0hTDns/SgtQYw7wl3oJVqE0D4Q5jU1UP
	JrPQWkv6XUFdKkwrpWzF170rrQ==
X-Google-Smtp-Source: AGHT+IFvFxaUT+s1wyyDErZpNPKqY9ZIdVrtCiGc1HihcuUQ3HiJHtAVurJyvzg1h7uHGaFqnD/osg==
X-Received: by 2002:a05:600c:3541:b0:40b:5e1e:fb94 with SMTP id i1-20020a05600c354100b0040b5e1efb94mr417849wmq.73.1701789069032;
        Tue, 05 Dec 2023 07:11:09 -0800 (PST)
Date: Tue, 5 Dec 2023 16:11:08 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 2/6] amd-vi: set IOMMU page table levels based on
 guest reported paddr width
Message-ID: <ZW89jMz1yaD4qLN9@macbook>
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-3-roger.pau@citrix.com>
 <17de355f-623f-4310-ac55-df028235c240@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <17de355f-623f-4310-ac55-df028235c240@suse.com>

On Tue, Dec 05, 2023 at 03:32:20PM +0100, Jan Beulich wrote:
> On 04.12.2023 10:43, Roger Pau Monne wrote:
> > --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
> > +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
> > @@ -359,21 +359,17 @@ int __read_mostly amd_iommu_min_paging_mode = 1;
> >  static int cf_check amd_iommu_domain_init(struct domain *d)
> >  {
> >      struct domain_iommu *hd = dom_iommu(d);
> > +    int pglvl = amd_iommu_get_paging_mode(
> > +                PFN_DOWN(1UL << paging_max_paddr_bits(d)));
> 
> This is a function in the paging subsystem, i.e. generally inapplicable
> to system domains (specifically DomIO). If this is to remain this way,
> the function would imo need to gain a warning. Yet better would imo be
> if the function was avoided for system domains.

I have to admit I'm confused, won't systems domains return
paging_mode_hap(d) == false, and thus fallback to using paddr_bits
(host paddr width?).

I can avoid such domains calling into paging_max_paddr_bits() but it
seems redundant, and would just be duplicated logic for a case that
paging_max_paddr_bits() already handles correctly AFAICT.

Would it be better for me to rename paging_max_paddr_bits() to
domain_max_paddr_bits() and move it to asm/domain.h?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:11:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:11:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648006.1011880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAX56-0000DB-5h; Tue, 05 Dec 2023 15:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648006.1011880; Tue, 05 Dec 2023 15: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 1rAX56-0000D2-26; Tue, 05 Dec 2023 15:11:28 +0000
Received: by outflank-mailman (input) for mailman id 648006;
 Tue, 05 Dec 2023 15:11:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAX54-0000As-TI
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:11:26 +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 8d94e738-9380-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:11:23 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c09fcfa9fso27865495e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:11:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g3-20020a056000118300b0033340b6d3a7sm7773767wrx.76.2023.12.05.07.11.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:11:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d94e738-9380-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701789083; x=1702393883; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=7KN7JCxDXGaTUes+xf4Le7aTmjMM4e/Ufb7G4jNAVIE=;
        b=PFlzt81MvFkYuqsMlW+pEbsfv/kIb4W9UgQWYxKq9n5C7YN067y4CudOvMZWP9rY6C
         +4Qp+8UvqJvCKha3v7VK89G1h5WCzyaM+KhON9yvRzmuhKMYD25DN7fJsVxb/MDqCtf4
         2Ygj1Ph17hk5s4YHU8HdvwrI/1+7DcXrASS9Cha8chpTqa+PKtzi48d7LcNp/U2uOKl2
         vpz+zmuRpo8K4ULrKFfTUMnrKlOCaO7bzDa15fviTFX3dPrb3hJxEVTsHnW2cZ+GpInb
         IWP6JYAMlGKkN5xYPlHsPN3fhj3fF58QAVxfYEuY2/9otkm9llnU3NXmWkuE/Bm0FLNs
         /cSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701789083; x=1702393883;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=7KN7JCxDXGaTUes+xf4Le7aTmjMM4e/Ufb7G4jNAVIE=;
        b=gtxNlf8go8y+RwsmFoSkU91H3FtkUkYphKpQyqyelzQrXKJDynDdvsIBfCYj7yEpX6
         aWVcRquuQEMb926S9VYEcnzeZkggz0Cs6H6EdKpvoI1HqWfsX4QlZ2R3vmKrKiHtE5qr
         ZoWJHuqGU7b6O/7ULjxH3pplycJGE1ryjCAfElMEc5YJwiwNGph9hdPV9vLV7+iAzOmY
         3FGcLRc5+tJPn80kcb5WWuCbD4DD2YSxA/9VQACMnr+o9qS8vCO0+oLakgIeaFgBzGCA
         UuX7qPawP+Gv6RWBFqVExrgHrTObt/p8FR+K78btXgc/zUOBnFxVBTHl2WnZ0fcoVjNs
         4LsQ==
X-Gm-Message-State: AOJu0Yyu4AoINEpi1NJ6YQ3iHnZJc0iDZR7i6Y4LTKx2CpGRJR7cltFi
	ORtu5KBVROx935ggesr1ceA8hJfr974P63HfW3gQ
X-Google-Smtp-Source: AGHT+IHeAtOKWHSDJZWXcDcI0T/EnfyoqASQ997zZ3CD2Ol8KwDYF58jKHfM/Uvv8NzzYw9cDQ9IWg==
X-Received: by 2002:a05:600c:11cf:b0:40c:5ce:d4ec with SMTP id b15-20020a05600c11cf00b0040c05ced4ecmr1560602wmi.369.1701789083068;
        Tue, 05 Dec 2023 07:11:23 -0800 (PST)
Message-ID: <d94a20ea-67fa-4219-9184-3d7dd9bcf646@suse.com>
Date: Tue, 5 Dec 2023 16:11:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] x86/iommu: remove regions not to be mapped
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-5-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231204094305.59267-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 10:43, Roger Pau Monne wrote:
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -2136,6 +2136,54 @@ int __hwdom_init xen_in_range(unsigned long mfn)
>      return 0;
>  }
>  
> +int __hwdom_init remove_xen_ranges(struct rangeset *r)
> +{
> +    paddr_t start, end;
> +    int rc;
> +
> +    /* S3 resume code (and other real mode trampoline code) */
> +    rc = rangeset_remove_range(r, PFN_DOWN(bootsym_phys(trampoline_start)),
> +                               PFN_DOWN(bootsym_phys(trampoline_end)));
> +    if ( rc )
> +        return rc;
> +
> +    /*
> +     * This needs to remain in sync with the uses of the same symbols in
> +     * - __start_xen()
> +     * - is_xen_fixed_mfn()
> +     * - tboot_shutdown()
> +     */

As you're duplicating this comment from xen_in_range(), you want to
- also mention xen_in_range() here,
- also update xen_in_range()'s comment,
- also update the respective comments in __start_xen() that also mention
  xen_in_range().
Everything else here looks good to me.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:15:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648014.1011890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAX8Y-0001Gd-Kv; Tue, 05 Dec 2023 15:15:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648014.1011890; Tue, 05 Dec 2023 15: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 1rAX8Y-0001GW-IH; Tue, 05 Dec 2023 15:15:02 +0000
Received: by outflank-mailman (input) for mailman id 648014;
 Tue, 05 Dec 2023 15:15: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAX8X-0001GQ-3e
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:15:01 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0df0b3a6-9381-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:14:59 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-332fd78fa9dso4654988f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:14:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 q18-20020adf9dd2000000b00333357a77c4sm10463936wre.34.2023.12.05.07.14.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:14:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0df0b3a6-9381-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701789298; x=1702394098; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0SjG8eJ/JAdY43wB+nU+rycxpGV9ftdDE3uTO2Efwqk=;
        b=BvhWIS2gDb0esAPbk0CK5q913QHhbrPKH2DpsJivgBzEwuVhbCJimiE9i3EGwW6sCU
         W0VaQZTLo0FtzEJf/X3DA50CrKvfKblb+L1ioCw6I7xMaizcLqr1lIi8RPgFEOB4/oF3
         3klooU6m0+6H9fd0LjjjDJMdXpK3MIjHV79t3M4MwEhu0ludYz1HBNan0iaWhQLnBCLG
         3oTOVBLJTWZgnQZp3BCu5xvxkyrMkHF320EySeXdiUUESZGar5q5quLUkRCW+3ehHajE
         T+gO0czoNn5On5gybCFvZ1Q+JiB2pPhrLuxoG+7qAUXeXEeJSaJoytT6wFMhtQWGkgDv
         Ln+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701789298; x=1702394098;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=0SjG8eJ/JAdY43wB+nU+rycxpGV9ftdDE3uTO2Efwqk=;
        b=nSgLMMlmcV/V9NJmHLBB1astzGA3SYlBanIEBH+vPTF7v7lKGjDboy1Tao8SoZypCR
         01R5IEguOx4Zwo/JQrgpSC2ZaPcVj//doNgDDjZ7JngIpIf3K967MfaeVUC89wI/PpvN
         hdR9y5TfmI6bG0o8UH+ihFo7FoxgSei9wS6C1a6NACtQ2o9PSOnmQwsUoKZrp2KAS2r9
         3uDQsfvOcujrieXY0ZCcmxesoHNyuS+vJVzy+XfjxRtt0Djfche1t//76EEFE4fk548I
         k+qYduretKihYfe9qpqHyrcwWP6Vpe24qveuJQwz6Gxi5fdDqZfvywQjr2GLlx4YDUYU
         j7Pw==
X-Gm-Message-State: AOJu0YybwsLSiW+PAsa44cl2jfkWnaxWSEB3frFyEKJsnzkOVqnv8K6Z
	cl0B1lP+7tiVG+4p539vRn1v
X-Google-Smtp-Source: AGHT+IG7/+QmzkL7RRg2tKVnn4mK40tS6TJRV/ai6cYi0yCuaNgNrt3ohQIENhvQ7spd4FLVQ0JuUA==
X-Received: by 2002:a5d:484b:0:b0:333:49a8:73ea with SMTP id n11-20020a5d484b000000b0033349a873eamr949937wrs.249.1701789298544;
        Tue, 05 Dec 2023 07:14:58 -0800 (PST)
Message-ID: <29b2d864-2b3f-4a74-9d61-534523e842cd@suse.com>
Date: Tue, 5 Dec 2023 16:14:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <ddbf1fad-e0c1-4b7c-9734-71d4997b5aa0@citrix.com> <ZW87Qq3Hw4ql-ZFw@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW87Qq3Hw4ql-ZFw@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 16:01, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 01:42:42PM +0000, Andrew Cooper wrote:
>> On 28/11/2023 10:03 am, Roger Pau Monne wrote:
>>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
>>> index f3abdf9cd111..f629157086d0 100644
>>> --- a/xen/arch/x86/Makefile
>>> +++ b/xen/arch/x86/Makefile
>>> @@ -82,6 +82,8 @@ obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
>>>  obj-y += sysctl.o
>>>  endif
>>>  
>>> +CFLAGS-$(CONFIG_LIVEPATCH) += -falign-functions=$(CONFIG_CC_FUNCTION_ALIGNMENT)
>>
>> I'd really prefer not to express it like this.Â  For one, a major reason
>> for using an alignment of 16b or more is simply performance.
>>
>> Also, it isn't "CC" when we get the asm macros working.
>>
>> Copy Linux more closely.Â  Then, you have LIVEPATCH select
>> FUNCTION_ALIGNMENT_{8,16}B as appropriate.Â  And PERFORMANCE selects
>> FUNCTION_ALIGNMENT_16B or perhaps 32B depending on uarch.
> 
> So just use CONFIG_FUNCTION_ALIGNMENT and drop the CC part of it?
> That would indeed be fine.  We will also need to adjust
> CC_SPLIT_SECTIONS to drop the CC_ prefix when we start using it in
> assembly code.

Could we prune the CC infixes once everything is settled asm-code-wise?

>> If we ever get around to having KCFI, then we need 16B irrespective of
>> anything else.
>>
>>
>>
>> As for the subject, it's not really about size; the function size is
>> still going to be small irrespective of the alignment.
> 
> What about wording it like:
> 
> x86/livepatch: set function alignment to ensure minimal space between functions

This still wouldn't be right, as there may be no padding at all between
functions (if they're just the right size). Maybe "minimal distance
between function entry points"? Getting long-ish, though ...

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:16:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:16:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648017.1011899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAX9y-0001zi-4S; Tue, 05 Dec 2023 15:16:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648017.1011899; Tue, 05 Dec 2023 15: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 1rAX9y-0001zb-1l; Tue, 05 Dec 2023 15:16:30 +0000
Received: by outflank-mailman (input) for mailman id 648017;
 Tue, 05 Dec 2023 15:16: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAX9x-0001zV-7Z
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:16:29 +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 4275bfad-9381-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:16:27 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3334254cfa3so1613088f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:16:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 q18-20020adf9dd2000000b00333357a77c4sm10463936wre.34.2023.12.05.07.16.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:16:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4275bfad-9381-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701789386; x=1702394186; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=cFzvHie7cXy2AJrdY6P3f47Glj8npa0Pjc3ZW7jR3zI=;
        b=Rk6Pr95btde13KvYYpZEbQHvCiY7Vl8YExjWkij1yEABu1Lcuj2KQF3tbc81cLviVl
         0SpJxZOJ/JVM30Cat+ekqdi+aDREIaWOSOUlaopGPQg8uo87hWVLj+JW1kbBkDSrSHt3
         TKXxGI63/2jI42qeR46t2GkPiykOg9G77sZZcQf36ZRsJtZ60pXLkIifrAtcN2KQ7Wf+
         zpaF2m8qUj2FByu13itp0CyQKDXMzWmTgozAJ5W490wHcwyOAis979D9P1q2+wjEKl1p
         Zgdj8F5DaF6EaYcgdpZPlefXBtCenZEUDZyle5tLupfjqja9EL/ThzxajqS6b5z8Mmh1
         fqxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701789386; x=1702394186;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=cFzvHie7cXy2AJrdY6P3f47Glj8npa0Pjc3ZW7jR3zI=;
        b=wHJV4G8/OVyP49rq/cmAfquCYg1iLuiaur2nbPyLbRzTOyEtukxu3SxHAeRqVtm5vH
         09JlvITi+SwfwEZUiZ7cSY128mIfHiK/oMqPZ2wOWRDkuLWL4Qr9GjBhK5iJRS6kgTrV
         AouKqmLA51JVn1cUegXwjB9f7gS3c5+PoUeRdgdBBqos2c/2neJ2iuV4aIuHlCbZmsTm
         U+8IWeC4pea4nqWwqC9i8e1PxRbQKx988322z+Ggwd/UxbrJXCpUI6QKpmbIDt4C7P8n
         kHABA0Bc24rx/MdW+tqYJWj9V7ASIZ4W9Nh4+B/CF6blz+rlsNApnzCDf6sUG3yFaUf5
         C0IQ==
X-Gm-Message-State: AOJu0YwX1lUaaJb9/gWx3X/5oAtaDQnHz9FSCY3o31eH1RhsXdPD3IJw
	r7EYNVSncZn2s/CQq9RnwemA
X-Google-Smtp-Source: AGHT+IFOwRTlhwXCB52z8duWIliO3O21d1s3h5jlYbGxcxBHhRAmtSX36JCLWnW/7yNdXXL2cdpJuw==
X-Received: by 2002:a5d:4092:0:b0:332:e3ad:4273 with SMTP id o18-20020a5d4092000000b00332e3ad4273mr807898wrp.2.1701789386630;
        Tue, 05 Dec 2023 07:16:26 -0800 (PST)
Message-ID: <b7dc9886-fb3f-4d69-83a8-52f77249ee80@suse.com>
Date: Tue, 5 Dec 2023 16:16:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] xen/livepatch: register livepatch regions when loaded
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 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>,
 xen-devel@lists.xenproject.org
References: <20231130142944.46322-1-roger.pau@citrix.com>
 <20231130142944.46322-2-roger.pau@citrix.com>
 <4bfb71ef-0443-40dd-a854-349db42a7a30@suse.com> <ZW87_kZhE3UJC3UZ@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW87_kZhE3UJC3UZ@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 16:04, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 02:47:56PM +0100, Jan Beulich wrote:
>> On 30.11.2023 15:29, Roger Pau Monne wrote:
>>> diff --git a/xen/common/virtual_region.c b/xen/common/virtual_region.c
>>> index 5f89703f513b..b444253848cf 100644
>>> --- a/xen/common/virtual_region.c
>>> +++ b/xen/common/virtual_region.c
>>> @@ -23,14 +23,8 @@ static struct virtual_region core_init __initdata = {
>>>  };
>>>  
>>>  /*
>>> - * RCU locking. Additions are done either at startup (when there is only
>>> - * one CPU) or when all CPUs are running without IRQs.
>>> - *
>>> - * Deletions are bit tricky. We do it when Live Patch (all CPUs running
>>> - * without IRQs) or during bootup (when clearing the init).
>>> - *
>>> - * Hence we use list_del_rcu (which sports an memory fence) and a spinlock
>>> - * on deletion.
>>> + * RCU locking. Modifications to the list must be done in exclusive mode, and
>>> + * hence need to hold the spinlock.
>>>   *
>>>   * All readers of virtual_region_list MUST use list_for_each_entry_rcu.
>>>   */
>>> @@ -58,38 +52,28 @@ const struct virtual_region *find_text_region(unsigned long addr)
>>>  
>>>  void register_virtual_region(struct virtual_region *r)
>>>  {
>>> -    ASSERT(!local_irq_is_enabled());
>>> +    unsigned long flags;
>>>  
>>> +    spin_lock_irqsave(&virtual_region_lock, flags);
>>>      list_add_tail_rcu(&r->list, &virtual_region_list);
>>> +    spin_unlock_irqrestore(&virtual_region_lock, flags);
>>>  }
>>>  
>>>  static void remove_virtual_region(struct virtual_region *r)
>>>  {
>>> -    unsigned long flags;
>>> +     unsigned long flags;
>>
>> Nit: Stray blank added?
> 
> Oh, my bad.
> 
>>> -    spin_lock_irqsave(&virtual_region_lock, flags);
>>> -    list_del_rcu(&r->list);
>>> -    spin_unlock_irqrestore(&virtual_region_lock, flags);
>>> -    /*
>>> -     * We do not need to invoke call_rcu.
>>> -     *
>>> -     * This is due to the fact that on the deletion we have made sure
>>> -     * to use spinlocks (to guard against somebody else calling
>>> -     * unregister_virtual_region) and list_deletion spiced with
>>> -     * memory barrier.
>>> -     *
>>> -     * That protects us from corrupting the list as the readers all
>>> -     * use list_for_each_entry_rcu which is safe against concurrent
>>> -     * deletions.
>>> -     */
>>> +     spin_lock_irqsave(&virtual_region_lock, flags);
>>> +     list_del_rcu(&r->list);
>>> +     spin_unlock_irqrestore(&virtual_region_lock, flags);
>>>  }
>>>  
>>>  void unregister_virtual_region(struct virtual_region *r)
>>>  {
>>> -    /* Expected to be called from Live Patch - which has IRQs disabled. */
>>> -    ASSERT(!local_irq_is_enabled());
>>> -
>>>      remove_virtual_region(r);
>>> +
>>> +    /* Assert that no CPU might be using the removed region. */
>>> +    rcu_barrier();
>>>  }
>>
>> rcu_barrier() is a relatively heavy operation aiui. Seeing ...
>>
>>>  #if defined(CONFIG_LIVEPATCH) && defined(CONFIG_X86)
>>
>> ... this I'd like to ask to consider hiding {,un}register_virtual_region()
>> in "#ifdef CONFIG_LIVEPATCH" as well, to make clear these aren't supposed
>> to be used for other purpose. Would at the same time address two Misra
>> violations, I think (both functions having no callers when !LIVEPATCH).
> 
> That's fine, I can do it this same patch unless you prefer such
> adjustment to be in a separate change.

Since the change itself constitutes at least part of the reason for the
adjustment, this would be fine with me. (A separate change, if preferred
by others, would still be fine, too.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:19:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:19:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648021.1011910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXCu-0004OB-JR; Tue, 05 Dec 2023 15:19:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648021.1011910; Tue, 05 Dec 2023 15:19:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXCu-0004O4-FQ; Tue, 05 Dec 2023 15:19:32 +0000
Received: by outflank-mailman (input) for mailman id 648021;
 Tue, 05 Dec 2023 15:19: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXCt-0004Ny-Js
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:19:31 +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 afde1a73-9381-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:19:30 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40b538d5c4eso53881395e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:19:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 f18-20020a05600c155200b004094d4292aesm19092238wmg.18.2023.12.05.07.19.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:19:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: afde1a73-9381-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701789570; x=1702394370; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=obOnFqoEHLYAQtr65jw2QfsQlhvyXM2XSnS+DM5BlBw=;
        b=YHMnP2sztdUsu0otR38VuIXkr7TxBevUng8eKP6N3Bq/XrVdgEskPEv/AXzDdrXBWG
         3xU8ccsSskSR1hDwfRc9cMERB3YnWPeD+eHqX1dJ/1G8h++5qF9VQeGJaKvKRslkCvv5
         pP/rS2sXQTrs9ANIlxicHBZ/lklt+8Ee9QKuR3WA+kb3g3Ek6cVuP7aMelv0wvV+iuiM
         GgTJUed+BLxw7vYhnjKzlV7vRKiDSsEf54zSwUdRv08jA2cEd3zhhch9pLGdN0ndIYbJ
         QnZHpOnjb/20fjoZqXavqa96PYWUXUfeSHp/q7E6YQAoZGuch+ga7OEDJMGmPkRjgwYn
         pDSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701789570; x=1702394370;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=obOnFqoEHLYAQtr65jw2QfsQlhvyXM2XSnS+DM5BlBw=;
        b=XD+gDizLTrN6d9XT/j4m8SkaumzZvizbExVwVzRYZUnhamG0crzJUPAGd2fXUEd3Vp
         86Bo8nGdIpQ1yVtiwFBo2XtrSGLgcSdk8VhXpMl4XkRuRIRUTNdwfQg5iVbZxFT1OOZm
         BUZUQfn3yxhdN06Iz9RFDaOnCbwjzRBWzyun0jKY/bRV3kvnFj8qOiL8+L4+z6uWRtve
         tonOlyawJKj6cIWi2pBH5nFhoxEV0ZIRI76m1/OywtcxDTAMTqaczQDnvBhRgEnxVInE
         YpU+PmW33QHNMfGMk2qLFbQJqXSEc2Ngqofbs/Tef+k5YITFE6TVXWiUIV6L+dPTpn7l
         uXIg==
X-Gm-Message-State: AOJu0YwGxSnOpi+vj5MpzCegbf/TKeqnLNJpn+7TixwFnnR5uliCRXZx
	MjN7Ei+zVQm3L7vTlTQa5e0n
X-Google-Smtp-Source: AGHT+IF9VHFEKT3r1cYQ0yJT8IgB2BLxzT5TeuUsUgD2n2VPjUn+3GicdNiCVQeo4DS3UXWWpfnWSw==
X-Received: by 2002:a1c:7912:0:b0:40b:5e59:b7a9 with SMTP id l18-20020a1c7912000000b0040b5e59b7a9mr576680wme.134.1701789570232;
        Tue, 05 Dec 2023 07:19:30 -0800 (PST)
Message-ID: <2ebe87c9-770e-434c-b7dc-440fd123762e@suse.com>
Date: Tue, 5 Dec 2023 16:19:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/6] amd-vi: set IOMMU page table levels based on guest
 reported paddr width
Content-Language: en-US
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: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-3-roger.pau@citrix.com>
 <17de355f-623f-4310-ac55-df028235c240@suse.com> <ZW89jMz1yaD4qLN9@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW89jMz1yaD4qLN9@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 16:11, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 03:32:20PM +0100, Jan Beulich wrote:
>> On 04.12.2023 10:43, Roger Pau Monne wrote:
>>> --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
>>> +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
>>> @@ -359,21 +359,17 @@ int __read_mostly amd_iommu_min_paging_mode = 1;
>>>  static int cf_check amd_iommu_domain_init(struct domain *d)
>>>  {
>>>      struct domain_iommu *hd = dom_iommu(d);
>>> +    int pglvl = amd_iommu_get_paging_mode(
>>> +                PFN_DOWN(1UL << paging_max_paddr_bits(d)));
>>
>> This is a function in the paging subsystem, i.e. generally inapplicable
>> to system domains (specifically DomIO). If this is to remain this way,
>> the function would imo need to gain a warning. Yet better would imo be
>> if the function was avoided for system domains.
> 
> I have to admit I'm confused, won't systems domains return
> paging_mode_hap(d) == false, and thus fallback to using paddr_bits
> (host paddr width?).

True, but that check lives inside the function.

> I can avoid such domains calling into paging_max_paddr_bits() but it
> seems redundant, and would just be duplicated logic for a case that
> paging_max_paddr_bits() already handles correctly AFAICT.

Hence why I suggested a comment (warning) as alternative.

> Would it be better for me to rename paging_max_paddr_bits() to
> domain_max_paddr_bits() and move it to asm/domain.h?

Maybe. I'm not sure exactly why the function was introduced where it
is and under the name it has. It sole present caller is in cpu-policy.c,
so either name/placement would look good to me.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:27:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:27:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648024.1011919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXKJ-0002kL-AT; Tue, 05 Dec 2023 15:27:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648024.1011919; Tue, 05 Dec 2023 15:27:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXKJ-0002kE-7y; Tue, 05 Dec 2023 15:27:11 +0000
Received: by outflank-mailman (input) for mailman id 648024;
 Tue, 05 Dec 2023 15:27: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXKI-0002k8-02
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:27:10 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0493fdf-9382-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:27:07 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40bd5eaa66cso47037865e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:27:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 i19-20020a05600c355300b0040b3867a297sm18810084wmq.36.2023.12.05.07.27.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:27:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0493fdf-9382-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701790027; x=1702394827; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=CgY2D1k/e8Uf0F4+f2H7wb182xU0wRVEhobTv2hzE4A=;
        b=dHMUUJUTIM0EI+0peDF5BxQjT7OfjY3c6vVHlw4QYhjDqwN87O1UgbQxB0WST8AWL1
         cMYkFG0nC3FyFIy6IHPqb0+ajhqa2D+LaB8sZWnovJODpRwEd/qIlhjED/MGCUrOn8Qp
         zyWgaUop3DVpO4oUxGUjh6hpevjxAkBg4/khOFR6414R27qD2sUpc7LsOtYtp/dhU6Ju
         h2drdlxw92ewJPU6Ijp1qJtoBX0SSSSEkB/RoJb8gj8HRvvQezrWNvmmHAVTLlTiGdbd
         QDRdp1Wvwf2wrbe1XUhb/w6dyR/MZT9psAE3ZQagcBSLEdM/hCitb/gDpXP5gVEl5s9v
         UtKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701790027; x=1702394827;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=CgY2D1k/e8Uf0F4+f2H7wb182xU0wRVEhobTv2hzE4A=;
        b=Bu3ntJKpgkOzHoIUvsdd03gArZoY95ljc1PnrL+FiSPbLXzkV+lGUBe+3EFDxalN3z
         22LMBP3BLHQyAZtM1WU5nY8S1rLEWjpyy6i5aeSrfPOeB76SIGrO8EJ3py985OyWNyLq
         OlPhXd61oF5/twTGkbVjurkt7Hps0c7be3EmYfxjeTHmXPLJXEVsTW5U6LRjQQS0QMjM
         VCuKUHuIGVP/Gm3WpR8YJEmQoZzcqW9zF086snfQimXK727etF2FPUYaTw9ejZsQDmre
         jPk5g9cNrEuw/Np6d1NbAWTr1FiblooxP5D5/BeclzdZsAwO9C8EytKX17NrE3IGTS+L
         G4CA==
X-Gm-Message-State: AOJu0YyCfK557RkM1JqVxFpoZwIkvIrLbmnfp859DKy499ABiNCQFR/u
	yP4Y1wWw4tTYr8yfH6IiQ5u94nJUgO8GIpmrroeZ
X-Google-Smtp-Source: AGHT+IFMzDYOwPBpG+ZZA2mleKJpLTk9lNn79UiQndBrsGHot8ykbuuj4AKY+68R6nNYiOcaoMX3pg==
X-Received: by 2002:a05:600c:3309:b0:40b:5e21:dd37 with SMTP id q9-20020a05600c330900b0040b5e21dd37mr635035wmp.101.1701790027167;
        Tue, 05 Dec 2023 07:27:07 -0800 (PST)
Message-ID: <095c2f4c-9b10-4ab8-95ea-101f62096678@suse.com>
Date: Tue, 5 Dec 2023 16:27:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/6] x86/iommu: switch hwdom IOMMU to use a rangeset
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-6-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231204094305.59267-6-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 10:43, Roger Pau Monne wrote:
> @@ -476,58 +406,55 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>      if ( !map )
>          panic("IOMMU init: unable to allocate rangeset\n");
>  
> -    max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
> -    top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
> +    if ( iommu_hwdom_inclusive )
> +    {
> +        /* Add the whole range below 4GB, UNUSABLE regions will be removed. */
> +        rc = rangeset_add_range(map, 0, max_pfn);
> +        if ( rc )
> +            panic("IOMMU inclusive mappings can't be added: %d\n",
> +                  rc);
> +    }
>  
> -    for ( i = 0, start = 0, count = 0; i < top; )
> +    for ( i = 0; i < e820.nr_map; i++ )
>      {
> -        unsigned long pfn = pdx_to_pfn(i);
> -        unsigned int perms = hwdom_iommu_map(d, pfn, max_pfn);
> +        struct e820entry entry = e820.map[i];
>  
> -        if ( !perms )
> -            /* nothing */;
> -        else if ( paging_mode_translate(d) )
> +        switch ( entry.type )
>          {
> -            int rc;
> +        case E820_UNUSABLE:
> +            if ( !iommu_hwdom_inclusive || PFN_DOWN(entry.addr) > max_pfn )
> +                continue;

The !iommu_hwdom_inclusive part isn't really needed here, is it? The ...

> -            rc = p2m_add_identity_entry(d, pfn,
> -                                        perms & IOMMUF_writable ? p2m_access_rw
> -                                                                : p2m_access_r,
> -                                        0);
> +            rc = rangeset_remove_range(map, PFN_DOWN(entry.addr),
> +                                       PFN_DOWN(entry.addr + entry.size - 1));

... call here would then simply be a no-op, as it looks. And things would
overall look more safe if the removal was skipped for fewer reasons.

> @@ -605,7 +532,7 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>      rangeset_destroy(map);
>  
>      /* Use if to avoid compiler warning */
> -    if ( iommu_iotlb_flush_all(d, flush_flags) )
> +    if ( iommu_iotlb_flush_all(d, map_data.flush_flags) )
>          return;
>  }

Ah yes, here is said change. But I think for correctness this wants
moving to the earlier patch.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:29:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:29:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648026.1011930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXMM-0004Es-OS; Tue, 05 Dec 2023 15:29:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648026.1011930; Tue, 05 Dec 2023 15: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 1rAXMM-0004El-KD; Tue, 05 Dec 2023 15:29:18 +0000
Received: by outflank-mailman (input) for mailman id 648026;
 Tue, 05 Dec 2023 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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAXML-0004DQ-1q
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:29:17 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cb8d7f8-9383-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:29:16 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c0a11a914so25236315e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:29:16 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 fa10-20020a05600c518a00b00405442edc69sm22659525wmb.14.2023.12.05.07.29.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 07:29:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0cb8d7f8-9383-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701790155; x=1702394955; 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=FRMSpPHYDJRHtNqsUE8mJmv8pPspAjwSB3nkhaFy8IY=;
        b=UJmg0OUz76lA/BpADJCqPc6dUXNM5exNVQeAua42a9KfjIOf2u5kpBa1JvhfVRGPo1
         7ktjGcPAwpj+DDH4ODhCBKWg4ktirLzAdzVMzhNgjQV7tBee8Q2AqlKhwSHt39gaABvb
         ppw6Ct6H6AEvW+g2DUHURBNpL70XQWxmJg66w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701790155; x=1702394955;
        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=FRMSpPHYDJRHtNqsUE8mJmv8pPspAjwSB3nkhaFy8IY=;
        b=MRYTCwJcpWMKLEwDLVkUSx5EVTjhP77dwTBTYHW4rdft2whwH3OYu87M7gXuuUZ1HR
         8rI07gt6VnXmLM3I+R4fUk/f9f3TPHOffyuEEPGR1cb+GlpOkErhAa7n/46YEX1mp6Od
         12GMD7rk6KgnKWj89OBu7IJ33GeqoewikyknaOCsEgMMKKZYkJGeLOj/jGJaNc/YsXgx
         57uQfSd/2lln4btjkZBUZXtVlfySe3HKWwxVVGJtKzh+MDgtTaUK7ByNF/1iyTAq9zKK
         yGXFTLfg5ys9vCZyCTMPgJeG5HkTUJNFmJ9mJnLNYMcnf9MUssel709/QTr/PbwOV3Zk
         V/FA==
X-Gm-Message-State: AOJu0YxZWwGUt3v+Tt5q4Je6XWyHphz9NDkkhRJyHJ180XvemwrpUPLf
	20qx+0Y5av6bEoj5bOV333ssyQ==
X-Google-Smtp-Source: AGHT+IGkpNItnmSvg7PHLlHdYO/n3MJQpKt3XZINL3p1n1Urlg9178h2iC5/uYYR3gn5gxeNBdgdzA==
X-Received: by 2002:a05:600c:a3a0:b0:409:637b:890d with SMTP id hn32-20020a05600ca3a000b00409637b890dmr571933wmb.2.1701790155261;
        Tue, 05 Dec 2023 07:29:15 -0800 (PST)
Date: Tue, 5 Dec 2023 16:29:14 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 3/6] x86/iommu: introduce a rangeset to perform hwdom
 IOMMU setup
Message-ID: <ZW9Byij0hlUsVzDL@macbook>
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-4-roger.pau@citrix.com>
 <93b57f96-e47e-493b-b0f4-a8183ba8466f@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <93b57f96-e47e-493b-b0f4-a8183ba8466f@suse.com>

On Tue, Dec 05, 2023 at 03:50:44PM +0100, Jan Beulich wrote:
> On 04.12.2023 10:43, Roger Pau Monne wrote:
> > This change just introduces the boilerplate code in order to use a rangeset
> > when setting up the hardware domain IOMMU mappings.  The rangeset is never
> > populated in this patch, so it's a non-functional change as far as the mappings
> > the domain gets established.
> > 
> > Note there's a change for HVM domains (ie: PVH dom0) that will get switched to
> > create the p2m mappings using map_mmio_regions() instead of
> > p2m_add_identity_entry(), so that ranges can be mapped with a single function
> > call if possible.  Note that the interface of map_mmio_regions() doesn't allow
> > creating read-only mappings, but so far there are no such mappings created for
> > PVH dom0 in arch_iommu_hwdom_init().
> 
> I don't understand this paragraph: The rangeset remains empty, so nothing is
> changing right here. DYM there is going to be such a change as a result of
> this patch, but in a later part of this series?

Yes, when the rangeset is populated and mappings are created based on
its contents, map_mmio_regions() will be used instead of
p2m_add_identity_entry().  I guess the '... that will get switched to
create the p2m ...' is not clear enough.

> > --- a/xen/drivers/passthrough/x86/iommu.c
> > +++ b/xen/drivers/passthrough/x86/iommu.c
> > @@ -370,10 +370,77 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
> >      return perms;
> >  }
> >  
> > +struct map_data {
> > +    struct domain *d;
> > +    unsigned int flush_flags;
> > +    bool ro;
> > +};
> > +
> > +static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
> > +                                              void *data)
> > +{
> > +    struct map_data *info = data;
> > +    struct domain *d = info->d;
> > +    long rc;
> > +
> > +    if ( iommu_verbose )
> > +        printk(XENLOG_INFO " [%010lx, %010lx] R%c\n",
> > +               s, e, info->ro ? 'O' : 'W');
> > +
> > +    if ( paging_mode_translate(d) )
> > +    {
> > +        if ( info->ro )
> > +        {
> > +            ASSERT_UNREACHABLE();
> > +            return 0;
> > +        }
> > +        while ( (rc = map_mmio_regions(d, _gfn(s), e - s + 1, _mfn(s))) > 0 )
> > +        {
> > +            s += rc;
> > +            process_pending_softirqs();
> > +        }
> > +    }
> > +    else
> > +    {
> > +        const unsigned int perms = IOMMUF_readable | IOMMUF_preempt |
> > +                                   (info->ro ? 0 : IOMMUF_writable);
> > +
> > +        if ( info->ro && !iomem_access_permitted(d, s, e) )
> 
> How is r/o-ness related to iomem_access_permitted()? The present callers
> are such that there is a connection, but that's invisible here. I guess
> either the field wants to change name (maybe mmio_ro or ro_mmio or even
> just mmio), or there wants to be a comment.

Will add:

"read-only ranges are only created based on the contents of
mmio_ro_ranges, and hence need the additional iomem_access_permitted()
check."

> > +        {
> > +            /*
> > +             * Should be more fine grained in order to not map the forbidden
> > +             * frame instead of rejecting the region as a whole, but it's only
> > +             * for read-only MMIO regions, which are very limited.
> > +             */
> 
> How certain are you/we that no two adjacent ones may appear, with
> different permissions granted to Dom0?

Yeah, I was already not very convinced by this, and I think the only
solution here is to iterate over the read-only ranges with page
granularity.  In any case read-only ranges are both few and small in
size, hence this is unlikely to be noticeable performance wise.

> > +            printk(XENLOG_DEBUG
> > +                   "IOMMU read-only mapping of region [%lx, %lx] forbidden\n",
> > +                   s, e);
> > +            return 0;
> > +        }
> > +        while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
> > +                                perms, &info->flush_flags)) > 0 )
> > +        {
> > +            s += rc;
> > +            process_pending_softirqs();
> > +        }
> > +    }
> > +    ASSERT(rc <= 0);
> > +    if ( rc )
> > +        printk(XENLOG_WARNING
> > +               "IOMMU identity mapping of [%lx, %lx] failed: %ld\n",
> > +               s, e, rc);
> > +
> > +    /* Ignore errors and attempt to map the remaining regions. */
> > +    return 0;
> > +}
> > +
> >  void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >  {
> >      unsigned long i, top, max_pfn, start, count;
> >      unsigned int flush_flags = 0, start_perms = 0;
> > +    struct rangeset *map;
> > +    struct map_data map_data = { .d = d };
> > +    int rc;
> >  
> >      BUG_ON(!is_hardware_domain(d));
> >  
> > @@ -397,6 +464,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >      if ( iommu_hwdom_passthrough )
> >          return;
> >  
> > +    map = rangeset_new(NULL, NULL, 0);
> > +    if ( !map )
> > +        panic("IOMMU init: unable to allocate rangeset\n");
> > +
> >      max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
> >      top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
> >  
> > @@ -451,6 +522,24 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >              goto commit;
> >      }
> >  
> > +    if ( iommu_verbose )
> > +        printk(XENLOG_INFO "d%u: identity mappings for IOMMU:\n",
> > +               d->domain_id);
> 
> %pd: ?

Indeed, I probably copied this from a different chunk and didn't
adjust to use %pd.

> > +    rc = rangeset_report_ranges(map, 0, ~0UL, identity_map, &map_data);
> > +    if ( rc )
> > +        panic("IOMMU unable to create mappings: %d\n", rc);
> > +    if ( is_pv_domain(d) )
> > +    {
> > +        map_data.ro = true;
> > +        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, identity_map,
> > +                                    &map_data);
> > +        if ( rc )
> > +            panic("IOMMU unable to create read-only mappings: %d\n", rc);
> > +    }
> > +
> > +    rangeset_destroy(map);
> 
> This could move up, couldn't it?

Yes, could be moved just after the rangeset_report_ranges(map...)
call.

> >      /* Use if to avoid compiler warning */
> >      if ( iommu_iotlb_flush_all(d, flush_flags) )
> 
> Don't you need to fold map.flush_flags into flush_flags ahead of this call?
> Or can the variable perhaps go away altogether, being replaced by the struct
> field?

Yes, the variable ends up being replaced in a later patch, hence I
didn't touch it here.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:29:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:29:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648027.1011940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXMP-0004XC-5a; Tue, 05 Dec 2023 15:29:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648027.1011940; Tue, 05 Dec 2023 15:29:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXMP-0004X2-25; Tue, 05 Dec 2023 15:29:21 +0000
Received: by outflank-mailman (input) for mailman id 648027;
 Tue, 05 Dec 2023 15:29: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXMO-0004DQ-Ak
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:29:20 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0eface72-9383-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:29:19 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3332f1512e8so3952587f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:29:19 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d9-20020adffd89000000b0033330846e76sm12399040wrr.86.2023.12.05.07.29.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:29:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0eface72-9383-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701790159; x=1702394959; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=DyzPil46c5uKDF+o+SOEz2EUiHPYhlbcK1RR1IHqYG4=;
        b=gze00CLaykkFc9fqdhLEidlKIfcjd9uiNZtPbu822p3KN+1/cHo5wnrKBpH7brqmzp
         3QEzl6V17pwFwuXlAulcEw0mxp6o0fkY0L9C7R+NUiGj7FjOE+tvKFtWzlkZAsPTyAvV
         xSndus9dWAY106Ew2qS9tYISTUKumkQTau1Pg2V8SxJgrMmWoycxUq16BPckyxOqlIus
         vx02vexH6nUmuYGimAWDcFN3dFCnIvM8iVcAEiW0Y149pAJISliBK84lfu0bOP6rf51c
         nGaVqPphrQlXq4QDL4gkvp5lb6azwKd3lHaKSeHVUP5p+YRPnDh/plyPeVMuD1EGYryg
         CVmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701790159; x=1702394959;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=DyzPil46c5uKDF+o+SOEz2EUiHPYhlbcK1RR1IHqYG4=;
        b=TeiChGLqXRe1dnQ7ZBBUK61hbWH0U6UG8FkUk5tbkwbjqcoqgpJTRE6B53n6T+W9Gn
         mTRI58KQpvbqlxbGRoQEZcrTX6emZNaBgVsZS3sy2thWaPXM/7iwb31Qtf1ImVSUARWW
         5qr5L0ChhwiL0FIIDSSJpmCPCXs5PTFhManeP93pvld9O6vcs023wC+nInSclV/gOznW
         JZK/tyjjGyYxoQpCxGIbnGTVbzDH4xhzZqbMaNn6L/5tYTN4bopaiClyCwnlLqbLjVpi
         I00JrOTMKZnhAg7hWlDURwaxlSfh72XAVqJUoKROnow+Pedr5ii5y/RybAI/faPDIHW9
         lcLA==
X-Gm-Message-State: AOJu0YzF3XRKBG/D8eJNoIGwGrazotc0ldADc62POuk/yDuGCKpivhJ1
	JX7JafWqhjGGctA8388mq7vi
X-Google-Smtp-Source: AGHT+IGbM+DrR/IQmUtmLAj1dH2fe4wkmilFfFexXmKgv65PTTkBUVvSRFze955DoFW4hT1lON9U1w==
X-Received: by 2002:adf:e603:0:b0:333:2fd2:6f3e with SMTP id p3-20020adfe603000000b003332fd26f3emr4065426wrm.72.1701790159220;
        Tue, 05 Dec 2023 07:29:19 -0800 (PST)
Message-ID: <37624f9d-a679-44c8-84ab-42fb8e6a28a0@suse.com>
Date: Tue, 5 Dec 2023 16:29:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] x86/iommu: cleanup unused functions
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Liu <wl@xen.org>, Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 xen-devel@lists.xenproject.org
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-7-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231204094305.59267-7-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.12.2023 10:43, Roger Pau Monne wrote:
> Remove xen_in_range() and vpci_is_mmcfg_address() now that hey are unused.

Of the latter you remove only the declaration. Stale patch maybe?

For the former, am I misremembering that Andrew had asked for the function
to stay?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:31:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:31:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648035.1011950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXOg-0001J8-Ik; Tue, 05 Dec 2023 15:31:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648035.1011950; Tue, 05 Dec 2023 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 1rAXOg-0001J1-G4; Tue, 05 Dec 2023 15:31:42 +0000
Received: by outflank-mailman (input) for mailman id 648035;
 Tue, 05 Dec 2023 15: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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAXOe-0001HY-Tp
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:31:40 +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 61f7ffc2-9383-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:31:39 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40b397793aaso36087195e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:31:39 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 o18-20020a05600c4fd200b0040b45282f88sm22495494wmq.36.2023.12.05.07.31.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 07:31:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61f7ffc2-9383-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701790298; x=1702395098; 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=W3+uqWxErhzgehuMAHMjeWDwWx1J6qII9mSEKwAdnl4=;
        b=Wpayb/L7FtoXzmzTMRDTibi/M5nJQfxBGy+Zbny1LdTUIkkj4BBDOML+9MKCRz6f3M
         ClHgov/OIv7++lQkNzpbgFtdSjdp1qDjzdpwQL9o1d5nJG9CIVCclC64/pRm+CK8/hYi
         X7U+qBttfXq27F+yeyp3AYvknjhuXrVqU9gvs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701790298; x=1702395098;
        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=W3+uqWxErhzgehuMAHMjeWDwWx1J6qII9mSEKwAdnl4=;
        b=E/EHn7mGjJ/TezkXmSlnqKh91djSh6Uz9Fo4ZKt2tbKDH/lmOD8Ur6UButJLs1CkEp
         JsKdyASLZgAed3w6eI4GvONxoaTTdI3aCjhxKH4sTued5Hy4Axo2eIJO/8Rzn51obklT
         V6s8diI3wsyggSsvjU0TxAdU/HMy2MIIGL5kUNAOOyOPvOry3S2hMP6cp5f2LAXisMF9
         TlvwUS4KFsSkvhjNU5D/NWiqWEme5Y3nZvBynL2WLF4hXdNamKt5it4E2kB9WeVfQB84
         Ti4SUNAvhECO6iQNTnY7r9g2Gv/oKqCs/21kopBk9G9SdJ8/GyldjJjo0FihkAgQcepK
         aHSQ==
X-Gm-Message-State: AOJu0YzhGQiVDOL8rbfman8AfSm+53ORAit2zNp0sfIJ2NNUAC5hIhpe
	mFjWsAqJxoFfN28jiOGqm+Cotg==
X-Google-Smtp-Source: AGHT+IHDafa2JZglnuq3dYLxRyIyFA6k4CzGSIveC7Sf7z5IXH+7yO9c+12EdDgXzdHELovxxF7z7w==
X-Received: by 2002:a05:600c:a0b:b0:40b:5e4a:2344 with SMTP id z11-20020a05600c0a0b00b0040b5e4a2344mr655663wmp.70.1701790298511;
        Tue, 05 Dec 2023 07:31:38 -0800 (PST)
Date: Tue, 5 Dec 2023 16:31:37 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 4/6] x86/iommu: remove regions not to be mapped
Message-ID: <ZW9CWe3p_8BLUXs9@macbook>
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-5-roger.pau@citrix.com>
 <d94a20ea-67fa-4219-9184-3d7dd9bcf646@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <d94a20ea-67fa-4219-9184-3d7dd9bcf646@suse.com>

On Tue, Dec 05, 2023 at 04:11:21PM +0100, Jan Beulich wrote:
> On 04.12.2023 10:43, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/setup.c
> > +++ b/xen/arch/x86/setup.c
> > @@ -2136,6 +2136,54 @@ int __hwdom_init xen_in_range(unsigned long mfn)
> >      return 0;
> >  }
> >  
> > +int __hwdom_init remove_xen_ranges(struct rangeset *r)
> > +{
> > +    paddr_t start, end;
> > +    int rc;
> > +
> > +    /* S3 resume code (and other real mode trampoline code) */
> > +    rc = rangeset_remove_range(r, PFN_DOWN(bootsym_phys(trampoline_start)),
> > +                               PFN_DOWN(bootsym_phys(trampoline_end)));
> > +    if ( rc )
> > +        return rc;
> > +
> > +    /*
> > +     * This needs to remain in sync with the uses of the same symbols in
> > +     * - __start_xen()
> > +     * - is_xen_fixed_mfn()
> > +     * - tboot_shutdown()
> > +     */
> 
> As you're duplicating this comment from xen_in_range(), you want to
> - also mention xen_in_range() here,
> - also update xen_in_range()'s comment,

xen_in_range() is going away in the last patch, hence I did bother tyo
update it.

> - also update the respective comments in __start_xen() that also mention
>   xen_in_range().

That's done in patch 6/6.

> Everything else here looks good to me.

Let me know if doing such changes in a later patch is OK.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:34:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:34:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648042.1011960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXRF-0002gd-Vv; Tue, 05 Dec 2023 15:34:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648042.1011960; Tue, 05 Dec 2023 15:34:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXRF-0002gW-TD; Tue, 05 Dec 2023 15:34:21 +0000
Received: by outflank-mailman (input) for mailman id 648042;
 Tue, 05 Dec 2023 15:34: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXRE-0002gO-3m
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:34:20 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0cbf102-9383-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:34:18 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c09f5a7cfso28648805e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:34:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fc12-20020a05600c524c00b0040b400711f5sm22906462wmb.7.2023.12.05.07.34.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:34:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0cbf102-9383-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701790457; x=1702395257; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=lhrwPA7Segs02S9MBf4Fzb4Jivz7Fg6+BncEXy8zs0Q=;
        b=Et75QUDBrDdi4+lGy9HPkwJFagYqOxxDoZMeaDcqmjkdFdhL1BhliYgQecIw9tNZMT
         Gal/7azWkF9LFVapdy516d8+WTP1bW3vD6LBwoFR1/MN41pYRazfYpvTL6kzAN3+Jbkd
         M/EILon0mpPhzDE7MNHfGuV/utDtwrnfziZRKgtt2SY0cEYkVAKPiySIIwi37W7Pkn0B
         9kE1RXjCMZsaY/XwBP0JwK4y6I9Z8EvsmXSU9fmh8bWST/7UYnAtEGr+cRKp2UNkZdB2
         dljG2kmGyBSEUGajNdWMwfj15sZpyrjP6ze1khy1Yj2cth1DKdNMDIxEIu2w+rp79b4j
         ggbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701790457; x=1702395257;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=lhrwPA7Segs02S9MBf4Fzb4Jivz7Fg6+BncEXy8zs0Q=;
        b=GhS7lAKkgYAX5C64uXXr+7ZYmW5Ff+po7pNQ1RiJ+H4xLRW1mVJRsjb6+oHBUky3bD
         3QBjztZ8RWCTCyH4GFpsG9S0XI1oaRmCto+qjOCSzUIfsrLHwL/tPlfAXwczysv2Akyr
         nhE2R+JE7gEsBPgH6SnWilYS+PrfJgj9FvXsP6nbq1/hmvupGYZAXdPA485alzlKpLWg
         +YIvqFav1UhaVEqS5BrBw4NxPITbXbjent8gpuF12ijx9welaZtjbHaztPMPOx5Vl+14
         s54LvYojMd+MlEg9ICY44vMKfxH/uvbRE6o2Ch89CBKd8MPZ2d1OLo0HSrhnPrVaJQPd
         dKpw==
X-Gm-Message-State: AOJu0Yy4PpKxRz65uW53b5HF/SKzmNcMARDhXMxJN0RoqUN9ACdVzQ/M
	Ya0WqmQ5Y60iWwZzGitClJXJaPTZnaEL8WFlkbBx
X-Google-Smtp-Source: AGHT+IEJGbblyuPE91lPMwyGwbT8C3ttzJZDdOLv0Vi/BV2BVC91DKQaJKMMFwdpwM+W7aGaZlEJbA==
X-Received: by 2002:a7b:c394:0:b0:40b:5e21:ec2b with SMTP id s20-20020a7bc394000000b0040b5e21ec2bmr619893wmj.93.1701790457527;
        Tue, 05 Dec 2023 07:34:17 -0800 (PST)
Message-ID: <046856f4-3bce-4760-ac0b-0e3feb65cc64@suse.com>
Date: Tue, 5 Dec 2023 16:34:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] x86/iommu: remove regions not to be mapped
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-5-roger.pau@citrix.com>
 <d94a20ea-67fa-4219-9184-3d7dd9bcf646@suse.com> <ZW9CWe3p_8BLUXs9@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW9CWe3p_8BLUXs9@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 16:31, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 04:11:21PM +0100, Jan Beulich wrote:
>> On 04.12.2023 10:43, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/setup.c
>>> +++ b/xen/arch/x86/setup.c
>>> @@ -2136,6 +2136,54 @@ int __hwdom_init xen_in_range(unsigned long mfn)
>>>      return 0;
>>>  }
>>>  
>>> +int __hwdom_init remove_xen_ranges(struct rangeset *r)
>>> +{
>>> +    paddr_t start, end;
>>> +    int rc;
>>> +
>>> +    /* S3 resume code (and other real mode trampoline code) */
>>> +    rc = rangeset_remove_range(r, PFN_DOWN(bootsym_phys(trampoline_start)),
>>> +                               PFN_DOWN(bootsym_phys(trampoline_end)));
>>> +    if ( rc )
>>> +        return rc;
>>> +
>>> +    /*
>>> +     * This needs to remain in sync with the uses of the same symbols in
>>> +     * - __start_xen()
>>> +     * - is_xen_fixed_mfn()
>>> +     * - tboot_shutdown()
>>> +     */
>>
>> As you're duplicating this comment from xen_in_range(), you want to
>> - also mention xen_in_range() here,
>> - also update xen_in_range()'s comment,
> 
> xen_in_range() is going away in the last patch, hence I did bother tyo
> update it.
> 
>> - also update the respective comments in __start_xen() that also mention
>>   xen_in_range().
> 
> That's done in patch 6/6.
> 
>> Everything else here looks good to me.
> 
> Let me know if doing such changes in a later patch is OK.

If xen_in_range() is indeed going to go away (see my question there), I'd be
okay-ish with that.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:36:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648046.1011970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXTi-0003uH-Dk; Tue, 05 Dec 2023 15:36:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648046.1011970; Tue, 05 Dec 2023 15:36:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXTi-0003uA-Ae; Tue, 05 Dec 2023 15:36:54 +0000
Received: by outflank-mailman (input) for mailman id 648046;
 Tue, 05 Dec 2023 15:36:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAXTg-0003u3-P0
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:36:52 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c6b7ce7-9384-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:36:51 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40bda47c489so39722465e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:36:51 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 t20-20020a05600c199400b0040b36ad5413sm19067222wmq.46.2023.12.05.07.36.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 07:36:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c6b7ce7-9384-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701790611; x=1702395411; 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=sf6UFn4hQmCUidzIu1RkJcmNBUYW3Y7dhR4WaIDgfbA=;
        b=g5PpHJ2ufXmkm4eO5qizQjB3kPCGvoIX5jNq4UHGPloVqpckSeMzSXlKOOWKZJvG4x
         PCZcAd0Rqseed4z04xfVm7OBGy96Vph9Gg60Z1FGCNVCLn1UdGQbDa96bM1psEmZth9W
         5WrPavkBPsjgVCGXGY8PzzpfGXASsmYuMbzrQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701790611; x=1702395411;
        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=sf6UFn4hQmCUidzIu1RkJcmNBUYW3Y7dhR4WaIDgfbA=;
        b=ZPX63wC3P7LSuwT9xZO28l+AT0AsGr1eSJe9cA+MlQd8I0a7vX6bBEBfcCo78YMKR7
         THwI1/xVNE6prINujUUtJxAQPINT8868S14S4FTRIVAqbE7ZclPPElGaTxVTcL5FNcmK
         dOgzofT2dSEDj94z/HW6Uw0BPSyChxArQnSpO4Z+oXEqoR4SYm58RP8TlSiTp03q2P5W
         rVICsvGxxopSRKUEF1kYKrbE75uXxJj5fJywGMojlZ26qgIwN430HIbSLGNQaIodzQWv
         76LY59orSJyUgjSQen7nZ1FM5SCfIbbvIO6oV8lHJRuQjhe2I1fPuIlemXpPV8z+M0yP
         A/YQ==
X-Gm-Message-State: AOJu0YwXM7gCW0kLeJk/TtUEUXoSfTWFBxit5km0+qw49To87PNURfm5
	qX2q60bl1gECT822JDLShHx58Q==
X-Google-Smtp-Source: AGHT+IFpx4Y/BhD7U+yrwtSw4bFDAWj1T0il697jRJ9j+HlzndQUXzarOvhRDEo4yD8Vxkm4J5/TiQ==
X-Received: by 2002:a05:600c:4fce:b0:408:3c10:ad47 with SMTP id o14-20020a05600c4fce00b004083c10ad47mr703397wmq.40.1701790611308;
        Tue, 05 Dec 2023 07:36:51 -0800 (PST)
Date: Tue, 5 Dec 2023 16:36:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Message-ID: <ZW9DkoiVHhlzM6yA@macbook>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <ddbf1fad-e0c1-4b7c-9734-71d4997b5aa0@citrix.com>
 <ZW87Qq3Hw4ql-ZFw@macbook>
 <29b2d864-2b3f-4a74-9d61-534523e842cd@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <29b2d864-2b3f-4a74-9d61-534523e842cd@suse.com>

On Tue, Dec 05, 2023 at 04:14:57PM +0100, Jan Beulich wrote:
> On 05.12.2023 16:01, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 05, 2023 at 01:42:42PM +0000, Andrew Cooper wrote:
> >> On 28/11/2023 10:03 am, Roger Pau Monne wrote:
> >>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> >>> index f3abdf9cd111..f629157086d0 100644
> >>> --- a/xen/arch/x86/Makefile
> >>> +++ b/xen/arch/x86/Makefile
> >>> @@ -82,6 +82,8 @@ obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
> >>>  obj-y += sysctl.o
> >>>  endif
> >>>  
> >>> +CFLAGS-$(CONFIG_LIVEPATCH) += -falign-functions=$(CONFIG_CC_FUNCTION_ALIGNMENT)
> >>
> >> I'd really prefer not to express it like this.Â  For one, a major reason
> >> for using an alignment of 16b or more is simply performance.
> >>
> >> Also, it isn't "CC" when we get the asm macros working.
> >>
> >> Copy Linux more closely.Â  Then, you have LIVEPATCH select
> >> FUNCTION_ALIGNMENT_{8,16}B as appropriate.Â  And PERFORMANCE selects
> >> FUNCTION_ALIGNMENT_16B or perhaps 32B depending on uarch.
> > 
> > So just use CONFIG_FUNCTION_ALIGNMENT and drop the CC part of it?
> > That would indeed be fine.  We will also need to adjust
> > CC_SPLIT_SECTIONS to drop the CC_ prefix when we start using it in
> > assembly code.
> 
> Could we prune the CC infixes once everything is settled asm-code-wise?

That would also be fine by me.

> >> If we ever get around to having KCFI, then we need 16B irrespective of
> >> anything else.
> >>
> >>
> >>
> >> As for the subject, it's not really about size; the function size is
> >> still going to be small irrespective of the alignment.
> > 
> > What about wording it like:
> > 
> > x86/livepatch: set function alignment to ensure minimal space between functions
> 
> This still wouldn't be right, as there may be no padding at all between
> functions (if they're just the right size).

But no padding would still be fine given the text above, as then the
minimal space requirement is already meet?

> Maybe "minimal distance
> between function entry points"? Getting long-ish, though ...

Oh, I see.  You want to explicitly mention the distance is between
function entry points, as otherwise one way to read the subject would
be distance between function end and next function entry point?

It's indeed a bit long for my taste, but I don't mind adjusting if you
think the current wording could cause confusion.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:39:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:39:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648052.1011980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXVj-0004k8-Pd; Tue, 05 Dec 2023 15:38:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648052.1011980; Tue, 05 Dec 2023 15:38:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXVj-0004k1-MR; Tue, 05 Dec 2023 15:38:59 +0000
Received: by outflank-mailman (input) for mailman id 648052;
 Tue, 05 Dec 2023 15:38: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXVi-0004jv-Ns
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:38:58 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66c26d0a-9384-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:38:56 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40838915cecso59881805e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:38:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v11-20020a05600c444b00b003fefaf299b6sm19006941wmn.38.2023.12.05.07.38.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:38:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66c26d0a-9384-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701790736; x=1702395536; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=QAX7ETSjirtUSC9PqhCtV6ZQHcW5zmlxA1Ng496P9Rs=;
        b=Bx7QiG/CAxqZk5Gs8k/Ew8Nz1bLtR2+Q3Xawp88Xk8hTnCqo4yHRlgvPNSj6FZkMAI
         1wVJtujLmmQVlpo+BubJDvs1VMZYEtqdgBxRw5OQLah9YxY4TcooiEmShjFz8LKzI2Dr
         iDRjH3tD+Qe1iSb2cQ0P5mgzdUTu21YV44CgGABbaXHg9DwaPTc7Ab7ufdSe79XUuorp
         hn5npu4j+WkuzxbAT/Jr8WPvSo5Ro6fsNPGeHoN2967kCE+ZYY+uPZy26PigJOdgfDLj
         WauFu46rRknJJmR/NGMbEWJkbrE9oJIxlEKw905FDiy/WCyW3oVCbfwQilK/hwD9xG8x
         G72g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701790736; x=1702395536;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=QAX7ETSjirtUSC9PqhCtV6ZQHcW5zmlxA1Ng496P9Rs=;
        b=gXDnEK2GRh5eBjKTi+j56a0xW6E37kXT3QCEZulpyDfseAVjFIWbKhSyTs4tnlbL23
         +Wue7UZw+XYr/iTp4yWxV0IpgdBNt8a9Ysa4J6OQeLBbR+sj5tZPq/MA0C0GYC7/nfEG
         zTk0UJywVws0KGPGDELL5ZiVpXX6wKOz3weXLiawM9/pk3iRU1L8JmhXpgXZ63IC/hY5
         2jhlnlj7u3YWoB9mKG7Pti/zVVWYBm1PoChRsN0Tm6C6makCc0PN3whLaAUrpadjZyOD
         H8cvIFeqSTnqpTuOKCCz6jD9V0vumAutu4QMP6g8vVzTFo9bqKEEZE5xcQq0a+xLOhwR
         bfLA==
X-Gm-Message-State: AOJu0Yz5zFmaITLb6RwE2iEMiupfyHOwJrkaZTVcA7RVZJ9IKygxtgmO
	/Ofz5dq1ekL7yo0EkmBCX16q
X-Google-Smtp-Source: AGHT+IFvnyulpSObkRIXdLFgT75T1A07sOn7NFYVDKdqlE3g+XpStu6g+/ZxYgPKApBaQJpXKgpf+A==
X-Received: by 2002:a05:600c:4515:b0:40b:5e1c:af2b with SMTP id t21-20020a05600c451500b0040b5e1caf2bmr626444wmo.49.1701790736006;
        Tue, 05 Dec 2023 07:38:56 -0800 (PST)
Message-ID: <fdfda320-b73b-4830-8f1b-d261b02bcdde@suse.com>
Date: Tue, 5 Dec 2023 16:38:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/39] xen/riscv: disable unnecessary configs
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.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: <b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> The patch also fixes the build script as conf util expects
> to have each config on separate line.

The approach doesn't really scale (it's already odd that you add the
(apparently) same set four times. There's also zero justification for
this kind of an adjustment (as per discussion elsewhere I don't think
we should go this route, and hence arguments towards convincing me [and
perhaps others] would be needed here).

> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -522,6 +522,38 @@ archlinux-current-gcc-riscv64:
>      CONTAINER: archlinux:current-riscv64
>      KBUILD_DEFCONFIG: tiny64_defconfig
>      HYPERVISOR_ONLY: y
> +    EXTRA_XEN_CONFIG:
> +      CONFIG_COVERAGE=n
> +      CONFIG_GRANT_TABLE=n
> +      CONFIG_SCHED_CREDIT=n
> +      CONFIG_SCHED_CREDIT2=n
> +      CONFIG_SCHED_RTDS=n
> +      CONFIG_SCHED_NULL=n
> +      CONFIG_SCHED_ARINC653=n
> +      CONFIG_TRACEBUFFER=n
> +      CONFIG_HYPFS=n
> +      CONFIG_GRANT_TABLE=n
> +      CONFIG_SPECULATIVE_HARDEN_ARRAY=n
> +      CONFIG_ARGO=n
> +      CONFIG_HYPFS_CONFIG=n
> +      CONFIG_CORE_PARKING=n
> +      CONFIG_DEBUG_TRACE=n
> +      CONFIG_IOREQ_SERVER=n
> +      CONFIG_CRASH_DEBUG=n
> +      CONFIG_KEXEC=n
> +      CONFIG_LIVEPATCH=n
> +      CONFIG_MEM_ACCESS=n
> +      CONFIG_NUMA=n
> +      CONFIG_PERF_COUNTERS=n
> +      CONFIG_HAS_PMAP=n
> +      CONFIG_TRACEBUFFER=n
> +      CONFIG_XENOPROF=n
> +      CONFIG_COMPAT=n
> +      CONFIG_COVERAGE=n
> +      CONFIG_UBSAN=n
> +      CONFIG_NEEDS_LIBELF=n
> +      CONFIG_XSM=n
> +
>  
>  archlinux-current-gcc-riscv64-debug:
>    extends: .gcc-riscv64-cross-build-debug

I think I've said so elsewhere before: Please avoid introducing double
blank lines, unless entirely unavoidable (for reasons I cannot think of).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:40:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:40:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648056.1011989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXX8-0006VX-7O; Tue, 05 Dec 2023 15:40:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648056.1011989; Tue, 05 Dec 2023 15: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 1rAXX8-0006VQ-4m; Tue, 05 Dec 2023 15:40:26 +0000
Received: by outflank-mailman (input) for mailman id 648056;
 Tue, 05 Dec 2023 15:40:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXX7-0006U4-Cx
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:40:25 +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 9a866d5d-9384-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:40:23 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40bd5ea84d6so20294225e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:40:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v11-20020a05600c444b00b003fefaf299b6sm19006941wmn.38.2023.12.05.07.40.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:40:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a866d5d-9384-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701790823; x=1702395623; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=l7SdrXFSUR1cZ9X6jPrAC1DXfmceQ8UQxXuqv+5OIf0=;
        b=VlJp3xeOI0fxj7MzrmZJLITIdebiYeRwReH3bbv6TFYm6XHJPPbhuRMTo6bQ//olkV
         Zvc2eTGdDHrp1BATAu5P+h86Ubxftwv1zSdVLTjbmYdxWDX2H5E/xoAP9gsRZ6igd5z9
         rSULwAjxnDpRitcPSxA8NWX8s3EzDmYYGsgrftiwH8y15zbB+v7nIcElWiSg2pY/mvHN
         MDiDgniM26qnTuZyUMQ8+/uJh+uUwSPRdiUGdYeAL9YMOW5fvVCXJ4vj3B3pQJU5VloP
         EmqB2vZsDhv3L5pt2K2rZaySW26rOp02lqOGD/xASlkY37AfbYJVxMKDSCSVNhK8eLqW
         To6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701790823; x=1702395623;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=l7SdrXFSUR1cZ9X6jPrAC1DXfmceQ8UQxXuqv+5OIf0=;
        b=avoqaCtMaKX8wfMU59wv1RoZG86kjgDq0Fyo6BJvOwZpl7m0ApWsdIJTV46KXtW+up
         67372G2Bjv5YjH7hs81M0UZEi0e2VY8oI8Cj/OAscZnWj1tTZzSUSCTrYyCS2qCgvG8w
         yJofmJC2VDEhU66gJ22sfLj8VdYGacwBVebEnsCs5qqFUmsatqQ7kEADyhVnNo1zvaab
         JYN31EyhX5trT6HJV8LSaKTuhIn9sTc/9tMMPjajW7MoWjTgOAyXxbwnwulDyPA+k2J+
         0X+Ogk62GJopuN97agiiYaTxp98pT9EUx4o60mcLFd4B/qk73dN0dPb40rExeVX/AHx7
         6YhQ==
X-Gm-Message-State: AOJu0YyDfbg4ELV2beqme8ogswEZ6X+8ToUcwDbxto2kXmBcTSd9CdJC
	vcbhoePhq+/zyUPBFSTZ8rgv
X-Google-Smtp-Source: AGHT+IFCLNeq0kyg/nAeqHQHH4ucxyGDrhi7soP0oYzwMcqgXZ0CFK5JAZVXJ8hQkYHPT4F6ORx3zQ==
X-Received: by 2002:a7b:ce08:0:b0:40b:5e56:7b67 with SMTP id m8-20020a7bce08000000b0040b5e567b67mr708023wmc.176.1701790822846;
        Tue, 05 Dec 2023 07:40:22 -0800 (PST)
Message-ID: <3d7b5337-7a0c-472c-8416-453194e8c38d@suse.com>
Date: Tue, 5 Dec 2023 16:40:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/39] xen/riscv: use some asm-generic headers
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <90beae5dfa2bc4c27108ca4dea630306dfdfe81f.1700761381.git.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: <90beae5dfa2bc4c27108ca4dea630306dfdfe81f.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Some headers are the same as asm-generic verions of them
> so use them instead of arch-specific headers.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/Makefile
> @@ -0,0 +1,14 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +generic-y += altp2m.h
> +generic-y += device.h
> +generic-y += div64.h
> +generic-y += hardirq.h
> +generic-y += hypercall.h
> +generic-y += iocap.h
> +generic-y += monitor.h
> +generic-y += numa.h
> +generic-y += paging.h
> +generic-y += percpu.h
> +generic-y += random.h
> +generic-y += softirq.h
> +generic-y += vm_event.h

... these headers are indeed all going to appear.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:43:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:43:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648060.1011999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXaS-00086A-MJ; Tue, 05 Dec 2023 15:43:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648060.1011999; Tue, 05 Dec 2023 15: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 1rAXaS-000863-JM; Tue, 05 Dec 2023 15:43:52 +0000
Received: by outflank-mailman (input) for mailman id 648060;
 Tue, 05 Dec 2023 15: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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAXaR-00080l-9g
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:43:51 +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 15531e77-9385-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:43:49 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3334a701cbbso2007935f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:43:49 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 ay10-20020a05600c1e0a00b0040b397787d3sm22831916wmb.24.2023.12.05.07.43.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 07:43:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 15531e77-9385-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701791029; x=1702395829; 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=/feExbbIXbtB63BatL1mfmntUZAlic5BaAzXYxCV9r0=;
        b=vOGFeSxofTSfnlZs5i2sayLvQGOBXaGLbd5vIz+jzUMESBUePpIldr/NmLscKx2nol
         zqfY0Sw1jVGAJ1nVx5hmKUTBZM4ZOvdO/QxaqdsSfyW0DhFayL5Tbbk45GKN9b8U7QY0
         sJtKg/SD4qq0s8wT4KQ4fivXtv92zdFTmNyZ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791029; x=1702395829;
        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=/feExbbIXbtB63BatL1mfmntUZAlic5BaAzXYxCV9r0=;
        b=C60QwNm0AcVsx0znWGjmlrxN7fsyIatiTm5Fkr9/KSWJvLalXSeVIGQrN2iI1sDBvQ
         CDjcZQMi5k2uftpd22n8hoRb/FA7KH4hjzABATHUdzqvluK5NZjBerahJg0EeyRJ5kx7
         AuChPbVWJa7yTyMfV1lfRDIkzeftH0GE0rtfnaZ4JO6hdFE/Slr0lTTSvepvjzI8CZrr
         uWXfDSgpg2BfT+Etg9YJBRmmrhiHDkRCLwUrVhHZOJ9Murv9zuKSjKD79a1WGxVh515Q
         5TZG4TRUTSlJ5YQNJIhbr05IBf0csDaMjz3dv0uzGsPEGhADuGdj+QrztFz/YVhG4vtx
         jGkA==
X-Gm-Message-State: AOJu0YyHPQbdPD+UY7+wVYtecbGVPmECUsgWwJ3Zyuf+mIJnbUTBDksQ
	KxabL5KjpM5be/3O5ZRUr7wPcQ==
X-Google-Smtp-Source: AGHT+IG8NeDUtHz8PmYrShf1CdvjTtD5flIz+eVovetARLjV1sXzl/8SenKBrD3eXbic/FGsKISwIw==
X-Received: by 2002:a7b:c846:0:b0:40b:5e21:c5bc with SMTP id c6-20020a7bc846000000b0040b5e21c5bcmr417492wml.138.1701791028824;
        Tue, 05 Dec 2023 07:43:48 -0800 (PST)
Date: Tue, 5 Dec 2023 16:43:47 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 5/6] x86/iommu: switch hwdom IOMMU to use a rangeset
Message-ID: <ZW9FM44pEIn4odkn@macbook>
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-6-roger.pau@citrix.com>
 <095c2f4c-9b10-4ab8-95ea-101f62096678@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <095c2f4c-9b10-4ab8-95ea-101f62096678@suse.com>

On Tue, Dec 05, 2023 at 04:27:05PM +0100, Jan Beulich wrote:
> On 04.12.2023 10:43, Roger Pau Monne wrote:
> > @@ -476,58 +406,55 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >      if ( !map )
> >          panic("IOMMU init: unable to allocate rangeset\n");
> >  
> > -    max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
> > -    top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
> > +    if ( iommu_hwdom_inclusive )
> > +    {
> > +        /* Add the whole range below 4GB, UNUSABLE regions will be removed. */
> > +        rc = rangeset_add_range(map, 0, max_pfn);
> > +        if ( rc )
> > +            panic("IOMMU inclusive mappings can't be added: %d\n",
> > +                  rc);
> > +    }
> >  
> > -    for ( i = 0, start = 0, count = 0; i < top; )
> > +    for ( i = 0; i < e820.nr_map; i++ )
> >      {
> > -        unsigned long pfn = pdx_to_pfn(i);
> > -        unsigned int perms = hwdom_iommu_map(d, pfn, max_pfn);
> > +        struct e820entry entry = e820.map[i];
> >  
> > -        if ( !perms )
> > -            /* nothing */;
> > -        else if ( paging_mode_translate(d) )
> > +        switch ( entry.type )
> >          {
> > -            int rc;
> > +        case E820_UNUSABLE:
> > +            if ( !iommu_hwdom_inclusive || PFN_DOWN(entry.addr) > max_pfn )
> > +                continue;
> 
> The !iommu_hwdom_inclusive part isn't really needed here, is it? The ...

Nor the PFN_DOWN(entry.addr) > max_pfn.

> > -            rc = p2m_add_identity_entry(d, pfn,
> > -                                        perms & IOMMUF_writable ? p2m_access_rw
> > -                                                                : p2m_access_r,
> > -                                        0);
> > +            rc = rangeset_remove_range(map, PFN_DOWN(entry.addr),
> > +                                       PFN_DOWN(entry.addr + entry.size - 1));
> 
> ... call here would then simply be a no-op, as it looks. And things would
> overall look more safe if the removal was skipped for fewer reasons.

OK, the removal can be done unconditionally if so desired.

> > @@ -605,7 +532,7 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >      rangeset_destroy(map);
> >  
> >      /* Use if to avoid compiler warning */
> > -    if ( iommu_iotlb_flush_all(d, flush_flags) )
> > +    if ( iommu_iotlb_flush_all(d, map_data.flush_flags) )
> >          return;
> >  }
> 
> Ah yes, here is said change. But I think for correctness this wants
> moving to the earlier patch.

OK, so something like:

map_data.flush_flags |= flush_flags;

And adjusting the iommu_iotlb_flush_all() would be fine in this patch
context.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:45:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:45:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648065.1012010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXbz-00013O-1N; Tue, 05 Dec 2023 15:45:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648065.1012010; Tue, 05 Dec 2023 15:45:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXby-00013H-UC; Tue, 05 Dec 2023 15:45:26 +0000
Received: by outflank-mailman (input) for mailman id 648065;
 Tue, 05 Dec 2023 15:45:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXbx-00011j-8l
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:45:25 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d3a07bf-9385-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:45:23 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-333536432e0so1308747f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:45:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 i18-20020adfefd2000000b003334a1e92dasm5619094wrp.70.2023.12.05.07.45.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:45:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d3a07bf-9385-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701791122; x=1702395922; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=F752FJDv0lL6He1JsQDOS7E7JD7qZHZ3sbRhf2iA3sA=;
        b=IUUChb6pJ22mSO1JomprpG4Q4+TZVQ28SYGl7cl1TyxQI9NsSqvtO8Gq/8zKJulDuu
         A/3/TIvx5pThw8nkjfsU+p+gMz9Dd3tb5iicRz1iIWa+BizezGiN2FaW9bi2HP6cR/cf
         xnSORUYayDwoXf6wWVKhTJAFM66ldZl/Ehs2CkN2LhT0s48WB1mrryb+I+xptJ3QKrd+
         lYiSdJ6YPEF3Hcx/riix3QcXSk20xR+oh9pJC89A0VS+jFu95I2+zcQ8Qkx87+nJkbcM
         mqLob4Vqvmc/2h81owD6Ef/yG/MUZRFvWT/PhIWkEi6LKwt3z7OCWwzDaWdspgNZzBqb
         GgMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791122; x=1702395922;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=F752FJDv0lL6He1JsQDOS7E7JD7qZHZ3sbRhf2iA3sA=;
        b=jA72ORZEW7RndE5PfTsPGMhTCapxrIXJswW2ukEiqZOGQSAz5rMNLSJSCfvls3O326
         2eB2cFGpTzm85i8buofvpW62f8U4eUc2+Wl69v/jgZmNR6lJc19AKQg6AyM1JaHh2XVE
         NjkhX1d+YQkAIbcWJfgcdpO1syO/r189x25O6fXanNdvd4iuRz6O8Kpi8JVyCsgUDbYb
         UwwUl6QoJuQgx8pyxVDKAqOPSScEV4CbY9y1XJY+bh3TwYaF0gxhNCYrLFPJ+u0+2n3I
         3FENid6efzLy/zV1Pa0zDx744XlU70PBEyJOlX66xp4miT99Xag0XNyxg/tPWdO+cQfq
         TlLg==
X-Gm-Message-State: AOJu0YyfyEk4oGnFpqOMCXTlBAVoJ+DJk6Xb1lv1i4Sk8k2wAfjLZY3b
	RfMxfWLqV71ljcCkhtDuyiGd
X-Google-Smtp-Source: AGHT+IHmPa+Fh04Egs9qsR/amBSYFsYWmSjyzgPH+1Olcgy97k33HQdN44ZuA+n9IgMF/KE+Y85QDg==
X-Received: by 2002:a5d:4102:0:b0:332:d07a:6f9d with SMTP id l2-20020a5d4102000000b00332d07a6f9dmr4236650wrp.53.1701791122726;
        Tue, 05 Dec 2023 07:45:22 -0800 (PST)
Message-ID: <39c16b91-ecd9-4d97-8fc2-497929103e7e@suse.com>
Date: Tue, 5 Dec 2023 16:45:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] x86/livepatch: set function alignment to ensure
 minimal function size
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-2-roger.pau@citrix.com>
 <ddbf1fad-e0c1-4b7c-9734-71d4997b5aa0@citrix.com> <ZW87Qq3Hw4ql-ZFw@macbook>
 <29b2d864-2b3f-4a74-9d61-534523e842cd@suse.com> <ZW9DkoiVHhlzM6yA@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW9DkoiVHhlzM6yA@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 16:36, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 04:14:57PM +0100, Jan Beulich wrote:
>> On 05.12.2023 16:01, Roger Pau MonnÃ© wrote:
>>> On Tue, Dec 05, 2023 at 01:42:42PM +0000, Andrew Cooper wrote:
>>>> As for the subject, it's not really about size; the function size is
>>>> still going to be small irrespective of the alignment.
>>>
>>> What about wording it like:
>>>
>>> x86/livepatch: set function alignment to ensure minimal space between functions
>>
>> This still wouldn't be right, as there may be no padding at all between
>> functions (if they're just the right size).
> 
> But no padding would still be fine given the text above, as then the
> minimal space requirement is already meet?
> 
>> Maybe "minimal distance
>> between function entry points"? Getting long-ish, though ...
> 
> Oh, I see.  You want to explicitly mention the distance is between
> function entry points, as otherwise one way to read the subject would
> be distance between function end and next function entry point?

Yes, I saw no other way of reading it. IOW ...

> It's indeed a bit long for my taste, but I don't mind adjusting if you
> think the current wording could cause confusion.

... it already did cause confusion. But maybe we can still think of
shrinking the result some ...

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:47:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:47:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648070.1012020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXdo-0002R5-Dl; Tue, 05 Dec 2023 15:47:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648070.1012020; Tue, 05 Dec 2023 15: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 1rAXdo-0002Qy-9K; Tue, 05 Dec 2023 15:47:20 +0000
Received: by outflank-mailman (input) for mailman id 648070;
 Tue, 05 Dec 2023 15:47: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXdn-0002Qs-M5
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:47:19 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9187d480-9385-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:47:18 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3333a3a599fso1811344f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:47:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 t20-20020a05600c199400b0040b36ad5413sm19093937wmq.46.2023.12.05.07.47.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:47:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9187d480-9385-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701791237; x=1702396037; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=65eTcWf9uOrFD9ZNDzI5Ko3Ji4eS0sQsuPZrLjadFZ8=;
        b=MjDEbyollXl1IIsIlG4r1PiKrqPg5H10J42/D9uVyUGzXuobMrhmNJlL2pIPVPqbEG
         UV98xRXv/nFXXOAfm+H2RP1mro+i60mMjs0Duhl4s8pP+ma06CLp5gre6uI9E50uPcqh
         zEKbSaIX6kbjmu3n2pJWchXaxsFzqOMN9gEATE99Lw0CTa+dOO0pfye73FYin4TnQJZf
         m36POp+MPCp7JGBBHSKkagY1GZc0eU27Go3iddQRNZN1GggWIhxyDK4Fi3qoVmK3dWy3
         xEQcm1f5PiTn/xmb8YbDuX0thojdnfwTtVj2t+5Yitf0rS2WSk+DIccVekklIR0Z0w88
         Au3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791237; x=1702396037;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=65eTcWf9uOrFD9ZNDzI5Ko3Ji4eS0sQsuPZrLjadFZ8=;
        b=Fh6cf0cuFs18eRRgmqGdr0QEyrWKquVMgQNmuVMem4LAOI+HGhmchmIAhQ/S1uz3dp
         LOM3JwgkecOGx3sD2Ol/doV+78dlKS5gsr8cXUnY0WDuY+3H02LptRpvIG8sU6g1Tcbs
         mg8T7nlCWAfYo6gqL8LEtgYqVZm7pkTyt9PJrX9RWBUYArJPkde0+lhnzkfQr98iMyix
         ijiIYElF2WAneoEcdnCKv3jZUxBqZveN34OgNTPPkUp/+IpLniYRNFQopQsk6pSWyePJ
         Ggj7jqH7ULa9Gkf5fhcb1HylrTsuNpLbLeRIsKMIi1vkMLH1GBeK5XrEKVqcRruog+Gs
         sV/w==
X-Gm-Message-State: AOJu0YybCb5Goz/pCR60s1P3/R2d8vBQ2kMJngObgrRdzX000o4GOYgt
	ZQIsC38NyqfE2bBG6SRtNOvJ
X-Google-Smtp-Source: AGHT+IGEsd53zyyugF5jJ/xSSq4kaysAmNegTfVcdhodOxwji7USVQqgIOwsQzmVRR8+K02xUwfSfA==
X-Received: by 2002:a05:600c:4d0f:b0:40b:5e56:7b66 with SMTP id u15-20020a05600c4d0f00b0040b5e567b66mr653280wmp.175.1701791237285;
        Tue, 05 Dec 2023 07:47:17 -0800 (PST)
Message-ID: <798cfd87-7c10-41e9-a427-c7177da4d063@suse.com>
Date: Tue, 5 Dec 2023 16:47:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/6] x86/iommu: switch hwdom IOMMU to use a rangeset
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-6-roger.pau@citrix.com>
 <095c2f4c-9b10-4ab8-95ea-101f62096678@suse.com> <ZW9FM44pEIn4odkn@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW9FM44pEIn4odkn@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 16:43, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 04:27:05PM +0100, Jan Beulich wrote:
>> On 04.12.2023 10:43, Roger Pau Monne wrote:
>>> @@ -476,58 +406,55 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>>>      if ( !map )
>>>          panic("IOMMU init: unable to allocate rangeset\n");
>>>  
>>> -    max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
>>> -    top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
>>> +    if ( iommu_hwdom_inclusive )
>>> +    {
>>> +        /* Add the whole range below 4GB, UNUSABLE regions will be removed. */
>>> +        rc = rangeset_add_range(map, 0, max_pfn);
>>> +        if ( rc )
>>> +            panic("IOMMU inclusive mappings can't be added: %d\n",
>>> +                  rc);
>>> +    }
>>>  
>>> -    for ( i = 0, start = 0, count = 0; i < top; )
>>> +    for ( i = 0; i < e820.nr_map; i++ )
>>>      {
>>> -        unsigned long pfn = pdx_to_pfn(i);
>>> -        unsigned int perms = hwdom_iommu_map(d, pfn, max_pfn);
>>> +        struct e820entry entry = e820.map[i];
>>>  
>>> -        if ( !perms )
>>> -            /* nothing */;
>>> -        else if ( paging_mode_translate(d) )
>>> +        switch ( entry.type )
>>>          {
>>> -            int rc;
>>> +        case E820_UNUSABLE:
>>> +            if ( !iommu_hwdom_inclusive || PFN_DOWN(entry.addr) > max_pfn )
>>> +                continue;
>>
>> The !iommu_hwdom_inclusive part isn't really needed here, is it? The ...
> 
> Nor the PFN_DOWN(entry.addr) > max_pfn.

Hmm, I couldn't convince myself that could also be dropped.

>>> -            rc = p2m_add_identity_entry(d, pfn,
>>> -                                        perms & IOMMUF_writable ? p2m_access_rw
>>> -                                                                : p2m_access_r,
>>> -                                        0);
>>> +            rc = rangeset_remove_range(map, PFN_DOWN(entry.addr),
>>> +                                       PFN_DOWN(entry.addr + entry.size - 1));
>>
>> ... call here would then simply be a no-op, as it looks. And things would
>> overall look more safe if the removal was skipped for fewer reasons.
> 
> OK, the removal can be done unconditionally if so desired.
> 
>>> @@ -605,7 +532,7 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>>>      rangeset_destroy(map);
>>>  
>>>      /* Use if to avoid compiler warning */
>>> -    if ( iommu_iotlb_flush_all(d, flush_flags) )
>>> +    if ( iommu_iotlb_flush_all(d, map_data.flush_flags) )
>>>          return;
>>>  }
>>
>> Ah yes, here is said change. But I think for correctness this wants
>> moving to the earlier patch.
> 
> OK, so something like:
> 
> map_data.flush_flags |= flush_flags;

Or simply drop flush_flags here right away (read: replace by map.flush_flags).

Jan

> And adjusting the iommu_iotlb_flush_all() would be fine in this patch
> context.
> 
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:48:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:48:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648073.1012029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXez-0003Ki-Lo; Tue, 05 Dec 2023 15:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648073.1012029; Tue, 05 Dec 2023 15:48:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXez-0003Kb-JA; Tue, 05 Dec 2023 15:48:33 +0000
Received: by outflank-mailman (input) for mailman id 648073;
 Tue, 05 Dec 2023 15:48: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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAXey-0003KT-70
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:48:32 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bd20f235-9385-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:48:30 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c09dfd82aso34315465e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:48:30 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 v9-20020a05600c470900b004063cd8105csm22722467wmo.22.2023.12.05.07.48.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 07:48:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd20f235-9385-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701791310; x=1702396110; 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=awy9i9tBZl7MV7W0LVS7aosLN97IiP0YvJ30MfOMUdQ=;
        b=ZrktTd2BxxEbngOpM3pQCEWx741u/uXk4QzA23XV1EP00T5pE933j78x57EJQ5gYfg
         KlLGuj6A5v2Ows+QTGeOT2BD8YDGkcQPKLYt98jDxTw82iUayv4aJg8XCKs8VuizBpUB
         xY/DK3Ok6EeZy4F0KyDGambgWnT93LPr4Hlwk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791310; x=1702396110;
        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=awy9i9tBZl7MV7W0LVS7aosLN97IiP0YvJ30MfOMUdQ=;
        b=peHCAGPZmyFjZkC3n0+iZeMOgFGejeIAnHwfI8v7ijC5WliUZwwccDRBdjP6RBVDxv
         G2/19/BRAFR/d2Yk6Io1RmyfsWgsjXgFuUVAZd/3PMAcbtj6Il2hfXDFYPlZF1sqAv4F
         AGZvZCBK73IbMFdFuoeWQasgmfHwje8qmusWGesIqTYdDOuvWyWyqdr8IRuBjP+xZ9+X
         4TlYkwdKa34T21f4jjmsevAWiXCARYEyIQ6TpHCFDPPrpF8C3HOONS2sZqXUqsuWHTe2
         iLOYvTX8Af8C7gjlf877LqIDhoedkmCZ36hFgjFBgknEvzhtn2KxLrOkQqJpeUyfRULw
         DEZg==
X-Gm-Message-State: AOJu0YwXDOfMuAeq6b9fRl10X0a4pKjB6yZoQQQXUm85Ezzu9Zm7wIuG
	gOXv7B8gc8rRJRiY1LGOvNmYGQ==
X-Google-Smtp-Source: AGHT+IHj+tafJ8m2QEHEf28SQvVPOfVY6dNG0LhTwp8eU9b24znSGWiFw9S7tdBcAjDaXb4NhQM1Hg==
X-Received: by 2002:a05:600c:5487:b0:40b:5e1d:83a9 with SMTP id iv7-20020a05600c548700b0040b5e1d83a9mr657698wmb.61.1701791310495;
        Tue, 05 Dec 2023 07:48:30 -0800 (PST)
Date: Tue, 5 Dec 2023 16:48:29 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>, Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?utf-8?B?TcOzd2th?= <mateusz.mowka@intel.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 6/6] x86/iommu: cleanup unused functions
Message-ID: <ZW9GTeqW4Gsqi5Rg@macbook>
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-7-roger.pau@citrix.com>
 <37624f9d-a679-44c8-84ab-42fb8e6a28a0@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <37624f9d-a679-44c8-84ab-42fb8e6a28a0@suse.com>

On Tue, Dec 05, 2023 at 04:29:18PM +0100, Jan Beulich wrote:
> On 04.12.2023 10:43, Roger Pau Monne wrote:
> > Remove xen_in_range() and vpci_is_mmcfg_address() now that hey are unused.
> 
> Of the latter you remove only the declaration. Stale patch maybe?

Fixed.

> For the former, am I misremembering that Andrew had asked for the function
> to stay?

https://lore.kernel.org/xen-devel/81534803-9da4-49b7-894e-f3fb5e8fb131@citrix.com

I did read Andrew's response as it being fine to switch the current
function to use a rangeset, but not as a request to duplicate it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:48:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:48:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648077.1012039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXfK-0003rP-2N; Tue, 05 Dec 2023 15:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648077.1012039; Tue, 05 Dec 2023 15: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 1rAXfJ-0003rI-Vl; Tue, 05 Dec 2023 15:48:53 +0000
Received: by outflank-mailman (input) for mailman id 648077;
 Tue, 05 Dec 2023 15:48:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXfJ-0003KT-2e
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:48:53 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca06ec16-9385-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:48:52 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40c07ed92fdso30141675e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:48:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 t20-20020a05600c199400b0040b36ad5413sm19093937wmq.46.2023.12.05.07.48.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:48:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca06ec16-9385-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701791332; x=1702396132; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=IlsBuXrdrUY13Ll0FrcTZ09U5KvbDKYxEXqZDMbOQK0=;
        b=erggtljhjcSZvv+PzBaAovrYWRw7Qz+ixV5peGJqw1nGOpOMi4zzoJ1dxdR3zDavF0
         S2WMqbPAmRQqsGq6QqEQqt9ETT3nM7eZdls4KK2yoF+NzruZr20HjyqWXyCRROfIj80v
         ON69SIeMhPJGsB596nfGejVq4MQ0Qo2bakwKg9i85wQuP8ccE3+8BWVBXAQQA+8P/3qV
         qQ1JAmh/83jPlU/RRu2ekc7cmNy92n+uJBV+VSFNA20KU9H4cDmPBSP7JPu14PrmmJsy
         KT8s/TYv+Y5VVRXdmckrm7soH1DRGnnImjZIFB2UhEt2d9A3TQCGpY+9tYqGNkZne7e5
         vqCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791332; x=1702396132;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=IlsBuXrdrUY13Ll0FrcTZ09U5KvbDKYxEXqZDMbOQK0=;
        b=PD6HknjHDbnTZTxmV4t6yDzsQjI8/XSKjXaCcGi9AdBPs2pdP7GqTwddiqvkSteURa
         v2ZveW0y2mqGbVxxeH4NI2r22vbiXvN7dVd/kArVnwQBac/Ko2upfUbHZCxoymPo/HSy
         MzbFGWdeOi0CsTZ/wIgvkZskmTWvlNI5dLkW1Nx9L21kFhIGmXOy5ITUb+B3yofmotRy
         qTmlxQqJtLgVuWWrtWNZjV8SQc46ZFAQK30rdogKTcdOZ4pSi/i/QHyHW7DdZBQXNi63
         /d6ztOf+QzbTI19AhnBBEtGTJzMxxaIkizGHJuviZ7RcL/FMHk2MXsjG7QVOA1DB6UHP
         V1xQ==
X-Gm-Message-State: AOJu0YwK90gZ6HznTninovgFJjqb0ePaAwjtYs00OeVJTDHB3sLz6cLW
	PAu93mtBiy6Xe99qhpGaHIs/
X-Google-Smtp-Source: AGHT+IFQET8Omnl8GC5cvnK/ey/XMeERiDnpLM01Gc4DxBmRI/ACMZ4xoyYjCEqZ2VSLKmbqqwzuvg==
X-Received: by 2002:a05:600c:1909:b0:40b:3e66:f5ff with SMTP id j9-20020a05600c190900b0040b3e66f5ffmr618942wmq.24.1701791332100;
        Tue, 05 Dec 2023 07:48:52 -0800 (PST)
Message-ID: <4059500c-19bc-4e6d-8677-d60af12f308c@suse.com>
Date: Tue, 5 Dec 2023 16:48:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/39] xen/riscv:introduce asm/byteorder.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <f55b209773bdf09c8563037f8bc6fb51d1df4c88.1700761381.git.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: <f55b209773bdf09c8563037f8bc6fb51d1df4c88.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:52:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:52:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648085.1012050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXid-0006X7-HV; Tue, 05 Dec 2023 15:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648085.1012050; Tue, 05 Dec 2023 15:52:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXid-0006X0-Ek; Tue, 05 Dec 2023 15:52:19 +0000
Received: by outflank-mailman (input) for mailman id 648085;
 Tue, 05 Dec 2023 15:52:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXib-0006VX-LN
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:52:17 +0000
Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com
 [2a00:1450:4864:20::444])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 438d3f5f-9386-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:52:16 +0100 (CET)
Received: by mail-wr1-x444.google.com with SMTP id
 ffacd0b85a97d-33348e711e0so1955771f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:52:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r13-20020a056000014d00b003333fc2cb92sm8277421wrx.58.2023.12.05.07.52.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:52:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 438d3f5f-9386-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701791536; x=1702396336; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Ddamk8lI7CKSJajJ77Rm6qKeyNaj9mnBdA6yYENfrYc=;
        b=PGFnDWk99Y3Uut+/ie5OuVLmrBK174GRP7prNzR5lMLlsv8lnhWtl8KWgTOfpDaSRO
         OmXPDqOQyz5ZAKNadpDG6tIiu197YAH0jLHx/1EZJexsGRFisOiI8DGBbFy2a47REXRP
         Fxi52sl/cyXATnkyACdpo2Rq4WhVgOhWVJy4dnvL51Ya7MJwybVj78BR2WOoSARjz21N
         2zszCkjWxgRoS/QEM3IXWUpNNhYZzFkMFp01zOnPZLmXBBMIxd3KP8eIq8Prit8STaR5
         PKCDx/0f/rIjQ/0P3b1lGIx+2yblpXNHCsyYfVnEIaEuAd/8tfeXLMPrsbpuUR855qNO
         Y2UQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791536; x=1702396336;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Ddamk8lI7CKSJajJ77Rm6qKeyNaj9mnBdA6yYENfrYc=;
        b=IlpbuRpVdZg13u3rLEoS6f0E6Ygcum5ddkzTchiwHFQ8vanV1sr9IybSVyAiSryUNB
         QY4y+0bVI82+xpFuZZbSh1yJgsTO7pMKhTgrHJpu4tBM7MFI9sakJ+Z7pG8vxV4ko37J
         RveOatkG+AiSomG9L8szqscukXNdG+Rsd4R7WzC+8Fo4xLVKK08vMKAHrzlDSKHiIodO
         oloZTU4CJbh9g0D7HSMJBx2URHXcf4j/gXR4qEwStOl7LCoX8qBzwi73r1WDb0YQpXUc
         GmPlv+YyH3WfpqEO6Rx25c4VIPovuTaVHSwDuQGaiy4HcLEugnmH1aAfsmOz/CkGQ5HE
         cI7A==
X-Gm-Message-State: AOJu0Yy7Ws9/tAN+RKrGK8qQEMWw1bbExQNjDk28uEwYUHDSzq+A2ZVN
	8oADILdnNeBQR3pOo7Pl6FFf
X-Google-Smtp-Source: AGHT+IGnwrq4Uoc7P8jbI9uJj9N5K2cMR3kpqJtkhMJC9ofuBl5Udg16sQ2e9k7LtRFho3eI4336hQ==
X-Received: by 2002:a5d:6a09:0:b0:333:4bd9:8e with SMTP id m9-20020a5d6a09000000b003334bd9008emr1722712wru.25.1701791536017;
        Tue, 05 Dec 2023 07:52:16 -0800 (PST)
Message-ID: <f26426b3-977f-4ef6-9fdd-b955ca4f66e1@suse.com>
Date: Tue, 5 Dec 2023 16:52:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] x86/iommu: cleanup unused functions
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Liu <wl@xen.org>, Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 xen-devel@lists.xenproject.org
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-7-roger.pau@citrix.com>
 <37624f9d-a679-44c8-84ab-42fb8e6a28a0@suse.com> <ZW9GTeqW4Gsqi5Rg@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW9GTeqW4Gsqi5Rg@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 16:48, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 04:29:18PM +0100, Jan Beulich wrote:
>> On 04.12.2023 10:43, Roger Pau Monne wrote:
>>> Remove xen_in_range() and vpci_is_mmcfg_address() now that hey are unused.
>>
>> Of the latter you remove only the declaration. Stale patch maybe?
> 
> Fixed.
> 
>> For the former, am I misremembering that Andrew had asked for the function
>> to stay?
> 
> https://lore.kernel.org/xen-devel/81534803-9da4-49b7-894e-f3fb5e8fb131@citrix.com
> 
> I did read Andrew's response as it being fine to switch the current
> function to use a rangeset, but not as a request to duplicate it.

Hmm, maybe I inferred too much from "And I'd hoped to make this common".

Jan



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:53:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:53:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648087.1012059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXjY-0007IK-Qv; Tue, 05 Dec 2023 15:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648087.1012059; Tue, 05 Dec 2023 15:53:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXjY-0007IB-Nx; Tue, 05 Dec 2023 15:53:16 +0000
Received: by outflank-mailman (input) for mailman id 648087;
 Tue, 05 Dec 2023 15:53: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 1rAXjX-0007Hz-Ee; Tue, 05 Dec 2023 15:53: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 1rAXjX-0000em-5k; Tue, 05 Dec 2023 15:53: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 1rAXjW-00034u-RA; Tue, 05 Dec 2023 15:53:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAXjW-0004ux-Qi; Tue, 05 Dec 2023 15:53: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=u9oS6L+vjy9g/LjqaWWrWSBjenZp1ljVrp+jvI5OSJs=; b=aiijrexceFuqipnE7G5gMmYQYO
	uGPe9LcUW0FVPSB5LWk5q6tP6wQdbQpegTtR8ZO1YOPXg3tuVzHsomMpXMmaxE3hgVr4iTQChpMXJ
	ohWwp7o948vYyD91rc/xsILHf5nZhbiRPlYy5g7DN6ZPezZGqplhMOXSNkbFwW5Na6hc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183990-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 183990: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-amd64-amd64-libvirt: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-amd64-amd64-libvirt-vhd:migrate-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-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
X-Osstest-Versions-That:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 05 Dec 2023 15:53:14 +0000

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

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 183983
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183983
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183983
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183983
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183983
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183983
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183983
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183983
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183983
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183983
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183983
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183983
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-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-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-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-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-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     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
 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-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352
baseline version:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352

Last test of basis   183990  2023-12-05 01:55:39 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 05 15:53:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:53:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648092.1012070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXk5-0007wS-A0; Tue, 05 Dec 2023 15:53:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648092.1012070; Tue, 05 Dec 2023 15: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 1rAXk5-0007wL-6W; Tue, 05 Dec 2023 15:53:49 +0000
Received: by outflank-mailman (input) for mailman id 648092;
 Tue, 05 Dec 2023 15:53:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXk4-0007l8-0T
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:53:48 +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 79ba42aa-9386-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:53:47 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-332c0c32d19so5546676f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:53:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r13-20020a056000014d00b003333fc2cb92sm8277421wrx.58.2023.12.05.07.53.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:53:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79ba42aa-9386-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701791627; x=1702396427; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=IlsBuXrdrUY13Ll0FrcTZ09U5KvbDKYxEXqZDMbOQK0=;
        b=Ez3B7KyAcyeLS7VKnOr1+OnyMWryLFIUds6pmHQ7chzLPZnACGYDXKAhtbXdktZub/
         +SNcTSWQi38P7HsnkwnOKoxorXxwJSgQYc12CGRyDCGQ92nvJ0Op7+ZGSORGPqm5LIo9
         Sju/JN5hRF0kcIs3jv7J4l0NHHGIZwvZkRwdI8kEUcmhfdGLUWZS1/tqbg98DFdhYhjG
         2dL66ySHL1a8aY1dcNTQIHNGL2ADcIFI1MW5r02BU1ja1cww2yNL+TKN7hkvQZunwVsD
         4w6X1BlOk14idjtIViAAv06yck8JMk+UM4rtsKN6aZQHdKGQjbFpeAkw6Bzvk78g/Zts
         rVRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791627; x=1702396427;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=IlsBuXrdrUY13Ll0FrcTZ09U5KvbDKYxEXqZDMbOQK0=;
        b=wyUUgTKtHvXlXEn78MaLUli+iL85vgR2d+ZUO/BzHfvVo/TL9Y/PW3dMyCMWLNSsSP
         zZsyR3JGjumfbhEdFL41T3YQ3Ozr53wdqFfTfP8srMZccVDcrmB8WO12nKVDOBkKwwp2
         mS2bN6pJDYNTVYClfHFqtBNLyFd9yAtBJdWDstcjoZfpMWoifU2grHdBhjL4yGYx4iZo
         w23v7Go93x2ZaT8fYO7XXK0P4oH2n0eVZ8xEC9WrDBxHnnxDtSj8/ew0/Q0jeO8H+HIB
         uoJHcOmstvKjvg402DhueAVOT0AfyHN5QobkZH/ZHHTB4vm1CFFixg9XHQB33Ij1jiYc
         fIjQ==
X-Gm-Message-State: AOJu0YxtHfsFSgoKSa2W0g5VzIzxIUORcO6Ucxwz9wRAlVjuReeVa8/5
	f7wMj9VHG28iBE3mW9SLPboK9s+IjTYtLrZcfwfm
X-Google-Smtp-Source: AGHT+IEvwvy1BebEPlCOeFi6o++oVfD6DWA81zenqarbfzH44qFSiV8XUjpeCOB2/ikRiQ01zc9E4w==
X-Received: by 2002:adf:e482:0:b0:333:2fd2:2f03 with SMTP id i2-20020adfe482000000b003332fd22f03mr4676268wrm.124.1701791626833;
        Tue, 05 Dec 2023 07:53:46 -0800 (PST)
Message-ID: <b1ea01d5-f3d5-4103-a4d3-c0a71328de1c@suse.com>
Date: Tue, 5 Dec 2023 16:53:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/39] xen/riscv: introduce spinlock.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <342e330232db63454ca368aa7b5bd100c944b1e8.1700761381.git.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: <342e330232db63454ca368aa7b5bd100c944b1e8.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:55:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:55:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648094.1012080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXlJ-0000Q0-Jx; Tue, 05 Dec 2023 15:55:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648094.1012080; Tue, 05 Dec 2023 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 1rAXlJ-0000Pt-HC; Tue, 05 Dec 2023 15:55:05 +0000
Received: by outflank-mailman (input) for mailman id 648094;
 Tue, 05 Dec 2023 15:55: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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAXlI-0000Ob-Vu
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:55:04 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a75ff46f-9386-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:55:04 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-332c46d5988so4639530f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:55:03 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 ba18-20020a0560001c1200b00333479734a7sm6767749wrb.99.2023.12.05.07.55.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 07:55:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a75ff46f-9386-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701791703; x=1702396503; 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=QfTZj3hOENHVTOrjjgp95pZzbYssLf0qzi+Fj8t2phI=;
        b=q3D0OeWEkTYv1f19iIZkKHuTxMB2Yyco1EZTlTMNQFBrm86wOEfehY253fW1u8HImi
         JLgjhLp7jPvMsb1PDVZ7pU78BLh3UC53epokZq0bFQ+aOrxBk4oCOvAHMJ3lTVw7ynsq
         IL14DnD/TwJdTGBvN2QyIBb4kd1QtychNUdy8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791703; x=1702396503;
        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=QfTZj3hOENHVTOrjjgp95pZzbYssLf0qzi+Fj8t2phI=;
        b=AzAEn85ySAA7yhMra37XKpy81zXgjCOSBRsC8hLtFQ8pKVOuJa5/DpTGBRJsO3uFsj
         rnZm3lQwFEgSnMdvyRViPW1FEduEEZnUViUwxZx1G9NES8DQ3z5zO3ZaY5Y+3pHWRYZS
         UwJQtb5rQKAnTpfElelJETvqHJwu+nL6KI+bJcu95x+XXMfDHwAkvSXta+62eaJJuY7Y
         W3oV07RL3EJGgwwqeMpEKtdDT8lyYCiF3jBIKg2BJ5lyxQK82wIZF8thhAZ2v3Ivncud
         Fj5Z2iJdr9qjjkhu7swikQrXmgOQpMNRUPMVRnWFVcf4gfteXyqudAeHhUy0NY6zAPPT
         y8Mw==
X-Gm-Message-State: AOJu0YwmJv5H0MgDtxgkg4MYdkhNEASeB9KHHH03S8TAimILnsfrvkDZ
	UrAXsQHMd0Kcx0Ry8JvF9gfbwQ==
X-Google-Smtp-Source: AGHT+IF8L7UEC5LJNhxUPqJhFwhh6z6u7jlGOqtfuaOifg4hcX6yfme5b3HHqAW9s8vrxu9+Sh1//Q==
X-Received: by 2002:adf:faca:0:b0:333:3518:c6a5 with SMTP id a10-20020adffaca000000b003333518c6a5mr3787860wrs.40.1701791703398;
        Tue, 05 Dec 2023 07:55:03 -0800 (PST)
Date: Tue, 5 Dec 2023 16:55:02 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Message-ID: <ZW9H1uE_6k3d-uWn@macbook>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com>
 <ZW4L5Q4SMprtmbK-@macbook>
 <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com>
 <ZW8zyXkUJDKVt-HX@macbook>
 <2ded19f7-2ba6-4b1c-8752-a73894dcdae0@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2ded19f7-2ba6-4b1c-8752-a73894dcdae0@suse.com>

On Tue, Dec 05, 2023 at 03:59:13PM +0100, Jan Beulich wrote:
> On 05.12.2023 15:29, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 05, 2023 at 09:52:31AM +0100, Jan Beulich wrote:
> >> On 04.12.2023 18:27, Roger Pau MonnÃ© wrote:
> >>> On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
> >>>> ..., at least as reasonably feasible without making a check hook
> >>>> mandatory (in particular strict vs relaxed/zero-extend length checking
> >>>> can't be done early this way).
> >>>>
> >>>> Note that only one of the two uses of hvm_load() is accompanied with
> >>>> hvm_check(). The other directly consumes hvm_save() output, which ought
> >>>> to be well-formed. This means that while input data related checks don't
> >>>> need repeating in the "load" function when already done by the "check"
> >>>> one (albeit assertions to this effect may be desirable), domain state
> >>>> related checks (e.g. has_xyz(d)) will be required in both places.
> >>>>
> >>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> >>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>>> ---
> >>>> Do we really need all the copying involved in use of _hvm_read_entry()
> >>>> (backing hvm_load_entry()? Zero-extending loads are likely easier to
> >>>> handle that way, but for strict loads all we gain is a reduced risk of
> >>>> unaligned accesses (compared to simply pointing into h->data[]).
> >>>
> >>> See below, but I wonder whether the checks could be performed as part
> >>> of hvm_load() without having to introduce a separate handler and loop
> >>> over the context entries.
> >>
> >> Specifically not. State loading (in the longer run) would better not fail
> >> once started. (Imo it should have been this way from the beginning.) Only
> >> then will the vCPU still be in a predictable state even after a possible
> >> error.
> > 
> > Looking at the callers, does such predictable state after failure
> > matter?
> > 
> > One caller is an hypercall used by the toolstack at domain create,
> > failing can just lead to the domain being destroyed.  The other caller
> > is vm fork, which will also lead to the fork being destroyed if
> > context loading fails.
> > 
> > Maybe I'm overlooking something.
> 
> You don't (I think), but existing callers necessarily have to behave the
> way you describe. From an abstract perspective, though, failed state
> loading would better allow a retry. And really I thought that when you
> suggested to split checking from loading, you had exactly that in mind.

Not really TBH, because I didn't think that much on a possible
implementation when proposing it.

Maybe a suitable compromise would be to reset the state to the initial
(at domain build) one on failure?

I do dislike the duplicated loops, as it seems like a lot of duplicate
boilerplate code, and I have fears of it going out of sync.

> >>>> Would the hvm_sr_handlers[] better use array_access_nospec()?
> >>>
> >>> Maybe?  Given this is a domctl I do wonder whether a domain already
> >>> having access to such interface won't have easier ways to leak data
> >>> from Xen.  Maybe for a disaggregated setup.
> >>
> >> Hmm, now we're in the middle - Andrew effectively said "no need to".
> > 
> > I'm certainly not an expert on whether array_access_nospec() should be
> > used, so if Andrew says no need, that's likely better advice.
> > 
> > Maybe the xsm check used in such desegregated setups would already
> > stop speculation?
> 
> There's no XSM check anywhere near, and even if there was I don't see
> how it would stop mis-speculation on those array accesses.

This being a slow path anyway, I don't think the extra
array_access_nospec() would make much of an impact, but again I have
to admit it's unclear to me when those are actually required, so I
might suggest adding them out of precaution.

> >>>> @@ -275,6 +281,78 @@ int hvm_save(struct domain *d, hvm_domai
> >>>>      return 0;
> >>>>  }
> >>>>  
> >>>> +int hvm_check(const struct domain *d, hvm_domain_context_t *h)
> >>>> +{
> >>>> +    const struct hvm_save_header *hdr;
> >>>> +    int rc;
> >>>> +
> >>>> +    if ( d->is_dying )
> >>>> +        return -EINVAL;
> >>>> +
> >>>> +    /* Get at the save header, which must be first. */
> >>>> +    hdr = hvm_get_entry(HEADER, h);
> >>>> +    if ( !hdr )
> >>>> +        return -ENODATA;
> >>>> +
> >>>> +    rc = arch_hvm_check(d, hdr);
> >>>> +    if ( rc )
> >>>> +        return rc;
> >>>> +
> >>>> +    for ( ; ; )
> >>>> +    {
> >>>> +        const struct hvm_save_descriptor *desc;
> >>>> +        hvm_check_handler handler;
> >>>> +
> >>>> +        if ( h->size - h->cur < sizeof(*desc) )
> >>>> +        {
> >>>> +            /* Run out of data */
> >>>> +            printk(XENLOG_G_ERR
> >>>> +                   "HVM restore %pd: save did not end with a null entry\n",
> >>>> +                   d);
> >>>> +            return -ENODATA;
> >>>> +        }
> >>>> +
> >>>> +        /* Read the typecode of the next entry and check for the end-marker. */
> >>>> +        desc = (const void *)&h->data[h->cur];
> >>>> +        if ( desc->typecode == HVM_SAVE_CODE(END) )
> >>>> +        {
> >>>> +            /* Reset cursor for hvm_load(). */
> >>>> +            h->cur = 0;
> >>>> +            return 0;
> >>>> +        }
> >>>> +
> >>>> +        /* Find the handler for this entry. */
> >>>> +        if ( desc->typecode >= ARRAY_SIZE(hvm_sr_handlers) ||
> >>>> +             !hvm_sr_handlers[desc->typecode].name ||
> >>>> +             !hvm_sr_handlers[desc->typecode].load )
> >>>> +        {
> >>>> +            printk(XENLOG_G_ERR "HVM restore %pd: unknown entry typecode %u\n",
> >>>> +                   d, desc->typecode);
> >>>> +            return -EINVAL;
> >>>> +        }
> >>>> +
> >>>> +        /* Check the entry. */
> >>>> +        handler = hvm_sr_handlers[desc->typecode].check;
> >>>> +        if ( !handler )
> >>>> +        {
> >>>> +            if ( desc->length > h->size - h->cur - sizeof(*desc) )
> >>>> +                return -ENODATA;
> >>>> +            h->cur += sizeof(*desc) + desc->length;
> >>>> +        }
> >>>> +        else if ( (rc = handler(d, h)) )
> >>>> +        {
> >>>> +            printk(XENLOG_G_ERR
> >>>> +                   "HVM restore %pd: failed to check %s:%u rc %d\n",
> >>>> +                   d, hvm_sr_handlers[desc->typecode].name, desc->instance, rc);
> >>>> +            return rc;
> >>>> +        }
> >>>> +
> >>>> +        process_pending_softirqs();
> >>>
> >>> Looking at this, won't it be better to call the check() hooks inside
> >>> the hvm_load() function instead of duplicating the loop?
> >>>
> >>> I realize that you only perform the checks when the state is loaded
> >>> from a domctl, but still seems quite a lot of code duplication for
> >>> little benefit.
> >>>
> >>> hvm_load() could gain an extra parameter to select whether the input
> >>> must be checked or not, and that would avoid having to iterate twice
> >>> over the context.
> >>
> >> Well, see above.
> >>
> >>>> +    }
> >>>> +
> >>>> +    /* Not reached */
> >>>
> >>> ASSERT_UNREACHABLE() maybe?
> >>
> >> Hmm, I'd find it kind of odd to have such here. While hvm_load() doesn't
> >> have such either, perhaps that's not a meaningful reference. Adding this
> >> would make me fear introducing a Misra violation (adding dead code).
> > 
> > But isn't this the purpose of ASSERT_UNREACHABLE() exactly?  IOW:
> > Misra will need an exception for all usage of ASSERT_UNREACHABLE()
> > already.
> > 
> > I think ASSERT_UNREACHABLE() is much better than a Not reached
> > comment: conveys the same information to readers of the code and has
> > a run-time consequence on debug builds.
> 
> I see a difference between uses on paths were we assert that a certain
> state cannot be reached (if all our logic is right) vs a case like the
> one here where the compiler (or another tool) can actually prove that
> the loop can't be exited the "normal" way.

Can't be exited with the current code, but the purpose of
ASSERT_UNREACHABLE() is also to guarantee that further changes might
not break this condition.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:56:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:56:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648101.1012091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXmX-0001EE-1F; Tue, 05 Dec 2023 15:56:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648101.1012091; Tue, 05 Dec 2023 15:56:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXmW-0001E6-Sb; Tue, 05 Dec 2023 15:56:20 +0000
Received: by outflank-mailman (input) for mailman id 648101;
 Tue, 05 Dec 2023 15:56:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXmV-0001Dw-Rh
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:56:19 +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 d41f7aa9-9386-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:56:19 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3316a4bc37dso5462400f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:56:19 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d3-20020adfef83000000b0033359ae2d52sm1808819wro.17.2023.12.05.07.56.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:56:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d41f7aa9-9386-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701791778; x=1702396578; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=6hpUTpIP/4+20zisgDA0vh95OKR5H7veIbC0thqyhVI=;
        b=RIR9xXEEj78zn7d7wUFTB5SFQn+3ZQkRakL6cxO+qX28BI3Lx3LgxmTuUxv8F8dVDV
         IR1UeJ6W370iqBE2BkKRA4ZDj+pGQN592scsffJhdKAP7k+OHMmcv8H56jsiNEWB3eSo
         nH4hmHwjwekqpGql6+hLJwp1z8oELozhTDgrHZNFuaErxV1mgt3RORaQ3wbwkB4kclyC
         CU5es31MCxAoOqB1C6Mt75B7AX30rDOU86NJwa3VUMEJQ8AWWjlQ6oMrV6sEhWfXPYW/
         /6TdUQuinCmnBamZC2E7DtRKJxYJ2GD38ZITFjKnwJTYgpz2vkteDn5f1XfjLMCpPbcm
         Q4kQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791778; x=1702396578;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=6hpUTpIP/4+20zisgDA0vh95OKR5H7veIbC0thqyhVI=;
        b=TmF+ahpEFjDZJhMXcghMByYBmQi5vY8vgjHb/YIcQlXO0zs5PKO+lpsDoUw9fVJ7+C
         Xqn6TOZKTHi7Gxq5bDVrX5J5I8legHb2MW917c1XjiseXW44krii11PTdhFSCwPyemep
         YVPyEQmMqoaCcPfIJioZ2C/QPXxRX123HHINd43HK4xYHfSUm85w+iD3Ru5/v/2sk+vr
         CwOEDKwEmJXr9S/x02qOSl0W334NeXzQteKadrHVdYBc4aP/TtqpY7iYmaqVzPiEoDJe
         Vjsi+A9PyFBwpsIoqU6Vyi8ZbtMwhixuSdpzoNS3nrzYe43vBnfGsflSMVuvYSZdFVyd
         SRXw==
X-Gm-Message-State: AOJu0Yyi3wodACfTu79DC5u2P3h3yit0mu6eUREKz1X7rd0D5cPlIpkF
	rKbb03jkTN8SehGGfrDMve7f
X-Google-Smtp-Source: AGHT+IGNsoilnHx8cE3JSiZufM0QZIjM1xB+DB+U+cGgDyRmWR5+H0R4QiB8bqB3zSOMqvMZ1S1kSw==
X-Received: by 2002:adf:e612:0:b0:333:3a13:91dc with SMTP id p18-20020adfe612000000b003333a1391dcmr3021819wrm.86.1701791778543;
        Tue, 05 Dec 2023 07:56:18 -0800 (PST)
Message-ID: <902146c4-8f36-446b-8332-78858186986c@suse.com>
Date: Tue, 5 Dec 2023 16:56:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/39] xen/riscv: introduce fence.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <225f7c6eac811dfd6afbb188c869557c5465ecca.1700761381.git.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: <225f7c6eac811dfd6afbb188c869557c5465ecca.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/fence.h
> @@ -0,0 +1,12 @@
> +#ifndef _ASM_RISCV_FENCE_H
> +#define _ASM_RISCV_FENCE_H
> +
> +#ifdef CONFIG_SMP
> +#define RISCV_ACQUIRE_BARRIER		"\tfence r , rw\n"
> +#define RISCV_RELEASE_BARRIER		"\tfence rw,  w\n"
> +#else
> +#define RISCV_ACQUIRE_BARRIER
> +#define RISCV_RELEASE_BARRIER
> +#endif
> +
> +#endif	/* _ASM_RISCV_FENCE_H */

Imo such a header would be better to introduce once a use for the
constructs appears. Otherwise at the very least it wants explaining
in the description what this is going to be needed for. I can't
find items of these names in other architectures so far, so this
must be something RISC-V-specific.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:58:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:58:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648105.1012100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXor-00029G-Bj; Tue, 05 Dec 2023 15:58:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648105.1012100; Tue, 05 Dec 2023 15:58:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXor-000299-8S; Tue, 05 Dec 2023 15:58:45 +0000
Received: by outflank-mailman (input) for mailman id 648105;
 Tue, 05 Dec 2023 15: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=H3q/=HQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rAXoq-000292-2q
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:58:44 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20629.outbound.protection.outlook.com
 [2a01:111:f400:7e88::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 292e4511-9387-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 16:58:42 +0100 (CET)
Received: from DS7PR07CA0020.namprd07.prod.outlook.com (2603:10b6:5:3af::12)
 by IA1PR12MB6628.namprd12.prod.outlook.com (2603:10b6:208:3a0::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 15:58:38 +0000
Received: from CY4PEPF0000EDD7.namprd03.prod.outlook.com
 (2603:10b6:5:3af:cafe::63) by DS7PR07CA0020.outlook.office365.com
 (2603:10b6:5:3af::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Tue, 5 Dec 2023 15:58:38 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EDD7.mail.protection.outlook.com (10.167.241.211) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 15:58:37 +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.34; Tue, 5 Dec
 2023 09:58:36 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 5 Dec
 2023 09:58:36 -0600
Received: from [172.28.155.39] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Tue, 5 Dec 2023 09:58:35 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 292e4511-9387-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jsDWTFxDxEpnsvbZsOw6hT+9PASCp+8Vfj2bAtK5I2cfRh/r7wfCf2+P6XBTWgOPsh8nKzaiJBFLG2AOz9FnknU+/1n9MWtfD4d0lsmyu8reehIyxwfxHicimVGfItfXdXftXdhuqNRdlqIZaQafhLlAlsijxCKj7/NszW7gqRDqt7WZ10h8JiYtsgiBTkQkeWoILIZ3h3xBHvJU6wjAMA459OZg/eNZikVa3OJsaHQ7riRTNOSyN9qgGh7XOkQ7tzR8fmBf3syNcYp3w+m4Wfb0nkl50RU5TbZSBlnUHbIE63vaqkN4Cg06u+trXk5Yl210DEeGi0BrvMEh+f3RDw==
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=A6Qv2sumMp0z0+JOdOass0gdxmxpJDwIOQMq0mZfz7I=;
 b=Qx5jV2V5nUYphWilV/7AePDhr4i8/VuXsVvoAUUa4JEOZbLqELmEmzdJxHMNi7Y+7YciSKedVyFo2Xmd1BrPbpaIURb6FRlj9RaLHBzssGByVH3crkZZ9vGYu5BLXI8NP61Izsu94378v9Rc8Khg6KC5LF5e5QpVbOS6O+iBsoD/3uMDd0bnRzk6Jyvjo5yfO0WaJDN6QTnIWDChsye+FwVLFXP+ILilZ1lXa/+24FL4lQxe+htHKDXKcCGbo8asBL8lo59ODLiDOhThrUX+hVbiDXZ+3lANQWJTFMBT+JuKDGRmiTcAkh3cjmfOgk+aaFGT0Dd+ge9lN93J/M7HHg==
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=A6Qv2sumMp0z0+JOdOass0gdxmxpJDwIOQMq0mZfz7I=;
 b=01CQgpSpuqXTzK1yKc+2wXsf848TVBQz0BKAiyzyGlNa1I3R9pWnM8oLecH9sCAdi5z46t3l7DQpk0YikwCMMrfvO/h8/6VzEEPUyB7GyxjhwE2UdjUpVlF6N4azxPDqqR1/JM375sVJtY2Jeex6j8KRuJB8xXcLKcR0BaSAVUI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <d9cdf228-3094-40f7-a023-3c820e57a9ba@amd.com>
Date: Tue, 5 Dec 2023 10:58:30 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 06/17] vpci/header: rework exit path in init_bars
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.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: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-7-volodymyr_babchuk@epam.com>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20231202012556.2012281-7-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD7:EE_|IA1PR12MB6628:EE_
X-MS-Office365-Filtering-Correlation-Id: 20ed6be2-17c8-4d84-730e-08dbf5ab0b07
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	7wtmHnerj5/UtOt0QPVzP6Jt1zPQh7jrDL1kXN+sgdl/qAToww5ItA85xLL/ZpULB3fDfHNP1g++jamB6EzDpVWigv8H9RgRCXfuwOyiGwWsxi22036e6uO2GJojbp2EiNOsErtksoMCFIUGPULiDvhjlRq5NzqgMWCfp1W68xgrlZmfrtrq2Zm3HMC7++DbSY2vcuhtuMO2Q2fmqBnoE86uzsRl7D3GX5OEgDZkLYggw5v22MrvBlW8mmLwZedqoShLB8E2u2zBJvD6B1FGdmxMYhFAQ7Sg0nt/1mWYxWirtwDQ054+PcGcIuJx4bEmOdRt0pUV6vW75FOjCGoyKECNaN2y5Nl38ijyoDOCLABh3Zlrgjtn5Dy+mdlE29wyMrzBRBsPCtiUQgStRS6IqOjAYCUXdCUyNmjyoheTNw7svcN6HWIMHP0rG74yya3VJYLY/l/fH536u295h+m3pDa6DICLYbD0gOIC8IkmXV04t1xmB6uPwLlsuiv7DPu1m9ZMwQ1OvsU782GWLBAhMEeBgN60JbswZ10UqjQsInj795IoAxBhIqW+JucfTrLAa1lP3jRaNeC72foFN+qHxr4ohaXHjE9TZzmWfljPOy5jjelDkXiaAMkevTufQngRqHkB4zG8ozOJy9te7BbD4l7B92DLzRLBKZxIrOA+YEJlZammjWEv9UI+7OlFVvrmj9oFmGMA7/TPIDkGLub5xbcVkKDznjnsPi2Hc0Jp1zdSUxoCakPCXc8FbqzwG0nyw9fOl1gInVUVnycLhG1POGH6Dl1UHPjhv6chWZ4FC0E=
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:(13230031)(4636009)(396003)(39860400002)(346002)(136003)(376002)(230922051799003)(82310400011)(64100799003)(1800799012)(186009)(451199024)(46966006)(36840700001)(40470700004)(70206006)(70586007)(40480700001)(356005)(6666004)(478600001)(81166007)(36860700001)(31686004)(47076005)(426003)(40460700003)(336012)(82740400003)(53546011)(8936002)(4744005)(2906002)(8676002)(4326008)(5660300002)(41300700001)(36756003)(86362001)(31696002)(44832011)(16576012)(110136005)(316002)(2616005)(26005)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 15:58:37.4432
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 20ed6be2-17c8-4d84-730e-08dbf5ab0b07
X-MS-Exchange-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:
	CY4PEPF0000EDD7.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6628

On 12/1/23 20:27, Volodymyr Babchuk wrote:
> Introduce "fail" label in init_bars() function to have the centralized

The name was correct at the time of submission, but since then, init_bars() was renamed to init_header() in staging

> error return path. This is the pre-requirement for the future changes
> in this function.
> 
> This patch does not introduce functional changes.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> --

NIT: The scissors line should be tree dashes, not two


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 15:59:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 15:59:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648109.1012109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXpc-0002jd-OT; Tue, 05 Dec 2023 15:59:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648109.1012109; Tue, 05 Dec 2023 15: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 1rAXpc-0002jW-Lr; Tue, 05 Dec 2023 15:59:32 +0000
Received: by outflank-mailman (input) for mailman id 648109;
 Tue, 05 Dec 2023 15:59: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=kfJ1=HQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAXpa-0002TH-SR
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 15:59:30 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 45857e76-9387-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 16:59:29 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3333224c7b9so3708343f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 07:59:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 k13-20020adfe8cd000000b003333c2c313bsm9075325wrn.100.2023.12.05.07.59.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 07:59:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45857e76-9387-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701791969; x=1702396769; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SFdecdSjLAj7BDMMjO8ChRVswMaSIGmw/k4UUfGRHk8=;
        b=Pzb9mSC5/k07VBjSYEhfPHHH/ULrH7e5UGnNxX5Cbma4cxo3DEuAYwZZuwmxC7YqlZ
         hyxZetaJxmhxasaDwoHhUu4glVsentkbX5h4mSZpXOVieIkC8UeQ62HaYG/xrulHRDXn
         +ubifvvFW3BzwnqzVOoa0AkTLYznYITAlED14qaZb8ya45lUdS8XX4j1A1WCfe3wt7C1
         VZd4JAMWhVgFqrTBlQXTrPeilJYQqGdOWxEf0sabLL3sEwr/3B+q13sep+WsWzuwDjiI
         Bp5oXDpPrFVeuu4YTeb8q86tS5oQCl0+MQY6shQPY5dafwRwUyCkD3yhtzy0cES8W+J9
         cmCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701791969; x=1702396769;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=SFdecdSjLAj7BDMMjO8ChRVswMaSIGmw/k4UUfGRHk8=;
        b=V33U4f+gp05MUHnF9hzftOT9qomiAJrOQpSSTO8sG2aWSzx+pk21gn3Fp6Rx9n5SVd
         p5odd8ja4kOS+WxdTCnTt7BESR/cRdt3MNsiVK92PEOTLvc5lAgo9QOicN8XvwMTJQ2L
         BJxHYDI6R7nUDMqSg0dNj+qhGAI+8vRZ8XEtw5MOTRG771L5dPmnZxv4LrrwoJcKKStb
         MG980hD0rUtJXd4WmJqfEerkV6IdOUSgDifyCsRBvkwAUnBmmrlt56MwxWley/iKYfRA
         KCxnTAc4hNMWxfSfbvl2mF2x6cov0vKFxuP6ctFDNCdL2U+O0IiWNI1434OVrXtT6SUF
         jymQ==
X-Gm-Message-State: AOJu0YxCBrSRuK4ZDs8mPArLK2PFGhW4oLVPftgUbV+mVegH9x4jo7lB
	QQJalFlQpgBbdu5aUs3ALs8R
X-Google-Smtp-Source: AGHT+IELuc6gl0Bb6ygffESUBfeP+0X6h8K7W/7Wh+rylwO8S1FzT5LgrjnrHp/K7ZILoc2oPBdBYw==
X-Received: by 2002:a5d:6b8f:0:b0:333:4989:3aae with SMTP id n15-20020a5d6b8f000000b0033349893aaemr2090494wrx.129.1701791968713;
        Tue, 05 Dec 2023 07:59:28 -0800 (PST)
Message-ID: <5eae9d9b-e499-4c8c-aed0-2f52c0aa7c9f@suse.com>
Date: Tue, 5 Dec 2023 16:59:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/39] xen/riscv: introduce arch-riscv/hvm/save.h
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <acb870b980a791d7800d47c08c9574275159df39.1700761381.git.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: <acb870b980a791d7800d47c08c9574275159df39.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/include/public/arch-riscv/hvm/save.h
> @@ -0,0 +1,20 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Structure definitions for HVM state that is held by Xen and must
> + * be saved along with the domain's memory and device-model state.
> + */
> +
> +#ifndef __XEN_PUBLIC_HVM_SAVE_RISCV_H__
> +#define __XEN_PUBLIC_HVM_SAVE_RISCV_H__
> +
> +#endif
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */

Seeing that Arm's is as empty, I wonder why we have it. Julien, Stefano?

> --- a/xen/include/public/hvm/save.h
> +++ b/xen/include/public/hvm/save.h
> @@ -91,6 +91,8 @@ DECLARE_HVM_SAVE_TYPE(END, 0, struct hvm_save_end);
>  #include "../arch-arm/hvm/save.h"
>  #elif defined(__powerpc64__)
>  #include "../arch-ppc.h"
> +#elif defined(__riscv)
> +#include "../arch-riscv/hvm/save.h"
>  #else
>  #error "unsupported architecture"
>  #endif

The PPC part here looks bogus altogether. Shawn?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 16:07:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 16:07:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648113.1012120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXx5-0005lL-FF; Tue, 05 Dec 2023 16:07:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648113.1012120; Tue, 05 Dec 2023 16:07:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAXx5-0005lE-CY; Tue, 05 Dec 2023 16:07:15 +0000
Received: by outflank-mailman (input) for mailman id 648113;
 Tue, 05 Dec 2023 16:07: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=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAXx4-0005l8-UH
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 16:07:14 +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 597f56a3-9388-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 17:07:12 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-33334480eb4so4167462f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 08:07:12 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 n5-20020a5d6b85000000b0033342d2bf02sm7179154wrx.25.2023.12.05.08.07.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 08:07:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 597f56a3-9388-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701792432; x=1702397232; 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=B5AEE3JV8TZ9251nXOW6j62Co0eyKnNRBvPpes+m3Zs=;
        b=Gh1br3HiEEdxA4xkkSoO2zZPpEnTbUUlLfCcmj+L5eNbqGHcpG9RsMer5CHrW5Yhwv
         bYlZT+uVM59Vp1LYYVFUxD2BSqq/fUliN0WwDMfv/WMGgjm+vpiEq0712SWdvoOeLptU
         PTz7tzUHQvFhNc1OXG1N3w4O7XDtvhEJ6aN0Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701792432; x=1702397232;
        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=B5AEE3JV8TZ9251nXOW6j62Co0eyKnNRBvPpes+m3Zs=;
        b=E8iyasCzcKz8Si8aLNmSydhvm+qY5EcfWw5y/2bTGNshDrjCPkP0f/Y2D6vFE4WIeS
         ol0CsICs5npuRHJuRuDQOxwa5v+1ACIBnuOtKAly3668pimXMUSSdQUdUs2uBac2TNuO
         JT28IiP2ZTKj4YD+b0UKx4eqHJD1wSPN27+tdDc78FF5HHRivPgZzggmsotdZLgPUNLw
         8X2vllcIFw3Gx9yYaNL/+fsiJMpF5c0GQVexa1JPFOtnSReHXZJIDeWbe4Tqe+isesuc
         XfMItX/cIn6D9iYIy1cPjjFBDQw+EiJuDkRyDwg13T/pVnDbt8tJo6fvm+pD43b+EWHd
         7mrA==
X-Gm-Message-State: AOJu0YyIXsMzFHcIXUyh72CdUoiBtyWnGpPgJ28YAPerQ7qtdyts2jjA
	Q0jrk0cJaRycoOxVJaFI+dc3MwFU3iglJwi3U/Y=
X-Google-Smtp-Source: AGHT+IHnpCuqcbFctMyL/8Gsa0vyPtKMNGllPhrU7hxgF0cj2jNaj7Y6STua/CwJilMIG5EgzgKzlQ==
X-Received: by 2002:adf:fb42:0:b0:331:41a8:d8f9 with SMTP id c2-20020adffb42000000b0033141a8d8f9mr3384300wrs.35.1701792431362;
        Tue, 05 Dec 2023 08:07:11 -0800 (PST)
Date: Tue, 5 Dec 2023 17:07:10 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 5/6] x86/iommu: switch hwdom IOMMU to use a rangeset
Message-ID: <ZW9KrlBechjyJidT@macbook>
References: <20231204094305.59267-1-roger.pau@citrix.com>
 <20231204094305.59267-6-roger.pau@citrix.com>
 <095c2f4c-9b10-4ab8-95ea-101f62096678@suse.com>
 <ZW9FM44pEIn4odkn@macbook>
 <798cfd87-7c10-41e9-a427-c7177da4d063@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <798cfd87-7c10-41e9-a427-c7177da4d063@suse.com>

On Tue, Dec 05, 2023 at 04:47:15PM +0100, Jan Beulich wrote:
> On 05.12.2023 16:43, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 05, 2023 at 04:27:05PM +0100, Jan Beulich wrote:
> >> On 04.12.2023 10:43, Roger Pau Monne wrote:
> >>> @@ -476,58 +406,55 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >>>      if ( !map )
> >>>          panic("IOMMU init: unable to allocate rangeset\n");
> >>>  
> >>> -    max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
> >>> -    top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
> >>> +    if ( iommu_hwdom_inclusive )
> >>> +    {
> >>> +        /* Add the whole range below 4GB, UNUSABLE regions will be removed. */
> >>> +        rc = rangeset_add_range(map, 0, max_pfn);
> >>> +        if ( rc )
> >>> +            panic("IOMMU inclusive mappings can't be added: %d\n",
> >>> +                  rc);
> >>> +    }
> >>>  
> >>> -    for ( i = 0, start = 0, count = 0; i < top; )
> >>> +    for ( i = 0; i < e820.nr_map; i++ )
> >>>      {
> >>> -        unsigned long pfn = pdx_to_pfn(i);
> >>> -        unsigned int perms = hwdom_iommu_map(d, pfn, max_pfn);
> >>> +        struct e820entry entry = e820.map[i];
> >>>  
> >>> -        if ( !perms )
> >>> -            /* nothing */;
> >>> -        else if ( paging_mode_translate(d) )
> >>> +        switch ( entry.type )
> >>>          {
> >>> -            int rc;
> >>> +        case E820_UNUSABLE:
> >>> +            if ( !iommu_hwdom_inclusive || PFN_DOWN(entry.addr) > max_pfn )
> >>> +                continue;
> >>
> >> The !iommu_hwdom_inclusive part isn't really needed here, is it? The ...
> > 
> > Nor the PFN_DOWN(entry.addr) > max_pfn.
> 
> Hmm, I couldn't convince myself that could also be dropped.

We never map unusable regions, so it's always fine to remove them from
the rangeset.  The condition was just a way to exit early and avoid
the rangeset_remove_range() call.

> >>> -            rc = p2m_add_identity_entry(d, pfn,
> >>> -                                        perms & IOMMUF_writable ? p2m_access_rw
> >>> -                                                                : p2m_access_r,
> >>> -                                        0);
> >>> +            rc = rangeset_remove_range(map, PFN_DOWN(entry.addr),
> >>> +                                       PFN_DOWN(entry.addr + entry.size - 1));
> >>
> >> ... call here would then simply be a no-op, as it looks. And things would
> >> overall look more safe if the removal was skipped for fewer reasons.
> > 
> > OK, the removal can be done unconditionally if so desired.
> > 
> >>> @@ -605,7 +532,7 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >>>      rangeset_destroy(map);
> >>>  
> >>>      /* Use if to avoid compiler warning */
> >>> -    if ( iommu_iotlb_flush_all(d, flush_flags) )
> >>> +    if ( iommu_iotlb_flush_all(d, map_data.flush_flags) )
> >>>          return;
> >>>  }
> >>
> >> Ah yes, here is said change. But I think for correctness this wants
> >> moving to the earlier patch.
> > 
> > OK, so something like:
> > 
> > map_data.flush_flags |= flush_flags;
> 
> Or simply drop flush_flags here right away (read: replace by map.flush_flags).

Right, OK, that will lead to some small changes to existing code which
I wanted to avoid in the context of just adding new code to deal with
a rangeset, but anyway, if that's preferred I will adjust.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 16:20:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 16:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648119.1012130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAY9Z-0002su-Ks; Tue, 05 Dec 2023 16:20:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648119.1012130; Tue, 05 Dec 2023 16: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 1rAY9Z-0002sb-GJ; Tue, 05 Dec 2023 16:20:09 +0000
Received: by outflank-mailman (input) for mailman id 648119;
 Tue, 05 Dec 2023 16:20: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=7WXV=HQ=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rAY9Y-0002sU-HK
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 16:20:08 +0000
Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com
 [2607:f8b0:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25c5ef24-938a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 17:20:05 +0100 (CET)
Received: by mail-pf1-x430.google.com with SMTP id
 d2e1a72fcca58-6ce5a0c384fso1755469b3a.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 08:20:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25c5ef24-938a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701793204; x=1702398004; 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=fQlGLAxxeEJp+EQtTSDrWU/5FydJgE+KAh6vaQE/9+k=;
        b=dccs9pLiZPgko+NfATbOJOcYB587IVLxZ6Y+rjWy4dFrchVa30kvQur2KJP/1pXu2h
         tI60Ln+OKcrYeJVqlOmQue089jtVpLkVhUg52PU/kIJrG56BVUX4gJA2+PuaRGqow/vd
         hwpubYxr7qAQv8X6M2PsH+jh4DhEb43LH/wJehPi/78VLhvJCDENot54Ukd7XmAlA3vP
         +mJMqJb7qN8Ubhtv808fkky3/ldVJY0ZgqLIXH4yfvsR8O7GbzznU5BFzZCfXTdHKldl
         IqvBNG6jVs9bjSZRDFCZOUiYO6TaBz1fAXxXswUX3JnnisXHfmheevTGAEiQWtaMW2zm
         Zh9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701793204; x=1702398004;
        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=fQlGLAxxeEJp+EQtTSDrWU/5FydJgE+KAh6vaQE/9+k=;
        b=pUEfkmY2kfS3eCPqoEPJMzdhBtrFPrldQYk+J4TwlwMu1EbeBHoVimEPzTySMsAQGF
         UZvocfMwDwSwvVJnYpuZ4itJLxdpFTPSzgSzF8ev99rfYjZzb2n3fLo1LOEz6tfVz47y
         ycUZjJ47bw6kwVMUxseD12P2lGYUMyvIKrn5UoFsLIGRcl8Z+FP1CVL/jaKA53ndu9OV
         ZrA+COA4cwHXDDqLoresUrZfZHAqSfp+7jB1m7BxSnR67HIUkYJz4hb6rvJrqDKH8LKl
         7Bk+WUbEykN/+/ZTBD8WTN4G1l9tUh9MXZ9uIs4P0YoJfSyIhi1D8ncZomh5MTHE2PWb
         Cghg==
X-Gm-Message-State: AOJu0Yw0QhddLls/9Ituoheqa8WBviez47iCYLCScwDOsWSfYcL7BnFT
	IDuae8Bg9XfhzJkWLYSa3P/Xbe3l6xjvS2WjvWDFZHxGXLo=
X-Google-Smtp-Source: AGHT+IHr8BWyZmClNTXj5iKuDaRHbkzZUjKti5gkghCtpR8YawFE9nm1lOT0yc/aZ7GqlDgtEKG611zcFf74KZyknVo=
X-Received: by 2002:a05:6a00:e0a:b0:6ce:412a:2a60 with SMTP id
 bq10-20020a056a000e0a00b006ce412a2a60mr1427795pfb.38.1701793203534; Tue, 05
 Dec 2023 08:20:03 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com> <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
In-Reply-To: <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Tue, 5 Dec 2023 17:19:52 +0100
Message-ID: <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Le mar. 5 d=C3=A9c. 2023 =C3=A0 15:18, Jan Beulich <jbeulich@suse.com> a =
=C3=A9crit :
>
> On 05.12.2023 15:14, S=C3=A9bastien Chaumat wrote:
> >  booting kernel with "dyndbg=3Dfile drivers/gpio/* +p"
>
> I'm afraid this doesn't tell me anything. I'm simply not familiar with
> Linux'es GPIO handling.
>
Thanks for your help so far.
I moved  the issue to linux-gpio devs  :

https://marc.info/?l=3Dlinux-gpio&m=3D170177779023453&w=3D1

S=C3=A9bastien


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 16:25:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 16:25:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648124.1012139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYEw-00078j-6S; Tue, 05 Dec 2023 16:25:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648124.1012139; Tue, 05 Dec 2023 16: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 1rAYEw-00078c-3u; Tue, 05 Dec 2023 16:25:42 +0000
Received: by outflank-mailman (input) for mailman id 648124;
 Tue, 05 Dec 2023 16:25: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=tw6T=HQ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rAYEv-00077J-DM
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 16:25:41 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id edd6dff0-938a-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 17:25:40 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 9CD2E4EE0741;
 Tue,  5 Dec 2023 17:25:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: edd6dff0-938a-11ee-98e5-6d05b1d4d9a1
MIME-Version: 1.0
Date: Tue, 05 Dec 2023 17:25:39 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH v2] x86/DMI: adjustments to comply with Misra C:2012 Rule
 9.3
In-Reply-To: <1ca903e7-ed2c-435e-999d-2a8519957498@suse.com>
References: <1ca903e7-ed2c-435e-999d-2a8519957498@suse.com>
Message-ID: <4d4c07c874575ab09d96f5dcfceeeff7@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

Hi Jan,

On 2023-12-05 14:35, Jan Beulich wrote:
> The rule demands that all array elements be initialized (or dedicated
> initializers be used). Introduce a small set of macros to allow doing 
> so
> without unduly affecting use sites (in particular in terms of how many
> elements .matches[] actually has; right now there's no use of
> DMI_MATCH4(), so we could even consider reducing the array size to 3).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Of course a question is how many of these DMI table entries are in fact
> no longer applicable (e.g. because of naming 32-bit-only systems).
> Subsequently the table in dmi_scan.c itself may want cleaning up as
> well, yet I guess the question of stale entries is even more relevant
> there.
> ---
> v2: Make things also build with older gcc.
> 

Analyzed with ECLAIR for Rule 9.3: resolves all the violations related 
to DMI_MATCH.

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 16:27:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 16:27:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648127.1012150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYGY-00019m-J3; Tue, 05 Dec 2023 16:27:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648127.1012150; Tue, 05 Dec 2023 16:27:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYGY-00019f-Fx; Tue, 05 Dec 2023 16:27:22 +0000
Received: by outflank-mailman (input) for mailman id 648127;
 Tue, 05 Dec 2023 16:27:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H3q/=HQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rAYGX-000174-Fv
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 16:27:21 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20602.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 272d5ec6-938b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 17:27:17 +0100 (CET)
Received: from DS7PR05CA0011.namprd05.prod.outlook.com (2603:10b6:5:3b9::16)
 by DM6PR12MB4169.namprd12.prod.outlook.com (2603:10b6:5:215::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 16:27:11 +0000
Received: from CY4PEPF0000FCC2.namprd03.prod.outlook.com
 (2603:10b6:5:3b9:cafe::18) by DS7PR05CA0011.outlook.office365.com
 (2603:10b6:5:3b9::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.23 via Frontend
 Transport; Tue, 5 Dec 2023 16:27:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000FCC2.mail.protection.outlook.com (10.167.242.104) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 16:27:11 +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.34; Tue, 5 Dec
 2023 10:27:10 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 5 Dec
 2023 10:27:10 -0600
Received: from [172.28.155.39] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Tue, 5 Dec 2023 10:27:09 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 272d5ec6-938b-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=c33X29OOOrsk8GLeNplPQvXm0Ozh4FKWbReT/AKlZyA8xYvCVi7ZAn1VhRF9jp6AKPV6d+MigZOOn/0hSJDSL1otPTDKzWjfaP0WCBukVAJs5mAK4WGXzrFcpXBqsFB5QifmjA5m6swMWHgVqZzh7XnSkTCs0H9a2PsOlfTl6c8TFRD09dD/st1lALUVX1w3c09V4UXfc5YFqNypmkM/x3KJUMzK909PkQcQU8ZsUUJAqW5gVagJZDaxfLQoP1NlIfCExWEZerUDvZSEOVCu3AtLgTfxURnIkl9z61f2orDLyAzUcwYn9yHUvggnOSbSFfUpVIiLjohyZSN/3LB/AQ==
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=ZNC/crAybIa+jipW9vTJRay4V08Db0MUN/LtvkQsNvY=;
 b=Ys1LqPlNhnCVF//C1IOHYLsQLI1+4DKt1ZVFY7WkZ3G4cv2lgGIlAO8Y5OeEa6qcSOjc2bCDbow1eUsAIQeGubroE4orldbNaa8YP+HfXD+VtPAYxABIoHB7BNz7uuqn5ZMnJKi7m3I6stp1phuuJgdctwVM69Gpqsdcxr5a6R4IX4dBjniFwY0xubuvOiBMwUNXMVv/s80EuP5iPn3T5/1rOSOoKuTQ9e+2zq/Fg593qu6d4bDyanCd7PFrWrZ2lbt1nZslQZYEZ+o3bB3XfjTMf5ZoLCm1Z1EiJw9x6JMuoXhkv0lGqR/97gUJdf1DJTGKoJjOLDQ/02+ahUDAoA==
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=ZNC/crAybIa+jipW9vTJRay4V08Db0MUN/LtvkQsNvY=;
 b=KUxb4E5wqq3Kc4pvjO3/gC0+Y37LFjcQ7pibAUJDnx4aEj3xsRt6ufiGOT/oeyXnDpP/ioR9qblpr8kdAcJtN87wbdtXk5pfzcH8P9ZSXQG4cfstrkgQax2+DwDoVZftE5P4QslKR0uC3IO+P5Xwq6C/T0lkES6ykSskmKSVVvk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <8980b420-8e6a-4dd9-ba5f-bd2eb527c2f7@amd.com>
Date: Tue, 5 Dec 2023 11:27:03 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
 <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop>
 <ZW8EkQLTwEEK6fXC@macbook>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <ZW8EkQLTwEEK6fXC@macbook>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC2:EE_|DM6PR12MB4169:EE_
X-MS-Office365-Filtering-Correlation-Id: 90f690d0-bb9a-4887-2dd9-08dbf5af086e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	1sGfRHryqPhuMEul7s3g/KBHtt5NhCv32rbVEkjUna403Z58kM2RMOwXz4z4vo8oT+lEopPmw07nkeThviCjpP/eEuL53fnw4YWwlxdwj0yrFXuFQdv8a9MHjBy2i5UTz3AedGVqB0X/tefROH3xqxJJrLtCo1JnuO7nZsBPOLnwxrcxM5D8uCa5moSZFC/XsEbaGj7RTUhZ4RdRCA7p5DbA6aMtWlhgqr4CzXxPVZUwA9FjMh5Mv+LhWcPUkZ/KFozvbi3eO5JiIkSb8oSx/NGx79gDjkXIOPoygVNbAIZD3ljLSHxRk+T518vak8uGhihJDlPt+6NSCZumbvdZuD0+KiPZu521KMWjF4SHNTvqO8XofKIAnmHfv/K0gh91JVGHF6oNjaO1JxnwyTxTZ2jQ9dmEHzUuaAz8gSQSos3qRtGyl4ln3GTyHQatTFtKzumppvrwO/xjtObuTmBcu0FcFl8BrUTkkz3ApEXHTj9UxLOY2sPKzzZe8rriQ2RH6EDz7Cmk/Z4xDtId2NQOUJrmuvBFxRhDUvD82k/2CaAZp3XbkaFmpuu1GJSWpYR4EUSjarXtgtqNEJ2xixqpdM0cHr8srL+iB/AB6olF/JZ0ysB+AAy5KoN/iP7gazXUNFnzgWYec1kllp4qsghREcP83HPDoBFLFypiLfwXYG9etS9LWb1ZBvvc+KCw6EoNBE3aI5g/iVWpR/Djyb20+c7atPqP1KLnM2IklKKsJoq2JUSnb657IhltzOqm4m0sp8AuFYPSgO1x0/NweX/Uz47NJnKAwI266GMa6jsFwa1vH3HKrgjQWn/m63WPoDHMmvt2C5coaZmAW2JpPfOBCbtVM4in+JyGO7ZDzn5uVSA=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(346002)(39860400002)(136003)(376002)(230173577357003)(230273577357003)(230922051799003)(64100799003)(451199024)(82310400011)(186009)(1800799012)(40470700004)(46966006)(36840700001)(86362001)(40460700003)(44832011)(478600001)(53546011)(6666004)(70206006)(54906003)(316002)(16576012)(8936002)(110136005)(4326008)(8676002)(66899024)(70586007)(31696002)(47076005)(81166007)(356005)(36860700001)(83380400001)(82740400003)(2906002)(40480700001)(31686004)(36756003)(5660300002)(7416002)(41300700001)(2616005)(30864003)(336012)(26005)(426003)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 16:27:11.1639
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 90f690d0-bb9a-4887-2dd9-08dbf5af086e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000FCC2.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4169

On 12/5/23 06:08, Roger Pau MonnÃ© wrote:
> On Mon, Dec 04, 2023 at 02:07:51PM -0800, Stefano Stabellini wrote:
>> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
>>> On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
>>>> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
>>>>> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
>>>>>> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
>>>>>>          bus = PCI_BUS(machine_sbdf);
>>>>>>          devfn = PCI_DEVFN(machine_sbdf);
>>>>>>  
>>>>>> +        if ( needs_vpci(d) && !has_vpci(d) )
>>>>>> +        {
>>>>>> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
>>>>>> +                   &PCI_SBDF(seg, bus, devfn), d);
>>>>>> +            ret = -EPERM;
>>>>>> +            break;
>>>>>
>>>>> I think this is likely too restrictive going forward.  The current
>>>>> approach is indeed to enable vPCI on a per-domain basis because that's
>>>>> how PVH dom0 uses it, due to being unable to use ioreq servers.
>>>>>
>>>>> If we start to expose vPCI suport to guests the interface should be on
>>>>> a per-device basis, so that vPCI could be enabled for some devices,
>>>>> while others could still be handled by ioreq servers.
>>>>>
>>>>> We might want to add a new flag to xen_domctl_assign_device (used by
>>>>> XEN_DOMCTL_assign_device) in order to signal whether the device will
>>>>> use vPCI.
>>>>
>>>> Actually I don't think this is a good idea. I am all for flexibility but
>>>> supporting multiple different configurations comes at an extra cost for
>>>> both maintainers and contributors. I think we should try to reduce the
>>>> amount of configurations we support rather than increasing them
>>>> (especially on x86 where we have PV, PVH, HVM).
>>>
>>> I think it's perfectly fine to initially require a domain to have all
>>> its devices either passed through using vPCI or ireqs, but the
>>> interface IMO should allow for such differentiation in the future.
>>> That's why I think introducing a domain wide vPCI flag might not be
>>> the best option going forward.
>>>
>>> It would be perfectly fine for XEN_DOMCTL_assign_device to set a
>>> domain wide vPCI flag, iow:
>>>
>>> if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
>>> {
>>>     if ( has_arch_pdevs(d) )
>>>     {
>>>         printk("All passthrough devices must use the same backend\n");
>>>         return -EINVAL;
>>>     }
>>>
>>>     /* Set vPCI domain flag */
>>> }
>>
>> That would be fine by me, but maybe we can avoid this change too. I was
>> imagining that vPCI would be enabled at domain creation, not at runtime.
>> And that vPCI would be enabled by default for all PVH guests (once we
>> are past the initial experimental phase.)
> 
> Then we don't even need a new CDF flag, and just enable vPCI when
> IOMMU is enabled?  IOW: we can key the enabling of vPCI to
> XEN_DOMCTL_CDF_iommu for specific domain types?

There are many Arm based platforms that need to use iommu but don't have (or don't use) PCI, so we'd still like to have a separate vPCI flag.

> 
> Maybe that's not so trivial on x86, as there's no x86 PVH domain type
> from the hypervisor PoV.
> 
>>
>>> We have already agreed that we want to aim for a setup where ioreqs
>>> and vPCI could be used for the same domain, but I guess you assumed
>>> that ioreqs would be used for emulated devices exclusively and vPCI
>>> for passthrough devices?
>>
>> Yes, that's right
>>
>>
>>> Overall if we agree that ioreqs and vPCI should co-exist for a domain,
>>> I'm not sure there's much reason to limit ioreqs to only handle
>>> emulated devices, seems like an arbitrary limitation.
>>
>> Reply below
>>
>>
>>>> I don't think we should enable IOREQ servers to handle PCI passthrough
>>>> for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
>>>> Passthrough can be handled by vPCI just fine. I think this should be a
>>>> good anti-feature to have (a goal to explicitly not add this feature) to
>>>> reduce complexity. Unless you see a specific usecase to add support for
>>>> it?
>>>
>>> There are passthrough devices (GPUs) that might require some extra
>>> mediation on dom0 (like the Intel GVT-g thing) that would force the
>>> usage of ioreqs to passthrough.
>>
>> From an architectural perspective, I think it would be cleaner, simpler
>> to maintain, and simpler to understand if Xen was the sole owner of the
>> PCI Root Complex and PCI config space mediation (implemented with vPCI).
>> IOREQ can be used for emulation and it works very well for that. At
>> least in my mind, that makes things much simpler.
> 
> But IOREQ already has all the code to mediate accesses to the PCI
> config space, and the interface to register separate servers for
> different PCI devices.
> 
> We would then need to duplicate this internally for vPCI, so that vPCI
> could forward accesses to IOREQ just for IOREQ to forward to yet a
> different component?  Seems like a lot of duplication for no benefit.
> 
>> I understand there are non-trivial cases, like virtual GPUs with
>> hardware access, but I don't classify those as passthrough. That's
>> because there isn't one device that gets fully assigned to the guest.
>> Instead, there is an emulated device (hence IOREQ) with certain MMIO
>> regions and interrupts that end up being directly mapped from real
>> hardware.
>>
>> So I think it is natural in those cases to use IOREQ and it is also
>> natural to have QEMU remap MMIO/IRQs at runtime. From a vPCI
>> perspective, I hope it will mostly look as if the device is assigned to
>> Dom0. Even if it ends up being more complex than that, Rome wasn't
>> built in one day, and I don't think we should try to solve this problem
>> on day1 (as long as the interfaces are not stable interfaces).
> 
> I don't see IOREQ as dealing explicitly with emulation.  Yes, it does
> allow for emulators to be implemented in user-space, but at the end
> it's just an interface that allows forwarding accesses to certain
> resources (for the case we are speaking about here, PCI config space)
> to entities that registered as handlers.
> 
> vPCI OTOH just deals with a very specific resource (PCI config space)
> and only allows internal handlers to be registered on a byte
> granularity.
> 
> So your proposal would be to implement a hierarchy like the one on the
> diagram below:
> 
>     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
>     â””â”€â”€â”€â”€â”€â”€â”€â”¬â”˜ â””â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>             â”‚   â”‚               â”‚
>             â”‚   â”‚           â”Œâ”€â”€â”€â”´â”€â”€â”
>             â”‚   â”‚           â”‚ vPCI â”‚
>             â”‚   â”‚           â””â”€â”¬â”€â”€â”¬â”€â”˜
>          â”Œâ”€â”€â”´â”€â”€â”€â”´â”            â”‚  â”‚
>          â”‚ IOREQ â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜  â”‚
>          â””â”€â”€â”€â”€â”¬â”€â”€â”˜               â”‚
>               â”‚                  â”‚
>  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”              â”Œâ”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>  â”‚ IOREQ servers â”‚              â”‚ vPCI handlers â”‚
>  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜              â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> 
> While what I'm proposing would look like:
> 
>     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
>     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>          â”‚          â”‚                â”‚
>          â””â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”´â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>                â”‚  IOREQ  â”‚
>                â””â”€â”¬â”€â”€â”€â”€â”€â”¬â”€â”˜
>                  â”‚     â”‚
>  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”
>  â”‚ IOREQ servers â”‚          â”‚ vPCI â”‚
>  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜          â””â”€â”€â”€â”¬â”€â”€â”˜
>                                 â”‚
>                             â”Œâ”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>                             â”‚ vPCI handlers â”‚
>                             â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> 
> I'm obviously biased, but I think the latter is cleaner, and allows
> all resources to be arbitrated by the same component (IOREQ).
> 
> If the concern is about the IOREQ hypercall interface, it would be
> fine to introduce an option that limit IOREQs to internal users
> (vPCI) without supporting external IOREQ servers.
> 
> Think of IOREQ as a resource mediator inside of Xen, that just does
> the PCI address decoding and forwards the access to the interested
> party, either an external IOREQ server or vPCI.
> 
>>
>>> It's important that the interfaces we introduce are correct IMO,
>>> because that ends up reflecting on the configuration options that we
>>> expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
>>> XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
>>> gets placed there will ultimately influence how the option gets
>>> exposed in xl/libxl, and the interface there is relevant to keep
>>> stable for end user sanity.
>>
>> I agree with you on the stable interfaces. The important part is not to
>> introduce changes to stable interfaces that could limit us in the
>> future. Specifically that includes xl and libxl, we need to be careful
>> there. But I don't see a single per-domain vPCI enable/disable option as
>> a problem. Let's say that in the future we have a mediated vGPU
>> implementation: if it works together with vPCI then the per-domain vPCI
>> option in libxl will be enabled (either explicitely or by default), if
>> it doesn't then vPCI will be disabled (either explicitely or by the
>> newer vGPU options.)
> 
> If vPCI is hooked into IOREQ there won't be a need anymore to register
> the vPCI config space traps, as that would be done by IOREQ, and hence
> vPCI managed devices could be registered at runtime with IOREQ.  IOW:
> there won't be a need anymore to signal at domain creation whether
> vPCI is intended to be used or not.
> 
> We would obviously need to enable IOREQ for all domains with IOMMU
> enabled, as it would be IOREQ that register the PCI config space
> handlers.
> 
>> For *unstable* interfaces (XEN_DOMCTL_assign_device) I would rather wait
>> before adding more changes on top of them, not because I don't care
>> about the mediated GPU problem (we do have something similar at AMD),
>> but because I worry that if we try to change them now we might not do a
>> good enough job. I would prefer to wait until we know more about the
>> actual use case, ideally with code supporting it.
>>
>> I think the difference in points of views comes from the fact that I see
>> vPCI as the default, QEMU only as a limited peripheral emulator (or
>> mediator for the vGPU case) but not in control. vPCI and QEMU are not
>> equal in my view. vPCI is in charge and always present if not in very
>> uncommon setups (even if we decide to hook it inside Xen by using
>> internal IOREQ interfaces). QEMU might come and go.
> 
> Xen needs a single component that mediates accesses to resources,
> whether that's IOREQ, or something else I don't really care that much.
> Having vPCI mediate accesses to the PCI config space, and IOREQ to the
> memory (and on x86 IO port) space just seems awfully complicated for
> AFAICT no real benefit.
> 
> Also, you seem to confabulate IOREQ with QEMU, while the latter is
> indeed an user of IOREQ, I do see IOREQ as a simple resource mediator
> inside of Xen, that has the ability to forward such accesses to
> external emulators using an hypercall interface.
> 
>> Now that I am writing this, I realize this is also why I wasn't too
>> happy with the idea of hooking vPCI using IOREQ. It makes them look as
>> if they are the same, while I don't they should be considered at the
>> same level of priority, criticality, safety, integration in the system,
>> etc.
> 
> I feel there are some fears with IOREQ from a safety PoV?  The code
> that does the resource multiplexing is small, and as said above if
> there are safety concerns with the hypercall interface it would be
> fine to limit it's usage to internal handlers only.
> 
> Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 16:29:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 16:29:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648131.1012159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYIu-0003ry-41; Tue, 05 Dec 2023 16:29:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648131.1012159; Tue, 05 Dec 2023 16:29:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYIu-0003rr-1Z; Tue, 05 Dec 2023 16:29:48 +0000
Received: by outflank-mailman (input) for mailman id 648131;
 Tue, 05 Dec 2023 16:29:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAYIs-0003qe-0b
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 16:29:46 +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 1rAYIo-0001tB-Bg; Tue, 05 Dec 2023 16:29:42 +0000
Received: from 54-240-197-228.amazon.com ([54.240.197.228]
 helo=[10.95.100.251]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAYIo-0004ji-3b; Tue, 05 Dec 2023 16:29:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=lXUiWPPltrThPXRV+LzJfKYclvUaKlvlfvmMUY4S1ks=; b=ysHPJCuG3gYlvE/11JIyb5diDl
	AsFEXSr+MYrOBoXAgzITCxil4/DWzVwO8rhkaS1AR9VFwt7OGkgm3TGyJ1PmXlj+8fOxKRIhBHuXR
	cdxpvcjc3OU+na4VKZRMi3psGyI51KH3+no5Dbw/lxfmnOOtN7ls8VIPB24uK+Cpx88M=;
Message-ID: <4e56e585-c5f9-4290-94d3-c0a6789188b4@xen.org>
Date: Tue, 5 Dec 2023 16:29:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-GB
To: Arnd Bergmann <arnd@arndb.de>, Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
 <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
 <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
 <5a05e194-28d1-409d-9f45-ca4de0fc78c8@app.fastmail.com>
 <fcdab8c1-b0ea-4d7a-943e-2180b13234fd@xen.org>
 <ab8c9daa-9543-4aed-85f7-69febd85aeb9@app.fastmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <ab8c9daa-9543-4aed-85f7-69febd85aeb9@app.fastmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Arnd,

On 05/12/2023 14:37, Arnd Bergmann wrote:
> On Tue, Dec 5, 2023, at 15:19, Julien Grall wrote:
>> On 05/12/2023 14:10, Arnd Bergmann wrote:
>>> On Tue, Dec 5, 2023, at 15:01, Julien Grall wrote:
>>>> On 05/12/2023 13:59, Jan Beulich wrote:
>>>>> On 05.12.2023 14:46, Julien Grall wrote:
>>> This would repeat the mistake that we had in Linux in the
>>> past (and still do in some drivers): Simply dereferencing
>>> a misaligned pointer is always a bug, even on architectures
>>> that have efficient unaligned load/store instructions,
>>> because C makes this undefined behavior and gcc has
>>> optimizations that assume e.g. 'int *' to never have
>>> the lower two bits set [1].
>>
>> Just to clarify, I haven't suggested to use 'int *'. My point was more
>> that I don't think that the helpers would work as-is on arm32 because
>> even if the ISA allows a direct access, we are setting the bit in SCTLR
>> to disable unaligned access.
>>
>> As Juergen is proposing a common header, then I could ask him to do the
>> work to confirm that the helpers properly work on arm32. But I think
>> this is unfair.
> 
> When I introduced the helpers in Linux, I showed that these
> produce the best output on all modern compilers (at least gcc-5,
> probably earlier) for both architectures that allow unaligned
> access and for those that don't. We used to have architecture
> specific helpers depending on what each architecture could
> do, but all the other variants we had were either wrong or
> less efficient.
> 
> If for some reason an Arm system is configured to trap
> all unaligned access, then you must already pass
> -mno-unaligned-access to the compiler to prevent certain
> optimizations, and then the helpers will still behave
> correctly (the same way they do on armv5, which never has
> unaligned access). On armv7 with -munaligned-access, the
> same functions only prevent the use of stm/ldm and strd/ldrd
> but still use ldr/str.

Unfortunately we don't explicitely do. This would explain why I saw some 
issues with certain compiler [1].

So I agree that adding -mno-unaligned-access for arm32 makes sense.

@Juergen, do you want me to send a patch?

Cheers,

[1] c71163f6-2646-6fae-cb22-600eb0486539@xen.org

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 16:31:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 16:31:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648134.1012170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYKZ-0006Ex-GX; Tue, 05 Dec 2023 16:31:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648134.1012170; Tue, 05 Dec 2023 16:31:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYKZ-0006Eq-CZ; Tue, 05 Dec 2023 16:31:31 +0000
Received: by outflank-mailman (input) for mailman id 648134;
 Tue, 05 Dec 2023 16: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=tw6T=HQ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rAYKY-0006Eh-5e
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 16:31:30 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd2a082d-938b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 17:31:28 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 997614EE0741;
 Tue,  5 Dec 2023 17:31:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd2a082d-938b-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH] ns16550: remove partial explicit initializer
Date: Tue,  5 Dec 2023 17:31:23 +0100
Message-Id: <89f9aebddac56c034aace59c5b910ad4bef701c5.1701793717.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The initializer of 'ns16550_com' violates MISRA C Rule 9.3
because it explicitly initializes only the first element of the array,
but the semantics is the same if the explicit initialization is
omitted.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
In the context of the rule ("Arrays shall not be partially initialized"),
the initialization shall either be fully explicit or implicit.
---
 xen/drivers/char/ns16550.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index ddf2a48be6e7..a21c1d8c3402 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -73,7 +73,7 @@ static struct ns16550 {
     bool msi;
     const struct ns16550_config_param *param; /* Points into .init.*! */
 #endif
-} ns16550_com[2] = { { 0 } };
+} ns16550_com[2] = { };
 
 #ifdef NS16550_PCI
 struct ns16550_config {
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 16:31:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 16:31:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648135.1012180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYKm-0006g8-NG; Tue, 05 Dec 2023 16:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648135.1012180; Tue, 05 Dec 2023 16: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 1rAYKm-0006g1-Jw; Tue, 05 Dec 2023 16:31:44 +0000
Received: by outflank-mailman (input) for mailman id 648135;
 Tue, 05 Dec 2023 16: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=Mnjk=HQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAYKl-0006Eh-0c
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 16:31:43 +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 c4dd1edc-938b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 17:31:41 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 61C8921AA8;
 Tue,  5 Dec 2023 16:31: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 1B263136CF;
 Tue,  5 Dec 2023 16:31:40 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id WoXmBGxQb2UXfAAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 Dec 2023 16:31: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: c4dd1edc-938b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701793900; 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=AZUyiMLf1cVFVdWtphcOxGdGMKf30yKz7n0/SXzmXAE=;
	b=T0j5JSGAajZTAlvWEYzQra+YsjqJiMEpgOhBh8OZ5X0Od/0BrorLo456nI74Ft/yrPaVHw
	jiw5cz2v7RZ1p+Wfr7JHNGb6bNr6Ik9GhFEuqc0fIGJCrgyLFk5SjYxQj7dQomxXbwphsH
	l4nVqSBWxcKq4N/eyYvl13kBAha6Des=
Message-ID: <c506544c-c277-451f-89b3-44e4bef47d52@suse.com>
Date: Tue, 5 Dec 2023 17:31:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
To: Julien Grall <julien@xen.org>, Arnd Bergmann <arnd@arndb.de>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
 <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
 <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
 <5a05e194-28d1-409d-9f45-ca4de0fc78c8@app.fastmail.com>
 <fcdab8c1-b0ea-4d7a-943e-2180b13234fd@xen.org>
 <ab8c9daa-9543-4aed-85f7-69febd85aeb9@app.fastmail.com>
 <4e56e585-c5f9-4290-94d3-c0a6789188b4@xen.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: <4e56e585-c5f9-4290-94d3-c0a6789188b4@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------VHfwC0NKOpbGZ040lQTJbx20"
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.19 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Score: -4.19
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------VHfwC0NKOpbGZ040lQTJbx20
Content-Type: multipart/mixed; boundary="------------y6zFTsEx8eUTCRXtzbHzmRU9";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, Arnd Bergmann <arnd@arndb.de>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
Message-ID: <c506544c-c277-451f-89b3-44e4bef47d52@suse.com>
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
References: <20231205100756.18920-1-jgross@suse.com>
 <20231205100756.18920-2-jgross@suse.com>
 <1984c65c-72d8-4850-9886-f2b0766224a5@xen.org>
 <e8df45d3-1d7d-432b-b0ca-7532d4b35eae@suse.com>
 <96ed8aa3-f92f-4b33-a846-549cfda14548@xen.org>
 <3789ced7-e320-4e32-bda9-3039551a7117@suse.com>
 <652bdb77-6f2d-4fe0-9ae1-132be50962e3@xen.org>
 <57eb9981-26e6-4281-ab31-78fb5b7427b1@suse.com>
 <c65b22b2-ca1c-4c4c-9aa5-6cf74c0fdc6b@xen.org>
 <5a05e194-28d1-409d-9f45-ca4de0fc78c8@app.fastmail.com>
 <fcdab8c1-b0ea-4d7a-943e-2180b13234fd@xen.org>
 <ab8c9daa-9543-4aed-85f7-69febd85aeb9@app.fastmail.com>
 <4e56e585-c5f9-4290-94d3-c0a6789188b4@xen.org>
In-Reply-To: <4e56e585-c5f9-4290-94d3-c0a6789188b4@xen.org>

--------------y6zFTsEx8eUTCRXtzbHzmRU9
Content-Type: multipart/mixed; boundary="------------Y554ay3lbu0ieHzJobkXsIHh"

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

T24gMDUuMTIuMjMgMTc6MjksIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgQXJuZCwNCj4g
DQo+IE9uIDA1LzEyLzIwMjMgMTQ6MzcsIEFybmQgQmVyZ21hbm4gd3JvdGU6DQo+PiBPbiBU
dWUsIERlYyA1LCAyMDIzLCBhdCAxNToxOSwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4+IE9u
IDA1LzEyLzIwMjMgMTQ6MTAsIEFybmQgQmVyZ21hbm4gd3JvdGU6DQo+Pj4+IE9uIFR1ZSwg
RGVjIDUsIDIwMjMsIGF0IDE1OjAxLCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4+PiBPbiAw
NS8xMi8yMDIzIDEzOjU5LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+PiBPbiAwNS4xMi4y
MDIzIDE0OjQ2LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4+IFRoaXMgd291bGQgcmVwZWF0
IHRoZSBtaXN0YWtlIHRoYXQgd2UgaGFkIGluIExpbnV4IGluIHRoZQ0KPj4+PiBwYXN0IChh
bmQgc3RpbGwgZG8gaW4gc29tZSBkcml2ZXJzKTogU2ltcGx5IGRlcmVmZXJlbmNpbmcNCj4+
Pj4gYSBtaXNhbGlnbmVkIHBvaW50ZXIgaXMgYWx3YXlzIGEgYnVnLCBldmVuIG9uIGFyY2hp
dGVjdHVyZXMNCj4+Pj4gdGhhdCBoYXZlIGVmZmljaWVudCB1bmFsaWduZWQgbG9hZC9zdG9y
ZSBpbnN0cnVjdGlvbnMsDQo+Pj4+IGJlY2F1c2UgQyBtYWtlcyB0aGlzIHVuZGVmaW5lZCBi
ZWhhdmlvciBhbmQgZ2NjIGhhcw0KPj4+PiBvcHRpbWl6YXRpb25zIHRoYXQgYXNzdW1lIGUu
Zy4gJ2ludCAqJyB0byBuZXZlciBoYXZlDQo+Pj4+IHRoZSBsb3dlciB0d28gYml0cyBzZXQg
WzFdLg0KPj4+DQo+Pj4gSnVzdCB0byBjbGFyaWZ5LCBJIGhhdmVuJ3Qgc3VnZ2VzdGVkIHRv
IHVzZSAnaW50IConLiBNeSBwb2ludCB3YXMgbW9yZQ0KPj4+IHRoYXQgSSBkb24ndCB0aGlu
ayB0aGF0IHRoZSBoZWxwZXJzIHdvdWxkIHdvcmsgYXMtaXMgb24gYXJtMzIgYmVjYXVzZQ0K
Pj4+IGV2ZW4gaWYgdGhlIElTQSBhbGxvd3MgYSBkaXJlY3QgYWNjZXNzLCB3ZSBhcmUgc2V0
dGluZyB0aGUgYml0IGluIFNDVExSDQo+Pj4gdG8gZGlzYWJsZSB1bmFsaWduZWQgYWNjZXNz
Lg0KPj4+DQo+Pj4gQXMgSnVlcmdlbiBpcyBwcm9wb3NpbmcgYSBjb21tb24gaGVhZGVyLCB0
aGVuIEkgY291bGQgYXNrIGhpbSB0byBkbyB0aGUNCj4+PiB3b3JrIHRvIGNvbmZpcm0gdGhh
dCB0aGUgaGVscGVycyBwcm9wZXJseSB3b3JrIG9uIGFybTMyLiBCdXQgSSB0aGluaw0KPj4+
IHRoaXMgaXMgdW5mYWlyLg0KPj4NCj4+IFdoZW4gSSBpbnRyb2R1Y2VkIHRoZSBoZWxwZXJz
IGluIExpbnV4LCBJIHNob3dlZCB0aGF0IHRoZXNlDQo+PiBwcm9kdWNlIHRoZSBiZXN0IG91
dHB1dCBvbiBhbGwgbW9kZXJuIGNvbXBpbGVycyAoYXQgbGVhc3QgZ2NjLTUsDQo+PiBwcm9i
YWJseSBlYXJsaWVyKSBmb3IgYm90aCBhcmNoaXRlY3R1cmVzIHRoYXQgYWxsb3cgdW5hbGln
bmVkDQo+PiBhY2Nlc3MgYW5kIGZvciB0aG9zZSB0aGF0IGRvbid0LiBXZSB1c2VkIHRvIGhh
dmUgYXJjaGl0ZWN0dXJlDQo+PiBzcGVjaWZpYyBoZWxwZXJzIGRlcGVuZGluZyBvbiB3aGF0
IGVhY2ggYXJjaGl0ZWN0dXJlIGNvdWxkDQo+PiBkbywgYnV0IGFsbCB0aGUgb3RoZXIgdmFy
aWFudHMgd2UgaGFkIHdlcmUgZWl0aGVyIHdyb25nIG9yDQo+PiBsZXNzIGVmZmljaWVudC4N
Cj4+DQo+PiBJZiBmb3Igc29tZSByZWFzb24gYW4gQXJtIHN5c3RlbSBpcyBjb25maWd1cmVk
IHRvIHRyYXANCj4+IGFsbCB1bmFsaWduZWQgYWNjZXNzLCB0aGVuIHlvdSBtdXN0IGFscmVh
ZHkgcGFzcw0KPj4gLW1uby11bmFsaWduZWQtYWNjZXNzIHRvIHRoZSBjb21waWxlciB0byBw
cmV2ZW50IGNlcnRhaW4NCj4+IG9wdGltaXphdGlvbnMsIGFuZCB0aGVuIHRoZSBoZWxwZXJz
IHdpbGwgc3RpbGwgYmVoYXZlDQo+PiBjb3JyZWN0bHkgKHRoZSBzYW1lIHdheSB0aGV5IGRv
IG9uIGFybXY1LCB3aGljaCBuZXZlciBoYXMNCj4+IHVuYWxpZ25lZCBhY2Nlc3MpLiBPbiBh
cm12NyB3aXRoIC1tdW5hbGlnbmVkLWFjY2VzcywgdGhlDQo+PiBzYW1lIGZ1bmN0aW9ucyBv
bmx5IHByZXZlbnQgdGhlIHVzZSBvZiBzdG0vbGRtIGFuZCBzdHJkL2xkcmQNCj4+IGJ1dCBz
dGlsbCB1c2UgbGRyL3N0ci4NCj4gDQo+IFVuZm9ydHVuYXRlbHkgd2UgZG9uJ3QgZXhwbGlj
aXRlbHkgZG8uIFRoaXMgd291bGQgZXhwbGFpbiB3aHkgSSBzYXcgc29tZSBpc3N1ZXMgDQo+
IHdpdGggY2VydGFpbiBjb21waWxlciBbMV0uDQo+IA0KPiBTbyBJIGFncmVlIHRoYXQgYWRk
aW5nIC1tbm8tdW5hbGlnbmVkLWFjY2VzcyBmb3IgYXJtMzIgbWFrZXMgc2Vuc2UuDQo+IA0K
PiBASnVlcmdlbiwgZG8geW91IHdhbnQgbWUgdG8gc2VuZCBhIHBhdGNoPw0KDQpZZXMsIHdp
bGwgZG8uDQoNCg0KSnVlcmdlbg0KDQo=
--------------Y554ay3lbu0ieHzJobkXsIHh
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-----

--------------Y554ay3lbu0ieHzJobkXsIHh--

--------------y6zFTsEx8eUTCRXtzbHzmRU9--

--------------VHfwC0NKOpbGZ040lQTJbx20
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/Ey8FAmVvUGsFAwAAAAAACgkQsN6d1ii/Ey/M
EQf+IgIIgB/hR1vyEfm5kKBFIIXhJc7/1UNU2YByy+0eGbaxeIHRIviZ6+7q/5JE8hRYE0ZB4rDp
ri8UYd4eRaL/DKtG62Ph0tn8pHuwRfREulY/Jq3izADPDQiayA5vNfZO9FHO4BGvfrF8+lyKqTHE
CukycKN5sEQTQkw3CSoqowgThCoWYJ8VYtvgUJAKpeHIPIQlVTNfZ6OS8o7OYQzxxGvH5/Uyh6n7
sIQFc7OrKvV5+M4nXRlQmmUTzu5PXVP5wahbXZBM7KeuWsHrdXzr9EYZ+n7v0toANWJ1Hu9Oqtdf
+3mUVmO3GSCeOZk6Yd3esRbBgouhkQfEV+KZ2s3ljA==
=yBkf
-----END PGP SIGNATURE-----

--------------VHfwC0NKOpbGZ040lQTJbx20--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 17:03:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 17:03:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648143.1012190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYp3-0006l9-48; Tue, 05 Dec 2023 17:03:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648143.1012190; Tue, 05 Dec 2023 17:03:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYp3-0006l2-15; Tue, 05 Dec 2023 17:03:01 +0000
Received: by outflank-mailman (input) for mailman id 648143;
 Tue, 05 Dec 2023 17:02: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=j3Ry=HQ=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1rAYp1-0006kw-Aq
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 17:02:59 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22fca150-9390-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 18:02:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 22fca150-9390-11ee-9b0f-b553b5be7939
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1701795775;
	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=tKj/G59HmDBT/RcKJNhjfacQG0y6lbGXbN5/YyhoGFQ=;
	b=gBs2xU/8H+BYBNLyCeYcxWGK2DZm4IabnOmpFdODKMdgkBPuxusYpkJuD8d5nh/R3KLnbv
	x5HOmiKZACda/7MqInA95GLLoSjFc6ZbPAHItZhCLbXpNfG3vEP8PEeAv0Dyhl0ZN/i5p4
	D36nAXuQqr6TgdWMOQNCHWsCvy69bXXMfTa4MjCEVvmGElsCn7OmsxHPtkilqKWMZmCn8s
	WgGntur+yfvv0BQdbGoMsjQqWyqyXeiiJ0BlpPUYpuPujZWY1I4IA7ixlnPTzRjMbnL3E9
	ql34epQy/+k5Z+geYL3XccPv8qe8KR/gW2//csS7+XQIbeTKK4sr4lXiM6fONw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1701795775;
	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=tKj/G59HmDBT/RcKJNhjfacQG0y6lbGXbN5/YyhoGFQ=;
	b=ycX4aADBX6fBhOk+amfiCNFdHlR2j22kpskGtkhiZY8tFpmyEFOH2YLz4yXuMW8J2h7zyH
	rHbpCWNVp2OWgABA==
To: Stefano Stabellini <sstabellini@kernel.org>, "Chen, Jiqian"
 <Jiqian.Chen@amd.com>
Cc: Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, "Rafael J . Wysocki" <rafael@kernel.org>,
 Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, Roger
 Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org"
 <xen-devel@lists.xenproject.org>, "linux-kernel@vger.kernel.org"
 <linux-kernel@vger.kernel.org>, "linux-acpi@vger.kernel.org"
 <linux-acpi@vger.kernel.org>, "Stabellini, Stefano"
 <stefano.stabellini@amd.com>, "Deucher, Alexander"
 <Alexander.Deucher@amd.com>, "Koenig, Christian"
 <Christian.Koenig@amd.com>, "Hildebrand, Stewart"
 <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
 <Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
 "Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
In-Reply-To: <alpine.DEB.2.22.394.2312041331210.110490@ubuntu-linux-20-04-desktop>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-2-Jiqian.Chen@amd.com> <87edg2xuu9.ffs@tglx>
 <BL1PR12MB5849F2E24E00BF7B20A0B4A6E786A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <alpine.DEB.2.22.394.2312041331210.110490@ubuntu-linux-20-04-desktop>
Date: Tue, 05 Dec 2023 18:02:54 +0100
Message-ID: <87fs0gwpj5.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Mon, Dec 04 2023 at 13:31, Stefano Stabellini wrote:
> On Mon, 3 Dec 2023, Chen, Jiqian wrote:
>> >> vpci device state when device is reset on dom0 side.
>> >>
>> >> And call that function in pcistub_init_device. Because when
>> >> we use "pci-assignable-add" to assign a passthrough device in
>> >> Xen, it will reset passthrough device and the vpci state will
>> >> out of date, and then device will fail to restore bar state.
>> >>
>> >> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>> >> Signed-off-by: Huang Rui <ray.huang@amd.com>
>> > 
>> > This Signed-off-by chain is incorrect.
>> > 
>> > Documentation/process/submitting-patches.rst has a full chapter about
>> > S-O-B and the correct usage.
>> I am the author of this series of patches, and Huang Rui transported the v1 to upstream. And now I transport v2. I am not aware that the SOB chain is incorrect.
>> Do you have any suggestions?
>
> I think he means that your Signed-off-by should be the second one of the
> two as you are the one submitting the patch to the LKML

No.

   Mailfrom: Jiqian Chen <Jiqian.Chen@amd.com>
   <body>

   Changelog-text

   Signed-off-by: Huang Rui <ray.huang@amd.com>
   Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

is equally wrong because that would end up with Chen as author and Huang
as first S-O-B which is required to be the author's S-O-B

To make the above correct this would require:

   Mailfrom: Jiqian Chen <Jiqian.Chen@amd.com>
   <body>

   From: Huang Rui <ray.huang@amd.com>

   Changelog-text

   Signed-off-by: Huang Rui <ray.huang@amd.com>
   Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

   which tells that Huang is the author and Chen is the 'transporter',
   which unfortunately does not reflect reality.

Or:

   Mailfrom: Jiqian Chen <Jiqian.Chen@amd.com>
   <body>

   Changelog-text

   Co-developed-by: Huang Rui <ray.huang@amd.com>
   Signed-off-by: Huang Rui <ray.huang@amd.com>
   Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

   which tells that Checn is the author and Huang co-developed the
   patch, which might be true or not.


V1 which was sent by Huang has the ordering is correct:

   Mailfrom: Huang Rui <ray.huang@amd.com>
   <body>

   From: Jiqian Chen <Jiqian.Chen@amd.com>

   Changelog-text

   Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
   Signed-off-by: Huang Rui <ray.huang@amd.com>

   i.e. Chen authored and Huang transported

Now this V2 has not really much to do with V1 and is a new
implementation to solve the problem, which was authored by Chen, so
Huang is not involved at all if I understand correctly.

So what does his S-O-B mean here? Nothing...

It's very well documented how the whole S-O-B business works and it's
not really rocket science to get it straight.

It has a meaning and is not just for decoration purposes.

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 17:03:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 17:03:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648146.1012200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYpz-0007PJ-HA; Tue, 05 Dec 2023 17:03:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648146.1012200; Tue, 05 Dec 2023 17: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 1rAYpz-0007PC-Dv; Tue, 05 Dec 2023 17:03:59 +0000
Received: by outflank-mailman (input) for mailman id 648146;
 Tue, 05 Dec 2023 17:03: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=ZseQ=HQ=gmail.com=bart.vanassche@srs-se1.protection.inumbo.net>)
 id 1rAYpx-0007Nv-Ic
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 17:03:57 +0000
Received: from mail-oo1-f50.google.com (mail-oo1-f50.google.com
 [209.85.161.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46004397-9390-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 18:03:56 +0100 (CET)
Received: by mail-oo1-f50.google.com with SMTP id
 006d021491bc7-58d9a4e9464so2495521eaf.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 09:03:56 -0800 (PST)
Received: from [172.20.2.177] (rrcs-173-197-90-226.west.biz.rr.com.
 [173.197.90.226]) by smtp.gmail.com with ESMTPSA id
 s25-20020a639259000000b00578afd8e012sm5146562pgn.92.2023.12.05.09.03.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 09:03:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46004397-9390-11ee-98e5-6d05b1d4d9a1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701795835; x=1702400635;
        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=5Kxt6CKccKyM2aD5KqaYbJ+5NRAtsSu20TdTe87tfro=;
        b=Bdbf//CfjFlBq1PTy6Ibkt6e+wPhM9h7opL2oVbEi7Wsd0H9no0HojWN9W7AtgVL9G
         ry5g7oCKgOsDUcuQVIbH3iucZmD5BaF3ke0L3wBWI+xGYc0Up1MErE+7i9LxYZ223wQD
         NMAhnaAvgxD19tQoVt8eGEbTtvFW44xjZMmGA1NIuTV7Z6wCr+0LOg4pxRIVL0Bz4DIj
         WYSWNbodi2HnAgAAFRXUORs3z80S9wS1ymttApW71ROB4l6fhYpDHVxdeE+VtawqKYYJ
         PNWlYu5ziHpLf4MHNkztu1Ko21D7lhf/r4BLzIhSrneQhX5pZItBCthPEim8xdF3QsTc
         vmrA==
X-Gm-Message-State: AOJu0YzR57EDnI8SqMGGhukqsxUXEcBzfwqAFAdSBjbvNWq0xMAkhqNh
	BcDjJwcvlJNw9LQL6g0Y5Aw=
X-Google-Smtp-Source: AGHT+IHREsBDTR/fguPuUAOPGrQJFqdX7+L934/9nqEfo9v3T6jgbM8x1qOuTAd7fOfx1S8tYfwMzA==
X-Received: by 2002:a05:6358:6f95:b0:16e:43a1:6881 with SMTP id s21-20020a0563586f9500b0016e43a16881mr2252180rwn.26.1701795834695;
        Tue, 05 Dec 2023 09:03:54 -0800 (PST)
Message-ID: <189fa9b2-bcc8-4839-ac04-33a29bba9aaa@acm.org>
Date: Tue, 5 Dec 2023 09:03:48 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next RFC 01/14] block: add some bdev apis
Content-Language: en-US
To: Yu Kuai <yukuai1@huaweicloud.com>, axboe@kernel.dk, roger.pau@citrix.com,
 colyli@suse.de, kent.overstreet@gmail.com, joern@lazybastard.org,
 miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
 sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
 gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
 martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
 dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org, chao@kernel.org,
 tytso@mit.edu, adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
 konishi.ryusuke@gmail.com, willy@infradead.org, akpm@linux-foundation.org,
 hare@suse.de, p.raghav@samsung.com
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
 linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
 linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
 linux-btrfs@vger.kernel.org, linux-erofs@lists.ozlabs.org,
 linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
 linux-nilfs@vger.kernel.org, yukuai3@huawei.com, yi.zhang@huawei.com,
 yangerkun@huawei.com
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-2-yukuai1@huaweicloud.com>
From: Bart Van Assche <bvanassche@acm.org>
In-Reply-To: <20231205123728.1866699-2-yukuai1@huaweicloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 12/5/23 04:37, Yu Kuai wrote:
> +static inline u8 block_bits(struct block_device *bdev)
> +{
> +	return bdev->bd_inode->i_blkbits;
> +}

This function needs a name that's more descriptive.

Thanks,

Bart.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 17:10:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 17:10:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648151.1012209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAYvn-00022e-4L; Tue, 05 Dec 2023 17:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648151.1012209; Tue, 05 Dec 2023 17: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 1rAYvn-00022X-1c; Tue, 05 Dec 2023 17:09:59 +0000
Received: by outflank-mailman (input) for mailman id 648151;
 Tue, 05 Dec 2023 17:09:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAYvm-00022R-QH
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 17:09:58 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cdd9fe3-9391-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 18:09:56 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40bda47c489so40884845e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 09:09:56 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 bg24-20020a05600c3c9800b0040b3d33ab55sm23185556wmb.47.2023.12.05.09.09.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 09:09:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1cdd9fe3-9391-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701796195; x=1702400995; 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=cTjh+ByXcmDCxhU+NNUA3HCKjxE68CgBO2niK+jby0Q=;
        b=XsBkEEEm+DK8Z9GG41FDs4IZY6g7Ld8qlXJJ5s3WYpvPz0B4+LkOHyop37ioNv1Y8I
         OmI97wDra/6mluuY3CCcTGuPJt2vLPMR1Hs2/UijuZGV7c0IrE+IvaPZq2j0PzPl4kvx
         H5c21eF7757l6rpsHeSJNjpBxIDx21iULjkUQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701796195; x=1702400995;
        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=cTjh+ByXcmDCxhU+NNUA3HCKjxE68CgBO2niK+jby0Q=;
        b=WV/g5irNf2gTsaXnVU7JIcJ+ci7NTk8fzr+F/EuH3SSSfx3fWcL6PnFa4g6JugwZg9
         ymGDZg2+lwW/Zn+F7IFsVfBgwp4tEWZqPIdlzS3/uqizPx7ud9/HKZ+jLuosDbgocQPf
         J7UzlV8SXTITbMU/2Y/lOsBopZRfTG6OAsM5FHTZl7Xt2N9QqTG1P8Vuzx+El77Feq+b
         PLUvMQXw9L1P1/Bx33XXOLmzgAN5kuW+z/BPYp2sbmAaKQC134UXTI9yyYgXJsOLT8zS
         YnaZVXCEIRE+T93UPiPlQye00J0Oo8R8lzWU3CY7s/HsMrOltg7nsVAYxzXhiKCcsP2h
         IVjg==
X-Gm-Message-State: AOJu0Yz3KVg2MnDZRH0H63eYcueXH3U+dryKndPicCaZTcrl0XyHW/6W
	8CH9SwZFCXSOfGm+ZhuWkT4u2A==
X-Google-Smtp-Source: AGHT+IEeiAx2grdp6OiaajX/mmo4BWCwwvE/ZkNit21Mw4PLo6+jb9OJAtOmu08DVeBcWuUvX+qoCw==
X-Received: by 2002:a7b:c34a:0:b0:40b:5e59:c586 with SMTP id l10-20020a7bc34a000000b0040b5e59c586mr785994wmj.176.1701796195252;
        Tue, 05 Dec 2023 09:09:55 -0800 (PST)
Date: Tue, 5 Dec 2023 18:09:53 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Message-ID: <ZW9ZYeDD7k146LsB@macbook>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
 <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop>
 <ZW8EkQLTwEEK6fXC@macbook>
 <8980b420-8e6a-4dd9-ba5f-bd2eb527c2f7@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8980b420-8e6a-4dd9-ba5f-bd2eb527c2f7@amd.com>

On Tue, Dec 05, 2023 at 11:27:03AM -0500, Stewart Hildebrand wrote:
> On 12/5/23 06:08, Roger Pau MonnÃ© wrote:
> > On Mon, Dec 04, 2023 at 02:07:51PM -0800, Stefano Stabellini wrote:
> >> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
> >>> On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
> >>>> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> >>>>> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
> >>>>>> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
> >>>>>>          bus = PCI_BUS(machine_sbdf);
> >>>>>>          devfn = PCI_DEVFN(machine_sbdf);
> >>>>>>  
> >>>>>> +        if ( needs_vpci(d) && !has_vpci(d) )
> >>>>>> +        {
> >>>>>> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
> >>>>>> +                   &PCI_SBDF(seg, bus, devfn), d);
> >>>>>> +            ret = -EPERM;
> >>>>>> +            break;
> >>>>>
> >>>>> I think this is likely too restrictive going forward.  The current
> >>>>> approach is indeed to enable vPCI on a per-domain basis because that's
> >>>>> how PVH dom0 uses it, due to being unable to use ioreq servers.
> >>>>>
> >>>>> If we start to expose vPCI suport to guests the interface should be on
> >>>>> a per-device basis, so that vPCI could be enabled for some devices,
> >>>>> while others could still be handled by ioreq servers.
> >>>>>
> >>>>> We might want to add a new flag to xen_domctl_assign_device (used by
> >>>>> XEN_DOMCTL_assign_device) in order to signal whether the device will
> >>>>> use vPCI.
> >>>>
> >>>> Actually I don't think this is a good idea. I am all for flexibility but
> >>>> supporting multiple different configurations comes at an extra cost for
> >>>> both maintainers and contributors. I think we should try to reduce the
> >>>> amount of configurations we support rather than increasing them
> >>>> (especially on x86 where we have PV, PVH, HVM).
> >>>
> >>> I think it's perfectly fine to initially require a domain to have all
> >>> its devices either passed through using vPCI or ireqs, but the
> >>> interface IMO should allow for such differentiation in the future.
> >>> That's why I think introducing a domain wide vPCI flag might not be
> >>> the best option going forward.
> >>>
> >>> It would be perfectly fine for XEN_DOMCTL_assign_device to set a
> >>> domain wide vPCI flag, iow:
> >>>
> >>> if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
> >>> {
> >>>     if ( has_arch_pdevs(d) )
> >>>     {
> >>>         printk("All passthrough devices must use the same backend\n");
> >>>         return -EINVAL;
> >>>     }
> >>>
> >>>     /* Set vPCI domain flag */
> >>> }
> >>
> >> That would be fine by me, but maybe we can avoid this change too. I was
> >> imagining that vPCI would be enabled at domain creation, not at runtime.
> >> And that vPCI would be enabled by default for all PVH guests (once we
> >> are past the initial experimental phase.)
> > 
> > Then we don't even need a new CDF flag, and just enable vPCI when
> > IOMMU is enabled?  IOW: we can key the enabling of vPCI to
> > XEN_DOMCTL_CDF_iommu for specific domain types?
> 
> There are many Arm based platforms that need to use iommu but don't have (or don't use) PCI, so we'd still like to have a separate vPCI flag.

OK, read below though - if we switch to vPCI being a descendant of
IOREQ (so that the PCI config space decoding is done by IOREQ) we
could hotplug vPCI managed devices at runtime without requiring any
prior initialization at domain create, since the traps to the PCI
config space would be setup by IOREQ.

We might need a PCI flag in order to signal whether the domain is
intended to use PCI devices or not, and so whether IOREQ needs to
setup PCI config space traps (either fully emulated or passthrough
devices).  But that would be arch-specific AFAICT, as on x86 we
always trap accesses to the PCI IO ports.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 17:25:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 17:25:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648157.1012219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAZAX-0001q6-EN; Tue, 05 Dec 2023 17:25:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648157.1012219; Tue, 05 Dec 2023 17:25: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 1rAZAX-0001pz-BP; Tue, 05 Dec 2023 17:25:13 +0000
Received: by outflank-mailman (input) for mailman id 648157;
 Tue, 05 Dec 2023 17:25: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=Rbgk=HQ=proton.me=renewin@srs-se1.protection.inumbo.net>)
 id 1rAZAV-0001pt-5C
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 17:25:12 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3c4d51e4-9393-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 18:25:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c4d51e4-9393-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1701797107; x=1702056307;
	bh=CEcQRcIn7plPS46ALOZW3CbBXq4NhHTbqsZujfE13+8=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector;
	b=OeOcdfRJUOu0xctixHkV0f1Idkv5Bh2P29CY7di5Ak0HHdBXW3iKbGEeidPa6NoCE
	 ECM8jNrc7DdDJNvKYhe2Ue+Ega2oH1V+qhkBCM4qUedHXZo4Xuyd8had3dKnh5+Hvj
	 JA6wcR6lVoGt5H7MMu5bGgZf1MUHhh4IzKhA+JYq57km+1IM4Tb+y1A4o0aNZssFPA
	 28GY1BDtNyOwDoACkdR0B6sG9Nn0JoNbkSY6ODCS2t7DqbspGgloeuAVZuxF0HuElV
	 BFllJPnLjFlWiB/T4FlecY1FbOUI9VrmI1WoDt7G8DkwpTaIYjYLMpWqgWQjEfunu2
	 QoZ0Cf7AsmojA==
Date: Tue, 05 Dec 2023 17:24:44 +0000
To: Juergen Gross <jgross@suse.com>
From: =?utf-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Cc: Jan Beulich <jbeulich@suse.com>, George Dunlap <george.dunlap@citrix.com>, Dario Faggioli <dfaggioli@suse.com>, "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
Message-ID: <RWTcalGTi6AWz6y3kGdVeeviN3FSE96OVVCyH-DL9qySYjv0jImv0avp2uCDGGTtUm830cGTQeffygUZXECli4JChABgzUyUjsv2zFJiTVU=@proton.me>
In-Reply-To: <4f6445b2-f871-415a-aa72-7c08a2c357e0@suse.com>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me> <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com> <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com> <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com> <1fc21e82-f9f3-4929-a138-2b3de98c06dc@suse.com> <dec807bc-8450-48b0-be99-70bf17e62bca@suse.com> <eoYHHXdHJzBIPmppjwYPoxVy_LbXN8PCF5FawlOBYMIpqAUeOiPNsW9ZVL3u_iCpzCy7xB0muzDKIfCIDdiFkR-bumO3TgxZkksrOZE7_oE=@proton.me> <4f6445b2-f871-415a-aa72-7c08a2c357e0@suse.com>
Feedback-ID: 45853758:user:proton
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha512; boundary="------5169c2fae1025291f41601eaf70825899bcddb48543b224f07981b9084c5108d"; charset=utf-8

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------5169c2fae1025291f41601eaf70825899bcddb48543b224f07981b9084c5108d
Content-Type: multipart/mixed;boundary=---------------------d7db68ad1a997730490d21f776c8386f

-----------------------d7db68ad1a997730490d21f776c8386f
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;charset=utf-8

You are right about sched-gran=3Dcore being the issue.

I don't know if this is relevant, but my CPU shouldn't be able to use sche=
d-gran=3Dcore it's asymmetric.

smt=3Don with sched-gran=3Dcore gives me a warning that it's falling back =
to sched-gran=3Dcpu, I tested smt=3Doff with sched-gran=3Dcpu and it works=
.

This warning is missing with sched-gran=3Dcore and smt=3Doff =


(XEN) ***************************************************
(XEN) Asymmetric cpu configuration.
(XEN) Falling back to sched-gran=3Dcpu.
(XEN) ***************************************************


/rene


On Tuesday, December 5th, 2023 at 07:21, Juergen Gross <jgross@suse.com> w=
rote:


> On 04.12.23 18:40, Ren=C3=A9 Winther H=C3=B8jgaard wrote:
> =


> > Hi Juergen,
> > =


> > Sorry for the late reply.
> > =


> > Here are the commands I execute, it is 'xl cpupool-cpu-add pcores 4-15=
' that crash the system.
> > =


> > xl cpupool-cpu-remove Pool-0 4-31
> > xl cpupool-create name=3D\"ecores\" sched=3D\"credit\"
> > xl cpupool-cpu-add ecores 16-31
> > =


> > xl cpupool-create name=3D\"pcores\" sched=3D\"credit\"
> > xl cpupool-cpu-add pcores 4-15
> > =


> > Here is the other information you asked for.
> > =


> > xl cpupool-list:
> > Name CPUs Sched Active Domain count
> > Pool-0 24 credit y 5
> > =


> > xl cpupool-list -c:
> > Name CPU list
> > Pool-0 0,2,4,6,8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30=
,31
> > =


> > xl info:
> > host : dom0
> > release : 6.1.62-1.qubes.fc37.x86_64
> > version : #1 SMP PREEMPT_DYNAMIC Tue Nov 14 06:16:38 GMT 2023
> > machine : x86_64
> > nr_cpus : 24
> > max_cpu_id : 31
> > nr_nodes : 1
> > cores_per_socket : 24
> > threads_per_core : 1
> > cpu_mhz : 2995.196
> > hw_caps : bfebfbff:77faf3ff:2c100800:00000121:0000000f:239c27eb:184007=
8c:00000100
> > virt_caps : pv hvm hvm_directio pv_directio hap iommu_hap_pt_share vmt=
race gnttab-v1
> > total_memory : 65373
> > free_memory : 56505
> > sharing_freed_memory : 0
> > sharing_used_memory : 0
> > outstanding_claims : 0
> > free_cpus : 0
> > xen_major : 4
> > xen_minor : 17
> > xen_extra : .2
> > xen_version : 4.17.2
> > xen_caps : xen-3.0-x86_64 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_6=
4
> > =


> > xen_scheduler : credit
> > xen_pagesize : 4096
> > platform_params : virt_start=3D0xffff800000000000
> > xen_changeset :
> > =


> > xen_commandline : placeholder dom0_mem=3Dmin:2048M dom0_mem=3Dmax:4096=
M ucode=3Dscan gnttab_max_frames=3D2048 gnttab_max_maptrack_frames=3D4096 =
smt=3Doff dom0_max_vcpus=3D4 dom0_vcpus_pin sched-gran=3Dcore sched=3Dcred=
it no-real-mode edd=3Doff
> =


> =


> Please drop the "sched-gran=3Dcore" from the Xen boot parameters. It doe=
sn't make
> any sense with smt=3Doff and is adding additional complexity.
> =


> It shouldn't crash, but core scheduling is still "Experimental". I'll lo=
ok into
> the issue later.
> =


> =


> Juergen
-----------------------d7db68ad1a997730490d21f776c8386f
Content-Type: application/pgp-keys; filename="publickey - renewin@proton.me - 0x43C32E54.asc"; name="publickey - renewin@proton.me - 0x43C32E54.asc"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="publickey - renewin@proton.me - 0x43C32E54.asc"; name="publickey - renewin@proton.me - 0x43C32E54.asc"

LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgp4ak1FWWxmZy9oWUpLd1lCQkFI
YVJ3OEJBUWRBOWhrZnlRblEzVlVETWZsT3FPZU1sc1o0N252eml1cmoKbXJnZTFCd040d3pOSlhK
bGJtVjNhVzVBY0hKdmRHOXVMbTFsSUR4eVpXNWxkMmx1UUhCeWIzUnZiaTV0ClpUN0Nqd1FRRmdv
QUlBVUNZbGZnL2dZTENRY0lBd0lFRlFnS0FnUVdBZ0VBQWhrQkFoc0RBaDRCQUNFSgpFQXRxSisz
WXh1S1hGaUVFUThNdVZIeDNmREZGcnZqSEMyb243ZGpHNHBkYUtBRC9WMnNlNk5lTGJ0VkkKVzVB
ck1XRHdJN21xZ0dNSDgrQ3ZCelh1RUE5Y2xrOEEvUkNLbjdzRE1HZVJzWVNENWNFRXdidVRLK01B
CkZ4T2owaEZGOS9PNHRxQUd6amdFWWxmZy9oSUtLd1lCQkFHWFZRRUZBUUVIUUlmc3ozdGNhVElk
MWp2YQpZVG12NURmdUVRVGY4V2s3RmtGVG5LNHltMjRJQXdFSUI4SjRCQmdXQ0FBSkJRSmlWK0Qr
QWhzTUFDRUoKRUF0cUorM1l4dUtYRmlFRVE4TXVWSHgzZkRGRnJ2akhDMm9uN2RqRzRwZDZpUUQr
TzVrR0w2ZjhndktJCmlpSStidS94NkFacytvNGZERmVlc052bS9TWkFRZUVBLzBxbEw1RHR2ckJD
TjY5b2xZMERlRjQ1d0R0bQpEbDlIZ2dtc09sdXRTYzRCCj1xUFNVCi0tLS0tRU5EIFBHUCBQVUJM
SUMgS0VZIEJMT0NLLS0tLS0K
-----------------------d7db68ad1a997730490d21f776c8386f--

--------5169c2fae1025291f41601eaf70825899bcddb48543b224f07981b9084c5108d
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: ProtonMail

wnUEARYKACcFgmVvXMkJkAtqJ+3YxuKXFiEEQ8MuVHx3fDFFrvjHC2on7djG
4pcAACORAQCReT16oCU3/ubwLU5uW0YDmar9uG9bd6J8BRscdb/r4gEA80sy
ApPzs47BJz9FPaTmcDxgmYOvsTdoq2Rl+5a1mAA=
=mkNj
-----END PGP SIGNATURE-----


--------5169c2fae1025291f41601eaf70825899bcddb48543b224f07981b9084c5108d--



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 17:29:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 17:29:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648160.1012230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAZEe-0003nk-TL; Tue, 05 Dec 2023 17:29:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648160.1012230; Tue, 05 Dec 2023 17:29:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAZEe-0003nd-Qb; Tue, 05 Dec 2023 17:29:28 +0000
Received: by outflank-mailman (input) for mailman id 648160;
 Tue, 05 Dec 2023 17:29:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAZEd-0003mP-Ir
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 17:29:27 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d610a154-9393-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 18:29:25 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3333fbbeab9so2802893f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 09:29:25 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 q4-20020a05600000c400b003333fa3d043sm8640900wrx.12.2023.12.05.09.29.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 09:29:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d610a154-9393-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701797365; x=1702402165; 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=yVfRlkG8GOOrjxG4Vt56UQQqJU2qCckZjCaJgDt8mII=;
        b=JRj+77htwNyhSx6GUpuqgH2++R/tHmCRzfE8Na1Urdl8QYkeQmk4h4TCMe7R0CubIt
         iF0Gz7q2hfuz0X1LcwrAf396t3Fn+F5iP9oveSdzwIwBVkLtog8Aw1qB4t4oD0xh7Y+u
         OFfFJEKX4gc6HDFX05ljSZVBfSgTNxTK7VRMM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701797365; x=1702402165;
        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=yVfRlkG8GOOrjxG4Vt56UQQqJU2qCckZjCaJgDt8mII=;
        b=bFwLe+gXj3hSFQXtpRcjJHUkEdOMpvD9nVj6n/1CDAxNNWyNXNzgF9wnI5iNwuwk5W
         PF3Kgzc6Ev5HGA7zQyuVd6E8BRJ61Xn8eeVKSd145o2IYRkWgdI+Rd1yTWBmx09jnWFu
         tyFoyFDyeZiEcoutfiRGDVZquW8Q49b9Cqx83DBL4xDAp3uQFhBqQWhaA/K25CHyUYoa
         Fd+V6TfudG/1A1+kz/Yr7j9ufzPVc/7wrZSR60f7R/TpLOn6CO2YBJsNXcfYB32ePk/O
         pVJFB9KnpBcRBiGwPqS5HV7XDyt5ehU36WKXJgi+C69og2Kqe8MtK4r8JjTiRrP5gumQ
         8AzQ==
X-Gm-Message-State: AOJu0YwePv/qf6SXOnWju9ObJHNn3TqBAFkDfLhL4PNaIrKbGwAhIE6D
	Y4VBGdqrU9oqSp9D9FJ+rolw3A==
X-Google-Smtp-Source: AGHT+IH41ZPV6/r7QTEWzhmAhRtocFVMf40iVV4vmd2oI0D/KlctPP8JM5m6ctnHLUzViAyekUdzmw==
X-Received: by 2002:adf:f383:0:b0:333:b13:5565 with SMTP id m3-20020adff383000000b003330b135565mr4096479wro.71.1701797365098;
        Tue, 05 Dec 2023 09:29:25 -0800 (PST)
Date: Tue, 5 Dec 2023 18:29:24 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 5/6] x86/vPIC: vpic_elcr_mask() master bit 2 control
Message-ID: <ZW9d9MK6l6GwXo60@macbook>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <09fc4c14-07e8-4e59-a23e-bb295125f25a@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <09fc4c14-07e8-4e59-a23e-bb295125f25a@suse.com>

On Tue, Nov 28, 2023 at 11:35:46AM +0100, Jan Beulich wrote:
> Master bit 2 is treated specially: We force it set, but we don't expose
> the bit being set to the guest. While right now the read and write
> handling can easily use the fixed mask, the restore input checking that
> is about to be put in place wants to use the inverted mask to prove that
> no bits are unduly set. That will require master bit 2 to be set. Otoh
> the read path requires the bit to be clear (the bit can have either
> value for the use on the write path). Hence allow use sites control over
> that bit.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: New, split from larger patch.
> ---
> I'm certainly open to naming suggestions for the new macro parameter.
> "mb2" can certainly be misleading as to Multiboot 2. Yet "master_bit_2"
> it too long for my taste, not the least because of the macro then
> needing to be split across lines.

Let's leave it as mb2, I think given the context it is difficult to
mislead this code as having anything to do with multiboot.

> 
> --- a/xen/arch/x86/hvm/vpic.c
> +++ b/xen/arch/x86/hvm/vpic.c
> @@ -41,7 +41,7 @@
>  #define vpic_lock(v)   spin_lock(__vpic_lock(v))
>  #define vpic_unlock(v) spin_unlock(__vpic_lock(v))
>  #define vpic_is_locked(v) spin_is_locked(__vpic_lock(v))
> -#define vpic_elcr_mask(v) ((v)->is_master ? 0xf8 : 0xde)
> +#define vpic_elcr_mask(v, mb2) ((v)->is_master ? 0xf8 | ((mb2) << 2) : 0xde)
>  
>  /* Return the highest priority found in mask. Return 8 if none. */
>  #define VPIC_PRIO_NONE 8
> @@ -387,7 +387,7 @@ static int cf_check vpic_intercept_elcr_
>          if ( dir == IOREQ_WRITE )
>          {
>              /* Some IRs are always edge trig. Slave IR is always level trig. */
> -            data = (*val >> shift) & vpic_elcr_mask(vpic);
> +            data = (*val >> shift) & vpic_elcr_mask(vpic, 1);

Not that it matters much, but I think you could use
vpic_elcr_mask(vpic, 0) to strictly keep the same behavior as
before?

>              if ( vpic->is_master )
>                  data |= 1 << 2;

Since the bit is forcefully set here anyway.

Regardless:

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 17:37:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 17:37:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648166.1012240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAZM4-0006EV-M3; Tue, 05 Dec 2023 17:37:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648166.1012240; Tue, 05 Dec 2023 17: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 1rAZM4-0006EO-I2; Tue, 05 Dec 2023 17:37:08 +0000
Received: by outflank-mailman (input) for mailman id 648166;
 Tue, 05 Dec 2023 17:37: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=H3q/=HQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rAZM3-0006EH-G9
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 17:37:07 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20602.outbound.protection.outlook.com
 [2a01:111:f400:7e89::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e78b9c53-9394-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 18:37:05 +0100 (CET)
Received: from MN2PR15CA0035.namprd15.prod.outlook.com (2603:10b6:208:1b4::48)
 by MW4PR12MB7312.namprd12.prod.outlook.com (2603:10b6:303:21a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 17:37:00 +0000
Received: from BL02EPF0001A101.namprd05.prod.outlook.com
 (2603:10b6:208:1b4:cafe::53) by MN2PR15CA0035.outlook.office365.com
 (2603:10b6:208:1b4::48) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.29 via Frontend
 Transport; Tue, 5 Dec 2023 17:37:00 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A101.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.7068.20 via Frontend Transport; Tue, 5 Dec 2023 17:37:00 +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.34; Tue, 5 Dec
 2023 11:37:00 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 5 Dec
 2023 11:36:59 -0600
Received: from [172.28.155.39] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Tue, 5 Dec 2023 11:36:57 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e78b9c53-9394-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=WfWY+lUhc45OKsjex93MPlTvCOlHEcehu/oUJJCtUpLU+AKydxCHMd0heuHsSu/jOqBbIWeMpbewbwCawa2aXYkbEdcYNk5QKeHvRObUZJlOUlnHzrCzhjbgyNHbuVTgP7N0qQci6tFsJO/IRf+9Ed2iPHsttsMJbOZDxtZhfdOfkmWMfXYS+hRQiuMpGcmCTdabp93XHzVNvDyglfVFUSrEQHOOML9PhaQJ0I5fkX5hWnIACSlho16xn0bNcTGrygONlK+DWtIoVmAd+YvbDCa4vEoCS7x3KyTMq0ENJTh4zREbjDEMz82wqA/RXkwKmvrkyWBQQ59SVYNuHt2Egw==
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=5AEX5YrWkKg5si0T8yPCHviqsvYAN+ikYqrxp7XoJ54=;
 b=WcLfniCPqE7Dg/koBDY92pGAvMhOQyO4zRxGXXqGZ9/Ji67Qg2Ys8W8WLH+5JWp5wNTucSqKIR2RMa9vHT7VkY/Dol46s19VzHLgMXI4W5b0gtzw/2U84FwE9pVi5Tqg1psmgWkEeHdIGOSNT3Z9Ncd1aDkvTH+Tmyfye/DS8HtCJeQF81kMl5KSE5ULtsnLmZwOSm4dYk1duax5FkrZ9P4fsz2nuLIwIYXQZQukZYXe4T0JcGJK2SeafZCguu3LyoWoQ//Z0CRDiZRysNDyDNzPHVv+ZnKnngZEbACabNy5ZmdE2iqFjr/I5z0b/wMeJk+8NPhYzuCf9BDB4ywbyg==
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=5AEX5YrWkKg5si0T8yPCHviqsvYAN+ikYqrxp7XoJ54=;
 b=NSsoZkSBWa1kyGWJDw05t1BiIoZ0NTWxpeAIg9r58nsCTNUDMTadVBG1UEYCA0Vf/Jw4pFp3YnyZ2knBmZts+84eOrmM1NiZ3PJYWagQhc+YZdh+hm1qHBSrAv4baMEObh1jQMvMK7WpRKoCtna9zDt1zh8TYVMEM45itbiRxiY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <075bae3d-c255-4354-9917-191cce3ba1b1@amd.com>
Date: Tue, 5 Dec 2023 12:36:57 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
 <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop>
 <ZW8EkQLTwEEK6fXC@macbook> <8980b420-8e6a-4dd9-ba5f-bd2eb527c2f7@amd.com>
 <ZW9ZYeDD7k146LsB@macbook>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <ZW9ZYeDD7k146LsB@macbook>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A101:EE_|MW4PR12MB7312:EE_
X-MS-Office365-Filtering-Correlation-Id: a828d9b0-a445-4bd5-772b-08dbf5b8c970
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	tWzBiseTJ4euE9D1z3e87A92gmeSbMnjcrPXKKj5nzwpyWedZRDbHKxOrq/JDi8qaY/ciU73GKSZQCvbIbEp9A/jKj2J2dLHRchcy7iATWCroc7wUht0b/Z6Mpl3ewIox/H0szDLSVulFBgcITf97fY0+t9VpJx4mqPh9ML2QGvmmFQ61Exw7DtAj8JqIeI1WPxGhIyT8I76CEyHinbHmk7aTteAwQQ7ehN3SIR09VgUnanZ2NpTcgu30MlyHk3Ch6uTNqXo55i+3AgnfdBnXXH7TWOn2OcE7NMSgLFDU/HOPmoJnhRhsnDcMidS067Zw4XVwu2PgDqxeegwpbO1fDF0llZjsE9mZxzMCCCmuUGu5WH/QP/T3lIHZswO+9fOiqJfDMTgqVlynix48+90YOtIv2d1lif+YOh9A08Qdi1S/RTa1Xz29H2udqV1I4JEbK7UyBzrMi1Wkon6ZzguWwFk5/2QMsYjISoFfwS/kmDT/LY5z1EAkF5GauJQ6qqd3zmq66jCYFN6cGZD6VCIet4wB2KHZQO3vegLtA69RyBpnisXZUcYPRM/OYFZmC6qTAKa0XDWWI3K4n1/bQhDnXUIOpjT4ZOIQ4tuQGR/iWRj/F167qtPaY7nvXNGpRz2wjQBkTB0t3IbgZ89a00XLl+Ag+sorz3tfn6HdIdhOOhu5lw7C6EMlKCZyvC9ze5gIN0yYpYvE0Hhg2LvsXGvSiTe1djgj8V3KJVQuYDounL36M3GdUFY3qxCTJceh17zA/AmV0KwF0YiQbyoDBFRneYMIU7YPpz+LZtOzCNOwb8GTgNh4OjLZMh4ujIJyrI4PVJYs7YRPwY543qnNEGvDstNufYo0uGskqaRO/9jVDY=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(376002)(346002)(136003)(396003)(230273577357003)(230922051799003)(230173577357003)(82310400011)(1800799012)(451199024)(186009)(64100799003)(46966006)(36840700001)(40470700004)(40480700001)(31686004)(478600001)(53546011)(47076005)(8936002)(2616005)(81166007)(26005)(16576012)(336012)(54906003)(426003)(4326008)(8676002)(70206006)(70586007)(6916009)(316002)(83380400001)(7416002)(40460700003)(356005)(82740400003)(36756003)(36860700001)(44832011)(2906002)(5660300002)(86362001)(31696002)(41300700001)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 17:37:00.4810
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a828d9b0-a445-4bd5-772b-08dbf5b8c970
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A101.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7312

On 12/5/23 12:09, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 11:27:03AM -0500, Stewart Hildebrand wrote:
>> On 12/5/23 06:08, Roger Pau MonnÃ© wrote:
>>> On Mon, Dec 04, 2023 at 02:07:51PM -0800, Stefano Stabellini wrote:
>>>> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
>>>>> On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
>>>>>> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
>>>>>>> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
>>>>>>>> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
>>>>>>>>          bus = PCI_BUS(machine_sbdf);
>>>>>>>>          devfn = PCI_DEVFN(machine_sbdf);
>>>>>>>>  
>>>>>>>> +        if ( needs_vpci(d) && !has_vpci(d) )
>>>>>>>> +        {
>>>>>>>> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
>>>>>>>> +                   &PCI_SBDF(seg, bus, devfn), d);
>>>>>>>> +            ret = -EPERM;
>>>>>>>> +            break;
>>>>>>>
>>>>>>> I think this is likely too restrictive going forward.  The current
>>>>>>> approach is indeed to enable vPCI on a per-domain basis because that's
>>>>>>> how PVH dom0 uses it, due to being unable to use ioreq servers.
>>>>>>>
>>>>>>> If we start to expose vPCI suport to guests the interface should be on
>>>>>>> a per-device basis, so that vPCI could be enabled for some devices,
>>>>>>> while others could still be handled by ioreq servers.
>>>>>>>
>>>>>>> We might want to add a new flag to xen_domctl_assign_device (used by
>>>>>>> XEN_DOMCTL_assign_device) in order to signal whether the device will
>>>>>>> use vPCI.
>>>>>>
>>>>>> Actually I don't think this is a good idea. I am all for flexibility but
>>>>>> supporting multiple different configurations comes at an extra cost for
>>>>>> both maintainers and contributors. I think we should try to reduce the
>>>>>> amount of configurations we support rather than increasing them
>>>>>> (especially on x86 where we have PV, PVH, HVM).
>>>>>
>>>>> I think it's perfectly fine to initially require a domain to have all
>>>>> its devices either passed through using vPCI or ireqs, but the
>>>>> interface IMO should allow for such differentiation in the future.
>>>>> That's why I think introducing a domain wide vPCI flag might not be
>>>>> the best option going forward.
>>>>>
>>>>> It would be perfectly fine for XEN_DOMCTL_assign_device to set a
>>>>> domain wide vPCI flag, iow:
>>>>>
>>>>> if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
>>>>> {
>>>>>     if ( has_arch_pdevs(d) )
>>>>>     {
>>>>>         printk("All passthrough devices must use the same backend\n");
>>>>>         return -EINVAL;
>>>>>     }
>>>>>
>>>>>     /* Set vPCI domain flag */
>>>>> }
>>>>
>>>> That would be fine by me, but maybe we can avoid this change too. I was
>>>> imagining that vPCI would be enabled at domain creation, not at runtime.
>>>> And that vPCI would be enabled by default for all PVH guests (once we
>>>> are past the initial experimental phase.)
>>>
>>> Then we don't even need a new CDF flag, and just enable vPCI when
>>> IOMMU is enabled?  IOW: we can key the enabling of vPCI to
>>> XEN_DOMCTL_CDF_iommu for specific domain types?
>>
>> There are many Arm based platforms that need to use iommu but don't have (or don't use) PCI, so we'd still like to have a separate vPCI flag.
> 
> OK, read below though - if we switch to vPCI being a descendant of
> IOREQ (so that the PCI config space decoding is done by IOREQ) we
> could hotplug vPCI managed devices at runtime without requiring any
> prior initialization at domain create, since the traps to the PCI
> config space would be setup by IOREQ.
> 
> We might need a PCI flag in order to signal whether the domain is
> intended to use PCI devices or not, and so whether IOREQ needs to
> setup PCI config space traps (either fully emulated or passthrough
> devices).  But that would be arch-specific AFAICT, as on x86 we
> always trap accesses to the PCI IO ports.

On Arm, the toolstack (or dom0less creation code) needs to construct a {v,ioreq}PCI root complex node in the device tree before guest boot. Attempting to hot plug such a device tree node at runtime sounds like a goal for the (far) future. On Arm, we don't trap the {v,ioreq}PCI config space by default, so, yes, we for sure would need such a {v,ioreq}PCI flag for setting up the {v,ioreq}PCI mmio handlers if we go this route.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 17:41:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 17:41:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648171.1012250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAZQG-0008Vm-DK; Tue, 05 Dec 2023 17:41:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648171.1012250; Tue, 05 Dec 2023 17:41:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAZQG-0008Vf-AX; Tue, 05 Dec 2023 17:41:28 +0000
Received: by outflank-mailman (input) for mailman id 648171;
 Tue, 05 Dec 2023 17:41:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jRF5=HQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rAZQE-0008UJ-IP
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 17:41:26 +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 8296c933-9395-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 18:41:24 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-50bfd7be487so2540897e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 09:41:24 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 b12-20020a05600010cc00b0033340aa3de2sm8062899wrx.14.2023.12.05.09.41.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Dec 2023 09:41:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8296c933-9395-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701798084; x=1702402884; 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=TIu81kHNLcUFnzXEDsWPV/BO02CgjvtbH3jmiN2zx80=;
        b=jAo0S2BbAuv/ENjnbY0UptYH9LGXfJgIf6F54Kflh2kxP7ca4fcy6iusGyK/vo5MHg
         P38muVXfPCk0kmw8AepsPTmXhlCHualy0TIDcQaeUiBPJL5fFzrxt0K+2afL9wCuVv78
         FnM8If1rSE/7Gv4Xn0EUCYZ35mQodGqbCbvqg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701798084; x=1702402884;
        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=TIu81kHNLcUFnzXEDsWPV/BO02CgjvtbH3jmiN2zx80=;
        b=GfYEl2QCZ9wCjl4oHhbW7Li5hHogi5lh8LSbhtqTk7Z7+JtWuqNl/utKC9M3FsyX+I
         aNQ4C+yMy9TSJVUPcqPNie7dnVxU30CpY2eLgtg66k1/O3olmjJjIBArLOmQXbwagJfE
         I13Q9tBXnFs2ckuievAqihqUuNUZvH7hLOB/9oML6SEcF9sa7eODACizdCO2JB1SziTZ
         bokW4YQUHbkry7CDn1KPdUkFM3BP9p2p6AuKlq8jeB75r/aTXA+MOK15JOAreufqfgkG
         pVSHG9wk8g566qo/rW+oAYmg/N7UytH5Va4uSFSwpkDFC8TBYn4whg8lyCGHOchHtMIs
         w7BA==
X-Gm-Message-State: AOJu0Yxt+/EchjUeYl7tV7mw1zwSJ7GsXyDBgb6LPHUGVlZKll0VQrGA
	I9DsDvF9xSrltz5b+gga0QblvA==
X-Google-Smtp-Source: AGHT+IEFM/kMcyd9FAk5Pf7rQBjSV+Md4yFzZYBQ+C1ZUp/V9UeVYpmt9Hxo72XTRPC65hBg6GL5WA==
X-Received: by 2002:a19:550d:0:b0:50b:fd52:e629 with SMTP id n13-20020a19550d000000b0050bfd52e629mr1526932lfe.125.1701798083979;
        Tue, 05 Dec 2023 09:41:23 -0800 (PST)
Date: Tue, 5 Dec 2023 18:41:22 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 6/6] x86/vPIC: check values loaded from state save
 record
Message-ID: <ZW9gwvKUODm-busm@macbook>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <bac47eda-012f-492a-a1a4-c478929ba08e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bac47eda-012f-492a-a1a4-c478929ba08e@suse.com>

On Tue, Nov 28, 2023 at 11:36:40AM +0100, Jan Beulich wrote:
> Loading is_master from the state save record can lead to out-of-bounds
> accesses via at least the two container_of() uses by vpic_domain() and
> __vpic_lock(). Make sure the value is consistent with the instance being
> loaded.
> 
> For ->int_output (which for whatever reason isn't a 1-bit bitfield),
> besides bounds checking also take ->init_state into account.
> 
> For ELCR follow what vpic_intercept_elcr_io()'s write path and
> vpic_reset() do, i.e. don't insist on the internal view of the value to
> be saved.
> 
> Move the instance range check as well, leaving just an assertion in the
> load handler.
> 
> 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 Tue Dec 05 18:12:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:12:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648179.1012259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAZuB-0007so-Nb; Tue, 05 Dec 2023 18:12:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648179.1012259; Tue, 05 Dec 2023 18: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 1rAZuB-0007sh-Kx; Tue, 05 Dec 2023 18:12:23 +0000
Received: by outflank-mailman (input) for mailman id 648179;
 Tue, 05 Dec 2023 18:12: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 1rAZuB-0007sb-2O
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:12: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 1rAZuA-0003rD-Nw; Tue, 05 Dec 2023 18:12:22 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=dev-dsk-jgrall-1b-035652ec.eu-west-1.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAZuA-0006bU-F3; Tue, 05 Dec 2023 18:12:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=P5Xze86EjvxFXEoGvxJ0ZNh6IeY9VP72gpznJ61IUMI=; b=atlLqf
	vi8rVvAaZO+1fjOKuO3hO1CZws4Y/sS/eXi50DpnvxcMOC7RSULBgf4uX0291YDQTzivU3zp1xQmY
	aMFGAMA9LJpvoxGQ8ncwzs04FBW3j6/iEJODFQiOOohAq5X2XYOp0VshAt3QvLxfS9F7faysEMX4R
	cHWpLD6fx5w=;
From: Julien Grall <julien@xen.org>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	Julien Grall <jgrall@amazon.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH] CODING_STYLE: Add a section of the naming convention
Date: Tue,  5 Dec 2023 18:12:18 +0000
Message-Id: <20231205181218.74667-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>

Several maintainers have expressed a stronger preference
to use '-' when in filename and option that contains multiple
words.

So document it in CODING_STYLE.

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

---
    Changes in v2:
        - New wording
        - Update the section title
        - Add Jan's acked-by
---
 CODING_STYLE | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/CODING_STYLE b/CODING_STYLE
index ced3ade5a6fb..ed13ee2b664b 100644
--- a/CODING_STYLE
+++ b/CODING_STYLE
@@ -144,6 +144,15 @@ separate lines and each line should begin with a leading '*'.
  * Note beginning and end markers on separate lines and leading '*'.
  */
 
+Naming convention for files and command line options
+----------------------------------------------------
+
+'-' should be used to separate words in commandline options and filenames.
+E.g. timer-works.
+
+Note that some of the options and filenames are using '_'. This is now
+deprecated.
+
 Emacs local variables
 ---------------------
 
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648182.1012270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa1x-0002h8-H7; Tue, 05 Dec 2023 18:20:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648182.1012270; Tue, 05 Dec 2023 18:20:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa1x-0002h1-D9; Tue, 05 Dec 2023 18:20:25 +0000
Received: by outflank-mailman (input) for mailman id 648182;
 Tue, 05 Dec 2023 18:20: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa1w-0002fT-A5
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:24 +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 f3add748-939a-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 19:20:22 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-407-Kqz6uEAtM--M6ZQHnqRW-Q-1; Tue,
 05 Dec 2023 13:20:16 -0500
Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com
 [10.11.54.4])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id B0314280640A;
 Tue,  5 Dec 2023 18:20:15 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 07EE92026F95;
 Tue,  5 Dec 2023 18:20: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: f3add748-939a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800421;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=eFkXBHi0g9elebJAxvoO9P+CWlnlZ1lnQhrpQ4+NAns=;
	b=W4+y4mZfSY1XemyaU19m1xoAbrs3Hirecr/8oAGgu3giSiwYyo0+zFGsBLmLbpel7UWiZ3
	16R3ZM24SfhzoUHGewpWVLl2Q5S0QJyyOteXe5kLduV9jG74x6Xcls069z/LHcnJ6K9MBn
	0y9cEfIYXVRjtnHwgMzfnj0kAW9p4L0=
X-MC-Unique: Kqz6uEAtM--M6ZQHnqRW-Q-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 00/14] aio: remove AioContext lock
Date: Tue,  5 Dec 2023 13:19:57 -0500
Message-ID: <20231205182011.1976568-1-stefanha@redhat.com>
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.4

v2:
- Add Patch 2 "scsi: assert that callbacks run in the correct AioContext" [Kevin]
- Add Patch 7 "block: remove bdrv_co_lock()" [Eric and Kevin]
- Remove stray goto label in Patch 8 [Kevin]
- Fix "eeked" -> "eked" typo in Patch 10 [Eric]

This series removes the AioContext locking APIs from QEMU.
aio_context_acquire() and aio_context_release() are currently only needed to
support the locking discipline required by AIO_POLL_WHILE() (except for a stray
user that I converted in Patch 1). AIO_POLL_WHILE() doesn't really need the
AioContext lock anymore, so it's possible to remove the API. This is a nice
simplification because the AioContext locking rules were sometimes tricky or
underspecified, leading to many bugs of the years.

This patch series removes these APIs across the codebase and cleans up the
documentation/comments that refers to them.

Patch 1 is a AioContext lock user I forgot to convert in my earlier SCSI
conversion series.

Patch 2 adds an assertion to the SCSI code to ensure that callbacks are invoked
in the correct AioContext.

Patch 3 removes tests for the AioContext lock because they will no longer be
needed when the lock is gone.

Patches 4-10 remove the AioContext lock. These can be reviewed by categorizing
the call sites into 1. places that take the lock because they call an API that
requires the lock (ultimately AIO_POLL_WHILE()) and 2. places that take the
lock to protect state. There should be no instances of case 2 left. If you see
one, you've found a bug in this patch series!

Patches 11-14 remove comments.

Based-on: 20231204164259.1515217-1-stefanha@redhat.com ("[PATCH v2 0/4] scsi: eliminate AioContext lock")
Since SCSI needs to stop relying on the AioContext lock before we can remove
the lock.

Stefan Hajnoczi (14):
  virtio-scsi: replace AioContext lock with tmf_bh_lock
  scsi: assert that callbacks run in the correct AioContext
  tests: remove aio_context_acquire() tests
  aio: make aio_context_acquire()/aio_context_release() a no-op
  graph-lock: remove AioContext locking
  block: remove AioContext locking
  block: remove bdrv_co_lock()
  scsi: remove AioContext locking
  aio-wait: draw equivalence between AIO_WAIT_WHILE() and
    AIO_WAIT_WHILE_UNLOCKED()
  aio: remove aio_context_acquire()/aio_context_release() API
  docs: remove AioContext lock from IOThread docs
  scsi: remove outdated AioContext lock comment
  job: remove outdated AioContext locking comments
  block: remove outdated AioContext locking comments

 docs/devel/multiple-iothreads.txt    |  45 ++--
 include/block/aio-wait.h             |  16 +-
 include/block/aio.h                  |  17 --
 include/block/block-common.h         |   3 -
 include/block/block-global-state.h   |  23 +-
 include/block/block-io.h             |  12 +-
 include/block/block_int-common.h     |   2 -
 include/block/graph-lock.h           |  21 +-
 include/block/snapshot.h             |   2 -
 include/hw/virtio/virtio-scsi.h      |  17 +-
 include/qemu/job.h                   |  20 --
 block.c                              | 363 ++++-----------------------
 block/backup.c                       |   4 +-
 block/blklogwrites.c                 |   8 +-
 block/blkverify.c                    |   4 +-
 block/block-backend.c                |  33 +--
 block/commit.c                       |  16 +-
 block/copy-before-write.c            |  22 +-
 block/export/export.c                |  22 +-
 block/export/vhost-user-blk-server.c |   4 -
 block/graph-lock.c                   |  44 +---
 block/io.c                           |  45 +---
 block/mirror.c                       |  41 +--
 block/monitor/bitmap-qmp-cmds.c      |  20 +-
 block/monitor/block-hmp-cmds.c       |  29 ---
 block/qapi-sysemu.c                  |  27 +-
 block/qapi.c                         |  18 +-
 block/qcow2.c                        |   4 +-
 block/quorum.c                       |   8 +-
 block/raw-format.c                   |   5 -
 block/replication.c                  |  72 +-----
 block/snapshot.c                     |  26 +-
 block/stream.c                       |  12 +-
 block/vmdk.c                         |  20 +-
 block/write-threshold.c              |   6 -
 blockdev.c                           | 319 +++++------------------
 blockjob.c                           |  30 +--
 hw/block/dataplane/virtio-blk.c      |  10 -
 hw/block/dataplane/xen-block.c       |  17 +-
 hw/block/virtio-blk.c                |  45 +---
 hw/core/qdev-properties-system.c     |   9 -
 hw/scsi/scsi-bus.c                   |   2 -
 hw/scsi/scsi-disk.c                  |  46 ++--
 hw/scsi/virtio-scsi.c                |  80 +++---
 job.c                                |  16 --
 migration/block.c                    |  33 +--
 migration/migration-hmp-cmds.c       |   3 -
 migration/savevm.c                   |  22 --
 net/colo-compare.c                   |   2 -
 qemu-img.c                           |   4 -
 qemu-io.c                            |  10 +-
 qemu-nbd.c                           |   2 -
 replay/replay-debugging.c            |   4 -
 system/dma-helpers.c                 |   3 +
 tests/unit/test-aio.c                |  67 +----
 tests/unit/test-bdrv-drain.c         |  91 ++-----
 tests/unit/test-bdrv-graph-mod.c     |  26 +-
 tests/unit/test-block-iothread.c     |  31 ---
 tests/unit/test-blockjob.c           | 137 ----------
 tests/unit/test-replication.c        |  11 -
 util/async.c                         |  14 --
 util/vhost-user-server.c             |   3 -
 scripts/block-coroutine-wrapper.py   |   7 +-
 tests/qemu-iotests/202               |   2 +-
 tests/qemu-iotests/203               |   3 +-
 tests/tsan/suppressions.tsan         |   1 -
 66 files changed, 340 insertions(+), 1741 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648183.1012279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa21-0002wr-N5; Tue, 05 Dec 2023 18:20:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648183.1012279; Tue, 05 Dec 2023 18:20:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa21-0002wk-K7; Tue, 05 Dec 2023 18:20:29 +0000
Received: by outflank-mailman (input) for mailman id 648183;
 Tue, 05 Dec 2023 18:20: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa20-0002wG-OM
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:28 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5e9bd2f-939a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 19:20:26 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-166-Jo0TQi2kMYmjMAUTVu4qcg-1; Tue, 05 Dec 2023 13:20:21 -0500
Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com
 [10.11.54.6])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 98D45881D35;
 Tue,  5 Dec 2023 18:20:20 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id F19A02166B31;
 Tue,  5 Dec 2023 18:20: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: f5e9bd2f-939a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800425;
	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=XASdwYxqaVrj7Zfh8PNH/kQYEj4OCOxW3FbL/rilTmk=;
	b=RwA24PZ3499uaaQMl6J8s+HqChqLDzhexQduPKzvdJCgV1EY6FjANpyORle7Qrd82t0qoW
	fmnYQjYM5u5HGGfkLq4WB1W3ktZXig9fGDMTDzx9/+VyaOuaV8pCryf2pc+Mg3oxJ/XCBe
	LQkO6T4/gBx4ucLLhz4DLUTYZaPgdRc=
X-MC-Unique: Jo0TQi2kMYmjMAUTVu4qcg-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 02/14] scsi: assert that callbacks run in the correct AioContext
Date: Tue,  5 Dec 2023 13:19:59 -0500
Message-ID: <20231205182011.1976568-3-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6

Since the removal of AioContext locking, the correctness of the code
relies on running requests from a single AioContext at any given time.

Add assertions that verify that callbacks are invoked in the correct
AioContext.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 hw/scsi/scsi-disk.c  | 14 ++++++++++++++
 system/dma-helpers.c |  3 +++
 2 files changed, 17 insertions(+)

diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 2c1bbb3530..a5048e0aaf 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -273,6 +273,10 @@ static void scsi_aio_complete(void *opaque, int ret)
     SCSIDiskReq *r = (SCSIDiskReq *)opaque;
     SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, r->req.dev);
 
+    /* The request must only run in the BlockBackend's AioContext */
+    assert(blk_get_aio_context(s->qdev.conf.blk) ==
+           qemu_get_current_aio_context());
+
     assert(r->req.aiocb != NULL);
     r->req.aiocb = NULL;
 
@@ -370,8 +374,13 @@ static void scsi_dma_complete(void *opaque, int ret)
 
 static void scsi_read_complete_noio(SCSIDiskReq *r, int ret)
 {
+    SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, r->req.dev);
     uint32_t n;
 
+    /* The request must only run in the BlockBackend's AioContext */
+    assert(blk_get_aio_context(s->qdev.conf.blk) ==
+           qemu_get_current_aio_context());
+
     assert(r->req.aiocb == NULL);
     if (scsi_disk_req_check_error(r, ret, false)) {
         goto done;
@@ -496,8 +505,13 @@ static void scsi_read_data(SCSIRequest *req)
 
 static void scsi_write_complete_noio(SCSIDiskReq *r, int ret)
 {
+    SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, r->req.dev);
     uint32_t n;
 
+    /* The request must only run in the BlockBackend's AioContext */
+    assert(blk_get_aio_context(s->qdev.conf.blk) ==
+           qemu_get_current_aio_context());
+
     assert (r->req.aiocb == NULL);
     if (scsi_disk_req_check_error(r, ret, false)) {
         goto done;
diff --git a/system/dma-helpers.c b/system/dma-helpers.c
index 528117f256..9b221cf94e 100644
--- a/system/dma-helpers.c
+++ b/system/dma-helpers.c
@@ -119,6 +119,9 @@ static void dma_blk_cb(void *opaque, int ret)
 
     trace_dma_blk_cb(dbs, ret);
 
+    /* DMAAIOCB is not thread-safe and must be accessed only from dbs->ctx */
+    assert(ctx == qemu_get_current_aio_context());
+
     dbs->acb = NULL;
     dbs->offset += dbs->iov.size;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648184.1012290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa26-0003FW-08; Tue, 05 Dec 2023 18:20:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648184.1012290; Tue, 05 Dec 2023 18:20: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 1rAa25-0003FP-Sz; Tue, 05 Dec 2023 18:20:33 +0000
Received: by outflank-mailman (input) for mailman id 648184;
 Tue, 05 Dec 2023 18:20: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa24-0002wG-F9
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:32 +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 f86807a6-939a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 19:20:30 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-365-GF-QWva-Oni-7XU0aB-D9w-1; Tue, 05 Dec 2023 13:20:20 -0500
Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com
 [10.11.54.5])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4226585A597;
 Tue,  5 Dec 2023 18:20:18 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 99C5B51E3;
 Tue,  5 Dec 2023 18:20: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: f86807a6-939a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800429;
	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=PYzMzXb1PdcjP3A1qwHad/XAhWJKM4hT2cxMg6piGu4=;
	b=WCB28mTctlm3HwtP/GGotoNmvKb3jY7S4dCnfTsaXoi2R9QnZCGAeOSqUWsC5z1ZCuUGNb
	Mh7yJw/f52Pr13MI1Q4ZS5dcXKhCOZ0ShmJyr4cEJYbRjlcBqjNSM7xyTvVkpegipigXlt
	P4HrDlGa4qL4FJGZR3nnd9W5rFZAMtY=
X-MC-Unique: GF-QWva-Oni-7XU0aB-D9w-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 01/14] virtio-scsi: replace AioContext lock with tmf_bh_lock
Date: Tue,  5 Dec 2023 13:19:58 -0500
Message-ID: <20231205182011.1976568-2-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5

Protect the Task Management Function BH state with a lock. The TMF BH
runs in the main loop thread. An IOThread might process a TMF at the
same time as the TMF BH is running. Therefore tmf_bh_list and tmf_bh
must be protected by a lock.

Run TMF request completion in the IOThread using aio_wait_bh_oneshot().
This avoids more locking to protect the virtqueue and SCSI layer state.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
---
 include/hw/virtio/virtio-scsi.h |  3 +-
 hw/scsi/virtio-scsi.c           | 62 ++++++++++++++++++++++-----------
 2 files changed, 43 insertions(+), 22 deletions(-)

diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
index 779568ab5d..da8cb928d9 100644
--- a/include/hw/virtio/virtio-scsi.h
+++ b/include/hw/virtio/virtio-scsi.h
@@ -85,8 +85,9 @@ struct VirtIOSCSI {
 
     /*
      * TMFs deferred to main loop BH. These fields are protected by
-     * virtio_scsi_acquire().
+     * tmf_bh_lock.
      */
+    QemuMutex tmf_bh_lock;
     QEMUBH *tmf_bh;
     QTAILQ_HEAD(, VirtIOSCSIReq) tmf_bh_list;
 
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
index 9c751bf296..4f8d35facc 100644
--- a/hw/scsi/virtio-scsi.c
+++ b/hw/scsi/virtio-scsi.c
@@ -123,6 +123,30 @@ static void virtio_scsi_complete_req(VirtIOSCSIReq *req)
     virtio_scsi_free_req(req);
 }
 
+static void virtio_scsi_complete_req_bh(void *opaque)
+{
+    VirtIOSCSIReq *req = opaque;
+
+    virtio_scsi_complete_req(req);
+}
+
+/*
+ * Called from virtio_scsi_do_one_tmf_bh() in main loop thread. The main loop
+ * thread cannot touch the virtqueue since that could race with an IOThread.
+ */
+static void virtio_scsi_complete_req_from_main_loop(VirtIOSCSIReq *req)
+{
+    VirtIOSCSI *s = req->dev;
+
+    if (!s->ctx || s->ctx == qemu_get_aio_context()) {
+        /* No need to schedule a BH when there is no IOThread */
+        virtio_scsi_complete_req(req);
+    } else {
+        /* Run request completion in the IOThread */
+        aio_wait_bh_oneshot(s->ctx, virtio_scsi_complete_req_bh, req);
+    }
+}
+
 static void virtio_scsi_bad_req(VirtIOSCSIReq *req)
 {
     virtio_error(VIRTIO_DEVICE(req->dev), "wrong size for virtio-scsi headers");
@@ -338,10 +362,7 @@ static void virtio_scsi_do_one_tmf_bh(VirtIOSCSIReq *req)
 
 out:
     object_unref(OBJECT(d));
-
-    virtio_scsi_acquire(s);
-    virtio_scsi_complete_req(req);
-    virtio_scsi_release(s);
+    virtio_scsi_complete_req_from_main_loop(req);
 }
 
 /* Some TMFs must be processed from the main loop thread */
@@ -354,18 +375,16 @@ static void virtio_scsi_do_tmf_bh(void *opaque)
 
     GLOBAL_STATE_CODE();
 
-    virtio_scsi_acquire(s);
+    WITH_QEMU_LOCK_GUARD(&s->tmf_bh_lock) {
+        QTAILQ_FOREACH_SAFE(req, &s->tmf_bh_list, next, tmp) {
+            QTAILQ_REMOVE(&s->tmf_bh_list, req, next);
+            QTAILQ_INSERT_TAIL(&reqs, req, next);
+        }
 
-    QTAILQ_FOREACH_SAFE(req, &s->tmf_bh_list, next, tmp) {
-        QTAILQ_REMOVE(&s->tmf_bh_list, req, next);
-        QTAILQ_INSERT_TAIL(&reqs, req, next);
+        qemu_bh_delete(s->tmf_bh);
+        s->tmf_bh = NULL;
     }
 
-    qemu_bh_delete(s->tmf_bh);
-    s->tmf_bh = NULL;
-
-    virtio_scsi_release(s);
-
     QTAILQ_FOREACH_SAFE(req, &reqs, next, tmp) {
         QTAILQ_REMOVE(&reqs, req, next);
         virtio_scsi_do_one_tmf_bh(req);
@@ -379,8 +398,7 @@ static void virtio_scsi_reset_tmf_bh(VirtIOSCSI *s)
 
     GLOBAL_STATE_CODE();
 
-    virtio_scsi_acquire(s);
-
+    /* Called after ioeventfd has been stopped, so tmf_bh_lock is not needed */
     if (s->tmf_bh) {
         qemu_bh_delete(s->tmf_bh);
         s->tmf_bh = NULL;
@@ -393,19 +411,19 @@ static void virtio_scsi_reset_tmf_bh(VirtIOSCSI *s)
         req->resp.tmf.response = VIRTIO_SCSI_S_TARGET_FAILURE;
         virtio_scsi_complete_req(req);
     }
-
-    virtio_scsi_release(s);
 }
 
 static void virtio_scsi_defer_tmf_to_bh(VirtIOSCSIReq *req)
 {
     VirtIOSCSI *s = req->dev;
 
-    QTAILQ_INSERT_TAIL(&s->tmf_bh_list, req, next);
+    WITH_QEMU_LOCK_GUARD(&s->tmf_bh_lock) {
+        QTAILQ_INSERT_TAIL(&s->tmf_bh_list, req, next);
 
-    if (!s->tmf_bh) {
-        s->tmf_bh = qemu_bh_new(virtio_scsi_do_tmf_bh, s);
-        qemu_bh_schedule(s->tmf_bh);
+        if (!s->tmf_bh) {
+            s->tmf_bh = qemu_bh_new(virtio_scsi_do_tmf_bh, s);
+            qemu_bh_schedule(s->tmf_bh);
+        }
     }
 }
 
@@ -1235,6 +1253,7 @@ static void virtio_scsi_device_realize(DeviceState *dev, Error **errp)
     Error *err = NULL;
 
     QTAILQ_INIT(&s->tmf_bh_list);
+    qemu_mutex_init(&s->tmf_bh_lock);
 
     virtio_scsi_common_realize(dev,
                                virtio_scsi_handle_ctrl,
@@ -1277,6 +1296,7 @@ static void virtio_scsi_device_unrealize(DeviceState *dev)
 
     qbus_set_hotplug_handler(BUS(&s->bus), NULL);
     virtio_scsi_common_unrealize(dev);
+    qemu_mutex_destroy(&s->tmf_bh_lock);
 }
 
 static Property virtio_scsi_properties[] = {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648185.1012297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa26-0003Na-IG; Tue, 05 Dec 2023 18:20:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648185.1012297; Tue, 05 Dec 2023 18:20:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa26-0003MG-DB; Tue, 05 Dec 2023 18:20:34 +0000
Received: by outflank-mailman (input) for mailman id 648185;
 Tue, 05 Dec 2023 18:20:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa25-0002wG-FD
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:33 +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 f8cd0d77-939a-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 19:20:31 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-624-nxpk8rGSNfC8bigtBsmm5g-1; Tue,
 05 Dec 2023 13:20:25 -0500
Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com
 [10.11.54.8])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id EFE3529ABA09;
 Tue,  5 Dec 2023 18:20:22 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 3AB3CC15968;
 Tue,  5 Dec 2023 18:20: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: f8cd0d77-939a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800430;
	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=8L/sqNOye5u7RuNbcak0BJzo7ABJgGjW0OxZLTOj6y8=;
	b=bC9o89MvyIQXd7luX1WPop4JIAjQwlCK5qbuihP6ckdrjAyW5QBj1rrlZux4B6vOuAwaZw
	S9SF4dLEP/uYjiGIEYlV7EpFbP/QpyLbXSnJK1BevzjIBoEUpTGEmEIfSNwRc8pVbOKOj4
	CBM+KzVca8Sw9TEHEMHVou8lkfNm2/0=
X-MC-Unique: nxpk8rGSNfC8bigtBsmm5g-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 03/14] tests: remove aio_context_acquire() tests
Date: Tue,  5 Dec 2023 13:20:00 -0500
Message-ID: <20231205182011.1976568-4-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8

The aio_context_acquire() API is being removed. Drop the test case that
calls the API.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/unit/test-aio.c | 67 +------------------------------------------
 1 file changed, 1 insertion(+), 66 deletions(-)

diff --git a/tests/unit/test-aio.c b/tests/unit/test-aio.c
index 337b6e4ea7..e77d86be87 100644
--- a/tests/unit/test-aio.c
+++ b/tests/unit/test-aio.c
@@ -100,76 +100,12 @@ static void event_ready_cb(EventNotifier *e)
 
 /* Tests using aio_*.  */
 
-typedef struct {
-    QemuMutex start_lock;
-    EventNotifier notifier;
-    bool thread_acquired;
-} AcquireTestData;
-
-static void *test_acquire_thread(void *opaque)
-{
-    AcquireTestData *data = opaque;
-
-    /* Wait for other thread to let us start */
-    qemu_mutex_lock(&data->start_lock);
-    qemu_mutex_unlock(&data->start_lock);
-
-    /* event_notifier_set might be called either before or after
-     * the main thread's call to poll().  The test case's outcome
-     * should be the same in either case.
-     */
-    event_notifier_set(&data->notifier);
-    aio_context_acquire(ctx);
-    aio_context_release(ctx);
-
-    data->thread_acquired = true; /* success, we got here */
-
-    return NULL;
-}
-
 static void set_event_notifier(AioContext *nctx, EventNotifier *notifier,
                                EventNotifierHandler *handler)
 {
     aio_set_event_notifier(nctx, notifier, handler, NULL, NULL);
 }
 
-static void dummy_notifier_read(EventNotifier *n)
-{
-    event_notifier_test_and_clear(n);
-}
-
-static void test_acquire(void)
-{
-    QemuThread thread;
-    AcquireTestData data;
-
-    /* Dummy event notifier ensures aio_poll() will block */
-    event_notifier_init(&data.notifier, false);
-    set_event_notifier(ctx, &data.notifier, dummy_notifier_read);
-    g_assert(!aio_poll(ctx, false)); /* consume aio_notify() */
-
-    qemu_mutex_init(&data.start_lock);
-    qemu_mutex_lock(&data.start_lock);
-    data.thread_acquired = false;
-
-    qemu_thread_create(&thread, "test_acquire_thread",
-                       test_acquire_thread,
-                       &data, QEMU_THREAD_JOINABLE);
-
-    /* Block in aio_poll(), let other thread kick us and acquire context */
-    aio_context_acquire(ctx);
-    qemu_mutex_unlock(&data.start_lock); /* let the thread run */
-    g_assert(aio_poll(ctx, true));
-    g_assert(!data.thread_acquired);
-    aio_context_release(ctx);
-
-    qemu_thread_join(&thread);
-    set_event_notifier(ctx, &data.notifier, NULL);
-    event_notifier_cleanup(&data.notifier);
-
-    g_assert(data.thread_acquired);
-}
-
 static void test_bh_schedule(void)
 {
     BHTestData data = { .n = 0 };
@@ -879,7 +815,7 @@ static void test_worker_thread_co_enter(void)
     qemu_thread_get_self(&this_thread);
     co = qemu_coroutine_create(co_check_current_thread, &this_thread);
 
-    qemu_thread_create(&worker_thread, "test_acquire_thread",
+    qemu_thread_create(&worker_thread, "test_aio_co_enter",
                        test_aio_co_enter,
                        co, QEMU_THREAD_JOINABLE);
 
@@ -899,7 +835,6 @@ int main(int argc, char **argv)
     while (g_main_context_iteration(NULL, false));
 
     g_test_init(&argc, &argv, NULL);
-    g_test_add_func("/aio/acquire",                 test_acquire);
     g_test_add_func("/aio/bh/schedule",             test_bh_schedule);
     g_test_add_func("/aio/bh/schedule10",           test_bh_schedule10);
     g_test_add_func("/aio/bh/cancel",               test_bh_cancel);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648186.1012304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa26-0003Ts-W2; Tue, 05 Dec 2023 18:20:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648186.1012304; Tue, 05 Dec 2023 18:20:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa26-0003SQ-O4; Tue, 05 Dec 2023 18:20:34 +0000
Received: by outflank-mailman (input) for mailman id 648186;
 Tue, 05 Dec 2023 18:20:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa25-0002fT-Ls
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:33 +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 f9c4140d-939a-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 19:20:33 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-551--Te_eBzINpij5dm8ZX6ilA-1; Tue,
 05 Dec 2023 13:20:28 -0500
Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com
 [10.11.54.1])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id CCAF2386A0AF;
 Tue,  5 Dec 2023 18:20:26 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id AFE9A3C25;
 Tue,  5 Dec 2023 18:20: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: f9c4140d-939a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800431;
	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=2xkZi3XPrXCgy6FPT4RsS2T7UTaP09qNkYfhhg0EmAc=;
	b=Ku+Yxukh1G++AZSyP02JQQxBVn8GBn/4scck2VsAmUe2U9uSZqmeY6obnyyaOXYYfVRsKk
	du6+uuBJxnixlsSOeB1Wp+jjwrlIi9xJesxliFZg/gA+FqLHLwObG01yZ9ZPnMECcX87Fm
	KZbM2fbp0pBqIngxPPj2GFEYuWlCA08=
X-MC-Unique: -Te_eBzINpij5dm8ZX6ilA-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 04/14] aio: make aio_context_acquire()/aio_context_release() a no-op
Date: Tue,  5 Dec 2023 13:20:01 -0500
Message-ID: <20231205182011.1976568-5-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.1

aio_context_acquire()/aio_context_release() has been replaced by
fine-grained locking to protect state shared by multiple threads. The
AioContext lock still plays the role of balancing locking in
AIO_WAIT_WHILE() and many functions in QEMU either require that the
AioContext lock is held or not held for this reason. In other words, the
AioContext lock is purely there for consistency with itself and serves
no real purpose anymore.

Stop actually acquiring/releasing the lock in
aio_context_acquire()/aio_context_release() so that subsequent patches
can remove callers across the codebase incrementally.

I have performed "make check" and qemu-iotests stress tests across
x86-64, ppc64le, and aarch64 to confirm that there are no failures as a
result of eliminating the lock.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Acked-by: Kevin Wolf <kwolf@redhat.com>
---
 util/async.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/util/async.c b/util/async.c
index 8f90ddc304..04ee83d220 100644
--- a/util/async.c
+++ b/util/async.c
@@ -725,12 +725,12 @@ void aio_context_unref(AioContext *ctx)
 
 void aio_context_acquire(AioContext *ctx)
 {
-    qemu_rec_mutex_lock(&ctx->lock);
+    /* TODO remove this function */
 }
 
 void aio_context_release(AioContext *ctx)
 {
-    qemu_rec_mutex_unlock(&ctx->lock);
+    /* TODO remove this function */
 }
 
 QEMU_DEFINE_STATIC_CO_TLS(AioContext *, my_aiocontext)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648187.1012320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2E-0004DP-7t; Tue, 05 Dec 2023 18:20:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648187.1012320; Tue, 05 Dec 2023 18:20:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2E-0004D8-4H; Tue, 05 Dec 2023 18:20:42 +0000
Received: by outflank-mailman (input) for mailman id 648187;
 Tue, 05 Dec 2023 18:20: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2C-0002fT-1s
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:40 +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 fcff71f5-939a-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 19:20:38 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-621-3t8RjCJkMrO520wzfyhiUw-1; Tue, 05 Dec 2023 13:20:30 -0500
Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com
 [10.11.54.7])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0E76485A59A;
 Tue,  5 Dec 2023 18:20:30 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 9070F1C060AF;
 Tue,  5 Dec 2023 18:20: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: fcff71f5-939a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800437;
	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=KSOsE0toGbQZwizSCs5XmoIfQBJx0yD5NLfMU2oeOow=;
	b=Rj0w8tM20pwOGpe2UnROK3UirMzh1O74dNJmDYtbnUr46vW4uHMfQEfB2SXVAFhS46injD
	pYgn5dm5ZjeQ5Uw2JQwMQXj3NEg2CTDbdR3C4Zd5tdhQAq3KtczBnNyLQX+XwB/WmpI74Y
	Vyyk1UY6Af1/HwA88YA8X8Em1T/fWsY=
X-MC-Unique: 3t8RjCJkMrO520wzfyhiUw-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 05/14] graph-lock: remove AioContext locking
Date: Tue,  5 Dec 2023 13:20:02 -0500
Message-ID: <20231205182011.1976568-6-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7

Stop acquiring/releasing the AioContext lock in
bdrv_graph_wrlock()/bdrv_graph_unlock() since the lock no longer has any
effect.

The distinction between bdrv_graph_wrunlock() and
bdrv_graph_wrunlock_ctx() becomes meaningless and they can be collapsed
into one function.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
---
 include/block/graph-lock.h         | 21 ++-----------
 block.c                            | 50 +++++++++++++++---------------
 block/backup.c                     |  4 +--
 block/blklogwrites.c               |  8 ++---
 block/blkverify.c                  |  4 +--
 block/block-backend.c              | 11 +++----
 block/commit.c                     | 16 +++++-----
 block/graph-lock.c                 | 44 ++------------------------
 block/mirror.c                     | 22 ++++++-------
 block/qcow2.c                      |  4 +--
 block/quorum.c                     |  8 ++---
 block/replication.c                | 14 ++++-----
 block/snapshot.c                   |  4 +--
 block/stream.c                     | 12 +++----
 block/vmdk.c                       | 20 ++++++------
 blockdev.c                         |  8 ++---
 blockjob.c                         | 12 +++----
 tests/unit/test-bdrv-drain.c       | 40 ++++++++++++------------
 tests/unit/test-bdrv-graph-mod.c   | 20 ++++++------
 scripts/block-coroutine-wrapper.py |  4 +--
 20 files changed, 133 insertions(+), 193 deletions(-)

diff --git a/include/block/graph-lock.h b/include/block/graph-lock.h
index 22b5db1ed9..d7545e82d0 100644
--- a/include/block/graph-lock.h
+++ b/include/block/graph-lock.h
@@ -110,34 +110,17 @@ void unregister_aiocontext(AioContext *ctx);
  *
  * The wrlock can only be taken from the main loop, with BQL held, as only the
  * main loop is allowed to modify the graph.
- *
- * If @bs is non-NULL, its AioContext is temporarily released.
- *
- * This function polls. Callers must not hold the lock of any AioContext other
- * than the current one and the one of @bs.
  */
 void no_coroutine_fn TSA_ACQUIRE(graph_lock) TSA_NO_TSA
-bdrv_graph_wrlock(BlockDriverState *bs);
+bdrv_graph_wrlock(void);
 
 /*
  * bdrv_graph_wrunlock:
  * Write finished, reset global has_writer to 0 and restart
  * all readers that are waiting.
- *
- * If @bs is non-NULL, its AioContext is temporarily released.
  */
 void no_coroutine_fn TSA_RELEASE(graph_lock) TSA_NO_TSA
-bdrv_graph_wrunlock(BlockDriverState *bs);
-
-/*
- * bdrv_graph_wrunlock_ctx:
- * Write finished, reset global has_writer to 0 and restart
- * all readers that are waiting.
- *
- * If @ctx is non-NULL, its lock is temporarily released.
- */
-void no_coroutine_fn TSA_RELEASE(graph_lock) TSA_NO_TSA
-bdrv_graph_wrunlock_ctx(AioContext *ctx);
+bdrv_graph_wrunlock(void);
 
 /*
  * bdrv_graph_co_rdlock:
diff --git a/block.c b/block.c
index bfb0861ec6..25e1ebc606 100644
--- a/block.c
+++ b/block.c
@@ -1708,12 +1708,12 @@ bdrv_open_driver(BlockDriverState *bs, BlockDriver *drv, const char *node_name,
 open_failed:
     bs->drv = NULL;
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     if (bs->file != NULL) {
         bdrv_unref_child(bs, bs->file);
         assert(!bs->file);
     }
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     g_free(bs->opaque);
     bs->opaque = NULL;
@@ -3575,9 +3575,9 @@ int bdrv_set_backing_hd(BlockDriverState *bs, BlockDriverState *backing_hd,
 
     bdrv_ref(drain_bs);
     bdrv_drained_begin(drain_bs);
-    bdrv_graph_wrlock(backing_hd);
+    bdrv_graph_wrlock();
     ret = bdrv_set_backing_hd_drained(bs, backing_hd, errp);
-    bdrv_graph_wrunlock(backing_hd);
+    bdrv_graph_wrunlock();
     bdrv_drained_end(drain_bs);
     bdrv_unref(drain_bs);
 
@@ -3790,13 +3790,13 @@ BdrvChild *bdrv_open_child(const char *filename,
         return NULL;
     }
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     ctx = bdrv_get_aio_context(bs);
     aio_context_acquire(ctx);
     child = bdrv_attach_child(parent, bs, bdref_key, child_class, child_role,
                               errp);
     aio_context_release(ctx);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     return child;
 }
@@ -4650,9 +4650,9 @@ int bdrv_reopen_multiple(BlockReopenQueue *bs_queue, Error **errp)
         aio_context_release(ctx);
     }
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     tran_commit(tran);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     QTAILQ_FOREACH_REVERSE(bs_entry, bs_queue, entry) {
         BlockDriverState *bs = bs_entry->state.bs;
@@ -4669,9 +4669,9 @@ int bdrv_reopen_multiple(BlockReopenQueue *bs_queue, Error **errp)
     goto cleanup;
 
 abort:
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     tran_abort(tran);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     QTAILQ_FOREACH_SAFE(bs_entry, bs_queue, entry, next) {
         if (bs_entry->prepared) {
@@ -4852,12 +4852,12 @@ bdrv_reopen_parse_file_or_backing(BDRVReopenState *reopen_state,
     }
 
     bdrv_graph_rdunlock_main_loop();
-    bdrv_graph_wrlock(new_child_bs);
+    bdrv_graph_wrlock();
 
     ret = bdrv_set_file_or_backing_noperm(bs, new_child_bs, is_backing,
                                           tran, errp);
 
-    bdrv_graph_wrunlock_ctx(ctx);
+    bdrv_graph_wrunlock();
 
     if (old_ctx != ctx) {
         aio_context_release(ctx);
@@ -5209,14 +5209,14 @@ static void bdrv_close(BlockDriverState *bs)
         bs->drv = NULL;
     }
 
-    bdrv_graph_wrlock(bs);
+    bdrv_graph_wrlock();
     QLIST_FOREACH_SAFE(child, &bs->children, next, next) {
         bdrv_unref_child(bs, child);
     }
 
     assert(!bs->backing);
     assert(!bs->file);
-    bdrv_graph_wrunlock(bs);
+    bdrv_graph_wrunlock();
 
     g_free(bs->opaque);
     bs->opaque = NULL;
@@ -5509,9 +5509,9 @@ int bdrv_drop_filter(BlockDriverState *bs, Error **errp)
     bdrv_graph_rdunlock_main_loop();
 
     bdrv_drained_begin(child_bs);
-    bdrv_graph_wrlock(bs);
+    bdrv_graph_wrlock();
     ret = bdrv_replace_node_common(bs, child_bs, true, true, errp);
-    bdrv_graph_wrunlock(bs);
+    bdrv_graph_wrunlock();
     bdrv_drained_end(child_bs);
 
     return ret;
@@ -5561,7 +5561,7 @@ int bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top,
     aio_context_acquire(old_context);
     new_context = NULL;
 
-    bdrv_graph_wrlock(bs_top);
+    bdrv_graph_wrlock();
 
     child = bdrv_attach_child_noperm(bs_new, bs_top, "backing",
                                      &child_of_bds, bdrv_backing_role(bs_new),
@@ -5593,7 +5593,7 @@ out:
     tran_finalize(tran, ret);
 
     bdrv_refresh_limits(bs_top, NULL, NULL);
-    bdrv_graph_wrunlock(bs_top);
+    bdrv_graph_wrunlock();
 
     bdrv_drained_end(bs_top);
     bdrv_drained_end(bs_new);
@@ -5620,7 +5620,7 @@ int bdrv_replace_child_bs(BdrvChild *child, BlockDriverState *new_bs,
     bdrv_ref(old_bs);
     bdrv_drained_begin(old_bs);
     bdrv_drained_begin(new_bs);
-    bdrv_graph_wrlock(new_bs);
+    bdrv_graph_wrlock();
 
     bdrv_replace_child_tran(child, new_bs, tran);
 
@@ -5631,7 +5631,7 @@ int bdrv_replace_child_bs(BdrvChild *child, BlockDriverState *new_bs,
 
     tran_finalize(tran, ret);
 
-    bdrv_graph_wrunlock(new_bs);
+    bdrv_graph_wrunlock();
     bdrv_drained_end(old_bs);
     bdrv_drained_end(new_bs);
     bdrv_unref(old_bs);
@@ -5718,9 +5718,9 @@ BlockDriverState *bdrv_insert_node(BlockDriverState *bs, QDict *options,
     bdrv_ref(bs);
     bdrv_drained_begin(bs);
     bdrv_drained_begin(new_node_bs);
-    bdrv_graph_wrlock(new_node_bs);
+    bdrv_graph_wrlock();
     ret = bdrv_replace_node(bs, new_node_bs, errp);
-    bdrv_graph_wrunlock(new_node_bs);
+    bdrv_graph_wrunlock();
     bdrv_drained_end(new_node_bs);
     bdrv_drained_end(bs);
     bdrv_unref(bs);
@@ -5975,7 +5975,7 @@ int bdrv_drop_intermediate(BlockDriverState *top, BlockDriverState *base,
 
     bdrv_ref(top);
     bdrv_drained_begin(base);
-    bdrv_graph_wrlock(base);
+    bdrv_graph_wrlock();
 
     if (!top->drv || !base->drv) {
         goto exit_wrlock;
@@ -6015,7 +6015,7 @@ int bdrv_drop_intermediate(BlockDriverState *top, BlockDriverState *base,
      * That's a FIXME.
      */
     bdrv_replace_node_common(top, base, false, false, &local_err);
-    bdrv_graph_wrunlock(base);
+    bdrv_graph_wrunlock();
 
     if (local_err) {
         error_report_err(local_err);
@@ -6052,7 +6052,7 @@ int bdrv_drop_intermediate(BlockDriverState *top, BlockDriverState *base,
     goto exit;
 
 exit_wrlock:
-    bdrv_graph_wrunlock(base);
+    bdrv_graph_wrunlock();
 exit:
     bdrv_drained_end(base);
     bdrv_unref(top);
diff --git a/block/backup.c b/block/backup.c
index 8aae5836d7..ec29d6b810 100644
--- a/block/backup.c
+++ b/block/backup.c
@@ -496,10 +496,10 @@ BlockJob *backup_job_create(const char *job_id, BlockDriverState *bs,
     block_copy_set_speed(bcs, speed);
 
     /* Required permissions are taken by copy-before-write filter target */
-    bdrv_graph_wrlock(target);
+    bdrv_graph_wrlock();
     block_job_add_bdrv(&job->common, "target", target, 0, BLK_PERM_ALL,
                        &error_abort);
-    bdrv_graph_wrunlock(target);
+    bdrv_graph_wrunlock();
 
     return &job->common;
 
diff --git a/block/blklogwrites.c b/block/blklogwrites.c
index 3678f6cf42..7207b2e757 100644
--- a/block/blklogwrites.c
+++ b/block/blklogwrites.c
@@ -251,9 +251,9 @@ static int blk_log_writes_open(BlockDriverState *bs, QDict *options, int flags,
     ret = 0;
 fail_log:
     if (ret < 0) {
-        bdrv_graph_wrlock(NULL);
+        bdrv_graph_wrlock();
         bdrv_unref_child(bs, s->log_file);
-        bdrv_graph_wrunlock(NULL);
+        bdrv_graph_wrunlock();
         s->log_file = NULL;
     }
 fail:
@@ -265,10 +265,10 @@ static void blk_log_writes_close(BlockDriverState *bs)
 {
     BDRVBlkLogWritesState *s = bs->opaque;
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_unref_child(bs, s->log_file);
     s->log_file = NULL;
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 }
 
 static int64_t coroutine_fn GRAPH_RDLOCK
diff --git a/block/blkverify.c b/block/blkverify.c
index 9b17c46644..ec45d8335e 100644
--- a/block/blkverify.c
+++ b/block/blkverify.c
@@ -151,10 +151,10 @@ static void blkverify_close(BlockDriverState *bs)
 {
     BDRVBlkverifyState *s = bs->opaque;
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_unref_child(bs, s->test_file);
     s->test_file = NULL;
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 }
 
 static int64_t coroutine_fn GRAPH_RDLOCK
diff --git a/block/block-backend.c b/block/block-backend.c
index ec21148806..abac4e0235 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -889,7 +889,6 @@ void blk_remove_bs(BlockBackend *blk)
 {
     ThrottleGroupMember *tgm = &blk->public.throttle_group_member;
     BdrvChild *root;
-    AioContext *ctx;
 
     GLOBAL_STATE_CODE();
 
@@ -919,10 +918,9 @@ void blk_remove_bs(BlockBackend *blk)
     root = blk->root;
     blk->root = NULL;
 
-    ctx = bdrv_get_aio_context(root->bs);
-    bdrv_graph_wrlock(root->bs);
+    bdrv_graph_wrlock();
     bdrv_root_unref_child(root);
-    bdrv_graph_wrunlock_ctx(ctx);
+    bdrv_graph_wrunlock();
 }
 
 /*
@@ -933,16 +931,15 @@ void blk_remove_bs(BlockBackend *blk)
 int blk_insert_bs(BlockBackend *blk, BlockDriverState *bs, Error **errp)
 {
     ThrottleGroupMember *tgm = &blk->public.throttle_group_member;
-    AioContext *ctx = bdrv_get_aio_context(bs);
 
     GLOBAL_STATE_CODE();
     bdrv_ref(bs);
-    bdrv_graph_wrlock(bs);
+    bdrv_graph_wrlock();
     blk->root = bdrv_root_attach_child(bs, "root", &child_root,
                                        BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY,
                                        blk->perm, blk->shared_perm,
                                        blk, errp);
-    bdrv_graph_wrunlock_ctx(ctx);
+    bdrv_graph_wrunlock();
     if (blk->root == NULL) {
         return -EPERM;
     }
diff --git a/block/commit.c b/block/commit.c
index 69cc75be0c..1dd7a65ffb 100644
--- a/block/commit.c
+++ b/block/commit.c
@@ -100,9 +100,9 @@ static void commit_abort(Job *job)
     bdrv_graph_rdunlock_main_loop();
 
     bdrv_drained_begin(commit_top_backing_bs);
-    bdrv_graph_wrlock(commit_top_backing_bs);
+    bdrv_graph_wrlock();
     bdrv_replace_node(s->commit_top_bs, commit_top_backing_bs, &error_abort);
-    bdrv_graph_wrunlock(commit_top_backing_bs);
+    bdrv_graph_wrunlock();
     bdrv_drained_end(commit_top_backing_bs);
 
     bdrv_unref(s->commit_top_bs);
@@ -339,7 +339,7 @@ void commit_start(const char *job_id, BlockDriverState *bs,
      * this is the responsibility of the interface (i.e. whoever calls
      * commit_start()).
      */
-    bdrv_graph_wrlock(top);
+    bdrv_graph_wrlock();
     s->base_overlay = bdrv_find_overlay(top, base);
     assert(s->base_overlay);
 
@@ -370,19 +370,19 @@ void commit_start(const char *job_id, BlockDriverState *bs,
         ret = block_job_add_bdrv(&s->common, "intermediate node", iter, 0,
                                  iter_shared_perms, errp);
         if (ret < 0) {
-            bdrv_graph_wrunlock(top);
+            bdrv_graph_wrunlock();
             goto fail;
         }
     }
 
     if (bdrv_freeze_backing_chain(commit_top_bs, base, errp) < 0) {
-        bdrv_graph_wrunlock(top);
+        bdrv_graph_wrunlock();
         goto fail;
     }
     s->chain_frozen = true;
 
     ret = block_job_add_bdrv(&s->common, "base", base, 0, BLK_PERM_ALL, errp);
-    bdrv_graph_wrunlock(top);
+    bdrv_graph_wrunlock();
 
     if (ret < 0) {
         goto fail;
@@ -434,9 +434,9 @@ fail:
      * otherwise this would fail because of lack of permissions. */
     if (commit_top_bs) {
         bdrv_drained_begin(top);
-        bdrv_graph_wrlock(top);
+        bdrv_graph_wrlock();
         bdrv_replace_node(commit_top_bs, top, &error_abort);
-        bdrv_graph_wrunlock(top);
+        bdrv_graph_wrunlock();
         bdrv_drained_end(top);
     }
 }
diff --git a/block/graph-lock.c b/block/graph-lock.c
index 079e878d9b..c81162b147 100644
--- a/block/graph-lock.c
+++ b/block/graph-lock.c
@@ -106,27 +106,12 @@ static uint32_t reader_count(void)
     return rd;
 }
 
-void no_coroutine_fn bdrv_graph_wrlock(BlockDriverState *bs)
+void no_coroutine_fn bdrv_graph_wrlock(void)
 {
-    AioContext *ctx = NULL;
-
     GLOBAL_STATE_CODE();
     assert(!qatomic_read(&has_writer));
     assert(!qemu_in_coroutine());
 
-    /*
-     * Release only non-mainloop AioContext. The mainloop often relies on the
-     * BQL and doesn't lock the main AioContext before doing things.
-     */
-    if (bs) {
-        ctx = bdrv_get_aio_context(bs);
-        if (ctx != qemu_get_aio_context()) {
-            aio_context_release(ctx);
-        } else {
-            ctx = NULL;
-        }
-    }
-
     /* Make sure that constantly arriving new I/O doesn't cause starvation */
     bdrv_drain_all_begin_nopoll();
 
@@ -155,27 +140,13 @@ void no_coroutine_fn bdrv_graph_wrlock(BlockDriverState *bs)
     } while (reader_count() >= 1);
 
     bdrv_drain_all_end();
-
-    if (ctx) {
-        aio_context_acquire(bdrv_get_aio_context(bs));
-    }
 }
 
-void no_coroutine_fn bdrv_graph_wrunlock_ctx(AioContext *ctx)
+void no_coroutine_fn bdrv_graph_wrunlock(void)
 {
     GLOBAL_STATE_CODE();
     assert(qatomic_read(&has_writer));
 
-    /*
-     * Release only non-mainloop AioContext. The mainloop often relies on the
-     * BQL and doesn't lock the main AioContext before doing things.
-     */
-    if (ctx && ctx != qemu_get_aio_context()) {
-        aio_context_release(ctx);
-    } else {
-        ctx = NULL;
-    }
-
     WITH_QEMU_LOCK_GUARD(&aio_context_list_lock) {
         /*
          * No need for memory barriers, this works in pair with
@@ -197,17 +168,6 @@ void no_coroutine_fn bdrv_graph_wrunlock_ctx(AioContext *ctx)
      * progress.
      */
     aio_bh_poll(qemu_get_aio_context());
-
-    if (ctx) {
-        aio_context_acquire(ctx);
-    }
-}
-
-void no_coroutine_fn bdrv_graph_wrunlock(BlockDriverState *bs)
-{
-    AioContext *ctx = bs ? bdrv_get_aio_context(bs) : NULL;
-
-    bdrv_graph_wrunlock_ctx(ctx);
 }
 
 void coroutine_fn bdrv_graph_co_rdlock(void)
diff --git a/block/mirror.c b/block/mirror.c
index cd9d3ad4a8..51f9e2f17c 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -764,7 +764,7 @@ static int mirror_exit_common(Job *job)
          * check for an op blocker on @to_replace, and we have our own
          * there.
          */
-        bdrv_graph_wrlock(target_bs);
+        bdrv_graph_wrlock();
         if (bdrv_recurse_can_replace(src, to_replace)) {
             bdrv_replace_node(to_replace, target_bs, &local_err);
         } else {
@@ -773,7 +773,7 @@ static int mirror_exit_common(Job *job)
                        "would not lead to an abrupt change of visible data",
                        to_replace->node_name, target_bs->node_name);
         }
-        bdrv_graph_wrunlock(target_bs);
+        bdrv_graph_wrunlock();
         bdrv_drained_end(to_replace);
         if (local_err) {
             error_report_err(local_err);
@@ -796,9 +796,9 @@ static int mirror_exit_common(Job *job)
      * valid.
      */
     block_job_remove_all_bdrv(bjob);
-    bdrv_graph_wrlock(mirror_top_bs);
+    bdrv_graph_wrlock();
     bdrv_replace_node(mirror_top_bs, mirror_top_bs->backing->bs, &error_abort);
-    bdrv_graph_wrunlock(mirror_top_bs);
+    bdrv_graph_wrunlock();
 
     bdrv_drained_end(target_bs);
     bdrv_unref(target_bs);
@@ -1914,13 +1914,13 @@ static BlockJob *mirror_start_job(
      */
     bdrv_disable_dirty_bitmap(s->dirty_bitmap);
 
-    bdrv_graph_wrlock(bs);
+    bdrv_graph_wrlock();
     ret = block_job_add_bdrv(&s->common, "source", bs, 0,
                              BLK_PERM_WRITE_UNCHANGED | BLK_PERM_WRITE |
                              BLK_PERM_CONSISTENT_READ,
                              errp);
     if (ret < 0) {
-        bdrv_graph_wrunlock(bs);
+        bdrv_graph_wrunlock();
         goto fail;
     }
 
@@ -1965,17 +1965,17 @@ static BlockJob *mirror_start_job(
             ret = block_job_add_bdrv(&s->common, "intermediate node", iter, 0,
                                      iter_shared_perms, errp);
             if (ret < 0) {
-                bdrv_graph_wrunlock(bs);
+                bdrv_graph_wrunlock();
                 goto fail;
             }
         }
 
         if (bdrv_freeze_backing_chain(mirror_top_bs, target, errp) < 0) {
-            bdrv_graph_wrunlock(bs);
+            bdrv_graph_wrunlock();
             goto fail;
         }
     }
-    bdrv_graph_wrunlock(bs);
+    bdrv_graph_wrunlock();
 
     QTAILQ_INIT(&s->ops_in_flight);
 
@@ -2001,12 +2001,12 @@ fail:
 
     bs_opaque->stop = true;
     bdrv_drained_begin(bs);
-    bdrv_graph_wrlock(bs);
+    bdrv_graph_wrlock();
     assert(mirror_top_bs->backing->bs == bs);
     bdrv_child_refresh_perms(mirror_top_bs, mirror_top_bs->backing,
                              &error_abort);
     bdrv_replace_node(mirror_top_bs, bs, &error_abort);
-    bdrv_graph_wrunlock(bs);
+    bdrv_graph_wrunlock();
     bdrv_drained_end(bs);
 
     bdrv_unref(mirror_top_bs);
diff --git a/block/qcow2.c b/block/qcow2.c
index 13e032bd5e..9bee66fff5 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -2807,9 +2807,9 @@ qcow2_do_close(BlockDriverState *bs, bool close_data_file)
     if (close_data_file && has_data_file(bs)) {
         GLOBAL_STATE_CODE();
         bdrv_graph_rdunlock_main_loop();
-        bdrv_graph_wrlock(NULL);
+        bdrv_graph_wrlock();
         bdrv_unref_child(bs, s->data_file);
-        bdrv_graph_wrunlock(NULL);
+        bdrv_graph_wrunlock();
         s->data_file = NULL;
         bdrv_graph_rdlock_main_loop();
     }
diff --git a/block/quorum.c b/block/quorum.c
index 505b8b3e18..db8fe891c4 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -1037,14 +1037,14 @@ static int quorum_open(BlockDriverState *bs, QDict *options, int flags,
 
 close_exit:
     /* cleanup on error */
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     for (i = 0; i < s->num_children; i++) {
         if (!opened[i]) {
             continue;
         }
         bdrv_unref_child(bs, s->children[i]);
     }
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
     g_free(s->children);
     g_free(opened);
 exit:
@@ -1057,11 +1057,11 @@ static void quorum_close(BlockDriverState *bs)
     BDRVQuorumState *s = bs->opaque;
     int i;
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     for (i = 0; i < s->num_children; i++) {
         bdrv_unref_child(bs, s->children[i]);
     }
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     g_free(s->children);
 }
diff --git a/block/replication.c b/block/replication.c
index 5ded5f1ca9..424b537ff7 100644
--- a/block/replication.c
+++ b/block/replication.c
@@ -560,7 +560,7 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
             return;
         }
 
-        bdrv_graph_wrlock(bs);
+        bdrv_graph_wrlock();
 
         bdrv_ref(hidden_disk->bs);
         s->hidden_disk = bdrv_attach_child(bs, hidden_disk->bs, "hidden disk",
@@ -568,7 +568,7 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
                                            &local_err);
         if (local_err) {
             error_propagate(errp, local_err);
-            bdrv_graph_wrunlock(bs);
+            bdrv_graph_wrunlock();
             aio_context_release(aio_context);
             return;
         }
@@ -579,7 +579,7 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
                                               BDRV_CHILD_DATA, &local_err);
         if (local_err) {
             error_propagate(errp, local_err);
-            bdrv_graph_wrunlock(bs);
+            bdrv_graph_wrunlock();
             aio_context_release(aio_context);
             return;
         }
@@ -592,7 +592,7 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
         if (!top_bs || !bdrv_is_root_node(top_bs) ||
             !check_top_bs(top_bs, bs)) {
             error_setg(errp, "No top_bs or it is invalid");
-            bdrv_graph_wrunlock(bs);
+            bdrv_graph_wrunlock();
             reopen_backing_file(bs, false, NULL);
             aio_context_release(aio_context);
             return;
@@ -600,7 +600,7 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
         bdrv_op_block_all(top_bs, s->blocker);
         bdrv_op_unblock(top_bs, BLOCK_OP_TYPE_DATAPLANE, s->blocker);
 
-        bdrv_graph_wrunlock(bs);
+        bdrv_graph_wrunlock();
 
         s->backup_job = backup_job_create(
                                 NULL, s->secondary_disk->bs, s->hidden_disk->bs,
@@ -691,12 +691,12 @@ static void replication_done(void *opaque, int ret)
     if (ret == 0) {
         s->stage = BLOCK_REPLICATION_DONE;
 
-        bdrv_graph_wrlock(NULL);
+        bdrv_graph_wrlock();
         bdrv_unref_child(bs, s->secondary_disk);
         s->secondary_disk = NULL;
         bdrv_unref_child(bs, s->hidden_disk);
         s->hidden_disk = NULL;
-        bdrv_graph_wrunlock(NULL);
+        bdrv_graph_wrunlock();
 
         s->error = 0;
     } else {
diff --git a/block/snapshot.c b/block/snapshot.c
index ec8cf4810b..e486d3e205 100644
--- a/block/snapshot.c
+++ b/block/snapshot.c
@@ -290,9 +290,9 @@ int bdrv_snapshot_goto(BlockDriverState *bs,
         }
 
         /* .bdrv_open() will re-attach it */
-        bdrv_graph_wrlock(NULL);
+        bdrv_graph_wrlock();
         bdrv_unref_child(bs, fallback);
-        bdrv_graph_wrunlock(NULL);
+        bdrv_graph_wrunlock();
 
         ret = bdrv_snapshot_goto(fallback_bs, snapshot_id, errp);
         open_ret = drv->bdrv_open(bs, options, bs->open_flags, &local_err);
diff --git a/block/stream.c b/block/stream.c
index 01fe7c0f16..048c2d282f 100644
--- a/block/stream.c
+++ b/block/stream.c
@@ -99,9 +99,9 @@ static int stream_prepare(Job *job)
             }
         }
 
-        bdrv_graph_wrlock(s->target_bs);
+        bdrv_graph_wrlock();
         bdrv_set_backing_hd_drained(unfiltered_bs, base, &local_err);
-        bdrv_graph_wrunlock(s->target_bs);
+        bdrv_graph_wrunlock();
 
         /*
          * This call will do I/O, so the graph can change again from here on.
@@ -366,10 +366,10 @@ void stream_start(const char *job_id, BlockDriverState *bs,
      * already have our own plans. Also don't allow resize as the image size is
      * queried only at the job start and then cached.
      */
-    bdrv_graph_wrlock(bs);
+    bdrv_graph_wrlock();
     if (block_job_add_bdrv(&s->common, "active node", bs, 0,
                            basic_flags | BLK_PERM_WRITE, errp)) {
-        bdrv_graph_wrunlock(bs);
+        bdrv_graph_wrunlock();
         goto fail;
     }
 
@@ -389,11 +389,11 @@ void stream_start(const char *job_id, BlockDriverState *bs,
         ret = block_job_add_bdrv(&s->common, "intermediate node", iter, 0,
                                  basic_flags, errp);
         if (ret < 0) {
-            bdrv_graph_wrunlock(bs);
+            bdrv_graph_wrunlock();
             goto fail;
         }
     }
-    bdrv_graph_wrunlock(bs);
+    bdrv_graph_wrunlock();
 
     s->base_overlay = base_overlay;
     s->above_base = above_base;
diff --git a/block/vmdk.c b/block/vmdk.c
index d6971c7067..bf78e12383 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -272,7 +272,7 @@ static void vmdk_free_extents(BlockDriverState *bs)
     BDRVVmdkState *s = bs->opaque;
     VmdkExtent *e;
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     for (i = 0; i < s->num_extents; i++) {
         e = &s->extents[i];
         g_free(e->l1_table);
@@ -283,7 +283,7 @@ static void vmdk_free_extents(BlockDriverState *bs)
             bdrv_unref_child(bs, e->file);
         }
     }
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     g_free(s->extents);
 }
@@ -1247,9 +1247,9 @@ vmdk_parse_extents(const char *desc, BlockDriverState *bs, QDict *options,
                             0, 0, 0, 0, 0, &extent, errp);
             if (ret < 0) {
                 bdrv_graph_rdunlock_main_loop();
-                bdrv_graph_wrlock(NULL);
+                bdrv_graph_wrlock();
                 bdrv_unref_child(bs, extent_file);
-                bdrv_graph_wrunlock(NULL);
+                bdrv_graph_wrunlock();
                 bdrv_graph_rdlock_main_loop();
                 goto out;
             }
@@ -1266,9 +1266,9 @@ vmdk_parse_extents(const char *desc, BlockDriverState *bs, QDict *options,
             g_free(buf);
             if (ret) {
                 bdrv_graph_rdunlock_main_loop();
-                bdrv_graph_wrlock(NULL);
+                bdrv_graph_wrlock();
                 bdrv_unref_child(bs, extent_file);
-                bdrv_graph_wrunlock(NULL);
+                bdrv_graph_wrunlock();
                 bdrv_graph_rdlock_main_loop();
                 goto out;
             }
@@ -1277,9 +1277,9 @@ vmdk_parse_extents(const char *desc, BlockDriverState *bs, QDict *options,
             ret = vmdk_open_se_sparse(bs, extent_file, bs->open_flags, errp);
             if (ret) {
                 bdrv_graph_rdunlock_main_loop();
-                bdrv_graph_wrlock(NULL);
+                bdrv_graph_wrlock();
                 bdrv_unref_child(bs, extent_file);
-                bdrv_graph_wrunlock(NULL);
+                bdrv_graph_wrunlock();
                 bdrv_graph_rdlock_main_loop();
                 goto out;
             }
@@ -1287,9 +1287,9 @@ vmdk_parse_extents(const char *desc, BlockDriverState *bs, QDict *options,
         } else {
             error_setg(errp, "Unsupported extent type '%s'", type);
             bdrv_graph_rdunlock_main_loop();
-            bdrv_graph_wrlock(NULL);
+            bdrv_graph_wrlock();
             bdrv_unref_child(bs, extent_file);
-            bdrv_graph_wrunlock(NULL);
+            bdrv_graph_wrunlock();
             bdrv_graph_rdlock_main_loop();
             ret = -ENOTSUP;
             goto out;
diff --git a/blockdev.c b/blockdev.c
index 4c1177e8db..db9cc96510 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -1611,9 +1611,9 @@ static void external_snapshot_abort(void *opaque)
             }
 
             bdrv_drained_begin(state->new_bs);
-            bdrv_graph_wrlock(state->old_bs);
+            bdrv_graph_wrlock();
             bdrv_replace_node(state->new_bs, state->old_bs, &error_abort);
-            bdrv_graph_wrunlock(state->old_bs);
+            bdrv_graph_wrunlock();
             bdrv_drained_end(state->new_bs);
 
             bdrv_unref(state->old_bs); /* bdrv_replace_node() ref'ed old_bs */
@@ -3656,7 +3656,7 @@ void qmp_x_blockdev_change(const char *parent, const char *child,
     BlockDriverState *parent_bs, *new_bs = NULL;
     BdrvChild *p_child;
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
 
     parent_bs = bdrv_lookup_bs(parent, parent, errp);
     if (!parent_bs) {
@@ -3692,7 +3692,7 @@ void qmp_x_blockdev_change(const char *parent, const char *child,
     }
 
 out:
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 }
 
 BlockJobInfoList *qmp_query_block_jobs(Error **errp)
diff --git a/blockjob.c b/blockjob.c
index b7a29052b9..7310412313 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -199,7 +199,7 @@ void block_job_remove_all_bdrv(BlockJob *job)
      * to process an already freed BdrvChild.
      */
     aio_context_release(job->job.aio_context);
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     aio_context_acquire(job->job.aio_context);
     while (job->nodes) {
         GSList *l = job->nodes;
@@ -212,7 +212,7 @@ void block_job_remove_all_bdrv(BlockJob *job)
 
         g_slist_free_1(l);
     }
-    bdrv_graph_wrunlock_ctx(job->job.aio_context);
+    bdrv_graph_wrunlock();
 }
 
 bool block_job_has_bdrv(BlockJob *job, BlockDriverState *bs)
@@ -514,7 +514,7 @@ void *block_job_create(const char *job_id, const BlockJobDriver *driver,
     int ret;
     GLOBAL_STATE_CODE();
 
-    bdrv_graph_wrlock(bs);
+    bdrv_graph_wrlock();
 
     if (job_id == NULL && !(flags & JOB_INTERNAL)) {
         job_id = bdrv_get_device_name(bs);
@@ -523,7 +523,7 @@ void *block_job_create(const char *job_id, const BlockJobDriver *driver,
     job = job_create(job_id, &driver->job_driver, txn, bdrv_get_aio_context(bs),
                      flags, cb, opaque, errp);
     if (job == NULL) {
-        bdrv_graph_wrunlock(bs);
+        bdrv_graph_wrunlock();
         return NULL;
     }
 
@@ -563,11 +563,11 @@ void *block_job_create(const char *job_id, const BlockJobDriver *driver,
         goto fail;
     }
 
-    bdrv_graph_wrunlock(bs);
+    bdrv_graph_wrunlock();
     return job;
 
 fail:
-    bdrv_graph_wrunlock(bs);
+    bdrv_graph_wrunlock();
     job_early_fail(&job->job);
     return NULL;
 }
diff --git a/tests/unit/test-bdrv-drain.c b/tests/unit/test-bdrv-drain.c
index 704d1a3f36..d9754dfebc 100644
--- a/tests/unit/test-bdrv-drain.c
+++ b/tests/unit/test-bdrv-drain.c
@@ -807,9 +807,9 @@ static void test_blockjob_common_drain_node(enum drain_type drain_type,
     tjob->bs = src;
     job = &tjob->common;
 
-    bdrv_graph_wrlock(target);
+    bdrv_graph_wrlock();
     block_job_add_bdrv(job, "target", target, 0, BLK_PERM_ALL, &error_abort);
-    bdrv_graph_wrunlock(target);
+    bdrv_graph_wrunlock();
 
     switch (result) {
     case TEST_JOB_SUCCESS:
@@ -991,11 +991,11 @@ static void bdrv_test_top_close(BlockDriverState *bs)
 {
     BdrvChild *c, *next_c;
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     QLIST_FOREACH_SAFE(c, &bs->children, next, next_c) {
         bdrv_unref_child(bs, c);
     }
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 }
 
 static int coroutine_fn GRAPH_RDLOCK
@@ -1085,10 +1085,10 @@ static void do_test_delete_by_drain(bool detach_instead_of_delete,
 
     null_bs = bdrv_open("null-co://", NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
                         &error_abort);
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_attach_child(bs, null_bs, "null-child", &child_of_bds,
                       BDRV_CHILD_DATA, &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     /* This child will be the one to pass to requests through to, and
      * it will stall until a drain occurs */
@@ -1096,21 +1096,21 @@ static void do_test_delete_by_drain(bool detach_instead_of_delete,
                                     &error_abort);
     child_bs->total_sectors = 65536 >> BDRV_SECTOR_BITS;
     /* Takes our reference to child_bs */
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     tts->wait_child = bdrv_attach_child(bs, child_bs, "wait-child",
                                         &child_of_bds,
                                         BDRV_CHILD_DATA | BDRV_CHILD_PRIMARY,
                                         &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     /* This child is just there to be deleted
      * (for detach_instead_of_delete == true) */
     null_bs = bdrv_open("null-co://", NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
                         &error_abort);
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_attach_child(bs, null_bs, "null-child", &child_of_bds, BDRV_CHILD_DATA,
                       &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     blk = blk_new(qemu_get_aio_context(), BLK_PERM_ALL, BLK_PERM_ALL);
     blk_insert_bs(blk, bs, &error_abort);
@@ -1193,14 +1193,14 @@ static void no_coroutine_fn detach_indirect_bh(void *opaque)
 
     bdrv_dec_in_flight(data->child_b->bs);
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_unref_child(data->parent_b, data->child_b);
 
     bdrv_ref(data->c);
     data->child_c = bdrv_attach_child(data->parent_b, data->c, "PB-C",
                                       &child_of_bds, BDRV_CHILD_DATA,
                                       &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 }
 
 static void coroutine_mixed_fn detach_by_parent_aio_cb(void *opaque, int ret)
@@ -1298,7 +1298,7 @@ static void TSA_NO_TSA test_detach_indirect(bool by_parent_cb)
     /* Set child relationships */
     bdrv_ref(b);
     bdrv_ref(a);
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     child_b = bdrv_attach_child(parent_b, b, "PB-B", &child_of_bds,
                                 BDRV_CHILD_DATA, &error_abort);
     child_a = bdrv_attach_child(parent_b, a, "PB-A", &child_of_bds,
@@ -1308,7 +1308,7 @@ static void TSA_NO_TSA test_detach_indirect(bool by_parent_cb)
     bdrv_attach_child(parent_a, a, "PA-A",
                       by_parent_cb ? &child_of_bds : &detach_by_driver_cb_class,
                       BDRV_CHILD_DATA, &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     g_assert_cmpint(parent_a->refcnt, ==, 1);
     g_assert_cmpint(parent_b->refcnt, ==, 1);
@@ -1727,7 +1727,7 @@ static void test_drop_intermediate_poll(void)
      * Establish the chain last, so the chain links are the first
      * elements in the BDS.parents lists
      */
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     for (i = 0; i < 3; i++) {
         if (i) {
             /* Takes the reference to chain[i - 1] */
@@ -1735,7 +1735,7 @@ static void test_drop_intermediate_poll(void)
                               &chain_child_class, BDRV_CHILD_COW, &error_abort);
         }
     }
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     job = block_job_create("job", &test_simple_job_driver, NULL, job_node,
                            0, BLK_PERM_ALL, 0, 0, NULL, NULL, &error_abort);
@@ -1982,10 +1982,10 @@ static void do_test_replace_child_mid_drain(int old_drain_count,
     new_child_bs->total_sectors = 1;
 
     bdrv_ref(old_child_bs);
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_attach_child(parent_bs, old_child_bs, "child", &child_of_bds,
                       BDRV_CHILD_COW, &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
     parent_s->setup_completed = true;
 
     for (i = 0; i < old_drain_count; i++) {
@@ -2016,9 +2016,9 @@ static void do_test_replace_child_mid_drain(int old_drain_count,
     g_assert(parent_bs->quiesce_counter == old_drain_count);
     bdrv_drained_begin(old_child_bs);
     bdrv_drained_begin(new_child_bs);
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_replace_node(old_child_bs, new_child_bs, &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
     bdrv_drained_end(new_child_bs);
     bdrv_drained_end(old_child_bs);
     g_assert(parent_bs->quiesce_counter == new_drain_count);
diff --git a/tests/unit/test-bdrv-graph-mod.c b/tests/unit/test-bdrv-graph-mod.c
index 074adcbb93..8ee6ef38d8 100644
--- a/tests/unit/test-bdrv-graph-mod.c
+++ b/tests/unit/test-bdrv-graph-mod.c
@@ -137,10 +137,10 @@ static void test_update_perm_tree(void)
 
     blk_insert_bs(root, bs, &error_abort);
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_attach_child(filter, bs, "child", &child_of_bds,
                       BDRV_CHILD_DATA, &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     aio_context_acquire(qemu_get_aio_context());
     ret = bdrv_append(filter, bs, NULL);
@@ -206,11 +206,11 @@ static void test_should_update_child(void)
 
     bdrv_set_backing_hd(target, bs, &error_abort);
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     g_assert(target->backing->bs == bs);
     bdrv_attach_child(filter, target, "target", &child_of_bds,
                       BDRV_CHILD_DATA, &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
     aio_context_acquire(qemu_get_aio_context());
     bdrv_append(filter, bs, &error_abort);
     aio_context_release(qemu_get_aio_context());
@@ -248,7 +248,7 @@ static void test_parallel_exclusive_write(void)
     bdrv_ref(base);
     bdrv_ref(fl1);
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_attach_child(top, fl1, "backing", &child_of_bds,
                       BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY,
                       &error_abort);
@@ -260,7 +260,7 @@ static void test_parallel_exclusive_write(void)
                       &error_abort);
 
     bdrv_replace_node(fl1, fl2, &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     bdrv_drained_end(fl2);
     bdrv_drained_end(fl1);
@@ -367,7 +367,7 @@ static void test_parallel_perm_update(void)
      */
     bdrv_ref(base);
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_attach_child(top, ws, "file", &child_of_bds, BDRV_CHILD_DATA,
                       &error_abort);
     c_fl1 = bdrv_attach_child(ws, fl1, "first", &child_of_bds,
@@ -380,7 +380,7 @@ static void test_parallel_perm_update(void)
     bdrv_attach_child(fl2, base, "backing", &child_of_bds,
                       BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY,
                       &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     /* Select fl1 as first child to be active */
     s->selected = c_fl1;
@@ -434,11 +434,11 @@ static void test_append_greedy_filter(void)
     BlockDriverState *base = no_perm_node("base");
     BlockDriverState *fl = exclusive_writer_node("fl1");
 
-    bdrv_graph_wrlock(NULL);
+    bdrv_graph_wrlock();
     bdrv_attach_child(top, base, "backing", &child_of_bds,
                       BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY,
                       &error_abort);
-    bdrv_graph_wrunlock(NULL);
+    bdrv_graph_wrunlock();
 
     aio_context_acquire(qemu_get_aio_context());
     bdrv_append(fl, base, &error_abort);
diff --git a/scripts/block-coroutine-wrapper.py b/scripts/block-coroutine-wrapper.py
index a38e5833fb..38364fa557 100644
--- a/scripts/block-coroutine-wrapper.py
+++ b/scripts/block-coroutine-wrapper.py
@@ -261,8 +261,8 @@ def gen_no_co_wrapper(func: FuncDecl) -> str:
         graph_lock='    bdrv_graph_rdlock_main_loop();'
         graph_unlock='    bdrv_graph_rdunlock_main_loop();'
     elif func.graph_wrlock:
-        graph_lock='    bdrv_graph_wrlock(NULL);'
-        graph_unlock='    bdrv_graph_wrunlock(NULL);'
+        graph_lock='    bdrv_graph_wrlock();'
+        graph_unlock='    bdrv_graph_wrunlock();'
 
     return f"""\
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648188.1012330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2F-0004Vm-O7; Tue, 05 Dec 2023 18:20:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648188.1012330; Tue, 05 Dec 2023 18:20:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2F-0004VP-J7; Tue, 05 Dec 2023 18:20:43 +0000
Received: by outflank-mailman (input) for mailman id 648188;
 Tue, 05 Dec 2023 18:20:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2E-0002fT-N2
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:43 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe38e3d3-939a-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 19:20:40 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-643-jerahUbrOfKr08It_qIgXA-1; Tue,
 05 Dec 2023 13:20:35 -0500
Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com
 [10.11.54.6])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2508D1D6BEE3;
 Tue,  5 Dec 2023 18:20:34 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id D40162166B31;
 Tue,  5 Dec 2023 18:20: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: fe38e3d3-939a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800439;
	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=vw22P8mnLUq8KteOIhRR1yuFI9XJA9QdIuPuhFXL9NY=;
	b=FsSaQmSHgT4z6unIsCnFfNHiQ/KunN5grsJuaDyzwUid/bZtNhrKRjAEGxbG5yT1vQwsdN
	w4c1/YtNmd+qtrvUPpgmdYNlTDwiV+GBCo7fWIFHA6OJXqtA7MI/DpF9pnq9Ixe73Wfh9c
	nyCicZqfOoxbNwUnYOffg6ogb1dYnkk=
X-MC-Unique: jerahUbrOfKr08It_qIgXA-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 06/14] block: remove AioContext locking
Date: Tue,  5 Dec 2023 13:20:03 -0500
Message-ID: <20231205182011.1976568-7-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6

This is the big patch that removes
aio_context_acquire()/aio_context_release() from the block layer and
affected block layer users.

There isn't a clean way to split this patch and the reviewers are likely
the same group of people, so I decided to do it in one patch.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 include/block/block-global-state.h |   9 +-
 include/block/block-io.h           |   3 +-
 include/block/snapshot.h           |   2 -
 block.c                            | 234 +---------------------
 block/block-backend.c              |  14 --
 block/copy-before-write.c          |  22 +--
 block/export/export.c              |  22 +--
 block/io.c                         |  45 +----
 block/mirror.c                     |  19 --
 block/monitor/bitmap-qmp-cmds.c    |  20 +-
 block/monitor/block-hmp-cmds.c     |  29 ---
 block/qapi-sysemu.c                |  27 +--
 block/qapi.c                       |  18 +-
 block/raw-format.c                 |   5 -
 block/replication.c                |  58 +-----
 block/snapshot.c                   |  22 +--
 block/write-threshold.c            |   6 -
 blockdev.c                         | 307 +++++------------------------
 blockjob.c                         |  18 --
 hw/block/dataplane/virtio-blk.c    |  10 -
 hw/block/dataplane/xen-block.c     |  17 +-
 hw/block/virtio-blk.c              |  45 +----
 hw/core/qdev-properties-system.c   |   9 -
 job.c                              |  16 --
 migration/block.c                  |  33 +---
 migration/migration-hmp-cmds.c     |   3 -
 migration/savevm.c                 |  22 ---
 net/colo-compare.c                 |   2 -
 qemu-img.c                         |   4 -
 qemu-io.c                          |  10 +-
 qemu-nbd.c                         |   2 -
 replay/replay-debugging.c          |   4 -
 tests/unit/test-bdrv-drain.c       |  51 +----
 tests/unit/test-bdrv-graph-mod.c   |   6 -
 tests/unit/test-block-iothread.c   |  31 ---
 tests/unit/test-blockjob.c         | 137 -------------
 tests/unit/test-replication.c      |  11 --
 util/async.c                       |   4 -
 util/vhost-user-server.c           |   3 -
 scripts/block-coroutine-wrapper.py |   3 -
 tests/tsan/suppressions.tsan       |   1 -
 41 files changed, 102 insertions(+), 1202 deletions(-)

diff --git a/include/block/block-global-state.h b/include/block/block-global-state.h
index 6b21fbc73f..0327f1c605 100644
--- a/include/block/block-global-state.h
+++ b/include/block/block-global-state.h
@@ -31,11 +31,10 @@
 /*
  * Global state (GS) API. These functions run under the BQL.
  *
- * If a function modifies the graph, it also uses drain and/or
- * aio_context_acquire/release to be sure it has unique access.
- * aio_context locking is needed together with BQL because of
- * the thread-safe I/O API that concurrently runs and accesses
- * the graph without the BQL.
+ * If a function modifies the graph, it also uses the graph lock to be sure it
+ * has unique access. The graph lock is needed together with BQL because of the
+ * thread-safe I/O API that concurrently runs and accesses the graph without
+ * the BQL.
  *
  * It is important to note that not all of these functions are
  * necessarily limited to running under the BQL, but they would
diff --git a/include/block/block-io.h b/include/block/block-io.h
index f8729ccc55..8eb39a858b 100644
--- a/include/block/block-io.h
+++ b/include/block/block-io.h
@@ -31,8 +31,7 @@
 
 /*
  * I/O API functions. These functions are thread-safe, and therefore
- * can run in any thread as long as the thread has called
- * aio_context_acquire/release().
+ * can run in any thread.
  *
  * These functions can only call functions from I/O and Common categories,
  * but can be invoked by GS, "I/O or GS" and I/O APIs.
diff --git a/include/block/snapshot.h b/include/block/snapshot.h
index d49c5599d9..304cc6ea61 100644
--- a/include/block/snapshot.h
+++ b/include/block/snapshot.h
@@ -86,8 +86,6 @@ int bdrv_snapshot_load_tmp_by_id_or_name(BlockDriverState *bs,
 
 /*
  * Group operations. All block drivers are involved.
- * These functions will properly handle dataplane (take aio_context_acquire
- * when appropriate for appropriate block drivers
  */
 
 bool bdrv_all_can_snapshot(bool has_devices, strList *devices,
diff --git a/block.c b/block.c
index 25e1ebc606..91ace5d2d5 100644
--- a/block.c
+++ b/block.c
@@ -1625,7 +1625,6 @@ static int no_coroutine_fn GRAPH_UNLOCKED
 bdrv_open_driver(BlockDriverState *bs, BlockDriver *drv, const char *node_name,
                  QDict *options, int open_flags, Error **errp)
 {
-    AioContext *ctx;
     Error *local_err = NULL;
     int i, ret;
     GLOBAL_STATE_CODE();
@@ -1673,21 +1672,15 @@ bdrv_open_driver(BlockDriverState *bs, BlockDriver *drv, const char *node_name,
     bs->supported_read_flags |= BDRV_REQ_REGISTERED_BUF;
     bs->supported_write_flags |= BDRV_REQ_REGISTERED_BUF;
 
-    /* Get the context after .bdrv_open, it can change the context */
-    ctx = bdrv_get_aio_context(bs);
-    aio_context_acquire(ctx);
-
     ret = bdrv_refresh_total_sectors(bs, bs->total_sectors);
     if (ret < 0) {
         error_setg_errno(errp, -ret, "Could not refresh total sector count");
-        aio_context_release(ctx);
         return ret;
     }
 
     bdrv_graph_rdlock_main_loop();
     bdrv_refresh_limits(bs, NULL, &local_err);
     bdrv_graph_rdunlock_main_loop();
-    aio_context_release(ctx);
 
     if (local_err) {
         error_propagate(errp, local_err);
@@ -3062,7 +3055,7 @@ bdrv_attach_child_common(BlockDriverState *child_bs,
                          Transaction *tran, Error **errp)
 {
     BdrvChild *new_child;
-    AioContext *parent_ctx, *new_child_ctx;
+    AioContext *parent_ctx;
     AioContext *child_ctx = bdrv_get_aio_context(child_bs);
 
     assert(child_class->get_parent_desc);
@@ -3114,12 +3107,6 @@ bdrv_attach_child_common(BlockDriverState *child_bs,
         }
     }
 
-    new_child_ctx = bdrv_get_aio_context(child_bs);
-    if (new_child_ctx != child_ctx) {
-        aio_context_release(child_ctx);
-        aio_context_acquire(new_child_ctx);
-    }
-
     bdrv_ref(child_bs);
     /*
      * Let every new BdrvChild start with a drained parent. Inserting the child
@@ -3149,11 +3136,6 @@ bdrv_attach_child_common(BlockDriverState *child_bs,
     };
     tran_add(tran, &bdrv_attach_child_common_drv, s);
 
-    if (new_child_ctx != child_ctx) {
-        aio_context_release(new_child_ctx);
-        aio_context_acquire(child_ctx);
-    }
-
     return new_child;
 }
 
@@ -3605,7 +3587,6 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict *parent_options,
     int ret = 0;
     bool implicit_backing = false;
     BlockDriverState *backing_hd;
-    AioContext *backing_hd_ctx;
     QDict *options;
     QDict *tmp_parent_options = NULL;
     Error *local_err = NULL;
@@ -3691,11 +3672,8 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict *parent_options,
 
     /* Hook up the backing file link; drop our reference, bs owns the
      * backing_hd reference now */
-    backing_hd_ctx = bdrv_get_aio_context(backing_hd);
-    aio_context_acquire(backing_hd_ctx);
     ret = bdrv_set_backing_hd(bs, backing_hd, errp);
     bdrv_unref(backing_hd);
-    aio_context_release(backing_hd_ctx);
 
     if (ret < 0) {
         goto free_exit;
@@ -3780,7 +3758,6 @@ BdrvChild *bdrv_open_child(const char *filename,
 {
     BlockDriverState *bs;
     BdrvChild *child;
-    AioContext *ctx;
 
     GLOBAL_STATE_CODE();
 
@@ -3791,11 +3768,8 @@ BdrvChild *bdrv_open_child(const char *filename,
     }
 
     bdrv_graph_wrlock();
-    ctx = bdrv_get_aio_context(bs);
-    aio_context_acquire(ctx);
     child = bdrv_attach_child(parent, bs, bdref_key, child_class, child_role,
                               errp);
-    aio_context_release(ctx);
     bdrv_graph_wrunlock();
 
     return child;
@@ -3881,7 +3855,6 @@ static BlockDriverState *bdrv_append_temp_snapshot(BlockDriverState *bs,
     int64_t total_size;
     QemuOpts *opts = NULL;
     BlockDriverState *bs_snapshot = NULL;
-    AioContext *ctx = bdrv_get_aio_context(bs);
     int ret;
 
     GLOBAL_STATE_CODE();
@@ -3890,9 +3863,7 @@ static BlockDriverState *bdrv_append_temp_snapshot(BlockDriverState *bs,
        instead of opening 'filename' directly */
 
     /* Get the required size from the image */
-    aio_context_acquire(ctx);
     total_size = bdrv_getlength(bs);
-    aio_context_release(ctx);
 
     if (total_size < 0) {
         error_setg_errno(errp, -total_size, "Could not get image size");
@@ -3927,10 +3898,7 @@ static BlockDriverState *bdrv_append_temp_snapshot(BlockDriverState *bs,
         goto out;
     }
 
-    aio_context_acquire(ctx);
     ret = bdrv_append(bs_snapshot, bs, errp);
-    aio_context_release(ctx);
-
     if (ret < 0) {
         bs_snapshot = NULL;
         goto out;
@@ -3974,7 +3942,6 @@ bdrv_open_inherit(const char *filename, const char *reference, QDict *options,
     Error *local_err = NULL;
     QDict *snapshot_options = NULL;
     int snapshot_flags = 0;
-    AioContext *ctx = qemu_get_aio_context();
 
     assert(!child_class || !flags);
     assert(!child_class == !parent);
@@ -4115,12 +4082,10 @@ bdrv_open_inherit(const char *filename, const char *reference, QDict *options,
             /* Not requesting BLK_PERM_CONSISTENT_READ because we're only
              * looking at the header to guess the image format. This works even
              * in cases where a guest would not see a consistent state. */
-            ctx = bdrv_get_aio_context(file_bs);
-            aio_context_acquire(ctx);
+            AioContext *ctx = bdrv_get_aio_context(file_bs);
             file = blk_new(ctx, 0, BLK_PERM_ALL);
             blk_insert_bs(file, file_bs, &local_err);
             bdrv_unref(file_bs);
-            aio_context_release(ctx);
 
             if (local_err) {
                 goto fail;
@@ -4167,13 +4132,8 @@ bdrv_open_inherit(const char *filename, const char *reference, QDict *options,
         goto fail;
     }
 
-    /* The AioContext could have changed during bdrv_open_common() */
-    ctx = bdrv_get_aio_context(bs);
-
     if (file) {
-        aio_context_acquire(ctx);
         blk_unref(file);
-        aio_context_release(ctx);
         file = NULL;
     }
 
@@ -4231,16 +4191,13 @@ bdrv_open_inherit(const char *filename, const char *reference, QDict *options,
          * (snapshot_bs); thus, we have to drop the strong reference to bs
          * (which we obtained by calling bdrv_new()). bs will not be deleted,
          * though, because the overlay still has a reference to it. */
-        aio_context_acquire(ctx);
         bdrv_unref(bs);
-        aio_context_release(ctx);
         bs = snapshot_bs;
     }
 
     return bs;
 
 fail:
-    aio_context_acquire(ctx);
     blk_unref(file);
     qobject_unref(snapshot_options);
     qobject_unref(bs->explicit_options);
@@ -4249,14 +4206,11 @@ fail:
     bs->options = NULL;
     bs->explicit_options = NULL;
     bdrv_unref(bs);
-    aio_context_release(ctx);
     error_propagate(errp, local_err);
     return NULL;
 
 close_and_fail:
-    aio_context_acquire(ctx);
     bdrv_unref(bs);
-    aio_context_release(ctx);
     qobject_unref(snapshot_options);
     qobject_unref(options);
     error_propagate(errp, local_err);
@@ -4540,12 +4494,7 @@ void bdrv_reopen_queue_free(BlockReopenQueue *bs_queue)
     if (bs_queue) {
         BlockReopenQueueEntry *bs_entry, *next;
         QTAILQ_FOREACH_SAFE(bs_entry, bs_queue, entry, next) {
-            AioContext *ctx = bdrv_get_aio_context(bs_entry->state.bs);
-
-            aio_context_acquire(ctx);
             bdrv_drained_end(bs_entry->state.bs);
-            aio_context_release(ctx);
-
             qobject_unref(bs_entry->state.explicit_options);
             qobject_unref(bs_entry->state.options);
             g_free(bs_entry);
@@ -4577,7 +4526,6 @@ int bdrv_reopen_multiple(BlockReopenQueue *bs_queue, Error **errp)
 {
     int ret = -1;
     BlockReopenQueueEntry *bs_entry, *next;
-    AioContext *ctx;
     Transaction *tran = tran_new();
     g_autoptr(GSList) refresh_list = NULL;
 
@@ -4586,10 +4534,7 @@ int bdrv_reopen_multiple(BlockReopenQueue *bs_queue, Error **errp)
     GLOBAL_STATE_CODE();
 
     QTAILQ_FOREACH(bs_entry, bs_queue, entry) {
-        ctx = bdrv_get_aio_context(bs_entry->state.bs);
-        aio_context_acquire(ctx);
         ret = bdrv_flush(bs_entry->state.bs);
-        aio_context_release(ctx);
         if (ret < 0) {
             error_setg_errno(errp, -ret, "Error flushing drive");
             goto abort;
@@ -4598,10 +4543,7 @@ int bdrv_reopen_multiple(BlockReopenQueue *bs_queue, Error **errp)
 
     QTAILQ_FOREACH(bs_entry, bs_queue, entry) {
         assert(bs_entry->state.bs->quiesce_counter > 0);
-        ctx = bdrv_get_aio_context(bs_entry->state.bs);
-        aio_context_acquire(ctx);
         ret = bdrv_reopen_prepare(&bs_entry->state, bs_queue, tran, errp);
-        aio_context_release(ctx);
         if (ret < 0) {
             goto abort;
         }
@@ -4644,10 +4586,7 @@ int bdrv_reopen_multiple(BlockReopenQueue *bs_queue, Error **errp)
      * to first element.
      */
     QTAILQ_FOREACH_REVERSE(bs_entry, bs_queue, entry) {
-        ctx = bdrv_get_aio_context(bs_entry->state.bs);
-        aio_context_acquire(ctx);
         bdrv_reopen_commit(&bs_entry->state);
-        aio_context_release(ctx);
     }
 
     bdrv_graph_wrlock();
@@ -4658,10 +4597,7 @@ int bdrv_reopen_multiple(BlockReopenQueue *bs_queue, Error **errp)
         BlockDriverState *bs = bs_entry->state.bs;
 
         if (bs->drv->bdrv_reopen_commit_post) {
-            ctx = bdrv_get_aio_context(bs);
-            aio_context_acquire(ctx);
             bs->drv->bdrv_reopen_commit_post(&bs_entry->state);
-            aio_context_release(ctx);
         }
     }
 
@@ -4675,10 +4611,7 @@ abort:
 
     QTAILQ_FOREACH_SAFE(bs_entry, bs_queue, entry, next) {
         if (bs_entry->prepared) {
-            ctx = bdrv_get_aio_context(bs_entry->state.bs);
-            aio_context_acquire(ctx);
             bdrv_reopen_abort(&bs_entry->state);
-            aio_context_release(ctx);
         }
     }
 
@@ -4691,24 +4624,13 @@ cleanup:
 int bdrv_reopen(BlockDriverState *bs, QDict *opts, bool keep_old_opts,
                 Error **errp)
 {
-    AioContext *ctx = bdrv_get_aio_context(bs);
     BlockReopenQueue *queue;
-    int ret;
 
     GLOBAL_STATE_CODE();
 
     queue = bdrv_reopen_queue(NULL, bs, opts, keep_old_opts);
 
-    if (ctx != qemu_get_aio_context()) {
-        aio_context_release(ctx);
-    }
-    ret = bdrv_reopen_multiple(queue, errp);
-
-    if (ctx != qemu_get_aio_context()) {
-        aio_context_acquire(ctx);
-    }
-
-    return ret;
+    return bdrv_reopen_multiple(queue, errp);
 }
 
 int bdrv_reopen_set_read_only(BlockDriverState *bs, bool read_only,
@@ -4760,7 +4682,6 @@ bdrv_reopen_parse_file_or_backing(BDRVReopenState *reopen_state,
     const char *child_name = is_backing ? "backing" : "file";
     QObject *value;
     const char *str;
-    AioContext *ctx, *old_ctx;
     bool has_child;
     int ret;
 
@@ -4844,13 +4765,6 @@ bdrv_reopen_parse_file_or_backing(BDRVReopenState *reopen_state,
         bdrv_drained_begin(old_child_bs);
     }
 
-    old_ctx = bdrv_get_aio_context(bs);
-    ctx = bdrv_get_aio_context(new_child_bs);
-    if (old_ctx != ctx) {
-        aio_context_release(old_ctx);
-        aio_context_acquire(ctx);
-    }
-
     bdrv_graph_rdunlock_main_loop();
     bdrv_graph_wrlock();
 
@@ -4859,11 +4773,6 @@ bdrv_reopen_parse_file_or_backing(BDRVReopenState *reopen_state,
 
     bdrv_graph_wrunlock();
 
-    if (old_ctx != ctx) {
-        aio_context_release(ctx);
-        aio_context_acquire(old_ctx);
-    }
-
     if (old_child_bs) {
         bdrv_drained_end(old_child_bs);
         bdrv_unref(old_child_bs);
@@ -5537,7 +5446,6 @@ int bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top,
     int ret;
     BdrvChild *child;
     Transaction *tran = tran_new();
-    AioContext *old_context, *new_context = NULL;
 
     GLOBAL_STATE_CODE();
 
@@ -5545,21 +5453,8 @@ int bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top,
     assert(!bs_new->backing);
     bdrv_graph_rdunlock_main_loop();
 
-    old_context = bdrv_get_aio_context(bs_top);
     bdrv_drained_begin(bs_top);
-
-    /*
-     * bdrv_drained_begin() requires that only the AioContext of the drained
-     * node is locked, and at this point it can still differ from the AioContext
-     * of bs_top.
-     */
-    new_context = bdrv_get_aio_context(bs_new);
-    aio_context_release(old_context);
-    aio_context_acquire(new_context);
     bdrv_drained_begin(bs_new);
-    aio_context_release(new_context);
-    aio_context_acquire(old_context);
-    new_context = NULL;
 
     bdrv_graph_wrlock();
 
@@ -5571,18 +5466,6 @@ int bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top,
         goto out;
     }
 
-    /*
-     * bdrv_attach_child_noperm could change the AioContext of bs_top and
-     * bs_new, but at least they are in the same AioContext now. This is the
-     * AioContext that we need to lock for the rest of the function.
-     */
-    new_context = bdrv_get_aio_context(bs_top);
-
-    if (old_context != new_context) {
-        aio_context_release(old_context);
-        aio_context_acquire(new_context);
-    }
-
     ret = bdrv_replace_node_noperm(bs_top, bs_new, true, tran, errp);
     if (ret < 0) {
         goto out;
@@ -5598,11 +5481,6 @@ out:
     bdrv_drained_end(bs_top);
     bdrv_drained_end(bs_new);
 
-    if (new_context && old_context != new_context) {
-        aio_context_release(new_context);
-        aio_context_acquire(old_context);
-    }
-
     return ret;
 }
 
@@ -5697,12 +5575,8 @@ BlockDriverState *bdrv_insert_node(BlockDriverState *bs, QDict *options,
 
     GLOBAL_STATE_CODE();
 
-    aio_context_release(ctx);
-    aio_context_acquire(qemu_get_aio_context());
     new_node_bs = bdrv_new_open_driver_opts(drv, node_name, options, flags,
                                             errp);
-    aio_context_release(qemu_get_aio_context());
-    aio_context_acquire(ctx);
     assert(bdrv_get_aio_context(bs) == ctx);
 
     options = NULL; /* bdrv_new_open_driver() eats options */
@@ -7037,12 +6911,9 @@ void bdrv_activate_all(Error **errp)
     GRAPH_RDLOCK_GUARD_MAINLOOP();
 
     for (bs = bdrv_first(&it); bs; bs = bdrv_next(&it)) {
-        AioContext *aio_context = bdrv_get_aio_context(bs);
         int ret;
 
-        aio_context_acquire(aio_context);
         ret = bdrv_activate(bs, errp);
-        aio_context_release(aio_context);
         if (ret < 0) {
             bdrv_next_cleanup(&it);
             return;
@@ -7137,20 +7008,10 @@ int bdrv_inactivate_all(void)
     BlockDriverState *bs = NULL;
     BdrvNextIterator it;
     int ret = 0;
-    GSList *aio_ctxs = NULL, *ctx;
 
     GLOBAL_STATE_CODE();
     GRAPH_RDLOCK_GUARD_MAINLOOP();
 
-    for (bs = bdrv_first(&it); bs; bs = bdrv_next(&it)) {
-        AioContext *aio_context = bdrv_get_aio_context(bs);
-
-        if (!g_slist_find(aio_ctxs, aio_context)) {
-            aio_ctxs = g_slist_prepend(aio_ctxs, aio_context);
-            aio_context_acquire(aio_context);
-        }
-    }
-
     for (bs = bdrv_first(&it); bs; bs = bdrv_next(&it)) {
         /* Nodes with BDS parents are covered by recursion from the last
          * parent that gets inactivated. Don't inactivate them a second
@@ -7161,17 +7022,10 @@ int bdrv_inactivate_all(void)
         ret = bdrv_inactivate_recurse(bs);
         if (ret < 0) {
             bdrv_next_cleanup(&it);
-            goto out;
+            break;
         }
     }
 
-out:
-    for (ctx = aio_ctxs; ctx != NULL; ctx = ctx->next) {
-        AioContext *aio_context = ctx->data;
-        aio_context_release(aio_context);
-    }
-    g_slist_free(aio_ctxs);
-
     return ret;
 }
 
@@ -7257,11 +7111,8 @@ void bdrv_unref(BlockDriverState *bs)
 static void bdrv_schedule_unref_bh(void *opaque)
 {
     BlockDriverState *bs = opaque;
-    AioContext *ctx = bdrv_get_aio_context(bs);
 
-    aio_context_acquire(ctx);
     bdrv_unref(bs);
-    aio_context_release(ctx);
 }
 
 /*
@@ -7398,8 +7249,6 @@ void bdrv_img_create(const char *filename, const char *fmt,
         return;
     }
 
-    aio_context_acquire(qemu_get_aio_context());
-
     /* Create parameter list */
     create_opts = qemu_opts_append(create_opts, drv->create_opts);
     create_opts = qemu_opts_append(create_opts, proto_drv->create_opts);
@@ -7549,7 +7398,6 @@ out:
     qemu_opts_del(opts);
     qemu_opts_free(create_opts);
     error_propagate(errp, local_err);
-    aio_context_release(qemu_get_aio_context());
 }
 
 AioContext *bdrv_get_aio_context(BlockDriverState *bs)
@@ -7585,29 +7433,12 @@ void coroutine_fn bdrv_co_leave(BlockDriverState *bs, AioContext *old_ctx)
 
 void coroutine_fn bdrv_co_lock(BlockDriverState *bs)
 {
-    AioContext *ctx = bdrv_get_aio_context(bs);
-
-    /* In the main thread, bs->aio_context won't change concurrently */
-    assert(qemu_get_current_aio_context() == qemu_get_aio_context());
-
-    /*
-     * We're in coroutine context, so we already hold the lock of the main
-     * loop AioContext. Don't lock it twice to avoid deadlocks.
-     */
-    assert(qemu_in_coroutine());
-    if (ctx != qemu_get_aio_context()) {
-        aio_context_acquire(ctx);
-    }
+    /* TODO removed in next patch */
 }
 
 void coroutine_fn bdrv_co_unlock(BlockDriverState *bs)
 {
-    AioContext *ctx = bdrv_get_aio_context(bs);
-
-    assert(qemu_in_coroutine());
-    if (ctx != qemu_get_aio_context()) {
-        aio_context_release(ctx);
-    }
+    /* TODO removed in next patch */
 }
 
 static void bdrv_do_remove_aio_context_notifier(BdrvAioNotifier *ban)
@@ -7728,21 +7559,8 @@ static void bdrv_set_aio_context_commit(void *opaque)
     BdrvStateSetAioContext *state = (BdrvStateSetAioContext *) opaque;
     BlockDriverState *bs = (BlockDriverState *) state->bs;
     AioContext *new_context = state->new_ctx;
-    AioContext *old_context = bdrv_get_aio_context(bs);
 
-    /*
-     * Take the old AioContex when detaching it from bs.
-     * At this point, new_context lock is already acquired, and we are now
-     * also taking old_context. This is safe as long as bdrv_detach_aio_context
-     * does not call AIO_POLL_WHILE().
-     */
-    if (old_context != qemu_get_aio_context()) {
-        aio_context_acquire(old_context);
-    }
     bdrv_detach_aio_context(bs);
-    if (old_context != qemu_get_aio_context()) {
-        aio_context_release(old_context);
-    }
     bdrv_attach_aio_context(bs, new_context);
 }
 
@@ -7827,7 +7645,6 @@ int bdrv_try_change_aio_context(BlockDriverState *bs, AioContext *ctx,
     Transaction *tran;
     GHashTable *visited;
     int ret;
-    AioContext *old_context = bdrv_get_aio_context(bs);
     GLOBAL_STATE_CODE();
 
     /*
@@ -7857,34 +7674,7 @@ int bdrv_try_change_aio_context(BlockDriverState *bs, AioContext *ctx,
         return -EPERM;
     }
 
-    /*
-     * Release old AioContext, it won't be needed anymore, as all
-     * bdrv_drained_begin() have been called already.
-     */
-    if (qemu_get_aio_context() != old_context) {
-        aio_context_release(old_context);
-    }
-
-    /*
-     * Acquire new AioContext since bdrv_drained_end() is going to be called
-     * after we switched all nodes in the new AioContext, and the function
-     * assumes that the lock of the bs is always taken.
-     */
-    if (qemu_get_aio_context() != ctx) {
-        aio_context_acquire(ctx);
-    }
-
     tran_commit(tran);
-
-    if (qemu_get_aio_context() != ctx) {
-        aio_context_release(ctx);
-    }
-
-    /* Re-acquire the old AioContext, since the caller takes and releases it. */
-    if (qemu_get_aio_context() != old_context) {
-        aio_context_acquire(old_context);
-    }
-
     return 0;
 }
 
@@ -8006,7 +7796,6 @@ BlockDriverState *check_to_replace_node(BlockDriverState *parent_bs,
                                         const char *node_name, Error **errp)
 {
     BlockDriverState *to_replace_bs = bdrv_find_node(node_name);
-    AioContext *aio_context;
 
     GLOBAL_STATE_CODE();
 
@@ -8015,12 +7804,8 @@ BlockDriverState *check_to_replace_node(BlockDriverState *parent_bs,
         return NULL;
     }
 
-    aio_context = bdrv_get_aio_context(to_replace_bs);
-    aio_context_acquire(aio_context);
-
     if (bdrv_op_is_blocked(to_replace_bs, BLOCK_OP_TYPE_REPLACE, errp)) {
-        to_replace_bs = NULL;
-        goto out;
+        return NULL;
     }
 
     /* We don't want arbitrary node of the BDS chain to be replaced only the top
@@ -8033,12 +7818,9 @@ BlockDriverState *check_to_replace_node(BlockDriverState *parent_bs,
                    "because it cannot be guaranteed that doing so would not "
                    "lead to an abrupt change of visible data",
                    node_name, parent_bs->node_name);
-        to_replace_bs = NULL;
-        goto out;
+        return NULL;
     }
 
-out:
-    aio_context_release(aio_context);
     return to_replace_bs;
 }
 
diff --git a/block/block-backend.c b/block/block-backend.c
index abac4e0235..f412bed274 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -429,7 +429,6 @@ BlockBackend *blk_new_open(const char *filename, const char *reference,
 {
     BlockBackend *blk;
     BlockDriverState *bs;
-    AioContext *ctx;
     uint64_t perm = 0;
     uint64_t shared = BLK_PERM_ALL;
 
@@ -459,23 +458,18 @@ BlockBackend *blk_new_open(const char *filename, const char *reference,
         shared = BLK_PERM_CONSISTENT_READ | BLK_PERM_WRITE_UNCHANGED;
     }
 
-    aio_context_acquire(qemu_get_aio_context());
     bs = bdrv_open(filename, reference, options, flags, errp);
-    aio_context_release(qemu_get_aio_context());
     if (!bs) {
         return NULL;
     }
 
     /* bdrv_open() could have moved bs to a different AioContext */
-    ctx = bdrv_get_aio_context(bs);
     blk = blk_new(bdrv_get_aio_context(bs), perm, shared);
     blk->perm = perm;
     blk->shared_perm = shared;
 
-    aio_context_acquire(ctx);
     blk_insert_bs(blk, bs, errp);
     bdrv_unref(bs);
-    aio_context_release(ctx);
 
     if (!blk->root) {
         blk_unref(blk);
@@ -577,13 +571,9 @@ void blk_remove_all_bs(void)
     GLOBAL_STATE_CODE();
 
     while ((blk = blk_all_next(blk)) != NULL) {
-        AioContext *ctx = blk_get_aio_context(blk);
-
-        aio_context_acquire(ctx);
         if (blk->root) {
             blk_remove_bs(blk);
         }
-        aio_context_release(ctx);
     }
 }
 
@@ -2736,20 +2726,16 @@ int blk_commit_all(void)
     GRAPH_RDLOCK_GUARD_MAINLOOP();
 
     while ((blk = blk_all_next(blk)) != NULL) {
-        AioContext *aio_context = blk_get_aio_context(blk);
         BlockDriverState *unfiltered_bs = bdrv_skip_filters(blk_bs(blk));
 
-        aio_context_acquire(aio_context);
         if (blk_is_inserted(blk) && bdrv_cow_child(unfiltered_bs)) {
             int ret;
 
             ret = bdrv_commit(unfiltered_bs);
             if (ret < 0) {
-                aio_context_release(aio_context);
                 return ret;
             }
         }
-        aio_context_release(aio_context);
     }
     return 0;
 }
diff --git a/block/copy-before-write.c b/block/copy-before-write.c
index 13972879b1..0842a1a6df 100644
--- a/block/copy-before-write.c
+++ b/block/copy-before-write.c
@@ -412,7 +412,6 @@ static int cbw_open(BlockDriverState *bs, QDict *options, int flags,
     int64_t cluster_size;
     g_autoptr(BlockdevOptions) full_opts = NULL;
     BlockdevOptionsCbw *opts;
-    AioContext *ctx;
     int ret;
 
     full_opts = cbw_parse_options(options, errp);
@@ -435,15 +434,11 @@ static int cbw_open(BlockDriverState *bs, QDict *options, int flags,
 
     GRAPH_RDLOCK_GUARD_MAINLOOP();
 
-    ctx = bdrv_get_aio_context(bs);
-    aio_context_acquire(ctx);
-
     if (opts->bitmap) {
         bitmap = block_dirty_bitmap_lookup(opts->bitmap->node,
                                            opts->bitmap->name, NULL, errp);
         if (!bitmap) {
-            ret = -EINVAL;
-            goto out;
+            return -EINVAL;
         }
     }
     s->on_cbw_error = opts->has_on_cbw_error ? opts->on_cbw_error :
@@ -461,24 +456,21 @@ static int cbw_open(BlockDriverState *bs, QDict *options, int flags,
     s->bcs = block_copy_state_new(bs->file, s->target, bitmap, errp);
     if (!s->bcs) {
         error_prepend(errp, "Cannot create block-copy-state: ");
-        ret = -EINVAL;
-        goto out;
+        return -EINVAL;
     }
 
     cluster_size = block_copy_cluster_size(s->bcs);
 
     s->done_bitmap = bdrv_create_dirty_bitmap(bs, cluster_size, NULL, errp);
     if (!s->done_bitmap) {
-        ret = -EINVAL;
-        goto out;
+        return -EINVAL;
     }
     bdrv_disable_dirty_bitmap(s->done_bitmap);
 
     /* s->access_bitmap starts equal to bcs bitmap */
     s->access_bitmap = bdrv_create_dirty_bitmap(bs, cluster_size, NULL, errp);
     if (!s->access_bitmap) {
-        ret = -EINVAL;
-        goto out;
+        return -EINVAL;
     }
     bdrv_disable_dirty_bitmap(s->access_bitmap);
     bdrv_dirty_bitmap_merge_internal(s->access_bitmap,
@@ -487,11 +479,7 @@ static int cbw_open(BlockDriverState *bs, QDict *options, int flags,
 
     qemu_co_mutex_init(&s->lock);
     QLIST_INIT(&s->frozen_read_reqs);
-
-    ret = 0;
-out:
-    aio_context_release(ctx);
-    return ret;
+    return 0;
 }
 
 static void cbw_close(BlockDriverState *bs)
diff --git a/block/export/export.c b/block/export/export.c
index a8f274e526..6d51ae8ed7 100644
--- a/block/export/export.c
+++ b/block/export/export.c
@@ -114,7 +114,6 @@ BlockExport *blk_exp_add(BlockExportOptions *export, Error **errp)
     }
 
     ctx = bdrv_get_aio_context(bs);
-    aio_context_acquire(ctx);
 
     if (export->iothread) {
         IOThread *iothread;
@@ -133,8 +132,6 @@ BlockExport *blk_exp_add(BlockExportOptions *export, Error **errp)
         set_context_errp = fixed_iothread ? errp : NULL;
         ret = bdrv_try_change_aio_context(bs, new_ctx, NULL, set_context_errp);
         if (ret == 0) {
-            aio_context_release(ctx);
-            aio_context_acquire(new_ctx);
             ctx = new_ctx;
         } else if (fixed_iothread) {
             goto fail;
@@ -191,8 +188,6 @@ BlockExport *blk_exp_add(BlockExportOptions *export, Error **errp)
     assert(exp->blk != NULL);
 
     QLIST_INSERT_HEAD(&block_exports, exp, next);
-
-    aio_context_release(ctx);
     return exp;
 
 fail:
@@ -200,7 +195,6 @@ fail:
         blk_set_dev_ops(blk, NULL, NULL);
         blk_unref(blk);
     }
-    aio_context_release(ctx);
     if (exp) {
         g_free(exp->id);
         g_free(exp);
@@ -218,9 +212,6 @@ void blk_exp_ref(BlockExport *exp)
 static void blk_exp_delete_bh(void *opaque)
 {
     BlockExport *exp = opaque;
-    AioContext *aio_context = exp->ctx;
-
-    aio_context_acquire(aio_context);
 
     assert(exp->refcount == 0);
     QLIST_REMOVE(exp, next);
@@ -230,8 +221,6 @@ static void blk_exp_delete_bh(void *opaque)
     qapi_event_send_block_export_deleted(exp->id);
     g_free(exp->id);
     g_free(exp);
-
-    aio_context_release(aio_context);
 }
 
 void blk_exp_unref(BlockExport *exp)
@@ -249,22 +238,16 @@ void blk_exp_unref(BlockExport *exp)
  * connections and other internally held references start to shut down. When
  * the function returns, there may still be active references while the export
  * is in the process of shutting down.
- *
- * Acquires exp->ctx internally. Callers must *not* hold the lock.
  */
 void blk_exp_request_shutdown(BlockExport *exp)
 {
-    AioContext *aio_context = exp->ctx;
-
-    aio_context_acquire(aio_context);
-
     /*
      * If the user doesn't own the export any more, it is already shutting
      * down. We must not call .request_shutdown and decrease the refcount a
      * second time.
      */
     if (!exp->user_owned) {
-        goto out;
+        return;
     }
 
     exp->drv->request_shutdown(exp);
@@ -272,9 +255,6 @@ void blk_exp_request_shutdown(BlockExport *exp)
     assert(exp->user_owned);
     exp->user_owned = false;
     blk_exp_unref(exp);
-
-out:
-    aio_context_release(aio_context);
 }
 
 /*
diff --git a/block/io.c b/block/io.c
index 7e62fabbf5..8fa7670571 100644
--- a/block/io.c
+++ b/block/io.c
@@ -294,8 +294,6 @@ static void bdrv_co_drain_bh_cb(void *opaque)
     BlockDriverState *bs = data->bs;
 
     if (bs) {
-        AioContext *ctx = bdrv_get_aio_context(bs);
-        aio_context_acquire(ctx);
         bdrv_dec_in_flight(bs);
         if (data->begin) {
             bdrv_do_drained_begin(bs, data->parent, data->poll);
@@ -303,7 +301,6 @@ static void bdrv_co_drain_bh_cb(void *opaque)
             assert(!data->poll);
             bdrv_do_drained_end(bs, data->parent);
         }
-        aio_context_release(ctx);
     } else {
         assert(data->begin);
         bdrv_drain_all_begin();
@@ -320,8 +317,6 @@ static void coroutine_fn bdrv_co_yield_to_drain(BlockDriverState *bs,
 {
     BdrvCoDrainData data;
     Coroutine *self = qemu_coroutine_self();
-    AioContext *ctx = bdrv_get_aio_context(bs);
-    AioContext *co_ctx = qemu_coroutine_get_aio_context(self);
 
     /* Calling bdrv_drain() from a BH ensures the current coroutine yields and
      * other coroutines run if they were queued by aio_co_enter(). */
@@ -340,17 +335,6 @@ static void coroutine_fn bdrv_co_yield_to_drain(BlockDriverState *bs,
         bdrv_inc_in_flight(bs);
     }
 
-    /*
-     * Temporarily drop the lock across yield or we would get deadlocks.
-     * bdrv_co_drain_bh_cb() reaquires the lock as needed.
-     *
-     * When we yield below, the lock for the current context will be
-     * released, so if this is actually the lock that protects bs, don't drop
-     * it a second time.
-     */
-    if (ctx != co_ctx) {
-        aio_context_release(ctx);
-    }
     replay_bh_schedule_oneshot_event(qemu_get_aio_context(),
                                      bdrv_co_drain_bh_cb, &data);
 
@@ -358,11 +342,6 @@ static void coroutine_fn bdrv_co_yield_to_drain(BlockDriverState *bs,
     /* If we are resumed from some other event (such as an aio completion or a
      * timer callback), it is a bug in the caller that should be fixed. */
     assert(data.done);
-
-    /* Reacquire the AioContext of bs if we dropped it */
-    if (ctx != co_ctx) {
-        aio_context_acquire(ctx);
-    }
 }
 
 static void bdrv_do_drained_begin(BlockDriverState *bs, BdrvChild *parent,
@@ -478,13 +457,12 @@ static bool bdrv_drain_all_poll(void)
     GLOBAL_STATE_CODE();
     GRAPH_RDLOCK_GUARD_MAINLOOP();
 
-    /* bdrv_drain_poll() can't make changes to the graph and we are holding the
-     * main AioContext lock, so iterating bdrv_next_all_states() is safe. */
+    /*
+     * bdrv_drain_poll() can't make changes to the graph and we hold the BQL,
+     * so iterating bdrv_next_all_states() is safe.
+     */
     while ((bs = bdrv_next_all_states(bs))) {
-        AioContext *aio_context = bdrv_get_aio_context(bs);
-        aio_context_acquire(aio_context);
         result |= bdrv_drain_poll(bs, NULL, true);
-        aio_context_release(aio_context);
     }
 
     return result;
@@ -525,11 +503,7 @@ void bdrv_drain_all_begin_nopoll(void)
     /* Quiesce all nodes, without polling in-flight requests yet. The graph
      * cannot change during this loop. */
     while ((bs = bdrv_next_all_states(bs))) {
-        AioContext *aio_context = bdrv_get_aio_context(bs);
-
-        aio_context_acquire(aio_context);
         bdrv_do_drained_begin(bs, NULL, false);
-        aio_context_release(aio_context);
     }
 }
 
@@ -588,11 +562,7 @@ void bdrv_drain_all_end(void)
     }
 
     while ((bs = bdrv_next_all_states(bs))) {
-        AioContext *aio_context = bdrv_get_aio_context(bs);
-
-        aio_context_acquire(aio_context);
         bdrv_do_drained_end(bs, NULL);
-        aio_context_release(aio_context);
     }
 
     assert(qemu_get_current_aio_context() == qemu_get_aio_context());
@@ -2368,15 +2338,10 @@ int bdrv_flush_all(void)
     }
 
     for (bs = bdrv_first(&it); bs; bs = bdrv_next(&it)) {
-        AioContext *aio_context = bdrv_get_aio_context(bs);
-        int ret;
-
-        aio_context_acquire(aio_context);
-        ret = bdrv_flush(bs);
+        int ret = bdrv_flush(bs);
         if (ret < 0 && !result) {
             result = ret;
         }
-        aio_context_release(aio_context);
     }
 
     return result;
diff --git a/block/mirror.c b/block/mirror.c
index 51f9e2f17c..5145eb53e1 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -662,7 +662,6 @@ static int mirror_exit_common(Job *job)
     MirrorBlockJob *s = container_of(job, MirrorBlockJob, common.job);
     BlockJob *bjob = &s->common;
     MirrorBDSOpaque *bs_opaque;
-    AioContext *replace_aio_context = NULL;
     BlockDriverState *src;
     BlockDriverState *target_bs;
     BlockDriverState *mirror_top_bs;
@@ -677,7 +676,6 @@ static int mirror_exit_common(Job *job)
     }
     s->prepared = true;
 
-    aio_context_acquire(qemu_get_aio_context());
     bdrv_graph_rdlock_main_loop();
 
     mirror_top_bs = s->mirror_top_bs;
@@ -742,11 +740,6 @@ static int mirror_exit_common(Job *job)
     }
     bdrv_graph_rdunlock_main_loop();
 
-    if (s->to_replace) {
-        replace_aio_context = bdrv_get_aio_context(s->to_replace);
-        aio_context_acquire(replace_aio_context);
-    }
-
     if (s->should_complete && !abort) {
         BlockDriverState *to_replace = s->to_replace ?: src;
         bool ro = bdrv_is_read_only(to_replace);
@@ -785,9 +778,6 @@ static int mirror_exit_common(Job *job)
         error_free(s->replace_blocker);
         bdrv_unref(s->to_replace);
     }
-    if (replace_aio_context) {
-        aio_context_release(replace_aio_context);
-    }
     g_free(s->replaces);
 
     /*
@@ -811,8 +801,6 @@ static int mirror_exit_common(Job *job)
     bdrv_unref(mirror_top_bs);
     bdrv_unref(src);
 
-    aio_context_release(qemu_get_aio_context());
-
     return ret;
 }
 
@@ -1191,24 +1179,17 @@ static void mirror_complete(Job *job, Error **errp)
 
     /* block all operations on to_replace bs */
     if (s->replaces) {
-        AioContext *replace_aio_context;
-
         s->to_replace = bdrv_find_node(s->replaces);
         if (!s->to_replace) {
             error_setg(errp, "Node name '%s' not found", s->replaces);
             return;
         }
 
-        replace_aio_context = bdrv_get_aio_context(s->to_replace);
-        aio_context_acquire(replace_aio_context);
-
         /* TODO Translate this into child freeze system. */
         error_setg(&s->replace_blocker,
                    "block device is in use by block-job-complete");
         bdrv_op_block_all(s->to_replace, s->replace_blocker);
         bdrv_ref(s->to_replace);
-
-        aio_context_release(replace_aio_context);
     }
 
     s->should_complete = true;
diff --git a/block/monitor/bitmap-qmp-cmds.c b/block/monitor/bitmap-qmp-cmds.c
index 70d01a3776..a738e7bbf7 100644
--- a/block/monitor/bitmap-qmp-cmds.c
+++ b/block/monitor/bitmap-qmp-cmds.c
@@ -95,7 +95,6 @@ void qmp_block_dirty_bitmap_add(const char *node, const char *name,
 {
     BlockDriverState *bs;
     BdrvDirtyBitmap *bitmap;
-    AioContext *aio_context;
 
     if (!name || name[0] == '\0') {
         error_setg(errp, "Bitmap name cannot be empty");
@@ -107,14 +106,11 @@ void qmp_block_dirty_bitmap_add(const char *node, const char *name,
         return;
     }
 
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-
     if (has_granularity) {
         if (granularity < 512 || !is_power_of_2(granularity)) {
             error_setg(errp, "Granularity must be power of 2 "
                              "and at least 512");
-            goto out;
+            return;
         }
     } else {
         /* Default to cluster size, if available: */
@@ -132,12 +128,12 @@ void qmp_block_dirty_bitmap_add(const char *node, const char *name,
     if (persistent &&
         !bdrv_can_store_new_dirty_bitmap(bs, name, granularity, errp))
     {
-        goto out;
+        return;
     }
 
     bitmap = bdrv_create_dirty_bitmap(bs, granularity, name, errp);
     if (bitmap == NULL) {
-        goto out;
+        return;
     }
 
     if (disabled) {
@@ -145,9 +141,6 @@ void qmp_block_dirty_bitmap_add(const char *node, const char *name,
     }
 
     bdrv_dirty_bitmap_set_persistence(bitmap, persistent);
-
-out:
-    aio_context_release(aio_context);
 }
 
 BdrvDirtyBitmap *block_dirty_bitmap_remove(const char *node, const char *name,
@@ -157,7 +150,6 @@ BdrvDirtyBitmap *block_dirty_bitmap_remove(const char *node, const char *name,
 {
     BlockDriverState *bs;
     BdrvDirtyBitmap *bitmap;
-    AioContext *aio_context;
 
     GLOBAL_STATE_CODE();
 
@@ -166,19 +158,14 @@ BdrvDirtyBitmap *block_dirty_bitmap_remove(const char *node, const char *name,
         return NULL;
     }
 
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-
     if (bdrv_dirty_bitmap_check(bitmap, BDRV_BITMAP_BUSY | BDRV_BITMAP_RO,
                                 errp)) {
-        aio_context_release(aio_context);
         return NULL;
     }
 
     if (bdrv_dirty_bitmap_get_persistence(bitmap) &&
         bdrv_remove_persistent_dirty_bitmap(bs, name, errp) < 0)
     {
-        aio_context_release(aio_context);
         return NULL;
     }
 
@@ -190,7 +177,6 @@ BdrvDirtyBitmap *block_dirty_bitmap_remove(const char *node, const char *name,
         *bitmap_bs = bs;
     }
 
-    aio_context_release(aio_context);
     return release ? NULL : bitmap;
 }
 
diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c
index c729cbf1eb..bdbb5cb141 100644
--- a/block/monitor/block-hmp-cmds.c
+++ b/block/monitor/block-hmp-cmds.c
@@ -141,7 +141,6 @@ void hmp_drive_del(Monitor *mon, const QDict *qdict)
     const char *id = qdict_get_str(qdict, "id");
     BlockBackend *blk;
     BlockDriverState *bs;
-    AioContext *aio_context;
     Error *local_err = NULL;
 
     GLOBAL_STATE_CODE();
@@ -168,14 +167,10 @@ void hmp_drive_del(Monitor *mon, const QDict *qdict)
         return;
     }
 
-    aio_context = blk_get_aio_context(blk);
-    aio_context_acquire(aio_context);
-
     bs = blk_bs(blk);
     if (bs) {
         if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_DRIVE_DEL, &local_err)) {
             error_report_err(local_err);
-            aio_context_release(aio_context);
             return;
         }
 
@@ -196,8 +191,6 @@ void hmp_drive_del(Monitor *mon, const QDict *qdict)
     } else {
         blk_unref(blk);
     }
-
-    aio_context_release(aio_context);
 }
 
 void hmp_commit(Monitor *mon, const QDict *qdict)
@@ -213,7 +206,6 @@ void hmp_commit(Monitor *mon, const QDict *qdict)
         ret = blk_commit_all();
     } else {
         BlockDriverState *bs;
-        AioContext *aio_context;
 
         blk = blk_by_name(device);
         if (!blk) {
@@ -222,18 +214,13 @@ void hmp_commit(Monitor *mon, const QDict *qdict)
         }
 
         bs = bdrv_skip_implicit_filters(blk_bs(blk));
-        aio_context = bdrv_get_aio_context(bs);
-        aio_context_acquire(aio_context);
 
         if (!blk_is_available(blk)) {
             error_report("Device '%s' has no medium", device);
-            aio_context_release(aio_context);
             return;
         }
 
         ret = bdrv_commit(bs);
-
-        aio_context_release(aio_context);
     }
     if (ret < 0) {
         error_report("'commit' error for '%s': %s", device, strerror(-ret));
@@ -560,7 +547,6 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict)
     BlockBackend *blk = NULL;
     BlockDriverState *bs = NULL;
     BlockBackend *local_blk = NULL;
-    AioContext *ctx = NULL;
     bool qdev = qdict_get_try_bool(qdict, "qdev", false);
     const char *device = qdict_get_str(qdict, "device");
     const char *command = qdict_get_str(qdict, "command");
@@ -582,9 +568,6 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict)
         }
     }
 
-    ctx = blk ? blk_get_aio_context(blk) : bdrv_get_aio_context(bs);
-    aio_context_acquire(ctx);
-
     if (bs) {
         blk = local_blk = blk_new(bdrv_get_aio_context(bs), 0, BLK_PERM_ALL);
         ret = blk_insert_bs(blk, bs, &err);
@@ -622,11 +605,6 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict)
 
 fail:
     blk_unref(local_blk);
-
-    if (ctx) {
-        aio_context_release(ctx);
-    }
-
     hmp_handle_error(mon, err);
 }
 
@@ -882,7 +860,6 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
     int nb_sns, i;
     int total;
     int *global_snapshots;
-    AioContext *aio_context;
 
     typedef struct SnapshotEntry {
         QEMUSnapshotInfo sn;
@@ -909,11 +886,8 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
         error_report_err(err);
         return;
     }
-    aio_context = bdrv_get_aio_context(bs);
 
-    aio_context_acquire(aio_context);
     nb_sns = bdrv_snapshot_list(bs, &sn_tab);
-    aio_context_release(aio_context);
 
     if (nb_sns < 0) {
         monitor_printf(mon, "bdrv_snapshot_list: error %d\n", nb_sns);
@@ -924,9 +898,7 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
         int bs1_nb_sns = 0;
         ImageEntry *ie;
         SnapshotEntry *se;
-        AioContext *ctx = bdrv_get_aio_context(bs1);
 
-        aio_context_acquire(ctx);
         if (bdrv_can_snapshot(bs1)) {
             sn = NULL;
             bs1_nb_sns = bdrv_snapshot_list(bs1, &sn);
@@ -944,7 +916,6 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
             }
             g_free(sn);
         }
-        aio_context_release(ctx);
     }
 
     if (no_snapshot) {
diff --git a/block/qapi-sysemu.c b/block/qapi-sysemu.c
index 1618cd225a..e4282631d2 100644
--- a/block/qapi-sysemu.c
+++ b/block/qapi-sysemu.c
@@ -174,7 +174,6 @@ blockdev_remove_medium(const char *device, const char *id, Error **errp)
 {
     BlockBackend *blk;
     BlockDriverState *bs;
-    AioContext *aio_context;
     bool has_attached_device;
 
     GLOBAL_STATE_CODE();
@@ -204,13 +203,10 @@ blockdev_remove_medium(const char *device, const char *id, Error **errp)
         return;
     }
 
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-
     bdrv_graph_rdlock_main_loop();
     if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_EJECT, errp)) {
         bdrv_graph_rdunlock_main_loop();
-        goto out;
+        return;
     }
     bdrv_graph_rdunlock_main_loop();
 
@@ -223,9 +219,6 @@ blockdev_remove_medium(const char *device, const char *id, Error **errp)
          * value passed here (i.e. false). */
         blk_dev_change_media_cb(blk, false, &error_abort);
     }
-
-out:
-    aio_context_release(aio_context);
 }
 
 void qmp_blockdev_remove_medium(const char *id, Error **errp)
@@ -237,7 +230,6 @@ static void qmp_blockdev_insert_anon_medium(BlockBackend *blk,
                                             BlockDriverState *bs, Error **errp)
 {
     Error *local_err = NULL;
-    AioContext *ctx;
     bool has_device;
     int ret;
 
@@ -259,11 +251,7 @@ static void qmp_blockdev_insert_anon_medium(BlockBackend *blk,
         return;
     }
 
-    ctx = bdrv_get_aio_context(bs);
-    aio_context_acquire(ctx);
     ret = blk_insert_bs(blk, bs, errp);
-    aio_context_release(ctx);
-
     if (ret < 0) {
         return;
     }
@@ -374,9 +362,7 @@ void qmp_blockdev_change_medium(const char *device,
         qdict_put_str(options, "driver", format);
     }
 
-    aio_context_acquire(qemu_get_aio_context());
     medium_bs = bdrv_open(filename, NULL, options, bdrv_flags, errp);
-    aio_context_release(qemu_get_aio_context());
 
     if (!medium_bs) {
         goto fail;
@@ -437,20 +423,16 @@ void qmp_block_set_io_throttle(BlockIOThrottle *arg, Error **errp)
     ThrottleConfig cfg;
     BlockDriverState *bs;
     BlockBackend *blk;
-    AioContext *aio_context;
 
     blk = qmp_get_blk(arg->device, arg->id, errp);
     if (!blk) {
         return;
     }
 
-    aio_context = blk_get_aio_context(blk);
-    aio_context_acquire(aio_context);
-
     bs = blk_bs(blk);
     if (!bs) {
         error_setg(errp, "Device has no medium");
-        goto out;
+        return;
     }
 
     throttle_config_init(&cfg);
@@ -505,7 +487,7 @@ void qmp_block_set_io_throttle(BlockIOThrottle *arg, Error **errp)
     }
 
     if (!throttle_is_valid(&cfg, errp)) {
-        goto out;
+        return;
     }
 
     if (throttle_enabled(&cfg)) {
@@ -522,9 +504,6 @@ void qmp_block_set_io_throttle(BlockIOThrottle *arg, Error **errp)
         /* If all throttling settings are set to 0, disable I/O limits */
         blk_io_limits_disable(blk);
     }
-
-out:
-    aio_context_release(aio_context);
 }
 
 void qmp_block_latency_histogram_set(
diff --git a/block/qapi.c b/block/qapi.c
index 82a30b38fe..9e806fa230 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -234,13 +234,11 @@ bdrv_do_query_node_info(BlockDriverState *bs, BlockNodeInfo *info, Error **errp)
     int ret;
     Error *err = NULL;
 
-    aio_context_acquire(bdrv_get_aio_context(bs));
-
     size = bdrv_getlength(bs);
     if (size < 0) {
         error_setg_errno(errp, -size, "Can't get image size '%s'",
                          bs->exact_filename);
-        goto out;
+        return;
     }
 
     bdrv_refresh_filename(bs);
@@ -265,7 +263,7 @@ bdrv_do_query_node_info(BlockDriverState *bs, BlockNodeInfo *info, Error **errp)
     info->format_specific = bdrv_get_specific_info(bs, &err);
     if (err) {
         error_propagate(errp, err);
-        goto out;
+        return;
     }
     backing_filename = bs->backing_file;
     if (backing_filename[0] != '\0') {
@@ -300,11 +298,8 @@ bdrv_do_query_node_info(BlockDriverState *bs, BlockNodeInfo *info, Error **errp)
         break;
     default:
         error_propagate(errp, err);
-        goto out;
+        return;
     }
-
-out:
-    aio_context_release(bdrv_get_aio_context(bs));
 }
 
 /**
@@ -709,15 +704,10 @@ BlockStatsList *qmp_query_blockstats(bool has_query_nodes,
     /* Just to be safe if query_nodes is not always initialized */
     if (has_query_nodes && query_nodes) {
         for (bs = bdrv_next_node(NULL); bs; bs = bdrv_next_node(bs)) {
-            AioContext *ctx = bdrv_get_aio_context(bs);
-
-            aio_context_acquire(ctx);
             QAPI_LIST_APPEND(tail, bdrv_query_bds_stats(bs, false));
-            aio_context_release(ctx);
         }
     } else {
         for (blk = blk_all_next(NULL); blk; blk = blk_all_next(blk)) {
-            AioContext *ctx = blk_get_aio_context(blk);
             BlockStats *s;
             char *qdev;
 
@@ -725,7 +715,6 @@ BlockStatsList *qmp_query_blockstats(bool has_query_nodes,
                 continue;
             }
 
-            aio_context_acquire(ctx);
             s = bdrv_query_bds_stats(blk_bs(blk), true);
             s->device = g_strdup(blk_name(blk));
 
@@ -737,7 +726,6 @@ BlockStatsList *qmp_query_blockstats(bool has_query_nodes,
             }
 
             bdrv_query_blk_stats(s->stats, blk);
-            aio_context_release(ctx);
 
             QAPI_LIST_APPEND(tail, s);
         }
diff --git a/block/raw-format.c b/block/raw-format.c
index 1111dffd54..ac7e8495f6 100644
--- a/block/raw-format.c
+++ b/block/raw-format.c
@@ -470,7 +470,6 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
                     Error **errp)
 {
     BDRVRawState *s = bs->opaque;
-    AioContext *ctx;
     bool has_size;
     uint64_t offset, size;
     BdrvChildRole file_role;
@@ -522,11 +521,7 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
                 bs->file->bs->filename);
     }
 
-    ctx = bdrv_get_aio_context(bs);
-    aio_context_acquire(ctx);
     ret = raw_apply_options(bs, s, offset, has_size, size, errp);
-    aio_context_release(ctx);
-
     if (ret < 0) {
         return ret;
     }
diff --git a/block/replication.c b/block/replication.c
index 424b537ff7..ca6bd0a720 100644
--- a/block/replication.c
+++ b/block/replication.c
@@ -394,14 +394,7 @@ static void reopen_backing_file(BlockDriverState *bs, bool writable,
     }
 
     if (reopen_queue) {
-        AioContext *ctx = bdrv_get_aio_context(bs);
-        if (ctx != qemu_get_aio_context()) {
-            aio_context_release(ctx);
-        }
         bdrv_reopen_multiple(reopen_queue, errp);
-        if (ctx != qemu_get_aio_context()) {
-            aio_context_acquire(ctx);
-        }
     }
 }
 
@@ -462,14 +455,11 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
     BlockDriverState *top_bs;
     BdrvChild *active_disk, *hidden_disk, *secondary_disk;
     int64_t active_length, hidden_length, disk_length;
-    AioContext *aio_context;
     Error *local_err = NULL;
     BackupPerf perf = { .use_copy_range = true, .max_workers = 1 };
 
     GLOBAL_STATE_CODE();
 
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
     s = bs->opaque;
 
     if (s->stage == BLOCK_REPLICATION_DONE ||
@@ -479,20 +469,17 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
          * Ignore the request because the secondary side of replication
          * doesn't have to do anything anymore.
          */
-        aio_context_release(aio_context);
         return;
     }
 
     if (s->stage != BLOCK_REPLICATION_NONE) {
         error_setg(errp, "Block replication is running or done");
-        aio_context_release(aio_context);
         return;
     }
 
     if (s->mode != mode) {
         error_setg(errp, "The parameter mode's value is invalid, needs %d,"
                    " but got %d", s->mode, mode);
-        aio_context_release(aio_context);
         return;
     }
 
@@ -505,7 +492,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
         if (!active_disk || !active_disk->bs || !active_disk->bs->backing) {
             error_setg(errp, "Active disk doesn't have backing file");
             bdrv_graph_rdunlock_main_loop();
-            aio_context_release(aio_context);
             return;
         }
 
@@ -513,7 +499,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
         if (!hidden_disk->bs || !hidden_disk->bs->backing) {
             error_setg(errp, "Hidden disk doesn't have backing file");
             bdrv_graph_rdunlock_main_loop();
-            aio_context_release(aio_context);
             return;
         }
 
@@ -521,7 +506,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
         if (!secondary_disk->bs || !bdrv_has_blk(secondary_disk->bs)) {
             error_setg(errp, "The secondary disk doesn't have block backend");
             bdrv_graph_rdunlock_main_loop();
-            aio_context_release(aio_context);
             return;
         }
         bdrv_graph_rdunlock_main_loop();
@@ -534,7 +518,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
             active_length != hidden_length || hidden_length != disk_length) {
             error_setg(errp, "Active disk, hidden disk, secondary disk's length"
                        " are not the same");
-            aio_context_release(aio_context);
             return;
         }
 
@@ -546,7 +529,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
             !hidden_disk->bs->drv->bdrv_make_empty) {
             error_setg(errp,
                        "Active disk or hidden disk doesn't support make_empty");
-            aio_context_release(aio_context);
             bdrv_graph_rdunlock_main_loop();
             return;
         }
@@ -556,7 +538,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
         reopen_backing_file(bs, true, &local_err);
         if (local_err) {
             error_propagate(errp, local_err);
-            aio_context_release(aio_context);
             return;
         }
 
@@ -569,7 +550,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
         if (local_err) {
             error_propagate(errp, local_err);
             bdrv_graph_wrunlock();
-            aio_context_release(aio_context);
             return;
         }
 
@@ -580,7 +560,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
         if (local_err) {
             error_propagate(errp, local_err);
             bdrv_graph_wrunlock();
-            aio_context_release(aio_context);
             return;
         }
 
@@ -594,7 +573,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
             error_setg(errp, "No top_bs or it is invalid");
             bdrv_graph_wrunlock();
             reopen_backing_file(bs, false, NULL);
-            aio_context_release(aio_context);
             return;
         }
         bdrv_op_block_all(top_bs, s->blocker);
@@ -612,13 +590,11 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
         if (local_err) {
             error_propagate(errp, local_err);
             backup_job_cleanup(bs);
-            aio_context_release(aio_context);
             return;
         }
         job_start(&s->backup_job->job);
         break;
     default:
-        aio_context_release(aio_context);
         abort();
     }
 
@@ -629,18 +605,12 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode,
     }
 
     s->error = 0;
-    aio_context_release(aio_context);
 }
 
 static void replication_do_checkpoint(ReplicationState *rs, Error **errp)
 {
     BlockDriverState *bs = rs->opaque;
-    BDRVReplicationState *s;
-    AioContext *aio_context;
-
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-    s = bs->opaque;
+    BDRVReplicationState *s = bs->opaque;
 
     if (s->stage == BLOCK_REPLICATION_DONE ||
         s->stage == BLOCK_REPLICATION_FAILOVER) {
@@ -649,38 +619,28 @@ static void replication_do_checkpoint(ReplicationState *rs, Error **errp)
          * Ignore the request because the secondary side of replication
          * doesn't have to do anything anymore.
          */
-        aio_context_release(aio_context);
         return;
     }
 
     if (s->mode == REPLICATION_MODE_SECONDARY) {
         secondary_do_checkpoint(bs, errp);
     }
-    aio_context_release(aio_context);
 }
 
 static void replication_get_error(ReplicationState *rs, Error **errp)
 {
     BlockDriverState *bs = rs->opaque;
-    BDRVReplicationState *s;
-    AioContext *aio_context;
-
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-    s = bs->opaque;
+    BDRVReplicationState *s = bs->opaque;
 
     if (s->stage == BLOCK_REPLICATION_NONE) {
         error_setg(errp, "Block replication is not running");
-        aio_context_release(aio_context);
         return;
     }
 
     if (s->error) {
         error_setg(errp, "I/O error occurred");
-        aio_context_release(aio_context);
         return;
     }
-    aio_context_release(aio_context);
 }
 
 static void replication_done(void *opaque, int ret)
@@ -708,12 +668,7 @@ static void replication_done(void *opaque, int ret)
 static void replication_stop(ReplicationState *rs, bool failover, Error **errp)
 {
     BlockDriverState *bs = rs->opaque;
-    BDRVReplicationState *s;
-    AioContext *aio_context;
-
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-    s = bs->opaque;
+    BDRVReplicationState *s = bs->opaque;
 
     if (s->stage == BLOCK_REPLICATION_DONE ||
         s->stage == BLOCK_REPLICATION_FAILOVER) {
@@ -722,13 +677,11 @@ static void replication_stop(ReplicationState *rs, bool failover, Error **errp)
          * Ignore the request because the secondary side of replication
          * doesn't have to do anything anymore.
          */
-        aio_context_release(aio_context);
         return;
     }
 
     if (s->stage != BLOCK_REPLICATION_RUNNING) {
         error_setg(errp, "Block replication is not running");
-        aio_context_release(aio_context);
         return;
     }
 
@@ -744,15 +697,12 @@ static void replication_stop(ReplicationState *rs, bool failover, Error **errp)
          * disk, secondary disk in backup_job_completed().
          */
         if (s->backup_job) {
-            aio_context_release(aio_context);
             job_cancel_sync(&s->backup_job->job, true);
-            aio_context_acquire(aio_context);
         }
 
         if (!failover) {
             secondary_do_checkpoint(bs, errp);
             s->stage = BLOCK_REPLICATION_DONE;
-            aio_context_release(aio_context);
             return;
         }
 
@@ -765,10 +715,8 @@ static void replication_stop(ReplicationState *rs, bool failover, Error **errp)
         bdrv_graph_rdunlock_main_loop();
         break;
     default:
-        aio_context_release(aio_context);
         abort();
     }
-    aio_context_release(aio_context);
 }
 
 static const char *const replication_strong_runtime_opts[] = {
diff --git a/block/snapshot.c b/block/snapshot.c
index e486d3e205..a28f2b039f 100644
--- a/block/snapshot.c
+++ b/block/snapshot.c
@@ -525,9 +525,7 @@ static bool GRAPH_RDLOCK bdrv_all_snapshots_includes_bs(BlockDriverState *bs)
     return bdrv_has_blk(bs) || QLIST_EMPTY(&bs->parents);
 }
 
-/* Group operations. All block drivers are involved.
- * These functions will properly handle dataplane (take aio_context_acquire
- * when appropriate for appropriate block drivers) */
+/* Group operations. All block drivers are involved. */
 
 bool bdrv_all_can_snapshot(bool has_devices, strList *devices,
                            Error **errp)
@@ -545,14 +543,11 @@ bool bdrv_all_can_snapshot(bool has_devices, strList *devices,
     iterbdrvs = bdrvs;
     while (iterbdrvs) {
         BlockDriverState *bs = iterbdrvs->data;
-        AioContext *ctx = bdrv_get_aio_context(bs);
         bool ok = true;
 
-        aio_context_acquire(ctx);
         if (devices || bdrv_all_snapshots_includes_bs(bs)) {
             ok = bdrv_can_snapshot(bs);
         }
-        aio_context_release(ctx);
         if (!ok) {
             error_setg(errp, "Device '%s' is writable but does not support "
                        "snapshots", bdrv_get_device_or_node_name(bs));
@@ -582,18 +577,15 @@ int bdrv_all_delete_snapshot(const char *name,
     iterbdrvs = bdrvs;
     while (iterbdrvs) {
         BlockDriverState *bs = iterbdrvs->data;
-        AioContext *ctx = bdrv_get_aio_context(bs);
         QEMUSnapshotInfo sn1, *snapshot = &sn1;
         int ret = 0;
 
-        aio_context_acquire(ctx);
         if ((devices || bdrv_all_snapshots_includes_bs(bs)) &&
             bdrv_snapshot_find(bs, snapshot, name) >= 0)
         {
             ret = bdrv_snapshot_delete(bs, snapshot->id_str,
                                        snapshot->name, errp);
         }
-        aio_context_release(ctx);
         if (ret < 0) {
             error_prepend(errp, "Could not delete snapshot '%s' on '%s': ",
                           name, bdrv_get_device_or_node_name(bs));
@@ -628,17 +620,14 @@ int bdrv_all_goto_snapshot(const char *name,
     iterbdrvs = bdrvs;
     while (iterbdrvs) {
         BlockDriverState *bs = iterbdrvs->data;
-        AioContext *ctx = bdrv_get_aio_context(bs);
         bool all_snapshots_includes_bs;
 
-        aio_context_acquire(ctx);
         bdrv_graph_rdlock_main_loop();
         all_snapshots_includes_bs = bdrv_all_snapshots_includes_bs(bs);
         bdrv_graph_rdunlock_main_loop();
 
         ret = (devices || all_snapshots_includes_bs) ?
               bdrv_snapshot_goto(bs, name, errp) : 0;
-        aio_context_release(ctx);
         if (ret < 0) {
             bdrv_graph_rdlock_main_loop();
             error_prepend(errp, "Could not load snapshot '%s' on '%s': ",
@@ -670,15 +659,12 @@ int bdrv_all_has_snapshot(const char *name,
     iterbdrvs = bdrvs;
     while (iterbdrvs) {
         BlockDriverState *bs = iterbdrvs->data;
-        AioContext *ctx = bdrv_get_aio_context(bs);
         QEMUSnapshotInfo sn;
         int ret = 0;
 
-        aio_context_acquire(ctx);
         if (devices || bdrv_all_snapshots_includes_bs(bs)) {
             ret = bdrv_snapshot_find(bs, &sn, name);
         }
-        aio_context_release(ctx);
         if (ret < 0) {
             if (ret == -ENOENT) {
                 return 0;
@@ -715,10 +701,8 @@ int bdrv_all_create_snapshot(QEMUSnapshotInfo *sn,
     iterbdrvs = bdrvs;
     while (iterbdrvs) {
         BlockDriverState *bs = iterbdrvs->data;
-        AioContext *ctx = bdrv_get_aio_context(bs);
         int ret = 0;
 
-        aio_context_acquire(ctx);
         if (bs == vm_state_bs) {
             sn->vm_state_size = vm_state_size;
             ret = bdrv_snapshot_create(bs, sn);
@@ -726,7 +710,6 @@ int bdrv_all_create_snapshot(QEMUSnapshotInfo *sn,
             sn->vm_state_size = 0;
             ret = bdrv_snapshot_create(bs, sn);
         }
-        aio_context_release(ctx);
         if (ret < 0) {
             error_setg(errp, "Could not create snapshot '%s' on '%s'",
                        sn->name, bdrv_get_device_or_node_name(bs));
@@ -757,13 +740,10 @@ BlockDriverState *bdrv_all_find_vmstate_bs(const char *vmstate_bs,
     iterbdrvs = bdrvs;
     while (iterbdrvs) {
         BlockDriverState *bs = iterbdrvs->data;
-        AioContext *ctx = bdrv_get_aio_context(bs);
         bool found = false;
 
-        aio_context_acquire(ctx);
         found = (devices || bdrv_all_snapshots_includes_bs(bs)) &&
             bdrv_can_snapshot(bs);
-        aio_context_release(ctx);
 
         if (vmstate_bs) {
             if (g_str_equal(vmstate_bs,
diff --git a/block/write-threshold.c b/block/write-threshold.c
index 76d8885677..56fe88de81 100644
--- a/block/write-threshold.c
+++ b/block/write-threshold.c
@@ -33,7 +33,6 @@ void qmp_block_set_write_threshold(const char *node_name,
                                    Error **errp)
 {
     BlockDriverState *bs;
-    AioContext *aio_context;
 
     bs = bdrv_find_node(node_name);
     if (!bs) {
@@ -41,12 +40,7 @@ void qmp_block_set_write_threshold(const char *node_name,
         return;
     }
 
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-
     bdrv_write_threshold_set(bs, threshold_bytes);
-
-    aio_context_release(aio_context);
 }
 
 void bdrv_write_threshold_check_write(BlockDriverState *bs, int64_t offset,
diff --git a/blockdev.c b/blockdev.c
index db9cc96510..8a1b28f830 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -662,7 +662,6 @@ err_no_opts:
 /* Takes the ownership of bs_opts */
 BlockDriverState *bds_tree_init(QDict *bs_opts, Error **errp)
 {
-    BlockDriverState *bs;
     int bdrv_flags = 0;
 
     GLOBAL_STATE_CODE();
@@ -677,11 +676,7 @@ BlockDriverState *bds_tree_init(QDict *bs_opts, Error **errp)
         bdrv_flags |= BDRV_O_INACTIVE;
     }
 
-    aio_context_acquire(qemu_get_aio_context());
-    bs = bdrv_open(NULL, NULL, bs_opts, bdrv_flags, errp);
-    aio_context_release(qemu_get_aio_context());
-
-    return bs;
+    return bdrv_open(NULL, NULL, bs_opts, bdrv_flags, errp);
 }
 
 void blockdev_close_all_bdrv_states(void)
@@ -690,11 +685,7 @@ void blockdev_close_all_bdrv_states(void)
 
     GLOBAL_STATE_CODE();
     QTAILQ_FOREACH_SAFE(bs, &monitor_bdrv_states, monitor_list, next_bs) {
-        AioContext *ctx = bdrv_get_aio_context(bs);
-
-        aio_context_acquire(ctx);
         bdrv_unref(bs);
-        aio_context_release(ctx);
     }
 }
 
@@ -1048,7 +1039,6 @@ fail:
 static BlockDriverState *qmp_get_root_bs(const char *name, Error **errp)
 {
     BlockDriverState *bs;
-    AioContext *aio_context;
 
     GRAPH_RDLOCK_GUARD_MAINLOOP();
 
@@ -1062,16 +1052,11 @@ static BlockDriverState *qmp_get_root_bs(const char *name, Error **errp)
         return NULL;
     }
 
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-
     if (!bdrv_is_inserted(bs)) {
         error_setg(errp, "Device has no medium");
         bs = NULL;
     }
 
-    aio_context_release(aio_context);
-
     return bs;
 }
 
@@ -1141,7 +1126,6 @@ SnapshotInfo *qmp_blockdev_snapshot_delete_internal_sync(const char *device,
                                                          Error **errp)
 {
     BlockDriverState *bs;
-    AioContext *aio_context;
     QEMUSnapshotInfo sn;
     Error *local_err = NULL;
     SnapshotInfo *info = NULL;
@@ -1154,39 +1138,35 @@ SnapshotInfo *qmp_blockdev_snapshot_delete_internal_sync(const char *device,
     if (!bs) {
         return NULL;
     }
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
 
     if (!id && !name) {
         error_setg(errp, "Name or id must be provided");
-        goto out_aio_context;
+        return NULL;
     }
 
     if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_INTERNAL_SNAPSHOT_DELETE, errp)) {
-        goto out_aio_context;
+        return NULL;
     }
 
     ret = bdrv_snapshot_find_by_id_and_name(bs, id, name, &sn, &local_err);
     if (local_err) {
         error_propagate(errp, local_err);
-        goto out_aio_context;
+        return NULL;
     }
     if (!ret) {
         error_setg(errp,
                    "Snapshot with id '%s' and name '%s' does not exist on "
                    "device '%s'",
                    STR_OR_NULL(id), STR_OR_NULL(name), device);
-        goto out_aio_context;
+        return NULL;
     }
 
     bdrv_snapshot_delete(bs, id, name, &local_err);
     if (local_err) {
         error_propagate(errp, local_err);
-        goto out_aio_context;
+        return NULL;
     }
 
-    aio_context_release(aio_context);
-
     info = g_new0(SnapshotInfo, 1);
     info->id = g_strdup(sn.id_str);
     info->name = g_strdup(sn.name);
@@ -1201,10 +1181,6 @@ SnapshotInfo *qmp_blockdev_snapshot_delete_internal_sync(const char *device,
     }
 
     return info;
-
-out_aio_context:
-    aio_context_release(aio_context);
-    return NULL;
 }
 
 /* internal snapshot private data */
@@ -1232,7 +1208,6 @@ static void internal_snapshot_action(BlockdevSnapshotInternal *internal,
     bool ret;
     int64_t rt;
     InternalSnapshotState *state = g_new0(InternalSnapshotState, 1);
-    AioContext *aio_context;
     int ret1;
 
     GLOBAL_STATE_CODE();
@@ -1248,33 +1223,30 @@ static void internal_snapshot_action(BlockdevSnapshotInternal *internal,
         return;
     }
 
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-
     state->bs = bs;
 
     /* Paired with .clean() */
     bdrv_drained_begin(bs);
 
     if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_INTERNAL_SNAPSHOT, errp)) {
-        goto out;
+        return;
     }
 
     if (bdrv_is_read_only(bs)) {
         error_setg(errp, "Device '%s' is read only", device);
-        goto out;
+        return;
     }
 
     if (!bdrv_can_snapshot(bs)) {
         error_setg(errp, "Block format '%s' used by device '%s' "
                    "does not support internal snapshots",
                    bs->drv->format_name, device);
-        goto out;
+        return;
     }
 
     if (!strlen(name)) {
         error_setg(errp, "Name is empty");
-        goto out;
+        return;
     }
 
     /* check whether a snapshot with name exist */
@@ -1282,12 +1254,12 @@ static void internal_snapshot_action(BlockdevSnapshotInternal *internal,
                                             &local_err);
     if (local_err) {
         error_propagate(errp, local_err);
-        goto out;
+        return;
     } else if (ret) {
         error_setg(errp,
                    "Snapshot with name '%s' already exists on device '%s'",
                    name, device);
-        goto out;
+        return;
     }
 
     /* 3. take the snapshot */
@@ -1308,14 +1280,11 @@ static void internal_snapshot_action(BlockdevSnapshotInternal *internal,
         error_setg_errno(errp, -ret1,
                          "Failed to create snapshot '%s' on device '%s'",
                          name, device);
-        goto out;
+        return;
     }
 
     /* 4. succeed, mark a snapshot is created */
     state->created = true;
-
-out:
-    aio_context_release(aio_context);
 }
 
 static void internal_snapshot_abort(void *opaque)
@@ -1323,7 +1292,6 @@ static void internal_snapshot_abort(void *opaque)
     InternalSnapshotState *state = opaque;
     BlockDriverState *bs = state->bs;
     QEMUSnapshotInfo *sn = &state->sn;
-    AioContext *aio_context;
     Error *local_error = NULL;
 
     GLOBAL_STATE_CODE();
@@ -1333,9 +1301,6 @@ static void internal_snapshot_abort(void *opaque)
         return;
     }
 
-    aio_context = bdrv_get_aio_context(state->bs);
-    aio_context_acquire(aio_context);
-
     if (bdrv_snapshot_delete(bs, sn->id_str, sn->name, &local_error) < 0) {
         error_reportf_err(local_error,
                           "Failed to delete snapshot with id '%s' and "
@@ -1343,25 +1308,17 @@ static void internal_snapshot_abort(void *opaque)
                           sn->id_str, sn->name,
                           bdrv_get_device_name(bs));
     }
-
-    aio_context_release(aio_context);
 }
 
 static void internal_snapshot_clean(void *opaque)
 {
     g_autofree InternalSnapshotState *state = opaque;
-    AioContext *aio_context;
 
     if (!state->bs) {
         return;
     }
 
-    aio_context = bdrv_get_aio_context(state->bs);
-    aio_context_acquire(aio_context);
-
     bdrv_drained_end(state->bs);
-
-    aio_context_release(aio_context);
 }
 
 /* external snapshot private data */
@@ -1395,7 +1352,6 @@ static void external_snapshot_action(TransactionAction *action,
     /* File name of the new image (for 'blockdev-snapshot-sync') */
     const char *new_image_file;
     ExternalSnapshotState *state = g_new0(ExternalSnapshotState, 1);
-    AioContext *aio_context;
     uint64_t perm, shared;
 
     /* TODO We'll eventually have to take a writer lock in this function */
@@ -1435,26 +1391,23 @@ static void external_snapshot_action(TransactionAction *action,
         return;
     }
 
-    aio_context = bdrv_get_aio_context(state->old_bs);
-    aio_context_acquire(aio_context);
-
     /* Paired with .clean() */
     bdrv_drained_begin(state->old_bs);
 
     if (!bdrv_is_inserted(state->old_bs)) {
         error_setg(errp, QERR_DEVICE_HAS_NO_MEDIUM, device);
-        goto out;
+        return;
     }
 
     if (bdrv_op_is_blocked(state->old_bs,
                            BLOCK_OP_TYPE_EXTERNAL_SNAPSHOT, errp)) {
-        goto out;
+        return;
     }
 
     if (!bdrv_is_read_only(state->old_bs)) {
         if (bdrv_flush(state->old_bs)) {
             error_setg(errp, QERR_IO_ERROR);
-            goto out;
+            return;
         }
     }
 
@@ -1466,13 +1419,13 @@ static void external_snapshot_action(TransactionAction *action,
 
         if (node_name && !snapshot_node_name) {
             error_setg(errp, "New overlay node-name missing");
-            goto out;
+            return;
         }
 
         if (snapshot_node_name &&
             bdrv_lookup_bs(snapshot_node_name, snapshot_node_name, NULL)) {
             error_setg(errp, "New overlay node-name already in use");
-            goto out;
+            return;
         }
 
         flags = state->old_bs->open_flags;
@@ -1485,20 +1438,18 @@ static void external_snapshot_action(TransactionAction *action,
             int64_t size = bdrv_getlength(state->old_bs);
             if (size < 0) {
                 error_setg_errno(errp, -size, "bdrv_getlength failed");
-                goto out;
+                return;
             }
             bdrv_refresh_filename(state->old_bs);
 
-            aio_context_release(aio_context);
             bdrv_img_create(new_image_file, format,
                             state->old_bs->filename,
                             state->old_bs->drv->format_name,
                             NULL, size, flags, false, &local_err);
-            aio_context_acquire(aio_context);
 
             if (local_err) {
                 error_propagate(errp, local_err);
-                goto out;
+                return;
             }
         }
 
@@ -1508,20 +1459,15 @@ static void external_snapshot_action(TransactionAction *action,
         }
         qdict_put_str(options, "driver", format);
     }
-    aio_context_release(aio_context);
 
-    aio_context_acquire(qemu_get_aio_context());
     state->new_bs = bdrv_open(new_image_file, snapshot_ref, options, flags,
                               errp);
-    aio_context_release(qemu_get_aio_context());
 
     /* We will manually add the backing_hd field to the bs later */
     if (!state->new_bs) {
         return;
     }
 
-    aio_context_acquire(aio_context);
-
     /*
      * Allow attaching a backing file to an overlay that's already in use only
      * if the parents don't assume that they are already seeing a valid image.
@@ -1530,41 +1476,34 @@ static void external_snapshot_action(TransactionAction *action,
     bdrv_get_cumulative_perm(state->new_bs, &perm, &shared);
     if (perm & BLK_PERM_CONSISTENT_READ) {
         error_setg(errp, "The overlay is already in use");
-        goto out;
+        return;
     }
 
     if (state->new_bs->drv->is_filter) {
         error_setg(errp, "Filters cannot be used as overlays");
-        goto out;
+        return;
     }
 
     if (bdrv_cow_child(state->new_bs)) {
         error_setg(errp, "The overlay already has a backing image");
-        goto out;
+        return;
     }
 
     if (!state->new_bs->drv->supports_backing) {
         error_setg(errp, "The overlay does not support backing images");
-        goto out;
+        return;
     }
 
     ret = bdrv_append(state->new_bs, state->old_bs, errp);
     if (ret < 0) {
-        goto out;
+        return;
     }
     state->overlay_appended = true;
-
-out:
-    aio_context_release(aio_context);
 }
 
 static void external_snapshot_commit(void *opaque)
 {
     ExternalSnapshotState *state = opaque;
-    AioContext *aio_context;
-
-    aio_context = bdrv_get_aio_context(state->old_bs);
-    aio_context_acquire(aio_context);
 
     /* We don't need (or want) to use the transactional
      * bdrv_reopen_multiple() across all the entries at once, because we
@@ -1572,8 +1511,6 @@ static void external_snapshot_commit(void *opaque)
     if (!qatomic_read(&state->old_bs->copy_on_read)) {
         bdrv_reopen_set_read_only(state->old_bs, true, NULL);
     }
-
-    aio_context_release(aio_context);
 }
 
 static void external_snapshot_abort(void *opaque)
@@ -1586,7 +1523,6 @@ static void external_snapshot_abort(void *opaque)
             int ret;
 
             aio_context = bdrv_get_aio_context(state->old_bs);
-            aio_context_acquire(aio_context);
 
             bdrv_ref(state->old_bs);   /* we can't let bdrv_set_backind_hd()
                                           close state->old_bs; we need it */
@@ -1599,15 +1535,9 @@ static void external_snapshot_abort(void *opaque)
              */
             tmp_context = bdrv_get_aio_context(state->old_bs);
             if (aio_context != tmp_context) {
-                aio_context_release(aio_context);
-                aio_context_acquire(tmp_context);
-
                 ret = bdrv_try_change_aio_context(state->old_bs,
                                                   aio_context, NULL, NULL);
                 assert(ret == 0);
-
-                aio_context_release(tmp_context);
-                aio_context_acquire(aio_context);
             }
 
             bdrv_drained_begin(state->new_bs);
@@ -1617,8 +1547,6 @@ static void external_snapshot_abort(void *opaque)
             bdrv_drained_end(state->new_bs);
 
             bdrv_unref(state->old_bs); /* bdrv_replace_node() ref'ed old_bs */
-
-            aio_context_release(aio_context);
         }
     }
 }
@@ -1626,19 +1554,13 @@ static void external_snapshot_abort(void *opaque)
 static void external_snapshot_clean(void *opaque)
 {
     g_autofree ExternalSnapshotState *state = opaque;
-    AioContext *aio_context;
 
     if (!state->old_bs) {
         return;
     }
 
-    aio_context = bdrv_get_aio_context(state->old_bs);
-    aio_context_acquire(aio_context);
-
     bdrv_drained_end(state->old_bs);
     bdrv_unref(state->new_bs);
-
-    aio_context_release(aio_context);
 }
 
 typedef struct DriveBackupState {
@@ -1670,7 +1592,6 @@ static void drive_backup_action(DriveBackup *backup,
     BlockDriverState *target_bs;
     BlockDriverState *source = NULL;
     AioContext *aio_context;
-    AioContext *old_context;
     const char *format;
     QDict *options;
     Error *local_err = NULL;
@@ -1698,7 +1619,6 @@ static void drive_backup_action(DriveBackup *backup,
     }
 
     aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
 
     state->bs = bs;
     /* Paired with .clean() */
@@ -1713,7 +1633,7 @@ static void drive_backup_action(DriveBackup *backup,
     bdrv_graph_rdlock_main_loop();
     if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_BACKUP_SOURCE, errp)) {
         bdrv_graph_rdunlock_main_loop();
-        goto out;
+        return;
     }
 
     flags = bs->open_flags | BDRV_O_RDWR;
@@ -1744,7 +1664,7 @@ static void drive_backup_action(DriveBackup *backup,
     size = bdrv_getlength(bs);
     if (size < 0) {
         error_setg_errno(errp, -size, "bdrv_getlength failed");
-        goto out;
+        return;
     }
 
     if (backup->mode != NEW_IMAGE_MODE_EXISTING) {
@@ -1770,7 +1690,7 @@ static void drive_backup_action(DriveBackup *backup,
 
     if (local_err) {
         error_propagate(errp, local_err);
-        goto out;
+        return;
     }
 
     options = qdict_new();
@@ -1779,30 +1699,18 @@ static void drive_backup_action(DriveBackup *backup,
     if (format) {
         qdict_put_str(options, "driver", format);
     }
-    aio_context_release(aio_context);
 
-    aio_context_acquire(qemu_get_aio_context());
     target_bs = bdrv_open(backup->target, NULL, options, flags, errp);
-    aio_context_release(qemu_get_aio_context());
-
     if (!target_bs) {
         return;
     }
 
-    /* Honor bdrv_try_change_aio_context() context acquisition requirements. */
-    old_context = bdrv_get_aio_context(target_bs);
-    aio_context_acquire(old_context);
-
     ret = bdrv_try_change_aio_context(target_bs, aio_context, NULL, errp);
     if (ret < 0) {
         bdrv_unref(target_bs);
-        aio_context_release(old_context);
         return;
     }
 
-    aio_context_release(old_context);
-    aio_context_acquire(aio_context);
-
     if (set_backing_hd) {
         if (bdrv_set_backing_hd(target_bs, source, errp) < 0) {
             goto unref;
@@ -1815,22 +1723,14 @@ static void drive_backup_action(DriveBackup *backup,
 
 unref:
     bdrv_unref(target_bs);
-out:
-    aio_context_release(aio_context);
 }
 
 static void drive_backup_commit(void *opaque)
 {
     DriveBackupState *state = opaque;
-    AioContext *aio_context;
-
-    aio_context = bdrv_get_aio_context(state->bs);
-    aio_context_acquire(aio_context);
 
     assert(state->job);
     job_start(&state->job->job);
-
-    aio_context_release(aio_context);
 }
 
 static void drive_backup_abort(void *opaque)
@@ -1845,18 +1745,12 @@ static void drive_backup_abort(void *opaque)
 static void drive_backup_clean(void *opaque)
 {
     g_autofree DriveBackupState *state = opaque;
-    AioContext *aio_context;
 
     if (!state->bs) {
         return;
     }
 
-    aio_context = bdrv_get_aio_context(state->bs);
-    aio_context_acquire(aio_context);
-
     bdrv_drained_end(state->bs);
-
-    aio_context_release(aio_context);
 }
 
 typedef struct BlockdevBackupState {
@@ -1881,7 +1775,6 @@ static void blockdev_backup_action(BlockdevBackup *backup,
     BlockDriverState *bs;
     BlockDriverState *target_bs;
     AioContext *aio_context;
-    AioContext *old_context;
     int ret;
 
     tran_add(tran, &blockdev_backup_drv, state);
@@ -1898,17 +1791,12 @@ static void blockdev_backup_action(BlockdevBackup *backup,
 
     /* Honor bdrv_try_change_aio_context() context acquisition requirements. */
     aio_context = bdrv_get_aio_context(bs);
-    old_context = bdrv_get_aio_context(target_bs);
-    aio_context_acquire(old_context);
 
     ret = bdrv_try_change_aio_context(target_bs, aio_context, NULL, errp);
     if (ret < 0) {
-        aio_context_release(old_context);
         return;
     }
 
-    aio_context_release(old_context);
-    aio_context_acquire(aio_context);
     state->bs = bs;
 
     /* Paired with .clean() */
@@ -1917,22 +1805,14 @@ static void blockdev_backup_action(BlockdevBackup *backup,
     state->job = do_backup_common(qapi_BlockdevBackup_base(backup),
                                   bs, target_bs, aio_context,
                                   block_job_txn, errp);
-
-    aio_context_release(aio_context);
 }
 
 static void blockdev_backup_commit(void *opaque)
 {
     BlockdevBackupState *state = opaque;
-    AioContext *aio_context;
-
-    aio_context = bdrv_get_aio_context(state->bs);
-    aio_context_acquire(aio_context);
 
     assert(state->job);
     job_start(&state->job->job);
-
-    aio_context_release(aio_context);
 }
 
 static void blockdev_backup_abort(void *opaque)
@@ -1947,18 +1827,12 @@ static void blockdev_backup_abort(void *opaque)
 static void blockdev_backup_clean(void *opaque)
 {
     g_autofree BlockdevBackupState *state = opaque;
-    AioContext *aio_context;
 
     if (!state->bs) {
         return;
     }
 
-    aio_context = bdrv_get_aio_context(state->bs);
-    aio_context_acquire(aio_context);
-
     bdrv_drained_end(state->bs);
-
-    aio_context_release(aio_context);
 }
 
 typedef struct BlockDirtyBitmapState {
@@ -2453,7 +2327,6 @@ void qmp_block_stream(const char *job_id, const char *device,
     }
 
     aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
 
     bdrv_graph_rdlock_main_loop();
     if (base) {
@@ -2520,7 +2393,7 @@ void qmp_block_stream(const char *job_id, const char *device,
     if (!base_bs && backing_file) {
         error_setg(errp, "backing file specified, but streaming the "
                          "entire chain");
-        goto out;
+        return;
     }
 
     if (has_auto_finalize && !auto_finalize) {
@@ -2535,18 +2408,14 @@ void qmp_block_stream(const char *job_id, const char *device,
                  filter_node_name, &local_err);
     if (local_err) {
         error_propagate(errp, local_err);
-        goto out;
+        return;
     }
 
     trace_qmp_block_stream(bs);
-
-out:
-    aio_context_release(aio_context);
     return;
 
 out_rdlock:
     bdrv_graph_rdunlock_main_loop();
-    aio_context_release(aio_context);
 }
 
 void qmp_block_commit(const char *job_id, const char *device,
@@ -2605,10 +2474,9 @@ void qmp_block_commit(const char *job_id, const char *device,
     }
 
     aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
 
     if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_COMMIT_SOURCE, errp)) {
-        goto out;
+        return;
     }
 
     /* default top_bs is the active layer */
@@ -2616,16 +2484,16 @@ void qmp_block_commit(const char *job_id, const char *device,
 
     if (top_node && top) {
         error_setg(errp, "'top-node' and 'top' are mutually exclusive");
-        goto out;
+        return;
     } else if (top_node) {
         top_bs = bdrv_lookup_bs(NULL, top_node, errp);
         if (top_bs == NULL) {
-            goto out;
+            return;
         }
         if (!bdrv_chain_contains(bs, top_bs)) {
             error_setg(errp, "'%s' is not in this backing file chain",
                        top_node);
-            goto out;
+            return;
         }
     } else if (top) {
         /* This strcmp() is just a shortcut, there is no need to
@@ -2639,35 +2507,35 @@ void qmp_block_commit(const char *job_id, const char *device,
 
     if (top_bs == NULL) {
         error_setg(errp, "Top image file %s not found", top ? top : "NULL");
-        goto out;
+        return;
     }
 
     assert(bdrv_get_aio_context(top_bs) == aio_context);
 
     if (base_node && base) {
         error_setg(errp, "'base-node' and 'base' are mutually exclusive");
-        goto out;
+        return;
     } else if (base_node) {
         base_bs = bdrv_lookup_bs(NULL, base_node, errp);
         if (base_bs == NULL) {
-            goto out;
+            return;
         }
         if (!bdrv_chain_contains(top_bs, base_bs)) {
             error_setg(errp, "'%s' is not in this backing file chain",
                        base_node);
-            goto out;
+            return;
         }
     } else if (base) {
         base_bs = bdrv_find_backing_image(top_bs, base);
         if (base_bs == NULL) {
             error_setg(errp, "Can't find '%s' in the backing chain", base);
-            goto out;
+            return;
         }
     } else {
         base_bs = bdrv_find_base(top_bs);
         if (base_bs == NULL) {
             error_setg(errp, "There is no backimg image");
-            goto out;
+            return;
         }
     }
 
@@ -2677,14 +2545,14 @@ void qmp_block_commit(const char *job_id, const char *device,
          iter = bdrv_filter_or_cow_bs(iter))
     {
         if (bdrv_op_is_blocked(iter, BLOCK_OP_TYPE_COMMIT_TARGET, errp)) {
-            goto out;
+            return;
         }
     }
 
     /* Do not allow attempts to commit an image into itself */
     if (top_bs == base_bs) {
         error_setg(errp, "cannot commit an image into itself");
-        goto out;
+        return;
     }
 
     /*
@@ -2707,7 +2575,7 @@ void qmp_block_commit(const char *job_id, const char *device,
                 error_setg(errp, "'backing-file' specified, but 'top' has a "
                                  "writer on it");
             }
-            goto out;
+            return;
         }
         if (!job_id) {
             /*
@@ -2723,7 +2591,7 @@ void qmp_block_commit(const char *job_id, const char *device,
     } else {
         BlockDriverState *overlay_bs = bdrv_find_overlay(bs, top_bs);
         if (bdrv_op_is_blocked(overlay_bs, BLOCK_OP_TYPE_COMMIT_TARGET, errp)) {
-            goto out;
+            return;
         }
         commit_start(job_id, bs, base_bs, top_bs, job_flags,
                      speed, on_error, backing_file,
@@ -2731,11 +2599,8 @@ void qmp_block_commit(const char *job_id, const char *device,
     }
     if (local_err != NULL) {
         error_propagate(errp, local_err);
-        goto out;
+        return;
     }
-
-out:
-    aio_context_release(aio_context);
 }
 
 /* Common QMP interface for drive-backup and blockdev-backup */
@@ -2984,8 +2849,6 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
 
     if (replaces) {
         BlockDriverState *to_replace_bs;
-        AioContext *aio_context;
-        AioContext *replace_aio_context;
         int64_t bs_size, replace_size;
 
         bs_size = bdrv_getlength(bs);
@@ -2999,19 +2862,7 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
             return;
         }
 
-        aio_context = bdrv_get_aio_context(bs);
-        replace_aio_context = bdrv_get_aio_context(to_replace_bs);
-        /*
-         * bdrv_getlength() is a co-wrapper and uses AIO_WAIT_WHILE. Be sure not
-         * to acquire the same AioContext twice.
-         */
-        if (replace_aio_context != aio_context) {
-            aio_context_acquire(replace_aio_context);
-        }
         replace_size = bdrv_getlength(to_replace_bs);
-        if (replace_aio_context != aio_context) {
-            aio_context_release(replace_aio_context);
-        }
 
         if (replace_size < 0) {
             error_setg_errno(errp, -replace_size,
@@ -3040,7 +2891,6 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp)
     BlockDriverState *bs;
     BlockDriverState *target_backing_bs, *target_bs;
     AioContext *aio_context;
-    AioContext *old_context;
     BlockMirrorBackingMode backing_mode;
     Error *local_err = NULL;
     QDict *options = NULL;
@@ -3063,7 +2913,6 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp)
     }
 
     aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
 
     if (!arg->has_mode) {
         arg->mode = NEW_IMAGE_MODE_ABSOLUTE_PATHS;
@@ -3087,14 +2936,14 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp)
     size = bdrv_getlength(bs);
     if (size < 0) {
         error_setg_errno(errp, -size, "bdrv_getlength failed");
-        goto out;
+        return;
     }
 
     if (arg->replaces) {
         if (!arg->node_name) {
             error_setg(errp, "a node-name must be provided when replacing a"
                              " named node of the graph");
-            goto out;
+            return;
         }
     }
 
@@ -3142,7 +2991,7 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp)
 
     if (local_err) {
         error_propagate(errp, local_err);
-        goto out;
+        return;
     }
 
     options = qdict_new();
@@ -3152,15 +3001,11 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp)
     if (format) {
         qdict_put_str(options, "driver", format);
     }
-    aio_context_release(aio_context);
 
     /* Mirroring takes care of copy-on-write using the source's backing
      * file.
      */
-    aio_context_acquire(qemu_get_aio_context());
     target_bs = bdrv_open(arg->target, NULL, options, flags, errp);
-    aio_context_release(qemu_get_aio_context());
-
     if (!target_bs) {
         return;
     }
@@ -3172,20 +3017,12 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp)
     bdrv_graph_rdunlock_main_loop();
 
 
-    /* Honor bdrv_try_change_aio_context() context acquisition requirements. */
-    old_context = bdrv_get_aio_context(target_bs);
-    aio_context_acquire(old_context);
-
     ret = bdrv_try_change_aio_context(target_bs, aio_context, NULL, errp);
     if (ret < 0) {
         bdrv_unref(target_bs);
-        aio_context_release(old_context);
         return;
     }
 
-    aio_context_release(old_context);
-    aio_context_acquire(aio_context);
-
     blockdev_mirror_common(arg->job_id, bs, target_bs,
                            arg->replaces, arg->sync,
                            backing_mode, zero_target,
@@ -3201,8 +3038,6 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp)
                            arg->has_auto_dismiss, arg->auto_dismiss,
                            errp);
     bdrv_unref(target_bs);
-out:
-    aio_context_release(aio_context);
 }
 
 void qmp_blockdev_mirror(const char *job_id,
@@ -3225,7 +3060,6 @@ void qmp_blockdev_mirror(const char *job_id,
     BlockDriverState *bs;
     BlockDriverState *target_bs;
     AioContext *aio_context;
-    AioContext *old_context;
     BlockMirrorBackingMode backing_mode = MIRROR_LEAVE_BACKING_CHAIN;
     bool zero_target;
     int ret;
@@ -3242,18 +3076,11 @@ void qmp_blockdev_mirror(const char *job_id,
 
     zero_target = (sync == MIRROR_SYNC_MODE_FULL);
 
-    /* Honor bdrv_try_change_aio_context() context acquisition requirements. */
-    old_context = bdrv_get_aio_context(target_bs);
     aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(old_context);
 
     ret = bdrv_try_change_aio_context(target_bs, aio_context, NULL, errp);
-
-    aio_context_release(old_context);
-    aio_context_acquire(aio_context);
-
     if (ret < 0) {
-        goto out;
+        return;
     }
 
     blockdev_mirror_common(job_id, bs, target_bs,
@@ -3268,8 +3095,6 @@ void qmp_blockdev_mirror(const char *job_id,
                            has_auto_finalize, auto_finalize,
                            has_auto_dismiss, auto_dismiss,
                            errp);
-out:
-    aio_context_release(aio_context);
 }
 
 /*
@@ -3432,7 +3257,6 @@ void qmp_change_backing_file(const char *device,
                              Error **errp)
 {
     BlockDriverState *bs = NULL;
-    AioContext *aio_context;
     BlockDriverState *image_bs = NULL;
     Error *local_err = NULL;
     bool ro;
@@ -3443,9 +3267,6 @@ void qmp_change_backing_file(const char *device,
         return;
     }
 
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
-
     bdrv_graph_rdlock_main_loop();
 
     image_bs = bdrv_lookup_bs(NULL, image_node_name, &local_err);
@@ -3484,7 +3305,7 @@ void qmp_change_backing_file(const char *device,
 
     if (ro) {
         if (bdrv_reopen_set_read_only(image_bs, false, errp) != 0) {
-            goto out;
+            return;
         }
     }
 
@@ -3502,14 +3323,10 @@ void qmp_change_backing_file(const char *device,
     if (ro) {
         bdrv_reopen_set_read_only(image_bs, true, errp);
     }
-
-out:
-    aio_context_release(aio_context);
     return;
 
 out_rdlock:
     bdrv_graph_rdunlock_main_loop();
-    aio_context_release(aio_context);
 }
 
 void qmp_blockdev_add(BlockdevOptions *options, Error **errp)
@@ -3549,7 +3366,6 @@ void qmp_blockdev_reopen(BlockdevOptionsList *reopen_list, Error **errp)
     for (; reopen_list != NULL; reopen_list = reopen_list->next) {
         BlockdevOptions *options = reopen_list->value;
         BlockDriverState *bs;
-        AioContext *ctx;
         QObject *obj;
         Visitor *v;
         QDict *qdict;
@@ -3577,12 +3393,7 @@ void qmp_blockdev_reopen(BlockdevOptionsList *reopen_list, Error **errp)
 
         qdict_flatten(qdict);
 
-        ctx = bdrv_get_aio_context(bs);
-        aio_context_acquire(ctx);
-
         queue = bdrv_reopen_queue(queue, bs, qdict, false);
-
-        aio_context_release(ctx);
     }
 
     /* Perform the reopen operation */
@@ -3595,7 +3406,6 @@ fail:
 
 void qmp_blockdev_del(const char *node_name, Error **errp)
 {
-    AioContext *aio_context;
     BlockDriverState *bs;
 
     GLOBAL_STATE_CODE();
@@ -3610,30 +3420,25 @@ void qmp_blockdev_del(const char *node_name, Error **errp)
         error_setg(errp, "Node %s is in use", node_name);
         return;
     }
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
 
     if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_DRIVE_DEL, errp)) {
-        goto out;
+        return;
     }
 
     if (!QTAILQ_IN_USE(bs, monitor_list)) {
         error_setg(errp, "Node %s is not owned by the monitor",
                    bs->node_name);
-        goto out;
+        return;
     }
 
     if (bs->refcnt > 1) {
         error_setg(errp, "Block device %s is in use",
                    bdrv_get_device_or_node_name(bs));
-        goto out;
+        return;
     }
 
     QTAILQ_REMOVE(&monitor_bdrv_states, bs, monitor_list);
     bdrv_unref(bs);
-
-out:
-    aio_context_release(aio_context);
 }
 
 static BdrvChild * GRAPH_RDLOCK
@@ -3723,7 +3528,6 @@ BlockJobInfoList *qmp_query_block_jobs(Error **errp)
 void qmp_x_blockdev_set_iothread(const char *node_name, StrOrNull *iothread,
                                  bool has_force, bool force, Error **errp)
 {
-    AioContext *old_context;
     AioContext *new_context;
     BlockDriverState *bs;
 
@@ -3755,12 +3559,7 @@ void qmp_x_blockdev_set_iothread(const char *node_name, StrOrNull *iothread,
         new_context = qemu_get_aio_context();
     }
 
-    old_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(old_context);
-
     bdrv_try_change_aio_context(bs, new_context, NULL, errp);
-
-    aio_context_release(old_context);
 }
 
 QemuOptsList qemu_common_drive_opts = {
diff --git a/blockjob.c b/blockjob.c
index 7310412313..d5f29e14af 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -198,9 +198,7 @@ void block_job_remove_all_bdrv(BlockJob *job)
      * one to make sure that such a concurrent access does not attempt
      * to process an already freed BdrvChild.
      */
-    aio_context_release(job->job.aio_context);
     bdrv_graph_wrlock();
-    aio_context_acquire(job->job.aio_context);
     while (job->nodes) {
         GSList *l = job->nodes;
         BdrvChild *c = l->data;
@@ -234,28 +232,12 @@ int block_job_add_bdrv(BlockJob *job, const char *name, BlockDriverState *bs,
                        uint64_t perm, uint64_t shared_perm, Error **errp)
 {
     BdrvChild *c;
-    AioContext *ctx = bdrv_get_aio_context(bs);
-    bool need_context_ops;
     GLOBAL_STATE_CODE();
 
     bdrv_ref(bs);
 
-    need_context_ops = ctx != job->job.aio_context;
-
-    if (need_context_ops) {
-        if (job->job.aio_context != qemu_get_aio_context()) {
-            aio_context_release(job->job.aio_context);
-        }
-        aio_context_acquire(ctx);
-    }
     c = bdrv_root_attach_child(bs, name, &child_job, 0, perm, shared_perm, job,
                                errp);
-    if (need_context_ops) {
-        aio_context_release(ctx);
-        if (job->job.aio_context != qemu_get_aio_context()) {
-            aio_context_acquire(job->job.aio_context);
-        }
-    }
     if (c == NULL) {
         return -EPERM;
     }
diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
index f83bb0f116..7bbbd981ad 100644
--- a/hw/block/dataplane/virtio-blk.c
+++ b/hw/block/dataplane/virtio-blk.c
@@ -124,7 +124,6 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
     VirtIOBlockDataPlane *s = vblk->dataplane;
     BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vblk)));
     VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
-    AioContext *old_context;
     unsigned i;
     unsigned nvqs = s->conf->num_queues;
     Error *local_err = NULL;
@@ -178,10 +177,7 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
 
     trace_virtio_blk_data_plane_start(s);
 
-    old_context = blk_get_aio_context(s->conf->conf.blk);
-    aio_context_acquire(old_context);
     r = blk_set_aio_context(s->conf->conf.blk, s->ctx, &local_err);
-    aio_context_release(old_context);
     if (r < 0) {
         error_report_err(local_err);
         goto fail_aio_context;
@@ -208,13 +204,11 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
 
     /* Get this show started by hooking up our callbacks */
     if (!blk_in_drain(s->conf->conf.blk)) {
-        aio_context_acquire(s->ctx);
         for (i = 0; i < nvqs; i++) {
             VirtQueue *vq = virtio_get_queue(s->vdev, i);
 
             virtio_queue_aio_attach_host_notifier(vq, s->ctx);
         }
-        aio_context_release(s->ctx);
     }
     return 0;
 
@@ -314,8 +308,6 @@ void virtio_blk_data_plane_stop(VirtIODevice *vdev)
      */
     vblk->dataplane_started = false;
 
-    aio_context_acquire(s->ctx);
-
     /* Wait for virtio_blk_dma_restart_bh() and in flight I/O to complete */
     blk_drain(s->conf->conf.blk);
 
@@ -325,8 +317,6 @@ void virtio_blk_data_plane_stop(VirtIODevice *vdev)
      */
     blk_set_aio_context(s->conf->conf.blk, qemu_get_aio_context(), NULL);
 
-    aio_context_release(s->ctx);
-
     /* Clean up guest notifier (irq) */
     k->set_guest_notifiers(qbus->parent, nvqs, false);
 
diff --git a/hw/block/dataplane/xen-block.c b/hw/block/dataplane/xen-block.c
index c4bb28c66f..98501e6885 100644
--- a/hw/block/dataplane/xen-block.c
+++ b/hw/block/dataplane/xen-block.c
@@ -260,8 +260,6 @@ static void xen_block_complete_aio(void *opaque, int ret)
     XenBlockRequest *request = opaque;
     XenBlockDataPlane *dataplane = request->dataplane;
 
-    aio_context_acquire(dataplane->ctx);
-
     if (ret != 0) {
         error_report("%s I/O error",
                      request->req.operation == BLKIF_OP_READ ?
@@ -273,10 +271,10 @@ static void xen_block_complete_aio(void *opaque, int ret)
     if (request->presync) {
         request->presync = 0;
         xen_block_do_aio(request);
-        goto done;
+        return;
     }
     if (request->aio_inflight > 0) {
-        goto done;
+        return;
     }
 
     switch (request->req.operation) {
@@ -318,9 +316,6 @@ static void xen_block_complete_aio(void *opaque, int ret)
     if (dataplane->more_work) {
         qemu_bh_schedule(dataplane->bh);
     }
-
-done:
-    aio_context_release(dataplane->ctx);
 }
 
 static bool xen_block_split_discard(XenBlockRequest *request,
@@ -601,9 +596,7 @@ static void xen_block_dataplane_bh(void *opaque)
 {
     XenBlockDataPlane *dataplane = opaque;
 
-    aio_context_acquire(dataplane->ctx);
     xen_block_handle_requests(dataplane);
-    aio_context_release(dataplane->ctx);
 }
 
 static bool xen_block_dataplane_event(void *opaque)
@@ -703,10 +696,8 @@ void xen_block_dataplane_stop(XenBlockDataPlane *dataplane)
         xen_block_dataplane_detach(dataplane);
     }
 
-    aio_context_acquire(dataplane->ctx);
     /* Xen doesn't have multiple users for nodes, so this can't fail */
     blk_set_aio_context(dataplane->blk, qemu_get_aio_context(), &error_abort);
-    aio_context_release(dataplane->ctx);
 
     /*
      * Now that the context has been moved onto the main thread, cancel
@@ -752,7 +743,6 @@ void xen_block_dataplane_start(XenBlockDataPlane *dataplane,
 {
     ERRP_GUARD();
     XenDevice *xendev = dataplane->xendev;
-    AioContext *old_context;
     unsigned int ring_size;
     unsigned int i;
 
@@ -836,11 +826,8 @@ void xen_block_dataplane_start(XenBlockDataPlane *dataplane,
         goto stop;
     }
 
-    old_context = blk_get_aio_context(dataplane->blk);
-    aio_context_acquire(old_context);
     /* If other users keep the BlockBackend in the iothread, that's ok */
     blk_set_aio_context(dataplane->blk, dataplane->ctx, NULL);
-    aio_context_release(old_context);
 
     if (!blk_in_drain(dataplane->blk)) {
         xen_block_dataplane_attach(dataplane);
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index a1f8e15522..5e49c0625f 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -102,7 +102,6 @@ static void virtio_blk_rw_complete(void *opaque, int ret)
     VirtIOBlock *s = next->dev;
     VirtIODevice *vdev = VIRTIO_DEVICE(s);
 
-    aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
     while (next) {
         VirtIOBlockReq *req = next;
         next = req->mr_next;
@@ -135,7 +134,6 @@ static void virtio_blk_rw_complete(void *opaque, int ret)
         block_acct_done(blk_get_stats(s->blk), &req->acct);
         virtio_blk_free_request(req);
     }
-    aio_context_release(blk_get_aio_context(s->conf.conf.blk));
 }
 
 static void virtio_blk_flush_complete(void *opaque, int ret)
@@ -143,19 +141,15 @@ static void virtio_blk_flush_complete(void *opaque, int ret)
     VirtIOBlockReq *req = opaque;
     VirtIOBlock *s = req->dev;
 
-    aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
     if (ret) {
         if (virtio_blk_handle_rw_error(req, -ret, 0, true)) {
-            goto out;
+            return;
         }
     }
 
     virtio_blk_req_complete(req, VIRTIO_BLK_S_OK);
     block_acct_done(blk_get_stats(s->blk), &req->acct);
     virtio_blk_free_request(req);
-
-out:
-    aio_context_release(blk_get_aio_context(s->conf.conf.blk));
 }
 
 static void virtio_blk_discard_write_zeroes_complete(void *opaque, int ret)
@@ -165,10 +159,9 @@ static void virtio_blk_discard_write_zeroes_complete(void *opaque, int ret)
     bool is_write_zeroes = (virtio_ldl_p(VIRTIO_DEVICE(s), &req->out.type) &
                             ~VIRTIO_BLK_T_BARRIER) == VIRTIO_BLK_T_WRITE_ZEROES;
 
-    aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
     if (ret) {
         if (virtio_blk_handle_rw_error(req, -ret, false, is_write_zeroes)) {
-            goto out;
+            return;
         }
     }
 
@@ -177,9 +170,6 @@ static void virtio_blk_discard_write_zeroes_complete(void *opaque, int ret)
         block_acct_done(blk_get_stats(s->blk), &req->acct);
     }
     virtio_blk_free_request(req);
-
-out:
-    aio_context_release(blk_get_aio_context(s->conf.conf.blk));
 }
 
 #ifdef __linux__
@@ -226,10 +216,8 @@ static void virtio_blk_ioctl_complete(void *opaque, int status)
     virtio_stl_p(vdev, &scsi->data_len, hdr->dxfer_len);
 
 out:
-    aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
     virtio_blk_req_complete(req, status);
     virtio_blk_free_request(req);
-    aio_context_release(blk_get_aio_context(s->conf.conf.blk));
     g_free(ioctl_req);
 }
 
@@ -669,7 +657,6 @@ static void virtio_blk_zone_report_complete(void *opaque, int ret)
 {
     ZoneCmdData *data = opaque;
     VirtIOBlockReq *req = data->req;
-    VirtIOBlock *s = req->dev;
     VirtIODevice *vdev = VIRTIO_DEVICE(req->dev);
     struct iovec *in_iov = data->in_iov;
     unsigned in_num = data->in_num;
@@ -760,10 +747,8 @@ static void virtio_blk_zone_report_complete(void *opaque, int ret)
     }
 
 out:
-    aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
     virtio_blk_req_complete(req, err_status);
     virtio_blk_free_request(req);
-    aio_context_release(blk_get_aio_context(s->conf.conf.blk));
     g_free(data->zone_report_data.zones);
     g_free(data);
 }
@@ -826,10 +811,8 @@ static void virtio_blk_zone_mgmt_complete(void *opaque, int ret)
         err_status = VIRTIO_BLK_S_ZONE_INVALID_CMD;
     }
 
-    aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
     virtio_blk_req_complete(req, err_status);
     virtio_blk_free_request(req);
-    aio_context_release(blk_get_aio_context(s->conf.conf.blk));
 }
 
 static int virtio_blk_handle_zone_mgmt(VirtIOBlockReq *req, BlockZoneOp op)
@@ -879,7 +862,6 @@ static void virtio_blk_zone_append_complete(void *opaque, int ret)
 {
     ZoneCmdData *data = opaque;
     VirtIOBlockReq *req = data->req;
-    VirtIOBlock *s = req->dev;
     VirtIODevice *vdev = VIRTIO_DEVICE(req->dev);
     int64_t append_sector, n;
     uint8_t err_status = VIRTIO_BLK_S_OK;
@@ -902,10 +884,8 @@ static void virtio_blk_zone_append_complete(void *opaque, int ret)
     trace_virtio_blk_zone_append_complete(vdev, req, append_sector, ret);
 
 out:
-    aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
     virtio_blk_req_complete(req, err_status);
     virtio_blk_free_request(req);
-    aio_context_release(blk_get_aio_context(s->conf.conf.blk));
     g_free(data);
 }
 
@@ -941,10 +921,8 @@ static int virtio_blk_handle_zone_append(VirtIOBlockReq *req,
     return 0;
 
 out:
-    aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
     virtio_blk_req_complete(req, err_status);
     virtio_blk_free_request(req);
-    aio_context_release(blk_get_aio_context(s->conf.conf.blk));
     return err_status;
 }
 
@@ -1134,7 +1112,6 @@ void virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq)
     MultiReqBuffer mrb = {};
     bool suppress_notifications = virtio_queue_get_notification(vq);
 
-    aio_context_acquire(blk_get_aio_context(s->blk));
     defer_call_begin();
 
     do {
@@ -1160,7 +1137,6 @@ void virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq)
     }
 
     defer_call_end();
-    aio_context_release(blk_get_aio_context(s->blk));
 }
 
 static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq)
@@ -1188,7 +1164,6 @@ static void virtio_blk_dma_restart_bh(void *opaque)
 
     s->rq = NULL;
 
-    aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
     while (req) {
         VirtIOBlockReq *next = req->next;
         if (virtio_blk_handle_request(req, &mrb)) {
@@ -1212,8 +1187,6 @@ static void virtio_blk_dma_restart_bh(void *opaque)
 
     /* Paired with inc in virtio_blk_dma_restart_cb() */
     blk_dec_in_flight(s->conf.conf.blk);
-
-    aio_context_release(blk_get_aio_context(s->conf.conf.blk));
 }
 
 static void virtio_blk_dma_restart_cb(void *opaque, bool running,
@@ -1235,11 +1208,8 @@ static void virtio_blk_dma_restart_cb(void *opaque, bool running,
 static void virtio_blk_reset(VirtIODevice *vdev)
 {
     VirtIOBlock *s = VIRTIO_BLK(vdev);
-    AioContext *ctx;
     VirtIOBlockReq *req;
 
-    ctx = blk_get_aio_context(s->blk);
-    aio_context_acquire(ctx);
     blk_drain(s->blk);
 
     /* We drop queued requests after blk_drain() because blk_drain() itself can
@@ -1251,8 +1221,6 @@ static void virtio_blk_reset(VirtIODevice *vdev)
         virtio_blk_free_request(req);
     }
 
-    aio_context_release(ctx);
-
     assert(!s->dataplane_started);
     blk_set_enable_write_cache(s->blk, s->original_wce);
 }
@@ -1268,10 +1236,6 @@ static void virtio_blk_update_config(VirtIODevice *vdev, uint8_t *config)
     uint64_t capacity;
     int64_t length;
     int blk_size = conf->logical_block_size;
-    AioContext *ctx;
-
-    ctx = blk_get_aio_context(s->blk);
-    aio_context_acquire(ctx);
 
     blk_get_geometry(s->blk, &capacity);
     memset(&blkcfg, 0, sizeof(blkcfg));
@@ -1295,7 +1259,6 @@ static void virtio_blk_update_config(VirtIODevice *vdev, uint8_t *config)
      * per track (cylinder).
      */
     length = blk_getlength(s->blk);
-    aio_context_release(ctx);
     if (length > 0 && length / conf->heads / conf->secs % blk_size) {
         blkcfg.geometry.sectors = conf->secs & ~s->sector_mask;
     } else {
@@ -1362,9 +1325,7 @@ static void virtio_blk_set_config(VirtIODevice *vdev, const uint8_t *config)
 
     memcpy(&blkcfg, config, s->config_size);
 
-    aio_context_acquire(blk_get_aio_context(s->blk));
     blk_set_enable_write_cache(s->blk, blkcfg.wce != 0);
-    aio_context_release(blk_get_aio_context(s->blk));
 }
 
 static uint64_t virtio_blk_get_features(VirtIODevice *vdev, uint64_t features,
@@ -1432,11 +1393,9 @@ static void virtio_blk_set_status(VirtIODevice *vdev, uint8_t status)
      * s->blk would erroneously be placed in writethrough mode.
      */
     if (!virtio_vdev_has_feature(vdev, VIRTIO_BLK_F_CONFIG_WCE)) {
-        aio_context_acquire(blk_get_aio_context(s->blk));
         blk_set_enable_write_cache(s->blk,
                                    virtio_vdev_has_feature(vdev,
                                                            VIRTIO_BLK_F_WCE));
-        aio_context_release(blk_get_aio_context(s->blk));
     }
 }
 
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 1473ab3d5e..73cced4626 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -120,9 +120,7 @@ static void set_drive_helper(Object *obj, Visitor *v, const char *name,
                        "node");
         }
 
-        aio_context_acquire(ctx);
         blk_replace_bs(blk, bs, errp);
-        aio_context_release(ctx);
         return;
     }
 
@@ -148,10 +146,7 @@ static void set_drive_helper(Object *obj, Visitor *v, const char *name,
                           0, BLK_PERM_ALL);
             blk_created = true;
 
-            aio_context_acquire(ctx);
             ret = blk_insert_bs(blk, bs, errp);
-            aio_context_release(ctx);
-
             if (ret < 0) {
                 goto fail;
             }
@@ -207,12 +202,8 @@ static void release_drive(Object *obj, const char *name, void *opaque)
     BlockBackend **ptr = object_field_prop_ptr(obj, prop);
 
     if (*ptr) {
-        AioContext *ctx = blk_get_aio_context(*ptr);
-
-        aio_context_acquire(ctx);
         blockdev_auto_del(*ptr);
         blk_detach_dev(*ptr, dev);
-        aio_context_release(ctx);
     }
 }
 
diff --git a/job.c b/job.c
index 99a2e54b54..660ce22c56 100644
--- a/job.c
+++ b/job.c
@@ -464,12 +464,8 @@ void job_unref_locked(Job *job)
         assert(!job->txn);
 
         if (job->driver->free) {
-            AioContext *aio_context = job->aio_context;
             job_unlock();
-            /* FIXME: aiocontext lock is required because cb calls blk_unref */
-            aio_context_acquire(aio_context);
             job->driver->free(job);
-            aio_context_release(aio_context);
             job_lock();
         }
 
@@ -840,12 +836,10 @@ static void job_clean(Job *job)
 
 /*
  * Called with job_mutex held, but releases it temporarily.
- * Takes AioContext lock internally to invoke a job->driver callback.
  */
 static int job_finalize_single_locked(Job *job)
 {
     int job_ret;
-    AioContext *ctx = job->aio_context;
 
     assert(job_is_completed_locked(job));
 
@@ -854,7 +848,6 @@ static int job_finalize_single_locked(Job *job)
 
     job_ret = job->ret;
     job_unlock();
-    aio_context_acquire(ctx);
 
     if (!job_ret) {
         job_commit(job);
@@ -867,7 +860,6 @@ static int job_finalize_single_locked(Job *job)
         job->cb(job->opaque, job_ret);
     }
 
-    aio_context_release(ctx);
     job_lock();
 
     /* Emit events only if we actually started */
@@ -886,17 +878,13 @@ static int job_finalize_single_locked(Job *job)
 
 /*
  * Called with job_mutex held, but releases it temporarily.
- * Takes AioContext lock internally to invoke a job->driver callback.
  */
 static void job_cancel_async_locked(Job *job, bool force)
 {
-    AioContext *ctx = job->aio_context;
     GLOBAL_STATE_CODE();
     if (job->driver->cancel) {
         job_unlock();
-        aio_context_acquire(ctx);
         force = job->driver->cancel(job, force);
-        aio_context_release(ctx);
         job_lock();
     } else {
         /* No .cancel() means the job will behave as if force-cancelled */
@@ -931,7 +919,6 @@ static void job_cancel_async_locked(Job *job, bool force)
 
 /*
  * Called with job_mutex held, but releases it temporarily.
- * Takes AioContext lock internally to invoke a job->driver callback.
  */
 static void job_completed_txn_abort_locked(Job *job)
 {
@@ -979,15 +966,12 @@ static void job_completed_txn_abort_locked(Job *job)
 static int job_prepare_locked(Job *job)
 {
     int ret;
-    AioContext *ctx = job->aio_context;
 
     GLOBAL_STATE_CODE();
 
     if (job->ret == 0 && job->driver->prepare) {
         job_unlock();
-        aio_context_acquire(ctx);
         ret = job->driver->prepare(job);
-        aio_context_release(ctx);
         job_lock();
         job->ret = ret;
         job_update_rc_locked(job);
diff --git a/migration/block.c b/migration/block.c
index a15f9bddcb..2bcfcbfdf6 100644
--- a/migration/block.c
+++ b/migration/block.c
@@ -66,7 +66,7 @@ typedef struct BlkMigDevState {
     /* Protected by block migration lock.  */
     int64_t completed_sectors;
 
-    /* During migration this is protected by iothread lock / AioContext.
+    /* During migration this is protected by bdrv_dirty_bitmap_lock().
      * Allocation and free happen during setup and cleanup respectively.
      */
     BdrvDirtyBitmap *dirty_bitmap;
@@ -101,7 +101,7 @@ typedef struct BlkMigState {
     int prev_progress;
     int bulk_completed;
 
-    /* Lock must be taken _inside_ the iothread lock and any AioContexts.  */
+    /* Lock must be taken _inside_ the iothread lock.  */
     QemuMutex lock;
 } BlkMigState;
 
@@ -270,7 +270,6 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
 
     if (bmds->shared_base) {
         qemu_mutex_lock_iothread();
-        aio_context_acquire(blk_get_aio_context(bb));
         /* Skip unallocated sectors; intentionally treats failure or
          * partial sector as an allocated sector */
         while (cur_sector < total_sectors &&
@@ -281,7 +280,6 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
             }
             cur_sector += count >> BDRV_SECTOR_BITS;
         }
-        aio_context_release(blk_get_aio_context(bb));
         qemu_mutex_unlock_iothread();
     }
 
@@ -313,22 +311,10 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
     block_mig_state.submitted++;
     blk_mig_unlock();
 
-    /* We do not know if bs is under the main thread (and thus does
-     * not acquire the AioContext when doing AIO) or rather under
-     * dataplane.  Thus acquire both the iothread mutex and the
-     * AioContext.
-     *
-     * This is ugly and will disappear when we make bdrv_* thread-safe,
-     * without the need to acquire the AioContext.
-     */
-    qemu_mutex_lock_iothread();
-    aio_context_acquire(blk_get_aio_context(bmds->blk));
     bdrv_reset_dirty_bitmap(bmds->dirty_bitmap, cur_sector * BDRV_SECTOR_SIZE,
                             nr_sectors * BDRV_SECTOR_SIZE);
     blk->aiocb = blk_aio_preadv(bb, cur_sector * BDRV_SECTOR_SIZE, &blk->qiov,
                                 0, blk_mig_read_cb, blk);
-    aio_context_release(blk_get_aio_context(bmds->blk));
-    qemu_mutex_unlock_iothread();
 
     bmds->cur_sector = cur_sector + nr_sectors;
     return (bmds->cur_sector >= total_sectors);
@@ -512,7 +498,7 @@ static void blk_mig_reset_dirty_cursor(void)
     }
 }
 
-/* Called with iothread lock and AioContext taken.  */
+/* Called with iothread lock taken.  */
 
 static int mig_save_device_dirty(QEMUFile *f, BlkMigDevState *bmds,
                                  int is_async)
@@ -606,9 +592,7 @@ static int blk_mig_save_dirty_block(QEMUFile *f, int is_async)
     int ret = 1;
 
     QSIMPLEQ_FOREACH(bmds, &block_mig_state.bmds_list, entry) {
-        aio_context_acquire(blk_get_aio_context(bmds->blk));
         ret = mig_save_device_dirty(f, bmds, is_async);
-        aio_context_release(blk_get_aio_context(bmds->blk));
         if (ret <= 0) {
             break;
         }
@@ -666,9 +650,9 @@ static int64_t get_remaining_dirty(void)
     int64_t dirty = 0;
 
     QSIMPLEQ_FOREACH(bmds, &block_mig_state.bmds_list, entry) {
-        aio_context_acquire(blk_get_aio_context(bmds->blk));
+        bdrv_dirty_bitmap_lock(bmds->dirty_bitmap);
         dirty += bdrv_get_dirty_count(bmds->dirty_bitmap);
-        aio_context_release(blk_get_aio_context(bmds->blk));
+        bdrv_dirty_bitmap_unlock(bmds->dirty_bitmap);
     }
 
     return dirty;
@@ -681,7 +665,6 @@ static void block_migration_cleanup_bmds(void)
 {
     BlkMigDevState *bmds;
     BlockDriverState *bs;
-    AioContext *ctx;
 
     unset_dirty_tracking();
 
@@ -693,13 +676,7 @@ static void block_migration_cleanup_bmds(void)
             bdrv_op_unblock_all(bs, bmds->blocker);
         }
         error_free(bmds->blocker);
-
-        /* Save ctx, because bmds->blk can disappear during blk_unref.  */
-        ctx = blk_get_aio_context(bmds->blk);
-        aio_context_acquire(ctx);
         blk_unref(bmds->blk);
-        aio_context_release(ctx);
-
         g_free(bmds->blk_name);
         g_free(bmds->aio_bitmap);
         g_free(bmds);
diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
index 86ae832176..99710c8ffb 100644
--- a/migration/migration-hmp-cmds.c
+++ b/migration/migration-hmp-cmds.c
@@ -852,14 +852,11 @@ static void vm_completion(ReadLineState *rs, const char *str)
 
     for (bs = bdrv_first(&it); bs; bs = bdrv_next(&it)) {
         SnapshotInfoList *snapshots, *snapshot;
-        AioContext *ctx = bdrv_get_aio_context(bs);
         bool ok = false;
 
-        aio_context_acquire(ctx);
         if (bdrv_can_snapshot(bs)) {
             ok = bdrv_query_snapshot_info_list(bs, &snapshots, NULL) == 0;
         }
-        aio_context_release(ctx);
         if (!ok) {
             continue;
         }
diff --git a/migration/savevm.c b/migration/savevm.c
index eec5503a42..1b9ab7b8ee 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -3049,7 +3049,6 @@ bool save_snapshot(const char *name, bool overwrite, const char *vmstate,
     int saved_vm_running;
     uint64_t vm_state_size;
     g_autoptr(GDateTime) now = g_date_time_new_now_local();
-    AioContext *aio_context;
 
     GLOBAL_STATE_CODE();
 
@@ -3092,7 +3091,6 @@ bool save_snapshot(const char *name, bool overwrite, const char *vmstate,
     if (bs == NULL) {
         return false;
     }
-    aio_context = bdrv_get_aio_context(bs);
 
     saved_vm_running = runstate_is_running();
 
@@ -3101,8 +3099,6 @@ bool save_snapshot(const char *name, bool overwrite, const char *vmstate,
 
     bdrv_drain_all_begin();
 
-    aio_context_acquire(aio_context);
-
     memset(sn, 0, sizeof(*sn));
 
     /* fill auxiliary fields */
@@ -3139,14 +3135,6 @@ bool save_snapshot(const char *name, bool overwrite, const char *vmstate,
         goto the_end;
     }
 
-    /* The bdrv_all_create_snapshot() call that follows acquires the AioContext
-     * for itself.  BDRV_POLL_WHILE() does not support nested locking because
-     * it only releases the lock once.  Therefore synchronous I/O will deadlock
-     * unless we release the AioContext before bdrv_all_create_snapshot().
-     */
-    aio_context_release(aio_context);
-    aio_context = NULL;
-
     ret = bdrv_all_create_snapshot(sn, bs, vm_state_size,
                                    has_devices, devices, errp);
     if (ret < 0) {
@@ -3157,10 +3145,6 @@ bool save_snapshot(const char *name, bool overwrite, const char *vmstate,
     ret = 0;
 
  the_end:
-    if (aio_context) {
-        aio_context_release(aio_context);
-    }
-
     bdrv_drain_all_end();
 
     if (saved_vm_running) {
@@ -3258,7 +3242,6 @@ bool load_snapshot(const char *name, const char *vmstate,
     QEMUSnapshotInfo sn;
     QEMUFile *f;
     int ret;
-    AioContext *aio_context;
     MigrationIncomingState *mis = migration_incoming_get_current();
 
     if (!bdrv_all_can_snapshot(has_devices, devices, errp)) {
@@ -3278,12 +3261,9 @@ bool load_snapshot(const char *name, const char *vmstate,
     if (!bs_vm_state) {
         return false;
     }
-    aio_context = bdrv_get_aio_context(bs_vm_state);
 
     /* Don't even try to load empty VM states */
-    aio_context_acquire(aio_context);
     ret = bdrv_snapshot_find(bs_vm_state, &sn, name);
-    aio_context_release(aio_context);
     if (ret < 0) {
         return false;
     } else if (sn.vm_state_size == 0) {
@@ -3320,10 +3300,8 @@ bool load_snapshot(const char *name, const char *vmstate,
         ret = -EINVAL;
         goto err_drain;
     }
-    aio_context_acquire(aio_context);
     ret = qemu_loadvm_state(f);
     migration_incoming_state_destroy();
-    aio_context_release(aio_context);
 
     bdrv_drain_all_end();
 
diff --git a/net/colo-compare.c b/net/colo-compare.c
index 7f9e6f89ce..f2dfc0ebdc 100644
--- a/net/colo-compare.c
+++ b/net/colo-compare.c
@@ -1439,12 +1439,10 @@ static void colo_compare_finalize(Object *obj)
     qemu_bh_delete(s->event_bh);
 
     AioContext *ctx = iothread_get_aio_context(s->iothread);
-    aio_context_acquire(ctx);
     AIO_WAIT_WHILE(ctx, !s->out_sendco.done);
     if (s->notify_dev) {
         AIO_WAIT_WHILE(ctx, !s->notify_sendco.done);
     }
-    aio_context_release(ctx);
 
     /* Release all unhandled packets after compare thead exited */
     g_queue_foreach(&s->conn_list, colo_flush_packets, s);
diff --git a/qemu-img.c b/qemu-img.c
index 5a77f67719..7668f86769 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -960,7 +960,6 @@ static int img_commit(int argc, char **argv)
     Error *local_err = NULL;
     CommonBlockJobCBInfo cbi;
     bool image_opts = false;
-    AioContext *aio_context;
     int64_t rate_limit = 0;
 
     fmt = NULL;
@@ -1078,12 +1077,9 @@ static int img_commit(int argc, char **argv)
         .bs   = bs,
     };
 
-    aio_context = bdrv_get_aio_context(bs);
-    aio_context_acquire(aio_context);
     commit_active_start("commit", bs, base_bs, JOB_DEFAULT, rate_limit,
                         BLOCKDEV_ON_ERROR_REPORT, NULL, common_block_job_cb,
                         &cbi, false, &local_err);
-    aio_context_release(aio_context);
     if (local_err) {
         goto done;
     }
diff --git a/qemu-io.c b/qemu-io.c
index 050c70835f..6cb1e00385 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -414,15 +414,7 @@ static void prep_fetchline(void *opaque)
 
 static int do_qemuio_command(const char *cmd)
 {
-    int ret;
-    AioContext *ctx =
-        qemuio_blk ? blk_get_aio_context(qemuio_blk) : qemu_get_aio_context();
-
-    aio_context_acquire(ctx);
-    ret = qemuio_command(qemuio_blk, cmd);
-    aio_context_release(ctx);
-
-    return ret;
+    return qemuio_command(qemuio_blk, cmd);
 }
 
 static int command_loop(void)
diff --git a/qemu-nbd.c b/qemu-nbd.c
index 186e6468b1..bac0b5e3ec 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -1123,9 +1123,7 @@ int main(int argc, char **argv)
         qdict_put_str(raw_opts, "file", bs->node_name);
         qdict_put_int(raw_opts, "offset", dev_offset);
 
-        aio_context_acquire(qemu_get_aio_context());
         bs = bdrv_open(NULL, NULL, raw_opts, flags, &error_fatal);
-        aio_context_release(qemu_get_aio_context());
 
         blk_remove_bs(blk);
         blk_insert_bs(blk, bs, &error_fatal);
diff --git a/replay/replay-debugging.c b/replay/replay-debugging.c
index 3e60549a4a..82c66fff26 100644
--- a/replay/replay-debugging.c
+++ b/replay/replay-debugging.c
@@ -144,7 +144,6 @@ static char *replay_find_nearest_snapshot(int64_t icount,
     char *ret = NULL;
     int rv;
     int nb_sns, i;
-    AioContext *aio_context;
 
     *snapshot_icount = -1;
 
@@ -152,11 +151,8 @@ static char *replay_find_nearest_snapshot(int64_t icount,
     if (!bs) {
         goto fail;
     }
-    aio_context = bdrv_get_aio_context(bs);
 
-    aio_context_acquire(aio_context);
     nb_sns = bdrv_snapshot_list(bs, &sn_tab);
-    aio_context_release(aio_context);
 
     for (i = 0; i < nb_sns; i++) {
         rv = bdrv_all_has_snapshot(sn_tab[i].name, false, NULL, NULL);
diff --git a/tests/unit/test-bdrv-drain.c b/tests/unit/test-bdrv-drain.c
index d9754dfebc..17830a69c1 100644
--- a/tests/unit/test-bdrv-drain.c
+++ b/tests/unit/test-bdrv-drain.c
@@ -179,13 +179,7 @@ static void do_drain_end(enum drain_type drain_type, BlockDriverState *bs)
 
 static void do_drain_begin_unlocked(enum drain_type drain_type, BlockDriverState *bs)
 {
-    if (drain_type != BDRV_DRAIN_ALL) {
-        aio_context_acquire(bdrv_get_aio_context(bs));
-    }
     do_drain_begin(drain_type, bs);
-    if (drain_type != BDRV_DRAIN_ALL) {
-        aio_context_release(bdrv_get_aio_context(bs));
-    }
 }
 
 static BlockBackend * no_coroutine_fn test_setup(void)
@@ -209,13 +203,7 @@ static BlockBackend * no_coroutine_fn test_setup(void)
 
 static void do_drain_end_unlocked(enum drain_type drain_type, BlockDriverState *bs)
 {
-    if (drain_type != BDRV_DRAIN_ALL) {
-        aio_context_acquire(bdrv_get_aio_context(bs));
-    }
     do_drain_end(drain_type, bs);
-    if (drain_type != BDRV_DRAIN_ALL) {
-        aio_context_release(bdrv_get_aio_context(bs));
-    }
 }
 
 /*
@@ -520,12 +508,8 @@ static void test_iothread_main_thread_bh(void *opaque)
 {
     struct test_iothread_data *data = opaque;
 
-    /* Test that the AioContext is not yet locked in a random BH that is
-     * executed during drain, otherwise this would deadlock. */
-    aio_context_acquire(bdrv_get_aio_context(data->bs));
     bdrv_flush(data->bs);
     bdrv_dec_in_flight(data->bs); /* incremented by test_iothread_common() */
-    aio_context_release(bdrv_get_aio_context(data->bs));
 }
 
 /*
@@ -567,7 +551,6 @@ static void test_iothread_common(enum drain_type drain_type, int drain_thread)
     blk_set_disable_request_queuing(blk, true);
 
     blk_set_aio_context(blk, ctx_a, &error_abort);
-    aio_context_acquire(ctx_a);
 
     s->bh_indirection_ctx = ctx_b;
 
@@ -582,8 +565,6 @@ static void test_iothread_common(enum drain_type drain_type, int drain_thread)
     g_assert(acb != NULL);
     g_assert_cmpint(aio_ret, ==, -EINPROGRESS);
 
-    aio_context_release(ctx_a);
-
     data = (struct test_iothread_data) {
         .bs         = bs,
         .drain_type = drain_type,
@@ -592,10 +573,6 @@ static void test_iothread_common(enum drain_type drain_type, int drain_thread)
 
     switch (drain_thread) {
     case 0:
-        if (drain_type != BDRV_DRAIN_ALL) {
-            aio_context_acquire(ctx_a);
-        }
-
         /*
          * Increment in_flight so that do_drain_begin() waits for
          * test_iothread_main_thread_bh(). This prevents the race between
@@ -613,20 +590,10 @@ static void test_iothread_common(enum drain_type drain_type, int drain_thread)
         do_drain_begin(drain_type, bs);
         g_assert_cmpint(bs->in_flight, ==, 0);
 
-        if (drain_type != BDRV_DRAIN_ALL) {
-            aio_context_release(ctx_a);
-        }
         qemu_event_wait(&done_event);
-        if (drain_type != BDRV_DRAIN_ALL) {
-            aio_context_acquire(ctx_a);
-        }
 
         g_assert_cmpint(aio_ret, ==, 0);
         do_drain_end(drain_type, bs);
-
-        if (drain_type != BDRV_DRAIN_ALL) {
-            aio_context_release(ctx_a);
-        }
         break;
     case 1:
         co = qemu_coroutine_create(test_iothread_drain_co_entry, &data);
@@ -637,9 +604,7 @@ static void test_iothread_common(enum drain_type drain_type, int drain_thread)
         g_assert_not_reached();
     }
 
-    aio_context_acquire(ctx_a);
     blk_set_aio_context(blk, qemu_get_aio_context(), &error_abort);
-    aio_context_release(ctx_a);
 
     bdrv_unref(bs);
     blk_unref(blk);
@@ -757,7 +722,6 @@ static void test_blockjob_common_drain_node(enum drain_type drain_type,
     BlockJob *job;
     TestBlockJob *tjob;
     IOThread *iothread = NULL;
-    AioContext *ctx;
     int ret;
 
     src = bdrv_new_open_driver(&bdrv_test, "source", BDRV_O_RDWR,
@@ -787,11 +751,11 @@ static void test_blockjob_common_drain_node(enum drain_type drain_type,
     }
 
     if (use_iothread) {
+        AioContext *ctx;
+
         iothread = iothread_new();
         ctx = iothread_get_aio_context(iothread);
         blk_set_aio_context(blk_src, ctx, &error_abort);
-    } else {
-        ctx = qemu_get_aio_context();
     }
 
     target = bdrv_new_open_driver(&bdrv_test, "target", BDRV_O_RDWR,
@@ -800,7 +764,6 @@ static void test_blockjob_common_drain_node(enum drain_type drain_type,
     blk_insert_bs(blk_target, target, &error_abort);
     blk_set_allow_aio_context_change(blk_target, true);
 
-    aio_context_acquire(ctx);
     tjob = block_job_create("job0", &test_job_driver, NULL, src,
                             0, BLK_PERM_ALL,
                             0, 0, NULL, NULL, &error_abort);
@@ -821,7 +784,6 @@ static void test_blockjob_common_drain_node(enum drain_type drain_type,
         tjob->prepare_ret = -EIO;
         break;
     }
-    aio_context_release(ctx);
 
     job_start(&job->job);
 
@@ -912,12 +874,10 @@ static void test_blockjob_common_drain_node(enum drain_type drain_type,
     }
     g_assert_cmpint(ret, ==, (result == TEST_JOB_SUCCESS ? 0 : -EIO));
 
-    aio_context_acquire(ctx);
     if (use_iothread) {
         blk_set_aio_context(blk_src, qemu_get_aio_context(), &error_abort);
         assert(blk_get_aio_context(blk_target) == qemu_get_aio_context());
     }
-    aio_context_release(ctx);
 
     blk_unref(blk_src);
     blk_unref(blk_target);
@@ -1401,9 +1361,7 @@ static void test_append_to_drained(void)
     g_assert_cmpint(base_s->drain_count, ==, 1);
     g_assert_cmpint(base->in_flight, ==, 0);
 
-    aio_context_acquire(qemu_get_aio_context());
     bdrv_append(overlay, base, &error_abort);
-    aio_context_release(qemu_get_aio_context());
 
     g_assert_cmpint(base->in_flight, ==, 0);
     g_assert_cmpint(overlay->in_flight, ==, 0);
@@ -1438,16 +1396,11 @@ static void test_set_aio_context(void)
 
     bdrv_drained_begin(bs);
     bdrv_try_change_aio_context(bs, ctx_a, NULL, &error_abort);
-
-    aio_context_acquire(ctx_a);
     bdrv_drained_end(bs);
 
     bdrv_drained_begin(bs);
     bdrv_try_change_aio_context(bs, ctx_b, NULL, &error_abort);
-    aio_context_release(ctx_a);
-    aio_context_acquire(ctx_b);
     bdrv_try_change_aio_context(bs, qemu_get_aio_context(), NULL, &error_abort);
-    aio_context_release(ctx_b);
     bdrv_drained_end(bs);
 
     bdrv_unref(bs);
diff --git a/tests/unit/test-bdrv-graph-mod.c b/tests/unit/test-bdrv-graph-mod.c
index 8ee6ef38d8..cafc023db4 100644
--- a/tests/unit/test-bdrv-graph-mod.c
+++ b/tests/unit/test-bdrv-graph-mod.c
@@ -142,10 +142,8 @@ static void test_update_perm_tree(void)
                       BDRV_CHILD_DATA, &error_abort);
     bdrv_graph_wrunlock();
 
-    aio_context_acquire(qemu_get_aio_context());
     ret = bdrv_append(filter, bs, NULL);
     g_assert_cmpint(ret, <, 0);
-    aio_context_release(qemu_get_aio_context());
 
     bdrv_unref(filter);
     blk_unref(root);
@@ -211,9 +209,7 @@ static void test_should_update_child(void)
     bdrv_attach_child(filter, target, "target", &child_of_bds,
                       BDRV_CHILD_DATA, &error_abort);
     bdrv_graph_wrunlock();
-    aio_context_acquire(qemu_get_aio_context());
     bdrv_append(filter, bs, &error_abort);
-    aio_context_release(qemu_get_aio_context());
 
     bdrv_graph_rdlock_main_loop();
     g_assert(target->backing->bs == bs);
@@ -440,9 +436,7 @@ static void test_append_greedy_filter(void)
                       &error_abort);
     bdrv_graph_wrunlock();
 
-    aio_context_acquire(qemu_get_aio_context());
     bdrv_append(fl, base, &error_abort);
-    aio_context_release(qemu_get_aio_context());
     bdrv_unref(fl);
     bdrv_unref(top);
 }
diff --git a/tests/unit/test-block-iothread.c b/tests/unit/test-block-iothread.c
index 9b15d2768c..3766d5de6b 100644
--- a/tests/unit/test-block-iothread.c
+++ b/tests/unit/test-block-iothread.c
@@ -483,7 +483,6 @@ static void test_sync_op(const void *opaque)
     bdrv_graph_rdunlock_main_loop();
 
     blk_set_aio_context(blk, ctx, &error_abort);
-    aio_context_acquire(ctx);
     if (t->fn) {
         t->fn(c);
     }
@@ -491,7 +490,6 @@ static void test_sync_op(const void *opaque)
         t->blkfn(blk);
     }
     blk_set_aio_context(blk, qemu_get_aio_context(), &error_abort);
-    aio_context_release(ctx);
 
     bdrv_unref(bs);
     blk_unref(blk);
@@ -576,9 +574,7 @@ static void test_attach_blockjob(void)
         aio_poll(qemu_get_aio_context(), false);
     }
 
-    aio_context_acquire(ctx);
     blk_set_aio_context(blk, qemu_get_aio_context(), &error_abort);
-    aio_context_release(ctx);
 
     tjob->n = 0;
     while (tjob->n == 0) {
@@ -595,9 +591,7 @@ static void test_attach_blockjob(void)
     WITH_JOB_LOCK_GUARD() {
         job_complete_sync_locked(&tjob->common.job, &error_abort);
     }
-    aio_context_acquire(ctx);
     blk_set_aio_context(blk, qemu_get_aio_context(), &error_abort);
-    aio_context_release(ctx);
 
     bdrv_unref(bs);
     blk_unref(blk);
@@ -654,9 +648,7 @@ static void test_propagate_basic(void)
 
     /* Switch the AioContext back */
     main_ctx = qemu_get_aio_context();
-    aio_context_acquire(ctx);
     blk_set_aio_context(blk, main_ctx, &error_abort);
-    aio_context_release(ctx);
     g_assert(blk_get_aio_context(blk) == main_ctx);
     g_assert(bdrv_get_aio_context(bs_a) == main_ctx);
     g_assert(bdrv_get_aio_context(bs_verify) == main_ctx);
@@ -732,9 +724,7 @@ static void test_propagate_diamond(void)
 
     /* Switch the AioContext back */
     main_ctx = qemu_get_aio_context();
-    aio_context_acquire(ctx);
     blk_set_aio_context(blk, main_ctx, &error_abort);
-    aio_context_release(ctx);
     g_assert(blk_get_aio_context(blk) == main_ctx);
     g_assert(bdrv_get_aio_context(bs_verify) == main_ctx);
     g_assert(bdrv_get_aio_context(bs_a) == main_ctx);
@@ -764,13 +754,11 @@ static void test_propagate_mirror(void)
                                   &error_abort);
 
     /* Start a mirror job */
-    aio_context_acquire(main_ctx);
     mirror_start("job0", src, target, NULL, JOB_DEFAULT, 0, 0, 0,
                  MIRROR_SYNC_MODE_NONE, MIRROR_OPEN_BACKING_CHAIN, false,
                  BLOCKDEV_ON_ERROR_REPORT, BLOCKDEV_ON_ERROR_REPORT,
                  false, "filter_node", MIRROR_COPY_MODE_BACKGROUND,
                  &error_abort);
-    aio_context_release(main_ctx);
 
     WITH_JOB_LOCK_GUARD() {
         job = job_get_locked("job0");
@@ -785,9 +773,7 @@ static void test_propagate_mirror(void)
     g_assert(job->aio_context == ctx);
 
     /* Change the AioContext of target */
-    aio_context_acquire(ctx);
     bdrv_try_change_aio_context(target, main_ctx, NULL, &error_abort);
-    aio_context_release(ctx);
     g_assert(bdrv_get_aio_context(src) == main_ctx);
     g_assert(bdrv_get_aio_context(target) == main_ctx);
     g_assert(bdrv_get_aio_context(filter) == main_ctx);
@@ -805,10 +791,8 @@ static void test_propagate_mirror(void)
     g_assert(bdrv_get_aio_context(filter) == main_ctx);
 
     /* ...unless we explicitly allow it */
-    aio_context_acquire(ctx);
     blk_set_allow_aio_context_change(blk, true);
     bdrv_try_change_aio_context(target, ctx, NULL, &error_abort);
-    aio_context_release(ctx);
 
     g_assert(blk_get_aio_context(blk) == ctx);
     g_assert(bdrv_get_aio_context(src) == ctx);
@@ -817,10 +801,8 @@ static void test_propagate_mirror(void)
 
     job_cancel_sync_all();
 
-    aio_context_acquire(ctx);
     blk_set_aio_context(blk, main_ctx, &error_abort);
     bdrv_try_change_aio_context(target, main_ctx, NULL, &error_abort);
-    aio_context_release(ctx);
 
     blk_unref(blk);
     bdrv_unref(src);
@@ -836,7 +818,6 @@ static void test_attach_second_node(void)
     BlockDriverState *bs, *filter;
     QDict *options;
 
-    aio_context_acquire(main_ctx);
     blk = blk_new(ctx, BLK_PERM_ALL, BLK_PERM_ALL);
     bs = bdrv_new_open_driver(&bdrv_test, "base", BDRV_O_RDWR, &error_abort);
     blk_insert_bs(blk, bs, &error_abort);
@@ -846,15 +827,12 @@ static void test_attach_second_node(void)
     qdict_put_str(options, "file", "base");
 
     filter = bdrv_open(NULL, NULL, options, BDRV_O_RDWR, &error_abort);
-    aio_context_release(main_ctx);
 
     g_assert(blk_get_aio_context(blk) == ctx);
     g_assert(bdrv_get_aio_context(bs) == ctx);
     g_assert(bdrv_get_aio_context(filter) == ctx);
 
-    aio_context_acquire(ctx);
     blk_set_aio_context(blk, main_ctx, &error_abort);
-    aio_context_release(ctx);
     g_assert(blk_get_aio_context(blk) == main_ctx);
     g_assert(bdrv_get_aio_context(bs) == main_ctx);
     g_assert(bdrv_get_aio_context(filter) == main_ctx);
@@ -868,11 +846,9 @@ static void test_attach_preserve_blk_ctx(void)
 {
     IOThread *iothread = iothread_new();
     AioContext *ctx = iothread_get_aio_context(iothread);
-    AioContext *main_ctx = qemu_get_aio_context();
     BlockBackend *blk;
     BlockDriverState *bs;
 
-    aio_context_acquire(main_ctx);
     blk = blk_new(ctx, BLK_PERM_ALL, BLK_PERM_ALL);
     bs = bdrv_new_open_driver(&bdrv_test, "base", BDRV_O_RDWR, &error_abort);
     bs->total_sectors = 65536 / BDRV_SECTOR_SIZE;
@@ -881,25 +857,18 @@ static void test_attach_preserve_blk_ctx(void)
     blk_insert_bs(blk, bs, &error_abort);
     g_assert(blk_get_aio_context(blk) == ctx);
     g_assert(bdrv_get_aio_context(bs) == ctx);
-    aio_context_release(main_ctx);
 
     /* Remove the node again */
-    aio_context_acquire(ctx);
     blk_remove_bs(blk);
-    aio_context_release(ctx);
     g_assert(blk_get_aio_context(blk) == ctx);
     g_assert(bdrv_get_aio_context(bs) == qemu_get_aio_context());
 
     /* Re-attach the node */
-    aio_context_acquire(main_ctx);
     blk_insert_bs(blk, bs, &error_abort);
-    aio_context_release(main_ctx);
     g_assert(blk_get_aio_context(blk) == ctx);
     g_assert(bdrv_get_aio_context(bs) == ctx);
 
-    aio_context_acquire(ctx);
     blk_set_aio_context(blk, qemu_get_aio_context(), &error_abort);
-    aio_context_release(ctx);
     bdrv_unref(bs);
     blk_unref(blk);
 }
diff --git a/tests/unit/test-blockjob.c b/tests/unit/test-blockjob.c
index a130f6fefb..fe3e0d2d38 100644
--- a/tests/unit/test-blockjob.c
+++ b/tests/unit/test-blockjob.c
@@ -228,7 +228,6 @@ static void cancel_common(CancelJob *s)
     BlockJob *job = &s->common;
     BlockBackend *blk = s->blk;
     JobStatus sts = job->job.status;
-    AioContext *ctx = job->job.aio_context;
 
     job_cancel_sync(&job->job, true);
     WITH_JOB_LOCK_GUARD() {
@@ -240,9 +239,7 @@ static void cancel_common(CancelJob *s)
         job_unref_locked(&job->job);
     }
 
-    aio_context_acquire(ctx);
     destroy_blk(blk);
-    aio_context_release(ctx);
 
 }
 
@@ -391,132 +388,6 @@ static void test_cancel_concluded(void)
     cancel_common(s);
 }
 
-/* (See test_yielding_driver for the job description) */
-typedef struct YieldingJob {
-    BlockJob common;
-    bool should_complete;
-} YieldingJob;
-
-static void yielding_job_complete(Job *job, Error **errp)
-{
-    YieldingJob *s = container_of(job, YieldingJob, common.job);
-    s->should_complete = true;
-    job_enter(job);
-}
-
-static int coroutine_fn yielding_job_run(Job *job, Error **errp)
-{
-    YieldingJob *s = container_of(job, YieldingJob, common.job);
-
-    job_transition_to_ready(job);
-
-    while (!s->should_complete) {
-        job_yield(job);
-    }
-
-    return 0;
-}
-
-/*
- * This job transitions immediately to the READY state, and then
- * yields until it is to complete.
- */
-static const BlockJobDriver test_yielding_driver = {
-    .job_driver = {
-        .instance_size  = sizeof(YieldingJob),
-        .free           = block_job_free,
-        .user_resume    = block_job_user_resume,
-        .run            = yielding_job_run,
-        .complete       = yielding_job_complete,
-    },
-};
-
-/*
- * Test that job_complete_locked() works even on jobs that are in a paused
- * state (i.e., STANDBY).
- *
- * To do this, run YieldingJob in an IO thread, get it into the READY
- * state, then have a drained section.  Before ending the section,
- * acquire the context so the job will not be entered and will thus
- * remain on STANDBY.
- *
- * job_complete_locked() should still work without error.
- *
- * Note that on the QMP interface, it is impossible to lock an IO
- * thread before a drained section ends.  In practice, the
- * bdrv_drain_all_end() and the aio_context_acquire() will be
- * reversed.  However, that makes for worse reproducibility here:
- * Sometimes, the job would no longer be in STANDBY then but already
- * be started.  We cannot prevent that, because the IO thread runs
- * concurrently.  We can only prevent it by taking the lock before
- * ending the drained section, so we do that.
- *
- * (You can reverse the order of operations and most of the time the
- * test will pass, but sometimes the assert(status == STANDBY) will
- * fail.)
- */
-static void test_complete_in_standby(void)
-{
-    BlockBackend *blk;
-    IOThread *iothread;
-    AioContext *ctx;
-    Job *job;
-    BlockJob *bjob;
-
-    /* Create a test drive, move it to an IO thread */
-    blk = create_blk(NULL);
-    iothread = iothread_new();
-
-    ctx = iothread_get_aio_context(iothread);
-    blk_set_aio_context(blk, ctx, &error_abort);
-
-    /* Create our test job */
-    bjob = mk_job(blk, "job", &test_yielding_driver, true,
-                  JOB_MANUAL_FINALIZE | JOB_MANUAL_DISMISS);
-    job = &bjob->job;
-    assert_job_status_is(job, JOB_STATUS_CREATED);
-
-    /* Wait for the job to become READY */
-    job_start(job);
-    /*
-     * Here we are waiting for the status to change, so don't bother
-     * protecting the read every time.
-     */
-    AIO_WAIT_WHILE_UNLOCKED(ctx, job->status != JOB_STATUS_READY);
-
-    /* Begin the drained section, pausing the job */
-    bdrv_drain_all_begin();
-    assert_job_status_is(job, JOB_STATUS_STANDBY);
-
-    /* Lock the IO thread to prevent the job from being run */
-    aio_context_acquire(ctx);
-    /* This will schedule the job to resume it */
-    bdrv_drain_all_end();
-    aio_context_release(ctx);
-
-    WITH_JOB_LOCK_GUARD() {
-        /* But the job cannot run, so it will remain on standby */
-        assert(job->status == JOB_STATUS_STANDBY);
-
-        /* Even though the job is on standby, this should work */
-        job_complete_locked(job, &error_abort);
-
-        /* The test is done now, clean up. */
-        job_finish_sync_locked(job, NULL, &error_abort);
-        assert(job->status == JOB_STATUS_PENDING);
-
-        job_finalize_locked(job, &error_abort);
-        assert(job->status == JOB_STATUS_CONCLUDED);
-
-        job_dismiss_locked(&job, &error_abort);
-    }
-
-    aio_context_acquire(ctx);
-    destroy_blk(blk);
-    aio_context_release(ctx);
-    iothread_join(iothread);
-}
-
 int main(int argc, char **argv)
 {
     qemu_init_main_loop(&error_abort);
@@ -531,13 +402,5 @@ int main(int argc, char **argv)
     g_test_add_func("/blockjob/cancel/standby", test_cancel_standby);
     g_test_add_func("/blockjob/cancel/pending", test_cancel_pending);
     g_test_add_func("/blockjob/cancel/concluded", test_cancel_concluded);
-
-    /*
-     * This test is flaky and sometimes fails in CI and otherwise:
-     * don't run unless user opts in via environment variable.
-     */
-    if (getenv("QEMU_TEST_FLAKY_TESTS")) {
-        g_test_add_func("/blockjob/complete_in_standby", test_complete_in_standby);
-    }
     return g_test_run();
 }
diff --git a/tests/unit/test-replication.c b/tests/unit/test-replication.c
index afff908d77..5d2003b8ce 100644
--- a/tests/unit/test-replication.c
+++ b/tests/unit/test-replication.c
@@ -199,17 +199,13 @@ static BlockBackend *start_primary(void)
 static void teardown_primary(void)
 {
     BlockBackend *blk;
-    AioContext *ctx;
 
     /* remove P_ID */
     blk = blk_by_name(P_ID);
     assert(blk);
 
-    ctx = blk_get_aio_context(blk);
-    aio_context_acquire(ctx);
     monitor_remove_blk(blk);
     blk_unref(blk);
-    aio_context_release(ctx);
 }
 
 static void test_primary_read(void)
@@ -345,27 +341,20 @@ static void teardown_secondary(void)
 {
     /* only need to destroy two BBs */
     BlockBackend *blk;
-    AioContext *ctx;
 
     /* remove S_LOCAL_DISK_ID */
     blk = blk_by_name(S_LOCAL_DISK_ID);
     assert(blk);
 
-    ctx = blk_get_aio_context(blk);
-    aio_context_acquire(ctx);
     monitor_remove_blk(blk);
     blk_unref(blk);
-    aio_context_release(ctx);
 
     /* remove S_ID */
     blk = blk_by_name(S_ID);
     assert(blk);
 
-    ctx = blk_get_aio_context(blk);
-    aio_context_acquire(ctx);
     monitor_remove_blk(blk);
     blk_unref(blk);
-    aio_context_release(ctx);
 }
 
 static void test_secondary_read(void)
diff --git a/util/async.c b/util/async.c
index 04ee83d220..dfd44ef612 100644
--- a/util/async.c
+++ b/util/async.c
@@ -562,12 +562,10 @@ static void co_schedule_bh_cb(void *opaque)
         Coroutine *co = QSLIST_FIRST(&straight);
         QSLIST_REMOVE_HEAD(&straight, co_scheduled_next);
         trace_aio_co_schedule_bh_cb(ctx, co);
-        aio_context_acquire(ctx);
 
         /* Protected by write barrier in qemu_aio_coroutine_enter */
         qatomic_set(&co->scheduled, NULL);
         qemu_aio_coroutine_enter(ctx, co);
-        aio_context_release(ctx);
     }
 }
 
@@ -707,9 +705,7 @@ void aio_co_enter(AioContext *ctx, Coroutine *co)
         assert(self != co);
         QSIMPLEQ_INSERT_TAIL(&self->co_queue_wakeup, co, co_queue_next);
     } else {
-        aio_context_acquire(ctx);
         qemu_aio_coroutine_enter(ctx, co);
-        aio_context_release(ctx);
     }
 }
 
diff --git a/util/vhost-user-server.c b/util/vhost-user-server.c
index a9a48fffb8..3bfb1ad3ec 100644
--- a/util/vhost-user-server.c
+++ b/util/vhost-user-server.c
@@ -360,10 +360,7 @@ static void vu_accept(QIONetListener *listener, QIOChannelSocket *sioc,
 
     qio_channel_set_follow_coroutine_ctx(server->ioc, true);
 
-    /* Attaching the AioContext starts the vu_client_trip coroutine */
-    aio_context_acquire(server->ctx);
     vhost_user_server_attach_aio_context(server, server->ctx);
-    aio_context_release(server->ctx);
 }
 
 /* server->ctx acquired by caller */
diff --git a/scripts/block-coroutine-wrapper.py b/scripts/block-coroutine-wrapper.py
index 38364fa557..c9c09fcacd 100644
--- a/scripts/block-coroutine-wrapper.py
+++ b/scripts/block-coroutine-wrapper.py
@@ -278,12 +278,9 @@ def gen_no_co_wrapper(func: FuncDecl) -> str:
 static void {name}_bh(void *opaque)
 {{
     {struct_name} *s = opaque;
-    AioContext *ctx = {func.gen_ctx('s->')};
 
 {graph_lock}
-    aio_context_acquire(ctx);
     {func.get_result}{name}({ func.gen_list('s->{name}') });
-    aio_context_release(ctx);
 {graph_unlock}
 
     aio_co_wake(s->co);
diff --git a/tests/tsan/suppressions.tsan b/tests/tsan/suppressions.tsan
index d9a002a2ef..b3ef59c27c 100644
--- a/tests/tsan/suppressions.tsan
+++ b/tests/tsan/suppressions.tsan
@@ -4,7 +4,6 @@
 
 # TSan reports a double lock on RECURSIVE mutexes.
 # Since the recursive lock is intentional, we choose to ignore it.
-mutex:aio_context_acquire
 mutex:pthread_mutex_lock
 
 # TSan reports a race between pthread_mutex_init() and
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648189.1012340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2I-0004vt-CY; Tue, 05 Dec 2023 18:20:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648189.1012340; Tue, 05 Dec 2023 18:20: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 1rAa2I-0004vh-8m; Tue, 05 Dec 2023 18:20:46 +0000
Received: by outflank-mailman (input) for mailman id 648189;
 Tue, 05 Dec 2023 18:20: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2G-0002fT-Pz
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:44 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0076e629-939b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 19:20:44 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-689-aLTBzfH7NZ6pFUQL-ZClUQ-1; Tue,
 05 Dec 2023 13:20:37 -0500
Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com
 [10.11.54.1])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 91D0029ABA04;
 Tue,  5 Dec 2023 18:20:36 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id D27EE3C25;
 Tue,  5 Dec 2023 18:20: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: 0076e629-939b-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800443;
	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=eTK1D/m0rA2DrSG0310cQh9Ae3M4PF5cLiXTsHSalhM=;
	b=CqFKd2elAa5X3eJu7+hCP5rmtkCEBMWlGP84WpDOw6sLupBFEpIYWts9p3tw8F0VrAstGk
	/v7tLUpPhnJ69lmj4gqauHXfFYe3RaN2MMcE/mRAsttXwZSwQHOShcC0TPALUhO1zJ/cEC
	Sqd1BURKoB6wK0AHFl10TI9O//xqHLY=
X-MC-Unique: aLTBzfH7NZ6pFUQL-ZClUQ-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 07/14] block: remove bdrv_co_lock()
Date: Tue,  5 Dec 2023 13:20:04 -0500
Message-ID: <20231205182011.1976568-8-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.1

The bdrv_co_lock() and bdrv_co_unlock() functions are already no-ops.
Remove them.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 include/block/block-global-state.h | 14 --------------
 block.c                            | 10 ----------
 blockdev.c                         |  4 ----
 3 files changed, 28 deletions(-)

diff --git a/include/block/block-global-state.h b/include/block/block-global-state.h
index 0327f1c605..4ec0b217f0 100644
--- a/include/block/block-global-state.h
+++ b/include/block/block-global-state.h
@@ -267,20 +267,6 @@ int bdrv_debug_remove_breakpoint(BlockDriverState *bs, const char *tag);
 int bdrv_debug_resume(BlockDriverState *bs, const char *tag);
 bool bdrv_debug_is_suspended(BlockDriverState *bs, const char *tag);
 
-/**
- * Locks the AioContext of @bs if it's not the current AioContext. This avoids
- * double locking which could lead to deadlocks: This is a coroutine_fn, so we
- * know we already own the lock of the current AioContext.
- *
- * May only be called in the main thread.
- */
-void coroutine_fn bdrv_co_lock(BlockDriverState *bs);
-
-/**
- * Unlocks the AioContext of @bs if it's not the current AioContext.
- */
-void coroutine_fn bdrv_co_unlock(BlockDriverState *bs);
-
 bool bdrv_child_change_aio_context(BdrvChild *c, AioContext *ctx,
                                    GHashTable *visited, Transaction *tran,
                                    Error **errp);
diff --git a/block.c b/block.c
index 91ace5d2d5..434b7f4d72 100644
--- a/block.c
+++ b/block.c
@@ -7431,16 +7431,6 @@ void coroutine_fn bdrv_co_leave(BlockDriverState *bs, AioContext *old_ctx)
     bdrv_dec_in_flight(bs);
 }
 
-void coroutine_fn bdrv_co_lock(BlockDriverState *bs)
-{
-    /* TODO removed in next patch */
-}
-
-void coroutine_fn bdrv_co_unlock(BlockDriverState *bs)
-{
-    /* TODO removed in next patch */
-}
-
 static void bdrv_do_remove_aio_context_notifier(BdrvAioNotifier *ban)
 {
     GLOBAL_STATE_CODE();
diff --git a/blockdev.c b/blockdev.c
index 8a1b28f830..3a5e7222ec 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -2264,18 +2264,14 @@ void coroutine_fn qmp_block_resize(const char *device, const char *node_name,
         return;
     }
 
-    bdrv_co_lock(bs);
     bdrv_drained_begin(bs);
-    bdrv_co_unlock(bs);
 
     old_ctx = bdrv_co_enter(bs);
     blk_co_truncate(blk, size, false, PREALLOC_MODE_OFF, 0, errp);
     bdrv_co_leave(bs, old_ctx);
 
-    bdrv_co_lock(bs);
     bdrv_drained_end(bs);
     blk_co_unref(blk);
-    bdrv_co_unlock(bs);
 }
 
 void qmp_block_stream(const char *job_id, const char *device,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648192.1012350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2K-0005GW-P3; Tue, 05 Dec 2023 18:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648192.1012350; Tue, 05 Dec 2023 18:20:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2K-0005GH-KW; Tue, 05 Dec 2023 18:20:48 +0000
Received: by outflank-mailman (input) for mailman id 648192;
 Tue, 05 Dec 2023 18:20:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2J-0002wG-Om
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:47 +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 015b3741-939b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 19:20:45 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-587-ksoH-B_qNCu3IHo5ypFuDQ-1; Tue,
 05 Dec 2023 13:20:40 -0500
Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com
 [10.11.54.9])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id D0ACB386A0AC;
 Tue,  5 Dec 2023 18:20:38 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 329D9492BC6;
 Tue,  5 Dec 2023 18:20:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 015b3741-939b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800444;
	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=QKQzQ3fye1WySx6n8C4OipFXirz9rwxVm6vz00LMeKs=;
	b=PCXoewqez83iclCPZ5RqkjrtMG4/MWwVviMVfoT/DFNUQArvaxTn419iEwwm0r0xsxJzTT
	DyUBjEuJhtIunFVurqUbxUMpbjnyQ/5QtLH7K1frbZobIFUUTj/LelrYCOwObBcBYscVqG
	smev1PigzZYwj8I0E2l2INBeYDJ4ttw=
X-MC-Unique: ksoH-B_qNCu3IHo5ypFuDQ-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 08/14] scsi: remove AioContext locking
Date: Tue,  5 Dec 2023 13:20:05 -0500
Message-ID: <20231205182011.1976568-9-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.9

The AioContext lock no longer has any effect. Remove it.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 include/hw/virtio/virtio-scsi.h | 14 --------------
 hw/scsi/scsi-bus.c              |  2 --
 hw/scsi/scsi-disk.c             | 31 +++++--------------------------
 hw/scsi/virtio-scsi.c           | 18 ------------------
 4 files changed, 5 insertions(+), 60 deletions(-)

diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
index da8cb928d9..7f0573b1bf 100644
--- a/include/hw/virtio/virtio-scsi.h
+++ b/include/hw/virtio/virtio-scsi.h
@@ -101,20 +101,6 @@ struct VirtIOSCSI {
     uint32_t host_features;
 };
 
-static inline void virtio_scsi_acquire(VirtIOSCSI *s)
-{
-    if (s->ctx) {
-        aio_context_acquire(s->ctx);
-    }
-}
-
-static inline void virtio_scsi_release(VirtIOSCSI *s)
-{
-    if (s->ctx) {
-        aio_context_release(s->ctx);
-    }
-}
-
 void virtio_scsi_common_realize(DeviceState *dev,
                                 VirtIOHandleOutput ctrl,
                                 VirtIOHandleOutput evt,
diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c
index f3ec11f892..df68a44b6a 100644
--- a/hw/scsi/scsi-bus.c
+++ b/hw/scsi/scsi-bus.c
@@ -1731,9 +1731,7 @@ void scsi_device_purge_requests(SCSIDevice *sdev, SCSISense sense)
 {
     scsi_device_for_each_req_async(sdev, scsi_device_purge_one_req, NULL);
 
-    aio_context_acquire(blk_get_aio_context(sdev->conf.blk));
     blk_drain(sdev->conf.blk);
-    aio_context_release(blk_get_aio_context(sdev->conf.blk));
     scsi_device_set_ua(sdev, sense);
 }
 
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index a5048e0aaf..61be3d395a 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -2339,14 +2339,10 @@ static void scsi_disk_reset(DeviceState *dev)
 {
     SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev.qdev, dev);
     uint64_t nb_sectors;
-    AioContext *ctx;
 
     scsi_device_purge_requests(&s->qdev, SENSE_CODE(RESET));
 
-    ctx = blk_get_aio_context(s->qdev.conf.blk);
-    aio_context_acquire(ctx);
     blk_get_geometry(s->qdev.conf.blk, &nb_sectors);
-    aio_context_release(ctx);
 
     nb_sectors /= s->qdev.blocksize / BDRV_SECTOR_SIZE;
     if (nb_sectors) {
@@ -2545,15 +2541,13 @@ static void scsi_unrealize(SCSIDevice *dev)
 static void scsi_hd_realize(SCSIDevice *dev, Error **errp)
 {
     SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, dev);
-    AioContext *ctx = NULL;
+
     /* can happen for devices without drive. The error message for missing
      * backend will be issued in scsi_realize
      */
     if (s->qdev.conf.blk) {
-        ctx = blk_get_aio_context(s->qdev.conf.blk);
-        aio_context_acquire(ctx);
         if (!blkconf_blocksizes(&s->qdev.conf, errp)) {
-            goto out;
+            return;
         }
     }
     s->qdev.blocksize = s->qdev.conf.logical_block_size;
@@ -2562,16 +2556,11 @@ static void scsi_hd_realize(SCSIDevice *dev, Error **errp)
         s->product = g_strdup("QEMU HARDDISK");
     }
     scsi_realize(&s->qdev, errp);
-out:
-    if (ctx) {
-        aio_context_release(ctx);
-    }
 }
 
 static void scsi_cd_realize(SCSIDevice *dev, Error **errp)
 {
     SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, dev);
-    AioContext *ctx;
     int ret;
     uint32_t blocksize = 2048;
 
@@ -2587,8 +2576,6 @@ static void scsi_cd_realize(SCSIDevice *dev, Error **errp)
         blocksize = dev->conf.physical_block_size;
     }
 
-    ctx = blk_get_aio_context(dev->conf.blk);
-    aio_context_acquire(ctx);
     s->qdev.blocksize = blocksize;
     s->qdev.type = TYPE_ROM;
     s->features |= 1 << SCSI_DISK_F_REMOVABLE;
@@ -2596,7 +2583,6 @@ static void scsi_cd_realize(SCSIDevice *dev, Error **errp)
         s->product = g_strdup("QEMU CD-ROM");
     }
     scsi_realize(&s->qdev, errp);
-    aio_context_release(ctx);
 }
 
 
@@ -2727,7 +2713,6 @@ static int get_device_type(SCSIDiskState *s)
 static void scsi_block_realize(SCSIDevice *dev, Error **errp)
 {
     SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, dev);
-    AioContext *ctx;
     int sg_version;
     int rc;
 
@@ -2742,9 +2727,6 @@ static void scsi_block_realize(SCSIDevice *dev, Error **errp)
                           "be removed in a future version");
     }
 
-    ctx = blk_get_aio_context(s->qdev.conf.blk);
-    aio_context_acquire(ctx);
-
     /* check we are using a driver managing SG_IO (version 3 and after) */
     rc = blk_ioctl(s->qdev.conf.blk, SG_GET_VERSION_NUM, &sg_version);
     if (rc < 0) {
@@ -2752,18 +2734,18 @@ static void scsi_block_realize(SCSIDevice *dev, Error **errp)
         if (rc != -EPERM) {
             error_append_hint(errp, "Is this a SCSI device?\n");
         }
-        goto out;
+        return;
     }
     if (sg_version < 30000) {
         error_setg(errp, "scsi generic interface too old");
-        goto out;
+        return;
     }
 
     /* get device type from INQUIRY data */
     rc = get_device_type(s);
     if (rc < 0) {
         error_setg(errp, "INQUIRY failed");
-        goto out;
+        return;
     }
 
     /* Make a guess for the block size, we'll fix it when the guest sends.
@@ -2783,9 +2765,6 @@ static void scsi_block_realize(SCSIDevice *dev, Error **errp)
 
     scsi_realize(&s->qdev, errp);
     scsi_generic_read_device_inquiry(&s->qdev);
-
-out:
-    aio_context_release(ctx);
 }
 
 typedef struct SCSIBlockReq {
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
index 4f8d35facc..ca365a70e9 100644
--- a/hw/scsi/virtio-scsi.c
+++ b/hw/scsi/virtio-scsi.c
@@ -642,9 +642,7 @@ static void virtio_scsi_handle_ctrl(VirtIODevice *vdev, VirtQueue *vq)
         return;
     }
 
-    virtio_scsi_acquire(s);
     virtio_scsi_handle_ctrl_vq(s, vq);
-    virtio_scsi_release(s);
 }
 
 static void virtio_scsi_complete_cmd_req(VirtIOSCSIReq *req)
@@ -882,9 +880,7 @@ static void virtio_scsi_handle_cmd(VirtIODevice *vdev, VirtQueue *vq)
         return;
     }
 
-    virtio_scsi_acquire(s);
     virtio_scsi_handle_cmd_vq(s, vq);
-    virtio_scsi_release(s);
 }
 
 static void virtio_scsi_get_config(VirtIODevice *vdev,
@@ -1031,9 +1027,7 @@ static void virtio_scsi_handle_event(VirtIODevice *vdev, VirtQueue *vq)
         return;
     }
 
-    virtio_scsi_acquire(s);
     virtio_scsi_handle_event_vq(s, vq);
-    virtio_scsi_release(s);
 }
 
 static void virtio_scsi_change(SCSIBus *bus, SCSIDevice *dev, SCSISense sense)
@@ -1052,9 +1046,7 @@ static void virtio_scsi_change(SCSIBus *bus, SCSIDevice *dev, SCSISense sense)
             },
         };
 
-        virtio_scsi_acquire(s);
         virtio_scsi_push_event(s, &info);
-        virtio_scsi_release(s);
     }
 }
 
@@ -1071,17 +1063,13 @@ static void virtio_scsi_hotplug(HotplugHandler *hotplug_dev, DeviceState *dev,
     VirtIODevice *vdev = VIRTIO_DEVICE(hotplug_dev);
     VirtIOSCSI *s = VIRTIO_SCSI(vdev);
     SCSIDevice *sd = SCSI_DEVICE(dev);
-    AioContext *old_context;
     int ret;
 
     if (s->ctx && !s->dataplane_fenced) {
         if (blk_op_is_blocked(sd->conf.blk, BLOCK_OP_TYPE_DATAPLANE, errp)) {
             return;
         }
-        old_context = blk_get_aio_context(sd->conf.blk);
-        aio_context_acquire(old_context);
         ret = blk_set_aio_context(sd->conf.blk, s->ctx, errp);
-        aio_context_release(old_context);
         if (ret < 0) {
             return;
         }
@@ -1097,10 +1085,8 @@ static void virtio_scsi_hotplug(HotplugHandler *hotplug_dev, DeviceState *dev,
             },
         };
 
-        virtio_scsi_acquire(s);
         virtio_scsi_push_event(s, &info);
         scsi_bus_set_ua(&s->bus, SENSE_CODE(REPORTED_LUNS_CHANGED));
-        virtio_scsi_release(s);
     }
 }
 
@@ -1122,17 +1108,13 @@ static void virtio_scsi_hotunplug(HotplugHandler *hotplug_dev, DeviceState *dev,
     qdev_simple_device_unplug_cb(hotplug_dev, dev, errp);
 
     if (s->ctx) {
-        virtio_scsi_acquire(s);
         /* If other users keep the BlockBackend in the iothread, that's ok */
         blk_set_aio_context(sd->conf.blk, qemu_get_aio_context(), NULL);
-        virtio_scsi_release(s);
     }
 
     if (virtio_vdev_has_feature(vdev, VIRTIO_SCSI_F_HOTPLUG)) {
-        virtio_scsi_acquire(s);
         virtio_scsi_push_event(s, &info);
         scsi_bus_set_ua(&s->bus, SENSE_CODE(REPORTED_LUNS_CHANGED));
-        virtio_scsi_release(s);
     }
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648195.1012360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2P-0005oJ-4U; Tue, 05 Dec 2023 18:20:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648195.1012360; Tue, 05 Dec 2023 18: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 1rAa2O-0005nc-Vd; Tue, 05 Dec 2023 18:20:52 +0000
Received: by outflank-mailman (input) for mailman id 648195;
 Tue, 05 Dec 2023 18: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2O-0002wG-0I
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20: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 03b80a54-939b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 19:20:49 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-696-FJu31-KlP_-4-uDfX0zTIw-1; Tue,
 05 Dec 2023 13:20:44 -0500
Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com
 [10.11.54.10])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 52F743C2A1CB;
 Tue,  5 Dec 2023 18:20:43 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id AF518492BE6;
 Tue,  5 Dec 2023 18:20: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: 03b80a54-939b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800448;
	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=CXVutLONoGnwNzaaLHCyq57V4khRfPmIjmlvVDaOzsM=;
	b=Q6LP+B8SIvX1gS/60KXvRyKZKkKJaOhR3gvE9nI3lNHWsAtFvj3u0pta24hDl9dD7gwwNb
	4pDwavhPpdw4ZGEB+GbRx6iZapvjlCHRA82MRPrHDpIYDnsTZSdXhI9LnXA1uwMANDDwpW
	n+2m1gpfAtEIdHZTZz8fKnqfmYnH+30=
X-MC-Unique: FJu31-KlP_-4-uDfX0zTIw-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 10/14] aio: remove aio_context_acquire()/aio_context_release() API
Date: Tue,  5 Dec 2023 13:20:07 -0500
Message-ID: <20231205182011.1976568-11-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10

Delete these functions because nothing calls these functions anymore.

I introduced these APIs in commit 98563fc3ec44 ("aio: add
aio_context_acquire() and aio_context_release()") in 2014. It's with a
sigh of relief that I delete these APIs almost 10 years later.

Thanks to Paolo Bonzini's vision for multi-queue QEMU, we got an
understanding of where the code needed to go in order to remove the
limitations that the original dataplane and the IOThread/AioContext
approach that followed it.

Emanuele Giuseppe Esposito had the splendid determination to convert
large parts of the codebase so that they no longer needed the AioContext
lock. This was a painstaking process, both in the actual code changes
required and the iterations of code review that Emanuele eked out of
Kevin and me over many months.

Kevin Wolf tackled multitudes of graph locking conversions to protect
in-flight I/O from run-time changes to the block graph as well as the
clang Thread Safety Analysis annotations that allow the compiler to
check whether the graph lock is being used correctly.

And me, well, I'm just here to add some pizzazz to the QEMU multi-queue
block layer :). Thank you to everyone who helped with this effort,
including Eric Blake, code reviewer extraordinaire, and others who I've
forgotten to mention.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 include/block/aio.h | 17 -----------------
 util/async.c        | 10 ----------
 2 files changed, 27 deletions(-)

diff --git a/include/block/aio.h b/include/block/aio.h
index f08b358077..af05512a7d 100644
--- a/include/block/aio.h
+++ b/include/block/aio.h
@@ -278,23 +278,6 @@ void aio_context_ref(AioContext *ctx);
  */
 void aio_context_unref(AioContext *ctx);
 
-/* Take ownership of the AioContext.  If the AioContext will be shared between
- * threads, and a thread does not want to be interrupted, it will have to
- * take ownership around calls to aio_poll().  Otherwise, aio_poll()
- * automatically takes care of calling aio_context_acquire and
- * aio_context_release.
- *
- * Note that this is separate from bdrv_drained_begin/bdrv_drained_end.  A
- * thread still has to call those to avoid being interrupted by the guest.
- *
- * Bottom halves, timers and callbacks can be created or removed without
- * acquiring the AioContext.
- */
-void aio_context_acquire(AioContext *ctx);
-
-/* Relinquish ownership of the AioContext. */
-void aio_context_release(AioContext *ctx);
-
 /**
  * aio_bh_schedule_oneshot_full: Allocate a new bottom half structure that will
  * run only once and as soon as possible.
diff --git a/util/async.c b/util/async.c
index dfd44ef612..460529057c 100644
--- a/util/async.c
+++ b/util/async.c
@@ -719,16 +719,6 @@ void aio_context_unref(AioContext *ctx)
     g_source_unref(&ctx->source);
 }
 
-void aio_context_acquire(AioContext *ctx)
-{
-    /* TODO remove this function */
-}
-
-void aio_context_release(AioContext *ctx)
-{
-    /* TODO remove this function */
-}
-
 QEMU_DEFINE_STATIC_CO_TLS(AioContext *, my_aiocontext)
 
 AioContext *qemu_get_current_aio_context(void)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648196.1012369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2Q-00069X-Ij; Tue, 05 Dec 2023 18:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648196.1012369; Tue, 05 Dec 2023 18:20:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2Q-00068I-BP; Tue, 05 Dec 2023 18:20:54 +0000
Received: by outflank-mailman (input) for mailman id 648196;
 Tue, 05 Dec 2023 18: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2P-0002wG-0G
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:53 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03bfa233-939b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 19:20:49 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-84-vcT85WOuNBCsPHqsqxe_sw-1; Tue,
 05 Dec 2023 13:20:42 -0500
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com
 [10.11.54.3])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 309EC3C2A1C8;
 Tue,  5 Dec 2023 18:20:41 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 716931121312;
 Tue,  5 Dec 2023 18:20: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: 03bfa233-939b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800448;
	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=pcv/XqVh2Z7iu9z6gUwclnS+Bu4/7vR59iug4jWCKh4=;
	b=dPeenLW2QWqasP3i4IT7DuHtatnhn/4Qc5MekdMRc8bHeur3/M1H/Tpk+ShhgP5QMg5Lym
	+4MCB/mVaQm/PioyJmr3sO2WTxbkrKCz4YHbBbqTVHaVC16nURBx+bXeEE1c2Ms5ywI1OQ
	Th1/A7dQySjgJ42NCYMW/jUquN4S6mk=
X-MC-Unique: vcT85WOuNBCsPHqsqxe_sw-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 09/14] aio-wait: draw equivalence between AIO_WAIT_WHILE() and AIO_WAIT_WHILE_UNLOCKED()
Date: Tue,  5 Dec 2023 13:20:06 -0500
Message-ID: <20231205182011.1976568-10-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3

Now that the AioContext lock no longer exists, AIO_WAIT_WHILE() and
AIO_WAIT_WHILE_UNLOCKED() are equivalent.

A future patch will get rid of AIO_WAIT_WHILE_UNLOCKED().

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 include/block/aio-wait.h | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/include/block/aio-wait.h b/include/block/aio-wait.h
index 5449b6d742..157f105916 100644
--- a/include/block/aio-wait.h
+++ b/include/block/aio-wait.h
@@ -63,9 +63,6 @@ extern AioWait global_aio_wait;
  * @ctx: the aio context, or NULL if multiple aio contexts (for which the
  *       caller does not hold a lock) are involved in the polling condition.
  * @cond: wait while this conditional expression is true
- * @unlock: whether to unlock and then lock again @ctx. This applies
- * only when waiting for another AioContext from the main loop.
- * Otherwise it's ignored.
  *
  * Wait while a condition is true.  Use this to implement synchronous
  * operations that require event loop activity.
@@ -78,7 +75,7 @@ extern AioWait global_aio_wait;
  * wait on conditions between two IOThreads since that could lead to deadlock,
  * go via the main loop instead.
  */
-#define AIO_WAIT_WHILE_INTERNAL(ctx, cond, unlock) ({              \
+#define AIO_WAIT_WHILE_INTERNAL(ctx, cond) ({                      \
     bool waited_ = false;                                          \
     AioWait *wait_ = &global_aio_wait;                             \
     AioContext *ctx_ = (ctx);                                      \
@@ -95,13 +92,7 @@ extern AioWait global_aio_wait;
         assert(qemu_get_current_aio_context() ==                   \
                qemu_get_aio_context());                            \
         while ((cond)) {                                           \
-            if (unlock && ctx_) {                                  \
-                aio_context_release(ctx_);                         \
-            }                                                      \
             aio_poll(qemu_get_aio_context(), true);                \
-            if (unlock && ctx_) {                                  \
-                aio_context_acquire(ctx_);                         \
-            }                                                      \
             waited_ = true;                                        \
         }                                                          \
     }                                                              \
@@ -109,10 +100,11 @@ extern AioWait global_aio_wait;
     waited_; })
 
 #define AIO_WAIT_WHILE(ctx, cond)                                  \
-    AIO_WAIT_WHILE_INTERNAL(ctx, cond, true)
+    AIO_WAIT_WHILE_INTERNAL(ctx, cond)
 
+/* TODO replace this with AIO_WAIT_WHILE() in a future patch */
 #define AIO_WAIT_WHILE_UNLOCKED(ctx, cond)                         \
-    AIO_WAIT_WHILE_INTERNAL(ctx, cond, false)
+    AIO_WAIT_WHILE_INTERNAL(ctx, cond)
 
 /**
  * aio_wait_kick:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648199.1012380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2S-0006YY-EM; Tue, 05 Dec 2023 18:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648199.1012380; Tue, 05 Dec 2023 18: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 1rAa2S-0006Ws-86; Tue, 05 Dec 2023 18:20:56 +0000
Received: by outflank-mailman (input) for mailman id 648199;
 Tue, 05 Dec 2023 18:20: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2Q-0002wG-I7
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:54 +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 05a8f400-939b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 19:20:52 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-685-8BIN0AuQO9OJpRD2qHD49w-1; Tue,
 05 Dec 2023 13:20:46 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 780813C2A1C1;
 Tue,  5 Dec 2023 18:20:45 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id D5A7A40C6EB9;
 Tue,  5 Dec 2023 18:20:44 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 05a8f400-939b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800451;
	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=8/B7zc0XB6x72qbuhQc1b2o1g2AgjtE1qkTNJwgvUlY=;
	b=es5UEZFnLlnAER/WQ1VKxtnMjgIKwE0DDM1v837p1/n0jTVeKA0d+O2qZidblkg5bDK/Cp
	YQzVB2uaRoJMrqNPUZDCEBW2WJIQfYffuWr/E007pFDVIbAFlXRuWuphSZ7KE+h/L5yEK1
	b9GUUnFTleR5zaHMhZtyd/DWP7msn4g=
X-MC-Unique: 8BIN0AuQO9OJpRD2qHD49w-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 11/14] docs: remove AioContext lock from IOThread docs
Date: Tue,  5 Dec 2023 13:20:08 -0500
Message-ID: <20231205182011.1976568-12-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2

Encourage the use of locking primitives and stop mentioning the
AioContext lock since it is being removed.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 docs/devel/multiple-iothreads.txt | 45 +++++++++++--------------------
 1 file changed, 15 insertions(+), 30 deletions(-)

diff --git a/docs/devel/multiple-iothreads.txt b/docs/devel/multiple-iothreads.txt
index a3e949f6b3..4865196bde 100644
--- a/docs/devel/multiple-iothreads.txt
+++ b/docs/devel/multiple-iothreads.txt
@@ -88,27 +88,18 @@ loop, depending on which AioContext instance the caller passes in.
 
 How to synchronize with an IOThread
 -----------------------------------
-AioContext is not thread-safe so some rules must be followed when using file
-descriptors, event notifiers, timers, or BHs across threads:
+Variables that can be accessed by multiple threads require some form of
+synchronization such as qemu_mutex_lock(), rcu_read_lock(), etc.
 
-1. AioContext functions can always be called safely.  They handle their
-own locking internally.
-
-2. Other threads wishing to access the AioContext must use
-aio_context_acquire()/aio_context_release() for mutual exclusion.  Once the
-context is acquired no other thread can access it or run event loop iterations
-in this AioContext.
-
-Legacy code sometimes nests aio_context_acquire()/aio_context_release() calls.
-Do not use nesting anymore, it is incompatible with the BDRV_POLL_WHILE() macro
-used in the block layer and can lead to hangs.
-
-There is currently no lock ordering rule if a thread needs to acquire multiple
-AioContexts simultaneously.  Therefore, it is only safe for code holding the
-QEMU global mutex to acquire other AioContexts.
+AioContext functions like aio_set_fd_handler(), aio_set_event_notifier(),
+aio_bh_new(), and aio_timer_new() are thread-safe. They can be used to trigger
+activity in an IOThread.
 
 Side note: the best way to schedule a function call across threads is to call
-aio_bh_schedule_oneshot().  No acquire/release or locking is needed.
+aio_bh_schedule_oneshot().
+
+The main loop thread can wait synchronously for a condition using
+AIO_WAIT_WHILE().
 
 AioContext and the block layer
 ------------------------------
@@ -124,22 +115,16 @@ Block layer code must therefore expect to run in an IOThread and avoid using
 old APIs that implicitly use the main loop.  See the "How to program for
 IOThreads" above for information on how to do that.
 
-If main loop code such as a QMP function wishes to access a BlockDriverState
-it must first call aio_context_acquire(bdrv_get_aio_context(bs)) to ensure
-that callbacks in the IOThread do not run in parallel.
-
 Code running in the monitor typically needs to ensure that past
 requests from the guest are completed.  When a block device is running
 in an IOThread, the IOThread can also process requests from the guest
 (via ioeventfd).  To achieve both objects, wrap the code between
 bdrv_drained_begin() and bdrv_drained_end(), thus creating a "drained
-section".  The functions must be called between aio_context_acquire()
-and aio_context_release().  You can freely release and re-acquire the
-AioContext within a drained section.
+section".
 
-Long-running jobs (usually in the form of coroutines) are best scheduled in
-the BlockDriverState's AioContext to avoid the need to acquire/release around
-each bdrv_*() call.  The functions bdrv_add/remove_aio_context_notifier,
-or alternatively blk_add/remove_aio_context_notifier if you use BlockBackends,
-can be used to get a notification whenever bdrv_try_change_aio_context() moves a
+Long-running jobs (usually in the form of coroutines) are often scheduled in
+the BlockDriverState's AioContext.  The functions
+bdrv_add/remove_aio_context_notifier, or alternatively
+blk_add/remove_aio_context_notifier if you use BlockBackends, can be used to
+get a notification whenever bdrv_try_change_aio_context() moves a
 BlockDriverState to a different AioContext.
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:20:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:20:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648200.1012386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa2T-0006f7-1Z; Tue, 05 Dec 2023 18:20:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648200.1012386; Tue, 05 Dec 2023 18: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 1rAa2S-0006eA-O7; Tue, 05 Dec 2023 18:20:56 +0000
Received: by outflank-mailman (input) for mailman id 648200;
 Tue, 05 Dec 2023 18: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2R-0002wG-Iu
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:20:55 +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 065b854d-939b-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 19:20:53 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-342-31YqxZDJOkGkEymZe14SUA-1; Tue,
 05 Dec 2023 13:20:49 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1234A29ABA04;
 Tue,  5 Dec 2023 18:20:48 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 6B81D40C6EB9;
 Tue,  5 Dec 2023 18:20:47 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 065b854d-939b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800452;
	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=H+WxIOWX4SMnf2UESX0n+F/AkXzvUVoPbzHBDgPUzKs=;
	b=QJMMuWoZyf1GjWRRO6w+lA0GCFX1mCKzaiQo+kCznJEfv55SK9rwWQ3o8PP8nK+k9uTziX
	mDxdVREWbiUQ5llqOy+YqC+B1wTjNp6SqeKN8QvYuj14/0SdnGHM/8c3PMXVV5Z2v0+eei
	qlR9DN/ZBtzGot+zcN+uz+8yo2YN6bE=
X-MC-Unique: 31YqxZDJOkGkEymZe14SUA-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 12/14] scsi: remove outdated AioContext lock comment
Date: Tue,  5 Dec 2023 13:20:09 -0500
Message-ID: <20231205182011.1976568-13-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2

The SCSI subsystem no longer uses the AioContext lock. Request
processing runs exclusively in the BlockBackend's AioContext since
"scsi: only access SCSIDevice->requests from one thread" and hence the
lock is unnecessary.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 hw/scsi/scsi-disk.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 61be3d395a..2e7e1e9a1c 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -355,7 +355,6 @@ done:
     scsi_req_unref(&r->req);
 }
 
-/* Called with AioContext lock held */
 static void scsi_dma_complete(void *opaque, int ret)
 {
     SCSIDiskReq *r = (SCSIDiskReq *)opaque;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:27:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:27:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648216.1012400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAa8L-0001uM-R9; Tue, 05 Dec 2023 18:27:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648216.1012400; Tue, 05 Dec 2023 18:27: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 1rAa8L-0001uF-Nk; Tue, 05 Dec 2023 18:27:01 +0000
Received: by outflank-mailman (input) for mailman id 648216;
 Tue, 05 Dec 2023 18:27: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2Y-0002fT-B3
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:21: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 0ae3812e-939b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 19:21:01 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-104-9IK1xsJfM6qlc9VTvpSUpA-1; Tue, 05 Dec 2023 13:20:51 -0500
Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com
 [10.11.54.6])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id B3C0E185A786;
 Tue,  5 Dec 2023 18:20:50 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 160AC2166B31;
 Tue,  5 Dec 2023 18:20: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: 0ae3812e-939b-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800460;
	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=epSHBjIPGBGGtE9Q/MgkR6IvNKquBK1BoKNfsiriADs=;
	b=YJXQdlvDQwtIGFu40OEoeusfDnbE+B+07dDJ4H11TXy5hKJV3qwCnzNl7OFYU+Br/MwnRQ
	SQQWIQR+QOh6Uaz149GoapEkyQUwuYdbiqgZN1Aaf7qo6g7KkC5DIafHrp3r8vgO4QfqIM
	R0uZcqaZdp2Owprn4i7wq1qkO1ZQHAI=
X-MC-Unique: 9IK1xsJfM6qlc9VTvpSUpA-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 13/14] job: remove outdated AioContext locking comments
Date: Tue,  5 Dec 2023 13:20:10 -0500
Message-ID: <20231205182011.1976568-14-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6

The AioContext lock no longer exists.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 include/qemu/job.h | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/include/qemu/job.h b/include/qemu/job.h
index e502787dd8..9ea98b5927 100644
--- a/include/qemu/job.h
+++ b/include/qemu/job.h
@@ -67,8 +67,6 @@ typedef struct Job {
 
     /**
      * The completion function that will be called when the job completes.
-     * Called with AioContext lock held, since many callback implementations
-     * use bdrv_* functions that require to hold the lock.
      */
     BlockCompletionFunc *cb;
 
@@ -264,9 +262,6 @@ struct JobDriver {
      *
      * This callback will not be invoked if the job has already failed.
      * If it fails, abort and then clean will be called.
-     *
-     * Called with AioContext lock held, since many callbacs implementations
-     * use bdrv_* functions that require to hold the lock.
      */
     int (*prepare)(Job *job);
 
@@ -277,9 +272,6 @@ struct JobDriver {
      *
      * All jobs will complete with a call to either .commit() or .abort() but
      * never both.
-     *
-     * Called with AioContext lock held, since many callback implementations
-     * use bdrv_* functions that require to hold the lock.
      */
     void (*commit)(Job *job);
 
@@ -290,9 +282,6 @@ struct JobDriver {
      *
      * All jobs will complete with a call to either .commit() or .abort() but
      * never both.
-     *
-     * Called with AioContext lock held, since many callback implementations
-     * use bdrv_* functions that require to hold the lock.
      */
     void (*abort)(Job *job);
 
@@ -301,9 +290,6 @@ struct JobDriver {
      * .commit() or .abort(). Regardless of which callback is invoked after
      * completion, .clean() will always be called, even if the job does not
      * belong to a transaction group.
-     *
-     * Called with AioContext lock held, since many callbacs implementations
-     * use bdrv_* functions that require to hold the lock.
      */
     void (*clean)(Job *job);
 
@@ -318,17 +304,12 @@ struct JobDriver {
      * READY).
      * (If the callback is NULL, the job is assumed to terminate
      * without I/O.)
-     *
-     * Called with AioContext lock held, since many callback implementations
-     * use bdrv_* functions that require to hold the lock.
      */
     bool (*cancel)(Job *job, bool force);
 
 
     /**
      * Called when the job is freed.
-     * Called with AioContext lock held, since many callback implementations
-     * use bdrv_* functions that require to hold the lock.
      */
     void (*free)(Job *job);
 };
@@ -424,7 +405,6 @@ void job_ref_locked(Job *job);
  * Release a reference that was previously acquired with job_ref_locked() or
  * job_create(). If it's the last reference to the object, it will be freed.
  *
- * Takes AioContext lock internally to invoke a job->driver callback.
  * Called with job lock held.
  */
 void job_unref_locked(Job *job);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:32:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:32:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648226.1012409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAaDo-0005LB-Br; Tue, 05 Dec 2023 18:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648226.1012409; Tue, 05 Dec 2023 18:32:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAaDo-0005L4-97; Tue, 05 Dec 2023 18:32:40 +0000
Received: by outflank-mailman (input) for mailman id 648226;
 Tue, 05 Dec 2023 18:32:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAaDn-0005IJ-1z
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:32:39 +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 1rAaDl-0004HJ-5h; Tue, 05 Dec 2023 18:32:37 +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 1rAaDk-0007ET-R5; Tue, 05 Dec 2023 18:32:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=uV43mf2udG/DKrLzWvUqnyy/HVgeQgGqI+W4eOCsXJw=; b=LKh0sx
	sHE6cNKM67g37yCo95EFnPrHubUyePnWej1yO+5H0JYXGlj33f2vPqTFvhd6eZhX1ZvasWLDdYoBg
	WLIf3ZXZ7esW8uO9cjNvt5ErKzu6Evbm1CWWdoRsUbVg3PiF6SqpA0k0oRXlgN44q01u9An8f80DN
	37dyoVmwb6U=;
From: Julien Grall <julien@xen.org>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	Julien Grall <jgrall@amazon.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Daniel De Graaf <dgdegra@tycho.nsa.gov>,
	Quan Xu <quan.xu0@gmail.com>,
	Juergen Gross <jgross@suse.com>,
	Alexander Kanavin <alex@linutronix.de>
Subject: [PATCH] Only compile the hypervisor with -Wdeclaration-after-statement
Date: Tue,  5 Dec 2023 18:32:26 +0000
Message-Id: <20231205183226.26636-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>

Right now, all tools and hypervisor will be complied with the option
-Wdeclaration-after-statement. While most of the code in the hypervisor
is controlled by us, for tools we may import external libraries.

The build will fail if one of them are using the construct we are
trying to prevent. This is the case when building against Python 3.12
and Yocto:

| In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44,
|                  from xen/lowlevel/xc/xc.c:8:
| /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE':
| /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
|   233 |     PyVarObject *var_ob = _PyVarObject_CAST(ob);
|       |     ^~~~~~~~~~~
| In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53:
| /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue':
| /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
|   121 |     Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
|       |     ^~~~~~~~~~
| cc1: all warnings being treated as errors

Looking at the tools directory, a fair few directory already add
-Wno-declaration-after-statement to inhibit the default behavior.

We have always build the hypervisor with the flag, so for now remove
only the flag for anything but the hypervisor. We can decide at later
time whether we want to relax.

Also remove the -Wno-declaration-after-statement in some subdirectory
as the flag is now unnecessary.

Part of the commit message was take from Alexander's first proposal:

Link: https://lore.kernel.org/xen-devel/20231128174729.3880113-1-alex@linutronix.de/
Reported-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Julien Grall <jgrall@amazon.com>

---

I think the decision to remove the flag for the hypervisor is a separate
discussion. Personally I am on the fence.

We could also re-enable the flags to some of the tools directory
if wanted. I chose the most convenience approach for now.
---
 Config.mk                   | 2 --
 stubdom/Makefile            | 2 +-
 stubdom/vtpmmgr/Makefile    | 2 +-
 tools/libs/light/Makefile   | 3 +--
 tools/libs/util/Makefile    | 3 +--
 tools/tests/depriv/Makefile | 2 --
 tools/xl/Makefile           | 3 +--
 xen/Makefile                | 1 +
 8 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/Config.mk b/Config.mk
index 2c43702958eb..7e67b91de293 100644
--- a/Config.mk
+++ b/Config.mk
@@ -177,8 +177,6 @@ CFLAGS += -std=gnu99
 
 CFLAGS += -Wall -Wstrict-prototypes
 
-$(call cc-option-add,HOSTCFLAGS,HOSTCC,-Wdeclaration-after-statement)
-$(call cc-option-add,CFLAGS,CC,-Wdeclaration-after-statement)
 $(call cc-option-add,CFLAGS,CC,-Wno-unused-but-set-variable)
 $(call cc-option-add,CFLAGS,CC,-Wno-unused-local-typedefs)
 
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 71c9b2200e68..8c503c2bf8de 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -245,7 +245,7 @@ tpm_emulator-$(XEN_TARGET_ARCH): tpm_emulator-$(TPMEMU_VERSION).tar.gz
 	patch -d $@ -p1 < vtpm-command-duration.patch
 	patch -d $@ -p1 < vtpm-tpm_bn_t-addr.patch
 	mkdir $@/build
-	cd $@/build; CC=${CC} $(CMAKE) .. -DCMAKE_C_FLAGS:STRING="-std=c99 -DTPM_NO_EXTERN $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Wno-declaration-after-statement"
+	cd $@/build; CC=${CC} $(CMAKE) .. -DCMAKE_C_FLAGS:STRING="-std=c99 -DTPM_NO_EXTERN $(TARGET_CPPFLAGS) $(TARGET_CFLAGS)"
 	touch $@
 
 TPMEMU_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libtpm.a
diff --git a/stubdom/vtpmmgr/Makefile b/stubdom/vtpmmgr/Makefile
index 6dae034a0778..c29bb498381c 100644
--- a/stubdom/vtpmmgr/Makefile
+++ b/stubdom/vtpmmgr/Makefile
@@ -17,7 +17,7 @@ OBJS += vtpm_disk.o disk_tpm.o disk_io.o disk_crypto.o disk_read.o disk_write.o
 OBJS += mgmt_authority.o
 
 CFLAGS+=-Werror -Iutil -Icrypto -Itcs
-CFLAGS+=-Wno-declaration-after-statement -Wno-unused-label
+CFLAGS+=-Wno-unused-label
 
 build: $(TARGET)
 $(TARGET): $(OBJS)
diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
index ba4c1b79336f..37e4d1670986 100644
--- a/tools/libs/light/Makefile
+++ b/tools/libs/light/Makefile
@@ -38,8 +38,7 @@ vpath static_tables.c $(ACPI_PATH)/
 
 OBJS-$(CONFIG_X86) += $(ACPI_OBJS)
 
-CFLAGS += -Wno-format-zero-length -Wmissing-declarations \
-	-Wno-declaration-after-statement -Wformat-nonliteral
+CFLAGS += -Wno-format-zero-length -Wmissing-declarations -Wformat-nonliteral
 
 CFLAGS-$(CONFIG_X86) += -DCONFIG_PCI_SUPP_LEGACY_IRQ
 
diff --git a/tools/libs/util/Makefile b/tools/libs/util/Makefile
index c3b21875dcd8..936ec90a3153 100644
--- a/tools/libs/util/Makefile
+++ b/tools/libs/util/Makefile
@@ -9,8 +9,7 @@ OBJS-y += libxlu_disk.o
 OBJS-y += libxlu_vif.o
 OBJS-y += libxlu_pci.o
 
-CFLAGS += -Wno-format-zero-length -Wmissing-declarations \
-	-Wno-declaration-after-statement -Wformat-nonliteral
+CFLAGS += -Wno-format-zero-length -Wmissing-declarations -Wformat-nonliteral
 CFLAGS += $(CFLAGS_libxenctrl)
 
 CFLAGS += $(PTHREAD_CFLAGS)
diff --git a/tools/tests/depriv/Makefile b/tools/tests/depriv/Makefile
index 7d9e3b01bbd4..5404a12f4780 100644
--- a/tools/tests/depriv/Makefile
+++ b/tools/tests/depriv/Makefile
@@ -1,8 +1,6 @@
 XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-CFLAGS += -Wno-declaration-after-statement
-
 CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
 CFLAGS += $(CFLAGS_libxencall)
diff --git a/tools/xl/Makefile b/tools/xl/Makefile
index 5f7aa5f46c87..d742e96a5b3e 100644
--- a/tools/xl/Makefile
+++ b/tools/xl/Makefile
@@ -5,8 +5,7 @@
 XEN_ROOT = $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-CFLAGS += -Wno-format-zero-length -Wmissing-declarations \
-	-Wno-declaration-after-statement -Wformat-nonliteral
+CFLAGS += -Wno-format-zero-length -Wmissing-declarations -Wformat-nonliteral
 CFLAGS += -fPIC
 
 CFLAGS += $(PTHREAD_CFLAGS)
diff --git a/xen/Makefile b/xen/Makefile
index ca571103c868..360fb6dcae57 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -393,6 +393,7 @@ CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections -fdata-sections
 
 CFLAGS += -nostdinc -fno-builtin -fno-common
 CFLAGS += -Werror -Wredundant-decls -Wwrite-strings -Wno-pointer-arith
+$(call cc-option-add,CFLAGS,CC,-Wdeclaration-after-statement)
 $(call cc-option-add,CFLAGS,CC,-Wvla)
 CFLAGS += -pipe -D__XEN__ -include $(srctree)/include/xen/config.h
 CFLAGS-$(CONFIG_DEBUG_INFO) += -g
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:33:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:33:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648230.1012419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAaEo-0006BG-P4; Tue, 05 Dec 2023 18:33:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648230.1012419; Tue, 05 Dec 2023 18: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 1rAaEo-0006B9-MR; Tue, 05 Dec 2023 18:33:42 +0000
Received: by outflank-mailman (input) for mailman id 648230;
 Tue, 05 Dec 2023 18: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=I6T2=HQ=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rAa2b-0002fT-TE
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:21:05 +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 0cde4305-939b-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 19:21:04 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-108-Ot4DU_SOMbSwWhL1j98Pcg-1; Tue, 05 Dec 2023 13:20:54 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6617985A58A;
 Tue,  5 Dec 2023 18:20:53 +0000 (UTC)
Received: from localhost (unknown [10.39.194.111])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 6DA5740C6EB9;
 Tue,  5 Dec 2023 18:20: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: 0cde4305-939b-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701800463;
	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=N/WlNEcJiVcwUo4X2yN6OGfeTdrwDXu2CtfUNEQgJM8=;
	b=iwQIwU5I/JNUG7jwE/8C+MrBrnCnEpK3Sr9m0CRV/v9Yqo9ejBkZg77GrJk3WQPsWXlo9p
	loHLizgbIYqZGgTmNWKcdDddXdP8qJpyMJYZW40V3Pu4K2wQ9zX+GzJoBVnhOV436gdIx3
	rYAgFYOzvdM9/okTLzhRwPRI3XIzAS4=
X-MC-Unique: Ot4DU_SOMbSwWhL1j98Pcg-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>,
	Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 14/14] block: remove outdated AioContext locking comments
Date: Tue,  5 Dec 2023 13:20:11 -0500
Message-ID: <20231205182011.1976568-15-stefanha@redhat.com>
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2

The AioContext lock no longer exists.

There is one noteworthy change:

  - * More specifically, these functions use BDRV_POLL_WHILE(bs), which
  - * requires the caller to be either in the main thread and hold
  - * the BlockdriverState (bs) AioContext lock, or directly in the
  - * home thread that runs the bs AioContext. Calling them from
  - * another thread in another AioContext would cause deadlocks.
  + * More specifically, these functions use BDRV_POLL_WHILE(bs), which requires
  + * the caller to be either in the main thread or directly in the home thread
  + * that runs the bs AioContext. Calling them from another thread in another
  + * AioContext would cause deadlocks.

I am not sure whether deadlocks are still possible. Maybe they have just
moved to the fine-grained locks that have replaced the AioContext. Since
I am not sure if the deadlocks are gone, I have kept the substance
unchanged and just removed mention of the AioContext.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 include/block/block-common.h         |  3 --
 include/block/block-io.h             |  9 ++--
 include/block/block_int-common.h     |  2 -
 block.c                              | 73 ++++++----------------------
 block/block-backend.c                |  8 ---
 block/export/vhost-user-blk-server.c |  4 --
 tests/qemu-iotests/202               |  2 +-
 tests/qemu-iotests/203               |  3 +-
 8 files changed, 22 insertions(+), 82 deletions(-)

diff --git a/include/block/block-common.h b/include/block/block-common.h
index d7599564db..a846023a09 100644
--- a/include/block/block-common.h
+++ b/include/block/block-common.h
@@ -70,9 +70,6 @@
  * automatically takes the graph rdlock when calling the wrapped function. In
  * the same way, no_co_wrapper_bdrv_wrlock functions automatically take the
  * graph wrlock.
- *
- * If the first parameter of the function is a BlockDriverState, BdrvChild or
- * BlockBackend pointer, the AioContext lock for it is taken in the wrapper.
  */
 #define no_co_wrapper
 #define no_co_wrapper_bdrv_rdlock
diff --git a/include/block/block-io.h b/include/block/block-io.h
index 8eb39a858b..b49e0537dd 100644
--- a/include/block/block-io.h
+++ b/include/block/block-io.h
@@ -332,11 +332,10 @@ bdrv_co_copy_range(BdrvChild *src, int64_t src_offset,
  * "I/O or GS" API functions. These functions can run without
  * the BQL, but only in one specific iothread/main loop.
  *
- * More specifically, these functions use BDRV_POLL_WHILE(bs), which
- * requires the caller to be either in the main thread and hold
- * the BlockdriverState (bs) AioContext lock, or directly in the
- * home thread that runs the bs AioContext. Calling them from
- * another thread in another AioContext would cause deadlocks.
+ * More specifically, these functions use BDRV_POLL_WHILE(bs), which requires
+ * the caller to be either in the main thread or directly in the home thread
+ * that runs the bs AioContext. Calling them from another thread in another
+ * AioContext would cause deadlocks.
  *
  * Therefore, these functions are not proper I/O, because they
  * can't run in *any* iothreads, but only in a specific one.
diff --git a/include/block/block_int-common.h b/include/block/block_int-common.h
index 4e31d161c5..151279d481 100644
--- a/include/block/block_int-common.h
+++ b/include/block/block_int-common.h
@@ -1192,8 +1192,6 @@ struct BlockDriverState {
     /* The error object in use for blocking operations on backing_hd */
     Error *backing_blocker;
 
-    /* Protected by AioContext lock */
-
     /*
      * If we are reading a disk image, give its size in sectors.
      * Generally read-only; it is written to by load_snapshot and
diff --git a/block.c b/block.c
index 434b7f4d72..a097772238 100644
--- a/block.c
+++ b/block.c
@@ -1616,11 +1616,6 @@ out:
     g_free(gen_node_name);
 }
 
-/*
- * The caller must always hold @bs AioContext lock, because this function calls
- * bdrv_refresh_total_sectors() which polls when called from non-coroutine
- * context.
- */
 static int no_coroutine_fn GRAPH_UNLOCKED
 bdrv_open_driver(BlockDriverState *bs, BlockDriver *drv, const char *node_name,
                  QDict *options, int open_flags, Error **errp)
@@ -2901,7 +2896,7 @@ uint64_t bdrv_qapi_perm_to_blk_perm(BlockPermission qapi_perm)
  * Replaces the node that a BdrvChild points to without updating permissions.
  *
  * If @new_bs is non-NULL, the parent of @child must already be drained through
- * @child and the caller must hold the AioContext lock for @new_bs.
+ * @child.
  */
 static void GRAPH_WRLOCK
 bdrv_replace_child_noperm(BdrvChild *child, BlockDriverState *new_bs)
@@ -3041,9 +3036,8 @@ static TransactionActionDrv bdrv_attach_child_common_drv = {
  *
  * Returns new created child.
  *
- * The caller must hold the AioContext lock for @child_bs. Both @parent_bs and
- * @child_bs can move to a different AioContext in this function. Callers must
- * make sure that their AioContext locking is still correct after this.
+ * Both @parent_bs and @child_bs can move to a different AioContext in this
+ * function.
  */
 static BdrvChild * GRAPH_WRLOCK
 bdrv_attach_child_common(BlockDriverState *child_bs,
@@ -3142,9 +3136,8 @@ bdrv_attach_child_common(BlockDriverState *child_bs,
 /*
  * Function doesn't update permissions, caller is responsible for this.
  *
- * The caller must hold the AioContext lock for @child_bs. Both @parent_bs and
- * @child_bs can move to a different AioContext in this function. Callers must
- * make sure that their AioContext locking is still correct after this.
+ * Both @parent_bs and @child_bs can move to a different AioContext in this
+ * function.
  *
  * After calling this function, the transaction @tran may only be completed
  * while holding a writer lock for the graph.
@@ -3184,9 +3177,6 @@ bdrv_attach_child_noperm(BlockDriverState *parent_bs,
  *
  * On failure NULL is returned, errp is set and the reference to
  * child_bs is also dropped.
- *
- * The caller must hold the AioContext lock @child_bs, but not that of @ctx
- * (unless @child_bs is already in @ctx).
  */
 BdrvChild *bdrv_root_attach_child(BlockDriverState *child_bs,
                                   const char *child_name,
@@ -3226,9 +3216,6 @@ out:
  *
  * On failure NULL is returned, errp is set and the reference to
  * child_bs is also dropped.
- *
- * If @parent_bs and @child_bs are in different AioContexts, the caller must
- * hold the AioContext lock for @child_bs, but not for @parent_bs.
  */
 BdrvChild *bdrv_attach_child(BlockDriverState *parent_bs,
                              BlockDriverState *child_bs,
@@ -3418,9 +3405,8 @@ static BdrvChildRole bdrv_backing_role(BlockDriverState *bs)
  *
  * Function doesn't update permissions, caller is responsible for this.
  *
- * The caller must hold the AioContext lock for @child_bs. Both @parent_bs and
- * @child_bs can move to a different AioContext in this function. Callers must
- * make sure that their AioContext locking is still correct after this.
+ * Both @parent_bs and @child_bs can move to a different AioContext in this
+ * function.
  *
  * After calling this function, the transaction @tran may only be completed
  * while holding a writer lock for the graph.
@@ -3513,9 +3499,8 @@ out:
 }
 
 /*
- * The caller must hold the AioContext lock for @backing_hd. Both @bs and
- * @backing_hd can move to a different AioContext in this function. Callers must
- * make sure that their AioContext locking is still correct after this.
+ * Both @bs and @backing_hd can move to a different AioContext in this
+ * function.
  *
  * If a backing child is already present (i.e. we're detaching a node), that
  * child node must be drained.
@@ -3574,8 +3559,6 @@ int bdrv_set_backing_hd(BlockDriverState *bs, BlockDriverState *backing_hd,
  * itself, all options starting with "${bdref_key}." are considered part of the
  * BlockdevRef.
  *
- * The caller must hold the main AioContext lock.
- *
  * TODO Can this be unified with bdrv_open_image()?
  */
 int bdrv_open_backing_file(BlockDriverState *bs, QDict *parent_options,
@@ -3745,9 +3728,7 @@ done:
  *
  * The BlockdevRef will be removed from the options QDict.
  *
- * The caller must hold the lock of the main AioContext and no other AioContext.
- * @parent can move to a different AioContext in this function. Callers must
- * make sure that their AioContext locking is still correct after this.
+ * @parent can move to a different AioContext in this function.
  */
 BdrvChild *bdrv_open_child(const char *filename,
                            QDict *options, const char *bdref_key,
@@ -3778,9 +3759,7 @@ BdrvChild *bdrv_open_child(const char *filename,
 /*
  * Wrapper on bdrv_open_child() for most popular case: open primary child of bs.
  *
- * The caller must hold the lock of the main AioContext and no other AioContext.
- * @parent can move to a different AioContext in this function. Callers must
- * make sure that their AioContext locking is still correct after this.
+ * @parent can move to a different AioContext in this function.
  */
 int bdrv_open_file_child(const char *filename,
                          QDict *options, const char *bdref_key,
@@ -3923,8 +3902,6 @@ out:
  * The reference parameter may be used to specify an existing block device which
  * should be opened. If specified, neither options nor a filename may be given,
  * nor can an existing BDS be reused (that is, *pbs has to be NULL).
- *
- * The caller must always hold the main AioContext lock.
  */
 static BlockDriverState * no_coroutine_fn
 bdrv_open_inherit(const char *filename, const char *reference, QDict *options,
@@ -4217,7 +4194,6 @@ close_and_fail:
     return NULL;
 }
 
-/* The caller must always hold the main AioContext lock. */
 BlockDriverState *bdrv_open(const char *filename, const char *reference,
                             QDict *options, int flags, Error **errp)
 {
@@ -4665,10 +4641,7 @@ int bdrv_reopen_set_read_only(BlockDriverState *bs, bool read_only,
  *
  * Return 0 on success, otherwise return < 0 and set @errp.
  *
- * The caller must hold the AioContext lock of @reopen_state->bs.
  * @reopen_state->bs can move to a different AioContext in this function.
- * Callers must make sure that their AioContext locking is still correct after
- * this.
  */
 static int GRAPH_UNLOCKED
 bdrv_reopen_parse_file_or_backing(BDRVReopenState *reopen_state,
@@ -4801,8 +4774,6 @@ out_rdlock:
  * It is the responsibility of the caller to then call the abort() or
  * commit() for any other BDS that have been left in a prepare() state
  *
- * The caller must hold the AioContext lock of @reopen_state->bs.
- *
  * After calling this function, the transaction @change_child_tran may only be
  * completed while holding a writer lock for the graph.
  */
@@ -5437,8 +5408,6 @@ int bdrv_drop_filter(BlockDriverState *bs, Error **errp)
  * child.
  *
  * This function does not create any image files.
- *
- * The caller must hold the AioContext lock for @bs_top.
  */
 int bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top,
                 Error **errp)
@@ -5545,9 +5514,8 @@ static void bdrv_delete(BlockDriverState *bs)
  * after the call (even on failure), so if the caller intends to reuse the
  * dictionary, it needs to use qobject_ref() before calling bdrv_open.
  *
- * The caller holds the AioContext lock for @bs. It must make sure that @bs
- * stays in the same AioContext, i.e. @options must not refer to nodes in a
- * different AioContext.
+ * The caller must make sure that @bs stays in the same AioContext, i.e.
+ * @options must not refer to nodes in a different AioContext.
  */
 BlockDriverState *bdrv_insert_node(BlockDriverState *bs, QDict *options,
                                    int flags, Error **errp)
@@ -7565,10 +7533,6 @@ static TransactionActionDrv set_aio_context = {
  *
  * Must be called from the main AioContext.
  *
- * The caller must own the AioContext lock for the old AioContext of bs, but it
- * must not own the AioContext lock for new_context (unless new_context is the
- * same as the current context of bs).
- *
  * @visited will accumulate all visited BdrvChild objects. The caller is
  * responsible for freeing the list afterwards.
  */
@@ -7621,13 +7585,6 @@ static bool bdrv_change_aio_context(BlockDriverState *bs, AioContext *ctx,
  *
  * If ignore_child is not NULL, that child (and its subgraph) will not
  * be touched.
- *
- * This function still requires the caller to take the bs current
- * AioContext lock, otherwise draining will fail since AIO_WAIT_WHILE
- * assumes the lock is always held if bs is in another AioContext.
- * For the same reason, it temporarily also holds the new AioContext, since
- * bdrv_drained_end calls BDRV_POLL_WHILE that assumes the lock is taken too.
- * Therefore the new AioContext lock must not be taken by the caller.
  */
 int bdrv_try_change_aio_context(BlockDriverState *bs, AioContext *ctx,
                                 BdrvChild *ignore_child, Error **errp)
@@ -7653,8 +7610,8 @@ int bdrv_try_change_aio_context(BlockDriverState *bs, AioContext *ctx,
 
     /*
      * Linear phase: go through all callbacks collected in the transaction.
-     * Run all callbacks collected in the recursion to switch all nodes
-     * AioContext lock (transaction commit), or undo all changes done in the
+     * Run all callbacks collected in the recursion to switch every node's
+     * AioContext (transaction commit), or undo all changes done in the
      * recursion (transaction abort).
      */
 
diff --git a/block/block-backend.c b/block/block-backend.c
index f412bed274..209eb07528 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -390,8 +390,6 @@ BlockBackend *blk_new(AioContext *ctx, uint64_t perm, uint64_t shared_perm)
  * Both sets of permissions can be changed later using blk_set_perm().
  *
  * Return the new BlockBackend on success, null on failure.
- *
- * Callers must hold the AioContext lock of @bs.
  */
 BlockBackend *blk_new_with_bs(BlockDriverState *bs, uint64_t perm,
                               uint64_t shared_perm, Error **errp)
@@ -416,8 +414,6 @@ BlockBackend *blk_new_with_bs(BlockDriverState *bs, uint64_t perm,
  * Just as with bdrv_open(), after having called this function the reference to
  * @options belongs to the block layer (even on failure).
  *
- * Called without holding an AioContext lock.
- *
  * TODO: Remove @filename and @flags; it should be possible to specify a whole
  * BDS tree just by specifying the @options QDict (or @reference,
  * alternatively). At the time of adding this function, this is not possible,
@@ -872,8 +868,6 @@ BlockBackend *blk_by_public(BlockBackendPublic *public)
 
 /*
  * Disassociates the currently associated BlockDriverState from @blk.
- *
- * The caller must hold the AioContext lock for the BlockBackend.
  */
 void blk_remove_bs(BlockBackend *blk)
 {
@@ -915,8 +909,6 @@ void blk_remove_bs(BlockBackend *blk)
 
 /*
  * Associates a new BlockDriverState with @blk.
- *
- * Callers must hold the AioContext lock of @bs.
  */
 int blk_insert_bs(BlockBackend *blk, BlockDriverState *bs, Error **errp)
 {
diff --git a/block/export/vhost-user-blk-server.c b/block/export/vhost-user-blk-server.c
index 16f48388d3..50c358e8cd 100644
--- a/block/export/vhost-user-blk-server.c
+++ b/block/export/vhost-user-blk-server.c
@@ -278,7 +278,6 @@ static void vu_blk_exp_resize(void *opaque)
     vu_config_change_msg(&vexp->vu_server.vu_dev);
 }
 
-/* Called with vexp->export.ctx acquired */
 static void vu_blk_drained_begin(void *opaque)
 {
     VuBlkExport *vexp = opaque;
@@ -287,7 +286,6 @@ static void vu_blk_drained_begin(void *opaque)
     vhost_user_server_detach_aio_context(&vexp->vu_server);
 }
 
-/* Called with vexp->export.blk AioContext acquired */
 static void vu_blk_drained_end(void *opaque)
 {
     VuBlkExport *vexp = opaque;
@@ -300,8 +298,6 @@ static void vu_blk_drained_end(void *opaque)
  * Ensures that bdrv_drained_begin() waits until in-flight requests complete
  * and the server->co_trip coroutine has terminated. It will be restarted in
  * vhost_user_server_attach_aio_context().
- *
- * Called with vexp->export.ctx acquired.
  */
 static bool vu_blk_drained_poll(void *opaque)
 {
diff --git a/tests/qemu-iotests/202 b/tests/qemu-iotests/202
index b784dcd791..13304242e5 100755
--- a/tests/qemu-iotests/202
+++ b/tests/qemu-iotests/202
@@ -21,7 +21,7 @@
 # Check that QMP 'transaction' blockdev-snapshot-sync with multiple drives on a
 # single IOThread completes successfully.  This particular command triggered a
 # hang due to recursive AioContext locking and BDRV_POLL_WHILE().  Protect
-# against regressions.
+# against regressions even though the AioContext lock no longer exists.
 
 import iotests
 
diff --git a/tests/qemu-iotests/203 b/tests/qemu-iotests/203
index ab80fd0e44..1ba878522b 100755
--- a/tests/qemu-iotests/203
+++ b/tests/qemu-iotests/203
@@ -21,7 +21,8 @@
 # Check that QMP 'migrate' with multiple drives on a single IOThread completes
 # successfully.  This particular command triggered a hang in the source QEMU
 # process due to recursive AioContext locking in bdrv_invalidate_all() and
-# BDRV_POLL_WHILE().
+# BDRV_POLL_WHILE().  Protect against regressions even though the AioContext
+# lock no longer exists.
 
 import iotests
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 18:34:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 18:34:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648233.1012430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAaFQ-0006jo-12; Tue, 05 Dec 2023 18:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648233.1012430; Tue, 05 Dec 2023 18:34:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAaFP-0006jh-UW; Tue, 05 Dec 2023 18:34:19 +0000
Received: by outflank-mailman (input) for mailman id 648233;
 Tue, 05 Dec 2023 18:34:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAaFO-0006iL-R0
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 18:34:18 +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 1rAaFM-0004L6-7w; Tue, 05 Dec 2023 18:34:16 +0000
Received: from 54-240-197-228.amazon.com ([54.240.197.228]
 helo=[10.95.100.251]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAaFM-0007R7-0a; Tue, 05 Dec 2023 18:34:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=b2mx82GWmiUxCkQpCz01WIFQ+/VD691RwByjXzdEUa0=; b=HC29peXOaMAXOHBMqeTxUMRefl
	jJ7ZMg96ud7giH8Q/qInTZ5t9EHf/bRBtSqj+vILIwrLMqXSEEYOisvlRnG6lu56mTTwP6QFp8WM6
	D8pAbvVVNE5sn0aUYWkgtmj7wMGSxNbsoT9xLaCcZ+p3jbSHzAfmN2V4hW3b2wKaeZRU=;
Message-ID: <a5909c02-7851-47ec-a401-f808ae3714d8@xen.org>
Date: Tue, 5 Dec 2023 18:34:13 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Config.mk: drop -Wdeclaration-after-statement
Content-Language: en-GB
To: Alexander Kanavin <alex@linutronix.de>, Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <20231128174729.3880113-1-alex@linutronix.de>
 <fcb1cc57-b985-4711-a234-4aaa380b9abe@suse.com>
 <81043e30-c9fd-4c5e-ad63-0e42edea733d@linutronix.de>
 <5a469665-54b2-4904-9604-ad686fbbb05e@xen.org>
 <716b0ec4-adce-494d-b9b6-69dbb7e26000@perard>
 <890f54b5-9692-40b8-94fa-9a55268e29f5@suse.com>
 <da7a86ba-7f74-41bb-9540-76f4530ac7ac@xen.org>
 <da50a3db-b950-4a0e-a7e7-a715c1f74f4a@linutronix.de>
From: Julien Grall <julien@xen.org>
In-Reply-To: <da50a3db-b950-4a0e-a7e7-a715c1f74f4a@linutronix.de>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Alexander.

On 04/12/2023 09:28, Alexander Kanavin wrote:
> On 12/1/23 20:14, Julien Grall wrote:
>>
>> So I agree that if we were to remove -Wdeclaration-after-statement 
>> then we should also update the CODING_STYLE. However, I am not 
>> entirely sure I would want to mix code and declaration in the hypervisor.
>>
>> Anyway, I think this is a separate discussion from resolving the 
>> immediate problem (i.e. building the python bindings).
>>
>> So for now, I think it would make sense to push the 
>> -Wdeclaration-after-statement to the tools.
>>
>> @Alexander, are you going to send a new version? If not, I would be 
>> happy to do it.
> 
> Please do it, as in the meantime, my attention has focused entirely 
> elsewhere, so I'd have to switch context and find time to study the xen 
> source. I don't have specific interest in xen, the reason I looked into 
> it is that we're updating python to 3.12 in yocto and this one was one 
> of the many issues that came up all over the userspace stack.

Thanks, I have sent a patch [1]. I decided to add a Reported-by tag 
rather than Signed-off-by on my version. I hope this is fine.

Cheers,

[1] https://lore.kernel.org/xen-devel/20231205183226.26636-1-julien@xen.org/

> 
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 19:02:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 19:02:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648244.1012440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAagH-0001w8-3C; Tue, 05 Dec 2023 19:02:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648244.1012440; Tue, 05 Dec 2023 19: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 1rAagH-0001w1-0E; Tue, 05 Dec 2023 19:02:05 +0000
Received: by outflank-mailman (input) for mailman id 648244;
 Tue, 05 Dec 2023 19:02:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H3q/=HQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rAagF-0001vv-KA
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 19:02:03 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20610.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4125528-93a0-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 20:02:00 +0100 (CET)
Received: from BL6PEPF00013DFD.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:22e:400:0:1001:0:1d) by PH7PR12MB7356.namprd12.prod.outlook.com
 (2603:10b6:510:20f::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.22; Tue, 5 Dec
 2023 19:01:54 +0000
Received: from BL6PEPF0001AB71.namprd02.prod.outlook.com
 (2a01:111:f403:f903::) by BL6PEPF00013DFD.outlook.office365.com
 (2603:1036:903:4::4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.22 via Frontend
 Transport; Tue, 5 Dec 2023 19:01:53 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF0001AB71.mail.protection.outlook.com (10.167.242.164) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 19:01:53 +0000
Received: from SATLEXMB08.amd.com (10.181.40.132) 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.34; Tue, 5 Dec
 2023 13:01:49 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB08.amd.com
 (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 5 Dec
 2023 11:01:48 -0800
Received: from [172.28.155.39] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Tue, 5 Dec 2023 13:01:47 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4125528-93a0-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cN4d4m1mBg2EWZurlPswOVPMe0xfWOoP2tO0FsqAK73e9F7guXYA8Bmal0qzU7VNCGIb/1hL9/zm/y9L8f79CCvSbJ6YgRnLPu1i3lRyHNgYtP4DoKEfdCD7jk2gZRmg3wtEcGzzwW/Xjvh01BEUHQXNay6Nz8iyISVqD8aIwaEdEgrG8CX4GgXWe2YxCVsLLA6bh9oEQW2m2WJ4Rmd6OpoLbz9Ie0NvSXySPY1j9lRlAfpB0Vqjg8olq2Y84sKDUWimPVp/rplcuVk//UfrI1QByt4uhl+7kXyPNOGyGXzOZuIHQyKTOwlLNsud76GhgeSAyjUJhHY/TbYcmzJbAw==
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=dPjqbsOOnL3POvat++8FNiLpC6i7MPqqdLkyEs+dfXQ=;
 b=LRCBa9QckWSlZqTT2nbDUeZ7+PEERHlEs/rPYkgJn7TdzIPe6MR78Lk+aF3cCh40ARRYIcCMPRTaFSkjQnmiUEnpJ587FPKogCgwxJKkp6y2s8oiNl/lvKVOJMWf7qKHW79Nx/WHe4Pn6T9bzq+lVX/KJk7KoduKFIFXAk3JUlWbonAzHU2hAPNxJkHWPTOdiUQGKrraDjDhufiRKhsyROrMfIxiw7XwlDczU+x+fp1mblFNvl5hp+2Y+/AGlVZazYaYpoy9MfZidx4xIvUwSjcQ8hgvau+PpfRErPzeY5r0jvxVhE5YaypAzdlpaKseC3+99xmEKrHlcwr/NM5Wbw==
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=dPjqbsOOnL3POvat++8FNiLpC6i7MPqqdLkyEs+dfXQ=;
 b=ZUsqFAVJO4L4oBFitVLlPjcLeTXI6fInxfN9YuIEQrTtwBg/juQSSzCYY2e+D3yqUqesXmGT5BMP9hu6bDfWvqliwk+ozCAzSkJs38OvdqKTYaalh9pIIk+XTIymAZ68zhR3FezT2pl9H7Rjzz5kITKrqBwLltb6OdzEx5MQElU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <16de540b-fd79-4c23-9698-a641da9c9967@amd.com>
Date: Tue, 5 Dec 2023 14:01:46 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, "Jan
 Beulich" <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
 <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop>
 <ZW8EkQLTwEEK6fXC@macbook>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <ZW8EkQLTwEEK6fXC@macbook>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB71:EE_|PH7PR12MB7356:EE_
X-MS-Office365-Filtering-Correlation-Id: c12e5c53-6da3-4474-6733-08dbf5c4a556
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	xkvDZ1yoFqfZ79utxmPhvObbWkuHcZEhSwim6mWJHanUtfMiuYdy8MZHsX1HCel8sN5o1/MvyvfBxxfhLwtJmIbE+gI+YtQT1Z/ruedyzPJ6xfINUPwp3myT5XW8kgd7fQuqP8TnktoqV9xZoWL6tTkUCzV/fh05CIBGKFDs+7Xi/iGCdEn9xIA20zLSCjSIdqd/tajxyvqxRZaFpokHh3GcfioY3ss7uRocuHIzqYIcqO6O3tOpl6c9zZ0h4AfiR4xm+BlAJ5PO4rEggjbBusMidTD2qO6o/wiOR0DAT1MnlKbDL0u9YF3ZtNryzfyXON5RKCDtbUe9mVAAC4aNyjH4/TncpOeol7Q5TVYboRP6nq92iM2sMgTB96Nx2eDrZv0mGYVEkcEvzkSV9JgxdPWmvuh6Gr2qonjd/LCzKf3mPitt7ILPOQY5tXrYzX/ziF84RP3oUx39jgejiZ87xaE/E5Iz0Dgqs3728rE3qtgSD/xU3G3qqiQoTSQh8Yv6zO5PW+W427ZOGHJBW7tTSkH7n8lj/6u4/68DxKo22yhBQbWzhyf5q5NyMjgin86rdxkoForQjd0+kKVMSJW1pyWFeYxyS4fL1Oq6wiSggbXA0DpD/GzPsPah1Q2Hy4msnZ6+kKTObY+WTbTtZ5xq5+Gj9WDm8/3Ufo4sazyfgzktB9yjyAVAkG913xvj7lJ+8hgE9TBcnn8dCPIEWt7AJdLE3d0ARFLlD7HnO+PoIeXV06R4J5pRIsjUKTGqOBsD5c4cREypggztE7Vq7/W8G0t6nM+LUZj7acFoIlYoKht25vhGYzfr/NuN/tCE/fJA87O/2r4TQdoQx1WVSIosCPz3pY0fDnunjfnqpB81HT5j9ohHl9UBJmqz7gvhte46RICpz6v43uoLJQN3qz4QXw==
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:(13230031)(4636009)(396003)(136003)(346002)(376002)(39860400002)(230273577357003)(230922051799003)(230173577357003)(186009)(451199024)(64100799003)(1800799012)(82310400011)(40470700004)(46966006)(36840700001)(31686004)(40480700001)(66899024)(426003)(478600001)(26005)(336012)(2616005)(36860700001)(40460700003)(36756003)(82740400003)(81166007)(86362001)(356005)(31696002)(83380400001)(2906002)(44832011)(41300700001)(30864003)(7416002)(4326008)(54906003)(47076005)(70586007)(70206006)(5660300002)(110136005)(16576012)(53546011)(8676002)(8936002)(316002)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 19:01:53.8886
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c12e5c53-6da3-4474-6733-08dbf5c4a556
X-MS-Exchange-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:
	BL6PEPF0001AB71.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7356

On 12/5/23 06:08, Roger Pau MonnÃ© wrote:
> On Mon, Dec 04, 2023 at 02:07:51PM -0800, Stefano Stabellini wrote:
>> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
>>> On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
>>>> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
>>>>> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
>>>>>> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
>>>>>>          bus = PCI_BUS(machine_sbdf);
>>>>>>          devfn = PCI_DEVFN(machine_sbdf);
>>>>>>  
>>>>>> +        if ( needs_vpci(d) && !has_vpci(d) )
>>>>>> +        {
>>>>>> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
>>>>>> +                   &PCI_SBDF(seg, bus, devfn), d);
>>>>>> +            ret = -EPERM;
>>>>>> +            break;
>>>>>
>>>>> I think this is likely too restrictive going forward.  The current
>>>>> approach is indeed to enable vPCI on a per-domain basis because that's
>>>>> how PVH dom0 uses it, due to being unable to use ioreq servers.
>>>>>
>>>>> If we start to expose vPCI suport to guests the interface should be on
>>>>> a per-device basis, so that vPCI could be enabled for some devices,
>>>>> while others could still be handled by ioreq servers.
>>>>>
>>>>> We might want to add a new flag to xen_domctl_assign_device (used by
>>>>> XEN_DOMCTL_assign_device) in order to signal whether the device will
>>>>> use vPCI.
>>>>
>>>> Actually I don't think this is a good idea. I am all for flexibility but
>>>> supporting multiple different configurations comes at an extra cost for
>>>> both maintainers and contributors. I think we should try to reduce the
>>>> amount of configurations we support rather than increasing them
>>>> (especially on x86 where we have PV, PVH, HVM).
>>>
>>> I think it's perfectly fine to initially require a domain to have all
>>> its devices either passed through using vPCI or ireqs, but the
>>> interface IMO should allow for such differentiation in the future.
>>> That's why I think introducing a domain wide vPCI flag might not be
>>> the best option going forward.
>>>
>>> It would be perfectly fine for XEN_DOMCTL_assign_device to set a
>>> domain wide vPCI flag, iow:
>>>
>>> if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
>>> {
>>>     if ( has_arch_pdevs(d) )
>>>     {
>>>         printk("All passthrough devices must use the same backend\n");
>>>         return -EINVAL;
>>>     }
>>>
>>>     /* Set vPCI domain flag */
>>> }
>>
>> That would be fine by me, but maybe we can avoid this change too. I was
>> imagining that vPCI would be enabled at domain creation, not at runtime.
>> And that vPCI would be enabled by default for all PVH guests (once we
>> are past the initial experimental phase.)
> 
> Then we don't even need a new CDF flag, and just enable vPCI when
> IOMMU is enabled?  IOW: we can key the enabling of vPCI to
> XEN_DOMCTL_CDF_iommu for specific domain types?
> 
> Maybe that's not so trivial on x86, as there's no x86 PVH domain type
> from the hypervisor PoV.
> 
>>
>>> We have already agreed that we want to aim for a setup where ioreqs
>>> and vPCI could be used for the same domain, but I guess you assumed
>>> that ioreqs would be used for emulated devices exclusively and vPCI
>>> for passthrough devices?
>>
>> Yes, that's right
>>
>>
>>> Overall if we agree that ioreqs and vPCI should co-exist for a domain,
>>> I'm not sure there's much reason to limit ioreqs to only handle
>>> emulated devices, seems like an arbitrary limitation.
>>
>> Reply below
>>
>>
>>>> I don't think we should enable IOREQ servers to handle PCI passthrough
>>>> for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
>>>> Passthrough can be handled by vPCI just fine. I think this should be a
>>>> good anti-feature to have (a goal to explicitly not add this feature) to
>>>> reduce complexity. Unless you see a specific usecase to add support for
>>>> it?
>>>
>>> There are passthrough devices (GPUs) that might require some extra
>>> mediation on dom0 (like the Intel GVT-g thing) that would force the
>>> usage of ioreqs to passthrough.
>>
>> From an architectural perspective, I think it would be cleaner, simpler
>> to maintain, and simpler to understand if Xen was the sole owner of the
>> PCI Root Complex and PCI config space mediation (implemented with vPCI).
>> IOREQ can be used for emulation and it works very well for that. At
>> least in my mind, that makes things much simpler.
> 
> But IOREQ already has all the code to mediate accesses to the PCI
> config space, and the interface to register separate servers for
> different PCI devices.
> 
> We would then need to duplicate this internally for vPCI, so that vPCI
> could forward accesses to IOREQ just for IOREQ to forward to yet a
> different component?  Seems like a lot of duplication for no benefit.
> 
>> I understand there are non-trivial cases, like virtual GPUs with
>> hardware access, but I don't classify those as passthrough. That's
>> because there isn't one device that gets fully assigned to the guest.
>> Instead, there is an emulated device (hence IOREQ) with certain MMIO
>> regions and interrupts that end up being directly mapped from real
>> hardware.
>>
>> So I think it is natural in those cases to use IOREQ and it is also
>> natural to have QEMU remap MMIO/IRQs at runtime. From a vPCI
>> perspective, I hope it will mostly look as if the device is assigned to
>> Dom0. Even if it ends up being more complex than that, Rome wasn't
>> built in one day, and I don't think we should try to solve this problem
>> on day1 (as long as the interfaces are not stable interfaces).
> 
> I don't see IOREQ as dealing explicitly with emulation.  Yes, it does
> allow for emulators to be implemented in user-space, but at the end
> it's just an interface that allows forwarding accesses to certain
> resources (for the case we are speaking about here, PCI config space)
> to entities that registered as handlers.
> 
> vPCI OTOH just deals with a very specific resource (PCI config space)
> and only allows internal handlers to be registered on a byte
> granularity.
> 
> So your proposal would be to implement a hierarchy like the one on the
> diagram below:
> 
>     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
>     â””â”€â”€â”€â”€â”€â”€â”€â”¬â”˜ â””â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>             â”‚   â”‚               â”‚
>             â”‚   â”‚           â”Œâ”€â”€â”€â”´â”€â”€â”
>             â”‚   â”‚           â”‚ vPCI â”‚
>             â”‚   â”‚           â””â”€â”¬â”€â”€â”¬â”€â”˜
>          â”Œâ”€â”€â”´â”€â”€â”€â”´â”            â”‚  â”‚
>          â”‚ IOREQ â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜  â”‚
>          â””â”€â”€â”€â”€â”¬â”€â”€â”˜               â”‚
>               â”‚                  â”‚
>  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”              â”Œâ”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>  â”‚ IOREQ servers â”‚              â”‚ vPCI handlers â”‚
>  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜              â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> 
> While what I'm proposing would look like:
> 
>     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
>     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>          â”‚          â”‚                â”‚
>          â””â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”´â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>                â”‚  IOREQ  â”‚
>                â””â”€â”¬â”€â”€â”€â”€â”€â”¬â”€â”˜
>                  â”‚     â”‚
>  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”
>  â”‚ IOREQ servers â”‚          â”‚ vPCI â”‚
>  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜          â””â”€â”€â”€â”¬â”€â”€â”˜
>                                 â”‚
>                             â”Œâ”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>                             â”‚ vPCI handlers â”‚
>                             â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> 
> I'm obviously biased, but I think the latter is cleaner, and allows
> all resources to be arbitrated by the same component (IOREQ).
> 
> If the concern is about the IOREQ hypercall interface, it would be
> fine to introduce an option that limit IOREQs to internal users
> (vPCI) without supporting external IOREQ servers.
> 
> Think of IOREQ as a resource mediator inside of Xen, that just does
> the PCI address decoding and forwards the access to the interested
> party, either an external IOREQ server or vPCI.
> 
>>
>>> It's important that the interfaces we introduce are correct IMO,
>>> because that ends up reflecting on the configuration options that we
>>> expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
>>> XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
>>> gets placed there will ultimately influence how the option gets
>>> exposed in xl/libxl, and the interface there is relevant to keep
>>> stable for end user sanity.
>>
>> I agree with you on the stable interfaces. The important part is not to
>> introduce changes to stable interfaces that could limit us in the
>> future. Specifically that includes xl and libxl, we need to be careful
>> there. But I don't see a single per-domain vPCI enable/disable option as
>> a problem. Let's say that in the future we have a mediated vGPU
>> implementation: if it works together with vPCI then the per-domain vPCI
>> option in libxl will be enabled (either explicitely or by default), if
>> it doesn't then vPCI will be disabled (either explicitely or by the
>> newer vGPU options.)
> 
> If vPCI is hooked into IOREQ there won't be a need anymore to register
> the vPCI config space traps, as that would be done by IOREQ, and hence
> vPCI managed devices could be registered at runtime with IOREQ.  IOW:
> there won't be a need anymore to signal at domain creation whether
> vPCI is intended to be used or not.
> 
> We would obviously need to enable IOREQ for all domains with IOMMU
> enabled, as it would be IOREQ that register the PCI config space
> handlers.
> 
>> For *unstable* interfaces (XEN_DOMCTL_assign_device) I would rather wait
>> before adding more changes on top of them, not because I don't care
>> about the mediated GPU problem (we do have something similar at AMD),
>> but because I worry that if we try to change them now we might not do a
>> good enough job. I would prefer to wait until we know more about the
>> actual use case, ideally with code supporting it.
>>
>> I think the difference in points of views comes from the fact that I see
>> vPCI as the default, QEMU only as a limited peripheral emulator (or
>> mediator for the vGPU case) but not in control. vPCI and QEMU are not
>> equal in my view. vPCI is in charge and always present if not in very
>> uncommon setups (even if we decide to hook it inside Xen by using
>> internal IOREQ interfaces). QEMU might come and go.
> 
> Xen needs a single component that mediates accesses to resources,
> whether that's IOREQ, or something else I don't really care that much.

I just wanted to share what the "something else" diagram might look like.

    â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
    â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
    â””â”€â”€â”€â”€â”¬â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”˜
         â”‚          â”‚                  â”‚
         â””â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”˜
            â”‚ PCI Resource Mediator â”‚
            â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
                 â”‚     â”‚
         â”Œâ”€â”€â”€â”€â”€â”€â”€â”¤     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”
         â”‚ IOREQ â”‚          â”‚ vPCI â”‚
         â””â”€â”€â”€â”€â”¬â”€â”€â”˜          â””â”€â”€â”€â”¬â”€â”€â”˜
              â”‚                 â”‚
 â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”          â”Œâ”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
 â”‚ IOREQ servers â”‚          â”‚ vPCI handlers â”‚
 â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜          â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜

> Having vPCI mediate accesses to the PCI config space, and IOREQ to the
> memory (and on x86 IO port) space just seems awfully complicated for
> AFAICT no real benefit.
> 
> Also, you seem to confabulate IOREQ with QEMU, while the latter is
> indeed an user of IOREQ, I do see IOREQ as a simple resource mediator
> inside of Xen, that has the ability to forward such accesses to
> external emulators using an hypercall interface.
> 
>> Now that I am writing this, I realize this is also why I wasn't too
>> happy with the idea of hooking vPCI using IOREQ. It makes them look as
>> if they are the same, while I don't they should be considered at the
>> same level of priority, criticality, safety, integration in the system,
>> etc.
> 
> I feel there are some fears with IOREQ from a safety PoV?  The code
> that does the resource multiplexing is small, and as said above if
> there are safety concerns with the hypercall interface it would be
> fine to limit it's usage to internal handlers only.

Would it make any sense at all to split the resource multiplexing bits from IOREQ into a new separate PCI resource mediator?

> 
> Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 19:03:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 19:03:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648247.1012449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAahY-0002V9-JY; Tue, 05 Dec 2023 19:03:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648247.1012449; Tue, 05 Dec 2023 19: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 1rAahY-0002V2-Gp; Tue, 05 Dec 2023 19:03:24 +0000
Received: by outflank-mailman (input) for mailman id 648247;
 Tue, 05 Dec 2023 19:03:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGQ0=HQ=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rAahX-0002Uu-8Z
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 19:03:23 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3d0119f-93a0-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 20:03:20 +0100 (CET)
Received: from orviesa001.jf.intel.com ([10.64.159.141])
 by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 11:03:16 -0800
Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82])
 by orviesa001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 05 Dec 2023 11:03:16 -0800
Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by
 fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35; Tue, 5 Dec 2023 11:03:15 -0800
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.35; Tue, 5 Dec 2023 11:03:14 -0800
Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.35 via Frontend Transport; Tue, 5 Dec 2023 11:03:14 -0800
Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168)
 by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.34; Tue, 5 Dec 2023 11:03:14 -0800
Received: from SA1PR11MB6734.namprd11.prod.outlook.com (2603:10b6:806:25d::22)
 by BL3PR11MB6484.namprd11.prod.outlook.com (2603:10b6:208:3bf::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec
 2023 19:03:11 +0000
Received: from SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3]) by SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3%7]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023
 19:03: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: f3d0119f-93a0-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701803000; x=1733339000;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=IbHSdREHgd7O1FQ/47PudSb0sVl21m0Dz/eFmLG5FP0=;
  b=l1Xd174Ks/6hl9dgH6y8xbYkY1MHTLkxvd/DNfCPo5JEzHxgtNyD9oOO
   tRvMfjsSh2CM9GSncHe3ap8bcAp3xaZwbZspoYVBKhwIcikGnCCBKsKQ3
   UTU0t1uCzrRHDju05p0BUi5P1vpC4PPxknEUqSWdF4Jw71PtffvjkB6cY
   Dh83SyC8TUxCv9rgotqFHlmwe5DlpX0V0HecNp6NkEKVd4WarM1ES9Tkj
   3uxZkNIbm+TYFjXZ+1zDQajrLhR3C6ZMLsR4Xqjwlzb2TyUFmtKXVUW3o
   LzMDypJ9JYKKER42zel8cv2Bu/Xw6QSOp2z9osfglr+JEpYpVhhZTiQTA
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10915"; a="480138640"
X-IronPort-AV: E=Sophos;i="6.04,253,1695711600"; 
   d="scan'208";a="480138640"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.04,253,1695711600"; 
   d="scan'208";a="19059575"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RsI/2HWKNzM8FlVVPU4k2cO0Yg8vEAXksF9uu0OAxdV+pOTqquw4QhU8dLBQVTzCgz+JgDGbJvAaAMn8WHl4iN/e7jMTUmdBUC19V6Y0oissOM1rKCeXUiqFk6DTmiv7ua8HSwLVxwbhgaARTSQMpRIlGbnWXamJ0luBJDIr0CGOhWKsjWzTZLGaruTvENVqrp0awXBya4gltxw34aE0Blth8wy6Bit9EkMfisK52W8PTcQE235DmSYTXFN2OXqZYk8MGwqaF5r9sBypJECzsyfMqxtQbI0MkIlJKL68CsiaLzISspQlFJVy4z1DdORulqi/uM/TlCduQcgTIkXzsQ==
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=IbHSdREHgd7O1FQ/47PudSb0sVl21m0Dz/eFmLG5FP0=;
 b=iOwj7/AuM1Xagq4v+CMbDtie/yVSVtN82Qwu8zlb7bA8iw8qh+i1Mb1X1gkdjJKodsePunZ/uwpI3G853BHFv4I20J1FScv+o+mZJUpfkuvgQwwHuEs/U+DT8hrHbyq6SHkma794Tnk2IZfWk1y51M0mCTkI6PMme9yAQyn/gexjh3I+cPIJL80QMDUvBsGSivrybY8tkAJYLsfy4EL+Kw7gd+LsdDSAIWYQALI8ok5oX11FfC1sbOL7ZKL9xmJKWqMM1IVfOSin/CYRXNMRQCpYsxEZtrL17inJZ/ZyCjhAcYLyG7GuAtao/Ga8hZAaU0bLcAwPjpFT6OO5mftJCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
From: "Li, Xin3" <xin3.li@intel.com>
To: "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "tglx@linutronix.de" <tglx@linutronix.de>, "mingo@redhat.com"
	<mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org"
	<x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>, "Lutomirski, Andy"
	<luto@kernel.org>, "pbonzini@redhat.com" <pbonzini@redhat.com>,
	"seanjc@google.com" <seanjc@google.com>, "peterz@infradead.org"
	<peterz@infradead.org>, "Gross, Jurgen" <jgross@suse.com>, "Shankar, Ravi V"
	<ravi.v.shankar@intel.com>, "mhiramat@kernel.org" <mhiramat@kernel.org>,
	"jiangshanlai@gmail.com" <jiangshanlai@gmail.com>, "nik.borisov@suse.com"
	<nik.borisov@suse.com>, "Kang, Shan" <shan.kang@intel.com>
Subject: RE: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Thread-Topic: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Thread-Index: AQHaJ215PhEOYu43sEObVSTXzfHZOLCanWSAgABu2VA=
Date: Tue, 5 Dec 2023 19:03:10 +0000
Message-ID: <SA1PR11MB67340C4246F7BED4D0B09837A885A@SA1PR11MB6734.namprd11.prod.outlook.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
 <20231205105030.8698-27-xin3.li@intel.com>
 <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com>
In-Reply-To: <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA1PR11MB6734:EE_|BL3PR11MB6484:EE_
x-ms-office365-filtering-correlation-id: 0ae2fddd-1399-4091-2058-08dbf5c4d300
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;
x-microsoft-antispam-message-info: Myh7rlO5no9CkAaaWvDg9XNOm5kuzJpdruAkVAdjJiBkyDfmnfRcUz6UhABCCm7fexgY/T7ArHpW73lK/pUDoocOoK4HVa6ULsbV2b+81+ypZ1695ew9cjmAk5R6w9wpAVjR6ryIeI2H1eCvRaozWBQnPyxBwxII+PnUuYc/FLvlT0MRw/U9RSDLCxSKZ5+MfmqD6jI3va+LAQmbkSeNt4xt6DfENQ4OTXCCXBPgEhDeAek8WWlJ/IQApldL4HoEMM8e08UAn1iRv6Nyna/8N1KKv1Z5/8FDlXYB/zntIfvOd8s65R+RVZbxRyQzaa7ZhAtUvw4xC3ugMo9is5dmn9bcjDU0BUYz3lPx6Rj3+Vi66yHUdoc2vcvONGISeOQcKsxdEv7B7tigIUzcwBvHAiZkFoD8DjSjTeZJHwtRT87fsOXn2jbgQQnSADpHbbJbN77/DlYfy0DNaRpoJJpIGDfh4vs+nSqYwDClVz2aRnwKLZRQOtwtbQ1EiRHpJIs5xJKF8YFw4SdGiM/pjvGN9i0ZHrJ0gz3Xi7tt+JnMzy4Zhy6UGb52dzo2QNo+1S5yxCS+rCu5TluFhQ3UiyJBuAKOYd014bbeXOKKxeSJLIibRGGVXH4EavIysNB2TNZ/paaOv9PIUxVchNUhDdbAUkIJZLRzc9cndXCAUO7jYH4=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB6734.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(39860400002)(136003)(376002)(396003)(366004)(230922051799003)(230173577357003)(230273577357003)(186009)(64100799003)(1800799012)(451199024)(7416002)(2906002)(33656002)(110136005)(316002)(66476007)(54906003)(64756008)(66446008)(66556008)(38070700009)(76116006)(8676002)(86362001)(66946007)(55016003)(52536014)(41300700001)(8936002)(4326008)(5660300002)(122000001)(38100700002)(82960400001)(83380400001)(478600001)(26005)(71200400001)(7696005)(9686003)(6506007);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QzFMMXFYbGZNaHFPSUZTUlh4NktMOFlsdS9kRVFONU1RN3RYK0RicmgwN1l4?=
 =?utf-8?B?V1FBWXp6QkREUHB2NGpQaFVFQ0xEdEF6SGhtcEwwblRkY0IrMmZXYm9MT1dj?=
 =?utf-8?B?MWY5ZGw2TjRIelVUTWJRR1JNWjdjTFJiV3pKZ3pqQm9uVmtYSCtEQTI4b1Fs?=
 =?utf-8?B?SCswZWIyTEp5M1UwNHJveTNtWUhaaFBnYUtLQ1YzNDNJeXhQR3MxYTJYWGRm?=
 =?utf-8?B?NDNwRkRsQVo1eEZwQzNadWdUMHJraE0xcVl4K0xRaGd1S0FPSzFNY2t0MjVR?=
 =?utf-8?B?VEt5dHBDUFgyMDZUOW51OW9jcHJmdjR1c3FJdlJWZjJ3RW91QWVDKzVqbzBK?=
 =?utf-8?B?K2JxNDNzZWFMVUxoZVBsbGZmQ2hxQXlaTWZtN0kxUEs0d2djTS8rUzJaWkNt?=
 =?utf-8?B?QWdOVXMxYnpuRnRKeDJKQUQ5ZEs1WHpOTkxsUEM2VjJtcW16a3JURzJ6NXFn?=
 =?utf-8?B?VUxwYWkxZzB6eHdWS3BFQnpuNnEyNjRZc2hqYlpFcjNqSjV2bHg1cVhrdWpB?=
 =?utf-8?B?UzB1VkFuV3dCQzRGMXRDOGtIZFovNk1UYnFxZnlDTzVCbCtWSTdLTWdiTkt0?=
 =?utf-8?B?dXNwdTVrTytXRXo2UFlKSVFxTVRjUEEwd2ZnZGptSTZkczNYSitkUTZhZ0V2?=
 =?utf-8?B?U1E0VkpsWWduVkNQa3JmQXBldzd1OU4rUmRqelRGNVhwTllVZkJQUHY1Nzdk?=
 =?utf-8?B?ZU5OUTgrbFZ4cDZIYk9CZWViVE1wa1E3cDRzSEFoR3lIOUVReDJaR0FhcFFj?=
 =?utf-8?B?S0c1dVVDNGczY0JRNFF5STNZbUJBcmIxU0FKRmxjTW0reDhyNlpuaUJoMytT?=
 =?utf-8?B?SENMamVmSnZOSS9pNlYrZklYOHNHMXBaZ0pldklMcjVNVHI5Y2RqSnkyWkxw?=
 =?utf-8?B?Y2JTdFBXOVdXMjRqT2h2RVlES3ExOTJpeHZ2TzZyUnAvWFMrNmxveWZYOHY2?=
 =?utf-8?B?bU5Ed3AveFg5MGdHVDUzQ2tHVzgzT3VOeFN4R0hMZWJvUHVOc2Y1YklzK3NX?=
 =?utf-8?B?cGdJVlNRS2VpaFh5NGpHQm9aRWFjdzhkY2RyN2FCWjhFa0tscENOL2tSaXdE?=
 =?utf-8?B?NnZXSUZNSXd3dHNjeURYM3kxSmhOSmJFQ1Rha1NyeWRINklxbW83RUxoZHN0?=
 =?utf-8?B?R21aV1dBdDhwWm10ZjY3RTFWTzJRbEo5NFJLc1pJUC8yanhrRkNBclI2QnlE?=
 =?utf-8?B?VU53Y1ArOVhka1VKNm5jQ2Y5OHNJcThvN2ZOY1dTeHlXYjBoNUlQMzd6T2dK?=
 =?utf-8?B?LzI5RWlPTmZLN1pMYlR3NjdYdy8rTDhHYXI5QzRXb2NnVS9JR2xWZkRVT1Rm?=
 =?utf-8?B?NktIeTdUd0lQN3RxVGswWElLZXJOTitndHBJdDREM2tjVWxVbzVJNDF0azEv?=
 =?utf-8?B?c0JQaW9uSGRUTnBGTGtzQ0JNaXlqOXZDeGhDby93eUROZDZ0U0FOTkE1Vk9l?=
 =?utf-8?B?eVc1OVVQM1lHZWgvamxJcGw4SnBaeE84bWFvbThQZ3BUNUltWWUwNXk4K1NI?=
 =?utf-8?B?N2ozWTQyOUpIWksvbzd4dllQdGdMY2tUUVNFODNiTXZMbGFyK0JlOG5CeEN0?=
 =?utf-8?B?cUFtV2tnakRYK1lwdkJkeStjckZWazdRQk9VN1VoMFhOTUV5b2tUZzZhdlF4?=
 =?utf-8?B?ajROS3JLNXBob2FQKzBLRG9DM1RTSFpFS1l6UmZ4emVqRktxRllocXR6dXdG?=
 =?utf-8?B?amY4UUJKRjVWR1NDNVlUTWcrTTlySW81UlhjNC9mUEd4S0hrdGpsZC85Y1NK?=
 =?utf-8?B?d1BveTdrQy9xZldvMzV3bzlGdjVrK1hWZVVEd2RVMHpzOEUrRkg2V29aV2Ir?=
 =?utf-8?B?c3NkaUhNSXJTRy9ablJMM285dWhRUmR3WGpOdUZxNlRYTTAvT3hCN0FCMTUz?=
 =?utf-8?B?S29FcUxDM3ozdlFPVCtDekJjR2pVdDZqRkh2VElEY1F1emxTVUtjd3ZkWm9k?=
 =?utf-8?B?Y3VkTGxNcUJjLzY1elByc0RWbm1jVDNCNWlmcjNRNmFubE9LaSsvdUJmS0tC?=
 =?utf-8?B?OW5POW5XMnk3VGl1YWdQR0x5TWtyWXdQbUdlMENYbFYzSE9TaGRlemtaOE92?=
 =?utf-8?B?RWE0c0JsWnVCWjNCU1UzMnFBM0MzeU9ZWEQxL2p3ZHJmQTlGZ0ZIYTRhajdG?=
 =?utf-8?Q?gE4U=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6734.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ae2fddd-1399-4091-2058-08dbf5c4d300
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2023 19:03:10.5372
 (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: xQ3Xyz2tASN1Ng3UgXyBkestW0RIZw6sfPBAzs90REklTrIKtn7dtFmViCP9yRQPxRGEglvYrpMg5TWIjBE5ig==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR11MB6484
X-OriginatorOrg: intel.com

PiA+ICtzdGF0aWMgbm9pbnN0ciB2b2lkIGZyZWRfaW50eChzdHJ1Y3QgcHRfcmVncyAqcmVncykg
ew0KPiA+ICsJc3dpdGNoIChyZWdzLT5mcmVkX3NzLnZlY3Rvcikgew0KPiA+ICsJLyogSU5UMCAq
Lw0KPiANCj4gSU5UTyAoZm9yIG92ZXJmbG93KSwgbm90IElOVC16ZXJvLsKgIEhvd2V2ZXIuLi4N
Cj4gDQo+ID4gKwljYXNlIFg4Nl9UUkFQX09GOg0KPiA+ICsJCWV4Y19vdmVyZmxvdyhyZWdzKTsN
Cj4gPiArCQlyZXR1cm47DQo+ID4gKw0KPiA+ICsJLyogSU5UMyAqLw0KPiA+ICsJY2FzZSBYODZf
VFJBUF9CUDoNCj4gPiArCQlleGNfaW50MyhyZWdzKTsNCj4gPiArCQlyZXR1cm47DQo+IA0KPiAu
Li4gbmVpdGhlciBPRiBub3IgQlAgd2lsbCBldmVyIGVudGVyIGZyZWRfaW50eCgpIGJlY2F1c2Ug
dGhleSdyZSB0eXBlIFNXRVhDIG5vdA0KPiBTV0lOVC4NCj4gDQo+IFNXSU5UIGlzIHN0cmljdGx5
IHRoZSBJTlQgJGltbTggaW5zdHJ1Y3Rpb24uDQo+IA0KPiA+IC4uLg0KPiA+ICtzdGF0aWMgbm9p
bnN0ciB2b2lkIGZyZWRfZXh0aW50KHN0cnVjdCBwdF9yZWdzICpyZWdzKSB7DQo+ID4gKwl1bnNp
Z25lZCBpbnQgdmVjdG9yID0gcmVncy0+ZnJlZF9zcy52ZWN0b3I7DQo+ID4gKw0KPiA+ICsJaWYg
KFdBUk5fT05fT05DRSh2ZWN0b3IgPCBGSVJTVF9FWFRFUk5BTF9WRUNUT1IpKQ0KPiA+ICsJCXJl
dHVybjsNCj4gPiArDQo+ID4gKwlpZiAobGlrZWx5KHZlY3RvciA+PSBGSVJTVF9TWVNURU1fVkVD
VE9SKSkgew0KPiA+ICsJCWlycWVudHJ5X3N0YXRlX3Qgc3RhdGUgPSBpcnFlbnRyeV9lbnRlcihy
ZWdzKTsNCj4gPiArDQo+ID4gKwkJaW5zdHJ1bWVudGF0aW9uX2JlZ2luKCk7DQo+ID4gKwkJc3lz
dmVjX3RhYmxlW3ZlY3RvciAtIEZJUlNUX1NZU1RFTV9WRUNUT1JdKHJlZ3MpOw0KPiANCj4gYXJy
YXlfaW5kZXhfbWFza19ub3NwZWMoKQ0KPiANCj4gVGhpcyBpcyBlYXN5IGZvciBhbiBhdHRhY2tl
ciB0byBhYnVzZSwgdG8gaW5zdGFsbCBub24tZnVuY3Rpb24tcG9pbnRlciB0YXJnZXRzIGludG8N
Cj4gdGhlIGluZGlyZWN0IHByZWRpY3Rvci4NCj4gDQo+ID4gKwkJaW5zdHJ1bWVudGF0aW9uX2Vu
ZCgpOw0KPiA+ICsJCWlycWVudHJ5X2V4aXQocmVncywgc3RhdGUpOw0KPiA+ICsJfSBlbHNlIHsN
Cj4gPiArCQljb21tb25faW50ZXJydXB0KHJlZ3MsIHZlY3Rvcik7DQo+ID4gKwl9DQo+ID4gK30N
Cj4gPiArDQo+ID4gK3N0YXRpYyBub2luc3RyIHZvaWQgZnJlZF9leGNlcHRpb24oc3RydWN0IHB0
X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkDQo+ID4gK2xvbmcgZXJyb3JfY29kZSkgew0KPiA+ICsJLyog
T3B0aW1pemUgZm9yICNQRi4gVGhhdCdzIHRoZSBvbmx5IGV4Y2VwdGlvbiB3aGljaCBtYXR0ZXJz
IHBlcmZvcm1hbmNlDQo+IHdpc2UgKi8NCj4gPiArCWlmIChsaWtlbHkocmVncy0+ZnJlZF9zcy52
ZWN0b3IgPT0gWDg2X1RSQVBfUEYpKSB7DQo+ID4gKwkJZXhjX3BhZ2VfZmF1bHQocmVncywgZXJy
b3JfY29kZSk7DQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXN3aXRjaCAo
cmVncy0+ZnJlZF9zcy52ZWN0b3IpIHsNCj4gPiArCWNhc2UgWDg2X1RSQVBfREU6IHJldHVybiBl
eGNfZGl2aWRlX2Vycm9yKHJlZ3MpOw0KPiA+ICsJY2FzZSBYODZfVFJBUF9EQjogcmV0dXJuIGZy
ZWRfZXhjX2RlYnVnKHJlZ3MpOw0KPiA+ICsJY2FzZSBYODZfVFJBUF9CUDogcmV0dXJuIGV4Y19p
bnQzKHJlZ3MpOw0KPiA+ICsJY2FzZSBYODZfVFJBUF9PRjogcmV0dXJuIGV4Y19vdmVyZmxvdyhy
ZWdzKTsNCj4gDQo+IERlcGVuZGluZyBvbiB3aGF0IHlvdSB3YW50IHRvIGRvIHdpdGggQlAvT0Yg
dnMgZnJlZF9pbnR4KCksIHRoaXMgbWF5IG5lZWQNCj4gYWRqdXN0aW5nLg0KPiANCj4gSWYgeW91
IGFyZSBjcm9zcy1jaGVja2luZyB0eXBlIGFuZCB2ZWN0b3IsIHRoZW4gdGhlc2Ugc2hvdWxkIGJl
IHJlamVjdGVkIGZvciBub3QNCj4gYmVpbmcgb2YgdHlwZSBIV0VYQy4NCj4gDQo+ID4gKwljYXNl
IFg4Nl9UUkFQX0JSOiByZXR1cm4gZXhjX2JvdW5kcyhyZWdzKTsNCj4gPiArCWNhc2UgWDg2X1RS
QVBfVUQ6IHJldHVybiBleGNfaW52YWxpZF9vcChyZWdzKTsNCj4gPiArCWNhc2UgWDg2X1RSQVBf
Tk06IHJldHVybiBleGNfZGV2aWNlX25vdF9hdmFpbGFibGUocmVncyk7DQo+ID4gKwljYXNlIFg4
Nl9UUkFQX0RGOiByZXR1cm4gZXhjX2RvdWJsZV9mYXVsdChyZWdzLCBlcnJvcl9jb2RlKTsNCj4g
PiArCWNhc2UgWDg2X1RSQVBfVFM6IHJldHVybiBleGNfaW52YWxpZF90c3MocmVncywgZXJyb3Jf
Y29kZSk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQX05QOiByZXR1cm4gZXhjX3NlZ21lbnRfbm90X3By
ZXNlbnQocmVncywgZXJyb3JfY29kZSk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQX1NTOiByZXR1cm4g
ZXhjX3N0YWNrX3NlZ21lbnQocmVncywgZXJyb3JfY29kZSk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQ
X0dQOiByZXR1cm4gZXhjX2dlbmVyYWxfcHJvdGVjdGlvbihyZWdzLCBlcnJvcl9jb2RlKTsNCj4g
PiArCWNhc2UgWDg2X1RSQVBfTUY6IHJldHVybiBleGNfY29wcm9jZXNzb3JfZXJyb3IocmVncyk7
DQo+ID4gKwljYXNlIFg4Nl9UUkFQX0FDOiByZXR1cm4gZXhjX2FsaWdubWVudF9jaGVjayhyZWdz
LCBlcnJvcl9jb2RlKTsNCj4gPiArCWNhc2UgWDg2X1RSQVBfWEY6IHJldHVybiBleGNfc2ltZF9j
b3Byb2Nlc3Nvcl9lcnJvcihyZWdzKTsNCj4gPiArDQo+ID4gKyNpZmRlZiBDT05GSUdfWDg2X01D
RQ0KPiA+ICsJY2FzZSBYODZfVFJBUF9NQzogcmV0dXJuIGZyZWRfZXhjX21hY2hpbmVfY2hlY2so
cmVncyk7ICNlbmRpZiAjaWZkZWYNCj4gPiArQ09ORklHX0lOVEVMX1REWF9HVUVTVA0KPiA+ICsJ
Y2FzZSBYODZfVFJBUF9WRTogcmV0dXJuIGV4Y192aXJ0dWFsaXphdGlvbl9leGNlcHRpb24ocmVn
cyk7DQo+ID4gKyNlbmRpZg0KPiA+ICsjaWZkZWYgQ09ORklHX1g4Nl9LRVJORUxfSUJUDQo+IA0K
PiBDT05GSUdfWDg2X0NFVA0KPiANCj4gVXNlcnNwYWNlIGNhbiB1c2UgQ0VUIGV2ZW4gaWYgdGhl
IGtlcm5lbCBpc24ndCBjb21waWxlZCB3aXRoIElCVCwgc28gdGhpcw0KPiBleGNlcHRpb24gbmVl
ZHMgaGFuZGxpbmcuDQo+IA0KPiA+ICsJY2FzZSBYODZfVFJBUF9DUDogcmV0dXJuIGV4Y19jb250
cm9sX3Byb3RlY3Rpb24ocmVncywgZXJyb3JfY29kZSk7DQo+ID4gKyNlbmRpZg0KPiA+ICsJZGVm
YXVsdDogcmV0dXJuIGZyZWRfYmFkX3R5cGUocmVncywgZXJyb3JfY29kZSk7DQo+ID4gKwl9DQo+
ID4gK30NCj4gPiArDQo+ID4gK19fdmlzaWJsZSBub2luc3RyIHZvaWQgZnJlZF9lbnRyeV9mcm9t
X3VzZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpIHsNCj4gPiArCXVuc2lnbmVkIGxvbmcgZXJyb3Jf
Y29kZSA9IHJlZ3MtPm9yaWdfYXg7DQo+ID4gKw0KPiA+ICsJLyogSW52YWxpZGF0ZSBvcmlnX2F4
IHNvIHRoYXQgc3lzY2FsbF9nZXRfbnIoKSB3b3JrcyBjb3JyZWN0bHkgKi8NCj4gPiArCXJlZ3Mt
Pm9yaWdfYXggPSAtMTsNCj4gPiArDQo+ID4gKwlzd2l0Y2ggKHJlZ3MtPmZyZWRfc3MudHlwZSkg
ew0KPiA+ICsJY2FzZSBFVkVOVF9UWVBFX0VYVElOVDoNCj4gPiArCQlyZXR1cm4gZnJlZF9leHRp
bnQocmVncyk7DQo+ID4gKwljYXNlIEVWRU5UX1RZUEVfTk1JOg0KPiA+ICsJCXJldHVybiBmcmVk
X2V4Y19ubWkocmVncyk7DQo+ID4gKwljYXNlIEVWRU5UX1RZUEVfU1dJTlQ6DQo+ID4gKwkJcmV0
dXJuIGZyZWRfaW50eChyZWdzKTsNCj4gPiArCWNhc2UgRVZFTlRfVFlQRV9IV0VYQzoNCj4gPiAr
CWNhc2UgRVZFTlRfVFlQRV9TV0VYQzoNCj4gPiArCWNhc2UgRVZFTlRfVFlQRV9QUklWX1NXRVhD
Og0KPiA+ICsJCXJldHVybiBmcmVkX2V4Y2VwdGlvbihyZWdzLCBlcnJvcl9jb2RlKTsNCj4gDQo+
IFBSSVZfU1dFWEMgc2hvdWxkIGhhdmUgaXQncyBvd24gZnVuY3Rpb24gYW5kIG5vdCBmYWxsIGlu
dG8gZnJlZF9leGNlcHRpb24oKS4NCj4gDQo+IEl0IGlzIHN0cmljdGx5IG9ubHkgdGhlIElDRUJQ
IChJTlQxKSBpbnN0cnVjdGlvbiBhdCB0aGUgbW9tZW50LCBzbyBzaG91bGQgZmFsbCBpbnRvDQo+
IGJhZF90eXBlKCkgZm9yIGFueSB2ZWN0b3Igb3RoZXIgdGhhbiBYODZfVFJBUF9EQi4NCj4gDQo+
ID4gKwljYXNlIEVWRU5UX1RZUEVfT1RIRVI6DQo+ID4gKwkJcmV0dXJuIGZyZWRfb3RoZXIocmVn
cyk7DQo+ID4gKwlkZWZhdWx0Og0KPiA+ICsJCXJldHVybiBmcmVkX2JhZF90eXBlKHJlZ3MsIGVy
cm9yX2NvZGUpOw0KPiA+ICsJfQ0KPiA+ICt9DQo+IA0KPiB+QW5kcmV3DQoNCg0KVGhhbmtzIGEg
bG90IGZvciB5b3VyIHF1aWNrIHJldmlldywgd2lsbCBhZGRyZXNzIHNvb24uDQogICAgWGluDQo=


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 19:49:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 19:49:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648254.1012459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAbQ8-0001tb-Q8; Tue, 05 Dec 2023 19:49:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648254.1012459; Tue, 05 Dec 2023 19: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 1rAbQ8-0001tU-Na; Tue, 05 Dec 2023 19:49:28 +0000
Received: by outflank-mailman (input) for mailman id 648254;
 Tue, 05 Dec 2023 19:49:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cmhw=HQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAbQ7-0001tO-5S
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 19:49:27 +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 633b8fc3-93a7-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 20:49:23 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-33318b866a0so20280f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 11:49:23 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 u13-20020a5d514d000000b0033343bb21a0sm7403296wrt.93.2023.12.05.11.49.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 11:49:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 633b8fc3-93a7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701805762; x=1702410562; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Qbg5fZJ+bld4rpvhNhvJqC/f2EMDZ8bj8vQhlEh28kU=;
        b=h/DiTX2tfk+Ch2kgZM+3AvN2XF5j0v4HVtixAnZP+RlC13Q8TSSn741sJu0RoMRHw7
         gYkKJzQBq6icl6TWsfKZD01gFmqUYQJAPGGV1RXwJl8RkS5kdgWHGwjsW5NYAI5EgEX5
         1tv+AfJh3B5Z2KFb1zRUZ+qobGR1IsJz6rkMQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701805762; x=1702410562;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Qbg5fZJ+bld4rpvhNhvJqC/f2EMDZ8bj8vQhlEh28kU=;
        b=UXUw0V75o6DdmBx4NDOEpSrZh2t2dWFLVSMDMxNvbFzzo9HbjYLSlBr9zQSslZxaYn
         dw/h2/+Ajke7XCGJM6Slb8KzVFs4ck83Cv9GgnJgQ6iGhsDdAeKFxV/nnotsrqhYKRfw
         2l/gnbktKenVJ9WH4Ml511bdWf5DTg83Lxm+wZLDraK5P6ikBuT+jAwCvmvilRxKPD1b
         vzHmXA2XYhry9W6/7KJ9akYkplWzteahrdkDl6a6phC+LVnEg0+s6qlfd84YLiVCpq6J
         DbC2/pPtXl5Z5sIC+i4nOjp4R+kBatZHuhNZ+0qOt5yxsm/wjglFP33/tegN8r0EqBmD
         s4lw==
X-Gm-Message-State: AOJu0Yy7zdR3O/JFv2Y+PA6UEzJC1F9WNJv1lVIYRtZp0+pvteODpreO
	+UBo74eAkMgtbQytkEkV0fP4NA==
X-Google-Smtp-Source: AGHT+IEE9y17ANM9nwr9pPwudUpz9fV+Axg85tQrCjjHbxawi4DGrP3i6QVeDMazcalAvOOPe1Steg==
X-Received: by 2002:a5d:6889:0:b0:333:49be:bf84 with SMTP id h9-20020a5d6889000000b0033349bebf84mr2326206wru.43.1701805762532;
        Tue, 05 Dec 2023 11:49:22 -0800 (PST)
Message-ID: <fcf00090-304a-49f7-8a61-a54347e90a3b@citrix.com>
Date: Tue, 5 Dec 2023 19:49:21 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Content-Language: en-GB
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Julien Grall <jgrall@amazon.com>, George Dunlap
 <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>,
 Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>
References: <20231205183226.26636-1-julien@xen.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231205183226.26636-1-julien@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/12/2023 6:32 pm, Julien Grall wrote:
> diff --git a/xen/Makefile b/xen/Makefile
> index ca571103c868..360fb6dcae57 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -393,6 +393,7 @@ CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections -fdata-sections
>  
>  CFLAGS += -nostdinc -fno-builtin -fno-common
>  CFLAGS += -Werror -Wredundant-decls -Wwrite-strings -Wno-pointer-arith
> +$(call cc-option-add,CFLAGS,CC,-Wdeclaration-after-statement)

I agree with the direction of the patch, but this should be a plain
CFLAGS +=

All compilers we support, even on x86, know
-Wdeclaration-after-statement so it doesn't need a toolchain-check to
activate.

https://godbolt.org/z/PM7bb1d55

With that fixed, Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 20:05:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 20:05:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648259.1012470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAbft-0007dQ-5Z; Tue, 05 Dec 2023 20:05:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648259.1012470; Tue, 05 Dec 2023 20: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 1rAbft-0007dJ-29; Tue, 05 Dec 2023 20:05:45 +0000
Received: by outflank-mailman (input) for mailman id 648259;
 Tue, 05 Dec 2023 20:05: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 1rAbfr-0007d9-3e; Tue, 05 Dec 2023 20:05: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 1rAbfq-00064M-R6; Tue, 05 Dec 2023 20:05: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 1rAbfq-0005WX-9v; Tue, 05 Dec 2023 20:05:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAbfq-0007Fz-94; Tue, 05 Dec 2023 20:05:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=4Z7reN+DX94plsMFAymIvxyL3vLSJYC/jNrddc9B2Eg=; b=O0fnFUnYELlH4b7PA8ZLu8FIh9
	9OoOM44lWoX7L2KEaPfGJ57jE6s8DjE22x+dlD0wyt3SxvYjcu7ARyQEnFnv2o3fniFCSGlehxV1N
	+B5DYm3TZIW0cSxwp5wvFv857nvH8+QWhed0tey2DrqEwRIOZ4tvb66RSOzB0J2nSpt0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183992-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 183992: tolerable FAIL - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt-qcow2:guest-start:fail:heisenbug
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-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-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=f1a950379d856282c661d21005b49edc8e97a152
X-Osstest-Versions-That:
    libvirt=d8de4f2770fbe5195f92c0e142a1921c2a1d8ed9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 05 Dec 2023 20:05:42 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-qcow2 13 guest-start       fail pass in 183997-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail in 183997 like 183972
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check fail in 183997 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183972
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183972
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-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-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              f1a950379d856282c661d21005b49edc8e97a152
baseline version:
 libvirt              d8de4f2770fbe5195f92c0e142a1921c2a1d8ed9

Last test of basis   183972  2023-12-02 04:22:45 Z    3 days
Testing same since   183992  2023-12-05 04:18:54 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  GÃ¶ran Uddeborg <goeran@uddeborg.se>
  Michal Privoznik <mprivozn@redhat.com>
  Thanos Makatos <thanos.makatos@nutanix.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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   d8de4f2770..f1a950379d  f1a950379d856282c661d21005b49edc8e97a152 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 20:12:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 20:12:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648267.1012481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAbme-0002pC-18; Tue, 05 Dec 2023 20:12:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648267.1012481; Tue, 05 Dec 2023 20:12: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 1rAbmd-0002p5-Sw; Tue, 05 Dec 2023 20:12:43 +0000
Received: by outflank-mailman (input) for mailman id 648267;
 Tue, 05 Dec 2023 20:12: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=cmhw=HQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAbmb-0002nd-QV
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 20:12:41 +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 a45ff01b-93aa-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 21:12:40 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3316bb1303bso44567f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 12:12:40 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 w18-20020a5d4b52000000b0033334df1259sm11375561wrs.20.2023.12.05.12.12.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 12:12:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a45ff01b-93aa-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701807160; x=1702411960; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=CxzmOgLzolU4toSrReZbwiXVkd/zXujCcCfDuL8cqnI=;
        b=Sep1iyebRSS55+mkjeNPfNRwx5NYVEIMmmAQXqi+q46iFRBnksWWxO7ZYWcsqKrHg/
         WjhH/m3Op6Br7qBo/+ukkYwDiRFjcWdiGG1SCoiOJZS8hVWHwS54XP7TMMeFP9F4gpdr
         lPJMZcStWkM6PVXg8GxJe2uaw25gA7VuMgpzs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701807160; x=1702411960;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=CxzmOgLzolU4toSrReZbwiXVkd/zXujCcCfDuL8cqnI=;
        b=VrAg3DbciUqxKXbXoKiVhh9CXeZM1VNE4xY6aFy0oJ/YIhg4BjQZ7bcL96gSCaGLKU
         BzrF1ilZxtwNHCNQHYaWwxrg30J02uJp/KLb8qoCnFUT+hOUGf6ptaFjPzO3i14i5WKg
         fS1pEOYZsmdPNqmYXt+6Ysxzt2hi9NtHu5nMi4WsiReA8j7nz7bsJ2MoI3qdlD10aGQ5
         dwaZCrBjJviNfiXrWa1svLvFI0DCMRbXUjo8WZz1eqqEUQ+p/CyOGcvi/GqxKqww3m5J
         POYuCtiZuozWXIjvV1ilRr1rWApfmaNd3teE1Zqvqy7rLnFgPcXuMjlV1B0vvKdbCQxj
         sdMg==
X-Gm-Message-State: AOJu0Ywl6AIkLGGHO36BJcKqZl/UAMM06h3oi+xkC3i6YAvVXxCNHnRR
	bOMaTPETtUG7rsNfBIsPVbGs/A==
X-Google-Smtp-Source: AGHT+IHdGvHUU/6x0vVvWZJ11R0Aw3qf50FRoplSKo/jJdmk8RDXrx/oZmaFr253sFm1u8g89/EVXg==
X-Received: by 2002:a5d:5051:0:b0:332:e777:a8d4 with SMTP id h17-20020a5d5051000000b00332e777a8d4mr5037758wrt.36.1701807160288;
        Tue, 05 Dec 2023 12:12:40 -0800 (PST)
Message-ID: <32930dd2-5978-4b02-9402-eead80b5ff0f@citrix.com>
Date: Tue, 5 Dec 2023 20:12:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] ns16550: remove partial explicit initializer
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, George Dunlap <george.dunlap@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <89f9aebddac56c034aace59c5b910ad4bef701c5.1701793717.git.nicola.vetrini@bugseng.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <89f9aebddac56c034aace59c5b910ad4bef701c5.1701793717.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/12/2023 4:31 pm, Nicola Vetrini wrote:
> The initializer of 'ns16550_com' violates MISRA C Rule 9.3
> because it explicitly initializes only the first element of the array,
> but the semantics is the same if the explicit initialization is
> omitted.
>
> No functional change.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 20:31:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 20:31:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648273.1012490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAc4i-0000nW-Fg; Tue, 05 Dec 2023 20:31:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648273.1012490; Tue, 05 Dec 2023 20:31:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAc4i-0000nP-Cq; Tue, 05 Dec 2023 20:31:24 +0000
Received: by outflank-mailman (input) for mailman id 648273;
 Tue, 05 Dec 2023 20:31:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7WXV=HQ=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rAc4h-0000nJ-8z
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 20:31:23 +0000
Received: from mail-pg1-x52b.google.com (mail-pg1-x52b.google.com
 [2607:f8b0:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f910f44-93ad-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 21:31:21 +0100 (CET)
Received: by mail-pg1-x52b.google.com with SMTP id
 41be03b00d2f7-5c230c79c0bso2696662a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 12:31:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f910f44-93ad-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701808279; x=1702413079; 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=GG6A0ybaQjlEUeE8ZmkduRm/mR67du5f25WPw8uKIxE=;
        b=S0TjEqx3D46R+ryYQkDGTxRXc6TZ8IBW3xgGtHIrrDIMM2OOcA03ugYg8EJysQs4GQ
         uNNN8kkHrO3vAEuFM7SPFczaNq7ZZxAIyicF2UkxgIhvXqdfqIwU5rd3DyxWlnmb//Ih
         qrFhfhl8xvpN4deG54alqgD7ebGlgYHL1JISP0zs7pToabCK0lekbbQ3lxrIuYhujoSF
         Im7ZkCYtnISc6/KA+CQa3hkf/kFKCHj4UPwRiYTtc5O48mO1J/nE9RSZwpkkV3IoA6O2
         kOSZc+f4EO47BDlc3QyT2X7ZfQd75CPcoMCs9t6vJbPpznEBVB6GfS9i9Gd47+L019oq
         rrrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701808279; x=1702413079;
        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=GG6A0ybaQjlEUeE8ZmkduRm/mR67du5f25WPw8uKIxE=;
        b=me/2ktA9ml55KC+CdhR38I+BWdz74UNJ8xhh7cX9jivdARubrtFiQIPOfSUb6F+zYz
         13E92iQihwuR3kkwQ0azOtrFMbG1WB2L10I5P4RLq+AWdE2AXwxYG1GB6S05eyIMSNVr
         oG4kTla+ccbjucf5e8ceOPAhgTfc+89tgl7GiC8CauKh5kZblnaUbHAGGg7WksIBXmSl
         7tYobWiYYARlPOB4AbSwIvJBb1hlwom1gu2dLMB+NKyi5jz9ufzyCJH3JTKo11BzNiWN
         g3Y41X+/Z2jd8/+fT26or08kv+Y1JC0gIjbIG+b/3AeOSzW4lrYY6UzqKpRpsns8PFNC
         F8fw==
X-Gm-Message-State: AOJu0Yx+netQJkbPLdzhfr8Mtj9AqT7bCbGsD+6jY5bQQ1ufKwk1BoxE
	nwZSVdXGWkr7PD3AZ/hH7vOj+VOzYe2q3sbIgovFFvZ2BHA=
X-Google-Smtp-Source: AGHT+IGxH159qtMcFxnxKcwe2y3bRMFWnA6drR0Yv93+4yjlt1Xc/02uf0Qel5xjywIJdIo9AGlngCzbk/C4Eddgtlc=
X-Received: by 2002:a05:6a21:360c:b0:18f:97c:ba1c with SMTP id
 yg12-20020a056a21360c00b0018f097cba1cmr3407193pzb.118.1701808279246; Tue, 05
 Dec 2023 12:31:19 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
In-Reply-To: <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Tue, 5 Dec 2023 21:31:08 +0100
Message-ID: <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt

Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
ioapic-edge and IRQ9 to ioapic-level ?

IR-IO-APIC    7-fasteoi   pinctrl_amd
IR-IO-APIC    9-fasteoi   acpi

to (xen 4.18.0)

xen-pirq     -ioapic-edge  pinctrl_amd
xen-pirq     -ioapic-level  acpi

?

THX


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 21:04:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 21:04:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648285.1012500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAcax-0001sh-TW; Tue, 05 Dec 2023 21:04:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648285.1012500; Tue, 05 Dec 2023 21:04:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAcax-0001sa-Qu; Tue, 05 Dec 2023 21:04:43 +0000
Received: by outflank-mailman (input) for mailman id 648285;
 Tue, 05 Dec 2023 21:04:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAcaw-0001sU-7u
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 21:04:42 +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 1rAcau-0007CR-D6; Tue, 05 Dec 2023 21:04:40 +0000
Received: from 54-240-197-228.amazon.com ([54.240.197.228]
 helo=[10.95.100.251]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAcau-0006Dx-4x; Tue, 05 Dec 2023 21:04:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=DJrtkDS6FAY3NSHz+F0ui5sDuJYlotcflRLymdFLTn4=; b=iddVAPXESLyVkRsxdv10gzQSh8
	hUAEkZvMUWwi613upPVLXoqvo9BggHqcnUpTgJzV3lljwLEgms1UJG2yScUqyu104OILHJgVNUNnH
	AsoYiQP5ESKxXYzzwG+0PwzG/BSrggHBzMQblAQCUGlnPjnub7MFr6Kbrs1rFNc9g4J8=;
Message-ID: <24d9a3cd-04cb-4023-804d-b93891c51c78@xen.org>
Date: Tue, 5 Dec 2023 21:04:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <jgrall@amazon.com>, George Dunlap
 <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>,
 Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>
References: <20231205183226.26636-1-julien@xen.org>
 <fcf00090-304a-49f7-8a61-a54347e90a3b@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <fcf00090-304a-49f7-8a61-a54347e90a3b@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 05/12/2023 19:49, Andrew Cooper wrote:
> On 05/12/2023 6:32 pm, Julien Grall wrote:
>> diff --git a/xen/Makefile b/xen/Makefile
>> index ca571103c868..360fb6dcae57 100644
>> --- a/xen/Makefile
>> +++ b/xen/Makefile
>> @@ -393,6 +393,7 @@ CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections -fdata-sections
>>   
>>   CFLAGS += -nostdinc -fno-builtin -fno-common
>>   CFLAGS += -Werror -Wredundant-decls -Wwrite-strings -Wno-pointer-arith
>> +$(call cc-option-add,CFLAGS,CC,-Wdeclaration-after-statement)
> 
> I agree with the direction of the patch, but this should be a plain
> CFLAGS +=
> 
> All compilers we support, even on x86, know
> -Wdeclaration-after-statement so it doesn't need a toolchain-check to
> activate.

That's good to know, I wasn't sure and..

> 
> https://godbolt.org/z/PM7bb1d55

.. I keep forgetting godbolt.org can help to check old compilers.

I will update the patch in my tree.

> 
> With that fixed, Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks!

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 21:11:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 21:11:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648289.1012510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAchb-000575-JZ; Tue, 05 Dec 2023 21:11:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648289.1012510; Tue, 05 Dec 2023 21:11:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAchb-00056y-Gy; Tue, 05 Dec 2023 21:11:35 +0000
Received: by outflank-mailman (input) for mailman id 648289;
 Tue, 05 Dec 2023 21:11:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAcha-00056p-DQ
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 21:11:34 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id dcf9051d-93b2-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 22:11:32 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 cdbf7de91e87 with SMTP id 656f920275c1c4f204a22a71 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 21:11:30 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: dcf9051d-93b2-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701810690; x=1701817890; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=R6MFF4pzmND95Tb9Fd45EIeV/3AUudDJKYL3kCCaHy4=;
 b=HQkLap0HqAIDy4Nn8jL6PrtR6CxgnyeonRRRi7ZQCFyJCHAYyTtCVxXxQ4Gb2m3Z6bRtsptmuE/ar9y9ycbLFU3/6mdO26fduHfZJ1JqwggiRC4j47sJrEnJMVJxENKjejEIluzbl9Esug+HJYVYj9MrZ1CQ1qt30UNBsMWT8D8=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 21:11:30 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656f920289bbd_2c94a347629@gitlab-sidekiq-catchall-v2-799d476df5-r8ntw.mail>
Subject: xen | Failed pipeline for staging | 948e0330
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656f920280a3f_2c94a3476141";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096471389
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656f920280a3f_2c94a3476141
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096471389 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 948e0330 ( https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf12f67740d8ebd8272824903 )
Commit Message: automation/alpine: add elfutils-dev

In prepara...
Commit Author: Roger Pau Monne
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )


Pipeline #1096471389 ( https://gitlab.com/xen-project/xen/-/pipelines/1096471389 ) triggered by Ganis ( https://gitlab.com/ganis )
had 2 failed jobs.

Job #5687342759 ( https://gitlab.com/xen-project/xen/-/jobs/5687342759/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug
Job #5687342742 ( https://gitlab.com/xen-project/xen/-/jobs/5687342742/raw )

Stage: test
Name: adl-pci-hvm-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 948e0330</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096471389 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf1=
2f67740d8ebd8272824903" style=3D"color: #3777b0; text-decoration: none;">=

948e0330
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
automation/alpine: add elfutils-dev

In prepara...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/a8e7984f7692e6b8c12ff2d6f17f1bb6?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Roger Pau Monne
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1096471389">#1096471389</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 2 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5687342759" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5687342742" style=3D=
"color: #3777b0; text-decoration: none;">
adl-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656f920280a3f_2c94a3476141--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:02:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:02:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648334.1012520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAdUJ-00016K-7w; Tue, 05 Dec 2023 22:01:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648334.1012520; Tue, 05 Dec 2023 22:01:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAdUJ-00016D-59; Tue, 05 Dec 2023 22:01:55 +0000
Received: by outflank-mailman (input) for mailman id 648334;
 Tue, 05 Dec 2023 22:01: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=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAdUH-000167-FN
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:01:53 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id e4edd873-93b9-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 23:01:52 +0100 (CET)
Received: from mg.gitlab.com (18.226.74.34.bc.googleusercontent.com
 [34.74.226.18]) by
 9fab9bbd1f43 with SMTP id 656f9dcd4b5825497fac3f04 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 22:01:49 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: e4edd873-93b9-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701813710; x=1701820910; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=dbxsGJdE9TWHyQG5Ug+40E/1o2laY8r1SUe0jWsDQmQ=;
 b=a0QQ2AvPGqV9b2ZVmOupiqXS+kyGtIrSIrE1Y1LCzXyl25SY1gKyR2U46VimZuEP5TSDrg6ZjtfGHJhiESYV0MSPPKjVN5BFGNMk3pYSiH6fEZLNH+Kv4XB720J0u40HDDaWCS0ULNxZ6kUYh7vG1fDnrt9rvMgzAQ0HDaGaw14=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 22:01:49 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656f9dcd2d2dc_2c94ad413342@gitlab-sidekiq-catchall-v2-6c954d4f99-l8fxb.mail>
Subject: xen | Failed pipeline for staging | 948e0330
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656f9dcd211dc_2c94ad413289";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096471389
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656f9dcd211dc_2c94ad413289
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096471389 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 948e0330 ( https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf12f67740d8ebd8272824903 )
Commit Message: automation/alpine: add elfutils-dev

In prepara...
Commit Author: Roger Pau Monne
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )


Pipeline #1096471389 ( https://gitlab.com/xen-project/xen/-/pipelines/1096471389 ) triggered by Ganis ( https://gitlab.com/ganis )
had 2 failed jobs.

Job #5688197051 ( https://gitlab.com/xen-project/xen/-/jobs/5688197051/raw )

Stage: test
Name: adl-pci-hvm-x86-64-gcc-debug
Job #5688196651 ( https://gitlab.com/xen-project/xen/-/jobs/5688196651/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 948e0330</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096471389 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf1=
2f67740d8ebd8272824903" style=3D"color: #3777b0; text-decoration: none;">=

948e0330
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
automation/alpine: add elfutils-dev

In prepara...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/a8e7984f7692e6b8c12ff2d6f17f1bb6?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Roger Pau Monne
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1096471389">#1096471389</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 2 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5688197051" style=3D=
"color: #3777b0; text-decoration: none;">
adl-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5688196651" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656f9dcd211dc_2c94ad413289--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:08:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:08:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648367.1012530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAda5-00023o-SN; Tue, 05 Dec 2023 22:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648367.1012530; Tue, 05 Dec 2023 22:07:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAda5-00023h-PU; Tue, 05 Dec 2023 22:07:53 +0000
Received: by outflank-mailman (input) for mailman id 648367;
 Tue, 05 Dec 2023 22:07: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=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAda3-00023b-Nv
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:07:51 +0000
Received: from m226-146.mailgun.net (m226-146.mailgun.net [159.135.226.146])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id b93e801a-93ba-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 23:07:49 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 4610e329f881 with SMTP id 656f9f32d0b89648ec324964 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 22:07:46 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: b93e801a-93ba-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701814066; x=1701821266; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=Cjo7F8TKn7gz46jC9uheBQKpHZYOyZ4POj15mJi5NdY=;
 b=PQ1GJ0OpAZ8l9lG5VrC3X74wl1ikuiR82W+NftWg+Hx3dzPoMQLtSRaqa3Vro47gbmX0gLS/LwMsd1zSAKtaEe+XeF5sAvT48dRN+OprzRdSLesACNvOFREem2O4aWf1fTiI2zKoQiAlzt9egm5aLQjkPEU1jemw+ziuKI0cdWI=
X-Mailgun-Sending-Ip: 159.135.226.146
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 22:07:46 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656f9f322b0f2_2d94c28320c6@gitlab-sidekiq-catchall-v2-6c954d4f99-tkqwf.mail>
Subject: xen | Failed pipeline for staging | 948e0330
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656f9f3221a25_2d94c2831944";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096471389
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656f9f3221a25_2d94c2831944
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096471389 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 948e0330 ( https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf12f67740d8ebd8272824903 )
Commit Message: automation/alpine: add elfutils-dev

In prepara...
Commit Author: Roger Pau Monne
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )


Pipeline #1096471389 ( https://gitlab.com/xen-project/xen/-/pipelines/1096471389 ) triggered by Ganis ( https://gitlab.com/ganis )
had 2 failed jobs.

Job #5688196651 ( https://gitlab.com/xen-project/xen/-/jobs/5688196651/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug
Job #5688242125 ( https://gitlab.com/xen-project/xen/-/jobs/5688242125/raw )

Stage: test
Name: adl-pci-hvm-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 948e0330</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096471389 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf1=
2f67740d8ebd8272824903" style=3D"color: #3777b0; text-decoration: none;">=

948e0330
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
automation/alpine: add elfutils-dev

In prepara...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/a8e7984f7692e6b8c12ff2d6f17f1bb6?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Roger Pau Monne
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1096471389">#1096471389</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 2 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5688196651" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5688242125" style=3D=
"color: #3777b0; text-decoration: none;">
adl-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656f9f3221a25_2d94c2831944--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:17:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648415.1012540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAdjh-0005Sp-U9; Tue, 05 Dec 2023 22:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648415.1012540; Tue, 05 Dec 2023 22:17:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAdjh-0005Si-RT; Tue, 05 Dec 2023 22:17:49 +0000
Received: by outflank-mailman (input) for mailman id 648415;
 Tue, 05 Dec 2023 22:17: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=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAdjg-0005Sb-BY
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:17:48 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 1dd1df82-93bc-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 23:17:46 +0100 (CET)
Received: from mg.gitlab.com (31.226.74.34.bc.googleusercontent.com
 [34.74.226.31]) by
 74ed807fb134 with SMTP id 656fa188de2d347a6709260c (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 22:17:44 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 1dd1df82-93bc-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701814664; x=1701821864; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=DpVGlaxaZyP7rmFXEXIjZVCkjPU7Tf+947RhhmlbVNU=;
 b=gxUlbhK+SevQbZFw3tBYLwltL2BzCWp8Impmd6e6Kb6Nz8HwNPPp4kf+4UkDqjSv+NZn6ef/x8GMjE/C8P4bonKe6Vsuhh2ykZw6ecj1xdFVAPfaJp5IFj3+Tu1yioURJRY5PDGahwoWSydH3m0eMT34bIZkVRJl0fAH3h3TTr8=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 22:17:44 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656fa18880088_2c94a7080676@gitlab-sidekiq-catchall-v2-6c954d4f99-fqv94.mail>
Subject: xen | Failed pipeline for staging | 948e0330
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656fa1886ab3a_2c94a708050";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096471389
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656fa1886ab3a_2c94a708050
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096471389 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 948e0330 ( https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf12f67740d8ebd8272824903 )
Commit Message: automation/alpine: add elfutils-dev

In prepara...
Commit Author: Roger Pau Monne
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )


Pipeline #1096471389 ( https://gitlab.com/xen-project/xen/-/pipelines/1096471389 ) triggered by Ganis ( https://gitlab.com/ganis )
had 2 failed jobs.

Job #5688196651 ( https://gitlab.com/xen-project/xen/-/jobs/5688196651/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug
Job #5688242125 ( https://gitlab.com/xen-project/xen/-/jobs/5688242125/raw )

Stage: test
Name: adl-pci-hvm-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 948e0330</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096471389 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf1=
2f67740d8ebd8272824903" style=3D"color: #3777b0; text-decoration: none;">=

948e0330
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
automation/alpine: add elfutils-dev

In prepara...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/a8e7984f7692e6b8c12ff2d6f17f1bb6?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Roger Pau Monne
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1096471389">#1096471389</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 2 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5688196651" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5688242125" style=3D=
"color: #3777b0; text-decoration: none;">
adl-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656fa1886ab3a_2c94a708050--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:22:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:22:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648446.1012550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAdnu-0006x3-HA; Tue, 05 Dec 2023 22:22:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648446.1012550; Tue, 05 Dec 2023 22:22: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 1rAdnu-0006ww-CP; Tue, 05 Dec 2023 22:22:10 +0000
Received: by outflank-mailman (input) for mailman id 648446;
 Tue, 05 Dec 2023 22:22:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAdnt-0006wq-3c
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:22:09 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id b9681029-93bc-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 23:22:07 +0100 (CET)
Received: from mg.gitlab.com (65.90.74.34.bc.googleusercontent.com
 [34.74.90.65]) by
 6ce6a2f21a3e with SMTP id 656fa28dec502225e008d55c (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 22:22:05 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: b9681029-93bc-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701814925; x=1701822125; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=wNIxps3n0p5wwiU/QCXaz7/blVOCQS2t/EmwMDI3/So=;
 b=Dkrr0VRsZM3VB1GJQM7Ol2Ukrr80Q1I0We6nOukut3mIww4EzucEMOE9lxoJQYSS0IzX49OFysWim4oKqsxMHQicK5g5bhVqfVFjoTqbNr+L7BcdZbYGiYO9qXERW/hWGBDhx7Zl181SGMsPGUBLRCFyha4Y7IxpApsoCeZawZY=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 22:22:05 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656fa28dcec06_2c94c50800e@gitlab-sidekiq-catchall-v2-6c954d4f99-9tcwb.mail>
Subject: xen | Failed pipeline for staging | 948e0330
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656fa28dc6a22_2c94c507995";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096471389
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656fa28dc6a22_2c94c507995
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096471389 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 948e0330 ( https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf12f67740d8ebd8272824903 )
Commit Message: automation/alpine: add elfutils-dev

In prepara...
Commit Author: Roger Pau Monne
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )


Pipeline #1096471389 ( https://gitlab.com/xen-project/xen/-/pipelines/1096471389 ) triggered by Ganis ( https://gitlab.com/ganis )
had 1 failed job.

Job #5688196651 ( https://gitlab.com/xen-project/xen/-/jobs/5688196651/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 948e0330</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096471389 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf1=
2f67740d8ebd8272824903" style=3D"color: #3777b0; text-decoration: none;">=

948e0330
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
automation/alpine: add elfutils-dev

In prepara...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/a8e7984f7692e6b8c12ff2d6f17f1bb6?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Roger Pau Monne
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1096471389">#1096471389</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 1 failed job
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed job
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5688196651" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656fa28dc6a22_2c94c507995--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:30:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:30:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648496.1012559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAdvj-00016a-Bx; Tue, 05 Dec 2023 22:30:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648496.1012559; Tue, 05 Dec 2023 22:30: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 1rAdvj-00016T-9L; Tue, 05 Dec 2023 22:30:15 +0000
Received: by outflank-mailman (input) for mailman id 648496;
 Tue, 05 Dec 2023 22:30: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 1rAdvh-00016J-N6; Tue, 05 Dec 2023 22:30: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 1rAdvh-0000ON-8L; Tue, 05 Dec 2023 22:30: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 1rAdvg-00032O-Qw; Tue, 05 Dec 2023 22:30:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAdvg-0001TL-QW; Tue, 05 Dec 2023 22:30: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=BYksRaLr2ptGeXOA943mtmpUiffOobqM7RuAPoxnMjc=; b=B2Ryv15g2NVmvi9yCXY/jGDhqg
	CFZ6eAgbW+YAwoVX2ZCqB65iI98ipsfqzky5CtNDm59W6g8iUW8+BURZAeS1d+cmZcch9EVB0m8cy
	H+VJl88CZR6llA6c3PBe63ejJXnO7ownF82e5oXxQn+e7gZf8fjD0VtBa2wslIxXkedA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183998-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 183998: 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=948e03303138482bf12f67740d8ebd8272824903
X-Osstest-Versions-That:
    xen=ff1178062094837d55ef342070e58316c43a54c9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 05 Dec 2023 22:30:12 +0000

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

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                  948e03303138482bf12f67740d8ebd8272824903
baseline version:
 xen                  ff1178062094837d55ef342070e58316c43a54c9

Last test of basis   183994  2023-12-05 10:00:30 Z    0 days
Testing same since   183998  2023-12-05 20:02:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Michal Orzel <michal.orzel@amd.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau MonnÃ© <roger.pau@citrix.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
   ff11780620..948e033031  948e03303138482bf12f67740d8ebd8272824903 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:37:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648502.1012569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAe35-0002gu-4D; Tue, 05 Dec 2023 22:37:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648502.1012569; Tue, 05 Dec 2023 22:37:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAe35-0002gn-1W; Tue, 05 Dec 2023 22:37:51 +0000
Received: by outflank-mailman (input) for mailman id 648502;
 Tue, 05 Dec 2023 22:37:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MQDs=HQ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAe33-0002gf-DQ
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:37:49 +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 e8935b27-93be-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 23:37:46 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 77658CE1B22;
 Tue,  5 Dec 2023 22:37:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7E39C433C7;
 Tue,  5 Dec 2023 22:37: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: e8935b27-93be-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701815860;
	bh=sREbz9DKSjqXuLOUL8jwggcX4KntV1Kh5sSgOifiQyE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=arznWVpT85zXKYCMx2p9VwmS5C5YWedRxPvFBC90LJYoCFk3NcqnIXTMZpgAbE0L1
	 8wp7jgeiX6waz631/gRYN7zVbaDcPP8QwkjdU38PlAy+3VRuiNbfyvtXvGeKwHg+Og
	 J25uOw2o1GNnMo7LZA0iKsqosECXODo0BStzoOOexxlzoKIBSvbC+/ez+urAlbyml0
	 dWfY8OMyh2MnRrNJhF0XvPes4rJLKgirZ8+OVH7NzRvcJzKD7iCVUZWk81uihxoFlp
	 jcInj9Lrxy1nNoWxu5wrMwGOVXtgG/GcCznWSH+uk9jczslHFcH18kayl6nld/vhtf
	 vvjUsDOKrKJHA==
Date: Tue, 5 Dec 2023 14:37:38 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Juergen Gross <jgross@suse.com>
cc: linux-kernel@vger.kernel.org, Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    xen-devel@lists.xenproject.org, Pry Mar <pryorm09@gmail.com>
Subject: Re: [PATCH] xen: update PV-device interface headers
In-Reply-To: <20231205115121.11627-1-jgross@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312051437330.110490@ubuntu-linux-20-04-desktop>
References: <20231205115121.11627-1-jgross@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, 4 Dec 2023, Juergen Gross wrote:
> Update the Xen PV-device interface headers in order to avoid undefined
> behavior with flexible arrays being defined with one array element.
> 
> Reported-by: Pry Mar <pryorm09@gmail.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>

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

> ---
>  include/xen/interface/io/displif.h | 2 +-
>  include/xen/interface/io/ring.h    | 2 +-
>  include/xen/interface/io/sndif.h   | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/include/xen/interface/io/displif.h b/include/xen/interface/io/displif.h
> index 18417b017869..60e42d3b760e 100644
> --- a/include/xen/interface/io/displif.h
> +++ b/include/xen/interface/io/displif.h
> @@ -537,7 +537,7 @@ struct xendispl_dbuf_create_req {
>  
>  struct xendispl_page_directory {
>  	grant_ref_t gref_dir_next_page;
> -	grant_ref_t gref[1]; /* Variable length */
> +	grant_ref_t gref[];
>  };
>  
>  /*
> diff --git a/include/xen/interface/io/ring.h b/include/xen/interface/io/ring.h
> index ba4c4274b714..4fef1efcdcab 100644
> --- a/include/xen/interface/io/ring.h
> +++ b/include/xen/interface/io/ring.h
> @@ -95,7 +95,7 @@ struct __name##_sring {                                                 \
>      RING_IDX req_prod, req_event;                                       \
>      RING_IDX rsp_prod, rsp_event;                                       \
>      uint8_t __pad[48];                                                  \
> -    union __name##_sring_entry ring[1]; /* variable-length */           \
> +    union __name##_sring_entry ring[];                                  \
>  };                                                                      \
>                                                                          \
>  /* "Front" end's private variables */                                   \
> diff --git a/include/xen/interface/io/sndif.h b/include/xen/interface/io/sndif.h
> index 445657cdb1de..b818517588b5 100644
> --- a/include/xen/interface/io/sndif.h
> +++ b/include/xen/interface/io/sndif.h
> @@ -659,7 +659,7 @@ struct xensnd_open_req {
>  
>  struct xensnd_page_directory {
>  	grant_ref_t gref_dir_next_page;
> -	grant_ref_t gref[1]; /* Variable length */
> +	grant_ref_t gref[];
>  };
>  
>  /*
> -- 
> 2.35.3
> 


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:38:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:38:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648504.1012580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAe3k-0003BZ-Dt; Tue, 05 Dec 2023 22:38:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648504.1012580; Tue, 05 Dec 2023 22:38:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAe3k-0003BS-BB; Tue, 05 Dec 2023 22:38:32 +0000
Received: by outflank-mailman (input) for mailman id 648504;
 Tue, 05 Dec 2023 22:38: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=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAe3i-0002gf-5w
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:38:30 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 01d7ef7a-93bf-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 23:38:28 +0100 (CET)
Received: from mg.gitlab.com (29.226.74.34.bc.googleusercontent.com
 [34.74.226.29]) by
 c913bd649a02 with SMTP id 656fa662d0b89648ec497ac3 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 22:38:26 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 01d7ef7a-93bf-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701815906; x=1701823106; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=MK7y/tRd73BmOECC7l70XExiAu8gREn830btd/Mz4Pc=;
 b=ORzFPMhWfN7Y7AtauFoqWT0xcNfcNhmbVAva4uQw0PBZebK/0WLiwm8qsrphapkIOHWYe1a8HT4rp6AlwlzVtISKg3c9UQyWPbEg/IpFaqRQqtoP3ikA/jGW2yVXgNatcJO5l++SL03RNtkdD0XKh3sUeOiMDVuCxr8qtwHdkrg=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 22:38:26 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656fa6622fdca_2c31646034531@gitlab-sidekiq-catchall-v2-6c954d4f99-dnl4z.mail>
Subject: xen | Successful pipeline for staging | 948e0330
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656fa66228334_2c31646034492";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096471389
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656fa66228334_2c31646034492
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096471389 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 948e0330 ( https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf12f67740d8ebd8272824903 )
Commit Message: automation/alpine: add elfutils-dev

In prepara...
Commit Author: Roger Pau Monne
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )



Pipeline #1096471389 ( https://gitlab.com/xen-project/xen/-/pipelines/1096471389 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 135 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 948e0330</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096471389 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/948e03303138482bf1=
2f67740d8ebd8272824903" style=3D"color: #3777b0; text-decoration: none;">=
948e0330</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
automation/alpine: add elfutils-dev

In prepara...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/a8e7984f7692e6b8c12ff2d6f17f1bb6?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Roger Pau Monne
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/109647=
1389" style=3D"color: #3777b0; text-decoration: none;">#1096471389</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 135 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656fa66228334_2c31646034492--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:43:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:43:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648534.1012589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAe8i-0004ic-08; Tue, 05 Dec 2023 22:43:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648534.1012589; Tue, 05 Dec 2023 22:43:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAe8h-0004iV-T8; Tue, 05 Dec 2023 22:43:39 +0000
Received: by outflank-mailman (input) for mailman id 648534;
 Tue, 05 Dec 2023 22:43: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=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAe8h-0004iP-C9
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:43:39 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id ba8adead-93bf-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 23:43:38 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 f7927f1f4ed9 with SMTP id 656fa798156c2f1039cd2d4d (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 22:43:36 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: ba8adead-93bf-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701816216; x=1701823416; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=yDMf3ZnQzp3EOerm9Qsn+TTpd2BhJfhcFMXR5vZ72yk=;
 b=XUo5WgqiMch4+WXym87TdJ2uI2HEUCx1BBASnT8cN+Apqb0CCaQ6Nyw0Mjenvg9EQSVZA355DlDkYHTpYOkgjA/2sLzpbQ/LiZURFN1MtIgMbYnHgulMMTc1ew805qTTYgm12K9U1B4Pgd+p8bHaCVBoARTqiBxeBb4S4v1QNK0=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 22:43:35 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656fa797c46c5_2c948f41336ab@gitlab-sidekiq-catchall-v2-6c954d4f99-hdmww.mail>
Subject: xen | Failed pipeline for staging | 01da0aee
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656fa797bb79b_2c948f41335a8";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096532827
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656fa797bb79b_2c948f41335a8
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096532827 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 01da0aee ( https://gitlab.com/xen-project/xen/-/commit/01da0aeecd41435cea8bd2fe0f547e0a474f6e45 )
Commit Message: ns16550: remove partial explicit initializer

T...
Commit Author: Nicola Vetrini
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )


Pipeline #1096532827 ( https://gitlab.com/xen-project/xen/-/pipelines/1096532827 ) triggered by Ganis ( https://gitlab.com/ganis )
had 2 failed jobs.

Job #5687727963 ( https://gitlab.com/xen-project/xen/-/jobs/5687727963/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug
Job #5687727945 ( https://gitlab.com/xen-project/xen/-/jobs/5687727945/raw )

Stage: test
Name: adl-pci-hvm-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 01da0aee</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096532827 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/01da0aeecd41435cea=
8bd2fe0f547e0a474f6e45" style=3D"color: #3777b0; text-decoration: none;">=

01da0aee
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
ns16550: remove partial explicit initializer

T...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/23d68b797e165570c641942285dfe06e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Nicola Vetrini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1096532827">#1096532827</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 2 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5687727963" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5687727945" style=3D=
"color: #3777b0; text-decoration: none;">
adl-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656fa797bb79b_2c948f41335a8--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:53:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:53:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648587.1012600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAeI6-0007N8-1e; Tue, 05 Dec 2023 22:53:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648587.1012600; Tue, 05 Dec 2023 22:53:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAeI5-0007N1-UH; Tue, 05 Dec 2023 22:53:21 +0000
Received: by outflank-mailman (input) for mailman id 648587;
 Tue, 05 Dec 2023 22:53:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MQDs=HQ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAeI5-0007Mt-0R
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:53:21 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 15a630e3-93c1-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 23:53:19 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 45A59B81D5E;
 Tue,  5 Dec 2023 22:53:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 764D6C433C7;
 Tue,  5 Dec 2023 22:53: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: 15a630e3-93c1-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701816798;
	bh=KyOL/7NMLx7bo4Tol2EvWyUTqHwZyC8Cqw72KnUv1ns=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=m6p2+Am44vuWoXOsZEhT2WtaepKj2Wvmot1QyGyI2E6rpfW1i1jfLdmB/QqF+e6xI
	 qtyyoSREKG3i/7qp/xv0f9o3996rgM6m4Dz6Ca1MmmEkieuDXcy2YXUF2B/GFv0T1D
	 2hU4T02ORPHZC7L2PK1Fq8n5StvqO7IYAp6LuJC+0tve1SCRpKtXfcJg5eS4o1MvrY
	 Srhc9MFropC7lJQEW6ylJqCwu3kXvJUK6EdYolfP1bm70RBjaPnZHC0oJ/VmzZlEjF
	 xgkTgqoZ3Lh++rveuVAMEWzcSE1yS9vqWUP+kiSEFJggesNgGyvSTArjAK/OfJ9Yuw
	 8gRd1UA/iSCqg==
Date: Tue, 5 Dec 2023 14:53:16 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
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>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH v2] x86/DMI: adjustments to comply with Misra C:2012 Rule
 9.3
In-Reply-To: <1ca903e7-ed2c-435e-999d-2a8519957498@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312051453090.110490@ubuntu-linux-20-04-desktop>
References: <1ca903e7-ed2c-435e-999d-2a8519957498@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, 5 Dec 2023, Jan Beulich wrote:
> The rule demands that all array elements be initialized (or dedicated
> initializers be used). Introduce a small set of macros to allow doing so
> without unduly affecting use sites (in particular in terms of how many
> elements .matches[] actually has; right now there's no use of
> DMI_MATCH4(), so we could even consider reducing the array size to 3).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:53:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:53:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648588.1012610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAeIO-0007hl-9j; Tue, 05 Dec 2023 22:53:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648588.1012610; Tue, 05 Dec 2023 22:53:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAeIO-0007he-5d; Tue, 05 Dec 2023 22:53:40 +0000
Received: by outflank-mailman (input) for mailman id 648588;
 Tue, 05 Dec 2023 22:53:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAeIM-0007gi-N4
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:53:38 +0000
Received: from m226-146.mailgun.net (m226-146.mailgun.net [159.135.226.146])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 1f2d9a46-93c1-11ee-9b0f-b553b5be7939;
 Tue, 05 Dec 2023 23:53:36 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 c913bd649a02 with SMTP id 656fa9ee056ba3f970f5712e (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 22:53:34 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 1f2d9a46-93c1-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701816814; x=1701824014; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=2HjDq+twXCtcwlTrG5e4Bqel3F6S7X6TkAR1OkaY7UQ=;
 b=EVtCbWajlUkpRfCA8GmcaOY4H0AviiWSZ6rwn+M++GK6WNS3mZTZtO2ozgtwvFpf7eHsoEWrGAlpNoQLJwz3ntTZTggZXGdAKQ+wJfx/JxbBeNH/tRjbxeLpDMNiYhGpyKbv0Kj8EcMixU2vmsRyy/gjsMTECeOUn0NllxaFyus=
X-Mailgun-Sending-Ip: 159.135.226.146
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 22:53:34 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656fa9ee523cf_2c94a5c80261@gitlab-sidekiq-catchall-v2-6c954d4f99-clvcl.mail>
Subject: xen | Failed pipeline for staging | 01da0aee
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656fa9ee4998a_2c94a5c8011b";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096532827
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656fa9ee4998a_2c94a5c8011b
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096532827 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 01da0aee ( https://gitlab.com/xen-project/xen/-/commit/01da0aeecd41435cea8bd2fe0f547e0a474f6e45 )
Commit Message: ns16550: remove partial explicit initializer

T...
Commit Author: Nicola Vetrini
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )


Pipeline #1096532827 ( https://gitlab.com/xen-project/xen/-/pipelines/1096532827 ) triggered by Ganis ( https://gitlab.com/ganis )
had 2 failed jobs.

Job #5687727963 ( https://gitlab.com/xen-project/xen/-/jobs/5687727963/raw )

Stage: test
Name: zen3p-pci-hvm-x86-64-gcc-debug
Job #5687727945 ( https://gitlab.com/xen-project/xen/-/jobs/5687727945/raw )

Stage: test
Name: adl-pci-hvm-x86-64-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 01da0aee</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096532827 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/01da0aeecd41435cea=
8bd2fe0f547e0a474f6e45" style=3D"color: #3777b0; text-decoration: none;">=

01da0aee
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
ns16550: remove partial explicit initializer

T...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/23d68b797e165570c641942285dfe06e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Nicola Vetrini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1096532827">#1096532827</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 2 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5687727963" style=3D=
"color: #3777b0; text-decoration: none;">
zen3p-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5687727945" style=3D=
"color: #3777b0; text-decoration: none;">
adl-pci-hvm-x86-64-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656fa9ee4998a_2c94a5c8011b--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:56:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:56:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648629.1012620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAeLQ-0001A5-NX; Tue, 05 Dec 2023 22:56:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648629.1012620; Tue, 05 Dec 2023 22: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 1rAeLQ-00019y-KI; Tue, 05 Dec 2023 22:56:48 +0000
Received: by outflank-mailman (input) for mailman id 648629;
 Tue, 05 Dec 2023 22:56:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=paSO=HQ=citrix.com=prvs=696dacbf7=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1rAeLP-00010j-Gf
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:56:47 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f5a392a-93c1-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 23:56:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f5a392a-93c1-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1701817006;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=09HDfo5QPRXVSv3hpnAY4bTW5tmPUkNxIgrHBOQg9vc=;
  b=IA5p4LbIwApx4hYuDcwqu+3ycV3EN3DKcGyUccplW/KRn/HcuT79rWYQ
   bd+VLk1juftaMX3+PjuHAobNTwg/UXDx2TFVQ0jLg9S35M+UuUuUDgMN9
   KodvFzuUXNw0EUeVgTGCsQu10QrDynA5OB5iSlG+MLWYKxUzadTrasARi
   Y=;
X-CSE-ConnectionGUID: oiKzt41pSQywTZ6KANt97A==
X-CSE-MsgGUID: AFTTlP6SSHGJaNTVZLw1Mg==
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 4.0
X-MesageID: 129016668
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.159.70
X-Policy: $RELAYED
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:fAxJvKnBZrfbjUEcQGsN7/To5gzjJkRdPkR7XQ2eYbSJt1+Wr1Gzt
 xIYCzyGbvyJNGX2LYh0O9nn90IHvsXcmNNqQFRkpS49QiMWpZLJC+rCIxarNUt+DCFhoGFPt
 JxCN4aafKjYaleG+39B55C49SEUOZmgH+e6UKicfHkpGWeIcQ954Tp7gek1n4V0ttawBgKJq
 LvartbWfVSowFaYCEpNg064gE0p5KiaVA8w5ARkPqkR5AKGzRH5MbpETU2PByqgKmVrNrbSq
 9brlNmR4m7f9hExPdKp+p6TnpoiG+O60aCm0xK6aoD66vRwjnVaPpUTbZLwXXx/mTSR9+2d/
 f0W3XCGpaXFCYWX8AgVe0Ew/yiTpsSq8pefSZS0mZT7I0Er7xIAahihZa07FdRwxwp5PY1B3
 fsZCyIRMkmbvNun346JFMpFoNhyc+C+aevzulk4pd3YJfMvQJSFSKTW/95Imjw3g6iiH96HO
 ZBfM2A2Kk2dMlsQYj/7C7pn9AusrlD5fydVtxS+oq0v7nKI5AdwzKLsIJzefdniqcB9xxzJ/
 juYoTqpav0cHPWx9QaByiyXvc/gvyrdZLwgMKLh0/E/1TV/wURMUUZLBDNXu8KRmkO4Ht5SN
 UEQ0i4vtrQpslymSMHnWB+1q2LCuQQTM/JLCPEz4gyJzqvS4i6aC3ICQzoHb8Yp3OczRDcq3
 1vPmMn7CDhHubiZD3ma89+8pjqoNS8YBWQLfyMDQE0O5NyLnW0opkuRFJA5Svfz14CkX26oq
 9yXkMQgr7ISrtwXi/yjxmnWnA6e+LvgaBJkuSyCCwpJ8ThFiJ6Zi52AsAeDtKkRdt/IFDG8U
 G44d99yBd3i7K1hdwTXGY3h5Jnzu5643MT02DaD5aUJ+TW34GKEdotN+jx4L0oBGp9bIWa5O
 BaO4lsJtMU70J6WgUhfOdrZNijX5fK4SYSNug78P7KinaSdhCfYpXozNCZ8LkjmkVQ2kLFXB
 HtoWZ/EMJruMow+lGDeb75EgdcWKtUWmTu7qWbTk072jtJzpRe9Fd84Dbd5RrxjsfjV+luFq
 L6y9aKikn1ibQE3WQGPmaZ7ELzABSFT6UzewyCPStO+Hw==
IronPort-HdrOrdr: A9a23:KyPzRK5uBLLHQV9MmwPXwMTXdLJyesId70hD6qhwISY6TiX+rb
 HIoB17726RtN9/YhEdcLy7VJVoIkmskKKdg7NhXotKNTOO0ADDQb2KhbGSpQEIcBeeygcy78
 hdmtBFeb/NMWQ=
X-Talos-CUID: 9a23:11l75GDXMQw2dEv6Ey5m11wIRpk9SUTM00vifWyRL3o4F5TAHA==
X-Talos-MUID: 9a23:fEQ2RwUa4YeP/87q/BbCuA1mDJlT2ISBKkkrras0n9bdECMlbg==
X-IronPort-AV: E=Sophos;i="6.04,253,1695700800"; 
   d="scan'208";a="129016668"
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@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] CI: Fix fallout from adding elfutils-dev to the build container
Date: Tue, 5 Dec 2023 22:56:40 +0000
Message-ID: <20231205225640.75987-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Commit 948e03303138 ("automation/alpine: add elfutils-dev") had an unintended
consequence of causing Qemu to gain a runtime dependency on libdw.so

The {adl,zen3p}-pci-hvm-x86-64-gcc-debug tests, which are the only two tests
that run the built Qemu, started failing with:

  Error loading shared library libdw.so.1: No such file or directory (needed by /usr/local/lib/xen/bin/qemu-system-i386)
  Error relocating /usr/local/lib/xen/bin/qemu-system-i386: dwfl_begin: symbol not found

Update the test container with libelf to cope.

While editing the runtime dependency list, fix up two other problems causing
bloat.  texinfo isn't a runtime dependency, and we should be using xz itself,
not it's development libraries.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

I've already pushed the x86 container as part of confirming the fix.
---
 automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile | 3 +--
 automation/tests-artifacts/alpine/3.18.dockerfile         | 4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
index 94f69621f40e..0e5ae7f2b4d8 100644
--- a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
+++ b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
@@ -21,10 +21,9 @@ RUN \
   apk add python3 && \
   apk add zlib && \
   apk add ncurses && \
-  apk add texinfo && \
   apk add yajl && \
   apk add libaio && \
-  apk add xz-dev && \
+  apk add xz && \
   apk add util-linux && \
   apk add argp-standalone && \
   apk add libfdt && \
diff --git a/automation/tests-artifacts/alpine/3.18.dockerfile b/automation/tests-artifacts/alpine/3.18.dockerfile
index f1b4a8b7a191..9cde6c9ad4da 100644
--- a/automation/tests-artifacts/alpine/3.18.dockerfile
+++ b/automation/tests-artifacts/alpine/3.18.dockerfile
@@ -22,10 +22,9 @@ RUN \
   apk add python3 && \
   apk add zlib && \
   apk add ncurses && \
-  apk add texinfo && \
   apk add yajl && \
   apk add libaio && \
-  apk add xz-dev && \
+  apk add xz && \
   apk add util-linux && \
   apk add argp-standalone && \
   apk add libfdt && \
@@ -34,6 +33,7 @@ RUN \
   apk add curl && \
   apk add udev && \
   apk add pciutils && \
+  apk add libelf && \
   \
   # Xen
   cd / && \

base-commit: ff1178062094837d55ef342070e58316c43a54c9
prerequisite-patch-id: 477e3af5692ee0daa13d795fdf78384be604fd66
prerequisite-patch-id: 60d13b1c04d8a808a42d20b3432270cfd87a47fc
prerequisite-patch-id: 457b56a295e75d2d9f837b44cd483812ca66cd85
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Tue Dec 05 22:59:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 22:59:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648635.1012629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAeNd-0001rc-83; Tue, 05 Dec 2023 22:59:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648635.1012629; Tue, 05 Dec 2023 22:59:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAeNd-0001rV-5M; Tue, 05 Dec 2023 22:59:05 +0000
Received: by outflank-mailman (input) for mailman id 648635;
 Tue, 05 Dec 2023 22:59:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d1Yn=HQ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAeNc-0001rP-Mq
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 22:59:04 +0000
Received: from m202-219.mailgun.net (m202-219.mailgun.net [161.38.202.219])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id e1d422e9-93c1-11ee-98e5-6d05b1d4d9a1;
 Tue, 05 Dec 2023 23:59:03 +0100 (CET)
Received: from mg.gitlab.com (29.226.74.34.bc.googleusercontent.com
 [34.74.226.29]) by
 b06eb60d1c9b with SMTP id 656fab34d0b89648ec55d283 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 05 Dec 2023 22:59:00 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: e1d422e9-93c1-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701817140; x=1701824340; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=TPBigN5dmBBDB5M69S4jZdcg9GTDd5NyG7M/TGvpEqY=;
 b=pl4r3+Ymb9LCHenYCngePiMmMUeig0TmkLIa4/0DC0N9BWmu3ptO8vji5L+QGI+MOQpkgCh/Jk3coSqH7KzaLIWCzbmohWdqp1ksN/nPpF/7niw31G8vX4hiGJo1IHj7Nd/xOg4U3P28bfMbxLKcRxtwe67lbXzxonEcjF6xR68=
X-Mailgun-Sending-Ip: 161.38.202.219
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 05 Dec 2023 22:58:59 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656fab33d492d_2c94ad428119@gitlab-sidekiq-catchall-v2-66fd779d5-82zcs.mail>
Subject: xen | Successful pipeline for staging | 01da0aee
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656fab33c65cc_2c94ad42792d";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096532827
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656fab33c65cc_2c94ad42792d
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096532827 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 01da0aee ( https://gitlab.com/xen-project/xen/-/commit/01da0aeecd41435cea8bd2fe0f547e0a474f6e45 )
Commit Message: ns16550: remove partial explicit initializer

T...
Commit Author: Nicola Vetrini
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )



Pipeline #1096532827 ( https://gitlab.com/xen-project/xen/-/pipelines/1096532827 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 132 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 01da0aee</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096532827 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/01da0aeecd41435cea=
8bd2fe0f547e0a474f6e45" style=3D"color: #3777b0; text-decoration: none;">=
01da0aee</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
ns16550: remove partial explicit initializer

T...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/23d68b797e165570c641942285dfe06e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Nicola Vetrini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/109653=
2827" style=3D"color: #3777b0; text-decoration: none;">#1096532827</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 132 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656fab33c65cc_2c94ad42792d--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 23:05:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 23:05:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648668.1012639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAeUB-0003Vm-Tm; Tue, 05 Dec 2023 23:05:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648668.1012639; Tue, 05 Dec 2023 23:05:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAeUB-0003Vf-RH; Tue, 05 Dec 2023 23:05:51 +0000
Received: by outflank-mailman (input) for mailman id 648668;
 Tue, 05 Dec 2023 23:05: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=MQDs=HQ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAeOc-0001rP-5L
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 23:00:06 +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 068d810e-93c2-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 00:00:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id DB265CE1B7D;
 Tue,  5 Dec 2023 23:00:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33450C433C8;
 Tue,  5 Dec 2023 23:00: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: 068d810e-93c2-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701817202;
	bh=de85faNbES6GMHE2TWVFPP2n2qe5Y4DDk91KBKFrjHA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Vi/AcdolOIISPESliqJxEDsadX2YQypwqWL7qb8NvfPW0NHmYcX9Ed0bRQeDH4RF8
	 xxE8ZDYo2ibJSA6Ns0i4/WRkuJxZaFhJgJ5XuKrv2RuP3rKz9bK/WSxJ/0RZZV2VCH
	 OSPVDD3e4w0AWbyH0J7y7Fq2K/u9lZfUIdSaHvFu6LDV6ksXJnuzxxobiw1HhFlH4n
	 jBR89oW9dcUuc+0dY4lIv8J0G2HGqgqAgOmY9wHJ8KTpnAviymFIsUj780lYVa26rf
	 owtSOKsdKiQI028hW+oETybG3Bs2tA+XnmAh+Wk9VU7NyF7CEEfxBL26BUxYj3eiGm
	 houg8/EHwYCew==
Date: Tue, 5 Dec 2023 14:59:59 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Xen-devel <xen-devel@lists.xenproject.org>, 
    Anthony PERARD <anthony.perard@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] CI: Fix fallout from adding elfutils-dev to the build
 container
In-Reply-To: <20231205225640.75987-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2312051459520.110490@ubuntu-linux-20-04-desktop>
References: <20231205225640.75987-1-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1255926777-1701817202=:110490"

  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-1255926777-1701817202=:110490
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 5 Dec 2023, Andrew Cooper wrote:
> Commit 948e03303138 ("automation/alpine: add elfutils-dev") had an unintended
> consequence of causing Qemu to gain a runtime dependency on libdw.so
> 
> The {adl,zen3p}-pci-hvm-x86-64-gcc-debug tests, which are the only two tests
> that run the built Qemu, started failing with:
> 
>   Error loading shared library libdw.so.1: No such file or directory (needed by /usr/local/lib/xen/bin/qemu-system-i386)
>   Error relocating /usr/local/lib/xen/bin/qemu-system-i386: dwfl_begin: symbol not found
> 
> Update the test container with libelf to cope.
> 
> While editing the runtime dependency list, fix up two other problems causing
> bloat.  texinfo isn't a runtime dependency, and we should be using xz itself,
> not it's development libraries.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


> ---
> CC: Anthony PERARD <anthony.perard@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Doug Goldstein <cardoe@cardoe.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> I've already pushed the x86 container as part of confirming the fix.
> ---
>  automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile | 3 +--
>  automation/tests-artifacts/alpine/3.18.dockerfile         | 4 ++--
>  2 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
> index 94f69621f40e..0e5ae7f2b4d8 100644
> --- a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
> +++ b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
> @@ -21,10 +21,9 @@ RUN \
>    apk add python3 && \
>    apk add zlib && \
>    apk add ncurses && \
> -  apk add texinfo && \
>    apk add yajl && \
>    apk add libaio && \
> -  apk add xz-dev && \
> +  apk add xz && \
>    apk add util-linux && \
>    apk add argp-standalone && \
>    apk add libfdt && \
> diff --git a/automation/tests-artifacts/alpine/3.18.dockerfile b/automation/tests-artifacts/alpine/3.18.dockerfile
> index f1b4a8b7a191..9cde6c9ad4da 100644
> --- a/automation/tests-artifacts/alpine/3.18.dockerfile
> +++ b/automation/tests-artifacts/alpine/3.18.dockerfile
> @@ -22,10 +22,9 @@ RUN \
>    apk add python3 && \
>    apk add zlib && \
>    apk add ncurses && \
> -  apk add texinfo && \
>    apk add yajl && \
>    apk add libaio && \
> -  apk add xz-dev && \
> +  apk add xz && \
>    apk add util-linux && \
>    apk add argp-standalone && \
>    apk add libfdt && \
> @@ -34,6 +33,7 @@ RUN \
>    apk add curl && \
>    apk add udev && \
>    apk add pciutils && \
> +  apk add libelf && \
>    \
>    # Xen
>    cd / && \
> 
> base-commit: ff1178062094837d55ef342070e58316c43a54c9
> prerequisite-patch-id: 477e3af5692ee0daa13d795fdf78384be604fd66
> prerequisite-patch-id: 60d13b1c04d8a808a42d20b3432270cfd87a47fc
> prerequisite-patch-id: 457b56a295e75d2d9f837b44cd483812ca66cd85
> -- 
> 2.30.2
> 
--8323329-1255926777-1701817202=:110490--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 23:21:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 23:21:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648683.1012650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAejG-0008D2-7O; Tue, 05 Dec 2023 23:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648683.1012650; Tue, 05 Dec 2023 23:21:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAejG-0008Cv-4O; Tue, 05 Dec 2023 23:21:26 +0000
Received: by outflank-mailman (input) for mailman id 648683;
 Tue, 05 Dec 2023 23:21:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MQDs=HQ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAejE-0008Cp-J0
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 23:21:24 +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 fe3d2a87-93c4-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 00:21:19 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id EF82D6175C;
 Tue,  5 Dec 2023 23:21:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5DA7EC433C8;
 Tue,  5 Dec 2023 23:21: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: fe3d2a87-93c4-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701818477;
	bh=+TC32LmrftKNUUrW8xP/QIC7oUPugt5N6HpLLFJkLX0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=HVUdPIVh45xs9Z3HB8pojiebkGPYrcELOupLdybKMiQsQ1gXptrt4wwaQzQi5Qszj
	 VlScYL812D1q3SanBPYzUj6wgQvOeGUMwNvok4TKJSfGBroQbE2qBLWdfweGSR0hJZ
	 /KLDjnGbPRE5idZ+qa1v0OtQPmgWoX57oEd3SBrqldE7c0G2HbkEZXBXEMxW6k28Ki
	 VsGGXzS6XSa3MOsjIjxdHXLLPA/zjZ42KApm6u2bZArXM8nkJ8f/7PnLrE6J8gQEwB
	 te/hc29m6eDSgR9m9zFHuv3GVbJ0ez1s5K+M58lS/lt5hWd9QKBVpkVtOnLA9Zjcac
	 6RUrSizIO4hBg==
Date: Tue, 5 Dec 2023 15:21:14 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Ayan Kumar Halder <ayankuma@amd.com>, Michal Orzel <michal.orzel@amd.com>, 
    Ayan Kumar Halder <ayan.kumar.halder@amd.com>, sstabellini@kernel.org, 
    stefano.stabellini@amd.com, bertrand.marquis@arm.com, 
    Volodymyr_Babchuk@epam.com, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
In-Reply-To: <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312051503060.110490@ubuntu-linux-20-04-desktop>
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com> <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org> <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com> <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org> <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org> <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com> <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org> <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com> <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
 <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-365692561-1701818477=:110490"

  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-365692561-1701818477=:110490
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 5 Dec 2023, Julien Grall wrote:
> Hi Ayan,
> 
> On 05/12/2023 12:50, Ayan Kumar Halder wrote:
> > Hi Julien/All,
> > 
> > On 05/12/2023 11:02, Michal Orzel wrote:
> > > 
> > > On 05/12/2023 11:42, Julien Grall wrote:
> > > > 
> > > > On 05/12/2023 10:30, Michal Orzel wrote:
> > > > > 
> > > > > On 05/12/2023 11:01, Julien Grall wrote:
> > > > > > 
> > > > > > On 05/12/2023 09:28, Michal Orzel wrote:
> > > > > > > Hi Julien,
> > > > > > > 
> > > > > > > On 04/12/2023 20:55, Julien Grall wrote:
> > > > > > > > 
> > > > > > > > On 04/12/2023 13:02, Ayan Kumar Halder wrote:
> > > > > > > > > On 04/12/2023 10:31, Julien Grall wrote:
> > > > > > > > > > Hi Ayan,
> > > > > > > > > Hi Julien,
> > > > > > > > > > On 01/12/2023 18:50, Ayan Kumar Halder wrote:
> > > > > > > > > > > Currently if user enables HVC_DCC config option in Linux,
> > > > > > > > > > > it invokes
> > > > > > > > > > > access to debug data transfer registers (ie DBGDTRTX_EL0
> > > > > > > > > > > on arm64,
> > > > > > > > > > > DBGDTRTXINT on arm32). As these registers are not
> > > > > > > > > > > emulated, Xen injects
> > > > > > > > > > > an undefined exception to the guest. And Linux crashes.
> > > > > > > > > > I am missing some data points here to be able to say whether
> > > > > > > > > > I would
> > > > > > > > > > be ok with emulating the registers. So some questions:
> > > > > > > > > > Â Â Â Â  * As you wrote below, HVC_DCC will return -ENODEV after
> > > > > > > > > > this
> > > > > > > > > > emulation. So may I ask what's the use case to enable it?
> > > > > > > > > > (e.g. is
> > > > > > > > > > there a distro turning this on?)
> > > > > > > > > I am not aware of any distro using (or not using) this
> > > > > > > > > feature. This
> > > > > > > > > issue came to light during our internal testing, when HVC_DCC
> > > > > > > > > was
> > > > > > > > > enabled to use the debug console. When Linux runs without Xen,
> > > > > > > > > then we
> > > > > > > > > could observe the logs on the debug console. When Linux was
> > > > > > > > > running as a
> > > > > > > > > VM, it crashed.
> > > > > > > > > 
> > > > > > > > > My intention here was to do the bare minimum emulation so that
> > > > > > > > > the crash
> > > > > > > > > could be avoided.
> > > > > > > > This reminds me a bit the discussion around "xen/arm64: Decode
> > > > > > > > ldr/str
> > > > > > > > post increment operations". I don't want Xen to contain
> > > > > > > > half-backed
> > > > > > > > emulation just to please an OS in certain configuration that
> > > > > > > > doesn't
> > > > > > > > seem to be often used.
> > > > > > > > 
> > > > > > > > Also, AFAICT, KVM is in the same situation...
> > > > > > > Well, KVM is not in the same situation. It emulates all DCC regs
> > > > > > > as RAZ/WI, so there
> > > > > > > will be no fault on an attempt to access the DCC.
> > > > > > Does this mean a guest will think the JTAG is availabe?
> > > > > Yes, it will believe the DCC is available which is not a totally bad
> > > > > idea. Yes, it will not have
> > > > > any effect but at least covers the polling loop. The solution proposed
> > > > > here sounds better but does not take
> > > > > into account the busy while loop when sending the char. Linux DCC
> > > > > earlycon does not make an initial check that runtime
> > > > > driver does and will keep waiting in the loop if TXfull is set.
> > > > > Emulating everything as RAZ/WI solves that.
> > > > > As you can see, each solution has its flaws and depends on the OS
> > > > > implementation.
> > > > Right, which prove my earlier point. You are providing an emulation just
> > > > to please a specific driver in Linux (not even the whole Linux). This is
> > > > what I was the most concern of.
> > I have sent out a patch ("[PATCH] tty: hvc: dcc: Check for TXfull condition
> > while setting up early console") to fix this.
> > > > 
> > > > So ...
> > > > 
> > > > > > > In general, I think that if a register is not optional and does
> > > > > > > not depend on other register
> > > > > > > to be checked first (e.g. a feature/control register we emulate),
> > > > > > > which implies that it is fully ok for a guest to
> > > > > > > access it directly - we should at least try to do something not to
> > > > > > > crash a guest.
> > > > > > This is where we have opposing opinion. I view crashing a guest
> > > > > > better
> > > > > > than providing a wrong emulation because it gives a clear signal
> > > > > > that
> > > > > > the register they are trying to access will not function properly.
> > > > > > 
> > > > > > We had this exact same discussion a few years ago when Linux started
> > > > > > to
> > > > > > access GIC*_ACTIVER registers. I know that Stefano was for emulating
> > > > > > them as RAZ but this had consequences on the domain side (Linux
> > > > > > sometimes need to read them). We settled on printing a warning which
> > > > > > is
> > > > > > not great but better than claiming we properly emulate the register.
> > > > > > 
> > > > > > > I agree that this feature is not widely used. In fact I can only
> > > > > > > find it implemented in Linux and U-BOOT
> > > > > > > and the issue I found in DBGDSCRINT (no access from EL0, even
> > > > > > > though we emulate REXT.UDCCdis as 0) only
> > > > > > > proves that. At the same time, it does not cost us much to add
> > > > > > > this trivial support.
> > > > > > See above. If we provide an (even basic) emulation, we need to make
> > > > > > sure
> > > > > > it is correct and doesn't have a side effect on the guest. If we
> > > > > > can't
> > > > > > guarantee that (e.g. like for set/way when a device is assigned),
> > > > > > then
> > > > > > the best course of action is to crash the domain.
> > > > > > 
> > > > > > AFAICT, the proposed emulation would be ok.
> > > > ... I will need to revise this statement. I am now against this patch.
> > > Yes, the problem was tricky from the very beginning and I somewhat agree.
> > > I prepared a POC with one solution
> > > that Ayan extended and sent to gather feedback (hence RFC). I think we
> > > should still wait for others
> > > opinion (@Stefano, @Bertrand). I think the thread contains all the
> > > necessary information
> > > to decide what to do:
> > > - do nothing* (guest crashes)
> > > - emulate DCC the same way as KVM i.e. RAZ/WI (no crash, no busy loop,
> > > guest keeps using DCC with no effect)
> > > - emulate DCC with TXfull set to 1 (no crash, runtime DCC in Linux returns
> > > -ENODEV, earlycon busy loop issue)
> > > 
> > > * I still think we should fix DBGDSCRINT but I can send a separate patch
> > > (not really related to the DCC problem)
> > 
> > Regardless if the linux hvc earlycon is fixed or not
> > 
> > @Julien , would you be ok with option 2 or 3 with a suitable warning ?
> 
> I am afraid the answer is no.
> 
> > Also will wait for Stefano's and Bertrand's opinions.
> > 
> > Crashing the guest would seem quite severe imo if there can be a better way
> > (option 2 or 3) to tell that DCC is not available.
> 
> Well in option 2, you don't tell the DCC is not available. You just lie to it
> claiming there is one but it is not behaving properly.
> 
> I agree that crashing a guest is bad, but is lying to the domain really
> better? The consequence here is not that bad and hopefully it would be fairly
> easy to find. But this is not always the case. So I definitely would place a
> half-backed emulation more severe than a guest crash.


I see where Julien is coming from, but I would go with option two:
"emulate DCC the same way as KVM". That's because I don't think we can
get away with crashing the guest in all cases. Although the issue came
up with a Linux guest, it could have been triggered by a proprietary
operating system that we cannot change, and I think Xen should support
running unmodified operating systems.

If we go with a "half-backed emulation" solution, as Julien wrote, then
it is better to be more similar to other hypervisors, that's why I chose
option two instead of option three.

But at the same time I recognize the validity of Julien's words and it
makes me wonder if we should have a KCONFIG option or command line
option to switch the Xen behavior. We could use it to gate all the
"half-backed emulation" we do for compatibility.  Something like:

config PARTIAL_EMULATION
    bool "Partial Emulation"
    ---help---
     
    Enables partial, not spec compliant, emulation of certain register
    interfaces (e.g DCC UART) for guest compatibility. If you disable
    this option, Xen will crash the guest if the guest tries to access
    interfaces not fully emulated or virtualized.

    If you enable this option, the guest might misbehave due to non-spec
    compliant emulation done by Xen.
--8323329-365692561-1701818477=:110490--


From xen-devel-bounces@lists.xenproject.org Tue Dec 05 23:25:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Dec 2023 23:25:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648687.1012660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAenP-0000Rx-R8; Tue, 05 Dec 2023 23:25:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648687.1012660; Tue, 05 Dec 2023 23:25: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 1rAenP-0000Rq-OC; Tue, 05 Dec 2023 23:25:43 +0000
Received: by outflank-mailman (input) for mailman id 648687;
 Tue, 05 Dec 2023 23:25: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=MQDs=HQ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAenN-0000Ri-N1
 for xen-devel@lists.xenproject.org; Tue, 05 Dec 2023 23:25:41 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a7553cf-93c5-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 00:25:40 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id DE3A1B81D64;
 Tue,  5 Dec 2023 23:25:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A034BC433C8;
 Tue,  5 Dec 2023 23:25:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a7553cf-93c5-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701818739;
	bh=/8UjRmebeDMvTDORrR3C6SUgdeWgmCE89/ql4seGRgc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pTp6HvG/XJC0kOIjL+lRLBVkdPuNhUsqodoIbYiiTfzW1OXo0NpOBIRR9pwscnl/v
	 gGKLcitvv8adk+GxVNvX07qUVEx9Sm8ZK99td4+frf1pzKUhM+jAkpuNe/6enEVPxT
	 6rQsE+5lTSldlUPJ+CwPEl1u+DTkLukQpGcOBTFsZ/lTLdi5UFBaKf1L49BxIsR5FI
	 mhHSw/thNlWom2PfZ5jkVS/9hbf11QNPrakC/lUw8i5WTDtGWuIfYjnPDwFDB6ydG3
	 pdlJSiM5U5sZ4yJBYlegPg5DIa30UcJY0j2dUaaUP7T1InkEltoIhFwxz0d/06quhQ
	 JmFDI4+nwkAag==
Date: Tue, 5 Dec 2023 15:25:36 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
In-Reply-To: <075bae3d-c255-4354-9917-191cce3ba1b1@amd.com>
Message-ID: <alpine.DEB.2.22.394.2312051524210.110490@ubuntu-linux-20-04-desktop>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com> <20231113222118.825758-5-stewart.hildebrand@amd.com> <ZWmkh0Xeaynh43N7@macbook> <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop> <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop> <ZW8EkQLTwEEK6fXC@macbook> <8980b420-8e6a-4dd9-ba5f-bd2eb527c2f7@amd.com> <ZW9ZYeDD7k146LsB@macbook> <075bae3d-c255-4354-9917-191cce3ba1b1@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1995270885-1701818739=:110490"

  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-1995270885-1701818739=:110490
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 5 Dec 2023, Stewart Hildebrand wrote:
> On 12/5/23 12:09, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 05, 2023 at 11:27:03AM -0500, Stewart Hildebrand wrote:
> >> On 12/5/23 06:08, Roger Pau MonnÃ© wrote:
> >>> On Mon, Dec 04, 2023 at 02:07:51PM -0800, Stefano Stabellini wrote:
> >>>> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
> >>>>> On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
> >>>>>> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> >>>>>>> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
> >>>>>>>> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
> >>>>>>>>          bus = PCI_BUS(machine_sbdf);
> >>>>>>>>          devfn = PCI_DEVFN(machine_sbdf);
> >>>>>>>>  
> >>>>>>>> +        if ( needs_vpci(d) && !has_vpci(d) )
> >>>>>>>> +        {
> >>>>>>>> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
> >>>>>>>> +                   &PCI_SBDF(seg, bus, devfn), d);
> >>>>>>>> +            ret = -EPERM;
> >>>>>>>> +            break;
> >>>>>>>
> >>>>>>> I think this is likely too restrictive going forward.  The current
> >>>>>>> approach is indeed to enable vPCI on a per-domain basis because that's
> >>>>>>> how PVH dom0 uses it, due to being unable to use ioreq servers.
> >>>>>>>
> >>>>>>> If we start to expose vPCI suport to guests the interface should be on
> >>>>>>> a per-device basis, so that vPCI could be enabled for some devices,
> >>>>>>> while others could still be handled by ioreq servers.
> >>>>>>>
> >>>>>>> We might want to add a new flag to xen_domctl_assign_device (used by
> >>>>>>> XEN_DOMCTL_assign_device) in order to signal whether the device will
> >>>>>>> use vPCI.
> >>>>>>
> >>>>>> Actually I don't think this is a good idea. I am all for flexibility but
> >>>>>> supporting multiple different configurations comes at an extra cost for
> >>>>>> both maintainers and contributors. I think we should try to reduce the
> >>>>>> amount of configurations we support rather than increasing them
> >>>>>> (especially on x86 where we have PV, PVH, HVM).
> >>>>>
> >>>>> I think it's perfectly fine to initially require a domain to have all
> >>>>> its devices either passed through using vPCI or ireqs, but the
> >>>>> interface IMO should allow for such differentiation in the future.
> >>>>> That's why I think introducing a domain wide vPCI flag might not be
> >>>>> the best option going forward.
> >>>>>
> >>>>> It would be perfectly fine for XEN_DOMCTL_assign_device to set a
> >>>>> domain wide vPCI flag, iow:
> >>>>>
> >>>>> if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
> >>>>> {
> >>>>>     if ( has_arch_pdevs(d) )
> >>>>>     {
> >>>>>         printk("All passthrough devices must use the same backend\n");
> >>>>>         return -EINVAL;
> >>>>>     }
> >>>>>
> >>>>>     /* Set vPCI domain flag */
> >>>>> }
> >>>>
> >>>> That would be fine by me, but maybe we can avoid this change too. I was
> >>>> imagining that vPCI would be enabled at domain creation, not at runtime.
> >>>> And that vPCI would be enabled by default for all PVH guests (once we
> >>>> are past the initial experimental phase.)
> >>>
> >>> Then we don't even need a new CDF flag, and just enable vPCI when
> >>> IOMMU is enabled?  IOW: we can key the enabling of vPCI to
> >>> XEN_DOMCTL_CDF_iommu for specific domain types?
> >>
> >> There are many Arm based platforms that need to use iommu but don't have (or don't use) PCI, so we'd still like to have a separate vPCI flag.
> > 
> > OK, read below though - if we switch to vPCI being a descendant of
> > IOREQ (so that the PCI config space decoding is done by IOREQ) we
> > could hotplug vPCI managed devices at runtime without requiring any
> > prior initialization at domain create, since the traps to the PCI
> > config space would be setup by IOREQ.
> > 
> > We might need a PCI flag in order to signal whether the domain is
> > intended to use PCI devices or not, and so whether IOREQ needs to
> > setup PCI config space traps (either fully emulated or passthrough
> > devices).  But that would be arch-specific AFAICT, as on x86 we
> > always trap accesses to the PCI IO ports.
> 
> On Arm, the toolstack (or dom0less creation code) needs to construct a {v,ioreq}PCI root complex node in the device tree before guest boot. Attempting to hot plug such a device tree node at runtime sounds like a goal for the (far) future. On Arm, we don't trap the {v,ioreq}PCI config space by default, so, yes, we for sure would need such a {v,ioreq}PCI flag for setting up the {v,ioreq}PCI mmio handlers if we go this route.

Yes and also dynamic configuration and hotplug are actually detrimental
in safety configurations where you need as much as possible, ideally
everything, to be specified at build time.
--8323329-1995270885-1701818739=:110490--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 00:44:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 00:44:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648691.1012670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAg13-0000in-6O; Wed, 06 Dec 2023 00:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648691.1012670; Wed, 06 Dec 2023 00: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 1rAg13-0000ig-2K; Wed, 06 Dec 2023 00:43:53 +0000
Received: by outflank-mailman (input) for mailman id 648691;
 Wed, 06 Dec 2023 00: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 1rAg12-0000iW-Jo; Wed, 06 Dec 2023 00: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 1rAg11-0003M8-TA; Wed, 06 Dec 2023 00:43: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 1rAg11-0006ah-Iv; Wed, 06 Dec 2023 00:43:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAg11-0007kz-IV; Wed, 06 Dec 2023 00: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=VP3BxikR0naUmE+bbioh2l9RJhJkVZE608acJEjtdhU=; b=B3jBy6hbG1jbLmCnQ5U6GWmFzc
	epCJivaXJuCfAVBHQyzti1oJhFnU6Tk3XGJO1mVREDcSlNlMkZjGiS3M1/DBHQjOjc1enZAR9FI5n
	4NPl5H99Ago6YYZa+BS4z6ir7Kd6yxWB6xj00TBJyTF1Tn/yUYh9qHyHDBmV4b8J/Jy8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183999-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 183999: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=ef3fde64aa78598a4c21556629936fb228390e8c
X-Osstest-Versions-That:
    ovmf=120aa6064465496c962b6664a9365a2573e54d1f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 00:43:51 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 ef3fde64aa78598a4c21556629936fb228390e8c
baseline version:
 ovmf                 120aa6064465496c962b6664a9365a2573e54d1f

Last test of basis   183991  2023-12-05 03:42:59 Z    0 days
Testing same since   183999  2023-12-05 20:44:36 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Tina Chen <tina.chen@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    
 test-amd64-i386-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
   120aa60644..ef3fde64aa  ef3fde64aa78598a4c21556629936fb228390e8c -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 01:20:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 01:20:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648697.1012680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAgam-00068y-Uq; Wed, 06 Dec 2023 01:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648697.1012680; Wed, 06 Dec 2023 01:20:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAgam-00068r-Ru; Wed, 06 Dec 2023 01:20:48 +0000
Received: by outflank-mailman (input) for mailman id 648697;
 Wed, 06 Dec 2023 01: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=nkyO=HR=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAgak-00068l-Lm
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 01:20:46 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id aca044f7-93d5-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 02:20:43 +0100 (CET)
Received: from mg.gitlab.com (65.90.74.34.bc.googleusercontent.com
 [34.74.90.65]) by
 cc512b78074d with SMTP id 656fcc679c464581d8023e35 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 06 Dec 2023 01:20:39 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: aca044f7-93d5-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701825641; x=1701832841; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=vBr5/mw3xOWxVCD9gs3TlbD29PET6xK1UwZ+wx8Pmjw=;
 b=dk0gGhj1AhfKzQh1yHx5bNBzjN9Ws+obxZ30C9TkXEl6S3/+nWtg1hD5uwPkBWqdtADJldG9fenrBe4PnkW1qGQ/1wd5SIilJjqpkJwa4ChU4kJOES0kw3fW5b3obaU4T4R61uUaLJt87f8vLajHZSU7c+gNh38Rujmcgi/H9JU=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 06 Dec 2023 01:20:39 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <656fcc672ad_2c949d0104cb@gitlab-sidekiq-catchall-v2-66fd779d5-kgnn6.mail>
Subject: xen | Successful pipeline for staging | 4c6142a1
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_656fcc66ecc74_2c949d010313";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096652606
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_656fcc66ecc74_2c949d010313
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096652606 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 4c6142a1 ( https://gitlab.com/xen-project/xen/-/commit/4c6142a1ab004be132f386da3cabce07b44fac2d )
Commit Message: CI: Fix fallout from adding elfutils-dev to the...
Commit Author: Andrew Cooper ( https://gitlab.com/andyhhp )



Pipeline #1096652606 ( https://gitlab.com/xen-project/xen/-/pipelines/1096652606 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 4c6142a1</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096652606 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/4c6142a1ab004be132=
f386da3cabce07b44fac2d" style=3D"color: #3777b0; text-decoration: none;">=
4c6142a1</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
CI: Fix fallout from adding elfutils-dev to the...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/109665=
2606" style=3D"color: #3777b0; text-decoration: none;">#1096652606</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_656fcc66ecc74_2c949d010313--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 01:26:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 01:26:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648736.1012689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAggc-0007Or-Jo; Wed, 06 Dec 2023 01:26:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648736.1012689; Wed, 06 Dec 2023 01:26: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 1rAggc-0007Ok-Gs; Wed, 06 Dec 2023 01:26:50 +0000
Received: by outflank-mailman (input) for mailman id 648736;
 Wed, 06 Dec 2023 01:26: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 1rAggb-0007OV-9O; Wed, 06 Dec 2023 01:26: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 1rAggb-0002Tz-4q; Wed, 06 Dec 2023 01:26: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 1rAgga-0007ck-OA; Wed, 06 Dec 2023 01:26:48 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAgga-0003E9-Nf; Wed, 06 Dec 2023 01:26:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=+/Dr5QOH5d2QNvlJHSU9tqGmPHDK9f7EJifTl+JKUHs=; b=Q+YkvFlfOiOPaG5/Km4osVfhmd
	MYUOHxZ9fJtOfV0wnrUNumIr+KPxOqw4Abqs7HB6o9nqZIcd81StSAbLm/J/Veerbd89e7WAKRFEE
	ws/RXR4MKhSSIrgpcXow+sbhoOeMeY2EvuC3CC+KjtpgUSj+KgOFk13uewPC6UX8kSZU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184000-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184000: 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=01da0aeecd41435cea8bd2fe0f547e0a474f6e45
X-Osstest-Versions-That:
    xen=948e03303138482bf12f67740d8ebd8272824903
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 01:26:48 +0000

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

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                  01da0aeecd41435cea8bd2fe0f547e0a474f6e45
baseline version:
 xen                  948e03303138482bf12f67740d8ebd8272824903

Last test of basis   183998  2023-12-05 20:02:06 Z    0 days
Testing same since   184000  2023-12-05 23:00:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Nicola Vetrini <nicola.vetrini@bugseng.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
   948e033031..01da0aeecd  01da0aeecd41435cea8bd2fe0f547e0a474f6e45 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 01:46:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 01:46:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648761.1012701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAgz5-0002C1-BE; Wed, 06 Dec 2023 01:45:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648761.1012701; Wed, 06 Dec 2023 01: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 1rAgz5-0002Bt-5z; Wed, 06 Dec 2023 01:45:55 +0000
Received: by outflank-mailman (input) for mailman id 648761;
 Wed, 06 Dec 2023 01:45: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 1rAgz4-00029b-0l; Wed, 06 Dec 2023 01:45: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 1rAgz3-0002nb-My; Wed, 06 Dec 2023 01:45: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 1rAgz3-00084g-5x; Wed, 06 Dec 2023 01:45:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAgz3-0007zs-40; Wed, 06 Dec 2023 01: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Bwl/npHNi+2PzcmYntkPhyszLMx8yFN+0WiSlnW9NQg=; b=lDSJAyYfRwfHQyXQ6vGwase4H5
	9Gim89xPYtmSTyR8b2AABlJncYNMBD+17oT0FbQSRU8U/ZUupVyST/3+69cRtBxj27EbiSksx0mtk
	my2VYq7g3CLSbYxFZeMyj5S947P/fUFD3/pFE9TM0OQ0hfD7VR2odqMdeNMofCna5938=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183993-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 183993: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-qemuu-debianhvm-amd64-xsm: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-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-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm: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-raw: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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=bee0e7762ad2c6025b9f5245c040fcc36ef2bde8
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 01:45:53 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-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          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-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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                bee0e7762ad2c6025b9f5245c040fcc36ef2bde8
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    3 days
Failing since        183977  2023-12-03 00:12:06 Z    3 days    7 attempts
Testing same since   183993  2023-12-05 09:00:54 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  David Howells <dhowells@redhat.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Eugenio PÃ©rez <eperezma@redhat.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Jason Wang <jasowang@redhat.com>
  Jens Axboe <axboe@kernel.dk>
  Joao Martins <joao.m.martins@oracle.com>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Robin Murphy <robin.murphy@arm.com>
  Sean Christopherson <seanjc@google.com>
  Shannon Nelson <shannon.nelson@amd.com>
  Steve French <stfrench@microsoft.com>
  Steve Sistare <steven.sistare@oracle.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 987 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 02:21:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 02:21:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648771.1012710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAhXN-0000GV-T8; Wed, 06 Dec 2023 02:21:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648771.1012710; Wed, 06 Dec 2023 02: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 1rAhXN-0000GN-QK; Wed, 06 Dec 2023 02:21:21 +0000
Received: by outflank-mailman (input) for mailman id 648771;
 Wed, 06 Dec 2023 02:21:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WeUv=HR=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rAhXL-0000GH-Mq
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 02:21:19 +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 23a22662-93de-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 03:21:18 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-50bce78f145so7750216e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 18:21:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23a22662-93de-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701829278; x=1702434078; 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=GlqQcML8q0/Ao0jUzhCotKCzB5TmYAgodSDGhlIQ88Y=;
        b=CHq0TUB62VwjEC0MoAvV65kPevgDVPZcD1l7EdoqwqCTuUvNe0UwuioL3uuROMljZU
         yigwP4OMY7wWvxfwWVkGoot1XNlGG/xlQnsjABD/OMBwkgfiTJ7kWtTBt/lVpeAPC6tX
         NfQJgkKrk6faNyLzQOmBPVp851xdhmTExCzuU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701829278; x=1702434078;
        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=GlqQcML8q0/Ao0jUzhCotKCzB5TmYAgodSDGhlIQ88Y=;
        b=XvUfW6pYKcPVEaKTehmhbAsWjpWJc9U/ljv8V3eAmr554fx/d7F+w/gxj5Y22mqF/j
         RN6flQZbxlNfdLGnxxeFlx03LHV81DaLFxxnHfqGH6VYGjT7K8jHJUhgcx7sE6nXINga
         6OZYTon3XnSVeoWblgobgxSEcUXfOVIXlSMR0wSKBCUJUqUPvL+/kB7OiLKmaDXCWil/
         9e602b7lF+L6R7CLho+AzQci4tMzy7qN8vjZa46ONoMeN4u1cM6sZcH/p9D9RjsBpDVV
         t+C+p7IomShbmuVU4gLZ4s/q/kRwz0m15jAXoaWGBLpEima4ZCx/SGIMYpgJDCO0wBoV
         KojQ==
X-Gm-Message-State: AOJu0YxLwBWVfI3edL2R3ftfFUadbkRQE7kNgvtjr1HKAFc5xHN6YSnN
	sviBc6f1vrZ8uBAasjQHdik3w60YmDHbe9p3fDjKNA==
X-Google-Smtp-Source: AGHT+IGYhJ0VsnITntKkUNX0Mbz/vRLhRN/nTaOXucIlkqBZx1kJ6eXsjRBpE5XK3Oe7MGARhPmoTMlIrZXxXGbI1L4=
X-Received: by 2002:a05:6512:710:b0:50b:eb80:e02 with SMTP id
 b16-20020a056512071000b0050beb800e02mr46968lfs.203.1701829277937; Tue, 05 Dec
 2023 18:21:17 -0800 (PST)
MIME-Version: 1.0
References: <20231205181218.74667-1-julien@xen.org>
In-Reply-To: <20231205181218.74667-1-julien@xen.org>
From: George Dunlap <george.dunlap@cloud.com>
Date: Wed, 6 Dec 2023 02:21:07 +0000
Message-ID: <CA+zSX=aUV00BwnNfFTbCE=6PuVNT=UFvE0tnMO3UhwCMh5jmHQ@mail.gmail.com>
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Julien Grall <jgrall@amazon.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 5, 2023 at 6:12=E2=80=AFPM Julien Grall <julien@xen.org> wrote:
>
> From: Julien Grall <jgrall@amazon.com>
>
> Several maintainers have expressed a stronger preference
> to use '-' when in filename and option that contains multiple
> words.
>
> So document it in CODING_STYLE.
>
> Signed-off-by: Julien Grall <jgrall@amazon.com>
>
> ---
>     Changes in v2:
>         - New wording
>         - Update the section title
>         - Add Jan's acked-by
> ---
>  CODING_STYLE | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/CODING_STYLE b/CODING_STYLE
> index ced3ade5a6fb..ed13ee2b664b 100644
> --- a/CODING_STYLE
> +++ b/CODING_STYLE
> @@ -144,6 +144,15 @@ separate lines and each line should begin with a lea=
ding '*'.
>   * Note beginning and end markers on separate lines and leading '*'.
>   */
>
> +Naming convention for files and command line options
> +----------------------------------------------------
> +
> +'-' should be used to separate words in commandline options and filename=
s.
> +E.g. timer-works.
> +
> +Note that some of the options and filenames are using '_'. This is now
> +deprecated.

Sorry for not catching this last time; "are using X" isn't really
idiomatic English; more idiomatic would be something like the
following:

"Note that some existing options and file names use '_'.  This is now
deprecated."

Since we're changing things, I *think* most style guides would advise
against starting the sentence with a punctuation; so perhaps:

"Command-line options and file names should use '-' to separate words;
e.g., timer-works."

And what about adding to the last paragraph:

"When touching code around command-line parameters still using '_', it
is recommended to modify the documentation to say only '-', but modify
the code to accept both '-' and '_' (for backwards compatibility)."

I was going to say I'm happy to change on check-in, but I think with
three changes it's probably worth waiting for a fuller discussion.

 -George


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 02:33:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 02:33:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648774.1012720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAhih-0002Va-TZ; Wed, 06 Dec 2023 02:33:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648774.1012720; Wed, 06 Dec 2023 02:33:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAhih-0002VT-Pt; Wed, 06 Dec 2023 02:33:03 +0000
Received: by outflank-mailman (input) for mailman id 648774;
 Wed, 06 Dec 2023 02:33: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=WeUv=HR=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rAhih-0002VN-7n
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 02:33:03 +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 c6c15835-93df-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 03:33:02 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2c9f9db9567so39535161fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 18:33:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6c15835-93df-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701829981; x=1702434781; 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=6yFY/CoJsVvO4dWfO2zYeWYx277175jFjqd7A9WCGV8=;
        b=E9evVqeBScQBZGJ1MCExxXRJFE4ghc58yrDHJkbqqkA/Sck+vhVJE920A+uV2/9Sbe
         DXl4ZSqgf3x8ecVPu+w+3yc63RBLT+EzYQ6q+iv+nFh2NiybTM1hO50i9ylTscYe87Az
         IPE/LUUYgLxhNVg/AlFYsQeY2TerFfs5flDBk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701829981; x=1702434781;
        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=6yFY/CoJsVvO4dWfO2zYeWYx277175jFjqd7A9WCGV8=;
        b=SBaa9IMIxE96fjV4/6tCXquJu+0eLddWkh9Y4ozeT6pTqS0fMvu1Tg1TXkKYVk4tdB
         hyFVG+CTiALXhQSUsInz/KZp1+gK2aOPsCKtJUWHj6lYqWL8/klusUsjOHDAT3OTaPM0
         3LSuNFvcTU1ucqME5s892aun2IImaTmACh2O6OnenK3vIiqBl4/76OYqpM2TdXRcGdBj
         V8yHF6oFK7C5YMKBrpyI8qxLvPp8DUDN7IaDoT4N1kwf/rm06utGIE6tw1QDtsJG6WuL
         JUluMHg3ZZ7oSUkv1QN3T6sIue26T+mXcBENPKVVGKN2v1tcwTenVeHCVWemVYkyHYX+
         z3bQ==
X-Gm-Message-State: AOJu0YyShWR6+aVgpvzOyulTqMf9LL2I7+fq3bX2XuhXp9alngCQInmu
	eDqh03mXLfNBr2IRl2Q1qiOXk5btlI9Y/UAFiAhchQ==
X-Google-Smtp-Source: AGHT+IEuUo2nM/7UVm4wMVD2vx+tnhajh2TVehjejHF6mKHY/vaY3O/UCovXRZXRKvWUwW1TmQBMKs4VuTsSk8JZh6Y=
X-Received: by 2002:a2e:9f46:0:b0:2c9:ffe8:4c55 with SMTP id
 v6-20020a2e9f46000000b002c9ffe84c55mr114121ljk.24.1701829981238; Tue, 05 Dec
 2023 18:33:01 -0800 (PST)
MIME-Version: 1.0
References: <1B83FF45-E93B-47D7-AD21-615CFCFD0816@arm.com> <2E778E49-C2F5-421F-9598-CED15E7D4284@arm.com>
 <827e24a2-0ecd-48c4-becb-12129c4208dc@suse.com>
In-Reply-To: <827e24a2-0ecd-48c4-becb-12129c4208dc@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Wed, 6 Dec 2023 02:32:50 +0000
Message-ID: <CA+zSX=b77av9rHwWHsRD8MAnprfXQiotUPPPKFDOU9cTOA2OzA@mail.gmail.com>
Subject: Re: Clang-format configuration discussion - pt 2
To: Jan Beulich <jbeulich@suse.com>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <Michal.Orzel@amd.com>, Wei Liu <wl@xen.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 5, 2023 at 2:07=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 05.12.2023 14:46, Luca Fancellu wrote:
> > In my opinion, I don=E2=80=99t know of any tool that can address all th=
e flexibility the Xen codestyle allows, yet the use of automatic
> > checkers would improve the review time, allow more new contributors to =
approach the community without being put down by
> > the amount of code-style comments,
>
> Since this argument is being repeated: I find it odd. No-one needs to eve=
n
> fear any amount of style comments if they simply follow the written down
> policy plus a tiny bit of common sense. According to my observation, (som=
e)
> newcomers don't even care to look at what is being said about our style.
> It's not like you and I haven't been through this. When I started working
> with GNU toolchain, I had to adopt to their style. When I later started t=
o
> work with Linux, I had to also adopt there. And then for Xen. And all of
> that already past closed source projects I had been working on before.

Most modern languages, including golang (and I think rust) have
built-in style correctors (`go fmt` is go's official one).  If you
haven't worked with an automatic style checker / fixer, you don't know
how much time, hassle, and emotional energy you're saving.  I don't
think I know anyone who, after using one, wants to go back to not
using one any more.

In general, I'm in favor of making changes to our style such that we
can make clang's style checker official.  The only reason I would vote
against it is if one of the style requirements was really intolerable;
but I find that pretty unlikely.

And as I've said before, the main reservation I have going forward
with this discussion is that I can't see clearly what it is that I'm
agreeing to.

 -George


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 02:34:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 02:34:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648776.1012730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAhkP-00032f-7n; Wed, 06 Dec 2023 02:34:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648776.1012730; Wed, 06 Dec 2023 02:34:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAhkP-00032Y-5D; Wed, 06 Dec 2023 02:34:49 +0000
Received: by outflank-mailman (input) for mailman id 648776;
 Wed, 06 Dec 2023 02:34:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AMAt=HR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAhkN-00032Q-RD
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 02:34:47 +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 043785d0-93e0-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 03:34:46 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 7B883CE114D;
 Wed,  6 Dec 2023 02:34:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74A9FC433C7;
 Wed,  6 Dec 2023 02:34:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 043785d0-93e0-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701830079;
	bh=gKip2WOPPSDpHnDkWwSUh1dK9OXCb4ajgzoFq5mAdOY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pv1WtZKK2STWBtHJlSBEmuu6aWl0zeJ9nPioSu563cI4Aynql2R49wW0GiDCl0xhg
	 HVULD2Cm8KyP1YZu+CING6txHSf5L2Xj3vXW+fPVSDuVmADpJrwrCVJuCBR5SJeKyO
	 UP58DlD6c+iTT71k/mcjH/zxgQoZyaiEzDOPsPAlbBEnS1HkHmXN5fj78FpBA7LLmV
	 fR17ckAFyWtWuGfgVjP/2AhEgK5v/I2mSuL9QKfIonxQld9r6TcEY+B7oWGC1Onmm6
	 MvbzNjYw6ANsXgIubJp1LKQKXPqxkhZb8ESBtViecHWJEbZg0vy+khVOTcTauQh9t2
	 FMeIiP8YtuKMQ==
Date: Tue, 5 Dec 2023 18:34:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
In-Reply-To: <ZW8EkQLTwEEK6fXC@macbook>
Message-ID: <alpine.DEB.2.22.394.2312051529500.110490@ubuntu-linux-20-04-desktop>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com> <20231113222118.825758-5-stewart.hildebrand@amd.com> <ZWmkh0Xeaynh43N7@macbook> <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop> <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop> <ZW8EkQLTwEEK6fXC@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1512514997-1701819442=:110490"
Content-ID: <alpine.DEB.2.22.394.2312051537410.110490@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-1512514997-1701819442=:110490
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312051537411.110490@ubuntu-linux-20-04-desktop>

On Tue, 5 Dec 2023, Roger Pau MonnÃ© wrote:
> > > > I don't think we should enable IOREQ servers to handle PCI passthrough
> > > > for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
> > > > Passthrough can be handled by vPCI just fine. I think this should be a
> > > > good anti-feature to have (a goal to explicitly not add this feature) to
> > > > reduce complexity. Unless you see a specific usecase to add support for
> > > > it?
> > > 
> > > There are passthrough devices (GPUs) that might require some extra
> > > mediation on dom0 (like the Intel GVT-g thing) that would force the
> > > usage of ioreqs to passthrough.
> > 
> > From an architectural perspective, I think it would be cleaner, simpler
> > to maintain, and simpler to understand if Xen was the sole owner of the
> > PCI Root Complex and PCI config space mediation (implemented with vPCI).
> > IOREQ can be used for emulation and it works very well for that. At
> > least in my mind, that makes things much simpler.
> 
> But IOREQ already has all the code to mediate accesses to the PCI
> config space, and the interface to register separate servers for
> different PCI devices.
> 
> We would then need to duplicate this internally for vPCI, so that vPCI
> could forward accesses to IOREQ just for IOREQ to forward to yet a
> different component?  Seems like a lot of duplication for no benefit.

[...] 
 
> Also, you seem to confabulate IOREQ with QEMU, while the latter is
> indeed an user of IOREQ, I do see IOREQ as a simple resource mediator
> inside of Xen, that has the ability to forward such accesses to
> external emulators using an hypercall interface.

We have been using different terminologies until now. IOREQ could mean
anything from the ABI interface, the emulator side (QEMU) or the
hypervisor side (Xen). I am going to align with your wording and say:

IOREQ: only the IOREQ implementation in Xen (xen/common/ioreq.c)
IOREQ server: QEMU or alternative

I think it is OK if we use IOREQ internally within Xen to hook vPCI with
PCI config space accesses and emulation. I don't think it is a good idea
to attempt to enable IOREQ servers (e.g. QEMU) to implement PCI
Passthrough when vPCI is also enabled for the domain, at least
initially.


> > I understand there are non-trivial cases, like virtual GPUs with
> > hardware access, but I don't classify those as passthrough. That's
> > because there isn't one device that gets fully assigned to the guest.
> > Instead, there is an emulated device (hence IOREQ) with certain MMIO
> > regions and interrupts that end up being directly mapped from real
> > hardware.
> > 
> > So I think it is natural in those cases to use IOREQ and it is also
> > natural to have QEMU remap MMIO/IRQs at runtime. From a vPCI
> > perspective, I hope it will mostly look as if the device is assigned to
> > Dom0. Even if it ends up being more complex than that, Rome wasn't
> > built in one day, and I don't think we should try to solve this problem
> > on day1 (as long as the interfaces are not stable interfaces).
> 
> I don't see IOREQ as dealing explicitly with emulation.  Yes, it does
> allow for emulators to be implemented in user-space, but at the end
> it's just an interface that allows forwarding accesses to certain
> resources (for the case we are speaking about here, PCI config space)
> to entities that registered as handlers.
> 
> vPCI OTOH just deals with a very specific resource (PCI config space)
> and only allows internal handlers to be registered on a byte
> granularity.
> 
> So your proposal would be to implement a hierarchy like the one on the
> diagram below:
> 
>     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
>     â””â”€â”€â”€â”€â”€â”€â”€â”¬â”˜ â””â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>             â”‚   â”‚               â”‚
>             â”‚   â”‚           â”Œâ”€â”€â”€â”´â”€â”€â”
>             â”‚   â”‚           â”‚ vPCI â”‚
>             â”‚   â”‚           â””â”€â”¬â”€â”€â”¬â”€â”˜
>          â”Œâ”€â”€â”´â”€â”€â”€â”´â”            â”‚  â”‚
>          â”‚ IOREQ â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜  â”‚
>          â””â”€â”€â”€â”€â”¬â”€â”€â”˜               â”‚
>               â”‚                  â”‚
>  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”              â”Œâ”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>  â”‚ IOREQ servers â”‚              â”‚ vPCI handlers â”‚
>  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜              â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜

Yes


> While what I'm proposing would look like:
> 
>     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
>     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>          â”‚          â”‚                â”‚
>          â””â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”´â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>                â”‚  IOREQ  â”‚
>                â””â”€â”¬â”€â”€â”€â”€â”€â”¬â”€â”˜
>                  â”‚     â”‚
>  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”
>  â”‚ IOREQ servers â”‚          â”‚ vPCI â”‚
>  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜          â””â”€â”€â”€â”¬â”€â”€â”˜
>                                 â”‚
>                             â”Œâ”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>                             â”‚ vPCI handlers â”‚
>                             â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜

I don't have a major problem with this, but I find it less clear than
the first one.

Let's say that all domains are PVH (or ARM guests). QEMU is running in
Dom0. If QEMU does emulation, that's fine. If QEMU implements PCI
Passthrough then QEMU uses libpci to do PCI config space reads and
write, which go to the Linux kernel in Dom0, which ends up doing PCI
config space reads and writes on the device, and that goes via vPCI in
Xen (vPCI for Dom0). So actually vPCI is still present. It is a lot
simpler to think that vPCI is in charge of all mediated PCI config space
accesses rather than thinking that for the same device vPCI handles PCI
config space accesses for Dom0 but not for DomU.

It is not my preference but I am OK to compromise and go ahead with the
architecture you proposed but please let's keep IOREQ servers out of the
PCI Passthrough picture at least initially.


> I'm obviously biased, but I think the latter is cleaner, and allows
> all resources to be arbitrated by the same component (IOREQ).
> 
> If the concern is about the IOREQ hypercall interface, it would be
> fine to introduce an option that limit IOREQs to internal users
> (vPCI) without supporting external IOREQ servers.
> 
> Think of IOREQ as a resource mediator inside of Xen, that just does
> the PCI address decoding and forwards the access to the interested
> party, either an external IOREQ server or vPCI.

The part about IOREQ (xen/common/ioreq.c) being a resource mediator is
OKish.

I had many discussions over the years with various members of the larger
open source embedded community (Linaro, etc.) and the problem is that
when one says "IOREQ" typically people think of QEMU or other userspace
emulators. They don't think of the Xen side of it. This becomes very
relevant here because Xen is the only part of the system that is
getting safety-certified and it is important to convey the message that
nothing else in required to be safety-certified to have a fully working
Xen system that supports PCI Passthrough.

In short, it is important that the community doesn't get the idea that
QEMU needs to be safety-certified to have PCI Passthrough working
correctly with Xen in a safety scenario.

 
> > > It's important that the interfaces we introduce are correct IMO,
> > > because that ends up reflecting on the configuration options that we
> > > expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
> > > XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
> > > gets placed there will ultimately influence how the option gets
> > > exposed in xl/libxl, and the interface there is relevant to keep
> > > stable for end user sanity.
> > 
> > I agree with you on the stable interfaces. The important part is not to
> > introduce changes to stable interfaces that could limit us in the
> > future. Specifically that includes xl and libxl, we need to be careful
> > there. But I don't see a single per-domain vPCI enable/disable option as
> > a problem. Let's say that in the future we have a mediated vGPU
> > implementation: if it works together with vPCI then the per-domain vPCI
> > option in libxl will be enabled (either explicitely or by default), if
> > it doesn't then vPCI will be disabled (either explicitely or by the
> > newer vGPU options.)
> 
> If vPCI is hooked into IOREQ there won't be a need anymore to register
> the vPCI config space traps, as that would be done by IOREQ, and hence
> vPCI managed devices could be registered at runtime with IOREQ.  IOW:
> there won't be a need anymore to signal at domain creation whether
> vPCI is intended to be used or not.

For safety, we have requirements to specify everything statically before
boot so typically anything dynamic is a problem.


> We would obviously need to enable IOREQ for all domains with IOMMU
> enabled, as it would be IOREQ that register the PCI config space
> handlers.

This bit might be OK


> > For *unstable* interfaces (XEN_DOMCTL_assign_device) I would rather wait
> > before adding more changes on top of them, not because I don't care
> > about the mediated GPU problem (we do have something similar at AMD),
> > but because I worry that if we try to change them now we might not do a
> > good enough job. I would prefer to wait until we know more about the
> > actual use case, ideally with code supporting it.
> > 
> > I think the difference in points of views comes from the fact that I see
> > vPCI as the default, QEMU only as a limited peripheral emulator (or
> > mediator for the vGPU case) but not in control. vPCI and QEMU are not
> > equal in my view. vPCI is in charge and always present if not in very
> > uncommon setups (even if we decide to hook it inside Xen by using
> > internal IOREQ interfaces). QEMU might come and go.
> 
> Xen needs a single component that mediates accesses to resources,
> whether that's IOREQ, or something else I don't really care that much.
> Having vPCI mediate accesses to the PCI config space, and IOREQ to the
> memory (and on x86 IO port) space just seems awfully complicated for
> AFAICT no real benefit.
>
> > Now that I am writing this, I realize this is also why I wasn't too
> > happy with the idea of hooking vPCI using IOREQ. It makes them look as
> > if they are the same, while I don't they should be considered at the
> > same level of priority, criticality, safety, integration in the system,
> > etc.
> 
> I feel there are some fears with IOREQ from a safety PoV?  The code
> that does the resource multiplexing is small, and as said above if
> there are safety concerns with the hypercall interface it would be
> fine to limit it's usage to internal handlers only.

Yes it is about safety. Everything within Xen will be safety-certified,
hence usable in a safety critical scenario, everything outside of Xen
might not.

The fear is not on the IOREQ itself because xen/common/ioreq.c is part
of the certification scope. The fear is that IOREQ servers (e.g. QEMU)
are somehow in the picture when we discuss safety architectures with PCI
Passthrough, or that IOREQ servers could interfere with vPCI. By
"interfere" I mean that QEMU running in dom0 (a deprivileged dom0) will
be able to cause a malfunction in Xen vPCI.

Yes, limiting the hypercall interface would help in that regard because
it would limit Xen exposure.
--8323329-1512514997-1701819442=:110490--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 02:42:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 02:42:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648783.1012740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAhri-0005Jc-52; Wed, 06 Dec 2023 02:42:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648783.1012740; Wed, 06 Dec 2023 02: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 1rAhri-0005JV-2H; Wed, 06 Dec 2023 02:42:22 +0000
Received: by outflank-mailman (input) for mailman id 648783;
 Wed, 06 Dec 2023 02: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=AMAt=HR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAhrg-0005JP-Du
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 02:42:20 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 124fe83b-93e1-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 03:42:18 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id A311CB81D6E;
 Wed,  6 Dec 2023 02:42:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9958AC433C7;
 Wed,  6 Dec 2023 02:42: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: 124fe83b-93e1-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701830537;
	bh=AY1yRi7JSfZ4uP3aeY2SY1FsTdaB9hD411mR9a8chQo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fiGaUP+YqlAK0s0pmu79DBsF1zleHfU92JVK3N4aEk/bIJ0vpYdwiS5RGwX+XxaWi
	 R7RlROHIbyPOA4/E/bVTRgSn8/Z6B7kY4giG2REKMmbwGE2atqXYhyASKXh4vsUrO0
	 fQ+a3d7MLwRRGC+8UaTtA4H06qQ6Nh9W8jtKVpHjk2rp3uHbwvcQLtRM0JXOnVbOBo
	 io+U8lBNJr2kbEBag5sHM8Twi8wIEkzxdMYUndeWJJvIBLfdJQaZMsJsjyAoqzEJiY
	 VQAoHNPgfmKAvrOwBPig68MXqiSAJLXQmrnwDrzvfHq9O3/pH1KDDy3iLSrBdhkewu
	 WwDZedswTSnsg==
Date: Tue, 5 Dec 2023 18:42:14 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <Luca.Fancellu@arm.com>
cc: "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>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Michal Orzel <Michal.Orzel@amd.com>, 
    George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: SAF-* comment at the end of the line
In-Reply-To: <27B32A01-F4D9-4A92-BA16-F43D0AF4F29E@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312051840070.110490@ubuntu-linux-20-04-desktop>
References: <27B32A01-F4D9-4A92-BA16-F43D0AF4F29E@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1871647676-1701830537=:110490"

  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-1871647676-1701830537=:110490
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 5 Dec 2023, Luca Fancellu wrote:
> Hi all,
> 
> Iâ€™m writing this mail to collect thoughts about the need to improve the SAF-* comments.
> 
> I think we reached a point where we need to use deviations for some violation that we want
> to keep in the code with a proper justification and an issue was raised when the comment
> cannot be put on a line on its own.
> 
> e.g.
> 
> If ( condition-1 &&
>      condition-2 &&
>       [...] )
> {
>     ...
> }
> 
> For example in the code above, if the violation is in the second condition, breaking the conditions
> to have an empty line between them for the SAF-* comment is not ideal, so we could maybe
> improve the in-code comment to be used at the end of the line:
> 
> e.g.
> 
> If ( condition-1 &&
>      condition-2 && /* SAF-*-safe [...] */
>       [...] )
> {
>     ...
> }
> 
> This might require also a deviation on the coding style to allow the comment to overcome the line length.
> 
> Bertrand, from his experience with safety certifications, feels that adding this feature could be enough
> to cover the majority of the cases where we need to deviate a violation in the code.
> 
> Using it consistently in the code base as the only way to deviate a violation can also help the adoption
> of the project to people who might want to fix them instead of deviating them, the only thing they would need
> to do is to grep for SAF-* to have a rough idea of how many justified violation are in the code.
> 
> Please let me know your thoughts before I start to implement the feature.

I think we need this feature and in fact we have already been adding it
in an ad-hoc way with /* octal-ok */

It would like to remove octal-ok and use a generic way (SAF) to do the
same.
--8323329-1871647676-1701830537=:110490--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 03:02:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 03:02:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648790.1012753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiBP-0000xF-OY; Wed, 06 Dec 2023 03:02:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648790.1012753; Wed, 06 Dec 2023 03:02:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiBP-0000x8-LM; Wed, 06 Dec 2023 03:02:43 +0000
Received: by outflank-mailman (input) for mailman id 648790;
 Wed, 06 Dec 2023 03:02:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AMAt=HR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAiBO-0000x2-1d
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 03:02:42 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea7c9c66-93e3-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 04:02:39 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 268EFB818D3;
 Wed,  6 Dec 2023 03:02:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14CD0C433C7;
 Wed,  6 Dec 2023 03:02:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea7c9c66-93e3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701831758;
	bh=ntTXqts67fmIhOymiZHUwupfVzExsdvRdWNYbyqGwYw=;
	h=Date:From:To:cc:Subject:From;
	b=T7/dDbrwqCFaneV0rUrvqT5HENfaBv83cxvctdeWRM1lbp6cZ26zjNDGB61BrtjaL
	 zcLjakJ7Emu8vTzClqVt+a0Oa5anBisqSUUqlrYNBeEmWv3G2BpChNoCmDmEqKshFg
	 4K7xRVaBVlRUFqKZBrpiFyFVgWaE/+uNtwP8RLXWj+I5aipRfjcDlgR43rlF6NITSN
	 a1k3QHNO0QGllmOOqeSOJ7tULGGZjKINOGJBnbnqBy4XIXdrVNWxoAt8pmpI4bMILM
	 2pHeUXFyYv+OXtgdqXAOfl7aWfSscIHU9zKhPfmFjrNEMlq/hBxZSFRMxdq3uEk5Cp
	 JytOTc5TXJZyg==
Date: Tue, 5 Dec 2023 19:02:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: andrew.cooper3@citrix.com, jbeulich@suse.com, george.dunlap@citrix.com, 
    julien@xen.org, sstabellini@kernel.org, bertrannd.marquis@arm.com, 
    roger.pau@citrix.com, roberto.bagnara@bugseng.com, 
    federico.serafini@bugseng.com
Subject: [PATCH] docs/misra/rules.rst: add more rules 
Message-ID: <alpine.DEB.2.22.394.2312051859440.110490@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 the rules accepted in the last three MISRA C working group meetings.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 75921b9a34..ab89116a43 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -462,11 +462,23 @@ maintainers if you want to suggest a change.
 
        while(0) and while(1) and alike are allowed.
 
+   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
+     - Required
+     - An unconditional break statement shall terminate every
+       switch-clause
+     - In addition to break, also other flow control statements such as
+       continue, return, goto are allowed.
+
    * - `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c>`_
      - Required
      - A switch-expression shall not have essentially Boolean type
      -
 
+   * - `Rule 17.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
+     - Required
+     - The features of <stdarg.h> shall not be used
+     -
+
    * - `Rule 17.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_03.c>`_
      - Mandatory
      - A function shall not be declared implicitly
@@ -478,12 +490,24 @@ maintainers if you want to suggest a change.
        have an explicit return statement with an expression
      -
 
+   * - `Rule 17.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_05.c>`_
+     - Advisory
+     - The function argument corresponding to a parameter declared to
+       have an array type shall have an appropriate number of elements
+     -
+
    * - `Rule 17.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_06.c>`_
      - Mandatory
      - The declaration of an array parameter shall not contain the
        static keyword between the [ ]
      -
 
+   * - `Rule 17.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_07.c>`_
+     - Required
+     - The value returned by a function having non-void return type
+       shall be used
+     -
+
    * - `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
@@ -498,6 +522,11 @@ maintainers if you want to suggest a change.
        instances where Eclair is unable to verify that the code is valid
        in regard to Rule 19.1. Caution reports are not violations.
 
+   * - `Rule 20.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_04.c>`_
+     - Required
+     - A macro shall not be defined with the same name as a keyword
+     -
+
    * - `Rule 20.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_07.c>`_
      - Required
      - Expressions resulting from the expansion of macro parameters
@@ -506,6 +535,13 @@ maintainers if you want to suggest a change.
        as function arguments, as macro arguments, array indices, lhs in
        assignments
 
+   * - `Rule 20.9 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_09.c>`_
+     - Required
+     - All identifiers used in the controlling expression of #if or
+       #elif preprocessing directives shall be #define'd before
+       evaluation
+     -
+
    * - `Rule 20.13 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_13.c>`_
      - Required
      - A line whose first token is # shall be a valid preprocessing


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 03:05:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 03:05:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648792.1012763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiDz-0001Vl-67; Wed, 06 Dec 2023 03:05:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648792.1012763; Wed, 06 Dec 2023 03:05:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiDz-0001Ve-2z; Wed, 06 Dec 2023 03:05:23 +0000
Received: by outflank-mailman (input) for mailman id 648792;
 Wed, 06 Dec 2023 03:05:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FImm=HR=g.ecc.u-tokyo.ac.jp=ishiir@srs-se1.protection.inumbo.net>)
 id 1rAiDw-0001VY-MT
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 03:05: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 486d996b-93e4-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 04:05:17 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a1caddd6d28so44233166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 19:05:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 486d996b-93e4-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=g.ecc.u-tokyo.ac.jp; s=google; t=1701831917; x=1702436717; 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=X07fOaWKw3xAxq1f99neEt6IChxoiyAQmT/9p12Js0Y=;
        b=T8CPxSDfSUQZ/oDl5RdZHfw/mBqcA5CTB9ZCxMNLbosPtbSCGg0nf48Q5m4v6ZcWzq
         oQAWc237ixTvERjH0ltEK7PYb0DYWGNTFTcPyYbGo9/UvtukVyFNdX8KyS4SF8lzgjsV
         TbH/PADQoDWVNAC/JwfeSK+PwvGJBabNNMuhgvFvds1wyyeL8IlNdspzvgojQAy4yYE8
         1jRHPBxI9JANvq1GIWadsL47q90cO5x7csLk1ONJXsnTtFP5OGc1dCPe4CWucagAKkMB
         MimSaSlVlCKZleCfHaZBbkRAPTqkYCM4Cyx+8KAB/ZWB8wBnhrceE4Hn0Cl3U7JSrmBW
         hXPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701831917; x=1702436717;
        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=X07fOaWKw3xAxq1f99neEt6IChxoiyAQmT/9p12Js0Y=;
        b=iVKy7E9//kzccpB9NGJQ4ME478TFFk+yFGmAxQ/ZCkNp51j1Ig+K874P012A6cUBr3
         8R50sjaYadoL+KZ2fS4tbCaChp+3HVPb5XBcEHGDf5GLMeUYl1ck+tF7po09k+uqohaP
         RIwsOyzIg7Gep10PMogNzqPYy1PSDY1otsGftlXGCsGg1W7j735CAHBukoTzT5fKtxFu
         OZpKwrpOq7R3MFCULRNFQtYqIUADWtJEW9c6jPq1ST0xPYkyOLhmSW1JHe/IWEXYNJ9E
         WoMo0X7f74wqaBOly70Z+tzPLtTro71akcAyc7SqySMuXIYizFBDCYlhtTDm/sXFweko
         m7HQ==
X-Gm-Message-State: AOJu0YwKkppMkOrhjAifmcUX1Xt/IrSPpJhVIk0y/bkZmBYH0HTuqhex
	dOLnDMoiCJfnaJQoKdabsSt9/6efvLqXVsQzSOhyrg==
X-Google-Smtp-Source: AGHT+IFkkidHsNxrwE1JT03Lyu536DQ3ysnaHUkiumcaIB+fbiXIHOagNAJDYCShGU+eeSq7BP1CJaPFbKB0lCj29aY=
X-Received: by 2002:a17:906:338c:b0:a1c:7a18:b506 with SMTP id
 v12-20020a170906338c00b00a1c7a18b506mr91585eja.121.1701831916818; Tue, 05 Dec
 2023 19:05:16 -0800 (PST)
MIME-Version: 1.0
References: <CA+aCS-Ha4jSYFfxhOwMGiGJPdCOtgBJLt=3Q=v9dfp6SQJys4w@mail.gmail.com>
 <1415ddc9-81f3-4d50-b735-7e44a7f656d5@citrix.com>
In-Reply-To: <1415ddc9-81f3-4d50-b735-7e44a7f656d5@citrix.com>
From: Reima ISHII <ishiir@g.ecc.u-tokyo.ac.jp>
Date: Wed, 6 Dec 2023 12:05:05 +0900
Message-ID: <CA+aCS-H2wkiVOMvCS7cCPojduXdStMYzHn7SxintNyg0vS_Bhg@mail.gmail.com>
Subject: Re: [BUG] Nested Virtualization Bug on x86-64 AMD CPU
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, 
	Takahiro Shinagawa <shina@ecc.u-tokyo.ac.jp>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Thank you for your prompt response.

On Tue, Dec 5, 2023 at 11:43=E2=80=AFPM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
> Who is still in 64-bit mode ?
>
> It is legal for a 64-bit L1 to VMRUN into a 32-bit L2 with PG=3D0.
>
> But I'm guessing that you mean L2 is also 64-bit, and we're clearing PG,
> thus creating an illegal state (LMA=3D1 && PG=3D0) in VMCB12.
>
> And yes, in that case (virtual) VMRUN at L1 ought to fail with
> VMEXIT_INVALID.

Yes, you are correct in your understanding. This issue is triggered by
VMRUN execution to 64-bit L2 guests, when CR0.PG is cleared in VMCB12.
Contrary to the expected behavior where a VMRUN at L1 should fail with
VMEXIT_INVALID, the VMRUN does not fail but instead, the system
encounters a BUG().

> As an incidental observation, that function is particularly absurd and
> the two switches should be merged.
>
> VMExit reason 0x402 is AVIC_NOACCEL and Xen has no support for AVIC in
> the slightest right now.  i.e. Xen shouldn't have AVIC active in the
> VMCB, and should never any AVIC related VMExits.
>
> It is possible that we've got memory corruption, and have accidentally
> activated AVIC in the VMCB.

The idea of potential memory corruption activating AVIC in the VMCB is
certainly an interesting perspective. While I'm not sure how exactly
such memory corruption could occur, the suggestion does provide a
compelling explanation for the VMExit reason 0x402 (AVIC_NOACCEL),
particularly considering Xen's current lack of AVIC support.

> But, is this by any chance all running nested under KVM in your fuzzer?

No, KVM was not used. The issue was observed on a Xen hypervisor's
domU HVM running directly on the hardware. Within the guest HVM, a
simple custom hypervisor was utilized.

--=20
Graduate School of Information Science and Technology, The University of To=
kyo
Reima Ishii
ishiir@g.ecc.u-tokyo.ac.jp


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 03:08:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 03:08:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648794.1012772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiGS-0002Do-IN; Wed, 06 Dec 2023 03:07:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648794.1012772; Wed, 06 Dec 2023 03:07:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiGS-0002Dh-Fi; Wed, 06 Dec 2023 03:07:56 +0000
Received: by outflank-mailman (input) for mailman id 648794;
 Wed, 06 Dec 2023 03: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=AMAt=HR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAiGR-0002DZ-VB
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 03:07:55 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a66079d1-93e4-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 04:07:54 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 4FCD1B81AAA;
 Wed,  6 Dec 2023 03:07:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5B40C433C8;
 Wed,  6 Dec 2023 03:07: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: a66079d1-93e4-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701832073;
	bh=7rOV011KRsIFY26FUYf83zHV/hj2wPCFeAxuLwswz0s=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=EKkwQtBk90qR37NivEOcczIUDQNRx5hSZ9SuREJtK4Fzfrg6ov35Gtyr+pcaPh3a7
	 Bx3Ca4qnxvQ3mmK58tNnTRbh20baRpRv1CaHzOAaylQ9HyqkgTATdW1GI/iOeIHO5A
	 5pZRDCYoeNwYgGdnh/fcBUEeu0x7x/myvIsd3IMscgWmXxiF+HDkP8VALx1df2xeT6
	 KfCM73novYEB2fr7AfkUo9AQ87AIkaPNigt3ve5gmvibLwMNAgtEHptyU5aRYD1kjP
	 yys7HPCvg4WDdcusU2n/x/ZB8ikk/Dn0nAW5u5PvA18qIB99ua0xGEi2mKEGi9smnv
	 cxrWnQPw/zH3Q==
Date: Tue, 5 Dec 2023 19:07:51 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 1/6] xen/acpi: address remaining violations of MISRA
 C:2012 Rule 8.2
In-Reply-To: <6c0fa7c13641c53800c323285275fd58d9989326.1701764980.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312051905050.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701764980.git.federico.serafini@bugseng.com> <6c0fa7c13641c53800c323285275fd58d9989326.1701764980.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 Tue, 5 Dec 2023, Federico Serafini wrote:
> Add missing parameter names to address violations of MISRA C:2012
> Rule 8.2. Furthermore, use C standard types to comply with XEN coding style.
> 
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>  xen/arch/x86/include/asm/acpi.h           |  2 +-
>  xen/include/acpi/apei.h                   |  5 +++--
>  xen/include/acpi/cpufreq/cpufreq.h        |  2 +-
>  xen/include/acpi/cpufreq/processor_perf.h | 16 ++++++++--------
>  4 files changed, 13 insertions(+), 12 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/acpi.h b/xen/arch/x86/include/asm/acpi.h
> index 0df92d3714..d54c105f61 100644
> --- a/xen/arch/x86/include/asm/acpi.h
> +++ b/xen/arch/x86/include/asm/acpi.h
> @@ -81,7 +81,7 @@ extern bool acpi_lapic, acpi_ioapic, acpi_noirq;
>  extern bool acpi_force, acpi_ht, acpi_disabled;
>  extern u32 acpi_smi_cmd;
>  extern u8 acpi_enable_value, acpi_disable_value;
> -void acpi_pic_sci_set_trigger(unsigned int, u16);
> +void acpi_pic_sci_set_trigger(unsigned int irq, uint16_t trigger);

There is something strange about this one, I cannot find the definition
anywhere. Am I missing anything?

Everything else looks good



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 03:10:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 03:10:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648797.1012782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiIj-0003dd-UF; Wed, 06 Dec 2023 03:10:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648797.1012782; Wed, 06 Dec 2023 03:10:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiIj-0003dW-RT; Wed, 06 Dec 2023 03:10:17 +0000
Received: by outflank-mailman (input) for mailman id 648797;
 Wed, 06 Dec 2023 03:10:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AMAt=HR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAiIj-0003dP-4L
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 03:10:17 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa07e7bb-93e4-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 04:10:16 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D1E04608C0;
 Wed,  6 Dec 2023 03:10:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 95B3BC433C7;
 Wed,  6 Dec 2023 03:10:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa07e7bb-93e4-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701832214;
	bh=y29qUYa5AmFDM3XI0hWka6TCb/np57otshggx7s5hK4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=mEclSlE0mZ+zqL+kKNr0Yb11vzQyxS0lVC/BBXTrd071+3fvKrznCcQoNsFOBKiEC
	 jStgIamIBWrAzlM10tPFmu7WiiMEHeA3nAKfFfzMGrv+ElKzFOjawk8E0noUvmDxn8
	 UW9OsWbS67sq1+KRRqadVldGmVNOpStwXHyB/c+3/010lybODvLWFakYHZAi0VvVOn
	 gRYZUKKdo5ttbgJdjesytrxXsFLW6Hjna6RwWEJE0OftvKLO+jribTtgTRLW/XoqYL
	 waNmVyfh7P+jdh5hRJ8u+wnA8rHQqN6gcsO2xLakwmqcY6o7a1P79EiF7nmHr2Hnbj
	 EI3/jQX11d73Q==
Date: Tue, 5 Dec 2023 19:10:12 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 2/6] x86/mm: address violations of MISRA C:2012 Rule
 8.2
In-Reply-To: <461a97a14a530286a8b8d0d30a1a8ed63690bc26.1701764980.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312051908470.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701764980.git.federico.serafini@bugseng.com> <461a97a14a530286a8b8d0d30a1a8ed63690bc26.1701764980.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 Tue, 5 Dec 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>  xen/arch/x86/include/asm/mm.h | 20 ++++++++++----------
>  1 file changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
> index 05dfe35502..a270f8ddd6 100644
> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -406,7 +406,7 @@ void put_page_type(struct page_info *page);
>  int  get_page_type(struct page_info *page, unsigned long type);
>  int  put_page_type_preemptible(struct page_info *page);
>  int  get_page_type_preemptible(struct page_info *page, unsigned long type);
> -int  put_old_guest_table(struct vcpu *);
> +int  put_old_guest_table(struct vcpu *v);
>  int  get_page_from_l1e(
>      l1_pgentry_t l1e, struct domain *l1e_owner, struct domain *pg_owner);
>  void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner);
> @@ -557,7 +557,7 @@ void audit_domains(void);
>  
>  void make_cr3(struct vcpu *v, mfn_t mfn);
>  pagetable_t update_cr3(struct vcpu *v);
> -int vcpu_destroy_pagetables(struct vcpu *);
> +int vcpu_destroy_pagetables(struct vcpu *v);
>  void *do_page_walk(struct vcpu *v, unsigned long addr);
>  
>  /* Allocator functions for Xen pagetables. */
> @@ -572,20 +572,20 @@ int __sync_local_execstate(void);
>  /* Arch-specific portion of memory_op hypercall. */
>  long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
>  long subarch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
> -int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void));
> -int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
> +int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
> +int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);

Also for compat_subarch_memory_op I cannot find the definition

everything else looks fine



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 03:16:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 03:16:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648805.1012792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiOF-0005CM-IH; Wed, 06 Dec 2023 03:15:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648805.1012792; Wed, 06 Dec 2023 03:15:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiOF-0005CF-FF; Wed, 06 Dec 2023 03:15:59 +0000
Received: by outflank-mailman (input) for mailman id 648805;
 Wed, 06 Dec 2023 03:15: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=AMAt=HR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAiOE-0005Ap-0A
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 03:15:58 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c5017d11-93e5-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 04:15:55 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 5B314B81D8A;
 Wed,  6 Dec 2023 03:15:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0BDB6C433C7;
 Wed,  6 Dec 2023 03:15:53 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5017d11-93e5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701832554;
	bh=uvWU04pRqiplwKbwHTnhwZ2FK1FCR67Y/FppL/AJPAc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=IPyZHYQ3hkds4zVvhCzU7pNVUBorBIp2Y9ZQGg2FjkA8iG4/QjcMCH1tV2LWYtYpb
	 GrPBJUhxFgisPv9ae/iuZ+/IDXx5OI5cDGfFRPcZTrLUyS3bCzsNpgSGKf7DxMBp4p
	 PeEvwnN6eLPx1TNw8SY5f7Ju39YP2gcXvypvq+yx5y+lbrlr8SZdUhub38n3vnynuj
	 +f6GpAPCNL9zIIUf9T0EAkm0VWYHknMnDF0lMx6CcCsBNLDwfupN8xd75tAbkBWT8w
	 SSd4beGmBU0aXJI89NDYVDTanrCiCElbPE0xK90w6P5roEXjC+QiDT0i1sxVXubwPm
	 NQ62NoFLLBLkQ==
Date: Tue, 5 Dec 2023 19:15:52 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [XEN PATCH 3/6] AMD/IOMMU: address violations of MISRA C:2012
 Rule 8.2
In-Reply-To: <c529cb0d8eba253436c5bba22f8bceddeaaf5831.1701764980.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312051913190.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701764980.git.federico.serafini@bugseng.com> <c529cb0d8eba253436c5bba22f8bceddeaaf5831.1701764980.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 Tue, 5 Dec 2023, Federico Serafini wrote:
> Add missing parameter names to address violations of MISRA C:2012
> Rule 8.2. Furthermore, remove trailing spaces and use C standard types to
> comply with XEN coding style.
> 
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>  xen/drivers/passthrough/amd/iommu.h      | 17 ++++++++++-------
>  xen/drivers/passthrough/amd/iommu_init.c | 24 ++++++++++++++----------
>  2 files changed, 24 insertions(+), 17 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
> index d4416ebc43..1b62c083ba 100644
> --- a/xen/drivers/passthrough/amd/iommu.h
> +++ b/xen/drivers/passthrough/amd/iommu.h
> @@ -138,10 +138,12 @@ struct ivrs_mappings {
>  extern unsigned int ivrs_bdf_entries;
>  extern u8 ivhd_type;
>  
> -struct ivrs_mappings *get_ivrs_mappings(u16 seg);
> -int iterate_ivrs_mappings(int (*)(u16 seg, struct ivrs_mappings *));
> -int iterate_ivrs_entries(int (*)(const struct amd_iommu *,
> -                                 struct ivrs_mappings *, uint16_t));
> +struct ivrs_mappings *get_ivrs_mappings(uint16_t seg);
> +int iterate_ivrs_mappings(int (*handler)(uint16_t seg,
> +                                         struct ivrs_mappings *map));
> +int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *iommu,
> +                                        struct ivrs_mappings *map,
> +                                        uint16_t bdf));
>  
>  /* iommu tables in guest space */
>  struct mmio_reg {
> @@ -226,7 +228,7 @@ struct acpi_ivrs_hardware;
>  /* amd-iommu-detect functions */
>  int amd_iommu_get_ivrs_dev_entries(void);
>  int amd_iommu_get_supported_ivhd_type(void);
> -int amd_iommu_detect_one_acpi(const struct acpi_ivrs_hardware *);
> +int amd_iommu_detect_one_acpi(const struct acpi_ivrs_hardware *ivhd_block);
>  int amd_iommu_detect_acpi(void);
>  void get_iommu_features(struct amd_iommu *iommu);
>  
> @@ -295,9 +297,10 @@ struct amd_iommu *find_iommu_for_device(int seg, int bdf);
>  bool cf_check iov_supports_xt(void);
>  int amd_iommu_setup_ioapic_remapping(void);
>  void *amd_iommu_alloc_intremap_table(
> -    const struct amd_iommu *, unsigned long **, unsigned int nr);
> +    const struct amd_iommu *iommu, unsigned long **inuse_map, unsigned int nr);
>  int cf_check amd_iommu_free_intremap_table(
> -    const struct amd_iommu *, struct ivrs_mappings *, uint16_t);
> +    const struct amd_iommu *iommu, struct ivrs_mappings *ivrs_mapping,
> +    uint16_t bdf);
>  unsigned int amd_iommu_intremap_table_order(
>      const void *irt, const struct amd_iommu *iommu);
>  void cf_check amd_iommu_ioapic_update_ire(
> diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
> index 5515cb70fd..62f9bfdfc8 100644
> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -300,12 +300,13 @@ static void cf_check set_iommu_ppr_log_control(
>  static int iommu_read_log(struct amd_iommu *iommu,
>                            struct ring_buffer *log,
>                            unsigned int entry_size,
> -                          void (*parse_func)(struct amd_iommu *, u32 *))
> +                          void (*parse_func)(struct amd_iommu *iommu,
> +                                             uint32_t *entry))
>  {
>      unsigned int tail, tail_offest, head_offset;
>  
>      BUG_ON(!iommu || ((log != &iommu->event_log) && (log != &iommu->ppr_log)));
> -    
> +
>      spin_lock(&log->lock);
>  
>      /* make sure there's an entry in the log */
> @@ -361,14 +362,15 @@ static int iommu_read_log(struct amd_iommu *iommu,
>  
>   out:
>      spin_unlock(&log->lock);
> -   
> +
>      return 0;
>  }
>  
>  /* reset event log or ppr log when overflow */
>  static void iommu_reset_log(struct amd_iommu *iommu,
>                              struct ring_buffer *log,
> -                            void (*ctrl_func)(struct amd_iommu *iommu, bool))
> +                            void (*ctrl_func)(struct amd_iommu *iommu,
> +                                              bool iommu_control))

instead of iommu_control it should be iommu_enable ?


>  {
>      unsigned int entry, run_bit, loop_count = 1000;
>      bool log_run;
> @@ -1158,14 +1160,15 @@ static void __init amd_iommu_init_cleanup(void)
>      iommuv2_enabled = 0;
>  }
>  
> -struct ivrs_mappings *get_ivrs_mappings(u16 seg)
> +struct ivrs_mappings *get_ivrs_mappings(uint16_t seg)
>  {
>      return radix_tree_lookup(&ivrs_maps, seg);
>  }
>  
> -int iterate_ivrs_mappings(int (*handler)(u16 seg, struct ivrs_mappings *))
> +int iterate_ivrs_mappings(int (*handler)(uint16_t seg,
> +                                         struct ivrs_mappings *map))

Instead of map it should be ivrs_mappings ? Actually it reads better as
map and I know it is not a MISRA requirement to have function pointer
args match. I'll leave this one to Jan.




>  {
> -    u16 seg = 0;
> +    uint16_t seg = 0;
>      int rc = 0;
>  
>      do {
> @@ -1180,10 +1183,11 @@ int iterate_ivrs_mappings(int (*handler)(u16 seg, struct ivrs_mappings *))
>      return rc;
>  }
>  
> -int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *,
> -                                        struct ivrs_mappings *, uint16_t bdf))
> +int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *iommu,
> +                                        struct ivrs_mappings *map,

same here ivrs_mappings instead of map, but actually map reads better

I checked everything else and looks OK


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 03:17:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 03:17:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648809.1012802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiPF-00069k-Um; Wed, 06 Dec 2023 03:17:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648809.1012802; Wed, 06 Dec 2023 03: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 1rAiPF-00069d-SB; Wed, 06 Dec 2023 03:17:01 +0000
Received: by outflank-mailman (input) for mailman id 648809;
 Wed, 06 Dec 2023 03:17:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AMAt=HR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAiPE-00067y-Lg
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 03:17:00 +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 e9453d87-93e5-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 04:16:58 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3C89061A5C;
 Wed,  6 Dec 2023 03:16:56 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0F160C433C8;
 Wed,  6 Dec 2023 03:16:54 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9453d87-93e5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701832615;
	bh=UBPiP2u0feUSwrmJEUtM35X+9VqcLXNJYxUsYd8kHz0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Q7KVWSgaMiw7BhZlzdP3msfyN4+PdBGYOkA2Zn+2PbNeoBf0H3ym2Hh1UMygXBxmU
	 ERMdzDPdACtJXVnYUxoyi1Isd0SaIJc47dUhWNUSqCb+xGx1kfA5UrCaY4WXqk7kRH
	 7C2hTxvpZLWE8zi7ZLfBUE0vhSwSGABVPM9fcws+PDroBLerx3lCAiKDTyfjMzFo/F
	 MjdzUqDRL4HsbHW5NwAy9ycPLcmGuZmOjDkEuoeoUgCnDldGaxRSOSBnDM2w1mUgGo
	 xb6S96ANojiN0Zjq0y4z8zDfVzIwXXEn3GvyihBhEzj6KTzxiLl5WKh9fi01CJaDIg
	 EzUCTa6iUzkXA==
Date: Tue, 5 Dec 2023 19:16:53 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 4/6] x86/page: address violations of MISRA C:2012
 Rule 8.2
In-Reply-To: <626f8040804d8f7dbdcde57725ac4eab895f295c.1701764980.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312051916470.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701764980.git.federico.serafini@bugseng.com> <626f8040804d8f7dbdcde57725ac4eab895f295c.1701764980.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 Tue, 5 Dec 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 03:18:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 03:18:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648812.1012812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiR6-0007Dl-8V; Wed, 06 Dec 2023 03:18:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648812.1012812; Wed, 06 Dec 2023 03: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 1rAiR6-0007De-60; Wed, 06 Dec 2023 03:18:56 +0000
Received: by outflank-mailman (input) for mailman id 648812;
 Wed, 06 Dec 2023 03:18: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=AMAt=HR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAiR4-0007DY-KB
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 03:18:54 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e7df044-93e6-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 04:18:52 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 79C68B81D8D;
 Wed,  6 Dec 2023 03:18:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A23A9C433C7;
 Wed,  6 Dec 2023 03:18: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: 2e7df044-93e6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701832731;
	bh=UBPiP2u0feUSwrmJEUtM35X+9VqcLXNJYxUsYd8kHz0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=NazJzDBCCxP4P3pQz6rnBMoZH1VGWTwZ3o8JRtJwiSfpEw6SWkEuTftiWaLJAibai
	 Q5zXIrgrjtn1K/HKSDbwF0OcN5DNb1bjGO2ErKQqnFeDQzm5GN7Xt/v7mKe/pOSv/U
	 ypSSb81RGHifD8aMOJ4S1KygRVFUCmvHTK/RpN7irk/eH+Xo1xWPDo8qW3ttOvZzQT
	 zgHT/pkml2sVwnaXK5O1WG78+Nvs06iqqBh5ZBr9/U7D1P/KBPoBBBWrtMDhcdB3SG
	 xfbE80Xw8mVveKhyXGn+qohKNpmYxh1HFECanSvp4dOSn4HNHvMpJIbtyS3KlVtdw0
	 Wokc/himINAXg==
Date: Tue, 5 Dec 2023 19:18:49 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 5/6] x86/mce: address violations of MISRA C:2012 Rule
 8.2
In-Reply-To: <16a4587adaac7b116026c0df4addd254d4a33715.1701764980.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312051918430.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701764980.git.federico.serafini@bugseng.com> <16a4587adaac7b116026c0df4addd254d4a33715.1701764980.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 Tue, 5 Dec 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 03:20:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 03:20:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648815.1012823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiSG-0000Hl-IQ; Wed, 06 Dec 2023 03:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648815.1012823; Wed, 06 Dec 2023 03:20:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAiSG-0000HQ-F6; Wed, 06 Dec 2023 03:20:08 +0000
Received: by outflank-mailman (input) for mailman id 648815;
 Wed, 06 Dec 2023 03:20:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AMAt=HR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rAiSF-0000HD-4t
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 03:20:07 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a16d4c5-93e6-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 04:20:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 96AE2B81D12;
 Wed,  6 Dec 2023 03:20:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BEEBC433C7;
 Wed,  6 Dec 2023 03:20: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: 5a16d4c5-93e6-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701832805;
	bh=FXYY164mllVjQqqAuvBD21NnwB3w7xE6E4IfS87ntQI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=DI4dEnbQ0k/tWU8u9QmERY04LhLDJCL/RMzZcL+yBEoxxCbdHgnlyaKibLnSH4eMW
	 ykYu1Y8osw/P+GNu2986rdxjHCIAemcg0B2qnkJpnp/L7+Wa1yPrZH9P34mXIK7YQ8
	 xCOlG9IHrHhaBdpjn12BHMaKOb1tHfAWg6xCALQXBe6VxNba7SvSPbP3FwXW9S/I2n
	 W41VLgZ2Prfl/HbBsh4f1J26ebAj8aB6vEBOWVu7GxH7AX7vF/YPudnR7p8EtzGrRa
	 7MpaESX41V10Xx2HyM86q/xQgHon24D9bswwRUzSZ3JfFy7llFKuwBI/OFA+Tq9y/V
	 IEAtPHiS+xo1w==
Date: Tue, 5 Dec 2023 19:20:02 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Paul Durrant <paul@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    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: [XEN PATCH 6/6] xen/pci: address violations of MISRA C:2012 Rule
 8.2
In-Reply-To: <f84479a28a7f9d6e44829259229460dcf7c497c4.1701764980.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312051919560.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701764980.git.federico.serafini@bugseng.com> <f84479a28a7f9d6e44829259229460dcf7c497c4.1701764980.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 Tue, 5 Dec 2023, Federico Serafini wrote:
> Add missing parameter names to address violations of MISRA C:2012
> Rule 8.2. Furthermore, use C standard types to comply with XEN coding style.
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 05:09:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 05:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648823.1012833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAkAJ-0005o5-L2; Wed, 06 Dec 2023 05:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648823.1012833; Wed, 06 Dec 2023 05:09:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAkAJ-0005ny-IG; Wed, 06 Dec 2023 05:09:43 +0000
Received: by outflank-mailman (input) for mailman id 648823;
 Wed, 06 Dec 2023 05:09: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=nkyO=HR=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAkAI-0005nZ-N4
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 05:09:42 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id a88a3e40-93f5-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 06:09:40 +0100 (CET)
Received: from mg.gitlab.com (31.226.74.34.bc.googleusercontent.com
 [34.74.226.31]) by
 f3cb218564aa with SMTP id 65700212156c2f10391620b8 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 06 Dec 2023 05:09:38 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: a88a3e40-93f5-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701839378; x=1701846578; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=QH7TTRsWBfGkH5XALT5Ef4pd879Ue2m1NeU/xhi/g7A=;
 b=VDcBmbYnVa7z2AsAGK/3svxhekLlDZQQLYFuSAAhs9iy5KSww/k9P0Mzx1/Tkc+cf2YhSmAnMiAXQk6MPMeoEEi9iuq16UEY4lOvNbPKKWt12N7otxGJN69A8CseX4fUKu1nuV4cG0TLSAPju4ZK3/eG8seJgaje5tKtSeEViZ8=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 06 Dec 2023 05:09:38 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65700212743fc_2c949d0985ea@gitlab-sidekiq-catchall-v2-67b749899c-nw59h.mail>
Subject: xen | Failed pipeline for staging | 3e5672d6
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_657002126d0ec_2c949d098477";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1096802796
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_657002126d0ec_2c949d098477
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1096802796 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 3e5672d6 ( https://gitlab.com/xen-project/xen/-/commit/3e5672d69fe09e240195fa6744686b59db6d7d69 )
Commit Message: automation/eclair: tag function calls to addres...
Commit Author: Simone Ballarin
Committed by: Stefano Stabellini


Pipeline #1096802796 ( https://gitlab.com/xen-project/xen/-/pipelines/1096802796 ) triggered by Ganis ( https://gitlab.com/ganis )
had 2 failed jobs.

Job #5689442552 ( https://gitlab.com/xen-project/xen/-/jobs/5689442552/raw )

Stage: test
Name: xilinx-smoke-dom0less-arm64-gcc
Job #5689442554 ( https://gitlab.com/xen-project/xen/-/jobs/5689442554/raw )

Stage: test
Name: xilinx-smoke-dom0less-arm64-gcc-gem-passthrough

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 3e5672d6</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1096802796 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/3e5672d69fe09e2401=
95fa6744686b59db6d7d69" style=3D"color: #3777b0; text-decoration: none;">=

3e5672d6
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
automation/eclair: tag function calls to addres...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/e49ba7c313b09f038df1da23726d36ff?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Simone Ballarin
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/50b82a64e2a9f930cabefa3948871101?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Stefano Stabellini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1096802796">#1096802796</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 2 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5689442552" style=3D=
"color: #3777b0; text-decoration: none;">
xilinx-smoke-dom0less-arm64-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5689442554" style=3D=
"color: #3777b0; text-decoration: none;">
xilinx-smoke-dom0less-arm64-gcc-gem-passthrough
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_657002126d0ec_2c949d098477--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 05:55:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 05:55:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648864.1012843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAksC-0004vW-3Z; Wed, 06 Dec 2023 05:55:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648864.1012843; Wed, 06 Dec 2023 05:55: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 1rAksC-0004vP-01; Wed, 06 Dec 2023 05:55:04 +0000
Received: by outflank-mailman (input) for mailman id 648864;
 Wed, 06 Dec 2023 05:55: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=sruh=HR=bombadil.srs.infradead.org=BATV+2d31c4bdfe93494595b7+7409+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rAks9-0004vB-5M
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 05:55:03 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb395137-93fb-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 06:54:58 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rAkrP-0098Oa-0t; Wed, 06 Dec 2023 05: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: fb395137-93fb-11ee-9b0f-b553b5be7939
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=Epg/iXYkY+1k3eZKM14iUxoA+UE8xascWdRNU509WEI=; b=AH1r7Or5zoUct39UOS7X8uhjM/
	ZiUNF74wEtopkSsYjRN4ZiT+Q5RDAfrGjr2SdG2lYRso2gu9KpXtKwk60gz8irSWJAAQdmmFCaTEL
	SzY/rogxAQvA7E28MbalnxTm3ENVynpcioekCUIHWOMylS+mP3+gVaUE9mTXoi268lvfIjLdzx8gy
	KJ4Ze8tYIRqVan/Kdng7awTtiEGY+yfEO2mGuyBJruCAYOU4SPpu5BrZ55s3w5ET/sudLHNfZi9Fm
	RGHdjWS7by3ADPe4JZlkDzpRcg6HmO7sizVltW2W1zG8KT62VV/j/an1o/4xPCND1GnBbvrQyIKqD
	pYwXk3tQ==;
Date: Tue, 5 Dec 2023 21:54:15 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org,
	chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
	agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
	willy@infradead.org, akpm@linux-foundation.org, hare@suse.de,
	p.raghav@samsung.com, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH -next RFC 00/14] block: don't access bd_inode directly
 from other modules
Message-ID: <ZXAMh02h4FAwt2FY@infradead.org>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

On Tue, Dec 05, 2023 at 08:37:14PM +0800, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@huawei.com>
> 
> Patch 1 add some bdev apis, then follow up patches will use these apis
> to avoid access bd_inode directly, and hopefully the field bd_inode can
> be removed eventually(after figure out a way for fs/buffer.c).

What tree is this against?  It fails to apply to either Jens'
for-6.8/block or Linus tree in the very first patch.



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 05:55:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 05:55:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648867.1012852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAkst-0005QI-BM; Wed, 06 Dec 2023 05:55:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648867.1012852; Wed, 06 Dec 2023 05:55:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAkst-0005Q9-8u; Wed, 06 Dec 2023 05:55:47 +0000
Received: by outflank-mailman (input) for mailman id 648867;
 Wed, 06 Dec 2023 05:55:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sruh=HR=bombadil.srs.infradead.org=BATV+2d31c4bdfe93494595b7+7409+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rAkss-0005Ob-2b
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 05:55:46 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17624826-93fc-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 06:55:44 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rAksK-0098VN-1r; Wed, 06 Dec 2023 05:55:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17624826-93fc-11ee-98e5-6d05b1d4d9a1
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=xcibP2/q8bOqf4fxy/s4jPIW/mCxqp75SLAGVg7i4NU=; b=b3J5XsDs0PyA92hRCgS7oXZdR9
	ifDdarPmUYCMrG98S736dZG8kM1x/gQQQMc5wbP6LBstLaiBbMkgjdmm3ZBz1/VZYMYl2CKgSrOqA
	6sv2Lx0erfBewjEuwGujlJGlwetZ28Sn5fFPkgpl7w9ObSzuwh0lFLzpJv0wptOrDoURjTJADLCwA
	y9AxQ2Xb02C1t9sqLtDibhZsQhjvZhTJUa5jTZPHO/j47wPs5TAzpE67yotaXPyN/SzYNI4wSM+4B
	R9yJgisFwpCMYV8xJB8jj/Ab+L1VErOFhZIjCSHrQBRU44+YzUnRp28je/BG611oRLdUIqfreibNC
	VVVWoI6Q==;
Date: Tue, 5 Dec 2023 21:55:12 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org,
	chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
	agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
	willy@infradead.org, akpm@linux-foundation.org, hare@suse.de,
	p.raghav@samsung.com, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH -next RFC 02/14] xen/blkback: use bdev api in
 xen_update_blkif_status()
Message-ID: <ZXAMwBD8pd48qwX/@infradead.org>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-3-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205123728.1866699-3-yukuai1@huaweicloud.com>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

On Tue, Dec 05, 2023 at 08:37:16PM +0800, Yu Kuai wrote:
> diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c
> index e34219ea2b05..e645afa4af57 100644
> --- a/drivers/block/xen-blkback/xenbus.c
> +++ b/drivers/block/xen-blkback/xenbus.c
> @@ -104,8 +104,7 @@ static void xen_update_blkif_status(struct xen_blkif *blkif)
>  		xenbus_dev_error(blkif->be->dev, err, "block flush");
>  		return;
>  	}
> -	invalidate_inode_pages2(
> -			blkif->vbd.bdev_handle->bdev->bd_inode->i_mapping);
> +	invalidate_bdev(blkif->vbd.bdev_handle->bdev);

blkbak is a bdev exported.   I don't think it should ever call
invalidate_inode_pages2, through a wrapper or not.



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 06:06:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 06:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648872.1012863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAl3Y-0007e2-AC; Wed, 06 Dec 2023 06:06:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648872.1012863; Wed, 06 Dec 2023 06:06:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAl3Y-0007dv-7B; Wed, 06 Dec 2023 06:06:48 +0000
Received: by outflank-mailman (input) for mailman id 648872;
 Wed, 06 Dec 2023 06:06:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8sBq=HR=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAl3W-0007dp-PF
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 06:06:46 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f289fd7-93fd-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 07:06:43 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SlRk42wg1z4f3kKG
 for <xen-devel@lists.xenproject.org>; Wed,  6 Dec 2023 14:06:36 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 76D301A0820
 for <xen-devel@lists.xenproject.org>; Wed,  6 Dec 2023 14:06:37 +0800 (CST)
Received: from [10.174.176.73] (unknown [10.174.176.73])
 by APP1 (Coremail) with SMTP id cCh0CgBXWhBpD3BlSn2ACw--.13338S3;
 Wed, 06 Dec 2023 14:06:36 +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: 9f289fd7-93fd-11ee-9b0f-b553b5be7939
Subject: Re: [PATCH -next RFC 00/14] block: don't access bd_inode directly
 from other modules
To: Christoph Hellwig <hch@infradead.org>, Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
 kent.overstreet@gmail.com, joern@lazybastard.org, miquel.raynal@bootlin.com,
 richard@nod.at, vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
 hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
 jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
 josef@toxicpanda.com, dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org,
 chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
 agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
 willy@infradead.org, akpm@linux-foundation.org, hare@suse.de,
 p.raghav@samsung.com, linux-block@vger.kernel.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
 linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
 linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
 linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
 gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org, yi.zhang@huawei.com,
 yangerkun@huawei.com, "yukuai (C)" <yukuai3@huawei.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <ZXAMh02h4FAwt2FY@infradead.org>
From: Yu Kuai <yukuai1@huaweicloud.com>
Message-ID: <4b11a311-c121-1f44-0ccf-a3966a396994@huaweicloud.com>
Date: Wed, 6 Dec 2023 14:06:33 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <ZXAMh02h4FAwt2FY@infradead.org>
Content-Type: text/plain; charset=gbk; format=flowed
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgBXWhBpD3BlSn2ACw--.13338S3
X-Coremail-Antispam: 1UD129KBjvdXoW7GrW3AFy7uF4rXry3Ary8uFg_yoWxuFc_XF
	ZYkrW0yw4rJFy0ka1UKF15A3yxCa40gan5ZrW8JFyxXF1rtFs5Ja9rWry5Z3srJrW0krZ7
	tF92gay7Cr4qvjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUba8FF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w
	A2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j
	6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcVAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kI
	c2xKxwCYjI0SjxkI62AI1cAE67vIY487MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4
	AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE
	17CEb7AF67AKxVWrXVW8Jr1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCw
	CI42IY6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6rW3Jr0E
	3s1lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcS
	sGvfC2KfnxnUUI43ZEXa7VUbJ73DUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

Hi,

ÔÚ 2023/12/06 13:54, Christoph Hellwig Ð´µÀ:
> On Tue, Dec 05, 2023 at 08:37:14PM +0800, Yu Kuai wrote:
>> From: Yu Kuai <yukuai3@huawei.com>
>>
>> Patch 1 add some bdev apis, then follow up patches will use these apis
>> to avoid access bd_inode directly, and hopefully the field bd_inode can
>> be removed eventually(after figure out a way for fs/buffer.c).
> 
> What tree is this against?  It fails to apply to either Jens'
> for-6.8/block or Linus tree in the very first patch.

It was against linux-next branch, for the tag next-20231201, because I'm
not sure yet if this patchset should be applied to Jans' tree. Please
let me know if I should swith wo Jens' tree for v2.

Thanks,
Kuai
> 
> .
> 



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 06:07:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 06:07:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648875.1012873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAl4L-00089M-K4; Wed, 06 Dec 2023 06:07:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648875.1012873; Wed, 06 Dec 2023 06:07: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 1rAl4L-00089F-Gg; Wed, 06 Dec 2023 06:07:37 +0000
Received: by outflank-mailman (input) for mailman id 648875;
 Wed, 06 Dec 2023 06:07:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rTNE=HR=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rAl4K-00087X-Lr
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 06:07:37 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060f.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be9a8379-93fd-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 07:07:34 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CH2PR12MB4215.namprd12.prod.outlook.com (2603:10b6:610:ab::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Wed, 6 Dec
 2023 06:07:27 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.034; Wed, 6 Dec 2023
 06:07: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: be9a8379-93fd-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=S2UBo5tKXu9wcRzrk9HkBp0pYbjPgrLGiIwA8M2SMEG4TQNDV8KUNNbRvf1dYnWW3ynBqV2lMn93VGfuBTSu/1U3vEry5PoUs/8h8dUyhnq/DyGRTQEWWU24y/F0SR0ELQuSonCXS331oEA4XM4PyjZiaL+S4QMMGDLEjVC+RJ7GUDMlS3k7/KTgtkllHZipzKnpa/38Zmj/U5znZzWGAlqzmCA+KjtPBoPXKrjNjIWRXFBi2mgMBUWmH/CyyLYrOmmf7b05DBdaSJLsehSxmKnwlUCpq+oZwFwIQJVwti0qxvEiavINdzigvHXxkfMjMxAAIozcREHU4ze77/dCqA==
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=FnoYH7D9tvote4R5dUtnLaHBosHFyjw77cxWJRyXd/E=;
 b=ePa9aU8/a3LkcvxClQoO1ks/SwUO8fkyk+xLTfDMEjNDN3tc+P3iWPH5WYOJbN+yW+nYWOfwCKPKf8/8Grluo5nIJoam/kje9YWt4l2qDZirVwN0t23wh2qm5PUMMdD2kQy48NwiVlK/rqWZYc2D1zFK8irA7NRypqvGZB9iVqDxdz1Xd8Lk4pD4CHubbEJZ9YqqvlsYDJFhPSAXAMoLeehMuvoLSLEAwa4+fmhKI0H3HSEOeYJkF200ALaTO9mjw+v6w/ArTZR2KONtoYweUAgdyBbv/bEEeoOioOYjymPre0+dyf0LJiAxTwkobRLYgl6V3TXRKGSJjLMPbDNO0w==
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=FnoYH7D9tvote4R5dUtnLaHBosHFyjw77cxWJRyXd/E=;
 b=Uw6BmCgX4Ke0DgWLT0WV4Z5Z0O/0McIkTGWftWEu4JeuKYyU/tFZI+0tpQfzPajtkp0Ui7XEDNXOg3nY096q8IgSOTvXS9wCmo465TRLhqjdVNillASd3jSGZeKATqIFztvVoZGBsn+atToewUNkmZDPDYvavnpAWTn0ERBW1lw=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
CC: "Chen, Jiqian" <Jiqian.Chen@amd.com>, Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Thomas Gleixner
	<tglx@linutronix.de>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, "Rafael J
 . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>, Bjorn Helgaas
	<bhelgaas@google.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "linux-acpi@vger.kernel.org"
	<linux-acpi@vger.kernel.org>, "Stabellini, Stefano"
	<stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Topic: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Index:
 AQHaHsGdlNZnjmvNCkucW725DqxYz7CSRC+AgADLdgCAALwOgIAAX9AAgAE42ICAA5dDgIAAxsiAgAC4TACAABRoAIABzBGA
Date: Wed, 6 Dec 2023 06:07:26 +0000
Message-ID:
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
In-Reply-To: <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA0PR12MB8351.namprd12.prod.outlook.com
 (15.20.7091.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_|CH2PR12MB4215:EE_
x-ms-office365-filtering-correlation-id: 30a46884-ec33-4560-7ccd-08dbf6219f3c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 Pa3z+fm+2VqZtd+a/I672hQupan65sBiNAw52EB+GA6fy4KztQVbdoRxi9fvIJTOvQf2w8cIllZiAniShzWykJ4Erq8m9yEk16Rfg8ZgGSsMBBTMkakJH+ELEgz8DsPO3UbaNokwKs2wraHUwFalEOY7fgPw5nqnLW0Ngc9jmBeDSbjSO1hsMH0h0wfYOzcTUhaZpmb2KY6dc6Ae++vFlai0y0tS2jAmPoWwCvVHU5NdB2FLS4fTMOg6VRUJl53AMW0F7GyEIeOjsFsUGJwL9T1WbYDzljxiwaLGU1OwpcBAgGAiVkrfaAgnJ2Njzl8r2VZjiKBOB0oIjIcN0/p6RNw6ILdlQaGiRPUpqqQM30LCbw9itWDMj7QU7s6+f/CHP+L3blPT+VSRq0beBV2CXWo3ygD7n5IKSpQW0xWyAIib5ksCiMIv1t1kxebrP32e2Z2dpkurSwU30QUi+BwkjQANvNxANWor0oa5yJe8Uu79O4MWlikwPXULm1cyFHt9/nvXaXeCmUt6UIVLoM7z8f+/zq2HNb/NL2nAtKe5r15RbN4EzzqY8KVCBtvw7+kgf97eELZoC0RxBbubrKYSZUuUUdwj1MAQO8uaAN+9rkEkNkiJV3IKLeBaM7/RCPmB78FfJy9AIvi4y+imUsVvkRm3P/o9mdIoJDkOzpo9Hq0=
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:(13230031)(396003)(366004)(136003)(39860400002)(346002)(376002)(230922051799003)(230173577357003)(230273577357003)(64100799003)(451199024)(1800799012)(186009)(2906002)(52536014)(5660300002)(7416002)(30864003)(38070700009)(33656002)(41300700001)(7696005)(6506007)(478600001)(9686003)(71200400001)(53546011)(55016003)(38100700002)(122000001)(83380400001)(26005)(76116006)(8676002)(4326008)(8936002)(66946007)(64756008)(66476007)(66556008)(66446008)(54906003)(110136005)(316002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?M0lNRXR5NFVyc2hpckVTSjVPZjJzUm0zQ3hkTVFZMElXS1gybVhDMmJGcVpN?=
 =?utf-8?B?QzAxSGJhWUNhNHVJVkZ1K3lKSTQySmhhd0dPVDlXNkhNVFNUenJNU1Urbm94?=
 =?utf-8?B?R3FLbEhNK1RMOS9Qb0JUeFloYmZMZ2Vsb0psMGxUZ1k0cVErM0dsUmtKTnli?=
 =?utf-8?B?RGF1cHV6dFdMR0Rjd3hTMGdCeW1iZXU4ZGNjUldhQWZiaUVrNlVjb1RJN1VK?=
 =?utf-8?B?VnJ6RXRkazc3NnEyaWRQQitjMXE2L0w1ZkRpaUpPczVuc0Y0RkhlaFVMQnkr?=
 =?utf-8?B?VXNaUWpZNjVzYmNtSnBWWEw0Z083SGh2TDZvd1BRRGZJSjdSdXo2Z0s4U1JU?=
 =?utf-8?B?RDY1MCtxRHNySW45aEVGUzV5Z2J6c3FpNTZPNDAvQkt1alFPbUxuRG9xT3Vl?=
 =?utf-8?B?WHhvNHpPLzJhM0ZxZmxGV1U2RnErc21RWnUvS0lTdEw4bE5sUG1zOXRkei9a?=
 =?utf-8?B?b21hd3Z5dWM4a00wYTkyZ0pSN2NWdjh5bkttWXNWNTErcXlQMFlWcEhDZjlk?=
 =?utf-8?B?ZTNVUHlqZTBZV050dktWK1czd2tiUnlicHdDSTFINnUxQ1NNVmtyanJXRjVN?=
 =?utf-8?B?N2xtdUhCTjQ0ck55WWt3bEtOQklpTGZCeStzYnlReU5VQjIvWUZ2bGlLTEc2?=
 =?utf-8?B?MGEzQkU0MmJFSWg0QjZRRXBTRUtFd01GRWxFSTducnlKeG9NOU9hU1pFdlhH?=
 =?utf-8?B?YmMyNkgwQ2NSMW9lRjRZc0tPUDNQYlVhQzhyOTNxb3RNV2F0V1ZycG5Na1Ra?=
 =?utf-8?B?VXo2SVMyU3NPWlFsTnJrb3hrd2Y4MmZPUFZUTGxRMFMwbEwzbTRCaUNOV0Zj?=
 =?utf-8?B?U3AzdUxPRVg3OWRpMVZxcm1KSUpSNlpVVlhLYnB0djV3T3QzMGphcHI1aTFj?=
 =?utf-8?B?V1lZVUhYYncxWVdWS3YzRFEyYm11RXl2SVc0aDdLWnlPVER2alRwanBENlFQ?=
 =?utf-8?B?QnUyVFVCekkyR043S1VyOWlqMjB4MGYrbXNDak1HTHdmR1EwTFU2T05hNjUv?=
 =?utf-8?B?aE9CSkFEcjJYV1NFSTVhV2d3L3Z5dzZyYWFZZ1dHNlkvU1NqSzRjWFJVeXZp?=
 =?utf-8?B?RmFURG9kWktTelBWVEdnb1Y3ZkprVEVJcldZZE9POVR2bUV1NG8xejhQSldH?=
 =?utf-8?B?cTRlaHpQaHQ1NTB6bUlpMUNPWUFuWEdYME1Mb2pxdGhWcTJwUFNyWDdvQkJP?=
 =?utf-8?B?bHREdHBxMHpja05nTTRFR3pBYURoWG5uK2R5UHp0WDMxaENoYlB2c291blJM?=
 =?utf-8?B?dlMzZW5Gekpyck1IMUVKOHlycVpnWXZjZHIva2pUWWpuVUJMcmZnZGNiUFBt?=
 =?utf-8?B?dFBBazlEVTdXSXBKcFhkcE1DTHpTS2djRlJVeVU5a21SUnMzRU4xdmN1djY0?=
 =?utf-8?B?cVFoaU1qUE96aS95V0Z0bDhmczlGOURCNE5wZjBTTEdnZS9RMWJuWkFURWZR?=
 =?utf-8?B?aXBPeXNmY0pUQytHRDdUQlJZT2tlZU1UNTNqdVJvcStlNkkzRjNJLzVhSE4v?=
 =?utf-8?B?WUp5a0h6QlY2T3A0VXhWK0Q2bWJIU1ZibzYrSWp1WkIrd2Vja3haYkEwcVlL?=
 =?utf-8?B?eXlOeitxdnlRVDcrQy8raHluNEgrMzlCZFlQbWlhd2VWZlA3NFhucjdnZTJp?=
 =?utf-8?B?RHdDQTJCWGNCTjBheHVDeVZ0TmV2L0VxL0hxR3pmWWxMSjJ6TmwzejZZKzFZ?=
 =?utf-8?B?VjdWSWx6OHVUQytkekhwTG1FTnJpNmM1SDdvdFhwVXlNckk3UlJVdHM5d3V3?=
 =?utf-8?B?b3VpQkxrbG9mSEw2T0NhNDNvazRGMkFMS0w3RzBVSVh1VjJFNXZyN1pmYUxU?=
 =?utf-8?B?UUd6a0xZM043amgzaGtyVW4vY28wNUs2YkQyMFBlWllqemZSTlB6cjdXZDVw?=
 =?utf-8?B?QlN2U3MyaEpMaFk5MmFMTzFsYU05TnZZQjJwVEJMaUxVVWNzYVF6Sy9YaDIy?=
 =?utf-8?B?WjUxb040MEYrcXdUTjBCZ0xhYVNlcDg4T25DUHpRQUZycjV2dTJBWWkxYTBV?=
 =?utf-8?B?d3JlNWZnK0MwZFJFcVBITlJGYUExaEJSMXg1S0EzV1dmakJ5U2NzWTVva1Bq?=
 =?utf-8?B?bEdGRjdFSGZaQkI1VUJKWFBLYzA4NWs5aW9xUEM3ZjE0MzhoREZENVdNNVlY?=
 =?utf-8?Q?oZUQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9FA5B3CB94A73247AA57642D2266CB09@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: 30a46884-ec33-4560-7ccd-08dbf6219f3c
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2023 06:07:26.8391
 (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: j49YIc7MR4R+MhhElEG2WmQVUUCFeY8XmyIZAtUK3qhSkCXNayeLBJNKlGenbPw4cJ0zcTGuoRugzyF3hSt8/g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4215

T24gMjAyMy8xMi81IDE4OjMyLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDUuMTIuMjAyMyAx
MDoxOSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+IE9uIE1vbiwgRGVjIDA0LCAyMDIzIGF0
IDAyOjE5OjMzUE0gLTA4MDAsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4+PiBPbiBNb24s
IDQgRGVjIDIwMjMsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+IE9uIEZyaSwgRGVjIDAx
LCAyMDIzIGF0IDA3OjM3OjU1UE0gLTA4MDAsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4+
Pj4+IE9uIEZyaSwgMSBEZWMgMjAyMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+PiBP
biBUaHUsIE5vdiAzMCwgMjAyMyBhdCAwNzoxNToxN1BNIC0wODAwLCBTdGVmYW5vIFN0YWJlbGxp
bmkgd3JvdGU6DQo+Pj4+Pj4+IE9uIFRodSwgMzAgTm92IDIwMjMsIFJvZ2VyIFBhdSBNb25uw6kg
d3JvdGU6DQo+Pj4+Pj4+PiBPbiBXZWQsIE5vdiAyOSwgMjAyMyBhdCAwNzo1Mzo1OVBNIC0wODAw
LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+Pj4+Pj4+Pj4gT24gRnJpLCAyNCBOb3YgMjAy
MywgSmlxaWFuIENoZW4gd3JvdGU6DQo+Pj4+Pj4+Pj4+IFRoaXMgcGF0Y2ggaXMgdG8gc29sdmUg
dHdvIHByb2JsZW1zIHdlIGVuY291bnRlcmVkIHdoZW4gd2UgdHJ5IHRvDQo+Pj4+Pj4+Pj4+IHBh
c3N0aHJvdWdoIGEgZGV2aWNlIHRvIGh2bSBkb21VIGJhc2Ugb24gWGVuIFBWSCBkb20wLg0KPj4+
Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBGaXJzdCwgaHZtIGd1ZXN0IHdpbGwgYWxsb2MgYSBwaXJxIGFu
ZCBpcnEgZm9yIGEgcGFzc3Rocm91Z2ggZGV2aWNlDQo+Pj4+Pj4+Pj4+IGJ5IHVzaW5nIGdzaSwg
YmVmb3JlIHRoYXQsIHRoZSBnc2kgbXVzdCBmaXJzdCBoYXMgYSBtYXBwaW5nIGluIGRvbTAsDQo+
Pj4+Pj4+Pj4+IHNlZSBYZW4gY29kZSBwY2lfYWRkX2RtX2RvbmUtPnhjX2RvbWFpbl9pcnFfcGVy
bWlzc2lvbiwgaXQgd2lsbCBjYWxsDQo+Pj4+Pj4+Pj4+IGludG8gWGVuIGFuZCBjaGVjayB3aGV0
aGVyIGRvbTAgaGFzIHRoZSBtYXBwaW5nLiBTZWUNCj4+Pj4+Pj4+Pj4gWEVOX0RPTUNUTF9pcnFf
cGVybWlzc2lvbi0+cGlycV9hY2Nlc3NfcGVybWl0dGVkLCAiY3VycmVudCIgaXMgUFZIDQo+Pj4+
Pj4+Pj4+IGRvbTAgYW5kIGl0IHJldHVybiBpcnEgaXMgMCwgYW5kIHRoZW4gcmV0dXJuIC1FUEVS
TS4NCj4+Pj4+Pj4+Pj4gVGhpcyBpcyBiZWNhdXNlIHRoZSBwYXNzdGhyb3VnaCBkZXZpY2UgZG9l
c24ndCBkbyBQSFlTREVWT1BfbWFwX3BpcnENCj4+Pj4+Pj4+Pj4gd2hlbiB0aGF5IGFyZSBlbmFi
bGVkLg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBTZWNvbmQsIGluIFBWSCBkb20wLCB0aGUgZ3Np
IG9mIGEgcGFzc3Rocm91Z2ggZGV2aWNlIGRvZXNuJ3QgZ2V0DQo+Pj4+Pj4+Pj4+IHJlZ2lzdGVy
ZWQsIGJ1dCBnc2kgbXVzdCBiZSBjb25maWd1cmVkIGZvciBpdCB0byBiZSBhYmxlIHRvIGJlDQo+
Pj4+Pj4+Pj4+IG1hcHBlZCBpbnRvIGEgZG9tVS4NCj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4gQWZ0
ZXIgc2VhcmNoaW5nIGNvZGVzLCB3ZSBjYW4gZmluZCBtYXBfcGlycSBhbmQgcmVnaXN0ZXJfZ3Np
IHdpbGwgYmUNCj4+Pj4+Pj4+Pj4gZG9uZSBpbiBmdW5jdGlvbiB2aW9hcGljX3dyaXRlX3JlZGly
ZW50LT52aW9hcGljX2h3ZG9tX21hcF9nc2kgd2hlbg0KPj4+Pj4+Pj4+PiB0aGUgZ3NpKGFrYSBp
b2FwaWMncyBwaW4pIGlzIHVubWFza2VkIGluIFBWSCBkb20wLiBTbyB0aGUgcHJvYmxlbXMNCj4+
Pj4+Pj4+Pj4gY2FuIGJlIGNvbmNsdWRlIHRvIHRoYXQgdGhlIGdzaSBvZiBhIHBhc3N0aHJvdWdo
IGRldmljZSBkb2Vzbid0IGJlDQo+Pj4+Pj4+Pj4+IHVubWFza2VkLg0KPj4+Pj4+Pj4+Pg0KPj4+
Pj4+Pj4+PiBUbyBzb2x2ZSB0aGUgdW5tYXNrZSBwcm9ibGVtLCB0aGlzIHBhdGNoIGNhbGwgdGhl
IHVubWFza19pcnEgd2hlbiB3ZQ0KPj4+Pj4+Pj4+PiBhc3NpZ24gYSBkZXZpY2UgdG8gYmUgcGFz
c3Rocm91Z2guIFNvIHRoYXQgdGhlIGdzaSBjYW4gZ2V0IHJlZ2lzdGVyZWQNCj4+Pj4+Pj4+Pj4g
YW5kIG1hcHBlZCBpbiBQVkggZG9tMC4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4g
Um9nZXIsIHRoaXMgc2VlbXMgdG8gYmUgbW9yZSBvZiBhIFhlbiBpc3N1ZSB0aGFuIGEgTGludXgg
aXNzdWUuIFdoeSBkbw0KPj4+Pj4+Pj4+IHdlIG5lZWQgdGhlIHVubWFzayBjaGVjayBpbiBYZW4/
IENvdWxkbid0IHdlIGp1c3QgZG86DQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IGRp
ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3Zpb2FwaWMuYyBiL3hlbi9hcmNoL3g4Ni9odm0v
dmlvYXBpYy5jDQo+Pj4+Pj4+Pj4gaW5kZXggNGU0MGQzNjA5YS4uZGYyNjJhNGExOCAxMDA2NDQN
Cj4+Pj4+Pj4+PiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL3Zpb2FwaWMuYw0KPj4+Pj4+Pj4+ICsr
KyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlvYXBpYy5jDQo+Pj4+Pj4+Pj4gQEAgLTI4Nyw3ICsyODcs
NyBAQCBzdGF0aWMgdm9pZCB2aW9hcGljX3dyaXRlX3JlZGlyZW50KA0KPj4+Pj4+Pj4+ICAgICAg
ICAgICAgICBodm1fZHBjaV9lb2koZCwgZ3NpKTsNCj4+Pj4+Pj4+PiAgICAgIH0NCj4+Pj4+Pj4+
PiAgDQo+Pj4+Pj4+Pj4gLSAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSAmJiB1bm1hc2tl
ZCApDQo+Pj4+Pj4+Pj4gKyAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApDQo+Pj4+Pj4+
Pj4gICAgICB7DQo+Pj4+Pj4+Pj4gICAgICAgICAgLyoNCj4+Pj4+Pj4+PiAgICAgICAgICAgKiBO
QjogZG9uJ3QgY2FsbCB2aW9hcGljX2h3ZG9tX21hcF9nc2kgd2hpbGUgaG9sZGluZyBodm0uaXJx
X2xvY2sNCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBUaGVyZSBhcmUgc29tZSBpc3N1ZXMgd2l0aCB0aGlz
IGFwcHJvYWNoLg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IG1wX3JlZ2lzdGVyX2dzaSgpIHdpbGwgb25s
eSBzZXR1cCB0aGUgdHJpZ2dlciBhbmQgcG9sYXJpdHkgb2YgdGhlDQo+Pj4+Pj4+PiBJTy1BUElD
IHBpbiBvbmNlLCBzbyB3ZSBkbyBzbyBvbmNlIHRoZSBndWVzdCB1bm1hc2sgdGhlIHBpbiBpbiBv
cmRlcg0KPj4+Pj4+Pj4gdG8gYXNzZXJ0IHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gaXMgdGhlIGlu
dGVuZGVkIG9uZS4gIEEgZ3Vlc3QgaXMNCj4+Pj4+Pj4+IGFsbG93ZWQgdG8gd3JpdGUgYWxsIGtp
bmQgb2Ygbm9uc2Vuc2Ugc3R1ZmYgdG8gdGhlIElPLUFQSUMgUlRFLCBidXQNCj4+Pj4+Pj4+IHRo
YXQgZG9lc24ndCB0YWtlIGVmZmVjdCB1bmxlc3MgdGhlIHBpbiBpcyB1bm1hc2tlZC4NCj4+Pj4+
Pj4+DQo+Pj4+Pj4+PiBPdmVyYWxsIHRoZSBxdWVzdGlvbiB3b3VsZCBiZSB3aGV0aGVyIHdlIGhh
dmUgYW55IGd1YXJhbnRlZXMgdGhhdA0KPj4+Pj4+Pj4gdGhlIGhhcmR3YXJlIGRvbWFpbiBoYXMg
cHJvcGVybHkgY29uZmlndXJlZCB0aGUgcGluLCBldmVuIGlmIGl0J3Mgbm90DQo+Pj4+Pj4+PiB1
c2luZyBpdCBpdHNlbGYgKGFzIGl0IGhhc24ndCBiZWVuIHVubWFza2VkKS4NCj4+Pj4+Pj4+DQo+
Pj4+Pj4+PiBJSVJDIFBDSSBsZWdhY3kgaW50ZXJydXB0cyBhcmUgbGV2ZWwgdHJpZ2dlcmVkIGFu
ZCBsb3cgcG9sYXJpdHksIHNvIHdlDQo+Pj4+Pj4+PiBjb3VsZCBjb25maWd1cmUgYW55IHBpbnMg
dGhhdCBhcmUgbm90IHNldHVwIGF0IGJpbmQgdGltZT8NCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhhdCBj
b3VsZCB3b3JrLg0KPj4+Pj4+Pg0KPj4+Pj4+PiBBbm90aGVyIGlkZWEgaXMgdG8gbW92ZSBvbmx5
IHRoZSBjYWxsIHRvIGFsbG9jYXRlX2FuZF9tYXBfZ3NpX3BpcnEgYXQNCj4+Pj4+Pj4gYmluZCB0
aW1lPyBUaGF0IG1pZ2h0IGJlIGVub3VnaCB0byBwYXNzIGEgcGlycV9hY2Nlc3NfcGVybWl0dGVk
IGNoZWNrLg0KPj4+Pj4+DQo+Pj4+Pj4gTWF5YmUsIGFsYmVpdCB0aGF0IHdvdWxkIGNoYW5nZSB0
aGUgYmVoYXZpb3Igb2YgWEVOX0RPTUNUTF9iaW5kX3B0X2lycQ0KPj4+Pj4+IGp1c3QgZm9yIFBU
X0lSUV9UWVBFX1BDSSBhbmQgb25seSB3aGVuIGNhbGxlZCBmcm9tIGEgUFZIIGRvbTAgKGFzIHRo
ZQ0KPj4+Pj4+IHBhcmFtZXRlciB3b3VsZCBiZSBhIEdTSSBpbnN0ZWFkIG9mIGEgcHJldmlvdXNs
eSBtYXBwZWQgSVJRKS4gIFN1Y2gNCj4+Pj4+PiBkaWZmZXJlbmNlIGp1c3QgZm9yIFBUX0lSUV9U
WVBFX1BDSSBpcyBzbGlnaHRseSB3ZWlyZCAtIGlmIHdlIGdvIHRoYXQNCj4+Pj4+PiByb3V0ZSBJ
IHdvdWxkIHJlY29tbWVuZCB0aGF0IHdlIGluc3RlYWQgaW50cm9kdWNlIGEgbmV3IGRtb3AgdGhh
dCBoYXMNCj4+Pj4+PiB0aGlzIHN5bnRheCByZWdhcmRsZXNzIG9mIHRoZSBkb21haW4gdHlwZSBp
dCdzIGNhbGxlZCBmcm9tLg0KPj4+Pj4NCj4+Pj4+IExvb2tpbmcgYXQgdGhlIGNvZGUgaXQgaXMg
Y2VydGFpbmx5IGEgYml0IGNvbmZ1c2luZy4gTXkgcG9pbnQgd2FzIHRoYXQNCj4+Pj4+IHdlIGRv
bid0IG5lZWQgdG8gd2FpdCB1bnRpbCBwb2xhcml0eSBhbmQgdHJpZ2dlciBhcmUgc2V0IGFwcHJv
cHJpYXRlbHkNCj4+Pj4+IHRvIGFsbG93IERvbTAgdG8gcGFzcyBzdWNjZXNzZnVsbHkgYSBwaXJx
X2FjY2Vzc19wZXJtaXR0ZWQoKSBjaGVjay4gWGVuDQo+Pj4+PiBzaG91bGQgYmUgYWJsZSB0byBm
aWd1cmUgb3V0IHRoYXQgRG9tMCBpcyBwZXJtaXR0ZWQgcGlycSBhY2Nlc3MuDQo+Pj4+DQo+Pj4+
IFRoZSBsb2dpYyBpcyBjZXJ0YWlubHkgbm90IHN0cmFpZ2h0Zm9yd2FyZCwgYW5kIGl0IGNvdWxk
IGJlbmVmaXQgZnJvbQ0KPj4+PiBzb21lIGNvbW1lbnRzLg0KPj4+Pg0KPj4+PiBUaGUgaXJxIHBl
cm1pc3Npb25zIGFyZSBhIGJpdCBzcGVjaWFsLCBpbiB0aGF0IHRoZXkgZ2V0IHNldHVwIHdoZW4g
dGhlDQo+Pj4+IElSUSBpcyBtYXBwZWQuDQo+Pj4+DQo+Pj4+IFRoZSBwcm9ibGVtIGhvd2V2ZXIg
aXMgbm90IHNvIG11Y2ggd2l0aCBJUlEgcGVybWlzc2lvbnMsIHRoYXQgd2UgY2FuDQo+Pj4+IGlu
ZGVlZCBzb3J0IG91dCBpbnRlcm5hbGx5IGluIFhlbi4gIFN1Y2ggY2hlY2sgaW4gZG9tMCBoYXMg
dGhlIHNpZGUNCj4+Pj4gZWZmZWN0IG9mIHByZXZlbnRpbmcgdGhlIElSUSBmcm9tIGJlaW5nIGFz
c2lnbmVkIHRvIGEgZG9tVSB3aXRob3V0IHRoZQ0KPj4+PiBoYXJkd2FyZSBzb3VyY2UgYmVpbmcg
cHJvcGVybHkgY29uZmlndXJlZCBBRkFJQ1QuDQo+Pj4NCj4+PiBOb3cgSSB1bmRlcnN0YW5kIHdo
eSB5b3UgbWFkZSBhIGNvbW1lbnQgcHJldmlvdXNseSBhYm91dCBYZW4gaGF2aW5nIHRvDQo+Pj4g
Y29uZmlndXJlIHRyaWdnZXIgYW5kIHBvbGFyaXR5IGZvciB0aGVzZSBpbnRlcnJ1cHRzIG9uIGl0
cyBvd24uDQo+Pj4NCj4+Pg0KPj4+Pj4gU28gdGhlIGlkZWEgd2FzIHRvIG1vdmUgdGhlIGNhbGwg
dG8gYWxsb2NhdGVfYW5kX21hcF9nc2lfcGlycSgpIGVhcmxpZXINCj4+Pj4+IHNvbWV3aGVyZSBi
ZWNhdXNlIGFsbG9jYXRlX2FuZF9tYXBfZ3NpX3BpcnEgZG9lc24ndCByZXF1aXJlIHRyaWdnZXIg
b3INCj4+Pj4+IHBvbGFyaXR5IHRvIGJlIGNvbmZpZ3VyZWQgdG8gd29yay4gQnV0IHRoZSBzdWdn
ZXN0aW9uIG9mIGRvaW5nIGl0IGENCj4+Pj4+ICJiaW5kIHRpbWUiIChtZWFuaW5nOiBYRU5fRE9N
Q1RMX2JpbmRfcHRfaXJxKSB3YXMgYSBiYWQgaWRlYS4NCj4+Pj4+DQo+Pj4+PiBCdXQgbWF5YmUg
d2UgY2FuIGZpbmQgYW5vdGhlciBsb2NhdGlvbiwgbWF5YmUgd2l0aGluDQo+Pj4+PiB4ZW4vYXJj
aC94ODYvaHZtL3Zpb2FwaWMuYywgdG8gY2FsbCBhbGxvY2F0ZV9hbmRfbWFwX2dzaV9waXJxKCkg
YmVmb3JlDQo+Pj4+PiB0cmlnZ2VyIGFuZCBwb2xhcml0eSBhcmUgc2V0IGFuZCBiZWZvcmUgdGhl
IGludGVycnVwdCBpcyB1bm1hc2tlZC4NCj4+Pj4+DQo+Pj4+PiBUaGVuIHdlIGNoYW5nZSB0aGUg
aW1wbGVtZW50YXRpb24gb2YgdmlvYXBpY19od2RvbV9tYXBfZ3NpIHRvIHNraXAgdGhlDQo+Pj4+
PiBjYWxsIHRvIGFsbG9jYXRlX2FuZF9tYXBfZ3NpX3BpcnEsIGJlY2F1c2UgYnkgdGhlIHRpbWUN
Cj4+Pj4+IHZpb2FwaWNfaHdkb21fbWFwX2dzaSB3ZSBhc3N1bWUgdGhhdCBhbGxvY2F0ZV9hbmRf
bWFwX2dzaV9waXJxIGhhZA0KPj4+Pj4gYWxyZWFkeSBiZWVuIGRvbmUuDQo+Pj4+DQo+Pj4+IEJ1
dCB0aGVuIHdlIHdvdWxkIGVuZCB1cCBpbiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUNCj4+Pj4gcGly
cV9hY2Nlc3NfcGVybWl0dGVkKCkgY2hlY2sgd2lsbCBwYXNzLCBidXQgdGhlIElPLUFQSUMgcGlu
IHdvbid0IGJlDQo+Pj4+IGNvbmZpZ3VyZWQsIHdoaWNoIEkgdGhpbmsgaXQncyBub3Qgd2hhdCB3
ZSB3YW50Lg0KPj4+Pg0KPj4+PiBPbmUgb3B0aW9uIHdvdWxkIGJlIHRvIGFsbG93IG1wX3JlZ2lz
dGVyX2dzaSgpIHRvIGJlIGNhbGxlZCBtdWx0aXBsZQ0KPj4+PiB0aW1lcywgYW5kIHVwZGF0ZSB0
aGUgSU8tQVBJQyBwaW4gY29uZmlndXJhdGlvbiBhcyBsb25nIGFzIHRoZSBwaW4gaXMNCj4+Pj4g
bm90IHVubWFza2VkLiAgVGhhdCB3b3VsZCBwcm9wYWdhdGUgZWFjaCBkb20wIFJURSB1cGRhdGUg
dG8gdGhlDQo+Pj4+IHVuZGVybHlpbmcgSU8tQVBJQy4gIEhvd2V2ZXIgc3VjaCBhcHByb2FjaCBy
ZWxpZXMgb24gZG9tMCBjb25maWd1cmluZw0KPj4+PiBhbGwgcG9zc2libGUgSU8tQVBJQyBwaW5z
LCBldmVuIGlmIG5vIGRldmljZSBvbiBkb20wIGlzIHVzaW5nIHRoZW0sIEkNCj4+Pj4gdGhpbmsg
aXQncyBub3QgYSB2ZXJ5IHJlbGlhYmxlIG9wdGlvbi4NCj4+Pj4NCj4+Pj4gQW5vdGhlciBvcHRp
b24gd291bGQgYmUgdG8gbW9kaWZ5IHRoZSB0b29sc3RhY2sgdG8gc2V0dXAgdGhlIEdTSQ0KPj4+
PiBpdHNlbGYgdXNpbmcgdGhlIFBIWVNERVZPUF9zZXR1cF9nc2kgaHlwZXJjYWxsLiAgQXMgc2Fp
ZCBpbiBhIHByZXZpb3VzDQo+Pj4+IGVtYWlsLCBzaW5jZSB3ZSBvbmx5IGNhcmUgYWJvdXQgUENJ
IGRldmljZSBwYXNzdGhyb3VnaCB0aGUgbGVnYWN5IElOVHgNCj4+Pj4gc2hvdWxkIGFsd2F5cyBi
ZSBsZXZlbCB0cmlnZ2VyZWQgYW5kIGxvdyBwb2xhcml0eS4NCj4+Pj4NCj4+Pj4+IEkgYW0gbm90
IGZhbWlsaWFyIHdpdGggdmlvYXBpYy5jIGJ1dCB0byBnaXZlIHlvdSBhbiBpZGVhIG9mIHdoYXQg
SSB3YXMNCj4+Pj4+IHRoaW5raW5nOg0KPj4+Pj4NCj4+Pj4+DQo+Pj4+PiBkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMgYi94ZW4vYXJjaC94ODYvaHZtL3Zpb2FwaWMuYw0K
Pj4+Pj4gaW5kZXggNGU0MGQzNjA5YS4uMTZkNTZmZTg1MSAxMDA2NDQNCj4+Pj4+IC0tLSBhL3hl
bi9hcmNoL3g4Ni9odm0vdmlvYXBpYy5jDQo+Pj4+PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3Zp
b2FwaWMuYw0KPj4+Pj4gQEAgLTE4OSwxNCArMTg5LDYgQEAgc3RhdGljIGludCB2aW9hcGljX2h3
ZG9tX21hcF9nc2kodW5zaWduZWQgaW50IGdzaSwgdW5zaWduZWQgaW50IHRyaWcsDQo+Pj4+PiAg
ICAgICAgICByZXR1cm4gcmV0Ow0KPj4+Pj4gICAgICB9DQo+Pj4+PiAgDQo+Pj4+PiAtICAgIHJl
dCA9IGFsbG9jYXRlX2FuZF9tYXBfZ3NpX3BpcnEoY3VycmQsIHBpcnEsICZwaXJxKTsNCj4+Pj4+
IC0gICAgaWYgKCByZXQgKQ0KPj4+Pj4gLSAgICB7DQo+Pj4+PiAtICAgICAgICBncHJpbnRrKFhF
TkxPR19XQVJOSU5HLCAidmlvYXBpYzogZXJyb3IgbWFwcGluZyBHU0kgJXU6ICVkXG4iLA0KPj4+
Pj4gLSAgICAgICAgICAgICAgICAgZ3NpLCByZXQpOw0KPj4+Pj4gLSAgICAgICAgcmV0dXJuIHJl
dDsNCj4+Pj4+IC0gICAgfQ0KPj4+Pj4gLQ0KPj4+Pj4gICAgICBwY2lkZXZzX2xvY2soKTsNCj4+
Pj4+ICAgICAgcmV0ID0gcHRfaXJxX2NyZWF0ZV9iaW5kKGN1cnJkLCAmcHRfaXJxX2JpbmQpOw0K
Pj4+Pj4gICAgICBpZiAoIHJldCApDQo+Pj4+PiBAQCAtMjg3LDYgKzI3OSwxNyBAQCBzdGF0aWMg
dm9pZCB2aW9hcGljX3dyaXRlX3JlZGlyZW50KA0KPj4+Pj4gICAgICAgICAgICAgIGh2bV9kcGNp
X2VvaShkLCBnc2kpOw0KPj4+Pj4gICAgICB9DQo+Pj4+PiAgDQo+Pj4+PiArICAgIGlmICggaXNf
aGFyZHdhcmVfZG9tYWluKGQpICkgDQo+Pj4+PiArICAgIHsNCj4+Pj4+ICsgICAgICAgIGludCBw
aXJxID0gZ3NpLCByZXQ7DQo+Pj4+PiArICAgICAgICByZXQgPSBhbGxvY2F0ZV9hbmRfbWFwX2dz
aV9waXJxKGN1cnJkLCBwaXJxLCAmcGlycSk7DQo+Pj4+PiArICAgICAgICBpZiAoIHJldCApDQo+
Pj4+PiArICAgICAgICB7DQo+Pj4+PiArICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FSTklO
RywgInZpb2FwaWM6IGVycm9yIG1hcHBpbmcgR1NJICV1OiAlZFxuIiwNCj4+Pj4+ICsgICAgICAg
ICAgICAgICAgICAgIGdzaSwgcmV0KTsNCj4+Pj4+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0K
Pj4+Pj4gKyAgICAgICAgfQ0KPj4+Pj4gKyAgICB9DQo+Pj4+PiAgICAgIGlmICggaXNfaGFyZHdh
cmVfZG9tYWluKGQpICYmIHVubWFza2VkICkNCj4+Pj4+ICAgICAgew0KPj4+Pj4gICAgICAgICAg
LyoNCj4+Pj4NCj4+Pj4gQXMgc2FpZCBhYm92ZSwgc3VjaCBhcHByb2FjaCByZWxpZXMgb24gZG9t
MCB3cml0aW5nIHRvIHRoZSBJTy1BUElDIFJURQ0KPj4+PiBvZiBsaWtlbHkgZWFjaCBJTy1BUElD
IHBpbiwgd2hpY2ggaXMgSU1PIG5vdCBxdWl0ZSByZWxpYWJsZS4gIEluIHRoZXJlDQo+Pj4+IGFy
ZSB0d28gZGlmZmVyZW50IGlzc3VlcyBoZXJlIHRoYXQgbmVlZCB0byBiZSBmaXhlZCBmb3IgUFZI
IGRvbTA6DQo+Pj4+DQo+Pj4+ICAtIEZpeCB0aGUgWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbiBw
aXJxX2FjY2Vzc19wZXJtaXR0ZWQoKSBjYWxsIHRvDQo+Pj4+ICAgIHN1Y2NlZWQgZm9yIGEgUFZI
IGRvbTAsIGV2ZW4gaWYgZG9tMCBpcyBub3QgdXNpbmcgdGhlIEdTSSBpdHNlbGYuDQo+Pj4NCj4+
PiBZZXMgbWFrZXMgc2Vuc2UNCj4+Pg0KPj4+DQo+Pj4+ICAtIENvbmZpZ3VyZSBJTy1BUElDIHBp
bnMgZm9yIFBDSSBpbnRlcnJ1cHRzIGV2ZW4gaWYgZG9tMCBpcyBub3QgdXNpbmcNCj4+Pj4gICAg
dGhlIElPLUFQSUMgcGluIGl0c2VsZi4NCj4+Pj4NCj4+Pj4gRmlyc3Qgb25lIG5lZWRzIHRvIGJl
IGZpeGVkIGludGVybmFsbHkgaW4gWGVuLCBzZWNvbmQgb25lIHdpbGwgcmVxdWlyZQ0KPj4+PiB0
aGUgdG9vbHN0YWNrIHRvIGlzc3VlIGFuIGV4dHJhIGh5cGVyY2FsbCBpbiBvcmRlciB0byBlbnN1
cmUgdGhlDQo+Pj4+IElPLUFQSUMgcGluIGlzIHByb3Blcmx5IGNvbmZpZ3VyZWQuDQo+Pj4gIA0K
Pj4+IE9uIEFSTSwgWGVuIGRvZXNuJ3QgbmVlZCB0byB3YWl0IGZvciBkb20wIHRvIGNvbmZpZ3Vy
ZSBpbnRlcnJ1cHRzDQo+Pj4gY29ycmVjdGx5LiBYZW4gY29uZmlndXJlcyB0aGVtIGFsbCBvbiBp
dHMgb3duIGF0IGJvb3QgYmFzZWQgb24gRGV2aWNlDQo+Pj4gVHJlZSBpbmZvcm1hdGlvbi4gSSBn
dWVzcyBpdCBpcyBub3QgcG9zc2libGUgdG8gZG8gdGhlIHNhbWUgb24geDg2Pw0KPj4NCj4+IE5v
LCBub3QgZXhhY3RseS4gIFRoZXJlJ3Mgc29tZSBpbnRlcnJ1cHQgaW5mb3JtYXRpb24gaW4gdGhl
IEFDUEkgTUFEVCwNCj4+IGJ1dCB0aGF0J3MganVzdCBmb3IgdmVyeSBzcGVjaWZpYyBzb3VyY2Vz
IChJbnRlcnJ1cHQgU291cmNlIE92ZXJyaWRlDQo+PiBTdHJ1Y3R1cmVzKQ0KPj4NCj4+IFRoZW4g
b24gQU1MIGRldmljZXMgY2FuIGhhdmUgcmVzb3VyY2UgZGVzY3JpcHRvcnMgdGhhdCBjb250YWlu
DQo+PiBpbmZvcm1hdGlvbiBhYm91dCBob3cgaW50ZXJydXB0cyBhcmUgc2V0dXAuICBIb3dldmVy
IFhlbiBpcyBub3QgYWJsZQ0KPj4gdG8gcmVhZCBhbnkgb2YgdGhpcyBpbmZvcm1hdGlvbiBvbiBB
TUwuDQo+Pg0KPj4gTGVnYWN5IFBDSSBpbnRlcnJ1cHRzIGFyZSAoYWx3YXlzPykgbGV2ZWwgdHJp
Z2dlcmVkIGFuZCBsb3cgcG9sYXJpdHksDQo+PiBiZWNhdXNlIGl0J3MgYXNzdW1lZCB0aGF0IGFu
IGludGVycnVwdCBzb3VyY2UgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuDQo+PiBtdWx0aXBsZSBkZXZp
Y2VzLg0KPiANCj4gRXhjZXB0IHRoYXQgYXMgcGVyIHdoYXQgeW91IHNhaWQganVzdCBpbiB0aGUg
ZWFybGllciBwYXJhZ3JhcGggQUNQSSBjYW4NCj4gdGVsbCB1cyBvdGhlcndpc2UuDQo+IA0KPj4g
SSdtIGhvd2V2ZXIgbm90IGFibGUgdG8gZmluZCBhbnkgcmVmZXJlbmNlIHRvIHRoaXMgaW4gdGhl
IFBDSSBzcGVjLA0KPj4gaGVuY2UgSSdtIHJlbHVjdGFudCB0byB0YWtlIHRoaXMgZm9yIGdyYW50
ZWQgaW4gWGVuLCBhbmQgZGVmYXVsdCBhbGwNCj4+IEdTSXMgPj0gMTYgdG8gc3VjaCBtb2RlLg0K
Pj4NCj4+IE9UT0ggbGVnYWN5IFBDSSBpbnRlcnJ1cHRzIGFyZSBub3QgdGhhdCB1c2VkIGFueW1v
cmUsIGFzIGFsbW9zdCBhbGwNCj4+IGRldmljZXMgd2lsbCBzdXBwb3J0IE1TSSgtWCkgKGJlY2F1
c2UgUENJZSBtYW5kYXRlcyBpdCkgYW5kIE9TZXMNCj4+IHNob3VsZCBwcmVmZXIgdGhlIGxhdHRl
ci4gIFNSLUlPViBWRiBkb24ndCBldmVuIHN1cHBvcnQgbGVnYWN5IFBDSQ0KPj4gaW50ZXJydXB0
cyBhbnltb3JlLg0KPj4NCj4+PiBJZg0KPj4+IG5vdCwgdGhlbiBJIGNhbiBzZWUgd2h5IHdlIHdv
dWxkIG5lZWQgMSBleHRyYSB0b29sc3RhY2sgaHlwZXJjYWxsIGZvcg0KPj4+IHRoYXQgKG9yIHRv
IGJ1bmRsZSB0aGUgb3BlcmF0aW9uIG9mIGNvbmZpZ3VyaW5nIElPLUFQSUMgcGlucyB0b2dldGhl
cg0KPj4+IHdpdGggYW4gZXhpc3RpbmcgdG9vbHN0YWNrIGh5cGVyY2FsbCkuDQo+Pg0KPj4gT25l
IHN1aXRhYmxlIGNvbXByb21pc2Ugd291bGQgYmUgdG8gZGVmYXVsdCB1bmNvbmZpZ3VyZWQgR1NJ
cyA+PSAxNiB0bw0KPj4gbGV2ZWwtdHJpZ2dlcmVkIGFuZCBsb3ctcG9sYXJpdHksIGFzIEkgd291
bGQgZXhwZWN0IHRoYXQgdG8gd29yayBpbg0KPj4gYWxtb3N0IGFsbCBjYXNlcy4gIFdlIGNhbiBh
bHdheXMgaW50cm9kdWNlIHRoZSB1c2FnZSBvZg0KPj4gUEhZU0RFVk9QX3NldHVwX2dzaSBsYXRl
ciBpZiByZXF1aXJlZC4NCj4+DQo+PiBNYXliZSBKYW4gaGFzIG1vcmUgaW5wdXQgaGVyZSwgd291
bGQgeW91IGFncmVlIHRvIGRlZmF1bHRpbmcgbm9uLUlTQQ0KPj4gR1NJcyB0byBsZXZlbC10cmln
Z2VyZWQsIGxvdy1wb2xhcml0eSBpbiB0aGUgYWJzZW5jZSBvZiBhIHNwZWNpZmljDQo+PiBzZXR1
cCBwcm92aWRlZCBieSBkb20wPw0KPiANCj4gV2VsbCwgc3VjaCBkZWZhdWx0aW5nIGlzIGFuIG9w
dGlvbiwgYnV0IGluIGNhc2UgaXQncyB3cm9uZyB3ZSBtaWdodA0KPiBlbmQgdXAgd2l0aCBoYXJk
IHRvIGRpYWdub3NlIGlzc3Vlcy4gUGVyc29uYWxseSBJJ2QgcHJlZmVyIGlmIHdlDQo+IGRpZG4n
dCB0YWtlIHNob3J0Y3V0cyBoZXJlLCBpLmUuIGlmIHdlIGZvbGxvd2VkIHdoYXQgRG9tMCBpcyBh
YmxlDQo+IHRvIHJlYWQgZnJvbSBBQ1BJLg0KDQpXaGVuIFBWSCBkb20wIGVuYWJsZSBhIGRldmlj
ZSwgaXQgd2lsbCBnZXQgdHJpZ2dlciBhbmQgcG9sYXJpdHkgZnJvbSBBQ1BJIChzZWUgYWNwaV9w
Y2lfaXJxX2VuYWJsZSkNCkkgaGF2ZSBhIHZlcnNpb24gb2YgcGF0Y2ggd2hpY2ggdHJpZWQgdGhh
dCB3YXksIHNlZSBiZWxvdzoNCg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW5f
cHZoLmMgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2aC5jDQppbmRleCBhZGEzODY4YzAyYzIu
LjQzZTFiZGE5Zjk0NiAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW5fcHZoLmMN
CisrKyBiL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW5fcHZoLmMNCkBAIC0xLDYgKzEsNyBAQA0KIC8v
IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQogI2luY2x1ZGUgPGxpbnV4L2FjcGku
aD4NCiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+DQorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPg0K
DQogI2luY2x1ZGUgPHhlbi9odmMtY29uc29sZS5oPg0KDQpAQCAtMjUsNiArMjYsMTI3IEBADQog
Ym9vbCBfX3JvX2FmdGVyX2luaXQgeGVuX3B2aDsNCiBFWFBPUlRfU1lNQk9MX0dQTCh4ZW5fcHZo
KTsNCg0KK3R5cGVkZWYgc3RydWN0IGdzaV9pbmZvIHsNCisgICAgICAgaW50IGdzaTsNCisgICAg
ICAgaW50IHRyaWdnZXI7DQorICAgICAgIGludCBwb2xhcml0eTsNCisgICAgICAgaW50IHBpcnE7
DQorfSBnc2lfaW5mb190Ow0KKw0KK3N0cnVjdCBhY3BpX3BydF9lbnRyeSB7DQorICAgICAgIHN0
cnVjdCBhY3BpX3BjaV9pZCAgICAgIGlkOw0KKyAgICAgICB1OCAgICAgICAgICAgICAgICAgICAg
ICBwaW47DQorICAgICAgIGFjcGlfaGFuZGxlICAgICAgICAgICAgIGxpbms7DQorICAgICAgIHUz
MiAgICAgICAgICAgICAgICAgICAgIGluZGV4OyAgICAgICAgICAvKiBHU0ksIG9yIGxpbmsgX0NS
UyBpbmRleCAqLw0KK307DQorDQorc3RhdGljIGludCB4ZW5fcHZoX2dldF9nc2lfaW5mbyhzdHJ1
Y3QgcGNpX2RldiAqZGV2LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdzaV9pbmZvX3QgKmdzaV9pbmZvKQ0KK3sNCisgICAg
ICAgaW50IGdzaTsNCisgICAgICAgdTggcGluID0gMDsNCisgICAgICAgc3RydWN0IGFjcGlfcHJ0
X2VudHJ5ICplbnRyeTsNCisgICAgICAgaW50IHRyaWdnZXIgPSBBQ1BJX0xFVkVMX1NFTlNJVElW
RTsNCisgICAgICAgaW50IHBvbGFyaXR5ID0gYWNwaV9pcnFfbW9kZWwgPT0gQUNQSV9JUlFfTU9E
RUxfR0lDID8NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNQSV9BQ1RJ
VkVfSElHSCA6IEFDUElfQUNUSVZFX0xPVzsNCisNCisgICAgICAgaWYgKGRldikNCisgICAgICAg
ICAgICAgICBwaW4gPSBkZXYtPnBpbjsNCisgICAgICAgaWYgKCFwaW4pIHsNCisgICAgICAgICAg
ICAgICB4ZW5fcmF3X3ByaW50aygiTm8gaW50ZXJydXB0IHBpbiBjb25maWd1cmVkXG4iKTsNCisg
ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCisgICAgICAgfQ0KKw0KKyAgICAgICBlbnRy
eSA9IGFjcGlfcGNpX2lycV9sb29rdXAoZGV2LCBwaW4pOw0KKyAgICAgICBpZiAoZW50cnkpIHsN
CisgICAgICAgICAgICAgICBpZiAoZW50cnktPmxpbmspDQorICAgICAgICAgICAgICAgICAgICAg
ICBnc2kgPSBhY3BpX3BjaV9saW5rX2FsbG9jYXRlX2lycShlbnRyeS0+bGluaywNCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5p
bmRleCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZ0cmlnZ2VyLCAmcG9sYXJpdHksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsNCisgICAgICAgICAgICAgICBlbHNl
DQorICAgICAgICAgICAgICAgICAgICAgICBnc2kgPSBlbnRyeS0+aW5kZXg7DQorICAgICAgIH0g
ZWxzZQ0KKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KKw0KKyAgICAgICBnc2lfaW5m
by0+Z3NpID0gZ3NpOw0KKyAgICAgICBnc2lfaW5mby0+dHJpZ2dlciA9IHRyaWdnZXI7DQorICAg
ICAgIGdzaV9pbmZvLT5wb2xhcml0eSA9IHBvbGFyaXR5Ow0KKw0KKyAgICAgICByZXR1cm4gMDsN
Cit9DQorDQorc3RhdGljIGludCB4ZW5fcHZoX21hcF9waXJxKGdzaV9pbmZvX3QgKmdzaV9pbmZv
KQ0KK3sNCisgICAgICAgc3RydWN0IHBoeXNkZXZfbWFwX3BpcnEgbWFwX2lycTsNCisgICAgICAg
aW50IHJldDsNCisNCisgICAgICAgbWFwX2lycS5kb21pZCA9IERPTUlEX1NFTEY7DQorICAgICAg
IG1hcF9pcnEudHlwZSA9IE1BUF9QSVJRX1RZUEVfR1NJOw0KKyAgICAgICBtYXBfaXJxLmluZGV4
ID0gZ3NpX2luZm8tPmdzaTsNCisgICAgICAgbWFwX2lycS5waXJxID0gZ3NpX2luZm8tPmdzaTsN
CisNCisgICAgICAgcmV0ID0gSFlQRVJWSVNPUl9waHlzZGV2X29wKFBIWVNERVZPUF9tYXBfcGly
cSwgJm1hcF9pcnEpOw0KKyAgICAgICBnc2lfaW5mby0+cGlycSA9IG1hcF9pcnEucGlycTsNCisN
CisgICAgICAgcmV0dXJuIHJldDsNCit9DQorDQorc3RhdGljIGludCB4ZW5fcHZoX3VubWFwX3Bp
cnEoZ3NpX2luZm9fdCAqZ3NpX2luZm8pDQorew0KKyAgICAgICBzdHJ1Y3QgcGh5c2Rldl91bm1h
cF9waXJxIHVubWFwX2lycTsNCisNCisgICAgICAgdW5tYXBfaXJxLmRvbWlkID0gRE9NSURfU0VM
RjsNCisgICAgICAgdW5tYXBfaXJxLnBpcnEgPSBnc2lfaW5mby0+cGlycTsNCisNCisgICAgICAg
cmV0dXJuIEhZUEVSVklTT1JfcGh5c2Rldl9vcChQSFlTREVWT1BfdW5tYXBfcGlycSwgJnVubWFw
X2lycSk7DQorfQ0KKw0KK3N0YXRpYyBpbnQgeGVuX3B2aF9zZXR1cF9nc2koZ3NpX2luZm9fdCAq
Z3NpX2luZm8pDQorew0KKyAgICAgICBzdHJ1Y3QgcGh5c2Rldl9zZXR1cF9nc2kgc2V0dXBfZ3Np
Ow0KKw0KKyAgICAgICBzZXR1cF9nc2kuZ3NpID0gZ3NpX2luZm8tPmdzaTsNCisgICAgICAgc2V0
dXBfZ3NpLnRyaWdnZXJpbmcgPSAoZ3NpX2luZm8tPnRyaWdnZXIgPT0gQUNQSV9FREdFX1NFTlNJ
VElWRSA/IDAgOiAxKTsNCisgICAgICAgc2V0dXBfZ3NpLnBvbGFyaXR5ID0gKGdzaV9pbmZvLT5w
b2xhcml0eSA9PSBBQ1BJX0FDVElWRV9ISUdIID8gMCA6IDEpOw0KKw0KKyAgICAgICByZXR1cm4g
SFlQRVJWSVNPUl9waHlzZGV2X29wKFBIWVNERVZPUF9zZXR1cF9nc2ksICZzZXR1cF9nc2kpOw0K
K30NCisNCitpbnQgeGVuX3B2aF9wYXNzdGhyb3VnaF9nc2koc3RydWN0IHBjaV9kZXYgKmRldikN
Cit7DQorICAgICAgIGludCByZXQ7DQorICAgICAgIGdzaV9pbmZvX3QgZ3NpX2luZm87DQorDQor
ICAgICAgIGlmICghZGV2KSB7DQorICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQorICAg
ICAgIH0NCisNCisgICAgICAgcmV0ID0geGVuX3B2aF9nZXRfZ3NpX2luZm8oZGV2LCAmZ3NpX2lu
Zm8pOw0KKyAgICAgICBpZiAocmV0KSB7DQorICAgICAgICAgICAgICAgeGVuX3Jhd19wcmludGso
IkZhaWwgdG8gZ2V0IGdzaSBpbmZvIVxuIik7DQorICAgICAgICAgICAgICAgcmV0dXJuIHJldDsN
CisgICAgICAgfQ0KKw0KKyAgICAgICByZXQgPSB4ZW5fcHZoX21hcF9waXJxKCZnc2lfaW5mbyk7
DQorICAgICAgIGlmIChyZXQpIHsNCisgICAgICAgICAgICAgICB4ZW5fcmF3X3ByaW50aygiRmFp
bCB0byBtYXAgcGlycSBmb3IgZ3NpICglZCkhXG4iLCBnc2lfaW5mby5nc2kpOw0KKyAgICAgICAg
ICAgICAgIHJldHVybiByZXQ7DQorICAgICAgIH0NCisNCisgICAgICAgcmV0ID0geGVuX3B2aF9z
ZXR1cF9nc2koJmdzaV9pbmZvKTsNCisgICAgICAgaWYgKHJldCA9PSAtRUVYSVNUKSB7DQorICAg
ICAgICAgICAgICAgcmV0ID0gMDsNCisgICAgICAgICAgICAgICB4ZW5fcmF3X3ByaW50aygiQWxy
ZWFkeSBzZXR1cCB0aGUgR1NJIDoldVxuIiwgZ3NpX2luZm8uZ3NpKTsNCisgICAgICAgfSBlbHNl
IGlmIChyZXQpIHsNCisgICAgICAgICAgICAgICB4ZW5fcmF3X3ByaW50aygiRmFpbCB0byBzZXR1
cCBnc2kgKCVkKSFcbiIsIGdzaV9pbmZvLmdzaSk7DQorICAgICAgICAgICAgICAgeGVuX3B2aF91
bm1hcF9waXJxKCZnc2lfaW5mbyk7DQorICAgICAgIH0NCisNCisgICAgICAgcmV0dXJuIHJldDsN
Cit9DQorRVhQT1JUX1NZTUJPTF9HUEwoeGVuX3B2aF9wYXNzdGhyb3VnaF9nc2kpOw0KKw0KIHZv
aWQgX19pbml0IHhlbl9wdmhfaW5pdChzdHJ1Y3QgYm9vdF9wYXJhbXMgKmJvb3RfcGFyYW1zKQ0K
IHsNCiAgICAgICAgdTMyIG1zcjsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcGNpX2lycS5j
IGIvZHJpdmVycy9hY3BpL3BjaV9pcnEuYw0KaW5kZXggZmYzMGNlY2EyMjAzLi42MzBmZTBhMzRi
YzYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2FjcGkvcGNpX2lycS5jDQorKysgYi9kcml2ZXJzL2Fj
cGkvcGNpX2lycS5jDQpAQCAtMjg4LDcgKzI4OCw3IEBAIHN0YXRpYyBpbnQgYWNwaV9yZXJvdXRl
X2Jvb3RfaW50ZXJydXB0KHN0cnVjdCBwY2lfZGV2ICpkZXYsDQogfQ0KICNlbmRpZiAvKiBDT05G
SUdfWDg2X0lPX0FQSUMgKi8NCg0KLXN0YXRpYyBzdHJ1Y3QgYWNwaV9wcnRfZW50cnkgKmFjcGlf
cGNpX2lycV9sb29rdXAoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHBpbikNCitzdHJ1Y3QgYWNw
aV9wcnRfZW50cnkgKmFjcGlfcGNpX2lycV9sb29rdXAoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50
IHBpbikNCiB7DQogICAgICAgIHN0cnVjdCBhY3BpX3BydF9lbnRyeSAqZW50cnkgPSBOVUxMOw0K
ICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu
L3hlbi1wY2liYWNrL3BjaV9zdHViLmMgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1
Yi5jDQppbmRleCBlMzRiNjIzZTRiNDEuLjFhYmQ0ZGFkNmY0MCAxMDA2NDQNCi0tLSBhL2RyaXZl
cnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMNCisrKyBiL2RyaXZlcnMveGVuL3hlbi1wY2li
YWNrL3BjaV9zdHViLmMNCkBAIC0yMCw2ICsyMCw3IEBADQogI2luY2x1ZGUgPGxpbnV4L2F0b21p
Yy5oPg0KICNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+DQogI2luY2x1ZGUgPHhlbi9wY2kuaD4NCisj
aW5jbHVkZSA8eGVuL2FjcGkuaD4NCiAjaW5jbHVkZSA8eGVuL3hlbi5oPg0KICNpbmNsdWRlIDxh
c20veGVuL2h5cGVydmlzb3IuaD4NCiAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9waHlzZGV2Lmg+
DQpAQCAtMzk5LDYgKzQwMCwxMiBAQCBzdGF0aWMgaW50IHBjaXN0dWJfaW5pdF9kZXZpY2Uoc3Ry
dWN0IHBjaV9kZXYgKmRldikNCiAgICAgICAgaWYgKGVycikNCiAgICAgICAgICAgICAgICBnb3Rv
IGNvbmZpZ19yZWxlYXNlOw0KDQorICAgICAgIGlmICh4ZW5faW5pdGlhbF9kb21haW4oKSAmJiB4
ZW5fcHZoX2RvbWFpbigpKSB7DQorICAgICAgICAgICAgICAgZXJyID0geGVuX3B2aF9wYXNzdGhy
b3VnaF9nc2koZGV2KTsNCisgICAgICAgICAgICAgICBpZiAoZXJyKQ0KKyAgICAgICAgICAgICAg
ICAgICAgICAgZ290byBjb25maWdfcmVsZWFzZTsNCisgICAgICAgfQ0KKw0KICAgICAgICBpZiAo
ZGV2LT5tc2l4X2NhcCkgew0KICAgICAgICAgICAgICAgIHN0cnVjdCBwaHlzZGV2X3BjaV9kZXZp
Y2UgcHBkZXYgPSB7DQogICAgICAgICAgICAgICAgICAgICAgICAuc2VnID0gcGNpX2RvbWFpbl9u
cihkZXYtPmJ1cyksDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hY3BpLmggYi9pbmNsdWRl
L2xpbnV4L2FjcGkuaA0KaW5kZXggNjQxZGM0ODQzOTg3Li4zNjhkNTZiYTJjNWUgMTAwNjQ0DQot
LS0gYS9pbmNsdWRlL2xpbnV4L2FjcGkuaA0KKysrIGIvaW5jbHVkZS9saW51eC9hY3BpLmgNCkBA
IC0zNzUsNiArMzc1LDcgQEAgdm9pZCBhY3BpX3VucmVnaXN0ZXJfZ3NpICh1MzIgZ3NpKTsNCg0K
IHN0cnVjdCBwY2lfZGV2Ow0KDQorc3RydWN0IGFjcGlfcHJ0X2VudHJ5ICphY3BpX3BjaV9pcnFf
bG9va3VwKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwaW4pOw0KIGludCBhY3BpX3BjaV9pcnFf
ZW5hYmxlIChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsNCiB2b2lkIGFjcGlfcGVuYWxpemVfaXNhX2ly
cShpbnQgaXJxLCBpbnQgYWN0aXZlKTsNCiBib29sIGFjcGlfaXNhX2lycV9hdmFpbGFibGUoaW50
IGlycSk7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vYWNwaS5oIGIvaW5jbHVkZS94ZW4vYWNw
aS5oDQppbmRleCBiMWUxMTg2MzE0NGQuLmNlN2Y1NTU0Zjg4ZSAxMDA2NDQNCi0tLSBhL2luY2x1
ZGUveGVuL2FjcGkuaA0KKysrIGIvaW5jbHVkZS94ZW4vYWNwaS5oDQpAQCAtNjcsNiArNjcsNyBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2FjcGlfc2xlZXBfcmVnaXN0ZXIodm9pZCkNCiAgICAg
ICAgICAgICAgICBhY3BpX3N1c3BlbmRfbG93bGV2ZWwgPSB4ZW5fYWNwaV9zdXNwZW5kX2xvd2xl
dmVsOw0KICAgICAgICB9DQogfQ0KK2ludCB4ZW5fcHZoX3Bhc3N0aHJvdWdoX2dzaShzdHJ1Y3Qg
cGNpX2RldiAqZGV2KTsNCiAjZWxzZQ0KIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fYWNwaV9zbGVl
cF9yZWdpc3Rlcih2b2lkKQ0KIHsNCg0KPiANCj4gSmFuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0K
SmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 06:12:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 06:12:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648888.1012914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAl8q-0001vv-JE; Wed, 06 Dec 2023 06:12:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648888.1012914; Wed, 06 Dec 2023 06:12: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 1rAl8q-0001vm-GS; Wed, 06 Dec 2023 06:12:16 +0000
Received: by outflank-mailman (input) for mailman id 648888;
 Wed, 06 Dec 2023 06:12: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 1rAl8p-0001vV-9C; Wed, 06 Dec 2023 06:12: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 1rAl8p-0000P5-6q; Wed, 06 Dec 2023 06:12: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 1rAl8o-0001NW-PC; Wed, 06 Dec 2023 06:12:14 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAl8o-0004GR-Ol; Wed, 06 Dec 2023 06:12: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=VqkMCVa08cx2eqZEyzwRkrClcBjrb3eklj/aAQRGSXc=; b=CWe8f+r8Nh/K71vneUKkdrlLXH
	buliFJ0NoqGTGMgVekX6jmQpTfBLt86nRb+7nMm1KEHxnr81atmnZg1FJiDQYy2WXZ09jJo3xDlPo
	AB1ImbvEsyvJMbcLqvE+zWHaymg+w7zn+Hgq9MLo7FE1DxmYZsRCFw4Lkb9ZLgtRHZYw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-183996-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 183996: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-unstable:test-amd64-i386-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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-amd64-amd64-libvirt: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-amd64-amd64-libvirt-vhd:migrate-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-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=ff1178062094837d55ef342070e58316c43a54c9
X-Osstest-Versions-That:
    xen=525c7c094b258e8a46b494488eef96f5670eb352
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 06:12:14 +0000

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

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 183990
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183990
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183990
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183990
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183990
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183990
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183990
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183990
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183990
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183990
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183990
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183990
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-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-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-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-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-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     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
 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-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  ff1178062094837d55ef342070e58316c43a54c9
baseline version:
 xen                  525c7c094b258e8a46b494488eef96f5670eb352

Last test of basis   183990  2023-12-05 01:55:39 Z    1 days
Testing same since   183996  2023-12-05 16:10:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Henry Wang <Henry.Wang@arm.com> # CHANGELOG
  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>
  Simone Ballarin  <simone.ballarin@bugseng.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   525c7c094b..ff11780620  ff1178062094837d55ef342070e58316c43a54c9 -> master


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 06:14:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 06:14:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648894.1012932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAlAw-0002Zu-4Z; Wed, 06 Dec 2023 06:14:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648894.1012932; Wed, 06 Dec 2023 06:14:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAlAw-0002Zn-1M; Wed, 06 Dec 2023 06:14:26 +0000
Received: by outflank-mailman (input) for mailman id 648894;
 Wed, 06 Dec 2023 06:14: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=sruh=HR=bombadil.srs.infradead.org=BATV+2d31c4bdfe93494595b7+7409+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rAlAu-0002Zh-TE
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 06:14:24 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b32086b1-93fe-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 07:14:24 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rAlAW-009B0t-1J; Wed, 06 Dec 2023 06:14: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: b32086b1-93fe-11ee-98e5-6d05b1d4d9a1
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=4/ZwiAtDqcKncE9Sxs1fDYOC2BzoaQU34ADFgY4TSSs=; b=ZSLgTwnreLOPqcun4IeSE9ItZu
	PnTWx9UHdSzDOMw03zhM4iJWbD050LQsUFBy4f4oO/I2CEfLxgu6VKI/48QpINdzGnuBN/4jhcnWn
	T6OU37rwGxHJqPa/Z53FU9Yr3Z/lHh82wcz4yXLaNizP/+ST3MBO3FUnRt49dArLwuH65rXSylY7S
	NM9uVZ0jYQFEdnnGM7iibI2Uo0n82j5ujsUAs74TacZS+egwtqhpWfEnDXYYMvxse9S8X7lLVbUAE
	/Uc2UOgBsAQP0Wf1EQ01B4RrecJ+UvN+DuxFci/PVUUXzcCfKe+xsAO/GPTkS0EmtvxKJn5csRJAc
	38PBAwUg==;
Date: Tue, 5 Dec 2023 22:14:00 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org,
	chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
	agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
	willy@infradead.org, akpm@linux-foundation.org, hare@suse.de,
	p.raghav@samsung.com, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH -next RFC 01/14] block: add some bdev apis
Message-ID: <ZXARKD0OmjLrvHmU@infradead.org>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-2-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205123728.1866699-2-yukuai1@huaweicloud.com>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

> +void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
> +			   pgoff_t end)
> +{
> +	invalidate_mapping_pages(bdev->bd_inode->i_mapping, start, end);
> +}
> +EXPORT_SYMBOL_GPL(invalidate_bdev_range);

All these could probably use kerneldoc comments.

For this one I really don't like it existing at all, but we'll have to
discuss that in the btrfs patch.

> +loff_t bdev_size(struct block_device *bdev)
> +{
> +	loff_t size;
> +
> +	spin_lock(&bdev->bd_size_lock);
> +	size = i_size_read(bdev->bd_inode);
> +	spin_unlock(&bdev->bd_size_lock);
> +
> +	return size;
> +}
> +EXPORT_SYMBOL_GPL(bdev_size);

No need for this one.  The callers can simply use bdev_nr_bytes.

> +struct folio *bdev_read_folio(struct block_device *bdev, pgoff_t index)
> +{
> +	return read_mapping_folio(bdev->bd_inode->i_mapping, index, NULL);
> +}
> +EXPORT_SYMBOL_GPL(bdev_read_folio);
> +
> +struct folio *bdev_read_folio_gfp(struct block_device *bdev, pgoff_t index,
> +				  gfp_t gfp)
> +{
> +	return mapping_read_folio_gfp(bdev->bd_inode->i_mapping, index, gfp);
> +}
> +EXPORT_SYMBOL_GPL(bdev_read_folio_gfp);

I think we can just drop bdev_read_folio_gfp. Half of the callers simply
pass GPK_KERNEL, and the other half passes GFP_NOFS and could just use
memalloc_nofs_save().

> +void bdev_balance_dirty_pages_ratelimited(struct block_device *bdev)
> +{
> +	return balance_dirty_pages_ratelimited(bdev->bd_inode->i_mapping);
> +}
> +EXPORT_SYMBOL_GPL(bdev_balance_dirty_pages_ratelimited);

Hmm, this is just used for block2mtd, and feels a little too low-level
to me, as block2mtd really should be using the normal fileread/write
APIs.  I guess we'll have to live with it for now if we want to expedite
killing off bd_inode.

> +void bdev_correlate_mapping(struct block_device *bdev,
> +			    struct address_space *mapping)
> +{
> +	mapping->host = bdev->bd_inode;
> +}
> +EXPORT_SYMBOL_GPL(bdev_correlate_mapping);

Maybe associated insted of correlate?  Either way this basically
fully exposes the bdev inode again :(

> +gfp_t bdev_gfp_constraint(struct block_device *bdev, gfp_t gfp)
> +{
> +	return mapping_gfp_constraint(bdev->bd_inode->i_mapping, gfp);
> +}
> +EXPORT_SYMBOL_GPL(bdev_gfp_constraint);

The right fix here is to:

 - use memalloc_nofs_save in extet instead of using
   mapping_gfp_constraint to clear it from the mapping flags
 - remove __ext4_sb_bread_gfp and just have buffer.c helper that does
   the right thing (either by changing the calling conventions of an
   existing one, or adding a new one).

> +/*
> + * The del_gendisk() function uninitializes the disk-specific data
> + * structures, including the bdi structure, without telling anyone
> + * else.  Once this happens, any attempt to call mark_buffer_dirty()
> + * (for example, by ext4_commit_super), will cause a kernel OOPS.
> + * This is a kludge to prevent these oops until we can put in a proper
> + * hook in del_gendisk() to inform the VFS and file system layers.
> + */
> +int bdev_ejected(struct block_device *bdev)
> +{
> +	struct backing_dev_info *bdi = inode_to_bdi(bdev->bd_inode);
> +
> +	return bdi->dev == NULL;
> +}
> +EXPORT_SYMBOL_GPL(bdev_ejected);

And this code in ext4 should just go away entirely.  The bdi should
always be valid for a live bdev for years.

> --- a/block/bio.c
> +++ b/block/bio.c
> @@ -1119,6 +1119,7 @@ void bio_add_folio_nofail(struct bio *bio, struct folio *folio, size_t len,
>  	WARN_ON_ONCE(off > UINT_MAX);
>  	__bio_add_page(bio, &folio->page, len, off);
>  }
> +EXPORT_SYMBOL_GPL(bio_add_folio_nofail);

How is this realted?  The export is fine, but really should be a
separate, well-documented commit.

>  
> +static inline u8 block_bits(struct block_device *bdev)
> +{
> +	return bdev->bd_inode->i_blkbits;
> +}

Not sure we should need this.  i_blkbits comes from the blocksize
the fs set, so it should have other ways to get at it.


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 06:37:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 06:37:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648899.1012943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAlXK-0006f0-Vs; Wed, 06 Dec 2023 06:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648899.1012943; Wed, 06 Dec 2023 06:37:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAlXK-0006et-Rb; Wed, 06 Dec 2023 06:37:34 +0000
Received: by outflank-mailman (input) for mailman id 648899;
 Wed, 06 Dec 2023 06:37:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rTNE=HR=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rAlXJ-0006em-GH
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 06:37:33 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20601.outbound.protection.outlook.com
 [2a01:111:f400:7e8b::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed9b9b9a-9401-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 07:37:30 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS7PR12MB6007.namprd12.prod.outlook.com (2603:10b6:8:7e::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Wed, 6 Dec
 2023 06:37:26 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.034; Wed, 6 Dec 2023
 06:37: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: ed9b9b9a-9401-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oFlM1Cil31c3xzIeC/a3JkCTGNsCTkZ0lyxZIdKHsyaesI8oxoNskUTSo4CL+iqBkniyK+Urn2uMzKAKujKPrUuoh+ODbmABMta47SK/lXE2RU/jcxOOGvB2jSKCHgQunHqusnlytd1TUZ2X39yHn8IVsLwzXjdyJdIKPTQ5zd0dgabHoFwxBIJ/drQ0w+dBp9LuEOtEO+JTIxV6YpCQKUrLdqV/XMZtVg8Vm5clNXbR501rSdwQuXFkUhR/hPLK/jbXQBm3VzS6/QQ3jDJ5aBYcTsZFxhOIkuG9JZMuKP6KYJFPpaLf5VyYLqhAatLcuRdN/zbdsZEJED/VVNMOLA==
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=k+7ROP0NuvX80up+nKqC5tUaPngGETCucybdsSYiwgk=;
 b=A1axZGpLrLawJYqf3p1m/4kVGeAVb6kWJw7NPRJ4lR3KRGBlS/GKZVJhPGj8lQXIcDp3xtE3y6pWruJixIUtjunRXnHvtlitvbQrcyLJ0ykpPDDfE6WG+pKdf0zKuUJiVbp4KkeInKka0IWlIRBAVknURifNmVCaiivHkmryyVlkoYD2ReNfx+/xpMLNZcnuKn3QvHliitvOrGlK6euE7m3VnvnQHdb1V4fp/DzvIRZaSk65WNEtvpyQKHfpnzJ9u9kQJZxoSMjDaZh7pjQoTd1x/FyHEktTkz8cL/j60LFST3Fixh40i7yFg53D/O5G7i9gzH0XRnBEynRwcUhxRQ==
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=k+7ROP0NuvX80up+nKqC5tUaPngGETCucybdsSYiwgk=;
 b=mW3FZiMkGg1znq9USfCvN2pyHZxxQ+7lCGxhySUofPlK78MZzzN1JkmxqvbcpMXk4NlI/smCof8SW45g+Xq8cpGkup0O8v972N4WTj5VvpHboYsvwU0CyzZkn16RAbciIBqCLDD3NIZxHA762nyRUKuDMcGYMSqB58i9givyc4o=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Thomas Gleixner <tglx@linutronix.de>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: Juergen Gross <jgross@suse.com>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len
 Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, "Stabellini,
 Stefano" <stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Topic: [RFC KERNEL PATCH v2 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Index: AQHaHsGaWb8EJvAynUiF4JhdQXSstLCY0coAgACRkoCAAFGagIABR00AgAFl/QA=
Date: Wed, 6 Dec 2023 06:37:25 +0000
Message-ID:
 <BL1PR12MB58495E0ED6706CAF0873608AE784A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-2-Jiqian.Chen@amd.com> <87edg2xuu9.ffs@tglx>
 <BL1PR12MB5849F2E24E00BF7B20A0B4A6E786A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <alpine.DEB.2.22.394.2312041331210.110490@ubuntu-linux-20-04-desktop>
 <87fs0gwpj5.ffs@tglx>
In-Reply-To: <87fs0gwpj5.ffs@tglx>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA0PR12MB8351.namprd12.prod.outlook.com
 (15.20.7091.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_|DS7PR12MB6007:EE_
x-ms-office365-filtering-correlation-id: 2c3ce1cb-69b0-42df-be43-08dbf625cf73
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 dTt3AI2Q85npelKW1e6sNPSn/oU1rhCB+GwTz5Yi0NQ/aFDrM4alCVchfHQUzUx2P2zSMFQ2AALk/TGc9ZdzzawzXfc+2j0ONbxFtg/5pHbkiXrv2wNVa0VImO/wEm/mbQGEOiOcLb8oF/QuASsEROk9cqJ4KpXZ39ASNzY6eJO7puBgfCs/lV4e9Dy7JkkGuGy8csOhB++VfX78ceuYi/UmfbVwn3QNgBrlH8QAbv8BQbTv4O6lZa18YAt8QG1pskHbw9dPyKaDqtK3/AlWhS7+0W0AkaG4gNKEDOVIA6kN/hqPEYG9oog9RYEtTRgR6FwAu6Vx2v5jqZbRAkb4N4+GGLMf20+KUlpRvcAegf2TbaUuLL4rbPvgIPWqeBdPu2Z2DoMq4DUw6EoYKC5jPN+V4Zui3n6Ev1qGpZ6fn1lCbpXAXnnoVY8W66YIbmOPxIQz2Q+WDENxlgizflDVeWIHNxMu+KCfn1p8HaD3KOQ3nGQ+wXSeXc8qrERmryzlV3kFQke/3tB03sn7G9ehz0PuaZ5C05nt5nHEPGW3cO69ynCitmbAR6zwqAnv/TUx/ZXx1VrHAZIqLfcM+A1BEUTmoVXAyxic9UZp3r7+GZJU+3xewCKORZYDatyph1PD
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:(13230031)(346002)(136003)(396003)(366004)(39860400002)(376002)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(55016003)(26005)(122000001)(33656002)(38100700002)(7696005)(38070700009)(83380400001)(6506007)(7416002)(52536014)(5660300002)(53546011)(298455003)(9686003)(66946007)(66556008)(4326008)(8936002)(71200400001)(316002)(66446008)(54906003)(110136005)(64756008)(76116006)(2906002)(8676002)(41300700001)(478600001)(66476007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?a3ozRFY1N1FTUkU1SzQxbXBFaVo4R1VlV3REdTJHbWF4MUV1UHRoSjZsb3VN?=
 =?utf-8?B?d0xDTG5sYU5vVE1BOWFRekdZNUR0bFpXQnBnMithdklHOFJXQmE5djZ2M1p1?=
 =?utf-8?B?SjYza0dHbXI3U1dLdFJIdDJjazBmUXNkekoyS1NDQS9hcVZ6RjUwemQxTUlR?=
 =?utf-8?B?U2JmamttYkhpOGdyM09xbWlpclQ3c3NHSjJrWW9HRDQ1L0JJWFZaN2ZUZUli?=
 =?utf-8?B?NkdkWER2ZkZRM0s4ajZQb0hvMXdSSzE0RGE2bmVNNDBVTk5yeC9HZWo1Vklu?=
 =?utf-8?B?NGxZYVZLRzZORTdkbVl5WlIxa3JNNEJiU0RsWXRkZmlGSWFiV2pDa3hYVkI3?=
 =?utf-8?B?VmpaMi9ITHVOV1g3SXlYUGhRQ0loalBleEx5dmh4bDIyczVtSTY2akpMamdq?=
 =?utf-8?B?dWd1WWdvRTUzQmlqdEhpU3llY2I4NVRMZnVGTXJjRjMxbzdnSTNBQitKaE1q?=
 =?utf-8?B?amRpdkt1ZHJ4S2Q2QUNCRVRvOWhjWHM0cnpLMjhsUVRuNVd6dGJQazZmNWlG?=
 =?utf-8?B?T3ZtQnYvcVl3UU9YdDlORTcrZDNlV0hYWmhFNnJZU3lRSXdXdGsxY24yTmhQ?=
 =?utf-8?B?K0Fsem90T0lYSVhodldVd2lzcFJMWm8rbndzZE1ENVF4RVdYbStxakhVK0Z3?=
 =?utf-8?B?ek5nL2QxOTFncXBjYklmcHhnR0ZPcHR4ZnZQYlZyVlpaTHI0TFNQKzFqYW5E?=
 =?utf-8?B?SllCbm5xbjI5RjVEbFpmc29vZzlmT0pHT1puTnI2aFArMlVYMUNpbkg4bnFD?=
 =?utf-8?B?d21EdXRuRkFONVIrQWtleXFQeVNYUmpVQWlpMG9WaFVla0owL0xBbFRRRUFz?=
 =?utf-8?B?R2UxbExpSUpjMTBiOElDcVlzMjNDZGlVM3krRWJmcWwybUR4K251d3ovUjY4?=
 =?utf-8?B?bGtpRjRoQ0hscmhKUTNYKzVtNzJzdE1LczVsVkJZYi91UGhMWXJCdHl6Mnpv?=
 =?utf-8?B?R1NLVjZvMks0c3JNZlFmQWFUU0tkRDRKbnNzU3BrdlVWdWY1bmRSNk1IT3lG?=
 =?utf-8?B?YmVXOG11K05BdnI4TTRQRU5qQURabUVXODdwb3pDVjc2QnJNcjQwZUNYby9s?=
 =?utf-8?B?aUllczhiVmZkajZYZFYrSzcxSnFrbmZEakJCVW9tTDlwYXpFT1JGNFpEQnJv?=
 =?utf-8?B?VVdZNVhySGdhN3JHYmgxTFdZdEFWbGxXZElmYXBRcG1sNVZ6cVI4MnB3dWtv?=
 =?utf-8?B?eFluMWJpRy8zNWZ5TWtGSDA4aG5FVmZKTlRKMnlrbFo3M20yT2lyajRZYkVD?=
 =?utf-8?B?YlVEaVhSaFRyeTAwemJja25MamhZejJQT3c3bSt3cnpFeVo1K3liK0dWUXl6?=
 =?utf-8?B?Y2dGR0QwVmNXV3Fmc3daSks5SFB2ZWZYc2VwZDVNUUVYQXdsZ3YrK1QzTEZm?=
 =?utf-8?B?cFdzandydUFVR0RFYk00ZThKR1NVOStrd1d3U2RXVGUyb2RZbDJ2eS8yT0Qr?=
 =?utf-8?B?RERPWGUwWTAyTXRJOGZIRFVFcWZyY0ZUcTAyd1VsSU4zY1lhZm01NkpCbFNH?=
 =?utf-8?B?b1lCbTIxVGZrTy9nUlRpUFVJQ2FjN1lRbkxGYmt5OHpKblNzR3FzbGIvb0Mw?=
 =?utf-8?B?R1VYWGxmZFpORE5GT21OaGFTRk5uaGF3MGRIanZmNjFKb3lMYmZGTmIwRTVI?=
 =?utf-8?B?bUVLTGhDQVFnemVpdWgyZUI4UHZHaTBac1ViT2ZBV3I1MGN3eFNXMnlSc3F4?=
 =?utf-8?B?T1lFL1gxQTc5UVpTU3Rqb3F3dXc1ME1jQlBGdm9PVkVzU2RvaTJrcWNXRURQ?=
 =?utf-8?B?UnlxaXdSV1BGWWtYNU01SWxodW1XSkRDRTRwWG5TL2tEZnFSNnlCUTl1Ujcx?=
 =?utf-8?B?K3lrZFc0Wnp3czdVQUs2Q09jYVQ0Wkdad205V1hpMXFNckI5WkNPVSttRlo4?=
 =?utf-8?B?M2lOQ2pxS3ZxMllQRGFuVmJ6QWcvSkRwM0tOdkxaRVdrc3hUZi9pSDlsVXZV?=
 =?utf-8?B?VFFmbGhUb0orL1Zjem1qQVZpUmtYZkhrK0lrNzQ3aExibmZvN2s2cFRmWDF4?=
 =?utf-8?B?Ymx2d0R0Mm96OU1DT1hsUDRlQVA1aDgzdkUxRXFFUWNhUFFEK1FRd2ZjSHhn?=
 =?utf-8?B?bFppWE5XUjAyeGRWSm5IM0JSNUQ2eG5salBZc1BlajRwemltSmRibFN3Qy9h?=
 =?utf-8?Q?wsx8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BD974A48D3EF2F4CB8C6F6BA100AA22D@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: 2c3ce1cb-69b0-42df-be43-08dbf625cf73
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2023 06:37:25.7281
 (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: 85HtkrIJF7QijUMlZQYneKZ2OSTxVt82vOgJAmceUSAGDAQpwjwoiwBaDC79k4yj4Ukym2efNpCvRbcqcC54Gw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6007

SGkgVGhvbWFzIEdsZWl4bmVyLA0KDQpPbiAyMDIzLzEyLzYgMDE6MDIsIFRob21hcyBHbGVpeG5l
ciB3cm90ZToNCj4gT24gTW9uLCBEZWMgMDQgMjAyMyBhdCAxMzozMSwgU3RlZmFubyBTdGFiZWxs
aW5pIHdyb3RlOg0KPj4gT24gTW9uLCAzIERlYyAyMDIzLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+
Pj4+PiB2cGNpIGRldmljZSBzdGF0ZSB3aGVuIGRldmljZSBpcyByZXNldCBvbiBkb20wIHNpZGUu
DQo+Pj4+Pg0KPj4+Pj4gQW5kIGNhbGwgdGhhdCBmdW5jdGlvbiBpbiBwY2lzdHViX2luaXRfZGV2
aWNlLiBCZWNhdXNlIHdoZW4NCj4+Pj4+IHdlIHVzZSAicGNpLWFzc2lnbmFibGUtYWRkIiB0byBh
c3NpZ24gYSBwYXNzdGhyb3VnaCBkZXZpY2UgaW4NCj4+Pj4+IFhlbiwgaXQgd2lsbCByZXNldCBw
YXNzdGhyb3VnaCBkZXZpY2UgYW5kIHRoZSB2cGNpIHN0YXRlIHdpbGwNCj4+Pj4+IG91dCBvZiBk
YXRlLCBhbmQgdGhlbiBkZXZpY2Ugd2lsbCBmYWlsIHRvIHJlc3RvcmUgYmFyIHN0YXRlLg0KPj4+
Pj4NCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29t
Pg0KPj4+Pj4gU2lnbmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4NCj4+
Pj4NCj4+Pj4gVGhpcyBTaWduZWQtb2ZmLWJ5IGNoYWluIGlzIGluY29ycmVjdC4NCj4+Pj4NCj4+
Pj4gRG9jdW1lbnRhdGlvbi9wcm9jZXNzL3N1Ym1pdHRpbmctcGF0Y2hlcy5yc3QgaGFzIGEgZnVs
bCBjaGFwdGVyIGFib3V0DQo+Pj4+IFMtTy1CIGFuZCB0aGUgY29ycmVjdCB1c2FnZS4NCj4+PiBJ
IGFtIHRoZSBhdXRob3Igb2YgdGhpcyBzZXJpZXMgb2YgcGF0Y2hlcywgYW5kIEh1YW5nIFJ1aSB0
cmFuc3BvcnRlZCB0aGUgdjEgdG8gdXBzdHJlYW0uIEFuZCBub3cgSSB0cmFuc3BvcnQgdjIuIEkg
YW0gbm90IGF3YXJlIHRoYXQgdGhlIFNPQiBjaGFpbiBpcyBpbmNvcnJlY3QuDQo+Pj4gRG8geW91
IGhhdmUgYW55IHN1Z2dlc3Rpb25zPw0KPj4NCj4+IEkgdGhpbmsgaGUgbWVhbnMgdGhhdCB5b3Vy
IFNpZ25lZC1vZmYtYnkgc2hvdWxkIGJlIHRoZSBzZWNvbmQgb25lIG9mIHRoZQ0KPj4gdHdvIGFz
IHlvdSBhcmUgdGhlIG9uZSBzdWJtaXR0aW5nIHRoZSBwYXRjaCB0byB0aGUgTEtNTA0KPiANCj4g
Tm8uDQo+IA0KPiAgICBNYWlsZnJvbTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+
DQo+ICAgIDxib2R5Pg0KPiANCj4gICAgQ2hhbmdlbG9nLXRleHQNCj4gDQo+ICAgIFNpZ25lZC1v
ZmYtYnk6IEh1YW5nIFJ1aSA8cmF5Lmh1YW5nQGFtZC5jb20+DQo+ICAgIFNpZ25lZC1vZmYtYnk6
IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KPiANCj4gaXMgZXF1YWxseSB3cm9u
ZyBiZWNhdXNlIHRoYXQgd291bGQgZW5kIHVwIHdpdGggQ2hlbiBhcyBhdXRob3IgYW5kIEh1YW5n
DQo+IGFzIGZpcnN0IFMtTy1CIHdoaWNoIGlzIHJlcXVpcmVkIHRvIGJlIHRoZSBhdXRob3IncyBT
LU8tQg0KPiANCj4gVG8gbWFrZSB0aGUgYWJvdmUgY29ycmVjdCB0aGlzIHdvdWxkIHJlcXVpcmU6
DQo+IA0KPiAgICBNYWlsZnJvbTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+
ICAgIDxib2R5Pg0KPiANCj4gICAgRnJvbTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4N
Cj4gDQo+ICAgIENoYW5nZWxvZy10ZXh0DQo+IA0KPiAgICBTaWduZWQtb2ZmLWJ5OiBIdWFuZyBS
dWkgPHJheS5odWFuZ0BhbWQuY29tPg0KPiAgICBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8
SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4gDQo+ICAgIHdoaWNoIHRlbGxzIHRoYXQgSHVhbmcgaXMg
dGhlIGF1dGhvciBhbmQgQ2hlbiBpcyB0aGUgJ3RyYW5zcG9ydGVyJywNCj4gICAgd2hpY2ggdW5m
b3J0dW5hdGVseSBkb2VzIG5vdCByZWZsZWN0IHJlYWxpdHkuDQo+IA0KPiBPcjoNCj4gDQo+ICAg
IE1haWxmcm9tOiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4gICAgPGJvZHk+
DQo+IA0KPiAgICBDaGFuZ2Vsb2ctdGV4dA0KPiANCj4gICAgQ28tZGV2ZWxvcGVkLWJ5OiBIdWFu
ZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0KPiAgICBTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkg
PHJheS5odWFuZ0BhbWQuY29tPg0KPiAgICBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8Smlx
aWFuLkNoZW5AYW1kLmNvbT4NCj4gDQo+ICAgIHdoaWNoIHRlbGxzIHRoYXQgQ2hlY24gaXMgdGhl
IGF1dGhvciBhbmQgSHVhbmcgY28tZGV2ZWxvcGVkIHRoZQ0KPiAgICBwYXRjaCwgd2hpY2ggbWln
aHQgYmUgdHJ1ZSBvciBub3QuDQo+IA0KPiANCj4gVjEgd2hpY2ggd2FzIHNlbnQgYnkgSHVhbmcg
aGFzIHRoZSBvcmRlcmluZyBpcyBjb3JyZWN0Og0KPiANCj4gICAgTWFpbGZyb206IEh1YW5nIFJ1
aSA8cmF5Lmh1YW5nQGFtZC5jb20+DQo+ICAgIDxib2R5Pg0KPiANCj4gICAgRnJvbTogSmlxaWFu
IENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+IA0KPiAgICBDaGFuZ2Vsb2ctdGV4dA0KPiAN
Cj4gICAgU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+
ICAgIFNpZ25lZC1vZmYtYnk6IEh1YW5nIFJ1aSA8cmF5Lmh1YW5nQGFtZC5jb20+DQo+IA0KPiAg
ICBpLmUuIENoZW4gYXV0aG9yZWQgYW5kIEh1YW5nIHRyYW5zcG9ydGVkDQo+IA0KPiBOb3cgdGhp
cyBWMiBoYXMgbm90IHJlYWxseSBtdWNoIHRvIGRvIHdpdGggVjEgYW5kIGlzIGEgbmV3DQo+IGlt
cGxlbWVudGF0aW9uIHRvIHNvbHZlIHRoZSBwcm9ibGVtLCB3aGljaCB3YXMgYXV0aG9yZWQgYnkg
Q2hlbiwgc28NCj4gSHVhbmcgaXMgbm90IGludm9sdmVkIGF0IGFsbCBpZiBJIHVuZGVyc3RhbmQg
Y29ycmVjdGx5Lg0KTm90IGV4YWN0bHksIFYyIGlzIG1vZGlmaWVkIGJhc2VkIG9uIHRoZSBWMS4g
SSBhbSB0aGUgYXV0aG9yIG9mIHRoaXMgc2VyaWVzLiBIdWFuZyBSdWkgdXBzdHJlYW0gdGhlIFYx
LCBhbmQgaGUgYWxzbyBoZWxwZWQgbWUgdG8gaW1wcm92ZSB0aGUgZmlyc3QgcGF0Y2ggb2YgdGhp
cyBWMiBzZXJpZXMuDQpNYXliZSBpbiBuZXh0IHZlcnNpb24sIGJlbG93IGlzIG1vcmUgc3VpdGFi
bGU6DQoNCkNvLWRldmVsb3BlZC1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4NClNp
Z25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KDQpXaGljaCBj
YW4gcmVmbGVjdCB0aGF0IEh1YW5nIFJ1aSBpcyBjby1kZXZlbG9wZXIsIGFuZCBJIGFtIHRoZSBh
dXRob3IgYW5kIHRoZSBsYXN0IHBlb3BsZSB0byBzZW5kIHBhdGNoZXMuDQoNCj4gDQo+IFNvIHdo
YXQgZG9lcyBoaXMgUy1PLUIgbWVhbiBoZXJlPyBOb3RoaW5nLi4uDQo+IA0KPiBJdCdzIHZlcnkg
d2VsbCBkb2N1bWVudGVkIGhvdyB0aGUgd2hvbGUgUy1PLUIgYnVzaW5lc3Mgd29ya3MgYW5kIGl0
J3MNCj4gbm90IHJlYWxseSByb2NrZXQgc2NpZW5jZSB0byBnZXQgaXQgc3RyYWlnaHQuDQo+IA0K
PiBJdCBoYXMgYSBtZWFuaW5nIGFuZCBpcyBub3QganVzdCBmb3IgZGVjb3JhdGlvbiBwdXJwb3Nl
cy4NCj4gDQo+IFRoYW5rcywNCj4gDQo+ICAgICAgICAgdGdseA0KDQotLSANCkJlc3QgcmVnYXJk
cywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 06:51:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 06:51:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648903.1012953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAlkW-0001GQ-6Z; Wed, 06 Dec 2023 06:51:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648903.1012953; Wed, 06 Dec 2023 06: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 1rAlkW-0001GJ-3T; Wed, 06 Dec 2023 06:51:12 +0000
Received: by outflank-mailman (input) for mailman id 648903;
 Wed, 06 Dec 2023 06: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=8sBq=HR=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAlkV-0001GD-AK
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 06:51:11 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2f839d0-9403-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 07:51:07 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SlSjF6218z4f3jMn
 for <xen-devel@lists.xenproject.org>; Wed,  6 Dec 2023 14:50:57 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 14EB11A0BAB
 for <xen-devel@lists.xenproject.org>; Wed,  6 Dec 2023 14:51:00 +0800 (CST)
Received: from [10.174.176.73] (unknown [10.174.176.73])
 by APP1 (Coremail) with SMTP id cCh0CgA3iA7QGXBlJV2DCw--.10265S3;
 Wed, 06 Dec 2023 14:50:59 +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: d2f839d0-9403-11ee-9b0f-b553b5be7939
Subject: Re: [PATCH -next RFC 01/14] block: add some bdev apis
To: Christoph Hellwig <hch@infradead.org>, Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
 kent.overstreet@gmail.com, joern@lazybastard.org, miquel.raynal@bootlin.com,
 richard@nod.at, vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
 hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
 jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
 josef@toxicpanda.com, dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org,
 chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
 agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
 willy@infradead.org, akpm@linux-foundation.org, hare@suse.de,
 p.raghav@samsung.com, linux-block@vger.kernel.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
 linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
 linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
 linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
 gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org, yi.zhang@huawei.com,
 yangerkun@huawei.com, "yukuai (C)" <yukuai3@huawei.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-2-yukuai1@huaweicloud.com>
 <ZXARKD0OmjLrvHmU@infradead.org>
From: Yu Kuai <yukuai1@huaweicloud.com>
Message-ID: <aafabc6e-fd98-f927-44d7-3ef76e2acaf8@huaweicloud.com>
Date: Wed, 6 Dec 2023 14:50:56 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <ZXARKD0OmjLrvHmU@infradead.org>
Content-Type: text/plain; charset=gbk; format=flowed
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgA3iA7QGXBlJV2DCw--.10265S3
X-Coremail-Antispam: 1UD129KBjvJXoWxCw4kZFWUAFyktr1fCw45KFg_yoW7Gr47pr
	yUKFy5trWDJryI9rs2qw4UAw1Iqw1ftF4xZr93A3sxA390krn2kF48Kay5Cayxtw4vkF4q
	vF4jvrW3Zr1j9rJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUU9I14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U
	JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc
	CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E
	2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV
	W8JwACjcxG0xvEwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2Y2ka
	0xkIwI1lc7I2V7IY0VAS07AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7x
	kEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E
	67AF67kF1VAFwI0_Wrv_Gr1UMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF
	4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWrJr0_
	WFyUJwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJb
	IYCTnIWIevJa73UjIFyTuYvjfUojjgUUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

Hi,

ÔÚ 2023/12/06 14:14, Christoph Hellwig Ð´µÀ:
>> +void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
>> +			   pgoff_t end)
>> +{
>> +	invalidate_mapping_pages(bdev->bd_inode->i_mapping, start, end);
>> +}
>> +EXPORT_SYMBOL_GPL(invalidate_bdev_range);
> 
> All these could probably use kerneldoc comments.

Ok, and thanks for reviewing the patchset!
> 
> For this one I really don't like it existing at all, but we'll have to
> discuss that in the btrfs patch.
> 
>> +loff_t bdev_size(struct block_device *bdev)
>> +{
>> +	loff_t size;
>> +
>> +	spin_lock(&bdev->bd_size_lock);
>> +	size = i_size_read(bdev->bd_inode);
>> +	spin_unlock(&bdev->bd_size_lock);
>> +
>> +	return size;
>> +}
>> +EXPORT_SYMBOL_GPL(bdev_size);
> 
> No need for this one.  The callers can simply use bdev_nr_bytes.

Ok, I'll replace it with bdev_nr_bytes.
> 
>> +struct folio *bdev_read_folio(struct block_device *bdev, pgoff_t index)
>> +{
>> +	return read_mapping_folio(bdev->bd_inode->i_mapping, index, NULL);
>> +}
>> +EXPORT_SYMBOL_GPL(bdev_read_folio);
>> +
>> +struct folio *bdev_read_folio_gfp(struct block_device *bdev, pgoff_t index,
>> +				  gfp_t gfp)
>> +{
>> +	return mapping_read_folio_gfp(bdev->bd_inode->i_mapping, index, gfp);
>> +}
>> +EXPORT_SYMBOL_GPL(bdev_read_folio_gfp);
> 
> I think we can just drop bdev_read_folio_gfp. Half of the callers simply
> pass GPK_KERNEL, and the other half passes GFP_NOFS and could just use
> memalloc_nofs_save().

I'm a litter confused, so there are 3 use cases:
1) use GFP_USER, default gfp from bdev_alloc.
2) use GFP_KERNEL
3) use GFP_NOFS

I understand that you're suggesting memalloc_nofs_save() to distinguish
2 and 3, but how can I distinguish 1?
> 
>> +void bdev_balance_dirty_pages_ratelimited(struct block_device *bdev)
>> +{
>> +	return balance_dirty_pages_ratelimited(bdev->bd_inode->i_mapping);
>> +}
>> +EXPORT_SYMBOL_GPL(bdev_balance_dirty_pages_ratelimited);
> 
> Hmm, this is just used for block2mtd, and feels a little too low-level
> to me, as block2mtd really should be using the normal fileread/write
> APIs.  I guess we'll have to live with it for now if we want to expedite
> killing off bd_inode.
> 
>> +void bdev_correlate_mapping(struct block_device *bdev,
>> +			    struct address_space *mapping)
>> +{
>> +	mapping->host = bdev->bd_inode;
>> +}
>> +EXPORT_SYMBOL_GPL(bdev_correlate_mapping);
> 
> Maybe associated insted of correlate?  Either way this basically
> fully exposes the bdev inode again :(
> 
>> +gfp_t bdev_gfp_constraint(struct block_device *bdev, gfp_t gfp)
>> +{
>> +	return mapping_gfp_constraint(bdev->bd_inode->i_mapping, gfp);
>> +}
>> +EXPORT_SYMBOL_GPL(bdev_gfp_constraint);
> 
> The right fix here is to:
> 
>   - use memalloc_nofs_save in extet instead of using
>     mapping_gfp_constraint to clear it from the mapping flags
>   - remove __ext4_sb_bread_gfp and just have buffer.c helper that does
>     the right thing (either by changing the calling conventions of an
>     existing one, or adding a new one).

Thanks for the suggestions, but I'm not sure how to do this yet, I must
read more ext4 code.
> 
>> +/*
>> + * The del_gendisk() function uninitializes the disk-specific data
>> + * structures, including the bdi structure, without telling anyone
>> + * else.  Once this happens, any attempt to call mark_buffer_dirty()
>> + * (for example, by ext4_commit_super), will cause a kernel OOPS.
>> + * This is a kludge to prevent these oops until we can put in a proper
>> + * hook in del_gendisk() to inform the VFS and file system layers.
>> + */
>> +int bdev_ejected(struct block_device *bdev)
>> +{
>> +	struct backing_dev_info *bdi = inode_to_bdi(bdev->bd_inode);
>> +
>> +	return bdi->dev == NULL;
>> +}
>> +EXPORT_SYMBOL_GPL(bdev_ejected);
> 
> And this code in ext4 should just go away entirely.  The bdi should
> always be valid for a live bdev for years.
Sounds good, I was confused about this code as well.

> 
>> --- a/block/bio.c
>> +++ b/block/bio.c
>> @@ -1119,6 +1119,7 @@ void bio_add_folio_nofail(struct bio *bio, struct folio *folio, size_t len,
>>   	WARN_ON_ONCE(off > UINT_MAX);
>>   	__bio_add_page(bio, &folio->page, len, off);
>>   }
>> +EXPORT_SYMBOL_GPL(bio_add_folio_nofail);
> 
> How is this realted?  The export is fine, but really should be a
> separate, well-documented commit.

This is used to replace __bio_add_page() in btrfs while converting page
to folio, please let me know if I should keep this, if so, I'll split
this into a new commit.
> 
>>   
>> +static inline u8 block_bits(struct block_device *bdev)
>> +{
>> +	return bdev->bd_inode->i_blkbits;
>> +}
> 
> Not sure we should need this.  i_blkbits comes from the blocksize
> the fs set, so it should have other ways to get at it.

Yes, this is now only used for erofs, and erofs do call
sb_set_blocksize() while initializing, hence it's right there is other
way to get blkbits and this helper is not needed.

Thanks,
Kuai

> .
> 



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 06:56:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 06:56:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648907.1012964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAlpR-0002CV-Pm; Wed, 06 Dec 2023 06:56:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648907.1012964; Wed, 06 Dec 2023 06:56: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 1rAlpR-0002CO-LP; Wed, 06 Dec 2023 06:56:17 +0000
Received: by outflank-mailman (input) for mailman id 648907;
 Wed, 06 Dec 2023 06:56: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=8sBq=HR=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rAlpQ-0002CI-7M
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 06:56:16 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89a02b55-9404-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 07:56:13 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SlSqB4ff0z4f3kKP
 for <xen-devel@lists.xenproject.org>; Wed,  6 Dec 2023 14:56:06 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id B01611A0D02
 for <xen-devel@lists.xenproject.org>; Wed,  6 Dec 2023 14:56:07 +0800 (CST)
Received: from [10.174.176.73] (unknown [10.174.176.73])
 by APP1 (Coremail) with SMTP id cCh0CgA3iA4FG3Bl+7GDCw--.10511S3;
 Wed, 06 Dec 2023 14:56:07 +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: 89a02b55-9404-11ee-98e5-6d05b1d4d9a1
Subject: Re: [PATCH -next RFC 02/14] xen/blkback: use bdev api in
 xen_update_blkif_status()
To: Christoph Hellwig <hch@infradead.org>, Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
 kent.overstreet@gmail.com, joern@lazybastard.org, miquel.raynal@bootlin.com,
 richard@nod.at, vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
 hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
 jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
 josef@toxicpanda.com, dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org,
 chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
 agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
 willy@infradead.org, akpm@linux-foundation.org, hare@suse.de,
 p.raghav@samsung.com, linux-block@vger.kernel.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
 linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
 linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
 linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
 gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org, yi.zhang@huawei.com,
 yangerkun@huawei.com, "yukuai (C)" <yukuai3@huawei.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-3-yukuai1@huaweicloud.com>
 <ZXAMwBD8pd48qwX/@infradead.org>
From: Yu Kuai <yukuai1@huaweicloud.com>
Message-ID: <783b5515-db42-c77f-62ab-050f7cc8ef5e@huaweicloud.com>
Date: Wed, 6 Dec 2023 14:56:05 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <ZXAMwBD8pd48qwX/@infradead.org>
Content-Type: text/plain; charset=gbk; format=flowed
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgA3iA4FG3Bl+7GDCw--.10511S3
X-Coremail-Antispam: 1UD129KBjvdXoW7JryDJrWDur4DGrWUZr1DZFb_yoWkGFX_Wr
	4UCrWqqr1kursYka9F9FsYy34qkFy8ZryruayIqFZIg34UWay2vrW7Xrn5CF43WayUKan0
	kF45Aa47trWrKjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbaAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w
	A2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j
	6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcVAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kI
	c2xKxwCYjI0SjxkI62AI1cAE67vIY487MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4
	AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE
	17CEb7AF67AKxVWrXVW8Jr1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCw
	CI42IY6xIIjxv20xvEc7CjxVAFwI0_Cr0_Gr1UMIIF0xvE42xK8VAvwI8IcIk0rVWrJr0_
	WFyUJwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4UJVWxJr
	UvcSsGvfC2KfnxnUUI43ZEXa7VU1VOJ5UUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

Hi,

ÔÚ 2023/12/06 13:55, Christoph Hellwig Ð´µÀ:
> On Tue, Dec 05, 2023 at 08:37:16PM +0800, Yu Kuai wrote:
>> diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c
>> index e34219ea2b05..e645afa4af57 100644
>> --- a/drivers/block/xen-blkback/xenbus.c
>> +++ b/drivers/block/xen-blkback/xenbus.c
>> @@ -104,8 +104,7 @@ static void xen_update_blkif_status(struct xen_blkif *blkif)
>>   		xenbus_dev_error(blkif->be->dev, err, "block flush");
>>   		return;
>>   	}
>> -	invalidate_inode_pages2(
>> -			blkif->vbd.bdev_handle->bdev->bd_inode->i_mapping);
>> +	invalidate_bdev(blkif->vbd.bdev_handle->bdev);
> 
> blkbak is a bdev exported.   I don't think it should ever call
> invalidate_inode_pages2, through a wrapper or not.

I'm not sure about this. I'm not familiar with xen/blkback, but I saw
that xen-blkback will open a bdev from xen_vbd_create(), hence this
looks like a dm/md for me, hence it sounds reasonable to sync +
invalidate the opened bdev while initialization. Please kindly correct
me if I'm wrong.

Thanks,
Kuai

> 
> .
> 



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:02:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:02:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648911.1012973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAlvT-0003zV-95; Wed, 06 Dec 2023 07:02:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648911.1012973; Wed, 06 Dec 2023 07:02:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAlvT-0003zO-6V; Wed, 06 Dec 2023 07:02:31 +0000
Received: by outflank-mailman (input) for mailman id 648911;
 Wed, 06 Dec 2023 07:02: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 1rAlvS-0003zE-9L; Wed, 06 Dec 2023 07:02: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 1rAlvS-0001Og-0x; Wed, 06 Dec 2023 07:02: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 1rAlvR-0002l2-KM; Wed, 06 Dec 2023 07:02:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAlvR-0007pZ-Jy; Wed, 06 Dec 2023 07:02: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=7hS19SVJJ0muZSopzMjgqZYSxSH+8EWXXXGi/RxvS4w=; b=kjDP4Kfw+RCVitLTF2pm9CWI/X
	J1shC/Di7vHElec6m5mzejqqk1tSj+kItEE8TqtKx6tqjJMc2UAMI+a+AF77WH8D3/z1l9i51e/KT
	VE0zPlimSMaBfcVYlKM9mYLcR+gM/E4F45SUSV/HEd66S8Huh2/WrnVPFMH5mp0iCMGc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184002-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184002: 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=4c6142a1ab004be132f386da3cabce07b44fac2d
X-Osstest-Versions-That:
    xen=01da0aeecd41435cea8bd2fe0f547e0a474f6e45
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 07:02:29 +0000

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

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                  4c6142a1ab004be132f386da3cabce07b44fac2d
baseline version:
 xen                  01da0aeecd41435cea8bd2fe0f547e0a474f6e45

Last test of basis   184000  2023-12-05 23:00:25 Z    0 days
Testing same since   184002  2023-12-06 02: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                                     pass    


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

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

Explanation of these reports, and of osstest in general, is at
    http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
    http://xenbits.xen.org/gitweb/?p=osstest.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
   01da0aeecd..4c6142a1ab  4c6142a1ab004be132f386da3cabce07b44fac2d -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:10:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:10:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648917.1012993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAm3W-0006Gl-AC; Wed, 06 Dec 2023 07:10:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648917.1012993; Wed, 06 Dec 2023 07:10:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAm3W-0006Ge-7K; Wed, 06 Dec 2023 07:10:50 +0000
Received: by outflank-mailman (input) for mailman id 648917;
 Wed, 06 Dec 2023 07:10: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAm3V-0006G7-3z
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:10:49 +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 9489467a-9406-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 08:10:48 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 894701FCFA;
 Wed,  6 Dec 2023 07:10:47 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 5414A13403;
 Wed,  6 Dec 2023 07:10:47 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id g5o3E3cecGW0DQAAn2gu4w
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 07:10: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: 9489467a-9406-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701846647; 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=hDGYrruK/gE8BhhPs/pNrBuUXXpG5jh9JFmDAumCt+g=;
	b=m51hq4xHjOStUdOlrveBOiBDqyvxQimVF7+n3Nu8OH1jt5A4LZeX2i/gDIhweTMkb2ZYL4
	svgUW1qdVKsMDA5VQ+gSPFfRSeMpVmf0o8QQXWUs/k+h6Ox1tT97hbyaZX6zdn3AY3ZSME
	qunVfSCC1IMDnWAYFq7FxQ5W7pOqsp0=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 1/3] xen/arm: set -mno-unaligned-access compiler option for Arm32
Date: Wed,  6 Dec 2023 08:10:37 +0100
Message-Id: <20231206071039.24435-2-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231206071039.24435-1-jgross@suse.com>
References: <20231206071039.24435-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: ****
X-Spam-Score: 4.71
X-Spamd-Result: default: False [4.71 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.19)[-0.931];
	 RCPT_COUNT_SEVEN(0.00)[7];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

As the hypervisor is disabling unaligned accesses for Arm32, set the
-mno-unaligned-access compiler option for building. This will prohibit
unaligned accesses when e.g. accessing 2- or 4-byte data items in
packed data structures.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 xen/arch/arm/arch.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 58db76c4e1..022dcda192 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -7,6 +7,7 @@ $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
 # Prevent floating-point variables from creeping into Xen.
 CFLAGS-$(CONFIG_ARM_32) += -msoft-float
 CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15
+CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
 
 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
 CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:10:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:10:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648916.1012983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAm3S-000610-49; Wed, 06 Dec 2023 07:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648916.1012983; Wed, 06 Dec 2023 07:10:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAm3S-00060t-0Z; Wed, 06 Dec 2023 07:10:46 +0000
Received: by outflank-mailman (input) for mailman id 648916;
 Wed, 06 Dec 2023 07:10: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAm3Q-00060n-Pj
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:10:44 +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 916182f3-9406-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 08:10:42 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 0904921F77;
 Wed,  6 Dec 2023 07:10:42 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id A1F7713403;
 Wed,  6 Dec 2023 07:10:41 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id nV07JnEecGWlDQAAn2gu4w
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 07:10: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: 916182f3-9406-11ee-9b0f-b553b5be7939
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 0/3] xen: have a more generic unaligned.h header
Date: Wed,  6 Dec 2023 08:10:36 +0100
Message-Id: <20231206071039.24435-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 RCVD_COUNT_THREE(0.00)[3];
	 BAYES_SPAM(0.00)[36.29%];
	 MX_GOOD(-0.01)[];
	 NEURAL_HAM_SHORT(-0.20)[-0.997];
	 RCPT_COUNT_TWELVE(0.00)[12];
	 MID_CONTAINS_FROM(1.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spamd-Bar: +++++++++++++++
X-Spam-Level: ***************
X-Rspamd-Server: rspamd1
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Queue-Id: 0904921F77
X-Spam: Yes

Update Xen's unaligned.h header to support all architectures, allowing
to remove the architecture specific variants (x86 only until now).

Changes in V2:
- new patch 1 (Julien Grall)
- adjusted patch 2 (Jan Beulich)

Juergen Gross (3):
  xen/arm: set -mno-unaligned-access compiler option for Arm32
  xen: make include/xen/unaligned.h usable on all architectures
  xen: remove asm/unaligned.h

 xen/arch/arm/arch.mk                 |  1 +
 xen/arch/x86/include/asm/unaligned.h |  6 ---
 xen/common/lz4/defs.h                |  2 +-
 xen/common/lzo.c                     |  2 +-
 xen/common/unlzo.c                   |  2 +-
 xen/common/xz/private.h              |  2 +-
 xen/common/zstd/mem.h                |  2 +-
 xen/include/xen/unaligned.h          | 77 +++++++++++++++-------------
 xen/lib/xxhash32.c                   |  2 +-
 xen/lib/xxhash64.c                   |  2 +-
 10 files changed, 50 insertions(+), 48 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/unaligned.h

-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:10:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:10:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648918.1013003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAm3d-0006cj-Kj; Wed, 06 Dec 2023 07:10:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648918.1013003; Wed, 06 Dec 2023 07:10:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAm3d-0006bh-HE; Wed, 06 Dec 2023 07:10:57 +0000
Received: by outflank-mailman (input) for mailman id 648918;
 Wed, 06 Dec 2023 07:10: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAm3b-00060n-R6
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:10:55 +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 97e5022c-9406-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 08:10:53 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 2A3BE21F77;
 Wed,  6 Dec 2023 07:10:53 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id E09BC13403;
 Wed,  6 Dec 2023 07:10:52 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id InuNNXwecGW8DQAAn2gu4w
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 07:10: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: 97e5022c-9406-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701846653; 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=01yXAXnopllhAibwtpJp62r2FPmbb38ceKEA8gzDvaI=;
	b=vNpsbNvUbt8YY4Pr4TPNJ/2yIlflCNjgdkAMtbF67MfQ3TvPMF+bS0K8sNdb+SCxryoBc3
	SM5hur8pgBJmymheTmLYRM6GVMpDCGdCsRDVp6mY6sel5WGlH77yeze89eSjAnLBvOp5A+
	NWQJ0Ahn6Wbq+pmRNOXCkv8rTZ5zbw0=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>,
	Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all architectures
Date: Wed,  6 Dec 2023 08:10:38 +0100
Message-Id: <20231206071039.24435-3-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231206071039.24435-1-jgross@suse.com>
References: <20231206071039.24435-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spamd-Result: default: False [1.70 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%]
X-Spam-Level: *
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Score: 1.70

Instead of defining get_unaligned() and put_unaligned() in a way that
is only supporting architectures allowing unaligned accesses, use the
same approach as the Linux kernel and let the compiler do the
decision how to generate the code for probably unaligned data accesses.

Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
the Linux kernel.

The generated code has been checked to be the same on x86.

Modify the Linux variant to not use underscore prefixed identifiers,
avoid unneeded parentheses and drop the 24-bit accessors.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 803f4e1eab7a
Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- drop 24-bit accessors (Jan Beulich)
- avoid underscore prefixed identifiers (Jan Beulich)
- drop unneeded parentheses (Jan Beulich)
---
 xen/include/xen/unaligned.h | 77 ++++++++++++++++++++-----------------
 1 file changed, 42 insertions(+), 35 deletions(-)

diff --git a/xen/include/xen/unaligned.h b/xen/include/xen/unaligned.h
index 0a2b16d05d..0ceb06a2bb 100644
--- a/xen/include/xen/unaligned.h
+++ b/xen/include/xen/unaligned.h
@@ -1,12 +1,4 @@
-/*
- * This header can be used by architectures where unaligned accesses work
- * without faulting, and at least reasonably efficiently.  Other architectures
- * will need to have a custom asm/unaligned.h.
- */
-#ifndef __ASM_UNALIGNED_H__
-#error "xen/unaligned.h should not be included directly - include asm/unaligned.h instead"
-#endif
-
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef __XEN_UNALIGNED_H__
 #define __XEN_UNALIGNED_H__
 
@@ -15,67 +7,82 @@
 #include <asm/byteorder.h>
 #endif
 
-#define get_unaligned(p) (*(p))
-#define put_unaligned(val, p) (*(p) = (val))
+/*
+ * This is the most generic implementation of unaligned accesses
+ * and should work almost anywhere.
+ */
+
+#define get_unaligned_t_(type, ptr) ({					\
+	const struct { type x; } __packed *ptr_ = (typeof(ptr_))(ptr);	\
+	ptr_->x;							\
+})
+
+#define put_unaligned_t_(type, val, ptr) do {				\
+	struct { type x; } __packed *ptr_ = (typeof(ptr_))(ptr);	\
+	ptr_->x = val;							\
+} while (0)
+
+#define get_unaligned(ptr)	get_unaligned_t_(typeof(*(ptr)), ptr)
+#define put_unaligned(val, ptr) put_unaligned_t_(typeof(*(ptr)), val, ptr)
 
-static inline uint16_t get_unaligned_be16(const void *p)
+static inline u16 get_unaligned_le16(const void *p)
 {
-	return be16_to_cpup(p);
+	return le16_to_cpu(get_unaligned_t_(__le16, p));
 }
 
-static inline void put_unaligned_be16(uint16_t val, void *p)
+static inline u32 get_unaligned_le32(const void *p)
 {
-	*(__force __be16*)p = cpu_to_be16(val);
+	return le32_to_cpu(get_unaligned_t_(__le32, p));
 }
 
-static inline uint32_t get_unaligned_be32(const void *p)
+static inline u64 get_unaligned_le64(const void *p)
 {
-	return be32_to_cpup(p);
+	return le64_to_cpu(get_unaligned_t_(__le64, p));
 }
 
-static inline void put_unaligned_be32(uint32_t val, void *p)
+static inline void put_unaligned_le16(u16 val, void *p)
 {
-	*(__force __be32*)p = cpu_to_be32(val);
+	put_unaligned_t_(__le16, cpu_to_le16(val), p);
 }
 
-static inline uint64_t get_unaligned_be64(const void *p)
+static inline void put_unaligned_le32(u32 val, void *p)
 {
-	return be64_to_cpup(p);
+	put_unaligned_t_(__le32, cpu_to_le32(val), p);
 }
 
-static inline void put_unaligned_be64(uint64_t val, void *p)
+static inline void put_unaligned_le64(u64 val, void *p)
 {
-	*(__force __be64*)p = cpu_to_be64(val);
+	put_unaligned_t_(__le64, cpu_to_le64(val), p);
 }
 
-static inline uint16_t get_unaligned_le16(const void *p)
+static inline u16 get_unaligned_be16(const void *p)
 {
-	return le16_to_cpup(p);
+	return be16_to_cpu(get_unaligned_t_(__be16, p));
 }
 
-static inline void put_unaligned_le16(uint16_t val, void *p)
+static inline u32 get_unaligned_be32(const void *p)
 {
-	*(__force __le16*)p = cpu_to_le16(val);
+	return be32_to_cpu(get_unaligned_t_(__be32, p));
 }
 
-static inline uint32_t get_unaligned_le32(const void *p)
+static inline u64 get_unaligned_be64(const void *p)
 {
-	return le32_to_cpup(p);
+	return be64_to_cpu(get_unaligned_t_(__be64, p));
 }
 
-static inline void put_unaligned_le32(uint32_t val, void *p)
+static inline void put_unaligned_be16(u16 val, void *p)
 {
-	*(__force __le32*)p = cpu_to_le32(val);
+	put_unaligned_t_(__be16, cpu_to_be16(val), p);
 }
 
-static inline uint64_t get_unaligned_le64(const void *p)
+static inline void put_unaligned_be32(u32 val, void *p)
 {
-	return le64_to_cpup(p);
+	put_unaligned_t_(__be32, cpu_to_be32(val), p);
 }
 
-static inline void put_unaligned_le64(uint64_t val, void *p)
+static inline void put_unaligned_be64(u64 val, void *p)
 {
-	*(__force __le64*)p = cpu_to_le64(val);
+	put_unaligned_t_(__be64, cpu_to_be64(val), p);
 }
 
 #endif /* __XEN_UNALIGNED_H__ */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:11:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648920.1013012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAm3i-00070a-Rz; Wed, 06 Dec 2023 07:11:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648920.1013012; Wed, 06 Dec 2023 07:11: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 1rAm3i-00070Q-PF; Wed, 06 Dec 2023 07:11:02 +0000
Received: by outflank-mailman (input) for mailman id 648920;
 Wed, 06 Dec 2023 07:11:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAm3g-00060n-S8
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:11:00 +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 9b29a53f-9406-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 08:10:59 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 BE63E2204F;
 Wed,  6 Dec 2023 07:10:58 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 803D313403;
 Wed,  6 Dec 2023 07:10:58 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id b10THoIecGXBDQAAn2gu4w
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 07:10: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: 9b29a53f-9406-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701846658; 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=nBJS0i1q7hgxVXtg1Vp5RKK5sLWDTbrts9y24YukrYE=;
	b=HR63ul8yT+EJqnAwoqbVk3X445lU7ddHYJOHoc4xi2mYQ4Jd+qq1qCAPethfwYZqQAoIv4
	ajGVGSbdXZ+CzlZZAlbQr82EbhsXgY+CDdHOt06klZ3XtiNNkM0ta1DhSD/KvKqwPAiGPZ
	WQnA8Q+fkAjohkNWdn1455hcQiRUs5w=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 3/3] xen: remove asm/unaligned.h
Date: Wed,  6 Dec 2023 08:10:39 +0100
Message-Id: <20231206071039.24435-4-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231206071039.24435-1-jgross@suse.com>
References: <20231206071039.24435-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spamd-Result: default: False [9.80 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Level: *********
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Score: 9.80

With include/xen/unaligned.h now dealing properly with unaligned
accesses for all architectures, asm/unaligned.h can be removed and
users can be switched to include xen/unaligned.h instead.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/include/asm/unaligned.h | 6 ------
 xen/common/lz4/defs.h                | 2 +-
 xen/common/lzo.c                     | 2 +-
 xen/common/unlzo.c                   | 2 +-
 xen/common/xz/private.h              | 2 +-
 xen/common/zstd/mem.h                | 2 +-
 xen/lib/xxhash32.c                   | 2 +-
 xen/lib/xxhash64.c                   | 2 +-
 8 files changed, 7 insertions(+), 13 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/unaligned.h

diff --git a/xen/arch/x86/include/asm/unaligned.h b/xen/arch/x86/include/asm/unaligned.h
deleted file mode 100644
index 6070801d4a..0000000000
--- a/xen/arch/x86/include/asm/unaligned.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_UNALIGNED_H__
-#define __ASM_UNALIGNED_H__
-
-#include <xen/unaligned.h>
-
-#endif /* __ASM_UNALIGNED_H__ */
diff --git a/xen/common/lz4/defs.h b/xen/common/lz4/defs.h
index 10609f5a53..6d81113266 100644
--- a/xen/common/lz4/defs.h
+++ b/xen/common/lz4/defs.h
@@ -10,7 +10,7 @@
 
 #ifdef __XEN__
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u16 get_unaligned_le16(const void *p)
diff --git a/xen/common/lzo.c b/xen/common/lzo.c
index a87c76dded..cc03f0f554 100644
--- a/xen/common/lzo.c
+++ b/xen/common/lzo.c
@@ -97,7 +97,7 @@
 #ifdef __XEN__
 #include <xen/lib.h>
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 #define get_unaligned_le16(_p) (*(u16 *)(_p))
 #endif
diff --git a/xen/common/unlzo.c b/xen/common/unlzo.c
index 74056778eb..bdcefa95b3 100644
--- a/xen/common/unlzo.c
+++ b/xen/common/unlzo.c
@@ -34,7 +34,7 @@
 
 #ifdef __XEN__
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u16 get_unaligned_be16(const void *p)
diff --git a/xen/common/xz/private.h b/xen/common/xz/private.h
index e6814250e8..2299705378 100644
--- a/xen/common/xz/private.h
+++ b/xen/common/xz/private.h
@@ -13,7 +13,7 @@
 #ifdef __XEN__
 #include <xen/kernel.h>
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u32 get_unaligned_le32(const void *p)
diff --git a/xen/common/zstd/mem.h b/xen/common/zstd/mem.h
index 2acae6a8ed..ae1e305126 100644
--- a/xen/common/zstd/mem.h
+++ b/xen/common/zstd/mem.h
@@ -23,7 +23,7 @@
 #ifdef __XEN__
 #include <xen/string.h> /* memcpy */
 #include <xen/types.h>  /* size_t, ptrdiff_t */
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #endif
 
 /*-****************************************
diff --git a/xen/lib/xxhash32.c b/xen/lib/xxhash32.c
index e8d403e5ce..32efa651c5 100644
--- a/xen/lib/xxhash32.c
+++ b/xen/lib/xxhash32.c
@@ -42,7 +42,7 @@
 #include <xen/errno.h>
 #include <xen/string.h>
 #include <xen/xxhash.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 
 /*-*************************************
  * Macros
diff --git a/xen/lib/xxhash64.c b/xen/lib/xxhash64.c
index 481e76fbcf..1858e236fe 100644
--- a/xen/lib/xxhash64.c
+++ b/xen/lib/xxhash64.c
@@ -43,7 +43,7 @@
 #include <xen/errno.h>
 #include <xen/string.h>
 #include <xen/xxhash.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #endif
 
 /*-*************************************
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:15:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:15:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648930.1013023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAm7p-0008Ii-DP; Wed, 06 Dec 2023 07:15:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648930.1013023; Wed, 06 Dec 2023 07:15:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAm7p-0008Ib-AB; Wed, 06 Dec 2023 07:15:17 +0000
Received: by outflank-mailman (input) for mailman id 648930;
 Wed, 06 Dec 2023 07:15: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAm7n-0008IV-PV
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:15:15 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3364bc6d-9407-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 08:15:14 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c032962c5so49577735e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 23:15:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fk14-20020a05600c0cce00b0040b2a52ecaasm24961745wmb.2.2023.12.05.23.15.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 23:15:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3364bc6d-9407-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701846914; x=1702451714; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=tsUrV2TsEnAnqqlFfFUF9DdBZ35EFK56xyRvjdTs+QI=;
        b=PtJ1FT+SOPtdKAGV0g//fVdfvxyX7/2jkFtaclaSV0bFk5JftzIGCWcOxl8BcjWv3a
         /md8fVOnp5fl/B7bIL4AicPQBNeBl+2IRR3CZ2Cv5oSU/SOEstAwiaqnzwJMoveDLfAj
         oTRoesBHYLQQWgj5OjTXxGKFuzL10ovZ+I7CR87TL2SG6TTWbu04ZS7p1h0fcrUVyXJP
         9bP9Mc9kwKyLHtjWgkVYvZCGfU0cacd1loNsXk8jwKA8O0c5kbzk9LFrQS+0kgnmpmbL
         24kNo4pSYfxbBLzS8IX1qQcwGND+XopebNfksuutD1WBE3kQx0B+B9at4r2qDNp+vQ1+
         RX5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701846914; x=1702451714;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=tsUrV2TsEnAnqqlFfFUF9DdBZ35EFK56xyRvjdTs+QI=;
        b=SegW6I5Elt3s00Wf4g2d15G6fmTXn3BwKtO7nswBHKw+WPsirjeZBh+4P1bAnpkX8P
         7C7SVBIzFqmfVn2m6ViqfUmnyMDh+LdZZSRmwDI1klRfx15fDy2Tazbg7s9J/fikmv0b
         ZtyMR8pPBb8fhEgQFSysfgQmPHDojbiPOsL++cZwp2e/ilVJNBWK0rGVNp6RPCLdE85G
         wuGxKNz1ZSo/gki4Hfivc8sk34tTeBpGGdj16J+qmEAopV22v0Dfscoct2zRQ930+Q0j
         cKIEo4UcBzQoz2KfSf9sat7rU5Fw9cW7UJt00MEuw3Xui+AUxXuMQi6z8TjVSwCrq5O/
         mW2Q==
X-Gm-Message-State: AOJu0YzFjWGq5Z2Hh1Vodv5ZSHEYr2HFY36U0+dTDhxCkm+R41tiVX85
	2nwf3DJSSSP9eEhC0mvvi4QQ
X-Google-Smtp-Source: AGHT+IHb+qIvx/+xyz5tsnH86VbLDff88N0kU1Yqz8cU99a+xZAn+Gp3aM+Vy7NfmhwadlwmdutlvQ==
X-Received: by 2002:a05:600c:46cb:b0:40c:83f:b6ce with SMTP id q11-20020a05600c46cb00b0040c083fb6cemr218178wmo.56.1701846913939;
        Tue, 05 Dec 2023 23:15:13 -0800 (PST)
Message-ID: <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
Date: Wed, 6 Dec 2023 08:15:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
 <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
 <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
 <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.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: <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 21:31, SÃ©bastien Chaumat wrote:
>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> 
> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
> ioapic-edge and IRQ9 to ioapic-level ?
> 
> IR-IO-APIC    7-fasteoi   pinctrl_amd
> IR-IO-APIC    9-fasteoi   acpi
> 
> to (xen 4.18.0)
> 
> xen-pirq     -ioapic-edge  pinctrl_amd
> xen-pirq     -ioapic-level  acpi
> 
> ?

Aren't you comparing different things here? IR-* pretty clearly is on a
native kernel (no Xen). It being "edge" looks suspicious, though.

But again - I'm not primarily a kernel person, and hence you continuing
to send replies To: me feels at least odd.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:21:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648933.1013033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmDY-0002DX-1H; Wed, 06 Dec 2023 07:21:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648933.1013033; Wed, 06 Dec 2023 07:21:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmDX-0002DQ-Um; Wed, 06 Dec 2023 07:21:11 +0000
Received: by outflank-mailman (input) for mailman id 648933;
 Wed, 06 Dec 2023 07:21:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sruh=HR=bombadil.srs.infradead.org=BATV+2d31c4bdfe93494595b7+7409+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rAmDV-0002DK-Jy
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:21:10 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0537c21f-9408-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 08:21:07 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rAmCo-009HjE-0N; Wed, 06 Dec 2023 07:20: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: 0537c21f-9408-11ee-9b0f-b553b5be7939
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=3qSq0ZgSYyFQdhkNKKx+ay2VTuWMWagkFjN44scFJGI=; b=Hj7ctWdUPYGChKSXbjiG3ceuLC
	qJJdvlVYftwJ0JmFiiq7KgA3kS4RlnIA/MDhNrvJyEEBExXyzpZoszMTkmDa/0AcbWk3X3RegC55V
	7demvhkD/2Vm6MNZiLt23BUpT9dBqEkmj0CKPAbAJm+oIUuXhDVeLjwJaZkW3WPEmdGuSLkwjyd9+
	YyBHijcvKAnO2bAVJAUvyMRdWxJKRyTYJ1uvpasFg0q82cLUXzhXq4Wu/L7v1jx64IWttFDdMu/ca
	3J1JyfBFyObPGWrCPbNdP80bglMjq75SOxMB3QIX6GX/sagc2ovosgUjghAazuSh7ZC/geNc3PWxS
	jsvebKrQ==;
Date: Tue, 5 Dec 2023 23:20:26 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: Christoph Hellwig <hch@infradead.org>, axboe@kernel.dk,
	roger.pau@citrix.com, colyli@suse.de, kent.overstreet@gmail.com,
	joern@lazybastard.org, miquel.raynal@bootlin.com, richard@nod.at,
	vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
	hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
	jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
	josef@toxicpanda.com, dsterba@suse.com, nico@fluxnic.net,
	xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, hare@suse.de, p.raghav@samsung.com,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org, yi.zhang@huawei.com,
	yangerkun@huawei.com, "yukuai (C)" <yukuai3@huawei.com>
Subject: Re: [PATCH -next RFC 01/14] block: add some bdev apis
Message-ID: <ZXAgut2MTKw50OLI@infradead.org>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-2-yukuai1@huaweicloud.com>
 <ZXARKD0OmjLrvHmU@infradead.org>
 <aafabc6e-fd98-f927-44d7-3ef76e2acaf8@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <aafabc6e-fd98-f927-44d7-3ef76e2acaf8@huaweicloud.com>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

On Wed, Dec 06, 2023 at 02:50:56PM +0800, Yu Kuai wrote:
> I'm a litter confused, so there are 3 use cases:
> 1) use GFP_USER, default gfp from bdev_alloc.
> 2) use GFP_KERNEL
> 3) use GFP_NOFS
> 
> I understand that you're suggesting memalloc_nofs_save() to distinguish
> 2 and 3, but how can I distinguish 1?

You shouldn't.  Diverging from the default flags except for clearing
the FS or IO flags is simply a bug.  Note that things like block2mtd
should probably also ensure a noio allocation if they aren't doing that
yet.

> >   - use memalloc_nofs_save in extet instead of using
> >     mapping_gfp_constraint to clear it from the mapping flags
> >   - remove __ext4_sb_bread_gfp and just have buffer.c helper that does
> >     the right thing (either by changing the calling conventions of an
> >     existing one, or adding a new one).
> 
> Thanks for the suggestions, but I'm not sure how to do this yet, I must
> read more ext4 code.

the nofs save part should be trivial.  You can just skip the rest for
now as it's not needed for this patch series.



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:22:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:22:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648936.1013043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmEV-0002l6-9p; Wed, 06 Dec 2023 07:22:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648936.1013043; Wed, 06 Dec 2023 07:22:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmEV-0002kz-7L; Wed, 06 Dec 2023 07:22:11 +0000
Received: by outflank-mailman (input) for mailman id 648936;
 Wed, 06 Dec 2023 07:22:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sruh=HR=bombadil.srs.infradead.org=BATV+2d31c4bdfe93494595b7+7409+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rAmEU-0002kr-II
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:22:10 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a2b0c6a-9408-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 08:22:09 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rAmDz-009HyE-2v; Wed, 06 Dec 2023 07:21: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: 2a2b0c6a-9408-11ee-98e5-6d05b1d4d9a1
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=qmCAsGLsB31X5J4lJ2nHtJS8+MwGW1F5WEYO0jIziI0=; b=hhRbaenXZsjRyFtp5oCl7ZLapp
	PGbBHBMazopo9x7zLycOLomgyozjMFDmXz0mBlHcwPG5BI6SfQiEYs2RFIxTkHszoMBIB5fp7RvF5
	vaqpcOeQKcUjsuqauqy5BsIY31xjg/0sVfUccDbi5kKXOZc7fS1d0vbSOWjK1ECcJERDPQIM6Icyq
	pZ82Y80XxVZAy+fiqCF56whvlLXWz/53NURq30p1NEOux+n0cJVqd1itpsG6+3wl1H+zQ95RNHzGZ
	8Wbn2E17f06JWnxiq2s6y4vOb2NT9ha36DJvWW/HkrWz3MeH9YEasxDh/aL/9GmJ56G3rYqKjOoGL
	m/NxJEIQ==;
Date: Tue, 5 Dec 2023 23:21:39 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: Christoph Hellwig <hch@infradead.org>, axboe@kernel.dk,
	roger.pau@citrix.com, colyli@suse.de, kent.overstreet@gmail.com,
	joern@lazybastard.org, miquel.raynal@bootlin.com, richard@nod.at,
	vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
	hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
	jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
	josef@toxicpanda.com, dsterba@suse.com, nico@fluxnic.net,
	xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, hare@suse.de, p.raghav@samsung.com,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org, yi.zhang@huawei.com,
	yangerkun@huawei.com, "yukuai (C)" <yukuai3@huawei.com>
Subject: Re: [PATCH -next RFC 02/14] xen/blkback: use bdev api in
 xen_update_blkif_status()
Message-ID: <ZXAhA0WUXoF5YEq4@infradead.org>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-3-yukuai1@huaweicloud.com>
 <ZXAMwBD8pd48qwX/@infradead.org>
 <783b5515-db42-c77f-62ab-050f7cc8ef5e@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <783b5515-db42-c77f-62ab-050f7cc8ef5e@huaweicloud.com>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

On Wed, Dec 06, 2023 at 02:56:05PM +0800, Yu Kuai wrote:
> > > -	invalidate_inode_pages2(
> > > -			blkif->vbd.bdev_handle->bdev->bd_inode->i_mapping);
> > > +	invalidate_bdev(blkif->vbd.bdev_handle->bdev);
> > 
> > blkbak is a bdev exported.   I don't think it should ever call
> > invalidate_inode_pages2, through a wrapper or not.
> 
> I'm not sure about this. I'm not familiar with xen/blkback, but I saw
> that xen-blkback will open a bdev from xen_vbd_create(), hence this
> looks like a dm/md for me, hence it sounds reasonable to sync +
> invalidate the opened bdev while initialization. Please kindly correct
> me if I'm wrong.

I guess we have enough precedence for this, so the switchover here
isn't wrong.  But all this invalidating of the bdev cache seems to
be asking for trouble.



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:22:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:22:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648940.1013052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmF7-0003Jl-Oa; Wed, 06 Dec 2023 07:22:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648940.1013052; Wed, 06 Dec 2023 07: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 1rAmF7-0003Je-Lv; Wed, 06 Dec 2023 07:22:49 +0000
Received: by outflank-mailman (input) for mailman id 648940;
 Wed, 06 Dec 2023 07: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAmF6-0002kr-KO
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:22:48 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41ba2ed2-9408-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 08:22:48 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3333fbbeab9so417098f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 23:22:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 n6-20020a5d67c6000000b0033335333d88sm12133526wrw.43.2023.12.05.23.22.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 23:22:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41ba2ed2-9408-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701847367; x=1702452167; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=N46oMtztTMKivnkI5qJIbT8O6Da7Ep6qclq26Ay1Jq0=;
        b=DMKoyWFsllDHrYq+YwosbBEqlb58pQ6+ZMa89Mnyg8KJKCAYFS4uuuN3hFi5XxrrjP
         FbnVd9cdAQf60sZ1do7rZE+paTNt62RHO/dBAOYqeUb+oMWW5SzadHI/0JHHrZgD80hf
         VYwEdkie183JJco47T4W/RxGqPb6uhLqhEzEPzdbu8JUuyeCgil/G+2J9SJAeIgdIEUG
         ewXeFbi4k/UqL/vFohQo+DEhL761bGMepcaHcWNlPOhRXorQs33Ji3EoOy+p5cHbwCpz
         ookc5gPDD7o/eUCriyMlZVY1YRbMO1nj+FqfbZY2ojtcYCXRS2HcYbeYhrefUhEiGZnf
         xLCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701847367; x=1702452167;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=N46oMtztTMKivnkI5qJIbT8O6Da7Ep6qclq26Ay1Jq0=;
        b=v/WLT0UkkJ0N/ZmVAUGtrHCAmvHvUSSYBbGAkVpqadaJzRLy6tUZAvdbCgRbZaYyNj
         lHsg4c6hUgJ0fe/rHsraohfhYep8PFDfxBFMqyVJpGhDKbeoopG09YfnfFgVJWxkmUki
         rskJQXBjCAx/Ui9qilDEiLYKlVi7fcIP1qiPWzOYc74FZKFJpMGXBJbkWCMaOA8rUfY6
         TSQ0P681KQwwQoFh8eYHLUkIlfRKxEPmT3gB43yeAH7SqMGapWsll31oWBd5swJUgQC6
         7dCCx3L64wCS1yxyjGTfQhkb5SAkx1nwRoMdD+l9hFudXldFbyHlhQOzVBnNQ5LX+ySh
         TdzA==
X-Gm-Message-State: AOJu0Yw+Yify0+6Y6c7B55mXMHCuAURNK35ItWhfn1javC/K41Jjhc7/
	iR/kalb/KZVjfaZq1Js7OZaE
X-Google-Smtp-Source: AGHT+IFe+V2eK2a9SxRAPXEYklTVE4Tejfi+Esn99uo2+1aLaHFU5JrG4zs5cYNHGbsdx8Va55Qf4g==
X-Received: by 2002:a05:6000:cc2:b0:333:39dc:d99e with SMTP id dq2-20020a0560000cc200b0033339dcd99emr227028wrb.119.1701847367501;
        Tue, 05 Dec 2023 23:22:47 -0800 (PST)
Message-ID: <d71ca852-087b-4781-9fab-304acbdfc968@suse.com>
Date: Wed, 6 Dec 2023 08:22:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/6] x86/vPIC: vpic_elcr_mask() master bit 2 control
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <09fc4c14-07e8-4e59-a23e-bb295125f25a@suse.com> <ZW9d9MK6l6GwXo60@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW9d9MK6l6GwXo60@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 18:29, Roger Pau MonnÃ© wrote:
> On Tue, Nov 28, 2023 at 11:35:46AM +0100, Jan Beulich wrote:
>> @@ -387,7 +387,7 @@ static int cf_check vpic_intercept_elcr_
>>          if ( dir == IOREQ_WRITE )
>>          {
>>              /* Some IRs are always edge trig. Slave IR is always level trig. */
>> -            data = (*val >> shift) & vpic_elcr_mask(vpic);
>> +            data = (*val >> shift) & vpic_elcr_mask(vpic, 1);
> 
> Not that it matters much, but I think you could use
> vpic_elcr_mask(vpic, 0) to strictly keep the same behavior as
> before?

Indeed, as also said in the description. Personally I view it as (slightly)
more logical to not mask off ...

>>              if ( vpic->is_master )
>>                  data |= 1 << 2;
> 
> Since the bit is forcefully set here anyway.

... and then set the bit, hence why I chose to go with 1.

> Regardless:
> 
> Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:27:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:27:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648945.1013062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmJb-00044r-8w; Wed, 06 Dec 2023 07:27:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648945.1013062; Wed, 06 Dec 2023 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 1rAmJb-00044k-6R; Wed, 06 Dec 2023 07:27:27 +0000
Received: by outflank-mailman (input) for mailman id 648945;
 Wed, 06 Dec 2023 07:27: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 1rAmJZ-00044a-O3; Wed, 06 Dec 2023 07:27: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 1rAmJZ-0001q2-EX; Wed, 06 Dec 2023 07:27: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 1rAmJY-0003bU-Vb; Wed, 06 Dec 2023 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 1rAmJY-0005uq-VA; Wed, 06 Dec 2023 07:27: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=GBDO4hV8bk5Ec8jgZYYA/Syx2NRDLxUQ7M/PQUPbOk0=; b=DHZiT7Q2/EyZOEivbV27V4rm6O
	pbcL3+M7e9/7gI/zStPSVv0jJvdMoKiMRwRHkMGhL2gmsk47fVzSpguhVwPGDN/jQuToq9efVsm4r
	bFT8FGsYTmFIA4e6K27R6UVxizj9ncW9tPcF30dRJm5WTQt7WIY6eHxOz/+eXQBAWjsE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184004-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184004: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=7e18c9a788e543ab71cdc0485989cf5d00cdccc2
X-Osstest-Versions-That:
    ovmf=ef3fde64aa78598a4c21556629936fb228390e8c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 07:27:24 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 7e18c9a788e543ab71cdc0485989cf5d00cdccc2
baseline version:
 ovmf                 ef3fde64aa78598a4c21556629936fb228390e8c

Last test of basis   183999  2023-12-05 20:44:36 Z    0 days
Testing same since   184004  2023-12-06 05:41:03 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    
 test-amd64-i386-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
   ef3fde64aa..7e18c9a788  7e18c9a788e543ab71cdc0485989cf5d00cdccc2 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:28:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:28:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648949.1013073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmKB-0004Z5-IS; Wed, 06 Dec 2023 07:28:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648949.1013073; Wed, 06 Dec 2023 07: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 1rAmKB-0004Yw-Fs; Wed, 06 Dec 2023 07:28:03 +0000
Received: by outflank-mailman (input) for mailman id 648949;
 Wed, 06 Dec 2023 07:28: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAmK9-0004V8-VA
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:28:01 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fc6c86a8-9408-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 08:28:01 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c09dfd82aso44219875e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 23:28:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bg24-20020a05600c3c9800b0040b3d33ab55sm24914006wmb.47.2023.12.05.23.28.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 23:28:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc6c86a8-9408-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701847680; x=1702452480; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GXLZiTAwLu1s40lVr9O7yGIqujpbJL4Gq57EsZEVx8g=;
        b=aCzsWfaQVOUltGHqavJaM0idhe7cZ+IgOPxDMgm4xUeAb4T0llCVIm58UwLcDOcv72
         U+TO73GswyS9k4mZ1K5Qky0+DgfZvkYRr5vdUkvJrzCPmXak3WTJsAOJyVI1bIySDeu0
         DOI1sganpuPwbcgpWWhbNgqM0gm3XGXtk6zxGYA33cD44duMcaFn9awmGv11GrYIgLuq
         NiyJW4ywt80Exs1QvE7+4GI6nWW1Z20/OCoMCcAkbZtBIslTYCi/GuLQkuWrtG3dRDUe
         YqoIoSz1tyIEb3ukXXx3C+FwvpzNG/JRAJfq3XxPknyQ3hzlbuWGYxwx8SCGR3ZfzMlR
         0D9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701847680; x=1702452480;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=GXLZiTAwLu1s40lVr9O7yGIqujpbJL4Gq57EsZEVx8g=;
        b=a4SnO0XRiWtV1CRnL8IfFoIs6oGLtdvqRPp/tXOqrx8hpLBy1uSudKr18iwVLtT/Kv
         QSNWi4vwItOO5ZIhZUfarouG3fLBWN3c0j/+KKABiCIV1OzA+TeC3aY13scgRpz0dv2n
         iSY3aMsCY9F8G7nLaaUR/p8EBfcUyjxwuCnsKcsX4T0qlMJYP7Y6PbrkxMectAe59mzv
         8/82otTlSQgIcsfOpfkFH7FZVDtcqaXylnZCw/DaJzkJcbimp3XevmXa0tQbebImA38V
         XV9mFCKIjXqauT3iQUHqPpPU9nzwb/NYHwQ8MC2IVgxIXYU5Ny7gtxlMrAFqp3QTY7ES
         uzNw==
X-Gm-Message-State: AOJu0YyHz8ik85jzwZHea/RzHn8q+PYQ2GJW3XMmjEF0OAtLDZ2N0U/C
	uWzKxPi3FYk+Bwn4z7VWFmfm
X-Google-Smtp-Source: AGHT+IGRFvalsSP5M4p0rcuCux53hLd7fRLymC1Og6XKKiNa9tDEnGnLJotfcwe1dgaYz0HqWIHGNg==
X-Received: by 2002:a05:600c:225a:b0:40c:22b5:d16d with SMTP id a26-20020a05600c225a00b0040c22b5d16dmr121843wmm.29.1701847680604;
        Tue, 05 Dec 2023 23:28:00 -0800 (PST)
Message-ID: <21cdb9ad-81f5-497a-bfd8-ef6aea5906e2@suse.com>
Date: Wed, 6 Dec 2023 08:27:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Wei Liu <wl@xen.org>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com> <ZW4L5Q4SMprtmbK-@macbook>
 <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com> <ZW8zyXkUJDKVt-HX@macbook>
 <2ded19f7-2ba6-4b1c-8752-a73894dcdae0@suse.com> <ZW9H1uE_6k3d-uWn@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZW9H1uE_6k3d-uWn@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 16:55, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 03:59:13PM +0100, Jan Beulich wrote:
>> On 05.12.2023 15:29, Roger Pau MonnÃ© wrote:
>>> On Tue, Dec 05, 2023 at 09:52:31AM +0100, Jan Beulich wrote:
>>>> On 04.12.2023 18:27, Roger Pau MonnÃ© wrote:
>>>>> On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
>>>>>> ..., at least as reasonably feasible without making a check hook
>>>>>> mandatory (in particular strict vs relaxed/zero-extend length checking
>>>>>> can't be done early this way).
>>>>>>
>>>>>> Note that only one of the two uses of hvm_load() is accompanied with
>>>>>> hvm_check(). The other directly consumes hvm_save() output, which ought
>>>>>> to be well-formed. This means that while input data related checks don't
>>>>>> need repeating in the "load" function when already done by the "check"
>>>>>> one (albeit assertions to this effect may be desirable), domain state
>>>>>> related checks (e.g. has_xyz(d)) will be required in both places.
>>>>>>
>>>>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>>>> ---
>>>>>> Do we really need all the copying involved in use of _hvm_read_entry()
>>>>>> (backing hvm_load_entry()? Zero-extending loads are likely easier to
>>>>>> handle that way, but for strict loads all we gain is a reduced risk of
>>>>>> unaligned accesses (compared to simply pointing into h->data[]).
>>>>>
>>>>> See below, but I wonder whether the checks could be performed as part
>>>>> of hvm_load() without having to introduce a separate handler and loop
>>>>> over the context entries.
>>>>
>>>> Specifically not. State loading (in the longer run) would better not fail
>>>> once started. (Imo it should have been this way from the beginning.) Only
>>>> then will the vCPU still be in a predictable state even after a possible
>>>> error.
>>>
>>> Looking at the callers, does such predictable state after failure
>>> matter?
>>>
>>> One caller is an hypercall used by the toolstack at domain create,
>>> failing can just lead to the domain being destroyed.  The other caller
>>> is vm fork, which will also lead to the fork being destroyed if
>>> context loading fails.
>>>
>>> Maybe I'm overlooking something.
>>
>> You don't (I think), but existing callers necessarily have to behave the
>> way you describe. From an abstract perspective, though, failed state
>> loading would better allow a retry. And really I thought that when you
>> suggested to split checking from loading, you had exactly that in mind.
> 
> Not really TBH, because I didn't think that much on a possible
> implementation when proposing it.

But what else did you think of then in terms of separating checking from
loading?

> Maybe a suitable compromise would be to reset the state to the initial
> (at domain build) one on failure?

That's an option, sure.

> I do dislike the duplicated loops, as it seems like a lot of duplicate
> boilerplate code, and I have fears of it going out of sync.

There's a certain risk, yes, but that exists similarly with the save and
load sides imo.

Andrew - before I go and undo the v2 changes, what is your view?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:45:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648954.1013082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmbH-0000c9-OK; Wed, 06 Dec 2023 07:45:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648954.1013082; Wed, 06 Dec 2023 07: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 1rAmbH-0000c2-LR; Wed, 06 Dec 2023 07:45:43 +0000
Received: by outflank-mailman (input) for mailman id 648954;
 Wed, 06 Dec 2023 07: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=bpNQ=HR=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rAmbF-0000bu-Tf
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:45:42 +0000
Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 723d10e2-940b-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 08:45:39 +0100 (CET)
Received: from orviesa002.jf.intel.com ([10.64.159.142])
 by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Dec 2023 23:45:36 -0800
Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81])
 by orviesa002.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 05 Dec 2023 23:45:37 -0800
Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by
 fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35; Tue, 5 Dec 2023 23:45:35 -0800
Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by
 fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35 via Frontend Transport; Tue, 5 Dec 2023 23:45:35 -0800
Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169)
 by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.35; Tue, 5 Dec 2023 23:45:35 -0800
Received: from SA1PR11MB6734.namprd11.prod.outlook.com (2603:10b6:806:25d::22)
 by SN7PR11MB7044.namprd11.prod.outlook.com (2603:10b6:806:29b::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.27; Wed, 6 Dec
 2023 07:45:32 +0000
Received: from SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3]) by SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3%7]) with mapi id 15.20.7046.034; Wed, 6 Dec 2023
 07:45: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: 723d10e2-940b-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701848739; x=1733384739;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=PeR6bfBpgy18QpMpfJJ3D6YjFpIWK8tJNg91Z0TInUI=;
  b=Z0cl58+tzA4WYEHJFRZAAyVW9IJMT2rwvqaxL99mDoD/SamErJSTeP/S
   +jsBqTwlzFuhDw48N/THTc6nq/ZKP1r9MTL3ptPF8K8kAcf7f0eDKrUcB
   aOCT1ky0cgxyXu/rhvcr9qEaDbYiYHnMkUKNW/8ACKx9zH6he5CWbHl5B
   oOXjMsTtEe8oEpf0SHt6m73gKlrRS/tPIb9lCDAhrbrZ9tCZj741jnC7G
   QgvFDsIrfrd0hnho/h/ylHWyGAwIrX4JgyJoH/UmOJubn0gnQNdDwf+US
   rpJm6WAa4GnUR9UJJSUDQrNqiykJkmTu88J0zqj7OZqZKPb2yLQZ6nH8F
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10915"; a="397910769"
X-IronPort-AV: E=Sophos;i="6.04,254,1695711600"; 
   d="scan'208";a="397910769"
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.04,254,1695711600"; 
   d="scan'208";a="12598909"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DVZHYk9Q13Uhn+F7sPTzIKSiDe90t9NKXQz0C1VMjVR601Qt6nyit1gsdQOIAszDszuVZdWc/R7VQhPe7O/2PdDcBW+RlpkDl/w9BRSNnTv2x07USSXAb6fUmGW0T3GenZi0qWeSn2aOONgvsMvInzA2TL4Au9+tpQfQVPZtycGmqnPIhmw/xfU9dCrWG7FhW3qUH/sN85eTttUGSwbLbb7PQ0abp5vBUzasyb7e1FT238LYwf++jpjqKPZfyATBvBI2r4owDh5OqoZj+E7l5TsyY/04mz/4M0M1/ctnftnIM4Dm7Rttkl1MLHgQK7EAUvKJ5Pr/enBWyfyiZUw3+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=PeR6bfBpgy18QpMpfJJ3D6YjFpIWK8tJNg91Z0TInUI=;
 b=lMtaN3+WAsD7naYRe0lGo44GESQjyThugLMQqwVSa7Q8DienZ+dnsZ8Np0xxfT1i0IbVEd/Tk6SPxgfiJOrouujyzfRg4fmsbRTy91ZcwWcIxYfWhu4DayG2CY6SOsRmzZ34AmMbpQlhYDOD5SXzsF2LatCOFKQC45Tq2dNV5fp0V1tZaDlOFbNuHccsRuaQjz/EmJMAG2x7PcvP1PYVgD0P9so7R2s4GKy4mfEON4InmL7ia+ISlXmcinWpKbSktLU2HVAo9Lm8m/jyJGdwe52RIs2u8e6OQD4ndXreWNrpLDRK5LWk+K7IqfFlh1VPYIUCPyen+jTGvpWFBOzY4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
From: "Li, Xin3" <xin3.li@intel.com>
To: "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "tglx@linutronix.de" <tglx@linutronix.de>, "mingo@redhat.com"
	<mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org"
	<x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>, "Lutomirski, Andy"
	<luto@kernel.org>, "pbonzini@redhat.com" <pbonzini@redhat.com>,
	"seanjc@google.com" <seanjc@google.com>, "peterz@infradead.org"
	<peterz@infradead.org>, "Gross, Jurgen" <jgross@suse.com>, "Shankar, Ravi V"
	<ravi.v.shankar@intel.com>, "mhiramat@kernel.org" <mhiramat@kernel.org>,
	"jiangshanlai@gmail.com" <jiangshanlai@gmail.com>, "nik.borisov@suse.com"
	<nik.borisov@suse.com>, "Kang, Shan" <shan.kang@intel.com>
Subject: RE: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Thread-Topic: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Thread-Index: AQHaJ215PhEOYu43sEObVSTXzfHZOLCanWSAgAE5e5A=
Date: Wed, 6 Dec 2023 07:45:31 +0000
Message-ID: <SA1PR11MB67343544B0CEB6C82002790DA884A@SA1PR11MB6734.namprd11.prod.outlook.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
 <20231205105030.8698-27-xin3.li@intel.com>
 <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com>
In-Reply-To: <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA1PR11MB6734:EE_|SN7PR11MB7044:EE_
x-ms-office365-filtering-correlation-id: 76fc45d0-5732-4589-5cfa-08dbf62f52ab
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;
x-microsoft-antispam-message-info: 46KCXT5r6ViK0ZWH+jRPSxl5hdKQd2gPv4ifQs68ksYTCPaaQrf40TjQfGIsBV3VSWfEDwHDJck/xDEBow6pErYqz9mg11323qr8SvOcBc+6x/KhIY5B0ovDIjucorh8VAFYM/9VLqX9A1zY4ewkDU0qHLiyTg22fz70BuGjIcz1L/gHII+lOdohU7uZ/1WkSfCgh0ssZBUJDThLVIZILDHRnL0zNitmWgUcyDwQISZFP698hSnPnVxyeMJ6JK+LAtTu8FpYrOktvCyoRbuevt8Wc7DB3VGQSF625T75VyzFTOpuLrjcnHiQ3ymwCRANyuB414ePa5bVNT8QrvxeKI0OPwbq+sPRJyLIQPMwboHFQfpL07B94xkmbAJrZ4LQCWa5EpuMGrPYXr8UzenTzV5onb6SqhdRAe+sOavsUeULOZbWCeEltMYDxC6C8ollTBfQIO76l6hgQ9JGLoeAqU+AiWbn2XP6wxTAn1nZeb5V/ZBTSxip7TaobqsfTEcwCtLV88fP36eBJxIKRVhX7PBcZLrR9W70uNQr90cVvVrYvAqucv7o7S86advkEDUDYhjrHRcVoluvWM8zqBii0xblJ8X1/J59SCpo/GP3Tgq9uW7niaDYATLKTx/RFym4ue/GhTya6fFXKGbviBZUsFNg7V3tmaaC/oa2HXHUiDI=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB6734.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(39860400002)(376002)(366004)(346002)(396003)(230273577357003)(230922051799003)(230173577357003)(1800799012)(451199024)(186009)(64100799003)(83380400001)(38100700002)(122000001)(86362001)(7696005)(76116006)(6506007)(64756008)(5660300002)(52536014)(8676002)(82960400001)(4326008)(478600001)(66476007)(110136005)(7416002)(54906003)(66446008)(66946007)(71200400001)(316002)(41300700001)(33656002)(9686003)(2906002)(8936002)(55016003)(38070700009)(26005)(66556008);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bE1TVkRWOU5jT1JkdDJ3MUdZR1dNTjR2S2NzMU50aXRqRFV3eFJSUXZBR2RU?=
 =?utf-8?B?TnFXdlJ3azVYWlM2TjRveitaTnBDMzRwRVpNbm1wTDJrRjQxcjBxMi9aczF1?=
 =?utf-8?B?K09udHJubnRIb1IwQzUwM0VXMmw2Yms0dU96WFgrN1Q2bGNPdjhDQURRblRq?=
 =?utf-8?B?RlRiOE1PVkZOWVdRc3NZWUZTRElEYStHWk15Uk1GRGNYRHlWVGF4RHpSRkMx?=
 =?utf-8?B?ckFwa0NMdnVKRmFwbktRR1BvRzIyTEZiS1QvUnlYQTJjUU53Q29SOUZnV05s?=
 =?utf-8?B?UThLVkJobFY2cENscFZUNWdDUm5HQjVQcG5pUFpuMytrVXZTZG1KMWQyZVNw?=
 =?utf-8?B?aFZZU2c3a1I4YXNsSEx6WGZYZmk0UjlJN0wvSEU4OEdGb0hQSWlVOU5DKyta?=
 =?utf-8?B?dkx4L21YamtNdi9kamFJU3ZIcUQzRCtoQ0FLK0tQR1Q3bDhYVW9LSUVpVDY1?=
 =?utf-8?B?eEN5Um9xYnR5bUdNbzVWS3ZnWVhTOXNWY2Z4cW5kZjUxb1lrQnF2aHU3Vm84?=
 =?utf-8?B?OUFFQmZxSzhVTkRNZTV3Nzh3NGI1QzRHdHZaOGlMeEQ1M3pLdmxxbXFveTFR?=
 =?utf-8?B?TEFsRCt2dVdKVTVrdTlIMU1xOFVLUFFtU3BnZEVObnRvT21ZYnczRVU3VEg3?=
 =?utf-8?B?dzJjb1dwWUttTEgvWHJiOXNmWGZ6Y1FTcVlycTcrUWxDKzkydG1GeEhoWEIy?=
 =?utf-8?B?NlR1UUU4TGdpZUlsVk5FK29qUHkzUEsybzg2V0dqVERyMUc4UWd6VWp1Umsv?=
 =?utf-8?B?TGl4RkNubGlKMDNGa1Juc1lkUURyWnlFTDhpU1hPbVI5SnM0RE1HaksvRXVU?=
 =?utf-8?B?WEg4ak1EYURSS21BNi9XVklTdU1VVVlFcXRuVXNZMTBaalhETEluTmR2OW1M?=
 =?utf-8?B?SW1LQU52Um5xQnlXalZJdWhETmxpUm1DMjRSaExEakZuOWQ3ZldCMmtJRVdq?=
 =?utf-8?B?OGNZdkJqSWlQSHBaOTFkWUhkYm8vWSs5TkFaTy9ueG12MEZwaGYwVVppMlBQ?=
 =?utf-8?B?Y1pJWndwRHZ1anZHSWErMi9zdHR6ekhsS2lsUndXVG1zT0NMMDErZWRlc0Iy?=
 =?utf-8?B?YWRiaDhsSGF1OVVLSEFBMVVEbERadEJMS0tDUlNoN2gzZHl1SUxuOTBBRHJn?=
 =?utf-8?B?MURQT3dtM0tObDdKanA0a3BaYWVvUXNuYVkrS21LVGJqYi8vMy9kSFlZZFps?=
 =?utf-8?B?ZzRMN1pRbWxxSEZzeVMwN3BZNHU0U25TbHN4TjltRXBlbzJLRW40c0VUaWV0?=
 =?utf-8?B?czRBYWlLc3FtSGFYb2RwSmlyTmcxNno1NnRqazFSVFFib1lPOVdvelV5R3VC?=
 =?utf-8?B?UkJhcjNQZjVwbHBMVUpnVUxuRjZJQkV4ZW1VbThpM3pmTkNQMklhdExvdlpr?=
 =?utf-8?B?N05EbkJ2YWFNd3l1UDJ1dFNybTFlOWhQaCtYcGIzU1NzTGY0Y3ZaSHN6Q09V?=
 =?utf-8?B?TVc5WW9qSjdVeXU5Yk01dENVcVpEM0tiVkVhMktqYlEvejV3cjNyUEFHblhQ?=
 =?utf-8?B?R3VQTXVDMUZnYjVTREpSc2pZcDl1cHF6VTRnSzRqTEpKaGNLR2NhNGhIaWpI?=
 =?utf-8?B?QXQ5MVNLRjBMTzNPeG4vK21jODNzZmhFeng3VG9FM1plMnVmaHdnTUhyS1pP?=
 =?utf-8?B?QndBU1FTdHhnN2xrNTZmQnhaYTNoTUw3aDdURFRraGF2bmNOVUJ4dWtPYlVW?=
 =?utf-8?B?TnR4MEVBb0wwSCt4bkNJcnVUNm55Y0pxR21hVnBDQVFUMlBmb3RvT3FoR1Bx?=
 =?utf-8?B?dmszNVRENVd6ZHpJODNpTmVaUmplN1FXcFloTWlTaFQ1S1FmbHlqaWhJb1Ra?=
 =?utf-8?B?WGdLaWw1WS9GVk16NkloWDBHay9IZ0JCT2JDVzF0eEFtUEdTNFNpQmtWRHcv?=
 =?utf-8?B?WklXU2sweVdQRnFOVGtPeVhISlVJU0YxS3JoQVI1Q09SSHNvKzFaaWRDK2pK?=
 =?utf-8?B?NUZwRWhUOTZVZW1MWkwxUlZWbFpaa2dFRjVhaTVxQVpvUVJYUGVRZklkSVQr?=
 =?utf-8?B?ZFJtcnViMlFIVUdlTzZ1NDRMdHVmbTNaSDg3ZTB1eitEdjA3ZXpHaDNpTFlj?=
 =?utf-8?B?K0NzeTJmU3FxOVZudnJyQzFvZzJ3TnI5YlV5WUxhdnZRTVVEVnk4d1RLUHZ5?=
 =?utf-8?Q?2uoE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6734.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 76fc45d0-5732-4589-5cfa-08dbf62f52ab
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2023 07:45:31.3863
 (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: Hag3xuHnGtyFf8+FTc3INUhzPOqCJ8ZzP0bMF1d8a8QVHiKooVYrZDad4Xyb9Tffw68hTiUqwBXl3uCanOdBOw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB7044
X-OriginatorOrg: intel.com

PiA+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV9mcmVkLmMgYi9hcmNoL3g4Ni9l
bnRyeS9lbnRyeV9mcmVkLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleCAwMDAwMDAw
MDAwMDAuLjIxNTg4M2U5MGY5NA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9hcmNoL3g4
Ni9lbnRyeS9lbnRyeV9mcmVkLmMNCj4gPiBAQCAtMCwwICsxLDIzMCBAQA0KPiA+IC4uLg0KPiA+
ICtzdGF0aWMgbm9pbnN0ciB2b2lkIGZyZWRfaW50eChzdHJ1Y3QgcHRfcmVncyAqcmVncykgew0K
PiA+ICsJc3dpdGNoIChyZWdzLT5mcmVkX3NzLnZlY3Rvcikgew0KPiA+ICsJLyogSU5UMCAqLw0K
PiANCj4gSU5UTyAoZm9yIG92ZXJmbG93KSwgbm90IElOVC16ZXJvLsKgIEhvd2V2ZXIuLi4NCg0K
TXkgYmFkIGFnYWluLi4uDQoNCj4gPiArCWNhc2UgWDg2X1RSQVBfT0Y6DQo+ID4gKwkJZXhjX292
ZXJmbG93KHJlZ3MpOw0KPiA+ICsJCXJldHVybjsNCj4gPiArDQo+ID4gKwkvKiBJTlQzICovDQo+
ID4gKwljYXNlIFg4Nl9UUkFQX0JQOg0KPiA+ICsJCWV4Y19pbnQzKHJlZ3MpOw0KPiA+ICsJCXJl
dHVybjsNCj4gDQo+IC4uLiBuZWl0aGVyIE9GIG5vciBCUCB3aWxsIGV2ZXIgZW50ZXIgZnJlZF9p
bnR4KCkgYmVjYXVzZSB0aGV5J3JlIHR5cGUgU1dFWEMgbm90DQo+IFNXSU5ULg0KDQpQZXIgRlJF
RCBzcGVjIDUuMCwgc2VjdGlvbiA3LjMgU29mdHdhcmUgSW50ZXJydXB0cyBhbmQgUmVsYXRlZCBJ
bnN0cnVjdGlvbnM6DQpJTlQgbiAob3Bjb2RlIENEIGZvbGxvd2VkIGJ5IGFuIGltbWVkaWF0ZSBi
eXRlKTogVGhlcmUgYXJlIDI1NiBzdWNoDQpzb2Z0d2FyZSBpbnRlcnJ1cHQgaW5zdHJ1Y3Rpb25z
LCBvbmUgZm9yIGVhY2ggdmFsdWUgbiBvZiB0aGUgaW1tZWRpYXRlDQpieXRlICgw4oCTMjU1KS4N
Cg0KQW5kIGFwcGVuZGl4IEIgRXZlbnQgU3RhY2sgTGV2ZWxzOg0KSWYgdGhlIGV2ZW50IGlzIGFu
IGV4ZWN1dGlvbiBvZiBJTlQgbiAob3Bjb2RlIENEIG4gZm9yIDgtYml0IHZhbHVlIG4pLA0KdGhl
IGV2ZW50IHN0YWNrIGxldmVsIGlzIDAuIFRoZSBldmVudCB0eXBlIGlzIDQgKHNvZnR3YXJlIGlu
dGVycnVwdCkNCmFuZCB0aGUgdmVjdG9yIGlzIG4uDQoNClNvIGludCAkMHg0IGFuZCBpbnQgJDB4
MyAodXNlIGFzbSgiLmJ5dGUgMHhDRCwgMHgwMyIpKSBnZXQgaGVyZS4NCg0KQnV0IGludG8gKDB4
Q0UpIGFuZCBpbnQzICgweENDKSBkbyB1c2UgZXZlbnQgdHlwZSBTV0VYQy4gDQoNCkJUVywgaW50
byBpcyBOT1QgYWxsb3dlZCBpbiA2NC1iaXQgbW9kZSBidXQgImludCAkMHg0IiBpcyBhbGxvd2Vk
Lg0KDQo+IA0KPiBTV0lOVCBpcyBzdHJpY3RseSB0aGUgSU5UICRpbW04IGluc3RydWN0aW9uLg0K
PiANCj4gPiAuLi4NCj4gPiArc3RhdGljIG5vaW5zdHIgdm9pZCBmcmVkX2V4dGludChzdHJ1Y3Qg
cHRfcmVncyAqcmVncykgew0KPiA+ICsJdW5zaWduZWQgaW50IHZlY3RvciA9IHJlZ3MtPmZyZWRf
c3MudmVjdG9yOw0KPiA+ICsNCj4gPiArCWlmIChXQVJOX09OX09OQ0UodmVjdG9yIDwgRklSU1Rf
RVhURVJOQUxfVkVDVE9SKSkNCj4gPiArCQlyZXR1cm47DQo+ID4gKw0KPiA+ICsJaWYgKGxpa2Vs
eSh2ZWN0b3IgPj0gRklSU1RfU1lTVEVNX1ZFQ1RPUikpIHsNCj4gPiArCQlpcnFlbnRyeV9zdGF0
ZV90IHN0YXRlID0gaXJxZW50cnlfZW50ZXIocmVncyk7DQo+ID4gKw0KPiA+ICsJCWluc3RydW1l
bnRhdGlvbl9iZWdpbigpOw0KPiA+ICsJCXN5c3ZlY190YWJsZVt2ZWN0b3IgLSBGSVJTVF9TWVNU
RU1fVkVDVE9SXShyZWdzKTsNCj4gDQo+IGFycmF5X2luZGV4X21hc2tfbm9zcGVjKCkNCj4gDQo+
IFRoaXMgaXMgZWFzeSBmb3IgYW4gYXR0YWNrZXIgdG8gYWJ1c2UsIHRvIGluc3RhbGwgbm9uLWZ1
bmN0aW9uLXBvaW50ZXIgdGFyZ2V0cyBpbnRvDQo+IHRoZSBpbmRpcmVjdCBwcmVkaWN0b3IuDQoN
CkhQQSBkaWQgdXNlIGFycmF5X2luZGV4X25vc3BlYygpIGF0IHRoZSBiZWdpbm5pbmcsIGJ1dCBJ
IGZvcmdvdCBpdCBsYXRlci4NCg0KPiANCj4gPiArCQlpbnN0cnVtZW50YXRpb25fZW5kKCk7DQo+
ID4gKwkJaXJxZW50cnlfZXhpdChyZWdzLCBzdGF0ZSk7DQo+ID4gKwl9IGVsc2Ugew0KPiA+ICsJ
CWNvbW1vbl9pbnRlcnJ1cHQocmVncywgdmVjdG9yKTsNCj4gPiArCX0NCj4gPiArfQ0KPiA+ICsN
Cj4gPiArc3RhdGljIG5vaW5zdHIgdm9pZCBmcmVkX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAq
cmVncywgdW5zaWduZWQNCj4gPiArbG9uZyBlcnJvcl9jb2RlKSB7DQo+ID4gKwkvKiBPcHRpbWl6
ZSBmb3IgI1BGLiBUaGF0J3MgdGhlIG9ubHkgZXhjZXB0aW9uIHdoaWNoIG1hdHRlcnMgcGVyZm9y
bWFuY2UNCj4gd2lzZSAqLw0KPiA+ICsJaWYgKGxpa2VseShyZWdzLT5mcmVkX3NzLnZlY3RvciA9
PSBYODZfVFJBUF9QRikpIHsNCj4gPiArCQlleGNfcGFnZV9mYXVsdChyZWdzLCBlcnJvcl9jb2Rl
KTsNCj4gPiArCQlyZXR1cm47DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJc3dpdGNoIChyZWdzLT5m
cmVkX3NzLnZlY3Rvcikgew0KPiA+ICsJY2FzZSBYODZfVFJBUF9ERTogcmV0dXJuIGV4Y19kaXZp
ZGVfZXJyb3IocmVncyk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQX0RCOiByZXR1cm4gZnJlZF9leGNf
ZGVidWcocmVncyk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQX0JQOiByZXR1cm4gZXhjX2ludDMocmVn
cyk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQX09GOiByZXR1cm4gZXhjX292ZXJmbG93KHJlZ3MpOw0K
PiANCj4gRGVwZW5kaW5nIG9uIHdoYXQgeW91IHdhbnQgdG8gZG8gd2l0aCBCUC9PRiB2cyBmcmVk
X2ludHgoKSwgdGhpcyBtYXkgbmVlZA0KPiBhZGp1c3RpbmcuDQo+IA0KPiBJZiB5b3UgYXJlIGNy
b3NzLWNoZWNraW5nIHR5cGUgYW5kIHZlY3RvciwgdGhlbiB0aGVzZSBzaG91bGQgYmUgcmVqZWN0
ZWQgZm9yIG5vdA0KPiBiZWluZyBvZiB0eXBlIEhXRVhDLg0KDQpZb3UncmUgcmlnaHQsIHRoZSBl
dmVudCB0eXBlIG5lZWRzIHRvIGJlIFNXRVhDIGZvciBpbnRvIGFuZCBpbnQzLg0KDQpIb3dldmVy
LCB3b3VsZCBpdCBiZSBvdmVya2lsbGluZz8gIEFzc3VtaW5nIGhhcmR3YXJlIGFuZCBWTU0gYXJl
IHNhbmUuDQoNCj4gDQo+ID4gKwljYXNlIFg4Nl9UUkFQX0JSOiByZXR1cm4gZXhjX2JvdW5kcyhy
ZWdzKTsNCj4gPiArCWNhc2UgWDg2X1RSQVBfVUQ6IHJldHVybiBleGNfaW52YWxpZF9vcChyZWdz
KTsNCj4gPiArCWNhc2UgWDg2X1RSQVBfTk06IHJldHVybiBleGNfZGV2aWNlX25vdF9hdmFpbGFi
bGUocmVncyk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQX0RGOiByZXR1cm4gZXhjX2RvdWJsZV9mYXVs
dChyZWdzLCBlcnJvcl9jb2RlKTsNCj4gPiArCWNhc2UgWDg2X1RSQVBfVFM6IHJldHVybiBleGNf
aW52YWxpZF90c3MocmVncywgZXJyb3JfY29kZSk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQX05QOiBy
ZXR1cm4gZXhjX3NlZ21lbnRfbm90X3ByZXNlbnQocmVncywgZXJyb3JfY29kZSk7DQo+ID4gKwlj
YXNlIFg4Nl9UUkFQX1NTOiByZXR1cm4gZXhjX3N0YWNrX3NlZ21lbnQocmVncywgZXJyb3JfY29k
ZSk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQX0dQOiByZXR1cm4gZXhjX2dlbmVyYWxfcHJvdGVjdGlv
bihyZWdzLCBlcnJvcl9jb2RlKTsNCj4gPiArCWNhc2UgWDg2X1RSQVBfTUY6IHJldHVybiBleGNf
Y29wcm9jZXNzb3JfZXJyb3IocmVncyk7DQo+ID4gKwljYXNlIFg4Nl9UUkFQX0FDOiByZXR1cm4g
ZXhjX2FsaWdubWVudF9jaGVjayhyZWdzLCBlcnJvcl9jb2RlKTsNCj4gPiArCWNhc2UgWDg2X1RS
QVBfWEY6IHJldHVybiBleGNfc2ltZF9jb3Byb2Nlc3Nvcl9lcnJvcihyZWdzKTsNCj4gPiArDQo+
ID4gKyNpZmRlZiBDT05GSUdfWDg2X01DRQ0KPiA+ICsJY2FzZSBYODZfVFJBUF9NQzogcmV0dXJu
IGZyZWRfZXhjX21hY2hpbmVfY2hlY2socmVncyk7ICNlbmRpZiAjaWZkZWYNCj4gPiArQ09ORklH
X0lOVEVMX1REWF9HVUVTVA0KPiA+ICsJY2FzZSBYODZfVFJBUF9WRTogcmV0dXJuIGV4Y192aXJ0
dWFsaXphdGlvbl9leGNlcHRpb24ocmVncyk7DQo+ID4gKyNlbmRpZg0KPiA+ICsjaWZkZWYgQ09O
RklHX1g4Nl9LRVJORUxfSUJUDQo+IA0KPiBDT05GSUdfWDg2X0NFVA0KPiANCj4gVXNlcnNwYWNl
IGNhbiB1c2UgQ0VUIGV2ZW4gaWYgdGhlIGtlcm5lbCBpc24ndCBjb21waWxlZCB3aXRoIElCVCwg
c28gdGhpcw0KPiBleGNlcHRpb24gbmVlZHMgaGFuZGxpbmcuDQoNCkFic29sdXRlbHkgY29ycmVj
dCENCg0KPiANCj4gPiArCWNhc2UgWDg2X1RSQVBfQ1A6IHJldHVybiBleGNfY29udHJvbF9wcm90
ZWN0aW9uKHJlZ3MsIGVycm9yX2NvZGUpOw0KPiA+ICsjZW5kaWYNCj4gPiArCWRlZmF1bHQ6IHJl
dHVybiBmcmVkX2JhZF90eXBlKHJlZ3MsIGVycm9yX2NvZGUpOw0KPiA+ICsJfQ0KPiA+ICt9DQo+
ID4gKw0KPiA+ICtfX3Zpc2libGUgbm9pbnN0ciB2b2lkIGZyZWRfZW50cnlfZnJvbV91c2VyKHN0
cnVjdCBwdF9yZWdzICpyZWdzKSB7DQo+ID4gKwl1bnNpZ25lZCBsb25nIGVycm9yX2NvZGUgPSBy
ZWdzLT5vcmlnX2F4Ow0KPiA+ICsNCj4gPiArCS8qIEludmFsaWRhdGUgb3JpZ19heCBzbyB0aGF0
IHN5c2NhbGxfZ2V0X25yKCkgd29ya3MgY29ycmVjdGx5ICovDQo+ID4gKwlyZWdzLT5vcmlnX2F4
ID0gLTE7DQo+ID4gKw0KPiA+ICsJc3dpdGNoIChyZWdzLT5mcmVkX3NzLnR5cGUpIHsNCj4gPiAr
CWNhc2UgRVZFTlRfVFlQRV9FWFRJTlQ6DQo+ID4gKwkJcmV0dXJuIGZyZWRfZXh0aW50KHJlZ3Mp
Ow0KPiA+ICsJY2FzZSBFVkVOVF9UWVBFX05NSToNCj4gPiArCQlyZXR1cm4gZnJlZF9leGNfbm1p
KHJlZ3MpOw0KPiA+ICsJY2FzZSBFVkVOVF9UWVBFX1NXSU5UOg0KPiA+ICsJCXJldHVybiBmcmVk
X2ludHgocmVncyk7DQo+ID4gKwljYXNlIEVWRU5UX1RZUEVfSFdFWEM6DQo+ID4gKwljYXNlIEVW
RU5UX1RZUEVfU1dFWEM6DQo+ID4gKwljYXNlIEVWRU5UX1RZUEVfUFJJVl9TV0VYQzoNCj4gPiAr
CQlyZXR1cm4gZnJlZF9leGNlcHRpb24ocmVncywgZXJyb3JfY29kZSk7DQo+IA0KPiBQUklWX1NX
RVhDIHNob3VsZCBoYXZlIGl0J3Mgb3duIGZ1bmN0aW9uIGFuZCBub3QgZmFsbCBpbnRvIGZyZWRf
ZXhjZXB0aW9uKCkuDQo+IA0KPiBJdCBpcyBzdHJpY3RseSBvbmx5IHRoZSBJQ0VCUCAoSU5UMSkg
aW5zdHJ1Y3Rpb24gYXQgdGhlIG1vbWVudCwgc28gc2hvdWxkIGZhbGwgaW50bw0KPiBiYWRfdHlw
ZSgpIGZvciBhbnkgdmVjdG9yIG90aGVyIHRoYW4gWDg2X1RSQVBfREIuDQoNCkdvb2QgcG9pbnQh
DQoNCkl0J3MgbGlrZSBOTUksIG9uZSBldmVudCB0eXBlIHdpdGggb25seSBvbmUgdmFsaWQgZXZl
bnQgdmVjdG9yIG5vdy4NCg0KPiANCj4gPiArCWNhc2UgRVZFTlRfVFlQRV9PVEhFUjoNCj4gPiAr
CQlyZXR1cm4gZnJlZF9vdGhlcihyZWdzKTsNCj4gPiArCWRlZmF1bHQ6DQo+ID4gKwkJcmV0dXJu
IGZyZWRfYmFkX3R5cGUocmVncywgZXJyb3JfY29kZSk7DQo+ID4gKwl9DQo+ID4gK30NCj4gDQo+
IH5BbmRyZXcNCg0KVGhhbmtzIQ0KICAgIFhpbg0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 07:56:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 07:56:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648960.1013092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmlg-0003Y8-Oq; Wed, 06 Dec 2023 07:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648960.1013092; Wed, 06 Dec 2023 07: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 1rAmlg-0003Y1-MA; Wed, 06 Dec 2023 07:56:28 +0000
Received: by outflank-mailman (input) for mailman id 648960;
 Wed, 06 Dec 2023 07: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAmle-0003Xv-KF
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 07:56:26 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f400995a-940c-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 08:56:25 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c09d0b045so38285625e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Dec 2023 23:56:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fa10-20020a05600c518a00b00405442edc69sm24703805wmb.14.2023.12.05.23.56.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Dec 2023 23:56:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f400995a-940c-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701849384; x=1702454184; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Kyuw8brHPJ/CmwaMrv3470peWD0ArRmT0dmqvz485T0=;
        b=P6yszEHV057v1a9QSn02/gKuxURQTTBiKXb4ooUatphsQZbNMKy3+QLjIbIynHSajl
         vIrdNARCC2HNEwEDJMB8WP6hVOU2i9BJL5M2QErycppuKHPt77VdW1NCI8WuqZUKBOZo
         qAy5vQA5gPmZFa8v/2I2CYD07KttY4iOFZ29wLMjYgSFzd0Ml4VsbQpfxVlsu0xQxzl3
         m0ho6ya7LQqCsbz/xRkmejJ8QoIUb4BR171+nF2mY6uo2o2BDicFOTznjTG3LHo2vuCu
         kjB822NM8q/tOipsECHcR6yoVsnQxYfNeI4LtzLIEHuohwOILXrE8odUBgamZmF9nXFL
         l1Dw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701849384; x=1702454184;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Kyuw8brHPJ/CmwaMrv3470peWD0ArRmT0dmqvz485T0=;
        b=QZggdWOxkczm4Z5NsP/Arq9xAzAzzRSl+yQ6tdCHJ2UV6WjnF19BnbZej56Mi8ggka
         Wh1ChX+zs3+WRlzqaQFeW4IMK8fvb9f2zIndLl1YHh6tCJDA7DmNxHGTYhvy2bufq8S5
         GJJaYgdb818qe1lbVmkiNi5isvOz+lADnDArT1IpA8n8q+UNBYUP2YADCD5DvmOyoCjZ
         jZkhFhN83gUEdUD7LT3dalxeGMH59+cGJvm+lE6M5CnMWVlIoTPxgzm/wx769ZuVy4bB
         iPleZJaMbPjqH6nrXQycuiKt+Yz38N9KbD5buxWncqLZ0t210FMSVaGZJSDQgxhkrvzt
         HoLg==
X-Gm-Message-State: AOJu0YwQpLzeR6xvwiJRJ8UB66QtFSaXd+prLMdwEFyRDlmuMU6cPjUv
	W0xj24w6s6uIqtEtr0k6ZcMR
X-Google-Smtp-Source: AGHT+IFeGL0YNaz12yK47SQ3d2kx79eNnp9ghqmx9WBqdQmbVUEY2qMwhH3UEhXIPpZlpyoWfifHHQ==
X-Received: by 2002:a05:600c:1d13:b0:40b:5e21:c5db with SMTP id l19-20020a05600c1d1300b0040b5e21c5dbmr247363wms.169.1701849384546;
        Tue, 05 Dec 2023 23:56:24 -0800 (PST)
Message-ID: <f9320124-dc35-4c87-bbfb-46c3523d4556@suse.com>
Date: Wed, 6 Dec 2023 08:56:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Trying add smt=off disabled cores to cpupool crash xen
Content-Language: en-US
To: =?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>
References: <ImC5JB7OjNgCNtCixZSzBIyXAyR0qI-DKWcm-w5YtHP_5aH71GA_zJK2C4AmA4_GtaYAKK6wGEM8YZ2THj2qLe9kFhjO5bEl8qoqRY8o9p4=@proton.me>
 <987b03e9-7a16-434a-a060-538dd5a6f045@citrix.com>
 <2e25ea9e-5f38-4363-ae34-cf838d161cc8@suse.com>
 <44bbbc6f-607e-4c8c-b4a4-de220345b2b5@suse.com>
 <1fc21e82-f9f3-4929-a138-2b3de98c06dc@suse.com>
 <dec807bc-8450-48b0-be99-70bf17e62bca@suse.com>
 <eoYHHXdHJzBIPmppjwYPoxVy_LbXN8PCF5FawlOBYMIpqAUeOiPNsW9ZVL3u_iCpzCy7xB0muzDKIfCIDdiFkR-bumO3TgxZkksrOZE7_oE=@proton.me>
 <4f6445b2-f871-415a-aa72-7c08a2c357e0@suse.com>
 <RWTcalGTi6AWz6y3kGdVeeviN3FSE96OVVCyH-DL9qySYjv0jImv0avp2uCDGGTtUm830cGTQeffygUZXECli4JChABgzUyUjsv2zFJiTVU=@proton.me>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <RWTcalGTi6AWz6y3kGdVeeviN3FSE96OVVCyH-DL9qySYjv0jImv0avp2uCDGGTtUm830cGTQeffygUZXECli4JChABgzUyUjsv2zFJiTVU=@proton.me>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 18:24, RenÃ© Winther HÃ¸jgaard wrote:
> You are right about sched-gran=core being the issue.
> 
> I don't know if this is relevant, but my CPU shouldn't be able to use sched-gran=core it's asymmetric.
> 
> smt=on with sched-gran=core gives me a warning that it's falling back to sched-gran=cpu, I tested smt=off with sched-gran=cpu and it works.
> 
> This warning is missing with sched-gran=core and smt=off 
> 
> (XEN) ***************************************************
> (XEN) Asymmetric cpu configuration.
> (XEN) Falling back to sched-gran=cpu.
> (XEN) ***************************************************

And (presumably) rightly so, because at the core level (presumably) there is
no asymmetry.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:03:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:03:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648966.1013102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmsj-0006Qo-QR; Wed, 06 Dec 2023 08:03:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648966.1013102; Wed, 06 Dec 2023 08:03:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmsj-0006Qh-Nm; Wed, 06 Dec 2023 08:03:45 +0000
Received: by outflank-mailman (input) for mailman id 648966;
 Wed, 06 Dec 2023 08:03:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAmsi-0006QE-9d
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:03:44 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f940b7d1-940d-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 09:03:43 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c09fcfa9fso36796195e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:03:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o18-20020a05600c4fd200b0040b45282f88sm24533118wmq.36.2023.12.06.00.03.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:03:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f940b7d1-940d-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701849823; x=1702454623; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=oI+yvhZvfHWj13V/LzQU0MG0M1pV6Mfy3pqbwS+VTQ4=;
        b=J1/2M++i/ErLdKeo2iGdSzA2pnllTQSynppxHDfCNz58VMKdKPYs5FQNeTBrW0jXw4
         NKXMSw5/mRSJjQ/CgExTAx4VJLU6Aop44ufhUVNFKKj9fXJ899BrQeTjmQA5aLQsXFY8
         VehU0mLfqGxSkKLMVhuwAbzH4IUXafYFTAovNakg2wJUQ8uul3U06oEJ/kBqdg9pacpr
         eSKpo5EgsEsR/BUoC0UkmDCGCWJU6zCtjPm/fJof3FQWs7Vmvz0cRY8yDtPTAWXOekhT
         kYPgq7vF5mv659a4RvCwBVUE154Ynb0jr+9iFCXiXnpeWWfDyovaRtMb31FUbVH8nwWv
         PkNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701849823; x=1702454623;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=oI+yvhZvfHWj13V/LzQU0MG0M1pV6Mfy3pqbwS+VTQ4=;
        b=ivT5xA88DRF4mR1bDwoWyKLxLfl/1AOjH7rDjp3HEFsBafckcxVAEx3GPeEr87SUNy
         Ub/jmMBpN20idP9GTqnHHqpX2Bmzbtng60rXKvqlw4nvryqB9igw15OfI/LymJm0Pkb5
         9R0lZthl8NSPQmxl3wZdixrewlG8Wrv9HbRLvsrMpUM7Pf94sg6fdbsf25VuHgnsMuQi
         MWsHFtnRo3YcrvFjFd/gx89DEXTLjjDN2hNNHvZYyV4mat4guteiKXdZ6iqtptusXp4l
         k3BY/qvCRFYAaYFomrLg0AnHFFPsQGERbqFRsFz8Evul/gf98ZlOJsvbWxPBiZfaJKfN
         nwmg==
X-Gm-Message-State: AOJu0YxVztZE88gAT91AHeBNPLXSmJEYasLrB79/b+MDcKmf3wAwPeuQ
	AtdJPuaUGCRZGBC7e+69dsA4
X-Google-Smtp-Source: AGHT+IFpGJvCMc4NCtV8W6Zs7H2aSSHAkAI2tvK7W8bnBUr2UHCBeZEEQ+wS3KmMGDC/RiQT/xv2hQ==
X-Received: by 2002:a05:600c:5248:b0:40b:3441:37 with SMTP id fc8-20020a05600c524800b0040b34410037mr164428wmb.30.1701849822756;
        Wed, 06 Dec 2023 00:03:42 -0800 (PST)
Message-ID: <65972619-874d-413d-b02f-e4ce4da0cdea@suse.com>
Date: Wed, 6 Dec 2023 09:03:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/6] xen/acpi: address remaining violations of MISRA
 C:2012 Rule 8.2
Content-Language: en-US
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>, Wei Liu <wl@xen.org>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
 <6c0fa7c13641c53800c323285275fd58d9989326.1701764980.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312051905050.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312051905050.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 04:07, Stefano Stabellini wrote:
> On Tue, 5 Dec 2023, Federico Serafini wrote:
>> --- a/xen/arch/x86/include/asm/acpi.h
>> +++ b/xen/arch/x86/include/asm/acpi.h
>> @@ -81,7 +81,7 @@ extern bool acpi_lapic, acpi_ioapic, acpi_noirq;
>>  extern bool acpi_force, acpi_ht, acpi_disabled;
>>  extern u32 acpi_smi_cmd;
>>  extern u8 acpi_enable_value, acpi_disable_value;
>> -void acpi_pic_sci_set_trigger(unsigned int, u16);
>> +void acpi_pic_sci_set_trigger(unsigned int irq, uint16_t trigger);
> 
> There is something strange about this one, I cannot find the definition
> anywhere. Am I missing anything?

That was apparently added by mistake in 0de39e40277b ("Update ACPI headers
to Linux 2.6.24"). I wouldn't be surprised if there were more.

So yes, the line wants deleting, not updating.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:09:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:09:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648969.1013112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAmy2-0007c2-DC; Wed, 06 Dec 2023 08:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648969.1013112; Wed, 06 Dec 2023 08: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 1rAmy2-0007bv-9y; Wed, 06 Dec 2023 08:09:14 +0000
Received: by outflank-mailman (input) for mailman id 648969;
 Wed, 06 Dec 2023 08:09:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAmy1-0007aZ-0r
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:09:13 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc1c7c1f-940e-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 09:09:10 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40838915cecso68015595e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:09:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r12-20020a5d52cc000000b00333590f3bf9sm3393072wrv.19.2023.12.06.00.09.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:09:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc1c7c1f-940e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701850150; x=1702454950; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=p7TnyMXqU6IH7auf8BzORYUSJaMA52YHFE2PZuqR20M=;
        b=Drlb/vlAs0C0hPks7Psz4Sb83K1zdSqfuEvhROnzl5ZRlR+bk01SB9J13NUT6JEnZK
         uWFvP7ZwoBWbNDiGwXDCWS6qFi5i2ZjkLa375h5mKpuGykQk+62oP8DaLFt7K36xt0Cs
         K3R/4vVyhjTrKqaMDdIUuRM3/kd+/EE+jNyDXIWT0nsKI8cvsqhzfQ/glDgs7S/bAEu8
         OUSg8t6bkBueN5lL8FBtUyJrHqaIPo6rO0yEEljZCFsdqrrD3KksiaXuHXgYJgOUxGqd
         008e9mdkzzI5CLNZfDiNohasnZ6MkX0EVNj/5nPl0M4R2taX0/qi08LY+6R5chFCD+MX
         2e2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701850150; x=1702454950;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=p7TnyMXqU6IH7auf8BzORYUSJaMA52YHFE2PZuqR20M=;
        b=vAAR4zFfsTVN+aQ6cWni9oR+4TD2+OnstWM2QHBxCIkfwsROByBZmIwg5rslW0yZGC
         mTtlfjNU4UXpt/WXFdL7G1ySuxysqnougdegZ8zEkIDsofpQuBUvH5yeS2GwnFBy7NZl
         Gyh7UdaQyMmBezzSiJvCZOryIRciSFWL6fNKcxYSmTA96PXFg7Vt3xqErwWR4pqrA8jx
         wx0hMpYbizwhowIWVqDNFjA0m3ZaXbF2KD8+iSLz84P8xuoYlZk6GlJfiKXXt0gB61KR
         gnmac/MsYfI7dFTjCdeNBhCHkd9qRAQKs7+pPpFAG2Q0Zl80OWz5Kf6DFD2w5uBlAkig
         iymA==
X-Gm-Message-State: AOJu0YziVqT0ANDkqeWHrTwMtEwGLnsAQv4yMhg1+mIiSSvnSGTlm791
	SXNzAyNkr8cEpBR7KmTjT4GV
X-Google-Smtp-Source: AGHT+IHN1O5PRusFB2ac0y5+UWDP4O+2QZa0QD87n2luzbTGfdFSxy8DAtRss9+beWA37WR1Jy0A5w==
X-Received: by 2002:a05:600c:4a13:b0:40b:5e59:da6e with SMTP id c19-20020a05600c4a1300b0040b5e59da6emr271970wmp.129.1701850150221;
        Wed, 06 Dec 2023 00:09:10 -0800 (PST)
Message-ID: <dfa87030-f711-49ee-828e-de73f123c125@suse.com>
Date: Wed, 6 Dec 2023 09:09:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/6] x86/mm: address violations of MISRA C:2012 Rule
 8.2
Content-Language: en-US
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>, Wei Liu <wl@xen.org>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
 <461a97a14a530286a8b8d0d30a1a8ed63690bc26.1701764980.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312051908470.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312051908470.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 04:10, Stefano Stabellini wrote:
> On Tue, 5 Dec 2023, Federico Serafini wrote:
>> @@ -572,20 +572,20 @@ int __sync_local_execstate(void);
>>  /* Arch-specific portion of memory_op hypercall. */
>>  long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
>>  long subarch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
>> -int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void));
>> -int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
>> +int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
>> +int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
> 
> Also for compat_subarch_memory_op I cannot find the definition

Looks like in b8a7efe8528a ("Enable compatibility mode operation for
HYPERVISOR_memory_op") I blindly added the declaration, without there
actually being a definition.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:17:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:17:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648973.1013122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAn5a-0001nF-5F; Wed, 06 Dec 2023 08:17:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648973.1013122; Wed, 06 Dec 2023 08: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 1rAn5a-0001mL-2W; Wed, 06 Dec 2023 08:17:02 +0000
Received: by outflank-mailman (input) for mailman id 648973;
 Wed, 06 Dec 2023 08:17:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAn5Y-0001ls-D3
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:17:00 +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 d28af3cd-940f-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 09:16:57 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c09f4814eso44704405e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:16:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r16-20020a05600c459000b00406408dc788sm24722408wmo.44.2023.12.06.00.16.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:16:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d28af3cd-940f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701850617; x=1702455417; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=IS2NIFF20MdsmJ4P4D6nHB/F14y4z6qF1Zqlz/EUFF0=;
        b=ME54wuwXfVNRPRUE0cTIwXjlJ52XddsajvjBbmcH86xAZdfZdxtyaEBXxCpWE9pQwd
         bVPwvG/bGRkRj/WwRyVh/kXYkUPy9IeL1TZPLr+CsGm+pZF76I65UKFJCDRu/wtmyp/b
         9HpilvekoUCpSOwEH7WKs24GAl5wYdT37UUEejWtdSH4USB2qYW6j1ZzZWm+ArC7cFcn
         Ulx+ZVVzqkiPcS70XqJ059VLUBAPYezyH1y82YVmPXEOqxnCjbRWG9vFiC8Zy8YmaSw9
         +xOg8hkUrrbn1Kkc6rdXhsouswALgcrYyr4oNSxB15rBdORqyJ8b4j51hsTY18tgXe4J
         cKpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701850617; x=1702455417;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=IS2NIFF20MdsmJ4P4D6nHB/F14y4z6qF1Zqlz/EUFF0=;
        b=L5CS3IL6z/OYTroD3sOPd/BCsFC1XX+oBlWJfPOllUQ/3js5NmJAbjtdN6+0pJiqm7
         EnDFyKhkHnp4/0yXAw0YVjuiOd9fV5xLHBKah0RbAGYuDJoY737yErcGitUTHoUBKGQD
         QCWYnoTAfFJ4R9gucz/Nbt8aZ+MMAEYnri1+lKXchuqIH1wokNUUr3hvBoQdAyaFjFgl
         IDUqw7MKN++j+qYIVj3Yrd80gGM8KmuVwMxxM0fcPrKRr2szB8xXPC0u6sVYheVed8zd
         LoPnCg0Wx2NvhCMKg05F+qijBAn3m0BP0m4IlqQDO0tnrmkQWlU98Xi9hlfZgioW7o+/
         CE+A==
X-Gm-Message-State: AOJu0Yz8TouRMwziA2nD3/9EnOy1vijnZ6shOdoxHJ7kh5MdxDWGGYnH
	xj0usi3t6wwh1JMEFL0Ru2jw
X-Google-Smtp-Source: AGHT+IE90nHlxrIWL/TOAgNLWaipK84uMmwzPW2bEVxlWjQBK0u4JSof0kBURH8lVb17S5fmPA7Gmg==
X-Received: by 2002:a05:600c:4586:b0:40b:5e59:cc9f with SMTP id r6-20020a05600c458600b0040b5e59cc9fmr370382wmo.128.1701850617390;
        Wed, 06 Dec 2023 00:16:57 -0800 (PST)
Message-ID: <96f31a47-ee5f-41ae-976a-35663d5b51b6@suse.com>
Date: Wed, 6 Dec 2023 09:16:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 3/6] AMD/IOMMU: address violations of MISRA C:2012
 Rule 8.2
Content-Language: en-US
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>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
 <c529cb0d8eba253436c5bba22f8bceddeaaf5831.1701764980.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312051913190.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312051913190.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 04:15, Stefano Stabellini wrote:
> On Tue, 5 Dec 2023, Federico Serafini wrote:
>> --- a/xen/drivers/passthrough/amd/iommu.h
>> +++ b/xen/drivers/passthrough/amd/iommu.h
>> @@ -138,10 +138,12 @@ struct ivrs_mappings {
>>  extern unsigned int ivrs_bdf_entries;
>>  extern u8 ivhd_type;
>>  
>> -struct ivrs_mappings *get_ivrs_mappings(u16 seg);
>> -int iterate_ivrs_mappings(int (*)(u16 seg, struct ivrs_mappings *));
>> -int iterate_ivrs_entries(int (*)(const struct amd_iommu *,
>> -                                 struct ivrs_mappings *, uint16_t));
>> +struct ivrs_mappings *get_ivrs_mappings(uint16_t seg);
>> +int iterate_ivrs_mappings(int (*handler)(uint16_t seg,
>> +                                         struct ivrs_mappings *map));
>> +int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *iommu,
>> +                                        struct ivrs_mappings *map,
>> +                                        uint16_t bdf));

(Note this for the comment near the end.)

>> @@ -361,14 +362,15 @@ static int iommu_read_log(struct amd_iommu *iommu,
>>  
>>   out:
>>      spin_unlock(&log->lock);
>> -   
>> +
>>      return 0;
>>  }
>>  
>>  /* reset event log or ppr log when overflow */
>>  static void iommu_reset_log(struct amd_iommu *iommu,
>>                              struct ring_buffer *log,
>> -                            void (*ctrl_func)(struct amd_iommu *iommu, bool))
>> +                            void (*ctrl_func)(struct amd_iommu *iommu,
>> +                                              bool iommu_control))
> 
> instead of iommu_control it should be iommu_enable ?

What purpose would "iommu_" serve? It would be actively confusing, for
colliding with the same-name global we have. Both functions passed here
use simply "enable".

>> @@ -1158,14 +1160,15 @@ static void __init amd_iommu_init_cleanup(void)
>>      iommuv2_enabled = 0;
>>  }
>>  
>> -struct ivrs_mappings *get_ivrs_mappings(u16 seg)
>> +struct ivrs_mappings *get_ivrs_mappings(uint16_t seg)
>>  {
>>      return radix_tree_lookup(&ivrs_maps, seg);
>>  }
>>  
>> -int iterate_ivrs_mappings(int (*handler)(u16 seg, struct ivrs_mappings *))
>> +int iterate_ivrs_mappings(int (*handler)(uint16_t seg,
>> +                                         struct ivrs_mappings *map))
> 
> Instead of map it should be ivrs_mappings ? Actually it reads better as
> map and I know it is not a MISRA requirement to have function pointer
> args match. I'll leave this one to Jan.

The name is entirely meaningless here (i.e. not helping with anything),
so imo "map" is not only fine but also (see above) consistent with other
code.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:41:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:41:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648977.1013133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnTW-0000TA-3k; Wed, 06 Dec 2023 08:41:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648977.1013133; Wed, 06 Dec 2023 08: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 1rAnTW-0000T3-0N; Wed, 06 Dec 2023 08:41:46 +0000
Received: by outflank-mailman (input) for mailman id 648977;
 Wed, 06 Dec 2023 08:41:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAnTT-0000SG-Sd
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:41:43 +0000
Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com
 [2a00:1450:4864:20::444])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47d3e242-9413-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 09:41:42 +0100 (CET)
Received: by mail-wr1-x444.google.com with SMTP id
 ffacd0b85a97d-332c0c32d19so578204f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:41:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 l14-20020a5d6d8e000000b0033343b1ec1asm8704506wrs.26.2023.12.06.00.41.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:41:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47d3e242-9413-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701852102; x=1702456902; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FSJmxM6AaCYttK0D/fkGRAXDM/3Z8X9PgrOncB9F9OQ=;
        b=gRxJpmfXiUkdf+4vixQ7K0SkImiJ9WyiRnIxgUw/oV6tCKonEZ5Py2EoKrOzsaQOLF
         ChHeiVvAwJv3XZog3/2/MZXL51O//pp0oXCusTidg+vj4hGnDRF8rpE2apImY3KjZ8fB
         MBa7+ObqgeNnCkD3v2ZlD5Gs4UNgb8bF41UXDuv3dADkQknbXBrIzd6dqNZM0Hlz6NMI
         Q3Fzi+1aNIRDX4rS4+dxcP3ET2XbJWjEGruBQy/sYkTuGT9NTawkzt5/PSiVkFWHX0UM
         fOgYPtwohhRWqXglu0Lof1VYZPu1DTF3XoCinl/yLvqZiyILMD/fJjBRX/I29MlOJhoO
         4S1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701852102; x=1702456902;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FSJmxM6AaCYttK0D/fkGRAXDM/3Z8X9PgrOncB9F9OQ=;
        b=TD/a5+P3HIcMayBhgBpXI3IeTj51PTXvVrW8c1ZzGHACo0aKcgtbIJIVauzzuJadnD
         /CJN0FFieiB1qXKp4+hpjsUtNCNtxWnwPcYC7EOXney2UdS4PSNuq7GGOQa2HwUmF5vW
         qiITc5AZBpClpWmHqKD5hNVS2M9kXL9BZIaSyEl1Qux75nsrSP1ukbZp+iQZMIOKp/yb
         0Aj88Y5UBqiY7Mw93E8h/AXGAFQzjzlNG79irYEYvJ0V7wrET7Z7cEOueK24ShtEhxai
         kiCRBAeH95fGy1u1MDtltAkZucqaOohF+zlvVA3iE7iSdhwOaOB5BfyrB7EHQXO3yYmU
         ab2Q==
X-Gm-Message-State: AOJu0YyxuBOUMZipuX6n5XktfOufPAtkYAgrTYvDKF7VDB4uTXU2/UCc
	DCd92H+ePMcxBYfAGoJ9sM6Y
X-Google-Smtp-Source: AGHT+IEt8BQ36J6a3X/Kz6hddQFV22uS9olYdkI6dikI24GGvg2UKGZMfjZKhA/sYWL/3fcU2BxxAQ==
X-Received: by 2002:a5d:6143:0:b0:333:2fd2:2ed4 with SMTP id y3-20020a5d6143000000b003332fd22ed4mr263672wrt.77.1701852102175;
        Wed, 06 Dec 2023 00:41:42 -0800 (PST)
Message-ID: <50b36423-d1e1-406f-a63f-66f2e4dce68e@suse.com>
Date: Wed, 6 Dec 2023 09:41:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
To: George Dunlap <george.dunlap@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <jgrall@amazon.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>
References: <20231205181218.74667-1-julien@xen.org>
 <CA+zSX=aUV00BwnNfFTbCE=6PuVNT=UFvE0tnMO3UhwCMh5jmHQ@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: <CA+zSX=aUV00BwnNfFTbCE=6PuVNT=UFvE0tnMO3UhwCMh5jmHQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.12.2023 03:21, George Dunlap wrote:
> On Tue, Dec 5, 2023 at 6:12â€¯PM Julien Grall <julien@xen.org> wrote:
>>
>> From: Julien Grall <jgrall@amazon.com>
>>
>> Several maintainers have expressed a stronger preference
>> to use '-' when in filename and option that contains multiple
>> words.
>>
>> So document it in CODING_STYLE.
>>
>> Signed-off-by: Julien Grall <jgrall@amazon.com>
>>
>> ---
>>     Changes in v2:
>>         - New wording
>>         - Update the section title
>>         - Add Jan's acked-by
>> ---
>>  CODING_STYLE | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/CODING_STYLE b/CODING_STYLE
>> index ced3ade5a6fb..ed13ee2b664b 100644
>> --- a/CODING_STYLE
>> +++ b/CODING_STYLE
>> @@ -144,6 +144,15 @@ separate lines and each line should begin with a leading '*'.
>>   * Note beginning and end markers on separate lines and leading '*'.
>>   */
>>
>> +Naming convention for files and command line options
>> +----------------------------------------------------
>> +
>> +'-' should be used to separate words in commandline options and filenames.
>> +E.g. timer-works.
>> +
>> +Note that some of the options and filenames are using '_'. This is now
>> +deprecated.
> 
> Sorry for not catching this last time; "are using X" isn't really
> idiomatic English; more idiomatic would be something like the
> following:
> 
> "Note that some existing options and file names use '_'.  This is now
> deprecated."
> 
> Since we're changing things, I *think* most style guides would advise
> against starting the sentence with a punctuation; so perhaps:
> 
> "Command-line options and file names should use '-' to separate words;
> e.g., timer-works."
> 
> And what about adding to the last paragraph:
> 
> "When touching code around command-line parameters still using '_', it
> is recommended to modify the documentation to say only '-', but modify
> the code to accept both '-' and '_' (for backwards compatibility)."

In this context see
https://lists.xen.org/archives/html/xen-devel/2020-01/msg01945.html
and Andrew's response
https://lists.xen.org/archives/html/xen-devel/2020-01/msg02006.html
I'm still in favor of addressing the issue centrally (making unnecessary
adjustments like you suggest in the new paragraph). Yet I think Andrew's
objection would cover such adjustments as much as my generic solution.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:44:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:44:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648980.1013143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnVj-0001L0-Jb; Wed, 06 Dec 2023 08:44:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648980.1013143; Wed, 06 Dec 2023 08: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 1rAnVj-0001Ks-Gu; Wed, 06 Dec 2023 08:44:03 +0000
Received: by outflank-mailman (input) for mailman id 648980;
 Wed, 06 Dec 2023 08: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAnVi-0001Ki-Sd
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:44:02 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9acb3dab-9413-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 09:44:02 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40b397793aaso3276775e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:44:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e2-20020adf9bc2000000b003332fa77a0fsm14315315wrc.21.2023.12.06.00.44.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:44:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9acb3dab-9413-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701852241; x=1702457041; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+/hfupQE0FCDpaIJHdnn/iB9CcbgSgDZqdvxwWfvR0I=;
        b=c8p+f9bwQ30MdSWvGM6+tEMOz+c+ha3WHlHOI/sSKnC7TQZ8mnb7fHJJFd+9224Das
         tpVij9jXTlCuhVt+kjUbSDOz4Ca5HGH2tpbtKsnGMUNCkYyl/tnEXChMt7/ex1PES18L
         9wF30S0a6F1dn0mvwOhUsZuAdIii2Av2PuLWrccsjY93fQc2KZV3zmt4ppfdXTeRb5Fy
         ZszKLuSOFCjc8Hh6tten34clVdF9aDNmp1pylrx5nSfL3HtsbCzA0ZlF/7QYur3BQ6zs
         r9h2Tpv1iNRXgkN9DrPti3JWF2IvoM+uv3JwLArNgkeX3MKFcrFLHDIpIc3rzumYxaMQ
         eDGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701852241; x=1702457041;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=+/hfupQE0FCDpaIJHdnn/iB9CcbgSgDZqdvxwWfvR0I=;
        b=TuGrJY1da9YvqHw69rXYq6aetZaOxdihywHPLzeDPEMZ9fBZZbn7SP5aXeToL4pipf
         4GRhxZYmUQqHZSlUJTld5Voy4/X0SM7/0RjfgH05TJ3HW7AmFo0JOyTPeKgQGUqhmSJt
         r0t82mdz66VUwLm1adYRPRI23Sz/h2/KeDjfKyEWWpi/TrPfJmT3CY+9QmSEmuas6CKz
         I56+qWXas74Mn+VVQ2nznfEtL0ZM7TKlhQVQs7XaQJ0YQzee0oASch3/4foVlU4pP2WH
         OfngCOrOg7QAFu62dIuZyGkRMcgm8RPkfk7cWXtoT4Jin4KB680zYcDKC3rjQ7VoyGAH
         LJMQ==
X-Gm-Message-State: AOJu0YzaNbfy0rgJwGTmrXXkgzPuhKbJio+SF3/xU6hA+enOoNH9NCZY
	SF8Bt8rRxJvK7LMuQYJAqwkj
X-Google-Smtp-Source: AGHT+IFf8IAVcvqUVDccrRt+TNWVNnDZ9iFbpHWMPgsmSHqcdGkksJUdYzrZ3KASUH6y6GRHLCGVyA==
X-Received: by 2002:a05:600c:3596:b0:40b:4072:54de with SMTP id p22-20020a05600c359600b0040b407254demr1281928wmq.13.1701852241369;
        Wed, 06 Dec 2023 00:44:01 -0800 (PST)
Message-ID: <606969b5-5ee3-4e15-92d4-86b142845437@suse.com>
Date: Wed, 6 Dec 2023 09:44:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/arm: set -mno-unaligned-access compiler option
 for Arm32
Content-Language: en-US
To: Juergen Gross <jgross@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>,
 xen-devel@lists.xenproject.org
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-2-jgross@suse.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: <20231206071039.24435-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 08:10, Juergen Gross wrote:
> As the hypervisor is disabling unaligned accesses for Arm32, set the
> -mno-unaligned-access compiler option for building. This will prohibit
> unaligned accesses when e.g. accessing 2- or 4-byte data items in
> packed data structures.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Assuming this will want backporting, should it have some Fixes: tag?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:46:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:46:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648982.1013152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnYV-0002X4-0t; Wed, 06 Dec 2023 08:46:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648982.1013152; Wed, 06 Dec 2023 08:46: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 1rAnYU-0002Wx-Tt; Wed, 06 Dec 2023 08:46:54 +0000
Received: by outflank-mailman (input) for mailman id 648982;
 Wed, 06 Dec 2023 08:46: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAnYT-0002Wj-R0
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:46:53 +0000
Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com
 [2a00:1450:4864:20::342])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 000b48fe-9414-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 09:46:51 +0100 (CET)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-40c19467a63so5133585e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:46:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 n10-20020a05600c4f8a00b0040b4b2a15ebsm21051888wmq.28.2023.12.06.00.46.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:46:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 000b48fe-9414-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701852411; x=1702457211; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GUdAFjZQ+8xpF21yy+dYas4Fg+4I2AZxMuS+an0Ea/I=;
        b=YIzsBzfPxULIaM2ukmDu37bs0d1o0fqZVV1yloUBbRrYBfABO6SVGqGyGKkzKZIfvF
         SFGHkS+8lB0EGZNg0LbD5UeN7Yk206gvTECp/LmhDcFVDb3xtM+JE06AnJqelqLUWT6+
         61cBZqiv1eo6UsoYPqE8OZmlPvlGZ6dvEl7tSgaHvsgBaOvioWPqKzE53bP7JgJwMRNy
         IpSicHoW8myIuFUJpehOGQ/Mjx5Q8MKNy4P0GHi1f3BsjP730XKn3+n6eDIncnM7xGXh
         IRF5MXGUeCm/Ko29jXs7toqwJdHnzMjWrlWbGiCX93BgFmm2rr4HqkjfPJ1vHyIutqUa
         Ykzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701852411; x=1702457211;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=GUdAFjZQ+8xpF21yy+dYas4Fg+4I2AZxMuS+an0Ea/I=;
        b=jrN022b9o99WLbXvl85OZ2lFYpZrUMS6kUmGFecGmKaRgrjPPoxc5wUURLy4Ea/ScF
         Hl/agr4pp+39bozEFISEvp5nUp5Z3HnuEhlc6mXxopHRc9vt1lszh1AjQ+Oo0YYMrYQg
         1Y1bV2FCEf8xmFRQV3fclTlZKf+hyhJ8SnejsmoTcSgTAGXr5SDazT11psqo9X3sSKny
         zjiJ2X9gPJdTWI6ko8nFwrzG8t6/z22NypPLuBOBqF5sLtYfH9/l7PVNNBdYtX2M1IiE
         EVDpOVAbuoHYmnYrR9xhRXSeILu/rR2l+pI095VlB2l6VnXrBpvptyHjIrGjT6bHCjYE
         w6bQ==
X-Gm-Message-State: AOJu0Yxe3idFB/dTo6uY4prO9V0nbO9AlV10ihavdRilqHINz2tCYnOO
	1sz+YsHrnY2ZM7DeRlDjqwO8
X-Google-Smtp-Source: AGHT+IFcnAud9UKchgun9HIFGpeOaoqt1UHJLPNtInfF1/6J0va/eFkvCWksa0JjyGn0IsCGI9cPjQ==
X-Received: by 2002:a05:600c:1c01:b0:40c:1421:ae89 with SMTP id j1-20020a05600c1c0100b0040c1421ae89mr345491wms.121.1701852411188;
        Wed, 06 Dec 2023 00:46:51 -0800 (PST)
Message-ID: <96711b23-9dd9-4029-aaea-a3e755c4bd3e@suse.com>
Date: Wed, 6 Dec 2023 09:46:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: 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>,
 Arnd Bergmann <arnd@arndb.de>, xen-devel@lists.xenproject.org
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.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: <20231206071039.24435-3-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 08:10, Juergen Gross wrote:
> Instead of defining get_unaligned() and put_unaligned() in a way that
> is only supporting architectures allowing unaligned accesses, use the
> same approach as the Linux kernel and let the compiler do the
> decision how to generate the code for probably unaligned data accesses.
> 
> Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
> the Linux kernel.
> 
> The generated code has been checked to be the same on x86.
> 
> Modify the Linux variant to not use underscore prefixed identifiers,
> avoid unneeded parentheses and drop the 24-bit accessors.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 803f4e1eab7a
> Signed-off-by: Juergen Gross <jgross@suse.com>

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

Nevertheless ...

> @@ -15,67 +7,82 @@
>  #include <asm/byteorder.h>
>  #endif
>  
> -#define get_unaligned(p) (*(p))
> -#define put_unaligned(val, p) (*(p) = (val))
> +/*
> + * This is the most generic implementation of unaligned accesses
> + * and should work almost anywhere.
> + */
> +
> +#define get_unaligned_t_(type, ptr) ({					\

..., do we need the trailing underscores here in addition to the already
sufficiently clear _t suffixes? (Leaving aside that ..._t generally is to
denote types, not macros or functions.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:52:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:52:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648987.1013163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAne5-000562-Kn; Wed, 06 Dec 2023 08:52:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648987.1013163; Wed, 06 Dec 2023 08: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 1rAne5-00055v-Hs; Wed, 06 Dec 2023 08:52:41 +0000
Received: by outflank-mailman (input) for mailman id 648987;
 Wed, 06 Dec 2023 08:52:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAne4-00055p-LN
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:52:40 +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 ce67d714-9414-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 09:52:38 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3332f1512e8so443069f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:52:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 q15-20020a056000136f00b0033332524235sm13555128wrz.82.2023.12.06.00.52.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:52:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce67d714-9414-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701852757; x=1702457557; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1t7Z/c0xt0riUyHpPIzTr8cBpcGMvqg1+423qEyu9VM=;
        b=gpsErwXlOG1mnauitBJTInZrTAW7hpE/ywrdCyZiffN8rstbL81rDgActURicbnZbg
         AtlO78uRktVZw5DdEwLi9PfiRwwVKgruCfsAh/PnCbIyBsq9zY9d2dNFPCw884lzqmCj
         I2KYOED9Us0QjOLORraQlnZze7N8S7k4vGHeAAtadyd7rssRYz4B58NXgcTmYtjdIrVc
         lm67o2pvjpar9NAKkdpqvGyKvVekpg9lw1WmvUNSbs4qvLQPkI4p+vxStAoTSYV3H79l
         cssWL73xgGPmnVfpW9Bw+cRD8+YWFfBf2fWKbnmedYPgibCdvgII0c/utwaLwoGMDm5e
         AmRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701852757; x=1702457557;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1t7Z/c0xt0riUyHpPIzTr8cBpcGMvqg1+423qEyu9VM=;
        b=hYJMbL00n3ZS+2PLd+6xi4l4BTMdJxEyxOTPYaDNsWhZXHneCzImmGCGGiFRVGI4RU
         X+UvgF7KCS9tLKyaXs8J5fNwETEIaNl2TdEshnNl5QqmKxL2slE77hW3XvdPDVoZo1zA
         poK0KRU7goGHvWmJIYWtYZIGNnlpiWmAhamrY6i9GmbSC/3bE10VbUyhhl22UUFM1uJC
         Lhp3V01MSkTDqGokfuriQ+GbdsFICzs9qm6fyuiCI6QxMIp2YNi85VTIVz0d+19jnXcf
         ZJErBQnk4KMhxutlEWv64QbiD35S+BcM9qIp1jskMKmP7tNHszQ0EaudUe8+uEF23khG
         iHMQ==
X-Gm-Message-State: AOJu0YwTMVUHikELB3+MJuD8Eiy+EfyEWu4xnKZi2a/NSxj+Trb4cXEi
	T5lQKWXrd35AI04Wx70dElTf
X-Google-Smtp-Source: AGHT+IGKDyBaI0fPrtefGHsEZXos9JxcIpP/9F5+1wNelO1/5D7EF7IxjkLrmyOjunDuGWo40VtA2A==
X-Received: by 2002:adf:e647:0:b0:333:543e:6a68 with SMTP id b7-20020adfe647000000b00333543e6a68mr310023wrn.32.1701852757468;
        Wed, 06 Dec 2023 00:52:37 -0800 (PST)
Message-ID: <c7d844ea-139e-416f-bb8e-51e63c0fe3ed@suse.com>
Date: Wed, 6 Dec 2023 09:52:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>,
 Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>,
 xen-devel@lists.xenproject.org
References: <20231205183226.26636-1-julien@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231205183226.26636-1-julien@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2023 19:32, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
> 
> Right now, all tools and hypervisor will be complied with the option
> -Wdeclaration-after-statement. While most of the code in the hypervisor
> is controlled by us, for tools we may import external libraries.
> 
> The build will fail if one of them are using the construct we are
> trying to prevent. This is the case when building against Python 3.12
> and Yocto:
> 
> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44,
> |                  from xen/lowlevel/xc/xc.c:8:
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE':
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
> |   233 |     PyVarObject *var_ob = _PyVarObject_CAST(ob);
> |       |     ^~~~~~~~~~~
> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53:
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue':
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
> |   121 |     Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
> |       |     ^~~~~~~~~~
> | cc1: all warnings being treated as errors
> 
> Looking at the tools directory, a fair few directory already add
> -Wno-declaration-after-statement to inhibit the default behavior.
> 
> We have always build the hypervisor with the flag, so for now remove
> only the flag for anything but the hypervisor. We can decide at later
> time whether we want to relax.
> 
> Also remove the -Wno-declaration-after-statement in some subdirectory
> as the flag is now unnecessary.

With all these removals, don't you need to add the option centrally
somewhere? Or else are you sure that no compiler version, including
distro-customized ones, would ever come with the warning enabled by
default?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:55:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648989.1013172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnh7-0005ev-36; Wed, 06 Dec 2023 08:55:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648989.1013172; Wed, 06 Dec 2023 08:55:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnh7-0005eo-0P; Wed, 06 Dec 2023 08:55:49 +0000
Received: by outflank-mailman (input) for mailman id 648989;
 Wed, 06 Dec 2023 08:55: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAnh5-0005ei-Hv
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:55:47 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3ec79325-9415-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 09:55:46 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3333224c7b9so491897f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:55:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e8-20020adfe388000000b00333381c6e12sm11594901wrm.40.2023.12.06.00.55.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:55:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ec79325-9415-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701852946; x=1702457746; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1OUYLbfJ+OPIUWWufbdxTRZ59WUsv0nRjSj+wv9/Bxk=;
        b=UN+HY90PsZ9/XoyoagPTjV1JLgaqy6lOWzeUO36defMapD535+g3qT05mam6RqPS5d
         Q4HTYaXKMKk1solnhK+4Mqm6/sksXtwtrwPrja25qkyLWbKJtv5qzO4upLvr1S64AtBo
         497Owil1JPPQ1SfldK2/ftIRrJAoIRjR9HU85c+M1oglFjLqr3Zk5rupXblizZMaOPsc
         fk10zwHuM/u0ZEPUm8qZYl1eXbn6LuwzhUVGrPmIw7VpE2vpalA7AtxCbsFqa1GtcsD3
         XF0fc2eBu/iCc23rbwa6deTxZBFoV+8hHAcSp+ugVpheVOHwkw7MGGwalee7o864NXV5
         Y+WQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701852946; x=1702457746;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1OUYLbfJ+OPIUWWufbdxTRZ59WUsv0nRjSj+wv9/Bxk=;
        b=Dt0ChmXCKFbhQiWXpcH6fduuMLwN3qBMHLees2twQIouyRpI6fB7WEK1SGQEaa4Zm1
         Mep9mnUDYJxZGEPx3EdlaavnmcclnDS189ilBIR+/z8Yl3rzkhus1L5aANCtCQ8bAakY
         q1LXSPhwvfj4L5fpGE5E+gS7BqsmpHLviO/nSwsdOxfpgCe0g4797/BJxA19WuZEQfrK
         2s9CnV9HdJaemRUQb4UlyoqXrBHMKRdEzTasCKQYRssMo/M1GV8UHl5ViXYEo89kvPxd
         oZt9nhPqZczJJOuSWhShTc7CYjB2EKIhQE9uZUgW2KuXjX9v6OeOtO36TPxb2hjYx3cR
         HRww==
X-Gm-Message-State: AOJu0YxvL5DKHEEIEO433Rs/Ff9CN8yHYTaAmbBJ0sotijEFxTsQLGh0
	wnLe3c0qDIxMfOhxZqppv32E
X-Google-Smtp-Source: AGHT+IG7HuQISta89U+Wjz3DjSC9WfrqBXkbSpQ3Tt0b5hehxdbVMHBgCxKqfpYL4C3HSPmNlB2RSg==
X-Received: by 2002:a5d:4530:0:b0:333:2fd2:68fc with SMTP id j16-20020a5d4530000000b003332fd268fcmr253860wra.143.1701852946054;
        Wed, 06 Dec 2023 00:55:46 -0800 (PST)
Message-ID: <efde6c9e-142e-4ee7-920a-cce42387546c@suse.com>
Date: Wed, 6 Dec 2023 09:55:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 4/6] x86/page: address violations of MISRA C:2012 Rule
 8.2
Content-Language: en-US
To: 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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
 <626f8040804d8f7dbdcde57725ac4eab895f295c.1701764980.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312051916470.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312051916470.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 04:16, Stefano Stabellini wrote:
> On Tue, 5 Dec 2023, Federico Serafini wrote:
>> Add missing parameter names. 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>



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:56:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:56:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648991.1013182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnhh-0006Ar-Bx; Wed, 06 Dec 2023 08:56:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648991.1013182; Wed, 06 Dec 2023 08: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 1rAnhh-0006Ak-9O; Wed, 06 Dec 2023 08:56:25 +0000
Received: by outflank-mailman (input) for mailman id 648991;
 Wed, 06 Dec 2023 08:56: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAnhg-00066u-QA
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:56:24 +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 54b73f38-9415-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 09:56:23 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3335397607dso602402f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:56:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e8-20020adfe388000000b00333381c6e12sm11594901wrm.40.2023.12.06.00.56.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:56:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54b73f38-9415-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701852983; x=1702457783; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=MvhoTOQccWtGwDlA1/GoMpYHcbH1FC3jtYoGV65iBR0=;
        b=RyeCpDOlvr7bfj+OyMNI4NpvFxEakpCemeiGOAY+jx2dWcoxmVAQTLgbGtVvJov4yv
         Zvxiug7Da1tR/ykagpUUmD+lpZ5xVmcwte9lCRVG+Ya9Zi5N1z2uZPFPy11Yzshq1Ict
         ADv3BdzA/rZIbj/OGokaTxqCBPKPseg2egdzztAXoglGwJloaENIRdfQ3C+Q+1+84wlj
         jL1AdQYUe7hR2TO79WpjV7jNxlehZT9/5myAZBZK1V2GAkCJp5kqv4W5ZTn7ZEs6WX0m
         ZRKk5TQqKO6ur79InhpdZLbby7l0lHNvkfNBF2zXuxadt/lyjaqUBe0hGKIVmaOaigkj
         VikQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701852983; x=1702457783;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=MvhoTOQccWtGwDlA1/GoMpYHcbH1FC3jtYoGV65iBR0=;
        b=kIU6U3Xbo0ZgxEnhBWP620b49gLFc//nJicSCMqabvdtY8zsEizQZHCjCocrBr3YKf
         /tBnZUMSMFsc//xGpZmz/qPgRRNUlz8d51Fh/EBv6BbCIkEyHV1C9BEIbs8xoMznc25C
         FuDqY2qW8APDprzM46Wrp0yWMpi0LrCOoiG1XNou8B5a7YH0Yt66095Ap//tcpuZmLAE
         cyZzAyKCZK0oCFKkZ2+MtgE6RniSTekhAQ6lpIiEJM7wmttLQHh2pNLbhKTfUDcZw6K5
         UJifRwgOvtiB5MhUvOL4ACc5pIEKZwmB1ciFAPfZ3xIKlNc5uIiiBUYTiFAJ32jRq5FM
         pn9Q==
X-Gm-Message-State: AOJu0YyWI6lyrGIkio93FMtY7r5Taqr8QH81MV0rRcATiy3hU1/lVd1q
	XyObZ8MTuT7Bu976FPSEbndj
X-Google-Smtp-Source: AGHT+IF7uoQvfWHcyQbPXSX+B0exZAX16AVdpMqYS+/9BcH4swgCMrWB/nPG+d3+fQ/ma4vPEuCcCA==
X-Received: by 2002:a5d:6108:0:b0:333:2fd2:2ef8 with SMTP id v8-20020a5d6108000000b003332fd22ef8mr294689wrt.113.1701852982949;
        Wed, 06 Dec 2023 00:56:22 -0800 (PST)
Message-ID: <168ecf81-35ed-43dd-9f68-f2cb3246fbb4@suse.com>
Date: Wed, 6 Dec 2023 09:56:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/6] x86/mce: address violations of MISRA C:2012 Rule
 8.2
Content-Language: en-US
To: 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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
 <16a4587adaac7b116026c0df4addd254d4a33715.1701764980.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312051918430.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312051918430.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 04:18, Stefano Stabellini wrote:
> On Tue, 5 Dec 2023, Federico Serafini wrote:
>> Add missing parameter names. 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>




From xen-devel-bounces@lists.xenproject.org Wed Dec 06 08:57:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 08:57:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.648994.1013193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnik-0006zL-RA; Wed, 06 Dec 2023 08:57:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 648994.1013193; Wed, 06 Dec 2023 08:57:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnik-0006zE-OD; Wed, 06 Dec 2023 08:57:30 +0000
Received: by outflank-mailman (input) for mailman id 648994;
 Wed, 06 Dec 2023 08:57: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAnik-0006xc-49
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 08:57:30 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b64e3b4-9415-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 09:57:28 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3333224c7b9so493251f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 00:57:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e8-20020adfe388000000b00333381c6e12sm11594901wrm.40.2023.12.06.00.57.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 00:57:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b64e3b4-9415-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701853047; x=1702457847; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SFX2iNwBtWieD8x9szCST48QFuwSwZ0ip6NDb4kLo7w=;
        b=Eq9lwMhUOmapwQCK5FJu2JqRIqCHCnjsOl9eLQHwXZX9XhyRCPNPqgvWCRF/8S9Oun
         N15pSa1EZCSF0A+2srXMbJusw8+ffR3HNtdR/oUsBdgGedeopRu2X/W23W1dL700nO68
         whGj+C1rmEKaJvL1tr3IUEcO+VOf7/CwKGqkVpTql+9pFLPtRzT6xbuRXix5MUUvyXIJ
         xMSrbbSBf880Nckshcv56GoaqK148MgqsCvKOBEtTPot8mpeTwvvYZYUYENa4PKCWx9Y
         SYpLBTK0XS6MLlkQZClB4YURtp8RsrWTR+TdjLK8ImdppsPp9OVhT6jv6KcTSKZvyyZ9
         abPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701853047; x=1702457847;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=SFX2iNwBtWieD8x9szCST48QFuwSwZ0ip6NDb4kLo7w=;
        b=HldNeUWYPq3GyXk1HS7KIB8ix9NuoO8hTYGigx1gDV6c1JWlJr7ooA220jwpXE/rvh
         Byv5gYmM0Dp4wmoVcl6vQ3/jhauGVHb/2CvrFg12ZuSMAG/ydREbD4NOP6hpj8Oli5PI
         uZrYrtL6G3NmOgC3U50X7gEsg4zmdDzTmZetis83joyDxh116SRiMXbO+0J2qnOQj6gL
         2Kyxd378Vzc4LeOLDb5CMx8BRUfyfyHGUgpas5L43QzxMo+eTSQL83ZUdHU+DItsh1l3
         WwRPNpqtaPT2t54gvrRUJuEiE33tiyNmFZ95rOjvV/K0/VjtxBZZGwlEnmmVUPFAiog+
         ILuw==
X-Gm-Message-State: AOJu0YxMetTxZg44sqX2YR5oRgWpb94jYpi70VjbjsMJYkwYzhlk9PpC
	2KEnEFgf/JHEnjHMBEvSLkCw
X-Google-Smtp-Source: AGHT+IFOGhrqugcclMMHA9YATkijBmfp0PkhWvaHRP91Z8k5p5uy1YPpsraF6AwDawWCFZzkWBW4Fg==
X-Received: by 2002:adf:ff8a:0:b0:333:3df5:ea9b with SMTP id j10-20020adfff8a000000b003333df5ea9bmr309563wrr.82.1701853047713;
        Wed, 06 Dec 2023 00:57:27 -0800 (PST)
Message-ID: <51db298e-800a-4eaa-8399-e0398ebf8cc3@suse.com>
Date: Wed, 6 Dec 2023 09:57:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 6/6] xen/pci: address violations of MISRA C:2012 Rule
 8.2
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Paul Durrant <paul@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1701764980.git.federico.serafini@bugseng.com>
 <f84479a28a7f9d6e44829259229460dcf7c497c4.1701764980.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312051919560.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312051919560.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 04:20, Stefano Stabellini wrote:
> On Tue, 5 Dec 2023, Federico Serafini wrote:
>> Add missing parameter names to address violations of MISRA C:2012
>> Rule 8.2. Furthermore, use C standard types to comply with XEN coding style.
>> 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>



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:01:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:01:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649001.1013202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnmD-00016d-9M; Wed, 06 Dec 2023 09:01:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649001.1013202; Wed, 06 Dec 2023 09: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 1rAnmD-00016W-6g; Wed, 06 Dec 2023 09:01:05 +0000
Received: by outflank-mailman (input) for mailman id 649001;
 Wed, 06 Dec 2023 09:01: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAnmB-00014k-TF
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:01:03 +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 fb76d7d8-9415-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 10:01:03 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-33348e711e0so482255f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 01:01:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j9-20020adfea49000000b0033331beb85asm13580883wrn.69.2023.12.06.01.01.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 01:01:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb76d7d8-9415-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701853262; x=1702458062; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ul/+2J/Q9UnLYNeMt387FM5aK0kgEyIrv9wS6MqhWlg=;
        b=ZBHdaKeRuurIUKxYySDURIb9sZm1ST1Ph6oFe7sJUjtSGomst7vJv5JTBTJxEpgWEY
         /J5txmTWmPqY93T80TssqXLLQkH/dz65Id2Epq75Po4wWu/jgm3m3exCphG2jLojRro5
         z1ucw0AC7bWxtOMCbkXwmT2bcWNL385ECgW3Kt+BqqRRDWBQvQ/PITXtm7/iyLqFK8PH
         rsVGJ/qTLMMRv1UMGRE8+FQtEO+KhGfYwTsB+B2fhXrGAnXLVI7AfVcuGjkK9L/8uBaN
         u2dufjc1AqYD1Z8YVEDbWfeK2IaAJ7wpNdhHi2aMU4pxavG1ht75QoHVV2DcMqp1QpgB
         XYFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701853262; x=1702458062;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ul/+2J/Q9UnLYNeMt387FM5aK0kgEyIrv9wS6MqhWlg=;
        b=JjLfVL+dtetRdIRBxuYMGFg+7usw3FJlGAtGGD2KxS8p3Q/wMAFr1/zTKJw6xSgp2m
         SVr0x2KZ7EUPKrjPM2jyVxsCP8nQIURUrxmuFhx/PRk9jwJWS1SoSex92Vtf7mCtTc0S
         MxkFJXotNQFBZWZ86qO/3Wk4eykn2XOhBjPK8J/k70LmM7U5dy9ZkJRs6tvJPwwF5+iI
         LUQh02YOlZhMUdXQw3LIIG2jvYMTNwFmNyz4Z9fVOjfbVu4Wgafr/DMbG5qeedd4s/gS
         iX+imQcL/GhaNf/VdCVwcYVQSwR6uM2kKx75wY5+IzGH2L3TQuhd07totm8Ru2XbbN9z
         +M6Q==
X-Gm-Message-State: AOJu0YwQnQ1P6pczQkDauTqDR5hQId8RWcwaaPGwkDmQ6+x2N8QwtQTD
	md5HivU+5zHJUxUhfCeQHBE4
X-Google-Smtp-Source: AGHT+IFPNn4gB1hBVFNQNywtPvrXF6btbJ+oaiCbOQlG6emDHncB0WpObvKj9r+p/8qjTt/tnKmb9A==
X-Received: by 2002:a5d:4d81:0:b0:333:3bc1:1f95 with SMTP id b1-20020a5d4d81000000b003333bc11f95mr301938wru.106.1701853261790;
        Wed, 06 Dec 2023 01:01:01 -0800 (PST)
Message-ID: <21691a25-1630-4f56-bd3f-60e2a71107ef@suse.com>
Date: Wed, 6 Dec 2023 10:01:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] ns16550: remove partial explicit initializer
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <89f9aebddac56c034aace59c5b910ad4bef701c5.1701793717.git.nicola.vetrini@bugseng.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: <89f9aebddac56c034aace59c5b910ad4bef701c5.1701793717.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.12.2023 17:31, Nicola Vetrini wrote:
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -73,7 +73,7 @@ static struct ns16550 {

With the variable even being static, ...

>      bool msi;
>      const struct ns16550_config_param *param; /* Points into .init.*! */
>  #endif
> -} ns16550_com[2] = { { 0 } };
> +} ns16550_com[2] = { };

... what use is the initializer in the first place?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:06:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:06:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649004.1013213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnrJ-000243-RO; Wed, 06 Dec 2023 09:06:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649004.1013213; Wed, 06 Dec 2023 09:06: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 1rAnrJ-00023w-Oj; Wed, 06 Dec 2023 09:06:21 +0000
Received: by outflank-mailman (input) for mailman id 649004;
 Wed, 06 Dec 2023 09:06: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAnrI-00022d-Ls
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:06:20 +0000
Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com
 [2a00:1450:4864:20::343])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b756aea7-9416-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 10:06:18 +0100 (CET)
Received: by mail-wm1-x343.google.com with SMTP id
 5b1f17b1804b1-40859dee28cso65271705e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 01:06:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g16-20020a05600c4ed000b0040b47c53610sm21255737wmq.14.2023.12.06.01.06.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 01:06:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b756aea7-9416-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701853578; x=1702458378; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=wvwtw6phcPiVErnUuHnmMujra8D4GYFtZrxNc53AQhg=;
        b=UmEQdP5JQ58MOp2pcnykGYRLHJKGe67SSCeVAykSY8gvF9mtynJcN/UxO/VTrgC9OY
         uT5thYVoN+/JzlGQL38LrN/cQLV7D3W4UgzSxh2+2eVH9mk0MYEz3fN5i/5mB8NcLDTq
         B2fxn5L2ijCoSvDrav8LiH0gJaEU9jUS+poOLCQvt73xX9z7si8Cxvp/mNeg254HdoWM
         qsZ/y+CrCW3yppM/SOQXI6QfKOhGTJfHvtq3MaX7x5pn6xBn6HTO8m/w8edijzzFFllv
         v1Vt+A/h67qsXN2mFXqggzLV2We2aIP+7A64GkWZytdHI++givtidux6cIk/LKzsC0j9
         oiGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701853578; x=1702458378;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=wvwtw6phcPiVErnUuHnmMujra8D4GYFtZrxNc53AQhg=;
        b=IPDdmmR8YLKCmn9qQSBnRSUnnUC7jJAk+MEz38nF5sVoHXs1VorZ4BXkxB36GhgHBq
         NmBg1qX4AGp6076M5EzX0/4mAAOyCjvF3/iQIS+mtdQJE/NUsSSVTlw5ldCXRAGmnyvU
         9N2iZpS3fiVn/pQJQArDPnPkRYR6Zao12eIupuszoYT5jKb5/9IbnMQj1wvN6C/3WNeB
         fsnKS001rgJYNwkUo67oUnSoH6BONn+k1FVDUcirX9VJjpA6m8A9JiDqOvRMORdaJzmH
         vqsORxg6dT+SU7Rr44pXpGCPZxVgPSfrCPCQjNwwfRmni02YqmEdDyTP8bh101MI4BHe
         yX9A==
X-Gm-Message-State: AOJu0YxUnnIgOeX/cfkDDurmIjwmfa7xUsf3EyvQaWLGa9wb30FeIslz
	zYztdlDhUaTjQ8WD8PLQHgpt
X-Google-Smtp-Source: AGHT+IHwKxYfJ5tcxmug+SYUNqgTCaLloMURciQh6gSc0v+KZNAtCUiuoBWkYHiW0fMa5kMOWSLnrg==
X-Received: by 2002:a05:600c:b97:b0:40b:5e1b:54ae with SMTP id fl23-20020a05600c0b9700b0040b5e1b54aemr335441wmb.58.1701853577693;
        Wed, 06 Dec 2023 01:06:17 -0800 (PST)
Message-ID: <ccdbe84d-24ca-41f0-bc1f-fb9499c73880@suse.com>
Date: Wed, 6 Dec 2023 10:06:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/misra/rules.rst: add more rules
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: andrew.cooper3@citrix.com, george.dunlap@citrix.com, julien@xen.org,
 bertrannd.marquis@arm.com, roger.pau@citrix.com,
 roberto.bagnara@bugseng.com, federico.serafini@bugseng.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2312051859440.110490@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312051859440.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 04:02, Stefano Stabellini wrote:
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -462,11 +462,23 @@ maintainers if you want to suggest a change.
>  
>         while(0) and while(1) and alike are allowed.
>  
> +   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
> +     - Required
> +     - An unconditional break statement shall terminate every
> +       switch-clause
> +     - In addition to break, also other flow control statements such as
> +       continue, return, goto are allowed.
> +
>     * - `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c>`_
>       - Required
>       - A switch-expression shall not have essentially Boolean type
>       -
>  
> +   * - `Rule 17.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
> +     - Required
> +     - The features of <stdarg.h> shall not be used
> +     -

Did we really accept this without any constraint (warranting mentioning
here)?

> @@ -478,12 +490,24 @@ maintainers if you want to suggest a change.
>         have an explicit return statement with an expression
>       -
>  
> +   * - `Rule 17.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_05.c>`_
> +     - Advisory
> +     - The function argument corresponding to a parameter declared to
> +       have an array type shall have an appropriate number of elements
> +     -
> +
>     * - `Rule 17.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_06.c>`_
>       - Mandatory
>       - The declaration of an array parameter shall not contain the
>         static keyword between the [ ]
>       -
>  
> +   * - `Rule 17.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_07.c>`_
> +     - Required
> +     - The value returned by a function having non-void return type
> +       shall be used
> +     -

Same question here.

If the other additions were separate, I probably would have ack-ed them
right away.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:06:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:06:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649005.1013222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnrc-0002cu-3g; Wed, 06 Dec 2023 09:06:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649005.1013222; Wed, 06 Dec 2023 09:06:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnrc-0002cn-14; Wed, 06 Dec 2023 09:06:40 +0000
Received: by outflank-mailman (input) for mailman id 649005;
 Wed, 06 Dec 2023 09:06: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=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAnra-0002Yw-9o
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:06:38 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c221626e-9416-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 10:06:36 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D3FCD139F;
 Wed,  6 Dec 2023 01:07:21 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 082133F762;
 Wed,  6 Dec 2023 01:06:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c221626e-9416-11ee-98e5-6d05b1d4d9a1
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v5 00/11] Follow-up static shared memory PART I
Date: Wed,  6 Dec 2023 17:06:12 +0800
Message-Id: <20231206090623.1932275-1-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There are some unsolving issues on current 4.18 static shared memory
feature[1], including:
- In order to avoid keeping growing 'membank', having the shared memory
info in separate structures is preferred.
- Missing implementation on having the host address optional in
"xen,shared-mem" property
- Removing static shared memory from extended regions
- Missing reference release on foreign superpage
- Fix duplicated /reserved-memory node on Dom0
- Missing static shm node declaration on guest /memory node
- Missing "xen,offset" feature, which is introduced in Linux DOC[2]

All above objects have been divided into two parts to complete. And this
patch serie is PART I.

[1] https://lore.kernel.org/all/20220908135513.1800511-1-Penny.Zheng@arm.com/
[2] https://www.kernel.org/doc/Documentation/devicetree/bindings/reserved-memory/xen%2Cshared-memory.txt

Penny Zheng (11):
  xen/arm: remove stale addr_cells/size_cells in assign_shared_memory
  xen/arm: avoid repetitive checking in process_shm_node
  xen/arm: re-define a set of data structures for static shared memory
    region
  xen/arm: introduce allocate_domheap_memory and guest_physmap_memory
  xen/arm: use paddr_assigned to indicate whether host address is
    provided
  xen/arm: support static shared memory when host address not provided
  xen/arm: remove shm holes for extended regions
  xen/p2m: put reference for superpage
  xen/docs: refine docs about static shared memory
  xen/arm: fix duplicate /reserved-memory node in Dom0
  xen/arm: create another /memory node for static shm

 docs/misc/arm/device-tree/booting.txt   |  52 +-
 xen/arch/arm/dom0less-build.c           |  11 +-
 xen/arch/arm/domain_build.c             | 177 +++++-
 xen/arch/arm/include/asm/domain_build.h |   7 +
 xen/arch/arm/include/asm/kernel.h       |  11 +-
 xen/arch/arm/include/asm/setup.h        |  69 ++-
 xen/arch/arm/include/asm/static-shmem.h |  48 +-
 xen/arch/arm/mmu/p2m.c                  |  58 +-
 xen/arch/arm/static-shmem.c             | 742 ++++++++++++++++++------
 9 files changed, 929 insertions(+), 246 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:06:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:06:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649006.1013233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnre-0002u9-Bj; Wed, 06 Dec 2023 09:06:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649006.1013233; Wed, 06 Dec 2023 09:06:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnre-0002ty-93; Wed, 06 Dec 2023 09:06:42 +0000
Received: by outflank-mailman (input) for mailman id 649006;
 Wed, 06 Dec 2023 09:06:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAnrd-00022d-As
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:06:41 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c4103803-9416-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 10:06:39 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1CDDF1474;
 Wed,  6 Dec 2023 01:07:25 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 2486F3F762;
 Wed,  6 Dec 2023 01:06:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4103803-9416-11ee-9b0f-b553b5be7939
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 01/11] xen/arm: remove stale addr_cells/size_cells in assign_shared_memory
Date: Wed,  6 Dec 2023 17:06:13 +0800
Message-Id: <20231206090623.1932275-2-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Function parameters {addr_cells,size_cells} are stale parameters in
assign_shared_memory, so we shall remove them.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v1 -> v2:
- new commit
---
v2 -> v3:
rebase and no change
---
v3 -> v4:
rebase and no change
---
v4 -> v5:
rebase and no change
---
 xen/arch/arm/static-shmem.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index 9097bc8b15..cb268cd2ed 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -90,7 +90,6 @@ static mfn_t __init acquire_shared_memory_bank(struct domain *d,
 }
 
 static int __init assign_shared_memory(struct domain *d,
-                                       uint32_t addr_cells, uint32_t size_cells,
                                        paddr_t pbase, paddr_t psize,
                                        paddr_t gbase)
 {
@@ -252,7 +251,6 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
              * specified, so they should be assigned to dom_io.
              */
             ret = assign_shared_memory(owner_dom_io ? dom_io : d,
-                                       addr_cells, size_cells,
                                        pbase, psize, gbase);
             if ( ret )
                 return ret;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:06:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:06:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649007.1013242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnrh-0003Gz-Kh; Wed, 06 Dec 2023 09:06:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649007.1013242; Wed, 06 Dec 2023 09:06: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 1rAnrh-0003Gr-HR; Wed, 06 Dec 2023 09:06:45 +0000
Received: by outflank-mailman (input) for mailman id 649007;
 Wed, 06 Dec 2023 09:06: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=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAnrg-00022d-UY
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:06:44 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c61497b2-9416-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 10:06:43 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 78086139F;
 Wed,  6 Dec 2023 01:07:28 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7FDA13F762;
 Wed,  6 Dec 2023 01:06:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c61497b2-9416-11ee-9b0f-b553b5be7939
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 02/11] xen/arm: avoid repetitive checking in process_shm_node
Date: Wed,  6 Dec 2023 17:06:14 +0800
Message-Id: <20231206090623.1932275-3-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Putting overlap and overflow checking in the loop is causing repetitive
operation, so this commit extracts both checking outside the loop.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
v6:
new commit
---
 xen/arch/arm/static-shmem.c | 39 +++++++++++++++----------------------
 1 file changed, 16 insertions(+), 23 deletions(-)

diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index cb268cd2ed..1a1a9386e4 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -349,7 +349,7 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
 {
     const struct fdt_property *prop, *prop_id, *prop_role;
     const __be32 *cell;
-    paddr_t paddr, gaddr, size;
+    paddr_t paddr, gaddr, size, end;
     struct meminfo *mem = &bootinfo.reserved_mem;
     unsigned int i;
     int len;
@@ -422,6 +422,13 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
         return -EINVAL;
     }
 
+    end = paddr + size;
+    if ( end <= paddr )
+    {
+        printk("fdt: static shared memory region %s overflow\n", shm_id);
+        return -EINVAL;
+    }
+
     for ( i = 0; i < mem->nr_banks; i++ )
     {
         /*
@@ -441,30 +448,13 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
                 return -EINVAL;
             }
         }
+        else if ( strcmp(shm_id, mem->bank[i].shm_id) != 0 )
+            continue;
         else
         {
-            paddr_t end = paddr + size;
-            paddr_t bank_end = mem->bank[i].start + mem->bank[i].size;
-
-            if ( (end <= paddr) || (bank_end <= mem->bank[i].start) )
-            {
-                printk("fdt: static shared memory region %s overflow\n", shm_id);
-                return -EINVAL;
-            }
-
-            if ( check_reserved_regions_overlap(paddr, size) )
-                return -EINVAL;
-            else
-            {
-                if ( strcmp(shm_id, mem->bank[i].shm_id) != 0 )
-                    continue;
-                else
-                {
-                    printk("fdt: different shared memory region could not share the same shm ID %s\n",
-                           shm_id);
-                    return -EINVAL;
-                }
-            }
+            printk("fdt: different shared memory region could not share the same shm ID %s\n",
+                   shm_id);
+            return -EINVAL;
         }
     }
 
@@ -472,6 +462,9 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
     {
         if ( i < NR_MEM_BANKS )
         {
+            if ( check_reserved_regions_overlap(paddr, size) )
+                return -EINVAL;
+
             /* Static shared memory shall be reserved from any other use. */
             safe_strcpy(mem->bank[mem->nr_banks].shm_id, shm_id);
             mem->bank[mem->nr_banks].start = paddr;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:06:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:06:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649009.1013253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnrm-0003fI-6C; Wed, 06 Dec 2023 09:06:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649009.1013253; Wed, 06 Dec 2023 09: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 1rAnrm-0003dh-0Y; Wed, 06 Dec 2023 09:06:50 +0000
Received: by outflank-mailman (input) for mailman id 649009;
 Wed, 06 Dec 2023 09:06:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAnrk-00022d-SQ
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:06:48 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c82bf66b-9416-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 10:06:46 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 29DB5139F;
 Wed,  6 Dec 2023 01:07:32 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id DB32B3F762;
 Wed,  6 Dec 2023 01:06:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c82bf66b-9416-11ee-9b0f-b553b5be7939
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 03/11] xen/arm: re-define a set of data structures for static shared memory region
Date: Wed,  6 Dec 2023 17:06:15 +0800
Message-Id: <20231206090623.1932275-4-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit introduces a set of separate data structures to deal with
static shared memory at different stages.

In boot-time host device tree parsing, we introduce a new structure
"struct shm_node" and a new field "shminfo" in bootinfo to describe and
store parsed shm info.

In acquire_nr_borrower_domain, it is better to use SHMID as unique identifier
to iterate "shminfo", other than address and size.

In the last, a new anonymized structure "shminfo", which is a array of
compound structure that contains SHMID and a "struct membank membank"
describing shared memory regions in guest address space, is created in "kinfo"
when dealing with domain information.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
v1 -> v2:
- As the original "struct shm_membank" was making reserving memory more
complex and actually memory information could be still got from host Device\
Tree when dealing with domain construction, we introduce a new simple structure
"struct shm_node" in bootinfo to only store SHMID and "nr_borrowers"
- Further restrict the scope of the local variable
"struct meminfo *mem = &bootinfo.reserved_mem"
- Introduce a new local global data "shm_data" in bootfdt.c. In which, reserved
memory bank is recorded together with the shm node, to assist doing shm node
verification.
- Define a set of local variables that point to
"shm_data.shm_nodes[i].membank->start", etc, to make the code more readable.
- Use SHMID to iterate "shminfo" to find requested shm node, as we no
longer store host memory bank info in shm node.
- A new anonymized structure, which is a array of compound structure that
contains SHMID and a "struct membank membank", describing shared memory region
in guest, is introduced in "kinfo".
---
v2 -> v3:
- rebase and no changes
---
v3 -> v4:
rebase and no change
---
v4 -> v5:
- With all shm-related functions classified into static-shmem.c, there
is no need to import local global data "shm_data".
---
 xen/arch/arm/dom0less-build.c           |   3 +-
 xen/arch/arm/domain_build.c             |   3 +-
 xen/arch/arm/include/asm/kernel.h       |   9 +-
 xen/arch/arm/include/asm/setup.h        |  24 +++++-
 xen/arch/arm/include/asm/static-shmem.h |   4 +-
 xen/arch/arm/static-shmem.c             | 104 ++++++++++++++----------
 6 files changed, 92 insertions(+), 55 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index fb63ec6fd1..ac096fa3fa 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -645,8 +645,7 @@ static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
     if ( ret )
         goto err;
 
-    ret = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells,
-                                &kinfo->shm_mem);
+    ret = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells, kinfo);
     if ( ret )
         goto err;
 
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 613b2885ce..64ae944431 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1767,8 +1767,7 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
                 return res;
         }
 
-        res = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells,
-                                    &kinfo->shm_mem);
+        res = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells, kinfo);
         if ( res )
             return res;
     }
diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/kernel.h
index 0a23e86c2d..db3d8232fa 100644
--- a/xen/arch/arm/include/asm/kernel.h
+++ b/xen/arch/arm/include/asm/kernel.h
@@ -39,7 +39,14 @@ struct kernel_info {
     void *fdt; /* flat device tree */
     paddr_t unassigned_mem; /* RAM not (yet) assigned to a bank */
     struct meminfo mem;
-    struct meminfo shm_mem;
+    /* Static shared memory banks */
+    struct {
+        unsigned int nr_banks;
+        struct {
+            char shm_id[MAX_SHM_ID_LENGTH];
+            struct membank membank;
+        } bank[NR_MEM_BANKS];
+    } shminfo;
 
     /* kernel entry point */
     paddr_t entry;
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index d15a88d2e0..3a2b35ea46 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -50,10 +50,6 @@ struct membank {
     paddr_t start;
     paddr_t size;
     enum membank_type type;
-#ifdef CONFIG_STATIC_SHM
-    char shm_id[MAX_SHM_ID_LENGTH];
-    unsigned int nr_shm_borrowers;
-#endif
 };
 
 struct meminfo {
@@ -95,6 +91,17 @@ struct bootcmdlines {
     struct bootcmdline cmdline[MAX_MODULES];
 };
 
+#ifdef CONFIG_STATIC_SHM
+/*
+ * struct shm_node represents a static shared memory node shared between
+ * multiple domains, identified by the unique SHMID("xen,shm-id").
+ */
+struct shm_node {
+    char shm_id[MAX_SHM_ID_LENGTH];
+    unsigned int nr_shm_borrowers;
+};
+#endif
+
 struct bootinfo {
     struct meminfo mem;
     /* The reserved regions are only used when booting using Device-Tree */
@@ -105,6 +112,15 @@ struct bootinfo {
     struct meminfo acpi;
 #endif
     bool static_heap;
+#ifdef CONFIG_STATIC_SHM
+    struct {
+        unsigned int nr_nodes;
+        struct {
+            struct shm_node node;
+            const struct membank *membank;
+        } shm_nodes[NR_MEM_BANKS];
+    } shminfo;
+#endif
 };
 
 struct map_range_data
diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
index 1536ff18b8..66a3f4c146 100644
--- a/xen/arch/arm/include/asm/static-shmem.h
+++ b/xen/arch/arm/include/asm/static-shmem.h
@@ -8,7 +8,7 @@
 #ifdef CONFIG_STATIC_SHM
 
 int make_resv_memory_node(const struct domain *d, void *fdt, int addrcells,
-                          int sizecells, const struct meminfo *mem);
+                          int sizecells, const struct kernel_info *kinfo);
 
 int process_shm(struct domain *d, struct kernel_info *kinfo,
                 const struct dt_device_node *node);
@@ -28,7 +28,7 @@ int process_shm_node(const void *fdt, int node, uint32_t address_cells,
 
 static inline int make_resv_memory_node(const struct domain *d, void *fdt,
                                         int addrcells, int sizecells,
-                                        const struct meminfo *mem)
+                                        const struct kernel_info *kinfo)
 {
     return 0;
 }
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index 1a1a9386e4..6a3d8a54bd 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -6,28 +6,25 @@
 #include <asm/domain_build.h>
 #include <asm/static-shmem.h>
 
-static int __init acquire_nr_borrower_domain(struct domain *d,
-                                             paddr_t pbase, paddr_t psize,
+static int __init acquire_nr_borrower_domain(const char *shm_id,
                                              unsigned long *nr_borrowers)
 {
-    unsigned int bank;
+    struct shm_node *shm_node;
+    unsigned int i;
 
-    /* Iterate reserved memory to find requested shm bank. */
-    for ( bank = 0 ; bank < bootinfo.reserved_mem.nr_banks; bank++ )
+    /* Iterate to find requested static shared memory node. */
+    for ( i = 0; i < bootinfo.shminfo.nr_nodes; i++ )
     {
-        paddr_t bank_start = bootinfo.reserved_mem.bank[bank].start;
-        paddr_t bank_size = bootinfo.reserved_mem.bank[bank].size;
+        shm_node = &bootinfo.shminfo.shm_nodes[i].node;
 
-        if ( (pbase == bank_start) && (psize == bank_size) )
-            break;
+        if ( strcmp(shm_id, shm_node->shm_id) == 0 )
+        {
+            *nr_borrowers = shm_node->nr_shm_borrowers;
+            return 0;
+        }
     }
 
-    if ( bank == bootinfo.reserved_mem.nr_banks )
-        return -ENOENT;
-
-    *nr_borrowers = bootinfo.reserved_mem.bank[bank].nr_shm_borrowers;
-
-    return 0;
+    return -ENOENT;
 }
 
 /*
@@ -91,7 +88,7 @@ static mfn_t __init acquire_shared_memory_bank(struct domain *d,
 
 static int __init assign_shared_memory(struct domain *d,
                                        paddr_t pbase, paddr_t psize,
-                                       paddr_t gbase)
+                                       paddr_t gbase, const char *shm_id)
 {
     mfn_t smfn;
     int ret = 0;
@@ -125,7 +122,7 @@ static int __init assign_shared_memory(struct domain *d,
      * Get the right amount of references per page, which is the number of
      * borrower domains.
      */
-    ret = acquire_nr_borrower_domain(d, pbase, psize, &nr_borrowers);
+    ret = acquire_nr_borrower_domain(shm_id, &nr_borrowers);
     if ( ret )
         return ret;
 
@@ -161,13 +158,16 @@ static int __init append_shm_bank_to_domain(struct kernel_info *kinfo,
                                             paddr_t start, paddr_t size,
                                             const char *shm_id)
 {
-    if ( kinfo->shm_mem.nr_banks >= NR_MEM_BANKS )
+    unsigned int nr_banks = kinfo->shminfo.nr_banks;
+    struct membank *membank = &kinfo->shminfo.bank[nr_banks].membank;
+
+    if ( nr_banks >= NR_MEM_BANKS )
         return -ENOMEM;
 
-    kinfo->shm_mem.bank[kinfo->shm_mem.nr_banks].start = start;
-    kinfo->shm_mem.bank[kinfo->shm_mem.nr_banks].size = size;
-    safe_strcpy(kinfo->shm_mem.bank[kinfo->shm_mem.nr_banks].shm_id, shm_id);
-    kinfo->shm_mem.nr_banks++;
+    membank->start = start;
+    membank->size = size;
+    safe_strcpy(kinfo->shminfo.bank[nr_banks].shm_id, shm_id);
+    kinfo->shminfo.nr_banks++;
 
     return 0;
 }
@@ -251,7 +251,7 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
              * specified, so they should be assigned to dom_io.
              */
             ret = assign_shared_memory(owner_dom_io ? dom_io : d,
-                                       pbase, psize, gbase);
+                                       pbase, psize, gbase, shm_id);
             if ( ret )
                 return ret;
         }
@@ -279,12 +279,12 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
 
 static int __init make_shm_memory_node(const struct domain *d, void *fdt,
                                        int addrcells, int sizecells,
-                                       const struct meminfo *mem)
+                                       const struct kernel_info *kinfo)
 {
     unsigned int i = 0;
     int res = 0;
 
-    if ( mem->nr_banks == 0 )
+    if ( kinfo->shminfo.nr_banks == 0 )
         return -ENOENT;
 
     /*
@@ -294,17 +294,17 @@ static int __init make_shm_memory_node(const struct domain *d, void *fdt,
      */
     dt_dprintk("Create xen-shmem node\n");
 
-    for ( ; i < mem->nr_banks; i++ )
+    for ( ; i < kinfo->shminfo.nr_banks; i++ )
     {
-        uint64_t start = mem->bank[i].start;
-        uint64_t size = mem->bank[i].size;
+        uint64_t start = kinfo->shminfo.bank[i].membank.start;
+        uint64_t size = kinfo->shminfo.bank[i].membank.size;
         const char compat[] = "xen,shared-memory-v1";
         /* Worst case addrcells + sizecells */
         __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
         __be32 *cells;
         unsigned int len = (addrcells + sizecells) * sizeof(__be32);
 
-        res = domain_fdt_begin_node(fdt, "xen-shmem", mem->bank[i].start);
+        res = domain_fdt_begin_node(fdt, "xen-shmem", start);
         if ( res )
             return res;
 
@@ -322,7 +322,7 @@ static int __init make_shm_memory_node(const struct domain *d, void *fdt,
         dt_dprintk("Shared memory bank %u: %#"PRIx64"->%#"PRIx64"\n",
                    i, start, start + size);
 
-        res = fdt_property_string(fdt, "xen,id", mem->bank[i].shm_id);
+        res = fdt_property_string(fdt, "xen,id", kinfo->shminfo.bank[i].shm_id);
         if ( res )
             return res;
 
@@ -350,7 +350,6 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
     const struct fdt_property *prop, *prop_id, *prop_role;
     const __be32 *cell;
     paddr_t paddr, gaddr, size, end;
-    struct meminfo *mem = &bootinfo.reserved_mem;
     unsigned int i;
     int len;
     bool owner = false;
@@ -429,17 +428,21 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
         return -EINVAL;
     }
 
-    for ( i = 0; i < mem->nr_banks; i++ )
+    for ( i = 0; i < bootinfo.shminfo.nr_nodes; i++ )
     {
+        paddr_t bank_start = bootinfo.shminfo.shm_nodes[i].membank->start;
+        paddr_t bank_size = bootinfo.shminfo.shm_nodes[i].membank->size;
+        const char *bank_id = bootinfo.shminfo.shm_nodes[i].node.shm_id;
+
         /*
          * Meet the following check:
          * 1) The shm ID matches and the region exactly match
          * 2) The shm ID doesn't match and the region doesn't overlap
          * with an existing one
          */
-        if ( paddr == mem->bank[i].start && size == mem->bank[i].size )
+        if ( paddr == bank_start && size == bank_size )
         {
-            if ( strncmp(shm_id, mem->bank[i].shm_id, MAX_SHM_ID_LENGTH) == 0 )
+            if ( strncmp(shm_id, bank_id, MAX_SHM_ID_LENGTH) == 0 )
                 break;
             else
             {
@@ -458,19 +461,32 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
         }
     }
 
-    if ( i == mem->nr_banks )
+    if ( i == bootinfo.shminfo.nr_nodes )
     {
-        if ( i < NR_MEM_BANKS )
+        struct meminfo *mem = &bootinfo.reserved_mem;
+
+        if ( (i < NR_MEM_BANKS) && (mem->nr_banks < NR_MEM_BANKS) )
         {
+            struct membank *membank = &mem->bank[mem->nr_banks];
+            struct shm_node *shm_node = &bootinfo.shminfo.shm_nodes[i].node;
+
             if ( check_reserved_regions_overlap(paddr, size) )
                 return -EINVAL;
 
             /* Static shared memory shall be reserved from any other use. */
-            safe_strcpy(mem->bank[mem->nr_banks].shm_id, shm_id);
-            mem->bank[mem->nr_banks].start = paddr;
-            mem->bank[mem->nr_banks].size = size;
-            mem->bank[mem->nr_banks].type = MEMBANK_STATIC_DOMAIN;
+            membank->start = paddr;
+            membank->size = size;
+            membank->type = MEMBANK_STATIC_DOMAIN;
             mem->nr_banks++;
+
+            /* Record static shared memory node info in bootinfo.shminfo */
+            safe_strcpy(shm_node->shm_id, shm_id);
+            /*
+             * Reserved memory bank is recorded together to assist
+             * doing shm node verification.
+             */
+            bootinfo.shminfo.shm_nodes[i].membank = membank;
+            bootinfo.shminfo.nr_nodes++;
         }
         else
         {
@@ -483,20 +499,20 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
      * to calculate the reference count.
      */
     if ( !owner )
-        mem->bank[i].nr_shm_borrowers++;
+        bootinfo.shminfo.shm_nodes[i].node.nr_shm_borrowers++;
 
     return 0;
 }
 
 int __init make_resv_memory_node(const struct domain *d, void *fdt,
                                  int addrcells, int sizecells,
-                                 const struct meminfo *mem)
+                                 const struct kernel_info *kinfo)
 {
     int res = 0;
     /* Placeholder for reserved-memory\0 */
     const char resvbuf[16] = "reserved-memory";
 
-    if ( mem->nr_banks == 0 )
+    if ( kinfo->shminfo.nr_banks == 0 )
         /* No shared memory provided. */
         return 0;
 
@@ -518,7 +534,7 @@ int __init make_resv_memory_node(const struct domain *d, void *fdt,
     if ( res )
         return res;
 
-    res = make_shm_memory_node(d, fdt, addrcells, sizecells, mem);
+    res = make_shm_memory_node(d, fdt, addrcells, sizecells, kinfo);
     if ( res )
         return res;
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:06:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:06:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649010.1013263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnro-00040b-E7; Wed, 06 Dec 2023 09:06:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649010.1013263; Wed, 06 Dec 2023 09:06:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnro-00040G-9F; Wed, 06 Dec 2023 09:06:52 +0000
Received: by outflank-mailman (input) for mailman id 649010;
 Wed, 06 Dec 2023 09:06: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=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAnrm-0002Yw-VM
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:06:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id ca2f57a6-9416-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 10:06:50 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 834FD139F;
 Wed,  6 Dec 2023 01:07:35 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 8B32A3F762;
 Wed,  6 Dec 2023 01:06:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca2f57a6-9416-11ee-98e5-6d05b1d4d9a1
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 04/11] xen/arm: introduce allocate_domheap_memory and guest_physmap_memory
Date: Wed,  6 Dec 2023 17:06:16 +0800
Message-Id: <20231206090623.1932275-5-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

We split the code of allocate_bank_memory into two parts,
allocate_domheap_memory and guest_physmap_memory.

One is about allocating guest RAM from heap, which could be re-used later for
allocating static shared memory from heap when host address is not provided.
The other is building up guest P2M mapping.

We also define a set of MACRO helpers to access common fields in data
structure of "meminfo" type, e.g. "struct meminfo" is one of them, and
later new "struct shm_meminfo" is also one of them.
This kind of structures must have the following characteristics:
- an array of "struct membank"
- a member called "nr_banks" indicating current array size
- a field indicating the maximum array size
When introducing a new data structure, according callbacks with function type
"retrieve_fn" shall be defined for using MACRO helpers.
This commit defines callback "retrieve_meminfo" for data structure
"struct meminfo".

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
v1 -> v2:
-  define a set of MACRO helpers to access common fields in data structure of
"meminfo" type. "struct meminfo" is one of them, and according callback
"retrieve_meminfo" is also introduced here.
- typo of changing 1ULL to 1UL
---
v2 -> v3
- rebase and no changes
---
v3 -> v4:
rebase and no change
---
v4 -> v5:
rebase and no change
---
 xen/arch/arm/domain_build.c      | 119 +++++++++++++++++++++++++------
 xen/arch/arm/include/asm/setup.h |  33 +++++++++
 2 files changed, 129 insertions(+), 23 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 64ae944431..a8bc78baa5 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -51,6 +51,28 @@ boolean_param("ext_regions", opt_ext_regions);
 static u64 __initdata dom0_mem;
 static bool __initdata dom0_mem_set;
 
+#ifdef CONFIG_DOM0LESS_BOOT
+static void __init retrieve_meminfo(void *mem, unsigned int *max_mem_banks,
+                                    struct membank **bank,
+                                    unsigned int **nr_banks)
+{
+    struct meminfo *meminfo = (struct meminfo *)mem;
+
+    if ( max_mem_banks )
+        *max_mem_banks = NR_MEM_BANKS;
+
+    if ( nr_banks )
+        *nr_banks = &(meminfo->nr_banks);
+
+    if ( bank )
+        *bank = meminfo->bank;
+}
+
+retrieve_fn __initdata retrievers[MAX_MEMINFO_TYPE] = {
+    [NORMAL_MEMINFO] = retrieve_meminfo,
+};
+#endif
+
 static int __init parse_dom0_mem(const char *s)
 {
     dom0_mem_set = true;
@@ -415,32 +437,20 @@ static void __init allocate_memory_11(struct domain *d,
 }
 
 #ifdef CONFIG_DOM0LESS_BOOT
-bool __init allocate_bank_memory(struct domain *d, struct kernel_info *kinfo,
-                                 gfn_t sgfn, paddr_t tot_size)
+static bool __init allocate_domheap_memory(struct domain *d,
+                                           paddr_t tot_size,
+                                           void *mem, enum meminfo_type type)
 {
-    int res;
     struct page_info *pg;
-    struct membank *bank;
     unsigned int max_order = ~0;
-
-    /*
-     * allocate_bank_memory can be called with a tot_size of zero for
-     * the second memory bank. It is not an error and we can safely
-     * avoid creating a zero-size memory bank.
-     */
-    if ( tot_size == 0 )
-        return true;
-
-    bank = &kinfo->mem.bank[kinfo->mem.nr_banks];
-    bank->start = gfn_to_gaddr(sgfn);
-    bank->size = tot_size;
+    unsigned int *nr_banks = GET_NR_BANKS(mem, type);
 
     while ( tot_size > 0 )
     {
         unsigned int order = get_allocation_size(tot_size);
+        struct membank *membank;
 
         order = min(max_order, order);
-
         pg = alloc_domheap_pages(d, order, 0);
         if ( !pg )
         {
@@ -460,15 +470,78 @@ bool __init allocate_bank_memory(struct domain *d, struct kernel_info *kinfo,
             continue;
         }
 
-        res = guest_physmap_add_page(d, sgfn, page_to_mfn(pg), order);
-        if ( res )
-        {
-            dprintk(XENLOG_ERR, "Failed map pages to DOMU: %d", res);
+        if ( *nr_banks == MAX_MEM_BANKS(type) )
             return false;
-        }
+
+        membank = GET_MEMBANK(mem, type, *nr_banks);
+        membank->start = mfn_to_maddr(page_to_mfn(pg));
+        membank->size = 1ULL << (PAGE_SHIFT + order);
+        (*nr_banks)++;
+        tot_size -= membank->size;
+    }
+
+    return true;
+}
+
+static int __init guest_physmap_memory(struct domain *d,
+                                       void *mem, enum meminfo_type type,
+                                       gfn_t sgfn)
+{
+    unsigned int i;
+    int res;
+    unsigned int *nr_banks = GET_NR_BANKS(mem, type);
+
+    for ( i = 0; i < *nr_banks; i++ )
+    {
+        struct membank *membank = GET_MEMBANK(mem, type, i);
+        paddr_t start = membank->start;
+        paddr_t size = membank->size;
+        unsigned int order = get_order_from_bytes(size);
+
+        /* Size must be power of two */
+        BUG_ON(!size || (size & (size - 1)));
+        res = guest_physmap_add_page(d, sgfn, maddr_to_mfn(start), order);
+        if ( res )
+            return res;
 
         sgfn = gfn_add(sgfn, 1UL << order);
-        tot_size -= (1ULL << (PAGE_SHIFT + order));
+    }
+
+    return 0;
+}
+
+bool __init allocate_bank_memory(struct domain *d,
+                                 struct kernel_info *kinfo,
+                                 gfn_t sgfn,
+                                 paddr_t total_size)
+{
+    struct membank *bank;
+    struct meminfo host = { 0 };
+
+    /*
+     * allocate_bank_memory can be called with a total_size of zero for
+     * the second memory bank. It is not an error and we can safely
+     * avoid creating a zero-size memory bank.
+     */
+    if ( total_size == 0 )
+        return true;
+
+    bank = &kinfo->mem.bank[kinfo->mem.nr_banks];
+    bank->start = gfn_to_gaddr(sgfn);
+    bank->size = total_size;
+
+    if ( !allocate_domheap_memory(d, total_size, (void *)&host, NORMAL_MEMINFO) )
+    {
+        printk(XENLOG_ERR "Failed to allocate (%"PRIpaddr"MB) pages to %pd\n",
+               total_size >> 20, d);
+        return false;
+    }
+
+    if ( guest_physmap_memory(d, (void *)&host, NORMAL_MEMINFO, sgfn) )
+    {
+        printk(XENLOG_ERR "Failed to map (%"PRIpaddr"MB) pages to %pd\n",
+               total_size >> 20, d);
+        return false;
     }
 
     kinfo->mem.nr_banks++;
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 3a2b35ea46..bc5f08be97 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -57,6 +57,39 @@ struct meminfo {
     struct membank bank[NR_MEM_BANKS];
 };
 
+enum meminfo_type {
+    NORMAL_MEMINFO,
+    MAX_MEMINFO_TYPE,
+};
+
+/*
+ * Define a set of MACRO helpers to access meminfo_type, like "struct meminfo"
+ * as type of NORMAL_MEMINFO, etc.
+ * This kind of structure must have a array of "struct membank",
+ * a member called nr_banks indicating the current array size, and also a field
+ * indicating the maximum array size.
+ */
+typedef void (*retrieve_fn)(void *, unsigned int *, struct membank **,
+                            unsigned int **);
+
+#define MAX_MEM_BANKS(type) ({                              \
+    unsigned int _max_mem_banks;                            \
+    retrievers[type](NULL, &_max_mem_banks, NULL, NULL);    \
+    _max_mem_banks;                                         \
+})
+
+#define GET_MEMBANK(mem, type, index) ({                    \
+    struct membank *_bank;                                  \
+    retrievers[type]((void *)(mem), NULL, &_bank, NULL);    \
+    &(_bank[index]);                                        \
+})
+
+#define GET_NR_BANKS(mem, type) ({                          \
+    unsigned int *_nr_banks;                                \
+    retrievers[type]((void *)mem, NULL, NULL, &_nr_banks);  \
+    _nr_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
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:06:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649013.1013273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnrt-0004bc-MI; Wed, 06 Dec 2023 09:06:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649013.1013273; Wed, 06 Dec 2023 09:06:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnrt-0004bN-Iu; Wed, 06 Dec 2023 09:06:57 +0000
Received: by outflank-mailman (input) for mailman id 649013;
 Wed, 06 Dec 2023 09:06:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAnrs-00022d-3b
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:06:56 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id cc690495-9416-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 10:06:53 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2B7081474;
 Wed,  6 Dec 2023 01:07:39 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id E69A53F762;
 Wed,  6 Dec 2023 01:06:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc690495-9416-11ee-9b0f-b553b5be7939
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 05/11] xen/arm: use paddr_assigned to indicate whether host address is provided
Date: Wed,  6 Dec 2023 17:06:17 +0800
Message-Id: <20231206090623.1932275-6-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

We use paddr_assigned to indicate whether host address is provided, by
checking the length of "xen,shared-mem" property.

The shm matching criteria shall also be adapt to cover the new scenario, by
adding when host address is not provided, if SHMID matches, the region size
must exactly match too.

During domain creation, right now, a static shared memory node could be
banked with a statically configured host memory bank, or arbitrary
host memory of dedicated size, which will later be allocated from heap by Xen.
To cover both scenarios, we create a new structure shm_meminfo. It is very
alike meminfo, but with the maximum array size being a smaller number
NR_SHM_BANKS(16).
As "shm_meminfo" is also a new member of "enum meminfo_type", we shall implement
its own callback "retrieve_shm_meminfo" to have access to all MACRO
helpers, e.g. GET_MEMBANK(...).

Also, to make codes tidy and clear, we extract codes about parsing
"xen,shared-mem" property from function "process_shm" and move them into
a new helper "parse_shm_property".

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
v1 -> v2
- In order to get allocated banked host memory info during domain creat    ion,
we create a new structure shm_meminfo. It is very alike meminfo, with
the maximum array size being NR_SHM_BANKS. As shm_meminfo is a new
member of type meminfo_type, we shall implement its own callback
retrieve_shm_meminfo to have access to all MACRO helpers, e.g.
GET_MEMBANK(...)
- rename "acquire_shm_memnode" to "find_shm_memnode"
---
v2 -> v3
- rebase and no changes
---
v3 -> v4:
- rebase and no change
---
v4 -> v5:
- fix bugs of that tot_size and membank shall not be member of union,
but struct, to differentiate two types of static shared memory node.
---
 xen/arch/arm/domain_build.c             |   3 +
 xen/arch/arm/include/asm/setup.h        |  14 +-
 xen/arch/arm/include/asm/static-shmem.h |   3 +
 xen/arch/arm/static-shmem.c             | 360 ++++++++++++++++++------
 4 files changed, 293 insertions(+), 87 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a8bc78baa5..c69d481d34 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -70,6 +70,9 @@ static void __init retrieve_meminfo(void *mem, unsigned int *max_mem_banks,
 
 retrieve_fn __initdata retrievers[MAX_MEMINFO_TYPE] = {
     [NORMAL_MEMINFO] = retrieve_meminfo,
+#ifdef CONFIG_STATIC_SHM
+    [SHM_MEMINFO] = retrieve_shm_meminfo,
+#endif
 };
 #endif
 
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index bc5f08be97..043588cd2d 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -59,6 +59,9 @@ struct meminfo {
 
 enum meminfo_type {
     NORMAL_MEMINFO,
+#ifdef CONFIG_STATIC_SHM
+    SHM_MEMINFO,
+#endif
     MAX_MEMINFO_TYPE,
 };
 
@@ -150,7 +153,16 @@ struct bootinfo {
         unsigned int nr_nodes;
         struct {
             struct shm_node node;
-            const struct membank *membank;
+            /*
+             * For a static shared memory node, it is either banked with
+             * a statically configured host memory bank, or arbitrary host
+             * memory which will be allocated by Xen with a specified total
+             * size(tot_size).
+             */
+            struct {
+                const struct membank *membank;
+                paddr_t tot_size;
+            };
         } shm_nodes[NR_MEM_BANKS];
     } shminfo;
 #endif
diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
index 66a3f4c146..a67445cec8 100644
--- a/xen/arch/arm/include/asm/static-shmem.h
+++ b/xen/arch/arm/include/asm/static-shmem.h
@@ -24,6 +24,9 @@ static inline int process_shm_chosen(struct domain *d,
 int process_shm_node(const void *fdt, int node, uint32_t address_cells,
                      uint32_t size_cells);
 
+void retrieve_shm_meminfo(void *mem, unsigned int *max_mem_banks,
+                          struct membank **bank,
+                          unsigned int **nr_banks);
 #else /* !CONFIG_STATIC_SHM */
 
 static inline int make_resv_memory_node(const struct domain *d, void *fdt,
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index 6a3d8a54bd..a9eb26d543 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -6,6 +6,50 @@
 #include <asm/domain_build.h>
 #include <asm/static-shmem.h>
 
+#define NR_SHM_BANKS 16
+
+/*
+ * There are two types of static shared memory node:
+ * A static shared memory node could be banked with a statically
+ * configured host memory bank, or a set of arbitrary host memory
+ * banks allocated from heap by Xen on runtime.
+ */
+struct shm_meminfo {
+    unsigned int nr_banks;
+    struct membank bank[NR_SHM_BANKS];
+    paddr_t tot_size;
+};
+
+/*
+ * struct shm_memnode holds banked host memory info for a static
+ * shared memory node
+ */
+struct shm_memnode {
+    char shm_id[MAX_SHM_ID_LENGTH];
+    struct shm_meminfo meminfo;
+};
+
+static __initdata struct {
+    unsigned int nr_nodes;
+    struct shm_memnode node[NR_MEM_BANKS];
+} shm_memdata;
+
+void __init retrieve_shm_meminfo(void *mem, unsigned int *max_mem_banks,
+                                 struct membank **bank,
+                                 unsigned int **nr_banks)
+{
+    struct shm_meminfo *meminfo = (struct shm_meminfo *)mem;
+
+    if ( max_mem_banks )
+        *max_mem_banks = NR_SHM_BANKS;
+
+    if ( nr_banks )
+        *nr_banks = &(meminfo->nr_banks);
+
+    if ( bank )
+        *bank = meminfo->bank;
+}
+
 static int __init acquire_nr_borrower_domain(const char *shm_id,
                                              unsigned long *nr_borrowers)
 {
@@ -172,6 +216,129 @@ static int __init append_shm_bank_to_domain(struct kernel_info *kinfo,
     return 0;
 }
 
+static struct shm_memnode * __init find_shm_memnode(const char *shm_id)
+{
+    unsigned int i;
+    struct shm_memnode *shm_memnode;
+
+    for ( i = 0 ; i < shm_memdata.nr_nodes; i++ )
+    {
+        shm_memnode = &shm_memdata.node[i];
+
+        if ( strcmp(shm_id, shm_memnode->shm_id) == 0 )
+            return shm_memnode;
+    }
+
+    if ( i == NR_MEM_BANKS )
+        return NULL;
+
+    shm_memnode = &shm_memdata.node[i];
+    safe_strcpy(shm_memnode->shm_id, shm_id);
+    shm_memdata.nr_nodes++;
+    return shm_memnode;
+}
+
+/* Parse "xen,shared-mem" property in static shared memory node */
+static struct shm_memnode * __init parse_shm_property(struct domain *d,
+                                    const struct dt_device_node *dt_node,
+                                    bool *paddr_assigned, paddr_t *gbase,
+                                    const char *shm_id)
+{
+    uint32_t addr_cells, size_cells;
+    const struct dt_property *prop;
+    const __be32 *cells;
+    uint32_t len;
+    unsigned int i;
+    paddr_t pbase, psize;
+    struct shm_memnode *shm_memnode;
+
+    /* xen,shared-mem = <pbase, gbase, size>; And pbase could be optional. */
+    prop = dt_find_property(dt_node, "xen,shared-mem", &len);
+    BUG_ON(!prop);
+    cells = (const __be32 *)prop->value;
+
+    addr_cells = dt_n_addr_cells(dt_node);
+    size_cells = dt_n_size_cells(dt_node);
+    if ( len != dt_cells_to_size(addr_cells + size_cells + addr_cells) )
+    {
+        /* pbase is not provided in "xen,shared-mem" */
+        if ( len == dt_cells_to_size(size_cells + addr_cells) )
+            *paddr_assigned = false;
+        else
+        {
+            printk("fdt: invalid `xen,shared-mem` property.\n");
+            return NULL;
+        }
+    }
+
+    /*
+     * If we firstly process the shared memory node with unique "xen,shm-id",
+     * we allocate a new member "shm_memnode" for it in shm_memdata.
+     */
+    shm_memnode = find_shm_memnode(shm_id);
+    BUG_ON(!shm_memnode);
+    if ( !(*paddr_assigned) )
+    {
+        device_tree_get_reg(&cells, addr_cells, size_cells, gbase, &psize);
+        /* Whether it is a new shm node? */
+        if ( shm_memnode->meminfo.tot_size == 0 )
+            goto out_early1;
+        else
+            goto out_early2;
+    }
+    else
+    {
+        device_tree_get_reg(&cells, addr_cells, addr_cells, &pbase, gbase);
+        psize = dt_read_number(cells, size_cells);
+
+        /* Whether it is a new shm node? */
+        if ( shm_memnode->meminfo.nr_banks != 0 )
+            goto out_early2;
+    }
+
+    /*
+     * The static shared memory node #dt_node is banked with a
+     * statically configured host memory bank.
+     */
+    shm_memnode->meminfo.bank[0].start = pbase;
+    shm_memnode->meminfo.bank[0].size = psize;
+    shm_memnode->meminfo.nr_banks = 1;
+
+    if ( !IS_ALIGNED(pbase, PAGE_SIZE) )
+    {
+        printk("%pd: physical address 0x%"PRIpaddr" is not suitably aligned.\n",
+               d, pbase);
+        return NULL;
+    }
+
+    for ( i = 0; i < PFN_DOWN(psize); i++ )
+        if ( !mfn_valid(mfn_add(maddr_to_mfn(pbase), i)) )
+        {
+            printk("%pd: invalid physical MFN 0x%"PRI_mfn"\n for static shared memory node\n",
+                   d, mfn_x(mfn_add(maddr_to_mfn(pbase), i)));
+            return NULL;
+        }
+
+ out_early1:
+    if ( !IS_ALIGNED(psize, PAGE_SIZE) )
+    {
+        printk("%pd: size 0x%"PRIpaddr" is not suitably aligned\n",
+               d, psize);
+        return NULL;
+    }
+    shm_memnode->meminfo.tot_size = psize;
+
+ out_early2:
+    if ( !IS_ALIGNED(*gbase, PAGE_SIZE) )
+    {
+        printk("%pd: guest address 0x%"PRIpaddr" is not suitably aligned.\n",
+               d, *gbase);
+        return NULL;
+    }
+
+    return shm_memnode;
+}
+
 int __init process_shm(struct domain *d, struct kernel_info *kinfo,
                        const struct dt_device_node *node)
 {
@@ -179,51 +346,17 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
 
     dt_for_each_child_node(node, shm_node)
     {
-        const struct dt_property *prop;
-        const __be32 *cells;
-        uint32_t addr_cells, size_cells;
         paddr_t gbase, pbase, psize;
         int ret = 0;
-        unsigned int i;
         const char *role_str;
         const char *shm_id;
         bool owner_dom_io = true;
+        bool paddr_assigned = true;
+        struct shm_memnode *shm_memnode;
 
         if ( !dt_device_is_compatible(shm_node, "xen,domain-shared-memory-v1") )
             continue;
 
-        /*
-         * xen,shared-mem = <pbase, gbase, size>;
-         * TODO: pbase is optional.
-         */
-        addr_cells = dt_n_addr_cells(shm_node);
-        size_cells = dt_n_size_cells(shm_node);
-        prop = dt_find_property(shm_node, "xen,shared-mem", NULL);
-        BUG_ON(!prop);
-        cells = (const __be32 *)prop->value;
-        device_tree_get_reg(&cells, addr_cells, addr_cells, &pbase, &gbase);
-        psize = dt_read_paddr(cells, size_cells);
-        if ( !IS_ALIGNED(pbase, PAGE_SIZE) || !IS_ALIGNED(gbase, PAGE_SIZE) )
-        {
-            printk("%pd: physical address 0x%"PRIpaddr", or guest address 0x%"PRIpaddr" is not suitably aligned.\n",
-                   d, pbase, gbase);
-            return -EINVAL;
-        }
-        if ( !IS_ALIGNED(psize, PAGE_SIZE) )
-        {
-            printk("%pd: size 0x%"PRIpaddr" is not suitably aligned\n",
-                   d, psize);
-            return -EINVAL;
-        }
-
-        for ( i = 0; i < PFN_DOWN(psize); i++ )
-            if ( !mfn_valid(mfn_add(maddr_to_mfn(pbase), i)) )
-            {
-                printk("%pd: invalid physical address 0x%"PRI_mfn"\n",
-                       d, mfn_x(mfn_add(maddr_to_mfn(pbase), i)));
-                return -EINVAL;
-            }
-
         /*
          * "role" property is optional and if it is defined explicitly,
          * then the owner domain is not the default "dom_io" domain.
@@ -238,6 +371,13 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
         }
         BUG_ON((strlen(shm_id) <= 0) || (strlen(shm_id) >= MAX_SHM_ID_LENGTH));
 
+        shm_memnode = parse_shm_property(d, shm_node, &paddr_assigned, &gbase,
+                                         shm_id);
+        if ( !shm_memnode )
+            return -EINVAL;
+        pbase = shm_memnode->meminfo.bank[0].start;
+        psize = shm_memnode->meminfo.bank[0].size;
+
         /*
          * DOMID_IO is a fake domain and is not described in the Device-Tree.
          * Therefore when the owner of the shared region is DOMID_IO, we will
@@ -349,10 +489,10 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
 {
     const struct fdt_property *prop, *prop_id, *prop_role;
     const __be32 *cell;
-    paddr_t paddr, gaddr, size, end;
+    paddr_t paddr, gaddr, size;
     unsigned int i;
     int len;
-    bool owner = false;
+    bool owner = false, paddr_assigned = true;
     const char *shm_id;
 
     if ( address_cells < 1 || size_cells < 1 )
@@ -404,96 +544,140 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
 
     if ( len != dt_cells_to_size(address_cells + size_cells + address_cells) )
     {
+        /* paddr is not provided in "xen,shared-mem" */
         if ( len == dt_cells_to_size(size_cells + address_cells) )
-            printk("fdt: host physical address must be chosen by users at the moment.\n");
-
-        printk("fdt: invalid `xen,shared-mem` property.\n");
-        return -EINVAL;
+            paddr_assigned = false;
+        else
+        {
+            printk("fdt: invalid `xen,shared-mem` property.\n");
+            return -EINVAL;
+        }
     }
 
     cell = (const __be32 *)prop->data;
-    device_tree_get_reg(&cell, address_cells, address_cells, &paddr, &gaddr);
-    size = dt_next_cell(size_cells, &cell);
-
-    if ( !size )
+    if ( !paddr_assigned )
+        device_tree_get_reg(&cell, address_cells, size_cells, &gaddr, &size);
+    else
     {
-        printk("fdt: the size for static shared memory region can not be zero\n");
-        return -EINVAL;
-    }
+        paddr_t end;
+
+        device_tree_get_reg(&cell, address_cells, address_cells, &paddr, &gaddr);
+        size = dt_next_cell(size_cells, &cell);
+
+        if ( !size )
+        {
+            printk("fdt: the size for static shared memory region can not be zero\n");
+            return -EINVAL;
+        }
+
+        end = paddr + size;
+        if ( end <= paddr )
+        {
+            printk("fdt: static shared memory region %s overflow\n", shm_id);
+            return -EINVAL;
+        }
 
-    end = paddr + size;
-    if ( end <= paddr )
-    {
-        printk("fdt: static shared memory region %s overflow\n", shm_id);
-        return -EINVAL;
     }
 
     for ( i = 0; i < bootinfo.shminfo.nr_nodes; i++ )
     {
-        paddr_t bank_start = bootinfo.shminfo.shm_nodes[i].membank->start;
-        paddr_t bank_size = bootinfo.shminfo.shm_nodes[i].membank->size;
         const char *bank_id = bootinfo.shminfo.shm_nodes[i].node.shm_id;
+        bool is_shmid_equal = strncmp(shm_id, bank_id, MAX_SHM_ID_LENGTH) == 0 ?
+                              true : false;
 
         /*
          * Meet the following check:
+         * when host address is provided:
          * 1) The shm ID matches and the region exactly match
          * 2) The shm ID doesn't match and the region doesn't overlap
          * with an existing one
+         * when host address is not provided:
+         * 1) The shm ID matches and the region size exactly match
+         */
+        /*
+         * For a static shared memory node, it is either banked with
+         * a statically configured host memory bank(membank != NULL), or
+         * arbitrary host memory which will later be allocated by Xen(
+         * tot_size != 0).
          */
-        if ( paddr == bank_start && size == bank_size )
+        if ( bootinfo.shminfo.shm_nodes[i].membank != NULL )
         {
-            if ( strncmp(shm_id, bank_id, MAX_SHM_ID_LENGTH) == 0 )
+            paddr_t bank_start = bootinfo.shminfo.shm_nodes[i].membank->start;
+            paddr_t bank_size = bootinfo.shminfo.shm_nodes[i].membank->size;
+            bool is_same_region = (paddr == bank_start) && (size == bank_size) ?
+                                  true : false;
+
+            if ( is_same_region && is_shmid_equal )
                 break;
-            else
+            else if ( is_same_region || is_shmid_equal )
             {
                 printk("fdt: xen,shm-id %s does not match for all the nodes using the same region.\n",
                        shm_id);
                 return -EINVAL;
             }
         }
-        else if ( strcmp(shm_id, mem->bank[i].shm_id) != 0 )
-            continue;
         else
         {
-            printk("fdt: different shared memory region could not share the same shm ID %s\n",
-                   shm_id);
-            return -EINVAL;
+            paddr_t tot_size = bootinfo.shminfo.shm_nodes[i].tot_size;
+            bool is_same_region = tot_size == size ? true : false;
+
+            if ( !paddr_assigned && is_same_region && is_shmid_equal )
+                break;
+            else if ( is_shmid_equal )
+            {
+                if ( paddr_assigned )
+                {
+                    printk("fdt: two different types of static shared memory region could not share the same shm-id %s\n",
+                           shm_id);
+                    return -EINVAL;
+                }
+
+                printk("fdt: when host address is not provided, if xen,shm-id matches, size must stay the same too(%"PRIpaddr" -> %"PRIpaddr")\n",
+                       size, tot_size);
+                return -EINVAL;
+            }
         }
     }
 
     if ( i == bootinfo.shminfo.nr_nodes )
     {
-        struct meminfo *mem = &bootinfo.reserved_mem;
-
-        if ( (i < NR_MEM_BANKS) && (mem->nr_banks < NR_MEM_BANKS) )
+        if ( i < NR_MEM_BANKS )
         {
-            struct membank *membank = &mem->bank[mem->nr_banks];
             struct shm_node *shm_node = &bootinfo.shminfo.shm_nodes[i].node;
-
-            if ( check_reserved_regions_overlap(paddr, size) )
-                return -EINVAL;
-
-            /* Static shared memory shall be reserved from any other use. */
-            membank->start = paddr;
-            membank->size = size;
-            membank->type = MEMBANK_STATIC_DOMAIN;
-            mem->nr_banks++;
+            struct meminfo *mem = &bootinfo.reserved_mem;
 
             /* Record static shared memory node info in bootinfo.shminfo */
             safe_strcpy(shm_node->shm_id, shm_id);
-            /*
-             * Reserved memory bank is recorded together to assist
-             * doing shm node verification.
-             */
-            bootinfo.shminfo.shm_nodes[i].membank = membank;
             bootinfo.shminfo.nr_nodes++;
+
+            if ( !paddr_assigned )
+                bootinfo.shminfo.shm_nodes[i].tot_size = size;
+            else if ( mem->nr_banks < NR_MEM_BANKS )
+            {
+                struct membank *membank = &mem->bank[mem->nr_banks];
+
+                if ( check_reserved_regions_overlap(paddr, size) )
+                    return -EINVAL;
+
+                /* Static shared memory shall be reserved from any other use. */
+                membank->start = paddr;
+                membank->size = size;
+                membank->type = MEMBANK_STATIC_DOMAIN;
+                mem->nr_banks++;
+
+                /*
+                 * Reserved memory bank is recorded together to assist
+                 * doing shm node verification.
+                 */
+                bootinfo.shminfo.shm_nodes[i].membank = membank;
+            }
+            else
+                goto fail;
         }
         else
-        {
-            printk("Warning: Max number of supported memory regions reached.\n");
-            return -ENOSPC;
-        }
+            goto fail;
     }
+
     /*
      * keep a count of the number of borrowers, which later may be used
      * to calculate the reference count.
@@ -502,6 +686,10 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
         bootinfo.shminfo.shm_nodes[i].node.nr_shm_borrowers++;
 
     return 0;
+
+ fail:
+    printk("Warning: Max number of supported memory regions reached.\n");
+    return -ENOSPC;
 }
 
 int __init make_resv_memory_node(const struct domain *d, void *fdt,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:07:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:07:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649015.1013284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAnrw-00051e-A2; Wed, 06 Dec 2023 09:07:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649015.1013284; Wed, 06 Dec 2023 09: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 1rAnrw-00051T-4e; Wed, 06 Dec 2023 09:07:00 +0000
Received: by outflank-mailman (input) for mailman id 649015;
 Wed, 06 Dec 2023 09:06:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAnru-0002Yw-1I
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:06:58 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id ce5bc596-9416-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 10:06:57 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 85D32139F;
 Wed,  6 Dec 2023 01:07:42 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 8D7E63F762;
 Wed,  6 Dec 2023 01:06:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce5bc596-9416-11ee-98e5-6d05b1d4d9a1
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 06/11] xen/arm: support static shared memory when host address not provided
Date: Wed,  6 Dec 2023 17:06:18 +0800
Message-Id: <20231206090623.1932275-7-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In order to support static shared memory when host address not provided,
we shall do the following modification:
- we shall let Xen allocate memory from heap for static shared memory
at first domain, no matter it is owner or borrower.
- In acquire_shared_memory_bank, as static shared memory has already
been allocated from heap, we shall assign them to the owner domain
using function "assign_pages".
- Function get_shm_pages_reference is created to add as many
additional reference as the number of borrowers.
- We implement a new helper "add_foreign_mapping_for_borrower" to set
up foreign memory mapping for borrower.

Instead of using multiple function parameters to deliver various shm-related
info, like host physical address, SHMID, etc, and with the introduction
of new struct "shm_memnode" to include banked host memory info, we switch to
use "shm_memnode" as function parameter to replace them all, to make codes more
clear and tidy.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
v1 -> v2:
- combine commits 4 - 6 in Serie 1
- Adapt to changes of introducing "struct shm_memnode"
---
v2 -> v3
- fix infinite loop bug and bad indentation
- rebase
---
v3 -> v4:
rebase and no change
---
v4 -> v5:
rebase and no change
---
 xen/arch/arm/domain_build.c             |   6 +-
 xen/arch/arm/include/asm/domain_build.h |   5 +
 xen/arch/arm/static-shmem.c             | 223 ++++++++++++++++--------
 3 files changed, 163 insertions(+), 71 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index c69d481d34..c58996e3e9 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -440,9 +440,9 @@ static void __init allocate_memory_11(struct domain *d,
 }
 
 #ifdef CONFIG_DOM0LESS_BOOT
-static bool __init allocate_domheap_memory(struct domain *d,
-                                           paddr_t tot_size,
-                                           void *mem, enum meminfo_type type)
+bool __init allocate_domheap_memory(struct domain *d,
+                                    paddr_t tot_size,
+                                    void *mem, enum meminfo_type type)
 {
     struct page_info *pg;
     unsigned int max_order = ~0;
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index da9e6025f3..1b75a4c6a8 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -51,6 +51,11 @@ static inline int prepare_acpi(struct domain *d, struct kernel_info *kinfo)
 int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
 #endif
 
+#ifdef CONFIG_DOM0LESS_BOOT
+bool allocate_domheap_memory(struct domain *d, paddr_t tot_size,
+                             void *mem, enum meminfo_type type);
+#endif
+
 #endif
 
 /*
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index a9eb26d543..b04e58172b 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -50,6 +50,11 @@ void __init retrieve_shm_meminfo(void *mem, unsigned int *max_mem_banks,
         *bank = meminfo->bank;
 }
 
+static bool __init is_shm_allocated_from_heap(struct shm_memnode *node)
+{
+    return (node->meminfo.nr_banks != 0);
+}
+
 static int __init acquire_nr_borrower_domain(const char *shm_id,
                                              unsigned long *nr_borrowers)
 {
@@ -75,12 +80,12 @@ static int __init acquire_nr_borrower_domain(const char *shm_id,
  * This function checks whether the static shared memory region is
  * already allocated to dom_io.
  */
-static bool __init is_shm_allocated_to_domio(paddr_t pbase)
+static bool __init is_shm_allocated_to_domio(struct shm_memnode *node)
 {
     struct page_info *page;
     struct domain *d;
 
-    page = maddr_to_page(pbase);
+    page = maddr_to_page(node->meminfo.bank[0].start);
     d = page_get_owner_and_reference(page);
     if ( d == NULL )
         return false;
@@ -98,67 +103,128 @@ static bool __init is_shm_allocated_to_domio(paddr_t pbase)
 }
 
 static mfn_t __init acquire_shared_memory_bank(struct domain *d,
-                                               paddr_t pbase, paddr_t psize)
+                                               struct shm_meminfo *meminfo,
+                                               bool paddr_assigned)
 {
-    mfn_t smfn;
-    unsigned long nr_pfns;
-    int res;
+    int res, i = 0;
 
-    /*
-     * Pages of statically shared memory shall be included
-     * into domain_tot_pages().
-     */
-    nr_pfns = PFN_DOWN(psize);
-    if ( (UINT_MAX - d->max_pages) < nr_pfns )
+    for ( ; i < meminfo->nr_banks; i++ )
     {
-        printk(XENLOG_ERR "%pd: Over-allocation for d->max_pages: %lu.\n",
-               d, nr_pfns);
-        return INVALID_MFN;
+        paddr_t pbase = meminfo->bank[i].start, psize = meminfo->bank[i].size;
+        unsigned long nr_pfns;
+
+        /*
+         * Pages of statically shared memory shall be included
+         * into domain_tot_pages().
+         */
+        nr_pfns = PFN_DOWN(psize);
+        if ( (UINT_MAX - d->max_pages) < nr_pfns )
+        {
+            printk(XENLOG_ERR "%pd: Over-allocation for d->max_pages: %lu.\n",
+                   d, nr_pfns);
+            return INVALID_MFN;
+        }
+        d->max_pages += nr_pfns;
+
+        if ( paddr_assigned )
+        {
+            res = acquire_domstatic_pages(d, maddr_to_mfn(pbase), nr_pfns, 0);
+            if ( res )
+            {
+                printk(XENLOG_ERR
+                       "%pd: failed to acquire static memory: %d.\n", d, res);
+                goto fail;
+            }
+        }
+        else
+            /*
+             * When host address is not provided, static shared memory is
+             * allocated from heap and shall be assigned to owner domain.
+             */
+            if ( assign_pages(maddr_to_page(pbase), nr_pfns, d, 0) )
+                goto fail;
     }
-    d->max_pages += nr_pfns;
 
-    smfn = maddr_to_mfn(pbase);
-    res = acquire_domstatic_pages(d, smfn, nr_pfns, 0);
-    if ( res )
+    return maddr_to_mfn(meminfo->bank[0].start);
+
+ fail:
+    while( --i >= 0 )
+        d->max_pages -= PFN_DOWN(meminfo->bank[i].size);
+    return INVALID_MFN;
+}
+
+static int __init get_shm_pages_reference(struct domain *d,
+                                          struct shm_meminfo *meminfo,
+                                          unsigned long count)
+{
+    struct page_info *page;
+    int i = 0, j;
+
+    for ( ; i < meminfo->nr_banks; i++ )
     {
-        printk(XENLOG_ERR
-               "%pd: failed to acquire static memory: %d.\n", d, res);
-        d->max_pages -= nr_pfns;
-        return INVALID_MFN;
+        paddr_t pbase = meminfo->bank[i].start, psize = meminfo->bank[i].size;
+        unsigned long nr_pages = PFN_DOWN(psize);
+
+        page = maddr_to_page(pbase);
+        for ( j = 0; j < nr_pages; j++ )
+        {
+            if ( !get_page_nr(page + j, d, count) )
+            {
+                printk(XENLOG_ERR
+                       "Failed to add %lu references to page %"PRI_mfn".\n",
+                       count, mfn_x(page_to_mfn(page + j)));
+                goto fail;
+            }
+        }
     }
 
-    return smfn;
+    return 0;
+
+ fail:
+    while ( --j >= 0 )
+        put_page_nr(page + j, count);
+    while ( --i >= 0 )
+    {
+        page = maddr_to_page(meminfo->bank[i].start);
+        j = PFN_DOWN(meminfo->bank[i].size);
+        while ( --j >= 0 )
+            put_page_nr(page + j, count);
+    }
+    return -EINVAL;
 }
 
 static int __init assign_shared_memory(struct domain *d,
-                                       paddr_t pbase, paddr_t psize,
-                                       paddr_t gbase, const char *shm_id)
+                                       struct shm_memnode *node, paddr_t gbase,
+                                       bool paddr_assigned)
 {
     mfn_t smfn;
-    int ret = 0;
-    unsigned long nr_pages, nr_borrowers, i;
-    struct page_info *page;
-
-    printk("%pd: allocate static shared memory BANK %#"PRIpaddr"-%#"PRIpaddr".\n",
-           d, pbase, pbase + psize);
+    int ret;
+    unsigned long nr_borrowers, i;
+    struct shm_meminfo *meminfo = &node->meminfo;
 
-    smfn = acquire_shared_memory_bank(d, pbase, psize);
+    smfn = acquire_shared_memory_bank(d, meminfo, paddr_assigned);
     if ( mfn_eq(smfn, INVALID_MFN) )
         return -EINVAL;
 
-    /*
-     * DOMID_IO is not auto-translated (i.e. it sees RAM 1:1). So we do not need
-     * to create mapping in the P2M.
-     */
-    nr_pages = PFN_DOWN(psize);
-    if ( d != dom_io )
+    for ( i = 0; i < meminfo->nr_banks; i++ )
     {
-        ret = guest_physmap_add_pages(d, gaddr_to_gfn(gbase), smfn,
-                                      PFN_DOWN(psize));
-        if ( ret )
+        paddr_t pbase = meminfo->bank[i].start, psize = meminfo->bank[i].size;
+
+        /*
+         * DOMID_IO is not auto-translated (i.e. it sees RAM 1:1). So we do not need
+         * to create mapping in the P2M.
+         */
+        if ( d != dom_io )
         {
-            printk(XENLOG_ERR "Failed to map shared memory to %pd.\n", d);
-            return ret;
+            ret = guest_physmap_add_pages(d, gaddr_to_gfn(gbase),
+                                          maddr_to_mfn(pbase),
+                                          PFN_DOWN(psize));
+            if ( ret )
+            {
+                printk(XENLOG_ERR "Failed to map shared memory to %pd.\n", d);
+                return ret;
+            }
+            gbase += psize;
         }
     }
 
@@ -166,7 +232,7 @@ static int __init assign_shared_memory(struct domain *d,
      * Get the right amount of references per page, which is the number of
      * borrower domains.
      */
-    ret = acquire_nr_borrower_domain(shm_id, &nr_borrowers);
+    ret = acquire_nr_borrower_domain(node->shm_id, &nr_borrowers);
     if ( ret )
         return ret;
 
@@ -178,24 +244,30 @@ static int __init assign_shared_memory(struct domain *d,
      * So if the borrower is created first, it will cause adding pages
      * in the P2M without reference.
      */
-    page = mfn_to_page(smfn);
-    for ( i = 0; i < nr_pages; i++ )
+    return get_shm_pages_reference(d, meminfo, nr_borrowers);
+}
+
+static int __init add_foreign_mapping_for_borrower(struct domain *d,
+                                                   struct shm_memnode *node,
+                                                   paddr_t gbase)
+{
+    unsigned int i = 0;
+    struct shm_meminfo *meminfo = &node->meminfo;
+
+    for ( ; i < meminfo->nr_banks; i++ )
     {
-        if ( !get_page_nr(page + i, d, nr_borrowers) )
-        {
-            printk(XENLOG_ERR
-                   "Failed to add %lu references to page %"PRI_mfn".\n",
-                   nr_borrowers, mfn_x(smfn) + i);
-            goto fail;
-        }
+        paddr_t pbase = meminfo->bank[i].start, psize = meminfo->bank[i].size;
+        int ret;
+
+        /* Set up P2M foreign mapping for borrower domain. */
+        ret = map_regions_p2mt(d, _gfn(PFN_UP(gbase)), PFN_DOWN(psize),
+                               _mfn(PFN_UP(pbase)), p2m_map_foreign_rw);
+        if ( ret )
+            return ret;
+        gbase += psize;
     }
 
     return 0;
-
- fail:
-    while ( --i >= 0 )
-        put_page_nr(page + i, nr_borrowers);
-    return ret;
 }
 
 static int __init append_shm_bank_to_domain(struct kernel_info *kinfo,
@@ -346,7 +418,7 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
 
     dt_for_each_child_node(node, shm_node)
     {
-        paddr_t gbase, pbase, psize;
+        paddr_t gbase;
         int ret = 0;
         const char *role_str;
         const char *shm_id;
@@ -375,15 +447,30 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
                                          shm_id);
         if ( !shm_memnode )
             return -EINVAL;
-        pbase = shm_memnode->meminfo.bank[0].start;
-        psize = shm_memnode->meminfo.bank[0].size;
+
+        /*
+         * When host address is not provided in "xen,shared-mem",
+         * we let Xen allocate memory from heap at first domain.
+         */
+        if ( !paddr_assigned && !is_shm_allocated_from_heap(shm_memnode) )
+        {
+            if ( !allocate_domheap_memory(NULL, shm_memnode->meminfo.tot_size,
+                                          (void *)&shm_memnode->meminfo,
+                                          SHM_MEMINFO) )
+            {
+                printk(XENLOG_ERR
+                       "Failed to allocate (%"PRIpaddr"MB) pages as static shared memory from heap\n",
+                       shm_memnode->meminfo.tot_size >> 20);
+                return -EINVAL;
+            }
+        }
 
         /*
          * DOMID_IO is a fake domain and is not described in the Device-Tree.
          * Therefore when the owner of the shared region is DOMID_IO, we will
          * only find the borrowers.
          */
-        if ( (owner_dom_io && !is_shm_allocated_to_domio(pbase)) ||
+        if ( (owner_dom_io && !is_shm_allocated_to_domio(shm_memnode)) ||
              (!owner_dom_io && strcmp(role_str, "owner") == 0) )
         {
             /*
@@ -391,16 +478,14 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
              * specified, so they should be assigned to dom_io.
              */
             ret = assign_shared_memory(owner_dom_io ? dom_io : d,
-                                       pbase, psize, gbase, shm_id);
+                                       shm_memnode, gbase, paddr_assigned);
             if ( ret )
                 return ret;
         }
 
         if ( owner_dom_io || (strcmp(role_str, "borrower") == 0) )
         {
-            /* Set up P2M foreign mapping for borrower domain. */
-            ret = map_regions_p2mt(d, _gfn(PFN_UP(gbase)), PFN_DOWN(psize),
-                                   _mfn(PFN_UP(pbase)), p2m_map_foreign_rw);
+            ret = add_foreign_mapping_for_borrower(d, shm_memnode, gbase);
             if ( ret )
                 return ret;
         }
@@ -409,7 +494,9 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
          * Record static shared memory region info for later setting
          * up shm-node in guest device tree.
          */
-        ret = append_shm_bank_to_domain(kinfo, gbase, psize, shm_id);
+        ret = append_shm_bank_to_domain(kinfo, gbase,
+                                        shm_memnode->meminfo.tot_size,
+                                        shm_memnode->shm_id);
         if ( ret )
             return ret;
     }
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:07:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:07:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649019.1013293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAns0-0005cv-Ju; Wed, 06 Dec 2023 09:07:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649019.1013293; Wed, 06 Dec 2023 09: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 1rAns0-0005ck-FY; Wed, 06 Dec 2023 09:07:04 +0000
Received: by outflank-mailman (input) for mailman id 649019;
 Wed, 06 Dec 2023 09: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=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAnry-0002Yw-Cj
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:07:02 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d061339e-9416-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 10:07:00 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E139D139F;
 Wed,  6 Dec 2023 01:07:45 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id E8F2C3F762;
 Wed,  6 Dec 2023 01:06:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d061339e-9416-11ee-98e5-6d05b1d4d9a1
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 07/11] xen/arm: remove shm holes for extended regions
Date: Wed,  6 Dec 2023 17:06:19 +0800
Message-Id: <20231206090623.1932275-8-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Static shared memory acts as reserved memory in guest, so it shall be
excluded from extended regions.

Extended regions are taken care of under three different scenarios:
normal DomU, direct-map domain with iommu on, and direct-map domain
with iommu off.

For normal DomU, we create a new function "remove_shm_holes_for_domU", to
firstly transfer original outputs into the format of "struct rangeset",
then use "remove_shm_from_rangeset" to remove static shm from them.

For direct-map domain with iommu on, after we get guest shm info from "kinfo",
we use "remove_shm_from_rangeset" to remove static shm.

For direct-map domain with iommu off, as static shm has already been taken
care of through reserved memory banks, we do nothing.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>

---
v1 -> v2:
- new commit
---
v2 -> v3:
- error out non-zero res before remove_shm_holes_for_domU
- rebase
---
v3 -> v4:
rebase and no change
---
v4 -> v5:
rebase and no change
---
 xen/arch/arm/domain_build.c             | 19 +++++-
 xen/arch/arm/include/asm/domain_build.h |  2 +
 xen/arch/arm/include/asm/static-shmem.h | 17 +++++
 xen/arch/arm/static-shmem.c             | 83 +++++++++++++++++++++++++
 4 files changed, 118 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index c58996e3e9..e040f8a6d9 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -887,8 +887,8 @@ int __init make_memory_node(const struct domain *d,
     return res;
 }
 
-static int __init add_ext_regions(unsigned long s_gfn, unsigned long e_gfn,
-                                  void *data)
+int __init add_ext_regions(unsigned long s_gfn, unsigned long e_gfn,
+                           void *data)
 {
     struct meminfo *ext_regions = data;
     paddr_t start, size;
@@ -1062,6 +1062,8 @@ static int __init handle_pci_range(const struct dt_device_node *dev,
  * - MMIO
  * - Host RAM
  * - PCI aperture
+ * - Static shared memory regions, which are described by special property
+ *   "xen,static-shm"
  */
 static int __init find_memory_holes(const struct kernel_info *kinfo,
                                     struct meminfo *ext_regions)
@@ -1078,6 +1080,14 @@ static int __init find_memory_holes(const struct kernel_info *kinfo,
     if ( !mem_holes )
         return -ENOMEM;
 
+    /* Remove static shared memory regions */
+    if ( kinfo->shminfo.nr_banks != 0 )
+    {
+        res = remove_shm_from_rangeset(kinfo, mem_holes);
+        if ( res )
+            goto out;
+    }
+
     /* Start with maximum possible addressable physical memory range */
     start = 0;
     end = (1ULL << p2m_ipa_bits) - 1;
@@ -1180,7 +1190,10 @@ static int __init find_domU_holes(const struct kernel_info *kinfo,
         res = 0;
     }
 
-    return res;
+    if ( res )
+        return res;
+
+    return remove_shm_holes_for_domU(kinfo, ext_regions);
 }
 
 int __init make_hypervisor_node(struct domain *d,
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 1b75a4c6a8..0433e76e68 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -56,6 +56,8 @@ bool allocate_domheap_memory(struct domain *d, paddr_t tot_size,
                              void *mem, enum meminfo_type type);
 #endif
 
+int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
+
 #endif
 
 /*
diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
index a67445cec8..d149985291 100644
--- a/xen/arch/arm/include/asm/static-shmem.h
+++ b/xen/arch/arm/include/asm/static-shmem.h
@@ -27,6 +27,12 @@ int process_shm_node(const void *fdt, int node, uint32_t address_cells,
 void retrieve_shm_meminfo(void *mem, unsigned int *max_mem_banks,
                           struct membank **bank,
                           unsigned int **nr_banks);
+
+int remove_shm_from_rangeset(const struct kernel_info *kinfo,
+                             struct rangeset *rangeset);
+
+int remove_shm_holes_for_domU(const struct kernel_info *kinfo,
+                              struct meminfo *orig_ext);
 #else /* !CONFIG_STATIC_SHM */
 
 static inline int make_resv_memory_node(const struct domain *d, void *fdt,
@@ -55,6 +61,17 @@ static inline int process_shm_node(const void *fdt, int node,
     return -EINVAL;
 }
 
+static inline int remove_shm_from_rangeset(const struct kernel_info *kinfo,
+                                           struct rangeset *rangeset)
+{
+    return 0;
+}
+
+static inline int remove_shm_holes_for_domU(const struct kernel_info *kinfo,
+                                            struct meminfo *orig_ext)
+{
+    return 0;
+}
 #endif /* CONFIG_STATIC_SHM */
 
 #endif /* __ASM_STATIC_SHMEM_H_ */
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index b04e58172b..a06949abaf 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include <xen/libfdt/libfdt.h>
+#include <xen/rangeset.h>
 #include <xen/sched.h>
 
 #include <asm/domain_build.h>
@@ -818,6 +819,88 @@ int __init make_resv_memory_node(const struct domain *d, void *fdt,
     return res;
 }
 
+int __init remove_shm_from_rangeset(const struct kernel_info *kinfo,
+                                    struct rangeset *rangeset)
+{
+    unsigned int i;
+
+    /* Remove static shared memory regions */
+    for ( i = 0; i < kinfo->shminfo.nr_banks; i++ )
+    {
+        struct membank membank = kinfo->shminfo.bank[i].membank;
+        paddr_t start, end;
+        int res;
+
+        start = membank.start;
+        end = membank.start + membank.size - 1;
+        res = rangeset_remove_range(rangeset, start, end);
+        if ( res )
+        {
+            printk(XENLOG_ERR "Failed to remove: %#"PRIpaddr"->%#"PRIpaddr"\n",
+                   start, end);
+            return -EINVAL;
+        }
+    }
+
+    return 0;
+}
+
+int __init remove_shm_holes_for_domU(const struct kernel_info *kinfo,
+                                     struct meminfo *orig_ext)
+{
+    struct rangeset *guest_holes;
+    unsigned int i = 0, tail;
+    int res;
+    paddr_t start, end;
+
+    /* No static shared memory region. */
+    if ( kinfo->shminfo.nr_banks == 0 )
+        return 0;
+
+    dt_dprintk("Remove static shared memory holes for extended regions of DomU\n");
+
+    guest_holes = rangeset_new(NULL, NULL, 0);
+    if ( !guest_holes )
+        return -ENOMEM;
+
+    for ( ; i < orig_ext->nr_banks; i++ )
+    {
+        start = orig_ext->bank[i].start;
+        end = start + orig_ext->bank[i].size - 1;
+
+        res = rangeset_add_range(guest_holes, start, end);
+        if ( res )
+        {
+            printk(XENLOG_ERR "Failed to add: %#"PRIpaddr"->%#"PRIpaddr"\n",
+                   start, end);
+            goto out;
+        }
+    }
+
+    /* Remove static shared memory regions */
+    res = remove_shm_from_rangeset(kinfo, guest_holes);
+    if ( res )
+        goto out;
+
+    tail = orig_ext->nr_banks - 1;
+    start = orig_ext->bank[0].start;
+    end = orig_ext->bank[tail].start + orig_ext->bank[tail].size - 1;
+
+    /* Reset original extended regions to hold new value */
+    orig_ext->nr_banks = 0;
+    res = rangeset_report_ranges(guest_holes, start, end,
+                                 add_ext_regions, orig_ext);
+    if ( res )
+        orig_ext->nr_banks = 0;
+    else if ( !orig_ext->nr_banks )
+        res = -ENOENT;
+
+out:
+    rangeset_destroy(guest_holes);
+
+    return res;
+}
+
 /*
  * Local variables:
  * mode: C
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:07:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:07:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649023.1013303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAns2-00063H-R3; Wed, 06 Dec 2023 09:07:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649023.1013303; Wed, 06 Dec 2023 09:07:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAns2-000632-Nk; Wed, 06 Dec 2023 09:07:06 +0000
Received: by outflank-mailman (input) for mailman id 649023;
 Wed, 06 Dec 2023 09:07:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAns2-00022d-62
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:07:06 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id d2ac4a95-9416-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 10:07:04 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 927BC139F;
 Wed,  6 Dec 2023 01:07:49 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 501FF3F762;
 Wed,  6 Dec 2023 01:07:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2ac4a95-9416-11ee-9b0f-b553b5be7939
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 08/11] xen/p2m: put reference for superpage
Date: Wed,  6 Dec 2023 17:06:20 +0800
Message-Id: <20231206090623.1932275-9-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

We are doing foreign memory mapping for static shared memory, and
there is a great possibility that it could be super mapped.
But today, p2m_put_l3_page could not handle superpages.

This commits implements a new function p2m_put_superpage to handle superpages,
specifically for helping put extra references for foreign superpages.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
v1 -> v2:
- new commit
---
v2 -> v3:
- rebase and no change
---
v3 -> v4:
rebase and no change
---
v4 -> v5:
rebase and no change
---
 xen/arch/arm/mmu/p2m.c | 58 +++++++++++++++++++++++++++++++-----------
 1 file changed, 43 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 6a5a080307..810c89397c 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -752,17 +752,9 @@ static int p2m_mem_access_radix_set(struct p2m_domain *p2m, gfn_t gfn,
     return rc;
 }
 
-/*
- * Put any references on the single 4K page referenced by pte.
- * TODO: Handle superpages, for now we only take special references for leaf
- * pages (specifically foreign ones, which can't be super mapped today).
- */
-static void p2m_put_l3_page(const lpae_t pte)
+/* Put any references on the single 4K page referenced by mfn. */
+static void p2m_put_l3_page(mfn_t mfn, unsigned type)
 {
-    mfn_t mfn = lpae_get_mfn(pte);
-
-    ASSERT(p2m_is_valid(pte));
-
     /*
      * TODO: Handle other p2m types
      *
@@ -770,16 +762,53 @@ static void p2m_put_l3_page(const lpae_t pte)
      * flush the TLBs if the page is reallocated before the end of
      * this loop.
      */
-    if ( p2m_is_foreign(pte.p2m.type) )
+    if ( p2m_is_foreign(type) )
     {
         ASSERT(mfn_valid(mfn));
         put_page(mfn_to_page(mfn));
     }
     /* Detect the xenheap page and mark the stored GFN as invalid. */
-    else if ( p2m_is_ram(pte.p2m.type) && is_xen_heap_mfn(mfn) )
+    else if ( p2m_is_ram(type) && is_xen_heap_mfn(mfn) )
         page_set_xenheap_gfn(mfn_to_page(mfn), INVALID_GFN);
 }
 
+/* Put any references on the superpage referenced by mfn. */
+static void p2m_put_superpage(mfn_t mfn, unsigned int next_level, unsigned type)
+{
+    unsigned int i;
+    unsigned int level_order = XEN_PT_LEVEL_ORDER(next_level);
+
+    for ( i = 0; i < XEN_PT_LPAE_ENTRIES; i++ )
+    {
+        if ( next_level == 3 )
+            p2m_put_l3_page(mfn, type);
+        else
+            p2m_put_superpage(mfn, next_level + 1, type);
+
+        mfn = mfn_add(mfn, 1 << level_order);
+    }
+}
+
+/* Put any references on the page referenced by pte. */
+static void p2m_put_page(const lpae_t pte, unsigned int level)
+{
+    mfn_t mfn = lpae_get_mfn(pte);
+
+    ASSERT(p2m_is_valid(pte));
+
+    /*
+     * We are either having a first level 1G superpage or a
+     * second level 2M superpage.
+     */
+    if ( p2m_is_superpage(pte, level) )
+        return p2m_put_superpage(mfn, level + 1, pte.p2m.type);
+    else
+    {
+        ASSERT(level == 3);
+        return p2m_put_l3_page(mfn, pte.p2m.type);
+    }
+}
+
 /* Free lpae sub-tree behind an entry */
 static void p2m_free_entry(struct p2m_domain *p2m,
                            lpae_t entry, unsigned int level)
@@ -808,9 +837,8 @@ static void p2m_free_entry(struct p2m_domain *p2m,
 #endif
 
         p2m->stats.mappings[level]--;
-        /* Nothing to do if the entry is a super-page. */
-        if ( level == 3 )
-            p2m_put_l3_page(entry);
+        p2m_put_page(entry, level);
+
         return;
     }
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:18:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:18:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649040.1013312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAo2z-0002WP-2g; Wed, 06 Dec 2023 09:18:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649040.1013312; Wed, 06 Dec 2023 09: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 1rAo2z-0002WI-09; Wed, 06 Dec 2023 09:18:25 +0000
Received: by outflank-mailman (input) for mailman id 649040;
 Wed, 06 Dec 2023 09: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=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAns3-0002Yw-Rb
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:07:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d45cd516-9416-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 10:07:07 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A3AD5139F;
 Wed,  6 Dec 2023 01:07:52 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id AB8983F7F4;
 Wed,  6 Dec 2023 01:07:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d45cd516-9416-11ee-98e5-6d05b1d4d9a1
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 09/11] xen/docs: refine docs about static shared memory
Date: Wed,  6 Dec 2023 17:06:21 +0800
Message-Id: <20231206090623.1932275-10-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit amends docs(docs/misc/arm/device-tree/booting.txt) to include the
new scenario where host address is not provided in "xen,shared-mem" property,
and we also add a new example to explain in detail.

We also fix some buggy info in the docs, like SHMID is "my-shared-mem-1",
not "0x1".

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
---
 docs/misc/arm/device-tree/booting.txt | 52 ++++++++++++++++++++-------
 1 file changed, 39 insertions(+), 13 deletions(-)

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index bbd955e9c2..ac4bad6fe5 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -590,7 +590,7 @@ communication.
     An array takes a physical address, which is the base address of the
     shared memory region in host physical address space, a size, and a guest
     physical address, as the target address of the mapping.
-    e.g. xen,shared-mem = < [host physical address] [guest address] [size] >
+    e.g. xen,shared-mem = < [host physical address] [guest address] [size] >;
 
     It shall also meet the following criteria:
     1) If the SHM ID matches with an existing region, the address range of the
@@ -601,8 +601,8 @@ communication.
     The number of cells for the host address (and size) is the same as the
     guest pseudo-physical address and they are inherited from the parent node.
 
-    Host physical address is optional, when missing Xen decides the location
-    (currently unimplemented).
+    Host physical address is optional, when missing Xen decides the location.
+    e.g. xen,shared-mem = < [guest address] [size] >;
 
 - role (Optional)
 
@@ -629,7 +629,7 @@ chosen {
         role = "owner";
         xen,shm-id = "my-shared-mem-0";
         xen,shared-mem = <0x10000000 0x10000000 0x10000000>;
-    }
+    };
 
     domU1 {
         compatible = "xen,domain";
@@ -640,25 +640,36 @@ chosen {
         vpl011;
 
         /*
-         * shared memory region identified as 0x0(xen,shm-id = <0x0>)
-         * is shared between Dom0 and DomU1.
+         * shared memory region "my-shared-mem-0" is shared
+         * between Dom0 and DomU1.
          */
         domU1-shared-mem@10000000 {
             compatible = "xen,domain-shared-memory-v1";
             role = "borrower";
             xen,shm-id = "my-shared-mem-0";
             xen,shared-mem = <0x10000000 0x50000000 0x10000000>;
-        }
+        };
 
         /*
-         * shared memory region identified as 0x1(xen,shm-id = <0x1>)
-         * is shared between DomU1 and DomU2.
+         * shared memory region "my-shared-mem-1" is shared between
+         * DomU1 and DomU2.
          */
         domU1-shared-mem@50000000 {
             compatible = "xen,domain-shared-memory-v1";
             xen,shm-id = "my-shared-mem-1";
             xen,shared-mem = <0x50000000 0x60000000 0x20000000>;
-        }
+        };
+
+        /*
+         * shared memory region "my-shared-mem-2" is shared between
+         * DomU1 and DomU2.
+         */
+        domU1-shared-mem-2 {
+            compatible = "xen,domain-shared-memory-v1";
+            xen,shm-id = "my-shared-mem-2";
+            role = "owner";
+            xen,shared-mem = <0x80000000 0x20000000>;
+        };
 
         ......
 
@@ -672,14 +683,21 @@ chosen {
         cpus = <1>;
 
         /*
-         * shared memory region identified as 0x1(xen,shm-id = <0x1>)
-         * is shared between domU1 and domU2.
+         * shared memory region "my-shared-mem-1" is shared between
+         * domU1 and domU2.
          */
         domU2-shared-mem@50000000 {
             compatible = "xen,domain-shared-memory-v1";
             xen,shm-id = "my-shared-mem-1";
             xen,shared-mem = <0x50000000 0x70000000 0x20000000>;
-        }
+        };
+
+        domU2-shared-mem-2 {
+            compatible = "xen,domain-shared-memory-v1";
+            xen,shm-id = "my-shared-mem-2";
+            role = "borrower";
+            xen,shared-mem = <0x90000000 0x20000000>;
+        };
 
         ......
     };
@@ -699,3 +717,11 @@ shared between DomU1 and DomU2. It will get mapped at 0x60000000 in DomU1 guest
 physical address space, and at 0x70000000 in DomU2 guest physical address space.
 DomU1 and DomU2 are both the borrower domain, the owner domain is the default
 owner domain DOMID_IO.
+
+For the static shared memory region "my-shared-mem-2", since host physical
+address is not provided by user, Xen will automatically allocate 512MB
+from heap as static shared memory to be shared between DomU1 and DomU2.
+The automatically allocated static shared memory will get mapped at
+0x80000000 in DomU1 guest physical address space, and at 0x90000000 in DomU2
+guest physical address space. DomU1 is explicitly defined as the owner domain,
+and DomU2 is the borrower domain.
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:19:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649044.1013323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAo4F-0003Nw-D2; Wed, 06 Dec 2023 09:19:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649044.1013323; Wed, 06 Dec 2023 09:19:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAo4F-0003Np-9x; Wed, 06 Dec 2023 09:19:43 +0000
Received: by outflank-mailman (input) for mailman id 649044;
 Wed, 06 Dec 2023 09: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=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAnsB-00022d-Qi
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:07:15 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id d870d2bf-9416-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 10:07:13 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 66524139F;
 Wed,  6 Dec 2023 01:07:59 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6D7DB3F762;
 Wed,  6 Dec 2023 01:07:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d870d2bf-9416-11ee-9b0f-b553b5be7939
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 11/11] xen/arm: create another /memory node for static shm
Date: Wed,  6 Dec 2023 17:06:23 +0800
Message-Id: <20231206090623.1932275-12-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Static shared memory region shall be described both under /memory and
/reserved-memory.

We introduce export_shm_memory_node() to create another /memory node to
contain the static shared memory ranges.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>

---
v3 -> v4:
new commit
---
v4 -> v5:
rebase and no changes
---
 xen/arch/arm/dom0less-build.c           |  8 ++++++++
 xen/arch/arm/domain_build.c             |  8 ++++++++
 xen/arch/arm/include/asm/static-shmem.h | 10 ++++++++++
 xen/arch/arm/static-shmem.c             | 19 +++++++++++++++++++
 4 files changed, 45 insertions(+)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index ac096fa3fa..870b8a553f 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -645,6 +645,14 @@ static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
     if ( ret )
         goto err;
 
+    /* Create a memory node to store the static shared memory regions */
+    if ( kinfo->shminfo.nr_banks != 0 )
+    {
+        ret = export_shm_memory_node(d, kinfo, addrcells, sizecells);
+        if ( ret )
+            goto err;
+    }
+
     ret = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells, kinfo);
     if ( ret )
         goto err;
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index f098678ea3..4e450cb4c7 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1873,6 +1873,14 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
                 return res;
         }
 
+        /* Create a memory node to store the static shared memory regions */
+        if ( kinfo->shminfo.nr_banks != 0 )
+        {
+            res = export_shm_memory_node(d, kinfo, addrcells, sizecells);
+            if ( res )
+                return res;
+        }
+
         /* Avoid duplicate /reserved-memory nodes in Device Tree */
         if ( !kinfo->resv_mem )
         {
diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
index 6cb4ef9646..385fd24c17 100644
--- a/xen/arch/arm/include/asm/static-shmem.h
+++ b/xen/arch/arm/include/asm/static-shmem.h
@@ -38,6 +38,10 @@ int make_shm_memory_node(const struct domain *d,
                          void *fdt,
                          int addrcells, int sizecells,
                          const struct kernel_info *kinfo);
+
+int export_shm_memory_node(const struct domain *d,
+                           const struct kernel_info *kinfo,
+                           int addrcells, int sizecells);
 #else /* !CONFIG_STATIC_SHM */
 
 static inline int make_resv_memory_node(const struct domain *d, void *fdt,
@@ -86,6 +90,12 @@ static inline int make_shm_memory_node(const struct domain *d,
     return 0;
 }
 
+static inline int export_shm_memory_node(const struct domain *d,
+                                         const struct kernel_info *kinfo,
+                                         int addrcells, int sizecells)
+{
+    return 0;
+}
 #endif /* CONFIG_STATIC_SHM */
 
 #endif /* __ASM_STATIC_SHMEM_H_ */
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index bfce5bbad0..e583aae685 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -505,6 +505,25 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
     return 0;
 }
 
+int __init export_shm_memory_node(const struct domain *d,
+                                  const struct kernel_info *kinfo,
+                                  int addrcells, int sizecells)
+{
+    unsigned int i = 0;
+    struct meminfo shm_meminfo;
+
+    /* Extract meminfo from kinfo.shminfo */
+    for ( ; i < kinfo->shminfo.nr_banks; i++ )
+    {
+        shm_meminfo.bank[i].start = kinfo->shminfo.bank[i].membank.start;
+        shm_meminfo.bank[i].size = kinfo->shminfo.bank[i].membank.size;
+        shm_meminfo.bank[i].type = MEMBANK_DEFAULT;
+    }
+    shm_meminfo.nr_banks = kinfo->shminfo.nr_banks;
+
+    return make_memory_node(d, kinfo->fdt, addrcells, sizecells, &shm_meminfo);
+}
+
 int __init make_shm_memory_node(const struct domain *d, void *fdt,
                                 int addrcells, int sizecells,
                                 const struct kernel_info *kinfo)
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 09:22:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 09:22:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649052.1013333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAo6V-0005Py-OT; Wed, 06 Dec 2023 09:22:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649052.1013333; Wed, 06 Dec 2023 09:22: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 1rAo6V-0005Pr-La; Wed, 06 Dec 2023 09:22:03 +0000
Received: by outflank-mailman (input) for mailman id 649052;
 Wed, 06 Dec 2023 09:22:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B4rn=HR=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rAns8-00022d-Ac
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 09:07:12 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id d6660baf-9416-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 10:07:10 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0A835139F;
 Wed,  6 Dec 2023 01:07:56 -0800 (PST)
Received: from a011292.shanghai.arm.com (a011292.shanghai.arm.com
 [10.169.190.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 129A73F762;
 Wed,  6 Dec 2023 01:07:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6660baf-9416-11ee-9b0f-b553b5be7939
From: Penny Zheng <Penny.Zheng@arm.com>
To: xen-devel@lists.xenproject.org,
	michal.orzel@amd.com
Cc: wei.chen@arm.com,
	Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>
Subject: [PATCH v5 10/11] xen/arm: fix duplicate /reserved-memory node in Dom0
Date: Wed,  6 Dec 2023 17:06:22 +0800
Message-Id: <20231206090623.1932275-11-Penny.Zheng@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231206090623.1932275-1-Penny.Zheng@arm.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In case there is a /reserved-memory node already present in the host dtb,
current Xen codes would create yet another /reserved-memory node specially
for the static shm in Dom0 Device Tree.

Xen will use write_properties() to copy the reserved memory nodes from host dtb
to Dom0 FDT, so we want to insert the shm node along with the copying.
And avoiding duplication, we add a checking before make_resv_memory_node().

Signed-off-by: Penny Zheng <penny.zheng@arm.com>

---
v3 -> v4:
new commit
---
v4 -> v5:
rebase and no change
---
 xen/arch/arm/domain_build.c             | 27 ++++++++++++++++++++++---
 xen/arch/arm/include/asm/kernel.h       |  2 ++
 xen/arch/arm/include/asm/static-shmem.h | 14 +++++++++++++
 xen/arch/arm/static-shmem.c             |  6 +++---
 4 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index e040f8a6d9..f098678ea3 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -752,6 +752,23 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
         }
     }
 
+    if ( dt_node_path_is_equal(node, "/reserved-memory") )
+    {
+        kinfo->resv_mem = true;
+
+        /* shared memory provided. */
+        if ( kinfo->shminfo.nr_banks != 0 )
+        {
+            uint32_t addrcells = dt_n_addr_cells(node),
+                     sizecells = dt_n_size_cells(node);
+
+            res = make_shm_memory_node(d, kinfo->fdt,
+                                       addrcells, sizecells, kinfo);
+            if ( res )
+                return res;
+        }
+    }
+
     return 0;
 }
 
@@ -1856,9 +1873,13 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
                 return res;
         }
 
-        res = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells, kinfo);
-        if ( res )
-            return res;
+        /* Avoid duplicate /reserved-memory nodes in Device Tree */
+        if ( !kinfo->resv_mem )
+        {
+            res = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells, kinfo);
+            if ( res )
+                return res;
+        }
     }
 
     res = fdt_end_node(kinfo->fdt);
diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/kernel.h
index db3d8232fa..8fe2105a91 100644
--- a/xen/arch/arm/include/asm/kernel.h
+++ b/xen/arch/arm/include/asm/kernel.h
@@ -39,6 +39,8 @@ struct kernel_info {
     void *fdt; /* flat device tree */
     paddr_t unassigned_mem; /* RAM not (yet) assigned to a bank */
     struct meminfo mem;
+    /* Whether we have /reserved-memory node in host Device Tree */
+    bool resv_mem;
     /* Static shared memory banks */
     struct {
         unsigned int nr_banks;
diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
index d149985291..6cb4ef9646 100644
--- a/xen/arch/arm/include/asm/static-shmem.h
+++ b/xen/arch/arm/include/asm/static-shmem.h
@@ -33,6 +33,11 @@ int remove_shm_from_rangeset(const struct kernel_info *kinfo,
 
 int remove_shm_holes_for_domU(const struct kernel_info *kinfo,
                               struct meminfo *orig_ext);
+
+int make_shm_memory_node(const struct domain *d,
+                         void *fdt,
+                         int addrcells, int sizecells,
+                         const struct kernel_info *kinfo);
 #else /* !CONFIG_STATIC_SHM */
 
 static inline int make_resv_memory_node(const struct domain *d, void *fdt,
@@ -72,6 +77,15 @@ static inline int remove_shm_holes_for_domU(const struct kernel_info *kinfo,
 {
     return 0;
 }
+
+static inline int make_shm_memory_node(const struct domain *d,
+                                       void *fdt,
+                                       int addrcells, int sizecells,
+                                       const struct kernel_info *kinfo)
+{
+    return 0;
+}
+
 #endif /* CONFIG_STATIC_SHM */
 
 #endif /* __ASM_STATIC_SHMEM_H_ */
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index a06949abaf..bfce5bbad0 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -505,9 +505,9 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
     return 0;
 }
 
-static int __init make_shm_memory_node(const struct domain *d, void *fdt,
-                                       int addrcells, int sizecells,
-                                       const struct kernel_info *kinfo)
+int __init make_shm_memory_node(const struct domain *d, void *fdt,
+                                int addrcells, int sizecells,
+                                const struct kernel_info *kinfo)
 {
     unsigned int i = 0;
     int res = 0;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 10:01:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 10:01:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649059.1013342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAoi7-0007Uo-LD; Wed, 06 Dec 2023 10:00:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649059.1013342; Wed, 06 Dec 2023 10: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 1rAoi7-0007Uh-Ik; Wed, 06 Dec 2023 10:00:55 +0000
Received: by outflank-mailman (input) for mailman id 649059;
 Wed, 06 Dec 2023 10:00:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAoi6-0007Ub-By
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 10:00:54 +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 57166b2e-941e-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 11:00:52 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 8AE1F21CA4;
 Wed,  6 Dec 2023 10:00: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 536F413408;
 Wed,  6 Dec 2023 10:00:52 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id Vf/+ElRGcGXhTwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 10:00: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: 57166b2e-941e-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701856852; 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=4lwAqV1MHSRTnHcwoKZa6msNmI+hBHkZX70xwsXj6K0=;
	b=AtabTKg+Yby/l4WrXtHAOZ3nls3YjdpQt2xVStA19DNYChW9Ia6u46tKGNyyKTUBvfk867
	k6YN/DtD1iva9JWpINctz1X7UMoiYwGE7toa59fMRBwY8siGw+V2imXE9DM6g3hq9ho6Eb
	SbwMO1VjNC59qIJKZ+dbqqrVbAimPM8=
Message-ID: <5bc34aa0-607b-4e89-bd71-c216c70ddc67@suse.com>
Date: Wed, 6 Dec 2023 11:00:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/arm: set -mno-unaligned-access compiler option
 for Arm32
Content-Language: en-US
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>,
 xen-devel@lists.xenproject.org
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-2-jgross@suse.com>
 <606969b5-5ee3-4e15-92d4-86b142845437@suse.com>
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: <606969b5-5ee3-4e15-92d4-86b142845437@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------gLGpQ4Hi0mTKNFH75LmUalQx"
X-Spam-Flag: NO
X-Spamd-Result: default: False [-2.55 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-0.36)[76.66%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[7];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Score: -2.55
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------gLGpQ4Hi0mTKNFH75LmUalQx
Content-Type: multipart/mixed; boundary="------------6uVjXIaVaYKlBepkfayRypHG";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
Message-ID: <5bc34aa0-607b-4e89-bd71-c216c70ddc67@suse.com>
Subject: Re: [PATCH v2 1/3] xen/arm: set -mno-unaligned-access compiler option
 for Arm32
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-2-jgross@suse.com>
 <606969b5-5ee3-4e15-92d4-86b142845437@suse.com>
In-Reply-To: <606969b5-5ee3-4e15-92d4-86b142845437@suse.com>

--------------6uVjXIaVaYKlBepkfayRypHG
Content-Type: multipart/mixed; boundary="------------fdpRViHina7ihxV0nsNHhzz5"

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

T24gMDYuMTIuMjMgMDk6NDQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNi4xMi4yMDIz
IDA4OjEwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gQXMgdGhlIGh5cGVydmlzb3IgaXMg
ZGlzYWJsaW5nIHVuYWxpZ25lZCBhY2Nlc3NlcyBmb3IgQXJtMzIsIHNldCB0aGUNCj4+IC1t
bm8tdW5hbGlnbmVkLWFjY2VzcyBjb21waWxlciBvcHRpb24gZm9yIGJ1aWxkaW5nLiBUaGlz
IHdpbGwgcHJvaGliaXQNCj4+IHVuYWxpZ25lZCBhY2Nlc3NlcyB3aGVuIGUuZy4gYWNjZXNz
aW5nIDItIG9yIDQtYnl0ZSBkYXRhIGl0ZW1zIGluDQo+PiBwYWNrZWQgZGF0YSBzdHJ1Y3R1
cmVzLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNl
LmNvbT4NCj4gDQo+IEFzc3VtaW5nIHRoaXMgd2lsbCB3YW50IGJhY2twb3J0aW5nLCBzaG91
bGQgaXQgaGF2ZSBzb21lIEZpeGVzOiB0YWc/DQoNCklNSE8gdGhpcyBtaWdodCBub3QgYmUg
bmVlZGVkLCBidXQgdGhlIEFybSBtYWludGFpbmVycyBzaG91bGQgaGF2ZSB0aGUNCmZpbmFs
IHNheS4NCg0KVGhpcyBvcHRpb24gaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYWZ0ZXIgdGhl
IHdob2xlIHNlcmllcyBoYXMgYmVlbg0KYXBwbGllZCwgYXMgZ2V0X3VuYWxpZ25lZCgpIGFu
ZCBwdXRfdW5hbGlnbmVkKCkgY2FuIHRoZW4gYmUgdXNlZCBpbiBBcm0zMg0KY29kZSwgdG9v
LiBBbmQgd2l0aG91dCB0aGUgYWRkZWQgb3B0aW9uIHRoaXMgY291bGQgY2F1c2UgY3Jhc2hl
cy4NCg0KDQpKdWVyZ2VuDQo=
--------------fdpRViHina7ihxV0nsNHhzz5
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-----

--------------fdpRViHina7ihxV0nsNHhzz5--

--------------6uVjXIaVaYKlBepkfayRypHG--

--------------gLGpQ4Hi0mTKNFH75LmUalQx
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/Ey8FAmVwRlMFAwAAAAAACgkQsN6d1ii/Ey+d
4Af/Vxls64idV1jHBwtW7WCCsM7mnjswZQG3tb5NMlQKDN+6XCDqp+64IcGIln9TNcFXFoscHeyb
iEsQw7fK+FzZw2t6K6UXwATUn18V2Ri7CAqiXrbZny77xRN4pzu6ABDzFrfLisFvZKEeNbJBjGNy
6eGWd6UTo9FEyUG1F0Fcdx0fm7Px816s3L7+AZ4boN+M8NFuuzJpz56AfTChCJuKcJCUicuNXu3v
3IbarJenqyGIXt7ISo1iqjfCX1iwY+nHw7NyUtoxVndbvf6V8otFK40+ZNAMmGSjp1Cg2L3VL9FA
Ce1mMODK8HSOyUuI3e6OoD8q8S3W9MKR8PQR4Crrvg==
=EcJQ
-----END PGP SIGNATURE-----

--------------gLGpQ4Hi0mTKNFH75LmUalQx--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 10:02:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 10:02:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649062.1013352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAojT-00085D-5O; Wed, 06 Dec 2023 10:02:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649062.1013352; Wed, 06 Dec 2023 10:02:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAojT-000856-2X; Wed, 06 Dec 2023 10:02:19 +0000
Received: by outflank-mailman (input) for mailman id 649062;
 Wed, 06 Dec 2023 10:02: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAojR-00084y-Fb
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 10:02:17 +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 88c12505-941e-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 11:02:16 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id D8C501FD03;
 Wed,  6 Dec 2023 10:02:13 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 9C9A613408;
 Wed,  6 Dec 2023 10:02:13 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id uGqkJKVGcGXhTwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 10:02: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: 88c12505-941e-11ee-98e5-6d05b1d4d9a1
Message-ID: <8224404e-ed23-438b-8a61-23d76a980cc5@suse.com>
Date: Wed, 6 Dec 2023 11:02:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>,
 Arnd Bergmann <arnd@arndb.de>, xen-devel@lists.xenproject.org
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
 <96711b23-9dd9-4029-aaea-a3e755c4bd3e@suse.com>
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: <96711b23-9dd9-4029-aaea-a3e755c4bd3e@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------UKaMsVOQc0caseLDa7i9fmwJ"
X-Spam-Level: ****************
X-Spamd-Bar: ++++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [16.93 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_SPAM_SHORT(1.93)[0.644];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,arndb.de:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 16.93
X-Rspamd-Queue-Id: D8C501FD03
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------UKaMsVOQc0caseLDa7i9fmwJ
Content-Type: multipart/mixed; boundary="------------XepRGDaaBBcRJYEFZgLeE8IJ";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>,
 Arnd Bergmann <arnd@arndb.de>, xen-devel@lists.xenproject.org
Message-ID: <8224404e-ed23-438b-8a61-23d76a980cc5@suse.com>
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
 <96711b23-9dd9-4029-aaea-a3e755c4bd3e@suse.com>
In-Reply-To: <96711b23-9dd9-4029-aaea-a3e755c4bd3e@suse.com>

--------------XepRGDaaBBcRJYEFZgLeE8IJ
Content-Type: multipart/mixed; boundary="------------devWEQBDbo9v3W8Y93Z9jEV5"

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

T24gMDYuMTIuMjMgMDk6NDYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNi4xMi4yMDIz
IDA4OjEwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gSW5zdGVhZCBvZiBkZWZpbmluZyBn
ZXRfdW5hbGlnbmVkKCkgYW5kIHB1dF91bmFsaWduZWQoKSBpbiBhIHdheSB0aGF0DQo+PiBp
cyBvbmx5IHN1cHBvcnRpbmcgYXJjaGl0ZWN0dXJlcyBhbGxvd2luZyB1bmFsaWduZWQgYWNj
ZXNzZXMsIHVzZSB0aGUNCj4+IHNhbWUgYXBwcm9hY2ggYXMgdGhlIExpbnV4IGtlcm5lbCBh
bmQgbGV0IHRoZSBjb21waWxlciBkbyB0aGUNCj4+IGRlY2lzaW9uIGhvdyB0byBnZW5lcmF0
ZSB0aGUgY29kZSBmb3IgcHJvYmFibHkgdW5hbGlnbmVkIGRhdGEgYWNjZXNzZXMuDQo+Pg0K
Pj4gVXBkYXRlIGluY2x1ZGUveGVuL3VuYWxpZ25lZC5oIGZyb20gaW5jbHVkZS9hc20tZ2Vu
ZXJpYy91bmFsaWduZWQuaCBvZg0KPj4gdGhlIExpbnV4IGtlcm5lbC4NCj4+DQo+PiBUaGUg
Z2VuZXJhdGVkIGNvZGUgaGFzIGJlZW4gY2hlY2tlZCB0byBiZSB0aGUgc2FtZSBvbiB4ODYu
DQo+Pg0KPj4gTW9kaWZ5IHRoZSBMaW51eCB2YXJpYW50IHRvIG5vdCB1c2UgdW5kZXJzY29y
ZSBwcmVmaXhlZCBpZGVudGlmaWVycywNCj4+IGF2b2lkIHVubmVlZGVkIHBhcmVudGhlc2Vz
IGFuZCBkcm9wIHRoZSAyNC1iaXQgYWNjZXNzb3JzLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6
IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+DQo+PiBPcmlnaW46IGdpdDovL2dpdC5r
ZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQg
ODAzZjRlMWVhYjdhDQo+PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NA
c3VzZS5jb20+DQo+IA0KPiBBY2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPg0KPiANCj4gTmV2ZXJ0aGVsZXNzIC4uLg0KPiANCj4+IEBAIC0xNSw2NyArNyw4MiBA
QA0KPj4gICAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPg0KPj4gICAjZW5kaWYNCj4+ICAg
DQo+PiAtI2RlZmluZSBnZXRfdW5hbGlnbmVkKHApICgqKHApKQ0KPj4gLSNkZWZpbmUgcHV0
X3VuYWxpZ25lZCh2YWwsIHApICgqKHApID0gKHZhbCkpDQo+PiArLyoNCj4+ICsgKiBUaGlz
IGlzIHRoZSBtb3N0IGdlbmVyaWMgaW1wbGVtZW50YXRpb24gb2YgdW5hbGlnbmVkIGFjY2Vz
c2VzDQo+PiArICogYW5kIHNob3VsZCB3b3JrIGFsbW9zdCBhbnl3aGVyZS4NCj4+ICsgKi8N
Cj4+ICsNCj4+ICsjZGVmaW5lIGdldF91bmFsaWduZWRfdF8odHlwZSwgcHRyKSAoewkJCQkJ
XA0KPiANCj4gLi4uLCBkbyB3ZSBuZWVkIHRoZSB0cmFpbGluZyB1bmRlcnNjb3JlcyBoZXJl
IGluIGFkZGl0aW9uIHRvIHRoZSBhbHJlYWR5DQo+IHN1ZmZpY2llbnRseSBjbGVhciBfdCBz
dWZmaXhlcz8gKExlYXZpbmcgYXNpZGUgdGhhdCAuLi5fdCBnZW5lcmFsbHkgaXMgdG8NCj4g
ZGVub3RlIHR5cGVzLCBub3QgbWFjcm9zIG9yIGZ1bmN0aW9ucy4pDQoNCk1heWJlIHdlIHNo
b3VsZCBqdXN0IG5hbWUgaXQgZ2V0X3VuYWxpZ25lZF90eXBlKCk/DQoNCg0KSnVlcmdlbg0K

--------------devWEQBDbo9v3W8Y93Z9jEV5
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-----

--------------devWEQBDbo9v3W8Y93Z9jEV5--

--------------XepRGDaaBBcRJYEFZgLeE8IJ--

--------------UKaMsVOQc0caseLDa7i9fmwJ
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/Ey8FAmVwRqUFAwAAAAAACgkQsN6d1ii/Ey8Z
Twf/RNt4DJ6z4vElWG0D+FutE4WWtmj1kO3+Zas4JcgThNi/Cas5FUhkovgYT4MXq78YfZPLy1Bo
iv4mFZrF90xcBIjY6bq4RN2/IxWkqCI9wXGfcY9vnYLkdBHtsqfeaHkKYfCpUoP4HmvdNImVgrzF
XJokYCkw26FLnCEdLxEvUkIpWmYAR3pvW1d3Y5xmhMnjzBrtQ0/bEIczP/OiZ6si2L896klBMJkD
jJebPzeI83l3XAt2jy7+weuXY8R1V/uk3RVpU4LrLIxdWI4c5z57VRJDgy2TdADARIJj+gnE3bSd
8yQC9WxcIkoYysDq+t1DeKo201K4HqirtswkerF+wg==
=Hz8+
-----END PGP SIGNATURE-----

--------------UKaMsVOQc0caseLDa7i9fmwJ--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 10:14:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 10:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649067.1013362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAovE-0002RC-4Z; Wed, 06 Dec 2023 10:14:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649067.1013362; Wed, 06 Dec 2023 10:14:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAovE-0002R5-26; Wed, 06 Dec 2023 10:14:28 +0000
Received: by outflank-mailman (input) for mailman id 649067;
 Wed, 06 Dec 2023 10: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=mE+U=HR=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rAovC-0002Qz-8M
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 10:14:26 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3aa50b64-9420-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 11:14:24 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 712FB4EE0739;
 Wed,  6 Dec 2023 11:14:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3aa50b64-9420-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Wed, 06 Dec 2023 11:14:23 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH] ns16550: remove partial explicit initializer
In-Reply-To: <21691a25-1630-4f56-bd3f-60e2a71107ef@suse.com>
References: <89f9aebddac56c034aace59c5b910ad4bef701c5.1701793717.git.nicola.vetrini@bugseng.com>
 <21691a25-1630-4f56-bd3f-60e2a71107ef@suse.com>
Message-ID: <5bdafb3552e35e5db3db54ba59e23b6b@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 2023-12-06 10:01, Jan Beulich wrote:
> On 05.12.2023 17:31, Nicola Vetrini wrote:
>> --- a/xen/drivers/char/ns16550.c
>> +++ b/xen/drivers/char/ns16550.c
>> @@ -73,7 +73,7 @@ static struct ns16550 {
> 
> With the variable even being static, ...
> 
>>      bool msi;
>>      const struct ns16550_config_param *param; /* Points into .init.*! 
>> */
>>  #endif
>> -} ns16550_com[2] = { { 0 } };
>> +} ns16550_com[2] = { };
> 
> ... what use is the initializer in the first place?
> 
> Jan

I understood it as a visual cue that the array was initialized, as it 
was before. I don't have a specific preference one way or another, but I 
see this has already been committed.

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 10:35:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 10:35:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649072.1013372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApFk-0006zR-Qx; Wed, 06 Dec 2023 10:35:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649072.1013372; Wed, 06 Dec 2023 10:35:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApFk-0006zK-OL; Wed, 06 Dec 2023 10:35:40 +0000
Received: by outflank-mailman (input) for mailman id 649072;
 Wed, 06 Dec 2023 10:35:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mE+U=HR=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rApFj-0006zE-FW
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 10:35:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25d0e15b-9423-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 11:35:17 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 06CFA4EE0739;
 Wed,  6 Dec 2023 11:35:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25d0e15b-9423-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Wed, 06 Dec 2023 11:35:17 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
 michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com,
 consulting@bugseng.com, bertrand.marquis@arm.com, julien@xen.org, Andrew
 Cooper <andrew.cooper3@citrix.com>, George Dunlap
 <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 7/7] xen/page_alloc: deviate first_valid_mfn for MISRA
 C Rule 8.4
In-Reply-To: <alpine.DEB.2.22.394.2312041517310.110490@ubuntu-linux-20-04-desktop>
References: <cover.1701270983.git.nicola.vetrini@bugseng.com>
 <1ee69d2f0b9e9a704bf869e2b2700f88a8069343.1701270983.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2311301847300.110490@ubuntu-linux-20-04-desktop>
 <21956d5b-08ad-45ac-96ff-22fe7d54ec60@suse.com>
 <alpine.DEB.2.22.394.2312011901450.110490@ubuntu-linux-20-04-desktop>
 <5dae5d3e-81f3-4e78-a92f-fd1cc7eb2ea4@suse.com>
 <c7a45a0b0849cd319fb65cbd31f9f9d5@bugseng.com>
 <alpine.DEB.2.22.394.2312041517310.110490@ubuntu-linux-20-04-desktop>
Message-ID: <138593a577a339fd59ef175f097bcb7f@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 2023-12-05 00:18, Stefano Stabellini wrote:
> On Mon, 4 Dec 2023, Nicola Vetrini wrote:
>> On 2023-12-04 08:44, Jan Beulich wrote:
>> > On 02.12.2023 04:03, Stefano Stabellini wrote:
>> > > On Fri, 1 Dec 2023, Jan Beulich wrote:
>> > > > On 01.12.2023 03:47, Stefano Stabellini wrote:
>> > > > > On Wed, 29 Nov 2023, Nicola Vetrini wrote:
>> > > > > > No functional change.
>> > > > > >
>> > > > > > Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> > > > > > ---
>> > > > > > The preferred way to deviate is to use asmlinkage, but this
>> > > > > > modification is only
>> > > > > > the consequence of NUMA on ARM (and possibly PPC) being a work in
>> > > > > > progress.
>> > > > > > As stated in the comment above the textual deviation,
>> > > > > > first_valid_mfn will
>> > > > > > likely then become static and there would be no need for the comment
>> > > > > > anymore.
>> > > > > > This works towards having the analysis for this rule clean (i.e. no
>> > > > > > violations);
>> > > > > > the interest in having a clean rule is that then it could be used to
>> > > > > > signal
>> > > > > > newly introduced violations by making the analysis job fail.
>> > > > >
>> > > > > Please add this text as part of the commit message. It can be done on
>> > > > > commit.
>> > > >
>> > > > I assume you saw my reply on another of the patches in this series as to
>> > > > asmlinkage use on variables? IOW I think this paragraph would also need
>> > > > adjustment to account for that.
>> > >
>> > > I was going to ask you about that: reading your reply
>> > > https://marc.info/?l=xen-devel&m=170142048615336 it is not clear to me
>> > > what you are asking or suggesting as next step in regard to asmlinkage
>> > > use on variables.
>> >
>> > Either we need a separate attribute, or we need affirmation that calling
>> > convention attributes are ignored (and going to be going forward) for
>> > variables, or we need to resort to SAF-* comments. I'm not sure what's
>> > best (assuming the "affirm" wouldn't really be possible).
>> >
>> 
>> Well, gcc does warn on unsupported attributes for the entity which are 
>> being
>> dropped. This appears to be the case for calling convention 
>> attributes, as
>> they are not listed in their documentation for variable attributes, 
>> but some
>> more digging would be required to determine whether that's always the 
>> case.
> 
> Given that I don't suppose we have many variables that need deviating
> (probably only 2-3 overall?) I think it is just easier to add a SAF
> comment.

I agree, but then given what Julien wrote in the thread, I'll see what I 
can do to avoid creating a new SAF entry.

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 10:52:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 10:52:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649076.1013382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApVy-0002in-3G; Wed, 06 Dec 2023 10:52:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649076.1013382; Wed, 06 Dec 2023 10:52:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApVy-0002ig-0j; Wed, 06 Dec 2023 10:52:26 +0000
Received: by outflank-mailman (input) for mailman id 649076;
 Wed, 06 Dec 2023 10:52: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=rHB2=HR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rApVx-0002iV-AB
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 10:52:25 +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 89e79bfc-9425-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 11:52:24 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c09f4bea8so35228845e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 02:52:24 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 o18-20020a05600c511200b004064e3b94afsm25135009wms.4.2023.12.06.02.52.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 02:52:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89e79bfc-9425-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701859944; x=1702464744; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=i3T+URRasKd5gVZ+HA55OHDT/UwrqFouVUpxLYSOqEI=;
        b=qlVoUW92SLtC9ur2HDX9/JpHqMX+/iL47H4fGXOOdZBxfr4MgTNR8pTEklRgv+lR7c
         5gRgLdYO1yMOHF40azVO2Mb5bR6L0XN8zc1PIcEVTmY2TZz5ETtrQ4N8v8wjc4StiFsb
         yIveVToggDPg7Ny8Jb3wfopDETVa78OTbSXqU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701859944; x=1702464744;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=i3T+URRasKd5gVZ+HA55OHDT/UwrqFouVUpxLYSOqEI=;
        b=n4xMJ7UPZtegDLhQMEHuL16eclho1ii6VPK+CS9LiLjRvLicykzrbszhSOpDOhwfl4
         /S0zUUAQsbicR2DKjIyY1O1ansIPU092fhLRqhjWlQZUrTy+vdQX9wl9EXUCZAAPKPEK
         8PjrstB7KEMqJqifXbCQ6m+Kv61iG0bv4Jx3Zu3jTB1+o/3sKHz9j1ahcuBDwDCH9wuQ
         OTCojtyLTh/4LQ1+9F7GBzx67CPVKyfOInPBvOpeNcJvjcJF/1txkCI4/Nax7CoFYV7S
         8iUKql3ft0T2HRSKdiNxFQP9PSmQ21KplKZTEZOH1GxkAQ2GzomMqJ+sFPpmWvcjc4f5
         71mw==
X-Gm-Message-State: AOJu0YzyF0KE0c7TWR70YSB7SEJ0A+nBd1QXuXlOtl4uLgTJI2La0Hxy
	2tLxCj489ewk2DkVdQQJY+MxFQ==
X-Google-Smtp-Source: AGHT+IGyYI/iLV3MXXqtgc+OS1XGSR24oMrjGM2wBrpEuiDQnoQ5fP667PhzsvsojPHbDmyJbjeAVQ==
X-Received: by 2002:a05:600c:4fd2:b0:40b:5e1c:af2f with SMTP id o18-20020a05600c4fd200b0040b5e1caf2fmr430565wmq.53.1701859943860;
        Wed, 06 Dec 2023 02:52:23 -0800 (PST)
Message-ID: <14050129-822c-48e9-83ad-f046a7fcc197@citrix.com>
Date: Wed, 6 Dec 2023 10:52:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>
Cc: George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>, xen-devel@lists.xenproject.org
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
 <96711b23-9dd9-4029-aaea-a3e755c4bd3e@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <96711b23-9dd9-4029-aaea-a3e755c4bd3e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/12/2023 8:46 am, Jan Beulich wrote:
> On 06.12.2023 08:10, Juergen Gross wrote:
>> Instead of defining get_unaligned() and put_unaligned() in a way that
>> is only supporting architectures allowing unaligned accesses, use the
>> same approach as the Linux kernel and let the compiler do the
>> decision how to generate the code for probably unaligned data accesses.
>>
>> Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
>> the Linux kernel.
>>
>> The generated code has been checked to be the same on x86.
>>
>> Modify the Linux variant to not use underscore prefixed identifiers,
>> avoid unneeded parentheses and drop the 24-bit accessors.
>>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 803f4e1eab7a
>> Signed-off-by: Juergen Gross <jgross@suse.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
>
> Nevertheless ...
>
>> @@ -15,67 +7,82 @@
>>  #include <asm/byteorder.h>
>>  #endif
>>  
>> -#define get_unaligned(p) (*(p))
>> -#define put_unaligned(val, p) (*(p) = (val))
>> +/*
>> + * This is the most generic implementation of unaligned accesses
>> + * and should work almost anywhere.
>> + */
>> +
>> +#define get_unaligned_t_(type, ptr) ({					\
> ..., do we need the trailing underscores here in addition to the already
> sufficiently clear _t suffixes? (Leaving aside that ..._t generally is to
> denote types, not macros or functions.)

_t is fine.Â  It's what we use for {min,max}_t() and friends too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 10:53:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 10:53:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649079.1013393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApWt-0003HF-Fj; Wed, 06 Dec 2023 10:53:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649079.1013393; Wed, 06 Dec 2023 10:53:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApWt-0003H8-Cq; Wed, 06 Dec 2023 10:53:23 +0000
Received: by outflank-mailman (input) for mailman id 649079;
 Wed, 06 Dec 2023 10:53: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 1rApWs-0003Gy-2r
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 10:53: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 1rApWY-0006Fr-9b; Wed, 06 Dec 2023 10:53:02 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.16.253]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rApWY-0005vV-1I; Wed, 06 Dec 2023 10: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>
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=4CtHGE8s0Tk6gjv96Dp7VOVjEE4PhQs9qcZkuwNVQjY=; b=3+cFG4LslfEdX8aW7ktifVQByM
	0jcV77dFV/1NKlnxkpGswY+njRxYjrdiMv1VSmNkGUYskvnxLtObS2nsfyLDtiJCZUc1K5OIoaMDA
	/7DQEsvZQyGbMUs50140qyn+UAp1y8pPh+LAaYi8A41j3pneUCDasJY8KKMP8JUvC2cM=;
Message-ID: <5f31e7d9-fedb-43d4-b8e6-9304c387f282@xen.org>
Date: Wed, 6 Dec 2023 10:52:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>,
 Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>,
 xen-devel@lists.xenproject.org
References: <20231205183226.26636-1-julien@xen.org>
 <c7d844ea-139e-416f-bb8e-51e63c0fe3ed@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c7d844ea-139e-416f-bb8e-51e63c0fe3ed@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 06/12/2023 08:52, Jan Beulich wrote:
> On 05.12.2023 19:32, Julien Grall wrote:
>> From: Julien Grall <jgrall@amazon.com>
>>
>> Right now, all tools and hypervisor will be complied with the option
>> -Wdeclaration-after-statement. While most of the code in the hypervisor
>> is controlled by us, for tools we may import external libraries.
>>
>> The build will fail if one of them are using the construct we are
>> trying to prevent. This is the case when building against Python 3.12
>> and Yocto:
>>
>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44,
>> |                  from xen/lowlevel/xc/xc.c:8:
>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE':
>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>> |   233 |     PyVarObject *var_ob = _PyVarObject_CAST(ob);
>> |       |     ^~~~~~~~~~~
>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53:
>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue':
>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>> |   121 |     Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
>> |       |     ^~~~~~~~~~
>> | cc1: all warnings being treated as errors
>>
>> Looking at the tools directory, a fair few directory already add
>> -Wno-declaration-after-statement to inhibit the default behavior.
>>
>> We have always build the hypervisor with the flag, so for now remove
>> only the flag for anything but the hypervisor. We can decide at later
>> time whether we want to relax.
>>
>> Also remove the -Wno-declaration-after-statement in some subdirectory
>> as the flag is now unnecessary.
> 
> With all these removals, don't you need to add the option centrally
> somewhere? Or else are you sure that no compiler version, including
> distro-customized ones, would ever come with the warning enabled by
> default?

I can't really go through the dozens of different built compilers... But 
I would find odd that a compiler will force this option. I view it as a 
style enforcement option and that's not up to a distro to decide what 
every projects do.

Also, Allowing your thinking, we would need to add -Wno-switch-default & 
co just in case a compiler decide to enable it. So where would we stop 
adding -Wno-*?

I don't think this is very scalable.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 10:57:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 10:57:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649082.1013404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApbH-0004r5-2I; Wed, 06 Dec 2023 10:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649082.1013404; Wed, 06 Dec 2023 10: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 1rApbG-0004qy-Th; Wed, 06 Dec 2023 10:57:54 +0000
Received: by outflank-mailman (input) for mailman id 649082;
 Wed, 06 Dec 2023 10:57: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 1rApbG-0004qs-3F
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 10:57: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 1rApbA-0006Lp-43; Wed, 06 Dec 2023 10:57:48 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.16.253]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rApb9-0006ET-Ud; Wed, 06 Dec 2023 10:57: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=H7YzSfu3+2mK/JQCwSAtUCP6oi2mrlC5ns4ynLthen0=; b=tKN9VeHm8OLyw9HLf5ZgY6IHLx
	exiyt1/RWqJg1MMuHP5JlJh5tSTfoFQ8/xxFI1HvS/uRZjPfLHtKcVRxg5FmLtQZfUbKrJtmlgcpE
	Lbk92hn/CONaRIKTQZiSxQzpkQrj+lXiO9us5/r28nVgLOelW9sdeOIUQ2UOghbu+xWs=;
Message-ID: <62a22ba6-a912-4ff7-8653-2cc019503aee@xen.org>
Date: Wed, 6 Dec 2023 10:57:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/arm: set -mno-unaligned-access compiler option
 for Arm32
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, 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>,
 xen-devel@lists.xenproject.org
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-2-jgross@suse.com>
 <606969b5-5ee3-4e15-92d4-86b142845437@suse.com>
 <5bc34aa0-607b-4e89-bd71-c216c70ddc67@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <5bc34aa0-607b-4e89-bd71-c216c70ddc67@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 06/12/2023 10:00, Juergen Gross wrote:
> On 06.12.23 09:44, Jan Beulich wrote:
>> On 06.12.2023 08:10, Juergen Gross wrote:
>>> As the hypervisor is disabling unaligned accesses for Arm32, set the
>>> -mno-unaligned-access compiler option for building. This will prohibit
>>> unaligned accesses when e.g. accessing 2- or 4-byte data items in
>>> packed data structures.
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>
>> Assuming this will want backporting, should it have some Fixes: tag?
> 
> IMHO this might not be needed

You probably miss the discussion between Arnd and I where I pointed out 
that this should fix [1]. I haven't yet tested to confirm.

[1] 
https://lore.kernel.org/xen-devel/c71163f6-2646-6fae-cb22-600eb0486539@xen.org/

> 
> 
> Juergen

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 10:59:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 10:59:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649086.1013413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApd4-0005PQ-BP; Wed, 06 Dec 2023 10:59:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649086.1013413; Wed, 06 Dec 2023 10:59: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 1rApd4-0005PJ-8f; Wed, 06 Dec 2023 10:59:46 +0000
Received: by outflank-mailman (input) for mailman id 649086;
 Wed, 06 Dec 2023 10:59: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=rHB2=HR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rApd3-0005P8-0B
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 10:59:45 +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 8f0bb73f-9426-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 11:59:43 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3332efd75c9so566253f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 02:59:43 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 e12-20020adffd0c000000b0033342338a24sm9261706wrr.6.2023.12.06.02.59.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 02:59:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f0bb73f-9426-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701860382; x=1702465182; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=VdX8x+PHZOZkEQMvpIRV3pYXON0YzzlpIng/WXXFXRc=;
        b=TzCTs9GVt180cCjOmbZm2gLyigHtt6+Qoe9Pgo/USKoxaAxU80/iYgQSlK1QsuxqN5
         51jSMvkwUxOdjvNG8zN4mBKEm3pPvhZQmOBQAVowEHRaacDIf3Mpc+I75iRU0XsU520C
         zuw3qC+rR8Y45xJGCFmNmP+52J6h/9ktQH9I0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701860382; x=1702465182;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=VdX8x+PHZOZkEQMvpIRV3pYXON0YzzlpIng/WXXFXRc=;
        b=u0B1QYTxcDULlc7YQoOe1ERHsA4VgzK+fuWc5kWs43YiLYnjotvBUCAc/nDC9HlslS
         g9MYerJoxFNAdx098Ukxw6zkjgkWzQdun4Yhg3R2iIule9E8BKZDlt+S1TyE1bBiEJsG
         oDaSRvbtaq0Een6sQPhBGG9U+9e/MmK7lNjQQPjtAHiBEEMZTvcO9N4VLFRN24kn3k+U
         wXtFZzkZ6sJ5IjG4NA+2s60wqsPI8Vo950812gQtgiMS/QzbLqJfSUj46dubDoOMGd/z
         ES1szqjwLtWAR+YFmOZRXnoCDgMncNSuL25za0g4NeAEm4YQTpgszsUcdvP4QGp4ZSjK
         +fjQ==
X-Gm-Message-State: AOJu0YyCFblaaIGFSHma/B1LWw7BrmLdAYyrOdGvJdijQaqVh2BPFKQQ
	2wiDDfzrLXhytwtiJkDWsjkpWA==
X-Google-Smtp-Source: AGHT+IF+h9erxtyjuApJBKjd5t98KblqMv/hTzwasJbxmY9eDJiXAb+p1sFqamiEk6NnodDUVzvhrg==
X-Received: by 2002:adf:f54a:0:b0:333:2fd2:7673 with SMTP id j10-20020adff54a000000b003332fd27673mr212269wrp.100.1701860382056;
        Wed, 06 Dec 2023 02:59:42 -0800 (PST)
Message-ID: <31e2e2cd-2b83-43cc-a385-97feef2cdbb6@citrix.com>
Date: Wed, 6 Dec 2023 10:59:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: George Dunlap <george.dunlap@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231206071039.24435-3-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/12/2023 7:10 am, Juergen Gross wrote:
> diff --git a/xen/include/xen/unaligned.h b/xen/include/xen/unaligned.h
> index 0a2b16d05d..0ceb06a2bb 100644
> --- a/xen/include/xen/unaligned.h
> +++ b/xen/include/xen/unaligned.h
> @@ -1,12 +1,4 @@
>
> -static inline uint16_t get_unaligned_be16(const void *p)
> +static inline u16 get_unaligned_le16(const void *p)

I've done some cleanup for you.

You swapped away from using stdint types, and shuffled the order of
functions, which made the diff basically illegible.

https://xenbits.xen.org/gitweb/?p=people/andrewcoop/xen.git;a=commitdiff;h=1d448a845ee4ad74cab76563b3a2552b10953186
is a much shorter diff.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 10:59:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 10:59:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649087.1013422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApd8-0005gc-I0; Wed, 06 Dec 2023 10:59:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649087.1013422; Wed, 06 Dec 2023 10:59: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 1rApd8-0005gV-FO; Wed, 06 Dec 2023 10:59:50 +0000
Received: by outflank-mailman (input) for mailman id 649087;
 Wed, 06 Dec 2023 10: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rApd6-0005P8-IU
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 10:59:48 +0000
Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com
 [2a00:1450:4864:20::441])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 917a1df6-9426-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 11:59:46 +0100 (CET)
Received: by mail-wr1-x441.google.com with SMTP id
 ffacd0b85a97d-3316a4bc37dso583898f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 02:59:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e14-20020a5d500e000000b003335e67e574sm3128483wrt.78.2023.12.06.02.59.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 02:59:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 917a1df6-9426-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701860386; x=1702465186; 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=kQzh/kxGUddWCVZoEBZkMTbc+8tsnObi8hKwzMBGVLs=;
        b=M6460PYJoWbrheQolC4RFoN9P/v4QcSoG8DBQAsigZKwSX6Xr8nB4UaIgopIRK6ork
         +3RLQETBYatavG+MiWZdPPjZaofGE/X/8TQAnh79Gr0mFxf1nN1QyPEZOnd91CQZeRJR
         cBQY1v22XMeuhKZEAAvzzgl901IE21dKm/q08PXIAqAFSgxhxFFyXUhCySJHVlqWeNC4
         fDVQuPcUm0v9kglbEhr4peLmA2X+uKCbvfeWK4hceXVeBkwSpiDJNGlj+GINT/KkclfI
         PNZJ/Z2LAlTgylwp5wqU/+jCEwjTG13wKG60Lkj8gokVormah8x9cMcPg2yjV5tT255h
         bHlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701860386; x=1702465186;
        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=kQzh/kxGUddWCVZoEBZkMTbc+8tsnObi8hKwzMBGVLs=;
        b=o2rM5VBoMYAbchiAVnHnIlLzWGamAbOteLgKUNrhtGOWP81VIx0n+qK9xk3ZBH91Sq
         JKTDQDlp8td7IP+sZH8RablEmfRD/Qckrq6Oig/FTa1ftDLBPVIIlzMByS8+FTOR42su
         BunnP6jlkkbzXl5MRqIS97jSh1FJ8AjEpdoMWE2Yx1C2KcHN/jgkfVjBmI+1K0TpKvV6
         iFhIn2LgEdHPnN+4pFSU6b6untsZMXpzM3HEznX8mTEgdogK2PaN8jp/i2iCTYu1mb9L
         uasstHedHqdw0xclrm+eB3HC5wcl/om1e2Q/TW9fXTDUKRv8CY856215sWVmTuImBZd1
         YckQ==
X-Gm-Message-State: AOJu0Yx4B6u1Fnzxb84okttdHtYSa3C0w08YeToCmH4axVvJfJ9y8F3n
	1pfoDBDphFrHy+ji637uP8RI
X-Google-Smtp-Source: AGHT+IGyZ33jlUkPxViD/67EWyw7B79AGxXiIPkSRaqEpOnr3iUC6WneacxN69W15RRxjfEvtQuyEg==
X-Received: by 2002:adf:fe8a:0:b0:333:2fd2:4aff with SMTP id l10-20020adffe8a000000b003332fd24affmr292524wrr.123.1701860386139;
        Wed, 06 Dec 2023 02:59:46 -0800 (PST)
Message-ID: <8ec8031a-65bb-4b1b-8964-8c457e04b4b4@suse.com>
Date: Wed, 6 Dec 2023 11:59:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Minios-devel <minios-devel@lists.xenproject.org>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>, Wei Liu <wl@xen.org>,
 Juergen Gross <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH mini-os] x86: fix building with Clang
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

It doesn't understand -fno-reorder-blocks. Whether without that option
the resulting binary is actually functional I can't tell, though.

For $(cc-option ...) to be usable in arch.mk, at least CC needs setting
earlier in Config.mk. Move up the entire "Set tools" section.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Observed with Clang7, but then checked option (un)availability with
godbolt.org.

With Clang5 there's further breakage, due to apparently deliberate de-
referencing of NULL in lib/xmalloc.c (poor man's BUG(), as it looks).
The compiler's -Wnull-dereference causes a warning to be issued there,
converted to an error by -Werror. Question is whether building with
Clang5 is supposed to work.

--- a/Config.mk
+++ b/Config.mk
@@ -86,6 +86,33 @@ TARGET_ARCH_DIR := arch/$(TARGET_ARCH_FA
 export TARGET_ARCH_DIR
 export TARGET_ARCH_FAM
 
+# Set tools
+AS         = $(CROSS_COMPILE)as
+LD         = $(CROSS_COMPILE)ld
+ifeq ($(clang),y)
+CC         = $(CROSS_COMPILE)clang
+LD_LTO     = $(CROSS_COMPILE)llvm-ld
+else
+CC         = $(CROSS_COMPILE)gcc
+LD_LTO     = $(CROSS_COMPILE)ld
+endif
+CPP        = $(CC) -E
+AR         = $(CROSS_COMPILE)ar
+RANLIB     = $(CROSS_COMPILE)ranlib
+NM         = $(CROSS_COMPILE)nm
+STRIP      = $(CROSS_COMPILE)strip
+OBJCOPY    = $(CROSS_COMPILE)objcopy
+OBJDUMP    = $(CROSS_COMPILE)objdump
+SIZEUTIL   = $(CROSS_COMPILE)size
+
+# Allow git to be wrappered in the environment
+GIT        ?= git
+
+INSTALL      = install
+INSTALL_DIR  = $(INSTALL) -d -m0755 -p
+INSTALL_DATA = $(INSTALL) -m0644 -p
+INSTALL_PROG = $(INSTALL) -m0755 -p
+
 # This is used for architecture specific links.
 # This can be overwritten from arch specific rules.
 ARCH_LINKS =
@@ -119,33 +147,6 @@ DEF_CPPFLAGS += -isystem $(LWIPDIR)/src/
 DEF_CPPFLAGS += -isystem $(LWIPDIR)/src/include/ipv4
 endif
 
-# Set tools
-AS         = $(CROSS_COMPILE)as
-LD         = $(CROSS_COMPILE)ld
-ifeq ($(clang),y)
-CC         = $(CROSS_COMPILE)clang
-LD_LTO     = $(CROSS_COMPILE)llvm-ld
-else
-CC         = $(CROSS_COMPILE)gcc
-LD_LTO     = $(CROSS_COMPILE)ld
-endif
-CPP        = $(CC) -E
-AR         = $(CROSS_COMPILE)ar
-RANLIB     = $(CROSS_COMPILE)ranlib
-NM         = $(CROSS_COMPILE)nm
-STRIP      = $(CROSS_COMPILE)strip
-OBJCOPY    = $(CROSS_COMPILE)objcopy
-OBJDUMP    = $(CROSS_COMPILE)objdump
-SIZEUTIL   = $(CROSS_COMPILE)size
-
-# Allow git to be wrappered in the environment
-GIT        ?= git
-
-INSTALL      = install
-INSTALL_DIR  = $(INSTALL) -d -m0755 -p
-INSTALL_DATA = $(INSTALL) -m0644 -p
-INSTALL_PROG = $(INSTALL) -m0755 -p
-
 BOOT_DIR ?= /boot
 
 SOCKET_LIBS =
--- a/arch/x86/arch.mk
+++ b/arch/x86/arch.mk
@@ -14,7 +14,8 @@ EXTRA_SRC += arch/$(EXTRA_INC)
 endif
 
 ifeq ($(MINIOS_TARGET_ARCH),x86_64)
-ARCH_CFLAGS := -m64 -mno-red-zone -fno-reorder-blocks
+ARCH_CFLAGS := -m64 -mno-red-zone
+ARCH_CFLAGS += $(call cc-option,$(CC),-fno-reorder-blocks)
 ARCH_CFLAGS += -fno-asynchronous-unwind-tables
 ARCH_ASFLAGS := -m64
 ARCH_LDFLAGS := -m elf_x86_64


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:02:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:02:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649096.1013437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApg1-0007VE-3q; Wed, 06 Dec 2023 11:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649096.1013437; Wed, 06 Dec 2023 11:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApg0-0007V7-VZ; Wed, 06 Dec 2023 11:02:48 +0000
Received: by outflank-mailman (input) for mailman id 649096;
 Wed, 06 Dec 2023 11:02:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rApg0-0007V0-2t
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:02:48 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fcda4654-9426-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 12:02:46 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-332d5c852a0so619845f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 03:02:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c12-20020a056000104c00b00333339e5f42sm13279318wrx.32.2023.12.06.03.02.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 03:02:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fcda4654-9426-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701860566; x=1702465366; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=3m6mAP0dykMt1zxfzRMwB4ANO/WsCIQyyd/YIRmxN1A=;
        b=KZvCxQ8VmprVYUKEru5Lq51J8J2FFdbkKnIZkn1DdAX739nRmvAMabAWQaFDEV7Uk2
         eHvx/6y/4nXMSxhP9ca4aGwPU0jyC4R1y4W34BnrA40ixxTzgwhiwPgaocDL78N19DKY
         ep2fh/l3nYzUV11PqQYXIFOESN+2g0jBK00nAU1hD/NnptOd96G4m4iRJJrmsQHGwKXL
         6Zv/2pXyA9d5CbtOgiKki5nETERDQOgT0PF+mo4rFNr4y2hGhwg8kwUKQhMVNagZ4jJf
         bxe1GAWugS0co+xs+/CLQQY+TNweQIduqXgyzGZUlI09I/I6Kok2qrbr/rNp2AhZJSea
         vCqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701860566; x=1702465366;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=3m6mAP0dykMt1zxfzRMwB4ANO/WsCIQyyd/YIRmxN1A=;
        b=HEyozpcFxZyYCjdTcHWUzvDg9GHkwdMtOjYezyPHev4LYkvhb1opQL3WFIFzsjU6Ly
         5T8j3rNVqv9ASII7q9Nst8iXL+/Qv5/+/9c5O6dOWO+uAAWFa0chVgOAUtbvlbcBpPMv
         mCNwh34NaT86GjWhvJ4cd6iB7QuyW4fsF0uU8aKQcyT1flNX4Ysk3xCqA0eIDh2AUXlQ
         +eSxVhk2DO8TLmti7DIGRAF4Nc3lEmvECD3qNvFZS4VTM8Qj2SdqcX3YDPW91PH/Hqfd
         WS5QJccraaxO/HfjMrhPClt3FPXYsANl1QRHsEiDcJN33e+IgImxZZg5exGmEi1AW+/K
         DBmQ==
X-Gm-Message-State: AOJu0Yy0hTDAHemsGLyB9f7Jje9F5ifYYBzhHIxP17PT6mM7OP/41dYo
	JMIY0t6EyCW69gqIIbVClrxA
X-Google-Smtp-Source: AGHT+IGw00TXegRH2vsGFbEOpFPGLskp4sOiu8yJ0NICUaHJ/QMvfSL7zIE3LdZIoyBAogAimQv3GQ==
X-Received: by 2002:a5d:54cc:0:b0:333:533d:9ce8 with SMTP id x12-20020a5d54cc000000b00333533d9ce8mr544021wrv.90.1701860566284;
        Wed, 06 Dec 2023 03:02:46 -0800 (PST)
Message-ID: <1607a68e-e8d2-44e0-ab01-97cacdfad8b0@suse.com>
Date: Wed, 6 Dec 2023 12:02:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: 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>,
 Arnd Bergmann <arnd@arndb.de>, xen-devel@lists.xenproject.org
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
 <96711b23-9dd9-4029-aaea-a3e755c4bd3e@suse.com>
 <8224404e-ed23-438b-8a61-23d76a980cc5@suse.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: <8224404e-ed23-438b-8a61-23d76a980cc5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 11:02, Juergen Gross wrote:
> On 06.12.23 09:46, Jan Beulich wrote:
>> On 06.12.2023 08:10, Juergen Gross wrote:
>>> @@ -15,67 +7,82 @@
>>>   #include <asm/byteorder.h>
>>>   #endif
>>>   
>>> -#define get_unaligned(p) (*(p))
>>> -#define put_unaligned(val, p) (*(p) = (val))
>>> +/*
>>> + * This is the most generic implementation of unaligned accesses
>>> + * and should work almost anywhere.
>>> + */
>>> +
>>> +#define get_unaligned_t_(type, ptr) ({					\
>>
>> ..., do we need the trailing underscores here in addition to the already
>> sufficiently clear _t suffixes? (Leaving aside that ..._t generally is to
>> denote types, not macros or functions.)
> 
> Maybe we should just name it get_unaligned_type()?

I wouldn't mind, but Andrew mentioning min_t() / max_t() suggests the
present naming might be okay, too. (Still those two macros signal
something quite different with their _t suffixes.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:05:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:05:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649099.1013446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApig-00087v-Kl; Wed, 06 Dec 2023 11:05:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649099.1013446; Wed, 06 Dec 2023 11:05: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 1rApig-00087o-IG; Wed, 06 Dec 2023 11:05:34 +0000
Received: by outflank-mailman (input) for mailman id 649099;
 Wed, 06 Dec 2023 11:05: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rApif-00087i-IA
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:05:33 +0000
Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com
 [2a00:1450:4864:20::344])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5efc00bc-9427-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 12:05:31 +0100 (CET)
Received: by mail-wm1-x344.google.com with SMTP id
 5b1f17b1804b1-40838915cecso69586385e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 03:05:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d9-20020a05600c34c900b0040b2c195523sm25567166wmq.31.2023.12.06.03.05.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 03:05:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5efc00bc-9427-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701860731; x=1702465531; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=JIeeRfxClzAdHWsMsKaPL/cbt6oReecT3eOFuTgXlXY=;
        b=P/Qj4gVVLcnEYSAPwuTcM3Un4OL9+FTbdBollpOHcrIP0eU2jAhHnncQr+tdG/V0gt
         hF1bLwgWwSGt42FYIO8r8fBXbtWajQMIV8F4z+5KoF26r4vT+ZHck7RvTXRO3vf7d89h
         u4C6Y+WALrAPTg24V7+R8uM1/c9WwAGYqeM18WH5F4I3340NJDf9eCiBwZ0+ttc3OqC8
         PAwltsBX9QGsKh5BHjO7PvuJTB62idG3nWYvYOAXlpvHRu9Kjk4iS2oEfPE8W+mFkqqY
         DXA7y7brPPXk+Bbh24havyVKZ1akz1UGe6QMh6QaeaeA2YXxwpX819+T2dJuJIpboKNG
         44Tg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701860731; x=1702465531;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=JIeeRfxClzAdHWsMsKaPL/cbt6oReecT3eOFuTgXlXY=;
        b=MeIu3ELEgoNu/RIAKsc8m2yxW9LIyq8WomptfjW4swCpK4x/iPBsShMol3ib/SAtuN
         SqgBpDMrqkPuhaqBvDLYYuDxPacLQ0RhawK5UQnC4P6WYWBkS+ke1HBMDk0FiNc4jFgz
         L0hK8IYPuLeDCpFWiTfwWNtuehOAR3VX9yW1QXbm1ZbJRGiVWD29bmMcJndGFzm1KY0/
         Z7NjpwWFqVKy9U9uQXpLXEUER7oUH8GdJrLGdMTpMFLONmhsD6mQcRELsD5gzxo0IHWK
         HiGjEnUsAxYafqtdsneMwIXIkqANGjVShnV6upAz45vKSLg8TENPzNDFIql99NwBWlXQ
         fXjg==
X-Gm-Message-State: AOJu0Yx8NXF5jgCvMZU2SxThzDVBJuZFVady4ydLbfmiCA4GVcDleDGd
	kwdP6ZiKmSrNR82S/CZwcmW/
X-Google-Smtp-Source: AGHT+IFHjYPyEDhbZPsKUAAM615rQB5vt4/c5kEZRV+UpceZ451aHgDzluk85EootyjvdOnb1zyPjQ==
X-Received: by 2002:a05:600c:4194:b0:40c:729:50d7 with SMTP id p20-20020a05600c419400b0040c072950d7mr438395wmh.156.1701860730833;
        Wed, 06 Dec 2023 03:05:30 -0800 (PST)
Message-ID: <1f46fa0d-8208-49fc-bb38-451616d1e7a9@suse.com>
Date: Wed, 6 Dec 2023 12:05:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>,
 Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>,
 xen-devel@lists.xenproject.org
References: <20231205183226.26636-1-julien@xen.org>
 <c7d844ea-139e-416f-bb8e-51e63c0fe3ed@suse.com>
 <5f31e7d9-fedb-43d4-b8e6-9304c387f282@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5f31e7d9-fedb-43d4-b8e6-9304c387f282@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 11:52, Julien Grall wrote:
> Hi Jan,
> 
> On 06/12/2023 08:52, Jan Beulich wrote:
>> On 05.12.2023 19:32, Julien Grall wrote:
>>> From: Julien Grall <jgrall@amazon.com>
>>>
>>> Right now, all tools and hypervisor will be complied with the option
>>> -Wdeclaration-after-statement. While most of the code in the hypervisor
>>> is controlled by us, for tools we may import external libraries.
>>>
>>> The build will fail if one of them are using the construct we are
>>> trying to prevent. This is the case when building against Python 3.12
>>> and Yocto:
>>>
>>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44,
>>> |                  from xen/lowlevel/xc/xc.c:8:
>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE':
>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>>> |   233 |     PyVarObject *var_ob = _PyVarObject_CAST(ob);
>>> |       |     ^~~~~~~~~~~
>>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53:
>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue':
>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>>> |   121 |     Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
>>> |       |     ^~~~~~~~~~
>>> | cc1: all warnings being treated as errors
>>>
>>> Looking at the tools directory, a fair few directory already add
>>> -Wno-declaration-after-statement to inhibit the default behavior.
>>>
>>> We have always build the hypervisor with the flag, so for now remove
>>> only the flag for anything but the hypervisor. We can decide at later
>>> time whether we want to relax.
>>>
>>> Also remove the -Wno-declaration-after-statement in some subdirectory
>>> as the flag is now unnecessary.
>>
>> With all these removals, don't you need to add the option centrally
>> somewhere? Or else are you sure that no compiler version, including
>> distro-customized ones, would ever come with the warning enabled by
>> default?
> 
> I can't really go through the dozens of different built compilers... But 
> I would find odd that a compiler will force this option. I view it as a 
> style enforcement option and that's not up to a distro to decide what 
> every projects do.
> 
> Also, Allowing your thinking, we would need to add -Wno-switch-default & 
> co just in case a compiler decide to enable it. So where would we stop 
> adding -Wno-*?
> 
> I don't think this is very scalable.

I agree on this point, but: With the change you do there's a (slim) risk
of introducing build breakage. With other -W* / -Wno-* options we haven't
had reports of build issues.

Yet then, thinkking more generally, imo it would be a good idea to always
for either the "yes" or the "no" option for warnings we care about
controlling ourselves. But that's nothing belonging in your change, of
course.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:07:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:07:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649103.1013457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApkQ-0000eN-0K; Wed, 06 Dec 2023 11:07:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649103.1013457; Wed, 06 Dec 2023 11:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApkP-0000eG-Td; Wed, 06 Dec 2023 11:07:21 +0000
Received: by outflank-mailman (input) for mailman id 649103;
 Wed, 06 Dec 2023 11:07:20 +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 1rApkO-0000e8-SL
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:07:20 +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 1rApkB-0006Zm-8a; Wed, 06 Dec 2023 11:07:07 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.16.253]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rApkB-0006nM-12; Wed, 06 Dec 2023 11:07:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=vvlnNsWbCJie7zQuzIrSj6qMf/Rw2gNMNj9mCWTLCnI=; b=mnRh79IdS4NATdxwd4TPRBZZrU
	6OhRfAINh7U2yHp68eIubesqCGrWFz3zr0AqoesA/eWCVe+jqRwMEjVUVGMycSF5vvPWRpApb/zTN
	noaBWmeo0ThK4Et9A/LWBo2vqNnuc4n/Hi45zu4R5hyM1nMCRRgSmt/4MSIt7WnIM2KQ=;
Message-ID: <f75edcea-c846-4e31-866d-4df7a7e0cbff@xen.org>
Date: Wed, 6 Dec 2023 11:07:04 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>,
 Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>,
 xen-devel@lists.xenproject.org
References: <20231205183226.26636-1-julien@xen.org>
 <c7d844ea-139e-416f-bb8e-51e63c0fe3ed@suse.com>
 <5f31e7d9-fedb-43d4-b8e6-9304c387f282@xen.org>
 <1f46fa0d-8208-49fc-bb38-451616d1e7a9@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <1f46fa0d-8208-49fc-bb38-451616d1e7a9@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 06/12/2023 11:05, Jan Beulich wrote:
> On 06.12.2023 11:52, Julien Grall wrote:
>> Hi Jan,
>>
>> On 06/12/2023 08:52, Jan Beulich wrote:
>>> On 05.12.2023 19:32, Julien Grall wrote:
>>>> From: Julien Grall <jgrall@amazon.com>
>>>>
>>>> Right now, all tools and hypervisor will be complied with the option
>>>> -Wdeclaration-after-statement. While most of the code in the hypervisor
>>>> is controlled by us, for tools we may import external libraries.
>>>>
>>>> The build will fail if one of them are using the construct we are
>>>> trying to prevent. This is the case when building against Python 3.12
>>>> and Yocto:
>>>>
>>>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44,
>>>> |                  from xen/lowlevel/xc/xc.c:8:
>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE':
>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>>>> |   233 |     PyVarObject *var_ob = _PyVarObject_CAST(ob);
>>>> |       |     ^~~~~~~~~~~
>>>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53:
>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue':
>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>>>> |   121 |     Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
>>>> |       |     ^~~~~~~~~~
>>>> | cc1: all warnings being treated as errors
>>>>
>>>> Looking at the tools directory, a fair few directory already add
>>>> -Wno-declaration-after-statement to inhibit the default behavior.
>>>>
>>>> We have always build the hypervisor with the flag, so for now remove
>>>> only the flag for anything but the hypervisor. We can decide at later
>>>> time whether we want to relax.
>>>>
>>>> Also remove the -Wno-declaration-after-statement in some subdirectory
>>>> as the flag is now unnecessary.
>>>
>>> With all these removals, don't you need to add the option centrally
>>> somewhere? Or else are you sure that no compiler version, including
>>> distro-customized ones, would ever come with the warning enabled by
>>> default?
>>
>> I can't really go through the dozens of different built compilers... But
>> I would find odd that a compiler will force this option. I view it as a
>> style enforcement option and that's not up to a distro to decide what
>> every projects do.
>>
>> Also, Allowing your thinking, we would need to add -Wno-switch-default &
>> co just in case a compiler decide to enable it. So where would we stop
>> adding -Wno-*?
>>
>> I don't think this is very scalable.
> 
> I agree on this point, but: With the change you do there's a (slim) risk
> of introducing build breakage. With other -W* / -Wno-* options we haven't
> had reports of build issues.

The chance is very unlikely here. So I am not in favor of doing this. I 
would like the opinion from the others.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:08:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:08:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649106.1013467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAplv-0001WM-AZ; Wed, 06 Dec 2023 11:08:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649106.1013467; Wed, 06 Dec 2023 11:08: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 1rAplv-0001W8-6z; Wed, 06 Dec 2023 11:08:55 +0000
Received: by outflank-mailman (input) for mailman id 649106;
 Wed, 06 Dec 2023 11:08: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=X1yw=HR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rAplt-0001Uk-Dw
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:08:53 +0000
Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com
 [2a00:1450:4864:20::342])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d61c3d87-9427-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 12:08:51 +0100 (CET)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-40bda47c489so49530085e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 03:08:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 i18-20020adfefd2000000b003334a1e92dasm7525844wrp.70.2023.12.06.03.08.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 03:08:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d61c3d87-9427-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701860931; x=1702465731; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=2CfaGgd6gQkSS9Mc3NdONhX0cX/DN06VXN/WVpsa6X8=;
        b=Chgdc/+NqMUgbnHrziRkuVDo31oC04uYzfqael8W/dzClc+mIQInIZ/KrD8NJIPgpj
         GzTHikO0gMRhuE0l5ZZ3jO+RHn5L4fNkR3RyWMkkV+PVi1qsfoYqfEU0Ww+JvkRha68n
         g84+r282CppL6KjgYHqASIg1eOEqA9U/+Y2QGplyiljTqi203xVrJ8DcjYvSYRPi29ZI
         +393U5Dz4YnlCiJuFp5TmE6fLWD/hgVpX0VBwXqXlASJ/vfEO7wN/wYQgA/6bB7nFFHn
         Y/3Qu8/Q/h7+4Vi3hb23Y271b/1SYM2oUmZw41gQMJwdA3tojMYEO1GhFNGY5rB/9X2k
         oKfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701860931; x=1702465731;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=2CfaGgd6gQkSS9Mc3NdONhX0cX/DN06VXN/WVpsa6X8=;
        b=ukK6Q106iqUE85x36BZ5OPIjxW7MFgUToX0fU6BF20GL+USyiHhIJePnSu9nsGErAB
         E/NbBLZYYvWwzLFKIoNaSsoGhuT9jkLYere7EwSluguB654RB5lg5DOODjG/X30iFmGO
         XYQObwYFM12/NzXIBGENQ0NGLvH2o4MjFZUhlpPD0P5WYQe3vZh1kfphWW9DWDj9YkYH
         54IkokLxVMY2YA1SGCHeyEFqC3NC7jTShmH2vqlHqp8VDsB9ggBxC0cje2o5I3R0gcO0
         VUi261TcUMaH+xI1bbWSgJ0wNg+voAXCjzEnDPeU4fzIsIjha77RL/AWixzwRZ/vExTA
         fRRg==
X-Gm-Message-State: AOJu0YzdOMoxlE/BndeQmyZ2TxOmDeXfENd8RtJWSJpyokLqn8JGddIb
	G7qDoxAvDIGJEg37NB2oHapk
X-Google-Smtp-Source: AGHT+IHXqpK7QmDlOLJKSLLQfDHZC0iRMzAXfnUJeKun8f/Sa6VfOSE2u71JIwMS2hAw+HhLPF/4Yw==
X-Received: by 2002:a05:600c:cb:b0:40b:5e59:c58a with SMTP id u11-20020a05600c00cb00b0040b5e59c58amr481730wmm.180.1701860930702;
        Wed, 06 Dec 2023 03:08:50 -0800 (PST)
Message-ID: <0033f56a-cdb7-408b-b78e-823135a463af@suse.com>
Date: Wed, 6 Dec 2023 12:08:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>,
 Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>,
 xen-devel@lists.xenproject.org
References: <20231205183226.26636-1-julien@xen.org>
 <c7d844ea-139e-416f-bb8e-51e63c0fe3ed@suse.com>
 <5f31e7d9-fedb-43d4-b8e6-9304c387f282@xen.org>
 <1f46fa0d-8208-49fc-bb38-451616d1e7a9@suse.com>
 <f75edcea-c846-4e31-866d-4df7a7e0cbff@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f75edcea-c846-4e31-866d-4df7a7e0cbff@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.12.2023 12:07, Julien Grall wrote:
> Hi Jan,
> 
> On 06/12/2023 11:05, Jan Beulich wrote:
>> On 06.12.2023 11:52, Julien Grall wrote:
>>> Hi Jan,
>>>
>>> On 06/12/2023 08:52, Jan Beulich wrote:
>>>> On 05.12.2023 19:32, Julien Grall wrote:
>>>>> From: Julien Grall <jgrall@amazon.com>
>>>>>
>>>>> Right now, all tools and hypervisor will be complied with the option
>>>>> -Wdeclaration-after-statement. While most of the code in the hypervisor
>>>>> is controlled by us, for tools we may import external libraries.
>>>>>
>>>>> The build will fail if one of them are using the construct we are
>>>>> trying to prevent. This is the case when building against Python 3.12
>>>>> and Yocto:
>>>>>
>>>>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44,
>>>>> |                  from xen/lowlevel/xc/xc.c:8:
>>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE':
>>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>>>>> |   233 |     PyVarObject *var_ob = _PyVarObject_CAST(ob);
>>>>> |       |     ^~~~~~~~~~~
>>>>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53:
>>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue':
>>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>>>>> |   121 |     Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
>>>>> |       |     ^~~~~~~~~~
>>>>> | cc1: all warnings being treated as errors
>>>>>
>>>>> Looking at the tools directory, a fair few directory already add
>>>>> -Wno-declaration-after-statement to inhibit the default behavior.
>>>>>
>>>>> We have always build the hypervisor with the flag, so for now remove
>>>>> only the flag for anything but the hypervisor. We can decide at later
>>>>> time whether we want to relax.
>>>>>
>>>>> Also remove the -Wno-declaration-after-statement in some subdirectory
>>>>> as the flag is now unnecessary.
>>>>
>>>> With all these removals, don't you need to add the option centrally
>>>> somewhere? Or else are you sure that no compiler version, including
>>>> distro-customized ones, would ever come with the warning enabled by
>>>> default?
>>>
>>> I can't really go through the dozens of different built compilers... But
>>> I would find odd that a compiler will force this option. I view it as a
>>> style enforcement option and that's not up to a distro to decide what
>>> every projects do.
>>>
>>> Also, Allowing your thinking, we would need to add -Wno-switch-default &
>>> co just in case a compiler decide to enable it. So where would we stop
>>> adding -Wno-*?
>>>
>>> I don't think this is very scalable.
>>
>> I agree on this point, but: With the change you do there's a (slim) risk
>> of introducing build breakage. With other -W* / -Wno-* options we haven't
>> had reports of build issues.
> 
> The chance is very unlikely here. So I am not in favor of doing this. I 
> would like the opinion from the others.

Well, it's Anthony anyway who has the final say. I'm not going to insist,
I merely wanted to point out a possible issue.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:12:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:12:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649111.1013477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApp2-0003iX-Q3; Wed, 06 Dec 2023 11:12:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649111.1013477; Wed, 06 Dec 2023 11:12:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApp2-0003iQ-Me; Wed, 06 Dec 2023 11:12:08 +0000
Received: by outflank-mailman (input) for mailman id 649111;
 Wed, 06 Dec 2023 11:12: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 1rApp1-0003iG-Gg; Wed, 06 Dec 2023 11:12: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 1rApp1-0006fv-Ck; Wed, 06 Dec 2023 11:12: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 1rApp0-00083S-Va; Wed, 06 Dec 2023 11:12:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rApp0-0000F1-Ui; Wed, 06 Dec 2023 11:12: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=sh5RwHsO95WDIInQfFB/MXR2gGXB+oInNvFWvS5V1Io=; b=MoPlOuHjMAs/7SIGuJjANOUfqR
	oCTITy4TnU2BFxelg15DdwSH0lorAzvK4wq4kiCIUtG/PkQXjqZP9JNkfyfIBGK+KJjw3Dnkxtjec
	5zEFbQYbJ354Zj1Wu9S15vq2pVKllCxIjLavCLKebf1ShufpsvR8+pyFLCC8SKClLfu8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184006-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184006: 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=3e5672d69fe09e240195fa6744686b59db6d7d69
X-Osstest-Versions-That:
    xen=4c6142a1ab004be132f386da3cabce07b44fac2d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 11:12:06 +0000

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

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                  3e5672d69fe09e240195fa6744686b59db6d7d69
baseline version:
 xen                  4c6142a1ab004be132f386da3cabce07b44fac2d

Last test of basis   184002  2023-12-06 02:00:25 Z    0 days
Testing same since   184006  2023-12-06 08:02:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Federico Serafini <federico.serafini@bugseng.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Simone Ballarin <simone.ballarin@bugseng.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
   4c6142a1ab..3e5672d69f  3e5672d69fe09e240195fa6744686b59db6d7d69 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:12:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:12:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649115.1013487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAppN-00049S-6V; Wed, 06 Dec 2023 11:12:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649115.1013487; Wed, 06 Dec 2023 11:12:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAppN-00049J-3e; Wed, 06 Dec 2023 11:12:29 +0000
Received: by outflank-mailman (input) for mailman id 649115;
 Wed, 06 Dec 2023 11:12: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=rHB2=HR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAppL-00048i-0i
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:12:27 +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 554417ba-9428-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 12:12:24 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-332f90a375eso589703f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 03:12:24 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 b5-20020adfe645000000b00333404e9935sm9938644wrn.54.2023.12.06.03.12.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 03:12:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 554417ba-9428-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701861144; x=1702465944; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=woWun1nYZKtC0D0Mup/SX8NKJuEau8JFuQ5hWyX6e0A=;
        b=FUSjHRZzUSlU0dtmi3XsgXFfQeDVHVpAQoXEunAK3FtMaMoQ7iEbuzsSeubMkqXhwB
         eEhO8jqPDERU/WBYeCWx47pdCvfRRj4n5+OxbsTlBiZeyB6S72zdh4xPJBRwkp7qhe1q
         /RDhG6GejqJbLrYwzDy2DJOZSgPdmkt+TDois=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701861144; x=1702465944;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=woWun1nYZKtC0D0Mup/SX8NKJuEau8JFuQ5hWyX6e0A=;
        b=MlQUCyI/7nyDNieo57aVJSn5ksNmnGhrbKH+KLFzJ5CzaYnAIg30vE5qX4DSV1JWcp
         cmA/iueyhMS193tPwUgwo0kUfsJHPTofdbNOpa0OV1PzxKFcusekKYSZVRKQIZbFvw5P
         6Drk6e6fxSpTGI7tTdnbGygn4XKDV4VDgoVMsnMmEUx3tnIT1dTeZyrbK5Q9cv+0sEeA
         Nw1FeCkgQcTS71Qv+pXamtmNVtIxkDVJuQLsSvHKYB/fz8NEdqy01ZrpUulj3ofnzmuR
         Qd4c3cIIXH/E8nlGgTEdijpXgclJ7ynmy0XrGpc5njCZS/U817g19LMJ9ojUf2xON6aQ
         BUIg==
X-Gm-Message-State: AOJu0YxQXP8lNmIEsIv+NMGml93mcwOKo1JGHVC2jykMyKnI2tylmGkL
	/gGN6DsjYzcg1gcQc/53Oa6Sjw==
X-Google-Smtp-Source: AGHT+IFIRk1sEBKPHFDxfaxGWo4VNiVfJxspTaLgm+PG2aa0K7BEiTiFx0OKSOlHM4Gg9hO4FsNCBg==
X-Received: by 2002:adf:ce83:0:b0:333:e8d:99d8 with SMTP id r3-20020adfce83000000b003330e8d99d8mr446563wrn.36.1701861144115;
        Wed, 06 Dec 2023 03:12:24 -0800 (PST)
Message-ID: <4c702b55-08ad-46db-8b0e-8f2b63b64d2b@citrix.com>
Date: Wed, 6 Dec 2023 11:12:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.com>, George Dunlap
 <george.dunlap@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>,
 Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>,
 xen-devel@lists.xenproject.org
References: <20231205183226.26636-1-julien@xen.org>
 <c7d844ea-139e-416f-bb8e-51e63c0fe3ed@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <c7d844ea-139e-416f-bb8e-51e63c0fe3ed@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/12/2023 8:52 am, Jan Beulich wrote:
> On 05.12.2023 19:32, Julien Grall wrote:
>> From: Julien Grall <jgrall@amazon.com>
>>
>> Right now, all tools and hypervisor will be complied with the option
>> -Wdeclaration-after-statement. While most of the code in the hypervisor
>> is controlled by us, for tools we may import external libraries.
>>
>> The build will fail if one of them are using the construct we are
>> trying to prevent. This is the case when building against Python 3.12
>> and Yocto:
>>
>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44,
>> |                  from xen/lowlevel/xc/xc.c:8:
>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE':
>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>> |   233 |     PyVarObject *var_ob = _PyVarObject_CAST(ob);
>> |       |     ^~~~~~~~~~~
>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53:
>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue':
>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>> |   121 |     Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
>> |       |     ^~~~~~~~~~
>> | cc1: all warnings being treated as errors
>>
>> Looking at the tools directory, a fair few directory already add
>> -Wno-declaration-after-statement to inhibit the default behavior.
>>
>> We have always build the hypervisor with the flag, so for now remove
>> only the flag for anything but the hypervisor. We can decide at later
>> time whether we want to relax.
>>
>> Also remove the -Wno-declaration-after-statement in some subdirectory
>> as the flag is now unnecessary.
> With all these removals, don't you need to add the option centrally
> somewhere? Or else are you sure that no compiler version, including
> distro-customized ones, would ever come with the warning enabled by
> default?

declaration-after-statement being permitted is covered by the -std we
choose.

No distro is plausibly going to ship a compiler which takes -std=gnu99
and has declaration-after-statement forced off if in that configuration.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:19:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:19:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649120.1013497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApwE-0005jm-QM; Wed, 06 Dec 2023 11:19:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649120.1013497; Wed, 06 Dec 2023 11:19:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApwE-0005jf-Nf; Wed, 06 Dec 2023 11:19:34 +0000
Received: by outflank-mailman (input) for mailman id 649120;
 Wed, 06 Dec 2023 11: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=rHB2=HR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rApwE-0005jZ-Cr
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:19:34 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 541db6ff-9429-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 12:19:32 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c05ce04a8so47077135e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 03:19:32 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 r21-20020a05600c35d500b0040b3e79bad3sm21573943wmq.40.2023.12.06.03.19.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 03:19:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 541db6ff-9429-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701861571; x=1702466371; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1FEUV+PmKBOeyVDMK5RQ80NkiszK43YJzMpajTgF0JU=;
        b=IbybqLs/DAbsR2sUqjZw0luxLGPGOcEbIHs2vCShbUsbJM5FIsZdnwpyFuHZwA33Ym
         2OBCcBB2AWvJvtQbLTzU1lLBfo3UuOWvl7JV2OuftuTk8VBtVmFRifa+YbRMQc3Cn2Lv
         47e867uInFON/x01cglidN5nZPSiKnCT3t/Wc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701861571; x=1702466371;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1FEUV+PmKBOeyVDMK5RQ80NkiszK43YJzMpajTgF0JU=;
        b=pVaivsCskzpcA/SDDzwBXrDSlAN+O/+8ICGfJr4BbaZcD4TUEG1bBbaKFyAzUKEGYS
         qTmh5PZTx6SvStXXgLMhlRtnwa6kn2ASxCYu2ZpPA0nEWL0I0OPDML8RiYrc4x66SpH3
         Q5LevAkUAtzAqjtWfi/bsjx/6rL07kEMMBUBaoC3EAdPYjuc7Lk1v2lhwIfL8Mnu7aqr
         jGc4Vt+GEw3QI/RhdmV3SCT+ZmAgpAnyRc21SmUl2N3GYsIw8R4Xub3GwaQb10et8Zg5
         od1mG+igQm/E3zhg0pN6M6sYLOANhg3f9v4qiwOdGU7QS7QPtsh610uw2DkzH/Omlt4n
         SYvA==
X-Gm-Message-State: AOJu0Yz9ETgC5CLyY67x517JneJSPiSegq/yv7FAbnHYvF3hpXsW0WpU
	3A7zAgDFaeoA0BBR1Y6wKKN4Ig==
X-Google-Smtp-Source: AGHT+IET00eT+qOGrLf1wmJr9VnNb5nAP2BUr4CUfncqfgizZ9e0u83c5EZbhYBvn2QsTFNAQkTwhA==
X-Received: by 2002:a05:600c:2210:b0:40b:5f03:b3fc with SMTP id z16-20020a05600c221000b0040b5f03b3fcmr274540wml.286.1701861571531;
        Wed, 06 Dec 2023 03:19:31 -0800 (PST)
Message-ID: <6f071eba-3995-451b-af80-efe875ec5ea8@citrix.com>
Date: Wed, 6 Dec 2023 11:19:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, George Dunlap <george.dunlap@cloud.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <jgrall@amazon.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>
References: <20231205181218.74667-1-julien@xen.org>
 <CA+zSX=aUV00BwnNfFTbCE=6PuVNT=UFvE0tnMO3UhwCMh5jmHQ@mail.gmail.com>
 <50b36423-d1e1-406f-a63f-66f2e4dce68e@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <50b36423-d1e1-406f-a63f-66f2e4dce68e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/12/2023 8:41 am, Jan Beulich wrote:
> On 06.12.2023 03:21, George Dunlap wrote:
>> On Tue, Dec 5, 2023 at 6:12â€¯PM Julien Grall <julien@xen.org> wrote:
>>> From: Julien Grall <jgrall@amazon.com>
>>>
>>> Several maintainers have expressed a stronger preference
>>> to use '-' when in filename and option that contains multiple
>>> words.
>>>
>>> So document it in CODING_STYLE.
>>>
>>> Signed-off-by: Julien Grall <jgrall@amazon.com>
>>>
>>> ---
>>>     Changes in v2:
>>>         - New wording
>>>         - Update the section title
>>>         - Add Jan's acked-by
>>> ---
>>>  CODING_STYLE | 9 +++++++++
>>>  1 file changed, 9 insertions(+)
>>>
>>> diff --git a/CODING_STYLE b/CODING_STYLE
>>> index ced3ade5a6fb..ed13ee2b664b 100644
>>> --- a/CODING_STYLE
>>> +++ b/CODING_STYLE
>>> @@ -144,6 +144,15 @@ separate lines and each line should begin with a leading '*'.
>>>   * Note beginning and end markers on separate lines and leading '*'.
>>>   */
>>>
>>> +Naming convention for files and command line options
>>> +----------------------------------------------------
>>> +
>>> +'-' should be used to separate words in commandline options and filenames.
>>> +E.g. timer-works.
>>> +
>>> +Note that some of the options and filenames are using '_'. This is now
>>> +deprecated.
>> Sorry for not catching this last time; "are using X" isn't really
>> idiomatic English; more idiomatic would be something like the
>> following:
>>
>> "Note that some existing options and file names use '_'.  This is now
>> deprecated."
>>
>> Since we're changing things, I *think* most style guides would advise
>> against starting the sentence with a punctuation; so perhaps:
>>
>> "Command-line options and file names should use '-' to separate words;
>> e.g., timer-works."
>>
>> And what about adding to the last paragraph:
>>
>> "When touching code around command-line parameters still using '_', it
>> is recommended to modify the documentation to say only '-', but modify
>> the code to accept both '-' and '_' (for backwards compatibility)."
> In this context see
> https://lists.xen.org/archives/html/xen-devel/2020-01/msg01945.html
> and Andrew's response
> https://lists.xen.org/archives/html/xen-devel/2020-01/msg02006.html
> I'm still in favor of addressing the issue centrally (making unnecessary
> adjustments like you suggest in the new paragraph). Yet I think Andrew's
> objection would cover such adjustments as much as my generic solution.

Aliasing - and _ in the cmdline parsing breaks basic usability.

Its fine for new options to use -, and it's even fine-ish (but only if
you're going to be the one doing security backports) to rename internal
files.

But there is real and detrimental effect for altering the command line.

You will get people failing to express the option they intended when
working with an older form of Xen.Â  You will need an absurd number of
notes in the command line docs saying "newer versions of Xen accept an
alias but you need to use the underscore form for backwards compatibility".

Not to mention that there are years of notes scattered all around the
internet using the underscore forms, so it's likely that everyone will
continue to use the underscore form, meaning that you don't even have a
way to phase them out.

And for what?Â  An attempt to pretend that we don't have 2 decades of
history where underscores where the norm?

It's tinkering, for no useful benefit and a clear cost.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:22:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:22:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649122.1013507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApym-0007nb-7K; Wed, 06 Dec 2023 11:22:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649122.1013507; Wed, 06 Dec 2023 11:22:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rApym-0007nU-3y; Wed, 06 Dec 2023 11:22:12 +0000
Received: by outflank-mailman (input) for mailman id 649122;
 Wed, 06 Dec 2023 11:22: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 1rApyl-0007nM-Hy
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:22: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 1rApyj-0006rK-Ie; Wed, 06 Dec 2023 11:22:09 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.16.253]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rApyj-0007ZG-Bk; Wed, 06 Dec 2023 11:22: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=Bk4scotKvJldVbhydaLC4MXRctvUW7l13LOo9VBJXuQ=; b=Gi+lk7te3y/D0tUu3ovyaJIfww
	of3rRNyr2oDWtJJteM3hTi/TgkukjQ/KorYTk7+JWQWseOdrA+VW3fhgPQXfy4mWgTyXLaOY3EaMC
	Kax0SB9r2CGXLGXYzg8KL2rOhGEZZ8DrrvmT3R4bZRNF+gMLvdOnZmn1fBq0+8vufALo=;
Message-ID: <33d82944-6c53-45c6-93d5-48d0be9257fd@xen.org>
Date: Wed, 6 Dec 2023 11:22:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, George Dunlap <george.dunlap@cloud.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <jgrall@amazon.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231205181218.74667-1-julien@xen.org>
 <CA+zSX=aUV00BwnNfFTbCE=6PuVNT=UFvE0tnMO3UhwCMh5jmHQ@mail.gmail.com>
 <50b36423-d1e1-406f-a63f-66f2e4dce68e@suse.com>
 <6f071eba-3995-451b-af80-efe875ec5ea8@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <6f071eba-3995-451b-af80-efe875ec5ea8@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 06/12/2023 11:19, Andrew Cooper wrote:
> On 06/12/2023 8:41 am, Jan Beulich wrote:
>> On 06.12.2023 03:21, George Dunlap wrote:
>>> On Tue, Dec 5, 2023 at 6:12â€¯PM Julien Grall <julien@xen.org> wrote:
>>>> From: Julien Grall <jgrall@amazon.com>
>>>>
>>>> Several maintainers have expressed a stronger preference
>>>> to use '-' when in filename and option that contains multiple
>>>> words.
>>>>
>>>> So document it in CODING_STYLE.
>>>>
>>>> Signed-off-by: Julien Grall <jgrall@amazon.com>
>>>>
>>>> ---
>>>>      Changes in v2:
>>>>          - New wording
>>>>          - Update the section title
>>>>          - Add Jan's acked-by
>>>> ---
>>>>   CODING_STYLE | 9 +++++++++
>>>>   1 file changed, 9 insertions(+)
>>>>
>>>> diff --git a/CODING_STYLE b/CODING_STYLE
>>>> index ced3ade5a6fb..ed13ee2b664b 100644
>>>> --- a/CODING_STYLE
>>>> +++ b/CODING_STYLE
>>>> @@ -144,6 +144,15 @@ separate lines and each line should begin with a leading '*'.
>>>>    * Note beginning and end markers on separate lines and leading '*'.
>>>>    */
>>>>
>>>> +Naming convention for files and command line options
>>>> +----------------------------------------------------
>>>> +
>>>> +'-' should be used to separate words in commandline options and filenames.
>>>> +E.g. timer-works.
>>>> +
>>>> +Note that some of the options and filenames are using '_'. This is now
>>>> +deprecated.
>>> Sorry for not catching this last time; "are using X" isn't really
>>> idiomatic English; more idiomatic would be something like the
>>> following:
>>>
>>> "Note that some existing options and file names use '_'.  This is now
>>> deprecated."
>>>
>>> Since we're changing things, I *think* most style guides would advise
>>> against starting the sentence with a punctuation; so perhaps:
>>>
>>> "Command-line options and file names should use '-' to separate words;
>>> e.g., timer-works."
>>>
>>> And what about adding to the last paragraph:
>>>
>>> "When touching code around command-line parameters still using '_', it
>>> is recommended to modify the documentation to say only '-', but modify
>>> the code to accept both '-' and '_' (for backwards compatibility)."
>> In this context see
>> https://lists.xen.org/archives/html/xen-devel/2020-01/msg01945.html
>> and Andrew's response
>> https://lists.xen.org/archives/html/xen-devel/2020-01/msg02006.html
>> I'm still in favor of addressing the issue centrally (making unnecessary
>> adjustments like you suggest in the new paragraph). Yet I think Andrew's
>> objection would cover such adjustments as much as my generic solution.
> 
> Aliasing - and _ in the cmdline parsing breaks basic usability.
> 
> Its fine for new options to use -, and it's even fine-ish (but only if
> you're going to be the one doing security backports) to rename internal
> files.
> 
> But there is real and detrimental effect for altering the command line.
> 
> You will get people failing to express the option they intended when
> working with an older form of Xen.Â  You will need an absurd number of
> notes in the command line docs saying "newer versions of Xen accept an
> alias but you need to use the underscore form for backwards compatibility".
> 
> Not to mention that there are years of notes scattered all around the
> internet using the underscore forms, so it's likely that everyone will
> continue to use the underscore form, meaning that you don't even have a
> way to phase them out.
> 
> And for what?Â  An attempt to pretend that we don't have 2 decades of
> history where underscores where the norm?
> 
> It's tinkering, for no useful benefit and a clear cost.

+1 with what Andrew said.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:30:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:30:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649127.1013520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAq75-0002be-1r; Wed, 06 Dec 2023 11:30:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649127.1013520; Wed, 06 Dec 2023 11:30:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAq74-0002bX-Va; Wed, 06 Dec 2023 11:30:46 +0000
Received: by outflank-mailman (input) for mailman id 649127;
 Wed, 06 Dec 2023 11:30: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAq73-0002Ze-Dk
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:30:45 +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 e29d49eb-942a-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 12:30:41 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 275CC21F48;
 Wed,  6 Dec 2023 11:30:40 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id EB6D813403;
 Wed,  6 Dec 2023 11:30:39 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id LoYzOF9bcGVxXQAAn2gu4w
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 11:30: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: e29d49eb-942a-11ee-9b0f-b553b5be7939
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>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] Mini-OS: use BUG() instead of dereferencing NULL
Date: Wed,  6 Dec 2023 12:30:37 +0100
Message-Id: <20231206113037.8832-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 275CC21F48
X-Spam-Score: 15.00
X-Spam-Flag: YES
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 RCPT_COUNT_FIVE(0.00)[6];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd1
X-Spam-Level: ***************
X-Spam: Yes

There are some places using a dereference of NULL to cause a crash.

Use BUG() instead.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 lib/xmalloc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/xmalloc.c b/lib/xmalloc.c
index cc5db11e..2aa07138 100644
--- a/lib/xmalloc.c
+++ b/lib/xmalloc.c
@@ -219,7 +219,7 @@ void xfree(const void *p)
     if(((long)p & PAGE_MASK) != ((long)hdr & PAGE_MASK))
     {
         printk("Header should be on the same page\n");
-        *(int*)0=0;
+        BUG();
     }
 
     /* Merge with other free block, or put in list. */
@@ -255,7 +255,7 @@ void xfree(const void *p)
         if((((unsigned long)hdr) & (PAGE_SIZE-1)) != 0)
         {
             printk("Bug\n");
-            *(int*)0=0;
+            BUG();
         }
         free_page(hdr);
     }
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:33:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:33:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649134.1013531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAq9a-0003bD-IV; Wed, 06 Dec 2023 11:33:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649134.1013531; Wed, 06 Dec 2023 11:33:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAq9a-0003b6-Fx; Wed, 06 Dec 2023 11:33:22 +0000
Received: by outflank-mailman (input) for mailman id 649134;
 Wed, 06 Dec 2023 11:33:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rHB2=HR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAq9Z-0003b0-5j
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:33:21 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 41162716-942b-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 12:33:19 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c0a0d068bso33016815e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 03:33:19 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 fl8-20020a05600c0b8800b0040b37f1079dsm25733060wmb.29.2023.12.06.03.33.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 03:33:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41162716-942b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701862399; x=1702467199; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RtEQcKbt+YxPr2cmkE466WhRtvfACjQaCrMaylf9cWs=;
        b=jM1ycEOeotLtZg6574wnLbqfyMd9flRmx7yBlVcw7Kz6MUM6/0t5s8XzLrApPHDWAg
         MRL7K/zt2+M3KedwPadO2cewyLMtKOXUWi+iIPD9v2pS/oCYPKNXk20wgXJ+7hqN4mOa
         xOujArEwRswid7110fJkCatG4Rt0FMr8kIk9Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701862399; x=1702467199;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=RtEQcKbt+YxPr2cmkE466WhRtvfACjQaCrMaylf9cWs=;
        b=o2/e+9rGvfnN2H9V8/Sll7xX/MO98JRZadE7Zs6q9Doc9Sq8CpEOTFBliVAszlhhEJ
         POM8cX1De1xavR+9ugbfhUg8b/ix5CpiRLL46kPkyCoPF0VvM8uq3EvR67GY8p3kypi4
         1gAhu9OGE2iYUJIyHe7lUouMpkq8JDZc6pvBwwim2gfBC/YqxrTW7PKFFCMBlWmHK1dO
         U+2paPiPLZITynXMrOzo1tVCnCcT7/sSwFqTiqmgy5Z625WzuPyzVoUKmDm8ERm4T3ke
         I5209TA1H7MYdJ9g+ILBJ4E1j+mLy+dgDoBj42aAkW89j59y/AIKLNnMvcFNsT+/Fj1F
         GXzA==
X-Gm-Message-State: AOJu0YxQe7PWjNQNGNMgnK7d+0h7dtZYV79wC9CaMKOTbyrpZuVzNmZ/
	nBDhFn/kNcRWucJzltDP+20ZzfITTRbFFo8OEuM=
X-Google-Smtp-Source: AGHT+IHI1xP7Xg12Me6OWjaJfjgAqD2aHBe0q4o9ACX6qKhTERfQiOFmNyokvv4Fk+gwoOb3gTDsAg==
X-Received: by 2002:a05:600c:46d1:b0:40b:4c36:f80 with SMTP id q17-20020a05600c46d100b0040b4c360f80mr571531wmo.32.1701862398723;
        Wed, 06 Dec 2023 03:33:18 -0800 (PST)
Message-ID: <9af90251-e16a-43b2-acdc-fa6feddd5a22@citrix.com>
Date: Wed, 6 Dec 2023 11:33:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: George Dunlap <george.dunlap@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
 <31e2e2cd-2b83-43cc-a385-97feef2cdbb6@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <31e2e2cd-2b83-43cc-a385-97feef2cdbb6@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/12/2023 10:59 am, Andrew Cooper wrote:
> On 06/12/2023 7:10 am, Juergen Gross wrote:
>> diff --git a/xen/include/xen/unaligned.h b/xen/include/xen/unaligned.h
>> index 0a2b16d05d..0ceb06a2bb 100644
>> --- a/xen/include/xen/unaligned.h
>> +++ b/xen/include/xen/unaligned.h
>> @@ -1,12 +1,4 @@
>>
>> -static inline uint16_t get_unaligned_be16(const void *p)
>> +static inline u16 get_unaligned_le16(const void *p)
> I've done some cleanup for you.
>
> You swapped away from using stdint types, and shuffled the order of
> functions, which made the diff basically illegible.
>
> https://xenbits.xen.org/gitweb/?p=people/andrewcoop/xen.git;a=commitdiff;h=1d448a845ee4ad74cab76563b3a2552b10953186
> is a much shorter diff.

Oh, and the Origin link ought to be

https://git.kernel.org/torvalds/c/803f4e1eab7a8938ba3a3c30dd4eb5e9eeef5e63

which is shorter and also lets people on the web view it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:34:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:34:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649138.1013545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqAV-00049i-1S; Wed, 06 Dec 2023 11:34:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649138.1013545; Wed, 06 Dec 2023 11:34:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqAU-00049F-Rt; Wed, 06 Dec 2023 11:34:18 +0000
Received: by outflank-mailman (input) for mailman id 649138;
 Wed, 06 Dec 2023 11:34:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rHB2=HR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAqAT-00048p-O3
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:34:17 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 62d33a5d-942b-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 12:34:15 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40b2ddab817so69833775e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 03:34:15 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 fl8-20020a05600c0b8800b0040b37f1079dsm25733060wmb.29.2023.12.06.03.34.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 03:34:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62d33a5d-942b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701862455; x=1702467255; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=WZJ7cxcejz9u6NYxab3g4zyeV7d6qWy2sV2nr6pT27s=;
        b=mVTjXkhk1xqaoeqRxcAhtZ+w5mtMwM8pWNO7An5+bsj96OknLTaHeS5LUwnZjR7iFZ
         kmF5QMpURZCLyT/syIuTeKZLQHcIA2jQ0oPPDHuNN3Yc5BAT1yIaQ4XvKKmWAatecdA1
         NL0Pqxv0S58uZ6bv+sekPIALP80DKEQqf1WsY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701862455; x=1702467255;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=WZJ7cxcejz9u6NYxab3g4zyeV7d6qWy2sV2nr6pT27s=;
        b=p4EPfqY/ro4MV862oMcd3ijpfLHswodIGdhZ3eJX+snx5q1KBjNShQGrKsFR25gq7y
         O0g+R8/kwZL68s4YYwZmgomy0qJcUzpuqxauQpOdmqZS7CxYhxe2m1FvZghvedUSrUhf
         BvBTzbDLmqPZyuSulVJz139/iCRHIvFft7dQMQKHuqW47vNNjw5F047v81kR/vIgaL3/
         6nGmJMnvb+NFDCPCdu1rYzMnBrJvl47NftaSTZTU6e44jqiPJT13edITq2m5gbpfjVhh
         9IcF+JU4UUEVYYb1WWkqqIHbtUVjRFH6z19XQDHud9uFn7hR6fE0KBXb8+31q+h/r2BM
         +/lg==
X-Gm-Message-State: AOJu0YyNdYW/KAzuj6q2YbUvM6i3unY32h1VnjhI9+voz9XKVRplyUk3
	Y91aYeUEP9yWvA7/KFWjUhAKZQ==
X-Google-Smtp-Source: AGHT+IGYDhpEv+3BDt0sfrVN/KDMyMSESIX/fjs8/BhDxOATEjFhvdFIjfym5RMa9zOjRQ5lYJMX4g==
X-Received: by 2002:a05:600c:4508:b0:40b:5e1c:af27 with SMTP id t8-20020a05600c450800b0040b5e1caf27mr520675wmo.45.1701862455455;
        Wed, 06 Dec 2023 03:34:15 -0800 (PST)
Message-ID: <88771312-9dda-4acf-8bf3-8ab7a05583a9@citrix.com>
Date: Wed, 6 Dec 2023 11:34:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Mini-OS: use BUG() instead of dereferencing NULL
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
 xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org, wl@xen.org, Jan Beulich <jbeulich@suse.com>
References: <20231206113037.8832-1-jgross@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20231206113037.8832-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/12/2023 11:30 am, Juergen Gross wrote:
> There are some places using a dereference of NULL to cause a crash.
>
> Use BUG() instead.
>
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Wow...

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

> ---
>  lib/xmalloc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/xmalloc.c b/lib/xmalloc.c
> index cc5db11e..2aa07138 100644
> --- a/lib/xmalloc.c
> +++ b/lib/xmalloc.c
> @@ -219,7 +219,7 @@ void xfree(const void *p)
>      if(((long)p & PAGE_MASK) != ((long)hdr & PAGE_MASK))
>      {
>          printk("Header should be on the same page\n");
> -        *(int*)0=0;
> +        BUG();
>      }
>  
>      /* Merge with other free block, or put in list. */
> @@ -255,7 +255,7 @@ void xfree(const void *p)
>          if((((unsigned long)hdr) & (PAGE_SIZE-1)) != 0)
>          {
>              printk("Bug\n");
> -            *(int*)0=0;
> +            BUG();
>          }
>          free_page(hdr);
>      }



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:35:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:35:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649143.1013556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqBL-0004jv-AE; Wed, 06 Dec 2023 11:35:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649143.1013556; Wed, 06 Dec 2023 11:35:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqBL-0004jo-5X; Wed, 06 Dec 2023 11:35:11 +0000
Received: by outflank-mailman (input) for mailman id 649143;
 Wed, 06 Dec 2023 11:35:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oQZO=HR=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rAqBK-0004jg-C6
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:35:10 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20612.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81e7c826-942b-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 12:35:09 +0100 (CET)
Received: from BN9P220CA0004.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::9)
 by CH2PR12MB4279.namprd12.prod.outlook.com (2603:10b6:610:af::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25; Wed, 6 Dec
 2023 11:35:05 +0000
Received: from SN1PEPF000252A4.namprd05.prod.outlook.com
 (2603:10b6:408:13e::4) by BN9P220CA0004.outlook.office365.com
 (2603:10b6:408:13e::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25 via Frontend
 Transport; Wed, 6 Dec 2023 11:35:05 +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.7068.20 via Frontend Transport; Wed, 6 Dec 2023 11:35:05 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 6 Dec
 2023 05:35:03 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 6 Dec
 2023 05:35:03 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Wed, 6 Dec 2023 05:35:01 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81e7c826-942b-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TTOpLn2pxbrsEigyr3ZARwkJ5a9fScBamm5qw9UVQRa8yYpMDWszSH5Pr9g/q2WUPBC/q0cKwCATvfrUnVV+HbAgUtzSka/5og7J13LrbTLS1z2RcrcPWxCgOnd9SFm5VHn9OgUWGu7klPJWA+J0OEWMiQiZasIr73mZmFwwIfo9VIEKM9lptbpwTzuZ8T4klT3IjD21qZEWNG0bw6Fo77+5ParK0sGyJZUblmt1BRb+S+DCbN5mIKGgXUzMU5gy54Al1YdwGWG+B53lPufWWrub9tPPRUfvlQcnGhMXe+sZ/byJkRh5WF0bfys/03GOKSmoE7IFZVOnsKWQMPr7Ug==
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=/VxlAYorZ6hx9bTDrrfqZmv9S+meKM/WoC3ZESJsK4M=;
 b=fgsQhFTdM7vnUc/HPylgFSoqwRa45YqlZ4m6OGp0viAYEe9TTq8nw5NKNanyEE3WCh+bfj48pArJ8IV1vMaOLW+wstd8m0cTljFrJDGlHp90gP2JwLvlDe+v9cOauR584JhcCqFwnuIEFyCIW/vyza4jiu4tYGL1EECdLoz/y//K8W4tP5tdxDUWThqQT7xx3j3esetLN2kR+xDeKdycdxZyyubxQs46aSE60IlDAsDUZwPtYg+mA11Kn9WQ7u4w9NWLESlo42Wgdf/as9MCvvoKqVgZxf0f/T22imuMTg0j0F2247Z+2IR63X3BojyINS2JlME7dM1W+LZ8RXad1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/VxlAYorZ6hx9bTDrrfqZmv9S+meKM/WoC3ZESJsK4M=;
 b=pHe9610rQuvqI2dKDCiSj4bF1/jwUcANjLfNn00IO5sOJa4ZViScAqRjRatx7xE4fsNTBIe4jacSNTCkct248DbaBL98dFo5+V7jkX/tIeMVHtONn2fDGH712S7xYwZp0Gvf9KbnK967c/NoCrdr3zaPiFr6ozd8GOyLzLBvkvQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <fed944e1-cb66-46a1-b327-d69ad280cc5f@amd.com>
Date: Wed, 6 Dec 2023 12:35:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 02/11] xen/arm: avoid repetitive checking in
 process_shm_node
Content-Language: en-US
To: Penny Zheng <Penny.Zheng@arm.com>, <xen-devel@lists.xenproject.org>
CC: <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-3-Penny.Zheng@arm.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231206090623.1932275-3-Penny.Zheng@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000252A4:EE_|CH2PR12MB4279:EE_
X-MS-Office365-Filtering-Correlation-Id: e852789f-a8e7-4b6d-2668-08dbf64f64a9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CSAGW6u0IzcSE+gQ1VYd7+zSiL+ResttV5oNv/SbFKxa8XmEDVGoV0PG+rQ5Yb8sjaCJVZJ7mav/9zhdwTEN+sv5yc2tniQKmYKAmAJtjGuroXDMEhbw1Y7s184tfwZM5CroaUzDgj9IByaN4xel+NRVbJJq3WHJFmKX7BXZZQM+nAtgowe5UoOyP9ykK/DmM58kZGGUo3D+gyjN9/VQ2qRb2CqqNRXq/RJgq2R2ETG/wBKSpVdIj+FGYiCxHPKW79fy4ImzkX+22FnrXN2suYtMCNsRriIkUyu/uhjxR0jj40M9t+VdX0IQDvmH4buQxHah3MmrTa1UpbiPaHexZXhhXkH2aJADxgO4UJ8fYweSfAiCenfrUwx5kMRVR0eFV607ysndSYESPKfW4v58mguFflqmnnzFFf7zVyCotG/dY2E/fJ2zHm0O3akNioqzGp8mB63iAdEOr48tO9oHL8mF2lwlEXH7xybSmwY8yoedUv+YXihtpcevyXyaP2PpaU73BvyVjehzijb8bjwVBKebfWW5TOVAr30zEilvXE51lc7EKG++SU40SR04hDmglqDIU03NQvIdnxTo7J/kf/25oC4MEJ3THsHQ+kU1T3yb+CEFtJ50NoUD9Vc0PUrB8i8+fXYUZRioCxOSAln+VmytZvNpj0NPJgjAFuKzTcsZzh37bY43Imvp0FUhDxuB8LFbQL37FqDjr+LGALcfcIDjcuHbMkmT/HO97OiOowUE784wXthhs10HfuuXNYdLUChB3LTtHSaPdvFkByvuuD0Z6sgxrVHYLLPoji5+5WdW8ym2RabIsZgdDLXbkTyw
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(39860400002)(136003)(346002)(396003)(84040400005)(230922051799003)(64100799003)(1800799012)(451199024)(186009)(82310400011)(46966006)(40470700004)(36840700001)(36860700001)(47076005)(356005)(81166007)(53546011)(26005)(336012)(426003)(40480700001)(54906003)(16576012)(70206006)(70586007)(31686004)(316002)(31696002)(110136005)(82740400003)(83380400001)(2616005)(478600001)(4326008)(8936002)(8676002)(86362001)(40460700003)(5660300002)(2906002)(36756003)(41300700001)(44832011)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2023 11:35:05.4088
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e852789f-a8e7-4b6d-2668-08dbf64f64a9
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: CH2PR12MB4279

Hi Penny,

On 06/12/2023 10:06, Penny Zheng wrote:
> 
> 
> Putting overlap and overflow checking in the loop is causing repetitive
> operation, so this commit extracts both checking outside the loop.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
In general the patch looks good to me:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

That said, there are 2 things I realized during review.

> ---
> v6:
> new commit
> ---
>  xen/arch/arm/static-shmem.c | 39 +++++++++++++++----------------------
>  1 file changed, 16 insertions(+), 23 deletions(-)
> 
> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
> index cb268cd2ed..1a1a9386e4 100644
> --- a/xen/arch/arm/static-shmem.c
> +++ b/xen/arch/arm/static-shmem.c
> @@ -349,7 +349,7 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>  {
>      const struct fdt_property *prop, *prop_id, *prop_role;
>      const __be32 *cell;
> -    paddr_t paddr, gaddr, size;
> +    paddr_t paddr, gaddr, size, end;
>      struct meminfo *mem = &bootinfo.reserved_mem;
>      unsigned int i;
>      int len;
> @@ -422,6 +422,13 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>          return -EINVAL;
>      }
> 
> +    end = paddr + size;
> +    if ( end <= paddr )
> +    {
> +        printk("fdt: static shared memory region %s overflow\n", shm_id);
> +        return -EINVAL;
> +    }
> +
>      for ( i = 0; i < mem->nr_banks; i++ )
>      {
>          /*
> @@ -441,30 +448,13 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>                  return -EINVAL;
>              }
>          }
> +        else if ( strcmp(shm_id, mem->bank[i].shm_id) != 0 )
> +            continue;
>          else
>          {
> -            paddr_t end = paddr + size;
> -            paddr_t bank_end = mem->bank[i].start + mem->bank[i].size;
> -
> -            if ( (end <= paddr) || (bank_end <= mem->bank[i].start) )
You are iterating over reserved memory regions in general, so apart from shmem regions there might be truly /reserved ones.
It appears that we don't have overflow check in device_tree_get_meminfo, so this second check was the only place to detect that
(protected by a feature, so not very useful) :) This is just an observation and I agree to drop it. We should be checking for an
overflow in device_tree_get_meminfo.

The second observation I made is that we don't seem to assign and check the return code from device_tree_for_each_node.
This means, that any error while parsing the early fdt (e.g. static shm issues) does not stop Xen from booting, which might result in strange behavior later on.
If others agree, I'm ok to send a fix for that.

~Michal


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:40:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:40:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649148.1013564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqGA-0007At-QN; Wed, 06 Dec 2023 11:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649148.1013564; Wed, 06 Dec 2023 11: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 1rAqGA-0007Am-Nq; Wed, 06 Dec 2023 11:40:10 +0000
Received: by outflank-mailman (input) for mailman id 649148;
 Wed, 06 Dec 2023 11:40: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAqG9-0007Ag-L9
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:40:09 +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 345d98da-942c-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 12:40:07 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 CD28C21F3E;
 Wed,  6 Dec 2023 11:40:05 +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 8E23713408;
 Wed,  6 Dec 2023 11:40:05 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id LVXvIJVdcGUJdgAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 11:40:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 345d98da-942c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701862805; 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=kqejxZ9NN0ESZgis3iGAwKvDJlCd+FDMKs39+TQqUpE=;
	b=kmFghRZuVb5D2URiJrmH36bxAOPh/SqVOA7c2V3E87rgGcamA9ctC/7cWPWMkZPkzuc7cf
	ksU3lUYa/EW59ucd97zBzLl0VETQfL2atN8DxqlGBeFbF5Z3dQil+5IMzb/OFRkgQIfwmC
	nHYzaNb7F6YL+ja7g2xP09mJMwa5eJU=
Message-ID: <fa3c1f48-4ab6-4f7e-b665-705a894a0615@suse.com>
Date: Wed, 6 Dec 2023 12:40:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: George Dunlap <george.dunlap@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
 <31e2e2cd-2b83-43cc-a385-97feef2cdbb6@citrix.com>
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: <31e2e2cd-2b83-43cc-a385-97feef2cdbb6@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Rl0JsYjk2GwZNmcgiEkCESMp"
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -0.99
X-Spamd-Result: default: False [-0.99 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Rl0JsYjk2GwZNmcgiEkCESMp
Content-Type: multipart/mixed; boundary="------------a4nAOGkhoXxzEbOppPGXs45K";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: George Dunlap <george.dunlap@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
Message-ID: <fa3c1f48-4ab6-4f7e-b665-705a894a0615@suse.com>
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
 <31e2e2cd-2b83-43cc-a385-97feef2cdbb6@citrix.com>
In-Reply-To: <31e2e2cd-2b83-43cc-a385-97feef2cdbb6@citrix.com>

--------------a4nAOGkhoXxzEbOppPGXs45K
Content-Type: multipart/mixed; boundary="------------F2RjgP5vV3OEg62XPdirp0Ah"

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

T24gMDYuMTIuMjMgMTE6NTksIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDA2LzEyLzIw
MjMgNzoxMCBhbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+IGRpZmYgLS1naXQgYS94ZW4v
aW5jbHVkZS94ZW4vdW5hbGlnbmVkLmggYi94ZW4vaW5jbHVkZS94ZW4vdW5hbGlnbmVkLmgN
Cj4+IGluZGV4IDBhMmIxNmQwNWQuLjBjZWIwNmEyYmIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4v
aW5jbHVkZS94ZW4vdW5hbGlnbmVkLmgNCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi91bmFs
aWduZWQuaA0KPj4gQEAgLTEsMTIgKzEsNCBAQA0KPj4NCj4+IC1zdGF0aWMgaW5saW5lIHVp
bnQxNl90IGdldF91bmFsaWduZWRfYmUxNihjb25zdCB2b2lkICpwKQ0KPj4gK3N0YXRpYyBp
bmxpbmUgdTE2IGdldF91bmFsaWduZWRfbGUxNihjb25zdCB2b2lkICpwKQ0KPiANCj4gSSd2
ZSBkb25lIHNvbWUgY2xlYW51cCBmb3IgeW91Lg0KPiANCj4gWW91IHN3YXBwZWQgYXdheSBm
cm9tIHVzaW5nIHN0ZGludCB0eXBlcywgYW5kIHNodWZmbGVkIHRoZSBvcmRlciBvZg0KPiBm
dW5jdGlvbnMsIHdoaWNoIG1hZGUgdGhlIGRpZmYgYmFzaWNhbGx5IGlsbGVnaWJsZS4NCj4g
DQo+IGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL2dpdHdlYi8/cD1wZW9wbGUvYW5kcmV3Y29v
cC94ZW4uZ2l0O2E9Y29tbWl0ZGlmZjtoPTFkNDQ4YTg0NWVlNGFkNzRjYWI3NjU2M2IzYTI1
NTJiMTA5NTMxODYNCj4gaXMgYSBtdWNoIHNob3J0ZXIgZGlmZi4NCg0KV29ya3MgZm9yIG1l
Lg0KDQoNCkp1ZXJnZW4NCg0K
--------------F2RjgP5vV3OEg62XPdirp0Ah
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-----

--------------F2RjgP5vV3OEg62XPdirp0Ah--

--------------a4nAOGkhoXxzEbOppPGXs45K--

--------------Rl0JsYjk2GwZNmcgiEkCESMp
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/Ey8FAmVwXZUFAwAAAAAACgkQsN6d1ii/Ey+p
6Qf/RJV0Ept15a+fqvQBJQt8zWi3EDVZ/IipTak+6lWMxfis0AUX5rrZkYbjHBUhx7lrTsJ48oqe
yqcTVzjl1UUMC8us410j5ck+CDsjGSqDT50wUKOrMsnr4WnOmyq55ESp04QpO1BPYXrxbtRU/Fff
j3mBjj8nUm5Dg4Q3cVeG9FaR3fI4b0I/lzH9k5RCpkbxBGR8BGe0U9U9D1wOrsm7xBeWibf7u5t6
iCvq9TAiTF+zvQ9iCLk9ZmbXHZyrxRKB8fiTEacz36Y3939ptaBKocNmG3S9rATqBt+AyQS/a/N6
mr2pa5CJ2nvpevtUWeZhYRXzkaJmDEEoTNcb/g8i0w==
=1UUh
-----END PGP SIGNATURE-----

--------------Rl0JsYjk2GwZNmcgiEkCESMp--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:44:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:44:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649152.1013574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqJv-0000Cn-Dg; Wed, 06 Dec 2023 11:44:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649152.1013574; Wed, 06 Dec 2023 11: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 1rAqJv-0000Cg-Ao; Wed, 06 Dec 2023 11:44:03 +0000
Received: by outflank-mailman (input) for mailman id 649152;
 Wed, 06 Dec 2023 11: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAqJu-0000Ca-1i
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:44:02 +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 bf453dd2-942c-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 12:44:00 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 043B71FD07;
 Wed,  6 Dec 2023 11:44: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 BC68E13408;
 Wed,  6 Dec 2023 11:43:59 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id GnCrLH9ecGWGdwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 11: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>
X-Inumbo-ID: bf453dd2-942c-11ee-98e5-6d05b1d4d9a1
Message-ID: <c4d4f97c-ce6c-407d-bbca-baaeb21a3eab@suse.com>
Date: Wed, 6 Dec 2023 12:43:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: George Dunlap <george.dunlap@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
 <31e2e2cd-2b83-43cc-a385-97feef2cdbb6@citrix.com>
 <9af90251-e16a-43b2-acdc-fa6feddd5a22@citrix.com>
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: <9af90251-e16a-43b2-acdc-fa6feddd5a22@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------UzY0G08BARLqmJ1B0XiPI2a4"
X-Rspamd-Queue-Id: 043B71FD07
X-Spam-Score: 15.00
X-Spam-Flag: YES
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 ARC_NA(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 RCVD_COUNT_THREE(0.00)[3];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[xen.org:url];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd1
X-Spam-Level: ***************
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------UzY0G08BARLqmJ1B0XiPI2a4
Content-Type: multipart/mixed; boundary="------------elp6JyFMcmOujj0DkYAuXoIC";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: George Dunlap <george.dunlap@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Arnd Bergmann <arnd@arndb.de>
Message-ID: <c4d4f97c-ce6c-407d-bbca-baaeb21a3eab@suse.com>
Subject: Re: [PATCH v2 2/3] xen: make include/xen/unaligned.h usable on all
 architectures
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-3-jgross@suse.com>
 <31e2e2cd-2b83-43cc-a385-97feef2cdbb6@citrix.com>
 <9af90251-e16a-43b2-acdc-fa6feddd5a22@citrix.com>
In-Reply-To: <9af90251-e16a-43b2-acdc-fa6feddd5a22@citrix.com>

--------------elp6JyFMcmOujj0DkYAuXoIC
Content-Type: multipart/mixed; boundary="------------WTamS0pjNXReBAVh3goG712g"

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

T24gMDYuMTIuMjMgMTI6MzMsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDA2LzEyLzIw
MjMgMTA6NTkgYW0sIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+PiBPbiAwNi8xMi8yMDIzIDc6
MTAgYW0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+Pj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNs
dWRlL3hlbi91bmFsaWduZWQuaCBiL3hlbi9pbmNsdWRlL3hlbi91bmFsaWduZWQuaA0KPj4+
IGluZGV4IDBhMmIxNmQwNWQuLjBjZWIwNmEyYmIgMTAwNjQ0DQo+Pj4gLS0tIGEveGVuL2lu
Y2x1ZGUveGVuL3VuYWxpZ25lZC5oDQo+Pj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3VuYWxp
Z25lZC5oDQo+Pj4gQEAgLTEsMTIgKzEsNCBAQA0KPj4+DQo+Pj4gLXN0YXRpYyBpbmxpbmUg
dWludDE2X3QgZ2V0X3VuYWxpZ25lZF9iZTE2KGNvbnN0IHZvaWQgKnApDQo+Pj4gK3N0YXRp
YyBpbmxpbmUgdTE2IGdldF91bmFsaWduZWRfbGUxNihjb25zdCB2b2lkICpwKQ0KPj4gSSd2
ZSBkb25lIHNvbWUgY2xlYW51cCBmb3IgeW91Lg0KPj4NCj4+IFlvdSBzd2FwcGVkIGF3YXkg
ZnJvbSB1c2luZyBzdGRpbnQgdHlwZXMsIGFuZCBzaHVmZmxlZCB0aGUgb3JkZXIgb2YNCj4+
IGZ1bmN0aW9ucywgd2hpY2ggbWFkZSB0aGUgZGlmZiBiYXNpY2FsbHkgaWxsZWdpYmxlLg0K
Pj4NCj4+IGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL2dpdHdlYi8/cD1wZW9wbGUvYW5kcmV3
Y29vcC94ZW4uZ2l0O2E9Y29tbWl0ZGlmZjtoPTFkNDQ4YTg0NWVlNGFkNzRjYWI3NjU2M2Iz
YTI1NTJiMTA5NTMxODYNCj4+IGlzIGEgbXVjaCBzaG9ydGVyIGRpZmYuDQo+IA0KPiBPaCwg
YW5kIHRoZSBPcmlnaW4gbGluayBvdWdodCB0byBiZQ0KPiANCj4gaHR0cHM6Ly9naXQua2Vy
bmVsLm9yZy90b3J2YWxkcy9jLzgwM2Y0ZTFlYWI3YTg5MzhiYTNhM2MzMGRkNGViNWU5ZWVl
ZjVlNjMNCj4gDQo+IHdoaWNoIGlzIHNob3J0ZXIgYW5kIGFsc28gbGV0cyBwZW9wbGUgb24g
dGhlIHdlYiB2aWV3IGl0Lg0KDQpUaGVuIHdlIHNob3VsZCB1cGRhdGUgZG9jcy9wcm9jZXNz
L3NlbmRpbmctcGF0Y2hlcy5wYW5kb2MgdG8gcmVmbGVjdCB0aGF0DQpwb3NzaWJpbGl0eSB0
byByZWZlcmVuY2UgYSBjb21taXQgKEkgd291bGRuJ3QgbGlrZSB0aGF0IGNoYW5nZSwgdGhv
dWdoKS4NCg0KDQpKdWVyZ2VuDQo=
--------------WTamS0pjNXReBAVh3goG712g
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-----

--------------WTamS0pjNXReBAVh3goG712g--

--------------elp6JyFMcmOujj0DkYAuXoIC--

--------------UzY0G08BARLqmJ1B0XiPI2a4
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/Ey8FAmVwXn8FAwAAAAAACgkQsN6d1ii/Ey+K
3Qf/UYbiwwGNFfs91zwyJcrfLswVZGHPKpGsdDb7ZoUfeuRkiJc3sU+Zid8so+CRtLs7DbP+4rL1
4q4H44E6IPc+3ubbMq9EK1+eONWBBtI6Av1hgBSAYIZyGArTJZwE8jHkxU+Rt7v/+nHHv2ppER4t
ZdXBQx+q9K02rcBZV/jZValMtxFPlVwWIc32ObBe3enL9Lm6HGknTUkIvZ1iPxUUS+9suUN1ttlO
99uMeSlkVGcTvxwFiZ3Z9gtW/wKw7Lyry24PagEOnlDjlyMbvE1BN/uWWXCSO2pq8XEUk8gnZKT7
S8nz2B+qmLsQp6qHlVMIKjoJNyqfKIfkTnY0PksyfQ==
=nFkb
-----END PGP SIGNATURE-----

--------------UzY0G08BARLqmJ1B0XiPI2a4--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 11:45:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 11:45:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649156.1013589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqLJ-0000xd-Tj; Wed, 06 Dec 2023 11:45:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649156.1013589; Wed, 06 Dec 2023 11:45:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqLJ-0000x3-OC; Wed, 06 Dec 2023 11:45:29 +0000
Received: by outflank-mailman (input) for mailman id 649156;
 Wed, 06 Dec 2023 11:45:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAqLI-0000wb-Hd
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 11:45:28 +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 f17bed77-942c-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 12:45:24 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id DBB4D21F65;
 Wed,  6 Dec 2023 11:45:23 +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 B4D2813408;
 Wed,  6 Dec 2023 11:45:23 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id qGaPKtNecGWGdwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 11: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>
X-Inumbo-ID: f17bed77-942c-11ee-9b0f-b553b5be7939
Message-ID: <923cdd58-17c5-4f11-91d9-63a7c33cdd66@suse.com>
Date: Wed, 6 Dec 2023 12:45:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH mini-os] x86: fix building with Clang
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 Minios-devel <minios-devel@lists.xenproject.org>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <8ec8031a-65bb-4b1b-8964-8c457e04b4b4@suse.com>
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: <8ec8031a-65bb-4b1b-8964-8c457e04b4b4@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------dhPJbXFnkCipJpmUyGM91GHu"
X-Rspamd-Queue-Id: DBB4D21F65
X-Spam-Score: 15.00
X-Spam-Flag: YES
X-Spamd-Result: default: False [15.00 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.01)[46.77%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd1
X-Spam-Level: ***************
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------dhPJbXFnkCipJpmUyGM91GHu
Content-Type: multipart/mixed; boundary="------------BFsKX9p1tsle0L0Vk9bN40Rs";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 Minios-devel <minios-devel@lists.xenproject.org>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <923cdd58-17c5-4f11-91d9-63a7c33cdd66@suse.com>
Subject: Re: [PATCH mini-os] x86: fix building with Clang
References: <8ec8031a-65bb-4b1b-8964-8c457e04b4b4@suse.com>
In-Reply-To: <8ec8031a-65bb-4b1b-8964-8c457e04b4b4@suse.com>

--------------BFsKX9p1tsle0L0Vk9bN40Rs
Content-Type: multipart/mixed; boundary="------------EUCl4Y7Brbl0bV2NUtUj5RNQ"

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

T24gMDYuMTIuMjMgMTE6NTksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBJdCBkb2Vzbid0IHVu
ZGVyc3RhbmQgLWZuby1yZW9yZGVyLWJsb2Nrcy4gV2hldGhlciB3aXRob3V0IHRoYXQgb3B0
aW9uDQo+IHRoZSByZXN1bHRpbmcgYmluYXJ5IGlzIGFjdHVhbGx5IGZ1bmN0aW9uYWwgSSBj
YW4ndCB0ZWxsLCB0aG91Z2guDQo+IA0KPiBGb3IgJChjYy1vcHRpb24gLi4uKSB0byBiZSB1
c2FibGUgaW4gYXJjaC5taywgYXQgbGVhc3QgQ0MgbmVlZHMgc2V0dGluZw0KPiBlYXJsaWVy
IGluIENvbmZpZy5tay4gTW92ZSB1cCB0aGUgZW50aXJlICJTZXQgdG9vbHMiIHNlY3Rpb24u
DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+
DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0K
SnVlcmdlbg0KDQo=
--------------EUCl4Y7Brbl0bV2NUtUj5RNQ
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-----

--------------EUCl4Y7Brbl0bV2NUtUj5RNQ--

--------------BFsKX9p1tsle0L0Vk9bN40Rs--

--------------dhPJbXFnkCipJpmUyGM91GHu
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

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

wsB4BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmVwXtMFAwAAAAAACgkQsN6d1ii/Ey9L
tgf2PY7Mz26jFsuTd7UVrAtPWBLWqznafgo1mpiMBsbzkeZH8QL2/FYhyEicEx988muwfxdbrV2S
ubsu/8OUpd2SxibN4qPyAPQAv6WU/3zDRHnTx+SdgSEEiBda0v4Aorac2gm3jhcSnDFJ9soqJkAS
g3QruOoC7BkwYr70OPorBAT9XusaHAGdLLhwsSfop7JsljeF0lxIap2y9aNz4YQT1/CgL4M1ck/k
ESx/0Qf5kol1Nhgu8RDENMAYPAOrXfrWCmPX4FeFQIe8b8wDRqe3mQhhffc/VrKdHq10jHgE2O3x
cC9fnzwUSTjBiygBRBqMvJ8pXFPUW+DWQYHHVhZE
=VsmX
-----END PGP SIGNATURE-----

--------------dhPJbXFnkCipJpmUyGM91GHu--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 12:01:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 12:01:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649167.1013599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqaK-0006wK-Ac; Wed, 06 Dec 2023 12:01:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649167.1013599; Wed, 06 Dec 2023 12:01:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqaK-0006wD-7T; Wed, 06 Dec 2023 12:01:00 +0000
Received: by outflank-mailman (input) for mailman id 649167;
 Wed, 06 Dec 2023 12:00: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=nkyO=HR=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rAqaJ-0006w7-3B
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 12:00:59 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 1d3e641b-942f-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 13:00:57 +0100 (CET)
Received: from mg.gitlab.com (12.226.74.34.bc.googleusercontent.com
 [34.74.226.12]) by
 2a62022d01aa with SMTP id 65706278f9c1fa347b87596e (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 06 Dec 2023 12:00:55 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 1d3e641b-942f-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701864056; x=1701871256; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=c15ecMjY5vA6/qJ/FPym0UzWJrueXmFma7pQaQ8tB08=;
 b=GCPQA8M0UzI4ckBQEHCFoW3pxS9vV30z1tcxDRLWIzHPXlcojdDUD/EE7ayTeT8Y3YL/LB1e4UPA6wbRp0G9fEceU1b+Wnfhr6SnUm50dwEbfZXc4T5P+h8Gp519vpC9whUaCpE5eGYYsUpY38686k6WPKa9/aLIvrrUI3YbQHw=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 06 Dec 2023 12:00:55 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65706277a71b3_2c12981187298d@gitlab-sidekiq-catchall-v2-6899f86fdc-vgz56.mail>
Subject: xen | Failed pipeline for staging | 59df2851
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_657062779a3fd_2c1298118728a4";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1097090546
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_657062779a3fd_2c1298118728a4
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1097090546 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 59df2851 ( https://gitlab.com/xen-project/xen/-/commit/59df2851318357763be3ad8a5f300d6a9e7c6e38 )
Commit Message: x86/DMI: adjustments to comply with Misra C:201...
Commit Author: Jan Beulich ( https://gitlab.com/jbeulich )


Pipeline #1097090546 ( https://gitlab.com/xen-project/xen/-/pipelines/1097090546 ) triggered by Ganis ( https://gitlab.com/ganis )
had 14 failed jobs.

Job #5691138526 ( https://gitlab.com/xen-project/xen/-/jobs/5691138526/raw )

Stage: build
Name: opensuse-tumbleweed-gcc
Job #5691138549 ( https://gitlab.com/xen-project/xen/-/jobs/5691138549/raw )

Stage: test
Name: xilinx-smoke-dom0less-arm64-gcc
Job #5691138247 ( https://gitlab.com/xen-project/xen/-/jobs/5691138247/raw )

Stage: build
Name: archlinux-gcc-debug
Job #5691137773 ( https://gitlab.com/xen-project/xen/-/jobs/5691137773/raw )

Stage: build
Name: alpine-3.18-gcc
Job #5691138395 ( https://gitlab.com/xen-project/xen/-/jobs/5691138395/raw )

Stage: build
Name: debian-bookworm-gcc
Job #5691138402 ( https://gitlab.com/xen-project/xen/-/jobs/5691138402/raw )

Stage: build
Name: debian-bookworm-gcc-debug
Job #5691138435 ( https://gitlab.com/xen-project/xen/-/jobs/5691138435/raw )

Stage: build
Name: debian-bookworm-32-gcc-debug
Job #5691138546 ( https://gitlab.com/xen-project/xen/-/jobs/5691138546/raw )

Stage: test
Name: build-each-commit-gcc
Job #5691138557 ( https://gitlab.com/xen-project/xen/-/jobs/5691138557/raw )

Stage: test
Name: xilinx-smoke-dom0less-arm64-gcc-gem-passthrough
Job #5691138530 ( https://gitlab.com/xen-project/xen/-/jobs/5691138530/raw )

Stage: build
Name: opensuse-tumbleweed-gcc-debug
Job #5691138448 ( https://gitlab.com/xen-project/xen/-/jobs/5691138448/raw )

Stage: build
Name: ubuntu-trusty-gcc
Job #5691137777 ( https://gitlab.com/xen-project/xen/-/jobs/5691137777/raw )

Stage: build
Name: alpine-3.18-gcc-debug
Job #5691138452 ( https://gitlab.com/xen-project/xen/-/jobs/5691138452/raw )

Stage: build
Name: ubuntu-trusty-gcc-debug
Job #5691138238 ( https://gitlab.com/xen-project/xen/-/jobs/5691138238/raw )

Stage: build
Name: archlinux-gcc

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 59df2851</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1097090546 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/59df2851318357763b=
e3ad8a5f300d6a9e7c6e38" style=3D"color: #3777b0; text-decoration: none;">=

59df2851
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
x86/DMI: adjustments to comply with Misra C:201...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1097090546">#1097090546</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 14 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138526" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138549" style=3D=
"color: #3777b0; text-decoration: none;">
xilinx-smoke-dom0less-arm64-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138247" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691137773" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138395" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138402" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138435" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138546" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138557" style=3D=
"color: #3777b0; text-decoration: none;">
xilinx-smoke-dom0less-arm64-gcc-gem-passthrough
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138530" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138448" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691137777" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138452" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691138238" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_657062779a3fd_2c1298118728a4--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 12:07:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 12:07:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649203.1013609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqgV-0008Qu-2Z; Wed, 06 Dec 2023 12:07:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649203.1013609; Wed, 06 Dec 2023 12: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 1rAqgU-0008Qn-VP; Wed, 06 Dec 2023 12:07:22 +0000
Received: by outflank-mailman (input) for mailman id 649203;
 Wed, 06 Dec 2023 12:07: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=uU2H=HR=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rAqgU-0008Qh-7x
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 12:07:22 +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 021fe59f-9430-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 13:07:21 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c09dfd82aso47432045e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 04:07:21 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 c5-20020adffb05000000b00333b17432c0sm1189985wrr.28.2023.12.06.04.07.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Dec 2023 04:07:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 021fe59f-9430-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701864440; x=1702469240; 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=5WS9/wmHcxJSV1X0pP6+4BAi+EYzZ1HdoVNxXPhd4+4=;
        b=FdAtirjyuYxpDuMZOwjKIlAYnMOzCU5Nlntgk19+O/4uVWe7JRqwvJJ1gHTR/PqoEf
         5vLTz/Z9iZCr7IKizGqFZ50BTPQusvc+8rjkVbjjS1NolB1q7gtinmIcGwZa8Aim4OtM
         8ykNiv6fveNHOvY/wDo5zt1/J5z9zofpsVokY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701864440; x=1702469240;
        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=5WS9/wmHcxJSV1X0pP6+4BAi+EYzZ1HdoVNxXPhd4+4=;
        b=MnYcTekGMq0gMXf7h8Xl/pp64FKgfVuKZKR35m75liGAisxItYdZCOIbmf8y2L3NEN
         iiafypKN3agSd9vxy2IkW/6Ng7DtmdcOyT1+ubh/AXZWt5SUmHjoKROI4Mw/q6jb0JOM
         bKA4uFsZVBKtIGZmaGRq9VTm3Yci8vEq4gxAbXwnJ4O3iLvFmfLcUee+Y3r1UCchEqH6
         lUw6tM3Z2hRJV2F2ixD1NPvFj7Qfwh+iTtKkPHIOaIOjjFlal5aK4aN9q5rMhO/OMVpE
         47y2PKiftrE7pvy+rzqf0ryrFqyquzYakfGPTHc8d83tip8hYLEk/g8Pkr3j3Q7MVj2K
         YDSg==
X-Gm-Message-State: AOJu0Yy5nmD38wQVSi1XOqy7utJaIBNJdoZ3IkhY2XG88OPmCOp2sbyE
	HEOhED/2GHwwLtktDxkEERvOlA==
X-Google-Smtp-Source: AGHT+IE6ZQoI7TGzIa238MVFd7sYTxOGl2jFR+cM+inU85v8gLPxbKVZr1a97SD2uWwURREMuLXkDg==
X-Received: by 2002:a7b:c8c7:0:b0:40b:4da4:b985 with SMTP id f7-20020a7bc8c7000000b0040b4da4b985mr546897wml.38.1701864440598;
        Wed, 06 Dec 2023 04:07:20 -0800 (PST)
Date: Wed, 6 Dec 2023 12:07:19 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Julien Grall <jgrall@amazon.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Daniel De Graaf <dgdegra@tycho.nsa.gov>,
	Quan Xu <quan.xu0@gmail.com>, Juergen Gross <jgross@suse.com>,
	Alexander Kanavin <alex@linutronix.de>
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Message-ID: <40ea40d3-8105-4591-9b15-655a68d42daf@perard>
References: <20231205183226.26636-1-julien@xen.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205183226.26636-1-julien@xen.org>

On Tue, Dec 05, 2023 at 06:32:26PM +0000, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
> 
> Right now, all tools and hypervisor will be complied with the option
> -Wdeclaration-after-statement. While most of the code in the hypervisor
> is controlled by us, for tools we may import external libraries.
> 
> The build will fail if one of them are using the construct we are
> trying to prevent. This is the case when building against Python 3.12
> and Yocto:
> 
> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44,
> |                  from xen/lowlevel/xc/xc.c:8:
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE':
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
> |   233 |     PyVarObject *var_ob = _PyVarObject_CAST(ob);
> |       |     ^~~~~~~~~~~
> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53:
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue':
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
> |   121 |     Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
> |       |     ^~~~~~~~~~
> | cc1: all warnings being treated as errors
> 
> Looking at the tools directory, a fair few directory already add
> -Wno-declaration-after-statement to inhibit the default behavior.
> 
> We have always build the hypervisor with the flag, so for now remove
> only the flag for anything but the hypervisor. We can decide at later
> time whether we want to relax.
> 
> Also remove the -Wno-declaration-after-statement in some subdirectory
> as the flag is now unnecessary.
> 
> Part of the commit message was take from Alexander's first proposal:
> 
> Link: https://lore.kernel.org/xen-devel/20231128174729.3880113-1-alex@linutronix.de/
> Reported-by: Alexander Kanavin <alex@linutronix.de>
> Signed-off-by: Julien Grall <jgrall@amazon.com>

Tools side of the patch looks good to me, so
Acked-by: Anthony PERARD <anthony.perard@citrix.com>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 12:11:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 12:11:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649209.1013619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAqkt-00025u-I5; Wed, 06 Dec 2023 12:11:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649209.1013619; Wed, 06 Dec 2023 12: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 1rAqkt-00025n-FT; Wed, 06 Dec 2023 12:11:55 +0000
Received: by outflank-mailman (input) for mailman id 649209;
 Wed, 06 Dec 2023 12: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=OP1m=HR=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1rAqkr-00025g-TV
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 12:11:53 +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 a35f457d-9430-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 13:11:51 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3333074512bso365902f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 04:11:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a35f457d-9430-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701864711; x=1702469511; 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=437VIxtcX0N4H5jsRtSLZUpdsDelvlY9ahAn1pXxHd8=;
        b=OGi3rWgjG783tjTKVJc2kwsV20rfg9tXwkzFPujAFIChRqMXlXgzYdYi/R2001oJdk
         SH4wTT1gYnJJ/Jjyxr2Bj7aYl1cBRfhZpprJIYsnQEaKT4Ap0Z4BD64JUHRSEFhzNgoZ
         GJVV+bxFLcbRPwswflH4XD2fLznaiz0cSXj/Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701864711; x=1702469511;
        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=437VIxtcX0N4H5jsRtSLZUpdsDelvlY9ahAn1pXxHd8=;
        b=hMrN8t/iSo8bG4oSOHRYdTSBYqAdSaeBxadUJhBUEVmWTMdRVojdRKeG+62FOinnm5
         tmmxAAASH2BfvF5C0a+WckJo8Ew10/HhjgRUVHqtd3lJl24BX37vqTsU6X0GPngFPAdt
         F3qs0nsRu2b0qlf/QY3NqaAcJS1CJPGBXI1YbwYTrjO++1uGPIHQk7GAWMW1y+l9PlVj
         WGTB+ZFYbKgC1LeHxX+WjdUYMD8YPUHoTQ8w1N/jQT3Q6vSapv01xuNpV7drlPP6IAYz
         uxjBylTZsR/zG8QSc4bAiZ1+BIMEPr/MGSGnf30Sp0nEExs5B+SB87k8aDbc+g/YX5zr
         Y/FA==
X-Gm-Message-State: AOJu0Yw2syz/Vy4EDSmVAFvXiAS7EzI9xNjX9Lnu/mZ2PFp6JwvXE6U0
	J8GrvgJM91mhuFm0pUC8YTL8ESesI1R8AA8evNOX
X-Google-Smtp-Source: AGHT+IF5yObhQ8uk+icxlQqEsFmR4OCppJuwYtA4ONqytcSjy2O21eRWj1IFdl/TrUPvoEUV5oItPDc7XcRzB01T+qA=
X-Received: by 2002:a05:600c:138a:b0:40b:2a62:a2b6 with SMTP id
 u10-20020a05600c138a00b0040b2a62a2b6mr1456938wmf.1.1701864711095; Wed, 06 Dec
 2023 04:11:51 -0800 (PST)
MIME-Version: 1.0
References: <20231205123403.63813-1-roger.pau@citrix.com> <824c50c3-ad3f-4d97-a3e8-5343564cbde5@citrix.com>
 <ZW86TOTFn3JZswUO@macbook>
In-Reply-To: <ZW86TOTFn3JZswUO@macbook>
From: Ross Lagerwall <ross.lagerwall@cloud.com>
Date: Wed, 6 Dec 2023 12:11:39 +0000
Message-ID: <CAG7k0Eq72v7Y5HN+dckAkiL4+RHHUOaVCMW0TGwKdWa9wOeTMA@mail.gmail.com>
Subject: Re: [PATCH] livepatch-build-tools: allow livepatching version.c
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, 
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 5, 2023 at 2:57=E2=80=AFPM Roger Pau Monn=C3=A9 <roger.pau@citr=
ix.com> wrote:
>
> On Tue, Dec 05, 2023 at 02:15:05PM +0000, Andrew Cooper wrote:
> > On 05/12/2023 12:34 pm, Roger Pau Monne wrote:
> > > Currently version.o is explicitly ignored as the file would change as=
 a result
> > > of the orignal and the patched build having possibly different dates =
and
> > > times.
> > >
> > > Fix such difference by exporting the date and time from the build scr=
ipt, so
> > > that both builds share the same build time.  This allows checking for=
 changes
> > > in version.c, since the rest of fields need to be manually changed in=
 order to
> > > produce different output.
> > >
> > > Setting XEN_BUILD_{DATE,TIME} as an environment variable has been sup=
ported
> > > since before livepatch support was added to Xen, so it's safe to expo=
rt those
> > > variables unconditionally.
> > >
> > > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > > Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> > > ---
> > >  livepatch-build | 4 ++++
> > >  livepatch-gcc   | 2 --
> > >  2 files changed, 4 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/livepatch-build b/livepatch-build
> > > index e2ccce4f7fd7..f622683fc56c 100755
> > > --- a/livepatch-build
> > > +++ b/livepatch-build
> > > @@ -417,6 +417,10 @@ if [ "${SKIP}" !=3D "build" ]; then
> > >
> > >      export CROSS_COMPILE=3D"${TOOLSDIR}/livepatch-gcc "
> > >
> > > +    # Force same date and time to prevent unwanted changes in versio=
n.c
> > > +    export XEN_BUILD_DATE=3D`LC_ALL=3DC date`
> > > +    export XEN_BUILD_TIME=3D`LC_ALL=3DC date +%T`
> >
> > Date is the one that goes wrong every time, but everything else in
> > compile.h can go wrong in a way that causes version.o to change.
>
> I've attempted to reflect that in "since the rest of fields need to be
> manually changed in order to produce different output".
>
> For those to change there must be some kind of environment change
> between the original and the patched version build, and hence I don't
> think that would be supported.

In general, yes. However, with this patch changes to the
hostname/domain/username would result in version.o being marked
as changed even though it is entirely fine to build the live patch
on a different build host from the original Xen.

>
> > Ideally, the pristine source for building livepatches would include a
> > generated compile.h, and livepatch would have a way to force no
> > regeneration of the header.  But I've got no idea how nice that would b=
e
> > to arrange.
>
> Yes, no idea how fragile that would be either.  IMO the proposed
> approach is not that bad.
>
> > That way, you're using the same details as the Xen being patched, rathe=
r
> > than hoping that two identical different details will cancel out in the
> > binary diff.
>
> Another option is to set all the env variables to disable any
> build time probing.  However things like compiler or version changing
> between the original and the patched builds likely point out to issues
> elsewhere, unless it's intentional modification of the helpers.
>
> > > +
> > >      echo "Perform full initial build with ${CPUS} CPU(s)..."
> > >      build_full
> > >
> > > diff --git a/livepatch-gcc b/livepatch-gcc
> > > index fcad80551aa0..e4cb6fb59029 100755
> > > --- a/livepatch-gcc
> > > +++ b/livepatch-gcc
> > > @@ -33,7 +33,6 @@ if [[ "$TOOLCHAINCMD" =3D~ $GCC_RE ]] ; then
> > >              obj=3D$2
> > >              [[ $2 =3D */.tmp_*.o ]] && obj=3D${2/.tmp_/}
> > >              case "$(basename $obj)" in
> > > -            version.o|\
> > >              debug.o|\
> > >              check.o|\
> >
> > Tangential question.  check.o is excluded because it's a toolchain test=
,
> > but any idea what debug.o is doing in this list?
> >
> > It can't possibly be the debug.c I've recently added to x86 (which we'l=
l
> > want to be able to livepatch), so I guess it's got something to do the
> > ARM debug.S's, but I can't see anything in those that are worthy of
> > exemption either...
>
> Hm, that comes from the first commit that imported the wrapper to the
> repository, and at that point only x86 had livepatch support.
>
> I'm tempted to think this was inherited from the original xsplice
> tooling, and so debug.o needs to be removed from the list.
>

livepatch-build-tools is derived from the kpatch build tooling and
debug.o has never been present there so it was added here for a
reason. AFAICT the gdbsx code used to live in debug.o. I can't
recall why it was being marked as changed unnecessarily but since
that is no longer an issue and the code lives elsewhere, the debug.o
lines can be dropped.

Ross


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 13:18:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 13:18:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649221.1013628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rArmo-0001iq-FR; Wed, 06 Dec 2023 13:17:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649221.1013628; Wed, 06 Dec 2023 13: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 1rArmo-0001ij-Cz; Wed, 06 Dec 2023 13:17:58 +0000
Received: by outflank-mailman (input) for mailman id 649221;
 Wed, 06 Dec 2023 13:17:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uigp=HR=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1rArmn-0001ib-Kh
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 13:17:57 +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 ddfc9920-9439-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 14:17:56 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-50bfd8d5c77so3642756e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 05:17:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ddfc9920-9439-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701868675; x=1702473475; 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=N4aG7ZnPe2DC2eIKL8gNZpIhUqQzB64868xfzy4hp94=;
        b=HSP6bii479SqfjdShx8x+/UGnIyFm0ABDCaBqENPB8L2gfA9ZSpHOC5OYGpV9dCOz4
         5YvM/ME7rMTtMNIBpEjDrPJ2xKFWARBZRKjBYsKNmWARlyl41n+0+slf0qlHjghV0w1s
         2j0xbL79R05ZqScBsMibUivcdDSqtr0siegYo5T37n7vUOwc+DuZHuOwkPHsKsSXZqOA
         U7CKPZArkhJEFGrIARmqISLrZJnU4jFA/SbaGhYTYSKLa6TIJvNEW6dNLCnJTc6lSDqN
         Bzsi0/p8rntYvMi8/6AFp1D9OPIwC8QuyBY2WV+AVjxJfFASoQ7+BgveynRu9XD+YUtV
         6ROw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701868675; x=1702473475;
        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=N4aG7ZnPe2DC2eIKL8gNZpIhUqQzB64868xfzy4hp94=;
        b=wcg60KocDp8KV1gpuXY7lkSrnKCbw/aDEgh3ubK1LjtssWpY+KLTD3qnHFwJE4S9+9
         Wxk44iSNdpiNg5juh7WOLq6coTsfeIz5Z1E/G4lGpTgwSEQbsqFo7rO1+fMOMFRSLuPb
         sgXyRwSxJvvL100sKvKQuM5Xc0TWUZJqfzi1Fo4ViIJoENg6BYzgvQqm8xTU2iWJbaq4
         TGAKCv+/ttpQb8N+Vk8wxMDw9kiGpYgNdv3zh0WaWRZZx1mDYvTgmny9xUqUdGQU3V/y
         2hT9R/GkWMxdb1rSnO8RAyeCILopXB7DOvdHcV+YdW+agX1nSx1GA5XglM20aX/jpaO5
         k9pg==
X-Gm-Message-State: AOJu0Yysags30n0pz/eo4qo/aYtpRdGD5RVMG/9h76iK5NJsJJItcHln
	f7uRe6t/r0u5BJipfoKpAbB++H2eqoaaeI0+wZo=
X-Google-Smtp-Source: AGHT+IEss0Rz6REVtivahro/gy3fmjGoIzVebmYRM2dI0dH/81TYm184JUPYNIno79sfW9p2OkkezUsqlXy0FVBYhXU=
X-Received: by 2002:a19:e05c:0:b0:50b:e8b2:a78f with SMTP id
 g28-20020a19e05c000000b0050be8b2a78fmr265111lfj.268.1701868674544; Wed, 06
 Dec 2023 05:17:54 -0800 (PST)
MIME-Version: 1.0
References: <20231110160804.29021-1-jgross@suse.com> <20231110160804.29021-16-jgross@suse.com>
In-Reply-To: <20231110160804.29021-16-jgross@suse.com>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Wed, 6 Dec 2023 08:17:42 -0500
Message-ID: <CAKf6xpty3ENpuPgTf7=Gk1Q-Ekn+FjOx=-ySMQF6v3kx7zntrw@mail.gmail.com>
Subject: Re: [PATCH v2 15/29] tools/libs/light: add backend type for 9pfs PV devices
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Nov 10, 2023 at 11:09=E2=80=AFAM Juergen Gross <jgross@suse.com> wr=
ote:

> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_ty=
pes.idl
> index 7d8bd5d216..82565c4c10 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -150,6 +150,12 @@ libxl_nic_type =3D Enumeration("nic_type", [
>      (2, "VIF"),
>      ])
>
> +libxl_p9_type =3D Enumeration("p9_type", [
> +    (0, "unknown"),
> +    (1, "qemu"),
> +    (2, "xen_9pfsd"),
> +    ])
> +

FYI, these IDL changes will require golang binding regeneration.
(Maybe we shouldn't have generated code checked in...)

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 13:21:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 13:21:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649223.1013639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rArqR-0003Cr-Vj; Wed, 06 Dec 2023 13:21:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649223.1013639; Wed, 06 Dec 2023 13:21:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rArqR-0003Ck-Sy; Wed, 06 Dec 2023 13:21:43 +0000
Received: by outflank-mailman (input) for mailman id 649223;
 Wed, 06 Dec 2023 13:21:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uigp=HR=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1rArqQ-0003Cc-Or
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 13:21: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 640ac783-943a-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 14:21:40 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-54c1cd8d239so7954807a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 05:21:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 640ac783-943a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701868900; x=1702473700; 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=VNYRcybAn4BGMoOijGW/sCfjDF4lv0wZiF0NA8lsD50=;
        b=fPBEsEwIrz8v/g6Y32sSF6yws2mCHTRURqV1Xd74yxZVT3k+WkqZFkBsaFVNZoDX0p
         crxEWjsgPfsnHzkjDn78NPZdHN9xA5WaIqKm+EIMzTqcTj+ZC/fwMjs4bAhiJKfQOzoP
         F6bcMRI7zKjTNRGA8dAqiRwueBdJX3y/WAphyNw4nYCjb+snlN1/cYGnTLde1Nb4OSgG
         a4SlJlEj5wM7xc4GlQvZ8mMSuuKhgu2pQG+pWPOSRO+CugeW/i3ziOTeb4XBBbDRGagQ
         PjBZhZ/Tp/ztx83MJFmGlBcI95JqnvMY7KLnv8UxkIAJYkA3/CIVf/21iPXkGLS0xQrG
         lsvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701868900; x=1702473700;
        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=VNYRcybAn4BGMoOijGW/sCfjDF4lv0wZiF0NA8lsD50=;
        b=bO/pe7ODtMZ4FEe+++7OBKc4ap8k8+KzA1RhO/2c1R97vvvS3CVFy9IEttbt0/p3uF
         +s04yQ5TU2dd06zIjaYWX4I26MrvS0y5sAmylZdEa4ORTWpBfoBdYppTK29ILQV5NXyk
         8aLwuFBbqwNtl7hwjZnQToZfjn3eJOEUUc0XQsT4VCcRAOJBTgetqBwWwYTIQRs7zr/f
         y/D7AwwmpY4ags78UH88Hvz38xMBUhJor2JW0buA1qoQLFt/HTsglKygDII6Ty70bpXN
         IdTuX67DzdZrA1+3fBcF0BznKgRbRoLW66IculYSwkCBNr7FDB2BD+m2i11PyyzkgB0X
         j7rQ==
X-Gm-Message-State: AOJu0YxnkuB/sG0ZFamrPc6GbioUqmIq2j9Dj7xUFqj2sw0e3cPaxCea
	L8bmijZOlKgfjpte2qDY+EkYjlew0d2Nmh5Gk2s=
X-Google-Smtp-Source: AGHT+IEeZTUkZBV7iat2sVegZoAuopsstNiZNBbUiZ4w/849MjaixDBy5EKaZEAW458e6QTSZwJvaTpvs0hCB+AWwVE=
X-Received: by 2002:a50:d092:0:b0:54b:bb31:3de9 with SMTP id
 v18-20020a50d092000000b0054bbb313de9mr384358edd.32.1701868899692; Wed, 06 Dec
 2023 05:21:39 -0800 (PST)
MIME-Version: 1.0
References: <20231205183226.26636-1-julien@xen.org>
In-Reply-To: <20231205183226.26636-1-julien@xen.org>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Wed, 6 Dec 2023 08:21:27 -0500
Message-ID: <CAKf6xptrqSn4YoyBZA1_zZhQBAkuPrwn-JoxFdjNW=vE3m11Lw@mail.gmail.com>
Subject: Re: [PATCH] Only compile the hypervisor with -Wdeclaration-after-statement
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Julien Grall <jgrall@amazon.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, 
	Jan Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>, 
	Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>, 
	Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 5, 2023 at 4:49=E2=80=AFPM Julien Grall <julien@xen.org> wrote:
>
> From: Julien Grall <jgrall@amazon.com>
>
> Right now, all tools and hypervisor will be complied with the option
> -Wdeclaration-after-statement. While most of the code in the hypervisor
> is controlled by us, for tools we may import external libraries.
>
> The build will fail if one of them are using the construct we are
> trying to prevent. This is the case when building against Python 3.12
> and Yocto:
>
> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2=
-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/=
Python.h:44,
> |                  from xen/lowlevel/xc/xc.c:8:
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-too=
ls/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function =
'Py_SIZE':
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-too=
ls/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error:=
 ISO C90 forbids mixed declarations and code [-Werror=3Ddeclaration-after-s=
tatement]
> |   233 |     PyVarObject *var_ob =3D _PyVarObject_CAST(ob);
> |       |     ^~~~~~~~~~~
> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2=
-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/=
Python.h:53:
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-too=
ls/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:=
 In function '_PyLong_CompactValue':
> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-too=
ls/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:=
121:5: error: ISO C90 forbids mixed declarations and code [-Werror=3Ddeclar=
ation-after-statement]
> |   121 |     Py_ssize_t sign =3D 1 - (op->long_value.lv_tag & _PyLong_SI=
GN_MASK);
> |       |     ^~~~~~~~~~
> | cc1: all warnings being treated as errors
>
> Looking at the tools directory, a fair few directory already add
> -Wno-declaration-after-statement to inhibit the default behavior.
>
> We have always build the hypervisor with the flag, so for now remove
> only the flag for anything but the hypervisor. We can decide at later
> time whether we want to relax.
>
> Also remove the -Wno-declaration-after-statement in some subdirectory
> as the flag is now unnecessary.
>
> Part of the commit message was take from Alexander's first proposal:
>
> Link: https://lore.kernel.org/xen-devel/20231128174729.3880113-1-alex@lin=
utronix.de/
> Reported-by: Alexander Kanavin <alex@linutronix.de>
> Signed-off-by: Julien Grall <jgrall@amazon.com>

Tested-by: Jason Andryuk <jandryuk@gmail.com>

Also needed for compiling on Fedora 39.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 13:23:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 13:23:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649226.1013648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rArsG-0003mF-A1; Wed, 06 Dec 2023 13:23:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649226.1013648; Wed, 06 Dec 2023 13:23:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rArsG-0003m8-7K; Wed, 06 Dec 2023 13:23:36 +0000
Received: by outflank-mailman (input) for mailman id 649226;
 Wed, 06 Dec 2023 13:23: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=nkyO=HR=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rArsE-0003m2-Ob
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 13:23:34 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id a7120300-943a-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 14:23:33 +0100 (CET)
Received: from mg.gitlab.com (73.90.74.34.bc.googleusercontent.com
 [34.74.90.73]) by
 9376fd966c9d with SMTP id 657075d3eb011f309ffd1678 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 06 Dec 2023 13:23:31 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: a7120300-943a-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701869011; x=1701876211; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=rTSBZ8VIRU0xdLkXdbRFhgC1FbXLOBPJN1qCA0Fsfc4=;
 b=UHmlt7ui9VJ/lrj7MYbVM/1QnT2tTRotbGfmJOgHYmZTYAhF1Vm+AQLDBsdMbrtbjdlzLbX+YhI5Hdulgsv5Kuc0hrIgH1zGASnYBEljpNEodCyvkJyBPOVOc4d+5u5E2vqEvXCQN9cncaPIh1BYevF9k0OyKn3q9kuJ0aEyee4=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 06 Dec 2023 13:23:31 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <657075d3b1935_2c949d0874fe@gitlab-sidekiq-catchall-v2-6df8c9f9f-npbbz.mail>
Subject: xen | Failed pipeline for staging-4.18 | 25b7f9ed
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_657075d3a0ea7_2c949d0873f8";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1097109453
X-GitLab-Pipeline-Ref: staging-4.18
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_657075d3a0ea7_2c949d0873f8
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1097109453 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging-4.18 ( https://gitlab.com/xen-project/xen/-/commits/staging-4.18 )

Commit: 25b7f9ed ( https://gitlab.com/xen-project/xen/-/commit/25b7f9ed0f8c7e138a2cecb113bd377c613153d7 )
Commit Message: xen/domain: fix error path in domain_create()

...
Commit Author: Stewart Hildebrand ( https://gitlab.com/stewarthildebrand )
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )


Pipeline #1097109453 ( https://gitlab.com/xen-project/xen/-/pipelines/1097109453 ) triggered by Ganis ( https://gitlab.com/ganis )
had 3 failed jobs.

Job #5691265926 ( https://gitlab.com/xen-project/xen/-/jobs/5691265926/raw )

Stage: analyze
Name: eclair-ARM64
Job #5691266083 ( https://gitlab.com/xen-project/xen/-/jobs/5691266083/raw )

Stage: test
Name: xilinx-smoke-dom0less-arm64-gcc
Job #5691266086 ( https://gitlab.com/xen-project/xen/-/jobs/5691266086/raw )

Stage: test
Name: xilinx-smoke-dom0less-arm64-gcc-gem-passthrough

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging-4.18 | 25b7f9ed</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1097109453 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging-4.18" style=3D"color: #333333; text-decoration: none;">
staging-4.18
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/25b7f9ed0f8c7e138a=
2cecb113bd377c613153d7" style=3D"color: #3777b0; text-decoration: none;">=

25b7f9ed
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/domain: fix error path in domain_create()

...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/86887961f183325c6bc3eca04f6fd4f4?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/stewarthildebrand" style=3D=
"color: #333333; text-decoration: none;">
Stewart Hildebrand
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1097109453">#1097109453</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 3 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
analyze
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691265926" style=3D=
"color: #3777b0; text-decoration: none;">
eclair-ARM64
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691266083" style=3D=
"color: #3777b0; text-decoration: none;">
xilinx-smoke-dom0less-arm64-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5691266086" style=3D=
"color: #3777b0; text-decoration: none;">
xilinx-smoke-dom0less-arm64-gcc-gem-passthrough
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_657075d3a0ea7_2c949d0873f8--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 13:30:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 13:30:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649267.1013659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rArzA-0006SI-4n; Wed, 06 Dec 2023 13:30:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649267.1013659; Wed, 06 Dec 2023 13: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 1rArzA-0006SB-1K; Wed, 06 Dec 2023 13:30:44 +0000
Received: by outflank-mailman (input) for mailman id 649267;
 Wed, 06 Dec 2023 13:30: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=oQZO=HR=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rArz8-0006S3-58
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 13:30:42 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20602.outbound.protection.outlook.com
 [2a01:111:f400:7e8a::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a517db88-943b-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 14:30:39 +0100 (CET)
Received: from DM6PR18CA0022.namprd18.prod.outlook.com (2603:10b6:5:15b::35)
 by PH7PR12MB5653.namprd12.prod.outlook.com (2603:10b6:510:132::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Wed, 6 Dec
 2023 13:30:27 +0000
Received: from CY4PEPF0000E9D5.namprd05.prod.outlook.com
 (2603:10b6:5:15b:cafe::7a) by DM6PR18CA0022.outlook.office365.com
 (2603:10b6:5:15b::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25 via Frontend
 Transport; Wed, 6 Dec 2023 13:30:27 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9D5.mail.protection.outlook.com (10.167.241.76) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.24 via Frontend Transport; Wed, 6 Dec 2023 13:30:26 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 6 Dec
 2023 07:30:25 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Wed, 6 Dec 2023 07:30:23 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a517db88-943b-11ee-98e5-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iZC/QRpzQ5fkI3VGFo/zuO0AgiCyeFJBBfSIwX+q+YU0V/cBAEPYx928YK5tiwCl5XqbXS1Ho0EdrZ6Q98d1ubfLRdtmodpZa6J9EQStBUjhhHtbMLOWsVMArV2rLo4cyCoZf0NL39ooTWddv0qb5k0yHRJiqyWFVWR/F4anUl0fB8f8GW4R5YwHPe3kgIWwplLN7HZghnNlVWy1ht/wUny2xVEJKmMpUDpzrx3d5Qwot6G5l5WROH0l/49px+LPCVunzGi3TNxb16xrFA/lnTu0Sdp6d4D8aAD59cB2TOJr5J8dxemvDlw8ieSHbNnjeF/j1YNTuagvt8hJR34zJQ==
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=wQR77DEwrNmtfoSYhrM/aepD1XnoLXJobuLCJzllS8M=;
 b=ee/bt0V7KGHbLaKhL2rLTmE5aBCJTNHuN5f8G9VgrLL6zqiEPbcb8+V+s19S0Sdu3tk/VaptQt2LB7LCojQXXSk2Dfg+vzbgeqsLtzKeS+TcyCYnCkCFt0ZUZ+aLOYbLhJiGMQQUjzvWcpT17ubDWn83de6BZPRttXZdsbyP2+cvEX/zLCZAY8MzAcm9syUEX9/9H87LXNh6HJk4NzTY0OC8+IlFubNAyGrywMt3+47MR18RpG7awveZCTJrYKyAgL3OgG+5D0zAvW2WJ82O2pgOKpHGZ0INH+tP+Zq3VX117GOw5+dagHlv5kIYpigLrkhi6ul1710fAiDblGvrIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wQR77DEwrNmtfoSYhrM/aepD1XnoLXJobuLCJzllS8M=;
 b=MKNdU8Gbd7XH8t8mEOM9lcXRsd3Z990eQk5+DCrb9vv61PGwjnNH7we9tIQ7HBTiFPJLDIFNiDijRSvLRasRbTHZO0N14rKfMSbj4f1MT8c4sVJ3EfjJVM38swnpS2gOp9jhDVPBjdupMu7iXzKcjfmz+ltzqcwDNSzX23IKic8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <eea5111e-95d1-4b98-beea-94a1f095e5e2@amd.com>
Date: Wed, 6 Dec 2023 14:30:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 03/11] xen/arm: re-define a set of data structures for
 static shared memory region
Content-Language: en-US
To: Penny Zheng <Penny.Zheng@arm.com>, <xen-devel@lists.xenproject.org>
CC: <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-4-Penny.Zheng@arm.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231206090623.1932275-4-Penny.Zheng@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D5:EE_|PH7PR12MB5653:EE_
X-MS-Office365-Filtering-Correlation-Id: c0d048fa-94a3-48e7-40d9-08dbf65f823e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	i75/45Q/48jN66Is2/ng1VVWsDjREiMKHxogLKIlwHkf3pSb9K3W/CmjftPdhB2X/wQvShIRJxtCnmW4ejNbNxTInbOAUpD4dX/vfhKz0xfdEgh61lv4MBwPjlG6NwAlry2UUax+iN1zRWDXWr3BexZ755fyVtw90Qs73plj3YnsGGjCQIa/TJPwWhIFnIQWPKE5m/O5LwyYq8TgS8BdolSMtxqNSRdtU39B0OfTjqOnHKjmzRHt5f4EvGMcyML3aAzZeMHX0LfH4wnt4+foF8aKeST4w1jG/zS3AKIiYO/krrtrHNsl9jxYiuRBMArqzpC6ADVs/wkvKX5Zo9Wl3Y8DeaZr1rNdambyINIDDUcAQIs2uNL5dXy3zh10X9EUEFBA7Xm1GDzEAetz1M6DftOEyMyUcg8Bcy638/CrX5bKB9TjlABuVuSNZ2Go6MhDO6kpeUTIi3m+xzfBBIYRPEqW2FLVfPfDHPaBUZrWmqcHhPZ3RH4UKsTk2XBh8OOdcSaWH1Q+o6k1HPsl9fM/JkuuMgxYGilz6qoVbtlS6w/4J3mPTU6m617hmNO5VDGo3eRKWMxDMhUFL/J6dy9tLWYHGbAQ/Y0R/484OVYF+lAUEekNUUPw368B4aUUhwJV/z2bHgcyTTN32rU5srszmvw+dNVD8dQr7s9IY0MU17kIadL0kyJ3Is/wuQgyoe8MfNPvsj8CIdV4fQGqX7gd4vS5mUBRT/iaRPV5UjkgRIO1Xxu50lDdS9SbHLdJyHY6q267bkhts8mLRcdz3sZOetLepPoq0XONfANqyZvPU0n2lEi3LWmEyUq3ymURuFWw
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(396003)(346002)(136003)(376002)(230922051799003)(1800799012)(186009)(82310400011)(451199024)(64100799003)(36840700001)(46966006)(40470700004)(36860700001)(40480700001)(53546011)(6666004)(478600001)(110136005)(54906003)(16576012)(81166007)(70586007)(70206006)(356005)(316002)(26005)(2616005)(47076005)(83380400001)(4326008)(8676002)(8936002)(31686004)(426003)(336012)(82740400003)(44832011)(5660300002)(2906002)(66899024)(31696002)(40460700003)(41300700001)(86362001)(30864003)(36756003)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2023 13:30:26.9407
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c0d048fa-94a3-48e7-40d9-08dbf65f823e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D5.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5653

Hi Penny,

On 06/12/2023 10:06, Penny Zheng wrote:
> 
> 
> This commit introduces a set of separate data structures to deal with
> static shared memory at different stages.
> 
> In boot-time host device tree parsing, we introduce a new structure
> "struct shm_node" and a new field "shminfo" in bootinfo to describe and
> store parsed shm info.
> 
> In acquire_nr_borrower_domain, it is better to use SHMID as unique identifier
> to iterate "shminfo", other than address and size.
> 
> In the last, a new anonymized structure "shminfo", which is a array of
> compound structure that contains SHMID and a "struct membank membank"
> describing shared memory regions in guest address space, is created in "kinfo"
> when dealing with domain information.

This commit msg describes what the patch does but not why.

> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> ---
> v1 -> v2:
> - As the original "struct shm_membank" was making reserving memory more
> complex and actually memory information could be still got from host Device\
> Tree when dealing with domain construction, we introduce a new simple structure
> "struct shm_node" in bootinfo to only store SHMID and "nr_borrowers"
> - Further restrict the scope of the local variable
> "struct meminfo *mem = &bootinfo.reserved_mem"
> - Introduce a new local global data "shm_data" in bootfdt.c. In which, reserved
> memory bank is recorded together with the shm node, to assist doing shm node
> verification.
> - Define a set of local variables that point to
> "shm_data.shm_nodes[i].membank->start", etc, to make the code more readable.
> - Use SHMID to iterate "shminfo" to find requested shm node, as we no
> longer store host memory bank info in shm node.
> - A new anonymized structure, which is a array of compound structure that
> contains SHMID and a "struct membank membank", describing shared memory region
> in guest, is introduced in "kinfo".
> ---
> v2 -> v3:
> - rebase and no changes
> ---
> v3 -> v4:
> rebase and no change
> ---
> v4 -> v5:
> - With all shm-related functions classified into static-shmem.c, there
> is no need to import local global data "shm_data".
> ---
>  xen/arch/arm/dom0less-build.c           |   3 +-
>  xen/arch/arm/domain_build.c             |   3 +-
>  xen/arch/arm/include/asm/kernel.h       |   9 +-
>  xen/arch/arm/include/asm/setup.h        |  24 +++++-
>  xen/arch/arm/include/asm/static-shmem.h |   4 +-
>  xen/arch/arm/static-shmem.c             | 104 ++++++++++++++----------
>  6 files changed, 92 insertions(+), 55 deletions(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index fb63ec6fd1..ac096fa3fa 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -645,8 +645,7 @@ static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
>      if ( ret )
>          goto err;
> 
> -    ret = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells,
> -                                &kinfo->shm_mem);
> +    ret = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells, kinfo);
>      if ( ret )
>          goto err;
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 613b2885ce..64ae944431 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -1767,8 +1767,7 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
>                  return res;
>          }
> 
> -        res = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells,
> -                                    &kinfo->shm_mem);
> +        res = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells, kinfo);
>          if ( res )
>              return res;
>      }
> diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/kernel.h
> index 0a23e86c2d..db3d8232fa 100644
> --- a/xen/arch/arm/include/asm/kernel.h
> +++ b/xen/arch/arm/include/asm/kernel.h
> @@ -39,7 +39,14 @@ struct kernel_info {
>      void *fdt; /* flat device tree */
>      paddr_t unassigned_mem; /* RAM not (yet) assigned to a bank */
>      struct meminfo mem;
> -    struct meminfo shm_mem;
> +    /* Static shared memory banks */
> +    struct {
> +        unsigned int nr_banks;
> +        struct {
> +            char shm_id[MAX_SHM_ID_LENGTH];
> +            struct membank membank;
> +        } bank[NR_MEM_BANKS];
> +    } shminfo;
AFAICT, the only user of this structure is static-shmem.c so why not protecting it with #ifdef?

> 
>      /* kernel entry point */
>      paddr_t entry;
> diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
> index d15a88d2e0..3a2b35ea46 100644
> --- a/xen/arch/arm/include/asm/setup.h
> +++ b/xen/arch/arm/include/asm/setup.h
> @@ -50,10 +50,6 @@ struct membank {
>      paddr_t start;
>      paddr_t size;
>      enum membank_type type;
> -#ifdef CONFIG_STATIC_SHM
> -    char shm_id[MAX_SHM_ID_LENGTH];
> -    unsigned int nr_shm_borrowers;
> -#endif
>  };
> 
>  struct meminfo {
> @@ -95,6 +91,17 @@ struct bootcmdlines {
>      struct bootcmdline cmdline[MAX_MODULES];
>  };
> 
> +#ifdef CONFIG_STATIC_SHM
> +/*
> + * struct shm_node represents a static shared memory node shared between
> + * multiple domains, identified by the unique SHMID("xen,shm-id").
> + */
> +struct shm_node {
> +    char shm_id[MAX_SHM_ID_LENGTH];
> +    unsigned int nr_shm_borrowers;
> +};
> +#endif
> +
>  struct bootinfo {
>      struct meminfo mem;
>      /* The reserved regions are only used when booting using Device-Tree */
> @@ -105,6 +112,15 @@ struct bootinfo {
>      struct meminfo acpi;
>  #endif
>      bool static_heap;
> +#ifdef CONFIG_STATIC_SHM
> +    struct {
> +        unsigned int nr_nodes;
> +        struct {
> +            struct shm_node node;
> +            const struct membank *membank;
> +        } shm_nodes[NR_MEM_BANKS];
> +    } shminfo;
I find it a bit confusing to have 2 structures named exactly the same (here and in kinfo).
Something like shminfo_nodes would be better.

Also, correct me if I'm wrong. The reason for this structure is to avoid keeping membank growing?

> +#endif
>  };
> 
>  struct map_range_data
> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
> index 1536ff18b8..66a3f4c146 100644
> --- a/xen/arch/arm/include/asm/static-shmem.h
> +++ b/xen/arch/arm/include/asm/static-shmem.h
> @@ -8,7 +8,7 @@
>  #ifdef CONFIG_STATIC_SHM
> 
>  int make_resv_memory_node(const struct domain *d, void *fdt, int addrcells,
> -                          int sizecells, const struct meminfo *mem);
> +                          int sizecells, const struct kernel_info *kinfo);
> 
>  int process_shm(struct domain *d, struct kernel_info *kinfo,
>                  const struct dt_device_node *node);
> @@ -28,7 +28,7 @@ int process_shm_node(const void *fdt, int node, uint32_t address_cells,
> 
>  static inline int make_resv_memory_node(const struct domain *d, void *fdt,
>                                          int addrcells, int sizecells,
> -                                        const struct meminfo *mem)
> +                                        const struct kernel_info *kinfo)
>  {
>      return 0;
>  }
> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
> index 1a1a9386e4..6a3d8a54bd 100644
> --- a/xen/arch/arm/static-shmem.c
> +++ b/xen/arch/arm/static-shmem.c
> @@ -6,28 +6,25 @@
>  #include <asm/domain_build.h>
>  #include <asm/static-shmem.h>
> 
> -static int __init acquire_nr_borrower_domain(struct domain *d,
> -                                             paddr_t pbase, paddr_t psize,
> +static int __init acquire_nr_borrower_domain(const char *shm_id,
>                                               unsigned long *nr_borrowers)
Why is nr_borrowers unsigned long but nr_shm_borrowers is unsigned int?

>  {
> -    unsigned int bank;
> +    struct shm_node *shm_node;
Can be const

> +    unsigned int i;
> 
> -    /* Iterate reserved memory to find requested shm bank. */
> -    for ( bank = 0 ; bank < bootinfo.reserved_mem.nr_banks; bank++ )
> +    /* Iterate to find requested static shared memory node. */
> +    for ( i = 0; i < bootinfo.shminfo.nr_nodes; i++ )
>      {
> -        paddr_t bank_start = bootinfo.reserved_mem.bank[bank].start;
> -        paddr_t bank_size = bootinfo.reserved_mem.bank[bank].size;
> +        shm_node = &bootinfo.shminfo.shm_nodes[i].node;
> 
> -        if ( (pbase == bank_start) && (psize == bank_size) )
> -            break;
> +        if ( strcmp(shm_id, shm_node->shm_id) == 0 )
> +        {
> +            *nr_borrowers = shm_node->nr_shm_borrowers;
> +            return 0;
> +        }
>      }
> 
> -    if ( bank == bootinfo.reserved_mem.nr_banks )
> -        return -ENOENT;
> -
> -    *nr_borrowers = bootinfo.reserved_mem.bank[bank].nr_shm_borrowers;
> -
> -    return 0;
> +    return -ENOENT;
>  }
> 
>  /*
> @@ -91,7 +88,7 @@ static mfn_t __init acquire_shared_memory_bank(struct domain *d,
> 
>  static int __init assign_shared_memory(struct domain *d,
>                                         paddr_t pbase, paddr_t psize,
> -                                       paddr_t gbase)
> +                                       paddr_t gbase, const char *shm_id)
>  {
>      mfn_t smfn;
>      int ret = 0;
> @@ -125,7 +122,7 @@ static int __init assign_shared_memory(struct domain *d,
>       * Get the right amount of references per page, which is the number of
>       * borrower domains.
>       */
> -    ret = acquire_nr_borrower_domain(d, pbase, psize, &nr_borrowers);
> +    ret = acquire_nr_borrower_domain(shm_id, &nr_borrowers);
>      if ( ret )
>          return ret;
> 
> @@ -161,13 +158,16 @@ static int __init append_shm_bank_to_domain(struct kernel_info *kinfo,
>                                              paddr_t start, paddr_t size,
>                                              const char *shm_id)
>  {
> -    if ( kinfo->shm_mem.nr_banks >= NR_MEM_BANKS )
> +    unsigned int nr_banks = kinfo->shminfo.nr_banks;
> +    struct membank *membank = &kinfo->shminfo.bank[nr_banks].membank;
> +
> +    if ( nr_banks >= NR_MEM_BANKS )
>          return -ENOMEM;
> 
> -    kinfo->shm_mem.bank[kinfo->shm_mem.nr_banks].start = start;
> -    kinfo->shm_mem.bank[kinfo->shm_mem.nr_banks].size = size;
> -    safe_strcpy(kinfo->shm_mem.bank[kinfo->shm_mem.nr_banks].shm_id, shm_id);
> -    kinfo->shm_mem.nr_banks++;
> +    membank->start = start;
> +    membank->size = size;
> +    safe_strcpy(kinfo->shminfo.bank[nr_banks].shm_id, shm_id);
> +    kinfo->shminfo.nr_banks++;
> 
>      return 0;
>  }
> @@ -251,7 +251,7 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
>               * specified, so they should be assigned to dom_io.
>               */
>              ret = assign_shared_memory(owner_dom_io ? dom_io : d,
> -                                       pbase, psize, gbase);
> +                                       pbase, psize, gbase, shm_id);
>              if ( ret )
>                  return ret;
>          }
> @@ -279,12 +279,12 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
> 
>  static int __init make_shm_memory_node(const struct domain *d, void *fdt,
>                                         int addrcells, int sizecells,
> -                                       const struct meminfo *mem)
> +                                       const struct kernel_info *kinfo)
>  {
>      unsigned int i = 0;
>      int res = 0;
> 
> -    if ( mem->nr_banks == 0 )
> +    if ( kinfo->shminfo.nr_banks == 0 )
>          return -ENOENT;
> 
>      /*
> @@ -294,17 +294,17 @@ static int __init make_shm_memory_node(const struct domain *d, void *fdt,
>       */
>      dt_dprintk("Create xen-shmem node\n");
> 
> -    for ( ; i < mem->nr_banks; i++ )
> +    for ( ; i < kinfo->shminfo.nr_banks; i++ )
>      {
> -        uint64_t start = mem->bank[i].start;
> -        uint64_t size = mem->bank[i].size;
> +        uint64_t start = kinfo->shminfo.bank[i].membank.start;
> +        uint64_t size = kinfo->shminfo.bank[i].membank.size;
>          const char compat[] = "xen,shared-memory-v1";
>          /* Worst case addrcells + sizecells */
>          __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
>          __be32 *cells;
>          unsigned int len = (addrcells + sizecells) * sizeof(__be32);
> 
> -        res = domain_fdt_begin_node(fdt, "xen-shmem", mem->bank[i].start);
> +        res = domain_fdt_begin_node(fdt, "xen-shmem", start);
>          if ( res )
>              return res;
> 
> @@ -322,7 +322,7 @@ static int __init make_shm_memory_node(const struct domain *d, void *fdt,
>          dt_dprintk("Shared memory bank %u: %#"PRIx64"->%#"PRIx64"\n",
>                     i, start, start + size);
> 
> -        res = fdt_property_string(fdt, "xen,id", mem->bank[i].shm_id);
> +        res = fdt_property_string(fdt, "xen,id", kinfo->shminfo.bank[i].shm_id);
>          if ( res )
>              return res;
> 
> @@ -350,7 +350,6 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>      const struct fdt_property *prop, *prop_id, *prop_role;
>      const __be32 *cell;
>      paddr_t paddr, gaddr, size, end;
> -    struct meminfo *mem = &bootinfo.reserved_mem;
>      unsigned int i;
>      int len;
>      bool owner = false;
> @@ -429,17 +428,21 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>          return -EINVAL;
>      }
> 
> -    for ( i = 0; i < mem->nr_banks; i++ )
> +    for ( i = 0; i < bootinfo.shminfo.nr_nodes; i++ )
>      {
> +        paddr_t bank_start = bootinfo.shminfo.shm_nodes[i].membank->start;
> +        paddr_t bank_size = bootinfo.shminfo.shm_nodes[i].membank->size;
> +        const char *bank_id = bootinfo.shminfo.shm_nodes[i].node.shm_id;
> +
>          /*
>           * Meet the following check:
>           * 1) The shm ID matches and the region exactly match
>           * 2) The shm ID doesn't match and the region doesn't overlap
>           * with an existing one
>           */
> -        if ( paddr == mem->bank[i].start && size == mem->bank[i].size )
> +        if ( paddr == bank_start && size == bank_size )
>          {
> -            if ( strncmp(shm_id, mem->bank[i].shm_id, MAX_SHM_ID_LENGTH) == 0 )
> +            if ( strncmp(shm_id, bank_id, MAX_SHM_ID_LENGTH) == 0 )
In following else if you still use mem->bank[i].shm_id which results in a build failure.
You should use bank_id there as well.

~Michal


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 13:31:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 13:31:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649268.1013668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rArzZ-0006o6-C2; Wed, 06 Dec 2023 13:31:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649268.1013668; Wed, 06 Dec 2023 13: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 1rArzZ-0006nz-9L; Wed, 06 Dec 2023 13:31:09 +0000
Received: by outflank-mailman (input) for mailman id 649268;
 Wed, 06 Dec 2023 13:31: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=nkyO=HR=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rArzY-0006no-Ay
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 13:31:08 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id b2bdc1c9-943b-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 14:31:02 +0100 (CET)
Received: from mg.gitlab.com (26.226.74.34.bc.googleusercontent.com
 [34.74.226.26]) by
 e2ce9ee6b5b1 with SMTP id 65707794745d3f0d39ea352a (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 06 Dec 2023 13:31:00 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: b2bdc1c9-943b-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701869461; x=1701876661; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=TnhKgl+XcDnp6UJTv414xkHPWAhGfRV5RbQadJ7ntVU=;
 b=SQdqp5gF9QFyKcuJYe23LpHsIbNH0ZFD5ZDkJZZDORhKjX+fK8GwpZnGBAdUIg8h8Yfb+e69k/Xce5OAwkLMDArydtwqVyzraysBDLE0WsUNhqRgU9+YrjG3dfiweinFngVEBMZL/dLsfQ1p/Zy/swjslTreGmoKJ2H1ojHPJiY=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 06 Dec 2023 13:30:59 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65707793ac942_2c94d5480465@gitlab-sidekiq-catchall-v2-6df8c9f9f-l94n7.mail>
Subject: xen | Successful pipeline for staging-4.17 | 6eb98dda
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65707793a2417_2c94d548034a";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1097122838
X-GitLab-Pipeline-Ref: staging-4.17
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65707793a2417_2c94d548034a
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1097122838 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging-4.17 ( https://gitlab.com/xen-project/xen/-/commits/staging-4.17 )

Commit: 6eb98dda ( https://gitlab.com/xen-project/xen/-/commit/6eb98dda5c91e68555684c57a2c9bd119ff082c1 )
Commit Message: xen/domain: fix error path in domain_create()

...
Commit Author: Stewart Hildebrand ( https://gitlab.com/stewarthildebrand )
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1097122838 ( https://gitlab.com/xen-project/xen/-/pipelines/1097122838 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 84 jobs in 2 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging-4.17 | 6eb98dda</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1097122838 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging-4.17" style=3D"color: #333333; text-decoration: none;">
staging-4.17
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/6eb98dda5c91e68555=
684c57a2c9bd119ff082c1" style=3D"color: #3777b0; text-decoration: none;">=
6eb98dda</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/domain: fix error path in domain_create()

...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/86887961f183325c6bc3eca04f6fd4f4?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/stewarthildebrand" style=3D=
"color: #333333; text-decoration: none;">
Stewart Hildebrand
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/109712=
2838" style=3D"color: #3777b0; text-decoration: none;">#1097122838</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 84 jobs in 2 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65707793a2417_2c94d548034a--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 13:43:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 13:43:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649313.1013683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAsBD-0001MI-L4; Wed, 06 Dec 2023 13:43:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649313.1013683; Wed, 06 Dec 2023 13:43:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAsBD-0001MB-Hy; Wed, 06 Dec 2023 13:43:11 +0000
Received: by outflank-mailman (input) for mailman id 649313;
 Wed, 06 Dec 2023 13:43:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAsBB-0001KH-Up
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 13:43:09 +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 61fdeb38-943d-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 14:43:05 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 E162C1F8D7;
 Wed,  6 Dec 2023 13:43:03 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id A5A80133DD;
 Wed,  6 Dec 2023 13:43:03 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id CAUbJ2d6cGW2AwAAn2gu4w
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 13:43: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: 61fdeb38-943d-11ee-9b0f-b553b5be7939
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] Mini-OS: export main_thread
Date: Wed,  6 Dec 2023 14:43:01 +0100
Message-Id: <20231206134301.6842-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.76 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 RCPT_COUNT_FIVE(0.00)[6];
	 RCVD_COUNT_THREE(0.00)[3];
	 BAYES_SPAM(0.93)[80.87%];
	 MX_GOOD(-0.01)[];
	 NEURAL_HAM_SHORT(-0.17)[-0.847];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 15.76
X-Rspamd-Queue-Id: E162C1F8D7
X-Spam-Flag: YES
X-Spam: Yes

The main_thread variable needs to be exported for applications.

Fixes: 33411a11f848 ("Mini-OS: hide all symbols not exported via EXPORT_SYMBOLS()")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 sched.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sched.c b/sched.c
index e162cb60..b1633be9 100644
--- a/sched.c
+++ b/sched.c
@@ -62,6 +62,7 @@ static struct thread_list thread_list = MINIOS_TAILQ_HEAD_INITIALIZER(thread_lis
 static int threads_started;
 
 struct thread *main_thread;
+EXPORT_SYMBOL(main_thread);
 
 void schedule(void)
 {
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 14:12:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 14:12:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649320.1013693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAscw-0007Nj-Lq; Wed, 06 Dec 2023 14:11:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649320.1013693; Wed, 06 Dec 2023 14:11:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAscw-0007Nc-Ha; Wed, 06 Dec 2023 14:11:50 +0000
Received: by outflank-mailman (input) for mailman id 649320;
 Wed, 06 Dec 2023 14:11: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=rHB2=HR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAscv-0007ND-D4
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 14:11:49 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6496c083-9441-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 15:11:47 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40a4848c6e1so75889535e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 06:11:47 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 c1-20020adfa301000000b003333a216682sm11793864wrb.97.2023.12.06.06.11.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 06:11:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6496c083-9441-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701871907; x=1702476707; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=/J/0AouVBy2ul+ViGYcNfPUia+BakLB5GkfP7lR2gNQ=;
        b=R+zl6g3KX2w7ErJdtsUjQqBN0m6GgeZISKelBZRxI/V73w79Htnh6c//pTYa/+jnV8
         Ph+k36JZw+UUvox0N+XwVlftY5So87DMJaYpmb+YS7fZHnX5nPF2OoJniManj3h3nlFZ
         nLlNzaFE+ru7FVjHBYgi2eWLOYZcZWa7DlBG4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701871907; x=1702476707;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=/J/0AouVBy2ul+ViGYcNfPUia+BakLB5GkfP7lR2gNQ=;
        b=P/zFjbo/axd1rxHtodWBTrZQsx8EgIMoAZTVsTDEJ0JPx3pFqVGahVq4Ah8E9Qok7G
         IVzQBc6UkpY8s/cmDR2vzLFqJwYfKJmWWicGDQMsAkiy012ReWcHHbpHODTgFD2iefMw
         VSWxGy6Gjj5GqUtjmo94bHE6lyXKk5MrhLH1IPUljgBYRnNVnKVt16u2FCS2uus0HEjW
         V4g6tRCMgDJwtEb6H/pF+NJraRbd7mAp2g7VpJGHGLD/D8QX4wSIe5xf5KxTnykPZ7IO
         W4pT3j8wBtGkdsJhwr3gtsISlUo2JHTAnO/yqRLpbD4OrpwaXG4C5JrkeLByB8DYlaIz
         zFmQ==
X-Gm-Message-State: AOJu0YwteQjQyKt50I669yxqS5zvctdMuHLlsFc1rJH5snGCKiGl2h6f
	Bea/rOp1odHljErgsVHx3n9WAw==
X-Google-Smtp-Source: AGHT+IFNMx+Klo1CEPaJ26/dBlw3sjXlNL46V08+iyKrIoZzyUVgJsGVXWSyD7pSk5JuLC7WZwHGiw==
X-Received: by 2002:a05:600c:5253:b0:40b:5e4a:4081 with SMTP id fc19-20020a05600c525300b0040b5e4a4081mr623446wmb.161.1701871907211;
        Wed, 06 Dec 2023 06:11:47 -0800 (PST)
Message-ID: <4e41b658-f49e-424c-8a86-08c8ab8e384d@citrix.com>
Date: Wed, 6 Dec 2023 14:11:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Content-Language: en-GB
To: "Li, Xin3" <xin3.li@intel.com>,
 "linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
 "linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
 "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "tglx@linutronix.de" <tglx@linutronix.de>,
 "mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
 "dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
 "x86@kernel.org" <x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>,
 "Lutomirski, Andy" <luto@kernel.org>,
 "pbonzini@redhat.com" <pbonzini@redhat.com>,
 "seanjc@google.com" <seanjc@google.com>,
 "peterz@infradead.org" <peterz@infradead.org>,
 "Gross, Jurgen" <jgross@suse.com>, "Shankar, Ravi V"
 <ravi.v.shankar@intel.com>, "mhiramat@kernel.org" <mhiramat@kernel.org>,
 "jiangshanlai@gmail.com" <jiangshanlai@gmail.com>,
 "nik.borisov@suse.com" <nik.borisov@suse.com>,
 "Kang, Shan" <shan.kang@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
 <20231205105030.8698-27-xin3.li@intel.com>
 <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com>
 <SA1PR11MB67343544B0CEB6C82002790DA884A@SA1PR11MB6734.namprd11.prod.outlook.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <SA1PR11MB67343544B0CEB6C82002790DA884A@SA1PR11MB6734.namprd11.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/12/2023 7:45 am, Li, Xin3 wrote:
>>> +	case X86_TRAP_OF:
>>> +		exc_overflow(regs);
>>> +		return;
>>> +
>>> +	/* INT3 */
>>> +	case X86_TRAP_BP:
>>> +		exc_int3(regs);
>>> +		return;
>> ... neither OF nor BP will ever enter fred_intx() because they're type SWEXC not
>> SWINT.
> Per FRED spec 5.0, section 7.3 Software Interrupts and Related Instructions:
> INT n (opcode CD followed by an immediate byte): There are 256 such
> software interrupt instructions, one for each value n of the immediate
> byte (0â€“255).
>
> And appendix B Event Stack Levels:
> If the event is an execution of INT n (opcode CD n for 8-bit value n),
> the event stack level is 0. The event type is 4 (software interrupt)
> and the vector is n.
>
> So int $0x4 and int $0x3 (use asm(".byte 0xCD, 0x03")) get here.
>
> But into (0xCE) and int3 (0xCC) do use event type SWEXC. 
>
> BTW, into is NOT allowed in 64-bit mode but "int $0x4" is allowed.

There is certainly fun to be had with CD 03 and CD 04 byte patterns, but
if you meant to mean those here, then the comments are wrong.

Vectors 3 and 4 are installed with DPL3 because that is necessary to
make CC and CE function in userspace.Â  It also suggests that the SWINT
vs SWEXC distinction was retrofitted to architecture after the 286,
because exceptions don't check DPL and ICEBP delivers #DB from userspace
even when Vector 1 has a DPL of 0.

While CC is for most cases indistinguishable from CD 03, CE behaves
entirely differently to CD 04.Â  CD 04 doesn't #UD in 64bit mode, and
will trigger exc_overflow() irrespective of the state of EFLAGS.OF.


The SDM goes out of it's way to say not to use the CD 03 byte pattern
(and it does take effort to emit this byte pattern - e.g. GAS will
silently translate "int $3" to "int3"), and there's no plausible way
software is using CD 04 in place of CE.

So why do we care about containing to make mistakes of the IDT era work
in a FRED world?

Is there anything (other than perhaps the selftests) which would even
notice?

>>> +		instrumentation_end();
>>> +		irqentry_exit(regs, state);
>>> +	} else {
>>> +		common_interrupt(regs, vector);
>>> +	}
>>> +}
>>> +
>>> +static noinstr void fred_exception(struct pt_regs *regs, unsigned
>>> +long error_code) {
>>> +	/* Optimize for #PF. That's the only exception which matters performance
>> wise */
>>> +	if (likely(regs->fred_ss.vector == X86_TRAP_PF)) {
>>> +		exc_page_fault(regs, error_code);
>>> +		return;
>>> +	}
>>> +
>>> +	switch (regs->fred_ss.vector) {
>>> +	case X86_TRAP_DE: return exc_divide_error(regs);
>>> +	case X86_TRAP_DB: return fred_exc_debug(regs);
>>> +	case X86_TRAP_BP: return exc_int3(regs);
>>> +	case X86_TRAP_OF: return exc_overflow(regs);
>> Depending on what you want to do with BP/OF vs fred_intx(), this may need
>> adjusting.
>>
>> If you are cross-checking type and vector, then these should be rejected for not
>> being of type HWEXC.
> You're right, the event type needs to be SWEXC for into and int3.
>
> However, would it be overkilling?  Assuming hardware and VMM are sane.

You either care about cross checking, or not.Â  Right now, this patch is
a mix of the two approaches.

In my opinion, cross-checking is the better approach, because it means
that violations of the assumptions get noticed more quickly, and
hopefully by whomever is working on the new feature which alters the
assumptions.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 14:40:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 14:40:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649323.1013703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAt4R-0004uI-K3; Wed, 06 Dec 2023 14:40:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649323.1013703; Wed, 06 Dec 2023 14:40: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 1rAt4R-0004uB-Gx; Wed, 06 Dec 2023 14:40:15 +0000
Received: by outflank-mailman (input) for mailman id 649323;
 Wed, 06 Dec 2023 14:40: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAt4Q-0004u5-BH
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 14:40:14 +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 5cec83b2-9445-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 15:40:13 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 D04A021E32;
 Wed,  6 Dec 2023 14:40:11 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id A7B6113403;
 Wed,  6 Dec 2023 14:40:11 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id u2EhJ8uHcGUuFAAAn2gu4w
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 14: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>
X-Inumbo-ID: 5cec83b2-9445-11ee-98e5-6d05b1d4d9a1
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [PATCH] tools/libs/evtchn: drop assert()s in stubdom
Date: Wed,  6 Dec 2023 15:40:09 +0100
Message-Id: <20231206144009.29154-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: D04A021E32
X-Spam-Flag: YES
X-Spam: Yes

In tools/libs/evtchn/minios.c there are assert()s for the current
thread being the main thread when binding an event channel.

As Mini-OS is supporting multiple threads, there is no real reason
why the binding shouldn't be allowed to happen in any other thread.

Just drop the assert()s.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/libs/evtchn/minios.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/tools/libs/evtchn/minios.c b/tools/libs/evtchn/minios.c
index 28743cb055..e33ddec7e7 100644
--- a/tools/libs/evtchn/minios.c
+++ b/tools/libs/evtchn/minios.c
@@ -195,7 +195,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle *xce,
     int ret;
     evtchn_port_t port;
 
-    assert(get_current() == main_thread);
     port_info = port_alloc(xce);
     if ( port_info == NULL )
         return -1;
@@ -226,7 +225,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle *xce,
     evtchn_port_t local_port;
     int ret;
 
-    assert(get_current() == main_thread);
     port_info = port_alloc(xce);
     if ( port_info == NULL )
         return -1;
@@ -279,7 +277,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,
     struct port_info *port_info;
     evtchn_port_t port;
 
-    assert(get_current() == main_thread);
     port_info = port_alloc(xce);
     if ( port_info == NULL )
         return -1;
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 14:46:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 14:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649327.1013713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAtAn-000628-8H; Wed, 06 Dec 2023 14:46:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649327.1013713; Wed, 06 Dec 2023 14:46:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAtAn-00061v-5W; Wed, 06 Dec 2023 14:46:49 +0000
Received: by outflank-mailman (input) for mailman id 649327;
 Wed, 06 Dec 2023 14:46:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OP1m=HR=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1rAtAm-00061p-6n
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 14:46:48 +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 47d7eaa7-9446-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 15:46:47 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c0f3a7717so30038555e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 06:46:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47d7eaa7-9446-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701874006; x=1702478806; 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=Rthd2mvd+O3Ss6Abxt7nn4UQmcRGMNZLTtFOesTF8yc=;
        b=Vip/xKnGRSQOUv4GBw9CQnC6pYFf+s+RgPBQs9Lcco2DF/NGA65SlE2WXKKTSm539r
         kpCJ951KKjV8WP+21kfhLo/lkHH0gVXJx5r7HtKhVlx0dflqzpu2Ut0tljvRX2q6ZD62
         1R12GyUfCc1IMlomI61O1QrVbZZvVssIkPVP8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701874006; x=1702478806;
        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=Rthd2mvd+O3Ss6Abxt7nn4UQmcRGMNZLTtFOesTF8yc=;
        b=nAw8PePrFuHGlU3HSZy3Olwq7/aWOY49U4tYZAD2JfT8v0wyDW7kflln72FFHdgJJb
         SHHA+GVp46xOlt/2zDgO2dfd1yT/49S4l98svJJ2BoPsXoK4JbCWGI1WsThEqQ8goAQ+
         3s2uN5pjRFDVT0uJjWmMlEvp9RFKIpXmNx92AZ+QH/ceGOm0a9YhZy7SJgD24qfKmvu4
         cRzF0lIAWqmI1nNhS8Z+rxLzJ6NmhBk1bIVT1Mlym6GBaIgPEeiRTBWil3jEArXCIQ/D
         /V46bUJtPW1XgzjW8oKsrhJAPR7mB+sMU+IXTUljJwyPIXd2A2wsCKFQt+DJWTuKMg+U
         8znw==
X-Gm-Message-State: AOJu0YwEV/TeIfN+wuy0m0HHIeL5YNqvf4C/2z9ZhQ+aC+aJDqQ99IWQ
	FszuY6J2CkXGynp6Gzbl9e/0DhTbVzuKsnVkwJ2Y
X-Google-Smtp-Source: AGHT+IEIqSvEhlkBNPVzAhRsl9mW1+0dqTQRWZa3p9cQD7FwNoGGJI39/6Fi9GfN6FItDjA1MEhLBE/ZCNZmRplMETE=
X-Received: by 2002:a7b:cb91:0:b0:40b:5e59:f715 with SMTP id
 m17-20020a7bcb91000000b0040b5e59f715mr284836wmi.135.1701874006561; Wed, 06
 Dec 2023 06:46:46 -0800 (PST)
MIME-Version: 1.0
References: <20231128092152.35039-1-roger.pau@citrix.com>
In-Reply-To: <20231128092152.35039-1-roger.pau@citrix.com>
From: Ross Lagerwall <ross.lagerwall@cloud.com>
Date: Wed, 6 Dec 2023 14:46:34 +0000
Message-ID: <CAG7k0EqmuRV5iQ-uefQi2fCdMzF1UaNdiiT7gKitgH5Ed+TrWg@mail.gmail.com>
Subject: Re: [PATCH v2 0/3] livepatch-build-tools: fixes for non GNU tools and alignment
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, 
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 28, 2023 at 9:22=E2=80=AFAM Roger Pau Monne <roger.pau@citrix.c=
om> wrote:
>
> Hello,
>
> The series contains two fixes for using the tools on non GNU
> environments, plus one extra fix to account for section alignment when
> calculating old function size.
>
> Thanks, Roger.
>
> Roger Pau Monne (3):
>   livepatch-build-tools: do not use readlink -m option
>   livepatch-build-tools: remove usage of gawk
>   livepatch-build-tools: account for section alignment when calculating
>     function size
>
>  common.h             |  2 ++
>  create-diff-object.c |  5 +++++
>  livepatch-build      | 38 +++++++++++++++++++++-----------------
>  3 files changed, 28 insertions(+), 17 deletions(-)
>
>
> base-commit: e588b7914e7afa3abb64b15a32fc2fdb57ded341
> --
> 2.43.0
>

Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>

... and applied, thanks.


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 14:59:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 14:59:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649331.1013723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAtNH-0008Ll-C6; Wed, 06 Dec 2023 14:59:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649331.1013723; Wed, 06 Dec 2023 14:59:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAtNH-0008Le-9N; Wed, 06 Dec 2023 14:59:43 +0000
Received: by outflank-mailman (input) for mailman id 649331;
 Wed, 06 Dec 2023 14:59:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d2jr=HR=infradead.org=willy@srs-se1.protection.inumbo.net>)
 id 1rAtND-0008LY-Uf
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 14:59:41 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13686739-9448-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 15:59:38 +0100 (CET)
Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red
 Hat Linux)) id 1rAtMN-002zkJ-Nc; Wed, 06 Dec 2023 14:58: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: 13686739-9448-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; 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=s+7kV2NOaPEBmhFkJpDv/pC5Llv4VXEE9i8fdKbvmjw=; b=ojDk7+bvhmkVaj86d9uPvOhQaz
	kbAJJlz3eiFA7yxHtxf02BCaqsNM5pS9C8k5lXRoPly3/N/e0u5QADIgtZKFOwGOJtwsI5ZzSsYPS
	PKyktYqelsFB3E+G8W+4/yQSFmaQ2jHSWEigX57CwcwQszQ0bDoxOOqdU2sc0+ZoE3Ff1wwcpqslV
	VWLgXJnu2MrDZGBo0sVLqXRdAvGI+d1WdlsXWEVkM0crARzZz5+nD3AR2Avd8/g6eRde0hkW/FoXX
	agEz57imZpOlmdW73T5pzua0TfxBEP/xRZ/WXwPlD7/tpJRN5cqF7OvXJrtIdGRYW6omWvwYwBXvA
	OJr6nVaw==;
Date: Wed, 6 Dec 2023 14:58:47 +0000
From: Matthew Wilcox <willy@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org,
	chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
	agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
	akpm@linux-foundation.org, hare@suse.de, p.raghav@samsung.com,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org, yukuai3@huawei.com,
	yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH -next RFC 01/14] block: add some bdev apis
Message-ID: <ZXCMJ9skAAgPm4z3@casper.infradead.org>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-2-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205123728.1866699-2-yukuai1@huaweicloud.com>

On Tue, Dec 05, 2023 at 08:37:15PM +0800, Yu Kuai wrote:
> +struct folio *bdev_read_folio(struct block_device *bdev, pgoff_t index)
> +{
> +	return read_mapping_folio(bdev->bd_inode->i_mapping, index, NULL);
> +}
> +EXPORT_SYMBOL_GPL(bdev_read_folio);

I'm coming to the opinion that 'index' is the wrong parameter here.
Looking through all the callers of bdev_read_folio() in this patchset,
they all have a position in bytes, and they all convert it to
index for this call.  The API should probably be:

struct folio *bdev_read_folio(struct block_device *bdev, loff_t pos)
{
	return read_mapping_folio(bdev->bd_inode->i_mapping,
			pos / PAGE_SIZE, NULL);
}

... and at some point, we'll get round to converting read_mapping_folio()
to take its argument in loff_t.

Similiarly for these two APIs:

> +struct folio *bdev_read_folio_gfp(struct block_device *bdev, pgoff_t index,
> +				  gfp_t gfp)
> +struct folio *bdev_get_folio(struct block_device *bdev, pgoff_t index)

> +struct folio *bdev_find_or_create_folio(struct block_device *bdev,
> +					pgoff_t index, gfp_t gfp)
> +{
> +	return __filemap_get_folio(bdev->bd_inode->i_mapping, index,
> +				   FGP_LOCK | FGP_ACCESSED | FGP_CREAT, gfp);
> +}
> +EXPORT_SYMBOL_GPL(bdev_find_or_create_folio);

This one probably shouldn't exist.  I've been converting callers of
find_or_create_page() to call __filemap_get_folio; I suspect we
should expose a __bdev_get_folio and have the callers use the FGP
arguments directly, but I'm open to other opinions here.

> +void bdev_sync_readahead(struct block_device *bdev, struct file_ra_state *ra,
> +			 struct file *file, pgoff_t index,
> +			 unsigned long req_count)
> +{
> +	struct file_ra_state tmp_ra = {};
> +
> +	if (!ra) {
> +		ra = &tmp_ra;
> +		file_ra_state_init(ra, bdev->bd_inode->i_mapping);
> +	}
> +	page_cache_sync_readahead(bdev->bd_inode->i_mapping, ra, file, index,
> +				  req_count);
> +}

I think the caller should always be passing in a valid file_ra_state.
It's only cramfs that doesn't have one, and it really should!
Not entirely sure about the arguments here; part of me says "bytes",
but this is weird enough to maybe take arguments in pages.


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 15:47:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 15:47:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649336.1013734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAu7B-0008EO-Su; Wed, 06 Dec 2023 15:47:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649336.1013734; Wed, 06 Dec 2023 15:47:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAu7B-0008EH-Nn; Wed, 06 Dec 2023 15:47:09 +0000
Received: by outflank-mailman (input) for mailman id 649336;
 Wed, 06 Dec 2023 15:47: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 1rAu7A-0008E7-NG; Wed, 06 Dec 2023 15:47: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 1rAu7A-0003X9-EX; Wed, 06 Dec 2023 15:47: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 1rAu79-0006zF-Vo; Wed, 06 Dec 2023 15:47:08 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAu79-0004EV-VJ; Wed, 06 Dec 2023 15:47: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=jv+CkyV0Vf92m50SG+hNmxD8txcd3gYTqPHaW5YWxGA=; b=KgCCXeA1AN+toOYqthSCYS5BQ0
	ahYlf1tyZpLmsvozntLQCRIDNCFCC/a7EKSFDHz2VjZ1hxsUfUk0Xhne8g/8IANlbzYD83018PSmr
	nweOzIyfN06ayh75GF5KHvhh62XN8X1qolHAufY5G6Ufy+2Nkjpc6rouVfDFupJ9kHVI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184001-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184001: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-qemuu-debianhvm-amd64-xsm: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-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-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm: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-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-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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=bee0e7762ad2c6025b9f5245c040fcc36ef2bde8
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 15:47:07 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-examine      8 reboot                     fail pass in 183993

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-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-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-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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                bee0e7762ad2c6025b9f5245c040fcc36ef2bde8
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    4 days
Failing since        183977  2023-12-03 00:12:06 Z    3 days    8 attempts
Testing same since   183993  2023-12-05 09:00:54 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  David Howells <dhowells@redhat.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Eugenio PÃ©rez <eperezma@redhat.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Jason Wang <jasowang@redhat.com>
  Jens Axboe <axboe@kernel.dk>
  Joao Martins <joao.m.martins@oracle.com>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Robin Murphy <robin.murphy@arm.com>
  Sean Christopherson <seanjc@google.com>
  Shannon Nelson <shannon.nelson@amd.com>
  Steve French <stfrench@microsoft.com>
  Steve Sistare <steven.sistare@oracle.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 987 lines long.)


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 15:52:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 15:52:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649340.1013744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAuCg-0001Fd-Gy; Wed, 06 Dec 2023 15:52:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649340.1013744; Wed, 06 Dec 2023 15:52: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 1rAuCg-0001FW-C7; Wed, 06 Dec 2023 15:52:50 +0000
Received: by outflank-mailman (input) for mailman id 649340;
 Wed, 06 Dec 2023 15:52: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 1rAuCe-0001F0-8h; Wed, 06 Dec 2023 15:52: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 1rAuCd-0003cc-UN; Wed, 06 Dec 2023 15:52: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 1rAuCd-0007MI-Gf; Wed, 06 Dec 2023 15:52:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAuCd-0007Q6-GB; Wed, 06 Dec 2023 15:52: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=9OXzlLo0FdqzLoGftsIBLonkqiYpZv9/fkdNmwJ8M0E=; b=JtW5GpxRkibtj/oHITrFhIerda
	iqStreHuHKVRR2LBpD3Uh9PTCbhkX2DiUxOT1ncRAB69Hydnfzenuge2Dq9TBMFNhy5y2U0tT0jcB
	SOLoR73XijQwkr1aL2hgegIlAjzJnGrknV3b/sA1brz3pgr6OhOuWMe7m2jqo7yXljlA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184009-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184009: 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=59df2851318357763be3ad8a5f300d6a9e7c6e38
X-Osstest-Versions-That:
    xen=3e5672d69fe09e240195fa6744686b59db6d7d69
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 15:52:47 +0000

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

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                  59df2851318357763be3ad8a5f300d6a9e7c6e38
baseline version:
 xen                  3e5672d69fe09e240195fa6744686b59db6d7d69

Last test of basis   184006  2023-12-06 08:02:26 Z    0 days
Testing same since   184009  2023-12-06 12:02:15 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@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
   3e5672d69f..59df285131  59df2851318357763be3ad8a5f300d6a9e7c6e38 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 16:18:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 16:18:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649348.1013757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAuaw-0005pb-FM; Wed, 06 Dec 2023 16:17:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649348.1013757; Wed, 06 Dec 2023 16: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 1rAuaw-0005pU-Cr; Wed, 06 Dec 2023 16:17:54 +0000
Received: by outflank-mailman (input) for mailman id 649348;
 Wed, 06 Dec 2023 16:17: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAuau-0005nJ-Dd
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 16:17:52 +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 fe60fdb8-9452-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 17:17:47 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 A763D21EEF;
 Wed,  6 Dec 2023 16:17:46 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 7B156133DD;
 Wed,  6 Dec 2023 16:17:46 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id l2E5HKqecGXLMAAAn2gu4w
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 16: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>
X-Inumbo-ID: fe60fdb8-9452-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701879466; 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=VZ4xKBMd5ayiHf5kFN/DgbMlCW/LdmUe8a4BA198re8=;
	b=pOPDdqWxQr709YaP+j9PMD1VRpCCqdpDx7gFpJ0UrY+OB+Hoo3ffNQohFLQ7RJEe4B5ld5
	5d9SYP6FrsWtBHaWTtlnYw6PaX0ILRyvzRU4XGuQvfWjyNMcA7sAluA3D+CiL49z78lBTM
	7mz7TX0AvUn5ON20miAott6GXTlsMkk=
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: don't use objcopy --dump-section
Date: Wed,  6 Dec 2023 17:17:44 +0100
Message-Id: <20231206161744.2508-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Score: 9.97
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: *********
X-Spamd-Result: default: False [9.97 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.07)[99.92%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]

The objcopy option "--dump-section" isn't supported in binutils before
version 2.25, which are still supported by the Xen build system.

Avoid that by using the "-O binary" format together with
"--only-section". This requires to set the "alloc" section flag.

Fixes: 33411a11f848 ("Mini-OS: hide all symbols not exported via EXPORT_SYMBOLS()")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 Makefile | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 456aed0b..6c8df8b5 100644
--- a/Makefile
+++ b/Makefile
@@ -166,7 +166,9 @@ $(OBJ_DIR)/arch/x86/minios-x86%.lds:  arch/x86/minios-x86.lds.S
 
 $(OBJ_DIR)/$(TARGET)-kern.o: $(OBJS) arch_lib $(OBJ_DIR)/$(TARGET_ARCH_DIR)/minios-$(MINIOS_TARGET_ARCH).lds
 	$(LD) -r $(LDFLAGS) $(HEAD_OBJ) $(OBJS) $(LDARCHLIB) -o $@
-	$(OBJCOPY) --dump-section .export_symbol=$(OBJ_DIR)/syms $@
+	# The following would be neat, but isn't supported in binutils < 2.25
+	# $(OBJCOPY) --dump-section .export_symbol=$(OBJ_DIR)/syms $@
+	$(OBJCOPY) --set-section-flags .export_symbol=alloc -O binary --only-section=.export_symbol $@ $(OBJ_DIR)/syms
 	$(OBJCOPY) -w -G $(GLOBAL_PREFIX)* --keep-global-symbols=$(OBJ_DIR)/syms --remove-section=.export_symbol $@ $@
 
 $(OBJ_DIR)/$(TARGET): $(OBJ_DIR)/$(TARGET)-kern.o $(APP_O)
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 16:22:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 16:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649353.1013766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAufI-0007JJ-07; Wed, 06 Dec 2023 16:22:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649353.1013766; Wed, 06 Dec 2023 16:22:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAufH-0007JC-Ta; Wed, 06 Dec 2023 16:22:23 +0000
Received: by outflank-mailman (input) for mailman id 649353;
 Wed, 06 Dec 2023 16:22: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=WeUv=HR=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rAufG-0007J6-MU
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 16:22:22 +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 a1688cee-9453-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 17:22:20 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-50be3611794so6006454e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 08:22:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1688cee-9453-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701879740; x=1702484540; 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=NKY2k6qWLzZ0+QKJ7b884ROM+dHfdiMEfwKX6e/dzYM=;
        b=Qg2JdxAvEhA0G29xUx94GIY5GUbtKfFUpQ3UeBi2VX56TSHxRPUj/PvGesrIxD2REt
         PZAjvaXqo1uZwu1W5IQP70B67tfIJxws/esVuxmAoagzeMLs3W9l5JeUkTO3zhaxsoRM
         dHJWuHcsoh6RrMP25OIDjo39IqhwkyuIs543s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701879740; x=1702484540;
        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=NKY2k6qWLzZ0+QKJ7b884ROM+dHfdiMEfwKX6e/dzYM=;
        b=PMKGwqR0iWTx4P4ywg+hzVpLquDr1jzG/igIu3B3wRcoORMC/+8dgpK+7WBudPVJ98
         DTCk2XbnuycRIC0m9vYLps1po+AUlehX5avTK8xv/2603MEGSP99gASFZRbYszN3kbv1
         UULbVHAjovXkrBCxi6dijTs6Z7125hJwwj8wmJYVtqT1D6wc9RZqMfctxEL5f4oM6Zgb
         TR1/wWtt43gVM6iNxXq2PW9UlACprr5BZsP9LLShOG4TTO81VdlsonXIsk/J/CiUVLo7
         iHHzPThabmB/7GV+2nIQdW7qehcRqRFRNyAVG9tpMV8W4Jr7T7IB3m+hzhYzKdmrterr
         wxqA==
X-Gm-Message-State: AOJu0YzCOXvZRtdc5JMCXs6WvIUdsgHzv3SO/ZV1DWy37aCQ9lWNNIaK
	VloKW55LJIZf8muM7BtWoB8/RuKx9Kf0AtWyscI2NA==
X-Google-Smtp-Source: AGHT+IHI4yCv4+RBd92OiH+AHmtOYRb/LzRYKPLOynvwCibYXHIV5nzvG88ddmW1+qzMRk0IAqvr5ayvTpk0f+A4AE8=
X-Received: by 2002:ac2:55b0:0:b0:50b:fdb5:3a09 with SMTP id
 y16-20020ac255b0000000b0050bfdb53a09mr638493lfg.64.1701879740083; Wed, 06 Dec
 2023 08:22:20 -0800 (PST)
MIME-Version: 1.0
References: <20231205181218.74667-1-julien@xen.org> <CA+zSX=aUV00BwnNfFTbCE=6PuVNT=UFvE0tnMO3UhwCMh5jmHQ@mail.gmail.com>
 <50b36423-d1e1-406f-a63f-66f2e4dce68e@suse.com> <6f071eba-3995-451b-af80-efe875ec5ea8@citrix.com>
 <33d82944-6c53-45c6-93d5-48d0be9257fd@xen.org>
In-Reply-To: <33d82944-6c53-45c6-93d5-48d0be9257fd@xen.org>
From: George Dunlap <george.dunlap@cloud.com>
Date: Wed, 6 Dec 2023 16:22:09 +0000
Message-ID: <CA+zSX=YadJYYG_b7V0+S7hfpmtTAc3RPOXTV0zBCa+y=v36M6A@mail.gmail.com>
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
	xen-devel@lists.xenproject.org, Julien Grall <jgrall@amazon.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 6, 2023 at 11:22=E2=80=AFAM Julien Grall <julien@xen.org> wrote=
:
>
> Hi,
>
> On 06/12/2023 11:19, Andrew Cooper wrote:
> > On 06/12/2023 8:41 am, Jan Beulich wrote:
> >> On 06.12.2023 03:21, George Dunlap wrote:
> >>> On Tue, Dec 5, 2023 at 6:12=E2=80=AFPM Julien Grall <julien@xen.org> =
wrote:
> >>>> From: Julien Grall <jgrall@amazon.com>
> >>>>
> >>>> Several maintainers have expressed a stronger preference
> >>>> to use '-' when in filename and option that contains multiple
> >>>> words.
> >>>>
> >>>> So document it in CODING_STYLE.
> >>>>
> >>>> Signed-off-by: Julien Grall <jgrall@amazon.com>
> >>>>
> >>>> ---
> >>>>      Changes in v2:
> >>>>          - New wording
> >>>>          - Update the section title
> >>>>          - Add Jan's acked-by
> >>>> ---
> >>>>   CODING_STYLE | 9 +++++++++
> >>>>   1 file changed, 9 insertions(+)
> >>>>
> >>>> diff --git a/CODING_STYLE b/CODING_STYLE
> >>>> index ced3ade5a6fb..ed13ee2b664b 100644
> >>>> --- a/CODING_STYLE
> >>>> +++ b/CODING_STYLE
> >>>> @@ -144,6 +144,15 @@ separate lines and each line should begin with =
a leading '*'.
> >>>>    * Note beginning and end markers on separate lines and leading '*=
'.
> >>>>    */
> >>>>
> >>>> +Naming convention for files and command line options
> >>>> +----------------------------------------------------
> >>>> +
> >>>> +'-' should be used to separate words in commandline options and fil=
enames.
> >>>> +E.g. timer-works.
> >>>> +
> >>>> +Note that some of the options and filenames are using '_'. This is =
now
> >>>> +deprecated.
> >>> Sorry for not catching this last time; "are using X" isn't really
> >>> idiomatic English; more idiomatic would be something like the
> >>> following:
> >>>
> >>> "Note that some existing options and file names use '_'.  This is now
> >>> deprecated."
> >>>
> >>> Since we're changing things, I *think* most style guides would advise
> >>> against starting the sentence with a punctuation; so perhaps:
> >>>
> >>> "Command-line options and file names should use '-' to separate words=
;
> >>> e.g., timer-works."
> >>>
> >>> And what about adding to the last paragraph:
> >>>
> >>> "When touching code around command-line parameters still using '_', i=
t
> >>> is recommended to modify the documentation to say only '-', but modif=
y
> >>> the code to accept both '-' and '_' (for backwards compatibility)."
> >> In this context see
> >> https://lists.xen.org/archives/html/xen-devel/2020-01/msg01945.html
> >> and Andrew's response
> >> https://lists.xen.org/archives/html/xen-devel/2020-01/msg02006.html
> >> I'm still in favor of addressing the issue centrally (making unnecessa=
ry
> >> adjustments like you suggest in the new paragraph). Yet I think Andrew=
's
> >> objection would cover such adjustments as much as my generic solution.
> >
> > Aliasing - and _ in the cmdline parsing breaks basic usability.
> >
> > Its fine for new options to use -, and it's even fine-ish (but only if
> > you're going to be the one doing security backports) to rename internal
> > files.
> >
> > But there is real and detrimental effect for altering the command line.
> >
> > You will get people failing to express the option they intended when
> > working with an older form of Xen.  You will need an absurd number of
> > notes in the command line docs saying "newer versions of Xen accept an
> > alias but you need to use the underscore form for backwards compatibili=
ty".
> >
> > Not to mention that there are years of notes scattered all around the
> > internet using the underscore forms, so it's likely that everyone will
> > continue to use the underscore form, meaning that you don't even have a
> > way to phase them out.
> >
> > And for what?  An attempt to pretend that we don't have 2 decades of
> > history where underscores where the norm?
> >
> > It's tinkering, for no useful benefit and a clear cost.
>
> +1 with what Andrew said.

Haven't given it full thought, because I absolutely did not want to
make this change take longer to get in. :-). The existence of
disagreement is enough for me to withdraw my suggestion.

 -George


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 16:37:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 16:37:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649358.1013776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAuu4-0001Rs-64; Wed, 06 Dec 2023 16:37:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649358.1013776; Wed, 06 Dec 2023 16: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 1rAuu4-0001Rl-3D; Wed, 06 Dec 2023 16:37:40 +0000
Received: by outflank-mailman (input) for mailman id 649358;
 Wed, 06 Dec 2023 16:37: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=d4zt=HR=linux.microsoft.com=madvenka@srs-se1.protection.inumbo.net>)
 id 1rAuu3-0001Qa-GF
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 16:37:39 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c3f2529f-9455-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 17:37:37 +0100 (CET)
Received: from [192.168.4.26] (unknown [47.186.13.91])
 by linux.microsoft.com (Postfix) with ESMTPSA id 8823E20B74C0;
 Wed,  6 Dec 2023 08:37:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3f2529f-9455-11ee-98e5-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 8823E20B74C0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1701880656;
	bh=1wQFnh2bPx3Ra+HT0vuTvJh3mkp2WmHQjZ5XzPfzvKU=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=s6K+9Yl89Z3KgwoiYSQZ2dvP0uHj6IpQUthOWrczE2xRQB83yQa/TT5PF6Hy3U1sa
	 8E05mbqFUb33ePDO+wVm37jwLQyxQau0SjCjOt7vH/QkttsTN3Z9GdmbJ5scmpsxun
	 Ibo6TwIr6zVmB49da7xmGxwKzie0382EULwJL3Ko=
Message-ID: <624a310b-c0d2-406c-a4a7-d851b3cc68f5@linux.microsoft.com>
Date: Wed, 6 Dec 2023 10:37:33 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 17/19] heki: x86: Update permissions counters
 during text patching
To: Peter Zijlstra <peterz@infradead.org>
Cc: =?UTF-8?Q?Micka=C3=ABl_Sala=C3=BCn?= <mic@digikod.net>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H . Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Kees Cook <keescook@chromium.org>, Paolo Bonzini <pbonzini@redhat.com>,
 Sean Christopherson <seanjc@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Wanpeng Li <wanpengli@tencent.com>, Alexander Graf <graf@amazon.com>,
 Chao Peng <chao.p.peng@linux.intel.com>,
 "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>,
 Forrest Yuan Yu <yuanyu@google.com>, James Gowans <jgowans@amazon.com>,
 James Morris <jamorris@linux.microsoft.com>,
 John Andersen <john.s.andersen@intel.com>,
 Marian Rotariu <marian.c.rotariu@gmail.com>,
 =?UTF-8?Q?Mihai_Don=C8=9Bu?= <mdontu@bitdefender.com>,
 =?UTF-8?B?TmljdciZb3IgQ8OuyJt1?= <nicu.citu@icloud.com>,
 Thara Gopinath <tgopinath@microsoft.com>,
 Trilok Soni <quic_tsoni@quicinc.com>, Wei Liu <wei.liu@kernel.org>,
 Will Deacon <will@kernel.org>, Yu Zhang <yu.c.zhang@linux.intel.com>,
 Zahra Tarkhani <ztarkhani@microsoft.com>,
 =?UTF-8?Q?=C8=98tefan_=C8=98icleru?= <ssicleru@bitdefender.com>,
 dev@lists.cloudhypervisor.org, kvm@vger.kernel.org,
 linux-hardening@vger.kernel.org, linux-hyperv@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org,
 qemu-devel@nongnu.org, virtualization@lists.linux-foundation.org,
 x86@kernel.org, xen-devel@lists.xenproject.org
References: <20231113022326.24388-1-mic@digikod.net>
 <20231113022326.24388-18-mic@digikod.net>
 <20231113081929.GA16138@noisy.programming.kicks-ass.net>
 <a52d8885-43cc-4a4e-bb47-9a800070779e@linux.microsoft.com>
 <20231127200841.GZ3818@noisy.programming.kicks-ass.net>
 <ea63ae4e-e8ea-4fbf-9383-499e14de2f5e@linux.microsoft.com>
 <20231130113315.GE20191@noisy.programming.kicks-ass.net>
Content-Language: en-US
From: "Madhavan T. Venkataraman" <madvenka@linux.microsoft.com>
In-Reply-To: <20231130113315.GE20191@noisy.programming.kicks-ass.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit



On 11/30/23 05:33, Peter Zijlstra wrote:
> On Wed, Nov 29, 2023 at 03:07:15PM -0600, Madhavan T. Venkataraman wrote:
> 
>> Kernel Lockdown
>> ---------------
>>
>> But, we must provide at least some security in V2. Otherwise, it is useless.
>>
>> So, we have implemented what we call a kernel lockdown. At the end of kernel
>> boot, Heki establishes permissions in the extended page table as mentioned
>> before. Also, it adds an immutable attribute for kernel text and kernel RO data.
>> Beyond that point, guest requests that attempt to modify permissions on any of
>> the immutable pages will be denied.
>>
>> This means that features like FTrace and KProbes will not work on kernel text
>> in V2. This is a temporary limitation. Once authentication is in place, the
>> limitation will go away.
> 
> So either you're saying your patch 17 / text_poke is broken (so why
> include it ?!?) or your statement above is incorrect. Pick one.
> 

It has been included so that people can be aware of the changes.

I will remove the text_poke() changes from the patchset and send it later when
I have some authentication in place. It will make sense then.

> 
>> __text_poke()
>> 	This function is called by various features to patch text.
>> 	This calls heki_text_poke_start() and heki_text_poke_end().
>>
>> 	heki_text_poke_start() is called to add write permissions to the
>> 	extended page table so that text can be patched. heki_text_poke_end()
>> 	is called to revert write permissions in the extended page table.
> 
> This, if text_poke works, then static_call / jump_label / ftrace and
> everything else should work, they all rely on this.
> 
> 
>> Peter mentioned the following:
>>
>> "if you want to mirror the native PTEs why don't you hook into the
>> paravirt page-table muck and get all that for free?"
>>
>> We did consider using a shadow page table kind of approach so that guest page table
>> modifications can be intercepted and reflected in the page table entry. We did not
>> do this for two reasons:
>>
>> - there are bits in the page table entry that are not permission bits. We would like
>>   the guest kernel to be able to modify them directly.
> 
> This statement makes no sense.
> 
>> - we cannot tell a genuine request from an attack.
> 
> Why not? How is an explicit call different from an explicit call in a
> paravirt hook?
> 
>>From a maintenance pov we already hate paravirt with a passion, but it
> is ever so much better than sprinkling yet another pile of crap
> (heki_*) around.

I only said that the idea was considered.

We can resume the discussion on this topic when I send the text_poke() changes in a later
version of the Heki patchset.

Madhavan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 16:39:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 16:39:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649360.1013787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAuvQ-0002IG-G7; Wed, 06 Dec 2023 16:39:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649360.1013787; Wed, 06 Dec 2023 16:39: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 1rAuvQ-0002I9-D3; Wed, 06 Dec 2023 16:39:04 +0000
Received: by outflank-mailman (input) for mailman id 649360;
 Wed, 06 Dec 2023 16:39: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=uigp=HR=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1rAuvO-0002I1-Sq
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 16:39:02 +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 f635696d-9455-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 17:39:02 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-54ca339ae7aso5405420a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 08:39:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f635696d-9455-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701880741; x=1702485541; 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=85R6sL+gTap+ilOb4evLb16t6l8BFOI59a3XBVqZvO0=;
        b=cPug4vMykZUMVUlZnFSC9Zmjgb/S1jObKfdEv3yFLwH7x8s8FmJL5vpUBCdiT1vlVI
         +4mLX1xVjee/gDvyzYWpRr2cdLXEtZHQFog54WaKPtdSXhrfOY0cyGbHc4AOiecs7Nve
         me8zLdSc52QBc/k+IIkh338GFL4csswRRu7TgxD4TZSpzIssoB+HtyBJW+YNjSmKEsrT
         38D5o2e7HQG9m2pkL5vLZsvoJvX1H25ZBmBLY2+jLIbBrLISvXt00qXYjQqdVU09t6Q+
         +uWoQh5FE2zUAmIm3yHZWO1FUVRUUS805Hmgv/+UI/SxE5Had1JIUDfgAnLIa6K6NZb6
         /1aQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701880741; x=1702485541;
        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=85R6sL+gTap+ilOb4evLb16t6l8BFOI59a3XBVqZvO0=;
        b=MsFAOG5UE/IseBBbs56yhG3h2y1He3IGgNQx6DVY01u97oI+A1NOQSoZRrHs+YDKtr
         fN/CSATvvHtItJcv3VuNM9/U+MYg/0PwB+X6ZpljWfPxl5C+chTuvjYS4QLnjTSJh9kC
         ZG1xUboeuz/xKtOUNQyCKNGHONT5ruV+VIjT17p478dJKMOMV5kGZAouRfyj4x0maEih
         /3EQFoLBc5+FWdYZY4Z28EXifmElNbXDlOU6iGIsaVF1n9czni/AthWctEARLtDI/mzG
         YiFWQ/UXqywxaUMze1MGvQm5yw83QFkS35jv7xUdBll4c8s/AZUmeKmjq4OvkECx7Oyz
         3EKQ==
X-Gm-Message-State: AOJu0Yx0hc8YNxJP+xBYldTzzcscC8QRy8Nl+qGgIpzX1Fz3wuwf43o3
	ThDL0fL+KjC82Y/aKNJXeN4sQxOxtHX7MST8+PQ=
X-Google-Smtp-Source: AGHT+IE9oW1ghjHq/4apPyrKjm2LaL2ZCUAtwq8lLLeQI5bOeplCMv0n/k1iduFid0Ee0JxOjYOuAV0q0tIYcK5H61E=
X-Received: by 2002:a50:8a93:0:b0:54a:fb41:a294 with SMTP id
 j19-20020a508a93000000b0054afb41a294mr721702edj.15.1701880741285; Wed, 06 Dec
 2023 08:39:01 -0800 (PST)
MIME-Version: 1.0
References: <20231206144009.29154-1-jgross@suse.com>
In-Reply-To: <20231206144009.29154-1-jgross@suse.com>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Wed, 6 Dec 2023 11:38:48 -0500
Message-ID: <CAKf6xpvu5txfU4uU26=Q-FyEmaaBazXPcOK_gU_=Tp=T98sS7g@mail.gmail.com>
Subject: Re: [PATCH] tools/libs/evtchn: drop assert()s in stubdom
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 6, 2023 at 9:40=E2=80=AFAM Juergen Gross <jgross@suse.com> wrot=
e:
>
> In tools/libs/evtchn/minios.c there are assert()s for the current
> thread being the main thread when binding an event channel.
>
> As Mini-OS is supporting multiple threads, there is no real reason
> why the binding shouldn't be allowed to happen in any other thread.
>
> Just drop the assert()s.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  tools/libs/evtchn/minios.c | 3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/tools/libs/evtchn/minios.c b/tools/libs/evtchn/minios.c
> index 28743cb055..e33ddec7e7 100644
> --- a/tools/libs/evtchn/minios.c
> +++ b/tools/libs/evtchn/minios.c
> @@ -195,7 +195,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_unbound_port=
(xenevtchn_handle *xce,
>      int ret;
>      evtchn_port_t port;
>
> -    assert(get_current() =3D=3D main_thread);
>      port_info =3D port_alloc(xce);

If multiple threads are allowed, does port_list need to gain a lock
protecting it?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 16:41:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 16:41:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649363.1013796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAuxe-0003sR-Ra; Wed, 06 Dec 2023 16:41:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649363.1013796; Wed, 06 Dec 2023 16:41: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 1rAuxe-0003sK-Oz; Wed, 06 Dec 2023 16:41:22 +0000
Received: by outflank-mailman (input) for mailman id 649363;
 Wed, 06 Dec 2023 16:41: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=d4zt=HR=linux.microsoft.com=madvenka@srs-se1.protection.inumbo.net>)
 id 1rAuxd-0003sE-GB
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 16:41:21 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 47c9375a-9456-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 17:41:19 +0100 (CET)
Received: from [192.168.4.26] (unknown [47.186.13.91])
 by linux.microsoft.com (Postfix) with ESMTPSA id 9333C20B74C0;
 Wed,  6 Dec 2023 08:41:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47c9375a-9456-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9333C20B74C0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1701880877;
	bh=kHlojawRkHSQzesoLwKgfjTuxP60iVUKEMogJbbgpvk=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=h5nzkQNQJ8Hkz9bfJUOKRk94jCH5u+61xKvm7uHbxDDbh9IZdWwgEbKwTn78PkoLZ
	 V/SvaTVRXbbegDsONVIBC1/e+Ph1euNy4EsDx3Olm8uf4UsqwQwJOXfeBOjvjh60yW
	 V40mz9ekf0xV/7t/xQurUWeNCSJJTn4OO98i49pg=
Message-ID: <db9c5049-70b5-4261-b7e8-cd371c50aaea@linux.microsoft.com>
Date: Wed, 6 Dec 2023 10:41:14 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 17/19] heki: x86: Update permissions counters
 during text patching
Content-Language: en-US
To: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>,
 "peterz@infradead.org" <peterz@infradead.org>
Cc: "ssicleru@bitdefender.com" <ssicleru@bitdefender.com>,
 "tglx@linutronix.de" <tglx@linutronix.de>, "mic@digikod.net"
 <mic@digikod.net>, "marian.c.rotariu@gmail.com"
 <marian.c.rotariu@gmail.com>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
 "wei.liu@kernel.org" <wei.liu@kernel.org>,
 "virtualization@lists.linux-foundation.org"
 <virtualization@lists.linux-foundation.org>,
 "pbonzini@redhat.com" <pbonzini@redhat.com>,
 "tgopinath@microsoft.com" <tgopinath@microsoft.com>,
 "chao.p.peng@linux.intel.com" <chao.p.peng@linux.intel.com>,
 "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "jgowans@amazon.com" <jgowans@amazon.com>,
 "ztarkhani@microsoft.com" <ztarkhani@microsoft.com>,
 "mdontu@bitdefender.com" <mdontu@bitdefender.com>,
 "x86@kernel.org" <x86@kernel.org>, "bp@alien8.de" <bp@alien8.de>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "jamorris@linux.microsoft.com" <jamorris@linux.microsoft.com>,
 "seanjc@google.com" <seanjc@google.com>,
 "vkuznets@redhat.com" <vkuznets@redhat.com>,
 "Andersen, John S" <john.s.andersen@intel.com>,
 "yu.c.zhang@linux.intel.com" <yu.c.zhang@linux.intel.com>,
 "nicu.citu@icloud.com" <nicu.citu@icloud.com>,
 "keescook@chromium.org" <keescook@chromium.org>,
 "Graf, Alexander" <graf@amazon.com>,
 "wanpengli@tencent.com" <wanpengli@tencent.com>,
 "dev@lists.cloudhypervisor.org" <dev@lists.cloudhypervisor.org>,
 "will@kernel.org" <will@kernel.org>, "mingo@redhat.com" <mingo@redhat.com>,
 "hpa@zytor.com" <hpa@zytor.com>,
 "linux-security-module@vger.kernel.org"
 <linux-security-module@vger.kernel.org>,
 "yuanyu@google.com" <yuanyu@google.com>,
 "linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
 "linux-hardening@vger.kernel.org" <linux-hardening@vger.kernel.org>,
 "quic_tsoni@quicinc.com" <quic_tsoni@quicinc.com>,
 "dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>
References: <20231113022326.24388-1-mic@digikod.net>
 <20231113022326.24388-18-mic@digikod.net>
 <20231113081929.GA16138@noisy.programming.kicks-ass.net>
 <a52d8885-43cc-4a4e-bb47-9a800070779e@linux.microsoft.com>
 <20231127200841.GZ3818@noisy.programming.kicks-ass.net>
 <ea63ae4e-e8ea-4fbf-9383-499e14de2f5e@linux.microsoft.com>
 <4103d68b07bb382e434cdaf19ab1986f9079b0bb.camel@intel.com>
From: "Madhavan T. Venkataraman" <madvenka@linux.microsoft.com>
In-Reply-To: <4103d68b07bb382e434cdaf19ab1986f9079b0bb.camel@intel.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit



On 11/30/23 18:45, Edgecombe, Rick P wrote:
> On Wed, 2023-11-29 at 15:07 -0600, Madhavan T. Venkataraman wrote:
>> Threat Model
>> ------------
>>
>> In the threat model in Heki, the attacker is a user space attacker
>> who exploits
>> a kernel vulnerability to gain more privileges or bypass the kernel's
>> access
>> control and self-protection mechanisms. 
>>
>> In the context of the guest page table, one of the things that the
>> threat model translates
>> to is a hacker gaining access to a guest page with RWX permissions.
>> E.g., by adding execute
>> permissions to a writable page or by adding write permissions to an
>> executable page.
>>
>> Today, the permissions for a guest page in the extended page table
>> are RWX by
>> default. So, if a hacker manages to establish RWX for a page in the
>> guest page
>> table, then that is all he needs to do some damage.
> 
> I had a few random comments from watching the plumbers talk online:
> 
> Is there really a big difference between a page that is RWX, and a RW
> page that is about to become RX? I realize that there is an addition of
> timing, but when executable code is getting loaded it can be written to
> then and later executed. I think that gap could be addressed in two
> different ways, both pretty difficult:
>  1. Verifying the loaded code before it gets markedÂ 
>     executable. ThisÂ isÂ difficult because the kernel does lots ofÂ 
>     tweaks on the code it is loading (alternatives, etc). It can'tÂ 
>     justÂ check a signature.
>  2. Loading the code in a protected environment. In this model theÂ 
>     (forÂ example) module signature would be checked, then the codeÂ 
>     would be loaded in some sort of protected environment. This wayÂ 
>     integrity of the loaded code would be enforced. But extractingÂ 
>     module loading into a separate domain would be difficult.Â 
>     Various scatteredÂ features all have their hands in the loading.
> 
> Secondly, I wonder if another way to look at the memory parts of HEKI
> could be that this is a way to protect certain page table bits from
> stay writes. The RWX bits in the EPT are not directly writable, so more
> steps are needed to change things than just a stray write (instead the
> helpers involved in the operations need to be called). If that is a
> fair way of looking at it, then I wonder how HEKI compares to a
> solution like this security-wise:
> https://lore.kernel.org/lkml/20210830235927.6443-1-rick.p.edgecombe@intel.com/
> 
> Functional-wise it had the benefit of working on bare metal and
> supporting the normal kernel features.

Thanks for the comments. I will think about what you have said and will respond
soon.

Madhavan


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 16:44:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 16:44:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649367.1013806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAv0c-0004TU-96; Wed, 06 Dec 2023 16:44:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649367.1013806; Wed, 06 Dec 2023 16: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 1rAv0c-0004TN-6K; Wed, 06 Dec 2023 16:44:26 +0000
Received: by outflank-mailman (input) for mailman id 649367;
 Wed, 06 Dec 2023 16:44: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=lx6I=HR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rAv0b-0004TH-6i
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 16:44:25 +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 b59a5db6-9456-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 17:44:23 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id EEFCC1FD2A;
 Wed,  6 Dec 2023 16:44:21 +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 CB49C136CD;
 Wed,  6 Dec 2023 16:44:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id vEhIMOWkcGXHaAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 06 Dec 2023 16: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>
X-Inumbo-ID: b59a5db6-9456-11ee-9b0f-b553b5be7939
Message-ID: <b5b74155-e086-425d-8f5a-e9878d5d2da2@suse.com>
Date: Wed, 6 Dec 2023 17:44:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/libs/evtchn: drop assert()s in stubdom
Content-Language: en-US
To: Jason Andryuk <jandryuk@gmail.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20231206144009.29154-1-jgross@suse.com>
 <CAKf6xpvu5txfU4uU26=Q-FyEmaaBazXPcOK_gU_=Tp=T98sS7g@mail.gmail.com>
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: <CAKf6xpvu5txfU4uU26=Q-FyEmaaBazXPcOK_gU_=Tp=T98sS7g@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------JmnCiQtIVPdfGa60UKrYBReW"
X-Rspamd-Queue-Id: EEFCC1FD2A
X-Spam-Score: 15.00
X-Spam-Flag: YES
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FREEMAIL_TO(0.00)[gmail.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd1
X-Spam-Level: ***************
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------JmnCiQtIVPdfGa60UKrYBReW
Content-Type: multipart/mixed; boundary="------------v5ouR3jBBOuhda0eVaItMQkK";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jason Andryuk <jandryuk@gmail.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <b5b74155-e086-425d-8f5a-e9878d5d2da2@suse.com>
Subject: Re: [PATCH] tools/libs/evtchn: drop assert()s in stubdom
References: <20231206144009.29154-1-jgross@suse.com>
 <CAKf6xpvu5txfU4uU26=Q-FyEmaaBazXPcOK_gU_=Tp=T98sS7g@mail.gmail.com>
In-Reply-To: <CAKf6xpvu5txfU4uU26=Q-FyEmaaBazXPcOK_gU_=Tp=T98sS7g@mail.gmail.com>

--------------v5ouR3jBBOuhda0eVaItMQkK
Content-Type: multipart/mixed; boundary="------------qY0Cz07POJLJk3xHopfaPGts"

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

T24gMDYuMTIuMjMgMTc6MzgsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIFdlZCwgRGVj
IDYsIDIwMjMgYXQgOTo0MOKAr0FNIEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4g
d3JvdGU6DQo+Pg0KPj4gSW4gdG9vbHMvbGlicy9ldnRjaG4vbWluaW9zLmMgdGhlcmUgYXJl
IGFzc2VydCgpcyBmb3IgdGhlIGN1cnJlbnQNCj4+IHRocmVhZCBiZWluZyB0aGUgbWFpbiB0
aHJlYWQgd2hlbiBiaW5kaW5nIGFuIGV2ZW50IGNoYW5uZWwuDQo+Pg0KPj4gQXMgTWluaS1P
UyBpcyBzdXBwb3J0aW5nIG11bHRpcGxlIHRocmVhZHMsIHRoZXJlIGlzIG5vIHJlYWwgcmVh
c29uDQo+PiB3aHkgdGhlIGJpbmRpbmcgc2hvdWxkbid0IGJlIGFsbG93ZWQgdG8gaGFwcGVu
IGluIGFueSBvdGhlciB0aHJlYWQuDQo+Pg0KPj4gSnVzdCBkcm9wIHRoZSBhc3NlcnQoKXMu
DQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29t
Pg0KPj4gLS0tDQo+PiAgIHRvb2xzL2xpYnMvZXZ0Y2huL21pbmlvcy5jIHwgMyAtLS0NCj4+
ICAgMSBmaWxlIGNoYW5nZWQsIDMgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBh
L3Rvb2xzL2xpYnMvZXZ0Y2huL21pbmlvcy5jIGIvdG9vbHMvbGlicy9ldnRjaG4vbWluaW9z
LmMNCj4+IGluZGV4IDI4NzQzY2IwNTUuLmUzM2RkZWM3ZTcgMTAwNjQ0DQo+PiAtLS0gYS90
b29scy9saWJzL2V2dGNobi9taW5pb3MuYw0KPj4gKysrIGIvdG9vbHMvbGlicy9ldnRjaG4v
bWluaW9zLmMNCj4+IEBAIC0xOTUsNyArMTk1LDYgQEAgeGVuZXZ0Y2huX3BvcnRfb3JfZXJy
b3JfdCB4ZW5ldnRjaG5fYmluZF91bmJvdW5kX3BvcnQoeGVuZXZ0Y2huX2hhbmRsZSAqeGNl
LA0KPj4gICAgICAgaW50IHJldDsNCj4+ICAgICAgIGV2dGNobl9wb3J0X3QgcG9ydDsNCj4+
DQo+PiAtICAgIGFzc2VydChnZXRfY3VycmVudCgpID09IG1haW5fdGhyZWFkKTsNCj4+ICAg
ICAgIHBvcnRfaW5mbyA9IHBvcnRfYWxsb2MoeGNlKTsNCj4gDQo+IElmIG11bHRpcGxlIHRo
cmVhZHMgYXJlIGFsbG93ZWQsIGRvZXMgcG9ydF9saXN0IG5lZWQgdG8gZ2FpbiBhIGxvY2sN
Cj4gcHJvdGVjdGluZyBpdD8NCg0KSSB0aG91Z2h0IG9mIHRoYXQsIHRvby4NCg0KVGhlIGFu
c3dlciBpczogbWF5YmUNCg0KQW55IG90aGVyIGxpc3Qgb3BlcmF0aW9uIG9uIHRoZSBsaXN0
IGlzbid0IHByb3RlY3RlZCBieSBhbiBhc3NlcnQoKSwgc28NCnRlY2huaWNhbGx5IHRoZXJl
IGlzIG5vIHJlYWwgbmV3IGFzcGVjdCBhZGRlZCBpbiB0aGlzIHJlZ2FyZC4NCg0KSSBiZWxp
ZXZlIGFkZGluZyBhIGxvY2sgd291bGQgbWFrZSBzZW5zZSwgYnV0IGl0IGlzIG9ydGhvZ29u
YWwgdG8gdGhpcw0KcGF0Y2guDQoNCg0KSnVlcmdlbg0KDQo=
--------------qY0Cz07POJLJk3xHopfaPGts
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-----

--------------qY0Cz07POJLJk3xHopfaPGts--

--------------v5ouR3jBBOuhda0eVaItMQkK--

--------------JmnCiQtIVPdfGa60UKrYBReW
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/Ey8FAmVwpOUFAwAAAAAACgkQsN6d1ii/Ey/j
Rwf+Nyts+prQa8TWiboo5ThDhK6q1zU3ULzOHsrFPlnYp+6EmAuS+0YtpfHECzdaqd2w8Jsxl7EK
HzV+hcUWIzwqlFwQqHkQJqN3+qixOoYSoSiOaTJmb/MvTttDKVLrkEC7vzdIR2u5yg6pTxFK42qI
zoJgNOc7eNd5hPb7F4A9MHEaYGPvBcMdrkoZiShHDxdlWHij8WRrg35JndDvRcmqPbG0AtjzPOij
qbaQC4wLThHNuVkfXFE4tqvefQPAYultx18qoXFPExxlDLDj2Otb6EA5fKuOvWP96PxANFbQR2UO
qFVO0Qiv9kgnu8N2OGJDBz5Wy9iREdMT5x+bb1keag==
=Ku4Z
-----END PGP SIGNATURE-----

--------------JmnCiQtIVPdfGa60UKrYBReW--


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 17:11:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 17:11:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649372.1013817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAvQA-00023p-GA; Wed, 06 Dec 2023 17:10:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649372.1013817; Wed, 06 Dec 2023 17:10:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAvQA-00023i-Ck; Wed, 06 Dec 2023 17:10:50 +0000
Received: by outflank-mailman (input) for mailman id 649372;
 Wed, 06 Dec 2023 17:10: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=uU2H=HR=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rAvQA-00023b-29
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 17:10:50 +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 66106d31-945a-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 18:10:47 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3333a3a599fso580789f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 09:10:47 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 he15-20020a05600c540f00b0040c25abd724sm296896wmb.9.2023.12.06.09.10.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Dec 2023 09:10:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66106d31-945a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701882647; x=1702487447; 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=ygJQ11lVIy+dGwQu4ObcXGNlr5jdB1jPQ2GsWqZ4H6o=;
        b=IQy543vuM6WO+8sWhOlDtkdl0bUrjPS6LqMEZzYlcRrWiXxOFSFiZ6x/Wqfyd70qdE
         xkD2ig/FHEHgTtemeq1BQ7Su7zv5Dcsy7OGJHf/++8CCqlrCfLeHSPMawXNw0YlkNZEp
         AEp8jLiZT9/fjkVJW2HssxVcJFfjnaOSHtFzw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701882647; x=1702487447;
        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=ygJQ11lVIy+dGwQu4ObcXGNlr5jdB1jPQ2GsWqZ4H6o=;
        b=JU6jAWzup5mqb4uOFoVQgWQ4cQSk8nkKey/yQFRf9fm+AT8mxLTMfdzsRltQqTmVQI
         hghqq8xGzOzkx45zfmL638eg8C20ee8+sBMcCCvO8Pykaul9gUifmSuF0WNH2qXrIk/1
         AVn22gOyk5rpgY/m0FtjZCvyPTh8KffogqtyxtR4w4OH9uAx494Fs0VcMLldhBJuz5r/
         YcB/uAgR1FJUfdicvXYJFBNW+V1CuzvEQgKxJOdxUys30c5OwfVEu2rUotSLkhSk+Hz4
         D5dsrXioE2DUCRdbpEzSoJiFo2GQemJrwtTFkMDFNMHokLPtP32pfUmHsFEuuxgSgavb
         9jvA==
X-Gm-Message-State: AOJu0YyNIb6VVa/gJSMikABKoQqggXpaXv1ZCFKXyci4L+TCIZBeU7fV
	jtddHoCHNlDVyIix8+1g9P6qgQ==
X-Google-Smtp-Source: AGHT+IFtWcSHZ2oJLGyder4CwJPSnDHhLNNs7iy18nmFpsBl9eoDeOc0IorEktjQvawsGHALt4O/UQ==
X-Received: by 2002:a05:600c:3c99:b0:40b:2a08:c45e with SMTP id bg25-20020a05600c3c9900b0040b2a08c45emr1750816wmb.3.1701882647076;
        Wed, 06 Dec 2023 09:10:47 -0800 (PST)
Date: Wed, 6 Dec 2023 17:10:46 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	David Woodhouse <dwmw@amazon.co.uk>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Paul Durrant <xadimgnik@gmail.com>,
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
	Paul Durrant <paul@xen.org>, Kevin Wolf <kwolf@redhat.com>,
	Hanna Reitz <hreitz@redhat.com>, Jason Wang <jasowang@redhat.com>,
	"open list:X86 Xen CPUs" <xen-devel@lists.xenproject.org>,
	"open list:Block layer core" <qemu-block@nongnu.org>
Subject: Re: [PATCH v4 2/6] xen: backends: don't overwrite XenStore nodes
 created by toolstack
Message-ID: <a5d439c6-f20d-41a6-8ec1-6132d505deb0@perard>
References: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
 <20231202014108.2017803-3-volodymyr_babchuk@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231202014108.2017803-3-volodymyr_babchuk@epam.com>

On Sat, Dec 02, 2023 at 01:41:21AM +0000, Volodymyr Babchuk wrote:
> Xen PV devices in QEMU can be created in two ways: either by QEMU
> itself, if they were passed via command line, or by Xen toolstack. In
> the latter case, QEMU scans XenStore entries and configures devices
> accordingly.
> 
> In the second case we don't want QEMU to write/delete front-end
> entries for two reasons: it might have no access to those entries if
> it is running in un-privileged domain and it is just incorrect to
> overwrite entries already provided by Xen toolstack, because toolstack
> manages those nodes. For example, it might read backend- or frontend-
> state to be sure that they are both disconnected and it is safe to
> destroy a domain.
> 
> This patch checks presence of xendev->backend to check if Xen PV
> device was configured by Xen toolstack to decide if it should touch
> frontend entries in XenStore. Also, when we need to remove XenStore
> entries during device teardown only if they weren't created by Xen
> toolstack. If they were created by toolstack, then it is toolstack's
> job to do proper clean-up.
> 
> Suggested-by: Paul Durrant <xadimgnik@gmail.com>
> Suggested-by: David Woodhouse <dwmw@amazon.co.uk>
> Co-Authored-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
> 

Hi Volodymyr,

There's something wrong with this patch. The block backend doesn't work
when creating a guest via libxl, an x86 hvm guest with qdisk.

Error from guest kernel:
"2 reading backend fields at /local/domain/0/backend/qdisk/23/768"

It seems that "sector-size" is missing for the disk.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 17:44:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 17:44:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649376.1013827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAvwl-0000Yw-Q9; Wed, 06 Dec 2023 17:44:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649376.1013827; Wed, 06 Dec 2023 17:44: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 1rAvwl-0000Yp-Mv; Wed, 06 Dec 2023 17:44:31 +0000
Received: by outflank-mailman (input) for mailman id 649376;
 Wed, 06 Dec 2023 17: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=y/u8=HR=gmail.com=rosbrookn@srs-se1.protection.inumbo.net>)
 id 1rAvwl-0000Yj-4O
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 17:44:31 +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 1b843d95-945f-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 18:44:30 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2c9f84533beso247461fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 09:44:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b843d95-945f-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701884669; x=1702489469; 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=OzdI3l6ueIWfHhKzhetzt4dIGbHsNIreVeZgEKRdWD0=;
        b=MFlo8p7oj3snBvFhThJJNBSqJ73wb+CxuPAEhgCAkhAOdXm+duFHXPFTcTP5464mj7
         ZQNzKSyFskzjbprdNj+n5GxouKw5VPxFhcJftPhg0PrXKPMcbULlXNsGKPLM7nEkwcz+
         8davw8dMwAlYrwHlMCL6xz1ya5a8ghJzg6FNNTP/n+6Noc4yWumqNhQC2sxh1FvSYScb
         vJx3T9xFyg8iDlHlLaPVaWYBI88BHxKBpN6E98gLKwgbUdDN5X6NR93NDdLZVsgjzoaG
         DitSA7vraUC4oQwbNm1FH0ZllEYvTegcRwzivIYaHRj31VzXOoIisc69EU8IPOi8HrnD
         G6JQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701884669; x=1702489469;
        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=OzdI3l6ueIWfHhKzhetzt4dIGbHsNIreVeZgEKRdWD0=;
        b=XxRNhE2hPtpRi2IpJTtRm6/huzTvvkB39gM+/Eaqno+Gr5pLk4b6KRZfIxYTfm9wAv
         t/TIYYiKaxeBfuENU9k/pu7pbxdY/aRtsdjxAbfpsCt3BrQN5/me1vYkwJM8MzOWd2oX
         JQKwkD97bTYqzErOXsVfzxghyFwbVGQBC2e1ymuU6LrfKJKREojsnjHVATyqEHAkSkoF
         jMoH01Z0WyN/C2xxcL/sNl4tonxT0BGPXAxu/dM9uIh7ar+qTmGYJLATzFwNzQFpsedL
         Ady3cU+nbKPLaMFFad9VORIJrePl3QhpePzTwnoWnzC5n0ZgJwa9Ovctf8jiYRZ47kvd
         dUTw==
X-Gm-Message-State: AOJu0YxX8xXFHc7mvsJIjHXuI6u7podpXSPoEHq7r7jfxtdHYHUvU0E6
	DlkbOd8eAN3LejX/d/RdDfdbZQddQACv4BfajN5kv2P7
X-Google-Smtp-Source: AGHT+IFStkqEx6L0rrw14ulljUXl6Rx1vZTlK4vuFYQueRsfc/j6Oned/ej1/b3MhUOpTG9WBa4RZOIjIasshESLn/Y=
X-Received: by 2002:a05:651c:b28:b0:2ca:2412:4df8 with SMTP id
 b40-20020a05651c0b2800b002ca24124df8mr853443ljr.84.1701884669171; Wed, 06 Dec
 2023 09:44:29 -0800 (PST)
MIME-Version: 1.0
References: <20231110160804.29021-1-jgross@suse.com> <20231110160804.29021-16-jgross@suse.com>
 <CAKf6xpty3ENpuPgTf7=Gk1Q-Ekn+FjOx=-ySMQF6v3kx7zntrw@mail.gmail.com>
In-Reply-To: <CAKf6xpty3ENpuPgTf7=Gk1Q-Ekn+FjOx=-ySMQF6v3kx7zntrw@mail.gmail.com>
From: Nick Rosbrook <rosbrookn@gmail.com>
Date: Wed, 6 Dec 2023 12:44:18 -0500
Message-ID: <CAEBZRSdyoCH2CFP14imC9We+sTiGn8f-DWecQ1t+ftd0+=0xwg@mail.gmail.com>
Subject: Re: [PATCH v2 15/29] tools/libs/light: add backend type for 9pfs PV devices
To: Jason Andryuk <jandryuk@gmail.com>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 6, 2023 at 9:36=E2=80=AFAM Jason Andryuk <jandryuk@gmail.com> w=
rote:
> FYI, these IDL changes will require golang binding regeneration.
> (Maybe we shouldn't have generated code checked in...)

The generated code needs to be checked in for it to work as a go module.

-Nick


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 17:52:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 17:52:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649380.1013837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAw4i-00034Y-J3; Wed, 06 Dec 2023 17:52:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649380.1013837; Wed, 06 Dec 2023 17: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 1rAw4i-00034R-GU; Wed, 06 Dec 2023 17:52:44 +0000
Received: by outflank-mailman (input) for mailman id 649380;
 Wed, 06 Dec 2023 17:52: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=Ej6Q=HR=mit.edu=tytso@srs-se1.protection.inumbo.net>)
 id 1rAw4g-00034L-Vr
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 17:52:43 +0000
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e69df6c-9460-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 18:52:39 +0100 (CET)
Received: from cwcc.thunk.org (pool-173-48-122-214.bstnma.fios.verizon.net
 [173.48.122.214]) (authenticated bits=0)
 (User authenticated as tytso@ATHENA.MIT.EDU)
 by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 3B6Hodj2022646
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 6 Dec 2023 12:50:40 -0500
Received: by cwcc.thunk.org (Postfix, from userid 15806)
 id F04EC15C057B; Wed,  6 Dec 2023 12:50:38 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e69df6c-9460-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=outgoing;
	t=1701885052; bh=VZDVHdtsTza1iBjsN4e9taxM8QQIzumJOYNTH51fhro=;
	h=Date:From:Subject:Message-ID:MIME-Version:Content-Type;
	b=BH8TRkxS2KVaitLmv0fUh5MfTnRi8kxhm2QxRnobVHqRnCkm5tdQJ4YU7KzmgN2o9
	 OrT5ijrdbqD+8Tpl+UWv5WlzoZ4FfBRwcoZtXGHipfp3BKDuVw8Wb3OV8JHdDL++WR
	 fchowN0SphtUdvT2S+alJWDJDljYoM4HhCP8Oe9wGQPXflEuR9UupnRUlKWI1Qe2kg
	 kWiBMGCDi9IQPUcNW0bRqxHb1k7h5ks+vYGOrOHkVBn6CgZz1YTgrm04q9GDpzs5AE
	 AW77xm7xSTCpwyFB4QBf7egNa0Hpu3J4Iea+sXKNE2nV9yZ8sAlE3vS7vnXmXBUfDj
	 Vli7wjfFyI1og==
Date: Wed, 6 Dec 2023 12:50:38 -0500
From: "Theodore Ts'o" <tytso@mit.edu>
To: Christoph Hellwig <hch@infradead.org>
Cc: Yu Kuai <yukuai1@huaweicloud.com>, axboe@kernel.dk, roger.pau@citrix.com,
        colyli@suse.de, kent.overstreet@gmail.com, joern@lazybastard.org,
        miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
        sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
        gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
        martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
        dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org, chao@kernel.org,
        adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
        konishi.ryusuke@gmail.com, willy@infradead.org,
        akpm@linux-foundation.org, hare@suse.de, p.raghav@samsung.com,
        linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
        linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
        linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
        linux-btrfs@vger.kernel.org, linux-erofs@lists.ozlabs.org,
        linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
        linux-nilfs@vger.kernel.org, yukuai3@huawei.com, yi.zhang@huawei.com,
        yangerkun@huawei.com
Subject: Re: [PATCH -next RFC 01/14] block: add some bdev apis
Message-ID: <20231206175038.GJ509422@mit.edu>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-2-yukuai1@huaweicloud.com>
 <ZXARKD0OmjLrvHmU@infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ZXARKD0OmjLrvHmU@infradead.org>

On Tue, Dec 05, 2023 at 10:14:00PM -0800, Christoph Hellwig wrote:
> > +/*
> > + * The del_gendisk() function uninitializes the disk-specific data
> > + * structures, including the bdi structure, without telling anyone
> > + * else.  Once this happens, any attempt to call mark_buffer_dirty()
> > + * (for example, by ext4_commit_super), will cause a kernel OOPS.
> > + * This is a kludge to prevent these oops until we can put in a proper
> > + * hook in del_gendisk() to inform the VFS and file system layers.
> > + */
> > +int bdev_ejected(struct block_device *bdev)
> > +{
> > +	struct backing_dev_info *bdi = inode_to_bdi(bdev->bd_inode);
> > +
> > +	return bdi->dev == NULL;
> > +}
> > +EXPORT_SYMBOL_GPL(bdev_ejected);
> 
> And this code in ext4 should just go away entirely.  The bdi should
> always be valid for a live bdev for years.

This was added because pulling a mounted a USB thumb drive (or a HDD
drops off the SATA bus) while the file system is mounted and actively
in use, would result in a kernel OOPS.  If that's no longer true,
that's great, but it would be good to test to make sure this is the
case....

If we really want to remove it, I'd suggest doing this as a separate
commit, so that after we see syzbot reports, or users complaining
about kernel crashes, we can revert the removal if necessary.

Cheers,

					- Ted


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 17:55:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 17:55:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649382.1013847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAw7V-0003cw-1H; Wed, 06 Dec 2023 17:55:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649382.1013847; Wed, 06 Dec 2023 17: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 1rAw7U-0003cp-Th; Wed, 06 Dec 2023 17:55:36 +0000
Received: by outflank-mailman (input) for mailman id 649382;
 Wed, 06 Dec 2023 17:55: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 1rAw7T-0003ch-8S
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 17:55: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 1rAw7O-0006g3-U6; Wed, 06 Dec 2023 17:55:30 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.16.253]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAw7O-00028Q-MP; Wed, 06 Dec 2023 17: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>
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=JsdaJlZ7Uf11pmwTN+rVl61uYTcgvMqDW15hG7J4ZEg=; b=GhZxTWeKDQU8NqXx7Ukds5+ou7
	dfSRBpvqbkAWcyPVc2q17PrCqafPQ5n0V1/CWskGkxxMXSNTPZ85sRlGC81B0NCzNq+7Yd5jWCi7X
	03MMnt3quvXnVIFjLk45muOdbcJCONTjc57SLPVY2UuNQ9sYbjx9AFYrMPHby7rUtjqA=;
Message-ID: <4ce995a3-78a1-49e5-881d-d6af10514673@xen.org>
Date: Wed, 6 Dec 2023 17:55:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Clang-format configuration discussion - pt 2
Content-Language: en-GB
To: George Dunlap <george.dunlap@cloud.com>, Jan Beulich <jbeulich@suse.com>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <Michal.Orzel@amd.com>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1B83FF45-E93B-47D7-AD21-615CFCFD0816@arm.com>
 <2E778E49-C2F5-421F-9598-CED15E7D4284@arm.com>
 <827e24a2-0ecd-48c4-becb-12129c4208dc@suse.com>
 <CA+zSX=b77av9rHwWHsRD8MAnprfXQiotUPPPKFDOU9cTOA2OzA@mail.gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <CA+zSX=b77av9rHwWHsRD8MAnprfXQiotUPPPKFDOU9cTOA2OzA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 06/12/2023 02:32, George Dunlap wrote:
> On Tue, Dec 5, 2023 at 2:07â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 05.12.2023 14:46, Luca Fancellu wrote:
>>> In my opinion, I donâ€™t know of any tool that can address all the flexibility the Xen codestyle allows, yet the use of automatic
>>> checkers would improve the review time, allow more new contributors to approach the community without being put down by
>>> the amount of code-style comments,
>>
>> Since this argument is being repeated: I find it odd. No-one needs to even
>> fear any amount of style comments if they simply follow the written down
>> policy plus a tiny bit of common sense. According to my observation, (some)
>> newcomers don't even care to look at what is being said about our style.
>> It's not like you and I haven't been through this. When I started working
>> with GNU toolchain, I had to adopt to their style. When I later started to
>> work with Linux, I had to also adopt there. And then for Xen. And all of
>> that already past closed source projects I had been working on before.

I am not sure I get the point. With this argument, we are not only 
putting load on the contributors but also on the reviewers because we 
have to check the style manually while reviewing the code.

Do you really think this is a good use of our time? Personally I don't 
think so and definitely there are more unwritten rule than you let 
transpire above.

A good example is the "_" vs "-". If even a maintainer can't guess it, 
then how can a contributor know it?

> 
> Most modern languages, including golang (and I think rust) have
> built-in style correctors (`go fmt` is go's official one).  If you
> haven't worked with an automatic style checker / fixer, you don't know
> how much time, hassle, and emotional energy you're saving.  I don't
> think I know anyone who, after using one, wants to go back to not
> using one any more.
> 
> In general, I'm in favor of making changes to our style such that we
> can make clang's style checker official.  The only reason I would vote
> against it is if one of the style requirements was really intolerable;
> but I find that pretty unlikely.

+1

> 
> And as I've said before, the main reservation I have going forward
> with this discussion is that I can't see clearly what it is that I'm
> agreeing to.

+1

I found the way we dealt with MISRA rules quite helpful. We had a weekly 
meeting to discuss some of the rules and then the outcome was posted on 
the ML. Maybe we should do the same here? Any other suggestion how to move?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 17:58:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 17:58:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649385.1013857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAwA6-00056M-Dk; Wed, 06 Dec 2023 17:58:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649385.1013857; Wed, 06 Dec 2023 17:58:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAwA6-00056F-AX; Wed, 06 Dec 2023 17:58:18 +0000
Received: by outflank-mailman (input) for mailman id 649385;
 Wed, 06 Dec 2023 17:58: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=sruh=HR=bombadil.srs.infradead.org=BATV+2d31c4bdfe93494595b7+7409+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rAwA3-00054s-RL
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 17:58:16 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0660f221-9461-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 18:58:14 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rAw9b-00AzA5-00; Wed, 06 Dec 2023 17:57: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: 0660f221-9461-11ee-98e5-6d05b1d4d9a1
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=Snap78XnwhxghrXH/x5DQQflOIE581aXjQMNJjr942g=; b=jhEd/dydrVcA4CqjenXKvBzOhR
	81C86OaTSZvOMqak9GSj26Gk4YbmuiZYqP7Inoay495Qv5aZdhoCk8XtjbZygZ3zFO1MW8qKrFi2H
	jyJUerjxpHvoYivz2Tw0Fom0GZl5ibZD6cI47f6RLNKkoLSSNt8ndPXabCTs9v50CaHUmh6n8EwdV
	h3a11wO9KMQTDIeK5z9Ompws1FrJbStRk/+i8NoSwEjnMVM2d8/eYZK+A65e+FB9FyAW6cFULMbV3
	D4ZCe0VCUv3C54OOIhpqqs0icRWLiCRtInXdBESqtPRpMCqUFSNmSUQ2owjCoBA1ulhjzpRpsIDuc
	qR59KN6w==;
Date: Wed, 6 Dec 2023 09:57:46 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Theodore Ts'o <tytso@mit.edu>
Cc: Christoph Hellwig <hch@infradead.org>,
	Yu Kuai <yukuai1@huaweicloud.com>, axboe@kernel.dk,
	roger.pau@citrix.com, colyli@suse.de, kent.overstreet@gmail.com,
	joern@lazybastard.org, miquel.raynal@bootlin.com, richard@nod.at,
	vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
	hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
	jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
	josef@toxicpanda.com, dsterba@suse.com, nico@fluxnic.net,
	xiang@kernel.org, chao@kernel.org, adilger.kernel@dilger.ca,
	agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
	willy@infradead.org, akpm@linux-foundation.org, hare@suse.de,
	p.raghav@samsung.com, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH -next RFC 01/14] block: add some bdev apis
Message-ID: <ZXC2Gg7NPWu9MULx@infradead.org>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-2-yukuai1@huaweicloud.com>
 <ZXARKD0OmjLrvHmU@infradead.org>
 <20231206175038.GJ509422@mit.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231206175038.GJ509422@mit.edu>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

On Wed, Dec 06, 2023 at 12:50:38PM -0500, Theodore Ts'o wrote:
> This was added because pulling a mounted a USB thumb drive (or a HDD
> drops off the SATA bus) while the file system is mounted and actively
> in use, would result in a kernel OOPS.  If that's no longer true,
> that's great, but it would be good to test to make sure this is the
> case....

And, surprise, surprise - that didn't just affect ext4.  So I ended
up fixing this properly in the block layer.

> If we really want to remove it, I'd suggest doing this as a separate
> commit, so that after we see syzbot reports, or users complaining
> about kernel crashes, we can revert the removal if necessary.

Yes, this should of course be separate, well documented commit.



From xen-devel-bounces@lists.xenproject.org Wed Dec 06 18:17:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 18:17:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649391.1013866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAwSj-0000rU-UU; Wed, 06 Dec 2023 18:17:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649391.1013866; Wed, 06 Dec 2023 18:17: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 1rAwSj-0000rN-Rr; Wed, 06 Dec 2023 18:17:33 +0000
Received: by outflank-mailman (input) for mailman id 649391;
 Wed, 06 Dec 2023 18:17: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=+svz=HR=infradead.org=rdunlap@srs-se1.protection.inumbo.net>)
 id 1rAwSh-0000rH-Od
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 18:17:32 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b746988c-9463-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 19:17:30 +0100 (CET)
Received: from [50.53.46.231] (helo=bombadil.infradead.org)
 by bombadil.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux))
 id 1rAwSa-00B19I-1p; Wed, 06 Dec 2023 18:17: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: b746988c-9463-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding:
	MIME-Version:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:
	Content-ID:Content-Description:In-Reply-To:References;
	bh=KHQ2Hp/i+miJGxn9MDdhqx+iMrXntqUvbNQTqDYCu+Q=; b=sdca+CettaGkArobSwa1TQJxGY
	sJ0R6nyCFx31g3zwzrCDrpv3QIMLAUwPur6QhkrjZO2pJL9z/gYk3T3w9ZyuLd09Nw1B16TTWg13d
	las6FS00BUiXRoiHHDlgWFTUL6gWma1z4r9ABRREaZgUcneGEDST3B8SULyEAbnli2S2+bd0yISsV
	coD98Vot8UcPNg4cii9HOxhvVY1N2kGFOWDE7+T4iNDCbuNsPQIERju/4GN7WrtvbTVklWtGT4rYi
	DRYcP4rd2z1F8kTvNVjv7y5CInCmxbuDuufQ0+/DKH3qKXrTWP+61PCu5aHfxuh4Q3L3w6TFFjuq7
	GrF8LcGw==;
From: Randy Dunlap <rdunlap@infradead.org>
To: linux-kernel@vger.kernel.org
Cc: Randy Dunlap <rdunlap@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH] xen/xenbus: client: fix kernel-doc comments
Date: Wed,  6 Dec 2023 10:17:24 -0800
Message-ID: <20231206181724.27767-1-rdunlap@infradead.org>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Correct function kernel-doc notation to prevent warnings from
scripts/kernel-doc.

xenbus_client.c:134: warning: No description found for return value of 'xenbus_watch_path'
xenbus_client.c:177: warning: No description found for return value of 'xenbus_watch_pathfmt'
xenbus_client.c:258: warning: missing initial short description on line:
 * xenbus_switch_state
xenbus_client.c:267: warning: No description found for return value of 'xenbus_switch_state'
xenbus_client.c:308: warning: missing initial short description on line:
 * xenbus_dev_error
xenbus_client.c:327: warning: missing initial short description on line:
 * xenbus_dev_fatal
xenbus_client.c:350: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
 * Equivalent to xenbus_dev_fatal(dev, err, fmt, args), but helps
xenbus_client.c:457: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
 * Allocate an event channel for the given xenbus_device, assigning the newly
xenbus_client.c:486: warning: expecting prototype for Free an existing event channel. Returns 0 on success or(). Prototype was for xenbus_free_evtchn() instead
xenbus_client.c:502: warning: missing initial short description on line:
 * xenbus_map_ring_valloc
xenbus_client.c:517: warning: No description found for return value of 'xenbus_map_ring_valloc'
xenbus_client.c:602: warning: missing initial short description on line:
 * xenbus_unmap_ring
xenbus_client.c:614: warning: No description found for return value of 'xenbus_unmap_ring'
xenbus_client.c:715: warning: missing initial short description on line:
 * xenbus_unmap_ring_vfree
xenbus_client.c:727: warning: No description found for return value of 'xenbus_unmap_ring_vfree'
xenbus_client.c:919: warning: missing initial short description on line:
 * xenbus_read_driver_state
xenbus_client.c:926: warning: No description found for return value of 'xenbus_read_driver_state'

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
---
 drivers/xen/xenbus/xenbus_client.c |   59 +++++++++++++++------------
 1 file changed, 34 insertions(+), 25 deletions(-)

diff -- a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -119,11 +119,13 @@ EXPORT_SYMBOL_GPL(xenbus_strstate);
  * @callback: callback to register
  *
  * Register a @watch on the given path, using the given xenbus_watch structure
- * for storage, and the given @callback function as the callback.  Return 0 on
- * success, or -errno on error.  On success, the given @path will be saved as
- * @watch->node, and remains the caller's to free.  On error, @watch->node will
+ * for storage, and the given @callback function as the callback.  On success,
+ * the given @path will be saved as @watch->node, and remains the
+ * caller's to free.  On error, @watch->node will
  * be NULL, the device will switch to %XenbusStateClosing, and the error will
  * be saved in the store.
+ *
+ * Returns: %0 on success or -errno on error
  */
 int xenbus_watch_path(struct xenbus_device *dev, const char *path,
 		      struct xenbus_watch *watch,
@@ -160,12 +162,14 @@ EXPORT_SYMBOL_GPL(xenbus_watch_path);
  * @pathfmt: format of path to watch
  *
  * Register a watch on the given @path, using the given xenbus_watch
- * structure for storage, and the given @callback function as the callback.
- * Return 0 on success, or -errno on error.  On success, the watched path
- * (@path/@path2) will be saved as @watch->node, and becomes the caller's to
- * kfree().  On error, watch->node will be NULL, so the caller has nothing to
+ * structure for storage, and the given @callback function as the
+ * callback.  On success, the watched path (@path/@path2) will be saved
+ * as @watch->node, and becomes the caller's to kfree().
+ * On error, watch->node will be NULL, so the caller has nothing to
  * free, the device will switch to %XenbusStateClosing, and the error will be
  * saved in the store.
+ *
+ * Returns: %0 on success or -errno on error
  */
 int xenbus_watch_pathfmt(struct xenbus_device *dev,
 			 struct xenbus_watch *watch,
@@ -255,13 +259,15 @@ abort:
 }
 
 /**
- * xenbus_switch_state
+ * xenbus_switch_state - save the new state of a driver
  * @dev: xenbus device
  * @state: new state
  *
  * Advertise in the store a change of the given driver to the given new_state.
- * Return 0 on success, or -errno on error.  On error, the device will switch
- * to XenbusStateClosing, and the error will be saved in the store.
+ * On error, the device will switch to XenbusStateClosing, and the error
+ * will be saved in the store.
+ *
+ * Returns: %0 on success or -errno on error
  */
 int xenbus_switch_state(struct xenbus_device *dev, enum xenbus_state state)
 {
@@ -305,7 +311,7 @@ static void xenbus_va_dev_error(struct x
 }
 
 /**
- * xenbus_dev_error
+ * xenbus_dev_error - place an error message into the store
  * @dev: xenbus device
  * @err: error to report
  * @fmt: error message format
@@ -324,7 +330,7 @@ void xenbus_dev_error(struct xenbus_devi
 EXPORT_SYMBOL_GPL(xenbus_dev_error);
 
 /**
- * xenbus_dev_fatal
+ * xenbus_dev_fatal - put an error messages into the store and then shutdown
  * @dev: xenbus device
  * @err: error to report
  * @fmt: error message format
@@ -346,7 +352,7 @@ void xenbus_dev_fatal(struct xenbus_devi
 }
 EXPORT_SYMBOL_GPL(xenbus_dev_fatal);
 
-/**
+/*
  * Equivalent to xenbus_dev_fatal(dev, err, fmt, args), but helps
  * avoiding recursion within xenbus_switch_state.
  */
@@ -453,7 +459,7 @@ void xenbus_teardown_ring(void **vaddr,
 }
 EXPORT_SYMBOL_GPL(xenbus_teardown_ring);
 
-/**
+/*
  * Allocate an event channel for the given xenbus_device, assigning the newly
  * created local port to *port.  Return 0 on success, or -errno on error.  On
  * error, the device will switch to XenbusStateClosing, and the error will be
@@ -479,7 +485,7 @@ int xenbus_alloc_evtchn(struct xenbus_de
 EXPORT_SYMBOL_GPL(xenbus_alloc_evtchn);
 
 
-/**
+/*
  * Free an existing event channel. Returns 0 on success or -errno on error.
  */
 int xenbus_free_evtchn(struct xenbus_device *dev, evtchn_port_t port)
@@ -499,7 +505,7 @@ EXPORT_SYMBOL_GPL(xenbus_free_evtchn);
 
 
 /**
- * xenbus_map_ring_valloc
+ * xenbus_map_ring_valloc - allocate & map pages of VA space
  * @dev: xenbus device
  * @gnt_refs: grant reference array
  * @nr_grefs: number of grant references
@@ -507,10 +513,11 @@ EXPORT_SYMBOL_GPL(xenbus_free_evtchn);
  *
  * Map @nr_grefs pages of memory into this domain from another
  * domain's grant table.  xenbus_map_ring_valloc allocates @nr_grefs
- * pages of virtual address space, maps the pages to that address, and
- * sets *vaddr to that address.  Returns 0 on success, and -errno on
- * error. If an error is returned, device will switch to
+ * pages of virtual address space, maps the pages to that address, and sets
+ * *vaddr to that address.  If an error is returned, device will switch to
  * XenbusStateClosing and the error message will be saved in XenStore.
+ *
+ * Returns: %0 on success or -errno on error
  */
 int xenbus_map_ring_valloc(struct xenbus_device *dev, grant_ref_t *gnt_refs,
 			   unsigned int nr_grefs, void **vaddr)
@@ -599,14 +606,15 @@ static int __xenbus_map_ring(struct xenb
 }
 
 /**
- * xenbus_unmap_ring
+ * xenbus_unmap_ring - unmap memory from another domain
  * @dev: xenbus device
  * @handles: grant handle array
  * @nr_handles: number of handles in the array
  * @vaddrs: addresses to unmap
  *
  * Unmap memory in this domain that was imported from another domain.
- * Returns 0 on success and returns GNTST_* on error
+ *
+ * Returns: %0 on success or GNTST_* on error
  * (see xen/include/interface/grant_table.h).
  */
 static int xenbus_unmap_ring(struct xenbus_device *dev, grant_handle_t *handles,
@@ -712,7 +720,7 @@ static int xenbus_map_ring_hvm(struct xe
 }
 
 /**
- * xenbus_unmap_ring_vfree
+ * xenbus_unmap_ring_vfree - unmap a page of memory from another domain
  * @dev: xenbus device
  * @vaddr: addr to unmap
  *
@@ -720,7 +728,8 @@ static int xenbus_map_ring_hvm(struct xe
  * Unmap a page of memory in this domain that was imported from another domain.
  * Use xenbus_unmap_ring_vfree if you mapped in your memory with
  * xenbus_map_ring_valloc (it will free the virtual address space).
- * Returns 0 on success and returns GNTST_* on error
+ *
+ * Returns: %0 on success or GNTST_* on error
  * (see xen/include/interface/grant_table.h).
  */
 int xenbus_unmap_ring_vfree(struct xenbus_device *dev, void *vaddr)
@@ -916,10 +925,10 @@ static int xenbus_unmap_ring_hvm(struct
 }
 
 /**
- * xenbus_read_driver_state
+ * xenbus_read_driver_state - read from state from a store path
  * @path: path for driver
  *
- * Return the state of the driver rooted at the given store path, or
+ * Returns: the state of the driver rooted at the given store path, or
  * XenbusStateUnknown if no state can be read.
  */
 enum xenbus_state xenbus_read_driver_state(const char *path)


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 18:52:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 18:52:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649396.1013877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAx0R-0000HO-KW; Wed, 06 Dec 2023 18:52:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649396.1013877; Wed, 06 Dec 2023 18:52:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAx0R-0000HH-HX; Wed, 06 Dec 2023 18:52:23 +0000
Received: by outflank-mailman (input) for mailman id 649396;
 Wed, 06 Dec 2023 18:52: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=L1Lg=HR=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1rAx0P-0000H5-M6
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 18:52:22 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 95415c08-9468-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 19:52:20 +0100 (CET)
Received: from j130084.upc-j.chello.nl ([24.132.130.84]
 helo=noisy.programming.kicks-ass.net)
 by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux))
 id 1rAwzg-003AJI-8e; Wed, 06 Dec 2023 18:51:36 +0000
Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000)
 id E0501300451; Wed,  6 Dec 2023 19:51:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95415c08-9468-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; 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=TgX+PmuAr5QRkCmSx0BsqqI+xnwWnFusCDa4CHApM4Y=; b=B5DPzN5JWKoYuSlpoDnvFq5zOY
	dzy+/0VlFQNrT2wh4LgPvSRluDKGcHlGhouKPTNRY/3vVEEFJ+IKrhPccE1kFE7jLARo3gHWsRE+m
	hyfobf0yCSUyHM9U1jb0+6DpKrPKsPx7L/YNpn8cKZHkYmiUO8SIvkZZWuqobDpGSal/sOYVBv7Vm
	XT8/adblz9WvVW6ebYI03bIYngMaLuIkVlBSScKOXh19/Mb231q3/GTdydkZEPlwte5TTgs3iRX+0
	AJ5UeGPpggFN+1gIc3zDpXpuIDmBzRjbLYup40yo3omwimvD2/V3tK6zybuhECjs7PtpcykiFidbn
	db/iU80A==;
Date: Wed, 6 Dec 2023 19:51:34 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: "Madhavan T. Venkataraman" <madvenka@linux.microsoft.com>
Cc: =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= <mic@digikod.net>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H . Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
	Kees Cook <keescook@chromium.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Alexander Graf <graf@amazon.com>,
	Chao Peng <chao.p.peng@linux.intel.com>,
	"Edgecombe, Rick P" <rick.p.edgecombe@intel.com>,
	Forrest Yuan Yu <yuanyu@google.com>,
	James Gowans <jgowans@amazon.com>,
	James Morris <jamorris@linux.microsoft.com>,
	John Andersen <john.s.andersen@intel.com>,
	Marian Rotariu <marian.c.rotariu@gmail.com>,
	Mihai =?utf-8?B?RG9uyJt1?= <mdontu@bitdefender.com>,
	=?utf-8?B?TmljdciZb3IgQ8OuyJt1?= <nicu.citu@icloud.com>,
	Thara Gopinath <tgopinath@microsoft.com>,
	Trilok Soni <quic_tsoni@quicinc.com>, Wei Liu <wei.liu@kernel.org>,
	Will Deacon <will@kernel.org>,
	Yu Zhang <yu.c.zhang@linux.intel.com>,
	Zahra Tarkhani <ztarkhani@microsoft.com>,
	=?utf-8?Q?=C8=98tefan_=C8=98icleru?= <ssicleru@bitdefender.com>,
	dev@lists.cloudhypervisor.org, kvm@vger.kernel.org,
	linux-hardening@vger.kernel.org, linux-hyperv@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org,
	qemu-devel@nongnu.org, virtualization@lists.linux-foundation.org,
	x86@kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH v2 17/19] heki: x86: Update permissions counters
 during text patching
Message-ID: <20231206185134.GA9899@noisy.programming.kicks-ass.net>
References: <20231113022326.24388-1-mic@digikod.net>
 <20231113022326.24388-18-mic@digikod.net>
 <20231113081929.GA16138@noisy.programming.kicks-ass.net>
 <a52d8885-43cc-4a4e-bb47-9a800070779e@linux.microsoft.com>
 <20231127200841.GZ3818@noisy.programming.kicks-ass.net>
 <ea63ae4e-e8ea-4fbf-9383-499e14de2f5e@linux.microsoft.com>
 <20231130113315.GE20191@noisy.programming.kicks-ass.net>
 <624a310b-c0d2-406c-a4a7-d851b3cc68f5@linux.microsoft.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <624a310b-c0d2-406c-a4a7-d851b3cc68f5@linux.microsoft.com>

On Wed, Dec 06, 2023 at 10:37:33AM -0600, Madhavan T. Venkataraman wrote:
> 
> 
> On 11/30/23 05:33, Peter Zijlstra wrote:
> > On Wed, Nov 29, 2023 at 03:07:15PM -0600, Madhavan T. Venkataraman wrote:
> > 
> >> Kernel Lockdown
> >> ---------------
> >>
> >> But, we must provide at least some security in V2. Otherwise, it is useless.
> >>
> >> So, we have implemented what we call a kernel lockdown. At the end of kernel
> >> boot, Heki establishes permissions in the extended page table as mentioned
> >> before. Also, it adds an immutable attribute for kernel text and kernel RO data.
> >> Beyond that point, guest requests that attempt to modify permissions on any of
> >> the immutable pages will be denied.
> >>
> >> This means that features like FTrace and KProbes will not work on kernel text
> >> in V2. This is a temporary limitation. Once authentication is in place, the
> >> limitation will go away.
> > 
> > So either you're saying your patch 17 / text_poke is broken (so why
> > include it ?!?) or your statement above is incorrect. Pick one.
> > 
> 
> It has been included so that people can be aware of the changes.
> 
> I will remove the text_poke() changes from the patchset and send it later when
> I have some authentication in place. It will make sense then.

If you know its broken then fucking say so in the Changelog instead of
wasting everybody's time.. OMG.


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 18:53:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 18:53:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649399.1013887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAx1n-0000oT-WC; Wed, 06 Dec 2023 18:53:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649399.1013887; Wed, 06 Dec 2023 18:53: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 1rAx1n-0000oM-SY; Wed, 06 Dec 2023 18:53:47 +0000
Received: by outflank-mailman (input) for mailman id 649399;
 Wed, 06 Dec 2023 18:53: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=uigp=HR=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1rAx1m-0000oE-W4
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 18:53:47 +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 c8925819-9468-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 19:53:45 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-54c5d041c23so132045a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 10:53:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8925819-9468-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701888825; x=1702493625; 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=ihGTYEniTkjtdxRgP7owzVf8ITuOwUCb0pPjHMeV5TE=;
        b=JHde+IdIiuleQT2tjIw0mrR+j8N9njplYLLBhOLXc4OiBKyU59JmvGXPQLa0yP9KAU
         UOZlRGQ0Mr9VzCiuhnh5S1IGnyGg+s6Lrpso05xRPYlY95ZBGJFL+4LYX8hY7hVvKpqw
         g8SAEZN2RU/T5KgQ2zTbowyj4od55Tons/3HW5NiYeXF/qeA5go15a2BxqL8Y/kEAf+P
         5CSizP6b2JyuX1U/2BbVUibFvi2PWQlorEEZ8v4ZYVvb/OLW+Qel0jrP64B8u6xCPUy2
         YtWqEzhMxiHhSzhyHYUmxIvcUtBo9zRvt70l8sXPDBffkgfCcShvV0uq8FPE7/O9kOIb
         z4EA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701888825; x=1702493625;
        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=ihGTYEniTkjtdxRgP7owzVf8ITuOwUCb0pPjHMeV5TE=;
        b=pEz9vy5jasRwE4WzrGw715JmWJCDaYaTnG9AU9lL74oGWtTzfMJFitwkMftKiXD4qL
         lYraoNjsHnwOdp4lSIw49yRhXfEEgFU7qc83NMw9faen5tfsyGuUoe+5pAx1id7j46eV
         c/rK/nqqa7sDkIHxO4Knb6zENBpT5IpLD8G8nVDA4jASxjP/GDRrU1XQuVFIixgZqBHH
         LnOwyDcAWxh8AKAmcPhoGvS4XEtyVPXY7FMPlljoLV5UplNzYEMrgim3YofU7s4Z6CZM
         WFLOUJNl3BGXl+23k3oNQlnogCk+zKU26NQRTbdRXeg6SCmXTRUqK2PLa6hhwgVf5MQR
         TBEg==
X-Gm-Message-State: AOJu0YwDnKpn8gYc7x9HHqyotRXm9/SZlIuj8PUn4E1Dv/Qy5CwI2HVM
	Q49XmyLJmgZ8sZceYjkoIE+HkRXEIbf0s7aTs/8=
X-Google-Smtp-Source: AGHT+IG+mpBT1oISrhPaycnyi1xjaPgoHsi6s0BkvpiGUdS2fnnKTLuioIqDLqHu6GPTgTTk2xRa0NoWm3MHWcq0+24=
X-Received: by 2002:a50:9b41:0:b0:54c:e644:aa0e with SMTP id
 a1-20020a509b41000000b0054ce644aa0emr509222edj.19.1701888825224; Wed, 06 Dec
 2023 10:53:45 -0800 (PST)
MIME-Version: 1.0
References: <20231110160804.29021-1-jgross@suse.com> <20231110160804.29021-16-jgross@suse.com>
 <CAKf6xpty3ENpuPgTf7=Gk1Q-Ekn+FjOx=-ySMQF6v3kx7zntrw@mail.gmail.com> <CAEBZRSdyoCH2CFP14imC9We+sTiGn8f-DWecQ1t+ftd0+=0xwg@mail.gmail.com>
In-Reply-To: <CAEBZRSdyoCH2CFP14imC9We+sTiGn8f-DWecQ1t+ftd0+=0xwg@mail.gmail.com>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Wed, 6 Dec 2023 13:53:33 -0500
Message-ID: <CAKf6xpuamYUe_HPuw_m38PBO9cgLpq-H4f_1qjGt5C7ptSkCoA@mail.gmail.com>
Subject: Re: [PATCH v2 15/29] tools/libs/light: add backend type for 9pfs PV devices
To: Nick Rosbrook <rosbrookn@gmail.com>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 6, 2023 at 12:44=E2=80=AFPM Nick Rosbrook <rosbrookn@gmail.com>=
 wrote:
>
> On Wed, Dec 6, 2023 at 9:36=E2=80=AFAM Jason Andryuk <jandryuk@gmail.com>=
 wrote:
> > FYI, these IDL changes will require golang binding regeneration.
> > (Maybe we shouldn't have generated code checked in...)
>
> The generated code needs to be checked in for it to work as a go module.

I don't follow. The build system generates the *.gen.go binding files
if they are missing.  They can then be used, installed or packaged.
Why do they need to be checked into the git repo?  Checked in, they
have a tendency to go stale.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 19:17:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 19:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649404.1013897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAxOM-0005gS-Li; Wed, 06 Dec 2023 19:17:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649404.1013897; Wed, 06 Dec 2023 19: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 1rAxOM-0005gL-In; Wed, 06 Dec 2023 19:17:06 +0000
Received: by outflank-mailman (input) for mailman id 649404;
 Wed, 06 Dec 2023 19:17:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAxOL-0005es-DE
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 19:17:05 +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 1rAxO7-0008Cy-Bj; Wed, 06 Dec 2023 19:16:51 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.16.253]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAxO7-00061n-32; Wed, 06 Dec 2023 19:16:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=Si9qpS/ukHHUUZ+pdHczgjD5HU9rSF3Tjs44fcnyMU8=; b=Bcp9JwomvJOc4okiaEutg2ywxw
	32Hq6aVNRFXZ5onAAHLOhY3AmuFyXgo3aQ7M5WegqSK1dFDLhaj1BzKy1+uCwty5LNbWEwyyeNqPJ
	hn09mwXEF/K/BvgdCUtBUJ2VVeFljqO74/3V2tzwjOd4XTt9GGn/DRXDHcEIlRNzbiOU=;
Message-ID: <5b9d3f50-fa84-4960-b91f-d1418b8399fd@xen.org>
Date: Wed, 6 Dec 2023 19:16:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Only compile the hypervisor with
 -Wdeclaration-after-statement
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>,
 Juergen Gross <jgross@suse.com>, Alexander Kanavin <alex@linutronix.de>,
 xen-devel@lists.xenproject.org
References: <20231205183226.26636-1-julien@xen.org>
 <c7d844ea-139e-416f-bb8e-51e63c0fe3ed@suse.com>
 <5f31e7d9-fedb-43d4-b8e6-9304c387f282@xen.org>
 <1f46fa0d-8208-49fc-bb38-451616d1e7a9@suse.com>
 <f75edcea-c846-4e31-866d-4df7a7e0cbff@xen.org>
 <0033f56a-cdb7-408b-b78e-823135a463af@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0033f56a-cdb7-408b-b78e-823135a463af@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 06/12/2023 11:08, Jan Beulich wrote:
> On 06.12.2023 12:07, Julien Grall wrote:
>> Hi Jan,
>>
>> On 06/12/2023 11:05, Jan Beulich wrote:
>>> On 06.12.2023 11:52, Julien Grall wrote:
>>>> Hi Jan,
>>>>
>>>> On 06/12/2023 08:52, Jan Beulich wrote:
>>>>> On 05.12.2023 19:32, Julien Grall wrote:
>>>>>> From: Julien Grall <jgrall@amazon.com>
>>>>>>
>>>>>> Right now, all tools and hypervisor will be complied with the option
>>>>>> -Wdeclaration-after-statement. While most of the code in the hypervisor
>>>>>> is controlled by us, for tools we may import external libraries.
>>>>>>
>>>>>> The build will fail if one of them are using the construct we are
>>>>>> trying to prevent. This is the case when building against Python 3.12
>>>>>> and Yocto:
>>>>>>
>>>>>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44,
>>>>>> |                  from xen/lowlevel/xc/xc.c:8:
>>>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE':
>>>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>>>>>> |   233 |     PyVarObject *var_ob = _PyVarObject_CAST(ob);
>>>>>> |       |     ^~~~~~~~~~~
>>>>>> | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53:
>>>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue':
>>>>>> | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
>>>>>> |   121 |     Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
>>>>>> |       |     ^~~~~~~~~~
>>>>>> | cc1: all warnings being treated as errors
>>>>>>
>>>>>> Looking at the tools directory, a fair few directory already add
>>>>>> -Wno-declaration-after-statement to inhibit the default behavior.
>>>>>>
>>>>>> We have always build the hypervisor with the flag, so for now remove
>>>>>> only the flag for anything but the hypervisor. We can decide at later
>>>>>> time whether we want to relax.
>>>>>>
>>>>>> Also remove the -Wno-declaration-after-statement in some subdirectory
>>>>>> as the flag is now unnecessary.
>>>>>
>>>>> With all these removals, don't you need to add the option centrally
>>>>> somewhere? Or else are you sure that no compiler version, including
>>>>> distro-customized ones, would ever come with the warning enabled by
>>>>> default?
>>>>
>>>> I can't really go through the dozens of different built compilers... But
>>>> I would find odd that a compiler will force this option. I view it as a
>>>> style enforcement option and that's not up to a distro to decide what
>>>> every projects do.
>>>>
>>>> Also, Allowing your thinking, we would need to add -Wno-switch-default &
>>>> co just in case a compiler decide to enable it. So where would we stop
>>>> adding -Wno-*?
>>>>
>>>> I don't think this is very scalable.
>>>
>>> I agree on this point, but: With the change you do there's a (slim) risk
>>> of introducing build breakage. With other -W* / -Wno-* options we haven't
>>> had reports of build issues.
>>
>> The chance is very unlikely here. So I am not in favor of doing this. I
>> would like the opinion from the others.
> 
> Well, it's Anthony anyway who has the final say. I'm not going to insist,
> I merely wanted to point out a possible issue.

Anthony approved it. So I have committed the patch.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 19:19:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 19:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649406.1013906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAxQo-0006NZ-2a; Wed, 06 Dec 2023 19:19:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649406.1013906; Wed, 06 Dec 2023 19:19:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAxQn-0006NS-WF; Wed, 06 Dec 2023 19:19:38 +0000
Received: by outflank-mailman (input) for mailman id 649406;
 Wed, 06 Dec 2023 19:19: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=bpNQ=HR=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rAxQm-0006NI-FS
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 19:19:36 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62b2f663-946c-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 20:19:34 +0100 (CET)
Received: from orsmga008.jf.intel.com ([10.7.209.65])
 by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Dec 2023 11:19:30 -0800
Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15])
 by orsmga008.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 06 Dec 2023 11:19:29 -0800
Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by
 ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35; Wed, 6 Dec 2023 11:19:29 -0800
Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by
 orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35 via Frontend Transport; Wed, 6 Dec 2023 11:19:29 -0800
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.40) by
 edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.35; Wed, 6 Dec 2023 11:19:28 -0800
Received: from SA1PR11MB6734.namprd11.prod.outlook.com (2603:10b6:806:25d::22)
 by CH3PR11MB8316.namprd11.prod.outlook.com (2603:10b6:610:17b::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25; Wed, 6 Dec
 2023 19:19:26 +0000
Received: from SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3]) by SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3%7]) with mapi id 15.20.7046.034; Wed, 6 Dec 2023
 19:19: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: 62b2f663-946c-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701890374; x=1733426374;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=1vQS6ukXMcuLdTbdA4YDtCeJQ34AsP+y7V2Za/Q1wzI=;
  b=nxGGiDX4Az6Jfdbi3cspQMc7UdagfBUGhvBrxvnG5KrUW5gIJJ4bg9xd
   zgiYLWag8bhFt376R1OFKQnS8ywGhL3KoCmv4gi12T5llLZTcuxmiV8jX
   Uzg2LUfcY5WQ9sNLVXssOJtobhczrnJT8AqrnDsGEztAu6r9lUMLHlBf9
   Ti4xs3tM1cKuAhv6x1o4+yI6N7/imSEZvz8bgGCaU7QfOb8FPHRblOLy1
   3WhIoARwwppP1+UEIlUUIln6tSE7vDDYPGbJ3Xeo2ZCAGdjB306tkvCDa
   YbI/gUoFa5IKul8tp5M7xeDWcuK/ZPzlXFvhFBMZoEYvLr3SVdOYCDuRq
   w==;
X-IronPort-AV: E=McAfee;i="6600,9927,10916"; a="1212843"
X-IronPort-AV: E=Sophos;i="6.04,256,1695711600"; 
   d="scan'208";a="1212843"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10916"; a="800449550"
X-IronPort-AV: E=Sophos;i="6.04,256,1695711600"; 
   d="scan'208";a="800449550"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jAL2vLDRkzFPXAUZoi9fDSf05OT9E3jySM0rs44FXSW0doVTgbB0RopGgMDY/+qz94M414BLQs4427Qr5/NQXXcq84LtKi4+PiJvEEuV5un2lPfDU3y9yVCljj7PlDq93NV/9EOXSaNEIwr8dYqmTF2WaqdQSmJitTastQiitZ7xigWQQ19dGHJRUnCHtavMEz6jvGIyAOe3uy7FlCub9uvpsEtyL1EXIy9hEeNbeNYc2EaTqyCfevwwmFDAHld3Mt177rWCTGGY0dilomt2HUYQF07om8jlxvR5vSuZkbz9nYmn2gxJdtbkFjVp336ve5Ze5MKqOrzUjxDrE8nB4Q==
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=1vQS6ukXMcuLdTbdA4YDtCeJQ34AsP+y7V2Za/Q1wzI=;
 b=S1Z2ZVz9BiacI4YtZcnn7lGDpGFxalTLLikTieaaJ7b50j7B2CeyBqZWRaCXppfxuhk5hBLoBsPMOAvrYG65dQYwKgYgVh0oNe246zuAj8MqUyOf8/EfzIhLads59+PyjyKOn8IXRpcQPjuAm/0gRfrgKToJ+3HOHYMhSmzW8xYLssV9CF9JmZ3+VxDzSZ5ZMRVNxDauKM7cHG57LUxQbPbPUzjVmsU/HdTxncfsn4FGlU+2GoEtVxXErydiN8eXr29lXHd1GuWrSec6brJukuMSfLrR+9U12gYrXMTLDPymu9GJXDxMDs+B4zr7LrHOwFw/jb58GhK8JgokuK/b5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
From: "Li, Xin3" <xin3.li@intel.com>
To: "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "tglx@linutronix.de" <tglx@linutronix.de>, "mingo@redhat.com"
	<mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org"
	<x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>, "Lutomirski, Andy"
	<luto@kernel.org>, "pbonzini@redhat.com" <pbonzini@redhat.com>,
	"seanjc@google.com" <seanjc@google.com>, "peterz@infradead.org"
	<peterz@infradead.org>, "Gross, Jurgen" <jgross@suse.com>, "Shankar, Ravi V"
	<ravi.v.shankar@intel.com>, "mhiramat@kernel.org" <mhiramat@kernel.org>,
	"jiangshanlai@gmail.com" <jiangshanlai@gmail.com>, "nik.borisov@suse.com"
	<nik.borisov@suse.com>, "Kang, Shan" <shan.kang@intel.com>
Subject: RE: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Thread-Topic: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Thread-Index: AQHaJ215PhEOYu43sEObVSTXzfHZOLCanWSAgAE5e5CAAHaQAIAAUcKg
Date: Wed, 6 Dec 2023 19:19:26 +0000
Message-ID: <SA1PR11MB673472A25E72022F68882869A884A@SA1PR11MB6734.namprd11.prod.outlook.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
 <20231205105030.8698-27-xin3.li@intel.com>
 <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com>
 <SA1PR11MB67343544B0CEB6C82002790DA884A@SA1PR11MB6734.namprd11.prod.outlook.com>
 <4e41b658-f49e-424c-8a86-08c8ab8e384d@citrix.com>
In-Reply-To: <4e41b658-f49e-424c-8a86-08c8ab8e384d@citrix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA1PR11MB6734:EE_|CH3PR11MB8316:EE_
x-ms-office365-filtering-correlation-id: c29a1c6c-b34e-4ba2-8ac9-08dbf6904316
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;
x-microsoft-antispam-message-info: NUuKmn4dllaOhkfrj+zV5qjuqmC3Td+yzJZ00as/39MeZrs/z6/4Ogj5qGyCwNV0pogORt1lqATc+NeQj7xTxDyzn/9AQ8bS23kkZipezPY1XYNFxoebmjceq+qvmjuJpbT4Xx70CxhxlVx8GtyLX+NCBFfzm924EYxd6NamCCd/NEZwKqCsIS3P7eFHs2NV1ryiZPMaU4psgm5iCTPpOko4pWCR50v9cqEb77XMwzL8uyf7odsQKGJLmNZ86hv4mB3QSxhbY4HN4SsomsSK3qpA9yRluvY+h3aFC5kBGMWvdN+7OOPnFMbEsDJ4KQbjdfsypbEDU2gIRRIbfkLx47Duym1IBmfdEsPuWrEU/n406EirGMEWwn5adRT4oZYGGvwVfG/7rNzmt9HxQLdr+P4d25Eetve/PrUKjn3iUIKddI6HD4F97PcPnV28Uz5vPZcnyPqxs68lr+NFS/EGjnL4Cun/v/p1/sY+MBlRywFA+h2IivJH4Idu1nYVXdn4u6j+7jitqDDnOMmLwiYXN9ChhCY3IL7ltwyyzeiAVbGKqH1OPjm0R4nxc0ME3nJ5D4eBOPP4WUK1Bd13zaEqI74olkegv1ui+gxZKD8DVCadVtjpQstgQQ+t6AqRNAUo
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB6734.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(346002)(396003)(136003)(376002)(39860400002)(230922051799003)(451199024)(64100799003)(186009)(1800799012)(83380400001)(7696005)(71200400001)(9686003)(6506007)(26005)(55016003)(316002)(66946007)(76116006)(110136005)(66556008)(66476007)(66446008)(64756008)(54906003)(38070700009)(5660300002)(33656002)(2906002)(7416002)(4326008)(86362001)(8676002)(8936002)(122000001)(52536014)(41300700001)(38100700002)(82960400001)(478600001);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NDlVYW9VZ2FCeXR0RXBLTTRySFpYUXZtQllWcldoZVFzZWpXVWp4amt3OWM5?=
 =?utf-8?B?TjZJemQxTEhMN0lDWC9rQUlhYzhFS2lFTjcxeGJZRW1HUkdUR3NuU1ZlMzd4?=
 =?utf-8?B?b2pORkxUclhET2NFYXRibDNXeGp5bTkrRGxoRE5jVXQ2Y0ZqZkJTbHhISE9y?=
 =?utf-8?B?cHdiTDNxUk5HeHllRmpKeElkTHhiZkw5b1F1bmNocE1MTHBVMGpybWdYZTQy?=
 =?utf-8?B?ck84S2phZlp5dUpXbzdiTXN2cTdVTHg1QWdydW9YUGJkTXBpWm4yMm5UQUMx?=
 =?utf-8?B?dlJ6NUw1V2poWXNCdDJQVVZGS1RkNENNUEtPWHU3R1d6eXQ0VEVVL2l4WTVk?=
 =?utf-8?B?WGJJYnFrT0FhdHVHNUZ5OW1EUEdaK2NUcU9WK1NiNW9wNUp4eC9FRW1lbDNJ?=
 =?utf-8?B?YnF2SjBteWRZZlpYamFIOUFmbWllTWtsNG1qTmRaeVpvL2NscjdFZ3ZlNnQw?=
 =?utf-8?B?cEkzWkhwN2ptNmRrUG92bmxnRmdEWEx0dVRSMEZFbXI3a21Bc1ZZZEhpdjN2?=
 =?utf-8?B?VEtxbnlqaVVuRi9YZGhKc1BxQ3ZZWGNGMDhuR2pHZ2RqRUFTbVVjKzRuU2Er?=
 =?utf-8?B?b1BhdjM2a1BNUmZESS9BZUhOaG5aQlBPWlRROU1MQStDblN2aXFVakFLUjBw?=
 =?utf-8?B?M0V2T3lsV0pER29YQ0VibGtYLyt1elk0emtvUDFubDZFWGlyVlJMckhKRTJU?=
 =?utf-8?B?YmhTWFpGWDV2TzI1c1dzMlpySThNcTJqSFZuUmdZVXR0Y1F0OGNxKyt0RVZO?=
 =?utf-8?B?T0ZXdnM5Y3VDd1R0QWoxN203QzNZYTUzWUpJWko3ZThWY2l6cS8xZlBSemx6?=
 =?utf-8?B?YmoyQzdWVlNaaE9FdnAwTENPcGs0ZUNBRXFjczV3alY4QURFdDl3RDJwUzU3?=
 =?utf-8?B?Vy9QdFJQWjFHMDBIZU13dXczVis2NXpaaVFPbm1rMnhyd1dpNWFtSlgxbEdU?=
 =?utf-8?B?TmkzKzBZRTFlQjJDemd1Z0lSc1hhcmt0NlAwTCszakgxVFZVeUxOeUlMK2RM?=
 =?utf-8?B?YkJUaVVGTVNqTWpERUJ2VWhtQ0lQMFdzNllCcVAvVmxhYnVuSHpmcFlIL01Z?=
 =?utf-8?B?QWxNNHZCS2czeXN5WnRFRitkWFhlaXZUczNxRzFTM2s4MEhsemppOFkzdUZ6?=
 =?utf-8?B?RUVGMVhPeGpITy9uR2E0MmRwTUc3S3ROVjdhVDFYaHNscnlqT2o3OHM2UnZI?=
 =?utf-8?B?KzEwZkRRUC9lQ0tGa0MvUkd2dWF0UGcrSWlGb1RGR1cxakNCRUE0bE1aUUY5?=
 =?utf-8?B?dUdaUk1PSStEeEhZMWw1OFdZcGFsd2p6dWM3V3YycmR5dTY5bEFDZGUvQjdi?=
 =?utf-8?B?YWg0Q0lsM2pUeGRkSG5uK3FEdjhxZXo3eFdFcklaem10NUN3ZVMwQmhEVWo1?=
 =?utf-8?B?dGhHSWxvTnJzVHZoVnA0RWR6Skp1SnlPcnZycjdjeWF0NEpEdFZwR1hNd0x0?=
 =?utf-8?B?MmtRWUJrL1NkVVJmamI5R1FlSlN6VGFPMEpJK28wM1RRT0M0cFpoeTV0ZFkx?=
 =?utf-8?B?WUEvdkljM2kreDI1SVNPbGdLa0NHWU1IWE1GSEdpZmQwd3U3cWF0aHlObW41?=
 =?utf-8?B?Z0VRQ2lTOEZCNzNzN3JkRnQ1alVnRmlCcEs0QnNzUWMzMTJ4akRBZDhhZUhE?=
 =?utf-8?B?cktCUWxjTkFjRTFkdDZ2bnlldms4dXJqdHNrWnFTL1FBQ0lCTG5WK2trVXJ0?=
 =?utf-8?B?S2VsME1BcGxmQzVzbzdaY2pUSDRwTTRQZk52d2FGVzRaSU1JRW1mQVNUOGVJ?=
 =?utf-8?B?ZmR4c1J0N3NiZEVRR2tNdVJFSlJXRzNKT3VEZDMyaEx1UVpnVk53MmFsMzBJ?=
 =?utf-8?B?Q2h0M1dSRytxWXVSaG1RYTYzRWF4QzJybGhwalVnZ2JXZW9tVnYycm83OUI5?=
 =?utf-8?B?Y2VEMkhKQlJWeXpTTElVc0NwUFIrSFU0WUdxUEFOTVAzeXVkejdHYURtWCt6?=
 =?utf-8?B?WUJEbmowc1o0V205TWZyRnlGUW14TGNZM080ZWo0L3hsbTJDZnlicmJsdHQz?=
 =?utf-8?B?SWFjemVibU1hVVkvUDlRekJUZnZSYWkxWDhSZGUzOGlBUUoyMHhLKzAyMWVH?=
 =?utf-8?B?Vm1RVkxwaFNpeGpVNVhreWtGbXRjZjc1T0QzY3dISEh5Y0lVVlFSVWh6M0ZV?=
 =?utf-8?Q?s5dU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6734.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c29a1c6c-b34e-4ba2-8ac9-08dbf6904316
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2023 19:19:26.3669
 (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: t898gUy+pxrMnxlORz38ZpFvtGOwrrVSYhgcJ3DmSRSL1aj6STiHfz6Op+Rqba3D6rtDmskIFCwdaXTfYYXcGg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8316
X-OriginatorOrg: intel.com

PiA+Pj4gKwljYXNlIFg4Nl9UUkFQX09GOg0KPiA+Pj4gKwkJZXhjX292ZXJmbG93KHJlZ3MpOw0K
PiA+Pj4gKwkJcmV0dXJuOw0KPiA+Pj4gKw0KPiA+Pj4gKwkvKiBJTlQzICovDQo+ID4+PiArCWNh
c2UgWDg2X1RSQVBfQlA6DQo+ID4+PiArCQlleGNfaW50MyhyZWdzKTsNCj4gPj4+ICsJCXJldHVy
bjsNCj4gPj4gLi4uIG5laXRoZXIgT0Ygbm9yIEJQIHdpbGwgZXZlciBlbnRlciBmcmVkX2ludHgo
KSBiZWNhdXNlIHRoZXkncmUNCj4gPj4gdHlwZSBTV0VYQyBub3QgU1dJTlQuDQo+ID4gUGVyIEZS
RUQgc3BlYyA1LjAsIHNlY3Rpb24gNy4zIFNvZnR3YXJlIEludGVycnVwdHMgYW5kIFJlbGF0ZWQg
SW5zdHJ1Y3Rpb25zOg0KPiA+IElOVCBuIChvcGNvZGUgQ0QgZm9sbG93ZWQgYnkgYW4gaW1tZWRp
YXRlIGJ5dGUpOiBUaGVyZSBhcmUgMjU2IHN1Y2gNCj4gPiBzb2Z0d2FyZSBpbnRlcnJ1cHQgaW5z
dHJ1Y3Rpb25zLCBvbmUgZm9yIGVhY2ggdmFsdWUgbiBvZiB0aGUgaW1tZWRpYXRlDQo+ID4gYnl0
ZSAoMOKAkzI1NSkuDQo+ID4NCj4gPiBBbmQgYXBwZW5kaXggQiBFdmVudCBTdGFjayBMZXZlbHM6
DQo+ID4gSWYgdGhlIGV2ZW50IGlzIGFuIGV4ZWN1dGlvbiBvZiBJTlQgbiAob3Bjb2RlIENEIG4g
Zm9yIDgtYml0IHZhbHVlIG4pLA0KPiA+IHRoZSBldmVudCBzdGFjayBsZXZlbCBpcyAwLiBUaGUg
ZXZlbnQgdHlwZSBpcyA0IChzb2Z0d2FyZSBpbnRlcnJ1cHQpDQo+ID4gYW5kIHRoZSB2ZWN0b3Ig
aXMgbi4NCj4gPg0KPiA+IFNvIGludCAkMHg0IGFuZCBpbnQgJDB4MyAodXNlIGFzbSgiLmJ5dGUg
MHhDRCwgMHgwMyIpKSBnZXQgaGVyZS4NCj4gPg0KPiA+IEJ1dCBpbnRvICgweENFKSBhbmQgaW50
MyAoMHhDQykgZG8gdXNlIGV2ZW50IHR5cGUgU1dFWEMuDQo+ID4NCj4gPiBCVFcsIGludG8gaXMg
Tk9UIGFsbG93ZWQgaW4gNjQtYml0IG1vZGUgYnV0ICJpbnQgJDB4NCIgaXMgYWxsb3dlZC4NCj4g
DQo+IFRoZXJlIGlzIGNlcnRhaW5seSBmdW4gdG8gYmUgaGFkIHdpdGggQ0QgMDMgYW5kIENEIDA0
IGJ5dGUgcGF0dGVybnMsIGJ1dCBpZiB5b3UNCj4gbWVhbnQgdG8gbWVhbiB0aG9zZSBoZXJlLCB0
aGVuIHRoZSBjb21tZW50cyBhcmUgd3JvbmcuDQo+IA0KPiBWZWN0b3JzIDMgYW5kIDQgYXJlIGlu
c3RhbGxlZCB3aXRoIERQTDMgYmVjYXVzZSB0aGF0IGlzIG5lY2Vzc2FyeSB0byBtYWtlIENDIGFu
ZA0KPiBDRSBmdW5jdGlvbiBpbiB1c2Vyc3BhY2UuwqAgSXQgYWxzbyBzdWdnZXN0cyB0aGF0IHRo
ZSBTV0lOVCB2cyBTV0VYQyBkaXN0aW5jdGlvbg0KPiB3YXMgcmV0cm9maXR0ZWQgdG8gYXJjaGl0
ZWN0dXJlIGFmdGVyIHRoZSAyODYsIGJlY2F1c2UgZXhjZXB0aW9ucyBkb24ndCBjaGVjayBEUEwN
Cj4gYW5kIElDRUJQIGRlbGl2ZXJzICNEQiBmcm9tIHVzZXJzcGFjZSBldmVuIHdoZW4gVmVjdG9y
IDEgaGFzIGEgRFBMIG9mIDAuDQo+IA0KPiBXaGlsZSBDQyBpcyBmb3IgbW9zdCBjYXNlcyBpbmRp
c3Rpbmd1aXNoYWJsZSBmcm9tIENEIDAzLCBDRSBiZWhhdmVzIGVudGlyZWx5DQo+IGRpZmZlcmVu
dGx5IHRvIENEIDA0LsKgIENEIDA0IGRvZXNuJ3QgI1VEIGluIDY0Yml0IG1vZGUsIGFuZCB3aWxs
IHRyaWdnZXINCj4gZXhjX292ZXJmbG93KCkgaXJyZXNwZWN0aXZlIG9mIHRoZSBzdGF0ZSBvZiBF
RkxBR1MuT0YuDQo+IA0KPiANCj4gVGhlIFNETSBnb2VzIG91dCBvZiBpdCdzIHdheSB0byBzYXkg
bm90IHRvIHVzZSB0aGUgQ0QgMDMgYnl0ZSBwYXR0ZXJuIChhbmQgaXQNCj4gZG9lcyB0YWtlIGVm
Zm9ydCB0byBlbWl0IHRoaXMgYnl0ZSBwYXR0ZXJuIC0gZS5nLiBHQVMgd2lsbCBzaWxlbnRseSB0
cmFuc2xhdGUgImludCAkMyINCj4gdG8gImludDMiKSwgYW5kIHRoZXJlJ3Mgbm8gcGxhdXNpYmxl
IHdheSBzb2Z0d2FyZSBpcyB1c2luZyBDRCAwNCBpbiBwbGFjZSBvZiBDRS4NCj4gDQo+IFNvIHdo
eSBkbyB3ZSBjYXJlIGFib3V0IGNvbnRhaW5pbmcgdG8gbWFrZSBtaXN0YWtlcyBvZiB0aGUgSURU
IGVyYSB3b3JrIGluIGENCj4gRlJFRCB3b3JsZD8NCg0KRmlyc3QsIEkgYWdyZWUgd2l0aCB5b3Ug
YmVjYXVzZSBpdCBtYWtlcyB0aGluZ3Mgc2ltcGxlIGFuZCBuZWF0Lg0KDQpIb3dldmVyLCB0aGUg
bGF0ZXN0IFNETSBhbmQgRlJFRCBzcGVjIDUuMCBib3RoIGRvZXNuJ3QgZGlzYWxsb3cgaXQsIHNv
IGl0DQpiZWNvbWVzIGFuIE9TIGltcGxlbWVudGF0aW9uIGNob2ljZS4NCg0KPiANCj4gSXMgdGhl
cmUgYW55dGhpbmcgKG90aGVyIHRoYW4gcGVyaGFwcyB0aGUgc2VsZnRlc3RzKSB3aGljaCB3b3Vs
ZCBldmVuIG5vdGljZT8NCg0KSSdtIGp1c3QgY29uc2VydmF0aXZlIDopDQoNCklmIGEgdXNlciBh
cHAgY2FuIGRvIGl0IHdpdGggSURULCB3ZSBzaG91bGQgc3RpbGwgYWxsb3cgaXQgd2hlbiBGUkVE
IGlzDQplbmFibGVkLiAgQnV0IGlmIGFsbCBrZXkgc3Rha2Vob2xkZXJzIGRvbid0IGNhcmUgd2hh
dGV2ZXIgZ2V0cyBicm9rZW4NCmR1ZSB0byB0aGUgY2hhbmdlIGFuZCBhZ3JlZSB0byBjaGFuZ2Ug
aXQuDQoNCj4gPj4+ICsJCWluc3RydW1lbnRhdGlvbl9lbmQoKTsNCj4gPj4+ICsJCWlycWVudHJ5
X2V4aXQocmVncywgc3RhdGUpOw0KPiA+Pj4gKwl9IGVsc2Ugew0KPiA+Pj4gKwkJY29tbW9uX2lu
dGVycnVwdChyZWdzLCB2ZWN0b3IpOw0KPiA+Pj4gKwl9DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+
Pj4gK3N0YXRpYyBub2luc3RyIHZvaWQgZnJlZF9leGNlcHRpb24oc3RydWN0IHB0X3JlZ3MgKnJl
Z3MsIHVuc2lnbmVkDQo+ID4+PiArbG9uZyBlcnJvcl9jb2RlKSB7DQo+ID4+PiArCS8qIE9wdGlt
aXplIGZvciAjUEYuIFRoYXQncyB0aGUgb25seSBleGNlcHRpb24gd2hpY2ggbWF0dGVycw0KPiA+
Pj4gK3BlcmZvcm1hbmNlDQo+ID4+IHdpc2UgKi8NCj4gPj4+ICsJaWYgKGxpa2VseShyZWdzLT5m
cmVkX3NzLnZlY3RvciA9PSBYODZfVFJBUF9QRikpIHsNCj4gPj4+ICsJCWV4Y19wYWdlX2ZhdWx0
KHJlZ3MsIGVycm9yX2NvZGUpOw0KPiA+Pj4gKwkJcmV0dXJuOw0KPiA+Pj4gKwl9DQo+ID4+PiAr
DQo+ID4+PiArCXN3aXRjaCAocmVncy0+ZnJlZF9zcy52ZWN0b3IpIHsNCj4gPj4+ICsJY2FzZSBY
ODZfVFJBUF9ERTogcmV0dXJuIGV4Y19kaXZpZGVfZXJyb3IocmVncyk7DQo+ID4+PiArCWNhc2Ug
WDg2X1RSQVBfREI6IHJldHVybiBmcmVkX2V4Y19kZWJ1ZyhyZWdzKTsNCj4gPj4+ICsJY2FzZSBY
ODZfVFJBUF9CUDogcmV0dXJuIGV4Y19pbnQzKHJlZ3MpOw0KPiA+Pj4gKwljYXNlIFg4Nl9UUkFQ
X09GOiByZXR1cm4gZXhjX292ZXJmbG93KHJlZ3MpOw0KPiA+PiBEZXBlbmRpbmcgb24gd2hhdCB5
b3Ugd2FudCB0byBkbyB3aXRoIEJQL09GIHZzIGZyZWRfaW50eCgpLCB0aGlzIG1heQ0KPiA+PiBu
ZWVkIGFkanVzdGluZy4NCj4gPj4NCj4gPj4gSWYgeW91IGFyZSBjcm9zcy1jaGVja2luZyB0eXBl
IGFuZCB2ZWN0b3IsIHRoZW4gdGhlc2Ugc2hvdWxkIGJlDQo+ID4+IHJlamVjdGVkIGZvciBub3Qg
YmVpbmcgb2YgdHlwZSBIV0VYQy4NCj4gPiBZb3UncmUgcmlnaHQsIHRoZSBldmVudCB0eXBlIG5l
ZWRzIHRvIGJlIFNXRVhDIGZvciBpbnRvIGFuZCBpbnQzLg0KPiA+DQo+ID4gSG93ZXZlciwgd291
bGQgaXQgYmUgb3ZlcmtpbGxpbmc/ICBBc3N1bWluZyBoYXJkd2FyZSBhbmQgVk1NIGFyZSBzYW5l
Lg0KPiANCj4gWW91IGVpdGhlciBjYXJlIGFib3V0IGNyb3NzIGNoZWNraW5nLCBvciBub3QuwqAg
UmlnaHQgbm93LCB0aGlzIHBhdGNoIGlzIGEgbWl4IG9mIHRoZQ0KPiB0d28gYXBwcm9hY2hlcy4N
Cj4gDQo+IEluIG15IG9waW5pb24sIGNyb3NzLWNoZWNraW5nIGlzIHRoZSBiZXR0ZXIgYXBwcm9h
Y2gsIGJlY2F1c2UgaXQgbWVhbnMgdGhhdA0KPiB2aW9sYXRpb25zIG9mIHRoZSBhc3N1bXB0aW9u
cyBnZXQgbm90aWNlZCBtb3JlIHF1aWNrbHksIGFuZCBob3BlZnVsbHkgYnkNCj4gd2hvbWV2ZXIg
aXMgd29ya2luZyBvbiB0aGUgbmV3IGZlYXR1cmUgd2hpY2ggYWx0ZXJzIHRoZSBhc3N1bXB0aW9u
cy4NCg0KWWVhaCwgSSBjYW4gbWFrZSB0aGUgY2hhbmdlLg0KDQpUaGFua3MhDQogICAgWGluDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 19:27:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 19:27:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649412.1013916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAxYh-0000Qn-Vr; Wed, 06 Dec 2023 19:27:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649412.1013916; Wed, 06 Dec 2023 19: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 1rAxYh-0000Qg-T2; Wed, 06 Dec 2023 19:27:47 +0000
Received: by outflank-mailman (input) for mailman id 649412;
 Wed, 06 Dec 2023 19:27:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lJmz=HR=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1rAxYg-0000Qa-SJ
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 19:27:47 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 85bcb5bf-946d-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 20:27:43 +0100 (CET)
Received: from [127.0.0.1] ([98.35.210.218]) (authenticated bits=0)
 by mail.zytor.com (8.17.2/8.17.1) with ESMTPSA id 3B6JQkxV3836341
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 6 Dec 2023 11:26:47 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 85bcb5bf-946d-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 3B6JQkxV3836341
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2023111101; t=1701890808;
	bh=akiKjejgbWa4nCSIVifqNGjMe3xFffE8uHQIGGi+Tmg=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=2+/t+vpuANyD6qq8PPN2cUrZovPTWNgYU0O/WPJnJZmoHDj1/j+I7qvQPyI0VaT6t
	 PSnVYQWuzdVuA3b1kH6DsVHUrcR3wA4eYFygUFpjP6aXetHOqaKj15KkrtjTZRQYjQ
	 YpeSTK34gwlSx1+XbnAcu4d4G2eIwbPWDJWdtlr3/PiZRjMHTTOX0+2Cs8ie+XZh5P
	 rb1lNwWqo1U2evWTWEka2bZwFSzkGEwdpz7EEHUZnCLsHnPuJfMlIoc14jRDtlPBOO
	 4/iZHfhzxHPxmpsW0gIv4oBh8cgpK3x+u+umIzkid2ELnJ9ZS9WB6TSHDQosiLbDrt
	 svj+gr1RwqNRQ==
Date: Wed, 06 Dec 2023 11:26:43 -0800
From: "H. Peter Anvin" <hpa@zytor.com>
To: "Li, Xin3" <xin3.li@intel.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
        "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
        "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
        "linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
        "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "tglx@linutronix.de" <tglx@linutronix.de>,
        "mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
        "dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
        "x86@kernel.org" <x86@kernel.org>,
        "Lutomirski, Andy" <luto@kernel.org>,
        "pbonzini@redhat.com" <pbonzini@redhat.com>,
        "seanjc@google.com" <seanjc@google.com>,
        "peterz@infradead.org" <peterz@infradead.org>,
        "Gross, Jurgen" <jgross@suse.com>,
        "Shankar, Ravi V" <ravi.v.shankar@intel.com>,
        "mhiramat@kernel.org" <mhiramat@kernel.org>,
        "jiangshanlai@gmail.com" <jiangshanlai@gmail.com>,
        "nik.borisov@suse.com" <nik.borisov@suse.com>,
        "Kang, Shan" <shan.kang@intel.com>
Subject: RE: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
User-Agent: K-9 Mail for Android
In-Reply-To: <SA1PR11MB673472A25E72022F68882869A884A@SA1PR11MB6734.namprd11.prod.outlook.com>
References: <20231205105030.8698-1-xin3.li@intel.com> <20231205105030.8698-27-xin3.li@intel.com> <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com> <SA1PR11MB67343544B0CEB6C82002790DA884A@SA1PR11MB6734.namprd11.prod.outlook.com> <4e41b658-f49e-424c-8a86-08c8ab8e384d@citrix.com> <SA1PR11MB673472A25E72022F68882869A884A@SA1PR11MB6734.namprd11.prod.outlook.com>
Message-ID: <F6CF8AB8-F5DB-44BD-B8A4-1A76E02CDCFA@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On December 6, 2023 11:19:26 AM PST, "Li, Xin3" <xin3=2Eli@intel=2Ecom> wro=
te:
>> >>> +	case X86_TRAP_OF:
>> >>> +		exc_overflow(regs);
>> >>> +		return;
>> >>> +
>> >>> +	/* INT3 */
>> >>> +	case X86_TRAP_BP:
>> >>> +		exc_int3(regs);
>> >>> +		return;
>> >> =2E=2E=2E neither OF nor BP will ever enter fred_intx() because they=
're
>> >> type SWEXC not SWINT=2E
>> > Per FRED spec 5=2E0, section 7=2E3 Software Interrupts and Related In=
structions:
>> > INT n (opcode CD followed by an immediate byte): There are 256 such
>> > software interrupt instructions, one for each value n of the immediat=
e
>> > byte (0=E2=80=93255)=2E
>> >
>> > And appendix B Event Stack Levels:
>> > If the event is an execution of INT n (opcode CD n for 8-bit value n)=
,
>> > the event stack level is 0=2E The event type is 4 (software interrupt=
)
>> > and the vector is n=2E
>> >
>> > So int $0x4 and int $0x3 (use asm("=2Ebyte 0xCD, 0x03")) get here=2E
>> >
>> > But into (0xCE) and int3 (0xCC) do use event type SWEXC=2E
>> >
>> > BTW, into is NOT allowed in 64-bit mode but "int $0x4" is allowed=2E
>>=20
>> There is certainly fun to be had with CD 03 and CD 04 byte patterns, bu=
t if you
>> meant to mean those here, then the comments are wrong=2E
>>=20
>> Vectors 3 and 4 are installed with DPL3 because that is necessary to ma=
ke CC and
>> CE function in userspace=2E=C2=A0 It also suggests that the SWINT vs SW=
EXC distinction
>> was retrofitted to architecture after the 286, because exceptions don't=
 check DPL
>> and ICEBP delivers #DB from userspace even when Vector 1 has a DPL of 0=
=2E
>>=20
>> While CC is for most cases indistinguishable from CD 03, CE behaves ent=
irely
>> differently to CD 04=2E=C2=A0 CD 04 doesn't #UD in 64bit mode, and will=
 trigger
>> exc_overflow() irrespective of the state of EFLAGS=2EOF=2E
>>=20
>>=20
>> The SDM goes out of it's way to say not to use the CD 03 byte pattern (=
and it
>> does take effort to emit this byte pattern - e=2Eg=2E GAS will silently=
 translate "int $3"
>> to "int3"), and there's no plausible way software is using CD 04 in pla=
ce of CE=2E
>>=20
>> So why do we care about containing to make mistakes of the IDT era work=
 in a
>> FRED world?
>
>First, I agree with you because it makes things simple and neat=2E
>
>However, the latest SDM and FRED spec 5=2E0 both doesn't disallow it, so =
it
>becomes an OS implementation choice=2E
>
>>=20
>> Is there anything (other than perhaps the selftests) which would even n=
otice?
>
>I'm just conservative :)
>
>If a user app can do it with IDT, we should still allow it when FRED is
>enabled=2E  But if all key stakeholders don't care whatever gets broken
>due to the change and agree to change it=2E
>
>> >>> +		instrumentation_end();
>> >>> +		irqentry_exit(regs, state);
>> >>> +	} else {
>> >>> +		common_interrupt(regs, vector);
>> >>> +	}
>> >>> +}
>> >>> +
>> >>> +static noinstr void fred_exception(struct pt_regs *regs, unsigned
>> >>> +long error_code) {
>> >>> +	/* Optimize for #PF=2E That's the only exception which matters
>> >>> +performance
>> >> wise */
>> >>> +	if (likely(regs->fred_ss=2Evector =3D=3D X86_TRAP_PF)) {
>> >>> +		exc_page_fault(regs, error_code);
>> >>> +		return;
>> >>> +	}
>> >>> +
>> >>> +	switch (regs->fred_ss=2Evector) {
>> >>> +	case X86_TRAP_DE: return exc_divide_error(regs);
>> >>> +	case X86_TRAP_DB: return fred_exc_debug(regs);
>> >>> +	case X86_TRAP_BP: return exc_int3(regs);
>> >>> +	case X86_TRAP_OF: return exc_overflow(regs);
>> >> Depending on what you want to do with BP/OF vs fred_intx(), this may
>> >> need adjusting=2E
>> >>
>> >> If you are cross-checking type and vector, then these should be
>> >> rejected for not being of type HWEXC=2E
>> > You're right, the event type needs to be SWEXC for into and int3=2E
>> >
>> > However, would it be overkilling?  Assuming hardware and VMM are sane=
=2E
>>=20
>> You either care about cross checking, or not=2E=C2=A0 Right now, this p=
atch is a mix of the
>> two approaches=2E
>>=20
>> In my opinion, cross-checking is the better approach, because it means =
that
>> violations of the assumptions get noticed more quickly, and hopefully b=
y
>> whomever is working on the new feature which alters the assumptions=2E
>
>Yeah, I can make the change=2E
>
>Thanks!
>    Xin
>

The intent is to not break userspace even if userspace does something fund=
amentally stupid=2E


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 19:33:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 19:33:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649416.1013927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAxdj-0001uF-IP; Wed, 06 Dec 2023 19:32:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649416.1013927; Wed, 06 Dec 2023 19:32: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 1rAxdj-0001u8-Fe; Wed, 06 Dec 2023 19:32:59 +0000
Received: by outflank-mailman (input) for mailman id 649416;
 Wed, 06 Dec 2023 19:32: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 1rAxdi-0001u2-HC
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 19:32: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 1rAxde-0008To-OG; Wed, 06 Dec 2023 19:32:54 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.16.253]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAxde-0006bC-Hn; Wed, 06 Dec 2023 19:32: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:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=MtqrmBb4tjRiLagWp7CTMa4iwryWtKLG9ZiLgyln1lY=; b=yb2w8DAn8BGJE+phy64jsSk3cP
	9d+JjZGVqL9rix2xcmVX/SWz5XOaDGv/wOT6l3OPoZjjJFgByb/1LsJalpoSGxz5msNKhpTo5x32k
	qOhDrDZ5SDyH5OBjxfHxpLDTKLCq7Rx/pz7hv+wF0fUjiGGWBSMDtXxst5OPleu8Mc1s=;
Message-ID: <024b468e-bee8-4bdf-9e07-cb2a5a4a6a7c@xen.org>
Date: Wed, 6 Dec 2023 19:32:52 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/arm: set -mno-unaligned-access compiler option
 for Arm32
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20231206071039.24435-1-jgross@suse.com>
 <20231206071039.24435-2-jgross@suse.com>
 <606969b5-5ee3-4e15-92d4-86b142845437@suse.com>
 <5bc34aa0-607b-4e89-bd71-c216c70ddc67@suse.com>
 <62a22ba6-a912-4ff7-8653-2cc019503aee@xen.org>
In-Reply-To: <62a22ba6-a912-4ff7-8653-2cc019503aee@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 06/12/2023 10:57, Julien Grall wrote:
> Hi Juergen,
> 
> On 06/12/2023 10:00, Juergen Gross wrote:
>> On 06.12.23 09:44, Jan Beulich wrote:
>>> On 06.12.2023 08:10, Juergen Gross wrote:
>>>> As the hypervisor is disabling unaligned accesses for Arm32, set the
>>>> -mno-unaligned-access compiler option for building. This will prohibit
>>>> unaligned accesses when e.g. accessing 2- or 4-byte data items in
>>>> packed data structures.
>>>>
>>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>>
>>> Assuming this will want backporting, should it have some Fixes: tag?
>>
>> IMHO this might not be needed
> 
> You probably miss the discussion between Arnd and I where I pointed out 
> that this should fix [1]. I haven't yet tested to confirm.

I can't find the GCC binaries I was using anymore :(. But I still think 
it is a good idea to backport it.

@Stefano can you add it in your list?

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 19:59:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 19:59:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649419.1013937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAy34-0007Xq-Ir; Wed, 06 Dec 2023 19:59:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649419.1013937; Wed, 06 Dec 2023 19:59: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 1rAy34-0007Xj-Ei; Wed, 06 Dec 2023 19:59:10 +0000
Received: by outflank-mailman (input) for mailman id 649419;
 Wed, 06 Dec 2023 19:59: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=sabd=HR=gmail.com=brgerst@srs-se1.protection.inumbo.net>)
 id 1rAy32-0007Xd-TG
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 19:59:08 +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 e9870129-9471-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 20:59:06 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-50bfd7be487so231268e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 11:59:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9870129-9471-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701892746; x=1702497546; 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=Y3MVaLAQQ+8IH1t0woX8XXUKr5UkxZE7+TDCaXdlmH8=;
        b=jB1FLcfG9zy3xH4cnpZt6goQ0g7t9yUAb0jX48XPgzsWHAPapz/815Srwfru6lA5E/
         D97BAEk4TKMnUE3cXSIcsRoGMCjSrm2GAfRgIx3LBmonccUTWZhLnh3+j4oHSq8cy9K1
         NbyjuwrpDAMubJgQDYMZ5seOSXKuMGS177hEg1GuzdVvDQ1oGdnI0gaBWB2aL7Zkm2OG
         BxwaS8I3txyBNoWqnSJks7XOw/waFUGc/gW+OCSJ8BQ0mbosi38KCdcYfAmOROjIP/dI
         F4tzpf8dEKDxc9ixuw6wMYgRbZOUnhWPKVqLJE4b4wXaEbajw3O4eOuIxKsZFzkV7Tkt
         JjJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701892746; x=1702497546;
        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=Y3MVaLAQQ+8IH1t0woX8XXUKr5UkxZE7+TDCaXdlmH8=;
        b=pD/iEA+yk/yjV2ld5EbW9RBuES37fInhU7/Acgj7C0i6txT9FewII+sKEXNHeMEcyX
         EP3R0C+vsbhHqmqgRF3QKmD2JI1H0mPIXkq4HHJAlPZqkHB7iBfIm3/zKiSBbJyFbhhZ
         a3cj1xEiDBYYQpHVyAe7lIegImBd+L2PR1VSX+KHAmj7eDyMQhZhS9LLjXnX+jDAu0fO
         iSbxQmDSE3s7OwZo+RpMD5++V+u6Ic9pLA0uSPFC/waUVa77lJ2UtdWnLdottAVrhp0F
         cERIX2sBUzUFEvbLlpgnj87A53v4+CcasYr8li/dmZJTs4gL5yySzGG1eOeoTgmtV4j3
         6t/w==
X-Gm-Message-State: AOJu0YzcBnBptky2iWkSHU693VoV8u9OVPqaJtalnYExmYQx8n75S++C
	29B1ywwotjY7TLrK0XcT6Smoie+yCsJdnNtztA==
X-Google-Smtp-Source: AGHT+IGSVyhk5VpdTSmdKP6ivPsMkGJooS9Dbr4Wp/iKBXDLx1h1VzpZYwbgyo3XsO8rZ2GE63oX9rjlDQtd+FQguRU=
X-Received: by 2002:a05:6512:158e:b0:50c:6b:f180 with SMTP id
 bp14-20020a056512158e00b0050c006bf180mr812498lfb.56.1701892745640; Wed, 06
 Dec 2023 11:59:05 -0800 (PST)
MIME-Version: 1.0
References: <20231205105030.8698-1-xin3.li@intel.com> <20231205105030.8698-27-xin3.li@intel.com>
 <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com> <SA1PR11MB67343544B0CEB6C82002790DA884A@SA1PR11MB6734.namprd11.prod.outlook.com>
 <4e41b658-f49e-424c-8a86-08c8ab8e384d@citrix.com> <SA1PR11MB673472A25E72022F68882869A884A@SA1PR11MB6734.namprd11.prod.outlook.com>
In-Reply-To: <SA1PR11MB673472A25E72022F68882869A884A@SA1PR11MB6734.namprd11.prod.outlook.com>
From: Brian Gerst <brgerst@gmail.com>
Date: Wed, 6 Dec 2023 14:58:54 -0500
Message-ID: <CAMzpN2h8yAk8Q0XwWWhBO3LcnwkNH57JOzTqamoNRXs-E3GJnw@mail.gmail.com>
Subject: Re: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
To: "Li, Xin3" <xin3.li@intel.com>
Cc: "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>, 
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>, 
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, 
	"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>, 
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "tglx@linutronix.de" <tglx@linutronix.de>, 
	"mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>, 
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org" <x86@kernel.org>, 
	"hpa@zytor.com" <hpa@zytor.com>, "Lutomirski, Andy" <luto@kernel.org>, 
	"pbonzini@redhat.com" <pbonzini@redhat.com>, "seanjc@google.com" <seanjc@google.com>, 
	"peterz@infradead.org" <peterz@infradead.org>, "Gross, Jurgen" <jgross@suse.com>, 
	"Shankar, Ravi V" <ravi.v.shankar@intel.com>, "mhiramat@kernel.org" <mhiramat@kernel.org>, 
	"jiangshanlai@gmail.com" <jiangshanlai@gmail.com>, "nik.borisov@suse.com" <nik.borisov@suse.com>, 
	"Kang, Shan" <shan.kang@intel.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 6, 2023 at 2:19=E2=80=AFPM Li, Xin3 <xin3.li@intel.com> wrote:
>
> > >>> + case X86_TRAP_OF:
> > >>> +         exc_overflow(regs);
> > >>> +         return;
> > >>> +
> > >>> + /* INT3 */
> > >>> + case X86_TRAP_BP:
> > >>> +         exc_int3(regs);
> > >>> +         return;
> > >> ... neither OF nor BP will ever enter fred_intx() because they're
> > >> type SWEXC not SWINT.
> > > Per FRED spec 5.0, section 7.3 Software Interrupts and Related Instru=
ctions:
> > > INT n (opcode CD followed by an immediate byte): There are 256 such
> > > software interrupt instructions, one for each value n of the immediat=
e
> > > byte (0=E2=80=93255).
> > >
> > > And appendix B Event Stack Levels:
> > > If the event is an execution of INT n (opcode CD n for 8-bit value n)=
,
> > > the event stack level is 0. The event type is 4 (software interrupt)
> > > and the vector is n.
> > >
> > > So int $0x4 and int $0x3 (use asm(".byte 0xCD, 0x03")) get here.
> > >
> > > But into (0xCE) and int3 (0xCC) do use event type SWEXC.
> > >
> > > BTW, into is NOT allowed in 64-bit mode but "int $0x4" is allowed.
> >
> > There is certainly fun to be had with CD 03 and CD 04 byte patterns, bu=
t if you
> > meant to mean those here, then the comments are wrong.
> >
> > Vectors 3 and 4 are installed with DPL3 because that is necessary to ma=
ke CC and
> > CE function in userspace.  It also suggests that the SWINT vs SWEXC dis=
tinction
> > was retrofitted to architecture after the 286, because exceptions don't=
 check DPL
> > and ICEBP delivers #DB from userspace even when Vector 1 has a DPL of 0=
.
> >
> > While CC is for most cases indistinguishable from CD 03, CE behaves ent=
irely
> > differently to CD 04.  CD 04 doesn't #UD in 64bit mode, and will trigge=
r
> > exc_overflow() irrespective of the state of EFLAGS.OF.
> >
> >
> > The SDM goes out of it's way to say not to use the CD 03 byte pattern (=
and it
> > does take effort to emit this byte pattern - e.g. GAS will silently tra=
nslate "int $3"
> > to "int3"), and there's no plausible way software is using CD 04 in pla=
ce of CE.
> >
> > So why do we care about containing to make mistakes of the IDT era work=
 in a
> > FRED world?
>
> First, I agree with you because it makes things simple and neat.
>
> However, the latest SDM and FRED spec 5.0 both doesn't disallow it, so it
> becomes an OS implementation choice.
>
> >
> > Is there anything (other than perhaps the selftests) which would even n=
otice?
>
> I'm just conservative :)
>
> If a user app can do it with IDT, we should still allow it when FRED is
> enabled.  But if all key stakeholders don't care whatever gets broken
> due to the change and agree to change it.

One case to consider is Windows software running under Wine.
Anti-tampering code has been known to do some non-standard things,
like using ICEBP or using SYSCALL directly instead of through system
DLLs.  Keeping the status quo should be preferred, especially if
Microsoft does the same.


Brian Gerst


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 20:45:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 20:45:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649423.1013946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAylV-00089w-RJ; Wed, 06 Dec 2023 20:45:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649423.1013946; Wed, 06 Dec 2023 20:45: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 1rAylV-00089p-Oe; Wed, 06 Dec 2023 20:45:05 +0000
Received: by outflank-mailman (input) for mailman id 649423;
 Wed, 06 Dec 2023 20:45:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rHB2=HR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAylU-00089j-IE
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 20:45:04 +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 5480a557-9478-11ee-98e5-6d05b1d4d9a1;
 Wed, 06 Dec 2023 21:45:03 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3333224c7b9so204703f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 12:45:03 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 h14-20020a05600c314e00b0040c03c3289bsm688465wmo.37.2023.12.06.12.45.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 12:45:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5480a557-9478-11ee-98e5-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701895502; x=1702500302; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zaqMvH8OUbeX6L1gD5XVoJPZsKK9ebB4HoaMLgIUdtM=;
        b=hkTqSgGwFFezTkPc0bh/3d9Rg49NcUo/qEZ+W1Mm3qhdBXgXRzs7O8gxL2Y/TxxO0o
         4pF12kFiyb5rRapwbUkeuilyx61V6C/QSuqBYbXZj86e80aef3HicPdiKDF3C0CQWWAL
         OeE3T319ZESAFxcrgRQGVXLIqMDzORtP3Eb4s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701895502; x=1702500302;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=zaqMvH8OUbeX6L1gD5XVoJPZsKK9ebB4HoaMLgIUdtM=;
        b=LvFFkUNa63KSCOJOCqZX1OR0CX+GoJqZEp1tJyf5THUI6IRjf+jKiSWC/kq3OTM1Dh
         gizXv4KrRjg5CHbxUyEvNJb14dG8dLVXu6ST1JqW2V8wIEu9G6HZkjRrWUo8D1KUlrBc
         4Rk6paQDl52JNWPTyduHevNSdJAAA9VsIKYTwT3/5T+HnXCXMMVTAx5s2AQxvfnQbVI6
         nupNsubKMeUuBd6FN0Yo535BjE368GksBx9l+Fa5Dq1aaRAw607kohb2cJGt260hgkrb
         W8EBUkcqCV4lS36g1JBzQFFLdMrdAT1TGO7fLDvUX/f/WUM5SzOJnYPhGxAiMK9cU20c
         ohRw==
X-Gm-Message-State: AOJu0YxAAENkWCJdXwQqjoZX+iwbYYd7cOF/EUqbcSn2MXOGZblcnhZ9
	5hc+TlosmEgq2W+g9e4n8Ny+Wg==
X-Google-Smtp-Source: AGHT+IH5Lz0Kwdu9MxSJ8t0Yl8t25qSUL5PfqKmx7lFD+NaGuuWLPC6BZ9DuG7wk4OCSKXNPIMP03A==
X-Received: by 2002:a7b:c4d7:0:b0:40b:5e21:e28c with SMTP id g23-20020a7bc4d7000000b0040b5e21e28cmr915763wmk.121.1701895502506;
        Wed, 06 Dec 2023 12:45:02 -0800 (PST)
Message-ID: <75a57d20-e2e2-47d3-8aa8-79b6ffb18f07@citrix.com>
Date: Wed, 6 Dec 2023 20:45:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/DMI: adjustments to comply with Misra C:2012 Rule
 9.3
Content-Language: en-GB
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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <1ca903e7-ed2c-435e-999d-2a8519957498@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <1ca903e7-ed2c-435e-999d-2a8519957498@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/12/2023 1:35 pm, Jan Beulich wrote:
> The rule demands that all array elements be initialized (or dedicated
> initializers be used). Introduce a small set of macros to allow doing so
> without unduly affecting use sites (in particular in terms of how many
> elements .matches[] actually has; right now there's no use of
> DMI_MATCH4(), so we could even consider reducing the array size to 3).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Of course a question is how many of these DMI table entries are in fact
> no longer applicable (e.g. because of naming 32-bit-only systems).
> Subsequently the table in dmi_scan.c itself may want cleaning up as
> well, yet I guess the question of stale entries is even more relevant
> there.
> ---
> v2: Make things also build with older gcc.


This is broken with Ubuntu
https://gitlab.com/xen-project/xen/-/jobs/5691138448Â  and you don't
appear to have been online today.

Unless you have a clever idea for a very prompt fix, it's going to need
reverting to cause GitlabCI to be usable for everyone else.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 20:46:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 20:46:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649426.1013957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAymt-0000VO-5T; Wed, 06 Dec 2023 20:46:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649426.1013957; Wed, 06 Dec 2023 20:46: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 1rAymt-0000VH-2w; Wed, 06 Dec 2023 20:46:31 +0000
Received: by outflank-mailman (input) for mailman id 649426;
 Wed, 06 Dec 2023 20: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 1rAymr-0000SA-Is; Wed, 06 Dec 2023 20: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 1rAymr-0001Ru-7c; Wed, 06 Dec 2023 20:46: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 1rAymq-0002fW-OY; Wed, 06 Dec 2023 20:46:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rAymq-0007H9-M0; Wed, 06 Dec 2023 20: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=3jE2Tghz+YF9/zB2Bge1HPbTHVZPfIBtJCSRPyL/Kro=; b=swqx7pMBCPActUtqIkJGPCA7xw
	r9HxD0sC2ht+NciSfzQ8OQYpK4+XKYXU6f4E5lMe9xvCDlOrXuB+GRHPtRV5d0z90u2H26UK2kZNH
	r0ER/i4AiI7xDLJ9ageMAz9KogKVg2yjDuFCFHYd72fB3y8pfgwn5JPQbvC7oxuDAj3Y=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184003-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184003: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-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-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=cab49d394f4dee9a780b2702590b03e837e06892
X-Osstest-Versions-That:
    libvirt=f1a950379d856282c661d21005b49edc8e97a152
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 20:46:28 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail blocked in 183992
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183992
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183992
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              cab49d394f4dee9a780b2702590b03e837e06892
baseline version:
 libvirt              f1a950379d856282c661d21005b49edc8e97a152

Last test of basis   183992  2023-12-05 04:18:54 Z    1 days
Testing same since   184003  2023-12-06 04:20:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrea Bolognani <abologna@redhat.com>
  Han Han <hhan@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   f1a950379d..cab49d394f  cab49d394f4dee9a780b2702590b03e837e06892 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 20:58:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 20:58:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649433.1013966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAyy5-0003YB-Bc; Wed, 06 Dec 2023 20:58:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649433.1013966; Wed, 06 Dec 2023 20: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 1rAyy5-0003Y4-93; Wed, 06 Dec 2023 20:58:05 +0000
Received: by outflank-mailman (input) for mailman id 649433;
 Wed, 06 Dec 2023 20:58: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=rHB2=HR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rAyy3-0003Xy-Vb
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 20:58:03 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24a5b872-947a-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 21:58:01 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c0a03eb87so2702425e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 12:58:01 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 j17-20020a05600c1c1100b004076f522058sm869141wms.0.2023.12.06.12.58.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 12:58:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24a5b872-947a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701896280; x=1702501080; 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=RZsQo4oRgU4G71a2z55TWsdq0DgDPmszDOONZilrHyM=;
        b=vAhPAvg2F29LWU5WEDgaWkxLrhme4uoDT5IyUY+VrnJHpc3tt+KgsR9gISYszF1CnZ
         4YrS+Eixbm904uFxXW1B4odo35TeZpZc/liijsWSmP7f/b1wXC4Y/hi5x9IDsZ+5JnKh
         1CePvSoXQEc2Ft2EuQJkZqBO/s/dkGIFPCFbs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701896280; x=1702501080;
        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=RZsQo4oRgU4G71a2z55TWsdq0DgDPmszDOONZilrHyM=;
        b=GK7Jf6QbhpfResEsNYxEgDGe+jYAVawPTaaJYMkwt0NiKzws7dnBB9bm3jlPCk1EFm
         PP0bFPm+HwDv2zVf5XSq4iyJFCB1F4csUpznoqPgvdo+FwS9b+nUdqUN5AuCwRvK704x
         dGw5+8PRBRxHl/G2QmCrqTJhLp4xQ9mCFlhl229/ibTCap27X4kNp6dWyrCnw+14fIpv
         U4NwFyEa9kJf7yacp7LWRoyM3ZtvWLlLi4CwHkUu30T6v00h9GmBPSPx4n/hJuV0qx+U
         z9cBk5EY9R2L0gANAmnn+phh7eLgL+THbAUvSFWSn63nrNoqhNms3eVc6ZQGF8rdIOC0
         F9pw==
X-Gm-Message-State: AOJu0YxT/V3WNLtTcautoITcLGoSmYVo2lEkePwRECP6jp8M+BcNG3gn
	mS55mxjDjSDs3iBG9JteNj2gA+ucOMrQK53a+/c=
X-Google-Smtp-Source: AGHT+IGLeJE44mjSwKmLbk3fC/yWlJz4iiLspBBP+66+R8Qrl9uQcw4bFChEsiDx6fUBL9w3QC3Naw==
X-Received: by 2002:a05:600c:4752:b0:40c:2734:13a6 with SMTP id w18-20020a05600c475200b0040c273413a6mr81858wmo.3.1701896280745;
        Wed, 06 Dec 2023 12:58:00 -0800 (PST)
Message-ID: <0836857a-e9f7-41e9-9094-2833913e6485@citrix.com>
Date: Wed, 6 Dec 2023 20:58:00 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
To: xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <jgrall@amazon.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Jason Andryuk <jandryuk@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: MiniOS build regressions
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Following the chaos this morning and a scattering of fixes, I finally
got back to a working Gitlab with:

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1097843454

This contains a full revert of the DMI patch, and removal of the Xilinx
hardware runner, both handled in other threads but noted here for anyone
looking at the test results.

It also contains 3 MiniOS fixes, mixed between repos:

"tools/libs/evtchn: drop assert()s in stubdom" in xen [1]
"Mini-OS: don't use objcopy --dump-section" in minios [2]
"Mini-OS: export main_thread" [3]

and the result with all of these passes.

However, it is my understanding that we don't actually want to take
patch 3, instead preferring patch 1 as an alternative.

But there is a concern which has been raised over patch 1.


So what are we going to do?

If there isn't an answer promptly, I will revert the most recent bump to
MINIOS_UPSTREAM_REVISION to unbreak Gitlab CI testing for everyone else.


~Andrew

[1]
https://xenbits.xen.org/gitweb/?p=people/andrewcoop/xen.git;a=commitdiff;h=682062f530dc8985bc6b4b747c79fc2ab7b51e18
[2]
https://xenbits.xen.org/gitweb/?p=people/andrewcoop/mini-os.git;a=commitdiff;h=fd13e4b1914a31c7735a8d22642626ce32073305
[3]
https://xenbits.xen.org/gitweb/?p=people/andrewcoop/mini-os.git;a=commitdiff;h=84a251d7ea41f95d048c78717a3086887201a990


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 21:03:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 21:03:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649436.1013977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAz2t-00052X-W4; Wed, 06 Dec 2023 21:03:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649436.1013977; Wed, 06 Dec 2023 21:03: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 1rAz2t-00052Q-SG; Wed, 06 Dec 2023 21:03:03 +0000
Received: by outflank-mailman (input) for mailman id 649436;
 Wed, 06 Dec 2023 21:03: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=uigp=HR=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1rAz2s-00052I-GB
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 21:03: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 d6c24675-947a-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 22:03:00 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-54c64316a22so320268a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 13:03:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6c24675-947a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701896580; x=1702501380; 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=AVWKpze7ca/3XUJO9A/TSawlQir11npa9h6eTs/M9Os=;
        b=QpQrddHlukykH5K1RJg7FD40agOS6lCtraEO3yJHlK1nlCqWLQuj+sA7tB1dQ3fpmj
         eKZyXs5YtI9/ok+Cu549Bh3YKSVom4MBInofmDhdIprrGew0nIcedVmDhnusbhBZ7pZf
         xERN7mKfqhW5mQh9lDQbyuQJeVJ3X1b7rTQKXp9vjGuQpHnC6Mlxl/tBm1ru7KsGK+QJ
         vaA0aIWzmQt6FsryMN4o769YYmEkbyyBvszNqWQnfQfx5NpDDGhuBWnxPQzpbhwSHDeV
         SOqMfd70b/CWC07to0x5H6H9iYbEXVyMDktkemB6mHe2Ptrhf4rWE6m+DxD7lRw1h6Sd
         NIPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701896580; x=1702501380;
        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=AVWKpze7ca/3XUJO9A/TSawlQir11npa9h6eTs/M9Os=;
        b=t9pQcMoNpRWrHM9KBQCzMowye0VrphmevcOrHm0Z+Ek/njTEQ4pWvj/ACUdyJ6RPjX
         Dg/V32dkmhQSLS0M7iA8CMIJidwli8B5c4GlFxhdPLvKdpb0i1n/B3D39g375GDAYMjo
         WuvhIb0hiUj/fW+x24nU58F1piYv4qpiDbSQu3YCko3ogiYwsJXwfdlJfbksnt/vcO1D
         3jdxdfgNXuCKTz5q4l7u2FLxkNoilvBAbZYm4oNcqw3WV6JkHWqo6D5jiDHz8ORcAAHy
         9FfDWP4Kl9r4xoxVpmUzfQHcZXpRTTwbhQ4eb5A5Y+ZOxB6yVXb6iCLKUabYVTzdCfQE
         +JNg==
X-Gm-Message-State: AOJu0YytbK9GnMlpJOFtOw9Tt0pS7fOTHXs1lW9WzVFoHtgLCVrFSMOW
	IsiUGxkpkCXroDf19136BIjHbJuIG0l8N0FICh0=
X-Google-Smtp-Source: AGHT+IG8mkdpAW+8nMRqYe0nVpGQJsGUVcISVm9bEAzeXsmA5EHupe+/XbJBYzNr8lbm1eDxf65X0lqg5p5ILIY9HrE=
X-Received: by 2002:a05:6402:3139:b0:54c:4837:7594 with SMTP id
 dd25-20020a056402313900b0054c48377594mr869511edb.64.1701896579947; Wed, 06
 Dec 2023 13:02:59 -0800 (PST)
MIME-Version: 1.0
References: <20231206144009.29154-1-jgross@suse.com> <CAKf6xpvu5txfU4uU26=Q-FyEmaaBazXPcOK_gU_=Tp=T98sS7g@mail.gmail.com>
 <b5b74155-e086-425d-8f5a-e9878d5d2da2@suse.com>
In-Reply-To: <b5b74155-e086-425d-8f5a-e9878d5d2da2@suse.com>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Wed, 6 Dec 2023 16:02:47 -0500
Message-ID: <CAKf6xpvR1sOGCeH5PgdPGCuwAtLCH=J8c0C_V-DXopmw46=onQ@mail.gmail.com>
Subject: Re: [PATCH] tools/libs/evtchn: drop assert()s in stubdom
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 6, 2023 at 11:44=E2=80=AFAM Juergen Gross <jgross@suse.com> wro=
te:
>
> On 06.12.23 17:38, Jason Andryuk wrote:
> > On Wed, Dec 6, 2023 at 9:40=E2=80=AFAM Juergen Gross <jgross@suse.com> =
wrote:
> >>
> >> In tools/libs/evtchn/minios.c there are assert()s for the current
> >> thread being the main thread when binding an event channel.
> >>
> >> As Mini-OS is supporting multiple threads, there is no real reason
> >> why the binding shouldn't be allowed to happen in any other thread.
> >>
> >> Just drop the assert()s.
> >>
> >> Signed-off-by: Juergen Gross <jgross@suse.com>
> >> ---
> >>   tools/libs/evtchn/minios.c | 3 ---
> >>   1 file changed, 3 deletions(-)
> >>
> >> diff --git a/tools/libs/evtchn/minios.c b/tools/libs/evtchn/minios.c
> >> index 28743cb055..e33ddec7e7 100644
> >> --- a/tools/libs/evtchn/minios.c
> >> +++ b/tools/libs/evtchn/minios.c
> >> @@ -195,7 +195,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_unbound_p=
ort(xenevtchn_handle *xce,
> >>       int ret;
> >>       evtchn_port_t port;
> >>
> >> -    assert(get_current() =3D=3D main_thread);
> >>       port_info =3D port_alloc(xce);
> >
> > If multiple threads are allowed, does port_list need to gain a lock
> > protecting it?
>
> I thought of that, too.
>
> The answer is: maybe
>
> Any other list operation on the list isn't protected by an assert(), so
> technically there is no real new aspect added in this regard.

Yes.

> I believe adding a lock would make sense, but it is orthogonal to this
> patch.

The assert() feels like it was an attempt to avoid introducing
locking, so I'm not sure it is really orthogonal.

I was kinda waiting to see if anyone else would lend an opinion.

Since the asserts haven't been tripping there doesn't seem to be an
issue with the code as-is, so:

Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 21:36:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 21:36:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649440.1013987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAzZY-0003Gf-E3; Wed, 06 Dec 2023 21:36:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649440.1013987; Wed, 06 Dec 2023 21: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 1rAzZY-0003GY-Ap; Wed, 06 Dec 2023 21:36:48 +0000
Received: by outflank-mailman (input) for mailman id 649440;
 Wed, 06 Dec 2023 21: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=n1JC=HR=gmail.com=julien.grall@srs-se1.protection.inumbo.net>)
 id 1rAzZX-0003GS-Hs
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 21:36:47 +0000
Received: from mail-yb1-xb29.google.com (mail-yb1-xb29.google.com
 [2607:f8b0:4864:20::b29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d4d9b48-947f-11ee-9b0f-b553b5be7939;
 Wed, 06 Dec 2023 22:36:45 +0100 (CET)
Received: by mail-yb1-xb29.google.com with SMTP id
 3f1490d57ef6-db7d198e791so281147276.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 13:36:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d4d9b48-947f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701898604; x=1702503404; 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=FC1WMHYI5xsD/RHWYbeYlCVzcJRbeBGfCPFuq9VO6u4=;
        b=inwcUB3UyDMb3qKJsGo8oA33WpNKPjhYEXdL4IdEeXNBVj1rZXSwQi57ossdhw3glK
         41bIFx/DIKUPZ+a9b+CFjPYB0nnyi+9Y65PF7HBkRrcXYmicTUecTY6o7C66MnmMh4E2
         BWAXDeFf8jKRlDlKrAfDSp9qJwiIAbf/ztxydJ5r0H7h0Dcn8b56T42bjQlvKtPvjB2a
         KZnTX/1Cqb0GrbqgqKJdPLm3Q6KP6zMGewMWcdAZEy1JhRta2RNL0Z+mN6FlZD9APS6G
         trNXfnjZ3o1EdDzDnx0oGx3dnyoRXBrSSbagnloGE6irnHGamLaQ9knxezX2tFJ0GtG3
         2xSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701898604; x=1702503404;
        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=FC1WMHYI5xsD/RHWYbeYlCVzcJRbeBGfCPFuq9VO6u4=;
        b=WJh3LXDpvtQpo1XUmetZ+Exgd378n9ZmWhHd/RyPO3DkYg0FtuzBfaW2QUOQPnoH0m
         997pTYBvHDRv1lR4cBIcOHH10y6/7AXZ7uzPDY5SHoKAn4UVCkj7WACULfv4FeqgB1vJ
         TS/lNzmLEndboYU8zd9dO8OLO8KdRt3hSLRNmxE+Itt/n+ha1/f3yN90VoJujU1tqCcn
         QtrY8ELtmD6YNIaIgl7lNeva7h7Fbmz6GNz7GPiROYFSOtN/7KDS6x87g/+XMigQ20y1
         xCECRs5U+q85BmI6zErU/ISJF6wrOVqJkaFor8PRDdjwxaZdOuu1tBhIdWNgcRQxjhra
         iEOg==
X-Gm-Message-State: AOJu0Yxtt3iUs3aPDr1+Z/+YMFJN7ACVi9KwhaEeJDu6ESP27ZQRhCiJ
	NwqX2eUnWcdlLS0wLDNueNC1G3jNHzmpopjVcPQ=
X-Google-Smtp-Source: AGHT+IH8E1i7uafefxRbkwXAPC6Ft9EFmbr3EfiZoX1ftVl9hp7STgJoQJMCibuf99dt0FgZ2dSFHaONmj08gYLsAE8=
X-Received: by 2002:a25:870f:0:b0:db7:dacf:4d54 with SMTP id
 a15-20020a25870f000000b00db7dacf4d54mr1104412ybl.80.1701898604143; Wed, 06
 Dec 2023 13:36:44 -0800 (PST)
MIME-Version: 1.0
References: <20231206144009.29154-1-jgross@suse.com> <CAKf6xpvu5txfU4uU26=Q-FyEmaaBazXPcOK_gU_=Tp=T98sS7g@mail.gmail.com>
 <b5b74155-e086-425d-8f5a-e9878d5d2da2@suse.com> <CAKf6xpvR1sOGCeH5PgdPGCuwAtLCH=J8c0C_V-DXopmw46=onQ@mail.gmail.com>
In-Reply-To: <CAKf6xpvR1sOGCeH5PgdPGCuwAtLCH=J8c0C_V-DXopmw46=onQ@mail.gmail.com>
From: Julien Grall <julien.grall@gmail.com>
Date: Wed, 6 Dec 2023 21:36:07 +0000
Message-ID: <CAF3u54DGYjbVnd6oO=TfqN-aAP5JpBW1agihNL3t=HO8muMtRQ@mail.gmail.com>
Subject: Re: [PATCH] tools/libs/evtchn: drop assert()s in stubdom
To: Jason Andryuk <jandryuk@gmail.com>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Le mer. 6 d=C3=A9c. 2023 =C3=A0 21:03, Jason Andryuk <jandryuk@gmail.com> a=
 =C3=A9crit :
>
> On Wed, Dec 6, 2023 at 11:44=E2=80=AFAM Juergen Gross <jgross@suse.com> w=
rote:
> >
> > On 06.12.23 17:38, Jason Andryuk wrote:
> > > On Wed, Dec 6, 2023 at 9:40=E2=80=AFAM Juergen Gross <jgross@suse.com=
> wrote:
> > >>
> > >> In tools/libs/evtchn/minios.c there are assert()s for the current
> > >> thread being the main thread when binding an event channel.
> > >>
> > >> As Mini-OS is supporting multiple threads, there is no real reason
> > >> why the binding shouldn't be allowed to happen in any other thread.
> > >>
> > >> Just drop the assert()s.
> > >>
> > >> Signed-off-by: Juergen Gross <jgross@suse.com>
> > >> ---
> > >>   tools/libs/evtchn/minios.c | 3 ---
> > >>   1 file changed, 3 deletions(-)
> > >>
> > >> diff --git a/tools/libs/evtchn/minios.c b/tools/libs/evtchn/minios.c
> > >> index 28743cb055..e33ddec7e7 100644
> > >> --- a/tools/libs/evtchn/minios.c
> > >> +++ b/tools/libs/evtchn/minios.c
> > >> @@ -195,7 +195,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_unbound=
_port(xenevtchn_handle *xce,
> > >>       int ret;
> > >>       evtchn_port_t port;
> > >>
> > >> -    assert(get_current() =3D=3D main_thread);
> > >>       port_info =3D port_alloc(xce);
> > >
> > > If multiple threads are allowed, does port_list need to gain a lock
> > > protecting it?
> >
> > I thought of that, too.
> >
> > The answer is: maybe
> >
> > Any other list operation on the list isn't protected by an assert(), so
> > technically there is no real new aspect added in this regard.

I read this as "The others are not protected so let's remove all the
protections"
which sounds really wrong to me.
At least with the existing ASSERT()s there is a chance a user would hit the=
m.

Without any, how would a user be able to know that they are mixing threads?
Where is it documented?

>
> Yes.
>
> > I believe adding a lock would make sense, but it is orthogonal to this
> > patch.
>
> The assert() feels like it was an attempt to avoid introducing
> locking, so I'm not sure it is really orthogonal.

+1. I agree this is not orthogonal.

>
> I was kinda waiting to see if anyone else would lend an opinion.
>
> Since the asserts haven't been tripping there doesn't seem to be an
> issue with the code as-is, so:

The goal of an ASSERTs() is really to never trip in normal circumstances.
So the fact nobody complained until now is a sign that they are working :).

The right course of action is to add more, not less. If there is a problem
with the existing ASSERT(), then the condition should either be updated
as we switch to proper locking.

Cheers,

--=20
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 21:39:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 21:39:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649442.1013996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rAzbm-00044y-QZ; Wed, 06 Dec 2023 21:39:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649442.1013996; Wed, 06 Dec 2023 21:39: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 1rAzbm-00044r-Nw; Wed, 06 Dec 2023 21:39:06 +0000
Received: by outflank-mailman (input) for mailman id 649442;
 Wed, 06 Dec 2023 21:39:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rAzbl-00044l-KY
 for xen-devel@lists.xenproject.org; Wed, 06 Dec 2023 21:39:05 +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 1rAzbl-0002MM-04; Wed, 06 Dec 2023 21:39:05 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rAzbk-0004Vy-PA; Wed, 06 Dec 2023 21:39: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=tlVhUKoXOOZaJGLSJgs22StEDbno8zpfeSx22EjA2y4=; b=DFrcMHSXhxFS5pQ/yASFewHiie
	QLAXLQ2XQ2Oj1uESaeDcYCzT+15koQSub8wsJ3DBQfk46shz/iMt4xbTX6x8JQzxEbnHUPXUP4XkV
	pA18tWgzesJgK4ClU7jiWECSDesdIjoUhdDUOAFkft+vmbqsSVO7kVwy8pim1xoR32b0=;
Message-ID: <274e9e03-31fc-4838-9585-4ea2c9231203@xen.org>
Date: Wed, 6 Dec 2023 21:39:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: MiniOS build regressions
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>, Juergen Gross <jgross@suse.com>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <jgrall@amazon.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Jason Andryuk <jandryuk@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <0836857a-e9f7-41e9-9094-2833913e6485@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0836857a-e9f7-41e9-9094-2833913e6485@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 06/12/2023 21:58, Andrew Cooper wrote:
> Following the chaos this morning and a scattering of fixes, I finally
> got back to a working Gitlab with:
> 
> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1097843454
> 
> This contains a full revert of the DMI patch, and removal of the Xilinx
> hardware runner, both handled in other threads but noted here for anyone
> looking at the test results.
> 
> It also contains 3 MiniOS fixes, mixed between repos:
> 
> "tools/libs/evtchn: drop assert()s in stubdom" in xen [1]
> "Mini-OS: don't use objcopy --dump-section" in minios [2]
> "Mini-OS: export main_thread" [3]
> 
> and the result with all of these passes.
> 
> However, it is my understanding that we don't actually want to take
> patch 3, instead preferring patch 1 as an alternative.

Looking at patch 1, I feel that 3 is better temporarily until we have 
proper locking. With 1, we are just setting ourself for another failure.

> 
> But there is a concern which has been raised over patch 1.
> 
> 
> So what are we going to do?
> 
> If there isn't an answer promptly, I will revert the most recent bump to
> MINIOS_UPSTREAM_REVISION to unbreak Gitlab CI testing for everyone else.

I would say we should unblock gitlab CI ASAP. So whichever is the easiest.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 22:21:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 22:21:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649447.1014007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB0Gh-0004Qi-Rj; Wed, 06 Dec 2023 22:21:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649447.1014007; Wed, 06 Dec 2023 22: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 1rB0Gh-0004Qb-Of; Wed, 06 Dec 2023 22:21:23 +0000
Received: by outflank-mailman (input) for mailman id 649447;
 Wed, 06 Dec 2023 22:21: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 1rB0Gg-0004QR-63; Wed, 06 Dec 2023 22:21: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 1rB0Gf-0003Gp-OA; Wed, 06 Dec 2023 22:21: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 1rB0Gf-00070O-ET; Wed, 06 Dec 2023 22:21:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rB0Gf-0004nx-Dt; Wed, 06 Dec 2023 22: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Q05H6IX7OsAXXyoEbowLbiSYGQpfyi+263kyZWJYAP4=; b=SBfxCrNR127zjhKevBpbvl5PTj
	VTuV1mQcukTH4aPp7lngHOp6m0k5vx8cBcCYNKLJociJn3lcFzOk1SzaE6zCT0ghpLh7semmdiuPK
	Dg8xBxIUfr2+n7TF4GXRdZ3/Ct5cjFKPxl3diPkEcj1WO/vI8GVLJKYNtcMJOI45dank=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184014-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184014: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=b59ab98049f20f826ff5302a498a435cbb3b3753
X-Osstest-Versions-That:
    ovmf=7e18c9a788e543ab71cdc0485989cf5d00cdccc2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 22:21:21 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 b59ab98049f20f826ff5302a498a435cbb3b3753
baseline version:
 ovmf                 7e18c9a788e543ab71cdc0485989cf5d00cdccc2

Last test of basis   184004  2023-12-06 05:41:03 Z    0 days
Testing same since   184014  2023-12-06 17:11:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jake Garver <jake@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    
 test-amd64-i386-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
   7e18c9a788..b59ab98049  b59ab98049f20f826ff5302a498a435cbb3b3753 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Dec 06 23:15:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Dec 2023 23:15:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649452.1014017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB16X-0004p7-MS; Wed, 06 Dec 2023 23:14:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649452.1014017; Wed, 06 Dec 2023 23: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 1rB16X-0004p0-IS; Wed, 06 Dec 2023 23:14:57 +0000
Received: by outflank-mailman (input) for mailman id 649452;
 Wed, 06 Dec 2023 23:14: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 1rB16V-0004oq-Mw; Wed, 06 Dec 2023 23:14: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 1rB16V-0004CC-IU; Wed, 06 Dec 2023 23:14: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 1rB16V-0008SN-6M; Wed, 06 Dec 2023 23:14:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rB16V-0007cd-5w; Wed, 06 Dec 2023 23:14:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=0twV8CGRqSfDwMrj3kFJmbwTGxucIlnPBhIBLIIFmoE=; b=mcWE9Uiz4983diqyRARKjD6J69
	5YJcYz6aIrLw1rqyPq1SBOAzy8k2ib9iS+GeSGyOHDvxeHVJYDOOZEb24v2gUvUM2D5sdavYkTOR8
	z8ciwKJq0FCfbEKkGyBQZSTmarHt3ol/568mtHZie9kvtFZw224dMAZK6hKGdG0/DnRc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184015-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184015: 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=d4bfd3899886d0fbe259c20660dadb1e00170f2d
X-Osstest-Versions-That:
    xen=59df2851318357763be3ad8a5f300d6a9e7c6e38
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 06 Dec 2023 23:14:55 +0000

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

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                  d4bfd3899886d0fbe259c20660dadb1e00170f2d
baseline version:
 xen                  59df2851318357763be3ad8a5f300d6a9e7c6e38

Last test of basis   184009  2023-12-06 12:02:15 Z    0 days
Testing same since   184015  2023-12-06 20:02:07 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@citrix.com>
  Jason Andryuk <jandryuk@gmail.com>
  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
   59df285131..d4bfd38998  d4bfd3899886d0fbe259c20660dadb1e00170f2d -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 00:22:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 00:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649459.1014027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB2A6-0007us-75; Thu, 07 Dec 2023 00:22:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649459.1014027; Thu, 07 Dec 2023 00:22:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB2A6-0007ul-3V; Thu, 07 Dec 2023 00:22:42 +0000
Received: by outflank-mailman (input) for mailman id 649459;
 Thu, 07 Dec 2023 00:22:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YqrU=HS=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rB2A3-0007ub-S0
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 00:22:40 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id b87d20bd-9496-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 01:22:36 +0100 (CET)
Received: from mg.gitlab.com (28.226.74.34.bc.googleusercontent.com
 [34.74.226.28]) by
 94b08043ae02 with SMTP id 6571104a89d7592b5493069d (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Thu, 07 Dec 2023 00:22:34 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: b87d20bd-9496-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701908554; x=1701915754; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=bqOC+Ug10dbb4JGNg+lF5hqOPG2phbYTmz2llS2Qr2o=;
 b=RA+QBN+BhBh6PF3Xu9OGFGRmcZT+D1r5RcoeYD+S3H2rY3Ta0GZTGiSYVkmww3fNSs4riCaswx2An4FeN2kA9Qmis3RkJqB6QkTb4IQ1UrNPuuZb89T7W4UFG2izUT8hzczKdQDK6HeGqH3IUzX5ktcQq9S91dmcHG/A59yye9Q=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Thu, 07 Dec 2023 00:22:34 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6571104a76871_2c94e0885538@gitlab-sidekiq-catchall-v2-d67c8c785-hch6n.mail>
Subject: xen | Failed pipeline for staging | d4bfd389
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6571104a55358_2c94e088541f";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1097898076
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6571104a55358_2c94e088541f
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1097898076 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: d4bfd389 ( https://gitlab.com/xen-project/xen/-/commit/d4bfd3899886d0fbe259c20660dadb1e00170f2d )
Commit Message: xen/hypervisor: Don't use cc-option-add for -Wd...
Commit Author: Julien Grall


Pipeline #1097898076 ( https://gitlab.com/xen-project/xen/-/pipelines/1097898076 ) triggered by Ganis ( https://gitlab.com/ganis )
had 14 failed jobs.

Job #5696595232 ( https://gitlab.com/xen-project/xen/-/jobs/5696595232/raw )

Stage: build
Name: archlinux-gcc
Job #5696595233 ( https://gitlab.com/xen-project/xen/-/jobs/5696595233/raw )

Stage: build
Name: archlinux-gcc-debug
Job #5696595244 ( https://gitlab.com/xen-project/xen/-/jobs/5696595244/raw )

Stage: build
Name: debian-bookworm-gcc
Job #5696595245 ( https://gitlab.com/xen-project/xen/-/jobs/5696595245/raw )

Stage: build
Name: debian-bookworm-gcc-debug
Job #5696595250 ( https://gitlab.com/xen-project/xen/-/jobs/5696595250/raw )

Stage: build
Name: debian-bookworm-32-gcc-debug
Job #5696595255 ( https://gitlab.com/xen-project/xen/-/jobs/5696595255/raw )

Stage: build
Name: ubuntu-trusty-gcc
Job #5696595256 ( https://gitlab.com/xen-project/xen/-/jobs/5696595256/raw )

Stage: build
Name: ubuntu-trusty-gcc-debug
Job #5696595305 ( https://gitlab.com/xen-project/xen/-/jobs/5696595305/raw )

Stage: build
Name: opensuse-tumbleweed-gcc-debug
Job #5696595312 ( https://gitlab.com/xen-project/xen/-/jobs/5696595312/raw )

Stage: test
Name: build-each-commit-gcc
Job #5696595315 ( https://gitlab.com/xen-project/xen/-/jobs/5696595315/raw )

Stage: test
Name: xilinx-smoke-dom0less-arm64-gcc
Job #5696595323 ( https://gitlab.com/xen-project/xen/-/jobs/5696595323/raw )

Stage: test
Name: xilinx-smoke-dom0less-arm64-gcc-gem-passthrough
Job #5696595174 ( https://gitlab.com/xen-project/xen/-/jobs/5696595174/raw )

Stage: build
Name: alpine-3.18-gcc
Job #5696595302 ( https://gitlab.com/xen-project/xen/-/jobs/5696595302/raw )

Stage: build
Name: opensuse-tumbleweed-gcc
Job #5696595177 ( https://gitlab.com/xen-project/xen/-/jobs/5696595177/raw )

Stage: build
Name: alpine-3.18-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | d4bfd389</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1097898076 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/d4bfd3899886d0fbe2=
59c20660dadb1e00170f2d" style=3D"color: #3777b0; text-decoration: none;">=

d4bfd389
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/hypervisor: Don't use cc-option-add for -Wd...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1097898076">#1097898076</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 14 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595232" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595233" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595244" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595245" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595250" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595255" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595256" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595305" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595312" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595315" style=3D=
"color: #3777b0; text-decoration: none;">
xilinx-smoke-dom0less-arm64-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595323" style=3D=
"color: #3777b0; text-decoration: none;">
xilinx-smoke-dom0less-arm64-gcc-gem-passthrough
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595174" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595302" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5696595177" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6571104a55358_2c94e088541f--


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 01:02:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 01:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649507.1014065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB2m2-0004gE-Gr; Thu, 07 Dec 2023 01:01:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649507.1014065; Thu, 07 Dec 2023 01: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 1rB2m2-0004g7-Dr; Thu, 07 Dec 2023 01:01:54 +0000
Received: by outflank-mailman (input) for mailman id 649507;
 Thu, 07 Dec 2023 01:01: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 1rB2m1-0004fx-JC; Thu, 07 Dec 2023 01:01: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 1rB2m1-0007QI-Hh; Thu, 07 Dec 2023 01:01: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 1rB2m1-0002qD-11; Thu, 07 Dec 2023 01:01:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rB2m1-0000AK-0b; Thu, 07 Dec 2023 01:01: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=9ZCA3Gx6uw3kv6rq4vNWSPsqleERuv99BhwHoLOLBWE=; b=kzX5ErLszlQioii3lm9DW7jiRF
	6eIv9FsTNkP2uJTVYchk1kNxPQMiuxW63+BBLFqp8hZ9x3y5lgPrjQjGf/1fyVcYj77G2j2qzVn2A
	H6Hs8wFd0sCC/pC9IuwumPQALJCsPMYuvu44DVfLl/HH4RICaAJxcojzqvEzdGxkr85M=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184008-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.18-testing test] 184008: tolerable trouble: fail/pass/starved - 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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-qemuu-win7-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-i386-xl-qemut-ws16-amd64:guest-stop: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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-libvirt:migrate-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-i386-xl-pvshim:guest-start: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-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-vhd: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-arm64-arm64-xl-xsm:hosts-allocate:starved:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-raw:hosts-allocate:starved:nonblocking
    xen-4.18-testing:test-arm64-arm64-libvirt-xsm:hosts-allocate:starved:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-thunderx:hosts-allocate:starved:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-vhd:hosts-allocate:starved:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl:hosts-allocate:starved:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit1:hosts-allocate:starved:nonblocking
    xen-4.18-testing:test-arm64-arm64-xl-credit2:hosts-allocate:starved:nonblocking
X-Osstest-Versions-This:
    xen=25b7f9ed0f8c7e138a2cecb113bd377c613153d7
X-Osstest-Versions-That:
    xen=3f9390fea5c51a6d64596d295902d28931eeca4c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 01:01:53 +0000

flight 184008 xen-4.18-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/184008/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183843
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183843
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183843
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183843
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183843
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183843
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183843
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183843
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183843
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183843
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183843
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183843
 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-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-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-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-arm64-arm64-xl-xsm       3 hosts-allocate               starved  n/a
 test-arm64-arm64-libvirt-raw  3 hosts-allocate               starved  n/a
 test-arm64-arm64-libvirt-xsm  3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl-thunderx  3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl-vhd       3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl           3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl-credit1   3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl-credit2   3 hosts-allocate               starved  n/a

version targeted for testing:
 xen                  25b7f9ed0f8c7e138a2cecb113bd377c613153d7
baseline version:
 xen                  3f9390fea5c51a6d64596d295902d28931eeca4c

Last test of basis   183843  2023-11-23 11:39:19 Z   13 days
Testing same since   184008  2023-12-06 10:07:11 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  Frediano Ziglio <frediano.ziglio@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Roger Pau MonnÃ© <roger.pau@citrix.com>
  Stewart Hildebrand <stewart.hildebrand@amd.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                                          starved 
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 starved 
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      starved 
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  starved 
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  starved 
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 starved 
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 starved 
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      starved 
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   3f9390fea5..25b7f9ed0f  25b7f9ed0f8c7e138a2cecb113bd377c613153d7 -> stable-4.18


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 01:12:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 01:12:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649512.1014075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB2vu-0006fH-Fn; Thu, 07 Dec 2023 01:12:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649512.1014075; Thu, 07 Dec 2023 01:12:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB2vu-0006fA-BE; Thu, 07 Dec 2023 01:12:06 +0000
Received: by outflank-mailman (input) for mailman id 649512;
 Thu, 07 Dec 2023 01:12: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=G8G3=HS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1rB2vs-0006f3-OJ
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 01:12:04 +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 a03f3410-949d-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 02:12:03 +0100 (CET)
Received: from [10.10.1.138] (static-72-81-132-2.bltmmd.fios.verizon.net
 [72.81.132.2]) by mx.zohomail.com
 with SMTPS id 1701911513696921.4564397189365;
 Wed, 6 Dec 2023 17:11:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a03f3410-949d-11ee-98e6-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; t=1701911516; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=EAM/403bycAwYcCF1d1GvSqqeNtF8MGXEQQWLvVnCS4FggIfBn47xqdeAsDdsMwj+M+5auyct89ZjmvBRzdnt0ugFohX82jKTHIU2Ao4kM1VbFs27FfA1a7TwCge+TrmHdrVX8akifb8U1jmGyOjDVk/2zhp7SmAPVitovyLAn4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1701911516; 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=Lc4sgEPV98YA5hbtBolTVK0qx3NrWU6E3LxJDMRMCTs=; 
	b=bmOK+cEAP0WA69EX/cDeXcA7MP8xwfT1HcY2eW+8KAP4qibn0r35iWgEpJJsJHbQ6GZ1z2dW6PuC6pmB+g63gaucwfymAVjQCZU8HspBzo2H9w0teZ5E262RYJ8CkIEToanWZ91FiC8116fWLZew4gULGLT0TSGqllUorfrxXk4=
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=1701911516;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=Lc4sgEPV98YA5hbtBolTVK0qx3NrWU6E3LxJDMRMCTs=;
	b=YYz+b94Ery2I96esYR8ehAkAaNhizyJl80Z9Z4zQDYFAohaWq/bFPDYVSM52385E
	EASlskEkZAo4K5kv3/eqH4bn4Tz5Q8IpBo3obgbAX8tiy4Zcto2iwlTRFID9XdQ96re
	VfDD6bPYcNLKI+AgkOhhLFV5TU/CrFXj/sHeFQ8g=
Message-ID: <25a8a55b-f276-47c9-bec3-56f572f4dc73@apertussolutions.com>
Date: Wed, 6 Dec 2023 20:11:50 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v2 1/3] xen/vpci: Clear all vpci status of device
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>, "Huang, Honglei1"
 <Honglei1.Huang@amd.com>, "Zhang, Julia" <Julia.Zhang@amd.com>
References: <20231124104136.3263722-1-Jiqian.Chen@amd.com>
 <20231124104136.3263722-2-Jiqian.Chen@amd.com> <ZWX0U1tYooY70UJo@macbook>
 <BL1PR12MB58493CC28A32E3C9B3A1767FE782A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <14d2dd16-be21-4e9a-97eb-bb477af49e73@apertussolutions.com>
 <930da43f-0395-40cb-a79d-012c4e1acbcb@apertussolutions.com>
 <ZWihrmHpIrI_ccX4@macbook>
 <BL1PR12MB58494BAD4ECCDEB00EACCF9DE786A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZW2zp2emocdOn8_o@macbook>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 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
In-Reply-To: <ZW2zp2emocdOn8_o@macbook>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External



V/r,
Daniel P. Smith
Apertus Solutions, LLC

On 12/4/23 06:10, Roger Pau MonnÃ© wrote:
> On Mon, Dec 04, 2023 at 06:57:03AM +0000, Chen, Jiqian wrote:
>> Hi Daniel P. Smith,
>>
>> On 2023/11/30 22:52, Roger Pau MonnÃ© wrote:
>>> On Thu, Nov 30, 2023 at 07:39:38AM -0500, Daniel P. Smith wrote:
>>>> On 11/30/23 07:25, Daniel P. Smith wrote:
>>>>> On 11/30/23 01:22, Chen, Jiqian wrote:
>>>>>> Hi Roger and Daniel P. Smith,
>>>>>>
>>>>>> On 2023/11/28 22:08, Roger Pau MonnÃ© wrote:
>>>>>>> On Fri, Nov 24, 2023 at 06:41:34PM +0800, 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, this patch add new hypercall to clear
>>>>>>>> all vpci device state. And when reset device happens on dom0
>>>>>>>> side, dom0 can call this hypercall to notify vpci.
>>>>>>>>
>>>>>>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>>>>>>> Signed-off-by: Huang Rui <ray.huang@amd.com>
>>>>>>>> ---
>>>>>>>>  Â  xen/arch/x86/hvm/hypercall.cÂ  |Â  1 +
>>>>>>>>  Â  xen/drivers/passthrough/pci.c | 21 +++++++++++++++++++++
>>>>>>>>  Â  xen/drivers/pci/physdev.cÂ Â Â Â  | 14 ++++++++++++++
>>>>>>>>  Â  xen/drivers/vpci/vpci.cÂ Â Â Â Â Â  |Â  9 +++++++++
>>>>>>>>  Â  xen/include/public/physdev.hÂ  |Â  2 ++
>>>>>>>>  Â  xen/include/xen/pci.hÂ Â Â Â Â Â Â Â  |Â  1 +
>>>>>>>>  Â  xen/include/xen/vpci.hÂ Â Â Â Â Â Â  |Â  6 ++++++
>>>>>>>>  Â  7 files changed, 54 insertions(+)
>>>>>>>>
>>>>>>>> diff --git a/xen/arch/x86/hvm/hypercall.c
>>>>>>>> b/xen/arch/x86/hvm/hypercall.c
>>>>>>>> index eeb73e1aa5..6ad5b4d5f1 100644
>>>>>>>> --- a/xen/arch/x86/hvm/hypercall.c
>>>>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>>>>>>> @@ -84,6 +84,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/passthrough/pci.c
>>>>>>>> b/xen/drivers/passthrough/pci.c
>>>>>>>> index 04d00c7c37..f871715585 100644
>>>>>>>> --- a/xen/drivers/passthrough/pci.c
>>>>>>>> +++ b/xen/drivers/passthrough/pci.c
>>>>>>>> @@ -824,6 +824,27 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
>>>>>>>>  Â Â Â Â Â  return ret;
>>>>>>>>  Â  }
>>>>>>>> +int pci_reset_device_state(u16 seg, u8 bus, u8 devfn)
>>>>>>>
>>>>>>> You could use pci_sbdf_t here instead of 3 parameters.
>>>>>> Will change in next version, thank you.
>>>>>>
>>>>>>>
>>>>>>> I'm however unsure whether we really need this helper just to fetch
>>>>>>> the pdev and call vpci_reset_device_state(), I think you could place
>>>>>>> this logic directly in pci_physdev_op().Â  Unless there are plans to
>>>>>>> use such logic outside of pci_physdev_op().
>>>>>> If I place the logic of pci_reset_device_state directly in
>>>>>> pci_physdev_op. I think I need to declare vpci_reset_device_state in
>>>>>> pci.h? If it is suitable, I will change in next version.
>>>>>>
>>>>>>>
>>>>>>>> +{
>>>>>>>> +Â Â Â  struct pci_dev *pdev;
>>>>>>>> +Â Â Â  int ret = -ENODEV;
>>>>>>>
>>>>>>> Some XSM check should be introduced fro this operation, as none of the
>>>>>>> existing ones is suitable.Â  See xsm_resource_unplug_pci() for example.
>>>>>>>
>>>>>>> xsm_resource_reset_state_pci() or some such I would assume.
>>>>>> I don't know what I should do in XSM function(assume it is
>>>>>> xsm_resource_reset_state_pci).
>>>>>> Hi Daniel P. Smith, could you please give me some suggestions?
>>>>>> Just to check the XSM_PRIV action?
>>>>>>
>>>>>
>>>>> Roger, thank you for seeing this and adding me in!
>>>>>
>>>>> Jiqian, I just wanted to let you know I have seen your post but I have
>>>>> been a little tied up this week. Just with the cursory look, I think
>>>>> Roger is suggesting a new XSM check/hook is warranted.
>>>>>
>>>>> If you would like to attempt at writing the dummy policy side, mimic
>>>>> xsm_resource_plug_pci in xen/include/xsm/dummy.h and
>>>>> xen/include/xsm/xsm.h, then I can look at handling the FLASK portion
>>>>> next week and provide it to you for inclusion into the series. If you
>>>>> are not comfortable with it, I can look at the whole thing next week.
>>>>> Just let me know what you would be comfortable with.
>>>>
>>>> Apologies, thinking about for a moment and was thinking the hook should be
>>>> called xsm_resource_config_pci. I would reset as a config operation and
>>>> there might be new ones in the future. I do not believe there is a need to
>>>> have fine grain access control down to individual config operation, thus
>>>> they could all be captured under this one hook. Roger, what are your
>>>> thoughts about this, in particular how you see vpci evolving?
>>>
>>> So the configuration space reset should only be done by the domain
>>> that's also capable of triggering the physical device reset, usually
>>> the hardware domain.  I don't think it's possible ATM to allow a
>>> domain different than the hardware domain to perform a PCI reset, as
>>> doing it requires unmediated access to the PCI config space.
>>>
>>> So resetting the vPCI state should either be limited to the hardware
>>> domain, or to a pci reset capability explicitly
>>> (xsm_resource_reset_pci or some such?).  Or maybe
>>> xsm_resource_config_pci if that denotes unmediated access to the PCI
>>> config space.
>>>
>>> Thanks, Roger.
>>
>> Is it like below that I need to add for XSM?
>> diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
>> index e6ffa948f7..7a289ba5d8 100644
>> --- a/xen/xsm/dummy.c
>> +++ b/xen/xsm/dummy.c
>> @@ -91,6 +91,7 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
>>       .resource_plug_pci             = xsm_resource_plug_pci,
>>       .resource_unplug_pci           = xsm_resource_unplug_pci,
>>       .resource_setup_pci            = xsm_resource_setup_pci,
>> +    .resource_config_pci            = xsm_resource_config_pci,
> 
> Now that I look at it, using the existing xsm_resource_setup_pci might
> be enough, no need to introduce a xsm_resource_config_pci.

Ack.


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 01:38:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 01:38:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649517.1014084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB3Kv-0002MC-Hv; Thu, 07 Dec 2023 01:37:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649517.1014084; Thu, 07 Dec 2023 01: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 1rB3Kv-0002M5-FJ; Thu, 07 Dec 2023 01:37:57 +0000
Received: by outflank-mailman (input) for mailman id 649517;
 Thu, 07 Dec 2023 01:37: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 1rB3Kt-0002Lc-IX; Thu, 07 Dec 2023 01:37: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 1rB3Kt-0005lB-Fh; Thu, 07 Dec 2023 01:37: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 1rB3Kt-0003n0-3M; Thu, 07 Dec 2023 01:37:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rB3Kt-0006fB-2Q; Thu, 07 Dec 2023 01:37: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=Yv2Cofbv9zOaN3DLJM/5vf6ZPk6QbD/ng7XwJZ1OI6I=; b=E+X53wtO1uIyYdpw/sf4mHzeSM
	eWQVI53ATPBpZW16DdMO1J7euQ6XbQGG0nQpAtqSKsZgRmfzrjv9qWCRheAnWQ+nAmHcR8yepfzYK
	3imWzUzJKN1NyRcsGdMoRrtq8THcwQEorro7WxfAMJ1FPHvlRa49We7+EBzozzkP64kE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184016-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184016: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=df2ec2aab0876d34025968030d1f26ad8e5106ec
X-Osstest-Versions-That:
    ovmf=b59ab98049f20f826ff5302a498a435cbb3b3753
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 01:37:55 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 df2ec2aab0876d34025968030d1f26ad8e5106ec
baseline version:
 ovmf                 b59ab98049f20f826ff5302a498a435cbb3b3753

Last test of basis   184014  2023-12-06 17:11:09 Z    0 days
Testing same since   184016  2023-12-06 23:12:43 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Nate DeSimone <nathaniel.l.desimone@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    
 test-amd64-i386-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
   b59ab98049..df2ec2aab0  df2ec2aab0876d34025968030d1f26ad8e5106ec -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 02:01:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 02:01:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649522.1014095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB3hg-0006x8-F5; Thu, 07 Dec 2023 02:01:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649522.1014095; Thu, 07 Dec 2023 02:01:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB3hg-0006x1-BF; Thu, 07 Dec 2023 02:01:28 +0000
Received: by outflank-mailman (input) for mailman id 649522;
 Thu, 07 Dec 2023 02:01: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=G8G3=HS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1rB3hf-0006wv-DI
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 02:01:27 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 85be978d-94a4-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 03:01:25 +0100 (CET)
Received: from [10.10.1.138] (static-72-81-132-2.bltmmd.fios.verizon.net
 [72.81.132.2]) by mx.zohomail.com
 with SMTPS id 1701914470116589.447177774002;
 Wed, 6 Dec 2023 18:01:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 85be978d-94a4-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; t=1701914472; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Kqrc9EwbPh5h7rvC9rOVh7fgNVkXdWBUCRMvAc583iVAp8TnUCDzXmIookAew1GwkJdaraKkYeBezaMdxy+fB7DnJyeCXe11KGu5Hby8pGpf4C0EafOyulwuseebWby15eLRl3RVn5N0yx4tXtMJd6VRzHC0hutdJ14gqMs9Ylg=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1701914472; 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=VLbM0dadOyLi60RciybOuwW0AEniZ9Gvc8FzEZOI7eM=; 
	b=k7PIPb6R9g/i+SvhoJfjhPXLxLv1bGTbb01GHZP4/q4SXQpLWIMe996u6BzQPHJTbkvBUMrttUvuXhtCr0zj6VTdWJef6z/7v9ykVGkS9Ys5HalyRboHvbSKm2gRDGvEvh3/cZncUtj2PeoUMuNcd6t7TKZ6uVHhEtKyUXykAIE=
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=1701914472;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=VLbM0dadOyLi60RciybOuwW0AEniZ9Gvc8FzEZOI7eM=;
	b=pcTp9Tnm7vjxhUwPUlqL1tMboiNzU/mmzmOEuu2bP9lQuRHHcCBonD9gfx5vU9cw
	x7RV27Q3JMD5Ag6sjxtP1djYDMNu140AKRc+3oz+UvlIQQMKkUlmfh903aSl0pdeX1H
	Jf3RCMyZAtd37kiX3tlEpZHreHA69rHbBrmaPI1Q=
Message-ID: <a6400750-fd17-4452-a60d-bd9307825548@apertussolutions.com>
Date: Wed, 6 Dec 2023 21:01:07 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
To: Julien Grall <julien@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Oleksii <oleksii.kurochko@gmail.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
 <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
 <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 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
In-Reply-To: <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 12/1/23 15:56, Julien Grall wrote:
> (+ Arm and RISC-V folks)
> 
> Hi Shawn,
> 
> On 01/12/2023 20:59, Shawn Anastasio wrote:
>> Adapt arm's earlyfdt parsing code to ppc64 and enable Xen's early boot
>> allocator. Routines for parsing arm-specific devicetree nodes (e.g.
>> multiboot) were excluded, reducing the overall footprint of code that
>> was copied.
> 
> I expect RISC-V to want similar code. I am not really thrilled in the 
> idea of having 3 similar copy of the parsing. So can we extract the 
> common bits (or harmonize it) so it can be shared?

That is actually 4, Hyperlaunch already did a common version for our usage.

> Maybe Oleksii has already a version doing that.
> 
> Cheers,
> 



V/r,
Daniel P. Smith
Apertus Solutions, LLC



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 02:18:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 02:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649525.1014105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB3y5-00018K-S6; Thu, 07 Dec 2023 02:18:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649525.1014105; Thu, 07 Dec 2023 02: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 1rB3y5-00018D-On; Thu, 07 Dec 2023 02:18:25 +0000
Received: by outflank-mailman (input) for mailman id 649525;
 Thu, 07 Dec 2023 02:18: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=QcaE=HS=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rB3y3-000187-VG
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 02:18:23 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e47b7d65-94a6-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 03:18:21 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id C76F3B824D1;
 Thu,  7 Dec 2023 02:18:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FC23C433C8;
 Thu,  7 Dec 2023 02:18: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: e47b7d65-94a6-11ee-98e6-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701915500;
	bh=c7OyBhAKKMMDcdQ7TOKYguis+q3iuIF4wYZKx0rNcd0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=GPEqMtN8nlLWwHDM78zzptjNKtdVnj3qq7q3pNHPpSPYp8J9zaPr5ZyY5WB7kSVow
	 CaCjLREqaYebqfbmMZuh+R9/3d6gJbukVDXQrD+BddaOatSKl2nPfS8Lw9RGJy+07x
	 8kjSyzUv0qqfpnxFNEq+TCiZgc6VJzBaBnUPLq/uoMspy5Jyr4cdfEOwZxkur4Ilgy
	 2xgxx0lFAR6smUenVZV8NAVHyNXOT+1ae1xf3w3g3k8JHx8N1QLJORIyx8KZvO7ovy
	 iSJLqH8U41qO1okKwdI+rAjoZ3Zg9rOei1zngKGlbOBTumZuqTdvb5nt25roOQj9BM
	 GTUvKNYFEvcbA==
Date: Wed, 6 Dec 2023 18:18:09 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
cc: Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Juergen Gross <jgross@suse.com>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    Thomas Gleixner <tglx@linutronix.de>, 
    Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
    "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>, 
    Bjorn Helgaas <bhelgaas@google.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, 
    "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, 
    "Stabellini, Stefano" <stefano.stabellini@amd.com>, 
    "Deucher, Alexander" <Alexander.Deucher@amd.com>, 
    "Koenig, Christian" <Christian.Koenig@amd.com>, 
    "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, 
    "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, 
    "Huang, Honglei1" <Honglei1.Huang@amd.com>, 
    "Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
In-Reply-To: <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
Message-ID: <alpine.DEB.2.22.394.2312061818030.1265976@ubuntu-linux-20-04-desktop>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com> <20231124103123.3263471-3-Jiqian.Chen@amd.com> <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop> <ZWiyBP4Lzz5lXraP@macbook> <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook> <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop> <ZW2ptexPQXrWBiOS@macbook> <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop> <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@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 Tue, 5 Dec 2023, Chen, Jiqian wrote:
> When PVH dom0 enable a device, it will get trigger and polarity from ACPI (see acpi_pci_irq_enable)
> I have a version of patch which tried that way, see below:

This approach looks much better. I think this patch is OKish. Juergen,
what do you think?


> diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
> index ada3868c02c2..43e1bda9f946 100644
> --- a/arch/x86/xen/enlighten_pvh.c
> +++ b/arch/x86/xen/enlighten_pvh.c
> @@ -1,6 +1,7 @@
>  // SPDX-License-Identifier: GPL-2.0
>  #include <linux/acpi.h>
>  #include <linux/export.h>
> +#include <linux/pci.h>
> 
>  #include <xen/hvc-console.h>
> 
> @@ -25,6 +26,127 @@
>  bool __ro_after_init xen_pvh;
>  EXPORT_SYMBOL_GPL(xen_pvh);
> 
> +typedef struct gsi_info {
> +       int gsi;
> +       int trigger;
> +       int polarity;
> +       int pirq;
> +} gsi_info_t;
> +
> +struct acpi_prt_entry {
> +       struct acpi_pci_id      id;
> +       u8                      pin;
> +       acpi_handle             link;
> +       u32                     index;          /* GSI, or link _CRS index */
> +};
> +
> +static int xen_pvh_get_gsi_info(struct pci_dev *dev,
> +                                                               gsi_info_t *gsi_info)
> +{
> +       int gsi;
> +       u8 pin = 0;
> +       struct acpi_prt_entry *entry;
> +       int trigger = ACPI_LEVEL_SENSITIVE;
> +       int polarity = acpi_irq_model == ACPI_IRQ_MODEL_GIC ?
> +                                     ACPI_ACTIVE_HIGH : ACPI_ACTIVE_LOW;
> +
> +       if (dev)
> +               pin = dev->pin;
> +       if (!pin) {
> +               xen_raw_printk("No interrupt pin configured\n");
> +               return -EINVAL;
> +       }
> +
> +       entry = acpi_pci_irq_lookup(dev, pin);
> +       if (entry) {
> +               if (entry->link)
> +                       gsi = acpi_pci_link_allocate_irq(entry->link,
> +                                                        entry->index,
> +                                                        &trigger, &polarity,
> +                                                        NULL);
> +               else
> +                       gsi = entry->index;
> +       } else
> +               return -EINVAL;
> +
> +       gsi_info->gsi = gsi;
> +       gsi_info->trigger = trigger;
> +       gsi_info->polarity = polarity;
> +
> +       return 0;
> +}
> +
> +static int xen_pvh_map_pirq(gsi_info_t *gsi_info)
> +{
> +       struct physdev_map_pirq map_irq;
> +       int ret;
> +
> +       map_irq.domid = DOMID_SELF;
> +       map_irq.type = MAP_PIRQ_TYPE_GSI;
> +       map_irq.index = gsi_info->gsi;
> +       map_irq.pirq = gsi_info->gsi;
> +
> +       ret = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
> +       gsi_info->pirq = map_irq.pirq;
> +
> +       return ret;
> +}
> +
> +static int xen_pvh_unmap_pirq(gsi_info_t *gsi_info)
> +{
> +       struct physdev_unmap_pirq unmap_irq;
> +
> +       unmap_irq.domid = DOMID_SELF;
> +       unmap_irq.pirq = gsi_info->pirq;
> +
> +       return HYPERVISOR_physdev_op(PHYSDEVOP_unmap_pirq, &unmap_irq);
> +}
> +
> +static int xen_pvh_setup_gsi(gsi_info_t *gsi_info)
> +{
> +       struct physdev_setup_gsi setup_gsi;
> +
> +       setup_gsi.gsi = gsi_info->gsi;
> +       setup_gsi.triggering = (gsi_info->trigger == ACPI_EDGE_SENSITIVE ? 0 : 1);
> +       setup_gsi.polarity = (gsi_info->polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
> +
> +       return HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
> +}
> +
> +int xen_pvh_passthrough_gsi(struct pci_dev *dev)
> +{
> +       int ret;
> +       gsi_info_t gsi_info;
> +
> +       if (!dev) {
> +               return -EINVAL;
> +       }
> +
> +       ret = xen_pvh_get_gsi_info(dev, &gsi_info);
> +       if (ret) {
> +               xen_raw_printk("Fail to get gsi info!\n");
> +               return ret;
> +       }
> +
> +       ret = xen_pvh_map_pirq(&gsi_info);
> +       if (ret) {
> +               xen_raw_printk("Fail to map pirq for gsi (%d)!\n", gsi_info.gsi);
> +               return ret;
> +       }
> +
> +       ret = xen_pvh_setup_gsi(&gsi_info);
> +       if (ret == -EEXIST) {
> +               ret = 0;
> +               xen_raw_printk("Already setup the GSI :%u\n", gsi_info.gsi);
> +       } else if (ret) {
> +               xen_raw_printk("Fail to setup gsi (%d)!\n", gsi_info.gsi);
> +               xen_pvh_unmap_pirq(&gsi_info);
> +       }
> +
> +       return ret;
> +}
> +EXPORT_SYMBOL_GPL(xen_pvh_passthrough_gsi);
> +
>  void __init xen_pvh_init(struct boot_params *boot_params)
>  {
>         u32 msr;
> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> index ff30ceca2203..630fe0a34bc6 100644
> --- a/drivers/acpi/pci_irq.c
> +++ b/drivers/acpi/pci_irq.c
> @@ -288,7 +288,7 @@ static int acpi_reroute_boot_interrupt(struct pci_dev *dev,
>  }
>  #endif /* CONFIG_X86_IO_APIC */
> 
> -static struct acpi_prt_entry *acpi_pci_irq_lookup(struct pci_dev *dev, int pin)
> +struct acpi_prt_entry *acpi_pci_irq_lookup(struct pci_dev *dev, int pin)
>  {
>         struct acpi_prt_entry *entry = NULL;
>         struct pci_dev *bridge;
> diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
> index e34b623e4b41..1abd4dad6f40 100644
> --- a/drivers/xen/xen-pciback/pci_stub.c
> +++ b/drivers/xen/xen-pciback/pci_stub.c
> @@ -20,6 +20,7 @@
>  #include <linux/atomic.h>
>  #include <xen/events.h>
>  #include <xen/pci.h>
> +#include <xen/acpi.h>
>  #include <xen/xen.h>
>  #include <asm/xen/hypervisor.h>
>  #include <xen/interface/physdev.h>
> @@ -399,6 +400,12 @@ static int pcistub_init_device(struct pci_dev *dev)
>         if (err)
>                 goto config_release;
> 
> +       if (xen_initial_domain() && xen_pvh_domain()) {
> +               err = xen_pvh_passthrough_gsi(dev);
> +               if (err)
> +                       goto config_release;
> +       }
> +
>         if (dev->msix_cap) {
>                 struct physdev_pci_device ppdev = {
>                         .seg = pci_domain_nr(dev->bus),
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index 641dc4843987..368d56ba2c5e 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -375,6 +375,7 @@ void acpi_unregister_gsi (u32 gsi);
> 
>  struct pci_dev;
> 
> +struct acpi_prt_entry *acpi_pci_irq_lookup(struct pci_dev *dev, int pin);
>  int acpi_pci_irq_enable (struct pci_dev *dev);
>  void acpi_penalize_isa_irq(int irq, int active);
>  bool acpi_isa_irq_available(int irq);
> diff --git a/include/xen/acpi.h b/include/xen/acpi.h
> index b1e11863144d..ce7f5554f88e 100644
> --- a/include/xen/acpi.h
> +++ b/include/xen/acpi.h
> @@ -67,6 +67,7 @@ static inline void xen_acpi_sleep_register(void)
>                 acpi_suspend_lowlevel = xen_acpi_suspend_lowlevel;
>         }
>  }
> +int xen_pvh_passthrough_gsi(struct pci_dev *dev);
>  #else
>  static inline void xen_acpi_sleep_register(void)
>  {
> 
> > 
> > Jan
> 
> -- 
> Best regards,
> Jiqian Chen.
> 


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 02:42:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 02:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649528.1014115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB4LW-0005he-P2; Thu, 07 Dec 2023 02:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649528.1014115; Thu, 07 Dec 2023 02: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 1rB4LW-0005hX-MG; Thu, 07 Dec 2023 02:42:38 +0000
Received: by outflank-mailman (input) for mailman id 649528;
 Thu, 07 Dec 2023 02:42:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QcaE=HS=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rB4LV-0005hR-TJ
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 02:42:37 +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 436890e0-94aa-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 03:42:36 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 7CA8161F3F;
 Thu,  7 Dec 2023 02:42:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A9D92C433C8;
 Thu,  7 Dec 2023 02:42: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: 436890e0-94aa-11ee-98e6-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701916948;
	bh=A+nvrEQiQ+HYDC6Xoo4NEI8mdYJ4yNKSnW4nFTS/yTE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=St4o6yr9jbDb6r1mD6P/UP9VFVOTbfAPuNyjXrhr3mDB/znCXZFS6a6OIwBXApjOR
	 MWT1ivTi/DQRZhZK9UPCkiVTzqRvcB16MChrQ60MjLUeA4j2cXeuqEsiDh58EkpXOA
	 Mwal47bRO1pK1u+LQMnNaBkum+Zob/2DtA4RFKqg+briUr7kTKIyiTUorZ15aG2Bht
	 HCsz3AVTJ1Zm1xfeXVSThj/d/YDfOFmMyBCMWujHEyg4Bpu86NeB0whSFLeGpxFA3Z
	 DIzMKgrsIdw65oSWKk6WLHfRbNCS+I+ZnHEDTcO/HtEkAxALMqVJS1g7lMBbMhIrSg
	 Y+OWY9dbc5jfw==
Date: Wed, 6 Dec 2023 18:42:25 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, andrew.cooper3@citrix.com, 
    george.dunlap@citrix.com, julien@xen.org, bertrannd.marquis@arm.com, 
    roger.pau@citrix.com, roberto.bagnara@bugseng.com, 
    federico.serafini@bugseng.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] docs/misra/rules.rst: add more rules
In-Reply-To: <ccdbe84d-24ca-41f0-bc1f-fb9499c73880@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312061819090.1265976@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2312051859440.110490@ubuntu-linux-20-04-desktop> <ccdbe84d-24ca-41f0-bc1f-fb9499c73880@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 6 Dec 2023, Jan Beulich wrote:
> On 06.12.2023 04:02, Stefano Stabellini wrote:
> > --- a/docs/misra/rules.rst
> > +++ b/docs/misra/rules.rst
> > @@ -462,11 +462,23 @@ maintainers if you want to suggest a change.
> >  
> >         while(0) and while(1) and alike are allowed.
> >  
> > +   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
> > +     - Required
> > +     - An unconditional break statement shall terminate every
> > +       switch-clause
> > +     - In addition to break, also other flow control statements such as
> > +       continue, return, goto are allowed.
> > +
> >     * - `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c>`_
> >       - Required
> >       - A switch-expression shall not have essentially Boolean type
> >       -
> >  
> > +   * - `Rule 17.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
> > +     - Required
> > +     - The features of <stdarg.h> shall not be used
> > +     -
> 
> Did we really accept this without any constraint (warranting mentioning
> here)?

We agreed that in certain situations stdarg.h is OK to use and in those
cases we would add a deviation. Would you like me to add something to
that effect here? I could do that but it would sound a bit vague.  Also
if we want to specify a project-wide deviation it would be better
documented in docs/misra/deviations.rst. I would leave Rule 17.1 without
a note.


> > @@ -478,12 +490,24 @@ maintainers if you want to suggest a change.
> >         have an explicit return statement with an expression
> >       -
> >  
> > +   * - `Rule 17.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_05.c>`_
> > +     - Advisory
> > +     - The function argument corresponding to a parameter declared to
> > +       have an array type shall have an appropriate number of elements
> > +     -
> > +
> >     * - `Rule 17.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_06.c>`_
> >       - Mandatory
> >       - The declaration of an array parameter shall not contain the
> >         static keyword between the [ ]
> >       -
> >  
> > +   * - `Rule 17.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_07.c>`_
> > +     - Required
> > +     - The value returned by a function having non-void return type
> > +       shall be used
> > +     -
> 
> Same question here.

Here I was also thinking it might be good to add a comment. Maybe we could
add:

     - Please beware that this rule has many violations in the Xen
       codebase today, and its adoption is aspirational. However, when
       submitting new patches please try to decrease the number of
       violations when possible.

I would also mention a GCC warning to use for this but I couldn't find
the right one. It looks like all the -Wunused warnings do something
different.


> If the other additions were separate, I probably would have ack-ed them
> right away.

If we can't find the right wording to use quickly I can separate them
out


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 02:45:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 02:45:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649530.1014124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB4OH-0006Fk-54; Thu, 07 Dec 2023 02:45:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649530.1014124; Thu, 07 Dec 2023 02:45:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB4OH-0006Fd-2U; Thu, 07 Dec 2023 02:45:29 +0000
Received: by outflank-mailman (input) for mailman id 649530;
 Thu, 07 Dec 2023 02:45:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=siPQ=HS=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rB4OF-0006FX-GJ
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 02:45:27 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a95b4707-94aa-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 03:45:23 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SlzCG5yj0z4f3jXS
 for <xen-devel@lists.xenproject.org>; Thu,  7 Dec 2023 10:45:14 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 19F081A0904
 for <xen-devel@lists.xenproject.org>; Thu,  7 Dec 2023 10:45:17 +0800 (CST)
Received: from [10.174.176.73] (unknown [10.174.176.73])
 by APP1 (Coremail) with SMTP id cCh0CgCnqxG5MXFllH3QCw--.13955S3;
 Thu, 07 Dec 2023 10:45:16 +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: a95b4707-94aa-11ee-98e6-6d05b1d4d9a1
Subject: Re: [PATCH -next RFC 01/14] block: add some bdev apis
To: Matthew Wilcox <willy@infradead.org>, Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
 kent.overstreet@gmail.com, joern@lazybastard.org, miquel.raynal@bootlin.com,
 richard@nod.at, vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
 hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
 jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
 josef@toxicpanda.com, dsterba@suse.com, nico@fluxnic.net, xiang@kernel.org,
 chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
 agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
 akpm@linux-foundation.org, hare@suse.de, p.raghav@samsung.com,
 linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
 linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
 linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
 linux-btrfs@vger.kernel.org, linux-erofs@lists.ozlabs.org,
 linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
 linux-nilfs@vger.kernel.org, yi.zhang@huawei.com, yangerkun@huawei.com,
 "yukuai (C)" <yukuai3@huawei.com>
References: <20231205123728.1866699-1-yukuai1@huaweicloud.com>
 <20231205123728.1866699-2-yukuai1@huaweicloud.com>
 <ZXCMJ9skAAgPm4z3@casper.infradead.org>
From: Yu Kuai <yukuai1@huaweicloud.com>
Message-ID: <d195aba8-7b89-698f-b7a0-06b87ae01c21@huaweicloud.com>
Date: Thu, 7 Dec 2023 10:45:13 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <ZXCMJ9skAAgPm4z3@casper.infradead.org>
Content-Type: text/plain; charset=gbk; format=flowed
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgCnqxG5MXFllH3QCw--.13955S3
X-Coremail-Antispam: 1UD129KBjvJXoWxuF4Dury5Kr13Aw47Gr4Uurg_yoW5Ar4DpF
	W8KFZ8JrW8Gr18ursrJa15Z3WFg34UJFW5ZrWxG343C3s0yr9akFWYgws0kayIv3yUJFs7
	ZFWjvrW8WF1j9FJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUU9I14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U
	JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc
	CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E
	2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV
	W8JwACjcxG0xvEwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2Y2ka
	0xkIwI1lc7I2V7IY0VAS07AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7x
	kEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E
	67AF67kF1VAFwI0_Wrv_Gr1UMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF
	4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWrJr0_
	WFyUJwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJb
	IYCTnIWIevJa73UjIFyTuYvjfUojjgUUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

Hi,

ÔÚ 2023/12/06 22:58, Matthew Wilcox Ð´µÀ:
> On Tue, Dec 05, 2023 at 08:37:15PM +0800, Yu Kuai wrote:
>> +struct folio *bdev_read_folio(struct block_device *bdev, pgoff_t index)
>> +{
>> +	return read_mapping_folio(bdev->bd_inode->i_mapping, index, NULL);
>> +}
>> +EXPORT_SYMBOL_GPL(bdev_read_folio);
> 
> I'm coming to the opinion that 'index' is the wrong parameter here.
> Looking through all the callers of bdev_read_folio() in this patchset,
> they all have a position in bytes, and they all convert it to
> index for this call.  The API should probably be:
> 
> struct folio *bdev_read_folio(struct block_device *bdev, loff_t pos)
> {
> 	return read_mapping_folio(bdev->bd_inode->i_mapping,
> 			pos / PAGE_SIZE, NULL);
> }

Thanks for reviewing this patchset! Okay, I'll convert to pass in "pos"
in v2.
> 
> ... and at some point, we'll get round to converting read_mapping_folio()
> to take its argument in loff_t.
> 
> Similiarly for these two APIs:
> 
>> +struct folio *bdev_read_folio_gfp(struct block_device *bdev, pgoff_t index,
>> +				  gfp_t gfp)
>> +struct folio *bdev_get_folio(struct block_device *bdev, pgoff_t index)
> 
>> +struct folio *bdev_find_or_create_folio(struct block_device *bdev,
>> +					pgoff_t index, gfp_t gfp)
>> +{
>> +	return __filemap_get_folio(bdev->bd_inode->i_mapping, index,
>> +				   FGP_LOCK | FGP_ACCESSED | FGP_CREAT, gfp);
>> +}
>> +EXPORT_SYMBOL_GPL(bdev_find_or_create_folio);
> 
> This one probably shouldn't exist.  I've been converting callers of
> find_or_create_page() to call __filemap_get_folio; I suspect we
> should expose a __bdev_get_folio and have the callers use the FGP
> arguments directly, but I'm open to other opinions here.

If nobody against this, I will expose single __bdev_get_folio() to use
in v2.
> 
>> +void bdev_sync_readahead(struct block_device *bdev, struct file_ra_state *ra,
>> +			 struct file *file, pgoff_t index,
>> +			 unsigned long req_count)
>> +{
>> +	struct file_ra_state tmp_ra = {};
>> +
>> +	if (!ra) {
>> +		ra = &tmp_ra;
>> +		file_ra_state_init(ra, bdev->bd_inode->i_mapping);
>> +	}
>> +	page_cache_sync_readahead(bdev->bd_inode->i_mapping, ra, file, index,
>> +				  req_count);
>> +}
> 
> I think the caller should always be passing in a valid file_ra_state.
> It's only cramfs that doesn't have one, and it really should!
> Not entirely sure about the arguments here; part of me says "bytes",
> but this is weird enough to maybe take arguments in pages.

In fact, bdev_sync_readahead() is only called for cramfs and ext4.

For ext4 it's used in ext4_readdir() so there is valid file_ra_state.

Hoever, for cramfs it's used in cramfs_read(), and cramfs_read() is used
for:

1) cramfs_read_folio
2) cramfs_readdir
3) cramfs_lookup
4) cramfs_read_super

Looks like it's easy to pass in valid file_ra_state() for 1) and 2),
however, I don't see an easy way to do this for 3) and 4).

Thanks,
Kuai

> 
> .
> 



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 03:29:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 03:29:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649536.1014134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB54G-0006CC-Et; Thu, 07 Dec 2023 03:28:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649536.1014134; Thu, 07 Dec 2023 03: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 1rB54G-0006C5-C2; Thu, 07 Dec 2023 03:28:52 +0000
Received: by outflank-mailman (input) for mailman id 649536;
 Thu, 07 Dec 2023 03:28: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 1rB54F-0006Bv-1Z; Thu, 07 Dec 2023 03:28: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 1rB54E-00081m-NX; Thu, 07 Dec 2023 03:28: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 1rB54E-0006gU-Fn; Thu, 07 Dec 2023 03:28:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rB54E-0003qB-FK; Thu, 07 Dec 2023 03:28: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=b9r4ZWSIJjVHWAoJtat10xe6vM09Lf6HBDaJxuyYLAU=; b=eMnRpIdIT1sRho/T5scyAoyfTW
	mWseh3rG8kzcSdV+42r9Zz+AzJkm04hhiG/zCB2a4C5R7668KMUPYdiap9NiF4vGY9g+y56sLd/1J
	fl4URu31KdfIZNk67Ij9sbTZMPkbeM8+knnX/Pm4cE0BIey/P1h02YYD6hCAA5vWB/rI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184017-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184017: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=ff4c49a5ee38d613384fb2e318d891a800d32999
X-Osstest-Versions-That:
    ovmf=df2ec2aab0876d34025968030d1f26ad8e5106ec
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 03:28:50 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 ff4c49a5ee38d613384fb2e318d891a800d32999
baseline version:
 ovmf                 df2ec2aab0876d34025968030d1f26ad8e5106ec

Last test of basis   184016  2023-12-06 23:12:43 Z    0 days
Testing same since   184017  2023-12-07 01:45:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Nate DeSimone <nathaniel.l.desimone@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    
 test-amd64-i386-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
   df2ec2aab0..ff4c49a5ee  ff4c49a5ee38d613384fb2e318d891a800d32999 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 03:38:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 03:38:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649541.1014145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB5DS-0008Ep-BR; Thu, 07 Dec 2023 03:38:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649541.1014145; Thu, 07 Dec 2023 03:38:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB5DS-0008Ei-86; Thu, 07 Dec 2023 03:38:22 +0000
Received: by outflank-mailman (input) for mailman id 649541;
 Thu, 07 Dec 2023 03:38:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lgZM=HS=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rB5DQ-0008Ec-8W
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 03:38:20 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2061f.outbound.protection.outlook.com
 [2a01:111:f400:7e8d::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ea94d39-94b2-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 04:38:17 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by SA3PR12MB7924.namprd12.prod.outlook.com (2603:10b6:806:313::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Thu, 7 Dec
 2023 03:38:12 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7046.034; Thu, 7 Dec 2023
 03:38:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ea94d39-94b2-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Az4uSC7R4ya3VVCfbTBS/iUMpwXOa4QzvXRUgH0AA1GkCgqEFkNksbaqVkZ1Svp2uGQEhir+i65T4pi8naQ/TJI5jR8gGmFy/ZFsuayhd7fMRO0T9HP2Ldij2piRtoovvofftgdEju3yWkiyolgzKnfe0014+WezTnOKc3ciwdyayPUZxb/TCsoi636AwP1N8WiLLF5gSNTW5UP7oZYzSG8aN32kSQfmL+T/sMN8aZy89xMpsSmkZOMM1/sQYCuk2+0jDjnq3miBjAEmWr5nJf7/FsYlkWuL3Wtxo4VXhhGmEUy7vZqQbM+f4CUSI/O1NM4C9gQvgwXZlfEsiZEMZQ==
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=4ol/wIxQCWBozCV33HEE499j8JVNtbjiWI3tgfIHz8k=;
 b=oR+MGhkSfO6EfZd01KhCxOmiPerWRhxbmnGUoD/IJps3oawJBnu58tdqnKFXD6kILUOCJxityB2dmht89ZrSm39OPujwswoDoohZH3Y22yOEuLZL3hhCE8kRdxqZzWr6PGdRuofvBl526W5wT1yg6tO1g+kcfZqQEr9qrkHPdURmsy0pd/xsKMmN1wjtzKdR1YB7Uz9Trwyu3+rAR5wXw65+uwM6rfPiZ1+uBaXzCP8HzJHr5t9OM3ZA2WE4VYLibXSp1MySLmmjRwmqAn/lH84CVNPJxDjYOgs8EwrB364x49+meiwm0jq7fnty81mp0K8QrEBTHcUuGRbdnIsOfg==
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=4ol/wIxQCWBozCV33HEE499j8JVNtbjiWI3tgfIHz8k=;
 b=qfaWVjPepPBCsg2/x3XHPJ9cIGBTI4e4m14ySQ2KOFKjdzkApGreOmX4SRQbrWOLFVjbO4qLRR6rKGHGEsVBRkualr03FDF2VSjjS3MCh14avbe9ZNUKhLtH+HvE+YsFblQHUb3fepgAjunsnl0V2X5OPo9prHqniwSnvCwTD1w=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: Jan Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Thomas Gleixner <tglx@linutronix.de>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len
 Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, "Stabellini,
 Stefano" <stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Topic: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Index:
 AQHaHsGdlNZnjmvNCkucW725DqxYz7CSRC+AgADLdgCAALwOgIAAX9AAgAE42ICAA5dDgIAAxsiAgAC4TACAABRoAIABzBGAgADOj4CAAJuaAA==
Date: Thu, 7 Dec 2023 03:38:12 +0000
Message-ID:
 <BL1PR12MB58494072635E3C6CEA628AD9E78BA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <alpine.DEB.2.22.394.2312061818030.1265976@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2312061818030.1265976@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: IA1PR12MB7757.namprd12.prod.outlook.com
 (15.20.7091.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_|SA3PR12MB7924:EE_
x-ms-office365-filtering-correlation-id: 6a31c946-133b-4401-a6b9-08dbf6d5f02c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 VzLVeFmuXL5DTbMwALKP0p0vMUpra/xnkzdKXdI54pKU6K66e0pldt6DlXH7wEG1h/Cu8M28VvaZQi2SA4aFl0WNK9+Gt4P19N4ehxXpbNKbzA76HWueiAtev3AUPGshAYt/sHm+kAjqDE+cbQX8IK7Rx59IXJeqA3ZU/tORoCoMy17DJnfE4e5FIctFF0lT0sLx2obf9Wbi+9KljaRAE5/N2VIT90VvmiHbZhEYYhS2lDUlcOLWSrxib/3smaANLhNjfsoqKNM8MFLNUjXuADArITyrX887TJS4yily0FqB6OqHWGMaCFqAaWAjF3fJQ3hOIU+d+g8JkizTo8mmCoAeZJXC4dhR51eWKZuAGBRtICGOOJbuElcM3XJbdTDFjMCv5rQ/upHeq/megvD8arU0CxRPiPErELJpVNncFYmUhDm9Rre7uD09LKf0RBY2kcQ7IhJEmmZwF+qc7Pljg4tmwWv4QoNF9Sgvcgi3I241BL+Go1o835U6lu0mvK4I2c6CFTXmEGG99am6cJhQvw7coEoBWpOlO+Df5WzYdpKiDzZlykOvDY7XrrJ5fOWtHU9z3euXvYwRj2BS/D6IHqGa8CQqX4AnrGAwfnIF+VW2XqmlZcJOGeKKtj47cS9X
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:(13230031)(136003)(39860400002)(346002)(396003)(366004)(376002)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(7416002)(5660300002)(2906002)(41300700001)(122000001)(38100700002)(76116006)(66476007)(66446008)(64756008)(54906003)(66556008)(66946007)(110136005)(71200400001)(478600001)(26005)(53546011)(6506007)(7696005)(9686003)(83380400001)(8936002)(52536014)(8676002)(4326008)(316002)(33656002)(38070700009)(55016003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RUFkd0NyMWhvVVRnckF6TWlFQ3YxcTdOTUdJNTEzOHNuSXpVeVV4WHl3NU9Z?=
 =?utf-8?B?bHBJMHRXV3RYbWRTZ0ZPQTVWbnFtb3Z1clVlLzhOUDJ6YUl5ZTJZMUZmUUVK?=
 =?utf-8?B?TUpoZS92a3hteitGK3R4c0FNaGgvNU85NXZmREsvaS9uZUhKSTFhL2lzTzdh?=
 =?utf-8?B?NkUxMlU4c1hjWHZyY3cyOU8xckUwRDZmUnl3cXpDWFN3WDBDQ1RpN0M5czNV?=
 =?utf-8?B?VnIwTTVpdGIxYWY1YUFNR2QvOUNUNWZZd3NVbDQ5citRVUNDZE0wczNsOUhv?=
 =?utf-8?B?Tm9YOWJqR1Z5SkFuZ1FmdG1yblRUODIrZ2xvMmE0Q3JrZmxFNitZL0lqcS9U?=
 =?utf-8?B?WkVsQzhSb2pXMk5jYlpvc1ZTYTcyZmlxUGZpKzg2ejBlbU5EU1NRTXRGZ0J0?=
 =?utf-8?B?N1hMTHl4Z29lMTRiL1QwN3pQT2N6b3p0UlEwVEUvZk9RMGpzRjh5SUNpVTJ2?=
 =?utf-8?B?SklQUDVoanZHdlh4MjZZL2p2NHRmVS9XczZ4VjUvQm1hRWFkeTMrK2FvUC9x?=
 =?utf-8?B?ZWthYkMvVW1adWFKM1llR01hdnhrbTQvNEFncVVOc2FSSU81QmNIS2QvcmVC?=
 =?utf-8?B?MUN1VzRHeFY0SzVteUdzSmxsYm1XTnJNUHJTOG9oMmlVZkpyMXRIV1JGT0VE?=
 =?utf-8?B?N0tGTUxlME80cjNWVzJKWlBsK05tWldTam5WK2RxWnJZWmFTTGlyS3huajg1?=
 =?utf-8?B?U2ZMMUIwMllNUEJwOVlxTFp1M2RRV1l6bGJwN2JjUkt3S3lRQmFyME1RQlgv?=
 =?utf-8?B?b1FOUnQwUnlhL2IxT25ST1dIUzZnRjVSUkVZY1BlVEVIaGk0bm0zcnRoVzBN?=
 =?utf-8?B?WDZ1NjY2RmlvZEhCUWVrOENURlJTRHFYYlhTaFZXdlREbHJIcFp0U1F2Qkgv?=
 =?utf-8?B?Mlc0clBLcFd2ZnZ6L1Fqek5tSXhzcXQ1d2VMQVpHcWtMTW9qOXJUdG1iRGZF?=
 =?utf-8?B?ZWh6M1RjTlFTTDE5Vm81K28rb2t0ZGJRczdnZ2tVd2NndGlDZEJ4QkZrY21U?=
 =?utf-8?B?dnZEZkp1WDVwc0h2ZnFSSm5vQ0Vxd0FkcVVIOVpsNk1KWDNGcVpKQ20rU1BX?=
 =?utf-8?B?RkExNjZlb0ttNTNiN2VrVUE1Z1FJQW5MNHJlMDdmOXBVVFB2S1J5MGxNYUNj?=
 =?utf-8?B?c25rR2xlQ2ZMMVdPL2pWdlVjWm5uVTQwZkZpZEpuR0ZWNjE3bnI4bWFRSlFS?=
 =?utf-8?B?czRXQUFQS2oyaUdrWU5QdTVxZjJvbG9xUkFuK1hxK0lSQzUrcjVvRjFlVTlp?=
 =?utf-8?B?dXBxZFJDaUxrR2hzM2QzUmdpcCtFbW1ieG4zUVJKSUVqcXkzMWdZR2E3MkFU?=
 =?utf-8?B?SGlmV3hPTFREdzU5VXlFY1pLVEtoczdrSDIwZ3FjUWxNTEU4VWxxY0xXRHpw?=
 =?utf-8?B?L21yMTFIK0NzN1ZxTW52azhqdWc3bW5QU1BSU1hCWnFCK1VTTDlFZ0ZPM3lu?=
 =?utf-8?B?Ui9sanZ3TWp0UVltalozcUN5YjRCZGZkM2RJcGs0emtaOXdHYVU2eC9GN0l0?=
 =?utf-8?B?N1BSaUNERG5qNXNBUDFuajF4UXUyOHBadlFzRURBRFBORUpVellKS1JVN0Zi?=
 =?utf-8?B?clh4enhzMjNJZnBMQS9nSHhZZXFtSkQ1amlCdnh1UDlGMVZrY21qd09LZlFh?=
 =?utf-8?B?VWRuTkVkNWZxeTk3cUxSaExHVzRPMjBaSjI4dlYyV2FnbXgvY29KNldXYlRX?=
 =?utf-8?B?UEd4SWQ1eDdyRC81S0ZtcmdpUzFjMmFLbW1aZVh1c1NBbTZpZGQzMHVKNkNW?=
 =?utf-8?B?NnY5eU1sYzZ6NkNCSTQ2RVZSdWZUNDg5ZEZqWlFUQ0lLemZZQjJYOHFHU05Q?=
 =?utf-8?B?M080ZVd3blRyZkhQbVpTZUlLTVQ1N05QRW1MSUZDcWdsdWJPSVMwTG0zZC9r?=
 =?utf-8?B?WnNqSnZDNGVWWnI5Q2pEVkdTUEU4ZUJvT1QwMnVwR3NDd21NVGJBcHQyRFRC?=
 =?utf-8?B?SnVJclNVNmdLTkdJQVhVMzk5NXpKQmJsaG9jaTR1ekd0N042aVdvaUdSM1ox?=
 =?utf-8?B?V25EVUROOUJBWHNzbi9acVYvNVY1MmM3OC92bnJzemUrT3RDYkVCY0xCMFNp?=
 =?utf-8?B?NktWcmZ0RVpqdE91dXVFRWZiOS8wSjFPTEhJMUF3Mm5ZYVVZaStnTC91RDVD?=
 =?utf-8?Q?CDEo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4A24FAC7503899409F781640B7FD708B@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: 6a31c946-133b-4401-a6b9-08dbf6d5f02c
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Dec 2023 03:38:12.0699
 (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: 1tdsFMDvmGibFYVuAEQs53V4zsb2J8oRZ9Rjwb776QcyxYXR5Rlke1CHILp1g5dTP19q+wTPDDr5bYXrIH8XHQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7924

KEFkZGluZyBKdWVyZ2VuIHRvIHRoZSAiVG8iIGxpc3QuKQ0KDQpIaSBKdWVyZ2VuLCANCkxvb2tp
bmcgZm9yd2FyZCB0byB5b3VyIG9waW5pb25zLg0KDQpPbiAyMDIzLzEyLzcgMTA6MTgsIFN0ZWZh
bm8gU3RhYmVsbGluaSB3cm90ZToNCj4gT24gVHVlLCA1IERlYyAyMDIzLCBDaGVuLCBKaXFpYW4g
d3JvdGU6DQo+PiBXaGVuIFBWSCBkb20wIGVuYWJsZSBhIGRldmljZSwgaXQgd2lsbCBnZXQgdHJp
Z2dlciBhbmQgcG9sYXJpdHkgZnJvbSBBQ1BJIChzZWUgYWNwaV9wY2lfaXJxX2VuYWJsZSkNCj4+
IEkgaGF2ZSBhIHZlcnNpb24gb2YgcGF0Y2ggd2hpY2ggdHJpZWQgdGhhdCB3YXksIHNlZSBiZWxv
dzoNCj4gDQo+IFRoaXMgYXBwcm9hY2ggbG9va3MgbXVjaCBiZXR0ZXIuIEkgdGhpbmsgdGhpcyBw
YXRjaCBpcyBPS2lzaC4gSnVlcmdlbiwNCj4gd2hhdCBkbyB5b3UgdGhpbms/DQo+IA0KPiANCj4+
IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2aC5jIGIvYXJjaC94ODYveGVu
L2VubGlnaHRlbl9wdmguYw0KPj4gaW5kZXggYWRhMzg2OGMwMmMyLi40M2UxYmRhOWY5NDYgMTAw
NjQ0DQo+PiAtLS0gYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2aC5jDQo+PiArKysgYi9hcmNo
L3g4Ni94ZW4vZW5saWdodGVuX3B2aC5jDQo+PiBAQCAtMSw2ICsxLDcgQEANCj4+ICAvLyBTUERY
LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KPj4gICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+
DQo+PiAgI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9wY2ku
aD4NCj4+DQo+PiAgI2luY2x1ZGUgPHhlbi9odmMtY29uc29sZS5oPg0KPj4NCj4+IEBAIC0yNSw2
ICsyNiwxMjcgQEANCj4+ICBib29sIF9fcm9fYWZ0ZXJfaW5pdCB4ZW5fcHZoOw0KPj4gIEVYUE9S
VF9TWU1CT0xfR1BMKHhlbl9wdmgpOw0KPj4NCj4+ICt0eXBlZGVmIHN0cnVjdCBnc2lfaW5mbyB7
DQo+PiArICAgICAgIGludCBnc2k7DQo+PiArICAgICAgIGludCB0cmlnZ2VyOw0KPj4gKyAgICAg
ICBpbnQgcG9sYXJpdHk7DQo+PiArICAgICAgIGludCBwaXJxOw0KPj4gK30gZ3NpX2luZm9fdDsN
Cj4+ICsNCj4+ICtzdHJ1Y3QgYWNwaV9wcnRfZW50cnkgew0KPj4gKyAgICAgICBzdHJ1Y3QgYWNw
aV9wY2lfaWQgICAgICBpZDsNCj4+ICsgICAgICAgdTggICAgICAgICAgICAgICAgICAgICAgcGlu
Ow0KPj4gKyAgICAgICBhY3BpX2hhbmRsZSAgICAgICAgICAgICBsaW5rOw0KPj4gKyAgICAgICB1
MzIgICAgICAgICAgICAgICAgICAgICBpbmRleDsgICAgICAgICAgLyogR1NJLCBvciBsaW5rIF9D
UlMgaW5kZXggKi8NCj4+ICt9Ow0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgeGVuX3B2aF9nZXRfZ3Np
X2luZm8oc3RydWN0IHBjaV9kZXYgKmRldiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2lfaW5mb190ICpnc2lfaW5m
bykNCj4+ICt7DQo+PiArICAgICAgIGludCBnc2k7DQo+PiArICAgICAgIHU4IHBpbiA9IDA7DQo+
PiArICAgICAgIHN0cnVjdCBhY3BpX3BydF9lbnRyeSAqZW50cnk7DQo+PiArICAgICAgIGludCB0
cmlnZ2VyID0gQUNQSV9MRVZFTF9TRU5TSVRJVkU7DQo+PiArICAgICAgIGludCBwb2xhcml0eSA9
IGFjcGlfaXJxX21vZGVsID09IEFDUElfSVJRX01PREVMX0dJQyA/DQo+PiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFDUElfQUNUSVZFX0hJR0ggOiBBQ1BJX0FDVElWRV9M
T1c7DQo+PiArDQo+PiArICAgICAgIGlmIChkZXYpDQo+PiArICAgICAgICAgICAgICAgcGluID0g
ZGV2LT5waW47DQo+PiArICAgICAgIGlmICghcGluKSB7DQo+PiArICAgICAgICAgICAgICAgeGVu
X3Jhd19wcmludGsoIk5vIGludGVycnVwdCBwaW4gY29uZmlndXJlZFxuIik7DQo+PiArICAgICAg
ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAg
ZW50cnkgPSBhY3BpX3BjaV9pcnFfbG9va3VwKGRldiwgcGluKTsNCj4+ICsgICAgICAgaWYgKGVu
dHJ5KSB7DQo+PiArICAgICAgICAgICAgICAgaWYgKGVudHJ5LT5saW5rKQ0KPj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgZ3NpID0gYWNwaV9wY2lfbGlua19hbGxvY2F0ZV9pcnEoZW50cnktPmxp
bmssDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbnRyeS0+aW5kZXgsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmdHJpZ2dlciwgJnBvbGFyaXR5LA0KPj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
DQo+PiArICAgICAgICAgICAgICAgZWxzZQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ3Np
ID0gZW50cnktPmluZGV4Ow0KPj4gKyAgICAgICB9IGVsc2UNCj4+ICsgICAgICAgICAgICAgICBy
ZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICsgICAgICAgZ3NpX2luZm8tPmdzaSA9IGdzaTsNCj4+
ICsgICAgICAgZ3NpX2luZm8tPnRyaWdnZXIgPSB0cmlnZ2VyOw0KPj4gKyAgICAgICBnc2lfaW5m
by0+cG9sYXJpdHkgPSBwb2xhcml0eTsNCj4+ICsNCj4+ICsgICAgICAgcmV0dXJuIDA7DQo+PiAr
fQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgeGVuX3B2aF9tYXBfcGlycShnc2lfaW5mb190ICpnc2lf
aW5mbykNCj4+ICt7DQo+PiArICAgICAgIHN0cnVjdCBwaHlzZGV2X21hcF9waXJxIG1hcF9pcnE7
DQo+PiArICAgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICAgIG1hcF9pcnEuZG9taWQgPSBE
T01JRF9TRUxGOw0KPj4gKyAgICAgICBtYXBfaXJxLnR5cGUgPSBNQVBfUElSUV9UWVBFX0dTSTsN
Cj4+ICsgICAgICAgbWFwX2lycS5pbmRleCA9IGdzaV9pbmZvLT5nc2k7DQo+PiArICAgICAgIG1h
cF9pcnEucGlycSA9IGdzaV9pbmZvLT5nc2k7DQo+PiArDQo+PiArICAgICAgIHJldCA9IEhZUEVS
VklTT1JfcGh5c2Rldl9vcChQSFlTREVWT1BfbWFwX3BpcnEsICZtYXBfaXJxKTsNCj4+ICsgICAg
ICAgZ3NpX2luZm8tPnBpcnEgPSBtYXBfaXJxLnBpcnE7DQo+PiArDQo+PiArICAgICAgIHJldHVy
biByZXQ7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgeGVuX3B2aF91bm1hcF9waXJxKGdz
aV9pbmZvX3QgKmdzaV9pbmZvKQ0KPj4gK3sNCj4+ICsgICAgICAgc3RydWN0IHBoeXNkZXZfdW5t
YXBfcGlycSB1bm1hcF9pcnE7DQo+PiArDQo+PiArICAgICAgIHVubWFwX2lycS5kb21pZCA9IERP
TUlEX1NFTEY7DQo+PiArICAgICAgIHVubWFwX2lycS5waXJxID0gZ3NpX2luZm8tPnBpcnE7DQo+
PiArDQo+PiArICAgICAgIHJldHVybiBIWVBFUlZJU09SX3BoeXNkZXZfb3AoUEhZU0RFVk9QX3Vu
bWFwX3BpcnEsICZ1bm1hcF9pcnEpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50IHhlbl9w
dmhfc2V0dXBfZ3NpKGdzaV9pbmZvX3QgKmdzaV9pbmZvKQ0KPj4gK3sNCj4+ICsgICAgICAgc3Ry
dWN0IHBoeXNkZXZfc2V0dXBfZ3NpIHNldHVwX2dzaTsNCj4+ICsNCj4+ICsgICAgICAgc2V0dXBf
Z3NpLmdzaSA9IGdzaV9pbmZvLT5nc2k7DQo+PiArICAgICAgIHNldHVwX2dzaS50cmlnZ2VyaW5n
ID0gKGdzaV9pbmZvLT50cmlnZ2VyID09IEFDUElfRURHRV9TRU5TSVRJVkUgPyAwIDogMSk7DQo+
PiArICAgICAgIHNldHVwX2dzaS5wb2xhcml0eSA9IChnc2lfaW5mby0+cG9sYXJpdHkgPT0gQUNQ
SV9BQ1RJVkVfSElHSCA/IDAgOiAxKTsNCj4+ICsNCj4+ICsgICAgICAgcmV0dXJuIEhZUEVSVklT
T1JfcGh5c2Rldl9vcChQSFlTREVWT1Bfc2V0dXBfZ3NpLCAmc2V0dXBfZ3NpKTsNCj4+ICt9DQo+
PiArDQo+PiAraW50IHhlbl9wdmhfcGFzc3Rocm91Z2hfZ3NpKHN0cnVjdCBwY2lfZGV2ICpkZXYp
DQo+PiArew0KPj4gKyAgICAgICBpbnQgcmV0Ow0KPj4gKyAgICAgICBnc2lfaW5mb190IGdzaV9p
bmZvOw0KPj4gKw0KPj4gKyAgICAgICBpZiAoIWRldikgew0KPj4gKyAgICAgICAgICAgICAgIHJl
dHVybiAtRUlOVkFMOw0KPj4gKyAgICAgICB9DQo+PiArDQo+PiArICAgICAgIHJldCA9IHhlbl9w
dmhfZ2V0X2dzaV9pbmZvKGRldiwgJmdzaV9pbmZvKTsNCj4+ICsgICAgICAgaWYgKHJldCkgew0K
Pj4gKyAgICAgICAgICAgICAgIHhlbl9yYXdfcHJpbnRrKCJGYWlsIHRvIGdldCBnc2kgaW5mbyFc
biIpOw0KPj4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICAgIH0NCj4+ICsN
Cj4+ICsgICAgICAgcmV0ID0geGVuX3B2aF9tYXBfcGlycSgmZ3NpX2luZm8pOw0KPj4gKyAgICAg
ICBpZiAocmV0KSB7DQo+PiArICAgICAgICAgICAgICAgeGVuX3Jhd19wcmludGsoIkZhaWwgdG8g
bWFwIHBpcnEgZm9yIGdzaSAoJWQpIVxuIiwgZ3NpX2luZm8uZ3NpKTsNCj4+ICsgICAgICAgICAg
ICAgICByZXR1cm4gcmV0Ow0KPj4gKyAgICAgICB9DQo+PiArDQo+PiArICAgICAgIHJldCA9IHhl
bl9wdmhfc2V0dXBfZ3NpKCZnc2lfaW5mbyk7DQo+PiArICAgICAgIGlmIChyZXQgPT0gLUVFWElT
VCkgew0KPj4gKyAgICAgICAgICAgICAgIHJldCA9IDA7DQo+PiArICAgICAgICAgICAgICAgeGVu
X3Jhd19wcmludGsoIkFscmVhZHkgc2V0dXAgdGhlIEdTSSA6JXVcbiIsIGdzaV9pbmZvLmdzaSk7
DQo+PiArICAgICAgIH0gZWxzZSBpZiAocmV0KSB7DQo+PiArICAgICAgICAgICAgICAgeGVuX3Jh
d19wcmludGsoIkZhaWwgdG8gc2V0dXAgZ3NpICglZCkhXG4iLCBnc2lfaW5mby5nc2kpOw0KPj4g
KyAgICAgICAgICAgICAgIHhlbl9wdmhfdW5tYXBfcGlycSgmZ3NpX2luZm8pOw0KPj4gKyAgICAg
ICB9DQo+PiArDQo+PiArICAgICAgIHJldHVybiByZXQ7DQo+PiArfQ0KPj4gK0VYUE9SVF9TWU1C
T0xfR1BMKHhlbl9wdmhfcGFzc3Rocm91Z2hfZ3NpKTsNCj4+ICsNCj4+ICB2b2lkIF9faW5pdCB4
ZW5fcHZoX2luaXQoc3RydWN0IGJvb3RfcGFyYW1zICpib290X3BhcmFtcykNCj4+ICB7DQo+PiAg
ICAgICAgIHUzMiBtc3I7DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3BjaV9pcnEuYyBi
L2RyaXZlcnMvYWNwaS9wY2lfaXJxLmMNCj4+IGluZGV4IGZmMzBjZWNhMjIwMy4uNjMwZmUwYTM0
YmM2IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9hY3BpL3BjaV9pcnEuYw0KPj4gKysrIGIvZHJp
dmVycy9hY3BpL3BjaV9pcnEuYw0KPj4gQEAgLTI4OCw3ICsyODgsNyBAQCBzdGF0aWMgaW50IGFj
cGlfcmVyb3V0ZV9ib290X2ludGVycnVwdChzdHJ1Y3QgcGNpX2RldiAqZGV2LA0KPj4gIH0NCj4+
ICAjZW5kaWYgLyogQ09ORklHX1g4Nl9JT19BUElDICovDQo+Pg0KPj4gLXN0YXRpYyBzdHJ1Y3Qg
YWNwaV9wcnRfZW50cnkgKmFjcGlfcGNpX2lycV9sb29rdXAoc3RydWN0IHBjaV9kZXYgKmRldiwg
aW50IHBpbikNCj4+ICtzdHJ1Y3QgYWNwaV9wcnRfZW50cnkgKmFjcGlfcGNpX2lycV9sb29rdXAo
c3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHBpbikNCj4+ICB7DQo+PiAgICAgICAgIHN0cnVjdCBh
Y3BpX3BydF9lbnRyeSAqZW50cnkgPSBOVUxMOw0KPj4gICAgICAgICBzdHJ1Y3QgcGNpX2RldiAq
YnJpZGdlOw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHVi
LmMgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jDQo+PiBpbmRleCBlMzRiNjIz
ZTRiNDEuLjFhYmQ0ZGFkNmY0MCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMveGVuL3hlbi1wY2li
YWNrL3BjaV9zdHViLmMNCj4+ICsrKyBiL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHVi
LmMNCj4+IEBAIC0yMCw2ICsyMCw3IEBADQo+PiAgI2luY2x1ZGUgPGxpbnV4L2F0b21pYy5oPg0K
Pj4gICNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+DQo+PiAgI2luY2x1ZGUgPHhlbi9wY2kuaD4NCj4+
ICsjaW5jbHVkZSA8eGVuL2FjcGkuaD4NCj4+ICAjaW5jbHVkZSA8eGVuL3hlbi5oPg0KPj4gICNp
bmNsdWRlIDxhc20veGVuL2h5cGVydmlzb3IuaD4NCj4+ICAjaW5jbHVkZSA8eGVuL2ludGVyZmFj
ZS9waHlzZGV2Lmg+DQo+PiBAQCAtMzk5LDYgKzQwMCwxMiBAQCBzdGF0aWMgaW50IHBjaXN0dWJf
aW5pdF9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldikNCj4+ICAgICAgICAgaWYgKGVycikNCj4+
ICAgICAgICAgICAgICAgICBnb3RvIGNvbmZpZ19yZWxlYXNlOw0KPj4NCj4+ICsgICAgICAgaWYg
KHhlbl9pbml0aWFsX2RvbWFpbigpICYmIHhlbl9wdmhfZG9tYWluKCkpIHsNCj4+ICsgICAgICAg
ICAgICAgICBlcnIgPSB4ZW5fcHZoX3Bhc3N0aHJvdWdoX2dzaShkZXYpOw0KPj4gKyAgICAgICAg
ICAgICAgIGlmIChlcnIpDQo+PiArICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGNvbmZpZ19y
ZWxlYXNlOw0KPj4gKyAgICAgICB9DQo+PiArDQo+PiAgICAgICAgIGlmIChkZXYtPm1zaXhfY2Fw
KSB7DQo+PiAgICAgICAgICAgICAgICAgc3RydWN0IHBoeXNkZXZfcGNpX2RldmljZSBwcGRldiA9
IHsNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIC5zZWcgPSBwY2lfZG9tYWluX25yKGRldi0+
YnVzKSwNCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FjcGkuaCBiL2luY2x1ZGUvbGlu
dXgvYWNwaS5oDQo+PiBpbmRleCA2NDFkYzQ4NDM5ODcuLjM2OGQ1NmJhMmM1ZSAxMDA2NDQNCj4+
IC0tLSBhL2luY2x1ZGUvbGludXgvYWNwaS5oDQo+PiArKysgYi9pbmNsdWRlL2xpbnV4L2FjcGku
aA0KPj4gQEAgLTM3NSw2ICszNzUsNyBAQCB2b2lkIGFjcGlfdW5yZWdpc3Rlcl9nc2kgKHUzMiBn
c2kpOw0KPj4NCj4+ICBzdHJ1Y3QgcGNpX2RldjsNCj4+DQo+PiArc3RydWN0IGFjcGlfcHJ0X2Vu
dHJ5ICphY3BpX3BjaV9pcnFfbG9va3VwKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwaW4pOw0K
Pj4gIGludCBhY3BpX3BjaV9pcnFfZW5hYmxlIChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsNCj4+ICB2
b2lkIGFjcGlfcGVuYWxpemVfaXNhX2lycShpbnQgaXJxLCBpbnQgYWN0aXZlKTsNCj4+ICBib29s
IGFjcGlfaXNhX2lycV9hdmFpbGFibGUoaW50IGlycSk7DQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVk
ZS94ZW4vYWNwaS5oIGIvaW5jbHVkZS94ZW4vYWNwaS5oDQo+PiBpbmRleCBiMWUxMTg2MzE0NGQu
LmNlN2Y1NTU0Zjg4ZSAxMDA2NDQNCj4+IC0tLSBhL2luY2x1ZGUveGVuL2FjcGkuaA0KPj4gKysr
IGIvaW5jbHVkZS94ZW4vYWNwaS5oDQo+PiBAQCAtNjcsNiArNjcsNyBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgeGVuX2FjcGlfc2xlZXBfcmVnaXN0ZXIodm9pZCkNCj4+ICAgICAgICAgICAgICAgICBh
Y3BpX3N1c3BlbmRfbG93bGV2ZWwgPSB4ZW5fYWNwaV9zdXNwZW5kX2xvd2xldmVsOw0KPj4gICAg
ICAgICB9DQo+PiAgfQ0KPj4gK2ludCB4ZW5fcHZoX3Bhc3N0aHJvdWdoX2dzaShzdHJ1Y3QgcGNp
X2RldiAqZGV2KTsNCj4+ICAjZWxzZQ0KPj4gIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fYWNwaV9z
bGVlcF9yZWdpc3Rlcih2b2lkKQ0KPj4gIHsNCj4+DQo+Pj4NCj4+PiBKYW4NCj4+DQo+PiAtLSAN
Cj4+IEJlc3QgcmVnYXJkcywNCj4+IEppcWlhbiBDaGVuLg0KPj4NCg0KLS0gDQpCZXN0IHJlZ2Fy
ZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 05:09:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 05:09:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649544.1014154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB6dI-0005WA-ML; Thu, 07 Dec 2023 05:09:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649544.1014154; Thu, 07 Dec 2023 05:09:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB6dI-0005W3-Ja; Thu, 07 Dec 2023 05:09:08 +0000
Received: by outflank-mailman (input) for mailman id 649544;
 Thu, 07 Dec 2023 05:09: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 1rB6dI-0005Vt-3Y; Thu, 07 Dec 2023 05:09: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 1rB6dH-00021M-P6; Thu, 07 Dec 2023 05:09: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 1rB6dH-0000de-CY; Thu, 07 Dec 2023 05:09:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rB6dH-00088A-Bz; Thu, 07 Dec 2023 05:09: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=pY09XKnT3w6EGVHqd72qLIHEGv0emRntyWbeX4m4UGw=; b=m0IXbKc8/OR3Ip2MDHe2iSirYZ
	lQtPehgHCAYNllxwTaXhFYjqjRFMpsI9vb8WhcVLaPgPGKRxhQvKDv/+BFK9B3FyBAwyZcX/+qhoJ
	6n4Nr5rVtakniYxTuZ0Q418i0mGsS/j2QKYxIXXFZYu0TvKohf7Xq5Pdez28ZUTMj7YU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184005-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184005: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-credit1:guest-start/debian.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=01da0aeecd41435cea8bd2fe0f547e0a474f6e45
X-Osstest-Versions-That:
    xen=ff1178062094837d55ef342070e58316c43a54c9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 05:09:07 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit1 18 guest-start/debian.repeat fail pass in 184018-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183996
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183996
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183996
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183996
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183996
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183996
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183996
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183996
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183996
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183996
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183996
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183996
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-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-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-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-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-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-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  01da0aeecd41435cea8bd2fe0f547e0a474f6e45
baseline version:
 xen                  ff1178062094837d55ef342070e58316c43a54c9

Last test of basis   183996  2023-12-05 16:10:29 Z    1 days
Testing same since   184005  2023-12-06 06:14:42 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Michal Orzel <michal.orzel@amd.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Roger Pau Monne <roger.pau@citrix.com>
  Roger Pau MonnÃ© <roger.pau@citrix.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   ff11780620..01da0aeecd  01da0aeecd41435cea8bd2fe0f547e0a474f6e45 -> master


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 06:26:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 06:26:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649553.1014177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB7pf-0008DZ-Dy; Thu, 07 Dec 2023 06:25:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649553.1014177; Thu, 07 Dec 2023 06:25:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB7pf-0008DS-BC; Thu, 07 Dec 2023 06:25:59 +0000
Received: by outflank-mailman (input) for mailman id 649553;
 Thu, 07 Dec 2023 06:25: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=ZW7A=HS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rB7pe-0008DM-87
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 06:25: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 7a9c23e9-94c9-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 07:25:56 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 9988121DE6;
 Thu,  7 Dec 2023 06:25:55 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 654FD139E3;
 Thu,  7 Dec 2023 06:25:55 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id U5gOF3NlcWW/EgAAn2gu4w
 (envelope-from <jgross@suse.com>); Thu, 07 Dec 2023 06:25: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: 7a9c23e9-94c9-11ee-98e6-6d05b1d4d9a1
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [PATCH v2] tools/libs/evtchn: replace assert()s in stubdom with proper locking
Date: Thu,  7 Dec 2023 07:25:51 +0100
Message-Id: <20231207062551.19825-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 TO_DN_SOME(0.00)[];
	 NEURAL_HAM_LONG(-0.99)[-0.986];
	 RCVD_COUNT_THREE(0.00)[3];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 MX_GOOD(-0.01)[];
	 NEURAL_HAM_SHORT(-0.17)[-0.852];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[];
	 BAYES_HAM(-3.00)[99.99%]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: 9988121DE6
X-Spam-Flag: YES
X-Spam: Yes

In tools/libs/evtchn/minios.c there are assert()s for the current
thread being the main thread when binding an event channel.

As Mini-OS is supporting multiple threads, there is no real reason
why the binding shouldn't be allowed to happen in any other thread.

Drop the assert()s and replace them with proper locking of the
port_list.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- add locking (Jason Andryuk)
---
 tools/libs/evtchn/minios.c | 79 ++++++++++++++++++++++++++------------
 1 file changed, 54 insertions(+), 25 deletions(-)

diff --git a/tools/libs/evtchn/minios.c b/tools/libs/evtchn/minios.c
index 28743cb055..c807e17f55 100644
--- a/tools/libs/evtchn/minios.c
+++ b/tools/libs/evtchn/minios.c
@@ -25,6 +25,7 @@
 #include <mini-os/os.h>
 #include <mini-os/lib.h>
 #include <mini-os/events.h>
+#include <mini-os/semaphore.h>
 #include <mini-os/wait.h>
 
 #include <assert.h>
@@ -40,6 +41,11 @@
 
 XEN_LIST_HEAD(port_list, struct port_info);
 
+struct ports {
+    struct port_list list;
+    struct semaphore sem;
+};
+
 struct port_info {
     XEN_LIST_ENTRY(struct port_info) list;
     evtchn_port_t port;
@@ -47,12 +53,11 @@ struct port_info {
     bool bound;
 };
 
-/* XXX Note: This is not threadsafe */
 static struct port_info *port_alloc(xenevtchn_handle *xce)
 {
     struct port_info *port_info;
     struct file *file = get_file_from_fd(xce->fd);
-    struct port_list *port_list = file->dev;
+    struct ports *ports = file->dev;
 
     port_info = malloc(sizeof(struct port_info));
     if ( port_info == NULL )
@@ -62,7 +67,9 @@ static struct port_info *port_alloc(xenevtchn_handle *xce)
     port_info->port = -1;
     port_info->bound = false;
 
-    XEN_LIST_INSERT_HEAD(port_list, port_info, list);
+    down(&ports->sem);
+    XEN_LIST_INSERT_HEAD(&ports->list, port_info, list);
+    up(&ports->sem);
 
     return port_info;
 }
@@ -79,11 +86,12 @@ static void port_dealloc(struct port_info *port_info)
 static int evtchn_close_fd(struct file *file)
 {
     struct port_info *port_info, *tmp;
-    struct port_list *port_list = file->dev;
+    struct ports *ports = file->dev;
 
-    XEN_LIST_FOREACH_SAFE(port_info, port_list, list, tmp)
+    XEN_LIST_FOREACH_SAFE(port_info, &ports->list, list, tmp)
         port_dealloc(port_info);
-    free(port_list);
+
+    free(ports);
 
     return 0;
 }
@@ -110,10 +118,10 @@ int osdep_evtchn_open(xenevtchn_handle *xce, unsigned int flags)
 {
     int fd;
     struct file *file;
-    struct port_list *list;
+    struct ports *ports;
 
-    list = malloc(sizeof(*list));
-    if ( !list )
+    ports = malloc(sizeof(*ports));
+    if ( !ports )
         return -1;
 
     fd = alloc_fd(ftype_evtchn);
@@ -121,12 +129,13 @@ int osdep_evtchn_open(xenevtchn_handle *xce, unsigned int flags)
 
     if ( !file )
     {
-        free(list);
+        free(ports);
         return -1;
     }
 
-    file->dev = list;
-    XEN_LIST_INIT(list);
+    file->dev = ports;
+    XEN_LIST_INIT(&ports->list);
+    init_SEMAPHORE(&ports->sem, 1);
     xce->fd = fd;
     printf("evtchn_open() -> %d\n", fd);
 
@@ -168,16 +177,22 @@ static void evtchn_handler(evtchn_port_t port, struct pt_regs *regs, void *data)
     xenevtchn_handle *xce = data;
     struct file *file = get_file_from_fd(xce->fd);
     struct port_info *port_info;
-    struct port_list *port_list;
+    struct ports *ports;
 
     assert(file);
-    port_list = file->dev;
+    ports = file->dev;
     mask_evtchn(port);
-    XEN_LIST_FOREACH(port_info, port_list, list)
+
+    down(&ports->sem);
+    XEN_LIST_FOREACH(port_info, &ports->list, list)
     {
         if ( port_info->port == port )
+        {
+            up(&ports->sem);
             goto found;
+        }
     }
+    up(&ports->sem);
 
     printk("Unknown port %d for handle %d\n", port, xce->fd);
     return;
@@ -188,6 +203,16 @@ static void evtchn_handler(evtchn_port_t port, struct pt_regs *regs, void *data)
     wake_up(&event_queue);
 }
 
+static void port_remove(xenevtchn_handle *xce, struct port_info *port_info)
+{
+    struct file *file = get_file_from_fd(xce->fd);
+    struct ports *ports = file->dev;
+
+    down(&ports->sem);
+    port_dealloc(port_info);
+    up(&ports->sem);
+}
+
 xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle *xce,
                                                       uint32_t domid)
 {
@@ -195,7 +220,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle *xce,
     int ret;
     evtchn_port_t port;
 
-    assert(get_current() == main_thread);
     port_info = port_alloc(xce);
     if ( port_info == NULL )
         return -1;
@@ -206,7 +230,7 @@ xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle *xce,
 
     if ( ret < 0 )
     {
-        port_dealloc(port_info);
+        port_remove(xce, port_info);
         errno = -ret;
         return -1;
     }
@@ -226,7 +250,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle *xce,
     evtchn_port_t local_port;
     int ret;
 
-    assert(get_current() == main_thread);
     port_info = port_alloc(xce);
     if ( port_info == NULL )
         return -1;
@@ -238,7 +261,7 @@ xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle *xce,
 
     if ( ret < 0 )
     {
-        port_dealloc(port_info);
+        port_remove(xce, port_info);
         errno = -ret;
         return -1;
     }
@@ -255,16 +278,19 @@ int xenevtchn_unbind(xenevtchn_handle *xce, evtchn_port_t port)
     int fd = xce->fd;
     struct file *file = get_file_from_fd(fd);
     struct port_info *port_info;
-    struct port_list *port_list = file->dev;
+    struct ports *ports = file->dev;
 
-    XEN_LIST_FOREACH(port_info, port_list, list)
+    down(&ports->sem);
+    XEN_LIST_FOREACH(port_info, &ports->list, list)
     {
         if ( port_info->port == port )
         {
             port_dealloc(port_info);
+            up(&ports->sem);
             return 0;
         }
     }
+    up(&ports->sem);
 
     printf("Warning: couldn't find port %"PRId32" for xc handle %x\n",
            port, fd);
@@ -279,7 +305,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,
     struct port_info *port_info;
     evtchn_port_t port;
 
-    assert(get_current() == main_thread);
     port_info = port_alloc(xce);
     if ( port_info == NULL )
         return -1;
@@ -290,7 +315,7 @@ xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,
 
     if ( port < 0 )
     {
-        port_dealloc(port_info);
+        port_remove(xce, port_info);
         errno = -port;
         return -1;
     }
@@ -306,15 +331,17 @@ xenevtchn_port_or_error_t xenevtchn_pending(xenevtchn_handle *xce)
 {
     struct file *file = get_file_from_fd(xce->fd);
     struct port_info *port_info;
-    struct port_list *port_list = file->dev;
+    struct ports *ports = file->dev;
     unsigned long flags;
     evtchn_port_t ret = -1;
 
+    down(&ports->sem);
+
     local_irq_save(flags);
 
     file->read = false;
 
-    XEN_LIST_FOREACH(port_info, port_list, list)
+    XEN_LIST_FOREACH(port_info, &ports->list, list)
     {
         if ( port_info->port != -1 && port_info->pending )
         {
@@ -333,6 +360,8 @@ xenevtchn_port_or_error_t xenevtchn_pending(xenevtchn_handle *xce)
 
     local_irq_restore(flags);
 
+    up(&ports->sem);
+
     return ret;
 }
 
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 06:31:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 06:31:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649557.1014186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB7uh-0001FK-0I; Thu, 07 Dec 2023 06:31:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649557.1014186; Thu, 07 Dec 2023 06: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 1rB7ug-0001FD-Tt; Thu, 07 Dec 2023 06:31:10 +0000
Received: by outflank-mailman (input) for mailman id 649557;
 Thu, 07 Dec 2023 06:31: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=ZW7A=HS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rB7uf-0001F7-Ot
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 06:31:09 +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 33d0cac3-94ca-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 07:31:07 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 73EE21FD6E;
 Thu,  7 Dec 2023 06:31:06 +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 1F2A213976;
 Thu,  7 Dec 2023 06:31:06 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id jx6sBapmcWXBCQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 07 Dec 2023 06: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>
X-Inumbo-ID: 33d0cac3-94ca-11ee-98e6-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701930666; 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=CZLz8cDtshWs7alLSh+tN3whfu/1OpZwUM5yhe7Jyns=;
	b=ojuZbMx6RlhdhLhi6bjhsVbiqSktJBehw1tI3CoX3FtphLnFuoS1zVqiGEl3bu1/ImCEp4
	M6NRMcvutUzpfHrE0w4pMhsLqB4iDdTQnRgYZSAp8cblureZP/QKvhJVwuOCbMMnqznp+C
	hg2uddW9WfI5hAL4cOTjYZhM+ROC4t4=
Message-ID: <ba2cbc7e-4309-4970-8d54-58aec51a3ae6@suse.com>
Date: Thu, 7 Dec 2023 07:31:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: MiniOS build regressions
To: Julien Grall <julien@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <jgrall@amazon.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Jason Andryuk <jandryuk@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <0836857a-e9f7-41e9-9094-2833913e6485@citrix.com>
 <274e9e03-31fc-4838-9585-4ea2c9231203@xen.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: <274e9e03-31fc-4838-9585-4ea2c9231203@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------le0VhQX18RruZzICFILOVUhG"
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: 0.77
X-Spamd-Result: default: False [0.77 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 BAYES_HAM(-0.01)[49.58%];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 TO_DN_ALL(0.00)[];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 NEURAL_SPAM_SHORT(2.77)[0.923];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 FREEMAIL_CC(0.00)[suse.com,amazon.com,citrix.com,ens-lyon.org,gmail.com,kernel.org];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------le0VhQX18RruZzICFILOVUhG
Content-Type: multipart/mixed; boundary="------------WExXOUnUuGwAh14XTgaIXNq7";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <jgrall@amazon.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Jason Andryuk <jandryuk@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <ba2cbc7e-4309-4970-8d54-58aec51a3ae6@suse.com>
Subject: Re: MiniOS build regressions
References: <0836857a-e9f7-41e9-9094-2833913e6485@citrix.com>
 <274e9e03-31fc-4838-9585-4ea2c9231203@xen.org>
In-Reply-To: <274e9e03-31fc-4838-9585-4ea2c9231203@xen.org>

--------------WExXOUnUuGwAh14XTgaIXNq7
Content-Type: multipart/mixed; boundary="------------kaDmr36YhDZHTiyOHmNDoy0b"

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

T24gMDYuMTIuMjMgMjI6MzksIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGksDQo+IA0KPiBP
biAwNi8xMi8yMDIzIDIxOjU4LCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPj4gRm9sbG93aW5n
IHRoZSBjaGFvcyB0aGlzIG1vcm5pbmcgYW5kIGEgc2NhdHRlcmluZyBvZiBmaXhlcywgSSBm
aW5hbGx5DQo+PiBnb3QgYmFjayB0byBhIHdvcmtpbmcgR2l0bGFiIHdpdGg6DQo+Pg0KPj4g
aHR0cHM6Ly9naXRsYWIuY29tL3hlbi1wcm9qZWN0L3Blb3BsZS9hbmR5aGhwL3hlbi8tL3Bp
cGVsaW5lcy8xMDk3ODQzNDU0DQo+Pg0KPj4gVGhpcyBjb250YWlucyBhIGZ1bGwgcmV2ZXJ0
IG9mIHRoZSBETUkgcGF0Y2gsIGFuZCByZW1vdmFsIG9mIHRoZSBYaWxpbngNCj4+IGhhcmR3
YXJlIHJ1bm5lciwgYm90aCBoYW5kbGVkIGluIG90aGVyIHRocmVhZHMgYnV0IG5vdGVkIGhl
cmUgZm9yIGFueW9uZQ0KPj4gbG9va2luZyBhdCB0aGUgdGVzdCByZXN1bHRzLg0KPj4NCj4+
IEl0IGFsc28gY29udGFpbnMgMyBNaW5pT1MgZml4ZXMsIG1peGVkIGJldHdlZW4gcmVwb3M6
DQo+Pg0KPj4gInRvb2xzL2xpYnMvZXZ0Y2huOiBkcm9wIGFzc2VydCgpcyBpbiBzdHViZG9t
IiBpbiB4ZW4gWzFdDQo+PiAiTWluaS1PUzogZG9uJ3QgdXNlIG9iamNvcHkgLS1kdW1wLXNl
Y3Rpb24iIGluIG1pbmlvcyBbMl0NCj4+ICJNaW5pLU9TOiBleHBvcnQgbWFpbl90aHJlYWQi
IFszXQ0KPj4NCj4+IGFuZCB0aGUgcmVzdWx0IHdpdGggYWxsIG9mIHRoZXNlIHBhc3Nlcy4N
Cj4+DQo+PiBIb3dldmVyLCBpdCBpcyBteSB1bmRlcnN0YW5kaW5nIHRoYXQgd2UgZG9uJ3Qg
YWN0dWFsbHkgd2FudCB0byB0YWtlDQo+PiBwYXRjaCAzLCBpbnN0ZWFkIHByZWZlcnJpbmcg
cGF0Y2ggMSBhcyBhbiBhbHRlcm5hdGl2ZS4NCj4gDQo+IExvb2tpbmcgYXQgcGF0Y2ggMSwg
SSBmZWVsIHRoYXQgMyBpcyBiZXR0ZXIgdGVtcG9yYXJpbHkgdW50aWwgd2UgaGF2ZSBwcm9w
ZXIgDQo+IGxvY2tpbmcuIFdpdGggMSwgd2UgYXJlIGp1c3Qgc2V0dGluZyBvdXJzZWxmIGZv
ciBhbm90aGVyIGZhaWx1cmUuDQoNClJlcGxhY2VtZW50IHBhdGNoIHdpdGggcHJvcGVyIGxv
Y2tpbmcgc2VudC4NCg0KDQpKdWVyZ2VuDQo=
--------------kaDmr36YhDZHTiyOHmNDoy0b
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-----

--------------kaDmr36YhDZHTiyOHmNDoy0b--

--------------WExXOUnUuGwAh14XTgaIXNq7--

--------------le0VhQX18RruZzICFILOVUhG
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/Ey8FAmVxZqkFAwAAAAAACgkQsN6d1ii/Ey8f
WQf+O7IErxmjGhU5i5pt5i2I/SAgt2SfOkR9s/ceC8QpdzAvTwD4R3pln9oBauSKPSdbUp140l4A
AkreZVaS6US9tyxHKWICKyFVgxdEJDYa2yqeb6r9Czaybs353lJ42IpWP5KXM2qTvS/GHg8guWKs
fgm8ASY2IsB+d4st1k9hcjCkUktye/RfbeVNR+IioLUIg2QIeWWAdD8ZEtQJKX1Z2XyLbj0oElLs
mBcgy+gMoy4psyrYS5bOFFosYHO8E8Uerwkl4a3TO7cLOQ0rX5r5PEdollqj6nC9SJKM6wUpyvv6
xX8uwZ7KPQ7Ff37/mpdAitrqHX8mcT0bdmovVfhr+g==
=PpUB
-----END PGP SIGNATURE-----

--------------le0VhQX18RruZzICFILOVUhG--


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 06:44:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 06:44:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649560.1014197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB86z-0003CQ-4n; Thu, 07 Dec 2023 06:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649560.1014197; Thu, 07 Dec 2023 06:43:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB86z-0003CJ-12; Thu, 07 Dec 2023 06:43:53 +0000
Received: by outflank-mailman (input) for mailman id 649560;
 Thu, 07 Dec 2023 06:43:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZW7A=HS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rB86x-0003CD-Fo
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 06:43:51 +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 faadb0d9-94cb-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 07:43:50 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 7CB8121E1B;
 Thu,  7 Dec 2023 06:43:49 +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 DD1F313976;
 Thu,  7 Dec 2023 06:43:48 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id a1MdNKRpcWVPDQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 07 Dec 2023 06:43: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: faadb0d9-94cb-11ee-98e6-6d05b1d4d9a1
Message-ID: <ed0729b6-8896-41cb-87fc-9111afc68151@suse.com>
Date: Thu, 7 Dec 2023 07:43:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>,
 "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Thomas Gleixner <tglx@linutronix.de>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Bjorn Helgaas <bhelgaas@google.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Huang, Honglei1" <Honglei1.Huang@amd.com>,
 "Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <alpine.DEB.2.22.394.2312061818030.1265976@ubuntu-linux-20-04-desktop>
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: <alpine.DEB.2.22.394.2312061818030.1265976@ubuntu-linux-20-04-desktop>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------C0PSzc0vkP7HoL45f5JNvA73"
X-Rspamd-Queue-Id: 7CB8121E1B
X-Spam-Score: 15.00
X-Spam-Flag: YES
X-Spamd-Result: default: False [15.00 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 ARC_NA(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_TWELVE(0.00)[21];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd1
X-Spam-Level: ***************
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------C0PSzc0vkP7HoL45f5JNvA73
Content-Type: multipart/mixed; boundary="------------F8iAGw8AGSFDCfHq3IpTt9ap";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
 "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Thomas Gleixner <tglx@linutronix.de>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Bjorn Helgaas <bhelgaas@google.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Huang, Honglei1" <Honglei1.Huang@amd.com>,
 "Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
Message-ID: <ed0729b6-8896-41cb-87fc-9111afc68151@suse.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <alpine.DEB.2.22.394.2312061818030.1265976@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2312061818030.1265976@ubuntu-linux-20-04-desktop>

--------------F8iAGw8AGSFDCfHq3IpTt9ap
Content-Type: multipart/mixed; boundary="------------s057rkIjgnPzUMCdRntGVAzT"

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

T24gMDcuMTIuMjMgMDM6MTgsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4gT24gVHVl
LCA1IERlYyAyMDIzLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+PiBXaGVuIFBWSCBkb20wIGVu
YWJsZSBhIGRldmljZSwgaXQgd2lsbCBnZXQgdHJpZ2dlciBhbmQgcG9sYXJpdHkgZnJvbSBB
Q1BJIChzZWUgYWNwaV9wY2lfaXJxX2VuYWJsZSkNCj4+IEkgaGF2ZSBhIHZlcnNpb24gb2Yg
cGF0Y2ggd2hpY2ggdHJpZWQgdGhhdCB3YXksIHNlZSBiZWxvdzoNCj4gDQo+IFRoaXMgYXBw
cm9hY2ggbG9va3MgbXVjaCBiZXR0ZXIuIEkgdGhpbmsgdGhpcyBwYXRjaCBpcyBPS2lzaC4g
SnVlcmdlbiwNCj4gd2hhdCBkbyB5b3UgdGhpbms/DQoNClRoZSBhcHByb2FjaCBzZWVtcyB0
byBiZSBmaW5lLg0KDQoNCkp1ZXJnZW4NCg0KPiANCj4gDQo+PiBkaWZmIC0tZ2l0IGEvYXJj
aC94ODYveGVuL2VubGlnaHRlbl9wdmguYyBiL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW5fcHZo
LmMNCj4+IGluZGV4IGFkYTM4NjhjMDJjMi4uNDNlMWJkYTlmOTQ2IDEwMDY0NA0KPj4gLS0t
IGEvYXJjaC94ODYveGVuL2VubGlnaHRlbl9wdmguYw0KPj4gKysrIGIvYXJjaC94ODYveGVu
L2VubGlnaHRlbl9wdmguYw0KPj4gQEAgLTEsNiArMSw3IEBADQo+PiAgIC8vIFNQRFgtTGlj
ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+PiAgICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+
DQo+PiAgICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4NCj4+ICsjaW5jbHVkZSA8bGludXgv
cGNpLmg+DQo+Pg0KPj4gICAjaW5jbHVkZSA8eGVuL2h2Yy1jb25zb2xlLmg+DQo+Pg0KPj4g
QEAgLTI1LDYgKzI2LDEyNyBAQA0KPj4gICBib29sIF9fcm9fYWZ0ZXJfaW5pdCB4ZW5fcHZo
Ow0KPj4gICBFWFBPUlRfU1lNQk9MX0dQTCh4ZW5fcHZoKTsNCj4+DQo+PiArdHlwZWRlZiBz
dHJ1Y3QgZ3NpX2luZm8gew0KPj4gKyAgICAgICBpbnQgZ3NpOw0KPj4gKyAgICAgICBpbnQg
dHJpZ2dlcjsNCj4+ICsgICAgICAgaW50IHBvbGFyaXR5Ow0KPj4gKyAgICAgICBpbnQgcGly
cTsNCj4+ICt9IGdzaV9pbmZvX3Q7DQo+PiArDQo+PiArc3RydWN0IGFjcGlfcHJ0X2VudHJ5
IHsNCj4+ICsgICAgICAgc3RydWN0IGFjcGlfcGNpX2lkICAgICAgaWQ7DQo+PiArICAgICAg
IHU4ICAgICAgICAgICAgICAgICAgICAgIHBpbjsNCj4+ICsgICAgICAgYWNwaV9oYW5kbGUg
ICAgICAgICAgICAgbGluazsNCj4+ICsgICAgICAgdTMyICAgICAgICAgICAgICAgICAgICAg
aW5kZXg7ICAgICAgICAgIC8qIEdTSSwgb3IgbGluayBfQ1JTIGluZGV4ICovDQo+PiArfTsN
Cj4+ICsNCj4+ICtzdGF0aWMgaW50IHhlbl9wdmhfZ2V0X2dzaV9pbmZvKHN0cnVjdCBwY2lf
ZGV2ICpkZXYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3NpX2luZm9fdCAqZ3NpX2luZm8pDQo+PiArew0K
Pj4gKyAgICAgICBpbnQgZ3NpOw0KPj4gKyAgICAgICB1OCBwaW4gPSAwOw0KPj4gKyAgICAg
ICBzdHJ1Y3QgYWNwaV9wcnRfZW50cnkgKmVudHJ5Ow0KPj4gKyAgICAgICBpbnQgdHJpZ2dl
ciA9IEFDUElfTEVWRUxfU0VOU0lUSVZFOw0KPj4gKyAgICAgICBpbnQgcG9sYXJpdHkgPSBh
Y3BpX2lycV9tb2RlbCA9PSBBQ1BJX0lSUV9NT0RFTF9HSUMgPw0KPj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBQ1BJX0FDVElWRV9ISUdIIDogQUNQSV9BQ1RJ
VkVfTE9XOw0KPj4gKw0KPj4gKyAgICAgICBpZiAoZGV2KQ0KPj4gKyAgICAgICAgICAgICAg
IHBpbiA9IGRldi0+cGluOw0KPj4gKyAgICAgICBpZiAoIXBpbikgew0KPj4gKyAgICAgICAg
ICAgICAgIHhlbl9yYXdfcHJpbnRrKCJObyBpbnRlcnJ1cHQgcGluIGNvbmZpZ3VyZWRcbiIp
Ow0KPj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gKyAgICAgICB9DQo+
PiArDQo+PiArICAgICAgIGVudHJ5ID0gYWNwaV9wY2lfaXJxX2xvb2t1cChkZXYsIHBpbik7
DQo+PiArICAgICAgIGlmIChlbnRyeSkgew0KPj4gKyAgICAgICAgICAgICAgIGlmIChlbnRy
eS0+bGluaykNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGdzaSA9IGFjcGlfcGNpX2xp
bmtfYWxsb2NhdGVfaXJxKGVudHJ5LT5saW5rLA0KPj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnktPmluZGV4LA0KPj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJnRyaWdnZXIsICZwb2xhcml0eSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOw0KPj4gKyAgICAgICAgICAg
ICAgIGVsc2UNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGdzaSA9IGVudHJ5LT5pbmRl
eDsNCj4+ICsgICAgICAgfSBlbHNlDQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W
QUw7DQo+PiArDQo+PiArICAgICAgIGdzaV9pbmZvLT5nc2kgPSBnc2k7DQo+PiArICAgICAg
IGdzaV9pbmZvLT50cmlnZ2VyID0gdHJpZ2dlcjsNCj4+ICsgICAgICAgZ3NpX2luZm8tPnBv
bGFyaXR5ID0gcG9sYXJpdHk7DQo+PiArDQo+PiArICAgICAgIHJldHVybiAwOw0KPj4gK30N
Cj4+ICsNCj4+ICtzdGF0aWMgaW50IHhlbl9wdmhfbWFwX3BpcnEoZ3NpX2luZm9fdCAqZ3Np
X2luZm8pDQo+PiArew0KPj4gKyAgICAgICBzdHJ1Y3QgcGh5c2Rldl9tYXBfcGlycSBtYXBf
aXJxOw0KPj4gKyAgICAgICBpbnQgcmV0Ow0KPj4gKw0KPj4gKyAgICAgICBtYXBfaXJxLmRv
bWlkID0gRE9NSURfU0VMRjsNCj4+ICsgICAgICAgbWFwX2lycS50eXBlID0gTUFQX1BJUlFf
VFlQRV9HU0k7DQo+PiArICAgICAgIG1hcF9pcnEuaW5kZXggPSBnc2lfaW5mby0+Z3NpOw0K
Pj4gKyAgICAgICBtYXBfaXJxLnBpcnEgPSBnc2lfaW5mby0+Z3NpOw0KPj4gKw0KPj4gKyAg
ICAgICByZXQgPSBIWVBFUlZJU09SX3BoeXNkZXZfb3AoUEhZU0RFVk9QX21hcF9waXJxLCAm
bWFwX2lycSk7DQo+PiArICAgICAgIGdzaV9pbmZvLT5waXJxID0gbWFwX2lycS5waXJxOw0K
Pj4gKw0KPj4gKyAgICAgICByZXR1cm4gcmV0Ow0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMg
aW50IHhlbl9wdmhfdW5tYXBfcGlycShnc2lfaW5mb190ICpnc2lfaW5mbykNCj4+ICt7DQo+
PiArICAgICAgIHN0cnVjdCBwaHlzZGV2X3VubWFwX3BpcnEgdW5tYXBfaXJxOw0KPj4gKw0K
Pj4gKyAgICAgICB1bm1hcF9pcnEuZG9taWQgPSBET01JRF9TRUxGOw0KPj4gKyAgICAgICB1
bm1hcF9pcnEucGlycSA9IGdzaV9pbmZvLT5waXJxOw0KPj4gKw0KPj4gKyAgICAgICByZXR1
cm4gSFlQRVJWSVNPUl9waHlzZGV2X29wKFBIWVNERVZPUF91bm1hcF9waXJxLCAmdW5tYXBf
aXJxKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCB4ZW5fcHZoX3NldHVwX2dzaShn
c2lfaW5mb190ICpnc2lfaW5mbykNCj4+ICt7DQo+PiArICAgICAgIHN0cnVjdCBwaHlzZGV2
X3NldHVwX2dzaSBzZXR1cF9nc2k7DQo+PiArDQo+PiArICAgICAgIHNldHVwX2dzaS5nc2kg
PSBnc2lfaW5mby0+Z3NpOw0KPj4gKyAgICAgICBzZXR1cF9nc2kudHJpZ2dlcmluZyA9IChn
c2lfaW5mby0+dHJpZ2dlciA9PSBBQ1BJX0VER0VfU0VOU0lUSVZFID8gMCA6IDEpOw0KPj4g
KyAgICAgICBzZXR1cF9nc2kucG9sYXJpdHkgPSAoZ3NpX2luZm8tPnBvbGFyaXR5ID09IEFD
UElfQUNUSVZFX0hJR0ggPyAwIDogMSk7DQo+PiArDQo+PiArICAgICAgIHJldHVybiBIWVBF
UlZJU09SX3BoeXNkZXZfb3AoUEhZU0RFVk9QX3NldHVwX2dzaSwgJnNldHVwX2dzaSk7DQo+
PiArfQ0KPj4gKw0KPj4gK2ludCB4ZW5fcHZoX3Bhc3N0aHJvdWdoX2dzaShzdHJ1Y3QgcGNp
X2RldiAqZGV2KQ0KPj4gK3sNCj4+ICsgICAgICAgaW50IHJldDsNCj4+ICsgICAgICAgZ3Np
X2luZm9fdCBnc2lfaW5mbzsNCj4+ICsNCj4+ICsgICAgICAgaWYgKCFkZXYpIHsNCj4+ICsg
ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4g
KyAgICAgICByZXQgPSB4ZW5fcHZoX2dldF9nc2lfaW5mbyhkZXYsICZnc2lfaW5mbyk7DQo+
PiArICAgICAgIGlmIChyZXQpIHsNCj4+ICsgICAgICAgICAgICAgICB4ZW5fcmF3X3ByaW50
aygiRmFpbCB0byBnZXQgZ3NpIGluZm8hXG4iKTsNCj4+ICsgICAgICAgICAgICAgICByZXR1
cm4gcmV0Ow0KPj4gKyAgICAgICB9DQo+PiArDQo+PiArICAgICAgIHJldCA9IHhlbl9wdmhf
bWFwX3BpcnEoJmdzaV9pbmZvKTsNCj4+ICsgICAgICAgaWYgKHJldCkgew0KPj4gKyAgICAg
ICAgICAgICAgIHhlbl9yYXdfcHJpbnRrKCJGYWlsIHRvIG1hcCBwaXJxIGZvciBnc2kgKCVk
KSFcbiIsIGdzaV9pbmZvLmdzaSk7DQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsN
Cj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICByZXQgPSB4ZW5fcHZoX3NldHVwX2dz
aSgmZ3NpX2luZm8pOw0KPj4gKyAgICAgICBpZiAocmV0ID09IC1FRVhJU1QpIHsNCj4+ICsg
ICAgICAgICAgICAgICByZXQgPSAwOw0KPj4gKyAgICAgICAgICAgICAgIHhlbl9yYXdfcHJp
bnRrKCJBbHJlYWR5IHNldHVwIHRoZSBHU0kgOiV1XG4iLCBnc2lfaW5mby5nc2kpOw0KPj4g
KyAgICAgICB9IGVsc2UgaWYgKHJldCkgew0KPj4gKyAgICAgICAgICAgICAgIHhlbl9yYXdf
cHJpbnRrKCJGYWlsIHRvIHNldHVwIGdzaSAoJWQpIVxuIiwgZ3NpX2luZm8uZ3NpKTsNCj4+
ICsgICAgICAgICAgICAgICB4ZW5fcHZoX3VubWFwX3BpcnEoJmdzaV9pbmZvKTsNCj4+ICsg
ICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICByZXR1cm4gcmV0Ow0KPj4gK30NCj4+ICtFWFBP
UlRfU1lNQk9MX0dQTCh4ZW5fcHZoX3Bhc3N0aHJvdWdoX2dzaSk7DQo+PiArDQo+PiAgIHZv
aWQgX19pbml0IHhlbl9wdmhfaW5pdChzdHJ1Y3QgYm9vdF9wYXJhbXMgKmJvb3RfcGFyYW1z
KQ0KPj4gICB7DQo+PiAgICAgICAgICB1MzIgbXNyOw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZl
cnMvYWNwaS9wY2lfaXJxLmMgYi9kcml2ZXJzL2FjcGkvcGNpX2lycS5jDQo+PiBpbmRleCBm
ZjMwY2VjYTIyMDMuLjYzMGZlMGEzNGJjNiAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvYWNw
aS9wY2lfaXJxLmMNCj4+ICsrKyBiL2RyaXZlcnMvYWNwaS9wY2lfaXJxLmMNCj4+IEBAIC0y
ODgsNyArMjg4LDcgQEAgc3RhdGljIGludCBhY3BpX3Jlcm91dGVfYm9vdF9pbnRlcnJ1cHQo
c3RydWN0IHBjaV9kZXYgKmRldiwNCj4+ICAgfQ0KPj4gICAjZW5kaWYgLyogQ09ORklHX1g4
Nl9JT19BUElDICovDQo+Pg0KPj4gLXN0YXRpYyBzdHJ1Y3QgYWNwaV9wcnRfZW50cnkgKmFj
cGlfcGNpX2lycV9sb29rdXAoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHBpbikNCj4+ICtz
dHJ1Y3QgYWNwaV9wcnRfZW50cnkgKmFjcGlfcGNpX2lycV9sb29rdXAoc3RydWN0IHBjaV9k
ZXYgKmRldiwgaW50IHBpbikNCj4+ICAgew0KPj4gICAgICAgICAgc3RydWN0IGFjcGlfcHJ0
X2VudHJ5ICplbnRyeSA9IE5VTEw7DQo+PiAgICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqYnJp
ZGdlOw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHVi
LmMgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jDQo+PiBpbmRleCBlMzRi
NjIzZTRiNDEuLjFhYmQ0ZGFkNmY0MCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMveGVuL3hl
bi1wY2liYWNrL3BjaV9zdHViLmMNCj4+ICsrKyBiL2RyaXZlcnMveGVuL3hlbi1wY2liYWNr
L3BjaV9zdHViLmMNCj4+IEBAIC0yMCw2ICsyMCw3IEBADQo+PiAgICNpbmNsdWRlIDxsaW51
eC9hdG9taWMuaD4NCj4+ICAgI2luY2x1ZGUgPHhlbi9ldmVudHMuaD4NCj4+ICAgI2luY2x1
ZGUgPHhlbi9wY2kuaD4NCj4+ICsjaW5jbHVkZSA8eGVuL2FjcGkuaD4NCj4+ICAgI2luY2x1
ZGUgPHhlbi94ZW4uaD4NCj4+ICAgI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJ2aXNvci5oPg0K
Pj4gICAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9waHlzZGV2Lmg+DQo+PiBAQCAtMzk5LDYg
KzQwMCwxMiBAQCBzdGF0aWMgaW50IHBjaXN0dWJfaW5pdF9kZXZpY2Uoc3RydWN0IHBjaV9k
ZXYgKmRldikNCj4+ICAgICAgICAgIGlmIChlcnIpDQo+PiAgICAgICAgICAgICAgICAgIGdv
dG8gY29uZmlnX3JlbGVhc2U7DQo+Pg0KPj4gKyAgICAgICBpZiAoeGVuX2luaXRpYWxfZG9t
YWluKCkgJiYgeGVuX3B2aF9kb21haW4oKSkgew0KPj4gKyAgICAgICAgICAgICAgIGVyciA9
IHhlbl9wdmhfcGFzc3Rocm91Z2hfZ3NpKGRldik7DQo+PiArICAgICAgICAgICAgICAgaWYg
KGVycikNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gY29uZmlnX3JlbGVhc2U7
DQo+PiArICAgICAgIH0NCj4+ICsNCj4+ICAgICAgICAgIGlmIChkZXYtPm1zaXhfY2FwKSB7
DQo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCBwaHlzZGV2X3BjaV9kZXZpY2UgcHBkZXYg
PSB7DQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgLnNlZyA9IHBjaV9kb21haW5fbnIo
ZGV2LT5idXMpLA0KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYWNwaS5oIGIvaW5j
bHVkZS9saW51eC9hY3BpLmgNCj4+IGluZGV4IDY0MWRjNDg0Mzk4Ny4uMzY4ZDU2YmEyYzVl
IDEwMDY0NA0KPj4gLS0tIGEvaW5jbHVkZS9saW51eC9hY3BpLmgNCj4+ICsrKyBiL2luY2x1
ZGUvbGludXgvYWNwaS5oDQo+PiBAQCAtMzc1LDYgKzM3NSw3IEBAIHZvaWQgYWNwaV91bnJl
Z2lzdGVyX2dzaSAodTMyIGdzaSk7DQo+Pg0KPj4gICBzdHJ1Y3QgcGNpX2RldjsNCj4+DQo+
PiArc3RydWN0IGFjcGlfcHJ0X2VudHJ5ICphY3BpX3BjaV9pcnFfbG9va3VwKHN0cnVjdCBw
Y2lfZGV2ICpkZXYsIGludCBwaW4pOw0KPj4gICBpbnQgYWNwaV9wY2lfaXJxX2VuYWJsZSAo
c3RydWN0IHBjaV9kZXYgKmRldik7DQo+PiAgIHZvaWQgYWNwaV9wZW5hbGl6ZV9pc2FfaXJx
KGludCBpcnEsIGludCBhY3RpdmUpOw0KPj4gICBib29sIGFjcGlfaXNhX2lycV9hdmFpbGFi
bGUoaW50IGlycSk7DQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vYWNwaS5oIGIvaW5j
bHVkZS94ZW4vYWNwaS5oDQo+PiBpbmRleCBiMWUxMTg2MzE0NGQuLmNlN2Y1NTU0Zjg4ZSAx
MDA2NDQNCj4+IC0tLSBhL2luY2x1ZGUveGVuL2FjcGkuaA0KPj4gKysrIGIvaW5jbHVkZS94
ZW4vYWNwaS5oDQo+PiBAQCAtNjcsNiArNjcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVu
X2FjcGlfc2xlZXBfcmVnaXN0ZXIodm9pZCkNCj4+ICAgICAgICAgICAgICAgICAgYWNwaV9z
dXNwZW5kX2xvd2xldmVsID0geGVuX2FjcGlfc3VzcGVuZF9sb3dsZXZlbDsNCj4+ICAgICAg
ICAgIH0NCj4+ICAgfQ0KPj4gK2ludCB4ZW5fcHZoX3Bhc3N0aHJvdWdoX2dzaShzdHJ1Y3Qg
cGNpX2RldiAqZGV2KTsNCj4+ICAgI2Vsc2UNCj4+ICAgc3RhdGljIGlubGluZSB2b2lkIHhl
bl9hY3BpX3NsZWVwX3JlZ2lzdGVyKHZvaWQpDQo+PiAgIHsNCj4+DQo+Pj4NCj4+PiBKYW4N
Cj4+DQo+PiAtLSANCj4+IEJlc3QgcmVnYXJkcywNCj4+IEppcWlhbiBDaGVuLg0KPj4NCg0K

--------------s057rkIjgnPzUMCdRntGVAzT
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-----

--------------s057rkIjgnPzUMCdRntGVAzT--

--------------F8iAGw8AGSFDCfHq3IpTt9ap--

--------------C0PSzc0vkP7HoL45f5JNvA73
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/Ey8FAmVxaaQFAwAAAAAACgkQsN6d1ii/Ey9J
Wgf+OZUvDxMPXqpbWcYsWoxtJvQKv8eDe+y8cWoaT3lIFYkCqHl8BSLdb2VJ/8pN9bGenyZf96aU
07ASqIxcsroIEMpUtGeixD+qI38IujKO3raTZPjg2BO5Qt4v5y4Ukqk73GQb+ZIm5K+9vrQBBKLm
gEs+PZ1Ey/OrJs+JYkmPoJDP0Iw042kUxxT0FY5LN3R9LRCQkFqY0Kb7DYonfJwqMx2YxrlUepma
vShbEUPozNWGgilVil/lU9V8UKPynAVDPp80zXKF29yqBz1kd64XL0S1QL0MKULK1+CXbQ3Dkd+y
2bAjkge1U3hb2QaKeO+SrCrupMTtTUILXsmD7dB0kA==
=T8Na
-----END PGP SIGNATURE-----

--------------C0PSzc0vkP7HoL45f5JNvA73--


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 07:06:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 07:06:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649565.1014207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB8T3-00073k-5O; Thu, 07 Dec 2023 07:06:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649565.1014207; Thu, 07 Dec 2023 07:06:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB8T3-00073d-1R; Thu, 07 Dec 2023 07:06:41 +0000
Received: by outflank-mailman (input) for mailman id 649565;
 Thu, 07 Dec 2023 07:06:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rB8T1-00073X-73
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 07:06:39 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2951ba7b-94cf-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 08:06:36 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c29f7b068so3351725e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 23:06:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 s13-20020adfdb0d000000b0033339027c89sm624440wri.108.2023.12.06.23.06.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 23:06:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2951ba7b-94cf-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701932796; x=1702537596; 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=EmVQ4jmwAS5OoFvZ8fWEOnaIcLmDr6cS7p4WfAjGnaA=;
        b=IladTKqTySIf0htuR+Ua/TfcyigVi6c9kTk+4MXIoB0cVMuKQGhn6iBFS7uI0gVIPn
         f7UQx6Zuz3kSaNb+U0KyLL2xX4dmb4zqfGfbQXqBi0TQb+W8k3q23WdGKPiqqkc+VWac
         jXmIF4WLgbhWFEkwrMQ3uESdrcWtRC3TRePJZ9lTyu8N0oeRXzWEbgyMDrxw2jbUUJC+
         cu23rFdAjJgei2cNJeu3aiZY86HA8s5Y9z1x9Zq51Yr/GDKLA5ebgQdlqWdO4zBn/Si3
         XvelV4uyccCQQGkBh7TpgbJ15Ms4V9F4gP4VxBmdXG62WI703XbwUTi9FOYpd6UaSnJa
         6f9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701932796; x=1702537596;
        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=EmVQ4jmwAS5OoFvZ8fWEOnaIcLmDr6cS7p4WfAjGnaA=;
        b=dBJVmB9RR2u0nD+PJDqPrhG4NlSRhDNlatrA4O34P+AYVUOJa2onKLls8mqenOan2F
         2hRUnv0yi8SwYmRMs1+eCDCBfsGtWdqFWS9ck5JHQbDA98aGlpQiFVozzqHy1qzkxU2j
         jtwpz5PiaH/v3GN5TeDLrzTGV4Lmbtvv3sLUOxGZ+/29TE9jRilGI++dyq808WfmffQM
         Ve7fg8kUrI++DlhxVkBMVqowshS2QBr58j00y0KO4vRVprTaMalSNvoQ8i/kAxEyiaOe
         b6G33W9xhiC1SBtyyebW+GGqmSl2leydAOuEApcLqmevVLlha2aCsiDUX3I2rgs0xZBZ
         lBJQ==
X-Gm-Message-State: AOJu0YwcNEkJUeHu9IWIyljzw5a+uBxSUnfZ01KqR+qHgi3x5QMqV0iC
	bKECwBjD6HAqcZvD0AGHLT0vplvUz0Ga7TbCIp8a
X-Google-Smtp-Source: AGHT+IH6oZqL5TTb5+D5BiBXa6xFeezSyel1xFPkDawBVxIhrCbi7KnaR7yLY2zveoLG3MRf2opHKA==
X-Received: by 2002:a05:600c:1d26:b0:406:c6de:2bea with SMTP id l38-20020a05600c1d2600b00406c6de2beamr1280923wms.17.1701932796274;
        Wed, 06 Dec 2023 23:06:36 -0800 (PST)
Message-ID: <4a7ecdb1-770e-4886-a397-336a510b7e3c@suse.com>
Date: Thu, 7 Dec 2023 08:06:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: preparations for 4.17.3
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony Perard <anthony.perard@citrix.com>, Julien Grall <julien@xen.org>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

All,

the release is about due. Please point out backports you find missing
from the respective staging branch, but which you consider relevant.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 07:28:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 07:28:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649568.1014216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB8nx-0002Al-Qn; Thu, 07 Dec 2023 07:28:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649568.1014216; Thu, 07 Dec 2023 07:28:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB8nx-0002Ae-OJ; Thu, 07 Dec 2023 07:28:17 +0000
Received: by outflank-mailman (input) for mailman id 649568;
 Thu, 07 Dec 2023 07:28: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rB8nw-0002AW-VL
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 07:28:16 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2edb479d-94d2-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 08:28:14 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c236624edso7039755e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 23:28:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 i8-20020a05600c354800b004083729fc14sm982931wmq.20.2023.12.06.23.28.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 23:28:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2edb479d-94d2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701934094; x=1702538894; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=dDou7IQ0nw8mNqs69CK2ggGJ2NClNUfmIySopQWoXA8=;
        b=g6n+lcx81CMj02e8ieXaJYa9RYqjh74aLqndTPvDk9onyCtgIyM0avUNEzLeBO40ls
         WIKOPmeBI9Souu+T5UJERS8hpR06aC1PHLCAxjy8OKEucINaaSVLEg40dmioxCD8Tu4n
         N5Wg30YurntvNpJ1+F3TcN+cH2AVXst5GQeFxE/oUQoeQP7w0Jh7s8I3aup1q/1d6TSN
         FFmYLjL6FjX6ekaSMGKbBdps1hQ0R+3RJ36bPiq29iLO6N+NhKBkPKRuvzZ0AervurbB
         z3G1EFx5bTuCNIRb3CRRmHjqEf/5qSsgo5S4ubqrlOt8+nu/ltjbvpsaT6jeXW2Ar3wr
         8wgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701934094; x=1702538894;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=dDou7IQ0nw8mNqs69CK2ggGJ2NClNUfmIySopQWoXA8=;
        b=nhKoHt9yxaeHsZWpR4s9A0xCalFol5I9eUWjl9ypOv8Q0t/9k9y46ubk48VKg/HyQ8
         fTbpIxZ1EQ8TlrI3JLOxq/+HUm3GT6KSx0x9W6tx6hzhZGTXzpApWWv6HyQ9WBT2hf6v
         BldAty33APC3DL2UgpZi1IXiMp4V2OAYJAOP1Rk3LzyFjL4dQ6CLzXQm+RbiSreOuESq
         rns0CZ/0kIsS2k9cRRwl9I2rcGqnphnaxTYWR5MdGlCrmWuS5lPNcIS0TBs5ZzBGF+2/
         AAa9RodGwNkrlblFyoAREzc5bwMumdCOwnNMPBixRFzUUc5jTSsJDJCNJpFpQDWSM6xy
         /g+A==
X-Gm-Message-State: AOJu0YxVostcxfEWAv5AyKLlbt1ysLRzCNdb+6pC+gy4CuWD4hgBDJC2
	+Z8etGPHr/TZvVERKj1mesaG
X-Google-Smtp-Source: AGHT+IEbPZ5X/oLj6CoUyYTZROh9MOziv6TfTeutiPb8y9unqs0LDUbM2ZSBDGkHT6gM+bnsmfca6w==
X-Received: by 2002:a05:600c:22c8:b0:40c:23e7:6e2a with SMTP id 8-20020a05600c22c800b0040c23e76e2amr868501wmg.76.1701934094042;
        Wed, 06 Dec 2023 23:28:14 -0800 (PST)
Message-ID: <b71c4e81-7026-40b2-ad76-ea4de5bbf6b3@suse.com>
Date: Thu, 7 Dec 2023 08:28:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Clang-format configuration discussion - pt 2
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <Michal.Orzel@amd.com>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 George Dunlap <george.dunlap@cloud.com>
References: <1B83FF45-E93B-47D7-AD21-615CFCFD0816@arm.com>
 <2E778E49-C2F5-421F-9598-CED15E7D4284@arm.com>
 <827e24a2-0ecd-48c4-becb-12129c4208dc@suse.com>
 <CA+zSX=b77av9rHwWHsRD8MAnprfXQiotUPPPKFDOU9cTOA2OzA@mail.gmail.com>
 <4ce995a3-78a1-49e5-881d-d6af10514673@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4ce995a3-78a1-49e5-881d-d6af10514673@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.12.2023 18:55, Julien Grall wrote:
> On 06/12/2023 02:32, George Dunlap wrote:
>> On Tue, Dec 5, 2023 at 2:07â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>> On 05.12.2023 14:46, Luca Fancellu wrote:
>>>> In my opinion, I donâ€™t know of any tool that can address all the flexibility the Xen codestyle allows, yet the use of automatic
>>>> checkers would improve the review time, allow more new contributors to approach the community without being put down by
>>>> the amount of code-style comments,
>>>
>>> Since this argument is being repeated: I find it odd. No-one needs to even
>>> fear any amount of style comments if they simply follow the written down
>>> policy plus a tiny bit of common sense. According to my observation, (some)
>>> newcomers don't even care to look at what is being said about our style.
>>> It's not like you and I haven't been through this. When I started working
>>> with GNU toolchain, I had to adopt to their style. When I later started to
>>> work with Linux, I had to also adopt there. And then for Xen. And all of
>>> that already past closed source projects I had been working on before.
> 
> I am not sure I get the point. With this argument, we are not only 
> putting load on the contributors but also on the reviewers because we 
> have to check the style manually while reviewing the code.
> 
> Do you really think this is a good use of our time? Personally I don't 
> think so and definitely there are more unwritten rule than you let 
> transpire above.
> 
> A good example is the "_" vs "-". If even a maintainer can't guess it, 
> then how can a contributor know it?

I didn't even hint at anything unwritten, did I? I certainly agree that
things would better be written down.

>> Most modern languages, including golang (and I think rust) have
>> built-in style correctors (`go fmt` is go's official one).  If you
>> haven't worked with an automatic style checker / fixer, you don't know
>> how much time, hassle, and emotional energy you're saving.  I don't
>> think I know anyone who, after using one, wants to go back to not
>> using one any more.
>>
>> In general, I'm in favor of making changes to our style such that we
>> can make clang's style checker official.  The only reason I would vote
>> against it is if one of the style requirements was really intolerable;
>> but I find that pretty unlikely.
> 
> +1
> 
>>
>> And as I've said before, the main reservation I have going forward
>> with this discussion is that I can't see clearly what it is that I'm
>> agreeing to.
> 
> +1
> 
> I found the way we dealt with MISRA rules quite helpful. We had a weekly 
> meeting to discuss some of the rules and then the outcome was posted on 
> the ML. Maybe we should do the same here? Any other suggestion how to move?

I have mixed feelings with meetings like the Misra ones. That's probably
unavoidable because of it being a goal to move fast. I'm not sure the
same applies here. But first of all - see also what George said - there
needs to be a coherent proposal of what aspects of style to change in
which way. The more heavy the changes, the harder it may be for long
time contributors to adapt; whether that's a worthwhile price to pay is
yet to be determined.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 07:30:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 07:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649570.1014227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB8pw-0003YY-6L; Thu, 07 Dec 2023 07:30:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649570.1014227; Thu, 07 Dec 2023 07: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 1rB8pw-0003YR-3c; Thu, 07 Dec 2023 07:30:20 +0000
Received: by outflank-mailman (input) for mailman id 649570;
 Thu, 07 Dec 2023 07:30: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=ZW7A=HS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rB8pu-0003YL-O8
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 07:30:18 +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 773be17c-94d2-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 08:30:16 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 586FC1F889;
 Thu,  7 Dec 2023 07:30:15 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 0BFC113907;
 Thu,  7 Dec 2023 07:30:15 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id EcVKAYd0cWV9IQAAn2gu4w
 (envelope-from <jgross@suse.com>); Thu, 07 Dec 2023 07:30: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: 773be17c-94d2-11ee-9b0f-b553b5be7939
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PATCH] MAINTAINERS: add me as Mini-OS maintainer
Date: Thu,  7 Dec 2023 08:30:12 +0100
Message-Id: <20231207073012.25730-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 BAYES_SPAM(0.00)[14.67%];
	 MX_GOOD(-0.01)[];
	 NEURAL_HAM_SHORT(-0.20)[-0.998];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(2.20)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 15.00
X-Rspamd-Queue-Id: 586FC1F889
X-Spam-Flag: YES
X-Spam: Yes

I've been the main contributor to Mini-OS since several years now.
Add me as a maintainer.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 0fcf5a6f36..496978a56c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -439,8 +439,8 @@ F:	xen/test/livepatch/*
 
 MINI-OS
 M:	Samuel Thibault <samuel.thibault@ens-lyon.org>
+M:	Juergen Gross <jgross@suse.com>
 R:	Wei Liu <wl@xen.org>
-R:	Juergen Gross <jgross@suse.com>
 S:	Supported
 L:	minios-devel@lists.xenproject.org
 T:	git https://xenbits.xenproject.org/git-http/mini-os.git
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 07:31:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 07:31:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649573.1014236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB8qz-00045w-G1; Thu, 07 Dec 2023 07:31:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649573.1014236; Thu, 07 Dec 2023 07:31:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB8qz-00045p-DH; Thu, 07 Dec 2023 07:31:25 +0000
Received: by outflank-mailman (input) for mailman id 649573;
 Thu, 07 Dec 2023 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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rB8qy-00045j-JJ
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 07:31:24 +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 9f43ed35-94d2-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 08:31:23 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-33330a5617fso615055f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 23:31:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c1-20020adfa301000000b0033335644478sm670642wrb.114.2023.12.06.23.31.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 23:31:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f43ed35-94d2-11ee-98e6-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701934283; x=1702539083; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=T1VyGmj5P7JfZF90w3019okHZPKzstvSTe3uogmAtrU=;
        b=BAoWkDXCVWltlo7eoE6b+LdoOV6lr0/7c/pL9lW6S+Kv/j/YZbWTw6d7/l6WqZFmKc
         eb1epMWgF2gaUp+pZQLhkloNubNmo2GYIX4iYtA5WAl7U+vFbNm5NrRVJRnnP5SJNTDP
         DL5NHm+4giaPzq4Pemaqymf0VjbQPunyXavSa5RBPGhbIMxGgNDcnNO9UCSS5PlL6Wv/
         QUVgDOsO1MF+Z18ajUbB59lRrL+eMiSTMZyz/XIXO8CpFoiq1sjUM3HhTxEw10erKGZp
         TgcOqsDiuKNpNc1eEVa3TZjYXtc8HloUm60Zf9/fqfV6wF5uCf3rSM0Qwub1C+XEibAi
         Jdbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701934283; x=1702539083;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=T1VyGmj5P7JfZF90w3019okHZPKzstvSTe3uogmAtrU=;
        b=dr004lfeXWO0fJgCKoUhw/30Lhu2ym7g/+bNu2f04z5B25D9oC6GNLHME1ufbH0FJL
         +Z+zpTFU+2128zq2lKq09iSNbyOcIVD7GQGQZJe7B7bEz99HTCeqokolgfItU6NHWbRO
         YxURvZBSqCP3tfb/b0Hnai2G/8WJwr1ROYdY2pycus88I136tvc7vhoxj2xzdFP7ehNh
         Lg6F4FjeV6xcVFAXeyUPGmRdK8nVmFHDXK+/LsjvyDEnQjLfMXv0RzWfDtXsy2C9UMZi
         JgyJ/Rb5EwePCXAQ37gijkGwrmPQ1msnwG4+KO5mRuk6V9cspIX9wYuH0ypROGJDY6Ld
         7TXA==
X-Gm-Message-State: AOJu0Yx8gSkCAMoeKD/hNSTgEP4tr3KgfNHfWPGGFAEHjxM6mISMioLy
	RN3mNYe2X9cEOPyrpOsz3dW9
X-Google-Smtp-Source: AGHT+IEUrioUlvehLfUAOcSJMwbOzDBovpcEKTajcfRZCkaHgJMT5aZXaTXVT7MeuVnCBciAJMCfeg==
X-Received: by 2002:a5d:538e:0:b0:333:2fd2:5d22 with SMTP id d14-20020a5d538e000000b003332fd25d22mr1476922wrv.84.1701934282703;
        Wed, 06 Dec 2023 23:31:22 -0800 (PST)
Message-ID: <4fc65483-4cc1-47ad-bfe9-71d50c0ccf06@suse.com>
Date: Thu, 7 Dec 2023 08:31:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/DMI: adjustments to comply with Misra C:2012 Rule
 9.3
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <1ca903e7-ed2c-435e-999d-2a8519957498@suse.com>
 <75a57d20-e2e2-47d3-8aa8-79b6ffb18f07@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <75a57d20-e2e2-47d3-8aa8-79b6ffb18f07@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.12.2023 21:45, Andrew Cooper wrote:
> On 05/12/2023 1:35 pm, Jan Beulich wrote:
>> The rule demands that all array elements be initialized (or dedicated
>> initializers be used). Introduce a small set of macros to allow doing so
>> without unduly affecting use sites (in particular in terms of how many
>> elements .matches[] actually has; right now there's no use of
>> DMI_MATCH4(), so we could even consider reducing the array size to 3).
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Of course a question is how many of these DMI table entries are in fact
>> no longer applicable (e.g. because of naming 32-bit-only systems).
>> Subsequently the table in dmi_scan.c itself may want cleaning up as
>> well, yet I guess the question of stale entries is even more relevant
>> there.
>> ---
>> v2: Make things also build with older gcc.
> 
> 
> This is broken with Ubuntu
> https://gitlab.com/xen-project/xen/-/jobs/5691138448Â  and you don't
> appear to have been online today.

And rightly so. I accidentally committed the v1 patch instead of the v2
one.

> Unless you have a clever idea for a very prompt fix, it's going to need
> reverting to cause GitlabCI to be usable for everyone else.

I'll revert and put in the right change. I was online till about 15
minutes before you messaging me on Matrix.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 07:36:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 07:36:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649578.1014248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB8wE-0005T8-53; Thu, 07 Dec 2023 07:36:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649578.1014248; Thu, 07 Dec 2023 07:36:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB8wE-0005T1-05; Thu, 07 Dec 2023 07:36:50 +0000
Received: by outflank-mailman (input) for mailman id 649578;
 Thu, 07 Dec 2023 07:36: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 1rB8wC-0005Sr-Ac; Thu, 07 Dec 2023 07:36: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 1rB8wB-0004wm-SI; Thu, 07 Dec 2023 07:36: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 1rB8wB-00084k-91; Thu, 07 Dec 2023 07:36:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rB8wB-0007bL-8b; Thu, 07 Dec 2023 07:36: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=9cvLlRn7S30b84RY0UoYY/wC7u7M/LpKt+vGP1TtNVk=; b=TUJEH6Ley2rqyCKgDAKiKKWulz
	D3xhSD7UCHcMBzHso5x2g26rWlRtoXsWy8indlHW57s9as6U+QJRMokKFGcRoyXA17hxG4yFgKtOG
	dNlT28LtK30kaWIMiBFaRWUbOAo+7ud8tNEqh1pkbCBrYaUjZzgVO0+8Yf4bb24C5k+s=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184013-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184013: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:build-arm64-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-examine:reboot:fail:heisenbug
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:guest-localmigrate:fail:heisenbug
    linux-linus:test-amd64-amd64-freebsd12-amd64:guest-start:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-arndale:host-ping-check-xen:fail:heisenbug
    linux-linus:test-arm64-arm64-examine:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-arndale:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-arndale: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-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: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-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm: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-libvirt: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-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=bee0e7762ad2c6025b9f5245c040fcc36ef2bde8
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 07:36:47 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973
 build-arm64-pvops             6 kernel-build             fail REGR. vs. 183973

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-examine      8 reboot           fail in 184001 pass in 184013
 test-amd64-amd64-dom0pvh-xl-amd 18 guest-localmigrate      fail pass in 184001
 test-amd64-amd64-freebsd12-amd64 13 guest-start            fail pass in 184001
 test-armhf-armhf-xl-arndale  10 host-ping-check-xen        fail pass in 184001

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-examine      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-arm64-arm64-xl-thunderx 15 migrate-support-check fail in 184001 never pass
 test-arm64-arm64-xl         15 migrate-support-check fail in 184001 never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-support-check fail in 184001 never pass
 test-arm64-arm64-xl     16 saverestore-support-check fail in 184001 never pass
 test-arm64-arm64-libvirt-xsm 15 migrate-support-check fail in 184001 never pass
 test-arm64-arm64-libvirt-xsm 16 saverestore-support-check fail in 184001 never pass
 test-arm64-arm64-xl-credit2 15 migrate-support-check fail in 184001 never pass
 test-arm64-arm64-xl-credit2 16 saverestore-support-check fail in 184001 never pass
 test-arm64-arm64-xl-credit1 15 migrate-support-check fail in 184001 never pass
 test-arm64-arm64-xl-credit1 16 saverestore-support-check fail in 184001 never pass
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 184001 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 184001 never pass
 test-arm64-arm64-xl-xsm     15 migrate-support-check fail in 184001 never pass
 test-arm64-arm64-xl-xsm 16 saverestore-support-check fail in 184001 never pass
 test-arm64-arm64-libvirt-raw 14 migrate-support-check fail in 184001 never pass
 test-arm64-arm64-libvirt-raw 15 saverestore-support-check fail in 184001 never pass
 test-arm64-arm64-xl-vhd     14 migrate-support-check fail in 184001 never pass
 test-arm64-arm64-xl-vhd 15 saverestore-support-check fail in 184001 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-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-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-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                bee0e7762ad2c6025b9f5245c040fcc36ef2bde8
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    4 days
Failing since        183977  2023-12-03 00:12:06 Z    4 days    9 attempts
Testing same since   183993  2023-12-05 09:00:54 Z    1 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  David Howells <dhowells@redhat.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Eugenio PÃ©rez <eperezma@redhat.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Jason Wang <jasowang@redhat.com>
  Jens Axboe <axboe@kernel.dk>
  Joao Martins <joao.m.martins@oracle.com>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Robin Murphy <robin.murphy@arm.com>
  Sean Christopherson <seanjc@google.com>
  Shannon Nelson <shannon.nelson@amd.com>
  Steve French <stfrench@microsoft.com>
  Steve Sistare <steven.sistare@oracle.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@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                                            fail    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          blocked 
 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                                 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                              fail    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-amd64-freebsd11-amd64                             pass    
 test-amd64-amd64-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                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  blocked 
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  blocked 
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     blocked 
 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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-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                                 blocked 
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      blocked 
 test-armhf-armhf-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 987 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 07:48:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 07:48:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649584.1014257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB972-0007jv-9z; Thu, 07 Dec 2023 07:48:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649584.1014257; Thu, 07 Dec 2023 07: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 1rB972-0007jo-5u; Thu, 07 Dec 2023 07:48:00 +0000
Received: by outflank-mailman (input) for mailman id 649584;
 Thu, 07 Dec 2023 07: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rB970-0007ji-OD
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 07:47:58 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id efdcaabb-94d4-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 08:47:57 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-332c0c32d19so730561f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Dec 2023 23:47:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 b3-20020a5d4d83000000b0033342978c93sm713599wru.30.2023.12.06.23.47.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Dec 2023 23:47:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: efdcaabb-94d4-11ee-98e6-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701935277; x=1702540077; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=QBB8FvOq2MJQaMZFEOO70JQhLaQiLbhU8hcD7e3RF28=;
        b=X9Q5yPGTaujmKVdneXgDbj0i9jG0Kb5tPv9S9VwXyECQeCodgFEzQ0zP3HHHFP3Cl4
         j8Gu+I+p4n8XKnVibMxZOM62Okz5JKuLwWfLW26mJ0g/DNtJruUSFvhervOBpV7w7ULc
         xQ1SYQDSzY93TkFSODKT0JoxOSCIO+47zCbvrNE+txSnHi98uBeom3l/tZoRHePntI3x
         /01Pz6V4fgu3tZiq1PsDb/hqUGxL3bFiHl5i6BTGMHA4VZlv2qS7D0IO4rea2Sm2Cunb
         Ic8gfXZVk72cfaD4jJHvkq/H7beRz0aS4WruOvODUo5qjTE7oByqSD2pnF6Qq5JDmZ4g
         bKFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701935277; x=1702540077;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=QBB8FvOq2MJQaMZFEOO70JQhLaQiLbhU8hcD7e3RF28=;
        b=xMQV61F15Q1ijXV/LOVkp1xnGo5/5V04TLQugjS7iMIMG8iLFEDFLwCb3K/ixh3nUn
         qiGgl9GED7CWtyydS/Y+INAFlgg4FtF2kGm+YZzT1+fa9DU2HihLRrE0/kUpiOwsh1Ja
         DhKXjTx4SEPohVO8G+ucjbbmGzg0tHjeZpLJVs4UlXOv6DLjQ0EYWSpqRJGblVi8ReCs
         2rjagfYiaXZEXI9qzX+7k+ZQB/ADOdCCedE1RlWL7gKajM4bU0HCA0p1qIb3jvwcTfyH
         rZMozRF7HVmeTF+YnHB7GDV/46TvKp0E98imXUQAwSchldSSc+iIX9gEX6dHY/hxAbAE
         E/ow==
X-Gm-Message-State: AOJu0YyW2R7vyd95TVLP4yhvMCsd2kmhHeNNwftMWE0sp8Db8r0+5CDS
	SVWrhS7tlNkGFk2TIuOjaF2s
X-Google-Smtp-Source: AGHT+IFvKNC2I6CchoZYZqi6CN5ztwchgL0bwLi86eUcnwz4WUnnphK67l5G7Kf3rHXG5vFPcWRh9Q==
X-Received: by 2002:a05:6000:243:b0:333:4ac2:fe34 with SMTP id m3-20020a056000024300b003334ac2fe34mr995147wrz.112.1701935276936;
        Wed, 06 Dec 2023 23:47:56 -0800 (PST)
Message-ID: <12c7da9c-245e-48b7-98f9-2bf0f29b7621@suse.com>
Date: Thu, 7 Dec 2023 08:47:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/misra/rules.rst: add more rules
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: andrew.cooper3@citrix.com, george.dunlap@citrix.com, julien@xen.org,
 bertrannd.marquis@arm.com, roger.pau@citrix.com,
 roberto.bagnara@bugseng.com, federico.serafini@bugseng.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2312051859440.110490@ubuntu-linux-20-04-desktop>
 <ccdbe84d-24ca-41f0-bc1f-fb9499c73880@suse.com>
 <alpine.DEB.2.22.394.2312061819090.1265976@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312061819090.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 03:42, Stefano Stabellini wrote:
> On Wed, 6 Dec 2023, Jan Beulich wrote:
>> On 06.12.2023 04:02, Stefano Stabellini wrote:
>>> --- a/docs/misra/rules.rst
>>> +++ b/docs/misra/rules.rst
>>> @@ -462,11 +462,23 @@ maintainers if you want to suggest a change.
>>>  
>>>         while(0) and while(1) and alike are allowed.
>>>  
>>> +   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
>>> +     - Required
>>> +     - An unconditional break statement shall terminate every
>>> +       switch-clause
>>> +     - In addition to break, also other flow control statements such as
>>> +       continue, return, goto are allowed.
>>> +
>>>     * - `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c>`_
>>>       - Required
>>>       - A switch-expression shall not have essentially Boolean type
>>>       -
>>>  
>>> +   * - `Rule 17.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
>>> +     - Required
>>> +     - The features of <stdarg.h> shall not be used
>>> +     -
>>
>> Did we really accept this without any constraint (warranting mentioning
>> here)?
> 
> We agreed that in certain situations stdarg.h is OK to use and in those
> cases we would add a deviation. Would you like me to add something to
> that effect here? I could do that but it would sound a bit vague.  Also
> if we want to specify a project-wide deviation it would be better
> documented in docs/misra/deviations.rst. I would leave Rule 17.1 without
> a note.

I can see your point, and I don't have a good suggestion on possible text.
Still I wouldn't feel well ack-ing this in its present shape.

>>> @@ -478,12 +490,24 @@ maintainers if you want to suggest a change.
>>>         have an explicit return statement with an expression
>>>       -
>>>  
>>> +   * - `Rule 17.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_05.c>`_
>>> +     - Advisory
>>> +     - The function argument corresponding to a parameter declared to
>>> +       have an array type shall have an appropriate number of elements
>>> +     -
>>> +
>>>     * - `Rule 17.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_06.c>`_
>>>       - Mandatory
>>>       - The declaration of an array parameter shall not contain the
>>>         static keyword between the [ ]
>>>       -
>>>  
>>> +   * - `Rule 17.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_07.c>`_
>>> +     - Required
>>> +     - The value returned by a function having non-void return type
>>> +       shall be used
>>> +     -
>>
>> Same question here.
> 
> Here I was also thinking it might be good to add a comment. Maybe we could
> add:
> 
>      - Please beware that this rule has many violations in the Xen
>        codebase today, and its adoption is aspirational. However, when
>        submitting new patches please try to decrease the number of
>        violations when possible.

Yea, I think this would be good to add.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:10:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:10:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649595.1014267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB9SJ-0003qv-DB; Thu, 07 Dec 2023 08:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649595.1014267; Thu, 07 Dec 2023 08: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 1rB9SJ-0003qo-9Y; Thu, 07 Dec 2023 08:09:59 +0000
Received: by outflank-mailman (input) for mailman id 649595;
 Thu, 07 Dec 2023 08: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=ZW7A=HS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rB9SI-0003qi-2F
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:09:58 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 021b00ca-94d8-11ee-98e6-6d05b1d4d9a1;
 Thu, 07 Dec 2023 09:09:56 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 7D3AC1FD77;
 Thu,  7 Dec 2023 08:09:55 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 5EDA3139E3;
 Thu,  7 Dec 2023 08:09:55 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id ggfpFdN9cWUtKwAAn2gu4w
 (envelope-from <jgross@suse.com>); Thu, 07 Dec 2023 08:09: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: 021b00ca-94d8-11ee-98e6-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701936595; 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=txb5DHYSMjJ3SW9/d7VpI5jR7+y/iiVln9WdKX8pbNo=;
	b=flrQwq/uTCCgaoJ4VgjiCUyGdfmrYq14hbpwaCLpBadZxPGKfXdsVRyXbPkOsE/GUEKaNH
	xXfpffzl8yMHUO00l5J0Ktpip11igdlIbSd1jcFqHdC70Q+zaak97en0Z/BD9CmT3m+t23
	i8kJgmdrWYoNO4JQRnBr9p6nE+SQy70=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [PATCH] OSStest: use CONFIG_X86_GENERIC for 32-bit x86 kernel
Date: Thu,  7 Dec 2023 09:09:53 +0100
Message-Id: <20231207080953.27976-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: ******
X-Spam-Score: 6.70
X-Spamd-Result: default: False [6.70 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[3];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 NEURAL_SPAM_SHORT(2.80)[0.932];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 TO_DN_SOME(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

Today the cpu type for a 32-bit x86 kernel is not specified in the
used kernel config, resulting in the M686 to be used.

Instead of using the M686 which isn't even a 64-bit cpu (thus not
capable to run a Xen guest), use the X86_GENERIC variant which is
more appropriate.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 ts-kernel-build | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ts-kernel-build b/ts-kernel-build
index 719b33aa..d9e033c4 100755
--- a/ts-kernel-build
+++ b/ts-kernel-build
@@ -608,7 +608,10 @@ setopt CONFIG_POWER_RESET_XGENE y
 setopt CONFIG_RTC_DRV_XGENE y
 
 case ${XEN_TARGET_ARCH} in
-    x86_32) setopt CONFIG_64BIT n ;;
+    x86_32)
+	setopt CONFIG_64BIT n
+	setopt CONFIG_X86_GENERIC y
+	;;
     x86_64)
 	setopt CONFIG_64BIT y
 	setopt CONFIG_IA32_EMULATION y
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:26:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:26:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649599.1014277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB9ia-0007R7-RB; Thu, 07 Dec 2023 08:26:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649599.1014277; Thu, 07 Dec 2023 08:26:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB9ia-0007R0-Mm; Thu, 07 Dec 2023 08:26:48 +0000
Received: by outflank-mailman (input) for mailman id 649599;
 Thu, 07 Dec 2023 08:26:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZW7A=HS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rB9iZ-0007Qu-Ar
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:26:47 +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 5b27bc87-94da-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 09:26:45 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 5F2EF1F897;
 Thu,  7 Dec 2023 08:26: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 3409B13B6A;
 Thu,  7 Dec 2023 08:26:44 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id ANmNCsSBcWW/MAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 07 Dec 2023 08:26: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: 5b27bc87-94da-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1701937604; 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=OHhEiLHQHFK/iQWNSGJgCSxqLCMwDyW3EC6bO+aqvxE=;
	b=ePOcVPyNQkOQMG1vyrUDhL19SwKtcwLmII8giRmv6DBy9E3bJLJ9eH4GCFOpHzEao1JOOJ
	maSoC/vpnTq8b35uklXeRsHCIPWDVPCTmX/eRNDY+jIGvDrwsmEaDX83FMkcP5CoRrLyt+
	puz1r0sLjxSdU7CDRavpxw3DJYYUkG8=
Message-ID: <1a6f8027-0e49-4975-8ab1-998a9b4cebee@suse.com>
Date: Thu, 7 Dec 2023 09:26:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
Content-Language: en-US
To: xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20231121114048.31294-1-jgross@suse.com>
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: <20231121114048.31294-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------klxO36Q56XIyKSThu47QagFD"
X-Spam-Flag: NO
X-Spam-Level: 
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Score: -0.99
X-Spamd-Result: default: False [-0.99 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 BAYES_HAM(-0.00)[14.70%];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------klxO36Q56XIyKSThu47QagFD
Content-Type: multipart/mixed; boundary="------------KyolmpPuOjrycV7lNKW0Eibv";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <1a6f8027-0e49-4975-8ab1-998a9b4cebee@suse.com>
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
References: <20231121114048.31294-1-jgross@suse.com>
In-Reply-To: <20231121114048.31294-1-jgross@suse.com>

--------------KyolmpPuOjrycV7lNKW0Eibv
Content-Type: multipart/mixed; boundary="------------71ANf0Td4kngd1GT4SnlCZT9"

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

T24gMjEuMTEuMjMgMTI6NDAsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+IFJlbW92ZSBzb21l
IGNvbW1hbmQgbGluZSBvcHRpb25zIHdoaWNoIGhhdmUgbm8gcmVhbCB1c2UgY2FzZS4NCj4g
DQo+IENoYW5nZXMgaW4gVjI6DQo+IC0gbW92ZWQgcmVtb3ZhbCBvZiAiLU4iIGludG8gbGFz
dCBwYXRjaCBvZiB0aGUgc2VyaWVzLCBhcyB0aGlzIGlzIHRoZQ0KPiAgICBvbmx5IG9wdGlv
biB3aGljaCBzZWVtcyB0byBoYXZlIGEgdXNlIGNhc2UgKE9UT0ggdXNpbmcgaXQgaGFzIHNv
bWUNCj4gICAgZG93bnNpZGVzIGFzIHdlbGwpLg0KPiANCj4gSnVlcmdlbiBHcm9zcyAoNSk6
DQo+ICAgIHRvb2xzL3hlbnN0b3JlZDogcmVtb3ZlICItRCIgY29tbWFuZCBsaW5lIHBhcmFt
ZXRlcg0KPiAgICB0b29scy94ZW5zdG9yZWQ6IHJlbW92ZSAiLVYiIGNvbW1hbmQgbGluZSBv
cHRpb24NCj4gICAgdG9vbHMveGVuc3RvcmVkOiByZW1vdmUgdGhlICItUCIgY29tbWFuZCBs
aW5lIG9wdGlvbg0KPiAgICB0b29scy94ZW5zdG9yZWQ6IHJlbW92ZSB0aGUgIi1SIiBjb21t
YW5kIGxpbmUgb3B0aW9uDQo+ICAgIHRvb2xzL3hlbnN0b3JlZDogcmVtb3ZlICItTiIgY29t
bWFuZCBsaW5lIG9wdGlvbg0KPiANCj4gICB0b29scy94ZW5zdG9yZWQvY29yZS5jIHwgODEg
KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAgMSBmaWxl
IGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQ0KPiANCg0KSSB0
aGluayBhdCBsZWFzdCBwYXRjaGVzIDEtNCBjYW4gZ28gaW4gYXMgdGhleSBhbGwgaGF2ZSB0
aGUgcmVxdWlyZWQgQWNrcy4NCg0KDQpKdWVyZ2VuDQo=
--------------71ANf0Td4kngd1GT4SnlCZT9
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-----

--------------71ANf0Td4kngd1GT4SnlCZT9--

--------------KyolmpPuOjrycV7lNKW0Eibv--

--------------klxO36Q56XIyKSThu47QagFD
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/Ey8FAmVxgcMFAwAAAAAACgkQsN6d1ii/Ey80
1Af+Lte/BpvDocKFi50Ljp/ywBqDrVP4ilhTg8miZla0BBOQmmW55elbuyurjLBh30E4mTrIM9F2
lWAfiVhKuUSlgy4aagA7jer0FH8bl0Dzeu9a7Bbyx/+kJeDkD/iWMO4afCK5yH249HwoCrGes1lK
1YDcJ2hPI66n4k/HSukOq1tylF0fQIMoAmG4/4v2OX86qxi/Sdpfr22p5rhHXBoXFLK/Jwp4WVE6
0U3Z1sfdkkQ2cXQDKUoQ0TCXf8F1SbkzY1GIKhAIgWskVL2A2nkb3kcYW2038ewFLpm8sRHh/81T
3oAv0YHamAxRPDCJzPT4zeeVbppV/AuTM06aTInOmw==
=oVSB
-----END PGP SIGNATURE-----

--------------klxO36Q56XIyKSThu47QagFD--


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:43:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:43:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649602.1014287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rB9yX-0002ry-5G; Thu, 07 Dec 2023 08:43:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649602.1014287; Thu, 07 Dec 2023 08:43: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 1rB9yX-0002rr-2e; Thu, 07 Dec 2023 08:43:17 +0000
Received: by outflank-mailman (input) for mailman id 649602;
 Thu, 07 Dec 2023 08:43: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 1rB9yV-0002rj-Tl
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:43:15 +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 1rB9yR-0006e8-13; Thu, 07 Dec 2023 08:43:11 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rB9yQ-0002X6-RW; Thu, 07 Dec 2023 08:43: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=B0o4FSP3sNW7d5pk5ZbI4YFCDsL+/YfidwTgsBn/X0s=; b=eWT7sJH92/u93sqLTFlnAOBSBs
	8igWTxfIh2hT8XJfz1fhwZtvQ3cF3SOlX62PR3Gu3Qiw2EsF123CVWY3ABsxd5KTSl1S/pCoPYMYf
	k6dG2RjBm790/QQFonRLvKckYBgGpsbG4AqqIjEulsWWQ2NSTlSXdNAbQACBdR2SFbhg=;
Message-ID: <52f25f40-ab42-4845-9912-81ce92cc4de6@xen.org>
Date: Thu, 7 Dec 2023 08:43:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Clang-format configuration discussion - pt 2
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <Michal.Orzel@amd.com>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 George Dunlap <george.dunlap@cloud.com>
References: <1B83FF45-E93B-47D7-AD21-615CFCFD0816@arm.com>
 <2E778E49-C2F5-421F-9598-CED15E7D4284@arm.com>
 <827e24a2-0ecd-48c4-becb-12129c4208dc@suse.com>
 <CA+zSX=b77av9rHwWHsRD8MAnprfXQiotUPPPKFDOU9cTOA2OzA@mail.gmail.com>
 <4ce995a3-78a1-49e5-881d-d6af10514673@xen.org>
 <b71c4e81-7026-40b2-ad76-ea4de5bbf6b3@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <b71c4e81-7026-40b2-ad76-ea4de5bbf6b3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 07/12/2023 07:28, Jan Beulich wrote:
> On 06.12.2023 18:55, Julien Grall wrote:
>> On 06/12/2023 02:32, George Dunlap wrote:
>>> On Tue, Dec 5, 2023 at 2:07â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 05.12.2023 14:46, Luca Fancellu wrote:
>>>>> In my opinion, I donâ€™t know of any tool that can address all the flexibility the Xen codestyle allows, yet the use of automatic
>>>>> checkers would improve the review time, allow more new contributors to approach the community without being put down by
>>>>> the amount of code-style comments,
>>>>
>>>> Since this argument is being repeated: I find it odd. No-one needs to even
>>>> fear any amount of style comments if they simply follow the written down
>>>> policy plus a tiny bit of common sense. According to my observation, (some)
>>>> newcomers don't even care to look at what is being said about our style.
>>>> It's not like you and I haven't been through this. When I started working
>>>> with GNU toolchain, I had to adopt to their style. When I later started to
>>>> work with Linux, I had to also adopt there. And then for Xen. And all of
>>>> that already past closed source projects I had been working on before.
>>
>> I am not sure I get the point. With this argument, we are not only
>> putting load on the contributors but also on the reviewers because we
>> have to check the style manually while reviewing the code.
>>
>> Do you really think this is a good use of our time? Personally I don't
>> think so and definitely there are more unwritten rule than you let
>> transpire above.
>>
>> A good example is the "_" vs "-". If even a maintainer can't guess it,
>> then how can a contributor know it?
> 
> I didn't even hint at anything unwritten, did I?

You didn't and that was my point. I don't think we can put the unwritten 
rules aside when arguing about how easy it is to follow our coding 
style. They are usually the ones that tends to be the most contentious 
and trigger the most debate everytime they come up...

>>> Most modern languages, including golang (and I think rust) have
>>> built-in style correctors (`go fmt` is go's official one).  If you
>>> haven't worked with an automatic style checker / fixer, you don't know
>>> how much time, hassle, and emotional energy you're saving.  I don't
>>> think I know anyone who, after using one, wants to go back to not
>>> using one any more.
>>>
>>> In general, I'm in favor of making changes to our style such that we
>>> can make clang's style checker official.  The only reason I would vote
>>> against it is if one of the style requirements was really intolerable;
>>> but I find that pretty unlikely.
>>
>> +1
>>
>>>
>>> And as I've said before, the main reservation I have going forward
>>> with this discussion is that I can't see clearly what it is that I'm
>>> agreeing to.
>>
>> +1
>>
>> I found the way we dealt with MISRA rules quite helpful. We had a weekly
>> meeting to discuss some of the rules and then the outcome was posted on
>> the ML. Maybe we should do the same here? Any other suggestion how to move?
> 
> I have mixed feelings with meetings like the Misra ones. That's probably
> unavoidable because of it being a goal to move fast. I'm not sure the
> same applies here. 

I think in this situation is less about moving fast but more about 
making a closure of the 3 years+ discussion about the coding style.

We had several persons (including maintainers) expressing there 
frustration about the coding style [1]. And this is not really going 
better...

We have a couple of solutions:
   1. Properly codify our coding style
   2. Pick an existing one close enough to Xen

The first one would require the less change in Xen but given nobody 
really agree on changes to CODING_STYLE, I feer it is going to take a 
very long time to retrofit. From the discussion here, it also seems like 
we will not be able to get the automatic checker doing what we want.

For the second one, this may have an impact on Xen. But it would help to 
use an automatic checker. I also don't expect many contributors been 
able to sink a lot of time trying to come to a conclusion with the 
coding style. So I would chose the least path of resistance which is 2. 
I believe this is what Luca is attempting.

> But first of all - see also what George said - there
> needs to be a coherent proposal of what aspects of style to change in
> which way. The more heavy the changes, the harder it may be for long
> time contributors to adapt;

The whole point of having an automatic coding-style checker/formatting 
is you don't need to worry about it anymore.

Obviously if you intend to avoid the coding style checker, then it will 
be more difficult...

Cheers,

[1] 
https://lore.kernel.org/all/CABfawhnaDS=nGn3+NqoY_nWXvu0cfsAmpYjiv9VqkT6C0Ow1FA@mail.gmail.com/

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:48:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:48:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649606.1014296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3C-0004Qi-RV; Thu, 07 Dec 2023 08:48:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649606.1014296; Thu, 07 Dec 2023 08:48:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3C-0004Qb-OY; Thu, 07 Dec 2023 08:48:06 +0000
Received: by outflank-mailman (input) for mailman id 649606;
 Thu, 07 Dec 2023 08:48:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZB3o=HS=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rBA3C-0004QV-9G
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:48:06 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 555867a1-94dd-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 09:48:03 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.131.21])
 by support.bugseng.com (Postfix) with ESMTPSA id 090BC4EE073A;
 Thu,  7 Dec 2023 09:48:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 555867a1-94dd-11ee-9b0f-b553b5be7939
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>,
	Wei Liu <wl@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 0/5] xen: add parameter names and remove function declarations
Date: Thu,  7 Dec 2023 09:47:49 +0100
Message-Id: <cover.1701936906.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series adds the missing parameter names and remove useless function
declarations. No functional changes are introduced.

Federico Serafini (5):
  x86/acpi: remove acpi_pic_sci_set_trigger()
  xen/acpi: address violations of MISRA C:2012 Rule 8.2
  x86/mm: remove compat_subarch_memory_op()
  x86/mm: address violations of MISRA C:2012 Rule 8.2
  AMD/IOMMU: address violations of MISRA C:2012 Rule 8.2

 xen/arch/x86/include/asm/acpi.h           |  1 -
 xen/arch/x86/include/asm/mm.h             | 19 +++++++++---------
 xen/drivers/passthrough/amd/iommu.h       | 17 +++++++++-------
 xen/drivers/passthrough/amd/iommu_init.c  | 24 +++++++++++++----------
 xen/include/acpi/apei.h                   |  5 +++--
 xen/include/acpi/cpufreq/cpufreq.h        |  2 +-
 xen/include/acpi/cpufreq/processor_perf.h | 16 +++++++--------
 7 files changed, 45 insertions(+), 39 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:48:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:48:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649607.1014307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3E-0004fc-2a; Thu, 07 Dec 2023 08:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649607.1014307; Thu, 07 Dec 2023 08:48:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3D-0004fV-Vv; Thu, 07 Dec 2023 08:48:07 +0000
Received: by outflank-mailman (input) for mailman id 649607;
 Thu, 07 Dec 2023 08:48: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=ZB3o=HS=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rBA3C-0004QV-VO
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:48:06 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56230068-94dd-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 09:48:05 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.131.21])
 by support.bugseng.com (Postfix) with ESMTPSA id A91F14EE073E;
 Thu,  7 Dec 2023 09:48:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56230068-94dd-11ee-9b0f-b553b5be7939
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>,
	Wei Liu <wl@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 1/5] x86/acpi: remove acpi_pic_sci_set_trigger()
Date: Thu,  7 Dec 2023 09:47:50 +0100
Message-Id: <f0c7d42c12a0b89c61265cdfe67a35b07d220aa0.1701936906.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701936906.git.federico.serafini@bugseng.com>
References: <cover.1701936906.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Remove apci_pic_set_trigger() declaration: there is no definition and there are
no calls to such function in the XEN project.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/include/asm/acpi.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/acpi.h b/xen/arch/x86/include/asm/acpi.h
index 0df92d3714..48b1d69946 100644
--- a/xen/arch/x86/include/asm/acpi.h
+++ b/xen/arch/x86/include/asm/acpi.h
@@ -81,7 +81,6 @@ extern bool acpi_lapic, acpi_ioapic, acpi_noirq;
 extern bool acpi_force, acpi_ht, acpi_disabled;
 extern u32 acpi_smi_cmd;
 extern u8 acpi_enable_value, acpi_disable_value;
-void acpi_pic_sci_set_trigger(unsigned int, u16);
 
 static inline void disable_acpi(void)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:48:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:48:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649608.1014317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3G-0004wb-CX; Thu, 07 Dec 2023 08:48:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649608.1014317; Thu, 07 Dec 2023 08:48: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 1rBA3G-0004wR-7F; Thu, 07 Dec 2023 08:48:10 +0000
Received: by outflank-mailman (input) for mailman id 649608;
 Thu, 07 Dec 2023 08:48: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=ZB3o=HS=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rBA3E-0004rG-V5
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:48:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 57c55fe4-94dd-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 09:48:07 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.131.21])
 by support.bugseng.com (Postfix) with ESMTPSA id 537594EE0740;
 Thu,  7 Dec 2023 09:48:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 57c55fe4-94dd-11ee-98e7-6d05b1d4d9a1
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>,
	Wei Liu <wl@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 3/5] x86/mm: remove compat_subarch_memory_op()
Date: Thu,  7 Dec 2023 09:47:52 +0100
Message-Id: <285de0decf8ffe4277ce7e14a2561a693103f72b.1701936906.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701936906.git.federico.serafini@bugseng.com>
References: <cover.1701936906.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Remove remove compat_subarch_memory_op() declaration: there is no
definition and there are no calls to such function in the XEN project.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/include/asm/mm.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 05dfe35502..639163948e 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -573,7 +573,6 @@ int __sync_local_execstate(void);
 long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 long subarch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void));
-int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
 
 #define NIL(type) ((type *)-sizeof(type))
 #define IS_NIL(ptr) (!((uintptr_t)(ptr) + sizeof(*(ptr))))
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:48:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:48:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649609.1014321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3G-00050P-M8; Thu, 07 Dec 2023 08:48:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649609.1014321; Thu, 07 Dec 2023 08:48: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 1rBA3G-0004zs-Hl; Thu, 07 Dec 2023 08:48:10 +0000
Received: by outflank-mailman (input) for mailman id 649609;
 Thu, 07 Dec 2023 08:48:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZB3o=HS=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rBA3F-0004QV-08
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:48:09 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56be460f-94dd-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 09:48:06 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.131.21])
 by support.bugseng.com (Postfix) with ESMTPSA id 498F34EE073F;
 Thu,  7 Dec 2023 09:48:05 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56be460f-94dd-11ee-9b0f-b553b5be7939
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>
Subject: [XEN PATCH v2 2/5] xen/acpi: address violations of MISRA C:2012 Rule 8.2
Date: Thu,  7 Dec 2023 09:47:51 +0100
Message-Id: <47c08c496a403d60bbf5b18c7a079ac7a575efbc.1701936906.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701936906.git.federico.serafini@bugseng.com>
References: <cover.1701936906.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Changes in v2:
  - do not add parameters to acpi_pic_sci_set_trigger() (removed).
---
 xen/include/acpi/apei.h                   |  5 +++--
 xen/include/acpi/cpufreq/cpufreq.h        |  2 +-
 xen/include/acpi/cpufreq/processor_perf.h | 16 ++++++++--------
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/xen/include/acpi/apei.h b/xen/include/acpi/apei.h
index eab16e2543..495819e362 100644
--- a/xen/include/acpi/apei.h
+++ b/xen/include/acpi/apei.h
@@ -12,8 +12,9 @@
 
 #define FIX_APEI_RANGE_MAX 64
 
-typedef int (*apei_hest_func_t)(const struct acpi_hest_header *, void *);
-int apei_hest_parse(apei_hest_func_t, void *);
+typedef int (*apei_hest_func_t)(const struct acpi_hest_header *hest_hdr,
+                                void *data);
+int apei_hest_parse(apei_hest_func_t func, void *data);
 
 int erst_write(const struct cper_record_header *record);
 ssize_t erst_get_record_count(void);
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 3456d4c95f..b4685a9085 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -177,7 +177,7 @@ struct cpufreq_driver {
 
 extern struct cpufreq_driver cpufreq_driver;
 
-int cpufreq_register_driver(const struct cpufreq_driver *);
+int cpufreq_register_driver(const struct cpufreq_driver *driver_data);
 
 static inline
 void cpufreq_verify_within_limits(struct cpufreq_policy *policy,
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 8b5a1b9bde..7cd2400619 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -10,16 +10,16 @@
 int powernow_cpufreq_init(void);
 unsigned int powernow_register_driver(void);
 unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
-void cpufreq_residency_update(unsigned int, uint8_t);
-void cpufreq_statistic_update(unsigned int, uint8_t, uint8_t);
-int  cpufreq_statistic_init(unsigned int);
-void cpufreq_statistic_exit(unsigned int);
-void cpufreq_statistic_reset(unsigned int);
+void cpufreq_residency_update(unsigned int cpu, uint8_t state);
+void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to);
+int  cpufreq_statistic_init(unsigned int cpuid);
+void cpufreq_statistic_exit(unsigned int cpuid);
+void cpufreq_statistic_reset(unsigned int cpuid);
 
-int  cpufreq_limit_change(unsigned int);
+int  cpufreq_limit_change(unsigned int cpu);
 
-int  cpufreq_add_cpu(unsigned int);
-int  cpufreq_del_cpu(unsigned int);
+int  cpufreq_add_cpu(unsigned int cpu);
+int  cpufreq_del_cpu(unsigned int cpu);
 
 struct processor_performance {
     uint32_t state;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:48:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:48:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649610.1014337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3H-0005RA-UI; Thu, 07 Dec 2023 08:48:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649610.1014337; Thu, 07 Dec 2023 08:48:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3H-0005Q8-Qb; Thu, 07 Dec 2023 08:48:11 +0000
Received: by outflank-mailman (input) for mailman id 649610;
 Thu, 07 Dec 2023 08:48:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZB3o=HS=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rBA3G-0004rG-5x
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:48:10 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58bddff4-94dd-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 09:48:09 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.131.21])
 by support.bugseng.com (Postfix) with ESMTPSA id D048C4EE0741;
 Thu,  7 Dec 2023 09:48:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58bddff4-94dd-11ee-98e7-6d05b1d4d9a1
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>,
	Wei Liu <wl@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 4/5] x86/mm: address violations of MISRA C:2012 Rule 8.2
Date: Thu,  7 Dec 2023 09:47:53 +0100
Message-Id: <428b868a2b1aec2b50ccbe510bc3089203ac9c7b.1701936906.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701936906.git.federico.serafini@bugseng.com>
References: <cover.1701936906.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Changes in v2:
  - do not add parameters to compat_subarch_memory_op() (removed).
---
 xen/arch/x86/include/asm/mm.h | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 639163948e..7d26d9cd2f 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -406,7 +406,7 @@ void put_page_type(struct page_info *page);
 int  get_page_type(struct page_info *page, unsigned long type);
 int  put_page_type_preemptible(struct page_info *page);
 int  get_page_type_preemptible(struct page_info *page, unsigned long type);
-int  put_old_guest_table(struct vcpu *);
+int  put_old_guest_table(struct vcpu *v);
 int  get_page_from_l1e(
     l1_pgentry_t l1e, struct domain *l1e_owner, struct domain *pg_owner);
 void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner);
@@ -557,7 +557,7 @@ void audit_domains(void);
 
 void make_cr3(struct vcpu *v, mfn_t mfn);
 pagetable_t update_cr3(struct vcpu *v);
-int vcpu_destroy_pagetables(struct vcpu *);
+int vcpu_destroy_pagetables(struct vcpu *v);
 void *do_page_walk(struct vcpu *v, unsigned long addr);
 
 /* Allocator functions for Xen pagetables. */
@@ -572,19 +572,19 @@ int __sync_local_execstate(void);
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 long subarch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void));
+int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
 
 #define NIL(type) ((type *)-sizeof(type))
 #define IS_NIL(ptr) (!((uintptr_t)(ptr) + sizeof(*(ptr))))
 
-int create_perdomain_mapping(struct domain *, unsigned long va,
-                             unsigned int nr, l1_pgentry_t **,
-                             struct page_info **);
-void destroy_perdomain_mapping(struct domain *, unsigned long va,
+int create_perdomain_mapping(struct domain *d, unsigned long va,
+                             unsigned int nr, l1_pgentry_t **pl1tab,
+                             struct page_info **ppg);
+void destroy_perdomain_mapping(struct domain *d, unsigned long va,
                                unsigned int nr);
-void free_perdomain_mappings(struct domain *);
+void free_perdomain_mappings(struct domain *d);
 
-void __iomem *ioremap_wc(paddr_t, size_t);
+void __iomem *ioremap_wc(paddr_t pa, size_t len);
 
 extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:48:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:48:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649611.1014347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3J-0005jp-7Z; Thu, 07 Dec 2023 08:48:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649611.1014347; Thu, 07 Dec 2023 08:48:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBA3J-0005ix-3g; Thu, 07 Dec 2023 08:48:13 +0000
Received: by outflank-mailman (input) for mailman id 649611;
 Thu, 07 Dec 2023 08:48: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=ZB3o=HS=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rBA3I-0004rG-5q
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:48:12 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 59f5b252-94dd-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 09:48:11 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.131.21])
 by support.bugseng.com (Postfix) with ESMTPSA id 7AF714EE073F;
 Thu,  7 Dec 2023 09:48:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59f5b252-94dd-11ee-98e7-6d05b1d4d9a1
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>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 5/5] AMD/IOMMU: address violations of MISRA C:2012 Rule 8.2
Date: Thu,  7 Dec 2023 09:47:54 +0100
Message-Id: <68a1922cce9a68a8b69661d564fccc012cf5f414.1701936906.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701936906.git.federico.serafini@bugseng.com>
References: <cover.1701936906.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names to address violations of MISRA C:2012
Rule 8.2. Remove trailing spaces and use C standard types to comply
with XEN coding style. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Changes in v2:
  - use "enable" instead of "iommu_control" as parameter name.
---
 xen/drivers/passthrough/amd/iommu.h      | 17 ++++++++++-------
 xen/drivers/passthrough/amd/iommu_init.c | 24 ++++++++++++++----------
 2 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index d4416ebc43..1b62c083ba 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -138,10 +138,12 @@ struct ivrs_mappings {
 extern unsigned int ivrs_bdf_entries;
 extern u8 ivhd_type;
 
-struct ivrs_mappings *get_ivrs_mappings(u16 seg);
-int iterate_ivrs_mappings(int (*)(u16 seg, struct ivrs_mappings *));
-int iterate_ivrs_entries(int (*)(const struct amd_iommu *,
-                                 struct ivrs_mappings *, uint16_t));
+struct ivrs_mappings *get_ivrs_mappings(uint16_t seg);
+int iterate_ivrs_mappings(int (*handler)(uint16_t seg,
+                                         struct ivrs_mappings *map));
+int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *iommu,
+                                        struct ivrs_mappings *map,
+                                        uint16_t bdf));
 
 /* iommu tables in guest space */
 struct mmio_reg {
@@ -226,7 +228,7 @@ struct acpi_ivrs_hardware;
 /* amd-iommu-detect functions */
 int amd_iommu_get_ivrs_dev_entries(void);
 int amd_iommu_get_supported_ivhd_type(void);
-int amd_iommu_detect_one_acpi(const struct acpi_ivrs_hardware *);
+int amd_iommu_detect_one_acpi(const struct acpi_ivrs_hardware *ivhd_block);
 int amd_iommu_detect_acpi(void);
 void get_iommu_features(struct amd_iommu *iommu);
 
@@ -295,9 +297,10 @@ struct amd_iommu *find_iommu_for_device(int seg, int bdf);
 bool cf_check iov_supports_xt(void);
 int amd_iommu_setup_ioapic_remapping(void);
 void *amd_iommu_alloc_intremap_table(
-    const struct amd_iommu *, unsigned long **, unsigned int nr);
+    const struct amd_iommu *iommu, unsigned long **inuse_map, unsigned int nr);
 int cf_check amd_iommu_free_intremap_table(
-    const struct amd_iommu *, struct ivrs_mappings *, uint16_t);
+    const struct amd_iommu *iommu, struct ivrs_mappings *ivrs_mapping,
+    uint16_t bdf);
 unsigned int amd_iommu_intremap_table_order(
     const void *irt, const struct amd_iommu *iommu);
 void cf_check amd_iommu_ioapic_update_ire(
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 5515cb70fd..25e62f20ae 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -300,12 +300,13 @@ static void cf_check set_iommu_ppr_log_control(
 static int iommu_read_log(struct amd_iommu *iommu,
                           struct ring_buffer *log,
                           unsigned int entry_size,
-                          void (*parse_func)(struct amd_iommu *, u32 *))
+                          void (*parse_func)(struct amd_iommu *iommu,
+                                             uint32_t *entry))
 {
     unsigned int tail, tail_offest, head_offset;
 
     BUG_ON(!iommu || ((log != &iommu->event_log) && (log != &iommu->ppr_log)));
-    
+
     spin_lock(&log->lock);
 
     /* make sure there's an entry in the log */
@@ -361,14 +362,15 @@ static int iommu_read_log(struct amd_iommu *iommu,
 
  out:
     spin_unlock(&log->lock);
-   
+
     return 0;
 }
 
 /* reset event log or ppr log when overflow */
 static void iommu_reset_log(struct amd_iommu *iommu,
                             struct ring_buffer *log,
-                            void (*ctrl_func)(struct amd_iommu *iommu, bool))
+                            void (*ctrl_func)(struct amd_iommu *iommu,
+                                              bool enable))
 {
     unsigned int entry, run_bit, loop_count = 1000;
     bool log_run;
@@ -1158,14 +1160,15 @@ static void __init amd_iommu_init_cleanup(void)
     iommuv2_enabled = 0;
 }
 
-struct ivrs_mappings *get_ivrs_mappings(u16 seg)
+struct ivrs_mappings *get_ivrs_mappings(uint16_t seg)
 {
     return radix_tree_lookup(&ivrs_maps, seg);
 }
 
-int iterate_ivrs_mappings(int (*handler)(u16 seg, struct ivrs_mappings *))
+int iterate_ivrs_mappings(int (*handler)(uint16_t seg,
+                                         struct ivrs_mappings *map))
 {
-    u16 seg = 0;
+    uint16_t seg = 0;
     int rc = 0;
 
     do {
@@ -1180,10 +1183,11 @@ int iterate_ivrs_mappings(int (*handler)(u16 seg, struct ivrs_mappings *))
     return rc;
 }
 
-int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *,
-                                        struct ivrs_mappings *, uint16_t bdf))
+int iterate_ivrs_entries(int (*handler)(const struct amd_iommu *iommu,
+                                        struct ivrs_mappings *map,
+                                        uint16_t bdf))
 {
-    u16 seg = 0;
+    uint16_t seg = 0;
     int rc = 0;
 
     do {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:56:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649637.1014385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAB0-0000nC-9y; Thu, 07 Dec 2023 08:56:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649637.1014385; Thu, 07 Dec 2023 08:56: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 1rBAB0-0000n3-7N; Thu, 07 Dec 2023 08:56:10 +0000
Received: by outflank-mailman (input) for mailman id 649637;
 Thu, 07 Dec 2023 08:56: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBAAy-0000kD-N9
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 08:56:08 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 749acf46-94de-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 09:56:05 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3333131e08dso789064f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 00:56:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 h7-20020a5d6e07000000b003342e0745absm857943wrz.93.2023.12.07.00.56.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 00:56:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 749acf46-94de-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701939365; x=1702544165; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=S6GVuLeBM7dfiiFpBtpz9TNBvmk//o3P2SOrGIZjrcY=;
        b=WsIVp12qaJAdtSD18OFpFQseXCfh+p9jc/Vae1WosaT1yxEKiHw19JbVHJF5+1F7O9
         7CJfXGpbmnF9LpXvYsD+R6/t+qDe73/EnaSjAPwr/OB9Je2akBRa4e6YXYDuqP+697Tn
         csUCW1ugN9zXDfGhSQHav4HwD0slaWouUcKhktXPWewS3men9C8zbJmAVmR6Um6Z8DMw
         U2nzusgU86b7Fbd3gO2jY9FiH5u5RkHjDVXsLA17nkwQOaL4DGlvOor/XqYlHQrrVq2I
         DTwR2pw/Ytgp6kg+H3TjKxrT5kuyJZ5KhR4yBOPJffpCCDZcBi/US5VSDzbMG1r+tLvL
         Tnbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701939365; x=1702544165;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=S6GVuLeBM7dfiiFpBtpz9TNBvmk//o3P2SOrGIZjrcY=;
        b=foNhLkpMp3HBvGHx2wggFIS2r9DCh2AXE8Ws2J/OnzBq+cnVfYocpq60XFD54uNcF1
         Ywtq/dYQ08NUiRABxmQKYFnEoBOYByELSyVZg6n85mpe+Zjy5EoZGNkvPEAZqWenpNsy
         xZqRHjSD4iQqUSBpdTPWSNTRbmsJkmO/hld9yZgskRstfvwkVmjUf9qfu5pdC8HxBvey
         LwA1nOKTzrFO+uoajABR+8enrNfmLRW84F9c9AZSU+VXHZNd8FWxJbVSsvDyMzGQK5DO
         +cHS6LoYNo6wTQt1ltgaTc+OlooQpvKmSN5zIhMCBCoka3sVv625QYvKtEkewMuAFUib
         LFHg==
X-Gm-Message-State: AOJu0YwqZljfvt+Wp5dcPLlGTGpd2VxxUn20gZtbIL2a+8vjagTFOAHF
	vw03xskQJiDXsZcakHDa8T8a
X-Google-Smtp-Source: AGHT+IElAAL0hqX+iguqZa7iechUJcYPiAjiC/BmyVwhC+FBFiTJfIhkIWvfM909CM+wJAXBcWfyBQ==
X-Received: by 2002:adf:fec3:0:b0:334:b325:5415 with SMTP id q3-20020adffec3000000b00334b3255415mr705833wrs.29.1701939365118;
        Thu, 07 Dec 2023 00:56:05 -0800 (PST)
Message-ID: <208c360d-dd7f-4e53-8d3a-6bcc807cd649@suse.com>
Date: Thu, 7 Dec 2023 09:56:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Clang-format configuration discussion - pt 2
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <Michal.Orzel@amd.com>, Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 George Dunlap <george.dunlap@cloud.com>
References: <1B83FF45-E93B-47D7-AD21-615CFCFD0816@arm.com>
 <2E778E49-C2F5-421F-9598-CED15E7D4284@arm.com>
 <827e24a2-0ecd-48c4-becb-12129c4208dc@suse.com>
 <CA+zSX=b77av9rHwWHsRD8MAnprfXQiotUPPPKFDOU9cTOA2OzA@mail.gmail.com>
 <4ce995a3-78a1-49e5-881d-d6af10514673@xen.org>
 <b71c4e81-7026-40b2-ad76-ea4de5bbf6b3@suse.com>
 <52f25f40-ab42-4845-9912-81ce92cc4de6@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <52f25f40-ab42-4845-9912-81ce92cc4de6@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.12.2023 09:43, Julien Grall wrote:
> On 07/12/2023 07:28, Jan Beulich wrote:
>> On 06.12.2023 18:55, Julien Grall wrote:
>>> On 06/12/2023 02:32, George Dunlap wrote:
>>>> On Tue, Dec 5, 2023 at 2:07â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>>>> On 05.12.2023 14:46, Luca Fancellu wrote:
>>>>>> In my opinion, I donâ€™t know of any tool that can address all the flexibility the Xen codestyle allows, yet the use of automatic
>>>>>> checkers would improve the review time, allow more new contributors to approach the community without being put down by
>>>>>> the amount of code-style comments,
>>>>>
>>>>> Since this argument is being repeated: I find it odd. No-one needs to even
>>>>> fear any amount of style comments if they simply follow the written down
>>>>> policy plus a tiny bit of common sense. According to my observation, (some)
>>>>> newcomers don't even care to look at what is being said about our style.
>>>>> It's not like you and I haven't been through this. When I started working
>>>>> with GNU toolchain, I had to adopt to their style. When I later started to
>>>>> work with Linux, I had to also adopt there. And then for Xen. And all of
>>>>> that already past closed source projects I had been working on before.
>>>
>>> I am not sure I get the point. With this argument, we are not only
>>> putting load on the contributors but also on the reviewers because we
>>> have to check the style manually while reviewing the code.
>>>
>>> Do you really think this is a good use of our time? Personally I don't
>>> think so and definitely there are more unwritten rule than you let
>>> transpire above.
>>>
>>> A good example is the "_" vs "-". If even a maintainer can't guess it,
>>> then how can a contributor know it?
>>
>> I didn't even hint at anything unwritten, did I?
> 
> You didn't and that was my point. I don't think we can put the unwritten 
> rules aside when arguing about how easy it is to follow our coding 
> style. They are usually the ones that tends to be the most contentious 
> and trigger the most debate everytime they come up...

Hmm, I see how you received my comment. It wasn't meant that way, though.
Instead I was trying to convey that even the little that is written down
is largely ignored. Writing down more isn't going to help. But yes, an
automatic checker would likely help in that direction. I'm specifically
not ...

> Obviously if you intend to avoid the coding style checker, then it will 
> be more difficult...

... trying to avoid a checker. What I'm trying to avoid are perhaps yet
more intrusive changes to the entire code base than we're already seeing
with Misra work.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 08:57:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 08:57:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649640.1014395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAC7-0001vR-NM; Thu, 07 Dec 2023 08:57:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649640.1014395; Thu, 07 Dec 2023 08:57:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAC7-0001vK-Jq; Thu, 07 Dec 2023 08:57:19 +0000
Received: by outflank-mailman (input) for mailman id 649640;
 Thu, 07 Dec 2023 08:57: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 1rBAC6-0001v5-77; Thu, 07 Dec 2023 08:57: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 1rBAC6-0006vR-5W; Thu, 07 Dec 2023 08:57: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 1rBAC5-0003zG-JM; Thu, 07 Dec 2023 08:57:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBAC5-00064Q-Iv; Thu, 07 Dec 2023 08:57: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=NFJ6IO3+1/6P6036HMPPCzsJvNCUZ6S90hNs7QIHtxw=; b=VSP+wmY/7mx0iuNk1HhRzLkIze
	kUlVmv/HJ3/Pxl7e52Soap+EivPXryfm6/wZcEXkbmfjbI1fEyscoO763ksrffuYCWwMDq+Ick9W8
	cMAlCd2LoAAc1wNopK5kSV5h6Irb+8eJaBmBO/+MKwyOlu/v4FthxW+mhogcnekY8urk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184007-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.17-testing test] 184007: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.17-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-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-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-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-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-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-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-i386-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-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-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-credit2: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:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-vhd: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-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-amd64-amd64-libvirt-vhd: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-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-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-amd64-i386-libvirt-raw: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-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-raw: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
X-Osstest-Versions-This:
    xen=6eb98dda5c91e68555684c57a2c9bd119ff082c1
X-Osstest-Versions-That:
    xen=e1f9cb16e2efbb202f2f8a9aa7c5ff1d392ece33
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 08:57:17 +0000

flight 184007 xen-4.17-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/184007/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183842
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183842
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183842
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183842
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183842
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183842
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183842
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183842
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183842
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183842
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183842
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183842
 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-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-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-i386-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-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-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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          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-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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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

version targeted for testing:
 xen                  6eb98dda5c91e68555684c57a2c9bd119ff082c1
baseline version:
 xen                  e1f9cb16e2efbb202f2f8a9aa7c5ff1d392ece33

Last test of basis   183842  2023-11-23 11:39:19 Z   13 days
Testing same since   184007  2023-12-06 10:07:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  Frediano Ziglio <frediano.ziglio@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Roger Pau MonnÃ© <roger.pau@citrix.com>
  Stewart Hildebrand <stewart.hildebrand@amd.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   e1f9cb16e2..6eb98dda5c  6eb98dda5c91e68555684c57a2c9bd119ff082c1 -> stable-4.17


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:07:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:07:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649646.1014405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBALw-00046P-LL; Thu, 07 Dec 2023 09:07:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649646.1014405; Thu, 07 Dec 2023 09: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 1rBALw-00046I-Ig; Thu, 07 Dec 2023 09:07:28 +0000
Received: by outflank-mailman (input) for mailman id 649646;
 Thu, 07 Dec 2023 09: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=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBALv-00046A-7U
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:07:27 +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 091e4a3d-94e0-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 10:07:24 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-54dcfca54e0so355145a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 01:07:24 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 p8-20020a1709061b4800b00a1933a57960sm544163ejg.22.2023.12.07.01.07.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 01:07:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 091e4a3d-94e0-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701940044; x=1702544844; 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=PpnoIpCPtNNZKG13MjWQHCQtP8ts156WdNu1VBzxYzY=;
        b=e4RKWJ3CNN9txglGSCNUlHrepr+C0ieK8bx7cL5yG8/yAwd0k9F1zTBVOmT6qnwl1J
         5mnY9flTBxvDpzvZ4Pnpb0LIfk2lQHEDGgwxGM7CcoRnOLXa5YaAKR1rfnSBZ/MaUWip
         x13/6FYlncTnLyosQa8nR1xod+Ja6/Fyqr8ouQoCRS0O309VbOAHN5EYLXk1/rEsuSLv
         PtiUdO1ypLB8VmJdUYigxtLzDmZ3pDX1ZQ4gQSUdvkCFvdND0LgBlJukf1sOejK3OyYj
         OCv1WXjKkBQSSRJJcHvnihE7I0aUWAusg6oJj6VRtClXBe3C4elTWlevq8P/0uqKI71j
         v/Ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701940044; x=1702544844;
        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=PpnoIpCPtNNZKG13MjWQHCQtP8ts156WdNu1VBzxYzY=;
        b=PBdjNRUkfGQYTwg1wl3Ijh0XwPnAUhDM2K6s6oSersifvVrvyQwoUTa+98hUlFjbfL
         SYZV467BxdC6RX5ZpYzIwaWXyZFX1D3OPJqi8lCkU8kZkfwdjtl5/o4v9dwEagdQDRYK
         RitDgWGhu5TyqeD3nE0Jh7dDeTP6iKXjHVwl/fkA785SqSOAmV2rjNbrdId2aLRD7Plc
         3lr36NlIH+zgXQoyrUDHkvytWncskmdzVkhl52+EGaJ/gHvn+N3iV/rf/1NnrtFIr5Lw
         hY1hr9GEp43iS8uYS74DqdZiI0goe4x/dJLxXxXYTQZRZwfayw+ZoKqin5vQUOXatImn
         3OLw==
X-Gm-Message-State: AOJu0Yxu1lbXFHOLdVUq0jLYOV+sv7k6wzfebffuVO6FiJoMey55WxVt
	az351Mu+u0zeBp9ZdlNxAmc=
X-Google-Smtp-Source: AGHT+IG86aZCgVvH1UWg+MR4LE8Z3vWuZ31nYgp5zsTBh3CT+GojA0W5OnjiqdXVo3x5v9oleEqpgg==
X-Received: by 2002:a17:906:21c:b0:a1e:91ab:ba2d with SMTP id 28-20020a170906021c00b00a1e91abba2dmr534426ejd.110.1701940043647;
        Thu, 07 Dec 2023 01:07:23 -0800 (PST)
Message-ID: <c4bf68b6008c63f9e8a631886aaa4cf5e1398e80.camel@gmail.com>
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
From: Oleksii <oleksii.kurochko@gmail.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Julien Grall
	 <julien@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>, 
	xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>, Jan Beulich
	 <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
	Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Date: Thu, 07 Dec 2023 11:07:22 +0200
In-Reply-To: <a6400750-fd17-4452-a60d-bd9307825548@apertussolutions.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
	 <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
	 <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
	 <a6400750-fd17-4452-a60d-bd9307825548@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Wed, 2023-12-06 at 21:01 -0500, Daniel P. Smith wrote:
> On 12/1/23 15:56, Julien Grall wrote:
> > (+ Arm and RISC-V folks)
> >=20
> > Hi Shawn,
> >=20
> > On 01/12/2023 20:59, Shawn Anastasio wrote:
> > > Adapt arm's earlyfdt parsing code to ppc64 and enable Xen's early
> > > boot
> > > allocator. Routines for parsing arm-specific devicetree nodes
> > > (e.g.
> > > multiboot) were excluded, reducing the overall footprint of code
> > > that
> > > was copied.
> >=20
> > I expect RISC-V to want similar code. I am not really thrilled in
> > the=20
> > idea of having 3 similar copy of the parsing. So can we extract the
> > common bits (or harmonize it) so it can be shared?
>=20
> That is actually 4, Hyperlaunch already did a common version for our
> usage.
Sounds great. I'll look at and switch RISC-V to it. Thanks.
>=20
> > Maybe Oleksii has already a version doing that.
> >=20
> > Cheers,
> >=20
>=20
>=20
>=20
> V/r,
> Daniel P. Smith
> Apertus Solutions, LLC
>=20



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:11:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:11:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649649.1014414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAPm-0005uR-5I; Thu, 07 Dec 2023 09:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649649.1014414; Thu, 07 Dec 2023 09: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 1rBAPm-0005uK-20; Thu, 07 Dec 2023 09:11:26 +0000
Received: by outflank-mailman (input) for mailman id 649649;
 Thu, 07 Dec 2023 09:11: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=ZB3o=HS=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rBAPk-0005uE-Q1
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:11:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 974d5f29-94e0-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:11:22 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.131.21])
 by support.bugseng.com (Postfix) with ESMTPSA id C631F4EE073A;
 Thu,  7 Dec 2023 10:11:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 974d5f29-94e0-11ee-9b0f-b553b5be7939
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012 Rule 16.3
Date: Thu,  7 Dec 2023 10:08:46 +0100
Message-Id: <4fa08aaed77d2b68db39ce51beef29820f1ba9b0.1701940034.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C:2012 Rule 16.3 states that an unconditional break statement
shall terminate every switch-clause.

Update ECLAIR configuration to take into account:
- continue, goto, return statements;
- functions and macros that do not give the control back;
- fallthrough comments and pseudo-keywords.

Update docs/misra/deviations.rst accordingly.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 .../eclair_analysis/ECLAIR/deviations.ecl     | 18 ++++++++++++++
 docs/misra/deviations.rst                     | 24 +++++++++++++++++++
 2 files changed, 42 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index b0c79741b5..df0b58a010 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -321,6 +321,24 @@ statements are deliberate"
 -config=MC3R1.R14.3,statements={deliberate , "wrapped(any(),node(if_stmt))" }
 -doc_end
 
+#
+# Series 16.
+#
+
+-doc_begin="Switch clauses ending with continue, goto, return statements are safe."
+-config=MC3R1.R16.3,terminals+={safe, "node(continue_stmt||goto_stmt||return_stmt)"}
+-doc_end
+
+-doc_begin="Switch clauses not ending with the break statement are safe if a function/macro that does not give the control back is present."
+-config=MC3R1.R16.3,terminals+={safe, "call(decl(name(__builtin_unreachable||do_unexpected_trap||fatal_trap||machine_halt||machine_restart||maybe_reboot||panic)))"}
+-config=MC3R1.R16.3,terminals+={safe,"macro(name(BUG||BUG_ON))"}
+-doc_end
+
+-doc_begin="Switch clauses not ending with the break statement are safe if an explicit comment or pseudo-keyword indicating the fallthrough intention is present."
+-config=MC3R1.R16.3,reports+={safe, "any_area(any_loc(any_exp(text(^(?s).*([fF]all[- ]?[tT]hrough|FALL[- ]?THROUGH).*$,0..1))))"}
+-config=MC3R1.R16.3,reports+={safe, "any_area(text(^(?s).*([fF]all[- ]?[tT]hrough|FALL[- ]?THROUGH).*$,0..1))"}
+-doc_end
+
 #
 # Series 20.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 6e7c4f25b8..fecd2bae8e 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -270,6 +270,30 @@ Deviations related to MISRA C:2012 Rules:
        statements are deliberate.
      - Project-wide deviation; tagged as `disapplied` for ECLAIR.
 
+   * - R16.3
+     - Switch clauses ending with continue, goto, return statements are safe.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R16.3
+     - Switch clauses not ending with the break statement are safe if a
+       function/macro that does not give the control back is present.
+     - Tagged as `safe` for ECLAIR, such functions/macros are:
+        - __builtin_unreachable
+        - do_unexpected_trap
+        - fatal_trap
+        - machine_halt
+        - machine_restart
+        - maybe_reboot
+        - panic
+        - BUG
+        - BUG_ON
+
+   * - R16.3
+     - Switch clauses not ending with the break statement are safe if an
+       explicit comment or pseudo-keyword indicating the fallthrough intention
+       is present.
+     - Tagged as `safe` for ECLAIR.
+
    * - R20.7
      - Code violating Rule 20.7 is safe when macro parameters are used:
        (1) as function arguments;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:19:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:19:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649654.1014425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAXZ-0007Wz-0p; Thu, 07 Dec 2023 09:19:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649654.1014425; Thu, 07 Dec 2023 09: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 1rBAXY-0007Ws-UG; Thu, 07 Dec 2023 09:19:28 +0000
Received: by outflank-mailman (input) for mailman id 649654;
 Thu, 07 Dec 2023 09:19:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBAXY-0007Wm-0D
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:19:28 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6efddcc-94e1-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:19:25 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-33349b3f99aso689029f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 01:19:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e24-20020a5d5958000000b003332fa77a0fsm921384wri.21.2023.12.07.01.19.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 01:19:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6efddcc-94e1-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701940765; x=1702545565; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+0ZQvbqBO2hFg0p1rdyjyhc9/Ztec2xTeb+rkYkL8rU=;
        b=Q0oeoOjEtsLSsWAKNdMeTiSQh+0UC4FcEN6AHHZwBli4gxJ04tJq6/ziXT0+cpvnBc
         sTLCCwrBkL5XgzjcYN9eD/Lu48wuAVXuQXq4Sk4E0QjPeQiFF/sl+TxW0RB/9Insa6Ld
         eOBhnsN5CGsQtMafUg94/apU98u24rAOMG8EIzFw/mwoyd8ExIbNrHMyBsCPdJ2FDhx2
         BjAiPNdReqeGblNca3w7B+VZYG8MyUS3UsFLXvq8Qu4OAAgyAOm2/YJWitKTdtJiXANC
         J8w+VuOHOGq+EtOMzhx7QTh+wqcNaoja5gQXHhRUfUckV3FQzkaoDP+R8UtHX1enoAdZ
         ck8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701940765; x=1702545565;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=+0ZQvbqBO2hFg0p1rdyjyhc9/Ztec2xTeb+rkYkL8rU=;
        b=slgrsMIQcrFUckE99aPtTsWs88XrlZaSzrf3aAWCq/JgDULgDE2JXD1Z9s4vQv0KiF
         uVGIhkgMJ9fvcNllVggqsDTT31voeSvrFAKf/brMQV0fXLfiAHusrg6Kh5mQFr1QeST7
         wbkqq8fNqsWt9voLjanPAynB4kQBVuj5OsG9YKziQuxW+kg5OXbSNM9y+fOditH6Fx4t
         XdixDx5QReDDpMUWDXyBarQ1OfMIc6rCQDb55f+KykAb0+6yapcNMICA2hKRqv5VtXIG
         twIx7SfdBW/S9kPO+X30WGHfQkDqGCM5hxP7ov5OmELCWtHJaGDNCNuCcM1QFbjM3a6z
         VGlQ==
X-Gm-Message-State: AOJu0YyjJPFxYsmY9DXk11GhLNGJjGS8pTE4bDFKy/fTtYdw3lN3rO0u
	nXMMTywW/Wwc7HBCEglNBBEd
X-Google-Smtp-Source: AGHT+IGXgatIxeqyY8VwVrKKuNFldLfdCUrGL+7VXQlcwT9J6qlr4SSc8LMtdR0dBIUnSkxE1EaTHg==
X-Received: by 2002:a5d:6511:0:b0:333:2fd2:51d1 with SMTP id x17-20020a5d6511000000b003332fd251d1mr1190540wru.74.1701940765504;
        Thu, 07 Dec 2023 01:19:25 -0800 (PST)
Message-ID: <2205366c-c66a-419a-9232-ec41432127c1@suse.com>
Date: Thu, 7 Dec 2023 10:19:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/5] x86/acpi: remove acpi_pic_sci_set_trigger()
Content-Language: en-US
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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1701936906.git.federico.serafini@bugseng.com>
 <f0c7d42c12a0b89c61265cdfe67a35b07d220aa0.1701936906.git.federico.serafini@bugseng.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: <f0c7d42c12a0b89c61265cdfe67a35b07d220aa0.1701936906.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 09:47, Federico Serafini wrote:
> Remove apci_pic_set_trigger() declaration: there is no definition and there are
> no calls to such function in the XEN project.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

A reference to the offending commit would have been nice, the more that iirc
I had already gone and fished that out for you.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:22:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:22:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649657.1014435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAaV-0000Y5-Ez; Thu, 07 Dec 2023 09:22:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649657.1014435; Thu, 07 Dec 2023 09: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 1rBAaV-0000Xy-Bq; Thu, 07 Dec 2023 09:22:31 +0000
Received: by outflank-mailman (input) for mailman id 649657;
 Thu, 07 Dec 2023 09:22:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBAaU-0000Xr-Nb
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:22:30 +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 23dfe646-94e2-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:22:28 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a1f47f91fc0so6853166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 01:22:28 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 ov8-20020a170906fc0800b00a1cbb055575sm562069ejb.180.2023.12.07.01.22.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 01:22:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23dfe646-94e2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701940948; x=1702545748; 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=4gcCcVl/OrvlS/H8SXEbCBNlEwdZbATi2HVrc1fSjFI=;
        b=KAoALnXIAajG7yxDFca4Q3D1lQzCtpLUjwYjm2NqR5xjQrVM0FDC9pQ4pufaBIGUt6
         umVCTBrnHVHaH+NNlDU7IbZhw0lEPB76qy03PTHRNOlngVD6HD3ig8y1agP4m9n9Xsen
         E073E+EmMVfI79SiBkMmXmghWIvFemNXYdRIIbBidcbUWXPYiZTutKIXRzzd2wOh0F8V
         zqyrauGwgs4PGuwkwqUpN0Dh/3Wv97HrKNZD4Pw7BM1defH/RyaU6SJZ2dMs1kdofKl9
         plNi1dAGeeK7VYr3mWQ43J5oetptsMGCo5KaMMCAY7UMlNT3XaGzCNF8FDrb5+MD0jFI
         6ZyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701940948; x=1702545748;
        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=4gcCcVl/OrvlS/H8SXEbCBNlEwdZbATi2HVrc1fSjFI=;
        b=YOKn9nbhD4D9StxBGuwOgsIhdhQKhCpYPCqbKKobpCGCU9PtkPCcWQsbFf0+2f6edS
         YE12MPQDAith8Eok6PXkKrPmSq3lo6YsosRFm/mQ8XJVW0C7JbBbVyQ0QjSRGmmFzeOD
         1OcHAAIPAG1rT1g3GtgQyJ1MicgSxeIu1gpBDyqKF+exklX9RhINy+XhaCjT4Vx+0cmu
         BTDFrWhgBlv6mApHn2rP97++PCOUBfcH7eXksBD1Kv7LNaE/uHgNXCPvB0tvaBzNDYFN
         2RgInWl7qzken5FbPFgQO8U6r3uoAKemGGXzZnXZjaxDUA9laElU0o307KN6KuwPTHOn
         exJg==
X-Gm-Message-State: AOJu0Yw6mqRUtICIGkWhotSa0eAeDtuutQl9X/ItZ9F9N3dC5TTsln2m
	MLadqdTm5V26rHGyixN1Cb8=
X-Google-Smtp-Source: AGHT+IFJkGUGMtUWw8V6wzSFDUNfFKOBhOTHOg2VC1Nfw19gk8XaiaHHshu7RCSPXTvZ7HhvuSwI9w==
X-Received: by 2002:a17:906:b248:b0:a02:27d9:9f05 with SMTP id ce8-20020a170906b24800b00a0227d99f05mr1392788ejb.42.1701940948116;
        Thu, 07 Dec 2023 01:22:28 -0800 (PST)
Message-ID: <22fa451f7b165a00082443a35077e98e101c22e4.camel@gmail.com>
Subject: Re: [PATCH v2 01/39] xen/riscv: disable unnecessary configs
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	 <sstabellini@kernel.org>, Alistair Francis <alistair.francis@wdc.com>, Bob
	Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, 
	xen-devel@lists.xenproject.org
Date: Thu, 07 Dec 2023 11:22:27 +0200
In-Reply-To: <fdfda320-b73b-4830-8f1b-d261b02bcdde@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.oleksii.kurochko@gmail.com>
	 <fdfda320-b73b-4830-8f1b-d261b02bcdde@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Tue, 2023-12-05 at 16:38 +0100, Jan Beulich wrote:
> > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > The patch also fixes the build script as conf util expects
> > > > to have each config on separate line.
> >=20
> > The approach doesn't really scale (it's already odd that you add
> > the
> > (apparently) same set four times. There's also zero justification
> > for
> > this kind of an adjustment (as per discussion elsewhere I don't
> > think
> > we should go this route, and hence arguments towards convincing me
> > [and
> > perhaps others] would be needed here).
I agree that this may not be the best approach, but it seems like we
don't have too many options to turn off a config for randconfig.

To be honest, in my opinion (IMO), randconfig should either be removed
or allowed to fail until most of the functionality is ready. Otherwise,
there should be a need to introduce HAS_* or depend on
'SUPPORTED_ARCHS' for each config, or introduce a lot of stubs.

Could you please suggest a better option?

> >=20
> > > > --- a/automation/gitlab-ci/build.yaml
> > > > +++ b/automation/gitlab-ci/build.yaml
> > > > @@ -522,6 +522,38 @@ archlinux-current-gcc-riscv64:
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 CONTAINER: archlinux:current-riscv64
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> > > > +=C2=A0=C2=A0=C2=A0 EXTRA_XEN_CONFIG:
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> > > > +=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_SCHED_CREDIT=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_SCHED_CREDIT2=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_SCHED_RTDS=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_SCHED_NULL=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_SCHED_ARINC653=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_TRACEBUFFER=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_HYPFS=3Dn
> > > > +=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_SPECULATIVE_HARDEN_ARRAY=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_ARGO=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_HYPFS_CONFIG=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_CORE_PARKING=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_DEBUG_TRACE=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_IOREQ_SERVER=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_CRASH_DEBUG=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_KEXEC=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_MEM_ACCESS=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_NUMA=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_HAS_PMAP=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_TRACEBUFFER=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_XENOPROF=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COMPAT=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_UBSAN=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_NEEDS_LIBELF=3Dn
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_XSM=3Dn
> > > > +
> > > > =C2=A0
> > > > =C2=A0archlinux-current-gcc-riscv64-debug:
> > > > =C2=A0=C2=A0 extends: .gcc-riscv64-cross-build-debug
> >=20
> > I think I've said so elsewhere before: Please avoid introducing
> > double
> > blank lines, unless entirely unavoidable (for reasons I cannot
> > think
> > of).
Sorry for that; I am not doing that on purpose. It's just a big patch
series, and I missed that double blank. I will try to be more
attentive.

Do you think it makes sense to add a script to perform basic code style
checks, similar to what Linux has?

> >=20
~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:28:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:28:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649660.1014445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAfk-0001qZ-1T; Thu, 07 Dec 2023 09:27:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649660.1014445; Thu, 07 Dec 2023 09: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 1rBAfj-0001qS-V7; Thu, 07 Dec 2023 09:27:55 +0000
Received: by outflank-mailman (input) for mailman id 649660;
 Thu, 07 Dec 2023 09:27: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=ZW7A=HS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rBAfi-0001qM-UP
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:27:55 +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 e4bb6452-94e2-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:27:51 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 4ADC821CEC;
 Thu,  7 Dec 2023 09:27: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 1B11713976;
 Thu,  7 Dec 2023 09:27:50 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id djsMBRaQcWVWSAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 07 Dec 2023 09:27: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: e4bb6452-94e2-11ee-9b0f-b553b5be7939
Message-ID: <c4fb61d7-d65e-4f6d-bb3f-cc961a70a757@suse.com>
Date: Thu, 7 Dec 2023 10:27:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/xenbus: client: fix kernel-doc comments
Content-Language: en-US
To: Randy Dunlap <rdunlap@infradead.org>, linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20231206181724.27767-1-rdunlap@infradead.org>
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: <20231206181724.27767-1-rdunlap@infradead.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------KA4uvbTDacHnAcU0PyF53DKY"
X-Rspamd-Queue-Id: 4ADC821CEC
X-Spam-Score: 15.00
X-Spam-Flag: YES
X-Spamd-Result: default: False [15.00 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 MX_GOOD(-0.01)[];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 R_DKIM_NA(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(1.00)[-all];
	 FROM_HAS_DN(0.00)[];
	 DMARC_POLICY_QUARANTINE(1.50)[suse.com : No valid SPF, No valid DKIM,quarantine];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[infradead.org:email,epam.com:email,xenproject.org:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_IN_DNSWL_HI(-0.50)[2a07:de40:b281:104:10:150:64:97:from];
	 RCVD_TLS_ALL(0.00)[]
X-Spamd-Bar: +++++++++++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=none;
	dmarc=fail reason="No valid SPF, No valid DKIM" header.from=suse.com (policy=quarantine);
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd1
X-Spam-Level: ***************
X-Spam: Yes

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------KA4uvbTDacHnAcU0PyF53DKY
Content-Type: multipart/mixed; boundary="------------aw585y7yd3t3iOQghrKsc3rB";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Randy Dunlap <rdunlap@infradead.org>, linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org
Message-ID: <c4fb61d7-d65e-4f6d-bb3f-cc961a70a757@suse.com>
Subject: Re: [PATCH] xen/xenbus: client: fix kernel-doc comments
References: <20231206181724.27767-1-rdunlap@infradead.org>
In-Reply-To: <20231206181724.27767-1-rdunlap@infradead.org>

--------------aw585y7yd3t3iOQghrKsc3rB
Content-Type: multipart/mixed; boundary="------------Eg6PYKQPf2TfVPQtJ0Y0P0Vc"

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

T24gMDYuMTIuMjMgMTk6MTcsIFJhbmR5IER1bmxhcCB3cm90ZToNCj4gQ29ycmVjdCBmdW5j
dGlvbiBrZXJuZWwtZG9jIG5vdGF0aW9uIHRvIHByZXZlbnQgd2FybmluZ3MgZnJvbQ0KPiBz
Y3JpcHRzL2tlcm5lbC1kb2MuDQo+IA0KPiB4ZW5idXNfY2xpZW50LmM6MTM0OiB3YXJuaW5n
OiBObyBkZXNjcmlwdGlvbiBmb3VuZCBmb3IgcmV0dXJuIHZhbHVlIG9mICd4ZW5idXNfd2F0
Y2hfcGF0aCcNCj4geGVuYnVzX2NsaWVudC5jOjE3Nzogd2FybmluZzogTm8gZGVzY3JpcHRp
b24gZm91bmQgZm9yIHJldHVybiB2YWx1ZSBvZiAneGVuYnVzX3dhdGNoX3BhdGhmbXQnDQo+
IHhlbmJ1c19jbGllbnQuYzoyNTg6IHdhcm5pbmc6IG1pc3NpbmcgaW5pdGlhbCBzaG9ydCBk
ZXNjcmlwdGlvbiBvbiBsaW5lOg0KPiAgICogeGVuYnVzX3N3aXRjaF9zdGF0ZQ0KPiB4ZW5i
dXNfY2xpZW50LmM6MjY3OiB3YXJuaW5nOiBObyBkZXNjcmlwdGlvbiBmb3VuZCBmb3IgcmV0
dXJuIHZhbHVlIG9mICd4ZW5idXNfc3dpdGNoX3N0YXRlJw0KPiB4ZW5idXNfY2xpZW50LmM6
MzA4OiB3YXJuaW5nOiBtaXNzaW5nIGluaXRpYWwgc2hvcnQgZGVzY3JpcHRpb24gb24gbGlu
ZToNCj4gICAqIHhlbmJ1c19kZXZfZXJyb3INCj4geGVuYnVzX2NsaWVudC5jOjMyNzogd2Fy
bmluZzogbWlzc2luZyBpbml0aWFsIHNob3J0IGRlc2NyaXB0aW9uIG9uIGxpbmU6DQo+ICAg
KiB4ZW5idXNfZGV2X2ZhdGFsDQo+IHhlbmJ1c19jbGllbnQuYzozNTA6IHdhcm5pbmc6IFRo
aXMgY29tbWVudCBzdGFydHMgd2l0aCAnLyoqJywgYnV0IGlzbid0IGEga2VybmVsLWRvYyBj
b21tZW50LiBSZWZlciBEb2N1bWVudGF0aW9uL2RvYy1ndWlkZS9rZXJuZWwtZG9jLnJzdA0K
PiAgICogRXF1aXZhbGVudCB0byB4ZW5idXNfZGV2X2ZhdGFsKGRldiwgZXJyLCBmbXQsIGFy
Z3MpLCBidXQgaGVscHMNCj4geGVuYnVzX2NsaWVudC5jOjQ1Nzogd2FybmluZzogVGhpcyBj
b21tZW50IHN0YXJ0cyB3aXRoICcvKionLCBidXQgaXNuJ3QgYSBrZXJuZWwtZG9jIGNvbW1l
bnQuIFJlZmVyIERvY3VtZW50YXRpb24vZG9jLWd1aWRlL2tlcm5lbC1kb2MucnN0DQo+ICAg
KiBBbGxvY2F0ZSBhbiBldmVudCBjaGFubmVsIGZvciB0aGUgZ2l2ZW4geGVuYnVzX2Rldmlj
ZSwgYXNzaWduaW5nIHRoZSBuZXdseQ0KPiB4ZW5idXNfY2xpZW50LmM6NDg2OiB3YXJuaW5n
OiBleHBlY3RpbmcgcHJvdG90eXBlIGZvciBGcmVlIGFuIGV4aXN0aW5nIGV2ZW50IGNoYW5u
ZWwuIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yKCkuIFByb3RvdHlwZSB3YXMgZm9yIHhlbmJ1
c19mcmVlX2V2dGNobigpIGluc3RlYWQNCj4geGVuYnVzX2NsaWVudC5jOjUwMjogd2Fybmlu
ZzogbWlzc2luZyBpbml0aWFsIHNob3J0IGRlc2NyaXB0aW9uIG9uIGxpbmU6DQo+ICAgKiB4
ZW5idXNfbWFwX3JpbmdfdmFsbG9jDQo+IHhlbmJ1c19jbGllbnQuYzo1MTc6IHdhcm5pbmc6
IE5vIGRlc2NyaXB0aW9uIGZvdW5kIGZvciByZXR1cm4gdmFsdWUgb2YgJ3hlbmJ1c19tYXBf
cmluZ192YWxsb2MnDQo+IHhlbmJ1c19jbGllbnQuYzo2MDI6IHdhcm5pbmc6IG1pc3Npbmcg
aW5pdGlhbCBzaG9ydCBkZXNjcmlwdGlvbiBvbiBsaW5lOg0KPiAgICogeGVuYnVzX3VubWFw
X3JpbmcNCj4geGVuYnVzX2NsaWVudC5jOjYxNDogd2FybmluZzogTm8gZGVzY3JpcHRpb24g
Zm91bmQgZm9yIHJldHVybiB2YWx1ZSBvZiAneGVuYnVzX3VubWFwX3JpbmcnDQo+IHhlbmJ1
c19jbGllbnQuYzo3MTU6IHdhcm5pbmc6IG1pc3NpbmcgaW5pdGlhbCBzaG9ydCBkZXNjcmlw
dGlvbiBvbiBsaW5lOg0KPiAgICogeGVuYnVzX3VubWFwX3JpbmdfdmZyZWUNCj4geGVuYnVz
X2NsaWVudC5jOjcyNzogd2FybmluZzogTm8gZGVzY3JpcHRpb24gZm91bmQgZm9yIHJldHVy
biB2YWx1ZSBvZiAneGVuYnVzX3VubWFwX3JpbmdfdmZyZWUnDQo+IHhlbmJ1c19jbGllbnQu
Yzo5MTk6IHdhcm5pbmc6IG1pc3NpbmcgaW5pdGlhbCBzaG9ydCBkZXNjcmlwdGlvbiBvbiBs
aW5lOg0KPiAgICogeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlDQo+IHhlbmJ1c19jbGllbnQu
Yzo5MjY6IHdhcm5pbmc6IE5vIGRlc2NyaXB0aW9uIGZvdW5kIGZvciByZXR1cm4gdmFsdWUg
b2YgJ3hlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZScNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFJh
bmR5IER1bmxhcCA8cmR1bmxhcEBpbmZyYWRlYWQub3JnPg0KPiBDYzogSnVlcmdlbiBHcm9z
cyA8amdyb3NzQHN1c2UuY29tPg0KPiBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVs
bGluaUBrZXJuZWwub3JnPg0KPiBDYzogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5k
cl90eXNoY2hlbmtvQGVwYW0uY29tPg0KPiBDYzogeGVuLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnDQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
DQoNCndpdGggb25lIG5pdCBiZWxvdyAoY2FuIGJlIGZpeGVkIHdoaWxlIGNvbW1pdHRpbmcp
IC4uLg0KDQo+IC0tLQ0KPiAgIGRyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMg
fCAgIDU5ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KPiAgIDEgZmlsZSBjaGFuZ2Vk
LCAzNCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS0gYS9k
cml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NsaWVudC5jIGIvZHJpdmVycy94ZW4veGVuYnVz
L3hlbmJ1c19jbGllbnQuYw0KPiAtLS0gYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2Ns
aWVudC5jDQo+ICsrKyBiL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMNCj4g
QEAgLTExOSwxMSArMTE5LDEzIEBAIEVYUE9SVF9TWU1CT0xfR1BMKHhlbmJ1c19zdHJzdGF0
ZSk7DQo+ICAgICogQGNhbGxiYWNrOiBjYWxsYmFjayB0byByZWdpc3Rlcg0KPiAgICAqDQo+
ICAgICogUmVnaXN0ZXIgYSBAd2F0Y2ggb24gdGhlIGdpdmVuIHBhdGgsIHVzaW5nIHRoZSBn
aXZlbiB4ZW5idXNfd2F0Y2ggc3RydWN0dXJlDQo+IC0gKiBmb3Igc3RvcmFnZSwgYW5kIHRo
ZSBnaXZlbiBAY2FsbGJhY2sgZnVuY3Rpb24gYXMgdGhlIGNhbGxiYWNrLiAgUmV0dXJuIDAg
b24NCj4gLSAqIHN1Y2Nlc3MsIG9yIC1lcnJubyBvbiBlcnJvci4gIE9uIHN1Y2Nlc3MsIHRo
ZSBnaXZlbiBAcGF0aCB3aWxsIGJlIHNhdmVkIGFzDQo+IC0gKiBAd2F0Y2gtPm5vZGUsIGFu
ZCByZW1haW5zIHRoZSBjYWxsZXIncyB0byBmcmVlLiAgT24gZXJyb3IsIEB3YXRjaC0+bm9k
ZSB3aWxsDQo+ICsgKiBmb3Igc3RvcmFnZSwgYW5kIHRoZSBnaXZlbiBAY2FsbGJhY2sgZnVu
Y3Rpb24gYXMgdGhlIGNhbGxiYWNrLiAgT24gc3VjY2VzcywNCj4gKyAqIHRoZSBnaXZlbiBA
cGF0aCB3aWxsIGJlIHNhdmVkIGFzIEB3YXRjaC0+bm9kZSwgYW5kIHJlbWFpbnMgdGhlDQo+
ICsgKiBjYWxsZXIncyB0byBmcmVlLiAgT24gZXJyb3IsIEB3YXRjaC0+bm9kZSB3aWxsDQo+
ICAgICogYmUgTlVMTCwgdGhlIGRldmljZSB3aWxsIHN3aXRjaCB0byAlWGVuYnVzU3RhdGVD
bG9zaW5nLCBhbmQgdGhlIGVycm9yIHdpbGwNCj4gICAgKiBiZSBzYXZlZCBpbiB0aGUgc3Rv
cmUuDQo+ICsgKg0KPiArICogUmV0dXJuczogJTAgb24gc3VjY2VzcyBvciAtZXJybm8gb24g
ZXJyb3INCj4gICAgKi8NCj4gICBpbnQgeGVuYnVzX3dhdGNoX3BhdGgoc3RydWN0IHhlbmJ1
c19kZXZpY2UgKmRldiwgY29uc3QgY2hhciAqcGF0aCwNCj4gICAJCSAgICAgIHN0cnVjdCB4
ZW5idXNfd2F0Y2ggKndhdGNoLA0KPiBAQCAtMTYwLDEyICsxNjIsMTQgQEAgRVhQT1JUX1NZ
TUJPTF9HUEwoeGVuYnVzX3dhdGNoX3BhdGgpOw0KPiAgICAqIEBwYXRoZm10OiBmb3JtYXQg
b2YgcGF0aCB0byB3YXRjaA0KPiAgICAqDQo+ICAgICogUmVnaXN0ZXIgYSB3YXRjaCBvbiB0
aGUgZ2l2ZW4gQHBhdGgsIHVzaW5nIHRoZSBnaXZlbiB4ZW5idXNfd2F0Y2gNCj4gLSAqIHN0
cnVjdHVyZSBmb3Igc3RvcmFnZSwgYW5kIHRoZSBnaXZlbiBAY2FsbGJhY2sgZnVuY3Rpb24g
YXMgdGhlIGNhbGxiYWNrLg0KPiAtICogUmV0dXJuIDAgb24gc3VjY2Vzcywgb3IgLWVycm5v
IG9uIGVycm9yLiAgT24gc3VjY2VzcywgdGhlIHdhdGNoZWQgcGF0aA0KPiAtICogKEBwYXRo
L0BwYXRoMikgd2lsbCBiZSBzYXZlZCBhcyBAd2F0Y2gtPm5vZGUsIGFuZCBiZWNvbWVzIHRo
ZSBjYWxsZXIncyB0bw0KPiAtICoga2ZyZWUoKS4gIE9uIGVycm9yLCB3YXRjaC0+bm9kZSB3
aWxsIGJlIE5VTEwsIHNvIHRoZSBjYWxsZXIgaGFzIG5vdGhpbmcgdG8NCj4gKyAqIHN0cnVj
dHVyZSBmb3Igc3RvcmFnZSwgYW5kIHRoZSBnaXZlbiBAY2FsbGJhY2sgZnVuY3Rpb24gYXMg
dGhlDQo+ICsgKiBjYWxsYmFjay4gIE9uIHN1Y2Nlc3MsIHRoZSB3YXRjaGVkIHBhdGggKEBw
YXRoL0BwYXRoMikgd2lsbCBiZSBzYXZlZA0KPiArICogYXMgQHdhdGNoLT5ub2RlLCBhbmQg
YmVjb21lcyB0aGUgY2FsbGVyJ3MgdG8ga2ZyZWUoKS4NCj4gKyAqIE9uIGVycm9yLCB3YXRj
aC0+bm9kZSB3aWxsIGJlIE5VTEwsIHNvIHRoZSBjYWxsZXIgaGFzIG5vdGhpbmcgdG8NCj4g
ICAgKiBmcmVlLCB0aGUgZGV2aWNlIHdpbGwgc3dpdGNoIHRvICVYZW5idXNTdGF0ZUNsb3Np
bmcsIGFuZCB0aGUgZXJyb3Igd2lsbCBiZQ0KPiAgICAqIHNhdmVkIGluIHRoZSBzdG9yZS4N
Cj4gKyAqDQo+ICsgKiBSZXR1cm5zOiAlMCBvbiBzdWNjZXNzIG9yIC1lcnJubyBvbiBlcnJv
cg0KPiAgICAqLw0KPiAgIGludCB4ZW5idXNfd2F0Y2hfcGF0aGZtdChzdHJ1Y3QgeGVuYnVz
X2RldmljZSAqZGV2LA0KPiAgIAkJCSBzdHJ1Y3QgeGVuYnVzX3dhdGNoICp3YXRjaCwNCj4g
QEAgLTI1NSwxMyArMjU5LDE1IEBAIGFib3J0Og0KPiAgIH0NCj4gICANCj4gICAvKioNCj4g
LSAqIHhlbmJ1c19zd2l0Y2hfc3RhdGUNCj4gKyAqIHhlbmJ1c19zd2l0Y2hfc3RhdGUgLSBz
YXZlIHRoZSBuZXcgc3RhdGUgb2YgYSBkcml2ZXINCj4gICAgKiBAZGV2OiB4ZW5idXMgZGV2
aWNlDQo+ICAgICogQHN0YXRlOiBuZXcgc3RhdGUNCj4gICAgKg0KPiAgICAqIEFkdmVydGlz
ZSBpbiB0aGUgc3RvcmUgYSBjaGFuZ2Ugb2YgdGhlIGdpdmVuIGRyaXZlciB0byB0aGUgZ2l2
ZW4gbmV3X3N0YXRlLg0KPiAtICogUmV0dXJuIDAgb24gc3VjY2Vzcywgb3IgLWVycm5vIG9u
IGVycm9yLiAgT24gZXJyb3IsIHRoZSBkZXZpY2Ugd2lsbCBzd2l0Y2gNCj4gLSAqIHRvIFhl
bmJ1c1N0YXRlQ2xvc2luZywgYW5kIHRoZSBlcnJvciB3aWxsIGJlIHNhdmVkIGluIHRoZSBz
dG9yZS4NCj4gKyAqIE9uIGVycm9yLCB0aGUgZGV2aWNlIHdpbGwgc3dpdGNoIHRvIFhlbmJ1
c1N0YXRlQ2xvc2luZywgYW5kIHRoZSBlcnJvcg0KPiArICogd2lsbCBiZSBzYXZlZCBpbiB0
aGUgc3RvcmUuDQo+ICsgKg0KPiArICogUmV0dXJuczogJTAgb24gc3VjY2VzcyBvciAtZXJy
bm8gb24gZXJyb3INCj4gICAgKi8NCj4gICBpbnQgeGVuYnVzX3N3aXRjaF9zdGF0ZShzdHJ1
Y3QgeGVuYnVzX2RldmljZSAqZGV2LCBlbnVtIHhlbmJ1c19zdGF0ZSBzdGF0ZSkNCj4gICB7
DQo+IEBAIC0zMDUsNyArMzExLDcgQEAgc3RhdGljIHZvaWQgeGVuYnVzX3ZhX2Rldl9lcnJv
cihzdHJ1Y3QgeA0KPiAgIH0NCj4gICANCj4gICAvKioNCj4gLSAqIHhlbmJ1c19kZXZfZXJy
b3INCj4gKyAqIHhlbmJ1c19kZXZfZXJyb3IgLSBwbGFjZSBhbiBlcnJvciBtZXNzYWdlIGlu
dG8gdGhlIHN0b3JlDQo+ICAgICogQGRldjogeGVuYnVzIGRldmljZQ0KPiAgICAqIEBlcnI6
IGVycm9yIHRvIHJlcG9ydA0KPiAgICAqIEBmbXQ6IGVycm9yIG1lc3NhZ2UgZm9ybWF0DQo+
IEBAIC0zMjQsNyArMzMwLDcgQEAgdm9pZCB4ZW5idXNfZGV2X2Vycm9yKHN0cnVjdCB4ZW5i
dXNfZGV2aQ0KPiAgIEVYUE9SVF9TWU1CT0xfR1BMKHhlbmJ1c19kZXZfZXJyb3IpOw0KPiAg
IA0KPiAgIC8qKg0KPiAtICogeGVuYnVzX2Rldl9mYXRhbA0KPiArICogeGVuYnVzX2Rldl9m
YXRhbCAtIHB1dCBhbiBlcnJvciBtZXNzYWdlcyBpbnRvIHRoZSBzdG9yZSBhbmQgdGhlbiBz
aHV0ZG93bg0KPiAgICAqIEBkZXY6IHhlbmJ1cyBkZXZpY2UNCj4gICAgKiBAZXJyOiBlcnJv
ciB0byByZXBvcnQNCj4gICAgKiBAZm10OiBlcnJvciBtZXNzYWdlIGZvcm1hdA0KPiBAQCAt
MzQ2LDcgKzM1Miw3IEBAIHZvaWQgeGVuYnVzX2Rldl9mYXRhbChzdHJ1Y3QgeGVuYnVzX2Rl
dmkNCj4gICB9DQo+ICAgRVhQT1JUX1NZTUJPTF9HUEwoeGVuYnVzX2Rldl9mYXRhbCk7DQo+
ICAgDQo+IC0vKioNCj4gKy8qDQo+ICAgICogRXF1aXZhbGVudCB0byB4ZW5idXNfZGV2X2Zh
dGFsKGRldiwgZXJyLCBmbXQsIGFyZ3MpLCBidXQgaGVscHMNCj4gICAgKiBhdm9pZGluZyBy
ZWN1cnNpb24gd2l0aGluIHhlbmJ1c19zd2l0Y2hfc3RhdGUuDQo+ICAgICovDQo+IEBAIC00
NTMsNyArNDU5LDcgQEAgdm9pZCB4ZW5idXNfdGVhcmRvd25fcmluZyh2b2lkICoqdmFkZHIs
DQo+ICAgfQ0KPiAgIEVYUE9SVF9TWU1CT0xfR1BMKHhlbmJ1c190ZWFyZG93bl9yaW5nKTsN
Cj4gICANCj4gLS8qKg0KPiArLyoNCj4gICAgKiBBbGxvY2F0ZSBhbiBldmVudCBjaGFubmVs
IGZvciB0aGUgZ2l2ZW4geGVuYnVzX2RldmljZSwgYXNzaWduaW5nIHRoZSBuZXdseQ0KPiAg
ICAqIGNyZWF0ZWQgbG9jYWwgcG9ydCB0byAqcG9ydC4gIFJldHVybiAwIG9uIHN1Y2Nlc3Ms
IG9yIC1lcnJubyBvbiBlcnJvci4gIE9uDQo+ICAgICogZXJyb3IsIHRoZSBkZXZpY2Ugd2ls
bCBzd2l0Y2ggdG8gWGVuYnVzU3RhdGVDbG9zaW5nLCBhbmQgdGhlIGVycm9yIHdpbGwgYmUN
Cj4gQEAgLTQ3OSw3ICs0ODUsNyBAQCBpbnQgeGVuYnVzX2FsbG9jX2V2dGNobihzdHJ1Y3Qg
eGVuYnVzX2RlDQo+ICAgRVhQT1JUX1NZTUJPTF9HUEwoeGVuYnVzX2FsbG9jX2V2dGNobik7
DQo+ICAgDQo+ICAgDQo+IC0vKioNCj4gKy8qDQo+ICAgICogRnJlZSBhbiBleGlzdGluZyBl
dmVudCBjaGFubmVsLiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtZXJybm8gb24gZXJyb3Iu
DQo+ICAgICovDQo+ICAgaW50IHhlbmJ1c19mcmVlX2V2dGNobihzdHJ1Y3QgeGVuYnVzX2Rl
dmljZSAqZGV2LCBldnRjaG5fcG9ydF90IHBvcnQpDQo+IEBAIC00OTksNyArNTA1LDcgQEAg
RVhQT1JUX1NZTUJPTF9HUEwoeGVuYnVzX2ZyZWVfZXZ0Y2huKTsNCj4gICANCj4gICANCj4g
ICAvKioNCj4gLSAqIHhlbmJ1c19tYXBfcmluZ192YWxsb2MNCj4gKyAqIHhlbmJ1c19tYXBf
cmluZ192YWxsb2MgLSBhbGxvY2F0ZSAmIG1hcCBwYWdlcyBvZiBWQSBzcGFjZQ0KPiAgICAq
IEBkZXY6IHhlbmJ1cyBkZXZpY2UNCj4gICAgKiBAZ250X3JlZnM6IGdyYW50IHJlZmVyZW5j
ZSBhcnJheQ0KPiAgICAqIEBucl9ncmVmczogbnVtYmVyIG9mIGdyYW50IHJlZmVyZW5jZXMN
Cj4gQEAgLTUwNywxMCArNTEzLDExIEBAIEVYUE9SVF9TWU1CT0xfR1BMKHhlbmJ1c19mcmVl
X2V2dGNobik7DQo+ICAgICoNCj4gICAgKiBNYXAgQG5yX2dyZWZzIHBhZ2VzIG9mIG1lbW9y
eSBpbnRvIHRoaXMgZG9tYWluIGZyb20gYW5vdGhlcg0KPiAgICAqIGRvbWFpbidzIGdyYW50
IHRhYmxlLiAgeGVuYnVzX21hcF9yaW5nX3ZhbGxvYyBhbGxvY2F0ZXMgQG5yX2dyZWZzDQo+
IC0gKiBwYWdlcyBvZiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UsIG1hcHMgdGhlIHBhZ2VzIHRv
IHRoYXQgYWRkcmVzcywgYW5kDQo+IC0gKiBzZXRzICp2YWRkciB0byB0aGF0IGFkZHJlc3Mu
ICBSZXR1cm5zIDAgb24gc3VjY2VzcywgYW5kIC1lcnJubyBvbg0KPiAtICogZXJyb3IuIElm
IGFuIGVycm9yIGlzIHJldHVybmVkLCBkZXZpY2Ugd2lsbCBzd2l0Y2ggdG8NCj4gKyAqIHBh
Z2VzIG9mIHZpcnR1YWwgYWRkcmVzcyBzcGFjZSwgbWFwcyB0aGUgcGFnZXMgdG8gdGhhdCBh
ZGRyZXNzLCBhbmQgc2V0cw0KPiArICogKnZhZGRyIHRvIHRoYXQgYWRkcmVzcy4gIElmIGFu
IGVycm9yIGlzIHJldHVybmVkLCBkZXZpY2Ugd2lsbCBzd2l0Y2ggdG8NCj4gICAgKiBYZW5i
dXNTdGF0ZUNsb3NpbmcgYW5kIHRoZSBlcnJvciBtZXNzYWdlIHdpbGwgYmUgc2F2ZWQgaW4g
WGVuU3RvcmUuDQo+ICsgKg0KPiArICogUmV0dXJuczogJTAgb24gc3VjY2VzcyBvciAtZXJy
bm8gb24gZXJyb3INCj4gICAgKi8NCj4gICBpbnQgeGVuYnVzX21hcF9yaW5nX3ZhbGxvYyhz
dHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LCBncmFudF9yZWZfdCAqZ250X3JlZnMsDQo+ICAg
CQkJICAgdW5zaWduZWQgaW50IG5yX2dyZWZzLCB2b2lkICoqdmFkZHIpDQo+IEBAIC01OTks
MTQgKzYwNiwxNSBAQCBzdGF0aWMgaW50IF9feGVuYnVzX21hcF9yaW5nKHN0cnVjdCB4ZW5i
DQo+ICAgfQ0KPiAgIA0KPiAgIC8qKg0KPiAtICogeGVuYnVzX3VubWFwX3JpbmcNCj4gKyAq
IHhlbmJ1c191bm1hcF9yaW5nIC0gdW5tYXAgbWVtb3J5IGZyb20gYW5vdGhlciBkb21haW4N
Cj4gICAgKiBAZGV2OiB4ZW5idXMgZGV2aWNlDQo+ICAgICogQGhhbmRsZXM6IGdyYW50IGhh
bmRsZSBhcnJheQ0KPiAgICAqIEBucl9oYW5kbGVzOiBudW1iZXIgb2YgaGFuZGxlcyBpbiB0
aGUgYXJyYXkNCj4gICAgKiBAdmFkZHJzOiBhZGRyZXNzZXMgdG8gdW5tYXANCj4gICAgKg0K
PiAgICAqIFVubWFwIG1lbW9yeSBpbiB0aGlzIGRvbWFpbiB0aGF0IHdhcyBpbXBvcnRlZCBm
cm9tIGFub3RoZXIgZG9tYWluLg0KPiAtICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIHJl
dHVybnMgR05UU1RfKiBvbiBlcnJvcg0KPiArICoNCj4gKyAqIFJldHVybnM6ICUwIG9uIHN1
Y2Nlc3Mgb3IgR05UU1RfKiBvbiBlcnJvcg0KPiAgICAqIChzZWUgeGVuL2luY2x1ZGUvaW50
ZXJmYWNlL2dyYW50X3RhYmxlLmgpLg0KPiAgICAqLw0KPiAgIHN0YXRpYyBpbnQgeGVuYnVz
X3VubWFwX3Jpbmcoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwgZ3JhbnRfaGFuZGxlX3Qg
KmhhbmRsZXMsDQo+IEBAIC03MTIsNyArNzIwLDcgQEAgc3RhdGljIGludCB4ZW5idXNfbWFw
X3JpbmdfaHZtKHN0cnVjdCB4ZQ0KPiAgIH0NCj4gICANCj4gICAvKioNCj4gLSAqIHhlbmJ1
c191bm1hcF9yaW5nX3ZmcmVlDQo+ICsgKiB4ZW5idXNfdW5tYXBfcmluZ192ZnJlZSAtIHVu
bWFwIGEgcGFnZSBvZiBtZW1vcnkgZnJvbSBhbm90aGVyIGRvbWFpbg0KPiAgICAqIEBkZXY6
IHhlbmJ1cyBkZXZpY2UNCj4gICAgKiBAdmFkZHI6IGFkZHIgdG8gdW5tYXANCj4gICAgKg0K
PiBAQCAtNzIwLDcgKzcyOCw4IEBAIHN0YXRpYyBpbnQgeGVuYnVzX21hcF9yaW5nX2h2bShz
dHJ1Y3QgeGUNCj4gICAgKiBVbm1hcCBhIHBhZ2Ugb2YgbWVtb3J5IGluIHRoaXMgZG9tYWlu
IHRoYXQgd2FzIGltcG9ydGVkIGZyb20gYW5vdGhlciBkb21haW4uDQo+ICAgICogVXNlIHhl
bmJ1c191bm1hcF9yaW5nX3ZmcmVlIGlmIHlvdSBtYXBwZWQgaW4geW91ciBtZW1vcnkgd2l0
aA0KPiAgICAqIHhlbmJ1c19tYXBfcmluZ192YWxsb2MgKGl0IHdpbGwgZnJlZSB0aGUgdmly
dHVhbCBhZGRyZXNzIHNwYWNlKS4NCj4gLSAqIFJldHVybnMgMCBvbiBzdWNjZXNzIGFuZCBy
ZXR1cm5zIEdOVFNUXyogb24gZXJyb3INCj4gKyAqDQo+ICsgKiBSZXR1cm5zOiAlMCBvbiBz
dWNjZXNzIG9yIEdOVFNUXyogb24gZXJyb3INCj4gICAgKiAoc2VlIHhlbi9pbmNsdWRlL2lu
dGVyZmFjZS9ncmFudF90YWJsZS5oKS4NCj4gICAgKi8NCj4gICBpbnQgeGVuYnVzX3VubWFw
X3JpbmdfdmZyZWUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwgdm9pZCAqdmFkZHIpDQo+
IEBAIC05MTYsMTAgKzkyNSwxMCBAQCBzdGF0aWMgaW50IHhlbmJ1c191bm1hcF9yaW5nX2h2
bShzdHJ1Y3QNCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+IC0gKiB4ZW5idXNfcmVhZF9kcml2
ZXJfc3RhdGUNCj4gKyAqIHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZSAtIHJlYWQgZnJvbSBz
dGF0ZSBmcm9tIGEgc3RvcmUgcGF0aA0KDQpzL3JlYWQgZnJvbS9yZWFkLw0KDQo+ICAgICog
QHBhdGg6IHBhdGggZm9yIGRyaXZlcg0KPiAgICAqDQo+IC0gKiBSZXR1cm4gdGhlIHN0YXRl
IG9mIHRoZSBkcml2ZXIgcm9vdGVkIGF0IHRoZSBnaXZlbiBzdG9yZSBwYXRoLCBvcg0KPiAr
ICogUmV0dXJuczogdGhlIHN0YXRlIG9mIHRoZSBkcml2ZXIgcm9vdGVkIGF0IHRoZSBnaXZl
biBzdG9yZSBwYXRoLCBvcg0KPiAgICAqIFhlbmJ1c1N0YXRlVW5rbm93biBpZiBubyBzdGF0
ZSBjYW4gYmUgcmVhZC4NCj4gICAgKi8NCj4gICBlbnVtIHhlbmJ1c19zdGF0ZSB4ZW5idXNf
cmVhZF9kcml2ZXJfc3RhdGUoY29uc3QgY2hhciAqcGF0aCkNCg0KDQpKdWVyZ2VuDQo=
--------------Eg6PYKQPf2TfVPQtJ0Y0P0Vc
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-----

--------------Eg6PYKQPf2TfVPQtJ0Y0P0Vc--

--------------aw585y7yd3t3iOQghrKsc3rB--

--------------KA4uvbTDacHnAcU0PyF53DKY
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/Ey8FAmVxkBUFAwAAAAAACgkQsN6d1ii/Ey9t
Qgf+JWzDuX77rcslz0RTVDEdLeav33Mpc23PXi2VnMT0Q/babhtLi60glOR5oREIhg+3u01wKtyF
WrrMCmeg4ScgOeoNlkCR1/P0NmdKyxGAx6RlBqk9kx478053P5lm6gf6+viMuVClzjEadt1QzDBb
+8RC0t1UWIMn9tYOWpmkJNvRd8eHMCUrd7XHB37s5IIQXoNMDfuK+mg6cN/NR9zwSXbw7Fwvytgn
f2YAfqNryP48njFM53hGAFW+WGz7VC2pYA2M0MAwv+/xsgGejNELTxjxL3uJFgZhRmLg3kL98kMW
o6nAuhDuhAFNKTVzNoxSbdfG/6/eVpBOY+jYfEvrgA==
=LQbD
-----END PGP SIGNATURE-----

--------------KA4uvbTDacHnAcU0PyF53DKY--


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:30:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:30:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649664.1014454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAiJ-0003bs-J8; Thu, 07 Dec 2023 09:30:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649664.1014454; Thu, 07 Dec 2023 09:30:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAiJ-0003bj-Gf; Thu, 07 Dec 2023 09:30:35 +0000
Received: by outflank-mailman (input) for mailman id 649664;
 Thu, 07 Dec 2023 09:30: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBAiH-0003bb-G9
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:30:33 +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 441ddddf-94e3-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 10:30:31 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c09d62b70so8627655e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 01:30:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o11-20020a05600c510b00b0040a3f9862e3sm452187wms.1.2023.12.07.01.30.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 01:30:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 441ddddf-94e3-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701941432; x=1702546232; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tRaJkaGrkxCaWKa9Vt2fuICxmF6Alx7gwE7p2GEtRx4=;
        b=NgG/tFDxcRD3+zvalGmWM6d4O82HDqddzo8HsQyeIe6z1WV/X80xzBAoTPfXBm4vLX
         QSoZUbxo2j1Viqhi7zlbmBeFKw7OkojOxFfRFQn/5u8UL7ZS9cTqZ+QY7EKcI58TAznN
         MQKmJmlE0gCRMO12KxZk0tQbS/nwArTb/74KOC4FN5Pxpojm2LaqmECbMRwM//RudV59
         61f2ZvUCnYvAvoRH4Reu8DhWAv0+Ngr33Ynyb7phzedFL0TTWLF0Pp4JRymM7U2qh8Xb
         09r7ic6h62Yvc4J3ZxuzQbhbypAlohaPSqDozIE4vx/G4/sTtizhwqHl5ox6ZZjGjZbn
         S15Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701941432; x=1702546232;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tRaJkaGrkxCaWKa9Vt2fuICxmF6Alx7gwE7p2GEtRx4=;
        b=cQJDZ6LaN3HJ6DTszwaaetP3yEKKEWQ/dB0PWEJSCa7XR9QzEhLNd0gbjm4B6w8hGB
         46QohbgOc5fj7L8kpMn9zYVd7geaKfc9rpsj33jEylFTkxX7PPw8k3XhBh/Br02VCQdG
         ECQ1l0En4STECC6v+ASKIMeDVrOUfJmY3d7IpdDola93sQXX4gt+Yn9wZ/WQ1X8RYhjS
         cQ8clYHrxa9MJhAGz0XXhK6PaUF6Ej1s9Wae1c19xY7K2thM+GA1+KRtTDMLSGbM6aXS
         3aH6rICac3ljwRLuOebc9GHNp9+K8xZJ14qZyYnDmsRNI/a6VHkpkPTQFugUgm2y4JGM
         OePA==
X-Gm-Message-State: AOJu0YxnnxRopmMKzDj1VX6tSSKHFK9mZP/RQRfnTfH0F2jH9K61QdGU
	dVjXb3K6srg4I7HFHbl4DEkS
X-Google-Smtp-Source: AGHT+IGj5jEv6YPUjzNxFDtZ9g7T9nXd1zOEgSkDzBIR3AKEtdXGowMNbIZK16j3ilQE16jySjs1Vg==
X-Received: by 2002:a05:600c:524f:b0:40b:5e21:c5ec with SMTP id fc15-20020a05600c524f00b0040b5e21c5ecmr1025435wmb.186.1701941431832;
        Thu, 07 Dec 2023 01:30:31 -0800 (PST)
Message-ID: <fab5cc9d-d97e-405d-9f7a-1b86de097aab@suse.com>
Date: Thu, 7 Dec 2023 10:30:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
To: Juergen Gross <jgross@suse.com>
Cc: Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, xen-devel@lists.xenproject.org
References: <20231121114048.31294-1-jgross@suse.com>
 <1a6f8027-0e49-4975-8ab1-998a9b4cebee@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: <1a6f8027-0e49-4975-8ab1-998a9b4cebee@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 09:26, Juergen Gross wrote:
> On 21.11.23 12:40, Juergen Gross wrote:
>> Remove some command line options which have no real use case.
>>
>> Changes in V2:
>> - moved removal of "-N" into last patch of the series, as this is the
>>    only option which seems to have a use case (OTOH using it has some
>>    downsides as well).
>>
>> Juergen Gross (5):
>>    tools/xenstored: remove "-D" command line parameter
>>    tools/xenstored: remove "-V" command line option
>>    tools/xenstored: remove the "-P" command line option
>>    tools/xenstored: remove the "-R" command line option
>>    tools/xenstored: remove "-N" command line option
>>
>>   tools/xenstored/core.c | 81 +++++++-----------------------------------
>>   1 file changed, 12 insertions(+), 69 deletions(-)
>>
> 
> I think at least patches 1-4 can go in as they all have the required Acks.

I'll try to remember to include them in the next swipe. I was kind of
assuming Julien would be taking care of them.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:36:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:36:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649669.1014465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAng-0004F6-6s; Thu, 07 Dec 2023 09:36:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649669.1014465; Thu, 07 Dec 2023 09:36:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAng-0004Ez-3o; Thu, 07 Dec 2023 09:36:08 +0000
Received: by outflank-mailman (input) for mailman id 649669;
 Thu, 07 Dec 2023 09:36: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=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBAnf-0004Et-IE
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:36:07 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b0d5527-94e4-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:36:05 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-54c1cd8d239so928503a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 01:36:05 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 dg11-20020a0564021d0b00b0054cb66d7669sm551709edb.11.2023.12.07.01.36.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 01:36:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b0d5527-94e4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701941765; x=1702546565; 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=OuH198nXPiUO2AVQVCwloRa1PPvxSz5YuMHJSO7PiFQ=;
        b=Hfb1vtXpT3FWxGA+rNvsRo9/Gg7ikMm5Zs2TTE3qdQwTZllZTvAhfGJm0xJWklpdk8
         D21GVUEyhw7SoeXdele+voMv+9DPfU25eqEhoh7EqRUTPWm6IWTyNMbg+3A7wMx91LEh
         eiTcH0zisz/gG4F3nv4CCwYCMnw5k3glgLufIxV0QQ5WAIi5RI3BYLfHAsMvOxX6nv4+
         Q0JoZgKTlcaB35RzkXmwoT5bI/EM55CZyUPOyH4rmsfNWgmWR9Z4nVjCUWwvJZnvXCmT
         WnAH2hJMQ2AFbhKhXQf4x4L4H65moU5wt5PkLws3U8qaQ0caTIoOYKFOeR9CACOfYrjm
         eUBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701941765; x=1702546565;
        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=OuH198nXPiUO2AVQVCwloRa1PPvxSz5YuMHJSO7PiFQ=;
        b=IlsspGdFQDjOxH1ToAgy89RPN2P9q1xRmHugjiS2NL1HpU/bGK9p/w96a2JyX4Yy2/
         crq2DmxsbkRxm+TEuVZyxsGdu0YQm5+V1weQuOUXP58Clmd6UoCkEOhfqTHcSPPb90hQ
         Myi1h8W9Ax0QHRIHg/jcPNzDAezxKsFHSiXhxVi2jdxcq6mUT9poiBXkgvAg2kiYIfV1
         XPOyqqpTOfZS0CBM/gpVE9Hi18/6aG9EW67ASot4HYJVNxSwrB/+CSRB2o/mYOpS2FUl
         5dmeCg/Y7YWYt/5zTScSF9zFgw8z1N/sTXM94/ZnSTvqwqCpvcpoO+0VwpArljBKG4ey
         cBZA==
X-Gm-Message-State: AOJu0YzWbtqJ8Z7HcjD1GnCx6S7UIZQmwYXqJJKAu1kE/dVkUHjzhyLm
	zVC40dKIbdKIrwQwxNsm5cA=
X-Google-Smtp-Source: AGHT+IGcmMWXuniL/phHqsXe7fS5KMFMV24FqW4bRkL34B5ChqtlkVvwGiHZZZKagtFiLI2zMBE/NQ==
X-Received: by 2002:a50:d7d6:0:b0:548:68a3:618e with SMTP id m22-20020a50d7d6000000b0054868a3618emr677096edj.9.1701941764750;
        Thu, 07 Dec 2023 01:36:04 -0800 (PST)
Message-ID: <ed7a390de9d84909a2c479411120c6ab9a5ba987.camel@gmail.com>
Subject: Re: [PATCH v2 02/39] xen/riscv: use some asm-generic headers
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Thu, 07 Dec 2023 11:36:03 +0200
In-Reply-To: <3d7b5337-7a0c-472c-8416-453194e8c38d@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <90beae5dfa2bc4c27108ca4dea630306dfdfe81f.1700761381.git.oleksii.kurochko@gmail.com>
	 <3d7b5337-7a0c-472c-8416-453194e8c38d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Tue, 2023-12-05 at 16:40 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Some headers are the same as asm-generic verions of them
> > so use them instead of arch-specific headers.
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> Acked-by: Jan Beulich <jbeulich@suse.com>
> assuming ...
>=20
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/Makefile
> > @@ -0,0 +1,14 @@
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +generic-y +=3D altp2m.h
> > +generic-y +=3D device.h
> > +generic-y +=3D div64.h
> > +generic-y +=3D hardirq.h
> > +generic-y +=3D hypercall.h
> > +generic-y +=3D iocap.h
> > +generic-y +=3D monitor.h
> > +generic-y +=3D numa.h
> > +generic-y +=3D paging.h
> > +generic-y +=3D percpu.h
> > +generic-y +=3D random.h
> > +generic-y +=3D softirq.h
> > +generic-y +=3D vm_event.h
>=20
> ... these headers are indeed all going to appear.
Thanks.

Only 4 (div64.h, monitor.h, numa.h, softirq.h) of them aren't appearing
in staging. It only needs some ACKs from Arm and PPC maintainers.

But if something changes, I'll update riscv/include/asm/Makefile

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:38:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:38:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649672.1014474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAq8-00056S-KJ; Thu, 07 Dec 2023 09:38:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649672.1014474; Thu, 07 Dec 2023 09:38:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAq8-00056L-HN; Thu, 07 Dec 2023 09:38:40 +0000
Received: by outflank-mailman (input) for mailman id 649672;
 Thu, 07 Dec 2023 09:38:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3y0a=HS=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBAq7-00056B-I2
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:38:39 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20615.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65800c01-94e4-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:38:37 +0100 (CET)
Received: from DS7P222CA0013.NAMP222.PROD.OUTLOOK.COM (2603:10b6:8:2e::22) by
 DM4PR12MB6109.namprd12.prod.outlook.com (2603:10b6:8:ae::11) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.25; Thu, 7 Dec 2023 09:38:32 +0000
Received: from CY4PEPF0000EE36.namprd05.prod.outlook.com
 (2603:10b6:8:2e:cafe::b8) by DS7P222CA0013.outlook.office365.com
 (2603:10b6:8:2e::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Thu, 7 Dec 2023 09:38:32 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE36.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.26 via Frontend Transport; Thu, 7 Dec 2023 09:38:32 +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.34; Thu, 7 Dec
 2023 03:38:31 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 7 Dec
 2023 03:38:31 -0600
Received: from [10.71.193.58] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Thu, 7 Dec 2023 03:38:30 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65800c01-94e4-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HJboShSG4sXGacjYm4dbXk74VpUaWOzBFSyJbfec21YzAHGiYg8XaS0K1kFokCnN5TvrZ9IrHb3mI00iq647PNNTyNTdkLOULOnUQqnfwLWBTQjB/ZCVvAQflv65VApUuzj14f2xZUAldmMLqUmQ7u/c3SieuwUMMuApClRWK1/pshvwhCQOstV1F4INBgCG/63ymcb1TJEd5gh40rI1JzJ5fvkj6ljPIVOUqphRQyD2iCguZ998yYKeXNCIoSyNHoAOhoXQ6NifO3UvPbSUOsFFxoOO/t3V2xkxEdaKKoa9Q1xBGzlu5y9InNdyGq8Jwn6ri5gEH7TYu91sftxLDQ==
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=ohhPVOq4uyuU6USWFJ0krj831+BS4ot3JhlRc9Iha0g=;
 b=lNXocBLVOk3tyn5YrSS53W5oS8kBjjLiYTYd/Gy2OyMH8h47Xqpm5yqcXrqLI3yaiGufBZAYUmiLAFG7P8xmG7dkgRUdkQsT73rODf721MoR8MW/d24bZZ8FgoUfh53+GhN56zL0gFN8sXwh1qe2/CUU4bRPRwMyN6iNabPw0GdPANtgjzDTFF7oI0TeosSNj6SbIdf2SlWPTcuv7nNJE4ne0cVc+JJ1ugcy4L4+1O55CugezwfoMDQgtjMS8nVrzZPSNONfr3ZPDLrWWYdEBl470BfzDvos7AZLXUUY82c4etiBN3ijuXR4ZN+wOHwZN6pIUWf9FWH6mncEn2PoKg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ohhPVOq4uyuU6USWFJ0krj831+BS4ot3JhlRc9Iha0g=;
 b=D8xqrFWsMHjaYVBwQY7CpgE3CzFqmUnPWSuNXaanWjPS+I+IaOSZwJGuLbOIAhD/DHxGm225bZZRrNrvmreRt4cmYm3cE+pD2+HmswJpvcYBNFFGNvlH0+A7KAmTl2Sk0Z/Lf3BZ4HTlZoMb8GYgFYAb9CDvbk2Z0G9GNyVFuNA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <992ba724-8dfa-4285-8e92-16dfb870e4ed@amd.com>
Date: Thu, 7 Dec 2023 10:38:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 04/11] xen/arm: introduce allocate_domheap_memory and
 guest_physmap_memory
To: Penny Zheng <Penny.Zheng@arm.com>, <xen-devel@lists.xenproject.org>
CC: <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-5-Penny.Zheng@arm.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231206090623.1932275-5-Penny.Zheng@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE36:EE_|DM4PR12MB6109:EE_
X-MS-Office365-Filtering-Correlation-Id: 2ad3c977-fa37-4c04-439d-08dbf70846e1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	b4nmBIeA3dEf5bmjQ7nsAfFkVa2Sy4d4+2or4wWbDAmqTTpC+8J4sKh4S7ybY+EgNe5VXe2yXKdjaHEkrQwDimfj5orvo8zjpnsbtSm9Rl0A88JgLE7Zdh2ex9kip41OjpsMc9gP88WTy/+5uc+Cw4LoPz0pCh0/nezn7CmgBa7b2x0Q7okY2jGy3501r3iPbmSpGW8ygknT5rfroF/zwyWe0Fq9o0z3Q9+/8q5WJF7YY1A1QgF68f4+6Z3P8GbM9IwTYC02mbeKPt2OQ13ULSIytgcN6bvfkwePFZYKWSVxva4hx1AvpeRSstUgJCTcpYU2Xx1a350I//VPrsncKV4sxcxDflhVfgckfgEbZYKiqsaZ1xx0gfXO5HbscOsQ427r9NjsJ7pb+jy51uW/yAwRTdzx6ilzyQsTiAcbdz0eetP2fTnR6dyCaj80Akma3jqwOcv1a2HNVtAaU+FyWw94LbTN7RJOWdiMhbtz56oe9GK5KAwV1EXXfqimoQHSInhIzzdkFGkwGvjTwW3B7Jds6ytMQ+yhUycW5c7NZyHpl9LL2rp8CtNmCwcAkHHI2Axu+6QrUWU0kSnn4luxEUl4GF2aOQ1OcARGNqIumRRIK/iX+iSsHQYQ3QCc5JFhvkQGARNxOXxUCByXv2HGC7hYn41pHMrcjbSYUFvD+Nt58AneP5yheo9w7G3D1FtuzRfYnIfPtgAQWXKFFRkO9nHpPgzwN5v1Mi4/c1i7eBl151cyJPjZgUgsS6g1Cl1SZ8wXOKsfxMPuO/NJ0q37s3zUBcNqZhTqUnc8EpxlhzoLg9nssqx0BBETaPhfXF28
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:(13230031)(4636009)(39860400002)(346002)(376002)(396003)(136003)(230922051799003)(64100799003)(1800799012)(186009)(451199024)(82310400011)(40470700004)(46966006)(36840700001)(54906003)(8676002)(8936002)(110136005)(40480700001)(316002)(16576012)(47076005)(36860700001)(70206006)(44832011)(4326008)(31686004)(70586007)(426003)(40460700003)(26005)(336012)(5660300002)(2616005)(82740400003)(6666004)(36756003)(83380400001)(478600001)(81166007)(53546011)(31696002)(86362001)(41300700001)(356005)(2906002)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2023 09:38:32.2617
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ad3c977-fa37-4c04-439d-08dbf70846e1
X-MS-Exchange-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:
	CY4PEPF0000EE36.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6109

Hi Penny,

On 06/12/2023 10:06, Penny Zheng wrote:
> 
> 
> We split the code of allocate_bank_memory into two parts,
> allocate_domheap_memory and guest_physmap_memory.
> 
> One is about allocating guest RAM from heap, which could be re-used later for
> allocating static shared memory from heap when host address is not provided.
> The other is building up guest P2M mapping.
> 
> We also define a set of MACRO helpers to access common fields in data
> structure of "meminfo" type, e.g. "struct meminfo" is one of them, and
> later new "struct shm_meminfo" is also one of them.
> This kind of structures must have the following characteristics:
> - an array of "struct membank"
> - a member called "nr_banks" indicating current array size
> - a field indicating the maximum array size
> When introducing a new data structure, according callbacks with function type
> "retrieve_fn" shall be defined for using MACRO helpers.
> This commit defines callback "retrieve_meminfo" for data structure
> "struct meminfo".
This patch introduces quite a bit of complexity with all these helpers, so adding a rationale is crucial.
AFAIU, all of this is because we don't want to reuse struct meminfo where NR_MEM_BANKS is defined as 256,
which is a lot more than we need for shmem. Am I right?

I would like others to share the opinion here as well.

If we decide to go with this approach, what about static inline helpers instead of macros here for type checking and overall
protection such as when there is no retriever function defined (at the moment it would most probably result
in some trap).

> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> ---
> v1 -> v2:
> -  define a set of MACRO helpers to access common fields in data structure of
> "meminfo" type. "struct meminfo" is one of them, and according callback
> "retrieve_meminfo" is also introduced here.
> - typo of changing 1ULL to 1UL
> ---
> v2 -> v3
> - rebase and no changes
> ---
> v3 -> v4:
> rebase and no change
> ---
> v4 -> v5:
> rebase and no change
> ---
>  xen/arch/arm/domain_build.c      | 119 +++++++++++++++++++++++++------
>  xen/arch/arm/include/asm/setup.h |  33 +++++++++
>  2 files changed, 129 insertions(+), 23 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 64ae944431..a8bc78baa5 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -51,6 +51,28 @@ boolean_param("ext_regions", opt_ext_regions);
>  static u64 __initdata dom0_mem;
>  static bool __initdata dom0_mem_set;
> 
> +#ifdef CONFIG_DOM0LESS_BOOT
> +static void __init retrieve_meminfo(void *mem, unsigned int *max_mem_banks,
const void *mem

> +                                    struct membank **bank,
> +                                    unsigned int **nr_banks)
> +{
> +    struct meminfo *meminfo = (struct meminfo *)mem;
> +
> +    if ( max_mem_banks )
> +        *max_mem_banks = NR_MEM_BANKS;
> +
> +    if ( nr_banks )
> +        *nr_banks = &(meminfo->nr_banks);
> +
> +    if ( bank )
> +        *bank = meminfo->bank;
> +}
> +
> +retrieve_fn __initdata retrievers[MAX_MEMINFO_TYPE] = {
meminfo_retrievers

> +    [NORMAL_MEMINFO] = retrieve_meminfo,
> +};
> +#endif
> +
>  static int __init parse_dom0_mem(const char *s)
>  {
>      dom0_mem_set = true;
> @@ -415,32 +437,20 @@ static void __init allocate_memory_11(struct domain *d,
>  }
> 
>  #ifdef CONFIG_DOM0LESS_BOOT
> -bool __init allocate_bank_memory(struct domain *d, struct kernel_info *kinfo,
> -                                 gfn_t sgfn, paddr_t tot_size)
> +static bool __init allocate_domheap_memory(struct domain *d,
> +                                           paddr_t tot_size,
> +                                           void *mem, enum meminfo_type type)
>  {
> -    int res;
>      struct page_info *pg;
> -    struct membank *bank;
>      unsigned int max_order = ~0;
> -
> -    /*
> -     * allocate_bank_memory can be called with a tot_size of zero for
> -     * the second memory bank. It is not an error and we can safely
> -     * avoid creating a zero-size memory bank.
> -     */
> -    if ( tot_size == 0 )
> -        return true;
> -
> -    bank = &kinfo->mem.bank[kinfo->mem.nr_banks];
> -    bank->start = gfn_to_gaddr(sgfn);
> -    bank->size = tot_size;
> +    unsigned int *nr_banks = GET_NR_BANKS(mem, type);
what if mem is NULL? You would end up dereferencing NULL pointer

> 
>      while ( tot_size > 0 )
>      {
>          unsigned int order = get_allocation_size(tot_size);
> +        struct membank *membank;
> 
>          order = min(max_order, order);
> -
>          pg = alloc_domheap_pages(d, order, 0);
>          if ( !pg )
>          {
> @@ -460,15 +470,78 @@ bool __init allocate_bank_memory(struct domain *d, struct kernel_info *kinfo,
>              continue;
>          }
> 
> -        res = guest_physmap_add_page(d, sgfn, page_to_mfn(pg), order);
> -        if ( res )
> -        {
> -            dprintk(XENLOG_ERR, "Failed map pages to DOMU: %d", res);
> +        if ( *nr_banks == MAX_MEM_BANKS(type) )
shouldn't you move this check at the beginning of the loop before the allocation?
what if you enter this function with this condition being true.

>              return false;
> -        }
> +
The name of the function does not reflect that apart from allocation you will also
register the allocated memory regions.

> +        membank = GET_MEMBANK(mem, type, *nr_banks);
> +        membank->start = mfn_to_maddr(page_to_mfn(pg));
page_to_maddr

> +        membank->size = 1ULL << (PAGE_SHIFT + order);
> +        (*nr_banks)++;
> +        tot_size -= membank->size;
> +    }
> +
> +    return true;
> +}
> +
> +static int __init guest_physmap_memory(struct domain *d,
> +                                       void *mem, enum meminfo_type type,
> +                                       gfn_t sgfn)
> +{
> +    unsigned int i;
> +    int res;
> +    unsigned int *nr_banks = GET_NR_BANKS(mem, type);
what if mem is NULL? You would end up dereferencing NULL pointer

> +
> +    for ( i = 0; i < *nr_banks; i++ )
> +    {
> +        struct membank *membank = GET_MEMBANK(mem, type, i);
> +        paddr_t start = membank->start;
> +        paddr_t size = membank->size;
> +        unsigned int order = get_order_from_bytes(size);
> +
> +        /* Size must be power of two */
> +        BUG_ON(!size || (size & (size - 1)));
> +        res = guest_physmap_add_page(d, sgfn, maddr_to_mfn(start), order);
> +        if ( res )
> +            return res;
Here, you return a rc, but ...

> 
>          sgfn = gfn_add(sgfn, 1UL << order);
> -        tot_size -= (1ULL << (PAGE_SHIFT + order));
> +    }
> +
> +    return 0;
> +}
> +
> +bool __init allocate_bank_memory(struct domain *d,
> +                                 struct kernel_info *kinfo,
> +                                 gfn_t sgfn,
> +                                 paddr_t total_size)
> +{
> +    struct membank *bank;
> +    struct meminfo host = { 0 };
> +
> +    /*
> +     * allocate_bank_memory can be called with a total_size of zero for
> +     * the second memory bank. It is not an error and we can safely
> +     * avoid creating a zero-size memory bank.
> +     */
> +    if ( total_size == 0 )
> +        return true;
> +
> +    bank = &kinfo->mem.bank[kinfo->mem.nr_banks];
> +    bank->start = gfn_to_gaddr(sgfn);
> +    bank->size = total_size;
> +
> +    if ( !allocate_domheap_memory(d, total_size, (void *)&host, NORMAL_MEMINFO) )
> +    {
> +        printk(XENLOG_ERR "Failed to allocate (%"PRIpaddr"MB) pages to %pd\n",
> +               total_size >> 20, d);
> +        return false;
> +    }
> +
> +    if ( guest_physmap_memory(d, (void *)&host, NORMAL_MEMINFO, sgfn) )
... here you are not making use of it (to print the error code).

> +    {
> +        printk(XENLOG_ERR "Failed to map (%"PRIpaddr"MB) pages to %pd\n",
> +               total_size >> 20, d);
> +        return false;
>      }
> 
>      kinfo->mem.nr_banks++;
> diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
> index 3a2b35ea46..bc5f08be97 100644
> --- a/xen/arch/arm/include/asm/setup.h
> +++ b/xen/arch/arm/include/asm/setup.h
> @@ -57,6 +57,39 @@ struct meminfo {
>      struct membank bank[NR_MEM_BANKS];
>  };
> 
A comment with a meaning of each value would be handy
> +enum meminfo_type {
> +    NORMAL_MEMINFO,
> +    MAX_MEMINFO_TYPE,
do you have a need for checking the max? If so, I would try to name the values in a similar, more informative way,
e.g. MEMINFO_TYPE_NORMAL

> +};
> +
> +/*
> + * Define a set of MACRO helpers to access meminfo_type, like "struct meminfo"
> + * as type of NORMAL_MEMINFO, etc.
> + * This kind of structure must have a array of "struct membank",
> + * a member called nr_banks indicating the current array size, and also a field
> + * indicating the maximum array size.
field? Looking at struct meminfo and then shm_meminfo you just have a macro to indicate max nr.

> + */
> +typedef void (*retrieve_fn)(void *, unsigned int *, struct membank **,
I think MISRA requires that parameters should be named.
void * can be const since there is no helper modifying the passed structure (here and in macros when casting)

> +                            unsigned int **);
> +
> +#define MAX_MEM_BANKS(type) ({                              \
> +    unsigned int _max_mem_banks;                            \
> +    retrievers[type](NULL, &_max_mem_banks, NULL, NULL);    \
> +    _max_mem_banks;                                         \
> +})
> +
> +#define GET_MEMBANK(mem, type, index) ({                    \
> +    struct membank *_bank;                                  \
> +    retrievers[type]((void *)(mem), NULL, &_bank, NULL);    \
> +    &(_bank[index]);                                        \
> +})
> +
> +#define GET_NR_BANKS(mem, type) ({                          \
> +    unsigned int *_nr_banks;                                \
> +    retrievers[type]((void *)mem, NULL, NULL, &_nr_banks);  \
> +    _nr_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
> --
> 2.25.1
> 

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:42:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:42:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649677.1014484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAtm-0007Kp-5w; Thu, 07 Dec 2023 09:42:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649677.1014484; Thu, 07 Dec 2023 09:42: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 1rBAtm-0007Ki-3G; Thu, 07 Dec 2023 09:42:26 +0000
Received: by outflank-mailman (input) for mailman id 649677;
 Thu, 07 Dec 2023 09:42: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=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBAtl-0007Kc-0Z
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:42:25 +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 ec29af86-94e4-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:42:23 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-54cfb03f1a8so914611a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 01:42:23 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 m30-20020a50999e000000b0054c9df4317dsm585518edb.7.2023.12.07.01.42.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 01:42:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec29af86-94e4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701942143; x=1702546943; 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=i9GGonFwdu3X/gF8/AcujfGtHlcYSQhjp0F5ctTVoLw=;
        b=f+yt7FEL1mzoABFz4rHcRgzYg7PbkpRl3vHITDWWe6ypEM6Kuy/3zUqmhZvJGLtdxV
         TJgCJw8zr3dRuhaKFXbSMN4O2yYMG65a5TC4C2F5gf8DJb4+hKa35geY5VtXkgN0DhfP
         yiWmvpeplWW1hDAxYyIhAImxtaDCBIrv8RVz+Izt+UOWPwlWBXOY0H2Oi8xTYUsVN5YT
         SYYF3COdIneDcrKPkBn21zHZT/qDayK5Vs8J6Qx7jRSXtmQVvt5tUAJS6TdRuELE04on
         4HteN00c2wzXmeyBxtBsRJV33BsH0Ku1sxN1DAPynwRUqVy856sbQcozffojPhmN7RM8
         rBYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701942143; x=1702546943;
        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=i9GGonFwdu3X/gF8/AcujfGtHlcYSQhjp0F5ctTVoLw=;
        b=YYi7Z8rwokyGV1y8fG4i4nZQ9slErnuL5FRSdmM6z8tVUnO237Lt4a0ww43u6pDHh5
         ayAy7vvrFdAH5t2FFiankqJurmx7Uvf2zXPve8qX6euiUb/XfaxB0HbQPidk5rneTi5s
         Xg61ByBY959Vav4BTfAzgs55OBvQ/QXpl8FUmoBAp1WmFoUdymrAguUlC3wJJPsvebG6
         6MjPG8omsp0FS6W6yxVhrAl7C5gFfklfe7Z9cpV7ImH4ekgsm2pHTgE2i2Ey+96Gciaa
         LzBTU6id0/jQ12JVN/DRqGdcEK8lXWpYQkK0GfLp4IU/8tU6mBwLMg+rPcxW87ZAsBri
         htUQ==
X-Gm-Message-State: AOJu0YyjEnctRTUtvEj/0aRjZ+XUNY2MHW3JWR4M3fPrQfDInoTWV+/Y
	4aXY29u+rx7CwLIl+S14C6o=
X-Google-Smtp-Source: AGHT+IFsGCxce0zrrqjTBAhcJmjkFRR62dK89bJnXpkRrMA9dXZ/cLY3OThppQyybhg8Dstp9IuM0w==
X-Received: by 2002:a50:d744:0:b0:54b:bc5a:e68a with SMTP id i4-20020a50d744000000b0054bbc5ae68amr1299515edj.15.1701942142580;
        Thu, 07 Dec 2023 01:42:22 -0800 (PST)
Message-ID: <306915687362f916b11a78d7a74ee817c8d2ec16.camel@gmail.com>
Subject: Re: [PATCH v2 06/39] xen/riscv: introduce fence.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Thu, 07 Dec 2023 11:42:21 +0200
In-Reply-To: <902146c4-8f36-446b-8332-78858186986c@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <225f7c6eac811dfd6afbb188c869557c5465ecca.1700761381.git.oleksii.kurochko@gmail.com>
	 <902146c4-8f36-446b-8332-78858186986c@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Tue, 2023-12-05 at 16:56 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/fence.h
> > @@ -0,0 +1,12 @@
> > +#ifndef _ASM_RISCV_FENCE_H
> > +#define _ASM_RISCV_FENCE_H
> > +
> > +#ifdef CONFIG_SMP
> > +#define RISCV_ACQUIRE_BARRIER		"\tfence r , rw\n"
> > +#define RISCV_RELEASE_BARRIER		"\tfence rw,=C2=A0 w\n"
> > +#else
> > +#define RISCV_ACQUIRE_BARRIER
> > +#define RISCV_RELEASE_BARRIER
> > +#endif
> > +
> > +#endif	/* _ASM_RISCV_FENCE_H */
>=20
> Imo such a header would be better to introduce once a use for the
> constructs appears. Otherwise at the very least it wants explaining
> in the description what this is going to be needed for. I can't
> find items of these names in other architectures so far, so this
> must be something RISC-V-specific.
It is going to be used only in RISC-V. The things that use these
definitions are introduced in the patches of this patch series:
* [PATCH v2 18/39] xen/riscv: introduce cmpxchg.h
* [PATCH v2 17/39] xen/riscv: introduce asm/atomic.h

~ Oleksii




From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:44:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:44:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649679.1014494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAvO-0007t1-H7; Thu, 07 Dec 2023 09:44:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649679.1014494; Thu, 07 Dec 2023 09: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 1rBAvO-0007su-EK; Thu, 07 Dec 2023 09:44:06 +0000
Received: by outflank-mailman (input) for mailman id 649679;
 Thu, 07 Dec 2023 09:44:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=d9A1=HS=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rBAvN-0007sm-3q
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:44:05 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.93])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2600ee11-94e5-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:44:01 +0100 (CET)
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 07 Dec 2023 01:43:58 -0800
Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14])
 by orsmga005.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 07 Dec 2023 01:43:58 -0800
Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by
 ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35; Thu, 7 Dec 2023 01:43:58 -0800
Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by
 ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35; Thu, 7 Dec 2023 01:43:57 -0800
Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by
 orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35 via Frontend Transport; Thu, 7 Dec 2023 01:43:57 -0800
Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169)
 by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.35; Thu, 7 Dec 2023 01:43:57 -0800
Received: from SA1PR11MB6734.namprd11.prod.outlook.com (2603:10b6:806:25d::22)
 by CO1PR11MB4979.namprd11.prod.outlook.com (2603:10b6:303:99::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25; Thu, 7 Dec
 2023 09:43:54 +0000
Received: from SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3]) by SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3%7]) with mapi id 15.20.7046.034; Thu, 7 Dec 2023
 09: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>
X-Inumbo-ID: 2600ee11-94e5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1701942241; x=1733478241;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=WNnPxIIJWCmGHNFIiWcMTcI2rTwzXssQEx23Y6JNKvo=;
  b=Sm+LO5VWmR581it4lixFiWzcpJhPYjPg/Inu//zh4kmLMWY+VSzNG7EM
   Lkgz4sGcAcoMUz1u0pMtxNTPqp7fx1cIVWs4qCLUdQGPnWjN3i9Vj/RFL
   SUw2fxlNF3IMoGB/Lz8w3v/DtUSrzZwuP1lClGe9Ht5XQUBLIxxM5odAH
   QKoMMAwMBaXfJdjxsRldTwacumiBJj4N882PaTeV5wCqiv9oBgEYkSqg1
   23IzX8fBFkgqLWlntwVE4MUZ/igokpORJBvbJRY+sPeNhP/AYQWNsMdoj
   Y2/ng7o4OggMaZDPyc4Bs7Irv2QAUH6KLrpFUrfcxRCPWLPvBaI+MOHJ8
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10916"; a="391379372"
X-IronPort-AV: E=Sophos;i="6.04,256,1695711600"; 
   d="scan'208";a="391379372"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10916"; a="944976025"
X-IronPort-AV: E=Sophos;i="6.04,256,1695711600"; 
   d="scan'208";a="944976025"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=l6SLy11qllYDmKsX3OP+RzP5DQMG+49YdzZYjlgdLz2pIWbhUpqFw89Z64itTYiewQFGVxsF9tcIHK1ubJcZ4M9C+CajBr+8Yr2VV+9mS4rLCxnEcCfdmV2XKmVsAyrB1/pKXTrK/Q7xqYc5ssiQKsYzICPqBFQs5eG9bINVxIC3vbS+A71llJqMz5k0Q5kDN1kgpn0wuuoFh6cWK76kjz91j/n4vgQZO7RYTM6yrU90KTK7i41oi8jhmTXEXEOthmslmN9frME2Lzi/ID1pHRr8R93IougEYzTyuSC1CqO/hKjwQ+EkfwFFKwHVHOxg0bNqAKgX6GhRW3Io1MXNJg==
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=WNnPxIIJWCmGHNFIiWcMTcI2rTwzXssQEx23Y6JNKvo=;
 b=i/ySjFHv/OltPUEi/FW6AVZORYkqTJA/Ft0PwMS22dkrTgHFMpRU4WaumTSTn5r1be3l078fxKKGTAQFnALhoe6ORMetjt3oSj8rujJJsiuwFBfXqS9X7/p059rtCGSb/Awsc/a1SStR+dWXyWvxelLDOiPxZCgEjWSH6H0TqmrNVG5SOmAoC5bB6ef2SJQ9ozoRlQxFPXlmlqQQbiblSP2leCcaAkZYCdjKGn8dArKAsb0T1yE7s+obuPbqyZ+gChnzN5FwdZPcOqBIl45egYOq3lsjLGXJi8e37QpPnqNTgQox1PerDBaNypyf8s28bnA1cH+jVwGR5OUBA4KJlQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
From: "Li, Xin3" <xin3.li@intel.com>
To: "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "tglx@linutronix.de" <tglx@linutronix.de>, "mingo@redhat.com"
	<mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org"
	<x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>, "Lutomirski, Andy"
	<luto@kernel.org>, "pbonzini@redhat.com" <pbonzini@redhat.com>,
	"seanjc@google.com" <seanjc@google.com>, "peterz@infradead.org"
	<peterz@infradead.org>, "Gross, Jurgen" <jgross@suse.com>, "Shankar, Ravi V"
	<ravi.v.shankar@intel.com>, "mhiramat@kernel.org" <mhiramat@kernel.org>,
	"jiangshanlai@gmail.com" <jiangshanlai@gmail.com>, "nik.borisov@suse.com"
	<nik.borisov@suse.com>, "Kang, Shan" <shan.kang@intel.com>
Subject: RE: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Thread-Topic: [PATCH v13 26/35] x86/fred: FRED entry/exit and dispatch code
Thread-Index: AQHaJ215PhEOYu43sEObVSTXzfHZOLCanWSAgAE5e5CAAHaQAIAAUcKggAD07nA=
Date: Thu, 7 Dec 2023 09:43:52 +0000
Message-ID: <SA1PR11MB6734ACF7F90649CADDC82C6EA88BA@SA1PR11MB6734.namprd11.prod.outlook.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
 <20231205105030.8698-27-xin3.li@intel.com>
 <f260ddf9-be67-48e0-8121-6f58d46f7978@citrix.com>
 <SA1PR11MB67343544B0CEB6C82002790DA884A@SA1PR11MB6734.namprd11.prod.outlook.com>
 <4e41b658-f49e-424c-8a86-08c8ab8e384d@citrix.com>
 <SA1PR11MB673472A25E72022F68882869A884A@SA1PR11MB6734.namprd11.prod.outlook.com>
In-Reply-To: <SA1PR11MB673472A25E72022F68882869A884A@SA1PR11MB6734.namprd11.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA1PR11MB6734:EE_|CO1PR11MB4979:EE_
x-ms-office365-filtering-correlation-id: 87209f08-64da-42ed-1add-08dbf70905f7
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;
x-microsoft-antispam-message-info: VNDYADazJwG3OQCo+pwjUTu/I0Bt7SCbaiZkpo4/Ecgbf/tbWTdNgtLG6eLWKmA3N9fqQfIN5Nr9Jq9D1ttd/2aEInHZ9bbzpoVbataMds5KJXLFyBrK1rXmezFwmlX7oQaLSpYR+0rKTf7M0UYrHcO+D3VoiX8JRsZQuk1WiH8i86s72Q45eZJwWNpea6rWIYfe3bGZY+OO6XHnr0TlnkwOFJo9UONG5IBJoeH0NX1ZvROio2Lm92MBoukBkzmP2MBjp80xRZ1YbVjkYmc4/eGrHuQ7uRiXw3rCWBAUz2fBVi+Oa7Q2N7ZzHqs0NoCuCOzYkkDJ4+3cqtD2F+AGGtBR6FSu3P7BkH0aeDS4gBIX5r/AXkooB32DXqiF+1p0+Mbm4q2Olc5qbEin/oY7Z+/0fRxMm8kvzaW3E3z750ewEKkeKfNOTytiYQhFsiqNO5g6jz29oU7ynBxCAao6qerrkEvDxivrT+B2okJWsWee7kqiZhg11J0RrhbFKi5nefy1ffJ9DWAyN5Rngz6wAKdANdMa2f7vyapL9IDhIannjnEK1dyoN32/nE0+z4QOt9k2L8lV+uxcrAox+LCClfW19ohRJwoLiOHoOEBpsj+r4JemKrdyOwTrlInvL5N1n42gg4A/kCwFI+vUj+JF04puOuedjnx80sMy5/LKh2g=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB6734.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(136003)(346002)(39860400002)(366004)(376002)(230173577357003)(230922051799003)(230273577357003)(451199024)(1800799012)(186009)(64100799003)(66556008)(38100700002)(66446008)(478600001)(76116006)(64756008)(66476007)(110136005)(54906003)(66946007)(122000001)(316002)(7696005)(8676002)(71200400001)(4326008)(8936002)(82960400001)(38070700009)(86362001)(6506007)(26005)(7416002)(2906002)(83380400001)(55016003)(41300700001)(5660300002)(9686003)(52536014)(33656002);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UDg5MUxxNnRxYTdUREJTaW5jRlVxWjNnRlg3YSt4U3BHdUlGUHhZSWl5ZElw?=
 =?utf-8?B?Y2pYK1h1T0lkcEJ6dW53VFI1RmkzdGNDYUlVQ0JReXZhT2RBK2VDRWwwZUFG?=
 =?utf-8?B?VU1pYjl5bW5JOVU3dlJqWlI3SHFNWmh6SXZkQlBTSXFlMHVkdndYU3BFUmdP?=
 =?utf-8?B?MzV2UEI4M29ubHNqQXFPczRTVWFLdW51QVMrTjhLNG9lcm1wQVRxNmlnWVFH?=
 =?utf-8?B?T3JFUlp5d0paYXFNSG9sN0QvOGtyelB2UmlDSy9jZG5zT2E1ekkzNjFJRlEy?=
 =?utf-8?B?dkRtTitjL0ZNZytMLzFXdDB0ODZDWFpqZ0ViRmRoK1Azb2M5N2RRTGdtWU9B?=
 =?utf-8?B?cWhQKzBrQ0YwYkdLMDBTa1BUbDUycE1xMlVLUnJRdXU1encyODF5VXQ5cndM?=
 =?utf-8?B?SlUzRkN4R3ErcVQ3VXVhek9CRlR5OGFsYVpyVlVVbzI2d3ZIaThacGhPQnNY?=
 =?utf-8?B?a0ZlRm1nSjdEYzVtTU0rcGFNN01jUDJEZkhnZnc1cE9oRXVzMUUxdExJWDVo?=
 =?utf-8?B?L1lkZjRiangxVWUrbFAwdmNNby9kY1VoWFpDNVJNdE9IYTliYjI5cEpKS0I2?=
 =?utf-8?B?QWxDTVZqdUhnZUhvcTBlZHdieGQxVkdBdHJnK3JxQjFHdEpWUHJ6V09tMlZl?=
 =?utf-8?B?MXAvVVRDQ0lUL2RiZTlUZlpVOVFDL2dKcnJPSVpic3lUb0o2alNEeGxuYkhW?=
 =?utf-8?B?dUNIajBWamVyQjVHNWowWC9VcUNkVWxRSjdZRHJvQzZXVTZ4cU5saGk4TU5D?=
 =?utf-8?B?UUpKMEIxcmpVc3NGR3R2YWR6WXF1V3pXQWljWFpDVVl5Mks3bkxEMlI4bmJD?=
 =?utf-8?B?eTM2dGRVWjUyVnpIMEw1VGN4dlVEbnV5RVpKT2FhaEVpeUhhK3hpdGlObGtH?=
 =?utf-8?B?L0Z4bDl0a0VFK0UwYmFCeUhaNVJsdlJicmkwYjRESlE3aG9CTkdIZ3VMMkVh?=
 =?utf-8?B?T0dTVFpiWEY1WUwyMXFxL3BEUWZVWDRxaC85bk5wME9aMHQwOUNpZERweEJw?=
 =?utf-8?B?QVk4VnhLTmZPSWlwOTJVd1BMS1RIVDlzQTgyb3pBWWJJaUFxTlRBY2krY3U4?=
 =?utf-8?B?bERhZ0Y3ZTRpL1kwL2Nnc0VWVExndHhGdm1oWXd3UUJhQ1B3bGV4bG0ydWpF?=
 =?utf-8?B?cTJPYURVVlYzS2x4TmZMaDUvUHo0NFFVeFlHM25XYXVvc3RhUG5kcXRKaWJu?=
 =?utf-8?B?dGt5Q1I5YldxdHd1amliKy94YlNqcE9LcFp1cmJvdVdIdDNRUTVkVHA1bldo?=
 =?utf-8?B?a1dFaDVpYXVkRjZxelYxQ0NyaHo0eVdhU3FadkxHUjJVdm93amNmYjBwYUVE?=
 =?utf-8?B?ajJzc1V1aTkvVFNONDl5K2ZjYXFqYzd5QTA5WU9EcVl2QzNOUGJjS0dWeEE2?=
 =?utf-8?B?ajhrWmhrVEZPdjBlQ21DK2pUKzJaSjhPL3VVUEdiYVU3QjE5eElXdEg2MlU5?=
 =?utf-8?B?ZFhqSWJTOHZOeldTbWxwdlpSK2RUVU9tZW01OE50amZ1NDQ1dEJwb1dCbVVL?=
 =?utf-8?B?eUVEbFpjUXlzVzkwSW9SSjNTd0lUOVJkRVoyY0ZWcjc4UUJxYko4RmtpeGc5?=
 =?utf-8?B?dS81SlRnOGdlMGVYcWcvTXJoYzBYRWNWV0JjMmdOblVQN20rM2hveWgxTTBx?=
 =?utf-8?B?M3NnUXFDZ0pObmdBNmdWVlBaQWtsdXVpdjhXajJLdXdVemZpdFhMRXNTWjJY?=
 =?utf-8?B?RnBYWjZ5QlVOSk5WYVdTbkpzRHhBbEwzdEZtdXpzMTg2MEswS3NKakN0VmdK?=
 =?utf-8?B?cnpvOEE2dm5RSW4rSm5EV2NpYWdYN3Q3MUgrM0g3aE0zcURBdFRySmw1NzB6?=
 =?utf-8?B?Tmg2amF2S0RKK3pxSEh5bHIvOFhmYm9RYVo4MHhDOUVXcVhYd0dNSkhEam1F?=
 =?utf-8?B?MnpsT0Y5T0VIMGVoWHJkOWRVZ2d5ak1iNE9LRHdGOTcxSmswaUlQWXlvb2Nk?=
 =?utf-8?B?c2JwaEZQeTFHR2p5ZG9rZWpBN1JlWEVBQi9SNnh5RnZlMWpIM0VReXNkWjZY?=
 =?utf-8?B?ci9odExlVUwwWldVZnJBOEt2T0lMWHBWdzkrNzZDR1UzSUdZOHpzQTBRcXRq?=
 =?utf-8?B?U3d5NDZYNGJ6V2p5WmpGRnV0WFZ0dzdYQjUramE5MzVndFE5Z05oUURuZXQz?=
 =?utf-8?Q?ygiY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6734.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 87209f08-64da-42ed-1add-08dbf70905f7
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Dec 2023 09:43:52.9719
 (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: Y0h/PZfiWbAqX5Egpma9qnZzahRrs9SbpvMT4juplHadKZD3VUWPr0CQ/W3gOEcpVsdTOFaJcD+jtrYrxoy6+w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4979
X-OriginatorOrg: intel.com

PiA+IEluIG15IG9waW5pb24sIGNyb3NzLWNoZWNraW5nIGlzIHRoZSBiZXR0ZXIgYXBwcm9hY2gs
IGJlY2F1c2UgaXQgbWVhbnMgdGhhdA0KPiA+IHZpb2xhdGlvbnMgb2YgdGhlIGFzc3VtcHRpb25z
IGdldCBub3RpY2VkIG1vcmUgcXVpY2tseSwgYW5kIGhvcGVmdWxseSBieQ0KPiA+IHdob21ldmVy
IGlzIHdvcmtpbmcgb24gdGhlIG5ldyBmZWF0dXJlIHdoaWNoIGFsdGVycyB0aGUgYXNzdW1wdGlv
bnMuDQo+IA0KPiBZZWFoLCBJIGNhbiBtYWtlIHRoZSBjaGFuZ2UuDQogDQoNCkhpIEFuZHJldywN
Cg0KRm9sbG93aW5nIGlzIHRoZSB1cGRhdGVkIHBhdGNoLCBjYW4geW91IHBsZWFzZSBoYXZlIGFu
b3RoZXIgcmV2aWV3Pw0KDQpUaGFua3MhDQogICAgWGluDQoNCg0KZGlmZiAtLWdpdCBhL2FyY2gv
eDg2L2VudHJ5L2VudHJ5X2ZyZWQuYyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5X2ZyZWQuYw0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uZmQzNmZiOGQyYTE5DQotLS0g
L2Rldi9udWxsDQorKysgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV9mcmVkLmMNCkBAIC0wLDAgKzEs
MjUyIEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8NCisvKg0KKyAq
IFRoZSBGUkVEIHNwZWNpZmljIGtlcm5lbC91c2VyIGVudHJ5IGZ1bmN0aW9ucyB3aGljaCBhcmUg
aW52b2tlZCBmcm9tDQorICogYXNzZW1ibHkgY29kZSBhbmQgZGlzcGF0Y2ggdG8gdGhlIGFzc29j
aWF0ZWQgaGFuZGxlcnMuDQorICovDQorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KKyNpbmNs
dWRlIDxsaW51eC9rZGVidWcuaD4NCisjaW5jbHVkZSA8bGludXgvbm9zcGVjLmg+DQorDQorI2lu
Y2x1ZGUgPGFzbS9kZXNjLmg+DQorI2luY2x1ZGUgPGFzbS9mcmVkLmg+DQorI2luY2x1ZGUgPGFz
bS9pZHRlbnRyeS5oPg0KKyNpbmNsdWRlIDxhc20vc3lzY2FsbC5oPg0KKyNpbmNsdWRlIDxhc20v
dHJhcG5yLmg+DQorI2luY2x1ZGUgPGFzbS90cmFwcy5oPg0KKw0KKy8qIEZSRUQgRVZFTlRfVFlQ
RV9PVEhFUiB2ZWN0b3IgbnVtYmVycyAqLw0KKyNkZWZpbmUgRlJFRF9TWVNDQUxMCQkJMQ0KKyNk
ZWZpbmUgRlJFRF9TWVNFTlRFUgkJCTINCisNCitzdGF0aWMgbm9pbnN0ciB2b2lkIGZyZWRfYmFk
X3R5cGUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgZXJyb3JfY29kZSkNCit7
DQorCWlycWVudHJ5X3N0YXRlX3QgaXJxX3N0YXRlID0gaXJxZW50cnlfbm1pX2VudGVyKHJlZ3Mp
Ow0KKw0KKwlpbnN0cnVtZW50YXRpb25fYmVnaW4oKTsNCisNCisJLyogUGFuaWMgb24gZXZlbnRz
IGZyb20gYSBoaWdoIHN0YWNrIGxldmVsICovDQorCWlmIChyZWdzLT5mcmVkX2NzLnNsID4gMCkg
ew0KKwkJcHJfZW1lcmcoIlBBTklDOiBpbnZhbGlkIG9yIGZhdGFsIEZSRUQgZXZlbnQ7IGV2ZW50
IHR5cGUgJXUgIg0KKwkJCSAidmVjdG9yICV1IGVycm9yIDB4JWx4IGF1eCAweCVseCBhdCAlMDR4
OiUwMTZseFxuIiwNCisJCQkgcmVncy0+ZnJlZF9zcy50eXBlLCByZWdzLT5mcmVkX3NzLnZlY3Rv
ciwgcmVncy0+b3JpZ19heCwNCisJCQkgZnJlZF9ldmVudF9kYXRhKHJlZ3MpLCByZWdzLT5jcywg
cmVncy0+aXApOw0KKwkJZGllKCJpbnZhbGlkIG9yIGZhdGFsIEZSRUQgZXZlbnQiLCByZWdzLCBy
ZWdzLT5vcmlnX2F4KTsNCisJCXBhbmljKCJpbnZhbGlkIG9yIGZhdGFsIEZSRUQgZXZlbnQiKTsN
CisJfSBlbHNlIHsNCisJCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBvb3BzX2JlZ2luKCk7DQorCQlp
bnQgc2lnID0gU0lHS0lMTDsNCisNCisJCXByX2FsZXJ0KCJCVUc6IGludmFsaWQgb3IgZmF0YWwg
RlJFRCBldmVudDsgZXZlbnQgdHlwZSAldSAiDQorCQkJICJ2ZWN0b3IgJXUgZXJyb3IgMHglbHgg
YXV4IDB4JWx4IGF0ICUwNHg6JTAxNmx4XG4iLA0KKwkJCSByZWdzLT5mcmVkX3NzLnR5cGUsIHJl
Z3MtPmZyZWRfc3MudmVjdG9yLCByZWdzLT5vcmlnX2F4LA0KKwkJCSBmcmVkX2V2ZW50X2RhdGEo
cmVncyksIHJlZ3MtPmNzLCByZWdzLT5pcCk7DQorDQorCQlpZiAoX19kaWUoIkludmFsaWQgb3Ig
ZmF0YWwgRlJFRCBldmVudCIsIHJlZ3MsIHJlZ3MtPm9yaWdfYXgpKQ0KKwkJCXNpZyA9IDA7DQor
DQorCQlvb3BzX2VuZChmbGFncywgcmVncywgc2lnKTsNCisJfQ0KKw0KKwlpbnN0cnVtZW50YXRp
b25fZW5kKCk7DQorCWlycWVudHJ5X25taV9leGl0KHJlZ3MsIGlycV9zdGF0ZSk7DQorfQ0KKw0K
K3N0YXRpYyBub2luc3RyIHZvaWQgZnJlZF9pbnR4KHN0cnVjdCBwdF9yZWdzICpyZWdzKQ0KK3sN
CisJc3dpdGNoIChyZWdzLT5mcmVkX3NzLnZlY3Rvcikgew0KKwkvKiBPcGNvZGUgMHhjZCwgMHgz
LCBOT1QgSU5UMyAob3Bjb2RlIDB4Y2MpICovDQorCWNhc2UgWDg2X1RSQVBfQlA6DQorCQlleGNf
aW50MyhyZWdzKTsNCisJCXJldHVybjsNCisNCisJLyogT3Bjb2RlIDB4Y2QsIDB4NCwgTk9UIElO
VE8gKG9wY29kZSAweGNlKSAqLw0KKwljYXNlIFg4Nl9UUkFQX09GOg0KKwkJZXhjX292ZXJmbG93
KHJlZ3MpOw0KKwkJcmV0dXJuOw0KKw0KKwkvKiBJTlQ4MCAqLw0KKwljYXNlIElBMzJfU1lTQ0FM
TF9WRUNUT1I6DQorCQlpZiAoaWEzMl9lbmFibGVkKCkpIHsNCisJCQkvKiBTYXZlIHRoZSBzeXNj
YWxsIG51bWJlciAqLw0KKwkJCXJlZ3MtPm9yaWdfYXggPSByZWdzLT5heDsNCisJCQlyZWdzLT5h
eCA9IC1FTk9TWVM7DQorCQkJZG9faW50ODBfc3lzY2FsbF8zMihyZWdzKTsNCisJCQlyZXR1cm47
DQorCQl9DQorCQlmYWxsdGhyb3VnaDsNCisNCisJZGVmYXVsdDoNCisJCWV4Y19nZW5lcmFsX3By
b3RlY3Rpb24ocmVncywgMCk7DQorCQlyZXR1cm47DQorCX0NCit9DQorDQorc3RhdGljIF9fYWx3
YXlzX2lubGluZSB2b2lkIGZyZWRfb3RoZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpDQorew0KKwkv
KiBUaGUgY29tcGlsZXIgY2FuIGZvbGQgdGhlc2UgY29uZGl0aW9ucyBpbnRvIGEgc2luZ2xlIHRl
c3QgKi8NCisJaWYgKGxpa2VseShyZWdzLT5mcmVkX3NzLnZlY3RvciA9PSBGUkVEX1NZU0NBTEwg
JiYgcmVncy0+ZnJlZF9zcy5sbSkpIHsNCisJCXJlZ3MtPm9yaWdfYXggPSByZWdzLT5heDsNCisJ
CXJlZ3MtPmF4ID0gLUVOT1NZUzsNCisJCWRvX3N5c2NhbGxfNjQocmVncywgcmVncy0+b3JpZ19h
eCk7DQorCQlyZXR1cm47DQorCX0gZWxzZSBpZiAoaWEzMl9lbmFibGVkKCkgJiYNCisJCSAgIGxp
a2VseShyZWdzLT5mcmVkX3NzLnZlY3RvciA9PSBGUkVEX1NZU0VOVEVSICYmDQorCQkJICAhcmVn
cy0+ZnJlZF9zcy5sbSkpIHsNCisJCXJlZ3MtPm9yaWdfYXggPSByZWdzLT5heDsNCisJCXJlZ3Mt
PmF4ID0gLUVOT1NZUzsNCisJCWRvX2Zhc3Rfc3lzY2FsbF8zMihyZWdzKTsNCisJCXJldHVybjsN
CisJfSBlbHNlIHsNCisJCWV4Y19pbnZhbGlkX29wKHJlZ3MpOw0KKwkJcmV0dXJuOw0KKwl9DQor
fQ0KKw0KKyNkZWZpbmUgU1lTVkVDKF92ZWN0b3IsIF9mdW5jdGlvbikgW192ZWN0b3IgLSBGSVJT
VF9TWVNURU1fVkVDVE9SXSA9IGZyZWRfc3lzdmVjXyMjX2Z1bmN0aW9uDQorDQorc3RhdGljIGlk
dGVudHJ5X3Qgc3lzdmVjX3RhYmxlW05SX1NZU1RFTV9WRUNUT1JTXSBfX3JvX2FmdGVyX2luaXQg
PSB7DQorCVNZU1ZFQyhFUlJPUl9BUElDX1ZFQ1RPUiwJCWVycm9yX2ludGVycnVwdCksDQorCVNZ
U1ZFQyhTUFVSSU9VU19BUElDX1ZFQ1RPUiwJCXNwdXJpb3VzX2FwaWNfaW50ZXJydXB0KSwNCisJ
U1lTVkVDKExPQ0FMX1RJTUVSX1ZFQ1RPUiwJCWFwaWNfdGltZXJfaW50ZXJydXB0KSwNCisJU1lT
VkVDKFg4Nl9QTEFURk9STV9JUElfVkVDVE9SLAkJeDg2X3BsYXRmb3JtX2lwaSksDQorDQorCVNZ
U1ZFQyhSRVNDSEVEVUxFX1ZFQ1RPUiwJCXJlc2NoZWR1bGVfaXBpKSwNCisJU1lTVkVDKENBTExf
RlVOQ1RJT05fU0lOR0xFX1ZFQ1RPUiwJY2FsbF9mdW5jdGlvbl9zaW5nbGUpLA0KKwlTWVNWRUMo
Q0FMTF9GVU5DVElPTl9WRUNUT1IsCQljYWxsX2Z1bmN0aW9uKSwNCisJU1lTVkVDKFJFQk9PVF9W
RUNUT1IsCQkJcmVib290KSwNCisNCisJU1lTVkVDKFRIUkVTSE9MRF9BUElDX1ZFQ1RPUiwJCXRo
cmVzaG9sZCksDQorCVNZU1ZFQyhERUZFUlJFRF9FUlJPUl9WRUNUT1IsCQlkZWZlcnJlZF9lcnJv
ciksDQorCVNZU1ZFQyhUSEVSTUFMX0FQSUNfVkVDVE9SLAkJdGhlcm1hbCksDQorDQorCVNZU1ZF
QyhJUlFfV09SS19WRUNUT1IsCQkJaXJxX3dvcmspLA0KKw0KKwlTWVNWRUMoUE9TVEVEX0lOVFJf
VkVDVE9SLAkJa3ZtX3Bvc3RlZF9pbnRyX2lwaSksDQorCVNZU1ZFQyhQT1NURURfSU5UUl9XQUtF
VVBfVkVDVE9SLAlrdm1fcG9zdGVkX2ludHJfd2FrZXVwX2lwaSksDQorCVNZU1ZFQyhQT1NURURf
SU5UUl9ORVNURURfVkVDVE9SLAlrdm1fcG9zdGVkX2ludHJfbmVzdGVkX2lwaSksDQorfTsNCisN
CitzdGF0aWMgbm9pbnN0ciB2b2lkIGZyZWRfZXh0aW50KHN0cnVjdCBwdF9yZWdzICpyZWdzKQ0K
K3sNCisJdW5zaWduZWQgaW50IHZlY3RvciA9IHJlZ3MtPmZyZWRfc3MudmVjdG9yOw0KKwl1bnNp
Z25lZCBpbnQgaW5kZXggPSBhcnJheV9pbmRleF9ub3NwZWModmVjdG9yIC0gRklSU1RfU1lTVEVN
X1ZFQ1RPUiwNCisJCQkJCQlOUl9TWVNURU1fVkVDVE9SUyk7DQorDQorCWlmIChXQVJOX09OX09O
Q0UodmVjdG9yIDwgRklSU1RfRVhURVJOQUxfVkVDVE9SKSkNCisJCXJldHVybjsNCisNCisJaWYg
KGxpa2VseSh2ZWN0b3IgPj0gRklSU1RfU1lTVEVNX1ZFQ1RPUikpIHsNCisJCWlycWVudHJ5X3N0
YXRlX3Qgc3RhdGUgPSBpcnFlbnRyeV9lbnRlcihyZWdzKTsNCisNCisJCWluc3RydW1lbnRhdGlv
bl9iZWdpbigpOw0KKwkJc3lzdmVjX3RhYmxlW2luZGV4XShyZWdzKTsNCisJCWluc3RydW1lbnRh
dGlvbl9lbmQoKTsNCisJCWlycWVudHJ5X2V4aXQocmVncywgc3RhdGUpOw0KKwl9IGVsc2Ugew0K
KwkJY29tbW9uX2ludGVycnVwdChyZWdzLCB2ZWN0b3IpOw0KKwl9DQorfQ0KKw0KK3N0YXRpYyBu
b2luc3RyIHZvaWQgZnJlZF9od2V4YyhzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9u
ZyBlcnJvcl9jb2RlKQ0KK3sNCisJLyogT3B0aW1pemUgZm9yICNQRi4gVGhhdCdzIHRoZSBvbmx5
IGV4Y2VwdGlvbiB3aGljaCBtYXR0ZXJzIHBlcmZvcm1hbmNlIHdpc2UgKi8NCisJaWYgKGxpa2Vs
eShyZWdzLT5mcmVkX3NzLnZlY3RvciA9PSBYODZfVFJBUF9QRikpDQorCQlyZXR1cm4gZXhjX3Bh
Z2VfZmF1bHQocmVncywgZXJyb3JfY29kZSk7DQorDQorCXN3aXRjaCAocmVncy0+ZnJlZF9zcy52
ZWN0b3IpIHsNCisJY2FzZSBYODZfVFJBUF9ERTogcmV0dXJuIGV4Y19kaXZpZGVfZXJyb3IocmVn
cyk7DQorCWNhc2UgWDg2X1RSQVBfREI6IHJldHVybiBmcmVkX2V4Y19kZWJ1ZyhyZWdzKTsNCisJ
Y2FzZSBYODZfVFJBUF9CUjogcmV0dXJuIGV4Y19ib3VuZHMocmVncyk7DQorCWNhc2UgWDg2X1RS
QVBfVUQ6IHJldHVybiBleGNfaW52YWxpZF9vcChyZWdzKTsNCisJY2FzZSBYODZfVFJBUF9OTTog
cmV0dXJuIGV4Y19kZXZpY2Vfbm90X2F2YWlsYWJsZShyZWdzKTsNCisJY2FzZSBYODZfVFJBUF9E
RjogcmV0dXJuIGV4Y19kb3VibGVfZmF1bHQocmVncywgZXJyb3JfY29kZSk7DQorCWNhc2UgWDg2
X1RSQVBfVFM6IHJldHVybiBleGNfaW52YWxpZF90c3MocmVncywgZXJyb3JfY29kZSk7DQorCWNh
c2UgWDg2X1RSQVBfTlA6IHJldHVybiBleGNfc2VnbWVudF9ub3RfcHJlc2VudChyZWdzLCBlcnJv
cl9jb2RlKTsNCisJY2FzZSBYODZfVFJBUF9TUzogcmV0dXJuIGV4Y19zdGFja19zZWdtZW50KHJl
Z3MsIGVycm9yX2NvZGUpOw0KKwljYXNlIFg4Nl9UUkFQX0dQOiByZXR1cm4gZXhjX2dlbmVyYWxf
cHJvdGVjdGlvbihyZWdzLCBlcnJvcl9jb2RlKTsNCisJY2FzZSBYODZfVFJBUF9NRjogcmV0dXJu
IGV4Y19jb3Byb2Nlc3Nvcl9lcnJvcihyZWdzKTsNCisJY2FzZSBYODZfVFJBUF9BQzogcmV0dXJu
IGV4Y19hbGlnbm1lbnRfY2hlY2socmVncywgZXJyb3JfY29kZSk7DQorCWNhc2UgWDg2X1RSQVBf
WEY6IHJldHVybiBleGNfc2ltZF9jb3Byb2Nlc3Nvcl9lcnJvcihyZWdzKTsNCisNCisjaWZkZWYg
Q09ORklHX1g4Nl9NQ0UNCisJY2FzZSBYODZfVFJBUF9NQzogcmV0dXJuIGZyZWRfZXhjX21hY2hp
bmVfY2hlY2socmVncyk7DQorI2VuZGlmDQorI2lmZGVmIENPTkZJR19JTlRFTF9URFhfR1VFU1QN
CisJY2FzZSBYODZfVFJBUF9WRTogcmV0dXJuIGV4Y192aXJ0dWFsaXphdGlvbl9leGNlcHRpb24o
cmVncyk7DQorI2VuZGlmDQorI2lmZGVmIENPTkZJR19YODZfQ0VUDQorCWNhc2UgWDg2X1RSQVBf
Q1A6IHJldHVybiBleGNfY29udHJvbF9wcm90ZWN0aW9uKHJlZ3MsIGVycm9yX2NvZGUpOw0KKyNl
bmRpZg0KKwlkZWZhdWx0OiByZXR1cm4gZnJlZF9iYWRfdHlwZShyZWdzLCBlcnJvcl9jb2RlKTsN
CisJfQ0KKw0KK30NCisNCitzdGF0aWMgbm9pbnN0ciB2b2lkIGZyZWRfc3dleGMoc3RydWN0IHB0
X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgZXJyb3JfY29kZSkNCit7DQorCXN3aXRjaCAocmVn
cy0+ZnJlZF9zcy52ZWN0b3IpIHsNCisJY2FzZSBYODZfVFJBUF9CUDogcmV0dXJuIGV4Y19pbnQz
KHJlZ3MpOw0KKwljYXNlIFg4Nl9UUkFQX09GOiByZXR1cm4gZXhjX292ZXJmbG93KHJlZ3MpOw0K
KwlkZWZhdWx0OiByZXR1cm4gZnJlZF9iYWRfdHlwZShyZWdzLCBlcnJvcl9jb2RlKTsNCisJfQ0K
K30NCisNCitfX3Zpc2libGUgbm9pbnN0ciB2b2lkIGZyZWRfZW50cnlfZnJvbV91c2VyKHN0cnVj
dCBwdF9yZWdzICpyZWdzKQ0KK3sNCisJdW5zaWduZWQgbG9uZyBlcnJvcl9jb2RlID0gcmVncy0+
b3JpZ19heDsNCisNCisJLyogSW52YWxpZGF0ZSBvcmlnX2F4IHNvIHRoYXQgc3lzY2FsbF9nZXRf
bnIoKSB3b3JrcyBjb3JyZWN0bHkgKi8NCisJcmVncy0+b3JpZ19heCA9IC0xOw0KKw0KKwlzd2l0
Y2ggKHJlZ3MtPmZyZWRfc3MudHlwZSkgew0KKwljYXNlIEVWRU5UX1RZUEVfRVhUSU5UOg0KKwkJ
cmV0dXJuIGZyZWRfZXh0aW50KHJlZ3MpOw0KKwljYXNlIEVWRU5UX1RZUEVfTk1JOg0KKwkJaWYg
KGxpa2VseShyZWdzLT5mcmVkX3NzLnZlY3RvciA9PSBYODZfVFJBUF9OTUkpKQ0KKwkJCXJldHVy
biBmcmVkX2V4Y19ubWkocmVncyk7DQorCQlicmVhazsNCisJY2FzZSBFVkVOVF9UWVBFX1NXSU5U
Og0KKwkJcmV0dXJuIGZyZWRfaW50eChyZWdzKTsNCisJY2FzZSBFVkVOVF9UWVBFX0hXRVhDOg0K
KwkJcmV0dXJuIGZyZWRfaHdleGMocmVncywgZXJyb3JfY29kZSk7DQorCWNhc2UgRVZFTlRfVFlQ
RV9TV0VYQzoNCisJCXJldHVybiBmcmVkX3N3ZXhjKHJlZ3MsIGVycm9yX2NvZGUpOw0KKwljYXNl
IEVWRU5UX1RZUEVfUFJJVl9TV0VYQzoNCisJCWlmIChsaWtlbHkocmVncy0+ZnJlZF9zcy52ZWN0
b3IgPT0gWDg2X1RSQVBfREIpKQ0KKwkJCXJldHVybiBmcmVkX2V4Y19kZWJ1ZyhyZWdzKTsNCisJ
CWJyZWFrOw0KKwljYXNlIEVWRU5UX1RZUEVfT1RIRVI6DQorCQlyZXR1cm4gZnJlZF9vdGhlcihy
ZWdzKTsNCisJZGVmYXVsdDogYnJlYWs7DQorCX0NCisNCisJcmV0dXJuIGZyZWRfYmFkX3R5cGUo
cmVncywgZXJyb3JfY29kZSk7DQorfQ0KKw0KK19fdmlzaWJsZSBub2luc3RyIHZvaWQgZnJlZF9l
bnRyeV9mcm9tX2tlcm5lbChzdHJ1Y3QgcHRfcmVncyAqcmVncykNCit7DQorCXVuc2lnbmVkIGxv
bmcgZXJyb3JfY29kZSA9IHJlZ3MtPm9yaWdfYXg7DQorDQorCS8qIEludmFsaWRhdGUgb3JpZ19h
eCBzbyB0aGF0IHN5c2NhbGxfZ2V0X25yKCkgd29ya3MgY29ycmVjdGx5ICovDQorCXJlZ3MtPm9y
aWdfYXggPSAtMTsNCisNCisJc3dpdGNoIChyZWdzLT5mcmVkX3NzLnR5cGUpIHsNCisJY2FzZSBF
VkVOVF9UWVBFX0VYVElOVDoNCisJCXJldHVybiBmcmVkX2V4dGludChyZWdzKTsNCisJY2FzZSBF
VkVOVF9UWVBFX05NSToNCisJCWlmIChsaWtlbHkocmVncy0+ZnJlZF9zcy52ZWN0b3IgPT0gWDg2
X1RSQVBfTk1JKSkNCisJCQlyZXR1cm4gZnJlZF9leGNfbm1pKHJlZ3MpOw0KKwkJYnJlYWs7DQor
CWNhc2UgRVZFTlRfVFlQRV9IV0VYQzoNCisJCXJldHVybiBmcmVkX2h3ZXhjKHJlZ3MsIGVycm9y
X2NvZGUpOw0KKwljYXNlIEVWRU5UX1RZUEVfU1dFWEM6DQorCQlyZXR1cm4gZnJlZF9zd2V4Yyhy
ZWdzLCBlcnJvcl9jb2RlKTsNCisJY2FzZSBFVkVOVF9UWVBFX1BSSVZfU1dFWEM6DQorCQlpZiAo
bGlrZWx5KHJlZ3MtPmZyZWRfc3MudmVjdG9yID09IFg4Nl9UUkFQX0RCKSkNCisJCQlyZXR1cm4g
ZnJlZF9leGNfZGVidWcocmVncyk7DQorCQlicmVhazsNCisJZGVmYXVsdDogYnJlYWs7DQorCX0N
CisNCisJcmV0dXJuIGZyZWRfYmFkX3R5cGUocmVncywgZXJyb3JfY29kZSk7DQorfQ0K


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:45:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:45:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649682.1014505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAwg-0008QC-S6; Thu, 07 Dec 2023 09:45:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649682.1014505; Thu, 07 Dec 2023 09:45: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 1rBAwg-0008Q5-OC; Thu, 07 Dec 2023 09:45:26 +0000
Received: by outflank-mailman (input) for mailman id 649682;
 Thu, 07 Dec 2023 09:45:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBAwe-0008Px-OJ
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:45:24 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 57702135-94e5-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 10:45:23 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c0a074e71so7699305e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 01:45:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 be9-20020a05600c1e8900b0040596352951sm1411995wmb.5.2023.12.07.01.45.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 01:45:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 57702135-94e5-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701942323; x=1702547123; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gyKSCf2aLl680/7Wqis3i4rZw9x7ArfIUp262TxDEUk=;
        b=PuEq9DucF5Xoj5AoR4uDNcnNZ7/Uw97gjzhILUn2IrDIbl370M4JEpch2zYhtuemfl
         nyxS5GF/pybKaF1lhh3eOmsvTUFeLW0wXDHXUbQ0X2Dge3V8thrCkJFM5KXy4aBpd4jf
         GT9DFaKTzZzKA+jAE2zfKcRk4dfmUJE5ctM2stwl9Q7ahabtGUGep/3wbLmPiqetVsaJ
         UF5wbraBUtt/lhpO8Epe00tMLoK5+snuDxUmtaMoSD3gGdS5R/kgl9akNurJ97nCRBXn
         EQqcX0kF+m7hDasGY5u0KSIh5S519FdYN1isu1flDIB2+uGi1zHw3CJl0f7/qNqeW88C
         xL7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701942323; x=1702547123;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=gyKSCf2aLl680/7Wqis3i4rZw9x7ArfIUp262TxDEUk=;
        b=q9wOBaBdGrhhSS10OsNSUSIOv6+zAm1yfjpRkoSwDZOzu0XWw9UsPnQ8+TIW2X8OOD
         dP7jPvqvq9D2lJlYHDLen/zKLNmxN0D8btAsw4Tl4UWNTUsto6dxhJMl2ArYVcVHaPUE
         I+jFiuDQIgjumCh94xFMy/yvPNm21g6SJrfnnHSusnyt5PK7IJDMqTBRCujOZ05rfRLx
         wf7eDEAEbp4JNxmmaVL8+JVyt9+rTksgz0muYeECxo3peZ5W8k0mnjC+cfkZY0PLyKrM
         ufdtGcoT7jisD+E3fK+jDYbv4xxBK0/nex3V8Lq09efIe9sMv3fjRNVy4R/E1uVKdBup
         NCGw==
X-Gm-Message-State: AOJu0Yz5fkN9LJWEBVu2khGk3GB7jVNkN8NifVcvPHSNQ59BieIyIDHb
	7BfzlZtPCMFBa6JbQpATs6M2
X-Google-Smtp-Source: AGHT+IEcnATdGiWKlmwcDuBSMHxRghgIdiGfOM1I5spnkabClexZJAWnACIYHSAcHPny+pvM6qPQUg==
X-Received: by 2002:a05:600c:2d4b:b0:40c:2a71:404e with SMTP id a11-20020a05600c2d4b00b0040c2a71404emr399746wmg.118.1701942323228;
        Thu, 07 Dec 2023 01:45:23 -0800 (PST)
Message-ID: <0d52a08e-04cd-450e-9b16-75b65fa46368@suse.com>
Date: Thu, 7 Dec 2023 10:45:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/39] xen/riscv: introduce fence.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <225f7c6eac811dfd6afbb188c869557c5465ecca.1700761381.git.oleksii.kurochko@gmail.com>
 <902146c4-8f36-446b-8332-78858186986c@suse.com>
 <306915687362f916b11a78d7a74ee817c8d2ec16.camel@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: <306915687362f916b11a78d7a74ee817c8d2ec16.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.12.2023 10:42, Oleksii wrote:
> On Tue, 2023-12-05 at 16:56 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/fence.h
>>> @@ -0,0 +1,12 @@
>>> +#ifndef _ASM_RISCV_FENCE_H
>>> +#define _ASM_RISCV_FENCE_H
>>> +
>>> +#ifdef CONFIG_SMP
>>> +#define RISCV_ACQUIRE_BARRIER		"\tfence r , rw\n"
>>> +#define RISCV_RELEASE_BARRIER		"\tfence rw,Â  w\n"
>>> +#else
>>> +#define RISCV_ACQUIRE_BARRIER
>>> +#define RISCV_RELEASE_BARRIER
>>> +#endif
>>> +
>>> +#endif	/* _ASM_RISCV_FENCE_H */
>>
>> Imo such a header would be better to introduce once a use for the
>> constructs appears. Otherwise at the very least it wants explaining
>> in the description what this is going to be needed for. I can't
>> find items of these names in other architectures so far, so this
>> must be something RISC-V-specific.
> It is going to be used only in RISC-V. The things that use these
> definitions are introduced in the patches of this patch series:
> * [PATCH v2 18/39] xen/riscv: introduce cmpxchg.h
> * [PATCH v2 17/39] xen/riscv: introduce asm/atomic.h

Then perhaps fold this patch into patch 17?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:46:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:46:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649685.1014515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAxa-0000mp-C6; Thu, 07 Dec 2023 09:46:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649685.1014515; Thu, 07 Dec 2023 09:46:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBAxa-0000mi-84; Thu, 07 Dec 2023 09:46:22 +0000
Received: by outflank-mailman (input) for mailman id 649685;
 Thu, 07 Dec 2023 09:46:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YqrU=HS=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rBAxZ-0000mc-FW
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:46:21 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 785926d6-94e5-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:46:19 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 246e5021439b with SMTP id 657194675760b4c0f24ed9a6 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Thu, 07 Dec 2023 09:46:15 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 785926d6-94e5-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701942377; x=1701949577; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=5SneGMQsSeI1u6ER180+abPrYPS0OtaUVzPY0QwVCzI=;
 b=Jrbkkq/1Y3Vw2xNfKfM+UgYQevbzf1OETw83AbFigAaohKxxNF4iBREoEB02NjPMvoMhwcHljgqmOdfP2dGTn+/oL6ssAJ4ru6L6VrVMV5zTgqaHLUjJJrHeE4b8vqUs7BMvvmv4W+vAnwDKtlq3XmanDnky5AAMfwqL1hT4ZBg=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Thu, 07 Dec 2023 09:46:15 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65719467459f3_2c95074130298@gitlab-sidekiq-catchall-v2-59bbffd745-49dsw.mail>
Subject: xen | Failed pipeline for staging | dbe69e1c
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65719467347bd_2c95074130146";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1098406925
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65719467347bd_2c95074130146
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1098406925 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: dbe69e1c ( https://gitlab.com/xen-project/xen/-/commit/dbe69e1c8555b40a43cde482615501eb8515ab80 )
Commit Message: x86/DMI: adjustments to comply with Misra C:201...
Commit Author: Jan Beulich ( https://gitlab.com/jbeulich )


Pipeline #1098406925 ( https://gitlab.com/xen-project/xen/-/pipelines/1098406925 ) triggered by Ganis ( https://gitlab.com/ganis )
had 12 failed jobs.

Job #5699773663 ( https://gitlab.com/xen-project/xen/-/jobs/5699773663/raw )

Stage: build
Name: ubuntu-trusty-gcc
Job #5699773179 ( https://gitlab.com/xen-project/xen/-/jobs/5699773179/raw )

Stage: build
Name: alpine-3.18-gcc
Job #5699773590 ( https://gitlab.com/xen-project/xen/-/jobs/5699773590/raw )

Stage: build
Name: debian-bookworm-gcc
Job #5699773322 ( https://gitlab.com/xen-project/xen/-/jobs/5699773322/raw )

Stage: build
Name: archlinux-gcc-debug
Job #5699773671 ( https://gitlab.com/xen-project/xen/-/jobs/5699773671/raw )

Stage: build
Name: ubuntu-trusty-gcc-debug
Job #5699773771 ( https://gitlab.com/xen-project/xen/-/jobs/5699773771/raw )

Stage: build
Name: opensuse-tumbleweed-gcc-debug
Job #5699773767 ( https://gitlab.com/xen-project/xen/-/jobs/5699773767/raw )

Stage: build
Name: opensuse-tumbleweed-gcc
Job #5699773780 ( https://gitlab.com/xen-project/xen/-/jobs/5699773780/raw )

Stage: test
Name: build-each-commit-gcc
Job #5699773633 ( https://gitlab.com/xen-project/xen/-/jobs/5699773633/raw )

Stage: build
Name: debian-bookworm-32-gcc-debug
Job #5699773184 ( https://gitlab.com/xen-project/xen/-/jobs/5699773184/raw )

Stage: build
Name: alpine-3.18-gcc-debug
Job #5699773601 ( https://gitlab.com/xen-project/xen/-/jobs/5699773601/raw )

Stage: build
Name: debian-bookworm-gcc-debug
Job #5699773318 ( https://gitlab.com/xen-project/xen/-/jobs/5699773318/raw )

Stage: build
Name: archlinux-gcc

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | dbe69e1c</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1098406925 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/dbe69e1c8555b40a43=
cde482615501eb8515ab80" style=3D"color: #3777b0; text-decoration: none;">=

dbe69e1c
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
x86/DMI: adjustments to comply with Misra C:201...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1098406925">#1098406925</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 12 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773663" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773179" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773590" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773322" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773671" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773771" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773767" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773780" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773633" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773184" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773601" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5699773318" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65719467347bd_2c95074130146--


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:49:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:49:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649719.1014524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBB0p-0002m7-0K; Thu, 07 Dec 2023 09:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649719.1014524; Thu, 07 Dec 2023 09:49: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 1rBB0o-0002m0-TE; Thu, 07 Dec 2023 09:49:42 +0000
Received: by outflank-mailman (input) for mailman id 649719;
 Thu, 07 Dec 2023 09:49: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=TliB=HS=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rBB0n-0002ln-Cy
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:49:41 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f03e76d6-94e5-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:49:39 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 4FCD74EE073A;
 Thu,  7 Dec 2023 10:49:38 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f03e76d6-94e5-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	Kevin Tian <kevin.tian@intel.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>
Subject: [PATCH 0/3] xen: address violations of MISRA C:2012 Rule 14.4
Date: Thu,  7 Dec 2023 10:48:41 +0100
Message-Id: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
headline states:
"The controlling expression of an if statement and the controlling
expression of an iteration-statement shall have essentially Boolean type".

Add comparisons to avoid using enum constants as controlling expressions
to comply with Rule 14.4.

Example:
    extern enum __packed iommu_intremap {
       iommu_intremap_off,
       iommu_intremap_restricted,
       iommu_intremap_full,
    } iommu_intremap;

    if ( iommu_intremap )                       /* non-compliant */
    if ( iommu_intremap != iommu_intremap_off ) /* compliant, proposed change */

Struct domain member is_dying is an anonymous enum variable designed to act as boolean.
Add deviation to mark its uses in controlling expressions as deliberate.

Maria Celeste Cesario (3):
  AMD/IOMMU: address violations of MISRA C:2012 Rule 14.4
  xen/x86: address violations of MISRA C:2012 Rule 14.4
  xen: address violations of MISRA C:2012 Rule 14.4

 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 docs/misra/deviations.rst                        | 6 ++++++
 xen/arch/x86/hpet.c                              | 6 +++---
 xen/arch/x86/msi.c                               | 4 ++--
 xen/arch/x86/x86_emulate/x86_emulate.c           | 8 ++++----
 xen/drivers/passthrough/amd/iommu_init.c         | 4 ++--
 xen/drivers/passthrough/vtd/iommu.c              | 4 ++--
 xen/drivers/passthrough/vtd/quirks.c             | 2 +-
 8 files changed, 26 insertions(+), 14 deletions(-)

-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:51:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:51:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649722.1014536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBB28-00049X-Bo; Thu, 07 Dec 2023 09:51:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649722.1014536; Thu, 07 Dec 2023 09:51: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 1rBB28-00049Q-7B; Thu, 07 Dec 2023 09:51:04 +0000
Received: by outflank-mailman (input) for mailman id 649722;
 Thu, 07 Dec 2023 09:51:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TliB=HS=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rBB26-00048w-EC
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:51:02 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f34fa2d-94e6-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:50:58 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id B5F134EE073A;
 Thu,  7 Dec 2023 10:50:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f34fa2d-94e6-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	Kevin Tian <kevin.tian@intel.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 1/3] AMD/IOMMU: address violations of MISRA C:2012 Rule 14.4
Date: Thu,  7 Dec 2023 10:48:42 +0100
Message-Id: <097df7703c372a687206251fe97bfc5df18222b6.1701941924.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
headline states:
"The controlling expression of an if statement and the controlling
expression of an iteration-statement shall have essentially Boolean type".

Add comparisons to avoid using enum constants as controlling expressions
to comply with Rule 14.4.
No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 xen/drivers/passthrough/amd/iommu_init.c | 4 ++--
 xen/drivers/passthrough/vtd/iommu.c      | 4 ++--
 xen/drivers/passthrough/vtd/quirks.c     | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 5515cb70fd..e02a09a9a7 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -1480,7 +1480,7 @@ int __init amd_iommu_init(bool xt)
             goto error_out;
     }
 
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
         register_keyhandler('V', &amd_iommu_dump_intremap_tables,
                             "dump IOMMU intremap tables", 0);
 
@@ -1498,7 +1498,7 @@ int __init amd_iommu_init_late(void)
 
     /* Further initialize the device table(s). */
     pci_init = true;
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
         rc = iterate_ivrs_mappings(amd_iommu_setup_device_table);
 
     for_each_amd_iommu ( iommu )
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index e13b7d99db..bd6d69a6f5 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2543,7 +2543,7 @@ static int __must_check init_vtd_hw(bool resume)
     /*
      * Enable interrupt remapping
      */  
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         int apic;
         for ( apic = 0; apic < nr_ioapics; apic++ )
@@ -2559,7 +2559,7 @@ static int __must_check init_vtd_hw(bool resume)
             }
         }
     }
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         for_each_drhd_unit ( drhd )
         {
diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
index 5a56565ea8..950dcd56ef 100644
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -392,7 +392,7 @@ void __init platform_quirks_init(void)
     map_igd_reg();
 
     /* Tylersburg interrupt remap quirk */
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
         tylersburg_intremap_quirk();
 }
 
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:51:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:51:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649723.1014544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBB2H-0004Rw-HX; Thu, 07 Dec 2023 09:51:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649723.1014544; Thu, 07 Dec 2023 09: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 1rBB2H-0004Rp-Eb; Thu, 07 Dec 2023 09:51:13 +0000
Received: by outflank-mailman (input) for mailman id 649723;
 Thu, 07 Dec 2023 09: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=TliB=HS=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rBB2F-00048w-Rv
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09: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 264f2883-94e6-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 10:51:10 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 91B904EE073A;
 Thu,  7 Dec 2023 10:51:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 264f2883-94e6-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	Wei Liu <wl@xen.org>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 2/3] xen/x86: address violations of MISRA C:2012 Rule 14.4
Date: Thu,  7 Dec 2023 10:48:43 +0100
Message-Id: <d494980216b8f0f870083fcfae7269f45e779780.1701941924.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
headline states:
"The controlling expression of an if statement and the controlling
expression of an iteration-statement shall have essentially Boolean type".

Add comparisons to avoid using enum constants as controlling expressions
to comply with Rule 14.4.
No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 xen/arch/x86/hpet.c                    | 6 +++---
 xen/arch/x86/msi.c                     | 4 ++--
 xen/arch/x86/x86_emulate/x86_emulate.c | 8 ++++----
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index 7be26c6a9b..d1ddc8ddf6 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -279,7 +279,7 @@ static int hpet_msi_write(struct hpet_event_channel *ch, struct msi_msg *msg)
 {
     ch->msi.msg = *msg;
 
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         int rc = iommu_update_ire_from_msi(&ch->msi, msg);
 
@@ -353,7 +353,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
     u32 cfg = hpet_read32(HPET_Tn_CFG(ch->idx));
     irq_desc_t *desc = irq_to_desc(ch->msi.irq);
 
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         ch->msi.hpet_id = hpet_blockid;
         ret = iommu_setup_hpet_msi(&ch->msi);
@@ -372,7 +372,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
         ret = __hpet_setup_msi_irq(desc);
     if ( ret < 0 )
     {
-        if ( iommu_intremap )
+        if ( iommu_intremap != iommu_intremap_off )
             iommu_update_ire_from_msi(&ch->msi, NULL);
         return ret;
     }
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 7f8e794254..72dce2e4ab 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -189,7 +189,7 @@ static int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
 {
     entry->msg = *msg;
 
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         int rc;
 
@@ -555,7 +555,7 @@ int msi_free_irq(struct msi_desc *entry)
             destroy_irq(entry[nr].irq);
 
         /* Free the unused IRTE if intr remap enabled */
-        if ( iommu_intremap )
+        if ( iommu_intremap != iommu_intremap_off )
             iommu_update_ire_from_msi(entry + nr, NULL);
     }
 
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index cf780da501..00b7365ed3 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -1320,7 +1320,7 @@ x86_emulate(
         ea.bytes = 2;
         goto srcmem_common;
     case SrcMem:
-        if ( state->simd_size )
+        if ( state->simd_size != simd_none )
             break;
         ea.bytes = (d & ByteOp) ? 1 : op_bytes;
     srcmem_common:
@@ -1460,7 +1460,7 @@ x86_emulate(
         /* Becomes a normal DstMem operation from here on. */
     case DstMem:
         generate_exception_if(ea.type == OP_MEM && evex.z, X86_EXC_UD);
-        if ( state->simd_size )
+        if ( state->simd_size != simd_none )
         {
             generate_exception_if(lock_prefix, X86_EXC_UD);
             break;
@@ -8176,7 +8176,7 @@ x86_emulate(
         goto done;
     }
 
-    if ( state->rmw )
+    if ( state->rmw != rmw_NONE )
     {
         ea.val = src.val;
         op_bytes = dst.bytes;
@@ -8205,7 +8205,7 @@ x86_emulate(
 
         dst.type = OP_NONE;
     }
-    else if ( state->simd_size )
+    else if ( state->simd_size != simd_none )
     {
         generate_exception_if(!op_bytes, X86_EXC_UD);
         generate_exception_if((vex.opcx && (d & TwoOp) &&
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 09:51:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 09:51:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649724.1014555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBB2O-0004rQ-PO; Thu, 07 Dec 2023 09:51:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649724.1014555; Thu, 07 Dec 2023 09:51:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBB2O-0004r8-M4; Thu, 07 Dec 2023 09:51:20 +0000
Received: by outflank-mailman (input) for mailman id 649724;
 Thu, 07 Dec 2023 09:51: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=TliB=HS=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rBB2N-0004o2-Rs
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 09:51:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b15ea27-94e6-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 10:51:18 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 0F9654EE073A;
 Thu,  7 Dec 2023 10:51:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b15ea27-94e6-11ee-98e7-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH 3/3] xen: address violations of MISRA C:2012 Rule 14.4
Date: Thu,  7 Dec 2023 10:48:44 +0100
Message-Id: <3012fb117b4ef6458bdb5cfd046c86bce60a6d51.1701941924.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
headline states:
"The controlling expression of an if statement and the controlling
expression of an iteration-statement shall have essentially Boolean type".

Struct domain member is_dying is an anonymous enum designed to act as boolean.
Add deviation to mark its uses in controlling expressions as deliberate.

Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 docs/misra/deviations.rst                        | 6 ++++++
 2 files changed, 12 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index b0c79741b5..683f2bbfe8 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -321,6 +321,12 @@ statements are deliberate"
 -config=MC3R1.R14.3,statements={deliberate , "wrapped(any(),node(if_stmt))" }
 -doc_end
 
+-doc_begin="The XEN team relies on the fact that the enum is_dying has the
+constant with assigned value 0 act as false and the other ones as true,
+therefore have the same behavior of a boolean"
+-config=MC3R1.R14.4,etypes+={deliberate, "stmt(child(cond,child(expr,ref(^<?domain>?::is_dying$))))","src_type(enum)"}
+-doc_end
+
 #
 # Series 20.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 6e7c4f25b8..eda3c8100c 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -270,6 +270,12 @@ Deviations related to MISRA C:2012 Rules:
        statements are deliberate.
      - Project-wide deviation; tagged as `disapplied` for ECLAIR.
 
+   * - R14.4
+     - The XEN team relies on the fact that the enum is_dying has the
+       constant with assigned value 0 act as false and the other ones as true,
+       therefore have the same behavior of a boolean.
+     - Project-wide deviation; tagged as `deliberate` for ECLAIR.
+
    * - R20.7
      - Code violating Rule 20.7 is safe when macro parameters are used:
        (1) as function arguments;
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:00:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:00:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649741.1014564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBBT-0007yf-Lg; Thu, 07 Dec 2023 10:00:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649741.1014564; Thu, 07 Dec 2023 10: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 1rBBBT-0007yY-JB; Thu, 07 Dec 2023 10:00:43 +0000
Received: by outflank-mailman (input) for mailman id 649741;
 Thu, 07 Dec 2023 10:00: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBBBS-0007yS-OW
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:00:42 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a1185e8-94e7-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 11:00:40 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c0a11a914so7993175e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 02:00:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fa7-20020a05600c518700b0040648217f4fsm1394496wmb.39.2023.12.07.02.00.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 02:00:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a1185e8-94e7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701943240; x=1702548040; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=oXOhIWCKEnB2duJ8PCYjvphliNfQP4zB5dsCyjESU/4=;
        b=MNt5OXN4Y/5ivgugePyl/hCDWrB9EqqXoxiP0GRjtrl1yY8qPxlnuqSOlHmTml9lsb
         QLV5j1hg+j9jH/UXZBV5wMun5U9k3qOecPWQ0qe/zR5eZCbFF9CO1Lu9RKFbmMb0yvrr
         z6hTc4UvMJg++5FlDhBM57FJJlGUpCQJWPslOwXphq6W0A2o+X424PMDkEr0qBAfQM4Q
         k8d8m4N/Wb+b7uZq47dDupu1xUsERUaSRtziEd/nClodEG+HD+BLRKNMx/wZKCikcKLA
         zuRSEuqARxfte/2FWlqugjdTBqRWYXZGc0o9CIc5/7FXBol/jK11nHSmUrlSgFX7S+bw
         wdzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701943240; x=1702548040;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=oXOhIWCKEnB2duJ8PCYjvphliNfQP4zB5dsCyjESU/4=;
        b=dKLGjWr9VMRAGWMNYLEMHd7+fSU21DHbdRiE59b8c2ynvsDRlNV97WBvJsV1qDK99/
         EE4Iw8IVJfKe31inGA37qf//u3FweesRUsxS4ozEbh0Pn6Lqx06uyjl0VgqCEQKtLOE4
         JsOsURgMaTSLpCww3MKamW6nRFeluRMQTkwX9JaInv5KLVzd8EhVN/JhFkyfm8OZ75dF
         iR9ht1QbFkRsQ5VcvwxJ9MHm4UkjPaVpmxNiZ0RKydkYVzgt7GhmLzN0yrTpZumdRtx+
         92BuJq2Zl4PtnO9fkXQ8q/QndhRWcoyOzMnCj1/QcQ2LGtQCuwSSw7CtNsqhLcQljcBP
         lQzQ==
X-Gm-Message-State: AOJu0Yx/LTbYoheuIAEzDDj05/5Pyy3Ky8LKJAvB2qjKLmBehS7OwvxE
	Dr88i5ISM9SuwHJg6ubo23oS
X-Google-Smtp-Source: AGHT+IGJi/eCBxm350s8xlgFKfRmnCWGcTaWkZ7jFawqI5v9szX4/JIR1fFl7PkOkwXjmDLZ5pE1mQ==
X-Received: by 2002:a05:600c:22d9:b0:40c:1e66:4dc6 with SMTP id 25-20020a05600c22d900b0040c1e664dc6mr1224191wmg.106.1701943239648;
        Thu, 07 Dec 2023 02:00:39 -0800 (PST)
Message-ID: <008d0c66-6816-4d12-9e1f-1878e982f9fc@suse.com>
Date: Thu, 7 Dec 2023 11:00:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/39] xen/riscv: disable unnecessary configs
Content-Language: en-US
To: Oleksii <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.oleksii.kurochko@gmail.com>
 <fdfda320-b73b-4830-8f1b-d261b02bcdde@suse.com>
 <22fa451f7b165a00082443a35077e98e101c22e4.camel@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: <22fa451f7b165a00082443a35077e98e101c22e4.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.12.2023 10:22, Oleksii wrote:
> On Tue, 2023-12-05 at 16:38 +0100, Jan Beulich wrote:
>>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>>>> The patch also fixes the build script as conf util expects
>>>>> to have each config on separate line.
>>>
>>> The approach doesn't really scale (it's already odd that you add
>>> the
>>> (apparently) same set four times. There's also zero justification
>>> for
>>> this kind of an adjustment (as per discussion elsewhere I don't
>>> think
>>> we should go this route, and hence arguments towards convincing me
>>> [and
>>> perhaps others] would be needed here).
> I agree that this may not be the best approach, but it seems like we
> don't have too many options to turn off a config for randconfig.
> 
> To be honest, in my opinion (IMO), randconfig should either be removed
> or allowed to fail until most of the functionality is ready. Otherwise,
> there should be a need to introduce HAS_* or depend on
> 'SUPPORTED_ARCHS' for each config, or introduce a lot of stubs.
> 
> Could you please suggest a better option?

As to dropping randconfig tests, I'd like to refer you to Andrew, who
is of the opinion that it was wrong to drop them for ppc. (I'm agreeing
with him when taking a theoretical perspective, but I'm not happy with
the practical consequences.)

As to a better approach: Instead of listing the same set of options
several times, can't there be a template config which is used to force
randconfig to not touch certain settings? In fact at least for non-
randconfig purposes I thought tiny64_defconfig / riscv64_defconfig
already serve kind of a similar purpose. Imo the EXTRA_*CONFIG overrides
are there for at most very few special case settings, not for purposes
like you use them here.

>>>>> --- a/automation/gitlab-ci/build.yaml
>>>>> +++ b/automation/gitlab-ci/build.yaml
>>>>> @@ -522,6 +522,38 @@ archlinux-current-gcc-riscv64:
>>>>> Â Â Â Â  CONTAINER: archlinux:current-riscv64
>>>>> Â Â Â Â  KBUILD_DEFCONFIG: tiny64_defconfig
>>>>> Â Â Â Â  HYPERVISOR_ONLY: y
>>>>> +Â Â Â  EXTRA_XEN_CONFIG:
>>>>> +Â Â Â Â Â  CONFIG_COVERAGE=n
>>>>> +Â Â Â Â Â  CONFIG_GRANT_TABLE=n
>>>>> +Â Â Â Â Â  CONFIG_SCHED_CREDIT=n
>>>>> +Â Â Â Â Â  CONFIG_SCHED_CREDIT2=n
>>>>> +Â Â Â Â Â  CONFIG_SCHED_RTDS=n
>>>>> +Â Â Â Â Â  CONFIG_SCHED_NULL=n
>>>>> +Â Â Â Â Â  CONFIG_SCHED_ARINC653=n
>>>>> +Â Â Â Â Â  CONFIG_TRACEBUFFER=n
>>>>> +Â Â Â Â Â  CONFIG_HYPFS=n
>>>>> +Â Â Â Â Â  CONFIG_GRANT_TABLE=n
>>>>> +Â Â Â Â Â  CONFIG_SPECULATIVE_HARDEN_ARRAY=n
>>>>> +Â Â Â Â Â  CONFIG_ARGO=n
>>>>> +Â Â Â Â Â  CONFIG_HYPFS_CONFIG=n
>>>>> +Â Â Â Â Â  CONFIG_CORE_PARKING=n
>>>>> +Â Â Â Â Â  CONFIG_DEBUG_TRACE=n
>>>>> +Â Â Â Â Â  CONFIG_IOREQ_SERVER=n
>>>>> +Â Â Â Â Â  CONFIG_CRASH_DEBUG=n
>>>>> +Â Â Â Â Â  CONFIG_KEXEC=n
>>>>> +Â Â Â Â Â  CONFIG_LIVEPATCH=n
>>>>> +Â Â Â Â Â  CONFIG_MEM_ACCESS=n
>>>>> +Â Â Â Â Â  CONFIG_NUMA=n
>>>>> +Â Â Â Â Â  CONFIG_PERF_COUNTERS=n
>>>>> +Â Â Â Â Â  CONFIG_HAS_PMAP=n
>>>>> +Â Â Â Â Â  CONFIG_TRACEBUFFER=n
>>>>> +Â Â Â Â Â  CONFIG_XENOPROF=n
>>>>> +Â Â Â Â Â  CONFIG_COMPAT=n
>>>>> +Â Â Â Â Â  CONFIG_COVERAGE=n
>>>>> +Â Â Â Â Â  CONFIG_UBSAN=n
>>>>> +Â Â Â Â Â  CONFIG_NEEDS_LIBELF=n
>>>>> +Â Â Â Â Â  CONFIG_XSM=n
>>>>> +
>>>>> Â 
>>>>> Â archlinux-current-gcc-riscv64-debug:
>>>>> Â Â  extends: .gcc-riscv64-cross-build-debug
>>>
>>> I think I've said so elsewhere before: Please avoid introducing
>>> double
>>> blank lines, unless entirely unavoidable (for reasons I cannot
>>> think
>>> of).
> Sorry for that; I am not doing that on purpose. It's just a big patch
> series, and I missed that double blank. I will try to be more
> attentive.
> 
> Do you think it makes sense to add a script to perform basic code style
> checks, similar to what Linux has?

Such a script would be nice, but it doesn't exist and re-using existing
checkers has also proven controversial. There's actually an ongoing
discussion on this topic which you may want to follow.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:03:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:03:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649744.1014576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBEG-0000MG-4P; Thu, 07 Dec 2023 10:03:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649744.1014576; Thu, 07 Dec 2023 10:03:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBEG-0000M9-07; Thu, 07 Dec 2023 10:03:36 +0000
Received: by outflank-mailman (input) for mailman id 649744;
 Thu, 07 Dec 2023 10:03: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBBEE-0000M3-IA
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:03:34 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e0c87b78-94e7-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 11:03:32 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c09b021daso9684595e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 02:03:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 h17-20020adff191000000b003334a1e92dasm1019745wro.70.2023.12.07.02.03.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 02:03:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0c87b78-94e7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701943412; x=1702548212; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=IVk7Kz7JjYBNQy6gS/IYwYKuDUpulP39JKkQlsuy2a0=;
        b=ZLp/lQBSVZIHfNFtdl0US2SSOt0HkF9sOvRQj+nk8cZAKC87aSWoTyLjuNq8Xlrxy4
         i/TsUwCQJgnkzgXOHYMaEZEiIgqEBZzF0lOb34C44gBsPGjgRvQ5di9BEFLYpx2O+4qG
         lAK1VLsj+X1Qe/VWkpkT/kIKScIQ1RPLQEUHddUe6NxG+arswdY+xPy+Vo7p7lRLUTe/
         f1bJoCD4drPqnD2/bk9aIGwu4XmVqpmbeaVMKcGhucvXYE1SFhOJqLxwJHh92W2s8++t
         JPxrp4Uf4WWlldX6PJvnNoGURGIM7yp/P5Dcoill1kiGT8MB92jyQRl85u/bgR+zj4rx
         FgQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701943412; x=1702548212;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=IVk7Kz7JjYBNQy6gS/IYwYKuDUpulP39JKkQlsuy2a0=;
        b=BgAIJbVYIMlM3r4KHYlitR/8ZETqMpjTbHOQCvggKGt9BqXIUWBsVXYAMQTSYG6vBD
         Yl3m0W29AeB/JOB1CXYTh6Z8G8/razd1m7zhCAYyUuFMqNKyVv3hONluQzBrFQOZf5f3
         VAV6ifD/zkVBrPCO3NipcndfI5lFaIMh4Iwdq0BhI25sDyMQRUHTrb9vMxe75DKFQBnq
         YIp8ZXycZEzpFvkvRcWMj9OB9yu9zAb0Bwi2lqCfRntefarOP/TVsWVlEsVfKL8xcQ1u
         TN/Emli/rTMRXDrBCWMjLuuV+3xdMUOvXweAiVr3sv3WWj54rV2JXHCkeCl65nxPGw/P
         XJQw==
X-Gm-Message-State: AOJu0Yz6ol1FPpQcY8atjdfBujGaAhJBidxArryCQyWSDxjle33w6GVS
	XvzUsGU4Gc56JbtxH0xAQwx/
X-Google-Smtp-Source: AGHT+IGl0p62CuuMWhPI6V6INjbvgEGHBWQWQq1V1I/vDsKLhCf1MKFL5LkdoZTOcT/KjLFK6LtclA==
X-Received: by 2002:a05:600c:35d1:b0:40b:5e21:bdea with SMTP id r17-20020a05600c35d100b0040b5e21bdeamr1339196wmq.121.1701943412105;
        Thu, 07 Dec 2023 02:03:32 -0800 (PST)
Message-ID: <cf2f9afb-764e-4c2a-b81a-928c912af37e@suse.com>
Date: Thu, 7 Dec 2023 11:03:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] AMD/IOMMU: address violations of MISRA C:2012 Rule
 14.4
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>
Cc: consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Kevin Tian
 <kevin.tian@intel.com>, xen-devel@lists.xenproject.org
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
 <097df7703c372a687206251fe97bfc5df18222b6.1701941924.git.maria.celeste.cesario@bugseng.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: <097df7703c372a687206251fe97bfc5df18222b6.1701941924.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 10:48, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
> headline states:
> "The controlling expression of an if statement and the controlling
> expression of an iteration-statement shall have essentially Boolean type".
> 
> Add comparisons to avoid using enum constants as controlling expressions
> to comply with Rule 14.4.
> No functional change.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>

Just to mention it here again: I'm not happy about this change, so as
it stands I'm not meaning to ack it. But I'm also not meaning to veto
it in case Andrew is okay(ish) with the proposal.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:09:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:09:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649749.1014586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBJt-0001ct-Tg; Thu, 07 Dec 2023 10:09:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649749.1014586; Thu, 07 Dec 2023 10:09:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBJt-0001cm-PH; Thu, 07 Dec 2023 10:09:25 +0000
Received: by outflank-mailman (input) for mailman id 649749;
 Thu, 07 Dec 2023 10:09:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZB3o=HS=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rBBJs-0001cg-EN
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:09:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b1aa55eb-94e8-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 11:09:23 +0100 (CET)
Received: from [192.168.1.229] (93-36-216-194.ip62.fastwebnet.it
 [93.36.216.194])
 by support.bugseng.com (Postfix) with ESMTPSA id B3FA44EE073C;
 Thu,  7 Dec 2023 11:09:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1aa55eb-94e8-11ee-98e7-6d05b1d4d9a1
Message-ID: <f6245172-d094-411e-9edf-6912129abe18@bugseng.com>
Date: Thu, 7 Dec 2023 11:09:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/5] x86/acpi: remove acpi_pic_sci_set_trigger()
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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1701936906.git.federico.serafini@bugseng.com>
 <f0c7d42c12a0b89c61265cdfe67a35b07d220aa0.1701936906.git.federico.serafini@bugseng.com>
 <2205366c-c66a-419a-9232-ec41432127c1@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <2205366c-c66a-419a-9232-ec41432127c1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 07/12/23 10:19, Jan Beulich wrote:
> On 07.12.2023 09:47, Federico Serafini wrote:
>> Remove apci_pic_set_trigger() declaration: there is no definition and there are
>> no calls to such function in the XEN project.
>>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> A reference to the offending commit would have been nice, the more that iirc
> I had already gone and fished that out for you.

Is it correct to use Fixes: <id> ("subj") even if there are other
useless entities left?
In particular, this is what I think should be removed:

Functions:
__acpi_acquire_global_lock()
__acpi_release_global_lock()
acpi_save_state{mem,disk}()
acpi_restore_state_mem()
acpi_enter_state()
{save,restore}_rest_processor_state()

Variables:
acpi_wakeup_address

Macros:
ACPI_ACQUIRE_GLOBAL_LOCK()

If you agree with me, I can propose a new patch which includes such 
removals and refers to the offending commit with a Fixes.

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:14:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:14:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649753.1014595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBP4-0003jm-Fj; Thu, 07 Dec 2023 10:14:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649753.1014595; Thu, 07 Dec 2023 10:14:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBP4-0003jf-C3; Thu, 07 Dec 2023 10:14:46 +0000
Received: by outflank-mailman (input) for mailman id 649753;
 Thu, 07 Dec 2023 10:14:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3y0a=HS=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBBP3-0003jZ-Pv
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:14:45 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062f.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70a2781e-94e9-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 11:14:44 +0100 (CET)
Received: from MN2PR17CA0006.namprd17.prod.outlook.com (2603:10b6:208:15e::19)
 by IA1PR12MB6212.namprd12.prod.outlook.com (2603:10b6:208:3e4::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Thu, 7 Dec
 2023 10:14:40 +0000
Received: from BL02EPF0001A107.namprd05.prod.outlook.com
 (2603:10b6:208:15e:cafe::e3) by MN2PR17CA0006.outlook.office365.com
 (2603:10b6:208:15e::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Thu, 7 Dec 2023 10:14:40 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A107.mail.protection.outlook.com (10.167.241.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Thu, 7 Dec 2023 10:14: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.34; Thu, 7 Dec
 2023 04:14:39 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 7 Dec
 2023 04:14:39 -0600
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.34
 via Frontend Transport; Thu, 7 Dec 2023 04:14:38 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70a2781e-94e9-11ee-98e7-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=A6rASXLSUg7L400/jcb/QIseqtMmXPd8CODRMPRud97oY33VeXDoc/wirb5J/cVCOp0VpceJaL7rMo7LGQ4Rtk7VXx0KFtJcxsPcYIE/0UJqSBsAkh2gbydbjN9+AA16jJMOl8KexFFV0gDTKsT2G6g9P3Og0fqqG3rkrZ48DLWL36TaaL8hgtuMVEqduL8ngqJMY/1tXfcg5YVCEd2hxKDhjXXMzQ9dYXtQ6cGwOP8QLvDaYNLQK9pmbqkCr5vueYmuSKWXSWwT+YpHd15xykzcF+jPFMttviwMzpNW4t7rBSEiSKNs44PGjL2rqzHH72vItEGLYSaR3xgjP7vhkg==
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=WOVdor1/yV1fzI4Tcri4bpJHQ8CioN6n2kubyVLWEik=;
 b=nFJBAJiTodQ50ptNVsafy9aYnO54zcxPd2AclY78lxsycntoPp76o3j5vKegmS5lUVqMuVUgoZIb3krE0MFsQEU7dxiC/5ROM8dsAGBDm6vd6YUAAX1x/XloQdsAVkAaIRxdUvOfb4xt3Kfk+CiyHkHPahUyfZbwbDjvnTZmeg1mhRsWzXf1vQfRLfr59VnktT+mtAWw2RLzEH2xh0a2/E0NjOMs6+3Bo8/VWLuVy73bFBfj3fEYRRgshvzdDqYRwkRfQrUHv7OIIcwayxV1fJ4FcFpmmh2bRsWwBmEubjaxFCOLAJqWTBZfdU89/m01HDnVTkHRFdhzz6xT0/S5HQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WOVdor1/yV1fzI4Tcri4bpJHQ8CioN6n2kubyVLWEik=;
 b=tlXNoZ4wxuYWzQWX+u9740yPDeuNFrTr1WHpjOH6ejUr9UDNxbqGmkd4qt5OftDSdIS5ne+Ah1cLMcS3v6JJpwxt0T/H5rAyQt2eKMOeepRu9yXuXIHg2QrhhH0Z8jF5sG+9XzgfU1+PwqAdZrHpXZVXrsSm1x9kKcowcHvkfnQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: bootfdt: Check return code of device_tree_for_each_node()
Date: Thu, 7 Dec 2023 11:14:32 +0100
Message-ID: <20231207101432.37732-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A107:EE_|IA1PR12MB6212:EE_
X-MS-Office365-Filtering-Correlation-Id: 40107dc5-9c37-488e-e1dd-08dbf70d52f9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	glKQT8/u0rUJ+ySYCxzroQ0UExOjhcATMWmMK/Hd9gbDY+7gvTVglUAew1GEolsJyE7b5wm9C3Jj2Yqsb20TrwzDX5ai9T9mU/yjAmNz37O9ByjjZcxZBC7T+DL+onnZt7E9VP/MZDFyYPXVzCMFzql8DbHhT3CROiXnASpPPLN7mfG1bOQpBcFZIBqagT1j5WiE+eO+TnhHYkj33jvbC1CtNCAEej/sRUE4sh19mjhvXPVw4N7Djzw2r1h+cjDrIX8B9YYndUinO8wRmnUmOXBXmrjjgaVnlaHJ+OjS9IQXsY6xbXltRM2H/4bBgfV601yhwap1tziYvwXGxVv0nZ3EToG7JdR9js2jN8tOiJhPaTIPiur4kIvUtdnz1fGPcldGQGpjhTUzlHMuuE38SXukgaCsz2V5WUlBYeJyoQ+cU6ke3prvSBpJP0fe2mt57hG3tghv2/GtwuVGDpjhFFUZ0AsOT3o1dDfVxu9fs+/HYljvGdc7OOvXhNqoP2XuLg+viirQlQ5pa7riZC94zEAU2ETeR4P34y2wla6/8sI28IDQsgmoG/jOUZnidD/KOZMnELOXxi3To88IAD3W2q/SUVx6THO08MN5WJd8C5/tnAsbmy7eBs505CPd8nCTbGixc4j3MbRpUluHLV44HfajYKdVkf87KPMm9CuFeIdCM8yC/a2ABGp/4WcD7eFPLXPuv0pf8e03NXUmorTOxOGa4lmenoKBNUlJ4pwvc78eHj1vCPGKjoTXqaVpVIfWVBS4aIgY7SoGgrcVrUgvAQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(136003)(376002)(396003)(39860400002)(230922051799003)(186009)(1800799012)(82310400011)(64100799003)(451199024)(46966006)(36840700001)(40470700004)(81166007)(47076005)(356005)(40480700001)(336012)(83380400001)(426003)(36860700001)(1076003)(2616005)(41300700001)(6666004)(26005)(6916009)(54906003)(316002)(478600001)(70586007)(70206006)(82740400003)(86362001)(44832011)(40460700003)(5660300002)(2906002)(4326008)(8936002)(8676002)(36756003)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2023 10:14:40.1331
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 40107dc5-9c37-488e-e1dd-08dbf70d52f9
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A107.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6212

As a result of not checking the return code of device_tree_for_each_node()
in boot_fdt_info(), any error occured during early FDT parsing does not
stop Xen from booting. This can result in an unwanted behavior in later
boot stages. Fix it by checking the return code and panicing on an error.

Fixes: 9cf4a9a46717 ("device tree: add device_tree_for_each_node()")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
I've lost count how many times I had to fix missing rc check. However, I have
not yet found any checker for this (-Wunused-result is pretty useless).
---
 xen/arch/arm/bootfdt.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
index b1f03eb2fcdd..f496a8cf9494 100644
--- a/xen/arch/arm/bootfdt.c
+++ b/xen/arch/arm/bootfdt.c
@@ -541,7 +541,9 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
 
     add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
 
-    device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
+    ret = device_tree_for_each_node((void *)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
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:39:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:39:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649758.1014605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBmj-0001mo-6E; Thu, 07 Dec 2023 10:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649758.1014605; Thu, 07 Dec 2023 10: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 1rBBmj-0001mh-3X; Thu, 07 Dec 2023 10:39:13 +0000
Received: by outflank-mailman (input) for mailman id 649758;
 Thu, 07 Dec 2023 10: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=/3y/=HS=arm.com=Penny.Zheng@srs-se1.protection.inumbo.net>)
 id 1rBBmi-0001mb-CA
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:39:12 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2077.outbound.protection.outlook.com [40.107.7.77])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dae7e15f-94ec-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 11:39:10 +0100 (CET)
Received: from AS4P190CA0016.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5d0::10)
 by DB9PR08MB7795.eurprd08.prod.outlook.com (2603:10a6:10:39a::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25; Thu, 7 Dec
 2023 10:38:40 +0000
Received: from AM3PEPF0000A795.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d0:cafe::66) by AS4P190CA0016.outlook.office365.com
 (2603:10a6:20b:5d0::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Thu, 7 Dec 2023 10:38:40 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM3PEPF0000A795.mail.protection.outlook.com (10.167.16.100) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Thu, 7 Dec 2023 10:38:39 +0000
Received: ("Tessian outbound 7c4ecdadb9e7:v228");
 Thu, 07 Dec 2023 10:38:39 +0000
Received: from 740bd187e9ce.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 5F0BFF0F-141D-4E9C-870A-A269F46461DB.1; 
 Thu, 07 Dec 2023 09:57:07 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 740bd187e9ce.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 07 Dec 2023 09:57:07 +0000
Received: from AS9PR05CA0257.eurprd05.prod.outlook.com (2603:10a6:20b:493::9)
 by DBAPR08MB5847.eurprd08.prod.outlook.com (2603:10a6:10:1a0::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25; Thu, 7 Dec
 2023 09:57:01 +0000
Received: from AMS0EPF00000195.eurprd05.prod.outlook.com
 (2603:10a6:20b:493:cafe::a1) by AS9PR05CA0257.outlook.office365.com
 (2603:10a6:20b:493::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Thu, 7 Dec 2023 09:57:01 +0000
Received: from nebula.arm.com (40.67.248.234) by
 AMS0EPF00000195.mail.protection.outlook.com (10.167.16.215) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Thu, 7 Dec 2023 09:57:01 +0000
Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com
 (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Thu, 7 Dec
 2023 09:56:59 +0000
Received: from [10.169.172.174] (10.169.172.174) by mail.arm.com
 (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend
 Transport; Thu, 7 Dec 2023 09:56: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: dae7e15f-94ec-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=EUryys58tZ1ezxgxk09GlD/GS/izIaZSkIwKfu0Eovn5+CNd4HQJciXcfmDIdfBY1A67OGMV49mbCOcylBIKeqwgvCgs7rK5GTsf+7PfgrdD0n4gGE6LA1862fwwOMDVvaC13LtzISgbFmUpxv8UReMalKYvsrwRUFEQD353rkJxLMbAnc23ZEUwTJsiQwt8xl8Ch0+QqYV+7hPyLwFB7PAOsKhJuOrrsXxLmP/wABOxIwkmLsiUIeQ/R0yGibUeKHhSMqPNTnlalP+RwIXhf5UcfZsAG60OB4YAOApQFpnOybOXo36obII8c74FxUhXXzk55FLwvAayQ4PzNDeb1w==
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=yBG2u2yERX6y59klU8cmRDWiTUFOl60ag5KyakPDLsg=;
 b=NlWC12hND5I87LULQSJInciJIQSBfiy61e/BFT+ixtri5iAyJQ70Oxq1WscGDvHVSEnto/wgTxV+a6XEyQGXDtsR/f20ckK2Y7TatiKYqdUPScsGMZTfDjzpEEWiBSmCOqfW5Y8YRRe/oOx+1LDvsJ6jX8m1MUQCUmSmix/ktFVCJE4aZMApaTQJuwryfkb8/foYGtH0l6egMMxSJJ9JyeCWjDPVxsF4udydktXM9dHodkq+TVQ1LsHGXQY43UredN15y6D8U/8CYM5eSc0pT4qFl8pXl/F9PcIKGi7T3paLQQ54RsyuQ3uYyN530W8z63lvo2EkbwlZ8gurKX/LAw==
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=armh.onmicrosoft.com; arc=pass (0
 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yBG2u2yERX6y59klU8cmRDWiTUFOl60ag5KyakPDLsg=;
 b=Z2dzyRjwqnbXMp53lHs80HqFfyWlqxhOohqupMDgBHRCUAtxNprkk2jRDLZ6+HqRhn0YaVKeJcchS7FCOBvFN9vL5NAHFhM84K6r651khC4sERZGTAXdz48XfgSH3BnvKaUotpB00tGFJJYETIukkN5Zx+ZrKGE6UuU80Zmqhc8=
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=armh.onmicrosoft.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: 7dbcdf01292bc6ba
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=i92jiHRw/mvqUUsnzIUjxOZItrQf6IePKBKUkCtWwA0mYqXaxislCiHRi15VMwrvIH2aA3PvC1m12xhF6+bURI2kRqR2N1j7b+7CL6bj6qKXMTbpqMONu/kIBBPC5qbe6zQSeCrSb8fG3uN5t9Icre8zqaUNrEkn8zVYKZ7Stf1ylcwbkQNQwIXPXAF9qnPtNikLfqGPZ1weZ8HqeuqVldXO6o/rnBAroMN454q5Zgt9FSASMHd0qGwsoIlobyUw2u2X6bK02hk4t44UaFqDgmJuo1zgQZZXaU2TolaApT99ETIuV+3bnQZZRz1HQ6AJMYHTAPxebbHOF1edDThA8Q==
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=yBG2u2yERX6y59klU8cmRDWiTUFOl60ag5KyakPDLsg=;
 b=h5yp1qXvPZ+hFVPFuDx98DA4XeY9Zu6NUmEWoXteYEAeLU+7Ei3uzIwvpf0HX07AdRw55PeyFl9FFWxF9X7XzQjBsFTJY/Ob/dcy5vWEhcwj751uOHC1Da5P/d3V3rjUigws8YL2MuzDvkxQH4iDppmC1/SNa/K9m2PHHbfTqWoAK0BsAD3VrpnJ2Qv5vHDpT3PGJrj7zxMSBlT/HwreAIxwZB/DKWD+resDY2e0/9zoNmDOf5MM462GshrtKuox26ol90nkFkRfJjhf3lsuR3ND3bMfUBNZ1xLq8Onswe7rkkann8/IMShoe66b8PCnn+cEd57WD0qVNh2oMUWTsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 40.67.248.234) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message
 not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yBG2u2yERX6y59klU8cmRDWiTUFOl60ag5KyakPDLsg=;
 b=Z2dzyRjwqnbXMp53lHs80HqFfyWlqxhOohqupMDgBHRCUAtxNprkk2jRDLZ6+HqRhn0YaVKeJcchS7FCOBvFN9vL5NAHFhM84K6r651khC4sERZGTAXdz48XfgSH3BnvKaUotpB00tGFJJYETIukkN5Zx+ZrKGE6UuU80Zmqhc8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234)
 smtp.mailfrom=arm.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 40.67.248.234 as permitted sender) receiver=protection.outlook.com;
 client-ip=40.67.248.234; helo=nebula.arm.com; pr=C
Message-ID: <978feb5a-a220-3505-d1f8-864ec9ea08c3@arm.com>
Date: Thu, 7 Dec 2023 17:56:54 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0)
 Gecko/20100101 Thunderbird/102.15.0
Subject: Re: [PATCH v5 02/11] xen/arm: avoid repetitive checking in
 process_shm_node
Content-Language: en-US
To: Michal Orzel <michal.orzel@amd.com>, <xen-devel@lists.xenproject.org>
CC: <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-3-Penny.Zheng@arm.com>
 <fed944e1-cb66-46a1-b327-d69ad280cc5f@amd.com>
From: Penny Zheng <penny.zheng@arm.com>
In-Reply-To: <fed944e1-cb66-46a1-b327-d69ad280cc5f@amd.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 1
X-MS-TrafficTypeDiagnostic:
	AMS0EPF00000195:EE_|DBAPR08MB5847:EE_|AM3PEPF0000A795:EE_|DB9PR08MB7795:EE_
X-MS-Office365-Filtering-Correlation-Id: cdc158a3-4bd8-49cc-f229-08dbf710acfc
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 2wofqFAS4op/wfG60NLzXiLyELoWp2uqqMGuzCtTeMInsv/D5B8CzhPfOwO5D63XSoPp9xWsi+uzsyRKdUyrWkAia6LnFs3D7lXMiZqRheJTlPiGnPCm1Alvok8HSZ7iRD9cKUXLC8iyuyTnqK6ycXbbxKKdzzVo/GHZC4rv5G6PtKdn9L8J+bjEStDeg6Ksp0PV7xe6md4iAipJXWC+Elmx4vDF7pmmfgY7ySSGGBLiCJbD/1Mz/whjS+U7JsklGRJPMmDV+t5h3ijLPSColJtqLG19AJTEOHg/hYgYZzWksm/cfNpUUD94BrZ8+AV7hJoSEAsDERzhKkIfoiSnuK7HoM1QfeA5/j8cN1k7vvX/iqCaDJ3BN4ZvorYnxVL3VdyfwGPxedr2cFJNAbQci2ajhe9fecjcDZFhC6oPL/vIrIwzfzMPvUhB7xmqz7PVNsB72448VTLzNWw6W0GPRIo5Z0Bi89dZMNH6P7mIY7DJZ/b/+tg9meq42A1dQL9bPblD39mgAkQ3+yKDeoKBLIHY0E4sVvRTNuvHmnpiilXtpNFfIICrxHhTqqhNJK+rQt80x1PRlX+QiMlkN3XcCWWpOsUoajo+VlSVvoKlWpd5sjhptQk4v3YhUBrYcY75lFn/XOAcS3pqugbHQIcqRtifhNlyCASN1wvmbcqy3PORptKia+k2wC7ey/sS/zfMLxe8wDHDF5uHWC/L222gO90N5IR1cUnB4Mt/8hqjAMPlsCGM94vGuaME2BSh9x396Yx+mtmAzBirr4jg7oKjW5RM8sKXtazSFR3zNYW7TyI=
X-Forefront-Antispam-Report-Untrusted:
 CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39850400004)(136003)(346002)(396003)(376002)(84040400005)(230922051799003)(64100799003)(82310400011)(186009)(1800799012)(451199024)(36840700001)(46966006)(53546011)(478600001)(2616005)(31686004)(26005)(336012)(83380400001)(110136005)(316002)(70586007)(70206006)(8936002)(5660300002)(426003)(16576012)(44832011)(54906003)(4326008)(8676002)(47076005)(2906002)(36860700001)(31696002)(40480700001)(86362001)(41300700001)(356005)(36756003)(81166007)(82740400003)(3940600001)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5847
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A795.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	78ea392e-dd5f-4908-430d-08dbf70adbf3
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	jnsRfQkcwy4FWWL/iXrte/zHLNl3m74ZcjSK1+zqfJeKpGD0WS9HolnaUkreBb5zTz8PpLNElhepJPu0OT+5zOhUchVTtuyTUqzobIgE8Xm25staero1TWKcbvYx668r4/b5grSzmYmEtCK6//ZSqMG0SjkhTQkVh2wUDAJEFwXJfTdiM5bZ5GtMDauh6y2DebFq3cvuzA2Ww/VAiiPsyCiWrV7wdFZXWWuIrgFV9b9w+zat9NYsJ2hLAt7AnL/aVEHaIqT+laPy/1Rw8pVCn9nNAVlURgaA5MiUvvFpogMvdG+INHu6/2OWw+Xs1U1uvAzuCHBt1HOW7sMRijXU8JEYCVYVv9VTf+nzC8CbRth016MC0ChWfr75DU1a5GjS0HgEOps7CElCPTL50RsiIRAKtWpAkF09nLQvOX3jwT9xnnYHjxTG3UmlgapMEAwpqD2Zu1+eX9Hg5RmGX0Sl7Koe+WZP66kBFiuOJ6JYXEX8BAQmaRNFrafAXnrN6iWBRrVV57AyYLRaoD3o1wZSxxCj6puefwu30NWu1yHxTaHHef2ktO3CyZdaWQzxkPmQztsBu2b8Ab9BwM0uawsIX1IIfUlz4+VMDzVch8JsxmKgGU44C7pRjiJMJi4lD29CXSjAjUBh5sjfHDLaTUYULNTtulwYRp/5pmrUU+OAfswSHVeox+c01MDPHYhzwjUNlbwfz5rqQdYbIG4WPB7DbE98Xv6IRN3WHWymre6X+4ffifM8biR5trOfOkKpmjWM5GRL1kVTeaFtW4kgP7WYhnyNUpObD5KtgjpQ9pcaw+I=
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:(13230031)(4636009)(376002)(39860400002)(136003)(396003)(346002)(84040400005)(230922051799003)(82310400011)(1800799012)(451199024)(186009)(64100799003)(40470700004)(36840700001)(46966006)(41300700001)(36756003)(5660300002)(40460700003)(2906002)(82740400003)(31686004)(426003)(44832011)(36860700001)(83380400001)(47076005)(8936002)(478600001)(81166007)(53546011)(4326008)(8676002)(107886003)(86362001)(336012)(31696002)(26005)(40480700001)(54906003)(316002)(110136005)(16576012)(2616005)(70586007)(70206006)(3940600001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2023 10:38:39.6384
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cdc158a3-4bd8-49cc-f229-08dbf710acfc
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:
	AM3PEPF0000A795.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7795

Hi Michal

On 2023/12/6 19:35, Michal Orzel wrote:
> Hi Penny,
> 
> On 06/12/2023 10:06, Penny Zheng wrote:
>>
>>
>> Putting overlap and overflow checking in the loop is causing repetitive
>> operation, so this commit extracts both checking outside the loop.
>>
>> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> In general the patch looks good to me:
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 

Thx~

> That said, there are 2 things I realized during review.
> 
>> ---
>> v6:
>> new commit
>> ---
>>   xen/arch/arm/static-shmem.c | 39 +++++++++++++++----------------------
>>   1 file changed, 16 insertions(+), 23 deletions(-)
>>
>> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
>> index cb268cd2ed..1a1a9386e4 100644
>> --- a/xen/arch/arm/static-shmem.c
>> +++ b/xen/arch/arm/static-shmem.c
>> @@ -349,7 +349,7 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>>   {
>>       const struct fdt_property *prop, *prop_id, *prop_role;
>>       const __be32 *cell;
>> -    paddr_t paddr, gaddr, size;
>> +    paddr_t paddr, gaddr, size, end;
>>       struct meminfo *mem = &bootinfo.reserved_mem;
>>       unsigned int i;
>>       int len;
>> @@ -422,6 +422,13 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>>           return -EINVAL;
>>       }
>>
>> +    end = paddr + size;
>> +    if ( end <= paddr )
>> +    {
>> +        printk("fdt: static shared memory region %s overflow\n", shm_id);
>> +        return -EINVAL;
>> +    }
>> +
>>       for ( i = 0; i < mem->nr_banks; i++ )
>>       {
>>           /*
>> @@ -441,30 +448,13 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>>                   return -EINVAL;
>>               }
>>           }
>> +        else if ( strcmp(shm_id, mem->bank[i].shm_id) != 0 )
>> +            continue;
>>           else
>>           {
>> -            paddr_t end = paddr + size;
>> -            paddr_t bank_end = mem->bank[i].start + mem->bank[i].size;
>> -
>> -            if ( (end <= paddr) || (bank_end <= mem->bank[i].start) )
> You are iterating over reserved memory regions in general, so apart from shmem regions there might be truly /reserved ones.
> It appears that we don't have overflow check in device_tree_get_meminfo, so this second check was the only place to detect that
> (protected by a feature, so not very useful) :) This is just an observation and I agree to drop it. We should be checking for an
> overflow in device_tree_get_meminfo.
> 

True~

> The second observation I made is that we don't seem to assign and check the return code from device_tree_for_each_node.
> This means, that any error while parsing the early fdt (e.g. static shm issues) does not stop Xen from booting, which might result in strange behavior later on.
> If others agree, I'm ok to send a fix for that.
> 
> ~Michal

Penny Zheng
Many thanks


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:42:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:42:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649760.1014615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBpt-0003bw-Kl; Thu, 07 Dec 2023 10:42:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649760.1014615; Thu, 07 Dec 2023 10:42:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBpt-0003bR-Gm; Thu, 07 Dec 2023 10:42:29 +0000
Received: by outflank-mailman (input) for mailman id 649760;
 Thu, 07 Dec 2023 10:42: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBBps-0003Zy-0Z
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:42:28 +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 4f0184ff-94ed-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 11:42:24 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-50bfe99b6edso598986e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 02:42:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 s16-20020adfea90000000b003333bd63792sm1093472wrm.117.2023.12.07.02.42.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 02:42:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f0184ff-94ed-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701945745; x=1702550545; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=C9o94U9FucqyeIDpMPVVoTggLZbaDgC5Qr3jrS8jT2o=;
        b=g2yqtv2pLByfypnjTOUUY8MyN8o8z80uHnmTDKK2kaupBtzWZfsqsixcf9GUJYf0b1
         b8/Atju7f9eh5C8htDlEeQZ9OZjMTHECW9l/fJq70GHARZ66ttfrj3usdPPYEk8kstBQ
         0jY3kBOXSpT/Tp8FgEvbyTSNkk2DncPz3npR9Ewyrs9MgZtH6ZYeDX0Wq/7np2S1PuVk
         BhLbtFdZ4bWaTCizoDuoFVf/PknRrD6fMM5DElMF//Dzzcxov5fkoh07a88/GKmUFcop
         /6wx8xI8b3PU91Cxtj1xKLzuRUHnB0joDjUlU8P6fEQjNszZPFPrNM251fLk1WBcT5Xe
         Mtcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701945745; x=1702550545;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C9o94U9FucqyeIDpMPVVoTggLZbaDgC5Qr3jrS8jT2o=;
        b=cUsAQIUbHBufzRdVeicqx8pP9XuKCj0GyzmSDpGhFpqwV7Wo+aMQnOPUTNc+MsqhpH
         /PQ5P8DJ0kCY5I9fNWX6Rg1OjJtyTxz4/cc+eNHxYOf27pwVXO3Gg6EQyUg0B/48TaKR
         ovNEDhowmgvBAti/HumcAqtdHz7bN2+rht1s2DnWBJCLxyjIpV5H4ZvCK+/4sfMYFicQ
         URQo/tdWQSwiqHvsXPdDm071onPENC8rb4fuJQl9WhVzq6hbH0LbLLgKau9uLbOGO6xp
         +w5R5mAhCwcYJNTJuuTBlhkbruIX3oK/f7aaw/P8c/gAr7iNYJ7ChJLpB7ujIewttKUv
         jw5g==
X-Gm-Message-State: AOJu0YwDv6kb7T0ycXuHD/QzWaknir5A+ONnzlCUKGLru0QJE1dpTrrF
	UIXQddUk8c/1V5WDkfY1MA3v
X-Google-Smtp-Source: AGHT+IH4fWe9RpL9yXNv+ImxzFQdRKBKO/vh7tmYs/I5fcXDTfRtY7Fd1lJRrJIoh3r+XPp0WjD5RA==
X-Received: by 2002:a05:6512:3481:b0:50b:e980:9cd with SMTP id v1-20020a056512348100b0050be98009cdmr1212342lfr.75.1701945744807;
        Thu, 07 Dec 2023 02:42:24 -0800 (PST)
Message-ID: <77e17b59-25d9-455e-b3da-b50bb524614a@suse.com>
Date: Thu, 7 Dec 2023 11:42:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/5] x86/acpi: remove acpi_pic_sci_set_trigger()
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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1701936906.git.federico.serafini@bugseng.com>
 <f0c7d42c12a0b89c61265cdfe67a35b07d220aa0.1701936906.git.federico.serafini@bugseng.com>
 <2205366c-c66a-419a-9232-ec41432127c1@suse.com>
 <f6245172-d094-411e-9edf-6912129abe18@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: <f6245172-d094-411e-9edf-6912129abe18@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 11:09, Federico Serafini wrote:
> On 07/12/23 10:19, Jan Beulich wrote:
>> On 07.12.2023 09:47, Federico Serafini wrote:
>>> Remove apci_pic_set_trigger() declaration: there is no definition and there are
>>> no calls to such function in the XEN project.
>>>
>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>
>> A reference to the offending commit would have been nice, the more that iirc
>> I had already gone and fished that out for you.
> 
> Is it correct to use Fixes: <id> ("subj") even if there are other
> useless entities left?

It was specifically because of being uncertain in this case that I didn't
mention a possible Fixes: tag. There's no breakage from stray declarations,
so it doesn't really feel to me like a "fix".

> In particular, this is what I think should be removed:
> 
> Functions:
> __acpi_acquire_global_lock()
> __acpi_release_global_lock()
> acpi_save_state{mem,disk}()
> acpi_restore_state_mem()
> acpi_enter_state()
> {save,restore}_rest_processor_state()
> 
> Variables:
> acpi_wakeup_address
> 
> Macros:
> ACPI_ACQUIRE_GLOBAL_LOCK()
> 
> If you agree with me, I can propose a new patch which includes such 
> removals and refers to the offending commit with a Fixes.

I haven't checked the entities above, but yes, I agree other stray
declarations would want removing as well. In fact I was assuming that
removal of just one item meant no other stray ones exist (right here).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:46:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:46:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649765.1014625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBu4-000540-6z; Thu, 07 Dec 2023 10:46:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649765.1014625; Thu, 07 Dec 2023 10: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 1rBBu4-00053t-4R; Thu, 07 Dec 2023 10:46:48 +0000
Received: by outflank-mailman (input) for mailman id 649765;
 Thu, 07 Dec 2023 10:46: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBBu2-00053n-Vp
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:46:46 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9fc0a67-94ed-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 11:46:45 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-333536432e0so707507f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 02:46:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 x17-20020adff651000000b003333c2c313bsm1103151wrp.100.2023.12.07.02.46.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 02:46:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9fc0a67-94ed-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701946004; x=1702550804; 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=nqo33Yk2KU43QCZVEEkVJ3s4U4ViuGvdy1fL8Tumqkg=;
        b=We8280aF8Hy9CebANqIVytBCVH/xZnieqLkVPA+Wd5EjoMtzLnCMBUau+tVsuczNcD
         TD3vDUFNz6HrXg5jfqEWBrrxsg4bFDe1s3O0bVW+sXeUaN9p82BIx2aTBQNwrYC/mnn7
         IbpOja8Lh4Ml77I6KY2sgs/9PromjufazdVqgnIG3uKcWNg12VHvpEzwMhC7nvBSmgQN
         DwYW5cTUqrDw8DWRgAIA/Iq84MjRiACAHi5humC4gfvNHEQtjyCwEChJKtMqQqFCklfO
         WIKEM3PDYj1MC7x68EDM5/LwaNPzgu4douTrRJFlb/xk3hS5X/eNUhOta19/TlMdkSHA
         E8cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701946004; x=1702550804;
        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=nqo33Yk2KU43QCZVEEkVJ3s4U4ViuGvdy1fL8Tumqkg=;
        b=Nu4lfmqsS70/hQ1oTfIFoKLDEUUnywycgG90j9RSHPhhmWU5PtcCVaTjkE9wy8SHS5
         pJIx5MYXpXgH5VM+8/waHzBC4Iwh0wJAcnEE1DT+nB/Ss75k0XcS0hPDI4+m7SkbBE9K
         nx5opLWqBRKFqcM3irc3d1HvgozOkJmQAaxZaIRdb+PAwV8FnkWrCNw714kV/i+A7Q5Y
         52p30y3oX8wXZ0amitnq23qiDRuQVhzy2UJuJ9ZTym3srr/0XdlLBjiTu/TokDJzOZp+
         PMzj1Fj9Hfbqa7vuGCoshhD907UOQBd+HdOtCuCXyOdZddB0EWZ8dUHlgljZ+Sh/M5CO
         aMWQ==
X-Gm-Message-State: AOJu0YxNoW1xJQG8ZMXAvLYwydGPiCJwFiKmpQAGl0wQSal3pww90f9s
	nmUktjDxfqh9J+MggNjs+TODFWxWina8L6hKqcbt
X-Google-Smtp-Source: AGHT+IGNke+Ib9OLp/jVGt/rbmFpei8DBRO5RLic9P7zkVkWhDH4+uijROBBVEplT8a6Edj1nfnTtA==
X-Received: by 2002:adf:f7d2:0:b0:32d:9d3a:d8c0 with SMTP id a18-20020adff7d2000000b0032d9d3ad8c0mr1428169wrq.60.1701946004555;
        Thu, 07 Dec 2023 02:46:44 -0800 (PST)
Message-ID: <089964f2-1b2c-4ee7-92cf-f50f2e967d5b@suse.com>
Date: Thu, 7 Dec 2023 11:46:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@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>,
 Anthony Perard <anthony.perard@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] build: tool option handling adjustments
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The first is a fix for a latent issue (which became real with one of my
pending changes), while the 2nd is merely cleanup noticed as possible /
useful to do in the course of investigating.

1: x86/EFI: correct compiler probing
2: Kbuild: simplify as-insn a little

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:48:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:48:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649767.1014635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBvU-0005gk-IO; Thu, 07 Dec 2023 10:48:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649767.1014635; Thu, 07 Dec 2023 10:48:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBvU-0005gd-Fi; Thu, 07 Dec 2023 10:48:16 +0000
Received: by outflank-mailman (input) for mailman id 649767;
 Thu, 07 Dec 2023 10:48: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBBvS-0005gQ-NA
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:48:14 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1eea3c2b-94ee-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 11:48:13 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40b5155e154so9821095e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 02:48:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 x17-20020adff651000000b003333c2c313bsm1103151wrp.100.2023.12.07.02.48.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 02:48:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1eea3c2b-94ee-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701946093; x=1702550893; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=w8sIjouI6UYrV4jC1euue2uqKFDircc05iJIKnqVbUA=;
        b=RrOltP28FNtC5iRvdeaEdHQQqVUBwRnJOU2y9DHpNieh0vY0BwG1wCr2DLhy2g62U8
         0hHdGCY9k4oWRUZ1u/vDMbahBblGh7zETNEbP/PzQAzB/UwRlKewpAapUdKub8dKjJZ7
         AqKM3LyIfZYGSluYAy9KeVn0f2oVRClLnyFDPkwKuYm6mnGQ82NsM2knmcmettpJ7W+O
         OPsESmfskaqaK3texPzxul9aQM5xbPcsMM2YAHcBXsklLRJ94aWNhkcsODYYxhUSujAT
         10fkcfcugFrWSfNTWDoWaNUZY772sSmEIwiPMOV20CDfAfI0Bj5es/hkJjRysoy3QSjQ
         SgwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701946093; x=1702550893;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=w8sIjouI6UYrV4jC1euue2uqKFDircc05iJIKnqVbUA=;
        b=VKFfsNhncAGRIeql+OqTk2+fzqqayWl+yWHUyDbwgvTUByulpGXoGKOmcd/WXS1IyA
         /xO3Fph8OmiW+zgjnLfKBTv3uBBkjpgz5bmwLnU3He0gTtwr6Ez6nxoBY67r7/z5QZY5
         zSjPwPFJV6zcSNtvVk9Bj01IS20T/SmBkVG3GxW934yRLHLdXsRi23K59jbiXm5+49vd
         HDC/0QxmSlrb0Vsw7DwndNp28HqXbqWjXBwEeR0vzdOOE6sG2cZiNGghFHeD6q2Jic9k
         7eB9HrbVKfWDUH15sf3Qp8Ad+gGmL/okN5yy9fnnB2H6/4Vs1GLSGamLDrU40/H/WRho
         gmlA==
X-Gm-Message-State: AOJu0Yy8Xo6yIXqVGVX3iamPxhnVgNmBdR00Nj9PnRg1Pkkk2OnHT1U4
	qPx7bm0ilWjU1BuSCMKHFhpR0ToDXKp2cPh+DnLS
X-Google-Smtp-Source: AGHT+IFaW5z10lvIgIOsGDzG26K3fo04ambOYLBA2MsZomHRgZScGTsKGIRZgxDqRQxHWd07cL8cLw==
X-Received: by 2002:a1c:7410:0:b0:40b:5e21:bdcc with SMTP id p16-20020a1c7410000000b0040b5e21bdccmr1399889wmc.91.1701946093264;
        Thu, 07 Dec 2023 02:48:13 -0800 (PST)
Message-ID: <7f0d8e16-c580-4dba-a81a-72d5334052dc@suse.com>
Date: Thu, 7 Dec 2023 11:48:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] x86/EFI: correct compiler probing
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony Perard <anthony.perard@citrix.com>
References: <089964f2-1b2c-4ee7-92cf-f50f2e967d5b@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <089964f2-1b2c-4ee7-92cf-f50f2e967d5b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Passing in $(CFLAGS) means also requesting inclusion of certain headers
(via -include command line options). That's particularly xen/config.h,
which in turn requires generated/autoconf.h. This has not caused any
problems so far only because arch.mk is processed twice, and the missing
header on the 1st pass would be there on the 2nd. Having added an
inclusion of asm/asm-macros.h to x86'es asm/config.h, the 2nd pass then
also fails on an initial, pristine build.

As per dd40177c1bc8 ("x86-64/EFI: add CFLAGS to check compile") dropping
the use of $(CFLAGS) altogether isn't an option, though. Hence remove
the problematic options only.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This is now the 3rd place where the -include needs dropping. I was half
decided to introduce a new lazy-expansion variable, yet it's not
consistently $(CFLAGS) that the options need purging from. Thoughts?

There probably ought to be a Fixes: tag here, but it's quite hard to
tell which change to actually blame. It's the interaction of various
changes which has resulted in the (so far only latent) badness.

--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -87,7 +87,8 @@ efi-check := arch/x86/efi/check
 $(shell mkdir -p $(dir $(efi-check)))
 
 # Check if the compiler supports the MS ABI.
-XEN_BUILD_EFI := $(call if-success,$(CC) $(CFLAGS) -c $(srctree)/$(efi-check).c -o $(efi-check).o,y)
+XEN_BUILD_EFI := $(call if-success,$(CC) $(filter-out -include %/include/xen/config.h,$(CFLAGS)) \
+                                         -c $(srctree)/$(efi-check).c -o $(efi-check).o,y)
 
 # Check if the linker supports PE.
 EFI_LDFLAGS := $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:49:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:49:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649769.1014645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBBwJ-0006LX-Rb; Thu, 07 Dec 2023 10:49:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649769.1014645; Thu, 07 Dec 2023 10:49: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 1rBBwJ-0006LN-Oi; Thu, 07 Dec 2023 10:49:07 +0000
Received: by outflank-mailman (input) for mailman id 649769;
 Thu, 07 Dec 2023 10:49: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBBwI-0006Ja-Qk
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:49:06 +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 3de7a824-94ee-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 11:49:05 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3316a4bc37dso755790f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 02:49:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 x17-20020adff651000000b003333c2c313bsm1103151wrp.100.2023.12.07.02.49.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 02:49:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3de7a824-94ee-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701946145; x=1702550945; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nFIRaNgAVQlZC0hF1HkoKscjDXBY96LiuDxTPVvcVCg=;
        b=DiZvGGu074r/OAj4/t5QpAnQPUsQyWns+4pjj4+ME1RyOW3UtK3Ue2MsupOQmEwmjj
         NF606uodVfSlnR45mSAnRq6veFz1Ue1gEApQCxl/e6PqgZgdjU3iBIGMKCt0t2qK+BtM
         nTyNgpkhp1h9KD3MDgzoK4DCssDKMQ4bH2mHNtaQ3QqFQZPmddVCmE3pwa4g4R3Y55I0
         tBWbdjVxa6sc6J3uC6mma+2AcH/YO0XUxXr/xk2bslJr4N0fi1vkrYo4U0FHhYgRgnD7
         qqylSUodi+4Cpj/w8/Nx1ATNT7cBn+45ciK7un7vdK1vqvqrv8/OBEFJH1zw+At8hxM5
         JC9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701946145; x=1702550945;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=nFIRaNgAVQlZC0hF1HkoKscjDXBY96LiuDxTPVvcVCg=;
        b=Mw+dZch+iP/3SBCCVc3OB9BMOaEVIYLGN9O5ja8hSMbkKJwBgqSWFiIHWCLqHNEZ9k
         Cau5WiK9XoZ3rEFcVyi7Z9sDGY94T5HHtzcjP3ygaOwRjyG/elINi3uFU7+86LLQAstG
         nUzVWE8q2Ttqx2O2N0ZBW4FtcB1Dw8kWQAdUpcJoA0UVfmBG5G6bJzVzlgY829k4IdXD
         8RqPy0PKS/thkwq42vX/Z9CfWpr4SUcFsNdsv9d0zeOYScgEzcTB61XL9GmVCNYSgD1y
         sfYOt8WvYwiq3eRzV89HTImPkWeK8vHyLPMAVC8G1GgQC5hiN6envrYQMTWEhhv+LapL
         gM0g==
X-Gm-Message-State: AOJu0YzXqJPFr1rM1CoTVBHgZDcV9T63qXf2aGZnkzM5hPdKB+xmnDOJ
	Wnb585VH7Bl0Chcndl70W8XjDIeyqeo860PgvfOp
X-Google-Smtp-Source: AGHT+IGgyh98bcv3Xc7UGyyh8TgR7+EwNKD0wsbrALkm46Z+N9P9F89x/4qZlUTNHAZUOsnU5J67dg==
X-Received: by 2002:a5d:6791:0:b0:333:4156:2759 with SMTP id v17-20020a5d6791000000b0033341562759mr1473048wru.130.1701946145346;
        Thu, 07 Dec 2023 02:49:05 -0800 (PST)
Message-ID: <d3998117-23c1-4481-bfa0-ce66eb4279e8@suse.com>
Date: Thu, 7 Dec 2023 11:49:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] Kbuild: simplify as-insn a little
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: 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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony Perard <anthony.perard@citrix.com>
References: <089964f2-1b2c-4ee7-92cf-f50f2e967d5b@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <089964f2-1b2c-4ee7-92cf-f50f2e967d5b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

As of 732571959f17 ("xen/build: use new $(c_flags) and $(a_flags)
instead of $(CFLAGS)") -M options aren't part of CFLAGS anymore, and
c_flags isn't supposed to be passed to this macro. Drop the now dead
part of filtering.

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

--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -59,7 +59,7 @@ endef
 # as-insn: Check whether assembler supports an instruction.
 # Usage: cflags-y += $(call as-insn,CC FLAGS,"insn",option-yes,option-no)
 as-insn = $(if $(shell echo 'void _(void) { asm volatile ( $(2) ); }' \
-                       | $(filter-out -M% %.d -include %/include/xen/config.h,$(1)) \
+                       | $(filter-out -include %/include/xen/config.h,$(1)) \
                               -c -x c -o /dev/null - 2>&1),$(4),$(3))
 
 # as-option-add: Conditionally add options to flags



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 10:55:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 10:55:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649774.1014655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBC23-0000RF-G4; Thu, 07 Dec 2023 10:55:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649774.1014655; Thu, 07 Dec 2023 10: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 1rBC23-0000R8-CM; Thu, 07 Dec 2023 10:55:03 +0000
Received: by outflank-mailman (input) for mailman id 649774;
 Thu, 07 Dec 2023 10:55:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBC22-0000Qm-HI
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 10:55:02 +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 107cf1a0-94ef-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 11:54:59 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-33334480eb4so933351f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 02:54:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 i8-20020a05600c354800b004083729fc14sm1591192wmq.20.2023.12.07.02.54.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 02:54:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 107cf1a0-94ef-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701946498; x=1702551298; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=QUP+ULI1dScA5/5TTFx8KWT5Lk5bvkCC1yGd2krqwGk=;
        b=demvU7kscDS4Ac2vqSILF+NoH8LgUGgnRJ818mDKBparld9jycsuzwuNoDCVnAjymy
         euS9U4aWYkHBhTrpOdfCMO51Q28hjPAz9uz5zfeLVWIith7n78MLdkMkh+bdNrFmB3IO
         TBLCcZXT9HR8TxTamT91fSl4k9EkecJtZiVZURZkpKt9JWMxAdEAmLB4Rcdm3HplYnI1
         SIEuuT8a8xVAT22bQZipEfMG3UZ9doJ44ngPrI7ZvdWv+J0oc3tci4Vmk80kB79l8QTN
         iapHB1vUZzNs8LxwKxXmlErvlBEzCdGOlQtVpW6YmMwoO6YSxCc/yhcgz8bKUvhxpxb/
         8YjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701946498; x=1702551298;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=QUP+ULI1dScA5/5TTFx8KWT5Lk5bvkCC1yGd2krqwGk=;
        b=L/IRRl8euMyy/gWjUT6IYCqUG/HDUN/AaOGXqGKzPGK+fNS3+YtJB8KltNCaKToOZO
         aEWJlbULMNrmeDwyiuu4zqyjsiLOcShSlYVI0xKSN0W8/PS6UBzk2QqSZgJ81ygzXtaq
         HpYrh9vKGdQKIeETCQ4Fv+2OwnaklBcq+/f5obJaArFooUsPQxEYoT4QdSKF7XbkivGH
         +oUJgopRYi5qktaUbNN+fCP6E7g1bkq+mkkT4XWj3pYrAILj1ydrGIQYutTEF4mUB0rh
         7vlSTAIHMdb0ltd68RWmKFqycqKAX7B8PIbkuTihEaDR3OLubO7vfLvfPApxfwCeMCCo
         ogFw==
X-Gm-Message-State: AOJu0YzdZwV/m//7uCmqQFcTQP56WY4x0NHnmxLt5lM6ujI1y/UOeGZW
	3sXH3D5MEGGBM5BN9hYtB0lp
X-Google-Smtp-Source: AGHT+IHlCMPgO4CtIVSG7pzjXdxsBNuEYoT3tkXgYFBARn7Cs20gobhbnNOy8e8N61sH9eteOIenyg==
X-Received: by 2002:a05:600c:755:b0:40c:873:c93f with SMTP id j21-20020a05600c075500b0040c0873c93fmr1479247wmn.167.1701946498537;
        Thu, 07 Dec 2023 02:54:58 -0800 (PST)
Message-ID: <30b48e9b-0630-4df9-ac6b-5ece418bf4b0@suse.com>
Date: Thu, 7 Dec 2023 11:54:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen/x86: address violations of MISRA C:2012 Rule 14.4
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
 <d494980216b8f0f870083fcfae7269f45e779780.1701941924.git.maria.celeste.cesario@bugseng.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: <d494980216b8f0f870083fcfae7269f45e779780.1701941924.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 10:48, Simone Ballarin wrote:
> --- a/xen/arch/x86/hpet.c
> +++ b/xen/arch/x86/hpet.c
> @@ -279,7 +279,7 @@ static int hpet_msi_write(struct hpet_event_channel *ch, struct msi_msg *msg)
>  {
>      ch->msi.msg = *msg;
>  
> -    if ( iommu_intremap )
> +    if ( iommu_intremap != iommu_intremap_off )
>      {
>          int rc = iommu_update_ire_from_msi(&ch->msi, msg);
>  
> @@ -353,7 +353,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
>      u32 cfg = hpet_read32(HPET_Tn_CFG(ch->idx));
>      irq_desc_t *desc = irq_to_desc(ch->msi.irq);
>  
> -    if ( iommu_intremap )
> +    if ( iommu_intremap != iommu_intremap_off )
>      {
>          ch->msi.hpet_id = hpet_blockid;
>          ret = iommu_setup_hpet_msi(&ch->msi);
> @@ -372,7 +372,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
>          ret = __hpet_setup_msi_irq(desc);
>      if ( ret < 0 )
>      {
> -        if ( iommu_intremap )
> +        if ( iommu_intremap != iommu_intremap_off )
>              iommu_update_ire_from_msi(&ch->msi, NULL);
>          return ret;
>      }
> diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
> index 7f8e794254..72dce2e4ab 100644
> --- a/xen/arch/x86/msi.c
> +++ b/xen/arch/x86/msi.c
> @@ -189,7 +189,7 @@ static int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
>  {
>      entry->msg = *msg;
>  
> -    if ( iommu_intremap )
> +    if ( iommu_intremap != iommu_intremap_off )
>      {
>          int rc;
>  
> @@ -555,7 +555,7 @@ int msi_free_irq(struct msi_desc *entry)
>              destroy_irq(entry[nr].irq);
>  
>          /* Free the unused IRTE if intr remap enabled */
> -        if ( iommu_intremap )
> +        if ( iommu_intremap != iommu_intremap_off )
>              iommu_update_ire_from_msi(entry + nr, NULL);
>      }
>  

All of this would logically be part of patch 1. Is there a particular reason
why it wasn't done right there?

> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -1320,7 +1320,7 @@ x86_emulate(
>          ea.bytes = 2;
>          goto srcmem_common;
>      case SrcMem:
> -        if ( state->simd_size )
> +        if ( state->simd_size != simd_none )
>              break;
>          ea.bytes = (d & ByteOp) ? 1 : op_bytes;
>      srcmem_common:
> @@ -1460,7 +1460,7 @@ x86_emulate(
>          /* Becomes a normal DstMem operation from here on. */
>      case DstMem:
>          generate_exception_if(ea.type == OP_MEM && evex.z, X86_EXC_UD);
> -        if ( state->simd_size )
> +        if ( state->simd_size != simd_none )
>          {
>              generate_exception_if(lock_prefix, X86_EXC_UD);
>              break;
> @@ -8176,7 +8176,7 @@ x86_emulate(
>          goto done;
>      }
>  
> -    if ( state->rmw )
> +    if ( state->rmw != rmw_NONE )
>      {
>          ea.val = src.val;
>          op_bytes = dst.bytes;
> @@ -8205,7 +8205,7 @@ x86_emulate(
>  
>          dst.type = OP_NONE;
>      }
> -    else if ( state->simd_size )
> +    else if ( state->simd_size != simd_none )
>      {
>          generate_exception_if(!op_bytes, X86_EXC_UD);
>          generate_exception_if((vex.opcx && (d & TwoOp) &&

I'd be (somewhat reluctantly) okay with ack-ing this part of the patch.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:11:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649780.1014690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCHu-0005rH-Mh; Thu, 07 Dec 2023 11:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649780.1014690; Thu, 07 Dec 2023 11:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCHu-0005qG-HJ; Thu, 07 Dec 2023 11:11:26 +0000
Received: by outflank-mailman (input) for mailman id 649780;
 Thu, 07 Dec 2023 11: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=fZpn=HS=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rBCHs-0005Ik-Sz
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:11:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5b50b8da-94f1-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 12:11:23 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id E2E3E4EE0741;
 Thu,  7 Dec 2023 12:11:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b50b8da-94f1-11ee-98e7-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH v2 3/3] xen/mm: add declaration for first_valid_mfn
Date: Thu,  7 Dec 2023 12:11:18 +0100
Message-Id: <2c02524be7d02064fdf2f5003ef1c507034e4437.1701947290.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701947290.git.nicola.vetrini@bugseng.com>
References: <cover.1701947290.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Such declaration is needed to comply with MISRA C Rule 8.4, because a
compatible declaration is not visible in xen/common/page_alloc.c, where the
variable is defined. That variable can't yet be static because of the lack of
support from ARM and PPC for NUMA.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Having this declaration essentially sidesteps the current impossibility
of having a static variable, as described in the comments in
ARM and PCC's asm/numa.h.
---
 xen/include/xen/mm.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index 3d9b2d05a5c8..a13a9a46ced7 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -118,6 +118,8 @@ int destroy_xen_mappings(unsigned long s, unsigned long e);
 /* Retrieve the MFN mapped by VA in Xen virtual address space. */
 mfn_t xen_map_to_mfn(unsigned long va);
 
+extern mfn_t first_valid_mfn;
+
 /*
  * Create only non-leaf page table entries for the
  * page range in Xen virtual address space.
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:11:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649779.1014685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCHu-0005mo-BB; Thu, 07 Dec 2023 11:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649779.1014685; Thu, 07 Dec 2023 11:11:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCHu-0005mh-7x; Thu, 07 Dec 2023 11:11:26 +0000
Received: by outflank-mailman (input) for mailman id 649779;
 Thu, 07 Dec 2023 11:11: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=fZpn=HS=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rBCHs-0005Iv-Ly
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:11:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a91a0ce-94f1-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 12:11:22 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id C54024EE073E;
 Thu,  7 Dec 2023 12:11:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a91a0ce-94f1-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH v2 1/3] xen/x86: add missing instances of asmlinkage attributes
Date: Thu,  7 Dec 2023 12:11:16 +0100
Message-Id: <34a6fbfadd5a3029552cd25933de5cd0e80984e2.1701947290.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701947290.git.nicola.vetrini@bugseng.com>
References: <cover.1701947290.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- The attribute on boot_gdtr and l1_fixmap_x has been dropped, as detailed in
  the cover letter.
---
 xen/arch/x86/efi/efi-boot.h | 5 +++--
 xen/arch/x86/smpboot.c      | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 86467da301e5..8ea64e31cdc2 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -808,8 +808,9 @@ static const char *__init get_option(const char *cmd, const char *opt)
     return o;
 }
 
-void __init efi_multiboot2(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable,
-                           const char *cmdline)
+void asmlinkage __init efi_multiboot2(EFI_HANDLE ImageHandle,
+                                      EFI_SYSTEM_TABLE *SystemTable,
+                                      const char *cmdline)
 {
     EFI_GRAPHICS_OUTPUT_PROTOCOL *gop;
     EFI_HANDLE gop_handle;
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 4c54ecbc91d7..8aa621533f3d 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -310,7 +310,7 @@ static void set_cpu_sibling_map(unsigned int cpu)
     }
 }
 
-void start_secondary(void *unused)
+void asmlinkage start_secondary(void *unused)
 {
     struct cpu_info *info = get_cpu_info();
 
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:11:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649778.1014671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCHt-0005MW-1c; Thu, 07 Dec 2023 11:11:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649778.1014671; Thu, 07 Dec 2023 11:11: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 1rBCHs-0005Lz-Rx; Thu, 07 Dec 2023 11:11:24 +0000
Received: by outflank-mailman (input) for mailman id 649778;
 Thu, 07 Dec 2023 11:11: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=fZpn=HS=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rBCHr-0005Ik-Sf
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:11:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5af131a1-94f1-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 12:11:23 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 48B314EE0740;
 Thu,  7 Dec 2023 12:11:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5af131a1-94f1-11ee-98e7-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Paul Durrant <paul@xen.org>,
	Wei Liu <wl@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>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 2/3] x86/viridian: make build_assertions static
Date: Thu,  7 Dec 2023 12:11:17 +0100
Message-Id: <d9c3a455e0ea4edbfa7145d66b08a1daa4092d3d.1701947290.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1701947290.git.nicola.vetrini@bugseng.com>
References: <cover.1701947290.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This is consistent with other instances of the same function
and also resolves a violation of MISRA C:2012 Rule 8.4.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/arch/x86/hvm/viridian/synic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/viridian/synic.c b/xen/arch/x86/hvm/viridian/synic.c
index 8cf600cec68f..3375e55e95ca 100644
--- a/xen/arch/x86/hvm/viridian/synic.c
+++ b/xen/arch/x86/hvm/viridian/synic.c
@@ -18,7 +18,7 @@
 #include "private.h"
 
 
-void __init __maybe_unused build_assertions(void)
+static void __init __maybe_unused build_assertions(void)
 {
     BUILD_BUG_ON(sizeof(struct hv_message) != HV_MESSAGE_SIZE);
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:11:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649777.1014664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCHs-0005J3-NQ; Thu, 07 Dec 2023 11:11:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649777.1014664; Thu, 07 Dec 2023 11: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 1rBCHs-0005Iw-KX; Thu, 07 Dec 2023 11:11:24 +0000
Received: by outflank-mailman (input) for mailman id 649777;
 Thu, 07 Dec 2023 11:11: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=fZpn=HS=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rBCHr-0005Ik-6p
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:11:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a5609df-94f1-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 12:11:22 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 17E9F4EE073A;
 Thu,  7 Dec 2023 12:11:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a5609df-94f1-11ee-98e7-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 0/3] address some violations of MISRA C Rule 8.4
Date: Thu,  7 Dec 2023 12:11:15 +0100
Message-Id: <cover.1701947290.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C:2012 Rule 8.4 states:
"A compatible declaration shall be visible when an object or function with
external linkage is defined".

Changes from v1:
- Patch 1/7 has been committed;
- Patch 2/7 has been dropped, as the fix is already part of [1];
- Patch 3/7 drops the addition of asmlinkage on variables. Discussion on how to
  handle the existing uses can be part of a separate patch;
- Patch 4/7 is unchanged;
- Patch 5/7 has been committed;
- Patch 6/7 has been dropped
- Patch 7/7 has been revised to have a declaration for first_valid_mfn, rather
  than a deviation for the absence of a declaration

[1] https://lore.kernel.org/xen-devel/27dd8f40-1ea6-1e7e-49c2-31936a17e9d7@suse.com/

Nicola Vetrini (3):
  xen/x86: add missing instances of asmlinkage attributes
  x86/viridian: make build_assertions static
  xen/mm: add declaration for first_valid_mfn

 xen/arch/x86/efi/efi-boot.h       | 5 +++--
 xen/arch/x86/hvm/viridian/synic.c | 2 +-
 xen/arch/x86/smpboot.c            | 2 +-
 xen/include/xen/mm.h              | 2 ++
 4 files changed, 7 insertions(+), 4 deletions(-)

-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:15:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:15:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649794.1014705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCLZ-00083c-51; Thu, 07 Dec 2023 11:15:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649794.1014705; Thu, 07 Dec 2023 11:15: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 1rBCLZ-00083V-2N; Thu, 07 Dec 2023 11:15:13 +0000
Received: by outflank-mailman (input) for mailman id 649794;
 Thu, 07 Dec 2023 11:15: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=3y0a=HS=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBCLX-00083P-JB
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:15:11 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20609.outbound.protection.outlook.com
 [2a01:111:f400:7ea9::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1c813ca-94f1-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 12:15:10 +0100 (CET)
Received: from BLAPR03CA0151.namprd03.prod.outlook.com (2603:10b6:208:32f::15)
 by SA3PR12MB9129.namprd12.prod.outlook.com (2603:10b6:806:397::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Thu, 7 Dec
 2023 11:15:06 +0000
Received: from BL02EPF0001A100.namprd03.prod.outlook.com
 (2603:10b6:208:32f:cafe::20) by BLAPR03CA0151.outlook.office365.com
 (2603:10b6:208:32f::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27 via Frontend
 Transport; Thu, 7 Dec 2023 11:15:06 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0001A100.mail.protection.outlook.com (10.167.242.107) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Thu, 7 Dec 2023 11:15: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.34; Thu, 7 Dec
 2023 05:14:31 -0600
Received: from [10.71.193.58] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Thu, 7 Dec 2023 05:14:29 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1c813ca-94f1-11ee-98e7-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=daDGcZYMG9xRyEOm3Pk/1xq4JrME9usqwpfA6dua4SZKAXU4j9q3YP4BvXmEGDy/Z5ur/MNLlw8cHwtX02MWNUK1llZzOtN7L/TFaMzD9N8uqj6JRV61kPKr8AWhDNz7otz83D6DGobgEgpuBJp7IyLHOWhFeNCYUHdulRIfiFMc7udKqoHsq6XnE9cKkPh+Hsi2aXuVUQ87K4Z4wtrwrU67ugzh9ndYtv5pbT5C+xrPb9QF8IMYBabwFSO0Hfy8G6oengIjFyHjdejoqRcPvFiV/Ay3Pz79RJA3qpvVDxy0R6f+Oq1PgWlUaV9rT6dqa/YUVsG1mNX4t5P0v64t0w==
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=SauPA79bymWKrMvjTmM2TMRpZe9pqSp1BuXurZZVn6U=;
 b=II5bkTC/JkDaHQ5gZDv6yeCL6JPlTY6O1qjZGIWWyfhFqXShbCX5Q8ac/52ATBpDtWVkNHG7yuVk7UPtRwVEIsvmP7+/0Jyp8keh6alRgg/aox9K+D3sKdZjiRIhS7f2wKBnq9Fcufhq9Ap7dQTQw84txfVQGOWBHFZyRT0ihpwV8vugrc7iLlUOlJnDoP0uF1mP/q8kXgQ7INq5ONyGNXUzWsj5lqSjSFfqYXne6Gk41IbNHMYEIWX6kNYc6W8RSNtZfYoOTZC/qRAjo3WmSTjapwgbRODwb/Goc3aIbJQwZ84qij1E+Wv55idDtrgzgIfYcJUYtPP+H2jU/Zk/ig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SauPA79bymWKrMvjTmM2TMRpZe9pqSp1BuXurZZVn6U=;
 b=3Nv8H4powlm1TyaHyfLpPU0jUWUIXl6epiNsw3YWXrT7b98XC4X2IQ0B1/KTy7RQJ+qpQi2HwATtssnIDTdvoTr1kBGc5DyCNIz1OiOZcqtqCcngRHNvql3/1vOVvMXi/flG2kQgBHSpT2NUH5NReickYrKJTIrqt/BJx458Z90=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <6b2696de-c70a-438b-9053-3bfab5cffead@amd.com>
Date: Thu, 7 Dec 2023 12:14:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 10/11] xen/arm: fix duplicate /reserved-memory node in
 Dom0
Content-Language: en-US
To: Penny Zheng <Penny.Zheng@arm.com>, <xen-devel@lists.xenproject.org>
CC: <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-11-Penny.Zheng@arm.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231206090623.1932275-11-Penny.Zheng@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A100:EE_|SA3PR12MB9129:EE_
X-MS-Office365-Filtering-Correlation-Id: 115b278a-53ee-4406-ce1b-08dbf715c47d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	T+mjCaWaH52iSqI7kVwmlAbijbMqTazZLL6sTfpzrfezJv1feIkr8V8xQdafU30jULFwzSoZF7x18WguHEBPs2q1anJ7xgJOY8SjReCbewD09UgVmyFd5OwCWG7DOKOnUkOW+qBV1poqtJlq+RVMwszcCzpB38PRuaebF+cSyiNPh29E80/OusrjF3iTNHHLcXrE/t9upySPs394Nufh0hZl7VHLq5EBdL11++4ANZPbco4SbEcu1p3pF9z5K4PCxCpdvh29Y7/H3+oH41OmAjBxtC1rP4ui3cjU6wjCdIoc6FnoFcbS1BSTUYhtd4UzTI75plpxEz6b2cMYyuEsTFEJ3Ji4DsCZD8bxcvoq2GTvzJpaAaBvB/r8uBVaYoy9SHA40R0K1M42dIVVCCgQ6op5XdXol1WVaX/v+7UcPlqhVFZvIBFqb/K3DXt+xTkwpI6+5prLsqaCfzsb7n4Xj1JTNQ5NPJO1qSbeG2UXzQNnMZdyEnRP1lS6SExFKtxzRBDpmLYSYsBHUNa9RltfF15NHhRSm6UhX0GijPCCK8PsmYjiBfvYa5UgQLVg1Y5KzGorFTh6Kofqmyx6Rey5p9FKgZc2zlL5dAprUKaw8jJ5lel6iK6iqn0tMwUJoSqwFZLwU5IU0RoBIIBftAgRMm0iRjBIytWLBQ6G4mu18fEZx2SbmH3B875hpAkpnKFfCDQpl8Gv/9vsNA56WK4ldNZOYhQWSPez5vcIdEtDPu0kt2adS7u9nXzQ/F1JgZsOUXswa4T4ypty93k7hmFZ+73GlEZzWQp0FnIzZbkJOHqbJe3uIsTQQ0yi7ghjefVX
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:(13230031)(4636009)(136003)(376002)(396003)(346002)(39860400002)(230922051799003)(82310400011)(1800799012)(186009)(64100799003)(451199024)(40470700004)(36840700001)(46966006)(2906002)(5660300002)(31686004)(40480700001)(44832011)(8936002)(8676002)(4326008)(16576012)(316002)(70586007)(54906003)(70206006)(40460700003)(110136005)(47076005)(36860700001)(478600001)(2616005)(53546011)(36756003)(41300700001)(26005)(336012)(83380400001)(82740400003)(426003)(356005)(81166007)(86362001)(31696002)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2023 11:15:06.5541
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 115b278a-53ee-4406-ce1b-08dbf715c47d
X-MS-Exchange-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:
	BL02EPF0001A100.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9129

Hi Penny,

On 06/12/2023 10:06, Penny Zheng wrote:
> 
> 
> In case there is a /reserved-memory node already present in the host dtb,
> current Xen codes would create yet another /reserved-memory node specially
> for the static shm in Dom0 Device Tree.
Rational missing:
This would result in an incorrect device tree generation and guest would not be able
to detect the static shared memory region.

> 
> Xen will use write_properties() to copy the reserved memory nodes from host dtb
> to Dom0 FDT, so we want to insert the shm node along with the copying.
> And avoiding duplication, we add a checking before make_resv_memory_node().
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> 
> ---
> v3 -> v4:
> new commit
> ---
> v4 -> v5:
> rebase and no change
> ---
>  xen/arch/arm/domain_build.c             | 27 ++++++++++++++++++++++---
>  xen/arch/arm/include/asm/kernel.h       |  2 ++
>  xen/arch/arm/include/asm/static-shmem.h | 14 +++++++++++++
>  xen/arch/arm/static-shmem.c             |  6 +++---
>  4 files changed, 43 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index e040f8a6d9..f098678ea3 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -752,6 +752,23 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
>          }
>      }
> 
> +    if ( dt_node_path_is_equal(node, "/reserved-memory") )
> +    {
> +        kinfo->resv_mem = true;
I think I raised this concern last time. kinfo is used to store per-domain configuration.
Information whether the reserved memory is present in host dtb or not does not fit there.
Therefore, I would move this flag to bootinfo.

> +
> +        /* shared memory provided. */
> +        if ( kinfo->shminfo.nr_banks != 0 )
> +        {
> +            uint32_t addrcells = dt_n_addr_cells(node),
> +                     sizecells = dt_n_size_cells(node);
I find this always a bit odd. Just uint32_t sizecells on the next line, just like you did in all the other patches.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:39:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:39:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649797.1014715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCjP-00076K-1u; Thu, 07 Dec 2023 11:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649797.1014715; Thu, 07 Dec 2023 11: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 1rBCjO-00076D-VA; Thu, 07 Dec 2023 11:39:50 +0000
Received: by outflank-mailman (input) for mailman id 649797;
 Thu, 07 Dec 2023 11:39:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fZpn=HS=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rBCjN-000767-Ud
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:39:49 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5310376c-94f5-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 12:39:47 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 99CC14EE073A;
 Thu,  7 Dec 2023 12:39:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5310376c-94f5-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [XEN PATCH] automation/eclair_analysis: file exclusion automation
Date: Thu,  7 Dec 2023 12:39:43 +0100
Message-Id: <e17fba6f45a03f7acb0af342ed8aea97130dba4a.1701949157.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The file exclude-list.json contains files that are classified as
adopted code for MISRA compliance. Therefore, this file is used to
automatically generate a suitable .ecl configuration for ECLAIR.

As such, many entries in out_of_scope.ecl can be removed, as they
would be duplicates.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/adopted.sh  | 30 +++++++++
 .../eclair_analysis/ECLAIR/analysis.ecl       |  3 +
 automation/eclair_analysis/ECLAIR/analyze.sh  |  3 +
 .../eclair_analysis/ECLAIR/generate_ecl.sh    | 15 +++++
 .../eclair_analysis/ECLAIR/out_of_scope.ecl   | 64 +------------------
 .../ECLAIR/print_analyzed_files.sh            |  4 +-
 6 files changed, 56 insertions(+), 63 deletions(-)
 create mode 100755 automation/eclair_analysis/ECLAIR/adopted.sh
 create mode 100755 automation/eclair_analysis/ECLAIR/generate_ecl.sh

diff --git a/automation/eclair_analysis/ECLAIR/adopted.sh b/automation/eclair_analysis/ECLAIR/adopted.sh
new file mode 100755
index 000000000000..9adbc4e58218
--- /dev/null
+++ b/automation/eclair_analysis/ECLAIR/adopted.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# Generates the adopted.ecl file
+
+set -eu
+
+script_name="$(basename "$0")"
+script_dir="$(
+  cd "$(dirname "$0")"
+  echo "${PWD}"
+)"
+
+fatal() {
+  echo "${script_name}: $*" >&2
+  exit 1
+}
+
+usage() {
+  fatal "Usage: ${script_name}"
+}
+
+exclude_list=$1
+outfile=${script_dir}/adopted.ecl
+
+(
+  echo "-doc_begin=\"Adopted files.\"" >"${outfile}"
+  sed -n -E -e 's|^\s+"rel_path":\s+"([^"]*).*$|-file_tag+={adopted,"^xen/\1$"}|p' "${exclude_list}" |
+    sed -E -e 's|\.([ch])|\\\\.\1|g' -e 's|\*|.*|g' >>"${outfile}"
+  printf "%s\n" "-doc_end" >>"${outfile}"
+)
diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl b/automation/eclair_analysis/ECLAIR/analysis.ecl
index f8d4cc8c9990..a604582da335 100644
--- a/automation/eclair_analysis/ECLAIR/analysis.ecl
+++ b/automation/eclair_analysis/ECLAIR/analysis.ecl
@@ -21,6 +21,9 @@ map_strings("scheduled-analysis",analysis_kind)
 
 -eval_file=toolchain.ecl
 -eval_file=public_APIs.ecl
+if(not(scheduled_analysis),
+    eval_file("adopted.ecl")
+)
 if(not(scheduled_analysis),
     eval_file("out_of_scope.ecl")
 )
diff --git a/automation/eclair_analysis/ECLAIR/analyze.sh b/automation/eclair_analysis/ECLAIR/analyze.sh
index 47cdbb03cee7..a127e7aaed2d 100755
--- a/automation/eclair_analysis/ECLAIR/analyze.sh
+++ b/automation/eclair_analysis/ECLAIR/analyze.sh
@@ -82,6 +82,9 @@ export ECLAIR_PROJECT_ROOT="${PWD}"
 rm -rf "${ECLAIR_OUTPUT_DIR:?}/*"
 mkdir -p "${ECLAIR_DATA_DIR}"
 
+# Generate additional configuration files 
+"${SCRIPT_DIR}/generate_ecl.sh"
+
 # Perform the build (from scratch) in an ECLAIR environment.
 "${ECLAIR_BIN_DIR}eclair_env" \
     "-config_file='${SCRIPT_DIR}/analysis.ecl'" \
diff --git a/automation/eclair_analysis/ECLAIR/generate_ecl.sh b/automation/eclair_analysis/ECLAIR/generate_ecl.sh
new file mode 100755
index 000000000000..de20728eb1f9
--- /dev/null
+++ b/automation/eclair_analysis/ECLAIR/generate_ecl.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Generates the .ecl files
+
+set -eu
+
+script_dir="$(
+  cd "$(dirname "$0")"
+  echo "${PWD}"
+)"
+
+exclude_list="${ECLAIR_PROJECT_ROOT}/docs/misra/exclude-list.json"
+
+# Generate the exclude list file
+"${script_dir}/adopted.sh" "${exclude_list}"
diff --git a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
index e1ec4a607c63..2245ca8c3df5 100644
--- a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
+++ b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
@@ -1,53 +1,5 @@
--doc_begin="Imported from Linux: ignore for now."
--file_tag+={adopted,"^xen/common/libfdt/.*$"}
--file_tag+={adopted,"^xen/include/xen/libfdt/.*$"}
--file_tag+={adopted,"^xen/common/xz/.*$"}
--file_tag+={adopted,"^xen/common/zstd/.*$"}
--file_tag+={adopted,"^xen/drivers/acpi/apei/.*$"}
--file_tag+={adopted,"^xen/drivers/acpi/tables/.*$"}
--file_tag+={adopted,"^xen/drivers/acpi/utilities/.*$"}
--file_tag+={adopted,"^xen/drivers/video/font_.*$"}
--file_tag+={adopted,"^xen/arch/arm/arm64/cpufeature\\.c$"}
--file_tag+={adopted,"^xen/arch/arm/arm64/insn\\.c$"}
--file_tag+={adopted,"^xen/arch/arm/arm64/lib/find_next_bit\\.c$"}
--file_tag+={adopted,"^xen/common/bitmap\\.c$"}
--file_tag+={adopted,"^xen/common/bunzip2\\.c$"}
--file_tag+={adopted,"^xen/common/earlycpio\\.c$"}
--file_tag+={adopted,"^xen/common/inflate\\.c$"}
--file_tag+={adopted,"^xen/common/lzo\\.c$"}
--file_tag+={adopted,"^xen/common/lz4/decompress\\.c$"}
--file_tag+={adopted,"^xen/common/radix-tree\\.c$"}
--file_tag+={adopted,"^xen/common/ubsan/ubsan\\.c$"}
--file_tag+={adopted,"^xen/drivers/acpi/hwregs\\.c$"}
--file_tag+={adopted,"^xen/drivers/acpi/numa\\.c$"}
--file_tag+={adopted,"^xen/drivers/acpi/osl\\.c$"}
--file_tag+={adopted,"^xen/drivers/acpi/tables\\.c$"}
--file_tag+={adopted,"^xen/include/xen/acpi\\.h$"}
--file_tag+={adopted,"^xen/include/acpi/acpiosxf\\.h$"}
--file_tag+={adopted,"^xen/include/acpi/acpixf\\.h$"}
--file_tag+={adopted,"^xen/lib/list-sort\\.c$"}
--file_tag+={adopted,"^xen/lib/rbtree\\.c$"}
--file_tag+={adopted,"^xen/lib/xxhash.*\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/boot\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/cpu_idle\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/cpufreq/cpufreq\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/cpuidle_menu\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/lib\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/amd\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/centaur\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/common\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/hygon\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/intel\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/intel_cacheinfo\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/mcheck/non-fatal\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/mtrr/.*$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/mwait-idle\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/delay\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/dmi_scan\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/mpparse\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/srat\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/time\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/x86_64/mmconf-fam10h\\.c$"}
+-doc_begin="libfdt is out of scope."
+-file_tag+={out_of_scope,"^xen/include/xen/libfdt/.*$"}
 -doc_end
 
 -doc_begin="Intel specific source files are out of scope."
@@ -69,18 +21,6 @@
 -file_tag+={out_of_scope,"^xen/arch/x86/include/asm/intel-family\\.h$"}
 -doc_end
 
--doc_begin="Not in scope initially as it generates many violations and it is not enabled in safety configurations."
--file_tag+={adopted,"^xen/xsm/flask/.*$"}
--doc_end
-
--doc_begin="unlz4.c implementation by Yann Collet, the others un* are from Linux, ignore for now."
--file_tag+={adopted,"^xen/common/un.*\\.c$"}
--doc_end
-
--doc_begin="Origin is external and documented in xen/crypto/README.source ."
--file_tag+={adopted,"^xen/crypto/.*$"}
--doc_end
-
 -doc_begin="Files imported from the gnu-efi package"
 -file_tag+={adopted,"^xen/include/efi/.*$"}
 -file_tag+={adopted,"^xen/arch/x86/include/asm/x86_64/efibind\\.h$"}
diff --git a/automation/eclair_analysis/ECLAIR/print_analyzed_files.sh b/automation/eclair_analysis/ECLAIR/print_analyzed_files.sh
index c19a8ecbd061..7d231271617c 100755
--- a/automation/eclair_analysis/ECLAIR/print_analyzed_files.sh
+++ b/automation/eclair_analysis/ECLAIR/print_analyzed_files.sh
@@ -46,7 +46,9 @@ fi
 "${ECLAIR_BIN_DIR}eclair_report" -db="${DB}" -files_txt="${files_txt}"
 
 {
-  # Extracting out of scope code
+  # Extracting out of scope and adopted code
+  adopted_ecl="${script_dir}/adopted.ecl"
+  extrapolate_regex adopted,             "${adopted_ecl}"
   out_of_scope_ecl="${script_dir}/out_of_scope.ecl"
   extrapolate_regex adopted,             "${out_of_scope_ecl}"
   extrapolate_regex out_of_scope_tools,  "${out_of_scope_ecl}"
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:44:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649800.1014725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCoB-0000GA-Iw; Thu, 07 Dec 2023 11:44:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649800.1014725; Thu, 07 Dec 2023 11: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 1rBCoB-0000G3-G6; Thu, 07 Dec 2023 11:44:47 +0000
Received: by outflank-mailman (input) for mailman id 649800;
 Thu, 07 Dec 2023 11:44: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=b0Ey=HS=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rBCo9-0000Fv-Ob
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:44:45 +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 032b273c-94f6-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 12:44:44 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-214-S1U663asNt-wRPjGPfGkaQ-1; Thu,
 07 Dec 2023 06:44:40 -0500
Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com
 [10.11.54.9])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 71EC9380628D;
 Thu,  7 Dec 2023 11:44:37 +0000 (UTC)
Received: from localhost (unknown [10.39.194.155])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 46EA7492BC6;
 Thu,  7 Dec 2023 11:44:34 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 032b273c-94f6-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1701949482;
	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=CsscwaTR3+4z+GEJpfoX3rBQXEHIy7L+AXtx2hqmFDs=;
	b=Hge8bc3PDlyAVnSm+jeINwZ1DBcOy78Pw+vS2Knx5qX5msQn2ffKNQDyJ6km3PNQUqRcnj
	vR/sAGimyWiWz8Lv8lGpmBW9tmF7a+VaOX9LUXAC37I5JMp14hr5/qr+zpNUW0zTg5M83y
	6/qAJVHW7lTBbSv2d6xoyTBBgmaMyaw=
X-MC-Unique: S1U663asNt-wRPjGPfGkaQ-1
Date: Thu, 7 Dec 2023 06:44:32 -0500
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Harsh Prateek Bora <harshpb@linux.ibm.com>
Cc: qemu-devel@nongnu.org, Jean-Christophe Dubois <jcd@tribudubois.net>,
	Fabiano Rosas <farosas@suse.de>, qemu-s390x@nongnu.org,
	Song Gao <gaosong@loongson.cn>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Thomas Huth <thuth@redhat.com>, Hyman Huang <yong.huang@smartx.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	Kevin Wolf <kwolf@redhat.com>, Ilya Leoshkevich <iii@linux.ibm.com>,
	Artyom Tarasenko <atar4qemu@gmail.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Paul Durrant <paul@xen.org>,
	Jagannathan Raman <jag.raman@oracle.com>,
	Juan Quintela <quintela@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	qemu-arm@nongnu.org, Jason Wang <jasowang@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>, Hanna Reitz <hreitz@redhat.com>,
	=?iso-8859-1?Q?Marc-Andr=E9?= Lureau <marcandre.lureau@redhat.com>,
	BALATON Zoltan <balaton@eik.bme.hu>,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Hailiang Zhang <zhanghailiang@xfusion.com>,
	Roman Bolshakov <rbolshakov@ddn.com>,
	Huacai Chen <chenhuacai@kernel.org>, Fam Zheng <fam@euphon.net>,
	Eric Blake <eblake@redhat.com>, Jiri Slaby <jslaby@suse.cz>,
	Alexander Graf <agraf@csgraf.de>,
	Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
	Weiwei Li <liwei1518@gmail.com>, Eric Farman <farman@linux.ibm.com>,
	Stafford Horne <shorne@gmail.com>,
	David Hildenbrand <david@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Reinoud Zandijk <reinoud@netbsd.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Cameron Esfahani <dirty@apple.com>, xen-devel@lists.xenproject.org,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, qemu-riscv@nongnu.org,
	Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
	John Snow <jsnow@redhat.com>,
	Sunil Muthuswamy <sunilmut@microsoft.com>,
	Michael Roth <michael.roth@amd.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Bin Meng <bin.meng@windriver.com>,
	Stefano Stabellini <sstabellini@kernel.org>, kvm@vger.kernel.org,
	qemu-block@nongnu.org, Halil Pasic <pasic@linux.ibm.com>,
	Peter Xu <peterx@redhat.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Alex =?iso-8859-1?Q?Benn=E9e?= <alex.bennee@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	=?iso-8859-1?Q?C=E9dric?= Le Goater <clg@kaod.org>,
	qemu-ppc@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Leonardo Bras <leobras@redhat.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>
Subject: Re: [PATCH 1/6] system/cpus: rename qemu_mutex_lock_iothread() to
 qemu_bql_lock()
Message-ID: <20231207114432.GA2137208@fedora>
References: <20231129212625.1051502-1-stefanha@redhat.com>
 <20231129212625.1051502-2-stefanha@redhat.com>
 <8f89fbbf-454b-c5e5-5e8f-46ea42ec20ed@linux.ibm.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="0duhWLao8zUYzEym"
Content-Disposition: inline
In-Reply-To: <8f89fbbf-454b-c5e5-5e8f-46ea42ec20ed@linux.ibm.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.9


--0duhWLao8zUYzEym
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Dec 01, 2023 at 10:42:43AM +0530, Harsh Prateek Bora wrote:
> On 11/30/23 02:56, Stefan Hajnoczi wrote:
> > diff --git a/hw/remote/mpqemu-link.c b/hw/remote/mpqemu-link.c
> > index 9bd98e8219..ffb2c25145 100644
> > --- a/hw/remote/mpqemu-link.c
> > +++ b/hw/remote/mpqemu-link.c
> > @@ -33,7 +33,7 @@
> >    */
> >   bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)
> >   {
> > -    bool iolock =3D qemu_mutex_iothread_locked();
> > +    bool iolock =3D qemu_bql_locked();
>=20
> Should var name (one more below) be updated to reflect this update ?

Yes. I'll grep for that tree-wide because there might be other
instances.

Stefan

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

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

iQEzBAEBCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmVxsCAACgkQnKSrs4Gr
c8i1rQgAnF5hLI7FnDMNxncR8cyzsclzHlBL3lW0nptTddMxVMVSgpepQqo6yITp
7C02PzbGoKbRWSa8b95tpYbHeVbakCnrKjMsojhx5N50uYa7odEtNpXrPedhUh4l
ZcOC1N5E1uU55koqEGYWFSDoEC3BApk9qN0RFngsKFtoTears5RgyhSpuYYrdpyL
LN15OOQjSBJYsGNtYggDfIyN5hT4H55c8hsQF0b+kw/UwWoNRdjsdyMNelsHheII
+KODOArdtF9lNCVXL4kbZmuQbwmmHbAdfytMIurhnKWa+ENSZZ42DY9Z+XBIReto
Fj4JhmDsI3ewnZLjTxZ/jQHHNcV8Ew==
=KX5N
-----END PGP SIGNATURE-----

--0duhWLao8zUYzEym--



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:48:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:48:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649804.1014735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCrq-0002G5-5C; Thu, 07 Dec 2023 11:48:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649804.1014735; Thu, 07 Dec 2023 11:48: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 1rBCrq-0002Fy-28; Thu, 07 Dec 2023 11:48:34 +0000
Received: by outflank-mailman (input) for mailman id 649804;
 Thu, 07 Dec 2023 11:48: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=ZB3o=HS=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rBCro-0002Fp-Px
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:48:32 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b292258-94f6-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 12:48:31 +0100 (CET)
Received: from [192.168.1.229] (93-36-216-194.ip62.fastwebnet.it
 [93.36.216.194])
 by support.bugseng.com (Postfix) with ESMTPSA id E70FF4EE073A;
 Thu,  7 Dec 2023 12:48:30 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b292258-94f6-11ee-98e7-6d05b1d4d9a1
Message-ID: <924a50ac-7200-45c7-b486-763b01b44a57@bugseng.com>
Date: Thu, 7 Dec 2023 12:48:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: ARM: MISRA C:2012 Rule 5.6
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.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 <xen-devel@lists.xenproject.org>
References: <5a732dc4-70c7-4c03-b6fa-02d5074441bc@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <5a732dc4-70c7-4c03-b6fa-02d5074441bc@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 07/12/23 12:43, Federico Serafini wrote:
> Hello everyone,
> 
> Rule 5.6 states that a typedef name shall be a unique identifier.
> This is to avoid developer confusion.
> 
> For ARM, the violations left [1] are generated by two definitions
> of the type phys_addr_t within two different files.
> I would like to ask if this is intentional or not:
> if it is intentional and it is not causing any confusion between XEN
> developers, then I think violations involving phys_addr_t can be
> deviated.
> 
> [1]
> https://saas.eclairit.com:3787/fs/var/local/eclair/XEN.ecdf/ECLAIR_normal/staging/ARM64-2023/429/PROJECT.ecd;/by_service/MC3R1.R5.6.html

Adding XEN mailing list in CC.

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:54:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:54:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649809.1014744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCxU-0003ty-PZ; Thu, 07 Dec 2023 11:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649809.1014744; Thu, 07 Dec 2023 11:54:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCxU-0003tr-Mj; Thu, 07 Dec 2023 11:54:24 +0000
Received: by outflank-mailman (input) for mailman id 649809;
 Thu, 07 Dec 2023 11:54:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ri6x=HS=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rBCxT-0003tl-Sm
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:54:23 +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 5c089bb8-94f7-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 12:54:21 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-50bfd7be487so686488e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 03:54:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c089bb8-94f7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701950061; x=1702554861; 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=oE2bjhCnhfZLEuqnh3gBqaZciXLlZtz0F4kZulcUIqQ=;
        b=egKmj9QAF+HtebRGlE3MWldH/UOLS6xpxTF2Laf1N7Y059iZ4cgIDd9vTA65ImIbrb
         s6dDuX5gtzFJc0dNQh+0NrbPRrv7YNWHnfqlJze3/eFIGneq/Ir21ZGr0kUJ49VYOmqb
         GlBqbpe1wNQ+WEtAETcQeyBC7XMM0+MO45iuE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701950061; x=1702554861;
        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=oE2bjhCnhfZLEuqnh3gBqaZciXLlZtz0F4kZulcUIqQ=;
        b=qQykR7HbEn8/Z3A+z4tHwTSBO3uL8TNLtzbdWaXVsn0MG6uFmWjBShz1Caxr/hDamd
         IUVQogsuiT5PBuYcFGpYxVKinQPyajjG0giA+hepkB9UbfZEJQ+CP8WouhHGO4rpUUix
         JMZ7ZY8nmeNSS7QMLCejXB+lfAiYWQ+sERjyiwJrkvm8yAeRI+Sx4vK06lRGbDggefKx
         KtKHs2+G4ixbT5oeo+8Rq0UgHAhe6Ye+M+yaDdXYKLDl78zTTOkNncPTzyPdIyFoZin2
         DT6ZM7jAVijkB3Zzqanko3lOHOHZvdMODZNRxmYdyiIEngSDGra1VfS09DnLKNyct7Io
         pEmA==
X-Gm-Message-State: AOJu0Yy9EihLTEUDI6JRUqfgZMpCz2r46/7WJOLI37jbTtfrhrmD9Taf
	tcHV2MMNM1vugkfdGTp+8T4mwJDU8byIPQX0NUEL5w==
X-Google-Smtp-Source: AGHT+IG+KutWLwdT6oneOFW/NYWylKKLBtx97wiDzkHMlGDJdovG/RsRfpmI5SUIn7OzbxYQnqOzk5BTdgVswOydjpY=
X-Received: by 2002:a2e:9004:0:b0:2ca:f17:dd5f with SMTP id
 h4-20020a2e9004000000b002ca0f17dd5fmr1287305ljg.103.1701950061258; Thu, 07
 Dec 2023 03:54:21 -0800 (PST)
MIME-Version: 1.0
References: <20231204152321.16520-1-jgross@suse.com> <20231204152321.16520-2-jgross@suse.com>
 <34f5d241-54ad-40c6-abd2-46d2c65514af@suse.com>
In-Reply-To: <34f5d241-54ad-40c6-abd2-46d2c65514af@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Thu, 7 Dec 2023 11:54:10 +0000
Message-ID: <CA+zSX=Y0LjyBa5coqoy+REj85Q-EimXqKW6grCB4Mt5K1jiZ=w@mail.gmail.com>
Subject: Re: [PATCH v2 1/3] xen/sched: fix adding offline cpu to cpupool
To: Jan Beulich <jbeulich@suse.com>
Cc: Juergen Gross <jgross@suse.com>, Dario Faggioli <dfaggioli@suse.com>, 
	=?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 4, 2023 at 4:55=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 04.12.2023 16:23, Juergen Gross wrote:
> > Trying to add an offline cpu to a cpupool can crash the hypervisor,
> > as the probably non-existing percpu area of the cpu is accessed before
> > the availability of the cpu is being tested. This can happen in case
> > the cpupool's granularity is "core" or "socket".
> >
> > Fix that by testing the cpu to be online.
> >
> > Fixes: cb563d7665f2 ("xen/sched: support core scheduling for moving cpu=
s to/from cpupools")
> > Reported-by: Ren=C3=A9 Winther H=C3=B8jgaard <renewin@proton.me>
> > Signed-off-by: Juergen Gross <jgross@suse.com>
>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

I feel like there should be a more robust way to protect against this
sort of thing; but I don't see anything obvious, and this does fix a
bug, so:

Acked-by: George Dunlap <george.dunlap@cloud.com>


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 11:56:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 11:56:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649811.1014754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBCzl-0004uI-4O; Thu, 07 Dec 2023 11:56:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649811.1014754; Thu, 07 Dec 2023 11: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 1rBCzl-0004uB-1p; Thu, 07 Dec 2023 11:56:45 +0000
Received: by outflank-mailman (input) for mailman id 649811;
 Thu, 07 Dec 2023 11: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=ri6x=HS=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rBCzk-0004ty-4L
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 11:56:44 +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 ae92c8f2-94f7-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 12:56:40 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2ca0c36f5beso8090941fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 03:56:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae92c8f2-94f7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701950200; x=1702555000; 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=LpZx0VJvyJ/1VaWPPGGVlmzWdVT+P07/SID6L3m2qlc=;
        b=Onl0ayDD2Lp/JCDpDbyRmAnT533+1VcRsUeF6UOWtGljrEwWQMuBFh06CD8TfZotYg
         MLUIYZcQZyZusBKBPwYIiJPmMNqeKcVO8ZP2zWKbKrkwMdpSHNnmFTbq82uRM95oAJfL
         VIL70uzrPPasNeaAGt35WlA7+veQMlP+vnuMk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701950200; x=1702555000;
        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=LpZx0VJvyJ/1VaWPPGGVlmzWdVT+P07/SID6L3m2qlc=;
        b=gIAuRpVSTlHyfSX+r9/BFmEeVfsixGGJJ5p4qqEChY88JbfG+dEbSl5+Ak8Uzgxt6z
         fQi4Spi/yetXDlr4/bPWfDKVj/7cTMwPte3504XbiimVLTyxNqJu9WTW47zfIGaU37Wa
         CrU1uuXQg2b0Lz1fjRK1Ts29jfFjnkjpe+H6DXzHTfnrp8bX/HNdreHiZ/YKmo2YIdHD
         sDUd3XVTqIBUD9PWJ84VItABrZQFV5tAzr21blOn9hxKCKDhEY/tJZaY8eBAxmBdi3RN
         PRcOWf1Xh373kBVNJp2EEn5FRi+39mzHHQutGOUKFrwbRYHxgNfdJuG7kY0VCQXGEbvM
         9Ddw==
X-Gm-Message-State: AOJu0YwTP4Qu6emAjHFJTl87dbjKjCTEn+9yAE73WVYbuSgwWCxfi+gk
	2Hi1DCq5nK66VmZt90tjXO1aNpaASUvj89JnM/Y0/w==
X-Google-Smtp-Source: AGHT+IFzpC2z5yH7vIkG4FTi51MYUUoUr8Av/Lxnof939N2Uamdz26258/MI/oj55CzXVUw37il92JQWHHKSo7Cg3gs=
X-Received: by 2002:a2e:87d7:0:b0:2ca:ac6:9f94 with SMTP id
 v23-20020a2e87d7000000b002ca0ac69f94mr1333945ljj.86.1701950199804; Thu, 07
 Dec 2023 03:56:39 -0800 (PST)
MIME-Version: 1.0
References: <20231204152321.16520-1-jgross@suse.com> <20231204152321.16520-3-jgross@suse.com>
 <c1438011-6f26-4ab6-b7ae-ac273a1beee0@suse.com>
In-Reply-To: <c1438011-6f26-4ab6-b7ae-ac273a1beee0@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Thu, 7 Dec 2023 11:56:29 +0000
Message-ID: <CA+zSX=bSQtKZWjxjj6M-cM1Vh66f6g0x1nmcTc9bv5aLgzqUdw@mail.gmail.com>
Subject: Re: [PATCH v2 2/3] xen/sched: fix sched_move_domain()
To: Jan Beulich <jbeulich@suse.com>
Cc: Juergen Gross <jgross@suse.com>, Dario Faggioli <dfaggioli@suse.com>, 
	=?UTF-8?Q?Ren=C3=A9_Winther_H=C3=B8jgaard?= <renewin@proton.me>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 4, 2023 at 4:56=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 04.12.2023 16:23, Juergen Gross wrote:
> > Do cleanup in sched_move_domain() in a dedicated service function,
> > which is called either in error case with newly allocated data, or in
> > success case with the old data to be freed.
> >
> > This will at once fix some subtle bugs which sneaked in due to
> > forgetting to overwrite some pointers in the error case.
> >
> > Fixes: 70fadc41635b ("xen/cpupool: support moving domain between cpupoo=
ls with different granularity")
> > Reported-by: Ren=C3=A9 Winther H=C3=B8jgaard <renewin@proton.me>
> > Initial-fix-by: Jan Beulich <jbeulich@suse.com>
> > Initial-fix-by: George Dunlap <george.dunlap@cloud.com>
> > Signed-off-by: Juergen Gross <jgross@suse.com>
>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Still not a fan of removing the "out:" label, but anyway:

Acked-by: George Dunlap <george.dunlap@cloud.com>


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:10:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:10:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649818.1014765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDCZ-0007wO-Ey; Thu, 07 Dec 2023 12:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649818.1014765; Thu, 07 Dec 2023 12: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 1rBDCZ-0007wH-CA; Thu, 07 Dec 2023 12:09:59 +0000
Received: by outflank-mailman (input) for mailman id 649818;
 Thu, 07 Dec 2023 12:09: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 1rBDCX-0007w7-JH; Thu, 07 Dec 2023 12:09: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 1rBDCX-0002Mz-Bf; Thu, 07 Dec 2023 12:09: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 1rBDCW-0005ao-VE; Thu, 07 Dec 2023 12:09:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBDCW-00020h-Ui; Thu, 07 Dec 2023 12:09: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=sYat56yakKu2wb9wyV0kV6TvZf6HgAzWmn74+GjMcl4=; b=TEUwgbcnuqYmemT7EDG5uREgG0
	YiL0naf5dzTS/6P8DkOysngleVNl03YofUOzPpX2bVLKiDHnMV0jZ+fHr9ysZnVusWgUvy9AwolTJ
	7DenqKTxHxHwNs2HlCJMVtnevoYeXpU10d5oi+MkWPRlUUeXdTMrESDpeXROUNVvgDp4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184022-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184022: 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=dbe69e1c8555b40a43cde482615501eb8515ab80
X-Osstest-Versions-That:
    xen=d4bfd3899886d0fbe259c20660dadb1e00170f2d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 12:09:56 +0000

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

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                  dbe69e1c8555b40a43cde482615501eb8515ab80
baseline version:
 xen                  d4bfd3899886d0fbe259c20660dadb1e00170f2d

Last test of basis   184015  2023-12-06 20:02:07 Z    0 days
Testing same since   184022  2023-12-07 08:00:34 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
   d4bfd38998..dbe69e1c85  dbe69e1c8555b40a43cde482615501eb8515ab80 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:14:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:14:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649824.1014775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDHG-0001TT-0u; Thu, 07 Dec 2023 12:14:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649824.1014775; Thu, 07 Dec 2023 12:14:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDHF-0001TM-Tl; Thu, 07 Dec 2023 12:14:49 +0000
Received: by outflank-mailman (input) for mailman id 649824;
 Thu, 07 Dec 2023 12:14: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 1rBDHE-0001TG-Ox
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:14: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 1rBDHD-0002SZ-Rc; Thu, 07 Dec 2023 12:14:47 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBDHD-00042M-MG; Thu, 07 Dec 2023 12:14: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=W935EEQCpPxEJA0ShsTW3HkqHT6FxgxYx+95nMZN4fY=; b=3YZmI/AwOCESgPqtdtT1epxZDF
	qYaU3zVk7qxffZBB5o1O9aNK6xEhtJbB3VfAGbioHIAe6aJ0dTK2cUSIHqoHO1oHtkz/lulIRyrPC
	pme7Q1N7PE0kmF1153yXRq+hxHjZXRlDzyUO4sNC62ZK6bTJxsIgRwyZIVk6m7yMXbEw=;
Message-ID: <2763baaf-110d-457a-b302-12b06bf28b15@xen.org>
Date: Thu, 7 Dec 2023 12:14:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
To: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20231121114048.31294-1-jgross@suse.com>
 <1a6f8027-0e49-4975-8ab1-998a9b4cebee@suse.com>
 <fab5cc9d-d97e-405d-9f7a-1b86de097aab@suse.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <fab5cc9d-d97e-405d-9f7a-1b86de097aab@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 07/12/2023 09:30, Jan Beulich wrote:
> On 07.12.2023 09:26, Juergen Gross wrote:
>> On 21.11.23 12:40, Juergen Gross wrote:
>>> Remove some command line options which have no real use case.
>>>
>>> Changes in V2:
>>> - moved removal of "-N" into last patch of the series, as this is the
>>>     only option which seems to have a use case (OTOH using it has some
>>>     downsides as well).
>>>
>>> Juergen Gross (5):
>>>     tools/xenstored: remove "-D" command line parameter
>>>     tools/xenstored: remove "-V" command line option
>>>     tools/xenstored: remove the "-P" command line option
>>>     tools/xenstored: remove the "-R" command line option
>>>     tools/xenstored: remove "-N" command line option
>>>
>>>    tools/xenstored/core.c | 81 +++++++-----------------------------------
>>>    1 file changed, 12 insertions(+), 69 deletions(-)
>>>
>>
>> I think at least patches 1-4 can go in as they all have the required Acks.
> 
> I'll try to remember to include them in the next swipe. I was kind of
> assuming Julien would be taking care of them.

Sorry this fell through the cracks. I can do it if you haven't yet done it.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:20:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:20:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649827.1014784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDMT-0004mt-J6; Thu, 07 Dec 2023 12:20:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649827.1014784; Thu, 07 Dec 2023 12: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 1rBDMT-0004mm-G6; Thu, 07 Dec 2023 12:20:13 +0000
Received: by outflank-mailman (input) for mailman id 649827;
 Thu, 07 Dec 2023 12:20:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rBDMS-0004mg-0G
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:20:12 +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 1rBDMR-0002Yb-EC; Thu, 07 Dec 2023 12:20:11 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBDMR-00049O-5C; Thu, 07 Dec 2023 12: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=UKcwwZI0V+9uCGvdUndJdWIwmUQcJJVqMeBbc6VBpHU=; b=DxGFzEL6Lx10VydoOzPl3saeLM
	jDYmf7lTiCv9GtXjAa0gMTEP+BM+flePP33480eBm+R68+fS9udrko7iaYxnWAHBd7jYE2L6+09cq
	us6r0sQbh7ZmnMa7Xfsyv+2s07OLbKC3wUuJWUO09O7GcfS4H6WPLXGnuzx3aS6UUqAo=;
Message-ID: <d45f0d37-dbca-44a8-a27f-b9e709bb9cfd@xen.org>
Date: Thu, 7 Dec 2023 12:20:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: bootfdt: Check return code of
 device_tree_for_each_node()
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>
References: <20231207101432.37732-1-michal.orzel@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231207101432.37732-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 07/12/2023 10:14, Michal Orzel wrote:
> As a result of not checking the return code of device_tree_for_each_node()
> in boot_fdt_info(), any error occured during early FDT parsing does not
> stop Xen from booting. This can result in an unwanted behavior in later
> boot stages. Fix it by checking the return code and panicing on an error.
> 
> Fixes: 9cf4a9a46717 ("device tree: add device_tree_for_each_node()")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

With one remark below:

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

> ---
> I've lost count how many times I had to fix missing rc check. However, I have
> not yet found any checker for this (-Wunused-result is pretty useless).
> ---
>   xen/arch/arm/bootfdt.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
> index b1f03eb2fcdd..f496a8cf9494 100644
> --- a/xen/arch/arm/bootfdt.c
> +++ b/xen/arch/arm/bootfdt.c
> @@ -541,7 +541,9 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>   
>       add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
>   
> -    device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
> +    ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
> +    if ( ret )
> +        panic("Early FDT parsing failed (%d)\n", ret);

AFAIU, the parsing is done before the console is setup. This means a 
user would not be able to get some logs unless they are re-compiling Xen 
with earlyprintk.

I understand this is not a new issue, but I am getting concerned of the 
amount of check we add before the console is up and running.

What is the impact if we don't check the return here? Is it missing regions?

I wonder whether we can either enable the console earlier, or make 
earlyprintk more dynamic (similar to what Linux is doing with 
earlyprintk=...).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:39:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649831.1014794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDfM-00006m-2q; Thu, 07 Dec 2023 12:39:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649831.1014794; Thu, 07 Dec 2023 12:39: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 1rBDfM-00006f-0F; Thu, 07 Dec 2023 12:39:44 +0000
Received: by outflank-mailman (input) for mailman id 649831;
 Thu, 07 Dec 2023 12:39: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=3y0a=HS=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBDfJ-00006Z-Qj
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:39:41 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062c.outbound.protection.outlook.com
 [2a01:111:f400:fe59::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af20b14d-94fd-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 13:39:39 +0100 (CET)
Received: from PH8PR20CA0003.namprd20.prod.outlook.com (2603:10b6:510:23c::16)
 by CY8PR12MB7147.namprd12.prod.outlook.com (2603:10b6:930:5d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25; Thu, 7 Dec
 2023 12:39:34 +0000
Received: from SN1PEPF0002529D.namprd05.prod.outlook.com
 (2603:10b6:510:23c:cafe::5d) by PH8PR20CA0003.outlook.office365.com
 (2603:10b6:510:23c::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Thu, 7 Dec 2023 12:39:34 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF0002529D.mail.protection.outlook.com (10.167.242.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Thu, 7 Dec 2023 12:39:33 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 7 Dec
 2023 06:39:33 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 7 Dec
 2023 06:39:33 -0600
Received: from [10.71.193.58] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Thu, 7 Dec 2023 06:39:32 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af20b14d-94fd-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mRAHUznyYRWD5wnrPF+8WsA1p9zb9zNptRnalECaYw4sHAcoKP9UbmbDZ0aZr8swGmdbeYBGH2rOcwgLqPy5ZrZLI4OXI66jAOUFc7A6GstgRdS4RBs5MXNtFwypGVohs2KV3wgLWvJ99UNNU4p9nGrpup/0BV7rR8QRpqlAhsGAa70SwjCeYl+UCZ7FSbDa950OZax56ADJ3luPAufi7VpXBwN578DTRFkSr/UpkXIvN85Uh7cxjDojTPO5TN2MhCLoRr+1MlwzxaG+IFVhW7AdALXqxsDh1FYvR44wldpn/0UscR4kVuHBGzhu6PABxeOnCHVYIY3um+7Otc4LBw==
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=ztymen/ZGCDTV+pCYhYRYCiQ71nGCgMziWiVMeuyH8w=;
 b=aoIejrkSczEi17+bPDwfzIjIYlFrmrD1aLdJSAyLUcnfs/P6uTZeSj+U8KRFlF30MYBCUULGb5V5txPV/9YIo72ettbBLkJQia+C/zHtEx9BsAvAR5T95JxrmDz/8Og4MVVq6TSSLPlf0KVu/Ur62G0pMq7N0J04uzHH+fjEr83ndZL36QyRQ3IyZHr00iySJRnXCpSrbCPo3PcWEvMpc1r5cMNT9N6vFIK8bLmPP8YhscfecRxMR5RMoiui9eZyMhex+hJtngBav1qLw8X6wLvWPKw5Pedsb71G2msx91XHjZIAiSWkDA0kydbzVlxYiAxeIwBwMpPVDy+2FFTXxQ==
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=ztymen/ZGCDTV+pCYhYRYCiQ71nGCgMziWiVMeuyH8w=;
 b=crhCU6QsnWLN3HrMXt8s/mRGz9uwzdiLjVfpZOTrsEH0k+cxYEAEOKuGsmuyPb89Oxb6i0uzDcI45HHzf5Y7XRsTrVOWfsU0UjHv/A2B0HSZ6Z2kQmhhAZShni85Qct4BmrdpR8WHHox5dLgYmZUZO/cGQzaOXa+wN0zTR0+fQo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <30947562-9806-4bc2-8381-8ffee25b62ea@amd.com>
Date: Thu, 7 Dec 2023 13:39:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: bootfdt: Check return code of
 device_tree_for_each_node()
Content-Language: en-US
To: Julien Grall <julien@xen.org>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231207101432.37732-1-michal.orzel@amd.com>
 <d45f0d37-dbca-44a8-a27f-b9e709bb9cfd@xen.org>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <d45f0d37-dbca-44a8-a27f-b9e709bb9cfd@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002529D:EE_|CY8PR12MB7147:EE_
X-MS-Office365-Filtering-Correlation-Id: 21fdc363-3938-48e4-97ad-08dbf72190da
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	od1ux9qDUot5LQnCm3F5eZpNWrP2coH/S0aJlL8JWx6YrETc8s8ow1Wmh84yqEt28sOybjY39s4v4JTrni5ZzHo/hxzGpfkGWJBDGV3kryDbKhfcXGrfX+nD1bVzseyR3NHmnX0po8uZUJu+uUcC9AP6C9KkQIBZfVCJ3YgLIYZMm4gMEF5kqd9Dao6rAwwIwdAQs23v+KL3xZhOY8X1uHIj4b9+KCMZBgDBqXrzMSyDecgbEpiJJMciVtACukbzYzfBEh7N5rpSEA5Oh3OHWuyCQ1nVGRVfjTTOxb4gNvfC0lgaT+UPJhpOAdX3EL2Wp5jHkBDEKP2P60iORrZtA0pLunuWoZvc0dGn5Y65UOGNLkE+m/Dxyi+Dud+W90ONxXaftJvhxw9DxvTBJaNbWp6ewRHB7JdAUDjjNHyPcjw1Mz3sbq3ws39xKt9MBhUWirmlaetDOye1a1RAuSJFUVL+QEnxgyqqwne2NCaV5pfbs0AQYCZDQAGa/uQfZyYcCeyzbOYb5139Vn1YlRmLMDMrp7E9FbS8RXdOFJnue4kpTnV5iHv7Jk6FXw9KGbLpnmvUqLwFylqs5F1OPfU7pB3P8p1bW231etZpQIp31eGZb2sXEW3LcJgwvtgrJtb4HFP4bERMu5X0g+WHf2vHaMsalNT0GQLJnLdF0+82Y95zWx6+uGyddCNNCrO4zYg5+K8a357TwkGLiKiRvU+mNiRs004X2fFhrPfgu48W8v5mUSN5Eg8pKefzAu5diUFigQ/lCCFWoX/0Ox6Ex51ySDDzF6ztECdRAN5Ta9tU1BTisjTnf1NEU/f5KXuy7nXt
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(39860400002)(136003)(396003)(376002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(82310400011)(40470700004)(46966006)(36840700001)(83380400001)(40460700003)(2616005)(70586007)(336012)(426003)(26005)(36860700001)(82740400003)(356005)(36756003)(86362001)(31696002)(47076005)(81166007)(316002)(4326008)(8936002)(8676002)(41300700001)(5660300002)(44832011)(70206006)(31686004)(2906002)(16576012)(53546011)(110136005)(54906003)(40480700001)(478600001)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2023 12:39:33.8814
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 21fdc363-3938-48e4-97ad-08dbf72190da
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002529D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7147

Hi Julien,

On 07/12/2023 13:20, Julien Grall wrote:
> 
> 
> Hi Michal,
> 
> On 07/12/2023 10:14, Michal Orzel wrote:
>> As a result of not checking the return code of device_tree_for_each_node()
>> in boot_fdt_info(), any error occured during early FDT parsing does not
>> stop Xen from booting. This can result in an unwanted behavior in later
>> boot stages. Fix it by checking the return code and panicing on an error.
>>
>> Fixes: 9cf4a9a46717 ("device tree: add device_tree_for_each_node()")
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> 
> With one remark below:
> 
> Acked-by: Julien Grall <jgrall@amazon.com>
> 
>> ---
>> I've lost count how many times I had to fix missing rc check. However, I have
>> not yet found any checker for this (-Wunused-result is pretty useless).
>> ---
>>   xen/arch/arm/bootfdt.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
>> index b1f03eb2fcdd..f496a8cf9494 100644
>> --- a/xen/arch/arm/bootfdt.c
>> +++ b/xen/arch/arm/bootfdt.c
>> @@ -541,7 +541,9 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>
>>       add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
>>
>> -    device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
>> +    ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
>> +    if ( ret )
>> +        panic("Early FDT parsing failed (%d)\n", ret);
> 
> AFAIU, the parsing is done before the console is setup. This means a
> user would not be able to get some logs unless they are re-compiling Xen
> with earlyprintk.
> 
> I understand this is not a new issue, but I am getting concerned of the
> amount of check we add before the console is up and running.
> 
> What is the impact if we don't check the return here? Is it missing regions?
There are many things that can go wrong.
Quite recently, I faced an issue where I specified 2 dom0less domUs in configuration
and due to the error while parsing the last node of domU1, domU2 node was skipped and
Xen booted only domU1 without giving any errors.

Issues with shared memory led to either Xen continue to run with improper configuration,
silencing overlap conditions, errors at later boot stages that were impossible to deduct
from the logs.

All in all, early boot code parsing assume the error to result in a failure and the parsing
for domain creation makes this assumption as well (checks are more relaxed to avoid duplication).

For now, we can't do anything better than panicing early if we want to avoid unwanted behavior.

> 
> I wonder whether we can either enable the console earlier, or make
> earlyprintk more dynamic (similar to what Linux is doing with
> earlyprintk=...).
The most imporatant part is early fdt parsing. The main console init cannot be moved that early.
We need to add earlycon support just like in Linux. User could then select either earlyprintk or earlycon.
(earlyprintk would also print from assembly + from everything before boot_fdt_info). I think adding support
for it is doable. But as always, no one has time for that.

~Michal


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:39:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:39:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649832.1014805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDfW-0000Ot-Cj; Thu, 07 Dec 2023 12:39:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649832.1014805; Thu, 07 Dec 2023 12: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 1rBDfW-0000Om-9M; Thu, 07 Dec 2023 12:39:54 +0000
Received: by outflank-mailman (input) for mailman id 649832;
 Thu, 07 Dec 2023 12:39: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBDfV-00006Z-KY
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:39:53 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b73f43ba-94fd-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 13:39:51 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40bda47c489so9259935e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 04:39:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p8-20020a05600c358800b0040b4ccdcffbsm1796999wmq.2.2023.12.07.04.39.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 04:39:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b73f43ba-94fd-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701952791; x=1702557591; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ghzOSRCn9YPrW5h2Ae8ybWvY2HHtMaCn9QSuyB913+0=;
        b=WmZvnM8vY6wbGeT9HFVj9NWevTx0XSr7qeQugPC0xoHr6AlOKpUHasJUvNwRbDoDtf
         qY/ZVqdjgm735MKrUc9Mof+QEcDjPOKeVG7Sp2iDooncA+r2az5hwLJpnv6MyBMB5ylC
         0aglcGbFF7Sy7cW2OSsmIqUpUodPuI5l3oOWUz+3ccccqxqS0339NRakYJkOg+Yy3yRh
         nK8pWNIc3q8FqVAKCt6h5PoMhCaIgnLxPIa5Airf/SxbqK0ZBqvTQGW5imtyHYC0ru+w
         y/NJwILsQfsYvNH3ovX6C06utSW8Pw4OqSfsOq8SqUEciOWJhGIzR53UbyYkZRwkxNfN
         D4Qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701952791; x=1702557591;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ghzOSRCn9YPrW5h2Ae8ybWvY2HHtMaCn9QSuyB913+0=;
        b=HIMCnxl4og5ki/pi3kJmwrEUKovwn8XiQ4KKuZw/AoZ62SM6veneih1PLEvC1aPgDX
         G30ycWMiADQDxkDjpvgvm2y66o0n7B/l9sc+1FCQuYlORFUhlmkHbTB79AEc/qzdUwUT
         UxifRIicN7zqrjURa51EiajTb0BdjHw6lKZHxNLNLuGJuP7t66oYnsTegThTQxO8BzSo
         Af355Dv+3kyqIKGCGM7Eet+HGwW3eIN+9rNb7w631eAxkFkeSLXnetU/SN4EqyfXlE5O
         jgIM4M3NPZPDsVXWMGQa+HrV1MV5KNO0z2nDdFSuA4gzRtvgNX3LrOEo7GCBCo9hX8em
         ryRQ==
X-Gm-Message-State: AOJu0YwIuyb9pFtxhZpV/RSh/m2lby3f+604SQTYG0Z4LyHCKOmnNhPQ
	8Z3BvESHXpbcxm8IU7TFyqk9
X-Google-Smtp-Source: AGHT+IFtAd2nt3gNWpCVq3Xrk4iMFEc5GxoPwlP6Co6Tcl6wuZzaUcliuXi4wL+aFlL13fKQ68Lh/g==
X-Received: by 2002:a05:600c:ad5:b0:40b:37ec:41b3 with SMTP id c21-20020a05600c0ad500b0040b37ec41b3mr1374281wmr.31.1701952791312;
        Thu, 07 Dec 2023 04:39:51 -0800 (PST)
Message-ID: <c3601b9a-67c6-498c-a177-cda94c3c3d47@suse.com>
Date: Thu, 7 Dec 2023 13:39:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <20231121114048.31294-1-jgross@suse.com>
 <1a6f8027-0e49-4975-8ab1-998a9b4cebee@suse.com>
 <fab5cc9d-d97e-405d-9f7a-1b86de097aab@suse.com>
 <2763baaf-110d-457a-b302-12b06bf28b15@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2763baaf-110d-457a-b302-12b06bf28b15@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 13:14, Julien Grall wrote:
> Hi Jan,
> 
> On 07/12/2023 09:30, Jan Beulich wrote:
>> On 07.12.2023 09:26, Juergen Gross wrote:
>>> On 21.11.23 12:40, Juergen Gross wrote:
>>>> Remove some command line options which have no real use case.
>>>>
>>>> Changes in V2:
>>>> - moved removal of "-N" into last patch of the series, as this is the
>>>>     only option which seems to have a use case (OTOH using it has some
>>>>     downsides as well).
>>>>
>>>> Juergen Gross (5):
>>>>     tools/xenstored: remove "-D" command line parameter
>>>>     tools/xenstored: remove "-V" command line option
>>>>     tools/xenstored: remove the "-P" command line option
>>>>     tools/xenstored: remove the "-R" command line option
>>>>     tools/xenstored: remove "-N" command line option
>>>>
>>>>    tools/xenstored/core.c | 81 +++++++-----------------------------------
>>>>    1 file changed, 12 insertions(+), 69 deletions(-)
>>>>
>>>
>>> I think at least patches 1-4 can go in as they all have the required Acks.
>>
>> I'll try to remember to include them in the next swipe. I was kind of
>> assuming Julien would be taking care of them.
> 
> Sorry this fell through the cracks. I can do it if you haven't yet done it.

I haven't yet, no.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:44:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:44:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649838.1014814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDjx-0002ky-3M; Thu, 07 Dec 2023 12:44:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649838.1014814; Thu, 07 Dec 2023 12: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 1rBDjx-0002kr-0g; Thu, 07 Dec 2023 12:44:29 +0000
Received: by outflank-mailman (input) for mailman id 649838;
 Thu, 07 Dec 2023 12: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBDjv-0002kl-UB
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:44:27 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5b416732-94fe-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 13:44:27 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-33334480eb4so1066358f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 04:44:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d14-20020adffbce000000b0033343804ec9sm1344971wrs.85.2023.12.07.04.44.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 04:44:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b416732-94fe-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701953066; x=1702557866; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=b+KULE3SJq9wVZj+AHnf437YsLgbdBevy8Vk9oYZW3Y=;
        b=eZkj/4WxBsQyRQRMkgRx+Fxn/UnTY6FMYB3Dh1nwcdky3tbofrN02FSFFpC3kJz8u6
         2Z34DiC9wwEZQDzynv0uqaukkRFeRNw2V3T4TNG4O7Of8WgECt5kS4d/s6HiPlhOBDZ/
         FaHlJWMqUFpWbGjyf0D+bE3VNeVAupEuQFLRFPbIjMMRVkqMdP3yTIJP6tqnD/uly8yK
         y/t7qofC1GcwRxoG1yUuuJsbWk4QxfljXXpSFs/xZiEe0ion2O8ExC3Y4FvKtWj76dy3
         jip7t6o7jsaODbEPvY5yxS7V4cw9J8V2izcUTHEYsDPKuA604HDdgiPNgyY3YiUzjTjC
         kSEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701953066; x=1702557866;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=b+KULE3SJq9wVZj+AHnf437YsLgbdBevy8Vk9oYZW3Y=;
        b=jwBsgnYm38jW9TAal7psLdqamOhI2UK4blqhTdV+QON5/Qf2g66m05ziokzIa8OnnH
         wDGz687vS61NNc9VpbGK7b3X9xOB//+ycLeu/11p5itpCW3aKVKbirwqBFHt+etfynTk
         jnpKaMZm0WiUaG95tm6gwIRIpRLl4EI5+1a1u2CcDKGRcCBm2EvydwN4pUZaZLdM3H9M
         UD55oc8PdIxvqJbF5by05gNhkvn9eIMFzk5m2t+k24RjpHSBfTL4G1O2yKqnkm0SLwSL
         8SkcDWFXaJA3F0afYLHqdLVegAq+GqAcSoyyiw8qF/tgxna8oKl5eIu76hC6sCzjnILG
         pjyw==
X-Gm-Message-State: AOJu0Yy295WEetfCw2t97CG9GBf0jBcUGYJKQ/Im1F/+0Nro6grc9zB+
	djjtUkGHy3Efxx1SxsngQPZr
X-Google-Smtp-Source: AGHT+IGURI5I7y/rPzEDT8f1RcrUBYx1xaJSTpi87LiNacpty703esF1ucZyRd90ETMSKHYLCQMgkQ==
X-Received: by 2002:a5d:590b:0:b0:333:59ce:4e6c with SMTP id v11-20020a5d590b000000b0033359ce4e6cmr1655273wrd.40.1701953066540;
        Thu, 07 Dec 2023 04:44:26 -0800 (PST)
Message-ID: <65b668a5-7518-4e96-8357-c3fc680e8760@suse.com>
Date: Thu, 7 Dec 2023 13:44:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: ARM: MISRA C:2012 Rule 5.6
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
References: <5a732dc4-70c7-4c03-b6fa-02d5074441bc@bugseng.com>
 <924a50ac-7200-45c7-b486-763b01b44a57@bugseng.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 <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: <924a50ac-7200-45c7-b486-763b01b44a57@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 12:48, Federico Serafini wrote:
> On 07/12/23 12:43, Federico Serafini wrote:
>> Hello everyone,
>>
>> Rule 5.6 states that a typedef name shall be a unique identifier.
>> This is to avoid developer confusion.
>>
>> For ARM, the violations left [1] are generated by two definitions
>> of the type phys_addr_t within two different files.
>> I would like to ask if this is intentional or not:
>> if it is intentional and it is not causing any confusion between XEN
>> developers, then I think violations involving phys_addr_t can be
>> deviated.
>>
>> [1]
>> https://saas.eclairit.com:3787/fs/var/local/eclair/XEN.ecdf/ECLAIR_normal/staging/ARM64-2023/429/PROJECT.ecd;/by_service/MC3R1.R5.6.html
> 
> Adding XEN mailing list in CC.

Thanks.

These are files ported from Linux, where I assume the typedef-s were added
to limit the changes which would need making elsewhere. Still I think that's
exactly what we (now) have xen/linux-compat.h for. IOW - just move the
typedef-s there?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:53:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:53:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649841.1014824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDsS-0005ck-TQ; Thu, 07 Dec 2023 12:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649841.1014824; Thu, 07 Dec 2023 12:53:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDsS-0005cd-Qt; Thu, 07 Dec 2023 12:53:16 +0000
Received: by outflank-mailman (input) for mailman id 649841;
 Thu, 07 Dec 2023 12:53:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rBDsR-0005cX-6l
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:53:15 +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 1rBDsQ-00039z-7T; Thu, 07 Dec 2023 12:53:14 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBDsP-0005U6-T4; Thu, 07 Dec 2023 12:53: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=M1qSmsOW6kafIeVM0i7Y8hMx3SsB/jPM2B/5jjnpl0Q=; b=Py0AFJlWIVxFyq+4PyoQPGwyIV
	hMVLSjfT0US0R75hUPCmNWdn0MLiT9Br2o93DEVWu7PtLZQ+qO/RwjnIfvVsaNNUomm8APz7Tp6fH
	cqL5QqAMy2ltRNT38WvQPhpd7vNnowIj16ITacMnAI8FRvxle4UTFDQ4sdcSxLbLm+6o=;
Message-ID: <810b1398-20c1-4b1b-98ae-9d78520910f9@xen.org>
Date: Thu, 7 Dec 2023 12:53:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <20231121114048.31294-1-jgross@suse.com>
 <1a6f8027-0e49-4975-8ab1-998a9b4cebee@suse.com>
 <fab5cc9d-d97e-405d-9f7a-1b86de097aab@suse.com>
 <2763baaf-110d-457a-b302-12b06bf28b15@xen.org>
 <c3601b9a-67c6-498c-a177-cda94c3c3d47@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c3601b9a-67c6-498c-a177-cda94c3c3d47@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07/12/2023 12:39, Jan Beulich wrote:
> On 07.12.2023 13:14, Julien Grall wrote:
>> Hi Jan,
>>
>> On 07/12/2023 09:30, Jan Beulich wrote:
>>> On 07.12.2023 09:26, Juergen Gross wrote:
>>>> On 21.11.23 12:40, Juergen Gross wrote:
>>>>> Remove some command line options which have no real use case.
>>>>>
>>>>> Changes in V2:
>>>>> - moved removal of "-N" into last patch of the series, as this is the
>>>>>      only option which seems to have a use case (OTOH using it has some
>>>>>      downsides as well).
>>>>>
>>>>> Juergen Gross (5):
>>>>>      tools/xenstored: remove "-D" command line parameter
>>>>>      tools/xenstored: remove "-V" command line option
>>>>>      tools/xenstored: remove the "-P" command line option
>>>>>      tools/xenstored: remove the "-R" command line option
>>>>>      tools/xenstored: remove "-N" command line option
>>>>>
>>>>>     tools/xenstored/core.c | 81 +++++++-----------------------------------
>>>>>     1 file changed, 12 insertions(+), 69 deletions(-)
>>>>>
>>>>
>>>> I think at least patches 1-4 can go in as they all have the required Acks.
>>>
>>> I'll try to remember to include them in the next swipe. I was kind of
>>> assuming Julien would be taking care of them.
>>
>> Sorry this fell through the cracks. I can do it if you haven't yet done it.
> 
> I haven't yet, no.

Ok. I will take care of patches #1-#4 then.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:54:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:54:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649843.1014835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDu3-0006Gv-7l; Thu, 07 Dec 2023 12:54:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649843.1014835; Thu, 07 Dec 2023 12:54:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDu3-0006Go-4j; Thu, 07 Dec 2023 12:54:55 +0000
Received: by outflank-mailman (input) for mailman id 649843;
 Thu, 07 Dec 2023 12:54: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 1rBDu1-0006Gg-Li
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:54: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 1rBDu1-0003Bb-Ds; Thu, 07 Dec 2023 12:54:53 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBDu1-0005U6-70; Thu, 07 Dec 2023 12:54:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=NYt23IewFJ2vFR/tUQdEPOLChjZ401a1yhVQcz8Pwzo=; b=zbcMxlmVt7aeDH3l/p4TgBnRz3
	FoHPhRWdjGq0IuA5EClM3U/4Qh1vf4uoBZhgyr8cN6ADMD0iGMi4OAx7WvX/HpyffwixqGIUstNrz
	UEk2KF/E5K+xlcxElgVpnU/wM6Ku6SoR+2rqKrJD9HCdXm0slplCjfWxsv05vuwpzdbA=;
Message-ID: <b9b41fdf-7ecf-4a5d-be9d-d49f59810678@xen.org>
Date: Thu, 7 Dec 2023 12:54:52 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: bootfdt: Check return code of
 device_tree_for_each_node()
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>
References: <20231207101432.37732-1-michal.orzel@amd.com>
 <d45f0d37-dbca-44a8-a27f-b9e709bb9cfd@xen.org>
 <30947562-9806-4bc2-8381-8ffee25b62ea@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <30947562-9806-4bc2-8381-8ffee25b62ea@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 07/12/2023 12:39, Michal Orzel wrote:
> On 07/12/2023 13:20, Julien Grall wrote:
>>
>>
>> Hi Michal,
>>
>> On 07/12/2023 10:14, Michal Orzel wrote:
>>> As a result of not checking the return code of device_tree_for_each_node()
>>> in boot_fdt_info(), any error occured during early FDT parsing does not
>>> stop Xen from booting. This can result in an unwanted behavior in later
>>> boot stages. Fix it by checking the return code and panicing on an error.
>>>
>>> Fixes: 9cf4a9a46717 ("device tree: add device_tree_for_each_node()")
>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>
>> With one remark below:
>>
>> Acked-by: Julien Grall <jgrall@amazon.com>
>>
>>> ---
>>> I've lost count how many times I had to fix missing rc check. However, I have
>>> not yet found any checker for this (-Wunused-result is pretty useless).
>>> ---
>>>    xen/arch/arm/bootfdt.c | 4 +++-
>>>    1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
>>> index b1f03eb2fcdd..f496a8cf9494 100644
>>> --- a/xen/arch/arm/bootfdt.c
>>> +++ b/xen/arch/arm/bootfdt.c
>>> @@ -541,7 +541,9 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>>
>>>        add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
>>>
>>> -    device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
>>> +    ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
>>> +    if ( ret )
>>> +        panic("Early FDT parsing failed (%d)\n", ret);
>>
>> AFAIU, the parsing is done before the console is setup. This means a
>> user would not be able to get some logs unless they are re-compiling Xen
>> with earlyprintk.
>>
>> I understand this is not a new issue, but I am getting concerned of the
>> amount of check we add before the console is up and running.
>>
>> What is the impact if we don't check the return here? Is it missing regions?
> There are many things that can go wrong.
> Quite recently, I faced an issue where I specified 2 dom0less domUs in configuration
> and due to the error while parsing the last node of domU1, domU2 node was skipped and
> Xen booted only domU1 without giving any errors.
> 
> Issues with shared memory led to either Xen continue to run with improper configuration,
> silencing overlap conditions, errors at later boot stages that were impossible to deduct
> from the logs.
> 
> All in all, early boot code parsing assume the error to result in a failure and the parsing
> for domain creation makes this assumption as well (checks are more relaxed to avoid duplication).
> 
> For now, we can't do anything better than panicing early if we want to avoid unwanted behavior.
> 
>>
>> I wonder whether we can either enable the console earlier, or make
>> earlyprintk more dynamic (similar to what Linux is doing with
>> earlyprintk=...).
> The most imporatant part is early fdt parsing. The main console init cannot be moved that early.

I think we need to understand a bit more why because on x86 
consoel_init_preirq() is called very early. So we ought to be able to do 
the same on Arm.

I will add this in my list after I get the earlyprintk working while 
switching the MMU.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:55:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:55:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649845.1014845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDuU-0006jj-G5; Thu, 07 Dec 2023 12:55:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649845.1014845; Thu, 07 Dec 2023 12:55:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDuU-0006jc-Cu; Thu, 07 Dec 2023 12:55:22 +0000
Received: by outflank-mailman (input) for mailman id 649845;
 Thu, 07 Dec 2023 12: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=ri6x=HS=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rBDuT-0006jJ-Vd
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:55:22 +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 e0e22506-94ff-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 13:55:20 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2c9ef682264so8307231fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 04:55:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0e22506-94ff-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1701953720; x=1702558520; 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=L9eZGyTQww4F7GV0mTq9xrdy1qbxaPPMbQl412QVm8k=;
        b=Fp61dEk25j3WuQxn6Xj4c6YbJOJGvXTriHr2SFX66UjkCF1Opds4SFUOI67BahMfb9
         olrTfsewTfD6VDBISmlJkZs0NwS2/4oig9n/fLpY1lJh+lIG2u0aHva2xrNWU2YMhfyr
         Xmp/8eLImhN57tIjdM2zjs83G2LbidAUGUbZE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701953720; x=1702558520;
        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=L9eZGyTQww4F7GV0mTq9xrdy1qbxaPPMbQl412QVm8k=;
        b=RkOIpCEiFTrTUDp4CIMCDnjNE8bwClWTMZm4+Wvfw1ZZUdf2W1e7Cn++eDLGTtinuH
         dkXZ17dHahBAvbJglOnmNkl8Ji2Eg0zGA57jsfJKwfhsPXugrYFSDVF4tJRt/BQteuBz
         4k+oZkjFTCcA1rcU6Gyn+TkzLXOzrTb+FHpSEU95fWg8OcsYD83XnKdkRn27bBHyamZp
         ZfRhcx0fTnRTQCdYViDf9fwkDtq7q7wNVi8lubPzlGGjrxPvbcSTzI2TLjbKcnrNYFgr
         sb0/m6mYZuVDO3TheJoBVEm02WiylHeT8jcI5PhWNo0DJck19YWiPWa2P+ObShFBQvVC
         GVOA==
X-Gm-Message-State: AOJu0YxRrYbz3oH9m9TQqli2DySr0nuNDazMe0DTx0qMQpSkE5TWiXuC
	V5nYvsU0AMOhOcgW3DR5iv3/o1mDdyAKyK/C89CQLA==
X-Google-Smtp-Source: AGHT+IGjOYd0E03GCOlJCnhIQ+K3ewbZ8mPRB4RXQ2umUKi/AnrpHTV0HI7wt+HU30isPgjCamMYmE2B+Dl6dbP9/UI=
X-Received: by 2002:a2e:86cf:0:b0:2ca:688:8406 with SMTP id
 n15-20020a2e86cf000000b002ca06888406mr1402931ljj.3.1701953720089; Thu, 07 Dec
 2023 04:55:20 -0800 (PST)
MIME-Version: 1.0
References: <20231204152321.16520-1-jgross@suse.com> <20231204152321.16520-4-jgross@suse.com>
In-Reply-To: <20231204152321.16520-4-jgross@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Thu, 7 Dec 2023 12:55:09 +0000
Message-ID: <CA+zSX=bFDh2XUnJko3NfLxcq23K3WmFaX35n5-+M+k_5YJKaDw@mail.gmail.com>
Subject: Re: [PATCH v2 3/3] xen/sched: do some minor cleanup of sched_move_domain()
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Dario Faggioli <dfaggioli@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 4, 2023 at 3:23=E2=80=AFPM Juergen Gross <jgross@suse.com> wrot=
e:
>
> Do some minor cleanups:
>
> - Move setting of old_domdata and old_units next to each other
> - Drop incrementing unit_idx in the final loop of sched_move_domain()
>   as it isn't used afterwards
> - Rename new_p to new_cpu and unit_p to unit_cpu
>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: George Dunlap <george.dunlap@cloud.com>


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:55:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:55:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649846.1014855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDud-00074P-Mw; Thu, 07 Dec 2023 12:55:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649846.1014855; Thu, 07 Dec 2023 12:55: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 1rBDud-00074I-KV; Thu, 07 Dec 2023 12:55:31 +0000
Received: by outflank-mailman (input) for mailman id 649846;
 Thu, 07 Dec 2023 12:55: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 1rBDuc-00073U-6G
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:55: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 1rBDuY-0003Ca-AE; Thu, 07 Dec 2023 12:55:26 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBDuY-0005U6-5B; Thu, 07 Dec 2023 12:55:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=ia9VimKyVx6fHUQ4KOrk4GrQFXEWyJEie/mM4lkRn+E=; b=xiVCeEFJ9Pt6RVGtc30UFO6fXI
	j93IfmUduVrPJ1Ot1h0oGPcyzUdfSUJLeXyThU9zTvn73wd9D3kwd9Tx4qRngAS12Ta4uMpO3VHtD
	hkXKPkNz8OicvnPHfeHb1AZYp5TNJlWvB70f7baNmZ3eUswxCG1AXrs+E93sj0BNpils=;
Message-ID: <0d51ddb4-1bbc-4ed3-bc0d-3efdcb00f70d@xen.org>
Date: Thu, 7 Dec 2023 12:55:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: ARM: MISRA C:2012 Rule 5.6
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 Federico Serafini <federico.serafini@bugseng.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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <5a732dc4-70c7-4c03-b6fa-02d5074441bc@bugseng.com>
 <924a50ac-7200-45c7-b486-763b01b44a57@bugseng.com>
 <65b668a5-7518-4e96-8357-c3fc680e8760@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <65b668a5-7518-4e96-8357-c3fc680e8760@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07/12/2023 12:44, Jan Beulich wrote:
> On 07.12.2023 12:48, Federico Serafini wrote:
>> On 07/12/23 12:43, Federico Serafini wrote:
>>> Hello everyone,
>>>
>>> Rule 5.6 states that a typedef name shall be a unique identifier.
>>> This is to avoid developer confusion.
>>>
>>> For ARM, the violations left [1] are generated by two definitions
>>> of the type phys_addr_t within two different files.
>>> I would like to ask if this is intentional or not:
>>> if it is intentional and it is not causing any confusion between XEN
>>> developers, then I think violations involving phys_addr_t can be
>>> deviated.
>>>
>>> [1]
>>> https://saas.eclairit.com:3787/fs/var/local/eclair/XEN.ecdf/ECLAIR_normal/staging/ARM64-2023/429/PROJECT.ecd;/by_service/MC3R1.R5.6.html
>>
>> Adding XEN mailing list in CC.
> 
> Thanks.
> 
> These are files ported from Linux, where I assume the typedef-s were added
> to limit the changes which would need making elsewhere. Still I think that's
> exactly what we (now) have xen/linux-compat.h for. IOW - just move the
> typedef-s there?

+1. I was about to suggest the same.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:58:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649853.1014865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDxb-0001KL-4T; Thu, 07 Dec 2023 12:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649853.1014865; Thu, 07 Dec 2023 12: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 1rBDxb-0001KE-1g; Thu, 07 Dec 2023 12:58:35 +0000
Received: by outflank-mailman (input) for mailman id 649853;
 Thu, 07 Dec 2023 12:58: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 1rBDxZ-0001K8-Ci
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:58: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 1rBDxY-0003HG-UU; Thu, 07 Dec 2023 12:58:32 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBDxY-0005lR-NV; Thu, 07 Dec 2023 12:58: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:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=CTkZr54jQZLWNJBvwjG4v+r1Cjl46Pc2EGHJvvlqZkQ=; b=Us8SAaAvxDreVEud6kPHmk48Rq
	l9FPYOC7vTagkplxhGyboEqg9Hx04ykCOaFeaJxImKPAMOQiMaarsrYauQnH6DlkEXfWEP2cjAZRv
	nE8ZNWa7O+2innOvC+oN4e7uZd+fgs9a9Krf5ONJ9ofecePnXPpfIus/q6n1juIeNUB4=;
Message-ID: <beb24b8c-700f-4d2a-955f-2d2b30d4ae79@xen.org>
Date: Thu, 7 Dec 2023 12:58:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: bootfdt: Check return code of
 device_tree_for_each_node()
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231207101432.37732-1-michal.orzel@amd.com>
 <d45f0d37-dbca-44a8-a27f-b9e709bb9cfd@xen.org>
In-Reply-To: <d45f0d37-dbca-44a8-a27f-b9e709bb9cfd@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07/12/2023 12:20, Julien Grall wrote:
> Hi Michal,
> 
> On 07/12/2023 10:14, Michal Orzel wrote:
>> As a result of not checking the return code of 
>> device_tree_for_each_node()
>> in boot_fdt_info(), any error occured during early FDT parsing does not
>> stop Xen from booting. This can result in an unwanted behavior in later
>> boot stages. Fix it by checking the return code and panicing on an error.
>>
>> Fixes: 9cf4a9a46717 ("device tree: add device_tree_for_each_node()")
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> 
> With one remark below:
> 
> Acked-by: Julien Grall <jgrall@amazon.com>

It is now committed.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 12:59:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 12:59:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649855.1014874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDyU-0001qs-D2; Thu, 07 Dec 2023 12:59:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649855.1014874; Thu, 07 Dec 2023 12:59:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBDyU-0001ql-AJ; Thu, 07 Dec 2023 12:59:30 +0000
Received: by outflank-mailman (input) for mailman id 649855;
 Thu, 07 Dec 2023 12:59:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rBDyT-0001qS-GX
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 12:59:29 +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 1rBDyS-0003I5-VX; Thu, 07 Dec 2023 12:59:28 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBDyS-0005lR-QO; Thu, 07 Dec 2023 12:59:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=he/l4mh3M5Y5ajDqo0hFInrdrnr3fL1/BgQL1qRsSxM=; b=WeYJZW5XPd9Tsy8iYXKd0zWh/g
	gRICn3s3WYtIDiyPkiO8IHuK2PyRpTWNLkn08EOYQPqFxz8VuhMbSWMkHSuSezGhDAd7+vbrNNtVb
	poCe3Q9lBnBDyQBLq7eXSk2cVzfcRYiw5VMEU9CSh2YQ/bGSeYfytr7O2YmZjt2jF2Ww=;
Message-ID: <136cbc2c-79ac-44f2-a2e5-356bde561074@xen.org>
Date: Thu, 7 Dec 2023 12:59:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>
References: <20231121114048.31294-1-jgross@suse.com>
 <1a6f8027-0e49-4975-8ab1-998a9b4cebee@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <1a6f8027-0e49-4975-8ab1-998a9b4cebee@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 07/12/2023 08:26, Juergen Gross wrote:
> On 21.11.23 12:40, Juergen Gross wrote:
>> Remove some command line options which have no real use case.
>>
>> Changes in V2:
>> - moved removal of "-N" into last patch of the series, as this is the
>> Â Â  only option which seems to have a use case (OTOH using it has some
>> Â Â  downsides as well).
>>
>> Juergen Gross (5):
>> Â Â  tools/xenstored: remove "-D" command line parameter
>> Â Â  tools/xenstored: remove "-V" command line option
>> Â Â  tools/xenstored: remove the "-P" command line option
>> Â Â  tools/xenstored: remove the "-R" command line option
>> Â Â  tools/xenstored: remove "-N" command line option
>>
>> Â  tools/xenstored/core.c | 81 +++++++-----------------------------------
>> Â  1 file changed, 12 insertions(+), 69 deletions(-)
>>
> 
> I think at least patches 1-4 can go in as they all have the required Acks.

Thanks for the reminder. I have committed patches #1-#4.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:17:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649861.1014885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEFk-0005YF-2j; Thu, 07 Dec 2023 13:17:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649861.1014885; Thu, 07 Dec 2023 13:17:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEFj-0005Y8-Vp; Thu, 07 Dec 2023 13:17:19 +0000
Received: by outflank-mailman (input) for mailman id 649861;
 Thu, 07 Dec 2023 13:17:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qi5/=HS=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1rBEFi-0005VT-4n
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:17:18 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f0f7a799-9502-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 14:17:16 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-54cae99a48aso1981984a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 05:17:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0f7a799-9502-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701955035; x=1702559835; 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=lqmhgQ6IUlZJ82gSiojTSv2+yYvRh+WxRcfBls1+Bjw=;
        b=Jb993qIy/J/EnEtqx+sJ9trR41o0YObLExIi01uWSXKkClVt3CTmJ2Nxz5p2YSyhmt
         /9paifk+wK4vhEvKV6iYlvEo/AweuPbEWYulGNhfbQTdphL4YOY6av/v7fGsbpbIDmUs
         i5PTzF/wfy+R6JKpuHqKT6519+IR0P3o72MpT3aUvTuAgW9+a801SvBGKLlYpl8O0pb0
         YbwxwQ12yk/I9QViv6R0qEkSD04qdSrOQOPpEkvmmhhqdoAMTpf+Kzz1s8SsqBElYWW7
         Vkx6nwhB0cALn90Sv39SrE1oPbeV2BpwGBloZWZHIHcm0iuJVo2paz7440CugbF6drC3
         zSeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701955035; x=1702559835;
        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=lqmhgQ6IUlZJ82gSiojTSv2+yYvRh+WxRcfBls1+Bjw=;
        b=rQmepJsNFNeShgL/5ts37DMSQeAqxmQXqSxoxsvmOI/Da/Cxu8oF3pmgNrcIq5R70+
         BnKtzy0g7QXXbA3bHTkpmyWmC7HrrRENCkbsFOKtKnSBI2uzLces7Vnf9223oXZpNZQ5
         VM/zYcz2a7aaATP3gElu6pExSiXZfvu8zZVv8dN0JGpKPhhm88Cc3f6B3gZXG8/f76k1
         ju1fsyrwkuaYw9QYv1d1zQcGNV+39x/W1AsbZvd6tTu+GbCalC2aic7g2X/b/VLZ6nau
         fF9nXxERFZRI/hnfqXNPluyMxER443IziNzBqlrLBvgmmjpoURYEFN4H8xbSjHDCYcoL
         O7OQ==
X-Gm-Message-State: AOJu0YyKcGpwTl5KTsAApS/TnmnQ8M+vSCtUcZc9G95utiaVOCPpibyj
	nJufhkRafKSJiktNluXHVkEvF5JEdqfB0R+P8X1yMKYY
X-Google-Smtp-Source: AGHT+IE7ueSYllPm62fE6z8gKqOv9MWgdEDXYYPgJ9NeRnsCFglZWYO5lBA+K6hkzXVyZa+VrLNceCbb4GBanQLuMV4=
X-Received: by 2002:a50:8dcb:0:b0:54d:8d00:de34 with SMTP id
 s11-20020a508dcb000000b0054d8d00de34mr2587026edh.6.1701955035456; Thu, 07 Dec
 2023 05:17:15 -0800 (PST)
MIME-Version: 1.0
References: <20231207062551.19825-1-jgross@suse.com>
In-Reply-To: <20231207062551.19825-1-jgross@suse.com>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Thu, 7 Dec 2023 08:17:03 -0500
Message-ID: <CAKf6xpt7RSpsR3eFXqSJX-XJeEBZAv6MFTrK67QTpDy+s-=Byg@mail.gmail.com>
Subject: Re: [PATCH v2] tools/libs/evtchn: replace assert()s in stubdom with
 proper locking
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 7, 2023 at 1:26=E2=80=AFAM Juergen Gross <jgross@suse.com> wrot=
e:
>
> In tools/libs/evtchn/minios.c there are assert()s for the current
> thread being the main thread when binding an event channel.
>
> As Mini-OS is supporting multiple threads, there is no real reason
> why the binding shouldn't be allowed to happen in any other thread.
>
> Drop the assert()s and replace them with proper locking of the
> port_list.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

Thank you for doing this.

-Jason


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:44:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:44:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649864.1014895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEfg-0005w9-3z; Thu, 07 Dec 2023 13:44:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649864.1014895; Thu, 07 Dec 2023 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 1rBEfg-0005w2-17; Thu, 07 Dec 2023 13:44:08 +0000
Received: by outflank-mailman (input) for mailman id 649864;
 Thu, 07 Dec 2023 13:44: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=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBEff-0005vv-9F
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:44:07 +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 afc9cebb-9506-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 14:44:04 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-54bf9a54fe3so1324560a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 05:44:04 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 u24-20020a50a418000000b0054c77ac01f4sm813333edb.51.2023.12.07.05.44.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 05:44:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: afc9cebb-9506-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701956644; x=1702561444; 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=ROCimpol/rLlDeNd6pBGKJSURddmRjpgO76QnvNURCk=;
        b=EIM5U0yFpk0g4A0hyJZNTH53UUbyxi7QJl5MZZVQf/RVsLbuZvHHgpj64yORX8T/tp
         mxw0yX8D1onewcJL1groSmp1UGHGp7tRdT/MGHcFuhK31vWkIzgliMdfzcmmUYJtsMca
         fikIGHtGJKpY1qOiItSGv60GlzjZrVQaTttjRnWJw7c0oXkJ8tkRTW30CKA7FQfrQ2Fc
         HHkCwgTugC5/JYnt5bAXXRvih5hPKKOWx0pXYczFcyEX75EHZp60i+Rj9D0judOOqqIm
         l1bCUe/SBchLOpOFv4esjDzOWlbCt6iy/N5O9OPTE1wRZImp5K0ZgdtOSTYV5FNWCoqD
         ajXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701956644; x=1702561444;
        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=ROCimpol/rLlDeNd6pBGKJSURddmRjpgO76QnvNURCk=;
        b=WEPygk7r2hxvbFhir2j6ddqu+bJ1SEPUIcnul+qnwkzJbgIDdRv2yFRsGcGiTxKsrA
         4btG97Z7TDpPOZKLjwLTmPRaBKXvZopGqPfs6nIH5i+bG3qHEpoBCQL3I4/M+qPkml/m
         ApqMMKsj9hAi8Ch2n19tPvREM8FrJ/72E1zPl80rUT0twV0hqOwqxqgqDD7NK1bX/8aD
         SdilBX0dLowULEFZ+TEoXfuoiJe0oswi/EqhdJ4hkQBQCS+Fe8d8yfPEt03KtyeAPYFe
         VdFrkfDPp/yF39PyaKhrY6t1X2P3wtOQcmhmJCvmhwKy31MkWPSSr5TCO8SN0NPXc+Rs
         f6Pg==
X-Gm-Message-State: AOJu0YyzJMcSyPrJeQw1lCBtXPOMEY1i0jZJtdQunvMqvUHDvChKP/km
	1CW1eaTcFhftU3hqelZhkcw=
X-Google-Smtp-Source: AGHT+IGql7H9Nk6OsFc7QVqahv+E/gZO/HNGJkHwMUqC2KtpRgKl89aZ4/0o7SssXP3BHgSEuYJMbw==
X-Received: by 2002:a05:6402:38b:b0:54a:f1db:c2b3 with SMTP id o11-20020a056402038b00b0054af1dbc2b3mr1808672edv.0.1701956644108;
        Thu, 07 Dec 2023 05:44:04 -0800 (PST)
Message-ID: <09d24b36380027df21d547de438da10e01eda0e0.camel@gmail.com>
Subject: Re: [PATCH v2 01/39] xen/riscv: disable unnecessary configs
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>
Cc: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	 <sstabellini@kernel.org>, Alistair Francis <alistair.francis@wdc.com>, Bob
	Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, 
	xen-devel@lists.xenproject.org
Date: Thu, 07 Dec 2023 15:44:02 +0200
In-Reply-To: <008d0c66-6816-4d12-9e1f-1878e982f9fc@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.oleksii.kurochko@gmail.com>
	 <fdfda320-b73b-4830-8f1b-d261b02bcdde@suse.com>
	 <22fa451f7b165a00082443a35077e98e101c22e4.camel@gmail.com>
	 <008d0c66-6816-4d12-9e1f-1878e982f9fc@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 11:00 +0100, Jan Beulich wrote:
> On 07.12.2023 10:22, Oleksii wrote:
> > On Tue, 2023-12-05 at 16:38 +0100, Jan Beulich wrote:
> > > > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > > > The patch also fixes the build script as conf util expects
> > > > > > to have each config on separate line.
> > > >=20
> > > > The approach doesn't really scale (it's already odd that you
> > > > add
> > > > the
> > > > (apparently) same set four times. There's also zero
> > > > justification
> > > > for
> > > > this kind of an adjustment (as per discussion elsewhere I don't
> > > > think
> > > > we should go this route, and hence arguments towards convincing
> > > > me
> > > > [and
> > > > perhaps others] would be needed here).
> > I agree that this may not be the best approach, but it seems like
> > we
> > don't have too many options to turn off a config for randconfig.
> >=20
> > To be honest, in my opinion (IMO), randconfig should either be
> > removed
> > or allowed to fail until most of the functionality is ready.
> > Otherwise,
> > there should be a need to introduce HAS_* or depend on
> > 'SUPPORTED_ARCHS' for each config, or introduce a lot of stubs.
> >=20
> > Could you please suggest a better option?
>=20
> As to dropping randconfig tests, I'd like to refer you to Andrew, who
> is of the opinion that it was wrong to drop them for ppc. (I'm
> agreeing
> with him when taking a theoretical perspective, but I'm not happy
> with
> the practical consequences.)
>=20
> As to a better approach: Instead of listing the same set of options
> several times, can't there be a template config which is used to
> force
> randconfig to not touch certain settings? In fact at least for non-
> randconfig purposes I thought tiny64_defconfig / riscv64_defconfig
> already serve kind of a similar purpose. Imo the EXTRA_*CONFIG
> overrides
> are there for at most very few special case settings, not for
> purposes
> like you use them here.
The template will be the really a good option.

What do you think about the following patch which introduces arch-
specific allrandom.config?

diff --git a/xen/Makefile b/xen/Makefile
index ca571103c8..cb1eca76c2 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -336,11 +336,14 @@ ifeq ($(config-build),y)
 # *config targets only - make sure prerequisites are updated, and
descend
 # in tools/kconfig to make the *config target
=20
+ARCH_ALLRANDOM_CONFIG :=3D
$(srctree)/arch/$(SRCARCH)/configs/allrandom.config
+
 # Create a file for KCONFIG_ALLCONFIG which depends on the
environment.
 # This will be use by kconfig targets
allyesconfig/allmodconfig/allnoconfig/randconfig
 filechk_kconfig_allconfig =3D \
     $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo
'CONFIG_XSM_FLASK_POLICY=3Dn';) \
-    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
+    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
+    $(if $(wildcard $(ARCH_ALLRANDOM_CONFIG)), cat
$(ARCH_ALLRANDOM_CONFIG);) ) \
     :

If this patch is OK then it can be reused for patches:
https://lore.kernel.org/xen-devel/cdc20255540a66ba0b6946ac6d48c11029cd3385.=
1701453087.git.oleksii.kurochko@gmail.com/
https://lore.kernel.org/xen-devel/d42a34866edc70a12736b5c6976aa1b44b4ebd8a.=
1701453087.git.oleksii.kurochko@gmail.com/

>=20
> > > > > > --- a/automation/gitlab-ci/build.yaml
> > > > > > +++ b/automation/gitlab-ci/build.yaml
> > > > > > @@ -522,6 +522,38 @@ archlinux-current-gcc-riscv64:
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 CONTAINER: archlinux:current-riscv64
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: tiny64_defconfig
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 HYPERVISOR_ONLY: y
> > > > > > +=C2=A0=C2=A0=C2=A0 EXTRA_XEN_CONFIG:
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> > > > > > +=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_SCHED_CREDIT=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_SCHED_CREDIT2=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_SCHED_RTDS=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_SCHED_NULL=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_SCHED_ARINC653=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_TRACEBUFFER=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_HYPFS=3Dn
> > > > > > +=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_SPECULATIVE_HARDEN_ARRAY=
=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_ARGO=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_HYPFS_CONFIG=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_CORE_PARKING=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_DEBUG_TRACE=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_IOREQ_SERVER=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_CRASH_DEBUG=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_KEXEC=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_MEM_ACCESS=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_NUMA=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_HAS_PMAP=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_TRACEBUFFER=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_XENOPROF=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COMPAT=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_UBSAN=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_NEEDS_LIBELF=3Dn
> > > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_XSM=3Dn
> > > > > > +
> > > > > > =C2=A0
> > > > > > =C2=A0archlinux-current-gcc-riscv64-debug:
> > > > > > =C2=A0=C2=A0 extends: .gcc-riscv64-cross-build-debug
> > > >=20
> > > > I think I've said so elsewhere before: Please avoid introducing
> > > > double
> > > > blank lines, unless entirely unavoidable (for reasons I cannot
> > > > think
> > > > of).
> > Sorry for that; I am not doing that on purpose. It's just a big
> > patch
> > series, and I missed that double blank. I will try to be more
> > attentive.
> >=20
> > Do you think it makes sense to add a script to perform basic code
> > style
> > checks, similar to what Linux has?
>=20
> Such a script would be nice, but it doesn't exist and re-using
> existing
> checkers has also proven controversial. There's actually an ongoing
> discussion on this topic which you may want to follow.
Yes, I would like to follow. I'll search the topic in ML.
Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:52:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649867.1014905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEnN-0001Me-SK; Thu, 07 Dec 2023 13:52:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649867.1014905; Thu, 07 Dec 2023 13:52:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEnN-0001MX-PU; Thu, 07 Dec 2023 13:52:05 +0000
Received: by outflank-mailman (input) for mailman id 649867;
 Thu, 07 Dec 2023 13:52:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rBEnM-0001M7-OO
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:52:04 +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 1rBEnM-0004J9-3E; Thu, 07 Dec 2023 13:52:04 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBEnL-00009s-RV; Thu, 07 Dec 2023 13:52:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=U8FLwk1t6lAl+GtJxDCuCXHQUwyHkPzGW9n8rEj0nK0=; b=TmPE2lX3iL9wbuSllzJ49CEob2
	/PpM0Ffl+zXn3XLeNYnHwaVomXnY+mSJ1rbioe9hjwHnQYVp+RMfe5OrthqpwPtbdQoWVYgSGFjop
	yzOqDliwidVnZV9l2xsaAxz1gnL18SQKqSMvZIXFeN2p354sZzDxC25aOoRdZaZQ7CuM=;
Message-ID: <f57fad10-f5c9-4a28-8c46-bc398bdc2dd3@xen.org>
Date: Thu, 7 Dec 2023 13:52:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 3/3] xen/mm: add declaration for first_valid_mfn
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <cover.1701947290.git.nicola.vetrini@bugseng.com>
 <2c02524be7d02064fdf2f5003ef1c507034e4437.1701947290.git.nicola.vetrini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <2c02524be7d02064fdf2f5003ef1c507034e4437.1701947290.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 07/12/2023 11:11, Nicola Vetrini wrote:
> Such declaration is needed to comply with MISRA C Rule 8.4, because a
> compatible declaration is not visible in xen/common/page_alloc.c, where the
> variable is defined. That variable can't yet be static because of the lack of
> support from ARM and PPC for NUMA.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> Having this declaration essentially sidesteps the current impossibility
> of having a static variable, as described in the comments in
> ARM and PCC's asm/numa.h.
With this change, is there any reason to keep the various declaration of 
first_valid_mfn in numa.h?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:53:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649869.1014915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEoN-0001t3-4N; Thu, 07 Dec 2023 13:53:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649869.1014915; Thu, 07 Dec 2023 13: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 1rBEoN-0001sw-1R; Thu, 07 Dec 2023 13:53:07 +0000
Received: by outflank-mailman (input) for mailman id 649869;
 Thu, 07 Dec 2023 13:53:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TliB=HS=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rBEoL-0001sn-Ga
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:53:05 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f0c17959-9507-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 14:53:03 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 91BC54EE073A;
 Thu,  7 Dec 2023 14:53:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0c17959-9507-11ee-9b0f-b553b5be7939
Message-ID: <65db0ca1-9afa-4d9a-8bf2-7b1720ac1f60@bugseng.com>
Date: Thu, 7 Dec 2023 14:53:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen/x86: address violations of MISRA C:2012 Rule 14.4
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
 <d494980216b8f0f870083fcfae7269f45e779780.1701941924.git.maria.celeste.cesario@bugseng.com>
 <30b48e9b-0630-4df9-ac6b-5ece418bf4b0@suse.com>
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <30b48e9b-0630-4df9-ac6b-5ece418bf4b0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 07/12/23 11:54, Jan Beulich wrote:
> On 07.12.2023 10:48, Simone Ballarin wrote:
>> --- a/xen/arch/x86/hpet.c
>> +++ b/xen/arch/x86/hpet.c
>> @@ -279,7 +279,7 @@ static int hpet_msi_write(struct hpet_event_channel *ch, struct msi_msg *msg)
>>   {
>>       ch->msi.msg = *msg;
>>   
>> -    if ( iommu_intremap )
>> +    if ( iommu_intremap != iommu_intremap_off )
>>       {
>>           int rc = iommu_update_ire_from_msi(&ch->msi, msg);
>>   
>> @@ -353,7 +353,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
>>       u32 cfg = hpet_read32(HPET_Tn_CFG(ch->idx));
>>       irq_desc_t *desc = irq_to_desc(ch->msi.irq);
>>   
>> -    if ( iommu_intremap )
>> +    if ( iommu_intremap != iommu_intremap_off )
>>       {
>>           ch->msi.hpet_id = hpet_blockid;
>>           ret = iommu_setup_hpet_msi(&ch->msi);
>> @@ -372,7 +372,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
>>           ret = __hpet_setup_msi_irq(desc);
>>       if ( ret < 0 )
>>       {
>> -        if ( iommu_intremap )
>> +        if ( iommu_intremap != iommu_intremap_off )
>>               iommu_update_ire_from_msi(&ch->msi, NULL);
>>           return ret;
>>       }
>> diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
>> index 7f8e794254..72dce2e4ab 100644
>> --- a/xen/arch/x86/msi.c
>> +++ b/xen/arch/x86/msi.c
>> @@ -189,7 +189,7 @@ static int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
>>   {
>>       entry->msg = *msg;
>>   
>> -    if ( iommu_intremap )
>> +    if ( iommu_intremap != iommu_intremap_off )
>>       {
>>           int rc;
>>   
>> @@ -555,7 +555,7 @@ int msi_free_irq(struct msi_desc *entry)
>>               destroy_irq(entry[nr].irq);
>>   
>>           /* Free the unused IRTE if intr remap enabled */
>> -        if ( iommu_intremap )
>> +        if ( iommu_intremap != iommu_intremap_off )
>>               iommu_update_ire_from_msi(entry + nr, NULL);
>>       }
>>   
> 
> All of this would logically be part of patch 1. Is there a particular reason
> why it wasn't done right there?

These changes and the ones in patch 1 are related, but still remain
independent. Patch 1 can be accepted without patch 2 and vice versa.
So we've decided to split the commits because patch 1 is in common
code, while patch 2 is in x86-specific code.

No other real reasons, but in any case we can move these changes to
patch 1.

> 
>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
>> @@ -1320,7 +1320,7 @@ x86_emulate(
>>           ea.bytes = 2;
>>           goto srcmem_common;
>>       case SrcMem:
>> -        if ( state->simd_size )
>> +        if ( state->simd_size != simd_none )
>>               break;
>>           ea.bytes = (d & ByteOp) ? 1 : op_bytes;
>>       srcmem_common:
>> @@ -1460,7 +1460,7 @@ x86_emulate(
>>           /* Becomes a normal DstMem operation from here on. */
>>       case DstMem:
>>           generate_exception_if(ea.type == OP_MEM && evex.z, X86_EXC_UD);
>> -        if ( state->simd_size )
>> +        if ( state->simd_size != simd_none )
>>           {
>>               generate_exception_if(lock_prefix, X86_EXC_UD);
>>               break;
>> @@ -8176,7 +8176,7 @@ x86_emulate(
>>           goto done;
>>       }
>>   
>> -    if ( state->rmw )
>> +    if ( state->rmw != rmw_NONE )
>>       {
>>           ea.val = src.val;
>>           op_bytes = dst.bytes;
>> @@ -8205,7 +8205,7 @@ x86_emulate(
>>   
>>           dst.type = OP_NONE;
>>       }
>> -    else if ( state->simd_size )
>> +    else if ( state->simd_size != simd_none )
>>       {
>>           generate_exception_if(!op_bytes, X86_EXC_UD);
>>           generate_exception_if((vex.opcx && (d & TwoOp) &&
> 
> I'd be (somewhat reluctantly) okay with ack-ing this part of the patch.
> 
> Jan

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:53:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:53:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649872.1014925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEon-0002Mt-Bn; Thu, 07 Dec 2023 13:53:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649872.1014925; Thu, 07 Dec 2023 13:53: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 1rBEon-0002Mm-8r; Thu, 07 Dec 2023 13:53:33 +0000
Received: by outflank-mailman (input) for mailman id 649872;
 Thu, 07 Dec 2023 13:53: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=cCsk=HS=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBEol-0002Al-Vd
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:53:31 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0072ce90-9508-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 14:53:30 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 92DA612FC;
 Thu,  7 Dec 2023 05:54:15 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id EB5D83F6C4;
 Thu,  7 Dec 2023 05:53:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0072ce90-9508-11ee-98e7-6d05b1d4d9a1
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH 0/5] automation: Support running FVP Dom0 smoke test for Arm
Date: Thu,  7 Dec 2023 21:53:13 +0800
Message-Id: <20231207135318.1912846-1-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series adds the support for running FVP Dom0 smoke test for Arm on
the Arm64 GitLab CI runner. Detailed changes please refer to the commit
message of each commit.

An example test pipeline with these patches applied (with the docker
registry changed to my own registry and unrelated job removed) can be
found at:
https://gitlab.com/xen-project/people/henryw/xen/-/pipelines/1098531057

Henry Wang (5):
  automation: Add a Dockerfile for running FVP_Base jobs
  automation: Add the Dockerfile to build TF-A and U-Boot for FVP
  automation: Add the expect script with test case for FVP
  automation: Add the script for the FVP smoke test
  automation: Add the arm64 FVP build and Dom0 smoke test jobs

 .../debian/bookworm-arm64v8-fvp.dockerfile    |  64 ++++++++++
 automation/gitlab-ci/build.yaml               |  17 +++
 automation/gitlab-ci/test.yaml                |  22 ++++
 .../expect/fvp-base-smoke-dom0-arm64.exp      |  73 +++++++++++
 .../scripts/fvp-base-smoke-dom0-arm64.sh      | 117 ++++++++++++++++++
 .../2023.10-2.9.0-arm64v8.dockerfile          |  48 +++++++
 6 files changed, 341 insertions(+)
 create mode 100644 automation/build/debian/bookworm-arm64v8-fvp.dockerfile
 create mode 100755 automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
 create mode 100755 automation/scripts/fvp-base-smoke-dom0-arm64.sh
 create mode 100644 automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:53:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:53:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649873.1014935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEor-0002cn-Js; Thu, 07 Dec 2023 13:53:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649873.1014935; Thu, 07 Dec 2023 13:53: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 1rBEor-0002cc-Gj; Thu, 07 Dec 2023 13:53:37 +0000
Received: by outflank-mailman (input) for mailman id 649873;
 Thu, 07 Dec 2023 13:53: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=cCsk=HS=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBEoq-0002bv-6w
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:53:36 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 030ad929-9508-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 14:53:34 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6AD19139F;
 Thu,  7 Dec 2023 05:54:19 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id C348F3F6C4;
 Thu,  7 Dec 2023 05:53:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 030ad929-9508-11ee-9b0f-b553b5be7939
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH 1/5] automation: Add a Dockerfile for running FVP_Base jobs
Date: Thu,  7 Dec 2023 21:53:14 +0800
Message-Id: <20231207135318.1912846-2-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231207135318.1912846-1-Henry.Wang@arm.com>
References: <20231207135318.1912846-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Fixed Virtual Platforms (FVPs) are complete simulations of an Arm
system, including processor, memory and peripherals. These are set
out in a "programmer's view", which gives programmers a comprehensive
model on which to build and test software. FVP can be configured to
different setups by its cmdline parameters, and hence having the FVP
in CI will provide us with the flexibility to test Arm features and
setups that we find difficult to use real hardware or emulators.

This commit adds a Dockerfile for the new arm64v8 container with
FVP installed, based on the debian bookworm-arm64v8 image. This
container will be used to run the FVP test jobs. Compared to the
debian bookworm-arm64v8 image, the packages in the newly added FVP
container does not contain the `u-boot-qemu`, and adds the `expect`
to run expect scripts introduced by following commits, `telnet` to
connect to FVP, and `tftpd-hpa` to provide the TFTP service for
the FVP.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
---
 .../debian/bookworm-arm64v8-fvp.dockerfile    | 64 +++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 automation/build/debian/bookworm-arm64v8-fvp.dockerfile

diff --git a/automation/build/debian/bookworm-arm64v8-fvp.dockerfile b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile
new file mode 100644
index 0000000000..3b87dc5a5b
--- /dev/null
+++ b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile
@@ -0,0 +1,64 @@
+FROM --platform=linux/arm64/v8 debian:bookworm
+LABEL maintainer.name="The Xen Project" \
+      maintainer.email="xen-devel@lists.xenproject.org"
+
+ARG FVP_BASE_VERSION="11.23_9_Linux64_armv8l"
+
+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 \
+        libssl-dev \
+        python3-dev \
+        python3-setuptools \
+        xorg-dev \
+        uuid-dev \
+        libyajl-dev \
+        libaio-dev \
+        libglib2.0-dev \
+        clang \
+        libpixman-1-dev \
+        pkg-config \
+        flex \
+        bison \
+        acpica-tools \
+        libfdt-dev \
+        bin86 \
+        bcc \
+        liblzma-dev \
+        libnl-3-dev \
+        ocaml-nox \
+        libfindlib-ocaml-dev \
+        markdown \
+        transfig \
+        pandoc \
+        checkpolicy \
+        wget \
+        git \
+        nasm \
+        # for test phase, fvp-smoke-* jobs
+        u-boot-tools \
+        expect \
+        device-tree-compiler \
+        curl \
+        cpio \
+        busybox-static \
+        telnet \
+        tftpd-hpa \
+        && \
+        apt-get autoremove -y && \
+        apt-get clean && \
+        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
+
+RUN wget https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz && \
+    mkdir -p /FVP/FVP_Base_RevC-2xAEMvA && \
+    tar -xvzf FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz -C /FVP/FVP_Base_RevC-2xAEMvA && \
+    rm FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:53:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:53:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649874.1014945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEot-0002u1-Vv; Thu, 07 Dec 2023 13:53:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649874.1014945; Thu, 07 Dec 2023 13:53:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEot-0002tu-T5; Thu, 07 Dec 2023 13:53:39 +0000
Received: by outflank-mailman (input) for mailman id 649874;
 Thu, 07 Dec 2023 13:53:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cCsk=HS=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBEos-0002Al-Lb
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:53:38 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 04f5b949-9508-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 14:53:37 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1699912FC;
 Thu,  7 Dec 2023 05:54:23 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6F7F23F6C4;
 Thu,  7 Dec 2023 05:53:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04f5b949-9508-11ee-98e7-6d05b1d4d9a1
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH 2/5] automation: Add the Dockerfile to build TF-A and U-Boot for FVP
Date: Thu,  7 Dec 2023 21:53:15 +0800
Message-Id: <20231207135318.1912846-3-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231207135318.1912846-1-Henry.Wang@arm.com>
References: <20231207135318.1912846-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Unlike the emulators that currently being used in the CI pipelines,
the FVP must start at EL3. Therefore we need the firmware, i.e. the
TrustedFirmware-A (TF-A), for corresponding functionality.

There is a dedicated board (vexpress_fvp) in U-Boot (serve as the
BL33 of the TF-A) for the FVP platform, so the U-Boot should also be
compiled for the FVP platform instead of reusing the U-Boot for the
existing emulators used in the CI pipelines.

To avoid compiling TF-A and U-Boot everytime in the job, adding a
Dockerfile to the test artifacts to build TF-A v2.9.0 and U-Boot
v2023.10 for FVP. The binaries for the TF-A and U-Boot, as well as
the device tree for the FVP platform, will be saved (and exported by
the CI job introduced by following commits). Note that, a patch for
the TF-A will be applied before building to enable the virtio-net
and the virtio-rng device on the FVP. The virtio-net device will
provide the networking service for FVP, and the virtio-rng device
will improve the speed of the FVP.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
---
 .../2023.10-2.9.0-arm64v8.dockerfile          | 48 +++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile

diff --git a/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile b/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
new file mode 100644
index 0000000000..6566b60545
--- /dev/null
+++ b/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
@@ -0,0 +1,48 @@
+FROM --platform=linux/arm64/v8 debian:bookworm
+LABEL maintainer.name="The Xen Project" \
+      maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV UBOOT_VERSION="2023.10"
+ENV TFA_VERSION="v2.9.0"
+ENV USER root
+
+RUN mkdir /build
+WORKDIR /build
+
+# build depends
+RUN apt-get update && \
+    apt-get --quiet --yes install \
+        build-essential \
+        libssl-dev \
+        bc \
+        curl \
+        flex \
+        bison \
+        git \
+        device-tree-compiler && \
+    apt-get autoremove -y && \
+    apt-get clean && \
+    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
+
+# Build U-Boot and TF-A
+RUN curl -fsSLO https://ftp.denx.de/pub/u-boot/u-boot-"$UBOOT_VERSION".tar.bz2 && \
+    tar xvf u-boot-"$UBOOT_VERSION".tar.bz2 && \
+    cd u-boot-"$UBOOT_VERSION" && \
+    make -j$(nproc) V=1 vexpress_fvp_defconfig && \
+    make -j$(nproc) V=1 all && \
+    cd .. && \
+    git clone --branch "$TFA_VERSION" --depth 1 https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git && \
+    cd trusted-firmware-a && \
+    curl -fsSLO https://git.yoctoproject.org/meta-arm/plain/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/fvp-base/0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch \
+         --output 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
+    git config --global user.email "you@example.com" && \
+    git config --global user.name "Your Name" && \
+    git am 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
+    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t all && \
+    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t fip BL33=../u-boot-"$UBOOT_VERSION"/u-boot.bin && \
+    cp build/fvp/debug/bl1.bin / && \
+    cp build/fvp/debug/fip.bin / && \
+    cp build/fvp/debug/fdts/fvp-base-gicv3-psci-1t.dtb / && \
+    cd /build && \
+    rm -rf u-boot-"$UBOOT_VERSION" trusted-firmware-a
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:53:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:53:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649875.1014955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEox-0003E0-81; Thu, 07 Dec 2023 13:53:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649875.1014955; Thu, 07 Dec 2023 13: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 1rBEox-0003Dl-4t; Thu, 07 Dec 2023 13:53:43 +0000
Received: by outflank-mailman (input) for mailman id 649875;
 Thu, 07 Dec 2023 13:53: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=cCsk=HS=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBEow-0002Al-6g
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:53:42 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 071a17ec-9508-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 14:53:40 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C4DF312FC;
 Thu,  7 Dec 2023 05:54:26 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 29CE03F6C4;
 Thu,  7 Dec 2023 05:53:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 071a17ec-9508-11ee-98e7-6d05b1d4d9a1
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH 3/5] automation: Add the expect script with test case for FVP
Date: Thu,  7 Dec 2023 21:53:16 +0800
Message-Id: <20231207135318.1912846-4-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231207135318.1912846-1-Henry.Wang@arm.com>
References: <20231207135318.1912846-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To interact with the FVP (for example entering the U-Boot shell
and transferring the files by TFTP), we need to connect the
corresponding port by the telnet first. Use an expect script to
simplify the automation of the whole "interacting with FVP" stuff.

The expect script will firstly detect the IP of the host, then
connect to the telnet port of the FVP, set the `serverip` and `ipaddr`
for the TFTP service in the U-Boot shell, and finally boot Xen from
U-Boot and wait for the expected results by Xen, Dom0 and DomU.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
---
 .../expect/fvp-base-smoke-dom0-arm64.exp      | 73 +++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100755 automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp

diff --git a/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
new file mode 100755
index 0000000000..25d9a5f81c
--- /dev/null
+++ b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
@@ -0,0 +1,73 @@
+#!/usr/bin/expect
+
+set timeout 2000
+
+# Command to use to run must be given as first argument
+# if options are required, quotes must be used:
+# xxx.exp "cmd opt1 opt2"
+set runcmd [lindex $argv 0]
+
+# Maximum number of line to be printed, this can be used to prevent runs to
+# go forever on errors when Xen is rebooting
+set maxline 1000
+
+# Configure slow parameters used with send -s
+# This allows us to slow down console writes to prevent issues with slow
+# emulators or targets.
+# Format here is: {NUM TIME} which reads as wait TIME seconds each NUM of
+# characters, here we send 1 char each 100ms
+set send_slow {1 .1}
+
+proc test_boot {{maxline} {host_ip}} {
+    expect_after {
+        -re "(.*)\r" {
+            if {$maxline != 0} {
+                set maxline [expr {$maxline - 1}]
+                if {$maxline <= 0} {
+                    send_user "ERROR-Toomuch!\n"
+                    exit 2
+                }
+            }
+            exp_continue
+        }
+        timeout {send_user "ERROR-Timeout!\n"; exit 3}
+        eof {send_user "ERROR-EOF!\n"; exit 4}
+    }
+
+    # Extract the telnet port numbers from FVP output, because the telnet ports
+    # are not guaranteed to be fixed numbers.
+    expect -re {terminal_0: Listening for serial connection on port [0-9]+}
+    set terminal_0 $expect_out(0,string)
+    if {[regexp {port (\d+)} $terminal_0 match port_0]} {
+        puts "terminal_0 port is $port_0"
+    } else {
+        puts "terminal_0 port not found"
+        exit 5
+    }
+
+    spawn bash -c "telnet localhost $port_0"
+    expect -re "Hit any key to stop autoboot.*"
+    send -s "  \r"
+    send -s "setenv serverip $host_ip; setenv ipaddr $host_ip; tftpb 0x80200000 boot.scr; source 0x80200000\r"
+
+    # Initial Xen boot
+    expect -re "\(XEN\).*Freed .* init memory."
+
+    # Dom0 and DomU
+    expect -re "Domain-0.*"
+    expect -re "BusyBox.*"
+    expect -re "/ #.*"
+}
+
+# Get host IP
+spawn bash -c "hostname -I | awk '{print \$1}'"
+expect -re {(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})}
+set host_ip $expect_out(0,string)
+
+# Start the FVP and run the test
+spawn bash -c "$runcmd"
+
+test_boot 2000 "$host_ip"
+
+send_user "\nExecution with SUCCESS\n"
+exit 0
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:53:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:53:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649876.1014965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEp2-0003eD-KL; Thu, 07 Dec 2023 13:53:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649876.1014965; Thu, 07 Dec 2023 13:53: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 1rBEp2-0003dt-E4; Thu, 07 Dec 2023 13:53:48 +0000
Received: by outflank-mailman (input) for mailman id 649876;
 Thu, 07 Dec 2023 13:53: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=cCsk=HS=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBEp0-0002bv-TQ
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:53:46 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 098ec8c9-9508-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 14:53:45 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6114A12FC;
 Thu,  7 Dec 2023 05:54:30 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id BA1723F6C4;
 Thu,  7 Dec 2023 05:53:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 098ec8c9-9508-11ee-9b0f-b553b5be7939
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH 4/5] automation: Add the script for the FVP smoke test
Date: Thu,  7 Dec 2023 21:53:17 +0800
Message-Id: <20231207135318.1912846-5-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231207135318.1912846-1-Henry.Wang@arm.com>
References: <20231207135318.1912846-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit adds the shell script for the FVP smoke test. Similarly
as the QEMU jobs, the shell script will firstly prepare the DomU
BusyBox image, use the ImageBuilder to arrange the binaries in memory
and generate the U-Boot script, then start the test. To provide the
TFTP service for the FVP, the shell script will also start the TFTP
service, and copy the binaries needed by test to the TFTP directory
used by the TFTP server.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
---
 .../scripts/fvp-base-smoke-dom0-arm64.sh      | 117 ++++++++++++++++++
 1 file changed, 117 insertions(+)
 create mode 100755 automation/scripts/fvp-base-smoke-dom0-arm64.sh

diff --git a/automation/scripts/fvp-base-smoke-dom0-arm64.sh b/automation/scripts/fvp-base-smoke-dom0-arm64.sh
new file mode 100755
index 0000000000..716a63b0a8
--- /dev/null
+++ b/automation/scripts/fvp-base-smoke-dom0-arm64.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+set -ex
+
+# DomU Busybox
+cd binaries
+mkdir -p initrd
+mkdir -p initrd/bin
+mkdir -p initrd/sbin
+mkdir -p initrd/etc
+mkdir -p initrd/dev
+mkdir -p initrd/proc
+mkdir -p initrd/sys
+mkdir -p initrd/lib
+mkdir -p initrd/var
+mkdir -p initrd/mnt
+cp /bin/busybox initrd/bin/busybox
+initrd/bin/busybox --install initrd/bin
+echo "#!/bin/sh
+
+mount -t proc proc /proc
+mount -t sysfs sysfs /sys
+mount -t devtmpfs devtmpfs /dev
+/bin/sh" > initrd/init
+chmod +x initrd/init
+cd initrd
+find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
+cd ..
+
+mkdir -p rootfs
+cd rootfs
+tar xvzf ../initrd.tar.gz
+mkdir proc
+mkdir run
+mkdir srv
+mkdir sys
+rm var/run
+cp -ar ../dist/install/* .
+mv ../initrd.cpio.gz ./root
+cp ../Image ./root
+echo "name=\"test\"
+memory=512
+vcpus=1
+kernel=\"/root/Image\"
+ramdisk=\"/root/initrd.cpio.gz\"
+extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
+" > root/test.cfg
+echo "#!/bin/bash
+
+export LD_LIBRARY_PATH=/usr/local/lib
+bash /etc/init.d/xencommons start
+
+xl list
+
+xl create -c /root/test.cfg
+
+" > etc/local.d/xen.start
+chmod +x etc/local.d/xen.start
+echo "rc_verbose=yes" >> etc/rc.conf
+find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+cd ../..
+
+# Start a TFTP server to provide TFTP service to FVP
+service tftpd-hpa start
+
+# ImageBuilder
+echo 'MEMORY_START="0x80000000"
+MEMORY_END="0xFF000000"
+
+DEVICE_TREE="fvp-base-gicv3-psci-1t.dtb"
+XEN="xen"
+DOM0_KERNEL="Image"
+DOM0_RAMDISK="xen-rootfs.cpio.gz"
+XEN_CMD="console=dtuart dom0_mem=1024M console_timestamps=boot"
+
+NUM_DOMUS=0
+
+LOAD_CMD="tftpb"
+UBOOT_SOURCE="boot.source"
+UBOOT_SCRIPT="boot.scr"' > binaries/config
+rm -rf imagebuilder
+git clone https://gitlab.com/ViryaOS/imagebuilder
+bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
+
+# Copy files to the TFTP directory to use
+cp ./binaries/boot.scr /srv/tftp/
+cp ./binaries/Image /srv/tftp/
+cp ./binaries/xen-rootfs.cpio.gz /srv/tftp/
+cp ./binaries/xen /srv/tftp/
+cp ./binaries/fvp-base-gicv3-psci-1t.dtb /srv/tftp/
+
+# Start FVP
+TERM0_CFG="-C bp.terminal_0.mode=telnet -C bp.terminal_0.start_telnet=0"
+TERM1_CFG="-C bp.terminal_1.mode=telnet -C bp.terminal_1.start_telnet=0"
+TERM2_CFG="-C bp.terminal_2.mode=telnet -C bp.terminal_2.start_telnet=0"
+TERM3_CFG="-C bp.terminal_3.mode=telnet -C bp.terminal_3.start_telnet=0"
+
+VIRTIO_USER_NETWORK_CFG="-C bp.virtio_net.enabled=1 \
+-C bp.virtio_net.hostbridge.userNetworking=1 \
+-C bp.virtio_net.hostbridge.userNetPorts=8022=22 \
+-C bp.virtio_net.transport=legacy"
+
+./automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp \
+    "/FVP/FVP_Base_RevC-2xAEMvA/Base_RevC_AEMvA_pkg/models/Linux64_armv8l_GCC-9.3/FVP_Base_RevC-2xAEMvA \
+    -C bp.vis.disable_visualisation=1 \
+    -C bp.ve_sysregs.exit_on_shutdown=1 \
+    -C bp.secure_memory=0 \
+    -C cache_state_modelled=0 \
+    -C cluster0.has_arm_v8-4=1 \
+    -C cluster1.has_arm_v8-4=1 \
+    ${TERM0_CFG} ${TERM1_CFG} ${TERM2_CFG} ${TERM3_CFG} \
+    ${VIRTIO_USER_NETWORK_CFG} \
+    -C bp.secureflashloader.fname=$(pwd)/binaries/bl1.bin \
+    -C bp.flashloader0.fname=$(pwd)/binaries/fip.bin" |& \
+        tee smoke.serial
+
+exit 0
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 13:53:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 13:53:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649878.1014975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBEp5-00044i-QT; Thu, 07 Dec 2023 13:53:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649878.1014975; Thu, 07 Dec 2023 13:53: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 1rBEp5-00043y-N8; Thu, 07 Dec 2023 13:53:51 +0000
Received: by outflank-mailman (input) for mailman id 649878;
 Thu, 07 Dec 2023 13:53: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=cCsk=HS=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBEp4-0002bv-AD
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 13:53:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0bbdcb4f-9508-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 14:53:48 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0187412FC;
 Thu,  7 Dec 2023 05:54:34 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 5A40A3F6C4;
 Thu,  7 Dec 2023 05:53:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bbdcb4f-9508-11ee-9b0f-b553b5be7939
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH 5/5] automation: Add the arm64 FVP build and Dom0 smoke test jobs
Date: Thu,  7 Dec 2023 21:53:18 +0800
Message-Id: <20231207135318.1912846-6-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231207135318.1912846-1-Henry.Wang@arm.com>
References: <20231207135318.1912846-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a job in the build stage to export the TF-A, U-Boot and the
device tree for the FVP platform from the test artifact container.

Add a FVP smoke test job in the test stage to do the same test as
the `qemu-smoke-dom0-arm64-gcc` job.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
---
Although it does not affect the functionality, I am still quite
confused about why the logs displayed by GitLab UI, for
example [1], is much less than the actual output (saved in the
artifacts, see [2]). Had a discussion with Michal on Matrix
and we agree that the log in gitlab UI is usually capped.

[1] https://gitlab.com/xen-project/people/henryw/xen/-/jobs/5700569676
[2] https://gitlab.com/xen-project/people/henryw/xen/-/jobs/5700569676/artifacts/file/smoke.serial
---
 automation/gitlab-ci/build.yaml | 17 +++++++++++++++++
 automation/gitlab-ci/test.yaml  | 22 ++++++++++++++++++++++
 2 files changed, 39 insertions(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 32af30cced..89d2f01302 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -344,6 +344,23 @@ kernel-6.1.19-export:
   tags:
     - x86_64
 
+armfvp-uboot-tfa-2023.10-2.9.0-arm64-export:
+  extends: .test-jobs-artifact-common
+  image: registry.gitlab.com/xen-project/xen/tests-artifacts/armfvp-uboot-tfa:2023.10-2.9.0-arm64v8
+  script:
+    - |
+       mkdir binaries && \
+       cp /bl1.bin binaries/bl1.bin && \
+       cp /fip.bin binaries/fip.bin && \
+       cp /fvp-base-gicv3-psci-1t.dtb binaries/fvp-base-gicv3-psci-1t.dtb
+  artifacts:
+    paths:
+      - binaries/bl1.bin
+      - binaries/fip.bin
+      - binaries/fvp-base-gicv3-psci-1t.dtb
+  tags:
+    - arm64
+
 # Jobs below this line
 
 # Build jobs needed for tests
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 6aabdb9d15..47e00d0a0b 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -96,6 +96,19 @@
   tags:
     - xilinx
 
+.fvp-arm64:
+  extends: .test-jobs-common
+  variables:
+    CONTAINER: debian:bookworm-arm64v8-fvp
+    LOGFILE: fvp-smoke-arm64.log
+  artifacts:
+    paths:
+      - smoke.serial
+      - '*.log'
+    when: always
+  tags:
+    - arm64
+
 .adl-x86-64:
   extends: .test-jobs-common
   variables:
@@ -459,3 +472,12 @@ qemu-smoke-ppc64le-powernv9-gcc:
   needs:
     - qemu-system-ppc64-8.1.0-ppc64-export
     - debian-bullseye-gcc-ppc64le-debug
+
+fvp-smoke-dom0-arm64-gcc-debug:
+  extends: .fvp-arm64
+  script:
+    - ./automation/scripts/fvp-base-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *arm64-test-needs
+    - armfvp-uboot-tfa-2023.10-2.9.0-arm64-export
+    - alpine-3.18-gcc-debug-arm64
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:10:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:10:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649899.1014985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBF5P-0001H8-79; Thu, 07 Dec 2023 14:10:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649899.1014985; Thu, 07 Dec 2023 14:10:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBF5P-0001H1-35; Thu, 07 Dec 2023 14:10:43 +0000
Received: by outflank-mailman (input) for mailman id 649899;
 Thu, 07 Dec 2023 14:10: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 1rBF5O-0001Gp-BR; Thu, 07 Dec 2023 14:10: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 1rBF5O-0004jp-6h; Thu, 07 Dec 2023 14:10: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 1rBF5N-0000WE-TZ; Thu, 07 Dec 2023 14:10:41 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBF5N-0003pM-T8; Thu, 07 Dec 2023 14:10: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=jWqsh6g+k/7tizhoLwBOaRRscVw5tHecOi0guBaHAck=; b=hnZrpTGorZ5384BwDKxFXTxDg+
	285ycjgnoP54aGG/98VzhbDWJ/nDi5adQehi1UWu2Nhlkt70o/mAdFMpxQJFuSSohIRJM4ukljhmS
	bBVSyShnKIboVMnC3mX0MDvUhSpOOK8+z6i7RZIieZ+rzICvsOdz8yzFpfeQVKaYQWBI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184023-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184023: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=553dfb0f57ae8a666938873cf836a33549568c87
X-Osstest-Versions-That:
    ovmf=ff4c49a5ee38d613384fb2e318d891a800d32999
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 14:10:41 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 553dfb0f57ae8a666938873cf836a33549568c87
baseline version:
 ovmf                 ff4c49a5ee38d613384fb2e318d891a800d32999

Last test of basis   184017  2023-12-07 01:45:05 Z    0 days
Testing same since   184023  2023-12-07 10:14:25 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Sheng Wei <w.sheng@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    
 test-amd64-i386-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
   ff4c49a5ee..553dfb0f57  553dfb0f57ae8a666938873cf836a33549568c87 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:11:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:11:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649903.1014995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBF6b-0001qm-Gh; Thu, 07 Dec 2023 14:11:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649903.1014995; Thu, 07 Dec 2023 14:11:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBF6b-0001qf-DA; Thu, 07 Dec 2023 14:11:57 +0000
Received: by outflank-mailman (input) for mailman id 649903;
 Thu, 07 Dec 2023 14:11:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBF6Z-0001qP-B4
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:11:55 +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 927d6100-950a-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 15:11:53 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3333fbbeab9so922699f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:11:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a5-20020a5d5085000000b00334b2272a7asm1556260wrt.2.2023.12.07.06.11.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 06:11:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 927d6100-950a-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701958313; x=1702563113; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0bU+SP0ATcx/VErECdb/4iyc3s29aMlxA3/EhG1ByoA=;
        b=BJoMJJQo53/jqhfy722irMl/MHGLARKZhS4Yqx2mXGjywtfRv8rBUtcDaElDGP05ce
         WzYpS/iDXNfLFaG7lDrexD1TTOQ7E7whk6TybW6KHbY5GzFZVvRr4M+AF2pLU9aB4oXg
         vvxIMlpLjxWgCg2KM28tbh57/1AGuEWcrPKxNG3sS7S6Xvbq/4puMdevq6ZVgBWbUnCR
         zEPTgbJTJycPMR3WtSSlMQA02+kcCUnEZ7rtBFIJsnBYNUedi0VONJOreJC6wvVzkROa
         RLgjrMqXULWNzFgHzoMm2KxBzI04lutijiri9fpOtC6jcdfyh1JOyhg4+JNFueNlRDH5
         qEuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701958313; x=1702563113;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=0bU+SP0ATcx/VErECdb/4iyc3s29aMlxA3/EhG1ByoA=;
        b=cfEShupl4RJtAD97IaZ1yVlR7XtouGRtHa8+IizWt9HaOrWhKgC3J1zrSYn145yvip
         k6upjJbsFnT+nRwUK6ya1DgLTeqDhUzwZ1tsYTzV99wDxiXC8G5m2WulRIvzk+a6Fkcd
         bZutHCIArXR9ek1xsisZXYx3h9W6t5hngunUxtCfasIH94uM0YsM2t/CyeY69+GuJDv/
         NczEt47ObEP0gkJCIlKYxKj/8RHDmaVqXvV7TxqQtspM3ilCQkSpPECMlnpNpYP1cE3f
         Y+Y1NIzzvcAuTlgxEuNO5f2dpwmXwylWXFBFjkK33biZbyLFe7/STyC76ms8n9r+BFCu
         L8HQ==
X-Gm-Message-State: AOJu0YyE30moW08sfoncr6bAqUd7NIb34ulHeXBkOLd53061O2Oe9s7y
	WIMHNr65mPfjeCMLQHhgSR9r
X-Google-Smtp-Source: AGHT+IE4qDIEKVddQKi8kG2MvXjfnFIlJkRLKhoomv8Yp+JcZjy4/U3TUYdc1ees2mUrkPOS8ZHMkw==
X-Received: by 2002:a5d:66cc:0:b0:333:5e6f:7653 with SMTP id k12-20020a5d66cc000000b003335e6f7653mr1428783wrw.96.1701958313540;
        Thu, 07 Dec 2023 06:11:53 -0800 (PST)
Message-ID: <4064be07-747e-4b9c-b5da-9935aa13d91f@suse.com>
Date: Thu, 7 Dec 2023 15:11:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/39] xen/riscv: disable unnecessary configs
Content-Language: en-US
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.oleksii.kurochko@gmail.com>
 <fdfda320-b73b-4830-8f1b-d261b02bcdde@suse.com>
 <22fa451f7b165a00082443a35077e98e101c22e4.camel@gmail.com>
 <008d0c66-6816-4d12-9e1f-1878e982f9fc@suse.com>
 <09d24b36380027df21d547de438da10e01eda0e0.camel@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: <09d24b36380027df21d547de438da10e01eda0e0.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 14:44, Oleksii wrote:
> On Thu, 2023-12-07 at 11:00 +0100, Jan Beulich wrote:
>> On 07.12.2023 10:22, Oleksii wrote:
>>> On Tue, 2023-12-05 at 16:38 +0100, Jan Beulich wrote:
>>>>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>>>>>> The patch also fixes the build script as conf util expects
>>>>>>> to have each config on separate line.
>>>>>
>>>>> The approach doesn't really scale (it's already odd that you
>>>>> add
>>>>> the
>>>>> (apparently) same set four times. There's also zero
>>>>> justification
>>>>> for
>>>>> this kind of an adjustment (as per discussion elsewhere I don't
>>>>> think
>>>>> we should go this route, and hence arguments towards convincing
>>>>> me
>>>>> [and
>>>>> perhaps others] would be needed here).
>>> I agree that this may not be the best approach, but it seems like
>>> we
>>> don't have too many options to turn off a config for randconfig.
>>>
>>> To be honest, in my opinion (IMO), randconfig should either be
>>> removed
>>> or allowed to fail until most of the functionality is ready.
>>> Otherwise,
>>> there should be a need to introduce HAS_* or depend on
>>> 'SUPPORTED_ARCHS' for each config, or introduce a lot of stubs.
>>>
>>> Could you please suggest a better option?
>>
>> As to dropping randconfig tests, I'd like to refer you to Andrew, who
>> is of the opinion that it was wrong to drop them for ppc. (I'm
>> agreeing
>> with him when taking a theoretical perspective, but I'm not happy
>> with
>> the practical consequences.)
>>
>> As to a better approach: Instead of listing the same set of options
>> several times, can't there be a template config which is used to
>> force
>> randconfig to not touch certain settings? In fact at least for non-
>> randconfig purposes I thought tiny64_defconfig / riscv64_defconfig
>> already serve kind of a similar purpose. Imo the EXTRA_*CONFIG
>> overrides
>> are there for at most very few special case settings, not for
>> purposes
>> like you use them here.
> The template will be the really a good option.
> 
> What do you think about the following patch which introduces arch-
> specific allrandom.config?
> 
> diff --git a/xen/Makefile b/xen/Makefile
> index ca571103c8..cb1eca76c2 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
>  # *config targets only - make sure prerequisites are updated, and
> descend
>  # in tools/kconfig to make the *config target
>  
> +ARCH_ALLRANDOM_CONFIG :=
> $(srctree)/arch/$(SRCARCH)/configs/allrandom.config
> +
>  # Create a file for KCONFIG_ALLCONFIG which depends on the
> environment.
>  # This will be use by kconfig targets
> allyesconfig/allmodconfig/allnoconfig/randconfig
>  filechk_kconfig_allconfig = \
>      $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo
> 'CONFIG_XSM_FLASK_POLICY=n';) \
> -    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
> +    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
> +    $(if $(wildcard $(ARCH_ALLRANDOM_CONFIG)), cat
> $(ARCH_ALLRANDOM_CONFIG);) ) \
>      :

Something along these lines may be okay, but why would the name be
"allrandom" when the config is used elsewhere as well? Further, besides
keeping randconfig and all*config from creating unusable configs, it
will at least want considering whether in other cases that set of fixed
values shouldn't be used as well then.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:14:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:14:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649907.1015005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBF92-0002pF-1A; Thu, 07 Dec 2023 14:14:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649907.1015005; Thu, 07 Dec 2023 14:14:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBF91-0002p8-U3; Thu, 07 Dec 2023 14:14:27 +0000
Received: by outflank-mailman (input) for mailman id 649907;
 Thu, 07 Dec 2023 14:14:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fZpn=HS=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rBF91-0002p0-7S
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:14:27 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ece2f238-950a-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 15:14:25 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id CE5FD4EE073A;
 Thu,  7 Dec 2023 15:14:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ece2f238-950a-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Thu, 07 Dec 2023 15:14:24 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Andrew Cooper
 <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Jan
 Beulich <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH v2 3/3] xen/mm: add declaration for first_valid_mfn
In-Reply-To: <f57fad10-f5c9-4a28-8c46-bc398bdc2dd3@xen.org>
References: <cover.1701947290.git.nicola.vetrini@bugseng.com>
 <2c02524be7d02064fdf2f5003ef1c507034e4437.1701947290.git.nicola.vetrini@bugseng.com>
 <f57fad10-f5c9-4a28-8c46-bc398bdc2dd3@xen.org>
Message-ID: <e603f22d6f6db36000d126453eb300f3@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 2023-12-07 14:52, Julien Grall wrote:
> Hi,
> 
> On 07/12/2023 11:11, Nicola Vetrini wrote:
>> Such declaration is needed to comply with MISRA C Rule 8.4, because a
>> compatible declaration is not visible in xen/common/page_alloc.c, 
>> where the
>> variable is defined. That variable can't yet be static because of the 
>> lack of
>> support from ARM and PPC for NUMA.
>> 
>> No functional change.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>> Having this declaration essentially sidesteps the current 
>> impossibility
>> of having a static variable, as described in the comments in
>> ARM and PCC's asm/numa.h.
> With this change, is there any reason to keep the various declaration 
> of first_valid_mfn in numa.h?
> 
> Cheers,

Good point: no reason comes to mind. I didn't think of it while revising 
the patch.

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:15:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:15:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649911.1015015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBF9v-0003Ro-As; Thu, 07 Dec 2023 14:15:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649911.1015015; Thu, 07 Dec 2023 14:15:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBF9v-0003Rh-6g; Thu, 07 Dec 2023 14:15:23 +0000
Received: by outflank-mailman (input) for mailman id 649911;
 Thu, 07 Dec 2023 14:15:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBF9u-0003Ra-AX
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:15:22 +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 0dfd3f22-950b-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 15:15:20 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3332efd75c9so897042f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:15:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 m4-20020a05600c4f4400b0040836519dd9sm1964747wmq.25.2023.12.07.06.15.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 06:15:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0dfd3f22-950b-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701958521; x=1702563321; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=89toJf156ywbFwnZY/y11Qh5a63V+be/YhxcYZHTd2U=;
        b=Hz1IU+qbY3ZbTMcbHMeITQni4hxizzpulcpZkjCvXDLQj9J0i6+dIB4u0K5QmpZCUc
         r/3lrFvwF6SytvqCq2TQEMQRkco6t49CXzASh/gBgu2Ok+eSZlpPSLcHKHFoolSUlgHr
         019v1GwH05DaGsWgjNslDL8wQlFlVC1XEEWo/ZFTOWekm8s3vjSy02wal10JzPLj3H4h
         ZW2aVSff7iWe7pz2itF0OyYnqQCrUZ3eglW8XceNXwo5oDONUBfkI/5dBYMqphYpotVx
         YFjg/3xM7AqkM88lnjQ+OZlrtt+wnnQpDnS/qce9wTBl7n2mZws15y5niBW0iTrUyLaL
         hFog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701958521; x=1702563321;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=89toJf156ywbFwnZY/y11Qh5a63V+be/YhxcYZHTd2U=;
        b=FGhMDKo3tTwdnUHD4c5fJVxtIesFXyrOKui3dPEXkD73xMSRg9xLRlBvECr9vrzU53
         GwtOCN9oSwpG4XISJ+Kl1x+ErlZZfqrHAcXxGg9abc2MpI6SJmWnbVoGvu/rCF/Au8T/
         0qG7N3arM3X5xauXTtsfjIRPbt8ZUGRdgw1pkg/HvXs7AH60uiSrpixs3qyBYHgeaUI4
         tSWEj7dIuvxeLUM/8WvVdN03KgUvdUnMdWRrbsYE+ZiM6tvbaQz0BU6L5peMQnL75I/H
         8B8uFUy7cPSjr3Bi9zyviy0uiAVO0PMYJSgj82qP3FvvSQubR/vV/+dsuk7qpxjlgRaD
         enpA==
X-Gm-Message-State: AOJu0Yzdh2MjZXmF34vrafjmmhRWoRh85kuU0NIXKERGmyhL7iRTffBS
	hON/uqRWrV2J3+o+Ly3NKQl1
X-Google-Smtp-Source: AGHT+IGsf5+5UzBy6FHL++Dr2qBJL5S5wGMX1sYKjbuN67TMmoHl3KYaAjCbJYHf/k2L13nGKgJZqg==
X-Received: by 2002:a1c:770b:0:b0:40c:2aeb:c750 with SMTP id t11-20020a1c770b000000b0040c2aebc750mr282942wmi.166.1701958520790;
        Thu, 07 Dec 2023 06:15:20 -0800 (PST)
Message-ID: <b96f0697-146f-4230-986f-eb1b097e40fa@suse.com>
Date: Thu, 7 Dec 2023 15:15:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen/x86: address violations of MISRA C:2012 Rule 14.4
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
 <d494980216b8f0f870083fcfae7269f45e779780.1701941924.git.maria.celeste.cesario@bugseng.com>
 <30b48e9b-0630-4df9-ac6b-5ece418bf4b0@suse.com>
 <65db0ca1-9afa-4d9a-8bf2-7b1720ac1f60@bugseng.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: <65db0ca1-9afa-4d9a-8bf2-7b1720ac1f60@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 14:53, Simone Ballarin wrote:
> On 07/12/23 11:54, Jan Beulich wrote:
>> On 07.12.2023 10:48, Simone Ballarin wrote:
>>> --- a/xen/arch/x86/hpet.c
>>> +++ b/xen/arch/x86/hpet.c
>>> @@ -279,7 +279,7 @@ static int hpet_msi_write(struct hpet_event_channel *ch, struct msi_msg *msg)
>>>   {
>>>       ch->msi.msg = *msg;
>>>   
>>> -    if ( iommu_intremap )
>>> +    if ( iommu_intremap != iommu_intremap_off )
>>>       {
>>>           int rc = iommu_update_ire_from_msi(&ch->msi, msg);
>>>   
>>> @@ -353,7 +353,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
>>>       u32 cfg = hpet_read32(HPET_Tn_CFG(ch->idx));
>>>       irq_desc_t *desc = irq_to_desc(ch->msi.irq);
>>>   
>>> -    if ( iommu_intremap )
>>> +    if ( iommu_intremap != iommu_intremap_off )
>>>       {
>>>           ch->msi.hpet_id = hpet_blockid;
>>>           ret = iommu_setup_hpet_msi(&ch->msi);
>>> @@ -372,7 +372,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
>>>           ret = __hpet_setup_msi_irq(desc);
>>>       if ( ret < 0 )
>>>       {
>>> -        if ( iommu_intremap )
>>> +        if ( iommu_intremap != iommu_intremap_off )
>>>               iommu_update_ire_from_msi(&ch->msi, NULL);
>>>           return ret;
>>>       }
>>> diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
>>> index 7f8e794254..72dce2e4ab 100644
>>> --- a/xen/arch/x86/msi.c
>>> +++ b/xen/arch/x86/msi.c
>>> @@ -189,7 +189,7 @@ static int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
>>>   {
>>>       entry->msg = *msg;
>>>   
>>> -    if ( iommu_intremap )
>>> +    if ( iommu_intremap != iommu_intremap_off )
>>>       {
>>>           int rc;
>>>   
>>> @@ -555,7 +555,7 @@ int msi_free_irq(struct msi_desc *entry)
>>>               destroy_irq(entry[nr].irq);
>>>   
>>>           /* Free the unused IRTE if intr remap enabled */
>>> -        if ( iommu_intremap )
>>> +        if ( iommu_intremap != iommu_intremap_off )
>>>               iommu_update_ire_from_msi(entry + nr, NULL);
>>>       }
>>>   
>>
>> All of this would logically be part of patch 1. Is there a particular reason
>> why it wasn't done right there?
> 
> These changes and the ones in patch 1 are related, but still remain
> independent. Patch 1 can be accepted without patch 2 and vice versa.
> So we've decided to split the commits because patch 1 is in common
> code, while patch 2 is in x86-specific code.

Just to clarify: While not located under arch/x86/, what patch 1 touches
is still x86-specific code. It's subject prefix also wrongly says
AMD/IOMMU: when it also touches VT-d code. Especially with the changes
here folded in, x86/IOMMU: might be more appropriate.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:19:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:19:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649915.1015026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFDo-00056V-S4; Thu, 07 Dec 2023 14:19:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649915.1015026; Thu, 07 Dec 2023 14:19:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFDo-00055y-NO; Thu, 07 Dec 2023 14:19:24 +0000
Received: by outflank-mailman (input) for mailman id 649915;
 Thu, 07 Dec 2023 14:19:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBFDn-00054q-HO
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:19:23 +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 9d4c28a6-950b-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 15:19:21 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c2c65e6aaso4432555e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:19:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p8-20020a05600c358800b0040b40468c98sm2088870wmq.10.2023.12.07.06.19.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 06:19:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d4c28a6-950b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701958760; x=1702563560; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=doRANLjcoXrCYPUIloK+IhgW8Mz4CcE4MucErzH0S2I=;
        b=F6jsI4CNr3FHA7+FKndvPFrmVWo69Sf/ndrO9DMgRYRMVzrStG9MUAaU9TQwf9FFwq
         HxJFiLh/P2m5/0/G0WTMQ4d3v2kDXjXj3M2VPCY/kC17zi83nfnlkTB4bYIWQVq2WFlE
         SCUzxcLcgqsOjb2axkF2eMAmsM07kagM8XXHKiixwmpeisBGMCKm8GUalgY6lExbGB2J
         xoelbcQaOkmaVh0P+OjTstH5fwg/ppSTtCz1HTI6sLYe9Vp+GnnPYOuwNxlm7G3Oqpl5
         6sTawXl25miY3sL2WiPVmMkWPkQAVJow6nQif+tzAH4DRm8bSQ5pdiLDazJaLi0wYAvX
         Si9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701958760; x=1702563560;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=doRANLjcoXrCYPUIloK+IhgW8Mz4CcE4MucErzH0S2I=;
        b=hOWXJlNqRlxnxJjb9XQQEFG3xwLl1mzzuIII6Ww7zQTcRCTO6gpsG2oYAstsKE1Vf3
         HD18FqdRzc9JF40Hn1fGWXC6DCYZHzJQ9fo9ZFj88N2DoV8lvtJ6HyQEkJz+6cAEI7aN
         dr9cjR2rVYjMySzRENk2TUB1CC+xoBaPjErM8a+Z8l3vGHYsVeKpd/bSvIuMD73d1qte
         0TaeuIPY/nbzfROI5JAd6B+WzxECntAC7vronBASDddQ8fFUjHsUQ6WS7vhs3b+jOvIx
         GqodyJuvbmNBgMtp0Y5DaUiZp+m6HNEMeKaY/R7O91qs7ocq84l7tUt6U4+tQBIe2voQ
         NVKg==
X-Gm-Message-State: AOJu0YwF4l+K0KJVQiZkNvWLdhUyXgrXRE9YOpxaya9MNIg5yuVKvCN4
	nmT4ciM9z+Miorh/0pdD04fS
X-Google-Smtp-Source: AGHT+IG/GShB10XE+G6O4bNk7CeTgbJbxqikjJ92zlEKWWNgA7wztSvMJcQBvITTy5kOX8LG9WTiqg==
X-Received: by 2002:a05:600c:1c01:b0:40c:1c02:6b40 with SMTP id j1-20020a05600c1c0100b0040c1c026b40mr1352361wms.37.1701958760655;
        Thu, 07 Dec 2023 06:19:20 -0800 (PST)
Message-ID: <3959501d-9696-4791-bf04-d394af255bd2@suse.com>
Date: Thu, 7 Dec 2023 15:19:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/39] xen/riscv: introduce asm/cpufeature.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <b8fcdd22462ffa71a058e63dbf874dfc858264df.1700761381.git.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: <b8fcdd22462ffa71a058e63dbf874dfc858264df.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

Would have been nice ...

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/cpufeature.h
> @@ -0,0 +1,22 @@
> +#ifndef __ASM_RISCV_CPUFEATURE_H
> +#define __ASM_RISCV_CPUFEATURE_H
> +
> +#ifndef __ASSEMBLY__
> +
> +static inline int cpu_nr_siblings(unsigned int cpu)

... for this to have return type unsigned int, but I see you're staying in
line with oddities elsewhere. Just one more place to touch down the road.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:20:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649917.1015034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFFD-0007q3-4b; Thu, 07 Dec 2023 14:20:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649917.1015034; Thu, 07 Dec 2023 14: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 1rBFFD-0007pw-1Z; Thu, 07 Dec 2023 14:20:51 +0000
Received: by outflank-mailman (input) for mailman id 649917;
 Thu, 07 Dec 2023 14:20:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBFFB-0007pn-NY
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:20:49 +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 d16fc517-950b-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 15:20:48 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c09f4814eso13897265e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:20:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p8-20020a05600c358800b0040b40468c98sm2088870wmq.10.2023.12.07.06.20.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 06:20:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d16fc517-950b-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701958848; x=1702563648; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=I1PGSH+lXEYRF3W9CKhFKnWtpiSu2ZouxCZ9nvCJQ18=;
        b=QrsUnszb7voXA7/f3oYQUQnrzKP+Tb2eGxfZaZPsBQZlQ9yqH0OB4tdgXDEgSAFMpo
         CbLdOCKA0tvaz1R9h6EnClLezs2H2CP+WH9YhBeBSgaDik/x6H5Ma2PsfYuwe9EraP6F
         KmbA/EaEVxN10Gf8p/h+ZmIuw3bOcRD3Dm2kp/ugXIFvKXlxctJz7iSQjGGY3jkSnhcI
         hCS1MbBhlKeTs8nXFO+41cpVjIo/TkqxJdWFEgfgXFOysVqWxRboKlsDI00+12ZOLg7n
         A9w8H3jGj9CyGOhTXYO5WB+vE9Ww/R0M0BRxVrp+fmFdAZJXT5ZbkMr/vNmVTWaGzGGm
         aRpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701958848; x=1702563648;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=I1PGSH+lXEYRF3W9CKhFKnWtpiSu2ZouxCZ9nvCJQ18=;
        b=Nr3rIeCxGpcyiJakJ6OND7d0bXxzjjoBDxEVfEPPtPW/YKg+U/5SjohLOUWvy7DEUe
         8+DBcP2YrhP860IYpYsLQ9abJnThmrz+Mik0+KTWKEIamQ6JcAsnia2bPBkmKOkCAQoA
         6bqrM9f0ltrR0JHQGc7K3G2TtHxTjfsCwDKymKM1fXS1Kxlip1kLRLzur6FM35onwsY6
         fZuyeWX3SWkpqwXOk7cXtM606XPCzQ67+fZ6E/OnoyOaxsBDz7LLITLwxtyQKVLAkhY1
         LbnAFN74fbfuY8CKrswisG0PlCU045b3C0OCT/zthYdQbi4VBoMkWAUHOX3NDyosaSzw
         w60Q==
X-Gm-Message-State: AOJu0Yx6asWbScullH78NdZtTyzzxRDoWomzyShi2Y+HdlHrCNo3IPv3
	mqIM4OX8OH4f+nKU7Jg95aOM
X-Google-Smtp-Source: AGHT+IEl4+UjkayVOK6AX8vyYP3nswneNI4IvJjM8hidzcEOezcyTrq0bwr1e2Cy3P6NiugWHP+jMQ==
X-Received: by 2002:a05:600c:1553:b0:40b:5e1d:83a6 with SMTP id f19-20020a05600c155300b0040b5e1d83a6mr1512519wmg.58.1701958848216;
        Thu, 07 Dec 2023 06:20:48 -0800 (PST)
Message-ID: <9f894049-ce44-41a4-b470-a27b7b46f26d@suse.com>
Date: Thu, 7 Dec 2023 15:20:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/39] xen/riscv: introduce asm/guest_atomics.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <48ecbc771d3870eee86dd11a19f0dd9029e93c01.1700761381.git.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: <48ecbc771d3870eee86dd11a19f0dd9029e93c01.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/guest_atomics.h
> @@ -0,0 +1,48 @@
> +#ifndef __ASM_RISCV_GUEST_ATOMICS_H
> +#define __ASM_RISCV_GUEST_ATOMICS_H
> +
> +/*
> + * TODO: implement guest atomics
> + */

Along with this, wouldn't it be better to have e.g. ASSERT_UNREACHABLE()
in the unimplemented functions?

Jan

> +#define guest_testop(name)                                                  \
> +static inline int guest_##name(struct domain *d, int nr, volatile void *p)  \
> +{                                                                           \
> +    (void) d;                                                               \
> +    (void) nr;                                                              \
> +    (void) p;                                                               \
> +                                                                            \
> +    return 0;                                                               \
> +}
> +
> +#define guest_bitop(name)                                                   \
> +static inline void guest_##name(struct domain *d, int nr, volatile void *p) \
> +{                                                                           \
> +    (void) d;                                                               \
> +    (void) nr;                                                              \
> +    (void) p;                                                               \
> +}
> +
> +guest_bitop(set_bit)
> +guest_bitop(clear_bit)
> +guest_bitop(change_bit)
> +
> +#undef guest_bitop
> +
> +guest_testop(test_and_set_bit)
> +guest_testop(test_and_clear_bit)
> +guest_testop(test_and_change_bit)
> +
> +#undef guest_testop
> +
> +#define guest_test_bit(d, nr, p) ((void)(d), test_bit(nr, p))
> +
> +#endif /* __ASM_RISCV_GUEST_ATOMICS_H */
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:23:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:23:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649920.1015045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFHM-0000FH-H1; Thu, 07 Dec 2023 14:23:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649920.1015045; Thu, 07 Dec 2023 14:23: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 1rBFHM-0000FA-Du; Thu, 07 Dec 2023 14:23:04 +0000
Received: by outflank-mailman (input) for mailman id 649920;
 Thu, 07 Dec 2023 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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBFHK-0000F2-Cp
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:23:02 +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 1feff1ae-950c-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 15:23:00 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3333fbbeab9so934954f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:23:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 dh8-20020a0560000a8800b00334b3208700sm1553170wrb.49.2023.12.07.06.22.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 06:22:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1feff1ae-950c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701958980; x=1702563780; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=pIsiaEzH5NUQ+ns68qpu+is/X8iyqsCfhMGb8tn4vw8=;
        b=giBNKnDO+4ZpQekFZAAyESD3qV7Q+ku7uNnI/NHTwYZnMEyMYJOUTZRJ8lgVH+iQNf
         nIKWSVOw/gUOdA+WfI0Pg+mWo3jwHVjiiMvnnQyd1U5MtP1+Mq8/1C3+fa7PzLw3nGIT
         RYxEagDQoYedgziSG/weNTGjJXJPGN3iQofuv0GVATBXCVnjPrRhsE53DF2rZ2q0qtDi
         Sowh7VDiib4iRC8kVhNkB0Vp4atZ1JTAVUUOvWTG4shU9EZ1JkuMYD3tBh/B/TM+jNPA
         DqVCpqaKxRYAkKJHZenbTFUXnF3K90fDvcXjPqJfVgzlKVyFmgCRboeyso1i6gs/2KNL
         hUwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701958980; x=1702563780;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=pIsiaEzH5NUQ+ns68qpu+is/X8iyqsCfhMGb8tn4vw8=;
        b=GkYbePN7lAoFuUrr83h70Te4j18U6m0IaYBcDnPjnptZdMocF8xa3UAANA2Hzb2sGj
         Vi6ChXvOEG90vTeK27YEaaNxVCAVbfbyJhtttXwMD5QhjslmYAqFkOteeJk65EiDZChy
         7WESWgjcEOHDCYhRappe+RbJ4ggi4Y23FLXdfCyZeQ4+yJRMEs9vpCFSmZybLyfLXVWN
         CdlucM5xlipwr2a1FLWUiKoIok3TK4BdDbveH+/jI+O6LR58rw4IAIRFMSXbog6eVFHo
         Q/DA8ZH0j/vBfGsnaZDfa+OL4x/oDsgdFItow9dbMvCuq4qXkFhZOBYdI4vEkVhGCAWC
         H30Q==
X-Gm-Message-State: AOJu0YwpUzovHe1Edf6HpsIx0fE0UJIrgSJ22sb8stFL7bfenk4qCdvF
	XSZNrDRwLAgBc0kg/clzEfQf
X-Google-Smtp-Source: AGHT+IFt0P1ocNHBxJKBZAabwIbCiKGGMVmmHpcpVpspEEiDSNxk1Jv3r0W2KtZGYInUluBCp/IbJQ==
X-Received: by 2002:a5d:4cc9:0:b0:333:2fd2:68eb with SMTP id c9-20020a5d4cc9000000b003332fd268ebmr1403779wrt.126.1701958979984;
        Thu, 07 Dec 2023 06:22:59 -0800 (PST)
Message-ID: <ca13b1b0-8b96-47b0-abc5-9711f96ccca0@suse.com>
Date: Thu, 7 Dec 2023 15:22:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/39] xen/riscv: introduce asm/iommu.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <68be3d368bf6ed96b0bb53b51a2fd07696cb338d.1700761381.git.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: <68be3d368bf6ed96b0bb53b51a2fd07696cb338d.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/iommu.h
> @@ -0,0 +1,7 @@
> +#ifndef __ASM_RISCV_IOMMU_H__
> +#define __ASM_RISCV_IOMMU_H__
> +
> +struct arch_iommu {
> +};
> +
> +#endif /* __ASM_IOMMU_H__ */

Instead of adding this header, didn't we discuss to make the #include in
xen/iommu.h depend on CONFIG_HAS_PASSTHROUGH? Also - no SPDX or footer
here?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:25:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:25:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649924.1015054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFJa-0000tA-WE; Thu, 07 Dec 2023 14:25:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649924.1015054; Thu, 07 Dec 2023 14: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 1rBFJa-0000t3-TY; Thu, 07 Dec 2023 14:25:22 +0000
Received: by outflank-mailman (input) for mailman id 649924;
 Thu, 07 Dec 2023 14: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=TliB=HS=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rBFJa-0000sw-5a
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:25:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 73c0c3ac-950c-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 15:25:21 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 3E5704EE073E;
 Thu,  7 Dec 2023 15:25:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73c0c3ac-950c-11ee-98e7-6d05b1d4d9a1
Message-ID: <e40ecf27-1743-4e6a-891a-d189e51564b9@bugseng.com>
Date: Thu, 7 Dec 2023 15:25:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen/x86: address violations of MISRA C:2012 Rule 14.4
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com>
 <d494980216b8f0f870083fcfae7269f45e779780.1701941924.git.maria.celeste.cesario@bugseng.com>
 <30b48e9b-0630-4df9-ac6b-5ece418bf4b0@suse.com>
 <65db0ca1-9afa-4d9a-8bf2-7b1720ac1f60@bugseng.com>
 <b96f0697-146f-4230-986f-eb1b097e40fa@suse.com>
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <b96f0697-146f-4230-986f-eb1b097e40fa@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 07/12/23 15:15, Jan Beulich wrote:
> On 07.12.2023 14:53, Simone Ballarin wrote:
>> On 07/12/23 11:54, Jan Beulich wrote:
>>> On 07.12.2023 10:48, Simone Ballarin wrote:
>>>> --- a/xen/arch/x86/hpet.c
>>>> +++ b/xen/arch/x86/hpet.c
>>>> @@ -279,7 +279,7 @@ static int hpet_msi_write(struct hpet_event_channel *ch, struct msi_msg *msg)
>>>>    {
>>>>        ch->msi.msg = *msg;
>>>>    
>>>> -    if ( iommu_intremap )
>>>> +    if ( iommu_intremap != iommu_intremap_off )
>>>>        {
>>>>            int rc = iommu_update_ire_from_msi(&ch->msi, msg);
>>>>    
>>>> @@ -353,7 +353,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
>>>>        u32 cfg = hpet_read32(HPET_Tn_CFG(ch->idx));
>>>>        irq_desc_t *desc = irq_to_desc(ch->msi.irq);
>>>>    
>>>> -    if ( iommu_intremap )
>>>> +    if ( iommu_intremap != iommu_intremap_off )
>>>>        {
>>>>            ch->msi.hpet_id = hpet_blockid;
>>>>            ret = iommu_setup_hpet_msi(&ch->msi);
>>>> @@ -372,7 +372,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
>>>>            ret = __hpet_setup_msi_irq(desc);
>>>>        if ( ret < 0 )
>>>>        {
>>>> -        if ( iommu_intremap )
>>>> +        if ( iommu_intremap != iommu_intremap_off )
>>>>                iommu_update_ire_from_msi(&ch->msi, NULL);
>>>>            return ret;
>>>>        }
>>>> diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
>>>> index 7f8e794254..72dce2e4ab 100644
>>>> --- a/xen/arch/x86/msi.c
>>>> +++ b/xen/arch/x86/msi.c
>>>> @@ -189,7 +189,7 @@ static int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
>>>>    {
>>>>        entry->msg = *msg;
>>>>    
>>>> -    if ( iommu_intremap )
>>>> +    if ( iommu_intremap != iommu_intremap_off )
>>>>        {
>>>>            int rc;
>>>>    
>>>> @@ -555,7 +555,7 @@ int msi_free_irq(struct msi_desc *entry)
>>>>                destroy_irq(entry[nr].irq);
>>>>    
>>>>            /* Free the unused IRTE if intr remap enabled */
>>>> -        if ( iommu_intremap )
>>>> +        if ( iommu_intremap != iommu_intremap_off )
>>>>                iommu_update_ire_from_msi(entry + nr, NULL);
>>>>        }
>>>>    
>>>
>>> All of this would logically be part of patch 1. Is there a particular reason
>>> why it wasn't done right there?
>>
>> These changes and the ones in patch 1 are related, but still remain
>> independent. Patch 1 can be accepted without patch 2 and vice versa.
>> So we've decided to split the commits because patch 1 is in common
>> code, while patch 2 is in x86-specific code.
> 
> Just to clarify: While not located under arch/x86/, what patch 1 touches
> is still x86-specific code. It's subject prefix also wrongly says
> AMD/IOMMU: when it also touches VT-d code. Especially with the changes
> here folded in, x86/IOMMU: might be more appropriate.
> 

OK, then I'll move the changes and use x86/IOMMU.
Thanks.

> Jan
> 

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:25:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:25:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649925.1015065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFJm-0001CV-7n; Thu, 07 Dec 2023 14:25:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649925.1015065; Thu, 07 Dec 2023 14:25:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFJm-0001CM-4k; Thu, 07 Dec 2023 14:25:34 +0000
Received: by outflank-mailman (input) for mailman id 649925;
 Thu, 07 Dec 2023 14:25:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBFJk-0000sw-Ii
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:25:32 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a385845-950c-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 15:25:31 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c07ed92fdso10571065e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:25:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 m3-20020a05600c3b0300b0040839fcb217sm2098214wms.8.2023.12.07.06.25.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 06:25:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a385845-950c-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701959131; x=1702563931; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LK3aU+IE74DBGiLYeMIGSywXdUlhtB3z4/TDWTSPskQ=;
        b=cyjy4vhWVXIfF+Whmpcx6gJ1Tj4UokFY9fSYhoceH38NJng2b/i16z4Wj1KsLA6EF7
         7U5nN2UatXVg1JZMaEAXjDGNBtJnmCLIllVUVFZ3DxoK0eFaicAwPl9xBlaiwjqcbxOV
         bfDsQitsVigS1BpDpPekfCYFon1O0TkCVcH0olInIAu8/4PPVYagGEzVqS1W0laUfR14
         OAnO4foxVmaXp1fh0i/S5PqvRhhsJiIA8AYPt3lHzQA/uwmOLs6a+SIpo+ZP86FEDf5f
         a/fLZhuODQlo7mMQqJiiNzNkBq41//Xegnpb1QLN/rC9E8lYuRRA5M8W8PXhynrALY2t
         atpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701959131; x=1702563931;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=LK3aU+IE74DBGiLYeMIGSywXdUlhtB3z4/TDWTSPskQ=;
        b=f1k1mTYTxsKPT7Zd9U1y4aN6BHIq1XDksflXQ2t2PwO2YIywJ0Xjn4yRHdVmABIrKF
         G7+ucwhSQ/qzTrlcvOq7AMjo/GI9Ql5JJRrDAVQALLrGfywQGZtrA6rFyGLVLMBbAOUU
         CvrhT58L5nwVzymOXL1lpfaoGCpE752fQKe+8MbniZ4UO2mxJvXuEjtNhMLiGJN1bYyL
         UIil/DkGUDKrtpwPNZLEn7BMKNsk4Wpf1BaokX11jdIb5yZ5B/yzKRDJgf0Ny/9geuZU
         UnlZc6NWoM4t4ep/vYRieOFF4Cz9AzmHCCND0jBOtpCj9RW1/fRgfHg0zyR7kuoKONFC
         cjhA==
X-Gm-Message-State: AOJu0YzMz9TS8Hzb4b5vtm+odnWHxSOopuvqcIlR/RddcvHUTRdLURv4
	r/YiXYVd/Ebv9FUaMs4Xs0aP
X-Google-Smtp-Source: AGHT+IGO+7LOWmbKSIv/7mxeafLXyV/z0K/CY/EpYw584y4q038vgORasPs2Lx1o5mH3O4ocJPq97A==
X-Received: by 2002:a05:600c:502a:b0:40c:aa3:f6a with SMTP id n42-20020a05600c502a00b0040c0aa30f6amr1653651wmr.173.1701959131416;
        Thu, 07 Dec 2023 06:25:31 -0800 (PST)
Message-ID: <3f43ced8-9437-4e88-a84f-0dd4edcdf5aa@suse.com>
Date: Thu, 7 Dec 2023 15:25:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/39] xen/riscv: introduce asm/cpufeature.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <b8fcdd22462ffa71a058e63dbf874dfc858264df.1700761381.git.oleksii.kurochko@gmail.com>
 <3959501d-9696-4791-bf04-d394af255bd2@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <3959501d-9696-4791-bf04-d394af255bd2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 15:19, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>

Actually - with an SPDX header added. I only now realize that I
committed the earlier two patches without paying attention to this
aspect. I'd appreciate if in the next version you could include an
incremental change. And obviously in all other new headers such a
comment (and perhaps also a formatting footer) wants introducing
as well.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:28:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:28:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649932.1015075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFMm-0003EN-Ls; Thu, 07 Dec 2023 14:28:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649932.1015075; Thu, 07 Dec 2023 14:28:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFMm-0003Db-IF; Thu, 07 Dec 2023 14:28:40 +0000
Received: by outflank-mailman (input) for mailman id 649932;
 Thu, 07 Dec 2023 14:28: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBFMl-0003BS-C3
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:28:39 +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 e8c22b54-950c-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 15:28:37 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c2308faedso10500235e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:28:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 w8-20020adfcd08000000b003334675634bsm1579129wrm.29.2023.12.07.06.28.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 06:28:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8c22b54-950c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701959317; x=1702564117; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=cCmKBpJRZgaUMf9UAujTHn5BKRdHfb1LXLTwxNOGs30=;
        b=dIqeWo9y1S5cuqFCppXkQCsc7m72goKP+I4m+fk+5zS6DvfK/4svXyHLKnpGypUJMF
         4ZHDCiMfn5Han2QQKOK297Y2w/vzZXY3wlZoF02gd3W+YHZCkbcX/8gqlgw53yImAwvL
         6qBRSFPBNwNQyfdH5cx6tfW1fgVDCmPCcuhrDh/Zb6s6Q0K598UHM1yxDRXGcO29UfxW
         LB9AGavone1hX+4TyLsoe3gcfbKo061QpH9xzPJ9SBIvccPp4FrnX3bcD+dmFvUXMtGz
         fpCJfVTgbaN/7EXl6XaS69WNGQSVmsQ3/PJBZTVu/6toNuTpy9wbjHeAehhDqHqYHTOU
         y2JA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701959317; x=1702564117;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=cCmKBpJRZgaUMf9UAujTHn5BKRdHfb1LXLTwxNOGs30=;
        b=fJ0crLhEQ8iQVMcf6Els9pBT7SbdyoYehmU7tgEJ5UYBGeU5sLintoDVVL80pJUCgZ
         I3e0kZEslN1FnOSuhMW15DiznuIEf50isD5HPXTPCYq5PJy0UvlrCQArvpiVgtirPLKl
         ywBc6alYbYQRddgL+rcEAv7ZcecteiNJDKUdxNyGefDNlpVH+bUq1u6OEqdegrtChTV/
         msQ36mOAnnVUtha/u6J+rKvFeJv+zWJ92FzTR1rYcfmxVj6xB1Inm8tZ3ufAKBXQ6qZ6
         RV6RjCv1QkU++OKfyrdBLbqvyRaaVExn2scGD6l2VaKOMslxu9MWHyQqLH8vL8Hcsn03
         iPww==
X-Gm-Message-State: AOJu0YzuBvEQkUrH+Su9DbbnoeQn+uHbpd69R+Z9u8YajpJA4oWog+Q5
	ua6X2NJvI9XX9dfw8k6Ghf8a
X-Google-Smtp-Source: AGHT+IF7emHVHUERF50DACvpu/A04Q/OkPhDEempSwVEI5PWtj3CKJOug5KUW4aBU6VLBtzlwLflEQ==
X-Received: by 2002:a05:600c:ad5:b0:40b:5e1e:cf6 with SMTP id c21-20020a05600c0ad500b0040b5e1e0cf6mr1762990wmr.49.1701959316843;
        Thu, 07 Dec 2023 06:28:36 -0800 (PST)
Message-ID: <028532fb-55d4-4a08-9b93-9ae29ed8e37c@suse.com>
Date: Thu, 7 Dec 2023 15:28:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/39] xen/riscv: introduce asm/nospec.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <aa2ff1df494f82f7c045f913371d3b9d04962a5e.1700761381.git.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: <aa2ff1df494f82f7c045f913371d3b9d04962a5e.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/nospec.h
> @@ -0,0 +1,25 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. */
> +
> +#ifndef _ASM_RISCV_NOSPEC_H
> +#define _ASM_RISCV_NOSPEC_H
> +
> +static inline bool evaluate_nospec(bool condition)
> +{
> +    return condition;
> +}
> +
> +static inline void block_speculation(void)
> +{
> +}
> +
> +#endif /* _ASM_RISCV_NOSPEC_H */

This being identical between Arm, PPC, and now RISC-V, wouldn't this be another
asm-generic/ candidate? (Whether such trivial stubs are copyrightable is, as
per earlier remarks, at least questionable to me.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:29:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:29:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649933.1015085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFNS-00045f-U7; Thu, 07 Dec 2023 14:29:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649933.1015085; Thu, 07 Dec 2023 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 1rBFNS-00045U-QP; Thu, 07 Dec 2023 14:29:22 +0000
Received: by outflank-mailman (input) for mailman id 649933;
 Thu, 07 Dec 2023 14:29: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBFNR-00042r-Mt
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:29:21 +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 02979dad-950d-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 15:29:20 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3333224c7b9so954179f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:29:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 w8-20020adfcd08000000b003334675634bsm1579129wrm.29.2023.12.07.06.29.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 06:29:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 02979dad-950d-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701959360; x=1702564160; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=pBpXZYr1kUHQo3WjX6emLN/laWA7ag7rnEUjjfzXO1s=;
        b=Qjl6UPqm6EZEW/OxZSabeNs4v5uLEwEXyS8PpHl2mQq5R1kdhgX8px24pdejKK5lux
         of3WRn630hPrP+2t7uWEH7pq0+aq6Kw6azuqgwo3ZK5kkjen8AQnXUU7gTrYM6CPESZR
         xjH0S8piP7QKJS6xsE1Bc06aBk7tcxoEy51sFdxSm0hsNWrVVD59pi5m+MPtQDuMHObK
         wc6Qg7OljKvLMSApnWT+AVauuVwkvJBf9RKPU/NGyR5sNc7InZo2Iqw5VBELfzraE8pY
         lAQmIF/QrU628mBcdHXNWiY+CpRn63HKnlyW9784nYUfUZMIgWQLXZPXZJMqhZ+Vl78/
         yuqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701959360; x=1702564160;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=pBpXZYr1kUHQo3WjX6emLN/laWA7ag7rnEUjjfzXO1s=;
        b=XKVdhDLf0HC4uN/c7mcz8FvkCUf7FCzjvROvLjyt1pWF82+Ms1Q9bmO3tfmHratCst
         GMJls3rWkhQyMW13aSaa4qrTCFg2vULOC2gMdl7oKubKb7ByzK0B6CBBXfbfmcBsCCea
         oW6+muMorBFnbonh/Hn3liMJACm1RHoargYMmQ1CTbAyVuQMiePE79nyq5288Z3uPiDu
         qXb5cmW2XHbRF/hHXl+kxjyYmLl4z3uEv9o3rEwY3zQmGKUAG3iCMXRpLf6FzqT8Zx8C
         HzpMLsB1z5bHMPu3TMHXFefOf5PFYksWYluEluD9D6iOXNlkUFXFCsEK3ShbAGwmyBaJ
         0FXw==
X-Gm-Message-State: AOJu0YyS4ugu1Pn6PvaMDQqAAWldJROBh9cwcxS/TSw1TpJnkp0AJ/J8
	1B1339ix0F4fn+hkByiYex+7
X-Google-Smtp-Source: AGHT+IF9O38/Qnz9T8QBcBxWUykofmTt7TaxqsHfVTRRDaYWokpxGdjC1GoUSsFCI139D0q89kvnWA==
X-Received: by 2002:a5d:538e:0:b0:333:49be:bf82 with SMTP id d14-20020a5d538e000000b0033349bebf82mr1455855wrv.77.1701959360200;
        Thu, 07 Dec 2023 06:29:20 -0800 (PST)
Message-ID: <e299d4ea-63f5-4d04-ab50-aeba773d2bb2@suse.com>
Date: Thu, 7 Dec 2023 15:29:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/39] xen/riscv: introduce asm/setup.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <2dd966bbcaaf5a884c1a6a0a81dc29511e90f938.1700761381.git.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: <2dd966bbcaaf5a884c1a6a0a81dc29511e90f938.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

With at least SPDX header
Acked-by: Jan Beulich <jbeulich@suse.com>




From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:30:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:30:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649934.1015095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFOp-0005uc-7x; Thu, 07 Dec 2023 14:30:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649934.1015095; Thu, 07 Dec 2023 14:30:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFOp-0005uV-43; Thu, 07 Dec 2023 14:30:47 +0000
Received: by outflank-mailman (input) for mailman id 649934;
 Thu, 07 Dec 2023 14:30: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBFOn-0005uL-LV
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:30:45 +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 33d840b3-950d-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 15:30:43 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c19f5f822so5956665e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:30:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 w8-20020adfcd08000000b003334675634bsm1579129wrm.29.2023.12.07.06.30.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 06:30:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33d840b3-950d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701959443; x=1702564243; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=4H6JHUoVvSHOtyAnjnHGsFOmB5TsjpFHYo/wp/19rHw=;
        b=Swzo2MamuZPrf0s4ByZWT9t1tr7Ex3+BYPDnBF/iWgAV7xG8615Iv7TzcJjBPimctF
         CAZtyFcwfAIR37QKUumkCjyDXdMsTnHBHNgCIeGMV08YiTB0Fydf7JzuodlMcn4f9/l3
         An/HZw9R+44wUVKDPlmDStwHQlUoBHvghj4Tfm6NAg0o8vnJBrGpz0Lfx1Z4Egpt9/D4
         b1n/ONv7gN9C8DeqnKqy20NmAhaj6QnjhCir/pOW/lGzHbkoVJHeTK9YP6BrEAkmt/I9
         6T6Q3KzCDGRJ52myOmEm0BeM2I+38mCHEbTMxdBdJN/FVErqkhXYBLTNbsq2T5xY9/TU
         zrlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701959443; x=1702564243;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=4H6JHUoVvSHOtyAnjnHGsFOmB5TsjpFHYo/wp/19rHw=;
        b=ONoA3ZIA7mYryjWK0yPM36MZPDrOKjYs9Dm+f+E3WhC5soUjDtYbto4uKvX5n3cV5A
         36t+7jg1hGD1ncj7VthDHsLva56J8FYNTeyk8TnoAydCVaJWE9x4KB2DSocRbuF9Qu+b
         mYdnqGGFZ20wuXTq3AmULOdQk2Hqf9BNLjvY8dDd08qbt7YTgwb6qxSFboWY0ZroVpIu
         t0EmPvYKyw0sHIE+PmV8yXMmCxNTc3+1AuzemTDJaQ7QrOpypuzFC+vv4Km/BmivWOkR
         bpTfHSbMnBc99APybNgJcmwHoeZj4ahsFbDySrkeUvGfzF7jjsfWXPEUbFfV+FpM6BhI
         togg==
X-Gm-Message-State: AOJu0YwJI+Y3CD435uMRzPIqKTg7dCfm3HPAurTHKdciUvh6dz+qQwqA
	TjvXRv4akEb0FjOxg3PtWsVY
X-Google-Smtp-Source: AGHT+IG7adhm6ZGkenggxSyetqEaAhqKmQWSAzUJ5F9twvFT0pGkxeUx41brArhlV37wTXLeuJBf9w==
X-Received: by 2002:a05:600c:1e04:b0:40b:5e56:7b36 with SMTP id ay4-20020a05600c1e0400b0040b5e567b36mr2801362wmb.127.1701959442815;
        Thu, 07 Dec 2023 06:30:42 -0800 (PST)
Message-ID: <0fab3032-5236-48ad-96c8-3ae26b70cb8b@suse.com>
Date: Thu, 7 Dec 2023 15:30:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/39] Enable build of full Xen for RISC-V
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1700761381.git.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: <cover.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Bobby Eshleman (1):
>   xen/riscv: introduce asm/atomic.h
> 
> Oleksii Kurochko (38):
>   xen/riscv: disable unnecessary configs
>   xen/riscv: use some asm-generic headers
>   xen/riscv:introduce asm/byteorder.h
>   xen/riscv: add public arch-riscv.h
>   xen/riscv: introduce spinlock.h
>   xen/riscv: introduce fence.h
>   xen/riscv: introduce arch-riscv/hvm/save.h
>   xen/riscv: introduce asm/cpufeature.h
>   xen/riscv: introduce asm/guest_atomics.h
>   xen/riscv: introduce asm/iommu.h
>   xen/riscv: introduce asm/nospec.h
>   xen/riscv: introduce asm/setup.h
>   xen/riscv: introduce asm/system.h
>   xen/riscv: introduce bitops.h
>   xen/riscv: introduce flushtlb.h
>   xen/riscv: introduce asm/smp.h
>   xen/riscv: introduce cmpxchg.h
>   xen/riscv: introduce asm/io.h
>   xen/riscv: define bug frame tables in xen.lds.S
>   xen/riscv: introduce bit operations
>   xen/riscv: introduce asm/domain.h
>   xen/riscv: introduce asm/guest_access.h
>   xen/riscv: introduce asm/irq.h
>   xen/riscv: introduce asm/p2m.h
>   xen/riscv: introduce asm/regs.h
>   xen/riscv: introduce asm/time.h
>   xen/riscv: introduce asm/event.h

Throughout here, would you please try to be consistent about (not) using asm/
prefixes?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:34:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:34:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649942.1015104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFSj-0006ap-QZ; Thu, 07 Dec 2023 14:34:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649942.1015104; Thu, 07 Dec 2023 14:34:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFSj-0006ai-Nv; Thu, 07 Dec 2023 14:34:49 +0000
Received: by outflank-mailman (input) for mailman id 649942;
 Thu, 07 Dec 2023 14:34:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3y0a=HS=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBFSj-0006ac-2b
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:34:49 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20619.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c513042d-950d-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 15:34:47 +0100 (CET)
Received: from DM5PR07CA0066.namprd07.prod.outlook.com (2603:10b6:4:ad::31) by
 DM4PR12MB5844.namprd12.prod.outlook.com (2603:10b6:8:67::15) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.27; Thu, 7 Dec 2023 14:34:43 +0000
Received: from CY4PEPF0000EE3A.namprd03.prod.outlook.com
 (2603:10b6:4:ad:cafe::d6) by DM5PR07CA0066.outlook.office365.com
 (2603:10b6:4:ad::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25 via Frontend
 Transport; Thu, 7 Dec 2023 14:34:43 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE3A.mail.protection.outlook.com (10.167.242.14) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Thu, 7 Dec 2023 14:34:42 +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.34; Thu, 7 Dec
 2023 08:34:42 -0600
Received: from [10.71.193.58] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Thu, 7 Dec 2023 08:34:41 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c513042d-950d-11ee-98e7-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gMYYXM9r5UdD1hAY1IbTYHAV62NDeG9BeyOv7UiL4l/QK4U4heR9viTBvoLDfcfkru0YOyCzL60rClJ6bWv2Meq3kmCHeoL5/OeeSTwnX4USX4DmyGOPzrh1E6Av3cmy0jHtmPjlYehd9FXXGSN6hFjKr6OERIS/q5FBcJDJNH0GFESdAyTEaTDWeQAU6vaHCbYm2d6M4Ho6+uiQCXMidekJLFTMhf8Gpd94bVZDwSDph3DtE/OZ0MU5t4la8UHlEFKyv1CE10wh6ij+daqG6flk3rGbVVQR4RyZvZ9ULtqotQM2Yx++VDl1+P1lv0qrVcekDjCDz7imiTrqgea9Tg==
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=5OJSWzsMJ2qf1OlMoUCQENudpQI71Sk8yuICQafUiak=;
 b=Hy48ymBtMLR4+anBEe4KKL/LhfHOjGEj7I5ERmb+k02Yj7jmB2G2CLyvuXUuxx3998RucCuugp/7IU2mGZQWvsTbLtcAcmu4pMxkgHNJDEGpnzaCyFFv3dRldXOkkH75qa2m0Kmpl29aSpuEXBsqDieCOleBCgZdT7ESk1lbh4OGYRxE6gpj66elm5DkKo46J8Aiu5dXmfaPkyHJWG93aWvB3WJIZlAkhU1W/pP4gf32lCQPa0zQ+C8pLZxYsseAvHDaoODvi7BC6sZN5sqRi7F17XZpg9etano0oGHvteX/vrP4mhGTBSpYl9216MUxKHIbpvGY9d/7gS0msdB8vw==
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=5OJSWzsMJ2qf1OlMoUCQENudpQI71Sk8yuICQafUiak=;
 b=O8CwN9pqSL+PNhFgfujjhzFvnWxQ6f/RqwJj0z4rlWqCUAyD7Jnr6tqCfLoNuoNHBmVJsC5TmHNwQrjaxxHT3xUirWNOGsGPGMI3npCJ60jKqtcdFxb1njcFkXDo/BjJ7YSJxK3Tbp0223wILcTGNcuEETp5Wb3vikThoEAflqs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <a111fa0a-2948-4b12-8ff7-c225cca1a823@amd.com>
Date: Thu, 7 Dec 2023 15:34:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: bootfdt: Check return code of
 device_tree_for_each_node()
Content-Language: en-US
To: Julien Grall <julien@xen.org>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231207101432.37732-1-michal.orzel@amd.com>
 <d45f0d37-dbca-44a8-a27f-b9e709bb9cfd@xen.org>
 <30947562-9806-4bc2-8381-8ffee25b62ea@amd.com>
 <b9b41fdf-7ecf-4a5d-be9d-d49f59810678@xen.org>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <b9b41fdf-7ecf-4a5d-be9d-d49f59810678@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3A:EE_|DM4PR12MB5844:EE_
X-MS-Office365-Filtering-Correlation-Id: 2ba513a1-3214-48b5-582c-08dbf731a6dc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CDk4NvyDa+olU73tx7xdMZdXLQQsdMpKSb2RwenlB6TTUHKtMTDaVsYC8oNnBKO9FMhF9ldC0e+KJ16WYuKrsyvOPITn0pOiM31m7q8lojuKj57lzzUF67w9sWuiRfMqwMQgGqycuc9G8YNcn2aSU2wyccusA18LbyLPuRzUVsvQgeCEAHD2saIEuWN45DXXu5xExArHHqwABMHnzHtCLzan8yMpftYvStfTxzSNB78O0LghCGNBWiNdcZZPBazzUObmviLEb9RqEEUwwqj9ca1ElHBLLMD5jyF4/lXpNtt8ehLLgpMPi1Ll0Bs9Fg5zN2FsolTeVh/NJ5dj+Xfkx4UgAs4s/4ckbEKsSIAxmFZVMadMZjDOhaATXtXQQfELwKNzHLtdOsv13R8EicNnmdaW/diYJDH07vvHfWNEVBD/f8ROeEmZec2CYMv7Tudnt6aaHFFcip7ny3rVE4PNSnF4bxjlXgc7zRKMOM0Bxfwuc9lbiS2dQqh6fNaYrtQ/+e7Qn3cyVW0plcpC/VSl8EOFd4pR7GmvltTnt0ybkusgSS96Wx9LYy4VdS4CEKKLiwkOi5B5UX3Th/bQIRuAQRFZ9DuO11wVHhcjuOFP5L0Uit4DRsKfmek46GfHtMVZNBCoCPC9+Wwle6miRfI2J+VMZ2gL2MR7e7gSWngujYiV2XuAwE9Ul4bDTOrKirf7z6TPz0HZLVjiK3MZpqkk+1itPI3m44gG+XknOBsR3mLAd36HTNMmxiZQvjhBR/A7/sQI6FURoYO5RIjnQ28qqPV59pjYf67H5bJTJ+HHd2jzQ7unyOtjlEhkT5Hgiv3B
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:(13230031)(4636009)(136003)(396003)(346002)(376002)(39860400002)(230922051799003)(64100799003)(82310400011)(1800799012)(186009)(451199024)(36840700001)(40470700004)(46966006)(40460700003)(40480700001)(31686004)(53546011)(2616005)(26005)(47076005)(478600001)(81166007)(356005)(82740400003)(31696002)(86362001)(36756003)(41300700001)(44832011)(2906002)(5660300002)(70206006)(110136005)(54906003)(336012)(36860700001)(426003)(70586007)(83380400001)(8676002)(16576012)(4326008)(8936002)(316002)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2023 14:34:42.6879
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ba513a1-3214-48b5-582c-08dbf731a6dc
X-MS-Exchange-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:
	CY4PEPF0000EE3A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5844



On 07/12/2023 13:54, Julien Grall wrote:
> 
> 
> Hi Michal,
> 
> On 07/12/2023 12:39, Michal Orzel wrote:
>> On 07/12/2023 13:20, Julien Grall wrote:
>>>
>>>
>>> Hi Michal,
>>>
>>> On 07/12/2023 10:14, Michal Orzel wrote:
>>>> As a result of not checking the return code of device_tree_for_each_node()
>>>> in boot_fdt_info(), any error occured during early FDT parsing does not
>>>> stop Xen from booting. This can result in an unwanted behavior in later
>>>> boot stages. Fix it by checking the return code and panicing on an error.
>>>>
>>>> Fixes: 9cf4a9a46717 ("device tree: add device_tree_for_each_node()")
>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>
>>> With one remark below:
>>>
>>> Acked-by: Julien Grall <jgrall@amazon.com>
>>>
>>>> ---
>>>> I've lost count how many times I had to fix missing rc check. However, I have
>>>> not yet found any checker for this (-Wunused-result is pretty useless).
>>>> ---
>>>>    xen/arch/arm/bootfdt.c | 4 +++-
>>>>    1 file changed, 3 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
>>>> index b1f03eb2fcdd..f496a8cf9494 100644
>>>> --- a/xen/arch/arm/bootfdt.c
>>>> +++ b/xen/arch/arm/bootfdt.c
>>>> @@ -541,7 +541,9 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>>>
>>>>        add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
>>>>
>>>> -    device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
>>>> +    ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
>>>> +    if ( ret )
>>>> +        panic("Early FDT parsing failed (%d)\n", ret);
>>>
>>> AFAIU, the parsing is done before the console is setup. This means a
>>> user would not be able to get some logs unless they are re-compiling Xen
>>> with earlyprintk.
>>>
>>> I understand this is not a new issue, but I am getting concerned of the
>>> amount of check we add before the console is up and running.
>>>
>>> What is the impact if we don't check the return here? Is it missing regions?
>> There are many things that can go wrong.
>> Quite recently, I faced an issue where I specified 2 dom0less domUs in configuration
>> and due to the error while parsing the last node of domU1, domU2 node was skipped and
>> Xen booted only domU1 without giving any errors.
>>
>> Issues with shared memory led to either Xen continue to run with improper configuration,
>> silencing overlap conditions, errors at later boot stages that were impossible to deduct
>> from the logs.
>>
>> All in all, early boot code parsing assume the error to result in a failure and the parsing
>> for domain creation makes this assumption as well (checks are more relaxed to avoid duplication).
>>
>> For now, we can't do anything better than panicing early if we want to avoid unwanted behavior.
>>
>>>
>>> I wonder whether we can either enable the console earlier, or make
>>> earlyprintk more dynamic (similar to what Linux is doing with
>>> earlyprintk=...).
>> The most imporatant part is early fdt parsing. The main console init cannot be moved that early.
> 
> I think we need to understand a bit more why because on x86
> consoel_init_preirq() is called very early. So we ought to be able to do
> the same on Arm.
But this won't cover early fdt parsing. I don't think we can get away without adding earlycon
and earlycon helpers in all the serial drivers. arm_uart_init depends on unflattening fdt which
depends on relocating fdt which is done after parsing FDT. We want to be able to print messages
after early_fdt_map. Once FDT is mapped, the only thing we need is to retrieve the bootargs to parse
for earlycon= , add the region to fixmap and register the handlers.

~Michal


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:35:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:35:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649944.1015115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFTf-00078G-3X; Thu, 07 Dec 2023 14:35:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649944.1015115; Thu, 07 Dec 2023 14:35:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFTf-000789-0Y; Thu, 07 Dec 2023 14:35:47 +0000
Received: by outflank-mailman (input) for mailman id 649944;
 Thu, 07 Dec 2023 14:35:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rBFTd-00077z-Sn
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:35:45 +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 1rBFTc-0005Df-H6; Thu, 07 Dec 2023 14:35:44 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBFTc-0002Nr-Bb; Thu, 07 Dec 2023 14: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>
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=KUvb1+hs/zApokj88N3kYPYtkyM6jfkHuPEKKxqu+Ow=; b=cXT9+J8fZKVQ5zUl18Ry0Dmm67
	zz3M5A3Nx+pORCe9QKuHngd9XLREwBzxmZIKLrATRuFST4HNQPM5vpJRDhta9iZY0Kx+whHqeud5l
	emrD8iC7LjGwsqE0HY6XzBOtLsJntpjoLprjiSKa4/QRaflANxc8LA5OudmmFg86DjGU=;
Message-ID: <ca80534b-9eb3-4c13-bf58-593919016446@xen.org>
Date: Thu, 7 Dec 2023 14:35:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CODING_STYLE: Add a section of the naming convention
Content-Language: en-GB
To: George Dunlap <george.dunlap@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
 Julien Grall <jgrall@amazon.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231205181218.74667-1-julien@xen.org>
 <CA+zSX=aUV00BwnNfFTbCE=6PuVNT=UFvE0tnMO3UhwCMh5jmHQ@mail.gmail.com>
 <50b36423-d1e1-406f-a63f-66f2e4dce68e@suse.com>
 <6f071eba-3995-451b-af80-efe875ec5ea8@citrix.com>
 <33d82944-6c53-45c6-93d5-48d0be9257fd@xen.org>
 <CA+zSX=YadJYYG_b7V0+S7hfpmtTAc3RPOXTV0zBCa+y=v36M6A@mail.gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <CA+zSX=YadJYYG_b7V0+S7hfpmtTAc3RPOXTV0zBCa+y=v36M6A@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi George,

On 06/12/2023 16:22, George Dunlap wrote:
> On Wed, Dec 6, 2023 at 11:22â€¯AM Julien Grall <julien@xen.org> wrote:
>>
>> Hi,
>>
>> On 06/12/2023 11:19, Andrew Cooper wrote:
>>> On 06/12/2023 8:41 am, Jan Beulich wrote:
>>>> On 06.12.2023 03:21, George Dunlap wrote:
>>>>> On Tue, Dec 5, 2023 at 6:12â€¯PM Julien Grall <julien@xen.org> wrote:
>>>>>> From: Julien Grall <jgrall@amazon.com>
>>>>>>
>>>>>> Several maintainers have expressed a stronger preference
>>>>>> to use '-' when in filename and option that contains multiple
>>>>>> words.
>>>>>>
>>>>>> So document it in CODING_STYLE.
>>>>>>
>>>>>> Signed-off-by: Julien Grall <jgrall@amazon.com>
>>>>>>
>>>>>> ---
>>>>>>       Changes in v2:
>>>>>>           - New wording
>>>>>>           - Update the section title
>>>>>>           - Add Jan's acked-by
>>>>>> ---
>>>>>>    CODING_STYLE | 9 +++++++++
>>>>>>    1 file changed, 9 insertions(+)
>>>>>>
>>>>>> diff --git a/CODING_STYLE b/CODING_STYLE
>>>>>> index ced3ade5a6fb..ed13ee2b664b 100644
>>>>>> --- a/CODING_STYLE
>>>>>> +++ b/CODING_STYLE
>>>>>> @@ -144,6 +144,15 @@ separate lines and each line should begin with a leading '*'.
>>>>>>     * Note beginning and end markers on separate lines and leading '*'.
>>>>>>     */
>>>>>>
>>>>>> +Naming convention for files and command line options
>>>>>> +----------------------------------------------------
>>>>>> +
>>>>>> +'-' should be used to separate words in commandline options and filenames.
>>>>>> +E.g. timer-works.
>>>>>> +
>>>>>> +Note that some of the options and filenames are using '_'. This is now
>>>>>> +deprecated.
>>>>> Sorry for not catching this last time; "are using X" isn't really
>>>>> idiomatic English; more idiomatic would be something like the
>>>>> following:
>>>>>
>>>>> "Note that some existing options and file names use '_'.  This is now
>>>>> deprecated."
>>>>>
>>>>> Since we're changing things, I *think* most style guides would advise
>>>>> against starting the sentence with a punctuation; so perhaps:
>>>>>
>>>>> "Command-line options and file names should use '-' to separate words;
>>>>> e.g., timer-works."
>>>>>
>>>>> And what about adding to the last paragraph:
>>>>>
>>>>> "When touching code around command-line parameters still using '_', it
>>>>> is recommended to modify the documentation to say only '-', but modify
>>>>> the code to accept both '-' and '_' (for backwards compatibility)."
>>>> In this context see
>>>> https://lists.xen.org/archives/html/xen-devel/2020-01/msg01945.html
>>>> and Andrew's response
>>>> https://lists.xen.org/archives/html/xen-devel/2020-01/msg02006.html
>>>> I'm still in favor of addressing the issue centrally (making unnecessary
>>>> adjustments like you suggest in the new paragraph). Yet I think Andrew's
>>>> objection would cover such adjustments as much as my generic solution.
>>>
>>> Aliasing - and _ in the cmdline parsing breaks basic usability.
>>>
>>> Its fine for new options to use -, and it's even fine-ish (but only if
>>> you're going to be the one doing security backports) to rename internal
>>> files.
>>>
>>> But there is real and detrimental effect for altering the command line.
>>>
>>> You will get people failing to express the option they intended when
>>> working with an older form of Xen.  You will need an absurd number of
>>> notes in the command line docs saying "newer versions of Xen accept an
>>> alias but you need to use the underscore form for backwards compatibility".
>>>
>>> Not to mention that there are years of notes scattered all around the
>>> internet using the underscore forms, so it's likely that everyone will
>>> continue to use the underscore form, meaning that you don't even have a
>>> way to phase them out.
>>>
>>> And for what?  An attempt to pretend that we don't have 2 decades of
>>> history where underscores where the norm?
>>>
>>> It's tinkering, for no useful benefit and a clear cost.
>>
>> +1 with what Andrew said.
> 
> Haven't given it full thought, because I absolutely did not want to
> make this change take longer to get in. :-). The existence of
> disagreement is enough for me to withdraw my suggestion.

Thanks. I will commit the patch soon then. I am happy to continue the 
discussion though. I would love to get the file CODING_STYLE reflecting 
more our style policies :).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 14:51:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 14:51:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649949.1015124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFia-0005Zs-EM; Thu, 07 Dec 2023 14:51:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649949.1015124; Thu, 07 Dec 2023 14:51:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFia-0005Zl-Bd; Thu, 07 Dec 2023 14:51:12 +0000
Received: by outflank-mailman (input) for mailman id 649949;
 Thu, 07 Dec 2023 14: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=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBFiZ-0005Zf-Gt
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 14:51:11 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ea07f16-9510-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 15:51:09 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c2c65e6aaso4869645e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 06:51:09 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 qo3-20020a170907874300b00a1dc4307ecfsm909996ejc.188.2023.12.07.06.51.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 06:51:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ea07f16-9510-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701960669; x=1702565469; 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=xPWs7+6cb4CyFEf01u8dt/t17I7rUtlNovTWZ2bc5D0=;
        b=DdS9r4aVAGJdl9gGOUw0zwKtd++hFyuomkrLR7GFZ2Q1b3qXE52T99q0DTjCdiqeVq
         PoguHD5no10YjZZVFVIvJ+IbgtT2Bm7AnBO6H5tLPQ0BJ4+w7qLonZxqlDkOyED5MPv1
         dow3+UwJKICkClIE9FzcFTz3d5Kwg87ibN0CfifrEbnjR1rMWbr7drReL7CLVYg2PdPm
         qUWj29lmgH2R5csilGy7QyhNTJPoAMQn+CCAFRBMZdiFt5b71bD0K5oSIo+4D7rX0zcc
         D4fQeLnhuUXytTg/BxBbjNbFN7ZASjkqL54cgJ4noABQ+kMkDc2qukoZ/IdE3/89RjbY
         q6+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701960669; x=1702565469;
        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=xPWs7+6cb4CyFEf01u8dt/t17I7rUtlNovTWZ2bc5D0=;
        b=xOMx1mcVgdtyEby9NmtHdYtzDepHNez4QZnN8BxS1ys4l2TEJIM7rj/YHXoephtz9U
         Q4PYI21TnSSdbay7oQeVnGzymrCWkp1Rz0INLqBEXxyAY073v0IpxdoZw5PpVMnQlj6s
         w796NkA7ZeYBWQRRafmPnZco1mL5JRZOjFxH0ifS13hHIjZKq12jg2++rCz91+QbrFx0
         Mf0r4aQdA2yOHoBX0Eonvgui21+EvMku/BKNGNa0JZ5YiuV2I1z7Z5GNsFa+EeZ314Hu
         uOB2ET7IU/frjtGkLGKs9LkTaxtclqamiTB7HOCeNUnnzLPgqhxL17/5N6b2AzFXDUZU
         Mbrg==
X-Gm-Message-State: AOJu0YyHofPUEdX3tOzLWhgR5ZNwnlCw4PmFUYufFzifPNp7FSXkwYEV
	KHs3+VBhy7EtKMvVCba5ebI=
X-Google-Smtp-Source: AGHT+IErhR3Jr+XXGIVudKYRNaavw8ccw76vD/fru5vTR0s+9Pv3S8hSMhOmaWbEzIJ9zxsn8Zc2ug==
X-Received: by 2002:a05:600c:2296:b0:40c:6bf:a924 with SMTP id 22-20020a05600c229600b0040c06bfa924mr1488537wmf.78.1701960668661;
        Thu, 07 Dec 2023 06:51:08 -0800 (PST)
Message-ID: <decb178a72c48549d721a7da88459b35ac443f52.camel@gmail.com>
Subject: Re: [PATCH v2 01/39] xen/riscv: disable unnecessary configs
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	 <sstabellini@kernel.org>, Alistair Francis <alistair.francis@wdc.com>, Bob
	Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, 
	xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
Date: Thu, 07 Dec 2023 16:51:07 +0200
In-Reply-To: <4064be07-747e-4b9c-b5da-9935aa13d91f@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.oleksii.kurochko@gmail.com>
	 <fdfda320-b73b-4830-8f1b-d261b02bcdde@suse.com>
	 <22fa451f7b165a00082443a35077e98e101c22e4.camel@gmail.com>
	 <008d0c66-6816-4d12-9e1f-1878e982f9fc@suse.com>
	 <09d24b36380027df21d547de438da10e01eda0e0.camel@gmail.com>
	 <4064be07-747e-4b9c-b5da-9935aa13d91f@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 15:11 +0100, Jan Beulich wrote:
> On 07.12.2023 14:44, Oleksii wrote:
> > On Thu, 2023-12-07 at 11:00 +0100, Jan Beulich wrote:
> > > On 07.12.2023 10:22, Oleksii wrote:
> > > > On Tue, 2023-12-05 at 16:38 +0100, Jan Beulich wrote:
> > > > > > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > > > > > The patch also fixes the build script as conf util
> > > > > > > > expects
> > > > > > > > to have each config on separate line.
> > > > > >=20
> > > > > > The approach doesn't really scale (it's already odd that
> > > > > > you
> > > > > > add
> > > > > > the
> > > > > > (apparently) same set four times. There's also zero
> > > > > > justification
> > > > > > for
> > > > > > this kind of an adjustment (as per discussion elsewhere I
> > > > > > don't
> > > > > > think
> > > > > > we should go this route, and hence arguments towards
> > > > > > convincing
> > > > > > me
> > > > > > [and
> > > > > > perhaps others] would be needed here).
> > > > I agree that this may not be the best approach, but it seems
> > > > like
> > > > we
> > > > don't have too many options to turn off a config for
> > > > randconfig.
> > > >=20
> > > > To be honest, in my opinion (IMO), randconfig should either be
> > > > removed
> > > > or allowed to fail until most of the functionality is ready.
> > > > Otherwise,
> > > > there should be a need to introduce HAS_* or depend on
> > > > 'SUPPORTED_ARCHS' for each config, or introduce a lot of stubs.
> > > >=20
> > > > Could you please suggest a better option?
> > >=20
> > > As to dropping randconfig tests, I'd like to refer you to Andrew,
> > > who
> > > is of the opinion that it was wrong to drop them for ppc. (I'm
> > > agreeing
> > > with him when taking a theoretical perspective, but I'm not happy
> > > with
> > > the practical consequences.)
> > >=20
> > > As to a better approach: Instead of listing the same set of
> > > options
> > > several times, can't there be a template config which is used to
> > > force
> > > randconfig to not touch certain settings? In fact at least for
> > > non-
> > > randconfig purposes I thought tiny64_defconfig /
> > > riscv64_defconfig
> > > already serve kind of a similar purpose. Imo the EXTRA_*CONFIG
> > > overrides
> > > are there for at most very few special case settings, not for
> > > purposes
> > > like you use them here.
> > The template will be the really a good option.
> >=20
> > What do you think about the following patch which introduces arch-
> > specific allrandom.config?
> >=20
> > diff --git a/xen/Makefile b/xen/Makefile
> > index ca571103c8..cb1eca76c2 100644
> > --- a/xen/Makefile
> > +++ b/xen/Makefile
> > @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
> > =C2=A0# *config targets only - make sure prerequisites are updated, and
> > descend
> > =C2=A0# in tools/kconfig to make the *config target
> > =C2=A0
> > +ARCH_ALLRANDOM_CONFIG :=3D
> > $(srctree)/arch/$(SRCARCH)/configs/allrandom.config
> > +
> > =C2=A0# Create a file for KCONFIG_ALLCONFIG which depends on the
> > environment.
> > =C2=A0# This will be use by kconfig targets
> > allyesconfig/allmodconfig/allnoconfig/randconfig
> > =C2=A0filechk_kconfig_allconfig =3D \
> > =C2=A0=C2=A0=C2=A0=C2=A0 $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), e=
cho
> > 'CONFIG_XSM_FLASK_POLICY=3Dn';) \
> > -=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG)=
;) \
> > +=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG)=
; \
> > +=C2=A0=C2=A0=C2=A0 $(if $(wildcard $(ARCH_ALLRANDOM_CONFIG)), cat
> > $(ARCH_ALLRANDOM_CONFIG);) ) \
> > =C2=A0=C2=A0=C2=A0=C2=A0 :
>=20
> Something along these lines may be okay, but why would the name be
> "allrandom" when the config is used elsewhere as well?
The naming is not optimal. "unused.config" or "ignored.config" would be
a better choice.

>  Further, besides
> keeping randconfig and all*config from creating unusable configs, it
> will at least want considering whether in other cases that set of
> fixed
> values shouldn't be used as well then.
If I understood you correctly, the other case is *defconfig targets.
Therefore, the following targets might also need to be updated by
merging "unused.config" with {defconfig,%_defconfig}:


defconfig: $(obj)/conf
ifneq ($(wildcard
$(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
	@$(kecho) "*** Default configuration is based on
'$(KBUILD_DEFCONFIG)'"
	$(Q)$< $(silent) --
defconfig=3Darch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
else
	@$(kecho) "*** Default configuration is based on target
'$(KBUILD_DEFCONFIG)'"
	$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG)
endif

%_defconfig: $(obj)/conf
	$(Q)$< $(silent) --defconfig=3Darch/$(SRCARCH)/configs/$@
$(Kconfig)

However, I believe it's possible that for *defconfig, a configuration
should be set to N, but in randconfig, it is still acceptable to be set
to Y.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:07:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649952.1015135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFy5-0000Av-P8; Thu, 07 Dec 2023 15:07:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649952.1015135; Thu, 07 Dec 2023 15:07:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBFy5-0000Ao-Ma; Thu, 07 Dec 2023 15:07:13 +0000
Received: by outflank-mailman (input) for mailman id 649952;
 Thu, 07 Dec 2023 15:07: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBFy4-00006c-7R
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 15:07:12 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4b9f7abc-9512-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 16:07:10 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c2c65e6aaso5060765e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 07:07:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r20-20020a05600c35d400b0040b538047b4sm2271079wmq.3.2023.12.07.07.07.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 07:07:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b9f7abc-9512-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701961630; x=1702566430; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=iKTI/TFjXfgWUryG2bg7p8YcsAi9nj1/38/wFvw/Qxs=;
        b=diauUZgpD4oCWfnubtsCth4cFUEJig+mC9fsdvXKxcOOMqpciF8+fMMmJKmeME/woo
         dz/limB6MVc2eC8+GkYoth451Ua1bC5aLW0ZS0c912ZlW9+wXs/JZfU/FBfQnEHSht1n
         XknVgsfAa7mnCR7PLwTQzkwGj5X3/ROcvLnm7n5J3R69QpHGLKy62qbRE6FTB8xlRwJ2
         XnvKZWt6mczcEfcfNaFdLq8xOEAarsHdRcOfatdlq9z5KLj7K3eBCYHb/NASmgA9fSvG
         ZhvAu9o3JyEdbxEu69/KbHwatNXsVj+oMQMEkZc5d8DXr+XbgwVSatvSXMH986Z11fV4
         MQVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701961630; x=1702566430;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=iKTI/TFjXfgWUryG2bg7p8YcsAi9nj1/38/wFvw/Qxs=;
        b=F8XJDNgpE8bcyvcZ2UYgI/LGYXJOOAGdkRdGOSPdQUd4xuTz1yCP4MeLAxu7M4PUci
         amK4XJyJigz5KiYeLve2VFK/VkiepMu6xKw+UUvWJkAMOHOpl80x/QPGluCZneY1PskW
         KmAr1ZGpPV1yMVcY5Wg0WkCdt3C4j5zco0w5FrHSYKnT6LyQp5G3CFSarUqrSRJvnMqN
         4MwycXDRg8YW790v1VOzadTLYW5PUq+50v9GZFxUNXlqfeGBLXeyMOnqkINXwhb8ZG7X
         1/NolvUMsYt3z6+r7NKzQrfMBKUHNzCSkHh5Hp3aav9m7cpyPf2IPAvwbDCpjSA9SiuT
         +yiQ==
X-Gm-Message-State: AOJu0YxpnGTuG9X30TrxB2dsbR7NwP9Wp1SvOP64S+I2M9J7YBgALMaY
	nPR0mJPfFqZnMy14inufLMD3
X-Google-Smtp-Source: AGHT+IEJ/E4R3HCZX+gy52Tr/VRRRRf2akFO4VGqiR5FZQh1Z1u7llyepPaycoYG5wxEVWSuuxvnSA==
X-Received: by 2002:a05:600c:1d8c:b0:40c:335:5544 with SMTP id p12-20020a05600c1d8c00b0040c03355544mr1583149wms.230.1701961630103;
        Thu, 07 Dec 2023 07:07:10 -0800 (PST)
Message-ID: <671d903b-8135-4b30-a197-36bffed180da@suse.com>
Date: Thu, 7 Dec 2023 16:07:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/39] xen/riscv: introduce asm/system.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <3007fb3d841dbaa078bb5b7af699c883356badca.1700761381.git.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: <3007fb3d841dbaa078bb5b7af699c883356badca.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/system.h
> @@ -0,0 +1,79 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#ifndef _ASM_RISCV_BARRIER_H
> +#define _ASM_RISCV_BARRIER_H
> +
> +#include <asm/csr.h>
> +
> +#ifndef __ASSEMBLY__
> +
> +#define RISCV_FENCE(p, s) \
> +    __asm__ __volatile__ ("fence " #p "," #s : : : "memory")

Nit (style): Missing blanks immediately inside the parentheses.

> +/* These barriers need to enforce ordering on both devices or memory. */
> +#define mb()                    RISCV_FENCE(iorw,iorw)
> +#define rmb()                   RISCV_FENCE(ir,ir)
> +#define wmb()                   RISCV_FENCE(ow,ow)

Nit (style): Missing blanks after the commas (also again below).

> +/* These barriers do not need to enforce ordering on devices, just memory. */
> +#define smp_mb()                RISCV_FENCE(rw,rw)
> +#define smp_rmb()               RISCV_FENCE(r,r)
> +#define smp_wmb()               RISCV_FENCE(w,w)
> +#define smp_mb__before_atomic() smp_mb()
> +#define smp_mb__after_atomic()  smp_mb()
> +
> +/*
> +#define __smp_store_release(p, v)       \

Is there a need for the double underscores here? We try to not
introduce new instances of undue leading underscores, but there might
be e.g. a strong desire to stay in sync with, say, Linux.

> +do {                                    \
> +	compiletime_assert_atomic_type(*p); \
> +	RISCV_FENCE(rw,w);                  \
> +	WRITE_ONCE(*p, v);                  \

Nit: Can the trailing backslashes be aligned, please?

> +} while (0)
> +
> +#define __smp_load_acquire(p)           \
> +({                                      \
> +    typeof(*p) ___p1 = READ_ONCE(*p);   \

Hmm, yet more leading underscores, and here surely not needed.

> +    compiletime_assert_atomic_type(*p); \
> +    RISCV_FENCE(r,rw);                  \
> +    ___p1;                              \
> +})
> +*/
> +
> +static inline unsigned long local_save_flags(void)
> +{
> +    return csr_read(sstatus);
> +}
> +
> +static inline void local_irq_enable(void)
> +{
> +    csr_set(sstatus, SSTATUS_SIE);
> +}
> +
> +static inline void local_irq_disable(void)
> +{
> +    csr_clear(sstatus, SSTATUS_SIE);
> +}
> +
> +#define local_irq_save(x)                           \
> +({                                                  \
> +    x = csr_read_clear(CSR_SSTATUS, SSTATUS_SIE);   \
> +    local_irq_disable();                            \
> +})
> +
> +static inline void local_irq_restore(unsigned long flags)
> +{
> +	csr_set(CSR_SSTATUS, flags & SSTATUS_SIE);
> +}
> +
> +static inline int local_irq_is_enabled(void)
> +{
> +    unsigned long flags = local_save_flags();
> +
> +    return flags & SSTATUS_SIE;

SSTATUS_SIE doesn't even happen to be 1, so I think you're better off
adding != 0, unless you would do as I think I had suggested before and
have the function return bool right away.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:15:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:15:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649957.1015145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBG5i-0003o6-NR; Thu, 07 Dec 2023 15:15:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649957.1015145; Thu, 07 Dec 2023 15:15: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 1rBG5i-0003nz-IF; Thu, 07 Dec 2023 15:15:06 +0000
Received: by outflank-mailman (input) for mailman id 649957;
 Thu, 07 Dec 2023 15:15: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 1rBG5h-0003nZ-DJ; Thu, 07 Dec 2023 15:15: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 1rBG5h-0005uC-7z; Thu, 07 Dec 2023 15:15: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 1rBG5g-00024R-Q2; Thu, 07 Dec 2023 15:15:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBG5g-0007JI-PX; Thu, 07 Dec 2023 15:15: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=6iVqOqP/fZWrDtqnCVtRwUpxYMjRxtgyX+akAk9IFx8=; b=6nLjLxcY0PE2NdvZ3fR2eZ5pV4
	0bGqXtFSPS309yTKi/U063yyRYu3vbCsQAJBovAddFDujLN8rdLNIqFc5Afd6rai0NAhWCQ7waLaI
	0B/pCGD/CU6ToYh00BmPHTPm6xqo0nGXfkV6RZxtuxF9i0nFtXYxNjphAJVJO25pFVcQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184019-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184019: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-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-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=a949a53e1390462db101238c548b94d8600f9d11
X-Osstest-Versions-That:
    libvirt=cab49d394f4dee9a780b2702590b03e837e06892
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 15:15:04 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184003
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184003
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184003
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              a949a53e1390462db101238c548b94d8600f9d11
baseline version:
 libvirt              cab49d394f4dee9a780b2702590b03e837e06892

Last test of basis   184003  2023-12-06 04:20:32 Z    1 days
Testing same since   184019  2023-12-07 04:18:50 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Daniel P. BerrangÃ© <berrange@redhat.com>
  GÃ¶ran Uddeborg <goeran@uddeborg.se>
  Jonathon Jongsma <jjongsma@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   cab49d394f..a949a53e13  a949a53e1390462db101238c548b94d8600f9d11 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:18:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649962.1015156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBG9O-0004e9-7F; Thu, 07 Dec 2023 15:18:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649962.1015156; Thu, 07 Dec 2023 15:18:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBG9O-0004e2-2i; Thu, 07 Dec 2023 15:18:54 +0000
Received: by outflank-mailman (input) for mailman id 649962;
 Thu, 07 Dec 2023 15:18:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBG9M-0004dw-RW
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 15:18:52 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed08ce8b-9513-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 16:18:51 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c0f3a7717so12418785e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 07:18:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 b16-20020a05600c4e1000b0040c310abc4bsm343392wmq.43.2023.12.07.07.18.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 07:18:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed08ce8b-9513-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701962330; x=1702567130; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ueQ7eAPvlFdZ82vf8qwyeAiUQJ7XmotqdujSmoTLeds=;
        b=JecMdPqnSivcRk0ONueFkVuj5rJ79dLkQ28yTfd+N77+v9jcwDofEdm63Lzx0a8RuK
         o3AWu4nerCbImZ/3x91QTctetefCxqO/B3KeB1eR6XFK8foP0v/X8qacqUPiyxTqNNrw
         kwPCtuMChHibrXQQTWubRW7ArCqyRT/uThQ/XsS8vC6H88Ze4ihTKaW0+i7DuNF+cCKI
         U/scsmAaRw7ufHYNSyH9UmKHffsGKcBLzoxm9cBwg02Rjy4fz3OfKnfecGXNXjZ2GGq7
         M02MGUQpPniC1r9J12th4PcsaExVCDYDbw/TbFj6EB49Gl5+LW0o+P27tUaHAyrvWhiH
         wvMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701962330; x=1702567130;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ueQ7eAPvlFdZ82vf8qwyeAiUQJ7XmotqdujSmoTLeds=;
        b=c0t4IsPdsvCbsmoD00ZUyrSGBf9Rc9I6KFhFrMiwdUX5g5mE5UgVvIw39L8wvY9Ttd
         v73hysMayyJnuwJyXay1o6tIRb1T7rueyVH5n1j/PB1EJjVd0T/czN9Q2+/rbgVZqqk3
         L1dwVbml+ZFZ3YJmvXeYYtyTIWD1gdsGDGGkE3Z1rD+nJr8rfIIBVQBh9NV4osemK3ju
         XyQMSBMNwQ/Y8UipdsydJyVj8v4ZtmhG9Akdy/qWP5zyQFFdWZRRoE6unx3hecua55MR
         fhGuxdMRxtIz1ofaE66BY+KlYBNvuffJeFEgOejA14Kf7rs38elqy5/arYj6E4qbIbiK
         GweA==
X-Gm-Message-State: AOJu0YwxxPdj65OY2F2fqfDS7BRcXE/68Ov8arua+brlApPEIUi1h5FI
	wwnFT24GJOLVnCbQ4sHWBDZH
X-Google-Smtp-Source: AGHT+IE9YL8DZDWpyY4ODnA9QJTAQmcFJB33r807FQ20c/wvaylYrpQOBziN2CqNcTFluB0miDbPqg==
X-Received: by 2002:a05:600c:46c8:b0:40b:5e1c:2f9c with SMTP id q8-20020a05600c46c800b0040b5e1c2f9cmr858112wmo.44.1701962330431;
        Thu, 07 Dec 2023 07:18:50 -0800 (PST)
Message-ID: <b8e103d4-dfd7-41cf-91a0-8f7117176113@suse.com>
Date: Thu, 7 Dec 2023 16:18:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/39] xen/riscv: disable unnecessary configs
Content-Language: en-US
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.oleksii.kurochko@gmail.com>
 <fdfda320-b73b-4830-8f1b-d261b02bcdde@suse.com>
 <22fa451f7b165a00082443a35077e98e101c22e4.camel@gmail.com>
 <008d0c66-6816-4d12-9e1f-1878e982f9fc@suse.com>
 <09d24b36380027df21d547de438da10e01eda0e0.camel@gmail.com>
 <4064be07-747e-4b9c-b5da-9935aa13d91f@suse.com>
 <decb178a72c48549d721a7da88459b35ac443f52.camel@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: <decb178a72c48549d721a7da88459b35ac443f52.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.12.2023 15:51, Oleksii wrote:
> On Thu, 2023-12-07 at 15:11 +0100, Jan Beulich wrote:
>> On 07.12.2023 14:44, Oleksii wrote:
>>> On Thu, 2023-12-07 at 11:00 +0100, Jan Beulich wrote:
>>>> On 07.12.2023 10:22, Oleksii wrote:
>>>>> On Tue, 2023-12-05 at 16:38 +0100, Jan Beulich wrote:
>>>>>>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>>>>>>>> The patch also fixes the build script as conf util
>>>>>>>>> expects
>>>>>>>>> to have each config on separate line.
>>>>>>>
>>>>>>> The approach doesn't really scale (it's already odd that
>>>>>>> you
>>>>>>> add
>>>>>>> the
>>>>>>> (apparently) same set four times. There's also zero
>>>>>>> justification
>>>>>>> for
>>>>>>> this kind of an adjustment (as per discussion elsewhere I
>>>>>>> don't
>>>>>>> think
>>>>>>> we should go this route, and hence arguments towards
>>>>>>> convincing
>>>>>>> me
>>>>>>> [and
>>>>>>> perhaps others] would be needed here).
>>>>> I agree that this may not be the best approach, but it seems
>>>>> like
>>>>> we
>>>>> don't have too many options to turn off a config for
>>>>> randconfig.
>>>>>
>>>>> To be honest, in my opinion (IMO), randconfig should either be
>>>>> removed
>>>>> or allowed to fail until most of the functionality is ready.
>>>>> Otherwise,
>>>>> there should be a need to introduce HAS_* or depend on
>>>>> 'SUPPORTED_ARCHS' for each config, or introduce a lot of stubs.
>>>>>
>>>>> Could you please suggest a better option?
>>>>
>>>> As to dropping randconfig tests, I'd like to refer you to Andrew,
>>>> who
>>>> is of the opinion that it was wrong to drop them for ppc. (I'm
>>>> agreeing
>>>> with him when taking a theoretical perspective, but I'm not happy
>>>> with
>>>> the practical consequences.)
>>>>
>>>> As to a better approach: Instead of listing the same set of
>>>> options
>>>> several times, can't there be a template config which is used to
>>>> force
>>>> randconfig to not touch certain settings? In fact at least for
>>>> non-
>>>> randconfig purposes I thought tiny64_defconfig /
>>>> riscv64_defconfig
>>>> already serve kind of a similar purpose. Imo the EXTRA_*CONFIG
>>>> overrides
>>>> are there for at most very few special case settings, not for
>>>> purposes
>>>> like you use them here.
>>> The template will be the really a good option.
>>>
>>> What do you think about the following patch which introduces arch-
>>> specific allrandom.config?
>>>
>>> diff --git a/xen/Makefile b/xen/Makefile
>>> index ca571103c8..cb1eca76c2 100644
>>> --- a/xen/Makefile
>>> +++ b/xen/Makefile
>>> @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
>>> Â # *config targets only - make sure prerequisites are updated, and
>>> descend
>>> Â # in tools/kconfig to make the *config target
>>> Â 
>>> +ARCH_ALLRANDOM_CONFIG :=
>>> $(srctree)/arch/$(SRCARCH)/configs/allrandom.config
>>> +
>>> Â # Create a file for KCONFIG_ALLCONFIG which depends on the
>>> environment.
>>> Â # This will be use by kconfig targets
>>> allyesconfig/allmodconfig/allnoconfig/randconfig
>>> Â filechk_kconfig_allconfig = \
>>> Â Â Â Â  $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo
>>> 'CONFIG_XSM_FLASK_POLICY=n';) \
>>> -Â Â Â  $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
>>> +Â Â Â  $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
>>> +Â Â Â  $(if $(wildcard $(ARCH_ALLRANDOM_CONFIG)), cat
>>> $(ARCH_ALLRANDOM_CONFIG);) ) \
>>> Â Â Â Â  :
>>
>> Something along these lines may be okay, but why would the name be
>> "allrandom" when the config is used elsewhere as well?
> The naming is not optimal. "unused.config" or "ignored.config" would be
> a better choice.

I don't think "unused" or "ignored" are properly describing what such
a file would hold. I was vaguely playing with "fixed" or "forced", fwiw.

>>  Further, besides
>> keeping randconfig and all*config from creating unusable configs, it
>> will at least want considering whether in other cases that set of
>> fixed
>> values shouldn't be used as well then.
> If I understood you correctly, the other case is *defconfig targets.
> Therefore, the following targets might also need to be updated by
> merging "unused.config" with {defconfig,%_defconfig}:
> 
> 
> defconfig: $(obj)/conf
> ifneq ($(wildcard
> $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
> 	@$(kecho) "*** Default configuration is based on
> '$(KBUILD_DEFCONFIG)'"
> 	$(Q)$< $(silent) --
> defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
> else
> 	@$(kecho) "*** Default configuration is based on target
> '$(KBUILD_DEFCONFIG)'"
> 	$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG)
> endif
> 
> %_defconfig: $(obj)/conf
> 	$(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@
> $(Kconfig)
> 
> However, I believe it's possible that for *defconfig, a configuration
> should be set to N, but in randconfig, it is still acceptable to be set
> to Y.

I'm not sure *defconfig should be affected by what's in the "locked
down" config, assuming they're consistent with what may not be changed.
But of course one could also model this incrementally, such that
defconfigs don't need to repeat what the "locked down" one has.

Anyway, I think this needs sending an RFC with the right people in Cc,
such that this can be properly discussed.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:22:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:22:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.649965.1015164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGD9-0008Sl-KT; Thu, 07 Dec 2023 15:22:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 649965.1015164; Thu, 07 Dec 2023 15: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 1rBGD9-0008Se-Hl; Thu, 07 Dec 2023 15:22:47 +0000
Received: by outflank-mailman (input) for mailman id 649965;
 Thu, 07 Dec 2023 15:22: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=YqrU=HS=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rBGD8-0008SY-7g
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 15:22:46 +0000
Received: from m226-146.mailgun.net (m226-146.mailgun.net [159.135.226.146])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 7744c2a8-9514-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 16:22:43 +0100 (CET)
Received: from mg.gitlab.com (72.90.74.34.bc.googleusercontent.com
 [34.74.90.72]) by
 42c01433f388 with SMTP id 6571e3410710312bfb00c977 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Thu, 07 Dec 2023 15:22:41 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 7744c2a8-9514-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701962561; x=1701969761; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=wkVKwzquwv0EYOwtbmwW/8jYWEv8xptIGllB4hVmKaM=;
 b=RyxXfY2bkOzkyZM1QX4MBwMRF79SEscKWa4JC7a8TT8CC4PTV4E8pd6ue3lJ7hZVE3+WpTIIiISF7ymHjWbxsx7TMQ5iWDSyYn2Twot7qIvzsxK1NlQFNLnICejXJL/9KefzMUNvcefHCJT/0taqB7kVDjVzAE9iUSmKUyfiaPY=
X-Mailgun-Sending-Ip: 159.135.226.146
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Thu, 07 Dec 2023 15:22:41 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6571e3416f7f2_2c94e8011094a@gitlab-sidekiq-catchall-v2-64cdcd9d47-xmfgl.mail>
Subject: xen | Failed pipeline for staging | 02d0a615
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6571e34160fe8_2c94e80110852";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1098841648
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6571e34160fe8_2c94e80110852
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1098841648 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 02d0a615 ( https://gitlab.com/xen-project/xen/-/commit/02d0a615b32d03702f79807fa5e88f0cf78dde84 )
Commit Message: xen/arm: bootfdt: Check return code of device_t...
Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
Committed by: Julien Grall


Pipeline #1098841648 ( https://gitlab.com/xen-project/xen/-/pipelines/1098841648 ) triggered by Ganis ( https://gitlab.com/ganis )
had 12 failed jobs.

Job #5702575679 ( https://gitlab.com/xen-project/xen/-/jobs/5702575679/raw )

Stage: build
Name: archlinux-gcc-debug
Job #5702575693 ( https://gitlab.com/xen-project/xen/-/jobs/5702575693/raw )

Stage: build
Name: debian-bookworm-gcc
Job #5702575762 ( https://gitlab.com/xen-project/xen/-/jobs/5702575762/raw )

Stage: build
Name: opensuse-tumbleweed-gcc
Job #5702575709 ( https://gitlab.com/xen-project/xen/-/jobs/5702575709/raw )

Stage: build
Name: ubuntu-trusty-gcc
Job #5702575676 ( https://gitlab.com/xen-project/xen/-/jobs/5702575676/raw )

Stage: build
Name: archlinux-gcc
Job #5702575695 ( https://gitlab.com/xen-project/xen/-/jobs/5702575695/raw )

Stage: build
Name: debian-bookworm-gcc-debug
Job #5702575703 ( https://gitlab.com/xen-project/xen/-/jobs/5702575703/raw )

Stage: build
Name: debian-bookworm-32-gcc-debug
Job #5702575763 ( https://gitlab.com/xen-project/xen/-/jobs/5702575763/raw )

Stage: build
Name: opensuse-tumbleweed-gcc-debug
Job #5702575769 ( https://gitlab.com/xen-project/xen/-/jobs/5702575769/raw )

Stage: test
Name: build-each-commit-gcc
Job #5702575586 ( https://gitlab.com/xen-project/xen/-/jobs/5702575586/raw )

Stage: build
Name: alpine-3.18-gcc
Job #5702575587 ( https://gitlab.com/xen-project/xen/-/jobs/5702575587/raw )

Stage: build
Name: alpine-3.18-gcc-debug
Job #5702575712 ( https://gitlab.com/xen-project/xen/-/jobs/5702575712/raw )

Stage: build
Name: ubuntu-trusty-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 02d0a615</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1098841648 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/02d0a615b32d03702f=
79807fa5e88f0cf78dde84" style=3D"color: #3777b0; text-decoration: none;">=

02d0a615
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: bootfdt: Check return code of device_t...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/47e2f2ac4637bce0cc380dba59a9412f?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/orzelmichal" style=3D"color=
: #333333; text-decoration: none;">
Michal Orzel
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1098841648">#1098841648</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 12 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575679" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575693" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575762" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575709" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575676" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575695" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575703" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575763" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575769" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575586" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575587" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5702575712" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6571e34160fe8_2c94e80110852--


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:28:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:28:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650001.1015174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGIO-0001GY-A8; Thu, 07 Dec 2023 15:28:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650001.1015174; Thu, 07 Dec 2023 15:28:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGIO-0001GR-7R; Thu, 07 Dec 2023 15:28:12 +0000
Received: by outflank-mailman (input) for mailman id 650001;
 Thu, 07 Dec 2023 15:28: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=3y0a=HS=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBGIM-0001FA-KB
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 15:28:10 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20603.outbound.protection.outlook.com
 [2a01:111:f400:7eb2::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 389de1f1-9515-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 16:28:08 +0100 (CET)
Received: from DM6PR01CA0021.prod.exchangelabs.com (2603:10b6:5:296::26) by
 PH7PR12MB5688.namprd12.prod.outlook.com (2603:10b6:510:130::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.27; Thu, 7 Dec 2023 15:28:04 +0000
Received: from DS1PEPF0001709D.namprd05.prod.outlook.com
 (2603:10b6:5:296:cafe::b7) by DM6PR01CA0021.outlook.office365.com
 (2603:10b6:5:296::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Thu, 7 Dec 2023 15:28:04 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS1PEPF0001709D.mail.protection.outlook.com (10.167.18.107) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Thu, 7 Dec 2023 15:28:03 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 7 Dec
 2023 09:28:03 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 7 Dec
 2023 09:28:03 -0600
Received: from [10.71.193.58] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Thu, 7 Dec 2023 09:28:01 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 389de1f1-9515-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=i+CHjTPBCYvmJeCLDzc1kKPRuwSzlFHQSTT1TCogrNgW9EHaePyylY0kkAG70NP/N/k7/RJz+C22yxvzuGdQltCJZ49GDaJfBK3ioB+fsCwqA1xDf0Vu5/wrVqcf28H6EgRKvB+3/qUxgsOyXErn5ZSHCby+Wlu/88PBcrrLMiQMXtY6nVBIow6VKHSNxH6KJOxB/vinPSU4ToDUToqEKBKNlWx84Ox8P8XB1K4NLXCsmouF/WowQdT8lBOwqTjKH9Bqfe9pRVcOyRZdT+lRkfq/wNfpcpBsqVMUcuI4YWaWfuICGG7athktZJMBSxUMIONE+3ZPb3Eu81+MjiZLQA==
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=dpMG63mrgN/tJWzH5iLAK5Euh3C5zliYN2vIz1Zx/nc=;
 b=jVy82q6xwN7wNmbbQJ+2gm+Ww7pAfJ4xWHOxMx/YXP8xavIllwCNuMHkqXtdjyC4tthe92L39AM4bw2DrunzmsfL9LlWzFDFuTSdObFjos82xY9EP0Dcjjboq45Fj70KPgwjpD48wmu0rHPu7IB7BnB+DLe391ji4iBrohQCX4GElJrQehazG2LsggjZ6782Nq2OTKLICLkd1Zqf4J7ickx2nppYPQcdP/L0Ty4Z8Gj4OcHlZvnB1u0BTHh19LEOns3sYLCCKRKhPN+GnPVVE2BPpEdmJG3WyslUQJ2Ps813ESbOvfgsAkIm9yTVZDqAdQDJKuxLRaR8w2ygKR4uUA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dpMG63mrgN/tJWzH5iLAK5Euh3C5zliYN2vIz1Zx/nc=;
 b=X0Yc/XzaCuFqgbthVe98kCHuJ3seagq8M65r2qivTJQIxs4VU2wtCc/9TvzfpnebcyxOIG+2eXKQKJePggXGWvQaJ3wXHVaP94IuPO8Qn2ScpFpv3ec+/pjHABhwZyuyo+mSJYBPvzLzArQXDCk8eyxpfGinTHdGI204OIafOs0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <9f4fc7b3-805b-4adb-a482-4bdbaa0f2aff@amd.com>
Date: Thu, 7 Dec 2023 16:28:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 11/11] xen/arm: create another /memory node for static
 shm
Content-Language: en-US
To: Penny Zheng <Penny.Zheng@arm.com>, <xen-devel@lists.xenproject.org>
CC: <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-12-Penny.Zheng@arm.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231206090623.1932275-12-Penny.Zheng@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF0001709D:EE_|PH7PR12MB5688:EE_
X-MS-Office365-Filtering-Correlation-Id: 9603446d-bede-4016-75f6-08dbf7391ae5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	brEJh3zTWo+efe5STKJK/uK055VjaeRx0MMf6xyHQEbeVmmnhSCDYLJ7z7GHRvlKe1AwG0AdxSKEt/2CCGTd6qhUxdkVrNfeuEPjGiiKda7JV+gfoAF/UCm86SAoPm71iuGNaSFk6USFL40JiXDCJ+zcB31hKbqzIVH49TYSkPKnm+Cuvh7isgTtfO8ooWmgGXkQnDGD2cGVAVXSOJfz0EJYGJoufxy5LrPa2mj1xF1JeaR/50tEMQgTOPM++izCKxD6+qWL1JWD29hPJY5J615IIfO/a+fvV5Iy9KgHA4dt3p6G0XqDdvuZi8UbIv6mGY6x2xWL0s9rkl30BvNiUhf8oJhUPLIX4y0+bBA2CKAceA6pc//CgySFJT+/YZQsW1uGj4PGcV8+UzXyhdxBdkcAUGv+vB3JMUtuuQGHu83+Nwadvar8bVJ8HQoRmYxHs+QnEXA1Ucs2FYtLeYwYxUvYwZ+1fY5G7SKfNsu/wU/C89jm1d6KzgoOWFtcpCU5lE6bJ8pS8hZ/dObmPvSuGKcIS1928GAcgtRn/d174CMgWS894A0XfAH7E7Y+gdehilw5utdIvofKc3cwRFKnQfvNhh/Loq4/LIbsXJKEv35NXmrCp6qIHWiAKlnPJEMwVVC7ruk+egy9MN6DyKifmHPW5muTAnnO/rHcPk8qF++dnKZ29/zRO31RUArUicUPtpPH47B6Zvz2sk8LyC5rWVWLyeO1HSlqUx9xQ/5j+LYDcZxiFCKgz3UUJiNVNkWkrTYkAlr1N9Eu1rKmQqiiftgaDPiejtvFjKizmkKwf1aBVQfm8ADjUTQfi17o7YQS
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(346002)(39860400002)(136003)(396003)(230922051799003)(1800799012)(82310400011)(64100799003)(451199024)(186009)(36840700001)(40470700004)(46966006)(40480700001)(31686004)(40460700003)(36860700001)(41300700001)(5660300002)(2906002)(36756003)(16576012)(8676002)(316002)(4326008)(336012)(81166007)(110136005)(356005)(426003)(478600001)(53546011)(2616005)(54906003)(86362001)(70586007)(31696002)(82740400003)(26005)(70206006)(8936002)(44832011)(47076005)(83380400001)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2023 15:28:03.8093
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9603446d-bede-4016-75f6-08dbf7391ae5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF0001709D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5688

Hi Penny,

On 06/12/2023 10:06, Penny Zheng wrote:
> 
> 
> Static shared memory region shall be described both under /memory and
> /reserved-memory.
> 
> We introduce export_shm_memory_node() to create another /memory node to
> contain the static shared memory ranges.
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> 
> ---
> v3 -> v4:
> new commit
> ---
> v4 -> v5:
> rebase and no changes
> ---
>  xen/arch/arm/dom0less-build.c           |  8 ++++++++
>  xen/arch/arm/domain_build.c             |  8 ++++++++
>  xen/arch/arm/include/asm/static-shmem.h | 10 ++++++++++
>  xen/arch/arm/static-shmem.c             | 19 +++++++++++++++++++
>  4 files changed, 45 insertions(+)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index ac096fa3fa..870b8a553f 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -645,6 +645,14 @@ static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
>      if ( ret )
>          goto err;
> 
> +    /* Create a memory node to store the static shared memory regions */
> +    if ( kinfo->shminfo.nr_banks != 0 )
There is no need for this check to be repeated every time export_shm_memory_node is used.
When the feature is disabled, export_shm_memory_node will return 0 anyway.
Furthermore, there is no need for kinfo->shminfo exposure. Please move the check to the function itself.

Also, I think both this and previous patch could be moved towards the beginning of the series.
They are not related to other things you do in the series.


> +    {
> +        ret = export_shm_memory_node(d, kinfo, addrcells, sizecells);
> +        if ( ret )
> +            goto err;
> +    }
> +
>      ret = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells, kinfo);
>      if ( ret )
>          goto err;
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index f098678ea3..4e450cb4c7 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -1873,6 +1873,14 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
>                  return res;
>          }
> 
> +        /* Create a memory node to store the static shared memory regions */
> +        if ( kinfo->shminfo.nr_banks != 0 )
> +        {
> +            res = export_shm_memory_node(d, kinfo, addrcells, sizecells);
> +            if ( res )
> +                return res;
> +        }
> +
>          /* Avoid duplicate /reserved-memory nodes in Device Tree */
>          if ( !kinfo->resv_mem )
>          {
> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
> index 6cb4ef9646..385fd24c17 100644
> --- a/xen/arch/arm/include/asm/static-shmem.h
> +++ b/xen/arch/arm/include/asm/static-shmem.h
> @@ -38,6 +38,10 @@ int make_shm_memory_node(const struct domain *d,
>                           void *fdt,
>                           int addrcells, int sizecells,
>                           const struct kernel_info *kinfo);
> +
> +int export_shm_memory_node(const struct domain *d,
> +                           const struct kernel_info *kinfo,
> +                           int addrcells, int sizecells);
>  #else /* !CONFIG_STATIC_SHM */
> 
>  static inline int make_resv_memory_node(const struct domain *d, void *fdt,
> @@ -86,6 +90,12 @@ static inline int make_shm_memory_node(const struct domain *d,
>      return 0;
>  }
> 
> +static inline int export_shm_memory_node(const struct domain *d,
> +                                         const struct kernel_info *kinfo,
> +                                         int addrcells, int sizecells)
> +{
> +    return 0;
> +}
>  #endif /* CONFIG_STATIC_SHM */
> 
>  #endif /* __ASM_STATIC_SHMEM_H_ */
> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
> index bfce5bbad0..e583aae685 100644
> --- a/xen/arch/arm/static-shmem.c
> +++ b/xen/arch/arm/static-shmem.c
> @@ -505,6 +505,25 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
>      return 0;
>  }
> 
> +int __init export_shm_memory_node(const struct domain *d,
> +                                  const struct kernel_info *kinfo,
> +                                  int addrcells, int sizecells)
> +{
> +    unsigned int i = 0;
> +    struct meminfo shm_meminfo;
> +
> +    /* Extract meminfo from kinfo.shminfo */
> +    for ( ; i < kinfo->shminfo.nr_banks; i++ )
> +    {
> +        shm_meminfo.bank[i].start = kinfo->shminfo.bank[i].membank.start;
> +        shm_meminfo.bank[i].size = kinfo->shminfo.bank[i].membank.size;
> +        shm_meminfo.bank[i].type = MEMBANK_DEFAULT;
Is all of this really needed? This series introduces so many structures to avoid using
meminfo but at the end we still need to use it. The amount of meminfo like structures copying
done in this series worries me a bit.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:37:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650007.1015185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGRR-0003pM-4m; Thu, 07 Dec 2023 15:37:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650007.1015185; Thu, 07 Dec 2023 15:37:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGRR-0003pF-1x; Thu, 07 Dec 2023 15:37:33 +0000
Received: by outflank-mailman (input) for mailman id 650007;
 Thu, 07 Dec 2023 15:37:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBGRQ-0003p7-3w
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 15:37:32 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 887e603c-9516-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 16:37:30 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c2308faedso11213715e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 07:37:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g11-20020a05600c310b00b004090798d29csm37973wmo.15.2023.12.07.07.37.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 07:37:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 887e603c-9516-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701963450; x=1702568250; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=aU18r7pJhdouh6dLMlGHN3SET1Bd8uMHRetUqhiyRTE=;
        b=Z72HzBKuDtYzMJpx1mOCUEH+Cu1gCtM7dQZxyGyshwS6LO18OGnJ4xIpW2BFhx3qHg
         JK791hF/NAEV2+FCiVnJGdmtMwexIodX0OjrAfT1yfMKWMAwx1iKXe2qvzyjfNjpqDCj
         WRLHFFWzQHtvgoc7kKBWc542baFU7UddxoPlrKKuW/cPWSRNHZQuBqRDSmuSUgqb33m+
         i1cBjZ/LQBfAAAX4zRlLNfrANvpquQDt1j0qk4xRo3FiWHPzSyI9xa9u5aav5npUVPC8
         a5VsA2hbWFyfH960YEUBGjUcvAEjI1RKpFq6V3nTv2u6TVeiORBfd2585K6OlTOYvryT
         YC8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701963450; x=1702568250;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=aU18r7pJhdouh6dLMlGHN3SET1Bd8uMHRetUqhiyRTE=;
        b=qoto9KuWWs/Eksg7kDz7nyfiON8dpsi8vyPrnKqAb6lndHjzOfOamo02jw4imQjU3i
         InaUfZ0iLZEndmrbrBQmvqobOCsmS4jPh+7hboTKnqqS2gOAb3JO5+7S0eHzXsUuDhkv
         bRk1dTugd3CYn6dJxdbW9YByimgW5FAMwdRhKPmmuasqgauXXYbozylS5AuhqgCiUOym
         6r7Vzgpm7HJGbPw3RlPzVlN8BTx+PRkrUIhLcfcGOp7wknIpiTAC+kyM/ke4pasJ+3Ws
         zzXW19hc0KOXF7uBCHCB5cnZCrNF8tJ/GQzhbU4PkikEFw+W/FucCdCSUlX0ZLNNR/yX
         DPpQ==
X-Gm-Message-State: AOJu0Yx7CgnWuWiDXXSjsVdLKCt2BBlmhQnxEJPKqFb4WFHpKaUjw7cp
	uko/XKr0UFqjJAzh0eQLiI9i
X-Google-Smtp-Source: AGHT+IHY3c4IDdWOk5rdJAAB6ZOEYrN4UPK5yorsSXLmTfN6W2maRoiU0ODA+a1xbX4+C5SvkEs14w==
X-Received: by 2002:a1c:7214:0:b0:40b:5e21:d369 with SMTP id n20-20020a1c7214000000b0040b5e21d369mr1683310wmc.114.1701963450224;
        Thu, 07 Dec 2023 07:37:30 -0800 (PST)
Message-ID: <fff80a7f-75f7-4e91-be1a-bc7fd683b94d@suse.com>
Date: Thu, 7 Dec 2023 16:37:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 14/39] xen/riscv: introduce bitops.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <a9c69e17fe073551e7007242d00b74b6333ce98d.1700761381.git.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: <a9c69e17fe073551e7007242d00b74b6333ce98d.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

So this looks to have been taken from Linux, which could do with saying
(including which version or most recent commit). It may e.g. justify you
using tab indentation here, albeit ...

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/bitops.h
> @@ -0,0 +1,288 @@
> +/* 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>
> +
> +#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 __set_bit(n,p)          set_bit(n,p)
> +#define __clear_bit(n,p)        clear_bit(n,p)

... then please consistently. Other style related remarks made on the
system.h patch apply here as well (unless again there's a goal of
keeping the diff to the Linux original small; yet then I guess the
delta to the Linux file is already pretty large).

> +/* Based on linux/include/asm-generic/bitops/find.h */
> +
> +#ifndef find_next_bit
> +/**
> + * find_next_bit - find the next set bit in a memory region
> + * @addr: The address to base the search on
> + * @offset: The bitnumber to start searching at
> + * @size: The bitmap size in bits
> + */
> +extern unsigned long find_next_bit(const unsigned long *addr, unsigned long
> +		size, unsigned long offset);
> +#endif
> +
> +#ifndef find_next_zero_bit
> +/**
> + * find_next_zero_bit - find the next cleared bit in a memory region
> + * @addr: The address to base the search on
> + * @offset: The bitnumber to start searching at
> + * @size: The bitmap size in bits
> + */
> +extern unsigned long find_next_zero_bit(const unsigned long *addr, unsigned
> +		long size, unsigned long offset);
> +#endif
> +
> +/**
> + * find_first_bit - find the first set bit in a memory region
> + * @addr: The address to start the search at
> + * @size: The maximum size to search
> + *
> + * Returns the bit number of the first set bit.
> + */
> +extern unsigned long find_first_bit(const unsigned long *addr,
> +				    unsigned long size);
> +
> +/**
> + * find_first_zero_bit - find the first cleared bit in a memory region
> + * @addr: The address to start the search at
> + * @size: The maximum size to search
> + *
> + * Returns the bit number of the first cleared bit.
> + */
> +extern unsigned long find_first_zero_bit(const unsigned long *addr,
> +					 unsigned long size);

Looking over the titles of the rest of the series, I can't spot where
these are going to be implemented. The again maybe you indeed can get
away without those, at least initially.

> +#define ffs(x) ({ unsigned int __t = (x); fls(__t & -__t); })

This wants to use ISOLATE_LSB() now.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:39:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:39:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650009.1015194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGT3-0004vz-Ep; Thu, 07 Dec 2023 15:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650009.1015194; Thu, 07 Dec 2023 15: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 1rBGT3-0004vs-Bt; Thu, 07 Dec 2023 15:39:13 +0000
Received: by outflank-mailman (input) for mailman id 650009;
 Thu, 07 Dec 2023 15: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBGT2-0004u3-1h
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 15:39:12 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3ad1c13-9516-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 16:39:10 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40b5155e154so13358305e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 07:39:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g11-20020a05600c310b00b004090798d29csm37973wmo.15.2023.12.07.07.39.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 07:39:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3ad1c13-9516-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701963549; x=1702568349; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1fN4S+XE+2ZmI4wvGXwI+SQIIXHOdn1f/noK2Ezp/4w=;
        b=cFuX9bdP0pogBQtvnTVVdCetjd71mmghTBJgkxzTuH9teHn2vRdLIiOeL3EowMkuah
         S3iWzeQbGO5QYffzXScgPhiaZ7EyfqkXeKBxakXg8I9zWCdCteQ7Dg5J+LkDUrf0DLwR
         IvwltPxUUUICC8Lh4mBHhxulxsD5sDMoHgUgMBuQ5eOJp0d/CHI767kCh+2cmNJ2jYbe
         GUZ2Tk60lYawtBpe8aCCZXN7I9VFyOKhTjc4GEveFOHjX8jMEBicWB74QmQKBl87mnjU
         rX0TzPR2DK2D3WxQygobKpNpPmk5ejQTRCeznuNC7uhC4qou+88Bf2Z+7Cv25AiRNZQZ
         uGnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701963549; x=1702568349;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1fN4S+XE+2ZmI4wvGXwI+SQIIXHOdn1f/noK2Ezp/4w=;
        b=droJhKxJwEP8dSX/LlZvsxSkJg6Bj1MgqQZ2xQdw0td2K/ZslmVlkG9TBciVv8Kx3m
         /D60doFtzC6ZSEmbeKAPakZr8/ndP2NOlr/vOzPlPm97AJVZZAPz0J1L5g/V7eR0tPNL
         1cxKS/aLBtm0jHipqBuy9C4Tx+qKIvyyNo2AP3rkqRD71gtNRBALdlmiYGea7M4HKE3B
         Kt8FhW4Jf42KJ+gq4KQDOaj3y7zpqCtfwUVaVbbw+A/6O8O7VkXwWxqA8NZc2O0AwO6y
         Srs0Enc1viQPh2gn1a3z0fyAVkqVyKgOmxE5zOh1CYygvCgg+fhNPe+jhPm6/ZvfNxlu
         D+Ew==
X-Gm-Message-State: AOJu0YweI55g8kMtlSwKLFucIjNsm1fzg5JxM2+abErPmPZbCVUXsG6r
	wR3Ea5kJykXnVu4v6Mtxr8Bm
X-Google-Smtp-Source: AGHT+IHeEPWBlcuVY9DuhJgf0xFCUbk/h5bC2ga2o1MQFFvbCucmvTq/t9VIGQjX55tpTeukzaR7KQ==
X-Received: by 2002:a05:600c:3155:b0:40b:4c39:b4b with SMTP id h21-20020a05600c315500b0040b4c390b4bmr1625892wmo.0.1701963549627;
        Thu, 07 Dec 2023 07:39:09 -0800 (PST)
Message-ID: <8fd89180-ecd6-4ef9-bd00-845ebac04c69@suse.com>
Date: Thu, 7 Dec 2023 16:39:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 15/39] xen/riscv: introduce flushtlb.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <12a698e62766be7dfdac23923d7cdcb3b9b2d52e.1700761381.git.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: <12a698e62766be7dfdac23923d7cdcb3b9b2d52e.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Again, with an SPDX header
Acked-by: Jan Beulich <jbeulich@suse.com>




From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:43:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:43:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650013.1015205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGXL-0007qA-VL; Thu, 07 Dec 2023 15:43:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650013.1015205; Thu, 07 Dec 2023 15:43:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGXL-0007q3-SG; Thu, 07 Dec 2023 15:43:39 +0000
Received: by outflank-mailman (input) for mailman id 650013;
 Thu, 07 Dec 2023 15: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=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBGXK-0007px-1D
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 15:43:38 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6223c77d-9517-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 16:43:36 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c236624edso11594645e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 07:43:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d12-20020a05600c3acc00b0040b5377cf03sm2324246wms.1.2023.12.07.07.43.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 07:43:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6223c77d-9517-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701963815; x=1702568615; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=bGIrK/ZpBNgnnjfCkInNrRNGFnN7LiTCBDDt0ltX3Qo=;
        b=DLXHQZyyJSgoSpKLRGInDdDwk6iSPtqGx93mah2NySvZHy6WIi0p5gTZEUiijcYP55
         37gQ2Hlh8mbwPTmAPcADMjWQLIGEKuDfV8BSi2gIQVDHqkg6ljpZEvMgIkNUo5magDWM
         1sJlIGpm9+EdRvJ3LsQnsoUIK4EIYWI0e7insYJT+O4UPi7IYg0RnYRA0w1ldDDGwx+r
         VkrZmwac6F8vpCFeeTWTDd0bBtQxT3lWlQiHzw/dNH/rFIeRfsSNwemPAHGt9BA7rDTE
         aBGcygDnckVrkhOZ5LIo1Z7ndixfzCkAUGChZetQr9yZxBIcfKzNn/tdpkTJ61Ux9bPw
         QfXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701963815; x=1702568615;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=bGIrK/ZpBNgnnjfCkInNrRNGFnN7LiTCBDDt0ltX3Qo=;
        b=Ex+bohG3HrzJRy0GjSA5G8Ccn+X3KQtE8/axRRFqWlmZCNYy7U6Smie3inHQjJda33
         mY7r7iP/mfC9mKlKdKnHOtWAW2QVcMh0iORES3DPxMAuGofmruTtkmlu7lY/1H70v7Xu
         fHGMe83hHK711wNwb5TQmWcbTPPE7gen7xCOldYCKeYK2R4eVtpfoyv2e2eRoklW6t6d
         yhk+PWR6nWQtRayU8QekgiTVuagtaJuE3R2F1bQDgJ47d7LX8sL1lpZNyOFMJpVlkU/H
         qQSX/RL0y5gYwThmoO3WkC57bKCLvrGvF5To/5QZeKlEjbMkQnVAji+Nf7rJd+EEWbA6
         YqUg==
X-Gm-Message-State: AOJu0Yx+jVGFdwK5BVtTbxtLf+aKhJ4WMy6crcncTnKdUNNZjwC+5XKh
	rpou59hSJ9JCbFeItXIdMzex
X-Google-Smtp-Source: AGHT+IF5u5hWnAHrUWmzJJE4eySStr/XQt+y3gNvf1ZGHYDESVQNhyY6Cb9NgC5zzwr0UxXEssWtCw==
X-Received: by 2002:a05:600c:b46:b0:40c:93f:5da2 with SMTP id k6-20020a05600c0b4600b0040c093f5da2mr1632612wmr.33.1701963815382;
        Thu, 07 Dec 2023 07:43:35 -0800 (PST)
Message-ID: <4e21bb44-5410-4676-a7a8-96f1d1729c27@suse.com>
Date: Thu, 7 Dec 2023 16:43:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 16/39] xen/riscv: introduce asm/smp.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <39cc57e443d2df432f90361204c9edd802fcc320.1700761381.git.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: <39cc57e443d2df432f90361204c9edd802fcc320.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/smp.h
> @@ -0,0 +1,23 @@
> +#ifndef __ASM_RISCV_SMP_H
> +#define __ASM_RISCV_SMP_H
> +
> +#ifndef __ASSEMBLY__
> +#include <xen/cpumask.h>
> +#include <xen/percpu.h>
> +#endif

If you want this to be possible to include from assembly files (I don't
know why you would want that), ...

> +DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_mask);
> +DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);

... these two would also need to live inside the #ifdef. Otherwise the
#ifdef wants dropping.

> +#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))

Seeing this is now the 4th instance, I guess we want to move it to
xen/smp.h. I'll try to remember making a patch.

> +/*
> + * Do we, for platform reasons, need to actually keep CPUs online when we
> + * would otherwise prefer them to be off?
> + */
> +#define park_offline_cpus false
> +
> +/* TODO: need to be implemeted */
> +#define smp_processor_id() (0)
> +
> +#endif
> \ No newline at end of file

You want to take care of this.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:44:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:44:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650016.1015215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGXn-0008Ij-AY; Thu, 07 Dec 2023 15:44:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650016.1015215; Thu, 07 Dec 2023 15:44: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 1rBGXn-0008Ic-7h; Thu, 07 Dec 2023 15:44:07 +0000
Received: by outflank-mailman (input) for mailman id 650016;
 Thu, 07 Dec 2023 15:44: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 1rBGXm-0008IK-Ik; Thu, 07 Dec 2023 15:44: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 1rBGXm-0006OZ-FQ; Thu, 07 Dec 2023 15:44: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 1rBGXm-0002pL-3v; Thu, 07 Dec 2023 15:44:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBGXm-0008Bu-3V; Thu, 07 Dec 2023 15:44: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=TRV88WnRS9/VVuT5mFAm0P2hmqat59diY98+KyG7ybA=; b=1VausAbRSgGyMCYQueN8B5lwlX
	rahxFIul+RZMNBj9i8E+5zsDVtdTeR4VyAGPadojyPTMhNJWjiFjCEw08SSrtCIKFSqFtSi0Tw21x
	RWV4aCgyJCDgaEvbyNt03zw11gPTniY7jJ1TivDTJFINocV/4sqfH9IZln4Oqmtxe0VE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184025-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184025: 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=02d0a615b32d03702f79807fa5e88f0cf78dde84
X-Osstest-Versions-That:
    xen=dbe69e1c8555b40a43cde482615501eb8515ab80
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 15:44:06 +0000

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

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                  02d0a615b32d03702f79807fa5e88f0cf78dde84
baseline version:
 xen                  dbe69e1c8555b40a43cde482615501eb8515ab80

Last test of basis   184022  2023-12-07 08:00:34 Z    0 days
Testing same since   184025  2023-12-07 13:02:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  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
   dbe69e1c85..02d0a615b3  02d0a615b32d03702f79807fa5e88f0cf78dde84 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 15:57:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 15:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650022.1015226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBGl0-000489-Gz; Thu, 07 Dec 2023 15:57:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650022.1015226; Thu, 07 Dec 2023 15: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 1rBGl0-000482-CK; Thu, 07 Dec 2023 15:57:46 +0000
Received: by outflank-mailman (input) for mailman id 650022;
 Thu, 07 Dec 2023 15:57:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+CYm=HS=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBGky-00046Q-RV
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 15:57:44 +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 5a85e43a-9519-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 16:57:42 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40b27726369so12330765e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 07:57:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g18-20020a5d5552000000b003332faefd86sm1774234wrw.0.2023.12.07.07.57.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 07:57:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a85e43a-9519-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1701964661; x=1702569461; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=/YOZzONOa1915WtEAK5MR1LS6lwGZuhG727bdz++o/w=;
        b=PLf1l1WcNRLMlQyHoe+ehWYliVnYAyDR8GQRl3oHIieonW+cqHfhD8N8o7KSY/rVJY
         xH8f6hJOAFYT8DAOqVUpgZ6CLEKEFj9J0sNZenNNxkFEGdk9mOQbYt5A+GbCzW0/SCcj
         OTDA7JdNmWMfFCZl8vVxahnv73smyW8VmadbrmsPhag0sKEXXX1xmXxEaAhUXzLHZVlM
         bI1JsgtUi3ynDwD25D95Rbmo4/nHYJ/8gsffUEq+7MWwhtZI44sDod3Swx7ELZ5J1nH7
         xioQmshCLGIo+XHl84IdeQENgSDqtDl9untwJcB13YWJCJNAOD65qaEHNs+GkRKcgyQt
         ySqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701964661; x=1702569461;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=/YOZzONOa1915WtEAK5MR1LS6lwGZuhG727bdz++o/w=;
        b=fZeMPI1a/MZLMzs6MsdE/7YIHU8ojmu/wCYCrszgaMeEuRB52ddb8U2dOD61PUXlRE
         Zm/sM9sC+kTwiPVP5R0aQcfDIFNqkUhQAFJfT+Z8Sk+kCGYWR9CbaNbBpOfsZXLJ7FoX
         l4OdQ5r8XSo6KLrPZjOoX5GLkBBeC5x8sHSxqwOTVvWJsX60lALLZjo65Otp6mSuYKRg
         0cFFwUNhaVePhgjvM8aJaHNM8Xcq2GoVdUkBwMdhB8rnx+9HFfhM1oU/j22fPOltAaLr
         bH09ttXcx1Mc1u6cN/TFX271Zkr+cab/gpKl1fFYAVqwiKjgAVW6/Fomvmcr8uqBMbmr
         H+xQ==
X-Gm-Message-State: AOJu0YxJnlVj4nPs4ov7ap+Mlz9Z04ixnPxwPbwOV7GHg64LjiDMQTwC
	hTa0wy9wvc70MquLgXba5Zzp
X-Google-Smtp-Source: AGHT+IGfu4ooyHEB9GA6OZ7f8YOkI32RQgqCvMdta3vi2GONiw3pns2d1WQfudtdpjRJGflwoE6F3A==
X-Received: by 2002:a05:600c:4444:b0:40b:5464:b241 with SMTP id v4-20020a05600c444400b0040b5464b241mr1578704wmn.4.1701964661682;
        Thu, 07 Dec 2023 07:57:41 -0800 (PST)
Message-ID: <c2f65a29-5e8e-4d18-be26-0d07edcd0bf2@suse.com>
Date: Thu, 7 Dec 2023 16:57:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 17/39] xen/riscv: introduce asm/atomic.h
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Bobby Eshleman <bobbyeshleman@gmail.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 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>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <e9ead40abe380cf768a2a0150dc4c9e479a75307.1700761381.git.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: <e9ead40abe380cf768a2a0150dc4c9e479a75307.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> From: Bobby Eshleman <bobbyeshleman@gmail.com>
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V2:
>  - Change an author of commit. I got this header from Bobby's old repo.

Not sure how to deal with that when there's not also an S-o-b.

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/atomic.h
> @@ -0,0 +1,375 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * Taken and modified from Linux.
> + * 
> + * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
> + * Copyright (C) 2012 Regents of the University of California
> + * Copyright (C) 2017 SiFive
> + * Copyright (C) 2021 Vates SAS
> + */
> +
> +#ifndef _ASM_RISCV_ATOMIC_H
> +#define _ASM_RISCV_ATOMIC_H
> +
> +#include <xen/atomic.h>
> +#include <asm/cmpxchg.h>

This and ...

> +#include <asm/fence.h>
> +#include <asm/io.h>

.. this header are only introduced later. Bad ordering of the series?

> +#include <asm/system.h>
> +
> +void __bad_atomic_size(void);
> +
> +static always_inline void read_atomic_size(const volatile void *p,
> +                                           void *res,
> +                                           unsigned int size)
> +{
> +    switch ( size ) {

Nit (style): Brace on its own line (again further down).

> +    case 1: *(uint8_t *)res = readb((uint8_t *)p); break;
> +    case 2: *(uint16_t *)res = readw((uint16_t *)p); break;
> +    case 4: *(uint32_t *)res = readl((uint32_t *)p); break;
> +    case 8: *(uint32_t *)res  = readq((uint64_t *)p); break;

Please don't cast away const-ness.

> +    default: __bad_atomic_size(); break;
> +    }
> +}
> +
> +#define read_atomic(p) ({                                               \
> +    union { typeof(*p) val; char c[0]; } x_;                            \

Hmm, you avoid leading underscores here, but then ...

> +    read_atomic_size(p, x_.c, sizeof(*p));                              \
> +    x_.val;                                                             \
> +})
> +
> +
> +#define write_atomic(p, x) ({                                           \
> +    typeof(*p) __x = (x);                                               \

... they're still there here.

> +    switch ( sizeof(*p) ) {                                             \
> +    case 1: writeb((uint8_t)__x,  (uint8_t *)  p); break;              \
> +    case 2: writew((uint16_t)__x, (uint16_t *) p); break;              \
> +    case 4: writel((uint32_t)__x, (uint32_t *) p); break;              \
> +    case 8: writeq((uint64_t)__x, (uint64_t *) p); break;              \
> +    default: __bad_atomic_size(); break;                                \
> +    }                                                                   \
> +    __x;                                                                \
> +})
> +
> +/* TODO: Fix this */
> +#define add_sized(p, x) ({                                              \
> +    typeof(*(p)) __x = (x);                                             \
> +    switch ( sizeof(*(p)) )                                             \
> +    {                                                                   \
> +    case 1: writeb(read_atomic(p) + __x, (uint8_t *)(p)); break;        \
> +    case 2: writew(read_atomic(p) + __x, (uint16_t *)(p)); break;       \
> +    case 4: writel(read_atomic(p) + __x, (uint32_t *)(p)); break;       \

Instead of this, considering the comment perhaps better just BUG()?

> +    default: __bad_atomic_size(); break;                                \
> +    }                                                                   \
> +})
> +
> +/*
> + *  __unqual_scalar_typeof(x) - Declare an unqualified scalar type, leaving
> + *               non-scalar types unchanged.
> + *
> + * Prefer C11 _Generic for better compile-times and simpler code. Note: 'char'
> + * is not type-compatible with 'signed char', and we define a separate case.
> + */
> +#define __scalar_type_to_expr_cases(type)               \
> +    unsigned type:  (unsigned type)0,                   \
> +    signed type:    (signed type)0
> +
> +#define __unqual_scalar_typeof(x) typeof(               \
> +    _Generic((x),                                       \

I think you still owe us an update to ./README, clarifying what compiler versions
may be used for building RISC-V. Unless of course all that exist support _Generic
(which then would be nice to say in the description).

> +        char:  (char)0,                                 \
> +        __scalar_type_to_expr_cases(char),              \
> +        __scalar_type_to_expr_cases(short),             \
> +        __scalar_type_to_expr_cases(int),               \
> +        __scalar_type_to_expr_cases(long),              \
> +        __scalar_type_to_expr_cases(long long),         \
> +        default: (x)))
> +
> +#define READ_ONCE(x)  (*(const volatile __unqual_scalar_typeof(x) *)&(x))
> +#define WRITE_ONCE(x, val)                                      \
> +    do {                                                        \
> +            *(volatile typeof(x) *)&(x) = (val);                \

Nit (style): Too deep indentation.

> +    } while (0)
> +
> +#define __atomic_acquire_fence()					\
> +	__asm__ __volatile__(RISCV_ACQUIRE_BARRIER "" ::: "memory")

Suddenly using tab indentation here and below? And missing blanks again.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 16:21:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 16:21:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650026.1015234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBH7O-0003ts-95; Thu, 07 Dec 2023 16:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650026.1015234; Thu, 07 Dec 2023 16:20:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBH7O-0003tl-6I; Thu, 07 Dec 2023 16:20:54 +0000
Received: by outflank-mailman (input) for mailman id 650026;
 Thu, 07 Dec 2023 16:20:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cCsk=HS=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBH7N-0003tf-EI
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 16:20:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 961d28b3-951c-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 17:20:50 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0DC0C153B;
 Thu,  7 Dec 2023 08:21:36 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id CEE833F762;
 Thu,  7 Dec 2023 08:20:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 961d28b3-951c-11ee-98e7-6d05b1d4d9a1
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.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>,
	Wei Liu <wl@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] MAINTAINERS: Hand over the release manager role to Oleksii Kurochko
Date: Fri,  8 Dec 2023 00:20:36 +0800
Message-Id: <20231207162036.1921323-1-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

I've finished the opportunity to do two releases (4.17 and 4.18)
and Oleksii Kurochko has volunteered to be the next release manager.
Hand over the role to him by changing the maintainership of the
CHANGELOG.md.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
---
 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 0fcf5a6f36..702032cc12 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -278,7 +278,7 @@ S:	Supported
 F:	xen/drivers/passthrough/arm/smmu-v3.c
 
 Change Log
-M:	Henry Wang <Henry.Wang@arm.com>
+M:	Oleksii Kurochko <oleksii.kurochko@gmail.com>
 R:	Community Manager <community.manager@xenproject.org>
 S:	Maintained
 F:	CHANGELOG.md
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 16:31:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 16:31:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650030.1015245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHHq-0007GW-7G; Thu, 07 Dec 2023 16:31:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650030.1015245; Thu, 07 Dec 2023 16: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 1rBHHq-0007GP-4B; Thu, 07 Dec 2023 16:31:42 +0000
Received: by outflank-mailman (input) for mailman id 650030;
 Thu, 07 Dec 2023 16:31: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 1rBHHp-0007GJ-KC
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 16:31: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 1rBHHo-0007kC-Sf; Thu, 07 Dec 2023 16:31:40 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBHHo-0007xE-Mj; Thu, 07 Dec 2023 16:31:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=yBADU2juMaK23Ivqy06u23E0kKq6f/Pjd3Y/yEVsUKE=; b=MTxS6ycITjdKWm5w38hJitaano
	FhdbRNG9+7UHdEWJPoGlfIUphTJmUUKRbCl9F3MEVowTTgWoj4d5gmzloKEl7wYN0qfZpMIPMvhMq
	ga9piRzq9ur4QjdDbwxS0fdSJhgE4H7pALeCmHHbsvm45fEhMd42kLjginC5pU6PeDmA=;
Message-ID: <866ae09f-8e21-4f1b-a82e-8b72cc0f34e8@xen.org>
Date: Thu, 7 Dec 2023 16:31:38 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012
 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 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>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>
References: <4fa08aaed77d2b68db39ce51beef29820f1ba9b0.1701940034.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <4fa08aaed77d2b68db39ce51beef29820f1ba9b0.1701940034.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Federico,

On 07/12/2023 09:08, Federico Serafini wrote:
> MISRA C:2012 Rule 16.3 states that an unconditional break statement
> shall terminate every switch-clause.
> 
> Update ECLAIR configuration to take into account:
> - continue, goto, return statements;
> - functions and macros that do not give the control back;
> - fallthrough comments and pseudo-keywords.
> 
> Update docs/misra/deviations.rst accordingly.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>   .../eclair_analysis/ECLAIR/deviations.ecl     | 18 ++++++++++++++
>   docs/misra/deviations.rst                     | 24 +++++++++++++++++++
>   2 files changed, 42 insertions(+)

It would be good that this is depending on to be accepted:

https://lore.kernel.org/alpine.DEB.2.22.394.2312051859440.110490@ubuntu-linux-20-04-desktop.

> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index b0c79741b5..df0b58a010 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -321,6 +321,24 @@ statements are deliberate"
>   -config=MC3R1.R14.3,statements={deliberate , "wrapped(any(),node(if_stmt))" }
>   -doc_end
>   
> +#
> +# Series 16.
> +#
> +
> +-doc_begin="Switch clauses ending with continue, goto, return statements are safe."
> +-config=MC3R1.R16.3,terminals+={safe, "node(continue_stmt||goto_stmt||return_stmt)"}
> +-doc_end
> +
> +-doc_begin="Switch clauses not ending with the break statement are safe if a function/macro that does not give the control back is present."
> +-config=MC3R1.R16.3,terminals+={safe, "call(decl(name(__builtin_unreachable||do_unexpected_trap||fatal_trap||machine_halt||machine_restart||maybe_reboot||panic)))"}
> +-config=MC3R1.R16.3,terminals+={safe,"macro(name(BUG||BUG_ON))"}
> +-doc_end
> +
> +-doc_begin="Switch clauses not ending with the break statement are safe if an explicit comment or pseudo-keyword indicating the fallthrough intention is present."
> +-config=MC3R1.R16.3,reports+={safe, "any_area(any_loc(any_exp(text(^(?s).*([fF]all[- ]?[tT]hrough|FALL[- ]?THROUGH).*$,0..1))))"}
> +-config=MC3R1.R16.3,reports+={safe, "any_area(text(^(?s).*([fF]all[- ]?[tT]hrough|FALL[- ]?THROUGH).*$,0..1))"}

This is not trivial to read. Can you document the exhaustive list of 
keywords you are actually trying to deviate on? Also, did you consider 
to harmonize to only a few?

> +-doc_end
> +
>   #
>   # Series 20.
>   #
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 6e7c4f25b8..fecd2bae8e 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -270,6 +270,30 @@ Deviations related to MISRA C:2012 Rules:
>          statements are deliberate.
>        - Project-wide deviation; tagged as `disapplied` for ECLAIR.
>   
> +   * - R16.3
> +     - Switch clauses ending with continue, goto, return statements are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Switch clauses not ending with the break statement are safe if a
> +       function/macro that does not give the control back is present.
> +     - Tagged as `safe` for ECLAIR, such functions/macros are:
> +        - __builtin_unreachable
> +        - do_unexpected_trap
> +        - fatal_trap
> +        - machine_halt
> +        - machine_restart
> +        - maybe_reboot
> +        - panic
> +        - BUG

To me, it seems to be odd to deviate R16.3 by function. Some of those 
have an attribute noreboot. Can this be used?

> +        - BUG_ON

BUG_ON() can return if the condition is false. So it doesn't look 
correct to deviate with the argument that the function doesn't give the 
control back...

> +
> +   * - R16.3
> +     - Switch clauses not ending with the break statement are safe if an
> +       explicit comment or pseudo-keyword indicating the fallthrough intention
> +       is present.
> +     - Tagged as `safe` for ECLAIR.
> +
>      * - R20.7
>        - Code violating Rule 20.7 is safe when macro parameters are used:
>          (1) as function arguments;

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 16:34:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 16:34:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650032.1015255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHKJ-0007oZ-MF; Thu, 07 Dec 2023 16:34:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650032.1015255; Thu, 07 Dec 2023 16:34:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHKJ-0007oS-IG; Thu, 07 Dec 2023 16:34:15 +0000
Received: by outflank-mailman (input) for mailman id 650032;
 Thu, 07 Dec 2023 16:34: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 1rBHKI-0007oM-HI
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 16:34: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 1rBHKI-0007mc-2z; Thu, 07 Dec 2023 16:34:14 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBHKH-0008Am-Ty; Thu, 07 Dec 2023 16:34: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=KkM237Y1AOZO0VNc6OIB0BGwC0Jd9vMhnus7vkdq0v4=; b=IWOWEA8B1nn4W4zgxZaWIiRenE
	0GZktSyAH58FQS4F0wgFNM6hED0VW6NCKWYc+7NKSbSCsRIhcQz/1LVgZ+orBpUNnFHjrEv/9Ss1t
	TEvMBEVzwvpxgzLz/s/sAQEHlaraWI8qPseI97YNkqLa9O1d0BrSL9DVWPZl6Flwi+zg=;
Message-ID: <bc72e8c4-d370-4537-8e05-abd547de3bea@xen.org>
Date: Thu, 7 Dec 2023 16:34:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012
 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 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>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>
References: <4fa08aaed77d2b68db39ce51beef29820f1ba9b0.1701940034.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <4fa08aaed77d2b68db39ce51beef29820f1ba9b0.1701940034.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi again,

On 07/12/2023 09:08, Federico Serafini wrote:
> MISRA C:2012 Rule 16.3 states that an unconditional break statement
> shall terminate every switch-clause.
> 
> Update ECLAIR configuration to take into account:
> - continue, goto, return statements;
> - functions and macros that do not give the control back;
> - fallthrough comments and pseudo-keywords.
> 
> Update docs/misra/deviations.rst accordingly.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>   .../eclair_analysis/ECLAIR/deviations.ecl     | 18 ++++++++++++++
>   docs/misra/deviations.rst                     | 24 +++++++++++++++++++
>   2 files changed, 42 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index b0c79741b5..df0b58a010 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -321,6 +321,24 @@ statements are deliberate"
>   -config=MC3R1.R14.3,statements={deliberate , "wrapped(any(),node(if_stmt))" }
>   -doc_end
>   
> +#
> +# Series 16.
> +#
> +
> +-doc_begin="Switch clauses ending with continue, goto, return statements are safe."
> +-config=MC3R1.R16.3,terminals+={safe, "node(continue_stmt||goto_stmt||return_stmt)"}
> +-doc_end
> +
> +-doc_begin="Switch clauses not ending with the break statement are safe if a function/macro that does not give the control back is present."
> +-config=MC3R1.R16.3,terminals+={safe, "call(decl(name(__builtin_unreachable||do_unexpected_trap||fatal_trap||machine_halt||machine_restart||maybe_reboot||panic)))"}
> +-config=MC3R1.R16.3,terminals+={safe,"macro(name(BUG||BUG_ON))"}
> +-doc_end
> +
> +-doc_begin="Switch clauses not ending with the break statement are safe if an explicit comment or pseudo-keyword indicating the fallthrough intention is present."
> +-config=MC3R1.R16.3,reports+={safe, "any_area(any_loc(any_exp(text(^(?s).*([fF]all[- ]?[tT]hrough|FALL[- ]?THROUGH).*$,0..1))))"}
> +-config=MC3R1.R16.3,reports+={safe, "any_area(text(^(?s).*([fF]all[- ]?[tT]hrough|FALL[- ]?THROUGH).*$,0..1))"}
> +-doc_end
> +
>   #
>   # Series 20.
>   #
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 6e7c4f25b8..fecd2bae8e 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -270,6 +270,30 @@ Deviations related to MISRA C:2012 Rules:
>          statements are deliberate.
>        - Project-wide deviation; tagged as `disapplied` for ECLAIR.
>   
> +   * - R16.3
> +     - Switch clauses ending with continue, goto, return statements are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Switch clauses not ending with the break statement are safe if a
> +       function/macro that does not give the control back is present.
> +     - Tagged as `safe` for ECLAIR, such functions/macros are:
> +        - __builtin_unreachable
> +        - do_unexpected_trap
> +        - fatal_trap
> +        - machine_halt
> +        - machine_restart
> +        - maybe_reboot
> +        - panic
> +        - BUG
> +        - BUG_ON
> +
> +   * - R16.3
> +     - Switch clauses not ending with the break statement are safe if an
> +       explicit comment or pseudo-keyword indicating the fallthrough intention
> +       is present.

One more thing. This is not explicit which comment should be added. But 
would should deprecate the comment in favor of "fallthrough".

The deviation should have it written down (similar to SAF-1 for rule 8.4).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 16:57:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 16:57:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650038.1015265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHgE-0005rK-JY; Thu, 07 Dec 2023 16:56:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650038.1015265; Thu, 07 Dec 2023 16:56:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHgE-0005rD-GT; Thu, 07 Dec 2023 16:56:54 +0000
Received: by outflank-mailman (input) for mailman id 650038;
 Thu, 07 Dec 2023 16:56:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VdoU=HS=infradead.org=rdunlap@srs-se1.protection.inumbo.net>)
 id 1rBHgC-0005pb-FR
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 16:56:53 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9d57f967-9521-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 17:56:51 +0100 (CET)
Received: from [50.53.46.231] (helo=[192.168.254.15])
 by bombadil.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux))
 id 1rBHg6-00DSbw-18; Thu, 07 Dec 2023 16:56: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: 9d57f967-9521-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding:
	Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:
	Message-ID:Sender:Reply-To:Content-ID:Content-Description;
	bh=lPh8LMdFy5YnUc1DS1fRee/YgkA63td0Odm8EIiRxZo=; b=4ZQWyiBxBZmb+0TW0srqcJOAPc
	RY+5C5DCQfFRe6ZGbAeMGL6WXUi6oTrxrPy0OIRHkDX/wcII8ahej4KwA6K3V0T08B3nGOfnF4pMU
	zIQdXT7H3SdOuGX0Nj3pHqZlm2BfYzTRqhJ7kRLvRpF6EFl2XjJsbaNuyJxj3XAvKHD0dhOna06SQ
	96pFdCxpQQh2CVZ2Rsi+ZkaWVNCPsm/pqqRhvgbRzzyylgoUQDa/0WMpKKQTHPl0Hj+3oZJZvvffG
	l30wql0Hy61/t2YC5bFsvcKXCZOhplzM4qO75gNkvRsq1jm1EWg5Yzx+qFV9U8wm4HQd+N6d2LsS+
	XANPw0Ww==;
Message-ID: <11399bd2-f49d-4708-ad62-bbaba424c4f8@infradead.org>
Date: Thu, 7 Dec 2023 08:56:44 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/xenbus: client: fix kernel-doc comments
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20231206181724.27767-1-rdunlap@infradead.org>
 <c4fb61d7-d65e-4f6d-bb3f-cc961a70a757@suse.com>
From: Randy Dunlap <rdunlap@infradead.org>
In-Reply-To: <c4fb61d7-d65e-4f6d-bb3f-cc961a70a757@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit



On 12/7/23 01:27, Juergen Gross wrote:
> On 06.12.23 19:17, Randy Dunlap wrote:
>> Correct function kernel-doc notation to prevent warnings from
>> scripts/kernel-doc.
>>

>>
>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
>> Cc: Juergen Gross <jgross@suse.com>
>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>> Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> Cc: xen-devel@lists.xenproject.org
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>
> 
> with one nit below (can be fixed while committing) ...

Ah yes, thanks.

-- 
~Randy


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 16:58:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 16:58:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650041.1015274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHhV-0006en-ST; Thu, 07 Dec 2023 16:58:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650041.1015274; Thu, 07 Dec 2023 16:58:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHhV-0006eg-Pm; Thu, 07 Dec 2023 16:58:13 +0000
Received: by outflank-mailman (input) for mailman id 650041;
 Thu, 07 Dec 2023 16:58: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 1rBHhT-0006ea-KC
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 16:58: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 1rBHhR-0008BC-0l; Thu, 07 Dec 2023 16:58:09 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBHhQ-0006U4-O8; Thu, 07 Dec 2023 16:58:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=aQnCJXfB2R+4M1D7RAq/vAKoHo9zAT8eAp8YEBFFYGQ=; b=FmoAiuunesFc+bPmSiYFnaSEf2
	S89iN/gbg+hjGW6CWQ62zc4MyxYaqB8iWUxB7f+VQOBBp4N6vljWyJiXwSJbZL1LLbWe/98O6sl6m
	wvQGvy2aNRp8B/T2XcH67Gg9HtbvR2GPETmvKikyi7t19ktfIOQ6P7i9CHhIJRN9fAOs=;
Message-ID: <a4c43652-1fa6-4b42-b751-582cfd6324fe@xen.org>
Date: Thu, 7 Dec 2023 16:58:06 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Ayan Kumar Halder <ayankuma@amd.com>, Michal Orzel
 <michal.orzel@amd.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 stefano.stabellini@amd.com, bertrand.marquis@arm.com,
 Volodymyr_Babchuk@epam.com, xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
 <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
 <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org>
 <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com>
 <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
 <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org>
 <alpine.DEB.2.22.394.2312051503060.110490@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312051503060.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 05/12/2023 23:21, Stefano Stabellini wrote:
> On Tue, 5 Dec 2023, Julien Grall wrote:
>> I agree that crashing a guest is bad, but is lying to the domain really
>> better? The consequence here is not that bad and hopefully it would be fairly
>> easy to find. But this is not always the case. So I definitely would place a
>> half-backed emulation more severe than a guest crash.
> 
> 
> I see where Julien is coming from, but I would go with option two:
> "emulate DCC the same way as KVM". That's because I don't think we can
> get away with crashing the guest in all cases. Although the issue came
> up with a Linux guest, it could have been triggered by a proprietary
> operating system that we cannot change, and I think Xen should support
> running unmodified operating systems.
> 
> If we go with a "half-backed emulation" solution, as Julien wrote, then
> it is better to be more similar to other hypervisors, that's why I chose
> option two instead of option three.
> 
> But at the same time I recognize the validity of Julien's words and it
> makes me wonder if we should have a KCONFIG option or command line
> option to switch the Xen behavior. We could use it to gate all the
> "half-backed emulation" we do for compatibility.  Something like:
> 
> config PARTIAL_EMULATION
>      bool "Partial Emulation"
>      ---help---
>       
>      Enables partial, not spec compliant, emulation of certain register
>      interfaces (e.g DCC UART) for guest compatibility. If you disable
>      this option, Xen will crash the guest if the guest tries to access
>      interfaces not fully emulated or virtualized.
> 
>      If you enable this option, the guest might misbehave due to non-spec
>      compliant emulation done by Xen.

As I wrote to Ayan on Matrix today, I am not in favor of the emulation. 
Yet, I am not going to oppose (as in Nack it) if the other maintainers 
agree with it.

The KConfig would be nice, the question is whether we want to (security) 
support such configuration? E.g. could this potentially introduce a 
security issue in the guest?

Regarding the  emulation itself, I actually prefer 3 because at least 
the Linux drivers will be able to bail out rather than trying to use them.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 17:03:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 17:03:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650045.1015284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHmZ-0000S8-EP; Thu, 07 Dec 2023 17:03:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650045.1015284; Thu, 07 Dec 2023 17: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 1rBHmZ-0000S1-BT; Thu, 07 Dec 2023 17:03:27 +0000
Received: by outflank-mailman (input) for mailman id 650045;
 Thu, 07 Dec 2023 17:03: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=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBHmY-0000Rv-G2
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 17:03:26 +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 884fd8a9-9522-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 18:03:24 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-50bf26f8988so1187859e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 09:03:24 -0800 (PST)
Received: from fedora.. (public-gprs375370.centertel.pl. [37.47.97.139])
 by smtp.gmail.com with ESMTPSA id
 br4-20020a056512400400b0050c1520f783sm213780lfb.303.2023.12.07.09.03.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 09:03:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 884fd8a9-9522-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701968603; x=1702573403; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=YYjRg1Gsp/+iKmIGBuuDsDy1z8aRFRzJg36YMCnFrhQ=;
        b=CoavOMQbE2P0f+lDaiYyL+OLi8vt8Paphm2JHo09Qw6VBbGTgEm7Kh08HyXh1FRuuX
         c/FsNZHRW23ra+lsnFH44lBB42uKjvGOtVtfu6Mm1V6WYoy2FGRZfi3bYahcE3eRA/nc
         y9zuCsPH+fuxpps7iJmqOJBcGWJXyH85BBHxkDt/4pfishwnBajh4XLiOJBw9DOThwX9
         KHtDMVIngEV/vrhYw+9+n20oeJqrf7CTj6h0ulTonJ/RHXUUMbcMja/9gXggVCuCtWun
         HrZDJFQ+LlTdYML6rHQKCI/5+oeEvlxZbrnS692OO7wuQoXvj2JeOv7PQYIwIrcyBWNx
         oqJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701968603; x=1702573403;
        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=YYjRg1Gsp/+iKmIGBuuDsDy1z8aRFRzJg36YMCnFrhQ=;
        b=abckpWh+Sigofl2cPgLzQLX1fHe6pJ6VQtkNy5qZlN0L2S9N2s2JUIfHIuk78kGNvM
         0L0kiLRHtA83o3ECKg/QxD346cpX4Xva31BkJDtgSEr17v6nyveLoHNbbkiHSIDoIdpv
         rNUttXUS6h6+R9SOeOgC6OXX3oTf98hAlPT8cSC88PKRSE7a7q1nLfIcSQdXjksCStZ3
         HZurwC2vwwfHEdja0pOUe+Novt//b+WGNpL6GGfjkh1YaXcirPaNa+JIIPEkTCFn5dEo
         UJZZiKRuQzQf7iTbpMRECI1wBSvTiTStLSCDXwS+OOTAVQNK4P9nNj0qLsLEVMOa/yok
         nixg==
X-Gm-Message-State: AOJu0YxvkiGqviaDD6MZfHvKMKO/BZtmbISTwJK2uLPgs2wDA7t57kXb
	LUDUihNLBnb9t+BdIM4CT1tau8mFDLA=
X-Google-Smtp-Source: AGHT+IEIt+CoyC9Lzp3N0m/hOGwoQu73DMTgAl7hBxPdjg8P+3D3YGI5HL6m1RRDAvT5TVSxIAl0dg==
X-Received: by 2002:a05:6512:476:b0:50b:f8da:23f2 with SMTP id x22-20020a056512047600b0050bf8da23f2mr1776307lfd.135.1701968603007;
        Thu, 07 Dec 2023 09:03:23 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [RFC PATCH v1 0/1] ARCH_FIXED_CONFIG introduction for randconfig
Date: Thu,  7 Dec 2023 19:03:18 +0200
Message-ID: <cover.1701966261.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Brief Overview:
In the earlier patch series [1], it was introduced a comprehensive set of changes
enabling a full Xen build for RISC-V.
This early support primarily provides the minimum stubs required for the RISC-V
Xen build. At this stage of development, many configs are deemed unnecessary and
are expected to be disabled.

Without ARCH_FIXED_CONFIG (or an alternative mechanism), the alternative is
updating CI's build.yaml in multiple instances with the same configs,
mirroring the approach taken in [1] to prevent the inadvertent activation of
unsupported configs.

For example, in scenarios like dom0less, we can exclude grant tables by setting
"CONFIG_GRANT_TABLE=n" in ARCH_FIXED_CONFIG. This eliminates the need for intricate
modifications to Kconfig configurations with conditions like "depends on X86 || ARM"
or the introduction of HAS_* conditions followed by Kconfig updates with
"depends on HAS_*," as illustrated in examples [2] or [3].

It might be useful for other architectures as well, especially for PPC, which is
currently under development.

There are several open questions:
- Does introduction of ARCH_FIXED_CONFIG make sense?
- Should ARCH_FIXED_CONFIG be re-used for *defconfig?

[1] https://lore.kernel.org/xen-devel/b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.oleksii.kurochko@gmail.com/
[2] https://lore.kernel.org/xen-devel/cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com/
[3] https://lore.kernel.org/xen-devel/d42a34866edc70a12736b5c6976aa1b44b4ebd8a.1701453087.git.oleksii.kurochko@gmail.com/

Oleksii Kurochko (1):
  xen/Makefile: introduce ARCH_FIXED_CONFIG for randconfig

 xen/Makefile | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 17:03:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 17:03:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650046.1015295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHma-0000gs-LO; Thu, 07 Dec 2023 17:03:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650046.1015295; Thu, 07 Dec 2023 17: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 1rBHma-0000gl-IT; Thu, 07 Dec 2023 17:03:28 +0000
Received: by outflank-mailman (input) for mailman id 650046;
 Thu, 07 Dec 2023 17:03:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBHmZ-0000Rv-MB
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 17:03:27 +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 88f638a7-9522-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 18:03:25 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-50bffb64178so1172654e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 09:03:25 -0800 (PST)
Received: from fedora.. (public-gprs375370.centertel.pl. [37.47.97.139])
 by smtp.gmail.com with ESMTPSA id
 br4-20020a056512400400b0050c1520f783sm213780lfb.303.2023.12.07.09.03.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 09:03:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88f638a7-9522-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701968604; x=1702573404; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CvegsqgPj/JQ+zfxb37FWfk92AemUm2jMAtVEkvF/Nc=;
        b=CAUPsnD6ARTTC+lGsObqLENDEby9BJv+6kOEGD6GVWFJx4Ps+oz4RSZsDefJsRA9cz
         EEEjO9sUl2Vuluxoa7MHlJzIltV2wH8UG+1IcE1aV4SIPw3qsU/ucjQPYxroxQFtppQh
         sq8Vxt58OBBsivuw1Y/22eyc5j5bHrEGPBbZuOsb8sGOWW7SKcRkHuADdgEgkzzv0h58
         XbunfxHydDM1VwGpTvJlgCzBAB8Ql4bEWjNV6m9VIxMLDprqn5TRbvfgRc1cwn6R+XbH
         Rxz3iJpJvoIh5nJZaFXeKU0diMpKeWbtXXRdVMxsdm2VxfAIO7lrRkLI1mRtzHlQzB0R
         Fl2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701968604; x=1702573404;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=CvegsqgPj/JQ+zfxb37FWfk92AemUm2jMAtVEkvF/Nc=;
        b=h6RLz/0sbVSScMnLd11MWqIQCt2I4QixlIA+Q7S3CK/iYA7H8NKPIm7wjFUCaFMEbq
         7I4PbLLOhrDKvau7h5UOBfBh2kbi7jgksU3f02mpikR117f5ucujCsuh3tRiXBb+7KCY
         kj0Xj7u0nXnUJuP8+8Yj6Qp5BEw+ITAl8P6gfXdteYQzvHhvS3cxHNH37DXQe70UZzeA
         xVTmh2orNfmzPxhB5mhK6wzfj+ZUXfxCZLASvi7oBbRhUrrqNWYPLhtZVARM16RDrZiw
         AQ8R/beDGa5FObpfLDR3/9cEskgVXCLrcNp8L6WNcAGYg5ARGESNTbXBNajbKsT8rcAs
         teQg==
X-Gm-Message-State: AOJu0Yz1BbwrM3sE63pghb0xA3UC7wXi63McqSkK+FYQe8rtDQDM3QER
	//ntvU7YoRoZtQO0vHXORQYOvWi1QBQ=
X-Google-Smtp-Source: AGHT+IHyC3zQabe/f038LIeTKXmHOwubcefzsliresQ68Zf567w2NaWLlPXL6ajOnuFYZfOUKiLLRg==
X-Received: by 2002:a05:6512:3583:b0:50b:f792:3265 with SMTP id m3-20020a056512358300b0050bf7923265mr1619676lfr.123.1701968604101;
        Thu, 07 Dec 2023 09:03:24 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG for randconfig
Date: Thu,  7 Dec 2023 19:03:19 +0200
Message-ID: <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1701966261.git.oleksii.kurochko@gmail.com>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

ARCH_FIXED_CONFIG is required in the case of randconfig
and CI for configs that aren't ready or are not
supposed to be implemented for specific architecture.
These configs should always be disabled to prevent randconfig
related tests from failing.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/Makefile | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/xen/Makefile b/xen/Makefile
index ca571103c8..8ae8fe1480 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -336,11 +336,14 @@ ifeq ($(config-build),y)
 # *config targets only - make sure prerequisites are updated, and descend
 # in tools/kconfig to make the *config target
 
+ARCH_FORCED_CONFIG := $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
+
 # Create a file for KCONFIG_ALLCONFIG which depends on the environment.
 # This will be use by kconfig targets allyesconfig/allmodconfig/allnoconfig/randconfig
 filechk_kconfig_allconfig = \
     $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo 'CONFIG_XSM_FLASK_POLICY=n';) \
-    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
+    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
+    $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat $(ARCH_FORCED_CONFIG);) ) \
     :
 
 .allconfig.tmp: FORCE
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 17:08:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 17:08:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650051.1015305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBHrH-0001x8-6l; Thu, 07 Dec 2023 17:08:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650051.1015305; Thu, 07 Dec 2023 17: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 1rBHrH-0001x1-42; Thu, 07 Dec 2023 17:08:19 +0000
Received: by outflank-mailman (input) for mailman id 650051;
 Thu, 07 Dec 2023 17:08:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rBHrG-0001ve-A0
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 17:08:18 +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 1rBHrF-0008OQ-My; Thu, 07 Dec 2023 17:08:17 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBHrF-00074y-HM; Thu, 07 Dec 2023 17:08:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=WwsmGZVN/xWSBfU0j2LsxeV1lzCLnjz131N5lQXkExs=; b=UWkOBS4U3qRFU4f1FXgBG6e4pF
	P/ztvdXMrMtI1DJNH3vTIef7agps083k7xYh20jkiXO9dYZw5Go6Ht0NX3C5CuZZM6NjY/aeoberf
	2tB/OTnePGKW/+qykorVY/2uA9ZId6TYIWdIsargKruucnNXsLGuyGCaD2pmXHws9Zu8=;
Message-ID: <74abb34c-f253-4b4e-a3bb-3feb01fcc902@xen.org>
Date: Thu, 7 Dec 2023 17:08:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair_analysis: file exclusion automation
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <e17fba6f45a03f7acb0af342ed8aea97130dba4a.1701949157.git.nicola.vetrini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <e17fba6f45a03f7acb0af342ed8aea97130dba4a.1701949157.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07/12/2023 11:39, Nicola Vetrini wrote:
> +-doc_begin="libfdt is out of scope."
> +-file_tag+={out_of_scope,"^xen/include/xen/libfdt/.*$"}

AFAICT, before this was marked as "adopted". But this is now moved to 
"out_of_scope". Can you explain why?

It also feels somewhat unrelated to the rest of the patch.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 17:37:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 17:37:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650055.1015314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBIJP-0001Wh-Fb; Thu, 07 Dec 2023 17:37:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650055.1015314; Thu, 07 Dec 2023 17:37: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 1rBIJP-0001Wa-CM; Thu, 07 Dec 2023 17:37:23 +0000
Received: by outflank-mailman (input) for mailman id 650055;
 Thu, 07 Dec 2023 17:37:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YqrU=HS=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rBIJO-0001Ux-0e
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 17:37:22 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 429833b2-9527-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 18:37:15 +0100 (CET)
Received: from mg.gitlab.com (28.226.74.34.bc.googleusercontent.com
 [34.74.226.28]) by
 92251b0065f5 with SMTP id 657202c9ea56c677257a3962 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Thu, 07 Dec 2023 17:37:13 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 429833b2-9527-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701970633; x=1701977833; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=BB647pleBiShgVlc8bZ+uRb7FPwPAQbK/cdSdYZjWEE=;
 b=GM6hPHaBlwERsz+Ly9nRDK2YTOw7gMUqYAyn4agMIupWRimy2qyKxW2XGZLwiZF1HRBmrDPaAGYqmf5n3vpYUaw/b9GIgHkzVaWANnapWANzKmPQQneRPAk6mCjqPwQ+tPKWZsKeAVsA86eRg1KqEZDZlDp9El/6vmg2Fi0ap4w=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Thu, 07 Dec 2023 17:37:13 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <657202c9cfd7_2c94ef81144a0@gitlab-sidekiq-catchall-v2-64cdcd9d47-zxkt5.mail>
Subject: xen | Failed pipeline for staging | 25147005
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_657202c8ed320_2c94ef811438e";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1098955890
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_657202c8ed320_2c94ef811438e
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1098955890 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 25147005 ( https://gitlab.com/xen-project/xen/-/commit/25147005daf5a4e121b96496d6d208fac05fca35 )
Commit Message: xen/sched: do some minor cleanup of sched_move_...
Commit Author: Juergen Gross ( https://gitlab.com/jgross1 )
Committed by: George Dunlap


Pipeline #1098955890 ( https://gitlab.com/xen-project/xen/-/pipelines/1098955890 ) triggered by Ganis ( https://gitlab.com/ganis )
had 12 failed jobs.

Job #5703366092 ( https://gitlab.com/xen-project/xen/-/jobs/5703366092/raw )

Stage: build
Name: archlinux-gcc
Job #5703366143 ( https://gitlab.com/xen-project/xen/-/jobs/5703366143/raw )

Stage: build
Name: debian-bookworm-32-gcc-debug
Job #5703366193 ( https://gitlab.com/xen-project/xen/-/jobs/5703366193/raw )

Stage: build
Name: opensuse-tumbleweed-gcc
Job #5703366199 ( https://gitlab.com/xen-project/xen/-/jobs/5703366199/raw )

Stage: test
Name: build-each-commit-gcc
Job #5703366195 ( https://gitlab.com/xen-project/xen/-/jobs/5703366195/raw )

Stage: build
Name: opensuse-tumbleweed-gcc-debug
Job #5703366130 ( https://gitlab.com/xen-project/xen/-/jobs/5703366130/raw )

Stage: build
Name: debian-bookworm-gcc
Job #5703366094 ( https://gitlab.com/xen-project/xen/-/jobs/5703366094/raw )

Stage: build
Name: archlinux-gcc-debug
Job #5703366149 ( https://gitlab.com/xen-project/xen/-/jobs/5703366149/raw )

Stage: build
Name: ubuntu-trusty-gcc
Job #5703365823 ( https://gitlab.com/xen-project/xen/-/jobs/5703365823/raw )

Stage: build
Name: alpine-3.18-gcc
Job #5703365831 ( https://gitlab.com/xen-project/xen/-/jobs/5703365831/raw )

Stage: build
Name: alpine-3.18-gcc-debug
Job #5703366151 ( https://gitlab.com/xen-project/xen/-/jobs/5703366151/raw )

Stage: build
Name: ubuntu-trusty-gcc-debug
Job #5703366134 ( https://gitlab.com/xen-project/xen/-/jobs/5703366134/raw )

Stage: build
Name: debian-bookworm-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 25147005</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1098955890 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/25147005daf5a4e121=
b96496d6d208fac05fca35" style=3D"color: #3777b0; text-decoration: none;">=

25147005
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/sched: do some minor cleanup of sched_move_...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/0cac9c91cba4579c288f4be83125f17e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jgross1" style=3D"color: #3=
33333; text-decoration: none;">
Juergen Gross
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6000a69f22a3b00927b967d54ad19775?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
George Dunlap
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1098955890">#1098955890</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 12 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366092" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366143" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366193" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366199" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366195" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366130" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366094" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366149" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703365823" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703365831" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366151" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5703366134" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_657202c8ed320_2c94ef811438e--


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 17:53:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 17:53:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650095.1015325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBIZI-0005z2-Ug; Thu, 07 Dec 2023 17:53:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650095.1015325; Thu, 07 Dec 2023 17:53: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 1rBIZI-0005yv-Rx; Thu, 07 Dec 2023 17:53:48 +0000
Received: by outflank-mailman (input) for mailman id 650095;
 Thu, 07 Dec 2023 17: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=fZpn=HS=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rBIZI-0005yp-5T
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 17:53:48 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91215c4c-9529-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 18:53:46 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 23FC54EE073A;
 Thu,  7 Dec 2023 18:53:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91215c4c-9529-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Thu, 07 Dec 2023 18:53:45 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Simone Ballarin
 <simone.ballarin@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>
Subject: Re: [XEN PATCH] automation/eclair_analysis: file exclusion automation
In-Reply-To: <74abb34c-f253-4b4e-a3bb-3feb01fcc902@xen.org>
References: <e17fba6f45a03f7acb0af342ed8aea97130dba4a.1701949157.git.nicola.vetrini@bugseng.com>
 <74abb34c-f253-4b4e-a3bb-3feb01fcc902@xen.org>
Message-ID: <03d8668e6f8e9046eb784385a4585c28@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 2023-12-07 18:08, Julien Grall wrote:
> On 07/12/2023 11:39, Nicola Vetrini wrote:
>> +-doc_begin="libfdt is out of scope."
>> +-file_tag+={out_of_scope,"^xen/include/xen/libfdt/.*$"}
> 
> AFAICT, before this was marked as "adopted". But this is now moved to 
> "out_of_scope". Can you explain why?
> 
> It also feels somewhat unrelated to the rest of the patch.
> 
> Cheers,

I mistakenly changed the tag. It is not unrelated, as it't not part of 
exclude-list.json (perhaps unintentionally). The manual exclusions that 
remain in out_of_scope.ecl are there for this reason, since I wanted to 
keep the set of excluded files as it was before.

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 17:57:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 17:57:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650098.1015334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBIcO-0006rD-Bg; Thu, 07 Dec 2023 17:57:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650098.1015334; Thu, 07 Dec 2023 17:57: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 1rBIcO-0006r6-94; Thu, 07 Dec 2023 17:57:00 +0000
Received: by outflank-mailman (input) for mailman id 650098;
 Thu, 07 Dec 2023 17:56: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 1rBIcN-0006qv-1d
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 17:56: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 1rBIcL-0000kq-TB; Thu, 07 Dec 2023 17:56:57 +0000
Received: from [15.248.3.113] (helo=[10.24.67.25])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBIcL-0000iQ-Nc; Thu, 07 Dec 2023 17:56:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=q7l4TsoG8/ZqOAem0qiL/yMJMaKaHh4k5Zc+e5B1yVc=; b=0RbVuzPE/DN8xB/SKaJvLJORQu
	NrFrGIojHFDxzyiTNRsQfNNo0CpfHRWckQnZR2yyMEt9AoLPK0gua3trDK5yZN6IhTqZL7ZtMLQVS
	OzhzQYP34Uqp6SyvbbaUpnoy+3vxwFxBTAVVagepVbN3L3WjvtullfR0FMccJ5nTSQ2E=;
Message-ID: <2211ff2e-dd27-49a5-b41f-f56b60d2e3a5@xen.org>
Date: Thu, 7 Dec 2023 17:56:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair_analysis: file exclusion automation
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <e17fba6f45a03f7acb0af342ed8aea97130dba4a.1701949157.git.nicola.vetrini@bugseng.com>
 <74abb34c-f253-4b4e-a3bb-3feb01fcc902@xen.org>
 <03d8668e6f8e9046eb784385a4585c28@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <03d8668e6f8e9046eb784385a4585c28@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Nicola,

On 07/12/2023 17:53, Nicola Vetrini wrote:
> On 2023-12-07 18:08, Julien Grall wrote:
>> On 07/12/2023 11:39, Nicola Vetrini wrote:
>>> +-doc_begin="libfdt is out of scope."
>>> +-file_tag+={out_of_scope,"^xen/include/xen/libfdt/.*$"}
>>
>> AFAICT, before this was marked as "adopted". But this is now moved to 
>> "out_of_scope". Can you explain why?
>>
>> It also feels somewhat unrelated to the rest of the patch.
>>
>> Cheers,
> 
> I mistakenly changed the tag. It is not unrelated, as it't not part of 
> exclude-list.json (perhaps unintentionally). The manual exclusions that 
> remain in out_of_scope.ecl are there for this reason, since I wanted to 
> keep the set of excluded files as it was before.

Given that common/libfdt/* is part of the exclude-list.json, I can't see 
why include/xen/libfdt/* are not. So can you add it?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 18:09:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 18:09:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650104.1015345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBIok-0001JA-Eg; Thu, 07 Dec 2023 18:09:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650104.1015345; Thu, 07 Dec 2023 18:09:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBIok-0001J3-Bi; Thu, 07 Dec 2023 18:09:46 +0000
Received: by outflank-mailman (input) for mailman id 650104;
 Thu, 07 Dec 2023 18:09: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=fUwa=HS=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rBIoi-0001Iu-P5
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 18:09:44 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca4d28bc-952b-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 19:09:41 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id D4C888285699;
 Thu,  7 Dec 2023 12:09:39 -0600 (CST)
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 RvgAiTkgzPCb; Thu,  7 Dec 2023 12:09:39 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 29A1B82856A2;
 Thu,  7 Dec 2023 12:09:39 -0600 (CST)
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 uVamJeiu9JZ4; Thu,  7 Dec 2023 12:09:39 -0600 (CST)
Received: from [10.11.0.2] (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 898448285699;
 Thu,  7 Dec 2023 12:09:38 -0600 (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: ca4d28bc-952b-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 29A1B82856A2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1701972579; bh=RRYGcmFAZ4lqXWbmZEQd7K81iGVYOBFPBET0KKFx29c=;
	h=Message-ID:Date:MIME-Version:To:From;
	b=UXsoJrxMddHSK+hIp1IVrIRe1LfABekNs7TO5SPfKRsn7F4JKDJJ+dZJaz80/ynqy
	 lA6NoFclAHyoAs44wD+Vfhee9Z1unaJUwL8qc05TbEkGAAFyICkvSGhOnVpsWHweol
	 fiJ1W5T40zyrLwjWP5eoYY6im4JJ2S3wXtoojKVU=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <c2f3280e-2208-496b-a0b5-fda1a2076b3a@raptorengineering.com>
Date: Thu, 7 Dec 2023 12:09:38 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/39] xen/riscv: introduce arch-riscv/hvm/save.h
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, Julien Grall
 <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <acb870b980a791d7800d47c08c9574275159df39.1700761381.git.oleksii.kurochko@gmail.com>
 <5eae9d9b-e499-4c8c-aed0-2f52c0aa7c9f@suse.com>
From: Shawn Anastasio <sanastasio@raptorengineering.com>
In-Reply-To: <5eae9d9b-e499-4c8c-aed0-2f52c0aa7c9f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12/5/23 9:59 AM, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>> --- a/xen/include/public/hvm/save.h
>> +++ b/xen/include/public/hvm/save.h
>> @@ -91,6 +91,8 @@ DECLARE_HVM_SAVE_TYPE(END, 0, struct hvm_save_end);
>>  #include "../arch-arm/hvm/save.h"
>>  #elif defined(__powerpc64__)
>>  #include "../arch-ppc.h"
>> +#elif defined(__riscv)
>> +#include "../arch-riscv/hvm/save.h"
>>  #else
>>  #error "unsupported architecture"
>>  #endif
> 
> The PPC part here looks bogus altogether. Shawn?
>

I think my original intention here was to avoid creating yet another
empty header while still having a place to put PPC-specific definitions
that might be required.

See as how the ARM file is entirely empty though, I doubt we'll be any
different, so this could definitely be dropped.

> Jan

Thanks,
Shawn


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 18:27:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 18:27:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650108.1015355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBJ5h-0006Co-U5; Thu, 07 Dec 2023 18:27:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650108.1015355; Thu, 07 Dec 2023 18:27: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 1rBJ5h-0006Ch-Px; Thu, 07 Dec 2023 18:27:17 +0000
Received: by outflank-mailman (input) for mailman id 650108;
 Thu, 07 Dec 2023 18:27: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 1rBJ5f-0006CX-UO; Thu, 07 Dec 2023 18:27: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 1rBJ5f-0001LJ-CI; Thu, 07 Dec 2023 18:27: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 1rBJ5f-0006se-3F; Thu, 07 Dec 2023 18:27:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBJ5f-0000Yk-2h; Thu, 07 Dec 2023 18:27: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=cu2cn+YVG/mJ69PeFLyP12Fma15sQ/0kQH6iYFOSnns=; b=laeNBKsZsShz/PX9Phat8PYMWq
	dGGlnflYsi2ewt80xJetzPrDdja+iD1pwk4pkaf/NJwgemKk1mPfYvGNa+PGGneqJXA3CUhmArssB
	Vqs7IRkhs3YwvWP5cnnLG7INyroRD2KVKZv3g27Ko/we0BwWLkGA2iGRNlDOSHK5ECXc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184026-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184026: 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=d2b7c442b4a066bb670ee83e24800cabc415241d
X-Osstest-Versions-That:
    xen=02d0a615b32d03702f79807fa5e88f0cf78dde84
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 18:27:15 +0000

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

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                  d2b7c442b4a066bb670ee83e24800cabc415241d
baseline version:
 xen                  02d0a615b32d03702f79807fa5e88f0cf78dde84

Last test of basis   184025  2023-12-07 13:02:05 Z    0 days
Testing same since   184026  2023-12-07 16:02:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  George Dunlap <george.dunlap@cloud.com>
  Juergen Gross <jgross@suse.com>
  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
   02d0a615b3..d2b7c442b4  d2b7c442b4a066bb670ee83e24800cabc415241d -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 18:46:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 18:46:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650114.1015365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBJOO-0001oN-EP; Thu, 07 Dec 2023 18:46:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650114.1015365; Thu, 07 Dec 2023 18:46:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBJOO-0001oG-B3; Thu, 07 Dec 2023 18:46:36 +0000
Received: by outflank-mailman (input) for mailman id 650114;
 Thu, 07 Dec 2023 18:46: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 1rBJON-0001oA-6T
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 18:46: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 1rBJOM-0001fm-4k; Thu, 07 Dec 2023 18:46:34 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=[192.168.14.186]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBJOL-0002yX-UA; Thu, 07 Dec 2023 18:46:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ZiqSKexo2Dz6zUWbB35dNAnR/EMUDJk1m+ZnUKSxA94=; b=iLxWQ7sTP/nlfd5QzxJwL1K2MY
	uOHJgwe/l5Lm/0t77O1I4HDqHMwN6Rv7nbLir8vsehzZ3dlE1sEn44abAnyKqUET/E27l7fuI0Mxv
	obasoLl5JIWHwkt/zexo88uk1L7KsRKzTNOViWKSYjZJMr2AfsPzebyX0PZ09DHFJtjQ=;
Message-ID: <90575ebd-4b09-47bd-a4ee-2f081020b2ad@xen.org>
Date: Thu, 7 Dec 2023 18:46:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
Content-Language: en-GB
To: Henry Wang <Henry.Wang@arm.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20231207162036.1921323-1-Henry.Wang@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231207162036.1921323-1-Henry.Wang@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 07/12/2023 16:20, Henry Wang wrote:
> I've finished the opportunity to do two releases (4.17 and 4.18)
> and Oleksii Kurochko has volunteered to be the next release manager.

Henry, thanks for your time as release manager.
Oleksii, thanks for stepping up and good luck for the role!

> Hand over the role to him by changing the maintainership of the
> CHANGELOG.md.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>

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

I didn't hear any objection during the community call. But I will give 
until Tuesday morning (UK time) just in case. If there are none, then I 
will commit it.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 18:52:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 18:52:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650117.1015375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBJTz-00042l-1Y; Thu, 07 Dec 2023 18:52:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650117.1015375; Thu, 07 Dec 2023 18:52:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBJTy-00042e-V5; Thu, 07 Dec 2023 18:52:22 +0000
Received: by outflank-mailman (input) for mailman id 650117;
 Thu, 07 Dec 2023 18:52: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=fdCZ=HS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rBJTx-00042S-9g
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 18:52:21 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id beb95661-9531-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 19:52:18 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3333131e08dso1538428f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 10:52:18 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 fa7-20020a05600c518700b0040648217f4fsm2727181wmb.39.2023.12.07.10.52.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 10:52:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: beb95661-9531-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701975138; x=1702579938; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=2K8Yt+Gb73k6NR5JYy1XF6qJE2Z4F2poa7WFAi2vve4=;
        b=dARETxHjXFFXQHHbjynzUSmAjNragBfNe3A8znU539sb28r/3IqojRL6/EaomORNyz
         uDAdOuw7iy9TLPAQXE6kycwu+tOreplCRzxD1HFXX0tT7abp0ER51B5TDfhQytLEQ2d1
         DVDVKgGekDUrhmFckp6tOSdm/m5njW+8LDzjI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701975138; x=1702579938;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=2K8Yt+Gb73k6NR5JYy1XF6qJE2Z4F2poa7WFAi2vve4=;
        b=kOV4giNU7nm459ckBw7mtzI84tleSQay50EBEsNvOeHRj/J2EAueCyzHRp2WOMnlAR
         j4PI/MfIOQX671jomCFGwyS1jhsQhnQiqhKk5QjsgCoA27kF9mC/lwliWbAtaJxj5Gj5
         4Z8uIOx1buNvtK12aZFO8WZ9I+CE7wqY2T12L81ku4tAbfCxxqLZkrf+sNMq0e2M07TH
         l39HngXEevaTyMYRBYG3oGe6P06rcbXm4uxmpFb6LzKJ0kppPrwO4Py8owCEYbdAhth8
         rV2MebHg8tl1DQVwfX4OJxky8CxdiHMS3825DOddR5Yu/LbU+QEEU6Z9isHgiW5algzN
         tAiw==
X-Gm-Message-State: AOJu0YxYnIjhEMoc+JsNfAL9QpuIpK6Rp1vpXmr06zFMlbTAmPVKuXiO
	+n0toppSJIp+FiUhNFxD1S0mAw==
X-Google-Smtp-Source: AGHT+IHXWYIBZG17ZsxxoNCotSkfdvBRdL5azEjsp1pM2wQdtJOiHtG7JxF8l+78l5YWyIklJpqiuQ==
X-Received: by 2002:a05:600c:548f:b0:40b:36e9:bf4b with SMTP id iv15-20020a05600c548f00b0040b36e9bf4bmr1691389wmb.41.1701975137540;
        Thu, 07 Dec 2023 10:52:17 -0800 (PST)
Message-ID: <2187d4d1-36e9-45c8-ac87-283342e5365a@citrix.com>
Date: Thu, 7 Dec 2023 18:52:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Mini-OS: don't use objcopy --dump-section
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, minios-devel@lists.xenproject.org,
 xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org, wl@xen.org
References: <20231206161744.2508-1-jgross@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231206161744.2508-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/12/2023 4:17 pm, Juergen Gross wrote:
> The objcopy option "--dump-section" isn't supported in binutils before
> version 2.25, which are still supported by the Xen build system.
>
> Avoid that by using the "-O binary" format together with
> "--only-section". This requires to set the "alloc" section flag.
>
> Fixes: 33411a11f848 ("Mini-OS: hide all symbols not exported via EXPORT_SYMBOLS()")
> Signed-off-by: Juergen Gross <jgross@suse.com>

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

And FAOD, I'm taking this, plus a bump to the minios rev right now to
unbreak Gitlab CI, as it's been broken for 2 now.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 19:38:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 19:38:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650125.1015393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBKCm-0004kP-Hs; Thu, 07 Dec 2023 19:38:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650125.1015393; Thu, 07 Dec 2023 19:38:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBKCm-0004kI-F5; Thu, 07 Dec 2023 19:38:40 +0000
Received: by outflank-mailman (input) for mailman id 650125;
 Thu, 07 Dec 2023 19:38:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YqrU=HS=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rBKCk-0004kC-J3
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 19:38:38 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 36041c23-9538-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 20:38:36 +0100 (CET)
Received: from mg.gitlab.com (64.90.74.34.bc.googleusercontent.com
 [34.74.90.64]) by
 87754824eac0 with SMTP id 65721f3a1268d987572c2ab7 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Thu, 07 Dec 2023 19:38:34 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 36041c23-9538-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701977914; x=1701985114; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=6VNZAdqTPgRID0Kh99mE8cNZWIlNtnhNA1LoU4QQhUM=;
 b=IaKHKF6HiqI/Izaj782DG0UENW/mCnLPppD+gRM7t99oYIkBCaBzqh6AgmI+ncCGL2r9xWAD8bG7xbMq9PWtjb8EEOrxJOOyKVrGuKx8yYxVPsmThznas4p7XBQ1uSJe0kQDAR43Pj4tYzkCCWlnQo/zVS+FF2nkOT+HlIbTcmA=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Thu, 07 Dec 2023 19:38:34 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65721f3aa5be_2c94ebc4675@gitlab-sidekiq-catchall-v2-64cdcd9d47-qd2cn.mail>
Subject: xen | Failed pipeline for staging | d2b7c442
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65721f39f0c65_2c94ebc46643";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1099081266
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65721f39f0c65_2c94ebc46643
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1099081266 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: d2b7c442 ( https://gitlab.com/xen-project/xen/-/commit/d2b7c442b4a066bb670ee83e24800cabc415241d )
Commit Message: CODING_STYLE: Add a section of the naming conve...
Commit Author: Julien Grall


Pipeline #1099081266 ( https://gitlab.com/xen-project/xen/-/pipelines/1099081266 ) triggered by Ganis ( https://gitlab.com/ganis )
had 12 failed jobs.

Job #5704236009 ( https://gitlab.com/xen-project/xen/-/jobs/5704236009/raw )

Stage: build
Name: alpine-3.18-gcc-debug
Job #5704236006 ( https://gitlab.com/xen-project/xen/-/jobs/5704236006/raw )

Stage: build
Name: alpine-3.18-gcc
Job #5704236300 ( https://gitlab.com/xen-project/xen/-/jobs/5704236300/raw )

Stage: build
Name: archlinux-gcc
Job #5704236325 ( https://gitlab.com/xen-project/xen/-/jobs/5704236325/raw )

Stage: build
Name: debian-bookworm-gcc
Job #5704236327 ( https://gitlab.com/xen-project/xen/-/jobs/5704236327/raw )

Stage: build
Name: debian-bookworm-gcc-debug
Job #5704236339 ( https://gitlab.com/xen-project/xen/-/jobs/5704236339/raw )

Stage: build
Name: ubuntu-trusty-gcc
Job #5704236388 ( https://gitlab.com/xen-project/xen/-/jobs/5704236388/raw )

Stage: build
Name: opensuse-tumbleweed-gcc-debug
Job #5704236386 ( https://gitlab.com/xen-project/xen/-/jobs/5704236386/raw )

Stage: build
Name: opensuse-tumbleweed-gcc
Job #5704236391 ( https://gitlab.com/xen-project/xen/-/jobs/5704236391/raw )

Stage: test
Name: build-each-commit-gcc
Job #5704236303 ( https://gitlab.com/xen-project/xen/-/jobs/5704236303/raw )

Stage: build
Name: archlinux-gcc-debug
Job #5704236333 ( https://gitlab.com/xen-project/xen/-/jobs/5704236333/raw )

Stage: build
Name: debian-bookworm-32-gcc-debug
Job #5704236342 ( https://gitlab.com/xen-project/xen/-/jobs/5704236342/raw )

Stage: build
Name: ubuntu-trusty-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | d2b7c442</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1099081266 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/d2b7c442b4a066bb67=
0ee83e24800cabc415241d" style=3D"color: #3777b0; text-decoration: none;">=

d2b7c442
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
CODING_STYLE: Add a section of the naming conve...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1099081266">#1099081266</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 12 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236009" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236006" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236300" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236325" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236327" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236339" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236388" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236386" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236391" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236303" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236333" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5704236342" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65721f39f0c65_2c94ebc46643--


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 20:02:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 20:02:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650165.1015403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBKZp-0001Zj-JX; Thu, 07 Dec 2023 20:02:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650165.1015403; Thu, 07 Dec 2023 20:02:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBKZp-0001Zc-F0; Thu, 07 Dec 2023 20:02:29 +0000
Received: by outflank-mailman (input) for mailman id 650165;
 Thu, 07 Dec 2023 20:02: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 1rBKZo-0001ZS-SE; Thu, 07 Dec 2023 20:02: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 1rBKZo-0003EM-FW; Thu, 07 Dec 2023 20:02: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 1rBKZo-0000ln-2v; Thu, 07 Dec 2023 20:02:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBKZo-0001gw-2S; Thu, 07 Dec 2023 20:02: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=K0IME7rZShUTPPAINkq8BDeKbN9fdIVY/czzvCMDJcY=; b=3IBxHGCSzwp+H7G6BJKROvEgHh
	7jlXaqw8DvH+2ahOMG3Il4kU6uKwc+N1zTqe4D5JOHorwFZVpOq6YPfP3MBcunVlL0n1LCg08NkgM
	xIffHNaO5MXjGAzSBzLKoAdPfI3SNNkl47rQ+Yc1fLSRsUCewTBRw5XWkVjdczXh5tww=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184027-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184027: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=238690a30d02d3f95f0355c88c35dc0e4232342a
X-Osstest-Versions-That:
    ovmf=553dfb0f57ae8a666938873cf836a33549568c87
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 20:02:28 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 238690a30d02d3f95f0355c88c35dc0e4232342a
baseline version:
 ovmf                 553dfb0f57ae8a666938873cf836a33549568c87

Last test of basis   184023  2023-12-07 10:14:25 Z    0 days
Testing same since   184027  2023-12-07 17:11:00 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Corvin KÃ¶hne <corvink@FreeBSD.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    
 test-amd64-i386-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
   553dfb0f57..238690a30d  238690a30d02d3f95f0355c88c35dc0e4232342a -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 20:18:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 20:18:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650170.1015412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBKos-0004XT-Rb; Thu, 07 Dec 2023 20:18:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650170.1015412; Thu, 07 Dec 2023 20:18:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBKos-0004XM-Oo; Thu, 07 Dec 2023 20:18:02 +0000
Received: by outflank-mailman (input) for mailman id 650170;
 Thu, 07 Dec 2023 20:18: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=fdCZ=HS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rBKos-0004XG-25
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 20:18:02 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8119d7d-953d-11ee-98e7-6d05b1d4d9a1;
 Thu, 07 Dec 2023 21:18:01 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c2c5a8150so8372495e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 12:18:01 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 n21-20020a05600c3b9500b0040b2a52ecaasm2921770wms.2.2023.12.07.12.17.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 12:18:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8119d7d-953d-11ee-98e7-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701980280; x=1702585080; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Ysd62m2tBouM6AjR2z4aUe4Aev1c+bGhzdO9PHyaMyg=;
        b=F/ogYHBDyN77aYZMcjnCtAtgJhrW01hFu/Qe/KL/kOeDpHgn4w8zUhn0KkRrqWaqkq
         yYQ/lcSjr0WzdtXm6M6F1nd+bGdmqJQgf2+jS221oSAMrevB4r6n2WD93Y1WAwqUTWaJ
         OUpboYQ9h2xBz0+H1u8VoodHzfWkxX/6zTl/g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701980280; x=1702585080;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Ysd62m2tBouM6AjR2z4aUe4Aev1c+bGhzdO9PHyaMyg=;
        b=vAZ0q9PELW1BFRucIC+hATMkvRxDAKgmXUOS/8LL6c24s2qD8CNop1QCQs8fQHOEmN
         Y+IRXQe0a6WQnpd9vUXjDjnsRaFWcc8Oo6fo4Y0MoMKHUHGR0HmpR7KzeAIdM2HcqRku
         AvnwjR8Uz5rvV3NcV747YOi+qqJB4IoTNco7f4speUPznC/mAlTpjws+UXjYSh3Z78q3
         Nc1VPHk5O9upJ2dsjFuSmUZbTbyk3aJ1viLl3UKc10Q3lj2Kk2pVup+YuKBdyW+otZT/
         MNogzCvGM6QV/K2L8I5/aGhwuJV1zmEZlYdsUWDygwtF9BIkZE2zXbgfymxKGEQBv4Eq
         IN0A==
X-Gm-Message-State: AOJu0YweE2tGP8pxBPwrbkfr0sVc6d7Gb8R1CAg+sPXJRVym90OlGbHp
	KqngUIP72fyeXU8HdDegaSX6WQ==
X-Google-Smtp-Source: AGHT+IFWj+FJiFxCQou9mgyjOJOCfNiwm4fshEUi2Lsu8bKvUAMO3qfLjTPC/JpKvjZHiSr7RGDEGg==
X-Received: by 2002:a7b:cd10:0:b0:40c:1ebd:11c4 with SMTP id f16-20020a7bcd10000000b0040c1ebd11c4mr1673494wmj.15.1701980280355;
        Thu, 07 Dec 2023 12:18:00 -0800 (PST)
Message-ID: <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
Date: Thu, 7 Dec 2023 20:17:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG for
 randconfig
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: George Dunlap <george.dunlap@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>
 <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
> ARCH_FIXED_CONFIG is required in the case of randconfig
> and CI for configs that aren't ready or are not
> supposed to be implemented for specific architecture.
> These configs should always be disabled to prevent randconfig
> related tests from failing.
>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/Makefile | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/xen/Makefile b/xen/Makefile
> index ca571103c8..8ae8fe1480 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
>  # *config targets only - make sure prerequisites are updated, and descend
>  # in tools/kconfig to make the *config target
>  
> +ARCH_FORCED_CONFIG := $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
> +
>  # Create a file for KCONFIG_ALLCONFIG which depends on the environment.
>  # This will be use by kconfig targets allyesconfig/allmodconfig/allnoconfig/randconfig
>  filechk_kconfig_allconfig = \
>      $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo 'CONFIG_XSM_FLASK_POLICY=n';) \
> -    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
> +    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
> +    $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat $(ARCH_FORCED_CONFIG);) ) \
>      :
>  
>  .allconfig.tmp: FORCE

We already have infrastructure for this.Â  What's wrong with
EXTRA_FIXED_RANDCONFIG?

---8<---

CI: Revert "automation: Drop ppc64le-*randconfig jobs", fix Randconfig
with existing infrastructure
Â Â  Â 
This reverts commit cbb71b95dd708b1e26899bbe1e7bf9a85081fd60.

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

diff --git a/automation/gitlab-ci/build.yaml
b/automation/gitlab-ci/build.yaml
index 32af30ccedc9..346d0400ed09 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -538,6 +538,7 @@ archlinux-current-gcc-riscv64-randconfig:
Â Â Â Â  RANDCONFIG: y
Â Â Â Â  EXTRA_FIXED_RANDCONFIG:
Â Â Â Â Â Â  CONFIG_COVERAGE=n
+Â Â Â Â Â  CONFIG_GRANT_TABLE=n
Â 
Â archlinux-current-gcc-riscv64-debug-randconfig:
Â Â  extends: .gcc-riscv64-cross-build-debug
@@ -547,6 +548,7 @@ archlinux-current-gcc-riscv64-debug-randconfig:
Â Â Â Â  RANDCONFIG: y
Â Â Â Â  EXTRA_FIXED_RANDCONFIG:
Â Â Â Â Â Â  CONFIG_COVERAGE=n
+Â Â Â Â Â  CONFIG_GRANT_TABLE=n
Â 
Â # Power cross-build
Â debian-bullseye-gcc-ppc64le:
@@ -563,6 +565,26 @@ debian-bullseye-gcc-ppc64le-debug:
Â Â Â Â  KBUILD_DEFCONFIG: ppc64_defconfig
Â Â Â Â  HYPERVISOR_ONLY: y
Â 
+debian-bullseye-gcc-ppc64le-randconfig:
+Â  extends: .gcc-ppc64le-cross-build
+Â  variables:
+Â Â Â  CONTAINER: debian:bullseye-ppc64le
+Â Â Â  KBUILD_DEFCONFIG: ppc64_defconfig
+Â Â Â  RANDCONFIG: y
+Â Â Â  EXTRA_FIXED_RANDCONFIG:
+Â Â Â Â Â  CONFIG_COVERAGE=n
+Â Â Â Â Â  CONFIG_GRANT_TABLE=n
+
+debian-bullseye-gcc-ppc64le-debug-randconfig:
+Â  extends: .gcc-ppc64le-cross-build-debug
+Â  variables:
+Â Â Â  CONTAINER: debian:bullseye-ppc64le
+Â Â Â  KBUILD_DEFCONFIG: ppc64_defconfig
+Â Â Â  RANDCONFIG: y
+Â Â Â  EXTRA_FIXED_RANDCONFIG:
+Â Â Â Â Â  CONFIG_COVERAGE=n
+Â Â Â Â Â  CONFIG_GRANT_TABLE=n
+
Â # Yocto test jobs
Â yocto-qemuarm64:
Â Â  extends: .yocto-test-arm64



From xen-devel-bounces@lists.xenproject.org Thu Dec 07 20:48:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 20:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650173.1015423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBLIe-0001qk-3G; Thu, 07 Dec 2023 20:48:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650173.1015423; Thu, 07 Dec 2023 20:48:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBLIe-0001qd-0V; Thu, 07 Dec 2023 20:48:48 +0000
Received: by outflank-mailman (input) for mailman id 650173;
 Thu, 07 Dec 2023 20:48:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fdCZ=HS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rBLId-0001qX-AF
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 20:48:47 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 035450ab-9542-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 21:48:45 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-332f90a375eso1425762f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 12:48:45 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 n11-20020a5d4c4b000000b0033326e90496sm488615wrt.18.2023.12.07.12.48.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 12:48:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 035450ab-9542-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1701982125; x=1702586925; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=cPwpux/zirXh2ltxHSmVMNTM1MmKKvlm2FNG1iQ+RPs=;
        b=nkYyXNx25esCAPrYyH/blVn7/HK7PcbK3azQI8/6qsP2PeWlMivtfP/uvz4kfQTWBp
         YTgMhS1Iz4TTV9SVb90K1LMExJjhJUe0HC7yc7EKOy093d66rH/L074anQPkU6Vhyeni
         2rbv56LrHWlYDMZZ6CsQma9/R+fStGbZyHdA4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701982125; x=1702586925;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=cPwpux/zirXh2ltxHSmVMNTM1MmKKvlm2FNG1iQ+RPs=;
        b=tx/97HD4dOmGEf43z7zNh99efoZa+2dIEhQCG56RTjbP6kvMG9sncUgzPq/ISzaCnI
         K5O216Xr+B4fDAl8MpqqVb0XTqznTFk+lmbLP2rmPFsHHcIDYF7ZpBhCjlEg2FsBM5Qk
         3Mf5GFopwpqIt3OzeMIxM8rfdk58tBveRNxlN+6H9SJFTn9FWFLVXTA53Ez3kXtIQlaC
         Qd/B8JIcAF4fYmd6Wbpn+WZOgR7xbkauLhjulV9pRQ+1qmz7EjAilhQAP+Et59cyh76F
         3qcJYEMm+JgY7kCBctZhYUj+KxRfURfD0Ah6vNpbhCi3o1mVCUIof/UQjAKHlBYnQtuG
         ky3Q==
X-Gm-Message-State: AOJu0YzUkhKnvookr/XxUkKXrgolSiWiOLZjXViEpuUlXGpGb5ZcwS63
	rRpT/1XPz0ppnK5xTY8GIXP6PA==
X-Google-Smtp-Source: AGHT+IEolIH498ebsi1nZLD0BzzqQUtQ0hVH2W1//JMNOg3H80vWs72wAt0JF/3Vh5UgVcEuslSUZg==
X-Received: by 2002:a05:6000:1b03:b0:332:feb2:dee9 with SMTP id f3-20020a0560001b0300b00332feb2dee9mr2234875wrz.61.1701982124781;
        Thu, 07 Dec 2023 12:48:44 -0800 (PST)
Message-ID: <75b583bb-48ef-4672-aaed-906d6c8e8de5@citrix.com>
Date: Thu, 7 Dec 2023 20:48:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.17.3
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Anthony Perard <anthony.perard@citrix.com>, Julien Grall <julien@xen.org>
References: <4a7ecdb1-770e-4886-a397-336a510b7e3c@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <4a7ecdb1-770e-4886-a397-336a510b7e3c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/12/2023 7:06 am, Jan Beulich wrote:
> All,
>
> the release is about due. Please point out backports you find missing
> from the respective staging branch, but which you consider relevant.

e3c409d59ac8 "x86/x2apic: introduce a mixed physical/cluster mode"

There's now clear evidence on the "[PATCH] x86/x2apic: introduce a mixed
physical/cluster mode" that it fixes something on real systems.Â  At a
guess, a platform erratum concerning the use of external cluster mode
interrupts, but nevertheless its a genuine improvement too.

I've got backports to 4.17 and 4.13 easily to hand if you want.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 21:07:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 21:07:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650176.1015433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBLaQ-0005P3-Jh; Thu, 07 Dec 2023 21:07:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650176.1015433; Thu, 07 Dec 2023 21:07:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBLaQ-0005Ow-GY; Thu, 07 Dec 2023 21:07:10 +0000
Received: by outflank-mailman (input) for mailman id 650176;
 Thu, 07 Dec 2023 21:07:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBLaO-0005Oa-Q9
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 21:07:08 +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 92d9bd95-9544-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 22:07:05 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a1f33c13ff2so90932766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 13:07:05 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 mm15-20020a1709077a8f00b00a1b6ec7a88asm191032ejc.113.2023.12.07.13.07.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 13:07:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92d9bd95-9544-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701983224; x=1702588024; 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=jDhq3biZj465qUEXPNT8h7JZlASkrEbakO4LXpiUR8M=;
        b=YB/ZWM908EWEr5dmsZZ3UjgD4mFMRHI0vq4DRm8OWswDisi7x1+IEon2KL+zFj4d+Q
         Or9ZYAA1NZpHOsYRYYSIcdFuRP9qgmFSqLdOjPlv4U1V4wxqFYrdojH0I/FvSWusCYWV
         1GUb2jmF0grSZBsRs55bxdsfiVGruzwTOanZkcUZwU2yLD45MdPt0lDAuJonUFCW//xY
         wi95ZEVnhyauj3axIpgL+RWYFSk7kX0ly8IO+KvQcTfLRyUzxaVxPqDWr82Ot1Ui7z6X
         s+OgLbnM3JFbfaDQmfssU3VlD/jQ/xZRxqlljUnKNbgNeBbzrGmTvE80GPMYfvVtQ6oT
         2ZJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701983224; x=1702588024;
        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=jDhq3biZj465qUEXPNT8h7JZlASkrEbakO4LXpiUR8M=;
        b=N7c/W4Rs6n3RmqieJ+3bO+XJmKII3hDqo4SQgtvzhYMVuVmt4MFjEFse70OuotnFGa
         EW0D2NAqj37IsgROt70zGV0fpz62sUFI9Y4rMpOeQfF7merN2uAB4i7sNdLefiR6bpgH
         3PNZCM1Q7KUJhkWqM0ilakavAQFvVl5vhwbcOebYc9w9IpPa+8YuGR2crPUIxxmB6gb5
         MiAcLq+bCgQzqRurP2Zbf3Ofq5m8qSaGJYL1Atzge2RsGawBReljFRfapSs6kNEKATdq
         SH5bh0vAPfBFJzpPFdiW+E5bOtzJLmmjGqtKku6CVV6d+CImAA9oB5q1dRI2QTAPPKI9
         oK6g==
X-Gm-Message-State: AOJu0Yxt+G7fY5cHuTQNz11teIayzHVxe1K6ESK2jiDzNk3U/vbF5ICc
	vYLOwX0sE3NnoG7yXW01aLs=
X-Google-Smtp-Source: AGHT+IHv9qYrEYhVJISYKGG6tbawAX/N9M9qp9/+0pfH5aFE+v/9GzqXJOspZTCX+nO0iDjrSK9I7A==
X-Received: by 2002:a17:907:c901:b0:a01:c31f:c90e with SMTP id ui1-20020a170907c90100b00a01c31fc90emr1878738ejc.58.1701983224214;
        Thu, 07 Dec 2023 13:07:04 -0800 (PST)
Message-ID: <6e435d2b4772e75544e9201bcfbe00e5cf5eab6e.camel@gmail.com>
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG
 for randconfig
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: George Dunlap <george.dunlap@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,  Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Shawn Anastasio
 <sanastasio@raptorengineering.com>
Date: Thu, 07 Dec 2023 23:07:02 +0200
In-Reply-To: <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>
	 <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
	 <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 20:17 +0000, Andrew Cooper wrote:
> On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
> > ARCH_FIXED_CONFIG is required in the case of randconfig
> > and CI for configs that aren't ready or are not
> > supposed to be implemented for specific architecture.
> > These configs should always be disabled to prevent randconfig
> > related tests from failing.
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > =C2=A0xen/Makefile | 5 ++++-
> > =C2=A01 file changed, 4 insertions(+), 1 deletion(-)
> >=20
> > diff --git a/xen/Makefile b/xen/Makefile
> > index ca571103c8..8ae8fe1480 100644
> > --- a/xen/Makefile
> > +++ b/xen/Makefile
> > @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
> > =C2=A0# *config targets only - make sure prerequisites are updated, and
> > descend
> > =C2=A0# in tools/kconfig to make the *config target
> > =C2=A0
> > +ARCH_FORCED_CONFIG :=3D
> > $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
> > +
> > =C2=A0# Create a file for KCONFIG_ALLCONFIG which depends on the
> > environment.
> > =C2=A0# This will be use by kconfig targets
> > allyesconfig/allmodconfig/allnoconfig/randconfig
> > =C2=A0filechk_kconfig_allconfig =3D \
> > =C2=A0=C2=A0=C2=A0=C2=A0 $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), e=
cho
> > 'CONFIG_XSM_FLASK_POLICY=3Dn';) \
> > -=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG)=
;) \
> > +=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG)=
; \
> > +=C2=A0=C2=A0=C2=A0 $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat
> > $(ARCH_FORCED_CONFIG);) ) \
> > =C2=A0=C2=A0=C2=A0=C2=A0 :
> > =C2=A0
> > =C2=A0.allconfig.tmp: FORCE
>=20
> We already have infrastructure for this.=C2=A0 What's wrong with
> EXTRA_FIXED_RANDCONFIG?
Everything is fine; I don't know why there was only an issue with
CONFIG_GRANT_TABLE on PPC. On the RISC-V side, there were more configs
issues, prompting me to include all the configurations not implemented
for RISC-V in EXTRA_FIXED_RANDCONFIG. You can find the added
configurations in this commit:
https://lore.kernel.org/xen-devel/b4e85f8f58787b4d179022973ce25673d6b56e36.=
1700761381.git.oleksii.kurochko@gmail.com/#Z31automation:gitlab-ci:build.ya=
ml

One challenge is that the same configurations need to be added multiple
times for each build test using randconfig.

Another reason for this approach is a suggestion from Jan (probably I
misunderstood it), who proposed using a template to instruct randconfig
not to modify currently unnecessary configurations. You can find the
suggestion and discussion here:
https://lore.kernel.org/xen-devel/008d0c66-6816-4d12-9e1f-1878e982f9fc@suse=
.com/

Perhaps we could enhance the build script to fetch "fixed" configs from
the architecture-specific fixed-defconfig instead of modifying the
Makefile directly.

>=20
> ---8<---
>=20
> CI: Revert "automation: Drop ppc64le-*randconfig jobs", fix
> Randconfig
> with existing infrastructure
> =C2=A0=C2=A0 =C2=A0
> This reverts commit cbb71b95dd708b1e26899bbe1e7bf9a85081fd60.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>=20
> diff --git a/automation/gitlab-ci/build.yaml
> b/automation/gitlab-ci/build.yaml
> index 32af30ccedc9..346d0400ed09 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -538,6 +538,7 @@ archlinux-current-gcc-riscv64-randconfig:
> =C2=A0=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> =C2=A0=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG:
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> =C2=A0
> =C2=A0archlinux-current-gcc-riscv64-debug-randconfig:
> =C2=A0=C2=A0 extends: .gcc-riscv64-cross-build-debug
> @@ -547,6 +548,7 @@ archlinux-current-gcc-riscv64-debug-randconfig:
> =C2=A0=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> =C2=A0=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG:
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> =C2=A0
> =C2=A0# Power cross-build
> =C2=A0debian-bullseye-gcc-ppc64le:
> @@ -563,6 +565,26 @@ debian-bullseye-gcc-ppc64le-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-bullseye-gcc-ppc64le-randconfig:
> +=C2=A0 extends: .gcc-ppc64le-cross-build
> +=C2=A0 variables:
> +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:bullseye-ppc64le
> +=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: ppc64_defconfig
> +=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> +=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG:
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> +
> +debian-bullseye-gcc-ppc64le-debug-randconfig:
> +=C2=A0 extends: .gcc-ppc64le-cross-build-debug
> +=C2=A0 variables:
> +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:bullseye-ppc64le
> +=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: ppc64_defconfig
> +=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> +=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG:
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> +
> =C2=A0# Yocto test jobs
> =C2=A0yocto-qemuarm64:
> =C2=A0=C2=A0 extends: .yocto-test-arm64
>=20

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 21:09:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 21:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650179.1015443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBLcU-0006UA-5a; Thu, 07 Dec 2023 21:09:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650179.1015443; Thu, 07 Dec 2023 21: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 1rBLcU-0006U3-1p; Thu, 07 Dec 2023 21:09:18 +0000
Received: by outflank-mailman (input) for mailman id 650179;
 Thu, 07 Dec 2023 21: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=y0Pn=HS=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBLcS-0006Tv-Vf
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 21:09:16 +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 e04eccb9-9544-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 22:09:15 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-54c64316a22so1907588a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 13:09:15 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 q26-20020a50aa9a000000b0054c6261d245sm226228edc.37.2023.12.07.13.09.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Dec 2023 13:09:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e04eccb9-9544-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1701983354; x=1702588154; 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=8NlpV8GXsUnxiuXF/T0qU6VIMdCTQtGxDGh5FukiAwA=;
        b=T3h1erGhzwuHkaCrnEU0NtBDlYkzC3HQWeguwGfa0ujGDycsjXgYqh2j0WojQPs3iJ
         wT6oAxDHMmi+pNDaco9Jfbk3IVV9A7yaozpvkAvTbv1a+ZtUvvFgzbYjxSC6LDUsc70+
         JpWkL8pZtzEAK6GMqBBh3tlg641nVmveY5GItebmE5gtPMoUaZLsw3MeIxn6LbWsGOhi
         KzbJVDdsnJCzTvcWte8RKUE+XV6e9HaHg01k6z+u8F2GyOpfekgxiFjbvIOKXzjCC2eW
         9aBw53W2vHXAf87ylikzRNkWLQzHh3K5xsIysokOTI3X4bbKq6FVpOc6mXTElQJk3rus
         fBZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1701983354; x=1702588154;
        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=8NlpV8GXsUnxiuXF/T0qU6VIMdCTQtGxDGh5FukiAwA=;
        b=GKtMu+swbefPqZ9ju/xp5T3xgoeKpxkApKKhUlFRjcOCjCUgLOs7PaESdwPBYLlxt8
         t/XHjmQO7yyatswNtAFx0p3y54jvfY4gMUurPxmX6mPBSQ80oPXpM54Rb0KaT4GMTMNQ
         oIQzCMsz1wmW+ZRlLNdMco8R+zZChcU7jZBF8Qxoy/YwkSO5ar8dyabgCOpMWzvgAmuC
         K2ljaAV8l0FVP5T75y4jcjuS8K9aDh7sIymCEjzRGE+CNUSgwdcYbUAaiIaKLU+G5CNP
         hO81xOcRjRVYLGQrdQ12xKaL1bhFapMj7X4WJ3GqiEPqGqsSSMiOTNPKabJj59ZrUKPp
         7kSQ==
X-Gm-Message-State: AOJu0YzBuvQh5HZREBBRIoRCbw1VHeT8MUM5UV4iQxqTNaGw9fGp1JGV
	+PgsbMw+LBcDDGn6I2C2Sb0=
X-Google-Smtp-Source: AGHT+IFTZc84Ll26roVpg4N/HrOcF3IDPVQBegk3QSIqGoj9DenXh/axT4t8+5L0rZUsMdkt+79njA==
X-Received: by 2002:a50:baae:0:b0:54c:4837:75a5 with SMTP id x43-20020a50baae000000b0054c483775a5mr1621181ede.81.1701983354316;
        Thu, 07 Dec 2023 13:09:14 -0800 (PST)
Message-ID: <38ed531570ef67b6b1f95ba5fa44bb37821bca9e.camel@gmail.com>
Subject: Re: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
From: Oleksii <oleksii.kurochko@gmail.com>
To: Julien Grall <julien@xen.org>, Henry Wang <Henry.Wang@arm.com>, 
	xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
 <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Date: Thu, 07 Dec 2023 23:09:12 +0200
In-Reply-To: <90575ebd-4b09-47bd-a4ee-2f081020b2ad@xen.org>
References: <20231207162036.1921323-1-Henry.Wang@arm.com>
	 <90575ebd-4b09-47bd-a4ee-2f081020b2ad@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.1 (3.50.1-1.fc39) 
MIME-Version: 1.0

Hi Julien and Henry,

On Thu, 2023-12-07 at 18:46 +0000, Julien Grall wrote:
> Hi,
>=20
> On 07/12/2023 16:20, Henry Wang wrote:
> > I've finished the opportunity to do two releases (4.17 and 4.18)
> > and Oleksii Kurochko has volunteered to be the next release
> > manager.
>=20
> Henry, thanks for your time as release manager.
> Oleksii, thanks for stepping up and good luck for the role!
Thank you very much.

Just one question: Is it necessary to provide my ACK?

>=20
> > Hand over the role to him by changing the maintainership of the
> > CHANGELOG.md.
> >=20
> > Signed-off-by: Henry Wang <Henry.Wang@arm.com>
>=20
> Acked-by: Julien Grall <jgrall@amazon.com>
>=20
> I didn't hear any objection during the community call. But I will
> give=20
> until Tuesday morning (UK time) just in case. If there are none, then
> I=20
> will commit it.
>=20
> Cheers,
>=20

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 21:37:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 21:37:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650198.1015513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBM3l-0004co-00; Thu, 07 Dec 2023 21:37:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650198.1015513; Thu, 07 Dec 2023 21: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 1rBM3k-0004ch-Se; Thu, 07 Dec 2023 21:37:28 +0000
Received: by outflank-mailman (input) for mailman id 650198;
 Thu, 07 Dec 2023 21:37: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 1rBM3j-0004cW-M3; Thu, 07 Dec 2023 21:37: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 1rBM3j-0004xo-Ja; Thu, 07 Dec 2023 21:37: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 1rBM3j-00031r-88; Thu, 07 Dec 2023 21:37:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBM3j-0000WY-7d; Thu, 07 Dec 2023 21: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=e7MyCcfag9CiMoSNgmQ+6MRxXN9gD9U3GB6D+6+qAH8=; b=dTh9wpQIZBXXE4WMkmBlmqKEqx
	fYwl90HRHoof36HVoqkoGb1GzM/nwd3zS7Z4E9msCFZCfmEGCufyUNt+4jjtxDakAFSpVPPSCF0OK
	kcIS53zyUWXEdNPtp4fEAnSovMqoGycYN1T4sMk3PHasR9B8zLO9H83yny3UsXE4lKLI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184020-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184020: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d4bfd3899886d0fbe259c20660dadb1e00170f2d
X-Osstest-Versions-That:
    xen=01da0aeecd41435cea8bd2fe0f547e0a474f6e45
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 21:37:27 +0000

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

Failures :-/ but no regressions.

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

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 184029 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 184029 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184005
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184005
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184005
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184005
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184005
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184005
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184005
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184005
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184005
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184005
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184005
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184005
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-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-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-xl-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  d4bfd3899886d0fbe259c20660dadb1e00170f2d
baseline version:
 xen                  01da0aeecd41435cea8bd2fe0f547e0a474f6e45

Last test of basis   184005  2023-12-06 06:14:42 Z    1 days
Testing same since   184020  2023-12-07 05:13:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@citrix.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Jason Andryuk <jandryuk@gmail.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>
  Simone Ballarin <simone.ballarin@bugseng.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   01da0aeecd..d4bfd38998  d4bfd3899886d0fbe259c20660dadb1e00170f2d -> master


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 21:42:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 21:42:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650203.1015523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBM8J-0006SO-IV; Thu, 07 Dec 2023 21:42:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650203.1015523; Thu, 07 Dec 2023 21: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 1rBM8J-0006SH-Dz; Thu, 07 Dec 2023 21:42:11 +0000
Received: by outflank-mailman (input) for mailman id 650203;
 Thu, 07 Dec 2023 21:42: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=QcaE=HS=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBM8I-0006SA-41
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 21:42:10 +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 76dd5afb-9549-11ee-9b0f-b553b5be7939;
 Thu, 07 Dec 2023 22:42:07 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 5E475CE24C5;
 Thu,  7 Dec 2023 21:42:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3BCB1C433C9;
 Thu,  7 Dec 2023 21:42: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: 76dd5afb-9549-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701985321;
	bh=RaiEs6rPjAmgyxVz9TfcPBuEk0hP5VpEsexJfG510QY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ThAcHk61pkk6DXd6Yrsi+ZxvvWmPzlbJn6D0LayftRJmuR5KFHQZEFzvpvVnIdLAA
	 bjfF9vYQz0d/2PsMsXeTBsNwF66dcb7CXSTOQ24R6fksde2yENSE36W6VBlxiAUz4q
	 OKsfB+x+TZVykQMpC69cl3xX05SoohDyAQloteAlCyiESz/1bofkSKeS5ImUYttBTe
	 P0FhU1XA6IkkoOumsPe2vxFkxlEEocp/+dwBhgUjEFB2X+fsaoH8triwOLVBbssMAH
	 lsfipFFhXE0fIdsNRAlZ+G04adgzQcfQRHLKL5Gwk6QNXzImLmu7hubQCxD+qhefOF
	 lQtgclngBD+hQ==
Date: Thu, 7 Dec 2023 13:41:58 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Ayan Kumar Halder <ayankuma@amd.com>, Michal Orzel <michal.orzel@amd.com>, 
    Ayan Kumar Halder <ayan.kumar.halder@amd.com>, stefano.stabellini@amd.com, 
    bertrand.marquis@arm.com, Volodymyr_Babchuk@epam.com, 
    xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
In-Reply-To: <a4c43652-1fa6-4b42-b751-582cfd6324fe@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop>
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com> <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org> <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com> <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org> <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org> <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com> <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org> <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com> <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
 <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org> <alpine.DEB.2.22.394.2312051503060.110490@ubuntu-linux-20-04-desktop> <a4c43652-1fa6-4b42-b751-582cfd6324fe@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Dec 2023, Julien Grall wrote:
> Hi Stefano,
> 
> On 05/12/2023 23:21, Stefano Stabellini wrote:
> > On Tue, 5 Dec 2023, Julien Grall wrote:
> > > I agree that crashing a guest is bad, but is lying to the domain really
> > > better? The consequence here is not that bad and hopefully it would be
> > > fairly
> > > easy to find. But this is not always the case. So I definitely would place
> > > a
> > > half-backed emulation more severe than a guest crash.
> > 
> > 
> > I see where Julien is coming from, but I would go with option two:
> > "emulate DCC the same way as KVM". That's because I don't think we can
> > get away with crashing the guest in all cases. Although the issue came
> > up with a Linux guest, it could have been triggered by a proprietary
> > operating system that we cannot change, and I think Xen should support
> > running unmodified operating systems.
> > 
> > If we go with a "half-backed emulation" solution, as Julien wrote, then
> > it is better to be more similar to other hypervisors, that's why I chose
> > option two instead of option three.
> > 
> > But at the same time I recognize the validity of Julien's words and it
> > makes me wonder if we should have a KCONFIG option or command line
> > option to switch the Xen behavior. We could use it to gate all the
> > "half-backed emulation" we do for compatibility.  Something like:
> > 
> > config PARTIAL_EMULATION
> >      bool "Partial Emulation"
> >      ---help---
> >            Enables partial, not spec compliant, emulation of certain
> > register
> >      interfaces (e.g DCC UART) for guest compatibility. If you disable
> >      this option, Xen will crash the guest if the guest tries to access
> >      interfaces not fully emulated or virtualized.
> > 
> >      If you enable this option, the guest might misbehave due to non-spec
> >      compliant emulation done by Xen.
> 
> As I wrote to Ayan on Matrix today, I am not in favor of the emulation. Yet, I
> am not going to oppose (as in Nack it) if the other maintainers agree with it.

Thanks for being flexible


> The KConfig would be nice, the question is whether we want to (security)
> support such configuration? E.g. could this potentially introduce a security
> issue in the guest?

The important question is whether it could introduce a security issue in
Xen. If we think it wouldn't increase the attack surface significantly
then I would security support it otherwise not.


> Regarding the  emulation itself, I actually prefer 3 because at least the
> Linux drivers will be able to bail out rather than trying to use them.

I don't have a strong opinion between 2 and 3


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 22:18:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 22:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650207.1015534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBMh9-0004zK-Fc; Thu, 07 Dec 2023 22:18:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650207.1015534; Thu, 07 Dec 2023 22:18:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBMh9-0004zD-BB; Thu, 07 Dec 2023 22:18:11 +0000
Received: by outflank-mailman (input) for mailman id 650207;
 Thu, 07 Dec 2023 22:18: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 1rBMh7-0004vQ-CK; Thu, 07 Dec 2023 22:18: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 1rBMh7-0005gZ-2A; Thu, 07 Dec 2023 22:18: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 1rBMh6-00046V-N2; Thu, 07 Dec 2023 22:18:08 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBMh6-0000vB-Mc; Thu, 07 Dec 2023 22:18: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=VCtRfA0AtshtsgPoAlNx+RbohB5ug8I0VBLysRCWX7g=; b=scnPevLVRWk9X2eNPqkX+ooa6s
	U9bH1uYDB4OD/Xb87/LzDebDT17nBfohKKIgxhXlEYYT1+AlGxehQJgtRPNOq/TB1/Qeo0RwNPkhM
	POCZ50StDUP5mqjCN3c++VMerhFAcjWXpiBX7xNYjA/FbC2btgpFxtwSDDmIwXLBiEz8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184028-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184028: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=eccdab611c01aa40b6cefcfbcb4d23e54b4c0ec6
X-Osstest-Versions-That:
    ovmf=238690a30d02d3f95f0355c88c35dc0e4232342a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 22:18:08 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 eccdab611c01aa40b6cefcfbcb4d23e54b4c0ec6
baseline version:
 ovmf                 238690a30d02d3f95f0355c88c35dc0e4232342a

Last test of basis   184027  2023-12-07 17:11:00 Z    0 days
Testing same since   184028  2023-12-07 20:11:01 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Corvin KÃ¶hne <corvink@FreeBSD.org>
  Gerd Hoffmann <kraxel@redhat.com>
  Laszlo Ersek <lersek@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-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-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
   238690a30d..eccdab611c  eccdab611c01aa40b6cefcfbcb4d23e54b4c0ec6 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 23:27:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 23:27:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650212.1015542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBNls-0000O0-8Z; Thu, 07 Dec 2023 23:27:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650212.1015542; Thu, 07 Dec 2023 23:27:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBNls-0000Nt-61; Thu, 07 Dec 2023 23:27:08 +0000
Received: by outflank-mailman (input) for mailman id 650212;
 Thu, 07 Dec 2023 23:27: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 1rBNlq-0000Nj-Gd; Thu, 07 Dec 2023 23:27: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 1rBNlq-0006xd-An; Thu, 07 Dec 2023 23:27: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 1rBNlq-0005p3-0E; Thu, 07 Dec 2023 23:27:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBNlp-0000dF-Vw; Thu, 07 Dec 2023 23:27: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=VuluNkyAwaW24XGgeBGz036lbhgB5TlZi4rqoXDT4Jo=; b=khDjEQmr3ERPrcE1sbbi/4KciB
	pXGrIlCjOQ95COZPv6UVT/duDGOs1I/HQmRpUl18NMNG03JjccEipxINrtCscWmk/KrjQfUxsoZdO
	u3LVawsWEtsveGjjBzLCR8BGc+ezQjphyvwJFGbKh2tC4P9WTo/QdVnSChlZe07ea/h0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184030-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184030: 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=bc4fe94a69d4dab103c37045d97e589ef75f8647
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 07 Dec 2023 23:27:05 +0000

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

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                  bc4fe94a69d4dab103c37045d97e589ef75f8647
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184026  2023-12-07 16:02:06 Z    0 days
Testing same since   184030  2023-12-07 21:02:00 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Juergen Gross <jgross@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
   d2b7c442b4..bc4fe94a69  bc4fe94a69d4dab103c37045d97e589ef75f8647 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Dec 07 23:48:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Dec 2023 23:48:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650217.1015553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBO6m-0003vE-0T; Thu, 07 Dec 2023 23:48:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650217.1015553; Thu, 07 Dec 2023 23:48:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBO6l-0003v7-Tn; Thu, 07 Dec 2023 23:48:43 +0000
Received: by outflank-mailman (input) for mailman id 650217;
 Thu, 07 Dec 2023 23:48: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=YqrU=HS=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rBO6k-0003v1-R6
 for xen-devel@lists.xenproject.org; Thu, 07 Dec 2023 23:48:43 +0000
Received: from m202-219.mailgun.net (m202-219.mailgun.net [161.38.202.219])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 25983474-955b-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 00:48:41 +0100 (CET)
Received: from mg.gitlab.com (64.90.74.34.bc.googleusercontent.com
 [34.74.90.64]) by
 bb7f5cfc6550 with SMTP id 657259d6de2d347a6741c8b6 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Thu, 07 Dec 2023 23:48:38 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 25983474-955b-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1701992918; x=1702000118; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=aAFkazK6piUNvzDsILuU+h6URJFjEUCOBdYdUXVyrus=;
 b=FaoCuGcH05+37+vPo9eUZaWd3JH6cCEjS+sS843+g4C4EAHIvJRcAv0iNRntkYEwTj77ewBbr+hnbJUjxW44LcpGoJbUbRVRmaxUVXenEgcvesLjkjN4rn/65o6c8Eyev+xI3vaSpPg3gq0R4WuwH8CrItn/MCcd6hZXSoSuJfs=
X-Mailgun-Sending-Ip: 161.38.202.219
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Thu, 07 Dec 2023 23:48:38 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <657259d611203_2c951502355a@gitlab-sidekiq-catchall-v2-86d5bdf87f-qzf95.mail>
Subject: xen | Failed pipeline for staging | bc4fe94a
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_657259d69aaf_2c95150234cd";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1099444749
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_657259d69aaf_2c95150234cd
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1099444749 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: bc4fe94a ( https://gitlab.com/xen-project/xen/-/commit/bc4fe94a69d4dab103c37045d97e589ef75f8647 )
Commit Message: tools/libs/evtchn: replace assert()s in stubdom...
Commit Author: Juergen Gross ( https://gitlab.com/jgross1 )
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )


Pipeline #1099444749 ( https://gitlab.com/xen-project/xen/-/pipelines/1099444749 ) triggered by Ganis ( https://gitlab.com/ganis )
had 1 failed job.

Job #5706590895 ( https://gitlab.com/xen-project/xen/-/jobs/5706590895/raw )

Stage: test
Name: build-each-commit-gcc

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | bc4fe94a</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1099444749 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/bc4fe94a69d4dab103=
c37045d97e589ef75f8647" style=3D"color: #3777b0; text-decoration: none;">=

bc4fe94a
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
tools/libs/evtchn: replace assert()s in stubdom...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/0cac9c91cba4579c288f4be83125f17e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jgross1" style=3D"color: #3=
33333; text-decoration: none;">
Juergen Gross
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1099444749">#1099444749</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 1 failed job
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed job
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5706590895" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_657259d69aaf_2c95150234cd--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:00:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650256.1015563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOHy-0007Il-Lt; Fri, 08 Dec 2023 00:00:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650256.1015563; Fri, 08 Dec 2023 00:00:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOHy-0007Ie-IF; Fri, 08 Dec 2023 00:00:18 +0000
Received: by outflank-mailman (input) for mailman id 650256;
 Fri, 08 Dec 2023 00:00:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBOHw-0007Fc-CY
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:00:16 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20622.outbound.protection.outlook.com
 [2a01:111:f400:7d00::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c23d612d-955c-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 01:00:14 +0100 (CET)
Received: from DB8PR04CA0010.eurprd04.prod.outlook.com (2603:10a6:10:110::20)
 by VE1PR08MB5759.eurprd08.prod.outlook.com (2603:10a6:800:1b3::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 00:00:05 +0000
Received: from DU6PEPF0000A7DF.eurprd02.prod.outlook.com
 (2603:10a6:10:110:cafe::7e) by DB8PR04CA0010.outlook.office365.com
 (2603:10a6:10:110::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Fri, 8 Dec 2023 00:00:05 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000A7DF.mail.protection.outlook.com (10.167.8.36) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 00:00:04 +0000
Received: ("Tessian outbound 8289ea11ec17:v228");
 Fri, 08 Dec 2023 00:00:04 +0000
Received: from 77b1333ed8ce.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 B2EFB638-849B-4698-93B3-C8E09287AA2B.1; 
 Thu, 07 Dec 2023 23:59:57 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 77b1333ed8ce.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Thu, 07 Dec 2023 23:59:57 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by PAWPR08MB9447.eurprd08.prod.outlook.com (2603:10a6:102:2e5::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Thu, 7 Dec
 2023 23:59:54 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Thu, 7 Dec 2023
 23:59: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: c23d612d-955c-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=WKR2FOYEjvHnOU06f6NYXw8c4FBXuq8w94hdgwxg9FxI6Y5uoKv9EHnpNEdQAHDdAGG+rTkUlM6B0WGdIZKQLRx/rlkLn4CRcwiVBzAdh/Zj7u7tFZfW6GRQAYf0i1bvXRvA22GAURqrZ33XGpNp8jImspbFCdbUUInCPQEBwB+HWqtjehecnSvzVu0KFO4WL8zJxCBKQSqmOfVMgEJ+GEUBk1RPeJDR5R63TqJTS8YA53jz/b9VkceTwczyptCI9lLsoNjiMRHQ+C2V1vQugLyFGrvfI+bVEK2iQzpbhGJpUjlAHlUuDkaRFGgdOBICIB81u6l07Nm+LebGTTGbdw==
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=boPBa4VejgfHo42zyExBK0i5u1UMVZmfKNpu9PWdb1o=;
 b=OQKS9EwdVmo+qiY1hhHVZqMkSfSi1oBncojh91cWCPnWqL9khnLV25CbzQwYRQ7aS1z8+Is0Xnf9AOiyJ7GAnHnf+WK4RIxksSr1fPafMgKFHcrFuze9y0WGuWg1cpwZZ10w9uXUFy8f01f8H4snVcylrroZQWZfOmYxnLlG7u9tBD6y5x+syrpWXyPsPDLVjNGYczhY8TTS9nfepPfk0y+RuBwe3ESeSz22WB8QYcYHhP+ifj3A5zGKdzfWBG1b6ii6xXMLCH+Mv9oTMxlL9PkSk/LIX8yGXxDSYxNDoCBmi5CEk4NbzrFcH03qtjad9b4kgViG6PyjVW8cONC6tw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=boPBa4VejgfHo42zyExBK0i5u1UMVZmfKNpu9PWdb1o=;
 b=KjbKbFEStTmwPF6I5rnkRTC1kqx0hc2B32v4WVkq8EAToc8hOXZyP7TeovmYv5O87Vr8WqjXPvCNsETb0Ds1lymsvFw8PfhJB7rkNV8xO4fz29xlqLvIRJU886wWnDPDVsNZ60OTWkfTigAndYZDhQ2G0nJJdgZ9JI5sNyadu/A=
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=armh.onmicrosoft.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: 48b4da49aee17f2c
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fM5OXgM0LqlfVas/k7bYSQfh6aYgsf3ZXvRNBgs3Z1MC6MJkoRzyN2enYxeg2cy6XiuyIVImuY3VznBX/eMAKHJC1BkcGP+1ido/8tFgawDYBnLvloUfTdLaZoAO2zqnVKFV7+VfigPu0aEuouLGT7xqSVuX4KDGdivFO2HcxJicxHo/8aN4jzmJWrsqacmlOHeJwIzh/rVspnJMAtw8BEnL8gVp5zuR+Vq7HIPSPO3gEwTqrCJ/dwTHiUfkaJeH6nQe0ZfS4w4/Ve0kRFRyIRbX29mB86CxBCCwOkf0nPoKDAq+7VCWKpAGRr81J6Et3Gvio5IJfXiLJX8JSCANhA==
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=boPBa4VejgfHo42zyExBK0i5u1UMVZmfKNpu9PWdb1o=;
 b=e1HavqCvVktMQVvrjwMwbLbeIgxzdxG8o2SWh6z1nCFC0hxex8QlpvQ5yk+MXRXVugfEwpmSK/b7HlQiWFCNG8+aybInmWEOVgSjxv/smWmnK+fHa3gsZrKeT13uBbI2UAsVYe9yqO9GQ9L/JgH3wxxc+C2E1H6kNiSrRQz0uY+/czy1yiiBBx17Y+Bt9C9HszFTnk/m+1rHXI/lQ4odjN3+CYik860ztwHjDYBgMZB1SrXty9TNcT/CJrIn/dP1S2Llwqy6tWNR6wGH4pMztFAVmTXCC7TAKg24B0Otm4Pmej6q/yAwixOnQKcXiRAZ736zmXyAFZP59olgt5tY0Q==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=boPBa4VejgfHo42zyExBK0i5u1UMVZmfKNpu9PWdb1o=;
 b=KjbKbFEStTmwPF6I5rnkRTC1kqx0hc2B32v4WVkq8EAToc8hOXZyP7TeovmYv5O87Vr8WqjXPvCNsETb0Ds1lymsvFw8PfhJB7rkNV8xO4fz29xlqLvIRJU886wWnDPDVsNZ60OTWkfTigAndYZDhQ2G0nJJdgZ9JI5sNyadu/A=
From: Henry Wang <Henry.Wang@arm.com>
To: Oleksii <oleksii.kurochko@gmail.com>, Julien Grall <julien@xen.org>
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>, Stefano Stabellini <sstabellini@kernel.org>, Wei
 Liu <wl@xen.org>
Subject: Re: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
Thread-Topic: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
Thread-Index: AQHaKSldo7hFZj4qPEe+Lgu8crXqgbCeKRCAgAAn3QCAAC+lgA==
Date: Thu, 7 Dec 2023 23:59:54 +0000
Message-ID: <581CA0BA-02BD-4696-A0E3-BE58568C2479@arm.com>
References: <20231207162036.1921323-1-Henry.Wang@arm.com>
 <90575ebd-4b09-47bd-a4ee-2f081020b2ad@xen.org>
 <38ed531570ef67b6b1f95ba5fa44bb37821bca9e.camel@gmail.com>
In-Reply-To: <38ed531570ef67b6b1f95ba5fa44bb37821bca9e.camel@gmail.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|PAWPR08MB9447:EE_|DU6PEPF0000A7DF:EE_|VE1PR08MB5759:EE_
X-MS-Office365-Filtering-Correlation-Id: a476220d-e480-432a-9fc8-08dbf780a1d5
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 dD+dqSSNJUdDAS8OpP9qbVIOKxS+0+xXhEwMRdWOS/yOv/+AFn50CpWBVicgLAI7jZ6+w2s1eVRfMj/6TreqhlT7EoYuHSNVFpLZ6FWg6cKBpMLdHEE0/s9QouTsqpUcVAuwl1OwrHU1hzG1BjmP55kRkFbc3twuGfzntyd/p+EgtAbCSV8um76hnZT3uyTqz186NEXbvhJpubqqyDYZkWNbZTwJsYsp67TrIFdjon7MkK9ZlJDfG1iT2f6OdVBHI4GmrLTiZNTiT5lX1H4hDcqIeWUyYkMzFqDKjgWJGvgRxBNRZAu9gkl8W99dE8ps5ac4oQPD+EByMSNNfLGEaKn8QWfbW3XWm/OpuGuvOZ598uHZvWe63PT+EnX/O04UNOUMnJ/z23f4UHI4OuHju0yKXb0pVe10BA0e1KXzcjKFw0PIBAn3w4JQkXj9StsdSUscxn+xtz1panb5VTcEp2h/ka2j10ZCymmNgn+ALmrtJD0tTTsFvGEX0daUHsF/uGdo1nq0bHHbQwsgvYL/Va4O8kHRYnCkOEF2rklNjjPZ/cHyT+riBosL/CP9oe/7OvnGmruSmQa27W5d24p8cXsFe/nc4J3kPHYHNRbVjV+cYh/XndnYuuO7Qpsc3AKPIJi36pHs3EBZmZaVBZ6RGA==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(136003)(396003)(346002)(376002)(39860400002)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(71200400001)(53546011)(6506007)(6512007)(8676002)(8936002)(26005)(6486002)(2616005)(478600001)(122000001)(38100700002)(66946007)(316002)(54906003)(66476007)(64756008)(110136005)(66556008)(66446008)(76116006)(91956017)(38070700009)(41300700001)(86362001)(5660300002)(33656002)(36756003)(4326008)(2906002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <359737ED939BCC428CC669AEFCC5D987@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9447
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:
 DU6PEPF0000A7DF.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3c57b222-19ba-43af-9a42-08dbf7809b95
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hwt2Mt0L9oXwHQp26S0tBLx6i1MaNok4FAyUStYRahiBDeEupweXJKDlpVMO+VCZQ+rh9t38+Bz6VwcfunDqoiKl7mAlzBL7uVGALMxsmSnqwf0244tKaQmcuyzoy9t5j90qHSJKQfIwq1mhJK/U9oSoHSQo8KIf0MguoxbE2b55mDT2SYQibxbeoxL3vurDjOnZsHrKXoGhHMYHw612H2+74LmRdTfEKvlsLOlfY2MdZFJFY0FTFuAnM+oDEpNYgHUQDcPZhdrNU+oBEE716vJdRIkhVdexn7JQhMlfgY0sRCg7pbBUAH6d28ga5vjHcJAOELTMzDURwUH94lAEi9UuadzLhVWx9UC7jmW8jl0ugX242UFm1rjTUXegT6tsCBuYXcPUWicKbJ5j53hVTJUSxwfZS/wK259K+rVyKn8tY/ZB4sgemULtxm1aUn/4rTEr+LtBgTnDm0yop+bIAydJzwkcqJoYCZ21DoeJx+ronKpau8AW6RR1/ZVT3dgjQ4LOIcBydd5YzQZIrczK1aLfUzjo55ipkJIUkxPg0kqxQPzD0JE0wOiSaipLt3UQNvT/YV2p7TOEorDKSC6ynzGq1K+Wd/V31RuL78PzmIxLjbCvgEWrkgf+MnhWx0xdeE/6+HUZ5EIlvNak/O0zxj9gLzvUHId9nzJ9eiAiYZx0dY12ywFi6Z7hMuFPPc2dF+8YsWy8uZZe64HAZgwxjydmt0UAM/O7PYRRFoldHbh3z9PBmoEWkBVhN93uxeol
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:(13230031)(4636009)(376002)(396003)(346002)(39850400004)(136003)(230922051799003)(82310400011)(64100799003)(186009)(451199024)(1800799012)(46966006)(36840700001)(40470700004)(316002)(110136005)(54906003)(70206006)(8936002)(4326008)(8676002)(70586007)(6486002)(40460700003)(478600001)(5660300002)(36756003)(41300700001)(33656002)(2906002)(86362001)(2616005)(26005)(336012)(36860700001)(40480700001)(6506007)(53546011)(356005)(82740400003)(6512007)(47076005)(81166007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 00:00:04.5907
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a476220d-e480-432a-9fc8-08dbf780a1d5
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:
	DU6PEPF0000A7DF.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5759

SGkgSnVsaWVuLCBPbGVrc2lpLA0KDQo+IE9uIERlYyA4LCAyMDIzLCBhdCAwNTowOSwgT2xla3Np
aSA8b2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20+IHdyb3RlOg0KPiANCj4gSGkgSnVsaWVuIGFu
ZCBIZW5yeSwNCj4gDQo+IE9uIFRodSwgMjAyMy0xMi0wNyBhdCAxODo0NiArMDAwMCwgSnVsaWVu
IEdyYWxsIHdyb3RlOg0KPj4gSGksDQo+PiANCj4+IE9uIDA3LzEyLzIwMjMgMTY6MjAsIEhlbnJ5
IFdhbmcgd3JvdGU6DQo+Pj4gSSd2ZSBmaW5pc2hlZCB0aGUgb3Bwb3J0dW5pdHkgdG8gZG8gdHdv
IHJlbGVhc2VzICg0LjE3IGFuZCA0LjE4KQ0KPj4+IGFuZCBPbGVrc2lpIEt1cm9jaGtvIGhhcyB2
b2x1bnRlZXJlZCB0byBiZSB0aGUgbmV4dCByZWxlYXNlDQo+Pj4gbWFuYWdlci4NCj4+IA0KPj4g
SGVucnksIHRoYW5rcyBmb3IgeW91ciB0aW1lIGFzIHJlbGVhc2UgbWFuYWdlci4NCg0KVGhhbmsg
eW91IEp1bGllbiBmb3IgeW91ciBraW5kIHN1cHBvcnQgYXMgdGhlIHJlbGVhc2UgdGVjaG5pY2lh
biENCg0KPj4gT2xla3NpaSwgdGhhbmtzIGZvciBzdGVwcGluZyB1cCBhbmQgZ29vZCBsdWNrIGZv
ciB0aGUgcm9sZSENCj4gVGhhbmsgeW91IHZlcnkgbXVjaC4NCj4gDQo+IEp1c3Qgb25lIHF1ZXN0
aW9uOiBJcyBpdCBuZWNlc3NhcnkgdG8gcHJvdmlkZSBteSBBQ0s/DQoNCk9sZWtzaWk6IFllcyBw
bGVhc2UsIHlvdXIgYWNrIG1lYW5zIHlvdSBhcmUgaGFwcHkgd2l0aCB0YWtpbmcgdGhlIHJvbGUu
DQoNCkFsc28sIGFueSB0aGluZyB0aGF0IHlvdSBuZWVkLCBwbGVhc2UgZG9u4oCZdCBoZXNpdGF0
ZSB0byByZWFjaCBvdXQuIEkgd2lsbCBzdGljaw0KdG8gdGhlIGNvbW11bml0eSAobW9yZSBhcyB0
aGUgY29kZSBjb250cmlidXRvciB0aG91Z2gpIHNvIEkgd2lsbCBiZSBtb3JlDQp0aGFuIGhhcHB5
IHRvIGhlbHAuDQoNCj4+PiBIYW5kIG92ZXIgdGhlIHJvbGUgdG8gaGltIGJ5IGNoYW5naW5nIHRo
ZSBtYWludGFpbmVyc2hpcCBvZiB0aGUNCj4+PiBDSEFOR0VMT0cubWQuDQo+Pj4gDQo+Pj4gU2ln
bmVkLW9mZi1ieTogSGVucnkgV2FuZyA8SGVucnkuV2FuZ0Bhcm0uY29tPg0KPj4gDQo+PiBBY2tl
ZC1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4NCj4+IA0KPj4gSSBkaWRuJ3Qg
aGVhciBhbnkgb2JqZWN0aW9uIGR1cmluZyB0aGUgY29tbXVuaXR5IGNhbGwuIEJ1dCBJIHdpbGwN
Cj4+IGdpdmUgDQo+PiB1bnRpbCBUdWVzZGF5IG1vcm5pbmcgKFVLIHRpbWUpIGp1c3QgaW4gY2Fz
ZS4gSWYgdGhlcmUgYXJlIG5vbmUsIHRoZW4NCj4+IEkgDQo+PiB3aWxsIGNvbW1pdCBpdC4NCg0K
VGhhbmtzIEp1bGllbi4NCg0KS2luZCByZWdhcmRzLA0KSGVucnkNCg0KPj4gDQo+PiBDaGVlcnMs
DQo+PiANCj4gDQo+IH4gT2xla3NpaQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:08:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:08:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650260.1015572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOQG-0000O2-Ij; Fri, 08 Dec 2023 00:08:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650260.1015572; Fri, 08 Dec 2023 00: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 1rBOQG-0000Nv-GD; Fri, 08 Dec 2023 00:08:52 +0000
Received: by outflank-mailman (input) for mailman id 650260;
 Fri, 08 Dec 2023 00:08:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBOQF-0000Np-AY
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:08:51 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f62729c7-955d-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 01:08:49 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 6B74EB81A45;
 Fri,  8 Dec 2023 00:08:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F57BC433C8;
 Fri,  8 Dec 2023 00:08: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: f62729c7-955d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701994127;
	bh=1Lstv9euzF3GpKNQybHeDvRA5dF5HDoef8qhzVKi1eY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TApoxv7RkAqrzKOLQQmSlzP4imKjRojEIGyHFrQOW8iLUhzZphgAGEK6eMZPMV3+4
	 x1D6cTq0WQeMuEKQQvPD25cAJa+afxBae9IvCYfGzUJT2i25hioqewBTo8CzJsIaDn
	 jXsJmLMUwlLROsmM6DfLxbkHiIfx291dhsx/8SYKE+7TtIChm8U14N0A/34sHNUNaI
	 ry1zAywHZSdc7r/jYomRCHlolZoepvCJmoGe/BM8uATyBIZrYPewVmEcLeqDERm4Go
	 pk2q3npspo4WcC5TJvbU8G3YBKCMpB73Ts7oFhe+yEMHiFQtGsko+B0/1RJ9iyX8wx
	 jqup3rwEBkdaw==
Date: Thu, 7 Dec 2023 16:08:44 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, andrew.cooper3@citrix.com, 
    george.dunlap@citrix.com, julien@xen.org, bertrannd.marquis@arm.com, 
    roger.pau@citrix.com, roberto.bagnara@bugseng.com, 
    federico.serafini@bugseng.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] docs/misra/rules.rst: add more rules
In-Reply-To: <12c7da9c-245e-48b7-98f9-2bf0f29b7621@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312071606000.1265976@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2312051859440.110490@ubuntu-linux-20-04-desktop> <ccdbe84d-24ca-41f0-bc1f-fb9499c73880@suse.com> <alpine.DEB.2.22.394.2312061819090.1265976@ubuntu-linux-20-04-desktop> <12c7da9c-245e-48b7-98f9-2bf0f29b7621@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, 7 Dec 2023, Jan Beulich wrote:
> On 07.12.2023 03:42, Stefano Stabellini wrote:
> > On Wed, 6 Dec 2023, Jan Beulich wrote:
> >> On 06.12.2023 04:02, Stefano Stabellini wrote:
> >>> --- a/docs/misra/rules.rst
> >>> +++ b/docs/misra/rules.rst
> >>> @@ -462,11 +462,23 @@ maintainers if you want to suggest a change.
> >>>  
> >>>         while(0) and while(1) and alike are allowed.
> >>>  
> >>> +   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
> >>> +     - Required
> >>> +     - An unconditional break statement shall terminate every
> >>> +       switch-clause
> >>> +     - In addition to break, also other flow control statements such as
> >>> +       continue, return, goto are allowed.
> >>> +
> >>>     * - `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c>`_
> >>>       - Required
> >>>       - A switch-expression shall not have essentially Boolean type
> >>>       -
> >>>  
> >>> +   * - `Rule 17.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
> >>> +     - Required
> >>> +     - The features of <stdarg.h> shall not be used
> >>> +     -
> >>
> >> Did we really accept this without any constraint (warranting mentioning
> >> here)?
> > 
> > We agreed that in certain situations stdarg.h is OK to use and in those
> > cases we would add a deviation. Would you like me to add something to
> > that effect here? I could do that but it would sound a bit vague.  Also
> > if we want to specify a project-wide deviation it would be better
> > documented in docs/misra/deviations.rst. I would leave Rule 17.1 without
> > a note.
> 
> I can see your point, and I don't have a good suggestion on possible text.
> Still I wouldn't feel well ack-ing this in its present shape.

What about:

     - It is understood that in some limited circumstances <stdarg.h> is
       appropriate to use, such as the implementation of printk. Those
       cases will be dealt with using deviations as usual, see
       docs/misra/deviations.rst and
       docs/misra/documenting-violations.rst.



> >>> @@ -478,12 +490,24 @@ maintainers if you want to suggest a change.
> >>>         have an explicit return statement with an expression
> >>>       -
> >>>  
> >>> +   * - `Rule 17.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_05.c>`_
> >>> +     - Advisory
> >>> +     - The function argument corresponding to a parameter declared to
> >>> +       have an array type shall have an appropriate number of elements
> >>> +     -
> >>> +
> >>>     * - `Rule 17.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_06.c>`_
> >>>       - Mandatory
> >>>       - The declaration of an array parameter shall not contain the
> >>>         static keyword between the [ ]
> >>>       -
> >>>  
> >>> +   * - `Rule 17.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_07.c>`_
> >>> +     - Required
> >>> +     - The value returned by a function having non-void return type
> >>> +       shall be used
> >>> +     -
> >>
> >> Same question here.
> > 
> > Here I was also thinking it might be good to add a comment. Maybe we could
> > add:
> > 
> >      - Please beware that this rule has many violations in the Xen
> >        codebase today, and its adoption is aspirational. However, when
> >        submitting new patches please try to decrease the number of
> >        violations when possible.
> 
> Yea, I think this would be good to add.

I sent out a patch with this addition, and removing Rule 17.1 as that
one is a bit more complicated.


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:10:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:10:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650262.1015583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBORV-0001kW-TY; Fri, 08 Dec 2023 00:10:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650262.1015583; Fri, 08 Dec 2023 00: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 1rBORV-0001kP-Pb; Fri, 08 Dec 2023 00:10:09 +0000
Received: by outflank-mailman (input) for mailman id 650262;
 Fri, 08 Dec 2023 00: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBORU-0001kJ-Ms
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:10:08 +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 2347ecd3-955e-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 01:10:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 44C57CE1F68;
 Fri,  8 Dec 2023 00:10:00 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4C167C433C7;
 Fri,  8 Dec 2023 00:09:58 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2347ecd3-955e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701994199;
	bh=tHrOx/qdz5H68a9f3qKTXOuNrb27A8wS5L+D0AyS1w4=;
	h=Date:From:To:cc:Subject:From;
	b=KmzruPsDw4ZSrIFphB1b0p1x7OF2SQVrqRRWzIAqJduSDSEcE5U9i1VKqrNhbasK/
	 haB7hHjx/5iWn7Gs33VcTZMJoT6zVNTArAyGzka+XaCseAmh0pBSpRya6BNDEaJsEW
	 VUcwB/w8ziMPGY9DPiM9j0LTwFdFuVdxMzJQ7J1XOiv6OGq8PXdPzMiUopN0O3lGRj
	 USz9E/5ijPF3MWZOpEex/WkrqaV3XaIxO1O7LfEO5AOfcB+7GW301cBKFg62Bd+LEk
	 GJq90VHIclAlDmlrDUgz9P6R+s9h3NRtfVxCG5yxJc2p/rbjffGg/aLR/MlCJXzVSX
	 Grv8plJbiMyGw==
Date: Thu, 7 Dec 2023 16:09:56 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: andrew.cooper3@citrix.com, jbeulich@suse.com, george.dunlap@citrix.com, 
    julien@xen.org, sstabellini@kernel.org, bertrand.marquis@arm.com, 
    roger.pau@citrix.com, roberto.bagnara@bugseng.com, 
    federico.serafini@bugseng.com
Subject: [PATCH v2] docs/misra/rules.rst: add more rules
Message-ID: <alpine.DEB.2.22.394.2312071609060.1265976@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 the rules accepted in the last three MISRA C working group meetings.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v2:
- remove 17.1 for now, to be a separate patch
- add a clarification comment for 17.7
---
 docs/misra/rules.rst | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 75921b9a34..2b570af0e0 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -462,6 +462,13 @@ maintainers if you want to suggest a change.
 
        while(0) and while(1) and alike are allowed.
 
+   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
+     - Required
+     - An unconditional break statement shall terminate every
+       switch-clause
+     - In addition to break, also other flow control statements such as
+       continue, return, goto are allowed.
+
    * - `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c>`_
      - Required
      - A switch-expression shall not have essentially Boolean type
@@ -478,12 +485,27 @@ maintainers if you want to suggest a change.
        have an explicit return statement with an expression
      -
 
+   * - `Rule 17.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_05.c>`_
+     - Advisory
+     - The function argument corresponding to a parameter declared to
+       have an array type shall have an appropriate number of elements
+     -
+
    * - `Rule 17.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_06.c>`_
      - Mandatory
      - The declaration of an array parameter shall not contain the
        static keyword between the [ ]
      -
 
+   * - `Rule 17.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_07.c>`_
+     - Required
+     - The value returned by a function having non-void return type
+       shall be used
+     - Please beware that this rule has many violations in the Xen
+       codebase today, and its adoption is aspirational. However, when
+       submitting new patches please try to decrease the number of
+       violations when possible.
+
    * - `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
@@ -498,6 +520,11 @@ maintainers if you want to suggest a change.
        instances where Eclair is unable to verify that the code is valid
        in regard to Rule 19.1. Caution reports are not violations.
 
+   * - `Rule 20.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_04.c>`_
+     - Required
+     - A macro shall not be defined with the same name as a keyword
+     -
+
    * - `Rule 20.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_07.c>`_
      - Required
      - Expressions resulting from the expansion of macro parameters
@@ -506,6 +533,13 @@ maintainers if you want to suggest a change.
        as function arguments, as macro arguments, array indices, lhs in
        assignments
 
+   * - `Rule 20.9 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_09.c>`_
+     - Required
+     - All identifiers used in the controlling expression of #if or
+       #elif preprocessing directives shall be #define'd before
+       evaluation
+     -
+
    * - `Rule 20.13 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_13.c>`_
      - Required
      - A line whose first token is # shall be a valid preprocessing
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:18:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:18:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650266.1015593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOZD-0003Bj-KM; Fri, 08 Dec 2023 00:18:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650266.1015593; Fri, 08 Dec 2023 00:18: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 1rBOZD-0003Bc-Gz; Fri, 08 Dec 2023 00:18:07 +0000
Received: by outflank-mailman (input) for mailman id 650266;
 Fri, 08 Dec 2023 00: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBOZC-0003BW-5S
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:18:06 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 410e1e7f-955f-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 01:18:04 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id BE0B9B82A3A;
 Fri,  8 Dec 2023 00:18:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D15C0C433C7;
 Fri,  8 Dec 2023 00:18: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: 410e1e7f-955f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701994683;
	bh=8m8gThuAFHN6+EhkQGQNFfzdMqA2bZ0WaP37wrRXwmc=;
	h=Date:From:To:cc:Subject:From;
	b=l8uW8Gkg9516QydKURE7B9KPez+mx1dXBeN0a9EDbyT4yjjuDd7jRVBRn85TA6wD4
	 8KQjeSrCiZFzmRmxYmPbYYzcEStEdSSJrzRuqW77W2Lsq6Cx50Py2F1Cxzk8TAYkle
	 QmtXKD7F986iyy+xgaE+Xt4/tXHkuE1O0q8Xc33fSJJegWIwd8vm6LSobknMiqlidt
	 xtjYSJJNZFDebFHhe/Kt5CKCXYb8TO2bRKKaQ+P5CtPS0wBrQEMFYuR24dKCo0v0rO
	 xF9wkI7lm5QhQRrFkH5WRX/tc9tZnd9BG62kgnB6WQARJX3MPQAdUVsv7MB6ky+irv
	 E5FaMxiOCyyFg==
Date: Thu, 7 Dec 2023 16:18:00 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: andrew.cooper3@citrix.com, jbeulich@suse.com, george.dunlap@citrix.com, 
    julien@xen.org, sstabellini@kernel.org, bertrand.marquis@arm.com, 
    roger.pau@citrix.com, roberto.bagnara@bugseng.com, 
    federico.serafini@bugseng.com
Subject: [PATCH] docs/misra/rules.rst: add Rule 16.2
Message-ID: <alpine.DEB.2.22.394.2312071612330.1265976@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


Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 2b570af0e0..7cb9544a96 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -469,6 +469,15 @@ maintainers if you want to suggest a change.
      - In addition to break, also other flow control statements such as
        continue, return, goto are allowed.
 
+   * - `Rule 16.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_02.c>`_
+     - Required
+     - A switch label shall only be used when the most closely-enclosing
+       compound statement is the body of a switch statement
+     - The x86 emulator (xen/arch/x86/x86_emulate*) is exempt from
+       compliance with this rule. Efforts to make the x86 emulator
+       adhere to Rule 16.2 would result in increased complexity and
+       maintenance difficulty, and could potentially introduce bugs. 
+
    * - `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c>`_
      - Required
      - A switch-expression shall not have essentially Boolean type


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:31:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:31:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650269.1015602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOlV-0006RU-M9; Fri, 08 Dec 2023 00:30:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650269.1015602; Fri, 08 Dec 2023 00:30:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOlV-0006RN-JM; Fri, 08 Dec 2023 00:30:49 +0000
Received: by outflank-mailman (input) for mailman id 650269;
 Fri, 08 Dec 2023 00:30: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBOlU-0006RH-Bo
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:30:48 +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 067f6d97-9561-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 01:30:45 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 2DED36225A;
 Fri,  8 Dec 2023 00:30:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77CFAC433C7;
 Fri,  8 Dec 2023 00:30: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: 067f6d97-9561-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701995443;
	bh=rQ+S/PPmFmkuuRVo8a6LonEI7Q94VMLt8Z05bVUjT9Q=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fqKRNJsGc75lEDzc6vm9oo9r51ghzPg+R/qFQOhVmqRS3WvoSrCjdB5XFPPxxjgxW
	 OI/GYa+LeNDbUyWfPExNpHt0HxDKDp2fKcXg0V8tz4lCWT4ldfBcZkUtpSMR9nPN7y
	 xATgNNqDjemXcsKPbtVp3vIAFdoUH+lsEgeHZIBfRLQQ1BEpr92FdYh6YzS1FL0PqS
	 twSE1C/JR2vErJw0BGjMDUewE+iF56UaX9zUP3ES2exnquxMU8gtJGJnH6kgoUwyQg
	 bePZzAkL3Qi4SytzwFn2G5DbQS8V2poI3vpYcH4hTqx7LOvfNALqh9WT7Dj9ZgZz1o
	 RPJU+5XEIfgug==
Date: Thu, 7 Dec 2023 16:30:40 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Federico Serafini <federico.serafini@bugseng.com>, 
    xen-devel@lists.xenproject.org, 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>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012
 Rule 16.3
In-Reply-To: <866ae09f-8e21-4f1b-a82e-8b72cc0f34e8@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312071628130.1265976@ubuntu-linux-20-04-desktop>
References: <4fa08aaed77d2b68db39ce51beef29820f1ba9b0.1701940034.git.federico.serafini@bugseng.com> <866ae09f-8e21-4f1b-a82e-8b72cc0f34e8@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Dec 2023, Julien Grall wrote:
> Hi Federico,
> 
> On 07/12/2023 09:08, Federico Serafini wrote:
> > MISRA C:2012 Rule 16.3 states that an unconditional break statement
> > shall terminate every switch-clause.
> > 
> > Update ECLAIR configuration to take into account:
> > - continue, goto, return statements;
> > - functions and macros that do not give the control back;
> > - fallthrough comments and pseudo-keywords.
> > 
> > Update docs/misra/deviations.rst accordingly.
> > 
> > Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> > ---
> >   .../eclair_analysis/ECLAIR/deviations.ecl     | 18 ++++++++++++++
> >   docs/misra/deviations.rst                     | 24 +++++++++++++++++++
> >   2 files changed, 42 insertions(+)
> 
> It would be good that this is depending on to be accepted:
> 
> https://lore.kernel.org/alpine.DEB.2.22.394.2312051859440.110490@ubuntu-linux-20-04-desktop.
> 
> > 
> > diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl
> > b/automation/eclair_analysis/ECLAIR/deviations.ecl
> > index b0c79741b5..df0b58a010 100644
> > --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> > +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> > @@ -321,6 +321,24 @@ statements are deliberate"
> >   -config=MC3R1.R14.3,statements={deliberate ,
> > "wrapped(any(),node(if_stmt))" }
> >   -doc_end
> >   +#
> > +# Series 16.
> > +#
> > +
> > +-doc_begin="Switch clauses ending with continue, goto, return statements
> > are safe."
> > +-config=MC3R1.R16.3,terminals+={safe,
> > "node(continue_stmt||goto_stmt||return_stmt)"}
> > +-doc_end
> > +
> > +-doc_begin="Switch clauses not ending with the break statement are safe if
> > a function/macro that does not give the control back is present."
> > +-config=MC3R1.R16.3,terminals+={safe,
> > "call(decl(name(__builtin_unreachable||do_unexpected_trap||fatal_trap||machine_halt||machine_restart||maybe_reboot||panic)))"}
> > +-config=MC3R1.R16.3,terminals+={safe,"macro(name(BUG||BUG_ON))"}
> > +-doc_end
> > +
> > +-doc_begin="Switch clauses not ending with the break statement are safe if
> > an explicit comment or pseudo-keyword indicating the fallthrough intention
> > is present."
> > +-config=MC3R1.R16.3,reports+={safe,
> > "any_area(any_loc(any_exp(text(^(?s).*([fF]all[- ]?[tT]hrough|FALL[-
> > ]?THROUGH).*$,0..1))))"}
> > +-config=MC3R1.R16.3,reports+={safe, "any_area(text(^(?s).*([fF]all[-
> > ]?[tT]hrough|FALL[- ]?THROUGH).*$,0..1))"}
> 
> This is not trivial to read. Can you document the exhaustive list of keywords
> you are actually trying to deviate on? Also, did you consider to harmonize to
> only a few?
> 
> > +-doc_end
> > +
> >   #
> >   # Series 20.
> >   #
> > diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> > index 6e7c4f25b8..fecd2bae8e 100644
> > --- a/docs/misra/deviations.rst
> > +++ b/docs/misra/deviations.rst
> > @@ -270,6 +270,30 @@ Deviations related to MISRA C:2012 Rules:
> >          statements are deliberate.
> >        - Project-wide deviation; tagged as `disapplied` for ECLAIR.
> >   +   * - R16.3
> > +     - Switch clauses ending with continue, goto, return statements are
> > safe.
> > +     - Tagged as `safe` for ECLAIR.
> > +
> > +   * - R16.3
> > +     - Switch clauses not ending with the break statement are safe if a
> > +       function/macro that does not give the control back is present.
> > +     - Tagged as `safe` for ECLAIR, such functions/macros are:
> > +        - __builtin_unreachable
> > +        - do_unexpected_trap
> > +        - fatal_trap
> > +        - machine_halt
> > +        - machine_restart
> > +        - maybe_reboot
> > +        - panic
> > +        - BUG
> 
> To me, it seems to be odd to deviate R16.3 by function. Some of those have an
> attribute noreboot. Can this be used?

Just to clarify, I think Julien meant "noreturn" which is defined as
__attribute__((__noreturn__))

I think we need to deviate by function, rather than using SAF, because
we would have to use SAF in every switch rather than at the declaration
of panic and friends. But if we could use noreturn, that would be
awesome.


> > +        - BUG_ON
> 
> BUG_ON() can return if the condition is false. So it doesn't look correct to
> deviate with the argument that the function doesn't give the control back...

+1


> > +
> > +   * - R16.3
> > +     - Switch clauses not ending with the break statement are safe if an
> > +       explicit comment or pseudo-keyword indicating the fallthrough
> > intention
> > +       is present.
> > +     - Tagged as `safe` for ECLAIR.
> > +
> >      * - R20.7
> >        - Code violating Rule 20.7 is safe when macro parameters are used:
> >          (1) as function arguments;


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:34:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:34:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650271.1015612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOp3-00073I-4c; Fri, 08 Dec 2023 00:34:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650271.1015612; Fri, 08 Dec 2023 00: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 1rBOp3-00073B-1d; Fri, 08 Dec 2023 00:34:29 +0000
Received: by outflank-mailman (input) for mailman id 650271;
 Fri, 08 Dec 2023 00: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBOp2-000733-H8
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:34:28 +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 8998739e-9561-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 01:34:26 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id F3D07CE236D;
 Fri,  8 Dec 2023 00:34:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3DF81C433C7;
 Fri,  8 Dec 2023 00:34: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: 8998739e-9561-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701995660;
	bh=OMiA2fe2ve3Hg2YLWwV9q1eCjNQfCu+KhtgqmkP6SAY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=P74ZO1kOK426BQySA//nxXRIMzj9iNCOfAhMqPLoItLNUHI5jibHMTxhDeb7Q6fk9
	 VJ33n4VmnLhwGKoO/uGGworz4kGfiMyplPkzmyVZ8f5asZIl7xG7BpzRoV6dDOjlOc
	 ieJoUDpuIZCSQbJLTKnnIkuwF4IB6b3NJmNRrYUs3saopDi+K6wOOuvAli83UGq80u
	 UUU6eDSIcVpVbAn7Px3wGeQXeKm6BpXeV23Ma6kNVxMrAFRUpCSmXT57udZjM1xqve
	 CQdnj/OPOj/O0W3Ve3KENdEU32JnBZInVZbkN2FRJyuSe6JpU/rGKvJYKUgkTCmQA7
	 9q4MwLml7edog==
Date: Thu, 7 Dec 2023 16:34:17 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 3/5] x86/mm: remove compat_subarch_memory_op()
In-Reply-To: <285de0decf8ffe4277ce7e14a2561a693103f72b.1701936906.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312071634110.1265976@ubuntu-linux-20-04-desktop>
References: <cover.1701936906.git.federico.serafini@bugseng.com> <285de0decf8ffe4277ce7e14a2561a693103f72b.1701936906.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 Thu, 7 Dec 2023, Federico Serafini wrote:
> Remove remove compat_subarch_memory_op() declaration: there is no
> definition and there are no calls to such function in the XEN project.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:40:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:40:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650275.1015623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOuL-0000JQ-Ms; Fri, 08 Dec 2023 00:39:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650275.1015623; Fri, 08 Dec 2023 00:39:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOuL-0000JJ-KI; Fri, 08 Dec 2023 00:39:57 +0000
Received: by outflank-mailman (input) for mailman id 650275;
 Fri, 08 Dec 2023 00:39: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBOuK-0000JD-Cd
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:39:56 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e553ef2-9562-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 01:39:55 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 58C86B82AC7;
 Fri,  8 Dec 2023 00:39:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9585C433CA;
 Fri,  8 Dec 2023 00:39: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: 4e553ef2-9562-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701995993;
	bh=V/rE++xkzEZjyEiW4nQZHQqmrcmZFQ/RpQiX3XT6qdg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=go63I0z1JZRlGQrHIsm+IZLxjuBpM/8zbCYKarrki6Wbsg7C+RU/b32cXIzrHgYOU
	 l5fRbRa/bTCJtbRc+T+cg1KPC1j6VdWNuyataxI3P8B4R1NQu8p3eUL5qT8pQ09fUR
	 BLqQmuR4S8nLPh1KmhylT/WbK8WT4FDRb0nC2ZNHT9nX2X3z66KWQM5KU/3TwTuqd7
	 gKAy6j8AvxnfMOlN2V22dmIp6wFjjk9revSRGESIHxqaRqUJW/JLwbfelMKogIaBzO
	 +ToHl6aIpRDZPS75j3wBIWIjTBxEoXG/zYCIr50A8rLXdBnh9rB4LidrGgxHf5yv6R
	 xIWHtB+1m7TWg==
Date: Thu, 7 Dec 2023 16:39:51 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 5/5] AMD/IOMMU: address violations of MISRA C:2012
 Rule 8.2
In-Reply-To: <68a1922cce9a68a8b69661d564fccc012cf5f414.1701936906.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312071639430.1265976@ubuntu-linux-20-04-desktop>
References: <cover.1701936906.git.federico.serafini@bugseng.com> <68a1922cce9a68a8b69661d564fccc012cf5f414.1701936906.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 Thu, 7 Dec 2023, Federico Serafini wrote:
> Add missing parameter names to address violations of MISRA C:2012
> Rule 8.2. Remove trailing spaces and use C standard types to comply
> with XEN coding style. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:40:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:40:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650278.1015633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOvA-0001jP-4T; Fri, 08 Dec 2023 00:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650278.1015633; Fri, 08 Dec 2023 00: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 1rBOvA-0001jI-1U; Fri, 08 Dec 2023 00:40:48 +0000
Received: by outflank-mailman (input) for mailman id 650278;
 Fri, 08 Dec 2023 00:40: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBOv9-0001jA-6E
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:40:47 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c549b5a-9562-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 01:40:45 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 0113FB82A3A;
 Fri,  8 Dec 2023 00:40:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60B2CC433C8;
 Fri,  8 Dec 2023 00:40: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: 6c549b5a-9562-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701996044;
	bh=elH7okRRSOuS8Ocawq6tHYicZUCVwzOcqaAtkKsK/9k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=aprSYD+oTGaK36U7gihYjkwrS7fF6I7zzuPssUmYVdrQyR/B/jE+dVxU2ZP0LkZdv
	 a3DmJdAwvyJvzMv19G6LUFkoe47OV0of/p0DPbI0VGzASnmWzvui6prn0KLdgpLu4+
	 /fXaZ6g1Ij+VddotZkMJR+QytTqR0u8uUZJcy1dSrwmM6cN/6We9zvsqd8ushcJYd+
	 CfhHkXcVz6Gq3uDMAe7WkQKvxLUG2AWczfUX8RSXPcNyVoTUGGk8UPBXwjC6fhG+8O
	 ULKN0+Paq5lDgoz5DBIawDZQjnsRIl5YCud+c1V1NzI5wb+Er4tBlnzbVGWHL3V2lK
	 kXRS1iz7FQsNw==
Date: Thu, 7 Dec 2023 16:40:41 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 4/5] x86/mm: address violations of MISRA C:2012
 Rule 8.2
In-Reply-To: <428b868a2b1aec2b50ccbe510bc3089203ac9c7b.1701936906.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312071640330.1265976@ubuntu-linux-20-04-desktop>
References: <cover.1701936906.git.federico.serafini@bugseng.com> <428b868a2b1aec2b50ccbe510bc3089203ac9c7b.1701936906.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 Thu, 7 Dec 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:43:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:43:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650282.1015642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBOxt-0002M7-GK; Fri, 08 Dec 2023 00:43:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650282.1015642; Fri, 08 Dec 2023 00: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 1rBOxt-0002M0-Dl; Fri, 08 Dec 2023 00:43:37 +0000
Received: by outflank-mailman (input) for mailman id 650282;
 Fri, 08 Dec 2023 00:43: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBOxr-0002Lu-JQ
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:43:35 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0b455db-9562-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 01:43:33 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 5BD5DB82ACD;
 Fri,  8 Dec 2023 00:43:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7F118C433C7;
 Fri,  8 Dec 2023 00:43: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: d0b455db-9562-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701996213;
	bh=elH7okRRSOuS8Ocawq6tHYicZUCVwzOcqaAtkKsK/9k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=o2u8dXVF73j6aMM0uGjTO0CrrAyeJo8xyZN10f2/JmRauvcNdu1sD56NNtlHW1WFx
	 jyLK4D7F8MZqjnMxAW9hvS57cH6vBUv/ouZQgZh42UTjRXDWtaev3JcRQFsof1LUtg
	 ikyFM7y0ybQHkMBnI73rirr+9j/p3LkGto0D7TDulbBtKube/Z5JC5Ru9/DhCaCxVB
	 u0Dsn/0yqU82mTL5JT+zwjnsrKIOiR6booU62iV+H8ryyuSZ8li38jn4rosMYQtOLS
	 YMtkqh11QdfxL4AuWpy1PIiNHBRJxKgGZR95L4kYN+ULjO6lY2binUMHOCznYINoWj
	 fF3+UgMWaE7wA==
Date: Thu, 7 Dec 2023 16:43:30 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [XEN PATCH v2 2/5] xen/acpi: address violations of MISRA C:2012
 Rule 8.2
In-Reply-To: <47c08c496a403d60bbf5b18c7a079ac7a575efbc.1701936906.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312071643240.1265976@ubuntu-linux-20-04-desktop>
References: <cover.1701936906.git.federico.serafini@bugseng.com> <47c08c496a403d60bbf5b18c7a079ac7a575efbc.1701936906.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 Thu, 7 Dec 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:46:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:46:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650285.1015653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBP0a-0003GE-WF; Fri, 08 Dec 2023 00:46:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650285.1015653; Fri, 08 Dec 2023 00:46:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBP0a-0003G7-Rw; Fri, 08 Dec 2023 00:46:24 +0000
Received: by outflank-mailman (input) for mailman id 650285;
 Fri, 08 Dec 2023 00:46:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBP0Z-0003Ej-GK
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:46:23 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35462b62-9563-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 01:46:22 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id B91CDB82ACB;
 Fri,  8 Dec 2023 00:46:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2D586C433C8;
 Fri,  8 Dec 2023 00:46: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: 35462b62-9563-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701996381;
	bh=66yUa1tDw72SCJa2/7shAl04DAdoMpA7Yx3wR3n/a/E=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=nBMqn/R3Z6HE69a7SR0Fotq5Lsex0/er/wq5cKXlTPki2BtRx3YsEryQs5BjBTUx9
	 3+wLqwwpd1I2Uaz8vPdhORjhHkrVENYVVRxlsPbrSfmoNvp+Y1xPNlg1+FX/pg5N04
	 5ckOrpzn8Aid52LlwAjMrcOnZBeomT14EIjxdLr8gcSaUBcSj4hUkhpI+kkNxtWy5R
	 OIzp1nb2OyLtECuKP7MKLFXWbxef67+b3a1ld9W+bWigjmIZkoBL4B7tE92PBOnmrv
	 lAYCaYmpmkwkUBtdpnIQKGj6iW6NZotvZW0jMBlX1vWcQidlcFUJlHd27WqwMDPdk0
	 hEXbk+MqB+okA==
Date: Thu, 7 Dec 2023 16:46:18 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Kevin Tian <kevin.tian@intel.com>
Subject: Re: [PATCH 1/3] AMD/IOMMU: address violations of MISRA C:2012 Rule
 14.4
In-Reply-To: <097df7703c372a687206251fe97bfc5df18222b6.1701941924.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312071646060.1265976@ubuntu-linux-20-04-desktop>
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com> <097df7703c372a687206251fe97bfc5df18222b6.1701941924.git.maria.celeste.cesario@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, 7 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
> headline states:
> "The controlling expression of an if statement and the controlling
> expression of an iteration-statement shall have essentially Boolean type".
> 
> Add comparisons to avoid using enum constants as controlling expressions
> to comply with Rule 14.4.
> 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>



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:50:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:50:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650288.1015663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBP4I-0005kZ-EW; Fri, 08 Dec 2023 00:50:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650288.1015663; Fri, 08 Dec 2023 00:50:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBP4I-0005kS-At; Fri, 08 Dec 2023 00:50:14 +0000
Received: by outflank-mailman (input) for mailman id 650288;
 Fri, 08 Dec 2023 00:50:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBP4H-0005kM-FN
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:50:13 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc591f22-9563-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 01:50:10 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 56DBD62241;
 Fri,  8 Dec 2023 00:50:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03126C433C8;
 Fri,  8 Dec 2023 00:50: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: bc591f22-9563-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701996608;
	bh=zmQdo+B6WuD7ueSIZ4jgwHm5py5TIxg5iLgpDLowmQw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JpwvrVuMufxKeCLEdL4i1JCyx9EbfS07vMXm/OIkOcnmocCXQNrmhqEE54qYGTXM9
	 MS3hU1kR61v3BWjxioIIpFE/eu5r4N2Q4hhbmekmE+68UyDt4JMSHlI2xediUJ6vuP
	 KYYcuQBG9UBfSrk+G6cxS4ZiYuxxVmZrm0GemKo3fv5Etk3ouJxG5PEtSDvtvNpK+R
	 M9tS2Pg9BoQ8dygWZ2GGbkyOGL/8czB7vpqV6yb4w79ICIXia5O8NpfbXHJR2t9/9B
	 w4joimxAxVjdxyiF0GiarYOwN35dsltW8zqbBU6HUrHF/AHNy3sKmWABCWqdGyy5lX
	 umFxlIM7KcuiA==
Date: Thu, 7 Dec 2023 16:50:05 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH 2/3] xen/x86: address violations of MISRA C:2012 Rule
 14.4
In-Reply-To: <d494980216b8f0f870083fcfae7269f45e779780.1701941924.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312071647140.1265976@ubuntu-linux-20-04-desktop>
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com> <d494980216b8f0f870083fcfae7269f45e779780.1701941924.git.maria.celeste.cesario@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, 7 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
> headline states:
> "The controlling expression of an if statement and the controlling
> expression of an iteration-statement shall have essentially Boolean type".
> 
> Add comparisons to avoid using enum constants as controlling expressions
> to comply with Rule 14.4.
> No functional change.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>

I think it would have been better to put all the iommu_intremap changed
in the same patch (patch #1). But anyway:

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



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 00:51:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 00:51:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650290.1015672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBP5I-0006HT-N4; Fri, 08 Dec 2023 00:51:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650290.1015672; Fri, 08 Dec 2023 00:51:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBP5I-0006HM-KU; Fri, 08 Dec 2023 00:51:16 +0000
Received: by outflank-mailman (input) for mailman id 650290;
 Fri, 08 Dec 2023 00:51: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBP5H-0006HC-VA
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 00:51: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 e32beec9-9563-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 01:51:14 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 8F4F462237;
 Fri,  8 Dec 2023 00:51:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DA284C433C8;
 Fri,  8 Dec 2023 00:51: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: e32beec9-9563-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701996673;
	bh=taWxm1j4SuC3x/sLSY7ctehV/ukLwUouYiZ83iO1nrA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=r0e/LZJxegr5XcknjFYqb2ASurOmyerKPxrBwlv+IrHzY/aK3rdN3haxTq9ApgM+t
	 o0tukvW5ZRbI1n3p2Ay8ST6u+jD/6csu0Nz2zIsKXFrN5imDwxFmoT5GB/KIleSynH
	 iPQyFYXqaqsypQJ1RB8Bh66GgVh3fpfMOON1rp/8nLmGWcbfjxVOq6RWHlChVEIxiM
	 qABTj/vkwAbrMbkCSULnwz+iY+6Ci5Ffz5VfspgDQyGZ9NDtofRT8bBxji6066YU8L
	 rqW04y4lYUyNQ1+v/Rm/UAfq7BY+wA9tuPm1a2m9RdXW6Z2QNlcqXvsRA7wGTQLXAs
	 WIq+1CpugCALg==
Date: Thu, 7 Dec 2023 16:51:10 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH 3/3] xen: address violations of MISRA C:2012 Rule 14.4
In-Reply-To: <3012fb117b4ef6458bdb5cfd046c86bce60a6d51.1701941924.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312071650550.1265976@ubuntu-linux-20-04-desktop>
References: <cover.1701941924.git.maria.celeste.cesario@bugseng.com> <3012fb117b4ef6458bdb5cfd046c86bce60a6d51.1701941924.git.maria.celeste.cesario@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, 7 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
> headline states:
> "The controlling expression of an if statement and the controlling
> expression of an iteration-statement shall have essentially Boolean type".
> 
> Struct domain member is_dying is an anonymous enum designed to act as boolean.
> Add deviation to mark its uses in controlling expressions as deliberate.
> 
> 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>



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 01:02:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 01:02:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650294.1015682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPFX-0006Of-Jn; Fri, 08 Dec 2023 01:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650294.1015682; Fri, 08 Dec 2023 01: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 1rBPFX-0006OY-H9; Fri, 08 Dec 2023 01:01:51 +0000
Received: by outflank-mailman (input) for mailman id 650294;
 Fri, 08 Dec 2023 01: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBPFV-0006OQ-Ro
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 01:01:49 +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 5c9f7a64-9565-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 02:01:48 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id EB47162230;
 Fri,  8 Dec 2023 01:01:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 72100C433C8;
 Fri,  8 Dec 2023 01:01:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c9f7a64-9565-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701997306;
	bh=+Op+MLX4b6ErPrPJ6OE6SL8onuGy3uuY5pHMvE76CD4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=FW+90h8mRq8vtW1k89REnvZNo5bZmF+c9saYjQKFGXj/tRw/vru/6AvZ4TUOOevhD
	 oS5xhlxKtjUX5d5v0wukL9uPZ9Gy/FB31yyIazncECB4VNsaED7Cdp3+biT00X4AoT
	 TFQTIh/q8EiDmggqqgZjVHwq/Oyz+bOefrSAnc+8zU7V2YxTKfnN6tCtGW2uoOyxtB
	 yNY5xf2Bygcedh5UlU7Kny8qH8Fa2wiySS88wosK2AHU+J1npH699hFhTt71tM1IE3
	 8klJ/LS7Zp8ojOxVtZZnHfI9bOlvhXDKoI5MIHEakwjxl4ygZWKyXdIarXnYaIBjOD
	 e91TpEnS85otA==
Date: Thu, 7 Dec 2023 17:01:43 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii <oleksii.kurochko@gmail.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG
 for randconfig
In-Reply-To: <6e435d2b4772e75544e9201bcfbe00e5cf5eab6e.camel@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2312071659210.1265976@ubuntu-linux-20-04-desktop>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>  <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>  <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
 <6e435d2b4772e75544e9201bcfbe00e5cf5eab6e.camel@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1404926384-1701997250=:1265976"
Content-ID: <alpine.DEB.2.22.394.2312071701140.1265976@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-1404926384-1701997250=:1265976
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312071701141.1265976@ubuntu-linux-20-04-desktop>

On Thu, 7 Dec 2023, Oleksii wrote:
> On Thu, 2023-12-07 at 20:17 +0000, Andrew Cooper wrote:
> > On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
> > > ARCH_FIXED_CONFIG is required in the case of randconfig
> > > and CI for configs that aren't ready or are not
> > > supposed to be implemented for specific architecture.
> > > These configs should always be disabled to prevent randconfig
> > > related tests from failing.
> > > 
> > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > ---
> > > Â xen/Makefile | 5 ++++-
> > > Â 1 file changed, 4 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/xen/Makefile b/xen/Makefile
> > > index ca571103c8..8ae8fe1480 100644
> > > --- a/xen/Makefile
> > > +++ b/xen/Makefile
> > > @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
> > > Â # *config targets only - make sure prerequisites are updated, and
> > > descend
> > > Â # in tools/kconfig to make the *config target
> > > Â 
> > > +ARCH_FORCED_CONFIG :=
> > > $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
> > > +
> > > Â # Create a file for KCONFIG_ALLCONFIG which depends on the
> > > environment.
> > > Â # This will be use by kconfig targets
> > > allyesconfig/allmodconfig/allnoconfig/randconfig
> > > Â filechk_kconfig_allconfig = \
> > > Â Â Â Â  $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo
> > > 'CONFIG_XSM_FLASK_POLICY=n';) \
> > > -Â Â Â  $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
> > > +Â Â Â  $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
> > > +Â Â Â  $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat
> > > $(ARCH_FORCED_CONFIG);) ) \
> > > Â Â Â Â  :
> > > Â 
> > > Â .allconfig.tmp: FORCE
> > 
> > We already have infrastructure for this.Â  What's wrong with
> > EXTRA_FIXED_RANDCONFIG?
> Everything is fine; I don't know why there was only an issue with
> CONFIG_GRANT_TABLE on PPC. On the RISC-V side, there were more configs
> issues, prompting me to include all the configurations not implemented
> for RISC-V in EXTRA_FIXED_RANDCONFIG. You can find the added
> configurations in this commit:
> https://lore.kernel.org/xen-devel/b4e85f8f58787b4d179022973ce25673d6b56e36.1700761381.git.oleksii.kurochko@gmail.com/#Z31automation:gitlab-ci:build.yaml
> 
> One challenge is that the same configurations need to be added multiple
> times for each build test using randconfig.

That's a lot of extra configs to add. Could you use a yaml anchor or a
.something to include? So that you define the full list only once at the
top of the file and then reuse it everywhere as needed.


> Another reason for this approach is a suggestion from Jan (probably I
> misunderstood it), who proposed using a template to instruct randconfig
> not to modify currently unnecessary configurations. You can find the
> suggestion and discussion here:
> https://lore.kernel.org/xen-devel/008d0c66-6816-4d12-9e1f-1878e982f9fc@suse.com/
> 
> Perhaps we could enhance the build script to fetch "fixed" configs from
> the architecture-specific fixed-defconfig instead of modifying the
> Makefile directly.

Sorry I missed the original thread somehow. Please use "automation" as
subject line tag for automation patches.
--8323329-1404926384-1701997250=:1265976--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 01:27:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 01:27:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650298.1015692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPdv-0006eT-IW; Fri, 08 Dec 2023 01:27:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650298.1015692; Fri, 08 Dec 2023 01:27:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPdv-0006eM-Fr; Fri, 08 Dec 2023 01:27:03 +0000
Received: by outflank-mailman (input) for mailman id 650298;
 Fri, 08 Dec 2023 01:27: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 1rBPdu-0006eC-4L; Fri, 08 Dec 2023 01:27: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 1rBPdt-0008Sf-S7; Fri, 08 Dec 2023 01:27: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 1rBPdt-000353-FG; Fri, 08 Dec 2023 01:27:01 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBPdt-0004lU-Ec; Fri, 08 Dec 2023 01:27: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=R5iThtRIbYC9QXn3sc8qvMuWTYtAvA3gMkfYMw0IcOA=; b=v5pO682E4qBc5p5DZDstL8Dkzk
	r09AmBxvnSI9HXDqly1I+BOYROlJ2o+9Vl4hJC9EoFGCIN0N54+lLNEu8atDrKDyi6hU4VD21BpCL
	LKIh50hyjEPwXNUVAeMXR7XYzFMwR4Eoy2jEBH4VKOL43PSIR12FoUxetxn1igocWcC4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184021-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184021: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-qemuu-debianhvm-amd64-xsm: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-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-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm: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-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-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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=bee0e7762ad2c6025b9f5245c040fcc36ef2bde8
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 08 Dec 2023 01:27:01 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-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-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-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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                bee0e7762ad2c6025b9f5245c040fcc36ef2bde8
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    5 days
Failing since        183977  2023-12-03 00:12:06 Z    5 days   10 attempts
Testing same since   183993  2023-12-05 09:00:54 Z    2 days    4 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Williamson <alex.williamson@redhat.com>
  Brett Creeley <brett.creeley@amd.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  David Howells <dhowells@redhat.com>
  Dmitry Antipov <dmantipov@yandex.ru>
  Eugenio PÃ©rez <eperezma@redhat.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Jason Wang <jasowang@redhat.com>
  Jens Axboe <axboe@kernel.dk>
  Joao Martins <joao.m.martins@oracle.com>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Nicholas Piggin <npiggin@gmail.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Robin Murphy <robin.murphy@arm.com>
  Sean Christopherson <seanjc@google.com>
  Shannon Nelson <shannon.nelson@amd.com>
  Steve French <stfrench@microsoft.com>
  Steve Sistare <steven.sistare@oracle.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Timothy Pearson <tpearson@raptorengineering.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 987 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 01:36:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 01:36:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650305.1015713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPmu-0008VF-QB; Fri, 08 Dec 2023 01:36:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650305.1015713; Fri, 08 Dec 2023 01: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 1rBPmu-0008V8-MF; Fri, 08 Dec 2023 01:36:20 +0000
Received: by outflank-mailman (input) for mailman id 650305;
 Fri, 08 Dec 2023 01: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBPmt-0008UW-79
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 01:36: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 2e050b7c-956a-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 02:36:18 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 48D1B6220C;
 Fri,  8 Dec 2023 01:36:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E97A1C433C8;
 Fri,  8 Dec 2023 01:36: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: 2e050b7c-956a-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701999375;
	bh=e0xIo2j4fm+1lX+DZSf5sNHhsdfr+5D7pgf/1zuJqHg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=SQUsLiYCsvLaD5oZVgk3EGl0wnR9DQO1cB4D+8FmZK2TZhPJ4nuuCl2H3xqka3OGk
	 vVc1BPXDzSBPjQdcq2Fmit3/0Jw4wGM74KXJsucki+4vqXNb1cx4OXM1/xEyRleEwi
	 LO09gddvlnC+xl4TM2hALFoZ+XxCOgfuAnzC1z2dK1Y7UHygw5O5q+d+U7Vn2vsxPw
	 YJlkixkkoFkTSZNJsYjEilYpVVGZxzJgddzAGj0ik2h6hLKA+at0AhY/VSHyCW7vsn
	 jdZACONKsEiAdbyG5V/a41vwB8QEHw6nPhHo3/NCNWD19xkdygBPjFdKLAWfI9M5dD
	 1WAp+SbNAPGqg==
Date: Thu, 7 Dec 2023 17:36:13 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Henry Wang <Henry.Wang@arm.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
Subject: Re: [PATCH 2/5] automation: Add the Dockerfile to build TF-A and
 U-Boot for FVP
In-Reply-To: <20231207135318.1912846-3-Henry.Wang@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312071728250.1265976@ubuntu-linux-20-04-desktop>
References: <20231207135318.1912846-1-Henry.Wang@arm.com> <20231207135318.1912846-3-Henry.Wang@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Dec 2023, Henry Wang wrote:
> Unlike the emulators that currently being used in the CI pipelines,
> the FVP must start at EL3. Therefore we need the firmware, i.e. the
> TrustedFirmware-A (TF-A), for corresponding functionality.
> 
> There is a dedicated board (vexpress_fvp) in U-Boot (serve as the
> BL33 of the TF-A) for the FVP platform, so the U-Boot should also be
> compiled for the FVP platform instead of reusing the U-Boot for the
> existing emulators used in the CI pipelines.
> 
> To avoid compiling TF-A and U-Boot everytime in the job, adding a
> Dockerfile to the test artifacts to build TF-A v2.9.0 and U-Boot
> v2023.10 for FVP. The binaries for the TF-A and U-Boot, as well as
> the device tree for the FVP platform, will be saved (and exported by
> the CI job introduced by following commits). Note that, a patch for
> the TF-A will be applied before building to enable the virtio-net
> and the virtio-rng device on the FVP. The virtio-net device will
> provide the networking service for FVP, and the virtio-rng device
> will improve the speed of the FVP.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>

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


> ---
>  .../2023.10-2.9.0-arm64v8.dockerfile          | 48 +++++++++++++++++++
>  1 file changed, 48 insertions(+)
>  create mode 100644 automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
> 
> diff --git a/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile b/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
> new file mode 100644
> index 0000000000..6566b60545
> --- /dev/null
> +++ b/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
> @@ -0,0 +1,48 @@
> +FROM --platform=linux/arm64/v8 debian:bookworm
> +LABEL maintainer.name="The Xen Project" \
> +      maintainer.email="xen-devel@lists.xenproject.org"
> +
> +ENV DEBIAN_FRONTEND=noninteractive
> +ENV UBOOT_VERSION="2023.10"
> +ENV TFA_VERSION="v2.9.0"
> +ENV USER root
> +
> +RUN mkdir /build
> +WORKDIR /build
> +
> +# build depends
> +RUN apt-get update && \
> +    apt-get --quiet --yes install \
> +        build-essential \
> +        libssl-dev \
> +        bc \
> +        curl \
> +        flex \
> +        bison \
> +        git \
> +        device-tree-compiler && \
> +    apt-get autoremove -y && \
> +    apt-get clean && \
> +    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
> +
> +# Build U-Boot and TF-A
> +RUN curl -fsSLO https://ftp.denx.de/pub/u-boot/u-boot-"$UBOOT_VERSION".tar.bz2 && \
> +    tar xvf u-boot-"$UBOOT_VERSION".tar.bz2 && \
> +    cd u-boot-"$UBOOT_VERSION" && \
> +    make -j$(nproc) V=1 vexpress_fvp_defconfig && \
> +    make -j$(nproc) V=1 all && \
> +    cd .. && \
> +    git clone --branch "$TFA_VERSION" --depth 1 https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git && \
> +    cd trusted-firmware-a && \
> +    curl -fsSLO https://git.yoctoproject.org/meta-arm/plain/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/fvp-base/0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch \
> +         --output 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
> +    git config --global user.email "you@example.com" && \
> +    git config --global user.name "Your Name" && \
> +    git am 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
> +    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t all && \
> +    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t fip BL33=../u-boot-"$UBOOT_VERSION"/u-boot.bin && \
> +    cp build/fvp/debug/bl1.bin / && \
> +    cp build/fvp/debug/fip.bin / && \
> +    cp build/fvp/debug/fdts/fvp-base-gicv3-psci-1t.dtb / && \
> +    cd /build && \
> +    rm -rf u-boot-"$UBOOT_VERSION" trusted-firmware-a
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 01:36:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 01:36:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650304.1015703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPmp-0008FX-Ii; Fri, 08 Dec 2023 01:36:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650304.1015703; Fri, 08 Dec 2023 01:36: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 1rBPmp-0008FQ-FW; Fri, 08 Dec 2023 01:36:15 +0000
Received: by outflank-mailman (input) for mailman id 650304;
 Fri, 08 Dec 2023 01:36:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBPmo-0008FJ-DW
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 01:36:14 +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 2a94c716-956a-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 02:36:11 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 6668262232;
 Fri,  8 Dec 2023 01:36:10 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CFDEFC433C7;
 Fri,  8 Dec 2023 01:36:08 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a94c716-956a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701999369;
	bh=eRMXlxabaTlTEyBx4wLUSrc1e/RDO1qo/KJueNgJkNY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=XSbAZxpuNJLbnAcfgNXyzfIW4wtRg7F1bGPb8Z/x4p/HtaUJaZWutphvJ4fenW66m
	 GQJr9ntFvK59oIpgLPGa220zvly8FlFrDYN7fPF9co1socXb2P6ywwZ63BbgfOPIlb
	 Q68Q4z9MPXpgBCGSCGSsI2xLgnBhobopxkAzbfb++Ib+9am/eoQ/LjHukMG6/i67A3
	 h3rntW2J6ePJldBqe5YvJAuFqVUFA7yMcdFjzh/lKXMsFiCH2bkPpzdur9A7eGlu9K
	 BcG8gikU9tZPADbzLX+ybFXDFmLXXtFFeatN5qgiimm8XCnLMhs9pThI3DxWIYyRHJ
	 hUOVd7+bHUd2A==
Date: Thu, 7 Dec 2023 17:36:07 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Henry Wang <Henry.Wang@arm.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
Subject: Re: [PATCH 1/5] automation: Add a Dockerfile for running FVP_Base
 jobs
In-Reply-To: <20231207135318.1912846-2-Henry.Wang@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312071722250.1265976@ubuntu-linux-20-04-desktop>
References: <20231207135318.1912846-1-Henry.Wang@arm.com> <20231207135318.1912846-2-Henry.Wang@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Dec 2023, Henry Wang wrote:
> Fixed Virtual Platforms (FVPs) are complete simulations of an Arm
> system, including processor, memory and peripherals. These are set
> out in a "programmer's view", which gives programmers a comprehensive
> model on which to build and test software. FVP can be configured to
> different setups by its cmdline parameters, and hence having the FVP
> in CI will provide us with the flexibility to test Arm features and
> setups that we find difficult to use real hardware or emulators.
> 
> This commit adds a Dockerfile for the new arm64v8 container with
> FVP installed, based on the debian bookworm-arm64v8 image. This
> container will be used to run the FVP test jobs. Compared to the
> debian bookworm-arm64v8 image, the packages in the newly added FVP
> container does not contain the `u-boot-qemu`, and adds the `expect`
> to run expect scripts introduced by following commits, `telnet` to
> connect to FVP, and `tftpd-hpa` to provide the TFTP service for
> the FVP.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> ---
>  .../debian/bookworm-arm64v8-fvp.dockerfile    | 64 +++++++++++++++++++
>  1 file changed, 64 insertions(+)
>  create mode 100644 automation/build/debian/bookworm-arm64v8-fvp.dockerfile
> 
> diff --git a/automation/build/debian/bookworm-arm64v8-fvp.dockerfile b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile
> new file mode 100644
> index 0000000000..3b87dc5a5b
> --- /dev/null
> +++ b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile

Please move this container under automation/tests-artifacts/ because the
container is only meant to be used for tests as opposed as to build Xen.
I know that in other cases we have reused the build container but that
just because it was already there an working for the purpose.

Also please name it based on the fvp rather than debian:

automation/tests-artifacts/armfvp/11.23_9-arm64v8.dockerfile

Everything else looks fine.



> @@ -0,0 +1,64 @@
> +FROM --platform=linux/arm64/v8 debian:bookworm
> +LABEL maintainer.name="The Xen Project" \
> +      maintainer.email="xen-devel@lists.xenproject.org"
> +
> +ARG FVP_BASE_VERSION="11.23_9_Linux64_armv8l"
> +
> +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 \
> +        libssl-dev \
> +        python3-dev \
> +        python3-setuptools \
> +        xorg-dev \
> +        uuid-dev \
> +        libyajl-dev \
> +        libaio-dev \
> +        libglib2.0-dev \
> +        clang \
> +        libpixman-1-dev \
> +        pkg-config \
> +        flex \
> +        bison \
> +        acpica-tools \
> +        libfdt-dev \
> +        bin86 \
> +        bcc \
> +        liblzma-dev \
> +        libnl-3-dev \
> +        ocaml-nox \
> +        libfindlib-ocaml-dev \
> +        markdown \
> +        transfig \
> +        pandoc \
> +        checkpolicy \
> +        wget \
> +        git \
> +        nasm \
> +        # for test phase, fvp-smoke-* jobs
> +        u-boot-tools \
> +        expect \
> +        device-tree-compiler \
> +        curl \
> +        cpio \
> +        busybox-static \
> +        telnet \
> +        tftpd-hpa \
> +        && \
> +        apt-get autoremove -y && \
> +        apt-get clean && \
> +        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
> +
> +RUN wget https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz && \
> +    mkdir -p /FVP/FVP_Base_RevC-2xAEMvA && \
> +    tar -xvzf FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz -C /FVP/FVP_Base_RevC-2xAEMvA && \
> +    rm FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 01:38:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 01:38:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650308.1015722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPot-0001HV-4q; Fri, 08 Dec 2023 01:38:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650308.1015722; Fri, 08 Dec 2023 01: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 1rBPot-0001HO-2B; Fri, 08 Dec 2023 01:38:23 +0000
Received: by outflank-mailman (input) for mailman id 650308;
 Fri, 08 Dec 2023 01:38:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBPos-0001HI-Ho
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 01:38:22 +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 77656487-956a-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 02:38:21 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id BCDEFCE2279;
 Fri,  8 Dec 2023 01:38:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A1E9C433C8;
 Fri,  8 Dec 2023 01:38: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: 77656487-956a-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701999497;
	bh=snK43I7fr7DFrsRReQ4Sh46xlev1Lwez9q+eOxuqSbg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fgU/J0EQe5udxfrD4Ub1UD48j82YyCfuxcI3jmeGQeKdp88D8owjhfHTwDQ6nSEpR
	 6t6ADJIFBiMjdZDnDZ1Rtlm6sNfs76lstxtYNMeVoNFWUB9JTsK/LZVJ7UR1xvthgz
	 4hGPWVNoe24zevDXVli9waFqK/cHQJ51FH+d5mTtoyIRHnvy9crC/Ej/mI4fAEdMvb
	 I5NKZFDvZEX8pBsKh/zovmaX4JF8LVDXsbxZkb+fecKHHGm7t9Qsdf7ZmEEX/d+Fwn
	 LqZCNvtKzgu+ltEBkWpPUdKS8uHkEKPnMtMSReiC3GoCcDW3sdG7AhUZalP/iAP/t6
	 FCODJsj950Glg==
Date: Thu, 7 Dec 2023 17:38:14 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Henry Wang <Henry.Wang@arm.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
Subject: Re: [PATCH 3/5] automation: Add the expect script with test case
 for FVP
In-Reply-To: <20231207135318.1912846-4-Henry.Wang@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312071736190.1265976@ubuntu-linux-20-04-desktop>
References: <20231207135318.1912846-1-Henry.Wang@arm.com> <20231207135318.1912846-4-Henry.Wang@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Dec 2023, Henry Wang wrote:
> To interact with the FVP (for example entering the U-Boot shell
> and transferring the files by TFTP), we need to connect the
> corresponding port by the telnet first. Use an expect script to
> simplify the automation of the whole "interacting with FVP" stuff.
> 
> The expect script will firstly detect the IP of the host, then
> connect to the telnet port of the FVP, set the `serverip` and `ipaddr`
> for the TFTP service in the U-Boot shell, and finally boot Xen from
> U-Boot and wait for the expected results by Xen, Dom0 and DomU.

I am not an expert in "expect" but this script looks great


> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> ---
>  .../expect/fvp-base-smoke-dom0-arm64.exp      | 73 +++++++++++++++++++
>  1 file changed, 73 insertions(+)
>  create mode 100755 automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
> 
> diff --git a/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
> new file mode 100755
> index 0000000000..25d9a5f81c
> --- /dev/null
> +++ b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
> @@ -0,0 +1,73 @@
> +#!/usr/bin/expect
> +
> +set timeout 2000
> +
> +# Command to use to run must be given as first argument
> +# if options are required, quotes must be used:
> +# xxx.exp "cmd opt1 opt2"
> +set runcmd [lindex $argv 0]
> +
> +# Maximum number of line to be printed, this can be used to prevent runs to
> +# go forever on errors when Xen is rebooting
> +set maxline 1000
> +
> +# Configure slow parameters used with send -s
> +# This allows us to slow down console writes to prevent issues with slow
> +# emulators or targets.
> +# Format here is: {NUM TIME} which reads as wait TIME seconds each NUM of
> +# characters, here we send 1 char each 100ms
> +set send_slow {1 .1}
> +
> +proc test_boot {{maxline} {host_ip}} {
> +    expect_after {
> +        -re "(.*)\r" {
> +            if {$maxline != 0} {
> +                set maxline [expr {$maxline - 1}]
> +                if {$maxline <= 0} {
> +                    send_user "ERROR-Toomuch!\n"
> +                    exit 2
> +                }
> +            }
> +            exp_continue
> +        }
> +        timeout {send_user "ERROR-Timeout!\n"; exit 3}
> +        eof {send_user "ERROR-EOF!\n"; exit 4}
> +    }

Why do we need this "expect_after" ?


> +    # Extract the telnet port numbers from FVP output, because the telnet ports
> +    # are not guaranteed to be fixed numbers.
> +    expect -re {terminal_0: Listening for serial connection on port [0-9]+}
> +    set terminal_0 $expect_out(0,string)
> +    if {[regexp {port (\d+)} $terminal_0 match port_0]} {
> +        puts "terminal_0 port is $port_0"
> +    } else {
> +        puts "terminal_0 port not found"
> +        exit 5
> +    }
> +
> +    spawn bash -c "telnet localhost $port_0"
> +    expect -re "Hit any key to stop autoboot.*"
> +    send -s "  \r"
> +    send -s "setenv serverip $host_ip; setenv ipaddr $host_ip; tftpb 0x80200000 boot.scr; source 0x80200000\r"
> +
> +    # Initial Xen boot
> +    expect -re "\(XEN\).*Freed .* init memory."
> +
> +    # Dom0 and DomU
> +    expect -re "Domain-0.*"
> +    expect -re "BusyBox.*"
> +    expect -re "/ #.*"

This is clear, excellent


> +}
> +
> +# Get host IP
> +spawn bash -c "hostname -I | awk '{print \$1}'"
> +expect -re {(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})}

Why d{1,3}?


> +set host_ip $expect_out(0,string)
> +
> +# Start the FVP and run the test
> +spawn bash -c "$runcmd"
> +
> +test_boot 2000 "$host_ip"
> +
> +send_user "\nExecution with SUCCESS\n"

Won't this always return SUCCESS even in case of failure?


> +exit 0
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 01:41:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 01:41:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650313.1015733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPs6-0002kc-Kq; Fri, 08 Dec 2023 01:41:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650313.1015733; Fri, 08 Dec 2023 01:41:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPs6-0002kV-Gs; Fri, 08 Dec 2023 01:41:42 +0000
Received: by outflank-mailman (input) for mailman id 650313;
 Fri, 08 Dec 2023 01:41:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBPs5-0002kP-E4
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 01:41:41 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee41e658-956a-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 02:41:39 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 9C40BB82ACF;
 Fri,  8 Dec 2023 01:41:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC8C6C433C7;
 Fri,  8 Dec 2023 01:41: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: ee41e658-956a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701999698;
	bh=vUJgRLW8KfpC5S1ug1XTrxvAIM0yUO9QMDoXm6al9Pc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=BmqW5QV6yA00vocgMWXher5e59TRUbMHt7bMKD7Hwcpcc9uQdck1Y76ump71nVWI1
	 J2FKo6GvWZ/sJQM16+homPiUMLAzd0ZvJqiVhIln9XWot8lR/V5MU7A75jIrL4p7yg
	 QddI/l7i17Eys3WL2xvZy7yUiRzWi9VltA8B8rkxwiUx+MZ530bLPDHsrg5LISneFN
	 vu46pv46Dijcz21jTm2Y4BZL7olFO4gZum67rODunneLAvKCMYDG6ULDYwGc09a/lX
	 eKbM3rwUhVqUAyJWRofHn0l1dIRkcAAm50xpK4rF+WNfHU7jdHbvdQlAa2dErR5utl
	 5T1n2uKW0zXmA==
Date: Thu, 7 Dec 2023 17:41:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Henry Wang <Henry.Wang@arm.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
Subject: Re: [PATCH 4/5] automation: Add the script for the FVP smoke test
In-Reply-To: <20231207135318.1912846-5-Henry.Wang@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312071738200.1265976@ubuntu-linux-20-04-desktop>
References: <20231207135318.1912846-1-Henry.Wang@arm.com> <20231207135318.1912846-5-Henry.Wang@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Dec 2023, Henry Wang wrote:
> This commit adds the shell script for the FVP smoke test. Similarly
> as the QEMU jobs, the shell script will firstly prepare the DomU
> BusyBox image, use the ImageBuilder to arrange the binaries in memory
> and generate the U-Boot script, then start the test. To provide the
> TFTP service for the FVP, the shell script will also start the TFTP
> service, and copy the binaries needed by test to the TFTP directory
> used by the TFTP server.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> ---
>  .../scripts/fvp-base-smoke-dom0-arm64.sh      | 117 ++++++++++++++++++
>  1 file changed, 117 insertions(+)
>  create mode 100755 automation/scripts/fvp-base-smoke-dom0-arm64.sh
> 
> diff --git a/automation/scripts/fvp-base-smoke-dom0-arm64.sh b/automation/scripts/fvp-base-smoke-dom0-arm64.sh
> new file mode 100755
> index 0000000000..716a63b0a8
> --- /dev/null
> +++ b/automation/scripts/fvp-base-smoke-dom0-arm64.sh
> @@ -0,0 +1,117 @@
> +#!/bin/bash
> +
> +set -ex
> +
> +# DomU Busybox
> +cd binaries
> +mkdir -p initrd
> +mkdir -p initrd/bin
> +mkdir -p initrd/sbin
> +mkdir -p initrd/etc
> +mkdir -p initrd/dev
> +mkdir -p initrd/proc
> +mkdir -p initrd/sys
> +mkdir -p initrd/lib
> +mkdir -p initrd/var
> +mkdir -p initrd/mnt
> +cp /bin/busybox initrd/bin/busybox
> +initrd/bin/busybox --install initrd/bin
> +echo "#!/bin/sh
> +
> +mount -t proc proc /proc
> +mount -t sysfs sysfs /sys
> +mount -t devtmpfs devtmpfs /dev
> +/bin/sh" > initrd/init
> +chmod +x initrd/init
> +cd initrd
> +find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
> +cd ..
> +
> +mkdir -p rootfs
> +cd rootfs
> +tar xvzf ../initrd.tar.gz
> +mkdir proc
> +mkdir run
> +mkdir srv
> +mkdir sys
> +rm var/run
> +cp -ar ../dist/install/* .
> +mv ../initrd.cpio.gz ./root
> +cp ../Image ./root
> +echo "name=\"test\"
> +memory=512
> +vcpus=1
> +kernel=\"/root/Image\"
> +ramdisk=\"/root/initrd.cpio.gz\"
> +extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
> +" > root/test.cfg
> +echo "#!/bin/bash
> +
> +export LD_LIBRARY_PATH=/usr/local/lib
> +bash /etc/init.d/xencommons start
> +
> +xl list
> +
> +xl create -c /root/test.cfg
> +
> +" > etc/local.d/xen.start
> +chmod +x etc/local.d/xen.start
> +echo "rc_verbose=yes" >> etc/rc.conf
> +find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
> +cd ../..
> +
> +# Start a TFTP server to provide TFTP service to FVP
> +service tftpd-hpa start
> +
> +# ImageBuilder
> +echo 'MEMORY_START="0x80000000"
> +MEMORY_END="0xFF000000"
> +
> +DEVICE_TREE="fvp-base-gicv3-psci-1t.dtb"
> +XEN="xen"
> +DOM0_KERNEL="Image"
> +DOM0_RAMDISK="xen-rootfs.cpio.gz"
> +XEN_CMD="console=dtuart dom0_mem=1024M console_timestamps=boot"
> +
> +NUM_DOMUS=0
> +
> +LOAD_CMD="tftpb"
> +UBOOT_SOURCE="boot.source"
> +UBOOT_SCRIPT="boot.scr"' > binaries/config
> +rm -rf imagebuilder
> +git clone https://gitlab.com/ViryaOS/imagebuilder
> +bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
> +
> +# Copy files to the TFTP directory to use
> +cp ./binaries/boot.scr /srv/tftp/
> +cp ./binaries/Image /srv/tftp/
> +cp ./binaries/xen-rootfs.cpio.gz /srv/tftp/
> +cp ./binaries/xen /srv/tftp/
> +cp ./binaries/fvp-base-gicv3-psci-1t.dtb /srv/tftp/
> +
> +# Start FVP
> +TERM0_CFG="-C bp.terminal_0.mode=telnet -C bp.terminal_0.start_telnet=0"
> +TERM1_CFG="-C bp.terminal_1.mode=telnet -C bp.terminal_1.start_telnet=0"
> +TERM2_CFG="-C bp.terminal_2.mode=telnet -C bp.terminal_2.start_telnet=0"
> +TERM3_CFG="-C bp.terminal_3.mode=telnet -C bp.terminal_3.start_telnet=0"
> +
> +VIRTIO_USER_NETWORK_CFG="-C bp.virtio_net.enabled=1 \
> +-C bp.virtio_net.hostbridge.userNetworking=1 \
> +-C bp.virtio_net.hostbridge.userNetPorts=8022=22 \
> +-C bp.virtio_net.transport=legacy"
> +
> +./automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp \
> +    "/FVP/FVP_Base_RevC-2xAEMvA/Base_RevC_AEMvA_pkg/models/Linux64_armv8l_GCC-9.3/FVP_Base_RevC-2xAEMvA \
> +    -C bp.vis.disable_visualisation=1 \
> +    -C bp.ve_sysregs.exit_on_shutdown=1 \
> +    -C bp.secure_memory=0 \
> +    -C cache_state_modelled=0 \
> +    -C cluster0.has_arm_v8-4=1 \
> +    -C cluster1.has_arm_v8-4=1 \
> +    ${TERM0_CFG} ${TERM1_CFG} ${TERM2_CFG} ${TERM3_CFG} \
> +    ${VIRTIO_USER_NETWORK_CFG} \
> +    -C bp.secureflashloader.fname=$(pwd)/binaries/bl1.bin \
> +    -C bp.flashloader0.fname=$(pwd)/binaries/fip.bin" |& \
> +        tee smoke.serial

This script is clear and it is fine:

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

My only concern is that the expect checks on what booted (Xen, Dom0,
DomU) are inside the script fvp-base-smoke-dom0-arm64.exp rather than in
this script. So if in the future we are going to have multiple tests
with different configurations (for instance see
qemu-smoke-dom0less-arm64.sh) we'll have to find a way to reuse
fvp-base-smoke-dom0-arm64.exp somehow.


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 01:43:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 01:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650316.1015742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPtK-0003K3-TB; Fri, 08 Dec 2023 01:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650316.1015742; Fri, 08 Dec 2023 01: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 1rBPtK-0003Jw-QT; Fri, 08 Dec 2023 01:42:58 +0000
Received: by outflank-mailman (input) for mailman id 650316;
 Fri, 08 Dec 2023 01: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBPtJ-0003Jm-Cb
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 01:42:57 +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 1afbdd35-956b-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 02:42:56 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 5B5B2CE25D7;
 Fri,  8 Dec 2023 01:42:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89A3AC433C9;
 Fri,  8 Dec 2023 01:42: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: 1afbdd35-956b-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701999770;
	bh=lzPDqEfWco1SI3FujK3rSfQ7ZlhLtamE/+1S1PtStDk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=CANGD9GrrODsYg+dSuVnQZD3hjQJoPEW60BzGV8TWQ4PYyUoGPSzBCWqdMM2dOROp
	 BIzcii6wbovF6DvJverfw3mKcOszymRwxBRFzcBUYRMec7CeLf9+FYZTLBiFFm/7a1
	 VOReKnjafXYIjhA6i2XWSI7W9PlybWHuvtgUc0CfAOixkGVp9asN96UdMTGMq/x6TR
	 QFJ9d/TTOI/aUbIbGEwm3qIe2mY1kUpscV8YObR00enI9sqwWu5etTpK20UbcpHWc3
	 qRPmH3E86O8mBsXb4n7mciZyt2Gyl5vfGXuEES8sGj4ZxDeXFj/VOP1FUPgwP5b0KJ
	 Ymr4y6c9zTTFQ==
Date: Thu, 7 Dec 2023 17:42:47 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Henry Wang <Henry.Wang@arm.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
Subject: Re: [PATCH 5/5] automation: Add the arm64 FVP build and Dom0 smoke
 test jobs
In-Reply-To: <20231207135318.1912846-6-Henry.Wang@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312071741410.1265976@ubuntu-linux-20-04-desktop>
References: <20231207135318.1912846-1-Henry.Wang@arm.com> <20231207135318.1912846-6-Henry.Wang@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Dec 2023, Henry Wang wrote:
> Add a job in the build stage to export the TF-A, U-Boot and the
> device tree for the FVP platform from the test artifact container.
> 
> Add a FVP smoke test job in the test stage to do the same test as
> the `qemu-smoke-dom0-arm64-gcc` job.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>

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


> ---
> Although it does not affect the functionality, I am still quite
> confused about why the logs displayed by GitLab UI, for
> example [1], is much less than the actual output (saved in the
> artifacts, see [2]). Had a discussion with Michal on Matrix
> and we agree that the log in gitlab UI is usually capped.
> 
> [1] https://gitlab.com/xen-project/people/henryw/xen/-/jobs/5700569676
> [2] https://gitlab.com/xen-project/people/henryw/xen/-/jobs/5700569676/artifacts/file/smoke.serial
> ---
>  automation/gitlab-ci/build.yaml | 17 +++++++++++++++++
>  automation/gitlab-ci/test.yaml  | 22 ++++++++++++++++++++++
>  2 files changed, 39 insertions(+)
> 
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index 32af30cced..89d2f01302 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -344,6 +344,23 @@ kernel-6.1.19-export:
>    tags:
>      - x86_64
>  
> +armfvp-uboot-tfa-2023.10-2.9.0-arm64-export:
> +  extends: .test-jobs-artifact-common
> +  image: registry.gitlab.com/xen-project/xen/tests-artifacts/armfvp-uboot-tfa:2023.10-2.9.0-arm64v8
> +  script:
> +    - |
> +       mkdir binaries && \
> +       cp /bl1.bin binaries/bl1.bin && \
> +       cp /fip.bin binaries/fip.bin && \
> +       cp /fvp-base-gicv3-psci-1t.dtb binaries/fvp-base-gicv3-psci-1t.dtb
> +  artifacts:
> +    paths:
> +      - binaries/bl1.bin
> +      - binaries/fip.bin
> +      - binaries/fvp-base-gicv3-psci-1t.dtb
> +  tags:
> +    - arm64
> +
>  # Jobs below this line
>  
>  # Build jobs needed for tests
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 6aabdb9d15..47e00d0a0b 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -96,6 +96,19 @@
>    tags:
>      - xilinx
>  
> +.fvp-arm64:
> +  extends: .test-jobs-common
> +  variables:
> +    CONTAINER: debian:bookworm-arm64v8-fvp
> +    LOGFILE: fvp-smoke-arm64.log
> +  artifacts:
> +    paths:
> +      - smoke.serial
> +      - '*.log'
> +    when: always
> +  tags:
> +    - arm64
> +
>  .adl-x86-64:
>    extends: .test-jobs-common
>    variables:
> @@ -459,3 +472,12 @@ qemu-smoke-ppc64le-powernv9-gcc:
>    needs:
>      - qemu-system-ppc64-8.1.0-ppc64-export
>      - debian-bullseye-gcc-ppc64le-debug
> +
> +fvp-smoke-dom0-arm64-gcc-debug:
> +  extends: .fvp-arm64
> +  script:
> +    - ./automation/scripts/fvp-base-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *arm64-test-needs
> +    - armfvp-uboot-tfa-2023.10-2.9.0-arm64-export
> +    - alpine-3.18-gcc-debug-arm64
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 01:45:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 01:45:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650320.1015753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBPvr-0004YR-FP; Fri, 08 Dec 2023 01:45:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650320.1015753; Fri, 08 Dec 2023 01: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 1rBPvr-0004YK-BT; Fri, 08 Dec 2023 01:45:35 +0000
Received: by outflank-mailman (input) for mailman id 650320;
 Fri, 08 Dec 2023 01:45: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBPvp-0004YE-Go
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 01:45:33 +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 78189a53-956b-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 02:45:31 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id ADFAC6223E;
 Fri,  8 Dec 2023 01:45:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 56B54C433C8;
 Fri,  8 Dec 2023 01:45: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: 78189a53-956b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1701999929;
	bh=vLc1uRakr9TmI+nUcaT0DcgRdkZuxW00VBXiSP6Z/hc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=PJLXqr8aWQO/nZE9na8sMQDop4gDRTaBiUVJhUtAvxlOoaD3XVGEQ5xW88RXsSdzp
	 LY52O2zTq8BmFRo7n+c8dDJ5pPmjESc2YYvNt39X4tCEHrDpYnokFLZ6Aptj3L6364
	 c/2hTxokSI2KQkaFnpRqHKVo9c8V8rBGTAxWKEXa8GOYaqA5p0bOFFfP+E5IJxWvwA
	 TA4ULzvH5k1JjUJC/fhsQ4fcONT7curvLTOxav3uItkEDbUHDAshPjRLzKye6N1+Gr
	 HGOU20Ps4aX4veNxlJUII0t76YUR7XWKU5dcgG7W/dM4+lX5hR+rmaL3mWNjnuXcU9
	 E4JLbmWj4OIKw==
Date: Thu, 7 Dec 2023 17:45:26 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Henry Wang <Henry.Wang@arm.com>, xen-devel@lists.xenproject.org, 
    Doug Goldstein <cardoe@cardoe.com>, Michal Orzel <michal.orzel@amd.com>, 
    Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
    Wei Chen <wei.chen@arm.com>
Subject: Re: [PATCH 1/5] automation: Add a Dockerfile for running FVP_Base
 jobs
In-Reply-To: <alpine.DEB.2.22.394.2312071722250.1265976@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2312071743220.1265976@ubuntu-linux-20-04-desktop>
References: <20231207135318.1912846-1-Henry.Wang@arm.com> <20231207135318.1912846-2-Henry.Wang@arm.com> <alpine.DEB.2.22.394.2312071722250.1265976@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, 7 Dec 2023, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Henry Wang wrote:
> > Fixed Virtual Platforms (FVPs) are complete simulations of an Arm
> > system, including processor, memory and peripherals. These are set
> > out in a "programmer's view", which gives programmers a comprehensive
> > model on which to build and test software. FVP can be configured to
> > different setups by its cmdline parameters, and hence having the FVP
> > in CI will provide us with the flexibility to test Arm features and
> > setups that we find difficult to use real hardware or emulators.
> > 
> > This commit adds a Dockerfile for the new arm64v8 container with
> > FVP installed, based on the debian bookworm-arm64v8 image. This
> > container will be used to run the FVP test jobs. Compared to the
> > debian bookworm-arm64v8 image, the packages in the newly added FVP
> > container does not contain the `u-boot-qemu`, and adds the `expect`
> > to run expect scripts introduced by following commits, `telnet` to
> > connect to FVP, and `tftpd-hpa` to provide the TFTP service for
> > the FVP.
> > 
> > Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> > ---
> >  .../debian/bookworm-arm64v8-fvp.dockerfile    | 64 +++++++++++++++++++
> >  1 file changed, 64 insertions(+)
> >  create mode 100644 automation/build/debian/bookworm-arm64v8-fvp.dockerfile
> > 
> > diff --git a/automation/build/debian/bookworm-arm64v8-fvp.dockerfile b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile
> > new file mode 100644
> > index 0000000000..3b87dc5a5b
> > --- /dev/null
> > +++ b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile
> 
> Please move this container under automation/tests-artifacts/ because the
> container is only meant to be used for tests as opposed as to build Xen.
> I know that in other cases we have reused the build container but that
> just because it was already there an working for the purpose.
> 
> Also please name it based on the fvp rather than debian:
> 
> automation/tests-artifacts/armfvp/11.23_9-arm64v8.dockerfile
> 
> Everything else looks fine.

I take it back. We even have
automation/build/ubuntu/xenial-xilinx.dockerfile and
automation/build/debian/bookworm-cppcheck.dockerfile

At one point I think we should separate the build containers from the
ones we use for testing but I won't ask it here.

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 01:57:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 01:57:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650324.1015763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBQ71-0000Yk-EH; Fri, 08 Dec 2023 01:57:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650324.1015763; Fri, 08 Dec 2023 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 1rBQ71-0000Yd-BB; Fri, 08 Dec 2023 01:57:07 +0000
Received: by outflank-mailman (input) for mailman id 650324;
 Fri, 08 Dec 2023 01:57:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBQ6z-0000WG-5M
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 01:57:05 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2051.outbound.protection.outlook.com [40.107.7.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1576252c-956d-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 02:57:03 +0100 (CET)
Received: from AM6PR04CA0066.eurprd04.prod.outlook.com (2603:10a6:20b:f0::43)
 by GV2PR08MB8677.eurprd08.prod.outlook.com (2603:10a6:150:b9::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 01:56:31 +0000
Received: from AM4PEPF00027A6B.eurprd04.prod.outlook.com
 (2603:10a6:20b:f0:cafe::7f) by AM6PR04CA0066.outlook.office365.com
 (2603:10a6:20b:f0::43) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Fri, 8 Dec 2023 01:56:31 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A6B.mail.protection.outlook.com (10.167.16.89) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.24 via Frontend Transport; Fri, 8 Dec 2023 01:56:31 +0000
Received: ("Tessian outbound 7c4ecdadb9e7:v228");
 Fri, 08 Dec 2023 01:56:30 +0000
Received: from 878cb3ffa17c.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 8DF756C2-6806-436D-BE8F-B1D11821BC82.1; 
 Fri, 08 Dec 2023 01:56:20 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 878cb3ffa17c.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 01:56:20 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by DB9PR08MB6683.eurprd08.prod.outlook.com (2603:10a6:10:2ad::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 01:56:18 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 01:56: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: 1576252c-956d-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=UvMfUJmKA6UcfCvNM9q0l8l6SkBcht3PlnKXYL7BcsCeRkUc81Xc1dUCuYH/9Jq/7fmixiEa65zZ3HYFCrWltQi7H5Ecsj83T5rsiZBgXJh7fuujZv1n8uq2d3gN0QJwFTNRpTyF49ytuqaC0sEj2BFlh61M+kQR8SC10+vYAZAHec4erEN0XLkj1YULe+CkUL3DSpJ1F6nLU5pOrVHxHSI9n1il0b4obwwKjc+GFxZarTA7MfXzbAfHnBNdmR+ZwWxg9vXskDgIC/wjXvb02fGyDbFc2Rr5lqgKnCQRdyk7ZFwsZUQYOysC2lftZIs09KuYlpDCJ9kUQDzPiYVfpw==
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=JVAZ9qZ5G8o9H3m+vA/lVirzaKdcZi3ZZ1l3ZRuToHo=;
 b=kNte85bSKPlyhtLsTNk5YcNhpeDiN/w4/aOx/OXX1Fdu9LPPdPXQ4KWUDX1nf+yQY/w+yz//1QmQv7LoEaqRxJJKu+hYF1XgDeWpfM/ysYzfe8tviSnE4QmDkktexialTOlSrSpt3808kZRts5own6oPNE3twfU/DwvgenCSTJHmSq+HD80GpgJgf3C71c2g4ueXR0OgZe0YhoHlysyG50USKQQKapDpqtZVrxXmlZQCgwYjbc++wuoKphtprO36w1u45z04JJIMIdXPo6/eWmpEXf/Pod+Tb6bNWtysjGGzHNIh9zWE13GebWkJ8EEikiHzD8qqL4PkdUNCdt2RWg==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JVAZ9qZ5G8o9H3m+vA/lVirzaKdcZi3ZZ1l3ZRuToHo=;
 b=dFVtF+oNXzOEil2YCyUbXlaCo4W8+PWGQuoNn/ps1mS2y1htA26YuElNptx2DWhOJo689DDGq9wMXYQ8kHNH19g1xmZ4og4y/GfNIFYlmGSPZ3aEqqCurfHhw0ngVGHz2mTN69PIXppLD4EDCLpvhRh+Qdi+lZjJP7X6WSgEhxI=
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=armh.onmicrosoft.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: 068ee60ddef53601
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=EY5YGNEh0b8lEU+g5FGWJ+8pG701YvWsDTvpKckGXpOq0fK8jnsFON5lWxxwQNjlrsdj77kAQ5bSH3gY838PnFOCLAMDxl1wPuTlc++Q2ciQMIIaaZixOLYMqlzT2RdUH9yIlObfpZ1PJGQvGivuM/pJGTPSYzEIQIW9rbTxni1ppCat1Tmc6YH65ncmWyJDfVQeo+OCsgnsRI/8yUiNXOxx9HYZr5GUnii6+IL9yv/ZixwQWeQF3wNlpwlCHTHMhTkiD/1rli56Hy4rB/TzCYTBqLviEoyijZdMHV+va8Go4Mtg8KvtuDJChcMuQN1bpdHin6m9mscnbD/cuhyHJg==
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=JVAZ9qZ5G8o9H3m+vA/lVirzaKdcZi3ZZ1l3ZRuToHo=;
 b=NFSFRaR+M+4engdK6scJrzcjhDngyeajEW2lAbBNG2GgJZHaSoFqci6OaB6HVPhdIIQgikKgELUMJwtd5OHhNkh6Ii1WEcOIU0URqefNf8g+9fFTF9U/x0OopRRiIpuoptljd7HgEq4TMFN1CIF0wt/IfEOGnnIkuW3K5m4p6aP1bUSWBn4gfG3uDDPfkM6lx7Fxfrap13TFcSTexYfmV3Hj1Q7e5r4YNZtgCEZ5Xjtu4fq19LmUoiU3dhVYHCfTIhWL7WVE6vycrQSYhocgD3AaNOumJGcVNMaLJaikPn4gWb2Pv3TOkB5xVe/eYn86VlV5licE5gNOgilkrj84yA==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JVAZ9qZ5G8o9H3m+vA/lVirzaKdcZi3ZZ1l3ZRuToHo=;
 b=dFVtF+oNXzOEil2YCyUbXlaCo4W8+PWGQuoNn/ps1mS2y1htA26YuElNptx2DWhOJo689DDGq9wMXYQ8kHNH19g1xmZ4og4y/GfNIFYlmGSPZ3aEqqCurfHhw0ngVGHz2mTN69PIXppLD4EDCLpvhRh+Qdi+lZjJP7X6WSgEhxI=
From: Henry Wang <Henry.Wang@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Michal Orzel <michal.orzel@amd.com>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH 4/5] automation: Add the script for the FVP smoke test
Thread-Topic: [PATCH 4/5] automation: Add the script for the FVP smoke test
Thread-Index: AQHaKRTRqeoumv0W/UiTEosHhxXqcLCenTGAgAAEDgA=
Date: Fri, 8 Dec 2023 01:56:18 +0000
Message-ID: <73EDF52D-918B-480C-9263-D8D6A0B06D57@arm.com>
References: <20231207135318.1912846-1-Henry.Wang@arm.com>
 <20231207135318.1912846-5-Henry.Wang@arm.com>
 <alpine.DEB.2.22.394.2312071738200.1265976@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2312071738200.1265976@ubuntu-linux-20-04-desktop>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|DB9PR08MB6683:EE_|AM4PEPF00027A6B:EE_|GV2PR08MB8677:EE_
X-MS-Office365-Filtering-Correlation-Id: 8bb93eb6-77a9-4668-4193-08dbf790e62d
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 gvJ0+QyJRSiw+/EIHW/mDdmYIkw2xfLN9RCm4d3TtcKYtsCLCcGDIqGiXFfYC9r7Tq6HczBD3GZlwJDy41GP9raEddisIe3o9UMQjO8trfjGd05gQIRAveVA5VnPMPPgN/fqU+HUogIuo0buE/1zYcb4BgI2JxkZHXya4bzMsAOLDvkz9R7XLOmQ79P2t4rngPmz1mP84PgLbOVBS2j05zCj2UDNbm2A4LJGc1PQEHqAnYNq8wW9Y013Uu6uXm0VLIGPf4qICQ4OLeJK1XtzWUMB80wqSvGrYo4hjmUe6+46m1pVfh8D9gz2ULp3FGmxeO0/zMqxHbcOaYCoA9sFeyzY8Bsk8RUCmtwhb14AIxLsHkELKY1NsrrXzEkjlbLiMEroKVFC5poDeNksTMXWeuf9B149TVNWu31e59QUPqCOvF+g9ShptND+LhFmuI71eijGSvo2UfdbJvXRFvIpZ9LTulNW5CwKlcnTWtxs3qBFuCNCiYL1TMX4irLqO6B/kP4QFOgxVkIwPcwrcHBh58bSNQbj/mu3Q+ofJ5P1Pf+wECdnu4cdhQueEZ+suajiOUZmxtMq+7OEk6bdklQT3cPMxJ+GsWX7UJbHx2HkJQ4zM9CO0UFoYntipqu9+p6wgD4MvSIz5H2kg/bvt3U93Q==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(39860400002)(376002)(366004)(136003)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(6506007)(53546011)(478600001)(6512007)(6486002)(38070700009)(38100700002)(5660300002)(26005)(122000001)(316002)(86362001)(76116006)(54906003)(6916009)(66946007)(64756008)(91956017)(66556008)(66476007)(66446008)(71200400001)(4326008)(2616005)(8676002)(8936002)(33656002)(2906002)(41300700001)(36756003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <8233EF2353CDB7428E0E67649822A7DB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6683
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:
 AM4PEPF00027A6B.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f30d4705-a263-4569-e6b2-08dbf790dea8
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	7ll0iylQgo8pVow3UGMnwLncZ/QqoZ6IPZgcifvIHhESmfp/HhG4FjhkomytRE4StAUB+xTqT7GL1HOX7gBZRwM0DTq/XP0pDbJR+xKF/IvT6i+bPgmTXJbXBjaB8WQ2+7NCSvBC04LNDZplj1Wzk2tkFuCU2I5aFCvg61mxq8lcxjrCWVEHhhow4I/7EqXr+qUFIPBTk0h5mmkKBt8zWyost1x9XCZjr9VVy/jwzhyziSeKbbveMNe3Fgh+yhoAFtn+zuL3PezahW1hiVdHx+n2AgAhB3GWSNQtyb2Z1FJb7h6ArHzVuI6WhvLnEfHPcNmZc3Drsxdai1jC4lnDhl4d30qUZK3W5tK9W1xIwsO7hAb/8IZk9dObti0Lv0TQ2AVXN7Yt4WWIIdaQUMWy1Q5RdnpxBwKG5IsnnYm8FycvQpKCR7MaSmqdjGD57EaE7SaJ/IFNuNYYPmSC9wXBkgq4bNJKo7froubYmEUprlht2DEmzBlXgNDdU8s1mupTJD8HixXTw6YGKQGQRqV+8zH/O20mxNyIRpzMtw8ltufsDKUYP0iCfPyLrxdtWuvYkNIhRjAmvggDy26sajeRaKetiuKr23k2s148T32iuerVIphXVvY7m8RFx7SuswcM1OfE3KaV5I1ooRypp/tWxfVr36WaAEXatmprzjStyrJoA2cM9sl7ByA5umX8inri1pvKcxu+MRKOjd+QlJpxq38HVI9TCayvVSrJvckFvAA=
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:(13230031)(4636009)(376002)(136003)(396003)(346002)(39860400002)(230922051799003)(82310400011)(1800799012)(186009)(64100799003)(451199024)(36840700001)(40470700004)(46966006)(2906002)(5660300002)(40480700001)(4326008)(8936002)(6862004)(8676002)(316002)(70586007)(54906003)(70206006)(40460700003)(47076005)(36860700001)(478600001)(2616005)(6486002)(53546011)(6512007)(6506007)(36756003)(41300700001)(26005)(336012)(33656002)(82740400003)(356005)(81166007)(86362001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 01:56:31.1665
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8bb93eb6-77a9-4668-4193-08dbf790e62d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A6B.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8677

SGkgU3RlZmFubywNCg0KPiBPbiBEZWMgOCwgMjAyMywgYXQgMDk6NDEsIFN0ZWZhbm8gU3RhYmVs
bGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4gd3JvdGU6DQo+IA0KPiBPbiBUaHUsIDcgRGVj
IDIwMjMsIEhlbnJ5IFdhbmcgd3JvdGU6DQo+PiBUaGlzIGNvbW1pdCBhZGRzIHRoZSBzaGVsbCBz
Y3JpcHQgZm9yIHRoZSBGVlAgc21va2UgdGVzdC4gU2ltaWxhcmx5DQo+PiBhcyB0aGUgUUVNVSBq
b2JzLCB0aGUgc2hlbGwgc2NyaXB0IHdpbGwgZmlyc3RseSBwcmVwYXJlIHRoZSBEb21VDQo+PiBC
dXN5Qm94IGltYWdlLCB1c2UgdGhlIEltYWdlQnVpbGRlciB0byBhcnJhbmdlIHRoZSBiaW5hcmll
cyBpbiBtZW1vcnkNCj4+IGFuZCBnZW5lcmF0ZSB0aGUgVS1Cb290IHNjcmlwdCwgdGhlbiBzdGFy
dCB0aGUgdGVzdC4gVG8gcHJvdmlkZSB0aGUNCj4+IFRGVFAgc2VydmljZSBmb3IgdGhlIEZWUCwg
dGhlIHNoZWxsIHNjcmlwdCB3aWxsIGFsc28gc3RhcnQgdGhlIFRGVFANCj4+IHNlcnZpY2UsIGFu
ZCBjb3B5IHRoZSBiaW5hcmllcyBuZWVkZWQgYnkgdGVzdCB0byB0aGUgVEZUUCBkaXJlY3RvcnkN
Cj4+IHVzZWQgYnkgdGhlIFRGVFAgc2VydmVyLg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBIZW5y
eSBXYW5nIDxIZW5yeS5XYW5nQGFybS5jb20+DQo+PiAtLS0NCj4+IC4uLi9zY3JpcHRzL2Z2cC1i
YXNlLXNtb2tlLWRvbTAtYXJtNjQuc2ggICAgICB8IDExNyArKysrKysrKysrKysrKysrKysNCj4+
IDEgZmlsZSBjaGFuZ2VkLCAxMTcgaW5zZXJ0aW9ucygrKQ0KPj4gY3JlYXRlIG1vZGUgMTAwNzU1
IGF1dG9tYXRpb24vc2NyaXB0cy9mdnAtYmFzZS1zbW9rZS1kb20wLWFybTY0LnNoDQo+IA0KPiBU
aGlzIHNjcmlwdCBpcyBjbGVhciBhbmQgaXQgaXMgZmluZToNCj4gDQo+IFJldmlld2VkLWJ5OiBT
dGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQoNClRoYW5rcyENCg0K
PiANCj4gTXkgb25seSBjb25jZXJuIGlzIHRoYXQgdGhlIGV4cGVjdCBjaGVja3Mgb24gd2hhdCBi
b290ZWQgKFhlbiwgRG9tMCwNCj4gRG9tVSkgYXJlIGluc2lkZSB0aGUgc2NyaXB0IGZ2cC1iYXNl
LXNtb2tlLWRvbTAtYXJtNjQuZXhwIHJhdGhlciB0aGFuIGluDQo+IHRoaXMgc2NyaXB0LiBTbyBp
ZiBpbiB0aGUgZnV0dXJlIHdlIGFyZSBnb2luZyB0byBoYXZlIG11bHRpcGxlIHRlc3RzDQo+IHdp
dGggZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zIChmb3IgaW5zdGFuY2Ugc2VlDQo+IHFlbXUtc21v
a2UtZG9tMGxlc3MtYXJtNjQuc2gpIHdlJ2xsIGhhdmUgdG8gZmluZCBhIHdheSB0byByZXVzZQ0K
PiBmdnAtYmFzZS1zbW9rZS1kb20wLWFybTY0LmV4cCBzb21laG93Lg0KDQpXZSBkbyBoYXZlIHdh
eXMgdG8gcmV1c2UgZXhwZWN0IHNjcmlwdCwgZm9yIGV4YW1wbGUsIHdlIGNhbiBleHRyYWN0IHRo
ZSBjb21tb24NCmNvZGUgKHZhcmlhYmxlcyBhbmQgdGVzdCBsb2dpYykgdG8gdGhlIGNvbW1vbi50
Y2wgZmlsZSBhbmQgc291cmNlIHRoZSBjb21tb24udGNsIGZpbGUNCmluIHRoZSBleHBlY3Qgc2Ny
aXB0IHRvIHJldXNlIHRoZSBjb2RlLiBUaGUgcmVhc29uIHdoeSBJIGRpZG7igJl0IGRvIHRoYXQg
aW4gdGhpcyBzZXJpZXMNCmlzIHRoYXQgY3VycmVudGx5IHRoZXJlIGlzIG9ubHkgb25lIHNjcmlw
dCBzbyBJIGZlZWwgdGhhdCB0aGVyZSBpcyBub3QgbXVjaCBiZW5lZml0IHRvIGRvDQp0aGlzIGlu
c3RhbnRseSA6KSBMZXTigJlzIHdhaXQgdG8gc2VlIGlmIHRoZXJlIGlzIG1vcmUgY29tbWVudHMg
ZnJvbSBvdGhlcnMsIGFuZCBJIGFtDQpkZWZpbml0ZWx5IG9wZW4gdG8gcmVmYWN0b3IgaWYgdGhl
cmUgaXMgdGhlIG5lZWQgdG8gZXh0cmFjdCB0aGUgY29tbW9uIGxvZ2ljIChmb3IgZXhhbXBsZQ0K
d2hlbiB3ZSBhZGQgZG9tMGxlc3MgdGVzdHMgaW4gdGhlIGZ1dHVyZSkuDQoNCktpbmQgcmVnYXJk
cywNCkhlbnJ5DQoNCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 02:04:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 02:04:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650328.1015773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBQE0-0003iR-5z; Fri, 08 Dec 2023 02:04:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650328.1015773; Fri, 08 Dec 2023 02:04:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBQE0-0003iK-1y; Fri, 08 Dec 2023 02:04:20 +0000
Received: by outflank-mailman (input) for mailman id 650328;
 Fri, 08 Dec 2023 02:04:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBQDy-0003iE-K1
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 02:04:18 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur01on2059.outbound.protection.outlook.com [40.107.13.59])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17dda796-956e-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 03:04:17 +0100 (CET)
Received: from AS9PR06CA0624.eurprd06.prod.outlook.com (2603:10a6:20b:46e::27)
 by AS8PR08MB9886.eurprd08.prod.outlook.com (2603:10a6:20b:5c1::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25; Fri, 8 Dec
 2023 02:03:47 +0000
Received: from AMS0EPF00000190.eurprd05.prod.outlook.com
 (2603:10a6:20b:46e:cafe::76) by AS9PR06CA0624.outlook.office365.com
 (2603:10a6:20b:46e::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Fri, 8 Dec 2023 02:03:47 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF00000190.mail.protection.outlook.com (10.167.16.213) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 02:03:47 +0000
Received: ("Tessian outbound 5d213238733f:v228");
 Fri, 08 Dec 2023 02:03:47 +0000
Received: from 382d63f3655d.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 C133F798-4A5A-4029-ACAF-23CDFB789EA8.1; 
 Fri, 08 Dec 2023 02:03:40 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 382d63f3655d.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 02:03:40 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by DB9PR08MB6683.eurprd08.prod.outlook.com (2603:10a6:10:2ad::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 02:03:38 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 02:03: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: 17dda796-956e-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=bFosfbhr+ViiyPW2ku3XkOR9TydiZyS5bdS2ymnoouZaaSULtIJlM+sFZ6LTJwEgI5FzE6K2SXFHWVGpgi1rbTowlQUbmecl3x8SSzjRYyZaImYDd8SpiOMxhMmqF5uZJMoggrPwVjfQOgs3pY5VRd79hMLPrVWQtS5dWdqKrHJf4/OcPHtxkcpw3fUgEdQHXgdorlcDPRxOeSKzlnHb0XpLZExwGE4osf6MUDMi+v+8o8+F4YCLjqPgFx8rOgHg1UA8X/maMQf0ngblScStmlSb1r5mHPeB7Jhwgbl1hhd08HEayjiAtD0q+C8Ay6a6hF6PnJUEjyLpyHEA113lOQ==
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=4yDdnjYY8SRcq+Lgzn0MCbOIasGqyqgSv4HG62GMTAo=;
 b=FjSoVxUedpxX0hnqq23GfU1BZkU4mgwfIVBYCnk+ndkvEtZH5JLTR5ic5TT6Ty2q6rG3UgCB0Uku417s0jlfNoo3TjOPoVOuLeRvklhbZPO19bKfCjxh+3dflwymSUNs7vP/2jjpIkdbvM1ZMaVmAgKWksbGyx/6Ioya94YEQS61VADYbyZhDJXhw40WrDEmg/QLnKpLsaAi36JcdkiWNeeN7nSH+NMNFMgbb+YPnUtEI891pYNRtid9o/dWsJYqTP8PhdyHVpk1/6jZNob6fkYMFUPy5Lo7w8mfHGxvzR0BIG+UiFywvF6npCgp+hnKAhRebQmyiyBwgavS6cl+Bg==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4yDdnjYY8SRcq+Lgzn0MCbOIasGqyqgSv4HG62GMTAo=;
 b=QPwiEvXkfu0WwWjPe87lbmuvHcm2jxcmZGhwqZ+avJmw6BZwhnOB8nE8M93yQAQp7YANUS56wuC9IvkXwsmJJ4iLEcgRaUY0dg1BvVNp5z+NCccZKuloolL/m7O3Ss7ZBoh+zmOSp15xuesyJKyM59JVd5yNsP4Z4wpvJvm23Ds=
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=armh.onmicrosoft.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: 09f2e58ba2f59a63
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kLA/jpEsF7PpS+Gj9iz95fSFB8UDQo0Zo4WR2GbmSeeRlaJliQ5jQnIbHbkfeqauNgxhrOQk1iXzSOWvj5TGOZJhM5ZSfr+ktW9hzenjhoIsP2zwIblZMdy0PuPDs5j4sjdkQvmnqbSlojQJMVyar3JoHjIFBWn2zOlIVyWfPrdZIiEyPoXRDVI9sxrYJxW1HE3fAnPvzu+WfexwguMLktBu4myAePP75oSUozSpM3TkRmlTlv3Y6Btmy1M5JYr0uTXJ4qqQpmMIabovEPDQtHZCJxEs6tlIiYeWExdtyN4X1D7u0rX/n0f9WQ9Zj3CxuNZIPcNPKWbFSp4pCHnRfw==
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=4yDdnjYY8SRcq+Lgzn0MCbOIasGqyqgSv4HG62GMTAo=;
 b=cDH0PpVkpmrdHJQxYPu+N1MYsnJuBBcouW8ItjRzeN13+U+PscGcqiWX4enhQtIjEmneUhzencn5evg2Nr5O+hsHaNV5ftwcCWzVTbxY3S+newNo40AXLcWKLBVx0YkGROc5vZLhz+PViKJLsLxzmrbJM/sR97pG3TKq0TxEUzq41HtWB4c7dL60MwrHXu6LTJeGz6YDEn+bn8zxHrFAiAVdrnVp91azIHFdLImN1/XqmfvIy6VHkBC/vjb91o/isrvyX7aTxeM527ERU3fsNQJRqD4PKmEqVTiBIkiDeyrKOOMfJ2YxXqab+7f8eQ8dxXKZMZ+SCr1FrkX+R9kLeg==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4yDdnjYY8SRcq+Lgzn0MCbOIasGqyqgSv4HG62GMTAo=;
 b=QPwiEvXkfu0WwWjPe87lbmuvHcm2jxcmZGhwqZ+avJmw6BZwhnOB8nE8M93yQAQp7YANUS56wuC9IvkXwsmJJ4iLEcgRaUY0dg1BvVNp5z+NCccZKuloolL/m7O3Ss7ZBoh+zmOSp15xuesyJKyM59JVd5yNsP4Z4wpvJvm23Ds=
From: Henry Wang <Henry.Wang@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Michal Orzel <michal.orzel@amd.com>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH 3/5] automation: Add the expect script with test case for
 FVP
Thread-Topic: [PATCH 3/5] automation: Add the expect script with test case for
 FVP
Thread-Index: AQHaKRTRSAbthQjm9k2SM6wWsGqHurCenEEAgAAHDIA=
Date: Fri, 8 Dec 2023 02:03:38 +0000
Message-ID: <DDEC86F3-A2AA-4A34-87E5-4E91C2BF99BE@arm.com>
References: <20231207135318.1912846-1-Henry.Wang@arm.com>
 <20231207135318.1912846-4-Henry.Wang@arm.com>
 <alpine.DEB.2.22.394.2312071736190.1265976@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2312071736190.1265976@ubuntu-linux-20-04-desktop>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|DB9PR08MB6683:EE_|AMS0EPF00000190:EE_|AS8PR08MB9886:EE_
X-MS-Office365-Filtering-Correlation-Id: 39ef9688-e059-4984-a7e2-08dbf791ea52
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 RwPSEno4g2we4oa4KV1fAth7cRf3NP2IozoXUTrpiknNptP78eUZtG4BvsIHWT/7rOxd6Ho82zzsJscygwJCweTisZ5Ts/+dfzgKvTrPodNyk9TRNoignX6orSfK1uodhuyxmEG7swg/5u84T+FvyDm0CaG9oYQ1Qygu8Z/tzh3NlB1QepSD9taKegV413FyQD1NyOY+PUuU/r3Uh2JETa4NvVhPMQN4CQc7WOkfvzS4/JirYEny5Gkr02MRl42Zm+VVkmwXT4CVQ2pNLhieyp2Fb6khKm0wj3ks+E1NvlK+t9N/RncwTug4KOrdjNxoZujmkcBiDyckmVKd+TEIldnZgWm4QH/+ihzOD7tIltI3870LRHZdF+loc3GWu8nnzZHW9jjgUu+qX2wgQYs/Xz7MzAZi85e0KUta9qFOFC7YG6xOKvv5eAXj2U1DuoRlRaZimgIfCotNXTcpybGYmMKUsA77WbIzP+4ekHgAsFJ4nE87ZfPPzRJuAfg/x7x14btM/o47Aa1tPZTUXFD3L4nE7QBWkxxN9/7URC8HBS0+e/rj/p5jVE1bfE4I5QHFx//Z4//eF2hiLx3CEnUUedTKUHMQ8vuLDWcLAj7k/OSxJEkjeownwFJJcxdzQGuV3f3UuNULnXoV9byG9IE8DbPTvxKc1kisLBsTiSG6gPhCGQUOl5lmUGxw2oMa9pul
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(39860400002)(376002)(366004)(136003)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(6506007)(53546011)(478600001)(6512007)(6486002)(38070700009)(38100700002)(5660300002)(26005)(122000001)(316002)(86362001)(76116006)(54906003)(6916009)(66946007)(64756008)(91956017)(66556008)(66476007)(66446008)(71200400001)(4326008)(2616005)(8676002)(8936002)(33656002)(2906002)(83380400001)(41300700001)(36756003)(45980500001)(139555002);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <ED8C7BC7134E774BB4325907AD30E3A1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6683
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:
 AMS0EPF00000190.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	38415135-3c7d-407c-8359-08dbf791e4d4
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Xy2LmHNt+dOYvwTZJYiu7JWl8uolufC6Stqkv5NICCyP2nA9M4aTHHgwZwiaCIIPZASnXKjSeF1tT2BkBmsv6kkmzsL2zr5Kq8G2h0gJnBLSJF7eO6PyYT+kKyiE2uoF6DHKmqWHG/M3pPFF422NG+0QYB0PUfSKJLJhhMpIeTOzr8Qfbt9TmSGBJargXQCiP61EHdEPVUAeoolAe3Q0yyD/M4kE5YIkC81v62+bTZXkOEU0pk0rWQgI3SIfpLbrkxH56Cfe6ff1V4fSbwY+K1NnR51tmOrzgGEannzhKbgN2DYnB+qwAbXNIphy21A/yUUM5aqnldiAqLx+ucEYz6Wlsb54ELAYnB8o2N4H5SWeFRZ3tOWYdECPv/GY4bKDo/Adn3fqIrDbzfe3ileTibeXSFQ0zrWyPO88+wgUK7nFDzdecQwJtnfe/0Do1XxBxgWK/5GeubCt2Wfa+kGIAZ37S9rUrbtnkFnNdycTQHjUyMwcbyJv7SiWCDolKT4dqborhouZR74BXVGxl99Bl8rb+YXnVk6TEHTV+MVtft6iZNy5EtFRTShAQ84WG4hmEhlcGymkhR356L+68S/YCsebN1q7m+iHTBLzcHTd9NtM/zCt9gAI/lL/LfzvwUQOViqPPxVyVcVHo8NML0fsFPrMCzns+KUeyD8Bmbw8A92+HdTMp4LXBQv09tU9Fd3ksB8UoSmA1W8NW5FRyQaiWz29DKCRayC+/TCWi92rrOMpq41YVvrfOm2odQKHCNdGDEM20wjaOMvH/tAu7EJ7FQ==
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:(13230031)(4636009)(346002)(376002)(396003)(136003)(39860400002)(230922051799003)(64100799003)(451199024)(82310400011)(186009)(1800799012)(46966006)(40470700004)(36840700001)(83380400001)(40460700003)(6512007)(2616005)(53546011)(6506007)(26005)(336012)(70586007)(316002)(70206006)(54906003)(40480700001)(41300700001)(5660300002)(33656002)(2906002)(6862004)(86362001)(8936002)(36756003)(8676002)(4326008)(6486002)(81166007)(478600001)(82740400003)(356005)(36860700001)(47076005)(139555002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 02:03:47.6192
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 39ef9688-e059-4984-a7e2-08dbf791ea52
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:
	AMS0EPF00000190.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9886

Hi Stefano,

> On Dec 8, 2023, at 09:38, Stefano Stabellini <sstabellini@kernel.org> wro=
te:
>=20
> On Thu, 7 Dec 2023, Henry Wang wrote:
>> To interact with the FVP (for example entering the U-Boot shell
>> and transferring the files by TFTP), we need to connect the
>> corresponding port by the telnet first. Use an expect script to
>> simplify the automation of the whole "interacting with FVP" stuff.
>>=20
>> The expect script will firstly detect the IP of the host, then
>> connect to the telnet port of the FVP, set the `serverip` and `ipaddr`
>> for the TFTP service in the U-Boot shell, and finally boot Xen from
>> U-Boot and wait for the expected results by Xen, Dom0 and DomU.
>=20
> I am not an expert in "expect" but this script looks great

:)

>=20
>=20
>> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
>> ---
>> .../expect/fvp-base-smoke-dom0-arm64.exp      | 73 +++++++++++++++++++
>> 1 file changed, 73 insertions(+)
>> create mode 100755 automation/scripts/expect/fvp-base-smoke-dom0-arm64.e=
xp
>>=20
>> +
>> +proc test_boot {{maxline} {host_ip}} {
>> +    expect_after {
>> +        -re "(.*)\r" {
>> +            if {$maxline !=3D 0} {
>> +                set maxline [expr {$maxline - 1}]
>> +                if {$maxline <=3D 0} {
>> +                    send_user "ERROR-Toomuch!\n"
>> +                    exit 2
>> +                }
>> +            }
>> +            exp_continue
>> +        }
>> +        timeout {send_user "ERROR-Timeout!\n"; exit 3}
>> +        eof {send_user "ERROR-EOF!\n"; exit 4}
>> +    }
>=20
> Why do we need this "expect_after" ?

It is basically for the error handling. Either there is too many characters=
 triggered
by some misconfiguration of Xen/Kernel leading to Xen/Kernel constantly reb=
oots,
or the code stuck somehow, we have a way to stop the script instead of wait=
ing in
the infinity loop.

>> +    # Extract the telnet port numbers from FVP output, because the teln=
et ports
>> +    # are not guaranteed to be fixed numbers.
>> +    expect -re {terminal_0: Listening for serial connection on port [0-=
9]+}
>> +    set terminal_0 $expect_out(0,string)
>> +    if {[regexp {port (\d+)} $terminal_0 match port_0]} {
>> +        puts "terminal_0 port is $port_0"
>> +    } else {
>> +        puts "terminal_0 port not found"
>> +        exit 5
>> +    }
>> +
>> +    spawn bash -c "telnet localhost $port_0"
>> +    expect -re "Hit any key to stop autoboot.*"
>> +    send -s "  \r"
>> +    send -s "setenv serverip $host_ip; setenv ipaddr $host_ip; tftpb 0x=
80200000 boot.scr; source 0x80200000\r"
>> +
>> +    # Initial Xen boot
>> +    expect -re "\(XEN\).*Freed .* init memory."
>> +
>> +    # Dom0 and DomU
>> +    expect -re "Domain-0.*"
>> +    expect -re "BusyBox.*"
>> +    expect -re "/ #.*"
>=20
> This is clear, excellent
>=20
>> +}
>> +
>> +# Get host IP
>> +spawn bash -c "hostname -I | awk '{print \$1}'"
>> +expect -re {(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})}
>=20
> Why d{1,3}?

I think that is because the IP pattern, we at least have one digit and at m=
ost 3.

>> +set host_ip $expect_out(0,string)
>> +
>> +# Start the FVP and run the test
>> +spawn bash -c "$runcmd"
>> +
>> +test_boot 2000 "$host_ip"
>> +
>> +send_user "\nExecution with SUCCESS\n"
>=20
> Won't this always return SUCCESS even in case of failure?

IMHO, if things fails, we have various exit code (1-5) for each failure cas=
e. For example,
if the FVP port somehow cannot be found, we exit with error code 5. This wi=
ll basically lead
us to the only case where the failure is caused by the script fails to wait=
 for the expected
string/regexp, and this case we have the timeout failure triggered by my ab=
ove-mentioned
expect_after block.

Kind regards,
Henry

>> +exit 0
>> --=20
>> 2.25.1
>>=20



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 03:02:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 03:02:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650336.1015792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBR7a-00031Y-Dr; Fri, 08 Dec 2023 03:01:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650336.1015792; Fri, 08 Dec 2023 03: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 1rBR7a-00031R-9b; Fri, 08 Dec 2023 03:01:46 +0000
Received: by outflank-mailman (input) for mailman id 650336;
 Fri, 08 Dec 2023 03: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=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBR7Y-00031L-AG
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 03:01:44 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on062e.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1bd8ab7c-9576-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 04:01:40 +0100 (CET)
Received: from AS4P189CA0032.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5dd::18)
 by PAXPR08MB7670.eurprd08.prod.outlook.com (2603:10a6:102:244::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 03:01:32 +0000
Received: from AM4PEPF00027A68.eurprd04.prod.outlook.com
 (2603:10a6:20b:5dd:cafe::19) by AS4P189CA0032.outlook.office365.com
 (2603:10a6:20b:5dd::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Fri, 8 Dec 2023 03:01:32 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A68.mail.protection.outlook.com (10.167.16.85) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 03:01:32 +0000
Received: ("Tessian outbound 7c4ecdadb9e7:v228");
 Fri, 08 Dec 2023 03:01:32 +0000
Received: from 0700d572dcb4.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 C76B752E-2C7B-4DB3-A376-7364BC8010D6.1; 
 Fri, 08 Dec 2023 03:01:25 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0700d572dcb4.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 03:01:25 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by PAXPR08MB6447.eurprd08.prod.outlook.com (2603:10a6:102:de::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 03:01:23 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 03:01: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: 1bd8ab7c-9576-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=m2fucHFLoBeYhOnB+RHr5dqbFxMoFPVB7+zZscqfLPpjhPkEF9yX+jYdsOM3NLeAqrINF35lupx+nF0MKEvXWnkEXlfBDAL5L4mKAVdH6EA56mQVM5648XL6NopsLO5tS9MFXceC+hHkxhPyLNVf8oop0Uq1Np7MMQjp2HCpamXyfKVovTRTmQR/zmXCPJdBgdwMrrfbWCKeIRPKuEIpJE51hPZ9htCszbz07poQvamGJiFffgP58u63OqBmPxhOKol7p3pnO5LO4xH6067Y4w4dNmHjmANyXoNYdHggsHVD7oaBaacpXmino6PXENCQuI8A64bw6eJkdG4vIUcmCA==
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=BTx6Q4ju/NXdgOmxt75JmWE+3kGSbKJGfCmVxbR9Bew=;
 b=PsmvWT+8pGWTbzjEMlwbsHiu5vgiRVeNm/D8Cfngc3uqbnqN6niyoOHJHNeSE6z8FfAMnfd5vFl5dURk6AtZlqPGsejMm+Bx9CtRII9jvnz/hmlXTENbVv5n1cTzjGQzZrurw5JxnoZzd6vm3FWP1qTOzhGeQF9mB1QIoqVbPV1jir41+/z05TqWXmKPNNXWsHWq+9IFpVNHR7i6VuwkBPHHUX9VLGeIDfbdGuzgBXmI2ryf6YhrHoA8LNfOjRsyvIHq+O85NceyYYaf0O3gz3acaniD3shSovePMbQrRtuRdkDsYAYIN72C0cdFMVmG6cxGJrpYILtHXWwnuaJF7w==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BTx6Q4ju/NXdgOmxt75JmWE+3kGSbKJGfCmVxbR9Bew=;
 b=0plZ14Nsnn1ACJk0CEsF5GTLrLyB8Mlx/uQdSCP/F/FBejJhbtYkAajv9/SODQwBmOXFyjfyrBGyuoM2aIqDuIwinpw9UQ+dS8sFwvsmQrb4B/5qGmXDBB+pn+5p4luirInWXRDWaB7iOyWetuOmYV7cd6o6TbzhN2l2VKtTJts=
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=armh.onmicrosoft.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: 9367dfaaa6668e27
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ms3Jf823zk/hrMY7dXqV0wj3Z0t+JE7MKYCi4W84oExRrNhkNR2HNmumI/73ntJSCGci7nCPlJqabYTUjuV7a0LiLGFVjR0fXlVn/VGHRAEGQQL19zHY9Yy//8ys5KF20U18l4rvuGTY6LFMtobvcp03Xs+ZFaWA3Z6ZlU8DENMgnORtQJsfabLIAtcw9iZ8Zcpv4HL4BPv+RSymlasRnMzqxWCH6BqMzZZpScz4o7LeHZahDNZefX3DhUgkuvjhnIwek3plkTW6aJ/yJdAPATOX0bF9gDDw7LyOTlhWgMZ9/UDWb+uAA6pKvFZXVV1QA4R0rjJLIfVS2om17F0Fgw==
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=BTx6Q4ju/NXdgOmxt75JmWE+3kGSbKJGfCmVxbR9Bew=;
 b=FpmU/rQ7srmMbehCf7fpFEmi5z5hm8C9QHqRcMIYwlNgGVHnQmiMRzaUPsgXxNKcVpNG+lpEieJ8kVaTUowxjHCCt32ZCzbVtraCci2cP4wQuaXAFkBvVDqNjZ8VmjBQyUI8kxC5t22nWrV32kFw77Sh49Mip+OVbD15lF9YnCyq43X0xCXrDE9wINDQcKfUHdcrpSVT+SJDzOxExk/4D24Ap0l5J25spPaR3O/SMxbIaBNDiE9kr3ge7vgA0cQtXeE0Pgm0IAn+y9Dv5u1h7odczcjg574p9xppURkWK15N4DM5oTmee7ISx8dL9yT50Uqg8ytnDfFsCuOSZgUjQA==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BTx6Q4ju/NXdgOmxt75JmWE+3kGSbKJGfCmVxbR9Bew=;
 b=0plZ14Nsnn1ACJk0CEsF5GTLrLyB8Mlx/uQdSCP/F/FBejJhbtYkAajv9/SODQwBmOXFyjfyrBGyuoM2aIqDuIwinpw9UQ+dS8sFwvsmQrb4B/5qGmXDBB+pn+5p4luirInWXRDWaB7iOyWetuOmYV7cd6o6TbzhN2l2VKtTJts=
From: Henry Wang <Henry.Wang@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Michal Orzel <michal.orzel@amd.com>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH 3/5] automation: Add the expect script with test case for
 FVP
Thread-Topic: [PATCH 3/5] automation: Add the expect script with test case for
 FVP
Thread-Index: AQHaKRTRSAbthQjm9k2SM6wWsGqHurCenEEAgAAHDICAABAgAA==
Date: Fri, 8 Dec 2023 03:01:23 +0000
Message-ID: <0BF1ADE0-26F3-4975-81F1-2676F4626702@arm.com>
References: <20231207135318.1912846-1-Henry.Wang@arm.com>
 <20231207135318.1912846-4-Henry.Wang@arm.com>
 <alpine.DEB.2.22.394.2312071736190.1265976@ubuntu-linux-20-04-desktop>
 <DDEC86F3-A2AA-4A34-87E5-4E91C2BF99BE@arm.com>
In-Reply-To: <DDEC86F3-A2AA-4A34-87E5-4E91C2BF99BE@arm.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|PAXPR08MB6447:EE_|AM4PEPF00027A68:EE_|PAXPR08MB7670:EE_
X-MS-Office365-Filtering-Correlation-Id: 361f883d-902a-4942-69b3-08dbf799fb94
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 mCw2qvACGALLGN0DvVzuAcFTSQHG+If7cIUC8KXo5sAWFuhu42g7LBdQNSbtMATChHmwCAO7V4Jkpx+OElkVXXVzHQHRYf/Y3M93pHUctAEFJT5IgLJdIZ3gRO8bp5Me0axessXjnk36ln9aAzw4UINP1ziD4JXo5qXhawnBzifpwlzR2UR/oiXYKJ+lF4+gnqBAjkLYVrayz5l2MLsbpQH+MXN4ptSnGSTOE8oCAF7HuBt/wz1NFM0eSPff5wFBiy0CoejwXATBt4s35zQ56tilaMuJRER3XjAdsmBbkNUkh3f5v/cjRySmc3fPVQuqcZuFjBOnaCEhesNSPijsSF2G81V62oVQK1tABpIVhYfAN94IMllTEK0tNAZwmPau9XUjJKwNyHO7z1AlGo4SGIXZu+u/7yGCKmUJxkdT/O0v1u4QHr0OSE6PCwmcO7JOTSHcLqP0NjgiUt+zTVBHXjuCX4xa+lJT9gyAl44LyuH69xcLTD+RoyoG2iBL1UlFa4ZNpZJhgMRAkooIrL8ULxcykw6aueZzayX0blnLQIRKfsniwTd2+HeiqBhDgs6mYo30QqXuhHA6KWnONbJCG5ogS3ptBPDAyrRedknBIsyEZXVoWZmSDVFeCtmP24jYJa+g6n3lFD+7xl1UERwSJXIccxMsMHV+MoeVrWrKO6Y=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(346002)(39860400002)(136003)(366004)(396003)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(2906002)(36756003)(8936002)(8676002)(4326008)(5660300002)(38070700009)(41300700001)(26005)(2616005)(71200400001)(83380400001)(33656002)(86362001)(38100700002)(122000001)(478600001)(91956017)(316002)(6916009)(66946007)(76116006)(66556008)(66476007)(66446008)(54906003)(64756008)(6486002)(966005)(6506007)(6512007)(53546011)(45980500001)(139555002);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <640662C74980504CA4D482B7D40A64D3@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6447
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:
 AM4PEPF00027A68.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	cff9d9b2-ad77-41f2-5af2-08dbf799f60f
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	ZlieqFwK1pl9lFagrNDN7Pl0sCiTMosmNn4WYsdeyxrAmCw2L3c5clvuxH9q4uSaW6JBjs+UJxKnnRTi1IdHCzmvqYq2nJjkgp/YzCBDrARoem4xcbjaXWepL34UDz6TB5Dxw8eSurQvkC0TaUjeVb5EGoMlewfHwbtLkyElWJ9N200mwdS5N8TrDIt0vEw0a08nmMn9EMZwLDgw/vemMg1RPwcrgm4l1rZqGG703dOenH+FRzxtEhHonq5ZULhXWYo5MIxv2U4b2I7VRErPzegyF3pdheUJ0uXA7y3I7T8+ouSMN4agSsiWDFmj2l/JxLIK8933H9mr+ZPjgAq4o2xH4zjCMi084UPuF018ZQRm37dov2s5Cme422kNs6KWbR+WNoOiJ2sjX/Pvu/bwqqh6dYLWmz/j3LdBkoKoTmKnF+IUI/AI28K/Fooegjch1CFa1trg/fHsOJrKjyw7TIHDr5f3A3DvMAths/W9/tD1nK5ERScvHQvCFs1ZMh/NykJ9MJKGHRYn58YSFeg3C0ccUENzUm+rny2A8Ow5CT3sivCAj2clvon5kNkpvXBaSJK/g/jbtPe2p4H3FfSqVOaDN8hRHWXkpUZKlkyX5mCIJDy5gwt2GJZT+uQeKeV8dDcwLjG5VW/rVt/4pwbKmcGHbKJ6w8DBV5dT2CK0YmYPW4RTx8CBDVw4kXE7eTR4jFc2Xrivlqmg8m7B52DO3FwQUuvoembOQmpLRgYTxQxaDDPmmL/WH/qrSOsA5jxI
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:(13230031)(4636009)(376002)(136003)(39860400002)(396003)(346002)(230922051799003)(1800799012)(82310400011)(186009)(451199024)(64100799003)(46966006)(40470700004)(36840700001)(2906002)(40480700001)(6862004)(8936002)(4326008)(8676002)(5660300002)(316002)(54906003)(70206006)(70586007)(40460700003)(47076005)(36860700001)(2616005)(966005)(6486002)(53546011)(6512007)(6506007)(36756003)(26005)(41300700001)(336012)(478600001)(83380400001)(82740400003)(33656002)(356005)(81166007)(86362001)(139555002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 03:01:32.5452
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 361f883d-902a-4942-69b3-08dbf799fb94
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:
	AM4PEPF00027A68.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7670

SGkgU3RlZmFubywNCg0KPiBPbiBEZWMgOCwgMjAyMywgYXQgMTA6MDMsIEhlbnJ5IFdhbmcgPEhl
bnJ5LldhbmdAYXJtLmNvbT4gd3JvdGU6DQo+IA0KPiBIaSBTdGVmYW5vLA0KPiANCj4+IE9uIERl
YyA4LCAyMDIzLCBhdCAwOTozOCwgU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJu
ZWwub3JnPiB3cm90ZToNCj4+PiArc2V0IGhvc3RfaXAgJGV4cGVjdF9vdXQoMCxzdHJpbmcpDQo+
Pj4gKw0KPj4+ICsjIFN0YXJ0IHRoZSBGVlAgYW5kIHJ1biB0aGUgdGVzdA0KPj4+ICtzcGF3biBi
YXNoIC1jICIkcnVuY21kIg0KPj4+ICsNCj4+PiArdGVzdF9ib290IDIwMDAgIiRob3N0X2lwIg0K
Pj4+ICsNCj4+PiArc2VuZF91c2VyICJcbkV4ZWN1dGlvbiB3aXRoIFNVQ0NFU1NcbiINCj4+IA0K
Pj4gV29uJ3QgdGhpcyBhbHdheXMgcmV0dXJuIFNVQ0NFU1MgZXZlbiBpbiBjYXNlIG9mIGZhaWx1
cmU/DQo+IA0KPiBJTUhPLCBpZiB0aGluZ3MgZmFpbHMsIHdlIGhhdmUgdmFyaW91cyBleGl0IGNv
ZGUgKDEtNSkgZm9yIGVhY2ggZmFpbHVyZSBjYXNlLiBGb3IgZXhhbXBsZSwNCj4gaWYgdGhlIEZW
UCBwb3J0IHNvbWVob3cgY2Fubm90IGJlIGZvdW5kLCB3ZSBleGl0IHdpdGggZXJyb3IgY29kZSA1
LiBUaGlzIHdpbGwgYmFzaWNhbGx5IGxlYWQNCj4gdXMgdG8gdGhlIG9ubHkgY2FzZSB3aGVyZSB0
aGUgZmFpbHVyZSBpcyBjYXVzZWQgYnkgdGhlIHNjcmlwdCBmYWlscyB0byB3YWl0IGZvciB0aGUg
ZXhwZWN0ZWQNCj4gc3RyaW5nL3JlZ2V4cCwgYW5kIHRoaXMgY2FzZSB3ZSBoYXZlIHRoZSB0aW1l
b3V0IGZhaWx1cmUgdHJpZ2dlcmVkIGJ5IG15IGFib3ZlLW1lbnRpb25lZA0KPiBleHBlY3RfYWZ0
ZXIgYmxvY2suDQoNCkkgZGlkIGEgdGVzdCB0byBzZWUgaWYgSSBicmVhayB0aGUgZXhwZWN0IHNj
cmlwdCBieSBhZGRpbmcgYmVsb3cgaHVuazoNCmBgYA0KLS0tIGEvYXV0b21hdGlvbi9zY3JpcHRz
L2V4cGVjdC9mdnAtYmFzZS1zbW9rZS1kb20wLWFybTY0LmV4cA0KKysrIGIvYXV0b21hdGlvbi9z
Y3JpcHRzL2V4cGVjdC9mdnAtYmFzZS1zbW9rZS1kb20wLWFybTY0LmV4cA0KQEAgLTUxLDYgKzUx
LDcgQEAgcHJvYyB0ZXN0X2Jvb3Qge3ttYXhsaW5lfSB7aG9zdF9pcH19IHsNCiAgICAgc2VuZCAt
cyAic2V0ZW52IHNlcnZlcmlwICRob3N0X2lwOyBzZXRlbnYgaXBhZGRyICRob3N0X2lwOyB0ZnRw
YiAweDgwMjAwMDAwIGJvb3Quc2NyOyBzb3VyY2UgMHg4MDIwMDAwMFxyIg0KDQogICAgICMgSW5p
dGlhbCBYZW4gYm9vdA0KKyAgICBleHBlY3QgLXJlICJ0aGlzIGlzIGEgaGFjayB0byBicmVhayB0
aGUgYnVpbGQiDQogICAgIGV4cGVjdCAtcmUgIlwoWEVOXCkuKkZyZWVkIC4qIGluaXQgbWVtb3J5
LiINCg0KICAgICAjIERvbTAgYW5kIERvbVUNCmBgYA0KVGhlIHRpbWVvdXQgZGlkIGhhcHBlbiBp
biB0aGUgZXhwZWN0IHNjcmlwdCBhZnRlciB0aGUgc2V0IHRpbWVvdXQsIHNlZSBbMV0NCg0KSG93
ZXZlciB0aGUgam9iIHN0aWxsIHBhc3NlcywgYW5kIEkgYmVsaWV2ZSB0aGlzIGlzIGNhdXNlZCBi
eSB0aGUgc2hlbGwgc2NyaXB0Og0KYGBgDQouL2F1dG9tYXRpb24vc2NyaXB0cy9leHBlY3QvZnZw
LWJhc2Utc21va2UtZG9tMC1hcm02NC5leHAgXA0KICAgICIvRlZQL0ZWUF9CYXNlX1JldkMtMnhB
RU12QS9CYXNlX1JldkNfQUVNdkFfcGtnL21vZGVscy9MaW51eDY0X2FybXY4bF9HQ0MtOS4zL0ZW
UF9CYXNlX1JldkMtMnhBRU12QSBcDQogICAgLUMgYnAudmlzLmRpc2FibGVfdmlzdWFsaXNhdGlv
bj0xIFwNCiAgICAtQyBicC52ZV9zeXNyZWdzLmV4aXRfb25fc2h1dGRvd249MSBcDQogICAgLUMg
YnAuc2VjdXJlX21lbW9yeT0wIFwNCiAgICAtQyBjYWNoZV9zdGF0ZV9tb2RlbGxlZD0wIFwNCiAg
ICAtQyBjbHVzdGVyMC5oYXNfYXJtX3Y4LTQ9MSBcDQogICAgLUMgY2x1c3RlcjEuaGFzX2FybV92
OC00PTEgXA0KICAgICR7VEVSTTBfQ0ZHfSAke1RFUk0xX0NGR30gJHtURVJNMl9DRkd9ICR7VEVS
TTNfQ0ZHfSBcDQogICAgJHtWSVJUSU9fVVNFUl9ORVRXT1JLX0NGR30gXA0KICAgIC1DIGJwLnNl
Y3VyZWZsYXNobG9hZGVyLmZuYW1lPSQocHdkKS9iaW5hcmllcy9ibDEuYmluIFwNCiAgICAtQyBi
cC5mbGFzaGxvYWRlcjAuZm5hbWU9JChwd2QpL2JpbmFyaWVzL2ZpcC5iaW4iIHwmIFwNCiAgICAg
ICAgdGVlIHNtb2tlLnNlcmlhbA0KDQpleGl0IDANCmBgYA0KDQpUaGUg4oCcfCYgdGVlIHNtb2tl
LnNlcmlhbOKAnSBoaWRlcyB0aGUgZXJyb3IgcHJvcGFnYXRlZCBieSB0aGUgZXhwZWN0IHNjcmlw
dC4gSSB3aWxsIHNlbmQgYSB2MiB0byBmaXggaXQuDQoNClsxXSBodHRwczovL2dpdGxhYi5jb20v
eGVuLXByb2plY3QvcGVvcGxlL2hlbnJ5dy94ZW4vLS9qb2JzLzU3MDgyNjM3ODIvYXJ0aWZhY3Rz
L2ZpbGUvc21va2Uuc2VyaWFsDQoNCktpbmQgcmVnYXJkcywNCkhlbnJ5DQoNCj4gDQo+IEtpbmQg
cmVnYXJkcywNCj4gSGVucnkNCj4gDQo+Pj4gK2V4aXQgMA0KPj4+IC0tIA0KPj4+IDIuMjUuMQ0K
Pj4+IA0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 05:47:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 05:47:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650351.1015838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBThY-0002OD-KC; Fri, 08 Dec 2023 05:47:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650351.1015838; Fri, 08 Dec 2023 05:47: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 1rBThY-0002O2-HO; Fri, 08 Dec 2023 05:47:04 +0000
Received: by outflank-mailman (input) for mailman id 650351;
 Fri, 08 Dec 2023 05:47: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=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBThX-0001af-KC
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 05:47:03 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 361cfc7d-958d-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 06:47:02 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EFB5211FB;
 Thu,  7 Dec 2023 21:47:47 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 495FB3F5A1;
 Thu,  7 Dec 2023 21:46:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 361cfc7d-958d-11ee-98e8-6d05b1d4d9a1
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v2 3/5] automation: Add the expect script with test case for FVP
Date: Fri,  8 Dec 2023 13:46:35 +0800
Message-Id: <20231208054637.1973424-4-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231208054637.1973424-1-Henry.Wang@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To interact with the FVP (for example entering the U-Boot shell
and transferring the files by TFTP), we need to connect the
corresponding port by the telnet first. Use an expect script to
simplify the automation of the whole "interacting with FVP" stuff.

The expect script will firstly detect the IP of the host, then
connect to the telnet port of the FVP, set the `serverip` and `ipaddr`
for the TFTP service in the U-Boot shell, and finally boot Xen from
U-Boot and wait for the expected results by Xen, Dom0 and DomU.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
---
v2:
- No change.
---
 .../expect/fvp-base-smoke-dom0-arm64.exp      | 73 +++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100755 automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp

diff --git a/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
new file mode 100755
index 0000000000..25d9a5f81c
--- /dev/null
+++ b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
@@ -0,0 +1,73 @@
+#!/usr/bin/expect
+
+set timeout 2000
+
+# Command to use to run must be given as first argument
+# if options are required, quotes must be used:
+# xxx.exp "cmd opt1 opt2"
+set runcmd [lindex $argv 0]
+
+# Maximum number of line to be printed, this can be used to prevent runs to
+# go forever on errors when Xen is rebooting
+set maxline 1000
+
+# Configure slow parameters used with send -s
+# This allows us to slow down console writes to prevent issues with slow
+# emulators or targets.
+# Format here is: {NUM TIME} which reads as wait TIME seconds each NUM of
+# characters, here we send 1 char each 100ms
+set send_slow {1 .1}
+
+proc test_boot {{maxline} {host_ip}} {
+    expect_after {
+        -re "(.*)\r" {
+            if {$maxline != 0} {
+                set maxline [expr {$maxline - 1}]
+                if {$maxline <= 0} {
+                    send_user "ERROR-Toomuch!\n"
+                    exit 2
+                }
+            }
+            exp_continue
+        }
+        timeout {send_user "ERROR-Timeout!\n"; exit 3}
+        eof {send_user "ERROR-EOF!\n"; exit 4}
+    }
+
+    # Extract the telnet port numbers from FVP output, because the telnet ports
+    # are not guaranteed to be fixed numbers.
+    expect -re {terminal_0: Listening for serial connection on port [0-9]+}
+    set terminal_0 $expect_out(0,string)
+    if {[regexp {port (\d+)} $terminal_0 match port_0]} {
+        puts "terminal_0 port is $port_0"
+    } else {
+        puts "terminal_0 port not found"
+        exit 5
+    }
+
+    spawn bash -c "telnet localhost $port_0"
+    expect -re "Hit any key to stop autoboot.*"
+    send -s "  \r"
+    send -s "setenv serverip $host_ip; setenv ipaddr $host_ip; tftpb 0x80200000 boot.scr; source 0x80200000\r"
+
+    # Initial Xen boot
+    expect -re "\(XEN\).*Freed .* init memory."
+
+    # Dom0 and DomU
+    expect -re "Domain-0.*"
+    expect -re "BusyBox.*"
+    expect -re "/ #.*"
+}
+
+# Get host IP
+spawn bash -c "hostname -I | awk '{print \$1}'"
+expect -re {(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})}
+set host_ip $expect_out(0,string)
+
+# Start the FVP and run the test
+spawn bash -c "$runcmd"
+
+test_boot 2000 "$host_ip"
+
+send_user "\nExecution with SUCCESS\n"
+exit 0
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 05:47:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 05:47:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650348.1015808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBThM-0001at-PL; Fri, 08 Dec 2023 05:46:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650348.1015808; Fri, 08 Dec 2023 05: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 1rBThM-0001am-MX; Fri, 08 Dec 2023 05:46:52 +0000
Received: by outflank-mailman (input) for mailman id 650348;
 Fri, 08 Dec 2023 05: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=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBThL-0001af-F2
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 05:46:51 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2e5653c6-958d-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 06:46:50 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D524111FB;
 Thu,  7 Dec 2023 21:47:34 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 2CF013F5A1;
 Thu,  7 Dec 2023 21:46:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e5653c6-958d-11ee-98e8-6d05b1d4d9a1
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v2 0/5] automation: Support running FVP Dom0 smoke test for Arm
Date: Fri,  8 Dec 2023 13:46:32 +0800
Message-Id: <20231208054637.1973424-1-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series adds the support for running FVP Dom0 smoke test for Arm on
the Arm64 GitLab CI runner. Detailed changes please refer to the commit
message of each commit.

An example test pipeline with these patches applied (with the docker
registry changed to my own registry and unrelated job removed) can be
found at:
https://gitlab.com/xen-project/people/henryw/xen/-/pipelines/1099757245

The second example of a negative test with breaking the expect script
by a "never met" condition can be found at:
https://gitlab.com/xen-project/people/henryw/xen/-/pipelines/1099757601
The job will fail as expected after the timeout set by the expect
script.

Henry Wang (5):
  automation: Add a Dockerfile for running FVP_Base jobs
  automation: Add the Dockerfile to build TF-A and U-Boot for FVP
  automation: Add the expect script with test case for FVP
  automation: Add the script for the FVP smoke test
  automation: Add the arm64 FVP build and Dom0 smoke test jobs

 .../debian/bookworm-arm64v8-fvp.dockerfile    |  64 ++++++++++
 automation/gitlab-ci/build.yaml               |  17 +++
 automation/gitlab-ci/test.yaml                |  22 ++++
 .../expect/fvp-base-smoke-dom0-arm64.exp      |  73 +++++++++++
 .../scripts/fvp-base-smoke-dom0-arm64.sh      | 120 ++++++++++++++++++
 .../2023.10-2.9.0-arm64v8.dockerfile          |  48 +++++++
 6 files changed, 344 insertions(+)
 create mode 100644 automation/build/debian/bookworm-arm64v8-fvp.dockerfile
 create mode 100755 automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
 create mode 100755 automation/scripts/fvp-base-smoke-dom0-arm64.sh
 create mode 100644 automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 05:47:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 05:47:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650349.1015817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBThS-0001qk-Vx; Fri, 08 Dec 2023 05:46:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650349.1015817; Fri, 08 Dec 2023 05: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 1rBThS-0001qd-T8; Fri, 08 Dec 2023 05:46:58 +0000
Received: by outflank-mailman (input) for mailman id 650349;
 Fri, 08 Dec 2023 05:46:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBThS-0001q8-1t
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 05:46:58 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 314f08ed-958d-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 06:46:55 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CFF9411FB;
 Thu,  7 Dec 2023 21:47:39 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 29FC13F5A1;
 Thu,  7 Dec 2023 21:46:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 314f08ed-958d-11ee-9b0f-b553b5be7939
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v2 1/5] automation: Add a Dockerfile for running FVP_Base jobs
Date: Fri,  8 Dec 2023 13:46:33 +0800
Message-Id: <20231208054637.1973424-2-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231208054637.1973424-1-Henry.Wang@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Fixed Virtual Platforms (FVPs) are complete simulations of an Arm
system, including processor, memory and peripherals. These are set
out in a "programmer's view", which gives programmers a comprehensive
model on which to build and test software. FVP can be configured to
different setups by its cmdline parameters, and hence having the FVP
in CI will provide us with the flexibility to test Arm features and
setups that we find difficult to use real hardware or emulators.

This commit adds a Dockerfile for the new arm64v8 container with
FVP installed, based on the debian bookworm-arm64v8 image. This
container will be used to run the FVP test jobs. Compared to the
debian bookworm-arm64v8 image, the packages in the newly added FVP
container does not contain the `u-boot-qemu`, and adds the `expect`
to run expect scripts introduced by following commits, `telnet` to
connect to FVP, and `tftpd-hpa` to provide the TFTP service for
the FVP.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2:
- Add Stefano's Reviewed-by tag.
---
 .../debian/bookworm-arm64v8-fvp.dockerfile    | 64 +++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 automation/build/debian/bookworm-arm64v8-fvp.dockerfile

diff --git a/automation/build/debian/bookworm-arm64v8-fvp.dockerfile b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile
new file mode 100644
index 0000000000..3b87dc5a5b
--- /dev/null
+++ b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile
@@ -0,0 +1,64 @@
+FROM --platform=linux/arm64/v8 debian:bookworm
+LABEL maintainer.name="The Xen Project" \
+      maintainer.email="xen-devel@lists.xenproject.org"
+
+ARG FVP_BASE_VERSION="11.23_9_Linux64_armv8l"
+
+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 \
+        libssl-dev \
+        python3-dev \
+        python3-setuptools \
+        xorg-dev \
+        uuid-dev \
+        libyajl-dev \
+        libaio-dev \
+        libglib2.0-dev \
+        clang \
+        libpixman-1-dev \
+        pkg-config \
+        flex \
+        bison \
+        acpica-tools \
+        libfdt-dev \
+        bin86 \
+        bcc \
+        liblzma-dev \
+        libnl-3-dev \
+        ocaml-nox \
+        libfindlib-ocaml-dev \
+        markdown \
+        transfig \
+        pandoc \
+        checkpolicy \
+        wget \
+        git \
+        nasm \
+        # for test phase, fvp-smoke-* jobs
+        u-boot-tools \
+        expect \
+        device-tree-compiler \
+        curl \
+        cpio \
+        busybox-static \
+        telnet \
+        tftpd-hpa \
+        && \
+        apt-get autoremove -y && \
+        apt-get clean && \
+        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
+
+RUN wget https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz && \
+    mkdir -p /FVP/FVP_Base_RevC-2xAEMvA && \
+    tar -xvzf FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz -C /FVP/FVP_Base_RevC-2xAEMvA && \
+    rm FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 05:47:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 05:47:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650350.1015827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBThV-00026m-6z; Fri, 08 Dec 2023 05:47:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650350.1015827; Fri, 08 Dec 2023 05:47:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBThV-00026f-4J; Fri, 08 Dec 2023 05:47:01 +0000
Received: by outflank-mailman (input) for mailman id 650350;
 Fri, 08 Dec 2023 05: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=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBThT-0001af-OM
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 05:46:59 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 33bdf6e4-958d-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 06:46:58 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EA93711FB;
 Thu,  7 Dec 2023 21:47:43 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 442E53F5A1;
 Thu,  7 Dec 2023 21:46:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33bdf6e4-958d-11ee-98e8-6d05b1d4d9a1
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v2 2/5] automation: Add the Dockerfile to build TF-A and U-Boot for FVP
Date: Fri,  8 Dec 2023 13:46:34 +0800
Message-Id: <20231208054637.1973424-3-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231208054637.1973424-1-Henry.Wang@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Unlike the emulators that currently being used in the CI pipelines,
the FVP must start at EL3. Therefore we need the firmware, i.e. the
TrustedFirmware-A (TF-A), for corresponding functionality.

There is a dedicated board (vexpress_fvp) in U-Boot (serve as the
BL33 of the TF-A) for the FVP platform, so the U-Boot should also be
compiled for the FVP platform instead of reusing the U-Boot for the
existing emulators used in the CI pipelines.

To avoid compiling TF-A and U-Boot everytime in the job, adding a
Dockerfile to the test artifacts to build TF-A v2.9.0 and U-Boot
v2023.10 for FVP. The binaries for the TF-A and U-Boot, as well as
the device tree for the FVP platform, will be saved (and exported by
the CI job introduced by following commits). Note that, a patch for
the TF-A will be applied before building to enable the virtio-net
and the virtio-rng device on the FVP. The virtio-net device will
provide the networking service for FVP, and the virtio-rng device
will improve the speed of the FVP.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2:
- Add Stefano's Reviewed-by tag.
---
 .../2023.10-2.9.0-arm64v8.dockerfile          | 48 +++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile

diff --git a/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile b/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
new file mode 100644
index 0000000000..6566b60545
--- /dev/null
+++ b/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
@@ -0,0 +1,48 @@
+FROM --platform=linux/arm64/v8 debian:bookworm
+LABEL maintainer.name="The Xen Project" \
+      maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV UBOOT_VERSION="2023.10"
+ENV TFA_VERSION="v2.9.0"
+ENV USER root
+
+RUN mkdir /build
+WORKDIR /build
+
+# build depends
+RUN apt-get update && \
+    apt-get --quiet --yes install \
+        build-essential \
+        libssl-dev \
+        bc \
+        curl \
+        flex \
+        bison \
+        git \
+        device-tree-compiler && \
+    apt-get autoremove -y && \
+    apt-get clean && \
+    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
+
+# Build U-Boot and TF-A
+RUN curl -fsSLO https://ftp.denx.de/pub/u-boot/u-boot-"$UBOOT_VERSION".tar.bz2 && \
+    tar xvf u-boot-"$UBOOT_VERSION".tar.bz2 && \
+    cd u-boot-"$UBOOT_VERSION" && \
+    make -j$(nproc) V=1 vexpress_fvp_defconfig && \
+    make -j$(nproc) V=1 all && \
+    cd .. && \
+    git clone --branch "$TFA_VERSION" --depth 1 https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git && \
+    cd trusted-firmware-a && \
+    curl -fsSLO https://git.yoctoproject.org/meta-arm/plain/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/fvp-base/0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch \
+         --output 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
+    git config --global user.email "you@example.com" && \
+    git config --global user.name "Your Name" && \
+    git am 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
+    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t all && \
+    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t fip BL33=../u-boot-"$UBOOT_VERSION"/u-boot.bin && \
+    cp build/fvp/debug/bl1.bin / && \
+    cp build/fvp/debug/fip.bin / && \
+    cp build/fvp/debug/fdts/fvp-base-gicv3-psci-1t.dtb / && \
+    cd /build && \
+    rm -rf u-boot-"$UBOOT_VERSION" trusted-firmware-a
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 05:47:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 05:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650352.1015848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBThd-0002ku-T5; Fri, 08 Dec 2023 05:47:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650352.1015848; Fri, 08 Dec 2023 05:47:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBThd-0002kk-Pe; Fri, 08 Dec 2023 05:47:09 +0000
Received: by outflank-mailman (input) for mailman id 650352;
 Fri, 08 Dec 2023 05:47:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBThc-0001q8-NT
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 05:47:08 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 387542ab-958d-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 06:47:06 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E24EA11FB;
 Thu,  7 Dec 2023 21:47:51 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 3C4BC3F5A1;
 Thu,  7 Dec 2023 21:47:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 387542ab-958d-11ee-9b0f-b553b5be7939
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v2 4/5] automation: Add the script for the FVP smoke test
Date: Fri,  8 Dec 2023 13:46:36 +0800
Message-Id: <20231208054637.1973424-5-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231208054637.1973424-1-Henry.Wang@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit adds the shell script for the FVP smoke test. Similarly
as the QEMU jobs, the shell script will firstly prepare the DomU
BusyBox image, use the ImageBuilder to arrange the binaries in memory
and generate the U-Boot script, then start the test. To provide the
TFTP service for the FVP, the shell script will also start the TFTP
service, and copy the binaries needed by test to the TFTP directory
used by the TFTP server.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
---
v2:
- Set pipefail before running the expect script, so that the error
  won't be hid by pipe and the tee to the logfile.
---
 .../scripts/fvp-base-smoke-dom0-arm64.sh      | 120 ++++++++++++++++++
 1 file changed, 120 insertions(+)
 create mode 100755 automation/scripts/fvp-base-smoke-dom0-arm64.sh

diff --git a/automation/scripts/fvp-base-smoke-dom0-arm64.sh b/automation/scripts/fvp-base-smoke-dom0-arm64.sh
new file mode 100755
index 0000000000..99097dad51
--- /dev/null
+++ b/automation/scripts/fvp-base-smoke-dom0-arm64.sh
@@ -0,0 +1,120 @@
+#!/bin/bash
+
+set -ex
+
+# DomU Busybox
+cd binaries
+mkdir -p initrd
+mkdir -p initrd/bin
+mkdir -p initrd/sbin
+mkdir -p initrd/etc
+mkdir -p initrd/dev
+mkdir -p initrd/proc
+mkdir -p initrd/sys
+mkdir -p initrd/lib
+mkdir -p initrd/var
+mkdir -p initrd/mnt
+cp /bin/busybox initrd/bin/busybox
+initrd/bin/busybox --install initrd/bin
+echo "#!/bin/sh
+
+mount -t proc proc /proc
+mount -t sysfs sysfs /sys
+mount -t devtmpfs devtmpfs /dev
+/bin/sh" > initrd/init
+chmod +x initrd/init
+cd initrd
+find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
+cd ..
+
+mkdir -p rootfs
+cd rootfs
+tar xvzf ../initrd.tar.gz
+mkdir proc
+mkdir run
+mkdir srv
+mkdir sys
+rm var/run
+cp -ar ../dist/install/* .
+mv ../initrd.cpio.gz ./root
+cp ../Image ./root
+echo "name=\"test\"
+memory=512
+vcpus=1
+kernel=\"/root/Image\"
+ramdisk=\"/root/initrd.cpio.gz\"
+extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
+" > root/test.cfg
+echo "#!/bin/bash
+
+export LD_LIBRARY_PATH=/usr/local/lib
+bash /etc/init.d/xencommons start
+
+xl list
+
+xl create -c /root/test.cfg
+
+" > etc/local.d/xen.start
+chmod +x etc/local.d/xen.start
+echo "rc_verbose=yes" >> etc/rc.conf
+find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+cd ../..
+
+# Start a TFTP server to provide TFTP service to FVP
+service tftpd-hpa start
+
+# ImageBuilder
+echo 'MEMORY_START="0x80000000"
+MEMORY_END="0xFF000000"
+
+DEVICE_TREE="fvp-base-gicv3-psci-1t.dtb"
+XEN="xen"
+DOM0_KERNEL="Image"
+DOM0_RAMDISK="xen-rootfs.cpio.gz"
+XEN_CMD="console=dtuart dom0_mem=1024M console_timestamps=boot"
+
+NUM_DOMUS=0
+
+LOAD_CMD="tftpb"
+UBOOT_SOURCE="boot.source"
+UBOOT_SCRIPT="boot.scr"' > binaries/config
+rm -rf imagebuilder
+git clone https://gitlab.com/ViryaOS/imagebuilder
+bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
+
+# Copy files to the TFTP directory to use
+cp ./binaries/boot.scr /srv/tftp/
+cp ./binaries/Image /srv/tftp/
+cp ./binaries/xen-rootfs.cpio.gz /srv/tftp/
+cp ./binaries/xen /srv/tftp/
+cp ./binaries/fvp-base-gicv3-psci-1t.dtb /srv/tftp/
+
+# Start FVP
+TERM0_CFG="-C bp.terminal_0.mode=telnet -C bp.terminal_0.start_telnet=0"
+TERM1_CFG="-C bp.terminal_1.mode=telnet -C bp.terminal_1.start_telnet=0"
+TERM2_CFG="-C bp.terminal_2.mode=telnet -C bp.terminal_2.start_telnet=0"
+TERM3_CFG="-C bp.terminal_3.mode=telnet -C bp.terminal_3.start_telnet=0"
+
+VIRTIO_USER_NETWORK_CFG="-C bp.virtio_net.enabled=1 \
+-C bp.virtio_net.hostbridge.userNetworking=1 \
+-C bp.virtio_net.hostbridge.userNetPorts=8022=22 \
+-C bp.virtio_net.transport=legacy"
+
+# Set the pipefail so that the error code from the expect script won't
+# be hid by pipe and the tee command.
+set -o pipefail
+./automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp \
+    "/FVP/FVP_Base_RevC-2xAEMvA/Base_RevC_AEMvA_pkg/models/Linux64_armv8l_GCC-9.3/FVP_Base_RevC-2xAEMvA \
+    -C bp.vis.disable_visualisation=1 \
+    -C bp.ve_sysregs.exit_on_shutdown=1 \
+    -C bp.secure_memory=0 \
+    -C cache_state_modelled=0 \
+    -C cluster0.has_arm_v8-4=1 \
+    -C cluster1.has_arm_v8-4=1 \
+    ${TERM0_CFG} ${TERM1_CFG} ${TERM2_CFG} ${TERM3_CFG} \
+    ${VIRTIO_USER_NETWORK_CFG} \
+    -C bp.secureflashloader.fname=$(pwd)/binaries/bl1.bin \
+    -C bp.flashloader0.fname=$(pwd)/binaries/fip.bin" |& \
+        tee smoke.serial
+
+exit 0
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 05:47:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 05:47:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650355.1015857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBThh-00036E-5n; Fri, 08 Dec 2023 05:47:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650355.1015857; Fri, 08 Dec 2023 05:47:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBThh-000362-2R; Fri, 08 Dec 2023 05:47:13 +0000
Received: by outflank-mailman (input) for mailman id 650355;
 Fri, 08 Dec 2023 05:47:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBThf-0001af-Ak
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 05:47:11 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3ad13df9-958d-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 06:47:10 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E626511FB;
 Thu,  7 Dec 2023 21:47:55 -0800 (PST)
Received: from a015966.shanghai.arm.com (a015966.shanghai.arm.com
 [10.169.190.5])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 3FE483F5A1;
 Thu,  7 Dec 2023 21:47:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ad13df9-958d-11ee-98e8-6d05b1d4d9a1
From: Henry Wang <Henry.Wang@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Henry Wang <Henry.Wang@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v2 5/5] automation: Add the arm64 FVP build and Dom0 smoke test jobs
Date: Fri,  8 Dec 2023 13:46:37 +0800
Message-Id: <20231208054637.1973424-6-Henry.Wang@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231208054637.1973424-1-Henry.Wang@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a job in the build stage to export the TF-A, U-Boot and the
device tree for the FVP platform from the test artifact container.

Add a FVP smoke test job in the test stage to do the same test as
the `qemu-smoke-dom0-arm64-gcc` job.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2:
- Add Stefano's Reviewed-by tag.

Although it does not affect the functionality, I am still quite
confused about why the logs displayed by GitLab UI, for
example [1], is much less than the actual output (saved in the
artifacts, see [2]). Had a discussion with Michal on Matrix
and we agree that the log in gitlab UI is usually capped.

[1] https://gitlab.com/xen-project/people/henryw/xen/-/jobs/5690876361
[2] https://gitlab.com/xen-project/people/henryw/xen/-/jobs/5690876361/artifacts/file/smoke.serial
---
 automation/gitlab-ci/build.yaml | 17 +++++++++++++++++
 automation/gitlab-ci/test.yaml  | 22 ++++++++++++++++++++++
 2 files changed, 39 insertions(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 32af30cced..89d2f01302 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -344,6 +344,23 @@ kernel-6.1.19-export:
   tags:
     - x86_64
 
+armfvp-uboot-tfa-2023.10-2.9.0-arm64-export:
+  extends: .test-jobs-artifact-common
+  image: registry.gitlab.com/xen-project/xen/tests-artifacts/armfvp-uboot-tfa:2023.10-2.9.0-arm64v8
+  script:
+    - |
+       mkdir binaries && \
+       cp /bl1.bin binaries/bl1.bin && \
+       cp /fip.bin binaries/fip.bin && \
+       cp /fvp-base-gicv3-psci-1t.dtb binaries/fvp-base-gicv3-psci-1t.dtb
+  artifacts:
+    paths:
+      - binaries/bl1.bin
+      - binaries/fip.bin
+      - binaries/fvp-base-gicv3-psci-1t.dtb
+  tags:
+    - arm64
+
 # Jobs below this line
 
 # Build jobs needed for tests
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 6aabdb9d15..47e00d0a0b 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -96,6 +96,19 @@
   tags:
     - xilinx
 
+.fvp-arm64:
+  extends: .test-jobs-common
+  variables:
+    CONTAINER: debian:bookworm-arm64v8-fvp
+    LOGFILE: fvp-smoke-arm64.log
+  artifacts:
+    paths:
+      - smoke.serial
+      - '*.log'
+    when: always
+  tags:
+    - arm64
+
 .adl-x86-64:
   extends: .test-jobs-common
   variables:
@@ -459,3 +472,12 @@ qemu-smoke-ppc64le-powernv9-gcc:
   needs:
     - qemu-system-ppc64-8.1.0-ppc64-export
     - debian-bullseye-gcc-ppc64le-debug
+
+fvp-smoke-dom0-arm64-gcc-debug:
+  extends: .fvp-arm64
+  script:
+    - ./automation/scripts/fvp-base-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *arm64-test-needs
+    - armfvp-uboot-tfa-2023.10-2.9.0-arm64-export
+    - alpine-3.18-gcc-debug-arm64
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 05:53:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 05:53:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650372.1015868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBTnt-0005v1-Sp; Fri, 08 Dec 2023 05:53:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650372.1015868; Fri, 08 Dec 2023 05:53: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 1rBTnt-0005uu-P2; Fri, 08 Dec 2023 05:53:37 +0000
Received: by outflank-mailman (input) for mailman id 650372;
 Fri, 08 Dec 2023 05:53:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PnqY=HT=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rBTns-0005un-W6
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 05:53:37 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20627.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::627])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f323f73-958e-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 06:53:35 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CY8PR12MB7587.namprd12.prod.outlook.com (2603:10b6:930:9a::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 05:53:30 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 05:53: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: 1f323f73-958e-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KtWnvNisbUYv7QAlgvAqDoSmpgWi13vw96/ynshkdKYgW42XpvwO6MD78I/Xtx2qvBO84EHb8RSUZMoRgqpnU3wQ6Q4V7Qq47T5dHapn75jV0376acLLr5Yj4QYOq2I6iXMsXFJcpJE6wFTFq+IeK+Nbl7nicQXW6WYj/blznPUAHPa10B2TUAuBmjIv+9yy68WD4TTXmMedrSsAECwu2RdSZD4ztElGSP4yAchrPI0rjbwdTsFdn++Eb381lN6yMaG7XPBbX14Y41GdqK5ENdh7b+qAJaFwRJ2/t/7UldS0mf3xw9Phj+AiGbolimFLNQSk63waM3Iz0xHKimL47Q==
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=j83ED/3SCjJ/29w6Cns7QQ9f24CBQzAcSeEjmfIwCpU=;
 b=ZvD8gEp29IHJpF2CcUiTdinUQ9qyQNzFu5KkvKBXbGcHSfpA10VDiecKU32AKk7E/5Wr4Odnr+/flIEVHmNvpb45gByvtiK61t6h2ML8/hjTXUxvVBXFF91isBEZZQdZqpmq5NpUrltD+3p+UL81ncwqdZt3s7gfp+hAnqKQTJC0nPBozoaX83mdqX46OM9pBLXcLU9t/Of8YtUyC6dLeaM8kzbFYIl6s7ZozvuS8y5XOjJYZJ5KpoimrDaWe68T1mj/z5ICrZpUbr+8qXMp2vV9wHKUMoZeAodaHSYAJ1ZdXbjc1sQ9M1nQjJl6shN6NIFnTAHHwoKLoOy2CCkUyw==
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=j83ED/3SCjJ/29w6Cns7QQ9f24CBQzAcSeEjmfIwCpU=;
 b=reS/yhWBVeR2Vq/Iw8k5D+tlKLf4dXoGKjNAlGc6ccwQW4DuJ2IdB3bMr/EzBjB/mD/XcMDbNrhBSwFjm+ZcSzH/6cJFX2v0kLDUSaSAZndl4PHaR+eZHq/C4B+tCnjZO8Zg5FHPdJQYDmIYxkxSK9qmCACrewAol3E6aT5uT8Y=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: Jan Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Thomas Gleixner <tglx@linutronix.de>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len
 Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, "Stabellini,
 Stefano" <stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Topic: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Index:
 AQHaHsGdlNZnjmvNCkucW725DqxYz7CSRC+AgADLdgCAALwOgIAAX9AAgAE42ICAA5dDgIAAxsiAgAC4TACAABRoAIABzBGAgADOj4CAAEo5AIACCgeA
Date: Fri, 8 Dec 2023 05:53:29 +0000
Message-ID:
 <BL1PR12MB584969E1A52C8C86EC7BA065E78AA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231124103123.3263471-1-Jiqian.Chen@amd.com>
 <20231124103123.3263471-3-Jiqian.Chen@amd.com>
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <alpine.DEB.2.22.394.2312061818030.1265976@ubuntu-linux-20-04-desktop>
 <ed0729b6-8896-41cb-87fc-9111afc68151@suse.com>
In-Reply-To: <ed0729b6-8896-41cb-87fc-9111afc68151@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA1PR12MB8495.namprd12.prod.outlook.com
 (15.20.7091.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_|CY8PR12MB7587:EE_
x-ms-office365-filtering-correlation-id: fe71ece7-b049-45f1-3082-08dbf7b20136
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 lpoAiuu3fsBDJcycrw4w/o9fzvieLo2EloZmspZLUOtFUE1+tRTa7dMxmxKG5NxKeCLuNaKx0kil1fWf0yV906jexIWqIAEhjN1XHeR5tihPEQx/L/jNH5hPy8eYnPrifomjrE8dmoVfLphyqpgQgaajMrS6eEhlQg7s1q1UAYNINvnmYloU0y3hPQKM8ow/TVNIVOZhDKVxkfnDQpZP4Y43tkvnMsBQVabp3BdiY4CElpK//m9XFBVLYVeF22BAcbhQZ0QivH8RpYENC4jex8M8p669YA44WotCrvjw8yiDi5v9bEJW8a5qrFrpKq97YTBfkV2zS8KSLsXx8lB1hsOBnRbdyWZZjYqdWnkKLl1bFXz9zDE37P8JxzTxjKXcT1KKGljugJs7MAyEPTCSwqJ1mRulc3vhOOd+i7eTeS/FWCOVqsG6K6XlZIbzztUsLSHRLLIChBzSwkcEKuLuhX/DtUXH6EKkRUGzdovnSebBZ7+e0urLk1iiyfeSrhE9eZ3DmIdFWKzxNmgl16YrPK4KbD8NEIDK7tS5nge6oiztRvxyy873kkbakbjwLCzWVmNd+7CD2I4Oy7lL+P6p54ZNK9D9o+Wih47Aea1JF0CujGE4ujLB7qd3vLKoxwkX
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:(13230031)(376002)(39860400002)(136003)(366004)(396003)(346002)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(2906002)(7416002)(52536014)(8936002)(4326008)(8676002)(55016003)(5660300002)(316002)(66556008)(76116006)(66476007)(54906003)(66946007)(66446008)(64756008)(110136005)(53546011)(9686003)(7696005)(6506007)(26005)(41300700001)(478600001)(38070700009)(71200400001)(83380400001)(33656002)(38100700002)(122000001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WkRFNlJvbzRSRHhqdmdkSGgybkhlcU5mQ3l2Q3dlZVdlUW1HVWNseVlOaTFL?=
 =?utf-8?B?Z3FsMWRHdTBrUmN3ZzhXY0o2WHE1cmM5M0Q3T0kwNzVDZVU2K2NJcXBxOU0z?=
 =?utf-8?B?Sm9SeDI3OERxanErY2RzNkpyYlErMkpIT1FHQm5zK05oZ2xkaXp0c0JrUW5F?=
 =?utf-8?B?VkZ6b3VESk02TndRSFMwQkxhUmVkRTNka1lJWVVTSlFZMnBVTFhJU2dIOURE?=
 =?utf-8?B?SmxyN01aZlljZ2lSVUZBcm41TkF1UUhoZGZQU2FhU2J5L0xtZmhZbXd2bXow?=
 =?utf-8?B?cGZKOFlyYWJjTDZYMG9rTTA1YUJqaVdKL0psekx3ejh1NHBUenF0VlV1cWRx?=
 =?utf-8?B?YWM2L1BBaGY4ck81NE1MSU43dTNqYTRjOHRSYkVYSUhBSXg3WStiLzFieGtr?=
 =?utf-8?B?VnpvTFBLd0lIZjNDWFRFNExsdFBiVlk0bWRxenk3WDNoUWFxTmk4cnVJaVVV?=
 =?utf-8?B?dVMzb2xGSitqSkl0cG40K3p1S2dLamRHdG03aTFFdmVGaVdTbkp5aU9ncTlS?=
 =?utf-8?B?UUJMZTlMQnhqbjhIR1Uya2lYMjg5dlFRTXpFSldXSW9vd0FaMFExcVd1MFFp?=
 =?utf-8?B?bWVubGFBRy9lT3U5QkZ3eUx1NWhqclZ4MDJINkxqY2x6dkFPYURZeVZMalhi?=
 =?utf-8?B?bG02aVowNUpZbWt6UjZNTUIvdHhjNkdaRDFFQXZzTlcySFVIWUFGWFdKZXIz?=
 =?utf-8?B?dktQclQzZFRXdFJDT0ZEWXBBajRhU0d4eVZWSUY4RmFIK3A5eENyTHpBNFF3?=
 =?utf-8?B?dVVEVlE3MzMzMnRsZkRiTS85bnkrZVAwc2dBY0VQbWNST2o3bmVJNEEvQS9w?=
 =?utf-8?B?YVVqSGJjVGlnYVJ4cmh0ZTByNXBpWXI3aTJibGpKQ1pqNHBYNVJqYUUrb1NY?=
 =?utf-8?B?Vml1S05XUDMzdTRpVWdhZ3hRbXdOUFhJOXc2WlNQcGl1aXZMQnVBbWkyWlYw?=
 =?utf-8?B?TWowMG5tUFdrN0Jab0daZUVKUHI3a3VwdlFndXlNT2t0TDRSNGIzSy9uUm02?=
 =?utf-8?B?UFAxRnlnSDJ4N3E3RGJwaFVUMTBXQlV0c3A1RzQ1NG9sblZpbDR2TUpuaUN2?=
 =?utf-8?B?T1UwdG53WWZKa2hmNDNxVHRCNFN5SmZDU2FpRWNMcGY4YTRTd0Y0Y1ZadTJh?=
 =?utf-8?B?ZmxIc3ZMU1Z1ZXRIM1pMYkhILzBFRGtyQ3owZVVtdGxLcHNSZFlhQlNaSW1B?=
 =?utf-8?B?L2IydGM5WWJncjI4b3VBZ0FOcnE2aTdVdC9jNVRTTmx2a0NFellzZXBQTnZG?=
 =?utf-8?B?d1BqUjJpNnBYcG1ZRkUyL0pEZDk2SnZRcnhhcFgxZTYrWHdXNjUzblc5KzVU?=
 =?utf-8?B?cVFTOCtPKzllck5rZnZaOW8xbUx3M0cxS2lxQmhsRHQ2UEM4aUNZL28xS0FB?=
 =?utf-8?B?YlV0UDUxalZ2NkdMSTRBR0lEUDllSFkvSk9xUG40T3JQNVFuTHJ3Q2YvRnlO?=
 =?utf-8?B?ZFBoRUlvMWtvNVF0MU5lQkhPMmJoOE5CaUpXdUc1U29ZNnAzcW5hMms0WG9Q?=
 =?utf-8?B?bEwvT2N2YVc1WmJ6L0JlR2JoVHFyWFErSzFHdlliMVVPSmdlK3ZzaHFJd2lM?=
 =?utf-8?B?MUI0SE5qTTl5cTd4bGVSeUhOM2ZUQVZaK3UvZ3k5UExBR3ZxUTB5U0ZpSEhR?=
 =?utf-8?B?eHlycmNPRGROaytQUUdnc01SRXlQcFNTWGtYS0E3OXRjRUxKcTIyMnVDRldo?=
 =?utf-8?B?RWcrY3VFbDFzV0UyblpjckNwb3MzK0JJa05BTkdOeUh6aFlHZEYxMHpoVXIr?=
 =?utf-8?B?SWJqbERuRUtwM0J0RXVVbmJlQlg3d2VHUzRybEpFaFlqb09LRjRIQjBPbDMy?=
 =?utf-8?B?VWFYTVZYcks2NUFXOXpiUDViZm1DenRlVGRyd29HQW54eXA4YUl4Y21GZzEz?=
 =?utf-8?B?Vm1zVERaMk5UckR2NUVEWEd5anp1ZkhmajEyeFJrSi8rQjBRNjd4VitzN3lj?=
 =?utf-8?B?bE94K2N5a2NuMmxIMjk5eVhSNGhUL1AvdHNnKzU2eDJOaXgyNDN4dno4cTB5?=
 =?utf-8?B?QlBKemM5QlhHQ1lpQU9YS2ZIeUQ2NDFHbmxFWUs3TFFIdGdUdEVHR0d4cDRR?=
 =?utf-8?B?TEpueGVuM0lKM2IvL3NxemQvSUFBWU1CNjRmcW9SWW1uNjBuTFRySzFGK3JU?=
 =?utf-8?Q?0ttA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <892128889789D441A05768FC4A274245@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: fe71ece7-b049-45f1-3082-08dbf7b20136
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2023 05:53:29.9069
 (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: r4mhDH/9gdbffV75n527KHI8yfc/keZeZ8o3imNlfKawfOtPeRLLqH0SZ6n4V1g2v/UOf4dEAD3Rz6UOtMUprg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7587

VGhhbmsgU3RlZmFubyBhbmQgSnVlcmdlbiwgSSB3aWxsIHVzZSB0aGlzIGFwcHJvYWNoIGluIG5l
eHQgdmVyc2lvbi4NCg0KT24gMjAyMy8xMi83IDE0OjQzLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
PiBPbiAwNy4xMi4yMyAwMzoxOCwgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOg0KPj4gT24gVHVl
LCA1IERlYyAyMDIzLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+Pj4gV2hlbiBQVkggZG9tMCBlbmFi
bGUgYSBkZXZpY2UsIGl0IHdpbGwgZ2V0IHRyaWdnZXIgYW5kIHBvbGFyaXR5IGZyb20gQUNQSSAo
c2VlIGFjcGlfcGNpX2lycV9lbmFibGUpDQo+Pj4gSSBoYXZlIGEgdmVyc2lvbiBvZiBwYXRjaCB3
aGljaCB0cmllZCB0aGF0IHdheSwgc2VlIGJlbG93Og0KPj4NCj4+IFRoaXMgYXBwcm9hY2ggbG9v
a3MgbXVjaCBiZXR0ZXIuIEkgdGhpbmsgdGhpcyBwYXRjaCBpcyBPS2lzaC4gSnVlcmdlbiwNCj4+
IHdoYXQgZG8geW91IHRoaW5rPw0KPiANCj4gVGhlIGFwcHJvYWNoIHNlZW1zIHRvIGJlIGZpbmUu
DQo+IA0KPiANCj4gSnVlcmdlbg0KPiANCj4+DQo+Pg0KPj4+IGRpZmYgLS1naXQgYS9hcmNoL3g4
Ni94ZW4vZW5saWdodGVuX3B2aC5jIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbl9wdmguYw0KPj4+
IGluZGV4IGFkYTM4NjhjMDJjMi4uNDNlMWJkYTlmOTQ2IDEwMDY0NA0KPj4+IC0tLSBhL2FyY2gv
eDg2L3hlbi9lbmxpZ2h0ZW5fcHZoLmMNCj4+PiArKysgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVu
X3B2aC5jDQo+Pj4gQEAgLTEsNiArMSw3IEBADQo+Pj4gwqAgLy8gU1BEWC1MaWNlbnNlLUlkZW50
aWZpZXI6IEdQTC0yLjANCj4+PiDCoCAjaW5jbHVkZSA8bGludXgvYWNwaS5oPg0KPj4+IMKgICNp
bmNsdWRlIDxsaW51eC9leHBvcnQuaD4NCj4+PiArI2luY2x1ZGUgPGxpbnV4L3BjaS5oPg0KPj4+
DQo+Pj4gwqAgI2luY2x1ZGUgPHhlbi9odmMtY29uc29sZS5oPg0KPj4+DQo+Pj4gQEAgLTI1LDYg
KzI2LDEyNyBAQA0KPj4+IMKgIGJvb2wgX19yb19hZnRlcl9pbml0IHhlbl9wdmg7DQo+Pj4gwqAg
RVhQT1JUX1NZTUJPTF9HUEwoeGVuX3B2aCk7DQo+Pj4NCj4+PiArdHlwZWRlZiBzdHJ1Y3QgZ3Np
X2luZm8gew0KPj4+ICvCoMKgwqDCoMKgwqAgaW50IGdzaTsNCj4+PiArwqDCoMKgwqDCoMKgIGlu
dCB0cmlnZ2VyOw0KPj4+ICvCoMKgwqDCoMKgwqAgaW50IHBvbGFyaXR5Ow0KPj4+ICvCoMKgwqDC
oMKgwqAgaW50IHBpcnE7DQo+Pj4gK30gZ3NpX2luZm9fdDsNCj4+PiArDQo+Pj4gK3N0cnVjdCBh
Y3BpX3BydF9lbnRyeSB7DQo+Pj4gK8KgwqDCoMKgwqDCoCBzdHJ1Y3QgYWNwaV9wY2lfaWTCoMKg
wqDCoMKgIGlkOw0KPj4+ICvCoMKgwqDCoMKgwqAgdTjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgcGluOw0KPj4+ICvCoMKgwqDCoMKgwqAgYWNwaV9oYW5kbGXCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgbGluazsNCj4+PiArwqDCoMKgwqDCoMKgIHUzMsKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW5kZXg7wqDCoMKgwqDCoMKgwqDCoMKg
IC8qIEdTSSwgb3IgbGluayBfQ1JTIGluZGV4ICovDQo+Pj4gK307DQo+Pj4gKw0KPj4+ICtzdGF0
aWMgaW50IHhlbl9wdmhfZ2V0X2dzaV9pbmZvKHN0cnVjdCBwY2lfZGV2ICpkZXYsDQo+Pj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgZ3NpX2luZm9fdCAqZ3NpX2luZm8pDQo+Pj4gK3sNCj4+PiArwqDCoMKgwqDCoMKg
IGludCBnc2k7DQo+Pj4gK8KgwqDCoMKgwqDCoCB1OCBwaW4gPSAwOw0KPj4+ICvCoMKgwqDCoMKg
wqAgc3RydWN0IGFjcGlfcHJ0X2VudHJ5ICplbnRyeTsNCj4+PiArwqDCoMKgwqDCoMKgIGludCB0
cmlnZ2VyID0gQUNQSV9MRVZFTF9TRU5TSVRJVkU7DQo+Pj4gK8KgwqDCoMKgwqDCoCBpbnQgcG9s
YXJpdHkgPSBhY3BpX2lycV9tb2RlbCA9PSBBQ1BJX0lSUV9NT0RFTF9HSUMgPw0KPj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgQUNQSV9BQ1RJVkVfSElHSCA6IEFDUElfQUNUSVZFX0xPVzsNCj4+PiArDQo+
Pj4gK8KgwqDCoMKgwqDCoCBpZiAoZGV2KQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHBpbiA9IGRldi0+cGluOw0KPj4+ICvCoMKgwqDCoMKgwqAgaWYgKCFwaW4pIHsNCj4+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB4ZW5fcmF3X3ByaW50aygiTm8gaW50ZXJydXB0
IHBpbiBjb25maWd1cmVkXG4iKTsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy
ZXR1cm4gLUVJTlZBTDsNCj4+PiArwqDCoMKgwqDCoMKgIH0NCj4+PiArDQo+Pj4gK8KgwqDCoMKg
wqDCoCBlbnRyeSA9IGFjcGlfcGNpX2lycV9sb29rdXAoZGV2LCBwaW4pOw0KPj4+ICvCoMKgwqDC
oMKgwqAgaWYgKGVudHJ5KSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYg
KGVudHJ5LT5saW5rKQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBnc2kgPSBhY3BpX3BjaV9saW5rX2FsbG9jYXRlX2lycShlbnRyeS0+bGluaywNCj4+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
ZW50cnktPmluZGV4LA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCAmdHJpZ2dlciwgJnBvbGFyaXR5LA0KPj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBOVUxMKTsNCj4+PiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbHNlDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdzaSA9IGVudHJ5LT5pbmRleDsNCj4+PiArwqDCoMKg
wqDCoMKgIH0gZWxzZQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAt
RUlOVkFMOw0KPj4+ICsNCj4+PiArwqDCoMKgwqDCoMKgIGdzaV9pbmZvLT5nc2kgPSBnc2k7DQo+
Pj4gK8KgwqDCoMKgwqDCoCBnc2lfaW5mby0+dHJpZ2dlciA9IHRyaWdnZXI7DQo+Pj4gK8KgwqDC
oMKgwqDCoCBnc2lfaW5mby0+cG9sYXJpdHkgPSBwb2xhcml0eTsNCj4+PiArDQo+Pj4gK8KgwqDC
oMKgwqDCoCByZXR1cm4gMDsNCj4+PiArfQ0KPj4+ICsNCj4+PiArc3RhdGljIGludCB4ZW5fcHZo
X21hcF9waXJxKGdzaV9pbmZvX3QgKmdzaV9pbmZvKQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoMKgwqDC
oCBzdHJ1Y3QgcGh5c2Rldl9tYXBfcGlycSBtYXBfaXJxOw0KPj4+ICvCoMKgwqDCoMKgwqAgaW50
IHJldDsNCj4+PiArDQo+Pj4gK8KgwqDCoMKgwqDCoCBtYXBfaXJxLmRvbWlkID0gRE9NSURfU0VM
RjsNCj4+PiArwqDCoMKgwqDCoMKgIG1hcF9pcnEudHlwZSA9IE1BUF9QSVJRX1RZUEVfR1NJOw0K
Pj4+ICvCoMKgwqDCoMKgwqAgbWFwX2lycS5pbmRleCA9IGdzaV9pbmZvLT5nc2k7DQo+Pj4gK8Kg
wqDCoMKgwqDCoCBtYXBfaXJxLnBpcnEgPSBnc2lfaW5mby0+Z3NpOw0KPj4+ICsNCj4+PiArwqDC
oMKgwqDCoMKgIHJldCA9IEhZUEVSVklTT1JfcGh5c2Rldl9vcChQSFlTREVWT1BfbWFwX3BpcnEs
ICZtYXBfaXJxKTsNCj4+PiArwqDCoMKgwqDCoMKgIGdzaV9pbmZvLT5waXJxID0gbWFwX2lycS5w
aXJxOw0KPj4+ICsNCj4+PiArwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7DQo+Pj4gK30NCj4+PiAr
DQo+Pj4gK3N0YXRpYyBpbnQgeGVuX3B2aF91bm1hcF9waXJxKGdzaV9pbmZvX3QgKmdzaV9pbmZv
KQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoMKgwqDCoCBzdHJ1Y3QgcGh5c2Rldl91bm1hcF9waXJxIHVu
bWFwX2lycTsNCj4+PiArDQo+Pj4gK8KgwqDCoMKgwqDCoCB1bm1hcF9pcnEuZG9taWQgPSBET01J
RF9TRUxGOw0KPj4+ICvCoMKgwqDCoMKgwqAgdW5tYXBfaXJxLnBpcnEgPSBnc2lfaW5mby0+cGly
cTsNCj4+PiArDQo+Pj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gSFlQRVJWSVNPUl9waHlzZGV2X29w
KFBIWVNERVZPUF91bm1hcF9waXJxLCAmdW5tYXBfaXJxKTsNCj4+PiArfQ0KPj4+ICsNCj4+PiAr
c3RhdGljIGludCB4ZW5fcHZoX3NldHVwX2dzaShnc2lfaW5mb190ICpnc2lfaW5mbykNCj4+PiAr
ew0KPj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHBoeXNkZXZfc2V0dXBfZ3NpIHNldHVwX2dzaTsN
Cj4+PiArDQo+Pj4gK8KgwqDCoMKgwqDCoCBzZXR1cF9nc2kuZ3NpID0gZ3NpX2luZm8tPmdzaTsN
Cj4+PiArwqDCoMKgwqDCoMKgIHNldHVwX2dzaS50cmlnZ2VyaW5nID0gKGdzaV9pbmZvLT50cmln
Z2VyID09IEFDUElfRURHRV9TRU5TSVRJVkUgPyAwIDogMSk7DQo+Pj4gK8KgwqDCoMKgwqDCoCBz
ZXR1cF9nc2kucG9sYXJpdHkgPSAoZ3NpX2luZm8tPnBvbGFyaXR5ID09IEFDUElfQUNUSVZFX0hJ
R0ggPyAwIDogMSk7DQo+Pj4gKw0KPj4+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIEhZUEVSVklTT1Jf
cGh5c2Rldl9vcChQSFlTREVWT1Bfc2V0dXBfZ3NpLCAmc2V0dXBfZ3NpKTsNCj4+PiArfQ0KPj4+
ICsNCj4+PiAraW50IHhlbl9wdmhfcGFzc3Rocm91Z2hfZ3NpKHN0cnVjdCBwY2lfZGV2ICpkZXYp
DQo+Pj4gK3sNCj4+PiArwqDCoMKgwqDCoMKgIGludCByZXQ7DQo+Pj4gK8KgwqDCoMKgwqDCoCBn
c2lfaW5mb190IGdzaV9pbmZvOw0KPj4+ICsNCj4+PiArwqDCoMKgwqDCoMKgIGlmICghZGV2KSB7
DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4g
K8KgwqDCoMKgwqDCoCB9DQo+Pj4gKw0KPj4+ICvCoMKgwqDCoMKgwqAgcmV0ID0geGVuX3B2aF9n
ZXRfZ3NpX2luZm8oZGV2LCAmZ3NpX2luZm8pOw0KPj4+ICvCoMKgwqDCoMKgwqAgaWYgKHJldCkg
ew0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHhlbl9yYXdfcHJpbnRrKCJGYWls
IHRvIGdldCBnc2kgaW5mbyFcbiIpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHJldHVybiByZXQ7DQo+Pj4gK8KgwqDCoMKgwqDCoCB9DQo+Pj4gKw0KPj4+ICvCoMKgwqDCoMKg
wqAgcmV0ID0geGVuX3B2aF9tYXBfcGlycSgmZ3NpX2luZm8pOw0KPj4+ICvCoMKgwqDCoMKgwqAg
aWYgKHJldCkgew0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHhlbl9yYXdfcHJp
bnRrKCJGYWlsIHRvIG1hcCBwaXJxIGZvciBnc2kgKCVkKSFcbiIsIGdzaV9pbmZvLmdzaSk7DQo+
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsNCj4+PiArwqDCoMKg
wqDCoMKgIH0NCj4+PiArDQo+Pj4gK8KgwqDCoMKgwqDCoCByZXQgPSB4ZW5fcHZoX3NldHVwX2dz
aSgmZ3NpX2luZm8pOw0KPj4+ICvCoMKgwqDCoMKgwqAgaWYgKHJldCA9PSAtRUVYSVNUKSB7DQo+
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gMDsNCj4+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCB4ZW5fcmF3X3ByaW50aygiQWxyZWFkeSBzZXR1cCB0aGUgR1NJ
IDoldVxuIiwgZ3NpX2luZm8uZ3NpKTsNCj4+PiArwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAocmV0
KSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeGVuX3Jhd19wcmludGsoIkZh
aWwgdG8gc2V0dXAgZ3NpICglZCkhXG4iLCBnc2lfaW5mby5nc2kpOw0KPj4+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIHhlbl9wdmhfdW5tYXBfcGlycSgmZ3NpX2luZm8pOw0KPj4+ICvC
oMKgwqDCoMKgwqAgfQ0KPj4+ICsNCj4+PiArwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7DQo+Pj4g
K30NCj4+PiArRVhQT1JUX1NZTUJPTF9HUEwoeGVuX3B2aF9wYXNzdGhyb3VnaF9nc2kpOw0KPj4+
ICsNCj4+PiDCoCB2b2lkIF9faW5pdCB4ZW5fcHZoX2luaXQoc3RydWN0IGJvb3RfcGFyYW1zICpi
b290X3BhcmFtcykNCj4+PiDCoCB7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1MzIgbXNyOw0KPj4+
IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcGNpX2lycS5jIGIvZHJpdmVycy9hY3BpL3BjaV9p
cnEuYw0KPj4+IGluZGV4IGZmMzBjZWNhMjIwMy4uNjMwZmUwYTM0YmM2IDEwMDY0NA0KPj4+IC0t
LSBhL2RyaXZlcnMvYWNwaS9wY2lfaXJxLmMNCj4+PiArKysgYi9kcml2ZXJzL2FjcGkvcGNpX2ly
cS5jDQo+Pj4gQEAgLTI4OCw3ICsyODgsNyBAQCBzdGF0aWMgaW50IGFjcGlfcmVyb3V0ZV9ib290
X2ludGVycnVwdChzdHJ1Y3QgcGNpX2RldiAqZGV2LA0KPj4+IMKgIH0NCj4+PiDCoCAjZW5kaWYg
LyogQ09ORklHX1g4Nl9JT19BUElDICovDQo+Pj4NCj4+PiAtc3RhdGljIHN0cnVjdCBhY3BpX3By
dF9lbnRyeSAqYWNwaV9wY2lfaXJxX2xvb2t1cChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcGlu
KQ0KPj4+ICtzdHJ1Y3QgYWNwaV9wcnRfZW50cnkgKmFjcGlfcGNpX2lycV9sb29rdXAoc3RydWN0
IHBjaV9kZXYgKmRldiwgaW50IHBpbikNCj4+PiDCoCB7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCBz
dHJ1Y3QgYWNwaV9wcnRfZW50cnkgKmVudHJ5ID0gTlVMTDsNCj4+PiDCoMKgwqDCoMKgwqDCoMKg
IHN0cnVjdCBwY2lfZGV2ICpicmlkZ2U7DQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hl
bi1wY2liYWNrL3BjaV9zdHViLmMgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5j
DQo+Pj4gaW5kZXggZTM0YjYyM2U0YjQxLi4xYWJkNGRhZDZmNDAgMTAwNjQ0DQo+Pj4gLS0tIGEv
ZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpX3N0dWIuYw0KPj4+ICsrKyBiL2RyaXZlcnMveGVu
L3hlbi1wY2liYWNrL3BjaV9zdHViLmMNCj4+PiBAQCAtMjAsNiArMjAsNyBAQA0KPj4+IMKgICNp
bmNsdWRlIDxsaW51eC9hdG9taWMuaD4NCj4+PiDCoCAjaW5jbHVkZSA8eGVuL2V2ZW50cy5oPg0K
Pj4+IMKgICNpbmNsdWRlIDx4ZW4vcGNpLmg+DQo+Pj4gKyNpbmNsdWRlIDx4ZW4vYWNwaS5oPg0K
Pj4+IMKgICNpbmNsdWRlIDx4ZW4veGVuLmg+DQo+Pj4gwqAgI2luY2x1ZGUgPGFzbS94ZW4vaHlw
ZXJ2aXNvci5oPg0KPj4+IMKgICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL3BoeXNkZXYuaD4NCj4+
PiBAQCAtMzk5LDYgKzQwMCwxMiBAQCBzdGF0aWMgaW50IHBjaXN0dWJfaW5pdF9kZXZpY2Uoc3Ry
dWN0IHBjaV9kZXYgKmRldikNCj4+PiDCoMKgwqDCoMKgwqDCoMKgIGlmIChlcnIpDQo+Pj4gwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBjb25maWdfcmVsZWFzZTsNCj4+Pg0K
Pj4+ICvCoMKgwqDCoMKgwqAgaWYgKHhlbl9pbml0aWFsX2RvbWFpbigpICYmIHhlbl9wdmhfZG9t
YWluKCkpIHsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlcnIgPSB4ZW5fcHZo
X3Bhc3N0aHJvdWdoX2dzaShkZXYpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IGlmIChlcnIpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGdvdG8gY29uZmlnX3JlbGVhc2U7DQo+Pj4gK8KgwqDCoMKgwqDCoCB9DQo+Pj4gKw0KPj4+
IMKgwqDCoMKgwqDCoMKgwqAgaWYgKGRldi0+bXNpeF9jYXApIHsNCj4+PiDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlIHBwZGV2ID0gew0K
Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuc2Vn
ID0gcGNpX2RvbWFpbl9ucihkZXYtPmJ1cyksDQo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu
dXgvYWNwaS5oIGIvaW5jbHVkZS9saW51eC9hY3BpLmgNCj4+PiBpbmRleCA2NDFkYzQ4NDM5ODcu
LjM2OGQ1NmJhMmM1ZSAxMDA2NDQNCj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L2FjcGkuaA0KPj4+
ICsrKyBiL2luY2x1ZGUvbGludXgvYWNwaS5oDQo+Pj4gQEAgLTM3NSw2ICszNzUsNyBAQCB2b2lk
IGFjcGlfdW5yZWdpc3Rlcl9nc2kgKHUzMiBnc2kpOw0KPj4+DQo+Pj4gwqAgc3RydWN0IHBjaV9k
ZXY7DQo+Pj4NCj4+PiArc3RydWN0IGFjcGlfcHJ0X2VudHJ5ICphY3BpX3BjaV9pcnFfbG9va3Vw
KHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwaW4pOw0KPj4+IMKgIGludCBhY3BpX3BjaV9pcnFf
ZW5hYmxlIChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsNCj4+PiDCoCB2b2lkIGFjcGlfcGVuYWxpemVf
aXNhX2lycShpbnQgaXJxLCBpbnQgYWN0aXZlKTsNCj4+PiDCoCBib29sIGFjcGlfaXNhX2lycV9h
dmFpbGFibGUoaW50IGlycSk7DQo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2FjcGkuaCBi
L2luY2x1ZGUveGVuL2FjcGkuaA0KPj4+IGluZGV4IGIxZTExODYzMTQ0ZC4uY2U3ZjU1NTRmODhl
IDEwMDY0NA0KPj4+IC0tLSBhL2luY2x1ZGUveGVuL2FjcGkuaA0KPj4+ICsrKyBiL2luY2x1ZGUv
eGVuL2FjcGkuaA0KPj4+IEBAIC02Nyw2ICs2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5f
YWNwaV9zbGVlcF9yZWdpc3Rlcih2b2lkKQ0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIGFjcGlfc3VzcGVuZF9sb3dsZXZlbCA9IHhlbl9hY3BpX3N1c3BlbmRfbG93bGV2ZWw7
DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCB9DQo+Pj4gwqAgfQ0KPj4+ICtpbnQgeGVuX3B2aF9wYXNz
dGhyb3VnaF9nc2koc3RydWN0IHBjaV9kZXYgKmRldik7DQo+Pj4gwqAgI2Vsc2UNCj4+PiDCoCBz
dGF0aWMgaW5saW5lIHZvaWQgeGVuX2FjcGlfc2xlZXBfcmVnaXN0ZXIodm9pZCkNCj4+PiDCoCB7
DQo+Pj4NCj4+Pj4NCj4+Pj4gSmFuDQo+Pj4NCj4+PiAtLcKgDQo+Pj4gQmVzdCByZWdhcmRzLA0K
Pj4+IEppcWlhbiBDaGVuLg0KPj4+DQo+IA0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBD
aGVuLg0K


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 07:04:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 07:04:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650381.1015878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBUuE-0001mh-6V; Fri, 08 Dec 2023 07:04:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650381.1015878; Fri, 08 Dec 2023 07: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 1rBUuE-0001ma-3p; Fri, 08 Dec 2023 07:04:14 +0000
Received: by outflank-mailman (input) for mailman id 650381;
 Fri, 08 Dec 2023 07:04:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=XFXw=HT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBUuC-0001mT-Uk
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 07:04:12 +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 fb0e6157-9597-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 08:04:08 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c19f5f822so9916015e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 23:04:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 l15-20020a05600c1d0f00b003feae747ff2sm4185247wms.35.2023.12.07.23.04.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 23:04:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb0e6157-9597-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702019047; x=1702623847; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8fQ/vFFGBMyhhGUsF8otvgdMnn6ABtLlkUsIwSfouUQ=;
        b=UYiZMCtb6QCw1Ag1OeqCMpHAWean12cAt7CZvE98JBuDLm9cEqCLi6sANyk8/N2oUF
         e0VLh4cNYDUb6tmEyxs1Aak+LWtZNtQYXbKsEPhlg9VOXkxeQvwXYghjuR/aR0F+g9Pw
         Zfiicj0F58Si+07d65GIDmqNc9fiB2N9lV+cevH21QS7GC5JrtiXrU0BH8arxYQCBxXN
         1z7i3/Ve2LIwTV8Es6x+aZ1WCynDBP779sUG7C1HtmWnC1zxfLl+9bdS6gGTc22s4v5L
         G8A6daYYAIRKsEQTldr0cQHMqwpQ/Bt6pos/GSnRiTpv9TGAm8vRMrkgly2IFTGHxcws
         WQBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702019047; x=1702623847;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=8fQ/vFFGBMyhhGUsF8otvgdMnn6ABtLlkUsIwSfouUQ=;
        b=HI3FT4v2kLQxoNTotDKfdKDahtRmy/mERu86NsiyY78Cr9LEd8DaQS/YnUStqp8vh6
         u8tgFCnzQV9VA3I1S2XGTcOl3AdUDFlVeuqJ6YoWLMTgm4vZrwnTp62TKO68ScB/0hR9
         NEqHGeGZM8uAUHMY1L/m0lX1QMrET2oCf1pkRcau8VlvMI4uI7JUMUt+tykD1li93sbi
         H4DRLcpQZEGjVvfAdH8+8EuizTIcD0eW6yNvkDjFDv0VhtBib5u2jH32yWmZse2Hd6vM
         80dRrS54iETmtH/ElINBoYRwuLKWPabVAvmSLbuVgHbkWAUXz/DBkdY9JuAzX5uaUPsY
         kxTg==
X-Gm-Message-State: AOJu0YwGbc5ji8vGPmNNdwXZpX2azoc3/aVl3wvvqJ3IW8lZxtnnQq1/
	u1SnAoNVy/Q8XwJjJ0s+7TKI
X-Google-Smtp-Source: AGHT+IEhj1Wqomn64A5J2Qbx0BmXKJGDApzvdKiXA9S0xDBCplB8Hu5rMG7Vuy2bogcYH9P7n9gCQQ==
X-Received: by 2002:a05:600c:470f:b0:40b:5e4a:2351 with SMTP id v15-20020a05600c470f00b0040b5e4a2351mr182377wmo.83.1702019047556;
        Thu, 07 Dec 2023 23:04:07 -0800 (PST)
Message-ID: <9572a7a2-67b4-40a8-a04b-3caf4d617a6a@suse.com>
Date: Fri, 8 Dec 2023 08:04:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/misra/rules.rst: add more rules
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: andrew.cooper3@citrix.com, george.dunlap@citrix.com, julien@xen.org,
 bertrannd.marquis@arm.com, roger.pau@citrix.com,
 roberto.bagnara@bugseng.com, federico.serafini@bugseng.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2312051859440.110490@ubuntu-linux-20-04-desktop>
 <ccdbe84d-24ca-41f0-bc1f-fb9499c73880@suse.com>
 <alpine.DEB.2.22.394.2312061819090.1265976@ubuntu-linux-20-04-desktop>
 <12c7da9c-245e-48b7-98f9-2bf0f29b7621@suse.com>
 <alpine.DEB.2.22.394.2312071606000.1265976@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312071606000.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2023 01:08, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Jan Beulich wrote:
>> On 07.12.2023 03:42, Stefano Stabellini wrote:
>>> On Wed, 6 Dec 2023, Jan Beulich wrote:
>>>> On 06.12.2023 04:02, Stefano Stabellini wrote:
>>>>> --- a/docs/misra/rules.rst
>>>>> +++ b/docs/misra/rules.rst
>>>>> @@ -462,11 +462,23 @@ maintainers if you want to suggest a change.
>>>>>  
>>>>>         while(0) and while(1) and alike are allowed.
>>>>>  
>>>>> +   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
>>>>> +     - Required
>>>>> +     - An unconditional break statement shall terminate every
>>>>> +       switch-clause
>>>>> +     - In addition to break, also other flow control statements such as
>>>>> +       continue, return, goto are allowed.
>>>>> +
>>>>>     * - `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c>`_
>>>>>       - Required
>>>>>       - A switch-expression shall not have essentially Boolean type
>>>>>       -
>>>>>  
>>>>> +   * - `Rule 17.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
>>>>> +     - Required
>>>>> +     - The features of <stdarg.h> shall not be used
>>>>> +     -
>>>>
>>>> Did we really accept this without any constraint (warranting mentioning
>>>> here)?
>>>
>>> We agreed that in certain situations stdarg.h is OK to use and in those
>>> cases we would add a deviation. Would you like me to add something to
>>> that effect here? I could do that but it would sound a bit vague.  Also
>>> if we want to specify a project-wide deviation it would be better
>>> documented in docs/misra/deviations.rst. I would leave Rule 17.1 without
>>> a note.
>>
>> I can see your point, and I don't have a good suggestion on possible text.
>> Still I wouldn't feel well ack-ing this in its present shape.
> 
> What about:
> 
>      - It is understood that in some limited circumstances <stdarg.h> is
>        appropriate to use, such as the implementation of printk. Those
>        cases will be dealt with using deviations as usual, see
>        docs/misra/deviations.rst and
>        docs/misra/documenting-violations.rst.

Looks okay. Would also look okay if it was just the first sentence.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 07:18:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 07:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650386.1015888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBV83-0004zV-BD; Fri, 08 Dec 2023 07:18:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650386.1015888; Fri, 08 Dec 2023 07:18:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBV83-0004zO-7C; Fri, 08 Dec 2023 07:18:31 +0000
Received: by outflank-mailman (input) for mailman id 650386;
 Fri, 08 Dec 2023 07:18: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=XFXw=HT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBV81-0004zI-Ko
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 07:18:29 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb2e3e38-9599-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 08:18:27 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c2308faedso18348965e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 23:18:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d12-20020a05600c3acc00b0040836519dd9sm1925651wms.25.2023.12.07.23.18.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 23:18:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb2e3e38-9599-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702019907; x=1702624707; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1SYdAbmWhos24EuutWwbD8wRit9LFm1H1azNYNy4ZIc=;
        b=M/EhQl8HySJ0XQxi+WtJ8QBWcS+A+iQg+XY/iOOQE8C+LQgjToew49lO69pYZCXyuv
         +RTNdyIL+kPN9PBrz7YE8afHElpaMy4ggmtZTJB0ge7wcRkwe1K7N+iE8BOKHLu1EbNU
         sxgIbgsZLjI39QQR63oS1qd/kPiaTJ5Iq1RviObVdJLgPopsR/jHkH1Yn+N2lXnyfQHw
         QqEI6unOWEH72q8ODHOtncfyq9gkXV34AmR6GC3OGnPwLxrHI8S8OZL63RleSJO7VyfP
         cC/BTS7AAYJbErO+rdrCCPuJAwrTsqSYsD++Fz5ktHkVwr+uxNC0Trmq27ta3pL0RQjq
         89aQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702019907; x=1702624707;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1SYdAbmWhos24EuutWwbD8wRit9LFm1H1azNYNy4ZIc=;
        b=r1jWB7D375Jqfgasz2NU1hsnq2j150KkVgDfmLCAzNM4JtskEo0VbLS1GUQPxyXeAb
         /e+22Q1SXCBNOovSDK6GKR655GIbkjJMJHebSQrQugxaDZFKUpLIiwTPeh1XOtQc5Ko9
         Oy/c04RODOa5lXdbvvoZku82dENncO9WS6594KaOV3BsqUrcZxmgoZeXb4lfU9W7ia1/
         hL0FEw0dhY79k298RcKpEuIk9mC5hJp/KPVa+gcZRLW3flTUNwIrzzDRTHlEByKfRi15
         jTSTJ7kJKqI4Td+GpBKWYWzqslv3H3ZUQdM8W58HiKOIy/DvyLS5KBDGAErYoN5DsCQh
         OfYg==
X-Gm-Message-State: AOJu0YwUUkJvHj37B6BvLAaPRER/4Wc6VHHaPkvd6AuG1kKh04PMmJ4J
	qZ+nUQ7RGIs+/6mRyI7oXjrV
X-Google-Smtp-Source: AGHT+IGj8xJ1+rxT7Z6yqtQHbFPQ7IXkVHIm83VLa6wj66o0L56t7s7IzofsyHph2nBfw0Gq59pW0w==
X-Received: by 2002:a05:600c:1c09:b0:40b:36e6:b7ed with SMTP id j9-20020a05600c1c0900b0040b36e6b7edmr2506599wms.7.1702019906783;
        Thu, 07 Dec 2023 23:18:26 -0800 (PST)
Message-ID: <f51e120c-2db9-498c-82bf-66494f862920@suse.com>
Date: Fri, 8 Dec 2023 08:18:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] docs/misra/rules.rst: add more rules
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: andrew.cooper3@citrix.com, george.dunlap@citrix.com, julien@xen.org,
 bertrand.marquis@arm.com, roger.pau@citrix.com, roberto.bagnara@bugseng.com,
 federico.serafini@bugseng.com, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2312071609060.1265976@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312071609060.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2023 01:09, Stefano Stabellini wrote:
> Add the rules accepted in the last three MISRA C working group meetings.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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

> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -462,6 +462,13 @@ maintainers if you want to suggest a change.
>  
>         while(0) and while(1) and alike are allowed.
>  
> +   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
> +     - Required
> +     - An unconditional break statement shall terminate every
> +       switch-clause
> +     - In addition to break, also other flow control statements such as
> +       continue, return, goto are allowed.

To eliminate any room for doubt, maybe add "unconditional" also again here?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 07:34:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 07:34:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650390.1015897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBVNQ-0008Hn-Is; Fri, 08 Dec 2023 07:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650390.1015897; Fri, 08 Dec 2023 07:34:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBVNQ-0008Hg-GP; Fri, 08 Dec 2023 07:34:24 +0000
Received: by outflank-mailman (input) for mailman id 650390;
 Fri, 08 Dec 2023 07:34:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=XFXw=HT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBVNP-0008Ha-Rv
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 07:34:23 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34a6ed30-959c-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 08:34:22 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c2c5a8150so13372675e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Dec 2023 23:34:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p1-20020adfe601000000b0033334df1259sm1402507wrm.20.2023.12.07.23.34.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Dec 2023 23:34:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34a6ed30-959c-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702020862; x=1702625662; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xzE+u1izF65yFtO14EQdT7QKiRZs02FB+MTL9nuuhmI=;
        b=QqDy4xgLiwML/r9lJnCZHPBkAMuRtaJGoK7V79BNvfweT06HBdPi8tvBcbVrNiPCXm
         3ovP4djshcMh9reXWjZa9ArIZklc9Pgbb5iNM9yIVpcXsbeHZrLFoEja+lgN/sxVaf+g
         3pQQTXO5IpS0yXLEKccmQnLtfc6ubbI8xLoK3KsTxBKysBLI9LrkNP64y1aTHGS2cQsS
         I/2ZePI1213P/UStj/aG+kwfop9WQQo8pC8+Gk90Ys0LlXY9H2kgDWFrZ4cU+s5FiMV/
         qjAxd2x/m1PTb04X+TZvnz3mZCi4sNEBhFNHrvDTv4i5Ea44wpF3NFJRbzip0GOT31NE
         UfYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702020862; x=1702625662;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=xzE+u1izF65yFtO14EQdT7QKiRZs02FB+MTL9nuuhmI=;
        b=JeZtbxRU4oSwa0XtvTzDQy81tx8X2Mm51pmvDNoiK61uahOUQ5D02QjEpIG9EYnbH7
         I8cUqml/jOAY521A5wDJy1g2aJuOqN5HK+gZXwyPJ4cBt9evjyFni0OyuAvOAgw7rUX4
         hCG0vI1IymP21gn8+5oOls7eCbmm+O3rsOVdAV66BvydP36kMGyP2ILB8iCdBMwUle7w
         FaQKMmNLMk87GF0c+1JmI7EOo2pVroN1dimdn9vM/V/Rmb6LdwRzVZa7+l4F+Wr8mdPm
         JTnKnJQOM070wk1f13c01kQfe08Rxh3dk2uLxWwRMvDCRald8q3/PLpYSZqZ1NgVzEPs
         PUXA==
X-Gm-Message-State: AOJu0YzdOTj1GEHhB8MGxi2Wn7o41gLRppqle0WIjemXVY/W5Zo0bLXv
	EoZhfUoIDxRL2Z6DBxqcIu3A
X-Google-Smtp-Source: AGHT+IH4aicy+xFiPUJGATS3CtdoQFjgiulVmGMMPM6p/pJiAI13VOvl80NSHS2Z1cEsxGNnx3JTeg==
X-Received: by 2002:a05:600c:2049:b0:40c:2b24:325e with SMTP id p9-20020a05600c204900b0040c2b24325emr1128240wmg.184.1702020862213;
        Thu, 07 Dec 2023 23:34:22 -0800 (PST)
Message-ID: <06d65659-5bcd-4326-b21c-0ac7720ae8c2@suse.com>
Date: Fri, 8 Dec 2023 08:34:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] tools/libs/evtchn: replace assert()s in stubdom with
 proper locking
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Cc: Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20231207062551.19825-1-jgross@suse.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: <20231207062551.19825-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 07:25, Juergen Gross wrote:
> In tools/libs/evtchn/minios.c there are assert()s for the current
> thread being the main thread when binding an event channel.
> 
> As Mini-OS is supporting multiple threads, there is no real reason
> why the binding shouldn't be allowed to happen in any other thread.
> 
> Drop the assert()s and replace them with proper locking of the
> port_list.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Is this a change I should pick up for backport?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 07:47:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 07:47:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650394.1015907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBVZW-0002ac-Lo; Fri, 08 Dec 2023 07:46:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650394.1015907; Fri, 08 Dec 2023 07:46: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 1rBVZW-0002aV-JG; Fri, 08 Dec 2023 07:46:54 +0000
Received: by outflank-mailman (input) for mailman id 650394;
 Fri, 08 Dec 2023 07:46: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=T8s0=HT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rBVZV-0002aP-Tb
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 07:46:54 +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 f3c9b380-959d-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 08:46:53 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 7430322119;
 Fri,  8 Dec 2023 07:46: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 4C6BC13335;
 Fri,  8 Dec 2023 07:46:52 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id DujUEOzJcmWKcQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 08 Dec 2023 07:46: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: f3c9b380-959d-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702021612; 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=QQK+Tj7g62spYrkLuh/1Ha8+vxZG2QIUdM86iNq9bsI=;
	b=gks3QDDIyV6AlFHnp1G+MxiXHILjZHb1X3scIffnF7MY8GuZuNimCwPd6Fe8+Eru5aUv/i
	KLe3TAWHPEUB2ihQxtlt12BaAYXDlaMgAvJ/jMR0YgcgPtqGitfmy0eigI6lMYzTNxtJAT
	D4/g3eV859tqcCWKWQ/ugySzCicD3qk=
Message-ID: <41d4bbc0-5c8d-443c-979b-391d5fc09432@suse.com>
Date: Fri, 8 Dec 2023 08:46:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] tools/libs/evtchn: replace assert()s in stubdom with
 proper locking
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Cc: Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20231207062551.19825-1-jgross@suse.com>
 <06d65659-5bcd-4326-b21c-0ac7720ae8c2@suse.com>
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: <06d65659-5bcd-4326-b21c-0ac7720ae8c2@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------zTN0BuQO4JzgF0OAxv4mAMbV"
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -2.44
X-Spamd-Result: default: False [-2.44 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 BAYES_HAM(-0.25)[73.39%];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.19)[-0.969];
	 MIME_BASE64_TEXT(0.10)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------zTN0BuQO4JzgF0OAxv4mAMbV
Content-Type: multipart/mixed; boundary="------------h3rO2FN5priNPLK18gcFMJtM";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Cc: Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
Message-ID: <41d4bbc0-5c8d-443c-979b-391d5fc09432@suse.com>
Subject: Re: [PATCH v2] tools/libs/evtchn: replace assert()s in stubdom with
 proper locking
References: <20231207062551.19825-1-jgross@suse.com>
 <06d65659-5bcd-4326-b21c-0ac7720ae8c2@suse.com>
In-Reply-To: <06d65659-5bcd-4326-b21c-0ac7720ae8c2@suse.com>

--------------h3rO2FN5priNPLK18gcFMJtM
Content-Type: multipart/mixed; boundary="------------JgS0xRNCq0e8PpgMos7Zv0CX"

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

T24gMDguMTIuMjMgMDg6MzQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNy4xMi4yMDIz
IDA3OjI1LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gSW4gdG9vbHMvbGlicy9ldnRjaG4v
bWluaW9zLmMgdGhlcmUgYXJlIGFzc2VydCgpcyBmb3IgdGhlIGN1cnJlbnQNCj4+IHRocmVh
ZCBiZWluZyB0aGUgbWFpbiB0aHJlYWQgd2hlbiBiaW5kaW5nIGFuIGV2ZW50IGNoYW5uZWwu
DQo+Pg0KPj4gQXMgTWluaS1PUyBpcyBzdXBwb3J0aW5nIG11bHRpcGxlIHRocmVhZHMsIHRo
ZXJlIGlzIG5vIHJlYWwgcmVhc29uDQo+PiB3aHkgdGhlIGJpbmRpbmcgc2hvdWxkbid0IGJl
IGFsbG93ZWQgdG8gaGFwcGVuIGluIGFueSBvdGhlciB0aHJlYWQuDQo+Pg0KPj4gRHJvcCB0
aGUgYXNzZXJ0KClzIGFuZCByZXBsYWNlIHRoZW0gd2l0aCBwcm9wZXIgbG9ja2luZyBvZiB0
aGUNCj4+IHBvcnRfbGlzdC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3Nz
IDxqZ3Jvc3NAc3VzZS5jb20+DQo+IA0KPiBJcyB0aGlzIGEgY2hhbmdlIEkgc2hvdWxkIHBp
Y2sgdXAgZm9yIGJhY2twb3J0Pw0KDQpUaGlzIHBhdGNoIGlzbid0IHJlYWxseSBmaXhpbmcg
YSBidWcsIGJ1dCBtb3JlIGVuaGFuY2luZyBmdW5jdGlvbmFsaXR5Lg0KDQpJIGRvbid0IHRo
aW5rIGEgYmFja3BvcnQgaXMgbmVlZGVkLg0KDQoNCkp1ZXJnZW4NCg==
--------------JgS0xRNCq0e8PpgMos7Zv0CX
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-----

--------------JgS0xRNCq0e8PpgMos7Zv0CX--

--------------h3rO2FN5priNPLK18gcFMJtM--

--------------zTN0BuQO4JzgF0OAxv4mAMbV
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/Ey8FAmVyyesFAwAAAAAACgkQsN6d1ii/Ey/1
MQgAl5wwIPeZe+hzLKrMMYlvVooySpAVG6r57Hy/8PG2J2bi8r3Ht1u5arDQhp8ui1CSoyHjYbgC
X5++XHQmz/CqAFIIWlLyDBU9QQz9wrEIAZP9iMkzBkz0uTYC+F7SBfCRfBP7xd5CA7sIHOBJBSab
Fz0WbeetFmzHM5fdtiBpLC0yjo20Uikf81M9uGDFtu2fezRBQaEWRxl3+Sz3P7CC4wWcxYM+cs01
OUB3uzcBY+CwuBF8+rQziaKtPuStbLjdJPn/6ITsitb7HnbGoDmbvfPs3a45sKNC9XoTmYOp8pHc
nNZgQZ5wk+o7wOWawxrpDKzIgJm+3rcufZu0zujblQ==
=rYim
-----END PGP SIGNATURE-----

--------------zTN0BuQO4JzgF0OAxv4mAMbV--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 08:40:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 08:40:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650421.1015920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWOn-0005Kn-3V; Fri, 08 Dec 2023 08:39:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650421.1015920; Fri, 08 Dec 2023 08:39:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWOn-0005Kg-0n; Fri, 08 Dec 2023 08:39:53 +0000
Received: by outflank-mailman (input) for mailman id 650421;
 Fri, 08 Dec 2023 08:39: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=F8K7=HT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBWOl-0005Ka-4L
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 08:39:51 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20623.outbound.protection.outlook.com
 [2a01:111:f400:fe59::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58c3a411-95a5-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 09:39:49 +0100 (CET)
Received: from PH7PR13CA0018.namprd13.prod.outlook.com (2603:10b6:510:174::22)
 by MW6PR12MB8734.namprd12.prod.outlook.com (2603:10b6:303:249::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 08:39:44 +0000
Received: from SN1PEPF0002529D.namprd05.prod.outlook.com
 (2603:10b6:510:174:cafe::32) by PH7PR13CA0018.outlook.office365.com
 (2603:10b6:510:174::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.14 via Frontend
 Transport; Fri, 8 Dec 2023 08:39:44 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002529D.mail.protection.outlook.com (10.167.242.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 08:39:43 +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.34; Fri, 8 Dec
 2023 02:39:40 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Fri, 8 Dec 2023 02:39:39 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58c3a411-95a5-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hPGZdsoGtESd9TUYey/Dw3tCic/fe1vGANMRBlicRTlv8IDTpV2NJJ0EJIkOFRtjjRME5shbB0kjh5kucXY3sVyJsoSHhPF8rGIRk60fMNQrruDgK5CWrxewfTROUmm3OEI/7WQfC3o6/SkEKFUjvIRHz5pONSs4eHC2z/MbP+3/1s+qCMx8l9SheULTnFUgHUGHX8adBS87wZLBTY/cPz5gQH++qgb/hZoRDHPhOmveg3j6yPmpmrenwd7P8p2sIJvyvyt9TcwVBd+82TRhFXiXSqTIqYVCXlti6ik2PmvKjXUWqIt+f2ht3IZrnZp7BW5mUzXpug6JbJ2UnAq/lA==
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=GLFA0sxO1id7jPf2s8b5pgDNGgRPZNPiSSZAOaKwLaA=;
 b=V170utopYhVjX7XzHBwj3gaAMEttyIV/YLtfX0g4BAE9sItZIOMzRvYSa8KYAGbBbH1zhXXMfs7Y91JpYzP+PcZ3HxjxqtKnL4IoxioB23FVyVmXXnhgVQL+Em94oQ/nayq0xKauQCqWwYiucypGFvpTPrRqtfvnAhqSxJdSQn44qxbs6wt5mG1BLaQh6SBD1+KzaVDrTqk/cGJKX7Yx7Aps3IScEfMU/+BuRXbViZnwR/PeIPlM/OIus7DdZPuyxZO0yER7lJYzdTtIh1QLXf1BEYdtM71La0Z0fGh8AWxZjcLTIFn+r+DX//F7SY56Xz5PhYnvjJXJ3ZL3m+PAnA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GLFA0sxO1id7jPf2s8b5pgDNGgRPZNPiSSZAOaKwLaA=;
 b=xBh89n1r3AYhr6Uc99xyjqeudYY72jVoXuvhL0AVgZJ5KgL62OAPm3Kw6E4Ayr58wTOxzNnE8zKXiQ+ss8gB6vUbEL8nZX41/RPaad1DGYGCL46mEbkt5fJ6I6IdPfMMDEXd/VN8+6wNvmJhkV9KCuSJIHpnWxeU1vjJx7gT9K8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <beb72672-4ff6-4fce-a3bd-2a7ead9e64ec@amd.com>
Date: Fri, 8 Dec 2023 09:39:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/5] automation: Add the Dockerfile to build TF-A and
 U-Boot for FVP
To: Henry Wang <Henry.Wang@arm.com>, <xen-devel@lists.xenproject.org>
CC: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-3-Henry.Wang@arm.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231208054637.1973424-3-Henry.Wang@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002529D:EE_|MW6PR12MB8734:EE_
X-MS-Office365-Filtering-Correlation-Id: 498da0e9-f61f-43ae-ad58-08dbf7c93a1f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	CINa07Fjmi34eRPMfvyFh3j4RvG9dzRG+EdrdVbfATdzEcKnmPldBVOH9cczkwELw/zLjuFsQggxu9LphYHmFfgxRdUyt7l9rHO5AkmnaqAAE7BmaKrkrFs2dk0+Ht9iCemiN5vCchAafLJWBt11sCE6EQo2fMnZNw2DrTRCDG44vxoEVJ0scXvV9Tuo+Fw6qOQnbKuJE3monFOanF277lepchnSljslb8tE/HX17udV047RceVGZ6DXZZ6YW5GELb3dLGxuDyWJfJjjk8vVOQC6UUkcUMbxGV4jLV1YJrREHlLa8SasriaaZuyLNbtcwkZNq1Osxvi9VeVk+2CdMoXdJzrg43BUjvzid1xMh2WHM2NsZc5CqomywkAjNOmAVFosV78wWEaMfup2bZK4kiorR/UvGL9mPBIkdYGXzAA1cqyBfvxqYZs2WqAZy2HyjiXyUyxAh+/BJZQJzDGHtbA4mHXNeXzWnvqyMM04jvH1Xvo1X58yP7d4QPgStSaq06XxXa0eM3hw5m4XRNuJY5Jp18EgdfsT2xrecQLazOJkHQUl5NS4/6voOcSvBQ6ggQbw2YnqkRFvD79nXeXq5zJRHw192vJY7LdZgL0jzwHLFd20xVhkFUYohzvZtdMVSZU/ywYGOoSDNG5+RWPtIETDxzNyHGOih2FWZdXiw8FLpxdJ6f4NdTro1pORaM97+Co1SS2zpuv9+FqM/ns0u0i4qDD9DByycvbt34SUudlePL1xy9N7F/N0DMBnoJmqwnqA83uN/EcR5Ce+Zoo8Mv7B2fRRUj8VdV12xEd34wg=
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:(13230031)(4636009)(136003)(346002)(39860400002)(376002)(396003)(230922051799003)(186009)(451199024)(1800799012)(82310400011)(64100799003)(36840700001)(46966006)(40470700004)(83380400001)(81166007)(41300700001)(36756003)(40460700003)(426003)(2906002)(47076005)(356005)(82740400003)(36860700001)(31686004)(31696002)(44832011)(966005)(478600001)(53546011)(54906003)(40480700001)(110136005)(70206006)(16576012)(2616005)(316002)(86362001)(4326008)(8676002)(8936002)(70586007)(5660300002)(6666004)(26005)(336012)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 08:39:43.8230
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 498da0e9-f61f-43ae-ad58-08dbf7c93a1f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002529D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8734

Hi Henry,

On 08/12/2023 06:46, Henry Wang wrote:
> 
> 
> Unlike the emulators that currently being used in the CI pipelines,
> the FVP must start at EL3. Therefore we need the firmware, i.e. the
> TrustedFirmware-A (TF-A), for corresponding functionality.
> 
> There is a dedicated board (vexpress_fvp) in U-Boot (serve as the
> BL33 of the TF-A) for the FVP platform, so the U-Boot should also be
> compiled for the FVP platform instead of reusing the U-Boot for the
> existing emulators used in the CI pipelines.
> 
> To avoid compiling TF-A and U-Boot everytime in the job, adding a
> Dockerfile to the test artifacts to build TF-A v2.9.0 and U-Boot
> v2023.10 for FVP. The binaries for the TF-A and U-Boot, as well as
> the device tree for the FVP platform, will be saved (and exported by
> the CI job introduced by following commits). Note that, a patch for
> the TF-A will be applied before building to enable the virtio-net
> and the virtio-rng device on the FVP. The virtio-net device will
> provide the networking service for FVP, and the virtio-rng device
> will improve the speed of the FVP.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> v2:
> - Add Stefano's Reviewed-by tag.
> ---
>  .../2023.10-2.9.0-arm64v8.dockerfile          | 48 +++++++++++++++++++
>  1 file changed, 48 insertions(+)
>  create mode 100644 automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
> 
> diff --git a/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile b/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
> new file mode 100644
> index 0000000000..6566b60545
> --- /dev/null
> +++ b/automation/tests-artifacts/armfvp-uboot-tfa/2023.10-2.9.0-arm64v8.dockerfile
> @@ -0,0 +1,48 @@
> +FROM --platform=linux/arm64/v8 debian:bookworm
> +LABEL maintainer.name="The Xen Project" \
> +      maintainer.email="xen-devel@lists.xenproject.org"
> +
> +ENV DEBIAN_FRONTEND=noninteractive
> +ENV UBOOT_VERSION="2023.10"
> +ENV TFA_VERSION="v2.9.0"
> +ENV USER root
> +
> +RUN mkdir /build
> +WORKDIR /build
> +
> +# build depends
> +RUN apt-get update && \
> +    apt-get --quiet --yes install \
> +        build-essential \
> +        libssl-dev \
> +        bc \
> +        curl \
> +        flex \
> +        bison \
> +        git \
> +        device-tree-compiler && \
> +    apt-get autoremove -y && \
> +    apt-get clean && \
> +    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
> +
> +# Build U-Boot and TF-A
> +RUN curl -fsSLO https://ftp.denx.de/pub/u-boot/u-boot-"$UBOOT_VERSION".tar.bz2 && \
> +    tar xvf u-boot-"$UBOOT_VERSION".tar.bz2 && \
> +    cd u-boot-"$UBOOT_VERSION" && \
> +    make -j$(nproc) V=1 vexpress_fvp_defconfig && \
> +    make -j$(nproc) V=1 all && \
Do we need 'all'? Can't we just build target 'u-boot' for u-boot.bin?

> +    cd .. && \
> +    git clone --branch "$TFA_VERSION" --depth 1 https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git && \
> +    cd trusted-firmware-a && \
> +    curl -fsSLO https://git.yoctoproject.org/meta-arm/plain/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/fvp-base/0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch \
> +         --output 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
> +    git config --global user.email "you@example.com" && \
> +    git config --global user.name "Your Name" && \
If this is needed for git am, you could get away using 'patch -p1'

> +    git am 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
> +    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t all && \
> +    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t fip BL33=../u-boot-"$UBOOT_VERSION"/u-boot.bin && \
> +    cp build/fvp/debug/bl1.bin / && \
> +    cp build/fvp/debug/fip.bin / && \
> +    cp build/fvp/debug/fdts/fvp-base-gicv3-psci-1t.dtb / && \
> +    cd /build && \
> +    rm -rf u-boot-"$UBOOT_VERSION" trusted-firmware-a
You forgot to remove u-boot tar file

Other than that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 08:47:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 08:47:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650428.1015930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWVy-0007dv-TZ; Fri, 08 Dec 2023 08:47:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650428.1015930; Fri, 08 Dec 2023 08:47:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWVy-0007do-Qr; Fri, 08 Dec 2023 08:47:18 +0000
Received: by outflank-mailman (input) for mailman id 650428;
 Fri, 08 Dec 2023 08:47:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qEM7=HT=redhat.com=rjones@srs-se1.protection.inumbo.net>)
 id 1rBWVx-0007di-J5
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 08:47:17 +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 625ddd7b-95a6-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 09:47:15 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-639-Be8SVf9tMhmpLuV9zMNIHQ-1; Fri, 08 Dec 2023 03:47:09 -0500
Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com
 [10.11.54.10])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id F0AE985CEE5;
 Fri,  8 Dec 2023 08:47:08 +0000 (UTC)
Received: from localhost (unknown [10.42.28.15])
 by smtp.corp.redhat.com (Postfix) with ESMTP id AFAE6492BE6;
 Fri,  8 Dec 2023 08:47: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: 625ddd7b-95a6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702025234;
	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=VpJIDDxc9S/Oco94xRscgYkswaHQndmc7Po28fvIRaM=;
	b=RJa1Jxwvauj8MthslqUpJVvLGtGTCcf67VgUk2QlbqkE5w/OLTRhwl1VmveawZFsy09svc
	uX5/syUzzYb0kheu0e0CcPRY/WPkCAy0EXeIh5diodCSr/guFWwhNDoXNnJS6Ndg+qkk78
	0wvfB2Vo/7a9RZTptPSXp238IKFFzic=
X-MC-Unique: Be8SVf9tMhmpLuV9zMNIHQ-1
Date: Fri, 8 Dec 2023 08:47:07 +0000
From: "Richard W.M. Jones" <rjones@redhat.com>
To: Michael Young <m.a.young@durham.ac.uk>
Cc: qemu-devel@nongnu.org, Stefano Stabellini <sstabellini@kernel.org>,
	Anthony Perard <anthony.perard@citrix.com>,
	Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
Message-ID: <20231208084707.GA23257@redhat.com>
References: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
User-Agent: Mutt/1.5.21 (2010-09-15)
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10

(Adding Xen maintainers)

On Thu, Dec 07, 2023 at 11:12:48PM +0000, Michael Young wrote:
> Builds of qemu-8.2.0rc2 with xen-4.18.0 are currently failing
> with errors like
> ../hw/arm/xen_arm.c:74:5: error: â€˜GUEST_VIRTIO_MMIO_SPI_LASTâ€™ undeclared (first use in this function)
>    74 |    (GUEST_VIRTIO_MMIO_SPI_LAST - GUEST_VIRTIO_MMIO_SPI_FIRST)
>       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> as there is an incorrect comparision in include/hw/xen/xen_native.h
> which means that settings like GUEST_VIRTIO_MMIO_SPI_LAST
> aren't being defined for xen-4.18.0
> 
> Signed-off-by: Michael Young <m.a.young@durham.ac.uk>

Reviewed-by: Richard W.M. Jones <rjones@redhat.com>

> ---
>  include/hw/xen/xen_native.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/hw/xen/xen_native.h b/include/hw/xen/xen_native.h
> index 6f09c48823..04b1ef4d34 100644
> --- a/include/hw/xen/xen_native.h
> +++ b/include/hw/xen/xen_native.h
> @@ -532,7 +532,7 @@ static inline int xendevicemodel_set_irq_level(xendevicemodel_handle *dmod,
>  }
>  #endif
>  
> -#if CONFIG_XEN_CTRL_INTERFACE_VERSION <= 41700
> +#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 41700
>  #define GUEST_VIRTIO_MMIO_BASE   xen_mk_ullong(0x02000000)
>  #define GUEST_VIRTIO_MMIO_SIZE   xen_mk_ullong(0x00100000)
>  #define GUEST_VIRTIO_MMIO_SPI_FIRST   33
> -- 
> 2.43.0
> 

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 08:57:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 08:57:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650433.1015942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWfK-0001Ez-RQ; Fri, 08 Dec 2023 08:56:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650433.1015942; Fri, 08 Dec 2023 08:56:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWfK-0001Es-Mz; Fri, 08 Dec 2023 08:56:58 +0000
Received: by outflank-mailman (input) for mailman id 650433;
 Fri, 08 Dec 2023 08:56:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBWfJ-0001Em-P8
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 08:56:58 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01on0622.outbound.protection.outlook.com
 [2a01:111:f400:fe02::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc9c9b0e-95a7-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 09:56:55 +0100 (CET)
Received: from DUZPR01CA0289.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b7::20) by DBBPR08MB10411.eurprd08.prod.outlook.com
 (2603:10a6:10:536::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 08:56:51 +0000
Received: from DB5PEPF00014B90.eurprd02.prod.outlook.com
 (2603:10a6:10:4b7:cafe::7e) by DUZPR01CA0289.outlook.office365.com
 (2603:10a6:10:4b7::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28 via Frontend
 Transport; Fri, 8 Dec 2023 08:56:49 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5PEPF00014B90.mail.protection.outlook.com (10.167.8.228) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 08:56:49 +0000
Received: ("Tessian outbound 5d213238733f:v228");
 Fri, 08 Dec 2023 08:56:49 +0000
Received: from 3853d9572eab.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 DE5E640C-285D-4889-98A2-AFC212C33EEB.1; 
 Fri, 08 Dec 2023 08:56:42 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 3853d9572eab.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 08:56:42 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by PA6PR08MB10622.eurprd08.prod.outlook.com (2603:10a6:102:3cd::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 08:56:40 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 08:56: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: bc9c9b0e-95a7-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=H3XZEtjkVdgEYgmQtfxW0NQ4sjryEne5UJPHb+PHwC3XkH7M6/SMvWVTro65bu2nA8AKaGQ151uJ7YVzf++12gaHII2Darkh4eJysFrgLYCubrmZSZrw+gp3rAFwUlFnMytvqUVB1wHlbE774lM2hfjz1PZp0v77H/KOk7UaizOL3T9BdG9zVWrOs547lV6QkcX3yOLKaTfVtUNhQIZj5ufWFrX/OFegM1WHH8ofWazAzJVEBKuoM4DFqsp7NBLyiI8Se4YbSKkuY8GYcmqqfQFDwZ33deQxEaeg1Ov9zsQ0tJB08aaGDowHGAEPIHiIE0bvnDWiRAfkEljg7mED8A==
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=WlX09O5pdtIpVgkUO3NDWsQtjoI/eqSQ57MdOnQfTaA=;
 b=Cu7BXW2Bza1r6FbUBLxJWx2qTpFFIUSyyyneeAFfEIj0k00dxZ3Eu2sjwMcEM2j0HULjGDyJnQzIoTQnCU2ai4L143RxNHrTyCdNzemjaM1i7JGNN3AiK9VcOmQScUwo0V6wk+Jckf4FCoFflhcnkSeuDAu4cBbg5G5djcg3AJCl3BbwK8uFfHcCOqVFJA5Sg5QPacDuNK6dO5yc6daqdcxtW3Bgldv653h8X9ExeNzwxGAabsJN6sXpCEgeztZ3PJuRTBlHlsoE60jG2+mOSXo2dVfvPG/y0GU87Ow5O404XsBdGACacV+oyt2OEvbsk+NQrcc0QgT35hl1mHw7uA==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WlX09O5pdtIpVgkUO3NDWsQtjoI/eqSQ57MdOnQfTaA=;
 b=d7NzwIPnAfgGbf8PzKE+x37oRil7NEPYL0PUcaeRdWAY2MeDHdGsmexS7HGQkmnFKC4FeO82pkcmwfsi0qiLS7a9MzrFHzNLmnqwUsuRHwSG08VBPhxTi9OD4bdV5YWlPvy5pKQY4FzeN32d0p/iGrlhcYuGOskty7Djd+9SCAA=
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=armh.onmicrosoft.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: c1b38ee05c6e07b3
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Te+s/4IBs5ip7FtS0TeNUqDH890rrA70M5m5WHs0sYaCYzWIawQu1CDz0ov0zlhBBYi2s/ybVBfBC8FweyX7BZjTqIH2mkPYKG+0loAxwRexT1aKrbewWAsJlAUk3eAqDpS8gjUUknbhHx2so+qv7+c1SUNyTm15H3XzbpmuvVsBBp86iPWg69MN6YsB1Oz7f/RhhdwPuo534Qyweml5FI4a9a8vyA+DMQbgYbkNNyd+ORI3vx10aPAg/wFb6HKx0hnCcx9hyuKbjnROgq7KIvFIla0QoHSlp5Ezx759M5cOWmukJvoZk6eEAJYoMQ5/0TgC27PPh/SdCujqv5XBeQ==
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=WlX09O5pdtIpVgkUO3NDWsQtjoI/eqSQ57MdOnQfTaA=;
 b=QK9BeJuYDTqmStI3BzLj2beIfXC6gjNg84oVGqlyVQ7a7MzqLuyyMnQ3d4Of4eoWGbSTM570YzargnUu6hBoVXs9OoeMGbMRuw114J5iJUqyFckAVMCLHo7mR03ayPYcGwhM7n/zToSjoMgptw+dkFtMZ5vyTI1lDAled9SnUAAvzPQtgRygfQDWTzSSCoJv3kjr++xtRpq7tl5FuB8/4cjiyGSHKqIM5XTA1oWk/ayE5EVia0AS7OJS9Ex4W4fzmg7ra6FnvGLj30/7IMtnUbAwsNrhZloWLoMYEgvfx+auysy2UNpZZVUB8axd7TTRzkTZF8rVVoeCaFjgrdJKiQ==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WlX09O5pdtIpVgkUO3NDWsQtjoI/eqSQ57MdOnQfTaA=;
 b=d7NzwIPnAfgGbf8PzKE+x37oRil7NEPYL0PUcaeRdWAY2MeDHdGsmexS7HGQkmnFKC4FeO82pkcmwfsi0qiLS7a9MzrFHzNLmnqwUsuRHwSG08VBPhxTi9OD4bdV5YWlPvy5pKQY4FzeN32d0p/iGrlhcYuGOskty7Djd+9SCAA=
From: Henry Wang <Henry.Wang@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH v2 2/5] automation: Add the Dockerfile to build TF-A and
 U-Boot for FVP
Thread-Topic: [PATCH v2 2/5] automation: Add the Dockerfile to build TF-A and
 U-Boot for FVP
Thread-Index: AQHaKZn9nB8nbm9rDUK+GJE7s4YGUrCfEO6AgAAEuYA=
Date: Fri, 8 Dec 2023 08:56:38 +0000
Message-ID: <CC528228-94A0-4D22-897F-24BDD5A5A11E@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-3-Henry.Wang@arm.com>
 <beb72672-4ff6-4fce-a3bd-2a7ead9e64ec@amd.com>
In-Reply-To: <beb72672-4ff6-4fce-a3bd-2a7ead9e64ec@amd.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|PA6PR08MB10622:EE_|DB5PEPF00014B90:EE_|DBBPR08MB10411:EE_
X-MS-Office365-Filtering-Correlation-Id: 972adf9b-1cfb-40bb-6637-08dbf7cb9d53
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 QfGpIKqMH5zRzUo6UCLUJXddgS9qV1/CjMcLXS/lqjQmkPH0tfKOmYLA5c0I88HGDoE5EkhzZ8lqbYviyToyTQOe187MaaM4Ba1ov+CZgu8vQ20Vtbhivs0adNgPfPPYK0IlV3qje/6heN+UDtFqQEXRYbsxZCI98JKWPBs+i03Uovx3FBEs0pT6SSvawJMR0g92Ecqdt7NXy2noygUjcGfbO7Uf6bqhfE+AA3NI8IVql6xmgQCxrbQI8jjU8d1RacaATSuNXNbbsp9TfIML10xwaBm1XkepVHIgoLiueLelCGF9GPGHF1vkQv59CHS//9xoPkoSZtjPlTmOTO0zEprzKAsI5bLlE7SOe53XpHmWghaE1s6k6SrcIh6v5s7ECAxPA04sf5Pd/cCDP88iu8jt0Wc0AlZJTfckznNrGyj4nASXTmexIi38CtGNwQBzo/hhlbg6pehxrhUvyrCxY0FJl1f45jSZx9Imk300lV6SXI01+TeaQEkdoyeRpqeo34QcDot0h2xrEmskgZh3EM1fLtU9gondMrnGKzjsq8uFwD2Q8TohNrCOpVg76R4W708J4uxnnyPBo/+U+GNuHHrkZsdh5gt/Lqkz281hKGKkCfQpZLj8o0qX1kXZs1nxqlUeV3XB+U82CSYm6mRHQlPe3aTZ3Ie6mash8eO9SDlrC0byZHuIVtInalVjAmLV
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(39860400002)(376002)(366004)(136003)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(8936002)(4326008)(41300700001)(36756003)(26005)(316002)(38070700009)(64756008)(66446008)(71200400001)(66476007)(66556008)(8676002)(66946007)(54906003)(966005)(6916009)(6486002)(86362001)(76116006)(2616005)(91956017)(6512007)(33656002)(478600001)(2906002)(53546011)(5660300002)(6506007)(122000001)(38100700002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <5B8A8F85D6FB0745ADE816DF754CC4AA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10622
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:
 DB5PEPF00014B90.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6d45f302-7658-4c80-bdd2-08dbf7cb96da
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	erNxcPtoLY2L09JfKraB+JsFT8jEv2EuiUc7QQsFeVxaQ0rKF5u8oIUCBrBfMIFsvmfUq+vWFMyjzABf5qNwpyBEMvOFkma/kvmHe1xq5bRksL0FEIgFXK26wv2HHyDJuKX9BjrDkGYVyx4TBK+wLSNtDTkuHJSr5i4GkWUn5h7AVogPR+pM7OmsKteDVvWN1taWZPiIIL/2ovLw8EW0hxxa/wVPr49SaHyB+DgzHlf5OWamZ3zM/BJjRECdSsZQFV75Iy3YaejWQQxwd0xoyMxkGFEp/tcNAV1dST45ZElFUBt6Z7QaPtzHVoCnj+LvMEpGodICtj/BXFRqLNRfC6JXRWuf42X+PKXMFeglynA+sYzoaERY8ZxwD1JQBazalBlzrFvdvXjMQ8EqfopFo3BR+SuDb7Z62J5F91V9Ibu1WXxv7di3a6IRGHFIr9+J7Pvt6LHzCYZLZ7Vtojk+V65fgpjtpSt0KuKxibB2vW3E6l6qlnmdNctce7f/L16lVe7JnCiE+8dZKtSsoxpRMSI6ICRrFbqBfMspxJZN2xH0I/FvLoBQMt0jGa4vF280vTPY+fQyCskV0eQC/RPDmaZ+OfD5lxtRz+p0hKafiLVaGRkDEFqNKsbDsMGbTW2/kd8Nwj6PMUOUhaeH2QJsrIpJE3Co8F2OFia59oYZnfg/NaUFpBjo/EONIR/WfWZN7LoGQJIB59BZKSOP7ujFizfdz7sxOIqBxJ/YiWRQ13X29FKUzEu5YKWy5e7x85o1IbQKQ46JfErWTZD35r9L4g==
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:(13230031)(4636009)(346002)(136003)(39860400002)(396003)(376002)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(82310400011)(36840700001)(40470700004)(46966006)(478600001)(5660300002)(40480700001)(2906002)(6486002)(966005)(36860700001)(4326008)(86362001)(316002)(54906003)(33656002)(70206006)(70586007)(8936002)(6862004)(8676002)(6512007)(356005)(6506007)(36756003)(41300700001)(81166007)(2616005)(53546011)(40460700003)(26005)(82740400003)(47076005)(336012);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 08:56:49.2967
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 972adf9b-1cfb-40bb-6637-08dbf7cb9d53
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:
	DB5PEPF00014B90.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10411

SGkgTWljaGFsLA0KDQo+IE9uIERlYyA4LCAyMDIzLCBhdCAxNjozOSwgTWljaGFsIE9yemVsIDxt
aWNoYWwub3J6ZWxAYW1kLmNvbT4gd3JvdGU6DQo+IA0KPiBIaSBIZW5yeSwNCj4gDQo+IE9uIDA4
LzEyLzIwMjMgMDY6NDYsIEhlbnJ5IFdhbmcgd3JvdGU6DQo+PiANCj4+IFVubGlrZSB0aGUgZW11
bGF0b3JzIHRoYXQgY3VycmVudGx5IGJlaW5nIHVzZWQgaW4gdGhlIENJIHBpcGVsaW5lcywNCj4+
IHRoZSBGVlAgbXVzdCBzdGFydCBhdCBFTDMuIFRoZXJlZm9yZSB3ZSBuZWVkIHRoZSBmaXJtd2Fy
ZSwgaS5lLiB0aGUNCj4+IFRydXN0ZWRGaXJtd2FyZS1BIChURi1BKSwgZm9yIGNvcnJlc3BvbmRp
bmcgZnVuY3Rpb25hbGl0eS4NCj4+IA0KPj4gVGhlcmUgaXMgYSBkZWRpY2F0ZWQgYm9hcmQgKHZl
eHByZXNzX2Z2cCkgaW4gVS1Cb290IChzZXJ2ZSBhcyB0aGUNCj4+IEJMMzMgb2YgdGhlIFRGLUEp
IGZvciB0aGUgRlZQIHBsYXRmb3JtLCBzbyB0aGUgVS1Cb290IHNob3VsZCBhbHNvIGJlDQo+PiBj
b21waWxlZCBmb3IgdGhlIEZWUCBwbGF0Zm9ybSBpbnN0ZWFkIG9mIHJldXNpbmcgdGhlIFUtQm9v
dCBmb3IgdGhlDQo+PiBleGlzdGluZyBlbXVsYXRvcnMgdXNlZCBpbiB0aGUgQ0kgcGlwZWxpbmVz
Lg0KPj4gDQo+PiBUbyBhdm9pZCBjb21waWxpbmcgVEYtQSBhbmQgVS1Cb290IGV2ZXJ5dGltZSBp
biB0aGUgam9iLCBhZGRpbmcgYQ0KPj4gRG9ja2VyZmlsZSB0byB0aGUgdGVzdCBhcnRpZmFjdHMg
dG8gYnVpbGQgVEYtQSB2Mi45LjAgYW5kIFUtQm9vdA0KPj4gdjIwMjMuMTAgZm9yIEZWUC4gVGhl
IGJpbmFyaWVzIGZvciB0aGUgVEYtQSBhbmQgVS1Cb290LCBhcyB3ZWxsIGFzDQo+PiB0aGUgZGV2
aWNlIHRyZWUgZm9yIHRoZSBGVlAgcGxhdGZvcm0sIHdpbGwgYmUgc2F2ZWQgKGFuZCBleHBvcnRl
ZCBieQ0KPj4gdGhlIENJIGpvYiBpbnRyb2R1Y2VkIGJ5IGZvbGxvd2luZyBjb21taXRzKS4gTm90
ZSB0aGF0LCBhIHBhdGNoIGZvcg0KPj4gdGhlIFRGLUEgd2lsbCBiZSBhcHBsaWVkIGJlZm9yZSBi
dWlsZGluZyB0byBlbmFibGUgdGhlIHZpcnRpby1uZXQNCj4+IGFuZCB0aGUgdmlydGlvLXJuZyBk
ZXZpY2Ugb24gdGhlIEZWUC4gVGhlIHZpcnRpby1uZXQgZGV2aWNlIHdpbGwNCj4+IHByb3ZpZGUg
dGhlIG5ldHdvcmtpbmcgc2VydmljZSBmb3IgRlZQLCBhbmQgdGhlIHZpcnRpby1ybmcgZGV2aWNl
DQo+PiB3aWxsIGltcHJvdmUgdGhlIHNwZWVkIG9mIHRoZSBGVlAuDQo+PiANCj4+IFNpZ25lZC1v
ZmYtYnk6IEhlbnJ5IFdhbmcgPEhlbnJ5LldhbmdAYXJtLmNvbT4NCj4+IFJldmlld2VkLWJ5OiBT
dGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQo+PiAtLS0NCj4+IHYy
Og0KPj4gLSBBZGQgU3RlZmFubydzIFJldmlld2VkLWJ5IHRhZy4NCj4+IC0tLQ0KPj4gKyMgQnVp
bGQgVS1Cb290IGFuZCBURi1BDQo+PiArUlVOIGN1cmwgLWZzU0xPIGh0dHBzOi8vZnRwLmRlbngu
ZGUvcHViL3UtYm9vdC91LWJvb3QtIiRVQk9PVF9WRVJTSU9OIi50YXIuYnoyICYmIFwNCj4+ICsg
ICAgdGFyIHh2ZiB1LWJvb3QtIiRVQk9PVF9WRVJTSU9OIi50YXIuYnoyICYmIFwNCj4+ICsgICAg
Y2QgdS1ib290LSIkVUJPT1RfVkVSU0lPTiIgJiYgXA0KPj4gKyAgICBtYWtlIC1qJChucHJvYykg
Vj0xIHZleHByZXNzX2Z2cF9kZWZjb25maWcgJiYgXA0KPj4gKyAgICBtYWtlIC1qJChucHJvYykg
Vj0xIGFsbCAmJiBcDQo+IERvIHdlIG5lZWQgJ2FsbCc/IENhbid0IHdlIGp1c3QgYnVpbGQgdGFy
Z2V0ICd1LWJvb3QnIGZvciB1LWJvb3QuYmluPw0KDQpJIHRoaW5rIHlvdXIgc3VnZ2VzdGlvbiBt
YWtlcyBzZW5zZSwgYW5kIEkgY2FuIGhhdmUgYSB0cnksIGlmIGNoYW5naW5nIGFsbCB0byB1LWJv
b3Qgd29ya3MsDQpJIHdpbGwgdXNlIHRoYXQgaW4gdjMuDQoNCj4+ICsgICAgY2QgLi4gJiYgXA0K
Pj4gKyAgICBnaXQgY2xvbmUgLS1icmFuY2ggIiRURkFfVkVSU0lPTiIgLS1kZXB0aCAxIGh0dHBz
Oi8vZ2l0LnRydXN0ZWRmaXJtd2FyZS5vcmcvVEYtQS90cnVzdGVkLWZpcm13YXJlLWEuZ2l0ICYm
IFwNCj4+ICsgICAgY2QgdHJ1c3RlZC1maXJtd2FyZS1hICYmIFwNCj4+ICsgICAgY3VybCAtZnNT
TE8gaHR0cHM6Ly9naXQueW9jdG9wcm9qZWN0Lm9yZy9tZXRhLWFybS9wbGFpbi9tZXRhLWFybS1i
c3AvcmVjaXBlcy1ic3AvdHJ1c3RlZC1maXJtd2FyZS1hL2ZpbGVzL2Z2cC1iYXNlLzAwMDEtZmR0
cy1mdnAtYmFzZS1BZGQtc3Rkb3V0LXBhdGgtYW5kLXZpcnRpby1uZXQtYW5kLXJuZy5wYXRjaCBc
DQo+PiArICAgICAgICAgLS1vdXRwdXQgMDAwMS1mZHRzLWZ2cC1iYXNlLUFkZC1zdGRvdXQtcGF0
aC1hbmQtdmlydGlvLW5ldC1hbmQtcm5nLnBhdGNoICYmIFwNCj4+ICsgICAgZ2l0IGNvbmZpZyAt
LWdsb2JhbCB1c2VyLmVtYWlsICJ5b3VAZXhhbXBsZS5jb20iICYmIFwNCj4+ICsgICAgZ2l0IGNv
bmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgIllvdXIgTmFtZSIgJiYgXA0KPiBJZiB0aGlzIGlzIG5l
ZWRlZCBmb3IgZ2l0IGFtLCB5b3UgY291bGQgZ2V0IGF3YXkgdXNpbmcgJ3BhdGNoIC1wMScNCg0K
SG1tbSByaWdodCwgdGhlbiBwcm9iYWJseSB3ZSBjYW4gZXZlbiBub3QgaW5zdGFsbCBnaXQgYW5k
IHVzZSB0aGUgdGFyYmFsbCBpbnN0ZWFkIG9mDQpnaXQgY2xvbmUuDQoNCg0KPj4gKyAgICBnaXQg
YW0gMDAwMS1mZHRzLWZ2cC1iYXNlLUFkZC1zdGRvdXQtcGF0aC1hbmQtdmlydGlvLW5ldC1hbmQt
cm5nLnBhdGNoICYmIFwNCj4+ICsgICAgbWFrZSAtaiQobnByb2MpIERFQlVHPTEgUExBVD1mdnAg
QVJDSD1hYXJjaDY0IEZWUF9EVF9QUkVGSVg9ZnZwLWJhc2UtZ2ljdjMtcHNjaS0xdCBhbGwgJiYg
XA0KPj4gKyAgICBtYWtlIC1qJChucHJvYykgREVCVUc9MSBQTEFUPWZ2cCBBUkNIPWFhcmNoNjQg
RlZQX0RUX1BSRUZJWD1mdnAtYmFzZS1naWN2My1wc2NpLTF0IGZpcCBCTDMzPS4uL3UtYm9vdC0i
JFVCT09UX1ZFUlNJT04iL3UtYm9vdC5iaW4gJiYgXA0KPj4gKyAgICBjcCBidWlsZC9mdnAvZGVi
dWcvYmwxLmJpbiAvICYmIFwNCj4+ICsgICAgY3AgYnVpbGQvZnZwL2RlYnVnL2ZpcC5iaW4gLyAm
JiBcDQo+PiArICAgIGNwIGJ1aWxkL2Z2cC9kZWJ1Zy9mZHRzL2Z2cC1iYXNlLWdpY3YzLXBzY2kt
MXQuZHRiIC8gJiYgXA0KPj4gKyAgICBjZCAvYnVpbGQgJiYgXA0KPj4gKyAgICBybSAtcmYgdS1i
b290LSIkVUJPT1RfVkVSU0lPTiIgdHJ1c3RlZC1maXJtd2FyZS1hDQo+IFlvdSBmb3Jnb3QgdG8g
cmVtb3ZlIHUtYm9vdCB0YXIgZmlsZQ0KDQpvb3BzLCBuaWNlIGNhdGNoLCB0aGFua3MuIFdpbGwg
YWxzbyByZW1vdmUgdGhhdCBpbiB2My4NCg0KPiBPdGhlciB0aGFuIHRoYXQ6DQo+IFJldmlld2Vk
LWJ5OiBNaWNoYWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPg0KDQpUaGFua3MhDQoNClN0
ZWZhbm86IENhbiBJIGtlZXAgeW91ciBSZXZpZXdlZC1ieSB0YWcgYWZ0ZXIgYWRkcmVzc2luZyBN
aWNoYWzigJlzIGNvbW1lbnRzIGFib3ZlPw0KDQpLaW5kIHJlZ2FyZHMsDQpIZW5yeQ0KDQo+IA0K
PiB+TWljaGFsDQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 08:57:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 08:57:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650438.1015951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWg3-00029A-7q; Fri, 08 Dec 2023 08:57:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650438.1015951; Fri, 08 Dec 2023 08:57:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWg3-000293-4X; Fri, 08 Dec 2023 08:57:43 +0000
Received: by outflank-mailman (input) for mailman id 650438;
 Fri, 08 Dec 2023 08:57: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=F8K7=HT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBWg1-0001qG-LO
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 08:57:41 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20607.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::607])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d679bfe5-95a7-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 09:57:39 +0100 (CET)
Received: from DS7PR03CA0012.namprd03.prod.outlook.com (2603:10b6:5:3b8::17)
 by MW6PR12MB7086.namprd12.prod.outlook.com (2603:10b6:303:238::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 08:57:35 +0000
Received: from DS3PEPF000099E1.namprd04.prod.outlook.com
 (2603:10b6:5:3b8:cafe::e1) by DS7PR03CA0012.outlook.office365.com
 (2603:10b6:5:3b8::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28 via Frontend
 Transport; Fri, 8 Dec 2023 08:57:35 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099E1.mail.protection.outlook.com (10.167.17.196) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 08:57: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.34; Fri, 8 Dec
 2023 02:57:34 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 8 Dec
 2023 02:57:34 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Fri, 8 Dec 2023 02:57:32 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d679bfe5-95a7-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NcrhrAY7FtHbANvi7c1WdRJuqgvPmLai31B9abFDSECwMiBlKHZHaiKPW9U9XQyCBiqoQjjJEB0NU0pv9eL7USExWMvz2IJAXXyFTKYg9Y6gd8RjSM+dPHpcp2iDnxCy2qrzmLilYYsfW+AhTSWRK+Wo6K1fxovq9jKVzKSQTBSqh9AQ9IZnOdHOiQULgSGy8WbWilLVd4Seh1yzuGwc8xLRzDcaWNVm2h7/1YVVcRBxCBcZeuMUFHxdL9hjaLSwQqmT4r5D21ysHct02vBHu1r3ViH5nIFVsfIWPPnPVqSfCyO2kdJsP1tAuojNNw+CtFsdXGO77oCjOxpBdqsWyg==
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=XN12JkQGBwSaOfSvP9mZi0zL+J7NZwkhkTthFK1VfDw=;
 b=CWoJcjBWuVMFH8UW50O73dGVqMZXFGzTdQKR7JA3B57RR+Wh0C5uEyQ4EuHpgU/mP4hhv19NQq0Y4CwITzfPcZY72368mv+73MWzTlHpv0q9kSjJdcgRC6OriWnsNetekWGjQRv64vvQrAIkqWJKhMS/HB6u7gg5xiFV0RxQ8TFI/2U5A4ftPVWyslYHGiIWXMZOGHxbNVpYcZt1tx5TMxvOYfvL1fTQSFsGPm+H6syFdjSJ/6m7c5h2ufMZSqXXKFtieLBx91xfzCCng/Rv2Zh5o0gRO9KXgPgE+ic/vYsm8emKTEC7eZb9SzO8xOT4pE/6uuSRswKwttlXap37bg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XN12JkQGBwSaOfSvP9mZi0zL+J7NZwkhkTthFK1VfDw=;
 b=rjSLVMsmsSPGrGW2Yxyayusi7nK1oFyVHqXpijao3JDcJSPoPex2TuDfecLzhfIBAbG6RGwQkmKtBJxNS1xCMirBlrQLBIi2MVE/0Y7Z08LwveP5A61H55AXvQitVghIXl7aB898O2b4CCO8W4ba2cR8SOcwLHfvUd+OHFB3lVM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
Date: Fri, 8 Dec 2023 09:57:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Content-Language: en-US
To: Henry Wang <Henry.Wang@arm.com>, <xen-devel@lists.xenproject.org>
CC: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231208054637.1973424-4-Henry.Wang@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099E1:EE_|MW6PR12MB7086:EE_
X-MS-Office365-Filtering-Correlation-Id: ee6db9da-e341-42ec-916a-08dbf7cbb8ad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	n8ggWu/iAkRveh+PBbC4QR1eAb6PnfjM6iWfdorPfM0BZvLsgCMJOay8VxCYayaE5Y07uEHVkL/uRWLGtntdt57lz9bcN+eI+x2+zFNXCpjy4M4dEaIN+J1vPCugR9q4503GLJT9zjNl/pibv++QgyY2Tr5Eg8iIbTNzZndqpBAlQ7rtYVmARyMuLqn9xVguKYtyg3m1W87KkdX3Bvl250Iho8JqfSK2l1uX8QmvjAHENPItMlSrPBxmo2/7LHXx5UacDG4M6aPfl5WycbH1EQI/fqYLi+xqSr1pAqJ+KKU3/0s62ZYQmrBikWBTkrdP1bfgabfgKgry+hye2L/JKlioh0gvHmOgVxcIWdCoN6EiS/UQDsv1Scwe6Zg3JGUpEGiZpdfPxcnJix1dfz+jx7XudiQ4WBmED3V8NUBIdG5jMfh3IllNO6vWg1M4Ja+4JtwtT7oyYmj5bJtzIpSAgoYl3HJtCGjQsGZajDkEaL/PD8+gVu3mSHPsUiJ8CfhxmJB8c1dR+gWIF+5Z9h8myteRSe0nO0QsYXZWikaTtI8fdELUBI7t/nWG2CpNVcymDZHAOCCL4cJnytGEC1cTtUa0XfWlc9zj2Q9ykylDgAAfeGcfrr+c1vnsQ2+Dh/ClNGSKpVFc8oKOiT2G3rvm5Zh3cO/MSxDmLILoAgVTEZGwaONKagesx5Rzq+IbJOZqCoz6bDZyfKX21SCFSgCmBYyM4TjkuNIpqPdfq0KOUERGKSyv+UdOBPd/X3fNvDWTCKfdKYr+IMsCpCuo/6atimcqxtKrxRiKxjKM2m4/5qEtXwHzggHzUCqcs0s2q4MN
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(39860400002)(376002)(136003)(346002)(230922051799003)(64100799003)(186009)(82310400011)(1800799012)(451199024)(40470700004)(36840700001)(46966006)(82740400003)(110136005)(54906003)(16576012)(31686004)(478600001)(6666004)(316002)(36860700001)(70206006)(70586007)(44832011)(356005)(8936002)(26005)(86362001)(336012)(83380400001)(4326008)(426003)(81166007)(53546011)(40460700003)(8676002)(40480700001)(47076005)(31696002)(2616005)(5660300002)(2906002)(36756003)(41300700001)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 08:57:35.1080
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ee6db9da-e341-42ec-916a-08dbf7cbb8ad
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099E1.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB7086

Hi Henry,

On 08/12/2023 06:46, Henry Wang wrote:
> 
> 
> To interact with the FVP (for example entering the U-Boot shell
> and transferring the files by TFTP), we need to connect the
> corresponding port by the telnet first. Use an expect script to
> simplify the automation of the whole "interacting with FVP" stuff.
> 
> The expect script will firstly detect the IP of the host, then
> connect to the telnet port of the FVP, set the `serverip` and `ipaddr`
> for the TFTP service in the U-Boot shell, and finally boot Xen from
> U-Boot and wait for the expected results by Xen, Dom0 and DomU.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

with 1 question...

> ---
> v2:
> - No change.
> ---
>  .../expect/fvp-base-smoke-dom0-arm64.exp      | 73 +++++++++++++++++++
>  1 file changed, 73 insertions(+)
>  create mode 100755 automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
> 
> diff --git a/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
> new file mode 100755
> index 0000000000..25d9a5f81c
> --- /dev/null
> +++ b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
> @@ -0,0 +1,73 @@
> +#!/usr/bin/expect
> +
> +set timeout 2000
Do we really need such a big timeout (~30 min)?
Looking at your test job, it took 16 mins (quite a lot but I know FVP is slow
+ send_slow slows things down)

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:04:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:04:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650442.1015961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWm8-0003i1-Sx; Fri, 08 Dec 2023 09:04:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650442.1015961; Fri, 08 Dec 2023 09:04:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWm8-0003hu-Ps; Fri, 08 Dec 2023 09:04:00 +0000
Received: by outflank-mailman (input) for mailman id 650442;
 Fri, 08 Dec 2023 09:03: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=Nrto=HT=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1rBWm7-0003ho-Fe
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:03:59 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 (mail-dbaeur03on20612.outbound.protection.outlook.com
 [2a01:111:f400:fe1a::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8c6f853-95a8-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:03:58 +0100 (CET)
Received: from DB3PR06CA0003.eurprd06.prod.outlook.com (2603:10a6:8:1::16) by
 GV1PR08MB7826.eurprd08.prod.outlook.com (2603:10a6:150:5a::19) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.27; Fri, 8 Dec 2023 09:03:53 +0000
Received: from DU6PEPF0000A7E1.eurprd02.prod.outlook.com
 (2603:10a6:8:1:cafe::a5) by DB3PR06CA0003.outlook.office365.com
 (2603:10a6:8:1::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27 via Frontend
 Transport; Fri, 8 Dec 2023 09:03:53 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000A7E1.mail.protection.outlook.com (10.167.8.45) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.23 via Frontend Transport; Fri, 8 Dec 2023 09:03:53 +0000
Received: ("Tessian outbound 385ad2f98d71:v228");
 Fri, 08 Dec 2023 09:03:52 +0000
Received: from ced7b3041b91.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 FF795892-5ED9-4BF1-8AA5-166BB1A5DCF1.1; 
 Fri, 08 Dec 2023 09:03:46 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ced7b3041b91.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 09:03:46 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by GV1PR08MB8083.eurprd08.prod.outlook.com (2603:10a6:150:95::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 09:03:44 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b%6]) with mapi id 15.20.7068.025; Fri, 8 Dec 2023
 09:03: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: b8c6f853-95a8-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=jtk1ZCsfWYCtAgBXberhqRQVCHoX8Xd3FzjbP1zTEJlhDZTU2+DkMqUQR30IazxFvSbZqTiEi5sdZhcB8ZfimvqhcTQim+hwcv4yzWN9fdGE0VSI6Fas75Yk24zdeHnqfzeLq3609G3YlLBneMRW7ib8VQSgBVwclbstQhJJLx2D8jbxNQwCMMyclIFk4F4H6qweF/y3ky/hkAoAxbNXFUgQphOxA1icHexFb0/EDgKecyCSJZai9y+PqfZCs3B3iLqk4iMnJV+EUTDoEjwnIAA5eDTDNQrEsDOB6CMYsdoJNXXDVRqxxKmmnhMINvP7jC0guiY4R0gysKgM54JEeQ==
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=SPTzovDdluwKsIWWrxnQRvgGmk5L+tN9q7m3PFw0eIc=;
 b=heUO+x9VCn1rXTKMZ5WuH0/maaMeNeo7++lezYTM4kFj+nGbL+jW567rIGcpyxIZRIaYJHoY4M5O/+USrB4ZL7zF4QfaZmicKXmmfMk0cdaYStj97T38PO+oRGkFB6BEpTmopVOm007QMbogRLBky8JRf1zG7um6CgeE4MPeeGz61jZBPxibCPOvrnrXhXjGqNUD1x0Y3u2GGiStZE06cD0WxARmpkQZRHErwPrLKQmdeLzW+czMqnhFBfDirZKhTHYKJbG2uSQqS6dUL97GxBxnsfAJ6Pp9s93e37Fq0jW85k1TFjQbSlaXS60tqUfCQjQV6bMoVC9JITkU+J/CBw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SPTzovDdluwKsIWWrxnQRvgGmk5L+tN9q7m3PFw0eIc=;
 b=6YMxfScHdXlaFdGIWzMdQ6Bvj2c/vdR4Ol+ABFXbZYOomiaZPdC4UuV9vnp0+ipZOtlPCgEB8R20r88GuLoKM3BdiBRwjs1hi9riCA/NTeTa3VQiOaXI6IN+wUKaR7PQM4HLKSEvLSkpgKJI33e8Iuv68ATpbDWIeo1WBUazIPk=
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=armh.onmicrosoft.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: e84f0845efe72a2c
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aJAfzmNqDPwUKqp9uGaMrcIr4dX7oUyIrWSwbHC09xHLlkYcdWV4nFOP4TxsBjjAPOtuI5epceOuw5rVrr6NwEf30KYTN+XUkBIoIveviATMYf98yFc8pLgoJjzlbXVFMgbv9dFB3PDJmUlZhc6DjXoFVyd58Hy8bLCL0rL4yzsKCJoGXwObNcDqz6cxm9W9eK09MdLfNMCfmy9ZJGdFBv8tzLmUXtXRkzsk2PKifYVgJTQ8CeKntuIq57o1CR++regSz/vcu8iAXTH3siv21tYSfgEZqem3SmxYopKZb1NFbbdo9iL5pX17BtsWqvGTvqmzKL3Bz3GoI5VLt4YqVQ==
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=SPTzovDdluwKsIWWrxnQRvgGmk5L+tN9q7m3PFw0eIc=;
 b=QUzYOt9z90f5ckBvPUTnmBhKVMkN9AIJE16dXtRKQoenMyMaDN2MYKn03fcMK3U1wyTrqUR9BddjRh6PxAYqocki2ph5V3jgIjXVuos7N9VQp+mUSWhlkxWGD9sCT2gWxJBfj4tdM+qoiNfVhsZOgL7S7YoLB/HSaGGpFggeEA1cAnKV1qN1YIf3ISpgOsoVyEmWKk0Hk9Hw7aKew1BxrC4mKGpBJyNRLTkvwgxyaqpSuisVwHczAaE3+G9ZcJnTgCWq4JTyw+XbIqB5VoGoXJ8mcHWF7pLUK5jp+rI+HZeuYhS4oeMsxmC0S37kZh0NpTlrFWgi/mCjpRsACHLS8A==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SPTzovDdluwKsIWWrxnQRvgGmk5L+tN9q7m3PFw0eIc=;
 b=6YMxfScHdXlaFdGIWzMdQ6Bvj2c/vdR4Ol+ABFXbZYOomiaZPdC4UuV9vnp0+ipZOtlPCgEB8R20r88GuLoKM3BdiBRwjs1hi9riCA/NTeTa3VQiOaXI6IN+wUKaR7PQM4HLKSEvLSkpgKJI33e8Iuv68ATpbDWIeo1WBUazIPk=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>, Ayan Kumar Halder <ayankuma@amd.com>,
	Michal Orzel <michal.orzel@amd.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, "stefano.stabellini@amd.com"
	<stefano.stabellini@amd.com>, "Volodymyr_Babchuk@epam.com"
	<Volodymyr_Babchuk@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Topic: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Index:
 AQHaJIdEbUtN3QkqgUmgAoK4VfjZW7CY8R0AgAAqKQCAAHNEgIAA4yoAgAAJTgCAAAgBgIAAA4YAgAAFeYCAAB5MgIAADfQAgACiKgCAArmeAIAAT08AgAC+b4A=
Date: Fri, 8 Dec 2023 09:03:43 +0000
Message-ID: <C0ADC33B-1966-4D3E-B081-A3AA0C3AE76D@arm.com>
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
 <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
 <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org>
 <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com>
 <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
 <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org>
 <alpine.DEB.2.22.394.2312051503060.110490@ubuntu-linux-20-04-desktop>
 <a4c43652-1fa6-4b42-b751-582cfd6324fe@xen.org>
 <alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2312071341540.1265976@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.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3784:EE_|GV1PR08MB8083:EE_|DU6PEPF0000A7E1:EE_|GV1PR08MB7826:EE_
X-MS-Office365-Filtering-Correlation-Id: 72829e40-7a59-43bc-2c59-08dbf7cc99e6
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 2ZWOVgiOgHjp2j6nEnRxKBZQeaK/2YbD78o561r08p59RVZaM3w97dfFkM7Vr5Y2jlHXKSHJTGCviQej+tobVYNgvEIw/se/v2aROfbxVN1dNF5CsfPIFbsmq9yBzqoP9t6NSTSEN//qritSNqSn4SpfujRjAjYCPPRoLfqAiKv6ts0qkrodKqNgskCTC7iX80i1Lua0xfoWEocHrOczelh/UzzOQAL/eCcaMrZFP0WNuB/j8Y9ZmFwujDZLwbnlDgQLOIuI73iZjIiwzkDxqzYVLEMj+KtGy8bfGVUCDwqWszXE+K+lJpzIzGvfrACdzS20Msd663wpZCHHFL0Wz2O3fUvVT/G8oQhpS09OFIomsSkXHWytzEZBEaWbXr4cKSJKmo8+uwGM16Vdwqx9T7KeWgQ+tuDV51cOEclvP1mbdYhZqT8Bvepn9RBOLkpV7iW9zxp2iho0Aj5x2O/z1f1c4Zj+oApfBK/nj7MtIzf+ZeJ/h9sxz0tMMYOtDrDQM9xGn7n3U0VgiYSBqzHMJ/2Yp0SlThgZXoshPnf0J4frlHaEqP+rmXqWePj0jGitO2q0RcemJ9EcO/839ACcRQu/hGxBPtubN5FUB6icEx6a5OLLToabMuZ37udbNs2M7U1rxfE5+xiWBpduK3f6GQ==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(376002)(346002)(396003)(366004)(136003)(230922051799003)(186009)(451199024)(1800799012)(64100799003)(8936002)(6916009)(83380400001)(36756003)(41300700001)(26005)(6506007)(5660300002)(66556008)(8676002)(66446008)(66946007)(38070700009)(4326008)(316002)(64756008)(86362001)(66476007)(54906003)(6486002)(6512007)(478600001)(33656002)(91956017)(2616005)(2906002)(76116006)(71200400001)(53546011)(122000001)(38100700002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <793E3CF8278F9A4D8EC8B659F8D9A2DB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8083
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:
 DU6PEPF0000A7E1.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3e5fe1c2-c1bf-4b7d-7586-08dbf7cc9442
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	UuMhBNaKFj0Knc7Egmkq/PkKt++WToD3wYYwmMaiJm0tY1PoEyD8hYYeK8iOaQfFJspHvGRPEUyg1DkSK8jeVkJyNP2mZgtSzPfi+55GnqW/0pKcCYcNG6ZXMLPCUBjpGVVMtvnO34QX+RJN2Xw3RFjBTiMnydCy4nBZs3MFiouJbYYObwsTh/eu60HE2sUZqEk9/JWf+U6FsLTnN0I4+KL4S52gVk8fjK9AZ+upqirnIFG6IRncK2gC6nR0zzLRlRQTYVjFBxhIwiwrs2HaoDjkqgb6i+VG23S0OCa0SXTkuN23Q4AK52XLAp65fyjAbhd0Ouy55pN2Yns+pSk6rtpcbJxkY51MkOUa+4hs7PPOAu1JLGd2t6HbnbGSJ3/vg4m72uX4FtlQ1f/q7jsUgwiZtLda0guepS7EL2QIY/etUoyhka3esY/ZfBHwbWQ4ZZ3zthJQrzo8CeZjhGq3k2qTYyedO3hupPn/ezWaB7Su1InktjkjusxP+QpNCNlq+LKS+8oHKzWs1JX2yWSwlddZwni+Y3BNyu81Cq1JVQTVp1UF0GDI0kYXutrq4gj0TEjAmN1wd+8sqUdxDMxKQXyLU7O/3PoFuWIPCKw/i/kHYArHW0Z4LYEIYQIyA2Tus34N3flfLO6Jyd4dypXHBNsIMAqZzMph8fUKDY6Wvja88/K/k3aCXU1EYayUxwiMIE2xJ4GW2AFP3BhnrmrQVAKyqk7ELZFHNfOwjhiIrzEvgugCwZzrALC5nUnt5K0Y
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:(13230031)(4636009)(39860400002)(396003)(136003)(346002)(376002)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(82310400011)(36840700001)(46966006)(40470700004)(86362001)(54906003)(70206006)(70586007)(6506007)(47076005)(2616005)(26005)(33656002)(336012)(83380400001)(36756003)(53546011)(41300700001)(6512007)(36860700001)(478600001)(6486002)(316002)(40480700001)(82740400003)(4326008)(6862004)(8936002)(8676002)(2906002)(5660300002)(356005)(40460700003)(81166007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 09:03:53.0444
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 72829e40-7a59-43bc-2c59-08dbf7cc99e6
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:
	DU6PEPF0000A7E1.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7826

Hi All,

Sorry for coming back late on this thread.

> On 7 Dec 2023, at 22:41, Stefano Stabellini <sstabellini@kernel.org> wrot=
e:
>=20
> On Thu, 7 Dec 2023, Julien Grall wrote:
>> Hi Stefano,
>>=20
>> On 05/12/2023 23:21, Stefano Stabellini wrote:
>>> On Tue, 5 Dec 2023, Julien Grall wrote:
>>>> I agree that crashing a guest is bad, but is lying to the domain reall=
y
>>>> better? The consequence here is not that bad and hopefully it would be
>>>> fairly
>>>> easy to find. But this is not always the case. So I definitely would p=
lace
>>>> a
>>>> half-backed emulation more severe than a guest crash.
>>>=20
>>>=20
>>> I see where Julien is coming from, but I would go with option two:
>>> "emulate DCC the same way as KVM". That's because I don't think we can
>>> get away with crashing the guest in all cases. Although the issue came
>>> up with a Linux guest, it could have been triggered by a proprietary
>>> operating system that we cannot change, and I think Xen should support
>>> running unmodified operating systems.
>>>=20
>>> If we go with a "half-backed emulation" solution, as Julien wrote, then
>>> it is better to be more similar to other hypervisors, that's why I chos=
e
>>> option two instead of option three.
>>>=20
>>> But at the same time I recognize the validity of Julien's words and it
>>> makes me wonder if we should have a KCONFIG option or command line
>>> option to switch the Xen behavior. We could use it to gate all the
>>> "half-backed emulation" we do for compatibility.  Something like:
>>>=20
>>> config PARTIAL_EMULATION
>>>     bool "Partial Emulation"
>>>     ---help---
>>>           Enables partial, not spec compliant, emulation of certain
>>> register
>>>     interfaces (e.g DCC UART) for guest compatibility. If you disable
>>>     this option, Xen will crash the guest if the guest tries to access
>>>     interfaces not fully emulated or virtualized.
>>>=20
>>>     If you enable this option, the guest might misbehave due to non-spe=
c
>>>     compliant emulation done by Xen.
>>=20
>> As I wrote to Ayan on Matrix today, I am not in favor of the emulation. =
Yet, I
>> am not going to oppose (as in Nack it) if the other maintainers agree wi=
th it.
>=20
> Thanks for being flexible
>=20
>=20
>> The KConfig would be nice, the question is whether we want to (security)
>> support such configuration? E.g. could this potentially introduce a secu=
rity
>> issue in the guest?
>=20
> The important question is whether it could introduce a security issue in
> Xen. If we think it wouldn't increase the attack surface significantly
> then I would security support it otherwise not.
>=20
>=20
>> Regarding the  emulation itself, I actually prefer 3 because at least th=
e
>> Linux drivers will be able to bail out rather than trying to use them.
>=20
> I don't have a strong opinion between 2 and 3

Here is my view on it:
- providing a wrong emulation to please guests is not wrong as it might end
up hidding something that will be hard to debug so on that point I agree wi=
th
Julien.
- choosing a solution which might just crash a guest without any other solu=
tion
than recompiling or modifying xen is not something acceptable if we want Xe=
n
to thrive.

So i would suggest the following solution:
- have a Kconfig to surround this code so that "correct" guests can disable=
 it.
- have a command line option to activate this behavior and turn it off by d=
efault.
One encountering the problem will have to explicitly set a command line par=
ameter
so cannot do this without knowing.
- activate the Kconfig option by default and security support it as it is o=
nly active if
a command line parameter is passed.

The Kconfig parameter should be more generic so that this could apply to a =
bunch of
registers we would emulate with RAZ/WI so I am happy with that proposal if =
we say
that this must be activated through a command line option passed to Xen at =
boot.

Regards
Bertrand







From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:05:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:05:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650445.1015971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWnN-0004EA-7m; Fri, 08 Dec 2023 09:05:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650445.1015971; Fri, 08 Dec 2023 09:05:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWnN-0004Du-47; Fri, 08 Dec 2023 09:05:17 +0000
Received: by outflank-mailman (input) for mailman id 650445;
 Fri, 08 Dec 2023 09:05:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBWnM-0004Do-L6
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:05:16 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e6f14675-95a8-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:05:15 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a1d2f89ddabso223534766b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:05:15 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 tq24-20020a170907c51800b009ff783d892esm748159ejc.146.2023.12.08.01.05.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:05:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e6f14675-95a8-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702026315; x=1702631115; 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=IVIPgKFpHWU9O5/5GcUxejZ+BoMGSQGvJcxPnAMgKuo=;
        b=EmBuq8uvKXKjrJGOFhEuWO7KqFiiGb3zoeV3nGlhgL9xDQ++bqkVXeYRtUjy7Yy3/a
         HAf//LfbmQwyShJfFAVlqy5nV6sCqdeXgjGULmj/PCIjai1Go1LQ5hp8ydm5iHY7xUPo
         JqAzcZ++RfpvXJkyFVv3bFd7yNZzGI5ENgUMD2OUFjHRnRkuPlAUQwh3h9Ka25g3t2gD
         7xUAE47Mm6kcOZer3TscJn9pLP3VC559slAml7W/kVHSTEOmJUVG7wlyPslaR9WXdGFa
         v/ZnlV1IE5Dma+8vj8Prdqkm5LyCY2YUHpuXcIvHazE1nDtXkgo+nAOxNuxhilImGISy
         n7uA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702026315; x=1702631115;
        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=IVIPgKFpHWU9O5/5GcUxejZ+BoMGSQGvJcxPnAMgKuo=;
        b=XPSiigmAqpvnE9TyLoN2xDNfpPhzfJfw/sH5ZfqL2o/87d5Ok/3tG5YovqKBDajVOw
         uvlV9vwbYs4DCyCgIkvSTAa0k0kSHwZgUzkvt6YW0aHv1YXLT5+Xw2qxmSrqVOdep0qZ
         Iyhc8WSgeINPIr4WbSBr1DPHl7Av17cmsTNsOYmgFH2FnVqCsEyui56x1g7WgQ6+lKWC
         ljB1YrxWkQ7NPMoMaj7wy0H2S3OBHVkbB3e4sHapMQo8lWewRFQvvZyGn7yiZRgHgRgz
         0NPVr2N7MA9q1aq6MZglFrL0h5wIudRzjIsC3jus3IPZl3iFthXyegiushwQIfoGyXac
         Trmg==
X-Gm-Message-State: AOJu0YzdX3Otkv+bh+B0wgkMP6E8de7EJtVVOeZxoUrQPzv/hcu6FxDL
	rgYoOzLV5t71PwKvxKPSgzY=
X-Google-Smtp-Source: AGHT+IFWQ8wmwd2f7XYGTFZcZVlyzQMfMmBw6zJAtyBXguhZdqNWEp4AWfLlwNqjYRCl0sWd0awdog==
X-Received: by 2002:a17:907:1741:b0:a02:609a:5c6c with SMTP id lf1-20020a170907174100b00a02609a5c6cmr1931594ejc.44.1702026314972;
        Fri, 08 Dec 2023 01:05:14 -0800 (PST)
Message-ID: <cb042ef1c0380e23b252365b0a562534b02b1fa5.camel@gmail.com>
Subject: Re: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
From: Oleksii <oleksii.kurochko@gmail.com>
To: Henry Wang <Henry.Wang@arm.com>, Julien Grall <julien@xen.org>
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>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>
Date: Fri, 08 Dec 2023 11:05:13 +0200
In-Reply-To: <581CA0BA-02BD-4696-A0E3-BE58568C2479@arm.com>
References: <20231207162036.1921323-1-Henry.Wang@arm.com>
	 <90575ebd-4b09-47bd-a4ee-2f081020b2ad@xen.org>
	 <38ed531570ef67b6b1f95ba5fa44bb37821bca9e.camel@gmail.com>
	 <581CA0BA-02BD-4696-A0E3-BE58568C2479@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 23:59 +0000, Henry Wang wrote:
> Hi Julien, Oleksii,
>=20
> > On Dec 8, 2023, at 05:09, Oleksii <oleksii.kurochko@gmail.com>
> > wrote:
> >=20
> > Hi Julien and Henry,
> >=20
> > On Thu, 2023-12-07 at 18:46 +0000, Julien Grall wrote:
> > > Hi,
> > >=20
> > > On 07/12/2023 16:20, Henry Wang wrote:
> > > > I've finished the opportunity to do two releases (4.17 and
> > > > 4.18)
> > > > and Oleksii Kurochko has volunteered to be the next release
> > > > manager.
> > >=20
> > > Henry, thanks for your time as release manager.
>=20
> Thank you Julien for your kind support as the release technician!
>=20
> > > Oleksii, thanks for stepping up and good luck for the role!
> > Thank you very much.
> >=20
> > Just one question: Is it necessary to provide my ACK?
>=20
> Oleksii: Yes please, your ack means you are happy with taking the
> role.
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> Also, any thing that you need, please don=E2=80=99t hesitate to reach out=
. I
> will stick
> to the community (more as the code contributor though) so I will be
> more
> than happy to help.
Thanks a lot.

>=20
> > > > Hand over the role to him by changing the maintainership of the
> > > > CHANGELOG.md.
> > > >=20
> > > > Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> > >=20
> > > Acked-by: Julien Grall <jgrall@amazon.com>
> > >=20
> > > I didn't hear any objection during the community call. But I will
> > > give=20
> > > until Tuesday morning (UK time) just in case. If there are none,
> > > then
> > > I=20
> > > will commit it.
>=20
>=20
~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:05:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:05:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650446.1015981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWnT-0004W0-IN; Fri, 08 Dec 2023 09:05:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650446.1015981; Fri, 08 Dec 2023 09:05:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWnT-0004Vr-EW; Fri, 08 Dec 2023 09:05:23 +0000
Received: by outflank-mailman (input) for mailman id 650446;
 Fri, 08 Dec 2023 09:05:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBWnR-0004V6-V5
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:05:22 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2061c.outbound.protection.outlook.com
 [2a01:111:f400:7e1a::61c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e921e129-95a8-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:05:19 +0100 (CET)
Received: from AS9PR04CA0149.eurprd04.prod.outlook.com (2603:10a6:20b:48a::22)
 by VI0PR08MB10741.eurprd08.prod.outlook.com (2603:10a6:800:212::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25; Fri, 8 Dec
 2023 09:05:16 +0000
Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com
 (2603:10a6:20b:48a:cafe::e8) by AS9PR04CA0149.outlook.office365.com
 (2603:10a6:20b:48a::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27 via Frontend
 Transport; Fri, 8 Dec 2023 09:05:16 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 09:05:16 +0000
Received: ("Tessian outbound 5d213238733f:v228");
 Fri, 08 Dec 2023 09:05:16 +0000
Received: from 812f2fcc7c99.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 181E3887-D715-4A51-88F1-8CF810E60820.1; 
 Fri, 08 Dec 2023 09:05:09 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 812f2fcc7c99.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 09:05:09 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by DU0PR08MB10325.eurprd08.prod.outlook.com (2603:10a6:10:471::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 09:05:07 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 09:05: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: e921e129-95a8-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=MaVXAC9xCKVQS6fwxnbd1BxrtN+5FsEWG0CthMsNGczLoj0SpxgM9zx8IwGRAHuQ07MzPPbooGS6xmqsLiHgKvPgH2qy2UL0quW0eqs6/b5NEdWxWGaEfFbzCkRX0p/+7iyUBw9/AB/SNDFoGqdU0W6U2oiIzeGJQRJdG5UiMKzcqh6b2mPsKJ7MmdfMORqmDi2XjXc8mKQTmsAVnqlGGu6GBiTUrK06Mz8EgxBHTrnbz5LcLJc76qz4te9LuJc/r0LL0jY3TVUrWoRvsISx/R59HC636NLVz8aN7azN1FiJoRH2KY9nRp9wi0V2w/vI2Ohlv+OGOgq0856k5NvsDQ==
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=uG8wieN9a2R+nD+GSP5TqEbozMuXdUaOHljYikQtWZM=;
 b=RmWYN/Kgu2Nz1L/pwfQ4zF0PNkypNgjPpPFADiuCyCNp6Pi5/ViyzXmr4gnIGkUCqwJ1eKsRMUPKx8J6yH3BtHTGeF0wo5K1koJwu6sfQ9lETozq2wJQbC7/FBcnHF4EeVFo81oEktyIgHig5ahOpxn0sS7+WLfF4gbVU3hJ5mkDDyavCVy3F2rxvy80t46f1vsUgxGtnOq/GpzYQqdqorvdiuNujfFDFrNDYBYM2HuC/DMOH2sAMEwCSjmckZS5EIIXcSuxJohAzboXbyglmXPqWvVod8tSRLBrQhKbkKCkzGuwxOHzb3c2kLCUK/XFyKXT0VFDcp1rr1FyALvVxw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uG8wieN9a2R+nD+GSP5TqEbozMuXdUaOHljYikQtWZM=;
 b=2kkxsMlwlSeTGCd4DsS4+T2Vf7FcUcxhyWlELqVjy8Z0TsQ+cF4o2/B5ZtA9QGFh2mt6KJz8AUooDcWs4076jWsO8Iv3HlxFQcbl/EDgt56Z4zhDQMEV+keHZPp10qf2BXybzUA6b4qZKBXEOZsaglntlCl9Aze0+ngUglHEQAY=
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=armh.onmicrosoft.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: be2605d3e5835d29
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FK189mmTq3bgXRhNTyvY/4mOu3o0twPQjrg1iXcfl9nSG2j5b9DWLAjMv1TNLJI34iTTJNMGflZxDBpJGfZ3j1jiwnifhIeoIAWcxFK9U5dSsFcL5BJR17BPmDMqLbLlfAKX/QgWQiFkg2W9EAVu3l7ixRQMEmP6GnSZ8peGOWatxcJL6cdC5rFL6qChzdVZB/Zw3SQzEWsxjddSGAxNIBWjpWICan6WWOiMG7LTzV438fmyv4T+734h9nS91uuzHacKMB8j1dVTN7eoCX9Qqxm7EhVDeKDnV4/+XtA5LbnKJAhECWNzZsdBNMb+IsGa0ohmGb9gNUjlZcsC4ltxJA==
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=uG8wieN9a2R+nD+GSP5TqEbozMuXdUaOHljYikQtWZM=;
 b=mU9J/RaYOjOIjXZvpE22wdXyn6YFQkTsmsAASkWXlJ0/KlZAKSqsI95uBUR3x4P/wysEVLLqLZYUw9bCIQdPSWCYyh5TIolNFPDlQ/nWzcUdEJpqrurL7p87cLa73Xi/ZEVOZZL8MFBQ8yKP6cL+VMBcGIQ03lGmvM9CkET4NUQkv4mpja8NGkIP6taseqOm45NNrgEAWcd8YhUkSUMHP2RLjm5aFBV5mq1Xz4ag2tA/sZA1fkb1/XjFZtIyMv0tGzraCtlq9BxpYSoG8jNUsDH2Zs9hG7qS4NPrqtlk1zaxkrQ0lYc+iy2UYI5Kol8/bmL2c0EsI438QD8gD86/xg==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uG8wieN9a2R+nD+GSP5TqEbozMuXdUaOHljYikQtWZM=;
 b=2kkxsMlwlSeTGCd4DsS4+T2Vf7FcUcxhyWlELqVjy8Z0TsQ+cF4o2/B5ZtA9QGFh2mt6KJz8AUooDcWs4076jWsO8Iv3HlxFQcbl/EDgt56Z4zhDQMEV+keHZPp10qf2BXybzUA6b4qZKBXEOZsaglntlCl9Aze0+ngUglHEQAY=
From: Henry Wang <Henry.Wang@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Topic: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Index: AQHaKZoAVIHO2rCYDECWUL8sUR2sfLCfFe6AgAACFwA=
Date: Fri, 8 Dec 2023 09:05:07 +0000
Message-ID: <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
 <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
In-Reply-To: <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|DU0PR08MB10325:EE_|AM4PEPF00027A65:EE_|VI0PR08MB10741:EE_
X-MS-Office365-Filtering-Correlation-Id: 1b6a1a45-411c-473a-0d31-08dbf7cccb8c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 xQCeZrr/5NO0PWiLqLnYGQMjf/5sebQTNgq65cmv+GEapLsJ5mWgeCX+0yC0o8Cf4ILQl9G+MVTKgxkHKpPljBtPOtQynf/krf6fU9ZMx3lT2KPi62r0+dXgcmTn0rkYhvf0f7HtR1mvbg7Q87+xNcDkV3y5xC6wkamQFO/5zBsF4bX48e/JMvUF4kqFU/92UegaT/8g4JUJ/AzYZ8hHqIp+JT7626ziioGVjekUZSc+J2Cuy+brsVBMiIqdFykygO0gQIGa2YNTLB24I0BvdW46Q+fuWQxC6gUUlA0Plz+eDVjpqoInBr3XR/ex9ysA2WywAGmIFU6iBsfYysp4p105F7o9uVGWhBXnLcxvnvOPo+aRcIOznYkqWTNfMiGBarXqNcUEumLNAzw+btwXbfp2bjoZty6CqP3SPGNoeQLUqzVjMeYALbL5bel65jIEWqNXiZicayHkN21Ixt4jLVtjGd1qFmb05WlReNwbDQucO+PdziZPV+qEOC4nn8ZiO4PksD0nCd6rnVaOqQNrsyHdVOr+auxtXjrUg3DN30WEqW9KkRDeWYGdKpV3qMpjaTuKUubCNr6DQjDC2srINekylAVu6btCvKYz0JDjO4iNNlVI+yF5fvSaxmLuZOOmFIqz+H5Qgtd7gLY//9c0mg==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(136003)(366004)(39860400002)(396003)(230922051799003)(1800799012)(64100799003)(451199024)(186009)(122000001)(66446008)(76116006)(64756008)(66946007)(66476007)(6916009)(54906003)(91956017)(66556008)(5660300002)(316002)(33656002)(83380400001)(2906002)(478600001)(6486002)(71200400001)(8936002)(4326008)(8676002)(38100700002)(86362001)(6506007)(53546011)(6512007)(2616005)(26005)(36756003)(41300700001)(38070700009)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <2C7C778B5E4555409405E15F2DADF7D7@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB10325
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:
 AM4PEPF00027A65.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	84364dea-8cc4-4dad-71bf-08dbf7ccc648
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NYpVKkL/7KKMdFboSA3EcyULf6bA2m2bd+4r9M9eljbcC29huOP0Iwsl+HyTtrpoXS75caCqe9i1gxJFlPIfGV2ij/RjGM1xyJSZLe4KrgmEaRlaZpgjmCfcw0J0Bgdf/J9RStx4OFx5WG5H1aNOTWhTVCWdDfwIxXr5soS4p7Nb5yz0Htn5IwtJ85vl98w7sQFnOg6pk5MBVac/e2Wi5fbvyWa70keRDTdS853bRpd37vgFZPo0eZ2fHkfnpArjhNFz57Kip6ji3WBBlVVExV4GAXuHrLcJqRDnyuDOPMIk28/9v1Cq7fU8Y5QlsQKljv5yvC7thiYSZ6b1SB50bFMFpdHeRUO2ZaEQ6N0FvpZF/87qUQGIFjtQt1AOZArW4IPu+F28j9ic8GWf7QAKlgEnsnsGCOsHeUtDA66lkEHYvPkx9WMXUA2hpT3qR0b89HXKjWwwfPIx2z+rOqGXYiRgS9ENvik4+lXCWmoQJBDdZ5rMilCPUuwVGszdpn8u03VzjtfWjSLLG+fDKdJfHRIupk+lgzHLo5bwIs4Jv2bqLPfnUY416F8DUHe0LRIQR1eKgG0EKW6aFaYJpO3YRlPxqn05z55CkFxvSraHNk3BnkvrgJnkJsT+9N2/ZwNGVkv9C92F8FJe62SVcxcjiblXkrZGv9jCZtuMRdw0Lu2fIPp2FndOvKuoVAh8O/CqDPVLcJst5SUcYiosE6Oxnx/M3bBmEmwG356bNqWJ0jByou9d1qQGm+mr6dpcQHs6
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:(13230031)(4636009)(39860400002)(376002)(396003)(136003)(346002)(230922051799003)(82310400011)(451199024)(64100799003)(186009)(1800799012)(46966006)(36840700001)(40470700004)(5660300002)(6506007)(2906002)(53546011)(40460700003)(478600001)(6486002)(6862004)(4326008)(8936002)(8676002)(86362001)(54906003)(316002)(70206006)(70586007)(33656002)(336012)(82740400003)(36756003)(83380400001)(40480700001)(26005)(47076005)(81166007)(356005)(6512007)(36860700001)(41300700001)(2616005);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 09:05:16.2930
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b6a1a45-411c-473a-0d31-08dbf7cccb8c
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:
	AM4PEPF00027A65.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10741

SGkgTWljaGFsLA0KDQo+IE9uIERlYyA4LCAyMDIzLCBhdCAxNjo1NywgTWljaGFsIE9yemVsIDxt
aWNoYWwub3J6ZWxAYW1kLmNvbT4gd3JvdGU6DQo+IA0KPiBIaSBIZW5yeSwNCj4gDQo+IE9uIDA4
LzEyLzIwMjMgMDY6NDYsIEhlbnJ5IFdhbmcgd3JvdGU6DQo+PiANCj4+IA0KPj4gVG8gaW50ZXJh
Y3Qgd2l0aCB0aGUgRlZQIChmb3IgZXhhbXBsZSBlbnRlcmluZyB0aGUgVS1Cb290IHNoZWxsDQo+
PiBhbmQgdHJhbnNmZXJyaW5nIHRoZSBmaWxlcyBieSBURlRQKSwgd2UgbmVlZCB0byBjb25uZWN0
IHRoZQ0KPj4gY29ycmVzcG9uZGluZyBwb3J0IGJ5IHRoZSB0ZWxuZXQgZmlyc3QuIFVzZSBhbiBl
eHBlY3Qgc2NyaXB0IHRvDQo+PiBzaW1wbGlmeSB0aGUgYXV0b21hdGlvbiBvZiB0aGUgd2hvbGUg
ImludGVyYWN0aW5nIHdpdGggRlZQIiBzdHVmZi4NCj4+IA0KPj4gVGhlIGV4cGVjdCBzY3JpcHQg
d2lsbCBmaXJzdGx5IGRldGVjdCB0aGUgSVAgb2YgdGhlIGhvc3QsIHRoZW4NCj4+IGNvbm5lY3Qg
dG8gdGhlIHRlbG5ldCBwb3J0IG9mIHRoZSBGVlAsIHNldCB0aGUgYHNlcnZlcmlwYCBhbmQgYGlw
YWRkcmANCj4+IGZvciB0aGUgVEZUUCBzZXJ2aWNlIGluIHRoZSBVLUJvb3Qgc2hlbGwsIGFuZCBm
aW5hbGx5IGJvb3QgWGVuIGZyb20NCj4+IFUtQm9vdCBhbmQgd2FpdCBmb3IgdGhlIGV4cGVjdGVk
IHJlc3VsdHMgYnkgWGVuLCBEb20wIGFuZCBEb21VLg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBI
ZW5yeSBXYW5nIDxIZW5yeS5XYW5nQGFybS5jb20+DQo+IFJldmlld2VkLWJ5OiBNaWNoYWwgT3J6
ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPg0KDQpUaGFua3MhDQoNCj4gd2l0aCAxIHF1ZXN0aW9u
Li4uDQo+IA0KPj4gLS0tDQo+PiB2MjoNCj4+IC0gTm8gY2hhbmdlLg0KPj4gLS0tDQo+PiAuLi4v
ZXhwZWN0L2Z2cC1iYXNlLXNtb2tlLWRvbTAtYXJtNjQuZXhwICAgICAgfCA3MyArKysrKysrKysr
KysrKysrKysrDQo+PiAxIGZpbGUgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKQ0KPj4gY3JlYXRl
IG1vZGUgMTAwNzU1IGF1dG9tYXRpb24vc2NyaXB0cy9leHBlY3QvZnZwLWJhc2Utc21va2UtZG9t
MC1hcm02NC5leHANCj4+IA0KPj4gZGlmZiAtLWdpdCBhL2F1dG9tYXRpb24vc2NyaXB0cy9leHBl
Y3QvZnZwLWJhc2Utc21va2UtZG9tMC1hcm02NC5leHAgYi9hdXRvbWF0aW9uL3NjcmlwdHMvZXhw
ZWN0L2Z2cC1iYXNlLXNtb2tlLWRvbTAtYXJtNjQuZXhwDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDc1
NQ0KPj4gaW5kZXggMDAwMDAwMDAwMC4uMjVkOWE1ZjgxYw0KPj4gLS0tIC9kZXYvbnVsbA0KPj4g
KysrIGIvYXV0b21hdGlvbi9zY3JpcHRzL2V4cGVjdC9mdnAtYmFzZS1zbW9rZS1kb20wLWFybTY0
LmV4cA0KPj4gQEAgLTAsMCArMSw3MyBAQA0KPj4gKyMhL3Vzci9iaW4vZXhwZWN0DQo+PiArDQo+
PiArc2V0IHRpbWVvdXQgMjAwMA0KPiBEbyB3ZSByZWFsbHkgbmVlZCBzdWNoIGEgYmlnIHRpbWVv
dXQgKH4zMCBtaW4pPw0KPiBMb29raW5nIGF0IHlvdXIgdGVzdCBqb2IsIGl0IHRvb2sgMTYgbWlu
cyAocXVpdGUgYSBsb3QgYnV0IEkga25vdyBGVlAgaXMgc2xvdw0KPiArIHNlbmRfc2xvdyBzbG93
cyB0aGluZ3MgZG93bikNCg0KVGhpcyBpcyBhIHJlYWxseSBnb29kIHF1ZXN0aW9uLiBJIGRpZCBo
YXZlIHRoZSBzYW1lIHF1ZXN0aW9uIHdoaWxlIHdvcmtpbmcgb24NCnRoZSBuZWdhdGl2ZSB0ZXN0
IHRvZGF5LiBUaGUgdGltZW91dCAyMDAwIGluZGVlZCB3aWxsIGZhaWwgdGhlIGpvYiBhdCBhYm91
dCAzMG1pbiwNCmFuZCB3YWl0aW5nIGZvciBpdCBpcyBpbmRlZWQgbm90IHJlYWxseSBwbGVhc2Fu
dC4NCg0KQnV0IG15IHNlY29uZCB0aG91Z2h0IHdvdWxkIGJlIC0gZnJvbSBteSBvYnNlcnZhdGlv
biwgdGhlIG92ZXJhbGwgdGltZSBub3cNCndvdWxkIHZhcnkgYmV0d2VlbiAxNW1pbiB+IDIwbWlu
LCBhbmQgaGF2aW5nIGEgMTBtaW4gbWFyZ2luIGlzIG5vdCB0aGF0IGNyYXp5DQpnaXZlbiB0aGF0
IHdlIHByb2JhYmx5IHdpbGwgZG8gbW9yZSB0ZXN0aW5nIGZyb20gdGhlIGpvYiBpbiB0aGUgZnV0
dXJlLCBhbmQgaWYgdGhlDQpHaXRMYWIgQXJtIHdvcmtlciBpcyBoaWdoIGxvYWRlZCwgRlZQIHdp
bGwgcHJvYmFibHkgYmVjb21lIHNsb3dlci4gQW5kIG5vcm1hbGx5DQp3ZSBkb27igJl0IGV2ZW4g
dHJpZ2dlciB0aGUgdGltZW91dCBhcyB0aGUgam9iIHdpbGwgbm9ybWFsbHkgcGFzcy4gU28gSSBk
ZWNpZGVkDQp0byBrZWVwIHRoaXMuDQoNCk1pbmQgc2hhcmluZyB5b3VyIHRob3VnaHRzIGFib3V0
IHRoZSBiZXR0ZXIgdmFsdWUgb2YgdGhlIHRpbWVvdXQ/IFByb2JhYmx5IDI1bWluPw0KDQpLaW5k
IHJlZ2FyZHMsDQpIZW5yeQ0KDQo+IA0KPiB+TWljaGFsDQo+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:07:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:07:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650451.1015991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWpV-0005zL-UC; Fri, 08 Dec 2023 09:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650451.1015991; Fri, 08 Dec 2023 09: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 1rBWpV-0005zE-RG; Fri, 08 Dec 2023 09:07:29 +0000
Received: by outflank-mailman (input) for mailman id 650451;
 Fri, 08 Dec 2023 09: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=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBWpU-0005z4-6f
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:07:28 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35214780-95a9-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:07:27 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-54d0ae6cf20so2749286a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:07:27 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 ub14-20020a170907c80e00b00a1da5d9a602sm741764ejc.138.2023.12.08.01.07.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:07:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35214780-95a9-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702026446; x=1702631246; 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=aAomrijJiYuVri6r3XHjjZD4iDTaA/LRqa6d89jOE9M=;
        b=VOa96bWH6KBUzsAv0+beBSRYbYMHIMNyl6KwAshUkJlnHecO44FTNZXGxSDa63IkvV
         uZ9XYyVJEjRaeG79JU/N0g8U+oTkCs5K0VClFFOp98OQ4FISPOWMYv998eE/NYYFzmE2
         +B9MvsJLqKZ4MZeCGHcsHO7jnE//kVOBjBdClOsvDMNnSeuPilK05Fyo2Iwd2hqYulXm
         ooH24SgyDc/TVi7OYjNdVVU1Ttu0dr/AN5nEZQZbhxonghe32/2hYZ3ZFslhnHFMvIGE
         rgM6pc9VPovwvYWmwZANilkOTdywWpk2vRGY3RLbNTqsecuEZcKJauuyZGuQkHW4EkSj
         Hl3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702026446; x=1702631246;
        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=aAomrijJiYuVri6r3XHjjZD4iDTaA/LRqa6d89jOE9M=;
        b=Wz7JdPxOfI9Gtf7voo/Xa5FndKd53v2KnAQEOCSWJMnkPnfL9BB6Xr3y+MNHpiL413
         jhe7syafCLZSrVCJOrCNiUPrJ2nE2Dgrq655XrytymDh50v5lUWY1lpkF0m7e1EKcZuG
         YB/OihknoXZFV1PGULIQv0jBcIplVsQvJR89FiJ5w+vlzvxXAFKMPZhzv1RQXFJkDhQS
         rsXkXona3KEyvqMIX6LLVUkVQZQByuvdJWF1zqX44FbedZBDwlqnUma9Ixzs9vOP0uPw
         OwGWuSgPb7o+bgmBZGrxtBqqTF5UOVpKf+KcTrCgG68n1FgaC2b7RYDYYbfM82gOjgfN
         n3Cw==
X-Gm-Message-State: AOJu0YzPl7+0Hq/YhGTzdxS2O5kgVcHooBDgUrfWF73xy6EOQBxfo45q
	AfewGWZnDVw+OwjC5jekU/w=
X-Google-Smtp-Source: AGHT+IF6I9L19ExUsWlMK22PYmsM0ehUWGmSDYAbjQQfuM6aCxwKKVLJTeiH2evV0dJhOpJPkkoW0w==
X-Received: by 2002:a17:906:1091:b0:a1f:612a:d3b5 with SMTP id u17-20020a170906109100b00a1f612ad3b5mr501085eju.141.1702026446271;
        Fri, 08 Dec 2023 01:07:26 -0800 (PST)
Message-ID: <94dd1111d140b8554d58440e8445f645b3c4097a.camel@gmail.com>
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG
 for randconfig
From: Oleksii <oleksii.kurochko@gmail.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org,  George Dunlap <george.dunlap@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,  Wei Liu
 <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
Date: Fri, 08 Dec 2023 11:07:25 +0200
In-Reply-To: <alpine.DEB.2.22.394.2312071659210.1265976@ubuntu-linux-20-04-desktop>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>
	  <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
	  <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
	 <6e435d2b4772e75544e9201bcfbe00e5cf5eab6e.camel@gmail.com>
	 <alpine.DEB.2.22.394.2312071659210.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 17:01 -0800, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Oleksii wrote:
> > On Thu, 2023-12-07 at 20:17 +0000, Andrew Cooper wrote:
> > > On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
> > > > ARCH_FIXED_CONFIG is required in the case of randconfig
> > > > and CI for configs that aren't ready or are not
> > > > supposed to be implemented for specific architecture.
> > > > These configs should always be disabled to prevent randconfig
> > > > related tests from failing.
> > > >=20
> > > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > > ---
> > > > =C2=A0xen/Makefile | 5 ++++-
> > > > =C2=A01 file changed, 4 insertions(+), 1 deletion(-)
> > > >=20
> > > > diff --git a/xen/Makefile b/xen/Makefile
> > > > index ca571103c8..8ae8fe1480 100644
> > > > --- a/xen/Makefile
> > > > +++ b/xen/Makefile
> > > > @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
> > > > =C2=A0# *config targets only - make sure prerequisites are updated,
> > > > and
> > > > descend
> > > > =C2=A0# in tools/kconfig to make the *config target
> > > > =C2=A0
> > > > +ARCH_FORCED_CONFIG :=3D
> > > > $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
> > > > +
> > > > =C2=A0# Create a file for KCONFIG_ALLCONFIG which depends on the
> > > > environment.
> > > > =C2=A0# This will be use by kconfig targets
> > > > allyesconfig/allmodconfig/allnoconfig/randconfig
> > > > =C2=A0filechk_kconfig_allconfig =3D \
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)=
), echo
> > > > 'CONFIG_XSM_FLASK_POLICY=3Dn';) \
> > > > -=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCON=
FIG);) \
> > > > +=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCON=
FIG); \
> > > > +=C2=A0=C2=A0=C2=A0 $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat
> > > > $(ARCH_FORCED_CONFIG);) ) \
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 :
> > > > =C2=A0
> > > > =C2=A0.allconfig.tmp: FORCE
> > >=20
> > > We already have infrastructure for this.=C2=A0 What's wrong with
> > > EXTRA_FIXED_RANDCONFIG?
> > Everything is fine; I don't know why there was only an issue with
> > CONFIG_GRANT_TABLE on PPC. On the RISC-V side, there were more
> > configs
> > issues, prompting me to include all the configurations not
> > implemented
> > for RISC-V in EXTRA_FIXED_RANDCONFIG. You can find the added
> > configurations in this commit:
> > https://lore.kernel.org/xen-devel/b4e85f8f58787b4d179022973ce25673d6b56=
e36.1700761381.git.oleksii.kurochko@gmail.com/#Z31automation:gitlab-ci:buil=
d.yaml
> >=20
> > One challenge is that the same configurations need to be added
> > multiple
> > times for each build test using randconfig.
>=20
> That's a lot of extra configs to add. Could you use a yaml anchor or
> a
> .something to include? So that you define the full list only once at
> the
> top of the file and then reuse it everywhere as needed.
I didn't know that it work. If there is such options, I think it can be
a solution.

Thanks. I'll try.

>=20
>=20
> > Another reason for this approach is a suggestion from Jan (probably
> > I
> > misunderstood it), who proposed using a template to instruct
> > randconfig
> > not to modify currently unnecessary configurations. You can find
> > the
> > suggestion and discussion here:
> > https://lore.kernel.org/xen-devel/008d0c66-6816-4d12-9e1f-1878e982f9fc@=
suse.com/
> >=20
> > Perhaps we could enhance the build script to fetch "fixed" configs
> > from
> > the architecture-specific fixed-defconfig instead of modifying the
> > Makefile directly.
>=20
> Sorry I missed the original thread somehow. Please use "automation"
> as
> subject line tag for automation patches.
Sure. I'll do next time.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:11:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:11:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650457.1016001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWtl-0008Dz-EU; Fri, 08 Dec 2023 09:11:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650457.1016001; Fri, 08 Dec 2023 09:11:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBWtl-0008Ds-BX; Fri, 08 Dec 2023 09:11:53 +0000
Received: by outflank-mailman (input) for mailman id 650457;
 Fri, 08 Dec 2023 09:11:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F8K7=HT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBWtj-0008Dm-Db
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:11:51 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20630.outbound.protection.outlook.com
 [2a01:111:f400:7e8a::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1534b87-95a9-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:11:49 +0100 (CET)
Received: from CYXPR03CA0050.namprd03.prod.outlook.com (2603:10b6:930:d1::15)
 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.7068.28; Fri, 8 Dec
 2023 09:11:46 +0000
Received: from CY4PEPF0000EE34.namprd05.prod.outlook.com
 (2603:10b6:930:d1:cafe::2c) by CYXPR03CA0050.outlook.office365.com
 (2603:10b6:930:d1::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.29 via Frontend
 Transport; Fri, 8 Dec 2023 09:11:46 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE34.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.7068.20 via Frontend Transport; Fri, 8 Dec 2023 09:11:45 +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.34; Fri, 8 Dec
 2023 03:11:45 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 8 Dec
 2023 03:11:44 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Fri, 8 Dec 2023 03:11:43 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1534b87-95a9-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=khMC9aDOruLLa5F/IqaKKIfwX5s0+mUYi22s4z2TVoG0lB8kGBZAUXeEEuHAta8UsfmHxsu0dR55CAAwRjPnMjMfFXOcRk2NneZU8n2d8n8WULPT/4Yog/DYS5VLN+GWZsdTRjHmLmeLX56mzZlPLx9O6PTvAGlzeUbUzytuQBBFHGfzr4qnEA0yYX+psUC1yvZ4dMvy4729VnpTP89k+VwIauPsnf/UjRTMjC5k3J7K8H4xr1cLvdh8b8W8csVU5okIQC0veH6qyOg6Pg8UrwIt/cWKGILwkWPpOBHLm6qWbcTaskXMsHEGrqqln0Wlc1aK+wLCOcXY/2PstTveBA==
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=v3546FDg0OybIYPKSTH+XvX3nSuAMux9QhzEIe4NfNU=;
 b=cJFORTYr+atSpB+bDMuPBDIN2Off/IRI7Y9xaHE5M1CyHmcMfDgfR/XMpBzks0aem1JUat0TovG6EajDRF5/4X2gUd6EdqUbu9+a/9Fl6WBSQwAQm703PFX6y9y2D1nUbCQPN+WuAokPz2gVnUHIrFDFXWsK1BcMr0UVxXnx86eL6FYzR4cnUxnQZ+gJ2W9uUtDwQhR5ybDBtGkEN5KjsB5pmDxnXFTvwkF+IhLN6iAJ8r9hBAB2vIS7vizKulds5rNXFjDioOpaQTD3rnYIt8BLLhOa9Lw7G0AUY1Lc99sZH8lhoYJFgSx8sCbQkWINOi2daDXKHqFrb33anYhozw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v3546FDg0OybIYPKSTH+XvX3nSuAMux9QhzEIe4NfNU=;
 b=EAxPVX7nD7jplbnjUUlGakNZqpwPQ3vPHx5vTg4vDl8l+zVgEzbg/eFP6GNE1+BjBisMjWwmi1T5cSZPsw9avgl6v7p9ntqnIA0isjZ88fcFtPFDiB/JJGbFB0yLbZPrrQVbPLyJS/+ABrOJrQFEhqRkqbRKB0FLjqMw27DutrQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
Date: Fri, 8 Dec 2023 10:11:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Content-Language: en-US
To: Henry Wang <Henry.Wang@arm.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei
 Chen <Wei.Chen@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
 <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
 <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE34:EE_|MW4PR12MB7120:EE_
X-MS-Office365-Filtering-Correlation-Id: 6408146e-407d-487a-0e73-08dbf7cdb3bf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	I+DGZMV+MNlaK+06Q4s+S31b+f3TSkJlz+cDbLUhdcyXAt0PTN/OWdx2/ydgsMUOP4g+14i+BFzkC3USO4+RIzxYHcHJTKLv1t0nGzh4aJ7gbEVqnwwF+fxDbe6q+sdeGv4M3psS+oQBBBEh7sawYR/bQVp7g8DEqdWYnTdf0LNHqnZo6Gmm+PULMWU6JxQw5nJnOA/zI6nnoNgwiZX4ItbAIpvJzPkAl9qXLXo0gB4FCwamJYsj0yf99UvRo0YnOtDLhFiTB+l2+nCdrSG0t8Ozxs6uIvSRl5nTuS6kdYgh7Rbiimefj3RpgLunmUOwEj0UQPoJG/Ip7xziRnBjdf0WjSCfykxDc2WzMU9gDq9wBxaERSee2mzav1Gw2kou5ZMBr/a+VoLPPHsdjjIWqIBKC+FwotwLhJq9ZG0kyj0fFLGizflJXy9TRNKuuBKFHU8Zv+ph5619mg5V0Ixxg9gKsvClqEX5DXU0RNflR0nwjg4KOdj19ARNr9IuDn7H7C9k5HhgxD/6eoMID3XStu5TzKs/1ux2EbwkvwKuOvS22Z5RDzTwFIyRiIK8So+717MFlBiynHd286tWtJ80j4P0ogNOZo9lVvz+J8m9dDdm+BvMebxlv6IT3wGiLyPE0Bsa3t/PP7gzgOIP3sYuT8bfKCzPblpnzVr2D3hZMd0gzvdadxeY/oO0lnk66O2rswW1jeMZYSStM97nsI8LUdcz1ihZVWPUY3PWTHE9oXPZzsL/zXjainoXqpPqrWUggXcNdsZnl8VL7/QjhEm/n/WhNgnUpntvRPzfcFJF5VHA1mvOrvuuDK0KyYfgzN+8
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:(13230031)(4636009)(39860400002)(346002)(396003)(136003)(376002)(230922051799003)(1800799012)(451199024)(186009)(82310400011)(64100799003)(46966006)(36840700001)(40470700004)(5660300002)(2906002)(4326008)(8936002)(8676002)(36756003)(86362001)(44832011)(41300700001)(82740400003)(356005)(40460700003)(81166007)(426003)(83380400001)(40480700001)(336012)(2616005)(47076005)(26005)(36860700001)(31686004)(6916009)(70206006)(70586007)(31696002)(54906003)(16576012)(316002)(53546011)(478600001)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 09:11:45.7806
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6408146e-407d-487a-0e73-08dbf7cdb3bf
X-MS-Exchange-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:
	CY4PEPF0000EE34.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7120



On 08/12/2023 10:05, Henry Wang wrote:
> 
> 
> Hi Michal,
> 
>> On Dec 8, 2023, at 16:57, Michal Orzel <michal.orzel@amd.com> wrote:
>>
>> Hi Henry,
>>
>> On 08/12/2023 06:46, Henry Wang wrote:
>>>
>>>
>>> To interact with the FVP (for example entering the U-Boot shell
>>> and transferring the files by TFTP), we need to connect the
>>> corresponding port by the telnet first. Use an expect script to
>>> simplify the automation of the whole "interacting with FVP" stuff.
>>>
>>> The expect script will firstly detect the IP of the host, then
>>> connect to the telnet port of the FVP, set the `serverip` and `ipaddr`
>>> for the TFTP service in the U-Boot shell, and finally boot Xen from
>>> U-Boot and wait for the expected results by Xen, Dom0 and DomU.
>>>
>>> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 
> Thanks!
> 
>> with 1 question...
>>
>>> ---
>>> v2:
>>> - No change.
>>> ---
>>> .../expect/fvp-base-smoke-dom0-arm64.exp      | 73 +++++++++++++++++++
>>> 1 file changed, 73 insertions(+)
>>> create mode 100755 automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
>>>
>>> diff --git a/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
>>> new file mode 100755
>>> index 0000000000..25d9a5f81c
>>> --- /dev/null
>>> +++ b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
>>> @@ -0,0 +1,73 @@
>>> +#!/usr/bin/expect
>>> +
>>> +set timeout 2000
>> Do we really need such a big timeout (~30 min)?
>> Looking at your test job, it took 16 mins (quite a lot but I know FVP is slow
>> + send_slow slows things down)
> 
> This is a really good question. I did have the same question while working on
> the negative test today. The timeout 2000 indeed will fail the job at about 30min,
> and waiting for it is indeed not really pleasant.
> 
> But my second thought would be - from my observation, the overall time now
> would vary between 15min ~ 20min, and having a 10min margin is not that crazy
> given that we probably will do more testing from the job in the future, and if the
> GitLab Arm worker is high loaded, FVP will probably become slower. And normally
> we donâ€™t even trigger the timeout as the job will normally pass. So I decided
> to keep this.
> 
> Mind sharing your thoughts about the better value of the timeout? Probably 25min?
>From what you said that the average is 15-20, I think we can leave it set to 30.
But I wonder if we can do something to decrease the average time. ~20 min is a lot
even for FVP :) Have you tried setting send_slow to something lower than 100ms?
That said, we don't send too many chars to FVP, so I doubt it would play a major role
in the overall time.

I use FVP quite rarely these days, so you should know better if this can be perceived as
usual/normal behavior.

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:19:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650463.1016011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBX0z-00021A-B7; Fri, 08 Dec 2023 09:19:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650463.1016011; Fri, 08 Dec 2023 09:19:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBX0z-000213-7i; Fri, 08 Dec 2023 09:19:21 +0000
Received: by outflank-mailman (input) for mailman id 650463;
 Fri, 08 Dec 2023 09:19:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F8K7=HT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBX0y-00020x-21
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:19:20 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20610.outbound.protection.outlook.com
 [2a01:111:f400:fe59::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc423a8e-95aa-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:19:17 +0100 (CET)
Received: from CY8PR19CA0020.namprd19.prod.outlook.com (2603:10b6:930:44::17)
 by SJ0PR12MB6926.namprd12.prod.outlook.com (2603:10b6:a03:485::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 09:19:10 +0000
Received: from CY4PEPF0000E9D3.namprd03.prod.outlook.com
 (2603:10b6:930:44:cafe::47) by CY8PR19CA0020.outlook.office365.com
 (2603:10b6:930:44::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28 via Frontend
 Transport; Fri, 8 Dec 2023 09:19:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9D3.mail.protection.outlook.com (10.167.241.146) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.26 via Frontend Transport; Fri, 8 Dec 2023 09:19:10 +0000
Received: from SATLEXMB08.amd.com (10.181.40.132) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 8 Dec
 2023 03:19:09 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB08.amd.com
 (10.181.40.132) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Fri, 8 Dec
 2023 01:19:09 -0800
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.34 via Frontend
 Transport; Fri, 8 Dec 2023 03:19:07 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc423a8e-95aa-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lB2QgUFnpWXefSH4eunQd0P0srZ4nQMpP6YSGZoryE7SKJ6z9bUUqXzuiG2CFrnZ4EtTrmA8Rv98o6zzE1hI4O+8shFloUqvP6yDi0JEbfci7m1AtsTV0FtI/vlzPIn0v5XDxelzkibG0ads78nHMIYfSWfIxmVwoA0Q3QZgqY+PDJi7voQvy5TVFu0fT3/63N+UOGuXcEkxm2UBg8nBe1zXXvxFerehmX3UwM96LIEErI4xunnEe7bcY2H3ekSUCqgKxLPqbKwvfwOdoAlq7TRuZtTrG50uG84KNeUgDUsuWVXhaIDaBjpUMnEcGYY+TOBKiJxiPaD7uGsGh6jW3A==
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=RJD279BdY/h6Bh6XxJjY9t1e4huNc1eDhltX5XrNZz8=;
 b=PhjmpEbbgjugfQoDODhJpE6kxBiL6r4LuVoz4nMeb+K0w8+SDTrwxqL1m/hlAq9eT3fZ77spcV/CL5c5eSKRJjcZX60OtGTR/hcgbWVkruwMpPfDEN0gJMx76d8hHkkIjooGFpA2F/tp/XWL+vjJ1efWO4LO5GkG0hcV4yKsEkMx5bhduuL4ny9GxaXeCpJ9hsJWk6ZfQ2z7eIAj/pfqDfWYv1pvHRUOfPeqhstxrM0wH3wZmdACWNxPT36yXWCHIB9VqdmrGpH9/vL4RFqXfcDG37ofr8lmPZkglyNLZGoh48gn9jXZmxXh/Z+KIeAlragEi59cRWJr3+BswNZ4LQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RJD279BdY/h6Bh6XxJjY9t1e4huNc1eDhltX5XrNZz8=;
 b=ocICzshtArkQJZsQQWecsTkMzSoJC8WCb+bIZ157cNJm334cpkDRPIOiCrAmCjeJNhhh0ag0AysiR4BO5rLNNJN94h8gbq5fi6mEp+aUn9ILIzThskn1WKr1RcrsK3RhN5KAUanG12RqO/j7ovBCZmmQ2SPERRBMv5clpV738Xk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <8c420801-9fae-420d-b4c8-b30a0e5cb024@amd.com>
Date: Fri, 8 Dec 2023 10:19:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/5] automation: Add the arm64 FVP build and Dom0 smoke
 test jobs
Content-Language: en-US
To: Henry Wang <Henry.Wang@arm.com>, <xen-devel@lists.xenproject.org>
CC: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-6-Henry.Wang@arm.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231208054637.1973424-6-Henry.Wang@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D3:EE_|SJ0PR12MB6926:EE_
X-MS-Office365-Filtering-Correlation-Id: 864a25fd-df05-4da6-c7a8-08dbf7cebc85
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	d8OKFV/MJ8/1WY1nIBn3TLM1Xxl5uqHlng/ha4S9iRcdw1Amv56yO5WugzmuVVPDammnkqjfwP/OAsJjT+U5lB2bU0zuBM9XdgKU3dwwu7MyOGs8e665lILLesUUtJGaX1sp+/MjA2cG9xZ+Qjy4JfNTBzVuBqIGIR/vgWwD8HGFqJnAwwkq6If/3pua1G3e6bH83UFHKf17Fz1ZWX/xI4I2YdyeCBpw6Eod0EfyoztMaMVQN7VcmlT17lMnmBhm+8UjqPY0R3B7i/wYmRYlXhGiJ5ORuKgfLjTqCKvr/O0E+Am71fM6cp45yK+hx1iCvgvU2Irsh69ZSlxOwk6uSnZgNchW+Y6WiV/M21O1QvdXV4RDbCd/JTR/lL+m8ZSWI9pNMe+Tyx4kegwKWKEOejpHGkM1vL+pZBW3byUjmEAgoWrCxH7f3hW2Ru2trUH5/hwM19QWDAUrIO7hYAn7j0wsarsCcFzb4b0MVejj2NYb4vkrlP7hXSbiS8WyUIjGPJXlPrLygAyAowroa32y+gdQ32P4QTDCQXeM93+aRE0Qi0X5Gck0ZSXIic96MNnxv6YuihZKhxhC66ByCHxeFqtdnAR2kW2SNlHVg/XPohZnQvQFm4TFloleNxGv4sC5Jui97A/P+TuddcispaPemzYnCHrka+RTacleJkK5jZ3TwS+LppsvUoWGkZzhV+goxJZfddAVGb4NO6AO42L5a/+moAidwPGHPOBAQyVD5Hz2t2e9r7TaAAm2uNji5C21G+pb813kKAF+z1G8BV+XLxT6w9Kr/PjzNaGlRmERHVWw1IbUOZDF/lNNoCb9DW/xuVAyr57Oov9XFIzUiCPA6w==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(39860400002)(396003)(376002)(136003)(230922051799003)(82310400011)(64100799003)(451199024)(1800799012)(186009)(46966006)(36840700001)(40470700004)(40480700001)(84970400001)(31686004)(40460700003)(36860700001)(41300700001)(2906002)(5660300002)(16576012)(36756003)(8676002)(4326008)(316002)(356005)(426003)(110136005)(81166007)(478600001)(53546011)(31696002)(2616005)(8936002)(70586007)(82740400003)(54906003)(26005)(70206006)(47076005)(86362001)(44832011)(83380400001)(966005)(336012)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 09:19:10.0014
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 864a25fd-df05-4da6-c7a8-08dbf7cebc85
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6926

Hi Henry,

On 08/12/2023 06:46, Henry Wang wrote:
> 
> 
> Add a job in the build stage to export the TF-A, U-Boot and the
> device tree for the FVP platform from the test artifact container.
> 
> Add a FVP smoke test job in the test stage to do the same test as
> the `qemu-smoke-dom0-arm64-gcc` job.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

with a remark...

> ---
> v2:
> - Add Stefano's Reviewed-by tag.
> 
> Although it does not affect the functionality, I am still quite
> confused about why the logs displayed by GitLab UI, for
> example [1], is much less than the actual output (saved in the
> artifacts, see [2]). Had a discussion with Michal on Matrix
> and we agree that the log in gitlab UI is usually capped.
> 
> [1] https://gitlab.com/xen-project/people/henryw/xen/-/jobs/5690876361
> [2] https://gitlab.com/xen-project/people/henryw/xen/-/jobs/5690876361/artifacts/file/smoke.serial
> ---
>  automation/gitlab-ci/build.yaml | 17 +++++++++++++++++
>  automation/gitlab-ci/test.yaml  | 22 ++++++++++++++++++++++
>  2 files changed, 39 insertions(+)
> 
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index 32af30cced..89d2f01302 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -344,6 +344,23 @@ kernel-6.1.19-export:
>    tags:
>      - x86_64
> 
> +armfvp-uboot-tfa-2023.10-2.9.0-arm64-export:
> +  extends: .test-jobs-artifact-common
> +  image: registry.gitlab.com/xen-project/xen/tests-artifacts/armfvp-uboot-tfa:2023.10-2.9.0-arm64v8
> +  script:
> +    - |
> +       mkdir binaries && \
> +       cp /bl1.bin binaries/bl1.bin && \
> +       cp /fip.bin binaries/fip.bin && \
> +       cp /fvp-base-gicv3-psci-1t.dtb binaries/fvp-base-gicv3-psci-1t.dtb
> +  artifacts:
> +    paths:
> +      - binaries/bl1.bin
> +      - binaries/fip.bin
> +      - binaries/fvp-base-gicv3-psci-1t.dtb
> +  tags:
> +    - arm64
> +
>  # Jobs below this line
> 
>  # Build jobs needed for tests
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 6aabdb9d15..47e00d0a0b 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -96,6 +96,19 @@
>    tags:
>      - xilinx
> 
> +.fvp-arm64:
> +  extends: .test-jobs-common
> +  variables:
> +    CONTAINER: debian:bookworm-arm64v8-fvp
> +    LOGFILE: fvp-smoke-arm64.log
> +  artifacts:
> +    paths:
> +      - smoke.serial
> +      - '*.log'
> +    when: always
> +  tags:
> +    - arm64
> +
>  .adl-x86-64:
>    extends: .test-jobs-common
>    variables:
> @@ -459,3 +472,12 @@ qemu-smoke-ppc64le-powernv9-gcc:
>    needs:
>      - qemu-system-ppc64-8.1.0-ppc64-export
>      - debian-bullseye-gcc-ppc64le-debug
> +
> +fvp-smoke-dom0-arm64-gcc-debug:
> +  extends: .fvp-arm64
> +  script:
> +    - ./automation/scripts/fvp-base-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *arm64-test-needs
This would imply the need for qemu-system-aarch64-6.0.0-arm64-export which you don't need.
I think you could do:

.fvp-arm64-test-needs: &fvp-arm64-test-needs
  - alpine-3.18-arm64-rootfs-export
  - kernel-5.19-arm64-export
  - armfvp-uboot-tfa-2023.10-2.9.0-arm64-export

and then reference this in your job. This will be reused by other FVP tests in the future.

~Michal


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:21:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:21:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650466.1016021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBX3F-0003R7-N7; Fri, 08 Dec 2023 09:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650466.1016021; Fri, 08 Dec 2023 09:21:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBX3F-0003R0-K3; Fri, 08 Dec 2023 09:21:41 +0000
Received: by outflank-mailman (input) for mailman id 650466;
 Fri, 08 Dec 2023 09:21:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBX3E-0003Qs-8M
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:21: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 309c3b4f-95ab-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:21:38 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a1ceae92ab6so248263266b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:21:38 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 ci13-20020a170906c34d00b00a0988d69549sm752744ejb.189.2023.12.08.01.21.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:21:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 309c3b4f-95ab-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702027298; x=1702632098; 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=j5j2b+y42pfp1xZvblYb4ELWtXTnopjlVU6C4tgu4N8=;
        b=KaS8pOp4Rrs4sjaEwsPcigpSidX9/aaOcSRz+d3FTQrdeH++o2UuAqYPH3thVKFOGw
         Xs4zWhr9YNy1DeOD1fnSr7evSJ1AaGGR9R5VVY3WygWjVxoBViruQ+MmtJgiZ+GHSuCC
         Sv4eNbvf7LIRdFXDtoj1oGPNltZyPY4Gp7kxCaSczRndnZNCd70WhsjvXNpHLqMdkvR4
         UQ5yav6hOinbwBBaBQFKo3mffIb+LZy7Xyj9vMSH02dTFdRMgwdPkulL7JvNnPWCjIUw
         BUbCsFSwiJHRHiiagumIiouv5wi0e1MQvQlyGlv35G+y3MLLijNO5tV/uVnSNpbZ+BlV
         TYow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702027298; x=1702632098;
        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=j5j2b+y42pfp1xZvblYb4ELWtXTnopjlVU6C4tgu4N8=;
        b=TqCN9NEUurU+q38SVIPLLAqM4fWWWiwsLd+llxpLQGrY8iZszqM5nfn79i6EVUMcES
         kaxyEvuGk7SBYf8gXxTDP58s+AcwoGjgjVBycA15TeqZgSl3fcO5Ic1dx4ADMPNOHEa7
         2j6vLpEhzSxxgDZWciQRnpBhDwivengZN15JNOv7RqpW3rlsyWzFRZOY28CnFjrdYdze
         VX32cdLLsKF1K6X+9iDkCjZ6FEtnILtR4uo7RTuIOPGpgdw78r7GYHN7QOGrYxfkYXgF
         W1YQxwIB4we+8IoqH8kTm4pze9TaziwuIC46Ain1oiuJqEOGKFk+UAbaB9LVanzmZHOE
         Yc3Q==
X-Gm-Message-State: AOJu0YzPeYMQyfhhkCBL7W5hwoBL8BhTmLq9D0v2Q5bpelxin6O0Xxqn
	GbZczWK4SjfUyKApKqDVZMo=
X-Google-Smtp-Source: AGHT+IGLrw9p/vhUR4Vw/MRXcn4GJ01bdbCEV8S3k4foLm0zT+ssbJBX/I9+dyWGJqbMd7gNFIIMUw==
X-Received: by 2002:a17:906:a397:b0:a02:54fa:4f2f with SMTP id k23-20020a170906a39700b00a0254fa4f2fmr2376113ejz.53.1702027297681;
        Fri, 08 Dec 2023 01:21:37 -0800 (PST)
Message-ID: <cb53226b525d49a552207ce84e21ee0c33f13903.camel@gmail.com>
Subject: Re: [PATCH v2 08/39] xen/riscv: introduce asm/cpufeature.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Fri, 08 Dec 2023 11:21:30 +0200
In-Reply-To: <3f43ced8-9437-4e88-a84f-0dd4edcdf5aa@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <b8fcdd22462ffa71a058e63dbf874dfc858264df.1700761381.git.oleksii.kurochko@gmail.com>
	 <3959501d-9696-4791-bf04-d394af255bd2@suse.com>
	 <3f43ced8-9437-4e88-a84f-0dd4edcdf5aa@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 15:25 +0100, Jan Beulich wrote:
> On 07.12.2023 15:19, Jan Beulich wrote:
> > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> >=20
> > Acked-by: Jan Beulich <jbeulich@suse.com>
>=20
> Actually - with an SPDX header added. I only now realize that I
> committed the earlier two patches without paying attention to this
> aspect. I'd appreciate if in the next version you could include an
> incremental change. And obviously in all other new headers such a
> comment (and perhaps also a formatting footer) wants introducing
> as well.
Thanks a lot. I'll add SPDX headers.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:22:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:22:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650468.1016031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBX3e-0003ta-VO; Fri, 08 Dec 2023 09:22:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650468.1016031; Fri, 08 Dec 2023 09:22: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 1rBX3e-0003tT-S2; Fri, 08 Dec 2023 09:22:06 +0000
Received: by outflank-mailman (input) for mailman id 650468;
 Fri, 08 Dec 2023 09:22:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBX3d-0003Qs-N8
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:22:05 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on0610.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f8c5b0f-95ab-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:22:03 +0100 (CET)
Received: from AS4P189CA0061.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:659::10)
 by PAWPR08MB9566.eurprd08.prod.outlook.com (2603:10a6:102:2e0::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 09:21:59 +0000
Received: from AM3PEPF0000A792.eurprd04.prod.outlook.com
 (2603:10a6:20b:659:cafe::98) by AS4P189CA0061.outlook.office365.com
 (2603:10a6:20b:659::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25 via Frontend
 Transport; Fri, 8 Dec 2023 09:21:59 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM3PEPF0000A792.mail.protection.outlook.com (10.167.16.121) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.24 via Frontend Transport; Fri, 8 Dec 2023 09:21:59 +0000
Received: ("Tessian outbound 20615a7e7970:v228");
 Fri, 08 Dec 2023 09:21:59 +0000
Received: from 2febf2c35abb.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 D2834117-C988-4AA1-93E9-213DD36109DF.1; 
 Fri, 08 Dec 2023 09:21:48 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2febf2c35abb.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 09:21:48 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by DB9PR08MB9948.eurprd08.prod.outlook.com (2603:10a6:10:3d0::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 09:21:46 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 09:21: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: 3f8c5b0f-95ab-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=RLgsvRtEoUmpg4uVGMs3b+HAVkxnxiNLOjMb9XSJAZsqiEYEeerzuVzDfFmv7+E/qCoMjpx4xjNpmT60r6wPQ1Y0nKjBnzf5TnJDpypFElGW3HxTKvTqg/ALwZBJAuY/niPxFEa5sqfzcrw2bObL9od9qV6y85Gr/FTeGwh4xH7YwAcxVkEddGNkXd2YCmiCZirwOagmM8ydmC8i/1ftvAkY3LXkmom6yj16+KTEZu5ioV3/1HIzuW7xPuPyWSzfaDerVOVaovWbUhBPa/kwhQ9TOxgRIZgCBYPlVpq8VlBUIWC4nCbcV4oQlGDFyP07ll8hln2ltTXT4skHtIaU6w==
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=dOLpXlf3E3D3Vw8JXIqluXz4oNTHkg/1j/2b0/ZaXSI=;
 b=JXNsu3cls9IfIarZlneagOf7scCBY0esE1zcuLD6CzL2++NiVE6baAALbHhlczwki327mVGyzKmgjAtQaAzL8N6DXP55nGfEccV4s8KT3QxJS+eKGCCC8EAhHaPecoflotJKc8v8p+MQOi90dfiODT1zsoklGqSuEMXv2bEL5ds+cTBdUMF1h4FSmn3MR90rmTtZraME/j6rqr/lqhcPR0/Dy+dEmL7V36UZ4ru/8M9a3umSlY5TJofNPQiYaKRzN+kruvnx2HN44bMqQCcfMw2zPDAhQAW9uPnGxqL2kJ75ziqvLniMPzoi8Ps099UgHo6j1/bdrZdzbUbXcz5/aA==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dOLpXlf3E3D3Vw8JXIqluXz4oNTHkg/1j/2b0/ZaXSI=;
 b=PdRkZJFYnaa3ZVB/WVPqddih5hib2bfREeCT3rayebE9/ZhHJgd7Aygh0sL0oUjV8vFRmu2nuIUQO069hV7Mgi4cbAf3bcHeg30Y6X8UWjE2NBWNAnZWIju5lFPFMxnL9GgEV6BFLNtPkWgleTi/7mqv3wu4M7Sxxrs8EpCRh4o=
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=armh.onmicrosoft.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: 11e09786bbff8ec5
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZpZRrFQqIPZGZQW+yce24K4fWguv5MgB35oaLna3Oq1RL4wUsjbt7RQ4x3oRa6S/w9ypLPL+Oe9FOHjkoYahPZE6m7wr6T8Xt9ZQyo0te9GyLwxhEJSwwtwcsT0MCnyX2rXMUFZ+M8Am9IPoCcu39ofIVL539xnh62uXLNscY7QQWHq8dsIHzyR5iK99WhkdGI01+mUfzmBd6hLhB7pPpU4X5gsKlB9FtmyCCDTH+GChl5u7QopeSKclg99NqlgXdEu4uT3BWyHVUlB6ll7GnqqacGSEmTAIRkgsSHS/2oTYVD/CqEzO1ZSrsIOf5xr7l9vyNwhgrWRagxhRU4B53Q==
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=dOLpXlf3E3D3Vw8JXIqluXz4oNTHkg/1j/2b0/ZaXSI=;
 b=LpkwX1U20y7Ld9ixwlgrITQvw2Jzt18Ov6Cybfs0byfjLVNCrb/cxE8Buex1QVVD+25ofz1OPhNR9/k9lVc/24bDSS7MlqNbeiug2/0Chiq6Ms/R+B79XCR2waiLT/RxUVBe5vtCZbdq+lz/eFNbI0k2EQM2jZhEP97XCweDgYebpFiVeMZVmvEbZNq8iv4vv82/XZbl1JixMs240wpj0knCnEhhGrZLio+imO34L7G+MfNYFZ9hrLDnH2lHHbzrnfTers+IzQY0JmHlHS6YZD6JdPv73hjVHCUDbaYa7CkvS4EItAJXsQgkiZ8lHDB6UyIdtux3imHPKXjYnO/RWg==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dOLpXlf3E3D3Vw8JXIqluXz4oNTHkg/1j/2b0/ZaXSI=;
 b=PdRkZJFYnaa3ZVB/WVPqddih5hib2bfREeCT3rayebE9/ZhHJgd7Aygh0sL0oUjV8vFRmu2nuIUQO069hV7Mgi4cbAf3bcHeg30Y6X8UWjE2NBWNAnZWIju5lFPFMxnL9GgEV6BFLNtPkWgleTi/7mqv3wu4M7Sxxrs8EpCRh4o=
From: Henry Wang <Henry.Wang@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Topic: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Index: AQHaKZoAVIHO2rCYDECWUL8sUR2sfLCfFe6AgAACFwCAAAHkAIAAAsIA
Date: Fri, 8 Dec 2023 09:21:45 +0000
Message-ID: <B9AFD918-42F6-4190-963B-E5A639D9F60E@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
 <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
 <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
 <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
In-Reply-To: <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|DB9PR08MB9948:EE_|AM3PEPF0000A792:EE_|PAWPR08MB9566:EE_
X-MS-Office365-Filtering-Correlation-Id: 78f9a881-77c1-4d83-dde8-08dbf7cf2186
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 vujafXNqpG1qdyVEfFY+wHQ+4HhZhwRCGwurIfMHOwjWpEqvqL3aBcb9mzfVee+GPMZErILgfsr74j+0lrHKRsLTmldCbD+tO20LRI6ooBq65HnW8mPmAb/7eh5wuvARE4Tbm20uN7HoM32pnZX6YubLwFImsSCWvYTxEIiXlHiktpJSoRtQ3qHDXkpeQYulyuwxHPwZBKiUTlnvJVw+rnwFA5+T4bB1OTU9bcaKB1PpAuAsXkH5orD9aHyZsnY3gyu+PC75mnA0Xwqzc8fm21Bb/18GBJsYMgV4ZTzly63NcEGbZEHP+YVpylJ9q85aCgAgl1ikJ0dspXrvyuT32MKttVrWdFLtdjNSw35Xhn6dV/1BYj2Auoty91ApFOtEN0MKQ+iDM0cA2GByy3qQgK8CHYXt+VijNopP74PzzJ2Vgm4JulRd55qfa+KfVrozi/39GidT3anr0iWt3A1x/mkkNE0oRZprlOJGby+uSHW+PYc1/89sYv23whNUF/9KRjCbxpxoLuSRHF/gVmzj/CzC4lEvXnhflLhpU//CtkkwIpPNRe7QCm191qp5FMn/Zaijgj3OHdydbzKXDzqDyDkedchxMFbxr9UTwsgRvzUXqYNO4uzQJ4M61gntoNkcECBhqRUFdspKbsQcyT/S9w==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(39860400002)(376002)(346002)(396003)(366004)(230922051799003)(186009)(451199024)(64100799003)(1800799012)(5660300002)(8676002)(8936002)(4326008)(86362001)(38070700009)(36756003)(41300700001)(2906002)(33656002)(83380400001)(26005)(2616005)(38100700002)(122000001)(66476007)(66556008)(64756008)(66946007)(66446008)(91956017)(76116006)(54906003)(6916009)(316002)(6506007)(53546011)(71200400001)(6512007)(966005)(6486002)(478600001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <2E585075C6356B4D801D0044B9FE4126@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9948
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:
 AM3PEPF0000A792.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4010a458-5c07-4000-67d1-08dbf7cf1954
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	lbjIwTANvuHFZGN/aF+95c6S9ej0aidoDeX2dmihRSO6aIN616RK6cqW3IyGjQA0gS+zsfoJmpWU08LafaJa96Nc7XOewovo88n7IJe4IaHO/7oeWKX+SvNaK22kYHFwW8DvTsBsAalqkrneNf03ddHOZvmOrAa2OcxcnVglxCjE5ub0qSmJxFXBC8ZAb0PPACRYK0E3gF4qXi8+vYnRdf+jolEoCr5+L8nkGbhrUpL3ZrrRtyDCp+X+jCqXG5z+HoCMD9FDRlnxnofZNC3Zy/WEsDGJpTUSzFOqPiAFxAFsIEVxY8+JP/V2fnQIF4umHcOLMQBb1rRuHr9olCB8KjDxQlcFv62Ad6yj5oZo1bX2susPUGDYTe4ouQ48uH79ir39kVuXeOyxWTlbK6HbvbK4jfbSYfyH7hn8FxjKzBcF4ZIHyW2DFEc3vXtdXQLYZOWhuTHEp3TTD4qHwRC2J8aDXBGO9OjuMtrLBsuIOEBXrDBMnAjcDFGHIeJTGdBD5H/BTU0KT7+pzouc/a3yXq8MNOdJJ9plSM5K/2dFI8rlz+8/SXUMN8VmQ5Aj4vcu05f8Q9L89DcCOnygW1wrwNChUMvNpRT9uL8swqvCrmEuwwzDLbk/ZLIH1ZfLZThYbLCpmbNH6xgxOZmAP1+hgCwaMqkK8UZGP4AA7ODQ6ADjcyu6PAccZKJQenfwNzSyyeQrlDg8DiW1Jgy9+lHAIc7swYaB4xBSHEgnpbXri3k=
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:(13230031)(4636009)(136003)(396003)(376002)(346002)(39860400002)(230922051799003)(64100799003)(451199024)(186009)(82310400011)(1800799012)(36840700001)(40470700004)(46966006)(40460700003)(70586007)(316002)(70206006)(54906003)(41300700001)(36756003)(6512007)(36860700001)(33656002)(336012)(26005)(6506007)(2616005)(478600001)(6486002)(966005)(86362001)(356005)(53546011)(81166007)(83380400001)(82740400003)(47076005)(40480700001)(2906002)(5660300002)(8676002)(6862004)(4326008)(8936002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 09:21:59.5209
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 78f9a881-77c1-4d83-dde8-08dbf7cf2186
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:
	AM3PEPF0000A792.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9566

SGkgTWljaGFsLA0KDQo+IE9uIERlYyA4LCAyMDIzLCBhdCAxNzoxMSwgTWljaGFsIE9yemVsIDxt
aWNoYWwub3J6ZWxAYW1kLmNvbT4gd3JvdGU6DQo+IE9uIDA4LzEyLzIwMjMgMTA6MDUsIEhlbnJ5
IFdhbmcgd3JvdGU6DQo+PiANCj4+IEhpIE1pY2hhbCwNCj4+IA0KPj4+IE9uIERlYyA4LCAyMDIz
LCBhdCAxNjo1NywgTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4gd3JvdGU6DQo+
Pj4gDQo+Pj4gSGkgSGVucnksDQo+Pj4gDQo+Pj4gT24gMDgvMTIvMjAyMyAwNjo0NiwgSGVucnkg
V2FuZyB3cm90ZToNCj4+Pj4gZGlmZiAtLWdpdCBhL2F1dG9tYXRpb24vc2NyaXB0cy9leHBlY3Qv
ZnZwLWJhc2Utc21va2UtZG9tMC1hcm02NC5leHAgYi9hdXRvbWF0aW9uL3NjcmlwdHMvZXhwZWN0
L2Z2cC1iYXNlLXNtb2tlLWRvbTAtYXJtNjQuZXhwDQo+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNzU1
DQo+Pj4+IGluZGV4IDAwMDAwMDAwMDAuLjI1ZDlhNWY4MWMNCj4+Pj4gLS0tIC9kZXYvbnVsbA0K
Pj4+PiArKysgYi9hdXRvbWF0aW9uL3NjcmlwdHMvZXhwZWN0L2Z2cC1iYXNlLXNtb2tlLWRvbTAt
YXJtNjQuZXhwDQo+Pj4+IEBAIC0wLDAgKzEsNzMgQEANCj4+Pj4gKyMhL3Vzci9iaW4vZXhwZWN0
DQo+Pj4+ICsNCj4+Pj4gK3NldCB0aW1lb3V0IDIwMDANCj4+PiBEbyB3ZSByZWFsbHkgbmVlZCBz
dWNoIGEgYmlnIHRpbWVvdXQgKH4zMCBtaW4pPw0KPj4+IExvb2tpbmcgYXQgeW91ciB0ZXN0IGpv
YiwgaXQgdG9vayAxNiBtaW5zIChxdWl0ZSBhIGxvdCBidXQgSSBrbm93IEZWUCBpcyBzbG93DQo+
Pj4gKyBzZW5kX3Nsb3cgc2xvd3MgdGhpbmdzIGRvd24pDQo+PiANCj4+IFRoaXMgaXMgYSByZWFs
bHkgZ29vZCBxdWVzdGlvbi4gSSBkaWQgaGF2ZSB0aGUgc2FtZSBxdWVzdGlvbiB3aGlsZSB3b3Jr
aW5nIG9uDQo+PiB0aGUgbmVnYXRpdmUgdGVzdCB0b2RheS4gVGhlIHRpbWVvdXQgMjAwMCBpbmRl
ZWQgd2lsbCBmYWlsIHRoZSBqb2IgYXQgYWJvdXQgMzBtaW4sDQo+PiBhbmQgd2FpdGluZyBmb3Ig
aXQgaXMgaW5kZWVkIG5vdCByZWFsbHkgcGxlYXNhbnQuDQo+PiANCj4+IEJ1dCBteSBzZWNvbmQg
dGhvdWdodCB3b3VsZCBiZSAtIGZyb20gbXkgb2JzZXJ2YXRpb24sIHRoZSBvdmVyYWxsIHRpbWUg
bm93DQo+PiB3b3VsZCB2YXJ5IGJldHdlZW4gMTVtaW4gfiAyMG1pbiwgYW5kIGhhdmluZyBhIDEw
bWluIG1hcmdpbiBpcyBub3QgdGhhdCBjcmF6eQ0KPj4gZ2l2ZW4gdGhhdCB3ZSBwcm9iYWJseSB3
aWxsIGRvIG1vcmUgdGVzdGluZyBmcm9tIHRoZSBqb2IgaW4gdGhlIGZ1dHVyZSwgYW5kIGlmIHRo
ZQ0KPj4gR2l0TGFiIEFybSB3b3JrZXIgaXMgaGlnaCBsb2FkZWQsIEZWUCB3aWxsIHByb2JhYmx5
IGJlY29tZSBzbG93ZXIuIEFuZCBub3JtYWxseQ0KPj4gd2UgZG9u4oCZdCBldmVuIHRyaWdnZXIg
dGhlIHRpbWVvdXQgYXMgdGhlIGpvYiB3aWxsIG5vcm1hbGx5IHBhc3MuIFNvIEkgZGVjaWRlZA0K
Pj4gdG8ga2VlcCB0aGlzLg0KPj4gDQo+PiBNaW5kIHNoYXJpbmcgeW91ciB0aG91Z2h0cyBhYm91
dCB0aGUgYmV0dGVyIHZhbHVlIG9mIHRoZSB0aW1lb3V0PyBQcm9iYWJseSAyNW1pbj8NCj4gRnJv
bSB3aGF0IHlvdSBzYWlkIHRoYXQgdGhlIGF2ZXJhZ2UgaXMgMTUtMjAsIEkgdGhpbmsgd2UgY2Fu
IGxlYXZlIGl0IHNldCB0byAzMC4NCj4gQnV0IEkgd29uZGVyIGlmIHdlIGNhbiBkbyBzb21ldGhp
bmcgdG8gZGVjcmVhc2UgdGhlIGF2ZXJhZ2UgdGltZS4gfjIwIG1pbiBpcyBhIGxvdA0KPiBldmVu
IGZvciBGVlAgOikgSGF2ZSB5b3UgdHJpZWQgc2V0dGluZyBzZW5kX3Nsb3cgdG8gc29tZXRoaW5n
IGxvd2VyIHRoYW4gMTAwbXM/DQo+IFRoYXQgc2FpZCwgd2UgZG9uJ3Qgc2VuZCB0b28gbWFueSBj
aGFycyB0byBGVlAsIHNvIEkgZG91YnQgaXQgd291bGQgcGxheSBhIG1ham9yIHJvbGUNCj4gaW4g
dGhlIG92ZXJhbGwgdGltZS4NCg0KSSBhZ3JlZSB3aXRoIHRoZSBzZW5kX3Nsb3cgcGFydC4gQWN0
dWFsbHkgSSBkbyBoYXZlIHRoZSBzYW1lIGNvbmNlcm4sIGhlcmUgYXJlIG15IGN1cnJlbnQNCnVu
ZGVyc3RhbmRpbmcgYW5kIEkgdGhpbmsgeW91IHdpbGwgZGVmaW5pdGVseSBoZWxwIHdpdGggeW91
ciBrbm93bGVkZ2U6DQpJZiB5b3UgY2hlY2sgdGhlIGZ1bGwgbG9nIG9mIERvbTAgYm9vdGluZywg
Zm9yIGV4YW1wbGUgWzFdLCB5b3Ugd2lsbCBmaW5kIHRoYXQgd2Ugd2FzdGVkIHNvDQptdWNoIHRp
bWUgaW4gc3RhcnRpbmcgdGhlIHNlcnZpY2VzIG9mIHRoZSBPUyAobW9kbG9vcCwgdWRldi1zZXR0
bGUsIGV0YykuIEFsbCBvZiB0aGVzZSBzZXJ2aWNlcw0KYXJlIHJldHJpZWQgbWFueSB0aW1lcyBi
dXQgaW4gdGhlIGVuZCB0aGV5IGFyZSBzdGlsbCBub3QgdXAsIGFuZCBmcm9tIG15IHVuZGVyc3Rh
bmRpbmcgdGhleQ0Kd29u4oCZdCBhZmZlY3QgdGhlIGFjdHVhbCB0ZXN0KD8pIElmIHdlIGNhbiBz
b21laG93IGdldCByaWQgb2YgdGhlc2Ugc2VydmljZXMgZnJvbSByb290ZnMsIEkgdGhpbmsNCndl
IGNhbiBzYXZlIGEgbG90IG9mIHRpbWUuDQoNCkFuZCBob25lc3RseSwgSSBub3RpY2VkIHRoYXQg
cWVtdS1hbHBpbmUtYXJtNjQtZ2NjIHN1ZmZlcnMgZnJvbSB0aGUgc2FtZSBwcm9ibGVtIGFuZCBp
dCBhbHNvDQp0YWtlcyBhcm91bmQgMTVtaW4gdG8gZmluaXNoLiBTbyBpZiB3ZSBtYW5hZ2VkIHRv
IHRhaWxvciB0aGUgc2VydmljZXMgZnJvbSB0aGUgZmlsZXN5c3RlbSwgd2UNCmNhbiBzYXZlIGEg
bG90IG9mIHRpbWUuDQoNCkJ1dCBJIGZvdW5kIGl0IGRpZmZpY3VsdCB0byBkbyB0aGUgcHJvcGVy
IHRhaWxvcmluZywgYW55IHN1Z2dlc3Rpb25zPw0KDQpbMV0gaHR0cHM6Ly9naXRsYWIuY29tL3hl
bi1wcm9qZWN0L3Blb3BsZS9oZW5yeXcveGVuLy0vam9icy81NzA4NTU3ODUwL2FydGlmYWN0cy9m
aWxlL3Ntb2tlLnNlcmlhbA0KDQpLaW5kIHJlZ2FyZHMsDQpIZW5yeQ0KDQo+IEkgdXNlIEZWUCBx
dWl0ZSByYXJlbHkgdGhlc2UgZGF5cywgc28geW91IHNob3VsZCBrbm93IGJldHRlciBpZiB0aGlz
IGNhbiBiZSBwZXJjZWl2ZWQgYXMNCj4gdXN1YWwvbm9ybWFsIGJlaGF2aW9yLg0KPiANCj4gfk1p
Y2hhbA0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:22:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:22:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650472.1016041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBX4M-0004Xz-C2; Fri, 08 Dec 2023 09:22:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650472.1016041; Fri, 08 Dec 2023 09:22:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBX4M-0004Xs-9G; Fri, 08 Dec 2023 09:22:50 +0000
Received: by outflank-mailman (input) for mailman id 650472;
 Fri, 08 Dec 2023 09: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=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBX4K-0003mn-Sg
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:22:48 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20601.outbound.protection.outlook.com
 [2a01:111:f403:2612::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a5385ae-95ab-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:22:48 +0100 (CET)
Received: from AM5PR1001CA0049.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:206:15::26) by AS8PR08MB9598.eurprd08.prod.outlook.com
 (2603:10a6:20b:61a::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 09:22:44 +0000
Received: from AMS1EPF00000043.eurprd04.prod.outlook.com
 (2603:10a6:206:15:cafe::fe) by AM5PR1001CA0049.outlook.office365.com
 (2603:10a6:206:15::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28 via Frontend
 Transport; Fri, 8 Dec 2023 09:22:44 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS1EPF00000043.mail.protection.outlook.com (10.167.16.40) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 09:22:44 +0000
Received: ("Tessian outbound 7c4ecdadb9e7:v228");
 Fri, 08 Dec 2023 09:22:44 +0000
Received: from 1a9faf8ba2fe.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F7C09C63-B628-45A6-9BF9-7E82D3BC38C3.1; 
 Fri, 08 Dec 2023 09:22:32 +0000
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 1a9faf8ba2fe.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 09:22:32 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by DB9PR08MB9948.eurprd08.prod.outlook.com (2603:10a6:10:3d0::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 09:22:29 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 09:22:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a5385ae-95ab-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=SiznOqqOvtTynslHUI8oyTPEHUVg2g1fTIDPNwj4tZ7z3SOM/LE22JcqGAopXNJuu8FFtafyzBPbFQFhuF5K6R4tcmQ+jI0Zj334YYwxUf2lIc2svHAB7p0U2KQkz+jcD8DYfPikHZFLrRSNnMMPLabZ71DIoxyMwQMxa3vMulmgVm7jJ1v4ruaSaxrW3jy2B1ofIm7PJXMQGMdU5D2GV4jrecO0uepEIsRz1/GirTGpZtWHFdbZMoy9ieoe9CbyHNRMqrlyoJe0I4cxK2pVKjGnq8WxeJFiX6nLoi1nxVpXYdyiYWqu+U0ZIOPyLvibSIpnnxlqz7sjk4K8fTPUDA==
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=O7jhkCerzc1dSsHNWiFnOkH1nm3A2VSRvV2aTGf4/S0=;
 b=dbqfFwQlShnxgou0R0DJb50p9vglkqrveollMV6S9Dr3DH/1U32q/w0ELDapx3pwtXOXjK1OSt3l/u5L5RwK2lN/VHZtgHMkc5+mq+J/5GRAHnbaTLuTGFD3cSx6sOqsUbttrUExtG+4O4eUQuf6aDOxZ9J+ibnQiXnQ5DcTCxW4poX7Yn3Tlt/62uUciqWqMjIB/5UQYSluR+8wVpbUo2Ua31lFbnnFtDGbb6+uKvYecOwLU8mGymCP2TiXtRkE95H3EifjR/elboRhQZUNSt+w+EcTM38aKwuS8J3+O06PhOcVUxmfyT/0NBcicL1/b0WjqjC8oJj0IqFyNU0jlw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=O7jhkCerzc1dSsHNWiFnOkH1nm3A2VSRvV2aTGf4/S0=;
 b=t0pmEi9l6rNcCapcuJ6TOS08uocGUX+MiU9oZJoUKpB7CafoW6ZzaK3ohs8UteeA1U2suBt7/4PW+HxnImD8q8QQsUI3Ju53T3eSle5ix2nWZP8F5VGPVRW1w1wflx60V71OB3pTBP09avnkmoQhiXYk0Hkz8DfWLf41gtpirbk=
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=armh.onmicrosoft.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: 17b8501377842298
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=h7a0xq0UN704RrU9bssxqfdmzWGDtB1Ahmz3vakl36Dc3g+MrlFTsRNSM954dfR1PGvHZ7wPQYCkBZ44yICq2Uxz/FaWyS0N5ocG6f9BSWVED9YUeru4DSno/NfyCuZFGdqx73xsyVoCE5VwjciE4PrRzzP2niXCOuDVHYqbgbXn02uGWm1YobTKMFaDSCgFq+2MwQnD37rf3+zIE2xE2G7ySrjBrUTA/nh5nN9YpU3uQweF5BNxrYhbrPPjwRGVDadppvmkZYWfB6G/F83lxr2ELKoIlVtAWjBYzYFzo+N9A5y2K2CHyD3RRJ0+raa2ctpA/2SUzvRrCgN32nS+cA==
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=O7jhkCerzc1dSsHNWiFnOkH1nm3A2VSRvV2aTGf4/S0=;
 b=nH7Tevkaop2t3b/jy8yWGMBZdH4EAyiU05V+FcfOae8q8ZbFr74kbk/YSnguonNBJoLJyMXr4KksBPSN9EKqDufCEHgrUNlkuw+inGp8HXLPKr9KjpCxFIE3RAg4kO8COZzcmjghHA2xnSKFyJpmfROCUV1YW5gJOLBxIy1N/MBP1HXUBspdaapyQFuM0kkks6zIK8FT9XHwnyIdBrlWgtLDHmgGUaM2cxWM0KQDcq/HdCu7S8TmLYFaHtZnral2zkMeIohM9p3TanMdmlQrnxxGVRiyKS6PAOBO81Q8UeYBKYGTC95SPk7+dMm3JmRGSKnckeVz8KGU9jnowbvnPg==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=O7jhkCerzc1dSsHNWiFnOkH1nm3A2VSRvV2aTGf4/S0=;
 b=t0pmEi9l6rNcCapcuJ6TOS08uocGUX+MiU9oZJoUKpB7CafoW6ZzaK3ohs8UteeA1U2suBt7/4PW+HxnImD8q8QQsUI3Ju53T3eSle5ix2nWZP8F5VGPVRW1w1wflx60V71OB3pTBP09avnkmoQhiXYk0Hkz8DfWLf41gtpirbk=
From: Henry Wang <Henry.Wang@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH v2 5/5] automation: Add the arm64 FVP build and Dom0 smoke
 test jobs
Thread-Topic: [PATCH v2 5/5] automation: Add the arm64 FVP build and Dom0
 smoke test jobs
Thread-Index: AQHaKZoDMKx6KwMfaE2hQqJt20ATC7CfG/yAgAAA5AA=
Date: Fri, 8 Dec 2023 09:22:29 +0000
Message-ID: <4DA31B14-8652-4DB6-955F-79FC8A685C4E@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-6-Henry.Wang@arm.com>
 <8c420801-9fae-420d-b4c8-b30a0e5cb024@amd.com>
In-Reply-To: <8c420801-9fae-420d-b4c8-b30a0e5cb024@amd.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|DB9PR08MB9948:EE_|AMS1EPF00000043:EE_|AS8PR08MB9598:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f926c4d-a49c-4ce2-9ee9-08dbf7cf3c3c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 WcFuOUG/1tc+PkMwSE6oWH6bNQWX/+IO4Ig6+fHQAifZmUkvUcMGlNrHD/kuYE/wn53P58lgSVPvsYeZL8Hiz1C+jPtlNGstdUjutlwGhsFu6KurVFncISMgy9qr2Rymf8rAic4gf/ouC7OuD1bBEK1sgoCSwq2TjGc0JD9kTnXPAFIE9uAWx8IFjb8Qt6ydmdgsR5KygFUlSv728w4lM4wGQmmawv9xZmNXQ8522gqxxrfXEoF7ZGiI5L9GdUcHBp3xcjcU8J2r06QdFAvsEFmzlXPFR0xVwxrY1/acS1EqZjf2AVBSy2tSRTxueEt4N0SmeADvmbM8VrIRMTLykXPJsxE4LtVLlodK/X6370bGv+x34tyQ/UR9/WSvz+UrfkhIzznRiVtLFIjUM/QHEGFGBPyysVKsUvNQN6eMZcTSVFR/38uOUXl6l7tzFmNK96tbrQVGIGVX5T8cbKVdQWf4zJJHxeqaHh4cxuZa/V8+S86mSzedznfHmCZLwK4L2+e/ifIxKicSHWsl6Qc2CT9ZaS4eRUEvq6y6WuQleo4JCasTKwSgeVbh4I3dayl2J354nmU8eAkHnq1WGv5HcbzawAxpHvItXbc1lijx2q8kZ3LkOLJ+l2cnbZohjMN+BlNfLYtsAAfrzrnmUFrf+Q==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(39860400002)(376002)(346002)(396003)(366004)(230922051799003)(186009)(451199024)(64100799003)(1800799012)(5660300002)(8676002)(8936002)(4326008)(86362001)(38070700009)(36756003)(41300700001)(2906002)(33656002)(26005)(2616005)(38100700002)(122000001)(66476007)(66556008)(64756008)(66946007)(66446008)(91956017)(76116006)(54906003)(6916009)(316002)(6506007)(53546011)(71200400001)(6512007)(6486002)(478600001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <F1272B03FED71E44B23E998A5107BD8A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9948
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:
 AMS1EPF00000043.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b5a76769-a7c8-4371-d029-08dbf7cf335e
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	HR1ORAbsjuYGo50ADEUhkTRDU93N4N/4v9n3k6VS+ZcqoRzM4rjUrALwYgGVs0TKVYiFwe+CV/5fpCajU/+XnVxtC6weJyEkfTLmtlp3kYyyKPuSawRAidgj15LltBsXDxq2X9QNMgx+JOrGwcLDJt8pDTPmLtisKpW2ZEmMaUgbwHbtxXBmtir9MQDiGji2VC7pPTFGOi771r3wFN7yt2GDRjX3553Ot6LWeSNjf0hX2wkqAcMt4SHeuQz4y5k1bkKsvJSawszeVRwNcBoncCc6t1VqT13bUzrPkKBHz/Dp95xc2O1Cyo+Qi2yIvc6szG3Udr4GF67vWmXmJCIEGppRFFC3ymMztdYHtyhqmQeRZMq9HP+OdbM7tBqtkbPfnz+xaP0ne29R+b+f72g2nW2hegOZyux9zGLAkZYVkiVLpLzcEhi4cBhgOHsBsdh1AVp0aTVx3OI5XMNLsiaRTOJC+8KqwSA08VtKbEK1KRuhqyT+Oh4aePDmGomm7WCsRwp039m6BFvYBsIeswvcLSZfVzQ6QZ5f329IUDFoHgbXQ7qdUDF4RLHX/fPQdI7m9GN1QqIkwKVVySoGYooeN0ZtIGnIrHU7zmCGApfeYldYS0ufUI5SbtnZAmUPtkXF1mXrC3vsLwCmW4liF6NSi4kO8dVxpkob9BwtF42ztyOHRJdbAhPiDe1yKfEPqUPhlpmCxH+/zD//TxB9vOudYFfkmsvdnEAHSa197x6IhKCkPRhgpSTgWSr4DYGxoQt9
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:(13230031)(4636009)(376002)(346002)(39860400002)(396003)(136003)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(82310400011)(40470700004)(36840700001)(46966006)(6512007)(40480700001)(2616005)(356005)(47076005)(81166007)(70586007)(8936002)(8676002)(36860700001)(70206006)(54906003)(316002)(6486002)(336012)(478600001)(26005)(53546011)(6506007)(82740400003)(6862004)(4326008)(86362001)(40460700003)(36756003)(5660300002)(41300700001)(2906002)(33656002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 09:22:44.3485
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f926c4d-a49c-4ce2-9ee9-08dbf7cf3c3c
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:
	AMS1EPF00000043.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9598

Hi Michal,

> On Dec 8, 2023, at 17:19, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> Hi Henry,
>=20
> On 08/12/2023 06:46, Henry Wang wrote:
>>=20
>>=20
>> Add a job in the build stage to export the TF-A, U-Boot and the
>> device tree for the FVP platform from the test artifact container.
>>=20
>> Add a FVP smoke test job in the test stage to do the same test as
>> the `qemu-smoke-dom0-arm64-gcc` job.
>>=20
>> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Thanks.

>=20
> with a remark...
>=20
>> +fvp-smoke-dom0-arm64-gcc-debug:
>> +  extends: .fvp-arm64
>> +  script:
>> +    - ./automation/scripts/fvp-base-smoke-dom0-arm64.sh 2>&1 | tee ${LO=
GFILE}
>> +  needs:
>> +    - *arm64-test-needs
> This would imply the need for qemu-system-aarch64-6.0.0-arm64-export whic=
h you don't need.
> I think you could do:
>=20
> .fvp-arm64-test-needs: &fvp-arm64-test-needs
>  - alpine-3.18-arm64-rootfs-export
>  - kernel-5.19-arm64-export
>  - armfvp-uboot-tfa-2023.10-2.9.0-arm64-export
>=20
> and then reference this in your job. This will be reused by other FVP tes=
ts in the future.

Sounds good, will do in v3. Thanks!

Kind regards,
Henry

>=20
> ~Michal



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:22:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650473.1016051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBX4T-0004pg-Lx; Fri, 08 Dec 2023 09:22:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650473.1016051; Fri, 08 Dec 2023 09:22:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBX4T-0004pX-IB; Fri, 08 Dec 2023 09:22:57 +0000
Received: by outflank-mailman (input) for mailman id 650473;
 Fri, 08 Dec 2023 09:22: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=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBX4T-0003Qs-2w
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:22:57 +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 5e88c4a7-95ab-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:22:55 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a1f0616a15bso173088766b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:22:55 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 mm20-20020a1709077a9400b00a1a53e9f401sm765100ejc.132.2023.12.08.01.22.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:22:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e88c4a7-95ab-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702027375; x=1702632175; 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=vAPihQE3snyW2VHTowdcIRjngwKbTcKlBYQnCO7n/pA=;
        b=TA82YGFkevJ62m33Y21ESGRztbFXKzwEy6jSeqcU7zEAAHXktVQJiwFmBz10m9o48R
         xYKsaEFNeAC5Drrxc4c6HqEb4Ho/O1rI+4pCJZt7fxfDCXxBXZChE2Pl75fc7+8DBn7j
         zBt2Jrj6eAcBFrsxU8MtHsNIhCJ2kkJYVjTvqKgpvLZmupiI2ghzQbs9r+kmIxZky5zL
         7mHY/qJleB99yG4HUjS0osHINHZiAej9T/U4zwBH5vUX5aKv8y643W1c6cbIYsNN5Fhk
         NxnH6LmTirlQ+g+weAVcVXyss//qvzAslV5prINmKOKxkNxlBYaf5Zn8nftn0IrFR869
         kFdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702027375; x=1702632175;
        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=vAPihQE3snyW2VHTowdcIRjngwKbTcKlBYQnCO7n/pA=;
        b=QlwAyxDm5ZZP+orshGhRZXxbsKzExUqpR8GDMbXggH8eHiUgmCsn8ugiqC/ow5U6tZ
         r8HdCuklm5bNse/L06USGA/dzVnhSgtTyKnd7sI3IbiBcio90B3LG4vtvnd764dJ6YG3
         NynvdnG/d4NLK0V0wJuijt9zt96843BUA5tjf+XHfaFosEQ5RKmPjbDhTla/4NvXp1MN
         3TKg7aqJ5KriLSC+BpADT++CPBKzGsqe9sn/4gg3dgS2c9APcSZyKocth+g3SQmL0Vtd
         zR5d84BuGiW5bFHzH9CwQkIlzIL+qLDiBn6a4ODoXeuyTWeZtT+O6vBsimOHaIZpSmk4
         3PXA==
X-Gm-Message-State: AOJu0YwjbqozfGO8tmmgoihnpsdCNyWD2j/eItZSQDY+cufDMawFmpqt
	gDrQN6fhPnKZAM7iPrTLoxk=
X-Google-Smtp-Source: AGHT+IFRE9Dpt1uo3jcILXvCt6Vpek3vBH2M31vZivEq+HKQhK2DLbz073YU8mYBwmL3HOMgXUiIFA==
X-Received: by 2002:a17:907:9546:b0:a19:a19b:78ac with SMTP id ex6-20020a170907954600b00a19a19b78acmr1900607ejc.111.1702027374912;
        Fri, 08 Dec 2023 01:22:54 -0800 (PST)
Message-ID: <5c26e012e16b8170cf0da03c252355e820c95179.camel@gmail.com>
Subject: Re: [PATCH v2 09/39] xen/riscv: introduce asm/guest_atomics.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Fri, 08 Dec 2023 11:22:53 +0200
In-Reply-To: <9f894049-ce44-41a4-b470-a27b7b46f26d@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <48ecbc771d3870eee86dd11a19f0dd9029e93c01.1700761381.git.oleksii.kurochko@gmail.com>
	 <9f894049-ce44-41a4-b470-a27b7b46f26d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

T24gVGh1LCAyMDIzLTEyLTA3IGF0IDE1OjIwICswMTAwLCBKYW4gQmV1bGljaCB3cm90ZToKPiBP
biAyNC4xMS4yMDIzIDExOjMwLCBPbGVrc2lpIEt1cm9jaGtvIHdyb3RlOgo+ID4gLS0tIC9kZXYv
bnVsbAo+ID4gKysrIGIveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZ3Vlc3RfYXRvbWljcy5o
Cj4gPiBAQCAtMCwwICsxLDQ4IEBACj4gPiArI2lmbmRlZiBfX0FTTV9SSVNDVl9HVUVTVF9BVE9N
SUNTX0gKPiA+ICsjZGVmaW5lIF9fQVNNX1JJU0NWX0dVRVNUX0FUT01JQ1NfSAo+ID4gKwo+ID4g
Ky8qCj4gPiArICogVE9ETzogaW1wbGVtZW50IGd1ZXN0IGF0b21pY3MKPiA+ICsgKi8KPiAKPiBB
bG9uZyB3aXRoIHRoaXMsIHdvdWxkbid0IGl0IGJlIGJldHRlciB0byBoYXZlIGUuZy4KPiBBU1NF
UlRfVU5SRUFDSEFCTEUoKQo+IGluIHRoZSB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucz8KVGhhbmtz
IGZvciByZWNvbW1lbmRhdGlvbi4gSXQgd291bGQgYmUgYmV0dGVyIHRvIGFkZApBU1NFUlRfVU5S
RUFDSEFCTEUuCgp+IE9sZWtzaWkKPiAKPiA+ICsjZGVmaW5lCj4gPiBndWVzdF90ZXN0b3AobmFt
ZSnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gXAo+ID4gK3N0
YXRpYyBpbmxpbmUgaW50IGd1ZXN0XyMjbmFtZShzdHJ1Y3QgZG9tYWluICpkLCBpbnQgbnIsIHZv
bGF0aWxlCj4gPiB2b2lkICpwKcKgIFwKPiA+ICt7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gwqDCoMKg
wqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKgwqAgKHZvaWQpCj4gPiBkO8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4g
K8KgwqDCoCAodm9pZCkKPiA+IG5yO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKgwqAgKHZvaWQpCj4gPiBw
O8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gwqDCoMKgwqDCoMKgwqDC
oMKgIFwKPiA+ICvCoMKgwqAgcmV0dXJuCj4gPiAwO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gK30KPiA+ICsK
PiA+ICsjZGVmaW5lCj4gPiBndWVzdF9iaXRvcChuYW1lKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAKPiA+IFwKPiA+ICtzdGF0aWMgaW5saW5lIHZvaWQgZ3Vlc3Rf
IyNuYW1lKHN0cnVjdCBkb21haW4gKmQsIGludCBuciwgdm9sYXRpbGUKPiA+IHZvaWQgKnApIFwK
PiA+ICt7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKg
wqAgKHZvaWQpCj4gPiBkO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoCAodm9pZCkKPiA+IG5yO8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIFwKPiA+ICvCoMKgwqAgKHZvaWQpCj4gPiBwO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gK30KPiA+
ICsKPiA+ICtndWVzdF9iaXRvcChzZXRfYml0KQo+ID4gK2d1ZXN0X2JpdG9wKGNsZWFyX2JpdCkK
PiA+ICtndWVzdF9iaXRvcChjaGFuZ2VfYml0KQo+ID4gKwo+ID4gKyN1bmRlZiBndWVzdF9iaXRv
cAo+ID4gKwo+ID4gK2d1ZXN0X3Rlc3RvcCh0ZXN0X2FuZF9zZXRfYml0KQo+ID4gK2d1ZXN0X3Rl
c3RvcCh0ZXN0X2FuZF9jbGVhcl9iaXQpCj4gPiArZ3Vlc3RfdGVzdG9wKHRlc3RfYW5kX2NoYW5n
ZV9iaXQpCj4gPiArCj4gPiArI3VuZGVmIGd1ZXN0X3Rlc3RvcAo+ID4gKwo+ID4gKyNkZWZpbmUg
Z3Vlc3RfdGVzdF9iaXQoZCwgbnIsIHApICgodm9pZCkoZCksIHRlc3RfYml0KG5yLCBwKSkKPiA+
ICsKPiA+ICsjZW5kaWYgLyogX19BU01fUklTQ1ZfR1VFU1RfQVRPTUlDU19IICovCj4gPiArLyoK
PiA+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gPiArICogbW9kZTogQwo+ID4gKyAqIGMtZmlsZS1z
dHlsZTogIkJTRCIKPiA+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ID4gKyAqIGluZGVudC10YWJz
LW1vZGU6IG5pbAo+ID4gKyAqIEVuZDoKPiA+ICsgKi8KPiAKCg==



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:29:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:29:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650483.1016061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXAX-00079F-A5; Fri, 08 Dec 2023 09:29:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650483.1016061; Fri, 08 Dec 2023 09:29:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXAX-000798-6g; Fri, 08 Dec 2023 09:29:13 +0000
Received: by outflank-mailman (input) for mailman id 650483;
 Fri, 08 Dec 2023 09:29: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=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBXAW-000792-8U
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:29:12 +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 3ea3b9a7-95ac-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:29:11 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-54f4fa5002cso479326a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:29:11 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 h28-20020a50cddc000000b0054c72a6a07csm658637edj.84.2023.12.08.01.29.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:29:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ea3b9a7-95ac-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702027751; x=1702632551; 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=JMjA1wtJJqbSWKD0AMloJDqfI3uGTSgWvPpQB3f2m4k=;
        b=l7/6ZRRuL0w/olrrMMWw0RJelMt4LP+frpafcDiKkgnHVaCzLbZlS+6XLEgIOjzvmi
         Oo/Z8XzMc2JuP6EvTc69S0T2f0tBqQ+KV/0Z3UCgqxXUSEOQlf0xV8Y26f3DD9AJIVTN
         z0LrtV3KiCc7fX8mjJXmFvCX/G+XNaK/u0iblzOTDBDJVG43DoB01OK7OADjjb4MuVTB
         4QAS9RVVSexwkggAcAx+UDYuVO0Jzy2iE2M4/iYC5KodvFNR3D21g2GTxSsc/ws/v0BI
         JtEDWrzXKRm+2j4uzPboIQt1hA4kZIEP4VZWrsnWPBnr5oTejmyOrzKiFNBYOVylRNAQ
         Sy9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702027751; x=1702632551;
        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=JMjA1wtJJqbSWKD0AMloJDqfI3uGTSgWvPpQB3f2m4k=;
        b=sMs9Y7Bd/ufTsBCfrQyV0Kl+MFy79QqwMCKmSuXRw0TFRj+y/JJmxEKHbGymPNW7ev
         sw4N3gBq+pLxkzwYk8j3/+O3MsfAHvTQHXUbCxQ2qftnorkqlvX8eqft30GfAVvwxE6L
         IRNUh1CFPDqB/XRWdiQgQka6IdwVabsI/9mOWrAyHeRaw0MZMXtjamA5nQR9noLNlJyV
         2OIFrZdgzdwzQNXvKPGJiyVSDcWdOVftBIDwKMo+tjk+7k+hkAsEc1AmafMxZQOZW2j6
         hcYUyTWdSCuLew4NVdKy2MTiQ4fuz+I0qDOq4Z0x6Vh7WqmDvTiH+/sHvWFNCJtadzX/
         b+1Q==
X-Gm-Message-State: AOJu0Yy5VsUniR7wtjW2TGLNNt2YJSLjJN54d4po0q9WT2482nG2x3Pi
	9B2QZLYxXmpajVTgld2G8T8=
X-Google-Smtp-Source: AGHT+IEM809BkAsjafgHqTC7TqRqM9CAnTzoNKn37+iR6rBDkU3+2j+7xEjJR3Mtw5ju+z4a5Z38pQ==
X-Received: by 2002:aa7:d3c1:0:b0:54c:f2ff:a540 with SMTP id o1-20020aa7d3c1000000b0054cf2ffa540mr2636469edr.67.1702027750654;
        Fri, 08 Dec 2023 01:29:10 -0800 (PST)
Message-ID: <cdc3fe19d7e9e60c348eb1c25c716ecb9486a664.camel@gmail.com>
Subject: Re: [PATCH v2 10/39] xen/riscv: introduce asm/iommu.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Fri, 08 Dec 2023 11:29:09 +0200
In-Reply-To: <ca13b1b0-8b96-47b0-abc5-9711f96ccca0@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <68be3d368bf6ed96b0bb53b51a2fd07696cb338d.1700761381.git.oleksii.kurochko@gmail.com>
	 <ca13b1b0-8b96-47b0-abc5-9711f96ccca0@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 15:22 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/iommu.h
> > @@ -0,0 +1,7 @@
> > +#ifndef __ASM_RISCV_IOMMU_H__
> > +#define __ASM_RISCV_IOMMU_H__
> > +
> > +struct arch_iommu {
> > +};
> > +
> > +#endif /* __ASM_IOMMU_H__ */
>=20
> Instead of adding this header, didn't we discuss to make the #include
> in
> xen/iommu.h depend on CONFIG_HAS_PASSTHROUGH? Also - no SPDX or
> footer
> here?
We had discussion about some stuff in device.h, but we can apply it
here too. Only to place will be needed to update:


+ #ifdef CONFIG_HAS_PASSTHROUGH
#include <asm/iommu.h>
+ #endif

#ifndef iommu_call
# define iommu_call(ops, fn, args...) ((ops)->fn(args))
# define iommu_vcall iommu_call
#endif

struct domain_iommu {
+ #ifdef CONFIG_HAS_PASSTHROUGH
    struct arch_iommu arch;
+ #endif
...

I'll do that in the next iteration of this patch series.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:34:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:34:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650489.1016071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXF8-0000kj-T3; Fri, 08 Dec 2023 09:33:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650489.1016071; Fri, 08 Dec 2023 09:33:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXF8-0000kc-OZ; Fri, 08 Dec 2023 09:33:58 +0000
Received: by outflank-mailman (input) for mailman id 650489;
 Fri, 08 Dec 2023 09:33:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBXF8-0000kN-2v
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:33:58 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e931b83c-95ac-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:33:57 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-54ca43031d1so1734712a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:33:57 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 ry9-20020a1709068d8900b00a1f744953c1sm144307ejc.105.2023.12.08.01.33.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:33:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e931b83c-95ac-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702028037; x=1702632837; 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=H2UbHVSImPglhDCKTYh7VNNFG5Ccxw43XsWwlpypRfY=;
        b=bRRxcImC4XHzgHnnva7iXSd/KvTPEe6Jkm4Ojtn31WbKg7x8WuJQxMNjOrGUdz5vR2
         CJnyMZgavUqmWc9COa6H4fwNYIc3WBO9GW5j26kHaxqzXKLLOnhJA9mIcDS5mQOk3BW0
         bkZombAhJD3oN6rE1dsuZBZ3ukl/H5wE8ZM0pbNV/qyNozPbiYxMhqOC3U0mamx2qpBC
         KzTXmrBbH11x8dww/4SWGP6ZjJikXxe5yfd07A48eOqOU2h+NFB+K5CJipuukB+d9uGR
         hSDZhIijmVS5HEW3Z5vdFTeQl6Y1aWzNlrFsdmF+JdproSr3ydyiTBNskYJMWCi5RT6M
         Xr6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702028037; x=1702632837;
        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=H2UbHVSImPglhDCKTYh7VNNFG5Ccxw43XsWwlpypRfY=;
        b=buOPmSch/NoUEEDP/G0Gf/5/fxHtPwI1HpoP3oNxsISDOqwTSvmbf9EKF6NYFwimUt
         VIsgZ5N04qDjGcmKSfeUqQvMAQfVT38ubvGSx76QPDjxpeTIE8jYHLMFLLsf+FeI2Oma
         J3NtLISh2ODkb8JHtguMmxEC1Ti5fhxtVy34y3thVmHRVZZd2TVMxEZvdFP+Or9l+jdO
         rnQLkCtjQv13MMa/i5VJvsHHIhcZoANSD4tK3p85Rc5rRQSIv+dPHOgoCdy1QdB+d/3o
         QXOWYuIGwKcFGemsB1BGJgX0xPSUJKBwmJr0AimNa04SYIu7RCkavMpF8LGbceZGcLXD
         5lgg==
X-Gm-Message-State: AOJu0YxXfBVdPmO4DI6hD+jc16n3qqGh1hawbmAavuGvHeepguUXyxwH
	JUEivsSf4cJj7Rns8XH26Co=
X-Google-Smtp-Source: AGHT+IHV37JysTqwrnFX6XevDQOfHN22epga3Ha947S38oXYec3YGh2TlU+exLSDNtFsOjM/QcvClg==
X-Received: by 2002:a17:906:2618:b0:a09:e781:97ef with SMTP id h24-20020a170906261800b00a09e78197efmr2094588ejc.73.1702028036744;
        Fri, 08 Dec 2023 01:33:56 -0800 (PST)
Message-ID: <484d52564ea8b800d1eb39f1ef899c1a3044fc53.camel@gmail.com>
Subject: Re: [PATCH v2 11/39] xen/riscv: introduce asm/nospec.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Fri, 08 Dec 2023 11:33:55 +0200
In-Reply-To: <028532fb-55d4-4a08-9b93-9ae29ed8e37c@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <aa2ff1df494f82f7c045f913371d3b9d04962a5e.1700761381.git.oleksii.kurochko@gmail.com>
	 <028532fb-55d4-4a08-9b93-9ae29ed8e37c@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 15:28 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/nospec.h
> > @@ -0,0 +1,25 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights
> > Reserved. */
> > +
> > +#ifndef _ASM_RISCV_NOSPEC_H
> > +#define _ASM_RISCV_NOSPEC_H
> > +
> > +static inline bool evaluate_nospec(bool condition)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return condition;
> > +}
> > +
> > +static inline void block_speculation(void)
> > +{
> > +}
> > +
> > +#endif /* _ASM_RISCV_NOSPEC_H */
>=20
> This being identical between Arm, PPC, and now RISC-V, wouldn't this
> be another
> asm-generic/ candidate? (Whether such trivial stubs are copyrightable
> is, as
> per earlier remarks, at least questionable to me.)
It is a good candidate to be moved to asm-generic. Thanks for notice
that. I'll update move this patch to generic headers patch series.

I am not sure too but the copyright was presented in Arm's file and
RISC-V's version is just a copy so I decided to leave it.
Does any documented rule exist in which cases copyright should be and
not?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:38:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:38:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650493.1016081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXJf-0001ta-Gv; Fri, 08 Dec 2023 09:38:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650493.1016081; Fri, 08 Dec 2023 09: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 1rBXJf-0001tT-EN; Fri, 08 Dec 2023 09:38:39 +0000
Received: by outflank-mailman (input) for mailman id 650493;
 Fri, 08 Dec 2023 09:38: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=NxGJ=HT=bounce.vates.tech=bounce-md_30504962.6572e3fd.v1-f04b9bf8881943c8a4a23603259e6460@srs-se1.protection.inumbo.net>)
 id 1rBXJA-0001rD-CN
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:38:08 +0000
Received: from mail187-18.suw11.mandrillapp.com
 (mail187-18.suw11.mandrillapp.com [198.2.187.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d38214b-95ad-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:38:06 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-18.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4SmmK91dMnzCf9KVl
 for <xen-devel@lists.xenproject.org>; Fri,  8 Dec 2023 09:38:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f04b9bf8881943c8a4a23603259e6460; Fri, 08 Dec 2023 09:38:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d38214b-95ad-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
	s=mandrill; t=1702028285; x=1702288785; i=yann.dirson@vates.tech;
	bh=nVnZrNSLMyfJmGGahPubRFuseiUrvdIGOKRpgTJzslQ=;
	h=From:Subject:Message-Id:To:Cc:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=YfkuweZJfyw3r99PGS2kWQi/iArxFC76dtGIxQq967KePME4R0mJ2SKFpq1Ilo2/o
	 eHK5nYpGxmazQd5yzHO+Gol+Ry1NRe1vNWu/Lx7MvztDi18N7L1NhJgPkqdjbEa0q2
	 cTc6FEVKxQ8p+l7AkPz3PqgroB0PITwNa7oc0/iQ=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
 i=@mandrillapp.com; q=dns/txt; s=mandrill; t=1702028285; h=from :
 subject : message-id : to : cc : date : mime-version : content-type :
 content-transfer-encoding : from : x-mandrill-user : list-unsubscribe;
 bh=nVnZrNSLMyfJmGGahPubRFuseiUrvdIGOKRpgTJzslQ=;
 b=QbixvZ2w9ruNdOEGSGbQSC6Ri5LxuVJrLRG+ZrosCnos3qwwXnLad+W68l8w2uvpbAQjw
 Xjm+fMvxEPexRxC/nzUe/6QQGKmMjhY5dYy5RQ/VkqhzsHZWXqUbSXzf9pnVyprE50bKCZo
 H0Un7gC/w9+97HO9B89fw24gCch+lUA=
From: Yann Dirson <yann.dirson@vates.tech>
Subject: =?utf-8?Q?Next=20steps=20for=20Rust=20guest=20agent?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1702028284197
Message-Id: <aea51d2e-5da8-4da8-954f-2ee2a43be73e@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: dpsmith@apertussolutions.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.f04b9bf8881943c8a4a23603259e6460?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20231208:md
Date: Fri, 08 Dec 2023 09:38:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Current status:
- primary goal: to have one guest agent all downstreams can use, in all 
guests (with Linux and FreeBSD already supported), as efficient as 
possible (with Netlink already supported on Linux)
- developed at https://gitlab.com/xen-project/xen-guest-agent (till now 
using gitlab PRs)
- works fine as a replacement for the Xenserver xe-guest-utilities

Some points raised during the community call:
- we likely want first to agree on a core set of collected information
- could be made more configurable (eg. define a xenstore schema at 
runtime, we don't want specific schemas needs to cause forks)
   -> it could be the agent requesting a specific xenstore schema
- what should be the criteria to advertise it as official Xenproject 
guest agent ?


Yann Dirson | Vates Platform Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:43:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:43:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650497.1016090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXO2-00043o-1o; Fri, 08 Dec 2023 09:43:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650497.1016090; Fri, 08 Dec 2023 09:43: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 1rBXO1-00043h-VQ; Fri, 08 Dec 2023 09:43:09 +0000
Received: by outflank-mailman (input) for mailman id 650497;
 Fri, 08 Dec 2023 09:43:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBXO0-000425-8r
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:43:08 +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 302c6991-95ae-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:43:06 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-9e1021dbd28so247145266b.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:43:06 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 mb8-20020a170906eb0800b00a1de512fa1fsm777782ejb.186.2023.12.08.01.43.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:43:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 302c6991-95ae-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702028585; x=1702633385; 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=TBFXRlxfSFsiVB4InwckoGKMhnTBJztIMhK2AdvjcPk=;
        b=W1sglXZIcftf7/Huf0SZu+1GLFIBd/4M1JU39lkKjp1yFxwKoL+itFOnsZEXJHe7jh
         3F9+xzDLih+xlFEL/fhsoS8Kykb8IPAj6ctaD+P/egY14WW7LKINLEPrvBjGbmPjHi2/
         Pvm8iVjfG4Mb1xfrEMRVsxfsiVtXvILjtvnpI70Yjhl7LCyI4llWeFPG+vcA3J+a5Zrc
         L9V91swL2QeXLQaIxWQrwJ91oLxpFBTwN5o7XZnZ/ql6bLKGBzz8QBUS5DO903g4UTIY
         tIra8DOqOWiGvAncJ9TPv3R4j8Q2EsjOqLyGC/zjadqTX+EIeHXDXTgOeB7OuTI9AbNH
         LQzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702028585; x=1702633385;
        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=TBFXRlxfSFsiVB4InwckoGKMhnTBJztIMhK2AdvjcPk=;
        b=sKv3iC+zD9k0NqSZt9t+BFUKPXuEd/49fAIJoUTK9qlRo0lWnorVnAbLWL2BNVFpda
         h2RRhuU42PyqHVNDahuzehBzQ+GeeHUCIf3r8uPrx4DXJWDuyOmPVM1AROe/wsl9E1Hp
         b8XCZjlQlAUlp4zRNkV0VES874HUV5RPNmZ5nUSf/YRPeMG2SOp+i4Cjr+ikz5RNhNbm
         hB27V/OQ6cVLcXrUT1HNQ0Uc37Y0nlUDGzerDseENBjfK3oaGx0riV3/Qv98j2hUFcKZ
         2c4f6qHwwN9qHbRFTkVFB7VsbuYDZUGsMSJyVyndwhrJiKBJcP2KHY0XnVC3jQ4V7e/r
         SK4g==
X-Gm-Message-State: AOJu0YyRrh9CQ4MbCzjC6+GyXFgN4V23frtX73ZCdVvbN1w7dRo9/zNt
	KRLJyM+eM9vpWKDqsq4XLIQ=
X-Google-Smtp-Source: AGHT+IHidMwjq4Cq8VSiW0Xit4XIZTett3Z+TIjPLsLi/YhYf2dXwz1EWIjk3+J/EBhsEUK5Yx4NEw==
X-Received: by 2002:a17:906:16c4:b0:a0d:38b0:7286 with SMTP id t4-20020a17090616c400b00a0d38b07286mr2103577ejd.69.1702028585533;
        Fri, 08 Dec 2023 01:43:05 -0800 (PST)
Message-ID: <69be4bce2a1a87bb4ed6c73a388d637fb233222a.camel@gmail.com>
Subject: Re: [PATCH v2 13/39] xen/riscv: introduce asm/system.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Fri, 08 Dec 2023 11:43:04 +0200
In-Reply-To: <671d903b-8135-4b30-a197-36bffed180da@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <3007fb3d841dbaa078bb5b7af699c883356badca.1700761381.git.oleksii.kurochko@gmail.com>
	 <671d903b-8135-4b30-a197-36bffed180da@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

T24gVGh1LCAyMDIzLTEyLTA3IGF0IDE2OjA3ICswMTAwLCBKYW4gQmV1bGljaCB3cm90ZToKPiBP
biAyNC4xMS4yMDIzIDExOjMwLCBPbGVrc2lpIEt1cm9jaGtvIHdyb3RlOgo+ID4gLS0tIC9kZXYv
bnVsbAo+ID4gKysrIGIveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3lzdGVtLmgKPiA+IEBA
IC0wLDAgKzEsNzkgQEAKPiA+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAq
Lwo+ID4gKwo+ID4gKyNpZm5kZWYgX0FTTV9SSVNDVl9CQVJSSUVSX0gKPiA+ICsjZGVmaW5lIF9B
U01fUklTQ1ZfQkFSUklFUl9ICj4gPiArCj4gPiArI2luY2x1ZGUgPGFzbS9jc3IuaD4KPiA+ICsK
PiA+ICsjaWZuZGVmIF9fQVNTRU1CTFlfXwo+ID4gKwo+ID4gKyNkZWZpbmUgUklTQ1ZfRkVOQ0Uo
cCwgcykgXAo+ID4gK8KgwqDCoCBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZlbmNlICIgI3AgIiwi
ICNzIDogOiA6ICJtZW1vcnkiKQo+IAo+IE5pdCAoc3R5bGUpOiBNaXNzaW5nIGJsYW5rcyBpbW1l
ZGlhdGVseSBpbnNpZGUgdGhlIHBhcmVudGhlc2VzLgpUaGFua3MgZm9yIHRoZSBjb21tZW50LiBJ
J2xsIHVwZGF0ZSBjb2RlIHN0eWxlLgoKPiAKPiA+ICsvKiBUaGVzZSBiYXJyaWVycyBuZWVkIHRv
IGVuZm9yY2Ugb3JkZXJpbmcgb24gYm90aCBkZXZpY2VzIG9yCj4gPiBtZW1vcnkuICovCj4gPiAr
I2RlZmluZSBtYigpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUklTQ1Zf
RkVOQ0UoaW9ydyxpb3J3KQo+ID4gKyNkZWZpbmUgcm1iKCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgUklTQ1ZfRkVOQ0UoaXIsaXIpCj4gPiArI2RlZmluZSB3bWIoKcKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBSSVNDVl9GRU5DRShvdyxvdykKPiAKPiBO
aXQgKHN0eWxlKTogTWlzc2luZyBibGFua3MgYWZ0ZXIgdGhlIGNvbW1hcyAoYWxzbyBhZ2FpbiBi
ZWxvdykuClRoYW5rcyBmb3IgdGhlIGNvbW1lbnQuIEknbGwgdXBkYXRlIGNvZGUgc3R5bGUuCgo+
IAo+ID4gKy8qIFRoZXNlIGJhcnJpZXJzIGRvIG5vdCBuZWVkIHRvIGVuZm9yY2Ugb3JkZXJpbmcg
b24gZGV2aWNlcywganVzdAo+ID4gbWVtb3J5LiAqLwo+ID4gKyNkZWZpbmUgc21wX21iKCnCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUklTQ1ZfRkVOQ0UocncscncpCj4gPiArI2RlZmlu
ZSBzbXBfcm1iKCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFJJU0NWX0ZFTkNFKHIscikK
PiA+ICsjZGVmaW5lIHNtcF93bWIoKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUklTQ1Zf
RkVOQ0Uodyx3KQo+ID4gKyNkZWZpbmUgc21wX21iX19iZWZvcmVfYXRvbWljKCkgc21wX21iKCkK
PiA+ICsjZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfYXRvbWljKCnCoCBzbXBfbWIoKQo+ID4gKwo+ID4g
Ky8qCj4gPiArI2RlZmluZSBfX3NtcF9zdG9yZV9yZWxlYXNlKHAsIHYpwqDCoMKgwqDCoMKgIFwK
PiAKPiBJcyB0aGVyZSBhIG5lZWQgZm9yIHRoZSBkb3VibGUgdW5kZXJzY29yZXMgaGVyZT8gV2Ug
dHJ5IHRvIG5vdAo+IGludHJvZHVjZSBuZXcgaW5zdGFuY2VzIG9mIHVuZHVlIGxlYWRpbmcgdW5k
ZXJzY29yZXMsIGJ1dCB0aGVyZSBtaWdodAo+IGJlIGUuZy4gYSBzdHJvbmcgZGVzaXJlIHRvIHN0
YXkgaW4gc3luYyB3aXRoLCBzYXksIExpbnV4LgpJIGRvbid0IGhhdmUgc3VjaCBhIHN0cm9uZyBk
ZXNpcmUgdG8gYmUgaW4gc3luYyB3aXRoIExpbnV4IHNvIGxldCdzCnN0aWNrIHRvIFhlbiBjb2Rl
IHN0eWxlLiBJJ2xsIHVwZGF0ZSB0aGlzIHBsYWNlIGluIG5leHQgcGF0Y2ggdmVyc2lvbi4KCj4g
Cj4gPiArZG8ge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gKwljb21waWxldGltZV9hc3NlcnRfYXRvbWlj
X3R5cGUoKnApOyBcCj4gPiArCVJJU0NWX0ZFTkNFKHJ3LHcpO8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgXAo+ID4gKwlXUklURV9PTkNFKCpwLCB2KTvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIFwKPiAKPiBOaXQ6IENhbiB0aGUgdHJhaWxpbmcgYmFja3NsYXNo
ZXMgYmUgYWxpZ25lZCwgcGxlYXNlPwpTdXJlLiBJJ2xsIGFsaWduZWQgdGhlbS4gVGhhbmtzLgo+
IAo+ID4gK30gd2hpbGUgKDApCj4gPiArCj4gPiArI2RlZmluZSBfX3NtcF9sb2FkX2FjcXVpcmUo
cCnCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPiArKHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPiAr
wqDCoMKgIHR5cGVvZigqcCkgX19fcDEgPSBSRUFEX09OQ0UoKnApO8KgwqAgXAo+IAo+IEhtbSwg
eWV0IG1vcmUgbGVhZGluZyB1bmRlcnNjb3JlcywgYW5kIGhlcmUgc3VyZWx5IG5vdCBuZWVkZWQu
CkknbGwgdXBkYXRlIHRoZSBjb2RlIGFjY29yZGluZyB0byB5b3VyIHJlY29tbWVuZGF0aW9uLiBU
aGFua3MuCgo+IAo+ID4gK8KgwqDCoCBjb21waWxldGltZV9hc3NlcnRfYXRvbWljX3R5cGUoKnAp
OyBcCj4gPiArwqDCoMKgIFJJU0NWX0ZFTkNFKHIscncpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoCBfX19wMTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+ICt9KQo+ID4gKyovCj4gPiAr
Cj4gPiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGxvY2FsX3NhdmVfZmxhZ3Modm9pZCkK
PiA+ICt7Cj4gPiArwqDCoMKgIHJldHVybiBjc3JfcmVhZChzc3RhdHVzKTsKPiA+ICt9Cj4gPiAr
Cj4gPiArc3RhdGljIGlubGluZSB2b2lkIGxvY2FsX2lycV9lbmFibGUodm9pZCkKPiA+ICt7Cj4g
PiArwqDCoMKgIGNzcl9zZXQoc3N0YXR1cywgU1NUQVRVU19TSUUpOwo+ID4gK30KPiA+ICsKPiA+
ICtzdGF0aWMgaW5saW5lIHZvaWQgbG9jYWxfaXJxX2Rpc2FibGUodm9pZCkKPiA+ICt7Cj4gPiAr
wqDCoMKgIGNzcl9jbGVhcihzc3RhdHVzLCBTU1RBVFVTX1NJRSk7Cj4gPiArfQo+ID4gKwo+ID4g
KyNkZWZpbmUgbG9jYWxfaXJxX3NhdmUoeCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+ICsoe8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKgwqAgeCA9IGNzcl9yZWFkX2NsZWFyKENTUl9TU1RB
VFVTLCBTU1RBVFVTX1NJRSk7wqDCoCBcCj4gPiArwqDCoMKgIGxvY2FsX2lycV9kaXNhYmxlKCk7
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwK
PiA+ICt9KQo+ID4gKwo+ID4gK3N0YXRpYyBpbmxpbmUgdm9pZCBsb2NhbF9pcnFfcmVzdG9yZSh1
bnNpZ25lZCBsb25nIGZsYWdzKQo+ID4gK3sKPiA+ICsJY3NyX3NldChDU1JfU1NUQVRVUywgZmxh
Z3MgJiBTU1RBVFVTX1NJRSk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbmxpbmUgaW50IGxv
Y2FsX2lycV9pc19lbmFibGVkKHZvaWQpCj4gPiArewo+ID4gK8KgwqDCoCB1bnNpZ25lZCBsb25n
IGZsYWdzID0gbG9jYWxfc2F2ZV9mbGFncygpOwo+ID4gKwo+ID4gK8KgwqDCoCByZXR1cm4gZmxh
Z3MgJiBTU1RBVFVTX1NJRTsKPiAKPiBTU1RBVFVTX1NJRSBkb2Vzbid0IGV2ZW4gaGFwcGVuIHRv
IGJlIDEsIHNvIEkgdGhpbmsgeW91J3JlIGJldHRlciBvZmYKPiBhZGRpbmcgIT0gMCwgdW5sZXNz
IHlvdSB3b3VsZCBkbyBhcyBJIHRoaW5rIEkgaGFkIHN1Z2dlc3RlZCBiZWZvcmUKPiBhbmQKPiBo
YXZlIHRoZSBmdW5jdGlvbiByZXR1cm4gYm9vbCByaWdodCBhd2F5LgpJdCBtYWtlcyBzZW5zZS4g
SSdsbCBhcHBseSB5b3VyIHJlY29tbWVuZGF0aW9ucyBpbiB0aGUgbmV4dCBwYXRjaAp2ZXJzaW9u
LgoKfiBPbGVrc2lpCgo=



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:50:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:50:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650508.1016101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXVN-0007AA-Oa; Fri, 08 Dec 2023 09:50:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650508.1016101; Fri, 08 Dec 2023 09:50:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXVN-0007A3-Ly; Fri, 08 Dec 2023 09:50:45 +0000
Received: by outflank-mailman (input) for mailman id 650508;
 Fri, 08 Dec 2023 09:50:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F8K7=HT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBXVM-00079x-7c
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:50:44 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2062a.outbound.protection.outlook.com
 [2a01:111:f400:7e8d::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f0e82e7-95af-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:50:41 +0100 (CET)
Received: from MN2PR05CA0045.namprd05.prod.outlook.com (2603:10b6:208:236::14)
 by BL1PR12MB5351.namprd12.prod.outlook.com (2603:10b6:208:317::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 09:50:38 +0000
Received: from MN1PEPF0000ECD9.namprd02.prod.outlook.com
 (2603:10b6:208:236:cafe::d7) by MN2PR05CA0045.outlook.office365.com
 (2603:10b6:208:236::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.17 via Frontend
 Transport; Fri, 8 Dec 2023 09:50:37 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD9.mail.protection.outlook.com (10.167.242.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 09:50:37 +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.34; Fri, 8 Dec
 2023 03:50:37 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 8 Dec
 2023 03:50:37 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Fri, 8 Dec 2023 03:50:35 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f0e82e7-95af-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fh/jvUH5MSTEPjQu7VBxVkbnbf4eZ6KNfn2Q75p6CvyvWjp42dGLsDTs6HGThI4+r299uyvw/WEWGp9PI/Szsiyh20hIENWpPn4Rnn2Ss4jFA98NoV52NxWBv8wQsdk31HQceKpCN3Ua0RQ8M0NCyM2MhPSvdh7vJOMo83EZMb8WV2ahFqqw6PJFcw7L/0rgqOPeAsR2AAZ0CC9tQa6+cUpChDYQu/PlFEEgii7muOynN5YDUfrzx5j7LGUsX9+rflE12HSBhJccquZYUNitsBzOhXa//JLqI5gprrJmaMtgU7HphiZj1mIaSAGR+YoryW54GRFN+SE/KGAqiKmbjw==
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=vNdMaqa7uOvWee7ed4S6Ndp+848+q7jX5ZBEXO9Bbvo=;
 b=Y95t6hPS5v33v2xvveDK/WY/LGO8Am+4GdvpRCk/NOuFXvXUJjxpy+PCIECOt0iThN2te3l0lv3qIaaedXecrDOBsDF1L86za8dUC2+dUAZ3Fxhlj3OlLNyISNY/7SGquF5ULWYrswSdgvF1zA+UkUFbC14fxddKgV9ZFQvtCxiFTSsnadbm44NZtbuyOunEddHwKyFkEVDwnRugGqzVOws+xxIw3mZVnGaru+POKOj6PUVTY4XI66t2e4a+Smbg8TudmVfqGGUm6T98JnPMXiBDrestj4I5ApYFUJ25G2yR0B3VvVndAgcId+eV8fd4D0UHR9kj2j5Jn7AX2h0vrw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vNdMaqa7uOvWee7ed4S6Ndp+848+q7jX5ZBEXO9Bbvo=;
 b=aTxI/tQ8LDwrqtCBY4A4N/FA3C6d1LkshqZBRnnmITKr8nxVM/75GSEm5IN74DJSmNcqBKjC9GNiEAdQuO0bG3ORj034agIzSa9/S5IRFe5cvRbg6ebdWOrQJCM2Q1V/7VPo9D1MK1HiFKq+KRYCg60aNYgAUodVkgSnjl9w9Xk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <2f34c0ec-0d94-48e2-bec0-faa96e1702f1@amd.com>
Date: Fri, 8 Dec 2023 10:50:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Content-Language: en-US
To: Henry Wang <Henry.Wang@arm.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei
 Chen <Wei.Chen@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
 <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
 <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
 <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
 <B9AFD918-42F6-4190-963B-E5A639D9F60E@arm.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <B9AFD918-42F6-4190-963B-E5A639D9F60E@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD9:EE_|BL1PR12MB5351:EE_
X-MS-Office365-Filtering-Correlation-Id: e3f23698-32a5-4486-1f0b-08dbf7d321a8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	oPNk6aJWYFaqph2ar8BdyT4Oun3AOSfLzCvQJHhzwCA/dhMFIOMDaFgN/fDww12160ywRR68DVcYzhLe0gsXVV2hnBvO2HujQ3Kmr4RnLgyYpdcGhfTdhwgQeUlGRSpYTQPN1C8U1VpnO89ZKRvHL6BYnkyq8F4xAp1G1u5ziEHyTRDe8iFtQN8/Myp/0B0nFfTjGIpR8Pw8ly1b4QhJj2Fs4ZyjQlXzRXzLoxVs9NjMgiM7NCBNAOvdZx1vqejjRu3t+jz5NyZwCij9kuVN3nM7kehnxFF7Ftg0JoRTy4CFlsvvPE6lEYInqyglb7bMxjt2kJtVsMG6/T0Jz1rJdgbxD+oNTpkVNb1SGKhGEGOKSZNFToAGvbhDKrSMeVOsC7tez3M7ILjbOiJWgCIkureQJqhNFxjpadtgtN9Gn2bmZQ8l0FqSzXBIxJYE2XKTsx3Eu+SuSlFLsiyUftnW45OhRNuKSN10h8Zti52pPRE0y3JP43WYRL5SISxHNvgBMAIuEnEn7bSl3LVVOv93DbaHnpTwZgKQ1CzGSFL6NQ/te4PElztVPpZd3flMvSh7Z3Ba3BCWSaDgoX1OUJHmXE7YlzGVCQUg6nsodKi14h5bFCUHE/1FhqFJXqUo4YhdmA2KoGCvciBlDMRhlCOv/eIXIknINoeA7PUuBKpHdpst+g5o6Ty0Y64cpG2VlbHlBv6x9/enRAl5SvvwVOvuhVnX0UFkiY22HerrQGNQ8K8oqv0um1cgnimD06tooBSZiUupy+7O25gGAfarRSiwhjGa+xFuoWPOpCvm9kjg1MF52IbwiE9lgyF02NwpJvxh
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(39860400002)(136003)(346002)(376002)(230922051799003)(64100799003)(186009)(82310400011)(1800799012)(451199024)(40470700004)(36840700001)(46966006)(54906003)(82740400003)(16576012)(31686004)(478600001)(316002)(70206006)(70586007)(36860700001)(6916009)(44832011)(8936002)(356005)(26005)(86362001)(336012)(4326008)(426003)(83380400001)(81166007)(53546011)(8676002)(40460700003)(40480700001)(47076005)(31696002)(2616005)(5660300002)(2906002)(36756003)(41300700001)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 09:50:37.7570
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e3f23698-32a5-4486-1f0b-08dbf7d321a8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECD9.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5351



On 08/12/2023 10:21, Henry Wang wrote:
> 
> 
> Hi Michal,
> 
>> On Dec 8, 2023, at 17:11, Michal Orzel <michal.orzel@amd.com> wrote:
>> On 08/12/2023 10:05, Henry Wang wrote:
>>>
>>> Hi Michal,
>>>
>>>> On Dec 8, 2023, at 16:57, Michal Orzel <michal.orzel@amd.com> wrote:
>>>>
>>>> Hi Henry,
>>>>
>>>> On 08/12/2023 06:46, Henry Wang wrote:
>>>>> diff --git a/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
>>>>> new file mode 100755
>>>>> index 0000000000..25d9a5f81c
>>>>> --- /dev/null
>>>>> +++ b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
>>>>> @@ -0,0 +1,73 @@
>>>>> +#!/usr/bin/expect
>>>>> +
>>>>> +set timeout 2000
>>>> Do we really need such a big timeout (~30 min)?
>>>> Looking at your test job, it took 16 mins (quite a lot but I know FVP is slow
>>>> + send_slow slows things down)
>>>
>>> This is a really good question. I did have the same question while working on
>>> the negative test today. The timeout 2000 indeed will fail the job at about 30min,
>>> and waiting for it is indeed not really pleasant.
>>>
>>> But my second thought would be - from my observation, the overall time now
>>> would vary between 15min ~ 20min, and having a 10min margin is not that crazy
>>> given that we probably will do more testing from the job in the future, and if the
>>> GitLab Arm worker is high loaded, FVP will probably become slower. And normally
>>> we donâ€™t even trigger the timeout as the job will normally pass. So I decided
>>> to keep this.
>>>
>>> Mind sharing your thoughts about the better value of the timeout? Probably 25min?
>> From what you said that the average is 15-20, I think we can leave it set to 30.
>> But I wonder if we can do something to decrease the average time. ~20 min is a lot
>> even for FVP :) Have you tried setting send_slow to something lower than 100ms?
>> That said, we don't send too many chars to FVP, so I doubt it would play a major role
>> in the overall time.
> 
> I agree with the send_slow part. Actually I do have the same concern, here are my current
> understanding and I think you will definitely help with your knowledge:
> If you check the full log of Dom0 booting, for example [1], you will find that we wasted so
> much time in starting the services of the OS (modloop, udev-settle, etc). All of these services
> are retried many times but in the end they are still not up, and from my understanding they
> wonâ€™t affect the actual test(?) If we can somehow get rid of these services from rootfs, I think
> we can save a lot of time.
> 
> And honestly, I noticed that qemu-alpine-arm64-gcc suffers from the same problem and it also
> takes around 15min to finish. So if we managed to tailor the services from the filesystem, we
> can save a lot of time.
That is not true. Qemu runs the tests relatively fast within few minutes. The reason you see e.g. 12 mins
for some Qemu jobs comes from the timeout we set in Qemu scripts. We don't have yet the solution (we could
do the same as Qubes script) to detect the test success early and exit before timeout. That is why currently
the only way for Qemu tests to finish is by reaching the timeout.

So the problem is not with the rootfs and services (the improvement would not be significant) but with
the simulation being slow. That said, this is something we all know and I expect FVP to only be used in scenarios
which cannot be tested using Qemu or real HW.

~Michal


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:51:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:51:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650509.1016111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXVf-0007TF-0X; Fri, 08 Dec 2023 09:51:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650509.1016111; Fri, 08 Dec 2023 09:51:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXVe-0007T8-TS; Fri, 08 Dec 2023 09:51:02 +0000
Received: by outflank-mailman (input) for mailman id 650509;
 Fri, 08 Dec 2023 09:51: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=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBXVd-00079x-UT
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:51:01 +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 4ac60b7f-95af-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:51:00 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-54ba86ae133so1732913a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:51:00 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 u30-20020a50951e000000b0054ca7afdf35sm668721eda.86.2023.12.08.01.50.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:50:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ac60b7f-95af-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702029060; x=1702633860; 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=qPkA9yP+EAExI7xc/q1nkjx9/raQgeMN8wrqj5tYVU0=;
        b=eVKe3XAWIctbq2sha77htYvWOgKrmdSYoF9hXTDuWxpR85E50X5VUH1KOJUdQEgbZJ
         NDPuOarC53Yp7YHhgvVPQoTwZn0z9gaTjnqMudzBM9syEqo30UTkhgbKt2+W5QtBFnQM
         PCGo8XT8WKPdkbJi0ZyH+nslBELmI1dJcJIPhFSMUmdrNqrpq4e/kPEHYPwVaSbk6ZUZ
         3W/aYsPxh94u1ieaf1/oi6N3Zgc/sE33IDXEhVIY5wYx6e4zWzY5EiCgY0oKE2J4Qm+X
         SCCG1G5QR15ayYywId+Iri0Enx4UZz1+GbW2D3doiCPgj51BHYUoVbXnc9qp7CPDoklc
         Oo/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702029060; x=1702633860;
        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=qPkA9yP+EAExI7xc/q1nkjx9/raQgeMN8wrqj5tYVU0=;
        b=Waa0lsFVgN8TSuJ2Tn0eaavUqqcyPzobMpGIrKVmFddFq5CRg3OB97VqZJeu2AANyg
         jy7WcqcmTlMMQHtyC7GbONVOWv+NnwnGfTVist7AbFuQPBea6ezML5UkpB7NrLpFALtf
         hyXKDDW5fhXqYYzszOiX+lbiPHeKrYhdWtE6Arwps606/sFl0JyeGK0vUpAS2Lk6ZB6O
         xnSfxsDq596k1e9hFllnvgb7oFAOSp8QcPZ0k5s23yxH4q0HKWYXOawtAsnM2suNGzo8
         E2JUHAfM34Q2oopCSdf/p9p45fsb4dNaE5mWy/ItVYndEyStmiaKq1+PeAPPVe5o1Ykf
         M7kA==
X-Gm-Message-State: AOJu0YzYkmZa+gSl/QUw/W8Ddghypz8eXx8Soiqpnp1FNE7DDNda1f/a
	Gh6LO4zOjyg7Up/djv7umbc=
X-Google-Smtp-Source: AGHT+IGXmZ8WMx1Hza5cJ+8eKgHaXAVk3SIcUEvVbF9f3T9kJTo4G5ELAVimQv18ipR0lEq/yiw1TA==
X-Received: by 2002:a05:6402:8cc:b0:54b:922:1f4f with SMTP id d12-20020a05640208cc00b0054b09221f4fmr2439777edz.28.1702029059505;
        Fri, 08 Dec 2023 01:50:59 -0800 (PST)
Message-ID: <6708ee9eaa8a818001942ea16a38e06338cf9720.camel@gmail.com>
Subject: Re: [PATCH v2 14/39] xen/riscv: introduce bitops.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Fri, 08 Dec 2023 11:50:58 +0200
In-Reply-To: <fff80a7f-75f7-4e91-be1a-bc7fd683b94d@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <a9c69e17fe073551e7007242d00b74b6333ce98d.1700761381.git.oleksii.kurochko@gmail.com>
	 <fff80a7f-75f7-4e91-be1a-bc7fd683b94d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 16:37 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> So this looks to have been taken from Linux, which could do with
> saying
> (including which version or most recent commit). It may e.g. justify
> you
> using tab indentation here, albeit ...
Thanks. I'll update the commit message.

>=20
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/bitops.h
> > @@ -0,0 +1,288 @@
> > +/* 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>
> > +
> > +#define BITOP_BITS_PER_WORD=C2=A0=C2=A0=C2=A0=C2=A0 32
> > +#define BITOP_MASK(nr)	=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (1UL=
 << ((nr) %
> > BITOP_BITS_PER_WORD))
> > +#define BITOP_WORD(nr)	=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ((nr=
) / BITOP_BITS_PER_WORD)
> > +#define BITS_PER_BYTE	=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 8
> > +
> > +#define __set_bit(n,p)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 set_bit(n,p)
> > +#define __clear_bit(n,p)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cle=
ar_bit(n,p)
>=20
> ... then please consistently. Other style related remarks made on the
> system.h patch apply here as well (unless again there's a goal of
> keeping the diff to the Linux original small; yet then I guess the
> delta to the Linux file is already pretty large).
>=20
> > +/* Based on linux/include/asm-generic/bitops/find.h */
> > +
> > +#ifndef find_next_bit
> > +/**
> > + * find_next_bit - find the next set bit in a memory region
> > + * @addr: The address to base the search on
> > + * @offset: The bitnumber to start searching at
> > + * @size: The bitmap size in bits
> > + */
> > +extern unsigned long find_next_bit(const unsigned long *addr,
> > unsigned long
> > +		size, unsigned long offset);
> > +#endif
> > +
> > +#ifndef find_next_zero_bit
> > +/**
> > + * find_next_zero_bit - find the next cleared bit in a memory
> > region
> > + * @addr: The address to base the search on
> > + * @offset: The bitnumber to start searching at
> > + * @size: The bitmap size in bits
> > + */
> > +extern unsigned long find_next_zero_bit(const unsigned long *addr,
> > unsigned
> > +		long size, unsigned long offset);
> > +#endif
> > +
> > +/**
> > + * find_first_bit - find the first set bit in a memory region
> > + * @addr: The address to start the search at
> > + * @size: The maximum size to search
> > + *
> > + * Returns the bit number of the first set bit.
> > + */
> > +extern unsigned long find_first_bit(const unsigned long *addr,
> > +				=C2=A0=C2=A0=C2=A0 unsigned long size);
> > +
> > +/**
> > + * find_first_zero_bit - find the first cleared bit in a memory
> > region
> > + * @addr: The address to start the search at
> > + * @size: The maximum size to search
> > + *
> > + * Returns the bit number of the first cleared bit.
> > + */
> > +extern unsigned long find_first_zero_bit(const unsigned long
> > *addr,
> > +					 unsigned long size);
>=20
> Looking over the titles of the rest of the series, I can't spot where
> these are going to be implemented. The again maybe you indeed can get
> away without those, at least initially.
It's introduced in:
	[PATCH v2 21/39] xen/riscv: introduce bit operations
I think we have to merge this patch with patch 21.
>=20
> > +#define ffs(x) ({ unsigned int __t =3D (x); fls(__t & -__t); })
>=20
> This wants to use ISOLATE_LSB() now.
>=20
~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:53:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:53:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650514.1016120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXY1-0000CC-G2; Fri, 08 Dec 2023 09:53:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650514.1016120; Fri, 08 Dec 2023 09:53: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 1rBXY1-0000C5-DM; Fri, 08 Dec 2023 09:53:29 +0000
Received: by outflank-mailman (input) for mailman id 650514;
 Fri, 08 Dec 2023 09:53: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=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBXY0-0000Am-7R
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:53:28 +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 a1dc7dd1-95af-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:53:26 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-54c70c70952so2664574a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:53:26 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 vw11-20020a170907a70b00b00a1cbb055575sm787513ejc.180.2023.12.08.01.53.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:53:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1dc7dd1-95af-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702029206; x=1702634006; 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=0VUxLyNi6dnErmrZDMBJXzOAhHsUtspxp/ce1cVvzMs=;
        b=h2iLj2rKBY8YksQz5zHOhDakrtiyT5MrFCMr594CDsGchF+ym405G8mR1vzDKMLARM
         7efVB2RppL+X95zZIc4YXRpLBbwssCXk5EucydzoAF/1M/YxRrs+OrnXbMQZJKxPOt5m
         6yx6IjaI7i0pPZPGtDeJBb/30lvdb+Bl24ro/cpUbEpv5d+/pld4Nn8YhrWyu0c0ZLZr
         apcBA9sS4d/rKzfxzVHhLj4UF9nQ+Ne0gFoKpKhWg6+cTh0sXzodJvQw+K9zqzeqx8v+
         xAFzwJs3RkSIfjT7q24LtCSRibOOVdN5iafrH5W8A5Uyl7G5mqkvyGpdLo3x7t65WhXm
         y6aQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702029206; x=1702634006;
        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=0VUxLyNi6dnErmrZDMBJXzOAhHsUtspxp/ce1cVvzMs=;
        b=jiN078UTP4C8RMnouBwMuy1G0Gu606EI4Jmi0+4xUYjx75ZKY9NLjMvzL/RcOUdXN0
         wB01WTIGdO/dqKomQV9nw/BKNOS+9AkvPgOijnFALIXAAI4pb7uSNdF6DbyHWreCXovh
         /eKTzIOW2MU95yI0ubO6Uq6Kda+zT9XeddPfPjyBjcNBODOfvL44JpjOobQPrx1Rrexa
         maz6icfEn5Xau4gOAxj9yc7G9y7qwMb3YuThDaPtbgDTgJLg2CvlfqyGciNOykFbAlSv
         0m17xOgp7JvEeWBuvdUYt6UB2YekH1h+2vWbmhN8jiUUEh9JAytmPOmbB9rSmGXI0xYN
         HVBA==
X-Gm-Message-State: AOJu0Yysm5LeJ8yuUddLOaWUwb5d2LenF+13XpG++qHLjcdCufynDaa1
	3/gUAM+8U3Y20EUmjLHLRYM=
X-Google-Smtp-Source: AGHT+IGy/mtgqlRsf2ha145nwBUrAAHWgi0iuKWpaVFnrcZxOiXpOjiowyRhTIAuJ4Z/1RY8VXHW3A==
X-Received: by 2002:a17:906:6852:b0:a19:9b79:8b45 with SMTP id a18-20020a170906685200b00a199b798b45mr1836677ejs.86.1702029205779;
        Fri, 08 Dec 2023 01:53:25 -0800 (PST)
Message-ID: <b8f50306e37ab137f5f9fa81fa4ccc794b488b36.camel@gmail.com>
Subject: Re: [PATCH v2 16/39] xen/riscv: introduce asm/smp.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Fri, 08 Dec 2023 11:53:24 +0200
In-Reply-To: <4e21bb44-5410-4676-a7a8-96f1d1729c27@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <39cc57e443d2df432f90361204c9edd802fcc320.1700761381.git.oleksii.kurochko@gmail.com>
	 <4e21bb44-5410-4676-a7a8-96f1d1729c27@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 16:43 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/smp.h
> > @@ -0,0 +1,23 @@
> > +#ifndef __ASM_RISCV_SMP_H
> > +#define __ASM_RISCV_SMP_H
> > +
> > +#ifndef __ASSEMBLY__
> > +#include <xen/cpumask.h>
> > +#include <xen/percpu.h>
> > +#endif
>=20
> If you want this to be possible to include from assembly files (I
> don't
> know why you would want that), ...
>=20
> > +DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_mask);
> > +DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
>=20
> ... these two would also need to live inside the #ifdef. Otherwise
> the
> #ifdef wants dropping.
I think we can just drop $ifdef. I am not sure that this header will be
used in assembly code.

>=20
> > +#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
>=20
> Seeing this is now the 4th instance, I guess we want to move it to
> xen/smp.h. I'll try to remember making a patch.
It will be nice.

Thanks.

>=20
> > +/*
> > + * Do we, for platform reasons, need to actually keep CPUs online
> > when we
> > + * would otherwise prefer them to be off?
> > + */
> > +#define park_offline_cpus false
> > +
> > +/* TODO: need to be implemeted */
> > +#define smp_processor_id() (0)
> > +
> > +#endif
> > \ No newline at end of file
>=20
> You want to take care of this.
Sure. I'll add a newline. Thanks for noticing that.

>=20
~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:56:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:56:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650520.1016131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXam-0001Ly-TI; Fri, 08 Dec 2023 09:56:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650520.1016131; Fri, 08 Dec 2023 09:56:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXam-0001Lr-Qf; Fri, 08 Dec 2023 09:56:20 +0000
Received: by outflank-mailman (input) for mailman id 650520;
 Fri, 08 Dec 2023 09:56:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=atw2=HT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rBXal-0001Ll-3Q
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:56:19 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 07881ea0-95b0-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 10:56:17 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-54c67b0da54so2550157a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 01:56:17 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 ty14-20020a170907c70e00b00a1d70804ac9sm794036ejc.33.2023.12.08.01.56.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 01:56:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 07881ea0-95b0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702029376; x=1702634176; 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=ZuUJz0w2QDEFSaIINhUTAFBDKTav9LnB69TlAIMd7mU=;
        b=P0i3w/fJpaPWa8AYUCsoDNLF49nWI0KNrhjjvWPd4tj4hQy654JvE9U7fEYgFlN//C
         rSvi+N0gF/QBD4j0V6YX11f79ozxDWcpvLpEL0WgaUJYeJzR9PS4UC0KZuSkcXdHYkv0
         yqaTKP8d4hC1SUJ6jDZZfjYo0713EiWk9jk3+ZlzobvhRPCEIluEbGhwnG44dwErg7K7
         DqJdoiddQZ8mfJ806GZzTok7PZ6ZL1Mj7xybw++PaqzDk5tunIMIDPXfosNe9rY2UDFE
         r0XKa2MEB0NyD0nSrk8bmLhIqDXoR9VWW/Ktlwt0ZbJ8MmwFTxOSBGmQn2iDsLScuJ/I
         dDuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702029376; x=1702634176;
        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=ZuUJz0w2QDEFSaIINhUTAFBDKTav9LnB69TlAIMd7mU=;
        b=uMT+atkrIM8wuswQloAKGZwcdaNkyvZJZ7SEgrvvxPjYYvfnHz9v+z2nwsrGPaU2Z6
         h7IxggVFWfHZEZpGAk25F8ajwpV6mKNg3AJUfWlk4x2b4Wo5Xa1M3BqwwSYbOsFyh6XI
         e2xFfp/SByWqeCT+8kZJpu1fUxioOKqyYPbWCHtrnMaTW9ey3KuFO9WxPrPnJNYb+MgW
         Hh/Zq/ap9sTlcukYAvqPEHOOoaQIowe0KKT4nCQSx2FZfYU71yRQ74rZ0z41AdSJKvei
         SOx5UlIPyl7asnMAZeSBFA4QflWNd8q4wPOkPi/NFUzG0P4D9yKBWz8G6NF0C1u2JgPi
         +vnA==
X-Gm-Message-State: AOJu0YxMy4hsQHVC3OxISLO82+ArVG6CAI1jEYt0wt5Gh47I12pmaM4r
	6nLQmc7XF84rlxMV8IDKjZU=
X-Google-Smtp-Source: AGHT+IEL+laq4rQ0K8Vz6wPpJ5l1AESI4XkDDeiOb7DELPfoW+UWGyxH9Io9/+c+VnlTRaeVFMWT6g==
X-Received: by 2002:a17:906:408e:b0:a11:4dc3:d0ce with SMTP id u14-20020a170906408e00b00a114dc3d0cemr1983223ejj.63.1702029376351;
        Fri, 08 Dec 2023 01:56:16 -0800 (PST)
Message-ID: <d019df25e87fcf8e90bb24a13f1791336fcf558e.camel@gmail.com>
Subject: Re: [PATCH v2 00/39] Enable build of full Xen for RISC-V
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Alistair Francis <alistair.francis@wdc.com>, Bob
 Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Date: Fri, 08 Dec 2023 11:56:15 +0200
In-Reply-To: <0fab3032-5236-48ad-96c8-3ae26b70cb8b@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <0fab3032-5236-48ad-96c8-3ae26b70cb8b@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-07 at 15:30 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Bobby Eshleman (1):
> > =C2=A0 xen/riscv: introduce asm/atomic.h
> >=20
> > Oleksii Kurochko (38):
> > =C2=A0 xen/riscv: disable unnecessary configs
> > =C2=A0 xen/riscv: use some asm-generic headers
> > =C2=A0 xen/riscv:introduce asm/byteorder.h
> > =C2=A0 xen/riscv: add public arch-riscv.h
> > =C2=A0 xen/riscv: introduce spinlock.h
> > =C2=A0 xen/riscv: introduce fence.h
> > =C2=A0 xen/riscv: introduce arch-riscv/hvm/save.h
> > =C2=A0 xen/riscv: introduce asm/cpufeature.h
> > =C2=A0 xen/riscv: introduce asm/guest_atomics.h
> > =C2=A0 xen/riscv: introduce asm/iommu.h
> > =C2=A0 xen/riscv: introduce asm/nospec.h
> > =C2=A0 xen/riscv: introduce asm/setup.h
> > =C2=A0 xen/riscv: introduce asm/system.h
> > =C2=A0 xen/riscv: introduce bitops.h
> > =C2=A0 xen/riscv: introduce flushtlb.h
> > =C2=A0 xen/riscv: introduce asm/smp.h
> > =C2=A0 xen/riscv: introduce cmpxchg.h
> > =C2=A0 xen/riscv: introduce asm/io.h
> > =C2=A0 xen/riscv: define bug frame tables in xen.lds.S
> > =C2=A0 xen/riscv: introduce bit operations
> > =C2=A0 xen/riscv: introduce asm/domain.h
> > =C2=A0 xen/riscv: introduce asm/guest_access.h
> > =C2=A0 xen/riscv: introduce asm/irq.h
> > =C2=A0 xen/riscv: introduce asm/p2m.h
> > =C2=A0 xen/riscv: introduce asm/regs.h
> > =C2=A0 xen/riscv: introduce asm/time.h
> > =C2=A0 xen/riscv: introduce asm/event.h
>=20
> Throughout here, would you please try to be consistent about (not)
> using asm/
> prefixes?
Sure. I'll skip asm, there is no any sense to use it as it is mentioned
xen/riscv...

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:56:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:56:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650523.1016141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXbK-0002MM-7E; Fri, 08 Dec 2023 09:56:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650523.1016141; Fri, 08 Dec 2023 09:56:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXbK-0002MF-2m; Fri, 08 Dec 2023 09:56:54 +0000
Received: by outflank-mailman (input) for mailman id 650523;
 Fri, 08 Dec 2023 09:56:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBXbI-00023G-EX
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:56:52 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on2060d.outbound.protection.outlook.com
 [2a01:111:f400:fe16::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c27fec9-95b0-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:56:51 +0100 (CET)
Received: from DB9PR01CA0003.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:1d8::8) by PR3PR08MB5786.eurprd08.prod.outlook.com
 (2603:10a6:102:85::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 09:56:44 +0000
Received: from DU6PEPF0000A7DF.eurprd02.prod.outlook.com
 (2603:10a6:10:1d8:cafe::5d) by DB9PR01CA0003.outlook.office365.com
 (2603:10a6:10:1d8::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28 via Frontend
 Transport; Fri, 8 Dec 2023 09:56:44 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000A7DF.mail.protection.outlook.com (10.167.8.36) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 09:56:44 +0000
Received: ("Tessian outbound 385ad2f98d71:v228");
 Fri, 08 Dec 2023 09:56:44 +0000
Received: from ffcf9c74dc5b.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E7F47997-7E14-4314-8260-B16C4BCFD4DA.1; 
 Fri, 08 Dec 2023 09:56:32 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ffcf9c74dc5b.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 09:56:32 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by GV2PR08MB9877.eurprd08.prod.outlook.com (2603:10a6:150:dd::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 09:56:30 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 09:56: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: 1c27fec9-95b0-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=SMWYkGD7iC8W6MMhaH93mFggg4icm5+8RGuiMBk0PFeSwMRHhQ0zNy1JjFzfL3ewslYHJVAh0LdTxscnI/38Gl2cO6uTugyVjkOZv7sTfoTZVWpTfzFRgy1RIROrhN1siuUI4+2lVC1MwtjBtKugddpn+t4xMfsyYzH5h2VLNkNaWyq/GwgyexyahewauKsXheJrIEi5aPL8A+EUhgELUkd9vu4/QaMPNBypHdrx8Aa0p0tSfM/2SwyH+76WKuHXxRhi5MytPJaKWo3Ydib5WscFtAc+vuonMBrPlW619Wb8KTh0WSJS9487HJm+n+4vWTThs6IML8AGREemz3buPw==
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=HIQ6AVcEwHFVid0mEKgi2jeR1mP+K9tXRGAbuuK8amw=;
 b=irurMWgLTdRtPpwOdkTgyhU06LadjJqONkbn4gKapwmQD1uInII4yrsO96X06FuomG8ZmmslY1+vEufNx4nUwZRMlBQZYg1nGmW9INYb1HFDefLWsbnbKce02utJww/pNuxnW9qHOMD6ErDhJdZhko2SAbjgh9JY2u/1xGy+iVYj7fvMBupRWRUQ6o/Ff8RRofLKRCh9oFyZhR8in5eaTS/7npsxTyNhciqclyixa3n+3sEjHPG0hKaUq8mJ+LFwqFgPciqRK+GpFm90KQyjig+ixcFv4cqLjIo/gSzdsTvbkp/FKCckYub+rAGgT+DlDC9PATjN7cIOG+ha2Foyuw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HIQ6AVcEwHFVid0mEKgi2jeR1mP+K9tXRGAbuuK8amw=;
 b=r3ujacXaMSR7WRYc+as7kuOmE/3a6qt8s4fRvbbKwfNylXktKPnual+NZCLeI8bH+cfaHorLldW0K/OHTbFZsVPqcNLnqyOSs0DN3qsT4Agh9s2l86IJlEM/w3My6X7qa0WZJ9Pts/mhz2XxONMbBpnZlpgeXNc7eJHeaLFcdFQ=
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=armh.onmicrosoft.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: 73a18c06a29d953b
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RezEQK0jlo6828WeomUTgseK/zKPr7s4737GzloUPiKLRdXQAAxjKUOUZrPf43AADw843YauEh2Rn0srfhydcU5M/+tOq3f0Ck1+RGt4AU3y2Ynv0C9SWWG+DN2pi5rwirolKlQrQ06ZCs3VJVohzxyZcsNMMQ/vHat49k1Z7d+Wxlrwgbh/Lay6CowHkCZOjbvTVl3B8EiYlcTaj9WSv7kLBRw4saAdE8ExMV6KhQLTmAHLXUVyAVaM39gYX7JKbW+QMw8pSRFb4biSx77dfnKBYkJI8i8lbHwEcwHkA7j0Q2H35GytUbpamxCMQBANAbE5rL5lGXj5PnQk6TYoMw==
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=HIQ6AVcEwHFVid0mEKgi2jeR1mP+K9tXRGAbuuK8amw=;
 b=ByHGyEsf7KY7cuKtWvBCPMYdn9cEBXbv0qfPd8estTAuWtmsvxUA7QlaFXjK9EfxpGtiu7SQ8mERjncmLgwRV5Vj5M6PqQA4ZAYwaH/jZczxX9+MdfZ3CX4NU5bkIE7q4sFR4XLZEi84VSj1tC6jQSDSAWhleqIOYdNYQyxQqf6eCHhh9eJxh83AVij2Hg4QC+iJ/l/40apUVuTEf7+LVUaB76GgqfLh+ywxJmmkfWg7lGScF61AVWGEA5AP2IvmQ+N4yy7PEB18iVTDoch9dOkiiZp1S6boyz3jFwAhUgvfMPUGTeAfwCzVunDSc2oX2eXC7h9jIRhKjti220K/6w==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HIQ6AVcEwHFVid0mEKgi2jeR1mP+K9tXRGAbuuK8amw=;
 b=r3ujacXaMSR7WRYc+as7kuOmE/3a6qt8s4fRvbbKwfNylXktKPnual+NZCLeI8bH+cfaHorLldW0K/OHTbFZsVPqcNLnqyOSs0DN3qsT4Agh9s2l86IJlEM/w3My6X7qa0WZJ9Pts/mhz2XxONMbBpnZlpgeXNc7eJHeaLFcdFQ=
From: Henry Wang <Henry.Wang@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Topic: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Index:
 AQHaKZoAVIHO2rCYDECWUL8sUR2sfLCfFe6AgAACFwCAAAHkAIAAAsIAgAAIGgCAAAGZgA==
Date: Fri, 8 Dec 2023 09:56:30 +0000
Message-ID: <9F69A6E2-2D83-46AF-8AB6-C1B409F4ADE0@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
 <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
 <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
 <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
 <B9AFD918-42F6-4190-963B-E5A639D9F60E@arm.com>
 <2f34c0ec-0d94-48e2-bec0-faa96e1702f1@amd.com>
In-Reply-To: <2f34c0ec-0d94-48e2-bec0-faa96e1702f1@amd.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|GV2PR08MB9877:EE_|DU6PEPF0000A7DF:EE_|PR3PR08MB5786:EE_
X-MS-Office365-Filtering-Correlation-Id: f98a601a-a6a8-4ec8-8af1-08dbf7d3fc07
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 zjarFPkjpe/HEANCuv4gqD9sy3lBUtYVFkqprto5OdXwY+V+gxUinUgmmzw61zeL7r3Eme7r4iQ9FP5fnIyNCYfyhM25xhfWzCZI/qWLTJ7us/vkfh0yHZoHKk12HViqzofPBw3jAyf/IOfoc673d36GJCPboPdr38Q4TGK27nByB1cRlxe9gWLtq2TNgq8C7gNpvkrUghFz7vB0VixbH67dYPpjXNyN3m9jkXOdAXLMHYIDuif89MMzsIRK8OnYR3CUD1bpWsCeR/nKsHukf+F19GRxzKaHF0StNxtsgrPmasxHMfbz1ps/MTv1xIc2lzWDPpjvGiGzcQbUMp3DxduOGn9n/5EfqUUgRab79zNq/Tc9BOkTdvw64gkL5V1hdyw8+J2F/frlocIOCFlk4rfJCybd1EmXAa7cYJrGL74apyYWxE3aqZXvYWIxUxylCeFvp8jTYISPB2111SdlRtSArBWPEoTuG6C3jF3xkG2R4+kw/SB0Y3N/o4JG2SePl45rpIDJsDdJynLRYPDj3/Uwsa7/XEiweGKNGh2o4HesWfzbb9hsXzpT2Fg2I24dL5IW69iUnQ76btEURStbIWCY30aJLEVX8VWu9AIDeEK56zuESPl2TtBwFUTNW8SwT6EL2CVP2yt9aoPmdHTH0Q==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(396003)(376002)(136003)(39860400002)(230922051799003)(186009)(1800799012)(64100799003)(451199024)(2906002)(8936002)(4326008)(8676002)(5660300002)(316002)(66556008)(76116006)(66446008)(66946007)(66476007)(64756008)(91956017)(54906003)(6916009)(6486002)(2616005)(6512007)(6506007)(53546011)(36756003)(26005)(38070700009)(41300700001)(478600001)(71200400001)(83380400001)(33656002)(38100700002)(122000001)(86362001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <450C31365114C34481F25E09BBA317AB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9877
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:
 DU6PEPF0000A7DF.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3de89327-5216-4880-b3f8-08dbf7d3f3fa
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	djvZ9/SU4mnma0wH7DBcHg/CN8ijJ2mJy27mqx1FMcErk7b3tCKmvrNh/+LDS0WDHbUlhR5W7VDPy3YQC8Srk9+nZS43p+PLo3oYtMmnNHfywnHWJXUdG7c2ZcuctBTg4bxgzFygy9lS0dpqdFd/MYGG3kVP3H/OpkX1mPZsl1k2KrodSacN26GZRHRur80kcN8U3dok6V9MBSZ8X/775gNzmXhukZwLvAzBl3mYWGqg0KpKMcL6sSS0R+bGXtPlju5re9Io0H/4kxqUPaH6zJISxMkBa4MgGJ1q+O4OcrS15Rl12psyHQLC0S36qEDj5GhqziERC2F1PISnRnUEJ+2cvobEYPpGHy1I8OIYlfs0Qc00J6Qk0wx6KJbE702cK1yD9K1q3lBRWgQoRsJnD/X9oGvNVDGUAimUvp2iKZl6hcDfty6T5zxlGqG6mHdT52HdW15X0p1yfGhfZg4/FrGqTXY0aioZ4BpyQY2URBJEqBSPiE2JWjVP3cuE1pp6gg4YpKt6mCzINaZjoedZy65KjDmNqH8Pabw35qpTYCTo9iX1pU8gXgHqtcIvbG3O3ah7A7m4/j6eI23bB4lJIdDCIrNDFTnJAfEOt4960F0ZxeDbXPH2tzkrPg2iCCiYinSUQUOA+7riSlgKa3dPKvy5qZJKAFuHSObC2ifEcBBDDk+DSidDfuF2ahq1gO6ggSCQ9kBcb0z+rY1vR1SfwFy/GDjYfNc6VC598r/YW1mIkuBSzztZl7pjrnihKNKP
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:(13230031)(4636009)(346002)(39860400002)(136003)(376002)(396003)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(82310400011)(46966006)(36840700001)(40470700004)(2906002)(36756003)(4326008)(8936002)(8676002)(6862004)(5660300002)(41300700001)(82740400003)(40480700001)(36860700001)(47076005)(26005)(336012)(2616005)(83380400001)(33656002)(356005)(81166007)(86362001)(478600001)(40460700003)(316002)(6506007)(70206006)(70586007)(6486002)(54906003)(6512007)(53546011);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 09:56:44.1570
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f98a601a-a6a8-4ec8-8af1-08dbf7d3fc07
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:
	DU6PEPF0000A7DF.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5786

SGkgTWljaGFsLA0KDQo+IE9uIERlYyA4LCAyMDIzLCBhdCAxNzo1MCwgTWljaGFsIE9yemVsIDxt
aWNoYWwub3J6ZWxAYW1kLmNvbT4gd3JvdGU6DQo+IE9uIDA4LzEyLzIwMjMgMTA6MjEsIEhlbnJ5
IFdhbmcgd3JvdGU6DQo+PiANCj4+IA0KPj4gSGkgTWljaGFsLA0KPj4gDQo+Pj4gT24gRGVjIDgs
IDIwMjMsIGF0IDE3OjExLCBNaWNoYWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPiB3cm90
ZToNCj4+PiBPbiAwOC8xMi8yMDIzIDEwOjA1LCBIZW5yeSBXYW5nIHdyb3RlOg0KPj4+PiANCj4+
Pj4gSGkgTWljaGFsLA0KPj4+PiANCj4+Pj4+IE9uIERlYyA4LCAyMDIzLCBhdCAxNjo1NywgTWlj
aGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4gd3JvdGU6DQo+Pj4+PiANCj4+Pj4+IEhp
IEhlbnJ5LA0KPj4+Pj4gDQo+Pj4+PiBPbiAwOC8xMi8yMDIzIDA2OjQ2LCBIZW5yeSBXYW5nIHdy
b3RlOg0KPj4+Pj4+IGRpZmYgLS1naXQgYS9hdXRvbWF0aW9uL3NjcmlwdHMvZXhwZWN0L2Z2cC1i
YXNlLXNtb2tlLWRvbTAtYXJtNjQuZXhwIGIvYXV0b21hdGlvbi9zY3JpcHRzL2V4cGVjdC9mdnAt
YmFzZS1zbW9rZS1kb20wLWFybTY0LmV4cA0KPj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNzU1DQo+
Pj4+Pj4gaW5kZXggMDAwMDAwMDAwMC4uMjVkOWE1ZjgxYw0KPj4+Pj4+IC0tLSAvZGV2L251bGwN
Cj4+Pj4+PiArKysgYi9hdXRvbWF0aW9uL3NjcmlwdHMvZXhwZWN0L2Z2cC1iYXNlLXNtb2tlLWRv
bTAtYXJtNjQuZXhwDQo+Pj4+Pj4gQEAgLTAsMCArMSw3MyBAQA0KPj4+Pj4+ICsjIS91c3IvYmlu
L2V4cGVjdA0KPj4+Pj4+ICsNCj4+Pj4+PiArc2V0IHRpbWVvdXQgMjAwMA0KPj4+Pj4gRG8gd2Ug
cmVhbGx5IG5lZWQgc3VjaCBhIGJpZyB0aW1lb3V0ICh+MzAgbWluKT8NCj4+Pj4+IExvb2tpbmcg
YXQgeW91ciB0ZXN0IGpvYiwgaXQgdG9vayAxNiBtaW5zIChxdWl0ZSBhIGxvdCBidXQgSSBrbm93
IEZWUCBpcyBzbG93DQo+Pj4+PiArIHNlbmRfc2xvdyBzbG93cyB0aGluZ3MgZG93bikNCj4+Pj4g
DQo+Pj4+IFRoaXMgaXMgYSByZWFsbHkgZ29vZCBxdWVzdGlvbi4gSSBkaWQgaGF2ZSB0aGUgc2Ft
ZSBxdWVzdGlvbiB3aGlsZSB3b3JraW5nIG9uDQo+Pj4+IHRoZSBuZWdhdGl2ZSB0ZXN0IHRvZGF5
LiBUaGUgdGltZW91dCAyMDAwIGluZGVlZCB3aWxsIGZhaWwgdGhlIGpvYiBhdCBhYm91dCAzMG1p
biwNCj4+Pj4gYW5kIHdhaXRpbmcgZm9yIGl0IGlzIGluZGVlZCBub3QgcmVhbGx5IHBsZWFzYW50
Lg0KPj4+PiANCj4+Pj4gQnV0IG15IHNlY29uZCB0aG91Z2h0IHdvdWxkIGJlIC0gZnJvbSBteSBv
YnNlcnZhdGlvbiwgdGhlIG92ZXJhbGwgdGltZSBub3cNCj4+Pj4gd291bGQgdmFyeSBiZXR3ZWVu
IDE1bWluIH4gMjBtaW4sIGFuZCBoYXZpbmcgYSAxMG1pbiBtYXJnaW4gaXMgbm90IHRoYXQgY3Jh
enkNCj4+Pj4gZ2l2ZW4gdGhhdCB3ZSBwcm9iYWJseSB3aWxsIGRvIG1vcmUgdGVzdGluZyBmcm9t
IHRoZSBqb2IgaW4gdGhlIGZ1dHVyZSwgYW5kIGlmIHRoZQ0KPj4+PiBHaXRMYWIgQXJtIHdvcmtl
ciBpcyBoaWdoIGxvYWRlZCwgRlZQIHdpbGwgcHJvYmFibHkgYmVjb21lIHNsb3dlci4gQW5kIG5v
cm1hbGx5DQo+Pj4+IHdlIGRvbuKAmXQgZXZlbiB0cmlnZ2VyIHRoZSB0aW1lb3V0IGFzIHRoZSBq
b2Igd2lsbCBub3JtYWxseSBwYXNzLiBTbyBJIGRlY2lkZWQNCj4+Pj4gdG8ga2VlcCB0aGlzLg0K
Pj4+PiANCj4+Pj4gTWluZCBzaGFyaW5nIHlvdXIgdGhvdWdodHMgYWJvdXQgdGhlIGJldHRlciB2
YWx1ZSBvZiB0aGUgdGltZW91dD8gUHJvYmFibHkgMjVtaW4/DQo+Pj4gRnJvbSB3aGF0IHlvdSBz
YWlkIHRoYXQgdGhlIGF2ZXJhZ2UgaXMgMTUtMjAsIEkgdGhpbmsgd2UgY2FuIGxlYXZlIGl0IHNl
dCB0byAzMC4NCj4+PiBCdXQgSSB3b25kZXIgaWYgd2UgY2FuIGRvIHNvbWV0aGluZyB0byBkZWNy
ZWFzZSB0aGUgYXZlcmFnZSB0aW1lLiB+MjAgbWluIGlzIGEgbG90DQo+Pj4gZXZlbiBmb3IgRlZQ
IDopIEhhdmUgeW91IHRyaWVkIHNldHRpbmcgc2VuZF9zbG93IHRvIHNvbWV0aGluZyBsb3dlciB0
aGFuIDEwMG1zPw0KPj4+IFRoYXQgc2FpZCwgd2UgZG9uJ3Qgc2VuZCB0b28gbWFueSBjaGFycyB0
byBGVlAsIHNvIEkgZG91YnQgaXQgd291bGQgcGxheSBhIG1ham9yIHJvbGUNCj4+PiBpbiB0aGUg
b3ZlcmFsbCB0aW1lLg0KPj4gDQo+PiBJIGFncmVlIHdpdGggdGhlIHNlbmRfc2xvdyBwYXJ0LiBB
Y3R1YWxseSBJIGRvIGhhdmUgdGhlIHNhbWUgY29uY2VybiwgaGVyZSBhcmUgbXkgY3VycmVudA0K
Pj4gdW5kZXJzdGFuZGluZyBhbmQgSSB0aGluayB5b3Ugd2lsbCBkZWZpbml0ZWx5IGhlbHAgd2l0
aCB5b3VyIGtub3dsZWRnZToNCj4+IElmIHlvdSBjaGVjayB0aGUgZnVsbCBsb2cgb2YgRG9tMCBi
b290aW5nLCBmb3IgZXhhbXBsZSBbMV0sIHlvdSB3aWxsIGZpbmQgdGhhdCB3ZSB3YXN0ZWQgc28N
Cj4+IG11Y2ggdGltZSBpbiBzdGFydGluZyB0aGUgc2VydmljZXMgb2YgdGhlIE9TIChtb2Rsb29w
LCB1ZGV2LXNldHRsZSwgZXRjKS4gQWxsIG9mIHRoZXNlIHNlcnZpY2VzDQo+PiBhcmUgcmV0cmll
ZCBtYW55IHRpbWVzIGJ1dCBpbiB0aGUgZW5kIHRoZXkgYXJlIHN0aWxsIG5vdCB1cCwgYW5kIGZy
b20gbXkgdW5kZXJzdGFuZGluZyB0aGV5DQo+PiB3b27igJl0IGFmZmVjdCB0aGUgYWN0dWFsIHRl
c3QoPykgSWYgd2UgY2FuIHNvbWVob3cgZ2V0IHJpZCBvZiB0aGVzZSBzZXJ2aWNlcyBmcm9tIHJv
b3RmcywgSSB0aGluaw0KPj4gd2UgY2FuIHNhdmUgYSBsb3Qgb2YgdGltZS4NCj4+IA0KPj4gQW5k
IGhvbmVzdGx5LCBJIG5vdGljZWQgdGhhdCBxZW11LWFscGluZS1hcm02NC1nY2Mgc3VmZmVycyBm
cm9tIHRoZSBzYW1lIHByb2JsZW0gYW5kIGl0IGFsc28NCj4+IHRha2VzIGFyb3VuZCAxNW1pbiB0
byBmaW5pc2guIFNvIGlmIHdlIG1hbmFnZWQgdG8gdGFpbG9yIHRoZSBzZXJ2aWNlcyBmcm9tIHRo
ZSBmaWxlc3lzdGVtLCB3ZQ0KPj4gY2FuIHNhdmUgYSBsb3Qgb2YgdGltZS4NCj4gVGhhdCBpcyBu
b3QgdHJ1ZS4gUWVtdSBydW5zIHRoZSB0ZXN0cyByZWxhdGl2ZWx5IGZhc3Qgd2l0aGluIGZldyBt
aW51dGVzLiBUaGUgcmVhc29uIHlvdSBzZWUgZS5nLiAxMiBtaW5zDQo+IGZvciBzb21lIFFlbXUg
am9icyBjb21lcyBmcm9tIHRoZSB0aW1lb3V0IHdlIHNldCBpbiBRZW11IHNjcmlwdHMuIFdlIGRv
bid0IGhhdmUgeWV0IHRoZSBzb2x1dGlvbiAod2UgY291bGQNCj4gZG8gdGhlIHNhbWUgYXMgUXVi
ZXMgc2NyaXB0KSB0byBkZXRlY3QgdGhlIHRlc3Qgc3VjY2VzcyBlYXJseSBhbmQgZXhpdCBiZWZv
cmUgdGltZW91dC4gVGhhdCBpcyB3aHkgY3VycmVudGx5DQo+IHRoZSBvbmx5IHdheSBmb3IgUWVt
dSB0ZXN0cyB0byBmaW5pc2ggaXMgYnkgcmVhY2hpbmcgdGhlIHRpbWVvdXQuDQo+IA0KPiBTbyB0
aGUgcHJvYmxlbSBpcyBub3Qgd2l0aCB0aGUgcm9vdGZzIGFuZCBzZXJ2aWNlcyAodGhlIGltcHJv
dmVtZW50IHdvdWxkIG5vdCBiZSBzaWduaWZpY2FudCkgYnV0IHdpdGgNCj4gdGhlIHNpbXVsYXRp
b24gYmVpbmcgc2xvdy4gVGhhdCBzYWlkLCB0aGlzIGlzIHNvbWV0aGluZyB3ZSBhbGwga25vdyBh
bmQgSSBleHBlY3QgRlZQIHRvIG9ubHkgYmUgdXNlZCBpbiBzY2VuYXJpb3MNCj4gd2hpY2ggY2Fu
bm90IGJlIHRlc3RlZCB1c2luZyBRZW11IG9yIHJlYWwgSFcuDQoNCk9rLCB5b3UgbWFkZSBhIHBv
aW50LiBMZXQgbWUgZG8gc29tZSBleHBlcmltZW50cyB0byBzZWUgaWYgSSBjYW4gaW1wcm92ZS4g
T3RoZXJ3aXNlIG1heWJlDQp3ZSBjYW4gbGl2ZSB3aXRoIHRoaXMgdW50aWwgYSBiZXR0ZXIgc29s
dXRpb24uDQoNCktpbmQgcmVnYXJkcywNCkhlbnJ5DQoNCj4gDQo+IH5NaWNoYWwNCg0K


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:56:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:56:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650524.1016151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXbP-0002ic-I4; Fri, 08 Dec 2023 09:56:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650524.1016151; Fri, 08 Dec 2023 09:56:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXbP-0002iV-Ec; Fri, 08 Dec 2023 09:56:59 +0000
Received: by outflank-mailman (input) for mailman id 650524;
 Fri, 08 Dec 2023 09:56:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vbdS=HT=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rBXbO-00023G-Er
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:56:58 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1fbbb17a-95b0-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:56:57 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 3A0224EE073A;
 Fri,  8 Dec 2023 10:56:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fbbb17a-95b0-11ee-98e8-6d05b1d4d9a1
MIME-Version: 1.0
Date: Fri, 08 Dec 2023 10:56:57 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Simone Ballarin
 <simone.ballarin@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>
Subject: Re: [XEN PATCH] automation/eclair_analysis: file exclusion automation
In-Reply-To: <2211ff2e-dd27-49a5-b41f-f56b60d2e3a5@xen.org>
References: <e17fba6f45a03f7acb0af342ed8aea97130dba4a.1701949157.git.nicola.vetrini@bugseng.com>
 <74abb34c-f253-4b4e-a3bb-3feb01fcc902@xen.org>
 <03d8668e6f8e9046eb784385a4585c28@bugseng.com>
 <2211ff2e-dd27-49a5-b41f-f56b60d2e3a5@xen.org>
Message-ID: <554af5febdd5602d33ff420047d880cb@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 2023-12-07 18:56, Julien Grall wrote:
> Hi Nicola,
> 
> On 07/12/2023 17:53, Nicola Vetrini wrote:
>> On 2023-12-07 18:08, Julien Grall wrote:
>>> On 07/12/2023 11:39, Nicola Vetrini wrote:
>>>> +-doc_begin="libfdt is out of scope."
>>>> +-file_tag+={out_of_scope,"^xen/include/xen/libfdt/.*$"}
>>> 
>>> AFAICT, before this was marked as "adopted". But this is now moved to 
>>> "out_of_scope". Can you explain why?
>>> 
>>> It also feels somewhat unrelated to the rest of the patch.
>>> 
>>> Cheers,
>> 
>> I mistakenly changed the tag. It is not unrelated, as it't not part of 
>> exclude-list.json (perhaps unintentionally). The manual exclusions 
>> that remain in out_of_scope.ecl are there for this reason, since I 
>> wanted to keep the set of excluded files as it was before.
> 
> Given that common/libfdt/* is part of the exclude-list.json, I can't 
> see why include/xen/libfdt/* are not. So can you add it?
> 
> Cheers,

Sure, I will.

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 09:59:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 09:59:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650532.1016161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXdr-00061M-V1; Fri, 08 Dec 2023 09:59:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650532.1016161; Fri, 08 Dec 2023 09:59:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXdr-00061F-SH; Fri, 08 Dec 2023 09:59:31 +0000
Received: by outflank-mailman (input) for mailman id 650532;
 Fri, 08 Dec 2023 09:59:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qEM7=HT=redhat.com=rjones@srs-se1.protection.inumbo.net>)
 id 1rBXdq-000619-KS
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 09:59:30 +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 79c6ee5a-95b0-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 10:59:29 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-422-WeSCDRK4Ni-DyZOFlBW-_A-1; Fri, 08 Dec 2023 04:59:26 -0500
Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com
 [10.11.54.2])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id CCAEF83106C;
 Fri,  8 Dec 2023 09:59:25 +0000 (UTC)
Received: from localhost (unknown [10.42.28.15])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 8CF8C40C6EB9;
 Fri,  8 Dec 2023 09:59: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: 79c6ee5a-95b0-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702029568;
	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=y+KxdY+qCST9E8+OQxXVW2cgeDlhihThVwBNplCEp+Q=;
	b=JAki13Pi5vvgA1BHq+Dqtz88MCSxClDRPz7dEQYiNPXjTL08xqH1p2frnpzsXeVeoxRkD8
	yNKQiFHa2UGWqGClL/nbWHRGPwGodXWtgCZHXmeBvyGPt93iT5pXzqer/dNpYVkO13C3dV
	EnkfDO1qTr8fk+F0SBXDyJ2A4YPhrXE=
X-MC-Unique: WeSCDRK4Ni-DyZOFlBW-_A-1
Date: Fri, 8 Dec 2023 09:59:24 +0000
From: "Richard W.M. Jones" <rjones@redhat.com>
To: Michael Young <m.a.young@durham.ac.uk>
Cc: qemu-devel@nongnu.org, Stefano Stabellini <sstabellini@kernel.org>,
	Anthony Perard <anthony.perard@citrix.com>,
	Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
Message-ID: <20231208095924.GB23257@redhat.com>
References: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
 <20231208084707.GA23257@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231208084707.GA23257@redhat.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2

On Fri, Dec 08, 2023 at 08:47:07AM +0000, Richard W.M. Jones wrote:
> (Adding Xen maintainers)
> 
> On Thu, Dec 07, 2023 at 11:12:48PM +0000, Michael Young wrote:
> > Builds of qemu-8.2.0rc2 with xen-4.18.0 are currently failing
> > with errors like
> > ../hw/arm/xen_arm.c:74:5: error: â€˜GUEST_VIRTIO_MMIO_SPI_LASTâ€™ undeclared (first use in this function)
> >    74 |    (GUEST_VIRTIO_MMIO_SPI_LAST - GUEST_VIRTIO_MMIO_SPI_FIRST)
> >       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > 
> > as there is an incorrect comparision in include/hw/xen/xen_native.h
> > which means that settings like GUEST_VIRTIO_MMIO_SPI_LAST
> > aren't being defined for xen-4.18.0
> > 
> > Signed-off-by: Michael Young <m.a.young@durham.ac.uk>
> 
> Reviewed-by: Richard W.M. Jones <rjones@redhat.com>

I added this patch to Fedora, which has Xen 4.18 and where
builds were previously failing, and now it's working:

https://koji.fedoraproject.org/koji/taskinfo?taskID=110043878

So also adding:

Tested-by: Richard W.M. Jones <rjones@redhat.com>

Rich.

> > ---
> >  include/hw/xen/xen_native.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/include/hw/xen/xen_native.h b/include/hw/xen/xen_native.h
> > index 6f09c48823..04b1ef4d34 100644
> > --- a/include/hw/xen/xen_native.h
> > +++ b/include/hw/xen/xen_native.h
> > @@ -532,7 +532,7 @@ static inline int xendevicemodel_set_irq_level(xendevicemodel_handle *dmod,
> >  }
> >  #endif
> >  
> > -#if CONFIG_XEN_CTRL_INTERFACE_VERSION <= 41700
> > +#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 41700
> >  #define GUEST_VIRTIO_MMIO_BASE   xen_mk_ullong(0x02000000)
> >  #define GUEST_VIRTIO_MMIO_SIZE   xen_mk_ullong(0x00100000)
> >  #define GUEST_VIRTIO_MMIO_SPI_FIRST   33
> > -- 
> > 2.43.0
> > 
> 
> -- 
> Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> Read my programming and virtualization blog: http://rwmj.wordpress.com
> libguestfs lets you edit virtual machines.  Supports shell scripting,
> bindings from many languages.  http://libguestfs.org
> 

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 10:00:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 10:00:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650536.1016170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXeS-0007S0-6p; Fri, 08 Dec 2023 10:00:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650536.1016170; Fri, 08 Dec 2023 10:00: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 1rBXeS-0007Rt-3l; Fri, 08 Dec 2023 10:00:08 +0000
Received: by outflank-mailman (input) for mailman id 650536;
 Fri, 08 Dec 2023 10: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=wu8/=HT=epam.com=prvs=670673ed10=mykyta_poturai@srs-se1.protection.inumbo.net>)
 id 1rBXeQ-0006Q1-MD
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 10:00:06 +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 8eaf77c3-95b0-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 11:00:04 +0100 (CET)
Received: from pps.filterd (m0174680.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B862YxO032203; Fri, 8 Dec 2023 09:59:53 GMT
Received: from eur02-db5-obe.outbound.protection.outlook.com
 (mail-db5eur02lp2104.outbound.protection.outlook.com [104.47.11.104])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uuaysc3rr-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 08 Dec 2023 09:59:52 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AM0PR03MB6276.eurprd03.prod.outlook.com
 (2603:10a6:20b:15b::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 09:59:49 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::3776:9f2d:8305:b645]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::3776:9f2d:8305:b645%6]) with mapi id 15.20.7068.028; Fri, 8 Dec 2023
 09:59: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: 8eaf77c3-95b0-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lEBWixT5L1lAKLEg8afPhdSltDQ30e14FFJXorHIpA8NZo+IOALeV+NJzMZsLi/JY4V7159FNw2twS9//7lSIKptZeB1lkLtgatk4ogWBSro+72K9mg8eXU/NJRF3HxYPr9O+F1yRdtfjGeGbmzfufI9BrIGrqPI83MZ3QKgEdYq8lho3v29YTCEp9/zFHK04TF9jJrmg9lO9cj7MEpNdH/aVH1zbsIF9/NuTIVJW58NUKrgI/tzvmX9yGXVr9W3xuTQktau5jnw23JfeaFCxruo+0PA9Ndz2cAQ1aHM5C11FB0B8atrV6l0a0vX1vfDB+M4Vtty43OSUk7yNN7qvw==
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=L1Z4NGrVxo/17WzJ6qKz8BIGrjuk3RC2hZ4XhSwzyzc=;
 b=b+Qybmq0ZxUqVx6dG7cFw/9gd6R8AcsN/bKAeebJfd5LfPU2AlWJfLwZir6L/vGufOspYuh066YNWpuPFPvqcZ42y3+Q+DdQpmlbOAEZiZmdfIP9dnhQJGfEpEdPouzJF89J/clokNPmcJpagedDo75hESG3VkX6Lm/TOGrFLJYLHA04u7oTU+5U/0hD7gJaYoFXqIGVhd0vzNllhMxkxZ1MK6M7Agd9WKBD0wtjVvTNkyqN4gN2rpY1SQcWAwpaj17jyalQPiHzzhuWPriM6uhELSA57LAxhvNMhDhTQVVEHBHO5tWzR2x827yz0a2qoG62aor2tHf7HMFHhack7A==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L1Z4NGrVxo/17WzJ6qKz8BIGrjuk3RC2hZ4XhSwzyzc=;
 b=P1Ik+TXzfXe1zEPq2qMcZ4cOWZFJshduLvnxua+chmY3spC/Thm2nfAyy1klehoVuyYGbT1RLpdkwpeSHVEy56nomMJW1dY/Fl5PjqP6cNPGGVryuU7NVd/8dWLu03AWTO36e7AChxHxn9IS2RqTcUJs8niVN2ZsNCltYWnt42GxGdr7dwAxFucUbKXz3KPqoMx7BE9vLIJyXNi3w1UhDRN3WXL7giy9kCr4Fax2jr4+e+g/k8aLC3Cr5+q9Bsl3ujfm4S8cbQc1CtIDW2wvCrlVbDsbIOADWZKtnn35jrGqTgre4VP3RBnaiDLFBL+oWPv3r/D+CLm69gTxx3rJOA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
CC: David Woodhouse <dwmw@amazon.co.uk>,
        "sstabellini@kernel.org"
	<sstabellini@kernel.org>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Vikram
 Garhwal <vikram.garhwal@amd.com>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>
Subject: Adding MSI support for virtio-pci to QEMU as Xen backend on ARM
Thread-Topic: Adding MSI support for virtio-pci to QEMU as Xen backend on ARM
Thread-Index: AQHaKbww0FY6S40rbUa5Jf3nCF0vTg==
Date: Fri, 8 Dec 2023 09:59:49 +0000
Message-ID: 
 <PAVPR03MB10102178A70BF72984FFAF8CD848AA@PAVPR03MB10102.eurprd03.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|AM0PR03MB6276:EE_
x-ms-office365-filtering-correlation-id: c450d0ff-ff61-4505-136f-08dbf7d46a4a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 kDTE8UBcSDZaQ3P0HXk3Gszkg/4mR79RojZnRYqk2BEoKKRWX12FmqssOm8UbNiTugrd0e27DGRuChj7d0C1qvGgOrIGe9HHM31P4KkqNXXqKH7LQk644TxfTIyy1cvk9qW7tG3fnqXjQzejZPupko1htCNthv2iopO/pbZiNUuZbbjoS2fHLLZXAEIs3B6+W7amgaYbR56ED94S56hDr6Zkpqgps7FCC2SkvaZ5Gw1dc47ovfMS49z0PcAJcZ+PmhSnh88gmM9zk0xAT7q2TDvHJBAO01yCWAs3Fby4akaRNMGHpo3knojRY4xLrvCoEnhEC39gIYoXV2krTuGnT6/96yi5MvBOLP/1tQyunTlY0sXumnBxhDVyTqqpux7rO4va6/cwzvQHCho+gMceAlQCToeWKgS5y8BRoIvp0vtCPwoTXymaCoHyHrDCaQ1ONyiFwmUeiQZb+Nw2/XgG9T6rC9mRo+zO9z768OUG5+wlQFYHBKwlmmilAcMsc/enzL0WvGxi74oTJ3ow77AWTTEvvBac3FfsfET/fLTgdpZBHeAcGH2a7RIiQli6Ls++CUXvzFuOOETrF/FPY5afxWT/bEcdtGePM3fYm1OSxiKwT/iYTxX+B8tpIMCbtzwm
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(346002)(39860400002)(376002)(396003)(366004)(230922051799003)(186009)(451199024)(1800799012)(64100799003)(41300700001)(33656002)(2906002)(4744005)(38070700009)(107886003)(6506007)(478600001)(9686003)(54906003)(6916009)(64756008)(66946007)(66556008)(91956017)(66476007)(76116006)(66446008)(122000001)(86362001)(52536014)(316002)(55016003)(4326008)(8676002)(8936002)(71200400001)(5660300002)(7696005)(38100700002)(26005);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?yZFKfuY8tybgC0yMP3Gd05XlJ+ksfTuARQYNFiQkjDzyu6E1BBNmPHeEf3?=
 =?iso-8859-1?Q?jesUvpvyQoXi5mpvM7jXoFc50YFY/9X2ybVlJwkwQoMuHPgBiJxYkGKo2Z?=
 =?iso-8859-1?Q?RCTu/15S+My4X9UNjAgru0awz8fBcMUCihrHdYnIgX3jnRTp/S/BBhUhgT?=
 =?iso-8859-1?Q?zd6eCUvlKi+QWy9EGronRJddv4vK0UqZPTD51wvuu/G2mCNPlliWZNxHtt?=
 =?iso-8859-1?Q?RedDMOvaAQiLi4bjthf6UHEhnr0uZZRGhMLyY8pbNGZ1VdKxQZdKy0M82e?=
 =?iso-8859-1?Q?pNyTclpltMOZOVyUHUrgWIWEbJRMBL05VF3YX0wUWte71szhakA4R1twen?=
 =?iso-8859-1?Q?FTGzA4KVl8xuGiqjN0URgElT+hT5ZUXXYxMkG2aV1XvJAyc/by+Ny0qRtz?=
 =?iso-8859-1?Q?Yy5f2GJ/hoCfqouJtmz5+cctoPBe6pC7s8sVUWkFGVI+o1+0ZBAoLKe+QO?=
 =?iso-8859-1?Q?taC5ZgkJofx5MM+xf9ASg9UDGBFqMfwOez+B/RFga1WUH1TDqFTKjOZfOS?=
 =?iso-8859-1?Q?MeIfGmkb4WahKuc/KXP0Rug6eyXGxnqID+RIuuMj0QdTc4RaoOnuAp9v/7?=
 =?iso-8859-1?Q?aatwgIk6dtjyuaLtt1IzlQQNv1QbikpXiTPlFuXW7H8+0M0bMN7D7XMRPJ?=
 =?iso-8859-1?Q?coZueXtrhjBs9mFJAfKL9g4WHp3A7GFcu4hPZFe86A1RjZk8mfACiUgl+d?=
 =?iso-8859-1?Q?+RNhW7hPE/WfvvStxQkDFT/zXZbvmuDOJkSqC7qUC3hYsWiPZgJVigRuT+?=
 =?iso-8859-1?Q?6dyEm80dC5elNWya/re1pUADRLPI73IXwisyuE/9BaFFO7P/Cep3z9UByf?=
 =?iso-8859-1?Q?OX8PvWiTqwZ3QAdJ5lxX+fLhaNSszAzCUR4gnmmfcvMP84n3KOFZUp7rLF?=
 =?iso-8859-1?Q?gsugRB43Nd0j6st+FMM9sfSR78rmQavr2kOKr3M83EugsqIkOFi9SeCO9z?=
 =?iso-8859-1?Q?6/Yi2TLVsZsuBsOvm9SLVLc4st0tIhtuqn9RuTMdwkFbxoEX5lr/8j30cQ?=
 =?iso-8859-1?Q?U3nbvLJ+50FpcuT4OI9jRA6oti6T7UL9w9oHc7EB57b6EGdXVfC5f25LOl?=
 =?iso-8859-1?Q?SzmWZQpmTewnIabnEqCecvrIwCLKr43u3Tr1Qkg2O+NcuYDwHDttfE5w0f?=
 =?iso-8859-1?Q?v+OJ85nxPLrD4fswogs9Ggl34mBZVd5MMNXRNvDUBmCFZ9COTJUL4cYDZz?=
 =?iso-8859-1?Q?O1dHEKNi2csGq/2ae0RRwd71yTUvY0oK/ugYzia+ZJW4uUVmenNWq158la?=
 =?iso-8859-1?Q?O1bh9TvN0TDRIrS8R/3ipcydP2W/KOgFXjkuA+hJwVaHnuWpe3GAhANRgg?=
 =?iso-8859-1?Q?AJ7zKV+Yq/RyPiXkZtRqJrto2H+/Bu5ikuH7OF3v1XojBBiqpqP+YYIYws?=
 =?iso-8859-1?Q?OaQtKccJ82HYa9Qo6z2E3nsq3oasuuUqba9Gnx0gYnvWMO7wjFpVfrVk0D?=
 =?iso-8859-1?Q?fFgTGNJ4IKNVFbj4SecX8SPxZUzUIRcGI6Yer3tqr9PObF91pk40smMkDs?=
 =?iso-8859-1?Q?aV230DcYx3J8UzDaNF54p+KQPzhbMBg6uPd3+UWfWsYS30mQE/HFzGBCD0?=
 =?iso-8859-1?Q?Dz/0qzaeNJxX4rwIFKmTO6DkDKWgUPecLd5LQLYe/6govWnX1VjYrJFCMt?=
 =?iso-8859-1?Q?9IwNPHg5v7B70dBBkT4hKZWoHg8rNXMrUT?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c450d0ff-ff61-4505-136f-08dbf7d46a4a
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2023 09:59:49.1371
 (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: ls5OQYgTtOkwGKsAcEEW1CYzhQlao6M8e6KDfHrO6+gSSDTFpfy6AXX/nM/FHWjWyaSYymN97CFPij44WEZaUA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6276
X-Proofpoint-ORIG-GUID: _o3xShd1H533WOdEa7oUNR4aCllM6rL0
X-Proofpoint-GUID: _o3xShd1H533WOdEa7oUNR4aCllM6rL0
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-08_04,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=337 mlxscore=0
 priorityscore=1501 malwarescore=0 bulkscore=0 spamscore=0 suspectscore=0
 clxscore=1011 phishscore=0 impostorscore=0 lowpriorityscore=0 adultscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000
 definitions=main-2312080082

Hello everyone,=0A=
=0A=
I am currently working on adding MSI support to virtio-pci on ARM with Xen.=
=0A=
As far as I understand QEMU Xen ARM machine that is used for virtio-pci dev=
ice emulation does not initialize any interrupt controllers. And that makes=
 it somewhat unclear what is the best approach to adding the MSI support. S=
o, I would appreciate some thoughts on this.=0A=
To trigger the MSI interrupt in Xen guests we basically need to call a sing=
le DMOP, which I am also implementing.=0A=
=0A=
So far, I have come up with 3 possible approaches:=0A=
1. Hooking up the existing GIC code to the Xen Arm machine and extending it=
 with the DMOP call.=0A=
2. Writing some new barebones GIC implementation with only the required met=
hods (something similar to xen_apic.c).=0A=
3. Just hooking up the DMOP call to the existing PCI code based on xen_enab=
led() check.=0A=
=0A=
Maybe there is something else that is better that I have missed.=0A=
=0A=
Best regards=0A=
Mykyta=0A=


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 10:00:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 10:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650538.1016180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXeq-0007rY-EK; Fri, 08 Dec 2023 10:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650538.1016180; Fri, 08 Dec 2023 10: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 1rBXeq-0007rR-BV; Fri, 08 Dec 2023 10:00:32 +0000
Received: by outflank-mailman (input) for mailman id 650538;
 Fri, 08 Dec 2023 10:00:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qEM7=HT=redhat.com=rjones@srs-se1.protection.inumbo.net>)
 id 1rBXeo-0007pq-KP
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 10:00:30 +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 9daf2a77-95b0-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 11:00:29 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-376-c-BS2nB0OJWj1_VPyrqPYg-1; Fri, 08 Dec 2023 05:00:25 -0500
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com
 [10.11.54.3])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6B77185A58B;
 Fri,  8 Dec 2023 10:00:24 +0000 (UTC)
Received: from localhost (unknown [10.42.28.15])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 34059112131D;
 Fri,  8 Dec 2023 10:00:24 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9daf2a77-95b0-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702029628;
	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=rQHaZ1TdWJUnJypvpRb79mzs289rnzszOtR676Ru9Gs=;
	b=egBUEN8FANW3FTk7TItfaHXkK6jd900fRNGkJ4zXCfDeY4ATnbGEP98Y2eL8Txsuqwsdje
	7LfZVnepxSXKQ7MYNrTqxwBsdpRkH8g4x6G37kMHFSCai4J3a2pSdyhNS8KxmwmHBIl0yV
	6GsWkw7kytM6Am2OD1cn3662WXFQ5tE=
X-MC-Unique: c-BS2nB0OJWj1_VPyrqPYg-1
Date: Fri, 8 Dec 2023 10:00:23 +0000
From: "Richard W.M. Jones" <rjones@redhat.com>
To: Michael Young <m.a.young@durham.ac.uk>
Cc: qemu-devel@nongnu.org, Stefano Stabellini <sstabellini@kernel.org>,
	Anthony Perard <anthony.perard@citrix.com>,
	Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
Message-ID: <20231208100023.GC23257@redhat.com>
References: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
 <20231208084707.GA23257@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231208084707.GA23257@redhat.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3

On Fri, Dec 08, 2023 at 08:47:07AM +0000, Richard W.M. Jones wrote:
> (Adding Xen maintainers)
> 
> On Thu, Dec 07, 2023 at 11:12:48PM +0000, Michael Young wrote:
> > Builds of qemu-8.2.0rc2 with xen-4.18.0 are currently failing
> > with errors like
> > ../hw/arm/xen_arm.c:74:5: error: â€˜GUEST_VIRTIO_MMIO_SPI_LASTâ€™ undeclared (first use in this function)
> >    74 |    (GUEST_VIRTIO_MMIO_SPI_LAST - GUEST_VIRTIO_MMIO_SPI_FIRST)
> >       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > 
> > as there is an incorrect comparision in include/hw/xen/xen_native.h
> > which means that settings like GUEST_VIRTIO_MMIO_SPI_LAST
> > aren't being defined for xen-4.18.0
> > 
> > Signed-off-by: Michael Young <m.a.young@durham.ac.uk>
> 
> Reviewed-by: Richard W.M. Jones <rjones@redhat.com>

Actually, see Dan Berrange's answer in this thread.

Rich.

> > ---
> >  include/hw/xen/xen_native.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/include/hw/xen/xen_native.h b/include/hw/xen/xen_native.h
> > index 6f09c48823..04b1ef4d34 100644
> > --- a/include/hw/xen/xen_native.h
> > +++ b/include/hw/xen/xen_native.h
> > @@ -532,7 +532,7 @@ static inline int xendevicemodel_set_irq_level(xendevicemodel_handle *dmod,
> >  }
> >  #endif
> >  
> > -#if CONFIG_XEN_CTRL_INTERFACE_VERSION <= 41700
> > +#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 41700
> >  #define GUEST_VIRTIO_MMIO_BASE   xen_mk_ullong(0x02000000)
> >  #define GUEST_VIRTIO_MMIO_SIZE   xen_mk_ullong(0x00100000)
> >  #define GUEST_VIRTIO_MMIO_SPI_FIRST   33
> > -- 
> > 2.43.0
> > 
> 
> -- 
> Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> Read my programming and virtualization blog: http://rwmj.wordpress.com
> libguestfs lets you edit virtual machines.  Supports shell scripting,
> bindings from many languages.  http://libguestfs.org
> 

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 10:21:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 10:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650544.1016191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBXyz-00067b-4X; Fri, 08 Dec 2023 10:21:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650544.1016191; Fri, 08 Dec 2023 10: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 1rBXyz-00067U-0J; Fri, 08 Dec 2023 10:21:21 +0000
Received: by outflank-mailman (input) for mailman id 650544;
 Fri, 08 Dec 2023 10:21:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=XFXw=HT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBXyx-00067O-Ej
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 10:21:19 +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 850931b4-95b3-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 11:21:16 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-334af3b3ddfso1891000f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 02:21:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 q15-20020a056000136f00b00336098d0e64sm670724wrz.106.2023.12.08.02.21.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Dec 2023 02:21:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 850931b4-95b3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702030875; x=1702635675; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zhm3E4xE/Sb4A+ZXJPLdHZg9ZIHlYv2OPfxmFk8n8sE=;
        b=XOLABq9lYxK3LRSZwOzyXhPvKSOWogan46tMulNZnSk3uyhzz8rNJCfqvLM5r+zb1w
         THBt88HLRdWoNbYy+Uq86Hld6A8Q5G1ikh9l2vVmcyEeXe8u4UQ8+9jJDJ2ILD1CcdxB
         hg0fcL342nPF4cylo3//FwO5oPLGFID/j6amdfMMvtcMjCDVYi5XbLfTZ5GbolXS5O+o
         ZDVFV9odkW6qB3nOTU7qJ2s0zFE3fgcYxXy3z+pyA+r6ZYqILhRS1P4PNb5pCuFC2fdR
         4kLT25tUAyY/gwVE6dtSd6sTSGk2u4BbhP/AlsPBBNtQssxEpU2UH6o3m4c+HDnorXwb
         eBUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702030875; x=1702635675;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=zhm3E4xE/Sb4A+ZXJPLdHZg9ZIHlYv2OPfxmFk8n8sE=;
        b=Pl4x7yOPLM9Tbr3YgkZ7ZCwSToGwx8MKDxdxqdLYBzU/aomj8qELdiDGKchPG2jPgW
         75nYilzb9+W2qjlGvQh0zQ46WkE/ccfoyvkbd51KK2yWZ6GYvuoR7WPDOWaxH0cZNGRQ
         lOZ6rcluWamUwqhmXjtx4HABFRsvQTckomRykMfoEa/loV+ZG19GuhSiyQ/OHuo01jWP
         m55o8tHmtCNLADFGeZjzppLvZ3blPDx+hvT7tnqAQl2JxxOq67OGBbPr18jiC5SvKAp4
         4WPU4Xr7rWPuCOQ+YE3oPPE+JtoGjIVmjuxCUQOqHkW6tr4Q9gc9lz9xP6G5i84w0VlO
         0mtw==
X-Gm-Message-State: AOJu0YxoLgW5Wr/ABubM1lB5P0QnkYNe1VZZjKcTRAb86XxfjGAqo6Nd
	aPbJUMuo2SLPdMPRPVQK3Dhq
X-Google-Smtp-Source: AGHT+IG5BA5AryVVFNkeqk9QSIf6o1VJe4ffP3b2Whljg8IpX9IyovILq/PbZFBhvQ3WoMsK2Fljeg==
X-Received: by 2002:a5d:6549:0:b0:333:db9:47e2 with SMTP id z9-20020a5d6549000000b003330db947e2mr2080105wrv.63.1702030875403;
        Fri, 08 Dec 2023 02:21:15 -0800 (PST)
Message-ID: <a060e05a-2177-4344-8674-0d62a9095167@suse.com>
Date: Fri, 8 Dec 2023 11:21:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/39] xen/riscv: introduce asm/iommu.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <68be3d368bf6ed96b0bb53b51a2fd07696cb338d.1700761381.git.oleksii.kurochko@gmail.com>
 <ca13b1b0-8b96-47b0-abc5-9711f96ccca0@suse.com>
 <cdc3fe19d7e9e60c348eb1c25c716ecb9486a664.camel@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: <cdc3fe19d7e9e60c348eb1c25c716ecb9486a664.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2023 10:29, Oleksii wrote:
> On Thu, 2023-12-07 at 15:22 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/iommu.h
>>> @@ -0,0 +1,7 @@
>>> +#ifndef __ASM_RISCV_IOMMU_H__
>>> +#define __ASM_RISCV_IOMMU_H__
>>> +
>>> +struct arch_iommu {
>>> +};
>>> +
>>> +#endif /* __ASM_IOMMU_H__ */
>>
>> Instead of adding this header, didn't we discuss to make the #include
>> in
>> xen/iommu.h depend on CONFIG_HAS_PASSTHROUGH? Also - no SPDX or
>> footer
>> here?
> We had discussion about some stuff in device.h, but we can apply it
> here too. Only to place will be needed to update:
> 
> 
> + #ifdef CONFIG_HAS_PASSTHROUGH
> #include <asm/iommu.h>
> + #endif
> 
> #ifndef iommu_call
> # define iommu_call(ops, fn, args...) ((ops)->fn(args))
> # define iommu_vcall iommu_call
> #endif
> 
> struct domain_iommu {
> + #ifdef CONFIG_HAS_PASSTHROUGH
>     struct arch_iommu arch;
> + #endif
> ...
> 
> I'll do that in the next iteration of this patch series.

What you suggest is to eliminate the need for an asm/ header. I asked
about an asm-generic/ one, though. (But I'd be okay either way, as long
as the redundancy is avoided.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 10:23:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 10:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650548.1016201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBY0w-0007Hf-Io; Fri, 08 Dec 2023 10:23:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650548.1016201; Fri, 08 Dec 2023 10: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 1rBY0w-0007HY-FQ; Fri, 08 Dec 2023 10:23:22 +0000
Received: by outflank-mailman (input) for mailman id 650548;
 Fri, 08 Dec 2023 10:23:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=XFXw=HT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rBY0v-0007HS-Lm
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 10:23:21 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf5d5256-95b3-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 11:23:20 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c29f7b068so16653165e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 02:23:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 k42-20020a05600c1caa00b003fe1fe56202sm2391163wms.33.2023.12.08.02.23.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Dec 2023 02:23:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf5d5256-95b3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702031000; x=1702635800; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=6x76WUDNewsTNxYrpglF6vJ9GoXMh21tPJ8MfaaFlk8=;
        b=TWA9zI8jEReLMjvnR/YYGjZfO+SvledAHkIIM3N5zDZxQ3PkZAzP3nqwOBqopByvrk
         XoJwSiQq1lDtTnVwFk6UoxV2b9l7ogtuXOpTzz3ici3pbrsiUWS5gcrOHpHtnVAc5aEk
         ID7LK9EyUh/+jmvXV+PIXN7YYTk5OZXzqOmd1yWpLaU7B6BhmBQr5X5U57oU78inI0CK
         ijidmGgIBO3o1d0ktGU8d1GTAjR8HXTwiz7uJcXR+GhnxaiG9guCL3FwUitHWAIXgM2z
         10t9PfK+q2mWGMXZ9KGPi+GqWZihbDwTs3Dg2QDwyYx0dyOC5kSOB1a2NIT1Bbqpjc1v
         XsNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702031000; x=1702635800;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=6x76WUDNewsTNxYrpglF6vJ9GoXMh21tPJ8MfaaFlk8=;
        b=qxuOc23utUzXb3tbFpQDqhLogTNJnhI404gvM26LYQVMjQQ0aPdOtf5unTj12cw9jK
         38SPiRs3eZ/r9khEVnF/C/cowf47PCPsYA1a9nSB9mx8+j7PaHT11VkfMnWi8SphWPHi
         ROMoe3CIwFP+YnMGhF7WTcHfCpK4nloRdqNA2gR4qFQJfweEOHPvTdO4NMh7kGX2UK93
         L9X8QrAbyKJREtgTK76rwu1p/ITZhlG88x5AIDOJlRaHim2gx1CjWfr156q1lnrLEGq4
         4q/zV3QjP9fvFGYsYcpvljGk3iToCUyo0A1b1AWlxUOpLJkw77HS4QS51WNDShZ8pRiy
         t+zQ==
X-Gm-Message-State: AOJu0Yzn9UKinkcRsBl9ryZ6uKoXE765Yi3xemFN1ojt0n/lJ/AOqJoD
	pZiQ9ffi0g8esZoA1QgYtJ4G
X-Google-Smtp-Source: AGHT+IEtLVA1NMGCEV7C/8vaInw/dTdtl9KafbOUcxPOQdvNyM+NDxrbZEs8iNYN+BtnGY/cVGP2Cg==
X-Received: by 2002:a05:600c:2802:b0:40c:2b16:1dd with SMTP id m2-20020a05600c280200b0040c2b1601ddmr1278579wmb.93.1702031000079;
        Fri, 08 Dec 2023 02:23:20 -0800 (PST)
Message-ID: <3d5aa7de-cbcd-4207-a540-ad512ba315eb@suse.com>
Date: Fri, 8 Dec 2023 11:23:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/39] xen/riscv: introduce asm/nospec.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <aa2ff1df494f82f7c045f913371d3b9d04962a5e.1700761381.git.oleksii.kurochko@gmail.com>
 <028532fb-55d4-4a08-9b93-9ae29ed8e37c@suse.com>
 <484d52564ea8b800d1eb39f1ef899c1a3044fc53.camel@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: <484d52564ea8b800d1eb39f1ef899c1a3044fc53.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.12.2023 10:33, Oleksii wrote:
> On Thu, 2023-12-07 at 15:28 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/nospec.h
>>> @@ -0,0 +1,25 @@
>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>> +/* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights
>>> Reserved. */
>>> +
>>> +#ifndef _ASM_RISCV_NOSPEC_H
>>> +#define _ASM_RISCV_NOSPEC_H
>>> +
>>> +static inline bool evaluate_nospec(bool condition)
>>> +{
>>> +Â Â Â  return condition;
>>> +}
>>> +
>>> +static inline void block_speculation(void)
>>> +{
>>> +}
>>> +
>>> +#endif /* _ASM_RISCV_NOSPEC_H */
>>
>> This being identical between Arm, PPC, and now RISC-V, wouldn't this
>> be another
>> asm-generic/ candidate? (Whether such trivial stubs are copyrightable
>> is, as
>> per earlier remarks, at least questionable to me.)
> It is a good candidate to be moved to asm-generic. Thanks for notice
> that. I'll update move this patch to generic headers patch series.
> 
> I am not sure too but the copyright was presented in Arm's file and
> RISC-V's version is just a copy so I decided to leave it.
> Does any documented rule exist in which cases copyright should be and
> not?

I'm afraid there's nothing. But see how PPC has dropped the copyright,
too. Generally I'm of the opinion that purely trivial stubs aren't
sensible to put under a copyright.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 10:35:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 10:35:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650565.1016250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBYD3-0004JE-3R; Fri, 08 Dec 2023 10:35:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650565.1016250; Fri, 08 Dec 2023 10:35: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 1rBYD3-0004J7-0m; Fri, 08 Dec 2023 10:35:53 +0000
Received: by outflank-mailman (input) for mailman id 650565;
 Fri, 08 Dec 2023 10:35: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 1rBYD1-0004Ix-LD; Fri, 08 Dec 2023 10:35: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 1rBYD1-0004MX-J5; Fri, 08 Dec 2023 10:35: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 1rBYD1-0003Gp-0a; Fri, 08 Dec 2023 10:35:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBYD0-0007Pj-Vu; Fri, 08 Dec 2023 10:35:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ump7mPRRFJuMW7ueAdtewwOgocTgp0a7tPVlo8bcvXs=; b=k/YzPmL9KZbE63vyGCY1gaXUaC
	kyN1nh6T0I+SY8RVHcVNco/qSWXGlT8uIPCbiyeJDlxzPoxsNXGEhRdkyNWN9PbMeAozhNAeATDo9
	hWTsdsT1bI//18jYXI1BXGa3sAifQo9uJpMbwLFIdZdPECywPyOhMp6BUFCAaPKH6blg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184031-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184031: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-vhd:guest-start/debian.repeat:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-amd64-i386-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-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
X-Osstest-Versions-That:
    xen=d4bfd3899886d0fbe259c20660dadb1e00170f2d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 08 Dec 2023 10:35:50 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 184034-retest
 test-armhf-armhf-xl-vhd 17 guest-start/debian.repeat fail pass in 184034-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184020
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184020
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184020
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184020
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184020
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184020
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184020
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184020
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184020
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184020
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184020
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184020
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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
 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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d
baseline version:
 xen                  d4bfd3899886d0fbe259c20660dadb1e00170f2d

Last test of basis   184020  2023-12-07 05:13:32 Z    1 days
Testing same since   184031  2023-12-07 22:10:35 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  George Dunlap <george.dunlap@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  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                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    
 test-amd64-i386-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
   d4bfd38998..d2b7c442b4  d2b7c442b4a066bb670ee83e24800cabc415241d -> master


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 11:06:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 11:06:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650578.1016260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBYg8-0005YD-A8; Fri, 08 Dec 2023 11:05:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650578.1016260; Fri, 08 Dec 2023 11: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 1rBYg8-0005Y6-7W; Fri, 08 Dec 2023 11:05:56 +0000
Received: by outflank-mailman (input) for mailman id 650578;
 Fri, 08 Dec 2023 11:05:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=SAoP=HT=arm.com=Wei.Chen@srs-se1.protection.inumbo.net>)
 id 1rBYg6-0005WK-PJ
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 11:05:54 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2043.outbound.protection.outlook.com [40.107.7.43])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c09af5f5-95b9-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 12:05:53 +0100 (CET)
Received: from AM0PR10CA0127.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:e6::44)
 by DU0PR08MB8836.eurprd08.prod.outlook.com (2603:10a6:10:47d::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 11:05:22 +0000
Received: from AM4PEPF00027A64.eurprd04.prod.outlook.com
 (2603:10a6:208:e6:cafe::a0) by AM0PR10CA0127.outlook.office365.com
 (2603:10a6:208:e6::44) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28 via Frontend
 Transport; Fri, 8 Dec 2023 11:05:22 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A64.mail.protection.outlook.com (10.167.16.75) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 11:05:22 +0000
Received: ("Tessian outbound e243565b0037:v228");
 Fri, 08 Dec 2023 11:05:22 +0000
Received: from 0c5f0e229c2d.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 FAD80E73-CDF7-4AF5-AC9D-AD031C46D191.1; 
 Fri, 08 Dec 2023 11:04:49 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0c5f0e229c2d.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 11:04:49 +0000
Received: from PAXPR08MB7420.eurprd08.prod.outlook.com (2603:10a6:102:2b9::9)
 by PA4PR08MB6222.eurprd08.prod.outlook.com (2603:10a6:102:e9::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 11:04:47 +0000
Received: from PAXPR08MB7420.eurprd08.prod.outlook.com
 ([fe80::52b2:83e5:f64a:ec3e]) by PAXPR08MB7420.eurprd08.prod.outlook.com
 ([fe80::52b2:83e5:f64a:ec3e%6]) with mapi id 15.20.7068.028; Fri, 8 Dec 2023
 11:04: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: c09af5f5-95b9-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=JbPfvEa54RHIFbnLkrRf81p0hosPLGdZkZ2xAO43pDgNlt4yhDTll0kSy/uP/KzEcISP0L3NGiZ8N6UzSPhdfDUU8ZSCk2q4qoUkOPNpyyLs94xovoix6/zIIJfTxd+yurWjfA+EYoRUIwFwtaTOaLkr/l4T7eZkFEzyHl76aPrk0S+JTNrBcvoE0qivUm8vdUOzdYQslmiS6Etv55ghQIod7K96qlwPXhmFtFnNAHVotqvj9NNgniF6fYGNDu8V4Kxt/xHV3RADZy3dmVVGz4nQ11KNGPTYhkoAYO+4Z5vMCDcitVe6YqZyFB8Mcxd2vzDHGVwlNttydKR3/wY6OA==
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=Pv3G05oWQ2fsI0ix8eIqZqDPPW84sseJLd8VR36/GFE=;
 b=A7k1KU3dyy8BgbwMyUA7x40LKL5EEPxmkIt+HCl8D+sVf9K2A9mx2YSq2zxnGwSGDTU+VTyhWANIYFhWvffrxxjodLS7PYHK1aXLEUCKbRWryuOFTzxka3tQbrv0144rZ87PC/YDXYwD2xixAuMzvDVYMbiSZFaFapUn8b3XzXrCUclCXt3/ozvFGSCw6LZiJwNCLpcCerzGWXJ0vm21x3HZ612ihJGIv3W2bO67t9WJv3Ln1LNqXPxo3V/dknVMwTJRkEsEDLvkxQ2PIXFV8ARINkRYVGyBnMZjPenRytXHm4oh24/AbZbLKxy4k1jvSdh3jAGa8UWb7xkAqqZ+Lg==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Pv3G05oWQ2fsI0ix8eIqZqDPPW84sseJLd8VR36/GFE=;
 b=OHD+BNj+aRuVEubFsKa3fr96ZjFOlsomq9zjXOrDVHH7+DIpKcjWrbTaOF14/BwFJ3rQVyLenHLLg5gw9ERE3/Wq0E7rHzUNyKjUJJ5qdTv5hOV++XbNIq7LMZv2muWEAHktBSpaAZyWNFXmlf+pj5Rfqzt/R9Gv2PNHMcdYx8g=
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=armh.onmicrosoft.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-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mt71Ng/F8Rouyaf0tu3FyisncoBQzDxvS0CBoSm31+sm6MdpVuLeR5LOsNBmihJ5MOzoZPQ4MI+gORT7r/TW7yw8oQHrgIHpPOSBF4Yd4YtpH0eQr0xJq+RdCmnY/Q0VyGmaklfFdK0SOdq6ox9oL7BAYAUUtX4sz1N9eIl+2eFdJnWaQA9Pmjdd1CG6ZBByszGP13SBuXg7Z4vVy0dsBw/PFJbgOtqgr+WBV2NFC8liNeIW6nNdeLC4aBjqdYdTVmI3yA5BoYeMrqSHpt/GY6cBrP98dblmEpABVYN4h6QgyFdv6nO4QmVjPMCSzLpLTL9WMEKRma6azx6hNDV4Uw==
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=Pv3G05oWQ2fsI0ix8eIqZqDPPW84sseJLd8VR36/GFE=;
 b=Emh/b09PG0gwWzzSou7L3FdD0CnJkLFIysIAkbz9gBVki/wslEVCAVyU50SQhPpAj74hYOIFUF37Vdkdp0nvDCNXK9b8AjTe6sToy4AwTY1ixjxuhZ/5Z5sfZTw4qQ2/nUE3y1gcnMYkqwbrZ96qRsYaA4rCDhwxc+eBeagVPvG+tPK+VHcnHNnq5lov7XYDqG3tVaA+f5rXy0Anuj2oKaORQvtBd+Bw6FFXu/tJfxnRgNM93iJ2nrSHd7UMLbZVx6iD9X7t8FUvcxp6KCW/fW+SaJocn05e/QWt2WFctXZaWQM+0oHUD7IFTPZvmZhzzQQ/q4DWz+jlmFy3RWJWaQ==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Pv3G05oWQ2fsI0ix8eIqZqDPPW84sseJLd8VR36/GFE=;
 b=OHD+BNj+aRuVEubFsKa3fr96ZjFOlsomq9zjXOrDVHH7+DIpKcjWrbTaOF14/BwFJ3rQVyLenHLLg5gw9ERE3/Wq0E7rHzUNyKjUJJ5qdTv5hOV++XbNIq7LMZv2muWEAHktBSpaAZyWNFXmlf+pj5Rfqzt/R9Gv2PNHMcdYx8g=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Message-ID: <f3c759bc-f101-4e29-b4ff-dbf53d997d15@arm.com>
Date: Fri, 8 Dec 2023 19:04:40 +0800
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
To: Henry Wang <Henry.Wang@arm.com>, xen-devel@lists.xenproject.org
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>,
 Wei Liu <wl@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20231207162036.1921323-1-Henry.Wang@arm.com>
Content-Language: en-US
From: Wei Chen <Wei.Chen@arm.com>
In-Reply-To: <20231207162036.1921323-1-Henry.Wang@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SI2PR01CA0043.apcprd01.prod.exchangelabs.com
 (2603:1096:4:193::12) To PAXPR08MB7420.eurprd08.prod.outlook.com
 (2603:10a6:102:2b9::9)
MIME-Version: 1.0
X-MS-TrafficTypeDiagnostic:
	PAXPR08MB7420:EE_|PA4PR08MB6222:EE_|AM4PEPF00027A64:EE_|DU0PR08MB8836:EE_
X-MS-Office365-Filtering-Correlation-Id: fff47d25-4b0a-4f5e-5f53-08dbf7dd92bd
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 SW8fo+Y983BQ6EQCm1g/ZGLmZcbfCGnkAA56cnxv/qbHYDF6o36UksZmpJLXdFUGwZedyNxNvaLXG2Q3sGqwjczRWucWyD5sJmNxlUALDF1ZGeKmKErOghFUEKLYb3wgY3yRVakBGLb3guwzs3wB6W+9osYJ7PY4s8tqJu3279Xi349m7iJS+ZKEWyiWDnK2jevJHlJrl61e3HGMrUuQjhKpS/0QZ2vGlLgUOkr4CjrAagIcVh+wFxr5z9+BcOAg+heE54gqK3KCUXLxxBsWRwI6ChACoWNKdW9eoNgWCWm23GAMWhUA1rgkGdG8qP0tRl5g/VYfi3813OxtmBQOcRZbqGYbaxBIf62xN/BFN69aEkS3Z0foIgEer3dYKGmWhucoQabEVlWomwiEWD444kRfago6w5k6atjRB0teSMpd0gF/bvzRnug8rD3nT3WREjjApP/sRdtlvsvzIp5OcuTf9VDBb+8izveXYXmO4qvA7DxepJruYRiKXcGj77fJDFK6Wbd2jxYqrmq2627XRemo0qFGSe917Q8048yduf1WhLfZcW5E4XsOFrHIOAIu/SNJZjgOA+aUDKtaj1PwjDvFyc+HSTudowMzxxh/tepDf/NPeneR5eOlG8YJSTPIut/ihjzvLd1t7b84HbYAPA==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB7420.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(39860400002)(136003)(376002)(396003)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(4744005)(2906002)(36756003)(4326008)(8936002)(8676002)(5660300002)(41300700001)(26005)(2616005)(83380400001)(86362001)(31696002)(31686004)(38100700002)(478600001)(316002)(6506007)(66946007)(66556008)(66476007)(6486002)(54906003)(6512007)(6666004)(53546011)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6222
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:
 AM4PEPF00027A64.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a0351661-4636-4e08-f378-08dbf7dd7dca
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	U+d6OLK5dEx48US6W05sb1/Q3ls51tBRUUfAQi+J2u94p/pN7Weyq/qST/vi5b0QSQVpZYBoWhM9RSCCOZEA7xYt2yX2DqoFEFNEM3lF+qp/XNQ1xYHtOs/RVGMjmSlPikxsSTG7V/YyA1RsRiqXdAUUnggFq/ZyG6wJZgAZ3R3jd7kbVgC0KAYHdTvUT6mycaEGsSzt6A04eSgbmXQQVwvtgQQsoSiRZy77reL7bwx//rmSQoGHwWDamyKIKyOr1fx0OEPgZ/D4AsxBTbVgtOZLa2b2ALd1WVhqdq8LPBXJxx7r1TQmQBzhKmEq8UkVbY0sxK1IrsCPNkvY3prR3XU39muWkr041MauwqNCLr6SKROBkBxrN3jDI84aPS9gJ76bt8Ts3pvsfH7069GDkRlWZKLkDMZGnl7iI2upGC5Kiwwq34UbvllD81LlYAO2fPQi1jm01ThhbfculPkhn0weSlzvuZArxvGhcfuoRNjBJDIj6ONuR3vzAlfQlBjYV2ArZj9sYMGU0xcSHG5/rttK/DtVCaBALEgosmVO6oKi4MuQ/E249c2BRrESy7IQDVSjPx97Z1+nB0xnADXvJI8R2A9u+EcOlw5CyI8UjstLp8sM8wdCls/EUYuwTBcZUSYwMRysj/Fxy6wxd5BSCRIzzwMViWNzYHmtg9XkczRUjYDq2E5HGPAM7rxF1ZVFo30duisTYNdUTlNAxQnoCi74ma91jJwLMtWF4uwgs2Bx8CMUOkpIqIUz//B92SSXFWyV/okXQjOUPSmi6fMxKw==
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:(13230031)(4636009)(346002)(39860400002)(396003)(376002)(136003)(230922051799003)(82310400011)(64100799003)(451199024)(1800799012)(186009)(46966006)(36840700001)(40470700004)(40480700001)(31686004)(40460700003)(36860700001)(41300700001)(4744005)(2906002)(5660300002)(36756003)(8676002)(4326008)(316002)(356005)(6512007)(6666004)(81166007)(478600001)(53546011)(6506007)(31696002)(2616005)(8936002)(70586007)(82740400003)(54906003)(26005)(70206006)(47076005)(86362001)(107886003)(83380400001)(336012)(6486002)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 11:05:22.4305
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fff47d25-4b0a-4f5e-5f53-08dbf7dd92bd
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:
	AM4PEPF00027A64.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8836

Hi Henry,

On 2023/12/8 00:20, Henry Wang wrote:
> I've finished the opportunity to do two releases (4.17 and 4.18)
> and Oleksii Kurochko has volunteered to be the next release manager.
> Hand over the role to him by changing the maintainership of the
> CHANGELOG.md.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> ---
>   MAINTAINERS | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 0fcf5a6f36..702032cc12 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -278,7 +278,7 @@ S:	Supported
>   F:	xen/drivers/passthrough/arm/smmu-v3.c
>   
>   Change Log
> -M:	Henry Wang <Henry.Wang@arm.com>
> +M:	Oleksii Kurochko <oleksii.kurochko@gmail.com>
>   R:	Community Manager <community.manager@xenproject.org>
>   S:	Maintained
>   F:	CHANGELOG.md

I'm proud of your work on the last two Xen releases.
Thanks for your works!

Cheers,
Wei Chen


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 11:14:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 11:14:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650583.1016272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBYo8-0000Uo-B3; Fri, 08 Dec 2023 11:14:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650583.1016272; Fri, 08 Dec 2023 11:14: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 1rBYo8-0000Uh-5L; Fri, 08 Dec 2023 11:14:12 +0000
Received: by outflank-mailman (input) for mailman id 650583;
 Fri, 08 Dec 2023 11:14: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=SAoP=HT=arm.com=Wei.Chen@srs-se1.protection.inumbo.net>)
 id 1rBYo6-0000Ub-Cb
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 11:14:10 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-db3eur04on060e.outbound.protection.outlook.com
 [2a01:111:f400:fe0c::60e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7837cdf-95ba-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 12:14:08 +0100 (CET)
Received: from AM6PR08CA0008.eurprd08.prod.outlook.com (2603:10a6:20b:b2::20)
 by DB9PR08MB8266.eurprd08.prod.outlook.com (2603:10a6:10:3c6::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.25; Fri, 8 Dec
 2023 11:14:03 +0000
Received: from AM3PEPF0000A790.eurprd04.prod.outlook.com
 (2603:10a6:20b:b2:cafe::ff) by AM6PR08CA0008.outlook.office365.com
 (2603:10a6:20b:b2::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Fri, 8 Dec 2023 11:14:03 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM3PEPF0000A790.mail.protection.outlook.com (10.167.16.119) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 11:14:02 +0000
Received: ("Tessian outbound 20615a7e7970:v228");
 Fri, 08 Dec 2023 11:14:02 +0000
Received: from 8f35c5af7cb7.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 0D5AB2F5-181F-4ABE-8DA1-F75A873AA8CB.1; 
 Fri, 08 Dec 2023 11:13:25 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8f35c5af7cb7.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 11:13:25 +0000
Received: from PAXPR08MB7420.eurprd08.prod.outlook.com (2603:10a6:102:2b9::9)
 by DBAPR08MB5816.eurprd08.prod.outlook.com (2603:10a6:10:1b3::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 11:13:24 +0000
Received: from PAXPR08MB7420.eurprd08.prod.outlook.com
 ([fe80::52b2:83e5:f64a:ec3e]) by PAXPR08MB7420.eurprd08.prod.outlook.com
 ([fe80::52b2:83e5:f64a:ec3e%6]) with mapi id 15.20.7068.028; Fri, 8 Dec 2023
 11:13: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: e7837cdf-95ba-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=kptN0rqWFsz4mohJ+9fRI8Hi+KmbUPQML+4vWNBDMaCZvc+ymTQgXZxTEDuPwD8KM+5sEEuDVafxI58m7dH+cC6kNiF6YgjosHvqQABorva+A4nB1KSYsbIcAELEh8c6sr4FaIYX1N3lOoxIJxoJa7mMxAJ4jDC8NK0gt14ZiWFBCbJMSO5ggs3TsyaQTtHVHkgrmkQeKvFaIbq9DPb8/VfWd6f0+Scx6KsZeNzdT5Z3hu9Nn2tRK82pQcnz8AR4+5I1A+zKkgFmjdNyv7tN9mJT0IeIwh7AFm8NDI429JFQVWdUlHHxXFmJ/6zeR0JZfiJxVhkqdZQDl9LDSq8IJg==
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=lh6oIpNrNqZh33XoexMEQY50zhTwEJ530smAROg6cA4=;
 b=FtlptEofs8G3y6k7quPeMRQkPIJqTNuT6m+zCQgyV/bM9eyUtQ7grA4nl9LUs8wLWpMallS4kOkS7fFUyLLs8RsJFPCc/XA4oLfF7WOZSMbJwNBYiJCOEtn4OEAH6rcwkXhiGRg0XTPPrTJsFbZyRGqS7YIRUZUHFJwtANWP0rbE+BGYQbx0DHCdRqRsql1ADT91gwbfq24ZdT9SG6QwtGF+2P+Ilb2ELb8U8VjnkdWj4sUtXH1/WoLs72ZoMTQqKdEmXTGstWuVoW2csSGxbt/CY3C+RzRAi7s0viW7iQ1C0k0WTc9reBbve5HrCMC5rFgSvUstso21vUWXzCMF1w==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lh6oIpNrNqZh33XoexMEQY50zhTwEJ530smAROg6cA4=;
 b=b9nDn0XJeAUwQlimHGCOPouf0IXrPNqY+JKaSr8E0nARsOiRkAeV+6w/Uc/aeKWDYhVfZPR9f0ccQ5ZnxQJwT+VaOu1zrerIJPXVDI+I65yoCpEw9B4jn43UXK546BrCWiuqtwjSXMu0UO9/XRj551CGmhX33v0+TIKhDd3bfqQ=
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=armh.onmicrosoft.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-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=V4Bi1lw7b664S5QhJI2i0mdmcdkITmmkMwbbtgyUF5/yGQkLqGE7aj9I8cQ/erNuYM/QS+kR5hGcgDCGgU1Ba1wVjWnzRKjYp36O5d8cdVAoNrs+PKmVd7OANPoHi//OlSuQukZUnIEWJlLpMuJIy/t1EiubXkcWVUVOAtLBwh64OwRZvxvYFCpf/GWE0D4l8iDPJUqK38T3zzG+VAMUbfD/xOpvbWsSsMkY2/o8gIA5zwLbHHMZsN7I6qGYSvjkCQzoVcNbxPMno9dQTQZKaOAuSZGGDTLqHK5i/KUbH69TYCY1Ub7RqlBZYvd3ZuEs5WaYEHMw7Y3BEdEeJe0UzQ==
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=lh6oIpNrNqZh33XoexMEQY50zhTwEJ530smAROg6cA4=;
 b=korgB3s/2/DCRNB/3aAtYQfb86TRDRjY9Qide84ljTldJ9Xaxm4wTT4r9sm/yr4eS/mNeb7WYVlBXEnnOzNIWjVowX9qQLfHCksFiJTGScuAuDUAu937mQ0hWZ5FeyoVbGgLvDy1IDe4lQlpwTVW8OK+bBJHZSUBca0dWlj+J5c/BbRPSBYLPbHqbxeaIAOpEnLxCpd1frMZpFsQdNqzuSDAJ2vAIibIEbiDOb2qkZEsLSMXMrk++a6drKykjByU17p4xRFOUa9nvfyBGrJk/wCj+ZTUZQrX5qJD9+nyeLFJ0h9E2tnJQCDNbDIjDZUowYAWqvAkNwO2EcfzYe3lUg==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lh6oIpNrNqZh33XoexMEQY50zhTwEJ530smAROg6cA4=;
 b=b9nDn0XJeAUwQlimHGCOPouf0IXrPNqY+JKaSr8E0nARsOiRkAeV+6w/Uc/aeKWDYhVfZPR9f0ccQ5ZnxQJwT+VaOu1zrerIJPXVDI+I65yoCpEw9B4jn43UXK546BrCWiuqtwjSXMu0UO9/XRj551CGmhX33v0+TIKhDd3bfqQ=
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
Message-ID: <6795d175-6486-44bd-b878-96535730a9bb@arm.com>
Date: Fri, 8 Dec 2023 19:13:16 +0800
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Content-Language: en-US
To: Henry Wang <Henry.Wang@arm.com>, Michal Orzel <michal.orzel@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
 <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
 <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
 <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
 <B9AFD918-42F6-4190-963B-E5A639D9F60E@arm.com>
 <2f34c0ec-0d94-48e2-bec0-faa96e1702f1@amd.com>
 <9F69A6E2-2D83-46AF-8AB6-C1B409F4ADE0@arm.com>
From: Wei Chen <Wei.Chen@arm.com>
In-Reply-To: <9F69A6E2-2D83-46AF-8AB6-C1B409F4ADE0@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SG2PR02CA0132.apcprd02.prod.outlook.com
 (2603:1096:4:188::15) To PAXPR08MB7420.eurprd08.prod.outlook.com
 (2603:10a6:102:2b9::9)
MIME-Version: 1.0
X-MS-TrafficTypeDiagnostic:
	PAXPR08MB7420:EE_|DBAPR08MB5816:EE_|AM3PEPF0000A790:EE_|DB9PR08MB8266:EE_
X-MS-Office365-Filtering-Correlation-Id: 8dc32fd0-8c7b-4c62-42dc-08dbf7dec8c4
x-checkrecipientrouted: true
NoDisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 tspTVlRR1rIfxJEiS7Q3LxdK/CclGbSyg7dx1VfdG+X9HRTQzhIjj9SNDPQMTlBulb8994Hq5AFPdyuXdYZeit7FEJHkFPtcUi6dc2kwl7/ll40LHOzEYW6KKq+a9MglJHaueoy7ab05AXrCUQwYdd15aQINNSvTMYC9JKEssU04xIxTZ2+HP6xtUdOSf3HcfB6L45zWJEpyn6C++w9opOHc3hH7uR0g09CecuIrMsZ/4FB67R1rJqN0LowtzCq48Z3dwACKRAGqesrslBI0n2+dDa3MnA43HVPkjSDCxYbjokH6YUz6VwLXZPLWCJ7Z3ikDWCGVT/E4+UYniWxrBFOq1l8fhDUZoFhvlyjwE514AK4WyfYKKOpYlywCR6wq5tO/RuZh3FoV23HGaIyhVwE8u7gngEMERncvoOyqokENnat7fdC2RzkByesOjl+v6wqwEtINK76HDIoNIVBrKDV5nZI1HqWPRKTl7O6YMEnIjjMgUciflPsLD6PT75uZocm1gsJTsxMXF6GKCYNUxLfbvmtTo00fMfs/ivDy/drDCsfM7U94z1HRI9OdKmyhqB2wSw8n+3RR5/2rosK0BlAJKyxPEU0zi+i/UVOnPa1F1U9h7Y6duWCyXsn3eSIJoQm4A9v7ZsZfaet7hS1nKA==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB7420.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39850400004)(396003)(136003)(366004)(346002)(376002)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(26005)(36756003)(41300700001)(6512007)(6506007)(53546011)(2616005)(83380400001)(5660300002)(478600001)(6486002)(2906002)(66556008)(54906003)(66946007)(66476007)(316002)(31696002)(8936002)(8676002)(110136005)(4326008)(38100700002)(6666004)(86362001)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5816
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:
 AM3PEPF0000A790.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	685508bd-fc92-4de0-6bcc-08dbf7deb189
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	nOibPpQGXz9O/lYeCE17cGmIDdzahqjWj3YEb6KtJ6TRq2m4Kf2QjrxcZ2wYGXK3QZmBBz82fZKtfd24ENmz593G4B52n7qyIhf7H2sp1gO3yXm1xyIKkNzIiPX0qFyBfKvva7BJk2g+C7RtelDHAgv2BYVizu1EO/GE9hnxeNU4xq5ELgIq7gvo5P5uNX5t0nRP0mUpYlA5ZZDh7RsMgpemJ92Xsf94jHG7kIzASBXCU48RDwKjUpkyGJu/O2aexxZXDJ4NJ8iOuPMzZRbh+K9zTev2XrtvCIc9lIQBP3qN2k2QMRsj/EyNHenG1e+VaOx9MuvX8N2RsdtZt8akKL9PvHf8dus+ZNnPFNl7c4wVew9bQ4TXl6ZRJCBwfOl3mxTPMOBjItkgWtrYDkV1OPMGSccL9glVvuFZZ1ekp47naX8mCRZPVa5fnhbQG4H9mtSU7SsfS/o+NfrYoEJJ8p/ow85+oX6IHYLtwski1A6eRAqqgaWpDt3zABfHRwUG7+tJQMMi6YiANkOdJAIQ6EVGTuTeFcQh9iZJ+SdA0GroxRRl7UR3KhkItNbDPTpIwwf18ZBG6EuYaZD+ptkOjMVKw0gv2lgRIchqFYhBlmx536WbmZ6TDG6itHTUN08uKnweRPzUGonXXbhu/2giwKWDB3PkhgZPy5Nwfjd+QRpSA6UeFhjjEv0sH5FaEjFrxbNSdNnF+J/FGrq3l7tLCFYbnWTSEuy9Zo6VuGsRVWnqoYV6qM9AgIWhGZRe54KU6YjZVlWrLUHZyCtNdrIkcg==
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:(13230031)(4636009)(136003)(346002)(396003)(376002)(39860400002)(230922051799003)(1800799012)(186009)(82310400011)(451199024)(64100799003)(40470700004)(36840700001)(46966006)(40480700001)(31686004)(40460700003)(6512007)(478600001)(6506007)(47076005)(2616005)(6666004)(81166007)(26005)(53546011)(336012)(110136005)(6486002)(8676002)(54906003)(4326008)(83380400001)(70206006)(70586007)(316002)(5660300002)(8936002)(82740400003)(356005)(36756003)(86362001)(41300700001)(2906002)(36860700001)(31696002)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 11:14:02.5537
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8dc32fd0-8c7b-4c62-42dc-08dbf7dec8c4
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:
	AM3PEPF0000A790.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8266

Hi Henry and Michal,

On 2023/12/8 17:56, Henry Wang wrote:
> Hi Michal,
> 
>> On Dec 8, 2023, at 17:50, Michal Orzel <michal.orzel@amd.com> wrote:
>> On 08/12/2023 10:21, Henry Wang wrote:
>>>
>>>
>>> Hi Michal,
>>>
>>>> On Dec 8, 2023, at 17:11, Michal Orzel <michal.orzel@amd.com> wrote:
>>>> On 08/12/2023 10:05, Henry Wang wrote:
>>>>>
>>>>> Hi Michal,
>>>>>
>>>>>> On Dec 8, 2023, at 16:57, Michal Orzel <michal.orzel@amd.com> wrote:
>>>>>>
>>>>>> Hi Henry,
>>>>>>
>>>>>> On 08/12/2023 06:46, Henry Wang wrote:
>>>>>>> diff --git a/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
>>>>>>> new file mode 100755
>>>>>>> index 0000000000..25d9a5f81c
>>>>>>> --- /dev/null
>>>>>>> +++ b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
>>>>>>> @@ -0,0 +1,73 @@
>>>>>>> +#!/usr/bin/expect
>>>>>>> +
>>>>>>> +set timeout 2000
>>>>>> Do we really need such a big timeout (~30 min)?
>>>>>> Looking at your test job, it took 16 mins (quite a lot but I know FVP is slow
>>>>>> + send_slow slows things down)
>>>>>
>>>>> This is a really good question. I did have the same question while working on
>>>>> the negative test today. The timeout 2000 indeed will fail the job at about 30min,
>>>>> and waiting for it is indeed not really pleasant.
>>>>>
>>>>> But my second thought would be - from my observation, the overall time now
>>>>> would vary between 15min ~ 20min, and having a 10min margin is not that crazy
>>>>> given that we probably will do more testing from the job in the future, and if the
>>>>> GitLab Arm worker is high loaded, FVP will probably become slower. And normally
>>>>> we donâ€™t even trigger the timeout as the job will normally pass. So I decided
>>>>> to keep this.
>>>>>
>>>>> Mind sharing your thoughts about the better value of the timeout? Probably 25min?
>>>>  From what you said that the average is 15-20, I think we can leave it set to 30.
>>>> But I wonder if we can do something to decrease the average time. ~20 min is a lot
>>>> even for FVP :) Have you tried setting send_slow to something lower than 100ms?
>>>> That said, we don't send too many chars to FVP, so I doubt it would play a major role
>>>> in the overall time.
>>>
>>> I agree with the send_slow part. Actually I do have the same concern, here are my current
>>> understanding and I think you will definitely help with your knowledge:
>>> If you check the full log of Dom0 booting, for example [1], you will find that we wasted so
>>> much time in starting the services of the OS (modloop, udev-settle, etc). All of these services
>>> are retried many times but in the end they are still not up, and from my understanding they
>>> wonâ€™t affect the actual test(?) If we can somehow get rid of these services from rootfs, I think
>>> we can save a lot of time.
>>>
>>> And honestly, I noticed that qemu-alpine-arm64-gcc suffers from the same problem and it also
>>> takes around 15min to finish. So if we managed to tailor the services from the filesystem, we
>>> can save a lot of time.
>> That is not true. Qemu runs the tests relatively fast within few minutes. The reason you see e.g. 12 mins
>> for some Qemu jobs comes from the timeout we set in Qemu scripts. We don't have yet the solution (we could
>> do the same as Qubes script) to detect the test success early and exit before timeout. That is why currently
>> the only way for Qemu tests to finish is by reaching the timeout.
>>
>> So the problem is not with the rootfs and services (the improvement would not be significant) but with
>> the simulation being slow. That said, this is something we all know and I expect FVP to only be used in scenarios
>> which cannot be tested using Qemu or real HW.
> 
> Ok, you made a point. Let me do some experiments to see if I can improve. Otherwise maybe
> we can live with this until a better solution.
> 
> Kind regards,
> Henry
> 

QEMU works like FVP enabled use_real_time flag. How about enable 
use_real_time flag in CI for most test cases, but disable it for
some time sensitive test cases? Normally, enable use_real_time
will give several times improvement of FVP performance.

Cheers,
Wei Chen

>>
>> ~Michal
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 12:05:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 12:05:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650599.1016280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBZbp-0005v8-1O; Fri, 08 Dec 2023 12:05:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650599.1016280; Fri, 08 Dec 2023 12:05:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBZbo-0005v1-Uk; Fri, 08 Dec 2023 12:05:32 +0000
Received: by outflank-mailman (input) for mailman id 650599;
 Fri, 08 Dec 2023 12:05: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 1rBZbo-0005uv-4C
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 12:05: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 1rBZbn-0005ti-Fr; Fri, 08 Dec 2023 12:05:31 +0000
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=[192.168.23.116]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBZbn-0000Ip-6z; Fri, 08 Dec 2023 12:05: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=4eqN/7ztqqNjke1hpK2OK9EhZDSJm1aW2ryPKfCkv/8=; b=R6wFuzDLcsoO+wYuQt3K3WbAEo
	ApVjwm7mQW0aOv8A6kC32U89txDoRd3a8DZ0hBXrOHM/gRRHT9zhIFcwl28F+kOP0+BYw4+yb1fql
	YXRbzjoEfQZp3Z6FtEaH6JqPr0yy6qMyAdhx2ai03gMfArQx75pT8Xmft4l8pDxGDvG0=;
Message-ID: <8f0a66e9-70bc-421e-8069-88fed9dee4ed@xen.org>
Date: Fri, 8 Dec 2023 12:05:29 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Henry Wang <Henry.Wang@arm.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen <Wei.Chen@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
 <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
 <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
 <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
 <B9AFD918-42F6-4190-963B-E5A639D9F60E@arm.com>
 <2f34c0ec-0d94-48e2-bec0-faa96e1702f1@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <2f34c0ec-0d94-48e2-bec0-faa96e1702f1@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 08/12/2023 09:50, Michal Orzel wrote:
> On 08/12/2023 10:21, Henry Wang wrote:
>>> On Dec 8, 2023, at 17:11, Michal Orzel <michal.orzel@amd.com> wrote:
>>> On 08/12/2023 10:05, Henry Wang wrote:
>>>>
>>>> Hi Michal,
>>>>
>>>>> On Dec 8, 2023, at 16:57, Michal Orzel <michal.orzel@amd.com> wrote:
>>>>>
>>>>> Hi Henry,
>>>>>
>>>>> On 08/12/2023 06:46, Henry Wang wrote:
>>>>>> diff --git a/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
>>>>>> new file mode 100755
>>>>>> index 0000000000..25d9a5f81c
>>>>>> --- /dev/null
>>>>>> +++ b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
>>>>>> @@ -0,0 +1,73 @@
>>>>>> +#!/usr/bin/expect
>>>>>> +
>>>>>> +set timeout 2000
>>>>> Do we really need such a big timeout (~30 min)?
>>>>> Looking at your test job, it took 16 mins (quite a lot but I know FVP is slow
>>>>> + send_slow slows things down)
>>>>
>>>> This is a really good question. I did have the same question while working on
>>>> the negative test today. The timeout 2000 indeed will fail the job at about 30min,
>>>> and waiting for it is indeed not really pleasant.
>>>>
>>>> But my second thought would be - from my observation, the overall time now
>>>> would vary between 15min ~ 20min, and having a 10min margin is not that crazy
>>>> given that we probably will do more testing from the job in the future, and if the
>>>> GitLab Arm worker is high loaded, FVP will probably become slower. And normally
>>>> we donâ€™t even trigger the timeout as the job will normally pass. So I decided
>>>> to keep this.
>>>>
>>>> Mind sharing your thoughts about the better value of the timeout? Probably 25min?
>>>  From what you said that the average is 15-20, I think we can leave it set to 30.
>>> But I wonder if we can do something to decrease the average time. ~20 min is a lot
>>> even for FVP :) Have you tried setting send_slow to something lower than 100ms?
>>> That said, we don't send too many chars to FVP, so I doubt it would play a major role
>>> in the overall time.
>>
>> I agree with the send_slow part. Actually I do have the same concern, here are my current
>> understanding and I think you will definitely help with your knowledge:
>> If you check the full log of Dom0 booting, for example [1], you will find that we wasted so
>> much time in starting the services of the OS (modloop, udev-settle, etc). All of these services
>> are retried many times but in the end they are still not up, and from my understanding they
>> wonâ€™t affect the actual test(?) If we can somehow get rid of these services from rootfs, I think
>> we can save a lot of time.
>>
>> And honestly, I noticed that qemu-alpine-arm64-gcc suffers from the same problem and it also
>> takes around 15min to finish. So if we managed to tailor the services from the filesystem, we
>> can save a lot of time.
> That is not true. Qemu runs the tests relatively fast within few minutes. The reason you see e.g. 12 mins
> for some Qemu jobs comes from the timeout we set in Qemu scripts. We don't have yet the solution (we could
> do the same as Qubes script) to detect the test success early and exit before timeout. That is why currently
> the only way for Qemu tests to finish is by reaching the timeout.
> 
> So the problem is not with the rootfs and services (the improvement would not be significant) but with
> the simulation being slow.

 From my experience with the FVP improvement would be significant. A 
normal boot distribution will start a lot of services. I end up to write 
my own initscript doing the bare minimum for creating a guest. This 
saves me a lot of time everytime I needed to test on FVP.

I think we can do the same for the gitlab. Maybe not to the point of 
writing your initscript but cutting down anything unnecessary.

This will avoid the FVP test to become the bottlneck in the gitlab CI.

Chers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 12:17:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 12:17:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650604.1016290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBZnQ-00005d-2W; Fri, 08 Dec 2023 12:17:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650604.1016290; Fri, 08 Dec 2023 12: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 1rBZnP-00005V-Vr; Fri, 08 Dec 2023 12:17:31 +0000
Received: by outflank-mailman (input) for mailman id 650604;
 Fri, 08 Dec 2023 12:17: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 1rBZnO-00005L-Jv; Fri, 08 Dec 2023 12:17: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 1rBZnO-00066g-6e; Fri, 08 Dec 2023 12:17: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 1rBZnN-0001FB-OJ; Fri, 08 Dec 2023 12:17:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBZnN-0003TY-Nt; Fri, 08 Dec 2023 12:17: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=fJv+9Ap83XNVZtk9v5ZI0IPoA6Dz2qSBngbEovLY00c=; b=7OzDLvnXMIhRYTZKvbu2j9tf4O
	lSgYsyRAUwIAAbibbKRkMZIitcPkOzyf6gJnTHou2YOYvsDpfWdy6EH2nV57JkTrLcM4N3IRTvOUK
	OJ5cFPMpnIVK+r5WfZw9ViEVWZM16Ia2RsV+14O/GA2Y1sqV7RHOrKZdbbYu2hwA+HSA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184032-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184032: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-qemuu-debianhvm-amd64-xsm: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-libvirt: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-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-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-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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-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-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5e3f5b81de80c98338bcb47c233aebefee5a4801
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 08 Dec 2023 12:17:29 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-armhf-armhf-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-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-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-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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                5e3f5b81de80c98338bcb47c233aebefee5a4801
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    6 days
Failing since        183977  2023-12-03 00:12:06 Z    5 days   11 attempts
Testing same since   184032  2023-12-08 01:43:20 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Luke D. Jones" <luke@ljones.dev>
  "NÃ­colas F. R. A. Prado" <nfraprado@collabora.com>
  Adam Ford <aford173@gmail.com>
  Alex Williamson <alex.williamson@redhat.com>
  Alexis Belmonte <alexbelm48@gmail.com>
  Andrii Nakryiko <andrii@kernel.org>
  Armin Wolf <W_Armin@gmx.de>
  Brett Creeley <brett.creeley@amd.com>
  ChunHao Lin <hau@realtek.com>
  Conor Dooley <conor.dooley@microchip.com>
  D. Wythe <alibuda@linux.alibaba.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniel Xu <dxu@dxuuu.xyz>
  Daniil Maximov <daniil31415it@gmail.com>
  Dave Hansen <dave.hansen@linux.intel.com>
  David Howells <dhowells@redhat.com>
  David S. Miller <davem@davemloft.net>
  David Thompson <davthompson@nvidia.com>
  Dinghao Liu <dinghao.liu@zju.edu.cn>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Safonov <dima@arista.com>
  Douglas Anderson <dianders@chromium.org>
  Eric Dumazet <edumazet@google.com>
  Eugenio PÃ©rez <eperezma@redhat.com>
  Fabio Estevam <festevam@denx.de>
  Florian Westphal <fw@strlen.de>
  Francesco Dolcini <francesco.dolcini@toradex.com>
  Geetha sowjanya <gakula@marvell.com>
  Geethasowjanya Akula <gakula@marvell.com>
  Grant Grundler <grundler@chromium.org>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Hans de Goede <hdegoede@redhat.com>
  Hayes Wang <hayeswang@realtek.com>
  Heiner Kallweit <hkallweit1@gmail.com>
  Helge Deller <deller@gmx.de>
  Hui Zhou <hui.zhou@corigine.com>
  Ido Schimmel <idosch@nvidia.com>
  Ilpo JÃ¤rvinen <ilpo.jarvinen@linux.intel.com>
  Ilya Leoshkevich <iii@linux.ibm.com>
  Ivan Vecera <ivecera@redhat.com>
  Jacob Keller <jacob.e.keller@intel.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason Gunthorpe <jgg@nvidia.com>
  Jason Wang <jasowang@redhat.com>
  Jens Axboe <axboe@kernel.dk>
  Jianheng Zhang <Jianheng.Zhang@synopsys.com>
  Jijie Shao <shaojijie@huawei.com>
  Jiri Olsa <jolsa@kernel.org>
  Joao Martins <joao.m.martins@oracle.com>
  John Fastabend <john.fastabend@gmail.com>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Kelly Kane <kelly@hawknetworks.com>
  Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kunwu Chan <chentao@kylinos.cn>
  Lee Jones <lee@kernel.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Lorenzo Bianconi <lorenzo@kernel.org>
  Louis Peens <louis.peens@corigine.com>
  Luca Ceresoli <luca.ceresoli@bootlin.com>
  Luke D. Jones <luke@ljones.dev>
  Magnus Karlsson <magnus.karlsson@intel.com>
  Marcin Szycik <marcin.szycik@linux.intel.com>
  Mark Brown <broonie@kernel.org>
  Mark Hasemeyer <markhas@chromium.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Matthias Reichl <hias@horus.com>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Michael Walle <mwalle@kernel.org>
  Michal Smulski <michal.smulski@ooma.com>
  Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Naveen Mamindlapalli <naveenm@marvell.com>
  Neal Cardwell <ncardwell@google.com>
  Nicholas Piggin <npiggin@gmail.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  NÃ­colas F. R. A. Prado <nfraprado@collabora.com>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Phil Sutter <phil@nwl.cc>
  Philip Mueller <philm@manjaro.org>
  Rafal Romanowski <rafal.romanowski@intel.com>
  Rahul Bhansali <rbhansali@marvell.com>
  Randy Dunlap <rdunlap@infradead.org>
  Rob Herring <robh@kernel.org>
  Robin Murphy <robin.murphy@arm.com>
  Sean Christopherson <seanjc@google.com>
  Sean Nyekjaer <sean@geanix.com>
  Shannon Nelson <shannon.nelson@amd.com>
  Shawn Guo <shawn.guo@linaro.org>
  Shigeru Yoshida <syoshida@redhat.com>
  Simon Horman <horms@kernel.org> # build-tested
  Stefano Garzarella <sgarzare@redhat.com>
  Steve French <stfrench@microsoft.com>
  Steve Sistare <steven.sistare@oracle.com>
  Subbaraya Sundeep <sbhatta@marvell.com>
  Suman Ghosh <sumang@marvell.com>
  Sunil Goutham <sgoutham@marvell.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Tejun Heo <tj@kernel.org>
  Thinh Tran <thinhtr@linux.vnet.ibm.com>
  Thomas Gleixner <tglx@linutronix.de>
  Thomas Reichinger <thomas.reichinger@sohard.de>
  Tim Van Patten <timvp@google.com>
  Timothy Pearson <tpearson@raptorengineering.com>
  Tobias Waldekranz <tobias@waldekranz.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Venkata Sai Duggi <venkata.sai.duggi@ibm.com>
  Wen Gu <guwen@linux.alibaba.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@huawei.com>
  Yewon Choi <woni9911@gmail.com>
  Yonghong Song <yonghong.song@linux.dev>
  Yonglong Liu <liuyonglong@huawei.com>
  Zhipeng Lu <alexious@zju.edu.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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 3856 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 12:17:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 12:17:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650607.1016301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBZnl-0000QW-CA; Fri, 08 Dec 2023 12:17:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650607.1016301; Fri, 08 Dec 2023 12:17: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 1rBZnl-0000QP-7p; Fri, 08 Dec 2023 12:17:53 +0000
Received: by outflank-mailman (input) for mailman id 650607;
 Fri, 08 Dec 2023 12:17: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=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBZnk-0000Pd-G2
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 12:17:52 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on0630.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc4e37e6-95c3-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 13:17:47 +0100 (CET)
Received: from AS9PR06CA0185.eurprd06.prod.outlook.com (2603:10a6:20b:45d::6)
 by DU0PR08MB9582.eurprd08.prod.outlook.com (2603:10a6:10:44a::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 12:17:43 +0000
Received: from AMS0EPF000001A4.eurprd05.prod.outlook.com
 (2603:10a6:20b:45d:cafe::a) by AS9PR06CA0185.outlook.office365.com
 (2603:10a6:20b:45d::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28 via Frontend
 Transport; Fri, 8 Dec 2023 12:17:43 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF000001A4.mail.protection.outlook.com (10.167.16.229) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 12:17:42 +0000
Received: ("Tessian outbound 26ee1d40577c:v228");
 Fri, 08 Dec 2023 12:17:42 +0000
Received: from a691f3392ef4.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 8A34C2FE-66FA-4BC0-985A-34E98A11BB95.1; 
 Fri, 08 Dec 2023 12:17:36 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a691f3392ef4.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 12:17:36 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by AS4PR08MB7653.eurprd08.prod.outlook.com (2603:10a6:20b:4cf::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27; Fri, 8 Dec
 2023 12:17:34 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 12:17: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: cc4e37e6-95c3-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=EoAUl6Z+smPzfYYI/1X9Z8g8Ezh1mU3ZAgyhbZ2BuRUnPhEORIhP8Cw86wUc505VcX3eQjH6OHcX6LA2ZPCdh2r2oOQVnhDsltiFbS+x63ILcWmiL/8ZYGX4Rmmukm8mdyE+PrJMLHm0YR/ABXyo5X3qypPQdIp+qXJGSbcUw8KfdklnMCZ1qzOctSbCPm5kVVxB1lJcI5sep+Rvt/FUICz81TimTuF4kK32IvjFR/tRt1zUrpnG5C1JR85YIOEQ5vxsXcuN7CJspgwBu4PpzuRohSOW7zp9PWdVAOHrIvKbB9+u547TQSZkAlL3fP1tXxrrR/o4XPnoRPE2uKLggw==
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=DwGDt1w4oiea6jPH0q9wgRDo8KSF8ZhzqkJX98j04A8=;
 b=B8XZJMR4RtLlbfhM/3stuf0KRViFIRKZ8bxQx5U5mKqi+JmubVY/BwoTvLbw31PXDuGQTt9+TIuw8a+d4GRED7GdobLaqWLJfqVkalr8/kM+m10XW2yO0hxc6wTc/DL/QUjXCzM8GZZYDoWmKYQqZ/AQOzJHr8q1ZbKdLAT1MeTGVr6jRvlnn6ijsD2/Dkl4HDO9tl3NwACTVP1eVwjvayWpH53LWJr8FJYG0IiFvofLYMcG18fyCau90uWEzrcJT+Vn1DO/qWlZcKa7IDSHtFoFDXZF+o39fRUzOPhBwm66Ru7zTd8s3cVQQYGotIRMBwWkz/jeNcN8Na0Sse6dGA==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DwGDt1w4oiea6jPH0q9wgRDo8KSF8ZhzqkJX98j04A8=;
 b=qW0pja20eoYCdBHLjNd8ou3NZkehnBh9CGO687CESR6tjPLDwSrEN8ldrs7xj41VTBhGyy5p0AAU+l/m3IfdE2Y01VZA1ZR5EEYCRjkHR6b/IuA9DV9bSHlwqSe2DtfhwiPE7GCljAkiNvCVYzl2MbrRewCZqiNqYs/79sZEgok=
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=armh.onmicrosoft.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: e394adabb40f72a6
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OZ241DnD7PW0c+XDnkSrkrUGjMJ5cgkz5cPlryEmaBZtLBIHbs+j3yhgu9A2TyU33KDwJY0Eq7r+GgFbJtlRQqK0y2RIHTZUdt/01weTYVh8eGJd9hrUFrV+r8N+ajFGb7R3BwxFLLoA602u2aHjP20E6kIijCsXWBiMdGn7odvx1xBsDH98hYLzF3HNntpMoudxPjESBdNl1piOAoShKLD0GPB+faI4LLuWJJ29ebZnNHhhvgVRRv2EG4x7y0tfeHDfaH67RUyYJ5+IPxCFfWaXyFGEiBF1t/O2yOWqA6V4JUWhPFynjfq+vcZ6Uxdw68TyBDiq4GSUYbM13Lq7XQ==
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=DwGDt1w4oiea6jPH0q9wgRDo8KSF8ZhzqkJX98j04A8=;
 b=IouefIVqi+h4dxJi86e98SwZVuVXaEbth6W9D7kl1tObdXAZzvo+26y6KfWhyhnyd+t1OF5gxIDf/hqFPoE0OkL4W3G9OudZ90vrJOlStNA665rmwjYQQHZeiH5g8f5y0wu7A89Rx6Eo2x97GeJkS/NBnFI+Gw/T0esi3S20M96SjHNbO3DGSuGSq27KQsYcteuL7NERRHe45jRX15ydPA+3GEoycvIFhfsrkfba5AVw52kjYMs1OnoxGt5GDwHAvdwduEl5OEwIVz3/EJO/X0vCnzS7QBe5hb8VCXn4Sf3JnybqhSNjdfSeNz0rSgN+E7Z8+5p2zUX4MsaX/Kty3g==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DwGDt1w4oiea6jPH0q9wgRDo8KSF8ZhzqkJX98j04A8=;
 b=qW0pja20eoYCdBHLjNd8ou3NZkehnBh9CGO687CESR6tjPLDwSrEN8ldrs7xj41VTBhGyy5p0AAU+l/m3IfdE2Y01VZA1ZR5EEYCRjkHR6b/IuA9DV9bSHlwqSe2DtfhwiPE7GCljAkiNvCVYzl2MbrRewCZqiNqYs/79sZEgok=
From: Henry Wang <Henry.Wang@arm.com>
To: Julien Grall <julien@xen.org>
CC: Michal Orzel <michal.orzel@amd.com>, Xen-devel
	<xen-devel@lists.xenproject.org>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Topic: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Index:
 AQHaKZoAVIHO2rCYDECWUL8sUR2sfLCfFe6AgAACFwCAAAHkAIAAAsIAgAAIGgCAACWygIAAA1IA
Date: Fri, 8 Dec 2023 12:17:34 +0000
Message-ID: <5E874DF6-4766-4925-AC62-F30AE191B249@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
 <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
 <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
 <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
 <B9AFD918-42F6-4190-963B-E5A639D9F60E@arm.com>
 <2f34c0ec-0d94-48e2-bec0-faa96e1702f1@amd.com>
 <8f0a66e9-70bc-421e-8069-88fed9dee4ed@xen.org>
In-Reply-To: <8f0a66e9-70bc-421e-8069-88fed9dee4ed@xen.org>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|AS4PR08MB7653:EE_|AMS0EPF000001A4:EE_|DU0PR08MB9582:EE_
X-MS-Office365-Filtering-Correlation-Id: 90806abc-c3d7-4996-681e-08dbf7e7add8
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 37XP3kqvyt4batZHbiS8Wft7LWHp19KrfNGoWmsTyPri0j84fpQ5m3NwLWT/ex0ZtEpBa87lLdCUENh6N/cspAlq8EClqpnAJouHss2pQWsvHhNmIiZU6x0TPQtl7s+vbTRf+3qQqmcDvniI03VKxbGa3D8BxFXnXzLt6n+lGQb1O4jURh24mi16VrBsmN/vW3Xyj14KZHVeq+6tQ5Q5q8zwPDfss2FBBQrxuQq8Ku0PFSuM57J2z8oElM05GiBBD6CmSWBCRxmKIjSm4MVCxO3PyTA/+zbOZuiburITxZ8bzhGQI874NHd59hqypAVi9Df7AdM5s0aL72fjCDlejrIY83FsxQNLHR8QHx2ga3jmUlg3GRqWExObNWZ0V9aFfJe74cc9NYFKdc1KQeOuI2IrbmXhgAgfc3EGLUQGdKyrRzgvNfYavt6W2Q0+IZcM/372KgJePU0HGobx3rrecyTHW4bJGTNOfpj2TalguiW7S9PSAY7iVfJK8jijDlnYqUkPyAgVo7Uh5MHV8TsQuCz1yABNS/tH8RJSPKkvhK4pOrbuMhDxH6pYUKHh7WzkrM/Q5IFAvq02oY5xqiZXAj9TpwBXKW1g2I5sNF95ALdIntpXWX5hMzadE/pFZ7C6DtaOOnYO609Mon8if0ddkg==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(39860400002)(366004)(346002)(376002)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(5660300002)(38070700009)(41300700001)(36756003)(86362001)(2906002)(33656002)(71200400001)(2616005)(6512007)(6506007)(53546011)(83380400001)(6486002)(26005)(478600001)(4326008)(8676002)(122000001)(8936002)(6916009)(66446008)(66476007)(66556008)(54906003)(316002)(64756008)(38100700002)(91956017)(66946007)(76116006)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <12F33D29B597114B88EC0CC2BFF9640B@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7653
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:
 AMS0EPF000001A4.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b88774db-f88b-47ba-669d-08dbf7e7a8bf
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	5ffKx8b6QJQWl2D+u1sF8VbYgA4uIfe1h9icbHbtM/pOc4eKPAxmgjJfQtR5Xo7DI6mPNVMe56iv5YIrdvztiKPlz8fHX1NoyNkkODWuGvbvgOPAqIiBBAJW/89lWsY8mNWHS+haxacwry73KHs+u1IF9N3T7jt5bWzPmmbM+e3eVQpZc8fj/36mU3XOnIcIcQa1FDa0akEHvUSmVF934RwAWm1mbCfklefmYZScbrfD1MRvjitnX1VtvhPhyAm/3oSmmFobHTu3zlFVgYPkzEBJ7uH0rn0XW7mb+wreAj0WqREchzqojP5QNyU/ZahXVjwuDjBnieLOJkvA3PpMKDUIb5myGvmL+hfU8VDtoaSC24Xj7oSltsorUnNzjF5s8a6/5+SljHEYpOsTzHXblu15fQl1kUvgQb2tt0v3J/lNrNMsKvQW2eFRN1+ewqgRJ6sITG1oYudFxLBX23tXmSgO5dwS6cxRw8WbGOptfMb3OLf5wLm5yF0f5qG4XhplGWQ/zbbxL1WWhHuvyXqwBeVebwl5nTMvfc8UwNaVBPhTtuDZBrVPN680bCB1VQ1LTXN2b/DZ18yQiof7nZlVEPGOX92spwoXGB/EyI+ZX/dyZu0xWRPoF9qmKDi9nJeJLMh2Jm36vosoK8jlE6Nbhb9ANu2NiEm2zGv95jlfcHhI9Q96ynvMPBSlK8ZHL+jC4fM6n/UKi2M3JJE6y95MDDi/oIKM4cq5tUrH6Y0PSrjOoP/LM4zHOwpp+cCwnzzf
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:(13230031)(4636009)(39860400002)(136003)(346002)(396003)(376002)(230922051799003)(186009)(451199024)(1800799012)(82310400011)(64100799003)(36840700001)(40470700004)(46966006)(83380400001)(81166007)(36756003)(41300700001)(40460700003)(33656002)(2906002)(47076005)(356005)(82740400003)(36860700001)(6506007)(6512007)(6486002)(478600001)(53546011)(54906003)(70586007)(40480700001)(86362001)(70206006)(316002)(2616005)(4326008)(6862004)(8676002)(8936002)(26005)(5660300002)(336012);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 12:17:42.8579
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 90806abc-c3d7-4996-681e-08dbf7e7add8
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:
	AMS0EPF000001A4.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9582

SGkgSnVsaWVuLA0KDQo+IE9uIERlYyA4LCAyMDIzLCBhdCAyMDowNSwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSwNCj4gDQo+IE9uIDA4LzEyLzIwMjMgMDk6
NTAsIE1pY2hhbCBPcnplbCB3cm90ZToNCj4+IE9uIDA4LzEyLzIwMjMgMTA6MjEsIEhlbnJ5IFdh
bmcgd3JvdGU6DQo+Pj4+IE9uIERlYyA4LCAyMDIzLCBhdCAxNzoxMSwgTWljaGFsIE9yemVsIDxt
aWNoYWwub3J6ZWxAYW1kLmNvbT4gd3JvdGU6DQo+Pj4+IE9uIDA4LzEyLzIwMjMgMTA6MDUsIEhl
bnJ5IFdhbmcgd3JvdGU6DQo+Pj4+PiANCj4+Pj4+IEhpIE1pY2hhbCwNCj4+Pj4+IA0KPj4+Pj4+
IE9uIERlYyA4LCAyMDIzLCBhdCAxNjo1NywgTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1k
LmNvbT4gd3JvdGU6DQo+Pj4+Pj4gDQo+Pj4+Pj4gSGkgSGVucnksDQo+Pj4+Pj4gDQo+Pj4+Pj4g
T24gMDgvMTIvMjAyMyAwNjo0NiwgSGVucnkgV2FuZyB3cm90ZToNCj4+Pj4+Pj4gZGlmZiAtLWdp
dCBhL2F1dG9tYXRpb24vc2NyaXB0cy9leHBlY3QvZnZwLWJhc2Utc21va2UtZG9tMC1hcm02NC5l
eHAgYi9hdXRvbWF0aW9uL3NjcmlwdHMvZXhwZWN0L2Z2cC1iYXNlLXNtb2tlLWRvbTAtYXJtNjQu
ZXhwDQo+Pj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNzU1DQo+Pj4+Pj4+IGluZGV4IDAwMDAwMDAw
MDAuLjI1ZDlhNWY4MWMNCj4+Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4+PiArKysgYi9hdXRv
bWF0aW9uL3NjcmlwdHMvZXhwZWN0L2Z2cC1iYXNlLXNtb2tlLWRvbTAtYXJtNjQuZXhwDQo+Pj4+
Pj4+IEBAIC0wLDAgKzEsNzMgQEANCj4+Pj4+Pj4gKyMhL3Vzci9iaW4vZXhwZWN0DQo+Pj4+Pj4+
ICsNCj4+Pj4+Pj4gK3NldCB0aW1lb3V0IDIwMDANCj4+Pj4+PiBEbyB3ZSByZWFsbHkgbmVlZCBz
dWNoIGEgYmlnIHRpbWVvdXQgKH4zMCBtaW4pPw0KPj4+Pj4+IExvb2tpbmcgYXQgeW91ciB0ZXN0
IGpvYiwgaXQgdG9vayAxNiBtaW5zIChxdWl0ZSBhIGxvdCBidXQgSSBrbm93IEZWUCBpcyBzbG93
DQo+Pj4+Pj4gKyBzZW5kX3Nsb3cgc2xvd3MgdGhpbmdzIGRvd24pDQo+Pj4+PiANCj4+Pj4+IFRo
aXMgaXMgYSByZWFsbHkgZ29vZCBxdWVzdGlvbi4gSSBkaWQgaGF2ZSB0aGUgc2FtZSBxdWVzdGlv
biB3aGlsZSB3b3JraW5nIG9uDQo+Pj4+PiB0aGUgbmVnYXRpdmUgdGVzdCB0b2RheS4gVGhlIHRp
bWVvdXQgMjAwMCBpbmRlZWQgd2lsbCBmYWlsIHRoZSBqb2IgYXQgYWJvdXQgMzBtaW4sDQo+Pj4+
PiBhbmQgd2FpdGluZyBmb3IgaXQgaXMgaW5kZWVkIG5vdCByZWFsbHkgcGxlYXNhbnQuDQo+Pj4+
PiANCj4+Pj4+IEJ1dCBteSBzZWNvbmQgdGhvdWdodCB3b3VsZCBiZSAtIGZyb20gbXkgb2JzZXJ2
YXRpb24sIHRoZSBvdmVyYWxsIHRpbWUgbm93DQo+Pj4+PiB3b3VsZCB2YXJ5IGJldHdlZW4gMTVt
aW4gfiAyMG1pbiwgYW5kIGhhdmluZyBhIDEwbWluIG1hcmdpbiBpcyBub3QgdGhhdCBjcmF6eQ0K
Pj4+Pj4gZ2l2ZW4gdGhhdCB3ZSBwcm9iYWJseSB3aWxsIGRvIG1vcmUgdGVzdGluZyBmcm9tIHRo
ZSBqb2IgaW4gdGhlIGZ1dHVyZSwgYW5kIGlmIHRoZQ0KPj4+Pj4gR2l0TGFiIEFybSB3b3JrZXIg
aXMgaGlnaCBsb2FkZWQsIEZWUCB3aWxsIHByb2JhYmx5IGJlY29tZSBzbG93ZXIuIEFuZCBub3Jt
YWxseQ0KPj4+Pj4gd2UgZG9u4oCZdCBldmVuIHRyaWdnZXIgdGhlIHRpbWVvdXQgYXMgdGhlIGpv
YiB3aWxsIG5vcm1hbGx5IHBhc3MuIFNvIEkgZGVjaWRlZA0KPj4+Pj4gdG8ga2VlcCB0aGlzLg0K
Pj4+Pj4gDQo+Pj4+PiBNaW5kIHNoYXJpbmcgeW91ciB0aG91Z2h0cyBhYm91dCB0aGUgYmV0dGVy
IHZhbHVlIG9mIHRoZSB0aW1lb3V0PyBQcm9iYWJseSAyNW1pbj8NCj4+Pj4gRnJvbSB3aGF0IHlv
dSBzYWlkIHRoYXQgdGhlIGF2ZXJhZ2UgaXMgMTUtMjAsIEkgdGhpbmsgd2UgY2FuIGxlYXZlIGl0
IHNldCB0byAzMC4NCj4+Pj4gQnV0IEkgd29uZGVyIGlmIHdlIGNhbiBkbyBzb21ldGhpbmcgdG8g
ZGVjcmVhc2UgdGhlIGF2ZXJhZ2UgdGltZS4gfjIwIG1pbiBpcyBhIGxvdA0KPj4+PiBldmVuIGZv
ciBGVlAgOikgSGF2ZSB5b3UgdHJpZWQgc2V0dGluZyBzZW5kX3Nsb3cgdG8gc29tZXRoaW5nIGxv
d2VyIHRoYW4gMTAwbXM/DQo+Pj4+IFRoYXQgc2FpZCwgd2UgZG9uJ3Qgc2VuZCB0b28gbWFueSBj
aGFycyB0byBGVlAsIHNvIEkgZG91YnQgaXQgd291bGQgcGxheSBhIG1ham9yIHJvbGUNCj4+Pj4g
aW4gdGhlIG92ZXJhbGwgdGltZS4NCj4+PiANCj4+PiBJIGFncmVlIHdpdGggdGhlIHNlbmRfc2xv
dyBwYXJ0LiBBY3R1YWxseSBJIGRvIGhhdmUgdGhlIHNhbWUgY29uY2VybiwgaGVyZSBhcmUgbXkg
Y3VycmVudA0KPj4+IHVuZGVyc3RhbmRpbmcgYW5kIEkgdGhpbmsgeW91IHdpbGwgZGVmaW5pdGVs
eSBoZWxwIHdpdGggeW91ciBrbm93bGVkZ2U6DQo+Pj4gSWYgeW91IGNoZWNrIHRoZSBmdWxsIGxv
ZyBvZiBEb20wIGJvb3RpbmcsIGZvciBleGFtcGxlIFsxXSwgeW91IHdpbGwgZmluZCB0aGF0IHdl
IHdhc3RlZCBzbw0KPj4+IG11Y2ggdGltZSBpbiBzdGFydGluZyB0aGUgc2VydmljZXMgb2YgdGhl
IE9TIChtb2Rsb29wLCB1ZGV2LXNldHRsZSwgZXRjKS4gQWxsIG9mIHRoZXNlIHNlcnZpY2VzDQo+
Pj4gYXJlIHJldHJpZWQgbWFueSB0aW1lcyBidXQgaW4gdGhlIGVuZCB0aGV5IGFyZSBzdGlsbCBu
b3QgdXAsIGFuZCBmcm9tIG15IHVuZGVyc3RhbmRpbmcgdGhleQ0KPj4+IHdvbuKAmXQgYWZmZWN0
IHRoZSBhY3R1YWwgdGVzdCg/KSBJZiB3ZSBjYW4gc29tZWhvdyBnZXQgcmlkIG9mIHRoZXNlIHNl
cnZpY2VzIGZyb20gcm9vdGZzLCBJIHRoaW5rDQo+Pj4gd2UgY2FuIHNhdmUgYSBsb3Qgb2YgdGlt
ZS4NCj4+PiANCj4+PiBBbmQgaG9uZXN0bHksIEkgbm90aWNlZCB0aGF0IHFlbXUtYWxwaW5lLWFy
bTY0LWdjYyBzdWZmZXJzIGZyb20gdGhlIHNhbWUgcHJvYmxlbSBhbmQgaXQgYWxzbw0KPj4+IHRh
a2VzIGFyb3VuZCAxNW1pbiB0byBmaW5pc2guIFNvIGlmIHdlIG1hbmFnZWQgdG8gdGFpbG9yIHRo
ZSBzZXJ2aWNlcyBmcm9tIHRoZSBmaWxlc3lzdGVtLCB3ZQ0KPj4+IGNhbiBzYXZlIGEgbG90IG9m
IHRpbWUuDQo+PiBUaGF0IGlzIG5vdCB0cnVlLiBRZW11IHJ1bnMgdGhlIHRlc3RzIHJlbGF0aXZl
bHkgZmFzdCB3aXRoaW4gZmV3IG1pbnV0ZXMuIFRoZSByZWFzb24geW91IHNlZSBlLmcuIDEyIG1p
bnMNCj4+IGZvciBzb21lIFFlbXUgam9icyBjb21lcyBmcm9tIHRoZSB0aW1lb3V0IHdlIHNldCBp
biBRZW11IHNjcmlwdHMuIFdlIGRvbid0IGhhdmUgeWV0IHRoZSBzb2x1dGlvbiAod2UgY291bGQN
Cj4+IGRvIHRoZSBzYW1lIGFzIFF1YmVzIHNjcmlwdCkgdG8gZGV0ZWN0IHRoZSB0ZXN0IHN1Y2Nl
c3MgZWFybHkgYW5kIGV4aXQgYmVmb3JlIHRpbWVvdXQuIFRoYXQgaXMgd2h5IGN1cnJlbnRseQ0K
Pj4gdGhlIG9ubHkgd2F5IGZvciBRZW11IHRlc3RzIHRvIGZpbmlzaCBpcyBieSByZWFjaGluZyB0
aGUgdGltZW91dC4NCj4+IFNvIHRoZSBwcm9ibGVtIGlzIG5vdCB3aXRoIHRoZSByb290ZnMgYW5k
IHNlcnZpY2VzICh0aGUgaW1wcm92ZW1lbnQgd291bGQgbm90IGJlIHNpZ25pZmljYW50KSBidXQg
d2l0aA0KPj4gdGhlIHNpbXVsYXRpb24gYmVpbmcgc2xvdy4NCj4gDQo+IEZyb20gbXkgZXhwZXJp
ZW5jZSB3aXRoIHRoZSBGVlAgaW1wcm92ZW1lbnQgd291bGQgYmUgc2lnbmlmaWNhbnQuIEEgbm9y
bWFsIGJvb3QgZGlzdHJpYnV0aW9uIHdpbGwgc3RhcnQgYSBsb3Qgb2Ygc2VydmljZXMuIEkgZW5k
IHVwIHRvIHdyaXRlIG15IG93biBpbml0c2NyaXB0IGRvaW5nIHRoZSBiYXJlIG1pbmltdW0gZm9y
IGNyZWF0aW5nIGEgZ3Vlc3QuIFRoaXMgc2F2ZXMgbWUgYSBsb3Qgb2YgdGltZSBldmVyeXRpbWUg
SSBuZWVkZWQgdG8gdGVzdCBvbiBGVlAuDQoNCisxLCBJIGZlZWwgdGhlIHNhbWUsIGJ1dCBJJ3Zl
IG5ldmVyIGRvbmUgdGhlIHRpbWUgbWVhc3VyZW1lbnQgdGhvdWdoLg0KDQo+IEkgdGhpbmsgd2Ug
Y2FuIGRvIHRoZSBzYW1lIGZvciB0aGUgZ2l0bGFiLiBNYXliZSBub3QgdG8gdGhlIHBvaW50IG9m
IHdyaXRpbmcgeW91ciBpbml0c2NyaXB0IGJ1dCBjdXR0aW5nIGRvd24gYW55dGhpbmcgdW5uZWNl
c3NhcnkuDQoNClllYWggSSBjYW4gdHJ5IHRvIHBsYXkgd2l0aCByZW1vdmluZyBzb21lIG9mIHRo
ZSB1bm5lY2Vzc2FyeSBzZXJ2aWNlcyB3aGVuIHByZXBhcmluZyB0aGUgcm9vdGZzDQpmb3IgRG9t
MCAoc2VlIHBhdGNoIDQpLg0KDQpLaW5kIHJlZ2FyZHMsDQpIZW5yeQ0KDQo+IFRoaXMgd2lsbCBh
dm9pZCB0aGUgRlZQIHRlc3QgdG8gYmVjb21lIHRoZSBib3R0bG5lY2sgaW4gdGhlIGdpdGxhYiBD
SS4NCj4gDQo+IENoZXJzLA0KPiANCj4gLS0gDQo+IEp1bGllbiBHcmFsbA0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 12:27:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 12:27:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650615.1016311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBZxG-0004rw-Do; Fri, 08 Dec 2023 12:27:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650615.1016311; Fri, 08 Dec 2023 12:27: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 1rBZxG-0004rp-9w; Fri, 08 Dec 2023 12:27:42 +0000
Received: by outflank-mailman (input) for mailman id 650615;
 Fri, 08 Dec 2023 12:27: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=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBZxE-0004rj-Ht
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 12:27:40 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on20601.outbound.protection.outlook.com
 [2a01:111:f403:260e::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2c91b494-95c5-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 13:27:38 +0100 (CET)
Received: from AS9PR05CA0198.eurprd05.prod.outlook.com (2603:10a6:20b:495::27)
 by PR3PR08MB5802.eurprd08.prod.outlook.com (2603:10a6:102:8a::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 12:27:35 +0000
Received: from AMS0EPF00000192.eurprd05.prod.outlook.com
 (2603:10a6:20b:495:cafe::c7) by AS9PR05CA0198.outlook.office365.com
 (2603:10a6:20b:495::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34 via Frontend
 Transport; Fri, 8 Dec 2023 12:27:35 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF00000192.mail.protection.outlook.com (10.167.16.218) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 12:27:34 +0000
Received: ("Tessian outbound 5d213238733f:v228");
 Fri, 08 Dec 2023 12:27:34 +0000
Received: from 1205b954b2ce.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 8901A88E-174F-438E-99F0-028C6E70B8DC.1; 
 Fri, 08 Dec 2023 12:27:22 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 1205b954b2ce.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 12:27:22 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by AS4PR08MB8242.eurprd08.prod.outlook.com (2603:10a6:20b:51e::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 12:27:20 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 12:27: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: 2c91b494-95c5-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=dMaLZ8+fv7PrTCKmW7hPBqXtpbKaXlbAtta3bA3rOiLIHi0Sn7/wjDy07FThifKjVYgBcQ7P9AR0BC4PcK0lwsRo36ivY5OWwhEmGBl2Lxh4D6wGA+XFRq/1fm3S9AYgs+qcns2ZIkDwD7sj9wBkSDKctw29O2umQJI4uKOmyKbxjGMwgY2fpz0SBPTrBtjv2MGyGBuZX0QIoel5iE3EpCCkTZgqizpqTn8mxBErGZX0I/hP/jazHNmh1b/ar+mx9UvCvbVC82GOnEOvhyjnZfUukEH4edAyUl1LW0uORggoDpX5xhzpQ2aTwyXndGcB5HL/I/jIfj26HfCccYJVvw==
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=8RRSNwxFwIjpdjXh6Vx1T6HIBiH4SEPVJTSS7gCkaj0=;
 b=BL5IsrFO6Wg/9+X7n5gF6R190+SjCcHVrkIvxszGlExCGLctuJFhtwPnq5CdKm/U7xstyPbET2v1IaTDaCp6wsqfbtveq6FV0Ip9wWSWQ7nz/3cbKoB5yuLrBH3b9Rcd3qRIFbGC1rUQG3HFn+aqaOsCLEc/O2iOWfNimWaiURjO+1fxnInra8wDdma5+IDFSdoZxNKPhBvxTXjWBvmYrYEnqVnYtWmneNWgeDdgKI9g0n2g/5H+Suarx9yaEA9MU5d1mIP5nd8njK2Rn/vZHkRzBGluFa8HjVVsHLWdqGnBChVB8vv7GHuy0MogpgFg1zJWsKYhODsjk/E+5bRX/g==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8RRSNwxFwIjpdjXh6Vx1T6HIBiH4SEPVJTSS7gCkaj0=;
 b=i17/XVRydtYId9nHDhfxt5I1kqs/9TmG9WVC693AlE5BdFnY3/QzoWsOsUQAym9Ab875IZ2UZgng9oYU7g0QKuj9seHvgGxtRKKYgWEigPdyUT6tHD6JTO08XTE2YZulCYgpjUhe63yPrKa5jjXYodXEMfRjhKa1k0bnJ2Ipeig=
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=armh.onmicrosoft.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: d477937583d0c918
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Hax8M2ysZMcb2a/RcFStzHBrcZYmKEwvn5ivbdGbv6OETySo+BbrAr5SJ9nmZ2Ka4Tx1af7Z66hoRQ4C5UASJ+AH9iyFq1P9TP3vJQLszI9HO5XD+M0lMwPWAO4zq4943sOtgUdloWt0RvqevgQAlVoElal8aFve+4aSz6TL29w0C5tmJz9uPr4rBWiZM1ramdkawDXK7WE6xWcu2OO9LE2GWJ3wiFtNNCUgy/cKoR6VGE36wAiAAvuW5hSeGK5GrsRmAeUlg2Zvn5cXXomrtFTzhj3MicN4p9+Yp9xFi/UO5N0jf1bXdMv6glQrLwOTWuvWtAurZSgnUCPVTMKKVQ==
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=8RRSNwxFwIjpdjXh6Vx1T6HIBiH4SEPVJTSS7gCkaj0=;
 b=VeYBTwbdDIU1pVgWa9K4fBynjEh8Y5SGGsI1MKMELW4DhmYY/6TOIeX8TjKbxlrRceJCF/Esb17w+/T5Cn1wBOqUg76lQNl7kRz2TepjICbdwUraB6k1krWth7pIFEE4YMU4oCvGOQUldbxaJiWtsqDN3DigUXYnac8kf+QIY8E02CdA3CFJ1ZJtJh9+Cx5aMuOsWeicoXAShfhq1hx7kK/OGRNQm8UkJqVn6zRDsGb620omkCpHNay4iAUKufp5cBTYOQRqz33XDMMgoeZ5YDKgLOVxeoA/hzM7kC0Vx1YcABBw1o3r1ce+Ru/XYSBu5lSp8HqC74x7M9ueUsLvrQ==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8RRSNwxFwIjpdjXh6Vx1T6HIBiH4SEPVJTSS7gCkaj0=;
 b=i17/XVRydtYId9nHDhfxt5I1kqs/9TmG9WVC693AlE5BdFnY3/QzoWsOsUQAym9Ab875IZ2UZgng9oYU7g0QKuj9seHvgGxtRKKYgWEigPdyUT6tHD6JTO08XTE2YZulCYgpjUhe63yPrKa5jjXYodXEMfRjhKa1k0bnJ2Ipeig=
From: Henry Wang <Henry.Wang@arm.com>
To: Wei Chen <Wei.Chen@arm.com>, Michal Orzel <michal.orzel@amd.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Topic: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
Thread-Index:
 AQHaKZoAVIHO2rCYDECWUL8sUR2sfLCfFe6AgAACFwCAAAHkAIAAAsIAgAAIGgCAAAGZgIAAFYMAgAAUooA=
Date: Fri, 8 Dec 2023 12:27:20 +0000
Message-ID: <53A13832-54C2-43C4-B744-3E2D5F8D773D@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-4-Henry.Wang@arm.com>
 <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com>
 <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com>
 <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
 <B9AFD918-42F6-4190-963B-E5A639D9F60E@arm.com>
 <2f34c0ec-0d94-48e2-bec0-faa96e1702f1@amd.com>
 <9F69A6E2-2D83-46AF-8AB6-C1B409F4ADE0@arm.com>
 <6795d175-6486-44bd-b878-96535730a9bb@arm.com>
In-Reply-To: <6795d175-6486-44bd-b878-96535730a9bb@arm.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|AS4PR08MB8242:EE_|AMS0EPF00000192:EE_|PR3PR08MB5802:EE_
X-MS-Office365-Filtering-Correlation-Id: 60054ddc-ab83-4cce-11e5-08dbf7e90ec2
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 F+U7y/vROjA7g+PyF6PiyS+CTeGPaj9ruUYnJSx6iKcgeFoUDgBhPzSNXXVl6DXp8igrjWR1fq70/GmDHbiEOifHCl2edBa9+tUbY4ylluTzw741IProrKn6sCKzQuPEaOrUrHrm4XnzebMQuyRCmn0+5EMkrvVQwbNrYPpFW5luvb50R/UpiNZL65VJ+oZBtfAncX89pbx9p2qOjwOuBcGpmH15+f5ysVjhamJFEetIDPklCmGVVO8JwAUb9a3vs4IIXdlXb3Z80YiZ9RHBCCht+e9hO1rY3aHSdqTGnMzkTBVzjhhjTlWDdastGQTvn+WpjbuoPiRy4ZshcnJR9TqpA2FbW0+fc6jaEgIz4lmoW584D+PP097zoImRUZLQxl3RWj7tqb83KGzBvgvUzV5QcjZFxcBHQiRGHs2YtB77ctZ8ga9NpN2XEBKjcIDxL8RSIV0tb9QQpd2U4z5NpQlP2U8RtHfL2zZ0oEMhzlU09Ai3+wKgHfBJzi6Kj1+nNrni8Z1q8RNT3VK947rnDkL6eTAYTm03OjIwOPNf5sIhI8RHtFYw5x4TmjRP6QrT02ekGeMeFb28iV/8ntPd3kuzg0JWTU2AJ/V79ZsE5VIG7LpjnECw2rslkC86LvCXaMxvu1rcZ5dq5pNTDY8sZQ==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(39860400002)(346002)(396003)(136003)(376002)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(5660300002)(2906002)(4326008)(8936002)(8676002)(36756003)(86362001)(38070700009)(41300700001)(83380400001)(2616005)(6512007)(26005)(91956017)(66446008)(64756008)(66946007)(76116006)(66476007)(54906003)(66556008)(110136005)(316002)(38100700002)(71200400001)(53546011)(6506007)(33656002)(122000001)(6486002)(478600001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <71D44A3BDBB42A489785074E224D3C90@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB8242
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:
 AMS0EPF00000192.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6e17a13d-9248-4d70-455e-08dbf7e9060b
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	mFvNSaswZS0KL0QlqCi1aolLutzoRRlEkVozEtjAHRNPIAo9AWoGK4dfw9sfnoBLKJsKkfIHjjJy6YNj1eJj+VQ0/uUoMK9wkA/zKp6N81ZqqWLBA+Q+5tzPYTGlW5DdslWlmI1sW6sGroRsMhgmJPdgHnUjTWjRjY3svU8VYbzKe/qL4orP4VZUV1wWPgg6askjcNxiVUueOOQSuQtY9qrvGRaKNNITYZhMXSq7Fq0SEbyyfERD/8dK66xjxmuFY9H+g3LQwz30yw5m78QdtFenA+mTi0ScWCgwoUHEu+groQsg33faWri8sVpwdiSieGAfK4PVG9IB2QFEvXyY6I1DNgqXTa7xlRgNYjGq+Ig/ZrDqV6BUQlE2Y1qPxDajc8194rnNYfK1bDUw+fKq1EacNFZi33P8neWH/8HSqPYlqrNwLzDDspB5Nm4kiv7jpDKmwp/iE9Ju0gQn6vwc9efwju5e0GmxH0KSOnMgul9YnQB2v/rhTOG0cxxs9GLbcQEhhYUdXj2zf/M+JjCI8tVxsp9gajpE57X1lENEig6NIw81Chfh/B42mqruGZb6KJ08nLmtt38LVWKsfES1+I1SEB21uc1hp5VmcEgz8kDbYCgaSHSbshYMkABb/9SbKKN6bLFmZ3H86lz/F8Jhlbagcl5XM15eU1DT3yzQZB+QQt7fgOl+RiJ98LM0Q3JvWMss8bWtH+5/4w7uTw7uRAACEA2kS1AYbyJg5tgry9XDAE5xaNm6UcMNrXsxcDuq
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:(13230031)(4636009)(346002)(39860400002)(136003)(376002)(396003)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(82310400011)(46966006)(36840700001)(40470700004)(2906002)(36756003)(4326008)(8936002)(8676002)(5660300002)(41300700001)(82740400003)(40480700001)(36860700001)(47076005)(26005)(336012)(2616005)(83380400001)(33656002)(356005)(81166007)(86362001)(478600001)(110136005)(40460700003)(316002)(6506007)(70206006)(70586007)(6486002)(54906003)(6512007)(53546011);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 12:27:34.9472
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 60054ddc-ab83-4cce-11e5-08dbf7e90ec2
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF00000192.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5802

SGkgV2VpLCBNaWNoYWwsDQoNCj4gT24gRGVjIDgsIDIwMjMsIGF0IDE5OjEzLCBXZWkgQ2hlbiA8
V2VpLkNoZW5AYXJtLmNvbT4gd3JvdGU6DQo+IA0KPiBIaSBIZW5yeSBhbmQgTWljaGFsLA0KPiAN
Cj4+Pj4+Pj4gT24gMDgvMTIvMjAyMyAwNjo0NiwgSGVucnkgV2FuZyB3cm90ZToNCj4+Pj4+Pj4+
IGRpZmYgLS1naXQgYS9hdXRvbWF0aW9uL3NjcmlwdHMvZXhwZWN0L2Z2cC1iYXNlLXNtb2tlLWRv
bTAtYXJtNjQuZXhwIGIvYXV0b21hdGlvbi9zY3JpcHRzL2V4cGVjdC9mdnAtYmFzZS1zbW9rZS1k
b20wLWFybTY0LmV4cA0KPj4+Pj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA3NTUNCj4+Pj4+Pj4+IGlu
ZGV4IDAwMDAwMDAwMDAuLjI1ZDlhNWY4MWMNCj4+Pj4+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4+
Pj4+ICsrKyBiL2F1dG9tYXRpb24vc2NyaXB0cy9leHBlY3QvZnZwLWJhc2Utc21va2UtZG9tMC1h
cm02NC5leHANCj4+Pj4+Pj4+IEBAIC0wLDAgKzEsNzMgQEANCj4+Pj4+Pj4+ICsjIS91c3IvYmlu
L2V4cGVjdA0KPj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4gK3NldCB0aW1lb3V0IDIwMDANCj4+Pj4+Pj4g
RG8gd2UgcmVhbGx5IG5lZWQgc3VjaCBhIGJpZyB0aW1lb3V0ICh+MzAgbWluKT8NCj4+Pj4+Pj4g
TG9va2luZyBhdCB5b3VyIHRlc3Qgam9iLCBpdCB0b29rIDE2IG1pbnMgKHF1aXRlIGEgbG90IGJ1
dCBJIGtub3cgRlZQIGlzIHNsb3cNCj4+Pj4+Pj4gKyBzZW5kX3Nsb3cgc2xvd3MgdGhpbmdzIGRv
d24pDQo+Pj4+Pj4gDQo+Pj4+Pj4gVGhpcyBpcyBhIHJlYWxseSBnb29kIHF1ZXN0aW9uLiBJIGRp
ZCBoYXZlIHRoZSBzYW1lIHF1ZXN0aW9uIHdoaWxlIHdvcmtpbmcgb24NCj4+Pj4+PiB0aGUgbmVn
YXRpdmUgdGVzdCB0b2RheS4gVGhlIHRpbWVvdXQgMjAwMCBpbmRlZWQgd2lsbCBmYWlsIHRoZSBq
b2IgYXQgYWJvdXQgMzBtaW4sDQo+Pj4+Pj4gYW5kIHdhaXRpbmcgZm9yIGl0IGlzIGluZGVlZCBu
b3QgcmVhbGx5IHBsZWFzYW50Lg0KPj4+Pj4+IA0KPj4+Pj4+IEJ1dCBteSBzZWNvbmQgdGhvdWdo
dCB3b3VsZCBiZSAtIGZyb20gbXkgb2JzZXJ2YXRpb24sIHRoZSBvdmVyYWxsIHRpbWUgbm93DQo+
Pj4+Pj4gd291bGQgdmFyeSBiZXR3ZWVuIDE1bWluIH4gMjBtaW4sIGFuZCBoYXZpbmcgYSAxMG1p
biBtYXJnaW4gaXMgbm90IHRoYXQgY3JhenkNCj4+Pj4+PiBnaXZlbiB0aGF0IHdlIHByb2JhYmx5
IHdpbGwgZG8gbW9yZSB0ZXN0aW5nIGZyb20gdGhlIGpvYiBpbiB0aGUgZnV0dXJlLCBhbmQgaWYg
dGhlDQo+Pj4+Pj4gR2l0TGFiIEFybSB3b3JrZXIgaXMgaGlnaCBsb2FkZWQsIEZWUCB3aWxsIHBy
b2JhYmx5IGJlY29tZSBzbG93ZXIuIEFuZCBub3JtYWxseQ0KPj4+Pj4+IHdlIGRvbuKAmXQgZXZl
biB0cmlnZ2VyIHRoZSB0aW1lb3V0IGFzIHRoZSBqb2Igd2lsbCBub3JtYWxseSBwYXNzLiBTbyBJ
IGRlY2lkZWQNCj4+Pj4+PiB0byBrZWVwIHRoaXMuDQo+Pj4+Pj4gDQo+Pj4+Pj4gTWluZCBzaGFy
aW5nIHlvdXIgdGhvdWdodHMgYWJvdXQgdGhlIGJldHRlciB2YWx1ZSBvZiB0aGUgdGltZW91dD8g
UHJvYmFibHkgMjVtaW4/DQo+Pj4+PiBGcm9tIHdoYXQgeW91IHNhaWQgdGhhdCB0aGUgYXZlcmFn
ZSBpcyAxNS0yMCwgSSB0aGluayB3ZSBjYW4gbGVhdmUgaXQgc2V0IHRvIDMwLg0KPj4+Pj4gQnV0
IEkgd29uZGVyIGlmIHdlIGNhbiBkbyBzb21ldGhpbmcgdG8gZGVjcmVhc2UgdGhlIGF2ZXJhZ2Ug
dGltZS4gfjIwIG1pbiBpcyBhIGxvdA0KPj4+Pj4gZXZlbiBmb3IgRlZQIDopIEhhdmUgeW91IHRy
aWVkIHNldHRpbmcgc2VuZF9zbG93IHRvIHNvbWV0aGluZyBsb3dlciB0aGFuIDEwMG1zPw0KPj4+
Pj4gVGhhdCBzYWlkLCB3ZSBkb24ndCBzZW5kIHRvbyBtYW55IGNoYXJzIHRvIEZWUCwgc28gSSBk
b3VidCBpdCB3b3VsZCBwbGF5IGEgbWFqb3Igcm9sZQ0KPj4+Pj4gaW4gdGhlIG92ZXJhbGwgdGlt
ZS4NCj4+Pj4gDQo+Pj4+IEkgYWdyZWUgd2l0aCB0aGUgc2VuZF9zbG93IHBhcnQuIEFjdHVhbGx5
IEkgZG8gaGF2ZSB0aGUgc2FtZSBjb25jZXJuLCBoZXJlIGFyZSBteSBjdXJyZW50DQo+Pj4+IHVu
ZGVyc3RhbmRpbmcgYW5kIEkgdGhpbmsgeW91IHdpbGwgZGVmaW5pdGVseSBoZWxwIHdpdGggeW91
ciBrbm93bGVkZ2U6DQo+Pj4+IElmIHlvdSBjaGVjayB0aGUgZnVsbCBsb2cgb2YgRG9tMCBib290
aW5nLCBmb3IgZXhhbXBsZSBbMV0sIHlvdSB3aWxsIGZpbmQgdGhhdCB3ZSB3YXN0ZWQgc28NCj4+
Pj4gbXVjaCB0aW1lIGluIHN0YXJ0aW5nIHRoZSBzZXJ2aWNlcyBvZiB0aGUgT1MgKG1vZGxvb3As
IHVkZXYtc2V0dGxlLCBldGMpLiBBbGwgb2YgdGhlc2Ugc2VydmljZXMNCj4+Pj4gYXJlIHJldHJp
ZWQgbWFueSB0aW1lcyBidXQgaW4gdGhlIGVuZCB0aGV5IGFyZSBzdGlsbCBub3QgdXAsIGFuZCBm
cm9tIG15IHVuZGVyc3RhbmRpbmcgdGhleQ0KPj4+PiB3b27igJl0IGFmZmVjdCB0aGUgYWN0dWFs
IHRlc3QoPykgSWYgd2UgY2FuIHNvbWVob3cgZ2V0IHJpZCBvZiB0aGVzZSBzZXJ2aWNlcyBmcm9t
IHJvb3RmcywgSSB0aGluaw0KPj4+PiB3ZSBjYW4gc2F2ZSBhIGxvdCBvZiB0aW1lLg0KPj4+PiAN
Cj4+Pj4gQW5kIGhvbmVzdGx5LCBJIG5vdGljZWQgdGhhdCBxZW11LWFscGluZS1hcm02NC1nY2Mg
c3VmZmVycyBmcm9tIHRoZSBzYW1lIHByb2JsZW0gYW5kIGl0IGFsc28NCj4+Pj4gdGFrZXMgYXJv
dW5kIDE1bWluIHRvIGZpbmlzaC4gU28gaWYgd2UgbWFuYWdlZCB0byB0YWlsb3IgdGhlIHNlcnZp
Y2VzIGZyb20gdGhlIGZpbGVzeXN0ZW0sIHdlDQo+Pj4+IGNhbiBzYXZlIGEgbG90IG9mIHRpbWUu
DQo+Pj4gVGhhdCBpcyBub3QgdHJ1ZS4gUWVtdSBydW5zIHRoZSB0ZXN0cyByZWxhdGl2ZWx5IGZh
c3Qgd2l0aGluIGZldyBtaW51dGVzLiBUaGUgcmVhc29uIHlvdSBzZWUgZS5nLiAxMiBtaW5zDQo+
Pj4gZm9yIHNvbWUgUWVtdSBqb2JzIGNvbWVzIGZyb20gdGhlIHRpbWVvdXQgd2Ugc2V0IGluIFFl
bXUgc2NyaXB0cy4gV2UgZG9uJ3QgaGF2ZSB5ZXQgdGhlIHNvbHV0aW9uICh3ZSBjb3VsZA0KPj4+
IGRvIHRoZSBzYW1lIGFzIFF1YmVzIHNjcmlwdCkgdG8gZGV0ZWN0IHRoZSB0ZXN0IHN1Y2Nlc3Mg
ZWFybHkgYW5kIGV4aXQgYmVmb3JlIHRpbWVvdXQuIFRoYXQgaXMgd2h5IGN1cnJlbnRseQ0KPj4+
IHRoZSBvbmx5IHdheSBmb3IgUWVtdSB0ZXN0cyB0byBmaW5pc2ggaXMgYnkgcmVhY2hpbmcgdGhl
IHRpbWVvdXQuDQo+Pj4gDQo+Pj4gU28gdGhlIHByb2JsZW0gaXMgbm90IHdpdGggdGhlIHJvb3Rm
cyBhbmQgc2VydmljZXMgKHRoZSBpbXByb3ZlbWVudCB3b3VsZCBub3QgYmUgc2lnbmlmaWNhbnQp
IGJ1dCB3aXRoDQo+Pj4gdGhlIHNpbXVsYXRpb24gYmVpbmcgc2xvdy4gVGhhdCBzYWlkLCB0aGlz
IGlzIHNvbWV0aGluZyB3ZSBhbGwga25vdyBhbmQgSSBleHBlY3QgRlZQIHRvIG9ubHkgYmUgdXNl
ZCBpbiBzY2VuYXJpb3MNCj4+PiB3aGljaCBjYW5ub3QgYmUgdGVzdGVkIHVzaW5nIFFlbXUgb3Ig
cmVhbCBIVy4NCj4+IE9rLCB5b3UgbWFkZSBhIHBvaW50LiBMZXQgbWUgZG8gc29tZSBleHBlcmlt
ZW50cyB0byBzZWUgaWYgSSBjYW4gaW1wcm92ZS4gT3RoZXJ3aXNlIG1heWJlDQo+PiB3ZSBjYW4g
bGl2ZSB3aXRoIHRoaXMgdW50aWwgYSBiZXR0ZXIgc29sdXRpb24uDQo+PiBLaW5kIHJlZ2FyZHMs
DQo+PiBIZW5yeQ0KPiANCj4gUUVNVSB3b3JrcyBsaWtlIEZWUCBlbmFibGVkIHVzZV9yZWFsX3Rp
bWUgZmxhZy4gSG93IGFib3V0IGVuYWJsZSB1c2VfcmVhbF90aW1lIGZsYWcgaW4gQ0kgZm9yIG1v
c3QgdGVzdCBjYXNlcywgYnV0IGRpc2FibGUgaXQgZm9yDQo+IHNvbWUgdGltZSBzZW5zaXRpdmUg
dGVzdCBjYXNlcz8gTm9ybWFsbHksIGVuYWJsZSB1c2VfcmVhbF90aW1lDQo+IHdpbGwgZ2l2ZSBz
ZXZlcmFsIHRpbWVzIGltcHJvdmVtZW50IG9mIEZWUCBwZXJmb3JtYW5jZS4NCg0KSSBhbSBzZWVp
bmcgYmVsb3cgZnJvbSB0aGUgRlZQIHBhcmFtZXRlciBsaXN0cyBvZiB0aGUgb25lIHdlIGFyZSBj
dXJyZW50bHkgdXNpbmcuIFRoZSAiRGVwcmVjYXRlZCIgd29yZCB3b3JyaWVzDQptZSBhIGJpdCAo
dGhlIG9sZCB2ZXJzaW9uIEZWUCBkb2VzIG5vdCBoYXZlIHRoZSDigJxEZXByZWNhdGVkIiB0aG91
Z2gpLg0KYGBgDQpicC5yZWZjb3VudGVyLnVzZV9yZWFsX3RpbWU9MCAgICAgICAgICAgICAgICAg
ICAgICAgICAjIChib29sICAsIGluaXQtdGltZSkgZGVmYXVsdCA9ICcwJyAgICAgIDogKipEZXBy
ZWNhdGVkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25z
KiogVXBkYXRlIHRoZSBHZW5lcmljIFRpbWVyIGNvdW50ZXIgYXQgYSByZWFsLXRpbWUgYmFzZSBm
cmVxdWVuY3kgaW5zdGVhZCBvZiBzaW11bGF0b3IgdGltZQ0KYGBgDQoNCkFsc28sIGZyb20gbXkg
dGVzdGluZyBpbiB0aGUgR2l0TGFiIHBpcGVsaW5lLCBJIHdhcyBub3QgYWJsZSB0byBzZWUgc2ln
bmlmaWNhbnQgdGltZSBpbXByb3ZlbWVudC4gU28gSSBndWVzcw0KaW5zdGVhZCBJIHdpbGwgdHJ5
IHdoYXQgSnVsaWVuIHN1Z2dlc3RzIHRvIHNlZSBpZiB0aGluZ3MgY2FuIGJlIGJldHRlci4NCg0K
S2luZCByZWdhcmRzLA0KSGVucnkgDQoNCj4gDQo+IENoZWVycywNCj4gV2VpIENoZW4NCj4gDQo+
Pj4gDQo+Pj4gfk1pY2hhbA0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 12:30:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 12:30:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650618.1016321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBa0P-0006dr-Sx; Fri, 08 Dec 2023 12:30:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650618.1016321; Fri, 08 Dec 2023 12:30:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBa0P-0006dk-P8; Fri, 08 Dec 2023 12:30:57 +0000
Received: by outflank-mailman (input) for mailman id 650618;
 Fri, 08 Dec 2023 12:30: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 1rBa0O-0006de-D6
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 12:30: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 1rBa0O-0006Jb-1a; Fri, 08 Dec 2023 12:30:56 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.23.116]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBa0N-0001OW-P3; Fri, 08 Dec 2023 12:30: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=jmFwlcRPJUFGG7s2JVaM8TZLaEvqNv+svByGXiHsEag=; b=vbN58JkhhstM3pcyfm9ifih1p1
	HuJmDXQd4y4ZdbikDw1+IOX/GilKLi00Mw3SyAs7oxpJp9kd6Bu2Vciz5BP2K1RSnuQLFpLpIeZie
	B6zPrnfl+uyheIjQxzcQTIr/vLLt8FA0vyZJjI73TlO9cmQ7UfRLLSM7z7Txajn7XmXs=;
Message-ID: <9978c881-9d1a-4554-b0f8-577a1cf6fc35@xen.org>
Date: Fri, 8 Dec 2023 12:30:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] automation: Add a Dockerfile for running FVP_Base
 jobs
Content-Language: en-GB
To: Henry Wang <Henry.Wang@arm.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-2-Henry.Wang@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231208054637.1973424-2-Henry.Wang@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 08/12/2023 05:46, Henry Wang wrote:
> Fixed Virtual Platforms (FVPs) are complete simulations of an Arm
> system, including processor, memory and peripherals. These are set
> out in a "programmer's view", which gives programmers a comprehensive
> model on which to build and test software. FVP can be configured to
> different setups by its cmdline parameters, and hence having the FVP
> in CI will provide us with the flexibility to test Arm features and
> setups that we find difficult to use real hardware or emulators.
> 
> This commit adds a Dockerfile for the new arm64v8 container with
> FVP installed, based on the debian bookworm-arm64v8 image. This
> container will be used to run the FVP test jobs. Compared to the
> debian bookworm-arm64v8 image, the packages in the newly added FVP
> container does not contain the `u-boot-qemu`, and adds the `expect`
> to run expect scripts introduced by following commits, `telnet` to
> connect to FVP, and `tftpd-hpa` to provide the TFTP service for
> the FVP.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> v2:
> - Add Stefano's Reviewed-by tag.
> ---
>   .../debian/bookworm-arm64v8-fvp.dockerfile    | 64 +++++++++++++++++++
>   1 file changed, 64 insertions(+)
>   create mode 100644 automation/build/debian/bookworm-arm64v8-fvp.dockerfile
> 
> diff --git a/automation/build/debian/bookworm-arm64v8-fvp.dockerfile b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile
> new file mode 100644
> index 0000000000..3b87dc5a5b
> --- /dev/null
> +++ b/automation/build/debian/bookworm-arm64v8-fvp.dockerfile
> @@ -0,0 +1,64 @@
> +FROM --platform=linux/arm64/v8 debian:bookworm
> +LABEL maintainer.name="The Xen Project" \
> +      maintainer.email="xen-devel@lists.xenproject.org"
> +
> +ARG FVP_BASE_VERSION="11.23_9_Linux64_armv8l"
> +
> +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 \
> +        libssl-dev \
> +        python3-dev \
> +        python3-setuptools \
> +        xorg-dev \
> +        uuid-dev \
> +        libyajl-dev \
> +        libaio-dev \
> +        libglib2.0-dev \
> +        clang \
> +        libpixman-1-dev \
> +        pkg-config \
> +        flex \
> +        bison \
> +        acpica-tools \
> +        libfdt-dev \
> +        bin86 \
> +        bcc \
> +        liblzma-dev \
> +        libnl-3-dev \
> +        ocaml-nox \
> +        libfindlib-ocaml-dev \
> +        markdown \
> +        transfig \
> +        pandoc \
> +        checkpolicy \
> +        wget \
> +        git \
> +        nasm \
> +        # for test phase, fvp-smoke-* jobs
> +        u-boot-tools \
> +        expect \
> +        device-tree-compiler \
> +        curl \
> +        cpio \
> +        busybox-static \
> +        telnet \
> +        tftpd-hpa \
> +        && \
> +        apt-get autoremove -y && \
> +        apt-get clean && \
> +        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
> +
> +RUN wget https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz && \

I vaguely recall some discussions on whether it was ok for us to publish 
a container with the FVP model due to the license agreement.

I guess this has now been resolved because the download can be done 
without sign-in to the account. Can you confirm?

It would also be good that the commit message indicates whether there is 
any implicit license agreement from Xen Project (or any user that decide 
to use our scripts).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 12:59:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 12:59:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650624.1016331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBaS1-000546-2a; Fri, 08 Dec 2023 12:59:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650624.1016331; Fri, 08 Dec 2023 12:59:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBaS0-00053z-VF; Fri, 08 Dec 2023 12:59:28 +0000
Received: by outflank-mailman (input) for mailman id 650624;
 Fri, 08 Dec 2023 12:59: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=1wyI=HT=arm.com=Henry.Wang@srs-se1.protection.inumbo.net>)
 id 1rBaRz-00053t-Kp
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 12:59:27 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20600.outbound.protection.outlook.com
 [2a01:111:f403:2612::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d1d6c58-95c9-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 13:59:25 +0100 (CET)
Received: from AS9P250CA0010.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:532::13)
 by DB9PR08MB6380.eurprd08.prod.outlook.com (2603:10a6:10:256::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 12:59:22 +0000
Received: from AMS0EPF0000019F.eurprd05.prod.outlook.com
 (2603:10a6:20b:532:cafe::31) by AS9P250CA0010.outlook.office365.com
 (2603:10a6:20b:532::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.27 via Frontend
 Transport; Fri, 8 Dec 2023 12:59:22 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF0000019F.mail.protection.outlook.com (10.167.16.251) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 12:59:21 +0000
Received: ("Tessian outbound e243565b0037:v228");
 Fri, 08 Dec 2023 12:59:21 +0000
Received: from c65ecc65a0fe.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 8BD784C2-76ED-480D-8097-5D3DFB7E24F9.1; 
 Fri, 08 Dec 2023 12:59:09 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c65ecc65a0fe.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 08 Dec 2023 12:59:09 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com (2603:10a6:20b:570::15)
 by AM9PR08MB5908.eurprd08.prod.outlook.com (2603:10a6:20b:283::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 12:59:08 +0000
Received: from AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db]) by AS8PR08MB7991.eurprd08.prod.outlook.com
 ([fe80::c64b:7a3:ac99:25db%2]) with mapi id 15.20.7068.027; Fri, 8 Dec 2023
 12:59: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: 9d1d6c58-95c9-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=PQJP/+sPQl+KAQzFEYbjTPBZ7GdD0n30QuBjRKp9tjdlhyuXe57OwnKzvzOIgjUCkg/dLNLINzns7o+1pa7JICIEhbtYoE8fHyfvdHlQ62Y23PgglDTsS6+/aolMSZCn4iL6ZpnYFQ/lhq0VpM/AIhF2wUZkHyTnH58vu68BLMlEptjsdpMMa7LQY5Gq0OT8VbI2I3K6WhDzCQi8bB1ja28WXUMiJ7Pbi+y7XgYahLKRwaOri3GnkGG4ZSkiZT+Cvla1CQuVhvc06KZ0PFlVoJgiT3ZmjzrSMv+A1EeZNaeZXRx1Zqel5ILB/6Xf9MLTa9BW123FSoY7JhsrIFx7tA==
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=Ghaz2hCu0+d+DNZFyq5RO+pXkikfYO5bwzkD+cUIKSs=;
 b=XhNeQ1mKMOXvsXO90A1hfwqQ0FSBChs1N3DYkv0XLxNylEoi5wT1TK1HxRhwkbgyENaJxoOPkjOwiRktLbM0ArOHA3y70JRdySD1/BKCfi8+zEOiPD2DoQizcesPL/RZ8xkc09llAprHqHdwt4+DPtajpelZSS2nE8gh3L6qJmSBk9iZLI2EEm+fXbBz194CxIrteEY4seK8Ok19px0fGgSUl9dZifAOvYtqjSf4rEuZ2RyM6o8XPcRqvrpQXwWiFUaNKzGylS61Np/M3Gu4PRR5QtJTi8XB/HGQLxIyiot77Vcp01e9qpx4vs6nTmPJUG4Wsvc3OZYdgXF7C/NFLw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ghaz2hCu0+d+DNZFyq5RO+pXkikfYO5bwzkD+cUIKSs=;
 b=Imq3YI/gGSvxl3/dx+kq4CASYwV8Cwk2rNDlP3b3rfjg5hIvHsoMTvYdkpWkQsuyL4qVy+GQB+Dh2l6Zh0mI01UdpwBshBC4BRUywzj44TwSNIFm3wPVMiJxQm4Nh1husKfxZqgridv09IBV9S5z0vNfl/LDEr5LsUuoz0Bb1Hs=
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=armh.onmicrosoft.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: a0973385fabec46f
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Jm0hiDAOj70ObA7q2zSOME+JgssfNbFFEffKgWdoG9iDL6L69c6r511RYcGu7fHerxXK/ZoToJrX+qhTwSmRc7kP8IEvojMVvqj0cbdrWGrIgnPUkNeUovnkVXkw7Na7gQmk4jO4zTL81232XE3wnMTU9Q8rbc/hLcCCLrJ6QzVYUJG+/T+nGR8pTdVrbllwsjwmKbInYZVQfITvdVcWSD25q0aGBbqi2tsllfeJh6lwAT61fJXGJl1DlKfviEo1AxA2FEUKI2CzJSCRan63O5hQcAhxOfRbhO9Z29B9uuwyKuQlxmIlYjcjkabPYzGAW1Fzixvly5eyO+8NnhbFvg==
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=Ghaz2hCu0+d+DNZFyq5RO+pXkikfYO5bwzkD+cUIKSs=;
 b=dfMwDEVjx6Vk3GZaGUc2rKEG0j29KAiCiys1yMYdsHD1yMDaEu86Tr1VrKPz+DpSD6eGTHi9eq2jn/l9XxoayDFkba+nayFq7Fxz6758s1hC3ZOy+vqeKxdhzWYcZqMSHCsYXtVkyQDpdOFKe+jzvi5Q8peua3cFRKayoi+pO2/5zxRc7ozpYdGakul+BkdGQOKzybOqmtDGN4Uy7FghqKsZjbxvni5JKYxxMqddbGnnmoKGQkd9tuGYaCb1RXnN03HARK9joDtIQ+y4+RzfBKVEIjGBX4GDmGpahN9LkYEa1pBKPhzmoZiI6pbST/KTcNtVXHCpncTpXJYWWAyEKA==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ghaz2hCu0+d+DNZFyq5RO+pXkikfYO5bwzkD+cUIKSs=;
 b=Imq3YI/gGSvxl3/dx+kq4CASYwV8Cwk2rNDlP3b3rfjg5hIvHsoMTvYdkpWkQsuyL4qVy+GQB+Dh2l6Zh0mI01UdpwBshBC4BRUywzj44TwSNIFm3wPVMiJxQm4Nh1husKfxZqgridv09IBV9S5z0vNfl/LDEr5LsUuoz0Bb1Hs=
From: Henry Wang <Henry.Wang@arm.com>
To: Julien Grall <julien@xen.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal
 Orzel <michal.orzel@amd.com>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH v2 1/5] automation: Add a Dockerfile for running FVP_Base
 jobs
Thread-Topic: [PATCH v2 1/5] automation: Add a Dockerfile for running FVP_Base
 jobs
Thread-Index: AQHaKZn45o1GTQZ/qUu1MgNMYGRTZLCfUZCAgAAH1gA=
Date: Fri, 8 Dec 2023 12:59:07 +0000
Message-ID: <239318A5-BBE7-495A-8BA6-1DBA75FDBE46@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-2-Henry.Wang@arm.com>
 <9978c881-9d1a-4554-b0f8-577a1cf6fc35@xen.org>
In-Reply-To: <9978c881-9d1a-4554-b0f8-577a1cf6fc35@xen.org>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7991:EE_|AM9PR08MB5908:EE_|AMS0EPF0000019F:EE_|DB9PR08MB6380:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d7b45e8-8a78-4397-d945-08dbf7ed7f67
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 0zA5JbD8XsslzJFbQPE/skqMkN0Xp8wMXHUryfiynng+SVwwOIXoHy3g3uzcAQ3++Ix2PVFGg9S8jxntwz50TOmtoJ/MVmK4qzy6csSiFV3ROEH4QbEIASq8j/QLenTaDTc4/zjg48Uc3WjBxixBN/Y8PHvO5CNwcE/Ievud5diq0yBRKz+p7JK3rUW/BIuno4+ncAcvIk9Uerm9zNNZsY85hWdlxXRtWKxtgm03Fz23lH/5OSGcpzGi+L1C88I/cy5sG1VYpuVAAMlYBMFSb6KaRqp/L7y18QUS+TX8bj/co8JLvsx9SzEYUKrEM6y9FIOGgj3DcKBvXHHXLxwS6lIchW4sczeSXUAxtHvYDBSwJOJ2yfF47krDCSLP6Tnwy/1KY+OrwNu6SBeCAQWk+Oxo6KZuVW9ZXaDf6Ge5m9WZHAwZb33wC++t2KF64ZCILF2tXSzd59EItnMibry3ewaeA3wgktPYi3lwhUA4yDdgyF3pJCymnaSH0RhUWf/a9sLBw+q5+k9hBuiiWtTirJmLmM1bvmXYDWhuLp2o+jNSGjcm/wb57uTF9ayLOkxxr+cTjgXBKrzRfW1F3bgS+dmdHrl4H1XEiKeROKXsgrBEvz03XxReFOPhDK0zZ+RZ1Z3ky/vnClpd8nfD4dBaiYxxPnhS0nvryK1TXFd1gRESq9KfJjUfkEL6z/f8t7nh
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7991.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(39860400002)(346002)(376002)(366004)(396003)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(478600001)(2906002)(5660300002)(41300700001)(86362001)(33656002)(36756003)(122000001)(38100700002)(2616005)(26005)(6506007)(6512007)(6486002)(4326008)(71200400001)(966005)(8936002)(8676002)(83380400001)(54906003)(76116006)(316002)(64756008)(66556008)(91956017)(66946007)(6916009)(66476007)(66446008)(53546011)(38070700009)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <72B1523CC4C03147B5295074C0099D8E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB5908
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:
 AMS0EPF0000019F.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3e08e23a-46f7-4521-90f2-08dbf7ed7714
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	9Y2HeETT0TH/IBQ6vcFUdhwFw1TEf4w0RYNeSz1D+UzMedA1rDWtPFK20QiZ3+f7itG85u8SiGkC372ZLIVyL2j6/DiS+N5eWs2xBPCkD2sN7xRIa85EzxoNeq6wDCaj63GSyAVK3hlaFUIB1FfNIQoYOb68NJYq6YxLM/MVbNVb5JRzbvdLRV4CV5foKtKoeAvloTJ7xLPx4JW0j5rCYlKpMIdcfYzswOV/H089K+60wbsxjamAnij8LDa8lZCvxWRAeWjSce9WDHyC0tnwx1xP0isuJf17Fr5RXggdMy/X3Y25TqG28gY88wL6D8QKRySNj0qkTEkCj+zjxu1RUAW7tm17+32cWbKlvXgfBPGy3d08FKbV1olFRJYyp3sK3KKzwm/yVKhaaRHWjzeE3b2GeUrrZf8xse/DljGZP0JDgDaIG5UvQMDquJv7IgbmiP3z503VU6QnS/t1bZoL+oB5w+Xr4CTlzzQXeKeIrjZV0HrP1tULCqRXU1AgdnlnOxpiiA8o8NNqNE3keBS5gB5X+3ledDHJXHjzL4dxD6oecOsz1HXC2Bh0dXAzIAyacliexZ5006UWaXcPwh1pj51/rDCzQXnmuyeLvzaf+3K2I41Ocb2tnLo3CBLJXOCCemtqltCc60emAHrulUiSdiUaucJrl5wDLDiGyRwIEK+VeVHAxBa6ltmAF7b0revxqZCceAPMXjdXiaLCBRv5ipwhdDU0Tyq2rKpqwvYMJ2O5rsmXCQqtApCXJRtuznvntq5XgqZ4ZmuTQ+NuuvahQw==
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:(13230031)(4636009)(39860400002)(346002)(396003)(136003)(376002)(230922051799003)(1800799012)(451199024)(186009)(82310400011)(64100799003)(46966006)(36840700001)(40470700004)(5660300002)(2906002)(6862004)(4326008)(8936002)(8676002)(36756003)(86362001)(41300700001)(82740400003)(356005)(40460700003)(81166007)(83380400001)(40480700001)(336012)(2616005)(47076005)(6512007)(26005)(36860700001)(70206006)(70586007)(54906003)(316002)(53546011)(6506007)(33656002)(966005)(6486002)(478600001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 12:59:21.9254
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d7b45e8-8a78-4397-d945-08dbf7ed7f67
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:
	AMS0EPF0000019F.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6380

SGkgSnVsaWVuLA0KDQo+IE9uIERlYyA4LCAyMDIzLCBhdCAyMDozMCwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSwNCj4gDQo+IE9uIDA4LzEyLzIwMjMgMDU6
NDYsIEhlbnJ5IFdhbmcgd3JvdGU6DQo+PiBGaXhlZCBWaXJ0dWFsIFBsYXRmb3JtcyAoRlZQcykg
YXJlIGNvbXBsZXRlIHNpbXVsYXRpb25zIG9mIGFuIEFybQ0KPj4gc3lzdGVtLCBpbmNsdWRpbmcg
cHJvY2Vzc29yLCBtZW1vcnkgYW5kIHBlcmlwaGVyYWxzLiBUaGVzZSBhcmUgc2V0DQo+PiBvdXQg
aW4gYSAicHJvZ3JhbW1lcidzIHZpZXciLCB3aGljaCBnaXZlcyBwcm9ncmFtbWVycyBhIGNvbXBy
ZWhlbnNpdmUNCj4+IG1vZGVsIG9uIHdoaWNoIHRvIGJ1aWxkIGFuZCB0ZXN0IHNvZnR3YXJlLiBG
VlAgY2FuIGJlIGNvbmZpZ3VyZWQgdG8NCj4+IGRpZmZlcmVudCBzZXR1cHMgYnkgaXRzIGNtZGxp
bmUgcGFyYW1ldGVycywgYW5kIGhlbmNlIGhhdmluZyB0aGUgRlZQDQo+PiBpbiBDSSB3aWxsIHBy
b3ZpZGUgdXMgd2l0aCB0aGUgZmxleGliaWxpdHkgdG8gdGVzdCBBcm0gZmVhdHVyZXMgYW5kDQo+
PiBzZXR1cHMgdGhhdCB3ZSBmaW5kIGRpZmZpY3VsdCB0byB1c2UgcmVhbCBoYXJkd2FyZSBvciBl
bXVsYXRvcnMuDQo+PiBUaGlzIGNvbW1pdCBhZGRzIGEgRG9ja2VyZmlsZSBmb3IgdGhlIG5ldyBh
cm02NHY4IGNvbnRhaW5lciB3aXRoDQo+PiBGVlAgaW5zdGFsbGVkLCBiYXNlZCBvbiB0aGUgZGVi
aWFuIGJvb2t3b3JtLWFybTY0djggaW1hZ2UuIFRoaXMNCj4+IGNvbnRhaW5lciB3aWxsIGJlIHVz
ZWQgdG8gcnVuIHRoZSBGVlAgdGVzdCBqb2JzLiBDb21wYXJlZCB0byB0aGUNCj4+IGRlYmlhbiBi
b29rd29ybS1hcm02NHY4IGltYWdlLCB0aGUgcGFja2FnZXMgaW4gdGhlIG5ld2x5IGFkZGVkIEZW
UA0KPj4gY29udGFpbmVyIGRvZXMgbm90IGNvbnRhaW4gdGhlIGB1LWJvb3QtcWVtdWAsIGFuZCBh
ZGRzIHRoZSBgZXhwZWN0YA0KPj4gdG8gcnVuIGV4cGVjdCBzY3JpcHRzIGludHJvZHVjZWQgYnkg
Zm9sbG93aW5nIGNvbW1pdHMsIGB0ZWxuZXRgIHRvDQo+PiBjb25uZWN0IHRvIEZWUCwgYW5kIGB0
ZnRwZC1ocGFgIHRvIHByb3ZpZGUgdGhlIFRGVFAgc2VydmljZSBmb3INCj4+IHRoZSBGVlAuDQo+
PiBTaWduZWQtb2ZmLWJ5OiBIZW5yeSBXYW5nIDxIZW5yeS5XYW5nQGFybS5jb20+DQo+PiBSZXZp
ZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPg0KPj4g
LS0tDQo+PiB2MjoNCj4+IC0gQWRkIFN0ZWZhbm8ncyBSZXZpZXdlZC1ieSB0YWcuDQo+PiAtLS0N
Cj4+ICsNCj4+ICtSVU4gd2dldCBodHRwczovL2RldmVsb3Blci5hcm0uY29tLy0vbWVkaWEvRmls
ZXMvZG93bmxvYWRzL2Vjb3N5c3RlbS1tb2RlbHMvRlZQX0Jhc2VfUmV2Qy0yeEFFTXZBXyR7RlZQ
X0JBU0VfVkVSU0lPTn0udGd6ICYmIFwNCj4gDQo+IEkgdmFndWVseSByZWNhbGwgc29tZSBkaXNj
dXNzaW9ucyBvbiB3aGV0aGVyIGl0IHdhcyBvayBmb3IgdXMgdG8gcHVibGlzaCBhIGNvbnRhaW5l
ciB3aXRoIHRoZSBGVlAgbW9kZWwgZHVlIHRvIHRoZSBsaWNlbnNlIGFncmVlbWVudC4NCj4gDQo+
IEkgZ3Vlc3MgdGhpcyBoYXMgbm93IGJlZW4gcmVzb2x2ZWQgYmVjYXVzZSB0aGUgZG93bmxvYWQg
Y2FuIGJlIGRvbmUgd2l0aG91dCBzaWduLWluIHRvIHRoZSBhY2NvdW50LiBDYW4geW91IGNvbmZp
cm0/DQoNClllcywgcXVvdGluZyBzb21lIHdvcmRzIGZyb20gdGhlIHBlb3BsZSB3ZSBhc2tlZCBp
bnRlcm5hbGx5Og0KKHRoZSBwYWdlIHJlZmVycmVkIHRvIGlzIGh0dHBzOi8vZGV2ZWxvcGVyLmFy
bS5jb20vVG9vbHMlMjBhbmQlMjBTb2Z0d2FyZS9GaXhlZCUyMFZpcnR1YWwlMjBQbGF0Zm9ybXMp
Og0KDQoiQWxsIHRoZSBGVlBzIHJlZmVyZW5jZWQgb24gdGhpcyBwYWdlIHRoYXQgeW91IGFyZSBp
bnRlcmVzdGVkIGluIGFyZSBsaWNlbnNlZCB1bmRlcg0KbGlnaHR3ZWlnaHQgRWNvIFN5c3RlbSBF
VUxBIHRoYXQgaGFzIG5vIHJlc3RyaWN0aW9ucyBvbiB0aGUgcmVkaXN0cmlidXRpb24u4oCdDQoN
CiJTbywgeWVzLCB3ZSBjYW4gc2hpcCBjb250YWluZXIgaW1hZ2VzIGNvbnRhaW5pbmcgdGhlIEZW
UCBhbmQgdGhlIGxpY2Vuc2Ugb24gdGhlIEZWUCB3aWxsIHJlbWFpbiBhcyBpcy7igJ0NCg0KIk5v
IGlzc3VlcyB3aXRoIHJlZGlzdHJpYnV0aW5nIHRoZSBtb2RlbCBwYWNrYWdlIGluIGEgRG9ja2Vy
IGNvbnRhaW5lciwgYXMgbG9uZyBhcyB0aGUgRVVMQSBpbiBpbmNsdWRlZC4iDQoNCj4gSXQgd291
bGQgYWxzbyBiZSBnb29kIHRoYXQgdGhlIGNvbW1pdCBtZXNzYWdlIGluZGljYXRlcyB3aGV0aGVy
IHRoZXJlIGlzIGFueSBpbXBsaWNpdCBsaWNlbnNlIGFncmVlbWVudCBmcm9tIFhlbiBQcm9qZWN0
IChvciBhbnkgdXNlciB0aGF0IGRlY2lkZSB0byB1c2Ugb3VyIHNjcmlwdHMpLg0KDQpJIHRoaW5r
IGl0IGlzIHRoZSDigJxFTkQgVVNFUiBMSUNFTlNFIEFHUkVFTUVOVCBGT1IgQVJNIEVDT1NZU1RF
TSBNT0RFTFPigJ0/DQoNCktpbmQgcmVnYXJkcywNCkhlbnJ5DQoNCj4gDQo+IENoZWVycywNCj4g
DQo+IC0tIA0KPiBKdWxpZW4gR3JhbGwNCg0K


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 13:30:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 13:30:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650635.1016340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBavP-0004Gu-GN; Fri, 08 Dec 2023 13:29:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650635.1016340; Fri, 08 Dec 2023 13: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 1rBavP-0004Gn-Dg; Fri, 08 Dec 2023 13:29:51 +0000
Received: by outflank-mailman (input) for mailman id 650635;
 Fri, 08 Dec 2023 13:29: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=F8K7=HT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rBavO-0004Gh-7u
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 13:29:50 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20604.outbound.protection.outlook.com
 [2a01:111:f400:fe59::604])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d94fbc61-95cd-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 14:29:45 +0100 (CET)
Received: from MN2PR05CA0026.namprd05.prod.outlook.com (2603:10b6:208:c0::39)
 by DM6PR12MB4402.namprd12.prod.outlook.com (2603:10b6:5:2a5::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec
 2023 13:29:39 +0000
Received: from BL6PEPF0001AB4C.namprd04.prod.outlook.com
 (2603:10b6:208:c0:cafe::8d) by MN2PR05CA0026.outlook.office365.com
 (2603:10b6:208:c0::39) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.17 via Frontend
 Transport; Fri, 8 Dec 2023 13:29:39 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB4C.mail.protection.outlook.com (10.167.242.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7068.20 via Frontend Transport; Fri, 8 Dec 2023 13:29:39 +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.34; Fri, 8 Dec
 2023 07:29:38 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 8 Dec
 2023 07:29:38 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Fri, 8 Dec 2023 07:29:37 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d94fbc61-95cd-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TKY83LLXdnYMxXLMy1M7kwUEC8f3BZQPAzBxr8PMcgYhloFc/yl6QkRVeSGfK3m8Rtf5fYlP2LmlwDpJseyJMk4b8VIyFD9E88ehUMrVaQDR2Uc3GxKbN57UKw+b9gmNc9QHqSur9evuu5ZCOu/VEfA9s07TmLUqIqfuXAcsm8ibAj8/jHIHAX0Kjr3OMClDwLXehTwudFAnrvb1Lhqjuo35eHxUyrfRXKGLLZkw6/EARTmfstAAAA/6EhfmQSa1VQJKUGyLcEv2pN1wXOLe2CbLliRMIQ82FkuJFBp5iTy/n4DAwn/QMueHdESjlCxQDB0HjULLXZbT+IpYRBelwg==
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=F9LnnVpSdd+kkHGAnPC1r6sBcRoIaHAHqT1YgUVl46s=;
 b=hJwXvXp9QLZsv1CHBAQGONQWW3Zjtm+VrvMnedeZ2bnVuZPRj0V1DUIVQE99ZfzWLtUybXSmEgK+g9ipI8VRwJ9o6Xkp7MboltzVH8QEk2eGRca5QhUjqNH3GbjZV+S1q5Y4rKIUSTCkfFkyEMUrB4VTRap6jauyz/taIc11el3xL7lKL90p4eIRyTFk7aRoZg2OgyOSy0fwjSJJpPzqT2lVkyozvu1GLmUKfXhBwfiPGsRiLbM2oMUKaoXap5RNn/CRt6HKLPng0Qez/T0x6XBnRm3tKWunOhNLTKpUMOsl33ROQiE9hCXKqQomHDuJQxV6/YF0sbAUvO54gEhh2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=F9LnnVpSdd+kkHGAnPC1r6sBcRoIaHAHqT1YgUVl46s=;
 b=3DQrSPKbBMwfLveV9Lm5A6iDDq0v78Ge+lWCO7yua2onDlxTrpNjXe6iIBqjLDoepkVfPNxdmgu+i0El/N7meTnISAjmNbjMSGUhPD9QExApKiqzBBac6WIGdjJrqL3svlL3Xqd10aIdQODr+jSQZ7jesBEAIUo8Dhp81b5FM/g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
Message-ID: <98e3f9ac-b176-46ba-b6d5-f0f2c74116b3@amd.com>
Date: Fri, 8 Dec 2023 14:29:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 05/11] xen/arm: use paddr_assigned to indicate whether
 host address is provided
Content-Language: en-US
To: Penny Zheng <Penny.Zheng@arm.com>, <xen-devel@lists.xenproject.org>
CC: <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-6-Penny.Zheng@arm.com>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231206090623.1932275-6-Penny.Zheng@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB4C:EE_|DM6PR12MB4402:EE_
X-MS-Office365-Filtering-Correlation-Id: 8b3003dd-482d-42d0-558c-08dbf7f1ba88
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	PncatVHDomgznRVTOzGgH6h+CgDi3Lgv6x/VG1Wwyg+MsUjmqqK7xYhrd6K6T4F0nw7K/OqOox/tey/dxAhP1Fw56iYM6Vgibbf/JIyVCQQylXFtbLfKRYTiAPcGhycpDTcOaU6HLKzm5SR+g34pHGlAVt9uhJKmfUyFqUU0otV8UlLsmzUshex03qDvR8WyRaQpBVbYJYvhUYFcFfU3gLEJPE4ntAO1xMrkNdKw3sXBaL9/iwymrDgBzITwrDl4XWSGjJvNzmxxc824OruVvJbz2awW3Bc1XsTAOu5JzkuKCm4JfKLcQocKOZNGa9IHPcWDAUSnZJLOi2V/quuW9aeuM9dRQFqi1DeQ1hp0rA+M4MvvEqLbEjyyLmpZi/ngCJyd0FdQipdbCinHs/XuA2ZIRcwJ422eR1P8XXEcYNeWxHPUZb6IMlkLCyAXxbw2hlE36e1IIeVocY7ImGLsIUwvBDlZPZgPQjEsSMpyQOcLYK3vgj8LQLXi7tqiTYkxkfy6pGxVR9PQX1ZrNjG8j3nG0LrMwQj7yTbymZGOTc17zWn/EzQyFNerOFdyDney+faneMTfBfkAGESaPKk9QcGM4JjtkGNDNhyFxrX5CHI0TZ3DymWyUDlVRDAOWwmn6dw/BLeCaR87wkhoxZkrQsyf6FHkdZEn1AVUEUMGBC2SYkVLw5kKZ2d30AxpiZmctV3ZzHWbJklPM3Gik1PsknmKNeO2WF+BzhOWE675ktUcqRVRNbjZrcJ0XwBsVQv8iFeiK/4RqdDHWWb+AXIeaWj0PuEtyQ/+o6ryXA2iWX7sOHUlrcH5b3DQnZOIsZW9d6+jeYINVbHJcc15Bht7WHHCz3dtFFaDuA3DvBElIVU=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(396003)(39860400002)(136003)(376002)(230173577357003)(230922051799003)(230273577357003)(451199024)(82310400011)(186009)(64100799003)(1800799012)(40470700004)(36840700001)(46966006)(2906002)(47076005)(40460700003)(30864003)(36860700001)(86362001)(31696002)(36756003)(82740400003)(81166007)(356005)(41300700001)(316002)(40480700001)(16576012)(54906003)(110136005)(70206006)(70586007)(53546011)(26005)(4326008)(2616005)(8676002)(8936002)(478600001)(31686004)(5660300002)(83380400001)(426003)(44832011)(336012)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2023 13:29:39.1264
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8b3003dd-482d-42d0-558c-08dbf7f1ba88
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB4C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4402

Hi Penny,

On 06/12/2023 10:06, Penny Zheng wrote:
> 
> 
> We use paddr_assigned to indicate whether host address is provided, by
> checking the length of "xen,shared-mem" property.
> 
> The shm matching criteria shall also be adapt to cover the new scenario, by
> adding when host address is not provided, if SHMID matches, the region size
> must exactly match too.
> 
> During domain creation, right now, a static shared memory node could be
> banked with a statically configured host memory bank, or arbitrary
> host memory of dedicated size, which will later be allocated from heap by Xen.
> To cover both scenarios, we create a new structure shm_meminfo. It is very
> alike meminfo, but with the maximum array size being a smaller number
> NR_SHM_BANKS(16).
> As "shm_meminfo" is also a new member of "enum meminfo_type", we shall implement
> its own callback "retrieve_shm_meminfo" to have access to all MACRO
> helpers, e.g. GET_MEMBANK(...).
Previous comments apply here as well and this patch depends on the decision of others
\wrt previous patch. I'll just add generic remarks.

> 
> Also, to make codes tidy and clear, we extract codes about parsing
> "xen,shared-mem" property from function "process_shm" and move them into
> a new helper "parse_shm_property".
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> ---
> v1 -> v2
> - In order to get allocated banked host memory info during domain creat    ion,
> we create a new structure shm_meminfo. It is very alike meminfo, with
> the maximum array size being NR_SHM_BANKS. As shm_meminfo is a new
> member of type meminfo_type, we shall implement its own callback
> retrieve_shm_meminfo to have access to all MACRO helpers, e.g.
> GET_MEMBANK(...)
> - rename "acquire_shm_memnode" to "find_shm_memnode"
> ---
> v2 -> v3
> - rebase and no changes
> ---
> v3 -> v4:
> - rebase and no change
> ---
> v4 -> v5:
> - fix bugs of that tot_size and membank shall not be member of union,
> but struct, to differentiate two types of static shared memory node.
> ---
>  xen/arch/arm/domain_build.c             |   3 +
>  xen/arch/arm/include/asm/setup.h        |  14 +-
>  xen/arch/arm/include/asm/static-shmem.h |   3 +
>  xen/arch/arm/static-shmem.c             | 360 ++++++++++++++++++------
>  4 files changed, 293 insertions(+), 87 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index a8bc78baa5..c69d481d34 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -70,6 +70,9 @@ static void __init retrieve_meminfo(void *mem, unsigned int *max_mem_banks,
> 
>  retrieve_fn __initdata retrievers[MAX_MEMINFO_TYPE] = {
>      [NORMAL_MEMINFO] = retrieve_meminfo,
> +#ifdef CONFIG_STATIC_SHM
> +    [SHM_MEMINFO] = retrieve_shm_meminfo,
> +#endif
>  };
>  #endif
> 
> diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
> index bc5f08be97..043588cd2d 100644
> --- a/xen/arch/arm/include/asm/setup.h
> +++ b/xen/arch/arm/include/asm/setup.h
> @@ -59,6 +59,9 @@ struct meminfo {
> 
>  enum meminfo_type {
>      NORMAL_MEMINFO,
> +#ifdef CONFIG_STATIC_SHM
> +    SHM_MEMINFO,
> +#endif
>      MAX_MEMINFO_TYPE,
>  };
> 
> @@ -150,7 +153,16 @@ struct bootinfo {
>          unsigned int nr_nodes;
>          struct {
>              struct shm_node node;
> -            const struct membank *membank;
> +            /*
> +             * For a static shared memory node, it is either banked with
> +             * a statically configured host memory bank, or arbitrary host
> +             * memory which will be allocated by Xen with a specified total
> +             * size(tot_size).
> +             */
> +            struct {
> +                const struct membank *membank;
> +                paddr_t tot_size;
> +            };
>          } shm_nodes[NR_MEM_BANKS];
>      } shminfo;
>  #endif
> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
> index 66a3f4c146..a67445cec8 100644
> --- a/xen/arch/arm/include/asm/static-shmem.h
> +++ b/xen/arch/arm/include/asm/static-shmem.h
> @@ -24,6 +24,9 @@ static inline int process_shm_chosen(struct domain *d,
>  int process_shm_node(const void *fdt, int node, uint32_t address_cells,
>                       uint32_t size_cells);
> 
> +void retrieve_shm_meminfo(void *mem, unsigned int *max_mem_banks,
> +                          struct membank **bank,
> +                          unsigned int **nr_banks);
>  #else /* !CONFIG_STATIC_SHM */
> 
>  static inline int make_resv_memory_node(const struct domain *d, void *fdt,
> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
> index 6a3d8a54bd..a9eb26d543 100644
> --- a/xen/arch/arm/static-shmem.c
> +++ b/xen/arch/arm/static-shmem.c
> @@ -6,6 +6,50 @@
>  #include <asm/domain_build.h>
>  #include <asm/static-shmem.h>
> 
> +#define NR_SHM_BANKS 16
> +
> +/*
> + * There are two types of static shared memory node:
> + * A static shared memory node could be banked with a statically
> + * configured host memory bank, or a set of arbitrary host memory
> + * banks allocated from heap by Xen on runtime.
> + */
> +struct shm_meminfo {
> +    unsigned int nr_banks;
> +    struct membank bank[NR_SHM_BANKS];
> +    paddr_t tot_size;
> +};
> +
> +/*
> + * struct shm_memnode holds banked host memory info for a static
> + * shared memory node
> + */
> +struct shm_memnode {
With the number of structures introduced in this series, the chosen naming does not help

> +    char shm_id[MAX_SHM_ID_LENGTH];
> +    struct shm_meminfo meminfo;
> +};
> +
> +static __initdata struct {
> +    unsigned int nr_nodes;
> +    struct shm_memnode node[NR_MEM_BANKS];
> +} shm_memdata;
> +
> +void __init retrieve_shm_meminfo(void *mem, unsigned int *max_mem_banks,
> +                                 struct membank **bank,
> +                                 unsigned int **nr_banks)
> +{
> +    struct shm_meminfo *meminfo = (struct shm_meminfo *)mem;
> +
> +    if ( max_mem_banks )
> +        *max_mem_banks = NR_SHM_BANKS;
> +
> +    if ( nr_banks )
> +        *nr_banks = &(meminfo->nr_banks);
> +
> +    if ( bank )
> +        *bank = meminfo->bank;
> +}
> +
>  static int __init acquire_nr_borrower_domain(const char *shm_id,
>                                               unsigned long *nr_borrowers)
>  {
> @@ -172,6 +216,129 @@ static int __init append_shm_bank_to_domain(struct kernel_info *kinfo,
>      return 0;
>  }
> 
> +static struct shm_memnode * __init find_shm_memnode(const char *shm_id)
> +{
> +    unsigned int i;
> +    struct shm_memnode *shm_memnode;
> +
> +    for ( i = 0 ; i < shm_memdata.nr_nodes; i++ )
> +    {
> +        shm_memnode = &shm_memdata.node[i];
> +
> +        if ( strcmp(shm_id, shm_memnode->shm_id) == 0 )
> +            return shm_memnode;
> +    }
> +
> +    if ( i == NR_MEM_BANKS )
> +        return NULL;
> +
We can only be here if i == 0 i.e. no shm nodes?

> +    shm_memnode = &shm_memdata.node[i];
> +    safe_strcpy(shm_memnode->shm_id, shm_id);
> +    shm_memdata.nr_nodes++;
leave one empty line here, please

> +    return shm_memnode;
> +}
> +
> +/* Parse "xen,shared-mem" property in static shared memory node */
> +static struct shm_memnode * __init parse_shm_property(struct domain *d,
> +                                    const struct dt_device_node *dt_node,
> +                                    bool *paddr_assigned, paddr_t *gbase,
> +                                    const char *shm_id)
> +{
> +    uint32_t addr_cells, size_cells;
> +    const struct dt_property *prop;
> +    const __be32 *cells;
> +    uint32_t len;
> +    unsigned int i;
> +    paddr_t pbase, psize;
> +    struct shm_memnode *shm_memnode;
> +
> +    /* xen,shared-mem = <pbase, gbase, size>; And pbase could be optional. */
> +    prop = dt_find_property(dt_node, "xen,shared-mem", &len);
> +    BUG_ON(!prop);
> +    cells = (const __be32 *)prop->value;
> +
> +    addr_cells = dt_n_addr_cells(dt_node);
> +    size_cells = dt_n_size_cells(dt_node);
> +    if ( len != dt_cells_to_size(addr_cells + size_cells + addr_cells) )
> +    {
> +        /* pbase is not provided in "xen,shared-mem" */
> +        if ( len == dt_cells_to_size(size_cells + addr_cells) )
> +            *paddr_assigned = false;
what if paddr_assigned is NULL? Also, wouldn't pbase_provided be a better name?

> +        else
> +        {
> +            printk("fdt: invalid `xen,shared-mem` property.\n");
If you are modifying the code anyway, please drop '.' at the end of line. No need for that

> +            return NULL;
> +        }
> +    }
> +
> +    /*
> +     * If we firstly process the shared memory node with unique "xen,shm-id",
> +     * we allocate a new member "shm_memnode" for it in shm_memdata.
> +     */
> +    shm_memnode = find_shm_memnode(shm_id);
> +    BUG_ON(!shm_memnode);
> +    if ( !(*paddr_assigned) )
> +    {
> +        device_tree_get_reg(&cells, addr_cells, size_cells, gbase, &psize);
> +        /* Whether it is a new shm node? */
> +        if ( shm_memnode->meminfo.tot_size == 0 )
> +            goto out_early1;
> +        else
no need for this else

> +            goto out_early2;
> +    }
> +    else
no need for this else. You can be here only if pbase was specified

> +    {
> +        device_tree_get_reg(&cells, addr_cells, addr_cells, &pbase, gbase);
> +        psize = dt_read_number(cells, size_cells);
> +
> +        /* Whether it is a new shm node? */
> +        if ( shm_memnode->meminfo.nr_banks != 0 )
In previous check with the same comment, you use tot_size to determine if it is a new shm mode

> +            goto out_early2;
> +    }
> +
> +    /*
> +     * The static shared memory node #dt_node is banked with a
> +     * statically configured host memory bank.
> +     */
> +    shm_memnode->meminfo.bank[0].start = pbase;
> +    shm_memnode->meminfo.bank[0].size = psize;
> +    shm_memnode->meminfo.nr_banks = 1;
You should be first checking for below error conditions before doing assignment?

> +
> +    if ( !IS_ALIGNED(pbase, PAGE_SIZE) )
> +    {
> +        printk("%pd: physical address 0x%"PRIpaddr" is not suitably aligned.\n",
> +               d, pbase);
> +        return NULL;
> +    }
> +
> +    for ( i = 0; i < PFN_DOWN(psize); i++ )
> +        if ( !mfn_valid(mfn_add(maddr_to_mfn(pbase), i)) )
> +        {
> +            printk("%pd: invalid physical MFN 0x%"PRI_mfn"\n for static shared memory node\n",
> +                   d, mfn_x(mfn_add(maddr_to_mfn(pbase), i)));
> +            return NULL;
> +        }
> +
> + out_early1:
not really informative. How about new_shm_node:?

> +    if ( !IS_ALIGNED(psize, PAGE_SIZE) )
> +    {
> +        printk("%pd: size 0x%"PRIpaddr" is not suitably aligned\n",
> +               d, psize);
> +        return NULL;
> +    }
> +    shm_memnode->meminfo.tot_size = psize;
> +
> + out_early2:
> +    if ( !IS_ALIGNED(*gbase, PAGE_SIZE) )
> +    {
> +        printk("%pd: guest address 0x%"PRIpaddr" is not suitably aligned.\n",
> +               d, *gbase);
> +        return NULL;
> +    }
> +
> +    return shm_memnode;
> +}
> +
>  int __init process_shm(struct domain *d, struct kernel_info *kinfo,
>                         const struct dt_device_node *node)
>  {
> @@ -179,51 +346,17 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
> 
>      dt_for_each_child_node(node, shm_node)
>      {
> -        const struct dt_property *prop;
> -        const __be32 *cells;
> -        uint32_t addr_cells, size_cells;
>          paddr_t gbase, pbase, psize;
>          int ret = 0;
> -        unsigned int i;
>          const char *role_str;
>          const char *shm_id;
>          bool owner_dom_io = true;
> +        bool paddr_assigned = true;
wouldn't it be better if parse_shm_property was responsible for setting this to either false or true.
At the moment it only sets it to false.

> +        struct shm_memnode *shm_memnode;
> 
>          if ( !dt_device_is_compatible(shm_node, "xen,domain-shared-memory-v1") )
>              continue;
> 
> -        /*
> -         * xen,shared-mem = <pbase, gbase, size>;
> -         * TODO: pbase is optional.
> -         */
> -        addr_cells = dt_n_addr_cells(shm_node);
> -        size_cells = dt_n_size_cells(shm_node);
> -        prop = dt_find_property(shm_node, "xen,shared-mem", NULL);
> -        BUG_ON(!prop);
> -        cells = (const __be32 *)prop->value;
> -        device_tree_get_reg(&cells, addr_cells, addr_cells, &pbase, &gbase);
> -        psize = dt_read_paddr(cells, size_cells);
> -        if ( !IS_ALIGNED(pbase, PAGE_SIZE) || !IS_ALIGNED(gbase, PAGE_SIZE) )
> -        {
> -            printk("%pd: physical address 0x%"PRIpaddr", or guest address 0x%"PRIpaddr" is not suitably aligned.\n",
> -                   d, pbase, gbase);
> -            return -EINVAL;
> -        }
> -        if ( !IS_ALIGNED(psize, PAGE_SIZE) )
> -        {
> -            printk("%pd: size 0x%"PRIpaddr" is not suitably aligned\n",
> -                   d, psize);
> -            return -EINVAL;
> -        }
> -
> -        for ( i = 0; i < PFN_DOWN(psize); i++ )
> -            if ( !mfn_valid(mfn_add(maddr_to_mfn(pbase), i)) )
> -            {
> -                printk("%pd: invalid physical address 0x%"PRI_mfn"\n",
> -                       d, mfn_x(mfn_add(maddr_to_mfn(pbase), i)));
> -                return -EINVAL;
> -            }
> -
>          /*
>           * "role" property is optional and if it is defined explicitly,
>           * then the owner domain is not the default "dom_io" domain.
> @@ -238,6 +371,13 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
>          }
>          BUG_ON((strlen(shm_id) <= 0) || (strlen(shm_id) >= MAX_SHM_ID_LENGTH));
> 
> +        shm_memnode = parse_shm_property(d, shm_node, &paddr_assigned, &gbase,
> +                                         shm_id);
> +        if ( !shm_memnode )
> +            return -EINVAL;
empty line here please

> +        pbase = shm_memnode->meminfo.bank[0].start;
> +        psize = shm_memnode->meminfo.bank[0].size;
> +
>          /*
>           * DOMID_IO is a fake domain and is not described in the Device-Tree.
>           * Therefore when the owner of the shared region is DOMID_IO, we will
> @@ -349,10 +489,10 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>  {
>      const struct fdt_property *prop, *prop_id, *prop_role;
>      const __be32 *cell;
> -    paddr_t paddr, gaddr, size, end;
> +    paddr_t paddr, gaddr, size;
>      unsigned int i;
>      int len;
> -    bool owner = false;
> +    bool owner = false, paddr_assigned = true;
>      const char *shm_id;
> 
>      if ( address_cells < 1 || size_cells < 1 )
> @@ -404,96 +544,140 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
> 
>      if ( len != dt_cells_to_size(address_cells + size_cells + address_cells) )
>      {
> +        /* paddr is not provided in "xen,shared-mem" */
>          if ( len == dt_cells_to_size(size_cells + address_cells) )
> -            printk("fdt: host physical address must be chosen by users at the moment.\n");
> -
> -        printk("fdt: invalid `xen,shared-mem` property.\n");
> -        return -EINVAL;
> +            paddr_assigned = false;
> +        else
> +        {
> +            printk("fdt: invalid `xen,shared-mem` property.\n");
> +            return -EINVAL;
> +        }
>      }
> 
>      cell = (const __be32 *)prop->data;
> -    device_tree_get_reg(&cell, address_cells, address_cells, &paddr, &gaddr);
> -    size = dt_next_cell(size_cells, &cell);
> -
> -    if ( !size )
> +    if ( !paddr_assigned )
> +        device_tree_get_reg(&cell, address_cells, size_cells, &gaddr, &size);
> +    else
>      {
> -        printk("fdt: the size for static shared memory region can not be zero\n");
> -        return -EINVAL;
> -    }
> +        paddr_t end;
> +
> +        device_tree_get_reg(&cell, address_cells, address_cells, &paddr, &gaddr);
> +        size = dt_next_cell(size_cells, &cell);
> +
> +        if ( !size )
> +        {
> +            printk("fdt: the size for static shared memory region can not be zero\n");
> +            return -EINVAL;
> +        }
> +
> +        end = paddr + size;
> +        if ( end <= paddr )
> +        {
> +            printk("fdt: static shared memory region %s overflow\n", shm_id);
> +            return -EINVAL;
> +        }
> 
> -    end = paddr + size;
> -    if ( end <= paddr )
> -    {
> -        printk("fdt: static shared memory region %s overflow\n", shm_id);
> -        return -EINVAL;
>      }
> 
>      for ( i = 0; i < bootinfo.shminfo.nr_nodes; i++ )
>      {
> -        paddr_t bank_start = bootinfo.shminfo.shm_nodes[i].membank->start;
> -        paddr_t bank_size = bootinfo.shminfo.shm_nodes[i].membank->size;
>          const char *bank_id = bootinfo.shminfo.shm_nodes[i].node.shm_id;
> +        bool is_shmid_equal = strncmp(shm_id, bank_id, MAX_SHM_ID_LENGTH) == 0 ?
> +                              true : false;
> 
>          /*
>           * Meet the following check:
> +         * when host address is provided:
>           * 1) The shm ID matches and the region exactly match
>           * 2) The shm ID doesn't match and the region doesn't overlap
>           * with an existing one
> +         * when host address is not provided:
> +         * 1) The shm ID matches and the region size exactly match
> +         */
> +        /*
> +         * For a static shared memory node, it is either banked with
> +         * a statically configured host memory bank(membank != NULL), or
> +         * arbitrary host memory which will later be allocated by Xen(
> +         * tot_size != 0).
>           */
> -        if ( paddr == bank_start && size == bank_size )
> +        if ( bootinfo.shminfo.shm_nodes[i].membank != NULL )
>          {
> -            if ( strncmp(shm_id, bank_id, MAX_SHM_ID_LENGTH) == 0 )
> +            paddr_t bank_start = bootinfo.shminfo.shm_nodes[i].membank->start;
> +            paddr_t bank_size = bootinfo.shminfo.shm_nodes[i].membank->size;
both lines > 80 chars

> +            bool is_same_region = (paddr == bank_start) && (size == bank_size) ?
> +                                  true : false;
> +
> +            if ( is_same_region && is_shmid_equal )
>                  break;
> -            else
> +            else if ( is_same_region || is_shmid_equal )
>              {
>                  printk("fdt: xen,shm-id %s does not match for all the nodes using the same region.\n",
>                         shm_id);
>                  return -EINVAL;
>              }
continue here and ...
>          }
> -        else if ( strcmp(shm_id, mem->bank[i].shm_id) != 0 )
> -            continue;
>          else
no need for this else

>          {
> -            printk("fdt: different shared memory region could not share the same shm ID %s\n",
> -                   shm_id);
> -            return -EINVAL;
> +            paddr_t tot_size = bootinfo.shminfo.shm_nodes[i].tot_size;
> +            bool is_same_region = tot_size == size ? true : false;
> +
> +            if ( !paddr_assigned && is_same_region && is_shmid_equal )
> +                break;
> +            else if ( is_shmid_equal )
> +            {
> +                if ( paddr_assigned )
> +                {
> +                    printk("fdt: two different types of static shared memory region could not share the same shm-id %s\n",
> +                           shm_id);
> +                    return -EINVAL;
> +                }
> +
> +                printk("fdt: when host address is not provided, if xen,shm-id matches, size must stay the same too(%"PRIpaddr" -> %"PRIpaddr")\n",
> +                       size, tot_size);
> +                return -EINVAL;
> +            }
>          }
>      }
> 
>      if ( i == bootinfo.shminfo.nr_nodes )
>      {
> -        struct meminfo *mem = &bootinfo.reserved_mem;
> -
> -        if ( (i < NR_MEM_BANKS) && (mem->nr_banks < NR_MEM_BANKS) )
> +        if ( i < NR_MEM_BANKS )
if ( i == NR_MEM_BANKS )
   goto fail;
this would reduce the number of if/else blocks

>          {
> -            struct membank *membank = &mem->bank[mem->nr_banks];
>              struct shm_node *shm_node = &bootinfo.shminfo.shm_nodes[i].node;
> -
> -            if ( check_reserved_regions_overlap(paddr, size) )
> -                return -EINVAL;
> -
> -            /* Static shared memory shall be reserved from any other use. */
> -            membank->start = paddr;
> -            membank->size = size;
> -            membank->type = MEMBANK_STATIC_DOMAIN;
> -            mem->nr_banks++;
> +            struct meminfo *mem = &bootinfo.reserved_mem;
> 
>              /* Record static shared memory node info in bootinfo.shminfo */
>              safe_strcpy(shm_node->shm_id, shm_id);
> -            /*
> -             * Reserved memory bank is recorded together to assist
> -             * doing shm node verification.
> -             */
> -            bootinfo.shminfo.shm_nodes[i].membank = membank;
>              bootinfo.shminfo.nr_nodes++;
> +
> +            if ( !paddr_assigned )
> +                bootinfo.shminfo.shm_nodes[i].tot_size = size;
> +            else if ( mem->nr_banks < NR_MEM_BANKS )
> +            {
> +                struct membank *membank = &mem->bank[mem->nr_banks];
> +
> +                if ( check_reserved_regions_overlap(paddr, size) )
> +                    return -EINVAL;
> +
> +                /* Static shared memory shall be reserved from any other use. */
> +                membank->start = paddr;
> +                membank->size = size;
> +                membank->type = MEMBANK_STATIC_DOMAIN;
> +                mem->nr_banks++;
> +
> +                /*
> +                 * Reserved memory bank is recorded together to assist
> +                 * doing shm node verification.
> +                 */
> +                bootinfo.shminfo.shm_nodes[i].membank = membank;
> +            }
> +            else
> +                goto fail;
>          }
>          else
> -        {
> -            printk("Warning: Max number of supported memory regions reached.\n");
> -            return -ENOSPC;
> -        }
> +            goto fail;
>      }
> +
>      /*
>       * keep a count of the number of borrowers, which later may be used
>       * to calculate the reference count.
> @@ -502,6 +686,10 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>          bootinfo.shminfo.shm_nodes[i].node.nr_shm_borrowers++;
> 
>      return 0;
> +
> + fail:
> +    printk("Warning: Max number of supported memory regions reached.\n");
> +    return -ENOSPC;
>  }
> 
>  int __init make_resv_memory_node(const struct domain *d, void *fdt,
> --
> 2.25.1
> 

~Michal


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 14:11:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 14:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650642.1016351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBbZe-0005ac-Mb; Fri, 08 Dec 2023 14:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650642.1016351; Fri, 08 Dec 2023 14: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 1rBbZe-0005aV-Jh; Fri, 08 Dec 2023 14:11:26 +0000
Received: by outflank-mailman (input) for mailman id 650642;
 Fri, 08 Dec 2023 14:11: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 1rBbZd-0005aL-53; Fri, 08 Dec 2023 14:11: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 1rBbZd-0008JZ-0B; Fri, 08 Dec 2023 14:11: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 1rBbZc-000890-L8; Fri, 08 Dec 2023 14:11:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBbZc-00051C-Kn; Fri, 08 Dec 2023 14:11:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=UKuCAyJbI2ZPvYa9BDOncmOkd34uDKFf8/4NfycDB8Q=; b=HwFxFaV+Ho2Q63MqQIyLJDUjU1
	ocEYmfn5ozXRjLaLveyVjJ8uv8MTPuAu0dz8/vleY3kw1sB1Pzkv9PYLVjne5ol7JIP3Q0ed5r6qC
	kIPekfWmDoTzLbrgiw1DTYxbtty93DychoOCdVjA//6YX9sgoTQeSc8VY9BoujoWHLGg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184033-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184033: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-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-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=06e344f762bb2a31bfbdecbf0da9736373c19cce
X-Osstest-Versions-That:
    libvirt=a949a53e1390462db101238c548b94d8600f9d11
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 08 Dec 2023 14:11:24 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184019
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184019
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184019
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              06e344f762bb2a31bfbdecbf0da9736373c19cce
baseline version:
 libvirt              a949a53e1390462db101238c548b94d8600f9d11

Last test of basis   184019  2023-12-07 04:18:50 Z    1 days
Testing same since   184033  2023-12-08 04:20:31 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Anastasia Belova <abelova@astralinux.ru>
  Peter Krempa <pkrempa@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   a949a53e13..06e344f762  06e344f762bb2a31bfbdecbf0da9736373c19cce -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 14:24:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 14:24:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650651.1016361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBbm6-0000G0-R4; Fri, 08 Dec 2023 14:24:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650651.1016361; Fri, 08 Dec 2023 14: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 1rBbm6-0000Ft-NM; Fri, 08 Dec 2023 14:24:18 +0000
Received: by outflank-mailman (input) for mailman id 650651;
 Fri, 08 Dec 2023 14:24:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rBbm5-0000Fn-4Q
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 14:24:17 +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 1rBbm4-000086-Ep; Fri, 08 Dec 2023 14:24:16 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.23.116]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBbm4-0006II-8h; Fri, 08 Dec 2023 14:24:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=w5SQHuiVDosZvKu7mNqDvcqINp/XeUgrB4MfO4wvxhc=; b=LXnz4DcHYne468QkX4fGG1vQSB
	Pu4a+Ojtt1e2OiMZbnsqW73J8zVSWiaPoEpHMnWUD8j/kEvNDrgI94u5ZksoJaXgoOj8gmITftBod
	bQ9X/IwUFzSWTvKRPL2xcTM3xXeWUFdM0Gf5bC2z1mcmAciY3Gp2hJ8GrV9Edquehmso=;
Message-ID: <e13fbfe6-0a13-44ec-839a-f007990384cc@xen.org>
Date: Fri, 8 Dec 2023 14:24:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] automation: Add a Dockerfile for running FVP_Base
 jobs
Content-Language: en-GB
To: Henry Wang <Henry.Wang@arm.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen <Wei.Chen@arm.com>
References: <20231208054637.1973424-1-Henry.Wang@arm.com>
 <20231208054637.1973424-2-Henry.Wang@arm.com>
 <9978c881-9d1a-4554-b0f8-577a1cf6fc35@xen.org>
 <239318A5-BBE7-495A-8BA6-1DBA75FDBE46@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <239318A5-BBE7-495A-8BA6-1DBA75FDBE46@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 08/12/2023 12:59, Henry Wang wrote:
> Hi Julien,

Hi,

>> On Dec 8, 2023, at 20:30, Julien Grall <julien@xen.org> wrote:
>>
>> Hi,
>>
>> On 08/12/2023 05:46, Henry Wang wrote:
>>> Fixed Virtual Platforms (FVPs) are complete simulations of an Arm
>>> system, including processor, memory and peripherals. These are set
>>> out in a "programmer's view", which gives programmers a comprehensive
>>> model on which to build and test software. FVP can be configured to
>>> different setups by its cmdline parameters, and hence having the FVP
>>> in CI will provide us with the flexibility to test Arm features and
>>> setups that we find difficult to use real hardware or emulators.
>>> This commit adds a Dockerfile for the new arm64v8 container with
>>> FVP installed, based on the debian bookworm-arm64v8 image. This
>>> container will be used to run the FVP test jobs. Compared to the
>>> debian bookworm-arm64v8 image, the packages in the newly added FVP
>>> container does not contain the `u-boot-qemu`, and adds the `expect`
>>> to run expect scripts introduced by following commits, `telnet` to
>>> connect to FVP, and `tftpd-hpa` to provide the TFTP service for
>>> the FVP.
>>> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>>> ---
>>> v2:
>>> - Add Stefano's Reviewed-by tag.
>>> ---
>>> +
>>> +RUN wget https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_${FVP_BASE_VERSION}.tgz && \
>>
>> I vaguely recall some discussions on whether it was ok for us to publish a container with the FVP model due to the license agreement.
>>
>> I guess this has now been resolved because the download can be done without sign-in to the account. Can you confirm?
> 
> Yes, quoting some words from the people we asked internally:
> (the page referred to is https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms):
> 
> "All the FVPs referenced on this page that you are interested in are licensed under
> lightweight Eco System EULA that has no restrictions on the redistribution.â€
> 
> "So, yes, we can ship container images containing the FVP and the license on the FVP will remain as is.â€
> 
> "No issues with redistributing the model package in a Docker container, as long as the EULA in included."

Thanks for checking. In the current form, I don't think it is easy to 
know that the FVP has a specific license. I think this should be written 
down at the top of the container file. Something:

"The FVP is license under... Please read the file in ... for more details".

> 
>> It would also be good that the commit message indicates whether there is any implicit license agreement from Xen Project (or any user that decide to use our scripts).
> 
> I think it is the â€œEND USER LICENSE AGREEMENT FOR ARM ECOSYSTEM MODELSâ€?

It looks like it.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 15:09:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 15:09:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650667.1016370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBcTz-0000z4-4v; Fri, 08 Dec 2023 15:09:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650667.1016370; Fri, 08 Dec 2023 15: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 1rBcTz-0000yx-2H; Fri, 08 Dec 2023 15:09:39 +0000
Received: by outflank-mailman (input) for mailman id 650667;
 Fri, 08 Dec 2023 15:09:37 +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 1rBcTx-0000yp-KV
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 15:09:37 +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 1rBcTx-0000vo-36; Fri, 08 Dec 2023 15:09:37 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.23.116]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBcTw-0008RD-T6; Fri, 08 Dec 2023 15:09:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=K63/xIogE4iZbjBh2h6zoWCyyEbPi+TyQhckMRPBQgQ=; b=bCqGVCrjDuffGtOMNw7hV/vhGM
	fhPL9cOEoXsDE2xBLdhxKE/OO4jIDGSgvkkfmevtXaji/07TsS8KTnma7p8Qf18TGkzLn6qgDBFPe
	t25mps3Ipcm9XaSCoN/d88lWm0xvpq0cGK43rEK8G9AylH9n0bDsyNdmoTvrPfRVbrog=;
Message-ID: <b9892005-ab12-454a-9788-02571e868e67@xen.org>
Date: Fri, 8 Dec 2023 15:09:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 04/11] xen/arm: introduce allocate_domheap_memory and
 guest_physmap_memory
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Penny Zheng <Penny.Zheng@arm.com>,
 xen-devel@lists.xenproject.org
Cc: wei.chen@arm.com, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-5-Penny.Zheng@arm.com>
 <992ba724-8dfa-4285-8e92-16dfb870e4ed@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <992ba724-8dfa-4285-8e92-16dfb870e4ed@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 07/12/2023 09:38, Michal Orzel wrote:
> Hi Penny,
> 
> On 06/12/2023 10:06, Penny Zheng wrote:
>>
>>
>> We split the code of allocate_bank_memory into two parts,
>> allocate_domheap_memory and guest_physmap_memory.
>>
>> One is about allocating guest RAM from heap, which could be re-used later for
>> allocating static shared memory from heap when host address is not provided.
>> The other is building up guest P2M mapping.
>>
>> We also define a set of MACRO helpers to access common fields in data
>> structure of "meminfo" type, e.g. "struct meminfo" is one of them, and
>> later new "struct shm_meminfo" is also one of them.
>> This kind of structures must have the following characteristics:
>> - an array of "struct membank"
>> - a member called "nr_banks" indicating current array size
>> - a field indicating the maximum array size
>> When introducing a new data structure, according callbacks with function type
>> "retrieve_fn" shall be defined for using MACRO helpers.
>> This commit defines callback "retrieve_meminfo" for data structure
>> "struct meminfo".
> This patch introduces quite a bit of complexity with all these helpers, so adding a rationale is crucial.
> AFAIU, all of this is because we don't want to reuse struct meminfo where NR_MEM_BANKS is defined as 256,
> which is a lot more than we need for shmem. Am I right?

+1.

> 
> I would like others to share the opinion here as well.

If possible, I'd like to reduce the footprint of the shared memory. But 
this should be balanced with the complexity of the code.

Briefly looking at the patch series, we have two structures:

struct meminfo {
     unsigned int nr_banks;
     struct membank bank[NR_MEM_BANKS];
};

struct shm_meminfo {
     unsigned int nr_banks;
     struct membank bank[NR_SHM_BANKS];
     paddr_t tot_size;
};

IIUC, the logic is mostly to be able to know the maximum size of the 
array and also the number of slots already used.

So we could have the following common structure:

struct membanks {
    unsigned int nr_banks;
    unsigned int max_banks;
    struct membank *banks;
}

Then the definition for the two other structures could be:

struct meminfo {
     struct membank holders[NR_MEM_BANKS];

     struct membanks banks;
}

struct shm_meminfo {
     struct membank holders[NR_SHM_BANKS];

     struct membanks banks;

     paddr_t tot_size;
}

And then 'banks.banks' would point to the 'holders'. And 'max_banks' 
would be set to the maximum.

There might be other way to make the structure more nicer. Like (untested):

struct membanks {
     unsigned int nr_banks;
     unsigned int max_banks;
     struct membank[];
}

struct meminfo {
     struct membanks common;
     // We should ensure there are no padding
     struct membank[NR_MEM_BANKS];
}

We would then pass &meminfo.common to allocate_domainheap_memory().

With that there should be no need for extra helpers.

What do you think?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 15:13:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 15:13:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650669.1016381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBcXc-0002qb-KI; Fri, 08 Dec 2023 15:13:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650669.1016381; Fri, 08 Dec 2023 15:13:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBcXc-0002qU-HI; Fri, 08 Dec 2023 15:13:24 +0000
Received: by outflank-mailman (input) for mailman id 650669;
 Fri, 08 Dec 2023 15:13: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=Z4V2=HT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rBcXb-0002qJ-GT
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 15:13:23 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 528b3e33-95dc-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 16:13:20 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c09f4bea8so23568745e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 07:13:20 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 g9-20020a5d4889000000b0033609584b9dsm1927597wrq.74.2023.12.08.07.13.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Dec 2023 07:13:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 528b3e33-95dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702048399; x=1702653199; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ql0yT0iu4ksnsHxfeVj9hW6biAF9TBkuTmNyqFMhkzY=;
        b=veg2errvZubHrNqv5jaPXAt6qbrNhslB/RvGqqn+tXP4Guwy/tHJL8G/3CYmSl/o1J
         +Cxg0OwE2Tu0IQqAMwfqVffvIv8n9BGm+LeRu4BluDPGIn3GWhktluCMoEosfAFe5l1+
         M4MyLEzUon0zsH61otYbOyR8cvoSqoTwCfgeY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702048399; x=1702653199;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ql0yT0iu4ksnsHxfeVj9hW6biAF9TBkuTmNyqFMhkzY=;
        b=Y8zRuNvliE8HOorUcwvAj1mH3w6YYzFOPytRpo1PLSDHtUyX4JGkyvFTxKdYE67j1b
         GsiCyA4UlB5Tra/nEqBMRkiiSVuI5B3agD7a6qUQX+oX0JQ6V6M8PjDbZV5tij0YAnFs
         Il9pTTnizK84pSKZhf1NWkLIY/tOfOQk7Pdfd+oFb2ajfn911QuiVoG9t3tgKEMPKAZ9
         u3DVHX5HgFi6/CKtrStG6exGtODltekVuE//3ZGex36nORV3HEBP8ma1w4RkOCZNhfiX
         y3hSJCeq2iTzp/3/TOVGeVpPoqQYfygSIYv4BAIXGlTHBL77ax9pi7qkGUQBB1kTAm2M
         Ievg==
X-Gm-Message-State: AOJu0YzxoKWY1mGn2uGfRTuiEGPmZvzql89iIgtt5iMm8NpBfaFtGaM9
	BEMeJwTvsl0L63NFvLCOKKEHmDhxGmSUhOuAa3I=
X-Google-Smtp-Source: AGHT+IFNhenJY3EwBwIxGiBXc8V2WQ4OPs5J5wmsWWHy7XsAU9DqheRUHUgT4RoHxVllPebmfBfIUQ==
X-Received: by 2002:a05:600c:4995:b0:40c:2366:2417 with SMTP id h21-20020a05600c499500b0040c23662417mr68533wmp.124.1702048399208;
        Fri, 08 Dec 2023 07:13:19 -0800 (PST)
Message-ID: <232da84f-08d0-4bec-9eca-0bef023dae37@citrix.com>
Date: Fri, 8 Dec 2023 15:13:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/pygrub: Drop compatibility symlink
Content-Language: en-GB
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: George Dunlap <George.Dunlap@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>
References: <20231123163023.2158134-1-andrew.cooper3@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231123163023.2158134-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Ping.

On 23/11/2023 4:30 pm, Andrew Cooper wrote:
> This was declared deprecated in commit 10c88f1c18b7 ("tools: Install pv
> bootloaders in libexec rather than /usr/bin") in 2012
>
> Take it out fully now, 11 years later.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: George Dunlap <George.Dunlap@citrix.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Wei Liu <wl@xen.org>
> CC: Julien Grall <julien@xen.org>
> ---
>  CHANGELOG.md          | 3 +++
>  tools/pygrub/Makefile | 6 ------
>  2 files changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 4ecebb9f686a..36a8ef89d8e4 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -16,6 +16,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>  ### Removed
>  - caml-stubdom.  It hasn't built since 2014, was pinned to Ocaml 4.02, and has
>    been superseded by the MirageOS/SOLO5 projects.
> +- /usr/bin/pygrub symlink.  This was deprecated in Xen 4.2 (2012) but left for
> +  compatibility reasons.  VMs configured with bootloader="/usr/bin/pygrub"
> +  should be updated to just bootloader="pygrub".
>  
>  ## [4.18.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.18.0) - 2023-11-16
>  
> diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
> index 4963bc89c6ed..d5e291ea0619 100644
> --- a/tools/pygrub/Makefile
> +++ b/tools/pygrub/Makefile
> @@ -22,15 +22,9 @@ install: all
>  	$(setup.py) install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
>  		--root="$(DESTDIR)" --force
>  	$(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(LIBEXEC_BIN)/pygrub
> -	set -e; if [ $(bindir) != $(LIBEXEC_BIN) -a \
> -	             "`readlink -f $(DESTDIR)/$(bindir)`" != \
> -	             "`readlink -f $(LIBEXEC_BIN)`" ]; then \
> -	    ln -sf $(LIBEXEC_BIN)/pygrub $(DESTDIR)/$(bindir); \
> -	fi
>  
>  .PHONY: uninstall
>  uninstall:
> -	rm -f $(DESTDIR)/$(bindir)/pygrub
>  	if [ -e $(INSTALL_LOG) ]; then \
>  		cat $(INSTALL_LOG) | xargs -i rm -f $(DESTDIR)/{}; \
>  	fi
>
> base-commit: f96e2f64576cdbb147391c7cb399d393385719a9



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 15:33:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 15:33:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650680.1016391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBcqr-0007Zj-7a; Fri, 08 Dec 2023 15:33:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650680.1016391; Fri, 08 Dec 2023 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 1rBcqr-0007Zc-4y; Fri, 08 Dec 2023 15:33:17 +0000
Received: by outflank-mailman (input) for mailman id 650680;
 Fri, 08 Dec 2023 15:33: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=jsQu=HT=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rBcqq-0007ZW-Ae
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 15:33:16 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a06836b-95df-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 16:33:14 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c09f4814eso29533545e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 07:33:14 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 bi11-20020a05600c3d8b00b0040c2963e5f3sm3165279wmb.38.2023.12.08.07.33.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 07:33:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a06836b-95df-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702049594; x=1702654394; 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=pWGL9ioe4Q0XAlenJXy9ICyFtlPyiwtSIiZ8G0lVCX0=;
        b=ZHbB39ineD2RlWc1iS0/TsOGr5etV1dsYflfAAUQmxGbcl3uTRg26WkYydrjT4/5BO
         uOvIdwEGOTi7+0d/6bXm7tUtCLNXQ0jWt40qOy1xAF2lWqtYJduJ2MVCSY9hCogSFDZN
         kVa0kCU/t82mAs9/LsT/L9OybEohoc56JQ7FU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702049594; x=1702654394;
        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=pWGL9ioe4Q0XAlenJXy9ICyFtlPyiwtSIiZ8G0lVCX0=;
        b=ChoXF2c58ael209xUvxi2QFVWKk1+XvhdenaoSYmurZnVvaBNIrdvIU9J0jo2XmTM1
         YckW/dbW9L5MaY3BOAeK0r01pFo48WXMeLlUoReUKOaanCviDSDwvMI+1Il2ZVefaccc
         ltGO2B1XyyuWJX1OFwqwQd5Zj+tpExEuQXXg0X1gvoxoDcqNN3dHUDq/NtgdWbroRC8O
         Vdr4noe/kGE8/QuR3T1/zPMv8S8kl0XUQZEXimUoac0Kk3hGFqijelhDY3YdVlUcHTg8
         YkWd80ujKnTnnTzGALccvNcSJlxGO3kcLDwHNOwLaIYW845T+Rz9ULkLhzlI8Y3mjvJn
         JJSQ==
X-Gm-Message-State: AOJu0YzpDLaaIwhieC2WFV/QUDfYilOIJy11s5ei5uEtR3buHqWda6IA
	BS//lLCRjCVRLU+ImHwVwyUTSVK2cL8HPPg28o0=
X-Google-Smtp-Source: AGHT+IHaWiFpRuyUYcsuDeSV9wcbXamwsasRL4Fz0OVhuTxVZMGF5ADMW2YSCsu3zVwrh4Dn5BPl8w==
X-Received: by 2002:a05:600c:2b0e:b0:40c:337e:f059 with SMTP id y14-20020a05600c2b0e00b0040c337ef059mr95087wme.65.1702049593787;
        Fri, 08 Dec 2023 07:33:13 -0800 (PST)
Date: Fri, 8 Dec 2023 15:33:12 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
	Julien Grall <julien@xen.org>
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
Message-ID: <6f81bc46-8459-4fd0-accb-3c3f65f13aac@perard>
References: <20231121114048.31294-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231121114048.31294-1-jgross@suse.com>

On Tue, Nov 21, 2023 at 12:40:43PM +0100, Juergen Gross wrote:
> Remove some command line options which have no real use case.
> 
> Changes in V2:
> - moved removal of "-N" into last patch of the series, as this is the
>   only option which seems to have a use case (OTOH using it has some
>   downsides as well).
> 
> Juergen Gross (5):
>   tools/xenstored: remove "-D" command line parameter
>   tools/xenstored: remove "-V" command line option
>   tools/xenstored: remove the "-P" command line option
>   tools/xenstored: remove the "-R" command line option
>   tools/xenstored: remove "-N" command line option

Should we have en entry in the changelog about all these removals? Who
knows if they are used by someone or not...

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 15:35:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 15:35:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650684.1016400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBctO-0008FF-RQ; Fri, 08 Dec 2023 15:35:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650684.1016400; Fri, 08 Dec 2023 15:35:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBctO-0008F8-Oa; Fri, 08 Dec 2023 15:35:54 +0000
Received: by outflank-mailman (input) for mailman id 650684;
 Fri, 08 Dec 2023 15:35: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=T8s0=HT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rBctM-0008F0-Sb
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 15:35:52 +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 778a098c-95df-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 16:35:51 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 042DD21C5B;
 Fri,  8 Dec 2023 15:35: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 D0C9A13335;
 Fri,  8 Dec 2023 15:35:49 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 8qCsMdU3c2VVfAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 08 Dec 2023 15:35: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: 778a098c-95df-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702049750; 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=hCsApVge6AiYndb4xujsanb02iKvJv4SWxYuvHbCZC4=;
	b=RMEyT6d2qhVO7wWGOph7bYjdzkz2dAhuAlf+4Bb6MVnbR4OUGs/UVP2+Yh1id2hl8VK9Zo
	/R/ugJKeBJ5QeQlPH1SuXpbsewF2iv78KxJysTFEHUfgQPQLRydgEfqt6N+ldMa+O9sDGs
	nGiHErLyb9Mk8c2+8vwMN4Lqiif+FOI=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702049750; 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=hCsApVge6AiYndb4xujsanb02iKvJv4SWxYuvHbCZC4=;
	b=RMEyT6d2qhVO7wWGOph7bYjdzkz2dAhuAlf+4Bb6MVnbR4OUGs/UVP2+Yh1id2hl8VK9Zo
	/R/ugJKeBJ5QeQlPH1SuXpbsewF2iv78KxJysTFEHUfgQPQLRydgEfqt6N+ldMa+O9sDGs
	nGiHErLyb9Mk8c2+8vwMN4Lqiif+FOI=
Message-ID: <12a7b13b-30a5-41ff-96cd-dd898009b689@suse.com>
Date: Fri, 8 Dec 2023 16:35:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
Content-Language: en-US
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>
References: <20231121114048.31294-1-jgross@suse.com>
 <6f81bc46-8459-4fd0-accb-3c3f65f13aac@perard>
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: <6f81bc46-8459-4fd0-accb-3c3f65f13aac@perard>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------4c2QNK7p2n6o9jbZIaYFcgN2"
X-Spam-Level: ******************
X-Spam-Score: 18.48
X-Spam-Flag: NO
X-Spamd-Result: default: False [-8.90 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 SIGNED_PGP(-2.00)[];
	 NEURAL_HAM_SHORT(-0.20)[-0.990];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[];
	 RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]
X-Spam-Flag: NO
X-Rspamd-Server: rspamd1
X-Spam-Level: 
X-Rspamd-Queue-Id: 042DD21C5B
X-Spam-Score: -8.90
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=RMEyT6d2;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=pass (policy=quarantine) header.from=suse.com

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------4c2QNK7p2n6o9jbZIaYFcgN2
Content-Type: multipart/mixed; boundary="------------vDzmq2xjI5xZB9B3ZQbOdgoL";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>
Message-ID: <12a7b13b-30a5-41ff-96cd-dd898009b689@suse.com>
Subject: Re: [PATCH v2 0/5] tools/xenstored: remove some command line options
References: <20231121114048.31294-1-jgross@suse.com>
 <6f81bc46-8459-4fd0-accb-3c3f65f13aac@perard>
In-Reply-To: <6f81bc46-8459-4fd0-accb-3c3f65f13aac@perard>

--------------vDzmq2xjI5xZB9B3ZQbOdgoL
Content-Type: multipart/mixed; boundary="------------fxHLxPArfZCn4sEz0X0coYtP"

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

T24gMDguMTIuMjMgMTY6MzMsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUdWUsIE5v
diAyMSwgMjAyMyBhdCAxMjo0MDo0M1BNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gUmVtb3ZlIHNvbWUgY29tbWFuZCBsaW5lIG9wdGlvbnMgd2hpY2ggaGF2ZSBubyByZWFs
IHVzZSBjYXNlLg0KPj4NCj4+IENoYW5nZXMgaW4gVjI6DQo+PiAtIG1vdmVkIHJlbW92YWwg
b2YgIi1OIiBpbnRvIGxhc3QgcGF0Y2ggb2YgdGhlIHNlcmllcywgYXMgdGhpcyBpcyB0aGUN
Cj4+ICAgIG9ubHkgb3B0aW9uIHdoaWNoIHNlZW1zIHRvIGhhdmUgYSB1c2UgY2FzZSAoT1RP
SCB1c2luZyBpdCBoYXMgc29tZQ0KPj4gICAgZG93bnNpZGVzIGFzIHdlbGwpLg0KPj4NCj4+
IEp1ZXJnZW4gR3Jvc3MgKDUpOg0KPj4gICAgdG9vbHMveGVuc3RvcmVkOiByZW1vdmUgIi1E
IiBjb21tYW5kIGxpbmUgcGFyYW1ldGVyDQo+PiAgICB0b29scy94ZW5zdG9yZWQ6IHJlbW92
ZSAiLVYiIGNvbW1hbmQgbGluZSBvcHRpb24NCj4+ICAgIHRvb2xzL3hlbnN0b3JlZDogcmVt
b3ZlIHRoZSAiLVAiIGNvbW1hbmQgbGluZSBvcHRpb24NCj4+ICAgIHRvb2xzL3hlbnN0b3Jl
ZDogcmVtb3ZlIHRoZSAiLVIiIGNvbW1hbmQgbGluZSBvcHRpb24NCj4+ICAgIHRvb2xzL3hl
bnN0b3JlZDogcmVtb3ZlICItTiIgY29tbWFuZCBsaW5lIG9wdGlvbg0KPiANCj4gU2hvdWxk
IHdlIGhhdmUgZW4gZW50cnkgaW4gdGhlIGNoYW5nZWxvZyBhYm91dCBhbGwgdGhlc2UgcmVt
b3ZhbHM/IFdobw0KPiBrbm93cyBpZiB0aGV5IGFyZSB1c2VkIGJ5IHNvbWVvbmUgb3Igbm90
Li4uDQoNCkknbGwgc2VuZCBhIHBhdGNoIGluIHRoaXMgcmVnYXJkIHdoZW4gcGF0Y2ggNSBo
YXMgZ29uZSBpbi4NCg0KDQpKdWVyZ2VuDQoNCg==
--------------fxHLxPArfZCn4sEz0X0coYtP
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-----

--------------fxHLxPArfZCn4sEz0X0coYtP--

--------------vDzmq2xjI5xZB9B3ZQbOdgoL--

--------------4c2QNK7p2n6o9jbZIaYFcgN2
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/Ey8FAmVzN9UFAwAAAAAACgkQsN6d1ii/Ey/6
2gf/YG5uDu9HAauGq1D7eBhW6NRu8Fp0O7utHCK1SpPKPe5s/a+NYGtUWKBfdeLqcr37CfYKr2I8
GsqmrBEpEXvS+SA5Fi4GDyKV0ipI4oH+RkBBlvzJB0QxlldZFFKg6XfVYAPeDDiI9VJnc6cG7/YW
6KbVrjFpkurB7kBy4MMr/DtAINR6BU5iR6mUHlz/GpJ2KF1P7YP7Od7/BbZBIJIba+6xe3i03SzJ
aW02roTgd6/ZVBW4wHSqrsuJ5hkGRSiSRyI7UGDcSuBaCqwWB1ogG/BbzJfNG2ou4II/zH1Y0r3G
aolePS4+9cmnKLOZbNlvuN+tzqBn2nOQoTUjfE7amw==
=0AZk
-----END PGP SIGNATURE-----

--------------4c2QNK7p2n6o9jbZIaYFcgN2--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 15:36:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 15:36:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650688.1016411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBcu9-0000ox-40; Fri, 08 Dec 2023 15:36:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650688.1016411; Fri, 08 Dec 2023 15:36:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBcu9-0000oo-0l; Fri, 08 Dec 2023 15:36:41 +0000
Received: by outflank-mailman (input) for mailman id 650688;
 Fri, 08 Dec 2023 15:36:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rBcu7-0000oQ-91
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 15:36:39 +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 1rBcu6-0001P9-Vg; Fri, 08 Dec 2023 15:36:38 +0000
Received: from 54-240-197-231.amazon.com ([54.240.197.231]
 helo=[192.168.23.116]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rBcu6-00017s-OK; Fri, 08 Dec 2023 15:36: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=pjY3uhahoJ6Ejf8Jy+OMLCKeesaBjGu909SiT0NAvKg=; b=Cco1qm3eM7d6vdy7admSOva9Ws
	xe4ihqXXcDm+ipmnlNxi98qfGar+kaZzPNw88nAO9a3TTqBP1Ic11X+Z6NDYWqLtzRzrPizyVPh+5
	Xxix9S7paO0ipdK07ekRGwYA5K4PowT1H8pwpHWSutLXyTu8QBFn0iMVYt95AZ3K55ow=;
Message-ID: <b0133fa8-a774-4587-a1ed-4059f97970f9@xen.org>
Date: Fri, 8 Dec 2023 15:36:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/pygrub: Drop compatibility symlink
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: George Dunlap <George.Dunlap@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>
References: <20231123163023.2158134-1-andrew.cooper3@citrix.com>
 <232da84f-08d0-4bec-9eca-0bef023dae37@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <232da84f-08d0-4bec-9eca-0bef023dae37@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 08/12/2023 15:13, Andrew Cooper wrote:
> Ping.

I noticed Anthony is not CCed (scripts/get_maintainer.pl reports him and 
Wei). The same for CHANGELOG. This should have been Henry (and soon 
Oleksii).

Is this intended?

> 
> On 23/11/2023 4:30 pm, Andrew Cooper wrote:
>> This was declared deprecated in commit 10c88f1c18b7 ("tools: Install pv
>> bootloaders in libexec rather than /usr/bin") in 2012
>>
>> Take it out fully now, 11 years later.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: George Dunlap <George.Dunlap@citrix.com>
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Wei Liu <wl@xen.org>
>> CC: Julien Grall <julien@xen.org>
>> ---
>>   CHANGELOG.md          | 3 +++
>>   tools/pygrub/Makefile | 6 ------

See above, I think this code is under the remit of Anthony. You haven't 
CCed him so no surprise no-one answered.

It is unclear why "THE REST" was CCed. I called 
scripts/get_maintainers.pl on the patch and only Henry/Anthony/Wei
was listed.

I have CCed Anthony. I can review give a try to review it if you don't 
get any answer from Anthony by mid-next week.

>>   2 files changed, 3 insertions(+), 6 deletions(-)
>>
>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>> index 4ecebb9f686a..36a8ef89d8e4 100644
>> --- a/CHANGELOG.md
>> +++ b/CHANGELOG.md
>> @@ -16,6 +16,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>   ### Removed
>>   - caml-stubdom.  It hasn't built since 2014, was pinned to Ocaml 4.02, and has
>>     been superseded by the MirageOS/SOLO5 projects.
>> +- /usr/bin/pygrub symlink.  This was deprecated in Xen 4.2 (2012) but left for
>> +  compatibility reasons.  VMs configured with bootloader="/usr/bin/pygrub"
>> +  should be updated to just bootloader="pygrub".
>>   
>>   ## [4.18.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.18.0) - 2023-11-16
>>   
>> diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
>> index 4963bc89c6ed..d5e291ea0619 100644
>> --- a/tools/pygrub/Makefile
>> +++ b/tools/pygrub/Makefile
>> @@ -22,15 +22,9 @@ install: all
>>   	$(setup.py) install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
>>   		--root="$(DESTDIR)" --force
>>   	$(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(LIBEXEC_BIN)/pygrub
>> -	set -e; if [ $(bindir) != $(LIBEXEC_BIN) -a \
>> -	             "`readlink -f $(DESTDIR)/$(bindir)`" != \
>> -	             "`readlink -f $(LIBEXEC_BIN)`" ]; then \
>> -	    ln -sf $(LIBEXEC_BIN)/pygrub $(DESTDIR)/$(bindir); \
>> -	fi
>>   
>>   .PHONY: uninstall
>>   uninstall:
>> -	rm -f $(DESTDIR)/$(bindir)/pygrub
>>   	if [ -e $(INSTALL_LOG) ]; then \
>>   		cat $(INSTALL_LOG) | xargs -i rm -f $(DESTDIR)/{}; \
>>   	fi
>>
>> base-commit: f96e2f64576cdbb147391c7cb399d393385719a9
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 15:43:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 15:43:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650694.1016420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBd0j-0002pY-Pt; Fri, 08 Dec 2023 15:43:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650694.1016420; Fri, 08 Dec 2023 15:43: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 1rBd0j-0002pR-My; Fri, 08 Dec 2023 15:43:29 +0000
Received: by outflank-mailman (input) for mailman id 650694;
 Fri, 08 Dec 2023 15:43:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gRCO=HT=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rBd0j-0002pL-AH
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 15:43:29 +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 876eeb12-95e0-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 16:43:27 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2c9f85eff28so32024151fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 07:43:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 876eeb12-95e0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702050207; x=1702655007; 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=A6k/DWiBejeRD6ZOzbRhQb1cp4CJb4UWtP63T4t/O2w=;
        b=j6LMnjoluUKfLiZfRWtgary2YNIsC/9IzLkJTbx5aDeMFyygEJYMAs6POUNASbTvz3
         m/5xkaH2abSTl66h8y9moQxoFaZDODcU56mRja48Ahox4bo0bTLm8PoeAnuoxqmmYW38
         qrWDZI977N0OjSFMVXkZJkCCBXjvJ/dqrZBw8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702050207; x=1702655007;
        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=A6k/DWiBejeRD6ZOzbRhQb1cp4CJb4UWtP63T4t/O2w=;
        b=t4lPTEIBekq4W+yVn2dQRP7swlBMqPUlAfHZ0mGl2d6JtUUwzAOjlg4azluE+YggkT
         hl+Kti8hVPWq1oZYByH/9JFVCzn5A/ET4ONMA35s73JHnok4zceRGG9aR7CaWM6XHxHN
         lKTlfXljA6kynsNrf0+h8edDOcqqTrRKVHFvCyXIty2Om2sxAQLXZcufOlZ8Z/T9NXrW
         z9ykwgvfpfkYSgOv47L3ebXk/iMM0SsatwG/bOE9UN0Kkx0/V+5vx+3nWlL+QQmlemXW
         aO/mrqMe2PxBPpqVnkup/1AGsRmKeCW2LXRt45MhtrTVVzaI0d7NCAXYoq08xIkMknZl
         Hltw==
X-Gm-Message-State: AOJu0YzvRofQ0bPx8t28/XnAE0wgqB2vRFzp5m7napBe8qZQemPP0tgy
	CO999DFalhTNRqTqJEShkeAJfvp2YE4c8raptvlAqg==
X-Google-Smtp-Source: AGHT+IHfVvFK4cARCj0Gp6958FMWmC4uVUXE03Gd8VTjCxUAoGWIWGEDXCgZWdnksWa7MK+PzG22ZIDaidUWdkdcugM=
X-Received: by 2002:a2e:94c6:0:b0:2ca:1a56:f603 with SMTP id
 r6-20020a2e94c6000000b002ca1a56f603mr69264ljh.13.1702050206853; Fri, 08 Dec
 2023 07:43:26 -0800 (PST)
MIME-Version: 1.0
References: <20231123163023.2158134-1-andrew.cooper3@citrix.com>
 <232da84f-08d0-4bec-9eca-0bef023dae37@citrix.com> <b0133fa8-a774-4587-a1ed-4059f97970f9@xen.org>
In-Reply-To: <b0133fa8-a774-4587-a1ed-4059f97970f9@xen.org>
From: George Dunlap <george.dunlap@cloud.com>
Date: Fri, 8 Dec 2023 15:43:16 +0000
Message-ID: <CA+zSX=aHisr_MKEqXpe2DH9PGF=sTpqZrOQhkss623ttfRWZXg@mail.gmail.com>
Subject: Re: [PATCH] tools/pygrub: Drop compatibility symlink
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>, 
	Jan Beulich <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Dec 8, 2023 at 3:36=E2=80=AFPM Julien Grall <julien@xen.org> wrote:

> See above, I think this code is under the remit of Anthony. You haven't
> CCed him so no surprise no-one answered.

Additionally, my old citrix address *was* cc'd, but I only have the
'ping', not the original email in my work mailbox.

I'm tempted to suggest adding a hack to libxl, so that /usr/bin/pygrub
automatically falls back to the libexec directory if /usr/bin/pygrub
doesn't exist.  (I'd be happy to code something up if we decided to go
that route.). OTOH, I can see the argument that 11 years and the
CHANGELOG entry is enough.

 -George


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 15:46:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 15:46:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650699.1016430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBd3U-0003dy-81; Fri, 08 Dec 2023 15:46:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650699.1016430; Fri, 08 Dec 2023 15:46:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBd3U-0003dr-5S; Fri, 08 Dec 2023 15:46:20 +0000
Received: by outflank-mailman (input) for mailman id 650699;
 Fri, 08 Dec 2023 15:46:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z4V2=HT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rBd3T-0003RZ-Jh
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 15:46:19 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id edc23e4e-95e0-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 16:46:19 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c317723a8so11935615e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 07:46:19 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 l4-20020a05600012c400b003334041c3edsm2290562wrx.41.2023.12.08.07.46.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Dec 2023 07:46:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: edc23e4e-95e0-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702050378; x=1702655178; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vsGP0t+5hZevLjXNhV+5VQNJ5Fodlsi1+qy0/pAEPKg=;
        b=O6NM2dqgmHMRPmKS4ao0MQNGw69zCif95yY1zaC5FZ7tr5+R8vaBW0MvYAoBH1i9GQ
         oAwBi0IOGGqE0oMId2RWxdOfBfj9sSnjZ14wp27fTB+neuylRRTy5iqNIZG1apj2WBJt
         xBU+kj4QUS1mOps2zQRy0xu3Z3B8hlMWIV4xU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702050378; x=1702655178;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=vsGP0t+5hZevLjXNhV+5VQNJ5Fodlsi1+qy0/pAEPKg=;
        b=Y9uDpthzAU8yfTgCMRlEzvM0Ce+bLOArGbHEyI3QoP2YI92plE7AysJJjBL0dz4tQC
         rsZWCQ4m3bBq4hY2t+5uus57tny1z+mgtq4w/n54aYZrCwMQ7nc5ANJee83PL8b38r5t
         gbG16PlLbV0xGJ0k4yrZ7FmKf5/HkdGGKaH3esJAdDqKKG3nrO3bOF7lkNKZN+Bb7feY
         eIcQ5MW9ZwWNTocHMaSMOmQHxN/5rJsFM4LdWNtbQzZqfHJCIgkrqEG38Nrx6pJVWLq7
         /qMCRt0fNkOpZ/BV3jToY4EfjQLdzDaADLKum3JplCo2Y/gLTxVZK0hVnz98beWLI17g
         nxSg==
X-Gm-Message-State: AOJu0YzzrMiMJzU/lmSQuVMrTyrHW02McP4run7fJEHt9tEKwS2h+ZRi
	Ff+UKEjnA+0rlviBlPaq9nhVPR2ayZ+MWZelp0o=
X-Google-Smtp-Source: AGHT+IEqU9tmGvvukAD43TRT5NkkH/xngOB80JhqeZ0xeoO6vRHIsas1OV3Rt+rQD7HoN7cz0jEe3A==
X-Received: by 2002:a05:600c:358f:b0:40b:5e59:c57e with SMTP id p15-20020a05600c358f00b0040b5e59c57emr88150wmq.168.1702050378487;
        Fri, 08 Dec 2023 07:46:18 -0800 (PST)
Message-ID: <fe647c65-1092-4a25-9af1-3528ac69f682@citrix.com>
Date: Fri, 8 Dec 2023 15:46:17 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/5] tools/xenstored: remove "-N" command line option
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20231121114048.31294-1-jgross@suse.com>
 <20231121114048.31294-6-jgross@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231121114048.31294-6-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21/11/2023 11:40 am, Juergen Gross wrote:
> The "-N" (do not daemonize) command line option is of questionable use:
> its sole purpose seems to be to aid debugging of xenstored by making it
> easier to start xenstored under gdb, or to see any debug messages
> easily.
>
> Debug messages can as well be sent to syslog(), while gdb can be
> attached to the daemon easily. The only not covered case is an error
> while initializing xenstored, but this could be handled e.g. by saving
> a core dump, which can be analyzed later.
>
> The call of talloc_enable_leak_report_full() done only with "-N"
> specified is no longer needed, as the same can be achieved via
> "xenstore-control memreport".
>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Systemd wants daemons to not fork, because systemd can start them up in
a better-prescribed environment than deamonise() can make.

It was a lazy port to system which has caused us not to be using -N in
the first place.

So no - I think this option specifically wants to stay, and the systemd
integration improved.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 15:59:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 15:59:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650706.1016441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdFg-0007Pr-HZ; Fri, 08 Dec 2023 15:58:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650706.1016441; Fri, 08 Dec 2023 15:58:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdFg-0007Pk-Dt; Fri, 08 Dec 2023 15:58:56 +0000
Received: by outflank-mailman (input) for mailman id 650706;
 Fri, 08 Dec 2023 15:58:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=T8s0=HT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rBdFf-0007Pe-9o
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 15:58:55 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af85b6ce-95e2-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 16:58:53 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id ED2EE1F454;
 Fri,  8 Dec 2023 15:58: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 C34C813335;
 Fri,  8 Dec 2023 15:58:52 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id X5dbLjw9c2UiBAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 08 Dec 2023 15:58:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af85b6ce-95e2-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702051133; 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=taXJaQGc4vSI2qzWANpdVWbP5Wh/Jb1T634B3lhlZGY=;
	b=scybEx5lQ2B9kGxFpt4aG+JVzOXkyFoWfhJygCmH1avhL/bRI/BswyYgl8zGmsFQAlGSu3
	kIO7hAOXlx88rkwivPcDsEOkOo/XwiNfH8tt7670gzGN1sCqbj1DzcvEg2Ffv02aDmVL/1
	afnc7gfcAwoMqwSgjtJaFmFElmlNc3I=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702051132; 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=taXJaQGc4vSI2qzWANpdVWbP5Wh/Jb1T634B3lhlZGY=;
	b=Qq5i2QHBqOrGd1GW2gbN7ws2XrXBiXSGzW1+xcgeKuLOwY5I/2SDPfJ5mmA+n680C6EIcO
	SmFtfygj3SvwzLOZ0TZLDhatitDuymVabeKVSlY52v7E3Wy+2qO4+S8eBWazBj2Ko2du3h
	2TbmGurNeac8xs8Sypo91sfg8KbverA=
Message-ID: <4add391b-cee8-4af3-be1f-56078e33e32d@suse.com>
Date: Fri, 8 Dec 2023 16:58:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/5] tools/xenstored: remove "-N" command line option
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
References: <20231121114048.31294-1-jgross@suse.com>
 <20231121114048.31294-6-jgross@suse.com>
 <fe647c65-1092-4a25-9af1-3528ac69f682@citrix.com>
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: <fe647c65-1092-4a25-9af1-3528ac69f682@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------lZRjSehrkeAQ7oL20F0C1fqK"
X-Spam-Level: ******************
X-Spam-Score: 18.14
X-Spam-Flag: NO
X-Spamd-Result: default: False [-3.79 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 SIGNED_PGP(-2.00)[];
	 NEURAL_HAM_SHORT(-0.19)[-0.972];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Rspamd-Server: rspamd1
X-Spam-Level: 
X-Rspamd-Queue-Id: ED2EE1F454
X-Spam-Score: -3.79
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=Qq5i2QHB;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=pass (policy=quarantine) header.from=suse.com

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------lZRjSehrkeAQ7oL20F0C1fqK
Content-Type: multipart/mixed; boundary="------------eyALZId7EBlYqyMqwbm3cSH6";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <4add391b-cee8-4af3-be1f-56078e33e32d@suse.com>
Subject: Re: [PATCH v2 5/5] tools/xenstored: remove "-N" command line option
References: <20231121114048.31294-1-jgross@suse.com>
 <20231121114048.31294-6-jgross@suse.com>
 <fe647c65-1092-4a25-9af1-3528ac69f682@citrix.com>
In-Reply-To: <fe647c65-1092-4a25-9af1-3528ac69f682@citrix.com>

--------------eyALZId7EBlYqyMqwbm3cSH6
Content-Type: multipart/mixed; boundary="------------VF8A0re08FUnCAHtkJZXnlId"

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

T24gMDguMTIuMjMgMTY6NDYsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDIxLzExLzIw
MjMgMTE6NDAgYW0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBUaGUgIi1OIiAoZG8gbm90
IGRhZW1vbml6ZSkgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBvZiBxdWVzdGlvbmFibGUgdXNl
Og0KPj4gaXRzIHNvbGUgcHVycG9zZSBzZWVtcyB0byBiZSB0byBhaWQgZGVidWdnaW5nIG9m
IHhlbnN0b3JlZCBieSBtYWtpbmcgaXQNCj4+IGVhc2llciB0byBzdGFydCB4ZW5zdG9yZWQg
dW5kZXIgZ2RiLCBvciB0byBzZWUgYW55IGRlYnVnIG1lc3NhZ2VzDQo+PiBlYXNpbHkuDQo+
Pg0KPj4gRGVidWcgbWVzc2FnZXMgY2FuIGFzIHdlbGwgYmUgc2VudCB0byBzeXNsb2coKSwg
d2hpbGUgZ2RiIGNhbiBiZQ0KPj4gYXR0YWNoZWQgdG8gdGhlIGRhZW1vbiBlYXNpbHkuIFRo
ZSBvbmx5IG5vdCBjb3ZlcmVkIGNhc2UgaXMgYW4gZXJyb3INCj4+IHdoaWxlIGluaXRpYWxp
emluZyB4ZW5zdG9yZWQsIGJ1dCB0aGlzIGNvdWxkIGJlIGhhbmRsZWQgZS5nLiBieSBzYXZp
bmcNCj4+IGEgY29yZSBkdW1wLCB3aGljaCBjYW4gYmUgYW5hbHl6ZWQgbGF0ZXIuDQo+Pg0K
Pj4gVGhlIGNhbGwgb2YgdGFsbG9jX2VuYWJsZV9sZWFrX3JlcG9ydF9mdWxsKCkgZG9uZSBv
bmx5IHdpdGggIi1OIg0KPj4gc3BlY2lmaWVkIGlzIG5vIGxvbmdlciBuZWVkZWQsIGFzIHRo
ZSBzYW1lIGNhbiBiZSBhY2hpZXZlZCB2aWENCj4+ICJ4ZW5zdG9yZS1jb250cm9sIG1lbXJl
cG9ydCIuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuY29tPg0KPiANCj4gU3lzdGVtZCB3YW50cyBkYWVtb25zIHRvIG5vdCBmb3JrLCBiZWNh
dXNlIHN5c3RlbWQgY2FuIHN0YXJ0IHRoZW0gdXAgaW4NCj4gYSBiZXR0ZXItcHJlc2NyaWJl
ZCBlbnZpcm9ubWVudCB0aGFuIGRlYW1vbmlzZSgpIGNhbiBtYWtlLg0KPiANCj4gSXQgd2Fz
IGEgbGF6eSBwb3J0IHRvIHN5c3RlbSB3aGljaCBoYXMgY2F1c2VkIHVzIG5vdCB0byBiZSB1
c2luZyAtTiBpbg0KPiB0aGUgZmlyc3QgcGxhY2UuDQo+IA0KPiBTbyBubyAtIEkgdGhpbmsg
dGhpcyBvcHRpb24gc3BlY2lmaWNhbGx5IHdhbnRzIHRvIHN0YXksIGFuZCB0aGUgc3lzdGVt
ZA0KPiBpbnRlZ3JhdGlvbiBpbXByb3ZlZC4NCg0KVGhlIHByb2JsZW0gd2l0aCB0aGlzIGFw
cHJvYWNoIGlzIHRoYXQgd2UgaGF2ZSBzb21lIGZ1bmN0aW9uYWxpdHkgaW4gdGhlDQpsYXVu
Y2gteGVuc3RvcmUgc2NyaXB0IHJlbHlpbmcgb24gW29deGVuc3RvcmVkIGNvbWluZyBiYWNr
IGFmdGVyIGhhdmluZw0KZm9ya2VkIG9mZiB0aGUgZGFlbW9uOiB3ZSBhcmUgc2V0dGluZyB0
aGUgb29tLXNjb3JlLCB3aGljaCBjYW4gYmUgZG9uZQ0Kb25seSB3aGVuIGtub3dpbmcgdGhl
IHByb2Nlc3MgaWQuDQoNClNvIHdlIG5lZWQgYSBzb2x1dGlvbiBmb3IgdGhpcyBwcm9ibGVt
IGJlZm9yZSB3ZSBjYW4gcmVhbGx5IGVuY291cmFnZQ0KdXNlcnMgdG8gdXNlIHRoZSAtTiBv
cHRpb24uDQoNClBsZWFzZSBub3RlIHRoYXQgc2V0dGluZyB0aGUgb29tLXNjb3JlIGZyb20g
d2l0aGluIHhlbnN0b3JlZCB3YXMgcmVqZWN0ZWQNCmJhY2sgd2hlbiBJIHBvc3RlZCBhIHBh
dGNoIGluIHRoaXMgcmVnYXJkLCBlc3BlY2lhbGx5IGFzIGl0IGlzIHNwZWNpZmljIHRvDQpM
aW51eC4gQWRkaXRpb25hbGx5IHRoaXMgd291bGQgbWVhbiB3ZSBuZWVkIHRvIGFkZCB0aGlz
IGZ1bmN0aW9uYWxpdHkgdG8NCnhlbnN0b3JlZCBBTkQgb3hlbnN0b3JlZC4NCg0KDQpKdWVy
Z2VuDQo=
--------------VF8A0re08FUnCAHtkJZXnlId
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-----

--------------VF8A0re08FUnCAHtkJZXnlId--

--------------eyALZId7EBlYqyMqwbm3cSH6--

--------------lZRjSehrkeAQ7oL20F0C1fqK
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/Ey8FAmVzPTwFAwAAAAAACgkQsN6d1ii/Ey8U
Ewf9FiHNFJWyH4zte75yZ3L6SsOkmhAOkTE29X78wwGJdNxdodtMytZhPs3z45M7tqV5CpRa2JVW
+aS5dfZBlk3XHvA+AMW0ZF9EhuSCHN0x10kmPTkkA5HXY5XAbDjc5fXfZmMf8RqPTxumiAQCLUrT
qMI7i5p0ThQTqasuEDTZXF8+ixuGbYnZZwFb2p1/HSbuXiOVNYPbv50mWPqKphQMrzJqR0hOB9wD
GQ/xlpbd7zLs/Uifi1KBOXO2gza6huV3YqLaJSstUzdeJVAemScT4kZGlKBEnm5ecu5q4w45DTVf
W/Y7pxZUBh7VPHb1sPRTW7kp8E6AnNQBAP3WCt26tg==
=x9W4
-----END PGP SIGNATURE-----

--------------lZRjSehrkeAQ7oL20F0C1fqK--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 15:59:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 15:59:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650707.1016450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdFr-0007jY-Ns; Fri, 08 Dec 2023 15:59:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650707.1016450; Fri, 08 Dec 2023 15:59:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdFr-0007jR-LQ; Fri, 08 Dec 2023 15:59:07 +0000
Received: by outflank-mailman (input) for mailman id 650707;
 Fri, 08 Dec 2023 15:59:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jsQu=HT=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rBdFq-0007ij-DF
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 15:59:06 +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 b5fc225e-95e2-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 16:59:04 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c2bb872e2so18978055e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 07:59:04 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 q15-20020a056000136f00b00336098d0e64sm1276525wrz.106.2023.12.08.07.59.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 07:59:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5fc225e-95e2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702051144; x=1702655944; 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=/v+mSP3tKfdKjEHoi3wYE8TrVOBSbYo92dEu9SjNSVo=;
        b=WlwjSk7gl8YvSeYgZx9f7B/hkMa21W0FyNvWIk+QgZYDODF4TiFLTTejib3gPGiAoS
         6+M9YD0/gY5Q10Qxp+yh14/MX6knMHlEs3MqIuWA1+HY+n+y2j6kjuTMunOBRP2OAkaH
         gQpduVpqpbxRdaarR5WTjMYTiCUm8DjWuUr6E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702051144; x=1702655944;
        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=/v+mSP3tKfdKjEHoi3wYE8TrVOBSbYo92dEu9SjNSVo=;
        b=fFc2GYP8ogrFTQX2uHVnP9ykdgSeT0uHmMTF5/HhsDznE2S3he+je+c+ofP0PsW1XF
         s+kqhi0UtljCUE3hBCmA8wwp+IzWxXVr/CDp0J0XO/HilrGSXUCN68nRNYx+naSXIwFn
         upjwkDysRlNPY1wkUqaM8aBL+477XfwEeYrDy/QikOv7wLuSrh0TeLr5ETEI3PK2GRsB
         IT+KZ0glfFoxFd/VxRTh/mUa+If3PP1zh5FS9rplUuIHKyXLu3T7QK/OF1sP0AdiwVVs
         b4bO0MCtBlA1ifsWUTIalZ8zGIKDcW0xERl2h+fMf2SvxC3zyMlYGMjhkWSBtlQvcS4l
         Rjcg==
X-Gm-Message-State: AOJu0YylOfHx6oKeonJOrj42ifThietVGNNWToCH3Ytjg9e530g/EgjM
	jWLi+AioY+HmkYSiPF28f0HgJw==
X-Google-Smtp-Source: AGHT+IEJGEY4amexJFBuk6nGUupx+3uuYK2eS9VVPKdjmNFzM6tb/kSe0XqcPMG6RIC5yODm69sA6w==
X-Received: by 2002:a05:600c:c3:b0:40c:2671:1e56 with SMTP id u3-20020a05600c00c300b0040c26711e56mr54170wmm.223.1702051143983;
        Fri, 08 Dec 2023 07:59:03 -0800 (PST)
Date: Fri, 8 Dec 2023 15:59:03 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [PATCH] OSStest: use CONFIG_X86_GENERIC for 32-bit x86 kernel
Message-ID: <f681f49e-a9cd-45b8-bba1-527f108c44e4@perard>
References: <20231207080953.27976-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231207080953.27976-1-jgross@suse.com>

On Thu, Dec 07, 2023 at 09:09:53AM +0100, Juergen Gross wrote:
> Today the cpu type for a 32-bit x86 kernel is not specified in the
> used kernel config, resulting in the M686 to be used.
> 
> Instead of using the M686 which isn't even a 64-bit cpu (thus not
> capable to run a Xen guest), use the X86_GENERIC variant which is
> more appropriate.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  ts-kernel-build | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/ts-kernel-build b/ts-kernel-build
> index 719b33aa..d9e033c4 100755
> --- a/ts-kernel-build
> +++ b/ts-kernel-build
> @@ -608,7 +608,10 @@ setopt CONFIG_POWER_RESET_XGENE y
>  setopt CONFIG_RTC_DRV_XGENE y
>  
>  case ${XEN_TARGET_ARCH} in
> -    x86_32) setopt CONFIG_64BIT n ;;
> +    x86_32)
> +	setopt CONFIG_64BIT n
> +	setopt CONFIG_X86_GENERIC y

It would be nice if that was working, but XEN_TARGET_ARCH is never set,
so the change isn't going to work.

I'm preparing patches to set X86_GENERIC on i386 builds, and fixing some
issues.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:01:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:01:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650711.1016461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdHn-0001iX-5I; Fri, 08 Dec 2023 16:01:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650711.1016461; Fri, 08 Dec 2023 16: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 1rBdHn-0001iQ-0c; Fri, 08 Dec 2023 16:01:07 +0000
Received: by outflank-mailman (input) for mailman id 650711;
 Fri, 08 Dec 2023 16:01: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=T8s0=HT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rBdHl-0001iK-7r
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 16:01:05 +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 fd5d99b5-95e2-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 17:01:04 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 E3FCA21C86;
 Fri,  8 Dec 2023 16:01: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 C8E1813335;
 Fri,  8 Dec 2023 16:01:03 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id T3WHL789c2XSBAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 08 Dec 2023 16:01:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd5d99b5-95e2-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702051263; 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=CZ+jGJrLHr0bDYqcpGKcdnv4w5HMpd6emuDtpLdDAHg=;
	b=HD5fRN0o1hc+v+pa6YvamGLVbH0VnVfFhVWAJoa/p24CoRA8d/n1So8cjHdAMMTbadZTnw
	Cfd28RSQfULli5XtNbL7zvsfydJ9MKKOYNGirbIVFFJxYz87AqA+DpH6JNggrUk3giKMr/
	rEmA7Nm7Hw92HegBSQ7hqEUb3FD+q0k=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702051263; 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=CZ+jGJrLHr0bDYqcpGKcdnv4w5HMpd6emuDtpLdDAHg=;
	b=HD5fRN0o1hc+v+pa6YvamGLVbH0VnVfFhVWAJoa/p24CoRA8d/n1So8cjHdAMMTbadZTnw
	Cfd28RSQfULli5XtNbL7zvsfydJ9MKKOYNGirbIVFFJxYz87AqA+DpH6JNggrUk3giKMr/
	rEmA7Nm7Hw92HegBSQ7hqEUb3FD+q0k=
Message-ID: <2f8eda22-d4cd-463f-9a9c-8efaf6843dfb@suse.com>
Date: Fri, 8 Dec 2023 17:01:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] OSStest: use CONFIG_X86_GENERIC for 32-bit x86 kernel
Content-Language: en-US
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org
References: <20231207080953.27976-1-jgross@suse.com>
 <f681f49e-a9cd-45b8-bba1-527f108c44e4@perard>
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: <f681f49e-a9cd-45b8-bba1-527f108c44e4@perard>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------N20y1KnNYbQ2oyoyLuGOonwm"
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -4.17
X-Spamd-Result: default: False [-4.17 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.18)[-0.922];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_TWO(0.00)[2];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -4.17
Authentication-Results: smtp-out1.suse.de;
	none

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------N20y1KnNYbQ2oyoyLuGOonwm
Content-Type: multipart/mixed; boundary="------------0hFK000BAMETCVlTXY96xHPZ";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org
Message-ID: <2f8eda22-d4cd-463f-9a9c-8efaf6843dfb@suse.com>
Subject: Re: [PATCH] OSStest: use CONFIG_X86_GENERIC for 32-bit x86 kernel
References: <20231207080953.27976-1-jgross@suse.com>
 <f681f49e-a9cd-45b8-bba1-527f108c44e4@perard>
In-Reply-To: <f681f49e-a9cd-45b8-bba1-527f108c44e4@perard>

--------------0hFK000BAMETCVlTXY96xHPZ
Content-Type: multipart/mixed; boundary="------------Qoq0CSjvu74VR9mxVpwfk4h7"

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

T24gMDguMTIuMjMgMTY6NTksIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIERl
YyAwNywgMjAyMyBhdCAwOTowOTo1M0FNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gVG9kYXkgdGhlIGNwdSB0eXBlIGZvciBhIDMyLWJpdCB4ODYga2VybmVsIGlzIG5vdCBz
cGVjaWZpZWQgaW4gdGhlDQo+PiB1c2VkIGtlcm5lbCBjb25maWcsIHJlc3VsdGluZyBpbiB0
aGUgTTY4NiB0byBiZSB1c2VkLg0KPj4NCj4+IEluc3RlYWQgb2YgdXNpbmcgdGhlIE02ODYg
d2hpY2ggaXNuJ3QgZXZlbiBhIDY0LWJpdCBjcHUgKHRodXMgbm90DQo+PiBjYXBhYmxlIHRv
IHJ1biBhIFhlbiBndWVzdCksIHVzZSB0aGUgWDg2X0dFTkVSSUMgdmFyaWFudCB3aGljaCBp
cw0KPj4gbW9yZSBhcHByb3ByaWF0ZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+PiAtLS0NCj4+ICAgdHMta2VybmVsLWJ1aWxk
IHwgNSArKysrLQ0KPj4gICAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRl
bGV0aW9uKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3RzLWtlcm5lbC1idWlsZCBiL3RzLWtl
cm5lbC1idWlsZA0KPj4gaW5kZXggNzE5YjMzYWEuLmQ5ZTAzM2M0IDEwMDc1NQ0KPj4gLS0t
IGEvdHMta2VybmVsLWJ1aWxkDQo+PiArKysgYi90cy1rZXJuZWwtYnVpbGQNCj4+IEBAIC02
MDgsNyArNjA4LDEwIEBAIHNldG9wdCBDT05GSUdfUE9XRVJfUkVTRVRfWEdFTkUgeQ0KPj4g
ICBzZXRvcHQgQ09ORklHX1JUQ19EUlZfWEdFTkUgeQ0KPj4gICANCj4+ICAgY2FzZSAke1hF
Tl9UQVJHRVRfQVJDSH0gaW4NCj4+IC0gICAgeDg2XzMyKSBzZXRvcHQgQ09ORklHXzY0QklU
IG4gOzsNCj4+ICsgICAgeDg2XzMyKQ0KPj4gKwlzZXRvcHQgQ09ORklHXzY0QklUIG4NCj4+
ICsJc2V0b3B0IENPTkZJR19YODZfR0VORVJJQyB5DQo+IA0KPiBJdCB3b3VsZCBiZSBuaWNl
IGlmIHRoYXQgd2FzIHdvcmtpbmcsIGJ1dCBYRU5fVEFSR0VUX0FSQ0ggaXMgbmV2ZXIgc2V0
LA0KPiBzbyB0aGUgY2hhbmdlIGlzbid0IGdvaW5nIHRvIHdvcmsuDQoNCk9oLCBob3cgLi4u
IGZ1bm55PyB3ZWlyZD8gc3RyYW5nZT8NCg0KPiANCj4gSSdtIHByZXBhcmluZyBwYXRjaGVz
IHRvIHNldCBYODZfR0VORVJJQyBvbiBpMzg2IGJ1aWxkcywgYW5kIGZpeGluZyBzb21lDQo+
IGlzc3Vlcy4NCg0KVGhhbmtzLA0KDQoNCkp1ZXJnZW4NCg0K
--------------Qoq0CSjvu74VR9mxVpwfk4h7
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-----

--------------Qoq0CSjvu74VR9mxVpwfk4h7--

--------------0hFK000BAMETCVlTXY96xHPZ--

--------------N20y1KnNYbQ2oyoyLuGOonwm
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/Ey8FAmVzPb8FAwAAAAAACgkQsN6d1ii/Ey9e
GAgAk5/0rkveZy0yr6/NMxckQMfoaHMZslhLqsHDrsU3Ue7x7R5+FexK0rqDev7pter9OnBycBS+
vaBZJPWx6OWpsqMXLdW76OyfiQTXsxzY7BG7BWup0BcnizlIB5Gt/nKzVe0LWUUkOVTVbw9f4Du6
Z3m/m9Yte/6/+ygzqmCjvzA53KVA3ebPl1J+h8GfO9iOH2O5TDJpBqPpeleI+ouPTEHVUIs3Y/q+
OGw6UI/ivGv+ib4poHJyEyIJHx6Pj8StoA9hSMYyooHFUWgdKHXZWBk9PWaQzK7kdj+aRjx/G0W3
QsAMzYSq9TmBGgrxQptuOko+pSMu8285A6+YiByciA==
=uVYh
-----END PGP SIGNATURE-----

--------------N20y1KnNYbQ2oyoyLuGOonwm--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:02:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:02:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650716.1016470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdJD-0002Ll-IU; Fri, 08 Dec 2023 16:02:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650716.1016470; Fri, 08 Dec 2023 16:02:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdJD-0002Le-Ft; Fri, 08 Dec 2023 16:02:35 +0000
Received: by outflank-mailman (input) for mailman id 650716;
 Fri, 08 Dec 2023 16:02:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jsQu=HT=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rBdJC-0002KL-3g
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 16:02:34 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 326d5810-95e3-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 17:02:33 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c07ed92fdso23554555e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 08:02:33 -0800 (PST)
Received: from localhost.localdomain
 (cpc92320-cmbg19-2-0-cust35.5-4.cable.virginm.net. [82.13.64.36])
 by smtp.gmail.com with ESMTPSA id
 s3-20020a5d69c3000000b00333320cf08bsm2300535wrw.102.2023.12.08.08.02.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 08:02:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 326d5810-95e3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702051352; x=1702656152; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=8jUqU0bmKI0qcZGuspvx5ymNI9NbJaI4Epk9AOYOeR0=;
        b=cHgMXWrUW04Z8wooL8vgvU1Kc2ZM1hTSuHw+RNwDBzIZvv7ywKuFFpzi3eyD5ydt46
         ICTPs3tM6IV4yEUK17MQerofMd1hpj6HVqJXLPy6EKu2cnC9EmT6pWfANDJfj51plvz0
         pJ/U62Lf6Lb4bk15xaTl5b8yyWDhnO7yTKKg4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702051352; x=1702656152;
        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=8jUqU0bmKI0qcZGuspvx5ymNI9NbJaI4Epk9AOYOeR0=;
        b=rSU37cCj/9qAqUVftxshU9bur7Xta3KxHRAykjCilNTnyVYIpVmE9z+yuVDzUxgFZ6
         g5sn1eqvcCOPYLa2LSauw183Nflvb//27O57M3HY9qQ5UXnfhTmzJwL62mDcOOhSwI4l
         vg1WrfblDShCl9O3qmmz3B6iNf5iOxy2YRw88g8YnIQ0dgRl8tuMxOoHYsHWf16gNNNn
         n5fVL+4BfjDJB/CC9JUkNA+cbXIbSHaefoWfWlwWwWd7O3yMM6zspsJ8UEB4N5cGgzYY
         5UO7vm/Sh0Cs2exQDWq6hBLfVoLesQtDv1KK6T7d4QvyFOKcmRbSujo11T2Hc5NzmA/o
         9Mdg==
X-Gm-Message-State: AOJu0Yx0UTEfhk7LAsXypr3SbM1y+FiF5WdH6y8o/iH6yIOWUk891Gxs
	AX+K+xcx0HUh8DqxsoJ2MYdY4eaXte5gaVrwTtQ=
X-Google-Smtp-Source: AGHT+IFD9B5hxpePmM/ioNpTGABhgoA/5pqWlP5WyBPQOeQfKTEEYVavfthwNSNiY5aRZYg6hzuZsg==
X-Received: by 2002:a05:600c:3187:b0:40c:2b01:e09e with SMTP id s7-20020a05600c318700b0040c2b01e09emr115216wmp.47.1702051351601;
        Fri, 08 Dec 2023 08:02:31 -0800 (PST)
From: Anthony PERARD <anthony.perard@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [OSSTEST PATCH 0/3] Set CONFIG_X86_GENERIC=y for i386 kernel build
Date: Fri,  8 Dec 2023 16:02:23 +0000
Message-Id: <20231208160226.14739-1-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

CONFIG_X86_GENERIC=y and fixes around arch specific config values.

Thanks,

Anthony PERARD (3):
  create_build_jobs: Set reset pvops_kconfig_overrides
  create_build_jobs: Enable X86_GENERIC for i386 kernel pvops jobs.
  ts-kernel-build: Remove use of $XEN_TARGET_ARCH

 mfi-common      | 12 ++++++++----
 ts-kernel-build | 13 -------------
 2 files changed, 8 insertions(+), 17 deletions(-)

-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:02:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:02:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650717.1016475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdJD-0002P8-Rp; Fri, 08 Dec 2023 16:02:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650717.1016475; Fri, 08 Dec 2023 16:02:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdJD-0002Oz-Nq; Fri, 08 Dec 2023 16:02:35 +0000
Received: by outflank-mailman (input) for mailman id 650717;
 Fri, 08 Dec 2023 16:02:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jsQu=HT=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rBdJC-0002KL-PV
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 16:02:34 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 32d90217-95e3-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 17:02:34 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-33350fcb2c7so1662199f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 08:02:34 -0800 (PST)
Received: from localhost.localdomain
 (cpc92320-cmbg19-2-0-cust35.5-4.cable.virginm.net. [82.13.64.36])
 by smtp.gmail.com with ESMTPSA id
 s3-20020a5d69c3000000b00333320cf08bsm2300535wrw.102.2023.12.08.08.02.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 08:02:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32d90217-95e3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702051352; x=1702656152; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4+zyK/oiTkm1dgGGOn54iVXU0W1VNBdMRp0zkH25QpU=;
        b=WsHDQYryihwTO81AxY6ZSk7THz5P6uH8YWUvt0AJnbL+AK7HGjH64fqQxnegaukXa0
         W37/An6F4QQRI0NtRQ1yKUKbfNKXC4RIgsY8PEeEPp9J+0Cn/K7Z1VV6vyM7BlN3aEcV
         LMT+eT7HqTfttJJ1LJfe+6tlfyXJFEuYzazuw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702051352; x=1702656152;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4+zyK/oiTkm1dgGGOn54iVXU0W1VNBdMRp0zkH25QpU=;
        b=D7+5goBeZiFU5NCCOIrW0vY9I2Y2M6vDzDO9/UCTXrkDc6SHollao/B8L/waC+4k2w
         kr9MZ59zxN9xT3kFyvafmD48w1OVowr3VL8Qu6/CRuIGPPhB1e5xxUldK59G5WdFm4Qr
         +9OqaZkfneZ3vx9sZCZXL+0h6qTh/JxR7oah0R1mSR2Mv3pYs8NkfapU1bBexRLyOGJ9
         CSMxpF1P9igpM1Iw/TzpX/+GAeXciMFslSDbytTjweeKMAQ4hcyVLdCbnncKlaytT2qH
         7sErAoW6uZASKGeYF2c38CBLaEv91IGhO39eYCLTBm0XlJ9orMF5ox9WJ0n2aD0JHvCY
         TB2Q==
X-Gm-Message-State: AOJu0Yze+yZZYJFZevseHOOM+SSvvWQI1S/O72EAQXF2w2pD3hO3EOHM
	jjPZ1Yy5TpjGPD31bZQoYthrovcwneOwU1vD0kU=
X-Google-Smtp-Source: AGHT+IFQTdIlvsMdCJ+RHxBahKu2ud4weU+5uTYJfRDWIuC1a6AKQKRCP34gb8bDVY+ezFs6Mp73Tw==
X-Received: by 2002:a05:6000:369:b0:333:2fd2:8166 with SMTP id f9-20020a056000036900b003332fd28166mr153110wrf.131.1702051352114;
        Fri, 08 Dec 2023 08:02:32 -0800 (PST)
From: Anthony PERARD <anthony.perard@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [OSSTEST PATCH 1/3] create_build_jobs: Set reset pvops_kconfig_overrides
Date: Fri,  8 Dec 2023 16:02:24 +0000
Message-Id: <20231208160226.14739-2-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231208160226.14739-1-anthony.perard@citrix.com>
References: <20231208160226.14739-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Those two variables, and especially "pvops_kconfig_overrides", aren't
reset for the next loop of `for arch ...`. So when
"pvops_kconfig_overrides" is for "armhf", it is also set for "arm64"
as this is the next "arch" in the loop.

Avoid this by setting default values for the variables before the
`case` command.

This changes Linux arm64 builds which will not have "CONFIG_EXT4_FS=y"
anymore, but should get "CONFIG_EXT4_FS=m" instead from
`ts-kernel-build`. But resulting build still have "CONFIG_EXT4_FS=y",
so no change.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 mfi-common | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/mfi-common b/mfi-common
index 51eb4a9c..1a131c27 100644
--- a/mfi-common
+++ b/mfi-common
@@ -284,6 +284,11 @@ create_build_jobs () {
 
     build_matrix_branch_filter_callback || continue
 
+    pvops_kconfig_overrides=""
+    pvops_kernel="
+      tree_linux=$TREE_LINUX
+      revision_linux=${REVISION_LINUX:-${DEFAULT_REVISION_LINUX}}
+    "
     case "$arch" in
     armhf)
       case "$xenbranch" in
@@ -314,12 +319,6 @@ create_build_jobs () {
         revision_linux=${REVISION_LINUX_ARM:-${DEFAULT_REVISION_LINUX_ARM}}
       "
       ;;
-    *)
-      pvops_kernel="
-        tree_linux=$TREE_LINUX
-        revision_linux=${REVISION_LINUX:-${DEFAULT_REVISION_LINUX}}
-      "
-      ;;
     esac
 
     case "$arch" in
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:02:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:02:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650718.1016491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdJF-0002qb-3r; Fri, 08 Dec 2023 16:02:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650718.1016491; Fri, 08 Dec 2023 16: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 1rBdJF-0002qU-17; Fri, 08 Dec 2023 16:02:37 +0000
Received: by outflank-mailman (input) for mailman id 650718;
 Fri, 08 Dec 2023 16:02: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=jsQu=HT=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rBdJD-0002KL-Po
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 16:02:35 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 339894f1-95e3-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 17:02:35 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-332c0c32d19so2680838f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 08:02:35 -0800 (PST)
Received: from localhost.localdomain
 (cpc92320-cmbg19-2-0-cust35.5-4.cable.virginm.net. [82.13.64.36])
 by smtp.gmail.com with ESMTPSA id
 s3-20020a5d69c3000000b00333320cf08bsm2300535wrw.102.2023.12.08.08.02.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 08:02:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 339894f1-95e3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702051354; x=1702656154; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Fr3W+U/Mp2tq5rXlzz6Wl7JrCdke4I/2nydwyKcZdGM=;
        b=uiY2U8286Iv7/0a6l9LLCoacW0B5EBA5gmBKIlRk58CfTmEQrU1946HPcRDJrIXiJY
         YnIjXvX8hAldIO6qRUjzHG9EfeAAc6nmymIGBXnGB0Bp5w9Ncs1jWedhDnLkaTglLp5b
         fPZ4KhxRjzM3aqrw+VOUrBZj3namFOUGLp7ow=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702051354; x=1702656154;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Fr3W+U/Mp2tq5rXlzz6Wl7JrCdke4I/2nydwyKcZdGM=;
        b=Ec7npX82R46h5iKX8aB/DiLWutKZegAwU+UYokfU6TfURb10VDNKSwNkJSl8VIJvW+
         B3Pu4va+vfctm3Sc0U+8U0J8Pe8uZ6/7tZVD1z5+JvcrW4wYAHplBjdssmaffNej+A6R
         x6OibPn8nbRFsSr/cL1II8A2wYZ1Tog33KicHWwNapO2B4luU9PQ8KuDqYph+azUG2lQ
         b+BEFPL5PV2uGXrPj3mdSc6OUQidKoGYK4qxX2j6c114qdrCzQa6HGsY8mgi+YObw3tJ
         cAPOZCt4ykO2o2LJrw2pUi1yU4fEl5OkUaMKsRjcCBn8Y0pKCEi5zvnrGqgu9/zHo3ay
         mJBg==
X-Gm-Message-State: AOJu0YyJH/WupZQqFwNNeqTA3TwGeaRV9QrGcSTJn4lVY/7h5QnvClvR
	hfZ8p0dGgdLojjGWbC8MLAK93Fe0lCuR49CQ18Q=
X-Google-Smtp-Source: AGHT+IE9xrxUFQDJ3sF2wXBv+u9YgkgTTACfK/+HSMfPlKpwhtmu9Hkd5sOKBDQPgvSP24m325ZWzA==
X-Received: by 2002:a05:6000:136d:b0:333:145a:759b with SMTP id q13-20020a056000136d00b00333145a759bmr155989wrz.20.1702051353986;
        Fri, 08 Dec 2023 08:02:33 -0800 (PST)
From: Anthony PERARD <anthony.perard@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>
Subject: [OSSTEST PATCH 2/3] create_build_jobs: Enable X86_GENERIC for i386 kernel pvops jobs.
Date: Fri,  8 Dec 2023 16:02:25 +0000
Message-Id: <20231208160226.14739-3-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231208160226.14739-1-anthony.perard@citrix.com>
References: <20231208160226.14739-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This is following a failure to build "arch/x86/xen/enlighten.c" in
build-i386-pvops jobs with linux 968f35f4ab1c ("Merge tag
'v6.7-rc3-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6")
in linux-linus branch.

Suggested-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 mfi-common | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/mfi-common b/mfi-common
index 1a131c27..d8d167fd 100644
--- a/mfi-common
+++ b/mfi-common
@@ -319,6 +319,11 @@ create_build_jobs () {
         revision_linux=${REVISION_LINUX_ARM:-${DEFAULT_REVISION_LINUX_ARM}}
       "
       ;;
+    i386)
+      pvops_kconfig_overrides="
+        kconfig_override_y=CONFIG_X86_GENERIC
+      "
+      ;;
     esac
 
     case "$arch" in
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:02:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:02:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650719.1016500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdJG-00036t-C0; Fri, 08 Dec 2023 16:02:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650719.1016500; Fri, 08 Dec 2023 16:02:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdJG-00036k-8g; Fri, 08 Dec 2023 16:02:38 +0000
Received: by outflank-mailman (input) for mailman id 650719;
 Fri, 08 Dec 2023 16: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=jsQu=HT=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rBdJE-0002KL-Q1
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 16:02:36 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3442881a-95e3-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 17:02:36 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c2a444311so21202975e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 08:02:36 -0800 (PST)
Received: from localhost.localdomain
 (cpc92320-cmbg19-2-0-cust35.5-4.cable.virginm.net. [82.13.64.36])
 by smtp.gmail.com with ESMTPSA id
 s3-20020a5d69c3000000b00333320cf08bsm2300535wrw.102.2023.12.08.08.02.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 08:02:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3442881a-95e3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702051355; x=1702656155; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pSsVO6gcxnExdYHK0SsUQHNQOnlSg2S/CO5a381FM3A=;
        b=R+AoFSFRuq7slvwbae3niNQh2cKT285JRQ1iC2gemo0Z5SsEJXbQ2W8M/L9UpxWMVo
         pxFOhpa2Uv+51HyvcsuYvHbECPgrH5X50N0HQKFE6X3mjtiW0pSuyg3IZf5IutM3+tBY
         S9pRnl/YXQcy0NpM7RLJ7xbuWWxo7xkyvBSKI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702051355; x=1702656155;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=pSsVO6gcxnExdYHK0SsUQHNQOnlSg2S/CO5a381FM3A=;
        b=sEDAcyALt/9zS9z2/xcR2SqAbZhXPog6GvHlt3WnUTO8m05fDCX9ULi5XHTbVaOY3g
         +9b9m/72ZdfRnDn4zfLg+nWMKplOC3/gC/B8Sdnu1apMRwAhztkRRvgcXMu745ZUMo4F
         Og+E2lhmAKqT+D+CAV4u519/mh8zIz7HTc0ZfZp9cRNY7iM5S+2mFprt8zn0PuX6+x45
         xGtfGtcByOzU8Rh5D/6fl0A5hNJ1/INRFgV6MHfgaNAWLd99Z34JwHeDGCyTvCBIflts
         NMelO+o+CFKQq4v1fyq2uASSQRm0TDp9ohYKw54w2vKRvDchKTrhimRIxQxOe4mVdatB
         LtYA==
X-Gm-Message-State: AOJu0Yx1WNEponJ76QGiR7z2tky9q2VfDr06vPbUfQq4Sk+AHwdFJMpb
	zfiFO8Vh1a2awSxmYMwbafmURON69vZyE1QDYBg=
X-Google-Smtp-Source: AGHT+IHLx86dhJ8ZTjptI1zz7HBOK2kUyJA7NCPvp3MoIQWN5+bUntmMsRNRNoSiTKPZV8uooukTjQ==
X-Received: by 2002:a05:600c:1f1a:b0:40b:5f03:b447 with SMTP id bd26-20020a05600c1f1a00b0040b5f03b447mr45827wmb.361.1702051355214;
        Fri, 08 Dec 2023 08:02:35 -0800 (PST)
From: Anthony PERARD <anthony.perard@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [OSSTEST PATCH 3/3] ts-kernel-build: Remove use of $XEN_TARGET_ARCH
Date: Fri,  8 Dec 2023 16:02:26 +0000
Message-Id: <20231208160226.14739-4-anthony.perard@citrix.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231208160226.14739-1-anthony.perard@citrix.com>
References: <20231208160226.14739-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

osstest doesn't set $XEN_TARGET_ARCH, and this is a Xen build
variable, not a Linux build one. So, this code have been running with
an empty $XEN_TARGET_ARCH for a while which mean none of those
`setopt` has run in a while.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 ts-kernel-build | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/ts-kernel-build b/ts-kernel-build
index 719b33aa..05da9a7f 100755
--- a/ts-kernel-build
+++ b/ts-kernel-build
@@ -607,19 +607,6 @@ setopt CONFIG_AHCI_XGENE y
 setopt CONFIG_POWER_RESET_XGENE y
 setopt CONFIG_RTC_DRV_XGENE y
 
-case ${XEN_TARGET_ARCH} in
-    x86_32) setopt CONFIG_64BIT n ;;
-    x86_64)
-	setopt CONFIG_64BIT y
-	setopt CONFIG_IA32_EMULATION y
-	setopt CONFIG_IA32_AOUT n
-	setopt CONFIG_CRYPTO_AES_X86_64 n
-	setopt CONFIG_CRYPTO_SALSA20_X86_64 n
-	setopt CONFIG_CRYPTO_TWOFISH_X86_64 n
-	;;
-    *) ;;
-esac
-
 # Disable components that don't build
 setopt CONFIG_TEGRA_HOST1X n
 
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:04:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:04:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650736.1016511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdL8-0004Yb-Pg; Fri, 08 Dec 2023 16:04:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650736.1016511; Fri, 08 Dec 2023 16:04:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdL8-0004YU-Lk; Fri, 08 Dec 2023 16:04:34 +0000
Received: by outflank-mailman (input) for mailman id 650736;
 Fri, 08 Dec 2023 16:04: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=T8s0=HT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rBdL7-0004YH-AJ
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 16:04:33 +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 78a3e816-95e3-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 17:04:31 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 6A93621C85;
 Fri,  8 Dec 2023 16:04:30 +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 4F5C513335;
 Fri,  8 Dec 2023 16:04:30 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id uspkEY4+c2XABQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 08 Dec 2023 16:04: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: 78a3e816-95e3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702051470; 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=d6HvQdxCqcYProiLvIK0Ob2qIKKqMENDogB7txp9m6Q=;
	b=OnRAj1kXFMT1Vmq9fZrKHl8g/dXuu1Lvsq1a6mpuLP8EpuwTafnvxfuxKJpfcoEAoW4yjP
	xHM0919wIWYXOr0NYA1KT1Y8LCyUBzg/J/4HXcmkKKC+r0F6YfOJ67obtYFlJDtmShP9ik
	ZG0kLihxlstkbx2GxZrN3QF6Oogtgwo=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702051470; 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=d6HvQdxCqcYProiLvIK0Ob2qIKKqMENDogB7txp9m6Q=;
	b=OnRAj1kXFMT1Vmq9fZrKHl8g/dXuu1Lvsq1a6mpuLP8EpuwTafnvxfuxKJpfcoEAoW4yjP
	xHM0919wIWYXOr0NYA1KT1Y8LCyUBzg/J/4HXcmkKKC+r0F6YfOJ67obtYFlJDtmShP9ik
	ZG0kLihxlstkbx2GxZrN3QF6Oogtgwo=
Message-ID: <613a6a35-80e2-4020-98b8-3fa3ff9074f7@suse.com>
Date: Fri, 8 Dec 2023 17:04:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] OSStest: use CONFIG_X86_GENERIC for 32-bit x86 kernel
Content-Language: en-US
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org
References: <20231207080953.27976-1-jgross@suse.com>
 <f681f49e-a9cd-45b8-bba1-527f108c44e4@perard>
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: <f681f49e-a9cd-45b8-bba1-527f108c44e4@perard>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------DGtNXM0bNlCijcahtGKURl3V"
X-Spam-Level: ******************
X-Spam-Score: 18.32
X-Spam-Flag: NO
X-Spamd-Result: default: False [-8.89 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_TWO(0.00)[2];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 SIGNED_PGP(-2.00)[];
	 NEURAL_HAM_SHORT(-0.19)[-0.963];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Rspamd-Server: rspamd1
X-Spam-Level: 
X-Rspamd-Queue-Id: 6A93621C85
X-Spam-Score: -8.89
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=OnRAj1kX;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=pass (policy=quarantine) header.from=suse.com

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------DGtNXM0bNlCijcahtGKURl3V
Content-Type: multipart/mixed; boundary="------------sCU2OO74rA9Sez0rn145LwfL";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org
Message-ID: <613a6a35-80e2-4020-98b8-3fa3ff9074f7@suse.com>
Subject: Re: [PATCH] OSStest: use CONFIG_X86_GENERIC for 32-bit x86 kernel
References: <20231207080953.27976-1-jgross@suse.com>
 <f681f49e-a9cd-45b8-bba1-527f108c44e4@perard>
In-Reply-To: <f681f49e-a9cd-45b8-bba1-527f108c44e4@perard>

--------------sCU2OO74rA9Sez0rn145LwfL
Content-Type: multipart/mixed; boundary="------------MJsyf0CR80lMF8DEbU7Ic68n"

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

T24gMDguMTIuMjMgMTY6NTksIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIERl
YyAwNywgMjAyMyBhdCAwOTowOTo1M0FNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gVG9kYXkgdGhlIGNwdSB0eXBlIGZvciBhIDMyLWJpdCB4ODYga2VybmVsIGlzIG5vdCBz
cGVjaWZpZWQgaW4gdGhlDQo+PiB1c2VkIGtlcm5lbCBjb25maWcsIHJlc3VsdGluZyBpbiB0
aGUgTTY4NiB0byBiZSB1c2VkLg0KPj4NCj4+IEluc3RlYWQgb2YgdXNpbmcgdGhlIE02ODYg
d2hpY2ggaXNuJ3QgZXZlbiBhIDY0LWJpdCBjcHUgKHRodXMgbm90DQo+PiBjYXBhYmxlIHRv
IHJ1biBhIFhlbiBndWVzdCksIHVzZSB0aGUgWDg2X0dFTkVSSUMgdmFyaWFudCB3aGljaCBp
cw0KPj4gbW9yZSBhcHByb3ByaWF0ZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+PiAtLS0NCj4+ICAgdHMta2VybmVsLWJ1aWxk
IHwgNSArKysrLQ0KPj4gICAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRl
bGV0aW9uKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3RzLWtlcm5lbC1idWlsZCBiL3RzLWtl
cm5lbC1idWlsZA0KPj4gaW5kZXggNzE5YjMzYWEuLmQ5ZTAzM2M0IDEwMDc1NQ0KPj4gLS0t
IGEvdHMta2VybmVsLWJ1aWxkDQo+PiArKysgYi90cy1rZXJuZWwtYnVpbGQNCj4+IEBAIC02
MDgsNyArNjA4LDEwIEBAIHNldG9wdCBDT05GSUdfUE9XRVJfUkVTRVRfWEdFTkUgeQ0KPj4g
ICBzZXRvcHQgQ09ORklHX1JUQ19EUlZfWEdFTkUgeQ0KPj4gICANCj4+ICAgY2FzZSAke1hF
Tl9UQVJHRVRfQVJDSH0gaW4NCj4+IC0gICAgeDg2XzMyKSBzZXRvcHQgQ09ORklHXzY0QklU
IG4gOzsNCj4+ICsgICAgeDg2XzMyKQ0KPj4gKwlzZXRvcHQgQ09ORklHXzY0QklUIG4NCj4+
ICsJc2V0b3B0IENPTkZJR19YODZfR0VORVJJQyB5DQo+IA0KPiBJdCB3b3VsZCBiZSBuaWNl
IGlmIHRoYXQgd2FzIHdvcmtpbmcsIGJ1dCBYRU5fVEFSR0VUX0FSQ0ggaXMgbmV2ZXIgc2V0
LA0KPiBzbyB0aGUgY2hhbmdlIGlzbid0IGdvaW5nIHRvIHdvcmsuDQo+IA0KPiBJJ20gcHJl
cGFyaW5nIHBhdGNoZXMgdG8gc2V0IFg4Nl9HRU5FUklDIG9uIGkzODYgYnVpbGRzLCBhbmQg
Zml4aW5nIHNvbWUNCj4gaXNzdWVzLg0KDQpPaCwgQlRXLCBJIHRoaW5rIGl0IG1pZ2h0IGJl
IGEgZ29vZCBpZGVhIHRvIGFkZCBhIE1BSU5UQUlORVJTIGVudHJ5IGluIHRoZQ0KWGVuIGdp
dCB0cmVlIGZvciBPU1N0ZXN0LiBJIHdhcyBwcmV0dHkgc3VyZSB5b3UgYXJlIHRoZSBvbmUg
dG8gc2VuZCBwYXRjaGVzDQp0bywgYnV0IG1heWJlIHNvbWVvbmUgZWxzZSBzaG91bGQgcmVj
ZWl2ZSB0aGVtPw0KDQoNCkp1ZXJnZW4NCg==
--------------MJsyf0CR80lMF8DEbU7Ic68n
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-----

--------------MJsyf0CR80lMF8DEbU7Ic68n--

--------------sCU2OO74rA9Sez0rn145LwfL--

--------------DGtNXM0bNlCijcahtGKURl3V
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/Ey8FAmVzPo0FAwAAAAAACgkQsN6d1ii/Ey8p
UQgAhFbwLrcG6ld0jk5ex+yeKNuG3kQVkUrk7NU4gF+VulVhOnuJFuMFVDk5Il2vj33bchoM6E/Q
G/76ZgKtAXYRdPRFDVb/NMyC8dpd7/Y7vBDxpbKMXS+Y4AaorSgNvLAF81Qjl58iPQoS5Q72gwuH
U5nEzZ4xu7q4VaDedVu+pM355dUsQJU060NNfgmkKGsIXPwenF72SbRs6fx6h5oF2nrwi+dsjZFa
Uuosj5ljEv86807DOOFY2wL0TnlNb9e+Wcf+Jg13QY7xHPWzgOoHLsFcQUDEPJNpH4fZgMXDzdu0
kZ0Rgv9j768nWrYhHCYOqVh7gnbPK7SJ54IrJr8gxg==
=SOeN
-----END PGP SIGNATURE-----

--------------DGtNXM0bNlCijcahtGKURl3V--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:17:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:17:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650745.1016521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdX4-0000NY-U6; Fri, 08 Dec 2023 16:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650745.1016521; Fri, 08 Dec 2023 16:16: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 1rBdX4-0000NQ-RL; Fri, 08 Dec 2023 16:16:54 +0000
Received: by outflank-mailman (input) for mailman id 650745;
 Fri, 08 Dec 2023 16:16: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=jsQu=HT=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rBdX3-0000NC-E8
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 16:16:53 +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 31d70bf1-95e5-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 17:16:51 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3333074512bso1793925f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Dec 2023 08:16:51 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 k42-20020a05600c1caa00b003fe1fe56202sm3289532wms.33.2023.12.08.08.16.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Dec 2023 08:16:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31d70bf1-95e5-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702052211; x=1702657011; 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=Unv5qxg5cVD5p/3hOrls6zA2KtHkcXvU/wayCqF1XvI=;
        b=RKAxB8qXIjXc7bMXkmy9m6cJTcNdw6o+CkXZF/mZJtGZ+BJfvBhrn+bAWPJrfCNEha
         CUuY7y+IUP4jAeKBovMWyjlZaHflz3KVy/q5Z8HSb3oEDS39qoqoe4vCdx0qOgkBVob2
         h0iTSa7NCGR8bCpjDkLA7Rzhm6Smp3po55ctU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702052211; x=1702657011;
        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=Unv5qxg5cVD5p/3hOrls6zA2KtHkcXvU/wayCqF1XvI=;
        b=rNHjIQcKvZKro8hkp9zBJAR6LGfU1PKaO3q5WQspevysjZgFli2onG2nbrwG8Gw8uY
         N38/ZrRogKfdAf1K1N/FhUFdZAUZZsYXhtXFJlqcjT26XhmPreQCb49v9lf80/q/5RjV
         ZUXhZzgKxgqSfBF+imQN7EoO9gwFMDCnrbtuoxxl28ooC9oThqlCMJqUjiebdHMsrJwc
         IDHoyPFKYWxxBEqjjlY4wyeTKXszgfOEaXW+mnrfGMYQJaF9Xo7ZQ3vCyz/QR42kkn8S
         wJ1Ux4glTZm+Er5TlltUaJoZR2nEqaRT1WN83vARHGK9y3TWb/HJgFKmTp3P0VqO/f+G
         fw3A==
X-Gm-Message-State: AOJu0YxsDLsirTxAG+aF7106mH5hxlJwKZ+xXJqP/IIyUcp0x8vW1eZV
	gMXoGxbGpY1ZqDpZbU27fKzhsg==
X-Google-Smtp-Source: AGHT+IEVUBF2EtyMUsTHaOkrvyW3VJ11cb1dvw2kc6Is9L6xJ9BT5WZlnZvtphX7nUEyS0OlBtyLew==
X-Received: by 2002:a05:600c:19cb:b0:40b:5e56:7b49 with SMTP id u11-20020a05600c19cb00b0040b5e567b49mr202274wmq.146.1702052210671;
        Fri, 08 Dec 2023 08:16:50 -0800 (PST)
Date: Fri, 8 Dec 2023 16:16:49 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
	Julien Grall <julien@xen.org>
Subject: Re: [PATCH v2 5/5] tools/xenstored: remove "-N" command line option
Message-ID: <f8ddd1ee-984f-4c54-8ac8-e65f430718f4@perard>
References: <20231121114048.31294-1-jgross@suse.com>
 <20231121114048.31294-6-jgross@suse.com>
 <fe647c65-1092-4a25-9af1-3528ac69f682@citrix.com>
 <4add391b-cee8-4af3-be1f-56078e33e32d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <4add391b-cee8-4af3-be1f-56078e33e32d@suse.com>

On Fri, Dec 08, 2023 at 04:58:52PM +0100, Juergen Gross wrote:
> On 08.12.23 16:46, Andrew Cooper wrote:
> > On 21/11/2023 11:40 am, Juergen Gross wrote:
> > > The "-N" (do not daemonize) command line option is of questionable use:
> > > its sole purpose seems to be to aid debugging of xenstored by making it
> > > easier to start xenstored under gdb, or to see any debug messages
> > > easily.
> > > 
> > > Debug messages can as well be sent to syslog(), while gdb can be
> > > attached to the daemon easily. The only not covered case is an error
> > > while initializing xenstored, but this could be handled e.g. by saving
> > > a core dump, which can be analyzed later.
> > > 
> > > The call of talloc_enable_leak_report_full() done only with "-N"
> > > specified is no longer needed, as the same can be achieved via
> > > "xenstore-control memreport".
> > > 
> > > Signed-off-by: Juergen Gross <jgross@suse.com>
> > 
> > Systemd wants daemons to not fork, because systemd can start them up in
> > a better-prescribed environment than deamonise() can make.
> > 
> > It was a lazy port to system which has caused us not to be using -N in
> > the first place.
> > 
> > So no - I think this option specifically wants to stay, and the systemd
> > integration improved.
> 
> The problem with this approach is that we have some functionality in the
> launch-xenstore script relying on [o]xenstored coming back after having
> forked off the daemon: we are setting the oom-score, which can be done

It's perfectly reasonable to bane the use of "-N" when using
`./launch-xenstore` to start xenstored. It doesn't mean that the option
needs to be removed from xenstored.

> only when knowing the process id.
> 
> So we need a solution for this problem before we can really encourage
> users to use the -N option.
> 
> Please note that setting the oom-score from within xenstored was rejected
> back when I posted a patch in this regard, especially as it is specific to
> Linux. Additionally this would mean we need to add this functionality to
> xenstored AND oxenstored.

There's still a world where -N can be used, and oom-score can be set,
I'm pretty sure that can be done with an hand-crafted "systemd.service"
file. One probably need to have something like "OOMPolicy=" or
"OOMScoreAdjust=" in their service file, and start the `xenstored`
daemon of their choice directly, even with -N as systemd can detect when
the daemon is ready because we use sd_notify() (at least in cxenstored).


So, I think we should keep -N.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:31:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:31:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650751.1016530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdlF-0006IO-5X; Fri, 08 Dec 2023 16:31:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650751.1016530; Fri, 08 Dec 2023 16: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 1rBdlF-0006IH-2f; Fri, 08 Dec 2023 16:31:33 +0000
Received: by outflank-mailman (input) for mailman id 650751;
 Fri, 08 Dec 2023 16:31: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 1rBdlD-0006I7-MB; Fri, 08 Dec 2023 16:31: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 1rBdlD-0002wf-9E; Fri, 08 Dec 2023 16:31: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 1rBdlC-0007f9-Rf; Fri, 08 Dec 2023 16:31:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBdlC-00068r-RB; Fri, 08 Dec 2023 16:31:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=ld+rJ75yMQe8HQFCpQpKTvNAwTkC0vvvrON6A7+8U6k=; b=gCsDfHWk5yuaf9hLPfj7/pYwob
	MLFhNnlWzV/lR1lvA8DiD/3Y8KSg+VbbK2zdxUUqNS0YRVhxQK16/Kytu/R9pzPDPkxMh8CKry2IX
	x7xPnFUPzyB3gWgYd39TwAbQz9JI83T+eODz5gKGy3dnFRh8yfj0MDuqmUJx7vXyycBo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184038-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184038: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=2cd9d5f6fa710e9a8ee810212081f86702114d2f
X-Osstest-Versions-That:
    ovmf=eccdab611c01aa40b6cefcfbcb4d23e54b4c0ec6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 08 Dec 2023 16:31:30 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 2cd9d5f6fa710e9a8ee810212081f86702114d2f
baseline version:
 ovmf                 eccdab611c01aa40b6cefcfbcb4d23e54b4c0ec6

Last test of basis   184028  2023-12-07 20:11:01 Z    0 days
Testing same since   184038  2023-12-08 13:43:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Gerd Hoffmann <kraxel@redhat.com>
  Jiaxin Wu <jiaxin.wu@intel.com>
  Laszlo Ersek <lersek@redhat.com>
  Michael Roth <michael.roth@amd.com>
  Page Chen <paiching_chen@apple.com>
  Wu, Jiaxin <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    
 test-amd64-i386-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
   eccdab611c..2cd9d5f6fa  2cd9d5f6fa710e9a8ee810212081f86702114d2f -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:34:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:34:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650756.1016541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdo6-0007RP-Kc; Fri, 08 Dec 2023 16:34:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650756.1016541; Fri, 08 Dec 2023 16:34: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 1rBdo6-0007RI-Gf; Fri, 08 Dec 2023 16:34:30 +0000
Received: by outflank-mailman (input) for mailman id 650756;
 Fri, 08 Dec 2023 16:34:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=T8s0=HT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rBdo5-0007RC-C6
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 16:34:29 +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 a673a2c7-95e7-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 17:34:26 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 0DA5621999;
 Fri,  8 Dec 2023 16:34:25 +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 DFA1712FF7;
 Fri,  8 Dec 2023 16:34:24 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id eoutNJBFc2UVDgAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 08 Dec 2023 16:34: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: a673a2c7-95e7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702053265; 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=HV/pFgSwCj5Tr6tyH6qo3D/hs1R6XPI6xEerj92rkkI=;
	b=SwWKV9YJGH9VCQu/MnHNESP04hcgREus7eR6NxovDjyOUF5d5eNDk9/4vSmEgBjMbhCFVc
	4sc23T/8lrpUp9mFPEsCPucSSgMmqd3LP+D8EShurGQ5fTNgaHnwnXqfqPJUeaVWFCNcie
	Vi1XFtxBYQf+PbyZ289d24tRoDvthz8=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702053265; 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=HV/pFgSwCj5Tr6tyH6qo3D/hs1R6XPI6xEerj92rkkI=;
	b=SwWKV9YJGH9VCQu/MnHNESP04hcgREus7eR6NxovDjyOUF5d5eNDk9/4vSmEgBjMbhCFVc
	4sc23T/8lrpUp9mFPEsCPucSSgMmqd3LP+D8EShurGQ5fTNgaHnwnXqfqPJUeaVWFCNcie
	Vi1XFtxBYQf+PbyZ289d24tRoDvthz8=
Message-ID: <aa018dc7-b6e3-4790-8d2a-b1b55be2e1ea@suse.com>
Date: Fri, 8 Dec 2023 17:34:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [OSSTEST PATCH 2/3] create_build_jobs: Enable X86_GENERIC for
 i386 kernel pvops jobs.
Content-Language: en-US
To: Anthony PERARD <anthony.perard@citrix.com>, xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>
References: <20231208160226.14739-1-anthony.perard@citrix.com>
 <20231208160226.14739-3-anthony.perard@citrix.com>
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: <20231208160226.14739-3-anthony.perard@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Ya1B4JJJ0tGZw2sVfWNJBn3U"
X-Spam-Level: 
X-Spam-Score: -2.51
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -3.16
X-Spamd-Result: default: False [-3.16 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.97)[86.80%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[3];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Ya1B4JJJ0tGZw2sVfWNJBn3U
Content-Type: multipart/mixed; boundary="------------eZpBsvGtoA2qk06Np5WbhOC0";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@citrix.com>, xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>
Message-ID: <aa018dc7-b6e3-4790-8d2a-b1b55be2e1ea@suse.com>
Subject: Re: [OSSTEST PATCH 2/3] create_build_jobs: Enable X86_GENERIC for
 i386 kernel pvops jobs.
References: <20231208160226.14739-1-anthony.perard@citrix.com>
 <20231208160226.14739-3-anthony.perard@citrix.com>
In-Reply-To: <20231208160226.14739-3-anthony.perard@citrix.com>

--------------eZpBsvGtoA2qk06Np5WbhOC0
Content-Type: multipart/mixed; boundary="------------IZRnaS30HpGaz2fCoTKQJ0p4"

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

T24gMDguMTIuMjMgMTc6MDIsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBUaGlzIGlzIGZv
bGxvd2luZyBhIGZhaWx1cmUgdG8gYnVpbGQgImFyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYyIg
aW4NCj4gYnVpbGQtaTM4Ni1wdm9wcyBqb2JzIHdpdGggbGludXggOTY4ZjM1ZjRhYjFjICgi
TWVyZ2UgdGFnDQo+ICd2Ni43LXJjMy1zbWIzLWNsaWVudC1maXhlcycgb2YgZ2l0Oi8vZ2l0
LnNhbWJhLm9yZy9zZnJlbmNoL2NpZnMtMi42IikNCj4gaW4gbGludXgtbGludXMgYnJhbmNo
Lg0KPiANCj4gU3VnZ2VzdGVkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
DQo+IFNpZ25lZC1vZmYtYnk6IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFyZEBjaXRy
aXguY29tPg0KDQpUaGFua3MsIG11Y2ggYXBwcmVjaWF0ZWQuDQoNCg0KSnVlcmdlbiAobm90
IGtub3dpbmcgZW5vdWdoIG9mIE9TU3Rlc3QgdG8gZ2l2ZSBhICJSLWI6IiBmb3IgdGhlIHBh
dGNoKQ0KDQo+IC0tLQ0KPiAgIG1maS1jb21tb24gfCA1ICsrKysrDQo+ICAgMSBmaWxlIGNo
YW5nZWQsIDUgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL21maS1jb21tb24g
Yi9tZmktY29tbW9uDQo+IGluZGV4IDFhMTMxYzI3Li5kOGQxNjdmZCAxMDA2NDQNCj4gLS0t
IGEvbWZpLWNvbW1vbg0KPiArKysgYi9tZmktY29tbW9uDQo+IEBAIC0zMTksNiArMzE5LDEx
IEBAIGNyZWF0ZV9idWlsZF9qb2JzICgpIHsNCj4gICAgICAgICAgIHJldmlzaW9uX2xpbnV4
PSR7UkVWSVNJT05fTElOVVhfQVJNOi0ke0RFRkFVTFRfUkVWSVNJT05fTElOVVhfQVJNfX0N
Cj4gICAgICAgICAiDQo+ICAgICAgICAgOzsNCj4gKyAgICBpMzg2KQ0KPiArICAgICAgcHZv
cHNfa2NvbmZpZ19vdmVycmlkZXM9Ig0KPiArICAgICAgICBrY29uZmlnX292ZXJyaWRlX3k9
Q09ORklHX1g4Nl9HRU5FUklDDQo+ICsgICAgICAiDQo+ICsgICAgICA7Ow0KPiAgICAgICBl
c2FjDQo+ICAgDQo+ICAgICAgIGNhc2UgIiRhcmNoIiBpbg0KDQo=
--------------IZRnaS30HpGaz2fCoTKQJ0p4
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-----

--------------IZRnaS30HpGaz2fCoTKQJ0p4--

--------------eZpBsvGtoA2qk06Np5WbhOC0--

--------------Ya1B4JJJ0tGZw2sVfWNJBn3U
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/Ey8FAmVzRZAFAwAAAAAACgkQsN6d1ii/Ey/s
TQgAm1ycCQ/w5jJg0uTQaIYEcTdtuAcQwFUKN9s/h1i7VjPz9j4tHIa9KrjgdKzt/AbWRao5TS53
F525qbvV3TpLoSBOPvhi5u/EIEHAzw03AnyFlPiWqFZd4W2+1qZ8NjY1DbsZsfWBJLnSWcPJCBxU
TdPjrxMb0gMmOOxI333Tvo1uHRWtibG/h2ONEeWo/iQwy44zZW9a4GsK+unMvzfZSRZouf+UrSeV
+3P0CgjU5/XMc7O0jSAHVsLlvEdIS50vwlKJbCwpfZEVQI4GpaJt4AMM39GJNWrQJ+YDc9ptMsBS
BcnfRcM2jVUCMVlmNPYgKvx6ckbSE9yFikOxsJa+8w==
=3bqz
-----END PGP SIGNATURE-----

--------------Ya1B4JJJ0tGZw2sVfWNJBn3U--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 16:35:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 16:35:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650758.1016551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBdof-00085z-Tv; Fri, 08 Dec 2023 16:35:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650758.1016551; Fri, 08 Dec 2023 16:35: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 1rBdof-00085s-Qk; Fri, 08 Dec 2023 16:35:05 +0000
Received: by outflank-mailman (input) for mailman id 650758;
 Fri, 08 Dec 2023 16:35: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=T8s0=HT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rBdoe-0007RC-6B
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 16:35:04 +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 bc00b459-95e7-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 17:35:02 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 9E6A121A5F;
 Fri,  8 Dec 2023 16:35: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 70D7E12FF7;
 Fri,  8 Dec 2023 16:35:01 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id CLO8GbVFc2UVDgAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 08 Dec 2023 16:35: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: bc00b459-95e7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702053301; 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=WBblQVrZ2kw7TP8KxXGOsAF40WVPmDM8mezse8MtwYM=;
	b=Y5BF7zxriRnflBDYqMGWOAateRkziQ13aH+4sGh7TqkJXA89GQbcb/Wu9lnW013LVXYO++
	M18kV5b5Pzc6x0qgqt9R9IMUpQnKxSfz7XLN5xHX1s6hthNC4wg+K+LAB0A1XAHtKFoziB
	iCQxUn+fuPDiE8S1nTQTxlTgSVPRxZM=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702053301; 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=WBblQVrZ2kw7TP8KxXGOsAF40WVPmDM8mezse8MtwYM=;
	b=Y5BF7zxriRnflBDYqMGWOAateRkziQ13aH+4sGh7TqkJXA89GQbcb/Wu9lnW013LVXYO++
	M18kV5b5Pzc6x0qgqt9R9IMUpQnKxSfz7XLN5xHX1s6hthNC4wg+K+LAB0A1XAHtKFoziB
	iCQxUn+fuPDiE8S1nTQTxlTgSVPRxZM=
Message-ID: <95169884-a134-4d12-84c1-a8e5a3bcaad0@suse.com>
Date: Fri, 8 Dec 2023 17:35:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/5] tools/xenstored: remove "-N" command line option
Content-Language: en-US
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>
References: <20231121114048.31294-1-jgross@suse.com>
 <20231121114048.31294-6-jgross@suse.com>
 <fe647c65-1092-4a25-9af1-3528ac69f682@citrix.com>
 <4add391b-cee8-4af3-be1f-56078e33e32d@suse.com>
 <f8ddd1ee-984f-4c54-8ac8-e65f430718f4@perard>
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: <f8ddd1ee-984f-4c54-8ac8-e65f430718f4@perard>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------erqX6u9v0si8F4xeNHWnKr3S"
X-Spam-Level: 
X-Spam-Score: -5.19
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.19 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MIME_BASE64_TEXT(0.10)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -4.19
Authentication-Results: smtp-out1.suse.de;
	none

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------erqX6u9v0si8F4xeNHWnKr3S
Content-Type: multipart/mixed; boundary="------------xiHgSMBN0lF4z0zz9YnI0F0M";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>
Message-ID: <95169884-a134-4d12-84c1-a8e5a3bcaad0@suse.com>
Subject: Re: [PATCH v2 5/5] tools/xenstored: remove "-N" command line option
References: <20231121114048.31294-1-jgross@suse.com>
 <20231121114048.31294-6-jgross@suse.com>
 <fe647c65-1092-4a25-9af1-3528ac69f682@citrix.com>
 <4add391b-cee8-4af3-be1f-56078e33e32d@suse.com>
 <f8ddd1ee-984f-4c54-8ac8-e65f430718f4@perard>
In-Reply-To: <f8ddd1ee-984f-4c54-8ac8-e65f430718f4@perard>

--------------xiHgSMBN0lF4z0zz9YnI0F0M
Content-Type: multipart/mixed; boundary="------------Ld4S2HAxNtrWixge3A3WIeNh"

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

T24gMDguMTIuMjMgMTc6MTYsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBGcmksIERl
YyAwOCwgMjAyMyBhdCAwNDo1ODo1MlBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gT24gMDguMTIuMjMgMTY6NDYsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+Pj4gT24gMjEv
MTEvMjAyMyAxMTo0MCBhbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+Pj4gVGhlICItTiIg
KGRvIG5vdCBkYWVtb25pemUpIGNvbW1hbmQgbGluZSBvcHRpb24gaXMgb2YgcXVlc3Rpb25h
YmxlIHVzZToNCj4+Pj4gaXRzIHNvbGUgcHVycG9zZSBzZWVtcyB0byBiZSB0byBhaWQgZGVi
dWdnaW5nIG9mIHhlbnN0b3JlZCBieSBtYWtpbmcgaXQNCj4+Pj4gZWFzaWVyIHRvIHN0YXJ0
IHhlbnN0b3JlZCB1bmRlciBnZGIsIG9yIHRvIHNlZSBhbnkgZGVidWcgbWVzc2FnZXMNCj4+
Pj4gZWFzaWx5Lg0KPj4+Pg0KPj4+PiBEZWJ1ZyBtZXNzYWdlcyBjYW4gYXMgd2VsbCBiZSBz
ZW50IHRvIHN5c2xvZygpLCB3aGlsZSBnZGIgY2FuIGJlDQo+Pj4+IGF0dGFjaGVkIHRvIHRo
ZSBkYWVtb24gZWFzaWx5LiBUaGUgb25seSBub3QgY292ZXJlZCBjYXNlIGlzIGFuIGVycm9y
DQo+Pj4+IHdoaWxlIGluaXRpYWxpemluZyB4ZW5zdG9yZWQsIGJ1dCB0aGlzIGNvdWxkIGJl
IGhhbmRsZWQgZS5nLiBieSBzYXZpbmcNCj4+Pj4gYSBjb3JlIGR1bXAsIHdoaWNoIGNhbiBi
ZSBhbmFseXplZCBsYXRlci4NCj4+Pj4NCj4+Pj4gVGhlIGNhbGwgb2YgdGFsbG9jX2VuYWJs
ZV9sZWFrX3JlcG9ydF9mdWxsKCkgZG9uZSBvbmx5IHdpdGggIi1OIg0KPj4+PiBzcGVjaWZp
ZWQgaXMgbm8gbG9uZ2VyIG5lZWRlZCwgYXMgdGhlIHNhbWUgY2FuIGJlIGFjaGlldmVkIHZp
YQ0KPj4+PiAieGVuc3RvcmUtY29udHJvbCBtZW1yZXBvcnQiLg0KPj4+Pg0KPj4+PiBTaWdu
ZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+Pj4NCj4+PiBT
eXN0ZW1kIHdhbnRzIGRhZW1vbnMgdG8gbm90IGZvcmssIGJlY2F1c2Ugc3lzdGVtZCBjYW4g
c3RhcnQgdGhlbSB1cCBpbg0KPj4+IGEgYmV0dGVyLXByZXNjcmliZWQgZW52aXJvbm1lbnQg
dGhhbiBkZWFtb25pc2UoKSBjYW4gbWFrZS4NCj4+Pg0KPj4+IEl0IHdhcyBhIGxhenkgcG9y
dCB0byBzeXN0ZW0gd2hpY2ggaGFzIGNhdXNlZCB1cyBub3QgdG8gYmUgdXNpbmcgLU4gaW4N
Cj4+PiB0aGUgZmlyc3QgcGxhY2UuDQo+Pj4NCj4+PiBTbyBubyAtIEkgdGhpbmsgdGhpcyBv
cHRpb24gc3BlY2lmaWNhbGx5IHdhbnRzIHRvIHN0YXksIGFuZCB0aGUgc3lzdGVtZA0KPj4+
IGludGVncmF0aW9uIGltcHJvdmVkLg0KPj4NCj4+IFRoZSBwcm9ibGVtIHdpdGggdGhpcyBh
cHByb2FjaCBpcyB0aGF0IHdlIGhhdmUgc29tZSBmdW5jdGlvbmFsaXR5IGluIHRoZQ0KPj4g
bGF1bmNoLXhlbnN0b3JlIHNjcmlwdCByZWx5aW5nIG9uIFtvXXhlbnN0b3JlZCBjb21pbmcg
YmFjayBhZnRlciBoYXZpbmcNCj4+IGZvcmtlZCBvZmYgdGhlIGRhZW1vbjogd2UgYXJlIHNl
dHRpbmcgdGhlIG9vbS1zY29yZSwgd2hpY2ggY2FuIGJlIGRvbmUNCj4gDQo+IEl0J3MgcGVy
ZmVjdGx5IHJlYXNvbmFibGUgdG8gYmFuZSB0aGUgdXNlIG9mICItTiIgd2hlbiB1c2luZw0K
PiBgLi9sYXVuY2gteGVuc3RvcmVgIHRvIHN0YXJ0IHhlbnN0b3JlZC4gSXQgZG9lc24ndCBt
ZWFuIHRoYXQgdGhlIG9wdGlvbg0KPiBuZWVkcyB0byBiZSByZW1vdmVkIGZyb20geGVuc3Rv
cmVkLg0KPiANCj4+IG9ubHkgd2hlbiBrbm93aW5nIHRoZSBwcm9jZXNzIGlkLg0KPj4NCj4+
IFNvIHdlIG5lZWQgYSBzb2x1dGlvbiBmb3IgdGhpcyBwcm9ibGVtIGJlZm9yZSB3ZSBjYW4g
cmVhbGx5IGVuY291cmFnZQ0KPj4gdXNlcnMgdG8gdXNlIHRoZSAtTiBvcHRpb24uDQo+Pg0K
Pj4gUGxlYXNlIG5vdGUgdGhhdCBzZXR0aW5nIHRoZSBvb20tc2NvcmUgZnJvbSB3aXRoaW4g
eGVuc3RvcmVkIHdhcyByZWplY3RlZA0KPj4gYmFjayB3aGVuIEkgcG9zdGVkIGEgcGF0Y2gg
aW4gdGhpcyByZWdhcmQsIGVzcGVjaWFsbHkgYXMgaXQgaXMgc3BlY2lmaWMgdG8NCj4+IExp
bnV4LiBBZGRpdGlvbmFsbHkgdGhpcyB3b3VsZCBtZWFuIHdlIG5lZWQgdG8gYWRkIHRoaXMg
ZnVuY3Rpb25hbGl0eSB0bw0KPj4geGVuc3RvcmVkIEFORCBveGVuc3RvcmVkLg0KPiANCj4g
VGhlcmUncyBzdGlsbCBhIHdvcmxkIHdoZXJlIC1OIGNhbiBiZSB1c2VkLCBhbmQgb29tLXNj
b3JlIGNhbiBiZSBzZXQsDQo+IEknbSBwcmV0dHkgc3VyZSB0aGF0IGNhbiBiZSBkb25lIHdp
dGggYW4gaGFuZC1jcmFmdGVkICJzeXN0ZW1kLnNlcnZpY2UiDQo+IGZpbGUuIE9uZSBwcm9i
YWJseSBuZWVkIHRvIGhhdmUgc29tZXRoaW5nIGxpa2UgIk9PTVBvbGljeT0iIG9yDQo+ICJP
T01TY29yZUFkanVzdD0iIGluIHRoZWlyIHNlcnZpY2UgZmlsZSwgYW5kIHN0YXJ0IHRoZSBg
eGVuc3RvcmVkYA0KPiBkYWVtb24gb2YgdGhlaXIgY2hvaWNlIGRpcmVjdGx5LCBldmVuIHdp
dGggLU4gYXMgc3lzdGVtZCBjYW4gZGV0ZWN0IHdoZW4NCj4gdGhlIGRhZW1vbiBpcyByZWFk
eSBiZWNhdXNlIHdlIHVzZSBzZF9ub3RpZnkoKSAoYXQgbGVhc3QgaW4gY3hlbnN0b3JlZCku
DQo+IA0KPiANCj4gU28sIEkgdGhpbmsgd2Ugc2hvdWxkIGtlZXAgLU4uDQoNCk9rYXksIGZh
aXIgZW5vdWdoLg0KDQpMZXRzIGRyb3AgdGhlIHBhdGNoIHRoZW4uDQoNCg0KSnVlcmdlbg0K

--------------Ld4S2HAxNtrWixge3A3WIeNh
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-----

--------------Ld4S2HAxNtrWixge3A3WIeNh--

--------------xiHgSMBN0lF4z0zz9YnI0F0M--

--------------erqX6u9v0si8F4xeNHWnKr3S
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/Ey8FAmVzRbUFAwAAAAAACgkQsN6d1ii/Ey9a
WAf9GX0d53+fFi7oP67SCYDwddTc37Cx6WJe3yAoycfmStUP35LYLk/sLKUcTvVJopiEHJieOpSz
xoDVTN/fpEPF3Rf8TAcGYj7mfTKVlZjyqoMd0bLD245sY2yY1d3A9NK7jPzvO5ljFigRnrW8r7Gl
17t0DOUcOQ3TLDQdwZ3mK/nS+XU8knHK48SOswSUo2wy8H8UPZai2sCE0khv9qsfC/bvMPnqMXh+
pC5blxn3sBPlWT2+jv7u/AcSWwrefOybK3gM986P2YaBkTaxE/Q84SeFwAZs4jGzuLFtCWy0KUlv
fGeGsBtK+7FimmixSyFZ6lh5YoDJkM4Gqe76Nl61LQ==
=xr03
-----END PGP SIGNATURE-----

--------------erqX6u9v0si8F4xeNHWnKr3S--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 18:41:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 18:41:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650782.1016561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBfnB-0005ey-SS; Fri, 08 Dec 2023 18:41:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650782.1016561; Fri, 08 Dec 2023 18:41:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBfnB-0005er-PG; Fri, 08 Dec 2023 18:41:41 +0000
Received: by outflank-mailman (input) for mailman id 650782;
 Fri, 08 Dec 2023 18:41: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=BEQE=HT=linux.microsoft.com=madvenka@srs-se1.protection.inumbo.net>)
 id 1rBfnA-0005eX-9B
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 18:41:40 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 6a3f9f55-95f9-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 19:41:36 +0100 (CET)
Received: from [192.168.4.26] (unknown [47.186.13.91])
 by linux.microsoft.com (Postfix) with ESMTPSA id B588020B74C0;
 Fri,  8 Dec 2023 10:41:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a3f9f55-95f9-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B588020B74C0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1702060894;
	bh=AnIC6fr2QG8zWjE8bckg2NFATj2evZRXlwuerxjzhrk=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=YFYB3WmwcuV32c52iaz4igd8ovlIWvHBEPQVmbIZEw3i94LbeUVkav4NsxSNfPmIk
	 iUXKkjZRomhyqjplJTf78F4BLpGH4vEdrl44twJ+PBdhRrhrueH+3FqPyjppZtB4ge
	 /VJ2zHgNQUxArYnpRJ/nZXtyaTbYEsmb8Xq9ZQ7A=
Message-ID: <eb41ec87-8e46-4880-9d94-d86849ddadd2@linux.microsoft.com>
Date: Fri, 8 Dec 2023 12:41:31 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 17/19] heki: x86: Update permissions counters
 during text patching
To: Peter Zijlstra <peterz@infradead.org>
Cc: =?UTF-8?Q?Micka=C3=ABl_Sala=C3=BCn?= <mic@digikod.net>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H . Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Kees Cook <keescook@chromium.org>, Paolo Bonzini <pbonzini@redhat.com>,
 Sean Christopherson <seanjc@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Wanpeng Li <wanpengli@tencent.com>, Alexander Graf <graf@amazon.com>,
 Chao Peng <chao.p.peng@linux.intel.com>,
 "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>,
 Forrest Yuan Yu <yuanyu@google.com>, James Gowans <jgowans@amazon.com>,
 James Morris <jamorris@linux.microsoft.com>,
 John Andersen <john.s.andersen@intel.com>,
 Marian Rotariu <marian.c.rotariu@gmail.com>,
 =?UTF-8?Q?Mihai_Don=C8=9Bu?= <mdontu@bitdefender.com>,
 =?UTF-8?B?TmljdciZb3IgQ8OuyJt1?= <nicu.citu@icloud.com>,
 Thara Gopinath <tgopinath@microsoft.com>,
 Trilok Soni <quic_tsoni@quicinc.com>, Wei Liu <wei.liu@kernel.org>,
 Will Deacon <will@kernel.org>, Yu Zhang <yu.c.zhang@linux.intel.com>,
 Zahra Tarkhani <ztarkhani@microsoft.com>,
 =?UTF-8?Q?=C8=98tefan_=C8=98icleru?= <ssicleru@bitdefender.com>,
 dev@lists.cloudhypervisor.org, kvm@vger.kernel.org,
 linux-hardening@vger.kernel.org, linux-hyperv@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org,
 qemu-devel@nongnu.org, virtualization@lists.linux-foundation.org,
 x86@kernel.org, xen-devel@lists.xenproject.org
References: <20231113022326.24388-1-mic@digikod.net>
 <20231113022326.24388-18-mic@digikod.net>
 <20231113081929.GA16138@noisy.programming.kicks-ass.net>
 <a52d8885-43cc-4a4e-bb47-9a800070779e@linux.microsoft.com>
 <20231127200841.GZ3818@noisy.programming.kicks-ass.net>
 <ea63ae4e-e8ea-4fbf-9383-499e14de2f5e@linux.microsoft.com>
 <20231130113315.GE20191@noisy.programming.kicks-ass.net>
 <624a310b-c0d2-406c-a4a7-d851b3cc68f5@linux.microsoft.com>
 <20231206185134.GA9899@noisy.programming.kicks-ass.net>
Content-Language: en-US
From: "Madhavan T. Venkataraman" <madvenka@linux.microsoft.com>
In-Reply-To: <20231206185134.GA9899@noisy.programming.kicks-ass.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit



On 12/6/23 12:51, Peter Zijlstra wrote:
> On Wed, Dec 06, 2023 at 10:37:33AM -0600, Madhavan T. Venkataraman wrote:
>>
>>
>> On 11/30/23 05:33, Peter Zijlstra wrote:
>>> On Wed, Nov 29, 2023 at 03:07:15PM -0600, Madhavan T. Venkataraman wrote:
>>>
>>>> Kernel Lockdown
>>>> ---------------
>>>>
>>>> But, we must provide at least some security in V2. Otherwise, it is useless.
>>>>
>>>> So, we have implemented what we call a kernel lockdown. At the end of kernel
>>>> boot, Heki establishes permissions in the extended page table as mentioned
>>>> before. Also, it adds an immutable attribute for kernel text and kernel RO data.
>>>> Beyond that point, guest requests that attempt to modify permissions on any of
>>>> the immutable pages will be denied.
>>>>
>>>> This means that features like FTrace and KProbes will not work on kernel text
>>>> in V2. This is a temporary limitation. Once authentication is in place, the
>>>> limitation will go away.
>>>
>>> So either you're saying your patch 17 / text_poke is broken (so why
>>> include it ?!?) or your statement above is incorrect. Pick one.
>>>
>>
>> It has been included so that people can be aware of the changes.
>>
>> I will remove the text_poke() changes from the patchset and send it later when
>> I have some authentication in place. It will make sense then.
> 
> If you know its broken then fucking say so in the Changelog instead of
> wasting everybody's time.. OMG.

It is not broken. It addresses one part of the problem. The other part is WIP.

I am preparing a detailed response to your comments. I ask you to be patient until then. In fact, I would appreciate your input/suggestions on some problems we are trying to solve in this context. I will mention them in my response.

Madhavan



From xen-devel-bounces@lists.xenproject.org Fri Dec 08 21:09:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 21:09:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650792.1016571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBi5h-0004Sp-3V; Fri, 08 Dec 2023 21:08:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650792.1016571; Fri, 08 Dec 2023 21: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 1rBi5h-0004Si-0T; Fri, 08 Dec 2023 21:08:57 +0000
Received: by outflank-mailman (input) for mailman id 650792;
 Fri, 08 Dec 2023 21:08:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBi5g-0004Sc-DC
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 21:08:56 +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 fc1cce9f-960d-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 22:08:52 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id E582FCE29A8;
 Fri,  8 Dec 2023 21:08:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DA91AC433C8;
 Fri,  8 Dec 2023 21:08:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc1cce9f-960d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702069727;
	bh=gtfzbOHnBbEQynkbJo0rojU425H6qwyS3oRzrtlLEGA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=HPLzoK9OPixV8a5UgqpaS1AwF13fFzRmQi6stba0ut5RIYIaRshpyHv67Pu/YmAD4
	 1cjI8IoCCnNIYVxJVjYfBCKLudZ7KNLJsQqYJ6z6/Jzi6p82XANDsRzjvsbh3qmGCo
	 Wxh9jFyUFYdnQZooMk8bOhcBBMmiAAyorO/XQepjfmvJdsZQ94wsYTxHgUDXbqu3LR
	 4loqaQDzNSF5aUIfVH1HpIPLwp3xufTriSBulNxEW1HCt2Zd1ggBefzTx8zChsA5JB
	 twC1uE6qKtST0AZfXjmE8MCqE73zd4ei1UgzPifMe/Ivi0n7JZEQTRULoBusq+udc/
	 h7oCK1QCpG01g==
Date: Fri, 8 Dec 2023 13:08:41 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Wei Chen <Wei.Chen@arm.com>
cc: Henry Wang <Henry.Wang@arm.com>, 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>, 
    Wei Liu <wl@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
In-Reply-To: <f3c759bc-f101-4e29-b4ff-dbf53d997d15@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312081308360.1703076@ubuntu-linux-20-04-desktop>
References: <20231207162036.1921323-1-Henry.Wang@arm.com> <f3c759bc-f101-4e29-b4ff-dbf53d997d15@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 8 Dec 2023, Wei Chen wrote:
> Hi Henry,
> 
> On 2023/12/8 00:20, Henry Wang wrote:
> > I've finished the opportunity to do two releases (4.17 and 4.18)
> > and Oleksii Kurochko has volunteered to be the next release manager.
> > Hand over the role to him by changing the maintainership of the
> > CHANGELOG.md.
> > 
> > Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> > ---
> >   MAINTAINERS | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 0fcf5a6f36..702032cc12 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -278,7 +278,7 @@ S:	Supported
> >   F:	xen/drivers/passthrough/arm/smmu-v3.c
> >     Change Log
> > -M:	Henry Wang <Henry.Wang@arm.com>
> > +M:	Oleksii Kurochko <oleksii.kurochko@gmail.com>
> >   R:	Community Manager <community.manager@xenproject.org>
> >   S:	Maintained
> >   F:	CHANGELOG.md
> 
> I'm proud of your work on the last two Xen releases.
> Thanks for your works!
 
I echo Wei's sentiment: thank you so much Henry you did an amazing job


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 21:20:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 21:20:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650798.1016581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBiHD-0007WH-51; Fri, 08 Dec 2023 21:20:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650798.1016581; Fri, 08 Dec 2023 21: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 1rBiHD-0007WA-1E; Fri, 08 Dec 2023 21:20:51 +0000
Received: by outflank-mailman (input) for mailman id 650798;
 Fri, 08 Dec 2023 21:20: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBiHC-0007W3-47
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 21:20: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 a67d1e93-960f-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 22:20:47 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 90FE0CE2136;
 Fri,  8 Dec 2023 21:20:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2BD32C433C8;
 Fri,  8 Dec 2023 21:20: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: a67d1e93-960f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702070443;
	bh=EAbGuGot/DUK/c5T1KmEehAn53IC4HyfWRG4dpuS6oo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=aXG82K8KVelxuen7RZz9j9376W/ebY/s6CEDaRIx9atEDQ3XBvJfHlp3u5A5IjAAo
	 6HZ8y2HP8TwOdSmlf1/+yxgtdX/hmx36EO9soHgZdawdqt3tezWor7sNq/UL5xo3/8
	 dE7cbJu/OzJW7uFp1UEsGCJq1re11BaOPTTcaSIdnazWR1c4K09UPH+LYSaUzMsbvi
	 HeEKoR+8qkhb4KfvnIR2k1EG1KPnfpZgMzaHt0NbiIGTK7yH92WBWeYjj/OFlzCI8w
	 ux2Ej0EjKNhxUh1PsfaYHNHAc//1tvbpUfp//SuQP7ZnQi30TC+f/IzlWEXFB3h9mu
	 dyyJIO97fHXSA==
Date: Fri, 8 Dec 2023 13:20:40 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Henry Wang <Henry.Wang@arm.com>
cc: Michal Orzel <michal.orzel@amd.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH v2 2/5] automation: Add the Dockerfile to build TF-A and
 U-Boot for FVP
In-Reply-To: <CC528228-94A0-4D22-897F-24BDD5A5A11E@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312081320320.1703076@ubuntu-linux-20-04-desktop>
References: <20231208054637.1973424-1-Henry.Wang@arm.com> <20231208054637.1973424-3-Henry.Wang@arm.com> <beb72672-4ff6-4fce-a3bd-2a7ead9e64ec@amd.com> <CC528228-94A0-4D22-897F-24BDD5A5A11E@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-391461717-1702070443=:1703076"

  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-391461717-1702070443=:1703076
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 8 Dec 2023, Henry Wang wrote:
> Hi Michal,
> 
> > On Dec 8, 2023, at 16:39, Michal Orzel <michal.orzel@amd.com> wrote:
> > 
> > Hi Henry,
> > 
> > On 08/12/2023 06:46, Henry Wang wrote:
> >> 
> >> Unlike the emulators that currently being used in the CI pipelines,
> >> the FVP must start at EL3. Therefore we need the firmware, i.e. the
> >> TrustedFirmware-A (TF-A), for corresponding functionality.
> >> 
> >> There is a dedicated board (vexpress_fvp) in U-Boot (serve as the
> >> BL33 of the TF-A) for the FVP platform, so the U-Boot should also be
> >> compiled for the FVP platform instead of reusing the U-Boot for the
> >> existing emulators used in the CI pipelines.
> >> 
> >> To avoid compiling TF-A and U-Boot everytime in the job, adding a
> >> Dockerfile to the test artifacts to build TF-A v2.9.0 and U-Boot
> >> v2023.10 for FVP. The binaries for the TF-A and U-Boot, as well as
> >> the device tree for the FVP platform, will be saved (and exported by
> >> the CI job introduced by following commits). Note that, a patch for
> >> the TF-A will be applied before building to enable the virtio-net
> >> and the virtio-rng device on the FVP. The virtio-net device will
> >> provide the networking service for FVP, and the virtio-rng device
> >> will improve the speed of the FVP.
> >> 
> >> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> >> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> >> ---
> >> v2:
> >> - Add Stefano's Reviewed-by tag.
> >> ---
> >> +# Build U-Boot and TF-A
> >> +RUN curl -fsSLO https://ftp.denx.de/pub/u-boot/u-boot-"$UBOOT_VERSION".tar.bz2 && \
> >> +    tar xvf u-boot-"$UBOOT_VERSION".tar.bz2 && \
> >> +    cd u-boot-"$UBOOT_VERSION" && \
> >> +    make -j$(nproc) V=1 vexpress_fvp_defconfig && \
> >> +    make -j$(nproc) V=1 all && \
> > Do we need 'all'? Can't we just build target 'u-boot' for u-boot.bin?
> 
> I think your suggestion makes sense, and I can have a try, if changing all to u-boot works,
> I will use that in v3.
> 
> >> +    cd .. && \
> >> +    git clone --branch "$TFA_VERSION" --depth 1 https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git && \
> >> +    cd trusted-firmware-a && \
> >> +    curl -fsSLO https://git.yoctoproject.org/meta-arm/plain/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/fvp-base/0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch \
> >> +         --output 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
> >> +    git config --global user.email "you@example.com" && \
> >> +    git config --global user.name "Your Name" && \
> > If this is needed for git am, you could get away using 'patch -p1'
> 
> Hmmm right, then probably we can even not install git and use the tarball instead of
> git clone.
> 
> 
> >> +    git am 0001-fdts-fvp-base-Add-stdout-path-and-virtio-net-and-rng.patch && \
> >> +    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t all && \
> >> +    make -j$(nproc) DEBUG=1 PLAT=fvp ARCH=aarch64 FVP_DT_PREFIX=fvp-base-gicv3-psci-1t fip BL33=../u-boot-"$UBOOT_VERSION"/u-boot.bin && \
> >> +    cp build/fvp/debug/bl1.bin / && \
> >> +    cp build/fvp/debug/fip.bin / && \
> >> +    cp build/fvp/debug/fdts/fvp-base-gicv3-psci-1t.dtb / && \
> >> +    cd /build && \
> >> +    rm -rf u-boot-"$UBOOT_VERSION" trusted-firmware-a
> > You forgot to remove u-boot tar file
> 
> oops, nice catch, thanks. Will also remove that in v3.
> 
> > Other than that:
> > Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 
> Thanks!
> 
> Stefano: Can I keep your Reviewed-by tag after addressing Michalâ€™s comments above?

Yes

Cheers,

Stefano
--8323329-391461717-1702070443=:1703076--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 21:30:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 21:30:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650801.1016591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBiQJ-0001Lg-1R; Fri, 08 Dec 2023 21:30:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650801.1016591; Fri, 08 Dec 2023 21:30: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 1rBiQI-0001LZ-Uh; Fri, 08 Dec 2023 21:30:14 +0000
Received: by outflank-mailman (input) for mailman id 650801;
 Fri, 08 Dec 2023 21:30: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBiQH-0001LT-Uf
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 21:30:13 +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 f702e1f5-9610-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 22:30:12 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 370D5CE2A04;
 Fri,  8 Dec 2023 21:30:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69E3FC433C8;
 Fri,  8 Dec 2023 21:30:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f702e1f5-9610-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702071008;
	bh=WVDmKJISTFR4dAlr9tYcRjOEKKIxBwqKRVPVn0ltRVg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rO4xCdjlRDZzJZqIr8QPMafCjk/9j6b9Ikcsh/H8gxxV0yuUHMMsJFVReFYzNgif2
	 twOubB493cs/ORgtrSidIEWkIV8d9ekua8xWVguXsNqJOGZ2C0GyfvvXduyJ4R5B+s
	 wRdZ0g/Ajn2eX58g1TrXWG9gcFmhkbfQv9+VgGtvTVxcfv9DfUi01oxAR8ziCXSonR
	 S2afKYJxicbhGnxpbx1b+hg/SBK/8QG8jGh/41vYf9/PfPyY3u48otKRPLJRmt4IZl
	 XV1rdvpVj+FmTIlECCw/BU5bmsmAsc1yUBEhp/p1ODohEQG7NvvjxoJAJ+xNOq4D3Y
	 W15h1f48Ojc8g==
Date: Fri, 8 Dec 2023 13:30:05 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Michal Orzel <michal.orzel@amd.com>, Henry Wang <Henry.Wang@arm.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH v2 3/5] automation: Add the expect script with test case
 for FVP
In-Reply-To: <8f0a66e9-70bc-421e-8069-88fed9dee4ed@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312081324500.1703076@ubuntu-linux-20-04-desktop>
References: <20231208054637.1973424-1-Henry.Wang@arm.com> <20231208054637.1973424-4-Henry.Wang@arm.com> <213f2b46-2668-4dae-8c57-269a73eff1bb@amd.com> <4609F9AA-44B6-40EA-A1A5-9D677679002D@arm.com> <0554806a-35c2-4abb-aa3c-3bab104c6c61@amd.com>
 <B9AFD918-42F6-4190-963B-E5A639D9F60E@arm.com> <2f34c0ec-0d94-48e2-bec0-faa96e1702f1@amd.com> <8f0a66e9-70bc-421e-8069-88fed9dee4ed@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-244809366-1702071008=:1703076"

  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-244809366-1702071008=:1703076
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 8 Dec 2023, Julien Grall wrote:
> On 08/12/2023 09:50, Michal Orzel wrote:
> > On 08/12/2023 10:21, Henry Wang wrote:
> > > > On Dec 8, 2023, at 17:11, Michal Orzel <michal.orzel@amd.com> wrote:
> > > > On 08/12/2023 10:05, Henry Wang wrote:
> > > > > 
> > > > > Hi Michal,
> > > > > 
> > > > > > On Dec 8, 2023, at 16:57, Michal Orzel <michal.orzel@amd.com> wrote:
> > > > > > 
> > > > > > Hi Henry,
> > > > > > 
> > > > > > On 08/12/2023 06:46, Henry Wang wrote:
> > > > > > > diff --git
> > > > > > > a/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
> > > > > > > b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
> > > > > > > new file mode 100755
> > > > > > > index 0000000000..25d9a5f81c
> > > > > > > --- /dev/null
> > > > > > > +++ b/automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp
> > > > > > > @@ -0,0 +1,73 @@
> > > > > > > +#!/usr/bin/expect
> > > > > > > +
> > > > > > > +set timeout 2000
> > > > > > Do we really need such a big timeout (~30 min)?
> > > > > > Looking at your test job, it took 16 mins (quite a lot but I know
> > > > > > FVP is slow
> > > > > > + send_slow slows things down)
> > > > > 
> > > > > This is a really good question. I did have the same question while
> > > > > working on
> > > > > the negative test today. The timeout 2000 indeed will fail the job at
> > > > > about 30min,
> > > > > and waiting for it is indeed not really pleasant.
> > > > > 
> > > > > But my second thought would be - from my observation, the overall time
> > > > > now
> > > > > would vary between 15min ~ 20min, and having a 10min margin is not
> > > > > that crazy
> > > > > given that we probably will do more testing from the job in the
> > > > > future, and if the
> > > > > GitLab Arm worker is high loaded, FVP will probably become slower. And
> > > > > normally
> > > > > we donâ€™t even trigger the timeout as the job will normally pass. So I
> > > > > decided
> > > > > to keep this.
> > > > > 
> > > > > Mind sharing your thoughts about the better value of the timeout?
> > > > > Probably 25min?
> > > >  From what you said that the average is 15-20, I think we can leave it
> > > > set to 30.
> > > > But I wonder if we can do something to decrease the average time. ~20
> > > > min is a lot
> > > > even for FVP :) Have you tried setting send_slow to something lower than
> > > > 100ms?
> > > > That said, we don't send too many chars to FVP, so I doubt it would play
> > > > a major role
> > > > in the overall time.
> > > 
> > > I agree with the send_slow part. Actually I do have the same concern, here
> > > are my current
> > > understanding and I think you will definitely help with your knowledge:
> > > If you check the full log of Dom0 booting, for example [1], you will find
> > > that we wasted so
> > > much time in starting the services of the OS (modloop, udev-settle, etc).
> > > All of these services
> > > are retried many times but in the end they are still not up, and from my
> > > understanding they
> > > wonâ€™t affect the actual test(?) If we can somehow get rid of these
> > > services from rootfs, I think
> > > we can save a lot of time.
> > > 
> > > And honestly, I noticed that qemu-alpine-arm64-gcc suffers from the same
> > > problem and it also
> > > takes around 15min to finish. So if we managed to tailor the services from
> > > the filesystem, we
> > > can save a lot of time.
> > That is not true. Qemu runs the tests relatively fast within few minutes.
> > The reason you see e.g. 12 mins
> > for some Qemu jobs comes from the timeout we set in Qemu scripts. We don't
> > have yet the solution (we could
> > do the same as Qubes script) to detect the test success early and exit
> > before timeout. That is why currently
> > the only way for Qemu tests to finish is by reaching the timeout.
> > 
> > So the problem is not with the rootfs and services (the improvement would
> > not be significant) but with
> > the simulation being slow.
> 
> From my experience with the FVP improvement would be significant. A normal
> boot distribution will start a lot of services. I end up to write my own
> initscript doing the bare minimum for creating a guest. This saves me a lot of
> time everytime I needed to test on FVP.
> 
> I think we can do the same for the gitlab. Maybe not to the point of writing
> your initscript but cutting down anything unnecessary.
> 
> This will avoid the FVP test to become the bottlneck in the gitlab CI.

Along the same lines another idea would be to use busybox alone (no
Alpine Linux) as Dom0 rootfs. That's going to be faster, but you
cannot really use xl to create DomUs due to libraries and other
dependencies but you can for sure create additional guests using
Dom0less, see for instance
automation/scripts/qemu-smoke-dom0less-arm64.sh

So if you have troubles improving the boot times of Dom0 + xl create an
alternative would be to create two Linux dom0less DomUs both of them
with only busybox as ramdisk.
--8323329-244809366-1702071008=:1703076--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 21:47:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 21:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650806.1016601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBigo-0004Ft-DO; Fri, 08 Dec 2023 21:47:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650806.1016601; Fri, 08 Dec 2023 21:47:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBigo-0004Fm-Ao; Fri, 08 Dec 2023 21:47:18 +0000
Received: by outflank-mailman (input) for mailman id 650806;
 Fri, 08 Dec 2023 21:47: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBign-0004Fg-8z
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 21:47:17 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51ea76df-9613-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 22:47:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 778F6625CB;
 Fri,  8 Dec 2023 21:47:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E5FAC433C7;
 Fri,  8 Dec 2023 21:46: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: 51ea76df-9613-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702072021;
	bh=g/IR9WuasjttywpzarkTOCrzCoM6CdIuypL/HnnPBPM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=NRXiZ46/Oojvl5LZABoIOmQHd06/J9W7s2P9zey/t2nWKxq7v8hAV8Fb2StMDndkr
	 agK+db+kY9VR8G77htkuODkRHAKm6i7ztczU+xT5tUM7IQx9lG37mTXyDLzZjOEoT4
	 2PnTIlOiqPIYzKwpzethd+Oci+qeSoCHNEZHA8UJFH3oVXpWAJscsFvSWk70xk4EDx
	 x/1Kc6AXuBJiOU7qVwZrjzjGLtYI+W8nyJQrPa9I/O6E4mPp7c6h78BcZXUYhCKId+
	 lChq17jxjS4e9R8HVWajGQNboIABqR+z2tlCtDZlif74LDTdi8QGsbQ/5XmobljGht
	 1l0O7Osf5TIVA==
Date: Fri, 8 Dec 2023 13:46:57 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Henry Wang <Henry.Wang@arm.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, Wei Chen <wei.chen@arm.com>
Subject: Re: [PATCH v2 4/5] automation: Add the script for the FVP smoke
 test
In-Reply-To: <20231208054637.1973424-5-Henry.Wang@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312081338490.1703076@ubuntu-linux-20-04-desktop>
References: <20231208054637.1973424-1-Henry.Wang@arm.com> <20231208054637.1973424-5-Henry.Wang@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 8 Dec 2023, Henry Wang wrote:
> This commit adds the shell script for the FVP smoke test. Similarly
> as the QEMU jobs, the shell script will firstly prepare the DomU
> BusyBox image, use the ImageBuilder to arrange the binaries in memory
> and generate the U-Boot script, then start the test. To provide the
> TFTP service for the FVP, the shell script will also start the TFTP
> service, and copy the binaries needed by test to the TFTP directory
> used by the TFTP server.
> 
> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> ---
> v2:
> - Set pipefail before running the expect script, so that the error
>   won't be hid by pipe and the tee to the logfile.
> ---
>  .../scripts/fvp-base-smoke-dom0-arm64.sh      | 120 ++++++++++++++++++
>  1 file changed, 120 insertions(+)
>  create mode 100755 automation/scripts/fvp-base-smoke-dom0-arm64.sh
> 
> diff --git a/automation/scripts/fvp-base-smoke-dom0-arm64.sh b/automation/scripts/fvp-base-smoke-dom0-arm64.sh
> new file mode 100755
> index 0000000000..99097dad51
> --- /dev/null
> +++ b/automation/scripts/fvp-base-smoke-dom0-arm64.sh
> @@ -0,0 +1,120 @@
> +#!/bin/bash
> +
> +set -ex
> +
> +# DomU Busybox
> +cd binaries
> +mkdir -p initrd
> +mkdir -p initrd/bin
> +mkdir -p initrd/sbin
> +mkdir -p initrd/etc
> +mkdir -p initrd/dev
> +mkdir -p initrd/proc
> +mkdir -p initrd/sys
> +mkdir -p initrd/lib
> +mkdir -p initrd/var
> +mkdir -p initrd/mnt
> +cp /bin/busybox initrd/bin/busybox
> +initrd/bin/busybox --install initrd/bin
> +echo "#!/bin/sh
> +
> +mount -t proc proc /proc
> +mount -t sysfs sysfs /sys
> +mount -t devtmpfs devtmpfs /dev
> +/bin/sh" > initrd/init
> +chmod +x initrd/init
> +cd initrd
> +find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
> +cd ..
> +
> +mkdir -p rootfs
> +cd rootfs
> +tar xvzf ../initrd.tar.gz
> +mkdir proc
> +mkdir run
> +mkdir srv
> +mkdir sys
> +rm var/run
> +cp -ar ../dist/install/* .
> +mv ../initrd.cpio.gz ./root
> +cp ../Image ./root
> +echo "name=\"test\"
> +memory=512
> +vcpus=1
> +kernel=\"/root/Image\"
> +ramdisk=\"/root/initrd.cpio.gz\"
> +extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
> +" > root/test.cfg
> +echo "#!/bin/bash
> +
> +export LD_LIBRARY_PATH=/usr/local/lib
> +bash /etc/init.d/xencommons start
> +
> +xl list
> +
> +xl create -c /root/test.cfg
> +
> +" > etc/local.d/xen.start
> +chmod +x etc/local.d/xen.start
> +echo "rc_verbose=yes" >> etc/rc.conf
> +find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
> +cd ../..
> +
> +# Start a TFTP server to provide TFTP service to FVP
> +service tftpd-hpa start
> +
> +# ImageBuilder
> +echo 'MEMORY_START="0x80000000"
> +MEMORY_END="0xFF000000"
> +
> +DEVICE_TREE="fvp-base-gicv3-psci-1t.dtb"
> +XEN="xen"
> +DOM0_KERNEL="Image"
> +DOM0_RAMDISK="xen-rootfs.cpio.gz"
> +XEN_CMD="console=dtuart dom0_mem=1024M console_timestamps=boot"
> +
> +NUM_DOMUS=0
> +
> +LOAD_CMD="tftpb"
> +UBOOT_SOURCE="boot.source"
> +UBOOT_SCRIPT="boot.scr"' > binaries/config
> +rm -rf imagebuilder
> +git clone https://gitlab.com/ViryaOS/imagebuilder
> +bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
> +
> +# Copy files to the TFTP directory to use
> +cp ./binaries/boot.scr /srv/tftp/
> +cp ./binaries/Image /srv/tftp/
> +cp ./binaries/xen-rootfs.cpio.gz /srv/tftp/
> +cp ./binaries/xen /srv/tftp/
> +cp ./binaries/fvp-base-gicv3-psci-1t.dtb /srv/tftp/
> +
> +# Start FVP
> +TERM0_CFG="-C bp.terminal_0.mode=telnet -C bp.terminal_0.start_telnet=0"
> +TERM1_CFG="-C bp.terminal_1.mode=telnet -C bp.terminal_1.start_telnet=0"
> +TERM2_CFG="-C bp.terminal_2.mode=telnet -C bp.terminal_2.start_telnet=0"
> +TERM3_CFG="-C bp.terminal_3.mode=telnet -C bp.terminal_3.start_telnet=0"
> +
> +VIRTIO_USER_NETWORK_CFG="-C bp.virtio_net.enabled=1 \
> +-C bp.virtio_net.hostbridge.userNetworking=1 \
> +-C bp.virtio_net.hostbridge.userNetPorts=8022=22 \
> +-C bp.virtio_net.transport=legacy"
> +
> +# Set the pipefail so that the error code from the expect script won't
> +# be hid by pipe and the tee command.
> +set -o pipefail
> +./automation/scripts/expect/fvp-base-smoke-dom0-arm64.exp \
> +    "/FVP/FVP_Base_RevC-2xAEMvA/Base_RevC_AEMvA_pkg/models/Linux64_armv8l_GCC-9.3/FVP_Base_RevC-2xAEMvA \
> +    -C bp.vis.disable_visualisation=1 \
> +    -C bp.ve_sysregs.exit_on_shutdown=1 \
> +    -C bp.secure_memory=0 \
> +    -C cache_state_modelled=0 \
> +    -C cluster0.has_arm_v8-4=1 \
> +    -C cluster1.has_arm_v8-4=1 \
> +    ${TERM0_CFG} ${TERM1_CFG} ${TERM2_CFG} ${TERM3_CFG} \
> +    ${VIRTIO_USER_NETWORK_CFG} \
> +    -C bp.secureflashloader.fname=$(pwd)/binaries/bl1.bin \
> +    -C bp.flashloader0.fname=$(pwd)/binaries/fip.bin" |& \
> +        tee smoke.serial

Now the expectation is that on failure (such as timeout failure)
fvp-base-smoke-dom0-arm64.exp will exit non-zero and therefore this
script will also exit non-zero. pipefail is necessary otherwise tee will
mask the error. I like it.

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


> +exit 0
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 22:02:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 22:02:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650810.1016610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBivR-000882-Mb; Fri, 08 Dec 2023 22:02:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650810.1016610; Fri, 08 Dec 2023 22: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 1rBivR-00087p-Jq; Fri, 08 Dec 2023 22:02:25 +0000
Received: by outflank-mailman (input) for mailman id 650810;
 Fri, 08 Dec 2023 22:02: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 1rBivQ-00087f-C6; Fri, 08 Dec 2023 22:02: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 1rBivQ-0000mK-3X; Fri, 08 Dec 2023 22:02: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 1rBivP-0008SK-M2; Fri, 08 Dec 2023 22:02:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBivP-000464-Le; Fri, 08 Dec 2023 22: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=VjjBFw5OWXpq1aFSVxO4COZDqXQxutdW+E5Ex1AVAeQ=; b=qEqRkFBh7m68+pBLt/MrBlKxqA
	/mcjCzGlYZJoGOEAbDROZWFJgTYQQRYMgB1yg/JgwXDbikFe3ZHH/Z+qrokBE7EClA7yl3MEmrT+A
	aBNAAAgRcKeSUEoK/dgvfV2vavAFNWq8uEf9NdrGeg/L5GjW4nG048ggkZ2dSay+C02E=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184035-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-5.4 test] 184035: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-5.4:test-amd64-amd64-libvirt-vhd:guest-start/debian.repeat:fail:heisenbug
    linux-5.4:test-armhf-armhf-xl:guest-start/debian.repeat:fail:heisenbug
    linux-5.4:test-armhf-armhf-xl-credit1:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:guest-start:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=34244ed6219a9eab1ce2262dc3c2bf39a3789b8a
X-Osstest-Versions-That:
    linux=8e221b47173d59e1b2877f6d8dc91e8be2031746
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 08 Dec 2023 22:02:23 +0000

flight 184035 linux-5.4 real [real]
flight 184039 linux-5.4 real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/184035/
http://logs.test-lab.xenproject.org/osstest/logs/184039/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-libvirt-vhd 19 guest-start/debian.repeat fail pass in 184039-retest
 test-armhf-armhf-xl    18 guest-start/debian.repeat fail pass in 184039-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit1 18 guest-start/debian.repeat fail blocked in 183929
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183907
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat    fail  like 183907
 test-armhf-armhf-xl-multivcpu 14 guest-start                  fail like 183929
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183929
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183929
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183929
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183929
 test-armhf-armhf-xl-credit2  18 guest-start/debian.repeat    fail  like 183929
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183929
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183929
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183929
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183929
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183929
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183929
 test-armhf-armhf-xl-vhd      17 guest-start/debian.repeat    fail  like 183929
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183929
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-i386-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-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-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-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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                34244ed6219a9eab1ce2262dc3c2bf39a3789b8a
baseline version:
 linux                8e221b47173d59e1b2877f6d8dc91e8be2031746

Last test of basis   183929  2023-11-29 05:20:53 Z    9 days
Testing same since   184035  2023-12-08 08:13:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Rafael J. Wysocki" <rafael@kernel.org>
  Adrian Hunter <adrian.hunter@intel.com>
  Alexander Gordeev <agordeev@linux.ibm.com>
  Amir Goldstein <amir73il@gmail.com>
  Andrea della Porta <andrea.porta@suse.com>
  Andrew Halaney <ahalaney@redhat.com>
  Andrew Murray <andrew.murray@arm.com>
  Asuna Yang <SpriteOvO@gmail.com>
  Baokun Li <libaokun1@huawei.com>
  Bart Van Assche <bvanassche@acm.org>
  Benjamin Tissoires <benjamin.tissoires@redhat.com>
  Catalin Marinas <catalin.marinas@arm.com>
  Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
  Charles Yi <be286@163.com>
  Chen Ni <nichen@iscas.ac.cn>
  Christoph Hellwig <hch@lst.de>
  Christoph Niedermaier <cniedermaier@dh-electronics.com>
  Christopher Bednarz <christopher.n.bednarz@intel.com>
  Christopher Obbard <chris.obbard@collabora.com>
  Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
  Coly Li <colyli@suse.de>
  Damien Le Moal <dlemoal@kernel.org>
  David Howells <dhowells@redhat.com>
  David S. Miller <davem@davemloft.net>
  David Sterba <dsterba@suse.com>
  Dexuan Cui <decui@microsoft.com>
  Diederik de Haas <didi.debian@cknow.org>
  Dmitry Torokhov <dmitry.torokhov@gmail.com>
  Eric Snowberg <eric.snowberg@oracle.com>
  Filipe Manana <fdmanana@suse.com>
  Florian Fainelli <florian.fainelli@broadcom.com>
  Furong Xu <0x1207@gmail.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Guenter Roeck <linux@roeck-us.net>
  Haiyang Zhang <haiyangz@microsoft.com>
  Hans de Goede <hdegoede@redhat.com>
  Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
  Heiko Carstens <hca@linux.ibm.com>
  Heiko Stuebner <heiko@sntech.de>
  Helge Deller <deller@gmx.de>
  Herb Wei <weihao.bj@ieisystem.com>
  Himanshu Madhani <hmadhani@marvell.com>
  Huacai Chen <chenhuacai@loongson.cn>
  Ivan Ivanov <ivan.ivanov@suse.com>
  Jakub Kicinski <kuba@kernel.org>
  Jan HÃ¶ppner <hoeppner@linux.ibm.com>
  Jann Horn <jannh@google.com>
  Jean-Philippe Brucker <jean-philippe@linaro.org>
  Jens Axboe <axboe@kernel.dk>
  Jiri Kosina <jkosina@suse.cz>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Hovold <johan@kernel.org>
  Jon Hunter <jonathanh@nvidia.com>
  Jonas Karlman <jonas@kwiboo.se>
  Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
  Juergen Gross <jgross@suse.com>
  Kailang Yang <kailang@realtek.com>
  Keith Busch <kbusch@kernel.org>
  Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
  Kornel DulÄ™ba <korneld@chromium.org>
  Kunwu Chan <chentao@kylinos.cn>
  Lech Perczak <lech.perczak@gmail.com>
  Leon Romanovsky <leon@kernel.org>
  Linus Walleij <linus.walleij@linaro.org>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Long Li <longli@microsoft.com>
  Marek Vasut <marex@denx.de>
  Maria Yu <quic_aiquny@quicinc.com>
  Mark Rutland <mark.rutland@arm.com>
  Markus Weippert <markus@gekmihesg.de>
  Martin K. Petersen <martin.petersen@oracle.com>
  Max Nguyen <maxwell.nguyen@hp.com>
  Michael Ellerman <mpe@ellerman.id.au>
  Mike Snitzer <snitzer@kernel.org>
  Miklos Szeredi <mszeredi@redhat.com>
  Mikulas Patocka <mpatocka@redhat.com>
  Mimi Zohar <zohar@linux.ibm.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Nathan Chancellor <nathan@kernel.org>
  Nilesh Javali <njavali@marvell.com>
  Oliver Neukum <oneukum@suse.com>
  Paolo Abeni <pabeni@redhat.com>
  Puliang Lu <puliang.lu@fibocom.com>
  Qu Wenruo <wqu@suse.com>
  Quinn Tran <qutran@marvell.com>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Raju Rangoju <Raju.Rangoju@amd.com>
  Rand Deeb <rand.sec96@gmail.com>
  Raul E Rangel <rrangel@chromium.org>
  Ricardo Ribalda <ribalda@chromium.org>
  Samuel Holland <samuel.holland@sifive.com>
  Saravana Kannan <saravanak@google.com>
  Sasha Levin <sashal@kernel.org>
  Shiraz Saleem <shiraz.saleem@intel.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
  Stefan Haberland <sth@linux.ibm.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stefano Stabellini <stefano.stabellini@amd.com>
  Stephen Hemminger <stephen@networkplumber.org>
  Steve French <stfrench@microsoft.com>
  Sudeep Holla <sudeep.holla@arm.com>
  Takashi Iwai <tiwai@suse.de>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Theodore Ts'o <tytso@mit.edu>
  Thinh Nguyen <Thinh.Nguyen@synopsys.com>
  Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  Timothy Pearson <tpearson@raptorengineering.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Uwe Kleine-KÃ¶nig <u.kleine-koenig@pengutronix.de>
  Vasily Gorbik <gor@linux.ibm.com>
  Victor Fragoso <victorffs@hotmail.com>
  Vignesh Raghavendra <vigneshr@ti.com>
  Viresh Kumar <viresh.kumar@linaro.org>
  Will Deacon <will@kernel.org>
  Wu Bo <bo.wu@vivo.com>
  Yang Yingliang <yangyingliang@huawei.com>
  Yangyu Chen <cyy@cyyself.name>
  Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
  Zenghui Yu <yuzenghui@huawei.com>
  Zhang Yi <yi.zhang@huawei.com>
  Zheng Yongjun <zhengyongjun3@huawei.com>
  Zhengchao Shao <shaozhengchao@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                                          fail    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 fail    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    
 test-amd64-i386-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
   8e221b47173d..34244ed6219a  34244ed6219a9eab1ce2262dc3c2bf39a3789b8a -> tested/linux-5.4


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 22:15:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 22:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650815.1016621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBj82-0002Az-QE; Fri, 08 Dec 2023 22:15:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650815.1016621; Fri, 08 Dec 2023 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 1rBj82-0002As-NC; Fri, 08 Dec 2023 22:15:26 +0000
Received: by outflank-mailman (input) for mailman id 650815;
 Fri, 08 Dec 2023 22:15: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBj81-0002AW-L2
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 22:15:25 +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 46e1029d-9617-11ee-9b0f-b553b5be7939;
 Fri, 08 Dec 2023 23:15:22 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A6E14625E4;
 Fri,  8 Dec 2023 22:15:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7F182C433C7;
 Fri,  8 Dec 2023 22:15: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: 46e1029d-9617-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702073720;
	bh=Ha/wmXPQCbdxxQFnVSlTzopr1J5CWlZTgjxmMqdAYGk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LTWrVesl6oX3wVUIhMhp8blfITncMg9ec998Y/6Wlcgz3nuyK8FqBo4Pv1e/Pc+Tl
	 Tyt/ol0fpH3mxbZNK5FniW+oh4TRNf7Kel+xsmAJcIe1JtT3Ck1/06Oeg5x2+TJIMo
	 pUDqaz3/FWqIy0+XvcYrj//qBDsJH5/4az8QBJN5Fp6QrUw0jN287fB22oX4+sCtjh
	 h7ATUeBzPHOdz3Gh+ARUcJxLALv9y0n+oMzGbDfat9SsklaXGP4K7BJdARMTaSWWMl
	 ExTFxcJOJfybN4EZzKd6gMpEfj94r5oHipMTjlsFN5LPYUIgNXyrVAB8eLZkM//3I+
	 Z1hC1SrOdDG+w==
Date: Fri, 8 Dec 2023 14:15:16 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, 
    David Woodhouse <dwmw@amazon.co.uk>, 
    "sstabellini@kernel.org" <sstabellini@kernel.org>, 
    "sstabellini@kernel.org" <sstabellini@kernel.org>, 
    Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Vikram Garhwal <vikram.garhwal@amd.com>, 
    Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, 
    stewart.hildebrand@amd.com
Subject: Re: Adding MSI support for virtio-pci to QEMU as Xen backend on
 ARM
In-Reply-To: <PAVPR03MB10102178A70BF72984FFAF8CD848AA@PAVPR03MB10102.eurprd03.prod.outlook.com>
Message-ID: <alpine.DEB.2.22.394.2312081407250.1703076@ubuntu-linux-20-04-desktop>
References: <PAVPR03MB10102178A70BF72984FFAF8CD848AA@PAVPR03MB10102.eurprd03.prod.outlook.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

+Stewart

On Fri, 8 Dec 2023, Mykyta Poturai wrote:
> Hello everyone,
> 
> I am currently working on adding MSI support to virtio-pci on ARM with Xen.

Excellent!


> As far as I understand QEMU Xen ARM machine that is used for virtio-pci device emulation does not initialize any interrupt controllers. And that makes it somewhat unclear what is the best approach to adding the MSI support. So, I would appreciate some thoughts on this.
> To trigger the MSI interrupt in Xen guests we basically need to call a single DMOP, which I am also implementing.

You should be able to call xen_inject_msi


> So far, I have come up with 3 possible approaches:
> 1. Hooking up the existing GIC code to the Xen Arm machine and extending it with the DMOP call.

No, I would rather avoid this for a couple of reasons. In reality, the
GIC is emulated by Xen, not QEMU. So letting QEMU think that QEMU is
emulating a GIC is more error prone than the alternatives and also it
would allocate resources needlessly.


> 2. Writing some new barebones GIC implementation with only the required methods (something similar to xen_apic.c).
> 3. Just hooking up the DMOP call to the existing PCI code based on xen_enabled() check.

I would rather not introduce any more if (xen_enabled()) checks beyond
the ones we already have unless it is the only option. So I would go
with option 2). Even better if we could reuse xen_apic.c. xen_apic.c is
just a stub, which is basically the same thing that we need here.


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 22:49:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 22:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650821.1016630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBjf4-00013n-GC; Fri, 08 Dec 2023 22:49:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650821.1016630; Fri, 08 Dec 2023 22:49:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBjf4-00013g-Db; Fri, 08 Dec 2023 22:49:34 +0000
Received: by outflank-mailman (input) for mailman id 650821;
 Fri, 08 Dec 2023 22:49:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBjf4-00013a-1x
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 22:49:34 +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 0c5ee288-961c-11ee-98e8-6d05b1d4d9a1;
 Fri, 08 Dec 2023 23:49:31 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3CF76625E4;
 Fri,  8 Dec 2023 22:49:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 033DDC433C8;
 Fri,  8 Dec 2023 22:49: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: 0c5ee288-961c-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702075769;
	bh=Str9XyP63a08WIpfTICrG8sa3qrLzGScb0cGu5pCjAY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KP7L0fJ8FKKbwj55yW7m3fIyRWRPC52ATtHCNwdTyX4PMwCDq5kjj+WJ5RH4wsvOk
	 Dlsua+qeG4+pGszMsk9y5Q0VA0FlNm2UWzs4QsQTloINSvGaIAWbwECyLYOJ4B9eIR
	 mfLAMMsOgWxWq49HXubXvHi2P7aIEtCwCh200Tz3l1Ho4krCmRQ74xmUyvYTfg4QiK
	 9pRyNiaeJox6ZVCWbYEaodnzu/MxUhKtw9odGkudkMNg5O79KDOT/D6NCiMyHRym6c
	 zbmRVfVVK9etF1na+DsXM7zBm4JnpFnVGeEajwH/xOASZqfoNNN4atTXMCVPl/zpBs
	 OdxknJSmuMa/w==
Date: Fri, 8 Dec 2023 14:49:27 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>
cc: Michael Young <m.a.young@durham.ac.uk>, qemu-devel@nongnu.org, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony.perard@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
In-Reply-To: <ZXLg_YCHM-P6drQV@redhat.com>
Message-ID: <alpine.DEB.2.22.394.2312081422490.1703076@ubuntu-linux-20-04-desktop>
References: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk> <ZXLg_YCHM-P6drQV@redhat.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-855051027-1702074176=:1703076"
Content-ID: <alpine.DEB.2.22.394.2312081423010.1703076@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-855051027-1702074176=:1703076
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312081423011.1703076@ubuntu-linux-20-04-desktop>

On Fri, 8 Dec 2023, Daniel P. BerrangÃ© wrote:
> CC'ing the Xen folks
> 
> On Thu, Dec 07, 2023 at 11:12:48PM +0000, Michael Young wrote:
> > Builds of qemu-8.2.0rc2 with xen-4.18.0 are currently failing
> > with errors like
> > ../hw/arm/xen_arm.c:74:5: error: â€˜GUEST_VIRTIO_MMIO_SPI_LASTâ€™ undeclared (first use in this function)
> >    74 |    (GUEST_VIRTIO_MMIO_SPI_LAST - GUEST_VIRTIO_MMIO_SPI_FIRST)
> >       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > 
> > as there is an incorrect comparision in include/hw/xen/xen_native.h
> > which means that settings like GUEST_VIRTIO_MMIO_SPI_LAST
> > aren't being defined for xen-4.18.0
> 
> The conditions in arch-arm.h for xen 4.18 show:
> 
> $ cppi arch-arm.h | grep -E '(#.*if)|MMIO'
> #ifndef __XEN_PUBLIC_ARCH_ARM_H__
> # if defined(__XEN__) || defined(__XEN_TOOLS__) || defined(__GNUC__)
> # endif
> # ifndef __ASSEMBLY__
> #  if defined(__XEN__) || defined(__XEN_TOOLS__)
> #   if defined(__GNUC__) && !defined(__STRICT_ANSI__)
> #   endif
> #  endif /* __XEN__ || __XEN_TOOLS__ */
> # endif
> # if defined(__XEN__) || defined(__XEN_TOOLS__)
> #  define PSR_MODE_BIT  0x10U /* Set iff AArch32 */
> /* Virtio MMIO mappings */
> #  define GUEST_VIRTIO_MMIO_BASE   xen_mk_ullong(0x02000000)
> #  define GUEST_VIRTIO_MMIO_SIZE   xen_mk_ullong(0x00100000)
> #  define GUEST_VIRTIO_MMIO_SPI_FIRST   33
> #  define GUEST_VIRTIO_MMIO_SPI_LAST    43
> # endif
> # ifndef __ASSEMBLY__
> # endif
> #endif /*  __XEN_PUBLIC_ARCH_ARM_H__ */
> 
> So the MMIO constants are available if __XEN__ or __XEN_TOOLS__
> are defined. This is no different to the condition that was
> present in Xen 4.17.
> 
> What you didn't mention was that the Fedora build failure is
> seen on an x86_64 host, when building the aarch64 target QEMU,
> and I think this is the key issue.

Hi Daniel, thanks for looking into it.

- you are building on a x86_64 host
- the target is aarch64
- the target is the aarch64 Xen PVH machine (xen_arm.c)

But is the resulting QEMU binary expected to be an x86 binary? Or are
you cross compiling ARM binaries on a x86 host?

In other word, is the resulting QEMU binary expected to run on ARM or
x86?


> Are we expecting to build Xen support for non-arch native QEMU
> system binaries or not ?

The ARM xenpvh machine (xen_arm.c) is meant to work with Xen on ARM, not
Xen on x86.  So this is only expected to work if you are
cross-compiling. But you can cross-compile both Xen and QEMU, and I am
pretty sure that Yocto is able to build Xen, Xen userspace tools, and
QEMU for Xen/ARM on an x86 host today.


> The constants are defined in arch-arm.h, which is only included
> under:
> 
>   #if defined(__i386__) || defined(__x86_64__)
>   #include "arch-x86/xen.h"
>   #elif defined(__arm__) || defined (__aarch64__)
>   #include "arch-arm.h"
>   #else
>   #error "Unsupported architecture"
>   #endif
> 
> 
> When we are building on an x86_64 host, we not going to get
> arch-arm.h included, even if we're trying to build the aarch64
> system emulator.
> 
> I don't know how this is supposed to work ?

It looks like a host vs. target architecture mismatch: the #if defined
(__aarch64__) check should pass I think.


The following is a guess. Maybe Xen gets enabled because you have x86
Xen installed, and you are building QEMU for an aarch64 target (aarch64
emulation, running on a x86 host). So this is not meant to work for
xen_arm.c and it would be better to disable xen_arm.c.

On the other hand if you are trying to cross-build a QEMU binary meant
to run on an aarch64 host, cross-building it on an x86_64 host, then yes
this is meant to work and we need to figure out why the #if defined
(__aarch64__) is not passing.



> > Signed-off-by: Michael Young <m.a.young@durham.ac.uk>
> > ---
> >  include/hw/xen/xen_native.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/include/hw/xen/xen_native.h b/include/hw/xen/xen_native.h
> > index 6f09c48823..04b1ef4d34 100644
> > --- a/include/hw/xen/xen_native.h
> > +++ b/include/hw/xen/xen_native.h
> > @@ -532,7 +532,7 @@ static inline int xendevicemodel_set_irq_level(xendevicemodel_handle *dmod,
> >  }
> >  #endif
> >  
> > -#if CONFIG_XEN_CTRL_INTERFACE_VERSION <= 41700
> > +#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 41700
> 
> This change is not correct
> 
> We can see the upstream change was introduced in 4.17:
> 
>   $ git describe  2128143c114
>   4.16.0-rc4-967-g2128143c11
> 
> IOW, if we have 4.17 or newer these constants already
> exist. If we have 4.16 or older, then we need to define
> them to provide back compat.
> 
> >  #define GUEST_VIRTIO_MMIO_BASE   xen_mk_ullong(0x02000000)
> >  #define GUEST_VIRTIO_MMIO_SIZE   xen_mk_ullong(0x00100000)
> >  #define GUEST_VIRTIO_MMIO_SPI_FIRST   33
> 
> With regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
> 
--8323329-855051027-1702074176=:1703076--


From xen-devel-bounces@lists.xenproject.org Fri Dec 08 23:27:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Dec 2023 23:27:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650828.1016641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBkFl-0000jU-Cu; Fri, 08 Dec 2023 23:27:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650828.1016641; Fri, 08 Dec 2023 23: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 1rBkFl-0000jN-98; Fri, 08 Dec 2023 23:27:29 +0000
Received: by outflank-mailman (input) for mailman id 650828;
 Fri, 08 Dec 2023 23: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=RvmJ=HT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBkFk-0000jH-Ii
 for xen-devel@lists.xenproject.org; Fri, 08 Dec 2023 23:27:28 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5937ab4a-9621-11ee-98e8-6d05b1d4d9a1;
 Sat, 09 Dec 2023 00:27:27 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 7BE7DB82E88;
 Fri,  8 Dec 2023 23:27:26 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 83066C433C7;
 Fri,  8 Dec 2023 23:27:24 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5937ab4a-9621-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702078045;
	bh=6PSsSUwrJ/hllsufO/nLRoJU3QH4o0ds9o3EgSwTyd0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=XdeirTpad7pchDbZlfbrsEQCJp6UtEuVAdfXKoAhdCB7Yb+Hrkxxk7KORndjju8iP
	 mf85q0jIRiCYMDb+JgKvtBvaSq5h6xaiA8h1S2Kn1KjQWUEGSjh2ZKdJcqBaDbRlwl
	 7p5O60f6Ds6izzxKwv07yAPyMEgIrzVN0zYePvnNQujs98ZEVRra/1yaXwkLl9NMZt
	 mXl5pSD8UW7o8iq1gCnRr67vRSpoWNAprgMM0T2kiRhD/QRH8pxhzeqIxPsrm55r1E
	 Niv9oB5H/oNksIX1i9BGc5ZJPboi7KwgsMTBuC7VIQoeqI22zthlQuhGq8MGUg1zrX
	 x6vID4exMTZhQ==
Date: Fri, 8 Dec 2023 15:27:22 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Ayan Kumar Halder <ayankuma@amd.com>, Michal Orzel <michal.orzel@amd.com>, 
    Ayan Kumar Halder <ayan.kumar.halder@amd.com>, 
    "stefano.stabellini@amd.com" <stefano.stabellini@amd.com>, 
    "Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers\
In-Reply-To: <C0ADC33B-1966-4D3E-B081-A3AA0C3AE76D@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312081514450.1703076@ubuntu-linux-20-04-desktop>
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com> <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org> <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com> <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org> <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org> <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com> <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org> <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com> <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
 <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org> <alpine.DEB.2.22.394.2312051503060.110490@ubuntu-linux-20-04-desktop> <a4c43652-1fa6-4b42-b751-582cfd6324fe@xen.org> <alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop>
 <C0ADC33B-1966-4D3E-B081-A3AA0C3AE76D@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 8 Dec 2023, Bertrand Marquis wrote:
> Hi All,
> 
> Sorry for coming back late on this thread.
> 
> > On 7 Dec 2023, at 22:41, Stefano Stabellini <sstabellini@kernel.org> wrote:
> > 
> > On Thu, 7 Dec 2023, Julien Grall wrote:
> >> Hi Stefano,
> >> 
> >> On 05/12/2023 23:21, Stefano Stabellini wrote:
> >>> On Tue, 5 Dec 2023, Julien Grall wrote:
> >>>> I agree that crashing a guest is bad, but is lying to the domain really
> >>>> better? The consequence here is not that bad and hopefully it would be
> >>>> fairly
> >>>> easy to find. But this is not always the case. So I definitely would place
> >>>> a
> >>>> half-backed emulation more severe than a guest crash.
> >>> 
> >>> 
> >>> I see where Julien is coming from, but I would go with option two:
> >>> "emulate DCC the same way as KVM". That's because I don't think we can
> >>> get away with crashing the guest in all cases. Although the issue came
> >>> up with a Linux guest, it could have been triggered by a proprietary
> >>> operating system that we cannot change, and I think Xen should support
> >>> running unmodified operating systems.
> >>> 
> >>> If we go with a "half-backed emulation" solution, as Julien wrote, then
> >>> it is better to be more similar to other hypervisors, that's why I chose
> >>> option two instead of option three.
> >>> 
> >>> But at the same time I recognize the validity of Julien's words and it
> >>> makes me wonder if we should have a KCONFIG option or command line
> >>> option to switch the Xen behavior. We could use it to gate all the
> >>> "half-backed emulation" we do for compatibility.  Something like:
> >>> 
> >>> config PARTIAL_EMULATION
> >>>     bool "Partial Emulation"
> >>>     ---help---
> >>>           Enables partial, not spec compliant, emulation of certain
> >>> register
> >>>     interfaces (e.g DCC UART) for guest compatibility. If you disable
> >>>     this option, Xen will crash the guest if the guest tries to access
> >>>     interfaces not fully emulated or virtualized.
> >>> 
> >>>     If you enable this option, the guest might misbehave due to non-spec
> >>>     compliant emulation done by Xen.
> >> 
> >> As I wrote to Ayan on Matrix today, I am not in favor of the emulation. Yet, I
> >> am not going to oppose (as in Nack it) if the other maintainers agree with it.
> > 
> > Thanks for being flexible
> > 
> > 
> >> The KConfig would be nice, the question is whether we want to (security)
> >> support such configuration? E.g. could this potentially introduce a security
> >> issue in the guest?
> > 
> > The important question is whether it could introduce a security issue in
> > Xen. If we think it wouldn't increase the attack surface significantly
> > then I would security support it otherwise not.
> > 
> > 
> >> Regarding the  emulation itself, I actually prefer 3 because at least the
> >> Linux drivers will be able to bail out rather than trying to use them.
> > 
> > I don't have a strong opinion between 2 and 3
> 
> Here is my view on it:
> - providing a wrong emulation to please guests is not wrong as it might end
> up hidding something that will be hard to debug so on that point I agree with
> Julien.
> - choosing a solution which might just crash a guest without any other solution
> than recompiling or modifying xen is not something acceptable if we want Xen
> to thrive.
> 
> So i would suggest the following solution:
> - have a Kconfig to surround this code so that "correct" guests can disable it.
> - have a command line option to activate this behavior and turn it off by default.
> One encountering the problem will have to explicitly set a command line parameter
> so cannot do this without knowing.
> - activate the Kconfig option by default and security support it as it is only active if
> a command line parameter is passed.
> 
> The Kconfig parameter should be more generic so that this could apply to a bunch of
> registers we would emulate with RAZ/WI so I am happy with that proposal if we say
> that this must be activated through a command line option passed to Xen at boot.

You are suggesting both a Kconfig and a command line option.

The Kconfig would be useful so that in a strict configuration we can
disable the code even from the build (useful for instance in
configurations for safety certifications.)

The Kconfig option would be enabled by default (which is important for
the out of the box experience otherwise users would have to manually
rebuild Xen to run their guests.)

However, the actual partial emulation is only enabled if a command line
option is passed. The command line option would be off by default. So
the code is there, but wouldn't be used unless the user enables the
command line option explicitly. This way, tools aimed at making the out
of the box experience better (like ImageBuilder) might pass the command
line option by default but production build systems (like Yocto)
wouldn't.

Yes I think this is the best compromise. If it was just for this patch I
would say it is a bit too much but we have seen a few of these cases so
I think this is a general framework that will be useful in multiple
instances. I am fine with this.


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 01:27:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 01:27:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650834.1016651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBm7b-000454-IN; Sat, 09 Dec 2023 01:27:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650834.1016651; Sat, 09 Dec 2023 01:27:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBm7b-00044x-EW; Sat, 09 Dec 2023 01:27:11 +0000
Received: by outflank-mailman (input) for mailman id 650834;
 Sat, 09 Dec 2023 01:27: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 1rBm7Z-00044n-RM; Sat, 09 Dec 2023 01:27: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 1rBm7Z-0003Y2-KU; Sat, 09 Dec 2023 01:27: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 1rBm7Z-0004xp-6Q; Sat, 09 Dec 2023 01:27:09 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBm7Z-0004kc-5y; Sat, 09 Dec 2023 01: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=VjvqClAMeNyp2Cg4lS+g4w4o3yvJC/0rrV8u/hs+F+0=; b=7CyIQ/GkyeZiA2RD8oe73Zo2Wp
	eELmXUFo9pbXr3Er/V09HZrWaGE6z9NzxrKmNutuCncYO2p3pxmvbXVeWuvX40HIPpFI8ljENLVYa
	lBHJHEEBI7WOPVrdpl1pi88Wmwn6jcA1KciF80D8xpzXJQe4v2HIkDZGZIlj2ns6U4Dk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184040-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184040: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=3c40ee8c68efb787b13be1a120d2ea0ebf1fc949
X-Osstest-Versions-That:
    ovmf=2cd9d5f6fa710e9a8ee810212081f86702114d2f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 09 Dec 2023 01:27:09 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 3c40ee8c68efb787b13be1a120d2ea0ebf1fc949
baseline version:
 ovmf                 2cd9d5f6fa710e9a8ee810212081f86702114d2f

Last test of basis   184038  2023-12-08 13:43:06 Z    0 days
Testing same since   184040  2023-12-08 23:12:38 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  ManickamX Srinivasan <manickamx.srinivasan@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    
 test-amd64-i386-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
   2cd9d5f6fa..3c40ee8c68  3c40ee8c68efb787b13be1a120d2ea0ebf1fc949 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 01:36:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 01:36:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650839.1016661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBmGb-0005sq-Cw; Sat, 09 Dec 2023 01:36:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650839.1016661; Sat, 09 Dec 2023 01:36: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 1rBmGb-0005sj-A8; Sat, 09 Dec 2023 01:36:29 +0000
Received: by outflank-mailman (input) for mailman id 650839;
 Sat, 09 Dec 2023 01:36:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dmD7=HU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBmGa-0005sI-7d
 for xen-devel@lists.xenproject.org; Sat, 09 Dec 2023 01:36:28 +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 5c81c3e9-9633-11ee-9b0f-b553b5be7939;
 Sat, 09 Dec 2023 02:36:26 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 3470FCE256C;
 Sat,  9 Dec 2023 01:36:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30D54C433C8;
 Sat,  9 Dec 2023 01:36: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: 5c81c3e9-9633-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702085781;
	bh=YVzRqnw4MDk6dSKu7IG2gFfx8d15E6ChvPSpj23V+Bk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=EW18qFC9EIbO5REHgxPQF4YkaNlZ3K/HGad4emCDHCYwR4RcRY5BsM2Iyv1mk4Vt6
	 2Q/YmBhAb9Pyo5M2mVijfsdJ3gUicg9iFMZz5p0SHXSKLntOudF5ZUXuamj9ihiAPP
	 Uc+0UCGDpNqHMYzDA4lTCyPzjHflahTnWeGAK07vaYBwLq0Ms+6naOfFLad/WWdkDc
	 GvxHOKFZVLbnMqmlBg9274EroP7Aom5RvH3XYeqjD41SCw00pV6o7I1viV7xTkVFei
	 Ph+HKzw5pq8V8jWIxGsJDgvGWJCMAAjrLxAo4GQrQ7NMMxj2O6vMdqiTWm49CC+w2Q
	 298lPtqsICxbQ==
Date: Fri, 8 Dec 2023 17:36:18 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, andrew.cooper3@citrix.com, 
    george.dunlap@citrix.com, julien@xen.org, bertrand.marquis@arm.com, 
    roger.pau@citrix.com, roberto.bagnara@bugseng.com, 
    federico.serafini@bugseng.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] docs/misra/rules.rst: add more rules
In-Reply-To: <f51e120c-2db9-498c-82bf-66494f862920@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312081735050.1703076@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2312071609060.1265976@ubuntu-linux-20-04-desktop> <f51e120c-2db9-498c-82bf-66494f862920@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, 8 Dec 2023, Jan Beulich wrote:
> On 08.12.2023 01:09, Stefano Stabellini wrote:
> > Add the rules accepted in the last three MISRA C working group meetings.
> > 
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> > --- a/docs/misra/rules.rst
> > +++ b/docs/misra/rules.rst
> > @@ -462,6 +462,13 @@ maintainers if you want to suggest a change.
> >  
> >         while(0) and while(1) and alike are allowed.
> >  
> > +   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
> > +     - Required
> > +     - An unconditional break statement shall terminate every
> > +       switch-clause
> > +     - In addition to break, also other flow control statements such as
> > +       continue, return, goto are allowed.
> 
> To eliminate any room for doubt, maybe add "unconditional" also again here?

Thanks for the Ack! I am OK with the addition you suggested. I'll let
you do it on commit so that we can be sure it is added in the way you
intended.


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 01:39:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 01:39:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650842.1016671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBmJf-0006lP-Qv; Sat, 09 Dec 2023 01:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650842.1016671; Sat, 09 Dec 2023 01: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 1rBmJf-0006lI-Nq; Sat, 09 Dec 2023 01:39:39 +0000
Received: by outflank-mailman (input) for mailman id 650842;
 Sat, 09 Dec 2023 01: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=dmD7=HU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rBmJe-0006lC-5J
 for xen-devel@lists.xenproject.org; Sat, 09 Dec 2023 01:39:38 +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 ceec90bf-9633-11ee-98e8-6d05b1d4d9a1;
 Sat, 09 Dec 2023 02:39:36 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 2009062643;
 Sat,  9 Dec 2023 01:39:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39A49C433C7;
 Sat,  9 Dec 2023 01:39:33 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ceec90bf-9633-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702085974;
	bh=Q2GzXjIXdKxRwIccBhM03LNp5hdlLKWdzIqiG/AbYYc=;
	h=Date:From:To:cc:Subject:From;
	b=b715I5ThEGu+esTcB5wXiQzlhGS+rT6kJAsuXvZCqxdRWt4u8ypsVelnqGRC+t6u0
	 xwoGNTqYNK7XeogSTXKL2RBx4EutoZ7pUwTgYb1o0vtFJuLn0IjZQEx3rOpNtiUk/c
	 FElSY/wIEhqs8IHQlVo3tMk3m4x9iNiwz1oYv4prWVCtTxzfm/0LzJCu4vM/z7RItx
	 DzNBGoeG62b5wN/7zWhoXuygKpnKS1Td21tJmBluGYOAZG1sLJTefuVkpw1XFkHhaz
	 DoWxXOjlzFyHLXiadb+euhEDef0glwy32/GGVR+Te4t2fkop1yiSlKlzV98tRFv/zI
	 D81AeeItrDu1A==
Date: Fri, 8 Dec 2023 17:39:31 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: andrew.cooper3@citrix.com, jbeulich@suse.com, george.dunlap@citrix.com, 
    julien@xen.org, sstabellini@kernel.org, bertrand.marquis@arm.com, 
    roger.pau@citrix.com, roberto.bagnara@bugseng.com, 
    federico.serafini@bugseng.com
Subject: [PATCH v2] docs/misra/rules.rst: add Rule 17.1
Message-ID: <alpine.DEB.2.22.394.2312081738100.1703076@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


Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v2:
- separated 17.1 in its own patch
- add a comment

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 8a659d8d47..f29b4c3d9a 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -189,6 +189,12 @@ existing codebase are work-in-progress.
      - A switch-expression shall not have essentially Boolean type
      -
 
+   * - `Rule 17.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
+     - Required
+     - The features of <stdarg.h> shall not be used
+     - It is understood that in some limited circumstances <stdarg.h> is
+       appropriate to use, such as the implementation of printk.
+
    * - `Rule 17.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_03.c>`_
      - Mandatory
      - A function shall not be declared implicitly


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 02:56:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 02:56:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650848.1016681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBnVL-000408-As; Sat, 09 Dec 2023 02:55:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650848.1016681; Sat, 09 Dec 2023 02:55:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBnVL-000401-8A; Sat, 09 Dec 2023 02:55:47 +0000
Received: by outflank-mailman (input) for mailman id 650848;
 Sat, 09 Dec 2023 02:55: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 1rBnVK-0003yc-9z; Sat, 09 Dec 2023 02:55: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 1rBnVK-0005Rr-2E; Sat, 09 Dec 2023 02:55: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 1rBnVJ-00070L-Do; Sat, 09 Dec 2023 02:55:45 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBnVJ-0004va-C6; Sat, 09 Dec 2023 02:55: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=CX0sFAkZCXY47FWx95xsh+BDLGVoixBG+Ur5H1rqVH0=; b=aWJujDw4pdj4a2U7ZGh47cQaxs
	tADH+TlC+sX2hUey29sQviL59STWoX3mo73rAh4/nZr4QsXmQceXcqx0hHRxUWCEOCgq++IazWhhB
	UxdHvP1YqPfHdd4LBduHesAaoQHInNVPL3LiwSgUPUDz6t7Bj1ksxawh+3YTY0IzpQSs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184036-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184036: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-shadow:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-amd64-i386-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-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=bc4fe94a69d4dab103c37045d97e589ef75f8647
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 09 Dec 2023 02:55:45 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-shadow 20 guest-localmigrate/x10 fail pass in 184041-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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
 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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  bc4fe94a69d4dab103c37045d97e589ef75f8647
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    1 days
Testing same since   184036  2023-12-08 10:40:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Juergen Gross <jgross@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   fail    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 03:27:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 03:27:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650857.1016694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBnzS-0001Fp-VM; Sat, 09 Dec 2023 03:26:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650857.1016694; Sat, 09 Dec 2023 03:26: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 1rBnzS-0001Fi-SL; Sat, 09 Dec 2023 03:26:54 +0000
Received: by outflank-mailman (input) for mailman id 650857;
 Sat, 09 Dec 2023 03:26: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 1rBnzR-0001FY-Mw; Sat, 09 Dec 2023 03:26: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 1rBnzR-00066O-9f; Sat, 09 Dec 2023 03:26: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 1rBnzR-0007s4-10; Sat, 09 Dec 2023 03:26:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBnzR-0007mG-0U; Sat, 09 Dec 2023 03:26: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=qO3nj0t5khU8b0UW++UBWnqokC+ybJb6B7Ve2GyBUeg=; b=KKUsfdvzH3lSzb/LfI3/qli9mx
	fyoYXZy/Umab9A/AsGtT8LJPHKGT2RViGcJRq964FV7vn8DV+MbKVGiGybxrj6LfWq+ddNQAW97Q6
	4D8BgBJQHPDRzMITfgVqMzVcUOcRb+gmOHn9gF/si/eCsheJAgzVn6Zsz+7Q5Pg5IKQs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184042-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184042: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=85a5141a320980e1479343a62731517e197f784e
X-Osstest-Versions-That:
    ovmf=3c40ee8c68efb787b13be1a120d2ea0ebf1fc949
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 09 Dec 2023 03:26:53 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 85a5141a320980e1479343a62731517e197f784e
baseline version:
 ovmf                 3c40ee8c68efb787b13be1a120d2ea0ebf1fc949

Last test of basis   184040  2023-12-08 23:12:38 Z    0 days
Testing same since   184042  2023-12-09 01:56:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  ManickamX Srinivasan <manickamx.srinivasan@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    
 test-amd64-i386-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
   3c40ee8c68..85a5141a32  85a5141a320980e1479343a62731517e197f784e -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 05:47:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 05:47:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650865.1016710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBqBh-0006Z0-KD; Sat, 09 Dec 2023 05:47:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650865.1016710; Sat, 09 Dec 2023 05: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 1rBqBh-0006Yt-Fm; Sat, 09 Dec 2023 05:47:41 +0000
Received: by outflank-mailman (input) for mailman id 650865;
 Sat, 09 Dec 2023 05:47: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 1rBqBg-0006Yj-8f; Sat, 09 Dec 2023 05:47: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 1rBqBf-0000hN-R3; Sat, 09 Dec 2023 05:47: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 1rBqBf-0004zp-Ad; Sat, 09 Dec 2023 05:47:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBqBf-0005CU-A7; Sat, 09 Dec 2023 05:47: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=NfkR1W+K7169jg+HQ4EYjkgFynBW20CbJdOd2lsr2go=; b=zqjERmUr0VWE0OKHqQfXtPTuny
	KnUBNoBM1d6pjR8ofGRKlPwt9S0jbGL1L437LKudFHH5BAa2aXcikbC47diab5tw6z/+k367DG11G
	PIuiDjSfjCpw5ehoCzoz6GNGRZRYtgcUDhscHmyFJAsBAWxrhUlz1aV7VQHbOb4ZpiNg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184037-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184037: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-libvirt-qcow2:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2:migrate-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-libvirt-raw: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-qemuu-debianhvm-amd64-xsm: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-libvirt: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-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-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-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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5e3f5b81de80c98338bcb47c233aebefee5a4801
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 09 Dec 2023 05:47:39 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

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

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail in 184032 like 183973
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check fail in 184032 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-armhf-armhf-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-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-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-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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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:
 linux                5e3f5b81de80c98338bcb47c233aebefee5a4801
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    6 days
Failing since        183977  2023-12-03 00:12:06 Z    6 days   12 attempts
Testing same since   184032  2023-12-08 01:43:20 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Luke D. Jones" <luke@ljones.dev>
  "NÃ­colas F. R. A. Prado" <nfraprado@collabora.com>
  Adam Ford <aford173@gmail.com>
  Alex Williamson <alex.williamson@redhat.com>
  Alexis Belmonte <alexbelm48@gmail.com>
  Andrii Nakryiko <andrii@kernel.org>
  Armin Wolf <W_Armin@gmx.de>
  Brett Creeley <brett.creeley@amd.com>
  ChunHao Lin <hau@realtek.com>
  Conor Dooley <conor.dooley@microchip.com>
  D. Wythe <alibuda@linux.alibaba.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniel Xu <dxu@dxuuu.xyz>
  Daniil Maximov <daniil31415it@gmail.com>
  Dave Hansen <dave.hansen@linux.intel.com>
  David Howells <dhowells@redhat.com>
  David S. Miller <davem@davemloft.net>
  David Thompson <davthompson@nvidia.com>
  Dinghao Liu <dinghao.liu@zju.edu.cn>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Safonov <dima@arista.com>
  Douglas Anderson <dianders@chromium.org>
  Eric Dumazet <edumazet@google.com>
  Eugenio PÃ©rez <eperezma@redhat.com>
  Fabio Estevam <festevam@denx.de>
  Florian Westphal <fw@strlen.de>
  Francesco Dolcini <francesco.dolcini@toradex.com>
  Geetha sowjanya <gakula@marvell.com>
  Geethasowjanya Akula <gakula@marvell.com>
  Grant Grundler <grundler@chromium.org>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Hans de Goede <hdegoede@redhat.com>
  Hayes Wang <hayeswang@realtek.com>
  Heiner Kallweit <hkallweit1@gmail.com>
  Helge Deller <deller@gmx.de>
  Hui Zhou <hui.zhou@corigine.com>
  Ido Schimmel <idosch@nvidia.com>
  Ilpo JÃ¤rvinen <ilpo.jarvinen@linux.intel.com>
  Ilya Leoshkevich <iii@linux.ibm.com>
  Ivan Vecera <ivecera@redhat.com>
  Jacob Keller <jacob.e.keller@intel.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason Gunthorpe <jgg@nvidia.com>
  Jason Wang <jasowang@redhat.com>
  Jens Axboe <axboe@kernel.dk>
  Jianheng Zhang <Jianheng.Zhang@synopsys.com>
  Jijie Shao <shaojijie@huawei.com>
  Jiri Olsa <jolsa@kernel.org>
  Joao Martins <joao.m.martins@oracle.com>
  John Fastabend <john.fastabend@gmail.com>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Kelly Kane <kelly@hawknetworks.com>
  Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kunwu Chan <chentao@kylinos.cn>
  Lee Jones <lee@kernel.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Lorenzo Bianconi <lorenzo@kernel.org>
  Louis Peens <louis.peens@corigine.com>
  Luca Ceresoli <luca.ceresoli@bootlin.com>
  Luke D. Jones <luke@ljones.dev>
  Magnus Karlsson <magnus.karlsson@intel.com>
  Marcin Szycik <marcin.szycik@linux.intel.com>
  Mark Brown <broonie@kernel.org>
  Mark Hasemeyer <markhas@chromium.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Matthias Reichl <hias@horus.com>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Michael Walle <mwalle@kernel.org>
  Michal Smulski <michal.smulski@ooma.com>
  Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Naveen Mamindlapalli <naveenm@marvell.com>
  Neal Cardwell <ncardwell@google.com>
  Nicholas Piggin <npiggin@gmail.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  NÃ­colas F. R. A. Prado <nfraprado@collabora.com>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Phil Sutter <phil@nwl.cc>
  Philip Mueller <philm@manjaro.org>
  Rafal Romanowski <rafal.romanowski@intel.com>
  Rahul Bhansali <rbhansali@marvell.com>
  Randy Dunlap <rdunlap@infradead.org>
  Rob Herring <robh@kernel.org>
  Robin Murphy <robin.murphy@arm.com>
  Sean Christopherson <seanjc@google.com>
  Sean Nyekjaer <sean@geanix.com>
  Shannon Nelson <shannon.nelson@amd.com>
  Shawn Guo <shawn.guo@linaro.org>
  Shigeru Yoshida <syoshida@redhat.com>
  Simon Horman <horms@kernel.org> # build-tested
  Stefano Garzarella <sgarzare@redhat.com>
  Steve French <stfrench@microsoft.com>
  Steve Sistare <steven.sistare@oracle.com>
  Subbaraya Sundeep <sbhatta@marvell.com>
  Suman Ghosh <sumang@marvell.com>
  Sunil Goutham <sgoutham@marvell.com>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Tejun Heo <tj@kernel.org>
  Thinh Tran <thinhtr@linux.vnet.ibm.com>
  Thomas Gleixner <tglx@linutronix.de>
  Thomas Reichinger <thomas.reichinger@sohard.de>
  Tim Van Patten <timvp@google.com>
  Timothy Pearson <tpearson@raptorengineering.com>
  Tobias Waldekranz <tobias@waldekranz.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Venkata Sai Duggi <venkata.sai.duggi@ibm.com>
  Wen Gu <guwen@linux.alibaba.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Yang Yingliang <yangyingliang@huawei.com>
  Yewon Choi <woni9911@gmail.com>
  Yonghong Song <yonghong.song@linux.dev>
  Yonglong Liu <liuyonglong@huawei.com>
  Zhipeng Lu <alexious@zju.edu.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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 3856 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 11:03:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 11:03:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650917.1016738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBv7G-0002iA-TH; Sat, 09 Dec 2023 11:03:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650917.1016738; Sat, 09 Dec 2023 11:03: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 1rBv7G-0002i3-PX; Sat, 09 Dec 2023 11:03:26 +0000
Received: by outflank-mailman (input) for mailman id 650917;
 Sat, 09 Dec 2023 11:03: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 1rBv7E-0002ht-Sz; Sat, 09 Dec 2023 11:03: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 1rBv7E-00079y-Iy; Sat, 09 Dec 2023 11:03: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 1rBv7E-0003sU-7U; Sat, 09 Dec 2023 11:03:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBv7E-000437-6z; Sat, 09 Dec 2023 11:03: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=aiAeSwJEOyzfyo50IZukx0cu7vn36dNd6BZ7Zfu2uSw=; b=V4rYno/TVU/WIztfjpJqT7XCG3
	vdSiNDlxY21cDQau8YO3lM/8q0z5DIcWP11hT7bY0TYoizAHQdZUDiwuyrH+oKObpH+Db8lXVCaAm
	Qq5jto9yhRgEZN9b9HTF9pZazgkcUYVgmojtGUcglmg9mk6KWvvA9HEZvZgK9njYeLCE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184045-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184045: regressions - FAIL
X-Osstest-Failures:
    libvirt:build-arm64-xsm:xen-build:fail:regression
    libvirt:build-arm64-pvops:kernel-build:fail:regression
    libvirt:test-arm64-arm64-libvirt:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-qcow2:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    libvirt:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=1a2f33cb593e6bf4913d97143bf76d5e7f866912
X-Osstest-Versions-That:
    libvirt=06e344f762bb2a31bfbdecbf0da9736373c19cce
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 09 Dec 2023 11:03:24 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64-xsm               6 xen-build                fail REGR. vs. 184033
 build-arm64-pvops             6 kernel-build             fail REGR. vs. 184033

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-libvirt      1 build-check(1)               blocked  n/a
 test-arm64-arm64-libvirt-qcow2  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-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184033
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184033
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184033
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              1a2f33cb593e6bf4913d97143bf76d5e7f866912
baseline version:
 libvirt              06e344f762bb2a31bfbdecbf0da9736373c19cce

Last test of basis   184033  2023-12-08 04:20:31 Z    1 days
Testing same since   184045  2023-12-09 04:25:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  GÃ¶ran Uddeborg <goeran@uddeborg.se>
  Jim Fehlig <jfehlig@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              fail    
 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                                            fail    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     blocked 
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               blocked 
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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


Not pushing.

------------------------------------------------------------
commit 1a2f33cb593e6bf4913d97143bf76d5e7f866912
Author: Jim Fehlig <jfehlig@suse.com>
Date:   Thu Dec 7 18:38:22 2023 -0700

    remote: Fix cached hypervisor type
    
    Commit 501825011c switched the remote driver to using g_auto, but missed
    one case of needing to steal a pointer holding the hypervisor type.
    Without it, memory is freed and the output of 'virsh version' has random
    output
    
    Compiled against library: libvirt 10.0.0
    Using library: libvirt 10.0.0
    Using API: ï¿½ï¿½%ï¿½U 10.0.0
    Running hypervisor: ï¿½ï¿½U 8.1.3
    
    Ths change also fixes random SIGABRT from perl processes running
    libvirt-tck tests.
    
    Signed-off-by: Jim Fehlig <jfehlig@suse.com>
    Reviewed-by: Daniel P. BerrangÃ© <berrange@redhat.com>

commit fba411a80512d406869e6c54b483988d24844d30
Author: GÃ¶ran Uddeborg <goeran@uddeborg.se>
Date:   Thu Dec 7 22:43:57 2023 +0100

    Translated using Weblate (Swedish)
    
    Currently translated at 56.3% (5871 of 10417 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>


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 12:03:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 12:03:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.650973.1016756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBw39-0003TB-Da; Sat, 09 Dec 2023 12:03:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 650973.1016756; Sat, 09 Dec 2023 12:03: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 1rBw39-0003T4-AN; Sat, 09 Dec 2023 12:03:15 +0000
Received: by outflank-mailman (input) for mailman id 650973;
 Sat, 09 Dec 2023 12:03: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 1rBw37-0003Sr-JJ; Sat, 09 Dec 2023 12:03: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 1rBw37-0008At-2U; Sat, 09 Dec 2023 12:03: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 1rBw36-0006XH-Ka; Sat, 09 Dec 2023 12:03:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBw36-0007JG-K2; Sat, 09 Dec 2023 12:03: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=reox7M+E425r9mf4jQveEY7SzSu8u9lC4IuI9j7+HlY=; b=WFHCcIuvH6yUqcJBetOCQ2FovY
	l/xYCRnOP/i2hb+s/0eHJvTEXALNlcoVbAXFZG+YEdLa+pu0EAbSpjgo03qBQThzZAu2mOYwGFJLT
	UJszHRkasQmDTu/yiwTnbtXphOXWpTzUriXEqY8HCYAYC45Y433qhtRj1SDcOzjX8Vz8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184044-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184044: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:build-arm64-xsm:xen-build:fail:regression
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-credit1:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2: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-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-amd64-i386-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-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=bc4fe94a69d4dab103c37045d97e589ef75f8647
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 09 Dec 2023 12:03:12 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64-xsm               6 xen-build                fail REGR. vs. 184031
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)               blocked  n/a
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-credit1  15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-amd64-i386-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-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
 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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  bc4fe94a69d4dab103c37045d97e589ef75f8647
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    1 days
Testing same since   184036  2023-12-08 10:40:52 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Juergen Gross <jgross@suse.com>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              fail    
 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      blocked 
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 15:21:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 15:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651049.1016779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBz8W-0006oR-9l; Sat, 09 Dec 2023 15:21:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651049.1016779; Sat, 09 Dec 2023 15:21:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rBz8W-0006oK-53; Sat, 09 Dec 2023 15:21:00 +0000
Received: by outflank-mailman (input) for mailman id 651049;
 Sat, 09 Dec 2023 15:20: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 1rBz8U-0006oA-UU; Sat, 09 Dec 2023 15:20: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 1rBz8U-0003RF-O4; Sat, 09 Dec 2023 15:20: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 1rBz8U-0006iE-7P; Sat, 09 Dec 2023 15:20:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rBz8U-0007sL-4O; Sat, 09 Dec 2023 15:20:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QSPeG3bjGHlhoKmIsQaZvCGi9VW5HmkxmSS0Kmty2Ww=; b=CB8yAq3XTCtiVTE8yTIZpzQKph
	zFKfTqdOY7DwErO6LRRoprxv8yy0q9syxwU4m1gU2GMZKvWK9+4Fcbr+9cMTG3fKv1yYDGxtwYZbz
	qlb1WUBP3RvNk0IAq57KNSqdUClfLxl92MTyASsovqKUrRdcFw3InXVe7UA4xFp+VKxg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184047-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184047: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-qemuu-debianhvm-amd64-xsm: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-libvirt: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-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=f2e8a57ee9036c7d5443382b6c3c09b51a92ec7e
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 09 Dec 2023 15:20:58 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-armhf-armhf-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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:
 linux                f2e8a57ee9036c7d5443382b6c3c09b51a92ec7e
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    7 days
Failing since        183977  2023-12-03 00:12:06 Z    6 days   13 attempts
Testing same since   184047  2023-12-09 05:50:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Luke D. Jones" <luke@ljones.dev>
  "NÃ­colas F. R. A. Prado" <nfraprado@collabora.com>
  <urbinek@gmail.com>
  Adam Ford <aford173@gmail.com>
  AdriÃ¡n Larumbe <adrian.larumbe@collabora.com>
  Ahmad Fatoum <a.fatoum@pengutronix.de>
  Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
  Alex Bee <knaerzche@gmail.com>
  Alex Deucher <alexander.deucher@amd.com>
  Alex Williamson <alex.williamson@redhat.com>
  Alexander Gordeev <agordeev@linux.ibm.com>
  Alexander Stein <alexander.stein@ew.tq-group.com>
  Alexis Belmonte <alexbelm48@gmail.com>
  Alvin Lee <alvin.lee2@amd.com>
  Alyssa Ross <hi@alyssa.is>
  Andrew Jones <ajones@ventanamicro.com>
  Andrew Morton <akpm@linux-foundation.org>
  Andrii Nakryiko <andrii@kernel.org>
  Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  Antoniu Miclaus <antoniu.miclaus@analog.com>
  Antti Palosaari <crope@iki.fi>
  Armin Wolf <W_Armin@gmx.de>
  Arnd Bergmann <arnd@arndb.de>
  Bagas Sanjaya <bagasdotme@gmail.com>
  Baoquan He <bhe@redhat.com>
  Bin Li <bin.li@canonical.com>
  Bitao Hu <yaoma@linux.alibaba.com>
  BjÃ¶rn TÃ¶pel <bjorn@rivosinc.com>
  Brett Creeley <brett.creeley@amd.com>
  Catalin Marinas <catalin.marinas@arm.com>
  Chancel Liu <chancel.liu@nxp.com>
  Charles Keepax <ckeepax@opensource.cirrus.com>
  Charlie Jenkins <charlie@rivosinc.com>
  Chen Wang <unicorn_wang@outlook.com>
  Chen-Yu Tsai <wenst@chromium.org>
  Chester Lin <clin@suse.com>
  Christophe JAILLET <christophe.jaillet@wanadoo.fr>
  ChunHao Lin <hau@realtek.com>
  ClÃ©ment LÃ©ger <cleger@rivosinc.com>
  Colin Ian King <colin.i.king@gmail.com>
  Conor Dooley <conor.dooley@microchip.com>
  D. Wythe <alibuda@linux.alibaba.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniel Wheeler <daniel.wheeler@amd.com>
  Daniel Xu <dxu@dxuuu.xyz>
  Daniil Maximov <daniil31415it@gmail.com>
  Danilo Krummrich <dakr@redhat.com>
  Dave Airlie <airlied@redhat.com>
  Dave Hansen <dave.hansen@linux.intel.com>
  David Hildenbrand <david@redhat.com>
  David Howells <dhowells@redhat.com>
  David Jeffery <djeffery@redhat.com>
  David Lin <CTLIN0@nuvoton.com>
  David Rau <David.Rau.opensource@dm.renesas.com>
  David S. Miller <davem@davemloft.net>
  David Thompson <davthompson@nvidia.com>
  Dinghao Liu <dinghao.liu@zju.edu.cn>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Safonov <dima@arista.com>
  Douglas Anderson <dianders@chromium.org>
  Erhard Furtner <erhard_f@mailbox.org>
  Eric DeVolder <eric_devolder@yahoo.com>
  Eric Dumazet <edumazet@google.com>
  Eric Woudstra <ericwouds@gmail.com>
  Eugen Hristev <eugen.hristev@collabora.com>
  Eugenio PÃ©rez <eperezma@redhat.com>
  Fabio Estevam <festevam@denx.de>
  Florian Fainelli <florian.fainelli@broadcom.com>
  Florian Westphal <fw@strlen.de>
  Florian-Ewald Mueller <florian-ewald.mueller@ionos.com>
  Francesco Dolcini <francesco.dolcini@toradex.com>
  Frank Wunderlich <frank-w@public-files.de>
  Geetha sowjanya <gakula@marvell.com>
  Geethasowjanya Akula <gakula@marvell.com>
  Georg Gottleuber <ggo@tuxedocomputers.com>
  Grant Grundler <grundler@chromium.org>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Grzegorz Prajsner <grzegorz.prajsner@ionos.com>
  Guangwu Zhang <guazhang@redhat.com>
  Guenter Roeck <linux@roeck-us.net>
  Haibo Chen <haibo.chen@nxp.com>
  Hannes Reinecke <hare@suse.de>
  Hans de Goede <hdegoede@redhat.com>
  Hawking Zhang <Hawking.Zhang@amd.com>
  Hayes Wang <hayeswang@realtek.com>
  Heiko Carstens <hca@linux.ibm.com>
  Heiko Stuebner <heiko.stuebner@cherry.de>
  Heiko Stuebner <heiko@sntech.de>
  Heiner Kallweit <hkallweit1@gmail.com>
  Helge Deller <deller@gmx.de>
  heminhong <heminhong@kylinos.cn>
  Hsin-Yi Wang <hsinyi@chromium.org>
  Hugh Dickins <hughd@google.com>
  Hui Zhou <hui.zhou@corigine.com>
  Ido Schimmel <idosch@nvidia.com>
  Ignat Korchagin <ignat@cloudflare.com>       [compile-time only]
  Ilpo JÃ¤rvinen <ilpo.jarvinen@linux.intel.com>
  Ilya Leoshkevich <iii@linux.ibm.com>
  Inki Dae <inki.dae@samsung.com>
  Ivan Lipski <ivlipski@amd.com>
  Ivan Orlov <ivan.orlov0322@gmail.com>
  Ivan Vecera <ivecera@redhat.com>
  Jack Wang <jinpu.wang@ionos.com>
  Jacob Keller <jacob.e.keller@intel.com>
  Jakub Kicinski <kuba@kernel.org>
  Jani Nikula <jani.nikula@intel.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Jason Wang <jasowang@redhat.com>
  Jason Zhang <jason.zhang@rock-chips.com>
  Jens Axboe <axboe@kernel.dk>
  Jens Wiklander <jens.wiklander@linaro.org>
  Jeremy Soller <jeremy@system76.com>
  Jerome Forissier <jerome.forissier@linaro.org>
  Jiadong Zhu <Jiadong.Zhu@amd.com>
  Jianheng Zhang <Jianheng.Zhang@synopsys.com>
  Jiexun Wang <wangjiexun@tinylab.org>
  Jijie Shao <shaojijie@huawei.com>
  Jiri Olsa <jolsa@kernel.org>
  Joao Martins <joao.m.martins@oracle.com>
  Johan Hovold <johan+linaro@kernel.org>
  John Fastabend <john.fastabend@gmail.com>
  Jonas Karlman <jonas@kwiboo.se>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Junxian Huang <huangjunxian6@hisilicon.com>
  Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
  Kamil Duljas <kamil.duljas@gmail.com>
  Keith Busch <kbusch@kernel.org>
  Kelly Kane <kelly@hawknetworks.com>
  Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
  Kunwu Chan <chentao@kylinos.cn>
  Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
  Laurence Oberman <loberman@redhat.com>
  Lee Jones <lee@kernel.org>
  Leon Romanovsky <leon@kernel.org>
  Li Ma <li.ma@amd.com>
  Lijo Lazar <lijo.lazar@amd.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Liu Shixin <liushixin2@huawei.com>
  Liu Ying <victor.liu@nxp.com>
  Lizhi Xu <lizhi.xu@windriver.com>
  Lorenzo Bianconi <lorenzo@kernel.org>
  Lorenzo Pieralisi <lpieralisi@kernel.org>
  Louis Peens <louis.peens@corigine.com>
  Luca Ceresoli <luca.ceresoli@bootlin.com>
  Lukasz Luba <lukasz.luba@arm.com>
  Luke D. Jones <luke@ljones.dev>
  Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  Maciej Strozek <mstrozek@opensource.cirrus.com>
  Magnus Karlsson <magnus.karlsson@intel.com>
  Malcolm Hart <malcolm@5harts.com>
  Marcin Szycik <marcin.szycik@linux.intel.com>
  Marian Postevca <posteuca@mutex.one>
  Mario Limonciello <mario.limonciello@amd.com>
  Mark Brown <broonie@kernel.org>
  Mark Hasemeyer <markhas@chromium.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Matthias Reichl <hias@horus.com>
  Matus Malych <matus@malych.org>
  Md Haris Iqbal <haris.iqbal@ionos.com>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Michael Walle <mwalle@kernel.org>
  Michal Smulski <michal.smulski@ooma.com>
  Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
  Mike Kravetz <mike.kravetz@oracle.com>
  Mike Marciniszyn <mike.marciniszyn@intel.com>
  Ming Lei <ming.lei@redhat.com>
  Mustafa Ismail <mustafa.ismail@intel.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Nathan Rossi <nathan.rossi@digi.com>
  Naveen Mamindlapalli <naveenm@marvell.com>
  Neal Cardwell <ncardwell@google.com>
  Neil Armstrong <neil.armstrong@linaro.org>
  Nicholas Piggin <npiggin@gmail.com>
  Nico Pache <npache@redhat.com>
  Nitesh Shetty <nj.shetty@samsung.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  NÃ­colas F. R. A. Prado <nfraprado@collabora.com>
  Oleg Nesterov <oleg@redhat.com>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Palmer Dabbelt <palmer@rivosinc.com>
  Paolo Abeni <pabeni@redhat.com>
  Pascal NoÃ«l <pascal@pascalcompiles.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Pavel Begunkov <asml.silence@gmail.com>
  Peng Fan <peng.fan@nxp.com>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Peter Xu <peterx@redhat.com>
  Petr Pavlu <petr.pavlu@suse.com>
  Phil Sutter <phil@nwl.cc>
  Philip Mueller <philm@manjaro.org>
  Philipp Zabel <p.zabel@pengutronix.de>
  Phillip Susi <phill@thesusis.net>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Rafal Romanowski <rafal.romanowski@intel.com>
  Rahul Bhansali <rbhansali@marvell.com>
  Randy Dunlap <rdunlap@infradead.org>
  Randy Dunlap <rdunlap@infradead.org> # build-tested
  Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
  Rob Herring <robh@kernel.org>
  Robin Murphy <robin.murphy@arm.com>
  Rodrigo Siqueira <rodrigo.siqueira@amd.com>
  Roland Hieber <rhi@pengutronix.de>
  Roman Gushchin (Cruise) <roman.gushchin@linux.dev>
  Roman Gushchin <roman.gushchin@linux.dev>
  Roman Li <Roman.Li@amd.com>
  Ryusuke Konishi <konishi.ryusuke@gmail.com>
  Sam Edwards <CFSworks@gmail.com>
  Samuel Holland <samuel.holland@sifive.com>
  Santosh Kumar Pradhan <santosh.pradhan@ionos.com>
  Sarah Grant <s@srd.tw>
  Sascha Hauer <s.hauer@pengutronix.de>
  Sean Christopherson <seanjc@google.com>
  Sean Nyekjaer <sean@geanix.com>
  Selvin Xavier <selvin.xavier@broadcom.com>
  SeongJae Park <sj@kernel.org>
  Shakeel Butt <shakeelb@google.com>
  Shannon Nelson <shannon.nelson@amd.com>
  Shawn Guo <shawn.guo@linaro.org>
  Shawn Guo <shawnguo@kernel.org>
  Shengjiu Wang <shengjiu.wang@nxp.com>
  Shifeng Li <lishifeng1992@126.com>
  Shifeng Li <lishifeng@sangfor.com.cn>
  Shigeru Yoshida <syoshida@redhat.com>
  Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
  Shiraz Saleem <shiraz.saleem@intel.com>
  Shuming Fan <shumingf@realtek.com>
  Sidhartha Kumar <sidhartha.kumar@oracle.com>
  Simon Horman <horms@kernel.org> # build-tested
  Song Liu <song@kernel.org>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Stefan Kerkmann <s.kerkmann@pengutronix.de>
  Stefan Wahren <wahrenst@gmx.net>
  Stefano Garzarella <sgarzare@redhat.com>
  Steve French <stfrench@microsoft.com>
  Steve Sistare <steven.sistare@oracle.com>
  Steven Price <steven.price@arm.com>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Su Hui <suhui@nfschina.com>
  Subbaraya Sundeep <sbhatta@marvell.com>
  Sudeep Holla <sudeep.holla@arm.com>
  Suman Ghosh <sumang@marvell.com>
  Sumanth Korikkar <sumanthk@linux.ibm.com>
  Sumit Garg <sumit.garg@linaro.org>
  Sunil Goutham <sgoutham@marvell.com>
  Takashi Iwai <tiwai@suse.de>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Tejun Heo <tj@kernel.org>
  Thinh Tran <thinhtr@linux.vnet.ibm.com>
  Thomas Gleixner <tglx@linutronix.de>
  Thomas Reichinger <thomas.reichinger@sohard.de>
  Thomas Zimmermann <tzimmermann@suse.de>
  Tim Bosse <flinn@timbos.se>
  Tim Crawford <tcrawford@system76.com>
  Tim Van Patten <timvp@google.com>
  Timothy Pearson <tpearson@raptorengineering.com>
  Timur Tabi <ttabi@nvidia.com>
  Tobias Waldekranz <tobias@waldekranz.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Uwe Kleine-KÃ¶nig <u.kleine-koenig@pengutronix.de>
  Venkata Sai Duggi <venkata.sai.duggi@ibm.com>
  Ville SyrjÃ¤lÃ¤ <ville.syrjala@linux.intel.com>
  Vlastimil Babka <vbabka@suse.cz>
  Wen Gu <guwen@linux.alibaba.com>
  Werner Sembach <wse@tuxedocomputers.com>
  Woody Suwalski <terraluna977@gmail.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Xiang Yang <xiangyang3@huawei.com>
  Xiao Ni <xni@redhat.com>
  Xiaolei Wang <xiaolei.wang@windriver.com>
  Yang Wang <kevinyang.wang@amd.com>
  Yang Yingliang <yangyingliang@huawei.com>
  Yewon Choi <woni9911@gmail.com>
  Yonghong Song <yonghong.song@linux.dev>
  Yonglong Liu <liuyonglong@huawei.com>
  Yu Kuai <yukuai3@huawei.com>
  Zhipeng Lu <alexious@zju.edu.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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 9989 lines long.)


From xen-devel-bounces@lists.xenproject.org Sat Dec 09 22:13:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 22:13:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651140.1016831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rC5Za-0004OT-6J; Sat, 09 Dec 2023 22:13:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651140.1016831; Sat, 09 Dec 2023 22:13:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rC5Za-0004OM-3T; Sat, 09 Dec 2023 22:13:22 +0000
Received: by outflank-mailman (input) for mailman id 651140;
 Sat, 09 Dec 2023 22:13: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=UXVs=HU=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rC5ZZ-0004OG-1l
 for xen-devel@lists.xenproject.org; Sat, 09 Dec 2023 22:13:21 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.115])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26395a51-96e0-11ee-9b0f-b553b5be7939;
 Sat, 09 Dec 2023 23:13:17 +0100 (CET)
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 09 Dec 2023 14:13:14 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga002.fm.intel.com with ESMTP; 09 Dec 2023 14:13:13 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26395a51-96e0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1702159997; x=1733695997;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=Bmq2+VybbODFa+8++mKcBISkjteQeduMNN5yrbxK/z0=;
  b=KltsYuEkMEy7R4VydX28O5K8twLIv1EJ/iQk9HW4Qn2WWuITCoj//Dsn
   tbk0HBvyn4XPvu+DuzTRtSHR0g4cQwtCM/3mJdX70of/dgC/d68C2vkak
   JhrsfIdIlQVu5Q1CcUhhzskLfiaiEmLIocyd8OMRxVhmq0eBg3/+D9Tdh
   sk7DakAhk75cRzCkWSGtA5jl5uSGb110Ag5XqsL4Dw6EJK7ZLkIjcsCeD
   GqflcJuGlns9DOEBMskunn83EkmhMgx4JNe53Abs7fCnuol8iW6iRjtxH
   ftsT7dc4YqySjXNlaC1ySwCIPnSCeuDwjWue8aOZPqHkRVv0tQtS49xYk
   A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10919"; a="394265399"
X-IronPort-AV: E=Sophos;i="6.04,264,1695711600"; 
   d="scan'208";a="394265399"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10919"; a="890579871"
X-IronPort-AV: E=Sophos;i="6.04,264,1695711600"; 
   d="scan'208";a="890579871"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13A 26/35] x86/fred: FRED entry/exit and dispatch code
Date: Sat,  9 Dec 2023 13:42:14 -0800
Message-ID: <20231209214214.2932-1-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <SA1PR11MB6734ACF7F90649CADDC82C6EA88BA@SA1PR11MB6734.namprd11.prod.outlook.com>
References: <SA1PR11MB6734ACF7F90649CADDC82C6EA88BA@SA1PR11MB6734.namprd11.prod.outlook.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

The code to actually handle kernel and event entry/exit using
FRED. It is split up into two files thus:

- entry_64_fred.S contains the actual entrypoints and exit code, and
  saves and restores registers.
- entry_fred.c contains the two-level event dispatch code for FRED.
  The first-level dispatch is on the event type, and the second-level
  is on the event vector.

Originally-by: Megha Dey <megha.dey@intel.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Co-developed-by: Xin Li <xin3.li@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v13:
* Fix a typo, INTO instead of INT0 (Andrew Cooper).
* Build #CP handler with CONFIG_X86_CET instead of
  CONFIG_X86_KERNEL_IBT (Andrew Cooper).
* Use array_index_nospec() to safe-guard sysvec_table index calculation
  (Andrew Cooper).
* Cross-check both event type and vector (Andrew Cooper).

Changes since v10:
* Replace "IS_ENABLED(CONFIG_IA32_EMULATION)" with the new ia32_enabled()
  API (Nikolay Borisov).

Changes since v9:
* Don't use jump tables, indirect jumps are expensive (Thomas Gleixner).
* Except NMI/#DB/#MCE, FRED really can share the exception handlers
  with IDT (Thomas Gleixner).
* Avoid the sysvec_* idt_entry muck, do it at a central place, reuse code
  instead of blindly copying it, which breaks the performance optimized
  sysvec entries like reschedule_ipi (Thomas Gleixner).
* Add asm_ prefix to FRED asm entry points (Thomas Gleixner).

Changes since v8:
* Don't do syscall early out in fred_entry_from_user() before there are
  proper performance numbers and justifications (Thomas Gleixner).
* Add the control exception handler to the FRED exception handler table
  (Thomas Gleixner).
* Add ENDBR to the FRED_ENTER asm macro.
* Reflect the FRED spec 5.0 change that ERETS and ERETU add 8 to %rsp
  before popping the return context from the stack.

Changes since v1:
* Initialize a FRED exception handler to fred_bad_event() instead of NULL
  if no FRED handler defined for an exception vector (Peter Zijlstra).
* Push calling irqentry_{enter,exit}() and instrumentation_{begin,end}()
  down into individual FRED exception handlers, instead of in the dispatch
  framework (Peter Zijlstra).
---
 arch/x86/entry/Makefile               |   5 +-
 arch/x86/entry/entry_64_fred.S        |  52 ++++++
 arch/x86/entry/entry_fred.c           | 244 ++++++++++++++++++++++++++
 arch/x86/include/asm/asm-prototypes.h |   1 +
 arch/x86/include/asm/fred.h           |   6 +
 5 files changed, 307 insertions(+), 1 deletion(-)
 create mode 100644 arch/x86/entry/entry_64_fred.S
 create mode 100644 arch/x86/entry/entry_fred.c

diff --git a/arch/x86/entry/Makefile b/arch/x86/entry/Makefile
index ca2fe186994b..c93e7f5c2a06 100644
--- a/arch/x86/entry/Makefile
+++ b/arch/x86/entry/Makefile
@@ -18,6 +18,9 @@ obj-y				+= vdso/
 obj-y				+= vsyscall/
 
 obj-$(CONFIG_PREEMPTION)	+= thunk_$(BITS).o
+CFLAGS_entry_fred.o		+= -fno-stack-protector
+CFLAGS_REMOVE_entry_fred.o	+= -pg $(CC_FLAGS_FTRACE)
+obj-$(CONFIG_X86_FRED)		+= entry_64_fred.o entry_fred.o
+
 obj-$(CONFIG_IA32_EMULATION)	+= entry_64_compat.o syscall_32.o
 obj-$(CONFIG_X86_X32_ABI)	+= syscall_x32.o
-
diff --git a/arch/x86/entry/entry_64_fred.S b/arch/x86/entry/entry_64_fred.S
new file mode 100644
index 000000000000..37a1dd5e8ace
--- /dev/null
+++ b/arch/x86/entry/entry_64_fred.S
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * The actual FRED entry points.
+ */
+
+#include <asm/fred.h>
+
+#include "calling.h"
+
+	.code64
+	.section .noinstr.text, "ax"
+
+.macro FRED_ENTER
+	UNWIND_HINT_END_OF_STACK
+	ENDBR
+	PUSH_AND_CLEAR_REGS
+	movq	%rsp, %rdi	/* %rdi -> pt_regs */
+.endm
+
+.macro FRED_EXIT
+	UNWIND_HINT_REGS
+	POP_REGS
+.endm
+
+/*
+ * The new RIP value that FRED event delivery establishes is
+ * IA32_FRED_CONFIG & ~FFFH for events that occur in ring 3.
+ * Thus the FRED ring 3 entry point must be 4K page aligned.
+ */
+	.align 4096
+
+SYM_CODE_START_NOALIGN(asm_fred_entrypoint_user)
+	FRED_ENTER
+	call	fred_entry_from_user
+	FRED_EXIT
+	ERETU
+SYM_CODE_END(asm_fred_entrypoint_user)
+
+.fill asm_fred_entrypoint_kernel - ., 1, 0xcc
+
+/*
+ * The new RIP value that FRED event delivery establishes is
+ * (IA32_FRED_CONFIG & ~FFFH) + 256 for events that occur in
+ * ring 0, i.e., asm_fred_entrypoint_user + 256.
+ */
+	.org asm_fred_entrypoint_user + 256
+SYM_CODE_START_NOALIGN(asm_fred_entrypoint_kernel)
+	FRED_ENTER
+	call	fred_entry_from_kernel
+	FRED_EXIT
+	ERETS
+SYM_CODE_END(asm_fred_entrypoint_kernel)
diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c
new file mode 100644
index 000000000000..bd605cd11187
--- /dev/null
+++ b/arch/x86/entry/entry_fred.c
@@ -0,0 +1,244 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * The FRED specific kernel/user entry functions which are invoked from
+ * assembly code and dispatch to the associated handlers.
+ */
+#include <linux/kernel.h>
+#include <linux/kdebug.h>
+#include <linux/nospec.h>
+
+#include <asm/desc.h>
+#include <asm/fred.h>
+#include <asm/idtentry.h>
+#include <asm/syscall.h>
+#include <asm/trapnr.h>
+#include <asm/traps.h>
+
+/* FRED EVENT_TYPE_OTHER vector numbers */
+#define FRED_SYSCALL			1
+#define FRED_SYSENTER			2
+
+static noinstr void fred_bad_type(struct pt_regs *regs, unsigned long error_code)
+{
+	irqentry_state_t irq_state = irqentry_nmi_enter(regs);
+
+	instrumentation_begin();
+
+	/* Panic on events from a high stack level */
+	if (regs->fred_cs.sl > 0) {
+		pr_emerg("PANIC: invalid or fatal FRED event; event type %u "
+			 "vector %u error 0x%lx aux 0x%lx at %04x:%016lx\n",
+			 regs->fred_ss.type, regs->fred_ss.vector, regs->orig_ax,
+			 fred_event_data(regs), regs->cs, regs->ip);
+		die("invalid or fatal FRED event", regs, regs->orig_ax);
+		panic("invalid or fatal FRED event");
+	} else {
+		unsigned long flags = oops_begin();
+		int sig = SIGKILL;
+
+		pr_alert("BUG: invalid or fatal FRED event; event type %u "
+			 "vector %u error 0x%lx aux 0x%lx at %04x:%016lx\n",
+			 regs->fred_ss.type, regs->fred_ss.vector, regs->orig_ax,
+			 fred_event_data(regs), regs->cs, regs->ip);
+
+		if (__die("Invalid or fatal FRED event", regs, regs->orig_ax))
+			sig = 0;
+
+		oops_end(flags, regs, sig);
+	}
+
+	instrumentation_end();
+	irqentry_nmi_exit(regs, irq_state);
+}
+
+static noinstr void fred_intx(struct pt_regs *regs)
+{
+	switch (regs->fred_ss.vector) {
+	/* Opcode 0xcd, 0x3, NOT INT3 (opcode 0xcc) */
+	case X86_TRAP_BP:
+		return exc_int3(regs);
+
+	/* Opcode 0xcd, 0x4, NOT INTO (opcode 0xce) */
+	case X86_TRAP_OF:
+		return exc_overflow(regs);
+
+	/* INT80 */
+	case IA32_SYSCALL_VECTOR:
+		if (ia32_enabled())
+			return int80_emulation(regs);
+		fallthrough;
+
+	default:
+		return exc_general_protection(regs, 0);
+	}
+}
+
+static __always_inline void fred_other(struct pt_regs *regs)
+{
+	/* The compiler can fold these conditions into a single test */
+	if (likely(regs->fred_ss.vector == FRED_SYSCALL && regs->fred_ss.lm)) {
+		regs->orig_ax = regs->ax;
+		regs->ax = -ENOSYS;
+		do_syscall_64(regs, regs->orig_ax);
+		return;
+	} else if (ia32_enabled() &&
+		   likely(regs->fred_ss.vector == FRED_SYSENTER &&
+			  !regs->fred_ss.lm)) {
+		regs->orig_ax = regs->ax;
+		regs->ax = -ENOSYS;
+		do_fast_syscall_32(regs);
+		return;
+	} else {
+		exc_invalid_op(regs);
+		return;
+	}
+}
+
+#define SYSVEC(_vector, _function) [_vector - FIRST_SYSTEM_VECTOR] = fred_sysvec_##_function
+
+static idtentry_t sysvec_table[NR_SYSTEM_VECTORS] __ro_after_init = {
+	SYSVEC(ERROR_APIC_VECTOR,		error_interrupt),
+	SYSVEC(SPURIOUS_APIC_VECTOR,		spurious_apic_interrupt),
+	SYSVEC(LOCAL_TIMER_VECTOR,		apic_timer_interrupt),
+	SYSVEC(X86_PLATFORM_IPI_VECTOR,		x86_platform_ipi),
+
+	SYSVEC(RESCHEDULE_VECTOR,		reschedule_ipi),
+	SYSVEC(CALL_FUNCTION_SINGLE_VECTOR,	call_function_single),
+	SYSVEC(CALL_FUNCTION_VECTOR,		call_function),
+	SYSVEC(REBOOT_VECTOR,			reboot),
+
+	SYSVEC(THRESHOLD_APIC_VECTOR,		threshold),
+	SYSVEC(DEFERRED_ERROR_VECTOR,		deferred_error),
+	SYSVEC(THERMAL_APIC_VECTOR,		thermal),
+
+	SYSVEC(IRQ_WORK_VECTOR,			irq_work),
+
+	SYSVEC(POSTED_INTR_VECTOR,		kvm_posted_intr_ipi),
+	SYSVEC(POSTED_INTR_WAKEUP_VECTOR,	kvm_posted_intr_wakeup_ipi),
+	SYSVEC(POSTED_INTR_NESTED_VECTOR,	kvm_posted_intr_nested_ipi),
+};
+
+static noinstr void fred_extint(struct pt_regs *regs)
+{
+	unsigned int vector = regs->fred_ss.vector;
+	unsigned int index = array_index_nospec(vector - FIRST_SYSTEM_VECTOR,
+						NR_SYSTEM_VECTORS);
+
+	if (WARN_ON_ONCE(vector < FIRST_EXTERNAL_VECTOR))
+		return;
+
+	if (likely(vector >= FIRST_SYSTEM_VECTOR)) {
+		irqentry_state_t state = irqentry_enter(regs);
+
+		instrumentation_begin();
+		sysvec_table[index](regs);
+		instrumentation_end();
+		irqentry_exit(regs, state);
+	} else {
+		common_interrupt(regs, vector);
+	}
+}
+
+static noinstr void fred_hwexc(struct pt_regs *regs, unsigned long error_code)
+{
+	/* Optimize for #PF. That's the only exception which matters performance wise */
+	if (likely(regs->fred_ss.vector == X86_TRAP_PF))
+		return exc_page_fault(regs, error_code);
+
+	switch (regs->fred_ss.vector) {
+	case X86_TRAP_DE: return exc_divide_error(regs);
+	case X86_TRAP_DB: return fred_exc_debug(regs);
+	case X86_TRAP_BR: return exc_bounds(regs);
+	case X86_TRAP_UD: return exc_invalid_op(regs);
+	case X86_TRAP_NM: return exc_device_not_available(regs);
+	case X86_TRAP_DF: return exc_double_fault(regs, error_code);
+	case X86_TRAP_TS: return exc_invalid_tss(regs, error_code);
+	case X86_TRAP_NP: return exc_segment_not_present(regs, error_code);
+	case X86_TRAP_SS: return exc_stack_segment(regs, error_code);
+	case X86_TRAP_GP: return exc_general_protection(regs, error_code);
+	case X86_TRAP_MF: return exc_coprocessor_error(regs);
+	case X86_TRAP_AC: return exc_alignment_check(regs, error_code);
+	case X86_TRAP_XF: return exc_simd_coprocessor_error(regs);
+
+#ifdef CONFIG_X86_MCE
+	case X86_TRAP_MC: return fred_exc_machine_check(regs);
+#endif
+#ifdef CONFIG_INTEL_TDX_GUEST
+	case X86_TRAP_VE: return exc_virtualization_exception(regs);
+#endif
+#ifdef CONFIG_X86_CET
+	case X86_TRAP_CP: return exc_control_protection(regs, error_code);
+#endif
+	default: return fred_bad_type(regs, error_code);
+	}
+
+}
+
+static noinstr void fred_swexc(struct pt_regs *regs, unsigned long error_code)
+{
+	switch (regs->fred_ss.vector) {
+	case X86_TRAP_BP: return exc_int3(regs);
+	case X86_TRAP_OF: return exc_overflow(regs);
+	default: return fred_bad_type(regs, error_code);
+	}
+}
+
+__visible noinstr void fred_entry_from_user(struct pt_regs *regs)
+{
+	unsigned long error_code = regs->orig_ax;
+
+	/* Invalidate orig_ax so that syscall_get_nr() works correctly */
+	regs->orig_ax = -1;
+
+	switch (regs->fred_ss.type) {
+	case EVENT_TYPE_EXTINT:
+		return fred_extint(regs);
+	case EVENT_TYPE_NMI:
+		if (likely(regs->fred_ss.vector == X86_TRAP_NMI))
+			return fred_exc_nmi(regs);
+		break;
+	case EVENT_TYPE_HWEXC:
+		return fred_hwexc(regs, error_code);
+	case EVENT_TYPE_SWINT:
+		return fred_intx(regs);
+	case EVENT_TYPE_PRIV_SWEXC:
+		if (likely(regs->fred_ss.vector == X86_TRAP_DB))
+			return fred_exc_debug(regs);
+		break;
+	case EVENT_TYPE_SWEXC:
+		return fred_swexc(regs, error_code);
+	case EVENT_TYPE_OTHER:
+		return fred_other(regs);
+	default: break;
+	}
+
+	return fred_bad_type(regs, error_code);
+}
+
+__visible noinstr void fred_entry_from_kernel(struct pt_regs *regs)
+{
+	unsigned long error_code = regs->orig_ax;
+
+	/* Invalidate orig_ax so that syscall_get_nr() works correctly */
+	regs->orig_ax = -1;
+
+	switch (regs->fred_ss.type) {
+	case EVENT_TYPE_EXTINT:
+		return fred_extint(regs);
+	case EVENT_TYPE_NMI:
+		if (likely(regs->fred_ss.vector == X86_TRAP_NMI))
+			return fred_exc_nmi(regs);
+		break;
+	case EVENT_TYPE_HWEXC:
+		return fred_hwexc(regs, error_code);
+	case EVENT_TYPE_PRIV_SWEXC:
+		if (likely(regs->fred_ss.vector == X86_TRAP_DB))
+			return fred_exc_debug(regs);
+		break;
+	case EVENT_TYPE_SWEXC:
+		return fred_swexc(regs, error_code);
+	default: break;
+	}
+
+	return fred_bad_type(regs, error_code);
+}
diff --git a/arch/x86/include/asm/asm-prototypes.h b/arch/x86/include/asm/asm-prototypes.h
index b1a98fa38828..076bf8dee702 100644
--- a/arch/x86/include/asm/asm-prototypes.h
+++ b/arch/x86/include/asm/asm-prototypes.h
@@ -12,6 +12,7 @@
 #include <asm/special_insns.h>
 #include <asm/preempt.h>
 #include <asm/asm.h>
+#include <asm/fred.h>
 #include <asm/gsseg.h>
 
 #ifndef CONFIG_X86_CMPXCHG64
diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index f514fdb5a39f..16a64ffecbf8 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -60,6 +60,12 @@ static __always_inline unsigned long fred_event_data(struct pt_regs *regs)
 	return fred_info(regs)->edata;
 }
 
+void asm_fred_entrypoint_user(void);
+void asm_fred_entrypoint_kernel(void);
+
+__visible void fred_entry_from_user(struct pt_regs *regs);
+__visible void fred_entry_from_kernel(struct pt_regs *regs);
+
 #else /* CONFIG_X86_FRED */
 static __always_inline unsigned long fred_event_data(struct pt_regs *regs) { return 0; }
 #endif /* CONFIG_X86_FRED */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 09 22:17:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Dec 2023 22:17:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651143.1016840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rC5dz-0005So-NQ; Sat, 09 Dec 2023 22:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651143.1016840; Sat, 09 Dec 2023 22:17:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rC5dz-0005Sh-Kf; Sat, 09 Dec 2023 22:17:55 +0000
Received: by outflank-mailman (input) for mailman id 651143;
 Sat, 09 Dec 2023 22:17: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 1rC5dy-0005SV-IQ; Sat, 09 Dec 2023 22:17: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 1rC5dy-0003Si-4x; Sat, 09 Dec 2023 22:17: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 1rC5dx-0008HQ-Rx; Sat, 09 Dec 2023 22:17:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rC5dx-0006ja-RW; Sat, 09 Dec 2023 22: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=C2pSzalFuJGh3FG6ESYaKUsvCA3RV6EQEtMRQgOgphc=; b=2zkJJGvXd1zZotTf0OZ2ybITnP
	OeUqsNNOkBZCXLORT3ZcATblKzudq3rQIvG5rVE6O8wEBr8BFdXaBcF4ckdoc97SdCOEgxuptwWjn
	d2LpQzDp2IVoJfaNtcTCbhqhzpqeEVnBOIhb/F6fkW9OvcgHB73c7qbOdGw7ltK+REF8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184053-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184053: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:build-arm64-xsm:xen-build:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install:fail:heisenbug
    xen-unstable:test-arm64-arm64-xl-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-credit2: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-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-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-amd64-i386-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-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=bc4fe94a69d4dab103c37045d97e589ef75f8647
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 09 Dec 2023 22:17:53 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 build-arm64-xsm               6 xen-build      fail in 184044 REGR. vs. 184031

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install    fail pass in 184044

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-xl-xsm       1 build-check(1)           blocked in 184044 n/a
 test-arm64-arm64-libvirt-xsm  1 build-check(1)           blocked in 184044 n/a
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop  fail in 184044 like 184031
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-credit2  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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
 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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  bc4fe94a69d4dab103c37045d97e589ef75f8647
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    2 days
Testing same since   184036  2023-12-08 10:40:52 Z    1 days    3 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Juergen Gross <jgross@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Sun Dec 10 00:10:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 00:10:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651165.1016857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rC7Os-0006Mp-Fv; Sun, 10 Dec 2023 00:10:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651165.1016857; Sun, 10 Dec 2023 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 1rC7Os-0006Mi-Cw; Sun, 10 Dec 2023 00:10:26 +0000
Received: by outflank-mailman (input) for mailman id 651165;
 Sun, 10 Dec 2023 00:10: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 1rC7Oq-0006MY-Hl; Sun, 10 Dec 2023 00:10: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 1rC7Oq-00060I-7a; Sun, 10 Dec 2023 00:10: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 1rC7Op-0003Lp-Ta; Sun, 10 Dec 2023 00:10:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rC7Op-0007Xx-Sy; Sun, 10 Dec 2023 00:10: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:Message-Id:Subject:To;
	bh=uMMNVAEPmnrhF96IbPh0015g7avckmVbvyi9DscEzOM=; b=r7eK6OvE1jEgTiSAY1BndYvDUt
	IK5UDVjiWMCeOmCweH9GNLtj4tnrwnkKGkRpfqIoTvxECG7YVWZCQClO05eb3jgVIY0Vi9AB1NTHM
	n7puurtINDExASiTB15/AquKB9QffAd0JtKtFA9EXGbNnbixckIn/MECA3uior0el8tc=;
To: xen-devel@lists.xenproject.org
Subject: [xen-unstable bisection] complete test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm
Message-Id: <E1rC7Op-0007Xx-Sy@osstest.test-lab.xenproject.org>
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 10 Dec 2023 00:10:23 +0000

branch xen-unstable
xenbranch xen-unstable
job test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm
testid debian-hvm-install

Tree: linux git://xenbits.xen.org/linux-pvops.git
Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git
Tree: qemu git://xenbits.xen.org/qemu-xen-traditional.git
Tree: qemuu git://xenbits.xen.org/qemu-xen.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:  bc4fe94a69d4dab103c37045d97e589ef75f8647
  Bug not present: e6e8c5831a64420a56f83e87919ed157ab810fab
  Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/184065/


  commit bc4fe94a69d4dab103c37045d97e589ef75f8647
  Author: Juergen Gross <jgross@suse.com>
  Date:   Thu Dec 7 07:25:51 2023 +0100
  
      tools/libs/evtchn: replace assert()s in stubdom with proper locking
      
      In tools/libs/evtchn/minios.c there are assert()s for the current
      thread being the main thread when binding an event channel.
      
      As Mini-OS is supporting multiple threads, there is no real reason
      why the binding shouldn't be allowed to happen in any other thread.
      
      Drop the assert()s and replace them with proper locking of the
      port_list.
      
      Signed-off-by: Juergen Gross <jgross@suse.com>
      Reviewed-by: Jason Andryuk <jandryuk@gmail.com>


For bisection revision-tuple graph see:
   http://logs.test-lab.xenproject.org/osstest/results/bisect/xen-unstable/test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm.debian-hvm-install.html
Revision IDs in each graph node refer, respectively, to the Trees above.

----------------------------------------
Running cs-bisection-step --graph-out=/home/logs/results/bisect/xen-unstable/test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm.debian-hvm-install --summary-out=tmp/184065.bisection-summary --basis-template=184031 --blessings=real,real-bisect,real-retry xen-unstable test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm debian-hvm-install
Searching for failure / basis pass:
 184053 fail [host=sabro0] / 184031 [host=albana1] 184020 [host=elbling0] 184005 [host=italia0] 183996 [host=sabro1] 183990 [host=elbling1] 183983 [host=godello0] 183978 [host=nobling1] 183974 [host=fiano0] 183971 [host=italia1] 183965 [host=rimava1] 183959 [host=nobling0] 183952 [host=godello1] 183938 [host=debina0] 183922 [host=himrod0] 183877 [host=fiano1] 183860 [host=albana0] 183855 [host=nobling0] 183852 [host=debina1] 183847 [host=italia0] 183839 [host=albana1] 183831 ok.
Failure / basis pass flights: 184053 / 183831
(tree with no url: minios)
(tree with no url: ovmf)
(tree with no url: seabios)
Tree: linux git://xenbits.xen.org/linux-pvops.git
Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git
Tree: qemu git://xenbits.xen.org/qemu-xen-traditional.git
Tree: qemuu git://xenbits.xen.org/qemu-xen.git
Tree: xen git://xenbits.xen.org/xen.git
Latest c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
Basis pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 c22fe7213c9b1f99cbc64c33e391afa223f9cd08
Generating revisions with ./adhoc-revtuple-generator  git://xenbits.xen.org/linux-pvops.git#c3038e718a19fc596f7b1baba0f83d5146dc7784-c3038e718a19fc596f7b1baba0f83d5146dc7784 git://xenbits.xen.org/osstest/linux-firmware.git#c530a75c1e6a472b0eb9558310b518f0dfcd8860-c530a75c1e6a472b0eb9558310b518f0dfcd8860 git://xenbits.xen.org/qemu-xen-traditional.git#3d273dd05e51e5a1ffba3d98c7437ee84e8f8764-3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 git://xenbits.xen.org/qemu-xen.git#0df9387c8983e1b1e72d8c574356f57\
 2342c03e6-0df9387c8983e1b1e72d8c574356f572342c03e6 git://xenbits.xen.org/xen.git#c22fe7213c9b1f99cbc64c33e391afa223f9cd08-bc4fe94a69d4dab103c37045d97e589ef75f8647
Loaded 5001 nodes in revision graph
Searching for test results:
 183831 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 c22fe7213c9b1f99cbc64c33e391afa223f9cd08
 183839 [host=albana1]
 183847 [host=italia0]
 183852 [host=debina1]
 183855 [host=nobling0]
 183860 [host=albana0]
 183877 [host=fiano1]
 183922 [host=himrod0]
 183938 [host=debina0]
 183952 [host=godello1]
 183959 [host=nobling0]
 183965 [host=rimava1]
 183971 [host=italia1]
 183990 [host=elbling1]
 183974 [host=fiano0]
 183978 [host=nobling1]
 183983 [host=godello0]
 183996 [host=sabro1]
 184005 [host=italia0]
 184020 [host=elbling0]
 184031 [host=albana1]
 184036 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184043 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 c22fe7213c9b1f99cbc64c33e391afa223f9cd08
 184046 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184048 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 7e1f5b68acc70a16f0848fb6b87a5eab9833663a
 184049 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 d830b0a7bc7e82289b6280a28aaa4fefd54e6e19
 184050 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 24b267269599d3c6043ea1af529e64a241fd00f0
 184044 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184052 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 cddc66b1ea80bed653fce43d5cd98221dabbccf6
 184054 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 23792cc0f22cff4e106d838b83aa9ae1cb6ffaf4
 184055 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 d2b7c442b4a066bb670ee83e24800cabc415241d
 184057 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab
 184060 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184061 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab
 184062 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184053 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184063 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab
 184065 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
Searching for interesting versions
 Result found: flight 183831 (pass), for basis pass
 For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab, results HASH(0x5633fb1277b8) HASH(0x5633fb12f4a0) HASH(0x5633fabd9d60) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8\
 983e1b1e72d8c574356f572342c03e6 d2b7c442b4a066bb670ee83e24800cabc415241d, results HASH(0x5633fb11f470) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 23792cc0f22cff4e106d838b83aa9ae1cb6ffaf4, results HASH(0x5633fb11d768) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f\
 0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 cddc66b1ea80bed653fce43d5cd98221dabbccf6, results HASH(0x5633fb123aa8) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 24b267269599d3c6043ea1af529e64a241fd00f0, results HASH(0x5633fb12daf8) For basis failure, parent search stopping at c3038e718a19\
 fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 d830b0a7bc7e82289b6280a28aaa4fefd54e6e19, results HASH(0x5633fb1234a8) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 7e1f5b68acc70a16f0848fb6b87a5eab9833663a, results HASH(0x5633fb1237a\
 8) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 c22fe7213c9b1f99cbc64c33e391afa223f9cd08, results HASH(0x5633fb126eb8) HASH(0x5633fb1357e0) Result found: flight 184036 (fail), for basis failure (at ancestor ~2514)
 Repro found: flight 184043 (pass), for basis pass
 Repro found: flight 184044 (fail), for basis failure
 0 revisions at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab
No revisions left to test, checking graph state.
 Result found: flight 184057 (pass), for last pass
 Result found: flight 184060 (fail), for first failure
 Repro found: flight 184061 (pass), for last pass
 Repro found: flight 184062 (fail), for first failure
 Repro found: flight 184063 (pass), for last pass
 Repro found: flight 184065 (fail), for first failure

*** Found and reproduced problem changeset ***

  Bug is in tree:  xen git://xenbits.xen.org/xen.git
  Bug introduced:  bc4fe94a69d4dab103c37045d97e589ef75f8647
  Bug not present: e6e8c5831a64420a56f83e87919ed157ab810fab
  Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/184065/


  commit bc4fe94a69d4dab103c37045d97e589ef75f8647
  Author: Juergen Gross <jgross@suse.com>
  Date:   Thu Dec 7 07:25:51 2023 +0100
  
      tools/libs/evtchn: replace assert()s in stubdom with proper locking
      
      In tools/libs/evtchn/minios.c there are assert()s for the current
      thread being the main thread when binding an event channel.
      
      As Mini-OS is supporting multiple threads, there is no real reason
      why the binding shouldn't be allowed to happen in any other thread.
      
      Drop the assert()s and replace them with proper locking of the
      port_list.
      
      Signed-off-by: Juergen Gross <jgross@suse.com>
      Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

pnmtopng: 247 colors found
Revision graph left in /home/logs/results/bisect/xen-unstable/test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm.debian-hvm-install.{dot,ps,png,html,svg}.
----------------------------------------
184065: tolerable ALL FAIL

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

Failures :-/ but no regressions.

Tests which did not succeed,
including tests which could not be run:
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail baseline untested


jobs:
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        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 Sun Dec 10 02:46:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 02:46:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651181.1016876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rC9pW-00019w-Ei; Sun, 10 Dec 2023 02:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651181.1016876; Sun, 10 Dec 2023 02: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 1rC9pW-00019o-AQ; Sun, 10 Dec 2023 02:46:06 +0000
Received: by outflank-mailman (input) for mailman id 651181;
 Sun, 10 Dec 2023 02: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 1rC9pV-00019e-IO; Sun, 10 Dec 2023 02: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 1rC9pV-0007eL-6Z; Sun, 10 Dec 2023 02: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 1rC9pU-0001VF-Pr; Sun, 10 Dec 2023 02:46:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rC9pU-0005nj-PL; Sun, 10 Dec 2023 02:46: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=AnK7IQLdsc5zMe2fcLjsXk39AnApx+NvXYVtPxKE9hw=; b=zZJJWF6ihnA+w+qLre+qoJ1yhG
	apIQJKW5rgoX0m4K0I5fSAKYoZUvnMS2MndjLMM64ExxqMTd9y5w/wjeZIvvKSDZng3BboQKdk/Fv
	mAv4VBeSGBuYP1rkhytQaXH2CZJbz3dft+lGKjEQVJGF9HfpL275x1lWpEZ0suwwW4mU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184056-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184056: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-amd64-amd64-freebsd11-amd64:guest-start.2:fail:heisenbug
    linux-linus:test-amd64-amd64-libvirt-qcow2:guest-start/debian.repeat:fail:heisenbug
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-qemuu-debianhvm-amd64-xsm: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-libvirt: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-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2: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
X-Osstest-Versions-This:
    linux=f2e8a57ee9036c7d5443382b6c3c09b51a92ec7e
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 10 Dec 2023 02:46:04 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-freebsd11-amd64 22 guest-start.2          fail pass in 184047
 test-amd64-amd64-libvirt-qcow2 19 guest-start/debian.repeat fail pass in 184047

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 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

version targeted for testing:
 linux                f2e8a57ee9036c7d5443382b6c3c09b51a92ec7e
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    7 days
Failing since        183977  2023-12-03 00:12:06 Z    7 days   14 attempts
Testing same since   184047  2023-12-09 05:50:52 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Luke D. Jones" <luke@ljones.dev>
  "NÃ­colas F. R. A. Prado" <nfraprado@collabora.com>
  <urbinek@gmail.com>
  Adam Ford <aford173@gmail.com>
  AdriÃ¡n Larumbe <adrian.larumbe@collabora.com>
  Ahmad Fatoum <a.fatoum@pengutronix.de>
  Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
  Alex Bee <knaerzche@gmail.com>
  Alex Deucher <alexander.deucher@amd.com>
  Alex Williamson <alex.williamson@redhat.com>
  Alexander Gordeev <agordeev@linux.ibm.com>
  Alexander Stein <alexander.stein@ew.tq-group.com>
  Alexis Belmonte <alexbelm48@gmail.com>
  Alvin Lee <alvin.lee2@amd.com>
  Alyssa Ross <hi@alyssa.is>
  Andrew Jones <ajones@ventanamicro.com>
  Andrew Morton <akpm@linux-foundation.org>
  Andrii Nakryiko <andrii@kernel.org>
  Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  Antoniu Miclaus <antoniu.miclaus@analog.com>
  Antti Palosaari <crope@iki.fi>
  Armin Wolf <W_Armin@gmx.de>
  Arnd Bergmann <arnd@arndb.de>
  Bagas Sanjaya <bagasdotme@gmail.com>
  Baoquan He <bhe@redhat.com>
  Bin Li <bin.li@canonical.com>
  Bitao Hu <yaoma@linux.alibaba.com>
  BjÃ¶rn TÃ¶pel <bjorn@rivosinc.com>
  Brett Creeley <brett.creeley@amd.com>
  Catalin Marinas <catalin.marinas@arm.com>
  Chancel Liu <chancel.liu@nxp.com>
  Charles Keepax <ckeepax@opensource.cirrus.com>
  Charlie Jenkins <charlie@rivosinc.com>
  Chen Wang <unicorn_wang@outlook.com>
  Chen-Yu Tsai <wenst@chromium.org>
  Chester Lin <clin@suse.com>
  Christophe JAILLET <christophe.jaillet@wanadoo.fr>
  ChunHao Lin <hau@realtek.com>
  ClÃ©ment LÃ©ger <cleger@rivosinc.com>
  Colin Ian King <colin.i.king@gmail.com>
  Conor Dooley <conor.dooley@microchip.com>
  D. Wythe <alibuda@linux.alibaba.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniel Wheeler <daniel.wheeler@amd.com>
  Daniel Xu <dxu@dxuuu.xyz>
  Daniil Maximov <daniil31415it@gmail.com>
  Danilo Krummrich <dakr@redhat.com>
  Dave Airlie <airlied@redhat.com>
  Dave Hansen <dave.hansen@linux.intel.com>
  David Hildenbrand <david@redhat.com>
  David Howells <dhowells@redhat.com>
  David Jeffery <djeffery@redhat.com>
  David Lin <CTLIN0@nuvoton.com>
  David Rau <David.Rau.opensource@dm.renesas.com>
  David S. Miller <davem@davemloft.net>
  David Thompson <davthompson@nvidia.com>
  Dinghao Liu <dinghao.liu@zju.edu.cn>
  Dmitry Antipov <dmantipov@yandex.ru>
  Dmitry Safonov <dima@arista.com>
  Douglas Anderson <dianders@chromium.org>
  Erhard Furtner <erhard_f@mailbox.org>
  Eric DeVolder <eric_devolder@yahoo.com>
  Eric Dumazet <edumazet@google.com>
  Eric Woudstra <ericwouds@gmail.com>
  Eugen Hristev <eugen.hristev@collabora.com>
  Eugenio PÃ©rez <eperezma@redhat.com>
  Fabio Estevam <festevam@denx.de>
  Florian Fainelli <florian.fainelli@broadcom.com>
  Florian Westphal <fw@strlen.de>
  Florian-Ewald Mueller <florian-ewald.mueller@ionos.com>
  Francesco Dolcini <francesco.dolcini@toradex.com>
  Frank Wunderlich <frank-w@public-files.de>
  Geetha sowjanya <gakula@marvell.com>
  Geethasowjanya Akula <gakula@marvell.com>
  Georg Gottleuber <ggo@tuxedocomputers.com>
  Grant Grundler <grundler@chromium.org>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Grzegorz Prajsner <grzegorz.prajsner@ionos.com>
  Guangwu Zhang <guazhang@redhat.com>
  Guenter Roeck <linux@roeck-us.net>
  Haibo Chen <haibo.chen@nxp.com>
  Hannes Reinecke <hare@suse.de>
  Hans de Goede <hdegoede@redhat.com>
  Hawking Zhang <Hawking.Zhang@amd.com>
  Hayes Wang <hayeswang@realtek.com>
  Heiko Carstens <hca@linux.ibm.com>
  Heiko Stuebner <heiko.stuebner@cherry.de>
  Heiko Stuebner <heiko@sntech.de>
  Heiner Kallweit <hkallweit1@gmail.com>
  Helge Deller <deller@gmx.de>
  heminhong <heminhong@kylinos.cn>
  Hsin-Yi Wang <hsinyi@chromium.org>
  Hugh Dickins <hughd@google.com>
  Hui Zhou <hui.zhou@corigine.com>
  Ido Schimmel <idosch@nvidia.com>
  Ignat Korchagin <ignat@cloudflare.com>       [compile-time only]
  Ilpo JÃ¤rvinen <ilpo.jarvinen@linux.intel.com>
  Ilya Leoshkevich <iii@linux.ibm.com>
  Inki Dae <inki.dae@samsung.com>
  Ivan Lipski <ivlipski@amd.com>
  Ivan Orlov <ivan.orlov0322@gmail.com>
  Ivan Vecera <ivecera@redhat.com>
  Jack Wang <jinpu.wang@ionos.com>
  Jacob Keller <jacob.e.keller@intel.com>
  Jakub Kicinski <kuba@kernel.org>
  Jani Nikula <jani.nikula@intel.com>
  Jason Gunthorpe <jgg@nvidia.com>
  Jason Wang <jasowang@redhat.com>
  Jason Zhang <jason.zhang@rock-chips.com>
  Jens Axboe <axboe@kernel.dk>
  Jens Wiklander <jens.wiklander@linaro.org>
  Jeremy Soller <jeremy@system76.com>
  Jerome Forissier <jerome.forissier@linaro.org>
  Jiadong Zhu <Jiadong.Zhu@amd.com>
  Jianheng Zhang <Jianheng.Zhang@synopsys.com>
  Jiexun Wang <wangjiexun@tinylab.org>
  Jijie Shao <shaojijie@huawei.com>
  Jiri Olsa <jolsa@kernel.org>
  Joao Martins <joao.m.martins@oracle.com>
  Johan Hovold <johan+linaro@kernel.org>
  John Fastabend <john.fastabend@gmail.com>
  Jonas Karlman <jonas@kwiboo.se>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Junxian Huang <huangjunxian6@hisilicon.com>
  Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
  Kamil Duljas <kamil.duljas@gmail.com>
  Keith Busch <kbusch@kernel.org>
  Kelly Kane <kelly@hawknetworks.com>
  Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
  Kunwu Chan <chentao@kylinos.cn>
  Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
  Laurence Oberman <loberman@redhat.com>
  Lee Jones <lee@kernel.org>
  Leon Romanovsky <leon@kernel.org>
  Li Ma <li.ma@amd.com>
  Lijo Lazar <lijo.lazar@amd.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Liu Shixin <liushixin2@huawei.com>
  Liu Ying <victor.liu@nxp.com>
  Lizhi Xu <lizhi.xu@windriver.com>
  Lorenzo Bianconi <lorenzo@kernel.org>
  Lorenzo Pieralisi <lpieralisi@kernel.org>
  Louis Peens <louis.peens@corigine.com>
  Luca Ceresoli <luca.ceresoli@bootlin.com>
  Lukasz Luba <lukasz.luba@arm.com>
  Luke D. Jones <luke@ljones.dev>
  Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  Maciej Strozek <mstrozek@opensource.cirrus.com>
  Magnus Karlsson <magnus.karlsson@intel.com>
  Malcolm Hart <malcolm@5harts.com>
  Marcin Szycik <marcin.szycik@linux.intel.com>
  Marian Postevca <posteuca@mutex.one>
  Mario Limonciello <mario.limonciello@amd.com>
  Mark Brown <broonie@kernel.org>
  Mark Hasemeyer <markhas@chromium.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Matthias Reichl <hias@horus.com>
  Matus Malych <matus@malych.org>
  Md Haris Iqbal <haris.iqbal@ionos.com>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Michael Walle <mwalle@kernel.org>
  Michal Smulski <michal.smulski@ooma.com>
  Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
  Mike Kravetz <mike.kravetz@oracle.com>
  Mike Marciniszyn <mike.marciniszyn@intel.com>
  Ming Lei <ming.lei@redhat.com>
  Mustafa Ismail <mustafa.ismail@intel.com>
  Namjae Jeon <linkinjeon@kernel.org>
  Nathan Rossi <nathan.rossi@digi.com>
  Naveen Mamindlapalli <naveenm@marvell.com>
  Neal Cardwell <ncardwell@google.com>
  Neil Armstrong <neil.armstrong@linaro.org>
  Nicholas Piggin <npiggin@gmail.com>
  Nico Pache <npache@redhat.com>
  Nitesh Shetty <nj.shetty@samsung.com>
  Nithin Dabilpuram <ndabilpuram@marvell.com>
  NÃ­colas F. R. A. Prado <nfraprado@collabora.com>
  Oleg Nesterov <oleg@redhat.com>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Palmer Dabbelt <palmer@rivosinc.com>
  Paolo Abeni <pabeni@redhat.com>
  Pascal NoÃ«l <pascal@pascalcompiles.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Pavel Begunkov <asml.silence@gmail.com>
  Peng Fan <peng.fan@nxp.com>
  Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  Peter Xu <peterx@redhat.com>
  Petr Pavlu <petr.pavlu@suse.com>
  Phil Sutter <phil@nwl.cc>
  Philip Mueller <philm@manjaro.org>
  Philipp Zabel <p.zabel@pengutronix.de>
  Phillip Susi <phill@thesusis.net>
  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  Rafal Romanowski <rafal.romanowski@intel.com>
  Rahul Bhansali <rbhansali@marvell.com>
  Randy Dunlap <rdunlap@infradead.org>
  Randy Dunlap <rdunlap@infradead.org> # build-tested
  Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
  Rob Herring <robh@kernel.org>
  Robin Murphy <robin.murphy@arm.com>
  Rodrigo Siqueira <rodrigo.siqueira@amd.com>
  Roland Hieber <rhi@pengutronix.de>
  Roman Gushchin (Cruise) <roman.gushchin@linux.dev>
  Roman Gushchin <roman.gushchin@linux.dev>
  Roman Li <Roman.Li@amd.com>
  Ryusuke Konishi <konishi.ryusuke@gmail.com>
  Sam Edwards <CFSworks@gmail.com>
  Samuel Holland <samuel.holland@sifive.com>
  Santosh Kumar Pradhan <santosh.pradhan@ionos.com>
  Sarah Grant <s@srd.tw>
  Sascha Hauer <s.hauer@pengutronix.de>
  Sean Christopherson <seanjc@google.com>
  Sean Nyekjaer <sean@geanix.com>
  Selvin Xavier <selvin.xavier@broadcom.com>
  SeongJae Park <sj@kernel.org>
  Shakeel Butt <shakeelb@google.com>
  Shannon Nelson <shannon.nelson@amd.com>
  Shawn Guo <shawn.guo@linaro.org>
  Shawn Guo <shawnguo@kernel.org>
  Shengjiu Wang <shengjiu.wang@nxp.com>
  Shifeng Li <lishifeng1992@126.com>
  Shifeng Li <lishifeng@sangfor.com.cn>
  Shigeru Yoshida <syoshida@redhat.com>
  Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
  Shiraz Saleem <shiraz.saleem@intel.com>
  Shuming Fan <shumingf@realtek.com>
  Sidhartha Kumar <sidhartha.kumar@oracle.com>
  Simon Horman <horms@kernel.org> # build-tested
  Song Liu <song@kernel.org>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Stefan Eichenberger <stefan.eichenberger@toradex.com>
  Stefan Kerkmann <s.kerkmann@pengutronix.de>
  Stefan Wahren <wahrenst@gmx.net>
  Stefano Garzarella <sgarzare@redhat.com>
  Steve French <stfrench@microsoft.com>
  Steve Sistare <steven.sistare@oracle.com>
  Steven Price <steven.price@arm.com>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Su Hui <suhui@nfschina.com>
  Subbaraya Sundeep <sbhatta@marvell.com>
  Sudeep Holla <sudeep.holla@arm.com>
  Suman Ghosh <sumang@marvell.com>
  Sumanth Korikkar <sumanthk@linux.ibm.com>
  Sumit Garg <sumit.garg@linaro.org>
  Sunil Goutham <sgoutham@marvell.com>
  Takashi Iwai <tiwai@suse.de>
  Takashi Sakamoto <o-takashi@sakamocchi.jp>
  Tejun Heo <tj@kernel.org>
  Thinh Tran <thinhtr@linux.vnet.ibm.com>
  Thomas Gleixner <tglx@linutronix.de>
  Thomas Reichinger <thomas.reichinger@sohard.de>
  Thomas Zimmermann <tzimmermann@suse.de>
  Tim Bosse <flinn@timbos.se>
  Tim Crawford <tcrawford@system76.com>
  Tim Van Patten <timvp@google.com>
  Timothy Pearson <tpearson@raptorengineering.com>
  Timur Tabi <ttabi@nvidia.com>
  Tobias Waldekranz <tobias@waldekranz.com>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Uwe Kleine-KÃ¶nig <u.kleine-koenig@pengutronix.de>
  Venkata Sai Duggi <venkata.sai.duggi@ibm.com>
  Ville SyrjÃ¤lÃ¤ <ville.syrjala@linux.intel.com>
  Vlastimil Babka <vbabka@suse.cz>
  Wen Gu <guwen@linux.alibaba.com>
  Werner Sembach <wse@tuxedocomputers.com>
  Woody Suwalski <terraluna977@gmail.com>
  wuqiang.matt <wuqiang.matt@bytedance.com>
  Xiang Yang <xiangyang3@huawei.com>
  Xiao Ni <xni@redhat.com>
  Xiaolei Wang <xiaolei.wang@windriver.com>
  Yang Wang <kevinyang.wang@amd.com>
  Yang Yingliang <yangyingliang@huawei.com>
  Yewon Choi <woni9911@gmail.com>
  Yonghong Song <yonghong.song@linux.dev>
  Yonglong Liu <liuyonglong@huawei.com>
  Yu Kuai <yukuai3@huawei.com>
  Zhipeng Lu <alexious@zju.edu.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                                             fail    
 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-freebsd11-amd64                             fail    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 9989 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Dec 10 06:22:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 06:22:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651208.1016909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCDCO-0006a1-TX; Sun, 10 Dec 2023 06:21:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651208.1016909; Sun, 10 Dec 2023 06:21:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCDCO-0006Zu-Oz; Sun, 10 Dec 2023 06:21:56 +0000
Received: by outflank-mailman (input) for mailman id 651208;
 Sun, 10 Dec 2023 06:21: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=jZy7=HV=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCDCN-0006Iw-Sa
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 06:21:55 +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 69633985-9724-11ee-9b0f-b553b5be7939;
 Sun, 10 Dec 2023 07:21:54 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 8AA261F820;
 Sun, 10 Dec 2023 06:21:52 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 1E0B613240;
 Sun, 10 Dec 2023 06:21:52 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id wBMTBgBZdWUVewAAn2gu4w
 (envelope-from <jgross@suse.com>); Sun, 10 Dec 2023 06:21: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: 69633985-9724-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702189313; 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=s43tT/0lOWwUKHb7lEKdLQRTdpPjlepqBNd7X0Dbxp4=;
	b=iV2S/SN68AnHCPuTA4B+OCXBJGdDtJzng17vG6sNvSrXUCaZ8erm2NPo7mxqI+IqFgJ9fk
	mn7JgkhYXYh5YlDY4UNoEP/WKRwzo4DYCDjSi0eVTxPwXgiGHizqvfePBbMVRgMqLtd/+x
	qtlBW7HhdwOy0HkiKK2GF8He5Jpe4qI=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702189312; 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=s43tT/0lOWwUKHb7lEKdLQRTdpPjlepqBNd7X0Dbxp4=;
	b=L24jNeEl/v4SRBtE0Xj8cuP/cx9jQ6U1NsnPNqsrCppuJ+HAxpYRxRorATau5W+yepOy7n
	m0hLnOB7NjgHGnqaZETpACIFiskiyxeBbhLTGS+cYArXoM7yWyH/zeuLSv/IReu333wKA9
	wliJKvY7hJ0O9kwx2VZAeh1eXC+jUgg=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ajay Kaher <akaher@vmware.com>,
	Alexey Makhalov <amakhalov@vmware.com>,
	VMware PV-Drivers Reviewers <pv-drivers@vmware.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v6 2/5] x86/paravirt: move some functions and defines to alternative
Date: Sun, 10 Dec 2023 07:21:35 +0100
Message-Id: <20231210062138.2417-3-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231210062138.2417-1-jgross@suse.com>
References: <20231210062138.2417-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ****************
X-Spam-Score: 17.00
X-Spam-Flag: NO
X-Spamd-Result: default: False [-6.94 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 NEURAL_HAM_SHORT(-0.13)[-0.634];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-3.00)[100.00%];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 RCPT_COUNT_TWELVE(0.00)[18];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Rspamd-Server: rspamd1
X-Spam-Level: 
X-Rspamd-Queue-Id: 8AA261F820
X-Spam-Score: -6.94
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=L24jNeEl;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com;
	dmarc=pass (policy=quarantine) header.from=suse.com

As a preparation for replacing paravirt patching completely by
alternative patching, move some backend functions and #defines to
alternative code and header.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V4:
- rename x86_nop() to nop_func() and x86_BUG() to BUG_func() (Boris
  Petkov)
---
 arch/x86/include/asm/alternative.h        | 16 ++++++++++++
 arch/x86/include/asm/paravirt.h           | 12 ---------
 arch/x86/include/asm/paravirt_types.h     |  4 +--
 arch/x86/include/asm/qspinlock_paravirt.h |  4 +--
 arch/x86/kernel/alternative.c             | 10 ++++++++
 arch/x86/kernel/kvm.c                     |  4 +--
 arch/x86/kernel/paravirt.c                | 30 +++++++----------------
 arch/x86/xen/irq.c                        |  2 +-
 8 files changed, 41 insertions(+), 41 deletions(-)

diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h
index 65f79092c9d9..ce788ab4e77c 100644
--- a/arch/x86/include/asm/alternative.h
+++ b/arch/x86/include/asm/alternative.h
@@ -330,6 +330,22 @@ static inline int alternatives_text_reserved(void *start, void *end)
  */
 #define ASM_NO_INPUT_CLOBBER(clbr...) "i" (0) : clbr
 
+/* Macro for creating assembler functions avoiding any C magic. */
+#define DEFINE_ASM_FUNC(func, instr, sec)		\
+	asm (".pushsection " #sec ", \"ax\"\n"		\
+	     ".global " #func "\n\t"			\
+	     ".type " #func ", @function\n\t"		\
+	     ASM_FUNC_ALIGN "\n"			\
+	     #func ":\n\t"				\
+	     ASM_ENDBR					\
+	     instr "\n\t"				\
+	     ASM_RET					\
+	     ".size " #func ", . - " #func "\n\t"	\
+	     ".popsection")
+
+void BUG_func(void);
+void nop_func(void);
+
 #else /* __ASSEMBLY__ */
 
 #ifdef CONFIG_SMP
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index aa76ac7c806c..f18bfa7f3070 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -720,18 +720,6 @@ static __always_inline unsigned long arch_local_irq_save(void)
 #undef PVOP_VCALL4
 #undef PVOP_CALL4
 
-#define DEFINE_PARAVIRT_ASM(func, instr, sec)		\
-	asm (".pushsection " #sec ", \"ax\"\n"		\
-	     ".global " #func "\n\t"			\
-	     ".type " #func ", @function\n\t"		\
-	     ASM_FUNC_ALIGN "\n"			\
-	     #func ":\n\t"				\
-	     ASM_ENDBR					\
-	     instr "\n\t"				\
-	     ASM_RET					\
-	     ".size " #func ", . - " #func "\n\t"	\
-	     ".popsection")
-
 extern void default_banner(void);
 void native_pv_lock_init(void) __init;
 
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 483e19e5ca7a..166e9618158f 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -540,8 +540,6 @@ int paravirt_disable_iospace(void);
 	__PVOP_VCALL(op, PVOP_CALL_ARG1(arg1), PVOP_CALL_ARG2(arg2),	\
 		     PVOP_CALL_ARG3(arg3), PVOP_CALL_ARG4(arg4))
 
-void _paravirt_nop(void);
-void paravirt_BUG(void);
 unsigned long paravirt_ret0(void);
 #ifdef CONFIG_PARAVIRT_XXL
 u64 _paravirt_ident_64(u64);
@@ -551,7 +549,7 @@ void pv_native_irq_enable(void);
 unsigned long pv_native_read_cr2(void);
 #endif
 
-#define paravirt_nop	((void *)_paravirt_nop)
+#define paravirt_nop	((void *)nop_func)
 
 extern struct paravirt_patch_site __parainstructions[],
 	__parainstructions_end[];
diff --git a/arch/x86/include/asm/qspinlock_paravirt.h b/arch/x86/include/asm/qspinlock_paravirt.h
index 85b6e3609cb9..ef9697f20129 100644
--- a/arch/x86/include/asm/qspinlock_paravirt.h
+++ b/arch/x86/include/asm/qspinlock_paravirt.h
@@ -56,8 +56,8 @@ __PV_CALLEE_SAVE_REGS_THUNK(__pv_queued_spin_unlock_slowpath, ".spinlock.text");
 	"pop    %rdx\n\t"						\
 	FRAME_END
 
-DEFINE_PARAVIRT_ASM(__raw_callee_save___pv_queued_spin_unlock,
-		    PV_UNLOCK_ASM, .spinlock.text);
+DEFINE_ASM_FUNC(__raw_callee_save___pv_queued_spin_unlock,
+		PV_UNLOCK_ASM, .spinlock.text);
 
 #else /* CONFIG_64BIT */
 
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index be35c8ccf826..ca25dd280b8c 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -385,6 +385,16 @@ apply_relocation(u8 *buf, size_t len, u8 *dest, u8 *src, size_t src_len)
 	}
 }
 
+/* Low-level backend functions usable from alternative code replacements. */
+DEFINE_ASM_FUNC(nop_func, "", .entry.text);
+EXPORT_SYMBOL_GPL(nop_func);
+
+noinstr void BUG_func(void)
+{
+	BUG();
+}
+EXPORT_SYMBOL_GPL(BUG_func);
+
 /*
  * Replace instructions with better alternatives for this CPU type. This runs
  * before SMP is initialized to avoid SMP problems with self modifying code.
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 0ddb3bd0f1aa..c461c1a4b6af 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -803,8 +803,8 @@ extern bool __raw_callee_save___kvm_vcpu_is_preempted(long);
  "cmpb   $0, " __stringify(KVM_STEAL_TIME_preempted) "+steal_time(%rax)\n\t" \
  "setne  %al\n\t"
 
-DEFINE_PARAVIRT_ASM(__raw_callee_save___kvm_vcpu_is_preempted,
-		    PV_VCPU_PREEMPTED_ASM, .text);
+DEFINE_ASM_FUNC(__raw_callee_save___kvm_vcpu_is_preempted,
+		PV_VCPU_PREEMPTED_ASM, .text);
 #endif
 
 static void __init kvm_guest_init(void)
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 97f1436c1a20..acc5b1004f0f 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -34,14 +34,8 @@
 #include <asm/io_bitmap.h>
 #include <asm/gsseg.h>
 
-/*
- * nop stub, which must not clobber anything *including the stack* to
- * avoid confusing the entry prologues.
- */
-DEFINE_PARAVIRT_ASM(_paravirt_nop, "", .entry.text);
-
 /* stub always returning 0. */
-DEFINE_PARAVIRT_ASM(paravirt_ret0, "xor %eax,%eax", .entry.text);
+DEFINE_ASM_FUNC(paravirt_ret0, "xor %eax,%eax", .entry.text);
 
 void __init default_banner(void)
 {
@@ -49,12 +43,6 @@ void __init default_banner(void)
 	       pv_info.name);
 }
 
-/* Undefined instruction for dealing with missing ops pointers. */
-noinstr void paravirt_BUG(void)
-{
-	BUG();
-}
-
 static unsigned paravirt_patch_call(void *insn_buff, const void *target,
 				    unsigned long addr, unsigned len)
 {
@@ -64,11 +52,11 @@ static unsigned paravirt_patch_call(void *insn_buff, const void *target,
 }
 
 #ifdef CONFIG_PARAVIRT_XXL
-DEFINE_PARAVIRT_ASM(_paravirt_ident_64, "mov %rdi, %rax", .text);
-DEFINE_PARAVIRT_ASM(pv_native_save_fl, "pushf; pop %rax", .noinstr.text);
-DEFINE_PARAVIRT_ASM(pv_native_irq_disable, "cli", .noinstr.text);
-DEFINE_PARAVIRT_ASM(pv_native_irq_enable, "sti", .noinstr.text);
-DEFINE_PARAVIRT_ASM(pv_native_read_cr2, "mov %cr2, %rax", .noinstr.text);
+DEFINE_ASM_FUNC(_paravirt_ident_64, "mov %rdi, %rax", .text);
+DEFINE_ASM_FUNC(pv_native_save_fl, "pushf; pop %rax", .noinstr.text);
+DEFINE_ASM_FUNC(pv_native_irq_disable, "cli", .noinstr.text);
+DEFINE_ASM_FUNC(pv_native_irq_enable, "sti", .noinstr.text);
+DEFINE_ASM_FUNC(pv_native_read_cr2, "mov %cr2, %rax", .noinstr.text);
 #endif
 
 DEFINE_STATIC_KEY_TRUE(virt_spin_lock_key);
@@ -96,9 +84,9 @@ unsigned int paravirt_patch(u8 type, void *insn_buff, unsigned long addr,
 	unsigned ret;
 
 	if (opfunc == NULL)
-		/* If there's no function, patch it with paravirt_BUG() */
-		ret = paravirt_patch_call(insn_buff, paravirt_BUG, addr, len);
-	else if (opfunc == _paravirt_nop)
+		/* If there's no function, patch it with BUG_func() */
+		ret = paravirt_patch_call(insn_buff, BUG_func, addr, len);
+	else if (opfunc == nop_func)
 		ret = 0;
 	else
 		/* Otherwise call the function. */
diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
index 6092fea7d651..39982f955cfe 100644
--- a/arch/x86/xen/irq.c
+++ b/arch/x86/xen/irq.c
@@ -45,7 +45,7 @@ static const typeof(pv_ops) xen_irq_ops __initconst = {
 		/* Initial interrupt flag handling only called while interrupts off. */
 		.save_fl = __PV_IS_CALLEE_SAVE(paravirt_ret0),
 		.irq_disable = __PV_IS_CALLEE_SAVE(paravirt_nop),
-		.irq_enable = __PV_IS_CALLEE_SAVE(paravirt_BUG),
+		.irq_enable = __PV_IS_CALLEE_SAVE(BUG_func),
 
 		.safe_halt = xen_safe_halt,
 		.halt = xen_halt,
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 06:22:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 06:22:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651207.1016897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCDCD-0006J9-JA; Sun, 10 Dec 2023 06:21:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651207.1016897; Sun, 10 Dec 2023 06:21:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCDCD-0006J2-GV; Sun, 10 Dec 2023 06:21:45 +0000
Received: by outflank-mailman (input) for mailman id 651207;
 Sun, 10 Dec 2023 06:21: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=jZy7=HV=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCDCC-0006Iw-Ut
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 06:21:45 +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 6230f3a2-9724-11ee-9b0f-b553b5be7939;
 Sun, 10 Dec 2023 07:21:42 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 0EFA421FB5;
 Sun, 10 Dec 2023 06:21:41 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 8B5AC13240;
 Sun, 10 Dec 2023 06:21:40 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id JTVQIPRYdWUFewAAn2gu4w
 (envelope-from <jgross@suse.com>); Sun, 10 Dec 2023 06:21: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: 6230f3a2-9724-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702189301; 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=eMbINGogkyxk7Eq7pz90fULe5xNfa98e3nj/JUFDdnE=;
	b=Sa5kv9s/RLfuNkHAGfZA47cCUM3t1TguXEd4UUr8PBVXwVuxvRUrGvbSmcMM82986I9yEJ
	N5Hd6l3hgU0llsK4NZE7q74PIPMoL5IEl2SSvd1WyPQ49Ii3T+9azPmY0E7SmSLO24kM0j
	dnrZ2iAYVmtgxX4miD6yeSQn9kytD2M=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702189301; 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=eMbINGogkyxk7Eq7pz90fULe5xNfa98e3nj/JUFDdnE=;
	b=Sa5kv9s/RLfuNkHAGfZA47cCUM3t1TguXEd4UUr8PBVXwVuxvRUrGvbSmcMM82986I9yEJ
	N5Hd6l3hgU0llsK4NZE7q74PIPMoL5IEl2SSvd1WyPQ49Ii3T+9azPmY0E7SmSLO24kM0j
	dnrZ2iAYVmtgxX4miD6yeSQn9kytD2M=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Ajay Kaher <akaher@vmware.com>,
	Alexey Makhalov <amakhalov@vmware.com>,
	VMware PV-Drivers Reviewers <pv-drivers@vmware.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>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v6 0/5] 86/paravirt: Get rid of paravirt patching
Date: Sun, 10 Dec 2023 07:21:33 +0100
Message-Id: <20231210062138.2417-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ****************
X-Spam-Flag: NO
X-Spam-Score: 16.72
X-Spam-Level: 
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="Sa5kv9s/";
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [-3.91 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-3.00)[100.00%];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 NEURAL_SPAM_SHORT(2.90)[0.968];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 RCPT_COUNT_TWELVE(0.00)[18];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -3.91
X-Rspamd-Queue-Id: 0EFA421FB5
X-Spam-Flag: NO

This is a small series getting rid of paravirt patching by switching
completely to alternative patching for the same functionality.

The basic idea is to add the capability to switch from indirect to
direct calls via a special alternative patching option.

This removes _some_ of the paravirt macro maze, but most of it needs
to stay due to the need of hiding the call instructions from the
compiler in order to avoid needless register save/restore.

What is going away is the nasty stacking of alternative and paravirt
patching and (of course) the special .parainstructions linker section.

I have tested the series on bare metal and as Xen PV domain to still
work.

Note that objtool might need some changes to cope with the new
indirect call patching mechanism. Additionally some paravirt handling
can probably be removed from it.

Changes in V6:
- addressed Boris' comments

Changes in V5:
- addressed Boris' comments
- rebased on top of the tip/master branch

Changes in V4:
- addressed Boris' comments in patch 1
- fixed bugs found by kernel test robot (patch 2)

Changes in V3:
- split v2 patch 3 into 2 patches as requested by Peter and Ingo

Changes in V2:
- split last patch into 2
- rebase of patch 2 as suggested by Peter
- addressed Peter's comments for patch 3

Juergen Gross (5):
  x86/paravirt: introduce ALT_NOT_XEN
  x86/paravirt: move some functions and defines to alternative
  x86/alternative: add indirect call patching
  x86/paravirt: switch mixed paravirt/alternative calls to alternative_2
  x86/paravirt: remove no longer needed paravirt patching code

 arch/x86/include/asm/alternative.h        |  30 ++++-
 arch/x86/include/asm/paravirt.h           |  77 ++++--------
 arch/x86/include/asm/paravirt_types.h     |  85 +++++---------
 arch/x86/include/asm/qspinlock_paravirt.h |   4 +-
 arch/x86/include/asm/text-patching.h      |  12 --
 arch/x86/kernel/alternative.c             | 136 +++++++++++-----------
 arch/x86/kernel/callthunks.c              |  17 ++-
 arch/x86/kernel/kvm.c                     |   4 +-
 arch/x86/kernel/module.c                  |  20 +---
 arch/x86/kernel/paravirt.c                |  54 +--------
 arch/x86/kernel/vmlinux.lds.S             |  13 ---
 arch/x86/tools/relocs.c                   |   2 +-
 arch/x86/xen/irq.c                        |   2 +-
 13 files changed, 169 insertions(+), 287 deletions(-)

-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 10:13:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 10:13:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651267.1016936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCGnx-0006yx-6H; Sun, 10 Dec 2023 10:12:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651267.1016936; Sun, 10 Dec 2023 10:12:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCGnx-0006yq-2v; Sun, 10 Dec 2023 10:12:57 +0000
Received: by outflank-mailman (input) for mailman id 651267;
 Sun, 10 Dec 2023 10:12: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 1rCGnv-0006yg-4P; Sun, 10 Dec 2023 10:12: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 1rCGnu-0000Im-Vi; Sun, 10 Dec 2023 10:12: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 1rCGnu-0004g4-KL; Sun, 10 Dec 2023 10:12:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCGnu-00079V-Jr; Sun, 10 Dec 2023 10:12: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=rLwN5F5Ni0/LoVDZQGQy5HTvrcWpvjZOzSaPiij2MFQ=; b=1a3jSqyEEcg2MxIKSLldrvajyB
	D3bONmspU082/QG30WFLxyY3C2M2TybIWJYZVS1JUoMjdpguCq5B2ggxQl5jzxXdYhcDodHTuBYG1
	B7Zag1Og1KtYqI6cDPh7o8YjJ57gc295hCrqej15AsBhzHedgpIMeXDbNR+Mr4Pu+rok=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184064-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184064: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-credit2: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-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-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-amd64-i386-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-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=bc4fe94a69d4dab103c37045d97e589ef75f8647
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 10 Dec 2023 10:12:54 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-credit2  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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
 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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  bc4fe94a69d4dab103c37045d97e589ef75f8647
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    2 days
Testing same since   184036  2023-12-08 10:40:52 Z    1 days    4 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Juergen Gross <jgross@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Sun Dec 10 13:00:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 13:00:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651303.1016952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCJQ1-0004Ba-6w; Sun, 10 Dec 2023 13:00:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651303.1016952; Sun, 10 Dec 2023 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 1rCJQ1-0004BT-2u; Sun, 10 Dec 2023 13:00:25 +0000
Received: by outflank-mailman (input) for mailman id 651303;
 Sun, 10 Dec 2023 13:00: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 1rCJPz-0004BJ-RL; Sun, 10 Dec 2023 13:00: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 1rCJPz-0003Nl-FY; Sun, 10 Dec 2023 13:00: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 1rCJPy-0004bq-TZ; Sun, 10 Dec 2023 13:00:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCJPy-0000is-T7; Sun, 10 Dec 2023 13:00: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=h/yXjhIOalIUvXwsQUA4OvnsrbLMVM8/LhGJ0hjpwf0=; b=0PEX+jCGMcN8Kh+S2EyqR10SdA
	LSYvfgHy/Ky5o0e9+HQhH7pdqrL4CAbx/pEvhMOwJrMI4IaQQniZfs25of73m7i6p0aWEwRiCzpN0
	iF6mcvip1AsWxbVStOMGC4iZplIwJymanCPAtZe/okxCGvPsosFHcj9m9h6M/lLXdU0g=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184068-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184068: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-dom0pvh-xl-amd:guest-start/debian.repeat:fail:regression
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-amd64-amd64-freebsd11-amd64:guest-start/freebsd.repeat:fail:regression
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-qemuu-debianhvm-amd64-xsm: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-libvirt: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-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2: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
X-Osstest-Versions-This:
    linux=21b73ffcc62ab772bc06e3e90bd87eff5e9e8ed4
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 10 Dec 2023 13:00:22 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-dom0pvh-xl-amd 22 guest-start/debian.repeat fail REGR. vs. 183973
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973
 test-amd64-amd64-freebsd11-amd64 21 guest-start/freebsd.repeat fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 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

version targeted for testing:
 linux                21b73ffcc62ab772bc06e3e90bd87eff5e9e8ed4
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    8 days
Failing since        183977  2023-12-03 00:12:06 Z    7 days   15 attempts
Testing same since   184068  2023-12-10 02:49:21 Z    0 days    1 attempts

------------------------------------------------------------
323 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                                             fail    
 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-freebsd11-amd64                             fail    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 11791 lines long.)


From xen-devel-bounces@lists.xenproject.org Sun Dec 10 14:45:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 14:45:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651318.1016967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCL3F-0000y1-LI; Sun, 10 Dec 2023 14:45:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651318.1016967; Sun, 10 Dec 2023 14:45: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 1rCL3F-0000xu-Ig; Sun, 10 Dec 2023 14:45:01 +0000
Received: by outflank-mailman (input) for mailman id 651318;
 Sun, 10 Dec 2023 14:45: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=E32Y=HV=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rCL3E-0000xm-7n
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 14:45:00 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id af8e8149-976a-11ee-9b0f-b553b5be7939;
 Sun, 10 Dec 2023 15:44:57 +0100 (CET)
Received: from mg.gitlab.com (65.90.74.34.bc.googleusercontent.com
 [34.74.90.65]) by
 ea7e0c31de7e with SMTP id 6575cee7621ab3edff8c67d3 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Sun, 10 Dec 2023 14:44:55 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: af8e8149-976a-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702219495; x=1702226695; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=vtOYutZlvEJb9CxgK0ix9Qa25YncKE+SCvo4wnfujyg=;
 b=SoEvSnAFwo+FLTfHGX6T7BB66RySTjTW/AIOalSpAKAjQpHJrhRfzU+qov6Up0thYNLP651StlCEA+nR2bUKTFtFngGZpz20x+NT3LOB88u5RfPQFg1kkF1Yl59l0YngsP3bBf+RyYYSj0SPIrhBYjr/cg3fK1UR904064ou8Ss=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Sun, 10 Dec 2023 14:44:55 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6575cee756302_2d950c4116995@gitlab-sidekiq-catchall-v2-7fb69c6569-7xsnf.mail>
Subject: xen | Successful pipeline for staging | bc4fe94a
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6575cee5ce307_2d950c4116874";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1101778169
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6575cee5ce307_2d950c4116874
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1101778169 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: bc4fe94a ( https://gitlab.com/xen-project/xen/-/commit/bc4fe94a69d4dab103c37045d97e589ef75f8647 )
Commit Message: tools/libs/evtchn: replace assert()s in stubdom...
Commit Author: Juergen Gross ( https://gitlab.com/jgross1 )
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )



Pipeline #1101778169 ( https://gitlab.com/xen-project/xen/-/pipelines/1101778169 ) triggered by Andrew Cooper ( https://gitlab.com/andyhhp )
successfully completed 133 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | bc4fe94a</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1101778169 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/bc4fe94a69d4dab103=
c37045d97e589ef75f8647" style=3D"color: #3777b0; text-decoration: none;">=
bc4fe94a</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
tools/libs/evtchn: replace assert()s in stubdom...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/0cac9c91cba4579c288f4be83125f17e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jgross1" style=3D"color: #3=
33333; text-decoration: none;">
Juergen Gross
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110177=
8169" style=3D"color: #3777b0; text-decoration: none;">#1101778169</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6cb22538f3a82e4ee99e1d0419f62385?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 133 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6575cee5ce307_2d950c4116874--


From xen-devel-bounces@lists.xenproject.org Sun Dec 10 14:58:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 14:58:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651359.1016978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCLG5-0003Fa-Ul; Sun, 10 Dec 2023 14:58:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651359.1016978; Sun, 10 Dec 2023 14:58:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCLG5-0003FT-Re; Sun, 10 Dec 2023 14:58:17 +0000
Received: by outflank-mailman (input) for mailman id 651359;
 Sun, 10 Dec 2023 14:58: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 1rCLG4-0003FJ-Kv; Sun, 10 Dec 2023 14:58: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 1rCLG4-0005MX-D0; Sun, 10 Dec 2023 14:58: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 1rCLG4-0002BG-1R; Sun, 10 Dec 2023 14:58:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCLG4-0007Ih-0r; Sun, 10 Dec 2023 14:58: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=c8SX8OluQ2UavL+tvTWX4/5Uxs0AotqI6KFyIyHvGVM=; b=gPia+uRGMyO1eh+NrndpuFlpcR
	CrDqJKzPcSMsvCPCj8kxgWdSt+lxfH/5RBnZOvhHFS51Zqqh6huyg54hH/cYN+JSmWOFEhHFGX6u6
	eOr4bw/32aXKBUNaqmqZr7kWi3BqzMKNAVe5ZiFKNAa+IhfNUhPdEyLdFb2Lls/nxe6U=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184069-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184069: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-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-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-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=1a2f33cb593e6bf4913d97143bf76d5e7f866912
X-Osstest-Versions-That:
    libvirt=06e344f762bb2a31bfbdecbf0da9736373c19cce
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 10 Dec 2023 14:58:16 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184033
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184033
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184033
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              1a2f33cb593e6bf4913d97143bf76d5e7f866912
baseline version:
 libvirt              06e344f762bb2a31bfbdecbf0da9736373c19cce

Last test of basis   184033  2023-12-08 04:20:31 Z    2 days
Testing same since   184045  2023-12-09 04:25:29 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  GÃ¶ran Uddeborg <goeran@uddeborg.se>
  Jim Fehlig <jfehlig@suse.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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   06e344f762..1a2f33cb59  1a2f33cb593e6bf4913d97143bf76d5e7f866912 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sun Dec 10 16:16:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:16:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651372.1017013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMTJ-0006gi-6z; Sun, 10 Dec 2023 16:16:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651372.1017013; Sun, 10 Dec 2023 16:16:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMTJ-0006gZ-49; Sun, 10 Dec 2023 16:16:01 +0000
Received: by outflank-mailman (input) for mailman id 651372;
 Sun, 10 Dec 2023 16:15: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=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCMTH-0006fF-B8
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:15:59 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f400:7e89::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65197ba2-9777-11ee-9b0f-b553b5be7939;
 Sun, 10 Dec 2023 17:15:56 +0100 (CET)
Received: from CY8PR11CA0046.namprd11.prod.outlook.com (2603:10b6:930:4a::6)
 by IA1PR12MB7519.namprd12.prod.outlook.com (2603:10b6:208:418::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Sun, 10 Dec
 2023 16:15:50 +0000
Received: from CY4PEPF0000E9D2.namprd03.prod.outlook.com
 (2603:10b6:930:4a:cafe::e4) by CY8PR11CA0046.outlook.office365.com
 (2603:10b6:930:4a::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Sun, 10 Dec 2023 16:15:49 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9D2.mail.protection.outlook.com (10.167.241.145) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:15:49 +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.34; Sun, 10 Dec
 2023 10:15:43 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65197ba2-9777-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PfqbCwPVUJ+Y86f4IlIm0klx9RE8h/+d22GupL4sfNeIlMVaJPd32JfEYRuKe/GTGSf3+Fxe+DFDX7t9hdQ9QvG6hDSS/wV5wcyBgzxKnKrMeInCpQHzUOQYUzyl+/s2QU0efsJUE30N/2V5DqJHlsNpBipmpSIBeECJYkP/9mUirCpSaIC0oLmXIYp7Cot3xSrsdlTsTlLkVB8B44PM6KZdCxJIVsdn58RaemTy0CuAm4+FtvbG5Q0kEdQ+Z0hK//u9jvf7JmYuv2WPVBbuRwV8n615bNmrYv/3VvZJ7DAlFvV5ZD0M7xaJzay/RaHaO483PpVBgfux/MmudpLTBQ==
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=7ZzpD1Q9U1FBd+Cui/rhmlxEnZC6P7a6CPX3YbcNCVg=;
 b=YTVhdXMFxxkOsdFJFvrtW8yKIdnTgZxCmdsH3DcnXCvBuprQupSxSEPTukTZr73YgjhI/HOe9j4LvZ8S+DURyX9eC0TZ2hG/YIIVM7MFiCqZhElXYbT3xMwxFaAGpngGuaA606+C7l/kzp5S2C8tiqhZBWTtfJa5QCQqO85GlD2c/6hFS4b9+FvJNsc7rbycAi+nMAx1VMB0A08EZXE1jPnvRyFoloBeDgM7j67RatwMFiGTZ1rOtLhrbC8O55beZ5JGIwkIeGEIZSKEvNoS+nUrNnZuFNrporYIOn38+hnzINonDzlVsYXNoR32R/iMDnip4a8iPVKh6PmGZ4mT4g==
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=7ZzpD1Q9U1FBd+Cui/rhmlxEnZC6P7a6CPX3YbcNCVg=;
 b=MLxN6e6ZzFCUfT2P6aRtvwpUy1pg30VtMWaLy6eGM6p6+3wkKmj7FpeIJCc/fdclJPhjTKZczqloDxBbzaUSaAzZjqNM81i68sTMI4Pmtefztcl5Eghb0bevHxhr7jqci+ywoU0AH/ATt6Em3+sfJT3mQm2oKW6Um1YPp1/7tI8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, "Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, "Thomas
 Gleixner" <tglx@linutronix.de>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
CC: <linux-kernel@vger.kernel.org>, <linux-pci@vger.kernel.org>,
	<linux-acpi@vger.kernel.org>, <xen-devel@lists.xenproject.org>, Alex Deucher
	<Alexander.Deucher@amd.com>, Christian Koenig <Christian.Koenig@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, "Julia
 Zhang" <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [RFC KERNEL PATCH v3 2/3] xen/pvh: Setup gsi and map pirq for passthrough device
Date: Mon, 11 Dec 2023 00:15:18 +0800
Message-ID: <20231210161519.1550860-3-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
References: <20231210161519.1550860-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D2:EE_|IA1PR12MB7519:EE_
X-MS-Office365-Filtering-Correlation-Id: ef4d8cc1-c0af-4dd5-99af-08dbf99b4644
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	rLD43QNXwEf9iZU2ACpTh2OyKu1vfqhy8LHHGgJC1/egSOQpVjtONHY6dPyJF72SNm5RQBEZmtO/QPYDK/jo0bOSpcFx6HWn8IyJ+uzsvXLMhGDjeP44Kz0USFqsois5BsZZ8xxHXN7LeRzFItHkBNWP1ntmKBhrzSGQ589K3M7jDArvCIKuYCDRFyIqfsJtnwjlHWdMZA5sec4cuGgJT2oy9VOb7L/hM5TlWHL/I7McObsrSobpspL/9CNLffOCmHfIBYeioGEPjjGMooL9AYy5NhHrf2xuqKqPI6Ky9sbbBBxvT1Ldgq819WoEMh7MQfEJcVmgnyeBKiymOfhhx1K7nomgZpniCQGGO5s3Gjwgjn1VuZHcJoT1zyIFOVlQ9d5BWbohtU3hrZXP1yLp5MF3ozgjaAGvAf6k0aI+u03HPQIJQmm1Jp5vuG2kQrekwTmtyBvZbrN7Jy4oZ9T7WM/WSprdn7TzsS/dXFNJbrQlrX6QhF+/J0IRCATd1MuDEGPv04wgF0f19TCEdnhblwH56kxUoMpQUlFAC2ZJ7HY/0OUY96chLLDPs51wNiTKEdO+vT032s4tP71sWpRUDfkRgid6y5MgqTSAG2FA9upAuJkgR23bJwIzwnMmnQTkdTmfcgR/qH4KaQQMBOdf8gJQPZ4+PxEh/fHCjTu9LboW8vK1EqdzaGXNIOeyAAgFc8Unu2fMtX+xDeUFmu0VTLyh1/s0NkVJ1xSJ6Pk0bJhuNZ+qPCU4XiwDf19wx6n2fQdYemw5DBJhMQXbTGY0Tw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(376002)(346002)(396003)(136003)(230922051799003)(82310400011)(64100799003)(186009)(1800799012)(451199024)(46966006)(40470700004)(36840700001)(40460700003)(1076003)(26005)(16526019)(2616005)(336012)(426003)(7696005)(6666004)(36860700001)(83380400001)(47076005)(5660300002)(7416002)(41300700001)(2906002)(4326008)(478600001)(8676002)(8936002)(70206006)(70586007)(110136005)(316002)(54906003)(82740400003)(81166007)(86362001)(356005)(36756003)(40480700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:15:49.6111
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ef4d8cc1-c0af-4dd5-99af-08dbf99b4644
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D2.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7519

When dom0 is PVH, the gsi isn't be unmasked, that causes two
problems.

First, in 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 domU.

When assign a device to passthrough, proactively setup the gsi
of the device during that process.

Second, for hvm guest, it allocates a pirq and irq for a
passthrough device by using gsi, before that, the gsi must first
have a mapping in dom0, see Xen code
pci_add_dm_done->xc_domain_irq_permission, it calls into Xen and
check whether dom0 has the mapping. But currently PVH dom0 uses
the kernel local interrupt mechanism instead of the pirq. So if
passthrough a device to guest on PVH dom0, it will fail at the
permission checking.

When assign a device to passthrough, proactively map priq for the
gsi of the device during that process.

Co-developed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 arch/x86/xen/enlighten_pvh.c       | 116 +++++++++++++++++++++++++++++
 drivers/acpi/pci_irq.c             |   2 +-
 drivers/xen/xen-pciback/pci_stub.c |   8 ++
 include/linux/acpi.h               |   1 +
 include/xen/acpi.h                 |   1 +
 5 files changed, 127 insertions(+), 1 deletion(-)

diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
index ada3868c02c2..d74a221bfb81 100644
--- a/arch/x86/xen/enlighten_pvh.c
+++ b/arch/x86/xen/enlighten_pvh.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/acpi.h>
 #include <linux/export.h>
+#include <linux/pci.h>
 
 #include <xen/hvc-console.h>
 
@@ -25,6 +26,121 @@
 bool __ro_after_init xen_pvh;
 EXPORT_SYMBOL_GPL(xen_pvh);
 
+typedef struct gsi_info {
+	u32 gsi;
+	int trigger;
+	int polarity;
+	int pirq;
+} gsi_info_t;
+
+struct acpi_prt_entry {
+	struct acpi_pci_id	id;
+	u8			pin;
+	acpi_handle		link;
+	u32			index;		/* GSI, or link _CRS index */
+};
+
+static int xen_pvh_get_gsi_info(struct pci_dev *dev,
+								gsi_info_t *gsi_info)
+{
+	int gsi;
+	u8 pin = 0;
+	struct acpi_prt_entry *entry;
+	int trigger = ACPI_LEVEL_SENSITIVE;
+	int polarity = acpi_irq_model == ACPI_IRQ_MODEL_GIC ?
+				      ACPI_ACTIVE_HIGH : ACPI_ACTIVE_LOW;
+
+	if (dev)
+		pin = dev->pin;
+	if (!dev || !pin || !gsi_info)
+		return -EINVAL;
+
+	entry = acpi_pci_irq_lookup(dev, pin);
+	if (entry) {
+		if (entry->link)
+			gsi = acpi_pci_link_allocate_irq(entry->link,
+							 entry->index,
+							 &trigger, &polarity,
+							 NULL);
+		else
+			gsi = entry->index;
+	} else
+		return -EINVAL;
+
+	if (gsi < 0)
+		return -EINVAL;
+
+	gsi_info->gsi = gsi;
+	gsi_info->trigger = trigger;
+	gsi_info->polarity = polarity;
+
+	return 0;
+}
+
+static int xen_pvh_setup_gsi(gsi_info_t *gsi_info)
+{
+	struct physdev_setup_gsi setup_gsi;
+
+	if (!gsi_info)
+		return -EINVAL;
+
+	setup_gsi.gsi = gsi_info->gsi;
+	setup_gsi.triggering = (gsi_info->trigger == ACPI_EDGE_SENSITIVE ? 0 : 1);
+	setup_gsi.polarity = (gsi_info->polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
+
+	return HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
+}
+
+static int xen_pvh_map_pirq(gsi_info_t *gsi_info)
+{
+	struct physdev_map_pirq map_irq;
+	int ret;
+
+	if (!gsi_info)
+		return -EINVAL;
+
+	map_irq.domid = DOMID_SELF;
+	map_irq.type = MAP_PIRQ_TYPE_GSI;
+	map_irq.index = gsi_info->gsi;
+	map_irq.pirq = gsi_info->gsi;
+
+	ret = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
+	gsi_info->pirq = map_irq.pirq;
+
+	return ret;
+}
+
+int xen_pvh_passthrough_gsi(struct pci_dev *dev)
+{
+	int ret;
+	gsi_info_t gsi_info;
+
+	if (!dev)
+		return -EINVAL;
+
+	ret = xen_pvh_get_gsi_info(dev, &gsi_info);
+	if (ret) {
+		xen_raw_printk("Fail to get gsi info!\n");
+		return ret;
+	}
+
+	ret = xen_pvh_setup_gsi(&gsi_info);
+	if (ret == -EEXIST) {
+		ret = 0;
+		xen_raw_printk("Already setup the GSI :%u\n", gsi_info.gsi);
+	} else if (ret) {
+		xen_raw_printk("Fail to setup gsi (%d)!\n", gsi_info.gsi);
+		return ret;
+	}
+
+	ret = xen_pvh_map_pirq(&gsi_info);
+	if (ret)
+		xen_raw_printk("Fail to map pirq for gsi (%d)!\n", gsi_info.gsi);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(xen_pvh_passthrough_gsi);
+
 void __init xen_pvh_init(struct boot_params *boot_params)
 {
 	u32 msr;
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index ff30ceca2203..630fe0a34bc6 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -288,7 +288,7 @@ static int acpi_reroute_boot_interrupt(struct pci_dev *dev,
 }
 #endif /* CONFIG_X86_IO_APIC */
 
-static struct acpi_prt_entry *acpi_pci_irq_lookup(struct pci_dev *dev, int pin)
+struct acpi_prt_entry *acpi_pci_irq_lookup(struct pci_dev *dev, int pin)
 {
 	struct acpi_prt_entry *entry = NULL;
 	struct pci_dev *bridge;
diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
index 24f599eaec14..c3aeefbf4ba1 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -20,6 +20,7 @@
 #include <linux/atomic.h>
 #include <xen/events.h>
 #include <xen/pci.h>
+#include <xen/acpi.h>
 #include <xen/xen.h>
 #include <asm/xen/hypervisor.h>
 #include <xen/interface/physdev.h>
@@ -427,6 +428,13 @@ static int pcistub_init_device(struct pci_dev *dev)
 			goto config_release;
 		pci_restore_state(dev);
 	}
+
+	if (xen_initial_domain() && xen_pvh_domain()) {
+		err = xen_pvh_passthrough_gsi(dev);
+		if (err)
+			goto config_release;
+	}
+
 	/* Now disable the device (this also ensures some private device
 	 * data is setup before we export)
 	 */
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 54189e0e5f41..a211bdcdd6ff 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -360,6 +360,7 @@ void acpi_unregister_gsi (u32 gsi);
 
 struct pci_dev;
 
+struct acpi_prt_entry *acpi_pci_irq_lookup(struct pci_dev *dev, int pin);
 int acpi_pci_irq_enable (struct pci_dev *dev);
 void acpi_penalize_isa_irq(int irq, int active);
 bool acpi_isa_irq_available(int irq);
diff --git a/include/xen/acpi.h b/include/xen/acpi.h
index b1e11863144d..ce7f5554f88e 100644
--- a/include/xen/acpi.h
+++ b/include/xen/acpi.h
@@ -67,6 +67,7 @@ static inline void xen_acpi_sleep_register(void)
 		acpi_suspend_lowlevel = xen_acpi_suspend_lowlevel;
 	}
 }
+int xen_pvh_passthrough_gsi(struct pci_dev *dev);
 #else
 static inline void xen_acpi_sleep_register(void)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 16:16:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:16:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651370.1016993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMT6-00068x-Il; Sun, 10 Dec 2023 16:15:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651370.1016993; Sun, 10 Dec 2023 16:15: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 1rCMT6-00068q-GA; Sun, 10 Dec 2023 16:15:48 +0000
Received: by outflank-mailman (input) for mailman id 651370;
 Sun, 10 Dec 2023 16: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=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCMT4-0005py-Lt
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:15:47 +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 5dc5e79f-9777-11ee-98e8-6d05b1d4d9a1;
 Sun, 10 Dec 2023 17:15:43 +0100 (CET)
Received: from CYZPR05CA0044.namprd05.prod.outlook.com (2603:10b6:930:a3::23)
 by BY5PR12MB4194.namprd12.prod.outlook.com (2603:10b6:a03:210::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Sun, 10 Dec
 2023 16:15:39 +0000
Received: from CY4PEPF0000E9D1.namprd03.prod.outlook.com
 (2603:10b6:930:a3:cafe::89) by CYZPR05CA0044.outlook.office365.com
 (2603:10b6:930:a3::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.21 via Frontend
 Transport; Sun, 10 Dec 2023 16:15:38 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9D1.mail.protection.outlook.com (10.167.241.144) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:15:38 +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.34; Sun, 10 Dec
 2023 10:15:32 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5dc5e79f-9777-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=m9jcXsMOJcheojG0j33JvAFnX7EPx9B7V+jF0QHUE/8QkYQhsna+sHd2EGwJ4Eb102vOI3ytz+1mjmaFQhs3MqLfRCM1b6kSJwoIJpmjscVw3slWRfG7THcTBP9gRGX6XkU/coC7kpjKOIeILu4WPi5RTJ7A1ovZwBJj/vgp4LQo/3AFYFSFtegLoo/DReTuJl6XXk8geacZcPnNJtEf+IN909RZSamjcJkN5Q3qThggdt305XLmGK6xoo4yQnirbCA4CqMvhS/E3uBuluNqkiIs0cQQpkOJSkmo2FqdOMSh3BsUwxZ0K96BhxOTFFmqln4nLep2AgO8UdCz6EKeQA==
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=jTOwWH8hZtBfEwSEXMP8D8XX9nppVNLQOx6Jg7+Cj6g=;
 b=MWCZywXwNZkafUgZHrLUTnNDwCyeektgyyckoS4zqz8tNzJ9xdhL08iCvOdph4GIy+9Jqh+ZJHgzh8vnEizdA5fl5Wi1areVrU6xB8F63zyDro97+PXajEb0GmqEfBMjn0ifl8F2s0JU+jyLg6MomDB/uSzDA76ju+REBFwBYwZWduy1Zv1Vgji4iqU4+9DdloYj+9dd7M4X7pRoLLviYfJavlcZRzVnw36EQM7waiiTggePeqTNRiWw0IV6orWZg/rje8WuOU9C7k/q7c9X4CKiunnGLa12reEtoIm7xrCYfu3kHp/tK9r568dmYIeYzBtv1CsUS6U1rBGmC7eULg==
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=jTOwWH8hZtBfEwSEXMP8D8XX9nppVNLQOx6Jg7+Cj6g=;
 b=RRolg0YH/99AEkuOqWd8zhSXwRb0njLvSBx0dej8V8FvZvndKLVpqoda9YlV6ef9Jc/D2xkHjcJrzM+edl3Leu/UntJJN2jiaRWd4TgOJoVrgE/ZuxgooNuR3I/5AU85CkZLPGArYrsKIDOuN8aFzGX2eGEyWJ3k8/OmLlw9L8I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, "Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, "Thomas
 Gleixner" <tglx@linutronix.de>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
CC: <linux-kernel@vger.kernel.org>, <linux-pci@vger.kernel.org>,
	<linux-acpi@vger.kernel.org>, <xen-devel@lists.xenproject.org>, Alex Deucher
	<Alexander.Deucher@amd.com>, Christian Koenig <Christian.Koenig@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, "Julia
 Zhang" <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>
Subject: [RFC KERNEL PATCH v3 0/3] Support device passthrough when dom0 is PVH on Xen
Date: Mon, 11 Dec 2023 00:15:16 +0800
Message-ID: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D1:EE_|BY5PR12MB4194:EE_
X-MS-Office365-Filtering-Correlation-Id: 54fc3b0f-085f-4440-ea61-08dbf99b3fbf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OnKY+i+xrHNIxEqLrC8OE39aFpZ4DACvtP7roWk6CNTUV3A0Y67EE3WnLXlDaTo0HOFx2r4legQA+8dc8MO8fVL+MdvDLKVPhmd/YsPeLKBuI0t2xid9/vQLI/NK7bUbjHkqLxXF/NzIwlrYaykpD/petx9hVn/uv+Cxad+GV2OsHzJgSKdjVyWfLFeBtnnKT1NYFatcNtTdCsjyVzWLPxta24mI81VkAf6jBC40H79rhcYELZy/WUd9ChaqvBmxIJv5su1gHpmLyhWzcF8KxKC5KUs0YtHQK0e4WFOxt1gwiZmqND8lp1pXN+5/4rRx7a5O6r5zsP0lZmQY+bsgzFvXGvEqtUnqzytzMgncToHhtdfXmIpVTJcrci/cADtYB5/avL5z846azjLnDiGl6khUIXs4GwBjYgLd8zDYdR6z+Lx/U1mlQDyRe12QrDLYZUKWIr90HF2tpAfe6CNP9/EZD8pZOhNxBnRPPlch9zn5ECpnSwbw1B944vP0oJE4T/mmTrZiRtyC46pUukHSg3gXUtigROEfUHq+7AoKSkqGnsDeubCzYzMxaZnpKN2g2HhipSDZm/oar2VP1JU8Ot5bUNHQc3tNSTf08rF0/q84dWN/f9QmNZDqidz1kC1e+zbZMeTNOtuiWDEeOscpJ2Up1zRR0fIwxCxVhSK8UucFtwbiEG+I0ueK5i+X1mMks/HJIOxlTuyeyoOko78zaveRFi1U7S8hNTnrW2Vk3DOa2/2+ITrKvki1Gk0Unlr7Wazh5rFaJP7nw6DZ9k5sHw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(376002)(39850400004)(346002)(230922051799003)(451199024)(64100799003)(82310400011)(1800799012)(186009)(46966006)(36840700001)(36860700001)(5660300002)(1076003)(47076005)(336012)(26005)(2616005)(16526019)(36756003)(426003)(7416002)(70586007)(70206006)(54906003)(966005)(40480700001)(2906002)(83380400001)(82740400003)(81166007)(41300700001)(356005)(478600001)(7696005)(86362001)(8676002)(8936002)(4326008)(110136005)(316002)(6666004)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:15:38.6752
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54fc3b0f-085f-4440-ea61-08dbf99b3fbf
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4194

Hi All,

This is v3 series to support passthrough on Xen when dom0 is PVH.
v2->v3 changes:
* patch#1: add condition to limit do xen_reset_device_state for no-pv domain in pcistub_init_device.
* patch#2: Abandoning previous implementations that call unmask_irq. To setup gsi and map pirq for passthrough device in pcistub_init_device.
* patch#3: Abandoning previous implementations that adds new syscall to get gsi from irq. To add a new sysfs for gsi, then userspace can get gsi number from sysfs.


v2 link:
https://lore.kernel.org/lkml/20231124103123.3263471-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 â€œsudo xl pci-assignable-add <sbdf>â€ 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()â€,
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 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â€™t, 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â€™s gsi to pirq in function
xen_pt_realize(). But failed.

Reason: According to the implement of xc_physdev_map_pirq(), it needs gsi instead of irq, but qemu
pass irq to it and treat irq as gsi, it is got from file /sys/bus/pci/devices/xxxx:xx:xx.x/irq in
function xen_host_pci_device_get(). But actually the gsi number is not equal with irq. 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 (3):
  xen/pci: Add xen_reset_device_state function
  xen/pvh: Setup gsi and map pirq for passthrough device
  PCI/sysfs: Add gsi sysfs for pci_dev

 arch/x86/xen/enlighten_pvh.c       | 116 +++++++++++++++++++++++++++++
 drivers/acpi/pci_irq.c             |   3 +-
 drivers/pci/pci-sysfs.c            |  11 +++
 drivers/xen/pci.c                  |  12 +++
 drivers/xen/xen-pciback/pci_stub.c |  12 +++
 include/linux/acpi.h               |   1 +
 include/linux/pci.h                |   2 +
 include/xen/acpi.h                 |   1 +
 include/xen/interface/physdev.h    |   8 ++
 include/xen/pci.h                  |   6 ++
 10 files changed, 171 insertions(+), 1 deletion(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 16:16:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:16:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651371.1017004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMTE-0006P6-Rj; Sun, 10 Dec 2023 16:15:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651371.1017004; Sun, 10 Dec 2023 16:15:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMTE-0006Oz-Nm; Sun, 10 Dec 2023 16:15:56 +0000
Received: by outflank-mailman (input) for mailman id 651371;
 Sun, 10 Dec 2023 16:15: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=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCMTD-0005py-Mf
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:15:55 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20603.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 64157715-9777-11ee-98e8-6d05b1d4d9a1;
 Sun, 10 Dec 2023 17:15:55 +0100 (CET)
Received: from CY5PR17CA0058.namprd17.prod.outlook.com (2603:10b6:930:12::20)
 by CH2PR12MB4216.namprd12.prod.outlook.com (2603:10b6:610:a8::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Sun, 10 Dec
 2023 16:15:45 +0000
Received: from CY4PEPF0000E9D3.namprd03.prod.outlook.com
 (2603:10b6:930:12:cafe::55) by CY5PR17CA0058.outlook.office365.com
 (2603:10b6:930:12::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Sun, 10 Dec 2023 16:15:44 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9D3.mail.protection.outlook.com (10.167.241.146) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:15:44 +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.34; Sun, 10 Dec
 2023 10:15:38 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64157715-9777-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MUWM0qutTMMeenq1MAyWuVl2Ac5ZfWwhPASMMvE2GSw+WDK+mVtuvTmI1FqK9Tv844TlloXulWGi0GM+Wbozm227Icaa8EarXa7EymGB59jS2uQRkhFMlYEYy2EznTURuH5mhoPv4KHuQay8Sz74nQrDaXltiUlUSsEkPfF4I0cywXVw8L8idCCnwVyKbua+Z7amVSSU2n4nmdcivo31jSW+r/VETyi8lv9aY0EfrS4IWK49UBv6gEdEtbM9myavz7Zgp4tDnWpWUHdC1ZMZBlvOmryqyvdTsCRIbip37uqBEBaGlgljPgJ17eMvRGwj4EVBWxhIf62gr8XUjx91pg==
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=e0cVJClnKI0t+S5tf/NWGenaSQY7dTKBr3BxoBA+0yg=;
 b=UGztRtYOB+Q+UbXi1c1mBnPetxV6zNQBSEpx14ozt2mYiVEcHsNm6kXEgpYnoHP1ir1uB5FzMd6/H0ZdmhvPxt+3qPfPv2/8FdkMz+ihTc3E52daGSxTF2SePhEO+64i0Of0/QNKwNpBq3tKrf/UwDOFjfXA7yLg/zFcxiQ2VpKNvxKgK2QtXLLEqMhCSTEQ5syHHAvrEFSiY2S/C2LOeaQYIUd9iFmoFSZUzC5Dva1Q6hr/lTTr+4OC3jD5pRz/K78VhZknx2FYp72nKXpoPBvaiAt97UkMBNPQQoeBaJUPNsz7tQyVqo3toqmy4hv2EKHOkLdhdVQejx9ek9AxuA==
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=e0cVJClnKI0t+S5tf/NWGenaSQY7dTKBr3BxoBA+0yg=;
 b=WugWokQlCzKNdd4LZfCYgc+CgdEVr30USTES9WYlFrNv0avtgUNI3BLKYEstMgOs8j3ZJi8rZetjo4RCoYmNy6/stV0D3ymRkhGwI93bHS84nrvy2Y9O6df739q6UtYQT82XKys/IfhlBDvPwcLMSqji9theFdFLwSeYF3IIIe4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, "Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, "Thomas
 Gleixner" <tglx@linutronix.de>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
CC: <linux-kernel@vger.kernel.org>, <linux-pci@vger.kernel.org>,
	<linux-acpi@vger.kernel.org>, <xen-devel@lists.xenproject.org>, Alex Deucher
	<Alexander.Deucher@amd.com>, Christian Koenig <Christian.Koenig@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, "Julia
 Zhang" <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [RFC KERNEL PATCH v3 1/3] xen/pci: Add xen_reset_device_state function
Date: Mon, 11 Dec 2023 00:15:17 +0800
Message-ID: <20231210161519.1550860-2-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
References: <20231210161519.1550860-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D3:EE_|CH2PR12MB4216:EE_
X-MS-Office365-Filtering-Correlation-Id: c1ff42dc-c1c3-4b41-b08a-08dbf99b42f3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	sjxsHOhfjm4BdqjLcc6/A0HrcK0KDCJsgTUEjobA6Pvj1fuXPvL4dSftfmoeOMf2UhVA6hfZyw9uVwKZj4Vw2uOm0oaA5K+HCXjGTXIu4M2kX/mcvCF7Aq4B64EVGrGo3jcuEAAL8l2rbWzms14he+qH1D8ORQ0ZwCE+WpCEUxUxuMeMmn8iMd67jyx3k58xXMe7PDrm4rtnhfeRh+CmY7A2crE03Z8EsjCmmWqouYzyO8VxsJnR9RtQg6Ht2RKyOrU9pwyhGvkTKLy4X77UV6U4XGSk56m+ueiIl2kgtAscsusRP3O4emgXv9jsPmNuXNRnQR0Yr1Lg5pAdx/rmGy/sXFN8NAISB4d4fbReLDTLgXTo9R1tBTfz8EhcYdbegFcDV+7b8gAJ0wTZq9ENjRsWtllmkvMBl2QT0bgD0o9dmvjNT6B5SBMw85ldmFL4BNNQ8nNdCjswyvzo25JHaT19C4Z3xZOF8WAedafYzqZ7kiTPY296Gw6d56jpepby+mjgyas/uRvFE0kxLQ+d25jMxJ39zjkf6T/ezvjE0ksXT70NrcYSC2x637hrYThr7db489RheqQ9U2W8ckGKJSOYvKD6nSl8+vVZ9ZZ6lOqkKT0wGU8HMxAjC0beus8YD9Bj/kY8NaDokaXSK+hQG3bPmnkkysOMc59R6woEcbrM7VCxCPAmo1nSBlq+ZpAGNAotujG/dujiql/ieHqAGEXiFEMT2cRKo35gcuC58EykX7QHDXV1XPSUIsprn5KkyerRYfNecvW6Vc0Bhw4YNg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(39860400002)(376002)(396003)(346002)(230922051799003)(451199024)(1800799012)(186009)(82310400011)(64100799003)(46966006)(36840700001)(40470700004)(41300700001)(5660300002)(7416002)(2906002)(2616005)(1076003)(6666004)(7696005)(36756003)(478600001)(36860700001)(47076005)(81166007)(82740400003)(356005)(426003)(83380400001)(336012)(40480700001)(26005)(16526019)(8936002)(40460700003)(8676002)(4326008)(86362001)(54906003)(110136005)(316002)(70206006)(70586007)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:15:44.0477
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c1ff42dc-c1c3-4b41-b08a-08dbf99b42f3
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4216

When device on dom0 side has been reset, the vpci on Xen side
won't get notification, so that the cached state in vpci is
all out of date with the real device state.
To solve that problem, add a new function to clear all vpci
device state when device is reset on dom0 side.

And call that function in pcistub_init_device. Because when
using "pci-assignable-add" to assign a passthrough device in
Xen, it will reset passthrough device and the vpci state will
out of date, and then device will fail to restore bar state.

Co-developed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 drivers/xen/pci.c                  | 12 ++++++++++++
 drivers/xen/xen-pciback/pci_stub.c |  4 ++++
 include/xen/interface/physdev.h    |  8 ++++++++
 include/xen/pci.h                  |  6 ++++++
 4 files changed, 30 insertions(+)

diff --git a/drivers/xen/pci.c b/drivers/xen/pci.c
index 72d4e3f193af..e9b30bc09139 100644
--- a/drivers/xen/pci.c
+++ b/drivers/xen/pci.c
@@ -177,6 +177,18 @@ static int xen_remove_device(struct device *dev)
 	return r;
 }
 
+int xen_reset_device_state(const struct pci_dev *dev)
+{
+	struct physdev_pci_device device = {
+		.seg = pci_domain_nr(dev->bus),
+		.bus = dev->bus->number,
+		.devfn = dev->devfn
+	};
+
+	return HYPERVISOR_physdev_op(PHYSDEVOP_pci_device_state_reset, &device);
+}
+EXPORT_SYMBOL_GPL(xen_reset_device_state);
+
 static int xen_pci_notifier(struct notifier_block *nb,
 			    unsigned long action, void *data)
 {
diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
index e34b623e4b41..24f599eaec14 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -421,6 +421,10 @@ static int pcistub_init_device(struct pci_dev *dev)
 	else {
 		dev_dbg(&dev->dev, "resetting (FLR, D3, etc) the device\n");
 		__pci_reset_function_locked(dev);
+		if (!xen_pv_domain())
+			err = xen_reset_device_state(dev);
+		if (err)
+			goto config_release;
 		pci_restore_state(dev);
 	}
 	/* Now disable the device (this also ensures some private device
diff --git a/include/xen/interface/physdev.h b/include/xen/interface/physdev.h
index a237af867873..bed53afc4c52 100644
--- a/include/xen/interface/physdev.h
+++ b/include/xen/interface/physdev.h
@@ -256,6 +256,14 @@ struct physdev_pci_device_add {
  */
 #define PHYSDEVOP_prepare_msix          30
 #define PHYSDEVOP_release_msix          31
+/*
+ * On PVH dom0, when device is reset, the vpci on Xen side
+ * won't get notification, so that the cached state in vpci is
+ * all out of date with the real device state. Use this to reset
+ * the vpci state of device.
+ */
+#define PHYSDEVOP_pci_device_state_reset     32
+
 struct physdev_pci_device {
     /* IN */
     uint16_t seg;
diff --git a/include/xen/pci.h b/include/xen/pci.h
index b8337cf85fd1..b2e2e856efd6 100644
--- a/include/xen/pci.h
+++ b/include/xen/pci.h
@@ -4,10 +4,16 @@
 #define __XEN_PCI_H__
 
 #if defined(CONFIG_XEN_DOM0)
+int xen_reset_device_state(const struct pci_dev *dev);
 int xen_find_device_domain_owner(struct pci_dev *dev);
 int xen_register_device_domain_owner(struct pci_dev *dev, uint16_t domain);
 int xen_unregister_device_domain_owner(struct pci_dev *dev);
 #else
+static inline int xen_reset_device_state(const struct pci_dev *dev)
+{
+	return -1;
+}
+
 static inline int xen_find_device_domain_owner(struct pci_dev *dev)
 {
 	return -1;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 16:16:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:16:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651378.1017023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMTj-0007PZ-G6; Sun, 10 Dec 2023 16:16:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651378.1017023; Sun, 10 Dec 2023 16: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 1rCMTj-0007PS-DY; Sun, 10 Dec 2023 16:16:27 +0000
Received: by outflank-mailman (input) for mailman id 651378;
 Sun, 10 Dec 2023 16:16: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=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCMTi-0005py-Uv
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:16:26 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20600.outbound.protection.outlook.com
 [2a01:111:f400:7eae::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7766439d-9777-11ee-98e8-6d05b1d4d9a1;
 Sun, 10 Dec 2023 17:16:26 +0100 (CET)
Received: from CY5PR14CA0030.namprd14.prod.outlook.com (2603:10b6:930:2::24)
 by LV8PR12MB9418.namprd12.prod.outlook.com (2603:10b6:408:202::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.31; Sun, 10 Dec
 2023 16:16:21 +0000
Received: from CY4PEPF0000E9D3.namprd03.prod.outlook.com
 (2603:10b6:930:2:cafe::a2) by CY5PR14CA0030.outlook.office365.com
 (2603:10b6:930:2::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Sun, 10 Dec 2023 16:16:20 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9D3.mail.protection.outlook.com (10.167.241.146) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:16:20 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sun, 10 Dec
 2023 10:15:49 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7766439d-9777-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QWsm5GfVnWDAEXOev3qPy+9Oo9vEhjgojvAJvK4SYd3C8XZeE5kkk5t/e8sLO/y9nv6rFRXEnGMbM8d86r0PsLX6PXK0En3bY7BKmaBr5hlqW68hZEWDUcLzE3ryONMMkK2jxYfUotH5wmzxIXtB1Bt4ViOyX3vAgGuzyK5jrewKQ+Mrhd5f2UMPwsq34R+vQp1Rl+6cJTpR1QCX3Dn3rqRrCH+0OQomnRcPyz+7EyjxELwadxIHV5vXn8teFvD8HDseLhqRp0O52UxtBkKPLkCThUlGx6fOEowBFxbr3oehXSfgy/7xmNQiyQ5o/V+Lkor7AFtf11aXdyONNX5FtA==
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=T1QqKGxeBunvmatxkoJCYLpxpTTAmq3J1BXHqGyX7K8=;
 b=NaXUasULf+3697EMIzz8bb3avdG6J6+LdQheCObV0SzYj9e7F6umiXKM75067Qi5uM6gckQYhRlf2gd5dFef7pI3OHh3i5/Pt/i+oKLoO6JxnY/rS6CdD9jTE4V+ymyqg1IsW9xfLAeIEpw4I54p9c/6QyjKyZJko2H4ADmwjoHcsvY11RnknJxqTEAO/zQ0lCxCbnzmy+ju7p4XFrJlgpuEntv5x3w7ACm7D48nutFVx1oLcqHLFNClL8FwVFcazYUeEajBvFYjvQYaxagbD2wqK0mjbgrHXCfKls7IO2bO2HHlYGYoNSy2pnwjQAfelJ5RpV1fCBFO3Ck+Qr3V1A==
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=T1QqKGxeBunvmatxkoJCYLpxpTTAmq3J1BXHqGyX7K8=;
 b=z/WxThTiyvBGs/YY350WLQvRTM/LIqdbOSDOZTItL6Md9SPEeRdNzoCcYxg8DEOQ2gJAxTEYWzSdz2bDtrTZa/Bf+RzvQiIVcutqYa7l/xvdd/d8UngQBMqKcs7gpUAKKuAGSvujvnZS1bzxr1NTH9h8UA920ycc9u+6KBMXqmI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, "Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, "Thomas
 Gleixner" <tglx@linutronix.de>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
CC: <linux-kernel@vger.kernel.org>, <linux-pci@vger.kernel.org>,
	<linux-acpi@vger.kernel.org>, <xen-devel@lists.xenproject.org>, Alex Deucher
	<Alexander.Deucher@amd.com>, Christian Koenig <Christian.Koenig@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, "Julia
 Zhang" <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Date: Mon, 11 Dec 2023 00:15:19 +0800
Message-ID: <20231210161519.1550860-4-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
References: <20231210161519.1550860-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D3:EE_|LV8PR12MB9418:EE_
X-MS-Office365-Filtering-Correlation-Id: cf2f23ec-1ba0-46b2-0375-08dbf99b58cd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	7cfoB48RFii35Dpa6TXwr7UxlCzYNwfbaERgbGp/VozX/bPoP+7GQKkXxKnbh7P9c4S1i/ANYjSywduz00puSxzU78+U7XlSAKk5dTeMTgG6vGBlrZyMY8Zhz5AScY0Tn8eGITwcP9NUGEKY0dpoGCUhhQKc7oNWLYIxRHRRHOfh0eBJPe+Mr3jHEBhlH2BV9CQT7xlwgE2uKwv1DrHy12MjwsrGW3qvxpfnsZPlzvVJWMJF+I/tyoj5AO3kjb1QpO/8fJahQBfoRGED+kCF4IAQDdbao/hXKt5kX6DghX4l75ZISl0ev8OfnWE3b5mF6oRbd6O7qJZV8kx9FrsiQFK2Jyt1Kr3VlOH4CUBQimAHcDJOB/WHZ56GfF3fdNknTAxdQryfH1dTx9a/UF6VVps96GdlMl0tKIPT/1SPdWImr04VRcoS/5cmkg8nRAIm0M/glfUUIIoluQLd+u1niu4TO94nDm1GwU72vr3DbV2jd1m4zOV7qijvq3FJwN9U9EfL5CAd5XkvAQ4EB1S9aCNn+Y1ZqLmHKjFM7MBAyk2pJxkMmuZyx0XPWWQE4clL5ROBI4HDG8u9sey//vLNJfMglx0RdiSEDVWSMtZxQsr/gnkldZ6wEnHbDszaNz0gUsaWLH1VUu6DdOZp7u5j586pAZQbyUBpIFzo0Rs/zErO47zc/3NtUu3tLFhNtQ22mZ7yfRPuksJOpdU2C3mdiGuUCk1FQWqrA4Qq4CKnk+xfklxcmldrIiUQCEMbdekINtRHBLsjPXosJjj1c7GuHA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(346002)(39860400002)(136003)(376002)(230922051799003)(64100799003)(82310400011)(1800799012)(451199024)(186009)(40470700004)(46966006)(36840700001)(7416002)(6666004)(7696005)(2906002)(54906003)(70206006)(356005)(81166007)(86362001)(36756003)(316002)(8936002)(4326008)(8676002)(5660300002)(40480700001)(70586007)(110136005)(478600001)(40460700003)(41300700001)(36860700001)(82740400003)(47076005)(26005)(336012)(426003)(1076003)(2616005)(83380400001)(16526019)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:16:20.7041
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cf2f23ec-1ba0-46b2-0375-08dbf99b58cd
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9418

There is a need for some scenarios to use gsi sysfs.
For example, when xen passthrough a device to dumU, it will
use gsi to map pirq, but currently userspace can't get gsi
number.
So, add gsi sysfs for that and for other potential scenarios.

Co-developed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 drivers/acpi/pci_irq.c  |  1 +
 drivers/pci/pci-sysfs.c | 11 +++++++++++
 include/linux/pci.h     |  2 ++
 3 files changed, 14 insertions(+)

diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index 630fe0a34bc6..739a58755df2 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -449,6 +449,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
 		kfree(entry);
 		return 0;
 	}
+	dev->gsi = gsi;
 
 	rc = acpi_register_gsi(&dev->dev, gsi, triggering, polarity);
 	if (rc < 0) {
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 2321fdfefd7d..c51df88d079e 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -71,6 +71,16 @@ static ssize_t irq_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(irq);
 
+static ssize_t gsi_show(struct device *dev,
+			struct device_attribute *attr,
+			char *buf)
+{
+	struct pci_dev *pdev = to_pci_dev(dev);
+
+	return sysfs_emit(buf, "%u\n", pdev->gsi);
+}
+static DEVICE_ATTR_RO(gsi);
+
 static ssize_t broken_parity_status_show(struct device *dev,
 					 struct device_attribute *attr,
 					 char *buf)
@@ -596,6 +606,7 @@ static struct attribute *pci_dev_attrs[] = {
 	&dev_attr_revision.attr,
 	&dev_attr_class.attr,
 	&dev_attr_irq.attr,
+	&dev_attr_gsi.attr,
 	&dev_attr_local_cpus.attr,
 	&dev_attr_local_cpulist.attr,
 	&dev_attr_modalias.attr,
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 60ca768bc867..7ef9060b239c 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -529,6 +529,8 @@ struct pci_dev {
 
 	/* These methods index pci_reset_fn_methods[] */
 	u8 reset_methods[PCI_NUM_RESET_METHODS]; /* In priority order */
+
+	unsigned int	gsi;
 };
 
 static inline struct pci_dev *pci_physfn(struct pci_dev *dev)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 16:40:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651389.1017040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMr5-0004FU-G9; Sun, 10 Dec 2023 16:40:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651389.1017040; Sun, 10 Dec 2023 16:40:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMr5-0004FN-D8; Sun, 10 Dec 2023 16:40:35 +0000
Received: by outflank-mailman (input) for mailman id 651389;
 Sun, 10 Dec 2023 16:40: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=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCMr4-0004FH-4T
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:40:34 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d55d123d-977a-11ee-98e8-6d05b1d4d9a1;
 Sun, 10 Dec 2023 17:40:32 +0100 (CET)
Received: from PH8PR07CA0018.namprd07.prod.outlook.com (2603:10b6:510:2cd::15)
 by MW4PR12MB6754.namprd12.prod.outlook.com (2603:10b6:303:1eb::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Sun, 10 Dec
 2023 16:40:28 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:510:2cd:cafe::85) by PH8PR07CA0018.outlook.office365.com
 (2603:10b6:510:2cd::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Sun, 10 Dec 2023 16:40:27 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015CC.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:40:27 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sun, 10 Dec
 2023 10:40:23 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d55d123d-977a-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iDpwZKO09GZar8KKG8evV6Ite88MqZYDr67lYzULqzz2khFYKhtmtQINzc9vCtuGGY9+/yc6vHf55aRHyMQLEfNN72hql7ZNCN49o/dx3Qh5IrDB9xTYpiqalMHXZ77z7zAgPh902S6d8xYBBIMz+tGImPR1WgL/Y6gYLy7tCMsLnibs7HTPhM+q+M6W6N/ZT/VCA7pMMJbSkAN2To1RLiDCXPmt1LGUaYqzmRQ4o8qfbnPVHVKtV/Bg45zma41/Kk0h3nbbEGEsq39lyQdwMgf3pfll8jco3vcoiJDdSz5aF/kQyB8nDmmWp5QREABmw2TZnIYkN6cE5TRSV5S4IA==
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=Zj0kgcL2T9xEc2oWGYuGh2XmT7rNAzU1TGjRMOmLURs=;
 b=h5F/PZtZfah+Uf3idChDQyhJyqygTWIoAIih55yxokZJxCuZRgdHs7Z5khMFdAfqW9tNkmwMOvQn3OhuIH/oBxT6o32AaG2jnnqURi51cRNBqs1oef1Wk2Z5LcOc1O9Tt+cNxE9GKoNROrAQjiY9JH7ozk3C6QgSTYv1lLBmDnO021iejwjWdslJdnNN3IY78RIWKMOU9/ij5Nr0Q9ceMHeD9hkarWLb+vcYv0SpHWPgerNs7YIIH/wBVd8g04BNG2UIWsbwF1ZIDpxkC+efyFcZ6Y01oJi/OGYJUNWxzah5QAufhqELAOBQTW+LSRjRs0Tm8ZsvKn6RkNZGfh8h1w==
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=Zj0kgcL2T9xEc2oWGYuGh2XmT7rNAzU1TGjRMOmLURs=;
 b=ra42VX2x3mW6oU29FNe47vehNy5Spc3iZpRGyC9pGcfn3fxJoavQyXjinDpxUb1d4/odu7FMLxEjnL4XOCx2Jq/z2Jt4hwWCnPng1jWot5DMQyXiYIs7OjFIvutn4284yrXb790oM+BNapguB8MESfcYhNh5VXGm2Gg2CAP0UVw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>, "Juergen
 Gross" <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Alex Deucher
	<Alexander.Deucher@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>, Huang Rui
	<Ray.Huang@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang
	<Julia.Zhang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>
Subject: [RFC XEN PATCH v3 0/3] Support device passthrough when dom0 is PVH on Xen
Date: Mon, 11 Dec 2023 00:40:06 +0800
Message-ID: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CC:EE_|MW4PR12MB6754:EE_
X-MS-Office365-Filtering-Correlation-Id: 766c9f90-542b-4b6d-0176-08dbf99eb743
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	28fopN2lGwdleaLu6Ws5bYLQpwHUmJ9lP+vcmsNWDqV32pq7pTNouy+Bef6fqM+KywMtW0uCpbNNebtO6x8VlWNdi+bh/RGSgSylVPAZ6VMaysxC/RsF4iqTNIpVYkWcUAEJE5LXp3vrXPjoTZaZCIK52mcfJFz0FjveefU80G3p19lkF23Cais78OB1yLc8IrRcUHjnj14CYGgUZn/ZcAmri6AJqCsPEGLtLuNoL/WoJc1bPrugYdSKBZ6FyZUNqu7xlHUMk3vMa6xC4w0bKk67vkDfWOzlGND+q2JLKGqg+XGF+ehKMBC1Tk9s/Qx0pbCBzUjhByCwE6Tg0tG2U0VRSc2oB0fYFj8OIHKvjwIrrvM6GxnbAN5Ss1Zc2cBEwEYMS2btE5gAlin092aX4OvPNsJB0yua3fmqwk6aub64NAoYbgimQ4P0z+b+2hOF9pr6BaXYce4M9Ia+J6wzWE0Wmuy7AMPh4nZJA1V9QksEtvdFtSRhbI2Tz1d717yC1bkgxrjQTDMAIaBI81laNaGV/Ca5W6Xsx6GoAPJWjKtu+lDk8NK87g+nd4LSI3j1CCC7a2wJq5hFDyL8lH64zlZFy5xAPqFACzAU6Fp/h8k6uYUFqC+TzGCLB+5YHur6txAOHh6zyZKlvQ64JhPz2cVPwMFIqOAS9z4wiTyBHKSuixOGoDJDDmDB6SmIWdjOfOpGThixDwFpTzll9ztf1WRBaKjsHVz9Jy638mV2pk89teQt+W3my71GBnsU74qR3KMvEXynh/KjXXwqENl5hK554U+i0NZz/Rn8L7kNU6U=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(396003)(376002)(39860400002)(346002)(230922051799003)(451199024)(186009)(82310400011)(1800799012)(64100799003)(40470700004)(36840700001)(46966006)(7696005)(36756003)(966005)(478600001)(2906002)(6666004)(1076003)(426003)(83380400001)(26005)(16526019)(336012)(2616005)(4326008)(8936002)(8676002)(5660300002)(110136005)(54906003)(70206006)(70586007)(316002)(82740400003)(81166007)(40480700001)(356005)(86362001)(47076005)(41300700001)(40460700003)(36860700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:40:27.7202
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 766c9f90-542b-4b6d-0176-08dbf99eb743
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6754

Hi All,
This is v3 series to support passthrough when dom0 is PVH
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 of the kernel patch:
https://lore.kernel.org/lkml/20231210161519.1550860-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 â€œsudo xl pci-assignable-add <sbdf>â€ 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()â€,
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 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â€™t, 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â€™s gsi to pirq in function
xen_pt_realize(). But failed.

Reason: According to the implement of xc_physdev_map_pirq(), it needs gsi instead of irq, but qemu
pass irq to it and treat irq as gsi, it is got from file /sys/bus/pci/devices/xxxx:xx:xx.x/irq in
function xen_host_pci_device_get(). But actually the gsi number is not equal with irq. 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 (3):
  xen/vpci: Clear all vpci status of device
  x86/pvh: Add (un)map_pirq and setup_gsi for PVH dom0
  libxl: Use gsi instead of irq for mapping pirq

 tools/libs/light/libxl_pci.c | 18 +++++++++---------
 xen/arch/x86/hvm/hypercall.c |  4 ++++
 xen/drivers/pci/physdev.c    | 35 +++++++++++++++++++++++++++++++++++
 xen/drivers/vpci/vpci.c      |  9 +++++++++
 xen/include/public/physdev.h |  8 ++++++++
 xen/include/xen/vpci.h       |  6 ++++++
 6 files changed, 71 insertions(+), 9 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 16:40:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651390.1017050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMr8-0004Ul-UU; Sun, 10 Dec 2023 16:40:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651390.1017050; Sun, 10 Dec 2023 16:40:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMr8-0004Ue-Rr; Sun, 10 Dec 2023 16:40:38 +0000
Received: by outflank-mailman (input) for mailman id 651390;
 Sun, 10 Dec 2023 16: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=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCMr7-0004FH-NQ
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:40:37 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20602.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d81235e2-977a-11ee-98e8-6d05b1d4d9a1;
 Sun, 10 Dec 2023 17:40:37 +0100 (CET)
Received: from PH0PR07CA0033.namprd07.prod.outlook.com (2603:10b6:510:e::8) by
 BL1PR12MB5239.namprd12.prod.outlook.com (2603:10b6:208:315::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Sun, 10 Dec
 2023 16:40:32 +0000
Received: from SA2PEPF000015C7.namprd03.prod.outlook.com
 (2603:10b6:510:e:cafe::fb) by PH0PR07CA0033.outlook.office365.com
 (2603:10b6:510:e::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Sun, 10 Dec 2023 16:40:32 +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.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:40:32 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sun, 10 Dec
 2023 10:40:27 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d81235e2-977a-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=evQpB40kssKCgzrquE32CfJijlNGOf2RbhVCBWyU0ZzJaoW0zwfWFZ9cOvBXTsmdvQvzpHN+iRw6LiXfaOHvO2/VtiwjtGPJiBXI0grjTpUTXdVbCqQFkpkHEmLAVxQWfkCvPLRCJl3a734MZ5IDpRMZD2sS2zj/X63s/W2qcg6SzLdy9ez2VE5GKvDV6EduIHY0ZFGT4DqlHQb5oGj7ZPoIFOIbF2jDp5w03MeywDuuIOD4xXZyv2V3HseQgYSxwaW5FxhLDYPYIjJjZzRGqjtSSnM18qcrtgo9XitH1ErQIgZjm/9KiJKzGTLvtG3vE1Fz91MREzRDXpkH/PwuIw==
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=uc3EWjHx3Sz2v0LIz/ArvgoRts9u/Cd05lxvAz4CijU=;
 b=KECKJ+BPtoMP/J/JwjXXwqIfeg+me6pRs7O+4djWmqnSDlJqdW+yVSZqQNSR+TnVhxHVxQeBEdHLJ1/E/DSvbu+lMRG8kY4y0F6MWhEggRdUCeJMST6MOoraOh9sL94rboNwDQG3f71KqE4aravM72F0oH+rdHE6+GNkZWGCjsLjcpD588tUBehG2zXeJQJPSr+3BOjTwEwcksbTQjKJuzJrZpxaD93aXhmJtzE0MkhGvDP/933WtIKNIMTjkJnNlE8Szb9pnwPkMvLqbgPsVeJeWZ8oowu9SbZhKi+pcsXKkgPQ7qbEFWhCVjXv9DSqmdGjRloP1+NSmhfFubM+cg==
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=uc3EWjHx3Sz2v0LIz/ArvgoRts9u/Cd05lxvAz4CijU=;
 b=v6O4cOgteZ9JnoeQw0e348K/JSvHeprwjCirIRrR3nd1WCIV+94fQwHNQIAOY6QWUzZrJlana7gNt8KyE5PG0b6/Wq5SBI5MzRRrG5HnHAL90aiawUmBOzeHPFaDsBZfTgiAdkHHol+YWD7/4e+OX2dQEue2fM4i0kdndcfseJA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>, "Juergen
 Gross" <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Alex Deucher
	<Alexander.Deucher@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>, Huang Rui
	<Ray.Huang@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang
	<Julia.Zhang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>, Huang Rui
	<ray.huang@amd.com>
Subject: [RFC XEN PATCH v3 1/3] xen/vpci: Clear all vpci status of device
Date: Mon, 11 Dec 2023 00:40:07 +0800
Message-ID: <20231210164009.1551147-2-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
References: <20231210164009.1551147-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015C7:EE_|BL1PR12MB5239:EE_
X-MS-Office365-Filtering-Correlation-Id: daa03549-08d2-4b98-3d6c-08dbf99eb9e0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Pzblmn7jTtL52swqfnHLNCvuw3XpUIDQ6EqG/AAJffymjkStyjY/Vfnvh0oJAJ3fHhOquzkkSjSMGUUjXQxzK4am+cLWrDn5lYYARWXSTEu3zAl/dDWNRinRUiPFtnh8hdLxL+F+5e48srhSaoGtomLvQEfYb/1xu8wQorZBEbaFi8bKPW1sWZVp7RYTWP93AiNum4eoc9sDKWIlfRWd8wEuMTVlDPsvDZLruHxT6DOml4f/0XKWTgJi7gB06lpn3Gru5Zv2LPZytVWgJaoJeJHguY1CBm6ZI6Bek8dX4exHljOX8e9v0DvNeHwL5EMjv6ZmCRDEP2r9mA/cBe82CdhwTzKM3xu0YIpvCjn4VPqU3PZey2Uq34uf+Gy/tkt5O7hu2yODqchVqqdIbSYC+LV3pdlhzQo+GayFxCeBx96uMf20GKHV5W8DegmBLrd5cY7Ml7J0TbhpB048gg/+QiSjMvrSeDnWiZisa61SYAbYsPkBmzmVdkZx0PEXO5VkOxVS5wOgkBiF3sEibXTEm3BhRynmkrs/EsSacAfLvyVBg0yO/wFKg39tTwYJgOW83bqoRyNUc9230ZuMWjBj6YmYkomM1dOvdw4MUrwKbRpup8i69/4quwXCxJDWTLYl7eTOKCA4rDerDyLoeQtkm6BrHI6g3bS5PUNDWcIDVPXqCqVUIzVhLyxL/PabM+wAmM+yqUNBpz50nYaqgQFumf1hp3d1p3luAo9gd9PD1hn5CZSEWHuTKYwhuQh0sKaEmN/oLqkoi+m1cUGtTfJbxw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(346002)(39860400002)(376002)(230922051799003)(64100799003)(82310400011)(451199024)(186009)(1800799012)(40470700004)(36840700001)(46966006)(2616005)(1076003)(36756003)(7696005)(6666004)(478600001)(70206006)(110136005)(316002)(54906003)(70586007)(8676002)(40460700003)(86362001)(4326008)(356005)(81166007)(82740400003)(36860700001)(47076005)(8936002)(40480700001)(26005)(336012)(426003)(83380400001)(16526019)(5660300002)(41300700001)(2906002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:40:32.1061
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: daa03549-08d2-4b98-3d6c-08dbf99eb9e0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: BL1PR12MB5239

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.

Co-developed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 xen/arch/x86/hvm/hypercall.c |  1 +
 xen/drivers/pci/physdev.c    | 35 +++++++++++++++++++++++++++++++++++
 xen/drivers/vpci/vpci.c      |  9 +++++++++
 xen/include/public/physdev.h |  8 ++++++++
 xen/include/xen/vpci.h       |  6 ++++++
 5 files changed, 59 insertions(+)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index eeb73e1aa5..6ad5b4d5f1 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -84,6 +84,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 42db3e6d13..6ee2edb86a 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,40 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         break;
     }
 
+    case PHYSDEVOP_pci_device_state_reset: {
+        struct physdev_pci_device dev;
+        struct pci_dev *pdev;
+
+        if ( !is_pci_passthrough_enabled() )
+            return -EOPNOTSUPP;
+
+        ret = -EFAULT;
+        if ( copy_from_guest(&dev, arg, 1) != 0 )
+            break;
+
+        ret = xsm_resource_setup_pci(XSM_PRIV,
+                                     (dev.seg << 16) | (dev.bus << 8) |
+                                     dev.devfn);
+        if ( ret )
+            break;
+
+        pcidevs_lock();
+        pdev = pci_get_pdev(NULL, PCI_SBDF(dev.seg, dev.bus, dev.devfn));
+        if ( !pdev )
+        {
+            ret = -ENODEV;
+            pcidevs_unlock();
+            break;
+        }
+
+        ret = vpci_reset_device_state(pdev);
+        if ( ret )
+            printk(XENLOG_ERR "PCI reset device %pp state failed\n",
+                   &pdev->sbdf);
+        pcidevs_unlock();
+        break;
+    }
+
     default:
         ret = -ENOSYS;
         break;
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 72ef277c4f..3c64cb10cc 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -107,6 +107,15 @@ int vpci_add_handlers(struct pci_dev *pdev)
 
     return rc;
 }
+
+int vpci_reset_device_state(struct pci_dev *pdev)
+{
+    ASSERT(pcidevs_locked());
+
+    vpci_remove_device(pdev);
+    return vpci_add_handlers(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 f0c0d4727c..92c2f28bca 100644
--- a/xen/include/public/physdev.h
+++ b/xen/include/public/physdev.h
@@ -296,6 +296,14 @@ DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_add_t);
  */
 #define PHYSDEVOP_prepare_msix          30
 #define PHYSDEVOP_release_msix          31
+/*
+ * On PVH dom0, when device is reset, the vpci on Xen side
+ * won't get notification, so that the cached state in vpci is
+ * all out of date with the real device state. Use this to reset
+ * the vpci state of device.
+ */
+#define PHYSDEVOP_pci_device_state_reset     32
+
 struct physdev_pci_device {
     /* IN */
     uint16_t seg;
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index d20c301a3d..d6377424f0 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -30,6 +30,7 @@ int __must_check vpci_add_handlers(struct pci_dev *pdev);
 
 /* Remove all handlers and free vpci related structures. */
 void vpci_remove_device(struct pci_dev *pdev);
+int vpci_reset_device_state(struct pci_dev *pdev);
 
 /* Add/remove a register handler. */
 int __must_check vpci_add_register_mask(struct vpci *vpci,
@@ -262,6 +263,11 @@ static inline int vpci_add_handlers(struct pci_dev *pdev)
 
 static inline void vpci_remove_device(struct pci_dev *pdev) { }
 
+static inline int vpci_reset_device_state(struct pci_dev *pdev)
+{
+    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 Sun Dec 10 16:40:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:40:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651391.1017060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMrG-0004nz-5q; Sun, 10 Dec 2023 16:40:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651391.1017060; Sun, 10 Dec 2023 16: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 1rCMrG-0004ns-2l; Sun, 10 Dec 2023 16:40:46 +0000
Received: by outflank-mailman (input) for mailman id 651391;
 Sun, 10 Dec 2023 16:40: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=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCMrE-0004mZ-8S
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:40:44 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20620.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dac4d6ad-977a-11ee-9b0f-b553b5be7939;
 Sun, 10 Dec 2023 17:40:41 +0100 (CET)
Received: from PH8PR07CA0003.namprd07.prod.outlook.com (2603:10b6:510:2cd::17)
 by CY5PR12MB6180.namprd12.prod.outlook.com (2603:10b6:930:23::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.29; Sun, 10 Dec
 2023 16:40:37 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:510:2cd:cafe::94) by PH8PR07CA0003.outlook.office365.com
 (2603:10b6:510:2cd::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Sun, 10 Dec 2023 16:40:36 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015CC.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:40:36 +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.34; Sun, 10 Dec
 2023 10:40:31 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dac4d6ad-977a-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=B3Rcv3Gx+o5+ABVciEZUNBnCUbx9HGEI7j+S4l1Vbp3He0APGUqgLr02XEUJL/CY+oS1rTY8oU8rxpYc+k/CsmUULYiJOxfdiLmbANV9JHkBw479jzPvGZ8yagXQTO38EAviY2qMK4gr3Iykxb2V07tipeQOm81NuRl3UIookvNOle0FE+J7IN7NMApTibJeZgtXYpFV6cjtFIgQsDhS50/CSAIULaerbPAxerRXI1AR0wrLfjgegVTtvJFvkuCkcQsSgTFvwqQkMqK0rDXb5z4fvR8JTKYTjWMm65K8h1dheEdUVLGE1pugbGXFDbg09NKiHFwSuRdUYCD5vMH78g==
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=jjpP9b3zdAapc7bFnAf9Yxc26I+r5JBx8/ouifmxHE0=;
 b=KaFy88ybxPq8yiz6n27imhdsHVqE+pZectAkpNy89+65NmnzuJWdDTPWH5zpzVoLCLaRgjLR9fW7AyRHr7lKo3bkjRJ+mdiMRH09xmow6nYiaMuBl3uYRFxZcNyTCFBiMQN+L75lxObkk8jG4yteCIlmR+t/DuSv+8RWaIjVnd+RF3op5h0/nl3LX41m9TlRu+yCM/I6jgVQ19106Vo436Paa19Ew9hCgLkkJDRuMo+hh1d7V6y2tCWHMKVEJS2sgFCLC5/+JUhbqKd6jViRWEroKANTCRH4TYFkvjA7TQQPiG8rBLz1Oz9iP9QR0aKCAWBb3aAokJATDrV1wz7qbw==
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=jjpP9b3zdAapc7bFnAf9Yxc26I+r5JBx8/ouifmxHE0=;
 b=tUo6/jvg4+b8GQNOPcU0uyR6bysLNm/ngznSrU93nLv2YFJuPbDpRYh1sY3dUdpDvvy0u0Qagy5YDFjpV+mQzpLm0mOJzJ071Sl6/rKquxxY5nA8sUNsxbElvKdUIrNcpLMVPDz3+2CqUdHzJk9S04Wou8WWXADrzCx98UEYTTU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>, "Juergen
 Gross" <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Alex Deucher
	<Alexander.Deucher@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>, Huang Rui
	<Ray.Huang@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang
	<Julia.Zhang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>, Huang Rui
	<ray.huang@amd.com>
Subject: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi for PVH dom0
Date: Mon, 11 Dec 2023 00:40:08 +0800
Message-ID: <20231210164009.1551147-3-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
References: <20231210164009.1551147-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CC:EE_|CY5PR12MB6180:EE_
X-MS-Office365-Filtering-Correlation-Id: 89ccbc9d-b50c-4dca-3908-08dbf99ebc8d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OETyUUkechQu1WlULDuDfcPaYtmaBz8/5yprSVaO515+2y3zobN4O/aQeVg4LPUpl9NxVM8cX9l/5grkhG+AQLzLQFcxGSt1npBXEKzVi24RUV0UOP/IeHm1821GTqQdLV4QHjjQbfLWXNqEoqCFhbAQ0yS8kLgKokcOMkxDipxcdrJscD8rQRbfmfA5hZnIv6wP3dGDUucFT0t7OxVZ19rIL7ldfqsB7d9gNGLQ0+2GtZ5ocmBoDEE9Yu4Z/xck4ZckwWvfqURB4l6xoeCYhwrPDGd5ZB67f9dDYTouNC1et0tpymVPYY465WOokwdDVeR/xhww5Lvoa6MooPeqjw9XG08XFxZtjEIJtwnk6nQv5hZgZNGB5wJF5eRYQVgZy9HrtIsYpUtGSymw7UcmfUE2B1B8boIoO03uRxkeW6t2OSGDxYvdbOW4LibihJQJH1+HKmBfsxCmuHQrQXVpKAQqSg6RA7DfIpNjOOR1EaozEkbXK8SjpV7l3mNjkJ+pKrX4D9cMA86mbgbMTEKyaAkfaMHg/9nPvmKNaFxRL16IxmxzNTwK8rzgFCP7oh6tweVPZ+60B7Ye3gn9G/6OjmZpUNw7MkZ0EkfWn+fzVlgk9s+8xdBJqSvw4mF8TliKT8xUYjEiI8VAg0ThPIuai9DhhKPMBuB2yzfknBpq2sU6vBN1jdZ9TipvE2KCUl3vWh5aZlGbESL5dg1XM7tQ9AFcBj34ynbAr/QVI8UUeFblrntDhGddcb4zrgVre4v9iLgWiJhCYwAQDdHFV/+0bA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(136003)(376002)(396003)(39860400002)(230922051799003)(1800799012)(186009)(64100799003)(82310400011)(451199024)(46966006)(40470700004)(36840700001)(478600001)(7696005)(16526019)(2616005)(6666004)(26005)(70586007)(70206006)(336012)(83380400001)(110136005)(8936002)(4326008)(2906002)(47076005)(8676002)(426003)(316002)(54906003)(36860700001)(5660300002)(86362001)(81166007)(40480700001)(356005)(82740400003)(41300700001)(36756003)(1076003)(40460700003)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:40:36.5952
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 89ccbc9d-b50c-4dca-3908-08dbf99ebc8d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6180

If run Xen with PVH dom0 and hvm domU, hvm will map a 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 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 currd is dom0 no matter if
dom0 has X86_EMU_USE_PIRQ flag and also allow
PHYSDEVOP_unmap_pirq for the failed path to unmap pirq.

What's more, in 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.
So, add PHYSDEVOP_setup_gsi for PVH dom0, because PVH dom0
will setup gsi during assigning a device to passthrough.

Co-developed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 xen/arch/x86/hvm/hypercall.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 6ad5b4d5f1..621d789bd3 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 
     switch ( cmd )
     {
+    case PHYSDEVOP_setup_gsi:
     case PHYSDEVOP_map_pirq:
     case PHYSDEVOP_unmap_pirq:
+        if ( is_hardware_domain(currd) )
+            break;
     case PHYSDEVOP_eoi:
     case PHYSDEVOP_irq_status_query:
     case PHYSDEVOP_get_free_pirq:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 16:40:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:40:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651392.1017070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMrH-00054v-F5; Sun, 10 Dec 2023 16:40:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651392.1017070; Sun, 10 Dec 2023 16:40:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCMrH-00054m-Ba; Sun, 10 Dec 2023 16:40:47 +0000
Received: by outflank-mailman (input) for mailman id 651392;
 Sun, 10 Dec 2023 16:40:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCMrG-0004mZ-8A
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:40:46 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20627.outbound.protection.outlook.com
 [2a01:111:f400:7e8a::627])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc8a7e9a-977a-11ee-9b0f-b553b5be7939;
 Sun, 10 Dec 2023 17:40:44 +0100 (CET)
Received: from SA0PR11CA0085.namprd11.prod.outlook.com (2603:10b6:806:d2::30)
 by SA0PR12MB4559.namprd12.prod.outlook.com (2603:10b6:806:9e::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Sun, 10 Dec
 2023 16:40:41 +0000
Received: from SA2PEPF000015C8.namprd03.prod.outlook.com
 (2603:10b6:806:d2:cafe::70) by SA0PR11CA0085.outlook.office365.com
 (2603:10b6:806:d2::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Sun, 10 Dec 2023 16:40:41 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015C8.mail.protection.outlook.com (10.167.241.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:40:41 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sun, 10 Dec
 2023 10:40:36 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc8a7e9a-977a-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=g/eR3SBaxHDNvF/KQoywjcPbxFRHxlhtRmf6v3+n+qx1hYPBmv9XafdA31vS1vkh9tJnD1Wyc+BXwmMIwi/UWbjDsYlPQcJ9eiyk6JgH7IPg4pkhNpHHtK3m2pYOpzFiYEBN9rWHOZnAjofz3C2ApVKsRg8Uk0+sWGlUUQTgdpr0Q3AW4qUJP/n5cptzc87Suo+lYcS2oP7gocZC+nXzsPeuySHzdX9zN7ggmQiSyTpJOtYzINRHEdIV/+xCK8VaiBUj6eh4/YDd2aLPml1l5Y4hvzoJOdT9nRlRjrfO1NwuqKU2dX1O8CCZku2hIILU6/ICtJIC8s1kuuQoSKyqUA==
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=0UpkM/2hZ/hyd7VzUuA87GzjsofrR7iewcvgg+VyOL8=;
 b=LZkLlqR6S6olkzyfAhQsF+qmfvKaHtkVrAHBt/WjeEHr+IFeKf2WiYg3NBwFYhJ+IRPRMIG5FoH7uWBcMeSP0t1nH46hFx2bKX0BHsyeLg0bo2VkXwvRlrEMfy79RvuxzmSXAJLeS1zlAcb/nH1GdemofyP+6DaITykw7dlQKzPWp4NGr6+mYLDuSvmuuzhcxbA16msV+IH5Lm0cAMrHxJVvBOy940z9xxG/iBortA9d+cL8N+JV2LqX+8Ifbk9R6DhMT418vgQOP/JCD7XUPuYD2uK/OegwasWwUBt2RC2ERovadhCSdEzOGHOk4J+DB0X36iymjJRx21iXgySLAw==
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=0UpkM/2hZ/hyd7VzUuA87GzjsofrR7iewcvgg+VyOL8=;
 b=LgF0saVfah85f972ZH4p7VhTJYDQEdCBjbG77RXHstXHg0KSKTh3lwiZoqClntYulcGIkxfsFl/ndqytwiQG5JBVdBkMSPciuwgBYozuymWtayM1XvF2HdukOup8qBbEg9vrYNM5B3K2ME3WUqEqdLyUq1JYxFJl16ewp6udFJA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Jan Beulich <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>, "Juergen
 Gross" <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <Stewart.Hildebrand@amd.com>, Alex Deucher
	<Alexander.Deucher@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>, Huang Rui
	<Ray.Huang@amd.com>, Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang
	<Julia.Zhang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>, Huang Rui
	<ray.huang@amd.com>
Subject: [RFC XEN PATCH v3 3/3] libxl: Use gsi instead of irq for mapping pirq
Date: Mon, 11 Dec 2023 00:40:09 +0800
Message-ID: <20231210164009.1551147-4-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
References: <20231210164009.1551147-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015C8:EE_|SA0PR12MB4559:EE_
X-MS-Office365-Filtering-Correlation-Id: 66335a6c-1a3c-429b-e1a3-08dbf99ebf35
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	XpLKbnMU7A+9gF59s8pIU3rykYXY5HbnsrnO8wouj6x0aXlPR3tOv9edy+Y0HgmteIvrREAAWSu96gfKudaWoo9Ck/URdEdoGOIPIE2jXJghYIUyp1IAyVmhJ60VxsRg0MseOjVXhSzWefqlXlZ3b+PIeY7nuyRuvidfl/RPUQMo4F8u/6OkLivxbxxkbxgtfKKS8ThSj1irR1GAkloqD6r2sRM6Z9yjW925gJZdFkaMrIrr7VVWBdpg7UlKvPFT9fZDKn2IrAHnMFdkePPHPwLJ6gQTkug0xOcQu4MEle0eP0UaeAXlNMrjnVF4rpHywlROEtvNGjngih6+PnkocT4dty3UHOQUgwfmaJdzB8VVHH3EgkG/wCH+oqw9NF2CuesR8XMcpLfJn18ZwN2nwsv5aicm7eFZfiljUClWjGwC+eQA6gmEzoAKKO+UJIvfkeHJmBeKXsAKklA/51IOZHXUkcMBNP1Pya6KmY+ZQQCbU2nliiSST8TXf9h7Cl4v5xIPBOoVMTY6uWWZSLWoh38iwFXh6dwdnbJZl5WVraN4lrr2tccPmKBE3IHsk0BRfPzJyfBrICpY/lb2lfaGirCHFSalyGA0J2+lNhgJeYQnYKexaw3L6w5Cutvyc7Eu1gVJ239yDia/wE4cb/b+3wpHnhdOiqFVCcqMopDkzyARriq+gCucqR53/CD7YuB7GIpPTF5tSC9WdXb8BLXHW7LgtrVyt7YoAd+gqsbTrcZHcXorWSaVjvFqxtPPjWJLSae07VjxnEVPdsaqpf3Bhw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(396003)(136003)(376002)(346002)(230922051799003)(451199024)(64100799003)(82310400011)(1800799012)(186009)(46966006)(40470700004)(36840700001)(40460700003)(36860700001)(5660300002)(1076003)(47076005)(336012)(26005)(2616005)(16526019)(36756003)(426003)(70586007)(70206006)(54906003)(40480700001)(2906002)(83380400001)(82740400003)(81166007)(41300700001)(356005)(478600001)(7696005)(86362001)(8676002)(8936002)(4326008)(110136005)(316002)(6666004)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:40:41.0560
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 66335a6c-1a3c-429b-e1a3-08dbf99ebf35
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015C8.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4559

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, that causes the irq number is not equal with the gsi
number. And when passthrough a device, xl wants to use
gsi to map pirq, see pci_add_dm_done->xc_physdev_map_pirq,
but the gsi number is got from file
/sys/bus/pci/devices/<sbdf>/irq in current code, so it
will fail when mapping.

So, use real gsi number read from gsi sysfs.

Co-developed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 tools/libs/light/libxl_pci.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 96cb4da079..9e75f0c263 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -1416,7 +1416,7 @@ static void pci_add_dm_done(libxl__egc *egc,
     char *sysfs_path;
     FILE *f;
     unsigned long long start, end, flags, size;
-    int irq, i;
+    int gsi, i;
     int r;
     uint32_t flag = XEN_DOMCTL_DEV_RDM_RELAXED;
     uint32_t domainid = domid;
@@ -1439,7 +1439,7 @@ static void pci_add_dm_done(libxl__egc *egc,
                            pci->bus, pci->dev, pci->func);
     f = fopen(sysfs_path, "r");
     start = end = flags = size = 0;
-    irq = 0;
+    gsi = 0;
 
     if (f == NULL) {
         LOGED(ERROR, domainid, "Couldn't open %s", sysfs_path);
@@ -1478,26 +1478,26 @@ static void pci_add_dm_done(libxl__egc *egc,
     fclose(f);
     if (!pci_supp_legacy_irq())
         goto out_no_irq;
-    sysfs_path = GCSPRINTF(SYSFS_PCI_DEV"/"PCI_BDF"/irq", pci->domain,
+    sysfs_path = GCSPRINTF(SYSFS_PCI_DEV"/"PCI_BDF"/gsi", pci->domain,
                                 pci->bus, pci->dev, pci->func);
     f = fopen(sysfs_path, "r");
     if (f == NULL) {
         LOGED(ERROR, domainid, "Couldn't open %s", sysfs_path);
         goto out_no_irq;
     }
-    if ((fscanf(f, "%u", &irq) == 1) && irq) {
-        r = xc_physdev_map_pirq(ctx->xch, domid, irq, &irq);
+    if ((fscanf(f, "%u", &gsi) == 1) && gsi) {
+        r = xc_physdev_map_pirq(ctx->xch, domid, gsi, &gsi);
         if (r < 0) {
-            LOGED(ERROR, domainid, "xc_physdev_map_pirq irq=%d (error=%d)",
-                  irq, r);
+            LOGED(ERROR, domainid, "xc_physdev_map_pirq gsi=%d (error=%d)",
+                  gsi, r);
             fclose(f);
             rc = ERROR_FAIL;
             goto out;
         }
-        r = xc_domain_irq_permission(ctx->xch, domid, irq, 1);
+        r = xc_domain_irq_permission(ctx->xch, domid, gsi, 1);
         if (r < 0) {
             LOGED(ERROR, domainid,
-                  "xc_domain_irq_permission irq=%d (error=%d)", irq, r);
+                  "xc_domain_irq_permission gsi=%d (error=%d)", gsi, r);
             fclose(f);
             rc = ERROR_FAIL;
             goto out;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 16:53:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:53:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651408.1017090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCN3H-0000Qz-UL; Sun, 10 Dec 2023 16:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651408.1017090; Sun, 10 Dec 2023 16:53:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCN3H-0000Qs-RR; Sun, 10 Dec 2023 16:53:11 +0000
Received: by outflank-mailman (input) for mailman id 651408;
 Sun, 10 Dec 2023 16:53:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCN3F-0000Pr-Vf
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:53:09 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20629.outbound.protection.outlook.com
 [2a01:111:f400:fe59::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 972fa774-977c-11ee-9b0f-b553b5be7939;
 Sun, 10 Dec 2023 17:53:07 +0100 (CET)
Received: from MW4PR03CA0191.namprd03.prod.outlook.com (2603:10b6:303:b8::16)
 by SA1PR12MB7269.namprd12.prod.outlook.com (2603:10b6:806:2be::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.29; Sun, 10 Dec
 2023 16:53:02 +0000
Received: from MWH0EPF000989E8.namprd02.prod.outlook.com
 (2603:10b6:303:b8:cafe::cc) by MW4PR03CA0191.outlook.office365.com
 (2603:10b6:303:b8::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Sun, 10 Dec 2023 16:53:01 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989E8.mail.protection.outlook.com (10.167.241.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:53: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.34; Sun, 10 Dec
 2023 10:52:57 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 972fa774-977c-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nSZgTOx2kTLt/D2R08JtaEUIBBXGw5tnxf1flrNDQrG967DKZMvHrqX8uWfMm/gVg7MkyGoKZazmAQd+k3s3383TGmIpsH7iLd6UVn/0X0js0qfXrpmTV7VhgixTK+lT7H3QbJJKPS0BEv6ch5bNl5Obv2IcbNWEjn2dkq9Pt5N8oKxqLO6if5mJQJ89/lXaBqugjrEF3vtsDlQCcw3olq0lm3EwoT95aizjD8UCj8D3BWHUyAe14P8VD8+KUNAOuFcRuVMenxa7SqsJ+Wbz74iPvWbPEKwuJk3WngdHTFpLjcav0Hp6mGuZcRevyByk1Tv+LfXyi5Sm/3lcv2oa7A==
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=KinkHWjRvNuh9+XMqWW56i5NYsCfK2lRtAhMD+49lvI=;
 b=iqxhHhHBQm96R8hjgs8tgI2sjbMLMps6mX1WirQWYpHb9asBrjYKCw0LJuvSIObs5uKYDmjLSnWUCfPsLBPIWeKQZOF3ypfE39Bpxe8KFaFji1Zwnj71g00BKOmIcJgdKWorrUNeqlzOO4EpCNs6WpXVevt+rC/Bb3kWVsVrEM2i6HrHb3/YmE4IVOU1LZ8cy4eeh730lGIM5BqszotbddjhjEDvn8Q5PAmvGHqWFs4fYjcowIGLUA7q3TA+H20soBBDZDRTYMAgcAulmr0D1GvvqQ2R47Rzw/7tGM9bHCkw743d4BB4ty3rbv/gwKYWXmXu62wpIzz4+RoI++NE4w==
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=KinkHWjRvNuh9+XMqWW56i5NYsCfK2lRtAhMD+49lvI=;
 b=0iyVBZXEZak0Ae0z7BbUC+uaezlNtmz8NiEpym8qj+INxyZ9iSaO2oaSMs51Pmn6DnpRP60HSMGUdFm2pPXjF49lR/Mj+Zn4VZI8Ew2fs+lTuZVUsiHWd7JUwt318rLFCbd5JZtAar61+mpxTk+38xWpZvVygw5OMrtPgiV8PRQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Anthony Perard
	<anthony.perard@citrix.com>, Paul Durrant <paul@xen.org>,
	<qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>, Huang Rui <Ray.Huang@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang <Julia.Zhang@amd.com>,
	Jiqian Chen <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [RFC QEMU PATCH v3 1/1] xen: Use gsi instead of irq for mapping pirq
Date: Mon, 11 Dec 2023 00:52:40 +0800
Message-ID: <20231210165240.1551450-2-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20231210165240.1551450-1-Jiqian.Chen@amd.com>
References: <20231210165240.1551450-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989E8:EE_|SA1PR12MB7269:EE_
X-MS-Office365-Filtering-Correlation-Id: 41496d0c-bf1b-4692-f7ab-08dbf9a07894
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	qIoztYlGbR0Cg+HblVZ4BMoPeLmf6o1H+sOw+OfvA61Gf27QB8gqe7ctw+gIMapbASS39nQHIkBD2XUoQpmIsdeTwDQdXqNuCBwhtgbOdO/+XatVCp3PEQbqj+GyYmhL66lYS08wkf5ummglBvLr/NCgsCJ0gNyUKh9CwmjEDumsKCLdrcAABp//1RO/wn1z3jGYo9s3wJmwS/7F4nzgQgOiV+CduesFqGBCvweWX40apD8uTeVyPRrx6cmkcnRcEwQ0TI1iy1OCvdtHcgf5nHZb42ErRqeHOH1NC5qDSyVypAY8BBY6E1MhMoXu26HqLpsP3rGLsRUd06WZstJHzxPqAjMejx+dySm4+51B4ZZ4NiOoYs2cU+9wHa53Jo7RIn+38TeVp3W2VCXqFxNSyZMZ2BvDZBJ4db2kVnQHZUZoRmczw0K0yqk1pnaNB/YUOsNsB25qLeXmx5k6iiMkgUXKkmzO2w5QI3F4G0E2X+3sCVrH6syW7Wq9yDO07mTeGNu90gvy7HX06si5Xv/KBAsTKsqwALAzjlT3h4BF+4eQ1JNZYpRK3c3In2wSIZ7GBpZYspN8K20PnN5LmQxzUXEKrdVfN2Wp7dyhXT9ejuw5asMyB1vFihuXczaWxEmE8vWn3uJLAG61fUL8qMJsR7G0nuEO7lzKzrE7baQA7OmuU0RMpZere8vhu18DskeqrEkcAWj+pVtpnkbNACb9tp3qLLQzAvGYGodC9+F11XFgv96/BOgY667NEGmGAtte8Gf5U+b2Xj+0VL8dl8uHOQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(376002)(346002)(39860400002)(230922051799003)(186009)(64100799003)(82310400011)(451199024)(1800799012)(40470700004)(46966006)(36840700001)(40480700001)(26005)(336012)(1076003)(16526019)(6666004)(2616005)(426003)(40460700003)(36756003)(86362001)(82740400003)(81166007)(356005)(83380400001)(5660300002)(2906002)(7696005)(36860700001)(54906003)(110136005)(4326008)(47076005)(8936002)(70206006)(70586007)(8676002)(316002)(41300700001)(478600001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:53:01.4450
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 41496d0c-bf1b-4692-f7ab-08dbf9a07894
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989E8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7269

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, that causes the irq number is not equal with the gsi
number. And when passthrough a device, qemu wants to use
gsi to map pirq, xen_pt_realize->xc_physdev_map_pirq, but
the gsi number is got from file
/sys/bus/pci/devices/<sbdf>/irq in current code, so it
will fail when mapping.

Use real gsi number read from gsi sysfs.

Co-developed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 hw/xen/xen-host-pci-device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/xen/xen-host-pci-device.c b/hw/xen/xen-host-pci-device.c
index 8c6e9a1716..e270ac2631 100644
--- a/hw/xen/xen-host-pci-device.c
+++ b/hw/xen/xen-host-pci-device.c
@@ -364,7 +364,7 @@ void xen_host_pci_device_get(XenHostPCIDevice *d, uint16_t domain,
     }
     d->device_id = v;
 
-    xen_host_pci_get_dec_value(d, "irq", &v, errp);
+    xen_host_pci_get_dec_value(d, "gsi", &v, errp);
     if (*errp) {
         goto error;
     }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 16:53:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 16:53:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651407.1017079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCN3B-00009u-Mq; Sun, 10 Dec 2023 16:53:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651407.1017079; Sun, 10 Dec 2023 16:53: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 1rCN3B-00009n-KE; Sun, 10 Dec 2023 16:53:05 +0000
Received: by outflank-mailman (input) for mailman id 651407;
 Sun, 10 Dec 2023 16:53: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=lAJh=HV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCN39-00009f-Rp
 for xen-devel@lists.xenproject.org; Sun, 10 Dec 2023 16:53:03 +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 94142f62-977c-11ee-98e8-6d05b1d4d9a1;
 Sun, 10 Dec 2023 17:53:02 +0100 (CET)
Received: from SJ0PR13CA0012.namprd13.prod.outlook.com (2603:10b6:a03:2c0::17)
 by MW4PR12MB7165.namprd12.prod.outlook.com (2603:10b6:303:21b::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Sun, 10 Dec
 2023 16:52:58 +0000
Received: from MWH0EPF000989EA.namprd02.prod.outlook.com
 (2603:10b6:a03:2c0:cafe::a7) by SJ0PR13CA0012.outlook.office365.com
 (2603:10b6:a03:2c0::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.21 via Frontend
 Transport; Sun, 10 Dec 2023 16:52:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Sun, 10 Dec 2023 16:52:57 +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.34; Sun, 10 Dec
 2023 10:52:53 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94142f62-977c-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gG+4PyF4IJhxlugd1fib3XuB383IxzuSo+oIKzdJb6sKGuqaDPsBmmTJOu6NMcpEeW0kRESkdv5LSkBUwsrInwJNxeY4CdoJpsrwbY7PSmsSAqj4EUB7oyMQhdP/tzwL1zF2U4AuuylXI6HC0k9/vKp68cK0cuFPXSQVPMn0ABlF7bvBZdHfzYrofsXNW5yXHd0frzZ0UUmDx5y4mBztM+MRNZMgXl2SmsMqK/NjA5eLvA6guwOdlC2j4Il2KbbqaIUYj3ZERkjKHoP02Tzo8LlWvJ+vimYKr/zw1dhG8GJNECcymfN6/GCuz+1EhPI8pfgssanAOS74321ygXTu+g==
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=3XlXaSEqa0DdMrahG/fhGSwozwtfCWFVQhk7iHPtKUU=;
 b=Db1k7U3NFAKAcN31Jtn8CLbXgEaVYWbnHxPWrxdx8XXuIJt1tFY4GFawiZII1WL7pPjJzsexF10DbQosD5FKJmPhmoMDBh9E8t6KOrRYeQITsF6hHxuvWsVyMLszUUcODBH7jZJsmy64iKrcskCB8MI8/HHkdJhTQuKoYjLibBHX8+rflHLoOrk8b2G+Zyqv7g3iB1F6aicVsEXEypvCd6IzuJQD37u47sz8/2QN69bwsUeeuhkfKdtXsAGsf0DO6n7fZOyMSPPIOzT0CDgfGAjeKOdYcW0zcn43denuAtDXTlDCnUe5Lbqy77UHQYaiLyVrAiConve7byd+HsBNBg==
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=3XlXaSEqa0DdMrahG/fhGSwozwtfCWFVQhk7iHPtKUU=;
 b=3jUshvQdBe3haUjBNQyWLpUxfDyDc16uH/MGr0PtC2wTTR3FjenFP43yYz/PeH1q5QSh42WxhykUU2IXAUNRhx8YNi3HmU/GOTAb6zLIGbH4x9VhkFOV9to22pMqK7Z3v1DKMkFqLIoJevJuDRSErGeMdpkfsNZsVOdPkYT7Rwk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Anthony Perard
	<anthony.perard@citrix.com>, Paul Durrant <paul@xen.org>,
	<qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>, Huang Rui <Ray.Huang@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>, Julia Zhang <Julia.Zhang@amd.com>,
	Jiqian Chen <Jiqian.Chen@amd.com>
Subject: [RFC QEMU PATCH v3 0/1] Support device passthrough when dom0 is PVH on Xen
Date: Mon, 11 Dec 2023 00:52:39 +0800
Message-ID: <20231210165240.1551450-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989EA:EE_|MW4PR12MB7165:EE_
X-MS-Office365-Filtering-Correlation-Id: 3386ee77-2e51-4973-02ac-08dbf9a07662
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Rf+VFX6rAoi7ZC6GEq5S0hmVQz6QPOo1CPii1W5GnaskWOKOd00rZq4DpkgbOtqGtWZXGDaDfFpAAXoDZIP2Hd/1aj2lrODDqEfYjuFAMlnNmrxDFLQjG0lBQ2kmCzdEYNNRSRB7PLRLumNKtIuJNkHwk57Go+RsFIk27N0liV278qZJpX/gJ3bFYBdbny2m8MsLLmNxbIoilM+aL7Y2NBLQ2iM/xaUdEHqdEFHzv1NP7jqRNBj0olHjBsdQQDV/CzsAL/FMghQsn9n83uMG58UOiqzaD1JmRHXTn/7ty0OY+SKZrEJ+QCGBkxQA1UEBjczpYf/NmLbhWaneqK++Jrc+r1pIdZI5nQwmALNlin5eGY3UJwgBW2em8EGnmJXCe+oHQ7lv2Syle63TAT/rGzLBFkp7BB/bDlZnf8EZ5XH5hHnjQodp3K1vTV+9NKa86LO0/bMKiTs8huEKXDJElpF0RQ1rF72SWp7rummS8JQgcLj6J4Yg3/uytJCunGdiTBrdI3XD/kjiNOos3iFD+4G3Mac9DiB1/0YRuSji8DDCz3lDtCCffcpyJ9g2Uc+rL9ZhES0OmWW1Xeo08HPmmt19P5IYXm68VLPJiVkQ70BQzNDcY8ZAwIB4y44+wwl1nBToIo3XiRxMer9BzV7dw1XZUHi6JFx4K9PLpgg3qBlv4g2nbgagih44a8Ws92O7NMrIqysgKVPXlBI4v9mQ+mcuGgUVGqJ5PeKQmgkxH8a/NegHPhMmykDGpO0Pmaf/mFmh+t5JD/1qBFrAEQK102rjefMMlgbZEH6/DVt0yXU=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(376002)(346002)(136003)(39860400002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(82310400011)(46966006)(40470700004)(36840700001)(40460700003)(1076003)(26005)(16526019)(2616005)(426003)(336012)(6666004)(7696005)(36860700001)(83380400001)(47076005)(5660300002)(41300700001)(2906002)(478600001)(966005)(4326008)(8676002)(8936002)(70206006)(70586007)(110136005)(316002)(54906003)(81166007)(86362001)(356005)(82740400003)(36756003)(40480700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2023 16:52:57.7712
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3386ee77-2e51-4973-02ac-08dbf9a07662
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989EA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7165

Hi All,
v2->v3 changes:
* 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 patch on kernel side:
https://lore.kernel.org/lkml/20231210161519.1550860-1-Jiqian.Chen@amd.com/T/#t
v3 patch on Xen side:
https://lore.kernel.org/xen-devel/20231210164009.1551147-1-Jiqian.Chen@amd.com/T/#t


Below is the description of v2 cover letter:
This patch is the v2 of the implementation of passthrough when dom0 is PVH on Xen.
Issues we encountered:
1. failed to map pirq for gsi
Problem: qemu will call xc_physdev_map_pirq() to map a passthrough deviceâ€™s gsi to pirq in function xen_pt_realize(). But failed.

Reason: According to the implement of xc_physdev_map_pirq(), it needs gsi instead of irq, but qemu pass irq to it and treat irq as gsi, it is got from file /sys/bus/pci/devices/xxxx:xx:xx.x/irq in function xen_host_pci_device_get(). But actually the gsi number is not equal with irq. 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 on qemu side is the same as 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.

v2 on kernel side:
https://lore.kernel.org/lkml/20231124103123.3263471-1-Jiqian.Chen@amd.com/T/#t

v2 on Xen side:
https://lore.kernel.org/xen-devel/20231124104136.3263722-1-Jiqian.Chen@amd.com/T/#t


Jiqian Chen (1):
  xen: Use gsi instead of irq for mapping pirq

 hw/xen/xen-host-pci-device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Dec 10 19:12:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 19:12:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651427.1017112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCPDc-0002IT-P7; Sun, 10 Dec 2023 19:12:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651427.1017112; Sun, 10 Dec 2023 19:12:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCPDc-0002IM-MX; Sun, 10 Dec 2023 19:12:00 +0000
Received: by outflank-mailman (input) for mailman id 651427;
 Sun, 10 Dec 2023 19:11: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 1rCPDb-0002IC-LU; Sun, 10 Dec 2023 19:11: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 1rCPDb-0002w2-9o; Sun, 10 Dec 2023 19:11: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 1rCPDa-0003A6-Ql; Sun, 10 Dec 2023 19:11:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCPDa-0003E8-QL; Sun, 10 Dec 2023 19:11: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:Message-Id:Subject:To;
	bh=ePnyff3hB3d3stsEbKUSWe9flR4lZBVn94GZXawuLDs=; b=AXK/psEjJxtNAnCzCQNOofcuee
	qZXo56NiJZyYJkAfOtgUlxEXVRZsyY/y0WxDHMOaNLjqVfgRp0dsFr/aVWQhz3TunqsYl4IYKX+G2
	tnzmCY2IsiGptSn+0FVA0s6mWAxG6ZENKuxMog3RDz0teC3mNofQuzCd4NLgzKxC/MEk=;
To: xen-devel@lists.xenproject.org
Subject: [xen-unstable bisection] complete test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm
Message-Id: <E1rCPDa-0003E8-QL@osstest.test-lab.xenproject.org>
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 10 Dec 2023 19:11:58 +0000

branch xen-unstable
xenbranch xen-unstable
job test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm
testid debian-hvm-install

Tree: linux git://xenbits.xen.org/linux-pvops.git
Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git
Tree: qemu git://xenbits.xen.org/qemu-xen-traditional.git
Tree: qemuu git://xenbits.xen.org/qemu-xen.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:  bc4fe94a69d4dab103c37045d97e589ef75f8647
  Bug not present: e6e8c5831a64420a56f83e87919ed157ab810fab
  Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/184083/


  commit bc4fe94a69d4dab103c37045d97e589ef75f8647
  Author: Juergen Gross <jgross@suse.com>
  Date:   Thu Dec 7 07:25:51 2023 +0100
  
      tools/libs/evtchn: replace assert()s in stubdom with proper locking
      
      In tools/libs/evtchn/minios.c there are assert()s for the current
      thread being the main thread when binding an event channel.
      
      As Mini-OS is supporting multiple threads, there is no real reason
      why the binding shouldn't be allowed to happen in any other thread.
      
      Drop the assert()s and replace them with proper locking of the
      port_list.
      
      Signed-off-by: Juergen Gross <jgross@suse.com>
      Reviewed-by: Jason Andryuk <jandryuk@gmail.com>


For bisection revision-tuple graph see:
   http://logs.test-lab.xenproject.org/osstest/results/bisect/xen-unstable/test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm.debian-hvm-install.html
Revision IDs in each graph node refer, respectively, to the Trees above.

----------------------------------------
Running cs-bisection-step --graph-out=/home/logs/results/bisect/xen-unstable/test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm.debian-hvm-install --summary-out=tmp/184083.bisection-summary --basis-template=184031 --blessings=real,real-bisect,real-retry xen-unstable test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm debian-hvm-install
Searching for failure / basis pass:
 184064 fail [host=albana0] / 184031 [host=elbling0] 184020 [host=debina0] 184005 [host=albana1] 183996 [host=huxelrebe1] 183990 [host=debina1] 183983 [host=nobling0] 183978 [host=rimava1] 183974 ok.
Failure / basis pass flights: 184064 / 183974
(tree with no url: minios)
(tree with no url: ovmf)
(tree with no url: seabios)
Tree: linux git://xenbits.xen.org/linux-pvops.git
Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git
Tree: qemu git://xenbits.xen.org/qemu-xen-traditional.git
Tree: qemuu git://xenbits.xen.org/qemu-xen.git
Tree: xen git://xenbits.xen.org/xen.git
Latest c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
Basis pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 525c7c094b258e8a46b494488eef96f5670eb352
Generating revisions with ./adhoc-revtuple-generator  git://xenbits.xen.org/linux-pvops.git#c3038e718a19fc596f7b1baba0f83d5146dc7784-c3038e718a19fc596f7b1baba0f83d5146dc7784 git://xenbits.xen.org/osstest/linux-firmware.git#c530a75c1e6a472b0eb9558310b518f0dfcd8860-c530a75c1e6a472b0eb9558310b518f0dfcd8860 git://xenbits.xen.org/qemu-xen-traditional.git#3d273dd05e51e5a1ffba3d98c7437ee84e8f8764-3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 git://xenbits.xen.org/qemu-xen.git#0df9387c8983e1b1e72d8c574356f57\
 2342c03e6-0df9387c8983e1b1e72d8c574356f572342c03e6 git://xenbits.xen.org/xen.git#525c7c094b258e8a46b494488eef96f5670eb352-bc4fe94a69d4dab103c37045d97e589ef75f8647
Loaded 5001 nodes in revision graph
Searching for test results:
 183971 [host=fiano1]
 183990 [host=debina1]
 183974 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 525c7c094b258e8a46b494488eef96f5670eb352
 183978 [host=rimava1]
 183983 [host=nobling0]
 183996 [host=huxelrebe1]
 184005 [host=albana1]
 184020 [host=debina0]
 184031 [host=elbling0]
 184036 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184044 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184053 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184066 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 525c7c094b258e8a46b494488eef96f5670eb352
 184067 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184070 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 634c6e15ac44cd6b09a79126bf1424fd72ab31df
 184071 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 dbe69e1c8555b40a43cde482615501eb8515ab80
 184072 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 02d0a615b32d03702f79807fa5e88f0cf78dde84
 184064 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184073 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 25147005daf5a4e121b96496d6d208fac05fca35
 184075 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 d2b7c442b4a066bb670ee83e24800cabc415241d
 184077 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab
 184079 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184080 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab
 184081 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
 184082 pass c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab
 184083 fail c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 bc4fe94a69d4dab103c37045d97e589ef75f8647
Searching for interesting versions
 Result found: flight 183974 (pass), for basis pass
 For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab, results HASH(0x55f51ec0f3e0) HASH(0x55f51ebfffd8) HASH(0x55f51e6abe10) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8\
 983e1b1e72d8c574356f572342c03e6 d2b7c442b4a066bb670ee83e24800cabc415241d, results HASH(0x55f51ec08c20) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 25147005daf5a4e121b96496d6d208fac05fca35, results HASH(0x55f51ec0e960) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f\
 0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 02d0a615b32d03702f79807fa5e88f0cf78dde84, results HASH(0x55f51ec09848) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 dbe69e1c8555b40a43cde482615501eb8515ab80, results HASH(0x55f51ec09548) For basis failure, parent search stopping at c3038e718a19\
 fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 634c6e15ac44cd6b09a79126bf1424fd72ab31df, results HASH(0x55f51ec084a0) For basis failure, parent search stopping at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 525c7c094b258e8a46b494488eef96f5670eb352, results HASH(0x55f51ebfac2\
 0) HASH(0x55f51ec0ac50) Result found: flight 184036 (fail), for basis failure (at ancestor ~2514)
 Repro found: flight 184066 (pass), for basis pass
 Repro found: flight 184067 (fail), for basis failure
 0 revisions at c3038e718a19fc596f7b1baba0f83d5146dc7784 c530a75c1e6a472b0eb9558310b518f0dfcd8860 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764 0df9387c8983e1b1e72d8c574356f572342c03e6 e6e8c5831a64420a56f83e87919ed157ab810fab
No revisions left to test, checking graph state.
 Result found: flight 184077 (pass), for last pass
 Result found: flight 184079 (fail), for first failure
 Repro found: flight 184080 (pass), for last pass
 Repro found: flight 184081 (fail), for first failure
 Repro found: flight 184082 (pass), for last pass
 Repro found: flight 184083 (fail), for first failure

*** Found and reproduced problem changeset ***

  Bug is in tree:  xen git://xenbits.xen.org/xen.git
  Bug introduced:  bc4fe94a69d4dab103c37045d97e589ef75f8647
  Bug not present: e6e8c5831a64420a56f83e87919ed157ab810fab
  Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/184083/


  commit bc4fe94a69d4dab103c37045d97e589ef75f8647
  Author: Juergen Gross <jgross@suse.com>
  Date:   Thu Dec 7 07:25:51 2023 +0100
  
      tools/libs/evtchn: replace assert()s in stubdom with proper locking
      
      In tools/libs/evtchn/minios.c there are assert()s for the current
      thread being the main thread when binding an event channel.
      
      As Mini-OS is supporting multiple threads, there is no real reason
      why the binding shouldn't be allowed to happen in any other thread.
      
      Drop the assert()s and replace them with proper locking of the
      port_list.
      
      Signed-off-by: Juergen Gross <jgross@suse.com>
      Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

Revision graph left in /home/logs/results/bisect/xen-unstable/test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm.debian-hvm-install.{dot,ps,png,html,svg}.
----------------------------------------
184083: tolerable ALL FAIL

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

Failures :-/ but no regressions.

Tests which did not succeed,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail baseline untested


jobs:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         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 Sun Dec 10 22:16:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Dec 2023 22:16:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651446.1017122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCS5h-0003FT-FV; Sun, 10 Dec 2023 22:16:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651446.1017122; Sun, 10 Dec 2023 22:16:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCS5h-0003FM-Aq; Sun, 10 Dec 2023 22:16:01 +0000
Received: by outflank-mailman (input) for mailman id 651446;
 Sun, 10 Dec 2023 22: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 1rCS5g-0003FC-57; Sun, 10 Dec 2023 22: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 1rCS5f-0001Wm-UO; Sun, 10 Dec 2023 22:15: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 1rCS5f-0007a2-Ga; Sun, 10 Dec 2023 22:15:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCS5f-0001p3-G1; Sun, 10 Dec 2023 22: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=ZZPl/S5ZgVh0M94JLj5+KtK4QcPC7MfFcHd+lcPWJQM=; b=eFhZkhYWTufLM0JR9noui4coRt
	MBfVksrIM43CkYjFYftLd1FDG8oAmcaerYfSfejPgrAbbC9Cs3517kd9sgZqI5fWfaDGPR9XA9ZOL
	GOSWvKaez8vvEkE3/ijhFQ4neNYJPQovXaVLsc9JCQqd3OztI3uEVfBKHs2ZF57zeMmo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184076-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184076: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-credit2: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-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-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-amd64-i386-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-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=bc4fe94a69d4dab103c37045d97e589ef75f8647
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 10 Dec 2023 22:15:59 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-credit2  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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
 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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  bc4fe94a69d4dab103c37045d97e589ef75f8647
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    3 days
Testing same since   184036  2023-12-08 10:40:52 Z    2 days    5 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Juergen Gross <jgross@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 01:08:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 01:08:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651457.1017132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCUmg-0008EM-VK; Mon, 11 Dec 2023 01:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651457.1017132; Mon, 11 Dec 2023 01: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 1rCUmg-0008E1-PI; Mon, 11 Dec 2023 01:08:34 +0000
Received: by outflank-mailman (input) for mailman id 651457;
 Mon, 11 Dec 2023 01:08: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 1rCUmf-0008Dr-2B; Mon, 11 Dec 2023 01:08: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 1rCUme-0003yn-Rj; Mon, 11 Dec 2023 01:08: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 1rCUme-0005a3-EX; Mon, 11 Dec 2023 01:08:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCUme-0003Au-Dr; Mon, 11 Dec 2023 01:08: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=r24XD3gsSiX64ycxscA20GwWEs9dPX1/e3BDpIydJHk=; b=z8ZMRr99TqeVYT+eDGqiqnlsdc
	joCj1QxT77gw0p3aB1FaytbCRxdJboEPD5jD1jTIgBFcOlCQ1DlN3ETFKxPEn5oS80KeQNzLc72Hn
	koMQmwsZfE8w/T95JtmPPVJpoK1N+/eJXyAWuvsA4G+pI2IMKql4pjXllyVwebp9/aGw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184078-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184078: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-qemuu-debianhvm-amd64-xsm: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-libvirt: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-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2: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
X-Osstest-Versions-This:
    linux=c527f5606aa545233a4d2c6d5c636ed82b8633ef
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 01:08:32 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 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

version targeted for testing:
 linux                c527f5606aa545233a4d2c6d5c636ed82b8633ef
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    8 days
Failing since        183977  2023-12-03 00:12:06 Z    8 days   16 attempts
Testing same since   184078  2023-12-10 13:14:01 Z    0 days    1 attempts

------------------------------------------------------------
326 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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 11865 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 05:14:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 05:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651474.1017142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCYca-0000Nz-0G; Mon, 11 Dec 2023 05:14:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651474.1017142; Mon, 11 Dec 2023 05: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 1rCYcZ-0000Ns-Tn; Mon, 11 Dec 2023 05:14:23 +0000
Received: by outflank-mailman (input) for mailman id 651474;
 Mon, 11 Dec 2023 05: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=2mk9=HW=kernel.org=mhiramat@srs-se1.protection.inumbo.net>)
 id 1rCYcY-0000Nm-Gy
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 05:14:22 +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 2226f9ee-97e4-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 06:14:19 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 75C29CE0E2A;
 Mon, 11 Dec 2023 05:14:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D0966C433C8;
 Mon, 11 Dec 2023 05:14:05 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2226f9ee-97e4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702271651;
	bh=1RaacpWnTkL7X+JkkZCzrmMSUdmiLmbVja5/lwCyjQE=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=j1k87/K7XA8EUz7Zf98AZPRZyBK3naglI6189/lN0rxULeWuXjMdwpoAWl6KaQDu7
	 3blzWA81dIIb5kC62NvxjL2YeGPGNpo134fVU1OIWCZ8wISzfCfIHLmlVGVMjdoPZG
	 ypL9U5OwRcNAf1U7n98XUq7ZJFwB4M6SkzSNXqE+3pRpe0S0TGnprKad8mHpY0EmG7
	 5em7IPy2y3vOan4UyOPX4/fva1R2mmdUqcqVGk1AiRcjfacx76VCU6M0WuYEAjcXh4
	 T6ORZDmE3uH9ZfnxzMcYRaWZ9lpYmUfPqCmUtVmz1kaPKNOxj7IfYhmyOtAPd0VHzM
	 xA7qcayxQqJ7Q==
Date: Mon, 11 Dec 2023 14:14:03 +0900
From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
To: Xin Li <xin3.li@intel.com>
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-edac@vger.kernel.org, linux-hyperv@vger.kernel.org,
 kvm@vger.kernel.org, xen-devel@lists.xenproject.org, tglx@linutronix.de,
 mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
 x86@kernel.org, hpa@zytor.com, luto@kernel.org, pbonzini@redhat.com,
 seanjc@google.com, peterz@infradead.org, jgross@suse.com,
 ravi.v.shankar@intel.com, mhiramat@kernel.org, andrew.cooper3@citrix.com,
 jiangshanlai@gmail.com, nik.borisov@suse.com, shan.kang@intel.com
Subject: Re: [PATCH v13 01/35] x86/cpufeatures,opcode,msr: Add the WRMSRNS
 instruction support
Message-Id: <20231211141403.09e3f2d81eb499ba44035fef@kernel.org>
In-Reply-To: <20231205105030.8698-2-xin3.li@intel.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
	<20231205105030.8698-2-xin3.li@intel.com>
X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Tue,  5 Dec 2023 02:49:50 -0800
Xin Li <xin3.li@intel.com> wrote:

> WRMSRNS is an instruction that behaves exactly like WRMSR, with
> the only difference being that it is not a serializing instruction
> by default. Under certain conditions, WRMSRNS may replace WRMSR to
> improve performance.
> 
> Add its CPU feature bit, opcode to the x86 opcode map, and an
> always inline API __wrmsrns() to embed WRMSRNS into the code.
> 
> Tested-by: Shan Kang <shan.kang@intel.com>
> Signed-off-by: Xin Li <xin3.li@intel.com>

Looks good to me.

Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>

Thanks,

> ---
> 
> Changes since v12:
> * Merge the 3 WRMSRNS patches into one (Borislav Petkov).
> * s/cpu/CPU/g (Borislav Petkov).
> * Shorten the WRMSRNS description (Borislav Petkov).
> ---
>  arch/x86/include/asm/cpufeatures.h       |  1 +
>  arch/x86/include/asm/msr.h               | 18 ++++++++++++++++++
>  arch/x86/lib/x86-opcode-map.txt          |  2 +-
>  tools/arch/x86/include/asm/cpufeatures.h |  1 +
>  tools/arch/x86/lib/x86-opcode-map.txt    |  2 +-
>  5 files changed, 22 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
> index 149cc5d5c2ae..a903fc130e49 100644
> --- a/arch/x86/include/asm/cpufeatures.h
> +++ b/arch/x86/include/asm/cpufeatures.h
> @@ -325,6 +325,7 @@
>  #define X86_FEATURE_FSRS		(12*32+11) /* "" Fast short REP STOSB */
>  #define X86_FEATURE_FSRC		(12*32+12) /* "" Fast short REP {CMPSB,SCASB} */
>  #define X86_FEATURE_LKGS		(12*32+18) /* "" Load "kernel" (userspace) GS */
> +#define X86_FEATURE_WRMSRNS		(12*32+19) /* "" Non-serializing WRMSR */
>  #define X86_FEATURE_AMX_FP16		(12*32+21) /* "" AMX fp16 Support */
>  #define X86_FEATURE_AVX_IFMA            (12*32+23) /* "" Support for VPMADD52[H,L]UQ */
>  #define X86_FEATURE_LAM			(12*32+26) /* Linear Address Masking */
> diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
> index 65ec1965cd28..c284ff9ebe67 100644
> --- a/arch/x86/include/asm/msr.h
> +++ b/arch/x86/include/asm/msr.h
> @@ -97,6 +97,19 @@ static __always_inline void __wrmsr(unsigned int msr, u32 low, u32 high)
>  		     : : "c" (msr), "a"(low), "d" (high) : "memory");
>  }
>  
> +/*
> + * WRMSRNS behaves exactly like WRMSR with the only difference being
> + * that it is not a serializing instruction by default.
> + */
> +static __always_inline void __wrmsrns(u32 msr, u32 low, u32 high)
> +{
> +	/* Instruction opcode for WRMSRNS; supported in binutils >= 2.40. */
> +	asm volatile("1: .byte 0x0f,0x01,0xc6\n"
> +		     "2:\n"
> +		     _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR)
> +		     : : "c" (msr), "a"(low), "d" (high));
> +}
> +
>  #define native_rdmsr(msr, val1, val2)			\
>  do {							\
>  	u64 __val = __rdmsr((msr));			\
> @@ -297,6 +310,11 @@ do {							\
>  
>  #endif	/* !CONFIG_PARAVIRT_XXL */
>  
> +static __always_inline void wrmsrns(u32 msr, u64 val)
> +{
> +	__wrmsrns(msr, val, val >> 32);
> +}
> +
>  /*
>   * 64-bit version of wrmsr_safe():
>   */
> diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt
> index 5168ee0360b2..1efe1d9bf5ce 100644
> --- a/arch/x86/lib/x86-opcode-map.txt
> +++ b/arch/x86/lib/x86-opcode-map.txt
> @@ -1051,7 +1051,7 @@ GrpTable: Grp6
>  EndTable
>  
>  GrpTable: Grp7
> -0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B)
> +0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B) | WRMSRNS (110),(11B)
>  1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
>  2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
>  3: LIDT Ms
> diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h
> index 4af140cf5719..26a73ae18a86 100644
> --- a/tools/arch/x86/include/asm/cpufeatures.h
> +++ b/tools/arch/x86/include/asm/cpufeatures.h
> @@ -322,6 +322,7 @@
>  #define X86_FEATURE_FSRS		(12*32+11) /* "" Fast short REP STOSB */
>  #define X86_FEATURE_FSRC		(12*32+12) /* "" Fast short REP {CMPSB,SCASB} */
>  #define X86_FEATURE_LKGS		(12*32+18) /* "" Load "kernel" (userspace) GS */
> +#define X86_FEATURE_WRMSRNS		(12*32+19) /* "" Non-serializing WRMSR */
>  #define X86_FEATURE_AMX_FP16		(12*32+21) /* "" AMX fp16 Support */
>  #define X86_FEATURE_AVX_IFMA            (12*32+23) /* "" Support for VPMADD52[H,L]UQ */
>  #define X86_FEATURE_LAM			(12*32+26) /* Linear Address Masking */
> diff --git a/tools/arch/x86/lib/x86-opcode-map.txt b/tools/arch/x86/lib/x86-opcode-map.txt
> index 5168ee0360b2..1efe1d9bf5ce 100644
> --- a/tools/arch/x86/lib/x86-opcode-map.txt
> +++ b/tools/arch/x86/lib/x86-opcode-map.txt
> @@ -1051,7 +1051,7 @@ GrpTable: Grp6
>  EndTable
>  
>  GrpTable: Grp7
> -0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B)
> +0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B) | WRMSRNS (110),(11B)
>  1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
>  2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
>  3: LIDT Ms
> -- 
> 2.43.0
> 


-- 
Masami Hiramatsu (Google) <mhiramat@kernel.org>


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 06:13:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 06:13:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651478.1017152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCZXi-0000pW-AK; Mon, 11 Dec 2023 06:13:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651478.1017152; Mon, 11 Dec 2023 06:13:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCZXi-0000pP-7h; Mon, 11 Dec 2023 06:13:26 +0000
Received: by outflank-mailman (input) for mailman id 651478;
 Mon, 11 Dec 2023 06:13: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 1rCZXg-0000pF-C6; Mon, 11 Dec 2023 06:13: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 1rCZXg-0002r0-0v; Mon, 11 Dec 2023 06:13: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 1rCZXf-0004Kl-IZ; Mon, 11 Dec 2023 06:13:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCZXf-00013E-HK; Mon, 11 Dec 2023 06:13: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=loL26wD9AmFMJvxtSJQwIYLrs3sDh5WeXEug3EXsaAA=; b=lQ5MexGvFJTBovO/jbUVBXtnh+
	mCz3UeCKpESiCQGYb3MhfNNa7XQI76bSEn0/vz8p5XjMCqQROpzQUZ3V2kQhDICaMft2yeB0sERWR
	2xXq/AV0mdSmJXuU9p8tQae8J0qgiGapf/ig20vWzov8UCqTmKGX4VTxy5wCg+JXw0Hw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184087-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184087: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=bb13a4adabcf0e5a1608583c386472773dca5726
X-Osstest-Versions-That:
    ovmf=85a5141a320980e1479343a62731517e197f784e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 06:13:23 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 bb13a4adabcf0e5a1608583c386472773dca5726
baseline version:
 ovmf                 85a5141a320980e1479343a62731517e197f784e

Last test of basis   184042  2023-12-09 01:56:02 Z    2 days
Testing same since   184087  2023-12-11 03:43:08 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Nhi Pham <nhiphambka@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    
 test-amd64-i386-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
   85a5141a32..bb13a4adab  bb13a4adabcf0e5a1608583c386472773dca5726 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 07:10:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 07:10:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651488.1017162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCaQt-000130-Aq; Mon, 11 Dec 2023 07:10:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651488.1017162; Mon, 11 Dec 2023 07:10:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCaQt-00012t-74; Mon, 11 Dec 2023 07:10:27 +0000
Received: by outflank-mailman (input) for mailman id 651488;
 Mon, 11 Dec 2023 07:10:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=g7EY=HW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCaQr-00012k-Nm
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 07:10:25 +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 59acdb7a-97f4-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 08:10:24 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 43681221C8;
 Mon, 11 Dec 2023 07:10:22 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 135E6138FF;
 Mon, 11 Dec 2023 07:10:22 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id xYBgA961dmUvdgAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 11 Dec 2023 07: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>
X-Inumbo-ID: 59acdb7a-97f4-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702278622; 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=GCO6k+P750qbUTWPFT2od1dSN0T/kJ4b8bU4dSmdUDw=;
	b=qmlp40tI5QtYkYVEpeViGidCuqQXxmOxLueGJXRX88KD8knRuZeVOAL0wEG/bBSbiuPEBV
	QXOd3eqko5ayM0jWjA05ivoZtK57M91ZwtuPGuEJd2BfCf1nX/p8/qiAf5rzdgT7lT++lG
	Qw5TeYWV7mG91JmJzi0TVvlQ06dxAbw=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702278622; 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=GCO6k+P750qbUTWPFT2od1dSN0T/kJ4b8bU4dSmdUDw=;
	b=qmlp40tI5QtYkYVEpeViGidCuqQXxmOxLueGJXRX88KD8knRuZeVOAL0wEG/bBSbiuPEBV
	QXOd3eqko5ayM0jWjA05ivoZtK57M91ZwtuPGuEJd2BfCf1nX/p8/qiAf5rzdgT7lT++lG
	Qw5TeYWV7mG91JmJzi0TVvlQ06dxAbw=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: [PATCH] tools/libs/evtchn: fix locking in Mini-OS
Date: Mon, 11 Dec 2023 08:10:17 +0100
Message-Id: <20231211071017.27752-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Score: 0.70
X-Spam-Flag: NO
X-Spamd-Result: default: False [0.70 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 TO_DN_SOME(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-0.998];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[];
	 BAYES_HAM(-3.00)[99.99%]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: 0.70
Authentication-Results: smtp-out1.suse.de;
	none

When adding locking to tools/libs/evtchn/minios.c a semaphore was
used. This can result in deadlocks, as the lock is taken inside the
event handler, which can interrupt an already locked region.

The fix is rather simple, as Mini-OS is supporting a single vcpu
only. So instead of the semaphore it is enough to disable interrupts
when operating on the port list.

Fixes: bc4fe94a69d4 ("ools/libs/evtchn: replace assert()s in stubdom with proper locking")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/libs/evtchn/minios.c | 45 +++++++++++++-------------------------
 1 file changed, 15 insertions(+), 30 deletions(-)

diff --git a/tools/libs/evtchn/minios.c b/tools/libs/evtchn/minios.c
index c807e17f55..046cd28d37 100644
--- a/tools/libs/evtchn/minios.c
+++ b/tools/libs/evtchn/minios.c
@@ -25,7 +25,6 @@
 #include <mini-os/os.h>
 #include <mini-os/lib.h>
 #include <mini-os/events.h>
-#include <mini-os/semaphore.h>
 #include <mini-os/wait.h>
 
 #include <assert.h>
@@ -43,7 +42,6 @@ XEN_LIST_HEAD(port_list, struct port_info);
 
 struct ports {
     struct port_list list;
-    struct semaphore sem;
 };
 
 struct port_info {
@@ -58,6 +56,7 @@ static struct port_info *port_alloc(xenevtchn_handle *xce)
     struct port_info *port_info;
     struct file *file = get_file_from_fd(xce->fd);
     struct ports *ports = file->dev;
+    unsigned long flags;
 
     port_info = malloc(sizeof(struct port_info));
     if ( port_info == NULL )
@@ -67,19 +66,24 @@ static struct port_info *port_alloc(xenevtchn_handle *xce)
     port_info->port = -1;
     port_info->bound = false;
 
-    down(&ports->sem);
+    local_irq_save(flags);
     XEN_LIST_INSERT_HEAD(&ports->list, port_info, list);
-    up(&ports->sem);
+    local_irq_restore(flags);
 
     return port_info;
 }
 
 static void port_dealloc(struct port_info *port_info)
 {
+    unsigned long flags;
+
     if ( port_info->bound )
         unbind_evtchn(port_info->port);
 
+    local_irq_save(flags);
     XEN_LIST_REMOVE(port_info, list);
+    local_irq_restore(flags);
+
     free(port_info);
 }
 
@@ -135,7 +139,6 @@ int osdep_evtchn_open(xenevtchn_handle *xce, unsigned int flags)
 
     file->dev = ports;
     XEN_LIST_INIT(&ports->list);
-    init_SEMAPHORE(&ports->sem, 1);
     xce->fd = fd;
     printf("evtchn_open() -> %d\n", fd);
 
@@ -183,16 +186,11 @@ static void evtchn_handler(evtchn_port_t port, struct pt_regs *regs, void *data)
     ports = file->dev;
     mask_evtchn(port);
 
-    down(&ports->sem);
     XEN_LIST_FOREACH(port_info, &ports->list, list)
     {
         if ( port_info->port == port )
-        {
-            up(&ports->sem);
             goto found;
-        }
     }
-    up(&ports->sem);
 
     printk("Unknown port %d for handle %d\n", port, xce->fd);
     return;
@@ -203,16 +201,6 @@ static void evtchn_handler(evtchn_port_t port, struct pt_regs *regs, void *data)
     wake_up(&event_queue);
 }
 
-static void port_remove(xenevtchn_handle *xce, struct port_info *port_info)
-{
-    struct file *file = get_file_from_fd(xce->fd);
-    struct ports *ports = file->dev;
-
-    down(&ports->sem);
-    port_dealloc(port_info);
-    up(&ports->sem);
-}
-
 xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle *xce,
                                                       uint32_t domid)
 {
@@ -230,7 +218,7 @@ xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle *xce,
 
     if ( ret < 0 )
     {
-        port_remove(xce, port_info);
+        port_dealloc(port_info);
         errno = -ret;
         return -1;
     }
@@ -261,7 +249,7 @@ xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle *xce,
 
     if ( ret < 0 )
     {
-        port_remove(xce, port_info);
+        port_dealloc(port_info);
         errno = -ret;
         return -1;
     }
@@ -279,18 +267,19 @@ int xenevtchn_unbind(xenevtchn_handle *xce, evtchn_port_t port)
     struct file *file = get_file_from_fd(fd);
     struct port_info *port_info;
     struct ports *ports = file->dev;
+    unsigned long flags;
 
-    down(&ports->sem);
+    local_irq_save(flags);
     XEN_LIST_FOREACH(port_info, &ports->list, list)
     {
         if ( port_info->port == port )
         {
             port_dealloc(port_info);
-            up(&ports->sem);
+            local_irq_restore(flags);
             return 0;
         }
     }
-    up(&ports->sem);
+    local_irq_restore(flags);
 
     printf("Warning: couldn't find port %"PRId32" for xc handle %x\n",
            port, fd);
@@ -315,7 +304,7 @@ xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,
 
     if ( port < 0 )
     {
-        port_remove(xce, port_info);
+        port_dealloc(port_info);
         errno = -port;
         return -1;
     }
@@ -335,8 +324,6 @@ xenevtchn_port_or_error_t xenevtchn_pending(xenevtchn_handle *xce)
     unsigned long flags;
     evtchn_port_t ret = -1;
 
-    down(&ports->sem);
-
     local_irq_save(flags);
 
     file->read = false;
@@ -360,8 +347,6 @@ xenevtchn_port_or_error_t xenevtchn_pending(xenevtchn_handle *xce)
 
     local_irq_restore(flags);
 
-    up(&ports->sem);
-
     return ret;
 }
 
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 08:31:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 08:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651505.1017172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCbhM-0004jf-MH; Mon, 11 Dec 2023 08:31:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651505.1017172; Mon, 11 Dec 2023 08: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 1rCbhM-0004jY-It; Mon, 11 Dec 2023 08:31:32 +0000
Received: by outflank-mailman (input) for mailman id 651505;
 Mon, 11 Dec 2023 08:31:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KCUY=HW=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rCbhL-0004jS-NJ
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 08:31:31 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20613.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ab6eef28-97ff-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 09:31:28 +0100 (CET)
Received: from SA9PR13CA0037.namprd13.prod.outlook.com (2603:10b6:806:22::12)
 by SN7PR12MB6885.namprd12.prod.outlook.com (2603:10b6:806:263::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec
 2023 08:31:21 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:806:22:cafe::da) by SA9PR13CA0037.outlook.office365.com
 (2603:10b6:806:22::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.23 via Frontend
 Transport; Mon, 11 Dec 2023 08:31:21 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF000015CC.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Mon, 11 Dec 2023 08:31: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.34; Mon, 11 Dec
 2023 02:31:20 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 11 Dec
 2023 02:31:20 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 11 Dec 2023 02:31:19 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab6eef28-97ff-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dwPjYw0VcT500mvqG53xfcszdHW79Hjm72mm/4BUkZ5ZfhkUUfmDOeE/28BJMGoXPfa5OOFx9o4cbqIv5wuWu7eP+rtpGP1GNDvNcnOX0eWQHS8sZhyPmeFwzckgBVCeVSbuLLbVOf2RwghkUKhYkQxlwyV5mRZREctKduxbvTwW6GbFFX8QXNaLq9gumjmVOxQzSumAkAkJoC9rSNA0Tro9DG+YEz2T+w+DGgRwQdSKoANStPGsSFJO6ZRPiXNQ/s/iZyd+SpjVMzxDjLgUq0KBXHtOy6eFqxri9DwUkPh/uIHZcftsuABrXzsvpvQ7MEBLv0gyoY0tkNOE70G7Uw==
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=Nc4atuQRDf18BRl0hsptpo1e0vwUx9fKw/Ehn4nEZxA=;
 b=DnoeVmhWdSpeakhGpGs2KRkZtXozAA4z+X/yMuroJO6tqPRSitFV/8f3+qFIINku7wo480wYf1O0Lq15rnziw5qAuzAKNYIBQSx+OcFNu/j9ybTrHbq5I6gBEtmcck9um2d8Egfj+Y1dWuBdX3L6eedEesfNuXgDYSzpfSkjF8pBNnZFclZo3ZyWu7IrJC3LnSTIg8JBj8XVgII4R2pOJ0FJX3AdV7Xf5Aih53XBDfdZdY6YACWtd7RnAlv4gvzo7f18E0KPMyLmGBG4Z/k7DWy8sXJLEP5E7oq2ymOKlKgz8s6Tw9RKcMerhqS9mVWCiPJJQZ88gZYDSt2Vun5KpQ==
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=Nc4atuQRDf18BRl0hsptpo1e0vwUx9fKw/Ehn4nEZxA=;
 b=GwnqHDOb0MnG26Q6Ny77df0W6m5EoggbrFPjzNQlGz99oAmxwCav2k6URgIyWiqTztWuiCrTJsfp1Cw7R4HJiRbdOkvaxLhhSChhZn0cMQtbWB7ILeQIq8rs3I6M71rdy80lw4aD+5FsOBAOXDDpgM6jgHdszH50Fia8qjf34hs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <236a2cc6-53ae-4f4b-b1e8-cb270ee37f9f@amd.com>
Date: Mon, 11 Dec 2023 09:31:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 04/11] xen/arm: introduce allocate_domheap_memory and
 guest_physmap_memory
To: Julien Grall <julien@xen.org>, Penny Zheng <Penny.Zheng@arm.com>,
	<xen-devel@lists.xenproject.org>
CC: <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-5-Penny.Zheng@arm.com>
 <992ba724-8dfa-4285-8e92-16dfb870e4ed@amd.com>
 <b9892005-ab12-454a-9788-02571e868e67@xen.org>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <b9892005-ab12-454a-9788-02571e868e67@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CC:EE_|SN7PR12MB6885:EE_
X-MS-Office365-Filtering-Correlation-Id: c42082f1-d471-42ed-5a91-08dbfa238dbc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	nFddnNOiiGGtA/U7wF2CXq06p+6XAlSL6qtxm1HFqUyTqxNYYgsL0mstknh6/+EbLJb6r/stntlSMDIaJ8A+syhqc8SyCafjzM0LU4X9DmhtHd5tKVEQkdpn0eobQUvhXCefA+H1Ci8N7jazL5gzlFi4muCCPUAiNnjQAa+VoeTpYmMAz6aJobhjFC8Zi6ZVVsbm5K9pXegYq4W53k0TRGZCMrNN38EBG8m3m2FkOuXMQSNmViAgKDieWJBJxRX0K4sCAHWHBqSVyUeqIw0BqEefBOaPHROsRs34RMY+HOhvMbLsLwvLKZoy1e+AmrRvkJgLnFZdHanh9Js0jiz1ydDg1Hliim80M8fkay5Gn6UiTrBt0ardnLmkuhBa6WqQ1N8wXmTDR+E2KsZicGkUs1C9x50EeQoG/u+gY3iuC/34skWYUbNgbkqbKBMq42BhGv3BT+8hTchgJoL2FoynTHIBAkNJmuVHl8LE0dsgziRo8g4S9IiSfDOZKUj3EPqN9/ZFsxB5BbaIMYIAdAgdB1SwRCzgEyK30clMbDmVwFFqcCE7l5G9t6nIkLD5EzqaIjql+Yss7+1zgXUKOt9/pS8BtSQecqZ5qH7Bh023MU0lBhku2VDsg9ayZk0M0gqis5y32f/xUpyH54iX1wTOvTr0Q1COdZlXVE+TJO8jP3il/5ltu5GKbCTHofD6mah76pCkFDfqUlX2f5p+ZQpw//7k6G70802eSXVRykZ6MEtZgRfqxeWHDhLJ0f9jPuSVBt9gNRbcqQVoRvKx2Nh6i4awGitMUEw6pQ9TEU9nHik=
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:(13230031)(4636009)(396003)(346002)(376002)(39860400002)(136003)(230922051799003)(451199024)(1800799012)(186009)(82310400011)(64100799003)(46966006)(40470700004)(36840700001)(83380400001)(2906002)(81166007)(478600001)(356005)(41300700001)(31686004)(82740400003)(70586007)(54906003)(70206006)(426003)(40480700001)(16576012)(110136005)(316002)(86362001)(31696002)(4326008)(8936002)(8676002)(53546011)(40460700003)(44832011)(36756003)(47076005)(5660300002)(36860700001)(26005)(336012)(2616005)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 08:31:21.1162
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c42082f1-d471-42ed-5a91-08dbfa238dbc
X-MS-Exchange-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:
	SA2PEPF000015CC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6885

Hi Julien,

On 08/12/2023 16:09, Julien Grall wrote:
> 
> 
> Hi,
> 
> On 07/12/2023 09:38, Michal Orzel wrote:
>> Hi Penny,
>>
>> On 06/12/2023 10:06, Penny Zheng wrote:
>>>
>>>
>>> We split the code of allocate_bank_memory into two parts,
>>> allocate_domheap_memory and guest_physmap_memory.
>>>
>>> One is about allocating guest RAM from heap, which could be re-used later for
>>> allocating static shared memory from heap when host address is not provided.
>>> The other is building up guest P2M mapping.
>>>
>>> We also define a set of MACRO helpers to access common fields in data
>>> structure of "meminfo" type, e.g. "struct meminfo" is one of them, and
>>> later new "struct shm_meminfo" is also one of them.
>>> This kind of structures must have the following characteristics:
>>> - an array of "struct membank"
>>> - a member called "nr_banks" indicating current array size
>>> - a field indicating the maximum array size
>>> When introducing a new data structure, according callbacks with function type
>>> "retrieve_fn" shall be defined for using MACRO helpers.
>>> This commit defines callback "retrieve_meminfo" for data structure
>>> "struct meminfo".
>> This patch introduces quite a bit of complexity with all these helpers, so adding a rationale is crucial.
>> AFAIU, all of this is because we don't want to reuse struct meminfo where NR_MEM_BANKS is defined as 256,
>> which is a lot more than we need for shmem. Am I right?
> 
> +1.
> 
>>
>> I would like others to share the opinion here as well.
> 
> If possible, I'd like to reduce the footprint of the shared memory. But
> this should be balanced with the complexity of the code.
> 
> Briefly looking at the patch series, we have two structures:
> 
> struct meminfo {
>      unsigned int nr_banks;
>      struct membank bank[NR_MEM_BANKS];
> };
> 
> struct shm_meminfo {
>      unsigned int nr_banks;
>      struct membank bank[NR_SHM_BANKS];
>      paddr_t tot_size;
> };
> 
> IIUC, the logic is mostly to be able to know the maximum size of the
> array and also the number of slots already used.
> 
> So we could have the following common structure:
> 
> struct membanks {
>     unsigned int nr_banks;
>     unsigned int max_banks;
>     struct membank *banks;
> }
> 
> Then the definition for the two other structures could be:
> 
> struct meminfo {
>      struct membank holders[NR_MEM_BANKS];
> 
>      struct membanks banks;
> }
> 
> struct shm_meminfo {
>      struct membank holders[NR_SHM_BANKS];
> 
>      struct membanks banks;
> 
>      paddr_t tot_size;
> }
> 
> And then 'banks.banks' would point to the 'holders'. And 'max_banks'
> would be set to the maximum.
> 
> There might be other way to make the structure more nicer. Like (untested):
> 
> struct membanks {
>      unsigned int nr_banks;
>      unsigned int max_banks;
>      struct membank[];
> }
> 
> struct meminfo {
>      struct membanks common;
>      // We should ensure there are no padding
>      struct membank[NR_MEM_BANKS];
> }
> 
> We would then pass &meminfo.common to allocate_domainheap_memory().
> 
> With that there should be no need for extra helpers.
> 
> What do you think?
I would go for flexible array member solution which looks much nicer and as far as I can tell
would solve the issue with extra helpers.

The only problem is that there are quite a lot of places where we reference nr_banks of meminfo e.g. mem.nr_banks
which we would need to modify to mem.common.nr_banks. Maybe we could have *nr_banks in membanks that would point
to nr_banks in meminfo/shm_meminfo? At some point we still need to set common.max_banks to e.g. NR_MEM_BANKS.

~Michal


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 08:55:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 08:55:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651512.1017181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCc4a-0008BU-G8; Mon, 11 Dec 2023 08:55:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651512.1017181; Mon, 11 Dec 2023 08:55: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 1rCc4a-0008BN-DU; Mon, 11 Dec 2023 08:55:32 +0000
Received: by outflank-mailman (input) for mailman id 651512;
 Mon, 11 Dec 2023 08:55: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCc4Y-0008BA-PT
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 08:55:30 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 083c4611-9803-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 09:55:28 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id E3BEF4EE073E;
 Mon, 11 Dec 2023 09:55:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 083c4611-9803-11ee-98e8-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [XEN PATCH v2] automation/eclair_analysis: file exclusion automation
Date: Mon, 11 Dec 2023 09:55:16 +0100
Message-Id: <31a802364de17dd457f3ec265302ea27e90ed518.1702284801.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The file exclude-list.json contains files that are classified as
adopted code for MISRA compliance. Therefore, this file is used to
automatically generate a suitable .ecl configuration for ECLAIR.

As such, many entries in out_of_scope.ecl can be removed, as they
would be duplicates.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- move include/xen/libfdt/* to exclude-list.json
---
 automation/eclair_analysis/ECLAIR/adopted.sh  | 30 +++++++++
 .../eclair_analysis/ECLAIR/analysis.ecl       |  3 +
 automation/eclair_analysis/ECLAIR/analyze.sh  |  3 +
 .../eclair_analysis/ECLAIR/generate_ecl.sh    | 15 +++++
 .../eclair_analysis/ECLAIR/out_of_scope.ecl   | 64 -------------------
 .../ECLAIR/print_analyzed_files.sh            |  4 +-
 docs/misra/exclude-list.json                  |  4 ++
 7 files changed, 58 insertions(+), 65 deletions(-)
 create mode 100755 automation/eclair_analysis/ECLAIR/adopted.sh
 create mode 100755 automation/eclair_analysis/ECLAIR/generate_ecl.sh

diff --git a/automation/eclair_analysis/ECLAIR/adopted.sh b/automation/eclair_analysis/ECLAIR/adopted.sh
new file mode 100755
index 000000000000..9adbc4e58218
--- /dev/null
+++ b/automation/eclair_analysis/ECLAIR/adopted.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# Generates the adopted.ecl file
+
+set -eu
+
+script_name="$(basename "$0")"
+script_dir="$(
+  cd "$(dirname "$0")"
+  echo "${PWD}"
+)"
+
+fatal() {
+  echo "${script_name}: $*" >&2
+  exit 1
+}
+
+usage() {
+  fatal "Usage: ${script_name}"
+}
+
+exclude_list=$1
+outfile=${script_dir}/adopted.ecl
+
+(
+  echo "-doc_begin=\"Adopted files.\"" >"${outfile}"
+  sed -n -E -e 's|^\s+"rel_path":\s+"([^"]*).*$|-file_tag+={adopted,"^xen/\1$"}|p' "${exclude_list}" |
+    sed -E -e 's|\.([ch])|\\\\.\1|g' -e 's|\*|.*|g' >>"${outfile}"
+  printf "%s\n" "-doc_end" >>"${outfile}"
+)
diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl b/automation/eclair_analysis/ECLAIR/analysis.ecl
index f8d4cc8c9990..a604582da335 100644
--- a/automation/eclair_analysis/ECLAIR/analysis.ecl
+++ b/automation/eclair_analysis/ECLAIR/analysis.ecl
@@ -21,6 +21,9 @@ map_strings("scheduled-analysis",analysis_kind)
 
 -eval_file=toolchain.ecl
 -eval_file=public_APIs.ecl
+if(not(scheduled_analysis),
+    eval_file("adopted.ecl")
+)
 if(not(scheduled_analysis),
     eval_file("out_of_scope.ecl")
 )
diff --git a/automation/eclair_analysis/ECLAIR/analyze.sh b/automation/eclair_analysis/ECLAIR/analyze.sh
index 47cdbb03cee7..a127e7aaed2d 100755
--- a/automation/eclair_analysis/ECLAIR/analyze.sh
+++ b/automation/eclair_analysis/ECLAIR/analyze.sh
@@ -82,6 +82,9 @@ export ECLAIR_PROJECT_ROOT="${PWD}"
 rm -rf "${ECLAIR_OUTPUT_DIR:?}/*"
 mkdir -p "${ECLAIR_DATA_DIR}"
 
+# Generate additional configuration files 
+"${SCRIPT_DIR}/generate_ecl.sh"
+
 # Perform the build (from scratch) in an ECLAIR environment.
 "${ECLAIR_BIN_DIR}eclair_env" \
     "-config_file='${SCRIPT_DIR}/analysis.ecl'" \
diff --git a/automation/eclair_analysis/ECLAIR/generate_ecl.sh b/automation/eclair_analysis/ECLAIR/generate_ecl.sh
new file mode 100755
index 000000000000..de20728eb1f9
--- /dev/null
+++ b/automation/eclair_analysis/ECLAIR/generate_ecl.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Generates the .ecl files
+
+set -eu
+
+script_dir="$(
+  cd "$(dirname "$0")"
+  echo "${PWD}"
+)"
+
+exclude_list="${ECLAIR_PROJECT_ROOT}/docs/misra/exclude-list.json"
+
+# Generate the exclude list file
+"${script_dir}/adopted.sh" "${exclude_list}"
diff --git a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
index e1ec4a607c63..fd870716cf8d 100644
--- a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
+++ b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
@@ -1,55 +1,3 @@
--doc_begin="Imported from Linux: ignore for now."
--file_tag+={adopted,"^xen/common/libfdt/.*$"}
--file_tag+={adopted,"^xen/include/xen/libfdt/.*$"}
--file_tag+={adopted,"^xen/common/xz/.*$"}
--file_tag+={adopted,"^xen/common/zstd/.*$"}
--file_tag+={adopted,"^xen/drivers/acpi/apei/.*$"}
--file_tag+={adopted,"^xen/drivers/acpi/tables/.*$"}
--file_tag+={adopted,"^xen/drivers/acpi/utilities/.*$"}
--file_tag+={adopted,"^xen/drivers/video/font_.*$"}
--file_tag+={adopted,"^xen/arch/arm/arm64/cpufeature\\.c$"}
--file_tag+={adopted,"^xen/arch/arm/arm64/insn\\.c$"}
--file_tag+={adopted,"^xen/arch/arm/arm64/lib/find_next_bit\\.c$"}
--file_tag+={adopted,"^xen/common/bitmap\\.c$"}
--file_tag+={adopted,"^xen/common/bunzip2\\.c$"}
--file_tag+={adopted,"^xen/common/earlycpio\\.c$"}
--file_tag+={adopted,"^xen/common/inflate\\.c$"}
--file_tag+={adopted,"^xen/common/lzo\\.c$"}
--file_tag+={adopted,"^xen/common/lz4/decompress\\.c$"}
--file_tag+={adopted,"^xen/common/radix-tree\\.c$"}
--file_tag+={adopted,"^xen/common/ubsan/ubsan\\.c$"}
--file_tag+={adopted,"^xen/drivers/acpi/hwregs\\.c$"}
--file_tag+={adopted,"^xen/drivers/acpi/numa\\.c$"}
--file_tag+={adopted,"^xen/drivers/acpi/osl\\.c$"}
--file_tag+={adopted,"^xen/drivers/acpi/tables\\.c$"}
--file_tag+={adopted,"^xen/include/xen/acpi\\.h$"}
--file_tag+={adopted,"^xen/include/acpi/acpiosxf\\.h$"}
--file_tag+={adopted,"^xen/include/acpi/acpixf\\.h$"}
--file_tag+={adopted,"^xen/lib/list-sort\\.c$"}
--file_tag+={adopted,"^xen/lib/rbtree\\.c$"}
--file_tag+={adopted,"^xen/lib/xxhash.*\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/boot\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/cpu_idle\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/cpufreq/cpufreq\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/cpuidle_menu\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/acpi/lib\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/amd\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/centaur\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/common\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/hygon\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/intel\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/intel_cacheinfo\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/mcheck/non-fatal\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/mtrr/.*$"}
--file_tag+={adopted,"^xen/arch/x86/cpu/mwait-idle\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/delay\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/dmi_scan\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/mpparse\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/srat\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/time\\.c$"}
--file_tag+={adopted,"^xen/arch/x86/x86_64/mmconf-fam10h\\.c$"}
--doc_end
-
 -doc_begin="Intel specific source files are out of scope."
 -file_tag+={out_of_scope,"^xen/arch/x86/cpu/intel\\.c$"}
 -file_tag+={out_of_scope,"^xen/arch/x86/cpu/intel_cacheinfo\\.c$"}
@@ -69,18 +17,6 @@
 -file_tag+={out_of_scope,"^xen/arch/x86/include/asm/intel-family\\.h$"}
 -doc_end
 
--doc_begin="Not in scope initially as it generates many violations and it is not enabled in safety configurations."
--file_tag+={adopted,"^xen/xsm/flask/.*$"}
--doc_end
-
--doc_begin="unlz4.c implementation by Yann Collet, the others un* are from Linux, ignore for now."
--file_tag+={adopted,"^xen/common/un.*\\.c$"}
--doc_end
-
--doc_begin="Origin is external and documented in xen/crypto/README.source ."
--file_tag+={adopted,"^xen/crypto/.*$"}
--doc_end
-
 -doc_begin="Files imported from the gnu-efi package"
 -file_tag+={adopted,"^xen/include/efi/.*$"}
 -file_tag+={adopted,"^xen/arch/x86/include/asm/x86_64/efibind\\.h$"}
diff --git a/automation/eclair_analysis/ECLAIR/print_analyzed_files.sh b/automation/eclair_analysis/ECLAIR/print_analyzed_files.sh
index c19a8ecbd061..7d231271617c 100755
--- a/automation/eclair_analysis/ECLAIR/print_analyzed_files.sh
+++ b/automation/eclair_analysis/ECLAIR/print_analyzed_files.sh
@@ -46,7 +46,9 @@ fi
 "${ECLAIR_BIN_DIR}eclair_report" -db="${DB}" -files_txt="${files_txt}"
 
 {
-  # Extracting out of scope code
+  # Extracting out of scope and adopted code
+  adopted_ecl="${script_dir}/adopted.ecl"
+  extrapolate_regex adopted,             "${adopted_ecl}"
   out_of_scope_ecl="${script_dir}/out_of_scope.ecl"
   extrapolate_regex adopted,             "${out_of_scope_ecl}"
   extrapolate_regex out_of_scope_tools,  "${out_of_scope_ecl}"
diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
index 24e4de3ca524..48f671c548b6 100644
--- a/docs/misra/exclude-list.json
+++ b/docs/misra/exclude-list.json
@@ -117,6 +117,10 @@
             "rel_path": "common/libfdt/*",
             "comment": "External library"
         },
+        {
+          "rel_path": "include/xen/libfdt/*",
+          "comment": "External library"
+        },
         {
             "rel_path": "common/livepatch_elf.c",
             "comment": "Not in scope initially as it generates many violations and it is not enabled in safety configurations"
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:14:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:14:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651526.1017195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcN4-0001fz-0v; Mon, 11 Dec 2023 09:14:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651526.1017195; Mon, 11 Dec 2023 09:14:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcN3-0001eB-Ta; Mon, 11 Dec 2023 09:14:37 +0000
Received: by outflank-mailman (input) for mailman id 651526;
 Mon, 11 Dec 2023 09:14: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCcN2-0001ce-It
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 09:14:36 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b39f2a11-9805-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 10:14:35 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 5143E4EE0741;
 Mon, 11 Dec 2023 10:14:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b39f2a11-9805-11ee-98e8-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH v3 1/3] xen/x86: add missing instances of asmlinkage attributes
Date: Mon, 11 Dec 2023 10:14:27 +0100
Message-Id: <2282f4b7ff0143f513f9677e0cca2d68c0f2a08c.1702285639.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702285639.git.nicola.vetrini@bugseng.com>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/efi/efi-boot.h | 5 +++--
 xen/arch/x86/smpboot.c      | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 86467da301e5..8ea64e31cdc2 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -808,8 +808,9 @@ static const char *__init get_option(const char *cmd, const char *opt)
     return o;
 }
 
-void __init efi_multiboot2(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable,
-                           const char *cmdline)
+void asmlinkage __init efi_multiboot2(EFI_HANDLE ImageHandle,
+                                      EFI_SYSTEM_TABLE *SystemTable,
+                                      const char *cmdline)
 {
     EFI_GRAPHICS_OUTPUT_PROTOCOL *gop;
     EFI_HANDLE gop_handle;
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 4c54ecbc91d7..8aa621533f3d 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -310,7 +310,7 @@ static void set_cpu_sibling_map(unsigned int cpu)
     }
 }
 
-void start_secondary(void *unused)
+void asmlinkage start_secondary(void *unused)
 {
     struct cpu_info *info = get_cpu_info();
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:14:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:14:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651525.1017192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcN3-0001cy-Qs; Mon, 11 Dec 2023 09:14:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651525.1017192; Mon, 11 Dec 2023 09:14:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcN3-0001cp-LT; Mon, 11 Dec 2023 09:14:37 +0000
Received: by outflank-mailman (input) for mailman id 651525;
 Mon, 11 Dec 2023 09:14: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCcN2-0001ce-Bm
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 09:14:36 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b321d339-9805-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 10:14:34 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 2A01C4EE073E;
 Mon, 11 Dec 2023 10:14:32 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b321d339-9805-11ee-98e8-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [XEN PATCH v3 0/3] address some violations of MISRA C Rule 8.4
Date: Mon, 11 Dec 2023 10:14:26 +0100
Message-Id: <cover.1702285639.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C:2012 Rule 8.4 states:
"A compatible declaration shall be visible when an object or function with
external linkage is defined".

Changes from v1:
- Patch 1/7 has been committed;
- Patch 2/7 has been dropped, as the fix is already part of [1];
- Patch 3/7 drops the addition of asmlinkage on variables. Discussion on how to
  handle the existing uses can be part of a separate patch;
- Patch 4/7 is unchanged;
- Patch 5/7 has been committed;
- Patch 6/7 has been dropped
- Patch 7/7 has been revised to have a declaration for first_valid_mfn, rather
  than a deviation for the absence of a declaration
Changes from v2:
- Patch 3/3: remove redundant declarations

[1] https://lore.kernel.org/xen-devel/27dd8f40-1ea6-1e7e-49c2-31936a17e9d7@suse.com/


Nicola Vetrini (3):
  xen/x86: add missing instances of asmlinkage attributes
  x86/viridian: make build_assertions static
  xen/mm: add declaration for first_valid_mfn

 xen/arch/arm/include/asm/numa.h   | 8 ++++----
 xen/arch/ppc/include/asm/numa.h   | 7 +++----
 xen/arch/x86/efi/efi-boot.h       | 5 +++--
 xen/arch/x86/hvm/viridian/synic.c | 2 +-
 xen/arch/x86/smpboot.c            | 2 +-
 xen/include/xen/mm.h              | 2 ++
 6 files changed, 14 insertions(+), 12 deletions(-)

-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:14:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:14:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651528.1017218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcN6-00029r-Im; Mon, 11 Dec 2023 09:14:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651528.1017218; Mon, 11 Dec 2023 09:14:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcN6-00029j-Dq; Mon, 11 Dec 2023 09:14:40 +0000
Received: by outflank-mailman (input) for mailman id 651528;
 Mon, 11 Dec 2023 09:14:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCcN5-0001w8-Eg
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 09:14:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4793a83-9805-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 10:14:36 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 3150F4EE0742;
 Mon, 11 Dec 2023 10:14:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4793a83-9805-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Paul Durrant <paul@xen.org>,
	Wei Liu <wl@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>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v3 2/3] x86/viridian: make build_assertions static
Date: Mon, 11 Dec 2023 10:14:28 +0100
Message-Id: <2bc69a77a0fae290902019822230dd863b1041b5.1702285639.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702285639.git.nicola.vetrini@bugseng.com>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This is consistent with other instances of the same function
and also resolves a violation of MISRA C:2012 Rule 8.4.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/arch/x86/hvm/viridian/synic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/viridian/synic.c b/xen/arch/x86/hvm/viridian/synic.c
index 8cf600cec68f..3375e55e95ca 100644
--- a/xen/arch/x86/hvm/viridian/synic.c
+++ b/xen/arch/x86/hvm/viridian/synic.c
@@ -18,7 +18,7 @@
 #include "private.h"
 
 
-void __init __maybe_unused build_assertions(void)
+static void __init __maybe_unused build_assertions(void)
 {
     BUILD_BUG_ON(sizeof(struct hv_message) != HV_MESSAGE_SIZE);
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:14:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:14:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651527.1017211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcN6-00026R-7j; Mon, 11 Dec 2023 09:14:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651527.1017211; Mon, 11 Dec 2023 09:14:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcN6-00026K-5G; Mon, 11 Dec 2023 09:14:40 +0000
Received: by outflank-mailman (input) for mailman id 651527;
 Mon, 11 Dec 2023 09:14: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCcN4-0001ce-UI
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 09:14:38 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5729684-9805-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 10:14:38 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 88D164EE0741;
 Mon, 11 Dec 2023 10:14:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5729684-9805-11ee-98e8-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
Date: Mon, 11 Dec 2023 10:14:29 +0100
Message-Id: <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702285639.git.nicola.vetrini@bugseng.com>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Such declaration is needed because a compatible declaration
is not visible in xen/common/page_alloc.c, where the variable
is defined. That variable can't yet be static because of the lack of
support from ARM and PPC for NUMA.

On the occasion, use drop a use of u8.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Having this declaration essentially sidesteps the current impossibility
of having a static variable, as described in the comments in
ARM and PCC's asm/numa.h.

Changes in v3:
- Drop redundant declarations of first_valid_mfn in asm/numa.h for Arm and PPC.
---
 xen/arch/arm/include/asm/numa.h | 8 ++++----
 xen/arch/ppc/include/asm/numa.h | 7 +++----
 xen/include/xen/mm.h            | 2 ++
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/numa.h
index e2bee2bd8223..44b689f67db8 100644
--- a/xen/arch/arm/include/asm/numa.h
+++ b/xen/arch/arm/include/asm/numa.h
@@ -2,8 +2,9 @@
 #define __ARCH_ARM_NUMA_H
 
 #include <xen/mm.h>
+#include <xen/types.h>
 
-typedef u8 nodeid_t;
+typedef uint8_t nodeid_t;
 
 #ifndef CONFIG_NUMA
 
@@ -12,10 +13,9 @@ typedef u8 nodeid_t;
 #define node_to_cpumask(node)   (cpu_online_map)
 
 /*
- * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
- * is required because the dummy helpers are using it.
+ * TODO: define here first_valid_mfn as static when NUMA is supported on Arm,
+ * this is required because the dummy helpers are using it.
  */
-extern mfn_t first_valid_mfn;
 
 /* XXX: implement NUMA support */
 #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
diff --git a/xen/arch/ppc/include/asm/numa.h b/xen/arch/ppc/include/asm/numa.h
index 7fdf66c3da74..152305ebe446 100644
--- a/xen/arch/ppc/include/asm/numa.h
+++ b/xen/arch/ppc/include/asm/numa.h
@@ -1,8 +1,8 @@
 #ifndef __ASM_PPC_NUMA_H__
 #define __ASM_PPC_NUMA_H__
 
-#include <xen/types.h>
 #include <xen/mm.h>
+#include <xen/types.h>
 
 typedef uint8_t nodeid_t;
 
@@ -11,10 +11,9 @@ typedef uint8_t nodeid_t;
 #define node_to_cpumask(node)   (cpu_online_map)
 
 /*
- * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
- * is required because the dummy helpers are using it.
+ * TODO: define here first_valid_mfn as static when NUMA is supported on PPC,
+ * this is required because the dummy helpers are using it.
  */
-extern mfn_t first_valid_mfn;
 
 /* XXX: implement NUMA support */
 #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index 3d9b2d05a5c8..a13a9a46ced7 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -118,6 +118,8 @@ int destroy_xen_mappings(unsigned long s, unsigned long e);
 /* Retrieve the MFN mapped by VA in Xen virtual address space. */
 mfn_t xen_map_to_mfn(unsigned long va);
 
+extern mfn_t first_valid_mfn;
+
 /*
  * Create only non-leaf page table entries for the
  * page range in Xen virtual address space.
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:16:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:16:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651537.1017232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcOO-0003hL-TX; Mon, 11 Dec 2023 09:16:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651537.1017232; Mon, 11 Dec 2023 09: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 1rCcOO-0003hE-Q6; Mon, 11 Dec 2023 09:16:00 +0000
Received: by outflank-mailman (input) for mailman id 651537;
 Mon, 11 Dec 2023 09:15: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=DOfJ=HW=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rCcOM-0003gv-Q0
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 09:15:58 +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 e50663a5-9805-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 10:15:58 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-50bfd7be487so4720468e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 01:15:58 -0800 (PST)
Received: from [192.168.15.251] (54-240-197-236.amazon.com. [54.240.197.236])
 by smtp.gmail.com with ESMTPSA id
 k3-20020adfe8c3000000b003334460e256sm8066228wrn.92.2023.12.11.01.15.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 01:15:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e50663a5-9805-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702286157; x=1702890957; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:reply-to:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ucSgeYlaSTptwTOrfqO4eZBdPvsqYJnEMgFfVhJwg+0=;
        b=kEbIsESom9uq9uaCbMfw+tmgsM8CArDAvmeUgdjeKtwGi/IpZF2sw1FptKecipI2bC
         dKt/zQa127Snl4S8GHDTbJoyeSxSeUBjySa7zXSs0WRfsR5zMyK2tDP/KF5w6V4Ldx6X
         zkVRhOdYUeXOaOck0IEZsw72eVMW+OhGj61c+L2CK92VzUNzSWD1Ecs05s4mo+EWd1eb
         G+3Lp7/aSa1/jdwm0IL82GUXhwaSi9Z2xE0+NH3hX9VcWnVmvw7KKUcH4jSq2pUHmAB+
         0Sx+lPooaJDTMnxZSrRpmzIolH4i90W2+s1Dz03Jbn5z+zGJzIsUfqJFLGB3j36STEEf
         rGeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702286157; x=1702890957;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:reply-to:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ucSgeYlaSTptwTOrfqO4eZBdPvsqYJnEMgFfVhJwg+0=;
        b=L2JKV0udex5nklhKgLtt+29r/dehOoSaT+9iMrlbFJNZfBEfKH78P/hXxfaPbSbkbz
         a9lli6/wkSn9ow5UoUBvxGJeWxUe3rc80V8f5FTlTwRZpHtATtQaN8NxhDpTxqa4cnws
         TXQMGEYRioWKLL0txmjBWL32faufKzS/OApTZkws6KF7Wstg3Sk1Gp6NM7Ns33hn4BhH
         LTkQcvw10pXHfn06dXIP0BMn2pmP2Csx4jXYTQI+K9pPRFjzCO0/oNhNZJ093BedLOm7
         3HgEUgh9V9S8/9EMVOv4DrJ6M1eHRi5Z81ckyApzPjroM39MOSKediNNRTYfe6NWDCJh
         Yufg==
X-Gm-Message-State: AOJu0YyL40fwiJ2dx+IGdO8D1KwjUxzkNzgXxkWRbaNJEklYMLVGE3v8
	NW6SXxGatJCkbLqkbOfbmco=
X-Google-Smtp-Source: AGHT+IEVw3YNQrNEvYjlg8HXVQyO0FShPYGmP5m+MjLX8fscBtoeOEqFwREP/JNm/An0kjhECAcGuQ==
X-Received: by 2002:ac2:48b9:0:b0:50b:e40b:f8b2 with SMTP id u25-20020ac248b9000000b0050be40bf8b2mr1690917lfg.42.1702286157213;
        Mon, 11 Dec 2023 01:15:57 -0800 (PST)
Message-ID: <c981de39-1105-423a-8782-e17bd35cc2ab@gmail.com>
Date: Mon, 11 Dec 2023 09:15:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [XEN PATCH v3 2/3] x86/viridian: make build_assertions static
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, Paul Durrant <paul@xen.org>, Wei Liu
 <wl@xen.org>, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <2bc69a77a0fae290902019822230dd863b1041b5.1702285639.git.nicola.vetrini@bugseng.com>
Content-Language: en-US
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <2bc69a77a0fae290902019822230dd863b1041b5.1702285639.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/12/2023 09:14, Nicola Vetrini wrote:
> This is consistent with other instances of the same function
> and also resolves a violation of MISRA C:2012 Rule 8.4.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
>   xen/arch/x86/hvm/viridian/synic.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 

Acked-by: Paul Durrant <paul@xen.org>



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:18:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:18:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651545.1017241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcRF-0004SP-Ds; Mon, 11 Dec 2023 09:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651545.1017241; Mon, 11 Dec 2023 09: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 1rCcRF-0004SI-B7; Mon, 11 Dec 2023 09:18:57 +0000
Received: by outflank-mailman (input) for mailman id 651545;
 Mon, 11 Dec 2023 09:18: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=+mB3=HW=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rCcRE-0004SC-I1
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 09:18:56 +0000
Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com
 [2607:f8b0:4864:20::1035])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e4016df-9806-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 10:18:55 +0100 (CET)
Received: by mail-pj1-x1035.google.com with SMTP id
 98e67ed59e1d1-286f8ee27aeso4400963a91.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 01:18:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e4016df-9806-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702286334; x=1702891134; darn=lists.xenproject.org;
        h=content-transfer-encoding:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uSwYBvTkR9kGVJprv+MwYGk8eY5xH5gJ1GcpwOFMMo8=;
        b=ETgcS6RnhsnFWEt3c0GYi+IAmoNSOwrJ0o8FunrIJ8vbuUJnRRrB98nnkbIRiLru40
         tl4Lxy5mlqDwDszMhulmiShjZnguIa0b6lG6rke4f8Vu+QbhZxIRxfOhaOTzgATCSfSE
         vdIWpKvHbgBy8BdsL8+xW5pC70nZ9IQUae86Noyw/g3gAEcVzrxG2EyrUYoFpzJfPdB7
         PLn+w4kZqavmsaQ7kSdX/YszPdmQrDuuySnyQHsGK2BpSiG0dELM95e8bYfuPHQZve18
         vZ6eltdfPWzwamdd7CdqrvUarZvTj717SeM8w4YGqSi9M1z4KIpmBiOUQ74JAvdwGoO4
         PAXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702286334; x=1702891134;
        h=content-transfer-encoding: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=uSwYBvTkR9kGVJprv+MwYGk8eY5xH5gJ1GcpwOFMMo8=;
        b=e2tRb6p7cNpf1JvRFViulC4KrU2ddmzyEx8uqEFlQ4dWJWfsM8FE/Mg24D1nqNd9s6
         MofWP7YLgdtiWLAeAzY2KGM//3RLMZxFcr0UoAcFZ1NjsrihTzpMajhqBqYNeQ0zV8um
         wwr+68+IaZBXtOH1F3zf7qVlJ08224Dx1H+Y10Ot4gfSlYSYGB0SuVD9t8HF5jJI2orv
         zlD+acsS0kdRpwVePkafaiMw9+9CzEvcojDHCQO8cQJYDYtMo9OjZvKA8Wewpu6uuK8R
         UsIqBbdFvlzI5kn4eg/FXPejJ+U2P/rNzCop/KKRU400JLw5SKS9I0IJyaOPSqiX9lTw
         8vBQ==
X-Gm-Message-State: AOJu0YxQ2RdbuloVzoX+7uJB0yIK/DdF3mubIJKiM9wgXL8hiShgnOYg
	zH++a55KkOKwehRPXjPcHy9tgXPY0JXztmlhJRv4POeK4bs=
X-Google-Smtp-Source: AGHT+IHEJlU5O/famTcLcLkZ0PQk7PbPCOMB6SGN7O01WKMS5bk+NCm/89ni0wG2GF6vDF6cbjCqyAADuuMKlsOJI4o=
X-Received: by 2002:a17:90a:5904:b0:286:bd98:398f with SMTP id
 k4-20020a17090a590400b00286bd98398fmr3085732pji.1.1702286333580; Mon, 11 Dec
 2023 01:18:53 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com> <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
In-Reply-To: <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Mon, 11 Dec 2023 10:18:42 +0100
Message-ID: <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
> >> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrup=
t
> >
> > Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
> > ioapic-edge and IRQ9 to ioapic-level ?
> >
> > IR-IO-APIC    7-fasteoi   pinctrl_amd
> > IR-IO-APIC    9-fasteoi   acpi
> >
> > to (xen 4.18.0)
> >
> > xen-pirq     -ioapic-edge  pinctrl_amd
> > xen-pirq     -ioapic-level  acpi
> >
> > ?

On the i2c side I managed to isolate the following error with
xen-4.19-unstable and Linux 6.7.0-rc4 :

i2c_designware AMDI0010:00: i2c_dw_handle_tx_abort: slave address not
acknowledged (7bit mode)

Any ideas  ? What kernel debug messages would be useful next ?

Thanks
S=C3=A9bastien


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:22:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:22:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651550.1017252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcU6-0006X3-Sz; Mon, 11 Dec 2023 09:21:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651550.1017252; Mon, 11 Dec 2023 09: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 1rCcU6-0006Ww-Py; Mon, 11 Dec 2023 09:21:54 +0000
Received: by outflank-mailman (input) for mailman id 651550;
 Mon, 11 Dec 2023 09:21: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 1rCcU6-0006Wm-3t; Mon, 11 Dec 2023 09:21: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 1rCcU6-0000Yy-0a; Mon, 11 Dec 2023 09:21: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 1rCcU5-0000WK-EW; Mon, 11 Dec 2023 09:21:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCcU5-0006iT-Dm; Mon, 11 Dec 2023 09:21: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=mfVLpvVkE0SKucN7nI1kcRnapxpClLLaGC8YowGmEBU=; b=mwJbwhJwuwRdwl5Vhvt6nESVlz
	OSZnQK4f89RTQjKOg612Tx3h01N+HB2N0VIm+jbfUaXGnh6YiRqYZJ7YluvPND7FiYcMzwvH2Y4vc
	6SMvYUsjfos8Sd6KtJJuf1zBlvzMrUkgnqDtQF+PUN5kvJOjqmTdAhJNwbINpAHizRdo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184085-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184085: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-credit2: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-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-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-amd64-i386-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-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=bc4fe94a69d4dab103c37045d97e589ef75f8647
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 09:21:53 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-credit2  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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
 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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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          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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  bc4fe94a69d4dab103c37045d97e589ef75f8647
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    3 days
Testing same since   184036  2023-12-08 10:40:52 Z    2 days    6 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Juergen Gross <jgross@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:34:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:34:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651557.1017262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcfq-0000Dp-U6; Mon, 11 Dec 2023 09:34:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651557.1017262; Mon, 11 Dec 2023 09:34: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 1rCcfq-0000Di-Qi; Mon, 11 Dec 2023 09:34:02 +0000
Received: by outflank-mailman (input) for mailman id 651557;
 Mon, 11 Dec 2023 09:34:01 +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 1rCcfp-0000Dc-9Y
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 09:34:01 +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 1rCcfl-0000mh-Gj; Mon, 11 Dec 2023 09:33:57 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCcfl-000131-9P; Mon, 11 Dec 2023 09:33:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=HQ7msSemChyrIoKJclH+vwHG6LUuD8fEckKYIUxfJiU=; b=l0MuMKX23X439guHBtCDZB0Mui
	PpNculdRbRZgVEMPlN51MNTk6CXpL/mnUXxiutePEQBmAcCxFo4OSI/hCeEjmCLb++rCAXDaIvkH5
	gVvLwOAYiL4utVE9BwZq3lQ+ZbQwZpuwr21FG98Wn15rGaWMvw13nQOKOhreh65fmtAA=;
Message-ID: <797e8621-e12e-4d5e-9c8c-4e3ece08009b@xen.org>
Date: Mon, 11 Dec 2023 09:33:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Ayan Kumar Halder <ayankuma@amd.com>, Michal Orzel
 <michal.orzel@amd.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 stefano.stabellini@amd.com, bertrand.marquis@arm.com,
 Volodymyr_Babchuk@epam.com, xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
 <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
 <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org>
 <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com>
 <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
 <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org>
 <alpine.DEB.2.22.394.2312051503060.110490@ubuntu-linux-20-04-desktop>
 <a4c43652-1fa6-4b42-b751-582cfd6324fe@xen.org>
 <alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 07/12/2023 21:41, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Julien Grall wrote:
>> Hi Stefano,
>>
>> On 05/12/2023 23:21, Stefano Stabellini wrote:
>>> On Tue, 5 Dec 2023, Julien Grall wrote:
>>>> I agree that crashing a guest is bad, but is lying to the domain really
>>>> better? The consequence here is not that bad and hopefully it would be
>>>> fairly
>>>> easy to find. But this is not always the case. So I definitely would place
>>>> a
>>>> half-backed emulation more severe than a guest crash.
>>>
>>>
>>> I see where Julien is coming from, but I would go with option two:
>>> "emulate DCC the same way as KVM". That's because I don't think we can
>>> get away with crashing the guest in all cases. Although the issue came
>>> up with a Linux guest, it could have been triggered by a proprietary
>>> operating system that we cannot change, and I think Xen should support
>>> running unmodified operating systems.
>>>
>>> If we go with a "half-backed emulation" solution, as Julien wrote, then
>>> it is better to be more similar to other hypervisors, that's why I chose
>>> option two instead of option three.
>>>
>>> But at the same time I recognize the validity of Julien's words and it
>>> makes me wonder if we should have a KCONFIG option or command line
>>> option to switch the Xen behavior. We could use it to gate all the
>>> "half-backed emulation" we do for compatibility.  Something like:
>>>
>>> config PARTIAL_EMULATION
>>>       bool "Partial Emulation"
>>>       ---help---
>>>             Enables partial, not spec compliant, emulation of certain
>>> register
>>>       interfaces (e.g DCC UART) for guest compatibility. If you disable
>>>       this option, Xen will crash the guest if the guest tries to access
>>>       interfaces not fully emulated or virtualized.
>>>
>>>       If you enable this option, the guest might misbehave due to non-spec
>>>       compliant emulation done by Xen.
>>
>> As I wrote to Ayan on Matrix today, I am not in favor of the emulation. Yet, I
>> am not going to oppose (as in Nack it) if the other maintainers agree with it.
> 
> Thanks for being flexible
> 
> 
>> The KConfig would be nice, the question is whether we want to (security)
>> support such configuration? E.g. could this potentially introduce a security
>> issue in the guest?
> 
> The important question is whether it could introduce a security issue in
> Xen. If we think it wouldn't increase the attack surface significantly
> then I would security support it otherwise not.

For this specific emulation, it is unlikely. But I can't make a generic 
statement here. So we would need to do a case by case basis.

Furthermore, our security statement is also covering a guest userspace 
attacking a guest OS. We would issue an XSA if this is feasible because 
of an issue in the hypervisor.

With half-backed emulation, it becomes more difficult to know whether we 
are not opening a hole and replacing a guest crashes at boot by 
something worse.

Again unlikely here. But those kind of bugs are no unheard. So this is 
something to take into account when you want to claim security support 
for half-backed emulation.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:43:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:43:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651565.1017271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcoS-0002TU-Sn; Mon, 11 Dec 2023 09:42:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651565.1017271; Mon, 11 Dec 2023 09:42: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 1rCcoS-0002TN-Q7; Mon, 11 Dec 2023 09:42:56 +0000
Received: by outflank-mailman (input) for mailman id 651565;
 Mon, 11 Dec 2023 09:42:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCcoR-0002TH-Ew
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 09:42:55 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a7e86b58-9809-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 10:42:53 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c0fc1cf3dso44930045e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 01:42:53 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 bg38-20020a05600c3ca600b0040b540ff0a5sm12218117wmb.19.2023.12.11.01.42.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 01:42:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7e86b58-9809-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702287773; x=1702892573; 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=d/S/o876/bqSVETyB1aK4fWc+zqMD/lZ8eTzIbNA0Mk=;
        b=IdEtsTeCQ7robJ8pPhZDz6xiJYGh/rMgXhq2e5FyWjGDECCHAnHwJP5zIZa5w5bzuM
         mQFHiykufwR6RcmSaMC/ZylERIGf+mp8ZSPSlMOQM4KbDEzNy5y4x2hUUFoEob7sbE0u
         JNKhsBo8K/q+yIIS4Z7Ka79Dctn/hngumHgNs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702287773; x=1702892573;
        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=d/S/o876/bqSVETyB1aK4fWc+zqMD/lZ8eTzIbNA0Mk=;
        b=V+Sr94GQ+TxrkUfWFQ8ziOzSpPOMTOnIGvCCBDmslyfI5nTmab0QOYWP+7za596bO5
         jh2f9207AFtivwD24QfG6l0jH5hNIYrm8YLZDFKRsmZBV1We/hNUgCS9rbC0CyQtuJ2v
         Wq5WqYCugCunoG0K8YWqfdxcL9bfxIHEsA3rUppGxBCGgNinYHej72MvEkohqgX8CD/T
         IqX+B1w9K6yMG/YHHsLHLAZVgZjQUIm8TJLHI8X4RPLKw4CnPlRdvw4ToG9620sPo9Zc
         LRac7i5IpsbV7UYpEa/RX1WGTnc3y+WQqaq7Flv+6JHsGctHO6gdQbFQQv0gEUXL73Sf
         Ludg==
X-Gm-Message-State: AOJu0Yys24uOznUDAC9PgGBQpv8sB2wFGfviFqu4N4cuAAi1Ov+8znOb
	hKxhd9P5xXhWbkGLX7fWHeE3Aw==
X-Google-Smtp-Source: AGHT+IFewKOSPeZfZJEJO3jU+tzT2H3YOTYooJQtLhjvDFNEUTh1UJMZr14RBvfmg1wEPtjkWCbOfA==
X-Received: by 2002:a05:600c:808:b0:40c:2aeb:c758 with SMTP id k8-20020a05600c080800b0040c2aebc758mr1914572wmp.119.1702287772861;
        Mon, 11 Dec 2023 01:42:52 -0800 (PST)
Date: Mon, 11 Dec 2023 10:42:51 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Message-ID: <ZXbZmwHtZJfSLrC3@macbook>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
 <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop>
 <ZW8EkQLTwEEK6fXC@macbook>
 <16de540b-fd79-4c23-9698-a641da9c9967@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <16de540b-fd79-4c23-9698-a641da9c9967@amd.com>

On Tue, Dec 05, 2023 at 02:01:46PM -0500, Stewart Hildebrand wrote:
> On 12/5/23 06:08, Roger Pau MonnÃ© wrote:
> > On Mon, Dec 04, 2023 at 02:07:51PM -0800, Stefano Stabellini wrote:
> >> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
> >>> On Fri, Dec 01, 2023 at 06:56:32PM -0800, Stefano Stabellini wrote:
> >>>> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> >>>>> On Mon, Nov 13, 2023 at 05:21:13PM -0500, Stewart Hildebrand wrote:
> >>>>>> @@ -1618,6 +1630,14 @@ int iommu_do_pci_domctl(
> >>>>>>          bus = PCI_BUS(machine_sbdf);
> >>>>>>          devfn = PCI_DEVFN(machine_sbdf);
> >>>>>>  
> >>>>>> +        if ( needs_vpci(d) && !has_vpci(d) )
> >>>>>> +        {
> >>>>>> +            printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support not enabled\n",
> >>>>>> +                   &PCI_SBDF(seg, bus, devfn), d);
> >>>>>> +            ret = -EPERM;
> >>>>>> +            break;
> >>>>>
> >>>>> I think this is likely too restrictive going forward.  The current
> >>>>> approach is indeed to enable vPCI on a per-domain basis because that's
> >>>>> how PVH dom0 uses it, due to being unable to use ioreq servers.
> >>>>>
> >>>>> If we start to expose vPCI suport to guests the interface should be on
> >>>>> a per-device basis, so that vPCI could be enabled for some devices,
> >>>>> while others could still be handled by ioreq servers.
> >>>>>
> >>>>> We might want to add a new flag to xen_domctl_assign_device (used by
> >>>>> XEN_DOMCTL_assign_device) in order to signal whether the device will
> >>>>> use vPCI.
> >>>>
> >>>> Actually I don't think this is a good idea. I am all for flexibility but
> >>>> supporting multiple different configurations comes at an extra cost for
> >>>> both maintainers and contributors. I think we should try to reduce the
> >>>> amount of configurations we support rather than increasing them
> >>>> (especially on x86 where we have PV, PVH, HVM).
> >>>
> >>> I think it's perfectly fine to initially require a domain to have all
> >>> its devices either passed through using vPCI or ireqs, but the
> >>> interface IMO should allow for such differentiation in the future.
> >>> That's why I think introducing a domain wide vPCI flag might not be
> >>> the best option going forward.
> >>>
> >>> It would be perfectly fine for XEN_DOMCTL_assign_device to set a
> >>> domain wide vPCI flag, iow:
> >>>
> >>> if ( HYPERCALL_VPCI_FLAG_SET && !has_vpci(d) )
> >>> {
> >>>     if ( has_arch_pdevs(d) )
> >>>     {
> >>>         printk("All passthrough devices must use the same backend\n");
> >>>         return -EINVAL;
> >>>     }
> >>>
> >>>     /* Set vPCI domain flag */
> >>> }
> >>
> >> That would be fine by me, but maybe we can avoid this change too. I was
> >> imagining that vPCI would be enabled at domain creation, not at runtime.
> >> And that vPCI would be enabled by default for all PVH guests (once we
> >> are past the initial experimental phase.)
> > 
> > Then we don't even need a new CDF flag, and just enable vPCI when
> > IOMMU is enabled?  IOW: we can key the enabling of vPCI to
> > XEN_DOMCTL_CDF_iommu for specific domain types?
> > 
> > Maybe that's not so trivial on x86, as there's no x86 PVH domain type
> > from the hypervisor PoV.
> > 
> >>
> >>> We have already agreed that we want to aim for a setup where ioreqs
> >>> and vPCI could be used for the same domain, but I guess you assumed
> >>> that ioreqs would be used for emulated devices exclusively and vPCI
> >>> for passthrough devices?
> >>
> >> Yes, that's right
> >>
> >>
> >>> Overall if we agree that ioreqs and vPCI should co-exist for a domain,
> >>> I'm not sure there's much reason to limit ioreqs to only handle
> >>> emulated devices, seems like an arbitrary limitation.
> >>
> >> Reply below
> >>
> >>
> >>>> I don't think we should enable IOREQ servers to handle PCI passthrough
> >>>> for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
> >>>> Passthrough can be handled by vPCI just fine. I think this should be a
> >>>> good anti-feature to have (a goal to explicitly not add this feature) to
> >>>> reduce complexity. Unless you see a specific usecase to add support for
> >>>> it?
> >>>
> >>> There are passthrough devices (GPUs) that might require some extra
> >>> mediation on dom0 (like the Intel GVT-g thing) that would force the
> >>> usage of ioreqs to passthrough.
> >>
> >> From an architectural perspective, I think it would be cleaner, simpler
> >> to maintain, and simpler to understand if Xen was the sole owner of the
> >> PCI Root Complex and PCI config space mediation (implemented with vPCI).
> >> IOREQ can be used for emulation and it works very well for that. At
> >> least in my mind, that makes things much simpler.
> > 
> > But IOREQ already has all the code to mediate accesses to the PCI
> > config space, and the interface to register separate servers for
> > different PCI devices.
> > 
> > We would then need to duplicate this internally for vPCI, so that vPCI
> > could forward accesses to IOREQ just for IOREQ to forward to yet a
> > different component?  Seems like a lot of duplication for no benefit.
> > 
> >> I understand there are non-trivial cases, like virtual GPUs with
> >> hardware access, but I don't classify those as passthrough. That's
> >> because there isn't one device that gets fully assigned to the guest.
> >> Instead, there is an emulated device (hence IOREQ) with certain MMIO
> >> regions and interrupts that end up being directly mapped from real
> >> hardware.
> >>
> >> So I think it is natural in those cases to use IOREQ and it is also
> >> natural to have QEMU remap MMIO/IRQs at runtime. From a vPCI
> >> perspective, I hope it will mostly look as if the device is assigned to
> >> Dom0. Even if it ends up being more complex than that, Rome wasn't
> >> built in one day, and I don't think we should try to solve this problem
> >> on day1 (as long as the interfaces are not stable interfaces).
> > 
> > I don't see IOREQ as dealing explicitly with emulation.  Yes, it does
> > allow for emulators to be implemented in user-space, but at the end
> > it's just an interface that allows forwarding accesses to certain
> > resources (for the case we are speaking about here, PCI config space)
> > to entities that registered as handlers.
> > 
> > vPCI OTOH just deals with a very specific resource (PCI config space)
> > and only allows internal handlers to be registered on a byte
> > granularity.
> > 
> > So your proposal would be to implement a hierarchy like the one on the
> > diagram below:
> > 
> >     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> >     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
> >     â””â”€â”€â”€â”€â”€â”€â”€â”¬â”˜ â””â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> >             â”‚   â”‚               â”‚
> >             â”‚   â”‚           â”Œâ”€â”€â”€â”´â”€â”€â”
> >             â”‚   â”‚           â”‚ vPCI â”‚
> >             â”‚   â”‚           â””â”€â”¬â”€â”€â”¬â”€â”˜
> >          â”Œâ”€â”€â”´â”€â”€â”€â”´â”            â”‚  â”‚
> >          â”‚ IOREQ â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜  â”‚
> >          â””â”€â”€â”€â”€â”¬â”€â”€â”˜               â”‚
> >               â”‚                  â”‚
> >  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”              â”Œâ”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> >  â”‚ IOREQ servers â”‚              â”‚ vPCI handlers â”‚
> >  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜              â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> > 
> > While what I'm proposing would look like:
> > 
> >     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> >     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
> >     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> >          â”‚          â”‚                â”‚
> >          â””â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”´â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> >                â”‚  IOREQ  â”‚
> >                â””â”€â”¬â”€â”€â”€â”€â”€â”¬â”€â”˜
> >                  â”‚     â”‚
> >  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”
> >  â”‚ IOREQ servers â”‚          â”‚ vPCI â”‚
> >  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜          â””â”€â”€â”€â”¬â”€â”€â”˜
> >                                 â”‚
> >                             â”Œâ”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> >                             â”‚ vPCI handlers â”‚
> >                             â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> > 
> > I'm obviously biased, but I think the latter is cleaner, and allows
> > all resources to be arbitrated by the same component (IOREQ).
> > 
> > If the concern is about the IOREQ hypercall interface, it would be
> > fine to introduce an option that limit IOREQs to internal users
> > (vPCI) without supporting external IOREQ servers.
> > 
> > Think of IOREQ as a resource mediator inside of Xen, that just does
> > the PCI address decoding and forwards the access to the interested
> > party, either an external IOREQ server or vPCI.
> > 
> >>
> >>> It's important that the interfaces we introduce are correct IMO,
> >>> because that ends up reflecting on the configuration options that we
> >>> expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
> >>> XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
> >>> gets placed there will ultimately influence how the option gets
> >>> exposed in xl/libxl, and the interface there is relevant to keep
> >>> stable for end user sanity.
> >>
> >> I agree with you on the stable interfaces. The important part is not to
> >> introduce changes to stable interfaces that could limit us in the
> >> future. Specifically that includes xl and libxl, we need to be careful
> >> there. But I don't see a single per-domain vPCI enable/disable option as
> >> a problem. Let's say that in the future we have a mediated vGPU
> >> implementation: if it works together with vPCI then the per-domain vPCI
> >> option in libxl will be enabled (either explicitely or by default), if
> >> it doesn't then vPCI will be disabled (either explicitely or by the
> >> newer vGPU options.)
> > 
> > If vPCI is hooked into IOREQ there won't be a need anymore to register
> > the vPCI config space traps, as that would be done by IOREQ, and hence
> > vPCI managed devices could be registered at runtime with IOREQ.  IOW:
> > there won't be a need anymore to signal at domain creation whether
> > vPCI is intended to be used or not.
> > 
> > We would obviously need to enable IOREQ for all domains with IOMMU
> > enabled, as it would be IOREQ that register the PCI config space
> > handlers.
> > 
> >> For *unstable* interfaces (XEN_DOMCTL_assign_device) I would rather wait
> >> before adding more changes on top of them, not because I don't care
> >> about the mediated GPU problem (we do have something similar at AMD),
> >> but because I worry that if we try to change them now we might not do a
> >> good enough job. I would prefer to wait until we know more about the
> >> actual use case, ideally with code supporting it.
> >>
> >> I think the difference in points of views comes from the fact that I see
> >> vPCI as the default, QEMU only as a limited peripheral emulator (or
> >> mediator for the vGPU case) but not in control. vPCI and QEMU are not
> >> equal in my view. vPCI is in charge and always present if not in very
> >> uncommon setups (even if we decide to hook it inside Xen by using
> >> internal IOREQ interfaces). QEMU might come and go.
> > 
> > Xen needs a single component that mediates accesses to resources,
> > whether that's IOREQ, or something else I don't really care that much.
> 
> I just wanted to share what the "something else" diagram might look like.
> 
>     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
>     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”˜
>          â”‚          â”‚                  â”‚
>          â””â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”˜
>             â”‚ PCI Resource Mediator â”‚
>             â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
>                  â”‚     â”‚
>          â”Œâ”€â”€â”€â”€â”€â”€â”€â”¤     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”
>          â”‚ IOREQ â”‚          â”‚ vPCI â”‚
>          â””â”€â”€â”€â”€â”¬â”€â”€â”˜          â””â”€â”€â”€â”¬â”€â”€â”˜
>               â”‚                 â”‚
>  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”          â”Œâ”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
>  â”‚ IOREQ servers â”‚          â”‚ vPCI handlers â”‚
>  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜          â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜

It's IMO weird that the PCI resource mediator also controls Memory
and IO ports, since that's not a PCI specific resource.

Isn't your proposed "PCI Resource Mediator" the same as what IOREQ
currently does?

I'm kind of confused as what benefit there is in introducing another
layer that multiplexes guest resource accesses.

> > Having vPCI mediate accesses to the PCI config space, and IOREQ to the
> > memory (and on x86 IO port) space just seems awfully complicated for
> > AFAICT no real benefit.
> > 
> > Also, you seem to confabulate IOREQ with QEMU, while the latter is
> > indeed an user of IOREQ, I do see IOREQ as a simple resource mediator
> > inside of Xen, that has the ability to forward such accesses to
> > external emulators using an hypercall interface.
> > 
> >> Now that I am writing this, I realize this is also why I wasn't too
> >> happy with the idea of hooking vPCI using IOREQ. It makes them look as
> >> if they are the same, while I don't they should be considered at the
> >> same level of priority, criticality, safety, integration in the system,
> >> etc.
> > 
> > I feel there are some fears with IOREQ from a safety PoV?  The code
> > that does the resource multiplexing is small, and as said above if
> > there are safety concerns with the hypercall interface it would be
> > fine to limit it's usage to internal handlers only.
> 
> Would it make any sense at all to split the resource multiplexing bits from IOREQ into a new separate PCI resource mediator?

That might be fine, but seems like a lot of work and more complexity
in Xen for AFAICT no real benefit.

I think I would need to better understand the worries with using
IOREQ, but wouldn't it be easier to just limit the current IOREQ
code/interface to suit your needs?  Again without knowing exactly what
are the issues with using IOREQ	it's hard to propose solutions.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 09:51:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 09:51:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651576.1017281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcwG-0004pi-Km; Mon, 11 Dec 2023 09:51:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651576.1017281; Mon, 11 Dec 2023 09:51:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCcwG-0004pb-IE; Mon, 11 Dec 2023 09:51:00 +0000
Received: by outflank-mailman (input) for mailman id 651576;
 Mon, 11 Dec 2023 09:50:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VtRo=HW=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1rCcwF-0004pV-1f
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 09:50:59 +0000
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01on0620.outbound.protection.outlook.com
 [2a01:111:f400:fe02::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c83f30a2-980a-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 10:50:57 +0100 (CET)
Received: from DUZP191CA0069.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4fa::22)
 by PAWPR08MB10133.eurprd08.prod.outlook.com (2603:10a6:102:35f::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec
 2023 09:50:54 +0000
Received: from DU6PEPF0000B621.eurprd02.prod.outlook.com
 (2603:10a6:10:4fa:cafe::57) by DUZP191CA0069.outlook.office365.com
 (2603:10a6:10:4fa::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Mon, 11 Dec 2023 09:50:53 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000B621.mail.protection.outlook.com (10.167.8.138) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7091.18 via Frontend Transport; Mon, 11 Dec 2023 09:50:53 +0000
Received: ("Tessian outbound 7c4ecdadb9e7:v228");
 Mon, 11 Dec 2023 09:50:53 +0000
Received: from 51dfdd52b1f7.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 B73709A2-2E41-4F47-A730-225E06930F64.1; 
 Mon, 11 Dec 2023 09:50:42 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 51dfdd52b1f7.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 11 Dec 2023 09:50:42 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by PA6PR08MB10545.eurprd08.prod.outlook.com (2603:10a6:102:3d3::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec
 2023 09:50:40 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b%6]) with mapi id 15.20.7068.025; Mon, 11 Dec 2023
 09:50: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: c83f30a2-980a-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=mrbu7QblfCfXyB0h49+TtL4P969ltWKUY7ovk7JoVjWIZj1TcvGPW16FYBUQTqrcUVihQK3wWSSIvZflaFwuZeedJpg1ffA+F6GZhKiLn0SRyWz+9myAc0ZqV2ovKWftksQ/RFMeNu3lfy9ToSIX7PFJdJzoEo1/R7Xek3MHjwfguryEAVr5X/bXYneKzjDgRBJ3VZ1gKYtl229zv+R6V0o5YHow/sr/5HfLGs4n6v9YT9Sd6jHWaBfApgoet/Mz/NBUFGTlvQOju9C8tqBHTi38OTOLJwa9z77xIf4QAMVQQJGEgw2tiTF+fnlKdnqmIsx3u3nSrca0sf+0AhS2NA==
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=rDEZIRSB8QzQDCY1Lte8iskgU8y6FT1MNwWndMFO5YA=;
 b=BiXkAELOKC04AHeNb3lPPbD+2FqAMBkGfW+dwCb+YbXigzJgled0fuEdIglSlTZPszhr8MolfIV7NFvBS5NPIj/mVFsD2lChEADgMtQ0Tlcr4n4PT1SBFWoU0leIZhrqB1vXC5i6rDB2HTNO0xH2JgbNUSu9HMvYnvB3euNbIOSPvTAl2kgSwDjv7RrTN+CkHDCVcrFMTwCvW0GLl1pRIriJMtYR9H0zXoZrIY6fxKJScWHHfvoCZnF4MNIOOVhosRdYUyjpCAMyLaGMMG5kNxkMQBRVph5rPMvuzEb0u5DUSaIJHU9iMqyTs+Ds16aP3WDp1J6RxvQy3aMApWTfuA==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rDEZIRSB8QzQDCY1Lte8iskgU8y6FT1MNwWndMFO5YA=;
 b=QI1Ij0U0Rd4Uk5NhAmplbMufaadttZMg5sKdRSeog70hakAbyokAk+NNYiq7cciCOKy/hEE3QkNBhMu/wZ4gUjv3uHY/BTkUunLKWoh5pU36+uoF4d7qi38DWVrvpCP8RpUGVaE+uBIoS5d+SdYMXWmbW77mtxrP49Q3Jbpk8y8=
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=armh.onmicrosoft.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: 8a501cd1593da98a
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dU5lWhwIMQPZhcTljOKi01zufeV+xqKaUg6WoNEKgNxpfPNuxDkmMzCyzNfVsqpEScSVsPerqLh12jVK4l30HGt3NlK10hnmRZPfUyX3UqDdSZmHTUr4acaVxzHiYj6oGm61ushIhOZU63xFPVSjxOPVl/lW8uWaUTDvqDpJJxZX7QhoDESqZhblTvC75Ex/HKN7k4sTf9KvahULGixadPzE68rl8fn187AvVvGDo54mLat17K8yPKqp4Hrv/LfawJ5tXZqcdX29+tyOq8FdkCSPRihjyX29YOPxwy99yR0u6A7Y6hkRp76WfE+bB7QUv0gA1ybdVZD0QlHz7g3DVA==
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=rDEZIRSB8QzQDCY1Lte8iskgU8y6FT1MNwWndMFO5YA=;
 b=MONCQAP/+4UdnNLeb5Twt8vS2PvoqE3OrbLjP8u4jmEUGn+JdcNaRsxDT06S+D2Xwfpx2H8paTFEcJkWJC6e4P4TLkfhAlpn1olPY4igs8R55s6VaNCyg3Yunf8HWChsougK9GB164TPDRnLOKXniLqbBphR9mOkFWjjTLgsMexNATKBkJC3Dl/oS7Bq/Bm+d+ilL5cmH9yyka4ug9oKp6bR0iNZTM7E0z6x/I2io0O8El9O2U+HHVR5Q/cY+am+L5US4+6a9iPa4I+lP0jTQsBG72b7kY6Kv17F2Xp0G09xgnQ0wrBk99AnIWn/KEwPSXIlc/f1TmDlIx4GFiDtxw==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rDEZIRSB8QzQDCY1Lte8iskgU8y6FT1MNwWndMFO5YA=;
 b=QI1Ij0U0Rd4Uk5NhAmplbMufaadttZMg5sKdRSeog70hakAbyokAk+NNYiq7cciCOKy/hEE3QkNBhMu/wZ4gUjv3uHY/BTkUunLKWoh5pU36+uoF4d7qi38DWVrvpCP8RpUGVaE+uBIoS5d+SdYMXWmbW77mtxrP49Q3Jbpk8y8=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Wei Chen <Wei.Chen@arm.com>
CC: Henry Wang <Henry.Wang@arm.com>, 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>,
	Wei Liu <wl@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
Thread-Topic: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
Thread-Index: AQHaKSlq43w0Rzr+HkWA0YYLdMYRQLCfOlsAgASiRIA=
Date: Mon, 11 Dec 2023 09:50:40 +0000
Message-ID: <A0AFA862-74CD-4712-AE0C-5C1E9EC802AC@arm.com>
References: <20231207162036.1921323-1-Henry.Wang@arm.com>
 <f3c759bc-f101-4e29-b4ff-dbf53d997d15@arm.com>
In-Reply-To: <f3c759bc-f101-4e29-b4ff-dbf53d997d15@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3784:EE_|PA6PR08MB10545:EE_|DU6PEPF0000B621:EE_|PAWPR08MB10133:EE_
X-MS-Office365-Filtering-Correlation-Id: 01e05691-8605-4982-bf88-08dbfa2eaa5f
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 nhu4va4sOFyymE3AgOY6yfsrqrNMoJDT+UH6cTGsJ7HdISgsqiqQ4KD51I41gy4HsvvvN/i6hpc1xrfinNUQDMmUJAeuAMNfGRN3di3JVTdc6MDE7xsc13bNspCTCPaalfIQD4bhHNQB2DhqJ3nS5kDoHZnN0jvL4nrU2DvuKrcH3FsoI1s7OwTw8lnu9TvY+DFiwvuj9Wj3maRlKZoSj78/t88wo8fJATRIvRXBEC5YjuZwccoNcChyNpe1lzR7MI4LAcb+aJDPtN52UfKeJ7lfmJKvXfLqwaKpyi7f8FqMwFM//pzj02hAJVhfGE5gSn+q+vw2Q15EdcQKcpkzBrBMgq76AjlCB0POtmKA1BwCxmRdev3OtcotZZ8Q/6vZJ2119vqs6wvVgZCzRH2cbL/96Kb1OmRTYAi8KA2pCboIoDj7fip6fgN5V4qkyAvdlDMTjcLgBQYZ7YAl7MJrVRX+MD3/4Z+tccSd9oSx2PPsOXHuUgRsXiNFnKQJpzIL0P7EpWyhQKTYBziPfngEGQFL+QQKKTrQ6toAQbcZo1RKtdxzik8enC+ytBURvxPJ58dEnUGI0+/ngNU2V4IkzFayuMurARolEWO9ZTLS/Z8osia8Awib3uVFKacvrV8DC4rwYYg158NwFgeRQVec3A==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(396003)(376002)(136003)(346002)(366004)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(2616005)(6506007)(71200400001)(6512007)(53546011)(83380400001)(5660300002)(41300700001)(2906002)(4744005)(4326008)(6862004)(478600001)(6486002)(76116006)(8676002)(8936002)(66946007)(91956017)(66556008)(6636002)(37006003)(54906003)(64756008)(66446008)(66476007)(316002)(33656002)(86362001)(38100700002)(122000001)(36756003)(38070700009)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <340DCC78587FBC4D9B177CD0F332BCAB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10545
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:
 DU6PEPF0000B621.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	e9b820cc-9cea-4c86-7c90-08dbfa2ea28b
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	GhWHcIc6tUH2eDanH4zxrsAJ8R7gDCszl/VzltR71sT1qjixZeB28g+vtYXMo+pgUdPy0WuF/dMLyWeMdMYvpllf5bk5dRxI49mhr6Ggd937cAPWh44Ml2OR3Ch8ESC9/E/IP+FyZKIa+TBxdc0YXfspSpTe3PoEwWPPRwx2chTtk+W7mI/gxIFHRhdtN4AP9yPOS7yXL27Jbnfp1AxCaFgnw+uRePzW+/T89P+IKBMIO1zgf6FnBgnTaSsQgSnwOabgpHqoB0obVjNDrRxbaTAYcwLRRxkZT+DbQcilwBNliyKJlmvppwiRiiPgBZmEOaMIykp06Qg9ufD63pYQUJgvhjXJINsf927p1SWAkXpbuFQBQvWBMaLw1RBAIomJ9eJkOotkKVfQBoN7lFQJfA7zBYC/cChe2xxE7qyRWyDMS1WVgiitKhQncG7DuglcWxxRX//X4d7dDhl2hwSQpXe51GquGqjSSTMQW7cRBwCUKDhB7EbGRJXKYCfBonOHCTACC0ccsHa3SGEQMC+999HTwO80qgrvi44FBvR5eLHj0hgH+C9ehMSD5j4IwoSDNSFKtgBPcE6J8GknpVkpFoov6gD2T0L3JNhr0mPEru+MuN+FOS1nAv0jfd+sanO9VJ3RxlXbOnvHPyEeEU/kKQ6gQucltJgjlipxwNC3bEf9z5zUvtpi0gtfPyDeNrxTzMhZdPjGyL5M7a9JXHUulsC2UAFy1NkwL61Pa8C5Ubo=
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:(13230031)(4636009)(136003)(39860400002)(346002)(396003)(376002)(230922051799003)(451199024)(1800799012)(64100799003)(82310400011)(186009)(46966006)(40470700004)(36840700001)(6512007)(40460700003)(6506007)(53546011)(36860700001)(5660300002)(47076005)(336012)(26005)(2616005)(107886003)(33656002)(36756003)(6636002)(54906003)(70586007)(70206006)(6486002)(40480700001)(2906002)(83380400001)(81166007)(82740400003)(41300700001)(356005)(478600001)(86362001)(8676002)(8936002)(4326008)(6862004)(316002)(37006003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 09:50:53.6742
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 01e05691-8605-4982-bf88-08dbfa2eaa5f
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:
	DU6PEPF0000B621.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10133



> On 8 Dec 2023, at 12:04, Wei Chen <Wei.Chen@arm.com> wrote:
>=20
> Hi Henry,
>=20
> On 2023/12/8 00:20, Henry Wang wrote:
>> I've finished the opportunity to do two releases (4.17 and 4.18)
>> and Oleksii Kurochko has volunteered to be the next release manager.
>> Hand over the role to him by changing the maintainership of the
>> CHANGELOG.md.
>> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
>> ---
>>  MAINTAINERS | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 0fcf5a6f36..702032cc12 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -278,7 +278,7 @@ S: Supported
>>  F: xen/drivers/passthrough/arm/smmu-v3.c
>>    Change Log
>> -M: Henry Wang <Henry.Wang@arm.com>
>> +M: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>  R: Community Manager <community.manager@xenproject.org>
>>  S: Maintained
>>  F: CHANGELOG.md
>=20
> I'm proud of your work on the last two Xen releases.
> Thanks for your works!
>=20

I am seconding that.

Thanks a lot Henry for the great work you made during those 2 releases.
Cheers
Bertrand




From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:01:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:01:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651582.1017292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCd5z-0006yW-MY; Mon, 11 Dec 2023 10:01:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651582.1017292; Mon, 11 Dec 2023 10:01:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCd5z-0006yP-Jn; Mon, 11 Dec 2023 10:01:03 +0000
Received: by outflank-mailman (input) for mailman id 651582;
 Mon, 11 Dec 2023 10:01: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 1rCd5y-0006yJ-Tq
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:01: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 1rCd5y-0001L2-ML; Mon, 11 Dec 2023 10:01:02 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.158.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCd5y-0002Ju-D3; Mon, 11 Dec 2023 10:01:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=FjQRv6EHeQB0G6oRahUvzC9Tj4edcEv10C52jLYrxKg=; b=zhSFDqfIhPybaEdPFxiZ9oC0JO
	U1qS+zlaq3Su9YAAcRGDSRWTHQs015ir9DbtutHC2pN3Hl+jSXbm0Pb/7L2SF/nHJk8uCtqrIXkva
	/TTJ9cESXtYO4ilvqNobY7fFXuINteAhjwOwpEgOmY7QTA3ub9sC0Pi4k8fjJWupf3Tc=;
Message-ID: <311a1ced-4c53-4d35-ab41-90212b4a48d3@xen.org>
Date: Mon, 11 Dec 2023 10:01:00 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 04/11] xen/arm: introduce allocate_domheap_memory and
 guest_physmap_memory
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Penny Zheng <Penny.Zheng@arm.com>,
 xen-devel@lists.xenproject.org
Cc: wei.chen@arm.com, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-5-Penny.Zheng@arm.com>
 <992ba724-8dfa-4285-8e92-16dfb870e4ed@amd.com>
 <b9892005-ab12-454a-9788-02571e868e67@xen.org>
 <236a2cc6-53ae-4f4b-b1e8-cb270ee37f9f@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <236a2cc6-53ae-4f4b-b1e8-cb270ee37f9f@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 11/12/2023 08:31, Michal Orzel wrote:
> On 08/12/2023 16:09, Julien Grall wrote:
>>
>>
>> Hi,
>>
>> On 07/12/2023 09:38, Michal Orzel wrote:
>>> Hi Penny,
>>>
>>> On 06/12/2023 10:06, Penny Zheng wrote:
>>>>
>>>>
>>>> We split the code of allocate_bank_memory into two parts,
>>>> allocate_domheap_memory and guest_physmap_memory.
>>>>
>>>> One is about allocating guest RAM from heap, which could be re-used later for
>>>> allocating static shared memory from heap when host address is not provided.
>>>> The other is building up guest P2M mapping.
>>>>
>>>> We also define a set of MACRO helpers to access common fields in data
>>>> structure of "meminfo" type, e.g. "struct meminfo" is one of them, and
>>>> later new "struct shm_meminfo" is also one of them.
>>>> This kind of structures must have the following characteristics:
>>>> - an array of "struct membank"
>>>> - a member called "nr_banks" indicating current array size
>>>> - a field indicating the maximum array size
>>>> When introducing a new data structure, according callbacks with function type
>>>> "retrieve_fn" shall be defined for using MACRO helpers.
>>>> This commit defines callback "retrieve_meminfo" for data structure
>>>> "struct meminfo".
>>> This patch introduces quite a bit of complexity with all these helpers, so adding a rationale is crucial.
>>> AFAIU, all of this is because we don't want to reuse struct meminfo where NR_MEM_BANKS is defined as 256,
>>> which is a lot more than we need for shmem. Am I right?
>>
>> +1.
>>
>>>
>>> I would like others to share the opinion here as well.
>>
>> If possible, I'd like to reduce the footprint of the shared memory. But
>> this should be balanced with the complexity of the code.
>>
>> Briefly looking at the patch series, we have two structures:
>>
>> struct meminfo {
>>       unsigned int nr_banks;
>>       struct membank bank[NR_MEM_BANKS];
>> };
>>
>> struct shm_meminfo {
>>       unsigned int nr_banks;
>>       struct membank bank[NR_SHM_BANKS];
>>       paddr_t tot_size;
>> };
>>
>> IIUC, the logic is mostly to be able to know the maximum size of the
>> array and also the number of slots already used.
>>
>> So we could have the following common structure:
>>
>> struct membanks {
>>      unsigned int nr_banks;
>>      unsigned int max_banks;
>>      struct membank *banks;
>> }
>>
>> Then the definition for the two other structures could be:
>>
>> struct meminfo {
>>       struct membank holders[NR_MEM_BANKS];
>>
>>       struct membanks banks;
>> }
>>
>> struct shm_meminfo {
>>       struct membank holders[NR_SHM_BANKS];
>>
>>       struct membanks banks;
>>
>>       paddr_t tot_size;
>> }
>>
>> And then 'banks.banks' would point to the 'holders'. And 'max_banks'
>> would be set to the maximum.
>>
>> There might be other way to make the structure more nicer. Like (untested):
>>
>> struct membanks {
>>       unsigned int nr_banks;
>>       unsigned int max_banks;
>>       struct membank[];
>> }
>>
>> struct meminfo {
>>       struct membanks common;
>>       // We should ensure there are no padding
>>       struct membank[NR_MEM_BANKS];
>> }
>>
>> We would then pass &meminfo.common to allocate_domainheap_memory().
>>
>> With that there should be no need for extra helpers.
>>
>> What do you think?
> I would go for flexible array member solution which looks much nicer and as far as I can tell
> would solve the issue with extra helpers.
> 
> The only problem is that there are quite a lot of places where we reference nr_banks of meminfo e.g. mem.nr_banks
> which we would need to modify to mem.common.nr_banks. 

Possibly yes. But it is not clear what's the problem here. Are you 
concerned about the churn? Or is it just a long name?

At least in the case of meminfo. We could possibly replace all the use 
with a pointer to "struct membank common". This would reduce the amount 
of churn and the expression length.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:12:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:12:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651589.1017302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdHG-0001Ps-Om; Mon, 11 Dec 2023 10:12:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651589.1017302; Mon, 11 Dec 2023 10:12: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 1rCdHG-0001Pl-L7; Mon, 11 Dec 2023 10:12:42 +0000
Received: by outflank-mailman (input) for mailman id 651589;
 Mon, 11 Dec 2023 10:12: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=KCUY=HW=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rCdHE-0001Pf-T9
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:12:41 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20610.outbound.protection.outlook.com
 [2a01:111:f400:fe59::610])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf892276-980d-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 11:12:39 +0100 (CET)
Received: from MW4PR04CA0202.namprd04.prod.outlook.com (2603:10b6:303:86::27)
 by BL0PR12MB4914.namprd12.prod.outlook.com (2603:10b6:208:1c4::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Mon, 11 Dec
 2023 10:12:34 +0000
Received: from CO1PEPF000042A8.namprd03.prod.outlook.com
 (2603:10b6:303:86:cafe::21) by MW4PR04CA0202.outlook.office365.com
 (2603:10b6:303:86::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33 via Frontend
 Transport; Mon, 11 Dec 2023 10:12:34 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000042A8.mail.protection.outlook.com (10.167.243.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Mon, 11 Dec 2023 10:12:33 +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.34; Mon, 11 Dec
 2023 04:12:33 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 11 Dec
 2023 04:12:32 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 11 Dec 2023 04:12:30 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf892276-980d-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mEYtM8X1+q8T1ILOKw1gS4E6Jxq6ZluMZO0A7eEh1K/pr1UozUtIrr8edyEKVjr7y/KBwO5Lpuosa2YMFkeMtIqihs52kkJno2ZulgbNSSEDZ/HrNHzPELDBLF9XHHzPZZ+vv+kS2pvLHO5W6yTUvqpIGmkSrkGhcelzCwRvDICzGl993zzWPfsksgq8GoLzLFtonbC1B0X1/JzBYnfJQcw+5zusvlmbV8miCm3HdBpf9PYwqpcEiSjFek9NuxR/dz4ZMCayw/uBqem1uPBdGkQAyNCfzVbkAEcKpTuh/c3mo9/BcJvxHABSo47Na54gXh72TkKdPnfmxPjai8eCMQ==
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=Au7wQlt730Wqd0eMPM5g1A42KhGIkWWma489cS77DUk=;
 b=XahkgHFSiYXrDIU4vvrCONv/1h9jf0ot1IA21kOrNEhluqOjV6y4i4wIWkocuuTB+mYU4Sp8TNzb52skLqXJmOj/vdzaVkh2ul2XEva4KiW06w5BesKix7QLR4fdiWxGicn9A+5RtR/ge+mUVzc/084ZDoq8Vz1iumJyCu1qRCMuzzBpTve1l1ld5kxiwqHEZlP+TAMVMmOPIG+iZdF4zp5J6EBQX8h98Qymnt0mSTxS5mXX1+pgfX4iDPBR0TfH5JlvCnovxOLIRqUORlNulOweDE6caP/n4xtTGFCyMdMEiEh9PCi9NnajCzKo94Rwuo2jUhF2dXimBVcxRAOLCw==
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=Au7wQlt730Wqd0eMPM5g1A42KhGIkWWma489cS77DUk=;
 b=PxYuE4K2CZ8YH/O8Vc4rt++AttYfegBysMZDq6iHIf02SAIilaqCUahF87rzcX0ZXL2RFozQ/Dx/GRL/rUKEfn9huNooMc7PX3sWf3qCZ2OnmjTvt5ktg/jv8aAWnUao59rvk0FIHWIptLQC4RPiLg82ljgbMOSzS2OPvBSUJ8I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <d709ac4f-8f47-4ed0-9bef-6865a14f22bc@amd.com>
Date: Mon, 11 Dec 2023 11:12:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 04/11] xen/arm: introduce allocate_domheap_memory and
 guest_physmap_memory
Content-Language: en-US
To: Julien Grall <julien@xen.org>, Penny Zheng <Penny.Zheng@arm.com>,
	<xen-devel@lists.xenproject.org>
CC: <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20231206090623.1932275-1-Penny.Zheng@arm.com>
 <20231206090623.1932275-5-Penny.Zheng@arm.com>
 <992ba724-8dfa-4285-8e92-16dfb870e4ed@amd.com>
 <b9892005-ab12-454a-9788-02571e868e67@xen.org>
 <236a2cc6-53ae-4f4b-b1e8-cb270ee37f9f@amd.com>
 <311a1ced-4c53-4d35-ab41-90212b4a48d3@xen.org>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <311a1ced-4c53-4d35-ab41-90212b4a48d3@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000042A8:EE_|BL0PR12MB4914:EE_
X-MS-Office365-Filtering-Correlation-Id: 99822a24-f89c-44d7-680b-08dbfa31b168
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	wMl9rjXdOdOB9hA/eEyotnNwlhEuXgZTkpUk9vMHBMSmoINgyvl22LCjHBfpUVgX/L8lywBSPHDDPG3zcEKDJCm1huG+1bnwjwZ82aRIUTvdqDvp1KFp6lCULn/UBMDJAoFs1KyvYX5A1FR+RE9NJR5giUw07XLOjqgAcz+hLx5n3gKsByNHNOKk/CZNPYsR+Avhr+zgej1nq00GeHUtN61brJM0BRFp1k+WI2+InNXFKxj1YHF5KDm4HvQcAs8UGBVRSM9R57PCxYSkYz7wH/GgKSfYoF+yNgiLqFD5GT6qDlB4ygon1Z6g5iNopiV1x+6SnlLJ+ZrwS6ZGWv4HNQal5dwn4a0+sXi4JqfpNuXlfamgHzLkMDjKfy2hF8CUeFJGCfiJHxMeFOLVQeoyPT2Ht3zjwNh4jJnFCpywyA4CEOdKZxV48CfjbLOKElSKorDQftxhq0dlV33OBv1Rc22HgGtUzT5wDBL2O+0lnNAT8QmfEchcQWb6IszgtgiGWMIwticn/xnH4KOTOxzU8XRIE8htb5rvh9n5OSYXMfrOGLiKAokrMD+7hGORpxJNd37eFdTPD5ZSXUTAylknJGMnzKsIN7CuM9NMfigKDCQqfl4Ll3Ap9TmXbCln4Jw8lmjJWlalGP8ZTQL47yaKU2U/Pb8fv9xMCSGlRtGjeDutlz9vDeiK9roTeqi4Fvbc/HUWFoXHkjc6glee0hdfslGGf2cFpZFCkiVTnpL2NEaUOx23KKW9jSzKtPIWLJUSV3ds8/hiBpIupw/wMvDpQ/VaDysMWPliNKM+1ZA33KaaMSLVcImVXPySScDjIoJT
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:(13230031)(4636009)(39850400004)(346002)(136003)(396003)(376002)(230922051799003)(451199024)(82310400011)(186009)(1800799012)(64100799003)(40470700004)(36840700001)(46966006)(36756003)(53546011)(478600001)(2906002)(426003)(83380400001)(26005)(336012)(2616005)(4326008)(8936002)(8676002)(5660300002)(44832011)(110136005)(54906003)(70206006)(70586007)(16576012)(316002)(82740400003)(81166007)(40480700001)(356005)(31696002)(31686004)(86362001)(41300700001)(47076005)(40460700003)(36860700001)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 10:12:33.8402
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 99822a24-f89c-44d7-680b-08dbfa31b168
X-MS-Exchange-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:
	CO1PEPF000042A8.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4914



On 11/12/2023 11:01, Julien Grall wrote:
> 
> 
> Hi Michal,
> 
> On 11/12/2023 08:31, Michal Orzel wrote:
>> On 08/12/2023 16:09, Julien Grall wrote:
>>>
>>>
>>> Hi,
>>>
>>> On 07/12/2023 09:38, Michal Orzel wrote:
>>>> Hi Penny,
>>>>
>>>> On 06/12/2023 10:06, Penny Zheng wrote:
>>>>>
>>>>>
>>>>> We split the code of allocate_bank_memory into two parts,
>>>>> allocate_domheap_memory and guest_physmap_memory.
>>>>>
>>>>> One is about allocating guest RAM from heap, which could be re-used later for
>>>>> allocating static shared memory from heap when host address is not provided.
>>>>> The other is building up guest P2M mapping.
>>>>>
>>>>> We also define a set of MACRO helpers to access common fields in data
>>>>> structure of "meminfo" type, e.g. "struct meminfo" is one of them, and
>>>>> later new "struct shm_meminfo" is also one of them.
>>>>> This kind of structures must have the following characteristics:
>>>>> - an array of "struct membank"
>>>>> - a member called "nr_banks" indicating current array size
>>>>> - a field indicating the maximum array size
>>>>> When introducing a new data structure, according callbacks with function type
>>>>> "retrieve_fn" shall be defined for using MACRO helpers.
>>>>> This commit defines callback "retrieve_meminfo" for data structure
>>>>> "struct meminfo".
>>>> This patch introduces quite a bit of complexity with all these helpers, so adding a rationale is crucial.
>>>> AFAIU, all of this is because we don't want to reuse struct meminfo where NR_MEM_BANKS is defined as 256,
>>>> which is a lot more than we need for shmem. Am I right?
>>>
>>> +1.
>>>
>>>>
>>>> I would like others to share the opinion here as well.
>>>
>>> If possible, I'd like to reduce the footprint of the shared memory. But
>>> this should be balanced with the complexity of the code.
>>>
>>> Briefly looking at the patch series, we have two structures:
>>>
>>> struct meminfo {
>>>       unsigned int nr_banks;
>>>       struct membank bank[NR_MEM_BANKS];
>>> };
>>>
>>> struct shm_meminfo {
>>>       unsigned int nr_banks;
>>>       struct membank bank[NR_SHM_BANKS];
>>>       paddr_t tot_size;
>>> };
>>>
>>> IIUC, the logic is mostly to be able to know the maximum size of the
>>> array and also the number of slots already used.
>>>
>>> So we could have the following common structure:
>>>
>>> struct membanks {
>>>      unsigned int nr_banks;
>>>      unsigned int max_banks;
>>>      struct membank *banks;
>>> }
>>>
>>> Then the definition for the two other structures could be:
>>>
>>> struct meminfo {
>>>       struct membank holders[NR_MEM_BANKS];
>>>
>>>       struct membanks banks;
>>> }
>>>
>>> struct shm_meminfo {
>>>       struct membank holders[NR_SHM_BANKS];
>>>
>>>       struct membanks banks;
>>>
>>>       paddr_t tot_size;
>>> }
>>>
>>> And then 'banks.banks' would point to the 'holders'. And 'max_banks'
>>> would be set to the maximum.
>>>
>>> There might be other way to make the structure more nicer. Like (untested):
>>>
>>> struct membanks {
>>>       unsigned int nr_banks;
>>>       unsigned int max_banks;
>>>       struct membank[];
>>> }
>>>
>>> struct meminfo {
>>>       struct membanks common;
>>>       // We should ensure there are no padding
>>>       struct membank[NR_MEM_BANKS];
>>> }
>>>
>>> We would then pass &meminfo.common to allocate_domainheap_memory().
>>>
>>> With that there should be no need for extra helpers.
>>>
>>> What do you think?
>> I would go for flexible array member solution which looks much nicer and as far as I can tell
>> would solve the issue with extra helpers.
>>
>> The only problem is that there are quite a lot of places where we reference nr_banks of meminfo e.g. mem.nr_banks
>> which we would need to modify to mem.common.nr_banks.
> 
> Possibly yes. But it is not clear what's the problem here. Are you
> concerned about the churn? Or is it just a long name?
I am concerned about the churn. I did a grep and we have almost 100 instances of e.g. mem{.,->}nr_banks,
which in our solution would need to be replaced with mem{.,->}common.nr_banks. That said ...

> 
> At least in the case of meminfo. We could possibly replace all the use
> with a pointer to "struct membank common". This would reduce the amount
> of churn and the expression length.
this could help to limit the overall churn.

~Michal


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:30:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651601.1017381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYh-0006qO-Nr; Mon, 11 Dec 2023 10:30:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651601.1017381; Mon, 11 Dec 2023 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 1rCdYh-0006pj-JF; Mon, 11 Dec 2023 10:30:43 +0000
Received: by outflank-mailman (input) for mailman id 651601;
 Mon, 11 Dec 2023 10: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCdYf-0005Em-TF
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:30:41 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53a27fd5-9810-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 11:30:38 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id CF4CE4EE0744;
 Mon, 11 Dec 2023 11:30:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53a27fd5-9810-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 7/7] x86/xstate: move BUILD_BUG_ON to address MISRA C:2012 Rule 2.1
Date: Mon, 11 Dec 2023 11:30:28 +0100
Message-Id: <a969550faea681c69730c0968264781f7739670d.1702283415.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702283415.git.nicola.vetrini@bugseng.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The string literal inside the expansion of BUILD_BUG_ON is considered
unreachable code; however, such statement can be moved earlier
with no functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
The motivation for this code movement is that keeping it inside the switch
statement matches MISRA's definition of unreachable code, but does not fall into
the category of declarations without initialization, which is already a deviated
aspect. An alternative approach would be to deviate BUILD_BUG_ON as well.
---
 xen/arch/x86/xstate.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index cf94761d0542..99f0526c8988 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -396,9 +396,10 @@ void xrstor(struct vcpu *v, uint64_t mask)
      */
     for ( prev_faults = faults = 0; ; prev_faults = faults )
     {
+        BUILD_BUG_ON(sizeof(faults) != 4); /* Clang doesn't support %z in asm. */
+
         switch ( __builtin_expect(ptr->fpu_sse.x[FPU_WORD_SIZE_OFFSET], 8) )
         {
-            BUILD_BUG_ON(sizeof(faults) != 4); /* Clang doesn't support %z in asm. */
 #define _xrstor(insn) \
         asm volatile ( "1: .byte " insn "\n" \
                        "3:\n" \
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:30:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651598.1017347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYf-0005xz-BG; Mon, 11 Dec 2023 10:30:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651598.1017347; Mon, 11 Dec 2023 10:30:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYf-0005x1-3J; Mon, 11 Dec 2023 10:30:41 +0000
Received: by outflank-mailman (input) for mailman id 651598;
 Mon, 11 Dec 2023 10:30: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCdYd-0005Em-T4
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:30:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5238be18-9810-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 11:30:36 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 801C84EE0743;
 Mon, 11 Dec 2023 11:30:35 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5238be18-9810-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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: [XEN PATCH 3/7] xen/arm: address MISRA C:2012 Rule 2.1
Date: Mon, 11 Dec 2023 11:30:24 +0100
Message-Id: <4c0d38f2b707afa9aed1853a99d286fa2424fb9d.1702283415.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702283415.git.nicola.vetrini@bugseng.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The "return 1;" statements at the end of some cases in the switch
of function 'vgic_v3_its_mmio_write' in 'vcig-v3-its.c' cause the
unreachability of the "return 1;" statement after the switch, thus
violating MISRA C:2012 Rule 2.1:
"A project shall not contain unreachable code".

The same is true for the switch in 'arch_memory_op' from
'xen/arch/arm/mm.c'.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/arm/mm.c          |  2 +-
 xen/arch/arm/vgic-v3-its.c | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index eeb65ca6bb79..9be8e711f61e 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -277,7 +277,7 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
     /* XXX: memsharing not working yet */
     case XENMEM_get_sharing_shared_pages:
     case XENMEM_get_sharing_freed_pages:
-        return 0;
+        break;
 
     default:
         return -ENOSYS;
diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
index 05429030b539..b9195bbd0538 100644
--- a/xen/arch/arm/vgic-v3-its.c
+++ b/xen/arch/arm/vgic-v3-its.c
@@ -1255,7 +1255,7 @@ static int vgic_v3_its_mmio_write(struct vcpu *v, mmio_info_t *info,
                                                      reg32 & GITS_CTLR_ENABLE);
         spin_unlock(&its->its_lock);
         spin_unlock(&its->vcmd_lock);
-        return 1;
+        break;
     }
 
     case VREG32(GITS_IIDR):
@@ -1292,7 +1292,7 @@ static int vgic_v3_its_mmio_write(struct vcpu *v, mmio_info_t *info,
         its->creadr = 0;
         spin_unlock(&its->its_lock);
 
-        return 1;
+        break;
 
     case VREG64(GITS_CWRITER):
         if ( !vgic_reg64_check_access(info->dabt) ) goto bad_width;
@@ -1308,7 +1308,7 @@ static int vgic_v3_its_mmio_write(struct vcpu *v, mmio_info_t *info,
 
         spin_unlock(&its->vcmd_lock);
 
-        return 1;
+        break;
 
     case VREG64(GITS_CREADR):
         goto write_ignore_64;
@@ -1353,7 +1353,7 @@ static int vgic_v3_its_mmio_write(struct vcpu *v, mmio_info_t *info,
 
         its->baser_dev = reg;
         spin_unlock(&its->its_lock);
-        return 1;
+        break;
 
     case VREG64(GITS_BASER1):           /* collection table */
         if ( !vgic_reg64_check_access(info->dabt) ) goto bad_width;
@@ -1384,7 +1384,7 @@ static int vgic_v3_its_mmio_write(struct vcpu *v, mmio_info_t *info,
             its->max_collections = 0;
         its->baser_coll = reg;
         spin_unlock(&its->its_lock);
-        return 1;
+        break;
 
     case VRANGE64(GITS_BASER2, GITS_BASER7):
         goto write_ignore_64;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:30:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651594.1017312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYb-0005BT-6f; Mon, 11 Dec 2023 10:30:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651594.1017312; Mon, 11 Dec 2023 10:30:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYb-0005BM-37; Mon, 11 Dec 2023 10:30:37 +0000
Received: by outflank-mailman (input) for mailman id 651594;
 Mon, 11 Dec 2023 10:30: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCdYZ-00059V-GZ
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:30:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 508176d3-9810-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 11:30:33 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 584A64EE073E;
 Mon, 11 Dec 2023 11:30:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 508176d3-9810-11ee-98e8-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.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>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Dario Faggioli <dfaggioli@suse.com>
Subject: [XEN PATCH 0/7] address violations of MISRA C:2012 Rule 2.1
Date: Mon, 11 Dec 2023 11:30:21 +0100
Message-Id: <cover.1702283415.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C:2012 Rule 2.1 states: "A project shall not contain unreachable code".
As such, this series eliminates various instances of unreachable code found in
Xen, by providing equivalent compliant constructs.

This series is loosely based on my earlier series [1], but the overall approach
has changed since; for instance, declarations without initialization are now
ignored, as detailed in docs/misra/deviations.rst.

[1] https://lore.kernel.org/xen-devel/cover.1690985045.git.nicola.vetrini@bugseng.com/

Nicola Vetrini (7):
  xen/shutdown: address MISRA C:2012 Rule 2.1
  x86/mm: address MISRA C:2012 Rule 2.1
  xen/arm: address MISRA C:2012 Rule 2.1
  xen/sched: address MISRA C:2012 Rule 2.1
  xen/arm: traps: add ASSERT_UNREACHABLE() where needed
  x86/platform: removed break to address MISRA C:2012 Rule 2.1
  x86/xstate: move BUILD_BUG_ON to address MISRA C:2012 Rule 2.1

 xen/arch/arm/mm.c                 |  2 +-
 xen/arch/arm/traps.c              |  6 +++---
 xen/arch/arm/vgic-v3-its.c        | 10 +++++-----
 xen/arch/x86/mm.c                 |  6 +++---
 xen/arch/x86/platform_hypercall.c |  1 -
 xen/arch/x86/xstate.c             |  3 ++-
 xen/common/sched/core.c           |  1 -
 xen/common/shutdown.c             | 11 ++---------
 xen/include/xen/shutdown.h        |  2 +-
 9 files changed, 17 insertions(+), 25 deletions(-)

-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:30:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651599.1017354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYf-00065l-MC; Mon, 11 Dec 2023 10:30:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651599.1017354; Mon, 11 Dec 2023 10:30:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYf-00064Z-Gg; Mon, 11 Dec 2023 10:30:41 +0000
Received: by outflank-mailman (input) for mailman id 651599;
 Mon, 11 Dec 2023 10:30:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCdYe-0005Em-3t
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:30:40 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52e3650c-9810-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 11:30:37 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 959214EE0740;
 Mon, 11 Dec 2023 11:30:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52e3650c-9810-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where needed
Date: Mon, 11 Dec 2023 11:30:26 +0100
Message-Id: <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702283415.git.nicola.vetrini@bugseng.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The branches of the switch after a call to 'do_unexpected_trap'
cannot return, but there is one path that may return, hence
only some clauses are marked with ASSERT_UNREACHABLE().

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/arm/traps.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 3784e8276ef6..e7c920b043d2 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -2152,7 +2152,7 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs)
     case HSR_EC_SVE:
         /* An SVE exception is a bug somewhere in hypervisor code */
         do_unexpected_trap("SVE trap at EL2", regs);
-        break;
+        ASSERT_UNREACHABLE();
 #endif
     case HSR_EC_DATA_ABORT_CURR_EL:
     case HSR_EC_INSTR_ABORT_CURR_EL:
@@ -2171,13 +2171,13 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs)
             dump_hyp_walk(get_hfar(is_data));
 
         do_unexpected_trap(fault, regs);
-
-        break;
+        ASSERT_UNREACHABLE();
     }
     default:
         printk("Hypervisor Trap. HSR=%#"PRIregister" EC=0x%x IL=%x Syndrome=0x%"PRIx32"\n",
                hsr.bits, hsr.ec, hsr.len, hsr.iss);
         do_unexpected_trap("Hypervisor", regs);
+        ASSERT_UNREACHABLE();
     }
 }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:30:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651597.1017342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYe-0005vB-V1; Mon, 11 Dec 2023 10:30:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651597.1017342; Mon, 11 Dec 2023 10:30:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYe-0005v4-Rr; Mon, 11 Dec 2023 10:30:40 +0000
Received: by outflank-mailman (input) for mailman id 651597;
 Mon, 11 Dec 2023 10:30: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCdYd-0005Em-M6
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:30:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51d2ff79-9810-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 11:30:35 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id AD6D34EE0742;
 Mon, 11 Dec 2023 11:30:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51d2ff79-9810-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 2/7] x86/mm: address MISRA C:2012 Rule 2.1
Date: Mon, 11 Dec 2023 11:30:23 +0100
Message-Id: <5913d8871ff6c4f320c521e50e550a64e58d4351.1702283415.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702283415.git.nicola.vetrini@bugseng.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
is unreachable because all switch clauses end with returns.
However, some of them can be substituted with "break"s to allow
the "return 0" outside the switch to be reachable.

No functional changes.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/mm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 0a66db10b959..8b31426a5348 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4753,7 +4753,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         }
 
         spin_unlock(&d->arch.e820_lock);
-        return 0;
+        break;
     }
 
     case XENMEM_machine_memory_map:
@@ -4818,7 +4818,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         if ( __copy_to_guest(arg, &ctxt.map, 1) )
             return -EFAULT;
 
-        return 0;
+        break;
     }
 
     case XENMEM_machphys_mapping:
@@ -4834,7 +4834,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         if ( copy_to_guest(arg, &mapping, 1) )
             return -EFAULT;
 
-        return 0;
+        break;
     }
 
 #ifdef CONFIG_HVM
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:30:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651596.1017332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYc-0005eq-K4; Mon, 11 Dec 2023 10:30:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651596.1017332; Mon, 11 Dec 2023 10:30:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYc-0005ej-GQ; Mon, 11 Dec 2023 10:30:38 +0000
Received: by outflank-mailman (input) for mailman id 651596;
 Mon, 11 Dec 2023 10: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCdYb-00059V-5z
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:30:37 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 52789d88-9810-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 11:30:36 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 216EA4EE0744;
 Mon, 11 Dec 2023 11:30:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52789d88-9810-11ee-98e8-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Dario Faggioli <dfaggioli@suse.com>
Subject: [XEN PATCH 4/7] xen/sched: address MISRA C:2012 Rule 2.1
Date: Mon, 11 Dec 2023 11:30:25 +0100
Message-Id: <4006f1eb1977a89a57c5c02f003a2fefc06dfc42.1702283415.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702283415.git.nicola.vetrini@bugseng.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The break statement after the return statement is definitely unreachable
and can be removed with no functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/common/sched/core.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index f6ac1e5af8bd..d177c675c81b 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2239,7 +2239,6 @@ static bool sched_tasklet_check_cpu(unsigned int cpu)
         /* fallthrough */
     case TASKLET_enqueued|TASKLET_scheduled:
         return true;
-        break;
     case TASKLET_scheduled:
         clear_bit(_TASKLET_scheduled, tasklet_work);
         /* fallthrough */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:30:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651600.1017363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYg-0006Et-Fq; Mon, 11 Dec 2023 10:30:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651600.1017363; Mon, 11 Dec 2023 10:30:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYg-0006Ci-0K; Mon, 11 Dec 2023 10:30:42 +0000
Received: by outflank-mailman (input) for mailman id 651600;
 Mon, 11 Dec 2023 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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCdYe-0005Em-TA
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:30:40 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 533cb554-9810-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 11:30:38 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 46FDA4EE0742;
 Mon, 11 Dec 2023 11:30:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 533cb554-9810-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 6/7] x86/platform: removed break to address MISRA C:2012 Rule 2.1
Date: Mon, 11 Dec 2023 11:30:27 +0100
Message-Id: <b1103bc13d5ce04159417592705b4fe6a6db748b.1702283415.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702283415.git.nicola.vetrini@bugseng.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The break statement is redundant, hence it can be removed.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/platform_hypercall.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 4dde71db275c..7556c6e6cd0c 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -723,7 +723,6 @@ ret_t do_platform_op(
 
         ret = continue_hypercall_on_cpu(
             0, cpu_down_helper, (void *)(unsigned long)cpu);
-        break;
     }
     break;
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:30:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651595.1017317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYb-0005Dx-F0; Mon, 11 Dec 2023 10:30:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651595.1017317; Mon, 11 Dec 2023 10:30:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYb-0005D4-9p; Mon, 11 Dec 2023 10:30:37 +0000
Received: by outflank-mailman (input) for mailman id 651595;
 Mon, 11 Dec 2023 10:30: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCdYZ-00059V-Ts
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:30:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 514714a9-9810-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 11:30:34 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 4478F4EE0741;
 Mon, 11 Dec 2023 11:30:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 514714a9-9810-11ee-98e8-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 1/7] xen/shutdown: address MISRA C:2012 Rule 2.1
Date: Mon, 11 Dec 2023 11:30:22 +0100
Message-Id: <c0a8a12e39d688e101936d221af0f8eeefabe352.1702283415.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702283415.git.nicola.vetrini@bugseng.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Given that 'hwdom_shutdown' is a noreturn function, unreachable
breaks can be eliminated to resolve violations of Rule 2.1.
On the occasion, the type of its parameter is changed to uint8_t.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/common/shutdown.c      | 11 ++---------
 xen/include/xen/shutdown.h |  2 +-
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/xen/common/shutdown.c b/xen/common/shutdown.c
index 37901a4f3391..290f90d70fe1 100644
--- a/xen/common/shutdown.c
+++ b/xen/common/shutdown.c
@@ -30,7 +30,7 @@ static void noreturn maybe_reboot(void)
     }
 }
 
-void hwdom_shutdown(u8 reason)
+void hwdom_shutdown(uint8_t reason)
 {
     switch ( reason )
     {
@@ -38,39 +38,32 @@ void hwdom_shutdown(u8 reason)
         printk("Hardware Dom%u halted: halting machine\n",
                hardware_domain->domain_id);
         machine_halt();
-        break; /* not reached */
 
     case SHUTDOWN_crash:
         debugger_trap_immediate();
         printk("Hardware Dom%u crashed: ", hardware_domain->domain_id);
         kexec_crash(CRASHREASON_HWDOM);
         maybe_reboot();
-        break; /* not reached */
 
     case SHUTDOWN_reboot:
         printk("Hardware Dom%u shutdown: rebooting machine\n",
                hardware_domain->domain_id);
         machine_restart(0);
-        break; /* not reached */
 
     case SHUTDOWN_watchdog:
         printk("Hardware Dom%u shutdown: watchdog rebooting machine\n",
                hardware_domain->domain_id);
         kexec_crash(CRASHREASON_WATCHDOG);
         machine_restart(0);
-        break; /* not reached */
 
     case SHUTDOWN_soft_reset:
         printk("Hardware domain %d did unsupported soft reset, rebooting.\n",
                hardware_domain->domain_id);
         machine_restart(0);
-        break; /* not reached */
 
     default:
         printk("Hardware Dom%u shutdown (unknown reason %u): ",
                hardware_domain->domain_id, reason);
         maybe_reboot();
-        break; /* not reached */
     }
-}  
-
+}
diff --git a/xen/include/xen/shutdown.h b/xen/include/xen/shutdown.h
index 668aed0be580..3537c30e0a1b 100644
--- a/xen/include/xen/shutdown.h
+++ b/xen/include/xen/shutdown.h
@@ -6,7 +6,7 @@
 /* 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(uint8_t reason);
 
 void noreturn machine_restart(unsigned int delay_millisecs);
 void noreturn machine_halt(void);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:30:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651604.1017392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdYq-0007jW-6h; Mon, 11 Dec 2023 10:30:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651604.1017392; Mon, 11 Dec 2023 10: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 1rCdYq-0007j7-1X; Mon, 11 Dec 2023 10:30:52 +0000
Received: by outflank-mailman (input) for mailman id 651604;
 Mon, 11 Dec 2023 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=wVij=HW=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rCdYn-0005Em-PY
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:30:49 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 596273c6-9810-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 11:30:48 +0100 (CET)
Received: from [192.168.1.15] (host-80-116-181-249.retail.telecomitalia.it
 [80.116.181.249])
 by support.bugseng.com (Postfix) with ESMTPSA id AADDA4EE073E;
 Mon, 11 Dec 2023 11:30:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 596273c6-9810-11ee-9b0f-b553b5be7939
Message-ID: <8e952764-3555-4da8-9571-ef9d13c5b0a2@bugseng.com>
Date: Mon, 11 Dec 2023 11:30:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012
 Rule 16.3
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>
References: <4fa08aaed77d2b68db39ce51beef29820f1ba9b0.1701940034.git.federico.serafini@bugseng.com>
 <866ae09f-8e21-4f1b-a82e-8b72cc0f34e8@xen.org>
 <alpine.DEB.2.22.394.2312071628130.1265976@ubuntu-linux-20-04-desktop>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <alpine.DEB.2.22.394.2312071628130.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 08/12/23 01:30, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Julien Grall wrote:
>> Hi Federico,
>>
>> On 07/12/2023 09:08, Federico Serafini wrote:
>>> MISRA C:2012 Rule 16.3 states that an unconditional break statement
>>> shall terminate every switch-clause.
>>>
>>> Update ECLAIR configuration to take into account:
>>> - continue, goto, return statements;
>>> - functions and macros that do not give the control back;
>>> - fallthrough comments and pseudo-keywords.
>>>
>>> Update docs/misra/deviations.rst accordingly.
>>>
>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>> ---
>>>    .../eclair_analysis/ECLAIR/deviations.ecl     | 18 ++++++++++++++
>>>    docs/misra/deviations.rst                     | 24 +++++++++++++++++++
>>>    2 files changed, 42 insertions(+)
>>
>> It would be good that this is depending on to be accepted:
>>
>> https://lore.kernel.org/alpine.DEB.2.22.394.2312051859440.110490@ubuntu-linux-20-04-desktop.
>>
>>>
>>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> index b0c79741b5..df0b58a010 100644
>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> @@ -321,6 +321,24 @@ statements are deliberate"
>>>    -config=MC3R1.R14.3,statements={deliberate ,
>>> "wrapped(any(),node(if_stmt))" }
>>>    -doc_end
>>>    +#
>>> +# Series 16.
>>> +#
>>> +
>>> +-doc_begin="Switch clauses ending with continue, goto, return statements
>>> are safe."
>>> +-config=MC3R1.R16.3,terminals+={safe,
>>> "node(continue_stmt||goto_stmt||return_stmt)"}
>>> +-doc_end
>>> +
>>> +-doc_begin="Switch clauses not ending with the break statement are safe if
>>> a function/macro that does not give the control back is present."
>>> +-config=MC3R1.R16.3,terminals+={safe,
>>> "call(decl(name(__builtin_unreachable||do_unexpected_trap||fatal_trap||machine_halt||machine_restart||maybe_reboot||panic)))"}
>>> +-config=MC3R1.R16.3,terminals+={safe,"macro(name(BUG||BUG_ON))"}
>>> +-doc_end
>>> +
>>> +-doc_begin="Switch clauses not ending with the break statement are safe if
>>> an explicit comment or pseudo-keyword indicating the fallthrough intention
>>> is present."
>>> +-config=MC3R1.R16.3,reports+={safe,
>>> "any_area(any_loc(any_exp(text(^(?s).*([fF]all[- ]?[tT]hrough|FALL[-
>>> ]?THROUGH).*$,0..1))))"}
>>> +-config=MC3R1.R16.3,reports+={safe, "any_area(text(^(?s).*([fF]all[-
>>> ]?[tT]hrough|FALL[- ]?THROUGH).*$,0..1))"}
>>
>> This is not trivial to read. Can you document the exhaustive list of keywords
>> you are actually trying to deviate on? Also, did you consider to harmonize to
>> only a few?
>>
>>> +-doc_end
>>> +
>>>    #
>>>    # Series 20.
>>>    #
>>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>>> index 6e7c4f25b8..fecd2bae8e 100644
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -270,6 +270,30 @@ Deviations related to MISRA C:2012 Rules:
>>>           statements are deliberate.
>>>         - Project-wide deviation; tagged as `disapplied` for ECLAIR.
>>>    +   * - R16.3
>>> +     - Switch clauses ending with continue, goto, return statements are
>>> safe.
>>> +     - Tagged as `safe` for ECLAIR.
>>> +
>>> +   * - R16.3
>>> +     - Switch clauses not ending with the break statement are safe if a
>>> +       function/macro that does not give the control back is present.
>>> +     - Tagged as `safe` for ECLAIR, such functions/macros are:
>>> +        - __builtin_unreachable
>>> +        - do_unexpected_trap
>>> +        - fatal_trap
>>> +        - machine_halt
>>> +        - machine_restart
>>> +        - maybe_reboot
>>> +        - panic
>>> +        - BUG
>>
>> To me, it seems to be odd to deviate R16.3 by function. Some of those have an
>> attribute noreboot. Can this be used?
> 
> Just to clarify, I think Julien meant "noreturn" which is defined as
> __attribute__((__noreturn__))
> 
> I think we need to deviate by function, rather than using SAF, because
> we would have to use SAF in every switch rather than at the declaration
> of panic and friends. But if we could use noreturn, that would be
> awesome.
> 
> 
>>> +        - BUG_ON
>>
>> BUG_ON() can return if the condition is false. So it doesn't look correct to
>> deviate with the argument that the function doesn't give the control back...
> 
> +1
> 
> 
>>> +
>>> +   * - R16.3
>>> +     - Switch clauses not ending with the break statement are safe if an
>>> +       explicit comment or pseudo-keyword indicating the fallthrough
>>> intention
>>> +       is present.
>>> +     - Tagged as `safe` for ECLAIR.
>>> +
>>>       * - R20.7
>>>         - Code violating Rule 20.7 is safe when macro parameters are used:
>>>           (1) as function arguments;

Thank you for your suggestions,
I will formulate a new version of the deviation.

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:36:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:36:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651626.1017401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdeA-0002Ne-Sv; Mon, 11 Dec 2023 10:36:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651626.1017401; Mon, 11 Dec 2023 10:36:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdeA-0002NX-QK; Mon, 11 Dec 2023 10:36:22 +0000
Received: by outflank-mailman (input) for mailman id 651626;
 Mon, 11 Dec 2023 10: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=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCde9-0002NR-V4
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:36:22 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f5a2790-9811-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 11:36:20 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c26a45b2dso23199055e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 02:36:20 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 z20-20020a05600c0a1400b004064e3b94afsm14913456wmp.4.2023.12.11.02.36.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 02:36:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f5a2790-9811-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702290980; x=1702895780; 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=nZ3EwCVdHyuXAe1M4g8RAcJt6vKnd1KqgcMI4AEMUic=;
        b=GyGuAJAl9opUVb/ZD6t2w21ACkC3cN+RzRkNPyscalJt5K3lRO3p92RpJ4n5L8SOUZ
         vP5gqYp2fej3s3Xn/ZjA+5kjmiNZD567buM1QRb2H4pHFK65/auAXvkk9Wgv+SVJtyEO
         gTCvmjLkdSyF2dmyfxDc/9lqOcV5DiuJDWElw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702290980; x=1702895780;
        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=nZ3EwCVdHyuXAe1M4g8RAcJt6vKnd1KqgcMI4AEMUic=;
        b=HXsl1zpwWLE33l3xTAbDwrePIMsRkUhKalGlBNgSvVNxV+LownnzcW2Y8aow4K057R
         6gGRTGIlJIwBHusllY6aWrmt2AgWuEzxLxM1btMHiyjbOO6JqU3Qoc69Wml6LmV9oncS
         +cfLtTh6f9CQql/5W+QITYAKSpulNKemlpCaRezLlRvZk2yJENhZOsIZDaD3ZFTT6osR
         ObxYY/HTYhGPkJ28UYc53f7810Vg0IxPGH0a7NdZs99fV1OT5NEpnalk8DrWYJ71901M
         w/CS4tpYQ0yhISr3TtN72IklMn0M3w/b8+5ABrlOKZAOevuaXA/U5GGGMbtgRhslQvdg
         LSRQ==
X-Gm-Message-State: AOJu0YxWGiKokPXB76YpUpTT7U/8mxGfp+c5pm91Fg/RBtTpseUKpLPO
	yqNFBNpzTrpQayzkV6XA2vqJEw==
X-Google-Smtp-Source: AGHT+IFeSvTfSmelNG/LY3WwzHuntDzjek7gDxURTj8w4dLg8VtoZpdo02PVwrZQvT0HY130KjPQHw==
X-Received: by 2002:a05:600c:8607:b0:40c:2a2b:4ea with SMTP id ha7-20020a05600c860700b0040c2a2b04eamr1798201wmb.155.1702290979740;
        Mon, 11 Dec 2023 02:36:19 -0800 (PST)
Date: Mon, 11 Dec 2023 11:36:18 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
Message-ID: <ZXbmIoGhuTogWxZW@macbook>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-5-stewart.hildebrand@amd.com>
 <ZWmkh0Xeaynh43N7@macbook>
 <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop>
 <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop>
 <ZW8EkQLTwEEK6fXC@macbook>
 <alpine.DEB.2.22.394.2312051529500.110490@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2312051529500.110490@ubuntu-linux-20-04-desktop>

On Tue, Dec 05, 2023 at 06:34:35PM -0800, Stefano Stabellini wrote:
> On Tue, 5 Dec 2023, Roger Pau MonnÃ© wrote:
> > > > > I don't think we should enable IOREQ servers to handle PCI passthrough
> > > > > for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
> > > > > Passthrough can be handled by vPCI just fine. I think this should be a
> > > > > good anti-feature to have (a goal to explicitly not add this feature) to
> > > > > reduce complexity. Unless you see a specific usecase to add support for
> > > > > it?
> > > > 
> > > > There are passthrough devices (GPUs) that might require some extra
> > > > mediation on dom0 (like the Intel GVT-g thing) that would force the
> > > > usage of ioreqs to passthrough.
> > > 
> > > From an architectural perspective, I think it would be cleaner, simpler
> > > to maintain, and simpler to understand if Xen was the sole owner of the
> > > PCI Root Complex and PCI config space mediation (implemented with vPCI).
> > > IOREQ can be used for emulation and it works very well for that. At
> > > least in my mind, that makes things much simpler.
> > 
> > But IOREQ already has all the code to mediate accesses to the PCI
> > config space, and the interface to register separate servers for
> > different PCI devices.
> > 
> > We would then need to duplicate this internally for vPCI, so that vPCI
> > could forward accesses to IOREQ just for IOREQ to forward to yet a
> > different component?  Seems like a lot of duplication for no benefit.
> 
> [...] 
>  
> > Also, you seem to confabulate IOREQ with QEMU, while the latter is
> > indeed an user of IOREQ, I do see IOREQ as a simple resource mediator
> > inside of Xen, that has the ability to forward such accesses to
> > external emulators using an hypercall interface.
> 
> We have been using different terminologies until now. IOREQ could mean
> anything from the ABI interface, the emulator side (QEMU) or the
> hypervisor side (Xen). I am going to align with your wording and say:
> 
> IOREQ: only the IOREQ implementation in Xen (xen/common/ioreq.c)
> IOREQ server: QEMU or alternative
> 
> I think it is OK if we use IOREQ internally within Xen to hook vPCI with
> PCI config space accesses and emulation. I don't think it is a good idea
> to attempt to enable IOREQ servers (e.g. QEMU) to implement PCI
> Passthrough when vPCI is also enabled for the domain, at least
> initially.

I agree, it's perfectly fine to initially limit to vPCI passthrough
devices + QEMU emulated devices only for example.

I think it was mostly an issue with terminology then :).

> 
> > > I understand there are non-trivial cases, like virtual GPUs with
> > > hardware access, but I don't classify those as passthrough. That's
> > > because there isn't one device that gets fully assigned to the guest.
> > > Instead, there is an emulated device (hence IOREQ) with certain MMIO
> > > regions and interrupts that end up being directly mapped from real
> > > hardware.
> > > 
> > > So I think it is natural in those cases to use IOREQ and it is also
> > > natural to have QEMU remap MMIO/IRQs at runtime. From a vPCI
> > > perspective, I hope it will mostly look as if the device is assigned to
> > > Dom0. Even if it ends up being more complex than that, Rome wasn't
> > > built in one day, and I don't think we should try to solve this problem
> > > on day1 (as long as the interfaces are not stable interfaces).
> > 
> > I don't see IOREQ as dealing explicitly with emulation.  Yes, it does
> > allow for emulators to be implemented in user-space, but at the end
> > it's just an interface that allows forwarding accesses to certain
> > resources (for the case we are speaking about here, PCI config space)
> > to entities that registered as handlers.
> > 
> > vPCI OTOH just deals with a very specific resource (PCI config space)
> > and only allows internal handlers to be registered on a byte
> > granularity.
> > 
> > So your proposal would be to implement a hierarchy like the one on the
> > diagram below:
> > 
> >     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> >     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
> >     â””â”€â”€â”€â”€â”€â”€â”€â”¬â”˜ â””â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> >             â”‚   â”‚               â”‚
> >             â”‚   â”‚           â”Œâ”€â”€â”€â”´â”€â”€â”
> >             â”‚   â”‚           â”‚ vPCI â”‚
> >             â”‚   â”‚           â””â”€â”¬â”€â”€â”¬â”€â”˜
> >          â”Œâ”€â”€â”´â”€â”€â”€â”´â”            â”‚  â”‚
> >          â”‚ IOREQ â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜  â”‚
> >          â””â”€â”€â”€â”€â”¬â”€â”€â”˜               â”‚
> >               â”‚                  â”‚
> >  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”              â”Œâ”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> >  â”‚ IOREQ servers â”‚              â”‚ vPCI handlers â”‚
> >  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜              â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> 
> Yes
> 
> 
> > While what I'm proposing would look like:
> > 
> >     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> >     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
> >     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> >          â”‚          â”‚                â”‚
> >          â””â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”´â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> >                â”‚  IOREQ  â”‚
> >                â””â”€â”¬â”€â”€â”€â”€â”€â”¬â”€â”˜
> >                  â”‚     â”‚
> >  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”
> >  â”‚ IOREQ servers â”‚          â”‚ vPCI â”‚
> >  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜          â””â”€â”€â”€â”¬â”€â”€â”˜
> >                                 â”‚
> >                             â”Œâ”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> >                             â”‚ vPCI handlers â”‚
> >                             â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> 
> I don't have a major problem with this, but I find it less clear than
> the first one.
> 
> Let's say that all domains are PVH (or ARM guests). QEMU is running in
> Dom0. If QEMU does emulation, that's fine. If QEMU implements PCI
> Passthrough then QEMU uses libpci to do PCI config space reads and
> write, which go to the Linux kernel in Dom0, which ends up doing PCI
> config space reads and writes on the device, and that goes via vPCI in
> Xen (vPCI for Dom0). So actually vPCI is still present. It is a lot
> simpler to think that vPCI is in charge of all mediated PCI config space
> accesses rather than thinking that for the same device vPCI handles PCI
> config space accesses for Dom0 but not for DomU.

So most of the issue is again with terminology I think, you would
like to avoid even having to mention the word IOREQ for PVH domains
for example, which you could possibly do if vPCI trapped all accesses
to the PCI config space.

I would be fine with renaming that internal IOREQ component to
something else.  What I insist on having is a single component that
multiplexes access to all platform resources (IO ports, MMIO, PCI
config space), so that we can have a (kind of) unified interface to
register handlers.

> It is not my preference but I am OK to compromise and go ahead with the
> architecture you proposed but please let's keep IOREQ servers out of the
> PCI Passthrough picture at least initially.
> 
> 
> > I'm obviously biased, but I think the latter is cleaner, and allows
> > all resources to be arbitrated by the same component (IOREQ).
> > 
> > If the concern is about the IOREQ hypercall interface, it would be
> > fine to introduce an option that limit IOREQs to internal users
> > (vPCI) without supporting external IOREQ servers.
> > 
> > Think of IOREQ as a resource mediator inside of Xen, that just does
> > the PCI address decoding and forwards the access to the interested
> > party, either an external IOREQ server or vPCI.
> 
> The part about IOREQ (xen/common/ioreq.c) being a resource mediator is
> OKish.
> 
> I had many discussions over the years with various members of the larger
> open source embedded community (Linaro, etc.) and the problem is that
> when one says "IOREQ" typically people think of QEMU or other userspace
> emulators. They don't think of the Xen side of it. This becomes very
> relevant here because Xen is the only part of the system that is
> getting safety-certified and it is important to convey the message that
> nothing else in required to be safety-certified to have a fully working
> Xen system that supports PCI Passthrough.
> 
> In short, it is important that the community doesn't get the idea that
> QEMU needs to be safety-certified to have PCI Passthrough working
> correctly with Xen in a safety scenario.

Maybe we need to rename that internal IOREQ component to something
else, and then IOREQ would strictly be limited to the hypercall
interface + IOREQ servers.

Or maybe we just need more education/documentation around the
difference between the internal side of IOREQs vs IOREQ servers vs
QEMU.  See for example demu, which is an emulator for a PC-like
compatible system using IOREQ servers:

https://xenbits.xen.org/gitweb/?p=people/pauldu/demu.git;a=summary

>  
> > > > It's important that the interfaces we introduce are correct IMO,
> > > > because that ends up reflecting on the configuration options that we
> > > > expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
> > > > XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
> > > > gets placed there will ultimately influence how the option gets
> > > > exposed in xl/libxl, and the interface there is relevant to keep
> > > > stable for end user sanity.
> > > 
> > > I agree with you on the stable interfaces. The important part is not to
> > > introduce changes to stable interfaces that could limit us in the
> > > future. Specifically that includes xl and libxl, we need to be careful
> > > there. But I don't see a single per-domain vPCI enable/disable option as
> > > a problem. Let's say that in the future we have a mediated vGPU
> > > implementation: if it works together with vPCI then the per-domain vPCI
> > > option in libxl will be enabled (either explicitely or by default), if
> > > it doesn't then vPCI will be disabled (either explicitely or by the
> > > newer vGPU options.)
> > 
> > If vPCI is hooked into IOREQ there won't be a need anymore to register
> > the vPCI config space traps, as that would be done by IOREQ, and hence
> > vPCI managed devices could be registered at runtime with IOREQ.  IOW:
> > there won't be a need anymore to signal at domain creation whether
> > vPCI is intended to be used or not.
> 
> For safety, we have requirements to specify everything statically before
> boot so typically anything dynamic is a problem.
> 
> 
> > We would obviously need to enable IOREQ for all domains with IOMMU
> > enabled, as it would be IOREQ that register the PCI config space
> > handlers.
> 
> This bit might be OK
> 
> 
> > > For *unstable* interfaces (XEN_DOMCTL_assign_device) I would rather wait
> > > before adding more changes on top of them, not because I don't care
> > > about the mediated GPU problem (we do have something similar at AMD),
> > > but because I worry that if we try to change them now we might not do a
> > > good enough job. I would prefer to wait until we know more about the
> > > actual use case, ideally with code supporting it.
> > > 
> > > I think the difference in points of views comes from the fact that I see
> > > vPCI as the default, QEMU only as a limited peripheral emulator (or
> > > mediator for the vGPU case) but not in control. vPCI and QEMU are not
> > > equal in my view. vPCI is in charge and always present if not in very
> > > uncommon setups (even if we decide to hook it inside Xen by using
> > > internal IOREQ interfaces). QEMU might come and go.
> > 
> > Xen needs a single component that mediates accesses to resources,
> > whether that's IOREQ, or something else I don't really care that much.
> > Having vPCI mediate accesses to the PCI config space, and IOREQ to the
> > memory (and on x86 IO port) space just seems awfully complicated for
> > AFAICT no real benefit.
> >
> > > Now that I am writing this, I realize this is also why I wasn't too
> > > happy with the idea of hooking vPCI using IOREQ. It makes them look as
> > > if they are the same, while I don't they should be considered at the
> > > same level of priority, criticality, safety, integration in the system,
> > > etc.
> > 
> > I feel there are some fears with IOREQ from a safety PoV?  The code
> > that does the resource multiplexing is small, and as said above if
> > there are safety concerns with the hypercall interface it would be
> > fine to limit it's usage to internal handlers only.
> 
> Yes it is about safety. Everything within Xen will be safety-certified,
> hence usable in a safety critical scenario, everything outside of Xen
> might not.
> 
> The fear is not on the IOREQ itself because xen/common/ioreq.c is part
> of the certification scope. The fear is that IOREQ servers (e.g. QEMU)
> are somehow in the picture when we discuss safety architectures with PCI
> Passthrough, or that IOREQ servers could interfere with vPCI. By
> "interfere" I mean that QEMU running in dom0 (a deprivileged dom0) will
> be able to cause a malfunction in Xen vPCI.

For that purpose it doesn't matter much how IOREQs or vPCI interact,
as any (buggy) interaction could possibly allow IOREQ to cause
malfunctions to vPCI.

> Yes, limiting the hypercall interface would help in that regard because
> it would limit Xen exposure.

That would be fine IMO, it could even be a Kconfig option if that
better suits your needs.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:42:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:42:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651640.1017411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdji-0004uP-Jd; Mon, 11 Dec 2023 10:42:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651640.1017411; Mon, 11 Dec 2023 10:42:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdji-0004uI-H9; Mon, 11 Dec 2023 10:42:06 +0000
Received: by outflank-mailman (input) for mailman id 651640;
 Mon, 11 Dec 2023 10:42:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCdjh-0004uC-Kt
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:42:05 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ebe6dfb2-9811-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 11:42:03 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40c29f7b068so40711345e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 02:42:03 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 bd21-20020a05600c1f1500b0040c25abd724sm14974409wmb.9.2023.12.11.02.42.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 02:42:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ebe6dfb2-9811-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702291323; x=1702896123; 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=rWtIUHPFqn7WJxyEsBDvSeke1O52VvQsil65m7fexPg=;
        b=fLoqfSlmtrMEv3zej3MYoLhRM/BiFDygsqdeTBROnsWvNC5qfXxo07RY4Fbh0udmWO
         tefGijsKC6sMY85bCsMpyc8n0Gr1+0qpTSQfMaJYL7wDst8HkMJQyEnavlLsouq0vZUE
         wXoXwg5jbwqRcoTMNvDGOZICd5B5Bt8i0m8pg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702291323; x=1702896123;
        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=rWtIUHPFqn7WJxyEsBDvSeke1O52VvQsil65m7fexPg=;
        b=jgyNbb/kAVVypWHwzmRJQWTrZUIgLRQ15jwPeIELsGegtd1o+8v6O1XbFX54Pe+dZF
         zsbZ4VOVesheQFJBd3SEZuNXwzgsTTOgMfpvgXOPquHLCz4OW6s4vV8N2ieM6n9yNcgM
         0G6qMBxgSuO6K9HaJpRn4sFfjO2y+OjOdw5Y8FiH4ZHzaMpx6sAbrSoIRUpjLD/cXcMr
         VndccunG+qzxLC7PrsqxlmxGOOkCpC3VlUb0QmjfJc0AgFbr3cf3r9HWvLkSgCl5uyhi
         kx//+lOkQMLMx5fJLret6Uyaf+gPepOax+m+tViSfz3d+EpncYmd2vdVkbeEQ2li3fX9
         DGgw==
X-Gm-Message-State: AOJu0Ywsvxzg87nP6IQO6vvOxNrW0dg9J7kALzsUQUMjOJIz6OIUv1Yo
	pbCjNTOW5LY5D4+89Vq/7u031w==
X-Google-Smtp-Source: AGHT+IFpZBDaEqaKSYQ3iTDYpVLz3inS6PmeDBilIUZ7h6A3ZDb1rhs48hPPAK4F6W7yTO8OvH32WQ==
X-Received: by 2002:a05:600c:3011:b0:40b:5e59:b7d2 with SMTP id j17-20020a05600c301100b0040b5e59b7d2mr1932684wmh.175.1702291322956;
        Mon, 11 Dec 2023 02:42:02 -0800 (PST)
Date: Mon, 11 Dec 2023 11:42:01 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ross Lagerwall <ross.lagerwall@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: Re: [PATCH] livepatch-build-tools: allow livepatching version.c
Message-ID: <ZXbneT2XGoj8CtMW@macbook>
References: <20231205123403.63813-1-roger.pau@citrix.com>
 <824c50c3-ad3f-4d97-a3e8-5343564cbde5@citrix.com>
 <ZW86TOTFn3JZswUO@macbook>
 <CAG7k0Eq72v7Y5HN+dckAkiL4+RHHUOaVCMW0TGwKdWa9wOeTMA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAG7k0Eq72v7Y5HN+dckAkiL4+RHHUOaVCMW0TGwKdWa9wOeTMA@mail.gmail.com>

On Wed, Dec 06, 2023 at 12:11:39PM +0000, Ross Lagerwall wrote:
> On Tue, Dec 5, 2023 at 2:57â€¯PM Roger Pau MonnÃ© <roger.pau@citrix.com> wrote:
> >
> > On Tue, Dec 05, 2023 at 02:15:05PM +0000, Andrew Cooper wrote:
> > > On 05/12/2023 12:34 pm, Roger Pau Monne wrote:
> > > > Currently version.o is explicitly ignored as the file would change as a result
> > > > of the orignal and the patched build having possibly different dates and
> > > > times.
> > > >
> > > > Fix such difference by exporting the date and time from the build script, so
> > > > that both builds share the same build time.  This allows checking for changes
> > > > in version.c, since the rest of fields need to be manually changed in order to
> > > > produce different output.
> > > >
> > > > Setting XEN_BUILD_{DATE,TIME} as an environment variable has been supported
> > > > since before livepatch support was added to Xen, so it's safe to export those
> > > > variables unconditionally.
> > > >
> > > > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > > > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > > > ---
> > > >  livepatch-build | 4 ++++
> > > >  livepatch-gcc   | 2 --
> > > >  2 files changed, 4 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/livepatch-build b/livepatch-build
> > > > index e2ccce4f7fd7..f622683fc56c 100755
> > > > --- a/livepatch-build
> > > > +++ b/livepatch-build
> > > > @@ -417,6 +417,10 @@ if [ "${SKIP}" != "build" ]; then
> > > >
> > > >      export CROSS_COMPILE="${TOOLSDIR}/livepatch-gcc "
> > > >
> > > > +    # Force same date and time to prevent unwanted changes in version.c
> > > > +    export XEN_BUILD_DATE=`LC_ALL=C date`
> > > > +    export XEN_BUILD_TIME=`LC_ALL=C date +%T`
> > >
> > > Date is the one that goes wrong every time, but everything else in
> > > compile.h can go wrong in a way that causes version.o to change.
> >
> > I've attempted to reflect that in "since the rest of fields need to be
> > manually changed in order to produce different output".
> >
> > For those to change there must be some kind of environment change
> > between the original and the patched version build, and hence I don't
> > think that would be supported.
> 
> In general, yes. However, with this patch changes to the
> hostname/domain/username would result in version.o being marked
> as changed even though it is entirely fine to build the live patch
> on a different build host from the original Xen.

Keep in mind livepatch-build-tools builds it's base version of Xen and
then a patched version, and that's how the diff is performed.  For the
hostname/domain/username changes to appear on the livepatch payload
such change would need to happen in the muddle of the execution of
livepatch-build.

This change doesn't prevent building the original Xen on a different
host than the one building the livepatch, and the
hostname/domain/username changes won't be part of the livepatch
payload.

> >
> > > Ideally, the pristine source for building livepatches would include a
> > > generated compile.h, and livepatch would have a way to force no
> > > regeneration of the header.  But I've got no idea how nice that would be
> > > to arrange.
> >
> > Yes, no idea how fragile that would be either.  IMO the proposed
> > approach is not that bad.
> >
> > > That way, you're using the same details as the Xen being patched, rather
> > > than hoping that two identical different details will cancel out in the
> > > binary diff.
> >
> > Another option is to set all the env variables to disable any
> > build time probing.  However things like compiler or version changing
> > between the original and the patched builds likely point out to issues
> > elsewhere, unless it's intentional modification of the helpers.
> >
> > > > +
> > > >      echo "Perform full initial build with ${CPUS} CPU(s)..."
> > > >      build_full
> > > >
> > > > diff --git a/livepatch-gcc b/livepatch-gcc
> > > > index fcad80551aa0..e4cb6fb59029 100755
> > > > --- a/livepatch-gcc
> > > > +++ b/livepatch-gcc
> > > > @@ -33,7 +33,6 @@ if [[ "$TOOLCHAINCMD" =~ $GCC_RE ]] ; then
> > > >              obj=$2
> > > >              [[ $2 = */.tmp_*.o ]] && obj=${2/.tmp_/}
> > > >              case "$(basename $obj)" in
> > > > -            version.o|\
> > > >              debug.o|\
> > > >              check.o|\
> > >
> > > Tangential question.  check.o is excluded because it's a toolchain test,
> > > but any idea what debug.o is doing in this list?
> > >
> > > It can't possibly be the debug.c I've recently added to x86 (which we'll
> > > want to be able to livepatch), so I guess it's got something to do the
> > > ARM debug.S's, but I can't see anything in those that are worthy of
> > > exemption either...
> >
> > Hm, that comes from the first commit that imported the wrapper to the
> > repository, and at that point only x86 had livepatch support.
> >
> > I'm tempted to think this was inherited from the original xsplice
> > tooling, and so debug.o needs to be removed from the list.
> >
> 
> livepatch-build-tools is derived from the kpatch build tooling and
> debug.o has never been present there so it was added here for a
> reason. AFAICT the gdbsx code used to live in debug.o. I can't
> recall why it was being marked as changed unnecessarily but since
> that is no longer an issue and the code lives elsewhere, the debug.o
> lines can be dropped.

Will someone send a patch for this, or should I do it?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:46:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:46:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651646.1017421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdnm-0005Vn-4j; Mon, 11 Dec 2023 10:46:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651646.1017421; Mon, 11 Dec 2023 10:46:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCdnm-0005Vg-1y; Mon, 11 Dec 2023 10:46:18 +0000
Received: by outflank-mailman (input) for mailman id 651646;
 Mon, 11 Dec 2023 10:46:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCdnk-0005Uo-PD
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:46:16 +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 819dc5d1-9812-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 11:46:14 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40b27726369so45944615e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 02:46:14 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 ay35-20020a05600c1e2300b0040b2b38a1fasm12621649wmb.4.2023.12.11.02.46.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 02:46:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 819dc5d1-9812-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702291574; x=1702896374; 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=6kY1G0UYuo0Sln2JCppCjtL7Z6jveHyI9yioNk2/OZ4=;
        b=KpMmiHSg9Oc6zeao/L2Ih92mWDWiHF5NoKNCoRmhWQZjmrcbbwucEL1SsH4sdEJ0Lb
         bPUPPLvrTDVmGzGjHNyLgypEGj767lq3S5kFAqgZei+iDswSQbVUYuXMsQjAyff8cSRU
         WeW0Jxb7x92qQUBV/Ca7aOpXj7+LOKnDBMy5A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702291574; x=1702896374;
        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=6kY1G0UYuo0Sln2JCppCjtL7Z6jveHyI9yioNk2/OZ4=;
        b=VD8mim2dWs/nGhs2nnO25S8r21250B+CYKeFpoKNotiG7YWazHPB8rDqEzy77duLl6
         dUEMXfYp0n1wIzP9peaxJ3NFwW9sg9o4mZxr8Suz+ixJMvPrzLBko+J3iVI2A9oNdIKx
         mhjO8p7d6DaUo+MNwAclqrw5LCESuaCbdPQSsaaGfO/86sa0fcS1nHapGs0p/J5LTNFO
         FNimHtk0iAxIDnopMm2Raqp2xQKWf6lOA6qBB2biuJ7+bKWo8aXv8IKDFW9XgkdU6ayP
         hz7nZ8zZGyPIQkeHbnImBt8OvlvqQtH+lSUo3VpFGtyBk8HJetgw+9595LP3aSBhAMWs
         VFIQ==
X-Gm-Message-State: AOJu0YwLCyo+y9U6QxzDXRWpGjO2DeaPG07pmeIQG+o5XakBHvWLb6QV
	kzx0z1wKRH5dwC5K2rJXVlmKKg==
X-Google-Smtp-Source: AGHT+IEDo2gxs5YDFu8ldk07w7vKmQXLTB8IipVtNeDnGw3fUyRDbs6RtP1BYpA9RPCB3pu9jOAung==
X-Received: by 2002:a05:600c:2e42:b0:40c:314a:426 with SMTP id q2-20020a05600c2e4200b0040c314a0426mr2155657wmf.156.1702291574221;
        Mon, 11 Dec 2023 02:46:14 -0800 (PST)
Date: Mon, 11 Dec 2023 11:46:12 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Message-ID: <ZXbodK0CcT5U1i5V@macbook>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com>
 <ZW4L5Q4SMprtmbK-@macbook>
 <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com>
 <ZW8zyXkUJDKVt-HX@macbook>
 <2ded19f7-2ba6-4b1c-8752-a73894dcdae0@suse.com>
 <ZW9H1uE_6k3d-uWn@macbook>
 <21cdb9ad-81f5-497a-bfd8-ef6aea5906e2@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <21cdb9ad-81f5-497a-bfd8-ef6aea5906e2@suse.com>

On Wed, Dec 06, 2023 at 08:27:59AM +0100, Jan Beulich wrote:
> On 05.12.2023 16:55, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 05, 2023 at 03:59:13PM +0100, Jan Beulich wrote:
> >> On 05.12.2023 15:29, Roger Pau MonnÃ© wrote:
> >>> On Tue, Dec 05, 2023 at 09:52:31AM +0100, Jan Beulich wrote:
> >>>> On 04.12.2023 18:27, Roger Pau MonnÃ© wrote:
> >>>>> On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
> >>>>>> ..., at least as reasonably feasible without making a check hook
> >>>>>> mandatory (in particular strict vs relaxed/zero-extend length checking
> >>>>>> can't be done early this way).
> >>>>>>
> >>>>>> Note that only one of the two uses of hvm_load() is accompanied with
> >>>>>> hvm_check(). The other directly consumes hvm_save() output, which ought
> >>>>>> to be well-formed. This means that while input data related checks don't
> >>>>>> need repeating in the "load" function when already done by the "check"
> >>>>>> one (albeit assertions to this effect may be desirable), domain state
> >>>>>> related checks (e.g. has_xyz(d)) will be required in both places.
> >>>>>>
> >>>>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> >>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>>>>> ---
> >>>>>> Do we really need all the copying involved in use of _hvm_read_entry()
> >>>>>> (backing hvm_load_entry()? Zero-extending loads are likely easier to
> >>>>>> handle that way, but for strict loads all we gain is a reduced risk of
> >>>>>> unaligned accesses (compared to simply pointing into h->data[]).
> >>>>>
> >>>>> See below, but I wonder whether the checks could be performed as part
> >>>>> of hvm_load() without having to introduce a separate handler and loop
> >>>>> over the context entries.
> >>>>
> >>>> Specifically not. State loading (in the longer run) would better not fail
> >>>> once started. (Imo it should have been this way from the beginning.) Only
> >>>> then will the vCPU still be in a predictable state even after a possible
> >>>> error.
> >>>
> >>> Looking at the callers, does such predictable state after failure
> >>> matter?
> >>>
> >>> One caller is an hypercall used by the toolstack at domain create,
> >>> failing can just lead to the domain being destroyed.  The other caller
> >>> is vm fork, which will also lead to the fork being destroyed if
> >>> context loading fails.
> >>>
> >>> Maybe I'm overlooking something.
> >>
> >> You don't (I think), but existing callers necessarily have to behave the
> >> way you describe. From an abstract perspective, though, failed state
> >> loading would better allow a retry. And really I thought that when you
> >> suggested to split checking from loading, you had exactly that in mind.
> > 
> > Not really TBH, because I didn't think that much on a possible
> > implementation when proposing it.
> 
> But what else did you think of then in terms of separating checking from
> loading?

Just calling the check and load functions inside of the same loop was
my initial thought.

> > Maybe a suitable compromise would be to reset the state to the initial
> > (at domain build) one on failure?
> 
> That's an option, sure.
> 
> > I do dislike the duplicated loops, as it seems like a lot of duplicate
> > boilerplate code, and I have fears of it going out of sync.
> 
> There's a certain risk, yes, but that exists similarly with the save and
> load sides imo.

Hm, yes, albeit I have the feeling those are not as similar as the
proposed check and load loops.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 10:53:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 10:53:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651656.1017432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCduS-0007zT-RZ; Mon, 11 Dec 2023 10:53:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651656.1017432; Mon, 11 Dec 2023 10:53:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCduS-0007zM-No; Mon, 11 Dec 2023 10:53:12 +0000
Received: by outflank-mailman (input) for mailman id 651656;
 Mon, 11 Dec 2023 10:53:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O2vV=HW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rCduR-0007zG-R0
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 10:53:11 +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 796574c5-9813-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 11:53:10 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-33340c50af9so4470364f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 02:53:10 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 s3-20020a5d69c3000000b00333320cf08bsm8266848wrw.102.2023.12.11.02.53.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 02:53:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 796574c5-9813-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702291990; x=1702896790; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zEWUNOd33UC4iVxzhV82+8pYF6BWi1q92nNXLUOSfCk=;
        b=dYWzVE24pB0PDxTPBpw7XTQG5CGk+MKgvyb3CRJwPG9DWtVly7OWoqThorZpVlPy/i
         3RoWAqPQReEBdusX/Uo/PPDas1VVIol9Y0YbWGgqPzHHVt84TH/Uk9pa52Xg2Vx5N+Uv
         z5JubvxwnxHFt67CDSA/xkFO+GLZsjDNYEAfM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702291990; x=1702896790;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=zEWUNOd33UC4iVxzhV82+8pYF6BWi1q92nNXLUOSfCk=;
        b=jEC8pU2zd5V7tDk6z6mZiMiKEZ6IQMwdd7xxmJe92VAIUjPvBv4hf0csyup+q1ErIC
         t4pQ+ura1vzIzD7Ojuyld7bgGoc2w67UzzST3wthDKsvZAaMFKVbfbfVZpc9YVm0SVHC
         kimYwKZnWv2tWCUy4KC1MM68il7YRc/pqsMPViavy3Dk2ih9RGB5ozbT+gJF5OT5hGPH
         ZEe2azoOgF0hpXgscvq5apjst6bkgOhomkKUPlAD6zB4rhrVfBLpRBsiU+nEx5ip/PWc
         N8xge9BSWGlMLRfhymUfi7Q15GLUvj3FApxoHnqSlqC2//94W8ilxQCr6modanDvx8Mj
         TM0Q==
X-Gm-Message-State: AOJu0YwmUjiN9BctQk5wqKGOJsqh4zRnR/Gtj/lIo5/hpn5bjzQV4itO
	bcpIu0Aar0KNNMWVhj+Cgwy0Qg==
X-Google-Smtp-Source: AGHT+IEVn3GOQI2slLthNTmzm5vMcWPmlv8sapX3ueax3VWtjtVnqpu5TygEDMElTapWsbJW8vZ/XA==
X-Received: by 2002:a05:6000:11c4:b0:333:2fd2:3be2 with SMTP id i4-20020a05600011c400b003332fd23be2mr1729547wrx.155.1702291990313;
        Mon, 11 Dec 2023 02:53:10 -0800 (PST)
Message-ID: <1974e461-78f8-4a5c-90f2-d637ee3341e7@citrix.com>
Date: Mon, 11 Dec 2023 10:53:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] docs/misra/rules.rst: add more rules
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, roberto.bagnara@bugseng.com,
 federico.serafini@bugseng.com
Cc: jbeulich@suse.com, george.dunlap@citrix.com, julien@xen.org,
 bertrand.marquis@arm.com, roger.pau@citrix.com
References: <alpine.DEB.2.22.394.2312071609060.1265976@ubuntu-linux-20-04-desktop>
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.2312071609060.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08/12/2023 12:09 am, Stefano Stabellini wrote:
> Add the rules accepted in the last three MISRA C working group meetings.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
> Changes in v2:
> - remove 17.1 for now, to be a separate patch
> - add a clarification comment for 17.7
> ---
>  docs/misra/rules.rst | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 75921b9a34..2b570af0e0 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -462,6 +462,13 @@ maintainers if you want to suggest a change.
>  
>         while(0) and while(1) and alike are allowed.
>  
> +   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
> +     - Required
> +     - An unconditional break statement shall terminate every
> +       switch-clause
> +     - In addition to break, also other flow control statements such as
> +       continue, return, goto are allowed.

And what about fallthrough ?

$ git grep -iwe fallthrough -e "fall through" | wc -l
315

This is an under-estimate because there are other comment based
justifications too.

All are an explicit statement that a break, or other control flow
statement, is wrong in the given context.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 11:09:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 11:09:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651660.1017441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCeA0-0002RS-2s; Mon, 11 Dec 2023 11:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651660.1017441; Mon, 11 Dec 2023 11: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 1rCeA0-0002RL-0D; Mon, 11 Dec 2023 11:09:16 +0000
Received: by outflank-mailman (input) for mailman id 651660;
 Mon, 11 Dec 2023 11: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=+mB3=HW=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rCe9y-0002RF-T6
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 11:09:14 +0000
Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com
 [2607:f8b0:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b6f7d425-9815-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 12:09:13 +0100 (CET)
Received: by mail-pf1-x42c.google.com with SMTP id
 d2e1a72fcca58-6cebcf8a48aso3229950b3a.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 03:09:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6f7d425-9815-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702292952; x=1702897752; darn=lists.xenproject.org;
        h=content-transfer-encoding:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mqWUTbVxqnt2EnFAgR6jQeIbbhdWdHdB8JaK9SyMKW8=;
        b=KQloFy/jivSFerl5aHHzhyZ0tteNznamnP9I13xeaJAjNk4rXDIK9LVWrC+HbT4CSS
         FuZKq7ObFT5TADegRzu8lVnq3KzvAEjJpD5FKFT5vHSWApb3bn5cRIKV9oKxpI2FJbFv
         af1lbUa0zX8HW1pM9jGsXMc0XZ0vVfDhLlPyNir1apzsIdkaqWKe0qWzOOmAmWwvT+i3
         egShIMg5sGpgr2uZH/mjRjnxCzC541mGvsthOchLxdlwtU76HQttsOxXsJpcjtfJSkt1
         lyWHX3SxcZeEC1Z2XJd5fPKS1zPAgSvl4JAhNqd4vWZGFlI8cFOvwb/bDXxAKd0P6ZrB
         oNmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702292952; x=1702897752;
        h=content-transfer-encoding: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=mqWUTbVxqnt2EnFAgR6jQeIbbhdWdHdB8JaK9SyMKW8=;
        b=JmFVcS+HGEbVHvEVsUt5P6uzR3MZiocWnCKxHCcyqeGq3regK3VOFKUonNbOuDZ3nX
         umgon4Ah9adPrcglFL6jM/vJpdxJ42PyT0F2BHH7e5cF1mXl1j6Iax6HKIk5QMiheYhC
         sDu5JlI+EikMdTkW3jgidTyUTbdaS0yRgb0vZvh+7cA8sEwaD8Gjgv/iGbgpSDmz7rUh
         4/GcITyhTfUm91G7pn1/wt0A7BWAE6zAdk42vfjOilVSVfYkrcI2CGDabX1R7X3vgzsO
         FAMbnWO8y5q5Ek0Vr4QQkBXk7juhKt3pUTXnHDMKj1RROFvXXWzbwVDJfgbpqNPoW80u
         FtOg==
X-Gm-Message-State: AOJu0YxZpObKwaFvUCSGqNSKlZFgtui3FDBYlrXqvFsTd9AUCfDcowIL
	Y50Y8x+sv9zaPHTE4I5rrWdPqnewXITOzXnjXmu13zymWSo=
X-Google-Smtp-Source: AGHT+IHD6vwINitRzAVPUQ8shMq+5qXsJxiu0GGwUpYyUUb03OLWPkmnll3jpPBjwn5wVogdYIAIL2RImBH6xpqwTkc=
X-Received: by 2002:a05:6a00:aca:b0:6ce:55d1:8b70 with SMTP id
 c10-20020a056a000aca00b006ce55d18b70mr4167132pfl.44.1702292952031; Mon, 11
 Dec 2023 03:09:12 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
In-Reply-To: <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Mon, 11 Dec 2023 12:09:00 +0100
Message-ID: <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Le lun. 11 d=C3=A9c. 2023 =C3=A0 10:18, S=C3=A9bastien Chaumat <euidzero@gm=
ail.com> a =C3=A9crit :
>
> > On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
> > >> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interr=
upt
> > >
> > > Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
> > > ioapic-edge and IRQ9 to ioapic-level ?
> > >
> > > IR-IO-APIC    7-fasteoi   pinctrl_amd
> > > IR-IO-APIC    9-fasteoi   acpi
> > >
> > > to (xen 4.18.0)
> > >
> > > xen-pirq     -ioapic-edge  pinctrl_amd
> > > xen-pirq     -ioapic-level  acpi
> > >
> > > ?

This look similar to
https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/

This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
(so level type) while in xen it  is mapped to oapic-edge  instead of
oapic-level
as the SSDT indicates :

 Device (GPIO)

     {
         Name (_HID, "AMDI0030")  // _HID: Hardware ID
         Name (_CID, "AMDI0030")  // _CID: Compatible ID
         Name (_UID, Zero)  // _UID: Unique ID
         Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Setting=
s
         {
             Name (RBUF, ResourceTemplate ()
             {
                 Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, =
)
                 {
                     0x00000007,
           }
Any idea why ?

S=C3=A9bastien


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 11:20:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 11:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651664.1017452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCeKX-00063b-6Q; Mon, 11 Dec 2023 11:20:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651664.1017452; Mon, 11 Dec 2023 11: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 1rCeKX-00063U-2o; Mon, 11 Dec 2023 11:20:09 +0000
Received: by outflank-mailman (input) for mailman id 651664;
 Mon, 11 Dec 2023 11:20:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCeKV-00063O-O5
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 11:20:07 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c363efd-9817-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 12:20:06 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-336121f93e3so1003348f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 03:20:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 n16-20020a5d4210000000b003334898aafasm8334019wrq.11.2023.12.11.03.20.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 03:20:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c363efd-9817-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702293605; x=1702898405; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=PwB+kvMqUMkTzmz0uOSBDsL5YuLefs77D+QoxbBK3Jk=;
        b=MNsdZm+a8J6EkCVV4RKh0Je0k4aETtoI/VB4AS60/F0p6DLaZuSY/g6g9ghbTIXj6W
         s4a500ZsHokghzxXyeTaisUChh/7gBhgTF5DhiZZAmjuJqhJ4jUehf43zCXyiG1wtMir
         AiAO9OY61AlCZDNFZI4a8xaaGUrTD5O65THxs3P//9IedmA3LTqHTbU+osNJ9BTKMAq5
         4cl69sXDtUtbmer9tQog6hh8070otJyfrPU9j8ow3uQi0SaPI4GJ8o8+cFARy77Zgf/m
         XMMgmuY+8J+12jN84WTsGjphIAARKzEqQgGgU8nVPK1pYhx5yhaItAiwVyqrBtTue/lo
         SmeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702293605; x=1702898405;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=PwB+kvMqUMkTzmz0uOSBDsL5YuLefs77D+QoxbBK3Jk=;
        b=BA7bSVcH8BUJySaIuIKRC8H6s772wWY88KZZz9d5mJlNFm4CTWKEHGpW1v2jE/yoEW
         teJqHeva/X0dVAD668LMpipy2A+sgHiSo9DGxSfdr4gAjdjb9I/oiv/AQCr7Ak1C3gJk
         SechH5HRaYzu7kPE6M9R8mQAofWJY3fA+35RvgQ1krfKZwJgRYeZ4MR5yGo47gO9clqX
         egbgQCCjaBVbH9xhKCvus9IBQsekgjes/ckJC3TqXCmD4cWEkKiDNTbX8wCug1r7HFo5
         EK2/VWN/eX2e3yV67OcXdMktmaGC2t/Tr/qFHp3TWvmd0mNalqvGiH8UlxDROrDmRg5P
         yoUg==
X-Gm-Message-State: AOJu0YzeIj06EjqnforWDFDayiDKaOa5Dd3dwojRmh3zVgU1kZB74Han
	wBtdLog5ytY0UDwC3zvfqseA
X-Google-Smtp-Source: AGHT+IFxirBDjkNlierymWgbOpCSWD6GU22PMm8HVm6GVh7Zq6p8nLPax9K/xeG86NkpnSWtx3JUfg==
X-Received: by 2002:adf:f88a:0:b0:336:8f5:2e39 with SMTP id u10-20020adff88a000000b0033608f52e39mr2628497wrp.30.1702293605575;
        Mon, 11 Dec 2023 03:20:05 -0800 (PST)
Message-ID: <8ebe1be6-e082-4716-9da9-5534f9f84a97@suse.com>
Date: Mon, 11 Dec 2023 12:20:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] docs/misra/rules.rst: add more rules
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: george.dunlap@citrix.com, julien@xen.org, bertrand.marquis@arm.com,
 roger.pau@citrix.com, xen-devel@lists.xenproject.org,
 roberto.bagnara@bugseng.com, federico.serafini@bugseng.com
References: <alpine.DEB.2.22.394.2312071609060.1265976@ubuntu-linux-20-04-desktop>
 <1974e461-78f8-4a5c-90f2-d637ee3341e7@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1974e461-78f8-4a5c-90f2-d637ee3341e7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 11:53, Andrew Cooper wrote:
> On 08/12/2023 12:09 am, Stefano Stabellini wrote:
>> Add the rules accepted in the last three MISRA C working group meetings.
>>
>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>> ---
>> Changes in v2:
>> - remove 17.1 for now, to be a separate patch
>> - add a clarification comment for 17.7
>> ---
>>  docs/misra/rules.rst | 34 ++++++++++++++++++++++++++++++++++
>>  1 file changed, 34 insertions(+)
>>
>> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
>> index 75921b9a34..2b570af0e0 100644
>> --- a/docs/misra/rules.rst
>> +++ b/docs/misra/rules.rst
>> @@ -462,6 +462,13 @@ maintainers if you want to suggest a change.
>>  
>>         while(0) and while(1) and alike are allowed.
>>  
>> +   * - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
>> +     - Required
>> +     - An unconditional break statement shall terminate every
>> +       switch-clause
>> +     - In addition to break, also other flow control statements such as
>> +       continue, return, goto are allowed.
> 
> And what about fallthrough ?
> 
> $ git grep -iwe fallthrough -e "fall through" | wc -l
> 315
> 
> This is an under-estimate because there are other comment based
> justifications too.
> 
> All are an explicit statement that a break, or other control flow
> statement, is wrong in the given context.

But that's going to be documented in deviations.rst according to my
understanding.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 11:27:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 11:27:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651669.1017463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCeRu-0007JJ-Vj; Mon, 11 Dec 2023 11:27:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651669.1017463; Mon, 11 Dec 2023 11:27: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 1rCeRu-0007JC-R2; Mon, 11 Dec 2023 11:27:46 +0000
Received: by outflank-mailman (input) for mailman id 651669;
 Mon, 11 Dec 2023 11:27: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=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCeRt-0007J6-Jt
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 11:27:45 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4cf4f15e-9818-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 12:27:43 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3333224c7b9so3920219f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 03:27:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e17-20020adf9bd1000000b003334992c578sm8391754wrc.10.2023.12.11.03.27.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 03:27:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4cf4f15e-9818-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702294063; x=1702898863; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=9rXtPfcSJ64zkJwr34XMtBLEYaGZDgRPhGf8h2fliHM=;
        b=WnZr9mmC/gaRGArKu/qg6hqZ5tpj09rBfenZcdbsSl6E3blxTmUIzEzOygnU6DleR8
         BW89TbeR6J9+C39EAvpPL7OXV6f4vpXXxGQALol9lCIEp47x0u8oHtNkJLk1O9GdxB6+
         4KqmaqYJiUIYS8Rx9p1BnWNN02gy+QsL7nVtMrhTKP1txqpEAz6RTnC4UAHNxZALxvHP
         trqNDqTjANlg8bdpaUo7M2e0Grql0+Ziuwa8VggFURXWLrP7s73dWqiMTXtien2kCRye
         yXwSZ35PiZoE40KGQwJKe2OHIcpsYw/VKRvU3gSyV20CS/rlrcdpO6gZ58LwkwLMYikU
         icGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702294063; x=1702898863;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=9rXtPfcSJ64zkJwr34XMtBLEYaGZDgRPhGf8h2fliHM=;
        b=xTOrtOXcdvhlfuzlGSdGvme15bOgvELOtMPCTo7BnbZxFs1WDH+P9q6pNEr4zyDVBl
         dZiVnp0lQob8f1tzn7hLFOfn83abkPEI3HvxqCOpyxGgDP+8HwbReH8mjj6FFIN0OcLV
         QKqjbdxg0FE2BEBBiYUX6bATMevBjZ/HewtDQ2Sv0LdQ6Kry+T2ZPwF7V0kx4tkTpSTH
         8bDOLlhNNN/V9/b0yZSJRnsKhioUWRTbnrrGEXeCZ4LBz+hVH8MlXBLD/pqzT/LuK49l
         ee/WvMVBy8wmJKASCfnw1Pme8U8o7TVWLr8z7CZw5rVtfrRUrG99A4k+FnoPP4Ozed9q
         uZXg==
X-Gm-Message-State: AOJu0YypXE95TOJ8mKHHbDGvwJ6hKTxJJaRATd1TEvarmEdBQuWPe9Fz
	0RJFjkMyDhRvrIYX0wiTyU1VtbUPCY4KwJ07H891
X-Google-Smtp-Source: AGHT+IGgZgnvW1aXAGeKnvw3e6t3ylHT0xu8Gjx4ImjXBWXnJfcMdQaYp/68cms35BG6cKulunLxQQ==
X-Received: by 2002:adf:fd04:0:b0:332:e3f1:9656 with SMTP id e4-20020adffd04000000b00332e3f19656mr2127125wrr.35.1702294062914;
        Mon, 11 Dec 2023 03:27:42 -0800 (PST)
Message-ID: <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
Date: Mon, 11 Dec 2023 12:27:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
 <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
 <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
 <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
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: <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2023 12:09, SÃ©bastien Chaumat wrote:
> Le lun. 11 dÃ©c. 2023 Ã  10:18, SÃ©bastien Chaumat <euidzero@gmail.com> a Ã©crit :
>>
>>> On 05.12.2023 21:31, SÃ©bastien Chaumat wrote:
>>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
>>>>
>>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
>>>> ioapic-edge and IRQ9 to ioapic-level ?
>>>>
>>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
>>>> IR-IO-APIC    9-fasteoi   acpi
>>>>
>>>> to (xen 4.18.0)
>>>>
>>>> xen-pirq     -ioapic-edge  pinctrl_amd
>>>> xen-pirq     -ioapic-level  acpi
>>>>
>>>> ?
> 
> This look similar to
> https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
> 
> This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
> (so level type) while in xen it  is mapped to oapic-edge  instead of
> oapic-level
> as the SSDT indicates :
> 
>  Device (GPIO)
> 
>      {
>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
>          Name (_UID, Zero)  // _UID: Unique ID
>          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
>          {
>              Name (RBUF, ResourceTemplate ()
>              {
>                  Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
>                  {
>                      0x00000007,
>            }
> Any idea why ?

Information coming from AML is required to be handed down by Dom0 to Xen.
May want checking that (a) Dom0 properly does so and (b) Xen doesn't screw
up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this is
specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7 is
also the spurious vector. You may want to retry with the tip of the 4.17
branch (soon to become 4.17.3) - while it doesn't look very likely to me
that recent backports there were related, it may still be that they make
a difference.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 11:31:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 11:31:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651673.1017472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCeVI-0000qO-Dj; Mon, 11 Dec 2023 11:31:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651673.1017472; Mon, 11 Dec 2023 11:31:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCeVI-0000qH-9J; Mon, 11 Dec 2023 11:31:16 +0000
Received: by outflank-mailman (input) for mailman id 651673;
 Mon, 11 Dec 2023 11:31:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCeVH-0000o1-1H
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 11:31:15 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca149645-9818-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 12:31:13 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3360ae2392eso2656150f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 03:31:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 k18-20020a5d5192000000b0033339027c89sm8343295wrv.108.2023.12.11.03.31.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 03:31:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca149645-9818-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702294273; x=1702899073; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=83gXcqfV4M4Rq2MIDetw8tx4YogahfP23wLJtBN0HSU=;
        b=GnEdK9EPWMEodU/XHOGIH0HXJn5EOcKZKHF0Gzo6aQJD2RC/+8R+3nrdW6jwArxNUY
         AizM6YFFa5GuVUhpcQN3ZjqMml33TkYwoySTDjLO8eoq/1kZcw9ervUDzY9T+IYHq0Jr
         MixdO00JvQsXGEV5Nt2FnloEzic/F/IzYsxy3TdZybheIQGPM+HrYtAWUbYcMNnKnpAh
         z4NTWR5xAg4ZzkAwQaL1hw6HU3E1D1AY045MsHu0mDDRPK/rkIxI/EN/FBxcp+LucdzW
         0gcyOjs8gGuQlLv+vrkDQsUuPC8YAncRe4hq4JetmjPq36x4NYe/9Om2CAzrk0KBkawN
         nB5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702294273; x=1702899073;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=83gXcqfV4M4Rq2MIDetw8tx4YogahfP23wLJtBN0HSU=;
        b=U5cAW477u6SH803GFl4hfVcxwjvcAdEImLth52veHNO7WEjXq2Ofvc/9DfM43OxViF
         UhXX826N9W9sPmdpNh713uqyBWEZUCTRw00NSdZcGjOM/tANAXJm35D7713wzHcKfG1J
         zrBllumzagZxBQ88fHlkigE9SpL1ljAbYEnOllr/jY/MKOsXejBP7aCg8OYLtKDJZxbB
         s4O9kz+1Akb44RLE8kAdU8nTIFC8qJD+qcaouUokBGBvOkGUHL/S45mUvfR6uOQUf95h
         7KAuGrFgErE7ywCaIdQwn8YUN/9yX5DoEGbAFYVn4q/gCYWiqDxP0Jsbsqb6yjfumh6o
         ivYw==
X-Gm-Message-State: AOJu0YzLkl7M04oMcpm3ebmhsbQGY+vuD6erizMb/PbTv14sP5/wiT4L
	OLZRGFGYhmT3IN3qxCkXYtWo
X-Google-Smtp-Source: AGHT+IHj1Ig0fggHrT0UmiQeHJpklwRW630mVm9oIwLLaN0mwlHYQC9AB1hA1pcNShUN/QiDRy4HXw==
X-Received: by 2002:adf:ab10:0:b0:333:389b:4a2c with SMTP id q16-20020adfab10000000b00333389b4a2cmr1874350wrc.118.1702294273202;
        Mon, 11 Dec 2023 03:31:13 -0800 (PST)
Message-ID: <011bdf3f-6cbd-49e6-b1d8-10c77722664e@suse.com>
Date: Mon, 11 Dec 2023 12:31:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Content-Language: en-US
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" <xen-devel@lists.xenproject.org>,
 Wei Liu <wl@xen.org>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com> <ZW4L5Q4SMprtmbK-@macbook>
 <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com> <ZW8zyXkUJDKVt-HX@macbook>
 <2ded19f7-2ba6-4b1c-8752-a73894dcdae0@suse.com> <ZW9H1uE_6k3d-uWn@macbook>
 <21cdb9ad-81f5-497a-bfd8-ef6aea5906e2@suse.com> <ZXbodK0CcT5U1i5V@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXbodK0CcT5U1i5V@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2023 11:46, Roger Pau MonnÃ© wrote:
> On Wed, Dec 06, 2023 at 08:27:59AM +0100, Jan Beulich wrote:
>> On 05.12.2023 16:55, Roger Pau MonnÃ© wrote:
>>> On Tue, Dec 05, 2023 at 03:59:13PM +0100, Jan Beulich wrote:
>>>> On 05.12.2023 15:29, Roger Pau MonnÃ© wrote:
>>>>> On Tue, Dec 05, 2023 at 09:52:31AM +0100, Jan Beulich wrote:
>>>>>> On 04.12.2023 18:27, Roger Pau MonnÃ© wrote:
>>>>>>> On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
>>>>>>>> ..., at least as reasonably feasible without making a check hook
>>>>>>>> mandatory (in particular strict vs relaxed/zero-extend length checking
>>>>>>>> can't be done early this way).
>>>>>>>>
>>>>>>>> Note that only one of the two uses of hvm_load() is accompanied with
>>>>>>>> hvm_check(). The other directly consumes hvm_save() output, which ought
>>>>>>>> to be well-formed. This means that while input data related checks don't
>>>>>>>> need repeating in the "load" function when already done by the "check"
>>>>>>>> one (albeit assertions to this effect may be desirable), domain state
>>>>>>>> related checks (e.g. has_xyz(d)) will be required in both places.
>>>>>>>>
>>>>>>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>>>>>> ---
>>>>>>>> Do we really need all the copying involved in use of _hvm_read_entry()
>>>>>>>> (backing hvm_load_entry()? Zero-extending loads are likely easier to
>>>>>>>> handle that way, but for strict loads all we gain is a reduced risk of
>>>>>>>> unaligned accesses (compared to simply pointing into h->data[]).
>>>>>>>
>>>>>>> See below, but I wonder whether the checks could be performed as part
>>>>>>> of hvm_load() without having to introduce a separate handler and loop
>>>>>>> over the context entries.
>>>>>>
>>>>>> Specifically not. State loading (in the longer run) would better not fail
>>>>>> once started. (Imo it should have been this way from the beginning.) Only
>>>>>> then will the vCPU still be in a predictable state even after a possible
>>>>>> error.
>>>>>
>>>>> Looking at the callers, does such predictable state after failure
>>>>> matter?
>>>>>
>>>>> One caller is an hypercall used by the toolstack at domain create,
>>>>> failing can just lead to the domain being destroyed.  The other caller
>>>>> is vm fork, which will also lead to the fork being destroyed if
>>>>> context loading fails.
>>>>>
>>>>> Maybe I'm overlooking something.
>>>>
>>>> You don't (I think), but existing callers necessarily have to behave the
>>>> way you describe. From an abstract perspective, though, failed state
>>>> loading would better allow a retry. And really I thought that when you
>>>> suggested to split checking from loading, you had exactly that in mind.
>>>
>>> Not really TBH, because I didn't think that much on a possible
>>> implementation when proposing it.
>>
>> But what else did you think of then in terms of separating checking from
>> loading?
> 
> Just calling the check and load functions inside of the same loop was
> my initial thought.

Okay, I was meanwhile also guessing that this might have been what you
thought of. I can go that route, but I wouldn't want to make it "and", but
"or" then, depending on a new boolean parameter to be passed to hvm_load().
IOW I'd still like to do all checking before all loading (in the longer
run, that is i.e. after individual handlers have been adapted). Would that
be okay with you?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 11:36:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 11:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651676.1017482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCeaH-0002BT-0A; Mon, 11 Dec 2023 11:36:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651676.1017482; Mon, 11 Dec 2023 11:36: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 1rCeaG-0002BM-T2; Mon, 11 Dec 2023 11:36:24 +0000
Received: by outflank-mailman (input) for mailman id 651676;
 Mon, 11 Dec 2023 11:36: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 1rCeaF-0002BA-LL; Mon, 11 Dec 2023 11:36: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 1rCeaF-0002yC-Hq; Mon, 11 Dec 2023 11:36: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 1rCeaF-0006Hf-06; Mon, 11 Dec 2023 11:36:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCeaE-00076j-Vq; Mon, 11 Dec 2023 11:36: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=zxs0nRT/9OgV7x7o+dKamjUd8dQ/sx5Rb/0sbpeqxMM=; b=xCAgtBQoXgV3hSNqyidfW1/Y35
	Yz6GFNoAZsZoAutxgYnTXFtvWSkkArQmLDrPSFR2lbxAbcKCuRB5qZmMRnO80ih4msUoLk2NfxTVr
	8d4Q4ClrUq/4lkm/1n5nROB83t9F0vRJPXW0OUlwZ1/PpRciSMtgm2bHjHmAmyg2lahg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184086-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184086: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-libvirt: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-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2: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
X-Osstest-Versions-This:
    linux=a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 11:36:22 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 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

version targeted for testing:
 linux                a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    9 days
Failing since        183977  2023-12-03 00:12:06 Z    8 days   17 attempts
Testing same since   184086  2023-12-11 01:14:29 Z    0 days    1 attempts

------------------------------------------------------------
343 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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 12427 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 11:57:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 11:57:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651686.1017495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCeup-0007F3-RX; Mon, 11 Dec 2023 11:57:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651686.1017495; Mon, 11 Dec 2023 11:57:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCeup-0007Ew-O6; Mon, 11 Dec 2023 11:57:39 +0000
Received: by outflank-mailman (input) for mailman id 651686;
 Mon, 11 Dec 2023 11:57:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BS2A=HW=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rCeun-0007Eq-RR
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 11:57:38 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 7943a62b-981c-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 12:57:36 +0100 (CET)
Received: from mg.gitlab.com (26.226.74.34.bc.googleusercontent.com
 [34.74.226.26]) by
 e838de72377c with SMTP id 6576f92eec502225e0c8eafb (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Mon, 11 Dec 2023 11:57:34 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 7943a62b-981c-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702295854; x=1702303054; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=qiBvwPkN8aWOHRTzi9ZRWszlCQeQfOyyhd/EMdigVAM=;
 b=Uai4PlmxE30I1TSCioc8BdWXoSy2TIStHFTwjFPnC53q2rMfut6i6DRg1qajTsBtu7WJIhregwksPBzeBMkevxJjJB0OiXs/hs5+9q2p5kyHD57ZFVLc4eaMVQPlTZpTYsnmJb6zM2xkqV1LRVo3fIcynPwqsDiznNVvqOb3uBE=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Mon, 11 Dec 2023 11:57:34 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6576f92e63ce0_2c953942591cb@gitlab-sidekiq-catchall-v2-7fb69c6569-td78z.mail>
Subject: xen | Successful pipeline for staging | 14031315
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6576f92e59a18_2c95394259081";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1102441845
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6576f92e59a18_2c95394259081
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1102441845 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 14031315 ( https://gitlab.com/xen-project/xen/-/commit/1403131596fa77663708f6baa0fee8bf7b95eb5a )
Commit Message: x86/viridian: make build_assertions static

Thi...
Commit Author: Nicola Vetrini
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1102441845 ( https://gitlab.com/xen-project/xen/-/pipelines/1102441845 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 14031315</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1102441845 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/1403131596fa776637=
08f6baa0fee8bf7b95eb5a" style=3D"color: #3777b0; text-decoration: none;">=
14031315</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
x86/viridian: make build_assertions static

Thi...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/23d68b797e165570c641942285dfe06e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Nicola Vetrini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110244=
1845" style=3D"color: #3777b0; text-decoration: none;">#1102441845</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6576f92e59a18_2c95394259081--


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 12:23:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 12:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651731.1017515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfJo-0005SH-UE; Mon, 11 Dec 2023 12:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651731.1017515; Mon, 11 Dec 2023 12: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 1rCfJo-0005SA-RR; Mon, 11 Dec 2023 12:23:28 +0000
Received: by outflank-mailman (input) for mailman id 651731;
 Mon, 11 Dec 2023 12:23: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 1rCfJo-0005Ns-7E
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 12:23: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 1rCfJo-0003oL-4I; Mon, 11 Dec 2023 12:23:28 +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 1rCfJn-0001JH-RT; Mon, 11 Dec 2023 12:23:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=QmraDL7EiHJusNTBmKq404QcRHhqD9isCoOntnGhREE=; b=GKlSyZyKaUErUVPD3/b/wo3VRI
	Ea/Rg0Z7cfOrv8KgD7ghQWyKdv0s+nW3opDztPJxWuvaiRKtEpE1k0AFVPgkeiYND7hiX70isu5l4
	FsM38YbIgSBo7N8XEff+MvBosePnJCktGRQtIf2bvQeEyRBjgoC7OQCMc1ha/bM13EQo=;
From: Julien Grall <julien@xen.org>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	Julien Grall <jgrall@amazon.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 1/2] xen/x86: io_apic: Introduce a command line option to skip timer check
Date: Mon, 11 Dec 2023 12:23:21 +0000
Message-Id: <20231211122322.15815-2-julien@xen.org>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20231211122322.15815-1-julien@xen.org>
References: <20231211122322.15815-1-julien@xen.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Julien Grall <jgrall@amazon.com>

Currently, Xen will spend ~100ms to check if the timer works. If the
Admin knows their platform have a working timer, then it would be
handy to be able to bypass the check.

Introduce a command line option 'pit-irq-works' for this purpose.

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

---

Changelog since v1:
    - Rename the command line option. I went with pit-irq-works rather
      than timer-irq-works because Roger thought it would be better suited
    - Rework the command line description
---
 docs/misc/xen-command-line.pandoc | 11 +++++++++++
 xen/arch/x86/io_apic.c            | 11 +++++++++++
 2 files changed, 22 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 8e65f8bd18bf..c382b061b302 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2535,6 +2535,17 @@ pages) must also be specified via the tbuf_size parameter.
 ### tickle_one_idle_cpu
 > `= <boolean>`
 
+### pit-irq-works (x86)
+> `=<boolean>`
+
+> Default: `false`
+
+Disables the code which tests for broken timer IRQ sources. Enabling
+this option will reduce boot time on HW where the timer works properly.
+
+If the system is unstable when enabling the option, then it means you
+may have a broken HW and therefore the testing cannot be be skipped.
+
 ### timer_slop
 > `= <integer>`
 
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index d11c880544e6..238b6c1c2837 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -57,6 +57,14 @@ bool __initdata ioapic_ack_forced;
 int __read_mostly nr_ioapic_entries[MAX_IO_APICS];
 int __read_mostly nr_ioapics;
 
+/*
+ * The logic to check if the timer is working is expensive. So allow
+ * the admin to bypass it if they know their platform doesn't have
+ * a buggy timer.
+ */
+static bool __initdata pit_irq_works;
+boolean_param("pit-irq-works", pit_irq_works);
+
 /*
  * Rough estimation of how many shared IRQs there are, can
  * be changed anytime.
@@ -1502,6 +1510,9 @@ static int __init timer_irq_works(void)
 {
     unsigned long t1, flags;
 
+    if ( pit_irq_works )
+        return 1;
+
     t1 = ACCESS_ONCE(pit0_ticks);
 
     local_save_flags(flags);
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 12:23:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 12:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651732.1017524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfJq-0005hG-5E; Mon, 11 Dec 2023 12:23:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651732.1017524; Mon, 11 Dec 2023 12:23:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfJq-0005h7-2e; Mon, 11 Dec 2023 12:23:30 +0000
Received: by outflank-mailman (input) for mailman id 651732;
 Mon, 11 Dec 2023 12:23:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rCfJp-0005bX-AO
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 12:23:29 +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 1rCfJp-0003oZ-6F; Mon, 11 Dec 2023 12:23:29 +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 1rCfJo-0001JH-Uo; Mon, 11 Dec 2023 12:23:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=NOACs3hSf5sKsZ7DYPVi4JzNRj9JzZlqiodDxK0OPX8=; b=EA01PHDn8HByG6wWZ8jGzHOTUX
	XCWj3mgtucLQyaQglvRujJ7l7x1xPwTRPRDDr5yE6umdBm/hyJULEZRWXj/2pdIoARPdhVCu0Ady5
	b3BUJrCiZGz8ZYpYvVl57L4/y4skwStKOXBzU0AjiLjhwS50kCcCBZaVCEK1Gfx7g6/A=;
From: Julien Grall <julien@xen.org>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	Julien Grall <jgrall@amazon.com>,
	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>
Subject: [PATCH v2 2/2] xen/x86: ioapic: Bail out from timer_irq_works() as soon as possible
Date: Mon, 11 Dec 2023 12:23:22 +0000
Message-Id: <20231211122322.15815-3-julien@xen.org>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20231211122322.15815-1-julien@xen.org>
References: <20231211122322.15815-1-julien@xen.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Julien Grall <jgrall@amazon.com>

Currently timer_irq_works() will wait the full 100ms before checking
that pit0_ticks has been incremented at least 4 times.

However, the bulk of the BIOS/platform should not have a buggy timer.
So waiting for the full 100ms is a bit harsh.

Rework the logic to only wait until 100ms passed or we saw more than
4 ticks. So now, in the good case, this will reduce the wait time
to ~50ms.

Take the opportunity to change the prototype of timer_irq_works() to
return a bool rather than int (which was already acting as a bool because
only 0/1 could be returned).

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

---

Note that local_irq_restore() cannot be replaced with local_irq_disable()
because the function is not consistently called with IRQs off.

Changes in v2:
    - Return bool rather than int
    - Have a single return path
    - Use 'unsigned int' rather than 'unsigned long' for msec
---
 xen/arch/x86/io_apic.c | 39 ++++++++++++++++++++++++---------------
 1 file changed, 24 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 238b6c1c2837..c89fbed8d675 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1506,32 +1506,41 @@ static void __init setup_ioapic_ids_from_mpc(void)
  *	- if this function detects that timer IRQs are defunct, then we fall
  *	  back to ISA timer IRQs
  */
-static int __init timer_irq_works(void)
+static bool __init timer_irq_works(void)
 {
     unsigned long t1, flags;
+    /* Wait for maximum 10 ticks */
+    unsigned int msec = (10 * 1000) / HZ;
+    bool works = false;
 
     if ( pit_irq_works )
-        return 1;
+        return true;
 
     t1 = ACCESS_ONCE(pit0_ticks);
 
     local_save_flags(flags);
     local_irq_enable();
-    /* Let ten ticks pass... */
-    mdelay((10 * 1000) / HZ);
-    local_irq_restore(flags);
 
-    /*
-     * Expect a few ticks at least, to be sure some possible
-     * glue logic does not lock up after one or two first
-     * ticks in a non-ExtINT mode.  Also the local APIC
-     * might have cached one ExtINT interrupt.  Finally, at
-     * least one tick may be lost due to delays.
-     */
-    if ( (ACCESS_ONCE(pit0_ticks) - t1) > 4 )
-        return 1;
+    while ( msec-- )
+    {
+        mdelay(1);
+        /*
+         * Expect a few ticks at least, to be sure some possible
+         * glue logic does not lock up after one or two first
+         * ticks in a non-ExtINT mode.  Also the local APIC
+         * might have cached one ExtINT interrupt.  Finally, at
+         * least one tick may be lost due to delays.
+         */
+        if ( (ACCESS_ONCE(pit0_ticks) - t1) <= 4 )
+            continue;
 
-    return 0;
+        works = true;
+        break;
+    }
+
+    local_irq_restore(flags);
+
+    return works;
 }
 
 /*
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 12:23:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 12:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651730.1017504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfJn-0005DX-Ld; Mon, 11 Dec 2023 12:23:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651730.1017504; Mon, 11 Dec 2023 12:23:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfJn-0005DQ-J4; Mon, 11 Dec 2023 12:23:27 +0000
Received: by outflank-mailman (input) for mailman id 651730;
 Mon, 11 Dec 2023 12:23:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rCfJn-0005DK-4A
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 12:23:27 +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 1rCfJm-0003o9-Qw; Mon, 11 Dec 2023 12:23:26 +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 1rCfJm-0001JH-Hf; Mon, 11 Dec 2023 12:23:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=VZihDxXJcQXw/hVFKaFFEWZPmpJDY0TUUrOHUUSzBqI=; b=XJseB+
	9gSs84X1OTTObBDA2qghqP5DtQEC3STQ+Vk9t2gBWuGn9RdmmiyJuNlqBO5eCSCCwAnw6m0KXcPyM
	fCghblGF4aqLnDxFNr41D9lDaI7Tyw4GhA52VmuMKjWc1zFqlivFz8j3jigVIBZBne2rHZD7RRkaA
	BEDPcNcGcdU=;
From: Julien Grall <julien@xen.org>
To: xen-devel@lists.xenproject.org
Cc: julien@xen.org,
	Julien Grall <jgrall@amazon.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 0/2] xen/x86: Optimize timer_irq_works()
Date: Mon, 11 Dec 2023 12:23:20 +0000
Message-Id: <20231211122322.15815-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>

Hi all,

At the moment timer_irq_works() will always wait 100ms even with
enough ticks elapsed. This is a bit wasteful when most of the HW
should not be buggy.

The admin may also know that their HW is not buggy so they could
decide to skip the full 100ms. Also, looking at Linux changes, it
was pointed out that the timer_irq_works() may always return false
when using para-virtualized timer. It is not a problem for Xen,
but still it makes sense to provide an option to disable the timer
check.

Patch #1 of the series will add the command line option while patch
#2 will optimize timer_irq_works() for the good case.

Cheers,

Julien Grall (2):
  xen/x86: io_apic: Introduce a command line option to skip timer check
  xen/x86: ioapic: Bail out from timer_irq_works() as soon as possible

 docs/misc/xen-command-line.pandoc | 11 +++++++
 xen/arch/x86/io_apic.c            | 48 ++++++++++++++++++++++---------
 2 files changed, 45 insertions(+), 14 deletions(-)

-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 12:29:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 12:29:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651743.1017535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfPU-0006zf-QB; Mon, 11 Dec 2023 12:29:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651743.1017535; Mon, 11 Dec 2023 12: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 1rCfPU-0006zY-Md; Mon, 11 Dec 2023 12:29:20 +0000
Received: by outflank-mailman (input) for mailman id 651743;
 Mon, 11 Dec 2023 12:29:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rCfPT-0006wd-KA
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 12:29:19 +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 1rCfPS-0003vG-RE; Mon, 11 Dec 2023 12:29:18 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.158.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCfPS-0001Qv-KK; Mon, 11 Dec 2023 12:29:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ykW1jDpHYxlGZaHTT9jjzf1UAXZ/XYtuew7JJT2/LRs=; b=145XBUkpuHXTb6+u4TLOEmrbyW
	hgyIsZRn6C7dkGIpH8MQeiWAubLx1H4kG8dFMS/a15RhnJyYtcy7gMnfBaOehr0XP52F3L+BTYGCz
	X8rBUcfhjdAaN+Y90sF4M81BboQ2P24IYSWsSihOPgsba4nFHn0hZMArKtmFpG6Z57GU=;
Message-ID: <e86f46bd-b404-4feb-82f5-90c52837e169@xen.org>
Date: Mon, 11 Dec 2023 12:29:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 3/7] xen/arm: address MISRA C:2012 Rule 2.1
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.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.1702283415.git.nicola.vetrini@bugseng.com>
 <4c0d38f2b707afa9aed1853a99d286fa2424fb9d.1702283415.git.nicola.vetrini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <4c0d38f2b707afa9aed1853a99d286fa2424fb9d.1702283415.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 11/12/2023 10:30, Nicola Vetrini wrote:
> The "return 1;" statements at the end of some cases in the switch
> of function 'vgic_v3_its_mmio_write' in 'vcig-v3-its.c' cause the
> unreachability of the "return 1;" statement after the switch, thus
> violating MISRA C:2012 Rule 2.1:
> "A project shall not contain unreachable code".
> 
> The same is true for the switch in 'arch_memory_op' from
> 'xen/arch/arm/mm.c'.

For both cases, I actually much prefer the "return" version in the 
cases. In particular for the vGIC emulation the switch is quite large 
and it would not be trivial to know what happens after the break.

IOW, I would much prefer if we remove the "return ..." outside of the 
switch.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 12:32:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 12:32:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651746.1017545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfSP-0000zm-7K; Mon, 11 Dec 2023 12:32:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651746.1017545; Mon, 11 Dec 2023 12:32:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfSP-0000zf-3o; Mon, 11 Dec 2023 12:32:21 +0000
Received: by outflank-mailman (input) for mailman id 651746;
 Mon, 11 Dec 2023 12:32:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rCfSN-0000zS-Fp
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 12:32:19 +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 1rCfSM-0003zT-Sl; Mon, 11 Dec 2023 12:32:18 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.158.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCfSM-0001Vv-Ml; Mon, 11 Dec 2023 12:32:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=Xrbc35ijAfgsBfLar5cNbTxS8fJ70VWS4yqrCD7nU6c=; b=J3oEiMb9VHTwqlKMuT9SSvOiqy
	gMFtz0gb7V9uIxo+xceaMuabVORZKX0g+vfSdXVrS9IUxz7ddmNMGmx+1zC8aoI2hX9k6LnLm7bMg
	pWsgCDdTXBLxqhLaJFYkNFEpWje1+FVCn9ayZQH/qUflLOGyXqx/nT4MT+Ufrrr8DZE4=;
Message-ID: <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
Date: Mon, 11 Dec 2023 12:32:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.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.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 11/12/2023 10:30, Nicola Vetrini wrote:
> The branches of the switch after a call to 'do_unexpected_trap'
> cannot return, but there is one path that may return, hence
> only some clauses are marked with ASSERT_UNREACHABLE().
I don't understand why this is necessary. The code should never be 
reachable because do_unexpected_trap() is a noreturn().

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 12:36:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 12:36:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651751.1017555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfWW-0001ah-NT; Mon, 11 Dec 2023 12:36:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651751.1017555; Mon, 11 Dec 2023 12: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 1rCfWW-0001aa-Kc; Mon, 11 Dec 2023 12:36:36 +0000
Received: by outflank-mailman (input) for mailman id 651751;
 Mon, 11 Dec 2023 12:36: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 1rCfWV-0001aU-VL
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 12:36: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 1rCfWU-00044I-Rp; Mon, 11 Dec 2023 12:36:34 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.158.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCfWU-0001z1-L7; Mon, 11 Dec 2023 12:36:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=EJy6cs2n5b8tAIp35/8E/2urinzj/e4mDKA61wAq8No=; b=UnfYjX/1YVWPIih0X3Us5RkKNF
	rVKPhGKvrA8cfiddSqiI+u540FJqTEixFjufdXUfFNvqPaUwgbza/FA+UE/Bl4qfvkA/QPeAzSu6c
	OfCAGHmwQvLy6o4+CEr9THGLfoEjSlMKZIu5QGdRXGcy/zU8NvqQPmfXcV75A5Euckls=;
Message-ID: <d7d195e0-46c6-4be1-9711-4228b3b77eac@xen.org>
Date: Mon, 11 Dec 2023 12:36:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012
 Rule 16.3
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>
References: <4fa08aaed77d2b68db39ce51beef29820f1ba9b0.1701940034.git.federico.serafini@bugseng.com>
 <866ae09f-8e21-4f1b-a82e-8b72cc0f34e8@xen.org>
 <alpine.DEB.2.22.394.2312071628130.1265976@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312071628130.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 08/12/2023 00:30, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Julien Grall wrote:
>> Hi Federico,
>>
>> On 07/12/2023 09:08, Federico Serafini wrote:
>>> MISRA C:2012 Rule 16.3 states that an unconditional break statement
>>> shall terminate every switch-clause.
>>>
>>> Update ECLAIR configuration to take into account:
>>> - continue, goto, return statements;
>>> - functions and macros that do not give the control back;
>>> - fallthrough comments and pseudo-keywords.
>>>
>>> Update docs/misra/deviations.rst accordingly.
>>>
>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>> ---
>>>    .../eclair_analysis/ECLAIR/deviations.ecl     | 18 ++++++++++++++
>>>    docs/misra/deviations.rst                     | 24 +++++++++++++++++++
>>>    2 files changed, 42 insertions(+)
>>
>> It would be good that this is depending on to be accepted:
>>
>> https://lore.kernel.org/alpine.DEB.2.22.394.2312051859440.110490@ubuntu-linux-20-04-desktop.
>>
>>>
>>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> index b0c79741b5..df0b58a010 100644
>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> @@ -321,6 +321,24 @@ statements are deliberate"
>>>    -config=MC3R1.R14.3,statements={deliberate ,
>>> "wrapped(any(),node(if_stmt))" }
>>>    -doc_end
>>>    +#
>>> +# Series 16.
>>> +#
>>> +
>>> +-doc_begin="Switch clauses ending with continue, goto, return statements
>>> are safe."
>>> +-config=MC3R1.R16.3,terminals+={safe,
>>> "node(continue_stmt||goto_stmt||return_stmt)"}
>>> +-doc_end
>>> +
>>> +-doc_begin="Switch clauses not ending with the break statement are safe if
>>> a function/macro that does not give the control back is present."
>>> +-config=MC3R1.R16.3,terminals+={safe,
>>> "call(decl(name(__builtin_unreachable||do_unexpected_trap||fatal_trap||machine_halt||machine_restart||maybe_reboot||panic)))"}
>>> +-config=MC3R1.R16.3,terminals+={safe,"macro(name(BUG||BUG_ON))"}
>>> +-doc_end
>>> +
>>> +-doc_begin="Switch clauses not ending with the break statement are safe if
>>> an explicit comment or pseudo-keyword indicating the fallthrough intention
>>> is present."
>>> +-config=MC3R1.R16.3,reports+={safe,
>>> "any_area(any_loc(any_exp(text(^(?s).*([fF]all[- ]?[tT]hrough|FALL[-
>>> ]?THROUGH).*$,0..1))))"}
>>> +-config=MC3R1.R16.3,reports+={safe, "any_area(text(^(?s).*([fF]all[-
>>> ]?[tT]hrough|FALL[- ]?THROUGH).*$,0..1))"}
>>
>> This is not trivial to read. Can you document the exhaustive list of keywords
>> you are actually trying to deviate on? Also, did you consider to harmonize to
>> only a few?
>>
>>> +-doc_end
>>> +
>>>    #
>>>    # Series 20.
>>>    #
>>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>>> index 6e7c4f25b8..fecd2bae8e 100644
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -270,6 +270,30 @@ Deviations related to MISRA C:2012 Rules:
>>>           statements are deliberate.
>>>         - Project-wide deviation; tagged as `disapplied` for ECLAIR.
>>>    +   * - R16.3
>>> +     - Switch clauses ending with continue, goto, return statements are
>>> safe.
>>> +     - Tagged as `safe` for ECLAIR.
>>> +
>>> +   * - R16.3
>>> +     - Switch clauses not ending with the break statement are safe if a
>>> +       function/macro that does not give the control back is present.
>>> +     - Tagged as `safe` for ECLAIR, such functions/macros are:
>>> +        - __builtin_unreachable
>>> +        - do_unexpected_trap
>>> +        - fatal_trap
>>> +        - machine_halt
>>> +        - machine_restart
>>> +        - maybe_reboot
>>> +        - panic
>>> +        - BUG
>>
>> To me, it seems to be odd to deviate R16.3 by function. Some of those have an
>> attribute noreboot. Can this be used?
> 
> Just to clarify, I think Julien meant "noreturn" which is defined as
> __attribute__((__noreturn__))

Whoops yes.

> 
> I think we need to deviate by function, rather than using SAF, because
> we would have to use SAF in every switch rather than at the declaration
> of panic and friends. But if we could use noreturn, that would be
> awesome.

In general, I really dislike deviate by name because this is assuming 
that the functions name are uniq across all the architecture. For 
instance, fatal_trap() is x86 specific whilst do_unexpected_trap() is 
arm specific.

In this case, the name of the function clearly indicates that they are 
never expected to return. So we are ok.

But I would strongly prefer if we rely on property attribute rather than 
names whenever it is possible.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 12:40:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 12:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651755.1017565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfa6-0003TQ-5p; Mon, 11 Dec 2023 12:40:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651755.1017565; Mon, 11 Dec 2023 12:40: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 1rCfa6-0003TJ-2Q; Mon, 11 Dec 2023 12:40:18 +0000
Received: by outflank-mailman (input) for mailman id 651755;
 Mon, 11 Dec 2023 12:40: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=CVKS=HW=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1rCfa4-0003Rr-Vx
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 12:40:17 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2060d.outbound.protection.outlook.com
 [2a01:111:f400:7ea9::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6dd71adc-9822-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 13:40:14 +0100 (CET)
Received: from SN6PR12MB2621.namprd12.prod.outlook.com (2603:10b6:805:73::15)
 by BL1PR12MB5304.namprd12.prod.outlook.com (2603:10b6:208:314::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec
 2023 12:40:07 +0000
Received: from SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1]) by SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1%7]) with mapi id 15.20.7068.031; Mon, 11 Dec 2023
 12: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>
X-Inumbo-ID: 6dd71adc-9822-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=LGS5C2rj6qhDNU283apUCPxlbDfd3uUPX1kQV1rjSXlZGEImHHc+CkYSgbdvIEg9StriWvuirgxz/17eWDVKTPXogRqhkmqkZ1NsMpMmIiZRiZl1Ne+2mNssXlWapazH4RNnCpqtcLLEDvcaK/WvvnrfurFN39DGNbBxTD3tXKsZFuMsbyNLTruSlXsLN89e72ACS24SwCcOfngOVcipbUjQEbdf6/PAaM0NBwSaM769fzQ1Y1AcuYBrvxHbnhjxXjoCeZ/PaPcu6zMTu10SPeo185T3CMh5kTU9bG2/HjzERoPMBuzGARbhXa6b9V1DkpkODhw/00EGXJ376V/5sA==
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=3XvMWXGDIju2aE70mBmpg28lhn/pGGvwqyowzgFqJN4=;
 b=BVlh7ZLrWI7C4fnT1IwbSUY2Hr+UfU04vmrUFylkxrpgF97vR6Me5qCTyY8LhdcN3gPDIh2BMGmEtVlTtdLmbvvp9eW1Tl38d9LIWtWw+yebBw2pYDmtLufO2TS38S7eaTc8fd0ztYINLub7F37KgEGvv/w2Pd0cGSXnVILaiL0Pg3Fp2HLpxhruMPXGJrqRemrbNc/iG0hbJWKG2vBFJKth9c2/XHLJM+9wkYErd7VOqbwHokrIEonWGMvJ/oJXmCkO8Fhrl0NdLugQqg9x5l/lPcS2BCrjjEvvtMLGLLbC2ob951r55TYxWT1QdR8Wa3gZCAB+iAxx4845GgBsFA==
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=3XvMWXGDIju2aE70mBmpg28lhn/pGGvwqyowzgFqJN4=;
 b=AOaJkZIsqdURetmYJnhXWhuq+8gWJ8h1bOY4hOaBOFJMkWBOR9rvMyxemPpQ4gMlaeNKtemwxGuV+yDhXR/gTn7yIKIUAFQ4mkUMyngVoncHdO+v8XEK8HgXHTelD1B0T+zwr7u0BT5Gbqm/awN2HhbmrMYZIBgDCHD4gohqBhI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <fe06b322-4506-43e8-ac6f-16db49dea45f@amd.com>
Date: Mon, 11 Dec 2023 12:40:01 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Cc: Michal Orzel <michal.orzel@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, stefano.stabellini@amd.com,
 bertrand.marquis@arm.com, Volodymyr_Babchuk@epam.com,
 xen-devel@lists.xenproject.org
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com>
 <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org>
 <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com>
 <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org>
 <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org>
 <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com>
 <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org>
 <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com>
 <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
 <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org>
 <alpine.DEB.2.22.394.2312051503060.110490@ubuntu-linux-20-04-desktop>
 <a4c43652-1fa6-4b42-b751-582cfd6324fe@xen.org>
 <alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop>
 <797e8621-e12e-4d5e-9c8c-4e3ece08009b@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <797e8621-e12e-4d5e-9c8c-4e3ece08009b@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0489.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13a::14) To SN6PR12MB2621.namprd12.prod.outlook.com
 (2603:10b6:805:73::15)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN6PR12MB2621:EE_|BL1PR12MB5304:EE_
X-MS-Office365-Filtering-Correlation-Id: 537e0fe7-8b61-437d-d466-08dbfa464e48
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	OJHGhAvTzut1awkkodsAS+okMSy7qt4nDrgJURkDOcVTg7rizO50zUHyvTN9khcu/9zuLgRhX54wC6uFMzSe4Ot9KUA/DmVZZQt68FuBx/ym3E97m8OVfIbNCS0ux/F90i2Y8+LIjCQQbmISPo5ImzwEwp0a5JsfJCrvWf2HxpgfX+jV/Xa1HIINN2Y//DYh+jgDxIzC8EjKYpfFRuHjmL+dHmJ0vSEtbFqdQAXSMYpIuxa7ivKSAyjxTJBiU8cl+5XdOj+BAzjeZT6q/945B7e4V0UTBHexuJoBRWJvK3TJJp/r/OL/ImEAcNEzi8eJ16tPWbxUG7Ttqu0hyxTYjc9J3MLyRumPRb4VA+6cEpzHAqy8IdV3Khvlfp9nPsBsNeZ8xgoHNWaI+4941cFHlSana3Cx3zfgt3xdisLyxWN+xDbmX3uf+/3euv0cK1epQyTh9JMLwUxwkVGiCtRGA3zRPVDg3u4jP3crQBoF4SvlfsLWT2JWs1puFstQmOM+MNQoTebUZWqIx/p7qbpGljRjbtMzCmWzp/KT7HH1HhSbQ8P0lh0lq+0d51di6tlMjvLfKXeenCsmQ8C4sfuz0DGSjEZID6YQR8CXWf6mrLL9ZqmCS57oskZzJCGWBRwk/e0PVCNtjTHeKpnACVRz6A==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR12MB2621.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(346002)(136003)(376002)(39860400002)(230922051799003)(64100799003)(1800799012)(451199024)(186009)(6506007)(6512007)(6666004)(2906002)(54906003)(66476007)(66556008)(66946007)(53546011)(38100700002)(31696002)(36756003)(8936002)(4326008)(8676002)(316002)(5660300002)(31686004)(110136005)(6486002)(478600001)(41300700001)(2616005)(26005)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YjZmaUY2a01vR21NckhvZENSMWpqdVBISFdEYTNvNWh2Qk1GRWh0eVdCZmZ0?=
 =?utf-8?B?VGlHRUVOd3d2Q1IwQ2EyQVNhZkp6dEhRMFIya3dCbVhRampsNUZLY1VWUXdV?=
 =?utf-8?B?YmFQaHErd3d5ellENnIvSjkwMzNRV2JVYjh4dDBudEY3OWdKRFBqb1RUWE1x?=
 =?utf-8?B?WjBUdTdtZXRIQ3kxT25ybC8xZjQ3Z2t3ZExxa21hUjVnNGNiWVdOejRqb0w5?=
 =?utf-8?B?L1ZDeEQ0RXk1azZtRkYwb0tRbFVWZnRNTTNFQlJKczJTMkRNZitYQm5ZUjEz?=
 =?utf-8?B?eDlMbUJqT0xoOEVLM08wbXMxZmhVZTVKbWZjVVRRNmZoRktwODBITG5mRGJz?=
 =?utf-8?B?Z0xodU5WYVZDbHlwYTRZc0QzNExsREJDOXZIOWxMSFVHT1FQT3AyUjQ2UENY?=
 =?utf-8?B?RS84VER0eXZZZXlabTVFNDBYN0NqTmlRdXhSQTNoZjNUMEs3bXVRcTAvM2hI?=
 =?utf-8?B?QXpYT1ZzSWJhMlVuRm1ZejJTdmo2VXBGVmlmdWFhZEc3RXdLYnNjUmFpSG12?=
 =?utf-8?B?VjQzTkJRRXE1ZnR3RVVZREtEaE5YZGcrdVZkNkFHaG9WZ2xsUUdMSWJIYjRX?=
 =?utf-8?B?WEZLdCtudjVVUnpnV3pwZ1FqNmpremU4Zk9paUQ1UzFadUxzUFpzT3VKUnVR?=
 =?utf-8?B?b3BHeklxSlNDdy9lcUhFeGlBZ0w0ZTQ0Y2tJbUQwUkdoN3k0UlNmQit2cUdH?=
 =?utf-8?B?MjBLZEw1NldCRXBxRkc2L1BJWWVYWFRWMzkvak55eklveEt0aVppYVNYYml6?=
 =?utf-8?B?aG12NTJmbis1THYwQk5Md3R0UEZ0c1hpSmF3a2hJOExKWGxhakt4WDl6Q0I4?=
 =?utf-8?B?UkIyNHQxZXFyVjcxYnJvS1F3U3ZmN2w2bEdKcXRQcnk2RjJyVEVWWXNaaDdW?=
 =?utf-8?B?ZXZzTnJsa1RpRE5LVWhFRnQ0a09xMEVTWllvbXBSWTZxZGNTVlMvOE9FMlpw?=
 =?utf-8?B?RHFCa1U3bTJtL1BrTmZMYmJJUVo5M0JmQUlYMWxwb0N6YWtaWFdZMUFYUEtk?=
 =?utf-8?B?STVVSnhMN01IeUw0RnNoY3FnWmlKekRxMUNtVGcrZS9xT1lCWmRqbjZVWjRJ?=
 =?utf-8?B?NnJLcTZkblVGd3RDL1Nlb1kzNUNkRnZKblV0L2pjanVOQm9FdTg0aTN4d3g4?=
 =?utf-8?B?ODV0SlpXbGhuUGQrbUhhZ2lEMXBMekdTRDZSY29XOEE5clQ4VDNsZG1WSmRD?=
 =?utf-8?B?cFFheHF4dGV2a0d3R0xmMlJ4QUpFM0tDTmgwcG15ZHpTUzV5eTBqTC92RXFr?=
 =?utf-8?B?MkNOVzA4NnE4YnVZRHJac0w2eVFBN1NkUnRGUW1ublJjZUlQZkE0UUEzMTFl?=
 =?utf-8?B?MlJxSXFPdzd1YVRmQ0xJcXNxVnZYUTUreDc4ZDRrVytZNnVJV0Q0MXpENTR3?=
 =?utf-8?B?L2t5UFh1SUhLMy9QbjRCSVhOOE9ISzhYbGpMend3VmxpWS9zeXl2MjNmYWlM?=
 =?utf-8?B?b3V5Tm0zMWxjWjFITW5NelVSVEtKb3pBY0ZBQi9pcjk2RWdib1A5WFNISXNO?=
 =?utf-8?B?YlNxUzlwb2srUldMNDIzRm5pKzVQL0VEeEpDamI4L0E3VEQvVFBMN09MMlZF?=
 =?utf-8?B?Y3FOWUdySEROb1dFNXBGV2FCS05DNWdNTStrUTZDd2NDMDMwKzdtNW14OFk5?=
 =?utf-8?B?ZHB0c0hnRUVydGY0ODVyeVh0N2dUK0QzZmxsczA1eGxGcmRnV2xXZ0pEejgr?=
 =?utf-8?B?TmhIdUNueG9FV21uSjk5c0ZVVnZsaUZGeEZuOWxQbGNJWGczQ2t3VGlTczh2?=
 =?utf-8?B?VUZjYU5MdGFHSHhyRy82c0FXUEx1TVlROXVYaG01UEVIUnhRaGpldEl5SWlv?=
 =?utf-8?B?TzdRa25ObkxlMXZOVWF3MlpyYldKelZNNS9wWGlHUHZUTkVTYmpYbkRNYmM0?=
 =?utf-8?B?K3NReFlIV2FMQ0VYVHV1VGRNc212ZFU1UzFMdGVITS9zaDZ4ai81SVBqdHZl?=
 =?utf-8?B?cCtQY094dlFTOG9Dczl0RVJEN1NwQXFJN0poME9tY2d0bWFLQjRCNDgxcnhU?=
 =?utf-8?B?c1RvSFJkMVdwZldrQ05EWEFFK1dMQjBsMkpuUkE0MitGQjdkbVU4WG4wTkgz?=
 =?utf-8?B?bkw0UDA5SXBLd0FaK2d5MnlBTGZWUWg3MUtzcEltWk0xcEpKQzQ1dDZ2UlNt?=
 =?utf-8?Q?QvMH3Cigub0qcTafyyEIFgFpj?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 537e0fe7-8b61-437d-d466-08dbfa464e48
X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2621.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 12:40:07.3691
 (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: OX6IfNGyRALEXZJIkNdt6/VcsZV7gEu4PEZBViU91aV0U95QOupvgYMiFfM2TpNwKq9gKY2+n5JaV5WG5slsLA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5304


On 11/12/2023 09:33, Julien Grall wrote:
> Hi,

Hi Julien/Stefano/Bertrand/Michal,

It is a great discussion, thanks for your suggestions.

I think we have an agreement. :-)

>
> On 07/12/2023 21:41, Stefano Stabellini wrote:
>> On Thu, 7 Dec 2023, Julien Grall wrote:
>>> Hi Stefano,
>>>
>>> On 05/12/2023 23:21, Stefano Stabellini wrote:
>>>> On Tue, 5 Dec 2023, Julien Grall wrote:
>>>>> I agree that crashing a guest is bad, but is lying to the domain 
>>>>> really
>>>>> better? The consequence here is not that bad and hopefully it 
>>>>> would be
>>>>> fairly
>>>>> easy to find. But this is not always the case. So I definitely 
>>>>> would place
>>>>> a
>>>>> half-backed emulation more severe than a guest crash.
>>>>
>>>>
>>>> I see where Julien is coming from, but I would go with option two:
>>>> "emulate DCC the same way as KVM". That's because I don't think we can
>>>> get away with crashing the guest in all cases. Although the issue came
>>>> up with a Linux guest, it could have been triggered by a proprietary
>>>> operating system that we cannot change, and I think Xen should support
>>>> running unmodified operating systems.
>>>>
>>>> If we go with a "half-backed emulation" solution, as Julien wrote, 
>>>> then
>>>> it is better to be more similar to other hypervisors, that's why I 
>>>> chose
>>>> option two instead of option three.
>>>>
>>>> But at the same time I recognize the validity of Julien's words and it
>>>> makes me wonder if we should have a KCONFIG option or command line
>>>> option to switch the Xen behavior. We could use it to gate all the
>>>> "half-backed emulation" we do for compatibility.Â  Something like:
>>>>
>>>> config PARTIAL_EMULATION
>>>> Â Â Â Â Â  bool "Partial Emulation"
>>>> Â Â Â Â Â  ---help---
>>>> Â Â Â Â Â Â Â Â Â Â Â  Enables partial, not spec compliant, emulation of certain
>>>> register
>>>> Â Â Â Â Â  interfaces (e.g DCC UART) for guest compatibility. If you 
>>>> disable
>>>> Â Â Â Â Â  this option, Xen will crash the guest if the guest tries to 
>>>> access
>>>> Â Â Â Â Â  interfaces not fully emulated or virtualized.
>>>>
>>>> Â Â Â Â Â  If you enable this option, the guest might misbehave due to 
>>>> non-spec
>>>> Â Â Â Â Â  compliant emulation done by Xen.
>>>
>>> As I wrote to Ayan on Matrix today, I am not in favor of the 
>>> emulation. Yet, I
>>> am not going to oppose (as in Nack it) if the other maintainers 
>>> agree with it.
>>
>> Thanks for being flexible
>>
>>
>>> The KConfig would be nice, the question is whether we want to 
>>> (security)
>>> support such configuration? E.g. could this potentially introduce a 
>>> security
>>> issue in the guest?
>>
>> The important question is whether it could introduce a security issue in
>> Xen. If we think it wouldn't increase the attack surface significantly
>> then I would security support it otherwise not.
>
> For this specific emulation, it is unlikely. But I can't make a 
> generic statement here. So we would need to do a case by case basis.
>
> Furthermore, our security statement is also covering a guest userspace 
> attacking a guest OS. We would issue an XSA if this is feasible 
> because of an issue in the hypervisor.
>
> With half-backed emulation, it becomes more difficult to know whether 
> we are not opening a hole and replacing a guest crashes at boot by 
> something worse.
>
> Again unlikely here. But those kind of bugs are no unheard. So this is 
> something to take into account when you want to claim security support 
> for half-backed emulation.

For this specific emulation, I think we all agree that there is no 
security risk. So we need not add any security support for this.

With regards to partial emulation, we all agree that there is no perfect 
solution.


However, the approach on which we all seem to have consensus :-

1. Emulate DCC with TXfull set to 1 (no crash, DCC driver in Linux/Uboot 
returns -ENODEV/-EAGAIN).

2. Introduce a Kconfig (say "CONFIG_PARTIAL_EMULATION") option to 
surround this code which will be specific for Arm and enabled by 
default. This should be turned off by a vendor who does not want to 
provide any form of partial emulation.

3. Introduce a hypervisor command line option ("partial_emulation" , 
disabled by default) so that this cen be enabled at run time using 
Imagebuilder/uboot scripts.

The #2 and #3 can be extended in future to cover all forms of partial 
emulation.

I will send out a patch implementing this approach.

- Ayan

>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 12:43:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 12:43:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651763.1017574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCfd5-000504-Mc; Mon, 11 Dec 2023 12:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651763.1017574; Mon, 11 Dec 2023 12: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 1rCfd5-0004zx-Jv; Mon, 11 Dec 2023 12:43:23 +0000
Received: by outflank-mailman (input) for mailman id 651763;
 Mon, 11 Dec 2023 12:43:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCfd4-0004zr-DM
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 12:43:22 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd2984ff-9822-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 13:43:20 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c2bb872e2so40705605e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 04:43:20 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 e16-20020adffd10000000b003346db01263sm8469465wrr.104.2023.12.11.04.43.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 04:43:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd2984ff-9822-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702298600; x=1702903400; 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=rUUU/K/HVXxpUc9thMCl7fVRiegyi2yXlLe4cs6Fy58=;
        b=Vpt2lQmfMAaTux/iZmIV9FXv9kZMnOkNqVD3dlileclFzCeJtRL33h/aLGdj+6uDup
         GlsJfSmv/xXJe2E0DIpf4nGc+LXZmLdd6wcv5maAMqg29NgFFQDqYwaYx/KWDg3br3K2
         4MV2X8av/9oAZNo7rQt/7qkhyKzdAfqu30tk4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702298600; x=1702903400;
        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=rUUU/K/HVXxpUc9thMCl7fVRiegyi2yXlLe4cs6Fy58=;
        b=qqZ9kAKl61WM/rAbp/BXvJNk3qeFat4PanV9whDgu16LLUQMhkuD3mp4qCtsXH229O
         8aynebXI0e42n5oyI88yMzU6Vgo1UybcPUTEzUYplr8fXdFdeHZHNdotOXsJPYJSDeli
         qqj9i+FGGWwmwYYYNLP1kwcTdUewaD5//MA5YVRdzLi2UGIy4fn8kSgjpd8gEFwzqbpR
         AJDCfUwBkiYNOuaJthV1dIMnfatH8Mg4DseFm1qhAFwBACUzTELp0QORkLpBnNuwPs28
         VQEDQgZ9cRHlE0+JkdG5sHNVeJTkJlRlzXbi3AhoyIGGEcCjAw98COWgFTnPKTOqTAS5
         vUiQ==
X-Gm-Message-State: AOJu0YyXOkGheQVX7LBbFN4SVEUHnx12cwcSY5bdoHXl0TS59eYp9Mvp
	9Uxn45gTwMsfPb5SjM1iYd+mcg==
X-Google-Smtp-Source: AGHT+IHy/HX979Dz+f4Ul5DAeasYsnUuj8FyJwRpmpSEyNYllj67bmZtQfotnabDG9HvZIeiFJ5bjw==
X-Received: by 2002:a05:600c:1705:b0:40c:7a7:9b08 with SMTP id c5-20020a05600c170500b0040c07a79b08mr1014599wmn.119.1702298599769;
        Mon, 11 Dec 2023 04:43:19 -0800 (PST)
Date: Mon, 11 Dec 2023 13:43:18 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Wei Liu <wl@xen.org>
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Message-ID: <ZXcD5lsCd6E_HBbe@macbook>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com>
 <ZW4L5Q4SMprtmbK-@macbook>
 <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com>
 <ZW8zyXkUJDKVt-HX@macbook>
 <2ded19f7-2ba6-4b1c-8752-a73894dcdae0@suse.com>
 <ZW9H1uE_6k3d-uWn@macbook>
 <21cdb9ad-81f5-497a-bfd8-ef6aea5906e2@suse.com>
 <ZXbodK0CcT5U1i5V@macbook>
 <011bdf3f-6cbd-49e6-b1d8-10c77722664e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <011bdf3f-6cbd-49e6-b1d8-10c77722664e@suse.com>

On Mon, Dec 11, 2023 at 12:31:11PM +0100, Jan Beulich wrote:
> On 11.12.2023 11:46, Roger Pau MonnÃ© wrote:
> > On Wed, Dec 06, 2023 at 08:27:59AM +0100, Jan Beulich wrote:
> >> On 05.12.2023 16:55, Roger Pau MonnÃ© wrote:
> >>> On Tue, Dec 05, 2023 at 03:59:13PM +0100, Jan Beulich wrote:
> >>>> On 05.12.2023 15:29, Roger Pau MonnÃ© wrote:
> >>>>> On Tue, Dec 05, 2023 at 09:52:31AM +0100, Jan Beulich wrote:
> >>>>>> On 04.12.2023 18:27, Roger Pau MonnÃ© wrote:
> >>>>>>> On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
> >>>>>>>> ..., at least as reasonably feasible without making a check hook
> >>>>>>>> mandatory (in particular strict vs relaxed/zero-extend length checking
> >>>>>>>> can't be done early this way).
> >>>>>>>>
> >>>>>>>> Note that only one of the two uses of hvm_load() is accompanied with
> >>>>>>>> hvm_check(). The other directly consumes hvm_save() output, which ought
> >>>>>>>> to be well-formed. This means that while input data related checks don't
> >>>>>>>> need repeating in the "load" function when already done by the "check"
> >>>>>>>> one (albeit assertions to this effect may be desirable), domain state
> >>>>>>>> related checks (e.g. has_xyz(d)) will be required in both places.
> >>>>>>>>
> >>>>>>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> >>>>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>>>>>>> ---
> >>>>>>>> Do we really need all the copying involved in use of _hvm_read_entry()
> >>>>>>>> (backing hvm_load_entry()? Zero-extending loads are likely easier to
> >>>>>>>> handle that way, but for strict loads all we gain is a reduced risk of
> >>>>>>>> unaligned accesses (compared to simply pointing into h->data[]).
> >>>>>>>
> >>>>>>> See below, but I wonder whether the checks could be performed as part
> >>>>>>> of hvm_load() without having to introduce a separate handler and loop
> >>>>>>> over the context entries.
> >>>>>>
> >>>>>> Specifically not. State loading (in the longer run) would better not fail
> >>>>>> once started. (Imo it should have been this way from the beginning.) Only
> >>>>>> then will the vCPU still be in a predictable state even after a possible
> >>>>>> error.
> >>>>>
> >>>>> Looking at the callers, does such predictable state after failure
> >>>>> matter?
> >>>>>
> >>>>> One caller is an hypercall used by the toolstack at domain create,
> >>>>> failing can just lead to the domain being destroyed.  The other caller
> >>>>> is vm fork, which will also lead to the fork being destroyed if
> >>>>> context loading fails.
> >>>>>
> >>>>> Maybe I'm overlooking something.
> >>>>
> >>>> You don't (I think), but existing callers necessarily have to behave the
> >>>> way you describe. From an abstract perspective, though, failed state
> >>>> loading would better allow a retry. And really I thought that when you
> >>>> suggested to split checking from loading, you had exactly that in mind.
> >>>
> >>> Not really TBH, because I didn't think that much on a possible
> >>> implementation when proposing it.
> >>
> >> But what else did you think of then in terms of separating checking from
> >> loading?
> > 
> > Just calling the check and load functions inside of the same loop was
> > my initial thought.
> 
> Okay, I was meanwhile also guessing that this might have been what you
> thought of. I can go that route, but I wouldn't want to make it "and", but
> "or" then, depending on a new boolean parameter to be passed to hvm_load().
> IOW I'd still like to do all checking before all loading (in the longer
> run, that is i.e. after individual handlers have been adapted). Would that
> be okay with you?

Yes, that would be fine.  I assume you will introduce a 'dry run'
parameter then?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:07:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:07:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651778.1017584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCg03-0001P3-HZ; Mon, 11 Dec 2023 13:07:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651778.1017584; Mon, 11 Dec 2023 13:07:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCg03-0001Ow-F2; Mon, 11 Dec 2023 13:07:07 +0000
Received: by outflank-mailman (input) for mailman id 651778;
 Mon, 11 Dec 2023 13:07: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=KCUY=HW=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rCg01-0001NQ-Vx
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:07:05 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20600.outbound.protection.outlook.com
 [2a01:111:f400:7eae::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d409092-9826-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 14:07:03 +0100 (CET)
Received: from BYAPR11CA0101.namprd11.prod.outlook.com (2603:10b6:a03:f4::42)
 by DM4PR12MB8523.namprd12.prod.outlook.com (2603:10b6:8:18e::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec
 2023 13:07:00 +0000
Received: from CO1PEPF000044F2.namprd05.prod.outlook.com
 (2603:10b6:a03:f4:cafe::25) by BYAPR11CA0101.outlook.office365.com
 (2603:10b6:a03:f4::42) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Mon, 11 Dec 2023 13:07:00 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000044F2.mail.protection.outlook.com (10.167.241.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Mon, 11 Dec 2023 13:06:59 +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.34; Mon, 11 Dec
 2023 07:06:57 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 11 Dec
 2023 07:06:57 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 11 Dec 2023 07:06:55 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d409092-9826-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nPbkt7hiRez5ewAOK8zRxjnFEU7M+Pn0TOBCROzUEcgJgZF6xgVvYL5efIF1c5lEG6uvI0l8y/MHYwQyoqm+I2hs67fjLzNTUK+ddYEKIstp4cBhuBDxm7FLbrYHCT6MDWC78V4ZaweWZWFVaQhE2jtMS3IdpFwnTyH0utdoGO0YqV+51cGbCADg6v0wuj+3U2vG0dwhdILjI4wcCt4/f5ei53JimWnfu40GarzTDol4qq/AD1fFXPnLBVNpsWMiCkKFpJLyoEdW7nd6ICV8d/YaLD875JGExhA5v3YcusPYYp1kEKwCwLmW0xdFmmqACWmlINKMkcj1YIpnLQn0Vg==
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=ki6pc6WA00/Ip1SDCjI5lfGfFFY+R+iOGMs3/8kABJA=;
 b=MSaZl9MTaEbB4tn51nDujHl4TIqBMLgYGqmASOu9RVeWaqvD/I1ZcKNDintBfSkW2Xwo4/L9iwLnF8/E08p/OrqF7UjuY5to6zGDfdzsqM7ukRqotWLWGEuo3lfgk5TLnYUCi1xEOtjtoSTHOsCaCao943GIfsCS/virRAHQZUjZgSiHj6T4RvghEUXL2Xz/uT6shSd3Vskh/FqCLGcB0krh5s7DDCdJovUSfrS4rAKWFrzz5IJ8t2tYsGehKv+U7O1gZNC0TJqmiG2zjTqP0xH67gYyIk0lKVY2Vom16kWzv1Fn/vn1CiBROc2MyVrKT/vtJcEnzW1LdN6psSOOrg==
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=ki6pc6WA00/Ip1SDCjI5lfGfFFY+R+iOGMs3/8kABJA=;
 b=P4t2vPH5kvg6QbBgAG+C1+xD9km3tiboy5syc2uj7P/NTbEtsJ5xqwbRSv3TCQdaXG09WZFHrsC/8X2MCsEGIe9LM50XgBo++iuGLrpKfmNlsanHVuksvoI7JVTNIBHNtxAmfPZzlhi3j66Z98ZK6S4gRSa7/3GaqVJ9Iaq1HGo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <0f554dea-60fe-409a-935d-87f3eac30a87@amd.com>
Date: Mon, 11 Dec 2023 14:06:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 3/7] xen/arm: address MISRA C:2012 Rule 2.1
Content-Language: en-US
To: Julien Grall <julien@xen.org>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, <xen-devel@lists.xenproject.org>
CC: <consulting@bugseng.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <4c0d38f2b707afa9aed1853a99d286fa2424fb9d.1702283415.git.nicola.vetrini@bugseng.com>
 <e86f46bd-b404-4feb-82f5-90c52837e169@xen.org>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <e86f46bd-b404-4feb-82f5-90c52837e169@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F2:EE_|DM4PR12MB8523:EE_
X-MS-Office365-Filtering-Correlation-Id: dc87a61a-9175-41c7-893e-08dbfa4a0f4c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	0BdzPv23cge4bwsWwzixx7DzCbRaGkxNyMfrrPXszfvkbz+3Fv2WnfBU9+mUlUjS7K7eO7f7NSFO47LhaGeam1vASrEQc20k6NqOh8y4ssK7df24b7bg5LgP6/GCKia6MAWorOOs9xgVxYAgJEJJ7wl+TsLZbwLKIeEpsFwozoxBsi+RT6e2qYHYq8ehIzih2ptOMNYcEdEzsxRynPFrESgqscdX+lVdK9I5eRIam6W597oBh15JRLZlwcgRkNCSBWAx9LRJD8ssvOYQqapwS/coH1mDhNwLsZddhaw1yyMS+VoqZ5JrIO9ajuormjzncdbrkgFq4ffkywLDf0uwK4H+/pJQZyFKT0kW+zmxTZ4FI5+Wq8y2/M8HI95ZqCxEJGQS01h+og2lMv47+4+6WRWkuuW++EemqBR3bFA5DhepcqAwtUgms2H5b/TShci296BGCqzUUAZV3/vGoMGltgL/NHAfxFMR4Y3BmpsjC98PHTt09AknYKhww9YLNh64BcU34/DqPwxVw+MiQS+3Isx6qZ1LGGGQlTbdeEnxtIArlnEJFMsUIzH5VnIIFjJ1A1OWX5frBw6WkAHMIg9WXScDKZ4QzXoh8SXbmgAzDfPxclwIOYu9cl3qYl6uqgZV0Mj1Piam0YKJXXafMaUGflUx+k/z4PBvyN8xs0ShqwCi0pNHexgA4ukt/cxLZEhvIwivaHHKP1MydyrKjOlb9QQBdn9nOQIMzVp1CFBjtqHrcNOyzm4S1H9e0iMm7xdg+7+kvzDbnpKxFoGHPKQ2+FJAVehAWa8E4jr00KV5dkOPI9h7L41MBXqNz+0fWTFq
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:(13230031)(4636009)(39860400002)(396003)(136003)(376002)(346002)(230922051799003)(1800799012)(451199024)(64100799003)(82310400011)(186009)(36840700001)(46966006)(40470700004)(40460700003)(53546011)(36860700001)(5660300002)(47076005)(26005)(336012)(2616005)(44832011)(36756003)(426003)(54906003)(70586007)(70206006)(40480700001)(4744005)(2906002)(31686004)(82740400003)(41300700001)(81166007)(356005)(478600001)(86362001)(8676002)(8936002)(4326008)(31696002)(110136005)(16576012)(316002)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 13:06:59.2692
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dc87a61a-9175-41c7-893e-08dbfa4a0f4c
X-MS-Exchange-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:
	CO1PEPF000044F2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8523



On 11/12/2023 13:29, Julien Grall wrote:
> 
> 
> Hi,
> 
> On 11/12/2023 10:30, Nicola Vetrini wrote:
>> The "return 1;" statements at the end of some cases in the switch
>> of function 'vgic_v3_its_mmio_write' in 'vcig-v3-its.c' cause the
>> unreachability of the "return 1;" statement after the switch, thus
>> violating MISRA C:2012 Rule 2.1:
>> "A project shall not contain unreachable code".
>>
>> The same is true for the switch in 'arch_memory_op' from
>> 'xen/arch/arm/mm.c'.
> 
> For both cases, I actually much prefer the "return" version in the
> cases. In particular for the vGIC emulation the switch is quite large
> and it would not be trivial to know what happens after the break.
Because of this...

> 
> IOW, I would much prefer if we remove the "return ..." outside of the
> switch.
wouldn't it be better to add ASSERT_UNREACHABLE() before this return instead of removing it?
This is what we have in e.g. vpl011 and it prevents mistakes.

~Michal


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:15:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651782.1017595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCg86-0004oh-Ax; Mon, 11 Dec 2023 13:15:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651782.1017595; Mon, 11 Dec 2023 13: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 1rCg86-0004oa-7i; Mon, 11 Dec 2023 13:15:26 +0000
Received: by outflank-mailman (input) for mailman id 651782;
 Mon, 11 Dec 2023 13:15: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=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCg85-0004oU-5R
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:15:25 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5709bfc6-9827-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:15:22 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-333536432e0so4215361f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 05:15:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 w13-20020adfee4d000000b00333339e5f42sm8551477wro.32.2023.12.11.05.15.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 05:15:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5709bfc6-9827-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702300522; x=1702905322; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=z0E99ltGA4U4MPpSpQ5Oz3HMmlRY+NofmztQCpcbwdM=;
        b=hDcXWeJqKCoK+0jcX/cyfTWzQ9Srvkz+fsg8JXm7J5WRTyNh6P/iu/srj5CZTMgN+x
         UFtcY55L5KO/C6Sur5bHPJS6+rXCj6HoAWeTTDl3P3huSowBOCRr6FiMCn2wG2Efad93
         KhkKBwXlZa/nIInPfrh3BmcqF09bMQPBWBtgXoTLLfzp8iFzvi/p4lqNm+I4KEGxq/nS
         cyLE8ONJBB4Eob7p8yEG3XMPoSOTd3pBICWGogKalDIU02r3DcyUtiH4KEW4WocPlSwR
         AGXKpyRxVKVx35LyrEuvs6Y1ahqyKIthFsZL87nxJhinza42IW3N7tFz7AqwBUZZbqS5
         Pq6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702300522; x=1702905322;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=z0E99ltGA4U4MPpSpQ5Oz3HMmlRY+NofmztQCpcbwdM=;
        b=MbbzMuqK/XHlG6C82ChPKH8lvIBtVDwAgOy2V1YCE12HOEqsLekSXhwhwId891cb9B
         OwVwhccCRJRhXcXWr3nO+IdcmTW6YYby8Dbv3UqYjFw8iJhe/WHVBvPKLpYME43lJ/LP
         lTuPf+PbThLFhTci/l5EOER/spTcjo9WiuTENuD+v1BcsoI7LIluLZRAG8OuZ6PkPcFA
         Iegl9qiHs4pQW3w4S+M/J+BrjCIHtwIBTHyFgP0cS6SrNiLiQNpJ96pCgKbhpXNyQyft
         shA1H0l1HWwhceWcBXQg2RMDAFdYkR1lx255kOpNrP5kHmBUOJvZDHeiXE/s6e/xZ0VV
         dw/g==
X-Gm-Message-State: AOJu0Yx2SES0asw9gucu1/YnVBWOjMHpIMRT88jS20ZqvLyTdQYINFjz
	B05HpWjktkU/TpY9yrdHFVVl
X-Google-Smtp-Source: AGHT+IF8fG47zP/awtGxv1Wa4W6nh2oOwl2pCUvwuwWS0sEVseHsAPUpd2kl3b8XcrJhHrXJ1F5ICA==
X-Received: by 2002:a5d:4b83:0:b0:332:eee9:6e7f with SMTP id b3-20020a5d4b83000000b00332eee96e7fmr2264667wrt.56.1702300522198;
        Mon, 11 Dec 2023 05:15:22 -0800 (PST)
Message-ID: <c08dd900-677a-4356-9412-6b6ec3199ee8@suse.com>
Date: Mon, 11 Dec 2023 14:15:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/6] x86/HVM: split restore state checking from state
 loading
Content-Language: en-US
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" <xen-devel@lists.xenproject.org>,
 Wei Liu <wl@xen.org>
References: <49a17ffa-c873-4b0f-81ed-9587053ca159@suse.com>
 <dcc726f5-634e-4b48-aa8f-d477cdc8dea9@suse.com> <ZW4L5Q4SMprtmbK-@macbook>
 <5f7c43ca-dfc4-4929-8776-6985e610e154@suse.com> <ZW8zyXkUJDKVt-HX@macbook>
 <2ded19f7-2ba6-4b1c-8752-a73894dcdae0@suse.com> <ZW9H1uE_6k3d-uWn@macbook>
 <21cdb9ad-81f5-497a-bfd8-ef6aea5906e2@suse.com> <ZXbodK0CcT5U1i5V@macbook>
 <011bdf3f-6cbd-49e6-b1d8-10c77722664e@suse.com> <ZXcD5lsCd6E_HBbe@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXcD5lsCd6E_HBbe@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2023 13:43, Roger Pau MonnÃ© wrote:
> On Mon, Dec 11, 2023 at 12:31:11PM +0100, Jan Beulich wrote:
>> On 11.12.2023 11:46, Roger Pau MonnÃ© wrote:
>>> On Wed, Dec 06, 2023 at 08:27:59AM +0100, Jan Beulich wrote:
>>>> On 05.12.2023 16:55, Roger Pau MonnÃ© wrote:
>>>>> On Tue, Dec 05, 2023 at 03:59:13PM +0100, Jan Beulich wrote:
>>>>>> On 05.12.2023 15:29, Roger Pau MonnÃ© wrote:
>>>>>>> On Tue, Dec 05, 2023 at 09:52:31AM +0100, Jan Beulich wrote:
>>>>>>>> On 04.12.2023 18:27, Roger Pau MonnÃ© wrote:
>>>>>>>>> On Tue, Nov 28, 2023 at 11:34:04AM +0100, Jan Beulich wrote:
>>>>>>>>>> ..., at least as reasonably feasible without making a check hook
>>>>>>>>>> mandatory (in particular strict vs relaxed/zero-extend length checking
>>>>>>>>>> can't be done early this way).
>>>>>>>>>>
>>>>>>>>>> Note that only one of the two uses of hvm_load() is accompanied with
>>>>>>>>>> hvm_check(). The other directly consumes hvm_save() output, which ought
>>>>>>>>>> to be well-formed. This means that while input data related checks don't
>>>>>>>>>> need repeating in the "load" function when already done by the "check"
>>>>>>>>>> one (albeit assertions to this effect may be desirable), domain state
>>>>>>>>>> related checks (e.g. has_xyz(d)) will be required in both places.
>>>>>>>>>>
>>>>>>>>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>>>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>>>>>>>> ---
>>>>>>>>>> Do we really need all the copying involved in use of _hvm_read_entry()
>>>>>>>>>> (backing hvm_load_entry()? Zero-extending loads are likely easier to
>>>>>>>>>> handle that way, but for strict loads all we gain is a reduced risk of
>>>>>>>>>> unaligned accesses (compared to simply pointing into h->data[]).
>>>>>>>>>
>>>>>>>>> See below, but I wonder whether the checks could be performed as part
>>>>>>>>> of hvm_load() without having to introduce a separate handler and loop
>>>>>>>>> over the context entries.
>>>>>>>>
>>>>>>>> Specifically not. State loading (in the longer run) would better not fail
>>>>>>>> once started. (Imo it should have been this way from the beginning.) Only
>>>>>>>> then will the vCPU still be in a predictable state even after a possible
>>>>>>>> error.
>>>>>>>
>>>>>>> Looking at the callers, does such predictable state after failure
>>>>>>> matter?
>>>>>>>
>>>>>>> One caller is an hypercall used by the toolstack at domain create,
>>>>>>> failing can just lead to the domain being destroyed.  The other caller
>>>>>>> is vm fork, which will also lead to the fork being destroyed if
>>>>>>> context loading fails.
>>>>>>>
>>>>>>> Maybe I'm overlooking something.
>>>>>>
>>>>>> You don't (I think), but existing callers necessarily have to behave the
>>>>>> way you describe. From an abstract perspective, though, failed state
>>>>>> loading would better allow a retry. And really I thought that when you
>>>>>> suggested to split checking from loading, you had exactly that in mind.
>>>>>
>>>>> Not really TBH, because I didn't think that much on a possible
>>>>> implementation when proposing it.
>>>>
>>>> But what else did you think of then in terms of separating checking from
>>>> loading?
>>>
>>> Just calling the check and load functions inside of the same loop was
>>> my initial thought.
>>
>> Okay, I was meanwhile also guessing that this might have been what you
>> thought of. I can go that route, but I wouldn't want to make it "and", but
>> "or" then, depending on a new boolean parameter to be passed to hvm_load().
>> IOW I'd still like to do all checking before all loading (in the longer
>> run, that is i.e. after individual handlers have been adapted). Would that
>> be okay with you?
> 
> Yes, that would be fine.  I assume you will introduce a 'dry run'
> parameter then?

Something like that, yes. I considered and discarded (mentally) "dry run"
for naming though, as the functions performed really differ (to me "dry
run" would mean that all the same checking would be done again when doing
the "real" run). I was further considering "check", "check_only", "load",
and "real", but to be honest I don't really like any of them. So the
naming aspect is still pending.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:16:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:16:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651784.1017605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCg90-0005Me-KM; Mon, 11 Dec 2023 13:16:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651784.1017605; Mon, 11 Dec 2023 13:16:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCg90-0005MX-HN; Mon, 11 Dec 2023 13:16:22 +0000
Received: by outflank-mailman (input) for mailman id 651784;
 Mon, 11 Dec 2023 13:16:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=g7EY=HW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCg8z-0005MG-NC
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:16:21 +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 78ef22b9-9827-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:16:19 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 0D23F223CD;
 Mon, 11 Dec 2023 13:16:19 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id B2015134B0;
 Mon, 11 Dec 2023 13:16:18 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id +cAWKqILd2W5UgAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 11 Dec 2023 13:16: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: 78ef22b9-9827-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702300579; 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=SqOtV1aFu0+l1XwW7ccmSceicrrewr58Yx/V3PdGqYw=;
	b=BUQd4Vx0CCRFutSC509p5oURDxjOAmOgMbDL8mDQn+uvmfUqFqcGKE1uVePuQ8mMxJVXKv
	uQfQ2lAMRBnvxltSHbFDEMZDBeQhPOqUw0bRPhm0JnTF9LckLG499VbSaMzR23+N/dTX4B
	zm+24rqDQdFx2vBkZJNZq3DGyi3eCtY=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702300579; 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=SqOtV1aFu0+l1XwW7ccmSceicrrewr58Yx/V3PdGqYw=;
	b=BUQd4Vx0CCRFutSC509p5oURDxjOAmOgMbDL8mDQn+uvmfUqFqcGKE1uVePuQ8mMxJVXKv
	uQfQ2lAMRBnvxltSHbFDEMZDBeQhPOqUw0bRPhm0JnTF9LckLG499VbSaMzR23+N/dTX4B
	zm+24rqDQdFx2vBkZJNZq3DGyi3eCtY=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 0/3] xen: have a more generic unaligned.h header
Date: Mon, 11 Dec 2023 14:16:13 +0100
Message-Id: <20231211131616.1839-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Score: 3.70
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: ***
X-Spam-Score: 3.70
X-Spamd-Result: default: False [3.70 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_TWELVE(0.00)[12];
	 MID_CONTAINS_FROM(1.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

Update Xen's unaligned.h header to support all architectures, allowing
to remove the architecture specific variants (x86 only until now).

Changes in V2:
- new patch 1 (Julien Grall)
- adjusted patch 2 (Jan Beulich)

Changes in V3:
- adjusted patch 2 (Andrew Cooper)

Juergen Gross (3):
  xen/arm: set -mno-unaligned-access compiler option for Arm32
  xen: make include/xen/unaligned.h usable on all architectures
  xen: remove asm/unaligned.h

 xen/arch/arm/arch.mk                 |  1 +
 xen/arch/x86/include/asm/unaligned.h |  6 ----
 xen/common/lz4/defs.h                |  2 +-
 xen/common/lzo.c                     |  2 +-
 xen/common/unlzo.c                   |  2 +-
 xen/common/xz/private.h              |  2 +-
 xen/common/zstd/mem.h                |  2 +-
 xen/include/xen/unaligned.h          | 53 ++++++++++++++++------------
 xen/lib/xxhash32.c                   |  2 +-
 xen/lib/xxhash64.c                   |  2 +-
 10 files changed, 38 insertions(+), 36 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/unaligned.h

-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:16:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:16:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651785.1017615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCg95-0005eB-WE; Mon, 11 Dec 2023 13:16:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651785.1017615; Mon, 11 Dec 2023 13: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 1rCg95-0005e4-TX; Mon, 11 Dec 2023 13:16:27 +0000
Received: by outflank-mailman (input) for mailman id 651785;
 Mon, 11 Dec 2023 13: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=g7EY=HW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCg94-0005MG-R0
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:16:26 +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 7c2cf8f7-9827-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:16:25 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 B425C1FB92;
 Mon, 11 Dec 2023 13:16:24 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 795FC134B0;
 Mon, 11 Dec 2023 13:16:24 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id n1BaHKgLd2XEUgAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 11 Dec 2023 13:16: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: 7c2cf8f7-9827-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702300584; 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=SgbXdYtzORxNSYsY9wikbAOanF5hYSOrLFRs1h5WPMc=;
	b=FqUpU3knHx6djprnV03piggikbpTI4HAh19/UxmXoSnlaDyy3pj/V0UVX3ivmL/VdAbfhG
	hYX0Q7omJZlRAd1mVDHmP0EUMamtCZ1TPcZxXZPBEddv2a+u4M/UmS+tME/AEI9dHt8J1M
	y2zoG9ak7Nygr0Pr9lcS/43z6TlSHwk=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702300584; 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=SgbXdYtzORxNSYsY9wikbAOanF5hYSOrLFRs1h5WPMc=;
	b=FqUpU3knHx6djprnV03piggikbpTI4HAh19/UxmXoSnlaDyy3pj/V0UVX3ivmL/VdAbfhG
	hYX0Q7omJZlRAd1mVDHmP0EUMamtCZ1TPcZxXZPBEddv2a+u4M/UmS+tME/AEI9dHt8J1M
	y2zoG9ak7Nygr0Pr9lcS/43z6TlSHwk=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v3 1/3] xen/arm: set -mno-unaligned-access compiler option for Arm32
Date: Mon, 11 Dec 2023 14:16:14 +0100
Message-Id: <20231211131616.1839-2-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231211131616.1839-1-jgross@suse.com>
References: <20231211131616.1839-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Score: -0.30
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -0.30
X-Spamd-Result: default: False [-0.30 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 REPLY(-4.00)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

As the hypervisor is disabling unaligned accesses for Arm32, set the
-mno-unaligned-access compiler option for building. This will prohibit
unaligned accesses when e.g. accessing 2- or 4-byte data items in
packed data structures.

Backport: 4.15+
Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
V2:
- new patch
---
 xen/arch/arm/arch.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 58db76c4e1..022dcda192 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -7,6 +7,7 @@ $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
 # Prevent floating-point variables from creeping into Xen.
 CFLAGS-$(CONFIG_ARM_32) += -msoft-float
 CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15
+CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
 
 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
 CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:16:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:16:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651786.1017625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCg9B-0005xP-8y; Mon, 11 Dec 2023 13:16:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651786.1017625; Mon, 11 Dec 2023 13: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 1rCg9B-0005xI-59; Mon, 11 Dec 2023 13:16:33 +0000
Received: by outflank-mailman (input) for mailman id 651786;
 Mon, 11 Dec 2023 13:16: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=g7EY=HW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCg99-0005vq-RO
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:16:31 +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 7f8548d9-9827-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 14:16:30 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 531D4223CE;
 Mon, 11 Dec 2023 13:16:30 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 14DE5134B0;
 Mon, 11 Dec 2023 13:16:30 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id OM/RA64Ld2XMUgAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 11 Dec 2023 13: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>
X-Inumbo-ID: 7f8548d9-9827-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702300590; 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=HcRuni7yfSoZg5Lwx25GUDWH7ewqyMT8SLWLauip6Wo=;
	b=uJKrHbD0SDRzdM/CkOOSccwKIRhu9iF0eINhYWuYNXPcCGPVC4I6EEoTzElmZFHRUMu4vc
	IGnbcG7SYuT2/8MSeXm5CIV7nXOKmb1k/kNuah5uJ6g7z5pNMuSNmRvdEr/yLtaaisVapS
	FjC9uQtPCM4dbx23Vkbp9Vv8CCv4/og=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702300590; 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=HcRuni7yfSoZg5Lwx25GUDWH7ewqyMT8SLWLauip6Wo=;
	b=uJKrHbD0SDRzdM/CkOOSccwKIRhu9iF0eINhYWuYNXPcCGPVC4I6EEoTzElmZFHRUMu4vc
	IGnbcG7SYuT2/8MSeXm5CIV7nXOKmb1k/kNuah5uJ6g7z5pNMuSNmRvdEr/yLtaaisVapS
	FjC9uQtPCM4dbx23Vkbp9Vv8CCv4/og=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>,
	Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH v3 2/3] xen: make include/xen/unaligned.h usable on all architectures
Date: Mon, 11 Dec 2023 14:16:15 +0100
Message-Id: <20231211131616.1839-3-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231211131616.1839-1-jgross@suse.com>
References: <20231211131616.1839-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -3.27
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -3.30
X-Spamd-Result: default: False [-3.30 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 REPLY(-4.00)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%]
X-Spam-Flag: NO

Instead of defining get_unaligned() and put_unaligned() in a way that
is only supporting architectures allowing unaligned accesses, use the
same approach as the Linux kernel and let the compiler do the
decision how to generate the code for probably unaligned data accesses.

Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
the Linux kernel.

The generated code has been checked to be the same on x86.

Modify the Linux variant to not use underscore prefixed identifiers,
avoid unneeded parentheses and drop the 24-bit accessors.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 803f4e1eab7a
Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
V2:
- drop 24-bit accessors (Jan Beulich)
- avoid underscore prefixed identifiers (Jan Beulich)
- drop unneeded parentheses (Jan Beulich)
V3:
- drop trailing underscores in names (Andrew Cooper)
- keep existing function sequence and types (Andrew Cooper)
---
 xen/include/xen/unaligned.h | 53 +++++++++++++++++++++----------------
 1 file changed, 30 insertions(+), 23 deletions(-)

diff --git a/xen/include/xen/unaligned.h b/xen/include/xen/unaligned.h
index 0a2b16d05d..3eda0ece11 100644
--- a/xen/include/xen/unaligned.h
+++ b/xen/include/xen/unaligned.h
@@ -1,12 +1,4 @@
-/*
- * This header can be used by architectures where unaligned accesses work
- * without faulting, and at least reasonably efficiently.  Other architectures
- * will need to have a custom asm/unaligned.h.
- */
-#ifndef __ASM_UNALIGNED_H__
-#error "xen/unaligned.h should not be included directly - include asm/unaligned.h instead"
-#endif
-
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef __XEN_UNALIGNED_H__
 #define __XEN_UNALIGNED_H__
 
@@ -15,67 +7,82 @@
 #include <asm/byteorder.h>
 #endif
 
-#define get_unaligned(p) (*(p))
-#define put_unaligned(val, p) (*(p) = (val))
+/*
+ * This is the most generic implementation of unaligned accesses
+ * and should work almost anywhere.
+ */
+
+#define get_unaligned_t(type, ptr) ({					\
+	const struct { type x; } __packed *ptr_ = (typeof(ptr_))(ptr);	\
+	ptr_->x;							\
+})
+
+#define put_unaligned_t(type, val, ptr) do {				\
+	struct { type x; } __packed *ptr_ = (typeof(ptr_))(ptr);	\
+	ptr_->x = val;							\
+} while (0)
+
+#define get_unaligned(ptr)	get_unaligned_t(typeof(*(ptr)), ptr)
+#define put_unaligned(val, ptr) put_unaligned_t(typeof(*(ptr)), val, ptr)
 
 static inline uint16_t get_unaligned_be16(const void *p)
 {
-	return be16_to_cpup(p);
+	return be16_to_cpu(get_unaligned_t(__be16, p));
 }
 
 static inline void put_unaligned_be16(uint16_t val, void *p)
 {
-	*(__force __be16*)p = cpu_to_be16(val);
+	put_unaligned_t(__be16, cpu_to_be16(val), p);
 }
 
 static inline uint32_t get_unaligned_be32(const void *p)
 {
-	return be32_to_cpup(p);
+	return be32_to_cpu(get_unaligned_t(__be32, p));
 }
 
 static inline void put_unaligned_be32(uint32_t val, void *p)
 {
-	*(__force __be32*)p = cpu_to_be32(val);
+	put_unaligned_t(__be32, cpu_to_be32(val), p);
 }
 
 static inline uint64_t get_unaligned_be64(const void *p)
 {
-	return be64_to_cpup(p);
+	return be64_to_cpu(get_unaligned_t(__be64, p));
 }
 
 static inline void put_unaligned_be64(uint64_t val, void *p)
 {
-	*(__force __be64*)p = cpu_to_be64(val);
+	put_unaligned_t(__be64, cpu_to_be64(val), p);
 }
 
 static inline uint16_t get_unaligned_le16(const void *p)
 {
-	return le16_to_cpup(p);
+	return le16_to_cpu(get_unaligned_t(__le16, p));
 }
 
 static inline void put_unaligned_le16(uint16_t val, void *p)
 {
-	*(__force __le16*)p = cpu_to_le16(val);
+	put_unaligned_t(__le16, cpu_to_le16(val), p);
 }
 
 static inline uint32_t get_unaligned_le32(const void *p)
 {
-	return le32_to_cpup(p);
+	return le32_to_cpu(get_unaligned_t(__le32, p));
 }
 
 static inline void put_unaligned_le32(uint32_t val, void *p)
 {
-	*(__force __le32*)p = cpu_to_le32(val);
+	put_unaligned_t(__le32, cpu_to_le32(val), p);
 }
 
 static inline uint64_t get_unaligned_le64(const void *p)
 {
-	return le64_to_cpup(p);
+	return le64_to_cpu(get_unaligned_t(__le64, p));
 }
 
 static inline void put_unaligned_le64(uint64_t val, void *p)
 {
-	*(__force __le64*)p = cpu_to_le64(val);
+	put_unaligned_t(__le64, cpu_to_le64(val), p);
 }
 
 #endif /* __XEN_UNALIGNED_H__ */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:16:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:16:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651787.1017635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCg9H-0006Jc-Gw; Mon, 11 Dec 2023 13:16:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651787.1017635; Mon, 11 Dec 2023 13:16: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 1rCg9H-0006JO-Dc; Mon, 11 Dec 2023 13:16:39 +0000
Received: by outflank-mailman (input) for mailman id 651787;
 Mon, 11 Dec 2023 13:16: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=g7EY=HW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCg9G-0005MG-6y
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:16:38 +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 82e8c21a-9827-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:16:36 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 EC187223CE;
 Mon, 11 Dec 2023 13:16:35 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id ABCFD134B0;
 Mon, 11 Dec 2023 13:16:35 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id N0eqKLMLd2XVUgAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 11 Dec 2023 13:16: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: 82e8c21a-9827-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702300596; 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=nBJS0i1q7hgxVXtg1Vp5RKK5sLWDTbrts9y24YukrYE=;
	b=UCYFiMm079+1G7FL4ka0wvGa9QNp7mkzQX6c1NeFx69eMT/Kws7xBcEMjKnAi1BXfve8kf
	zShqCZDLnnTZGRvdY668UVArxIRz127/YKRYD+n3d1o0gR9LRN4cz8zWCMEtIiUn+Vz8uD
	benrFxES1KI0W1gzERtQ/khJhDOxDsc=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702300595; 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=nBJS0i1q7hgxVXtg1Vp5RKK5sLWDTbrts9y24YukrYE=;
	b=u2M7SjEX9DgZcRqpryNoboEC90tqjvmh3O5dva/pALuzOBAKfyxo4BHKMGbH1HM/keYKBU
	ZEQxDTffZM0ne1BJEmM1s814qiVH9wU/Aqm85xQN+l5Jv8txfSyOo+IY/OkZuwNDcR0KMO
	UELHxgfa5Xq15dj+hYpxYRkUYIzazvs=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 3/3] xen: remove asm/unaligned.h
Date: Mon, 11 Dec 2023 14:16:16 +0100
Message-Id: <20231211131616.1839-4-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231211131616.1839-1-jgross@suse.com>
References: <20231211131616.1839-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -3.27
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -3.30
X-Spamd-Result: default: False [-3.30 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 REPLY(-4.00)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%]
X-Spam-Flag: NO

With include/xen/unaligned.h now dealing properly with unaligned
accesses for all architectures, asm/unaligned.h can be removed and
users can be switched to include xen/unaligned.h instead.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/include/asm/unaligned.h | 6 ------
 xen/common/lz4/defs.h                | 2 +-
 xen/common/lzo.c                     | 2 +-
 xen/common/unlzo.c                   | 2 +-
 xen/common/xz/private.h              | 2 +-
 xen/common/zstd/mem.h                | 2 +-
 xen/lib/xxhash32.c                   | 2 +-
 xen/lib/xxhash64.c                   | 2 +-
 8 files changed, 7 insertions(+), 13 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/unaligned.h

diff --git a/xen/arch/x86/include/asm/unaligned.h b/xen/arch/x86/include/asm/unaligned.h
deleted file mode 100644
index 6070801d4a..0000000000
--- a/xen/arch/x86/include/asm/unaligned.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_UNALIGNED_H__
-#define __ASM_UNALIGNED_H__
-
-#include <xen/unaligned.h>
-
-#endif /* __ASM_UNALIGNED_H__ */
diff --git a/xen/common/lz4/defs.h b/xen/common/lz4/defs.h
index 10609f5a53..6d81113266 100644
--- a/xen/common/lz4/defs.h
+++ b/xen/common/lz4/defs.h
@@ -10,7 +10,7 @@
 
 #ifdef __XEN__
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u16 get_unaligned_le16(const void *p)
diff --git a/xen/common/lzo.c b/xen/common/lzo.c
index a87c76dded..cc03f0f554 100644
--- a/xen/common/lzo.c
+++ b/xen/common/lzo.c
@@ -97,7 +97,7 @@
 #ifdef __XEN__
 #include <xen/lib.h>
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 #define get_unaligned_le16(_p) (*(u16 *)(_p))
 #endif
diff --git a/xen/common/unlzo.c b/xen/common/unlzo.c
index 74056778eb..bdcefa95b3 100644
--- a/xen/common/unlzo.c
+++ b/xen/common/unlzo.c
@@ -34,7 +34,7 @@
 
 #ifdef __XEN__
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u16 get_unaligned_be16(const void *p)
diff --git a/xen/common/xz/private.h b/xen/common/xz/private.h
index e6814250e8..2299705378 100644
--- a/xen/common/xz/private.h
+++ b/xen/common/xz/private.h
@@ -13,7 +13,7 @@
 #ifdef __XEN__
 #include <xen/kernel.h>
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u32 get_unaligned_le32(const void *p)
diff --git a/xen/common/zstd/mem.h b/xen/common/zstd/mem.h
index 2acae6a8ed..ae1e305126 100644
--- a/xen/common/zstd/mem.h
+++ b/xen/common/zstd/mem.h
@@ -23,7 +23,7 @@
 #ifdef __XEN__
 #include <xen/string.h> /* memcpy */
 #include <xen/types.h>  /* size_t, ptrdiff_t */
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #endif
 
 /*-****************************************
diff --git a/xen/lib/xxhash32.c b/xen/lib/xxhash32.c
index e8d403e5ce..32efa651c5 100644
--- a/xen/lib/xxhash32.c
+++ b/xen/lib/xxhash32.c
@@ -42,7 +42,7 @@
 #include <xen/errno.h>
 #include <xen/string.h>
 #include <xen/xxhash.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 
 /*-*************************************
  * Macros
diff --git a/xen/lib/xxhash64.c b/xen/lib/xxhash64.c
index 481e76fbcf..1858e236fe 100644
--- a/xen/lib/xxhash64.c
+++ b/xen/lib/xxhash64.c
@@ -43,7 +43,7 @@
 #include <xen/errno.h>
 #include <xen/string.h>
 #include <xen/xxhash.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #endif
 
 /*-*************************************
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:20:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651799.1017645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgDJ-0000p7-41; Mon, 11 Dec 2023 13:20:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651799.1017645; Mon, 11 Dec 2023 13:20:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgDI-0000p0-Vq; Mon, 11 Dec 2023 13:20:48 +0000
Received: by outflank-mailman (input) for mailman id 651799;
 Mon, 11 Dec 2023 13:20: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=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCgDI-0000ou-4a
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:20:48 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18622eda-9828-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 14:20:47 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a1f47f91fc0so512194566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 05:20:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 sf22-20020a1709078a9600b00982a92a849asm4859104ejc.91.2023.12.11.05.20.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 05:20:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18622eda-9828-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702300847; x=1702905647; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=LsL8j5ETEISIA2kyiKQ2hfctKZjMOHpwxzGX2dOt8OA=;
        b=EyLsgdj28qorI1muMXfz08lRRdWAcTvPUX6z0KajaJoGnuI74bmGU7hqu/giEMVkw1
         FLQrjQU3GV/C/ndeVLZW6pNhLQSIcM4GhD9s6WAathDZehvwqmAw7C+ZAgiz8Ba20F+6
         czAJNLG/fWdJ3YJ1AVvaCga+ypeBYbAoaQsucmppMLQ36X8JmbfW6MuiKaheakqDBhGL
         7DH2dKhvhD0rIpUUV5sARDfX1SauX0S5chzjOgxzW8tNVnuneymJMjG81oguzLBzDriO
         n2sLFHT9HlwDRCgQTVekdB3n/gIkLZZI5xYVJ2wclJQSl+sNQIKbDxddqmJaugB8TPhl
         6Clg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702300847; x=1702905647;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=LsL8j5ETEISIA2kyiKQ2hfctKZjMOHpwxzGX2dOt8OA=;
        b=PngeV4cgpoCAsW7XPOsSdKV6hMXG9kMyMM0N17bDyvEUN3TfEiDvy6DDOqibb6ptui
         P7xD8gk/D7SQ1gpsOUfaNTifFo17eeKTEo1+ioZ+K8X8w5e3O8iYT4Qno7+B98/rEMA5
         uSn1Zvul62CFglPrsUcjRBuA2+uZpOQimdH80HoKs5PZ/0vweBy9JwjXCcA9RdZxs7dr
         TVF2QUHx3CjqYedBx8fbg74t0dkH2ixE6c8EXPVv8jTSsQFcJeWCO1m+cJyDrMIIdk+j
         VbCB9kCjENaI2QbTk2Brjk4yQ7jhK9O7WQmFlaPYvjj9oY60bBJc9+FKFMtTd6Al4Sjz
         ZKCQ==
X-Gm-Message-State: AOJu0YwCauPwN7KDPkt7fCAf8p8XeVWPlLW3aWhZXAJLdT6SOc6HRHBb
	KDFfvNRVW+/51hP/l+9BJ0lj
X-Google-Smtp-Source: AGHT+IE5f1thURttX24PJxmrsvIqkyDizVedbWV9xkOf6gJHaEOTpdJKDB5/Tpi60BZo6EK3oqt+1g==
X-Received: by 2002:a17:906:74cf:b0:a19:532c:7678 with SMTP id z15-20020a17090674cf00b00a19532c7678mr2278374ejl.30.1702300846771;
        Mon, 11 Dec 2023 05:20:46 -0800 (PST)
Message-ID: <44bc9cb8-5465-417d-93a3-bb2b2cda9b8d@suse.com>
Date: Mon, 11 Dec 2023 14:20:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 2/5] xen/acpi: address violations of MISRA C:2012
 Rule 8.2
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1701936906.git.federico.serafini@bugseng.com>
 <47c08c496a403d60bbf5b18c7a079ac7a575efbc.1701936906.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312071643240.1265976@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312071643240.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2023 01:43, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Federico Serafini wrote:
>> Add missing parameter names. 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>



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:21:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:21:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651802.1017655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgDi-0001dB-AZ; Mon, 11 Dec 2023 13:21:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651802.1017655; Mon, 11 Dec 2023 13:21:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgDi-0001d4-7l; Mon, 11 Dec 2023 13:21:14 +0000
Received: by outflank-mailman (input) for mailman id 651802;
 Mon, 11 Dec 2023 13:21:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCgDh-0001Dk-0l
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:21:13 +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 26cbcb4a-9828-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:21:11 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a1f8f470903so181711066b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 05:21:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 sf22-20020a1709078a9600b00982a92a849asm4859104ejc.91.2023.12.11.05.21.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 05:21:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26cbcb4a-9828-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702300871; x=1702905671; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zJ6m0w9p7Dnzz78IqQQo1hT1wC1kP6Likj8D68/E4MU=;
        b=g/y8wHI1Beb0bxdm3T7Mw5ffkB+xVlNWSnT0C+fJPrX7MHXNoRJ+SBUMb99izsFwjD
         Yf1cPUNAzeu/7kvhB/1QE4nVpCgvqGMrKs+LyCxSrHWsWlBkS56ZApdAQsss4T/33OfB
         0WK9dKiUGLuafmF5Latb1LsqWrfYlDt3ZhYNXosAJUDSBWLjdpu61E9BSK0JMBIvDLe+
         APcSECbsuxxUbn4B/IWW6Oa3cVOPlslDq0DEyk3ZHOTh5cNlhRMIwdvRxADZNFYTay0Y
         vg2btu8QVfgD7/ZrRY/ZgcZaKYr3rCJ+AZP47PVyJjb7BzSD9FmNc1JSwgtocn1Ln3m5
         gDag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702300871; x=1702905671;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=zJ6m0w9p7Dnzz78IqQQo1hT1wC1kP6Likj8D68/E4MU=;
        b=NMGV5wK4qx6XgLwwUxPC6h92Z8nKaI9WcBA8Y3BbPb+8FiCTH5fYY4RoAfCR+2yCag
         P47g50WWgg7iKv7mOVSkWhCYNGXT2QP8NdFLHDyqLgYwg8SBAz1GJvXtKTKynDvSLmaC
         owBr2ozBzcNWkPPZAWqLxZRNYpSncX+5FJMOz0C+9k0+bRkfHnQeycH+C3SGr+2QUpdR
         9ZPSaao3knUBYMDFXoRwaQxKtp2Dd6A8VN/HIg6H0LWBYtWOLgkRh7H7+1RqQzvENywD
         y+U0V+7BWk//XAjX3r3xvTXnre5+oHMweuVxr2t5q0ke/H4btwFv8T+Pq7TU1oWtJPFm
         J+4Q==
X-Gm-Message-State: AOJu0YwTbjZl+PavA3oeKy6LqqSax0SEWaERba7bt5DIuZUX2EPVfx2l
	MmJKut19O3fs6HlB6w1IGAQz
X-Google-Smtp-Source: AGHT+IGxaTsQSjK6Ghn2ZN3pZytCiMVZ3/Q6a4OiDGRV0JmvO+PMko8kHxujp9Jx0mx4FSETiXkueg==
X-Received: by 2002:a17:906:5346:b0:a14:d6e2:fb1f with SMTP id j6-20020a170906534600b00a14d6e2fb1fmr2515275ejo.10.1702300870900;
        Mon, 11 Dec 2023 05:21:10 -0800 (PST)
Message-ID: <a0e8923b-c1bc-450f-a31a-232af31462d7@suse.com>
Date: Mon, 11 Dec 2023 14:21:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 3/5] x86/mm: remove compat_subarch_memory_op()
Content-Language: en-US
To: 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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1701936906.git.federico.serafini@bugseng.com>
 <285de0decf8ffe4277ce7e14a2561a693103f72b.1701936906.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312071634110.1265976@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312071634110.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2023 01:34, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Federico Serafini wrote:
>> Remove remove compat_subarch_memory_op() declaration: there is no
>> definition and there are no calls to such function in the XEN project.
>>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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




From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:21:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:21:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651806.1017665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgEI-0002Fc-Mz; Mon, 11 Dec 2023 13:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651806.1017665; Mon, 11 Dec 2023 13: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 1rCgEI-0002FT-K5; Mon, 11 Dec 2023 13:21:50 +0000
Received: by outflank-mailman (input) for mailman id 651806;
 Mon, 11 Dec 2023 13:21: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=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCgEH-0001Dk-Js
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:21: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 3cb6c0b8-9828-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:21:48 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a1e35c2807fso592599866b.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 05:21:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 sf22-20020a1709078a9600b00982a92a849asm4859104ejc.91.2023.12.11.05.21.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 05:21:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3cb6c0b8-9828-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702300907; x=1702905707; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=dVSrukEZfExlaUpZQoYOUi/ZxibAVaRdnsBeai8h7e8=;
        b=XqqGN38noY5w1E1iPHwEhEKdt+QCl1Dp4Di/XK19VV/7aaAyLO1XvC/ezKY9kf/mhp
         Ii90Ucl+27pAs5fQG9zTAazfq4M43V4I6V2UfIgkUyCUB7JETjkhjwjoPH7yrwRpFnOJ
         4E8l1o9Evp8C9dJKHMwlTwAKCjmeoP4mnNj6AGDHscckwAyxzNQAMldFUWoAM1uXh8M0
         Ts2ADu7QQG1LIOvF/Aoncx5iBNpsphnpdwOOb1mxXAjpv4BVC78FXLcSN+Gl1oR1e/xZ
         NZ34PqjEVKrK0uPow685+pRpD86+1BpP5JSUfW/h1CYagpl9ZxTJOFKUcKELneRO0KE4
         wRpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702300907; x=1702905707;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=dVSrukEZfExlaUpZQoYOUi/ZxibAVaRdnsBeai8h7e8=;
        b=XMrd8UygqCNSBWvWTNTmpETuqET9fVki3WKLgVVbr+NzL2RJgeSRGARw0fZOyj2qpy
         RJ4tKgPqQP++JJHFul6ayPPz8xRoSkhVIp0OzMHMua1/WvAeSlT9EpeNoBwlqtuD+tw6
         BXBBp65mUx4sDBTUpNv2WxkyxqmHZ9dIJbVz3vYMALJItHck6F2RpclyYuEkkqgbGNSm
         H1OkCVUfz+Y6sMtBZNAll5iAfEpadquA52OVKQG6ZPUlS2NKk67JTrYafISGJTpK3m76
         jden4laO6OLbPQr5UtbvUffT9NrOOb8y76YRH1PW1OxaCJDLuWJnxtbFEGroy5pq6nww
         USVA==
X-Gm-Message-State: AOJu0Yy8S5tj73XhuWv1qbRzou6Etb1J5dkXmWRZpPeD9VdgpkjBMzqY
	Vub1hlQEvIaJZRpTID2HYYBJ
X-Google-Smtp-Source: AGHT+IENWfI9o0r1b5MWqndW4pNwT/AVIE11txsOrYpODwyBf5qEodtgX+oUH+gAV0BN4q/H3Zl5hA==
X-Received: by 2002:a17:907:7f29:b0:a1e:cb47:3785 with SMTP id qf41-20020a1709077f2900b00a1ecb473785mr2595285ejc.68.1702300907534;
        Mon, 11 Dec 2023 05:21:47 -0800 (PST)
Message-ID: <d10ae5d0-314f-4795-9f90-f7028e599093@suse.com>
Date: Mon, 11 Dec 2023 14:21:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 4/5] x86/mm: address violations of MISRA C:2012
 Rule 8.2
Content-Language: en-US
To: 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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1701936906.git.federico.serafini@bugseng.com>
 <428b868a2b1aec2b50ccbe510bc3089203ac9c7b.1701936906.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312071640330.1265976@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312071640330.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2023 01:40, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Federico Serafini wrote:
>> Add missing parameter names. 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>



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:24:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651812.1017674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgGZ-0003e3-3u; Mon, 11 Dec 2023 13:24:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651812.1017674; Mon, 11 Dec 2023 13:24:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgGZ-0003dw-0d; Mon, 11 Dec 2023 13:24:11 +0000
Received: by outflank-mailman (input) for mailman id 651812;
 Mon, 11 Dec 2023 13: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=hS99=HW=linux.intel.com=zhao1.liu@srs-se1.protection.inumbo.net>)
 id 1rCgGX-0003dn-4s
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:24:09 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8d891b39-9828-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 14:24:05 +0100 (CET)
Received: from orsmga001.jf.intel.com ([10.7.209.18])
 by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 11 Dec 2023 05:24:02 -0800
Received: from liuzhao-optiplex-7080.sh.intel.com (HELO localhost)
 ([10.239.160.36])
 by orsmga001.jf.intel.com with ESMTP; 11 Dec 2023 05:23:52 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d891b39-9828-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1702301046; x=1733837046;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:content-transfer-encoding:in-reply-to;
  bh=kJqa5cHPgyxdSm3IILicVo1CXg7C3blKA3Wa2hGYEP4=;
  b=iGc++W9vb9a6+m+1N8SO8YoHphitLXMWO1z+gp8wM0RqnrrlabeIhpk9
   Eftfon9srEEtpyXLMsevqPJGjqfnWcWfTH6XO7woVZBrAlfFRrNhTakEj
   J3mPjzsHCPaDy3la9uL+wXptKK8QrpeHcqSCNeNPlbfgXE6moucQL5pl7
   rYuNmpoD2IWiw0ySSBHgyiFlE0+zbitfxR3LvKMLG6avQfokytklCY5C1
   mMxRifeUJ8Y1kTFZIJEvwOxGgqDQXC5lgvBiSgmwq4fgO9fsr+rKXwNxj
   pvbuDyJSy6ofnvB0P/8P9XK5UpPD74UJVNG8FI5FkjEqwTNOMUAeTrR3J
   Q==;
X-IronPort-AV: E=McAfee;i="6600,9927,10920"; a="13340125"
X-IronPort-AV: E=Sophos;i="6.04,267,1695711600"; 
   d="scan'208";a="13340125"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10920"; a="807299246"
X-IronPort-AV: E=Sophos;i="6.04,267,1695711600"; 
   d="scan'208";a="807299246"
Date: Mon, 11 Dec 2023 21:36:14 +0800
From: Zhao Liu <zhao1.liu@linux.intel.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Alex =?iso-8859-1?Q?Benn=E9e?= <alex.bennee@linaro.org>,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Yanan Wang <wangyanan55@huawei.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	Igor Mammedov <imammedo@redhat.com>,
	=?iso-8859-1?Q?C=E9dric?= Le Goater <clg@kaod.org>,
	=?iso-8859-1?Q?Fr=E9d=E9ric?= Barrat <fbarrat@linux.ibm.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Harsh Prateek Bora <harshpb@linux.ibm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony Perard <anthony.perard@citrix.com>,
	Paul Durrant <paul@xen.org>, Gerd Hoffmann <kraxel@redhat.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	Alistair Francis <alistair@alistair23.me>,
	"Edgar E . Iglesias" <edgar.iglesias@gmail.com>,
	Daniel P =?iso-8859-1?Q?=2E_Berrang=E9?= <berrange@redhat.com>,
	Bin Meng <bin.meng@windriver.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Weiwei Li <liwei1518@gmail.com>,
	Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, qemu-devel@nongnu.org,
	kvm@vger.kernel.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, qemu-arm@nongnu.org,
	qemu-riscv@nongnu.org, qemu-s390x@nongnu.org
Cc: Nina Schoetterl-Glausch <nsg@linux.ibm.com>,
	Thomas Huth <thuth@redhat.com>, Zhiyuan Lv <zhiyuan.lv@intel.com>,
	Zhenyu Wang <zhenyu.z.wang@intel.com>,
	Yongwei Ma <yongwei.ma@intel.com>, Zhao Liu <zhao1.liu@intel.com>
Subject: Re: [RFC 00/41] qom-topo: Abstract Everything about CPU Topology
Message-ID: <ZXcQTvoESEI6www0@intel.com>
References: <20231130144203.2307629-1-zhao1.liu@linux.intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=gb2312
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231130144203.2307629-1-zhao1.liu@linux.intel.com>

Hi maintainers,

Just a ping. Welcome your feedbacks!

We wonder if the current RFC is an appropriate attempt towards the final
hybrid topology.

Thanks,
Zhao

On Thu, Nov 30, 2023 at 10:41:22PM +0800, Zhao Liu wrote:
> Date: Thu, 30 Nov 2023 22:41:22 +0800
> From: Zhao Liu <zhao1.liu@linux.intel.com>
> Subject: [RFC 00/41] qom-topo: Abstract Everything about CPU Topology
> X-Mailer: git-send-email 2.34.1
> 
> From: Zhao Liu <zhao1.liu@intel.com>
> 
> Hi list,
> 
> This series is our latest attempt after the previous RFC [1] about
> hybrid topology support, which is based on the commit 4705fc0c8511
> ("Merge tag 'pull-for-8.2-fixes-231123-1' of https://gitlab.com/
> stsquad/qemu into staging") with our previous cleanup (patches link:
> https://lore.kernel.org/all/20231127145611.925817-1-zhao1.liu@linux.intel.com/).
> 
> In the previous RFC, Daniel suggested [2] us to use the modern QOM
> approach to define CPU topology, and based on this way, defining hybrid
> topology through cli is natural. (Thanks Daniel!)
> 
> About why we chose -device other than -object, please see the chapter.3
> "History of QOM Topology".
> 
> In fact, S390x already implements heterogeneity at the CPU level with
> QOM CPUs, i.e., different CPUs have different entitlements [3]. However,
> for more thorough heterogeneity, i.e., heterogeneous cores, clusters,
> dies, caches and even more, we still need to go farther in the QOM
> direction.
> 
> With these background, we propose this series to implement QOM "smp"
> topology in QEMU, and it's also the first step towards the heterogeneous
> topology (including CPU & cache topology) for virtualization case.
> 
> The overall goal is to both use QOM "smp" topology to be compatible with
> current -smp behavior, and to take into account different architectural
> setups/requirements for CPU topology (even including different designs
> for CPU hotplug and possible_cpus[] implementation), and ultimately to
> extend QEMU's ability to define CPU topology via -device even without
> -smp.
> 
> The current remining issue, mainly related to PPC, as it chose to build
> the pssible_cpus[] list at core granularity. Please see chapter.5 "Open
> Questions" for more thoughts on this issue.
> 
> For other architectures that build possible_cpus[] at CPU granularity,
> the transition to QOM topology will be similar to what was done for i386
> in this patchset (please feel free to point out any issues I've missed).
> 
> There's a lot of work, and the devil is in the details.
> 
> 
> Welcome your feedbacks!
> 
> 
> 1. Summary about What We Did?
> =============================
> 
> This series implements the basics of QOM topology and supports QOM
> topology for the i386 as the example:
> 
> * Introduce the general topology device and abstract all CPU topology
>   levels to topology devices:
> 
>     - including "cpu", "cpu-core", "cpu-cluster", "cpu-die",
>       "cpu-socket", "cpu-book", "cpu-drawer", and a special topology
>       root "cpu-slot" to manage topology tree.
> 
> * Allow user to create "smp" CPU topology via "-device", for example:
> 
>     The topology with 8 CPUs:
> 
>     -accel kvm -cpu host \
>     -device cpu-socket,id=sock0 \
>     -device cpu-die,id=die0,parent=sock0 \
>     -device cpu-core,id=core0,parent=die0,nr-threads=2 \
>     -device cpu-core,id=core1,parent=die0,nr-threads=2,plugged-threads=1 \
>     -device cpu-core,id=core2,parent=die0,nr-threads=2,plugged-threads=2 \
>     -device cpu-core,id=core3,parent=die0,nr-threads=2 \
>     -device host-x86_64-cpu,socket-id=0,die-id=0,core-id=1,thread-id=1 \
> 
> * Build a topology tree under machine, for example:
> 
>     One of the above CPUs:
> 
>     {
>         "props": {
>             "core-id": 0,
>             "socket-id": 0,
>             "thread-id": 0
>         },
>         "qom-path": "/machine/peripheral/cpu-slot/sock0/die0/core0/host-x86_64-cpu[0]",
>         "type": "host-x86_64-cpu",
>         "vcpus-count": 1
>     }
> 
> * Convert topology information configured via -smp into a QOM "smp"
>   topology tree (if the arch supports QOM topology).
> 
> 
> 2. What's the Problem?
> ======================
> 
> As computer architectures continue to innovate, the need for
> heterogeneous topology of virtual machine in QEMU is growing.
> 
> On the one hand, there is the need for heterogeneous CPU topology
> support. Heterogeneous CPU topology refers to systems that use more than
> one kind of processor or cores [4], the typical example is intel hybrid
> architecture with 2 core types [5], which will even have heterogeneous
> die topology [6]. And we can see that not only Intel, but also ARM and
> AMD's heterogeneous platforms will have the ability to support
> virtualization.
> 
> On the other hand, there is also a growing need for heterogeneous cache
> topology in QEMU. Not only will Intel's hybrid platforms introduce
> complex heterogeneous cache topology, but more platforms have aslo seen
> the strong demand for heterogeneous cache topology definition (e.g. ARM
> [7]). Although cache topology is strictly speaking a separate topology
> from CPU topology, in terms of the actual processor build process and
> the current QEMU's way to define cache topology (e.g., i386 [8] & ARM
> [9]), cache topology is and should be dependent on CPU topology to be
> defined.
> 
> With this background of increasing interest in heterogeneous computing,
> we need a flexible way (for accel) to define a wide variety of CPU
> topologies in QEMU.
> 
> Obviously, -smp is not enough, so here we propose a way to define CPU
> topology based on -device, in the hope that this will greatly expand the
> flexibility of QEMU's CPU topology definition.
> 
> 
> 3. History of QOM Topology
> ==========================
> 
> The intent of QOM topology is not to stop at QOM CPUs, but to abstract
> more CPU topology levels.
> 
> In fact, it's not a new term.
> 
> Back in 2014, Fan proposed [10] a hierarchical tree based on QOM node,
> QOM sockets, QOM cores and QOM cpu. Andreas also propsed [11] socket/
> core/thread QOM model to create hierarchical topology in place. From
> the discussion at that time, the hierarchy topology tree representation
> was what people (Igor said [12]) wanted. However, this work was not
> continued.
> 
> Then Bharata abstracted [13] the cpu-core to support core granularity
> hotplug in spapr. Until now, the only user of cpu-core is still spapr.
> 
> Cpu-cluster was introduced by Luc [14] to organize CPUs in different
> containers to support GDB for TCG case. Though this abstraction was
> descripted as: "mainly an internal QEMU representation and does not
> necessarily match with the notion of clusters on the real hardware",
> its name and function actually make it easy to correspond to the
> physical cluster/smp cluster (the difference, of course, is that TCG
> cluster collects CPUs directly, while the cluster as a CPU topology
> level collect cores, but this difference is not the impediment gap to
> converting "TCG " cluster to "general" cluster).
> 
> As CPU architectures evolve, QEMU has supported more topology levels
> (clusters, die, book and drawer) for virtualization case, while the
> existing cpu-core and cpu-cluster abstractions become fragmented.
> 
> And now, the need for defining hybrid topology has prompted us to
> rethink the QOM topology.
> 
> Daniel suggested [2] to use -object interfaces to define CPU topology,
> and we absorbed his design idea. But in practice we found that -device
> looked like a better approach to take advantage of the current QOM CPU
> device, cpu-core device and cpu-cluster device.
> 
> 
> 4. Design Overview
> ==================
> 
> 4.1. General Topology Device
> ============================
> 
> We introduce a new topology device as the basic abstraction, then all
> levels of the CPU topology are derived from this general topology device
> type.
> 
> This topology device is the basic unit for building the topology tree.
> Children topology devices are inserted into the queue of the parent, and
> the child<> property is created between the children and their parent.
> 
> As the root of the topology tree, we introduce a special topology device
> "cpu-slot". It is created by the machine at machine's initialization and
> collects the topology devices created by the user from the cli, and thus
> builds the topology tree.
> 
> The cpu-slot is also responsible for statistics on global topology
> information, and whenever there is a new topology child, the cpu-slot as
> root is notified to update topology informantion. In addition, different
> architectures have different requirements for topology (e.g., support
> for different levels), and such limitations/properties are applied to
> cpu-slot, which is checked when adding the new child topology unit in
> topology tree.
> 
> 
> 4.2. Derived QOM Topology Devices
> =================================
> 
> Based on the new general topology device type, we convert CPU, cpu-core
> and cpu-cluster from general devices to topology devices.
> 
> And we also abstract cpu-die, cpu-socket, cpu-book and cpu-drawer as
> topology devices.
> 
> 
> 4.3. New Device Category "DEVICE_CATEGORY_CPU_DEF"
> ==================================================
> 
> The topology devices can be divided into two general categories:
> 
> * One, as the basic topology components, should be created before board
>   initialization, to predefine the basic topology structure for the
>   system, and is used to initialize MachineState.possible_cpus at
>   machine's initialization. This category doesn't support hotplug, such
>   as:
> 
>     cpu-core (non-PPC core), cpu-cluster, cpu-die, cpu-socket, cpu-book
>     and cpu-drawer.
> 
>   Thus, we introduce the new device category "DEVICE_CATEGORY_CPU_DEF"
>   to mark these devices and create them from cli before board
>   initialization.
> 
> * The other are CPU and PPC core, which are the granularity of
>   MachineState.possible_cpus.
> 
>   They're created from MachineState.possible_cpus in place during
>   machine initialization or are plugged into MachineState.possible_cpus
>   through hotplug way.
> 
>   For these devices, they could be created from cli only after board
>   initialization.
> 
> 
> 4.4. User-child Interface to Build Child<> from Cli
> ===================================================
> 
> Topology device is bus-less device, and needs child<> to build topology
> hierarchical relationship like:
> 
> /machine/peripheral/cpu-slot/sock*/die*/core*/cpu*
> 
> Therefore, we introduce a new user-child interface to insert hooks into
> device_add path to get/specify object parent for topology devices.
> 
> If a topology device specify "parent" option in -device, it will be add
> to the corresponding topology parent with child<> property.
> 
> If no "parent" option, the topology device will have the default parent
> "cpu-slot". This ensures cpu-slot could collect all topology units to
> build complete topology tree.
> 
> 
> 5. Open Questions
> =================
> 
> There's a special case, user could define topology via -device without
> -smp (that's the future hybrid topology case!).
> 
> In the design of current QOM topology, the numbers of maximum CPUs and
> pre plugged CPUs could be collected during core devices realize.
> 
> For the (non-PPC) architectures which build possible_cpus[] at CPU
> granularity, the cores will be created before possible_cpus[]
> initialization and then CPU slot could know how many maximum CPUs will
> be supported to fill possible_cpus[].
> 
> But for PPC, the possible_cpus[] is at core granularity and PPC core
> could only be created after possible_cpus[] initialization, so that
> CPU slot cannot know the the numbers of maximum CPUs (PPC cores) and pre
> plugged CPUs (PPC cores). So for PPC, the "-smp" is necessary and cannot
> be omitted.
> 
> For PPC this potential impact, i.e., even though QOM topology is
> supported in PPC, it is not possible to omit -smp to create the topology
> only via -device as for i386, and since PPC does not currently support
> heterogeneous topology, this potential impact might be acceptable?
> 
> 
> 6. Future TODOs
> ===============
> 
> The current QOM topology RFC is only the very first step to introduce
> the most basic QOM support, and it tries to be as compatible as possible
> with existing SMP facilities.
> 
> The ultimate goal is to completely replace the current smp-related
> topology structures with cpu-slot.
> 
> There are many TODOs:
> 
> * Add unit tests.
> * Support QOM topology for all architectures.
> * Get rid of MachineState.smp and MachineClass.smp_props with cpu-slot.
> * Extend QOM topology to hybrid topology.
> * Introduce "-device-set" which is derived from Daniel's "-object-set"
>   idea [2] to create multiple duplicate devices.
> ...
> 
> 
> 7. Patch Summary
> ================
> 
> Patch  1- 3: Create DEVICE_CATEGORY_CPU_DEF devices before board
>              initialization.
> Patch  4- 7: Support child<> creation from cli.
> Ptach  8-12: Introduce general topology device.
> Patch 13-26: Abstract all topology levels to topology devices.
> Patch 27-34: Introduce cpu-slot to manage the CPU topology of machine.
> Patch 35-41: Convert i386's CPU creation & hotplug to be based on QOM
>              topology.
> 
> 
> 8. Reference
> ============
> 
> [1]:  Hybrid topology RFC:
>       https://mail.gnu.org/archive/html/qemu-devel/2023-02/msg03205.html
> [2]:  Daniel's suggestion about QOM topology:
>       https://mail.gnu.org/archive/html/qemu-devel/2023-02/msg03320.html
> [3]:  S390x topology document (by Nina):
>       https://lists.gnu.org/archive/html/qemu-devel/2023-10/msg04842.html
> [4]:  Heterogeneous computing:
>       https://en.wikipedia.org/wiki/Heterogeneous_computing
> [5]:  12th gen¡¯s Intel hybrid technology:
>       https://www.intel.com/content/www/us/en/support/articles/000091896/processors.html
> [6]:  Intel Meteor Lake (14th gen) architecture overview:
>       https://www.intel.com/content/www/us/en/content-details/788851/meteor-lake-architecture-overview.html
> [7]:  Need of ARM heterogeneous cache topology (by Yanan):
>       https://mail.gnu.org/archive/html/qemu-devel/2023-02/msg05139.html
> [8]:  Cache topology implementation for i386:
>       https://lists.gnu.org/archive/html/qemu-devel/2023-10/msg08251.html
> [9]:  Cluster for ARM to define shared L2 cache and L3 tag (by Yanan):
>       https://lore.kernel.org/all/20211228092221.21068-1-wangyanan55@huawei.com/
> [10]: [PATCH v1 0/4] prebuild cpu QOM tree /machine/node/socket/core
>       ->link-cpu (by Fan):
>       https://lore.kernel.org/all/cover.1395217538.git.chen.fan.fnst@cn.fujitsu.com/
> [11]: [PATCH RFC 0/4] target-i386: PC socket/core/thread modeling,
>       part 1 (by Andreas):
>       https://lore.kernel.org/all/1427131923-4670-1-git-send-email-afaerber@suse.de/
> [12]: "Now we want to have similar QOM tree for introspection which
>       helps express topology as well" (by Igor):
>       https://lore.kernel.org/all/20150407170734.51faac90@igors-macbook-pro.local/
> [13]: [for-2.7 PATCH v3 06/15] cpu: Abstract CPU core type (by Bharata)
>       https://lore.kernel.org/all/1463024905-28401-7-git-send-email-bharata@linux.vnet.ibm.com/
> [14]: [PATCH v8 01/16] hw/cpu: introduce CPU clusters (by Luc):
>       https://lore.kernel.org/all/20181207090135.7651-2-luc.michel@greensocs.com/
> 
> Thanks and Best Regards,
> Zhao
> 
> ---
> Zhao Liu (41):
>   qdev: Introduce new device category to cover basic topology device
>   qdev: Allow qdev_device_add() to add specific category device
>   system: Create base category devices from cli before board
>     initialization
>   qom/object: Introduce helper to resolve path from non-direct parent
>   qdev: Set device parent and id after setting properties
>   qdev: Introduce user-child interface to collect devices from -device
>   qdev: Introduce parent option in -device
>   hw/core/topo: Introduce CPU topology device abstraction
>   hw/core/topo: Support topology index for topology device
>   hw/core/topo: Add virtual method to update topology info for parent
>   hw/core/topo: Add virtual method to check topology child
>   hw/core/topo: Add helpers to traverse the CPU topology tree
>   hw/core/cpu: Convert CPU from general device to topology device
>   PPC/ppc-core: Offload core-id to PPC specific core abstarction
>   hw/cpu/core: Allow to configure plugged threads for cpu-core
>   PPC/ppc-core: Limit plugged-threads and nr-threads to be equal
>   hw/cpu/core: Convert cpu-core from general device to topology device
>   hw/cpu/cluster: Rename CPUClusterState to CPUCluster
>   hw/cpu/cluster: Wrap TCG related ops and props into CONFIG_TCG
>   hw/cpu/cluster: Descript cluster is not only used for TCG in comment
>   hw/cpu/cluster: Allow cpu-cluster to be created by -device
>   hw/cpu/cluster: Convert cpu-cluster from general device to topology
>     device
>   hw/cpu/die: Abstract cpu-die level as topology device
>   hw/cpu/socket: Abstract cpu-socket level as topology device
>   hw/cpu/book: Abstract cpu-book level as topology device
>   hw/cpu/drawer: Abstract cpu-drawer level as topology device
>   hw/core/slot: Introduce CPU slot as the root of CPU topology
>   hw/core/slot: Maintain the core queue in CPU slot
>   hw/core/slot: Statistics topology information in CPU slot
>   hw/core/slot: Check topology child to be added under CPU slot
>   hw/machine: Plug cpu-slot into machine to maintain topology tree
>   hw/machine: Build smp topology tree from -smp
>   hw/machine: Validate smp topology tree without -smp
>   hw/core/topo: Implement user-child to collect topology device from cli
>   hw/i386: Make x86_cpu_new() private in x86.c
>   hw/i386: Allow x86_cpu_new() to specify parent for new CPU
>   hw/i386: Allow i386 to create new CPUs from QOM topology
>   hw/i386: Wrap apic id and topology sub ids assigning as helpers
>   hw/i386: Add the interface to search parent for QOM topology
>   hw/i386: Support QOM topology
>   hw/i386: Cleanup non-QOM topology support
> 
>  MAINTAINERS                        |  16 +
>  accel/kvm/kvm-all.c                |   4 +-
>  gdbstub/system.c                   |   2 +-
>  hw/core/cpu-common.c               |  25 +-
>  hw/core/cpu-slot.c                 | 605 +++++++++++++++++++++++++++++
>  hw/core/cpu-topo.c                 | 399 +++++++++++++++++++
>  hw/core/machine-smp.c              |   9 +
>  hw/core/machine.c                  |  10 +
>  hw/core/meson.build                |   2 +
>  hw/cpu/book.c                      |  46 +++
>  hw/cpu/cluster.c                   |  50 ++-
>  hw/cpu/core.c                      |  72 ++--
>  hw/cpu/die.c                       |  46 +++
>  hw/cpu/drawer.c                    |  46 +++
>  hw/cpu/meson.build                 |   2 +-
>  hw/cpu/socket.c                    |  46 +++
>  hw/i386/x86.c                      | 319 ++++++++++-----
>  hw/net/virtio-net.c                |   2 +-
>  hw/ppc/meson.build                 |   1 +
>  hw/ppc/pnv.c                       |   6 +-
>  hw/ppc/pnv_core.c                  |  17 +-
>  hw/ppc/ppc_core.c                  | 102 +++++
>  hw/ppc/spapr.c                     |  28 +-
>  hw/ppc/spapr_cpu_core.c            |  19 +-
>  hw/usb/xen-usb.c                   |   3 +-
>  hw/xen/xen-legacy-backend.c        |   2 +-
>  include/hw/arm/armsse.h            |   2 +-
>  include/hw/arm/xlnx-versal.h       |   4 +-
>  include/hw/arm/xlnx-zynqmp.h       |   4 +-
>  include/hw/boards.h                |  13 +
>  include/hw/core/cpu-slot.h         | 108 +++++
>  include/hw/core/cpu-topo.h         | 111 ++++++
>  include/hw/core/cpu.h              |   8 +-
>  include/hw/cpu/book.h              |  38 ++
>  include/hw/cpu/cluster.h           |  51 ++-
>  include/hw/cpu/core.h              |  26 +-
>  include/hw/cpu/die.h               |  38 ++
>  include/hw/cpu/drawer.h            |  38 ++
>  include/hw/cpu/socket.h            |  38 ++
>  include/hw/i386/x86.h              |   5 +-
>  include/hw/ppc/pnv_core.h          |  11 +-
>  include/hw/ppc/ppc_core.h          |  58 +++
>  include/hw/ppc/spapr_cpu_core.h    |  12 +-
>  include/hw/qdev-core.h             |   1 +
>  include/hw/riscv/microchip_pfsoc.h |   4 +-
>  include/hw/riscv/sifive_u.h        |   4 +-
>  include/monitor/qdev.h             |   7 +-
>  include/monitor/user-child.h       |  57 +++
>  include/qom/object.h               |  26 ++
>  qom/object.c                       |  31 ++
>  system/meson.build                 |   1 +
>  system/qdev-monitor.c              | 141 ++++++-
>  system/user-child.c                |  72 ++++
>  system/vl.c                        |  53 ++-
>  target/i386/cpu.c                  |   4 +
>  tests/unit/meson.build             |   5 +-
>  56 files changed, 2607 insertions(+), 243 deletions(-)
>  create mode 100644 hw/core/cpu-slot.c
>  create mode 100644 hw/core/cpu-topo.c
>  create mode 100644 hw/cpu/book.c
>  create mode 100644 hw/cpu/die.c
>  create mode 100644 hw/cpu/drawer.c
>  create mode 100644 hw/cpu/socket.c
>  create mode 100644 hw/ppc/ppc_core.c
>  create mode 100644 include/hw/core/cpu-slot.h
>  create mode 100644 include/hw/core/cpu-topo.h
>  create mode 100644 include/hw/cpu/book.h
>  create mode 100644 include/hw/cpu/die.h
>  create mode 100644 include/hw/cpu/drawer.h
>  create mode 100644 include/hw/cpu/socket.h
>  create mode 100644 include/hw/ppc/ppc_core.h
>  create mode 100644 include/monitor/user-child.h
>  create mode 100644 system/user-child.c
> 
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:24:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:24:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651816.1017684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgHA-0004BW-Fo; Mon, 11 Dec 2023 13:24:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651816.1017684; Mon, 11 Dec 2023 13:24:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgHA-0004BP-D9; Mon, 11 Dec 2023 13:24:48 +0000
Received: by outflank-mailman (input) for mailman id 651816;
 Mon, 11 Dec 2023 13:24:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCgH8-0003dn-DM
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:24: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 a683e8a2-9828-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 14:24:45 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c38de1ee4so25357515e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 05:24:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g9-20020a05600c310900b0040c3953cda5sm9883227wmo.45.2023.12.11.05.24.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 05:24:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a683e8a2-9828-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702301085; x=1702905885; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=O8qks4NZm7pw4UJIrlc3V00DWzpXG4PBarXADqLHIb8=;
        b=CJhz67+EoQ0QCg6N1uT2zEUVirfvpOOkrLR0uaRlvZ8/kvlYhm7IwgiREEW4OYo1WV
         HKrvPQUhtOPb+9lADlXRoODRM7SGq/TivRqNefVCGNXOZGUE/+kU+NZj8IIgeqd27mxY
         0CUvguyLHR0T0Yiy6EZUPduqPi8XubB9HiSAz5UGGw7CrAP7o9LIt20gleAvgilczYFd
         tXF90Ke2vGRK8xwJCtsXzCcPNmsCYrGVgZVhYNI/72wgC1alVxH7ucAdBLM4BgGk/lsU
         qUp+j9C7bY7wosaqPFIhqj68j1RCtq1Gc9wdM/JhPnzIbCom22t5j67aX3vHTFwEkpeM
         efHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702301085; x=1702905885;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=O8qks4NZm7pw4UJIrlc3V00DWzpXG4PBarXADqLHIb8=;
        b=WLvmXdZeFXTagWlSl4jJNyC9RxCiwO/KllcWdqPiNhLAt3WnxowDZ/UowcWqnq2YOn
         mDczeIvpHTZ6M0eYRGNUtB3c5b8XRtJcHmyinEisivdG1O0Ab8EAuSZvbZU0CQfxTxcf
         0pmwf4AV09yk2tiL41CcnSD2OjAS2NcU+bwhpQqGS2kntXzbBgtl4pRBzrxK3FI200iJ
         XKJseQm1hVc6S+WYOGQfeB4VWstnvAVTlFeOh8GIphfgvEt7KFhBLrYtKBlay4CFjBa2
         AL6a4fDvCGwfiDhEQVloVYWZGwV/6i5r0+yxCegY1IbeLoewaMi/0Vlekdb+BgZJq6I4
         MBIw==
X-Gm-Message-State: AOJu0YzkDbgfkUHqWHWiDmn0t+frS1XeuM9SggHf6QkpG2D9ld2PGlss
	oMogvt0GXxoy9wGv64Ulug1V
X-Google-Smtp-Source: AGHT+IHnuLyBEw55NSU5rxgsZQ/fl7yCc5bE4eoRT5+KQBYNeUlaE7vFaCT6DS7DnlyBSGRaZMRkXw==
X-Received: by 2002:a7b:c4ca:0:b0:40b:5e1c:5c23 with SMTP id g10-20020a7bc4ca000000b0040b5e1c5c23mr2379484wmk.56.1702301085043;
        Mon, 11 Dec 2023 05:24:45 -0800 (PST)
Message-ID: <078ac081-e6d7-4de0-9d1a-d836ef8453c4@suse.com>
Date: Mon, 11 Dec 2023 14:24:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 5/5] AMD/IOMMU: address violations of MISRA C:2012
 Rule 8.2
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1701936906.git.federico.serafini@bugseng.com>
 <68a1922cce9a68a8b69661d564fccc012cf5f414.1701936906.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312071639430.1265976@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312071639430.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.12.2023 01:39, Stefano Stabellini wrote:
> On Thu, 7 Dec 2023, Federico Serafini wrote:
>> Add missing parameter names to address violations of MISRA C:2012
>> Rule 8.2. Remove trailing spaces and use C standard types to comply
>> with XEN coding style. 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>



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:25:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:25:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651817.1017695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgHN-0004XN-Oc; Mon, 11 Dec 2023 13:25:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651817.1017695; Mon, 11 Dec 2023 13:25: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 1rCgHN-0004XG-Kf; Mon, 11 Dec 2023 13:25:01 +0000
Received: by outflank-mailman (input) for mailman id 651817;
 Mon, 11 Dec 2023 13:25: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 1rCgHM-0004Wo-Qs; Mon, 11 Dec 2023 13:25: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 1rCgHM-0004w3-Ni; Mon, 11 Dec 2023 13:25: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 1rCgHM-0003Eg-AS; Mon, 11 Dec 2023 13:25:00 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCgHM-0005il-9r; Mon, 11 Dec 2023 13:25: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=lNOTkdhwstTH8r84uGSiac5cdJqeAWYxYi+MBDZ7KUo=; b=x8yHNHbvYeIBaJjt8owoc3Eza5
	82r7vgtVW07OIXptwNRjHESp3RwilygzaKr5x+V7BFBBcGnxeXo49y3oIkpoXt5XasWXN0x6y60bI
	1hTpLYh/ea7vFWbdtR+A0Fnor5fQw33Q9KrotGQ3v6MZ178rmjr4WrSrIUFqFbGSgaAM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184090-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184090: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=5b5481526fc9b89e5f3843d9bb3d6c4f5ce41060
X-Osstest-Versions-That:
    ovmf=bb13a4adabcf0e5a1608583c386472773dca5726
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 13:25:00 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 5b5481526fc9b89e5f3843d9bb3d6c4f5ce41060
baseline version:
 ovmf                 bb13a4adabcf0e5a1608583c386472773dca5726

Last test of basis   184087  2023-12-11 03:43:08 Z    0 days
Testing same since   184090  2023-12-11 10:42:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Yuwei Chen <yuwei.chen@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    
 test-amd64-i386-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
   bb13a4adab..5b5481526f  5b5481526fc9b89e5f3843d9bb3d6c4f5ce41060 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:30:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:30:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651826.1017705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgN1-0006xT-C8; Mon, 11 Dec 2023 13:30:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651826.1017705; Mon, 11 Dec 2023 13:30:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgN1-0006xM-7z; Mon, 11 Dec 2023 13:30:51 +0000
Received: by outflank-mailman (input) for mailman id 651826;
 Mon, 11 Dec 2023 13:30: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=DlHr=HW=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rCgMz-0006vx-T2
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:30:49 +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 7ee92440-9829-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 14:30:48 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2c9fe0b5b28so56788421fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 05:30:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ee92440-9829-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702301448; x=1702906248; 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=/Sv073sw38M5XUHhg2bmfvZnIS/XjUxvjVoDIpH000Q=;
        b=BTay1ffaCBgseyWsZm8NMGeOGuOM80UMs9Xhb5CZCnKESXiWlKMnUkkCFIpH8fjn0l
         ax25biMJ6CnWxdCFxSYhzcsrPyPRc+kT3fLRRd+WmZ+K/td5HV4blSXPnUs8dL0qEnVk
         N7ruuNLWxOgeFNl4Dss9MdnyooPUZw7GOwx+s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702301448; x=1702906248;
        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=/Sv073sw38M5XUHhg2bmfvZnIS/XjUxvjVoDIpH000Q=;
        b=C/QKjNmY/ei0BVQ+25w6RmxwRXMFqsD6OJBZfVsNAHRTLwRozpGNhzQU9sEwnZ6cmj
         1XNfMJ5YD26sHIu/1tanBSl180iPpa35wUEB7kFunqj33e9KlQL2y49K6na+NRjlXJDQ
         gjNpKPjvcEVDDCAntDPkQXR0gt2+PllsiGnvuB4DM6HzIGRiolw/CN4uvPk94533u8/e
         6qvElQW8Pln34ckO4nKniv23BGhDDod4rukzyyJ7iZOZ09Iq3JjN1XVz3HazpYMUhQnm
         Lgby3gUnibC465ZnXTTrYwlmnInEY8uK9aGgGa2lHLbz4FT6WYCb9lEVf1sbImgPk5X5
         fLOg==
X-Gm-Message-State: AOJu0YwlVW7tFDnydPWKauUQ5PpzOhBEpqKQF/6V10em+1KymxI9rLBv
	agZWqHDCNJihGFBWcHwml3lUXhPQ4kg//vdC1q+GspidgH7R77al
X-Google-Smtp-Source: AGHT+IFJciHzkyEMyb4MC/mfDQV18qU/hB47qYbwRTPjfJyRafJuKDCfPKt05hqq/SuBEmP0t3p49qw2eXP04Lj4W6M=
X-Received: by 2002:a2e:2a01:0:b0:2cc:201f:28a2 with SMTP id
 q1-20020a2e2a01000000b002cc201f28a2mr1011972ljq.49.1702301448266; Mon, 11 Dec
 2023 05:30:48 -0800 (PST)
MIME-Version: 1.0
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <4006f1eb1977a89a57c5c02f003a2fefc06dfc42.1702283415.git.nicola.vetrini@bugseng.com>
In-Reply-To: <4006f1eb1977a89a57c5c02f003a2fefc06dfc42.1702283415.git.nicola.vetrini@bugseng.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Mon, 11 Dec 2023 13:30:37 +0000
Message-ID: <CA+zSX=aZYt_Kzim6XFsPku1UVK+0QGafVdfeJqT7HZpVkz7JCg@mail.gmail.com>
Subject: Re: [XEN PATCH 4/7] xen/sched: address MISRA C:2012 Rule 2.1
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
	Dario Faggioli <dfaggioli@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 11, 2023 at 10:30=E2=80=AFAM Nicola Vetrini
<nicola.vetrini@bugseng.com> wrote:
>
> The break statement after the return statement is definitely unreachable
> and can be removed with no functional change.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Acked-by: George Dunlap <george.dunlap@cloud.com>


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:48:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:48:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651885.1017719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgeD-0003zG-QM; Mon, 11 Dec 2023 13:48:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651885.1017719; Mon, 11 Dec 2023 13:48: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 1rCgeD-0003yq-N5; Mon, 11 Dec 2023 13:48:37 +0000
Received: by outflank-mailman (input) for mailman id 651885;
 Mon, 11 Dec 2023 13:48:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=g7EY=HW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCgeD-0003yP-1U
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:48:37 +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 f82f0309-982b-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:48:33 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 1174C223E4;
 Mon, 11 Dec 2023 13:48:30 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id CFEFB138FF;
 Mon, 11 Dec 2023 13:48:29 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id na14MS0Td2V5XAAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 11 Dec 2023 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>
X-Inumbo-ID: f82f0309-982b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702302510; 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=rISOabk/O5Wf7niWMjEmE4W7QdZVELpmEGuNpHII/3Y=;
	b=GayPgh4uEr/XQfiNmtIrAVLIfKc2qCxjO1epPhSmxJjSwIRHsyqX3G3jUDJzX3h1avr6SD
	c/xuoI8ve4WQz2D83opkQJcRYDLx386YXunlxQ7Jd4T1E1wibOmNxDzB9BSInJwNRgjHZ6
	8W64uOoaI1TnCERSJ2jlKGqbsJVcKMI=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702302510; 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=rISOabk/O5Wf7niWMjEmE4W7QdZVELpmEGuNpHII/3Y=;
	b=GayPgh4uEr/XQfiNmtIrAVLIfKc2qCxjO1epPhSmxJjSwIRHsyqX3G3jUDJzX3h1avr6SD
	c/xuoI8ve4WQz2D83opkQJcRYDLx386YXunlxQ7Jd4T1E1wibOmNxDzB9BSInJwNRgjHZ6
	8W64uOoaI1TnCERSJ2jlKGqbsJVcKMI=
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: fix and cleanup of event handling
Date: Mon, 11 Dec 2023 14:48:24 +0100
Message-Id: <20231211134827.7130-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spam-Score: 15.00
X-Spam-Flag: YES
X-Spam-Level: 
X-Spamd-Bar: /
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=GayPgh4u;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [0.98 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-0.01)[50.54%];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 0.98
X-Rspamd-Queue-Id: 1174C223E4
X-Spam-Flag: NO

Patch 1 fixes an issue when running as PVH guest
Patches 2 + 3 are cleanups

Juergen Gross (3):
  Mini-OS: call event handlers always with interrupts off
  Mini-OS: drop in_callback variable
  Mini-OS: cleanup hypervisor.c

 hypervisor.c         | 94 +++++++++++++++++++-------------------------
 include/hypervisor.h |  2 -
 sched.c              | 11 ------
 3 files changed, 40 insertions(+), 67 deletions(-)

-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:48:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:48:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651889.1017747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgeM-0004cB-F8; Mon, 11 Dec 2023 13:48:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651889.1017747; Mon, 11 Dec 2023 13:48: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 1rCgeM-0004c4-CD; Mon, 11 Dec 2023 13:48:46 +0000
Received: by outflank-mailman (input) for mailman id 651889;
 Mon, 11 Dec 2023 13:48:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=g7EY=HW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCgeL-0003yP-79
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:48:45 +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 fe5c72c7-982b-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:48:41 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 15DB3223E4;
 Mon, 11 Dec 2023 13:48:41 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id DFE44138FF;
 Mon, 11 Dec 2023 13:48:40 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id vD5/NTgTd2WGXAAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 11 Dec 2023 13:48: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: fe5c72c7-982b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702302521; 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=mptyI+2MUmEUOVgsCKUKUDyQ+zkn0mcu28+VmTFAif0=;
	b=Uf4SIDrL22ohW4Mkmsi4Ikkh3CzK5tb4BCBkjt1devyV/GC9K/gWaJiBQPRzyiqOIn5pDI
	tl3dckYrZRG2pe+4zQggVq0ehIgKqXSildsiEqFetSqDQgl79rKfpN0YmoZqfFpiLLKZyt
	9xw0xfTxARtzV0ufGg0VGc7q6RnAUFk=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702302521; 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=mptyI+2MUmEUOVgsCKUKUDyQ+zkn0mcu28+VmTFAif0=;
	b=Uf4SIDrL22ohW4Mkmsi4Ikkh3CzK5tb4BCBkjt1devyV/GC9K/gWaJiBQPRzyiqOIn5pDI
	tl3dckYrZRG2pe+4zQggVq0ehIgKqXSildsiEqFetSqDQgl79rKfpN0YmoZqfFpiLLKZyt
	9xw0xfTxARtzV0ufGg0VGc7q6RnAUFk=
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: drop in_callback variable
Date: Mon, 11 Dec 2023 14:48:26 +0100
Message-Id: <20231211134827.7130-3-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231211134827.7130-1-jgross@suse.com>
References: <20231211134827.7130-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spam-Level: 
X-Spamd-Bar: /
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=Uf4SIDrL;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [0.99 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 0.99
X-Rspamd-Queue-Id: 15DB3223E4
X-Spam-Flag: NO

Now that do_hypervisor_callback() is always called with interrupts off
the in_callback variable meant to handle recursive calls of
do_hypervisor_callback() can be dropped.

As a precaution add a test to do_hypervisor_callback() that interrupts
are really disabled and crash in case this is not true.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 hypervisor.c         |  6 ------
 include/hypervisor.h |  2 --
 sched.c              | 11 -----------
 3 files changed, 19 deletions(-)

diff --git a/hypervisor.c b/hypervisor.c
index 5309daa3..6facce3e 100644
--- a/hypervisor.c
+++ b/hypervisor.c
@@ -37,8 +37,6 @@ EXPORT_SYMBOL(hypercall_page);
     ((sh)->evtchn_pending[idx] &                \
      ~(sh)->evtchn_mask[idx])
 
-int in_callback;
-
 #ifndef CONFIG_PARAVIRT
 extern shared_info_t shared_info;
 
@@ -104,8 +102,6 @@ void do_hypervisor_callback(struct pt_regs *regs)
 
     BUG_ON(!irqs_disabled());
 
-    in_callback = 1;
-   
     vcpu_info->evtchn_upcall_pending = 0;
     /* NB x86. No need for a barrier here -- XCHG is a barrier on x86. */
 #if !defined(__i386__) && !defined(__x86_64__)
@@ -127,8 +123,6 @@ void do_hypervisor_callback(struct pt_regs *regs)
             do_event(port, regs);
         }
     }
-
-    in_callback = 0;
 }
 
 void force_evtchn_callback(void)
diff --git a/include/hypervisor.h b/include/hypervisor.h
index 1d092719..b852a42a 100644
--- a/include/hypervisor.h
+++ b/include/hypervisor.h
@@ -50,6 +50,4 @@ void mask_evtchn(uint32_t port);
 void unmask_evtchn(uint32_t port);
 void clear_evtchn(uint32_t port);
 
-extern int in_callback;
-
 #endif /* __HYPERVISOR_H__ */
diff --git a/sched.c b/sched.c
index e162cb60..3335efa0 100644
--- a/sched.c
+++ b/sched.c
@@ -76,11 +76,6 @@ void schedule(void)
     prev = current;
     local_irq_save(flags); 
 
-    if (in_callback) {
-        printk("Must not call schedule() from a callback\n");
-        BUG();
-    }
-
     do {
         /* Examine all threads.
            Find a runnable thread, but also wake up expired ones and find the
@@ -151,15 +146,12 @@ struct thread* create_thread(char *name, void (*function)(void *), void *data)
 EXPORT_SYMBOL(create_thread);
 
 #ifdef HAVE_LIBC
-static struct _reent callback_reent;
 struct _reent *__getreent(void)
 {
     struct _reent *_reent;
 
     if (!threads_started)
         _reent = _impure_ptr;
-    else if (in_callback)
-        _reent = &callback_reent;
     else
         _reent = &get_current()->reent;
 
@@ -246,9 +238,6 @@ void init_sched(void)
 {
     printk("Initialising scheduler\n");
 
-#ifdef HAVE_LIBC
-    _REENT_INIT_PTR((&callback_reent))
-#endif
     idle_thread = create_thread("Idle", idle_thread_fn, NULL);
 }
 
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:48:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:48:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651887.1017733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgeG-0004H1-64; Mon, 11 Dec 2023 13:48:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651887.1017733; Mon, 11 Dec 2023 13: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 1rCgeG-0004Fv-2w; Mon, 11 Dec 2023 13:48:40 +0000
Received: by outflank-mailman (input) for mailman id 651887;
 Mon, 11 Dec 2023 13:48: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=g7EY=HW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCgeF-0003yP-B7
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:48:39 +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 fb1afd6d-982b-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:48:36 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 8FF881FB93;
 Mon, 11 Dec 2023 13:48:35 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 65196138FF;
 Mon, 11 Dec 2023 13:48:35 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id Cix6FzMTd2WCXAAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 11 Dec 2023 13:48:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb1afd6d-982b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702302515; 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=tZcEXwjYXRWfbXp2N679W+w4cg8R77K0ZFxZJnPRIZs=;
	b=WRpSXFQ9FVNVwQ4Gv9mzKwHRuP8lYig0iT/QgXwELUy4IRdf75Sws37Kg5l2bzbkbPVfLA
	WMBUxHcJvyApC2z3LkE6QJTd1xyDrLdBc7JD9MDIoIqPJQgeRVnjasIwVDpXg1r1JoWV1p
	sJNI/vj7XrILGeSKQot3aHBi97E+7m8=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702302515; 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=tZcEXwjYXRWfbXp2N679W+w4cg8R77K0ZFxZJnPRIZs=;
	b=WRpSXFQ9FVNVwQ4Gv9mzKwHRuP8lYig0iT/QgXwELUy4IRdf75Sws37Kg5l2bzbkbPVfLA
	WMBUxHcJvyApC2z3LkE6QJTd1xyDrLdBc7JD9MDIoIqPJQgeRVnjasIwVDpXg1r1JoWV1p
	sJNI/vj7XrILGeSKQot3aHBi97E+7m8=
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: call event handlers always with interrupts off
Date: Mon, 11 Dec 2023 14:48:25 +0100
Message-Id: <20231211134827.7130-2-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231211134827.7130-1-jgross@suse.com>
References: <20231211134827.7130-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 3.70
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: ***
X-Spam-Score: 3.70
X-Spamd-Result: default: False [3.70 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

When unmasking an event channel the associated event handler can be
called with interrupts enabled when not running as a PV guest.

This can result in hard to debug races in case e.g. a handler is
registered for multiple events or when the handler is not using a lock
as it assumes to have interrupts disabled.

Instead of using the PV interrupt disabling points just before calling
the handler, do the disabling once at the very start of
force_evtchn_callback().

Replace the evtchn_upcall_mask test in unmask_evtchn() with the more
appropriate irqs_disabled() test.

As a precaution add a test to do_hypervisor_callback() that interrupts
are really disabled and crash in case this is not true.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 hypervisor.c | 26 +++++++++-----------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/hypervisor.c b/hypervisor.c
index f2cbbc1c..5309daa3 100644
--- a/hypervisor.c
+++ b/hypervisor.c
@@ -102,6 +102,8 @@ void do_hypervisor_callback(struct pt_regs *regs)
     shared_info_t *s = HYPERVISOR_shared_info;
     vcpu_info_t   *vcpu_info = &s->vcpu_info[cpu];
 
+    BUG_ON(!irqs_disabled());
+
     in_callback = 1;
    
     vcpu_info->evtchn_upcall_pending = 0;
@@ -131,27 +133,19 @@ void do_hypervisor_callback(struct pt_regs *regs)
 
 void force_evtchn_callback(void)
 {
-#ifdef XEN_HAVE_PV_UPCALL_MASK
-    int save;
-#endif
     vcpu_info_t *vcpu;
+    unsigned long flags;
+
+    local_irq_save(flags);
+
     vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()];
-#ifdef XEN_HAVE_PV_UPCALL_MASK
-    save = vcpu->evtchn_upcall_mask;
-#endif
 
     while (vcpu->evtchn_upcall_pending) {
-#ifdef XEN_HAVE_PV_UPCALL_MASK
-        vcpu->evtchn_upcall_mask = 1;
-#endif
-        barrier();
         do_hypervisor_callback(NULL);
         barrier();
-#ifdef XEN_HAVE_PV_UPCALL_MASK
-        vcpu->evtchn_upcall_mask = save;
-        barrier();
-#endif
     };
+
+    local_irq_restore(flags);
 }
 
 inline void mask_evtchn(uint32_t port)
@@ -177,9 +171,7 @@ inline void unmask_evtchn(uint32_t port)
               &vcpu_info->evtchn_pending_sel) )
     {
         vcpu_info->evtchn_upcall_pending = 1;
-#ifdef XEN_HAVE_PV_UPCALL_MASK
-        if ( !vcpu_info->evtchn_upcall_mask )
-#endif
+        if ( !irqs_disabled() )
             force_evtchn_callback();
     }
 }
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 13:48:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 13:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.651891.1017761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgeS-00052Y-UV; Mon, 11 Dec 2023 13:48:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 651891.1017761; Mon, 11 Dec 2023 13: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 1rCgeS-00052N-QF; Mon, 11 Dec 2023 13:48:52 +0000
Received: by outflank-mailman (input) for mailman id 651891;
 Mon, 11 Dec 2023 13:48: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=g7EY=HW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCgeQ-0003yP-SB
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 13:48:50 +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 01acbb79-982c-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 14:48:47 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 9E5AF223E4;
 Mon, 11 Dec 2023 13:48:46 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 69AD9138FF;
 Mon, 11 Dec 2023 13:48:46 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id G652GD4Td2WLXAAAn2gu4w
 (envelope-from <jgross@suse.com>); Mon, 11 Dec 2023 13:48:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01acbb79-982c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702302526; 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=OA3eqJkLhrJF95nie+tSJNJgPrb6XVcu2lYX465lxis=;
	b=RxgiYQryzIXbg3BaZ/Bl6v1l/TrDP5b5pWFFxcoIArAeoYL9jxLTuBGyi8iUwRh8Eh79nB
	PODVSfrpRVihpzTam7Qb630g2hYlngNXQL81km0fHbmYrzIvhrr/AcoOiyKJFVqaWYsH9K
	dzXjGo9Ikl5789VVNcNZ5aUSIEqeqF8=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702302526; 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=OA3eqJkLhrJF95nie+tSJNJgPrb6XVcu2lYX465lxis=;
	b=RxgiYQryzIXbg3BaZ/Bl6v1l/TrDP5b5pWFFxcoIArAeoYL9jxLTuBGyi8iUwRh8Eh79nB
	PODVSfrpRVihpzTam7Qb630g2hYlngNXQL81km0fHbmYrzIvhrr/AcoOiyKJFVqaWYsH9K
	dzXjGo9Ikl5789VVNcNZ5aUSIEqeqF8=
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: cleanup hypervisor.c
Date: Mon, 11 Dec 2023 14:48:27 +0100
Message-Id: <20231211134827.7130-4-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231211134827.7130-1-jgross@suse.com>
References: <20231211134827.7130-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 8.80
X-Spam-Flag: NO
X-Spamd-Result: default: False [8.80 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCPT_COUNT_FIVE(0.00)[5];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Level: ********
X-Spam-Score: 8.80
Authentication-Results: smtp-out1.suse.de;
	none

Do the following cleanups in hypervisor.c:

- Let hypervisor.c conform to the coding style.
- Drop the bogus "inline" attributes of exported functions.
- Replace a always zero cpu variable with smp_processor_id() as
  elsewhere in the code.
- Replace "if () BUG()" with BUG_ON() in case the condition has no
  side effects.
- Drop the unused cpu parameter from the active_evtchns() macro.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 hypervisor.c | 62 ++++++++++++++++++++++++++--------------------------
 1 file changed, 31 insertions(+), 31 deletions(-)

diff --git a/hypervisor.c b/hypervisor.c
index 6facce3e..ba535556 100644
--- a/hypervisor.c
+++ b/hypervisor.c
@@ -1,27 +1,27 @@
 /******************************************************************************
  * hypervisor.c
- * 
+ *
  * Communication to/from hypervisor.
- * 
+ *
  * Copyright (c) 2002-2003, K A Fraser
  * Copyright (c) 2005, Grzegorz Milos, gm281@cam.ac.uk,Intel Research Cambridge
- * 
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to
  * deal in the Software without restriction, including without limitation the
  * 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.
  */
 
@@ -33,9 +33,8 @@
 
 EXPORT_SYMBOL(hypercall_page);
 
-#define active_evtchns(cpu,sh,idx)              \
-    ((sh)->evtchn_pending[idx] &                \
-     ~(sh)->evtchn_mask[idx])
+#define active_evtchns(sh, idx)                           \
+    ((sh)->evtchn_pending[idx] & ~(sh)->evtchn_mask[idx])
 
 #ifndef CONFIG_PARAVIRT
 extern shared_info_t shared_info;
@@ -48,10 +47,10 @@ int hvm_get_parameter(int idx, uint64_t *value)
     xhv.domid = DOMID_SELF;
     xhv.index = idx;
     ret = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv);
-    if ( ret < 0 )
-        BUG();
+    BUG_ON(ret < 0);
 
     *value = xhv.value;
+
     return ret;
 }
 
@@ -62,6 +61,7 @@ int hvm_set_parameter(int idx, uint64_t value)
     xhv.domid = DOMID_SELF;
     xhv.index = idx;
     xhv.value = value;
+
     return HYPERVISOR_hvm_op(HVMOP_set_param, &xhv);
 }
 
@@ -87,18 +87,15 @@ void unmap_shared_info(void)
     xrtp.gpfn = virt_to_pfn(&shared_info);
     if ( HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrtp) != 0 )
         BUG();
-
-    return;
 }
 #endif
 
 void do_hypervisor_callback(struct pt_regs *regs)
 {
-    unsigned long  l1, l2, l1i, l2i;
-    unsigned int   port;
-    int            cpu = 0;
+    unsigned long l1, l2, l1i, l2i;
+    unsigned int port;
     shared_info_t *s = HYPERVISOR_shared_info;
-    vcpu_info_t   *vcpu_info = &s->vcpu_info[cpu];
+    vcpu_info_t *vcpu_info = &s->vcpu_info[smp_processor_id()];
 
     BUG_ON(!irqs_disabled());
 
@@ -113,13 +110,13 @@ void do_hypervisor_callback(struct pt_regs *regs)
     {
         l1i = __ffs(l1);
         l1 &= ~(1UL << l1i);
-        
-        while ( (l2 = active_evtchns(cpu, s, l1i)) != 0 )
+
+        while ( (l2 = active_evtchns(s, l1i)) != 0 )
         {
             l2i = __ffs(l2);
             l2 &= ~(1UL << l2i);
 
-            port = (l1i * (sizeof(unsigned long) * 8)) + l2i;
+            port = l1i * sizeof(unsigned long) * 8 + l2i;
             do_event(port, regs);
         }
     }
@@ -134,7 +131,8 @@ void force_evtchn_callback(void)
 
     vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()];
 
-    while (vcpu->evtchn_upcall_pending) {
+    while ( vcpu->evtchn_upcall_pending )
+    {
         do_hypervisor_callback(NULL);
         barrier();
     };
@@ -142,14 +140,15 @@ void force_evtchn_callback(void)
     local_irq_restore(flags);
 }
 
-inline void mask_evtchn(uint32_t port)
+void mask_evtchn(uint32_t port)
 {
     shared_info_t *s = HYPERVISOR_shared_info;
+
     synch_set_bit(port, &s->evtchn_mask[0]);
 }
 EXPORT_SYMBOL(mask_evtchn);
 
-inline void unmask_evtchn(uint32_t port)
+void unmask_evtchn(uint32_t port)
 {
     shared_info_t *s = HYPERVISOR_shared_info;
     vcpu_info_t *vcpu_info = &s->vcpu_info[smp_processor_id()];
@@ -160,9 +159,9 @@ inline void unmask_evtchn(uint32_t port)
      * The following is basically the equivalent of 'hw_resend_irq'. Just like
      * a real IO-APIC we 'lose the interrupt edge' if the channel is masked.
      */
-    if (  synch_test_bit        (port,    &s->evtchn_pending[0]) && 
+    if ( synch_test_bit(port, &s->evtchn_pending[0]) &&
          !synch_test_and_set_bit(port / (sizeof(unsigned long) * 8),
-              &vcpu_info->evtchn_pending_sel) )
+                                 &vcpu_info->evtchn_pending_sel) )
     {
         vcpu_info->evtchn_upcall_pending = 1;
         if ( !irqs_disabled() )
@@ -171,9 +170,10 @@ inline void unmask_evtchn(uint32_t port)
 }
 EXPORT_SYMBOL(unmask_evtchn);
 
-inline void clear_evtchn(uint32_t port)
+void clear_evtchn(uint32_t port)
 {
     shared_info_t *s = HYPERVISOR_shared_info;
+
     synch_clear_bit(port, &s->evtchn_pending[0]);
 }
 EXPORT_SYMBOL(clear_evtchn);
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:03:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:03:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652122.1017770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgsb-00036q-3l; Mon, 11 Dec 2023 14:03:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652122.1017770; Mon, 11 Dec 2023 14:03:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgsb-00036j-11; Mon, 11 Dec 2023 14:03:29 +0000
Received: by outflank-mailman (input) for mailman id 652122;
 Mon, 11 Dec 2023 14:03: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=pUvq=HW=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rCgsa-00036Y-5W
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:03:28 +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 0c2233b5-982e-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:03:24 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a1d2f89ddabso548507266b.1; 
 Mon, 11 Dec 2023 06:03:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c2233b5-982e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702303403; x=1702908203; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=1gJZa6piGzQ7dXvAGieW+iXJk6dCQghFB8Wpd4pq3AA=;
        b=G+fZby7m+tqs+o5yJ81zwokrsWVwKXUMxXQeOccsS+gzG8F/Pc/3reC/7wi2WLrr77
         2WP4CPfzO+wvudj+1fNoA0Ka9ZvR1vxVq0Mw+z//CT9pzHVNjKKewehZ4voL0B0FOrjB
         /HSMyEwX9Cu5uSdGLGTfp+uAZJzX6yc3aA1HEkdLk8BGxwS5he99f06SaXoUgMp6TfTK
         i8irvFe04L0UrHmgp3kuK/jfhVFucTrAgneO50D1lYw5OVS0BojiGDrv9Goma82yPCfB
         QuLnxPzOAop5ikZtv+RvXEbJjbpVw/DBD3sqBLt6s01ltyU6kfZ0VKnMNImCB2H4xkjj
         gDfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702303403; x=1702908203;
        h=to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1gJZa6piGzQ7dXvAGieW+iXJk6dCQghFB8Wpd4pq3AA=;
        b=pceWS85snblLQr4NsETpbUDMTHAMnKYCf0XJphJ8wm/rKBApIO0JGyxkD4wvpjnmTp
         aj6gqcHQER10k1V0rTkQvDHYre0RPGFiqeKmVtHvF7tmIdV0SU5m7hTTue6Thjm850nS
         dLMj4z9ORNhdWGL2wOPLpKR1R6DCEUEhVCyA8tYMgWyhLM6u/pZHzk4kTh6hD4KKdCq0
         Bhroyt8xNxz8bXnYJp3W98FM4SzWrlNaNlFlhOU1xVkMEoHZwTq1tzYO1uR26VPxtChq
         qs6O47d0aZRIKbuArX1oLPnJBE2YkiD7EEQBNPZ5lkQ+0iZm43kQ+04LAuhZ97iQ9hJs
         cEjg==
X-Gm-Message-State: AOJu0YwNxztdtHEMz0oTb6MMcDZl7A8c4t14rNfO20xYZVv8gFxl31ta
	PSb3x0m9ntweUhNGAmpvLYOnFKz7XKID452BLTc=
X-Google-Smtp-Source: AGHT+IEwF+ny0pRx5cLbp2T+sxJJRf4fJix4EeaD/LaJe7FIiBCffM1MnCbatVyBih2v/0vPn5b4IEmsG4/ahPEecaQ=
X-Received: by 2002:a17:906:7c51:b0:a19:a19b:78c4 with SMTP id
 g17-20020a1709067c5100b00a19a19b78c4mr2024094ejp.135.1702303402565; Mon, 11
 Dec 2023 06:03:22 -0800 (PST)
MIME-Version: 1.0
From: Mario Marietto <marietto2008@gmail.com>
Date: Mon, 11 Dec 2023 15:02:45 +0100
Message-ID: <CA+1FSiii2etikw9LKdJ5Ebn+z-3-e5UXh3cJjBgYGJYtq3q=Ww@mail.gmail.com>
Subject: xc_dom_guest_type: image not capable of booting inside a HV M
 container: Invalid kernel
To: Elliott Mitchell <ehem+freebsd@m5p.com>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Chuck Zmudzinski <brchuckz@netscape.net>, 
	xen-devel <xen-devel@lists.xenproject.org>, xen-users-request@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: multipart/alternative; boundary="0000000000009c2744060c3c6561"

--0000000000009c2744060c3c6561
Content-Type: text/plain; charset="UTF-8"

Hello.

Finally I tried to recompile the FreeBSD kernel using the @Elliott Mitchell
<ehem+freebsd@m5p.com> code because I want to boot FreeBSD as domU with Xen
installed on my Arm 32 bit Chromebook. Unfortunately it didn't work at all.
Maybe I've missed something / I haven't understood well what to do. Please
give me some suggestions.

Basically this is what I did :

$ created a vm called FreeBSD-13.2-RELEASE-armv7.img with qemu / kvm /
libvirt / virt-manager

$ within the vm : mkdir /build-xen

$ cd /usr

$ git clone https://gitlab.com/ehem/freebsd-src.git
<https://gitlab.com/ehem/freebsd-src.git?fbclid=IwAR09ukOdBXCR3gJznvHWpnWM8VEZqnX1l4ZMza_7lhoAjfPYAGbvcqwjh94>

$ cd freebsd-src

$ make KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7 buildkernel

$ make KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7 DESTDIR=/build-xen
installkernel

$ echo "/dev/xbd0 / ufs rw 1 1" > /mnt/etc/fstab

$ nano /etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm on
secure")

$ renamed the directories dtb to dtb_ and kernel to kernel_ that are inside
the /boot dir of the vm

$ copied the directory dtb and kernel from the directory /build-xen to the
directory /boot inside the vm

$ shut down the vm

$ copied the directory /build-xen outside of the vm using this method (in
this case I used Linux installed on the Host OS,because the kernel that I'm
using on the Chromebook has the kernel parameter related to the ufs2 fs set
to off) :

on my X64 workstation :

# modprobe ufs

# sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.img

# ls /dev/loop0*

/dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop0p5

# mount -t ufs -o ufstype=ufs2 /dev/loop0p5 ./FreeBSD-xen

then :

# nano freebsd.cfg

kernel="/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel"
memory=64
name="freebsd"
vcpus=1
autoballon="off"
disk=[ 'phy:/dev/loop0,xvda,w' ]
# nano start-freebsd
losetup -fP FreeBSD-13.2-RELEASE-armv7.img
xl create freebsd.cfg
xl console freebsd

# ./start-freebsd

Parsing config from freebsd.cfg
xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not
capable of booting inside a HV
M container: Invalid kernel
libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:cannot
(re-)build domain: -3
libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
1:Non-existent domain
libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Unable
to destroy guest
libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruction
of domain failed
freebsd is an invalid domain identifier (rc=-6)

I have also tried with kernel.bin :

# nano freebsd.cfg

kernel="/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin"
memory=64
name="freebsd"
vcpus=1
autoballon="off"
disk=[ 'phy:/dev/loop0,xvda,w' ]

# ./start-freebsd

Parsing config from freebsd.cfg
xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found:
Invalid kernel
libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 2:cannot
(re-)build domain: -3
libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
2:Non-existent domain
libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 2:Unable
to destroy guest
libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 2:Destruction
of domain failed
freebsd is an invalid domain identifier (rc=-6)

-- 
Mario.

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

<div dir=3D"ltr"><div class=3D"gmail-" dir=3D"auto"><div class=3D"gmail-x1i=
orvi4 gmail-x1pi30zi gmail-x1l90r2v gmail-x1swvt13" id=3D"gmail-:r1df:"><di=
v class=3D"gmail-x78zum5 gmail-xdt5ytf gmail-xz62fqu gmail-x16ldp7u"><div c=
lass=3D"gmail-xu06os2 gmail-x1ok221b"><span class=3D"gmail-x193iq5w gmail-x=
euugli gmail-x13faqbe gmail-x1vvkbs gmail-x10flsy6 gmail-x1lliihq gmail-x1s=
928wv gmail-xhkezso gmail-x1gmr53x gmail-x1cpjm7i gmail-x1fgarty gmail-x194=
3h6x gmail-x4zkp8e gmail-x41vudc gmail-x6prxxf gmail-xvq8zen gmail-xo1l8bm =
gmail-xzsf02u gmail-x1yc453h" dir=3D"auto"><div class=3D"gmail-xdj266r gmai=
l-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-x126k92a"><div =
style=3D"text-align:start">Hello.</div><div style=3D"text-align:start"><br>=
</div><div style=3D"text-align:start">Finally I tried to recompile the Free=
BSD kernel using the <a class=3D"gmail_plusreply" id=3D"plusReplyChip-0" hr=
ef=3D"mailto:ehem+freebsd@m5p.com" tabindex=3D"-1">@Elliott Mitchell</a> co=
de because I want to boot FreeBSD as domU with Xen installed on my Arm 32 b=
it Chromebook. Unfortunately it didn&#39;t work at all. Maybe I&#39;ve miss=
ed something / I haven&#39;t understood well what to do. Please give me som=
e suggestions.<br></div><div style=3D"text-align:start"><br></div><div dir=
=3D"auto" style=3D"text-align:start">Basically this is what I did :</div><d=
iv dir=3D"auto" style=3D"text-align:start"><br></div></div><div class=3D"gm=
ail-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail=
-x126k92a"><div dir=3D"auto" style=3D"text-align:start">$ created a vm call=
ed FreeBSD-13.2-RELEASE-armv7.img with qemu / kvm / libvirt / virt-manager<=
/div><div dir=3D"auto" style=3D"text-align:start"><br></div><div dir=3D"aut=
o" style=3D"text-align:start">$ within the vm : mkdir /build-xen</div><div =
dir=3D"auto" style=3D"text-align:start"><br></div><div dir=3D"auto" style=
=3D"text-align:start">$ cd /usr</div><div dir=3D"auto" style=3D"text-align:=
start"><br></div><div dir=3D"auto" style=3D"text-align:start">$ <span><a ta=
bindex=3D"-1"></a></span>git clone <span><a class=3D"gmail-x1i10hfl gmail-x=
jbqb8w gmail-x6umtig gmail-x1b1mbwd gmail-xaqea5y gmail-xav7gou gmail-x9f61=
9 gmail-x1ypdohk gmail-xt0psk2 gmail-xe8uvvx gmail-xdj266r gmail-x11i5rnm g=
mail-xat24cr gmail-x1mh8g0r gmail-xexx8yu gmail-x4uap5 gmail-x18d9i69 gmail=
-xkhd6sd gmail-x16tdsg8 gmail-x1hl2dhg gmail-xggy1nq gmail-x1a2a7pz gmail-x=
t0b8zv gmail-x1fey0fg" href=3D"https://gitlab.com/ehem/freebsd-src.git?fbcl=
id=3DIwAR09ukOdBXCR3gJznvHWpnWM8VEZqnX1l4ZMza_7lhoAjfPYAGbvcqwjh94" rel=3D"=
nofollow noreferrer" role=3D"link" tabindex=3D"0" target=3D"_blank">https:/=
/gitlab.com/ehem/freebsd-src.git</a><br></span></div><div dir=3D"auto" styl=
e=3D"text-align:start"><span><br></span></div><div dir=3D"auto" style=3D"te=
xt-align:start">$ cd freebsd-src</div><div dir=3D"auto" style=3D"text-align=
:start"><br></div><div dir=3D"auto" style=3D"text-align:start">$ make KERNC=
ONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7 buildkernel</div><div dir=3D=
"auto" style=3D"text-align:start"><br></div><div dir=3D"auto" style=3D"text=
-align:start">$ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7 DE=
STDIR=3D/build-xen installkernel</div><div dir=3D"auto" style=3D"text-align=
:start"><br></div><div dir=3D"auto" style=3D"text-align:start">$ echo &quot=
;/dev/xbd0 / ufs rw 1 1&quot; &gt; /mnt/etc/fstab</div><div dir=3D"auto" st=
yle=3D"text-align:start"><br></div><div dir=3D"auto" style=3D"text-align:st=
art">$ nano /etc/ttys (add the line &#39;xc0 &quot;/usr/libexec/getty Pc&qu=
ot; xterm on secure&quot;)</div><div dir=3D"auto" style=3D"text-align:start=
"><br></div><div dir=3D"auto" style=3D"text-align:start">$ renamed the dire=
ctories dtb to dtb_ and kernel to kernel_ that are inside the /boot dir of =
the vm</div><div dir=3D"auto" style=3D"text-align:start"><br></div><div dir=
=3D"auto" style=3D"text-align:start">$ copied the directory dtb and kernel =
from the directory /build-xen to the directory /boot inside the vm</div><di=
v dir=3D"auto" style=3D"text-align:start"><br></div><div dir=3D"auto" style=
=3D"text-align:start">$ shut down the vm</div><div dir=3D"auto" style=3D"te=
xt-align:start"><br></div></div><div class=3D"gmail-x11i5rnm gmail-xat24cr =
gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k92a"><div dir=3D"auto=
" style=3D"text-align:start">$ copied the directory /build-xen outside of t=
he vm using this method (in this case I used Linux installed on the Host OS=
,because the kernel that I&#39;m using on the Chromebook has the kernel par=
ameter related to the ufs2 fs set to off) :</div><div dir=3D"auto" style=3D=
"text-align:start"><br></div></div><div class=3D"gmail-x11i5rnm gmail-xat24=
cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k92a"><div dir=3D"a=
uto" style=3D"text-align:start">on my X64 workstation :</div><div dir=3D"au=
to" style=3D"text-align:start"><br></div></div><div class=3D"gmail-x11i5rnm=
 gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k92a"><=
div dir=3D"auto" style=3D"text-align:start"># modprobe ufs</div></div><div =
class=3D"gmail-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xt=
lvy1s gmail-x126k92a"><div dir=3D"auto" style=3D"text-align:start"><br></di=
v><div dir=3D"auto" style=3D"text-align:start"># sudo losetup -fP FreeBSD-1=
3.2-RELEASE-armv7.img</div><div dir=3D"auto" style=3D"text-align:start"><br=
></div></div><div class=3D"gmail-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmai=
l-x1vvkbs gmail-xtlvy1s gmail-x126k92a"><div dir=3D"auto" style=3D"text-ali=
gn:start"># ls /dev/loop0*</div></div><div class=3D"gmail-x11i5rnm gmail-xa=
t24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k92a"><div dir=
=3D"auto" style=3D"text-align:start"><br></div><div dir=3D"auto" style=3D"t=
ext-align:start">/dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop0p5</div><di=
v dir=3D"auto" style=3D"text-align:start"><br></div></div><div class=3D"gma=
il-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-=
x126k92a"><div dir=3D"auto" style=3D"text-align:start"># mount -t ufs -o uf=
stype=3Dufs2 /dev/loop0p5 ./FreeBSD-xen</div></div><div class=3D"gmail-x11i=
5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k92=
a"><div dir=3D"auto" style=3D"text-align:start"><br></div><div dir=3D"auto"=
 style=3D"text-align:start">then :</div><div dir=3D"auto" style=3D"text-ali=
gn:start"><br></div></div><div class=3D"gmail-x11i5rnm gmail-xat24cr gmail-=
x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k92a"><div dir=3D"auto" styl=
e=3D"text-align:start"># nano freebsd.cfg</div><div dir=3D"auto" style=3D"t=
ext-align:start"><br></div></div><div class=3D"gmail-x11i5rnm gmail-xat24cr=
 gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k92a"><div dir=3D"aut=
o" style=3D"text-align:start">kernel=3D&quot;/mnt/zroot2/zroot2/OS/Chromebo=
ok/domU/freebsd-xen/boot-xen/kernel/kernel&quot;</div><div dir=3D"auto" sty=
le=3D"text-align:start">memory=3D64</div><div dir=3D"auto" style=3D"text-al=
ign:start">name=3D&quot;freebsd&quot;</div><div dir=3D"auto" style=3D"text-=
align:start">vcpus=3D1</div><div dir=3D"auto" style=3D"text-align:start">au=
toballon=3D&quot;off&quot;</div><div dir=3D"auto" style=3D"text-align:start=
">disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]</div></div><div class=3D"gmail=
-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x1=
26k92a"><div dir=3D"auto" style=3D"text-align:start"># nano start-freebsd</=
div></div><div class=3D"gmail-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x=
1vvkbs gmail-xtlvy1s gmail-x126k92a"><div dir=3D"auto" style=3D"text-align:=
start">losetup -fP FreeBSD-13.2-RELEASE-armv7.img</div><div dir=3D"auto" st=
yle=3D"text-align:start">xl create freebsd.cfg</div><div dir=3D"auto" style=
=3D"text-align:start">xl console freebsd</div></div><div class=3D"gmail-x11=
i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k9=
2a"><div dir=3D"auto" style=3D"text-align:start"><br></div><div dir=3D"auto=
" style=3D"text-align:start"># ./start-freebsd</div></div><div class=3D"gma=
il-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-=
x126k92a"><div dir=3D"auto" style=3D"text-align:start"><br></div><div dir=
=3D"auto" style=3D"text-align:start">Parsing config from freebsd.cfg</div><=
div dir=3D"auto" style=3D"text-align:start">xc: error: panic: xg_dom_elfloa=
der.c:63: xc_dom_guest_type: image not capable of booting inside a HV</div>=
<div dir=3D"auto" style=3D"text-align:start">M container: Invalid kernel</d=
iv><div dir=3D"auto" style=3D"text-align:start">libxl: error: libxl_dom.c:5=
71:libxl__build_dom: xc_dom_parse_image failed</div><div dir=3D"auto" style=
=3D"text-align:start">libxl: error: libxl_create.c:1640:domcreate_rebuild_d=
one: Domain 1:cannot (re-)build domain: -3</div><div dir=3D"auto" style=3D"=
text-align:start">libxl: error: libxl_domain.c:1183:libxl__destroy_domid: D=
omain 1:Non-existent domain</div><div dir=3D"auto" style=3D"text-align:star=
t">libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Unab=
le to destroy guest</div><div dir=3D"auto" style=3D"text-align:start">libxl=
: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruction of dom=
ain failed</div><div dir=3D"auto" style=3D"text-align:start">freebsd is an =
invalid domain identifier (rc=3D-6)</div></div><div class=3D"gmail-x11i5rnm=
 gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k92a"><=
div dir=3D"auto" style=3D"text-align:start"><br></div><div dir=3D"auto" sty=
le=3D"text-align:start">I have also tried with kernel.bin :</div><div dir=
=3D"auto" style=3D"text-align:start"><br></div></div><div class=3D"gmail-x1=
1i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmail-x126k=
92a"><div dir=3D"auto" style=3D"text-align:start"># nano freebsd.cfg</div><=
div dir=3D"auto" style=3D"text-align:start"><br></div></div><div class=3D"g=
mail-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy1s gmai=
l-x126k92a"><div dir=3D"auto" style=3D"text-align:start">kernel=3D&quot;/mn=
t/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin&q=
uot;</div><div dir=3D"auto" style=3D"text-align:start">memory=3D64</div><di=
v dir=3D"auto" style=3D"text-align:start">name=3D&quot;freebsd&quot;</div><=
div dir=3D"auto" style=3D"text-align:start">vcpus=3D1</div><div dir=3D"auto=
" style=3D"text-align:start">autoballon=3D&quot;off&quot;</div><div dir=3D"=
auto" style=3D"text-align:start">disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]=
</div><div dir=3D"auto" style=3D"text-align:start"><br></div></div><div cla=
ss=3D"gmail-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail-xtlvy=
1s gmail-x126k92a"><div dir=3D"auto" style=3D"text-align:start"># ./start-f=
reebsd</div><div dir=3D"auto" style=3D"text-align:start"><br></div></div><d=
iv class=3D"gmail-x11i5rnm gmail-xat24cr gmail-x1mh8g0r gmail-x1vvkbs gmail=
-xtlvy1s gmail-x126k92a"><div dir=3D"auto" style=3D"text-align:start">Parsi=
ng config from freebsd.cfg</div><div dir=3D"auto" style=3D"text-align:start=
">xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found:=
 Invalid kernel</div><div dir=3D"auto" style=3D"text-align:start">libxl: er=
ror: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed</div><div =
dir=3D"auto" style=3D"text-align:start">libxl: error: libxl_create.c:1640:d=
omcreate_rebuild_done: Domain 2:cannot (re-)build domain: -3</div><div dir=
=3D"auto" style=3D"text-align:start">libxl: error: libxl_domain.c:1183:libx=
l__destroy_domid: Domain 2:Non-existent domain</div><div dir=3D"auto" style=
=3D"text-align:start">libxl: error: libxl_domain.c:1137:domain_destroy_call=
back: Domain 2:Unable to destroy guest</div><div dir=3D"auto" style=3D"text=
-align:start">libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 2=
:Destruction of domain failed</div><div dir=3D"auto" style=3D"text-align:st=
art">freebsd is an invalid domain identifier (rc=3D-6)</div></div></span></=
div></div></div></div><br><span class=3D"gmail_signature_prefix">-- </span>=
<br><div dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_sign=
ature">Mario.<br></div></div>

--0000000000009c2744060c3c6561--


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652128.1017787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwT-00041e-2g; Mon, 11 Dec 2023 14:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652128.1017787; Mon, 11 Dec 2023 14: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 1rCgwS-00040y-Ti; Mon, 11 Dec 2023 14:07:28 +0000
Received: by outflank-mailman (input) for mailman id 652128;
 Mon, 11 Dec 2023 14: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwR-0003xQ-V9
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:27 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b0dbed7-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:07:25 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Spk8R1VDMz4f3kj4
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:19 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 9EE9C1A0790
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:21 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S6;
 Mon, 11 Dec 2023 22:07:21 +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: 9b0dbed7-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 02/18] xen/blkback: use bdev api in xen_update_blkif_status()
Date: Mon, 11 Dec 2023 22:05:36 +0800
Message-Id: <20231211140552.973290-3-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S6
X-Coremail-Antispam: 1UD129KBjvdXoW7XFW7tFW3Wr4xCFyrtrWfAFb_yoWfWFb_ZF
	18urWxXrn7Crs0kayUuFs3Z3yv93WrurWF9ay2qFySqw1UXFWSq39FvFn5Gr47ZayUGws0
	yF17uFW7tr4xXjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbDAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUXwA2048vs2IY02
	0Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv
	wVC0I7IYx2IY67AKxVW5JVW7JwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM2
	8EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AI
	xVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20x
	vE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xv
	r2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2IY04
	v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_
	Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIxkGc2
	Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_
	Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr
	1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUHbyAU
	UUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/block/xen-blkback/xenbus.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c
index e34219ea2b05..e645afa4af57 100644
--- a/drivers/block/xen-blkback/xenbus.c
+++ b/drivers/block/xen-blkback/xenbus.c
@@ -104,8 +104,7 @@ static void xen_update_blkif_status(struct xen_blkif *blkif)
 		xenbus_dev_error(blkif->be->dev, err, "block flush");
 		return;
 	}
-	invalidate_inode_pages2(
-			blkif->vbd.bdev_handle->bdev->bd_inode->i_mapping);
+	invalidate_bdev(blkif->vbd.bdev_handle->bdev);
 
 	for (i = 0; i < blkif->nr_rings; i++) {
 		ring = &blkif->rings[i];
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652129.1017800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwU-0004Rg-7j; Mon, 11 Dec 2023 14:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652129.1017800; Mon, 11 Dec 2023 14:07: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 1rCgwU-0004RZ-56; Mon, 11 Dec 2023 14:07:30 +0000
Received: by outflank-mailman (input) for mailman id 652129;
 Mon, 11 Dec 2023 14: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwS-0003xQ-Kk
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:28 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a28c4af-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:07:25 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Spk8P4Sssz4f3khS
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:17 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 1391D1A072B
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:20 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S5;
 Mon, 11 Dec 2023 22:07:19 +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: 9a28c4af-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 01/18] block: add some bdev apis
Date: Mon, 11 Dec 2023 22:05:35 +0800
Message-Id: <20231211140552.973290-2-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S5
X-Coremail-Antispam: 1UD129KBjvJXoW3Jw4kWFWUAr1DGF1UWF17Wrg_yoW7CryUpF
	yUGa45JrW5Gw1Igrs2ya13Zryag3W0kF1xZa4xJ34Yk3yktr9agFZ5CwnrArWftrWkAFZr
	XFya9rWxCr1jkFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUP014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jr4l82xGYIkIc2
	x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0
	Y4vE2Ix0cI8IcVAFwI0_Xr0_Ar1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJw
	A2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS
	0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2
	IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0
	Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2
	xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2
	6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMIIYrx
	kI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v2
	6F4j6r4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr
	1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7VUbpuWJUU
	UUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Those apis will be used for other modules, so that bd_inode won't be
accessed directly from other modules.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 block/bdev.c           | 70 ++++++++++++++++++++++++++++++++++++++++++
 block/blk.h            |  2 --
 include/linux/blkdev.h | 17 ++++++++++
 3 files changed, 87 insertions(+), 2 deletions(-)

diff --git a/block/bdev.c b/block/bdev.c
index 750aec178b6a..9a469753eb4b 100644
--- a/block/bdev.c
+++ b/block/bdev.c
@@ -89,6 +89,13 @@ void invalidate_bdev(struct block_device *bdev)
 }
 EXPORT_SYMBOL(invalidate_bdev);
 
+void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
+			   pgoff_t end)
+{
+	invalidate_mapping_pages(bdev->bd_inode->i_mapping, start, end);
+}
+EXPORT_SYMBOL_GPL(invalidate_bdev_range);
+
 /*
  * Drop all buffers & page cache for given bdev range. This function bails
  * with error if bdev has other exclusive owner (such as filesystem).
@@ -121,6 +128,7 @@ int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
 					     lstart >> PAGE_SHIFT,
 					     lend >> PAGE_SHIFT);
 }
+EXPORT_SYMBOL_GPL(truncate_bdev_range);
 
 static void set_init_blocksize(struct block_device *bdev)
 {
@@ -1102,3 +1110,65 @@ void bdev_statx_dioalign(struct inode *inode, struct kstat *stat)
 
 	blkdev_put_no_open(bdev);
 }
+
+struct folio *bdev_read_folio(struct block_device *bdev, loff_t pos)
+{
+	return mapping_read_folio_gfp(bdev->bd_inode->i_mapping,
+				      pos >> PAGE_SHIFT, GFP_KERNEL);
+}
+EXPORT_SYMBOL_GPL(bdev_read_folio);
+
+struct folio *__bdev_get_folio(struct block_device *bdev, loff_t pos,
+			       fgf_t fgp_flags, gfp_t gfp)
+{
+	return __filemap_get_folio(bdev->bd_inode->i_mapping, pos >> PAGE_SHIFT,
+				   fgp_flags, gfp);
+}
+EXPORT_SYMBOL_GPL(__bdev_get_folio);
+
+int bdev_wb_err_check(struct block_device *bdev, errseq_t since)
+{
+	return errseq_check(&bdev->bd_inode->i_mapping->wb_err, since);
+}
+EXPORT_SYMBOL_GPL(bdev_wb_err_check);
+
+int bdev_wb_err_check_and_advance(struct block_device *bdev, errseq_t *since)
+{
+	return errseq_check_and_advance(&bdev->bd_inode->i_mapping->wb_err,
+					since);
+}
+EXPORT_SYMBOL_GPL(bdev_wb_err_check_and_advance);
+
+void bdev_balance_dirty_pages_ratelimited(struct block_device *bdev)
+{
+	return balance_dirty_pages_ratelimited(bdev->bd_inode->i_mapping);
+}
+EXPORT_SYMBOL_GPL(bdev_balance_dirty_pages_ratelimited);
+
+void bdev_sync_readahead(struct block_device *bdev, struct file_ra_state *ra,
+			 struct file *file, pgoff_t index,
+			 unsigned long req_count)
+{
+	struct file_ra_state tmp_ra = {};
+
+	if (!ra) {
+		ra = &tmp_ra;
+		file_ra_state_init(ra, bdev->bd_inode->i_mapping);
+	}
+	page_cache_sync_readahead(bdev->bd_inode->i_mapping, ra, file, index,
+				  req_count);
+}
+EXPORT_SYMBOL_GPL(bdev_sync_readahead);
+
+void bdev_attach_wb(struct block_device *bdev)
+{
+	inode_attach_wb(bdev->bd_inode, NULL);
+}
+EXPORT_SYMBOL_GPL(bdev_attach_wb);
+
+void bdev_associated_mapping(struct block_device *bdev,
+			     struct address_space *mapping)
+{
+	mapping->host = bdev->bd_inode;
+}
+EXPORT_SYMBOL_GPL(bdev_associated_mapping);
diff --git a/block/blk.h b/block/blk.h
index 08a358bc0919..da4becd4f7e9 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -467,8 +467,6 @@ extern struct device_attribute dev_attr_events_poll_msecs;
 extern struct attribute_group blk_trace_attr_group;
 
 blk_mode_t file_to_blk_mode(struct file *file);
-int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
-		loff_t lstart, loff_t lend);
 long blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg);
 long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg);
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 17c0a7d0d319..d2453424a9eb 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -24,6 +24,7 @@
 #include <linux/sbitmap.h>
 #include <linux/uuid.h>
 #include <linux/xarray.h>
+#include <linux/pagemap.h>
 
 struct module;
 struct request_queue;
@@ -1502,6 +1503,22 @@ struct block_device *blkdev_get_no_open(dev_t dev);
 void blkdev_put_no_open(struct block_device *bdev);
 
 struct block_device *I_BDEV(struct inode *inode);
+void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
+			   pgoff_t end);
+int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
+		loff_t lstart, loff_t lend);
+struct folio *bdev_read_folio(struct block_device *bdev, loff_t pos);
+struct folio *__bdev_get_folio(struct block_device *bdev, loff_t pos,
+			       fgf_t fgp_flags, gfp_t gfp);
+int bdev_wb_err_check(struct block_device *bdev, errseq_t since);
+int bdev_wb_err_check_and_advance(struct block_device *bdev, errseq_t *since);
+void bdev_balance_dirty_pages_ratelimited(struct block_device *bdev);
+void bdev_sync_readahead(struct block_device *bdev, struct file_ra_state *ra,
+			 struct file *file, pgoff_t index,
+			 unsigned long req_count);
+void bdev_attach_wb(struct block_device *bdev);
+void bdev_associated_mapping(struct block_device *bdev,
+			     struct address_space *mapping);
 
 #ifdef CONFIG_BLOCK
 void invalidate_bdev(struct block_device *bdev);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652127.1017781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwS-0003xm-Q6; Mon, 11 Dec 2023 14:07:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652127.1017781; Mon, 11 Dec 2023 14: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 1rCgwS-0003xb-LJ; Mon, 11 Dec 2023 14:07:28 +0000
Received: by outflank-mailman (input) for mailman id 652127;
 Mon, 11 Dec 2023 14: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwR-0003xP-M8
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:27 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 99c367e1-982e-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:07:24 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Spk8K4pF8z4f3lCj
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:13 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 8E1FA1A060E
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:18 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S4;
 Mon, 11 Dec 2023 22:07:17 +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: 99c367e1-982e-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 00/18] block: don't access bd_inode directly from other modules
Date: Mon, 11 Dec 2023 22:05:34 +0800
Message-Id: <20231211140552.973290-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S4
X-Coremail-Antispam: 1UD129KBjvJXoWxXr48Ww4Utw47JFWDWFW7Arb_yoW5XFWfpr
	13KF4fGr1UWryxZaya9a17tw1rG3WkGayUWFnIy34rZFW5AryfZrWktF1rJa4kXryxXr4k
	Xw17JryrKr1jgaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUvF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26ryj6F1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U
	JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc
	CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E
	2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV
	W8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2
	Y2ka0xkIwI1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4
	xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26rWY6r4U
	JwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x
	0267AKxVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_WFyUJVCq3wCI42IY6I8E87Iv67AK
	xVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvj
	fUojjgUUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Changes in v2:
 - remove some bdev apis that is not necessary;
 - pass in offset for bdev_read_folio() and __bdev_get_folio();
 - remove bdev_gfp_constraint() and add a new helper in fs/buffer.c to
 prevent access bd_indoe() directly from mapping_gfp_constraint() in
 ext4.(patch 15, 16);
 - remove block_device_ejected() from ext4.

Noted that following is not changed yet since v1:
- Chirstoph suggested to remove invalidate_inode_pages2() from
xen_update_blkif_status(), however, this sync_bdev() + invalidate_bdev()
is used from many modules, and I'll leave this for later if we want to
kill all of them.
- Matthew suggested that pass in valid file_ra_state for cramfs,
however, I don't see an easy way to do this for cramfs_lookup() and
cramfs_read_super().

Patch 1 add some bdev apis, then follow up patches will use these apis
to avoid access bd_inode directly, and hopefully the field bd_inode can
be removed eventually(after figure out a way for fs/buffer.c).

Yu Kuai (18):
  block: add some bdev apis
  xen/blkback: use bdev api in xen_update_blkif_status()
  bcache: use bdev api in read_super()
  mtd: block2mtd: use bdev apis
  s390/dasd: use bdev api in dasd_format()
  scsicam: use bdev api in scsi_bios_ptable()
  bcachefs: remove dead function bdev_sectors()
  bio: export bio_add_folio_nofail()
  btrfs: use bdev apis
  cramfs: use bdev apis in cramfs_blkdev_read()
  erofs: use bdev api
  gfs2: use bdev api
  nilfs2: use bdev api in nilfs_attach_log_writer()
  jbd2: use bdev apis
  buffer: add a new helper to read sb block
  ext4: use new helper to read sb block
  ext4: remove block_device_ejected()
  ext4: use bdev apis

 block/bdev.c                       | 70 ++++++++++++++++++++++++++
 block/bio.c                        |  1 +
 block/blk.h                        |  2 -
 drivers/block/xen-blkback/xenbus.c |  3 +-
 drivers/md/bcache/super.c          | 11 ++--
 drivers/mtd/devices/block2mtd.c    | 81 +++++++++++++-----------------
 drivers/s390/block/dasd_ioctl.c    |  5 +-
 drivers/scsi/scsicam.c             |  4 +-
 fs/bcachefs/util.h                 |  5 --
 fs/btrfs/disk-io.c                 | 71 ++++++++++++--------------
 fs/btrfs/volumes.c                 | 17 +++----
 fs/btrfs/zoned.c                   | 15 +++---
 fs/buffer.c                        | 68 +++++++++++++++++--------
 fs/cramfs/inode.c                  | 36 +++++--------
 fs/erofs/data.c                    | 18 ++++---
 fs/erofs/internal.h                |  2 +
 fs/ext4/dir.c                      |  6 +--
 fs/ext4/ext4.h                     | 13 -----
 fs/ext4/ext4_jbd2.c                |  6 +--
 fs/ext4/inode.c                    |  8 +--
 fs/ext4/super.c                    | 66 ++++--------------------
 fs/ext4/symlink.c                  |  2 +-
 fs/gfs2/glock.c                    |  2 +-
 fs/gfs2/ops_fstype.c               |  2 +-
 fs/jbd2/journal.c                  |  3 +-
 fs/jbd2/recovery.c                 |  6 +--
 fs/nilfs2/segment.c                |  2 +-
 include/linux/blkdev.h             | 17 +++++++
 include/linux/buffer_head.h        | 18 ++++++-
 29 files changed, 301 insertions(+), 259 deletions(-)

-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652130.1017807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwU-0004UJ-L2; Mon, 11 Dec 2023 14:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652130.1017807; Mon, 11 Dec 2023 14:07: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 1rCgwU-0004Tl-E4; Mon, 11 Dec 2023 14:07:30 +0000
Received: by outflank-mailman (input) for mailman id 652130;
 Mon, 11 Dec 2023 14:07: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwT-0003xQ-L1
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:29 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c002714-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:07:27 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Spk8S5WS4z4f3kpL
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:20 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 34D131A0A20
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:23 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S7;
 Mon, 11 Dec 2023 22:07:22 +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: 9c002714-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 03/18] bcache: use bdev api in read_super()
Date: Mon, 11 Dec 2023 22:05:37 +0800
Message-Id: <20231211140552.973290-4-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S7
X-Coremail-Antispam: 1UD129KBjvJXoW7Ww17Zw4kZr48Xr13XF18Xwb_yoW8Jw4xpF
	Z7uF9xZr48Gw17u3y8Zr4DZFyrK3srKFWUKa4xCw43ua43Jw1Y9rW5J34UG34rZr18WFs2
	vF4rJr4xu3WUGFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JrWl82xGYIkIc2
	x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0
	Y4vE2Ix0cI8IcVAFwI0_Xr0_Ar1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJw
	A2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS
	0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2
	IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0
	Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2
	xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2
	6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMIIYrx
	kI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v2
	6r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r
	4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjfUojjg
	UUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/md/bcache/super.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index bfe1685dbae5..23892b32c582 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -168,14 +168,13 @@ static const char *read_super(struct cache_sb *sb, struct block_device *bdev,
 {
 	const char *err;
 	struct cache_sb_disk *s;
-	struct page *page;
+	struct folio *folio;
 	unsigned int i;
 
-	page = read_cache_page_gfp(bdev->bd_inode->i_mapping,
-				   SB_OFFSET >> PAGE_SHIFT, GFP_KERNEL);
-	if (IS_ERR(page))
+	folio = bdev_read_folio(bdev, SB_OFFSET);
+	if (IS_ERR(folio))
 		return "IO error";
-	s = page_address(page) + offset_in_page(SB_OFFSET);
+	s = folio_address(folio) + offset_in_folio(folio, SB_OFFSET);
 
 	sb->offset		= le64_to_cpu(s->offset);
 	sb->version		= le64_to_cpu(s->version);
@@ -272,7 +271,7 @@ static const char *read_super(struct cache_sb *sb, struct block_device *bdev,
 	*res = s;
 	return NULL;
 err:
-	put_page(page);
+	folio_put(folio);
 	return err;
 }
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652131.1017821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwV-0004wl-Tb; Mon, 11 Dec 2023 14:07:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652131.1017821; Mon, 11 Dec 2023 14:07: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 1rCgwV-0004vk-Oz; Mon, 11 Dec 2023 14:07:31 +0000
Received: by outflank-mailman (input) for mailman id 652131;
 Mon, 11 Dec 2023 14:07: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwV-0003xP-0H
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:31 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9ce8871e-982e-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:07:28 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Spk8W4MWWz4f3kKY
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:23 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id C105E1A09E6
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:24 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S8;
 Mon, 11 Dec 2023 22:07: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: 9ce8871e-982e-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 04/18] mtd: block2mtd: use bdev apis
Date: Mon, 11 Dec 2023 22:05:38 +0800
Message-Id: <20231211140552.973290-5-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S8
X-Coremail-Antispam: 1UD129KBjvJXoW3Jw1DtryDWw17CF45XFyrZwb_yoW7Aw18pa
	y3Ca95Aw4UKrn8urs7Xwn8Zr12g3sFqa1Uuay7C3yakFyfXryIkas7ta45tFyrKry8AFWk
	XF4DAr4rXF40grJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPa14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F
	4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq
	3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7
	IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4U
	M4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2
	kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E
	14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMI
	IYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E
	14v26r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r
	1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjfU
	OBTYUUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/mtd/devices/block2mtd.c | 81 +++++++++++++++------------------
 1 file changed, 36 insertions(+), 45 deletions(-)

diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
index aa44a23ec045..cf201bf73184 100644
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
@@ -46,40 +46,34 @@ struct block2mtd_dev {
 /* Static info about the MTD, used in cleanup_module */
 static LIST_HEAD(blkmtd_device_list);
 
-
-static struct page *page_read(struct address_space *mapping, pgoff_t index)
-{
-	return read_mapping_page(mapping, index, NULL);
-}
-
 /* erase a specified part of the device */
 static int _block2mtd_erase(struct block2mtd_dev *dev, loff_t to, size_t len)
 {
-	struct address_space *mapping =
-				dev->bdev_handle->bdev->bd_inode->i_mapping;
-	struct page *page;
+	struct block_device *bdev = dev->bdev_handle->bdev;
+	struct folio *folio;
 	pgoff_t index = to >> PAGE_SHIFT;	// page index
 	int pages = len >> PAGE_SHIFT;
 	u_long *p;
 	u_long *max;
 
 	while (pages) {
-		page = page_read(mapping, index);
-		if (IS_ERR(page))
-			return PTR_ERR(page);
+		folio = bdev_read_folio(bdev, index << PAGE_SHIFT);
+		if (IS_ERR(folio))
+			return PTR_ERR(folio);
 
-		max = page_address(page) + PAGE_SIZE;
-		for (p=page_address(page); p<max; p++)
+		max = folio_address(folio) + folio_size(folio);
+		for (p = folio_address(folio); p < max; p++)
 			if (*p != -1UL) {
-				lock_page(page);
-				memset(page_address(page), 0xff, PAGE_SIZE);
-				set_page_dirty(page);
-				unlock_page(page);
-				balance_dirty_pages_ratelimited(mapping);
+				folio_lock(folio);
+				memset(folio_address(folio), 0xff,
+				       folio_size(folio));
+				folio_mark_dirty(folio);
+				folio_unlock(folio);
+				bdev_balance_dirty_pages_ratelimited(bdev);
 				break;
 			}
 
-		put_page(page);
+		folio_put(folio);
 		pages--;
 		index++;
 	}
@@ -106,9 +100,7 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
 		size_t *retlen, u_char *buf)
 {
 	struct block2mtd_dev *dev = mtd->priv;
-	struct address_space *mapping =
-				dev->bdev_handle->bdev->bd_inode->i_mapping;
-	struct page *page;
+	struct folio *folio;
 	pgoff_t index = from >> PAGE_SHIFT;
 	int offset = from & (PAGE_SIZE-1);
 	int cpylen;
@@ -120,12 +112,13 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
 			cpylen = len;	// this page
 		len = len - cpylen;
 
-		page = page_read(mapping, index);
-		if (IS_ERR(page))
-			return PTR_ERR(page);
+		folio = bdev_read_folio(dev->bdev_handle->bdev,
+					index << PAGE_SHIFT);
+		if (IS_ERR(folio))
+			return PTR_ERR(folio);
 
-		memcpy(buf, page_address(page) + offset, cpylen);
-		put_page(page);
+		memcpy(buf, folio_address(folio) + offset, cpylen);
+		folio_put(folio);
 
 		if (retlen)
 			*retlen += cpylen;
@@ -141,9 +134,8 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
 static int _block2mtd_write(struct block2mtd_dev *dev, const u_char *buf,
 		loff_t to, size_t len, size_t *retlen)
 {
-	struct page *page;
-	struct address_space *mapping =
-				dev->bdev_handle->bdev->bd_inode->i_mapping;
+	struct block_device *bdev = dev->bdev_handle->bdev;
+	struct folio *folio;
 	pgoff_t index = to >> PAGE_SHIFT;	// page index
 	int offset = to & ~PAGE_MASK;	// page offset
 	int cpylen;
@@ -155,18 +147,18 @@ static int _block2mtd_write(struct block2mtd_dev *dev, const u_char *buf,
 			cpylen = len;			// this page
 		len = len - cpylen;
 
-		page = page_read(mapping, index);
-		if (IS_ERR(page))
-			return PTR_ERR(page);
+		folio = bdev_read_folio(bdev, index << PAGE_SHIFT);
+		if (IS_ERR(folio))
+			return PTR_ERR(folio);
 
-		if (memcmp(page_address(page)+offset, buf, cpylen)) {
-			lock_page(page);
-			memcpy(page_address(page) + offset, buf, cpylen);
-			set_page_dirty(page);
-			unlock_page(page);
-			balance_dirty_pages_ratelimited(mapping);
+		if (memcmp(folio_address(folio) + offset, buf, cpylen)) {
+			folio_lock(folio);
+			memcpy(folio_address(folio) + offset, buf, cpylen);
+			folio_mark_dirty(folio);
+			folio_unlock(folio);
+			bdev_balance_dirty_pages_ratelimited(bdev);
 		}
-		put_page(page);
+		folio_put(folio);
 
 		if (retlen)
 			*retlen += cpylen;
@@ -211,8 +203,7 @@ static void block2mtd_free_device(struct block2mtd_dev *dev)
 	kfree(dev->mtd.name);
 
 	if (dev->bdev_handle) {
-		invalidate_mapping_pages(
-			dev->bdev_handle->bdev->bd_inode->i_mapping, 0, -1);
+		invalidate_bdev(dev->bdev_handle->bdev);
 		bdev_release(dev->bdev_handle);
 	}
 
@@ -295,7 +286,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
 		goto err_free_block2mtd;
 	}
 
-	if ((long)bdev->bd_inode->i_size % erase_size) {
+	if (bdev_nr_bytes(bdev) % erase_size) {
 		pr_err("erasesize must be a divisor of device size\n");
 		goto err_free_block2mtd;
 	}
@@ -313,7 +304,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
 
 	dev->mtd.name = name;
 
-	dev->mtd.size = bdev->bd_inode->i_size & PAGE_MASK;
+	dev->mtd.size = bdev_nr_bytes(bdev) & PAGE_MASK;
 	dev->mtd.erasesize = erase_size;
 	dev->mtd.writesize = 1;
 	dev->mtd.writebufsize = PAGE_SIZE;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652132.1017831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwY-0005H0-9U; Mon, 11 Dec 2023 14:07:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652132.1017831; Mon, 11 Dec 2023 14:07:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwY-0005Gj-6M; Mon, 11 Dec 2023 14:07:34 +0000
Received: by outflank-mailman (input) for mailman id 652132;
 Mon, 11 Dec 2023 14:07:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwX-0003xQ-7u
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:33 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e1c7aa3-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:07:31 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Spk8T3MKhz4f3lDn
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:21 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 5D5141A0A45
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:26 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S9;
 Mon, 11 Dec 2023 22:07:25 +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: 9e1c7aa3-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 05/18] s390/dasd: use bdev api in dasd_format()
Date: Mon, 11 Dec 2023 22:05:39 +0800
Message-Id: <20231211140552.973290-6-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S9
X-Coremail-Antispam: 1UD129KBjvdXoW7XFWrKF1rWw4UAw4kXFWkWFg_yoWfWrg_Zr
	1fGryxtr1xCr9Ikr1YvF15Zr9Y9F1kWr4Svry3KryfXFnrXFsaq3ykuFW3JrZ7JayUG3s3
	GF9rXw10yr15WjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr
	1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr
	0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUQ
	SdkUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/s390/block/dasd_ioctl.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
index 61b9675e2a67..bbfb958237e6 100644
--- a/drivers/s390/block/dasd_ioctl.c
+++ b/drivers/s390/block/dasd_ioctl.c
@@ -221,8 +221,9 @@ dasd_format(struct dasd_block *block, struct format_data_t *fdata)
 	 * enabling the device later.
 	 */
 	if (fdata->start_unit == 0) {
-		block->gdp->part0->bd_inode->i_blkbits =
-			blksize_bits(fdata->blksize);
+		rc = set_blocksize(block->gdp->part0, fdata->blksize);
+		if (rc)
+			return rc;
 	}
 
 	rc = base->discipline->format_device(base, fdata, 1);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652133.1017841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwZ-0005YG-Jm; Mon, 11 Dec 2023 14:07:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652133.1017841; Mon, 11 Dec 2023 14:07:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwZ-0005Y2-E8; Mon, 11 Dec 2023 14:07:35 +0000
Received: by outflank-mailman (input) for mailman id 652133;
 Mon, 11 Dec 2023 14:07: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwY-0003xQ-8F
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:34 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ecb38db-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:07:32 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Spk8Z5RMbz4f3kjm
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:26 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id E9B8D1A07B6
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:27 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S10;
 Mon, 11 Dec 2023 22:07:27 +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: 9ecb38db-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 06/18] scsicam: use bdev api in scsi_bios_ptable()
Date: Mon, 11 Dec 2023 22:05:40 +0800
Message-Id: <20231211140552.973290-7-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S10
X-Coremail-Antispam: 1UD129KBjvdXoW7XFWrKrykKr43Jr15KryrCrg_yoW3urb_CF
	WS9ryxWr18KFs7Kwn8tF47Zryvvan8XF1I9FWSqa4Svr1UXrn5Kw4vvr17Zr47Gr4kJ3Z3
	CF17XrWakrsrujkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr
	1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr
	0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUQ
	SdkUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/scsi/scsicam.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/scsi/scsicam.c b/drivers/scsi/scsicam.c
index e2c7d8ef205f..9617d70c0ed1 100644
--- a/drivers/scsi/scsicam.c
+++ b/drivers/scsi/scsicam.c
@@ -32,11 +32,9 @@
  */
 unsigned char *scsi_bios_ptable(struct block_device *dev)
 {
-	struct address_space *mapping = bdev_whole(dev)->bd_inode->i_mapping;
 	unsigned char *res = NULL;
-	struct folio *folio;
+	struct folio *folio = bdev_read_folio(bdev_whole(dev), 0);
 
-	folio = read_mapping_folio(mapping, 0, NULL);
 	if (IS_ERR(folio))
 		return NULL;
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652134.1017846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwa-0005ea-1X; Mon, 11 Dec 2023 14:07:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652134.1017846; Mon, 11 Dec 2023 14:07:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwZ-0005dh-SH; Mon, 11 Dec 2023 14:07:35 +0000
Received: by outflank-mailman (input) for mailman id 652134;
 Mon, 11 Dec 2023 14:07: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwZ-0003xQ-8H
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:35 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9fba93b2-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:07:33 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Spk8c2FbGz4f3kKT
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:28 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 7B0831A0A65
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:29 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S11;
 Mon, 11 Dec 2023 22:07:28 +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: 9fba93b2-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 07/18] bcachefs: remove dead function bdev_sectors()
Date: Mon, 11 Dec 2023 22:05:41 +0800
Message-Id: <20231211140552.973290-8-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S11
X-Coremail-Antispam: 1UD129KBjvdXoWrZFyrKrWkuF1fAw4fZrWUurg_yoW3Wrc_KF
	nY9F17Ww4SqF9Y93W2qr1vvr4Y93yDXrW2gFs0v3W7G3WDArZ5ZFZ5KrW5Zrsru397uFy7
	X3yxJrW29ryFkjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr
	1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr
	0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUQ
	SdkUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

bdev_sectors() is not used hence remove it.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/bcachefs/util.h | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/fs/bcachefs/util.h b/fs/bcachefs/util.h
index 2984b57b2958..22a0acc1704f 100644
--- a/fs/bcachefs/util.h
+++ b/fs/bcachefs/util.h
@@ -516,11 +516,6 @@ static inline unsigned fract_exp_two(unsigned x, unsigned fract_bits)
 void bch2_bio_map(struct bio *bio, void *base, size_t);
 int bch2_bio_alloc_pages(struct bio *, size_t, gfp_t);
 
-static inline sector_t bdev_sectors(struct block_device *bdev)
-{
-	return bdev->bd_inode->i_size >> 9;
-}
-
 #define closure_bio_submit(bio, cl)					\
 do {									\
 	closure_get(cl);						\
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652135.1017859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwb-00065u-El; Mon, 11 Dec 2023 14:07:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652135.1017859; Mon, 11 Dec 2023 14:07: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 1rCgwb-00064I-Ai; Mon, 11 Dec 2023 14:07:37 +0000
Received: by outflank-mailman (input) for mailman id 652135;
 Mon, 11 Dec 2023 14: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwa-0003xQ-AD
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:36 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0aa3abc-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:07:35 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Spk8c4WPzz4f3l2b
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:28 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 135D71A0A0C
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:31 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S12;
 Mon, 11 Dec 2023 22:07:30 +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: a0aa3abc-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 08/18] bio: export bio_add_folio_nofail()
Date: Mon, 11 Dec 2023 22:05:42 +0800
Message-Id: <20231211140552.973290-9-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S12
X-Coremail-Antispam: 1UD129KBjvdXoW7Xw4rur1rtr17JFyUCF18AFb_yoW3Wrg_AF
	n7u3W8W3Z7W3WSk3Wvkay8AFWYv34rCF4Y9FWfJF9xZF1DGFnak340yr10vrs5CFykK3y3
	uw4DXryayw17XjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqxFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVWxJr0_Gc
	Wl84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1l
	e2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI
	8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwAC
	jcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2Y2ka0x
	kIwI1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AK
	xVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26rWY6r4UJwCIc4
	0Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1I6r4UMIIF0xvE2Ix0cI8IcVCY1x0267AK
	xVW8Jr0_Cr1UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJV
	W8JwCI42IY6I8E87Iv6xkF7I0E14v26r4UJVWxJrUvcSsGvfC2KfnxnUUI43ZEXa7VUbmZ
	X7UUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Currently btrfs is using __bio_add_page() in write_dev_supers(). In order
to convert to use folio for bdev in btrfs, export bio_add_folio_nofail()
so that it can replace __bio_add_page().

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 block/bio.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/block/bio.c b/block/bio.c
index 5eba53ca953b..a7b2bbb210ee 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1119,6 +1119,7 @@ void bio_add_folio_nofail(struct bio *bio, struct folio *folio, size_t len,
 	WARN_ON_ONCE(off > UINT_MAX);
 	__bio_add_page(bio, &folio->page, len, off);
 }
+EXPORT_SYMBOL_GPL(bio_add_folio_nofail);
 
 /**
  * bio_add_folio - Attempt to add part of a folio to a bio.
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652136.1017871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwd-0006Wd-VI; Mon, 11 Dec 2023 14:07:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652136.1017871; Mon, 11 Dec 2023 14: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 1rCgwd-0006WI-RX; Mon, 11 Dec 2023 14:07:39 +0000
Received: by outflank-mailman (input) for mailman id 652136;
 Mon, 11 Dec 2023 14:07: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwc-0003xQ-1q
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:38 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a19772ac-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:07:36 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Spk8f1K00z4f3kFx
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:30 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 9BA211A07CE
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:32 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S13;
 Mon, 11 Dec 2023 22:07:32 +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: a19772ac-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 09/18] btrfs: use bdev apis
Date: Mon, 11 Dec 2023 22:05:43 +0800
Message-Id: <20231211140552.973290-10-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S13
X-Coremail-Antispam: 1UD129KBjvJXoW3WFWUur17WF47JrWfZry7Wrg_yoWfJFW5pr
	W7Cas5trWUJrn8Ww1kXw4kAw1Sq3sFvay8CFy3Gw4Ska45t345KF1vv34Fqa4Fkry8JFyk
	XF4UtFWxuF1xCF7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPI14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j6r
	xdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr
	0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUQ
	SdkUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/btrfs/disk-io.c | 71 +++++++++++++++++++++-------------------------
 fs/btrfs/volumes.c | 17 ++++++-----
 fs/btrfs/zoned.c   | 15 +++++-----
 3 files changed, 48 insertions(+), 55 deletions(-)

diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 401ea09ae4b8..c373806dc793 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3620,28 +3620,24 @@ ALLOW_ERROR_INJECTION(open_ctree, ERRNO);
 static void btrfs_end_super_write(struct bio *bio)
 {
 	struct btrfs_device *device = bio->bi_private;
-	struct bio_vec *bvec;
-	struct bvec_iter_all iter_all;
-	struct page *page;
-
-	bio_for_each_segment_all(bvec, bio, iter_all) {
-		page = bvec->bv_page;
+	struct folio_iter fi;
 
+	bio_for_each_folio_all(fi, bio) {
 		if (bio->bi_status) {
 			btrfs_warn_rl_in_rcu(device->fs_info,
 				"lost page write due to IO error on %s (%d)",
 				btrfs_dev_name(device),
 				blk_status_to_errno(bio->bi_status));
-			ClearPageUptodate(page);
-			SetPageError(page);
+			folio_clear_uptodate(fi.folio);
+			folio_set_error(fi.folio);
 			btrfs_dev_stat_inc_and_print(device,
 						     BTRFS_DEV_STAT_WRITE_ERRS);
 		} else {
-			SetPageUptodate(page);
+			folio_mark_uptodate(fi.folio);
 		}
 
-		put_page(page);
-		unlock_page(page);
+		folio_put(fi.folio);
+		folio_unlock(fi.folio);
 	}
 
 	bio_put(bio);
@@ -3651,9 +3647,9 @@ struct btrfs_super_block *btrfs_read_dev_one_super(struct block_device *bdev,
 						   int copy_num, bool drop_cache)
 {
 	struct btrfs_super_block *super;
-	struct page *page;
+	struct folio *folio;
 	u64 bytenr, bytenr_orig;
-	struct address_space *mapping = bdev->bd_inode->i_mapping;
+	unsigned int nofs_flag;
 	int ret;
 
 	bytenr_orig = btrfs_sb_offset(copy_num);
@@ -3674,16 +3670,17 @@ struct btrfs_super_block *btrfs_read_dev_one_super(struct block_device *bdev,
 		 * Drop the page of the primary superblock, so later read will
 		 * always read from the device.
 		 */
-		invalidate_inode_pages2_range(mapping,
-				bytenr >> PAGE_SHIFT,
+		invalidate_bdev_range(bdev, bytenr >> PAGE_SHIFT,
 				(bytenr + BTRFS_SUPER_INFO_SIZE) >> PAGE_SHIFT);
 	}
 
-	page = read_cache_page_gfp(mapping, bytenr >> PAGE_SHIFT, GFP_NOFS);
-	if (IS_ERR(page))
-		return ERR_CAST(page);
+	nofs_flag = memalloc_nofs_save();
+	folio = bdev_read_folio(bdev, bytenr);
+	memalloc_nofs_restore(nofs_flag);
+	if (IS_ERR(folio))
+		return ERR_CAST(folio);
 
-	super = page_address(page);
+	super = folio_address(folio);
 	if (btrfs_super_magic(super) != BTRFS_MAGIC) {
 		btrfs_release_disk_super(super);
 		return ERR_PTR(-ENODATA);
@@ -3740,7 +3737,6 @@ static int write_dev_supers(struct btrfs_device *device,
 			    struct btrfs_super_block *sb, int max_mirrors)
 {
 	struct btrfs_fs_info *fs_info = device->fs_info;
-	struct address_space *mapping = device->bdev->bd_inode->i_mapping;
 	SHASH_DESC_ON_STACK(shash, fs_info->csum_shash);
 	int i;
 	int errors = 0;
@@ -3753,7 +3749,7 @@ static int write_dev_supers(struct btrfs_device *device,
 	shash->tfm = fs_info->csum_shash;
 
 	for (i = 0; i < max_mirrors; i++) {
-		struct page *page;
+		struct folio *folio;
 		struct bio *bio;
 		struct btrfs_super_block *disk_super;
 
@@ -3778,9 +3774,10 @@ static int write_dev_supers(struct btrfs_device *device,
 				    BTRFS_SUPER_INFO_SIZE - BTRFS_CSUM_SIZE,
 				    sb->csum);
 
-		page = find_or_create_page(mapping, bytenr >> PAGE_SHIFT,
-					   GFP_NOFS);
-		if (!page) {
+		folio = __bdev_get_folio(device->bdev, bytenr,
+					 FGP_LOCK|FGP_ACCESSED|FGP_CREAT,
+					 GFP_NOFS);
+		if (IS_ERR(folio)) {
 			btrfs_err(device->fs_info,
 			    "couldn't get super block page for bytenr %llu",
 			    bytenr);
@@ -3789,9 +3786,9 @@ static int write_dev_supers(struct btrfs_device *device,
 		}
 
 		/* Bump the refcount for wait_dev_supers() */
-		get_page(page);
+		folio_get(folio);
 
-		disk_super = page_address(page);
+		disk_super = folio_address(folio);
 		memcpy(disk_super, sb, BTRFS_SUPER_INFO_SIZE);
 
 		/*
@@ -3805,8 +3802,8 @@ static int write_dev_supers(struct btrfs_device *device,
 		bio->bi_iter.bi_sector = bytenr >> SECTOR_SHIFT;
 		bio->bi_private = device;
 		bio->bi_end_io = btrfs_end_super_write;
-		__bio_add_page(bio, page, BTRFS_SUPER_INFO_SIZE,
-			       offset_in_page(bytenr));
+		bio_add_folio_nofail(bio, folio, BTRFS_SUPER_INFO_SIZE,
+				     offset_in_folio(folio, bytenr));
 
 		/*
 		 * We FUA only the first super block.  The others we allow to
@@ -3842,7 +3839,7 @@ static int wait_dev_supers(struct btrfs_device *device, int max_mirrors)
 		max_mirrors = BTRFS_SUPER_MIRROR_MAX;
 
 	for (i = 0; i < max_mirrors; i++) {
-		struct page *page;
+		struct folio *folio;
 
 		ret = btrfs_sb_log_location(device, i, READ, &bytenr);
 		if (ret == -ENOENT) {
@@ -3857,27 +3854,23 @@ static int wait_dev_supers(struct btrfs_device *device, int max_mirrors)
 		    device->commit_total_bytes)
 			break;
 
-		page = find_get_page(device->bdev->bd_inode->i_mapping,
-				     bytenr >> PAGE_SHIFT);
-		if (!page) {
+		folio = __bdev_get_folio(device->bdev, bytenr, 0, 0);
+		if (!IS_ERR(folio)) {
 			errors++;
 			if (i == 0)
 				primary_failed = true;
 			continue;
 		}
 		/* Page is submitted locked and unlocked once the IO completes */
-		wait_on_page_locked(page);
-		if (PageError(page)) {
+		folio_wait_locked(folio);
+		if (folio_test_error(folio)) {
 			errors++;
 			if (i == 0)
 				primary_failed = true;
 		}
 
-		/* Drop our reference */
-		put_page(page);
-
-		/* Drop the reference from the writing run */
-		put_page(page);
+		/* Drop our reference and the reference from the writing run */
+		folio_put_refs(folio, 2);
 	}
 
 	/* log error, force error return */
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index c6f16625af51..b3538777683c 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -1230,16 +1230,16 @@ int btrfs_open_devices(struct btrfs_fs_devices *fs_devices,
 
 void btrfs_release_disk_super(struct btrfs_super_block *super)
 {
-	struct page *page = virt_to_page(super);
+	struct folio *folio = virt_to_folio(super);
 
-	put_page(page);
+	folio_put(folio);
 }
 
 static struct btrfs_super_block *btrfs_read_disk_super(struct block_device *bdev,
 						       u64 bytenr, u64 bytenr_orig)
 {
 	struct btrfs_super_block *disk_super;
-	struct page *page;
+	struct folio *folio;
 	void *p;
 	pgoff_t index;
 
@@ -1257,15 +1257,14 @@ static struct btrfs_super_block *btrfs_read_disk_super(struct block_device *bdev
 		return ERR_PTR(-EINVAL);
 
 	/* pull in the page with our super */
-	page = read_cache_page_gfp(bdev->bd_inode->i_mapping, index, GFP_KERNEL);
+	folio = bdev_read_folio(bdev, index);
+	if (IS_ERR(folio))
+		return ERR_CAST(folio);
 
-	if (IS_ERR(page))
-		return ERR_CAST(page);
-
-	p = page_address(page);
+	p = folio_address(folio);
 
 	/* align our pointer to the offset of the super block */
-	disk_super = p + offset_in_page(bytenr);
+	disk_super = p + offset_in_folio(folio, bytenr);
 
 	if (btrfs_super_bytenr(disk_super) != bytenr_orig ||
 	    btrfs_super_magic(disk_super) != BTRFS_MAGIC) {
diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 188378ca19c7..aea0a433b3e5 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -120,8 +120,6 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones,
 		return -ENOENT;
 	} else if (full[0] && full[1]) {
 		/* Compare two super blocks */
-		struct address_space *mapping = bdev->bd_inode->i_mapping;
-		struct page *page[BTRFS_NR_SB_LOG_ZONES];
 		struct btrfs_super_block *super[BTRFS_NR_SB_LOG_ZONES];
 		int i;
 
@@ -129,15 +127,18 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones,
 			u64 zone_end = (zones[i].start + zones[i].capacity) << SECTOR_SHIFT;
 			u64 bytenr = ALIGN_DOWN(zone_end, BTRFS_SUPER_INFO_SIZE) -
 						BTRFS_SUPER_INFO_SIZE;
+			struct folio *folio;
+			unsigned int nofs_flag;
 
-			page[i] = read_cache_page_gfp(mapping,
-					bytenr >> PAGE_SHIFT, GFP_NOFS);
-			if (IS_ERR(page[i])) {
+			nofs_flag = memalloc_nofs_save();
+			folio = bdev_read_folio(bdev, bytenr);
+			memalloc_nofs_restore(nofs_flag);
+			if (IS_ERR(folio)) {
 				if (i == 1)
 					btrfs_release_disk_super(super[0]);
-				return PTR_ERR(page[i]);
+				return PTR_ERR(folio);
 			}
-			super[i] = page_address(page[i]);
+			super[i] = folio_address(folio);
 		}
 
 		if (btrfs_super_generation(super[0]) >
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:07:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:07:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652139.1017881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwg-0006xU-N2; Mon, 11 Dec 2023 14:07:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652139.1017881; Mon, 11 Dec 2023 14:07:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgwg-0006wP-Hx; Mon, 11 Dec 2023 14:07:42 +0000
Received: by outflank-mailman (input) for mailman id 652139;
 Mon, 11 Dec 2023 14: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgwf-0003xP-5S
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:07:41 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2884163-982e-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:07:38 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Spk8j0CpKz4f3kjm
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:33 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 361D31A0A91
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:07:34 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDn6xGTF3dlDYFxDQ--.28013S14;
 Mon, 11 Dec 2023 22:07:33 +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: a2884163-982e-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 10/18] cramfs: use bdev apis in cramfs_blkdev_read()
Date: Mon, 11 Dec 2023 22:05:44 +0800
Message-Id: <20231211140552.973290-11-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6xGTF3dlDYFxDQ--.28013S14
X-Coremail-Antispam: 1UD129KBjvJXoW7Ww17ur1fXryfAFyrJF4fKrg_yoW8tF4UpF
	1akanIkr4q9ryI9ayfXr1DZF15Ga4kXF4DCFWxu3y3Z3W5Jrna9r10kry0qFW8GrZFqryv
	9r4jkryfur15Ka7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j6r
	xdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Cr1j6rxdMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JV
	WxJwCI42IY6I8E87Iv6xkF7I0E14v26F4UJVW0obIYCTnIWIevJa73UjIFyTuYvjfUOBTY
	UUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Also do some cleanup that there is no need for two for loop, and remove
local array pages.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/cramfs/inode.c | 36 +++++++++++++-----------------------
 1 file changed, 13 insertions(+), 23 deletions(-)

diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c
index 60dbfa0f8805..fad95d683d97 100644
--- a/fs/cramfs/inode.c
+++ b/fs/cramfs/inode.c
@@ -183,9 +183,6 @@ static int next_buffer;
 static void *cramfs_blkdev_read(struct super_block *sb, unsigned int offset,
 				unsigned int len)
 {
-	struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
-	struct file_ra_state ra = {};
-	struct page *pages[BLKS_PER_BUF];
 	unsigned i, blocknr, buffer;
 	unsigned long devsize;
 	char *data;
@@ -214,37 +211,30 @@ static void *cramfs_blkdev_read(struct super_block *sb, unsigned int offset,
 	devsize = bdev_nr_bytes(sb->s_bdev) >> PAGE_SHIFT;
 
 	/* Ok, read in BLKS_PER_BUF pages completely first. */
-	file_ra_state_init(&ra, mapping);
-	page_cache_sync_readahead(mapping, &ra, NULL, blocknr, BLKS_PER_BUF);
-
-	for (i = 0; i < BLKS_PER_BUF; i++) {
-		struct page *page = NULL;
-
-		if (blocknr + i < devsize) {
-			page = read_mapping_page(mapping, blocknr + i, NULL);
-			/* synchronous error? */
-			if (IS_ERR(page))
-				page = NULL;
-		}
-		pages[i] = page;
-	}
+	bdev_sync_readahead(sb->s_bdev, NULL, NULL, blocknr, BLKS_PER_BUF);
 
 	buffer = next_buffer;
 	next_buffer = NEXT_BUFFER(buffer);
 	buffer_blocknr[buffer] = blocknr;
 	buffer_dev[buffer] = sb;
-
 	data = read_buffers[buffer];
+
 	for (i = 0; i < BLKS_PER_BUF; i++) {
-		struct page *page = pages[i];
+		struct folio *folio = NULL;
+
+		if (blocknr + i < devsize)
+			folio = bdev_read_folio(sb->s_bdev,
+						(blocknr + i) << PAGE_SHIFT);
 
-		if (page) {
-			memcpy_from_page(data, page, 0, PAGE_SIZE);
-			put_page(page);
-		} else
+		if (IS_ERR_OR_NULL(folio)) {
 			memset(data, 0, PAGE_SIZE);
+		} else {
+			memcpy_from_folio(data, folio, 0, PAGE_SIZE);
+			folio_put(folio);
+		}
 		data += PAGE_SIZE;
 	}
+
 	return read_buffers[buffer] + offset;
 }
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:08:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:08:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652157.1017891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgxe-0001WW-Uu; Mon, 11 Dec 2023 14:08:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652157.1017891; Mon, 11 Dec 2023 14:08:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgxe-0001WN-Re; Mon, 11 Dec 2023 14:08:42 +0000
Received: by outflank-mailman (input) for mailman id 652157;
 Mon, 11 Dec 2023 14:08: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=ydLR=HW=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1rCgxd-0001Vs-O0
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:08:41 +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 c895b81d-982e-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:08:39 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a1e2f34467aso428035266b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 06:08:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c895b81d-982e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702303719; x=1702908519; 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=SIagXiUr9qcUjx+qV4QcL8eRgfLx3JAhDGQhMUNweiA=;
        b=LzQgd0H2+aksBspXF3BBQKEwxM5Z6qAQXa7C4VQccwpKlXliOdI1dyqMy8+n/NfoEl
         1G9Gprd0rkbk3eiz/LaR+WVP1TZxcCR/BixpzZn4/p/GONpRGnxBV/Y9EQZDleqBkeoI
         BATGurCr8MtGFxXpdAhsDXeF+J8vLBHpNTeuU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702303719; x=1702908519;
        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=SIagXiUr9qcUjx+qV4QcL8eRgfLx3JAhDGQhMUNweiA=;
        b=U2CtCIdCt5g2UWJMQLbsr36Rz4ZIiy0LB5kR6RlcJ2vjh54V+j0E5KNfFNLTkAW7i4
         7bi4WZacurfGHiFLoQ04xWFDnU4Srxi4ydQGZbjqzqkIPO7rpcPHkKfoi5noZNPN/ofe
         LAxmstyR3RGt23Q81ocquESJ8/XIDoNuA6jZp7iYbHvUjLV7hcH0nIcmBCF6SN5U0nFR
         JmdBP4D3LBnd9oJhejXpJ2QifbYNekthhgmWfTk7dNlzUWxquVf1y0ICyVhvrxt2pXh6
         032fQEbD5nWdJFhvMKQtzq1pODSv+IYuLS4qFjxZEwG1yFg24HFsANYk7+c+M1cIWhNX
         FJdA==
X-Gm-Message-State: AOJu0YwLIgAauWc5RjnLxgK1Qn1qwaflh+2UOVFe13be5qSqgsekS1xm
	7Ul6b9aiYvC63hPqUoWLr18KY51LbAkj8F841jxULw==
X-Google-Smtp-Source: AGHT+IGvVp1tdD936dtZA20B+fFOf1XZbgRhIxoIziRmRVvdVVmIdj41zHcNsfTVRZJKElBaQhGl4VNYqffMv3MqPCM=
X-Received: by 2002:a17:906:1010:b0:a19:4f2b:f76d with SMTP id
 16-20020a170906101000b00a194f2bf76dmr2204858ejm.13.1702303718951; Mon, 11 Dec
 2023 06:08:38 -0800 (PST)
MIME-Version: 1.0
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
 <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
 <alpine.DEB.2.22.394.2312011253390.110490@ubuntu-linux-20-04-desktop>
 <1978d259-1531-4dcc-a106-d87f6f26885d@suse.com> <CA+zSX=YNcjDZHF-gx8C8owEpyyjSEtj-MKDAqRwp9woHzEFtUg@mail.gmail.com>
 <alpine.DEB.2.22.394.2312041524180.110490@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2312041524180.110490@ubuntu-linux-20-04-desktop>
From: Kelly Choi <kelly.choi@cloud.com>
Date: Mon, 11 Dec 2023 14:08:02 +0000
Message-ID: <CAO-mL=ypSOeMPnXEeQJTAhZ2o3j5MPGCfXv0vM7Kje_syLmr8g@mail.gmail.com>
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: George Dunlap <george.dunlap@cloud.com>, Jan Beulich <jbeulich@suse.com>, 
	xen-devel@lists.xenproject.org, committers@xenproject.org
Content-Type: multipart/alternative; boundary="00000000000077fabe060c3c78ef"

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

Hi all,

As we haven't yet reached a consensus, let's see what the informal vote
looks like in the community by the end of the week.
Since the scope and context have changed slightly, anonymous voting is
permitted and I will be counting all votes made after Dec 4th. Please only
vote once.

Should you wish to change your answer you can do so using this link:
https://cryptpad.fr/form/#/2/form/view/7ByH95Vd7KiDOvN4wjV5iUGlMuZbkVdwk7cY=
pZdluWo/

Many thanks,
Kelly Choi

Community Manager
Xen Project


On Mon, Dec 4, 2023 at 11:51=E2=80=AFPM Stefano Stabellini <sstabellini@ker=
nel.org>
wrote:

> On Mon, 4 Dec 2023, George Dunlap wrote:
> > And how do we give people practical options to respond to a maintainer
> > who they think is being "picky"
>
> If a maintainer is too picky the contributor and the other maintainers
> should say that the patch is good enough in their view. If the
> maintainers disagree (on that topic or another) the new informal voting
> rule should help us move forward faster.
>
> The informal voting would have helped us move forward faster in the
> original thread.
>
>
> On Mon, 4 Dec 2023, George Dunlap wrote:
> > the chance of a vote of the committers being out of sync with the
> > community is fairly small. But of course, small is not impossible.
> > [...] Hence the community-wide survey.
>
> Yes. If someone cares about the outcome, and they are not happy with the
> informal vote, then they need to call for a formal vote.
>
> But maintainers/committers might not always be the right people to
> escalate the voting to.
>
> Yes committers' opinions should count, but certain things have more to
> do with our users and the way they understand our documentation than
> implementation correctness. For these things, our users' opinions should
> count as much as ours.
>
> So I can see that in those cases, if someone is not happy with the
> informal vote, the best next step would be a community-wide survey like
> Kelly did here. That's a good idea.
>
> I don't think that's written anywhere in our governance specifically,
> but I think it would be a good addition.
>

--00000000000077fabe060c3c78ef
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 we haven&#39;t yet rea=
ched a consensus, let&#39;s see what the informal vote looks like in the co=
mmunity by the end of the week.=C2=A0</div><div>Since the scope and context=
 have changed slightly, anonymous voting is permitted and I will be countin=
g all votes made after Dec 4th. Please only vote once.=C2=A0</div><div><br>=
</div><div>Should you wish to change your answer you can do so using this l=
ink:=C2=A0<a href=3D"https://cryptpad.fr/form/#/2/form/view/7ByH95Vd7KiDOvN=
4wjV5iUGlMuZbkVdwk7cYpZdluWo/">https://cryptpad.fr/form/#/2/form/view/7ByH9=
5Vd7KiDOvN4wjV5iUGlMuZbkVdwk7cYpZdluWo/</a></div><div><br clear=3D"all"><di=
v><div dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signat=
ure"><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><di=
v 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 Mon, Dec 4, 2023 at 11:51=E2=80=AFPM Stefano Stabel=
lini &lt;<a href=3D"mailto:sstabellini@kernel.org">sstabellini@kernel.org</=
a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On=
 Mon, 4 Dec 2023, George Dunlap wrote:<br>
&gt; And how do we give people practical options to respond to a maintainer=
<br>
&gt; who they think is being &quot;picky&quot;<br>
<br>
If a maintainer is too picky the contributor and the other maintainers<br>
should say that the patch is good enough in their view. If the<br>
maintainers disagree (on that topic or another) the new informal voting<br>
rule should help us move forward faster.<br>
<br>
The informal voting would have helped us move forward faster in the<br>
original thread.<br>
<br>
<br>
On Mon, 4 Dec 2023, George Dunlap wrote:<br>
&gt; the chance of a vote of the committers being out of sync with the<br>
&gt; community is fairly small. But of course, small is not impossible.<br>
&gt; [...] Hence the community-wide survey.<br>
<br>
Yes. If someone cares about the outcome, and they are not happy with the<br=
>
informal vote, then they need to call for a formal vote.<br>
<br>
But maintainers/committers might not always be the right people to<br>
escalate the voting to.<br>
<br>
Yes committers&#39; opinions should count, but certain things have more to<=
br>
do with our users and the way they understand our documentation than<br>
implementation correctness. For these things, our users&#39; opinions shoul=
d<br>
count as much as ours.<br>
<br>
So I can see that in those cases, if someone is not happy with the<br>
informal vote, the best next step would be a community-wide survey like<br>
Kelly did here. That&#39;s a good idea. <br>
<br>
I don&#39;t think that&#39;s written anywhere in our governance specificall=
y,<br>
but I think it would be a good addition.<br>
</blockquote></div>

--00000000000077fabe060c3c78ef--


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:08:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:08:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652158.1017901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgxr-0001qv-66; Mon, 11 Dec 2023 14:08:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652158.1017901; Mon, 11 Dec 2023 14:08: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 1rCgxr-0001qo-33; Mon, 11 Dec 2023 14:08:55 +0000
Received: by outflank-mailman (input) for mailman id 652158;
 Mon, 11 Dec 2023 14:08:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgxp-0001ph-Oh
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:08:53 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cea90782-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:08:52 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SpkB26fRZz4f3lDn
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:08:42 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id CE1A21A083F
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:08:47 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDX2xHtF3dlUJpxDQ--.35009S4;
 Mon, 11 Dec 2023 22:08:47 +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: cea90782-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 11/18] erofs: use bdev api
Date: Mon, 11 Dec 2023 22:07:22 +0800
Message-Id: <20231211140722.974745-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDX2xHtF3dlUJpxDQ--.35009S4
X-Coremail-Antispam: 1UD129KBjvJXoW7ZF4kuFy3Wr1DurykKryxGrg_yoW8KrW8pF
	W7Cr1rGrWrXrs09wn2gr1UZF43ta97Jw48CayxJw1Fv3yUtryagFy0ywnrGr48Kr4kKrs2
	qF1Ivryxuw1UGrUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUvY14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_Zr0_Wr1UMIIF0xvEx4A2jsIE14v2
	6r4j6F4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Cr1j6rxdYxBIdaVFxhVjvjDU0xZFpf9x0J
	UCXdbUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/erofs/data.c     | 18 ++++++++++++------
 fs/erofs/internal.h |  2 ++
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/fs/erofs/data.c b/fs/erofs/data.c
index c98aeda8abb2..8cf3618190ab 100644
--- a/fs/erofs/data.c
+++ b/fs/erofs/data.c
@@ -32,8 +32,7 @@ void erofs_put_metabuf(struct erofs_buf *buf)
 void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
 		  enum erofs_kmap_type type)
 {
-	struct inode *inode = buf->inode;
-	erofs_off_t offset = (erofs_off_t)blkaddr << inode->i_blkbits;
+	erofs_off_t offset = (erofs_off_t)blkaddr << buf->blkszbits;
 	pgoff_t index = offset >> PAGE_SHIFT;
 	struct page *page = buf->page;
 	struct folio *folio;
@@ -43,7 +42,9 @@ void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
 		erofs_put_metabuf(buf);
 
 		nofs_flag = memalloc_nofs_save();
-		folio = read_cache_folio(inode->i_mapping, index, NULL, NULL);
+		folio = buf->inode ?
+			read_mapping_folio(buf->inode->i_mapping, index, NULL) :
+			bdev_read_folio(buf->bdev, offset);
 		memalloc_nofs_restore(nofs_flag);
 		if (IS_ERR(folio))
 			return folio;
@@ -67,10 +68,15 @@ void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
 
 void erofs_init_metabuf(struct erofs_buf *buf, struct super_block *sb)
 {
-	if (erofs_is_fscache_mode(sb))
+	if (erofs_is_fscache_mode(sb)) {
 		buf->inode = EROFS_SB(sb)->s_fscache->inode;
-	else
-		buf->inode = sb->s_bdev->bd_inode;
+		buf->bdev = NULL;
+		buf->blkszbits = buf->inode->i_blkbits;
+	} else {
+		buf->inode = NULL;
+		buf->bdev = sb->s_bdev;
+		buf->blkszbits = EROFS_SB(sb)->blkszbits;
+	}
 }
 
 void *erofs_read_metabuf(struct erofs_buf *buf, struct super_block *sb,
diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
index b0409badb017..c9206351b485 100644
--- a/fs/erofs/internal.h
+++ b/fs/erofs/internal.h
@@ -224,8 +224,10 @@ enum erofs_kmap_type {
 
 struct erofs_buf {
 	struct inode *inode;
+	struct block_device *bdev;
 	struct page *page;
 	void *base;
+	u8 blkszbits;
 	enum erofs_kmap_type kmap_type;
 };
 #define __EROFS_BUF_INITIALIZER	((struct erofs_buf){ .page = NULL })
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:08:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:08:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652159.1017911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgxv-0002AH-De; Mon, 11 Dec 2023 14:08:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652159.1017911; Mon, 11 Dec 2023 14:08:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgxv-0002AA-Aw; Mon, 11 Dec 2023 14:08:59 +0000
Received: by outflank-mailman (input) for mailman id 652159;
 Mon, 11 Dec 2023 14:08:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgxu-0001ph-KW
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:08:58 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1c68d55-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:08:57 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SpkB844Y9z4f3jLf
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:08:48 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 76CA21A0895
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:08:53 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDX2xHyF3dl1JtxDQ--.35010S4;
 Mon, 11 Dec 2023 22:08:52 +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: d1c68d55-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 12/18] gfs2: use bdev api
Date: Mon, 11 Dec 2023 22:07:28 +0800
Message-Id: <20231211140728.974887-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDX2xHyF3dl1JtxDQ--.35010S4
X-Coremail-Antispam: 1UD129KBjvJXoW7ZFyUZFWfCw1DKw45ZF1fZwb_yoW8Jw45pr
	yDAF1akF4kWrnIgaykZF4rt3WUWay8G3yxAr95Aw1YvrZrW3Wag392kF4UJF45Ja97JwsI
	ga1ayw4akr1agrUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	Mq2tUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/gfs2/glock.c      | 2 +-
 fs/gfs2/ops_fstype.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index d6bf1f8c25dc..4128a5bc4bb6 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -1210,7 +1210,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number,
 	mapping = gfs2_glock2aspace(gl);
 	if (mapping) {
                 mapping->a_ops = &gfs2_meta_aops;
-		mapping->host = s->s_bdev->bd_inode;
+		bdev_associated_mapping(s->s_bdev, mapping);
 		mapping->flags = 0;
 		mapping_set_gfp_mask(mapping, GFP_NOFS);
 		mapping->private_data = NULL;
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index b108c5d26839..56ae8959b55a 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -114,7 +114,7 @@ static struct gfs2_sbd *init_sbd(struct super_block *sb)
 
 	address_space_init_once(mapping);
 	mapping->a_ops = &gfs2_rgrp_aops;
-	mapping->host = sb->s_bdev->bd_inode;
+	bdev_associated_mapping(sb->s_bdev, mapping);
 	mapping->flags = 0;
 	mapping_set_gfp_mask(mapping, GFP_NOFS);
 	mapping->private_data = NULL;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:09:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:09:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652161.1017921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgy1-0002XQ-Ny; Mon, 11 Dec 2023 14:09:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652161.1017921; Mon, 11 Dec 2023 14: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 1rCgy1-0002XJ-KK; Mon, 11 Dec 2023 14:09:05 +0000
Received: by outflank-mailman (input) for mailman id 652161;
 Mon, 11 Dec 2023 14:09: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgy0-0001ph-DX
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:09:04 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d53904a6-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:09:03 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SpkBL0SMbz4f3k6m
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:08:58 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 3E0071A021E
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:08:59 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDHyhD4F3dlc51xDQ--.24857S4;
 Mon, 11 Dec 2023 22:08:58 +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: d53904a6-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 13/18] nilfs2: use bdev api in nilfs_attach_log_writer()
Date: Mon, 11 Dec 2023 22:07:33 +0800
Message-Id: <20231211140733.974992-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDHyhD4F3dlc51xDQ--.24857S4
X-Coremail-Antispam: 1UD129KBjvdXoW7XFWxAFW7ZFyrGFW3Ar45GFg_yoW3Gwc_Xr
	n5JrykWrWYqFZ3uw4DurZ0yryrA3WrGa1xJry0kFyrGF4IyFs5Cr1qvr45tayUursrXwn3
	WwnrWrZ8tr1UXjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbxxFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w
	A2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j
	6rxdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s
	0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xII
	jxv20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr
	1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxa
	n2IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrV
	AFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1l
	IxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxV
	AFwI0_Cr1j6rxdMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8
	JVWxJwCI42IY6I8E87Iv6xkF7I0E14v26F4UJVW0obIYCTnIWIevJa73UjIFyTuYvjfUoL
	0eDUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/nilfs2/segment.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index 55e31cc903d1..a1130e384937 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -2823,7 +2823,7 @@ int nilfs_attach_log_writer(struct super_block *sb, struct nilfs_root *root)
 	if (!nilfs->ns_writer)
 		return -ENOMEM;
 
-	inode_attach_wb(nilfs->ns_bdev->bd_inode, NULL);
+	bdev_attach_wb(nilfs->ns_bdev);
 
 	err = nilfs_segctor_start_thread(nilfs->ns_writer);
 	if (unlikely(err))
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:09:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:09:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652168.1017931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgyF-0003GI-7w; Mon, 11 Dec 2023 14:09:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652168.1017931; Mon, 11 Dec 2023 14: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 1rCgyF-0003GB-48; Mon, 11 Dec 2023 14:09:19 +0000
Received: by outflank-mailman (input) for mailman id 652168;
 Mon, 11 Dec 2023 14:09: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgyD-0001ph-5E
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:09:17 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db57ec60-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:09:16 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SpkBW10hTz4f3kFg
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:09:07 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 885E91A0538
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:09:09 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgCnqxEDGHdlUaBxDQ--.22294S4;
 Mon, 11 Dec 2023 22:09:09 +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: db57ec60-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 14/18] jbd2: use bdev apis
Date: Mon, 11 Dec 2023 22:07:44 +0800
Message-Id: <20231211140744.975145-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgCnqxEDGHdlUaBxDQ--.22294S4
X-Coremail-Antispam: 1UD129KBjvJXoW7ZF4DtryUur43Kr4DJr4DCFg_yoW8ZFyrpr
	yUGas8CrZFvrW8XF1kGF4kJrWjga40vayUCFnF93Z2yw4Svr1avw18Kr13GFyYvFWFga1U
	Xr1jyay8Kw4YgFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_JFI_Gr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	ZNVDUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/jbd2/journal.c  | 3 +--
 fs/jbd2/recovery.c | 6 ++----
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index ed53188472f9..f1b5ffeaf02a 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -2003,8 +2003,7 @@ static int __jbd2_journal_erase(journal_t *journal, unsigned int flags)
 		byte_count = (block_stop - block_start + 1) *
 				journal->j_blocksize;
 
-		truncate_inode_pages_range(journal->j_dev->bd_inode->i_mapping,
-				byte_start, byte_stop);
+		truncate_bdev_range(journal->j_dev, 0, byte_start, byte_stop);
 
 		if (flags & JBD2_JOURNAL_FLUSH_DISCARD) {
 			err = blkdev_issue_discard(journal->j_dev,
diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index 01f744cb97a4..6b6a2c4585fa 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -290,7 +290,6 @@ int jbd2_journal_recover(journal_t *journal)
 
 	struct recovery_info	info;
 	errseq_t		wb_err;
-	struct address_space	*mapping;
 
 	memset(&info, 0, sizeof(info));
 	sb = journal->j_superblock;
@@ -309,8 +308,7 @@ int jbd2_journal_recover(journal_t *journal)
 	}
 
 	wb_err = 0;
-	mapping = journal->j_fs_dev->bd_inode->i_mapping;
-	errseq_check_and_advance(&mapping->wb_err, &wb_err);
+	bdev_wb_err_check_and_advance(journal->j_fs_dev, &wb_err);
 	err = do_one_pass(journal, &info, PASS_SCAN);
 	if (!err)
 		err = do_one_pass(journal, &info, PASS_REVOKE);
@@ -334,7 +332,7 @@ int jbd2_journal_recover(journal_t *journal)
 	err2 = sync_blockdev(journal->j_fs_dev);
 	if (!err)
 		err = err2;
-	err2 = errseq_check_and_advance(&mapping->wb_err, &wb_err);
+	err2 = bdev_wb_err_check_and_advance(journal->j_fs_dev, &wb_err);
 	if (!err)
 		err = err2;
 	/* Make sure all replayed data is on permanent storage */
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:09:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:09:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652174.1017941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgyL-0003lS-Ft; Mon, 11 Dec 2023 14:09:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652174.1017941; Mon, 11 Dec 2023 14:09:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgyL-0003lJ-Bv; Mon, 11 Dec 2023 14:09:25 +0000
Received: by outflank-mailman (input) for mailman id 652174;
 Mon, 11 Dec 2023 14:09:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgyK-0001Vs-TN
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:09:24 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e0d023a2-982e-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:09:22 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SpkBj3klCz4f3kJt
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:09:17 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id B0A4B1A0585
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:09:18 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDHyhAMGHdl2qJxDQ--.24877S4;
 Mon, 11 Dec 2023 22:09:18 +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: e0d023a2-982e-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 15/18] buffer: add a new helper to read sb block
Date: Mon, 11 Dec 2023 22:07:53 +0800
Message-Id: <20231211140753.975297-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDHyhAMGHdl2qJxDQ--.24877S4
X-Coremail-Antispam: 1UD129KBjvJXoW3AFyUCF4kKryrJrW3trWrXwb_yoW7Ww13pr
	98Kay3trWDKFyaqF1xtwn8Jr13t3Z2v3W8CayfJ3s3ArWUGrn3XF9rGr129FWFyr9rXry5
	XFW5CrWfCr1UWFDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_JFI_Gr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	ZNVDUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Unlike __bread_gfp(), ext4 has special handing while reading sb block:

1) __GFP_NOFAIL is not set, and memory allocation can fail;
2) If buffer write failed before, set buffer uptodate and don't read
   block from disk;
3) REQ_META is set for all IO, and REQ_PRIO is set for reading xattr;
4) If failed, return error ptr instead of NULL;

This patch add a new helper __bread_gfp2() that will match above 2 and 3(
1 will be used, and 4 will still be encapsulated by ext4), and prepare to
prevent calling mapping_gfp_constraint() directly on bd_inode->i_mapping
in ext4.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/buffer.c                 | 68 ++++++++++++++++++++++++++-----------
 include/linux/buffer_head.h | 18 +++++++++-
 2 files changed, 65 insertions(+), 21 deletions(-)

diff --git a/fs/buffer.c b/fs/buffer.c
index 967f34b70aa8..188bd36c9fea 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -1255,16 +1255,19 @@ void __bforget(struct buffer_head *bh)
 }
 EXPORT_SYMBOL(__bforget);
 
-static struct buffer_head *__bread_slow(struct buffer_head *bh)
+static struct buffer_head *__bread_slow(struct buffer_head *bh,
+					blk_opf_t op_flags,
+					bool check_write_error)
 {
 	lock_buffer(bh);
-	if (buffer_uptodate(bh)) {
+	if (buffer_uptodate(bh) ||
+	    (check_write_error && buffer_uptodate_or_error(bh))) {
 		unlock_buffer(bh);
 		return bh;
 	} else {
 		get_bh(bh);
 		bh->b_end_io = end_buffer_read_sync;
-		submit_bh(REQ_OP_READ, bh);
+		submit_bh(REQ_OP_READ | op_flags, bh);
 		wait_on_buffer(bh);
 		if (buffer_uptodate(bh))
 			return bh;
@@ -1445,6 +1448,31 @@ void __breadahead(struct block_device *bdev, sector_t block, unsigned size)
 }
 EXPORT_SYMBOL(__breadahead);
 
+static struct buffer_head *
+bread_gfp(struct block_device *bdev, sector_t block, unsigned int size,
+	  blk_opf_t op_flags, gfp_t gfp, bool check_write_error)
+{
+	struct buffer_head *bh;
+
+	gfp |= mapping_gfp_constraint(bdev->bd_inode->i_mapping, ~__GFP_FS);
+
+	/*
+	 * Prefer looping in the allocator rather than here, at least that
+	 * code knows what it's doing.
+	 */
+	gfp |= __GFP_NOFAIL;
+
+	bh = bdev_getblk(bdev, block, size, gfp);
+	if (unlikely(!bh))
+		return NULL;
+
+	if (buffer_uptodate(bh) ||
+	    (check_write_error && buffer_uptodate_or_error(bh)))
+		return bh;
+
+	return __bread_slow(bh, op_flags, check_write_error);
+}
+
 /**
  *  __bread_gfp() - reads a specified block and returns the bh
  *  @bdev: the block_device to read from
@@ -1458,27 +1486,27 @@ EXPORT_SYMBOL(__breadahead);
  *  It returns NULL if the block was unreadable.
  */
 struct buffer_head *
-__bread_gfp(struct block_device *bdev, sector_t block,
-		   unsigned size, gfp_t gfp)
+__bread_gfp(struct block_device *bdev, sector_t block, unsigned int size,
+	    gfp_t gfp)
 {
-	struct buffer_head *bh;
-
-	gfp |= mapping_gfp_constraint(bdev->bd_inode->i_mapping, ~__GFP_FS);
-
-	/*
-	 * Prefer looping in the allocator rather than here, at least that
-	 * code knows what it's doing.
-	 */
-	gfp |= __GFP_NOFAIL;
-
-	bh = bdev_getblk(bdev, block, size, gfp);
-
-	if (likely(bh) && !buffer_uptodate(bh))
-		bh = __bread_slow(bh);
-	return bh;
+	return bread_gfp(bdev, block, size, 0, gfp, false);
 }
 EXPORT_SYMBOL(__bread_gfp);
 
+/*
+ * This works like __bread_gfp() except:
+ * 1) If buffer write failed before, set buffer uptodate and don't read
+ * block from disk;
+ * 2) Caller can pass in additional op_flags like REQ_META;
+ */
+struct buffer_head *
+__bread_gfp2(struct block_device *bdev, sector_t block, unsigned int size,
+	     blk_opf_t op_flags, gfp_t gfp)
+{
+	return bread_gfp(bdev, block, size, op_flags, gfp, true);
+}
+EXPORT_SYMBOL(__bread_gfp2);
+
 static void __invalidate_bh_lrus(struct bh_lru *b)
 {
 	int i;
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index 5f23ee599889..751b2744b4ae 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -171,6 +171,18 @@ static __always_inline int buffer_uptodate(const struct buffer_head *bh)
 	return test_bit_acquire(BH_Uptodate, &bh->b_state);
 }
 
+static __always_inline int buffer_uptodate_or_error(struct buffer_head *bh)
+{
+	/*
+	 * If the buffer has the write error flag, data was failed to write
+	 * out in the block. In this case, set buffer uptodate to prevent
+	 * reading old data.
+	 */
+	if (buffer_write_io_error(bh))
+		set_buffer_uptodate(bh);
+	return buffer_uptodate(bh);
+}
+
 static inline unsigned long bh_offset(const struct buffer_head *bh)
 {
 	return (unsigned long)(bh)->b_data & (page_size(bh->b_page) - 1);
@@ -231,7 +243,11 @@ void __brelse(struct buffer_head *);
 void __bforget(struct buffer_head *);
 void __breadahead(struct block_device *, sector_t block, unsigned int size);
 struct buffer_head *__bread_gfp(struct block_device *,
-				sector_t block, unsigned size, gfp_t gfp);
+				sector_t block, unsigned int size, gfp_t gfp);
+struct buffer_head *__bread_gfp2(struct block_device *bdev, sector_t block,
+				 unsigned int size, blk_opf_t op_flags,
+				 gfp_t gfp);
+
 struct buffer_head *alloc_buffer_head(gfp_t gfp_flags);
 void free_buffer_head(struct buffer_head * bh);
 void unlock_buffer(struct buffer_head *bh);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:09:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:09:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652177.1017951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgyd-0004jl-Om; Mon, 11 Dec 2023 14:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652177.1017951; Mon, 11 Dec 2023 14:09:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgyd-0004jc-Ks; Mon, 11 Dec 2023 14:09:43 +0000
Received: by outflank-mailman (input) for mailman id 652177;
 Mon, 11 Dec 2023 14:09:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgyc-0001Vs-P9
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:09:42 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9e675b0-982e-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:09:40 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SpkBz3Q7Vz4f3js8
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:09:31 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id E107E1A021B
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:09:33 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgBHShAbGHdlQKdxDQ--.12405S4;
 Mon, 11 Dec 2023 22:09:33 +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: e9e675b0-982e-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 16/18] ext4: use new helper to read sb block
Date: Mon, 11 Dec 2023 22:08:08 +0800
Message-Id: <20231211140808.975527-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgBHShAbGHdlQKdxDQ--.12405S4
X-Coremail-Antispam: 1UD129KBjvJXoWxtr4kKw17tFW8tr4DKr1xZrb_yoW7AFy7pa
	sIka9Fkryvqrn09a1xKr13tw1ay3Z2ga1UGayfC34furyqqrn3Xa48tF1I9FWrArZxXry5
	XF1UKryrCr18CFDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_Gr0_Zr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	YLvtUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Remove __ext4_sb_bread_gfp() and ext4_buffer_uptodate() that is defined
by ext4, and convert to use common helper __bread_gfp2() and
buffer_uptodate_or_error().

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/ext4/ext4.h    | 13 -------------
 fs/ext4/inode.c   |  8 ++++----
 fs/ext4/super.c   | 45 ++++++++++-----------------------------------
 fs/ext4/symlink.c |  2 +-
 4 files changed, 15 insertions(+), 53 deletions(-)

diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index a5d784872303..8377f6c5264f 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -3824,19 +3824,6 @@ extern const struct iomap_ops ext4_iomap_ops;
 extern const struct iomap_ops ext4_iomap_overwrite_ops;
 extern const struct iomap_ops ext4_iomap_report_ops;
 
-static inline int ext4_buffer_uptodate(struct buffer_head *bh)
-{
-	/*
-	 * If the buffer has the write error flag, we have failed
-	 * to write out data in the block.  In this  case, we don't
-	 * have to read the block because we may read the old data
-	 * successfully.
-	 */
-	if (buffer_write_io_error(bh))
-		set_buffer_uptodate(bh);
-	return buffer_uptodate(bh);
-}
-
 #endif	/* __KERNEL__ */
 
 #define EFSBADCRC	EBADMSG		/* Bad CRC detected */
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 61277f7f8722..efb0af6f02f7 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -887,7 +887,7 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode,
 	bh = ext4_getblk(handle, inode, block, map_flags);
 	if (IS_ERR(bh))
 		return bh;
-	if (!bh || ext4_buffer_uptodate(bh))
+	if (!bh || buffer_uptodate_or_error(bh))
 		return bh;
 
 	ret = ext4_read_bh_lock(bh, REQ_META | REQ_PRIO, true);
@@ -915,7 +915,7 @@ int ext4_bread_batch(struct inode *inode, ext4_lblk_t block, int bh_count,
 
 	for (i = 0; i < bh_count; i++)
 		/* Note that NULL bhs[i] is valid because of holes. */
-		if (bhs[i] && !ext4_buffer_uptodate(bhs[i]))
+		if (bhs[i] && !buffer_uptodate_or_error(bhs[i]))
 			ext4_read_bh_lock(bhs[i], REQ_META | REQ_PRIO, false);
 
 	if (!wait)
@@ -4392,11 +4392,11 @@ static int __ext4_get_inode_loc(struct super_block *sb, unsigned long ino,
 	bh = sb_getblk(sb, block);
 	if (unlikely(!bh))
 		return -ENOMEM;
-	if (ext4_buffer_uptodate(bh))
+	if (buffer_uptodate_or_error(bh))
 		goto has_buffer;
 
 	lock_buffer(bh);
-	if (ext4_buffer_uptodate(bh)) {
+	if (buffer_uptodate_or_error(bh)) {
 		/* Someone brought it uptodate while we waited */
 		unlock_buffer(bh);
 		goto has_buffer;
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index c5fcf377ab1f..ae41204f52d4 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -180,7 +180,7 @@ void ext4_read_bh_nowait(struct buffer_head *bh, blk_opf_t op_flags,
 {
 	BUG_ON(!buffer_locked(bh));
 
-	if (ext4_buffer_uptodate(bh)) {
+	if (buffer_uptodate_or_error(bh)) {
 		unlock_buffer(bh);
 		return;
 	}
@@ -191,7 +191,7 @@ int ext4_read_bh(struct buffer_head *bh, blk_opf_t op_flags, bh_end_io_t *end_io
 {
 	BUG_ON(!buffer_locked(bh));
 
-	if (ext4_buffer_uptodate(bh)) {
+	if (buffer_uptodate_or_error(bh)) {
 		unlock_buffer(bh);
 		return 0;
 	}
@@ -214,49 +214,24 @@ int ext4_read_bh_lock(struct buffer_head *bh, blk_opf_t op_flags, bool wait)
 	return ext4_read_bh(bh, op_flags, NULL);
 }
 
-/*
- * This works like __bread_gfp() except it uses ERR_PTR for error
- * returns.  Currently with sb_bread it's impossible to distinguish
- * between ENOMEM and EIO situations (since both result in a NULL
- * return.
- */
-static struct buffer_head *__ext4_sb_bread_gfp(struct super_block *sb,
-					       sector_t block,
-					       blk_opf_t op_flags, gfp_t gfp)
-{
-	struct buffer_head *bh;
-	int ret;
-
-	bh = sb_getblk_gfp(sb, block, gfp);
-	if (bh == NULL)
-		return ERR_PTR(-ENOMEM);
-	if (ext4_buffer_uptodate(bh))
-		return bh;
-
-	ret = ext4_read_bh_lock(bh, REQ_META | op_flags, true);
-	if (ret) {
-		put_bh(bh);
-		return ERR_PTR(ret);
-	}
-	return bh;
-}
-
 struct buffer_head *ext4_sb_bread(struct super_block *sb, sector_t block,
 				   blk_opf_t op_flags)
 {
-	gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping,
-			~__GFP_FS) | __GFP_MOVABLE;
+	struct buffer_head *bh = __bread_gfp2(sb->s_bdev, block,
+					      sb->s_blocksize,
+					      REQ_META | op_flags,
+					      __GFP_MOVABLE);
 
-	return __ext4_sb_bread_gfp(sb, block, op_flags, gfp);
+	return bh ? bh : ERR_PTR(-EIO);
 }
 
 struct buffer_head *ext4_sb_bread_unmovable(struct super_block *sb,
 					    sector_t block)
 {
-	gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping,
-			~__GFP_FS);
+	struct buffer_head *bh = __bread_gfp2(sb->s_bdev, block,
+					      sb->s_blocksize, 0, 0);
 
-	return __ext4_sb_bread_gfp(sb, block, 0, gfp);
+	return bh ? bh : ERR_PTR(-EIO);
 }
 
 void ext4_sb_breadahead_unmovable(struct super_block *sb, sector_t block)
diff --git a/fs/ext4/symlink.c b/fs/ext4/symlink.c
index 75bf1f88843c..49e918221aac 100644
--- a/fs/ext4/symlink.c
+++ b/fs/ext4/symlink.c
@@ -94,7 +94,7 @@ static const char *ext4_get_link(struct dentry *dentry, struct inode *inode,
 		bh = ext4_getblk(NULL, inode, 0, EXT4_GET_BLOCKS_CACHED_NOWAIT);
 		if (IS_ERR(bh))
 			return ERR_CAST(bh);
-		if (!bh || !ext4_buffer_uptodate(bh))
+		if (!bh || !buffer_uptodate_or_error(bh))
 			return ERR_PTR(-ECHILD);
 	} else {
 		bh = ext4_bread(NULL, inode, 0, 0);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:10:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:10:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652180.1017961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCgz1-0006LP-0u; Mon, 11 Dec 2023 14:10:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652180.1017961; Mon, 11 Dec 2023 14: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 1rCgz0-0006LE-UD; Mon, 11 Dec 2023 14:10:06 +0000
Received: by outflank-mailman (input) for mailman id 652180;
 Mon, 11 Dec 2023 14:10: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgyz-0001ph-LR
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:10:05 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f8c296bf-982e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:10:04 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SpkCS2wnkz4f3jsC
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:09:56 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id D2DAF1A0489
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:09:58 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgBXWhA0GHdlbq5xDQ--.18493S4;
 Mon, 11 Dec 2023 22:09:58 +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: f8c296bf-982e-11ee-98e8-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 17/18] ext4: remove block_device_ejected()
Date: Mon, 11 Dec 2023 22:08:33 +0800
Message-Id: <20231211140833.975935-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgBXWhA0GHdlbq5xDQ--.18493S4
X-Coremail-Antispam: 1UD129KBjvJXoW7Kr4UGw1xJF1fWr48KFy3urg_yoW8uFyfp3
	y3Cw1fArW8ur1I9ayxJr48W340qayvkay0gFyxur1Fqr1fJ34IgFWktF1Iya40vrZ3uw1F
	qF1UCrWxCr18GrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_Gr0_Zr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	YLvtUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

block_device_ejected() is added by commit bdfe0cbd746a ("Revert
"ext4: remove block_device_ejected"") in 2015. At that time 'bdi->wb'
is destroyed synchronized from del_gendisk(), hence if ext4 is still
mounted, and then mark_buffer_dirty() will reference destroyed 'wb'.
However, such problem doesn't exist anymore:

- commit d03f6cdc1fc4 ("block: Dynamically allocate and refcount
backing_dev_info") switch bdi to use refcounting;
- commit 13eec2363ef0 ("fs: Get proper reference for s_bdi"), will grab
additional reference of bdi while mounting, so that 'bdi->wb' will not
be destroyed until generic_shutdown_super().

Hence remove this dead function block_device_ejected().

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/ext4/super.c | 18 ------------------
 1 file changed, 18 deletions(-)

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index ae41204f52d4..3b5e2b557488 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -467,22 +467,6 @@ static void ext4_maybe_update_superblock(struct super_block *sb)
 		schedule_work(&EXT4_SB(sb)->s_sb_upd_work);
 }
 
-/*
- * The del_gendisk() function uninitializes the disk-specific data
- * structures, including the bdi structure, without telling anyone
- * else.  Once this happens, any attempt to call mark_buffer_dirty()
- * (for example, by ext4_commit_super), will cause a kernel OOPS.
- * This is a kludge to prevent these oops until we can put in a proper
- * hook in del_gendisk() to inform the VFS and file system layers.
- */
-static int block_device_ejected(struct super_block *sb)
-{
-	struct inode *bd_inode = sb->s_bdev->bd_inode;
-	struct backing_dev_info *bdi = inode_to_bdi(bd_inode);
-
-	return bdi->dev == NULL;
-}
-
 static void ext4_journal_commit_callback(journal_t *journal, transaction_t *txn)
 {
 	struct super_block		*sb = journal->j_private;
@@ -6162,8 +6146,6 @@ static int ext4_commit_super(struct super_block *sb)
 
 	if (!sbh)
 		return -EINVAL;
-	if (block_device_ejected(sb))
-		return -ENODEV;
 
 	ext4_update_super(sb);
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:15:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:15:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652212.1017971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCh3n-000816-Lp; Mon, 11 Dec 2023 14:15:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652212.1017971; Mon, 11 Dec 2023 14:15:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCh3n-00080z-Iy; Mon, 11 Dec 2023 14:15:03 +0000
Received: by outflank-mailman (input) for mailman id 652212;
 Mon, 11 Dec 2023 14:15: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 1rCh3m-00080t-6C
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:15: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 1rCh3l-00062f-Jb; Mon, 11 Dec 2023 14:15:01 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.158.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCh3l-0000xf-DF; Mon, 11 Dec 2023 14:15:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=mEBBgSkRStZd7PzlH3APts9TAgftohcaYCwW+Ry2Glg=; b=nJMkUnG/5111N5WBmKxM8CWB0i
	/s3p8/0JP5Z0bhp1+78zbbQX8LprIwEZTPyxgS9U34ki4UrxiXmIB8+PTCAIYvJGFLwybyPiFdJ/y
	9f5t7HQpcQYlusXWIPhGjz1DhU2xUcySLe/NjwjnvhyuLxxhsB2eL2UtDYJNU0HqK6Vc=;
Message-ID: <731ed3e1-bbf5-4309-90ec-e9f8e7be6620@xen.org>
Date: Mon, 11 Dec 2023 14:14:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 3/7] xen/arm: address MISRA C:2012 Rule 2.1
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>, xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <4c0d38f2b707afa9aed1853a99d286fa2424fb9d.1702283415.git.nicola.vetrini@bugseng.com>
 <e86f46bd-b404-4feb-82f5-90c52837e169@xen.org>
 <0f554dea-60fe-409a-935d-87f3eac30a87@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0f554dea-60fe-409a-935d-87f3eac30a87@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 11/12/2023 13:06, Michal Orzel wrote:
> 
> 
> On 11/12/2023 13:29, Julien Grall wrote:
>>
>>
>> Hi,
>>
>> On 11/12/2023 10:30, Nicola Vetrini wrote:
>>> The "return 1;" statements at the end of some cases in the switch
>>> of function 'vgic_v3_its_mmio_write' in 'vcig-v3-its.c' cause the
>>> unreachability of the "return 1;" statement after the switch, thus
>>> violating MISRA C:2012 Rule 2.1:
>>> "A project shall not contain unreachable code".
>>>
>>> The same is true for the switch in 'arch_memory_op' from
>>> 'xen/arch/arm/mm.c'.
>>
>> For both cases, I actually much prefer the "return" version in the
>> cases. In particular for the vGIC emulation the switch is quite large
>> and it would not be trivial to know what happens after the break.
> Because of this...
> 
>>
>> IOW, I would much prefer if we remove the "return ..." outside of the
>> switch.
> wouldn't it be better to add ASSERT_UNREACHABLE() before this return instead of removing it?
> This is what we have in e.g. vpl011 and it prevents mistakes.

I am ok with that. But I am not sure if this would make ECLAIR unhappy.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:18:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:18:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652227.1017980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCh6j-0000yo-2x; Mon, 11 Dec 2023 14:18:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652227.1017980; Mon, 11 Dec 2023 14:18:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCh6j-0000yh-0P; Mon, 11 Dec 2023 14:18:05 +0000
Received: by outflank-mailman (input) for mailman id 652227;
 Mon, 11 Dec 2023 14:18:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+mB3=HW=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rCh6h-0000yb-Sg
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:18:03 +0000
Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com
 [2607:f8b0:4864:20::102a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17d0c797-9830-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:18:02 +0100 (CET)
Received: by mail-pj1-x102a.google.com with SMTP id
 98e67ed59e1d1-286867cac72so2744132a91.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 06:18:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17d0c797-9830-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702304281; x=1702909081; darn=lists.xenproject.org;
        h=content-transfer-encoding:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rDC1EKuqWIHaXEp62zYsedlm2GsxzaijNEZ9jSbvxNM=;
        b=WFGIft+DBTdlE9WksKbVe7fBLvBNm2oFQxOK0ikZTuq5iqLMxvD5AxkGZe7afzKtM/
         FBLOIeV2gKMsMW0eZnNLNH9avWJCT23y/qkrmXAsYt0EFuhq2zOSYwZIRe1ASH5Mu2To
         c/KxObpyFnZy+F6+Mhne6auHRYL11GkMMuAn39QUKMoVHOLMW+FPxztPAXmyA1etHJvD
         ySSoWuEKoMpVxiEF9e79pPK8FelPmLDCT1riAoDPD9pzuqneB1zIvwVpKJ4x03x4J8tO
         sz9S9edNfiVpq3q1Asp9wnzRJrmNkiz/LCYgs971DAZGvfulYP9pRl5+AeiYJwSE9pff
         wYXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702304281; x=1702909081;
        h=content-transfer-encoding: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=rDC1EKuqWIHaXEp62zYsedlm2GsxzaijNEZ9jSbvxNM=;
        b=lExDpbIgC9T+qno3vuwqlCFTmgMPLeF+kLA1DsEeBfHFbjlCcw7fc0H9gEOWaFf04N
         bZ7Wle9iQo9IQAVCD6LjEJTdSegF0W4LrdqmUwj3gCkrDPVgVCvKWvXymPePVWdQeLBS
         DMwxlrn9+lA39UK3bS6DLbUO/LHRqi/Ds/l9Lx5KnkyqnVhuekhdAHENTDOu6iQErNc3
         y2w1/uEAMJpG8iYosl3kVa8RmWoMrTxHOG95sZqVs8KiyubNblAWqinri5cS2Q0e6s95
         OtwItfaiHWkhwQeio+6gGTjPRBPjHsT1A1HrmHx4D8+Xx+nkJx6tq5NGQlMwGNNOsRCo
         wIKA==
X-Gm-Message-State: AOJu0Yyspu5RQTSnCjIKJaTHB1K5vD6gqIwBY08Ga/q7WNkNkDDXWn1g
	6RQf9q99wMmpwIGKviFx64vtYa3U2bMoNpDOYCzFXcUuOiE=
X-Google-Smtp-Source: AGHT+IF+MzBDhxWy+6HJuoblyLIDdDzQtBrMvEuwI7GVBsmoPyeKRfBb29rETEy7zoLrOXCliQbjEYC0lEPF/UCy57I=
X-Received: by 2002:a17:90a:d3d0:b0:28a:3526:a3ff with SMTP id
 d16-20020a17090ad3d000b0028a3526a3ffmr1623313pjw.53.1702304281060; Mon, 11
 Dec 2023 06:18:01 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com> <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
In-Reply-To: <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Mon, 11 Dec 2023 15:17:50 +0100
Message-ID: <CAKm-UmaNnFFrdDp+dknjnxsFSgPdn+BhmkZ-S3bZAEE8-FccLQ@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Le lun. 11 d=C3=A9c. 2023 =C3=A0 12:27, Jan Beulich <jbeulich@suse.com> a =
=C3=A9crit :
>
> On 11.12.2023 12:09, S=C3=A9bastien Chaumat wrote:
> > Le lun. 11 d=C3=A9c. 2023 =C3=A0 10:18, S=C3=A9bastien Chaumat <euidzer=
o@gmail.com> a =C3=A9crit :
> >>
> >>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
> >>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up inter=
rupt
> >>>>
> >>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
> >>>> ioapic-edge and IRQ9 to ioapic-level ?
> >>>>
> >>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
> >>>> IR-IO-APIC    9-fasteoi   acpi
> >>>>
> >>>> to (xen 4.18.0)
> >>>>
> >>>> xen-pirq     -ioapic-edge  pinctrl_amd
> >>>> xen-pirq     -ioapic-level  acpi
> >>>>
> >>>> ?
> >
> > This look similar to
> > https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
> >
> > This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
> > (so level type) while in xen it  is mapped to oapic-edge  instead of
> > oapic-level
> > as the SSDT indicates :
> >
> >  Device (GPIO)
> >
> >      {
> >          Name (_HID, "AMDI0030")  // _HID: Hardware ID
> >          Name (_CID, "AMDI0030")  // _CID: Compatible ID
> >          Name (_UID, Zero)  // _UID: Unique ID
> >          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Set=
tings
> >          {
> >              Name (RBUF, ResourceTemplate ()
> >              {
> >                  Interrupt (ResourceConsumer, Level, ActiveLow, Shared,=
 ,, )
> >                  {
> >                      0x00000007,
> >            }
> > Any idea why ?
>
> Information coming from AML is required to be handed down by Dom0 to Xen.
> May want checking that (a) Dom0 properly does so and (b) Xen doesn't scre=
w
> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this is
> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7 is
> also the spurious vector. You may want to retry with the tip of the 4.17
> branch (soon to become 4.17.3) - while it doesn't look very likely to me
> that recent backports there were related, it may still be that they make
> a difference.

Tried 4.17.3-pre : no change
How would you check (a) and (b) exactly (I need technical directions here)?

Any way to force IRQ7 to ioapic-level to test the hypothesis ?

Thanks
S=C3=A9bastien


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:21:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:21:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652242.1017990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCh9e-0004gX-Gx; Mon, 11 Dec 2023 14:21:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652242.1017990; Mon, 11 Dec 2023 14:21:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCh9e-0004gQ-EJ; Mon, 11 Dec 2023 14:21:06 +0000
Received: by outflank-mailman (input) for mailman id 652242;
 Mon, 11 Dec 2023 14: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=vrFX=HW=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCgz7-0001Vs-4c
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:10:13 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fca07605-982e-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:10:10 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SpkCZ3rlTz4f3kG2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:10:02 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id F0B8C1A0AB9
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 22:10:04 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw46GHdlJ7BxDQ--.34937S4;
 Mon, 11 Dec 2023 22:10: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: fca07605-982e-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	agruenba@redhat.com,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	p.raghav@samsung.com,
	hare@suse.de
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v2 for-6.8/block 18/18] ext4: use bdev apis
Date: Mon, 11 Dec 2023 22:08:39 +0800
Message-Id: <20231211140839.976021-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231211140552.973290-1-yukuai1@huaweicloud.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw46GHdlJ7BxDQ--.34937S4
X-Coremail-Antispam: 1UD129KBjvJXoWxAF47JryfCw48Xw1Duw48JFb_yoW5XF4fpa
	43GFyDGr4Dury09wsrGFsrZa40kw18GFy3GryfZa42qrWaqrySkFykKF1xZF1UX3y8X348
	XFyjkryxAr45CrJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUvj14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26rxl
	6s0DM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s
	0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xII
	jxv20xvE14v26r1q6rW5McIj6I8E87Iv67AKxVW8JVWxJwAm72CE4IkC6x0Yz7v_Jr0_Gr
	1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxa
	n2IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrV
	AFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1l
	IxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxV
	AFwI0_Cr1j6rxdMIIF0xvE42xK8VAvwI8IcIk0rVWUCVW8JwCI42IY6I8E87Iv67AKxVW8
	JVWxJwCI42IY6I8E87Iv6xkF7I0E14v26F4UJVW0obIYCTnIWIevJa73UjIFyTuYvjfUe_
	MaUUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/ext4/dir.c       | 6 ++----
 fs/ext4/ext4_jbd2.c | 6 +++---
 fs/ext4/super.c     | 3 +--
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
index 3985f8c33f95..64e35eb6a324 100644
--- a/fs/ext4/dir.c
+++ b/fs/ext4/dir.c
@@ -191,10 +191,8 @@ static int ext4_readdir(struct file *file, struct dir_context *ctx)
 			pgoff_t index = map.m_pblk >>
 					(PAGE_SHIFT - inode->i_blkbits);
 			if (!ra_has_index(&file->f_ra, index))
-				page_cache_sync_readahead(
-					sb->s_bdev->bd_inode->i_mapping,
-					&file->f_ra, file,
-					index, 1);
+				bdev_sync_readahead(sb->s_bdev, &file->f_ra,
+						    file, index, 1);
 			file->f_ra.prev_pos = (loff_t)index << PAGE_SHIFT;
 			bh = ext4_bread(NULL, inode, map.m_lblk, 0);
 			if (IS_ERR(bh)) {
diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c
index d1a2e6624401..c1bf3a00fad9 100644
--- a/fs/ext4/ext4_jbd2.c
+++ b/fs/ext4/ext4_jbd2.c
@@ -206,7 +206,6 @@ static void ext4_journal_abort_handle(const char *caller, unsigned int line,
 
 static void ext4_check_bdev_write_error(struct super_block *sb)
 {
-	struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
 	int err;
 
@@ -216,9 +215,10 @@ static void ext4_check_bdev_write_error(struct super_block *sb)
 	 * we could read old data from disk and write it out again, which
 	 * may lead to on-disk filesystem inconsistency.
 	 */
-	if (errseq_check(&mapping->wb_err, READ_ONCE(sbi->s_bdev_wb_err))) {
+	if (bdev_wb_err_check(sb->s_bdev, READ_ONCE(sbi->s_bdev_wb_err))) {
 		spin_lock(&sbi->s_bdev_wb_lock);
-		err = errseq_check_and_advance(&mapping->wb_err, &sbi->s_bdev_wb_err);
+		err = bdev_wb_err_check_and_advance(sb->s_bdev,
+						    &sbi->s_bdev_wb_err);
 		spin_unlock(&sbi->s_bdev_wb_lock);
 		if (err)
 			ext4_error_err(sb, -err,
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 3b5e2b557488..96724cae622a 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -5544,8 +5544,7 @@ static int __ext4_fill_super(struct fs_context *fc, struct super_block *sb)
 	 * used to detect the metadata async write error.
 	 */
 	spin_lock_init(&sbi->s_bdev_wb_lock);
-	errseq_check_and_advance(&sb->s_bdev->bd_inode->i_mapping->wb_err,
-				 &sbi->s_bdev_wb_err);
+	bdev_wb_err_check_and_advance(sb->s_bdev, &sbi->s_bdev_wb_err);
 	EXT4_SB(sb)->s_mount_state |= EXT4_ORPHAN_FS;
 	ext4_orphan_cleanup(sb, es);
 	EXT4_SB(sb)->s_mount_state &= ~EXT4_ORPHAN_FS;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:22:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:22:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652247.1018000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rChAg-00066e-Py; Mon, 11 Dec 2023 14:22:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652247.1018000; Mon, 11 Dec 2023 14:22: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 1rChAg-00066X-NV; Mon, 11 Dec 2023 14:22:10 +0000
Received: by outflank-mailman (input) for mailman id 652247;
 Mon, 11 Dec 2023 14:22:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+mB3=HW=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rChAf-0005ew-R0
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:22:09 +0000
Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com
 [2607:f8b0:4864:20::102d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa0697a0-9830-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:22:08 +0100 (CET)
Received: by mail-pj1-x102d.google.com with SMTP id
 98e67ed59e1d1-28670a7ba84so3319931a91.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 06:22:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa0697a0-9830-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702304526; x=1702909326; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:in-reply-to:references:mime-version
         :from:to:cc:subject:date:message-id:reply-to;
        bh=iSTM71cV3A4pGChTBBtrDjdXu84SzGvFlC3R5jF221s=;
        b=QM3Pt9YjcckgPAphybzoABkVEvQrVq+X1V++n/GRtk8ZdEFQ8GbI3tHqJ52ohGHXlu
         O5CSTOCNCRm0SqXKtP9g4Lew8Ia9su/bogWr319IPVM4ntKn4I0iFCH7lRQX+GpmPVWQ
         enWNnr5Fsjb8EDYTF+KdhiCvOsqMbejQjJa+OXKd+5AblS1ANAs7STBAhtn5mpeR1vVm
         O1cpzgnLORapKjjgyRJ5KdRmueHUzSpgJCKUr7DVFYYl4+HpzEALJhe0AXcGMzt7+ld4
         dB9JBaczB5Q6W69fKSv15w75gP0zSpiQj3mqdd0jfHHWnGg3yF5oWi1ti17OYdtHMchm
         KmyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702304526; x=1702909326;
        h=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=iSTM71cV3A4pGChTBBtrDjdXu84SzGvFlC3R5jF221s=;
        b=nC7X3uZLm5w/HAL+KiImJUnxJXF9JBJNL6S0ZX2q4aYaKeiI83b7wh7xLI7EoUt2xh
         2CBI95QSSD5M/37gPa4I/K+y5ofYMhAh1ElJjXNjSaxegTAWICqXrFGYeGLCtaw3dYMk
         q3zoZrl67xk5f8V2ZsaHR+iHDuZr5p4AIViq0Be6eXucCT8/ziZI8YzFF3AQRtxcSeJC
         bFZVwYFNfTm+TAq8iLT8oPsYyF00KQEsg0RGniV7K/sPiJyVHn0VVxm7XmyVU8cjoiz5
         OOcE8vNXDerKwFfoI2mnnXsERRf63Hh/RhtmH2x3G1p2PxW34bN6z7PHRaECbwuI+kPm
         B7wA==
X-Gm-Message-State: AOJu0Yz/V4cmvLYJOkwpLI2UW6UdN+gMf8sknVx3+XV0C8CxrE0+fUK4
	3No86QAjyb0vk5eIn93tdgvtE7Sg4CmIB8igdIV9W/df
X-Google-Smtp-Source: AGHT+IEVHzam6pPKxwoyWYKOEBjZMncVi94PGcA+PuWiP+7v0fcMF+RFwIlW6/0dElMp5kOD+6Y2RJX/QnZSfsu+ylo=
X-Received: by 2002:a17:90b:1649:b0:286:6cc0:b916 with SMTP id
 il9-20020a17090b164900b002866cc0b916mr1512086pjb.77.1702304526085; Mon, 11
 Dec 2023 06:22:06 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmaNnFFrdDp+dknjnxsFSgPdn+BhmkZ-S3bZAEE8-FccLQ@mail.gmail.com>
In-Reply-To: <CAKm-UmaNnFFrdDp+dknjnxsFSgPdn+BhmkZ-S3bZAEE8-FccLQ@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Mon, 11 Dec 2023 15:21:55 +0100
Message-ID: <CAKm-UmbC1eG=cQV28+9x9JwBw-s9veaCDFczuH=NC9YvCY6SgQ@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

> > Information coming from AML is required to be handed down by Dom0 to Xen.
> > May want checking that (a) Dom0 properly does so and (b) Xen doesn't screw
> > up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this is
> > specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7 is
> > also the spurious vector. You may want to retry with the tip of the 4.17
> > branch (soon to become 4.17.3) - while it doesn't look very likely to me
> > that recent backports there were related, it may still be that they make
> > a difference.
>
> Tried 4.17.3-pre : no change
> How would you check (a) and (b) exactly (I need technical directions here)?
>
b) hvm_level=512 ?


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:44:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:44:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652265.1018011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rChVp-0004Vk-Hi; Mon, 11 Dec 2023 14:44:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652265.1018011; Mon, 11 Dec 2023 14: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 1rChVp-0004Vd-Em; Mon, 11 Dec 2023 14:44:01 +0000
Received: by outflank-mailman (input) for mailman id 652265;
 Mon, 11 Dec 2023 14:44: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=z+fN=HW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rChVo-0004UO-KV
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:44:00 +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 b8173952-9833-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:43:59 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a1e7971db2aso514750366b.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 06:43:59 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 hw14-20020a170907a0ce00b00a1d32353c87sm4880266ejc.49.2023.12.11.06.43.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 06:43:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8173952-9833-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702305839; x=1702910639; 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=Y+Mf5DKPe4H0F1CcEk5bpBg3cFKNa4ee8znJVZUoKq0=;
        b=FZR8DYqxkEik3Vtq5Woen1CqTP37HElpxhMIMQHXlgEbX8s8LQyzOt8IeyqjJAUM8+
         AgkSAeis5ie+ADhnqFP7zMHk3BNiQX/xWvvRoSI7PzoxIreM0kctKlzL0NLyjHNnrjfI
         mzapkuG/8wSsnBb0XBlBDKEoy7jOI93WtdFYt4NpeLr1vlRBAeARLcoqvMXuLOuOMOXU
         HxJNGbE9fPdnOgLuxc8yGOeU/ZFaBGsJ7qggLzuRPQ9ai8BG+AMdRzEy/4HAUKnUelma
         t6WpUEUdBwgYiJgN34hNDzQMsTPD1BeM30ULRhyJNdC2Kv9SX5eIYELMleHVH5w8cjRS
         aHeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702305839; x=1702910639;
        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=Y+Mf5DKPe4H0F1CcEk5bpBg3cFKNa4ee8znJVZUoKq0=;
        b=aXRlX5GAGx46aH3Z/tYobtS6C85W+B6Er0fSbkcvIJKi0R9kLA/QpFikkDEwWCZObn
         v10toDQUyfd6PJaH+hmBF/Wp8j3ke3lT1a07KdMwc3VLqipLVja1wY2t76+pIz1v10JS
         7KLUSVqTjFPzGXrjsoyNMpMKna+7qBdAxbVjVqAjPsRjovbs2ejjrz11hgXlkOuq2CEM
         hE1S/U5Tu/MYkFXQHGzxHsFNveDnSek0bwV8WHHuHcWg7WAwlzmDw7TIZORS2h71+DUi
         NGwC9Y5tt+CNNK6dvgAvWhrE095NhI5DsLsNbFgftKO0/Qg29bUtP9rY3K5n1v29hfIJ
         satw==
X-Gm-Message-State: AOJu0YxH2O0m0XjABp4WXlYUxNWq1+0+uTrmzgzr/XwBMf/AqoPcr6NZ
	3tZiJT3FfLBUJyq90Rs0JCNbZpY7bUgf+Q==
X-Google-Smtp-Source: AGHT+IF7uZS3o0ATcKzXAppneibvZKRUITKypfxX7YGQEM43ZMrGpkntUzT4X+UPUq8Dwu8RVwXtlw==
X-Received: by 2002:a17:906:d6:b0:a1f:aca1:6bc with SMTP id 22-20020a17090600d600b00a1faca106bcmr557888eji.100.1702305838893;
        Mon, 11 Dec 2023 06:43:58 -0800 (PST)
Message-ID: <a53707edfac7d8d959cfc858953a1d64c3149596.camel@gmail.com>
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>,  Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, Shawn
 Anastasio <sanastasio@raptorengineering.com>, xen-devel@lists.xenproject.org
Date: Mon, 11 Dec 2023 16:43:57 +0200
In-Reply-To: <abb8c26b-4c8c-4fcf-a8c8-4a15a5067fa0@suse.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
	 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
	 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
	 <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
	 <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
	 <5af2573e588f76b8df3423fd13a1b4275cc18f33.camel@gmail.com>
	 <abb8c26b-4c8c-4fcf-a8c8-4a15a5067fa0@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-04 at 11:39 +0100, Jan Beulich wrote:
> On 04.12.2023 11:34, Oleksii wrote:
> > If you ( or anyone else ) don't mind, I'll update the patch with an
> > introduction of HAS_GRANT_TABLE.
>=20
> I won't NAK such a patch, but unless convincing arguments appear I
> also
> won't ACK it.
I am going to disable GRANT_TABLE config for RISC-V ( and PPC? ) by
providing a separate YAML file ( riscv-fixed-randconfig.yaml ) with the
following content:
.riscv-fixed-randconfig:
  variables:
    EXTRA_FIXED_RANDCONFIG:
      CONFIG_COVERAGE=3Dn
      CONFIG_GRANT_TABLE=3Dn
      CONFIG_MEM_ACCESS=3Dn # this I'll add in the next patch where asm-
geneic for mem_access.h is introduced

And then for riscv*randconfig jobs do the following:
archlinux-current-gcc-riscv64-randconfig:
  extends:
    - .gcc-riscv64-cross-build
  variables:
    CONTAINER: archlinux:current-riscv64
    KBUILD_DEFCONFIG: tiny64_defconfig
    RANDCONFIG: y
    EXTRA_FIXED_RANDCONFIG: !reference [.riscv-fixed-randconfig,
variables, EXTRA_FIXED_RANDCONFIG]

For RISC-V, I prefer having a separate file for all the
EXTRA_FIXED_RANDCONFIG because in another patch series [1], I'll
introduce a large number of disabled configs for randconfig.

For PPC, I don't think it's necessary to introduce a separate YAML file
for EXTRA_FIXED_RANDCONFIG. For the time being, it is only necessary to
disable two configs: CONFIG_GRANT_TABLE and CONFIG_MEM_ACCESS (in the
next patch of this series).

If this solution is acceptable to you, can I retain your 'Suggested-
by'?"

[1]:
https://lore.kernel.org/xen-devel/b4e85f8f58787b4d179022973ce25673d6b56e36.=
1700761381.git.oleksii.kurochko@gmail.com/

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:52:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:52:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652270.1018020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rChdm-0006sF-B8; Mon, 11 Dec 2023 14:52:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652270.1018020; Mon, 11 Dec 2023 14:52:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rChdm-0006s8-8U; Mon, 11 Dec 2023 14:52:14 +0000
Received: by outflank-mailman (input) for mailman id 652270;
 Mon, 11 Dec 2023 14:52: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rChdk-0006rd-OD
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:52:12 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd7eb910-9834-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 15:52:11 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 7A9CA4EE073E;
 Mon, 11 Dec 2023 15:52:11 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd7eb910-9834-11ee-98e8-6d05b1d4d9a1
MIME-Version: 1.0
Date: Mon, 11 Dec 2023 15:52:11 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org,
 consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>
Subject: Re: [XEN PATCH 3/7] xen/arm: address MISRA C:2012 Rule 2.1
In-Reply-To: <731ed3e1-bbf5-4309-90ec-e9f8e7be6620@xen.org>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <4c0d38f2b707afa9aed1853a99d286fa2424fb9d.1702283415.git.nicola.vetrini@bugseng.com>
 <e86f46bd-b404-4feb-82f5-90c52837e169@xen.org>
 <0f554dea-60fe-409a-935d-87f3eac30a87@amd.com>
 <731ed3e1-bbf5-4309-90ec-e9f8e7be6620@xen.org>
Message-ID: <cf641b4a6bc31b802d6c1fe92e184a75@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 2023-12-11 15:14, Julien Grall wrote:
> On 11/12/2023 13:06, Michal Orzel wrote:
>> 
>> 
>> On 11/12/2023 13:29, Julien Grall wrote:
>>> 
>>> 
>>> Hi,
>>> 
>>> On 11/12/2023 10:30, Nicola Vetrini wrote:
>>>> The "return 1;" statements at the end of some cases in the switch
>>>> of function 'vgic_v3_its_mmio_write' in 'vcig-v3-its.c' cause the
>>>> unreachability of the "return 1;" statement after the switch, thus
>>>> violating MISRA C:2012 Rule 2.1:
>>>> "A project shall not contain unreachable code".
>>>> 
>>>> The same is true for the switch in 'arch_memory_op' from
>>>> 'xen/arch/arm/mm.c'.
>>> 
>>> For both cases, I actually much prefer the "return" version in the
>>> cases. In particular for the vGIC emulation the switch is quite large
>>> and it would not be trivial to know what happens after the break.
>> Because of this...
>> 
>>> 
>>> IOW, I would much prefer if we remove the "return ..." outside of the
>>> switch.
>> wouldn't it be better to add ASSERT_UNREACHABLE() before this return 
>> instead of removing it?
>> This is what we have in e.g. vpl011 and it prevents mistakes.
> 
> I am ok with that. But I am not sure if this would make ECLAIR unhappy.
> 
> Cheers,

Should be okay. I'll test and report back

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:54:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:54:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652275.1018031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rChgG-0007Up-SW; Mon, 11 Dec 2023 14:54:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652275.1018031; Mon, 11 Dec 2023 14: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 1rChgG-0007Ug-Oa; Mon, 11 Dec 2023 14:54:48 +0000
Received: by outflank-mailman (input) for mailman id 652275;
 Mon, 11 Dec 2023 14: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rChgF-0007Ua-6X
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14: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 38ec11e6-9835-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:54:45 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id D47AC4EE073E;
 Mon, 11 Dec 2023 15:54:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38ec11e6-9835-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Mon, 11 Dec 2023 15:54:44 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
In-Reply-To: <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
Message-ID: <c77560d6044700f10a8b149d539a95d1@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 2023-12-11 13:32, Julien Grall wrote:
> Hi,
> 
> On 11/12/2023 10:30, Nicola Vetrini wrote:
>> The branches of the switch after a call to 'do_unexpected_trap'
>> cannot return, but there is one path that may return, hence
>> only some clauses are marked with ASSERT_UNREACHABLE().
> I don't understand why this is necessary. The code should never be 
> reachable because do_unexpected_trap() is a noreturn().
> 
> Cheers,

It was meant as a safeguard against mistakes. There are MISRA rules that 
deal with this aspect (e.g., a noreturn function should not return), but 
they are not in Amendment 2, which is what Xen is following.

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 14:55:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 14:55:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652277.1018041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rChgY-0007uQ-3n; Mon, 11 Dec 2023 14:55:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652277.1018041; Mon, 11 Dec 2023 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 1rChgY-0007uH-0c; Mon, 11 Dec 2023 14:55:06 +0000
Received: by outflank-mailman (input) for mailman id 652277;
 Mon, 11 Dec 2023 14:55: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=wVij=HW=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rChgX-0007Ua-2t
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 14:55:05 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43dfeb48-9835-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 15:55:03 +0100 (CET)
Received: from Dell.bugseng.com.homenet.telecomitalia.it
 (host-80-116-181-249.retail.telecomitalia.it [80.116.181.249])
 by support.bugseng.com (Postfix) with ESMTPSA id D82494EE073E;
 Mon, 11 Dec 2023 15:55:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43dfeb48-9835-11ee-9b0f-b553b5be7939
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>,
	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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Rahul Singh <rahul.singh@arm.com>
Subject: [XEN PATCH] xen/arm: smmu: move phys_addr_t definition to linux-compat.h
Date: Mon, 11 Dec 2023 15:54:56 +0100
Message-Id: <e525cd0a2770743e052819b2e14f7df50f801a23.1702303903.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Both smmu and smmu-v3 (ported from Linux) define the typedef name
"phys_addr_t": move the type definition to the common header
linux-compat.h to address violations of MISRA C:2012 Rule 5.6
("A typedef name shall be a unique identifier").
No functional change.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/drivers/passthrough/arm/smmu-v3.h | 1 -
 xen/drivers/passthrough/arm/smmu.c    | 1 -
 xen/include/xen/linux-compat.h        | 1 +
 3 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthrough/arm/smmu-v3.h
index 05f6b1fb7e..f09048812c 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -377,7 +377,6 @@
 
 /* Linux compatibility functions. */
 typedef paddr_t		dma_addr_t;
-typedef paddr_t		phys_addr_t;
 typedef unsigned int		gfp_t;
 
 /* Alias to Xen lock functions */
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index 11fc1d22ef..32e2ff279b 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -199,7 +199,6 @@ static inline int pci_for_each_dma_alias(struct pci_dev *pdev,
 
 /* Xen: misc */
 #define PHYS_MASK_SHIFT		PADDR_BITS
-typedef paddr_t phys_addr_t;
 
 #define VA_BITS		0	/* Only used for configuring stage-1 input size */
 
diff --git a/xen/include/xen/linux-compat.h b/xen/include/xen/linux-compat.h
index 8d06bb6dc9..987ac7d8db 100644
--- a/xen/include/xen/linux-compat.h
+++ b/xen/include/xen/linux-compat.h
@@ -16,5 +16,6 @@ typedef uint8_t __u8;
 typedef int16_t __s16;
 typedef int32_t __s32;
 typedef int64_t __s64;
+typedef paddr_t phys_addr_t;
 
 #endif /* __XEN_LINUX_COMPAT_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 15:05:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 15:05:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652286.1018050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rChqh-00020s-0n; Mon, 11 Dec 2023 15:05:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652286.1018050; Mon, 11 Dec 2023 15:05: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 1rChqg-00020l-UQ; Mon, 11 Dec 2023 15:05:34 +0000
Received: by outflank-mailman (input) for mailman id 652286;
 Mon, 11 Dec 2023 15:05: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=Zcs4=HW=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rChqf-00020c-MP
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 15:05:33 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20600.outbound.protection.outlook.com
 [2a01:111:f400:7eae::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9e2f5c4-9836-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 16:05:31 +0100 (CET)
Received: from CH5PR03CA0024.namprd03.prod.outlook.com (2603:10b6:610:1f1::17)
 by MN2PR12MB4549.namprd12.prod.outlook.com (2603:10b6:208:268::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec
 2023 15:05:28 +0000
Received: from SN1PEPF0002529F.namprd05.prod.outlook.com
 (2603:10b6:610:1f1:cafe::3e) by CH5PR03CA0024.outlook.office365.com
 (2603:10b6:610:1f1::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend
 Transport; Mon, 11 Dec 2023 15:05:28 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002529F.mail.protection.outlook.com (10.167.242.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Mon, 11 Dec 2023 15:05:27 +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.34; Mon, 11 Dec
 2023 09:05:27 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 11 Dec
 2023 09:05:27 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 11 Dec 2023 09:05:26 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9e2f5c4-9836-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=N7eWvePlw1rD8vIPVYLqLRe7BXjhitnWH4S+rJsSB6t06m47K+YT5YWMLYV+xr6/bd8j7v9FdOpzH7lOej4md/Ljx+J53Jx7aFi9O+UAxROGtZSWDj0EkRmQAA85J2802XXALiMoiUTdx3tVnXuSRUsvRIq/qQsntwfHl0AFNKgb3S5KPdzJ86lOcGU7TEVj5x+shPaorWCn8JrQpj3eNqNajWiW6cUFFEMfpV0dkbaYOglashJVv1QJrI6FwnER+hC9ETLGnOq7E7coMPGE7Mu1OZ0UYRp7RAB6q6NEgjs7NuZv/Ntd+lTEzLRCedKXEq61MgI8sz5efo43iIap7w==
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=w6ZvA4TdDKNhBzcSXy8oJC5F2iCDXLgeBpL0NTM19/4=;
 b=US5hjk7U7PIDFPTuIuz61pPAgpK1IuYqNO1sb6+Ale5VcvSGx15Q87rjYNZHSS613i8WKzDdSHJVl6Q9KZRC8Ew6KJ67KkKbrkeSLpb7Mcz/TvroD7Q9Qk0/zvUY9LyV29FVZcbpH2qPpU1tulQY31WncHY85zvRqVSwCGXh4uXeGl7I5ejaYG/J+EdXYramZaZr9330xS6n2hkpOzvSyUNpidPhdFqzi5+1oi6wW7GFgrjUWn43repLnDUemNUqtxnAsMFoQAmmkslDGQGG3y1Jgrciv6AvXyvLNKKxBTvw/vMDsTnDvRmr8IjSdNt1/QpAbR+0je8DFUGBEzesPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=w6ZvA4TdDKNhBzcSXy8oJC5F2iCDXLgeBpL0NTM19/4=;
 b=LH92RD8EkzkZ6Vfs4igiTftz7Mgu2o4FFk987gVDFV7fSNI+LaH9FhP6G6fVltVquLe6fODHxa33dmQzzEnaHGOdjglNS1HLRzsI8J2Sh5MrXy1HGYdnXfxYMsF7MQ1IvPWFof1VtTr64bPJOYtlVg8JanPlva+pmY2pyurs1D4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Paul Durrant <paul@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] xen/pci: fix phantom error path in assign_device()
Date: Mon, 11 Dec 2023 10:05:18 -0500
Message-ID: <20231211150520.299768-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002529F:EE_|MN2PR12MB4549:EE_
X-MS-Office365-Filtering-Correlation-Id: 9d82003f-8e64-4d34-4df1-08dbfa5a9c36
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	f/JetDioWxfep3qqK9HfoYaCSvk0GPcaAa3Wo966EExuvN1+e/FPGk2m+YPuQ0++LMOnif7Wa/dpn5pTaeW7bBLQBege4/15g5Uwhidq8tSH/jJr98P2e6n/7MmPWP6hj9J4t7RxBe/C1RJtn2RWGGH38kL98rOdGWedGcvI8+TNHkaOLDDYljr5vTENHCWh64gepCwzDVNPSGlriiONPP9Pbud/hJuJGGycrsOKukZ9gHmGor5rWR7d2QdSdWc9dXqeqo13QJnvpkNUDFdI0dgbmF3+BcdsP+yyuHKQNOvEOup8/jWy/C/Jw8p3J/r8tU3WGzQ7oydROfjCwjfIhEbPrB7AbN5IxKOsCjdR+8CWaYDW3iznTWKAu5BZHcTOaq3ZQw5bUHYzieUthff7osSYoKge3jtUIfjDuOUh0tM1SGMKsxl49c1WDFRdrTzTksALkfGMkPwvh3xKaKTR9vJYBcU7dL0BHXbAr8AU58hJmbNKbMMCphjc98QvwG/ASO2TBS7Jph/0/sPKYpkiWX7lYZo4K2r2QbQySFqdLiQ8dXrahCQEAnMZ4RayWkQq2h84ZiRAn0CJhY9f9uFdRBeGGuzvDI8oEWdbqYDOfjxvv1NETKsys7KzrBPB4PQVXh86OoBDj8Gzfim2kLWGLyN1L1Zh3nE45817EvOqvekzRc3MOoFiAAigrNqr0QwycdIbfQslzfUBeCwGNDFcK20Q0PJ0/SY6pNw67RGOK2UOGlKP6mizlEMdbQA98bUIN/9XRa7zHT5+q4efHuVrruJrxGm5V0O4U1xp+xUvHco0ytZQydoFffVYO0zroTs7
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:(13230031)(4636009)(39860400002)(136003)(376002)(396003)(346002)(230922051799003)(230173577357003)(230273577357003)(451199024)(1800799012)(186009)(82310400011)(64100799003)(46966006)(36840700001)(40470700004)(41300700001)(5660300002)(2906002)(2616005)(1076003)(6666004)(36756003)(478600001)(47076005)(81166007)(82740400003)(356005)(426003)(83380400001)(336012)(40480700001)(26005)(8936002)(86362001)(8676002)(4326008)(6916009)(70206006)(54906003)(40460700003)(36860700001)(316002)(70586007)(44832011)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 15:05:27.7237
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d82003f-8e64-4d34-4df1-08dbfa5a9c36
X-MS-Exchange-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:
	SN1PEPF0002529F.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4549

Currently if an iommu_call() for a phantom function fails, there is no
indication of the failure. Propagate (but don't return) the error code
from the most recently failed iommu_call() and emit a warning. While
here, add a comment to clarify that the loop keeps iterating even when
failure is encountered.

Fixes: cd7dedad8209 ("passthrough: simplify locking and logging")
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
Unlike assign_device(), deassign_device() breaks out of the phantom loop
when a failure is encountered and returns the error code. I'm curious
why assign_device() and deassign_device() behave differently? It looks
like it's been that way since
4e9950dc1bd2 ("IOMMU: add phantom function support"). I was initially
inclined to break out of the loop and return the error code in
assign_device(), but adhering to the principle of Chesterton's fence,
I'd first like to understand why this is not currently being done.

I'm aware that I could have avoided introducing a tmp local variable by
using the conditional operator with omitted middle operand:

    rc_nonfatal = iommu_call(...) ?: rc_nonfatal;

However, I explicitly chose not to do this to avoid relying on a GNU
extension in yet another place.
---
 xen/drivers/passthrough/pci.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 28ed8ea8172a..71072efceb7a 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1407,7 +1407,7 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
 {
     const struct domain_iommu *hd = dom_iommu(d);
     struct pci_dev *pdev;
-    int rc = 0;
+    int rc = 0, rc_nonfatal = 0;
 
     if ( !is_iommu_enabled(d) )
         return 0;
@@ -1443,21 +1443,28 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
                           pci_to_dev(pdev), flag)) )
         goto done;
 
-    for ( ; pdev->phantom_stride; rc = 0 )
+    while ( pdev->phantom_stride )
     {
+        int tmp;
+
         devfn += pdev->phantom_stride;
         if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
+        {
+            devfn -= pdev->phantom_stride; /* Adjust for printing */
             break;
+        }
-        rc = iommu_call(hd->platform_ops, assign_device, d, devfn,
-                        pci_to_dev(pdev), flag);
+        tmp = iommu_call(hd->platform_ops, assign_device, d, devfn,
+                         pci_to_dev(pdev), flag);
+        rc_nonfatal = tmp ? tmp : rc_nonfatal;
+        /* Keep iterating even if the iommu call failed. */
     }
 
  done:
-    if ( rc )
+    if ( rc || rc_nonfatal )
         printk(XENLOG_G_WARNING "%pd: assign (%pp) failed (%d)\n",
-               d, &PCI_SBDF(seg, bus, devfn), rc);
+               d, &PCI_SBDF(seg, bus, devfn), rc ? rc : rc_nonfatal);
     /* The device is assigned to dom_io so mark it as quarantined */
-    else if ( d == dom_io )
+    if ( !rc && d == dom_io )
         pdev->quarantine = true;
 
     return rc;

base-commit: 1403131596fa77663708f6baa0fee8bf7b95eb5a
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 15:06:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 15:06:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652287.1018061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rChr9-0002Nj-AM; Mon, 11 Dec 2023 15:06:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652287.1018061; Mon, 11 Dec 2023 15:06:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rChr9-0002Nc-7B; Mon, 11 Dec 2023 15:06:03 +0000
Received: by outflank-mailman (input) for mailman id 652287;
 Mon, 11 Dec 2023 15:06: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 1rChr8-0002NG-5X; Mon, 11 Dec 2023 15:06: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 1rChr8-0006wK-13; Mon, 11 Dec 2023 15:06:02 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1rChr7-0000NK-Ld; Mon, 11 Dec 2023 15:06:01 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rChr7-0002NE-L5; Mon, 11 Dec 2023 15:06:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=HLBHnCIte0+aBBdPlfGsAXmMfPsyKeSgx4YRUNdQNco=; b=NDYYIioPPPAeVidtI21kLrguyz
	lGWn7UDNk29rfzZE0Mm/AL9kT+WuA/6t7zVJhzGlNS/kBj8D7BPhlmSPN7VsAQOwP0R1GznmCh5wo
	QlDc3fgaeAn15hd+VaRE0QmLwLQzlq+NwKxNSs/lr7CjiA8WqSvJdVSbkdKDUDswzYj4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184091-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184091: 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=1403131596fa77663708f6baa0fee8bf7b95eb5a
X-Osstest-Versions-That:
    xen=bc4fe94a69d4dab103c37045d97e589ef75f8647
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 15:06:01 +0000

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

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                  1403131596fa77663708f6baa0fee8bf7b95eb5a
baseline version:
 xen                  bc4fe94a69d4dab103c37045d97e589ef75f8647

Last test of basis   184030  2023-12-07 21:02:00 Z    3 days
Testing same since   184091  2023-12-11 11:00:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Paul Durrant <paul@xen.org>
  Simone Ballarin <simone.ballarin@bugseng.com>
  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
   bc4fe94a69..1403131596  1403131596fa77663708f6baa0fee8bf7b95eb5a -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 15:22:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 15:22:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652301.1018071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCi6g-0001mc-KK; Mon, 11 Dec 2023 15:22:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652301.1018071; Mon, 11 Dec 2023 15:22: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 1rCi6g-0001mV-Ho; Mon, 11 Dec 2023 15:22:06 +0000
Received: by outflank-mailman (input) for mailman id 652301;
 Mon, 11 Dec 2023 15:22:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCi6f-0001mP-FA
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 15:22:05 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 092d0bd4-9839-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 16:22:03 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3332e351670so4241607f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 07:22:03 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 g13-20020a056000118d00b003333d46a9e8sm8792758wrx.56.2023.12.11.07.22.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 07:22:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 092d0bd4-9839-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702308122; x=1702912922; 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=a/jr27RPVvMWTsClnU42DBXNkzAgyd2hu1MyOOYNXqI=;
        b=tAvsLP9n4/40InRajKXNYqNWkvBhu7XP/HXb32oRW19ggU5d04R8jnPNNLRU7hqX7o
         hcN/kf3E0Au9ismvHjSMnpjMiOLDuZfSwAQ1+fbbGRsI3MsrXnAT7dCT9vjE5kjrjMtp
         la0fAIEWNJw09YfhNpQw/2xy8/X8XxkegP9T8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702308122; x=1702912922;
        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=a/jr27RPVvMWTsClnU42DBXNkzAgyd2hu1MyOOYNXqI=;
        b=pxNe5Ak0eTnYGYFIOVOudJRo0RagmqnMylYvPrg5ces4NWVcvK5LG4X6O0ZT9uo5D8
         bxHWG18tqAJS0J16aJpV3qMyofieSN+xDgasthBDiITkx9fzqinuVOE5mMhNgiKCpfXi
         bysrHV9/WIXWR/qDwtcjfFdFu1JbW6WD7qibVjrU3HNboJD2T56kQzpQ6e5NgzDTWv2R
         srm8bzbw+9wCib4o2TSkFWUBzaVobQnRx6bdZJoNXfkZ1BUPc6+elTDDPK0iFN0tBB58
         07HdmrkqCbz53CyBZYFiwQ2dmz2bKPdzKNT8VJlhWwYYsU/V7BEggwh28g4ienX0T5ce
         DeZA==
X-Gm-Message-State: AOJu0YxJlXoLRMubic6giOIU2Payu3xoNcs8H535T/tFFSS3jiKKClWV
	XI7UQMyGZ6hYS+o4d63tjhQqYA==
X-Google-Smtp-Source: AGHT+IGsKak5+p/jbVJ1LV8GlaCZRUmPgLESbv38mTTq0zqNdO9+ZmxFt8etGTrDMyAgHISfD7IUEA==
X-Received: by 2002:a5d:51c6:0:b0:333:4289:b170 with SMTP id n6-20020a5d51c6000000b003334289b170mr1154500wrv.210.1702308122569;
        Mon, 11 Dec 2023 07:22:02 -0800 (PST)
Date: Mon, 11 Dec 2023 16:22:01 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>,
	Huang Rui <Ray.Huang@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>
Subject: Re: [RFC XEN PATCH v3 1/3] xen/vpci: Clear all vpci status of device
Message-ID: <ZXcpGdSgTCwpTBkc@macbook>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-2-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20231210164009.1551147-2-Jiqian.Chen@amd.com>

On Mon, Dec 11, 2023 at 12:40:07AM +0800, 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.
> 
> Co-developed-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  xen/arch/x86/hvm/hypercall.c |  1 +
>  xen/drivers/pci/physdev.c    | 35 +++++++++++++++++++++++++++++++++++
>  xen/drivers/vpci/vpci.c      |  9 +++++++++
>  xen/include/public/physdev.h |  8 ++++++++
>  xen/include/xen/vpci.h       |  6 ++++++
>  5 files changed, 59 insertions(+)
> 
> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
> index eeb73e1aa5..6ad5b4d5f1 100644
> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -84,6 +84,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 42db3e6d13..6ee2edb86a 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,40 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          break;
>      }
>  
> +    case PHYSDEVOP_pci_device_state_reset: {
> +        struct physdev_pci_device dev;
> +        struct pci_dev *pdev;
> +
> +        if ( !is_pci_passthrough_enabled() )
> +            return -EOPNOTSUPP;
> +
> +        ret = -EFAULT;
> +        if ( copy_from_guest(&dev, arg, 1) != 0 )
> +            break;
> +
> +        ret = xsm_resource_setup_pci(XSM_PRIV,
> +                                     (dev.seg << 16) | (dev.bus << 8) |
> +                                     dev.devfn);
> +        if ( ret )
> +            break;
> +
> +        pcidevs_lock();
> +        pdev = pci_get_pdev(NULL, PCI_SBDF(dev.seg, dev.bus, dev.devfn));
> +        if ( !pdev )
> +        {
> +            ret = -ENODEV;
> +            pcidevs_unlock();

Nit: assigning -ENODEV could be done after dropping the lock.

> +            break;
> +        }
> +
> +        ret = vpci_reset_device_state(pdev);
> +        if ( ret )
> +            printk(XENLOG_ERR "PCI reset device %pp state failed\n",
> +                   &pdev->sbdf);

Please do the print outside of the locked region, there's no need to
hold the pcidevs lock after the vpci_reset_device_state() call if you
use the data in the local 'dev' variable to print the SBDF.

It would also be fine if you want to introduce a local sbdf variable
that you can use both here and in the call to pci_get_pdev() above.

I think it's also easier to parse if the SBDF is at the begging of the
message:

"%pp: failed to reset PCI device state\n"

That's however a question of taste.

> +        pcidevs_unlock();
> +        break;
> +    }
> +
>      default:
>          ret = -ENOSYS;
>          break;
> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
> index 72ef277c4f..3c64cb10cc 100644
> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -107,6 +107,15 @@ int vpci_add_handlers(struct pci_dev *pdev)
>  
>      return rc;
>  }
> +
> +int vpci_reset_device_state(struct pci_dev *pdev)
> +{
> +    ASSERT(pcidevs_locked());
> +
> +    vpci_remove_device(pdev);
> +    return vpci_add_handlers(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 f0c0d4727c..92c2f28bca 100644
> --- a/xen/include/public/physdev.h
> +++ b/xen/include/public/physdev.h
> @@ -296,6 +296,14 @@ DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_add_t);
>   */
>  #define PHYSDEVOP_prepare_msix          30
>  #define PHYSDEVOP_release_msix          31
> +/*
> + * On PVH dom0, when device is reset, the vpci on Xen side
> + * won't get notification, so that the cached state in vpci is
> + * all out of date with the real device state. Use this to reset
> + * the vpci state of device.
> + */

I get this feeling this is too specific to vpci, when the hypercall
itself could be used for other purposes in the future.  I would
instead write:

/*
 * 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;
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index d20c301a3d..d6377424f0 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -30,6 +30,7 @@ int __must_check vpci_add_handlers(struct pci_dev *pdev);
>  
>  /* Remove all handlers and free vpci related structures. */
>  void vpci_remove_device(struct pci_dev *pdev);
> +int vpci_reset_device_state(struct pci_dev *pdev);

__must_check please.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 15:31:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 15:31:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652312.1018083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCiG4-0004OQ-GY; Mon, 11 Dec 2023 15:31:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652312.1018083; Mon, 11 Dec 2023 15:31: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 1rCiG4-0004OJ-E6; Mon, 11 Dec 2023 15:31:48 +0000
Received: by outflank-mailman (input) for mailman id 652312;
 Mon, 11 Dec 2023 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=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCiG2-0004OD-Mq
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 15:31:46 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63dcd07f-983a-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 16:31:44 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c3f68b79aso23337955e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 07:31:44 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 s13-20020a05600c384d00b004030e8ff964sm15655127wmr.34.2023.12.11.07.31.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 07:31:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63dcd07f-983a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702308704; x=1702913504; 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=AoVETgNFX5dbjCtWkXK2y+UMGiFvRDq5hF7Lgkb0udQ=;
        b=V8JaVCWtIHd9YP4uX9sW0HqVAosXBsNE+13YmEd73L+vE2JCPlRVl0xenHSdCRN+2Q
         8dUE6RWsNLS3nAe5lfudsI5ziUOYdh9zX5BNwXtif7PsvCnfWcsWAfJiHibwTiGLBYYS
         0JfGejndUB+yXD/u4kqhJQGEeXUFRuDi4fXUM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702308704; x=1702913504;
        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=AoVETgNFX5dbjCtWkXK2y+UMGiFvRDq5hF7Lgkb0udQ=;
        b=EXpuGAXJRVsgDzVJvAH22XiZ0IcPGcNiq/ww/Jdz0jDRwU7H4ilMLm53HG4UvFW0Ag
         HIBV7I+4DADCjnEYqPJlSkrDS+QSG2B8sUCGJhhBDO5DyS7KtZ6AQuDyyZtH5RwyXw+l
         m0Jf4flsxRlcTBNTFgNp0zlIrh4Mz2h1IX1qsYbu99m4kcmNILVSYEg3VyOlDHE3q7C3
         KoxpnW+Z7Hr6TTJ+m7kY0QKov9wgPrYQ82WHMsUdzvOPx3SgVAEbzl8szj/bRc7Z9ZQd
         1jWzpZvvp0Ef6Uc7w5iIljjGU5eanpunJECHqhQ7U2ACcr5TqNy5mQpFPhLCen8PGyd6
         2v0Q==
X-Gm-Message-State: AOJu0Yxdb/I8CCIigabnRlKpltG1ktdInOqqp8QVhSQtT67hX4/a7ydP
	NZK3PslNokdysOkhUB12Vf7XvQ==
X-Google-Smtp-Source: AGHT+IEY7lFTgRaW9W0YfNXCZfwdbMe7XBu9Ej61JboHDB0+6OOS5MllJ9JAXS5//EQ1vADAnmqoiw==
X-Received: by 2002:a1c:6a0e:0:b0:40c:1612:1bd6 with SMTP id f14-20020a1c6a0e000000b0040c16121bd6mr2658362wmc.56.1702308704161;
        Mon, 11 Dec 2023 07:31:44 -0800 (PST)
Date: Mon, 11 Dec 2023 16:31:43 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>,
	Huang Rui <Ray.Huang@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Message-ID: <ZXcrX44ceUjzjtDh@macbook>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20231210164009.1551147-3-Jiqian.Chen@amd.com>

On Mon, Dec 11, 2023 at 12:40:08AM +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
> 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 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 currd is dom0 no matter if
> dom0 has X86_EMU_USE_PIRQ flag and also allow
> PHYSDEVOP_unmap_pirq for the failed path to unmap pirq.
> 
> What's more, in 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.
> So, add PHYSDEVOP_setup_gsi for PVH dom0, because PVH dom0
> will setup gsi during assigning a device to passthrough.
> 
> Co-developed-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  xen/arch/x86/hvm/hypercall.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
> index 6ad5b4d5f1..621d789bd3 100644
> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>  
>      switch ( cmd )
>      {
> +    case PHYSDEVOP_setup_gsi:

I think given the new approach on the Linux side patches, where
pciback will configure the interrupt, there's no need to expose
setup_gsi anymore?

>      case PHYSDEVOP_map_pirq:
>      case PHYSDEVOP_unmap_pirq:
> +        if ( is_hardware_domain(currd) )
> +            break;

Also Jan already pointed this out in v2: this hypercall needs to be
limited so a PVH dom0 cannot execute it against itself.  IOW: refuse
the hypercall if DOMID_SELF or the passed domid matches the current
domain domid.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 15:34:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 15:34:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652318.1018094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCiIE-0005ae-Tj; Mon, 11 Dec 2023 15:34:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652318.1018094; Mon, 11 Dec 2023 15:34: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 1rCiIE-0005aX-Qh; Mon, 11 Dec 2023 15:34:02 +0000
Received: by outflank-mailman (input) for mailman id 652318;
 Mon, 11 Dec 2023 15:34: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=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCiID-0005aP-Bm
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 15:34:01 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4b89cfc-983a-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 16:34:00 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c3984f0cdso29137015e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 07:34:00 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 o5-20020a05600c510500b0040b3e26872dsm15680589wms.8.2023.12.11.07.33.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 07:33:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4b89cfc-983a-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702308840; x=1702913640; 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=+rCAEtkjC3HUaAf6Tu6nFfjQarIcejRK8RObA6IV88Y=;
        b=meEZaTBqm8OYiEv5iUpM2NDs1Gi6EostKjp/yCgTVftH90UuH+HdVktNEhNbmGm91T
         Umk/1l5yCHE3H2BUbga7HMHuUm9SpUJVY6b/s78pJnyiQ3zfshyaMdgF5/jiTzMS+leH
         1BFCar0NT6QTshKk2PILfRxi2O0BCkvBbd6hg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702308840; x=1702913640;
        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=+rCAEtkjC3HUaAf6Tu6nFfjQarIcejRK8RObA6IV88Y=;
        b=qJBx/0iUSqXTqoFJzrmi+oA6IFDlgodsByFNGG7iemF04aZN5MJ4BXzDziN2i3CNsp
         633BpWBQS8h6xS0CieWmluLlAIHvnwwDPYRS7OVlaRJoXfdbPkswrfOsRXNKCKXN+Ydp
         eWnnQb/BwiMsVWJMkUsaCyN6eMi27VY7ajUDV0yZmtRztLpPrs4i0zW7hIX+XuYOsoH+
         /39j4ZmJdj9n4GWtlavgG/DDpvv+7WD4OUb40uHFnjIgROtC41JUhSG99zJH3ayfABmj
         C49I9STi9AUT2F4AnrQpeONnIsVILSWO4RYRCIfB9Ldm08zVP8fICBf+1md3/6KRRsaO
         3OHA==
X-Gm-Message-State: AOJu0Ywt0sT3CE+gD1SbDfPjboaXVuEDghSCE49P1yz+MKpNCmqpDknU
	JFGrM5jxOZh0xJH5aSG3QKEwYQ==
X-Google-Smtp-Source: AGHT+IFAQs+DMCXrumDmAH9uw/y1g0aNk95EuxaFkJFlLVu4MJZejlRuz1WTaTu1aRicZzj4fSW8PQ==
X-Received: by 2002:a7b:cb89:0:b0:409:19a0:d247 with SMTP id m9-20020a7bcb89000000b0040919a0d247mr2276592wmi.18.1702308839878;
        Mon, 11 Dec 2023 07:33:59 -0800 (PST)
Date: Mon, 11 Dec 2023 16:33:58 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Anthony Perard <anthony.perard@citrix.com>,
	Paul Durrant <paul@xen.org>, qemu-devel@nongnu.org,
	xen-devel@lists.xenproject.org,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Huang Rui <Ray.Huang@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>
Subject: Re: [RFC QEMU PATCH v3 1/1] xen: Use gsi instead of irq for mapping
 pirq
Message-ID: <ZXcr5v43dsJAx8aK@macbook>
References: <20231210165240.1551450-1-Jiqian.Chen@amd.com>
 <20231210165240.1551450-2-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20231210165240.1551450-2-Jiqian.Chen@amd.com>

On Mon, Dec 11, 2023 at 12:52:40AM +0800, 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, that causes the irq number is not equal with the gsi
> number. And when passthrough a device, qemu wants to use
> gsi to map pirq, xen_pt_realize->xc_physdev_map_pirq, but
> the gsi number is got from file
> /sys/bus/pci/devices/<sbdf>/irq in current code, so it
> will fail when mapping.
> 
> Use real gsi number read from gsi sysfs.
> 
> Co-developed-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  hw/xen/xen-host-pci-device.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/xen/xen-host-pci-device.c b/hw/xen/xen-host-pci-device.c
> index 8c6e9a1716..e270ac2631 100644
> --- a/hw/xen/xen-host-pci-device.c
> +++ b/hw/xen/xen-host-pci-device.c
> @@ -364,7 +364,7 @@ void xen_host_pci_device_get(XenHostPCIDevice *d, uint16_t domain,
>      }
>      d->device_id = v;
>  
> -    xen_host_pci_get_dec_value(d, "irq", &v, errp);
> +    xen_host_pci_get_dec_value(d, "gsi", &v, errp);

Don't you need to fallthrough to use the irq number on failure?
Otherwise passthrough won't work on older Linux versions that don't
expose the gsi node.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 15:45:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 15:45:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652327.1018103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCiTJ-0007uC-TT; Mon, 11 Dec 2023 15:45:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652327.1018103; Mon, 11 Dec 2023 15:45:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCiTJ-0007u5-Qt; Mon, 11 Dec 2023 15:45:29 +0000
Received: by outflank-mailman (input) for mailman id 652327;
 Mon, 11 Dec 2023 15: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=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCiTI-0007tz-Eq
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 15:45:28 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4dee307b-983c-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 16:45:26 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c2308faedso48393225e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 07:45:26 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 n19-20020a05600c3b9300b0040b4b66110csm13379594wms.22.2023.12.11.07.45.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 07:45:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4dee307b-983c-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702309526; x=1702914326; 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=dzsvg2JRhp2WBCViewjz9B5ntQdfpn6OWyFZlX5XA+0=;
        b=OJCA53Scr16UdapmgFvN/sJlImU2QQBe7wqthnK9+FE8na8ch+t0OWoPBRYAIRlHC0
         wajTtTKBuOPyf4lA99vPmvY4P9FSv9Ll34vlkH8L16DuC3p0/ZUGch3PnCtIlg0cQf4h
         O4nyPkBraKYTzlbT+KoETlU2aEwyHdo2NXu6g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702309526; x=1702914326;
        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=dzsvg2JRhp2WBCViewjz9B5ntQdfpn6OWyFZlX5XA+0=;
        b=euPAfs0mJG2YmLBYB6fdbgPoEOo+ByiMKsCR2G0+EWPfmGR0smpTf3/ZB2OsaV1k6z
         C2LaqGZYrcviUfbgYO+XNoN+5cYoJt7WEW8QhLOYMLSDeTKsuXLdGM46gvhQRJDyrBH+
         who5GHu1H1T6pX8496Z/3PQcXuCsjECD2IpMsbTdKCOERES4/KuNuhDrFplQaeIb/I18
         vo/EtNCHKV4tonj1/lU5I/gnoz0oB59y5/bN+/C4PMBqxn1ltHwCeOX22Y2wJ4uI+HjE
         MblTTB1P9VE6zvHAhVDo+iFaJPODhWzeDoKixiFEoNtfzl1IPiHDNC8bILepMNmUmryZ
         hN6g==
X-Gm-Message-State: AOJu0YyV9LyDogdBC7rcR3PrBz4m9bgDVz4tIbdAdGa4K+6YBa7y/GqS
	csFWBoeg4dB4OXECdt/6JQAAKQ==
X-Google-Smtp-Source: AGHT+IFOoz6gzBFRlNCmm85TMu3iYATT7VeIaUXZXZII0A7jooZZJmYbocvfHglY0hU190etWOKWUQ==
X-Received: by 2002:a05:600c:331b:b0:40c:1bff:f707 with SMTP id q27-20020a05600c331b00b0040c1bfff707mr2291731wmp.156.1702309526222;
        Mon, 11 Dec 2023 07:45:26 -0800 (PST)
Date: Mon, 11 Dec 2023 16:45:24 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Message-ID: <ZXculMdLgwGaRC7i@macbook>
References: <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook>
 <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>

On Wed, Dec 06, 2023 at 06:07:26AM +0000, Chen, Jiqian wrote:
> On 2023/12/5 18:32, Jan Beulich wrote:
> > On 05.12.2023 10:19, Roger Pau MonnÃ© wrote:
> >> On Mon, Dec 04, 2023 at 02:19:33PM -0800, Stefano Stabellini wrote:
> >>> On Mon, 4 Dec 2023, Roger Pau MonnÃ© wrote:
> >>>> On Fri, Dec 01, 2023 at 07:37:55PM -0800, Stefano Stabellini wrote:
> >>>>> On Fri, 1 Dec 2023, Roger Pau MonnÃ© wrote:
> >>>>>> On Thu, Nov 30, 2023 at 07:15:17PM -0800, Stefano Stabellini wrote:
> >>>>>>> On Thu, 30 Nov 2023, Roger Pau MonnÃ© wrote:
> >>>>>>>> On Wed, Nov 29, 2023 at 07:53:59PM -0800, Stefano Stabellini wrote:
> >>>>>>>>> On Fri, 24 Nov 2023, Jiqian Chen wrote:
> >>>>>>>>>> This patch is to solve two problems we encountered when we try to
> >>>>>>>>>> passthrough a device to hvm domU base on Xen PVH dom0.
> >>>>>>>>>>
> >>>>>>>>>> First, hvm guest will alloc a pirq and irq for a passthrough device
> >>>>>>>>>> by using gsi, before that, the gsi must first has a mapping in dom0,
> >>>>>>>>>> see Xen code pci_add_dm_done->xc_domain_irq_permission, it will call
> >>>>>>>>>> into Xen and check whether dom0 has the mapping. See
> >>>>>>>>>> XEN_DOMCTL_irq_permission->pirq_access_permitted, "current" is PVH
> >>>>>>>>>> dom0 and it return irq is 0, and then return -EPERM.
> >>>>>>>>>> This is because the passthrough device doesn't do PHYSDEVOP_map_pirq
> >>>>>>>>>> when thay are enabled.
> >>>>>>>>>>
> >>>>>>>>>> Second, in PVH dom0, the gsi of a passthrough device doesn't get
> >>>>>>>>>> registered, but gsi must be configured for it to be able to be
> >>>>>>>>>> mapped into a domU.
> >>>>>>>>>>
> >>>>>>>>>> After searching codes, we can 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 problems
> >>>>>>>>>> can be conclude to that the gsi of a passthrough device doesn't be
> >>>>>>>>>> unmasked.
> >>>>>>>>>>
> >>>>>>>>>> To solve the unmaske problem, this patch call the unmask_irq when we
> >>>>>>>>>> assign a device to be passthrough. So that the gsi can get registered
> >>>>>>>>>> and mapped in PVH dom0.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Roger, this seems to be more of a Xen issue than a Linux issue. Why do
> >>>>>>>>> we need the unmask check in Xen? Couldn't we just do:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> >>>>>>>>> index 4e40d3609a..df262a4a18 100644
> >>>>>>>>> --- a/xen/arch/x86/hvm/vioapic.c
> >>>>>>>>> +++ b/xen/arch/x86/hvm/vioapic.c
> >>>>>>>>> @@ -287,7 +287,7 @@ static void vioapic_write_redirent(
> >>>>>>>>>              hvm_dpci_eoi(d, gsi);
> >>>>>>>>>      }
> >>>>>>>>>  
> >>>>>>>>> -    if ( is_hardware_domain(d) && unmasked )
> >>>>>>>>> +    if ( is_hardware_domain(d) )
> >>>>>>>>>      {
> >>>>>>>>>          /*
> >>>>>>>>>           * NB: don't call vioapic_hwdom_map_gsi while holding hvm.irq_lock
> >>>>>>>>
> >>>>>>>> There are some issues with this approach.
> >>>>>>>>
> >>>>>>>> mp_register_gsi() will only setup the trigger and polarity of the
> >>>>>>>> IO-APIC pin once, so we do so once the guest unmask the pin in order
> >>>>>>>> to assert that the configuration is the intended one.  A guest is
> >>>>>>>> allowed to write all kind of nonsense stuff to the IO-APIC RTE, but
> >>>>>>>> that doesn't take effect unless the pin is unmasked.
> >>>>>>>>
> >>>>>>>> Overall the question would be whether we have any guarantees that
> >>>>>>>> the hardware domain has properly configured the pin, even if it's not
> >>>>>>>> using it itself (as it hasn't been unmasked).
> >>>>>>>>
> >>>>>>>> IIRC PCI legacy interrupts are level triggered and low polarity, so we
> >>>>>>>> could configure any pins that are not setup at bind time?
> >>>>>>>
> >>>>>>> That could work.
> >>>>>>>
> >>>>>>> Another idea is to move only the call to allocate_and_map_gsi_pirq at
> >>>>>>> bind time? That might be enough to pass a pirq_access_permitted check.
> >>>>>>
> >>>>>> Maybe, albeit that would change the behavior of XEN_DOMCTL_bind_pt_irq
> >>>>>> just for PT_IRQ_TYPE_PCI and only when called from a PVH dom0 (as the
> >>>>>> parameter would be a GSI instead of a previously mapped IRQ).  Such
> >>>>>> difference just for PT_IRQ_TYPE_PCI is slightly weird - if we go that
> >>>>>> route I would recommend that we instead introduce a new dmop that has
> >>>>>> this syntax regardless of the domain type it's called from.
> >>>>>
> >>>>> Looking at the code it is certainly a bit confusing. My point was that
> >>>>> we don't need to wait until polarity and trigger are set appropriately
> >>>>> to allow Dom0 to pass successfully a pirq_access_permitted() check. Xen
> >>>>> should be able to figure out that Dom0 is permitted pirq access.
> >>>>
> >>>> The logic is certainly not straightforward, and it could benefit from
> >>>> some comments.
> >>>>
> >>>> The irq permissions are a bit special, in that they get setup when the
> >>>> IRQ is mapped.
> >>>>
> >>>> The problem however is not so much with IRQ permissions, that we can
> >>>> indeed sort out internally in Xen.  Such check in dom0 has the side
> >>>> effect of preventing the IRQ from being assigned to a domU without the
> >>>> hardware source being properly configured AFAICT.
> >>>
> >>> Now I understand why you made a comment previously about Xen having to
> >>> configure trigger and polarity for these interrupts on its own.
> >>>
> >>>
> >>>>> So the idea was to move the call to allocate_and_map_gsi_pirq() earlier
> >>>>> somewhere because allocate_and_map_gsi_pirq doesn't require trigger or
> >>>>> polarity to be configured to work. But the suggestion of doing it a
> >>>>> "bind time" (meaning: XEN_DOMCTL_bind_pt_irq) was a bad idea.
> >>>>>
> >>>>> But maybe we can find another location, maybe within
> >>>>> xen/arch/x86/hvm/vioapic.c, to call allocate_and_map_gsi_pirq() before
> >>>>> trigger and polarity are set and before the interrupt is unmasked.
> >>>>>
> >>>>> Then we change the implementation of vioapic_hwdom_map_gsi to skip the
> >>>>> call to allocate_and_map_gsi_pirq, because by the time
> >>>>> vioapic_hwdom_map_gsi we assume that allocate_and_map_gsi_pirq had
> >>>>> already been done.
> >>>>
> >>>> But then we would end up in a situation where the
> >>>> pirq_access_permitted() check will pass, but the IO-APIC pin won't be
> >>>> configured, which I think it's not what we want.
> >>>>
> >>>> One option would be to allow mp_register_gsi() to be called multiple
> >>>> times, and update the IO-APIC pin configuration as long as the pin is
> >>>> not unmasked.  That would propagate each dom0 RTE update to the
> >>>> underlying IO-APIC.  However such approach relies on dom0 configuring
> >>>> all possible IO-APIC pins, even if no device on dom0 is using them, I
> >>>> think it's not a very reliable option.
> >>>>
> >>>> Another option would be to modify the toolstack to setup the GSI
> >>>> itself using the PHYSDEVOP_setup_gsi hypercall.  As said in a previous
> >>>> email, since we only care about PCI device passthrough the legacy INTx
> >>>> should always be level triggered and low polarity.
> >>>>
> >>>>> I am not familiar with vioapic.c but to give you an idea of what I was
> >>>>> thinking:
> >>>>>
> >>>>>
> >>>>> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> >>>>> index 4e40d3609a..16d56fe851 100644
> >>>>> --- a/xen/arch/x86/hvm/vioapic.c
> >>>>> +++ b/xen/arch/x86/hvm/vioapic.c
> >>>>> @@ -189,14 +189,6 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,
> >>>>>          return ret;
> >>>>>      }
> >>>>>  
> >>>>> -    ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
> >>>>> -    if ( ret )
> >>>>> -    {
> >>>>> -        gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
> >>>>> -                 gsi, ret);
> >>>>> -        return ret;
> >>>>> -    }
> >>>>> -
> >>>>>      pcidevs_lock();
> >>>>>      ret = pt_irq_create_bind(currd, &pt_irq_bind);
> >>>>>      if ( ret )
> >>>>> @@ -287,6 +279,17 @@ static void vioapic_write_redirent(
> >>>>>              hvm_dpci_eoi(d, gsi);
> >>>>>      }
> >>>>>  
> >>>>> +    if ( is_hardware_domain(d) ) 
> >>>>> +    {
> >>>>> +        int pirq = gsi, ret;
> >>>>> +        ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq);
> >>>>> +        if ( ret )
> >>>>> +        {
> >>>>> +            gprintk(XENLOG_WARNING, "vioapic: error mapping GSI %u: %d\n",
> >>>>> +                    gsi, ret);
> >>>>> +            return ret;
> >>>>> +        }
> >>>>> +    }
> >>>>>      if ( is_hardware_domain(d) && unmasked )
> >>>>>      {
> >>>>>          /*
> >>>>
> >>>> As said above, such approach relies on dom0 writing to the IO-APIC RTE
> >>>> of likely each IO-APIC pin, which is IMO not quite reliable.  In there
> >>>> are two different issues here that need to be fixed for PVH dom0:
> >>>>
> >>>>  - Fix the XEN_DOMCTL_irq_permission pirq_access_permitted() call to
> >>>>    succeed for a PVH dom0, even if dom0 is not using the GSI itself.
> >>>
> >>> Yes makes sense
> >>>
> >>>
> >>>>  - Configure IO-APIC pins for PCI interrupts even if dom0 is not using
> >>>>    the IO-APIC pin itself.
> >>>>
> >>>> First one needs to be fixed internally in Xen, second one will require
> >>>> the toolstack to issue an extra hypercall in order to ensure the
> >>>> IO-APIC pin is properly configured.
> >>>  
> >>> On ARM, Xen doesn't need to wait for dom0 to configure interrupts
> >>> correctly. Xen configures them all on its own at boot based on Device
> >>> Tree information. I guess it is not possible to do the same on x86?
> >>
> >> No, not exactly.  There's some interrupt information in the ACPI MADT,
> >> but that's just for very specific sources (Interrupt Source Override
> >> Structures)
> >>
> >> Then on AML devices can have resource descriptors that contain
> >> information about how interrupts are setup.  However Xen is not able
> >> to read any of this information on AML.
> >>
> >> Legacy PCI interrupts are (always?) level triggered and low polarity,
> >> because it's assumed that an interrupt source can be shared between
> >> multiple devices.
> > 
> > Except that as per what you said just in the earlier paragraph ACPI can
> > tell us otherwise.
> > 
> >> I'm however not able to find any reference to this in the PCI spec,
> >> hence I'm reluctant to take this for granted in Xen, and default all
> >> GSIs >= 16 to such mode.
> >>
> >> OTOH legacy PCI interrupts are not that used anymore, as almost all
> >> devices will support MSI(-X) (because PCIe mandates it) and OSes
> >> should prefer the latter.  SR-IOV VF don't even support legacy PCI
> >> interrupts anymore.
> >>
> >>> If
> >>> not, then I can see why we would need 1 extra toolstack hypercall for
> >>> that (or to bundle the operation of configuring IO-APIC pins together
> >>> with an existing toolstack hypercall).
> >>
> >> One suitable compromise would be to default unconfigured GSIs >= 16 to
> >> level-triggered and low-polarity, as I would expect that to work in
> >> almost all cases.  We can always introduce the usage of
> >> PHYSDEVOP_setup_gsi later if required.
> >>
> >> Maybe Jan has more input here, would you agree to defaulting non-ISA
> >> GSIs to level-triggered, low-polarity in the absence of a specific
> >> setup provided by dom0?
> > 
> > Well, such defaulting is an option, but in case it's wrong we might
> > end up with hard to diagnose issues. Personally I'd prefer if we
> > didn't take shortcuts here, i.e. if we followed what Dom0 is able
> > to read from ACPI.
> 
> When PVH dom0 enable a device, it will get trigger and polarity from ACPI (see acpi_pci_irq_enable)
> I have a version of patch which tried that way, see below:
> 
> diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
> index ada3868c02c2..43e1bda9f946 100644
> --- a/arch/x86/xen/enlighten_pvh.c
> +++ b/arch/x86/xen/enlighten_pvh.c
> @@ -1,6 +1,7 @@
>  // SPDX-License-Identifier: GPL-2.0
>  #include <linux/acpi.h>
>  #include <linux/export.h>
> +#include <linux/pci.h>
> 
>  #include <xen/hvc-console.h>
> 
> @@ -25,6 +26,127 @@
>  bool __ro_after_init xen_pvh;
>  EXPORT_SYMBOL_GPL(xen_pvh);
> 
> +typedef struct gsi_info {
> +       int gsi;
> +       int trigger;
> +       int polarity;
> +       int pirq;
> +} gsi_info_t;
> +
> +struct acpi_prt_entry {
> +       struct acpi_pci_id      id;
> +       u8                      pin;
> +       acpi_handle             link;
> +       u32                     index;          /* GSI, or link _CRS index */
> +};
> +
> +static int xen_pvh_get_gsi_info(struct pci_dev *dev,
> +                                                               gsi_info_t *gsi_info)
> +{
> +       int gsi;
> +       u8 pin = 0;
> +       struct acpi_prt_entry *entry;
> +       int trigger = ACPI_LEVEL_SENSITIVE;
> +       int polarity = acpi_irq_model == ACPI_IRQ_MODEL_GIC ?
> +                                     ACPI_ACTIVE_HIGH : ACPI_ACTIVE_LOW;
> +
> +       if (dev)
> +               pin = dev->pin;
> +       if (!pin) {
> +               xen_raw_printk("No interrupt pin configured\n");
> +               return -EINVAL;
> +       }
> +
> +       entry = acpi_pci_irq_lookup(dev, pin);
> +       if (entry) {
> +               if (entry->link)
> +                       gsi = acpi_pci_link_allocate_irq(entry->link,
> +                                                        entry->index,
> +                                                        &trigger, &polarity,
> +                                                        NULL);
> +               else
> +                       gsi = entry->index;
> +       } else
> +               return -EINVAL;
> +
> +       gsi_info->gsi = gsi;
> +       gsi_info->trigger = trigger;
> +       gsi_info->polarity = polarity;
> +
> +       return 0;
> +}
> +
> +static int xen_pvh_map_pirq(gsi_info_t *gsi_info)
> +{
> +       struct physdev_map_pirq map_irq;
> +       int ret;
> +
> +       map_irq.domid = DOMID_SELF;
> +       map_irq.type = MAP_PIRQ_TYPE_GSI;
> +       map_irq.index = gsi_info->gsi;
> +       map_irq.pirq = gsi_info->gsi;
> +
> +       ret = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
> +       gsi_info->pirq = map_irq.pirq;
> +
> +       return ret;
> +}
> +
> +static int xen_pvh_unmap_pirq(gsi_info_t *gsi_info)
> +{
> +       struct physdev_unmap_pirq unmap_irq;
> +
> +       unmap_irq.domid = DOMID_SELF;
> +       unmap_irq.pirq = gsi_info->pirq;
> +
> +       return HYPERVISOR_physdev_op(PHYSDEVOP_unmap_pirq, &unmap_irq);
> +}
> +
> +static int xen_pvh_setup_gsi(gsi_info_t *gsi_info)
> +{
> +       struct physdev_setup_gsi setup_gsi;
> +
> +       setup_gsi.gsi = gsi_info->gsi;
> +       setup_gsi.triggering = (gsi_info->trigger == ACPI_EDGE_SENSITIVE ? 0 : 1);
> +       setup_gsi.polarity = (gsi_info->polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
> +
> +       return HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
> +}

Hm, why not simply call pcibios_enable_device() from pciback?  What
you are doing here using the hypercalls is a backdoor into what's done
automatically by Xen on IO-APIC accesses by a PVH dom0.

It will be much more natural for the PVH dom0 model to simply use the
native way to configure and unmask the IO-APIC pin, and that would
correctly setup the triggering/polarity and bind it to dom0 without
requiring the usage of any hypercalls.

Is that an issue since in that case the gsi will get mapped and bound
to dom0?

Otherwise I would prefer if the gsi is just configured from pciback
(PHYSDEVOP_setup_gsi) but not mapped, as allowing a PVH dom0 to map
interrupts using PHYSDEVOP_{,un}map_pirq to itself introduces a new
interface to manage interrupts that clashes with the native way that a
PVH dom0 uses.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 15:49:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 15:49:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652337.1018114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCiWl-0000nb-Ie; Mon, 11 Dec 2023 15:49:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652337.1018114; Mon, 11 Dec 2023 15: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 1rCiWl-0000nU-FJ; Mon, 11 Dec 2023 15:49:03 +0000
Received: by outflank-mailman (input) for mailman id 652337;
 Mon, 11 Dec 2023 15: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=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCiWk-0000nO-Ol
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 15:49:02 +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 cd6ae18e-983c-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 16:49:00 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-33330a5617fso4871193f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 07:49:00 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 k40-20020a05600c1ca800b0040b45356b72sm15578677wms.33.2023.12.11.07.48.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 07:49:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd6ae18e-983c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702309740; x=1702914540; 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=/IiFikvBYbX5EVpOUvn7fhrb8PIjvnvQX6xdMwm4lp0=;
        b=j9rrhB07167BHTEwwxa0kFugKVyzBbMb89a5o6YJoOUvAAo6QYxA6GNFWOJV3P7UMj
         6AQbGqsPCCaDCizR9AS4sQeORSPOFNfys6o/goxsfDHUfotOmlLgo1xRwBBTpEukUpnj
         Z489S/p0z2sMsdbitTqwMmnoRqDE+Uvr1N0vA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702309740; x=1702914540;
        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=/IiFikvBYbX5EVpOUvn7fhrb8PIjvnvQX6xdMwm4lp0=;
        b=tO6CqCcb4M7ELLidDalJhSZAQn/fxMoiQGjK8FGKOazU4Wrl5XH1RDO4Gj8bx+cFv6
         ZLZ4JLejeeN6m4mIDLp4B2LcAF3W058jJdPtxVwxU3VzMirlQy2eb422pk5gqyYf9A12
         VEMa/1X2zyFVES44miGMiD9yZtFujZcysHBpmk5eTYBsNdZXFjy8E7cRjz/RQRikrGka
         OzPUfFTJlY16Zkfm6z3t3Ze7tjC20UlnoDNc9VVd+NdL/sV/g7jwsl28VnsASwH/jWqI
         ZgJDgxu+xCUhtZAx5e3Wq5lF8P/x9uaNQJ/7GyHKQJjvvfPh2ZgtaRH+ewQ2uyjdGfyt
         3o7Q==
X-Gm-Message-State: AOJu0YzzX7xT/ubXkP8p+VZ9v2SQcyRUkX0fUnldoRXry+mSSH9ZuqU+
	XO7tgW3HI6C4hCcgg3CwAZyadQ==
X-Google-Smtp-Source: AGHT+IEiVYyNaGA+6c0OUkNMqRA5piPFDoSE4zQqN0ZjNemmGlA/JBG4wDVsbhQrnOGoceOT5lZEMA==
X-Received: by 2002:a05:600c:4591:b0:40b:5e1d:83a6 with SMTP id r17-20020a05600c459100b0040b5e1d83a6mr2613598wmo.58.1702309740258;
        Mon, 11 Dec 2023 07:49:00 -0800 (PST)
Date: Mon, 11 Dec 2023 16:48:59 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>,
	Huang Rui <Ray.Huang@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>
Subject: Re: [RFC XEN PATCH v3 3/3] libxl: Use gsi instead of irq for mapping
 pirq
Message-ID: <ZXcvazeJlsfPsq0h@macbook>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-4-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20231210164009.1551147-4-Jiqian.Chen@amd.com>

On Mon, Dec 11, 2023 at 12:40:09AM +0800, 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, that causes the irq number is not equal with the gsi
> number. And when passthrough a device, xl wants to use
> gsi to map pirq, see pci_add_dm_done->xc_physdev_map_pirq,
> but the gsi number is got from file
> /sys/bus/pci/devices/<sbdf>/irq in current code, so it
> will fail when mapping.
> 
> So, use real gsi number read from gsi sysfs.
> 
> Co-developed-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  tools/libs/light/libxl_pci.c | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
> index 96cb4da079..9e75f0c263 100644
> --- a/tools/libs/light/libxl_pci.c
> +++ b/tools/libs/light/libxl_pci.c
> @@ -1416,7 +1416,7 @@ static void pci_add_dm_done(libxl__egc *egc,
>      char *sysfs_path;
>      FILE *f;
>      unsigned long long start, end, flags, size;
> -    int irq, i;
> +    int gsi, i;
>      int r;
>      uint32_t flag = XEN_DOMCTL_DEV_RDM_RELAXED;
>      uint32_t domainid = domid;
> @@ -1439,7 +1439,7 @@ static void pci_add_dm_done(libxl__egc *egc,
>                             pci->bus, pci->dev, pci->func);
>      f = fopen(sysfs_path, "r");
>      start = end = flags = size = 0;
> -    irq = 0;
> +    gsi = 0;

unsigned int (so it matches the fscanf format), and initialized at
definition.

>  
>      if (f == NULL) {
>          LOGED(ERROR, domainid, "Couldn't open %s", sysfs_path);
> @@ -1478,26 +1478,26 @@ static void pci_add_dm_done(libxl__egc *egc,
>      fclose(f);
>      if (!pci_supp_legacy_irq())
>          goto out_no_irq;
> -    sysfs_path = GCSPRINTF(SYSFS_PCI_DEV"/"PCI_BDF"/irq", pci->domain,
> +    sysfs_path = GCSPRINTF(SYSFS_PCI_DEV"/"PCI_BDF"/gsi", pci->domain,
>                                  pci->bus, pci->dev, pci->func);

You need to keep the fallback mechanism of reading the irq node, or
else xl would stop working on any kernel that doesn't expose this
sysfs node, you would break passthrough on all current Linux versions.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 15:56:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 15:56:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652345.1018125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCieC-0003kJ-C2; Mon, 11 Dec 2023 15:56:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652345.1018125; Mon, 11 Dec 2023 15:56:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCieC-0003kC-79; Mon, 11 Dec 2023 15:56:44 +0000
Received: by outflank-mailman (input) for mailman id 652345;
 Mon, 11 Dec 2023 15:56:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCieA-0003k6-Sj
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 15:56:42 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df939bf6-983d-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 16:56:40 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3333fbbeab9so4177201f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 07:56:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c1-20020a5d4cc1000000b0033350f5f94dsm8825192wrt.101.2023.12.11.07.56.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 07:56:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df939bf6-983d-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702310200; x=1702915000; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=r13stXC5ji4vxBAunrYXWNMq3hdqlLaSIgVzS5N+Ytw=;
        b=OsZUmXIaqHxzbNTZpxp+xMQua6IvKc+m2ZkSWUTwZ5WZooczgsxf7hwT1O4K023iWt
         UFVvyJkuxwIU9PQKhoDZA7uI7Hz1u9Pb9KszbEp8sMvSkVv+RDsKCtS+oS55PY0GLM1M
         RzGCzNVDGbcP3FeNtr4dOEnky8Z11UtkjdWs8cqyVRPjna9QlGo7Kh+6k4M0/9lcULTx
         /DZwkSA4N1D3YGCOxmD1456LM1LMX2KULpK/6qiLJupkk7Uww9IXEchhNwCSBOPLARAS
         h7SHh25/5jROZLKhY+4MZPWntAYnxfclHKOb0vazBktEVERKWDNjSq8UUmUgPI77Kbw9
         8tEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702310200; x=1702915000;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r13stXC5ji4vxBAunrYXWNMq3hdqlLaSIgVzS5N+Ytw=;
        b=k+D0k55ko2MxrDr66v2na3xDldHjIKW+RXVVrCLnerTyDMQ2pRdf+UshA3MsrmVUdM
         ZnGCUt6aKBSxMASwjKISYUwXAyBaOk9qOGYmuPviZ20W+S0nM5bLPOAXoZuHlE37+Yfq
         PUeVuQmCzp8Fd9hAlSPBIsMCu3T3UuwTw4kbxx5gc6kFEZA0pUYScGj8tq5ANANkyPvz
         f4yyYwdUXKgGoi3L+cKzCB0NwofGxwD79bWmCTixZL0t+G8slRROxVq25IWdp8YqIIcL
         3YpCp2bikfr+ADnu+12RmT9eOWMAW/c0wW3+30Dmh8RCLXNdA9Rj+URHY1tL3ymEwr8m
         DlcA==
X-Gm-Message-State: AOJu0YwSm8AVftBZPTdJLRUXDYued5nD4wRY+m8ouY2JJ5QjvW6Tvgx0
	9KCOt9hRgdsxeXBMNtrOxzzLS+quiwmSq2YC2AjR
X-Google-Smtp-Source: AGHT+IHPzIZKitIoWtUeVWhtomZ672RChyyT0VvhwEKtimmfUu+G4yFm1EZODhVluW9QKRERX5dj7A==
X-Received: by 2002:adf:ebd0:0:b0:333:4fd1:1c6d with SMTP id v16-20020adfebd0000000b003334fd11c6dmr2290216wrn.31.1702310199647;
        Mon, 11 Dec 2023 07:56:39 -0800 (PST)
Message-ID: <7ec81395-298d-4d50-89af-d54f756ef657@suse.com>
Date: Mon, 11 Dec 2023 16:56:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG for
 randconfig
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>
 <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
 <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.12.2023 21:17, Andrew Cooper wrote:
> On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
>> ARCH_FIXED_CONFIG is required in the case of randconfig
>> and CI for configs that aren't ready or are not
>> supposed to be implemented for specific architecture.
>> These configs should always be disabled to prevent randconfig
>> related tests from failing.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>>  xen/Makefile | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/Makefile b/xen/Makefile
>> index ca571103c8..8ae8fe1480 100644
>> --- a/xen/Makefile
>> +++ b/xen/Makefile
>> @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
>>  # *config targets only - make sure prerequisites are updated, and descend
>>  # in tools/kconfig to make the *config target
>>  
>> +ARCH_FORCED_CONFIG := $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
>> +
>>  # Create a file for KCONFIG_ALLCONFIG which depends on the environment.
>>  # This will be use by kconfig targets allyesconfig/allmodconfig/allnoconfig/randconfig
>>  filechk_kconfig_allconfig = \
>>      $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo 'CONFIG_XSM_FLASK_POLICY=n';) \
>> -    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
>> +    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
>> +    $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat $(ARCH_FORCED_CONFIG);) ) \
>>      :
>>  
>>  .allconfig.tmp: FORCE
> 
> We already have infrastructure for this.Â  What's wrong with
> EXTRA_FIXED_RANDCONFIG?

What I don't understand here is why dealing with the issue would want
limiting to gitlab-CI. Anyone could run randconfig on their own, and
imo it would be helpful if the same issue(s) could be prevented there,
too. Hence my earlier suggestion to have a snippet which can be used
by "interested" parties. And once dealt with in e.g. the makefile
there should not be a need for any overrides in the CI config anymore.

Jan

> ---8<---
> 
> CI: Revert "automation: Drop ppc64le-*randconfig jobs", fix Randconfig
> with existing infrastructure
> Â Â  Â 
> This reverts commit cbb71b95dd708b1e26899bbe1e7bf9a85081fd60.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> diff --git a/automation/gitlab-ci/build.yaml
> b/automation/gitlab-ci/build.yaml
> index 32af30ccedc9..346d0400ed09 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -538,6 +538,7 @@ archlinux-current-gcc-riscv64-randconfig:
> Â Â Â Â  RANDCONFIG: y
> Â Â Â Â  EXTRA_FIXED_RANDCONFIG:
> Â Â Â Â Â Â  CONFIG_COVERAGE=n
> +Â Â Â Â Â  CONFIG_GRANT_TABLE=n
> Â 
> Â archlinux-current-gcc-riscv64-debug-randconfig:
> Â Â  extends: .gcc-riscv64-cross-build-debug
> @@ -547,6 +548,7 @@ archlinux-current-gcc-riscv64-debug-randconfig:
> Â Â Â Â  RANDCONFIG: y
> Â Â Â Â  EXTRA_FIXED_RANDCONFIG:
> Â Â Â Â Â Â  CONFIG_COVERAGE=n
> +Â Â Â Â Â  CONFIG_GRANT_TABLE=n
> Â 
> Â # Power cross-build
> Â debian-bullseye-gcc-ppc64le:
> @@ -563,6 +565,26 @@ debian-bullseye-gcc-ppc64le-debug:
> Â Â Â Â  KBUILD_DEFCONFIG: ppc64_defconfig
> Â Â Â Â  HYPERVISOR_ONLY: y
> Â 
> +debian-bullseye-gcc-ppc64le-randconfig:
> +Â  extends: .gcc-ppc64le-cross-build
> +Â  variables:
> +Â Â Â  CONTAINER: debian:bullseye-ppc64le
> +Â Â Â  KBUILD_DEFCONFIG: ppc64_defconfig
> +Â Â Â  RANDCONFIG: y
> +Â Â Â  EXTRA_FIXED_RANDCONFIG:
> +Â Â Â Â Â  CONFIG_COVERAGE=n
> +Â Â Â Â Â  CONFIG_GRANT_TABLE=n
> +
> +debian-bullseye-gcc-ppc64le-debug-randconfig:
> +Â  extends: .gcc-ppc64le-cross-build-debug
> +Â  variables:
> +Â Â Â  CONTAINER: debian:bullseye-ppc64le
> +Â Â Â  KBUILD_DEFCONFIG: ppc64_defconfig
> +Â Â Â  RANDCONFIG: y
> +Â Â Â  EXTRA_FIXED_RANDCONFIG:
> +Â Â Â Â Â  CONFIG_COVERAGE=n
> +Â Â Â Â Â  CONFIG_GRANT_TABLE=n
> +
> Â # Yocto test jobs
> Â yocto-qemuarm64:
> Â Â  extends: .yocto-test-arm64
> 



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 15:59:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 15:59:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652348.1018133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCih1-0004QP-NF; Mon, 11 Dec 2023 15:59:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652348.1018133; Mon, 11 Dec 2023 15:59:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCih1-0004QI-Ki; Mon, 11 Dec 2023 15:59:39 +0000
Received: by outflank-mailman (input) for mailman id 652348;
 Mon, 11 Dec 2023 15:59:38 +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 1rCih0-0004QC-GB
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 15:59:38 +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 1rCigz-0007qq-Qx; Mon, 11 Dec 2023 15:59:37 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.158.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCigz-00056M-Kt; Mon, 11 Dec 2023 15:59:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=JDALTLNUHOOWl4TmrS/SB86tOCPPNzkrFxf+1wb/W8g=; b=n1SDE2Ix2i8jzJkdULiQToTCqK
	GEJlIwIaXz4/rwuIgSaA9qH5AAY9KLycO0UCHM5F1fN5Lq2qttIsoW1nl+9G9WXCIfWN5MhG4z/P5
	APvEPlIpu2fv5l8sUh+DBm2itNrh7F99LA1U/wdeOt3Ijx+bbp2doPvIHq/OOXWe8PpY=;
Message-ID: <3b3b62a3-0691-4ae7-9234-a8a85516c9eb@xen.org>
Date: Mon, 11 Dec 2023 15:59:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.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.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
 <c77560d6044700f10a8b149d539a95d1@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c77560d6044700f10a8b149d539a95d1@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Nicola,

On 11/12/2023 14:54, Nicola Vetrini wrote:
> On 2023-12-11 13:32, Julien Grall wrote:
>> Hi,
>>
>> On 11/12/2023 10:30, Nicola Vetrini wrote:
>>> The branches of the switch after a call to 'do_unexpected_trap'
>>> cannot return, but there is one path that may return, hence
>>> only some clauses are marked with ASSERT_UNREACHABLE().
>> I don't understand why this is necessary. The code should never be 
>> reachable because do_unexpected_trap() is a noreturn().
>>
>> Cheers,
> 
> It was meant as a safeguard against mistakes. 

I am confused about which mistakes you are trying to prevent. Are you 
saying you are not trusting the noreturn attribute?

And if so, are you intending to add ASSERT_UNREACHABLE() after every 
single call to noreturn functions?

> There are MISRA rules that 
> deal with this aspect (e.g., a noreturn function should not return), but 
> they are not in Amendment 2, which is what Xen is following.
Do you mind providing a bit more details about the rules you are talking 
about? At least the numbers would be helpful.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 16:03:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 16:03:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652353.1018144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCikB-0006x6-68; Mon, 11 Dec 2023 16:02:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652353.1018144; Mon, 11 Dec 2023 16:02:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCikB-0006wz-2O; Mon, 11 Dec 2023 16:02:55 +0000
Received: by outflank-mailman (input) for mailman id 652353;
 Mon, 11 Dec 2023 16:02:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCik9-0006vi-8Z
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 16:02:53 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bcec91b8-983e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 17:02:52 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c31f18274so40158425e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 08:02:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a4-20020a056000100400b00333371c7382sm8934252wrx.72.2023.12.11.08.02.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 08:02:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bcec91b8-983e-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702310571; x=1702915371; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=sADWaq4Kq/hlWmdy40m+bAJQhoBVflD3ap33s/h2wOg=;
        b=g3pCNGBZueZPUAXfkKcSNIaoMemI22N3RDQnVeZ/r0WPep1MDgtFhBNvddtInfQN+M
         0NIPdZJWpv0ltLgqQ7ReBWTvuUhzIuqTlADRH05kFJyVGIa9GfyyyMv8jB3douIr/IRM
         MAh49OZLUgZ92yTrhAyX6BoJg4iCv3zaH1zrZ1AzAWSVB4VfzNFZvETOcFncpW44BGk0
         TveWZKjovtgZuQuIN3riWB9ERxg33vDmNR7rQtwh9OQ2q2UhDIVEBLy91un2HtJEujmi
         0fhnLmJOAt/vRoPNi+fEtN+DV/lIJp660Oki2rh1McXWldwYae/mZCtRdt0aKlKjhSlz
         O9yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702310571; x=1702915371;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=sADWaq4Kq/hlWmdy40m+bAJQhoBVflD3ap33s/h2wOg=;
        b=sVv2pX0C5ERd/+rm1jejkTUmqMbrGWHHwRTdZzo8uCknSbcxs2WFuEJPOri2lCGEGb
         GC4tj6Ux0pzmJl0pxB6rNAPDaYjhTl8QAGMs9Fdaf9/82IhCIkTwnnISrPHHLGK/GfU/
         gC1ZQ0ZfWlO2rbfHgMfV84CW3JOSwtEniRwElpsQbiGMDbqh+vxHeh9tkUfRPj8WVXqh
         5q/48Dif3noLnv8tXuhowCPzzcK5EiMWBXQMg4waiDRPhJGJdD/T1+9MT6Qp3aNmMeD5
         ac4aYM6/POl0ps8atmdar9q4QLSZQb2gE5QzaE0aMpuOg2P7h2tlUueC7yB2aKnJtMv9
         AYqg==
X-Gm-Message-State: AOJu0YxEmCX01V9UQgAIU8XAesj0wXVO17f/cS+W3akxD0j8Q/0tmaU5
	ttSPItnb+O8RQquNpzECj0ho
X-Google-Smtp-Source: AGHT+IHGDg2bRqGCCU01HVZRdm4jsWRAi0xa9a1TntRoNxtoX9cjhTByGVEWGZxEmeO7ChiSpgNnnQ==
X-Received: by 2002:a05:600c:3108:b0:40c:426b:fd2b with SMTP id g8-20020a05600c310800b0040c426bfd2bmr1287032wmo.153.1702310571555;
        Mon, 11 Dec 2023 08:02:51 -0800 (PST)
Message-ID: <ed29735f-2d2e-4b29-b5d1-efa78480acd6@suse.com>
Date: Mon, 11 Dec 2023 17:02:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
Content-Language: en-US
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
 <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
 <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
 <5af2573e588f76b8df3423fd13a1b4275cc18f33.camel@gmail.com>
 <abb8c26b-4c8c-4fcf-a8c8-4a15a5067fa0@suse.com>
 <a53707edfac7d8d959cfc858953a1d64c3149596.camel@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: <a53707edfac7d8d959cfc858953a1d64c3149596.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 15:43, Oleksii wrote:
> On Mon, 2023-12-04 at 11:39 +0100, Jan Beulich wrote:
>> On 04.12.2023 11:34, Oleksii wrote:
>>> If you ( or anyone else ) don't mind, I'll update the patch with an
>>> introduction of HAS_GRANT_TABLE.
>>
>> I won't NAK such a patch, but unless convincing arguments appear I
>> also
>> won't ACK it.
> I am going to disable GRANT_TABLE config for RISC-V ( and PPC? ) by
> providing a separate YAML file ( riscv-fixed-randconfig.yaml ) with the
> following content:
> .riscv-fixed-randconfig:
>   variables:
>     EXTRA_FIXED_RANDCONFIG:
>       CONFIG_COVERAGE=n
>       CONFIG_GRANT_TABLE=n
>       CONFIG_MEM_ACCESS=n # this I'll add in the next patch where asm-
> geneic for mem_access.h is introduced
> 
> And then for riscv*randconfig jobs do the following:
> archlinux-current-gcc-riscv64-randconfig:
>   extends:
>     - .gcc-riscv64-cross-build
>   variables:
>     CONTAINER: archlinux:current-riscv64
>     KBUILD_DEFCONFIG: tiny64_defconfig
>     RANDCONFIG: y
>     EXTRA_FIXED_RANDCONFIG: !reference [.riscv-fixed-randconfig,
> variables, EXTRA_FIXED_RANDCONFIG]
> 
> For RISC-V, I prefer having a separate file for all the
> EXTRA_FIXED_RANDCONFIG because in another patch series [1], I'll
> introduce a large number of disabled configs for randconfig.
> 
> For PPC, I don't think it's necessary to introduce a separate YAML file
> for EXTRA_FIXED_RANDCONFIG. For the time being, it is only necessary to
> disable two configs: CONFIG_GRANT_TABLE and CONFIG_MEM_ACCESS (in the
> next patch of this series).

Why would this be different for PPC and RISC-V?

> If this solution is acceptable to you, can I retain your 'Suggested-
> by'?"

No, please don't. I've replied to Andrew on the other thread - I don't
see why helping just gitlab-CI is desirable. I'm actually surprised
Linux have no solution ready for use, as the underlying problem of not
all settings necessarily being valid to use ought to affect them as
well. Then again perhaps this really only is a transient issue during
arch bringup ... In which case the approach taken here may be fine, but
it still wouldn't be what I suggested. It may then be Stefano or Andrew
who you could consider for such a tag.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 16:05:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 16:05:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652356.1018153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCimi-0007fR-Kj; Mon, 11 Dec 2023 16:05:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652356.1018153; Mon, 11 Dec 2023 16:05:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCimi-0007fK-He; Mon, 11 Dec 2023 16:05:32 +0000
Received: by outflank-mailman (input) for mailman id 652356;
 Mon, 11 Dec 2023 16:05: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 1rCimh-0007fC-RJ
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 16:05: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 1rCimh-0008V0-22; Mon, 11 Dec 2023 16:05:31 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.158.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCimg-0005UX-Rt; Mon, 11 Dec 2023 16:05: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:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=lWxSdLNaXH7A4ljkX5TXvDnV7n/cRE3mQRQaunKjnqE=; b=Om8i62/NRRhWr9GEwch6bHfBDw
	OV1tQHMEGBSm/3MUUhIsmmLAGdscfHTx2h6vqYQ6yKx7wAcbxwxfj1bTXBEFc2w4V1IeA2ZHr1k9I
	pSjSbRZupM01fewxUX/uWk03jymgSoLpLgD9bd9f6Ob0PMiqGgPGCgUA0p5BBntPk3KY=;
Message-ID: <95690c3a-92c5-4e05-856b-088133b87650@xen.org>
Date: Mon, 11 Dec 2023 16:05:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.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.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
 <c77560d6044700f10a8b149d539a95d1@bugseng.com>
 <3b3b62a3-0691-4ae7-9234-a8a85516c9eb@xen.org>
In-Reply-To: <3b3b62a3-0691-4ae7-9234-a8a85516c9eb@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 11/12/2023 15:59, Julien Grall wrote:
> Hi Nicola,
> 
> On 11/12/2023 14:54, Nicola Vetrini wrote:
>> On 2023-12-11 13:32, Julien Grall wrote:
>>> Hi,
>>>
>>> On 11/12/2023 10:30, Nicola Vetrini wrote:
>>>> The branches of the switch after a call to 'do_unexpected_trap'
>>>> cannot return, but there is one path that may return, hence
>>>> only some clauses are marked with ASSERT_UNREACHABLE().
>>> I don't understand why this is necessary. The code should never be 
>>> reachable because do_unexpected_trap() is a noreturn().
>>>
>>> Cheers,
>>
>> It was meant as a safeguard against mistakes. 
> 
> I am confused about which mistakes you are trying to prevent. Are you 
> saying you are not trusting the noreturn attribute?
> 
> And if so, are you intending to add ASSERT_UNREACHABLE() after every 
> single call to noreturn functions?

Replying to myself. What's confusing the most is that in [1], you 
decided to not add the ASSERT_UNREACHABLE(). Yet the problem is similar.

I'd also like to point out that by removing the "break", then if the 
'noreturn' function turns out to return, then in prod build you would 
fallthrough to the next case. And who knows what's going to happen...

All of this really adds some confusion...

> 
>> There are MISRA rules that deal with this aspect (e.g., a noreturn 
>> function should not return), but they are not in Amendment 2, which is 
>> what Xen is following.
> Do you mind providing a bit more details about the rules you are talking 
> about? At least the numbers would be helpful.

[1] 
https://lore.kernel.org/xen-devel/c0a8a12e39d688e101936d221af0f8eeefabe352.1702283415.git.nicola.vetrini@bugseng.com/

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 16:11:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 16:11:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652363.1018163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCisX-0001Pp-Bb; Mon, 11 Dec 2023 16:11:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652363.1018163; Mon, 11 Dec 2023 16:11:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCisX-0001Pi-94; Mon, 11 Dec 2023 16:11:33 +0000
Received: by outflank-mailman (input) for mailman id 652363;
 Mon, 11 Dec 2023 16:11: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=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCisW-0001Pa-93
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 16:11:32 +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 f19fe65b-983f-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 17:11:30 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c19f5f822so26003165e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 08:11:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 q12-20020a05600c46cc00b0040b4c59f133sm13339488wmo.1.2023.12.11.08.11.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 08:11:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f19fe65b-983f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702311089; x=1702915889; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=WfFQ31DC5aksTM3eHzPZg7sBtAZMRidND5qGkoyKnho=;
        b=KrHY6OrfttLXoB+J9IHVM9fCI+N/wj6o6Rn0GNpy+KlvwNLtrSJGlxfYVj2j7gDfFY
         239PPw34+EJ0NnABx+pE/ZWeNWBq/MCB13BaeH/1oTDjhGltoTMoe1H157TUHuO3T3dT
         /lf8J+pBwfdOGOcFOQ/ufE+Qub8BeKvFFBilItwSzem8GtMVH94A8moGqZHgLFYvsgsf
         Tb2pRYUc9OcnHf/9WGNwUfDY7nFGL1qp6KxpFPjnjeDBCvefeZRLJ7Hx/FF7yqEoGFnP
         ZXg9Gh8LFiNQ02NYucz5b5D6BNV1cOeg0qbebD6qriN2NQPUL++9KMOi3Fcy/sa5xivq
         5/KQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702311089; x=1702915889;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=WfFQ31DC5aksTM3eHzPZg7sBtAZMRidND5qGkoyKnho=;
        b=LvnXXvASoEVHHBxqnzVk9KLR8Oz9zQxHqUM1fk5d86w3tsprqLqXb5v+DgJPfZA9im
         4Wb5moK9y02k2mLjLHBc+xv3bo+G8DdhnhR0FpPWIlKxAw6IRX4oUUwY7VQP/dtBSfxy
         DprSeIbwNGRNdPbwbt2Q345d6pn6HLZ5Okt2UJSHddPAa8GdotEyzWMSBVz0OgivIZLv
         yEwsUpu+X5hwEfYT38Pt0UIwx2NXuTzf5fFHOYEe5U+oQlMJt5PCc4TNpxBu70BbuLkS
         0BffrC3XPFlV9Y60LElDPcwUw9YZY09cXgHBY63l6ezOYaemfCfsLB/gaJ85FAoqI3Lf
         OH5A==
X-Gm-Message-State: AOJu0Yw5+uS9ML+zPDgsNFtIdYvIfsqJqMYngpWr8RiOolt9JzWT6UQb
	wlLLdy0fb9mewA8nQE1y2sM5
X-Google-Smtp-Source: AGHT+IERvdO5C+V+4N+h5P012dbDfI4pKyZ+DYusKF2vKCB8FmsNC+J46ayiLo9fiO91gS6XLFUZ9A==
X-Received: by 2002:a05:600c:35c8:b0:3ff:516b:5c4c with SMTP id r8-20020a05600c35c800b003ff516b5c4cmr2106448wmq.18.1702311089582;
        Mon, 11 Dec 2023 08:11:29 -0800 (PST)
Message-ID: <31c897d6-e196-4eed-998a-d776fbf041b7@suse.com>
Date: Mon, 11 Dec 2023 17:11:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen/arm: smmu: move phys_addr_t definition to
 linux-compat.h
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Rahul Singh <rahul.singh@arm.com>, xen-devel@lists.xenproject.org
References: <e525cd0a2770743e052819b2e14f7df50f801a23.1702303903.git.federico.serafini@bugseng.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: <e525cd0a2770743e052819b2e14f7df50f801a23.1702303903.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 15:54, Federico Serafini wrote:
> --- a/xen/include/xen/linux-compat.h
> +++ b/xen/include/xen/linux-compat.h
> @@ -16,5 +16,6 @@ typedef uint8_t __u8;
>  typedef int16_t __s16;
>  typedef int32_t __s32;
>  typedef int64_t __s64;
> +typedef paddr_t phys_addr_t;

Nit: Wants a blank line above the addition. If no need for a v2 arises,
I'd be happy to adjust on commit.

>  
>  #endif /* __XEN_LINUX_COMPAT_H__ */

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 16:21:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 16:21:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652368.1018179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCj26-0004oZ-Bh; Mon, 11 Dec 2023 16:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652368.1018179; Mon, 11 Dec 2023 16:21:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCj26-0004oS-6r; Mon, 11 Dec 2023 16:21:26 +0000
Received: by outflank-mailman (input) for mailman id 652368;
 Mon, 11 Dec 2023 16:21:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCj24-0004hQ-Cb
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 16:21:24 +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 535eb4b1-9841-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 17:21:23 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-33621d443a7so1141603f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 08:21:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o3-20020a5d6843000000b0033335333d88sm8922894wrw.43.2023.12.11.08.21.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 08:21:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 535eb4b1-9841-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702311683; x=1702916483; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ByyuRwf02EJ0AQRxJUjraQ8MHWftAUMjovhPH0eflic=;
        b=Ek2cCnpgA5MDg/xzFBS1ls6ioWfoOG93dqfDa1FCaK1ufS9yux+6Rz8D6kr1q60k80
         2V4a2Z22QE6i4nfU3eGeWJtSs5MSq854ZbBkjmfy2c5knMSciq/ELElMeBcj6jABzemt
         A82khWaD3B1eUa8WPNoc0ml4xoqfkR1mceY+0/npWZdk/sR4zd89eyHUpFdMIVjV98Qy
         TqXCRNtAcsehkbNZqaDtPxCdHlFjaS1TWTxINGWG+kC2z/eS4Yc8UnskfzinlD4tZ8ed
         eotcWF5QwuOpf1Ft3IXvikEzWOub42Lu8aERcvENq8HVkOOwuPE22U8MWClJ74n0KBKZ
         5HLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702311683; x=1702916483;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ByyuRwf02EJ0AQRxJUjraQ8MHWftAUMjovhPH0eflic=;
        b=ZcBcQunv0Hph0bVLCsAFMwlnqrIjQb0GmHlFxs5ddbwiHnXxlmDLUPwFLTMY3TpYhu
         kWKHLmVRRpcBuVJWFoX21nD+rxswo37aTBnt9HWEDtTq0ptPlqqOJkX9x5yylALrXy86
         y52r+w0r3ZYsOqRyghY3uhPdYh6P4wpM423w6Ei/9rJvZvGkZF0tpp5V/4myFRccS5so
         3wrT/pkP1FWLcJzBn9IOUr+PLZk+bFtQwZJjFuyrwIFmO8wFu1kzPE3d5BUYQiBgNPVN
         Mmd6hwJQT7HvNjQIJ4D1aHN/glRwcU0kYDQDXsrytkMhdUvLpohjrh00YAnUkaruB+CI
         qL2A==
X-Gm-Message-State: AOJu0Yx6XlNf6VApsjKhdiKxUS+b0pjFYyV5lccBPMHRBj2egHLPWd4f
	60f39uMLTM7hl7SLLGkSuMFv
X-Google-Smtp-Source: AGHT+IHGPuuIBUBt7p1PmLMyTA91ItVpROqJBl0GnFKEP6RHCVmXclrZEWkBC7gWahPScj9tXXyuAg==
X-Received: by 2002:a05:6000:92c:b0:333:3e39:8ff3 with SMTP id cx12-20020a056000092c00b003333e398ff3mr2227605wrb.57.1702311683050;
        Mon, 11 Dec 2023 08:21:23 -0800 (PST)
Message-ID: <6d39c8d1-36d4-471e-8d12-d7ff11b90a88@suse.com>
Date: Mon, 11 Dec 2023 17:21:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/pci: fix phantom error path in assign_device()
Content-Language: en-US
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Paul Durrant <paul@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20231211150520.299768-1-stewart.hildebrand@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: <20231211150520.299768-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 16:05, Stewart Hildebrand wrote:
> Currently if an iommu_call() for a phantom function fails, there is no
> indication of the failure. Propagate (but don't return) the error code
> from the most recently failed iommu_call() and emit a warning. While
> here, add a comment to clarify that the loop keeps iterating even when
> failure is encountered.
> 
> Fixes: cd7dedad8209 ("passthrough: simplify locking and logging")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> Unlike assign_device(), deassign_device() breaks out of the phantom loop
> when a failure is encountered and returns the error code. I'm curious
> why assign_device() and deassign_device() behave differently? It looks
> like it's been that way since
> 4e9950dc1bd2 ("IOMMU: add phantom function support"). I was initially
> inclined to break out of the loop and return the error code in
> assign_device(), but adhering to the principle of Chesterton's fence,
> I'd first like to understand why this is not currently being done.

It's been a long time, but seeing the same pattern for add/remove I think
the idea was that a device may still work with its phantom functions not
properly mapped in the IOMMU, whereas failure to unmap means a domain may
retain (partial) access to a device.

> I'm aware that I could have avoided introducing a tmp local variable by
> using the conditional operator with omitted middle operand:
> 
>     rc_nonfatal = iommu_call(...) ?: rc_nonfatal;
> 
> However, I explicitly chose not to do this to avoid relying on a GNU
> extension in yet another place.

Introducing a helper variable is certainly okay, if you think that's
better. However, in cases like ...

> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -1407,7 +1407,7 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
>  {
>      const struct domain_iommu *hd = dom_iommu(d);
>      struct pci_dev *pdev;
> -    int rc = 0;
> +    int rc = 0, rc_nonfatal = 0;
>  
>      if ( !is_iommu_enabled(d) )
>          return 0;
> @@ -1443,21 +1443,28 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
>                            pci_to_dev(pdev), flag)) )
>          goto done;
>  
> -    for ( ; pdev->phantom_stride; rc = 0 )
> +    while ( pdev->phantom_stride )
>      {
> +        int tmp;
> +
>          devfn += pdev->phantom_stride;
>          if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
> +        {
> +            devfn -= pdev->phantom_stride; /* Adjust for printing */
>              break;
> +        }
> -        rc = iommu_call(hd->platform_ops, assign_device, d, devfn,
> -                        pci_to_dev(pdev), flag);
> +        tmp = iommu_call(hd->platform_ops, assign_device, d, devfn,
> +                         pci_to_dev(pdev), flag);
> +        rc_nonfatal = tmp ? tmp : rc_nonfatal;

... this, I'm relatively certain most maintainers would agree that using
the extension will yield easier to read code. Plus there's no reason to
avoid extensions we use widely anyway, as long as there's no (reasonably
neat) way to express the same without using extensions.

Jan

> +        /* Keep iterating even if the iommu call failed. */
>      }
>  
>   done:
> -    if ( rc )
> +    if ( rc || rc_nonfatal )
>          printk(XENLOG_G_WARNING "%pd: assign (%pp) failed (%d)\n",
> -               d, &PCI_SBDF(seg, bus, devfn), rc);
> +               d, &PCI_SBDF(seg, bus, devfn), rc ? rc : rc_nonfatal);
>      /* The device is assigned to dom_io so mark it as quarantined */
> -    else if ( d == dom_io )
> +    if ( !rc && d == dom_io )
>          pdev->quarantine = true;
>  
>      return rc;
> 
> base-commit: 1403131596fa77663708f6baa0fee8bf7b95eb5a



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 16:52:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 16:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652398.1018200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCjW1-0004sS-QW; Mon, 11 Dec 2023 16:52:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652398.1018200; Mon, 11 Dec 2023 16:52:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCjW1-0004sL-Mh; Mon, 11 Dec 2023 16:52:21 +0000
Received: by outflank-mailman (input) for mailman id 652398;
 Mon, 11 Dec 2023 16:52:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=El9v=HW=suse.cz=jack@srs-se1.protection.inumbo.net>)
 id 1rCjW0-0004sF-OF
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 16:52:20 +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 a54482a1-9845-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 17:52:19 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 3A65722413;
 Mon, 11 Dec 2023 16:52:18 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 26D01134B0;
 Mon, 11 Dec 2023 16:52:18 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap2.dmz-prg2.suse.org with ESMTPSA id 1uB1CUI+d2XzFAAAn2gu4w
 (envelope-from <jack@suse.cz>); Mon, 11 Dec 2023 16:52:18 +0000
Received: by quack3.suse.cz (Postfix, from userid 1000)
 id A24EDA07E3; Mon, 11 Dec 2023 17:52:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a54482a1-9845-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702313538; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=rKyChubYQOLUssFrI8/z8khe3/ZNZIgTAEz8GE5ZHf8=;
	b=KF7fZ16GGZSNVIercO+eYb/zdHDuObhA9Onxa81BeqL3LeXtWEzJu+HqGO1kfleK3MMb9x
	jUugKN6DhI5mx4QzBnf4JH10nshySFJYQzot/cnv9bMAHLqxdYshFuHfymm3WHOgnJ+pWp
	7mgLY2fOp0ANNoP3kZ8g+YQPQxBLCuM=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702313538;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=rKyChubYQOLUssFrI8/z8khe3/ZNZIgTAEz8GE5ZHf8=;
	b=55atrZPOIWUHCEdWSl7m1h0isEhBA3PJTsKW7m5NfRjFtXZtvlPhx1kYCCQxQNMKERbIiQ
	03X5sRIKKKs3qZCg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702313538; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=rKyChubYQOLUssFrI8/z8khe3/ZNZIgTAEz8GE5ZHf8=;
	b=KF7fZ16GGZSNVIercO+eYb/zdHDuObhA9Onxa81BeqL3LeXtWEzJu+HqGO1kfleK3MMb9x
	jUugKN6DhI5mx4QzBnf4JH10nshySFJYQzot/cnv9bMAHLqxdYshFuHfymm3WHOgnJ+pWp
	7mgLY2fOp0ANNoP3kZ8g+YQPQxBLCuM=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702313538;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=rKyChubYQOLUssFrI8/z8khe3/ZNZIgTAEz8GE5ZHf8=;
	b=55atrZPOIWUHCEdWSl7m1h0isEhBA3PJTsKW7m5NfRjFtXZtvlPhx1kYCCQxQNMKERbIiQ
	03X5sRIKKKs3qZCg==
Date: Mon, 11 Dec 2023 17:52:17 +0100
From: Jan Kara <jack@suse.cz>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
	nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, p.raghav@samsung.com, hare@suse.de,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 01/18] block: add some bdev apis
Message-ID: <20231211165217.fil437byq7w2vcp7@quack3>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140552.973290-2-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211140552.973290-2-yukuai1@huaweicloud.com>
X-Spam-Level: 
X-Spam-Score: -1.58
X-Spam-Flag: NO
X-Spamd-Result: default: False [-1.26 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_HAM(-1.96)[94.82%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 TAGGED_RCPT(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 R_RATELIMIT(0.00)[to_ip_from(RLg7z3ka1nnoi3zj4x13ixbdfk)];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_GT_50(0.00)[50];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 MID_RHS_NOT_FQDN(0.50)[];
	 FREEMAIL_CC(0.00)[kernel.dk,citrix.com,suse.de,gmail.com,lazybastard.org,bootlin.com,nod.at,ti.com,linux.ibm.com,oracle.com,fb.com,toxicpanda.com,suse.com,zeniv.linux.org.uk,kernel.org,fluxnic.net,mit.edu,dilger.ca,redhat.com,infradead.org,linux-foundation.org,samsung.com,vger.kernel.org,lists.xenproject.org,lists.infradead.org,lists.ozlabs.org,lists.linux.dev,huawei.com];
	 RCVD_TLS_ALL(0.00)[];
	 SUSPICIOUS_RECIPS(1.50)[]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -1.26
Authentication-Results: smtp-out1.suse.de;
	none

On Mon 11-12-23 22:05:35, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@huawei.com>
> 
> Those apis will be used for other modules, so that bd_inode won't be
> accessed directly from other modules.
> 
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>

...

> +void bdev_associated_mapping(struct block_device *bdev,
> +			     struct address_space *mapping)
> +{
> +	mapping->host = bdev->bd_inode;
> +}

Here I'm not sure - is the helper really a win? It seems a bit obscure to
me. This initialization of another mapping for a bdev looks really special.

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:02:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:02:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652403.1018210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCjfV-0006zB-NQ; Mon, 11 Dec 2023 17:02:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652403.1018210; Mon, 11 Dec 2023 17:02:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCjfV-0006z4-KH; Mon, 11 Dec 2023 17:02:09 +0000
Received: by outflank-mailman (input) for mailman id 652403;
 Mon, 11 Dec 2023 17:02: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=El9v=HW=suse.cz=jack@srs-se1.protection.inumbo.net>)
 id 1rCjfU-0006yy-An
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:02:08 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 040000b6-9847-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 18:02:07 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 0C498220C2;
 Mon, 11 Dec 2023 17:02:06 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id DE24D134B0;
 Mon, 11 Dec 2023 17:02:05 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap2.dmz-prg2.suse.org with ESMTPSA id 4aw2No1Ad2WVFwAAn2gu4w
 (envelope-from <jack@suse.cz>); Mon, 11 Dec 2023 17:02:05 +0000
Received: by quack3.suse.cz (Postfix, from userid 1000)
 id 75B40A07E3; Mon, 11 Dec 2023 18:02:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 040000b6-9847-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702314126; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=PJTtFSWYty5rD2FaJe1sSOro2wxy5ZiVyedBxngtDfE=;
	b=BZxkpRai1ts2vNxggOB/v7gk2nFpyWllZj6onJ3Dt3DyV4dK7SJ0NrUdxxh3X5Z9WGTt6y
	LgObJv5hMlf6wrFSK29DFgotj76K8SY40h9VkgCncZW8AXiH6J728E3hbPThcRFSX/ChCf
	XAMYs+fHlCQ980tXDKIpcF4+GU5v7d4=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702314126;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=PJTtFSWYty5rD2FaJe1sSOro2wxy5ZiVyedBxngtDfE=;
	b=O90m8eEv67V1f7UQSuk3DTjKjeKk5FSTuqcYlJgLj+a2JH9D3Hl9xBcqww9wVkxTE8nKAg
	pQ2LJOMEzVb/m4AA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702314126; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=PJTtFSWYty5rD2FaJe1sSOro2wxy5ZiVyedBxngtDfE=;
	b=BZxkpRai1ts2vNxggOB/v7gk2nFpyWllZj6onJ3Dt3DyV4dK7SJ0NrUdxxh3X5Z9WGTt6y
	LgObJv5hMlf6wrFSK29DFgotj76K8SY40h9VkgCncZW8AXiH6J728E3hbPThcRFSX/ChCf
	XAMYs+fHlCQ980tXDKIpcF4+GU5v7d4=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702314126;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=PJTtFSWYty5rD2FaJe1sSOro2wxy5ZiVyedBxngtDfE=;
	b=O90m8eEv67V1f7UQSuk3DTjKjeKk5FSTuqcYlJgLj+a2JH9D3Hl9xBcqww9wVkxTE8nKAg
	pQ2LJOMEzVb/m4AA==
Date: Mon, 11 Dec 2023 18:02:01 +0100
From: Jan Kara <jack@suse.cz>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
	nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, p.raghav@samsung.com, hare@suse.de,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 18/18] ext4: use bdev apis
Message-ID: <20231211170201.ygdxtjm7y2jliev5@quack3>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140839.976021-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211140839.976021-1-yukuai1@huaweicloud.com>
X-Spam-Score: 12.98
X-Spam-Flag: NO
X-Spam-Level: ***
X-Spamd-Bar: +++
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=BZxkpRai;
	dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=O90m8eEv;
	dmarc=none;
	spf=softfail (smtp-out1.suse.de: 2a07:de40:b281:104:10:150:64:98 is neither permitted nor denied by domain of jack@suse.cz) smtp.mailfrom=jack@suse.cz
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [3.34 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 TO_DN_SOME(0.00)[];
	 R_SPF_SOFTFAIL(4.60)[~all];
	 R_RATELIMIT(0.00)[to_ip_from(RLa8hd5fybgmzcyr9mhbq8ey7y)];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.cz:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_GT_50(0.00)[50];
	 NEURAL_HAM_SHORT(-0.19)[-0.957];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-2.96)[99.82%];
	 ARC_NA(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 FROM_HAS_DN(0.00)[];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 TAGGED_RCPT(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 DMARC_NA(1.20)[suse.cz];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.cz:dkim,suse.cz:email,huawei.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 MID_RHS_NOT_FQDN(0.50)[];
	 FREEMAIL_CC(0.00)[kernel.dk,citrix.com,suse.de,gmail.com,lazybastard.org,bootlin.com,nod.at,ti.com,linux.ibm.com,oracle.com,fb.com,toxicpanda.com,suse.com,zeniv.linux.org.uk,kernel.org,fluxnic.net,mit.edu,dilger.ca,redhat.com,infradead.org,linux-foundation.org,samsung.com,vger.kernel.org,lists.xenproject.org,lists.infradead.org,lists.ozlabs.org,lists.linux.dev,huawei.com];
	 RCVD_TLS_ALL(0.00)[];
	 SUSPICIOUS_RECIPS(1.50)[]
X-Spam-Score: 3.34
X-Rspamd-Queue-Id: 0C498220C2
X-Spam-Flag: NO

On Mon 11-12-23 22:08:39, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@huawei.com>
> 
> Avoid to access bd_inode directly, prepare to remove bd_inode from
> block_devcie.
         ^^^ device
 
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:04:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:04:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652408.1018220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCjhR-0007gc-6k; Mon, 11 Dec 2023 17:04:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652408.1018220; Mon, 11 Dec 2023 17: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 1rCjhR-0007gV-2m; Mon, 11 Dec 2023 17:04:09 +0000
Received: by outflank-mailman (input) for mailman id 652408;
 Mon, 11 Dec 2023 17:04:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=El9v=HW=suse.cz=jack@srs-se1.protection.inumbo.net>)
 id 1rCjhQ-0007gN-00
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:04:08 +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 49d7b78b-9847-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 18:04:04 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 F0256221F7;
 Mon, 11 Dec 2023 17:04:03 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id DDDE7134B0;
 Mon, 11 Dec 2023 17:04:03 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap2.dmz-prg2.suse.org with ESMTPSA id oQUlNgNBd2USGAAAn2gu4w
 (envelope-from <jack@suse.cz>); Mon, 11 Dec 2023 17:04:03 +0000
Received: by quack3.suse.cz (Postfix, from userid 1000)
 id 8755AA07E3; Mon, 11 Dec 2023 18:04:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 49d7b78b-9847-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702314244; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=CD7iaV6cc3gb69jV7WBGvgMN69Ui+vx3V8xrfnjKK80=;
	b=QHrRQzZFHyCixSljPWLi9c+a8RDuVkjSNmKyh5JEg4Ol5KuJFqz2DG3MONDYikzoAuxHT+
	Nixxgu1ZhvM1mgEIxET6Zv8fO51VjH6Ng7bEadOtaVlTxUlICpc64StQ+cv2lvDUg0ZNn9
	cxdy6tF4LjQOzYcYE4zUVsKnyld80o8=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702314244;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=CD7iaV6cc3gb69jV7WBGvgMN69Ui+vx3V8xrfnjKK80=;
	b=L0Pt7Vp/szVN+ANcrxugX88Vb1aU+aWLGiA4jCuuIVtTB8I0bAGu3MfcVIy3ILQLdMK15b
	9O6hLlKY6jyHGuCA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702314244; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=CD7iaV6cc3gb69jV7WBGvgMN69Ui+vx3V8xrfnjKK80=;
	b=QHrRQzZFHyCixSljPWLi9c+a8RDuVkjSNmKyh5JEg4Ol5KuJFqz2DG3MONDYikzoAuxHT+
	Nixxgu1ZhvM1mgEIxET6Zv8fO51VjH6Ng7bEadOtaVlTxUlICpc64StQ+cv2lvDUg0ZNn9
	cxdy6tF4LjQOzYcYE4zUVsKnyld80o8=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702314244;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=CD7iaV6cc3gb69jV7WBGvgMN69Ui+vx3V8xrfnjKK80=;
	b=L0Pt7Vp/szVN+ANcrxugX88Vb1aU+aWLGiA4jCuuIVtTB8I0bAGu3MfcVIy3ILQLdMK15b
	9O6hLlKY6jyHGuCA==
Date: Mon, 11 Dec 2023 18:04:03 +0100
From: Jan Kara <jack@suse.cz>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
	nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, p.raghav@samsung.com, hare@suse.de,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 17/18] ext4: remove
 block_device_ejected()
Message-ID: <20231211170403.biwgd7l7pud7s7ip@quack3>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140833.975935-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211140833.975935-1-yukuai1@huaweicloud.com>
X-Spam-Score: 15.90
X-Spam-Flag: YES
X-Spamd-Result: default: False [18.87 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_SPF_SOFTFAIL(4.60)[~all];
	 R_RATELIMIT(0.00)[to_ip_from(RLa8hd5fybgmzcyr9mhbq8ey7y)];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.cz:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_GT_50(0.00)[50];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-0.00)[35.38%];
	 ARC_NA(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 TAGGED_RCPT(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 DMARC_NA(1.20)[suse.cz];
	 NEURAL_SPAM_SHORT(2.88)[0.961];
	 DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 NEURAL_SPAM_LONG(3.50)[1.000];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,huawei.com:email,suse.cz:dkim,suse.cz:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 MID_RHS_NOT_FQDN(0.50)[];
	 FREEMAIL_CC(0.00)[kernel.dk,citrix.com,suse.de,gmail.com,lazybastard.org,bootlin.com,nod.at,ti.com,linux.ibm.com,oracle.com,fb.com,toxicpanda.com,suse.com,zeniv.linux.org.uk,kernel.org,fluxnic.net,mit.edu,dilger.ca,redhat.com,infradead.org,linux-foundation.org,samsung.com,vger.kernel.org,lists.xenproject.org,lists.infradead.org,lists.ozlabs.org,lists.linux.dev,huawei.com];
	 RCVD_TLS_ALL(0.00)[];
	 SUSPICIOUS_RECIPS(1.50)[];
	 RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:98:from]
X-Spamd-Bar: ++++++++++++++++++
X-Spam-Level: ******************
X-Rspamd-Server: rspamd1
X-Spam-Flag: NO
X-Rspamd-Queue-Id: F0256221F7
X-Spam-Score: 18.87
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=QHrRQzZF;
	dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="L0Pt7Vp/";
	spf=softfail (smtp-out1.suse.de: 2a07:de40:b281:104:10:150:64:98 is neither permitted nor denied by domain of jack@suse.cz) smtp.mailfrom=jack@suse.cz;
	dmarc=none

On Mon 11-12-23 22:08:33, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@huawei.com>
> 
> block_device_ejected() is added by commit bdfe0cbd746a ("Revert
> "ext4: remove block_device_ejected"") in 2015. At that time 'bdi->wb'
> is destroyed synchronized from del_gendisk(), hence if ext4 is still
> mounted, and then mark_buffer_dirty() will reference destroyed 'wb'.
> However, such problem doesn't exist anymore:
> 
> - commit d03f6cdc1fc4 ("block: Dynamically allocate and refcount
> backing_dev_info") switch bdi to use refcounting;
> - commit 13eec2363ef0 ("fs: Get proper reference for s_bdi"), will grab
> additional reference of bdi while mounting, so that 'bdi->wb' will not
> be destroyed until generic_shutdown_super().
> 
> Hence remove this dead function block_device_ejected().
> 
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>

Agreed, this should not be needed anymore. We'll see whether this is true
also in practice :). Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:07:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:07:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652414.1018230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCjkz-0000Lk-Lk; Mon, 11 Dec 2023 17:07:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652414.1018230; Mon, 11 Dec 2023 17:07: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 1rCjkz-0000Ld-IV; Mon, 11 Dec 2023 17:07:49 +0000
Received: by outflank-mailman (input) for mailman id 652414;
 Mon, 11 Dec 2023 17:07: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=o7SW=HW=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rCjky-0000LU-9A
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:07:48 +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 cea522c0-9847-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 18:07:47 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c3fe6c08fso23299615e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 09:07:47 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 a19-20020a05600c349300b004064cd71aa8sm13526268wmq.34.2023.12.11.09.07.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 09:07:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cea522c0-9847-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702314467; x=1702919267; 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=BJEagWumWLB2GP2Qsz2b8wgMXMf5Jo9QfzdgiqViW10=;
        b=iBbm+01iGt5HWE8A9QeTTC7taddbeYrVCzMtTC6F23LDl50kZWBzyJMQxf4fVAQrMm
         EdUuUP5CAKIcdjciJCWEEyqqNwKsff5zW18HOPu24q8lXM4fYPC19uH4OZ7MdDeqyr9m
         Hz1tzudI0K7CprKZVnHoRQoLodTbx/E2Fmcsk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702314467; x=1702919267;
        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=BJEagWumWLB2GP2Qsz2b8wgMXMf5Jo9QfzdgiqViW10=;
        b=byhN/Z1RNzKlBvxyNL01D3rqnRD40TolMPHZ+bvJZKMHO6FZH27w9NZRik5o96EO+p
         jvLshRLOmKXUcyMbFGk26tI6v3w+W/Dvkos0J5m1LQc2d5hAFaSYuiVQ0WTaPmFrJSke
         N/lPzgH4G995HJ663cglKllOjElAVoYvOEhHW8FcI3596o+mnB1az1zV0MBjh1huc4m/
         qdpck54xgUYP5mZwscXibWaaatwiK7L1v4RDdw7vpvcCPeHIZnub0b94P90XSkI0V8Je
         RV+8wF3y31JPTrn4RyWfYD6Bm3jk9Vdq7USbe23gGpBims+gCNuyA6UciFUSDA5+YhSY
         UH7A==
X-Gm-Message-State: AOJu0Yxo5g23Fm+6kWPZ5gQzPSmvZ75eXctXhmzAgXaRhV/e2gtFrlii
	xmdaQ/PGub/8xLooB9GIBXdpSg==
X-Google-Smtp-Source: AGHT+IH2nz98Z3h8U250fwIYsQsC3qmeJv9TTXM6k5FbrX9zeDAh4hCjF8v1nE91QCtLxAhOId5ETA==
X-Received: by 2002:a1c:790a:0:b0:40b:5e59:99e6 with SMTP id l10-20020a1c790a000000b0040b5e5999e6mr1749108wme.262.1702314466777;
        Mon, 11 Dec 2023 09:07:46 -0800 (PST)
Date: Mon, 11 Dec 2023 17:07:46 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	George Dunlap <George.Dunlap@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Julien Grall <julien@xen.org>
Subject: Re: [PATCH] tools/pygrub: Drop compatibility symlink
Message-ID: <761cd868-10f7-49ea-ba3e-ba61bac5ce83@perard>
References: <20231123163023.2158134-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231123163023.2158134-1-andrew.cooper3@citrix.com>

On Thu, Nov 23, 2023 at 04:30:23PM +0000, Andrew Cooper wrote:
> This was declared deprecated in commit 10c88f1c18b7 ("tools: Install pv
> bootloaders in libexec rather than /usr/bin") in 2012

This commit only speak about wanting to deprecate the full path to
`pygrub`, and calling something deprecated in a commit message alone
isn't very friendly. But there's a better commit calling for the
deprecation:
c31d6a7ee2ea ("libxl: Warn that /usr/bin/pygrub is deprecated")
even if it's only in a libxl log message at run time.

I hope we have a better schema to deprecate things.

> Take it out fully now, 11 years later.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Beside the commit message that could call for a better commit, patch
looks good:
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:11:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:11:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652421.1018240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCjoZ-0002uZ-4I; Mon, 11 Dec 2023 17:11:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652421.1018240; Mon, 11 Dec 2023 17:11: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 1rCjoZ-0002uS-1M; Mon, 11 Dec 2023 17:11:31 +0000
Received: by outflank-mailman (input) for mailman id 652421;
 Mon, 11 Dec 2023 17:11:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=o7SW=HW=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rCjoX-0002t5-7f
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:11:29 +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 51a2e66d-9848-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 18:11:27 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c3984f0cdso30375215e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 09:11:27 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 l6-20020a05600c4f0600b0040b45282f88sm15765023wmq.36.2023.12.11.09.11.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 09:11:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51a2e66d-9848-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702314686; x=1702919486; 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=PBi9RoG7GrYJVhJ238mTXZgVSQnygV0KBbXwbLs6I/w=;
        b=eJ9yfZMk/r3XjOXSUQ0DavbCHRK/IqLhaJNC+3MV/G4au143U6xild0iPp1pmdt4Hc
         SgE9P52/2DMJcgErrpAPxzNKi/Yhwpa/RidZRzN7JouUQE4UQmUYMoAL9gF9pkBZvZh+
         Sbj9th8kb49R/u9NfdNrKJxAUn1R3mjTW0Drg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702314686; x=1702919486;
        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=PBi9RoG7GrYJVhJ238mTXZgVSQnygV0KBbXwbLs6I/w=;
        b=eeDUt6QYz0WsGBgsIvrIsp1HWBFJBliubMl7fTi0BqkjPmqWXSIK7/sHOZI5QN384b
         uE222PSUzY7psvFOyOfovLL436M3KF2YyixjNDilk1nRpe4WfJjM9NRi7/xwZyx49Vcf
         34xiMGapVekTa5aqPDhNqEf/toq3Dp/cNiI7V2yoxz1x9z3EO0mBhxPmXkRQauPOVZTS
         0PUBw/Ru2okoARU9/PdCPP52P89NadDyqYSPqQ1g6nyvl1C9lPqoY4ghC8rd2LNkuDNz
         9Us1UIIb5t+f1JAbVeB8tD9DxKDG5OuKT2WEdH68UV9LXqqtTYYmElnDH5Azc6JfTrPE
         KbQQ==
X-Gm-Message-State: AOJu0YzhIXLevE9Y9QZ26popchnMY0HYSTIhY+fg2jwAnKYw3evtD0yk
	nNOj1kVG7Fotr/xOcDBKZ8EjGw==
X-Google-Smtp-Source: AGHT+IFxa28KcVWgnunpPeNsbIpAGfRSzUfhQUgMJmbukz+o+v3aiXykQ6QVc7XKmJ3ZJqvt59HdmA==
X-Received: by 2002:a7b:c8c8:0:b0:40b:5e21:dd44 with SMTP id f8-20020a7bc8c8000000b0040b5e21dd44mr2677240wml.114.1702314686563;
        Mon, 11 Dec 2023 09:11:26 -0800 (PST)
Date: Mon, 11 Dec 2023 17:11:25 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: George Dunlap <george.dunlap@cloud.com>
Cc: Julien Grall <julien@xen.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Xen-devel <xen-devel@lists.xenproject.org>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH] tools/pygrub: Drop compatibility symlink
Message-ID: <054ff206-4510-4d52-b1b8-b80adc25b4e1@perard>
References: <20231123163023.2158134-1-andrew.cooper3@citrix.com>
 <232da84f-08d0-4bec-9eca-0bef023dae37@citrix.com>
 <b0133fa8-a774-4587-a1ed-4059f97970f9@xen.org>
 <CA+zSX=aHisr_MKEqXpe2DH9PGF=sTpqZrOQhkss623ttfRWZXg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CA+zSX=aHisr_MKEqXpe2DH9PGF=sTpqZrOQhkss623ttfRWZXg@mail.gmail.com>

On Fri, Dec 08, 2023 at 03:43:16PM +0000, George Dunlap wrote:
> On Fri, Dec 8, 2023 at 3:36â€¯PM Julien Grall <julien@xen.org> wrote:
> 
> > See above, I think this code is under the remit of Anthony. You haven't
> > CCed him so no surprise no-one answered.
> 
> Additionally, my old citrix address *was* cc'd, but I only have the
> 'ping', not the original email in my work mailbox.
> 
> I'm tempted to suggest adding a hack to libxl, so that /usr/bin/pygrub
> automatically falls back to the libexec directory if /usr/bin/pygrub
> doesn't exist.  (I'd be happy to code something up if we decided to go
> that route.). OTOH, I can see the argument that 11 years and the
> CHANGELOG entry is enough.

Well, at least you have printed a warning log message to all of those
whom still use the full old path to pygrub, with
    c31d6a7ee2ea ("libxl: Warn that /usr/bin/pygrub is deprecated")
So, I don't think more than that is needed. At least, now they would
also get an error saying /usr/bin/pygrub wasn't found, I think.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:12:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:12:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652424.1018250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCjpm-0003os-Eg; Mon, 11 Dec 2023 17:12:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652424.1018250; Mon, 11 Dec 2023 17:12: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 1rCjpm-0003ol-Bi; Mon, 11 Dec 2023 17:12:46 +0000
Received: by outflank-mailman (input) for mailman id 652424;
 Mon, 11 Dec 2023 17:12:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uu+c=HW=casper.srs.infradead.org=BATV+80eef5cf954a3a940104+7414+infradead.org+dwmw2@srs-se1.protection.inumbo.net>)
 id 1rCjpl-0003of-4w
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:12:45 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f128143-9848-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 18:12:44 +0100 (CET)
Received: from [2001:8b0:10b:5:53ad:e4dd:6d01:7a89]
 (helo=u3832b3a9db3152.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux))
 id 1rCjph-0092Yh-1P; Mon, 11 Dec 2023 17:12: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: 7f128143-9848-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=wxtzzQT84YFpQIhxEg5rDzBpGQU1WiDZBJ20OR12dQw=; b=CzMPTr8k5vo0tA8ktGuC5sZ1ZY
	uEVUaZ7sJKE00dWtkBcq4P5omTnuT6JVSiQ1oEfZv0PTcw9NL3RltLB0NvGkGYgB0QnxYye+HqkZE
	k3F78jjJreykuN1pmPJE6sfkQBX0EDKI0LjfZtLNIO0dQr+gSi0glaKxeXlzMsXEj9CrWM7fUV73p
	Nl4gp9EIp2bkXVc9SCrBW+nnt1oC1xoYd7O2KhPxn1xiqML6fpig6P9KqlZP/fzAbkd5bLz8qvLr2
	AJA6TBtuN9F6BZ00gcL7CirQiwcQtOXuK0QA1efd/cGReCIUev1DOhunV+R4MJle5TDPLE2W0O3z1
	1mQ5AFVQ==;
Message-ID: <2e5395e6214a08056f112c46fdfab3eaa6f8dd45.camel@infradead.org>
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
From: David Woodhouse <dwmw2@infradead.org>
To: George Dunlap <george.dunlap@cloud.com>, Stefano Stabellini
	 <sstabellini@kernel.org>
Cc: Kelly Choi <kelly.choi@cloud.com>, xen-devel@lists.xenproject.org, 
	committers@xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
Date: Mon, 11 Dec 2023 17:12:40 +0000
In-Reply-To: <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
References: 
	<CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
	 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
	 <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-ihaFu6y+tcu9ChGBwKlQ"
User-Agent: Evolution 3.44.4-0ubuntu2 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html


--=-ihaFu6y+tcu9ChGBwKlQ
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2023-12-01 at 10:27 +0000, George Dunlap wrote:
>=20
> FWIW I think a "five-point survey" would probably have been somewhat bett=
er:
>=20
> Regarding the review insisting that the word "broken" be removed from
> the updated documentation to the old hypercall:

(=E2=9C=94) I think this sort of enforcement is unreasonable and is harming=
 the
community

Honestly, this latest example just epitomises the reason I've dedicated
the last two years of my life to hosting Xen guests on something
*other* than Xen itself.

I *want* to contribute, to help make Xen better. We have code we'd love
to give back. I'd love to see Xen upstream supporting live update and
guest transparent live migration (oops, even that term got gratuitously
bikeshedded, didn't it?)

But I cannot, and will not, subject my engineers to this.

I've even got long-time Xen contributors on my team saying that they're
done with it. I certainly can't ask junior engineers to operate in this
environment.

I don't say this to be combative. I genuinely want the Xen community to
improve and to become as welcoming and productive as it can be.

Perhaps we do need a TAB to help keep things working smoothly, and help
stamp out the problematic behaviour? This isn't healthy.

--=-ihaFu6y+tcu9ChGBwKlQ
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEkQw
ggYQMIID+KADAgECAhBNlCwQ1DvglAnFgS06KwZPMA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQG
EwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAcBgNVBAoT
FVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eTAeFw0xODExMDIwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMIGWMQswCQYDVQQG
EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYD
VQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50
aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAyjztlApB/975Rrno1jvm2pK/KxBOqhq8gr2+JhwpKirSzZxQgT9tlC7zl6hn1fXjSo5MqXUf
ItMltrMaXqcESJuK8dtK56NCSrq4iDKaKq9NxOXFmqXX2zN8HHGjQ2b2Xv0v1L5Nk1MQPKA19xeW
QcpGEGFUUd0kN+oHox+L9aV1rjfNiCj3bJk6kJaOPabPi2503nn/ITX5e8WfPnGw4VuZ79Khj1YB
rf24k5Ee1sLTHsLtpiK9OjG4iQRBdq6Z/TlVx/hGAez5h36bBJMxqdHLpdwIUkTqT8se3ed0PewD
ch/8kHPo5fZl5u1B0ecpq/sDN/5sCG52Ds+QU5O5EwIDAQABo4IBZDCCAWAwHwYDVR0jBBgwFoAU
U3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFAnA8vwL2pTbX/4r36iZQs/J4K0AMA4GA1Ud
DwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2Vy
dHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYGCCsGAQUF
BwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJT
QUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0G
CSqGSIb3DQEBDAUAA4ICAQBBRHUAqznCFfXejpVtMnFojADdF9d6HBA4kMjjsb0XMZHztuOCtKF+
xswhh2GqkW5JQrM8zVlU+A2VP72Ky2nlRA1GwmIPgou74TZ/XTarHG8zdMSgaDrkVYzz1g3nIVO9
IHk96VwsacIvBF8JfqIs+8aWH2PfSUrNxP6Ys7U0sZYx4rXD6+cqFq/ZW5BUfClN/rhk2ddQXyn7
kkmka2RQb9d90nmNHdgKrwfQ49mQ2hWQNDkJJIXwKjYA6VUR/fZUFeCUisdDe/0ABLTI+jheXUV1
eoYV7lNwNBKpeHdNuO6Aacb533JlfeUHxvBz9OfYWUiXu09sMAviM11Q0DuMZ5760CdO2VnpsXP4
KxaYIhvqPqUMWqRdWyn7crItNkZeroXaecG03i3mM7dkiPaCkgocBg0EBYsbZDZ8bsG3a08LwEsL
1Ygz3SBsyECa0waq4hOf/Z85F2w2ZpXfP+w8q4ifwO90SGZZV+HR/Jh6rEaVPDRF/CEGVqR1hiuQ
OZ1YL5ezMTX0ZSLwrymUE0pwi/KDaiYB15uswgeIAcA6JzPFf9pLkAFFWs1QNyN++niFhsM47qod
x/PL+5jR87myx5uYdBEQkkDc+lKB1Wct6ucXqm2EmsaQ0M95QjTmy+rDWjkDYdw3Ms6mSWE3Bn7i
5ZgtwCLXgAIe5W8mybM2JzCCBhQwggT8oAMCAQICEQDGvhmWZ0DEAx0oURL6O6l+MA0GCSqGSIb3
DQEBCwUAMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
VQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28g
UlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMB4XDTIyMDEwNzAw
MDAwMFoXDTI1MDEwNjIzNTk1OVowJDEiMCAGCSqGSIb3DQEJARYTZHdtdzJAaW5mcmFkZWFkLm9y
ZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQ3GpC2bomUqk+91wLYBzDMcCj5C9m6
oZaHwvmIdXftOgTbCJXADo6G9T7BBAebw2JV38EINgKpy/ZHh7htyAkWYVoFsFPrwHounto8xTsy
SSePMiPlmIdQ10BcVSXMUJ3Juu16GlWOnAMJY2oYfEzmE7uT9YgcBqKCo65pTFmOnR/VVbjJk4K2
xE34GC2nAdUQkPFuyaFisicc6HRMOYXPuF0DuwITEKnjxgNjP+qDrh0db7PAjO1D4d5ftfrsf+kd
RR4gKVGSk8Tz2WwvtLAroJM4nXjNPIBJNT4w/FWWc/5qPHJy2U+eITZ5LLE5s45mX2oPFknWqxBo
bQZ8a9dsZ3dSPZBvE9ZrmtFLrVrN4eo1jsXgAp1+p7bkfqd3BgBEmfsYWlBXO8rVXfvPgLs32VdV
NZxb/CDWPqBsiYv0Hv3HPsz07j5b+/cVoWqyHDKzkaVbxfq/7auNVRmPB3v5SWEsH8xi4Bez2V9U
KxfYCnqsjp8RaC2/khxKt0A552Eaxnz/4ly/2C7wkwTQnBmdlFYhAflWKQ03Ufiu8t3iBE3VJbc2
5oMrglj7TRZrmKq3CkbFnX0fyulB+kHimrt6PIWn7kgyl9aelIl6vtbhMA+l0nfrsORMa4kobqQ5
C5rveVgmcIad67EDa+UqEKy/GltUwlSh6xy+TrK1tzDvAgMBAAGjggHMMIIByDAfBgNVHSMEGDAW
gBQJwPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUzMeDMcimo0oz8o1R1Nver3ZVpSkwDgYD
VR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsGAQUFBwMC
MEAGA1UdIAQ5MDcwNQYMKwYBBAGyMQECAQEBMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGln
by5jb20vQ1BTMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGln
b1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcmwwgYoGCCsGAQUFBwEB
BH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBQ2xpZW50
QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAjBggrBgEFBQcwAYYXaHR0cDovL29j
c3Auc2VjdGlnby5jb20wHgYDVR0RBBcwFYETZHdtdzJAaW5mcmFkZWFkLm9yZzANBgkqhkiG9w0B
AQsFAAOCAQEAyW6MUir5dm495teKqAQjDJwuFCi35h4xgnQvQ/fzPXmtR9t54rpmI2TfyvcKgOXp
qa7BGXNFfh1JsqexVkIqZP9uWB2J+uVMD+XZEs/KYNNX2PvIlSPrzIB4Z2wyIGQpaPLlYflrrVFK
v9CjT2zdqvy2maK7HKOQRt3BiJbVG5lRiwbbygldcALEV9ChWFfgSXvrWDZspnU3Gjw/rMHrGnql
Htlyebp3pf3fSS9kzQ1FVtVIDrL6eqhTwJxe+pXSMMqFiN0whpBtXdyDjzBtQTaZJ7zTT/vlehc/
tDuqZwGHm/YJy883Ll+GP3NvOkgaRGWEuYWJJ6hFCkXYjyR9IzCCBhQwggT8oAMCAQICEQDGvhmW
Z0DEAx0oURL6O6l+MA0GCSqGSIb3DQEBCwUAMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0
ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJl
IEVtYWlsIENBMB4XDTIyMDEwNzAwMDAwMFoXDTI1MDEwNjIzNTk1OVowJDEiMCAGCSqGSIb3DQEJ
ARYTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQ3
GpC2bomUqk+91wLYBzDMcCj5C9m6oZaHwvmIdXftOgTbCJXADo6G9T7BBAebw2JV38EINgKpy/ZH
h7htyAkWYVoFsFPrwHounto8xTsySSePMiPlmIdQ10BcVSXMUJ3Juu16GlWOnAMJY2oYfEzmE7uT
9YgcBqKCo65pTFmOnR/VVbjJk4K2xE34GC2nAdUQkPFuyaFisicc6HRMOYXPuF0DuwITEKnjxgNj
P+qDrh0db7PAjO1D4d5ftfrsf+kdRR4gKVGSk8Tz2WwvtLAroJM4nXjNPIBJNT4w/FWWc/5qPHJy
2U+eITZ5LLE5s45mX2oPFknWqxBobQZ8a9dsZ3dSPZBvE9ZrmtFLrVrN4eo1jsXgAp1+p7bkfqd3
BgBEmfsYWlBXO8rVXfvPgLs32VdVNZxb/CDWPqBsiYv0Hv3HPsz07j5b+/cVoWqyHDKzkaVbxfq/
7auNVRmPB3v5SWEsH8xi4Bez2V9UKxfYCnqsjp8RaC2/khxKt0A552Eaxnz/4ly/2C7wkwTQnBmd
lFYhAflWKQ03Ufiu8t3iBE3VJbc25oMrglj7TRZrmKq3CkbFnX0fyulB+kHimrt6PIWn7kgyl9ae
lIl6vtbhMA+l0nfrsORMa4kobqQ5C5rveVgmcIad67EDa+UqEKy/GltUwlSh6xy+TrK1tzDvAgMB
AAGjggHMMIIByDAfBgNVHSMEGDAWgBQJwPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUzMeD
Mcimo0oz8o1R1Nver3ZVpSkwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYw
FAYIKwYBBQUHAwQGCCsGAQUFBwMCMEAGA1UdIAQ5MDcwNQYMKwYBBAGyMQECAQEBMCUwIwYIKwYB
BQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9j
cmwuc2VjdGlnby5jb20vU2VjdGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1h
aWxDQS5jcmwwgYoGCCsGAQUFBwEBBH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdv
LmNvbS9TZWN0aWdvUlNBQ2xpZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAj
BggrBgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wHgYDVR0RBBcwFYETZHdtdzJAaW5m
cmFkZWFkLm9yZzANBgkqhkiG9w0BAQsFAAOCAQEAyW6MUir5dm495teKqAQjDJwuFCi35h4xgnQv
Q/fzPXmtR9t54rpmI2TfyvcKgOXpqa7BGXNFfh1JsqexVkIqZP9uWB2J+uVMD+XZEs/KYNNX2PvI
lSPrzIB4Z2wyIGQpaPLlYflrrVFKv9CjT2zdqvy2maK7HKOQRt3BiJbVG5lRiwbbygldcALEV9Ch
WFfgSXvrWDZspnU3Gjw/rMHrGnqlHtlyebp3pf3fSS9kzQ1FVtVIDrL6eqhTwJxe+pXSMMqFiN0w
hpBtXdyDjzBtQTaZJ7zTT/vlehc/tDuqZwGHm/YJy883Ll+GP3NvOkgaRGWEuYWJJ6hFCkXYjyR9
IzGCBMcwggTDAgEBMIGsMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVz
dGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMT
NVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhEA
xr4ZlmdAxAMdKFES+jupfjANBglghkgBZQMEAgEFAKCCAeswGAYJKoZIhvcNAQkDMQsGCSqGSIb3
DQEHATAcBgkqhkiG9w0BCQUxDxcNMjMxMjExMTcxMjQwWjAvBgkqhkiG9w0BCQQxIgQgYQhrdIC5
uLp49OPmfAe26sU27n/A0GLPSQdUFG06uDowgb0GCSsGAQQBgjcQBDGBrzCBrDCBljELMAkGA1UE
BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYG
A1UEChMPU2VjdGlnbyBMaW1pdGVkMT4wPAYDVQQDEzVTZWN0aWdvIFJTQSBDbGllbnQgQXV0aGVu
dGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQQIRAMa+GZZnQMQDHShREvo7qX4wgb8GCyqGSIb3
DQEJEAILMYGvoIGsMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy
MRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNl
Y3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhEAxr4Z
lmdAxAMdKFES+jupfjANBgkqhkiG9w0BAQEFAASCAgBWwG9FWjRlAbVYv1Po1j21OZvLgbI3kPb5
tn9w4KCn8oadg2JB8qhTl3psVtBqwUmkG2f6jm3JoLKiM7+dWeErR2gAeTGF+1khCgOy33qWasJ/
W4vNM/YNn3/NcMcYzAJ24Xlhx24YDbbmiMW/RkQCUVSPCQLni/iLfNoTY2ve/pks/HgOCZX2SYG5
5K6g9h4uftMg7c34qg4oKWtxLJAoXyklvcqUhLJcuaHCJ7EEgMqKDkxBJrbe9vzgunq7SGbWUzIr
5Eo1x9wSSmeN4QNYz4BHteI8mxgv3tffbx66uM6FvtkLTLX0RnmUKS5SrzF6ZJHor+2vpneJ4xoX
3VN7aJFB6UtchhGBNUo9/zvfVGKzUEfk3bQYWmdHKSZjeCtTMkO/GpWUEIlEO8blYNLQZQwScjdn
tl85Hq5l5FPcylR7CM7XavFywcuzFATunjIeeH6wGyFV4qzyHfwuQei+jmYp06XM38s/vWSE8qk3
iDDL81ylwqdA0lAcpGyV4bpxBH5Pspf1wJw1+KP4T55GdaKvZP0DISINvJP2zg0afaxTb6+zTQll
uJ6NTT3R2JoQdp8j+3O6rVaH2TdukI9QJJPJ20TUIMhUkDck8thvgWqvO0F/5BTfvNe2qwb0J2J4
D7zSvwKr/97lYFRUYcYQrUzOEXnvoXX79DGmDV7ikwAAAAAAAA==


--=-ihaFu6y+tcu9ChGBwKlQ--


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:16:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:16:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652431.1018260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCjtd-0004hW-UV; Mon, 11 Dec 2023 17:16:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652431.1018260; Mon, 11 Dec 2023 17:16: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 1rCjtd-0004hP-RV; Mon, 11 Dec 2023 17:16:45 +0000
Received: by outflank-mailman (input) for mailman id 652431;
 Mon, 11 Dec 2023 17:16: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=El9v=HW=suse.cz=jack@srs-se1.protection.inumbo.net>)
 id 1rCjtc-0004hJ-Ey
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:16:44 +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 0dc3ed1e-9849-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 18:16:43 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 DB0321FBA5;
 Mon, 11 Dec 2023 17:16:41 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id A98A0134B0;
 Mon, 11 Dec 2023 17:16:41 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap2.dmz-prg2.suse.org with ESMTPSA id /jojKflDd2VgGwAAn2gu4w
 (envelope-from <jack@suse.cz>); Mon, 11 Dec 2023 17:16:41 +0000
Received: by quack3.suse.cz (Postfix, from userid 1000)
 id C28F8A07E3; Mon, 11 Dec 2023 18:16:40 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0dc3ed1e-9849-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702315002; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=dMM9MhtfbhX3ac2GwN2bNfaO9rysjcTZQxYvC7ZInFI=;
	b=iayBRXoRt1U9Tx06ZmstRbm2XveoOAJmb3H+XQyGqUT3P+zbvLC3fS/O5gdFufKvW1RJbL
	HMAZWuUZsMPyvABJ9A7pruDU4AcTDQzuM5BmFOcMpPg01XOr3SfxgwFxns6FxAg/2+qgul
	KHf+4YKjdBDiM3v+jN0kV6uOJtPm9mE=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702315002;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=dMM9MhtfbhX3ac2GwN2bNfaO9rysjcTZQxYvC7ZInFI=;
	b=gq4/V/ApNSLd8arCAs4Cj0nWb4kzCJLFsxslfo8GpIg7puEZ0qyubbSAqtkLM29rFvPuF8
	ndIRhrA/lTNRnYCA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702315001; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=dMM9MhtfbhX3ac2GwN2bNfaO9rysjcTZQxYvC7ZInFI=;
	b=JWHgZqlEi7oldnItx6+BGXsreHUxl8R9ft/84suL5jG5LaRmqAKzMeY6LughDoVWTxSxb9
	rW5hIssnw8gI0rAEpLlvK9UAsO7fbGs1YIoSbw2xr16Qo/X5Ibe7jENGrdL9fXsCKZpUqp
	y3jHwJaYT0d5U78xPtPgc7mX/juPtCk=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702315001;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=dMM9MhtfbhX3ac2GwN2bNfaO9rysjcTZQxYvC7ZInFI=;
	b=LOT2l8ZTpVnEcJMtm2mTePZcOc0vT6wlx3GQAnb7ighTwutmzdGsMJruFV/tFdhmn/grFg
	7iaP+/qqGQPJ6eBQ==
Date: Mon, 11 Dec 2023 18:16:40 +0100
From: Jan Kara <jack@suse.cz>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
	nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, p.raghav@samsung.com, hare@suse.de,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 16/18] ext4: use new helper to read
 sb block
Message-ID: <20231211171640.teuuedr3dqzsvsmw@quack3>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140808.975527-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211140808.975527-1-yukuai1@huaweicloud.com>
X-Spam-Flag: NO
X-Spam-Score: 5.80
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: *****
X-Spam-Score: 5.81
X-Spamd-Result: default: False [5.81 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 TAGGED_RCPT(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 R_RATELIMIT(0.00)[to_ip_from(RLg7z3ka1nnoi3zj4x13ixbdfk)];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 NEURAL_HAM_SHORT(-0.19)[-0.963];
	 RCPT_COUNT_GT_50(0.00)[50];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.cz:email,huawei.com:email,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 MID_RHS_NOT_FQDN(0.50)[];
	 FREEMAIL_CC(0.00)[kernel.dk,citrix.com,suse.de,gmail.com,lazybastard.org,bootlin.com,nod.at,ti.com,linux.ibm.com,oracle.com,fb.com,toxicpanda.com,suse.com,zeniv.linux.org.uk,kernel.org,fluxnic.net,mit.edu,dilger.ca,redhat.com,infradead.org,linux-foundation.org,samsung.com,vger.kernel.org,lists.xenproject.org,lists.infradead.org,lists.ozlabs.org,lists.linux.dev,huawei.com];
	 RCVD_TLS_ALL(0.00)[];
	 SUSPICIOUS_RECIPS(1.50)[]
X-Spam-Flag: NO

On Mon 11-12-23 22:08:08, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@huawei.com>
> 
> Remove __ext4_sb_bread_gfp() and ext4_buffer_uptodate() that is defined
> by ext4, and convert to use common helper __bread_gfp2() and
> buffer_uptodate_or_error().
> 
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  fs/ext4/ext4.h    | 13 -------------
>  fs/ext4/inode.c   |  8 ++++----
>  fs/ext4/super.c   | 45 ++++++++++-----------------------------------
>  fs/ext4/symlink.c |  2 +-
>  4 files changed, 15 insertions(+), 53 deletions(-)
> 
> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
> index a5d784872303..8377f6c5264f 100644
> --- a/fs/ext4/ext4.h
> +++ b/fs/ext4/ext4.h
> @@ -3824,19 +3824,6 @@ extern const struct iomap_ops ext4_iomap_ops;
>  extern const struct iomap_ops ext4_iomap_overwrite_ops;
>  extern const struct iomap_ops ext4_iomap_report_ops;
>  
> -static inline int ext4_buffer_uptodate(struct buffer_head *bh)
> -{
> -	/*
> -	 * If the buffer has the write error flag, we have failed
> -	 * to write out data in the block.  In this  case, we don't
> -	 * have to read the block because we may read the old data
> -	 * successfully.
> -	 */
> -	if (buffer_write_io_error(bh))
> -		set_buffer_uptodate(bh);
> -	return buffer_uptodate(bh);
> -}
> -
>  #endif	/* __KERNEL__ */
>  
>  #define EFSBADCRC	EBADMSG		/* Bad CRC detected */
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index 61277f7f8722..efb0af6f02f7 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -887,7 +887,7 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode,
>  	bh = ext4_getblk(handle, inode, block, map_flags);
>  	if (IS_ERR(bh))
>  		return bh;
> -	if (!bh || ext4_buffer_uptodate(bh))
> +	if (!bh || buffer_uptodate_or_error(bh))
>  		return bh;
>  
>  	ret = ext4_read_bh_lock(bh, REQ_META | REQ_PRIO, true);
> @@ -915,7 +915,7 @@ int ext4_bread_batch(struct inode *inode, ext4_lblk_t block, int bh_count,
>  
>  	for (i = 0; i < bh_count; i++)
>  		/* Note that NULL bhs[i] is valid because of holes. */
> -		if (bhs[i] && !ext4_buffer_uptodate(bhs[i]))
> +		if (bhs[i] && !buffer_uptodate_or_error(bhs[i]))
>  			ext4_read_bh_lock(bhs[i], REQ_META | REQ_PRIO, false);
>  
>  	if (!wait)
> @@ -4392,11 +4392,11 @@ static int __ext4_get_inode_loc(struct super_block *sb, unsigned long ino,
>  	bh = sb_getblk(sb, block);
>  	if (unlikely(!bh))
>  		return -ENOMEM;
> -	if (ext4_buffer_uptodate(bh))
> +	if (buffer_uptodate_or_error(bh))
>  		goto has_buffer;
>  
>  	lock_buffer(bh);
> -	if (ext4_buffer_uptodate(bh)) {
> +	if (buffer_uptodate_or_error(bh)) {
>  		/* Someone brought it uptodate while we waited */
>  		unlock_buffer(bh);
>  		goto has_buffer;
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index c5fcf377ab1f..ae41204f52d4 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -180,7 +180,7 @@ void ext4_read_bh_nowait(struct buffer_head *bh, blk_opf_t op_flags,
>  {
>  	BUG_ON(!buffer_locked(bh));
>  
> -	if (ext4_buffer_uptodate(bh)) {
> +	if (buffer_uptodate_or_error(bh)) {
>  		unlock_buffer(bh);
>  		return;
>  	}
> @@ -191,7 +191,7 @@ int ext4_read_bh(struct buffer_head *bh, blk_opf_t op_flags, bh_end_io_t *end_io
>  {
>  	BUG_ON(!buffer_locked(bh));
>  
> -	if (ext4_buffer_uptodate(bh)) {
> +	if (buffer_uptodate_or_error(bh)) {
>  		unlock_buffer(bh);
>  		return 0;
>  	}
> @@ -214,49 +214,24 @@ int ext4_read_bh_lock(struct buffer_head *bh, blk_opf_t op_flags, bool wait)
>  	return ext4_read_bh(bh, op_flags, NULL);
>  }
>  
> -/*
> - * This works like __bread_gfp() except it uses ERR_PTR for error
> - * returns.  Currently with sb_bread it's impossible to distinguish
> - * between ENOMEM and EIO situations (since both result in a NULL
> - * return.
> - */
> -static struct buffer_head *__ext4_sb_bread_gfp(struct super_block *sb,
> -					       sector_t block,
> -					       blk_opf_t op_flags, gfp_t gfp)
> -{
> -	struct buffer_head *bh;
> -	int ret;
> -
> -	bh = sb_getblk_gfp(sb, block, gfp);
> -	if (bh == NULL)
> -		return ERR_PTR(-ENOMEM);
> -	if (ext4_buffer_uptodate(bh))
> -		return bh;
> -
> -	ret = ext4_read_bh_lock(bh, REQ_META | op_flags, true);
> -	if (ret) {
> -		put_bh(bh);
> -		return ERR_PTR(ret);
> -	}
> -	return bh;
> -}
> -
>  struct buffer_head *ext4_sb_bread(struct super_block *sb, sector_t block,
>  				   blk_opf_t op_flags)
>  {
> -	gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping,
> -			~__GFP_FS) | __GFP_MOVABLE;
> +	struct buffer_head *bh = __bread_gfp2(sb->s_bdev, block,
> +					      sb->s_blocksize,
> +					      REQ_META | op_flags,
> +					      __GFP_MOVABLE);
>  
> -	return __ext4_sb_bread_gfp(sb, block, op_flags, gfp);
> +	return bh ? bh : ERR_PTR(-EIO);
>  }
>  
>  struct buffer_head *ext4_sb_bread_unmovable(struct super_block *sb,
>  					    sector_t block)
>  {
> -	gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping,
> -			~__GFP_FS);
> +	struct buffer_head *bh = __bread_gfp2(sb->s_bdev, block,
> +					      sb->s_blocksize, 0, 0);
>  
> -	return __ext4_sb_bread_gfp(sb, block, 0, gfp);
> +	return bh ? bh : ERR_PTR(-EIO);
>  }
>  
>  void ext4_sb_breadahead_unmovable(struct super_block *sb, sector_t block)
> diff --git a/fs/ext4/symlink.c b/fs/ext4/symlink.c
> index 75bf1f88843c..49e918221aac 100644
> --- a/fs/ext4/symlink.c
> +++ b/fs/ext4/symlink.c
> @@ -94,7 +94,7 @@ static const char *ext4_get_link(struct dentry *dentry, struct inode *inode,
>  		bh = ext4_getblk(NULL, inode, 0, EXT4_GET_BLOCKS_CACHED_NOWAIT);
>  		if (IS_ERR(bh))
>  			return ERR_CAST(bh);
> -		if (!bh || !ext4_buffer_uptodate(bh))
> +		if (!bh || !buffer_uptodate_or_error(bh))
>  			return ERR_PTR(-ECHILD);
>  	} else {
>  		bh = ext4_bread(NULL, inode, 0, 0);
> -- 
> 2.39.2
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:24:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652438.1018269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCk0Z-0007Qk-NP; Mon, 11 Dec 2023 17:23:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652438.1018269; Mon, 11 Dec 2023 17: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 1rCk0Z-0007Qd-KI; Mon, 11 Dec 2023 17:23:55 +0000
Received: by outflank-mailman (input) for mailman id 652438;
 Mon, 11 Dec 2023 17: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=h7WS=HW=aim.com=brchuckz@srs-se1.protection.inumbo.net>)
 id 1rCk0Y-0007QS-Px
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:23:54 +0000
Received: from sonic309-21.consmr.mail.gq1.yahoo.com
 (sonic309-21.consmr.mail.gq1.yahoo.com [98.137.65.147])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cedf2fe-984a-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 18:23:52 +0100 (CET)
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic309.consmr.mail.gq1.yahoo.com with HTTP; Mon, 11 Dec 2023 17:23:50 +0000
Received: by hermes--production-ne1-d6bdb9d86-bq8gp (Yahoo Inc. Hermes SMTP
 Server) with ESMTPA ID 8fa80777334a5ec028d3b46dd4fa0965; 
 Mon, 11 Dec 2023 17:23:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0cedf2fe-984a-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netscape.net; s=a2048; t=1702315430; bh=wOYd6rmc4vW1gAUjHEGbGy8A5Kj7ze7p+NlB4ba2pug=; h=Date:Subject:To:References:From:In-Reply-To:From:Subject:Reply-To; b=ccECvILhR+PvMKx7mE4jTEkRluZkYwZJqmjuWT4XLsg4nKcPEPxAcNzlKkdKfOWS7++RMOr2IJrNoT4KglgQzoyv749SwnfIar2wbM1pI8s/BcVGaegFghMuQWMok08tQtMFAzezB/8ROi2eDnC6Apful+ytmNgW6f/JIRS4lUuqZbaIboZLR1YRLjGpcILei/Mctp/eTTVozzL3IARexja+Hm9k1r7QsLx9wUpGctvgaNPclI2kCV1PvJzP0sW3D3JeAXo0IOJPKp9snT+gA7MkOfaGoazTvRBrClPUVrGGk7BKzMF4fz/OnStcZkA7EFviJMdx4akt8AJPduxAxA==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1702315430; bh=SikCK44oapX6rj4ATLUi4+tYQcB9kMcWVvA0xL+GlZT=; h=X-Sonic-MF:Date:Subject:To:From:From:Subject; b=Sz+RNqY4/jSLX2HiWpfFUkS3TNo8tA5bNTbOZFRXeyVJ5HHLubbvPxZSTzRiLbw68P8hToWyINZ9Svz/xq1gkOPutfn8IENGx7sM/aSA6To6iumS1gqbYiFfI4/zVGXEjjatIKCYX/WVJd6s5sEzXJuQBommv3v8S0UCl45TwEY9+IVkP8ZdE90w2ejtvyaMJB8i2o0FaQere5E4/3BYGAolYMED5GAeixRBYVVg7KK8NqQJx2EOZLJvhNnNAaeWdEeC9YGJ+smvK+CZsKIRQQ0ht7LyNEtQWGlBKz50mctr5ETuXMGw/8ahonJXDED1JPEufyXdl7P7iVkunWwl2g==
X-YMail-OSG: o_CutlYVM1m77CFceVYzy4PoT6FSZp7Ed96cwUKm4_c0MN61gGSI1Z3U38d7UcR
 9Id9G8QEgsl8tyVIvV5vqLLPTE6LctdWEFKHFNKSOeEpMmCKQix0Dvr9Eu2UF_OsTDVwmkGfpfhv
 Qit2AOzLzc8oxxVQkRsqe64xIR9ha8FCt3u3zDtTBEEFmUE3mm8k0gzmR5IH6ELuEql4eFRddggm
 SfgZMOJiNbiAFxP3ASgO5EYh6N69AzDltQuzPQ7XkaC2nTzUDuBHqu63AEZ4S1fciz1qPubDHZi1
 XGCvxNOpR56MmCvC6xcvc9IXBySYn4QpQDCLQO.u8wnN1cNqTXli3MYLRcqmu28CKU57SE7OLxCK
 sZ8zYCvB9LExdiYuo609WSLmzvoiIUNuMAcDZlX3Pf6LiTQzUKGObGqF1K7fUq5Klb4KTDKRWjfo
 KGmznl15DPsquQScJfA74Bua.KfT8ZMAMIklXLN3Wc0rpIaUC2i9R9fo43vjGCT2UGSRxHnfslVm
 PwoUbiHkntk5rUjRPZpdBzOn.Rs3ux.hpiRjbn9TpSQft_nmD6xpoyd3Haq2TTws3MXW6OpwVMP8
 Yqkm5vmNQbXOBCNyVUdYGpifhXcbNNG3GTdz40yVIW4nuHvxoTtCUZ3FipkRtSIqvj72EwN5klJI
 nRravXuyO_i_EX2Q3G.KvXUvC16fSwQcRa9ZwQ4yLEY3.aZZxx6B52kbS4D7DWxGudcoPqLAe5xC
 1jCMele4ubVXGW8s5LAA9iaE21EiDNidboAoTtsUxgAcsk4Y7rnAlKplY_oTGf4tHVALUPWbQ_.C
 W5XPWVztkOjIO2ri4HqYnaCqUJQxEPO0_knGFMkCwosTlHPcPhKwPHT3y1ooM0RAy6sJ18S.Pus7
 m3.Mk7eKvk2GGKO2tixQIWS7gQB8zq26i9aMfxCTtmbDWXzQXA024k5Kx6SvLb4VQ.gNoeTWWiQc
 t8WT4cDLZSzsLJwHsIu7H13xTiZ5JxQ83h5Nblgqs.mEMkCpKgDCDuFIyezaP9Dl.Sk3Vp_KvP59
 57nAKDi29SM7ZM3E7zfaYuIgZgYv4siU63A1NM8TeABR4qkmc_cUDGN6ssDjHDd6DaWKKl_sINuu
 4ELi6d5YfgFpbw0atiRGsFw6IXecfIWcDkg_0iJaqWnTps2ehb5IvUdzUfWWqkZ.sclIKYGWF.JK
 OI7B2H.TWh0jQcHBxfQaNYKYqvtcZZhROPpmmPNfo00fK5UdZoIYkYHIoexFEMmpFntgFWq.IIro
 Qrc3I3FKXXYoBd1_mKkYKWMrbi9xSy_zokKUkEnrLJ8cm6IXusHJe9tbZ4y1ibwS6hBhF9yJE9Gg
 TpPfQB2WRozRsUY_SkD8g1ToJK23Rlc8FncY.y6wAqBbChatq4t3aI4IjtlLXGUhV2W00vfZiEvW
 7reyUOZUSaKT6eGUmu9mFCRDzpt9uMH4ylEVhUgsTVTn.0J0utPjqnppZYr1cHLJG97YJeJrushS
 FRcLSzB3LxG45K.MqEegNSXRGYn_iTYnWl6VGaIKJ89ep_uR0u5yzbunB6EEGey6j0lDjKWyzqeQ
 WKTBjDRldqak8SWiKyQ1jXW5hhkGLnuTA_3cfjkwLe6c7bLVYVgRO_qFRuUlWcm97fPm9nyTLwms
 zczy.59.yNYRlP7y1Sgnn8L0bX5kv2e4GYTQhf.zwM2t1_dqMFWNu0ylV6AE3nRr2psmJnZzyUg4
 IaULQcnTtWxmO4dFajQcdCLTpqK1k6pgVpHrpcCA04rPd3NbRk3P7mKluvkQC8DXd_lL4AKLWHM9
 .isfXIgz7TAZ5LlDIfjmdxxx01CflFZ0JEjDjuWEpVf6g0QTjH.VBToqfNgZvuWsjm6AzK2gL1Mp
 zFdCo46nFyJ40RbEPBG141mya_Y7aQOTXIG4PS.S2sYxxjLmxm5XTaXqNrj9bVaSDriz6HJc_vBG
 LoTulgNHK2wZC4N7GrNwo.EOwSC5jWTDke2LN9cft0_JDKEBUbnIUK.gVaR.zvsPBAm_pssgJzlk
 8wsoGPd7XzgGP0gy960H2j3kFiVlkWww1TC.ZtALZUnrC_Fnb3TpRRGF4J2ANGh39HuSOQMYXRSK
 PS.HefYh7zbiHjK8EeZdW0apLxe9sXGaE7y.nw88x6anBoKTl0e.zeAfE1tqf8oYGLshdUIQMopK
 GNwSLV9G9MDOLVi_PsYIOK.KgEZZOuKK93wjGYGZkQZgUtPG9LOiY6Zzk9xjSxUJp1DrKYYNkl.e
 0Jbi4Oqf6FBNBcw--
X-Sonic-MF: <brchuckz@aim.com>
X-Sonic-ID: 155c52e0-45a0-4ca0-bd56-48934e07c54e
Message-ID: <300b7e2b-068a-4cac-a617-ae41caa6d3b9@netscape.net>
Date: Mon, 11 Dec 2023 12:23:44 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: xc_dom_guest_type: image not capable of booting inside a HV M
 container: Invalid kernel
To: Mario Marietto <marietto2008@gmail.com>,
 Elliott Mitchell <ehem+freebsd@m5p.com>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 xen-users-request@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <CA+1FSiii2etikw9LKdJ5Ebn+z-3-e5UXh3cJjBgYGJYtq3q=Ww@mail.gmail.com>
Content-Language: en-US
From: Chuck Zmudzinski <brchuckz@netscape.net>
In-Reply-To: <CA+1FSiii2etikw9LKdJ5Ebn+z-3-e5UXh3cJjBgYGJYtq3q=Ww@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Mailer: WebService/1.1.21943 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.aol
Content-Length: 4731

On 12/11/2023 9:02 AM, Mario Marietto wrote:
> Hello.
> 
> Finally I tried to recompile the FreeBSD kernel using the @Elliott Mitchell <mailto:ehem+freebsd@m5p.com> code because I want to boot FreeBSD as domU with Xen installed on my Arm 32 bit Chromebook. Unfortunately it didn't work at all. Maybe I've missed something / I haven't understood well what to do. Please give me some suggestions.
> 
> Basically this is what I did :
> 
> $ created a vm called FreeBSD-13.2-RELEASE-armv7.img with qemu / kvm / libvirt / virt-manager
> 
> $ within the vm : mkdir /build-xen
> 
> $ cd /usr
> 
> $ git clone https://gitlab.com/ehem/freebsd-src.git <https://gitlab.com/ehem/freebsd-src.git?fbclid=IwAR09ukOdBXCR3gJznvHWpnWM8VEZqnX1l4ZMza_7lhoAjfPYAGbvcqwjh94>
> 
> $ cd freebsd-src
> 
> $ make KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7 buildkernel
> 
> $ make KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7 DESTDIR=/build-xen installkernel
> 
> $ echo "/dev/xbd0 / ufs rw 1 1" > /mnt/etc/fstab
> 
> $ nano /etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm on secure")
> 
> $ renamed the directories dtb to dtb_ and kernel to kernel_ that are inside the /boot dir of the vm
> 
> $ copied the directory dtb and kernel from the directory /build-xen to the directory /boot inside the vm
> 
> $ shut down the vm
> 
> $ copied the directory /build-xen outside of the vm using this method (in this case I used Linux installed on the Host OS,because the kernel that I'm using on the Chromebook has the kernel parameter related to the ufs2 fs set to off) :
> 
> on my X64 workstation :
> 
> # modprobe ufs
> 
> # sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.img
> 
> # ls /dev/loop0*
> 
> /dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop0p5
> 
> # mount -t ufs -o ufstype=ufs2 /dev/loop0p5 ./FreeBSD-xen
> 
> then :
> 
> # nano freebsd.cfg
> 
> kernel="/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel"
> memory=64
> name="freebsd"
> vcpus=1
> autoballon="off"
> disk=[ 'phy:/dev/loop0,xvda,w' ]
> # nano start-freebsd
> losetup -fP FreeBSD-13.2-RELEASE-armv7.img
> xl create freebsd.cfg
> xl console freebsd
> 
> # ./start-freebsd
> 
> Parsing config from freebsd.cfg
> xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not capable of booting inside a HV
> M container: Invalid kernel

It is detecting the kernel as an elf binary. IIUC, Xen on arm guests should have zImage kernels, not elf.

> libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
> libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:cannot (re-)build domain: -3
> libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-existent domain
> libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Unable to destroy guest
> libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruction of domain failed
> freebsd is an invalid domain identifier (rc=-6)
> 
> I have also tried with kernel.bin :
> 
> # nano freebsd.cfg
> 
> kernel="/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin"
> memory=64
> name="freebsd"
> vcpus=1
> autoballon="off"
> disk=[ 'phy:/dev/loop0,xvda,w' ]
> 
> # ./start-freebsd
> 
> Parsing config from freebsd.cfg
> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: Invalid kernel
> libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
> libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 2:cannot (re-)build domain: -3
> libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 2:Non-existent domain
> libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 2:Unable to destroy guest
> libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 2:Destruction of domain failed
> freebsd is an invalid domain identifier (rc=-6)
> 
> -- 
> Mario.

I would be interested to see the output of :

$ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel

and

$ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin

I have been trying out Julien's old patch set from 2014, and in there was this patch :

> arm: Add zImage support
> 
> Currently Xen on ARM is only supported zImage for guest kernel. Adding support
> for ARM ELF in the toolstack looks a bit complicate for ARM (though there is
> an x86 support).

Link to Julien's 2014 patch to provide zImage support for FreeBSD :

https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=commit;h=12a7cb346b88c6d3f52a20b98f361dc62797fbcd

When using Julien's patches, from 'file' I find that the kernel file is in
the elf format, and the kernel.bin file is in the zImage format, so I have
been trying to boot the kernel.bin file.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:27:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:27:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652442.1018279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCk3n-0008IE-6P; Mon, 11 Dec 2023 17:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652442.1018279; Mon, 11 Dec 2023 17: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 1rCk3n-0008I7-3j; Mon, 11 Dec 2023 17:27:15 +0000
Received: by outflank-mailman (input) for mailman id 652442;
 Mon, 11 Dec 2023 17:27: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=El9v=HW=suse.cz=jack@srs-se1.protection.inumbo.net>)
 id 1rCk3l-0008I1-CR
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:27: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 844221c4-984a-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 18:27:11 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 B84E5223DB;
 Mon, 11 Dec 2023 17:27:09 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 9A588134B0;
 Mon, 11 Dec 2023 17:27:09 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap2.dmz-prg2.suse.org with ESMTPSA id DhppJW1Gd2WxHQAAn2gu4w
 (envelope-from <jack@suse.cz>); Mon, 11 Dec 2023 17:27:09 +0000
Received: by quack3.suse.cz (Postfix, from userid 1000)
 id 0511CA07E3; Mon, 11 Dec 2023 18:27:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 844221c4-984a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702315630; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=uuXeYcPGrieZET/Hl977sPLVwbUrIJA1zejD9mT3ogI=;
	b=KJ4efM9E+sa33aFAd8jwg5VXmnjMxleP6CmyD1Z0i97ow/IMJQBSqYXPh1ej+xavVwSRP4
	Yg1lz/fUikUZbf1u2+vXr2RJE2evTJgLdRHZp8PKCuknSrpV2KnjDsWgIdBkLdxCyxxQjh
	RNp4pJOJa1FNsc52gTMd8s7goQjnjEc=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702315630;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=uuXeYcPGrieZET/Hl977sPLVwbUrIJA1zejD9mT3ogI=;
	b=TO6pszgbMWjR3gBZnaW4MEVQ+gbRax/0poyUFFXjotFHInDoOr+qN7/2TD3A7ZbLly3/IT
	YRHLNJGFEpFf+TBw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702315629; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=uuXeYcPGrieZET/Hl977sPLVwbUrIJA1zejD9mT3ogI=;
	b=wzXbksvRNiCb4BbXMMBxbEnY6iRN/20VAk4MCpHS3Rljj8T26a7bGIb5ufMVkyXIF6ZR91
	EvfGBjSwf9A5O7MLBegJl4BM0+huE5fNoBm4jZzLIFLmDT7FuH6vs9QkRAvxTJx13mPPRM
	NuBUsypYbVCpDejdowVksfEijuMTCJg=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702315629;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=uuXeYcPGrieZET/Hl977sPLVwbUrIJA1zejD9mT3ogI=;
	b=k3338zTO3EpETkE8li6Dp/0dY97GEZjygMS4ZhvDNl1b1VwUfwBL4jBi4Swo7FgrfAdnP+
	7OISWgzg4D5XlXAQ==
Date: Mon, 11 Dec 2023 18:27:08 +0100
From: Jan Kara <jack@suse.cz>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
	nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, p.raghav@samsung.com, hare@suse.de,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 15/18] buffer: add a new helper to
 read sb block
Message-ID: <20231211172708.qpuk4rkwq4u2zbmj@quack3>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140753.975297-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211140753.975297-1-yukuai1@huaweicloud.com>
X-Spam-Score: 16.16
X-Spam-Flag: NO
X-Spam-Level: *********
X-Spamd-Bar: +++++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=wzXbksvR;
	dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=k3338zTO;
	dmarc=none;
	spf=softfail (smtp-out1.suse.de: 2a07:de40:b281:104:10:150:64:98 is neither permitted nor denied by domain of jack@suse.cz) smtp.mailfrom=jack@suse.cz
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [9.46 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_SPF_SOFTFAIL(4.60)[~all];
	 R_RATELIMIT(0.00)[to_ip_from(RLa8hd5fybgmzcyr9mhbq8ey7y)];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.cz:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_GT_50(0.00)[50];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 FROM_HAS_DN(0.00)[];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 TAGGED_RCPT(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 DMARC_NA(1.20)[suse.cz];
	 NEURAL_SPAM_SHORT(2.97)[0.991];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.cz:dkim,suse.com:email,huawei.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 MID_RHS_NOT_FQDN(0.50)[];
	 FREEMAIL_CC(0.00)[kernel.dk,citrix.com,suse.de,gmail.com,lazybastard.org,bootlin.com,nod.at,ti.com,linux.ibm.com,oracle.com,fb.com,toxicpanda.com,suse.com,zeniv.linux.org.uk,kernel.org,fluxnic.net,mit.edu,dilger.ca,redhat.com,infradead.org,linux-foundation.org,samsung.com,vger.kernel.org,lists.xenproject.org,lists.infradead.org,lists.ozlabs.org,lists.linux.dev,huawei.com];
	 RCVD_TLS_ALL(0.00)[];
	 SUSPICIOUS_RECIPS(1.50)[]
X-Spam-Score: 9.46
X-Rspamd-Queue-Id: B84E5223DB
X-Spam-Flag: NO

On Mon 11-12-23 22:07:53, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@huawei.com>
> 
> Unlike __bread_gfp(), ext4 has special handing while reading sb block:
> 
> 1) __GFP_NOFAIL is not set, and memory allocation can fail;
> 2) If buffer write failed before, set buffer uptodate and don't read
>    block from disk;
> 3) REQ_META is set for all IO, and REQ_PRIO is set for reading xattr;
> 4) If failed, return error ptr instead of NULL;
> 
> This patch add a new helper __bread_gfp2() that will match above 2 and 3(
> 1 will be used, and 4 will still be encapsulated by ext4), and prepare to
> prevent calling mapping_gfp_constraint() directly on bd_inode->i_mapping
> in ext4.
> 
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
...
> +/*
> + * This works like __bread_gfp() except:
> + * 1) If buffer write failed before, set buffer uptodate and don't read
> + * block from disk;
> + * 2) Caller can pass in additional op_flags like REQ_META;
> + */
> +struct buffer_head *
> +__bread_gfp2(struct block_device *bdev, sector_t block, unsigned int size,
> +	     blk_opf_t op_flags, gfp_t gfp)
> +{
> +	return bread_gfp(bdev, block, size, op_flags, gfp, true);
> +}
> +EXPORT_SYMBOL(__bread_gfp2);

__bread_gfp2() is not a great name, why not just using bread_gfp()
directly? I'm not a huge fan of boolean arguments but three different flags
arguments would be too much for my taste ;) so I guess I can live with
that.

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:36:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:36:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652447.1018290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCkCq-0002Yr-5G; Mon, 11 Dec 2023 17:36:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652447.1018290; Mon, 11 Dec 2023 17: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 1rCkCq-0002Yk-2d; Mon, 11 Dec 2023 17:36:36 +0000
Received: by outflank-mailman (input) for mailman id 652447;
 Mon, 11 Dec 2023 17: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=BtsV=HW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCkCp-0002Ye-7r
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:36:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3ac8a9c-984b-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 18:36:33 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 4A6E24EE073E;
 Mon, 11 Dec 2023 18:36:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3ac8a9c-984b-11ee-98e8-6d05b1d4d9a1
MIME-Version: 1.0
Date: Mon, 11 Dec 2023 18:36:33 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
In-Reply-To: <95690c3a-92c5-4e05-856b-088133b87650@xen.org>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
 <c77560d6044700f10a8b149d539a95d1@bugseng.com>
 <3b3b62a3-0691-4ae7-9234-a8a85516c9eb@xen.org>
 <95690c3a-92c5-4e05-856b-088133b87650@xen.org>
Message-ID: <920a835236ff8cf922e515c5082770b7@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 2023-12-11 17:05, Julien Grall wrote:
> On 11/12/2023 15:59, Julien Grall wrote:
>> Hi Nicola,
>> 
>> On 11/12/2023 14:54, Nicola Vetrini wrote:
>>> On 2023-12-11 13:32, Julien Grall wrote:
>>>> Hi,
>>>> 
>>>> On 11/12/2023 10:30, Nicola Vetrini wrote:
>>>>> The branches of the switch after a call to 'do_unexpected_trap'
>>>>> cannot return, but there is one path that may return, hence
>>>>> only some clauses are marked with ASSERT_UNREACHABLE().
>>>> I don't understand why this is necessary. The code should never be 
>>>> reachable because do_unexpected_trap() is a noreturn().
>>>> 
>>>> Cheers,
>>> 
>>> It was meant as a safeguard against mistakes.
>> 
>> I am confused about which mistakes you are trying to prevent. Are you 
>> saying you are not trusting the noreturn attribute?
>> 
>> And if so, are you intending to add ASSERT_UNREACHABLE() after every 
>> single call to noreturn functions?
> 
> Replying to myself. What's confusing the most is that in [1], you 
> decided to not add the ASSERT_UNREACHABLE(). Yet the problem is 
> similar.
> 
> I'd also like to point out that by removing the "break", then if the 
> 'noreturn' function turns out to return, then in prod build you would 
> fallthrough to the next case. And who knows what's going to happen...
> 
> All of this really adds some confusion...
> 

I should have checked before responding: do_trap_hyp_sync is not afaik 
noreturn. Specifically, do_trap_brk may return. If I worked under the 
wrong assumption, then certainly the ASSERT_UNREACHABLE-s should be 
dropped.

>> 
>>> There are MISRA rules that deal with this aspect (e.g., a noreturn 
>>> function should not return), but they are not in Amendment 2, which 
>>> is what Xen is following.
>> Do you mind providing a bit more details about the rules you are 
>> talking about? At least the numbers would be helpful.
> 
> [1] 
> https://lore.kernel.org/xen-devel/c0a8a12e39d688e101936d221af0f8eeefabe352.1702283415.git.nicola.vetrini@bugseng.com/
> 
> Cheers,

Sure. Here are the rules concerned with _Noreturn:

R17.9: A function declared with a _Noreturn function specifier shall not 
return to its caller
R17.10: A function declared with a _Noreturn function specifier shall 
have void return type
R17.11: A function that never returns should be declared with a 
_Noreturn function specifier

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:37:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:37:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652451.1018300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCkE3-00039t-G4; Mon, 11 Dec 2023 17:37:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652451.1018300; Mon, 11 Dec 2023 17:37:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCkE3-00039m-Ce; Mon, 11 Dec 2023 17:37:51 +0000
Received: by outflank-mailman (input) for mailman id 652451;
 Mon, 11 Dec 2023 17:37:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z+fN=HW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rCkE2-00039g-Ja
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:37:50 +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 00dd0951-984c-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 18:37:49 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-50be9e6427dso4942886e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 09:37:49 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 p2-20020a056512312200b0050bfbde3901sm1126283lfd.297.2023.12.11.09.37.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 09:37:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00dd0951-984c-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702316269; x=1702921069; 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=+sz2R3yOl3TaIEV06hoIjBNk2KjwKvO1/ewjxP2rZ0s=;
        b=Z+yA5HjJeJFVqm8/YJVPyx6Ur4UYE5H7+tmFkLQfjtJqewNDxx55aRWWQIt8TK6TlV
         Z4vvAUOaEeJDwyVhZJQot6RauhThyap05o/dlc3r/WI255FoNXiZwXacQ8n64KWVzbsT
         jEaXT2PnCW/SlI4918q9ReCEjdTknwzN8ctyDWdn/RQ3IUwlzMZmc3mwHZreOBc4pIqR
         1oI0LYNXpQjjZAnLwFW9Kg/Cb7WPKRYcPcdIkypzWXc2w/3mL8qPa3Sk4hrCVc7DnKVP
         wm8Vkr6RdGWDQjx7N/WUFq7rbrTpdTkBXK++ck9fJvjCiKu3ELIifVuJyDTh6CPE4rl3
         +OAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702316269; x=1702921069;
        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=+sz2R3yOl3TaIEV06hoIjBNk2KjwKvO1/ewjxP2rZ0s=;
        b=ryQ/tUgEKwA+TFx/OtxXPqPukffkTPlbfv625BXYaU1kuAAfYyhRo+SdS2JsItoNJk
         wMPv5wpSDA95tHwSEdAlyWIherTAOY9Bzganiq4kMEnO9O+pFmbpjox+jyv9MeHT59Zn
         67bOt1IAe2sv3przfkCVjYJ7DiOMrcyTbbYw/mV83UeoJ6W5Jce8ZszpRUhPOYUIYH16
         czlRPaninpo2halt3vyYozL9wA5WC53XrvJii/4+v7RcuT+0Jzq8N0gP/Q+X227eiNZx
         E0z076FR1o4K3QSNh8g10sm5JCMXJwZIruZIrmcgRwx+/qB0DC16Ty6ALnM9GHae3EH+
         PNdg==
X-Gm-Message-State: AOJu0Yx6w1HRMDEcEFNbLAr/ezTaiVbWsU3NYr4GPoPj0s3PKzeNamuJ
	KWUz1vET/kTqqkCUxmmboCs=
X-Google-Smtp-Source: AGHT+IFOizhsi1uPpJG1vD+yZ1j1sJJHG/QhXg1+CT5a+nQCJeu6UzOD7P97kB865KdgGccLA5jwOA==
X-Received: by 2002:a05:6512:2385:b0:50d:1a7e:ac7d with SMTP id c5-20020a056512238500b0050d1a7eac7dmr2495961lfv.38.1702316268736;
        Mon, 11 Dec 2023 09:37:48 -0800 (PST)
Message-ID: <bad7c686af22aef9124891f5610976687452e784.camel@gmail.com>
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>,  Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, Shawn
 Anastasio <sanastasio@raptorengineering.com>, xen-devel@lists.xenproject.org
Date: Mon, 11 Dec 2023 19:37:47 +0200
In-Reply-To: <ed29735f-2d2e-4b29-b5d1-efa78480acd6@suse.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
	 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
	 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
	 <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
	 <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
	 <5af2573e588f76b8df3423fd13a1b4275cc18f33.camel@gmail.com>
	 <abb8c26b-4c8c-4fcf-a8c8-4a15a5067fa0@suse.com>
	 <a53707edfac7d8d959cfc858953a1d64c3149596.camel@gmail.com>
	 <ed29735f-2d2e-4b29-b5d1-efa78480acd6@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-11 at 17:02 +0100, Jan Beulich wrote:
> On 11.12.2023 15:43, Oleksii wrote:
> > On Mon, 2023-12-04 at 11:39 +0100, Jan Beulich wrote:
> > > On 04.12.2023 11:34, Oleksii wrote:
> > > > If you ( or anyone else ) don't mind, I'll update the patch
> > > > with an
> > > > introduction of HAS_GRANT_TABLE.
> > >=20
> > > I won't NAK such a patch, but unless convincing arguments appear
> > > I
> > > also
> > > won't ACK it.
> > I am going to disable GRANT_TABLE config for RISC-V ( and PPC? ) by
> > providing a separate YAML file ( riscv-fixed-randconfig.yaml ) with
> > the
> > following content:
> > .riscv-fixed-randconfig:
> > =C2=A0 variables:
> > =C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG:
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> > =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 # this I'll add in=
 the next patch where
> > asm-
> > geneic for mem_access.h is introduced
> >=20
> > And then for riscv*randconfig jobs do the following:
> > archlinux-current-gcc-riscv64-randconfig:
> > =C2=A0 extends:
> > =C2=A0=C2=A0=C2=A0 - .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 EXTRA_FIXED_RANDCONFIG: !reference [.riscv-fixed-ran=
dconfig,
> > variables, EXTRA_FIXED_RANDCONFIG]
> >=20
> > For RISC-V, I prefer having a separate file for all the
> > EXTRA_FIXED_RANDCONFIG because in another patch series [1], I'll
> > introduce a large number of disabled configs for randconfig.
> >=20
> > For PPC, I don't think it's necessary to introduce a separate YAML
> > file
> > for EXTRA_FIXED_RANDCONFIG. For the time being, it is only
> > necessary to
> > disable two configs: CONFIG_GRANT_TABLE and CONFIG_MEM_ACCESS (in
> > the
> > next patch of this series).
>=20
> Why would this be different for PPC and RISC-V?
I haven't investigated that. Perhaps Shawn covered more stubs for a larger =
numberof configs, so he didn't encounter issues with some configs.
For example, during my tests with the inclusion of riscv-fixed-
randconfig.yaml,
randconfig jobs for RISC-V failed several times on perf.c.
At least, during the inclusion of #include <asm/perfc.h>, which is not
provided
for RISC-V, so CONFIG_PERFC_COUNTER is disabled for RISC-V.

However, Shawn either provided necessary stubs for
CONFIG_PERF_COUNTERS,
or it is just luck that such an issue didn't occur for PPC."

>=20
> > If this solution is acceptable to you, can I retain your
> > 'Suggested-
> > by'?"
>=20
> No, please don't. I've replied to Andrew on the other thread - I
> don't
> see why helping just gitlab-CI is desirable. I'm actually surprised
Well, now I understand your point better, and it makes sense. I was
more confident in the GitLab-CI solution before you replied on the
other thread.

However, it seems to me that randconfig exists only for testing
purposes and usually doesn't require running locally. Therefore, it
makes sense to perform all these tasks only for GitLab-CI to avoid
complicating things around the Makefile in case anything related to
KCONFIG_ALLCONFIG needs to be in sync with Linux.

In any case, I believe it's a good idea to wait for Andrew's feedback.

> Linux have no solution ready for use, as the underlying problem of
> not
> all settings necessarily being valid to use ought to affect them as
> well. Then again perhaps this really only is a transient issue during
> arch bringup ...
"It is challenging for me, at least, to predict whether all options
mentioned in EXTRA_FIXED_RANDCONFIG will be disabled in the future.
Most of them will likely be implemented, but certainty is difficult to
ascertain."

> =C2=A0In which case the approach taken here may be fine, but
> it still wouldn't be what I suggested. It may then be Stefano or
> Andrew
> who you could consider for such a tag.
I'm a bit confused again. In this case, it seems that both you andStefano o=
r Andrew should be on the suggested list.
You proposed the approach with "#ifdef CONFIG_GRANT_TABLE #include
<asm/grant_table.h> #endif".
Stefano and Andrew suggested how to disable CONFIG_GRANT_TABLE for the
config.

Could you please clarify where my understanding is incorrect?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:50:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:50:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652458.1018310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCkPj-0006vh-IL; Mon, 11 Dec 2023 17:49:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652458.1018310; Mon, 11 Dec 2023 17:49: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 1rCkPj-0006va-FA; Mon, 11 Dec 2023 17:49:55 +0000
Received: by outflank-mailman (input) for mailman id 652458;
 Mon, 11 Dec 2023 17:49: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=mRXB=HW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCkPh-0006vU-Pp
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:49:53 +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 afd95fcd-984d-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 18:49:52 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-334b2ffaa3eso4304771f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 09:49:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e17-20020adf9bd1000000b003334992c578sm9119941wrc.10.2023.12.11.09.49.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 09:49:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: afd95fcd-984d-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702316992; x=1702921792; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=fkUttsOpW4IqN80kv8DGkUH4EeyJefkMnW2lAw/C8lU=;
        b=MZGtAEml0HOIevV71Sm2cn8KNejlq9CPhYR0Yvwrn1ikO0HzxDJoGEEuGOE2d8Is4n
         M9d7FjebKvjLhhZC37igAPbL1JRWX/vgmKivwZRlfNEfMP14QMlc3LeTtfoTFbAlUKeC
         aTzh20wRQ3QvhVGTAgApn23CTncKWlBLqw2FD2pmusew9jduV8+v+AhbMfQlczE+HyiZ
         mwis0jSouTJlonKtj8EuT+Gb3D37XO/GnZCeb8/M9n896Wdsn4apB81qDVB9AmdoUgp4
         cXr0Xu5Gu6u1T5TI6rXAZ0ylIo/peGxJ8Ptsz75mEla4kdS6LXso90mUXcSSynTrITfM
         z2rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702316992; x=1702921792;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=fkUttsOpW4IqN80kv8DGkUH4EeyJefkMnW2lAw/C8lU=;
        b=UgFytOAC4mmF7Vsh2KF1ViB9kSWy1HeacBMYAVGGWMTPnWmgKB+i1fI+wXFdjcENtq
         DOLMtC6k+m1sAGmJfalg3FCvzIqu0Gf9dfz1lFUQpS26eueU7N2Bwt6uj9SSZ5MkF6Eg
         0DURXHpRuW01RRxVMJrmkc3XXCoEiHFkK38T1aOfuHc3ojkAj5cCaTMkrg53cg1IScqz
         vmhaa/X233DZZbh3a7BS8GgrOAGOQpNuP3yIV9GIitPS2vM3gGI/fsF3o3EC/ynKG3OT
         LWzmuLzvdAl5EyOMF6GXf6WbxXtrou9rfzq+BEHM/20Ll4vt49UzzH8vVoUQ7Jbtovcn
         goTQ==
X-Gm-Message-State: AOJu0YyhD3y340DsxpHY5fSF1ctex4i/WAQFypjA7qBqvI6qOQIKcB0u
	mpY/MJa5r/HC9fWd/z7ufz7x
X-Google-Smtp-Source: AGHT+IGjOpM6TNpnmlzjxcnqE6qw9hRKdYDtL0Auze3x5k/UkR/XXmy7STwdw02mbHz9XLaDR9tlVQ==
X-Received: by 2002:a5d:534d:0:b0:320:8e6:b0cf with SMTP id t13-20020a5d534d000000b0032008e6b0cfmr2338360wrv.42.1702316991851;
        Mon, 11 Dec 2023 09:49:51 -0800 (PST)
Message-ID: <6592eb30-a8eb-423b-81ae-89acccc4e751@suse.com>
Date: Mon, 11 Dec 2023 18:49:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
Content-Language: en-US
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
 <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
 <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
 <5af2573e588f76b8df3423fd13a1b4275cc18f33.camel@gmail.com>
 <abb8c26b-4c8c-4fcf-a8c8-4a15a5067fa0@suse.com>
 <a53707edfac7d8d959cfc858953a1d64c3149596.camel@gmail.com>
 <ed29735f-2d2e-4b29-b5d1-efa78480acd6@suse.com>
 <bad7c686af22aef9124891f5610976687452e784.camel@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: <bad7c686af22aef9124891f5610976687452e784.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2023 18:37, Oleksii wrote:
> On Mon, 2023-12-11 at 17:02 +0100, Jan Beulich wrote:
>> Â In which case the approach taken here may be fine, but
>> it still wouldn't be what I suggested. It may then be Stefano or
>> Andrew
>> who you could consider for such a tag.
> I'm a bit confused again. In this case, it seems that both you andStefano or Andrew should be on the suggested list.
> You proposed the approach with "#ifdef CONFIG_GRANT_TABLE #include
> <asm/grant_table.h> #endif".

But you're not meaning to use that approach anymore, are you?

Jan

> Stefano and Andrew suggested how to disable CONFIG_GRANT_TABLE for the
> config.
> 
> Could you please clarify where my understanding is incorrect?
> 
> ~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 17:57:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 17:57:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652462.1018321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCkWx-0001Hz-B1; Mon, 11 Dec 2023 17:57:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652462.1018321; Mon, 11 Dec 2023 17: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 1rCkWx-0001Hs-6j; Mon, 11 Dec 2023 17:57:23 +0000
Received: by outflank-mailman (input) for mailman id 652462;
 Mon, 11 Dec 2023 17:57:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ojZ6=HW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCkWv-0001Hm-S0
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:57:21 +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 bb07bad2-984e-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 18:57:20 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c3ca9472dso27193245e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 09:57:20 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 m3-20020a5d56c3000000b003334520e49bsm9101723wrw.53.2023.12.11.09.57.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 09:57:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb07bad2-984e-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702317440; x=1702922240; 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=PZ+R8B3wHCuWt284dmb9Of0onfh+d3cgp76iNW/6Qqk=;
        b=OTqOnTDN08vfURVusn8WrCsbe7I9o/PvI1b0o9pdD6X1gVVUkUp+K9kWvpiRIl87E+
         pMmDK+zAw66vh/aZjHQC5EPWXD9RQLzXn3XGEp5+LpW+PfdkyZTwzd9JToY+8aIbokfl
         y1/LvPV9TvztrPFuR5o0g2kXT5LbpfcWj41ZE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702317440; x=1702922240;
        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=PZ+R8B3wHCuWt284dmb9Of0onfh+d3cgp76iNW/6Qqk=;
        b=q0w+qYwEksc+I2HU2M8VgtOoMm6jLGjf34IVDcyOTcO64vH0GB5pAlqtCe8E3GSOXt
         8Ya3jqutjXC8H8BIgXi6VPqm4QGFdqiklpvtcC9XjUU2FzTl7EIs6RtfTGYWMQpojDtv
         jyQ25BZZcpub+5ZmgvymBnP71LgmKG1haYeWSDH/CYflxEpvw0WZerfHHcdzvbuSoyZu
         fUEAgtIZOF54pK0PeYKMe1o9oC3uOFAakVzsgB2wspLZADmUiq/LsLx4qj6Pr+UI2DGb
         gQtLrO1vA7GTEnJNiH/Gjamox6/VNZTgbJVtly/EMhXI48En/07IgdZMldXio13Y0g24
         1M2A==
X-Gm-Message-State: AOJu0YzMZqjm5fzFuEFBWLYH7mfULp0RkxJ3aFMcFWlnwAaTu6EVXxZH
	HxzVqofwuITZVU02fPXMMjE0lg==
X-Google-Smtp-Source: AGHT+IHhS8zwI1NybzNdNGlVlhUK2j8AuOrYo5xAxBVkRUX7U4OlrMBon1SmCu4zLgRRSqo6ThubwA==
X-Received: by 2002:a05:600c:1ca3:b0:40c:243d:daa6 with SMTP id k35-20020a05600c1ca300b0040c243ddaa6mr1570231wms.8.1702317440373;
        Mon, 11 Dec 2023 09:57:20 -0800 (PST)
Date: Mon, 11 Dec 2023 18:57:19 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-acpi@vger.kernel.org, xen-devel@lists.xenproject.org,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Christian Koenig <Christian.Koenig@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Message-ID: <ZXdNf0HWs4nAVPeF@macbook>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-4-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20231210161519.1550860-4-Jiqian.Chen@amd.com>

On Mon, Dec 11, 2023 at 12:15:19AM +0800, Jiqian Chen wrote:
> There is a need for some scenarios to use gsi sysfs.
> For example, when xen passthrough a device to dumU, it will
> use gsi to map pirq, but currently userspace can't get gsi
> number.
> So, add gsi sysfs for that and for other potential scenarios.
> 
> Co-developed-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  drivers/acpi/pci_irq.c  |  1 +
>  drivers/pci/pci-sysfs.c | 11 +++++++++++
>  include/linux/pci.h     |  2 ++
>  3 files changed, 14 insertions(+)
> 
> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> index 630fe0a34bc6..739a58755df2 100644
> --- a/drivers/acpi/pci_irq.c
> +++ b/drivers/acpi/pci_irq.c
> @@ -449,6 +449,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
>  		kfree(entry);
>  		return 0;
>  	}
> +	dev->gsi = gsi;

It would be better if the gsi if fetched without requiring calling
acpi_pci_irq_enable(), as the gsi doesn't require the interrupt to be
enabled.  The gsi is known at boot time and won't change for the
lifetime of the device.

>  
>  	rc = acpi_register_gsi(&dev->dev, gsi, triggering, polarity);
>  	if (rc < 0) {
> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
> index 2321fdfefd7d..c51df88d079e 100644
> --- a/drivers/pci/pci-sysfs.c
> +++ b/drivers/pci/pci-sysfs.c
> @@ -71,6 +71,16 @@ static ssize_t irq_show(struct device *dev,
>  }
>  static DEVICE_ATTR_RO(irq);
>  
> +static ssize_t gsi_show(struct device *dev,
> +			struct device_attribute *attr,
> +			char *buf)
> +{
> +	struct pci_dev *pdev = to_pci_dev(dev);

const

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 18:00:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 18:00:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652469.1018330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCkZS-0001zP-Nv; Mon, 11 Dec 2023 17:59:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652469.1018330; Mon, 11 Dec 2023 17: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 1rCkZS-0001zI-JE; Mon, 11 Dec 2023 17:59:58 +0000
Received: by outflank-mailman (input) for mailman id 652469;
 Mon, 11 Dec 2023 17:59: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=pUvq=HW=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rCkZR-0001z8-NU
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 17:59:57 +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 167b9db4-984f-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 18:59:54 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-54dcfca54e0so6096350a12.1; 
 Mon, 11 Dec 2023 09:59:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 167b9db4-984f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702317594; x=1702922394; 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=EaeiZrAP5x1zVrU7NrtPyS+Q5VdpdTE30VvFBVrvv0Q=;
        b=VnKHkD3w8bs+QIdBimLE4z477xO1UzdbQY8ydV8BdHMSlsk5RLw0CB+uTKIj845P5C
         GtnWeM6JIlVqejGuHwEEOPo0dYAefYGlJFOjecYEpFSrcXGmEr67gRkKnznwqseefgMA
         nOt3XYXVQ7Z9bqeGIYoBjriJCDfngujIojQExNdE779RvDZv+lj6dCQcF/aM0ZnReNSt
         Ocm77C2JvCS3Vjq0jaPAwI+w5K+7LnXxqLqAmSb/hAH+6KX4mkgvrsfKI0At8iqNyw/4
         cUkobFcXskJOjb9/GSl+NYQiV7NpVd468n+SsrI1NwCUS0k5ioTjiaz/Da4ya+33/2Zx
         K3TA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702317594; x=1702922394;
        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=EaeiZrAP5x1zVrU7NrtPyS+Q5VdpdTE30VvFBVrvv0Q=;
        b=L+bxvaTUDNM4zU3vV4Oo6JauDcB3yELMW5lPRMxotVscz55Ux0wq1ZSnT1BtvvVY3H
         Kh99rt0UwbamsQ7umFMbgUUzbiQsgocQ0e2LevHsic3Px63ZIWb0LTMwpH4lXUaowRXe
         6zz6Yg9qUaZEThUSh3uPvzC9kntlQGr6SOcW/8Kci+ZbsElBGuAyNG/Iuz6KmjNZ2O/L
         gdALHraRvChOVcjFWaZWgSjVWsZEhfL3MW80GcqZiF3YJYF2hwMgnUsV4Y2fkT46VpQF
         9Tm+W523W8ldBroRTj2s95hu63S9ioZubyroZq9ahB429xjeg/rDHueTtrmUsaecjg4o
         Z9Jg==
X-Gm-Message-State: AOJu0YwU/GAdvZiYENFBhOoGE1jzMjQlbOlL9bHpfIGRtbFc5TAdTgHt
	xZFfPFkQe8KwvmrZtcpDjww5JtGDbP9AqizIimY=
X-Google-Smtp-Source: AGHT+IG47GRuEn+TVOCkETW5WMQ3NtxfPHEy9JW/2rZ2//i+1SOapH2Z2djBZnooOxvuDjjqxc0WFTiecf2HnfZj70A=
X-Received: by 2002:a17:906:10da:b0:a1f:8f42:ec66 with SMTP id
 v26-20020a17090610da00b00a1f8f42ec66mr1199262ejv.146.1702317593489; Mon, 11
 Dec 2023 09:59:53 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiii2etikw9LKdJ5Ebn+z-3-e5UXh3cJjBgYGJYtq3q=Ww@mail.gmail.com>
 <300b7e2b-068a-4cac-a617-ae41caa6d3b9@netscape.net>
In-Reply-To: <300b7e2b-068a-4cac-a617-ae41caa6d3b9@netscape.net>
From: Mario Marietto <marietto2008@gmail.com>
Date: Mon, 11 Dec 2023 18:59:17 +0100
Message-ID: <CA+1FSiiuWz_91Wg3Az440nFKaLY_raoUy=3nGj4Zca8viKAT=Q@mail.gmail.com>
Subject: Re: xc_dom_guest_type: image not capable of booting inside a HV M
 container: Invalid kernel
To: Chuck Zmudzinski <brchuckz@netscape.net>
Cc: Elliott Mitchell <ehem+freebsd@m5p.com>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel <xen-devel@lists.xenproject.org>, 
	xen-users-request@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: multipart/alternative; boundary="0000000000007475d4060c3fb3d7"

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

root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/ke=
rnel
# file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/ke=
rnel


ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamically
linked, interpreter /red/herring,
BuildID[sha1]=3D5e6982c9cb67d9c94571b76419142a8c495388d0,
for FreeBSD 13.2, not stripped

root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/ke=
rnel
# file
/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bi=
n

kernel.bin: data

It does not boot from the kernel.bin file.


On Mon, Dec 11, 2023 at 6:23=E2=80=AFPM Chuck Zmudzinski <brchuckz@netscape=
.net>
wrote:

> On 12/11/2023 9:02 AM, Mario Marietto wrote:
> > Hello.
> >
> > Finally I tried to recompile the FreeBSD kernel using the @Elliott
> Mitchell <mailto:ehem+freebsd@m5p.com> code because I want to boot
> FreeBSD as domU with Xen installed on my Arm 32 bit Chromebook.
> Unfortunately it didn't work at all. Maybe I've missed something / I
> haven't understood well what to do. Please give me some suggestions.
> >
> > Basically this is what I did :
> >
> > $ created a vm called FreeBSD-13.2-RELEASE-armv7.img with qemu / kvm /
> libvirt / virt-manager
> >
> > $ within the vm : mkdir /build-xen
> >
> > $ cd /usr
> >
> > $ git clone https://gitlab.com/ehem/freebsd-src.git <
> https://gitlab.com/ehem/freebsd-src.git?fbclid=3DIwAR09ukOdBXCR3gJznvHWpn=
WM8VEZqnX1l4ZMza_7lhoAjfPYAGbvcqwjh94
> >
> >
> > $ cd freebsd-src
> >
> > $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7 buildkernel
> >
> > $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7 DESTDIR=3D/b=
uild-xen
> installkernel
> >
> > $ echo "/dev/xbd0 / ufs rw 1 1" > /mnt/etc/fstab
> >
> > $ nano /etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm on
> secure")
> >
> > $ renamed the directories dtb to dtb_ and kernel to kernel_ that are
> inside the /boot dir of the vm
> >
> > $ copied the directory dtb and kernel from the directory /build-xen to
> the directory /boot inside the vm
> >
> > $ shut down the vm
> >
> > $ copied the directory /build-xen outside of the vm using this method
> (in this case I used Linux installed on the Host OS,because the kernel th=
at
> I'm using on the Chromebook has the kernel parameter related to the ufs2 =
fs
> set to off) :
> >
> > on my X64 workstation :
> >
> > # modprobe ufs
> >
> > # sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.img
> >
> > # ls /dev/loop0*
> >
> > /dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop0p5
> >
> > # mount -t ufs -o ufstype=3Dufs2 /dev/loop0p5 ./FreeBSD-xen
> >
> > then :
> >
> > # nano freebsd.cfg
> >
> >
> kernel=3D"/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kern=
el/kernel"
> > memory=3D64
> > name=3D"freebsd"
> > vcpus=3D1
> > autoballon=3D"off"
> > disk=3D[ 'phy:/dev/loop0,xvda,w' ]
> > # nano start-freebsd
> > losetup -fP FreeBSD-13.2-RELEASE-armv7.img
> > xl create freebsd.cfg
> > xl console freebsd
> >
> > # ./start-freebsd
> >
> > Parsing config from freebsd.cfg
> > xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not
> capable of booting inside a HV
> > M container: Invalid kernel
>
> It is detecting the kernel as an elf binary. IIUC, Xen on arm guests
> should have zImage kernels, not elf.
>
> > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fail=
ed
> > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
> 1:cannot (re-)build domain: -3
> > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
> 1:Non-existent domain
> > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
> 1:Unable to destroy guest
> > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
> 1:Destruction of domain failed
> > freebsd is an invalid domain identifier (rc=3D-6)
> >
> > I have also tried with kernel.bin :
> >
> > # nano freebsd.cfg
> >
> >
> kernel=3D"/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kern=
el/kernel.bin"
> > memory=3D64
> > name=3D"freebsd"
> > vcpus=3D1
> > autoballon=3D"off"
> > disk=3D[ 'phy:/dev/loop0,xvda,w' ]
> >
> > # ./start-freebsd
> >
> > Parsing config from freebsd.cfg
> > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader
> found: Invalid kernel
> > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fail=
ed
> > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
> 2:cannot (re-)build domain: -3
> > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
> 2:Non-existent domain
> > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
> 2:Unable to destroy guest
> > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
> 2:Destruction of domain failed
> > freebsd is an invalid domain identifier (rc=3D-6)
> >
> > --
> > Mario.
>
> I would be interested to see the output of :
>
> $ file
> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
>
> and
>
> $ file
> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.=
bin
>
> I have been trying out Julien's old patch set from 2014, and in there was
> this patch :
>
> > arm: Add zImage support
> >
> > Currently Xen on ARM is only supported zImage for guest kernel. Adding
> support
> > for ARM ELF in the toolstack looks a bit complicate for ARM (though
> there is
> > an x86 support).
>
> Link to Julien's 2014 patch to provide zImage support for FreeBSD :
>
>
> https://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebsd.git;a=3Dcommit=
;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd
>
> When using Julien's patches, from 'file' I find that the kernel file is i=
n
> the elf format, and the kernel.bin file is in the zImage format, so I hav=
e
> been trying to boot the kernel.bin file.
>


--=20
Mario.

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

<div dir=3D"ltr"><span style=3D"font-family:monospace"><font size=3D"6"><sp=
an style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">root@mariet=
to:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel # file=
 /mnt/zroot2/z</span>root2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/k=
ernel
<br></font></span><div><span style=3D"font-family:monospace"><font size=3D"=
6"><br></font></span></div><div><span style=3D"font-family:monospace"><font=
 size=3D"6">ELF 32-bit LSB executable,</font></span><span style=3D"font-fam=
ily:monospace"><font size=3D"6">ARM, EABI5 version 1 (FreeBSD), dynamically=
 linked, interpreter /red/herring, BuildID[sha1]=3D5e6982c</font></span><sp=
an style=3D"font-family:monospace"><font size=3D"6">9cb67d9c94571b76419142a=
8c495388d0, for FreeBSD 13.2, not stripped</font></span></div><div><span st=
yle=3D"font-family:monospace"><font size=3D"6"><br>
</font></span></div><div><span style=3D"font-family:monospace"><font size=
=3D"6">root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot=
-xen/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-x=
en/kernel/kernel.bin</font></span></div><div><span style=3D"font-family:mon=
ospace"><font size=3D"6"><br>
</font></span></div><div><span style=3D"font-family:monospace"></span></div=
><div><span style=3D"font-family:monospace"><font size=3D"6">kernel.bin: da=
ta=C2=A0</font></span></div><div><span style=3D"font-family:monospace"><fon=
t size=3D"6"><br></font></span></div><div><span style=3D"font-family:monosp=
ace"><font size=3D"6">It does not boot from the kernel.bin file.</font></sp=
an></div><div><br></div><div><span style=3D"font-family:monospace"></span><=
/div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_a=
ttr">On Mon, Dec 11, 2023 at 6:23=E2=80=AFPM Chuck Zmudzinski &lt;<a href=
=3D"mailto:brchuckz@netscape.net">brchuckz@netscape.net</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">On 12/11/2023 9:02 A=
M, Mario Marietto wrote:<br>
&gt; Hello.<br>
&gt; <br>
&gt; Finally I tried to recompile the FreeBSD kernel using the @Elliott Mit=
chell &lt;mailto:<a href=3D"mailto:ehem%2Bfreebsd@m5p.com" target=3D"_blank=
">ehem+freebsd@m5p.com</a>&gt; code because I want to boot FreeBSD as domU =
with Xen installed on my Arm 32 bit Chromebook. Unfortunately it didn&#39;t=
 work at all. Maybe I&#39;ve missed something / I haven&#39;t understood we=
ll what to do. Please give me some suggestions.<br>
&gt; <br>
&gt; Basically this is what I did :<br>
&gt; <br>
&gt; $ created a vm called FreeBSD-13.2-RELEASE-armv7.img with qemu / kvm /=
 libvirt / virt-manager<br>
&gt; <br>
&gt; $ within the vm : mkdir /build-xen<br>
&gt; <br>
&gt; $ cd /usr<br>
&gt; <br>
&gt; $ git clone <a href=3D"https://gitlab.com/ehem/freebsd-src.git" rel=3D=
"noreferrer" target=3D"_blank">https://gitlab.com/ehem/freebsd-src.git</a> =
&lt;<a href=3D"https://gitlab.com/ehem/freebsd-src.git?fbclid=3DIwAR09ukOdB=
XCR3gJznvHWpnWM8VEZqnX1l4ZMza_7lhoAjfPYAGbvcqwjh94" rel=3D"noreferrer" targ=
et=3D"_blank">https://gitlab.com/ehem/freebsd-src.git?fbclid=3DIwAR09ukOdBX=
CR3gJznvHWpnWM8VEZqnX1l4ZMza_7lhoAjfPYAGbvcqwjh94</a>&gt;<br>
&gt; <br>
&gt; $ cd freebsd-src<br>
&gt; <br>
&gt; $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7 buildkernel=
<br>
&gt; <br>
&gt; $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7 DESTDIR=3D/=
build-xen installkernel<br>
&gt; <br>
&gt; $ echo &quot;/dev/xbd0 / ufs rw 1 1&quot; &gt; /mnt/etc/fstab<br>
&gt; <br>
&gt; $ nano /etc/ttys (add the line &#39;xc0 &quot;/usr/libexec/getty Pc&qu=
ot; xterm on secure&quot;)<br>
&gt; <br>
&gt; $ renamed the directories dtb to dtb_ and kernel to kernel_ that are i=
nside the /boot dir of the vm<br>
&gt; <br>
&gt; $ copied the directory dtb and kernel from the directory /build-xen to=
 the directory /boot inside the vm<br>
&gt; <br>
&gt; $ shut down the vm<br>
&gt; <br>
&gt; $ copied the directory /build-xen outside of the vm using this method =
(in this case I used Linux installed on the Host OS,because the kernel that=
 I&#39;m using on the Chromebook has the kernel parameter related to the uf=
s2 fs set to off) :<br>
&gt; <br>
&gt; on my X64 workstation :<br>
&gt; <br>
&gt; # modprobe ufs<br>
&gt; <br>
&gt; # sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.img<br>
&gt; <br>
&gt; # ls /dev/loop0*<br>
&gt; <br>
&gt; /dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop0p5<br>
&gt; <br>
&gt; # mount -t ufs -o ufstype=3Dufs2 /dev/loop0p5 ./FreeBSD-xen<br>
&gt; <br>
&gt; then :<br>
&gt; <br>
&gt; # nano freebsd.cfg<br>
&gt; <br>
&gt; kernel=3D&quot;/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-=
xen/kernel/kernel&quot;<br>
&gt; memory=3D64<br>
&gt; name=3D&quot;freebsd&quot;<br>
&gt; vcpus=3D1<br>
&gt; autoballon=3D&quot;off&quot;<br>
&gt; disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]<br>
&gt; # nano start-freebsd<br>
&gt; losetup -fP FreeBSD-13.2-RELEASE-armv7.img<br>
&gt; xl create freebsd.cfg<br>
&gt; xl console freebsd<br>
&gt; <br>
&gt; # ./start-freebsd<br>
&gt; <br>
&gt; Parsing config from freebsd.cfg<br>
&gt; xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not =
capable of booting inside a HV<br>
&gt; M container: Invalid kernel<br>
<br>
It is detecting the kernel as an elf binary. IIUC, Xen on arm guests should=
 have zImage kernels, not elf.<br>
<br>
&gt; libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fai=
led<br>
&gt; libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:can=
not (re-)build domain: -3<br>
&gt; libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-e=
xistent domain<br>
&gt; libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Un=
able to destroy guest<br>
&gt; libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruct=
ion of domain failed<br>
&gt; freebsd is an invalid domain identifier (rc=3D-6)<br>
&gt; <br>
&gt; I have also tried with kernel.bin :<br>
&gt; <br>
&gt; # nano freebsd.cfg<br>
&gt; <br>
&gt; kernel=3D&quot;/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-=
xen/kernel/kernel.bin&quot;<br>
&gt; memory=3D64<br>
&gt; name=3D&quot;freebsd&quot;<br>
&gt; vcpus=3D1<br>
&gt; autoballon=3D&quot;off&quot;<br>
&gt; disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]<br>
&gt; <br>
&gt; # ./start-freebsd<br>
&gt; <br>
&gt; Parsing config from freebsd.cfg<br>
&gt; xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader fou=
nd: Invalid kernel<br>
&gt; libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fai=
led<br>
&gt; libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 2:can=
not (re-)build domain: -3<br>
&gt; libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 2:Non-e=
xistent domain<br>
&gt; libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 2:Un=
able to destroy guest<br>
&gt; libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 2:Destruct=
ion of domain failed<br>
&gt; freebsd is an invalid domain identifier (rc=3D-6)<br>
&gt; <br>
&gt; -- <br>
&gt; Mario.<br>
<br>
I would be interested to see the output of :<br>
<br>
$ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/ke=
rnel<br>
<br>
and<br>
<br>
$ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/ke=
rnel.bin<br>
<br>
I have been trying out Julien&#39;s old patch set from 2014, and in there w=
as this patch :<br>
<br>
&gt; arm: Add zImage support<br>
&gt; <br>
&gt; Currently Xen on ARM is only supported zImage for guest kernel. Adding=
 support<br>
&gt; for ARM ELF in the toolstack looks a bit complicate for ARM (though th=
ere is<br>
&gt; an x86 support).<br>
<br>
Link to Julien&#39;s 2014 patch to provide zImage support for FreeBSD :<br>
<br>
<a href=3D"https://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebsd.git;a=
=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd" rel=3D"noreferrer" =
target=3D"_blank">https://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebs=
d.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd</a><br>
<br>
When using Julien&#39;s patches, from &#39;file&#39; I find that the kernel=
 file is in<br>
the elf format, and the kernel.bin file is in the zImage format, so I have<=
br>
been trying to boot the kernel.bin file.<br>
</blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre=
fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d=
iv>

--0000000000007475d4060c3fb3d7--


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 18:41:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 18:41:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652479.1018340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rClDL-0005qZ-Oi; Mon, 11 Dec 2023 18:41:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652479.1018340; Mon, 11 Dec 2023 18: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 1rClDL-0005qS-LV; Mon, 11 Dec 2023 18:41:11 +0000
Received: by outflank-mailman (input) for mailman id 652479;
 Mon, 11 Dec 2023 18:41: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 1rClDK-0005p8-7f; Mon, 11 Dec 2023 18:41: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 1rClDK-00036P-2Q; Mon, 11 Dec 2023 18:41: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 1rClDJ-0008G0-ML; Mon, 11 Dec 2023 18:41:09 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rClDJ-0001jg-Lp; Mon, 11 Dec 2023 18:41:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=eOfP2+lHOHSHxvWbhjaxwgogbGfylbKL59o/CQ57GWg=; b=ADskDEtoFpkKkWTrsyZQ2WT0g5
	O3SkPnCu2gN08fMJW2URSbHXZDR7uBUS4kycY24Ou/QJxU9RZnnECo3vU3en11IrqGZw/JpthU2U4
	PzhRnT6YSsQ7HPzRD9VjWAGcCQXzisbcYwOmZiR4cLUVlca9svWyqZDz2zwXFEhT3+Ao=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184089-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184089: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-armhf-armhf-xl-vhd:guest-start:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-credit2: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-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-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-amd64-i386-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-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-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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=bc4fe94a69d4dab103c37045d97e589ef75f8647
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 18:41:09 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-vhd      13 guest-start                fail pass in 184085

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-vhd     14 migrate-support-check fail in 184085 never pass
 test-armhf-armhf-xl-vhd 15 saverestore-support-check fail in 184085 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-credit2  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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          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

version targeted for testing:
 xen                  bc4fe94a69d4dab103c37045d97e589ef75f8647
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    3 days
Testing same since   184036  2023-12-08 10:40:52 Z    3 days    7 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Juergen Gross <jgross@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    
 test-amd64-i386-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 bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 18:41:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 18:41:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652483.1018349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rClDg-0006Kk-1R; Mon, 11 Dec 2023 18:41:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652483.1018349; Mon, 11 Dec 2023 18:41:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rClDf-0006Kd-Ux; Mon, 11 Dec 2023 18:41:31 +0000
Received: by outflank-mailman (input) for mailman id 652483;
 Mon, 11 Dec 2023 18:41: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=h7WS=HW=aim.com=brchuckz@srs-se1.protection.inumbo.net>)
 id 1rClDf-0006HZ-3P
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 18:41:31 +0000
Received: from sonic316-54.consmr.mail.gq1.yahoo.com
 (sonic316-54.consmr.mail.gq1.yahoo.com [98.137.69.30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e438c93b-9854-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 19:41:28 +0100 (CET)
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic316.consmr.mail.gq1.yahoo.com with HTTP; Mon, 11 Dec 2023 18:41:26 +0000
Received: by hermes--production-bf1-86bd887759-26b9b (Yahoo Inc. Hermes SMTP
 Server) with ESMTPA ID 9a73ee3de762aa515f4d1d5d6550efeb; 
 Mon, 11 Dec 2023 18:41: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: e438c93b-9854-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netscape.net; s=a2048; t=1702320086; bh=wdRCQPitysq7K7mU9jwFUquv75+6cDZZ6IpcMCu3quk=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From:Subject:Reply-To; b=ofGhII+EBsRQtOlUuVpfz/ZkujdZa06vGL47Ig3s2UdoKF26j/HCWhJJWxleo4i1+xTIb7aVGkPYR+lHg8rtePVG0qKuxyOuSkl6Swz1AUeJuuvHhQtNwrAjxv3qsy2T7zrYtk488OtBIrYh6JnLDMfxWlyqDICVP2ae/pTm11zpchiBxl40B83nurhVZdCBKuWgRzHQpBAfmZ7zsrhH0PwEAj6RHbWAxhFITrolyjkObXv5Vebu3cU3QhQiqh1hJpfX8Rxy0CwPERqDOP8ExvbIuVeQpEYJr5l3fVFuac8CyzbXyek5kH+Vs7X+pPlB2L5Pr1IZEGXYSutAMfItKw==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1702320086; bh=qny9b07cRAGjKfxkZ6m6/P+kd9AoiCO2YyUX0umIisO=; h=X-Sonic-MF:Date:Subject:To:From:From:Subject; b=Sh4pyYzcEOQMhxjUhxGod518NbgwQy9EM72dpx21emHRZhiWRpwldT6Bx8Z2ghAHrcaisj6iPvlD3PotufQjP80TmE/mtdfw0rVpsYXidd/rHm1Aa5dTschPT7G+g/whhozk1enrv/+N0HusaLVUr4yhkvPNDmIIXxn83yB6Et+kqMzKgYVidY+vdd2gmkuBiRY7qWoN0h8tYAaAPvFwpMuoHqMFnrut0f8CbliOll0P9ICdVGvyYKym73OoPcKlTArLY7qcdrvY5AP1FUM5HwatXuzLekufQ6WUCl3JhTfkYSO3n8pRdz5Rh/UNI2FRj69jE5N5JeXVUK0kr9QYMg==
X-YMail-OSG: PGk07s8VM1k4OFzooZnpuKl5rnmpU9Wbj2LeIChHtO1l27P4LnS07k6vAv7JQZC
 Kcbp7pyby6AGXmtEausDZgc2Bp_eO0NpJj1ufpDsxAMpiTKAGXkK6HCyATN.BH7neizsEASQ7Umy
 BrMCssv2FD8WtoxkI4Su1inCM8T10Qxw4hazaV1VbcYvXOyb6LTmbjWeAEBAa3PkM050vHJEzLfh
 ok98doAiBjB6BjiwYrW4DXYVa9isTAoQWgvaVeGK1D41CULK4N3WrOoG5HwW6jBN27xW9ohhNQ4f
 2TuOUNBKX.fPo2539V_sJ.gP.g3tSDewQl4c2tteruwIBzKfyQieyVsMlocMFjAF0mTMXFiUR5KD
 laWb8qRwKX4KpEO3misZSqNS37mw544oQhdQdZUvYIdFn6pLHNSc4mjzE2.Bp_CDBJ3889l7pVm5
 gPW4cCn4OAvRpyo99GBq5996btD2ktg5xrWXf2ofmVCBLb16hPheuJg_YC2dgFCGa0titXSRdewg
 gK.w8EM3IfVlGjjawqdkt7stp_.R5fD8yMx8qGGpRT69rFR_8cQxPLXDR5eYSPlWqWqH6KqG1OMe
 CyddOY_BntBG8BXy1p4QbgYzaF5RpTM5hgYfVJPl3tQ24qoWo6ytzWjCyI85Z70VfFhC1O0tRkhF
 UONxTmbFPQYl8iemThT_LxKFDYYzTFt_Fq4hkECAXmcYsRPJ2ZDYaOHETcsunZPy85qeMN7bxDIh
 gP523Q_Vl_zu6Mrow8CGOVZeLIPxiwlMDWfhoE4hhvIJ0hY.Q3v6Ef0M5x3tmxmd6fv3LsjB.DJK
 DIHFb7s0BsUmZjztNRr8AwST8TVtzByMSn8.Ik8WYQf2Wjowqix2oxsuHM_91MhNSlpRf88v5_SA
 pwUdjGBCQlT4PWzRVl9QhQI6TGIg9bspjeIh.bbkzpFMTi54mjmRzFjZ0TO8qTYfxWIcBjZJIs.x
 uxV7u16kD9orB76K1Vadd4qTWdBYqC9KN9uzbee1dKKxiwgP7_dcqHGNdUEVzu9AZQ6d6NIyr.Tj
 h6QzjanVD3VMBjby9S9JwdBH2F7lDIcOb_Y4q3.S92mBYTYHLGYa7ejZAjw18.3pp5yYgKIraEJn
 45aK1fV7pyQx_RZ0TIV4K.uQDcAowQTMl2bby5sizplqr4pfbV7EvDvj1Cs.9eILXnAEbMqasfQN
 V2azfxxx9MT.Tt761A.8itTkiqsNQjhfqgLqUOT0S_l2gHRnnzDZPX7fMKQQ3VGLnA6kVOr3g3pI
 tCV5n1CrexMeWhUoAGPGOHvdPJwXdtzGLcRAqsGr6GUfowxq.Jg9T1Td.6qOLzv5FEdhEHE3tYNH
 LeXCljeA4IWvbNAWO1QlzGIM0eiG.s1UEzPe3hBScWu0MeYnK78fBI7rEaSktZubsW9omN_3zXhM
 Xq_Q.50WAI1ftS1wfvVhNKkfJcTRFYYd6W19sMdbkWySekIHLYxD0PDFLUTOeQXxJNSGZx2oE1zn
 MRWy_ydSBDjm1pVtml7IMHyDbkp5VavMJczeCGKpMLSNyUasiDjnkW1Kl.Uu._s9GXFt5Ex3axQB
 Igh7JCXJ7dtAa9KfH1btCoVAuONovtujkhNxaZk815y6VwSOUxeV4iuXGt2JC91NWupNHoHK49It
 ceKl5bbsjEvmgcJdbLSq5XJFGP6rMnYo.45rDXTM_ktoLxeEeWv0sA5oYlZ68Yi0yn.avguTfZRR
 Ftlyubbj8kzRP3ZaNjzU2Ny.eRpYTNgzo0K87aTfCLkzqqn9xH.2Rd_0rKAsRsOjccAgaFVD29ib
 KoNN4HcL6LKCUBIfxlLU29flSvfpod95glhl.UZmHO.guqhqoAwV9MYuu7oT4BtfsQfrSqWHy4n0
 o_qDwwLhoSn.qQb_ZRKMROCknl_tu6WE5jwBrCi_qzStvLpxzHfmsa4F1ksYrMEORgm9B3rQgU0o
 3iiqeKh6XoaT.LIxK.Pcxut3IbJSl50T3nY8iEoarDPYZh6OtNHoCd2jVJ6tIHUb5oVfbn6sjM6O
 444WcgiBTWZTrqZmkN2cJES40PURXdvtbzqes11_BnNyA9KfDgEL2IYK.XlR9YkhSB09SQ_2Ixe9
 jc.dmM6TVxdyMosbSnRaMRUAthTuulZLTZ.oQRzAwVRINW0EF2_CFgT0Kdbz88MBxTlaf5PEel.j
 0aIol9_wWLVKST.Bb_YzpiAROEwGia9LZWsHRQ34FBg79JEJCfD8sh_034YSJDdbndkafMT4HHzM
 nIOTm37xI3B_gSZZ4vqnSqBnSC_U-
X-Sonic-MF: <brchuckz@aim.com>
X-Sonic-ID: 23c03342-67eb-41cd-b5ac-0276182d978b
Message-ID: <0bf311bb-435a-4c5d-a36c-8cfe95f92f98@netscape.net>
Date: Mon, 11 Dec 2023 13:41:21 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: xc_dom_guest_type: image not capable of booting inside a HV M
 container: Invalid kernel
To: Mario Marietto <marietto2008@gmail.com>
Cc: Elliott Mitchell <ehem+freebsd@m5p.com>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 xen-users-request@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <CA+1FSiii2etikw9LKdJ5Ebn+z-3-e5UXh3cJjBgYGJYtq3q=Ww@mail.gmail.com>
 <300b7e2b-068a-4cac-a617-ae41caa6d3b9@netscape.net>
 <CA+1FSiiuWz_91Wg3Az440nFKaLY_raoUy=3nGj4Zca8viKAT=Q@mail.gmail.com>
Content-Language: en-US
From: Chuck Zmudzinski <brchuckz@netscape.net>
In-Reply-To: <CA+1FSiiuWz_91Wg3Az440nFKaLY_raoUy=3nGj4Zca8viKAT=Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Mailer: WebService/1.1.21943 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.aol
Content-Length: 6711

On 12/11/2023 12:59 PM, Mario Marietto wrote:
> root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
> 
> ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamically linked, interpreter /red/herring, BuildID[sha1]=5e6982c9cb67d9c94571b76419142a8c495388d0, for FreeBSD 13.2, not stripped
> 
> root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin
> 
> kernel.bin: dataÂ 

This needs to be :

kernel.bin: Linux kernel ARM boot executable zImage (little-endian)

> 
> It does not boot from the kernel.bin file.

I suggest not trying to direct boot a kernel in Xen on arm unless the file command reports the kernel image is a Linux kernel ARM boot executable zImage (little endian).

Did you try applying Julien's patch (link is in my earlier message) to add zImage support to FreeBSD? Maybe after applying the patch the kernel.bin file will be in the correct zImage format.

The patch I linked in the earlier 

> 
> 
> On Mon, Dec 11, 2023 at 6:23â€¯PM Chuck Zmudzinski <brchuckz@netscape.net <mailto:brchuckz@netscape.net>> wrote:
> 
>     On 12/11/2023 9:02 AM, Mario Marietto wrote:
>     > Hello.
>     >
>     > Finally I tried to recompile the FreeBSD kernel using the @Elliott Mitchell <mailto:ehem+freebsd@m5p.com <mailto:ehem%2Bfreebsd@m5p.com>> code because I want to boot FreeBSD as domU with Xen installed on my Arm 32 bit Chromebook. Unfortunately it didn't work at all. Maybe I've missed something / I haven't understood well what to do. Please give me some suggestions.
>     >
>     > Basically this is what I did :
>     >
>     > $ created a vm called FreeBSD-13.2-RELEASE-armv7.img with qemu / kvm / libvirt / virt-manager
>     >
>     > $ within the vm : mkdir /build-xen
>     >
>     > $ cd /usr
>     >
>     > $ git clone https://gitlab.com/ehem/freebsd-src.git
>     >
>     > $ cd freebsd-src
>     >
>     > $ make KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7 buildkernel
>     >
>     > $ make KERNCONF=GENERIC TARGET=arm TARGET_ARCH=armv7 DESTDIR=/build-xen installkernel
>     >
>     > $ echo "/dev/xbd0 / ufs rw 1 1" > /mnt/etc/fstab
>     >
>     > $ nano /etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm on secure")
>     >
>     > $ renamed the directories dtb to dtb_ and kernel to kernel_ that are inside the /boot dir of the vm
>     >
>     > $ copied the directory dtb and kernel from the directory /build-xen to the directory /boot inside the vm
>     >
>     > $ shut down the vm
>     >
>     > $ copied the directory /build-xen outside of the vm using this method (in this case I used Linux installed on the Host OS,because the kernel that I'm using on the Chromebook has the kernel parameter related to the ufs2 fs set to off) :
>     >
>     > on my X64 workstation :
>     >
>     > # modprobe ufs
>     >
>     > # sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.img
>     >
>     > # ls /dev/loop0*
>     >
>     > /dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop0p5
>     >
>     > # mount -t ufs -o ufstype=ufs2 /dev/loop0p5 ./FreeBSD-xen
>     >
>     > then :
>     >
>     > # nano freebsd.cfg
>     >
>     > kernel="/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel"
>     > memory=64
>     > name="freebsd"
>     > vcpus=1
>     > autoballon="off"
>     > disk=[ 'phy:/dev/loop0,xvda,w' ]
>     > # nano start-freebsd
>     > losetup -fP FreeBSD-13.2-RELEASE-armv7.img
>     > xl create freebsd.cfg
>     > xl console freebsd
>     >
>     > # ./start-freebsd
>     >
>     > Parsing config from freebsd.cfg
>     > xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not capable of booting inside a HV
>     > M container: Invalid kernel
> 
>     It is detecting the kernel as an elf binary. IIUC, Xen on arm guests should have zImage kernels, not elf.
> 
>     > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
>     > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:cannot (re-)build domain: -3
>     > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-existent domain
>     > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Unable to destroy guest
>     > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruction of domain failed
>     > freebsd is an invalid domain identifier (rc=-6)
>     >
>     > I have also tried with kernel.bin :
>     >
>     > # nano freebsd.cfg
>     >
>     > kernel="/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin"
>     > memory=64
>     > name="freebsd"
>     > vcpus=1
>     > autoballon="off"
>     > disk=[ 'phy:/dev/loop0,xvda,w' ]
>     >
>     > # ./start-freebsd
>     >
>     > Parsing config from freebsd.cfg
>     > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: Invalid kernel
>     > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
>     > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 2:cannot (re-)build domain: -3
>     > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 2:Non-existent domain
>     > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 2:Unable to destroy guest
>     > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 2:Destruction of domain failed
>     > freebsd is an invalid domain identifier (rc=-6)
>     >
>     > --
>     > Mario.
> 
>     I would be interested to see the output of :
> 
>     $ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
> 
>     and
> 
>     $ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin
> 
>     I have been trying out Julien's old patch set from 2014, and in there was this patch :
> 
>     > arm: Add zImage support
>     >
>     > Currently Xen on ARM is only supported zImage for guest kernel. Adding support
>     > for ARM ELF in the toolstack looks a bit complicate for ARM (though there is
>     > an x86 support).
> 
>     Link to Julien's 2014 patch to provide zImage support for FreeBSD :
> 
>     https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=commit;h=12a7cb346b88c6d3f52a20b98f361dc62797fbcd <https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=commit;h=12a7cb346b88c6d3f52a20b98f361dc62797fbcd>
> 
>     When using Julien's patches, from 'file' I find that the kernel file is in
>     the elf format, and the kernel.bin file is in the zImage format, so I have
>     been trying to boot the kernel.bin file.
> 
> 
> 
> -- 
> Mario.



From xen-devel-bounces@lists.xenproject.org Mon Dec 11 19:06:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 19:06:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652493.1018359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rClbW-0003B2-3P; Mon, 11 Dec 2023 19:06:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652493.1018359; Mon, 11 Dec 2023 19:06:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rClbW-0003Av-0r; Mon, 11 Dec 2023 19:06:10 +0000
Received: by outflank-mailman (input) for mailman id 652493;
 Mon, 11 Dec 2023 19:06: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 1rClbU-0003Aj-8K; Mon, 11 Dec 2023 19:06: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 1rClbU-0003ZB-4m; Mon, 11 Dec 2023 19:06: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 1rClbT-0000Su-Py; Mon, 11 Dec 2023 19:06:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rClbT-0002vR-PP; Mon, 11 Dec 2023 19:06: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=ShkzfBi19jzh68eLWeoDbY7sNPjVmqyAPWqytZlIocg=; b=TFPMbqK8npJWfYDdQvVjuBzBic
	pFVep2EHcFBMktkuRSq/tFJ2rxNfs8OU8E9y1ztcUh9dqevdHAyx9nEKfL5HGiBbktJBpSUsIvU51
	Jp4wCnvja27jBjsVmsFNChxFfWnpxpKnUM2vR3LxH3Af1aJorVDLwgvboKzxgTKlQoBY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184093-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184093: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=aa2f32cefa567133d94d574672a4479e004211ee
X-Osstest-Versions-That:
    ovmf=5b5481526fc9b89e5f3843d9bb3d6c4f5ce41060
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 19:06:07 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 aa2f32cefa567133d94d574672a4479e004211ee
baseline version:
 ovmf                 5b5481526fc9b89e5f3843d9bb3d6c4f5ce41060

Last test of basis   184090  2023-12-11 10:42:51 Z    0 days
Testing same since   184093  2023-12-11 17:12:41 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    
 test-amd64-i386-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
   5b5481526f..aa2f32cefa  aa2f32cefa567133d94d574672a4479e004211ee -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 19:09:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 19:09:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652499.1018370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rClf1-0003yL-J8; Mon, 11 Dec 2023 19:09:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652499.1018370; Mon, 11 Dec 2023 19: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 1rClf1-0003yE-Fn; Mon, 11 Dec 2023 19:09:47 +0000
Received: by outflank-mailman (input) for mailman id 652499;
 Mon, 11 Dec 2023 19:09: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=O2vV=HW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rClf0-0003y8-0M
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 19:09:46 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d77b91f1-9858-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 20:09:43 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c0e7b8a9bso61501415e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 11:09:43 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 k42-20020a05600c1caa00b003fe1fe56202sm13793951wms.33.2023.12.11.11.09.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Dec 2023 11:09:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d77b91f1-9858-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702321783; x=1702926583; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ugMp53yu5NQP2c9KbHSQSEGZHGWXUwREvhXL0oUC0CY=;
        b=pqbSmbN7By68XyOT933uj/fxbH9eTbg7ROJu3EwEEka7a7YKlh9qB3ykgPJcGD3gOc
         8wydCfZ0XWY1qxH1h2iyNy7pSKpuNDppnCamJdxxdYw2euYVIFfZv2SVtzLgr515aICB
         Gdt+7hrA2uSPJJ5Le7FZive2Qt0tmdyH942Zw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702321783; x=1702926583;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ugMp53yu5NQP2c9KbHSQSEGZHGWXUwREvhXL0oUC0CY=;
        b=CgzBG28QvSfj/jQBK5+KwVFgTv+KWU44FigGlU/Oy7DwEepezZxgZreL9wpTVRKubl
         5KiccvNvNXrrWrL7hpWxAVMvLF96J7zr0QXx2qhnvYWZNbvO+E9kNFfTYv8hStoXZh5n
         HqsPboq2ZRDEX4blVqNvHeVd1dbmAni60kvcW2JfS8eJcI0wAO4eq4PFz77oSC82HTWS
         NhP5kLBg3EiI4Mj/KsZlloP8tO85/l2veYaIpYCHK6jPmAdR9WPFpl9BNW9gUtCezOxt
         52Kns4cVkwZLpTOfPcQRjVthZWrxO14hhlzYyO/8RCA07tXxGZUo6wpqoaJmC4zc0aZ1
         GPGA==
X-Gm-Message-State: AOJu0YxvQ+JMWp6xdxrTQuKUZOUJjraQvSKFRoBPuZXgKFsQFrOzWH0k
	TKga1agjsN5MkIZFlLDEtxCOFQ==
X-Google-Smtp-Source: AGHT+IGSJVAG4qxJZxjgKWk72mDzk4vN+w1NQpTytT0pp/BuwD0Z9MfItWG2RoK6CMX6wHINTpNpxA==
X-Received: by 2002:a05:600c:3107:b0:40b:5e21:dd26 with SMTP id g7-20020a05600c310700b0040b5e21dd26mr2684914wmo.84.1702321783032;
        Mon, 11 Dec 2023 11:09:43 -0800 (PST)
Message-ID: <1381882f-530e-4fff-8a53-83665e84fcf8@citrix.com>
Date: Mon, 11 Dec 2023 19:09:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/pygrub: Drop compatibility symlink
Content-Language: en-GB
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 George Dunlap <George.Dunlap@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>
References: <20231123163023.2158134-1-andrew.cooper3@citrix.com>
 <761cd868-10f7-49ea-ba3e-ba61bac5ce83@perard>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <761cd868-10f7-49ea-ba3e-ba61bac5ce83@perard>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/12/2023 5:07 pm, Anthony PERARD wrote:
> On Thu, Nov 23, 2023 at 04:30:23PM +0000, Andrew Cooper wrote:
>> This was declared deprecated in commit 10c88f1c18b7 ("tools: Install pv
>> bootloaders in libexec rather than /usr/bin") in 2012
> This commit only speak about wanting to deprecate the full path to
> `pygrub`, and calling something deprecated in a commit message alone
> isn't very friendly. But there's a better commit calling for the
> deprecation:
> c31d6a7ee2ea ("libxl: Warn that /usr/bin/pygrub is deprecated")
> even if it's only in a libxl log message at run time.
>
> I hope we have a better schema to deprecate things.

Oh, I'd not even spotted that one.

This patch was actually triggered by newer versions of RPM objecting to
absolute symlinks.

>
>> Take it out fully now, 11 years later.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Beside the commit message that could call for a better commit, patch
> looks good:
> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>

Thanks.Â  I'll adjust the commit message.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 19:11:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 19:11:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652502.1018380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rClgl-0005pM-Tp; Mon, 11 Dec 2023 19:11:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652502.1018380; Mon, 11 Dec 2023 19:11:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rClgl-0005pF-Qy; Mon, 11 Dec 2023 19:11:35 +0000
Received: by outflank-mailman (input) for mailman id 652502;
 Mon, 11 Dec 2023 19:11: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 1rClgk-0005p9-P2
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 19:11: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 1rClgj-0003gl-VN; Mon, 11 Dec 2023 19:11:33 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.158.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rClgj-0002Xo-Nw; Mon, 11 Dec 2023 19:11:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=p2v3kRevYSyeEAHXzu6lyyNHWMvZvBmtkBhhMfXFbL8=; b=nb+oB8CswgJiHkVzUcmc4pb3do
	LsRBUCvsC6Wcq0UtTN93H5o3WIWE1Nj7cSrlpFbkM9EGpQt1BZYmys2j+JJuiI9UVdHnbI9/ALroU
	GfIsPaDUI05/ay+H589g/8qi6NO9D/JJMqz/RQRD/CgKSnmC3ItGASpO4tPEotAHvRUw=;
Message-ID: <c5a72070-fb63-4c05-a34e-e5abcb781ea2@xen.org>
Date: Mon, 11 Dec 2023 19:11:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xenstored: potentially split trace_io() out message
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>
References: <20231123160834.17674-1-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231123160834.17674-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 23/11/2023 16:08, Juergen Gross wrote:
> Today write_messages() will call trace_io() after having written the
> complete message to the ring buffer or socket.
> 
> In case the message can't be written in one go, split it by writing
> one trace entry when starting the write and one when finishing it.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

With one remark below:

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

> ---
> This patch is meant to go on top of the patch "tools/xenstored: remove
> \"-V\" command line option" in order to not lose any possible debug
> information.
> ---
>   tools/xenstored/core.c | 30 ++++++++++++++++++++----------
>   1 file changed, 20 insertions(+), 10 deletions(-)
> 
> diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
> index 9046b200bc..a14b240ed9 100644
> --- a/tools/xenstored/core.c
> +++ b/tools/xenstored/core.c
> @@ -121,7 +121,7 @@ void trace(const char *fmt, ...)
>   
>   static void trace_io(const struct connection *conn,
>   		     const struct buffered_data *data,
> -		     int out)
> +		     const char *type)

This change seems somewhat unrelated. It would be worth mentioning it in 
the commit message.

If you propose a new wording, I can update it while committing.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 19:24:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 19:24:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652507.1018390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rClt5-00007q-1G; Mon, 11 Dec 2023 19:24:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652507.1018390; Mon, 11 Dec 2023 19:24: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 1rClt4-00007j-UW; Mon, 11 Dec 2023 19:24:18 +0000
Received: by outflank-mailman (input) for mailman id 652507;
 Mon, 11 Dec 2023 19:24: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=Zcs4=HW=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rClt4-00007d-7Y
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 19:24:18 +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 ddec29bf-985a-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 20:24:14 +0100 (CET)
Received: from DM6PR07CA0116.namprd07.prod.outlook.com (2603:10b6:5:330::13)
 by CY8PR12MB7313.namprd12.prod.outlook.com (2603:10b6:930:53::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec
 2023 19:24:10 +0000
Received: from DS3PEPF000099D6.namprd04.prod.outlook.com
 (2603:10b6:5:330:cafe::6) by DM6PR07CA0116.outlook.office365.com
 (2603:10b6:5:330::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.29 via Frontend
 Transport; Mon, 11 Dec 2023 19:24:10 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099D6.mail.protection.outlook.com (10.167.17.7) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.18 via Frontend Transport; Mon, 11 Dec 2023 19:24:10 +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.34; Mon, 11 Dec
 2023 13:24:10 -0600
Received: from [172.27.174.187] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Mon, 11 Dec 2023 13:24:09 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ddec29bf-985a-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cNc2CJ6EdKmnjycIWpOw4rGYl1d9KJIXxehYgrIaRf4i4ahpbmiPMraRavAA70N4wxIp7OYERyhQ4CpSB0pnUB8/V05YhI2soM9BDqh/F8BIsx1xsBD/mlAfMq6op7n25IzrQutXaypVm1SOWIjZidiSJwm1MuuFRQXlwdhbMXCJ+xiYuD1gtG/zEaqCyOzr/sbaZ7lP5HDS318ACJPW5rL2C8HVnuAZgZWcq+i+WQTqqwuqKZm0iiAYYRKm/MzGTARz7TyZUIAxXya697vLwq1gEPh3qPHoCACZwoOiF0ExSy8oDoIWLNhyVpR91w0kX1BisfLNjfquQXNK0Ma3WQ==
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=X/cKIi6ylbISZGHYXDyEq2YiEkA7ShrGAbD3/GG60vQ=;
 b=EizNXBAxxmeB7FLrXEEUkFtprFbtunIECzHcsHfIkHzkodhc5dN1ZIQ27FroToNjfsztAzMU4amwjghmX5gZIqgmpGG8XyiwVci6yn0pcnYyltrX2evAtdgDN/8AzD/MuDmXA+m+5OBCQVJvPmi2wxurYIqR5Tjtpp08n0+XNN/Qc/JaMo3g7Cn4s26nFbyVABiqFAs0ACCd0RuPVjGQQhTMF/2NknjSAuReIVbHOv9qFYmQzTR5lSMY1V2eTddDSSDNoSAa2/Ucs+NaOz5RpmlCZ3szQg0poxQr1O7cAXN4868psq2T+eE967So51m/H7TMYbbRaZQi4NzLy4Jm0g==
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=X/cKIi6ylbISZGHYXDyEq2YiEkA7ShrGAbD3/GG60vQ=;
 b=V5Cl+lrLxGYsNeD0dvQUA4w6AgBJoBsdxmViJNsiVfPoXXWMPNEdkD3UMocx52xLUD2E06KVJr911Paz51wCUwr+xRHu0iIJ1LHxiPokSqGt+avDqhhxxzJC/VUrebKL2fkJj+E05+ZCLFuwXdIhJmt3SK56LCCCw3oCbhJLKR4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <7de40956-8240-4e8a-9663-d205efb6c0c4@amd.com>
Date: Mon, 11 Dec 2023 14:24:08 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/pci: fix phantom error path in assign_device()
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
CC: Paul Durrant <paul@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
References: <20231211150520.299768-1-stewart.hildebrand@amd.com>
 <6d39c8d1-36d4-471e-8d12-d7ff11b90a88@suse.com>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <6d39c8d1-36d4-471e-8d12-d7ff11b90a88@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099D6:EE_|CY8PR12MB7313:EE_
X-MS-Office365-Filtering-Correlation-Id: b2e295e6-6fdc-4dd6-cf84-08dbfa7ec0a3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	BDuMeM6LOLY6p3DIQCljg95+l+JTtlss5AHwiGwqxbJ3rwwKnTwIlMi8e3k4y7FBWGnXeA7VqNL9CLO808IjDMVehud6p6Ki/aXa1aYizZm+GffpyUhlqrEACIVG5jXhhpn57Jc4F74MdT7P6I3OCDWWHnaVLnboobYtbNpLrsJ8NU3jRCJS5xr12VmNW6bLvnmyZQdSNLECqhKcWdJ0R2nqjL0n8+QUIOoVREYSnvRpFjmCN2IJSLUwswpdWxQ9yd2hvRaI/JdSjgmLMlUaEAJFb6I2fhfwKriQeFzQ/4/QKaM9n/heU3XCop2f6a5mcC/ddw0gdKLab3ZefOnxGaGlfv2K19DwVFhdzNrxNBmzH2nF1/OWDMHnk71i7fcw1EUaGwcljAyGaR9QPgkYdIpHUWsZXlxMXx0mdf+yYu1qa3KCLZ1N93tZ7d8nFKqtXOZT6pi8HBMAORWP3Y9BzaFuoOpzIr5zSnQsE4oKIqOK/ABepmDX8Nyv9Z/1tfkWus5d+sIJWD7+3vdSYzTYe2gbufvrAdJbhDJZVgQX5J2TkUAk2LNcl9yiu6Yr9WrCUnqEXFw/9PL8p4sN48JemK4xGyDJNZ94k5M1/FsmR4yJs2/RqCe5Dp1igC12LDzXpK43/IfJw9mtdkR0egx7tioWP8pC5alPczIIyCdPZhKagkRAnNFlEh+P8xNwrfISfWL1zNAIPk4Uo5014ySFQBxHePOKZjpjZn3uZMn9caFqcedqS3blMYWCJ4iJ14jca4Fe1VAIgtR99TlCc6QPZ2vUmwEKzutQfssvmwoqm9wMq6eGk9Tzo3+NrMWbBBk45IIoXws0GsQUiWe91gmCAvy+i/FpRzAEs+mGw2wDXjQ=
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:(13230031)(4636009)(396003)(346002)(136003)(39860400002)(376002)(230922051799003)(230273577357003)(230173577357003)(1800799012)(82310400011)(186009)(451199024)(64100799003)(46966006)(36840700001)(40470700004)(40480700001)(36756003)(31686004)(40460700003)(53546011)(26005)(70586007)(478600001)(8936002)(4326008)(8676002)(6916009)(16576012)(70206006)(54906003)(316002)(2616005)(2906002)(47076005)(426003)(336012)(36860700001)(41300700001)(5660300002)(44832011)(356005)(83380400001)(82740400003)(81166007)(31696002)(86362001)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 19:24:10.7060
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b2e295e6-6fdc-4dd6-cf84-08dbfa7ec0a3
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099D6.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7313

On 12/11/23 11:21, Jan Beulich wrote:
> On 11.12.2023 16:05, Stewart Hildebrand wrote:
>> Currently if an iommu_call() for a phantom function fails, there is no
>> indication of the failure. Propagate (but don't return) the error code
>> from the most recently failed iommu_call() and emit a warning. While
>> here, add a comment to clarify that the loop keeps iterating even when
>> failure is encountered.
>>
>> Fixes: cd7dedad8209 ("passthrough: simplify locking and logging")
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>> ---
>> Unlike assign_device(), deassign_device() breaks out of the phantom loop
>> when a failure is encountered and returns the error code. I'm curious
>> why assign_device() and deassign_device() behave differently? It looks
>> like it's been that way since
>> 4e9950dc1bd2 ("IOMMU: add phantom function support"). I was initially
>> inclined to break out of the loop and return the error code in
>> assign_device(), but adhering to the principle of Chesterton's fence,
>> I'd first like to understand why this is not currently being done.
> 
> It's been a long time, but seeing the same pattern for add/remove I think
> the idea was that a device may still work with its phantom functions not
> properly mapped in the IOMMU, whereas failure to unmap means a domain may
> retain (partial) access to a device.

Thanks for the info. I'll add something about this to the in-code comment (see below).

> 
>> I'm aware that I could have avoided introducing a tmp local variable by
>> using the conditional operator with omitted middle operand:
>>
>>     rc_nonfatal = iommu_call(...) ?: rc_nonfatal;
>>
>> However, I explicitly chose not to do this to avoid relying on a GNU
>> extension in yet another place.
> 
> Introducing a helper variable is certainly okay, if you think that's
> better. However, in cases like ...
> 
>> --- a/xen/drivers/passthrough/pci.c
>> +++ b/xen/drivers/passthrough/pci.c
>> @@ -1407,7 +1407,7 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
>>  {
>>      const struct domain_iommu *hd = dom_iommu(d);
>>      struct pci_dev *pdev;
>> -    int rc = 0;
>> +    int rc = 0, rc_nonfatal = 0;
>>  
>>      if ( !is_iommu_enabled(d) )
>>          return 0;
>> @@ -1443,21 +1443,28 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
>>                            pci_to_dev(pdev), flag)) )
>>          goto done;
>>  
>> -    for ( ; pdev->phantom_stride; rc = 0 )
>> +    while ( pdev->phantom_stride )
>>      {
>> +        int tmp;
>> +
>>          devfn += pdev->phantom_stride;
>>          if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
>> +        {
>> +            devfn -= pdev->phantom_stride; /* Adjust for printing */
>>              break;
>> +        }
>> -        rc = iommu_call(hd->platform_ops, assign_device, d, devfn,
>> -                        pci_to_dev(pdev), flag);
>> +        tmp = iommu_call(hd->platform_ops, assign_device, d, devfn,
>> +                         pci_to_dev(pdev), flag);
>> +        rc_nonfatal = tmp ? tmp : rc_nonfatal;
> 
> ... this, I'm relatively certain most maintainers would agree that using
> the extension will yield easier to read code. Plus there's no reason to
> avoid extensions we use widely anyway, as long as there's no (reasonably
> neat) way to express the same without using extensions.

OK, I'll use the extension.

> 
> Jan
> 
>> +        /* Keep iterating even if the iommu call failed. */

I'll change this in-code comment to:

        /*
         * Keep going in case of iommu_call failure for phantom functions. The
         * device may still be usable without phantom functions mapped in the
         * IOMMU.
         */

>>      }
>>  
>>   done:
>> -    if ( rc )
>> +    if ( rc || rc_nonfatal )
>>          printk(XENLOG_G_WARNING "%pd: assign (%pp) failed (%d)\n",
>> -               d, &PCI_SBDF(seg, bus, devfn), rc);
>> +               d, &PCI_SBDF(seg, bus, devfn), rc ? rc : rc_nonfatal);
>>      /* The device is assigned to dom_io so mark it as quarantined */
>> -    else if ( d == dom_io )
>> +    if ( !rc && d == dom_io )
>>          pdev->quarantine = true;
>>  
>>      return rc;
>>
>> base-commit: 1403131596fa77663708f6baa0fee8bf7b95eb5a
> 


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 19:39:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 19:39:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652512.1018400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCm7k-0002kX-AR; Mon, 11 Dec 2023 19:39:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652512.1018400; Mon, 11 Dec 2023 19:39:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCm7k-0002kQ-79; Mon, 11 Dec 2023 19:39:28 +0000
Received: by outflank-mailman (input) for mailman id 652512;
 Mon, 11 Dec 2023 19:39:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rCm7i-0002kK-LR
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 19:39:26 +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 1rCm7h-00048H-LM; Mon, 11 Dec 2023 19:39:25 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=[10.95.158.169]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCm7h-0003W5-ET; Mon, 11 Dec 2023 19:39:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=/QPGNFXzOrUBBS5K6pyXWUiDlo9nIx3nWfqZrk8FDjU=; b=iqy1rBxYdlHfazGir9LIQSxHkl
	5KWl2yfUeAtZ1y7wqiGiOJF76Hmt8s0qm3R0phPUC8MyLmy5LLkZgGOTsJjf7KQIEleeUusc8uDiR
	Pc1GgvC0TKzjsOlipIeDi642Mf/HGn6YZ4bzG790wsoruWhfmf+ranatGKX3MVA7CPuw=;
Message-ID: <878320f3-acc9-47fe-8a61-fb0deb4e017c@xen.org>
Date: Mon, 11 Dec 2023 19:39:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs: Document a policy for when to deviate from
 specifications
Content-Language: en-GB
To: George Dunlap <george.dunlap@cloud.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20230918122817.6577-1-george.dunlap@cloud.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20230918122817.6577-1-george.dunlap@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi George,

Sorry for the late reply.

On 18/09/2023 13:28, George Dunlap wrote:
> There is an ongoing disagreement among maintainers for how Xen should
> handle deviations to specifications such as ACPI or EFI.
> 
> Write up an explicit policy, and include two worked-out examples from
> recent discussions.

NIT: For a more balanced arguments, it would have been good to have one 
example where Xen decides to not accept a deviationg from the spec.

Anyway...

> 
> Signed-off-by: George Dunlap <george.dunlap@cloud.com>

... your proposal makes sense to me. So with one typo below:

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

> +## Calling EFI Reboot method
> +
> +One interpretation of the EFI spec is that operating systems should
> +call the EFI ResetSystem method in preference to the ACPI reboot
> +method.
> +
> +However, although the ResetSystem method is required by the EFI spec,
> +a large number of different systems doesn't actully work, at least

Typo: s/actully/actually/

> +when called by Xen: a large number of systems don't cleanly reboot
> +after calling the EFI REBOOT method, but rather crash or fail in some
> +other random way.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 19:40:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 19:40:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652517.1018410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCm8o-0004Nb-NA; Mon, 11 Dec 2023 19:40:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652517.1018410; Mon, 11 Dec 2023 19: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 1rCm8o-0004NU-KT; Mon, 11 Dec 2023 19:40:34 +0000
Received: by outflank-mailman (input) for mailman id 652517;
 Mon, 11 Dec 2023 19:40:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z+fN=HW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rCm8n-0004NO-7F
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 19:40:33 +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 2568b114-985d-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 20:40:32 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a1f8f470903so235690166b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Dec 2023 11:40:32 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 vc12-20020a170907d08c00b00a1d4a920dffsm5193427ejc.88.2023.12.11.11.40.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Dec 2023 11:40:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2568b114-985d-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702323632; x=1702928432; 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=CQ0yHzTJ5OEC6SXiONpkyL6MmfJgj9nvBYWcNZPY740=;
        b=fkIAB/Envh3QdlcBs26kfr9A8IfLiwv/qsiAym61kk28h6UW/InuWU6VHG1j9P+Y5T
         NmDbqfjrahtJj4RZRKRdh9i+4IoGs9iZExycWvolwQThmBuRb6Wyx2CODlLPNR/26ZWj
         13+gpVFRxxn0bYCZ9GUr50XD+yrbc5DclW08xofw4bUZhKmgVF6Csj7oPWoBAuORK+Qr
         FX1rNMI7hfv94bBARbVHzhUUZ7Pkzjzc+TvXVV1N23DvGQIGDT/nj38A39ML/5wI7Z+N
         gLtkRUUo3IEDAjjfcQeUsIbrJfOFBksjTAX3HeQxztOLb/nV/D2iOtoOiWtNRIE9aut1
         y46Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702323632; x=1702928432;
        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=CQ0yHzTJ5OEC6SXiONpkyL6MmfJgj9nvBYWcNZPY740=;
        b=OD5U4G2NDVDbHHWbF7urudc/eSsRQlJADY7xIHmVpHt7IBvb00+T/g9HBLhynnE0OX
         MchO/LyqRcu8XD9k1zcU3KTYJGn8/ZvUUt5pZmd1pTlipo7oZelZWVZF4ixjY7KFtm2l
         jX+64vbAiWllTGp4UfX5n/p/2w9w/8k0mhaoWaSNd+elXn3RUB6bHzZ9sfOgXr+608XX
         E2/jeDhdhQwDoAHdtZjJMWH1g+5xRaSJFd134u94P0usticZoJ+y+ZwYYonuM2isBTgv
         3uiYZ4Nmy1nhQBP/EBolqeeow4nwjVhW7Jyj8BxrWf9mHibgdingQL+uRoRy1PhJagdx
         L8WQ==
X-Gm-Message-State: AOJu0YwBQM1VBsseQWBSXuQmC41ePFgVuAsIQ3a1V5l2GAQu47Gzn2WA
	2jvuSYzXApNz2hBXHBGH8QY=
X-Google-Smtp-Source: AGHT+IH/LGA+K/2eAcNbaFtGOM2kXaBT3ChITF0OMt/TCx8vlMtwFkygJVU608fUHttPDSkREg7Mjw==
X-Received: by 2002:a17:907:94d6:b0:a1b:7608:f962 with SMTP id dn22-20020a17090794d600b00a1b7608f962mr4044493ejc.54.1702323631639;
        Mon, 11 Dec 2023 11:40:31 -0800 (PST)
Message-ID: <54f05f88178a152b4f3b4ecb52933bc75d3a37a4.camel@gmail.com>
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>,  Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, Shawn
 Anastasio <sanastasio@raptorengineering.com>, xen-devel@lists.xenproject.org
Date: Mon, 11 Dec 2023 21:40:30 +0200
In-Reply-To: <6592eb30-a8eb-423b-81ae-89acccc4e751@suse.com>
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
	 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
	 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
	 <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
	 <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
	 <5af2573e588f76b8df3423fd13a1b4275cc18f33.camel@gmail.com>
	 <abb8c26b-4c8c-4fcf-a8c8-4a15a5067fa0@suse.com>
	 <a53707edfac7d8d959cfc858953a1d64c3149596.camel@gmail.com>
	 <ed29735f-2d2e-4b29-b5d1-efa78480acd6@suse.com>
	 <bad7c686af22aef9124891f5610976687452e784.camel@gmail.com>
	 <6592eb30-a8eb-423b-81ae-89acccc4e751@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-11 at 18:49 +0100, Jan Beulich wrote:
> On 11.12.2023 18:37, Oleksii wrote:
> > On Mon, 2023-12-11 at 17:02 +0100, Jan Beulich wrote:
> > > =C2=A0In which case the approach taken here may be fine, but
> > > it still wouldn't be what I suggested. It may then be Stefano or
> > > Andrew
> > > who you could consider for such a tag.
> > I'm a bit confused again. In this case, it seems that both you
> > andStefano or Andrew should be on the suggested list.
> > You proposed the approach with "#ifdef CONFIG_GRANT_TABLE #include
> > <asm/grant_table.h> #endif".
>=20
> But you're not meaning to use that approach anymore, are you?
No, I am going to use it because there is still a need to use #ifdef
for #include <asm/grant_table.h> in <xen/grant_table.h> to avoid
providing a useless empty asm/grant_table.h header if
CONFIG_GRANT_TABLE isn't supported.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 20:58:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 20:58:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652528.1018420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCnM8-0000T1-B5; Mon, 11 Dec 2023 20:58:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652528.1018420; Mon, 11 Dec 2023 20:58:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCnM8-0000Su-8R; Mon, 11 Dec 2023 20:58:24 +0000
Received: by outflank-mailman (input) for mailman id 652528;
 Mon, 11 Dec 2023 20:58:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pUvq=HW=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rCnM6-0000Sj-BJ
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 20:58:22 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01db781c-9868-11ee-9b0f-b553b5be7939;
 Mon, 11 Dec 2023 21:58:17 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c32df9174so41131565e9.3; 
 Mon, 11 Dec 2023 12:58:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01db781c-9868-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702328296; x=1702933096; 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=HdKbXI4KpZzT7VO/YsItHnQsOZeeu+/nhg7sv9FOd5E=;
        b=BY4GPA1twDKQjYhXzxGvfL8U63CciJHxPHYljNxu0Yl818UpX5bjrZfXvHBX/AkuF8
         Gp6sU+fyTzN446n+gZbBF7RHEP1X/baQW42e3Tg6CXrWcvH5D8SuWup5LQ8E1nGGpmHx
         pFBsmHZKkZ/JyMX9/tddiOmG6TBud+VXeAIxJNWwN2kvUnMHqVBJP9mBRi+ProaJeqcK
         hoe4O2SL286gezEzSXw5Likhni0+hKrj6BX8PdXhjldikX/eKW1z3L+DN1CRqscpToSD
         saTd1z2U2ztjnxVkGd83c7/ejckTeXPsucvsbpft7/qkvZirmVqbLiBgMfDVkyoDHR5t
         Hn/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702328296; x=1702933096;
        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=HdKbXI4KpZzT7VO/YsItHnQsOZeeu+/nhg7sv9FOd5E=;
        b=rJyfgHyEZizzsETambzI6KIrLRnY5TxmxI+aMhrbgcvFyA9m/zWtt69UmBeV4eiaty
         qWAQjnH6387sZxgwGD/VbkcsxamFWkDoHw6DqOQ0Wxj8alEFy0kjEiz6vPut0KmuX9N9
         4WO8LZQNsdT8l0uuFO/7fCZGRqFFBOJxxbI8oHh+mr8/dLR9ToJzO7c92Xg+RUB2TlNL
         QY4xCUpOpbBFLDhlx6DrHKKpFMWlSmK3v9Dp5R8hBNW6ceXNUqbSEpSMeM7RYt0p3shF
         mzxVCRTNkdXv0jTdygfqzD5c6vZxut/hH4o8OiTtRaXgx3A6ckX4NQSF7ynDnOjn4b8S
         9iGg==
X-Gm-Message-State: AOJu0YzV7+LLuhOk8yreblG05NyNuLeRKRb/vrzIhJQI+9GzhQa6P8Pb
	oJ1tKkli/NkjTsVZjc17TcmvYpAX4q/Y9xwy0ds=
X-Google-Smtp-Source: AGHT+IFax57u2Hhmu+AfPw3LzfEXpEKs4CSDRaUJj8T3qrviAOnZlzz64njYbbmzxKAX4BjB+IzUE6v0/o/jX3sxN3Y=
X-Received: by 2002:a05:600c:c1b:b0:40b:3fc7:c88a with SMTP id
 fm27-20020a05600c0c1b00b0040b3fc7c88amr1671882wmb.39.1702328296321; Mon, 11
 Dec 2023 12:58:16 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiii2etikw9LKdJ5Ebn+z-3-e5UXh3cJjBgYGJYtq3q=Ww@mail.gmail.com>
 <300b7e2b-068a-4cac-a617-ae41caa6d3b9@netscape.net> <CA+1FSiiuWz_91Wg3Az440nFKaLY_raoUy=3nGj4Zca8viKAT=Q@mail.gmail.com>
 <0bf311bb-435a-4c5d-a36c-8cfe95f92f98@netscape.net>
In-Reply-To: <0bf311bb-435a-4c5d-a36c-8cfe95f92f98@netscape.net>
From: Mario Marietto <marietto2008@gmail.com>
Date: Mon, 11 Dec 2023 21:57:39 +0100
Message-ID: <CA+1FSii0OcXw2QqkYmr372Dvv4MHPWHK=TduMVjJ3+f9BPuX6g@mail.gmail.com>
Subject: Re: xc_dom_guest_type: image not capable of booting inside a HV M
 container: Invalid kernel
To: Chuck Zmudzinski <brchuckz@netscape.net>
Cc: Elliott Mitchell <ehem+freebsd@m5p.com>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel <xen-devel@lists.xenproject.org>, 
	xen-users-request@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: multipart/alternative; boundary="00000000000064b8fb060c4231a2"

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

Experiment n. 2 :
Below I have applied the zImage patch of Julien to the Elliott Mitchell
code :

https://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebsd.git;a=3Dcommit;h=
=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd

and I've used the kernel generated by the Elliott MItchell code :

root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen #
./start-freebsd

xencall: error: Could not obtain handle on privileged command interface
/dev/xen/privcmd: No such file or directory
libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
such file or directory
cannot init xl context
xencall: error: Could not obtain handle on privileged command interface
/dev/xen/privcmd: No such file or directory
libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
such file or directory
cannot init xl context

Here I have used the kernel.bin :

# ./start-freebsd

xencall: error: Could not obtain handle on privileged command interface
/dev/xen/privcmd: No such file or directory
libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
such file or directory
cannot init xl context
xencall: error: Could not obtain handle on privileged command interface
/dev/xen/privcmd: No such file or directory
libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
such file or directory
cannot init xl context

(same error)

Anyway I think that I made some progress...


This is the freebsd.cfg file :


kernel=3D"/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel=
.bin"

memory=3D64
name=3D"freebsd"
vcpus=3D1
autoballon=3D"off"
#disk=3D[ 'phy:/dev/loop0,xvda,w' ]
disk=3D[ 'phy:/dev/md0s2a,xvda,w' ]


And this is the start-freebsd.sh script that I've used :


mdconfig -a -t vnode -f FreeBSD-13.2-RELEASE-armv7.img -u 0
xl create freebsd.cfg
xl console freebsd






On Mon, Dec 11, 2023 at 7:41=E2=80=AFPM Chuck Zmudzinski <brchuckz@netscape=
.net>
wrote:

> On 12/11/2023 12:59 PM, Mario Marietto wrote:
> > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xe=
n/kernel
> # file
> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
> >
> > ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamically
> linked, interpreter /red/herring,
> BuildID[sha1]=3D5e6982c9cb67d9c94571b76419142a8c495388d0, for FreeBSD 13.=
2,
> not stripped
> >
> > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xe=
n/kernel
> # file
> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.=
bin
> >
> > kernel.bin: data
>
> This needs to be :
>
> kernel.bin: Linux kernel ARM boot executable zImage (little-endian)
>
> >
> > It does not boot from the kernel.bin file.
>
> I suggest not trying to direct boot a kernel in Xen on arm unless the fil=
e
> command reports the kernel image is a Linux kernel ARM boot executable
> zImage (little endian).
>
> Did you try applying Julien's patch (link is in my earlier message) to ad=
d
> zImage support to FreeBSD? Maybe after applying the patch the kernel.bin
> file will be in the correct zImage format.
>
> The patch I linked in the earlier
>
> >
> >
> > On Mon, Dec 11, 2023 at 6:23=E2=80=AFPM Chuck Zmudzinski <brchuckz@nets=
cape.net
> <mailto:brchuckz@netscape.net>> wrote:
> >
> >     On 12/11/2023 9:02 AM, Mario Marietto wrote:
> >     > Hello.
> >     >
> >     > Finally I tried to recompile the FreeBSD kernel using the @Elliot=
t
> Mitchell <mailto:ehem+freebsd@m5p.com <mailto:ehem%2Bfreebsd@m5p.com>>
> code because I want to boot FreeBSD as domU with Xen installed on my Arm =
32
> bit Chromebook. Unfortunately it didn't work at all. Maybe I've missed
> something / I haven't understood well what to do. Please give me some
> suggestions.
> >     >
> >     > Basically this is what I did :
> >     >
> >     > $ created a vm called FreeBSD-13.2-RELEASE-armv7.img with qemu /
> kvm / libvirt / virt-manager
> >     >
> >     > $ within the vm : mkdir /build-xen
> >     >
> >     > $ cd /usr
> >     >
> >     > $ git clone https://gitlab.com/ehem/freebsd-src.git
> >     >
> >     > $ cd freebsd-src
> >     >
> >     > $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7 buildk=
ernel
> >     >
> >     > $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7
> DESTDIR=3D/build-xen installkernel
> >     >
> >     > $ echo "/dev/xbd0 / ufs rw 1 1" > /mnt/etc/fstab
> >     >
> >     > $ nano /etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm
> on secure")
> >     >
> >     > $ renamed the directories dtb to dtb_ and kernel to kernel_ that
> are inside the /boot dir of the vm
> >     >
> >     > $ copied the directory dtb and kernel from the directory
> /build-xen to the directory /boot inside the vm
> >     >
> >     > $ shut down the vm
> >     >
> >     > $ copied the directory /build-xen outside of the vm using this
> method (in this case I used Linux installed on the Host OS,because the
> kernel that I'm using on the Chromebook has the kernel parameter related =
to
> the ufs2 fs set to off) :
> >     >
> >     > on my X64 workstation :
> >     >
> >     > # modprobe ufs
> >     >
> >     > # sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.img
> >     >
> >     > # ls /dev/loop0*
> >     >
> >     > /dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop0p5
> >     >
> >     > # mount -t ufs -o ufstype=3Dufs2 /dev/loop0p5 ./FreeBSD-xen
> >     >
> >     > then :
> >     >
> >     > # nano freebsd.cfg
> >     >
> >     >
> kernel=3D"/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kern=
el/kernel"
> >     > memory=3D64
> >     > name=3D"freebsd"
> >     > vcpus=3D1
> >     > autoballon=3D"off"
> >     > disk=3D[ 'phy:/dev/loop0,xvda,w' ]
> >     > # nano start-freebsd
> >     > losetup -fP FreeBSD-13.2-RELEASE-armv7.img
> >     > xl create freebsd.cfg
> >     > xl console freebsd
> >     >
> >     > # ./start-freebsd
> >     >
> >     > Parsing config from freebsd.cfg
> >     > xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image
> not capable of booting inside a HV
> >     > M container: Invalid kernel
> >
> >     It is detecting the kernel as an elf binary. IIUC, Xen on arm guest=
s
> should have zImage kernels, not elf.
> >
> >     > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_imag=
e
> failed
> >     > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
> 1:cannot (re-)build domain: -3
> >     > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
> 1:Non-existent domain
> >     > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
> 1:Unable to destroy guest
> >     > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
> 1:Destruction of domain failed
> >     > freebsd is an invalid domain identifier (rc=3D-6)
> >     >
> >     > I have also tried with kernel.bin :
> >     >
> >     > # nano freebsd.cfg
> >     >
> >     >
> kernel=3D"/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kern=
el/kernel.bin"
> >     > memory=3D64
> >     > name=3D"freebsd"
> >     > vcpus=3D1
> >     > autoballon=3D"off"
> >     > disk=3D[ 'phy:/dev/loop0,xvda,w' ]
> >     >
> >     > # ./start-freebsd
> >     >
> >     > Parsing config from freebsd.cfg
> >     > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loade=
r
> found: Invalid kernel
> >     > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_imag=
e
> failed
> >     > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
> 2:cannot (re-)build domain: -3
> >     > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
> 2:Non-existent domain
> >     > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
> 2:Unable to destroy guest
> >     > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
> 2:Destruction of domain failed
> >     > freebsd is an invalid domain identifier (rc=3D-6)
> >     >
> >     > --
> >     > Mario.
> >
> >     I would be interested to see the output of :
> >
> >     $ file
> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
> >
> >     and
> >
> >     $ file
> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.=
bin
> >
> >     I have been trying out Julien's old patch set from 2014, and in
> there was this patch :
> >
> >     > arm: Add zImage support
> >     >
> >     > Currently Xen on ARM is only supported zImage for guest kernel.
> Adding support
> >     > for ARM ELF in the toolstack looks a bit complicate for ARM
> (though there is
> >     > an x86 support).
> >
> >     Link to Julien's 2014 patch to provide zImage support for FreeBSD :
> >
> >
> https://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebsd.git;a=3Dcommit=
;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd
> <
> https://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebsd.git;a=3Dcommit=
;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd
> >
> >
> >     When using Julien's patches, from 'file' I find that the kernel fil=
e
> is in
> >     the elf format, and the kernel.bin file is in the zImage format, so
> I have
> >     been trying to boot the kernel.bin file.
> >
> >
> >
> > --
> > Mario.
>
>

--=20
Mario.

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

<div dir=3D"ltr"><div><font size=3D"6"><span style=3D"font-family:monospace=
"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">Experi=
ment n. 2 : <br></span></span></font></div><div><font size=3D"6"><span styl=
e=3D"font-family:monospace"><span style=3D"color:rgb(0,0,0);background-colo=
r:rgb(255,255,255)">Below I have applied the zImage patch of Julien to the =
Elliott Mitchell code :</span></span></font></div><div><font size=3D"6"><sp=
an style=3D"font-family:monospace"><span style=3D"color:rgb(0,0,0);backgrou=
nd-color:rgb(255,255,255)"><br></span></span></font></div><div><a href=3D"h=
ttps://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebsd.git;a=3Dcommit;h=
=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd">https://xenbits.xen.org/gitweb=
/?p=3Dpeople/julieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f3=
61dc62797fbcd</a></div><div><font size=3D"6"><span style=3D"font-family:mon=
ospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
</span></span></font></div><div><font size=3D"6"><span style=3D"font-family=
:monospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,25=
5)"><br></span></span></font></div><div><font size=3D"6"><span style=3D"fon=
t-family:monospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(25=
5,255,255)">and I&#39;ve used the kernel generated by the Elliott MItchell =
code :</span></span></font></div><div><font size=3D"6"><span style=3D"font-=
family:monospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,=
255,255)"></span></span></font></div><div><font size=3D"6"><span style=3D"f=
ont-family:monospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(=
255,255,255)"></span></span></font></div><div><font size=3D"6"><span style=
=3D"font-family:monospace"><span style=3D"color:rgb(0,0,0);background-color=
:rgb(255,255,255)"><br></span></span></font></div><div><font size=3D"6"><sp=
an style=3D"font-family:monospace"><span style=3D"color:rgb(0,0,0);backgrou=
nd-color:rgb(255,255,255)">root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/d=
omU/freebsd-xen # ./start-freebsd
</span></span></font></div><div><font size=3D"6"><span style=3D"font-family=
:monospace"></span></font></div><div><font size=3D"6"><span style=3D"font-f=
amily:monospace"></span></font></div><div><br></div><div><font size=3D"6"><=
span style=3D"font-family:monospace">xencall: error: Could not obtain handl=
e on privileged command interface /dev/xen/privcmd: No such fi</span><span =
style=3D"font-family:monospace">le or directory
</span></font></div><div><span style=3D"font-family:monospace"><font size=
=3D"6">libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle:=
 No such file or directory=C2=A0</font></span></div><div><span style=3D"fon=
t-family:monospace"><font size=3D"6">cannot init xl context
</font></span></div><div><span style=3D"font-family:monospace"></span></div=
><span style=3D"font-family:monospace"><font size=3D"6">xencall: error: Cou=
ld not obtain handle on privileged command interface /dev/xen/privcmd: No s=
uch file or directory
<br></font></span><div><span style=3D"font-family:monospace"><font size=3D"=
6">libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No =
such file or directory
<br></font></span></div><div><span style=3D"font-family:monospace"><font si=
ze=3D"6">cannot init xl context</font></span></div><div><span style=3D"font=
-family:monospace"><font size=3D"6"><br></font></span></div><div><span styl=
e=3D"font-family:monospace"><font size=3D"6">Here I have used the kernel.bi=
n :</font></span></div><div><font size=3D"6"><span style=3D"font-family:mon=
ospace"><br></span></font></div><div><span style=3D"font-family:monospace">=
<font size=3D"6"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,2=
55,255)"># ./start-freebsd</span></font></span></div><div><span style=3D"fo=
nt-family:monospace"><font size=3D"6"><span style=3D"color:rgb(0,0,0);backg=
round-color:rgb(255,255,255)">=C2=A0</span><br>xencall: error: Could not ob=
tain handle on privileged command interface /dev/xen/privcmd: No such file =
or directory
<br>libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No=
 such file or directory
<br>cannot init xl context
<br>xencall: error: Could not obtain handle on privileged command interface=
 /dev/xen/privcmd: No such file or directory
<br>libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No=
 such file or directory
<br>cannot init xl context=C2=A0</font></span></div><div><span style=3D"fon=
t-family:monospace"><font size=3D"6"><br></font></span></div><div><span sty=
le=3D"font-family:monospace"><font size=3D"6">(same error)=C2=A0</font></sp=
an></div><div><span style=3D"font-family:monospace"><font size=3D"6"><br></=
font></span></div><div><span style=3D"font-family:monospace"><font size=3D"=
6">Anyway I think that I made some progress...</font></span></div><div><spa=
n style=3D"font-family:monospace"><font size=3D"6"><br></font></span></div>=
<div><span style=3D"font-family:monospace"><font size=3D"6"><br></font></sp=
an></div><div><span style=3D"font-family:monospace"><font size=3D"6">This i=
s the freebsd.cfg file :<br></font></span></div><div><span style=3D"font-fa=
mily:monospace"><font size=3D"6"><br></font></span></div><div><span style=
=3D"font-family:monospace"><font size=3D"6"><br></font></span></div><div><s=
pan style=3D"font-family:monospace"><font size=3D"6"><span style=3D"color:r=
gb(0,0,0);background-color:rgb(255,255,255)">kernel=3D&quot;/mnt/zroot2/zro=
ot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel.bin&quot;
</span><br>memory=3D64
<br>name=3D&quot;freebsd&quot;
<br>vcpus=3D1
<br>autoballon=3D&quot;off&quot;
<br>#disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]
<br>disk=3D[ &#39;phy:/dev/md0s2a,xvda,w&#39; ]</font></span></div><div><sp=
an style=3D"font-family:monospace"><font size=3D"6"><br></font></span></div=
><div><span style=3D"font-family:monospace"><font size=3D"6"><br></font></s=
pan></div><div><span style=3D"font-family:monospace"><font size=3D"6">And t=
his is the start-freebsd.sh script that I&#39;ve used :</font></span></div>=
<div><br></div><div><br><span style=3D"font-family:monospace"></span></div>=
<div><span style=3D"font-family:monospace"><font size=3D"6">mdconfig -a -t =
vnode -f FreeBSD-13.2-RELEASE-armv7.img -u 0
<br>xl create freebsd.cfg
<br>xl console freebsd</font><br>
<br></span><span style=3D"font-family:monospace"> <br><br></span></div><div=
><span style=3D"font-family:monospace"></span></div><span style=3D"font-fam=
ily:monospace">
<br><br></span></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Mon, Dec 11, 2023 at 7:41=E2=80=AFPM Chuck Zmudzinski &l=
t;<a href=3D"mailto:brchuckz@netscape.net">brchuckz@netscape.net</a>&gt; wr=
ote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 12/11/20=
23 12:59 PM, Mario Marietto wrote:<br>
&gt; root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-x=
en/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen=
/kernel/kernel<br>
&gt; <br>
&gt; ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamically =
linked, interpreter /red/herring, BuildID[sha1]=3D5e6982c9cb67d9c94571b7641=
9142a8c495388d0, for FreeBSD 13.2, not stripped<br>
&gt; <br>
&gt; root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-x=
en/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen=
/kernel/kernel.bin<br>
&gt; <br>
&gt; kernel.bin: data=C2=A0<br>
<br>
This needs to be :<br>
<br>
kernel.bin: Linux kernel ARM boot executable zImage (little-endian)<br>
<br>
&gt; <br>
&gt; It does not boot from the kernel.bin file.<br>
<br>
I suggest not trying to direct boot a kernel in Xen on arm unless the file =
command reports the kernel image is a Linux kernel ARM boot executable zIma=
ge (little endian).<br>
<br>
Did you try applying Julien&#39;s patch (link is in my earlier message) to =
add zImage support to FreeBSD? Maybe after applying the patch the kernel.bi=
n file will be in the correct zImage format.<br>
<br>
The patch I linked in the earlier <br>
<br>
&gt; <br>
&gt; <br>
&gt; On Mon, Dec 11, 2023 at 6:23=E2=80=AFPM Chuck Zmudzinski &lt;<a href=
=3D"mailto:brchuckz@netscape.net" target=3D"_blank">brchuckz@netscape.net</=
a> &lt;mailto:<a href=3D"mailto:brchuckz@netscape.net" target=3D"_blank">br=
chuckz@netscape.net</a>&gt;&gt; wrote:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0On 12/11/2023 9:02 AM, Mario Marietto wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Hello.<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Finally I tried to recompile the FreeBSD kerne=
l using the @Elliott Mitchell &lt;mailto:<a href=3D"mailto:ehem%2Bfreebsd@m=
5p.com" target=3D"_blank">ehem+freebsd@m5p.com</a> &lt;mailto:<a href=3D"ma=
ilto:ehem%252Bfreebsd@m5p.com" target=3D"_blank">ehem%2Bfreebsd@m5p.com</a>=
&gt;&gt; code because I want to boot FreeBSD as domU with Xen installed on =
my Arm 32 bit Chromebook. Unfortunately it didn&#39;t work at all. Maybe I&=
#39;ve missed something / I haven&#39;t understood well what to do. Please =
give me some suggestions.<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Basically this is what I did :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ created a vm called FreeBSD-13.2-RELEASE-arm=
v7.img with qemu / kvm / libvirt / virt-manager<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ within the vm : mkdir /build-xen<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ cd /usr<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ git clone <a href=3D"https://gitlab.com/ehem=
/freebsd-src.git" rel=3D"noreferrer" target=3D"_blank">https://gitlab.com/e=
hem/freebsd-src.git</a><br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ cd freebsd-src<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_=
ARCH=3Darmv7 buildkernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_=
ARCH=3Darmv7 DESTDIR=3D/build-xen installkernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ echo &quot;/dev/xbd0 / ufs rw 1 1&quot; &gt;=
 /mnt/etc/fstab<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ nano /etc/ttys (add the line &#39;xc0 &quot;=
/usr/libexec/getty Pc&quot; xterm on secure&quot;)<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ renamed the directories dtb to dtb_ and kern=
el to kernel_ that are inside the /boot dir of the vm<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ copied the directory dtb and kernel from the=
 directory /build-xen to the directory /boot inside the vm<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ shut down the vm<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ copied the directory /build-xen outside of t=
he vm using this method (in this case I used Linux installed on the Host OS=
,because the kernel that I&#39;m using on the Chromebook has the kernel par=
ameter related to the ufs2 fs set to off) :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; on my X64 workstation :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # modprobe ufs<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.=
img<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # ls /dev/loop0*<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; /dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop=
0p5<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # mount -t ufs -o ufstype=3Dufs2 /dev/loop0p5 =
./FreeBSD-xen<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; then :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # nano freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; kernel=3D&quot;/mnt/zroot2/zroot2/OS/Chromeboo=
k/domU/freebsd-xen/boot-xen/kernel/kernel&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; memory=3D64<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; name=3D&quot;freebsd&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; vcpus=3D1<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; autoballon=3D&quot;off&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # nano start-freebsd<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; losetup -fP FreeBSD-13.2-RELEASE-armv7.img<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; xl create freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; xl console freebsd<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # ./start-freebsd<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Parsing config from freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; xc: error: panic: xg_dom_elfloader.c:63: xc_do=
m_guest_type: image not capable of booting inside a HV<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; M container: Invalid kernel<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0It is detecting the kernel as an elf binary. IIUC, =
Xen on arm guests should have zImage kernels, not elf.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_dom.c:571:libxl__build_dom=
: xc_dom_parse_image failed<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_create.c:1640:domcreate_re=
build_done: Domain 1:cannot (re-)build domain: -3<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1183:libxl__destr=
oy_domid: Domain 1:Non-existent domain<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1137:domain_destr=
oy_callback: Domain 1:Unable to destroy guest<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1064:domain_destr=
oy_cb: Domain 1:Destruction of domain failed<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; freebsd is an invalid domain identifier (rc=3D=
-6)<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; I have also tried with kernel.bin :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # nano freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; kernel=3D&quot;/mnt/zroot2/zroot2/OS/Chromeboo=
k/domU/freebsd-xen/boot-xen/kernel/kernel.bin&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; memory=3D64<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; name=3D&quot;freebsd&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; vcpus=3D1<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; autoballon=3D&quot;off&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # ./start-freebsd<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Parsing config from freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; xc: error: panic: xg_dom_core.c:689: xc_dom_fi=
nd_loader: no loader found: Invalid kernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_dom.c:571:libxl__build_dom=
: xc_dom_parse_image failed<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_create.c:1640:domcreate_re=
build_done: Domain 2:cannot (re-)build domain: -3<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1183:libxl__destr=
oy_domid: Domain 2:Non-existent domain<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1137:domain_destr=
oy_callback: Domain 2:Unable to destroy guest<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1064:domain_destr=
oy_cb: Domain 2:Destruction of domain failed<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; freebsd is an invalid domain identifier (rc=3D=
-6)<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; --<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Mario.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0I would be interested to see the output of :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0$ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebs=
d-xen/boot-xen/kernel/kernel<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0and<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0$ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebs=
d-xen/boot-xen/kernel/kernel.bin<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0I have been trying out Julien&#39;s old patch set f=
rom 2014, and in there was this patch :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; arm: Add zImage support<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Currently Xen on ARM is only supported zImage =
for guest kernel. Adding support<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; for ARM ELF in the toolstack looks a bit compl=
icate for ARM (though there is<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; an x86 support).<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0Link to Julien&#39;s 2014 patch to provide zImage s=
upport for FreeBSD :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0<a href=3D"https://xenbits.xen.org/gitweb/?p=3Dpeop=
le/julieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361dc62797f=
bcd" rel=3D"noreferrer" target=3D"_blank">https://xenbits.xen.org/gitweb/?p=
=3Dpeople/julieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361d=
c62797fbcd</a> &lt;<a href=3D"https://xenbits.xen.org/gitweb/?p=3Dpeople/ju=
lieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd" =
rel=3D"noreferrer" target=3D"_blank">https://xenbits.xen.org/gitweb/?p=3Dpe=
ople/julieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361dc6279=
7fbcd</a>&gt;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0When using Julien&#39;s patches, from &#39;file&#39=
; I find that the kernel file is in<br>
&gt;=C2=A0 =C2=A0 =C2=A0the elf format, and the kernel.bin file is in the z=
Image format, so I have<br>
&gt;=C2=A0 =C2=A0 =C2=A0been trying to boot the kernel.bin file.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; -- <br>
&gt; Mario.<br>
<br>
</blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre=
fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d=
iv>

--00000000000064b8fb060c4231a2--


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 21:01:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 21:01:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652532.1018430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCnP1-0002Ur-Uz; Mon, 11 Dec 2023 21:01:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652532.1018430; Mon, 11 Dec 2023 21: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 1rCnP1-0002Uk-RE; Mon, 11 Dec 2023 21:01:23 +0000
Received: by outflank-mailman (input) for mailman id 652532;
 Mon, 11 Dec 2023 21: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=jRWc=HW=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1rCnP0-0002Ue-Sn
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 21:01:23 +0000
Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com
 [64.147.123.21]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6dfd1259-9868-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 22:01:20 +0100 (CET)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.48])
 by mailout.west.internal (Postfix) with ESMTP id CAC25320194B;
 Mon, 11 Dec 2023 16:01:16 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute7.internal (MEProxy); Mon, 11 Dec 2023 16:01:17 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 11 Dec 2023 16:01:15 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6dfd1259-9868-11ee-98e8-6d05b1d4d9a1
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:sender:subject:subject:to:to; s=fm1; t=
	1702328476; x=1702414876; bh=9nyOUlz9xLs7Zxj7qPb/UfndicVFNiPM4Wz
	/Q1tLYLs=; b=hWoRZr6y1E2kmiJwHJDHZasJ3WxXC+2Qff/ZR/JnoSXc1O+7kti
	sWZBFo4XOIRCqW5P3rxLL2QSr1kta0mlVtnDUUMxur3qsFIr0MGugCBPETBcSigH
	e4YTrF4eEwitm3+hYfdN88Blwz5+FXoRH5MOmo+yGYZTUV49A42yVyZAQQV7zMeN
	3c4/x9KOZ9rGFC3/UsgVS3Lx+CurHIbgzumZ4wJiGtKTTaXq/tblNeWATsfEZ6SU
	hxEVIW9CHfa9KEh4yGuPf+98JLDn+SwXWLuPnvPTaKHCuVJXiprMuOjf1LBziIKD
	LcvGghp1828HEOBgFI8SsCviAWb5uGcBKSQ==
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:sender:subject
	:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm1; t=1702328476; x=1702414876; bh=9nyOUlz9xLs7Z
	xj7qPb/UfndicVFNiPM4Wz/Q1tLYLs=; b=AnuASVGUuR33rnL+ADyohKDdLoUz/
	mLLnKl8ZJ1Zx7I0hxMtNemm2dFIen2ZNG5qyG6Fr2X/cvIvsWE6e41WBuYxTWfGs
	1O1UxNGKGd4y/RJT6/LegITyDVmn76nHIrSR8zAHN9dZWtYlVC1RuWqXTnYNiM7U
	ZOirWXM9MWqnwPsJfbK+T+KFDPBIEXENe8TBwxZbt5quz3DbtUe9sKr9lgvqZ3a0
	78+r1LDYVqMZhOADZCB+1lTC/zj6WE+XnYhco4L2TX661QirpNDZC1SPzSzn4+9Q
	w5OpN5bSBFLgExGxM2lq4/ryXjsSRFhtLv6zdIHAiVabLG4aT+SlNMepA==
X-ME-Sender: <xms:m3h3ZWde92h7LEfzprROlZ33pt9IGmJyBSR0t6k3ajogHG9tUL3LDA>
    <xme:m3h3ZQPYDZEB_LdRtTW-WOcCRkb6v-SICliIzJuiakX2ShuVdU_8AhAOHBfRHoQwn
    xKnaj9DLC2HcA>
X-ME-Received: <xmr:m3h3ZXgDHOcLLa0EhC4wYFcb7y8FLz3N9r2n3sEv-GgSOXeqGDTrG615PwXnM7DRlpZ2YwJGjPDvYBFPtVWT5OVdnjf7thaK-Q>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudelvddgudegiecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
    necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
    enucfjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghr
    vghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesih
    hnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefg
    udelteefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlh
    hushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgv
    khesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:m3h3ZT-2jhk_KfiMUqjvhrsVkcto6NFaceEsLo93Gx8k6o9WJSAXZQ>
    <xmx:m3h3ZSv31_mlHMGI1E8hF5plWmBk8UVblHpShrSSffY7sVHINNHpnA>
    <xmx:m3h3ZaF7jw_56vptCBtsGlONhpRDjaSNNetg1u1AAc3UDyWopyciKg>
    <xmx:nHh3ZT7oJdH3G7ODyFZPr31-TfTgBbr6CG3aNkvAojSFj3tNgmauiQ>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 11 Dec 2023 22:01:12 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: George Dunlap <george.dunlap@cloud.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [PATCH] security-process.pandoc: Statement on issuing XSAs for
 older versions of Xen
Message-ID: <ZXd4mHml7lo1AF8+@mail-itl>
References: <20231027142602.57037-1-george.dunlap@cloud.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="0+26f8Jimsz8z4+5"
Content-Disposition: inline
In-Reply-To: <20231027142602.57037-1-george.dunlap@cloud.com>


--0+26f8Jimsz8z4+5
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 11 Dec 2023 22:01:12 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: George Dunlap <george.dunlap@cloud.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [PATCH] security-process.pandoc: Statement on issuing XSAs for
 older versions of Xen

On Fri, Oct 27, 2023 at 03:26:02PM +0100, George Dunlap wrote:
> We recently had a situation where a security issue was discovered
> which only affected versions of Xen out of security support from an
> upstream perspective.  However, many downstreams (including XenServer
> and SUSE) still had supported products based on the versions affected.
>=20
> Specify what the security team will do in this situation in the
> future.  As always, the goal here is to be fair and helpful, without
> adding to the workload of the security team.  Inviting downstreams to
> list versions and ranges, as well as expecting them to be involved in
> the patch, gives organizations without representation in the security
> team the opportunity to decide to engage in the security process.  At
> the same time, it puts he onus of determining which products and which
> versions might be affected, as well as the core work of creating and
> testing a patch, on downstreams.
>=20
> Signed-off-by: George Dunlap <george.dunlap@cloud.com>

Hi George,

This is interesting proposal, indeed it looks fair, given XenServer and
SUSE basically have this option already. In practice, I'm not sure how
useful that would be for Qubes OS, given we don't consider DoS-only bugs
security issues needing coordinated disclosure. It feels like infoleak
or privesc bugs are either found earlier or affect newer versions too
and in both cases they fall into standard security support anyway. But
that very well might be just an impression due to no such policy
earlier.=20

In any case, in Qubes OS we support Xen 4.17 and 4.14 - the latter only
for about 6 months more.

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

--0+26f8Jimsz8z4+5
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmV3eJgACgkQ24/THMrX
1yxpZQf/flUzV7BqyWgfyuFJsB+mNyV5eiBtIOZFZb13iiG4LrSUB452GV6B16in
3yJTlHCb6bROGw4S8OnDb+xPjkK2IJsixeCVmi/8qYk5rSSq9qbCz9mi1MqltT2O
dj1K7ZwpatMDd80dPFVM60hPbRhrMKedm0Bv3RuFakfNSFbOU8UpxgC51eCkUbIv
Ihqg6gt6rWE8xJhs6EN3xestLC2uiMrH1nJPlKDU0XaewvW3Qi0JHSZ/gYbDKNf/
wWpbn6zSlH63HLct3GUiiCCJmjfEqXjMsUeMXHXQy98esVPEe3EKqwclLatmfNHJ
dLKsvzL8oGb7CHNjlXzjj/zKp3nrUA==
=+5vr
-----END PGP SIGNATURE-----

--0+26f8Jimsz8z4+5--


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 22:09:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 22:09:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652542.1018440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCoSy-0003Dt-BS; Mon, 11 Dec 2023 22:09:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652542.1018440; Mon, 11 Dec 2023 22:09: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 1rCoSy-0003Dm-7h; Mon, 11 Dec 2023 22:09:32 +0000
Received: by outflank-mailman (input) for mailman id 652542;
 Mon, 11 Dec 2023 22:09: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=pUvq=HW=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rCoSw-0003Db-Ku
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 22:09:30 +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 f3d0a1b3-9871-11ee-98e8-6d05b1d4d9a1;
 Mon, 11 Dec 2023 23:09:28 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5510479806dso2520211a12.0; 
 Mon, 11 Dec 2023 14:09:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3d0a1b3-9871-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702332568; x=1702937368; 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=KUNuGPqXAmDs867L0ajVGnVdPitmBT3+0DI8BU2MYec=;
        b=RKDZJer9TEyC1gYyve6wf8rX3LIaid+HyncoyQkcBZHnVs+Hnb43rOyDbjomsqT1N/
         uUhj7/uY3hifE3I4ghOhUph4WWYOhtpWPcQ+CJJXlGyuh1nr83DdWg4uG+w/W54s/LYV
         crVx8gjOuB4KBxLqtiZfhxQWnp/1hZ4VHqRxjla1pWtNUhqn2A5qFs6U+b/RaiuMP9Jj
         EujATuko8fzlTApdX4AODlO5r9jzLDqA8kxzx2BlBEvxcbL7cbshJHgPZxy9/8uN1WIp
         PivnHsiARSvNieuzsY2kxZiWQhi4N1488T7Qlu2WHzmA+ub33t3/P6zYuXjAMLlx/wEK
         QNwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702332568; x=1702937368;
        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=KUNuGPqXAmDs867L0ajVGnVdPitmBT3+0DI8BU2MYec=;
        b=JhZEjxEz+OqYUGKh26JM4Y0E4Jt0jVawsLZxvtRgRo7eL9SuptAf8JXHXC+AMLn0Ks
         AI3vgPOAjmwb1S8m6i6XzOhGwrkNqUofw1RpYOydbW0arfu4LAA8XtKMkjuwoYAEO9IE
         7yJtDO55tfjMflDWVBgs5CtmWyFs1G+qUlc5QqGJebg3m/lLzh8DWrMWL2SBO9G5oA32
         lXLjcjo9WRW/SzvgL0wuE4IFq0n+mRC4OuDjHQ1uebMLiTFWIRmo76P63gT9XiKZlg9J
         76UcfhFI+T0Xq3q8n/UL01q6g/q8+jBGJTJP2kBYOrTc3SmEEf8ngGVO2ht3mxTW+wiV
         mSCQ==
X-Gm-Message-State: AOJu0YySJLxHE1RnDOF8pYk/QQNESehHWScfhzYrvJQlISDm+GOXFjXn
	09ntuo/r1umP6ehnUVPvHecCRwoypBVH0ACEfKk=
X-Google-Smtp-Source: AGHT+IGbtDbr5dhLbGVOPS3vD2TONCdicwIRGCnK19MQGiPP0oWspp43M/4BCUu9D94jOyKQi2ED0zmn0nJi7SVRVws=
X-Received: by 2002:a17:907:7d9e:b0:a1c:9821:bed8 with SMTP id
 oz30-20020a1709077d9e00b00a1c9821bed8mr1877871ejc.110.1702332567808; Mon, 11
 Dec 2023 14:09:27 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiii2etikw9LKdJ5Ebn+z-3-e5UXh3cJjBgYGJYtq3q=Ww@mail.gmail.com>
 <300b7e2b-068a-4cac-a617-ae41caa6d3b9@netscape.net> <CA+1FSiiuWz_91Wg3Az440nFKaLY_raoUy=3nGj4Zca8viKAT=Q@mail.gmail.com>
 <0bf311bb-435a-4c5d-a36c-8cfe95f92f98@netscape.net> <CA+1FSii0OcXw2QqkYmr372Dvv4MHPWHK=TduMVjJ3+f9BPuX6g@mail.gmail.com>
In-Reply-To: <CA+1FSii0OcXw2QqkYmr372Dvv4MHPWHK=TduMVjJ3+f9BPuX6g@mail.gmail.com>
From: Mario Marietto <marietto2008@gmail.com>
Date: Mon, 11 Dec 2023 23:08:51 +0100
Message-ID: <CA+1FSii6RRM7G52kPrD80+yR=giWcB8--kpGDDQkkEK=0dnCmw@mail.gmail.com>
Subject: Re: xc_dom_guest_type: image not capable of booting inside a HV M
 container: Invalid kernel
To: Chuck Zmudzinski <brchuckz@netscape.net>
Cc: Elliott Mitchell <ehem+freebsd@m5p.com>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel <xen-devel@lists.xenproject.org>, 
	xen-users-request@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: multipart/alternative; boundary="000000000000fe6de8060c432f17"

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

My apologies for the mistake I made on the experiment n. 2 ; I have used my
X86 System,but I should have used the Arm chromebook :)
Anyway :

root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen#
./start-freebsd

Parsing config from freebsd.cfg

xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found:
Invalid kernel (used the kernel.bin produced by the Elliott Mitchell code
patched by the zImage patch by Julien)
libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 3:cannot
(re-)build domain: -3
libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
3:Non-existent domain
libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 3:Unable
to destroy guest
libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 3:Destruction
of domain failed
freebsd is an invalid domain identifier (rc=3D-6)

root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen#
./start-freebsd

Parsing config from freebsd.cfg
xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not
capable of booting inside a HVM container: Invalid kernel (used the kernel
produced by the Elliott Mitchell code patched by the zImage patch by Julien=
)
libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 4:cannot
(re-)build domain: -3
libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
4:Non-existant domain
libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 4:Unable
to destroy guest
libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 4:Destruction
of domain failed
freebsd is an invalid domain identifier (rc=3D-6)

On Mon, Dec 11, 2023 at 9:57=E2=80=AFPM Mario Marietto <marietto2008@gmail.=
com>
wrote:

> Experiment n. 2 :
> Below I have applied the zImage patch of Julien to the Elliott Mitchell
> code :
>
>
> https://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebsd.git;a=3Dcommit=
;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd
>
> and I've used the kernel generated by the Elliott MItchell code :
>
> root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen #
> ./start-freebsd
>
> xencall: error: Could not obtain handle on privileged command interface
> /dev/xen/privcmd: No such file or directory
> libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
> such file or directory
> cannot init xl context
> xencall: error: Could not obtain handle on privileged command interface
> /dev/xen/privcmd: No such file or directory
> libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
> such file or directory
> cannot init xl context
>
> Here I have used the kernel.bin :
>
> # ./start-freebsd
>
> xencall: error: Could not obtain handle on privileged command interface
> /dev/xen/privcmd: No such file or directory
> libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
> such file or directory
> cannot init xl context
> xencall: error: Could not obtain handle on privileged command interface
> /dev/xen/privcmd: No such file or directory
> libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No
> such file or directory
> cannot init xl context
>
> (same error)
>
> Anyway I think that I made some progress...
>
>
> This is the freebsd.cfg file :
>
>
> kernel=3D"/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kern=
el.bin"
>
> memory=3D64
> name=3D"freebsd"
> vcpus=3D1
> autoballon=3D"off"
> #disk=3D[ 'phy:/dev/loop0,xvda,w' ]
> disk=3D[ 'phy:/dev/md0s2a,xvda,w' ]
>
>
> And this is the start-freebsd.sh script that I've used :
>
>
> mdconfig -a -t vnode -f FreeBSD-13.2-RELEASE-armv7.img -u 0
> xl create freebsd.cfg
> xl console freebsd
>
>
>
>
>
>
> On Mon, Dec 11, 2023 at 7:41=E2=80=AFPM Chuck Zmudzinski <brchuckz@netsca=
pe.net>
> wrote:
>
>> On 12/11/2023 12:59 PM, Mario Marietto wrote:
>> > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-x=
en/kernel
>> # file
>> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
>> >
>> > ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamically
>> linked, interpreter /red/herring,
>> BuildID[sha1]=3D5e6982c9cb67d9c94571b76419142a8c495388d0, for FreeBSD 13=
.2,
>> not stripped
>> >
>> > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-x=
en/kernel
>> # file
>> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel=
.bin
>> >
>> > kernel.bin: data
>>
>> This needs to be :
>>
>> kernel.bin: Linux kernel ARM boot executable zImage (little-endian)
>>
>> >
>> > It does not boot from the kernel.bin file.
>>
>> I suggest not trying to direct boot a kernel in Xen on arm unless the
>> file command reports the kernel image is a Linux kernel ARM boot executa=
ble
>> zImage (little endian).
>>
>> Did you try applying Julien's patch (link is in my earlier message) to
>> add zImage support to FreeBSD? Maybe after applying the patch the
>> kernel.bin file will be in the correct zImage format.
>>
>> The patch I linked in the earlier
>>
>> >
>> >
>> > On Mon, Dec 11, 2023 at 6:23=E2=80=AFPM Chuck Zmudzinski <brchuckz@net=
scape.net
>> <mailto:brchuckz@netscape.net>> wrote:
>> >
>> >     On 12/11/2023 9:02 AM, Mario Marietto wrote:
>> >     > Hello.
>> >     >
>> >     > Finally I tried to recompile the FreeBSD kernel using the
>> @Elliott Mitchell <mailto:ehem+freebsd@m5p.com <mailto:
>> ehem%2Bfreebsd@m5p.com>> code because I want to boot FreeBSD as domU
>> with Xen installed on my Arm 32 bit Chromebook. Unfortunately it didn't
>> work at all. Maybe I've missed something / I haven't understood well wha=
t
>> to do. Please give me some suggestions.
>> >     >
>> >     > Basically this is what I did :
>> >     >
>> >     > $ created a vm called FreeBSD-13.2-RELEASE-armv7.img with qemu /
>> kvm / libvirt / virt-manager
>> >     >
>> >     > $ within the vm : mkdir /build-xen
>> >     >
>> >     > $ cd /usr
>> >     >
>> >     > $ git clone https://gitlab.com/ehem/freebsd-src.git
>> >     >
>> >     > $ cd freebsd-src
>> >     >
>> >     > $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7 build=
kernel
>> >     >
>> >     > $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_ARCH=3Darmv7
>> DESTDIR=3D/build-xen installkernel
>> >     >
>> >     > $ echo "/dev/xbd0 / ufs rw 1 1" > /mnt/etc/fstab
>> >     >
>> >     > $ nano /etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xter=
m
>> on secure")
>> >     >
>> >     > $ renamed the directories dtb to dtb_ and kernel to kernel_ that
>> are inside the /boot dir of the vm
>> >     >
>> >     > $ copied the directory dtb and kernel from the directory
>> /build-xen to the directory /boot inside the vm
>> >     >
>> >     > $ shut down the vm
>> >     >
>> >     > $ copied the directory /build-xen outside of the vm using this
>> method (in this case I used Linux installed on the Host OS,because the
>> kernel that I'm using on the Chromebook has the kernel parameter related=
 to
>> the ufs2 fs set to off) :
>> >     >
>> >     > on my X64 workstation :
>> >     >
>> >     > # modprobe ufs
>> >     >
>> >     > # sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.img
>> >     >
>> >     > # ls /dev/loop0*
>> >     >
>> >     > /dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop0p5
>> >     >
>> >     > # mount -t ufs -o ufstype=3Dufs2 /dev/loop0p5 ./FreeBSD-xen
>> >     >
>> >     > then :
>> >     >
>> >     > # nano freebsd.cfg
>> >     >
>> >     >
>> kernel=3D"/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/ker=
nel/kernel"
>> >     > memory=3D64
>> >     > name=3D"freebsd"
>> >     > vcpus=3D1
>> >     > autoballon=3D"off"
>> >     > disk=3D[ 'phy:/dev/loop0,xvda,w' ]
>> >     > # nano start-freebsd
>> >     > losetup -fP FreeBSD-13.2-RELEASE-armv7.img
>> >     > xl create freebsd.cfg
>> >     > xl console freebsd
>> >     >
>> >     > # ./start-freebsd
>> >     >
>> >     > Parsing config from freebsd.cfg
>> >     > xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: imag=
e
>> not capable of booting inside a HV
>> >     > M container: Invalid kernel
>> >
>> >     It is detecting the kernel as an elf binary. IIUC, Xen on arm
>> guests should have zImage kernels, not elf.
>> >
>> >     > libxl: error: libxl_dom.c:571:libxl__build_dom:
>> xc_dom_parse_image failed
>> >     > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
>> 1:cannot (re-)build domain: -3
>> >     > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
>> 1:Non-existent domain
>> >     > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domai=
n
>> 1:Unable to destroy guest
>> >     > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
>> 1:Destruction of domain failed
>> >     > freebsd is an invalid domain identifier (rc=3D-6)
>> >     >
>> >     > I have also tried with kernel.bin :
>> >     >
>> >     > # nano freebsd.cfg
>> >     >
>> >     >
>> kernel=3D"/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/ker=
nel/kernel.bin"
>> >     > memory=3D64
>> >     > name=3D"freebsd"
>> >     > vcpus=3D1
>> >     > autoballon=3D"off"
>> >     > disk=3D[ 'phy:/dev/loop0,xvda,w' ]
>> >     >
>> >     > # ./start-freebsd
>> >     >
>> >     > Parsing config from freebsd.cfg
>> >     > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no
>> loader found: Invalid kernel
>> >     > libxl: error: libxl_dom.c:571:libxl__build_dom:
>> xc_dom_parse_image failed
>> >     > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
>> 2:cannot (re-)build domain: -3
>> >     > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
>> 2:Non-existent domain
>> >     > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domai=
n
>> 2:Unable to destroy guest
>> >     > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
>> 2:Destruction of domain failed
>> >     > freebsd is an invalid domain identifier (rc=3D-6)
>> >     >
>> >     > --
>> >     > Mario.
>> >
>> >     I would be interested to see the output of :
>> >
>> >     $ file
>> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
>> >
>> >     and
>> >
>> >     $ file
>> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel=
.bin
>> >
>> >     I have been trying out Julien's old patch set from 2014, and in
>> there was this patch :
>> >
>> >     > arm: Add zImage support
>> >     >
>> >     > Currently Xen on ARM is only supported zImage for guest kernel.
>> Adding support
>> >     > for ARM ELF in the toolstack looks a bit complicate for ARM
>> (though there is
>> >     > an x86 support).
>> >
>> >     Link to Julien's 2014 patch to provide zImage support for FreeBSD =
:
>> >
>> >
>> https://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebsd.git;a=3Dcommi=
t;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd
>> <
>> https://xenbits.xen.org/gitweb/?p=3Dpeople/julieng/freebsd.git;a=3Dcommi=
t;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd
>> >
>> >
>> >     When using Julien's patches, from 'file' I find that the kernel
>> file is in
>> >     the elf format, and the kernel.bin file is in the zImage format, s=
o
>> I have
>> >     been trying to boot the kernel.bin file.
>> >
>> >
>> >
>> > --
>> > Mario.
>>
>>
>
> --
> Mario.
>


--=20
Mario.

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

<div dir=3D"ltr"><div>My apologies for the mistake I made on the experiment=
 n. 2 ; I have used my X86 System,but I should have used the Arm chromebook=
 :)</div><div>Anyway :</div><div><font size=3D"4"><br></font></div><div><fo=
nt size=3D"4"><span style=3D"font-family:monospace"><span style=3D"color:rg=
b(0,0,0);background-color:rgb(255,255,255)">root@devuan-bunsen:/mnt/zroot2/=
zroot2/OS/Chromebook/domU/freebsd-xen# ./start-freebsd</span></span></font>=
</div><div><font size=3D"4"><span style=3D"font-family:monospace"><span sty=
le=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=C2=A0 </span><br=
>Parsing config from freebsd.cfg
<br></span></font></div><div><font size=3D"4"><span style=3D"font-family:mo=
nospace"><br></span></font></div><div><font size=3D"4"><span style=3D"font-=
family:monospace">xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: =
no loader found: Invalid kernel
(used the kernel.bin produced by the Elliott Mitchell code patched by the z=
Image patch by Julien)<br>libxl: error: libxl_dom.c:571:libxl__build_dom: x=
c_dom_parse_image failed
<br>libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 3:cann=
ot (re-)build domain: -3
<br>libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 3:Non-ex=
istent domain
<br>libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 3:Una=
ble to destroy guest
<br>libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 3:Destructi=
on of domain failed
<br>freebsd is an invalid domain identifier (rc=3D-6)
<br></span></font></div><div><font size=3D"4"><span style=3D"font-family:mo=
nospace"><br></span></font></div><div><font size=3D"4"><span style=3D"font-=
family:monospace">root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/=
freebsd-xen# ./start-freebsd =C2=A0<br></span></font></div><div><font size=
=3D"4"><span style=3D"font-family:monospace"><br></span></font></div><div><=
font size=3D"4"><span style=3D"font-family:monospace">Parsing config from f=
reebsd.cfg
<br>xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not c=
apable of booting inside a HVM container: Invalid kernel
</span><span style=3D"font-family:monospace">(used the kernel produced by t=
he Elliott Mitchell code patched by the zImage patch by Julien)</span><br><=
span style=3D"font-family:monospace">libxl: error: libxl_dom.c:571:libxl__b=
uild_dom: xc_dom_parse_image failed
<br>libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 4:cann=
ot (re-)build domain: -3
<br>libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 4:Non-ex=
istant domain
<br>libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 4:Una=
ble to destroy guest
<br>libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 4:Destructi=
on of domain failed
<br>freebsd is an invalid domain identifier (rc=3D-6)</span></font></div></=
div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On=
 Mon, Dec 11, 2023 at 9:57=E2=80=AFPM Mario Marietto &lt;<a href=3D"mailto:=
marietto2008@gmail.com">marietto2008@gmail.com</a>&gt; wrote:<br></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"><div dir=3D"ltr"><div><font s=
ize=3D"6"><span style=3D"font-family:monospace"><span style=3D"color:rgb(0,=
0,0);background-color:rgb(255,255,255)">Experiment n. 2 : <br></span></span=
></font></div><div><font size=3D"6"><span style=3D"font-family:monospace"><=
span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">Below I h=
ave applied the zImage patch of Julien to the Elliott Mitchell code :</span=
></span></font></div><div><font size=3D"6"><span style=3D"font-family:monos=
pace"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)"><b=
r></span></span></font></div><div><a href=3D"https://xenbits.xen.org/gitweb=
/?p=3Dpeople/julieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f3=
61dc62797fbcd" target=3D"_blank">https://xenbits.xen.org/gitweb/?p=3Dpeople=
/julieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbc=
d</a></div><div><font size=3D"6"><span style=3D"font-family:monospace"><spa=
n style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)"></span></spa=
n></font></div><div><font size=3D"6"><span style=3D"font-family:monospace">=
<span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)"><br></sp=
an></span></font></div><div><font size=3D"6"><span style=3D"font-family:mon=
ospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
and I&#39;ve used the kernel generated by the Elliott MItchell code :</span=
></span></font></div><div><font size=3D"6"><span style=3D"font-family:monos=
pace"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)"></=
span></span></font></div><div><font size=3D"6"><span style=3D"font-family:m=
onospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)=
"></span></span></font></div><div><font size=3D"6"><span style=3D"font-fami=
ly:monospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,=
255)"><br></span></span></font></div><div><font size=3D"6"><span style=3D"f=
ont-family:monospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(=
255,255,255)">root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-x=
en # ./start-freebsd
</span></span></font></div><div><font size=3D"6"><span style=3D"font-family=
:monospace"></span></font></div><div><font size=3D"6"><span style=3D"font-f=
amily:monospace"></span></font></div><div><br></div><div><font size=3D"6"><=
span style=3D"font-family:monospace">xencall: error: Could not obtain handl=
e on privileged command interface /dev/xen/privcmd: No such fi</span><span =
style=3D"font-family:monospace">le or directory
</span></font></div><div><span style=3D"font-family:monospace"><font size=
=3D"6">libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle:=
 No such file or directory=C2=A0</font></span></div><div><span style=3D"fon=
t-family:monospace"><font size=3D"6">cannot init xl context
</font></span></div><div><span style=3D"font-family:monospace"></span></div=
><span style=3D"font-family:monospace"><font size=3D"6">xencall: error: Cou=
ld not obtain handle on privileged command interface /dev/xen/privcmd: No s=
uch file or directory
<br></font></span><div><span style=3D"font-family:monospace"><font size=3D"=
6">libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No =
such file or directory
<br></font></span></div><div><span style=3D"font-family:monospace"><font si=
ze=3D"6">cannot init xl context</font></span></div><div><span style=3D"font=
-family:monospace"><font size=3D"6"><br></font></span></div><div><span styl=
e=3D"font-family:monospace"><font size=3D"6">Here I have used the kernel.bi=
n :</font></span></div><div><font size=3D"6"><span style=3D"font-family:mon=
ospace"><br></span></font></div><div><span style=3D"font-family:monospace">=
<font size=3D"6"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,2=
55,255)"># ./start-freebsd</span></font></span></div><div><span style=3D"fo=
nt-family:monospace"><font size=3D"6"><span style=3D"color:rgb(0,0,0);backg=
round-color:rgb(255,255,255)">=C2=A0</span><br>xencall: error: Could not ob=
tain handle on privileged command interface /dev/xen/privcmd: No such file =
or directory
<br>libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No=
 such file or directory
<br>cannot init xl context
<br>xencall: error: Could not obtain handle on privileged command interface=
 /dev/xen/privcmd: No such file or directory
<br>libxl: error: libxl.c:102:libxl_ctx_alloc: cannot open libxc handle: No=
 such file or directory
<br>cannot init xl context=C2=A0</font></span></div><div><span style=3D"fon=
t-family:monospace"><font size=3D"6"><br></font></span></div><div><span sty=
le=3D"font-family:monospace"><font size=3D"6">(same error)=C2=A0</font></sp=
an></div><div><span style=3D"font-family:monospace"><font size=3D"6"><br></=
font></span></div><div><span style=3D"font-family:monospace"><font size=3D"=
6">Anyway I think that I made some progress...</font></span></div><div><spa=
n style=3D"font-family:monospace"><font size=3D"6"><br></font></span></div>=
<div><span style=3D"font-family:monospace"><font size=3D"6"><br></font></sp=
an></div><div><span style=3D"font-family:monospace"><font size=3D"6">This i=
s the freebsd.cfg file :<br></font></span></div><div><span style=3D"font-fa=
mily:monospace"><font size=3D"6"><br></font></span></div><div><span style=
=3D"font-family:monospace"><font size=3D"6"><br></font></span></div><div><s=
pan style=3D"font-family:monospace"><font size=3D"6"><span style=3D"color:r=
gb(0,0,0);background-color:rgb(255,255,255)">kernel=3D&quot;/mnt/zroot2/zro=
ot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel.bin&quot;
</span><br>memory=3D64
<br>name=3D&quot;freebsd&quot;
<br>vcpus=3D1
<br>autoballon=3D&quot;off&quot;
<br>#disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]
<br>disk=3D[ &#39;phy:/dev/md0s2a,xvda,w&#39; ]</font></span></div><div><sp=
an style=3D"font-family:monospace"><font size=3D"6"><br></font></span></div=
><div><span style=3D"font-family:monospace"><font size=3D"6"><br></font></s=
pan></div><div><span style=3D"font-family:monospace"><font size=3D"6">And t=
his is the start-freebsd.sh script that I&#39;ve used :</font></span></div>=
<div><br></div><div><br><span style=3D"font-family:monospace"></span></div>=
<div><span style=3D"font-family:monospace"><font size=3D"6">mdconfig -a -t =
vnode -f FreeBSD-13.2-RELEASE-armv7.img -u 0
<br>xl create freebsd.cfg
<br>xl console freebsd</font><br>
<br></span><span style=3D"font-family:monospace"> <br><br></span></div><div=
><span style=3D"font-family:monospace"></span></div><span style=3D"font-fam=
ily:monospace">
<br><br></span></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Mon, Dec 11, 2023 at 7:41=E2=80=AFPM Chuck Zmudzinski &l=
t;<a href=3D"mailto:brchuckz@netscape.net" target=3D"_blank">brchuckz@netsc=
ape.net</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-lef=
t:1ex">On 12/11/2023 12:59 PM, Mario Marietto wrote:<br>
&gt; root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-x=
en/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen=
/kernel/kernel<br>
&gt; <br>
&gt; ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamically =
linked, interpreter /red/herring, BuildID[sha1]=3D5e6982c9cb67d9c94571b7641=
9142a8c495388d0, for FreeBSD 13.2, not stripped<br>
&gt; <br>
&gt; root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-x=
en/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen=
/kernel/kernel.bin<br>
&gt; <br>
&gt; kernel.bin: data=C2=A0<br>
<br>
This needs to be :<br>
<br>
kernel.bin: Linux kernel ARM boot executable zImage (little-endian)<br>
<br>
&gt; <br>
&gt; It does not boot from the kernel.bin file.<br>
<br>
I suggest not trying to direct boot a kernel in Xen on arm unless the file =
command reports the kernel image is a Linux kernel ARM boot executable zIma=
ge (little endian).<br>
<br>
Did you try applying Julien&#39;s patch (link is in my earlier message) to =
add zImage support to FreeBSD? Maybe after applying the patch the kernel.bi=
n file will be in the correct zImage format.<br>
<br>
The patch I linked in the earlier <br>
<br>
&gt; <br>
&gt; <br>
&gt; On Mon, Dec 11, 2023 at 6:23=E2=80=AFPM Chuck Zmudzinski &lt;<a href=
=3D"mailto:brchuckz@netscape.net" target=3D"_blank">brchuckz@netscape.net</=
a> &lt;mailto:<a href=3D"mailto:brchuckz@netscape.net" target=3D"_blank">br=
chuckz@netscape.net</a>&gt;&gt; wrote:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0On 12/11/2023 9:02 AM, Mario Marietto wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Hello.<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Finally I tried to recompile the FreeBSD kerne=
l using the @Elliott Mitchell &lt;mailto:<a href=3D"mailto:ehem%2Bfreebsd@m=
5p.com" target=3D"_blank">ehem+freebsd@m5p.com</a> &lt;mailto:<a href=3D"ma=
ilto:ehem%252Bfreebsd@m5p.com" target=3D"_blank">ehem%2Bfreebsd@m5p.com</a>=
&gt;&gt; code because I want to boot FreeBSD as domU with Xen installed on =
my Arm 32 bit Chromebook. Unfortunately it didn&#39;t work at all. Maybe I&=
#39;ve missed something / I haven&#39;t understood well what to do. Please =
give me some suggestions.<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Basically this is what I did :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ created a vm called FreeBSD-13.2-RELEASE-arm=
v7.img with qemu / kvm / libvirt / virt-manager<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ within the vm : mkdir /build-xen<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ cd /usr<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ git clone <a href=3D"https://gitlab.com/ehem=
/freebsd-src.git" rel=3D"noreferrer" target=3D"_blank">https://gitlab.com/e=
hem/freebsd-src.git</a><br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ cd freebsd-src<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_=
ARCH=3Darmv7 buildkernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ make KERNCONF=3DGENERIC TARGET=3Darm TARGET_=
ARCH=3Darmv7 DESTDIR=3D/build-xen installkernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ echo &quot;/dev/xbd0 / ufs rw 1 1&quot; &gt;=
 /mnt/etc/fstab<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ nano /etc/ttys (add the line &#39;xc0 &quot;=
/usr/libexec/getty Pc&quot; xterm on secure&quot;)<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ renamed the directories dtb to dtb_ and kern=
el to kernel_ that are inside the /boot dir of the vm<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ copied the directory dtb and kernel from the=
 directory /build-xen to the directory /boot inside the vm<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ shut down the vm<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; $ copied the directory /build-xen outside of t=
he vm using this method (in this case I used Linux installed on the Host OS=
,because the kernel that I&#39;m using on the Chromebook has the kernel par=
ameter related to the ufs2 fs set to off) :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; on my X64 workstation :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # modprobe ufs<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # sudo losetup -fP FreeBSD-13.2-RELEASE-armv7.=
img<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # ls /dev/loop0*<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; /dev/loop0 /dev/loop0p1 /dev/loop0p2 /dev/loop=
0p5<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # mount -t ufs -o ufstype=3Dufs2 /dev/loop0p5 =
./FreeBSD-xen<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; then :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # nano freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; kernel=3D&quot;/mnt/zroot2/zroot2/OS/Chromeboo=
k/domU/freebsd-xen/boot-xen/kernel/kernel&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; memory=3D64<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; name=3D&quot;freebsd&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; vcpus=3D1<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; autoballon=3D&quot;off&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # nano start-freebsd<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; losetup -fP FreeBSD-13.2-RELEASE-armv7.img<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; xl create freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; xl console freebsd<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # ./start-freebsd<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Parsing config from freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; xc: error: panic: xg_dom_elfloader.c:63: xc_do=
m_guest_type: image not capable of booting inside a HV<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; M container: Invalid kernel<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0It is detecting the kernel as an elf binary. IIUC, =
Xen on arm guests should have zImage kernels, not elf.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_dom.c:571:libxl__build_dom=
: xc_dom_parse_image failed<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_create.c:1640:domcreate_re=
build_done: Domain 1:cannot (re-)build domain: -3<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1183:libxl__destr=
oy_domid: Domain 1:Non-existent domain<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1137:domain_destr=
oy_callback: Domain 1:Unable to destroy guest<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1064:domain_destr=
oy_cb: Domain 1:Destruction of domain failed<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; freebsd is an invalid domain identifier (rc=3D=
-6)<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; I have also tried with kernel.bin :<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # nano freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; kernel=3D&quot;/mnt/zroot2/zroot2/OS/Chromeboo=
k/domU/freebsd-xen/boot-xen/kernel/kernel.bin&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; memory=3D64<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; name=3D&quot;freebsd&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; vcpus=3D1<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; autoballon=3D&quot;off&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; disk=3D[ &#39;phy:/dev/loop0,xvda,w&#39; ]<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; # ./start-freebsd<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Parsing config from freebsd.cfg<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; xc: error: panic: xg_dom_core.c:689: xc_dom_fi=
nd_loader: no loader found: Invalid kernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_dom.c:571:libxl__build_dom=
: xc_dom_parse_image failed<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_create.c:1640:domcreate_re=
build_done: Domain 2:cannot (re-)build domain: -3<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1183:libxl__destr=
oy_domid: Domain 2:Non-existent domain<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1137:domain_destr=
oy_callback: Domain 2:Unable to destroy guest<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; libxl: error: libxl_domain.c:1064:domain_destr=
oy_cb: Domain 2:Destruction of domain failed<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; freebsd is an invalid domain identifier (rc=3D=
-6)<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; --<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Mario.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0I would be interested to see the output of :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0$ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebs=
d-xen/boot-xen/kernel/kernel<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0and<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0$ file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebs=
d-xen/boot-xen/kernel/kernel.bin<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0I have been trying out Julien&#39;s old patch set f=
rom 2014, and in there was this patch :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; arm: Add zImage support<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; Currently Xen on ARM is only supported zImage =
for guest kernel. Adding support<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; for ARM ELF in the toolstack looks a bit compl=
icate for ARM (though there is<br>
&gt;=C2=A0 =C2=A0 =C2=A0&gt; an x86 support).<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0Link to Julien&#39;s 2014 patch to provide zImage s=
upport for FreeBSD :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0<a href=3D"https://xenbits.xen.org/gitweb/?p=3Dpeop=
le/julieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361dc62797f=
bcd" rel=3D"noreferrer" target=3D"_blank">https://xenbits.xen.org/gitweb/?p=
=3Dpeople/julieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361d=
c62797fbcd</a> &lt;<a href=3D"https://xenbits.xen.org/gitweb/?p=3Dpeople/ju=
lieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361dc62797fbcd" =
rel=3D"noreferrer" target=3D"_blank">https://xenbits.xen.org/gitweb/?p=3Dpe=
ople/julieng/freebsd.git;a=3Dcommit;h=3D12a7cb346b88c6d3f52a20b98f361dc6279=
7fbcd</a>&gt;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0When using Julien&#39;s patches, from &#39;file&#39=
; I find that the kernel file is in<br>
&gt;=C2=A0 =C2=A0 =C2=A0the elf format, and the kernel.bin file is in the z=
Image format, so I have<br>
&gt;=C2=A0 =C2=A0 =C2=A0been trying to boot the kernel.bin file.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; -- <br>
&gt; Mario.<br>
<br>
</blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre=
fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d=
iv>
</blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre=
fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d=
iv>

--000000000000fe6de8060c432f17--


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 22:46:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 22:46:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652548.1018449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCp2e-0000E0-7G; Mon, 11 Dec 2023 22:46:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652548.1018449; Mon, 11 Dec 2023 22:46:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCp2e-0000Dt-4b; Mon, 11 Dec 2023 22:46:24 +0000
Received: by outflank-mailman (input) for mailman id 652548;
 Mon, 11 Dec 2023 22:46: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 1rCp2d-0000Dj-0U; Mon, 11 Dec 2023 22:46: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 1rCp2c-0007bX-TA; Mon, 11 Dec 2023 22:46: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 1rCp2c-0001oS-H0; Mon, 11 Dec 2023 22:46:22 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCp2c-0004AB-Gd; Mon, 11 Dec 2023 22:46: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=n4Ss1d9NztRTKSKCRwQBTQyFyOeG3d44/hOsXtOSIuk=; b=em0kEk/mo5oyrfW4E0rLGLxAV9
	NVBmTTx+qEZlYLts4xf4HxZ73OQzmYHSLjUqoj1jiFJkR56sTwR53Y0TtCVFfsQ186fMGGiUKwzq0
	AxGeHpv6TZi8jZj4o8LfK51u8Eucv72DftVGfX080KRdt5oq/UayEr2OxPZSCdKdniqU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184092-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184092: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl: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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-libvirt: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-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2: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
X-Osstest-Versions-This:
    linux=a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 22:46:22 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 184086

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-thunderx 15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 16 saverestore-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-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 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

version targeted for testing:
 linux                a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z    9 days
Failing since        183977  2023-12-03 00:12:06 Z    8 days   18 attempts
Testing same since   184086  2023-12-11 01:14:29 Z    0 days    2 attempts

------------------------------------------------------------
343 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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 12427 lines long.)


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 23:39:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 23:39:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652555.1018463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCpsH-00074t-5H; Mon, 11 Dec 2023 23:39:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652555.1018463; Mon, 11 Dec 2023 23:39:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCpsH-00074m-2J; Mon, 11 Dec 2023 23:39:45 +0000
Received: by outflank-mailman (input) for mailman id 652555;
 Mon, 11 Dec 2023 23:39: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=aY2h=HW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rCpsE-00074f-WE
 for xen-devel@lists.xenproject.org; Mon, 11 Dec 2023 23:39:43 +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 8cb02483-987e-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 00:39:40 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id AB04ACE0AEE;
 Mon, 11 Dec 2023 23:39:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C706CC433C8;
 Mon, 11 Dec 2023 23:39: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: 8cb02483-987e-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702337973;
	bh=GpcImKuJDj6BvoMb+0+DOmWHt4CYyEqK9ufBWr4Ig5E=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=G5/365Rs4fFc9XC6G+krnraJwsPTj3D95fLS1eabB/RhW0gVyXt6qqJClbVS4gZOS
	 b8H+wO9k2IL7X03FDm+rysOyKoGMm89ofTrJsGmx3mqFlAUomTWZvoEEvZpsGHkXZU
	 WZ3qADKig5BhjAzXPN7xfp8Y+fOx0AUIDzumxWYaD6PBHeMbo87W2NcTTr3G2TqHog
	 htudmccxHl/93SiGPRVGzwnYsZIMCSzmEtq3VNBmaOj5h5u0FTtHUvpaLigyWCVeuV
	 LAG3YnaEICoGPtbk1MDQVzT+jpG257RhZQOuQJzh7AdSGa8sPds418ikduQcwLuz5M
	 SwcV/G8LE8X7Q==
Date: Mon, 11 Dec 2023 15:39:31 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ayan Kumar Halder <ayankuma@amd.com>
cc: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Ayan Kumar Halder <ayan.kumar.halder@amd.com>, stefano.stabellini@amd.com, 
    bertrand.marquis@arm.com, Volodymyr_Babchuk@epam.com, 
    xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH] xen/arm: Add emulation of Debug Data Transfer
 Registers
In-Reply-To: <fe06b322-4506-43e8-ac6f-16db49dea45f@amd.com>
Message-ID: <alpine.DEB.2.22.394.2312111534480.1703076@ubuntu-linux-20-04-desktop>
References: <20231201185009.1719183-1-ayan.kumar.halder@amd.com> <0bd65e25-aec2-4294-9a73-1cdaece52242@xen.org> <9ffe5a34-d1f4-4f4a-82eb-77c92f71040c@amd.com> <ca91f71b-9633-495f-9fb2-731bd250a561@xen.org> <8547fc3b-4e77-45d7-8063-1bee869d07db@amd.com>
 <3a9efd72-07cc-4b1d-8814-d4f6df4e6230@xen.org> <73554150-9880-447c-ac2b-e4f3ef0f76be@amd.com> <0d232ffe-1eb1-420b-af2c-70e16088a9b6@xen.org> <03a91b0f-eabe-47bd-b9fb-a9e15bdd121f@amd.com> <7420ada1-cc6c-48cf-9b2d-4c09e236dfdf@amd.com>
 <50372bd4-5e1a-4d38-abd3-19abf8e82591@xen.org> <alpine.DEB.2.22.394.2312051503060.110490@ubuntu-linux-20-04-desktop> <a4c43652-1fa6-4b42-b751-582cfd6324fe@xen.org> <alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop>
 <797e8621-e12e-4d5e-9c8c-4e3ece08009b@xen.org> <fe06b322-4506-43e8-ac6f-16db49dea45f@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1450920052-1702337874=:1703076"
Content-ID: <alpine.DEB.2.22.394.2312111537570.1703076@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-1450920052-1702337874=:1703076
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312111537571.1703076@ubuntu-linux-20-04-desktop>

On Mon, 11 Dec 2023, Ayan Kumar Halder wrote:
> On 11/12/2023 09:33, Julien Grall wrote:
> > Hi,
> 
> Hi Julien/Stefano/Bertrand/Michal,
> 
> It is a great discussion, thanks for your suggestions.
> 
> I think we have an agreement. :-)
> 
> > 
> > On 07/12/2023 21:41, Stefano Stabellini wrote:
> > > On Thu, 7 Dec 2023, Julien Grall wrote:
> > > > Hi Stefano,
> > > > 
> > > > On 05/12/2023 23:21, Stefano Stabellini wrote:
> > > > > On Tue, 5 Dec 2023, Julien Grall wrote:
> > > > > > I agree that crashing a guest is bad, but is lying to the domain
> > > > > > really
> > > > > > better? The consequence here is not that bad and hopefully it would
> > > > > > be
> > > > > > fairly
> > > > > > easy to find. But this is not always the case. So I definitely would
> > > > > > place
> > > > > > a
> > > > > > half-backed emulation more severe than a guest crash.
> > > > > 
> > > > > 
> > > > > I see where Julien is coming from, but I would go with option two:
> > > > > "emulate DCC the same way as KVM". That's because I don't think we can
> > > > > get away with crashing the guest in all cases. Although the issue came
> > > > > up with a Linux guest, it could have been triggered by a proprietary
> > > > > operating system that we cannot change, and I think Xen should support
> > > > > running unmodified operating systems.
> > > > > 
> > > > > If we go with a "half-backed emulation" solution, as Julien wrote,
> > > > > then
> > > > > it is better to be more similar to other hypervisors, that's why I
> > > > > chose
> > > > > option two instead of option three.
> > > > > 
> > > > > But at the same time I recognize the validity of Julien's words and it
> > > > > makes me wonder if we should have a KCONFIG option or command line
> > > > > option to switch the Xen behavior. We could use it to gate all the
> > > > > "half-backed emulation" we do for compatibility.Â  Something like:
> > > > > 
> > > > > config PARTIAL_EMULATION
> > > > > Â Â Â Â Â  bool "Partial Emulation"
> > > > > Â Â Â Â Â  ---help---
> > > > > Â Â Â Â Â Â Â Â Â Â Â  Enables partial, not spec compliant, emulation of certain
> > > > > register
> > > > > Â Â Â Â Â  interfaces (e.g DCC UART) for guest compatibility. If you
> > > > > disable
> > > > > Â Â Â Â Â  this option, Xen will crash the guest if the guest tries to
> > > > > access
> > > > > Â Â Â Â Â  interfaces not fully emulated or virtualized.
> > > > > 
> > > > > Â Â Â Â Â  If you enable this option, the guest might misbehave due to
> > > > > non-spec
> > > > > Â Â Â Â Â  compliant emulation done by Xen.
> > > > 
> > > > As I wrote to Ayan on Matrix today, I am not in favor of the emulation.
> > > > Yet, I
> > > > am not going to oppose (as in Nack it) if the other maintainers agree
> > > > with it.
> > > 
> > > Thanks for being flexible
> > > 
> > > 
> > > > The KConfig would be nice, the question is whether we want to (security)
> > > > support such configuration? E.g. could this potentially introduce a
> > > > security
> > > > issue in the guest?
> > > 
> > > The important question is whether it could introduce a security issue in
> > > Xen. If we think it wouldn't increase the attack surface significantly
> > > then I would security support it otherwise not.
> > 
> > For this specific emulation, it is unlikely. But I can't make a generic
> > statement here. So we would need to do a case by case basis.
> > 
> > Furthermore, our security statement is also covering a guest userspace
> > attacking a guest OS. We would issue an XSA if this is feasible because of
> > an issue in the hypervisor.
> > 
> > With half-backed emulation, it becomes more difficult to know whether we are
> > not opening a hole and replacing a guest crashes at boot by something worse.
> > 
> > Again unlikely here. But those kind of bugs are no unheard. So this is
> > something to take into account when you want to claim security support for
> > half-backed emulation.
> 
> For this specific emulation, I think we all agree that there is no security
> risk. So we need not add any security support for this.

Rather than "no security risk" I would say "unlikely" as Julien wrote
(one never knows...) Also you wrote "we need not add any security
support" but I think you probably meant the opposite: we could add
security support for it.


> With regards to partial emulation, we all agree that there is no perfect
> solution.
> 
> 
> However, the approach on which we all seem to have consensus :-
> 
> 1. Emulate DCC with TXfull set to 1 (no crash, DCC driver in Linux/Uboot
> returns -ENODEV/-EAGAIN).
> 
> 2. Introduce a Kconfig (say "CONFIG_PARTIAL_EMULATION") option to surround
> this code which will be specific for Arm and enabled by default. This should
> be turned off by a vendor who does not want to provide any form of partial
> emulation.
> 
> 3. Introduce a hypervisor command line option ("partial_emulation" , disabled
> by default) so that this cen be enabled at run time using Imagebuilder/uboot
> scripts.
> 
> The #2 and #3 can be extended in future to cover all forms of partial
> emulation.
> 
> I will send out a patch implementing this approach.

Yes, sounds good
--8323329-1450920052-1702337874=:1703076--


From xen-devel-bounces@lists.xenproject.org Mon Dec 11 23:45:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Dec 2023 23:45:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652558.1018472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCpxe-0000DW-NU; Mon, 11 Dec 2023 23:45:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652558.1018472; Mon, 11 Dec 2023 23:45:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCpxe-0000DP-Kb; Mon, 11 Dec 2023 23:45:18 +0000
Received: by outflank-mailman (input) for mailman id 652558;
 Mon, 11 Dec 2023 23:45: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 1rCpxd-0000DF-ND; Mon, 11 Dec 2023 23:45: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 1rCpxd-0000Ap-L5; Mon, 11 Dec 2023 23:45: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 1rCpxd-0004SF-8f; Mon, 11 Dec 2023 23:45:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCpxd-0004QX-8D; Mon, 11 Dec 2023 23:45: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=wsa8AnRAx50XDY+4Y8mIhADFp/o/BmMCsJfSGKfrCsc=; b=AF0m61IqCPK9z/JbqOv6erbtir
	927tG1qTfI8iuNVeoc/5iAQygOCuXNpKNA3ObNRH61jLjuj4+rO6DSMM8jjc0pyOAjkAYwQpzB6/W
	elNj0DYyfwdVr/ErP173lFASPE2MY1m9ZRuhJxfF7EA+/0KZ3T9kwijvPKp3+YntY6AQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184095-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184095: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=1d50544aa2321e4efcd9c193d534fb4096d64dbf
X-Osstest-Versions-That:
    ovmf=aa2f32cefa567133d94d574672a4479e004211ee
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 11 Dec 2023 23:45:17 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 1d50544aa2321e4efcd9c193d534fb4096d64dbf
baseline version:
 ovmf                 aa2f32cefa567133d94d574672a4479e004211ee

Last test of basis   184093  2023-12-11 17:12:41 Z    0 days
Testing same since   184095  2023-12-11 21:42:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dun Tan <dun.tan@intel.com>
  Laszlo Ersek <lersek@redhat.com>
  Michael D Kinney <michael.d.kinney@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    
 test-amd64-i386-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
   aa2f32cefa..1d50544aa2  1d50544aa2321e4efcd9c193d534fb4096d64dbf -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:02:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:02:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652577.1018482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCr9q-0000sk-9a; Tue, 12 Dec 2023 01:01:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652577.1018482; Tue, 12 Dec 2023 01: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 1rCr9q-0000sd-6p; Tue, 12 Dec 2023 01:01:58 +0000
Received: by outflank-mailman (input) for mailman id 652577;
 Tue, 12 Dec 2023 01: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=/vnu=HX=aim.com=brchuckz@srs-se1.protection.inumbo.net>)
 id 1rCr9o-0000sX-Q0
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:01:57 +0000
Received: from sonic305-21.consmr.mail.gq1.yahoo.com
 (sonic305-21.consmr.mail.gq1.yahoo.com [98.137.64.84])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0988feb5-988a-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 02:01:54 +0100 (CET)
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic305.consmr.mail.gq1.yahoo.com with HTTP; Tue, 12 Dec 2023 01:01:52 +0000
Received: by hermes--production-bf1-86bd887759-4h2jq (Yahoo Inc. Hermes SMTP
 Server) with ESMTPA ID 996cfbb9f3132b56fb5739840b73952f; 
 Tue, 12 Dec 2023 01:01: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: 0988feb5-988a-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netscape.net; s=a2048; t=1702342912; bh=jhaYPD3oMKpa1qMNIJWQImEe+cLBIYXow/8Whi2rjXE=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From:Subject:Reply-To; b=c4VfOIXjrSEOiBR2HSUDcOnYqsr2avFMG/ugeIfzi2d7CK55udsNVeb/xhfDgGv4MvxH2ftzX4dd+ht8uHhwLaWk5rb2tTrlSgpeJsGcEFuDms57UprcRoqIJ6PNZZQnGVB14WwtsnO7Hhx/FWuoOMhFvPaiCFZQ/B0lVQyt3VEzt6szH9ZX8JvGhWGbYoghVL+8nyTkx/nUKVEVivK9AUMkjPp2GYLEYP/vtCoNUDJF1PQkh11gOgoBgEZVeQ8NGHvEoSFIIL/YjL2lFKbBO6IAFG2cKDU11TpoQLDt4fCPPczyPHE31ffHqLCryep/6XfBQ3wfGHSDYtaEnKGaYQ==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1702342912; bh=CS3/K+fX6D2ffCwfZb7bGiSmdyrTG9gl+ewpoRJXBoG=; h=X-Sonic-MF:Date:Subject:To:From:From:Subject; b=CWIGASiI0RbTkd8V3Ig9u3lW/Tx6LwgR4kcTWsuHsEXbW67TBknFBEB0WirNSSyKy860zqWlNmpuuVnmeRq7fmRxyAkGpvD1faD5nW705BMWHSOpeksUdULs8w5BBx3nYhNLX4QuFlJdNExdm1ltVNpxvXoxILPNUW6UKPX3Eb7tHrnlvsRSpBRR2rEb6+zlKkdY8vE9Ll2q2vGlZg86wtdhEfJ2vuV1E8hC4S5tZm2B/lruAZjvb8hXW/3j7Qkr3QPARcrYItwr4cSPHLQShfGMmXddghI3dTSFAoSrV64EM9hqKWSg/LWGJvC3nDvVBLnlVWUtyUFujEolO1Uelg==
X-YMail-OSG: nKZCpAkVM1lR_1WK0tyB1DI1.p1rAeb600aBhvcStEGHkDOQmahai5SnURjBDHZ
 UI6yHjFP6T13vtrl_3VF.G0YEdZ9HTR8JSTD1MDRCdC4j0KKcBX3qnFafFR_.yHSZGbT1PW.294n
 omwaghB0a2ZJ_2aGEIUDPF7nak1ogIv24ZreCdPvVdYXZ42SloSN_A_6CeMMVndcrRPhYdJZH9kw
 yp47gYP0e3V8K9tBjN45SUuQj8dW7Ofpt4lxr7Zr0a7XesJuRRkM01aT85LyhH.eyOo8n7oKpF6c
 eLk99pwCIHLMRlbeTv1.e_yYuYVeWRdA2EyLeOlJWB.PpMLSU2QqZAmfqIsru9mvf48IHcCmOw0Q
 PauN_Lq9wKBTG8IfbmWNf1UAJesmCAoK0eh1IsmymadLXleU_CsbtS7.Gq5KI6VyIQjB03VRDzQy
 pS6sW75eRXWbmAs3eghCURI4i5lM_k8pFxUVRkKNLSkfimMd5S96jWMNnyh6hURWxw187XPIISS0
 BMA.wNhCMl5q4V7VtC6r.mY24OCALyK6RtrMyN_.BXOOY10rJRCNr3tsN0ScMxAdam2ml2HSusUN
 NkOZYs56HkALqqbKnmHPl9I2O8jKjVp4Nxv2M3f_oCE8ed5txHrvtwRUU9rBZ_7lm3EZWkAGcGmH
 6iN52XTZrGEN28u3PF2r.igzICxHUalr7lPSpRGxZ4M93tmDlC8sN_AL8GS34A4.qmoekLsWspyl
 4O6Z4SXTXpbxi9g.ELWxfFLNvGXhVU432045WzzL3ETnKfPN3g0j4ZpUWhskFNNyBiXLQ6Q7N7do
 Jqqqc0zmC7qRFuvJYwCK8A._thpjuthym6j5apv_NJ4.HXMxR10KrfIUK9B0beR3wb3fBwOx310k
 BYukqph6bgimFc5wjN6w2dfNxomRcNW72C5Gn_q_ra4G8plFPjUODE9CpTSX7eiCJGvMbBo.WuAz
 vaIVNHopxJT.hsAmCeAOX4lo4NGRI6slBfDCRebMRSJ_PPOJGWE1awBJGLZH8y9VSDvsUsDxq_0t
 A4VK4MVobyZFyivyYePkZPePM3jY7F.TkhyqKcHM6VVlWujXV_ustvpU7fTpak3de5XHI0lLbpg.
 bHncyJf8vgJuKoN.fguGaNrFQbl77BUsOq24XUceNMZOZ0KdfcxrrRAY8QZPOgF.STAKDDJV5CvS
 0fDvhVbxRcc4Rbi6LRS9PcIZ5qnHfRBeaeJIefZCz6p.rKpY_ouC3fJXAlI3Eg320DwOxIsQo4cO
 z7XHKJze4tENnrhbQKkyz5kVQLatX47pBAMIKzjTSPbOl2JZUmQfJdDxNWmEsHgEKbgrsJNIXnfc
 hx63nwaJg9EyhGPrddlwHV8sYV4HcgUo7hT3XLnbSI4ljdtzZuwBaYMY9KTaQn1UMuuaG1nwdUH6
 cQxMjhyS3BTO4UdBzFB88YVGSji.9Jl8K7.Fs47YlR415yjUNPIcacorMrrDf4VbvVh5E8d7tPMv
 6R5d1t7LQVU_uOKMjZsyEEsCLS9FuKO0SK1UGFCmoXrrmTWsWtCGvHlVKOAZNZUopRc4jlhdyDgy
 TnWGM_3KgZ1TwzDQlBs8GneuXKGp_rlDLIs197uJzK3weWqe5MEC3g.18QWmkItZYY2GmpZAhOzv
 sEJsLtUZsioRnGu_Gz13EInCv2H8osOhWbMpq4nKRtD5838KKdwQyqLpCKZsr0.7kqZU9pPUY6yS
 7J59Ay3m.__bSy9D3htwiP9zc2LkNjTzbiVWJVx5osJNYaHbDSq26cUhnurQPnG.v8J9L01IphZJ
 iADg8fnx1JKQhM1.ffulE1O5RPsy2O_TCWf2gZ869d8izFzzUN1QEVqLBXK3h_uhCeaKz4Q4Tin2
 462iYVPC05k5nK03Hc98nOJQEjGaO2Zliy1PaTRbygQQbXz_Rf4cruaw.hIHb6oQNTZm5fv4L2xn
 tHauy8fnPNrZiTwE2xamJ9ph8xvb6rUsmOSbCLAms7n2wIcnmnuDPoUKot0_Euk2NtZJIe2JOVTh
 iPpuN0kvPo7JNChFxz3s128LtT3ovAB2UDiNFPerXxufwovDKx4Srh_XQWxn2CWn7i1TQh4UaajB
 RoTi0DrhHz16O46ZcMCZhCzrGAK2lunqPdnMO8W1_l5K2Y6kwr_nTuurQYQizrn4XS4TuPIpN3FW
 QVpg9oP9ztwSQUJouoDnoSiiMQG0Rks7YA8dfyVWqMMAzUNZfS.795O8jNxGauDPDQClC.eNHA_H
 kaVUKeKJwOarGnj5f7xNwmA--
X-Sonic-MF: <brchuckz@aim.com>
X-Sonic-ID: 342a9a15-a145-4515-a2bc-a9a675a29f28
Message-ID: <c56f3db5-114e-4442-a318-b5abcd33eff8@netscape.net>
Date: Mon, 11 Dec 2023 20:01:49 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: We are not able to virtualize FreeBSD using xen 4.17 on Arm 32
 bit
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Mario Marietto <marietto2008@gmail.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Demi Marie Obenour <demi@invisiblethingslab.com>,
 Anthony PERARD <anthony.perard@citrix.com>, Julien Grall <julien@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Elliott Mitchell <ehem+freebsd@m5p.com>
References: <CA+1FSiggg=XZmif6c3pY0+jz7i9caU-OTwFy80gwO7MVpXiwcA@mail.gmail.com>
 <CA+1FSigM1PZc4WfZNUJSMsZbNPPTyThRJ7MMQwQ9TWn6VnSUTg@mail.gmail.com>
 <C0A0E9FA-5AAB-4324-BBBD-D07412CD7F32@arm.com> <ZWR1v5Y3EpRK817B@macbook>
 <CA+1FSij2Q9f9Vj0A06HUYeUxTddrEyF=Q8X5fbs96CRr83_BPg@mail.gmail.com>
 <4fc95518-7e46-4f82-b540-afdbc941508a@netscape.net>
 <f606be07-c4ff-43c6-acf9-42065a84b594@netscape.net>
 <alpine.DEB.2.22.394.2311271826370.3533093@ubuntu-linux-20-04-desktop>
From: Chuck Zmudzinski <brchuckz@netscape.net>
In-Reply-To: <alpine.DEB.2.22.394.2311271826370.3533093@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Mailer: WebService/1.1.21952 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.aol
Content-Length: 7612

On 11/27/2023 9:28 PM, Stefano Stabellini wrote:
> On Mon, 27 Nov 2023, Chuck Zmudzinski wrote:
>> On 11/27/2023 10:22 AM, Chuck Zmudzinski wrote:
>> > On 11/27/2023 7:45 AM, Mario Marietto wrote:
>> >> @Chuck Zmudzinski <mailto:brchuckz@netscape.net> : Stay tuned. They want to help us. The xen developers are great. Very good support for us. I'm sure that you can give a good contribution to understand what's our problem and how to implement a fix with the help of all those good guys.
>> >> 
>> >> On Mon, Nov 27, 2023 at 11:56â€¯AM Roger Pau MonnÃ© <roger.pau@citrix.com <mailto:roger.pau@citrix.com>> wrote:
>> >> 
>> >>     On Mon, Nov 27, 2023 at 10:28:13AM +0000, Henry Wang wrote:
>> >>     > +(xen-devel and Arm maintainers, including Julien)
>> >>     >
>> >>     > > On Nov 27, 2023, at 18:03, Mario Marietto <marietto2008@gmail.com <mailto:marietto2008@gmail.com>>
>> >>     > > wrote:
>> >>     > >
>> >>     > > Hello.Â  We have just virtualized Debian 12 on our arm (32 bit)
>> >>     > > Chromebook model xe303c12 . As host / dom0 we have chosen Devuan
>> >>     > > 5,and for guest / domU,Debian 12. It works great. But our goal is
>> >>     > > different. We want to virtualize FreeBSD as domU. Can we have a
>> >>     > > working Xen PV network driver for a FreeBSD arm guest ?. I found
>> >>     > > that Julien Grall has ported the Xen drivers to FreeBSD on arm. I
>> >>     > > would like to know if Julien's work was accepted upstream by
>> >>     > > FreeBSD, in which case FreeBSD as a Xen guest on arm should work
>> >>     > > if we enable the Xen PV drivers in the FreeBSD on arm kernel. If
>> >>     > > Julien's work was not accepted upstream by FreeBSD, we will have
>> >>     > > to find his patches and apply them ourselves to the FreeBSD on arm
>> >>     > > kernel.
>> >> 
>> >>     I've added Elliot on Cc as he is working on upstreaming the patches to
>> >>     FreeBSD.Â  He will be able to provide a better update than myself.
>> >> 
>> >>     Regards, Roger.
>> > 
>> > I have been collaborating with Mario, and I can explain what we have done so far :
>> > 
>> > We are using Julien's patch set against an old development version of FreeBSD 11
>> > from 2014-12-03 :
>> > 
>> > https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=shortlog;h=refs/heads/xen-arm-v2.2
>> > 
>> > We successfully built the XENVIRT kernel and FreeBSD world, and created the
>> > FreeBSD rootfs according to Julien's instructions here :
>> > 
>> > https://lists.freebsd.org/pipermail/freebsd-xen/2014-November/002202.html
>> > 
>> > There were some adjustments to the instructions :
>> > 
>> > To build the kernel, we used :
>> > 
>> > $ sudo make TARGET_ARCH=armv6 KERNCONF=XENVIRT buildkernel
>> > 
>> > instead of
>> > 
>> > $ sudo make TARGET_ARCH=armv6 KERNCONF=XENHVM buildkernel
>> > 
>> > The FreeBSD 'kernel' file is in ELF format and did not work, and we spent
>> > some time trying to convert it to the zImage format without realizing the
>> > build of the FreeBSD kernel creates the 'kernel.bin' file in the zImage format.
>> > So when booting with the 'kernel.bin' file instead, it actually boots :
>> > 
>> > user@devuan-bunsen ~ % sudo xl create freebsd.cfg
>> > Parsing config from freebsd.cfg
>> > user@devuan-bunsen ~ % sudo xl li
>> > Name                                        ID   Mem VCPUs	State	Time(s)
>> > Domain-0                                     0   768     2     r-----    1439.4
>> > freebsd                                      1  1152     1     r-----       3.0
>> > user@devuan-bunsen ~ %
>> > 
>> > However, the guest is still not working correctly :
>> > 
>> > 1. Attaching the console with the -c option at creation or with
>> >    'xl console freebsd' results in no output to the console.
>> > 
>> > 2. The timestamp on the virtual disk image file shows that the filesystem
>> >    was at best mounted read-only, if it was mounted at all by the guest
>> >    FreeBSD kernel.
>> > 
>> > 3. The 'xl shutdown freebsd' command does not work, it just hangs. To stop
>> >    the guest, you need to do 'xl destroy freebsd'.
>> > 
>> > However, I think we can get the console to work and the rootfs to mount because I
>> > just realized I forgot to do the steps from Julien's instructions of editing the
>> > /etc/fstab and /etc/ttys files in the FreeBSD rootfs :
>> > 
>> > $ echo "/dev/xbd0       /       ufs     rw      1       1" > /mnt/etc/fstab
>> > $ vi /mnt/etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm on secure")
>> > 
>> > I will add those and see if the console and disk are working.
>> 
>> Unfortunately, adding xc0 to /etc/ttys and /dev/xbd0 as the root device in
>> /etc/fstab did not make the console or disk work. Still no output on the
>> xen console from the guest kernel, and the timestamp on the rootfs image
>> file did not change so it did not mount read-write.
>> 
>> We could use some advice for troubleshooting this. Now, we are blind because
>> we are not getting any xen console output But I am pleased we were able to
>> demonstrate that Julien's old patch set for FreeBSD 11 allows us to boot
>> FreeBSD 11 on a modern version of Xen on arm - we are using the Debian
>> stable Xen 4.17 packages.
> 
> You can use the DEBUG hypercalls to check how far we got into the
> booting process:
> https://wiki.xenproject.org/wiki/Xen_ARM_DEBUG_hypercalls
> 
> For instance add the following to FreeBSD code:
> 
> asm volatile("hvc 0xfffd");
> 

It took me a while, but I finally got this approach to work to debug the FreeBSD
kernel. Thanks!

The problem was the compiler was reporting hvc is an invalid instruction. To
get the compiler to accept the hvc instruction as valid, I first spent quite a
bit of time porting the patches from the old development version of FreeBSD 11 on
which Julien's patches were based to FreeBSD 12.4, because that old development
version of FreeBSD did not support armv7 but only armv6, and I thought maybe
the compiler is rejecting the hvc instruction because the kernel build was
targeting armv6 and I was not sure hypervisor extensions were available for
armv6. But FreeBSD 12 and higher has support to target armv7 for the kernel.
There were quite a few changes to account for between FreeBSD 11 and FreeBSD 12.4,
I had to add about 12 more patches, but I also removed some of Julien's patches
that were either applied in FreeBSD 12.4 or no longer applicable to FreeBSD 12.4.

So when I was able to build a FreeBSD 12.4 kernel + Julien's arm/xenvirt patches
targeting armv7 instead of armv6, I got the same behavior: the guest started but
no output on the console, and the compiler at first still did not accept the
hvc instruction (FreeBSD uses the clang compiler by default to build the kernel).
After some searches on the Internet I discovered that adding the -mthumb CFLAG
when compiling the objects with an hvc instruction enabled the compiler to accept
the hvc instruction.

So I was able to get output like this in the dom0 Xen console log from the hvc
instruction in the guest :

(XEN) arch/arm/traps.c:1983:d2v0 HSR=0x80000005 pc=0xffff000c gva=0xffff000c gpa=0x000000ffff000c
(XEN) arch/arm/traps.c:1983:d2v0 HSR=0x80000005 pc=0xffff000c gva=0xffff000c gpa=0x000000ffff000c
...

For now, I only put one hvc instruction in the FreeBSD code - it is where the
kernel prints the copyright and version information to the console. So I don't
understand why the message from the hvc instruction is appearing multiple times
in the Xen logs...

In any case, this provides a way to debug the boot of FreeBSD / arm on Xen, so
thanks, Stefano, for this suggestion!

Cheers,

Chuck


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:25:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:25:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652581.1018492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrWj-0003me-4J; Tue, 12 Dec 2023 01:25:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652581.1018492; Tue, 12 Dec 2023 01:25:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrWj-0003mX-1i; Tue, 12 Dec 2023 01:25:37 +0000
Received: by outflank-mailman (input) for mailman id 652581;
 Tue, 12 Dec 2023 01:25: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=rggv=HX=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCrWi-0003mR-Ah
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:25:36 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 56b26fdd-988d-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 02:25:33 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sq1Bt71hjz4f3jZT
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 09:25:26 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 2D3711A01C8
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 09:25:28 +0800 (CST)
Received: from [10.174.176.73] (unknown [10.174.176.73])
 by APP1 (Coremail) with SMTP id cCh0CgDn6hCEtndlu5ydDQ--.58697S3;
 Tue, 12 Dec 2023 09:25:27 +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: 56b26fdd-988d-11ee-98e8-6d05b1d4d9a1
Subject: Re: [PATCH RFC v2 for-6.8/block 01/18] block: add some bdev apis
To: Jan Kara <jack@suse.cz>, Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
 kent.overstreet@gmail.com, joern@lazybastard.org, miquel.raynal@bootlin.com,
 richard@nod.at, vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
 hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
 jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
 josef@toxicpanda.com, dsterba@suse.com, viro@zeniv.linux.org.uk,
 brauner@kernel.org, nico@fluxnic.net, xiang@kernel.org, chao@kernel.org,
 tytso@mit.edu, adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
 konishi.ryusuke@gmail.com, willy@infradead.org, akpm@linux-foundation.org,
 p.raghav@samsung.com, hare@suse.de, linux-block@vger.kernel.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
 linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
 linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
 linux-fsdevel@vger.kernel.org, linux-erofs@lists.ozlabs.org,
 linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
 linux-nilfs@vger.kernel.org, yi.zhang@huawei.com, yangerkun@huawei.com,
 "yukuai (C)" <yukuai3@huawei.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140552.973290-2-yukuai1@huaweicloud.com>
 <20231211165217.fil437byq7w2vcp7@quack3>
From: Yu Kuai <yukuai1@huaweicloud.com>
Message-ID: <7d2bfa29-f93d-def2-80a3-72af063b36b3@huaweicloud.com>
Date: Tue, 12 Dec 2023 09:25:24 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <20231211165217.fil437byq7w2vcp7@quack3>
Content-Type: text/plain; charset=gbk; format=flowed
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDn6hCEtndlu5ydDQ--.58697S3
X-Coremail-Antispam: 1UD129KBjvdXoW7JF4fJw47CF1rCry7Ww4DJwb_yoWfGrc_ZF
	nakrWkWw1fJa18Kr4qyFs0vr1kWayrWr42vry8tanrX3yrXa92kFsrKr1Fkr45G3yqkrnx
	uFn2gFyxJr10qjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbaxFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w
	A2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j
	6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcVAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kI
	c2xKxwCYjI0SjxkI62AI1cAE67vIY487MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4
	AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE
	17CEb7AF67AKxVWrXVW8Jr1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCw
	CI42IY6xIIjxv20xvEc7CjxVAFwI0_Cr0_Gr1UMIIF0xvE42xK8VAvwI8IcIk0rVWrZr1j
	6s0DMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYx
	BIdaVFxhVjvjDU0xZFpf9x0JUd8n5UUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

Hi,

ÔÚ 2023/12/12 0:52, Jan Kara Ð´µÀ:
> On Mon 11-12-23 22:05:35, Yu Kuai wrote:
>> From: Yu Kuai <yukuai3@huawei.com>
>>
>> Those apis will be used for other modules, so that bd_inode won't be
>> accessed directly from other modules.
>>
>> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> 
> ...
> 
>> +void bdev_associated_mapping(struct block_device *bdev,
>> +			     struct address_space *mapping)
>> +{
>> +	mapping->host = bdev->bd_inode;
>> +}
> 
> Here I'm not sure - is the helper really a win? It seems a bit obscure to
> me. This initialization of another mapping for a bdev looks really special.

Yes, I don't like this helper at all, but gfs2 is used this way, and I
need this helper to remove 'bd_inode' from block_devcie later. I'm not
familiar with gfs2 at all but perhaps it worth to dig deeper and figure
out a proper way for gfs2.

Thanks,
Kuai
> 
> 								Honza
> 



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:32:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:32:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652586.1018503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrdO-0005UA-SB; Tue, 12 Dec 2023 01:32:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652586.1018503; Tue, 12 Dec 2023 01: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 1rCrdO-0005U3-OG; Tue, 12 Dec 2023 01:32:30 +0000
Received: by outflank-mailman (input) for mailman id 652586;
 Tue, 12 Dec 2023 01: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=rggv=HX=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCrdM-0005Tx-UR
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:32:28 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4bbf0bbb-988e-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 02:32:25 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Sq1Ll4gFhz4f3kG1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 09:32:15 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 1D5691A09B8
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 09:32:18 +0800 (CST)
Received: from [10.174.176.73] (unknown [10.174.176.73])
 by APP1 (Coremail) with SMTP id cCh0CgCn9gwauHdlugyeDQ--.45656S3;
 Tue, 12 Dec 2023 09:32:13 +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: 4bbf0bbb-988e-11ee-9b0f-b553b5be7939
Subject: Re: [PATCH RFC v2 for-6.8/block 15/18] buffer: add a new helper to
 read sb block
To: Jan Kara <jack@suse.cz>, Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
 kent.overstreet@gmail.com, joern@lazybastard.org, miquel.raynal@bootlin.com,
 richard@nod.at, vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
 hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
 jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
 josef@toxicpanda.com, dsterba@suse.com, viro@zeniv.linux.org.uk,
 brauner@kernel.org, nico@fluxnic.net, xiang@kernel.org, chao@kernel.org,
 tytso@mit.edu, adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
 konishi.ryusuke@gmail.com, willy@infradead.org, akpm@linux-foundation.org,
 p.raghav@samsung.com, hare@suse.de, linux-block@vger.kernel.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
 linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
 linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
 linux-fsdevel@vger.kernel.org, linux-erofs@lists.ozlabs.org,
 linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
 linux-nilfs@vger.kernel.org, yi.zhang@huawei.com,
 "yangerkun@huawei.com" <yangerkun@huawei.com>,
 "yukuai (C)" <yukuai3@huawei.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140753.975297-1-yukuai1@huaweicloud.com>
 <20231211172708.qpuk4rkwq4u2zbmj@quack3>
From: Yu Kuai <yukuai1@huaweicloud.com>
Message-ID: <be459c50-5179-2748-2636-7965b9e1cb7a@huaweicloud.com>
Date: Tue, 12 Dec 2023 09:32:10 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <20231211172708.qpuk4rkwq4u2zbmj@quack3>
Content-Type: text/plain; charset=gbk; format=flowed
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgCn9gwauHdlugyeDQ--.45656S3
X-Coremail-Antispam: 1UD129KBjvJXoW7trWDZF4Dur4DWFWktF1xGrg_yoW8WF48pr
	ySkayakrZrAr1a9F12qw1rXFyrKa13G3WrCFyfJa4UAryagr13XrWxGF4UGFW3ZrnrAws8
	Xa1FkayrZw15KFDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUU9q14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U
	JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc
	CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E
	2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV
	W8JwACjcxG0xvEwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2Y2ka
	0xkIwI1lc7I2V7IY0VAS07AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7x
	kEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E
	67AF67kF1VAFwI0_Wrv_Gr1UMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF
	4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6rWU
	JVWrZr1UMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F
	4UJbIYCTnIWIevJa73UjIFyTuYvjfUFfHUDUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

Hi,

ÔÚ 2023/12/12 1:27, Jan Kara Ð´µÀ:
> On Mon 11-12-23 22:07:53, Yu Kuai wrote:
>> From: Yu Kuai <yukuai3@huawei.com>
>>
>> Unlike __bread_gfp(), ext4 has special handing while reading sb block:
>>
>> 1) __GFP_NOFAIL is not set, and memory allocation can fail;
>> 2) If buffer write failed before, set buffer uptodate and don't read
>>     block from disk;
>> 3) REQ_META is set for all IO, and REQ_PRIO is set for reading xattr;
>> 4) If failed, return error ptr instead of NULL;
>>
>> This patch add a new helper __bread_gfp2() that will match above 2 and 3(
>> 1 will be used, and 4 will still be encapsulated by ext4), and prepare to
>> prevent calling mapping_gfp_constraint() directly on bd_inode->i_mapping
>> in ext4.
>>
>> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> ...
>> +/*
>> + * This works like __bread_gfp() except:
>> + * 1) If buffer write failed before, set buffer uptodate and don't read
>> + * block from disk;
>> + * 2) Caller can pass in additional op_flags like REQ_META;
>> + */
>> +struct buffer_head *
>> +__bread_gfp2(struct block_device *bdev, sector_t block, unsigned int size,
>> +	     blk_opf_t op_flags, gfp_t gfp)
>> +{
>> +	return bread_gfp(bdev, block, size, op_flags, gfp, true);
>> +}
>> +EXPORT_SYMBOL(__bread_gfp2);
> 
> __bread_gfp2() is not a great name, why not just using bread_gfp()
> directly? I'm not a huge fan of boolean arguments but three different flags
> arguments would be too much for my taste ;) so I guess I can live with
> that.

I agree that __bread_gfp2 is not a greate name, if possible, I'll try to
figure out a better name for v3.

Thanks for reviewing this patchset!
Kuai
> 
> 								Honza
> 



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:34:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:34:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652589.1018514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrfO-00061v-AS; Tue, 12 Dec 2023 01:34:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652589.1018514; Tue, 12 Dec 2023 01:34: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 1rCrfO-00061o-4g; Tue, 12 Dec 2023 01:34:34 +0000
Received: by outflank-mailman (input) for mailman id 652589;
 Tue, 12 Dec 2023 01:34: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=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rCrfM-00061g-E3
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:34:32 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97f4e18e-988e-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 02:34:30 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4F0F061615;
 Tue, 12 Dec 2023 01:34:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69DA8C433C8;
 Tue, 12 Dec 2023 01:34:27 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97f4e18e-988e-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702344869;
	bh=Xe8fOp+g7jZ2pUkW54R5OHaAp3BqdOpAVCJX3cQYvJo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kzQTP+QqjA7CCwliRASOs3lPN2RWt0nssG0mhYCKTmBDfYpOlly7l9M6yP1KFG6qk
	 OEWyh3TLSqlooz0IFTlxr9nbax+RwXKCk9JuAYqa/nb3ZeuC/UKL2VJ/6z/pJq6uUO
	 O/ETn0qT+H1ZgvTgD3rXUoOl0e9YbKEZmWvOEhPuQBSvwT+b3mq8FJg5TV6JocLne1
	 5fUjWjph4pHKNFBT9JqmzNiQX3ECoIdUPOYC5/MYL0lnYLWyk8iM3EnFsClwVIfMnd
	 pR8RuXQjrafKI9pYio9pppcF5Ag2OcunG5gc/9jiOU7//PejX3QJDq3fvT9S3jl/EI
	 0dEYIb32hqrUw==
Date: Mon, 11 Dec 2023 17:34:25 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v6 4/5] [FUTURE] xen/arm: enable vPCI for domUs
In-Reply-To: <ZXbmIoGhuTogWxZW@macbook>
Message-ID: <alpine.DEB.2.22.394.2312111643280.1703076@ubuntu-linux-20-04-desktop>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com> <20231113222118.825758-5-stewart.hildebrand@amd.com> <ZWmkh0Xeaynh43N7@macbook> <alpine.DEB.2.22.394.2312011847520.110490@ubuntu-linux-20-04-desktop> <ZW2wuqXW-DneUVi0@macbook>
 <alpine.DEB.2.22.394.2312041333250.110490@ubuntu-linux-20-04-desktop> <ZW8EkQLTwEEK6fXC@macbook> <alpine.DEB.2.22.394.2312051529500.110490@ubuntu-linux-20-04-desktop> <ZXbmIoGhuTogWxZW@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-844653549-1702341899=:1703076"
Content-ID: <alpine.DEB.2.22.394.2312111645030.1703076@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-844653549-1702341899=:1703076
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312111645031.1703076@ubuntu-linux-20-04-desktop>

On Mon, 11 Dec 2023, Roger Pau MonnÃ© wrote:
> On Tue, Dec 05, 2023 at 06:34:35PM -0800, Stefano Stabellini wrote:
> > On Tue, 5 Dec 2023, Roger Pau MonnÃ© wrote:
> > > > > > I don't think we should enable IOREQ servers to handle PCI passthrough
> > > > > > for PVH guests and/or guests with vPCI. If the domain has vPCI, PCI
> > > > > > Passthrough can be handled by vPCI just fine. I think this should be a
> > > > > > good anti-feature to have (a goal to explicitly not add this feature) to
> > > > > > reduce complexity. Unless you see a specific usecase to add support for
> > > > > > it?
> > > > > 
> > > > > There are passthrough devices (GPUs) that might require some extra
> > > > > mediation on dom0 (like the Intel GVT-g thing) that would force the
> > > > > usage of ioreqs to passthrough.
> > > > 
> > > > From an architectural perspective, I think it would be cleaner, simpler
> > > > to maintain, and simpler to understand if Xen was the sole owner of the
> > > > PCI Root Complex and PCI config space mediation (implemented with vPCI).
> > > > IOREQ can be used for emulation and it works very well for that. At
> > > > least in my mind, that makes things much simpler.
> > > 
> > > But IOREQ already has all the code to mediate accesses to the PCI
> > > config space, and the interface to register separate servers for
> > > different PCI devices.
> > > 
> > > We would then need to duplicate this internally for vPCI, so that vPCI
> > > could forward accesses to IOREQ just for IOREQ to forward to yet a
> > > different component?  Seems like a lot of duplication for no benefit.
> > 
> > [...] 
> >  
> > > Also, you seem to confabulate IOREQ with QEMU, while the latter is
> > > indeed an user of IOREQ, I do see IOREQ as a simple resource mediator
> > > inside of Xen, that has the ability to forward such accesses to
> > > external emulators using an hypercall interface.
> > 
> > We have been using different terminologies until now. IOREQ could mean
> > anything from the ABI interface, the emulator side (QEMU) or the
> > hypervisor side (Xen). I am going to align with your wording and say:
> > 
> > IOREQ: only the IOREQ implementation in Xen (xen/common/ioreq.c)
> > IOREQ server: QEMU or alternative
> > 
> > I think it is OK if we use IOREQ internally within Xen to hook vPCI with
> > PCI config space accesses and emulation. I don't think it is a good idea
> > to attempt to enable IOREQ servers (e.g. QEMU) to implement PCI
> > Passthrough when vPCI is also enabled for the domain, at least
> > initially.
> 
> I agree, it's perfectly fine to initially limit to vPCI passthrough
> devices + QEMU emulated devices only for example.

OK good


> I think it was mostly an issue with terminology then :).

Yes :)


> > > > I understand there are non-trivial cases, like virtual GPUs with
> > > > hardware access, but I don't classify those as passthrough. That's
> > > > because there isn't one device that gets fully assigned to the guest.
> > > > Instead, there is an emulated device (hence IOREQ) with certain MMIO
> > > > regions and interrupts that end up being directly mapped from real
> > > > hardware.
> > > > 
> > > > So I think it is natural in those cases to use IOREQ and it is also
> > > > natural to have QEMU remap MMIO/IRQs at runtime. From a vPCI
> > > > perspective, I hope it will mostly look as if the device is assigned to
> > > > Dom0. Even if it ends up being more complex than that, Rome wasn't
> > > > built in one day, and I don't think we should try to solve this problem
> > > > on day1 (as long as the interfaces are not stable interfaces).
> > > 
> > > I don't see IOREQ as dealing explicitly with emulation.  Yes, it does
> > > allow for emulators to be implemented in user-space, but at the end
> > > it's just an interface that allows forwarding accesses to certain
> > > resources (for the case we are speaking about here, PCI config space)
> > > to entities that registered as handlers.
> > > 
> > > vPCI OTOH just deals with a very specific resource (PCI config space)
> > > and only allows internal handlers to be registered on a byte
> > > granularity.
> > > 
> > > So your proposal would be to implement a hierarchy like the one on the
> > > diagram below:
> > > 
> > >     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> > >     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
> > >     â””â”€â”€â”€â”€â”€â”€â”€â”¬â”˜ â””â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> > >             â”‚   â”‚               â”‚
> > >             â”‚   â”‚           â”Œâ”€â”€â”€â”´â”€â”€â”
> > >             â”‚   â”‚           â”‚ vPCI â”‚
> > >             â”‚   â”‚           â””â”€â”¬â”€â”€â”¬â”€â”˜
> > >          â”Œâ”€â”€â”´â”€â”€â”€â”´â”            â”‚  â”‚
> > >          â”‚ IOREQ â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜  â”‚
> > >          â””â”€â”€â”€â”€â”¬â”€â”€â”˜               â”‚
> > >               â”‚                  â”‚
> > >  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”              â”Œâ”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> > >  â”‚ IOREQ servers â”‚              â”‚ vPCI handlers â”‚
> > >  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜              â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> > 
> > Yes
> > 
> > 
> > > While what I'm proposing would look like:
> > > 
> > >     â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â” â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> > >     â”‚ Memory â”‚ â”‚ IO Ports â”‚ â”‚ PCI config space â”‚
> > >     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”˜ â””â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> > >          â”‚          â”‚                â”‚
> > >          â””â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”´â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> > >                â”‚  IOREQ  â”‚
> > >                â””â”€â”¬â”€â”€â”€â”€â”€â”¬â”€â”˜
> > >                  â”‚     â”‚
> > >  â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤     â””â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”
> > >  â”‚ IOREQ servers â”‚          â”‚ vPCI â”‚
> > >  â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜          â””â”€â”€â”€â”¬â”€â”€â”˜
> > >                                 â”‚
> > >                             â”Œâ”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
> > >                             â”‚ vPCI handlers â”‚
> > >                             â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
> > 
> > I don't have a major problem with this, but I find it less clear than
> > the first one.
> > 
> > Let's say that all domains are PVH (or ARM guests). QEMU is running in
> > Dom0. If QEMU does emulation, that's fine. If QEMU implements PCI
> > Passthrough then QEMU uses libpci to do PCI config space reads and
> > write, which go to the Linux kernel in Dom0, which ends up doing PCI
> > config space reads and writes on the device, and that goes via vPCI in
> > Xen (vPCI for Dom0). So actually vPCI is still present. It is a lot
> > simpler to think that vPCI is in charge of all mediated PCI config space
> > accesses rather than thinking that for the same device vPCI handles PCI
> > config space accesses for Dom0 but not for DomU.
> 
> So most of the issue is again with terminology I think, you would
> like to avoid even having to mention the word IOREQ for PVH domains
> for example, which you could possibly do if vPCI trapped all accesses
> to the PCI config space.
> 
> I would be fine with renaming that internal IOREQ component to
> something else.  What I insist on having is a single component that
> multiplexes access to all platform resources (IO ports, MMIO, PCI
> config space), so that we can have a (kind of) unified interface to
> register handlers.

Yes I am OK with that.

A single multiplexer is fine, however we need to be careful as IOREQ in
Xen has a lot of stuff about handling messages to and from QEMU and
state changes related to it, see ioreq_send and ioreq_send_buffered.


> > It is not my preference but I am OK to compromise and go ahead with the
> > architecture you proposed but please let's keep IOREQ servers out of the
> > PCI Passthrough picture at least initially.
> > 
> > 
> > > I'm obviously biased, but I think the latter is cleaner, and allows
> > > all resources to be arbitrated by the same component (IOREQ).
> > > 
> > > If the concern is about the IOREQ hypercall interface, it would be
> > > fine to introduce an option that limit IOREQs to internal users
> > > (vPCI) without supporting external IOREQ servers.
> > > 
> > > Think of IOREQ as a resource mediator inside of Xen, that just does
> > > the PCI address decoding and forwards the access to the interested
> > > party, either an external IOREQ server or vPCI.
> > 
> > The part about IOREQ (xen/common/ioreq.c) being a resource mediator is
> > OKish.
> > 
> > I had many discussions over the years with various members of the larger
> > open source embedded community (Linaro, etc.) and the problem is that
> > when one says "IOREQ" typically people think of QEMU or other userspace
> > emulators. They don't think of the Xen side of it. This becomes very
> > relevant here because Xen is the only part of the system that is
> > getting safety-certified and it is important to convey the message that
> > nothing else in required to be safety-certified to have a fully working
> > Xen system that supports PCI Passthrough.
> > 
> > In short, it is important that the community doesn't get the idea that
> > QEMU needs to be safety-certified to have PCI Passthrough working
> > correctly with Xen in a safety scenario.
> 
> Maybe we need to rename that internal IOREQ component to something
> else, and then IOREQ would strictly be limited to the hypercall
> interface + IOREQ servers.

Right. We could also keep calling IOREQ things in Xen strictly related
to handling the message passing interface to QEMU, e.g. ioreq_send.

 
> Or maybe we just need more education/documentation around the
> difference between the internal side of IOREQs vs IOREQ servers vs
> QEMU.  See for example demu, which is an emulator for a PC-like
> compatible system using IOREQ servers:
> 
> https://xenbits.xen.org/gitweb/?p=people/pauldu/demu.git;a=summary
> 
> >  
> > > > > It's important that the interfaces we introduce are correct IMO,
> > > > > because that ends up reflecting on the configuration options that we
> > > > > expose to users on xl/libxl.  While both XEN_DOMCTL_createdomain and
> > > > > XEN_DOMCTL_assign_device are unstable interfaces, how the vPCI option
> > > > > gets placed there will ultimately influence how the option gets
> > > > > exposed in xl/libxl, and the interface there is relevant to keep
> > > > > stable for end user sanity.
> > > > 
> > > > I agree with you on the stable interfaces. The important part is not to
> > > > introduce changes to stable interfaces that could limit us in the
> > > > future. Specifically that includes xl and libxl, we need to be careful
> > > > there. But I don't see a single per-domain vPCI enable/disable option as
> > > > a problem. Let's say that in the future we have a mediated vGPU
> > > > implementation: if it works together with vPCI then the per-domain vPCI
> > > > option in libxl will be enabled (either explicitely or by default), if
> > > > it doesn't then vPCI will be disabled (either explicitely or by the
> > > > newer vGPU options.)
> > > 
> > > If vPCI is hooked into IOREQ there won't be a need anymore to register
> > > the vPCI config space traps, as that would be done by IOREQ, and hence
> > > vPCI managed devices could be registered at runtime with IOREQ.  IOW:
> > > there won't be a need anymore to signal at domain creation whether
> > > vPCI is intended to be used or not.
> > 
> > For safety, we have requirements to specify everything statically before
> > boot so typically anything dynamic is a problem.
> > 
> > 
> > > We would obviously need to enable IOREQ for all domains with IOMMU
> > > enabled, as it would be IOREQ that register the PCI config space
> > > handlers.
> > 
> > This bit might be OK
> > 
> > 
> > > > For *unstable* interfaces (XEN_DOMCTL_assign_device) I would rather wait
> > > > before adding more changes on top of them, not because I don't care
> > > > about the mediated GPU problem (we do have something similar at AMD),
> > > > but because I worry that if we try to change them now we might not do a
> > > > good enough job. I would prefer to wait until we know more about the
> > > > actual use case, ideally with code supporting it.
> > > > 
> > > > I think the difference in points of views comes from the fact that I see
> > > > vPCI as the default, QEMU only as a limited peripheral emulator (or
> > > > mediator for the vGPU case) but not in control. vPCI and QEMU are not
> > > > equal in my view. vPCI is in charge and always present if not in very
> > > > uncommon setups (even if we decide to hook it inside Xen by using
> > > > internal IOREQ interfaces). QEMU might come and go.
> > > 
> > > Xen needs a single component that mediates accesses to resources,
> > > whether that's IOREQ, or something else I don't really care that much.
> > > Having vPCI mediate accesses to the PCI config space, and IOREQ to the
> > > memory (and on x86 IO port) space just seems awfully complicated for
> > > AFAICT no real benefit.
> > >
> > > > Now that I am writing this, I realize this is also why I wasn't too
> > > > happy with the idea of hooking vPCI using IOREQ. It makes them look as
> > > > if they are the same, while I don't they should be considered at the
> > > > same level of priority, criticality, safety, integration in the system,
> > > > etc.
> > > 
> > > I feel there are some fears with IOREQ from a safety PoV?  The code
> > > that does the resource multiplexing is small, and as said above if
> > > there are safety concerns with the hypercall interface it would be
> > > fine to limit it's usage to internal handlers only.
> > 
> > Yes it is about safety. Everything within Xen will be safety-certified,
> > hence usable in a safety critical scenario, everything outside of Xen
> > might not.
> > 
> > The fear is not on the IOREQ itself because xen/common/ioreq.c is part
> > of the certification scope. The fear is that IOREQ servers (e.g. QEMU)
> > are somehow in the picture when we discuss safety architectures with PCI
> > Passthrough, or that IOREQ servers could interfere with vPCI. By
> > "interfere" I mean that QEMU running in dom0 (a deprivileged dom0) will
> > be able to cause a malfunction in Xen vPCI.
> 
> For that purpose it doesn't matter much how IOREQs or vPCI interact,
> as any (buggy) interaction could possibly allow IOREQ to cause
> malfunctions to vPCI.

yep


> > Yes, limiting the hypercall interface would help in that regard because
> > it would limit Xen exposure.
> 
> That would be fine IMO, it could even be a Kconfig option if that
> better suits your needs.

OK. I think we are aligned.
--8323329-844653549-1702341899=:1703076--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:36:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:36:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652593.1018524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrh5-0006f6-Po; Tue, 12 Dec 2023 01:36:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652593.1018524; Tue, 12 Dec 2023 01: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 1rCrh5-0006ez-LG; Tue, 12 Dec 2023 01:36:19 +0000
Received: by outflank-mailman (input) for mailman id 652593;
 Tue, 12 Dec 2023 01: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=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rCrh4-0006et-9f
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:36:18 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d76d665f-988e-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 02:36:16 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id AD218B810DB;
 Tue, 12 Dec 2023 01:36:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3391DC433C7;
 Tue, 12 Dec 2023 01:36:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d76d665f-988e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702344974;
	bh=g5f4dd5iE2o/tCo1jnT9JBYO1kUST6lEvVo1NQGghb4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WadbKn+9HBp9oy6NuiO7kJPCaXnNgN2ZKJgpwlboSIFgT6OOF0fyKntpkD9H8+u0u
	 ijI1wxVx2TvIXkmlfi0UElkahfRUi3ZOQLIzA4wqIOrUkNfoqBFh52cnUujDPf47J4
	 MXY0/QtYFLDGK/ALhoC9QsL3Fs81DyTurDu+Ig6HaXQb6WPSifsPSrFN96rDKngdqd
	 Fd1qccafktI05QMivwB2qcuuh0v5qKH4kmvVQhyw3XNporhTaUhHAV2ePlZiud6bPT
	 ecpRJyT9KR5aYzWF5aioQc/5LkW28sbYxVxQKqXDh8ylBlWdp+2eu3+wpzbtNy2e3w
	 YqecsRtqhhNig==
Date: Mon, 11 Dec 2023 17:36:11 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org, 
    consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
In-Reply-To: <920a835236ff8cf922e515c5082770b7@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312111735500.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com> <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org> <c77560d6044700f10a8b149d539a95d1@bugseng.com>
 <3b3b62a3-0691-4ae7-9234-a8a85516c9eb@xen.org> <95690c3a-92c5-4e05-856b-088133b87650@xen.org> <920a835236ff8cf922e515c5082770b7@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, 11 Dec 2023, Nicola Vetrini wrote:
> On 2023-12-11 17:05, Julien Grall wrote:
> > On 11/12/2023 15:59, Julien Grall wrote:
> > > Hi Nicola,
> > > 
> > > On 11/12/2023 14:54, Nicola Vetrini wrote:
> > > > On 2023-12-11 13:32, Julien Grall wrote:
> > > > > Hi,
> > > > > 
> > > > > On 11/12/2023 10:30, Nicola Vetrini wrote:
> > > > > > The branches of the switch after a call to 'do_unexpected_trap'
> > > > > > cannot return, but there is one path that may return, hence
> > > > > > only some clauses are marked with ASSERT_UNREACHABLE().
> > > > > I don't understand why this is necessary. The code should never be
> > > > > reachable because do_unexpected_trap() is a noreturn().
> > > > > 
> > > > > Cheers,
> > > > 
> > > > It was meant as a safeguard against mistakes.
> > > 
> > > I am confused about which mistakes you are trying to prevent. Are you
> > > saying you are not trusting the noreturn attribute?
> > > 
> > > And if so, are you intending to add ASSERT_UNREACHABLE() after every
> > > single call to noreturn functions?
> > 
> > Replying to myself. What's confusing the most is that in [1], you decided to
> > not add the ASSERT_UNREACHABLE(). Yet the problem is similar.
> > 
> > I'd also like to point out that by removing the "break", then if the
> > 'noreturn' function turns out to return, then in prod build you would
> > fallthrough to the next case. And who knows what's going to happen...
> > 
> > All of this really adds some confusion...
> > 
> 
> I should have checked before responding: do_trap_hyp_sync is not afaik
> noreturn. Specifically, do_trap_brk may return. If I worked under the wrong
> assumption, then certainly the ASSERT_UNREACHABLE-s should be dropped.

It looks like we could add noreturn to do_trap_brk. Julien what do you
think?


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:39:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:39:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652597.1018533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrkK-0007Oe-6O; Tue, 12 Dec 2023 01:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652597.1018533; Tue, 12 Dec 2023 01:39:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrkK-0007OX-3R; Tue, 12 Dec 2023 01:39:40 +0000
Received: by outflank-mailman (input) for mailman id 652597;
 Tue, 12 Dec 2023 01:39: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=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rCrkJ-0007OR-4Q
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:39:39 +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 4ee053b8-988f-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 02:39:38 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 3F707CE1742;
 Tue, 12 Dec 2023 01:39:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53759C433C7;
 Tue, 12 Dec 2023 01:39: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: 4ee053b8-988f-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702345173;
	bh=RXVSpXUPw+eFhiMlhTi5bs9yukcQYx3OpUDlAW3GCzQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=nLO5J/wlju2oRAZIevr7CIkd9p4ZPTdQG0cJQiwl+uTNNW8DE3aCO4ocn6SlBOlW2
	 zwude6ubUbWQgks7PWa0pM/OziMRXoBVgDms0kmX+P9+WDL8uM8NQ1bIwKByJqKo3B
	 M7tPMYtiLn1+eAmn2QZA4KMMPtyRlA5Inu4duT/MlKqNjKQ0b1f8Z598aDbK6o2Po9
	 Fjk91tTeu58vOUT3uRzoQMi+LtILBTJnZMAA/NYLNmnbTD/9MnnDtwVkVCD1PRTavK
	 cyxKrz96MIcmllvWdt9whL6fhTxynqBU120cd/VN82BJJNDbZK/SxCu3zb3qDGDI1m
	 MhXu8dpA0rP1w==
Date: Mon, 11 Dec 2023 17:39:30 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 1/7] xen/shutdown: address MISRA C:2012 Rule 2.1
In-Reply-To: <c0a8a12e39d688e101936d221af0f8eeefabe352.1702283415.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312111739250.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <c0a8a12e39d688e101936d221af0f8eeefabe352.1702283415.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 Mon, 11 Dec 2023, Nicola Vetrini wrote:
> Given that 'hwdom_shutdown' is a noreturn function, unreachable
> breaks can be eliminated to resolve violations of Rule 2.1.
> On the occasion, the type of its parameter is changed to uint8_t.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:43:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:43:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652603.1018543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrnZ-0000eg-L4; Tue, 12 Dec 2023 01:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652603.1018543; Tue, 12 Dec 2023 01: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 1rCrnZ-0000eZ-IS; Tue, 12 Dec 2023 01:43:01 +0000
Received: by outflank-mailman (input) for mailman id 652603;
 Tue, 12 Dec 2023 01:43: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=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rCrnY-0000eT-MX
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:43:00 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c7cbcb00-988f-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 02:42:59 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id E8C73B810DB;
 Tue, 12 Dec 2023 01:42:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 971C5C433C9;
 Tue, 12 Dec 2023 01:42: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: c7cbcb00-988f-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702345377;
	bh=U4d/9fWQYS7zwl7KtTCgMHuQhJ6xeiY8xl0mNdzq60g=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=iZaeUFBKVdvox3gfAlBnDBHJUKlPOMCS6MU5uPIK9PCLexzZfH3a40PxEAwfAG2rB
	 qwvOBADk9Eoyw0GYKvg8WbmoOmQhfclunGXs00cORfRlg3xDK50aFShrFGf1p066Uo
	 cA2o2CH32qWzT/REbGTQP91onKcN9HsQ5gDX+s6aEH4es55XFDeQ/GE75io3zUe8Ab
	 wvriCU5ei9EDv706AnsG5Xw0e+QZhxYAIqGOSb4O81ZV2o6KkB14WbW+QGYC70qBaK
	 b9R5hKM4baYvMAODAfi2S4JQAX9Tqg/Sa00iA8Kkw3KgpeqEGsLrYuzSgf9rKAsDLO
	 5dqfmqe84o5Kw==
Date: Mon, 11 Dec 2023 17:42:54 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 2/7] x86/mm: address MISRA C:2012 Rule 2.1
In-Reply-To: <5913d8871ff6c4f320c521e50e550a64e58d4351.1702283415.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312111741390.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <5913d8871ff6c4f320c521e50e550a64e58d4351.1702283415.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 Mon, 11 Dec 2023, Nicola Vetrini wrote:
> The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
> is unreachable because all switch clauses end with returns.
> However, some of them can be substituted with "break"s to allow
> the "return 0" outside the switch to be reachable.
> 
> No functional changes.

This is correct but makes the code inconsistent. I would either remove
the return 0; at the end of arch_memory_op, or do the following:

- initialize rc to 0 at the beginning: int rc = 0;
- all switch clauses break instead of return;
- at the end: return rc;


> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/mm.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 0a66db10b959..8b31426a5348 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -4753,7 +4753,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          }
>  
>          spin_unlock(&d->arch.e820_lock);
> -        return 0;
> +        break;
>      }
>  
>      case XENMEM_machine_memory_map:
> @@ -4818,7 +4818,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          if ( __copy_to_guest(arg, &ctxt.map, 1) )
>              return -EFAULT;
>  
> -        return 0;
> +        break;
>      }
>  
>      case XENMEM_machphys_mapping:
> @@ -4834,7 +4834,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          if ( copy_to_guest(arg, &mapping, 1) )
>              return -EFAULT;
>  
> -        return 0;
> +        break;
>      }
>  
>  #ifdef CONFIG_HVM
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:43:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:43:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652605.1018553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCroD-0001AG-VQ; Tue, 12 Dec 2023 01:43:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652605.1018553; Tue, 12 Dec 2023 01: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 1rCroD-0001A9-S7; Tue, 12 Dec 2023 01:43:41 +0000
Received: by outflank-mailman (input) for mailman id 652605;
 Tue, 12 Dec 2023 01: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=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rCroC-00010i-FO
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:43:40 +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 de0b5628-988f-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 02:43:38 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id C3E46CE1316;
 Tue, 12 Dec 2023 01:43:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E58FC433C8;
 Tue, 12 Dec 2023 01:43:34 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de0b5628-988f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702345415;
	bh=lmCRcoetHLoOnZ6lcya+2uVM9PbtmNs6EdtNAxxbeZ8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=o2UIClReODvMCcS0V8dhkzJA6HHCeiUwEOlemPW2T/g49ytYdG7lMUJR3CeUHXeCX
	 +Ab6M2874/0qb+SiBee2OFgFYDqGoCsH5ihRc8fwxOpfDliP+G38+Aqv70EEH075iw
	 11haPXbtlvZmpuuust4qIjYHvLqgij5Tzpj6aUo1KFhc3Sv3yglbPmyPU3wAhnQSR1
	 vxYjXaVFKnoEXfNm/cOtFX+/SWsDX5muFQQJIjWQ1MqYthkpcCqLoL0BTLnclsF/fa
	 oHtzUNsXSqw1ONiw/wtgovDlrK567ZA6WGzATaS87fyLct/Pl3kHAT0fzUR1HHEaqH
	 0JjlVyi/c5Gtw==
Date: Mon, 11 Dec 2023 17:43:32 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    George Dunlap <george.dunlap@citrix.com>, 
    Dario Faggioli <dfaggioli@suse.com>
Subject: Re: [XEN PATCH 4/7] xen/sched: address MISRA C:2012 Rule 2.1
In-Reply-To: <4006f1eb1977a89a57c5c02f003a2fefc06dfc42.1702283415.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312111743250.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <4006f1eb1977a89a57c5c02f003a2fefc06dfc42.1702283415.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 Mon, 11 Dec 2023, Nicola Vetrini wrote:
> The break statement after the return statement is definitely unreachable
> and can be removed with no functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:44:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:44:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652607.1018562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrp7-0001ib-7y; Tue, 12 Dec 2023 01:44:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652607.1018562; Tue, 12 Dec 2023 01: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 1rCrp7-0001iU-4y; Tue, 12 Dec 2023 01:44:37 +0000
Received: by outflank-mailman (input) for mailman id 652607;
 Tue, 12 Dec 2023 01:44:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rCrp5-0001iI-Ik
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:44:35 +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 fec22693-988f-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 02:44:33 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 2ED87CE13AD;
 Tue, 12 Dec 2023 01:44:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A0A8C433C7;
 Tue, 12 Dec 2023 01:44:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fec22693-988f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702345470;
	bh=tq80R6tbY+WHErdqKlbP1A0A5OMhcDgUtfj/d+5WE+k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=EfFVmiQK5CARKRdOr1dFtDAzEP0dqa7IdUlfwvL2h7c3WGXbCll4Jae+va6UHQ4zL
	 ElbA7P4sdWiyK9n2rlmxs+GH1sz3tYDxpQ/Sc++MpGPho7OTQbC/aL+c3mudAt7+CB
	 6XP1hUXLh7Mk6csL8VSKsn6hCYbe/vmjAe4keUPQ8bf28i+dr3ZeLXA/9qSPpMm7pp
	 6XicOIHmyaS/FbGU8NpDRa6AEdD94iKS95J23yVwQzGu5+YTPoP/I7bLVwj3YO0Cq9
	 6Sw7QUztoFsOROMCFoqNfPZz0xxdLrANVJOjTz/X1PhW88qpxiUGHZKpFy+aXabgg5
	 337DBa37HcP+A==
Date: Mon, 11 Dec 2023 17:44:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 6/7] x86/platform: removed break to address MISRA
 C:2012 Rule 2.1
In-Reply-To: <b1103bc13d5ce04159417592705b4fe6a6db748b.1702283415.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312111744170.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <b1103bc13d5ce04159417592705b4fe6a6db748b.1702283415.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 Mon, 11 Dec 2023, Nicola Vetrini wrote:
> The break statement is redundant, hence it can be removed.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:46:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:46:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652611.1018573 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrqn-0002K3-IY; Tue, 12 Dec 2023 01:46:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652611.1018573; Tue, 12 Dec 2023 01:46:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrqn-0002Jw-Fl; Tue, 12 Dec 2023 01:46:21 +0000
Received: by outflank-mailman (input) for mailman id 652611;
 Tue, 12 Dec 2023 01:46:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rCrqn-0002Jo-1d
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:46:21 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f5c3783-9890-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 02:46:20 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id B3EADB810DB;
 Tue, 12 Dec 2023 01:46:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A548C433C7;
 Tue, 12 Dec 2023 01:46: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: 3f5c3783-9890-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702345579;
	bh=/O9QV8/AHOH6xzHvqcH08MeGR3qFjIZmyEwhQdG7ByY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=i26RkqCugYTMz7RFOvnXFUnMncJIO+muZ84J9hugx6fgTkU77JJy3JeVMMUqn/JwH
	 xllO7L5qdf1bhpRpTp550t/rCi2qrW0X+4jSvLB5tKR+v2ZiQ0LgT+BUSrkpvl1SpY
	 45aMLIXRCWwwxcfV9+T8tCQxi5KQ/B/YHOjdQAuByy0tuuoNOdVqK8ltTNFlmJkSV3
	 PAc0Y2riKdBRQyJIrAjbtKBNZmWHlvnjQTDQsHTQrZ1jtjQEsd2MCJJbdpijMsag80
	 vJEXjQpVdh3fwS7TJCNyUMDmLyMOUCPxfk9PaS6zJJ7guInX9yXw4x2kIl5J6AIB0T
	 oTpYSSAWZ4GEw==
Date: Mon, 11 Dec 2023 17:46:16 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 7/7] x86/xstate: move BUILD_BUG_ON to address MISRA
 C:2012 Rule 2.1
In-Reply-To: <a969550faea681c69730c0968264781f7739670d.1702283415.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312111745280.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <a969550faea681c69730c0968264781f7739670d.1702283415.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 Mon, 11 Dec 2023, Nicola Vetrini wrote:
> The string literal inside the expansion of BUILD_BUG_ON is considered
> unreachable code; however, such statement can be moved earlier
> with no functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> The motivation for this code movement is that keeping it inside the switch
> statement matches MISRA's definition of unreachable code, but does not fall into
> the category of declarations without initialization, which is already a deviated
> aspect. An alternative approach would be to deviate BUILD_BUG_ON as well.

I think that deviating BUILD_BUG_ON would be totally fine. But given
that this patch is obviously correct:

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


> ---
>  xen/arch/x86/xstate.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
> index cf94761d0542..99f0526c8988 100644
> --- a/xen/arch/x86/xstate.c
> +++ b/xen/arch/x86/xstate.c
> @@ -396,9 +396,10 @@ void xrstor(struct vcpu *v, uint64_t mask)
>       */
>      for ( prev_faults = faults = 0; ; prev_faults = faults )
>      {
> +        BUILD_BUG_ON(sizeof(faults) != 4); /* Clang doesn't support %z in asm. */
> +
>          switch ( __builtin_expect(ptr->fpu_sse.x[FPU_WORD_SIZE_OFFSET], 8) )
>          {
> -            BUILD_BUG_ON(sizeof(faults) != 4); /* Clang doesn't support %z in asm. */
>  #define _xrstor(insn) \
>          asm volatile ( "1: .byte " insn "\n" \
>                         "3:\n" \
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 01:48:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 01:48:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652614.1018584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrt5-0002tF-11; Tue, 12 Dec 2023 01:48:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652614.1018584; Tue, 12 Dec 2023 01:48:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCrt4-0002t8-Se; Tue, 12 Dec 2023 01:48:42 +0000
Received: by outflank-mailman (input) for mailman id 652614;
 Tue, 12 Dec 2023 01:48:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rCrt3-0002t2-Bw
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 01:48:41 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9264ee6d-9890-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 02:48:40 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id B1B0461524;
 Tue, 12 Dec 2023 01:48:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7DD99C433C8;
 Tue, 12 Dec 2023 01:48:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9264ee6d-9890-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702345718;
	bh=HlZh59wGfAVBSuorjxj41ZEQZnizjiwbSz1ec6mgCCY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ERK/yd43EQvKEMvujhtvY7GVYRceWO5Ebv5D0ddTCSG8GFJpjA4xr9bvYh1Wpty8K
	 YBrAHFLlSPB/su7hkL7nLTLiKkkB9DsQuWqQY6Et0HyzZJTwTqD/sA8KMGkX73/gC8
	 K3Qm/cEY30ewsgaomeysFRrLYg2/8CNfHxXx/eDtkEmPlSZqYMRJrhUvRpLE1YUvzy
	 1kLtKFiFhVCxm72u1V5fB3yZ7F9JStbcdMp1itQJlFdXmglM8/3VHIwCzRP1dHy7t9
	 sODmY0RnL/pl5Na34PqpK4OzULZU+besOJs5CPhFcZLGVixYJsYRsvRYoRW72NCn3e
	 VpAZxEZvgNhag==
Date: Mon, 11 Dec 2023 17:48:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: 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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH v3 1/3] xen/x86: add missing instances of asmlinkage
 attributes
In-Reply-To: <2282f4b7ff0143f513f9677e0cca2d68c0f2a08c.1702285639.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312111748300.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com> <2282f4b7ff0143f513f9677e0cca2d68c0f2a08c.1702285639.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 Mon, 11 Dec 2023, Nicola Vetrini wrote:
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 04:25:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 04:25:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652624.1018594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCuKF-0003dz-8G; Tue, 12 Dec 2023 04:24:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652624.1018594; Tue, 12 Dec 2023 04:24: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 1rCuKF-0003ds-4D; Tue, 12 Dec 2023 04:24:55 +0000
Received: by outflank-mailman (input) for mailman id 652624;
 Tue, 12 Dec 2023 04:24: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 1rCuKD-0003di-D2; Tue, 12 Dec 2023 04:24: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 1rCuKD-0004ll-9N; Tue, 12 Dec 2023 04:24: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 1rCuKC-0007zr-PZ; Tue, 12 Dec 2023 04:24:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCuKC-0005qU-OY; Tue, 12 Dec 2023 04:24: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=CkD411KDf7Vf2X+Do2llXV6BBC8TX/lbkKeWPHWorxQ=; b=JpFchinof97KtLhJz1xPAcfoMc
	YvHnw2Cv5aODgzssRP7cAbt79PAWRGXXyA2Y865N3Tk6MjYM0r+5BhzViLAiEt3IfIh4AKhkB7tDI
	6LfVbmkWSjTWlMy8p7pehqH6jINtW5Ltl5Aw66wvuJGwXt0odPNITbgR6+BvvspOI5kA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184097-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184097: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=725acd0b9cc047b20a1b9379e46f05d3ebcf485e
X-Osstest-Versions-That:
    ovmf=1d50544aa2321e4efcd9c193d534fb4096d64dbf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 04:24:52 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 725acd0b9cc047b20a1b9379e46f05d3ebcf485e
baseline version:
 ovmf                 1d50544aa2321e4efcd9c193d534fb4096d64dbf

Last test of basis   184095  2023-12-11 21:42:52 Z    0 days
Testing same since   184097  2023-12-12 01:43:01 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    
 test-amd64-i386-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
   1d50544aa2..725acd0b9c  725acd0b9cc047b20a1b9379e46f05d3ebcf485e -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 05:33:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 05:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652630.1018603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCvOd-0003oK-B4; Tue, 12 Dec 2023 05:33:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652630.1018603; Tue, 12 Dec 2023 05:33:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCvOd-0003oD-8M; Tue, 12 Dec 2023 05:33:31 +0000
Received: by outflank-mailman (input) for mailman id 652630;
 Tue, 12 Dec 2023 05:33: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 1rCvOc-0003o3-6B; Tue, 12 Dec 2023 05:33: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 1rCvOb-0006CB-S2; Tue, 12 Dec 2023 05:33: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 1rCvOb-0001zM-BB; Tue, 12 Dec 2023 05:33:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCvOb-00077r-Ad; Tue, 12 Dec 2023 05:33: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=8Q9PTUziPa44904pSdlXFHAEXzBs7ly+Zs7g3SwOS6A=; b=6bMj8cyDm51aXq0fa2Lm/MoiEr
	ycdHfO/vmdkPdEUXwjEULHMWlyPS6TPGLuxyJ/OS7m6gSsK9e9+YGGk8m/Y9g5HosMn+vhCpFNO4j
	mUFQzggtdWFooAmVaO8ukN6CTa82Z4Ag936AObtOHWMOQ9CWYsRDLuQKLcJWRAbdpuEQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184094-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184094: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-credit2:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-credit2: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-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-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-amd64-i386-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-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-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale: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-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1403131596fa77663708f6baa0fee8bf7b95eb5a
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 05:33:29 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-credit2 20 guest-localmigrate/x10 fail pass in 184098-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-credit2  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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          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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1403131596fa77663708f6baa0fee8bf7b95eb5a
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    4 days
Failing since        184036  2023-12-08 10:40:52 Z    3 days    8 attempts
Testing same since   184094  2023-12-11 19:10:39 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Paul Durrant <paul@xen.org>
  Simone Ballarin <simone.ballarin@bugseng.com>
  Stefano Stabellini <stefano.stabellini@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 1403131596fa77663708f6baa0fee8bf7b95eb5a
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Mon Dec 11 11:28:02 2023 +0100

    x86/viridian: make build_assertions static
    
    This is consistent with other instances of the same function
    and also resolves a violation of MISRA C:2012 Rule 8.4.
    
    No functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Acked-by: Paul Durrant <paul@xen.org>

commit f45e488e7bc96b43faa5078c8418c6f496e466c1
Author: Stefano Stabellini <stefano.stabellini@amd.com>
Date:   Mon Dec 11 11:27:20 2023 +0100

    docs/misra/rules.rst: add more rules
    
    Add the rules accepted in the last three MISRA C working group meetings.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit 519c7a1d589cc263f1d0e291f53fd33a9980a239
Author: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Date:   Mon Dec 11 11:27:07 2023 +0100

    xen: address violations of MISRA C:2012 Rule 14.4
    
    The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
    headline states:
    "The controlling expression of an if statement and the controlling
    expression of an iteration-statement shall have essentially Boolean type".
    
    Struct domain member is_dying is an anonymous enum designed to act as boolean.
    Add deviation to mark its uses in controlling expressions as deliberate.
    
    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>

commit 807321b6f355dc93dc77de7e44c7d9afb3e5f8a1
Author: Federico Serafini <federico.serafini@bugseng.com>
Date:   Mon Dec 11 11:26:16 2023 +0100

    x86/acpi: remove acpi_pic_sci_set_trigger()
    
    Remove apci_pic_set_trigger() declaration: there is no definition and there are
    no calls to such function in the XEN project.
    
    Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 06:16:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 06:16:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652642.1018613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCw4Y-0000Tz-Hk; Tue, 12 Dec 2023 06:16:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652642.1018613; Tue, 12 Dec 2023 06:16:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCw4Y-0000Ts-El; Tue, 12 Dec 2023 06:16:50 +0000
Received: by outflank-mailman (input) for mailman id 652642;
 Tue, 12 Dec 2023 06: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=aifi=HX=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCw4X-0000Tl-4C
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 06:16:49 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061a.outbound.protection.outlook.com
 [2a01:111:f400:7e88::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06d34821-98b6-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 07:16:47 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CH0PR12MB5369.namprd12.prod.outlook.com (2603:10b6:610:d4::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Tue, 12 Dec
 2023 06:16:43 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Tue, 12 Dec 2023
 06:16: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: 06d34821-98b6-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lHvRJWyE7m56yy8vFbUbYNMzzdBiep2uhxsaD5uOMQJ4s0kL3O2As7QO5dz/81Ik5VJi66z6cQP8TQFQZyeC37epSXQF+lwAY+2YMslxS3ppbwxuXP2QVG4YT5GQBZQubmQtOgef+UBamiQCrjxsMI6UFHGnc2+itbkfLDNzYa1YLBvLZfPZsdp8E+dW+IezU6YlhmAgBIEq2JV8AHgm5KbNytOP7bxnAqVZYnVWrFZ9dWKfA/8HgL7NpBnRkZSvEFYBal4T76FqRqx89Y/+0Zvc1wL5PvM1uIWR5Pf+sAKcmOulyoeYLoSLB68gCPd+6fJVRCFNf03qf9i8F1YCYw==
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=lZt1aJ83eeXdCgeLCnEjAObZER9RlQELiCpJT8sGL1c=;
 b=h9VCMkObJxxITsgl9YX78jKMVXkc7TeAGs9JdeqHkM81UR5pVLQ7pKUiDMYb/626bCozLgER2yTORxVZbcsigmWgncIJgfER+7ewo/idvz1s80hQT0Ysy6VyV+qdn8TbvkuRbpDAGsUaXCSC+2qCvJaDXyRbI6FCytg5VtFmbTJct+JBnOYZI5i7N4tFKAhzweORQdwYra88XNRYhT0K86rybfon/fdG1pFXHFifL8akysTn/mglLSkYDHGSz9dlp0WX5WAUKJcWzum5Tic5JQzJeIugO/TvvKhJUfqd+0Dqz7oJ66N9Eba5qpC80Pm3Lw6IyPzGLpCgf5PlCaiFjw==
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=lZt1aJ83eeXdCgeLCnEjAObZER9RlQELiCpJT8sGL1c=;
 b=yGcn+tXOAUTzOz4AsvnH7REhE+CEd+7KUGJlGasZIYzsfw6S2t4JmVN/GjWQOc8HsUm5B1t36fWM2ruxZ+2rTUIsdB0NliX+ywBHjqTfLZcvAvRoZdGp2tex16YddOah6D2nHnTlUpSC83xayJZcCF1jDojVfUPOfBksm/7REsM=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Thomas
 Gleixner <tglx@linutronix.de>, Stefano Stabellini <sstabellini@kernel.org>
CC: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len
 Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, "Stabellini,
 Stefano" <stefano.stabellini@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Topic: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Index:
 AQHaHsGdlNZnjmvNCkucW725DqxYz7CSRC+AgADLdgCAALwOgIAAX9AAgAE42ICAA5dDgIAAxsiAgAC4TACAABRoAIABzBGAgAf5bQCAATuOgA==
Date: Tue, 12 Dec 2023 06:16:43 +0000
Message-ID:
 <BL1PR12MB584997DDE6839F2340022976E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
References:
 <alpine.DEB.2.22.394.2311291950350.3533093@ubuntu-linux-20-04-desktop>
 <ZWiyBP4Lzz5lXraP@macbook>
 <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXculMdLgwGaRC7i@macbook>
In-Reply-To: <ZXculMdLgwGaRC7i@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA1PR12MB6556.namprd12.prod.outlook.com
 (15.20.7091.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_|CH0PR12MB5369:EE_
x-ms-office365-filtering-correlation-id: 3c1938c9-9488-43b2-23f4-08dbfad9e97f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 ee8WHIh7P2rLv647ruPHkF13E/Qh8/8pxZjt1hI5ubTfrRGRD6EE/y6vDydDkjAk/bUTXqdZm91nvZRDNYxGaxAAObhP6scXaXP9YpO7dEjfWN9gmctsXInS059fQd7sutVorUDKml4dkJGFKCfD7xcjRAHh3YFZRGW2/cc6YgrJ4/RCkAlA6L8BK4POXGAjJPKJi4msQMFiEEaLgUXgn50lbSgybp/CfmfueGaJfWJKB/4qBfcyE2PwBcdqqUxs2SvdwD3QPyeeTqgUW7RBGCfn75m/0XqhhDmfjI1iviyW6wAz4pVKz5tYIjVpE8JU/soi1/2OCFCBGNP8JEg1PEBK9zfvIZRlKueM6hFGLCOFqpxZKBkX3/GrQu6rU3Ok/h5OEmUkTWKHUvS60MyAabmTUcSxkE5nlKi5Rki2J5DblAG1YTs0i4gN0e5+HU6DflQ1ItQRXmJSXuQr2/Ca8TjXSuv9H5W3jk6isnl9mbXootFbKjPzt3LIFuivMV/mM1HKKXORRiD+RvtTW/O3BnLvc/mycD5TjxZmbNCFDV7E/C7Za38aFKORjRXsGW3aanCz2qnXlTeZUhixAV+1ik5/tweKaeXY9gpcVNDB6PLwe3w4J9hkxkxFGx6o6Unm
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:(13230031)(39860400002)(396003)(346002)(376002)(136003)(366004)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(38100700002)(122000001)(83380400001)(4326008)(316002)(8936002)(8676002)(7696005)(53546011)(9686003)(55016003)(26005)(71200400001)(6506007)(66446008)(66476007)(66556008)(64756008)(54906003)(76116006)(66946007)(110136005)(5660300002)(478600001)(52536014)(7416002)(2906002)(33656002)(41300700001)(38070700009);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?czhWVXpPd1dScjAyaFljMjBxOGVOQTN6LzVUZitrblFzWnZ4TGEzNUlubnNZ?=
 =?utf-8?B?WHpOZzcraEpKRXNVZllKRS9VbTVtcXJmV2tOSGNBY242aE0wN1hoQ1dPcERD?=
 =?utf-8?B?dEVmcE5FWUFIVHZtdCt3MzVNczdtdFdFUmM0YU8zZXgzUmtObGpBa3BhWUZL?=
 =?utf-8?B?TmZGNzhhY1FUZFpCd3g5Z2NEZUxGMFQ3Wktxek5LV2JCanpXeWJVWUpYa3NB?=
 =?utf-8?B?TGw2em1zaTNmZldSVHhmTHQ0YUNnWFFKV3lHbHNHR1BVdEZXVWprZUcvVm1E?=
 =?utf-8?B?WmNUVG1NZWxScktldjBUeDg4V2tzcC9RZTRBTU1ONEtFZUpJWHhkOWs0WkY2?=
 =?utf-8?B?U0JoWlMwR0JQbjJNZCtHZzNTbGI3a2Q4RCtHZ2k5Ym1yRUlGcVRoV3JsVjRB?=
 =?utf-8?B?WTVvTXl1MzdNOG1IdG5WMWZLaUk0b3RLaUxzZVp2LzFBNzhiejVQRXRldWRQ?=
 =?utf-8?B?QXlpYjVzSlNNM2lJNkswc0xzMlp6dC9QT2Q5N1JvYXZmN1p5NGtOMkQrQlFz?=
 =?utf-8?B?NmVQaUIwbEI1a1ZXTGU0LzhQQzduT2d4bDh5VzJTV2FyRGQybjFHczhLUm8r?=
 =?utf-8?B?NldQdU4zTk1xU0FxcEZFREtBRGFJRmcxN3dmcU56UnJJYWJ3NHpzYWRQTHNX?=
 =?utf-8?B?Q3htNmYzNDN0TTBCMlEydCtiR2RjYStsdXJpa05jajd3SW5XUjVicERWOGll?=
 =?utf-8?B?M1hyWFlNY2UyclJRMEtaU08raUZZOUpJdWo2M0hzY0gwS29Cc3pMMGJySEdz?=
 =?utf-8?B?a1YyeHF6dy9WM2JtZVo4TlVkUXZFQW5SeTFWN0k4TWVqbUljcFZaQ3JJcWU5?=
 =?utf-8?B?ZFg4SlhBRVVzclk0OHdoQ3hVS3RVTHB3aFV1YWxFNFJ4d3JMWEZpakZrQ1By?=
 =?utf-8?B?MmFLTFBCUUpKek4yUk9zeDFUV3N0MlJxOFQ0NGlnRDNyL3Brbll2eGNnVVB2?=
 =?utf-8?B?QTAwYWJKdDBqcGFGY0JBU2loVXVpaGRDdFpNdHc1MGtkMFNNMHpIKytVUEVN?=
 =?utf-8?B?RkY1YWFZWlBEWVR6MlpYSTB1U2ZyRTl2Snl4ZXlBUU93N1l3MCtwNzZuTTZE?=
 =?utf-8?B?aHVLL0lxSkJPQkN1Mm1Ta3dvNTlqRGZYMDFjQ0VyQ2JYbnpCa0tHcWFoWnZ6?=
 =?utf-8?B?d3dKbTE2Mmd0SmpNOUpsS3pCRm5iZ24xWDVnZjIyaDQ2V2oxZmZPZnJadHN2?=
 =?utf-8?B?Zm5QdkFwTlMxNDRUWGtDOThmbWZZUmlvMmpvdlZTUEp5azZZeG5WMHRzcmdN?=
 =?utf-8?B?S0s1YXUwUGd0Z25nVFBNQXlidzhxblhEYktnckFKQ25ieTU3a2pUK08xWWdP?=
 =?utf-8?B?Yk1MOUlabU4zWmw0dVZjcldTQzdRWkhscThheFkzclRFYTBnVXlUSmhVcGtP?=
 =?utf-8?B?N0Jxd2t0OTNoUTF3ZGZYTFYzWVVIT0RLLzFFL1pTazBBQ0pyNUJ3SmZXQ2NQ?=
 =?utf-8?B?QUNIYmkveVRORXowMDM3S3d1SUxFa0dIWVRkSVFBb2VIVE1NOE1IZ1FxMXpM?=
 =?utf-8?B?Z29oTmg5Y2JKRk9MZkx3a1RZdmc3N0NkdnlyNFNuTGEwcWpwYWROTkREbzQ2?=
 =?utf-8?B?OUExYW5UQWdDWGdPby9WMXlOT1NrMTVXQk1ZckU1dzM0djNyQXVYUnVFRmxZ?=
 =?utf-8?B?dmNvYVNYTlJoQ0FZam1uVzhqbUdiaXR6R05oVkxMbVQzb0c2ZWNIcVlQTGpM?=
 =?utf-8?B?Q2x5SkRqeUpSaFVsalA4VkJEYzMxOVhnZjVveFZLcm9ENVhpQ0NJdUQ0dFk4?=
 =?utf-8?B?a1BWc0FxVjB2c1RCbXBoVWdCNU82NjVpbzdDUkUrRnBicDBpU2Z3SHFFNDEy?=
 =?utf-8?B?SnVpSXZ5NFRDTWd3N1llVklWTzZ6c2xoWlI1TzNHelhqNk9DVjRuRnQ1a3Yx?=
 =?utf-8?B?Z29yWHJUNzJSK3hGeHI1TlZSaWhyajhqMDZBZTFBUzJwUGJBcmprSS9lTTlW?=
 =?utf-8?B?dWtTR3NHOVhSZFM4N1lCUEpqeVpWQkg4Ly9OSC82aG5TTnQzTjJsd091dmxC?=
 =?utf-8?B?TytBSmduRDRlVE1nTTFzbndJVDJQeTg0ckFFRzRXWHIrUjNSRURrbVE4ZExh?=
 =?utf-8?B?ZnNUaHUwelVSc3d2TS9WbzNBZGpHY2RBTm5mdFdobnJvS3pBRTRrZWdZYzNG?=
 =?utf-8?Q?aqho=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A45991944601454F814DEAC002231D69@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: 3c1938c9-9488-43b2-23f4-08dbfad9e97f
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2023 06:16:43.4704
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: P2YfgWXfLS919SCZO78tzPl3F3NrNCLO9s8Q/LTHkBbuN1Qu/VgenNrPhVtvrZ0CkSK5i9c35EnUUAlFScaXGA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5369

T24gMjAyMy8xMi8xMSAyMzo0NSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gV2VkLCBE
ZWMgMDYsIDIwMjMgYXQgMDY6MDc6MjZBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4N
Cj4+IFdoZW4gUFZIIGRvbTAgZW5hYmxlIGEgZGV2aWNlLCBpdCB3aWxsIGdldCB0cmlnZ2VyIGFu
ZCBwb2xhcml0eSBmcm9tIEFDUEkgKHNlZSBhY3BpX3BjaV9pcnFfZW5hYmxlKQ0KPj4gSSBoYXZl
IGEgdmVyc2lvbiBvZiBwYXRjaCB3aGljaCB0cmllZCB0aGF0IHdheSwgc2VlIGJlbG93Og0KPj4N
Cj4+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2aC5jIGIvYXJjaC94ODYv
eGVuL2VubGlnaHRlbl9wdmguYw0KPj4gaW5kZXggYWRhMzg2OGMwMmMyLi40M2UxYmRhOWY5NDYg
MTAwNjQ0DQo+PiAtLS0gYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2aC5jDQo+PiArKysgYi9h
cmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2aC5jDQo+PiBAQCAtMSw2ICsxLDcgQEANCj4+ICAvLyBT
UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KPj4gICNpbmNsdWRlIDxsaW51eC9hY3Bp
Lmg+DQo+PiAgI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9w
Y2kuaD4NCj4+DQo+PiAgI2luY2x1ZGUgPHhlbi9odmMtY29uc29sZS5oPg0KPj4NCj4+IEBAIC0y
NSw2ICsyNiwxMjcgQEANCj4+ICBib29sIF9fcm9fYWZ0ZXJfaW5pdCB4ZW5fcHZoOw0KPj4gIEVY
UE9SVF9TWU1CT0xfR1BMKHhlbl9wdmgpOw0KPj4NCj4+ICt0eXBlZGVmIHN0cnVjdCBnc2lfaW5m
byB7DQo+PiArICAgICAgIGludCBnc2k7DQo+PiArICAgICAgIGludCB0cmlnZ2VyOw0KPj4gKyAg
ICAgICBpbnQgcG9sYXJpdHk7DQo+PiArICAgICAgIGludCBwaXJxOw0KPj4gK30gZ3NpX2luZm9f
dDsNCj4+ICsNCj4+ICtzdHJ1Y3QgYWNwaV9wcnRfZW50cnkgew0KPj4gKyAgICAgICBzdHJ1Y3Qg
YWNwaV9wY2lfaWQgICAgICBpZDsNCj4+ICsgICAgICAgdTggICAgICAgICAgICAgICAgICAgICAg
cGluOw0KPj4gKyAgICAgICBhY3BpX2hhbmRsZSAgICAgICAgICAgICBsaW5rOw0KPj4gKyAgICAg
ICB1MzIgICAgICAgICAgICAgICAgICAgICBpbmRleDsgICAgICAgICAgLyogR1NJLCBvciBsaW5r
IF9DUlMgaW5kZXggKi8NCj4+ICt9Ow0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgeGVuX3B2aF9nZXRf
Z3NpX2luZm8oc3RydWN0IHBjaV9kZXYgKmRldiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2lfaW5mb190ICpnc2lf
aW5mbykNCj4+ICt7DQo+PiArICAgICAgIGludCBnc2k7DQo+PiArICAgICAgIHU4IHBpbiA9IDA7
DQo+PiArICAgICAgIHN0cnVjdCBhY3BpX3BydF9lbnRyeSAqZW50cnk7DQo+PiArICAgICAgIGlu
dCB0cmlnZ2VyID0gQUNQSV9MRVZFTF9TRU5TSVRJVkU7DQo+PiArICAgICAgIGludCBwb2xhcml0
eSA9IGFjcGlfaXJxX21vZGVsID09IEFDUElfSVJRX01PREVMX0dJQyA/DQo+PiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDUElfQUNUSVZFX0hJR0ggOiBBQ1BJX0FDVElW
RV9MT1c7DQo+PiArDQo+PiArICAgICAgIGlmIChkZXYpDQo+PiArICAgICAgICAgICAgICAgcGlu
ID0gZGV2LT5waW47DQo+PiArICAgICAgIGlmICghcGluKSB7DQo+PiArICAgICAgICAgICAgICAg
eGVuX3Jhd19wcmludGsoIk5vIGludGVycnVwdCBwaW4gY29uZmlndXJlZFxuIik7DQo+PiArICAg
ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArICAgICAgIH0NCj4+ICsNCj4+ICsgICAg
ICAgZW50cnkgPSBhY3BpX3BjaV9pcnFfbG9va3VwKGRldiwgcGluKTsNCj4+ICsgICAgICAgaWYg
KGVudHJ5KSB7DQo+PiArICAgICAgICAgICAgICAgaWYgKGVudHJ5LT5saW5rKQ0KPj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgZ3NpID0gYWNwaV9wY2lfbGlua19hbGxvY2F0ZV9pcnEoZW50cnkt
PmxpbmssDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbnRyeS0+aW5kZXgsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHJpZ2dlciwgJnBvbGFyaXR5LA0KPj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCk7DQo+PiArICAgICAgICAgICAgICAgZWxzZQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAg
Z3NpID0gZW50cnktPmluZGV4Ow0KPj4gKyAgICAgICB9IGVsc2UNCj4+ICsgICAgICAgICAgICAg
ICByZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICsgICAgICAgZ3NpX2luZm8tPmdzaSA9IGdzaTsN
Cj4+ICsgICAgICAgZ3NpX2luZm8tPnRyaWdnZXIgPSB0cmlnZ2VyOw0KPj4gKyAgICAgICBnc2lf
aW5mby0+cG9sYXJpdHkgPSBwb2xhcml0eTsNCj4+ICsNCj4+ICsgICAgICAgcmV0dXJuIDA7DQo+
PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgeGVuX3B2aF9tYXBfcGlycShnc2lfaW5mb190ICpn
c2lfaW5mbykNCj4+ICt7DQo+PiArICAgICAgIHN0cnVjdCBwaHlzZGV2X21hcF9waXJxIG1hcF9p
cnE7DQo+PiArICAgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICAgIG1hcF9pcnEuZG9taWQg
PSBET01JRF9TRUxGOw0KPj4gKyAgICAgICBtYXBfaXJxLnR5cGUgPSBNQVBfUElSUV9UWVBFX0dT
STsNCj4+ICsgICAgICAgbWFwX2lycS5pbmRleCA9IGdzaV9pbmZvLT5nc2k7DQo+PiArICAgICAg
IG1hcF9pcnEucGlycSA9IGdzaV9pbmZvLT5nc2k7DQo+PiArDQo+PiArICAgICAgIHJldCA9IEhZ
UEVSVklTT1JfcGh5c2Rldl9vcChQSFlTREVWT1BfbWFwX3BpcnEsICZtYXBfaXJxKTsNCj4+ICsg
ICAgICAgZ3NpX2luZm8tPnBpcnEgPSBtYXBfaXJxLnBpcnE7DQo+PiArDQo+PiArICAgICAgIHJl
dHVybiByZXQ7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgeGVuX3B2aF91bm1hcF9waXJx
KGdzaV9pbmZvX3QgKmdzaV9pbmZvKQ0KPj4gK3sNCj4+ICsgICAgICAgc3RydWN0IHBoeXNkZXZf
dW5tYXBfcGlycSB1bm1hcF9pcnE7DQo+PiArDQo+PiArICAgICAgIHVubWFwX2lycS5kb21pZCA9
IERPTUlEX1NFTEY7DQo+PiArICAgICAgIHVubWFwX2lycS5waXJxID0gZ3NpX2luZm8tPnBpcnE7
DQo+PiArDQo+PiArICAgICAgIHJldHVybiBIWVBFUlZJU09SX3BoeXNkZXZfb3AoUEhZU0RFVk9Q
X3VubWFwX3BpcnEsICZ1bm1hcF9pcnEpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50IHhl
bl9wdmhfc2V0dXBfZ3NpKGdzaV9pbmZvX3QgKmdzaV9pbmZvKQ0KPj4gK3sNCj4+ICsgICAgICAg
c3RydWN0IHBoeXNkZXZfc2V0dXBfZ3NpIHNldHVwX2dzaTsNCj4+ICsNCj4+ICsgICAgICAgc2V0
dXBfZ3NpLmdzaSA9IGdzaV9pbmZvLT5nc2k7DQo+PiArICAgICAgIHNldHVwX2dzaS50cmlnZ2Vy
aW5nID0gKGdzaV9pbmZvLT50cmlnZ2VyID09IEFDUElfRURHRV9TRU5TSVRJVkUgPyAwIDogMSk7
DQo+PiArICAgICAgIHNldHVwX2dzaS5wb2xhcml0eSA9IChnc2lfaW5mby0+cG9sYXJpdHkgPT0g
QUNQSV9BQ1RJVkVfSElHSCA/IDAgOiAxKTsNCj4+ICsNCj4+ICsgICAgICAgcmV0dXJuIEhZUEVS
VklTT1JfcGh5c2Rldl9vcChQSFlTREVWT1Bfc2V0dXBfZ3NpLCAmc2V0dXBfZ3NpKTsNCj4+ICt9
DQo+IA0KPiBIbSwgd2h5IG5vdCBzaW1wbHkgY2FsbCBwY2liaW9zX2VuYWJsZV9kZXZpY2UoKSBm
cm9tIHBjaWJhY2s/ICBXaGF0DQpwY2liaW9zX2VuYWJsZV9kZXZpY2UgaGFkIGJlZW4gY2FsbGVk
IHdoZW4gdXNpbmcgY21kICJ4bCBwY2ktYXNzaWduYWJsZS1hZGQgc2JkZiIgZnJvbSBwY2liYWNr
LiBCdXQgaXQgZGlkbid0IGRvIG1hcF9waXJxIGFuZCBzZXR1cF9nc2kuDQpCZWNhdXNlIHBjaWJp
b3NfZW5hYmxlX2RldmljZS0+IHBjaWJpb3NfZW5hYmxlX2lycS0+IF9fYWNwaV9yZWdpc3Rlcl9n
c2koYWNwaV9yZWdpc3Rlcl9nc2lfaW9hcGljIFBWSCBzcGVjaWZpYykNCj4geW91IGFyZSBkb2lu
ZyBoZXJlIHVzaW5nIHRoZSBoeXBlcmNhbGxzIGlzIGEgYmFja2Rvb3IgaW50byB3aGF0J3MgZG9u
ZQ0KPiBhdXRvbWF0aWNhbGx5IGJ5IFhlbiBvbiBJTy1BUElDIGFjY2Vzc2VzIGJ5IGEgUFZIIGRv
bTAuDQpCdXQgdGhlIGdzaSBkaWRuJ3QgYmUgdW5tYXNrZWQsIGFuZCB2aW9hcGljX2h3ZG9tX21h
cF9nc2kgaXMgbmV2ZXIgY2FsbGVkLg0KU28sIEkgdGhpbmsgaW4gcGNpYmFjaywgaWYgd2UgY2Fu
IGRvIHdoYXQgdmlvYXBpY19od2RvbV9tYXBfZ3NpIGRvZXMuDQo+IA0KPiBJdCB3aWxsIGJlIG11
Y2ggbW9yZSBuYXR1cmFsIGZvciB0aGUgUFZIIGRvbTAgbW9kZWwgdG8gc2ltcGx5IHVzZSB0aGUN
Cj4gbmF0aXZlIHdheSB0byBjb25maWd1cmUgYW5kIHVubWFzayB0aGUgSU8tQVBJQyBwaW4sIGFu
ZCB0aGF0IHdvdWxkDQo+IGNvcnJlY3RseSBzZXR1cCB0aGUgdHJpZ2dlcmluZy9wb2xhcml0eSBh
bmQgYmluZCBpdCB0byBkb20wIHdpdGhvdXQNCj4gcmVxdWlyaW5nIHRoZSB1c2FnZSBvZiBhbnkg
aHlwZXJjYWxscy4NCkRvIHlvdSBzdGlsbCBwcmVmZXIgdGhhdCBJIGNhbGxlZCB1bm1hc2tfaXJx
IGluIHBjaXN0dWJfaW5pdF9kZXZpY2UsIGFzIHRoaXMgdjIgcGF0Y2ggZG8/DQpCdXQgVGhvbWFz
IEdsZWl4bmVyIHRoaW5rIGl0IGlzIG5vdCBzdWl0YWJsZSB0byBleHBvcnQgdW5tYXNrX2lycS4N
Cj4gDQo+IElzIHRoYXQgYW4gaXNzdWUgc2luY2UgaW4gdGhhdCBjYXNlIHRoZSBnc2kgd2lsbCBn
ZXQgbWFwcGVkIGFuZCBib3VuZA0KPiB0byBkb20wPw0KRG9tMCBkbyBtYXBfcGlycSBpcyB0byBw
YXNzIHRoZSBjaGVjayB4Y19kb21haW5faXJxX3Blcm1pc3Npb24oKS0+IHBpcnFfYWNjZXNzX3Bl
cm1pdHRlZCgpLCANCj4gDQo+IE90aGVyd2lzZSBJIHdvdWxkIHByZWZlciBpZiB0aGUgZ3NpIGlz
IGp1c3QgY29uZmlndXJlZCBmcm9tIHBjaWJhY2sNCj4gKFBIWVNERVZPUF9zZXR1cF9nc2kpIGJ1
dCBub3QgbWFwcGVkLCBhcyBhbGxvd2luZyBhIFBWSCBkb20wIHRvIG1hcA0KPiBpbnRlcnJ1cHRz
IHVzaW5nIFBIWVNERVZPUF97LHVufW1hcF9waXJxIHRvIGl0c2VsZiBpbnRyb2R1Y2VzIGEgbmV3
DQo+IGludGVyZmFjZSB0byBtYW5hZ2UgaW50ZXJydXB0cyB0aGF0IGNsYXNoZXMgd2l0aCB0aGUg
bmF0aXZlIHdheSB0aGF0IGENCj4gUFZIIGRvbTAgdXNlcy4NClRoaXMgbWV0aG9kIGRvZXMgbWFw
X3BpcnEgYW5kIHNldHVwX2dzaSBvbmx5IHdoZW4gYSBkZXZpY2UgaXMgYXNzaWduZWQgdG8gcGFz
c3Rocm91Z2gsIGl0IHdvbid0IGFmZmVjdCB0aGUgb3RoZXIgZGV2aWNlIHVzaW5nIG5hdGl2ZSB3
YXkuDQoNCj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFu
IENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 06:26:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 06:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652647.1018623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwDy-0002I5-JR; Tue, 12 Dec 2023 06:26:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652647.1018623; Tue, 12 Dec 2023 06:26:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwDy-0002Hy-FZ; Tue, 12 Dec 2023 06:26:34 +0000
Received: by outflank-mailman (input) for mailman id 652647;
 Tue, 12 Dec 2023 06:26:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCwDx-0002Hq-0N
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 06:26:33 +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 63c54cc2-98b7-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 07:26:32 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 108E82247E;
 Tue, 12 Dec 2023 06:26:31 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id DA9AA136C7;
 Tue, 12 Dec 2023 06:26:30 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id RDWcMxb9d2WiTQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 06: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>
X-Inumbo-ID: 63c54cc2-98b7-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702362391; 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=s6xbaBTQOrj7vKm0fwHcZWKVdMxFBUAXRygZl9oliv0=;
	b=bwxGRl3AdOqQtUBWqPkTpuftrYgvBFPfgNk09YsEz+FxNvAXjoAmefu4FepOgMPDV30cow
	ByBMXmx7AqnpEdqGByselHUgYDanEQOMkJbYrUS7m6PlqxJ93+2RXQ3oNCuHt9goH4gbPK
	2G39HKvrGHJGR+dwAHwagFhM5wqyz7w=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702362391; 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=s6xbaBTQOrj7vKm0fwHcZWKVdMxFBUAXRygZl9oliv0=;
	b=bwxGRl3AdOqQtUBWqPkTpuftrYgvBFPfgNk09YsEz+FxNvAXjoAmefu4FepOgMPDV30cow
	ByBMXmx7AqnpEdqGByselHUgYDanEQOMkJbYrUS7m6PlqxJ93+2RXQ3oNCuHt9goH4gbPK
	2G39HKvrGHJGR+dwAHwagFhM5wqyz7w=
Message-ID: <b300f3ac-cf83-4ba7-9c93-c78bec0b38d2@suse.com>
Date: Tue, 12 Dec 2023 07:26:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xenstored: potentially split trace_io() out message
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>
References: <20231123160834.17674-1-jgross@suse.com>
 <c5a72070-fb63-4c05-a34e-e5abcb781ea2@xen.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: <c5a72070-fb63-4c05-a34e-e5abcb781ea2@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------7oaqwcbTY30EtE3IhVgE3FoW"
X-Spam-Level: ****************
X-Spam-Flag: NO
X-Spam-Score: 16.91
X-Spam-Level: 
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=bwxGRl3A;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [-10.95 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 SIGNED_PGP(-2.00)[];
	 NEURAL_HAM_SHORT(-0.20)[-0.999];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.05)[60.55%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -10.95
X-Rspamd-Queue-Id: 108E82247E
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------7oaqwcbTY30EtE3IhVgE3FoW
Content-Type: multipart/mixed; boundary="------------5y9Vuqkq6qR66XJLxGqkKawc";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>
Message-ID: <b300f3ac-cf83-4ba7-9c93-c78bec0b38d2@suse.com>
Subject: Re: [PATCH] tools/xenstored: potentially split trace_io() out message
References: <20231123160834.17674-1-jgross@suse.com>
 <c5a72070-fb63-4c05-a34e-e5abcb781ea2@xen.org>
In-Reply-To: <c5a72070-fb63-4c05-a34e-e5abcb781ea2@xen.org>

--------------5y9Vuqkq6qR66XJLxGqkKawc
Content-Type: multipart/mixed; boundary="------------VsGyncIkv8E9bolJdq3Iopns"

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

T24gMTEuMTIuMjMgMjA6MTEsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDIzLzExLzIwMjMgMTY6MDgsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBU
b2RheSB3cml0ZV9tZXNzYWdlcygpIHdpbGwgY2FsbCB0cmFjZV9pbygpIGFmdGVyIGhhdmlu
ZyB3cml0dGVuIHRoZQ0KPj4gY29tcGxldGUgbWVzc2FnZSB0byB0aGUgcmluZyBidWZmZXIg
b3Igc29ja2V0Lg0KPj4NCj4+IEluIGNhc2UgdGhlIG1lc3NhZ2UgY2FuJ3QgYmUgd3JpdHRl
biBpbiBvbmUgZ28sIHNwbGl0IGl0IGJ5IHdyaXRpbmcNCj4+IG9uZSB0cmFjZSBlbnRyeSB3
aGVuIHN0YXJ0aW5nIHRoZSB3cml0ZSBhbmQgb25lIHdoZW4gZmluaXNoaW5nIGl0Lg0KPj4N
Cj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4g
DQo+IFdpdGggb25lIHJlbWFyayBiZWxvdzoNCj4gDQo+IFJldmlld2VkLWJ5OiBKdWxpZW4g
R3JhbGwgPGpncmFsbEBhbWF6b24uY29tPg0KPiANCj4+IC0tLQ0KPj4gVGhpcyBwYXRjaCBp
cyBtZWFudCB0byBnbyBvbiB0b3Agb2YgdGhlIHBhdGNoICJ0b29scy94ZW5zdG9yZWQ6IHJl
bW92ZQ0KPj4gXCItVlwiIGNvbW1hbmQgbGluZSBvcHRpb24iIGluIG9yZGVyIHRvIG5vdCBs
b3NlIGFueSBwb3NzaWJsZSBkZWJ1Zw0KPj4gaW5mb3JtYXRpb24uDQo+PiAtLS0NCj4+IMKg
IHRvb2xzL3hlbnN0b3JlZC9jb3JlLmMgfCAzMCArKysrKysrKysrKysrKysrKysrKy0tLS0t
LS0tLS0NCj4+IMKgIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxMCBkZWxl
dGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmVkL2NvcmUuYyBi
L3Rvb2xzL3hlbnN0b3JlZC9jb3JlLmMNCj4+IGluZGV4IDkwNDZiMjAwYmMuLmExNGIyNDBl
ZDkgMTAwNjQ0DQo+PiAtLS0gYS90b29scy94ZW5zdG9yZWQvY29yZS5jDQo+PiArKysgYi90
b29scy94ZW5zdG9yZWQvY29yZS5jDQo+PiBAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgdHJh
Y2UoY29uc3QgY2hhciAqZm10LCAuLi4pDQo+PiDCoCBzdGF0aWMgdm9pZCB0cmFjZV9pbyhj
b25zdCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgY29uc3Qgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmRhdGEsDQo+PiAtwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIGludCBvdXQpDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGNvbnN0IGNoYXIgKnR5cGUpDQo+IA0KPiBUaGlzIGNoYW5nZSBzZWVtcyBzb21ld2hh
dCB1bnJlbGF0ZWQuIEl0IHdvdWxkIGJlIHdvcnRoIG1lbnRpb25pbmcgaXQgaW4gdGhlIA0K
PiBjb21taXQgbWVzc2FnZS4NCj4gDQo+IElmIHlvdSBwcm9wb3NlIGEgbmV3IHdvcmRpbmcs
IEkgY2FuIHVwZGF0ZSBpdCB3aGlsZSBjb21taXR0aW5nLg0KDQpXaGF0IGFib3V0Og0KDQpJ
biBvcmRlciB0byBkaXN0aW5ndWlzaCBhIGNvbXBsZXRlIE9VVCBtZXNzYWdlIGZyb20gYSBz
cGxpdCBvbmUsIGxldCB0aGUNCmNhbGxlciBvZiB0cmFjZV9pbyBzcGVjaWZ5IHRoZSBwcmVm
aXggc3RyaW5nICgiSU4iLCAiT1VUIiwgIk9VVChTVEFSVCkiLA0KIk9VVChFTkQpIikgZGly
ZWN0bHkgaW5zdGVhZCB2aWEgYW4gaW50Lg0KDQoNCkp1ZXJnZW4NCg==
--------------VsGyncIkv8E9bolJdq3Iopns
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-----

--------------VsGyncIkv8E9bolJdq3Iopns--

--------------5y9Vuqkq6qR66XJLxGqkKawc--

--------------7oaqwcbTY30EtE3IhVgE3FoW
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/Ey8FAmV3/RYFAwAAAAAACgkQsN6d1ii/Ey/L
DwgAl5l7JH9OEWU4W9xlMDs0/wHAKnmwOUM+tpDwhWIaWmr1x0Bsb6pwDFMRCRZpFgVDQldOv5bD
t9z9a81gp8n9A3HV5mPmw027XDY0gZ8tzjuEoaZ7KdRhVEK2vgXztkOpYkaZUtQ6sdEOUkDkLFwW
oj1Mc0dp0EgOu21bjsHoMouehk8YHnXjEK9lovsJXGfOODHmc2M3z8pfW+JBNr/YXzP90+A7IHTU
Z2S2RV/CQYAWtLlgpTTSU3Y3ddCovsdF1th8NjUW0JFHfLm296DUkh7IA0UlsBg0XqzpiB9Z3HSL
4BPzu+a7r5di924ZKu0Ru480X7CA3k7VI3hjhbpgeA==
=jQH8
-----END PGP SIGNATURE-----

--------------7oaqwcbTY30EtE3IhVgE3FoW--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 06:34:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 06:34:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652650.1018633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwLi-00046h-D3; Tue, 12 Dec 2023 06:34:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652650.1018633; Tue, 12 Dec 2023 06:34: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 1rCwLi-00046a-9V; Tue, 12 Dec 2023 06:34:34 +0000
Received: by outflank-mailman (input) for mailman id 652650;
 Tue, 12 Dec 2023 06:34: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=aifi=HX=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCwLh-00046U-T2
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 06:34:33 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20600.outbound.protection.outlook.com
 [2a01:111:f400:fe59::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81a3707b-98b8-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 07:34:32 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MN0PR12MB5881.namprd12.prod.outlook.com (2603:10b6:208:379::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Tue, 12 Dec
 2023 06:34:28 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Tue, 12 Dec 2023
 06:34: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: 81a3707b-98b8-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZL2hDPAiyDCfmPjftH+tXaSGdQVZ71dCsIvZmxFT1UT5Rm5l/7VnoFZS8y/KAtHQGsIK5zy12du6J4TFyhAv0FJvcKwqyJWJCODUBcNUCoDJuF8jAruf+z1XCyCJ/sF7CP4dWOLImK77TzR2HNhBaoThqV2d/zcTBUw9AOnpUqtf/IXjYbnPy6TygM6hhIdpVjPl2ui83dJ8hgu76QMQEDjz68QLP5GbjgJMHCaG23G/wQ4hd3Q89XrbzGAufvOaqiI/nAHMezH/dQFP2CJnQuzSLn63zDqbCZBMlUO0Ip8B5HbTOKyF9k+o8NFxkMl7+4fN6tsv2kqBRIlssrj8Cg==
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=4iu6RluXaBEiJug2WMv3mLeKzXJgvmpet/SzUcI2qXg=;
 b=YCDR4UjJGu15AsAb28JixxCPxO0RnHwgqYF7CmERSfokCMQR1rZ5AQCYWn4b4dRwNuuTEHnyWwSxqMaZvOvytG9yfw0NxcVF5nCYvtvQGoPGfd5VNT+s6MSiypLvD8TLK87JWqnHCgMtYa0xS0+ApWyXwCxIAfmqrpaZaui/1rOq7AsldR90uhvJ64bZuevztmFbbXoxZO5I7si62ngQwbO0Vrfpz3GnHOEzKTth1mf9x6nM6mq2Q3h2cmNh7rjoKpTuvbFXQVI5JnF6qHt/WO+r31jhjcMer+t1fdlGPSlpJ47gNF5HbfbY0cOC8y+DMSQVq28dxODsBNY951mKDQ==
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=4iu6RluXaBEiJug2WMv3mLeKzXJgvmpet/SzUcI2qXg=;
 b=4MbVO5EHFCBXXrAx5oAtjNqtsAvmdXs91KaQh5/xPCIxDhCumxmC/dnn5gBN2qMz0p2EjVj9i1kE81rdQZpcUrBU4DCG1EhyUBP5z/CL3c0tH2xYZnC7H//DlQPhOTE0P1KZg+PsPdsmKNKw95FiqLIb5eJotCcoqsEruL7y/gk=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, "Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, Thomas
 Gleixner <tglx@linutronix.de>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Deucher,
 Alexander" <Alexander.Deucher@amd.com>, "Koenig, Christian"
	<Christian.Koenig@amd.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>, "Zhang, Julia"
	<Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian"
	<Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Thread-Topic: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Thread-Index: AQHaK4Q534ViUL7xiE2p4ymr6ObEurCkX+6AgAFU/YA=
Date: Tue, 12 Dec 2023 06:34:27 +0000
Message-ID:
 <BL1PR12MB584910C2E370BBCC8A312733E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-4-Jiqian.Chen@amd.com> <ZXdNf0HWs4nAVPeF@macbook>
In-Reply-To: <ZXdNf0HWs4nAVPeF@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5302.namprd12.prod.outlook.com
 (15.20.7091.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_|MN0PR12MB5881:EE_
x-ms-office365-filtering-correlation-id: aeeb7023-f2b3-4204-a52c-08dbfadc63e9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 J2cAnZHATms4qo0JgdM6susZknShCqRjEPqT4A+t7Hi5Xmgd21yh5qO7H3mpieA+eigvrN+2rzU7G6YHhJHS+jSjYfPxy27Z2I1znNRS3aHVCTK6ONRfnUG6FdBUcgaz2j3OL10W3gc8IsbqwQfO/PlY+Bds+PUGj1eF35SjZp6hHPkfDIcDiHzMI55r0CzQ2fr8z0DHMvAsAuUlyM08YYmtf+zb1zGD1TyUtFxVmm9fMc8D3Ei3CgxarZghwvdhXdcz2WC+IjYNstDX4RHxcIoZdFEHko1gzzgGXbyOSxrKEWp80BYSlgivmnxc1SzVJ1PC/0mmhNqbTqhoz/JdVNBoKHHPD2axMCLLUHOIua/VyOqxtGc3qGj8sVTUUxwNWyV6wRcfZ340i9s5UhMRGA8jgGbUQi3IGR0taA9gzOoA4OGFbhVYVK+xM6BXLJ/pd7twzp+NFabee17FVIqq8BxP+Kla2DAkSv+qBAoMEYJLTgNaARf2EIPBs+JQZJpyS738Be7XG9aIQlJyZpW23SaOVRpWBIMmC77X1DDaVbjJw+uyzTcQq9k69IuAr+E8WxqB2kOGsXTDa/FKAWXMdhE8KpjRxvUNBovEl2Lz8oBdb3SaPD+axum1kCEvZZXJ
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:(13230031)(136003)(366004)(346002)(376002)(39860400002)(396003)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(41300700001)(83380400001)(26005)(38070700009)(33656002)(122000001)(38100700002)(5660300002)(316002)(8936002)(8676002)(4326008)(2906002)(7416002)(6506007)(7696005)(53546011)(71200400001)(9686003)(52536014)(66446008)(54906003)(64756008)(6916009)(66946007)(66556008)(66476007)(478600001)(55016003)(76116006);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MXllZkpXYzQ1Z0IxckQxenUrd3RnSVpKWnhwZXkvWTZBSkg3YTk4QUlSZHNz?=
 =?utf-8?B?akt6Q3MrM1c4S1JqRXZxL2FHVDhvViswdlhUbHM0OGZsRWhKK04xOXlJamNE?=
 =?utf-8?B?SElrdnlHWU9SaVpRRUFmR2kwTFF3TUpPRExkRWhYNUwwSFlZYmlESDAydE9T?=
 =?utf-8?B?eFBoYm56UTkvbHB1a09Kdm1BN041alRRNHNpVmpSdTFNTkZrUXdtOEp2M1M2?=
 =?utf-8?B?dzdRd1BQdWZuK3VZSHY2Qk9xUmd1YmJzSnR4cTVBaFlpdEJJZEVrWUlVVHh5?=
 =?utf-8?B?VDlQaEsvV2gxZHp0MXE4T0QyWFdXSUZBbEJQVVhlZWd3N3A5SkhQSTlJQi93?=
 =?utf-8?B?MENhQW1pS0l2YXVNK1BESlAwR292SDdFVkZoYzI1dUY4L1crSlNnYjRnWUpp?=
 =?utf-8?B?Mi8xTFJLZktwVk1ZUEx4eTZCMXhVaGtBM2ZUWjNmSU81U0hkV3BzV1VwNGtG?=
 =?utf-8?B?dkJ5RjBUK2pNbll4emhQTzV6WjJ5em1GQ04zRnJweXhhRkZobndKcFZmZE9a?=
 =?utf-8?B?cWlsbU1SMHFqZ3RZNXp4ZVVkVE4rdnhRLzF3ZUJWRWFLK0JpdS82UjVqcEtO?=
 =?utf-8?B?MHpFaStjYUpVaC9XeERRZ2Z1RjNlZWQxUVAzbXpKVHg5eTdrcENUQllqOVlo?=
 =?utf-8?B?czd4SHZuc3BYVW5qUzV6VjZIYTFtL1poMXo1Y2pwTWpQdW9CUHZXUlVFenBQ?=
 =?utf-8?B?OFlqU1Bnb2gyY1hYSHVqSUJOUTNhbmpWR1MwZkw1TGYrWWJqM0c1QmQ3czVS?=
 =?utf-8?B?VWxSemt3ZGhLMG1ORkVCSHh5QjBPa29oaFg4bjM3d0hvaU1aOUpmV0lMSDh3?=
 =?utf-8?B?MWZUUGd2b0dkSjRrbGhLNTRrMVR1dE41UTVLbVBZSDUzNVJ4NTVwdkovSWla?=
 =?utf-8?B?TzJrODE0ZVh4T2ZKK2d2d0NEc0gzbTc3Tm00SDBWK3dMRmd1dDdMbXNpYkFQ?=
 =?utf-8?B?bXFoRFFpTklOTHBqK1F5RlJpeFJUaFlWN1FORlFJYkpaUTM5RFdkNExLQ21Q?=
 =?utf-8?B?MkhCUHdORVR6MVBiMzlZbG8zYit0SHNGckdndHpIbnlZWXZCWm05dzNIT2xj?=
 =?utf-8?B?aFQvY0FlYmFzNTRLaFJsRHlVTEV6Z3NjQXpqdUsvdFYrSjFLZW0zeG9XNVhR?=
 =?utf-8?B?R2tSaGhyRXFpL0N0NHlaanhzS052RmlFTFMzV2U1WUZIaWtic2s3S2xBVDdM?=
 =?utf-8?B?L3ptWTJZaGU2VDRFZUxSbkNMdHFzSjZwMm9LMkNnMW1IT216czIyelV0L05U?=
 =?utf-8?B?VGZqQzRrZTF3VnUwZGVKOHl1d1RlaTdtcm1ZR1ZHM1hYNWFZV0Q5R2hyNTdj?=
 =?utf-8?B?MVd5VEdDMnpqQ1FORWRvYVphZmp6MGdrNThmd2pQdkJQUTlzdUhSS21VMy9V?=
 =?utf-8?B?MEhNaC81MTRyYWppaERZczVFMlRxMzFidDRWVmg3bHIwK2tGUWU5ajc4a3Vo?=
 =?utf-8?B?MER5dnpYWWRlSlBiUGlEK296YzF3dHAyYmxXWVNIOUZ0WGJ3OTNJdzFKT0RW?=
 =?utf-8?B?V3BEMUtTeTRFVUZQMDFncmRjRGtqazQrM3RqQmthdmgzeDQ3dnhmN0lCb1Zn?=
 =?utf-8?B?Ly81YU0vZUxJUE42elhiVkhHaWsyNi9Wd0pwTy9ucE5ncWt4Q2s0a2g0dW5F?=
 =?utf-8?B?MHh2UDRrU0EramlNUEJjWFVGSkgzemJBMk5kb3pNUEcwbnoxVGxNeGtERktQ?=
 =?utf-8?B?ZnBUYW9WLzFUNFNXYUh3YmlQbFNZZm0xTXYwQlMzTXhNUkE4L1FkclRrS3F1?=
 =?utf-8?B?cmZDdzRSWWVSMjhlQkorUnptTFNOT1IrZldRMHE3TkR6a25VVkxrdE5aSHNu?=
 =?utf-8?B?ejJrNHRlTXZhcGdPNWZwdWlXNUhSVUx4VUp5eXRFWnJlOG5wUUdqZDJZbUVN?=
 =?utf-8?B?djhsK05nSXJGbzJxaXFlUTRSa004Vjl4bTA1ajU0WW9kSE5YYzNMSG5wSW1U?=
 =?utf-8?B?c3lwNEdTa1F0eTA1aVhDY08vUUhlUWN3RFB6MjZlN3gxWVloc0hUczA2Vmdn?=
 =?utf-8?B?V0t4ZWlSUWFSU1JaLzE3SG1ZRHNHQU1ReTdQRUp2aXgzbHRXUVFZd25jbnFy?=
 =?utf-8?B?N0o4M3lnK0ZOdDVRT0JiMjlJNDZ3cTV2cWc2QU85bmhVKzAxcVFBOE9MYllh?=
 =?utf-8?Q?Fyi4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <42675C500BA60646A2A94AEEFCF1A83D@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: aeeb7023-f2b3-4204-a52c-08dbfadc63e9
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2023 06:34:27.8617
 (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: 9S+sBtWX7rRx0VT6Xb8j5FP/1n+VpoakYkRWBEz3G7a8U05IfIM7nM1f4feCZQTnp60/nf0Y1Kvur1+uBBKo1Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5881

DQpPbiAyMDIzLzEyLzEyIDAxOjU3LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBNb24s
IERlYyAxMSwgMjAyMyBhdCAxMjoxNToxOUFNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+
IFRoZXJlIGlzIGEgbmVlZCBmb3Igc29tZSBzY2VuYXJpb3MgdG8gdXNlIGdzaSBzeXNmcy4NCj4+
IEZvciBleGFtcGxlLCB3aGVuIHhlbiBwYXNzdGhyb3VnaCBhIGRldmljZSB0byBkdW1VLCBpdCB3
aWxsDQo+PiB1c2UgZ3NpIHRvIG1hcCBwaXJxLCBidXQgY3VycmVudGx5IHVzZXJzcGFjZSBjYW4n
dCBnZXQgZ3NpDQo+PiBudW1iZXIuDQo+PiBTbywgYWRkIGdzaSBzeXNmcyBmb3IgdGhhdCBhbmQg
Zm9yIG90aGVyIHBvdGVudGlhbCBzY2VuYXJpb3MuDQo+Pg0KPj4gQ28tZGV2ZWxvcGVkLWJ5OiBI
dWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENo
ZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+PiAtLS0NCj4+ICBkcml2ZXJzL2FjcGkvcGNpX2ly
cS5jICB8ICAxICsNCj4+ICBkcml2ZXJzL3BjaS9wY2ktc3lzZnMuYyB8IDExICsrKysrKysrKysr
DQo+PiAgaW5jbHVkZS9saW51eC9wY2kuaCAgICAgfCAgMiArKw0KPj4gIDMgZmlsZXMgY2hhbmdl
ZCwgMTQgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcGNp
X2lycS5jIGIvZHJpdmVycy9hY3BpL3BjaV9pcnEuYw0KPj4gaW5kZXggNjMwZmUwYTM0YmM2Li43
MzlhNTg3NTVkZjIgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2FjcGkvcGNpX2lycS5jDQo+PiAr
KysgYi9kcml2ZXJzL2FjcGkvcGNpX2lycS5jDQo+PiBAQCAtNDQ5LDYgKzQ0OSw3IEBAIGludCBh
Y3BpX3BjaV9pcnFfZW5hYmxlKHN0cnVjdCBwY2lfZGV2ICpkZXYpDQo+PiAgCQlrZnJlZShlbnRy
eSk7DQo+PiAgCQlyZXR1cm4gMDsNCj4+ICAJfQ0KPj4gKwlkZXYtPmdzaSA9IGdzaTsNCj4gDQo+
IEl0IHdvdWxkIGJlIGJldHRlciBpZiB0aGUgZ3NpIGlmIGZldGNoZWQgd2l0aG91dCByZXF1aXJp
bmcgY2FsbGluZw0KPiBhY3BpX3BjaV9pcnFfZW5hYmxlKCksIGFzIHRoZSBnc2kgZG9lc24ndCBy
ZXF1aXJlIHRoZSBpbnRlcnJ1cHQgdG8gYmUNCj4gZW5hYmxlZC4gIFRoZSBnc2kgaXMga25vd24g
YXQgYm9vdCB0aW1lIGFuZCB3b24ndCBjaGFuZ2UgZm9yIHRoZQ0KPiBsaWZldGltZSBvZiB0aGUg
ZGV2aWNlLg0KRG8geW91IGhhdmUgYW55IHN1Z2dlc3QgcGxhY2VzIHRvIGRvIHRoaXM/DQoNCj4g
DQo+PiAgDQo+PiAgCXJjID0gYWNwaV9yZWdpc3Rlcl9nc2koJmRldi0+ZGV2LCBnc2ksIHRyaWdn
ZXJpbmcsIHBvbGFyaXR5KTsNCj4+ICAJaWYgKHJjIDwgMCkgew0KPj4gZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvcGNpL3BjaS1zeXNmcy5jIGIvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMNCj4+IGluZGV4
IDIzMjFmZGZlZmQ3ZC4uYzUxZGY4OGQwNzllIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9wY2kv
cGNpLXN5c2ZzLmMNCj4+ICsrKyBiL2RyaXZlcnMvcGNpL3BjaS1zeXNmcy5jDQo+PiBAQCAtNzEs
NiArNzEsMTYgQEAgc3RhdGljIHNzaXplX3QgaXJxX3Nob3coc3RydWN0IGRldmljZSAqZGV2LA0K
Pj4gIH0NCj4+ICBzdGF0aWMgREVWSUNFX0FUVFJfUk8oaXJxKTsNCj4+ICANCj4+ICtzdGF0aWMg
c3NpemVfdCBnc2lfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+PiArCQkJc3RydWN0IGRldmlj
ZV9hdHRyaWJ1dGUgKmF0dHIsDQo+PiArCQkJY2hhciAqYnVmKQ0KPj4gK3sNCj4+ICsJc3RydWN0
IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7DQo+IA0KPiBjb25zdA0KRG8geW91IG1l
YW4gImNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOyIgPw0KDQo+
IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 06:37:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 06:37:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652655.1018643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwOB-0004gk-Ss; Tue, 12 Dec 2023 06:37:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652655.1018643; Tue, 12 Dec 2023 06:37:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwOB-0004gd-QB; Tue, 12 Dec 2023 06:37:07 +0000
Received: by outflank-mailman (input) for mailman id 652655;
 Tue, 12 Dec 2023 06: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=aifi=HX=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCwOA-0004gX-Ga
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 06:37:06 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2060f.outbound.protection.outlook.com
 [2a01:111:f400:fe59::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd1a68f1-98b8-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 07:37:05 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MN0PR12MB5881.namprd12.prod.outlook.com (2603:10b6:208:379::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Tue, 12 Dec
 2023 06:37:00 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Tue, 12 Dec 2023
 06:37: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: dd1a68f1-98b8-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=J9JQwd86JFHGZ3pdjeo6wvqVxppE6VBr3vRwvgOcoxVxlqJP1b73osefGA0GzyRUzkv97bRwu6erFLM/xSgULIfFBk4M8znDLSaOXcjmgVmiEyWs6gZ7NKbFsP6kuXkYsVXXIifZmqrI1sdu2bTL49qGN3pgsHl13M6YuS6CpahgGWgm5MtFFykQHA08YBwgTX0whd/8GUqLtFJgCgWO9F5GjUBgAIBLVfo1g6hPAX1qL3vfs6MNEw7qwF0ehmWss0lYWFw8ymR+7pz4+z/JSVLf6zX0aCKx71iXBRqzsV6ZPRR/BmKZxLarEwLeZzp50p56XmAggDkL8pKRzI/xiA==
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=GTFN+ZiMS1TahMG+uxs4O2MndfgFHskJy6IFhBP998w=;
 b=nVBfy8gEH1Mt6+JLTjqs+eIH4NFU+pQYFNrTfoe3F2z+MEmMSxCwVJ1BeDhJozIlwjUER39NO7r1fRqfMOpyZ0fazbEYZ2epl+aLPP8XeE2y4FYqz1bMTujH82dxNyn7vjIMGJRtT/eZVObA1TGVVgsEupfcchlLFijTGOqfD3zAZ/96zyXhQ32RUo2WTN3mRDaUQW+c9kml3ect82bTlDDcoth3fW5GvjUIDC8FlV4uOXOl4GsouiJNEa6zC24czTqogc/Dju4umbZnfMyrer7WaPrp6DPEwjOUR26hQlsjx92AJv68CtGj27gqU4y/rVKD4KfqPHbRIQZgv0pp4A==
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=GTFN+ZiMS1TahMG+uxs4O2MndfgFHskJy6IFhBP998w=;
 b=Aws3PJtUUdkTU5c3iz5JaVF29CK+AJDAVcRaOOXVZveWrizvsYSKHQgYWGF4vZXtpCEmqjRlHCUakf4nDGUhozIBBdxg3SIO2QkayotZF766btM6cPqeZeuyz2Is3zAHZBYqXuEBRogDCFgPAVdmsZM1gYZWd/3h/5XpDJ08Bqw=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Anthony Perard
	<anthony.perard@citrix.com>, Paul Durrant <paul@xen.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, "Huang,
 Honglei1" <Honglei1.Huang@amd.com>, "Zhang, Julia" <Julia.Zhang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC QEMU PATCH v3 1/1] xen: Use gsi instead of irq for mapping
 pirq
Thread-Topic: [RFC QEMU PATCH v3 1/1] xen: Use gsi instead of irq for mapping
 pirq
Thread-Index: AQHaK4lXtH9e9Sdr6Eux87H1RxVtTrCkN9cAgAGB1YA=
Date: Tue, 12 Dec 2023 06:37:00 +0000
Message-ID:
 <BL1PR12MB58495E4207750FFF1C348968E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210165240.1551450-1-Jiqian.Chen@amd.com>
 <20231210165240.1551450-2-Jiqian.Chen@amd.com> <ZXcr5v43dsJAx8aK@macbook>
In-Reply-To: <ZXcr5v43dsJAx8aK@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5302.namprd12.prod.outlook.com
 (15.20.7091.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_|MN0PR12MB5881:EE_
x-ms-office365-filtering-correlation-id: f250ac85-4daf-489d-c2de-08dbfadcbef5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 FcU4raobi3bpDuJqXlAYDldzbbR6onrY/2FmYixh7v/K7u01RKhUg9mwzTBSpgxJrfScbGn44VNwpWhG2LbxgUMVIzoyWSHQlMdFmualjG89cNK9weEru73H+OhBxh6A5AoSNXYGQKTRiPjut3SQdUG/2SevCvDiMYEzVjIhYGCyVJDh8nJ8EcaMZasmY60B8NQbrFrB97N/uvAV5zhKG8qdhURpERDxrTaE8EssVNmJXlr3rAwRW01OV9/EVKnrVvlo5yF0ANCGVYojKQ61Ej9Yc+dxM44baNupwIFgu04VSFRsER7QUhajftrOBC19DRXIG5RGSCDu9F+3LaIiFDaya+Or6MEF7wDhgab5da7hMDQGDInLnVSS4lBbXoS5Fprd95fSEQHx4z5E7JppphSbDPBOG6aApoUGvUIu/FhFQ6fi2O7tiRru7fZBiGTPOhEaMXAsuPW6VRiUthspHOZIw/+0xAtXJj9m2pZmXEuL0ixd1vwAMD7hGgEX8X/xIzBJJGk0q66ZQiwTPy1tA8s50i2eycFGgv/DauworZa91BwpHe6HH6uacF0ysGKPPCoOwvvRX02vquEzH7U7peiu5yjDkQJemlQeziLR25i7OdCd5RVlaWk4xx0DQTSH
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:(13230031)(136003)(366004)(346002)(376002)(39860400002)(396003)(230922051799003)(64100799003)(451199024)(186009)(1800799012)(41300700001)(83380400001)(26005)(38070700009)(33656002)(122000001)(38100700002)(5660300002)(316002)(8936002)(8676002)(4326008)(2906002)(6506007)(7696005)(53546011)(71200400001)(9686003)(52536014)(66446008)(54906003)(64756008)(6916009)(66946007)(66556008)(66476007)(478600001)(55016003)(76116006);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VUlzb0FCWjRtU3paVlpHdU5Ma1lTYmVDZGhvUEpUMlJFRmQ5K3o4Q2F6dkdj?=
 =?utf-8?B?U0czUkxaM1pzeWw5ME9HNis4UE85VmVCYkNqRkVZekFVVll6SEZpV2xpNnZH?=
 =?utf-8?B?Q05TQmhrMXhrSzI0VmpOV0NvcUxQYzV0SGRBVitIT0sxYndUNmRnc2tKdWpT?=
 =?utf-8?B?M0o5Ykd4ZHFnN24vT2pnRm1ZWTFuZDdIOHZwV0lxRGREVEVjaW1lWXczbkRN?=
 =?utf-8?B?bVFsYUcrZXRkVnhxdk54bXJaOTZWdkZXSmxiN2lZakR4WVZKWTFwY0MycXAr?=
 =?utf-8?B?TjBlODM3MjAvNWtKQ29rbWQ1cDlZRm10RmJoVWZRbHpablc4UXVtVWFhbExM?=
 =?utf-8?B?WmxMV3NBb1I5ZkozaWJyQzVLYkxpWXp4UFpaa25NNU5wTDhaNHNVN1ZWNjJI?=
 =?utf-8?B?Y0N5QzhHM0xBZGQ5Y2taT2F4eW9sbHdSWlE0bHp4cmtoSmMzNUhlRnM2R09Q?=
 =?utf-8?B?bnBQVWJ5cGR0Z0pEWWJieVNrTjJRRkJhU0RUdk54NThEMVRGdDA4YTRnb3Q3?=
 =?utf-8?B?QjJKS0IwYnd1NXNqL1NTNGxlOXFXUy9SZlM4enoxeFV6NDVPN05UNTQwZUxE?=
 =?utf-8?B?QUF0UDFhMFR6RndRVS9yZzNZdStEcGdOYnA1ankxNjliVVVrM2cyTDhxUFlZ?=
 =?utf-8?B?NWYyUS9NSGNYV2dFTnYySkh0QWh4dWN0R2cvQzc5UDVQSjNXaW8xaTdIN2Zm?=
 =?utf-8?B?Ny9iQ2ovQVJhdzhFTktlbmR4MTBBbjlKQ0V4b2VoVjB4M21nL21VdmRVcG1I?=
 =?utf-8?B?T0pUcEJZaXl4REVEY25qVVNmc2tmQkZJRWZwNXVpeUhXS3JwK2VqOVhJenlk?=
 =?utf-8?B?dS9HSUlGRit4L1pPSG93S2J6VE5wOEpRN2Fwc0FRZlhwNDJuV2diY2c1M1RJ?=
 =?utf-8?B?ZFZuUjhqMzVDQ0hmd3dPaEJRRDBIN3hPRE5oUmtXMzFUUEdRQ1Z5dHM0SDJ5?=
 =?utf-8?B?QlVtem1rYU0vaW1SR3hoTHJpNStNSjR3WTkybzVNSk5KM2FaSkwwWGxPQUl5?=
 =?utf-8?B?ZzJHLzVJYmt2bEhuVTVIVUV1b0FFRy9WU3lyQ1NIbHBCM09VS0VNTzZ2K3FO?=
 =?utf-8?B?MDFWak1CZVRzQjhwZkt0N2xzMVhWb2hucm5CM1F4NDdwZmkwcE5TaGYrY1RU?=
 =?utf-8?B?WktMeXo3U0pyVGh5N1FTYUlEZHg5cnYwZGkzM3NkelVZNmlZNnJKYXdLTDFi?=
 =?utf-8?B?RE1UaGduc1NGSTd5NzkzWEdkLzA5bUZvams3UDVoSDFnMFFUeTZlcUhWNTRa?=
 =?utf-8?B?NE9FSmI4L2R0SHdDRGZqQUx1elU1czcxK3lOUHVnWENnOG5FRXhkSTRRaGJw?=
 =?utf-8?B?dUl1R0JSOVIzT3dUa0ZmdXlLdlpMblRYWEl4UUphdWltMi9MUHpGeVh4U0hE?=
 =?utf-8?B?L1NTL1lNL20wdmNKM1gwZlh3Z2dPRzJUSTQwbEdjMUpWQ2xjNlRNa3ZZUHNB?=
 =?utf-8?B?WlpoTWxNNFhCTWdER2FnM1hobDNpRlhRQ203N3NmODUyUmlkbURncGhHS3I3?=
 =?utf-8?B?ZzNXb1BiNXNYOGttY3Z2WDVTcGZXU1Rub1k0UTl0ZWphMGFRMzFiTnJ3RFJH?=
 =?utf-8?B?c3lBQ1pTb0pzc04rY3IySjZnQVhCcVBzL25RaSs5bnR0WmtjZmViT0ZjZ0l6?=
 =?utf-8?B?S291ZDJQblJUWUlmZWJoT3Z2OURiWWZUMEk1NEpqY0oyVE1HWFE1SG9QV3Jn?=
 =?utf-8?B?NFFweFVvSEwxTkswNnJyL01yaXM2UnExMVRwTEJCQVNjVHpUS2N0TGpCTUNP?=
 =?utf-8?B?UFEyaGJvbWtYaHNuLzh5RFlndDFMZnpjWnFHL2pOaVdFdTBPb0J4Z2dmbE5B?=
 =?utf-8?B?ckpPSzhKZWpVbmF5NDZtdEdBQ1VJZFpocGwyMCswZVE0eGg4UXhacnROUCtn?=
 =?utf-8?B?R0dTeUphVTZNdmdCM0ZPamZnYzh2M2dySnMzUlBwN3A4YlpyQ2E5Zld3VmxF?=
 =?utf-8?B?b0tkelpDZnpDODVsM1A5aytYOGZEWFJycThBNUdYWEdyQzBEY25ZUTVxcG9P?=
 =?utf-8?B?ckxsbW1QR3YzQkpqQmN0OHlHZmw4WmozendxYlhYdE5XdURPSjIrMHp3dUFC?=
 =?utf-8?B?NUxMZW9DdEVuY05TclFnSWprZkh0RkRqZ3ZKKzZnazRNdnNZNTQ4NGhzdmJ6?=
 =?utf-8?Q?BApQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <12E09E1B444C5E4BA400A861241A9156@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: f250ac85-4daf-489d-c2de-08dbfadcbef5
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2023 06:37:00.6338
 (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: naRE17VYtKtjxt3EHLEj2kskswEmEpY7g05FuGm8xu5VScg2FsFL4B+XoGZuA4hWsLd2dqFQVGM519N63ZUlIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5881

T24gMjAyMy8xMi8xMSAyMzozMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gTW9uLCBE
ZWMgMTEsIDIwMjMgYXQgMTI6NTI6NDBBTSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBJ
biBQVkggZG9tMCwgaXQgdXNlcyB0aGUgbGludXggbG9jYWwgaW50ZXJydXB0IG1lY2hhbmlzbSwN
Cj4+IHdoZW4gaXQgYWxsb2NzIGlycSBmb3IgYSBnc2ksIGl0IGlzIGR5bmFtaWMsIGFuZCBmb2xs
b3cNCj4+IHRoZSBwcmluY2lwbGUgb2YgYXBwbHlpbmcgZmlyc3QsIGRpc3RyaWJ1dGluZyBmaXJz
dC4gQW5kDQo+PiB0aGUgaXJxIG51bWJlciBpcyBhbGxvY2VkIGZyb20gc21hbGwgdG8gbGFyZ2Us
IGJ1dCB0aGUNCj4+IGFwcGx5aW5nIGdzaSBudW1iZXIgaXMgbm90LCBtYXkgZ3NpIDM4IGNvbWVz
IGJlZm9yZSBnc2kNCj4+IDI4LCB0aGF0IGNhdXNlcyB0aGUgaXJxIG51bWJlciBpcyBub3QgZXF1
YWwgd2l0aCB0aGUgZ3NpDQo+PiBudW1iZXIuIEFuZCB3aGVuIHBhc3N0aHJvdWdoIGEgZGV2aWNl
LCBxZW11IHdhbnRzIHRvIHVzZQ0KPj4gZ3NpIHRvIG1hcCBwaXJxLCB4ZW5fcHRfcmVhbGl6ZS0+
eGNfcGh5c2Rldl9tYXBfcGlycSwgYnV0DQo+PiB0aGUgZ3NpIG51bWJlciBpcyBnb3QgZnJvbSBm
aWxlDQo+PiAvc3lzL2J1cy9wY2kvZGV2aWNlcy88c2JkZj4vaXJxIGluIGN1cnJlbnQgY29kZSwg
c28gaXQNCj4+IHdpbGwgZmFpbCB3aGVuIG1hcHBpbmcuDQo+Pg0KPj4gVXNlIHJlYWwgZ3NpIG51
bWJlciByZWFkIGZyb20gZ3NpIHN5c2ZzLg0KPj4NCj4+IENvLWRldmVsb3BlZC1ieTogSHVhbmcg
UnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxK
aXFpYW4uQ2hlbkBhbWQuY29tPg0KPj4gLS0tDQo+PiAgaHcveGVuL3hlbi1ob3N0LXBjaS1kZXZp
Y2UuYyB8IDIgKy0NCj4+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp
b24oLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvaHcveGVuL3hlbi1ob3N0LXBjaS1kZXZpY2UuYyBi
L2h3L3hlbi94ZW4taG9zdC1wY2ktZGV2aWNlLmMNCj4+IGluZGV4IDhjNmU5YTE3MTYuLmUyNzBh
YzI2MzEgMTAwNjQ0DQo+PiAtLS0gYS9ody94ZW4veGVuLWhvc3QtcGNpLWRldmljZS5jDQo+PiAr
KysgYi9ody94ZW4veGVuLWhvc3QtcGNpLWRldmljZS5jDQo+PiBAQCAtMzY0LDcgKzM2NCw3IEBA
IHZvaWQgeGVuX2hvc3RfcGNpX2RldmljZV9nZXQoWGVuSG9zdFBDSURldmljZSAqZCwgdWludDE2
X3QgZG9tYWluLA0KPj4gICAgICB9DQo+PiAgICAgIGQtPmRldmljZV9pZCA9IHY7DQo+PiAgDQo+
PiAtICAgIHhlbl9ob3N0X3BjaV9nZXRfZGVjX3ZhbHVlKGQsICJpcnEiLCAmdiwgZXJycCk7DQo+
PiArICAgIHhlbl9ob3N0X3BjaV9nZXRfZGVjX3ZhbHVlKGQsICJnc2kiLCAmdiwgZXJycCk7DQo+
IA0KPiBEb24ndCB5b3UgbmVlZCB0byBmYWxsdGhyb3VnaCB0byB1c2UgdGhlIGlycSBudW1iZXIg
b24gZmFpbHVyZT8NCj4gT3RoZXJ3aXNlIHBhc3N0aHJvdWdoIHdvbid0IHdvcmsgb24gb2xkZXIg
TGludXggdmVyc2lvbnMgdGhhdCBkb24ndA0KPiBleHBvc2UgdGhlIGdzaSBub2RlLg0KWW91IGFy
ZSByaWdodCwgSSB3aWxsIHVzZSB0aGUgaXJxIGlmIHRoZXJlIGlzbid0IGEgZ3NpIHN5c2ZzLCBp
biBuZXh0IHZlcnNpb24uIFRoYW5rIHlvdS4NCg0KPiANCj4gVGhhbmtzLCBSb2dlci4NCg0KLS0g
DQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 06:44:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 06:44:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652661.1018653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwUz-0006lr-PO; Tue, 12 Dec 2023 06:44:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652661.1018653; Tue, 12 Dec 2023 06: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 1rCwUz-0006lk-Ly; Tue, 12 Dec 2023 06:44:09 +0000
Received: by outflank-mailman (input) for mailman id 652661;
 Tue, 12 Dec 2023 06:44: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=aifi=HX=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCwUy-0006le-H3
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 06:44:08 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20603.outbound.protection.outlook.com
 [2a01:111:f400:7e89::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d80a5c4c-98b9-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 07:44:07 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MN0PR12MB5881.namprd12.prod.outlook.com (2603:10b6:208:379::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Tue, 12 Dec
 2023 06:44:02 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Tue, 12 Dec 2023
 06:44: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: d80a5c4c-98b9-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lktgO23/YzRueY0oKisF6AFR7Ad5zRNn+iDicIvDrY/x6HoVqxNLucfgDBaucx6Yd71obT655G8vhP/aI6Ljqmm9QVtIRS4xqtYe/Zyz0/gBps6DDhnAkimeRuSgyVWoFfVG7IPIbxVy5us/gNrFP6qwQNDJZNSkSLV4vWlSrHgTw/2qu2yzD9lzrq8A01fV7Zn8kKt1unuCXe58SoLK/LsFD6my92pWldVhbnZX4zm+bowpdaUA1+ey3JcQpp9tvZ3+ht0pml6EIkWke8V/LtkVEx9whXaKcOYbVf1h61eYhc+AQyPuVRE4hFefRCRC1uOpZIZ16qWqrXVVxub6jA==
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=q3UhofQ4Z6ggn38aljjXLAReiEklRAth2DDEAU82orQ=;
 b=S50dNzMRt0vQughq44l+UfAeHdsV0pK0WEvVnA+V8INT6PX2MvRiUS42Bp9+r0dr0Af9xDa0d3zSM3LOx5eJ3IuGsn5KsqDdXYEm+YNdHGmNbmbWWXFETgABV5t5cNuUUxIi0VlALW4umsufvtIixRpGOiAjIIO7LveKehSNNm76Kqt+EhIEYjzyvw9KC9/q0LtsxTHbti64hC/IXwEyxVyb5xle2lDdaisGXJkzl6dRuNvuuk8Jslv31Xcl6T/aYV4IQ5D8e+4j78D4T0ISju/etsm8WaToGFr6kskCgTm/tI8fq0XYP+aVaat3Qenl66jJQyrnzlT2c3/M9Ghvbg==
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=q3UhofQ4Z6ggn38aljjXLAReiEklRAth2DDEAU82orQ=;
 b=qb2xIv+kyXE7BvBmS0KFcez0NY7qPBV3C0sl2FDsIvHTVUXko3YGc+f7CRcSldMPo4ZHDDhQyDNutu4A3TjxgSSQ9ULhdo2tP92C3xk5KPdDkCe3D2mUiqM8T/h3zUXEXbYNJ9h8nBaV/BJjHIXv0VOlnxoalYAQMBYDsiv8hQE=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>, "Zhang,
 Julia" <Julia.Zhang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 1/3] xen/vpci: Clear all vpci status of device
Thread-Topic: [RFC XEN PATCH v3 1/3] xen/vpci: Clear all vpci status of device
Thread-Index: AQHaK4eZ4y4R7EwUj0iEeYs1akErIbCkNISAgAGF8wA=
Date: Tue, 12 Dec 2023 06:44:01 +0000
Message-ID:
 <BL1PR12MB5849608FFBFBE6F14D28DA43E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-2-Jiqian.Chen@amd.com> <ZXcpGdSgTCwpTBkc@macbook>
In-Reply-To: <ZXcpGdSgTCwpTBkc@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5302.namprd12.prod.outlook.com
 (15.20.7091.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_|MN0PR12MB5881:EE_
x-ms-office365-filtering-correlation-id: 5f0cf4c2-3683-4c82-7ab2-08dbfaddba0e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 lFFXDKY3epXKN3PEV8npPxUodWX88SCAQ58ZAOMmL7s0nkaAPzGtDkSvc6IsNsUtHdj568p9i0iNqs5XphKTUh+G2K/pAKLrFexSgGuV3nEGthcAr7szXglZ/HxTJil8h5wrfln0tN+DIQbp8D9iXDXgWdTqren+pU4FMse3M4Qdb/yOZ2/to8hScIgZVhrmYBJ7s0Xxibh5uKkk1nvVjSMyNYtvb1zdDKDSY20Ia21bK1NW4CjMhvHSENQZ9rU8qyE38IYu9Q8uFfnwLUn1TqvzT6Z5fF7miCv45xOzf0B5fi3uubJyxTK/GNUk8iQcXTM4ixsyF9E/2m/Wb9+ZZDTSeQYaZ8ByOwDgQa0fmcjBBrho0PXYLM5di3sUHu4WbA029d8jqi+74htqa1iCmHp/FDqZp6RFNvYYHOgFkMlk6KU2UU/sFJk4jyDCy8mI7+c1AOi59a4HkkE3igpCUQyPEcZtoXQcmTycDtkDNLYrf1X5UbuEZ2xxGRoV9WWA8Eet8haAl8y1Y0PCutlVwapugJWEia5Lo2yDSkAIPNmu8imyqTYcLcg2U4b2V3Xu72kodiBpn7JFJCesfk/LLKmGueQrM3EN0wPySB5JNILOya+JMPEM7OsEyISH6Sps
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:(13230031)(396003)(39860400002)(376002)(346002)(366004)(136003)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(7696005)(6506007)(2906002)(6916009)(64756008)(66476007)(66556008)(66946007)(52536014)(54906003)(66446008)(9686003)(71200400001)(53546011)(122000001)(38100700002)(33656002)(8676002)(4326008)(316002)(5660300002)(8936002)(55016003)(76116006)(478600001)(41300700001)(38070700009)(26005)(83380400001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RkVqTnlJZE05eTgyQ1YyWTNTN1lWSFZxc1VoVG5WTG9kcU9CU1FXelJrTXRw?=
 =?utf-8?B?L2lGNGxaTHJzZU9OZDlrd1RCNmJ1aW1oanQrRmZGdmJZQitxM3hONXVzdW5W?=
 =?utf-8?B?L2ZQdkVacHZCZHpRdUVDdUVBRklkUnNsbDNrU3haVWpPMDRvcFduWGI5a0J2?=
 =?utf-8?B?NHB6MGRNeWVJQ2RBNXdNeHlUb1lBSzhKVFBIekk3c21uQU1Ta2FBWGw4S2Fu?=
 =?utf-8?B?ZWxqaTg2N3NWbGdLekp4TmRRaXlMMUFkK25GTmF5Q01JTTJpekNIdDV5Vksx?=
 =?utf-8?B?RjhqRVk4TnlVTTRUSHNBZUVReWhJMEtZR0VRaHRqdm5yMGZvK2NvTHcxZng3?=
 =?utf-8?B?eXltcUsvTitsem9kdTEzckVOeXU0SDBGTTU2ZktUSE1hYVFtSkdLeU03NEk0?=
 =?utf-8?B?UVNxUmEzeWkxcWU0RGtnbkZqdGhRT2IvRkZWQ1NKN0wxRFZqWlFldUI0RUsv?=
 =?utf-8?B?OXFyS2EyN1BLZVVESmlDRUxDYXFzRTlBdEJ2eVN6OGI1UmM2THlWbVN2VFJJ?=
 =?utf-8?B?QjN3UU8zUE50c0U1MHVUWHhiZ0gvOVMvYXVQcVJmaU5rVXJJTWhENWlyamZB?=
 =?utf-8?B?czUrdFFzcEVSODhyWGgxa2JBeE9XdnY5RVlDUlgzN2RvNmpqVmt6TTAvNHk5?=
 =?utf-8?B?WWlMcDR1d3JIL2s3cXJQRUhSL08vdUN1V0JTWkwrYVBOdFFCV2VzVWF3Z2Jm?=
 =?utf-8?B?dDc3LzQxa2JUSzY1WU9CT0RFUm4vaTM5VG8wZXBvbkZzbVA5SDJ1ZlpFUXQ3?=
 =?utf-8?B?UThoUXVuQ2RsYXplYXZqTE9zKzEvRC9GOTE1ZXJUcWc2dUdPYU1QYWx5NTVO?=
 =?utf-8?B?RE9pMjE5TWRQTXo3YlBvRm1DTXIvd0NPWkIzcFAvdFd6K3YvNkwvanlpM3NI?=
 =?utf-8?B?UEM5dVEvUUVpc08xSHllRHlSdG1xNFp0aFVGZXlFY0J0RlNYOHcvTDhSdStw?=
 =?utf-8?B?V3hBdU1zVkU3QnoxZk4xWEhBZFR0YVRJZlliZ2t5VTg5RWMwSm9RUHl1Mlds?=
 =?utf-8?B?NDNXQmMxK1h3K3dId0FvaWMwK1JBNmszdk5TbFpNYzJBMzVya2pxNGNTcnYz?=
 =?utf-8?B?NmpBQVdlRnhabXVXRHZSL201bmU4OU05NHF6Q2NFRE02QmxlR2w5cWx5OXFS?=
 =?utf-8?B?SlgyZjZQU2tEVXVaRlpNbTVObHY4TnNGU0tSTzNWdVkwMkxLOVJHWGRCMHI3?=
 =?utf-8?B?Q3J0enVwbTRKU1I5aTNZdCtuUkFCRTZNNzB0RWRuY0xBRWZEYWJmbGhLM1RM?=
 =?utf-8?B?U2VsVUx0UFhHQlZpbi9QcHRpVGRqQXBEQXFRcmluRGpmZVZxRmNsN3BTVExs?=
 =?utf-8?B?cnlYYWpxdk1OU1M1NkU4V3J2TDlydDVhR0VMRndzVGFYbHhQOEFjOGxTdWRP?=
 =?utf-8?B?TFJYYVBkd1F2Z3pvTXhBT25PekVOUVk5VytmNldscXBZOVdDUC9yUC9hS0xO?=
 =?utf-8?B?bklEbU41WXBHQ011V2hZbG9qWHVoTjRFZ2Nla0tnY01kZkZtS1BnamxSSTZa?=
 =?utf-8?B?RXE0Y2dZbEpRSGZRMWhnWHlmeDFKSHBPQzhLV0czRXJ4NG5YVjdwTXJlUEVL?=
 =?utf-8?B?MXozcUcrZ252ZTFsNksyVHJkTTJwYXQ2bmJZZHJ3U0xJcmhKbXJLK3FhZHBI?=
 =?utf-8?B?azFJdWZrUDVlbnNYWTBVUFlubnM5NG4rZVI4dGNWL0ZwK3lhcW1OOVFEYm1a?=
 =?utf-8?B?LzRSQXZ2eUpkdVRaWVYxYktURi96UEFVUjVQYlFvYXU1dHluZ0JxYkdtbElI?=
 =?utf-8?B?MzlLZlYwSHZmOURmc2pnaHNKZC9Kb0xXeS9GNnRMUENPYmxsTDBOVG5ER082?=
 =?utf-8?B?ODdFbTB0VGVnN1BUbFNhUXlHR1JrNXpmMkU5Z3kyZERScHM2Yko4L2tDNDk1?=
 =?utf-8?B?Uk1pWTU4MUtXOUZzeW1abXJubWV0YmhYdWttYUh2MkpCMExQTURJN0hEWU5E?=
 =?utf-8?B?ZitXZ2VQTVJvZ1EwMUpkSGszc3l1b1Q2VkRSWXRaQXJaQkdEelJaY2F2Mzlz?=
 =?utf-8?B?UHl0Mm9GZUFrd0QycWthZGRndlRwUWtXLzg4elE2aFpKWUd5TkJMbDY1TEJs?=
 =?utf-8?B?MTNmMnh2aERjd1VxV0hXRGc5NlJadXdGQ2M5WUdGelUybDZGb25YMXIyVUw5?=
 =?utf-8?Q?MOyU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <621729E44213894280CE7BD05AC04381@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: 5f0cf4c2-3683-4c82-7ab2-08dbfaddba0e
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2023 06:44:01.9071
 (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: NGwcsRJhEG/Cv+H8IqDpu3UmZz8G5IR3BpO1vSeW8YKXTSz1u+PAKZHL7L6SlwrEv0/qPEmRGjBdqQ3k3EbLOQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5881

T24gMjAyMy8xMi8xMSAyMzoyMiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gTW9uLCBE
ZWMgMTEsIDIwMjMgYXQgMTI6NDA6MDdBTSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBX
aGVuIGEgZGV2aWNlIGhhcyBiZWVuIHJlc2V0IG9uIGRvbTAgc2lkZSwgdGhlIHZwY2kgb24gWGVu
DQo+PiBzaWRlIHdvbid0IGdldCBub3RpZmljYXRpb24sIHNvIHRoZSBjYWNoZWQgc3RhdGUgaW4g
dnBjaSBpcw0KPj4gYWxsIG91dCBvZiBkYXRlIGNvbXBhcmUgd2l0aCB0aGUgcmVhbCBkZXZpY2Ug
c3RhdGUuDQo+PiBUbyBzb2x2ZSB0aGF0IHByb2JsZW0sIGFkZCBhIG5ldyBoeXBlcmNhbGwgdG8g
Y2xlYXIgYWxsIHZwY2kNCj4+IGRldmljZSBzdGF0ZS4gV2hlbiB0aGUgc3RhdGUgb2YgZGV2aWNl
IGlzIHJlc2V0IG9uIGRvbTAgc2lkZSwNCj4+IGRvbTAgY2FuIGNhbGwgdGhpcyBoeXBlcmNhbGwg
dG8gbm90aWZ5IHZwY2kuDQo+Pg0KPj4gQ28tZGV2ZWxvcGVkLWJ5OiBIdWFuZyBSdWkgPHJheS5o
dWFuZ0BhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVu
QGFtZC5jb20+DQo+PiAtLS0NCj4+ICB4ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jIHwgIDEg
Kw0KPj4gIHhlbi9kcml2ZXJzL3BjaS9waHlzZGV2LmMgICAgfCAzNSArKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKw0KPj4gIHhlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jICAgICAgfCAg
OSArKysrKysrKysNCj4+ICB4ZW4vaW5jbHVkZS9wdWJsaWMvcGh5c2Rldi5oIHwgIDggKysrKysr
KysNCj4+ICB4ZW4vaW5jbHVkZS94ZW4vdnBjaS5oICAgICAgIHwgIDYgKysrKysrDQo+PiAgNSBm
aWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jDQo+
PiBpbmRleCBlZWI3M2UxYWE1Li42YWQ1YjRkNWYxIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gv
eDg2L2h2bS9oeXBlcmNhbGwuYw0KPj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwu
Yw0KPj4gQEAgLTg0LDYgKzg0LDcgQEAgbG9uZyBodm1fcGh5c2Rldl9vcChpbnQgY21kLCBYRU5f
R1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+ICAgICAgY2FzZSBQSFlTREVWT1BfcGNp
X21tY2ZnX3Jlc2VydmVkOg0KPj4gICAgICBjYXNlIFBIWVNERVZPUF9wY2lfZGV2aWNlX2FkZDoN
Cj4+ICAgICAgY2FzZSBQSFlTREVWT1BfcGNpX2RldmljZV9yZW1vdmU6DQo+PiArICAgIGNhc2Ug
UEhZU0RFVk9QX3BjaV9kZXZpY2Vfc3RhdGVfcmVzZXQ6DQo+PiAgICAgIGNhc2UgUEhZU0RFVk9Q
X2RiZ3Bfb3A6DQo+PiAgICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oY3VycmQpICkN
Cj4+ICAgICAgICAgICAgICByZXR1cm4gLUVOT1NZUzsNCj4+IGRpZmYgLS1naXQgYS94ZW4vZHJp
dmVycy9wY2kvcGh5c2Rldi5jIGIveGVuL2RyaXZlcnMvcGNpL3BoeXNkZXYuYw0KPj4gaW5kZXgg
NDJkYjNlNmQxMy4uNmVlMmVkYjg2YSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9kcml2ZXJzL3BjaS9w
aHlzZGV2LmMNCj4+ICsrKyBiL3hlbi9kcml2ZXJzL3BjaS9waHlzZGV2LmMNCj4+IEBAIC0yLDYg
KzIsNyBAQA0KPj4gICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+DQo+PiAgI2luY2x1ZGUg
PHhlbi9oeXBlcmNhbGwuaD4NCj4+ICAjaW5jbHVkZSA8eGVuL2luaXQuaD4NCj4+ICsjaW5jbHVk
ZSA8eGVuL3ZwY2kuaD4NCj4+ICANCj4+ICAjaWZuZGVmIENPTVBBVA0KPj4gIHR5cGVkZWYgbG9u
ZyByZXRfdDsNCj4+IEBAIC02Nyw2ICs2OCw0MCBAQCByZXRfdCBwY2lfcGh5c2Rldl9vcChpbnQg
Y21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+ICAgICAgICAgIGJyZWFr
Ow0KPj4gICAgICB9DQo+PiAgDQo+PiArICAgIGNhc2UgUEhZU0RFVk9QX3BjaV9kZXZpY2Vfc3Rh
dGVfcmVzZXQ6IHsNCj4+ICsgICAgICAgIHN0cnVjdCBwaHlzZGV2X3BjaV9kZXZpY2UgZGV2Ow0K
Pj4gKyAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXY7DQo+PiArDQo+PiArICAgICAgICBpZiAo
ICFpc19wY2lfcGFzc3Rocm91Z2hfZW5hYmxlZCgpICkNCj4+ICsgICAgICAgICAgICByZXR1cm4g
LUVPUE5PVFNVUFA7DQo+PiArDQo+PiArICAgICAgICByZXQgPSAtRUZBVUxUOw0KPj4gKyAgICAg
ICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmRldiwgYXJnLCAxKSAhPSAwICkNCj4+ICsgICAgICAg
ICAgICBicmVhazsNCj4+ICsNCj4+ICsgICAgICAgIHJldCA9IHhzbV9yZXNvdXJjZV9zZXR1cF9w
Y2koWFNNX1BSSVYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChk
ZXYuc2VnIDw8IDE2KSB8IChkZXYuYnVzIDw8IDgpIHwNCj4+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGV2LmRldmZuKTsNCj4+ICsgICAgICAgIGlmICggcmV0ICkNCj4+
ICsgICAgICAgICAgICBicmVhazsNCj4+ICsNCj4+ICsgICAgICAgIHBjaWRldnNfbG9jaygpOw0K
Pj4gKyAgICAgICAgcGRldiA9IHBjaV9nZXRfcGRldihOVUxMLCBQQ0lfU0JERihkZXYuc2VnLCBk
ZXYuYnVzLCBkZXYuZGV2Zm4pKTsNCj4+ICsgICAgICAgIGlmICggIXBkZXYgKQ0KPj4gKyAgICAg
ICAgew0KPj4gKyAgICAgICAgICAgIHJldCA9IC1FTk9ERVY7DQo+PiArICAgICAgICAgICAgcGNp
ZGV2c191bmxvY2soKTsNCj4gDQo+IE5pdDogYXNzaWduaW5nIC1FTk9ERVYgY291bGQgYmUgZG9u
ZSBhZnRlciBkcm9wcGluZyB0aGUgbG9jay4NCkkgd2lsbCBhZGp1c3QgdGhlIHNlcXVlbmNlIGlu
IG5leHQgdmVyc2lvbiwgdGhhbmtzLg0KDQo+IA0KPj4gKyAgICAgICAgICAgIGJyZWFrOw0KPj4g
KyAgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICAgcmV0ID0gdnBjaV9yZXNldF9kZXZpY2Vfc3Rh
dGUocGRldik7DQo+PiArICAgICAgICBpZiAoIHJldCApDQo+PiArICAgICAgICAgICAgcHJpbnRr
KFhFTkxPR19FUlIgIlBDSSByZXNldCBkZXZpY2UgJXBwIHN0YXRlIGZhaWxlZFxuIiwNCj4+ICsg
ICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYpOw0KPiANCj4gUGxlYXNlIGRvIHRoZSBwcmlu
dCBvdXRzaWRlIG9mIHRoZSBsb2NrZWQgcmVnaW9uLCB0aGVyZSdzIG5vIG5lZWQgdG8NCj4gaG9s
ZCB0aGUgcGNpZGV2cyBsb2NrIGFmdGVyIHRoZSB2cGNpX3Jlc2V0X2RldmljZV9zdGF0ZSgpIGNh
bGwgaWYgeW91DQo+IHVzZSB0aGUgZGF0YSBpbiB0aGUgbG9jYWwgJ2RldicgdmFyaWFibGUgdG8g
cHJpbnQgdGhlIFNCREYuDQo+IA0KPiBJdCB3b3VsZCBhbHNvIGJlIGZpbmUgaWYgeW91IHdhbnQg
dG8gaW50cm9kdWNlIGEgbG9jYWwgc2JkZiB2YXJpYWJsZQ0KPiB0aGF0IHlvdSBjYW4gdXNlIGJv
dGggaGVyZSBhbmQgaW4gdGhlIGNhbGwgdG8gcGNpX2dldF9wZGV2KCkgYWJvdmUuDQo+IA0KPiBJ
IHRoaW5rIGl0J3MgYWxzbyBlYXNpZXIgdG8gcGFyc2UgaWYgdGhlIFNCREYgaXMgYXQgdGhlIGJl
Z2dpbmcgb2YgdGhlDQo+IG1lc3NhZ2U6DQo+IA0KPiAiJXBwOiBmYWlsZWQgdG8gcmVzZXQgUENJ
IGRldmljZSBzdGF0ZVxuIg0KPiANCj4gVGhhdCdzIGhvd2V2ZXIgYSBxdWVzdGlvbiBvZiB0YXN0
ZS4NCk5pY2Ugc3VnZ2VzdGlvbiwgSSB3aWxsIGFkanVzdCBhY2NvcmRpbmcgdG8gYWxsIHdoYXQg
eW91IHNhaWQuIFRoYW5rcy4NCg0KPiANCj4+ICsgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7DQo+
PiArICAgICAgICBicmVhazsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gICAgICBkZWZhdWx0Og0KPj4g
ICAgICAgICAgcmV0ID0gLUVOT1NZUzsNCj4+ICAgICAgICAgIGJyZWFrOw0KPj4gZGlmZiAtLWdp
dCBhL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jIGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+
IGluZGV4IDcyZWYyNzdjNGYuLjNjNjRjYjEwY2MgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vZHJpdmVy
cy92cGNpL3ZwY2kuYw0KPj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+IEBAIC0x
MDcsNiArMTA3LDE1IEBAIGludCB2cGNpX2FkZF9oYW5kbGVycyhzdHJ1Y3QgcGNpX2RldiAqcGRl
dikNCj4+ICANCj4+ICAgICAgcmV0dXJuIHJjOw0KPj4gIH0NCj4+ICsNCj4+ICtpbnQgdnBjaV9y
ZXNldF9kZXZpY2Vfc3RhdGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiArew0KPj4gKyAgICBB
U1NFUlQocGNpZGV2c19sb2NrZWQoKSk7DQo+PiArDQo+PiArICAgIHZwY2lfcmVtb3ZlX2Rldmlj
ZShwZGV2KTsNCj4+ICsgICAgcmV0dXJuIHZwY2lfYWRkX2hhbmRsZXJzKHBkZXYpOw0KPj4gK30N
Cj4+ICsNCj4+ICAjZW5kaWYgLyogX19YRU5fXyAqLw0KPj4gIA0KPj4gIHN0YXRpYyBpbnQgdnBj
aV9yZWdpc3Rlcl9jbXAoY29uc3Qgc3RydWN0IHZwY2lfcmVnaXN0ZXIgKnIxLA0KPj4gZGlmZiAt
LWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9waHlzZGV2LmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv
cGh5c2Rldi5oDQo+PiBpbmRleCBmMGMwZDQ3MjdjLi45MmMyZjI4YmNhIDEwMDY0NA0KPj4gLS0t
IGEveGVuL2luY2x1ZGUvcHVibGljL3BoeXNkZXYuaA0KPj4gKysrIGIveGVuL2luY2x1ZGUvcHVi
bGljL3BoeXNkZXYuaA0KPj4gQEAgLTI5Niw2ICsyOTYsMTQgQEAgREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUocGh5c2Rldl9wY2lfZGV2aWNlX2FkZF90KTsNCj4+ICAgKi8NCj4+ICAjZGVmaW5lIFBI
WVNERVZPUF9wcmVwYXJlX21zaXggICAgICAgICAgMzANCj4+ICAjZGVmaW5lIFBIWVNERVZPUF9y
ZWxlYXNlX21zaXggICAgICAgICAgMzENCj4+ICsvKg0KPj4gKyAqIE9uIFBWSCBkb20wLCB3aGVu
IGRldmljZSBpcyByZXNldCwgdGhlIHZwY2kgb24gWGVuIHNpZGUNCj4+ICsgKiB3b24ndCBnZXQg
bm90aWZpY2F0aW9uLCBzbyB0aGF0IHRoZSBjYWNoZWQgc3RhdGUgaW4gdnBjaSBpcw0KPj4gKyAq
IGFsbCBvdXQgb2YgZGF0ZSB3aXRoIHRoZSByZWFsIGRldmljZSBzdGF0ZS4gVXNlIHRoaXMgdG8g
cmVzZXQNCj4+ICsgKiB0aGUgdnBjaSBzdGF0ZSBvZiBkZXZpY2UuDQo+PiArICovDQo+IA0KPiBJ
IGdldCB0aGlzIGZlZWxpbmcgdGhpcyBpcyB0b28gc3BlY2lmaWMgdG8gdnBjaSwgd2hlbiB0aGUg
aHlwZXJjYWxsDQo+IGl0c2VsZiBjb3VsZCBiZSB1c2VkIGZvciBvdGhlciBwdXJwb3NlcyBpbiB0
aGUgZnV0dXJlLiAgSSB3b3VsZA0KPiBpbnN0ZWFkIHdyaXRlOg0KPiANCj4gLyoNCj4gICogTm90
aWZ5IHRoZSBoeXBlcnZpc29yIHRoYXQgYSBQQ0kgZGV2aWNlIGhhcyBiZWVuIHJlc2V0LCBzbyB0
aGF0IGFueQ0KPiAgKiBpbnRlcm5hbGx5IGNhY2hlZCBzdGF0ZSBpcyByZWdlbmVyYXRlZC4gIFNo
b3VsZCBiZSBjYWxsZWQgYWZ0ZXIgYW55DQo+ICAqIGRldmljZSByZXNldCBwZXJmb3JtZWQgYnkg
dGhlIGhhcmR3YXJlIGRvbWFpbi4NCj4gICovDQpUaGFua3MsIHdpbGwgdXNlIHRoaXMgaW4gbmV4
dCB2ZXJzaW9uLg0KDQo+IA0KPj4gKyNkZWZpbmUgUEhZU0RFVk9QX3BjaV9kZXZpY2Vfc3RhdGVf
cmVzZXQgICAgIDMyDQo+PiArDQo+PiAgc3RydWN0IHBoeXNkZXZfcGNpX2RldmljZSB7DQo+PiAg
ICAgIC8qIElOICovDQo+PiAgICAgIHVpbnQxNl90IHNlZzsNCj4+IGRpZmYgLS1naXQgYS94ZW4v
aW5jbHVkZS94ZW4vdnBjaS5oIGIveGVuL2luY2x1ZGUveGVuL3ZwY2kuaA0KPj4gaW5kZXggZDIw
YzMwMWEzZC4uZDYzNzc0MjRmMCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi92cGNp
LmgNCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi92cGNpLmgNCj4+IEBAIC0zMCw2ICszMCw3IEBA
IGludCBfX211c3RfY2hlY2sgdnBjaV9hZGRfaGFuZGxlcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYp
Ow0KPj4gIA0KPj4gIC8qIFJlbW92ZSBhbGwgaGFuZGxlcnMgYW5kIGZyZWUgdnBjaSByZWxhdGVk
IHN0cnVjdHVyZXMuICovDQo+PiAgdm9pZCB2cGNpX3JlbW92ZV9kZXZpY2Uoc3RydWN0IHBjaV9k
ZXYgKnBkZXYpOw0KPj4gK2ludCB2cGNpX3Jlc2V0X2RldmljZV9zdGF0ZShzdHJ1Y3QgcGNpX2Rl
diAqcGRldik7DQo+IA0KPiBfX211c3RfY2hlY2sgcGxlYXNlLg0KPiANCj4gVGhhbmtzLCBSb2dl
ci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 06:45:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 06:45:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652653.1018662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwW7-0007IC-3i; Tue, 12 Dec 2023 06:45:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652653.1018662; Tue, 12 Dec 2023 06:45:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwW7-0007I5-1F; Tue, 12 Dec 2023 06:45:19 +0000
Received: by outflank-mailman (input) for mailman id 652653;
 Tue, 12 Dec 2023 06: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=opkj=HX=linux.alibaba.com=hsiangkao@srs-se1.protection.inumbo.net>)
 id 1rCwNA-0004cx-Tb
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 06:36:04 +0000
Received: from out30-130.freemail.mail.aliyun.com
 (out30-130.freemail.mail.aliyun.com [115.124.30.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b50bc66e-98b8-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 07:36:02 +0100 (CET)
Received: from 30.97.49.22(mailfrom:hsiangkao@linux.alibaba.com
 fp:SMTPD_---0VyLR3Ee_1702362952) by smtp.aliyun-inc.com;
 Tue, 12 Dec 2023 14:35:54 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b50bc66e-98b8-11ee-98e8-6d05b1d4d9a1
X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R161e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046056;MF=hsiangkao@linux.alibaba.com;NM=1;PH=DS;RN=50;SR=0;TI=SMTPD_---0VyLR3Ee_1702362952;
Message-ID: <1812c1bf-08b5-46a5-a633-12470e2c8f18@linux.alibaba.com>
Date: Tue, 12 Dec 2023 14:35:51 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC v2 for-6.8/block 11/18] erofs: use bdev api
To: Yu Kuai <yukuai1@huaweicloud.com>, axboe@kernel.dk, roger.pau@citrix.com,
 colyli@suse.de, kent.overstreet@gmail.com, joern@lazybastard.org,
 miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
 sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
 gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
 martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
 dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
 nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
 adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
 konishi.ryusuke@gmail.com, willy@infradead.org, akpm@linux-foundation.org,
 p.raghav@samsung.com, hare@suse.de
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
 linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
 linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
 linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
 linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
 gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org, yukuai3@huawei.com,
 yi.zhang@huawei.com, yangerkun@huawei.com
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140722.974745-1-yukuai1@huaweicloud.com>
From: Gao Xiang <hsiangkao@linux.alibaba.com>
In-Reply-To: <20231211140722.974745-1-yukuai1@huaweicloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 2023/12/11 22:07, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@huawei.com>
> 
> Avoid to access bd_inode directly, prepare to remove bd_inode from
> block_devcie.
> 
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> ---
>   fs/erofs/data.c     | 18 ++++++++++++------
>   fs/erofs/internal.h |  2 ++
>   2 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/erofs/data.c b/fs/erofs/data.c
> index c98aeda8abb2..8cf3618190ab 100644
> --- a/fs/erofs/data.c
> +++ b/fs/erofs/data.c
> @@ -32,8 +32,7 @@ void erofs_put_metabuf(struct erofs_buf *buf)
>   void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
>   		  enum erofs_kmap_type type)
>   {
> -	struct inode *inode = buf->inode;
> -	erofs_off_t offset = (erofs_off_t)blkaddr << inode->i_blkbits;
> +	erofs_off_t offset = (erofs_off_t)blkaddr << buf->blkszbits;
I'd suggest that use `buf->blkszbits` only for bdev_read_folio() since
erofs_init_metabuf() is not always called before erofs_bread() is used.

For example, buf->inode can be one of directory inodes other than
initialized by erofs_init_metabuf().

Thanks,
Gao Xiang


>   	pgoff_t index = offset >> PAGE_SHIFT;
>   	struct page *page = buf->page;
>   	struct folio *folio;
> @@ -43,7 +42,9 @@ void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
>   		erofs_put_metabuf(buf);
>   
>   		nofs_flag = memalloc_nofs_save();
> -		folio = read_cache_folio(inode->i_mapping, index, NULL, NULL);
> +		folio = buf->inode ?
> +			read_mapping_folio(buf->inode->i_mapping, index, NULL) :
> +			bdev_read_folio(buf->bdev, offset);
>   		memalloc_nofs_restore(nofs_flag);
>   		if (IS_ERR(folio))
>   			return folio;
> @@ -67,10 +68,15 @@ void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
>   
>   void erofs_init_metabuf(struct erofs_buf *buf, struct super_block *sb)
>   {
> -	if (erofs_is_fscache_mode(sb))
> +	if (erofs_is_fscache_mode(sb)) {
>   		buf->inode = EROFS_SB(sb)->s_fscache->inode;
> -	else
> -		buf->inode = sb->s_bdev->bd_inode;
> +		buf->bdev = NULL;
> +		buf->blkszbits = buf->inode->i_blkbits;
> +	} else {
> +		buf->inode = NULL;
> +		buf->bdev = sb->s_bdev;
> +		buf->blkszbits = EROFS_SB(sb)->blkszbits;
> +	}
>   }
>   
>   void *erofs_read_metabuf(struct erofs_buf *buf, struct super_block *sb,
> diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
> index b0409badb017..c9206351b485 100644
> --- a/fs/erofs/internal.h
> +++ b/fs/erofs/internal.h
> @@ -224,8 +224,10 @@ enum erofs_kmap_type {
>   
>   struct erofs_buf {
>   	struct inode *inode;
> +	struct block_device *bdev;
>   	struct page *page;
>   	void *base;
> +	u8 blkszbits;
>   	enum erofs_kmap_type kmap_type;
>   };
>   #define __EROFS_BUF_INITIALIZER	((struct erofs_buf){ .page = NULL })


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 06:49:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 06:49:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652668.1018672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwa7-0008Bt-Li; Tue, 12 Dec 2023 06:49:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652668.1018672; Tue, 12 Dec 2023 06: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 1rCwa7-0008Bm-J1; Tue, 12 Dec 2023 06:49:27 +0000
Received: by outflank-mailman (input) for mailman id 652668;
 Tue, 12 Dec 2023 06:49: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=aifi=HX=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCwa6-00089A-ML
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 06:49:26 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20627.outbound.protection.outlook.com
 [2a01:111:f400:7e89::627])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9530d5c6-98ba-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 07:49:24 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by BL3PR12MB6641.namprd12.prod.outlook.com (2603:10b6:208:38d::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Tue, 12 Dec
 2023 06:49:18 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Tue, 12 Dec 2023
 06:49: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: 9530d5c6-98ba-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O8D3XdHEMzEI3I3FUJGoTG873axQiGi4oWgM8D43phaW9wpZ3DJbKuIrM4jiwmBSO/4+6FtWtPgvC0BJqDH6+lr5/KAHx08kZ63egXkgDQlw4ENo16mDN1DjWciGLk100YHnAY1RMpwekjoY5ETM9JHOYV05U9ikJI68Kvp6gWpcT7HG4jsPESlCufuoKYASe9hh7CMEl+vVu4WYe7qADE3l2sefS90OlTuktYUKO6lKIKR27crR1zC6Lpmu6lebTxwGbbqMX6sW0h8aXSOLz4VVX+OPzTtbARIy3AnyhkY7L7n8UKwse219gyyRxHQyrCwMvPU4zh7ZEXVDzr8CMQ==
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=HXg2jog+JuIbIQrO/JyGIYNHE9ENSJgHlHhb6A6sipo=;
 b=WqNQHZR2mV5dEJeJaHT2kB8s5Tx22HZE2evomUmgedPHn28weFNIdsMaL0IcaB0EzuYSTmL/UPZf9L0wD+jJ9VjNuLrqLQMIivQLloPMj1ABBPgGabLGzV2ta5Ub2SiusT1XYzxsDvaEmUrJ0isie/VcUzh3t5UBbLpJPtR7Wk8QJCf3rh9II7B3EgkpiqObvRpdHlScJqGhWoNX8m4EEYDlTVJcrqt9Hw9/O/otwe01nSo8zSuc/AO9qvkZOqe3nEQ87ZJ9S3Y6DjI/ANWK+dd5ZDbODMg0EpSlXnYxpAScWOzo6/eO0a0B9BNgD1b6AqgKaGXtGpUfYAA7/SNUvA==
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=HXg2jog+JuIbIQrO/JyGIYNHE9ENSJgHlHhb6A6sipo=;
 b=yqUzCeCOR8AsXaWlcz6K24/LZAA+hFy44PiPUZOhCVFRnxRfKIHMhLLqAjgRMOyB1YB/q26YiUNfszKp3j77iG2+wUByqKfBBV8vTfPM3wJaRd/8Sem/WoTRJ4ZZDPAobdQutWLANECr1gAOqxmnzU5a6MCVhAp9Fh122CB0CAg=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>, "Zhang,
 Julia" <Julia.Zhang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Topic: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Index: AQHaK4ebBv/EWT+No0GAUR8lU4172LCkNzqAgAGFPIA=
Date: Tue, 12 Dec 2023 06:49:18 +0000
Message-ID:
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook>
In-Reply-To: <ZXcrX44ceUjzjtDh@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5302.namprd12.prod.outlook.com
 (15.20.7091.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_|BL3PR12MB6641:EE_
x-ms-office365-filtering-correlation-id: f9c44f0c-f4a5-4c31-6706-08dbfade76c3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 RVsgfC180YhAwoeXAOplmAuC14j+2AktCcxNgFVP6DgDz7+YJFFwMO7209rpBvv9V0jqAso8AQLLVsPaIen9zSIfRkUdC6Ds8ZI/h1UAjCDF57HdAzWp5w6h9FuX1EKxTcU6VHerQKx9stQuSScf6n1Qk9sFlxC5bILGaus+c4EW7JRpeHuuZF0rtyUvzWJEe5kpiMdojEcAJiOfAZQZKEsvxXEofoHvM8251VvsSg5I3t1EUoDn8+420GY1FDBBF6u/fmrDz/A/6E6xmL7bVFH43GLzNaAwjeNeGPwJbtTqMYhZjHoI/2Itn5wjAFVMlmRrA3O/aE1Iiyj6pxcqhWUNjcWliA6fM1UiI4d9UwaSrlHpGd5ILuqLswPw/GNjUQIsp1lmJYaeSQmk3gvo/FWq3O7PeMyl+RGLjqGOEojtTJKU7BjDghHcYF6syeJwEWJj5z8zVqOSbdd7R37vTC79eeYfNevg6g+rsHGcJG+U468hhbuNNvhxZGggWg515n7gzS5e+6g1puarCRynvwgKCPT+Beoctx+JG0LWSSdN6T6EVXGSLogJvveQhO3jfJcKuhqopakMfrxS7DDiltoAvNxewu4DHimY1uCL7ZsKt3E9Ye1Bm5CC/YY3jcpy
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:(13230031)(136003)(366004)(39860400002)(376002)(346002)(396003)(230922051799003)(451199024)(186009)(64100799003)(1800799012)(26005)(83380400001)(53546011)(7696005)(6506007)(9686003)(66946007)(122000001)(5660300002)(52536014)(4326008)(8936002)(41300700001)(8676002)(2906002)(71200400001)(478600001)(316002)(6916009)(66556008)(54906003)(64756008)(66446008)(66476007)(76116006)(38100700002)(33656002)(38070700009)(55016003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?YlRnd3BhWkxuL3A2RjhCY0FJMEkwbWVDVzVabGRMSk9oNG1oQ3ZuQ0s2VU5n?=
 =?utf-8?B?c3UwZ1dHYTZldndyMHFDYjZoeTd1ZkFySTYvVTVPV05nQk0xd25lMUM3enVk?=
 =?utf-8?B?c0QxMUxjNTVvOWVReG1uODBmZGVQNGhNVVIwd1FrK2VBL3poT2JuRFFMY3VM?=
 =?utf-8?B?UUtBSVgvampKRllBY0RIUDU1cXNYdWxzODZZa1owZVVOSnQ1Q1pWTEUveGls?=
 =?utf-8?B?OVJqZy80QkRGVE1Sa3Z6cFhqbFBuN1NKOXpvY0t4QXlSTEYvOFU3TlBqaEZs?=
 =?utf-8?B?TEc3dUxabXEwT2xBeXZsOGlzQ1JrQzFQTGFkMzEwWEtIRmZianJYU29jRUVv?=
 =?utf-8?B?S0txRVNua0xqZm5XWVNzc0JhZFlhQzN2ZEkvbTNCY1FYWFo1K2hwYkpEdXFs?=
 =?utf-8?B?Y2Y1RU5FaFNpdDZmS043djJjSlUwWEZ6NnZVaUhUUXZhM1NRMkVVL3FjL1Zn?=
 =?utf-8?B?eUZCNjlkbElCaXBpa0dEdkFKTkVDRDJKMGRNcEs5cVhYdkwvMTcxQ2U4VFZS?=
 =?utf-8?B?NDFaZTV2bU02M2tDNkZMRXFNZ0IrSmtFS1BRb3VUcE1IQjlzNENlck14N0dm?=
 =?utf-8?B?NG5ERm9XOVU1Y3d4SU15VnJUeVgzMk5GVU1OMkVRMnZNT0FQMkg3QkdvUWpN?=
 =?utf-8?B?YnVHb2VuOE1IV2ZWdDZHYXAyMk0yWFowclkwL2ZXQnc5WEFNN0R6RWhLZHNq?=
 =?utf-8?B?K2pvaHBucnd0V3lrN3MxY3Z5dGE1K2IyeUZaRDVsa0FqRGpLV2dEMDdFWlNq?=
 =?utf-8?B?a0VkaVE5N1A1a20rREU1dTc5TERmYXdPUzhhUFJJQUNWRUovWUJCbUZTbFpY?=
 =?utf-8?B?eGpOV1dKYXl6OTV1TldoMFFFUnU5MnV2ZFRxZ0dhOTJHd2JaeTgvTThPOUMx?=
 =?utf-8?B?QlZncm13aldSOHlYTnAvVnBpYkhRcnJKMTFybllIeXgwb1lyVk01VjlvcDIx?=
 =?utf-8?B?cVhhUU9Gdkc1bDA2U29yei9lNi9Xek12N3ViTk40VWVhSlBkRVRVd3cwR2tD?=
 =?utf-8?B?WXJyUFNRQ0dWU1ltWUxRWXdocXRtcTZJRVJrTXZ5YmpVc2F0dGxKRXhEb1Z6?=
 =?utf-8?B?OU91MnpsaHNTWnNGMUtKMFo4dnhYNkI2U2NrU0tBTHdOdWh6TVQ5N0x3cXQ1?=
 =?utf-8?B?VFI4eGI3RWQ1TjBCek9YVGUyNCt4c0cyR1B5K1BESURLd2MwKy9iT0hWdHRV?=
 =?utf-8?B?aW5weXRPcmdFaWl5amVYeVdLakZlZk9OVEN0V0xUR29MVXhqL3Z1eUpWdFRo?=
 =?utf-8?B?Q085RkdNQjhiRmZJWTZsZFRYdWVOT24rVTV2N01ZTGo4WVU0d3crNXBLT0RQ?=
 =?utf-8?B?WUlManF3K1g1TDNKY0l1V0dVUDZ6U0NSa3Q2WVIyc3pObGUwcWJORHp3aVht?=
 =?utf-8?B?WkM3UFpXQW5pZmZEcjhRNkpOYndOUkVzOUMxWDd6V2JnSFdObFIyMnk4cEVF?=
 =?utf-8?B?THRpeHpkWTJUemZaMzVPbTgzekEyN0IyVklpZzNhVmpHa2kyTmRTN04zL3ZV?=
 =?utf-8?B?all1L0IxWjJMVGpqY1E4YnNpbjFpQVZsMktBNUd3SXlWZ3lxYUFDSFBGY2U2?=
 =?utf-8?B?cXFRVTBRdGJQSmJvZWxVbVlOOFYwTlpuZWltY1JtNEo4SldaU1V0N3hVVGFE?=
 =?utf-8?B?SVBKanhkcHN4NGZFam12bmdZNXY3OEVNUmoyVFJzMGVlbzJSNGl0WTltcWdR?=
 =?utf-8?B?UnBhbWVhQ2NnWGZ0cWtTRnQxV1llNDVSemtOdGUzV0pqUTdKVFFtUTd0dWpT?=
 =?utf-8?B?dmNYKzlJZzVVNE9IalNtU1UxTGwzcitFMHJUc1hoeVRmQ2hhbVU3cVhocWll?=
 =?utf-8?B?bDVOdjRDYU9DaUVDZG0yNFdvSlRmeGxDcFQ1UW5JOG1ELy96WTRONnJUS1JP?=
 =?utf-8?B?cGdmelRtM2h4eENmQUkxcTBJUDFMWmhiNkVWbVhDUU9PbXdOYkpMdHpIWXY2?=
 =?utf-8?B?Z0NDZEhRYmprbHA0Q1c1QlNicVhUYlkwUFJxTFRtSmJrVFNHeHZvQkpMUHBJ?=
 =?utf-8?B?dHBNRXljREsrNGdmSEtqaEU1aXZBSWM3cTlYWm1zMm9vRjFmUThQWUk2Qncx?=
 =?utf-8?B?Ym5VTGJsOGNzbjR4Sk5TVjRYL0x0L3BaVUptZ0dGTFBnK2NPNjF0Q0VzVk5m?=
 =?utf-8?Q?tMh4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2C311F8E7F7BE945ACA5F0A1A8AB85E1@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: f9c44f0c-f4a5-4c31-6706-08dbfade76c3
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2023 06:49:18.5075
 (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: dRxLux+7zqOG6Nj6/dw9JEWgyg0WNhINWwMos1rgNDobnDd/CddZOJ+qmT56MkL0J39R/MqdfhhZFmjBufHotA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6641

T24gMjAyMy8xMi8xMSAyMzozMSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gTW9uLCBE
ZWMgMTEsIDIwMjMgYXQgMTI6NDA6MDhBTSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBJ
ZiBydW4gWGVuIHdpdGggUFZIIGRvbTAgYW5kIGh2bSBkb21VLCBodm0gd2lsbCBtYXAgYSBwaXJx
IGZvcg0KPj4gYSBwYXNzdGhyb3VnaCBkZXZpY2UgYnkgdXNpbmcgZ3NpLCBzZWUNCj4+IHhlbl9w
dF9yZWFsaXplLT54Y19waHlzZGV2X21hcF9waXJxIGFuZA0KPj4gcGNpX2FkZF9kbV9kb25lLT54
Y19waHlzZGV2X21hcF9waXJxLiBUaGVuIHhjX3BoeXNkZXZfbWFwX3BpcnENCj4+IHdpbGwgY2Fs
bCBpbnRvIFhlbiwgYnV0IGluIGh2bV9waHlzZGV2X29wLCBQSFlTREVWT1BfbWFwX3BpcnENCj4+
IGlzIG5vdCBhbGxvd2VkIGJlY2F1c2UgY3VycmQgaXMgUFZIIGRvbTAgYW5kIFBWSCBoYXMgbm8N
Cj4+IFg4Nl9FTVVfVVNFX1BJUlEgZmxhZywgaXQgd2lsbCBmYWlsIGF0IGhhc19waXJxIGNoZWNr
Lg0KPj4gU28sIGFsbG93IFBIWVNERVZPUF9tYXBfcGlycSB3aGVuIGN1cnJkIGlzIGRvbTAgbm8g
bWF0dGVyIGlmDQo+PiBkb20wIGhhcyBYODZfRU1VX1VTRV9QSVJRIGZsYWcgYW5kIGFsc28gYWxs
b3cNCj4+IFBIWVNERVZPUF91bm1hcF9waXJxIGZvciB0aGUgZmFpbGVkIHBhdGggdG8gdW5tYXAg
cGlycS4NCj4+DQo+PiBXaGF0J3MgbW9yZSwgaW4gUFZIIGRvbTAsIHRoZSBnc2lzIGRvbid0IGdl
dCByZWdpc3RlcmVkLCBidXQNCj4+IHRoZSBnc2kgb2YgYSBwYXNzdGhyb3VnaCBkZXZpY2UgbXVz
dCBiZSBjb25maWd1cmVkIGZvciBpdCB0bw0KPj4gYmUgYWJsZSB0byBiZSBtYXBwZWQgaW50byBh
IGh2bSBkb21VLg0KPj4gU28sIGFkZCBQSFlTREVWT1Bfc2V0dXBfZ3NpIGZvciBQVkggZG9tMCwg
YmVjYXVzZSBQVkggZG9tMA0KPj4gd2lsbCBzZXR1cCBnc2kgZHVyaW5nIGFzc2lnbmluZyBhIGRl
dmljZSB0byBwYXNzdGhyb3VnaC4NCj4+DQo+PiBDby1kZXZlbG9wZWQtYnk6IEh1YW5nIFJ1aSA8
cmF5Lmh1YW5nQGFtZC5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFu
LkNoZW5AYW1kLmNvbT4NCj4+IC0tLQ0KPj4gIHhlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMg
fCAzICsrKw0KPj4gIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykNCj4+DQo+PiBkaWZm
IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYyBiL3hlbi9hcmNoL3g4Ni9odm0v
aHlwZXJjYWxsLmMNCj4+IGluZGV4IDZhZDViNGQ1ZjEuLjYyMWQ3ODliZDMgMTAwNjQ0DQo+PiAt
LS0gYS94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jDQo+PiArKysgYi94ZW4vYXJjaC94ODYv
aHZtL2h5cGVyY2FsbC5jDQo+PiBAQCAtNzIsOCArNzIsMTEgQEAgbG9uZyBodm1fcGh5c2Rldl9v
cChpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+ICANCj4+ICAg
ICAgc3dpdGNoICggY21kICkNCj4+ICAgICAgew0KPj4gKyAgICBjYXNlIFBIWVNERVZPUF9zZXR1
cF9nc2k6DQo+IA0KPiBJIHRoaW5rIGdpdmVuIHRoZSBuZXcgYXBwcm9hY2ggb24gdGhlIExpbnV4
IHNpZGUgcGF0Y2hlcywgd2hlcmUNCj4gcGNpYmFjayB3aWxsIGNvbmZpZ3VyZSB0aGUgaW50ZXJy
dXB0LCB0aGVyZSdzIG5vIG5lZWQgdG8gZXhwb3NlDQo+IHNldHVwX2dzaSBhbnltb3JlPw0KVGhl
IGxhdGVzdCBwYXRjaCh0aGUgc2Vjb25kIHBhdGNoIG9mIHYzIG9uIGtlcm5lbCBzaWRlKSBkb2Vz
IHNldHVwX2dzaSBhbmQgbWFwX3BpcnEgZm9yIHBhc3N0aHJvdWdoIGRldmljZSBpbiBwY2liYWNr
LCBzbyB3ZSBuZWVkIHRoaXMgYW5kIGJlbG93Lg0KDQo+IA0KPj4gICAgICBjYXNlIFBIWVNERVZP
UF9tYXBfcGlycToNCj4+ICAgICAgY2FzZSBQSFlTREVWT1BfdW5tYXBfcGlycToNCj4+ICsgICAg
ICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJkKSApDQo+PiArICAgICAgICAgICAgYnJl
YWs7DQo+IA0KPiBBbHNvIEphbiBhbHJlYWR5IHBvaW50ZWQgdGhpcyBvdXQgaW4gdjI6IHRoaXMg
aHlwZXJjYWxsIG5lZWRzIHRvIGJlDQo+IGxpbWl0ZWQgc28gYSBQVkggZG9tMCBjYW5ub3QgZXhl
Y3V0ZSBpdCBhZ2FpbnN0IGl0c2VsZi4gIElPVzogcmVmdXNlDQo+IHRoZSBoeXBlcmNhbGwgaWYg
RE9NSURfU0VMRiBvciB0aGUgcGFzc2VkIGRvbWlkIG1hdGNoZXMgdGhlIGN1cnJlbnQNCj4gZG9t
YWluIGRvbWlkLg0KWWVzLCBJIHJlbWVtYmVyIEphbidzIHN1Z2dlc3Rpb24sIGJ1dCBzaW5jZSB0
aGUgbGF0ZXN0IHBhdGNoKHRoZSBzZWNvbmQgcGF0Y2ggb2YgdjMgb24ga2VybmVsIHNpZGUpIGhh
cyBjaGFuZ2UgdGhlIGltcGxlbWVudGF0aW9uLCBpdCBkb2VzIHNldHVwX2dzaSBhbmQgbWFwX3Bp
cnEgZm9yIGRvbTAgaXRzZWxmLCBzbyBJIGRpZG4ndCBhZGQgdGhlIERPTUlEX1NFTEYgY2hlY2su
DQoNCj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENo
ZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 06:50:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 06:50:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652672.1018683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwat-0001V1-40; Tue, 12 Dec 2023 06:50:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652672.1018683; Tue, 12 Dec 2023 06:50:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwat-0001Uu-1I; Tue, 12 Dec 2023 06:50:15 +0000
Received: by outflank-mailman (input) for mailman id 652672;
 Tue, 12 Dec 2023 06:50: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=rggv=HX=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rCwar-0001Uk-Lp
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 06:50:13 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2e0255e-98ba-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 07:50:11 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sq8P16p5rz4f3jpm
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 14:49:41 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 214DA1A0993
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 14:49:43 +0800 (CST)
Received: from [10.174.176.73] (unknown [10.174.176.73])
 by APP1 (Coremail) with SMTP id cCh0CgCnqxGDAnhl4n6yDQ--.9546S3;
 Tue, 12 Dec 2023 14:49:42 +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: a2e0255e-98ba-11ee-98e8-6d05b1d4d9a1
Subject: Re: [PATCH RFC v2 for-6.8/block 11/18] erofs: use bdev api
To: Gao Xiang <hsiangkao@linux.alibaba.com>, Yu Kuai
 <yukuai1@huaweicloud.com>, axboe@kernel.dk, roger.pau@citrix.com,
 colyli@suse.de, kent.overstreet@gmail.com, joern@lazybastard.org,
 miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
 sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
 gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
 martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
 dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
 nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
 adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
 konishi.ryusuke@gmail.com, willy@infradead.org, akpm@linux-foundation.org,
 p.raghav@samsung.com, hare@suse.de
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
 linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
 linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
 linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
 linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
 gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org, yi.zhang@huawei.com,
 yangerkun@huawei.com, "yukuai (C)" <yukuai3@huawei.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140722.974745-1-yukuai1@huaweicloud.com>
 <1812c1bf-08b5-46a5-a633-12470e2c8f18@linux.alibaba.com>
From: Yu Kuai <yukuai1@huaweicloud.com>
Message-ID: <7465ebce-1290-e258-13cf-146fa4fd6302@huaweicloud.com>
Date: Tue, 12 Dec 2023 14:49:39 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <1812c1bf-08b5-46a5-a633-12470e2c8f18@linux.alibaba.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgCnqxGDAnhl4n6yDQ--.9546S3
X-Coremail-Antispam: 1UD129KBjvJXoWxJw45Jr1kGFWxtFWfXFyUtrb_yoW5Kw4fpF
	ykAFy8GrWrJrn5ur1xXr1UZFy5t397Ja18Cw4xX3WFvw4UJr10gFy0qr1qgF1UKr4kGr40
	qr1Ivr97ur1UJrUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUU9a14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U
	JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc
	CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E
	2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV
	W8JwACjcxG0xvEwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2Y2ka
	0xkIwI1lc7I2V7IY0VAS07AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7x
	kEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E
	67AF67kF1VAFwI0_Wrv_Gr1UMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF
	4lIxAIcVC0I7IYx2IY6xkF7I0E14v26F4j6r4UJwCI42IY6xAIw20EY4v20xvaj40_WFyU
	JVCq3wCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4UJVWxJr
	UvcSsGvfC2KfnxnUUI43ZEXa7VUbJ73DUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

Hi,

åœ¨ 2023/12/12 14:35, Gao Xiang å†™é“:
> 
> 
> On 2023/12/11 22:07, Yu Kuai wrote:
>> From: Yu Kuai <yukuai3@huawei.com>
>>
>> Avoid to access bd_inode directly, prepare to remove bd_inode from
>> block_devcie.
>>
>> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
>> ---
>> Â  fs/erofs/data.cÂ Â Â Â  | 18 ++++++++++++------
>> Â  fs/erofs/internal.h |Â  2 ++
>> Â  2 files changed, 14 insertions(+), 6 deletions(-)
>>
>> diff --git a/fs/erofs/data.c b/fs/erofs/data.c
>> index c98aeda8abb2..8cf3618190ab 100644
>> --- a/fs/erofs/data.c
>> +++ b/fs/erofs/data.c
>> @@ -32,8 +32,7 @@ void erofs_put_metabuf(struct erofs_buf *buf)
>> Â  void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
>> Â Â Â Â Â Â Â Â Â Â Â  enum erofs_kmap_type type)
>> Â  {
>> -Â Â Â  struct inode *inode = buf->inode;
>> -Â Â Â  erofs_off_t offset = (erofs_off_t)blkaddr << inode->i_blkbits;
>> +Â Â Â  erofs_off_t offset = (erofs_off_t)blkaddr << buf->blkszbits;
> I'd suggest that use `buf->blkszbits` only for bdev_read_folio() since
> erofs_init_metabuf() is not always called before erofs_bread() is used.
> 
> For example, buf->inode can be one of directory inodes other than
> initialized by erofs_init_metabuf().

Thanks for the notice, and you're right, I'll update code in v3:

u8 blkszbits = buf->inode ? inode->i_blkbits : buf->blkszbits;
erofs_off_t offset = (erofs_off_t)blkaddr << blkszbits;

Kuai
> 
> Thanks,
> Gao Xiang
> 
> 
>> Â Â Â Â Â  pgoff_t index = offset >> PAGE_SHIFT;
>> Â Â Â Â Â  struct page *page = buf->page;
>> Â Â Â Â Â  struct folio *folio;
>> @@ -43,7 +42,9 @@ void *erofs_bread(struct erofs_buf *buf, erofs_blk_t 
>> blkaddr,
>> Â Â Â Â Â Â Â Â Â  erofs_put_metabuf(buf);
>> Â Â Â Â Â Â Â Â Â  nofs_flag = memalloc_nofs_save();
>> -Â Â Â Â Â Â Â  folio = read_cache_folio(inode->i_mapping, index, NULL, NULL);
>> +Â Â Â Â Â Â Â  folio = buf->inode ?
>> +Â Â Â Â Â Â Â Â Â Â Â  read_mapping_folio(buf->inode->i_mapping, index, NULL) :
>> +Â Â Â Â Â Â Â Â Â Â Â  bdev_read_folio(buf->bdev, offset);
>> Â Â Â Â Â Â Â Â Â  memalloc_nofs_restore(nofs_flag);
>> Â Â Â Â Â Â Â Â Â  if (IS_ERR(folio))
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  return folio;
>> @@ -67,10 +68,15 @@ void *erofs_bread(struct erofs_buf *buf, 
>> erofs_blk_t blkaddr,
>> Â  void erofs_init_metabuf(struct erofs_buf *buf, struct super_block *sb)
>> Â  {
>> -Â Â Â  if (erofs_is_fscache_mode(sb))
>> +Â Â Â  if (erofs_is_fscache_mode(sb)) {
>> Â Â Â Â Â Â Â Â Â  buf->inode = EROFS_SB(sb)->s_fscache->inode;
>> -Â Â Â  else
>> -Â Â Â Â Â Â Â  buf->inode = sb->s_bdev->bd_inode;
>> +Â Â Â Â Â Â Â  buf->bdev = NULL;
>> +Â Â Â Â Â Â Â  buf->blkszbits = buf->inode->i_blkbits;
>> +Â Â Â  } else {
>> +Â Â Â Â Â Â Â  buf->inode = NULL;
>> +Â Â Â Â Â Â Â  buf->bdev = sb->s_bdev;
>> +Â Â Â Â Â Â Â  buf->blkszbits = EROFS_SB(sb)->blkszbits;
>> +Â Â Â  }
>> Â  }
>> Â  void *erofs_read_metabuf(struct erofs_buf *buf, struct super_block *sb,
>> diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
>> index b0409badb017..c9206351b485 100644
>> --- a/fs/erofs/internal.h
>> +++ b/fs/erofs/internal.h
>> @@ -224,8 +224,10 @@ enum erofs_kmap_type {
>> Â  struct erofs_buf {
>> Â Â Â Â Â  struct inode *inode;
>> +Â Â Â  struct block_device *bdev;
>> Â Â Â Â Â  struct page *page;
>> Â Â Â Â Â  void *base;
>> +Â Â Â  u8 blkszbits;
>> Â Â Â Â Â  enum erofs_kmap_type kmap_type;
>> Â  };
>> Â  #define __EROFS_BUF_INITIALIZERÂ Â Â  ((struct erofs_buf){ .page = NULL })
> .
> 



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 06:55:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 06:55:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652677.1018693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCwff-00029M-MV; Tue, 12 Dec 2023 06:55:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652677.1018693; Tue, 12 Dec 2023 06: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 1rCwff-00029F-JE; Tue, 12 Dec 2023 06:55:11 +0000
Received: by outflank-mailman (input) for mailman id 652677;
 Tue, 12 Dec 2023 06:55:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aifi=HX=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rCwfe-000299-Ln
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 06:55:10 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062f.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6295e557-98bb-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 07:55:09 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by BY5PR12MB4998.namprd12.prod.outlook.com (2603:10b6:a03:1d4::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Tue, 12 Dec
 2023 06:55:04 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Tue, 12 Dec 2023
 06:55:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6295e557-98bb-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RHHFSMlBnYjyIEPvW89KjKWmstKiH2/dYzu7DymQvZ0vN53RYQd4E3tRM2lbNCNNESSWN9N7WPFl/9D8qKtpoA1UjWHCi3IP4eSb7dLj5b9JBsJ3xWi0A6m3fLGjr7aEvdXCdFV5lrg/BA41/bTR7abW00yVukxlwYLHj4/b7WalGtelrQ9trEnmQ2QcPIcDoFUvfdwchwU/F6WSVX7x51ubcZAsP2OHpAYICAa8o1Th0QbR601Gbh1SAT2Y0K4jvq0myhEIAmptglOba8oobnC1P6C0MMx9wtCxl5KMEEV1Pq3NXnBtrRnse04ItzwS4Ub1O7ESTob1sNbAbvgMRw==
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=Xhub4pGIBu+Gf0Os2dvF3Ce35UcIgyx631hZF4gXrp8=;
 b=Dm+k8TEPAWTc9s7iqD3+zXagftpnahudvaS70dkfnz2QCvkb4k6EZDqVfACl8mlqjM00spBC00DuT2f9KHgX0jyNBKS9QNCugRS4fNzf3i9zWjgvkKzegRPtAfaF6HmG1nwm8ttWxfDIuv9xZVkQxKCB921rUqmcltxWH7p3tDyLuFyM4PxH0Cbkhdm6lEO6YmBYRVWHQCNW7DDOtYgmX6+tjBDIquUZJGv0F881wKiVUn+3ZlKWStiZNmKfceGHEDg62KyXzsQEZTpnZWI4FeHKeSrrt8jmwH6mhO6uIpUA7gruOVmQRmV5NmjNVJ8kS1xcfQazN2LqZn9CdjzB8Q==
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=Xhub4pGIBu+Gf0Os2dvF3Ce35UcIgyx631hZF4gXrp8=;
 b=J/qa219B/QCXBL/VVbsGLv65EW8lQ65yV8N5F9mNHo9O5Z2rSoj5JoP91MRYUBg/RbnOkA/EPEhQAWXGBXiCKJwi30A3TnaFLxQIFiEZR53DbY1BDzKtg3YDNGkYSy52rVWdeCy2LxNRPfPKISk5FvpnyOU97eePbzd69JJlCns=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>, "Zhang,
 Julia" <Julia.Zhang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 3/3] libxl: Use gsi instead of irq for mapping
 pirq
Thread-Topic: [RFC XEN PATCH v3 3/3] libxl: Use gsi instead of irq for mapping
 pirq
Thread-Index: AQHaK4efi9v9r/9A7ES/pcP+ty7EpLCkPA2AgAGBxYA=
Date: Tue, 12 Dec 2023 06:55:02 +0000
Message-ID:
 <BL1PR12MB5849382C8B181F38C56E63BCE78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-4-Jiqian.Chen@amd.com> <ZXcvazeJlsfPsq0h@macbook>
In-Reply-To: <ZXcvazeJlsfPsq0h@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5302.namprd12.prod.outlook.com
 (15.20.7091.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_|BY5PR12MB4998:EE_
x-ms-office365-filtering-correlation-id: 67988404-181c-4cbb-4556-08dbfadf43ed
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 2L8NzuHb1WKUyb/N7rU7cZDz/gvW9P4ytnYTqFIY7b3oDZYJ10Z8hMn/3bUoUyNPXXvgzIh+9vvTrqtZIqxqXwjRqvm0mqxoeRxhPZxyAXKfmtylSF9uHQ4j7CSMKUw2MJqVS/MxG6lnWXbR/SOU9wsfig2hQIAb3yME/Rpmbg/n+dfdgZjy5gzUjUA/GU+rvNObVDJQ9yC9tbxUyiKfyTDR09DAsHb1l1QtHOJrkN+dVNWkXxuUzicAI6y2GChrbfIAZY1XmTe0arDRSiXBxwQUACkMMc7A2u4AXvJhj7S7aEWSBdewwncq+/WgqD7zxoF191o2V9thYsTgV1YDfcEtOyFj27zo117UwECKKiiYI0KWnvy0T56toiVhXlgb98IHKydQgJq6MJ3lXuLyz/79ThoIHpjlHSKtpqhKsfcwoxytOhdr86epJaZvp83wJrwz3IMJ4Pst/635GaZko0HHl+C8kXuQ4fjhLE8ThsJ4jNI9c3Cj4kkpdyJ1AgV6rv4nbt1FMDeVaF08dPrCrfk6XuJyQOouIpqwSEz5dsb0HhG2iHSgtKCzdDzY5hfmH9A5A9++hW671B0/nuG3n87HB+qCZ42QBr1AqIHjCPuPgdZ4MqquIiWngEDdUqVN
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:(13230031)(366004)(39860400002)(376002)(136003)(396003)(346002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(52536014)(9686003)(53546011)(6506007)(26005)(5660300002)(33656002)(38070700009)(64756008)(66946007)(66556008)(66446008)(55016003)(6916009)(54906003)(66476007)(76116006)(2906002)(83380400001)(478600001)(41300700001)(8936002)(8676002)(4326008)(7696005)(122000001)(316002)(38100700002)(71200400001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TVhXazFuYU15bU0xSXZRWTRsdHE5QXArditUOGxxTXZpUzhYQm5BUU12Q0Zj?=
 =?utf-8?B?VEhaWkxsUVpwY05ka0lZY3ZnQlhFWkgxRjIxRjB3ZkZSbFovMStYTFByNW4z?=
 =?utf-8?B?NGZPeko0TFk3RHJ1VjhjeGZzR3U3cEk0UmVndG1BTjVJdTkxU3MyS1YvdnlS?=
 =?utf-8?B?NHFDSWlpd28zd3BxQlZtQk9BTUU5RlFYRk9NaDg5QmFyYm05QUJZM0d2VWVi?=
 =?utf-8?B?bUFsZUlLQ2RsMi9Hd3h4NmhIOHlGK1gvMXZpQlRwZ3lDNEpFOGxBWTRNYXZJ?=
 =?utf-8?B?L0ZCY3FUSW91Q0dpYVNWZVJ1WU1TaENyWEhiZFpOYWpEQ05ZYmhiYmN4R2F3?=
 =?utf-8?B?emNtM3F3eUlIZGtWRTFQYjRBaTI2dndOdE9BSFhOUEtaTTlzNjNxeWdEeGtx?=
 =?utf-8?B?M0c1YzZHSmZOTHVSdGVvVFZ2dGo4SUp6RURXMS81dzlsL2hocTkwVms0TmpK?=
 =?utf-8?B?aDkxZDdmSThzZGcrQ3owZ2tacFl6K3lKY3Jxc0JYbFoxQ1JsQng4RkdYWnl5?=
 =?utf-8?B?MFJKUms1N3NCYnFHUzhZWWxsNVZ5cHUrNy9aS1VzTXl3cjBYbTRvWm5zTnRE?=
 =?utf-8?B?aUdMM3JIZXFqUjNwT3VDY2JXZzF2ektNMVhiemFkcG1HZ0lSOW9tQnJoMmlt?=
 =?utf-8?B?WU1CZmdEWjJLY1FLTjdRRnRQRFI5QThEZFBzaWJPNHRIZUZvY2JraGdKQ05Q?=
 =?utf-8?B?bFc3SnhtSWw2cUR6VFo1MHVHcmtDUHo3T3NOUTV4cTRvQmR6Y3BxbE1vdTFk?=
 =?utf-8?B?L0lWd2o5a1BsdFBYYWNWdHZ0b21wMjRjcjNCMk90bng2RlhMZklOTkJUSDg3?=
 =?utf-8?B?S1F2MEN1RTJCR1JRWVVGL2NxaVVsME5KZW0zU0crbkEwUkM1OXgrejdESnhk?=
 =?utf-8?B?aVF2QXMyaGtYVlhEZ3NJTVR3enUxQTc0ZmUzS0JESnMycnhoU3RWWlJyWHo1?=
 =?utf-8?B?SHlwVnZVUUcyWFNMYUFjVFhVYUlpT3l3ZXFZVkdOTytVb1hrRUx1c3lqQWda?=
 =?utf-8?B?ajN1WWs3VE9TdC81UVFVQ0FRYWJyUG1STEl3TUlXWmhJK3NBbm1nL3RlOVlD?=
 =?utf-8?B?OG9MYStlTm9TRWQ0ajNmUmJhSEJ6Ty90RmM4WEV5ajRRQ3kwV2xManJIRzZa?=
 =?utf-8?B?QTRYRHFCb3Y0TUxReDRPdTRTd3VpM1ZxYjJmN0lUN2pqWU42Wnp1aWY1NSts?=
 =?utf-8?B?NnM1azFlNEtVUW5LYzhxU0pZUVlVNVh3WDhZUVlCbGRmTDdyUEJxNEE4Q1Q3?=
 =?utf-8?B?YVBuZnQzTExNRHduNWl5UFRhYTV1QWlRUHRUVmw1aG1Ea2krdXFsbkdVMkx3?=
 =?utf-8?B?em96UnNYNkZaQ3FCK0N1ZDFkcVRrTU1JR2l3TTlydXRndGlTR0tic2YrZXJD?=
 =?utf-8?B?b3RpQ2pVWncwTSs4L0xtR2lJcUJSMHErRGwwbUNvRkNTRWhOc2xXYkZvTDhL?=
 =?utf-8?B?ckY3V0tHOWhCS05UeHZRM1VGa2tUY2E4WnFaOGx3RGVMWFpXZDlzdjN4NG1i?=
 =?utf-8?B?OE41WWQvWGdtTnZhZEI0Sno2VVNMY2RqMlR6Z3NnY3BHY0RBKzFTVVYwbUdz?=
 =?utf-8?B?MHFvT2V0WWRmci82MUVPTVY1ZE1rUHI2dnZVdHlLMnJDNHFRK1VwWFlXUHdE?=
 =?utf-8?B?WVQwNEI3VitINFE4Z2lJczlpMkc3eXJRdHdwZnpNZ2tqVmRzcmMxc1VpMEw5?=
 =?utf-8?B?TXJCV3hNRXBTdm5STEptdTZCWEVaZGhFTXVheUNPKzgxVEtPSkt3ck9YNU9M?=
 =?utf-8?B?c0pqZHN2WnV6eFNVNGg0MTNoVzlLNVI4eGlDRGlPUFFqcGpMbng5bHVRamha?=
 =?utf-8?B?Kzk2SHB2Y0g5OHZZSzRrYlc5cXpsUW15WjlGQVdWZjBuZFVpa2I1Z1p1NEZY?=
 =?utf-8?B?K1Y0cEpqdW1qZzViYXh4eDZXb2lUbklyQi9od2pQSXNBRnE5K1dXeDJEMm55?=
 =?utf-8?B?SWZrRk9FQnVpSmhNNCs5Y1RXNWIzaFFQL1cxMDZMZHRBM1hvMSsyMEVEenlU?=
 =?utf-8?B?VmdjRVJ0WDlUb2Z2NURBSURzQkkvTU83M1ZOVmRpUWVWWjhDbFJjQ0pXQmNP?=
 =?utf-8?B?Mjg2SUYzRWczbWpOc3NDV092YXRBZjB6YmFOMk5XL0YrMTBwem5kS3JNcHBu?=
 =?utf-8?Q?ewwk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <358C5E1475094C479EFA81DDFB240E02@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: 67988404-181c-4cbb-4556-08dbfadf43ed
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2023 06:55:02.6703
 (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: ywtoiMpjVsHTOGbqdokY1hGsTeU6bjX+ZOWDCj/fs6r3D1uS0JJ+kVVmGhddUddpUkobaHi5+2P8x52oKS0NxQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4998

T24gMjAyMy8xMi8xMSAyMzo0OCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gTW9uLCBE
ZWMgMTEsIDIwMjMgYXQgMTI6NDA6MDlBTSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBJ
biBQVkggZG9tMCwgaXQgdXNlcyB0aGUgbGludXggbG9jYWwgaW50ZXJydXB0IG1lY2hhbmlzbSwN
Cj4+IHdoZW4gaXQgYWxsb2NzIGlycSBmb3IgYSBnc2ksIGl0IGlzIGR5bmFtaWMsIGFuZCBmb2xs
b3cNCj4+IHRoZSBwcmluY2lwbGUgb2YgYXBwbHlpbmcgZmlyc3QsIGRpc3RyaWJ1dGluZyBmaXJz
dC4gQW5kDQo+PiB0aGUgaXJxIG51bWJlciBpcyBhbGxvY2VkIGZyb20gc21hbGwgdG8gbGFyZ2Us
IGJ1dCB0aGUNCj4+IGFwcGx5aW5nIGdzaSBudW1iZXIgaXMgbm90LCBtYXkgZ3NpIDM4IGNvbWVz
IGJlZm9yZSBnc2kNCj4+IDI4LCB0aGF0IGNhdXNlcyB0aGUgaXJxIG51bWJlciBpcyBub3QgZXF1
YWwgd2l0aCB0aGUgZ3NpDQo+PiBudW1iZXIuIEFuZCB3aGVuIHBhc3N0aHJvdWdoIGEgZGV2aWNl
LCB4bCB3YW50cyB0byB1c2UNCj4+IGdzaSB0byBtYXAgcGlycSwgc2VlIHBjaV9hZGRfZG1fZG9u
ZS0+eGNfcGh5c2Rldl9tYXBfcGlycSwNCj4+IGJ1dCB0aGUgZ3NpIG51bWJlciBpcyBnb3QgZnJv
bSBmaWxlDQo+PiAvc3lzL2J1cy9wY2kvZGV2aWNlcy88c2JkZj4vaXJxIGluIGN1cnJlbnQgY29k
ZSwgc28gaXQNCj4+IHdpbGwgZmFpbCB3aGVuIG1hcHBpbmcuDQo+Pg0KPj4gU28sIHVzZSByZWFs
IGdzaSBudW1iZXIgcmVhZCBmcm9tIGdzaSBzeXNmcy4NCj4+DQo+PiBDby1kZXZlbG9wZWQtYnk6
IEh1YW5nIFJ1aSA8cmF5Lmh1YW5nQGFtZC5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4g
Q2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4+IC0tLQ0KPj4gIHRvb2xzL2xpYnMvbGlnaHQv
bGlieGxfcGNpLmMgfCAxOCArKysrKysrKystLS0tLS0tLS0NCj4+ICAxIGZpbGUgY2hhbmdlZCwg
OSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS90b29s
cy9saWJzL2xpZ2h0L2xpYnhsX3BjaS5jIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9wY2kuYw0K
Pj4gaW5kZXggOTZjYjRkYTA3OS4uOWU3NWYwYzI2MyAxMDA2NDQNCj4+IC0tLSBhL3Rvb2xzL2xp
YnMvbGlnaHQvbGlieGxfcGNpLmMNCj4+ICsrKyBiL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfcGNp
LmMNCj4+IEBAIC0xNDE2LDcgKzE0MTYsNyBAQCBzdGF0aWMgdm9pZCBwY2lfYWRkX2RtX2RvbmUo
bGlieGxfX2VnYyAqZWdjLA0KPj4gICAgICBjaGFyICpzeXNmc19wYXRoOw0KPj4gICAgICBGSUxF
ICpmOw0KPj4gICAgICB1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQsIGVuZCwgZmxhZ3MsIHNpemU7
DQo+PiAtICAgIGludCBpcnEsIGk7DQo+PiArICAgIGludCBnc2ksIGk7DQo+PiAgICAgIGludCBy
Ow0KPj4gICAgICB1aW50MzJfdCBmbGFnID0gWEVOX0RPTUNUTF9ERVZfUkRNX1JFTEFYRUQ7DQo+
PiAgICAgIHVpbnQzMl90IGRvbWFpbmlkID0gZG9taWQ7DQo+PiBAQCAtMTQzOSw3ICsxNDM5LDcg
QEAgc3RhdGljIHZvaWQgcGNpX2FkZF9kbV9kb25lKGxpYnhsX19lZ2MgKmVnYywNCj4+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwY2ktPmJ1cywgcGNpLT5kZXYsIHBjaS0+ZnVuYyk7DQo+
PiAgICAgIGYgPSBmb3BlbihzeXNmc19wYXRoLCAiciIpOw0KPj4gICAgICBzdGFydCA9IGVuZCA9
IGZsYWdzID0gc2l6ZSA9IDA7DQo+PiAtICAgIGlycSA9IDA7DQo+PiArICAgIGdzaSA9IDA7DQo+
IA0KPiB1bnNpZ25lZCBpbnQgKHNvIGl0IG1hdGNoZXMgdGhlIGZzY2FuZiBmb3JtYXQpLCBhbmQg
aW5pdGlhbGl6ZWQgYXQNCj4gZGVmaW5pdGlvbi4NCkFzIHdoYXQgeW91IHNhaWQgYmVsb3csIEkg
bmVlZCB0byB1c2UgaXJxIGlmIHRoZXJlIGlzIG5vIGdzaSBzeXNmcy4gU28sIEkgdGhpbmsgaXQg
aXMgbm90IG5lY2Vzc2FyeSB0byBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhpcyBsb2NhbCB2YXJpYWJs
ZS4NCg0KPiANCj4+ICANCj4+ICAgICAgaWYgKGYgPT0gTlVMTCkgew0KPj4gICAgICAgICAgTE9H
RUQoRVJST1IsIGRvbWFpbmlkLCAiQ291bGRuJ3Qgb3BlbiAlcyIsIHN5c2ZzX3BhdGgpOw0KPj4g
QEAgLTE0NzgsMjYgKzE0NzgsMjYgQEAgc3RhdGljIHZvaWQgcGNpX2FkZF9kbV9kb25lKGxpYnhs
X19lZ2MgKmVnYywNCj4+ICAgICAgZmNsb3NlKGYpOw0KPj4gICAgICBpZiAoIXBjaV9zdXBwX2xl
Z2FjeV9pcnEoKSkNCj4+ICAgICAgICAgIGdvdG8gb3V0X25vX2lycTsNCj4+IC0gICAgc3lzZnNf
cGF0aCA9IEdDU1BSSU5URihTWVNGU19QQ0lfREVWIi8iUENJX0JERiIvaXJxIiwgcGNpLT5kb21h
aW4sDQo+PiArICAgIHN5c2ZzX3BhdGggPSBHQ1NQUklOVEYoU1lTRlNfUENJX0RFViIvIlBDSV9C
REYiL2dzaSIsIHBjaS0+ZG9tYWluLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGNpLT5idXMsIHBjaS0+ZGV2LCBwY2ktPmZ1bmMpOw0KPiANCj4gWW91IG5lZWQgdG8ga2Vl
cCB0aGUgZmFsbGJhY2sgbWVjaGFuaXNtIG9mIHJlYWRpbmcgdGhlIGlycSBub2RlLCBvcg0KPiBl
bHNlIHhsIHdvdWxkIHN0b3Agd29ya2luZyBvbiBhbnkga2VybmVsIHRoYXQgZG9lc24ndCBleHBv
c2UgdGhpcw0KPiBzeXNmcyBub2RlLCB5b3Ugd291bGQgYnJlYWsgcGFzc3Rocm91Z2ggb24gYWxs
IGN1cnJlbnQgTGludXggdmVyc2lvbnMuDQpZZXMsIHlvdSBhcmUgcmlnaHQuIElmIHRoZXJlIGlz
IG5vIGdzaSBzeXNmcywgd2lsbCBzdGlsbCB1c2UgaXJxLCBpbiBuZXh0IHZlcnNpb24uIFRoYW5r
cy4NCg0KPiANCj4gVGhhbmtzLCBSb2dlci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4g
Q2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 08:09:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 08:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652690.1018702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCxp9-0006PE-F6; Tue, 12 Dec 2023 08:09:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652690.1018702; Tue, 12 Dec 2023 08:09:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCxp9-0006P7-CQ; Tue, 12 Dec 2023 08:09:03 +0000
Received: by outflank-mailman (input) for mailman id 652690;
 Tue, 12 Dec 2023 08: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=IzYH=HX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCxp8-0006P1-Kz
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 08:09:02 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3c1b4aa-98c5-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 09:09:00 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c2a444311so52324015e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 00:08:58 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 n10-20020a05600c500a00b004094e565e71sm15611143wmr.23.2023.12.12.00.08.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 00:08:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3c1b4aa-98c5-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702368538; x=1702973338; 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=ZZ9ea9ok6ZP/daUsmJ5Nh5VRT1Vhh0QOAkcU3YgmvrE=;
        b=QiOE3uZaJCFu4pfr21wSWKF2VskHlKneAlM8uGIxWO+6fdatlJU1QUnoTQFJASwsKa
         EfPDnF6VLKFIJ1r5DfaNbuy988Pv7Nia8i4mTPMK8VXXlzRccB9CUl9wRba50hsWO5MN
         z6EhgW2xkf2nbWzGCULBxaAWk/IYmq3ksnSOY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702368538; x=1702973338;
        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=ZZ9ea9ok6ZP/daUsmJ5Nh5VRT1Vhh0QOAkcU3YgmvrE=;
        b=MboOo2I31vgiFE8z5kX6v7rnhzl+KWPIKMxHfeutscSvtyCEJlw1gUNUT/EFpLUhDh
         f4AYpOfpKe1SexWBBD+SpuoNS+F9wBR2NLRX+rvQeTVZdUG9XiV0mzapmfikotguL54X
         BrkoY1kx/IYRrp9mW4acCoIW7Q/wDV//6qMsxK+5dQFSWi8kwZoJXWrbdZ1iTAme9g6F
         9tb/G4s2EGK08jIsB3rBoJz7kVvnqk0UTJlYgVDXN2uadrO+OWurM/wpW6aFRrFDXydi
         ROcdPYMIuOGSGL1lRxk6TH27JFI+BP7lMLYCfp5vVjPTsHPgN9L9xvNr0FrrhUTeoB8a
         em9A==
X-Gm-Message-State: AOJu0YxNdwWM/OgYhUp1rKFE7S0hVofHE2ieWDNsfLdt+Bcmw3ys6LHP
	xTu4hT5PxnGhC/5BrzD2yT3HWg==
X-Google-Smtp-Source: AGHT+IFiLEbU7MXeHb/3JUtaP7dLoEfB9T02V0TbySRKV6sYpsT8WjQ7hIYcImSy3eOwCQDp6dIJng==
X-Received: by 2002:a05:600c:28e:b0:40c:53d4:391 with SMTP id 14-20020a05600c028e00b0040c53d40391mr34795wmk.24.1702368538240;
        Tue, 12 Dec 2023 00:08:58 -0800 (PST)
Date: Tue, 12 Dec 2023 09:08:57 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-acpi@vger.kernel.org, xen-devel@lists.xenproject.org,
	Alex Deucher <Alexander.Deucher@amd.com>,
	Christian Koenig <Christian.Koenig@amd.com>,
	Stewart Hildebrand <Stewart.Hildebrand@amd.com>,
	Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Honglei Huang <Honglei1.Huang@amd.com>,
	Julia Zhang <Julia.Zhang@amd.com>, Huang Rui <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 1/3] xen/pci: Add xen_reset_device_state
 function
Message-ID: <ZXgVGWLZEnLt0Pqn@macbook>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-2-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20231210161519.1550860-2-Jiqian.Chen@amd.com>

On Mon, Dec 11, 2023 at 12:15:17AM +0800, Jiqian Chen wrote:
> When device on dom0 side has been reset, the vpci on Xen side
> won't get notification, so that the cached state in vpci is
> all out of date with the real device state.
> To solve that problem, add a new function to clear all vpci
> device state when device is reset on dom0 side.
> 
> And call that function in pcistub_init_device. Because when
> using "pci-assignable-add" to assign a passthrough device in
> Xen, it will reset passthrough device and the vpci state will
> out of date, and then device will fail to restore bar state.
> 
> Co-developed-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  drivers/xen/pci.c                  | 12 ++++++++++++
>  drivers/xen/xen-pciback/pci_stub.c |  4 ++++
>  include/xen/interface/physdev.h    |  8 ++++++++
>  include/xen/pci.h                  |  6 ++++++
>  4 files changed, 30 insertions(+)
> 
> diff --git a/drivers/xen/pci.c b/drivers/xen/pci.c
> index 72d4e3f193af..e9b30bc09139 100644
> --- a/drivers/xen/pci.c
> +++ b/drivers/xen/pci.c
> @@ -177,6 +177,18 @@ static int xen_remove_device(struct device *dev)
>  	return r;
>  }
>  
> +int xen_reset_device_state(const struct pci_dev *dev)
> +{
> +	struct physdev_pci_device device = {
> +		.seg = pci_domain_nr(dev->bus),
> +		.bus = dev->bus->number,
> +		.devfn = dev->devfn
> +	};
> +
> +	return HYPERVISOR_physdev_op(PHYSDEVOP_pci_device_state_reset, &device);
> +}
> +EXPORT_SYMBOL_GPL(xen_reset_device_state);
> +
>  static int xen_pci_notifier(struct notifier_block *nb,
>  			    unsigned long action, void *data)
>  {
> diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
> index e34b623e4b41..24f599eaec14 100644
> --- a/drivers/xen/xen-pciback/pci_stub.c
> +++ b/drivers/xen/xen-pciback/pci_stub.c
> @@ -421,6 +421,10 @@ static int pcistub_init_device(struct pci_dev *dev)
>  	else {
>  		dev_dbg(&dev->dev, "resetting (FLR, D3, etc) the device\n");
>  		__pci_reset_function_locked(dev);
> +		if (!xen_pv_domain())
> +			err = xen_reset_device_state(dev);
> +		if (err)
> +			goto config_release;

I think you are missing other instances where
__pci_reset_function_locked() is called in pci_stub.c?  See
pcistub_device_release() and pcistub_put_pci_dev().

Overall I'm not sure why the hypercall wrapper needs to live in
xen/pci.c.  I think it would be better if you could create a static
wrapper in pci_stub.c that does the call to
__pci_reset_function_locked() plus PHYSDEVOP_pci_device_state_reset.
That would make it less likely that new callers of
__pci_reset_function_locked() are introduced without noticing the need
to also call PHYSDEVOP_pci_device_state_reset.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 08:12:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 08:12:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652696.1018713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCxrz-0008Ct-TX; Tue, 12 Dec 2023 08:11:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652696.1018713; Tue, 12 Dec 2023 08:11:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCxrz-0008Cm-Q8; Tue, 12 Dec 2023 08:11:59 +0000
Received: by outflank-mailman (input) for mailman id 652696;
 Tue, 12 Dec 2023 08:11:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCxry-0008Cg-EY
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 08:11:58 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d7aca0f-98c6-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 09:11:56 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c2c65e6aaso54957615e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 00:11:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 t11-20020a05600c450b00b0040c495b1c90sm5211289wmo.11.2023.12.12.00.11.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 00:11:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d7aca0f-98c6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702368716; x=1702973516; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=nUMzQdFlab6jT4sjQ9zoV8iRr7QqwOZwgU4qiSRltRw=;
        b=P8bcbUTme1p4M7PHw7e7+0sOjCBJ8oViO/h4GCwYqHvclVFE3mH8xZOkk04RoO9/Wo
         X9muoFvS5Ein53dOEXfkizQ4G2+KQbwvsDvZyEoM9cweHZqGNlntRykGdCU6dDthy6cO
         7hOuds0zeDLV/qnNIv4tCuAqznP2biKVSsFoFak6KfeV+BTNvfDvDUK5Pcf6YdNbEmTq
         /hbwtnzVtDAcMCeahw2So3w70t381pwGvgiQIH+xXujlmlghq/234fvwH9oMqJEqorM6
         kqhAvuUBsCytwyOgvrmMBwQw3nJ5W58DqzH4BGz9SDNCvAPa9Sd7uvbc3RwTwE9x2J9Y
         JP+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702368716; x=1702973516;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=nUMzQdFlab6jT4sjQ9zoV8iRr7QqwOZwgU4qiSRltRw=;
        b=mBUzVK2bnZtb/mWpt0jIsng8Uqt3uUrVi7TDSjgHyS0/vMkNbWG6HasaYs+k5/082w
         2C3tzkb3HK30Eqy70HZn/4KfuvAxWOExRZURFB3vJsgJhrcs86F6QT5DplUa5E+djh39
         zYyzrd3bVNpJvTA/l26d1A/zfakjjIch8HX8gM0yP3ZZqGvjavI7fPj/yZtsVxHyL/H7
         594635sPY8vmC8h5qnTUc0SPnpzVMZdEF5eg4TQfT+HMI6Udf6jaLNmmZHs6HU+nY1fR
         swL/B94PP616c649YFjU3hOb7aSVJoaGtjVKmt/ugDtCtRFBcOMg7GYsugxqU8KZezBw
         NNlA==
X-Gm-Message-State: AOJu0Yxd61K+xM9otejzUMGoHmfVVgptiQevWJWTgt0IizVL9Hg1EoN3
	IJwRAzJDJiCkd6CdBAZW4W3X
X-Google-Smtp-Source: AGHT+IFuOyJl7raMUETt+aF5CUOfrp+mNDe0FJnr45/1CITADHpXXyRUbf/HcXTWQwTC8RQIaKc24g==
X-Received: by 2002:a05:600c:2146:b0:40c:2b26:970f with SMTP id v6-20020a05600c214600b0040c2b26970fmr2835412wml.198.1702368715722;
        Tue, 12 Dec 2023 00:11:55 -0800 (PST)
Message-ID: <653443ab-eaa5-413e-b3eb-50740af8fc47@suse.com>
Date: Tue, 12 Dec 2023 09:11:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/7] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
Content-Language: en-US
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1701453087.git.oleksii.kurochko@gmail.com>
 <cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com>
 <050a57f5-7c04-4b4a-848d-fd2f0993a9a7@suse.com>
 <74222b30ec0ab589b18f97032bc8074023c89e2b.camel@gmail.com>
 <18660670-fd9d-4269-b00a-dd4258339a43@suse.com>
 <5af2573e588f76b8df3423fd13a1b4275cc18f33.camel@gmail.com>
 <abb8c26b-4c8c-4fcf-a8c8-4a15a5067fa0@suse.com>
 <a53707edfac7d8d959cfc858953a1d64c3149596.camel@gmail.com>
 <ed29735f-2d2e-4b29-b5d1-efa78480acd6@suse.com>
 <bad7c686af22aef9124891f5610976687452e784.camel@gmail.com>
 <6592eb30-a8eb-423b-81ae-89acccc4e751@suse.com>
 <54f05f88178a152b4f3b4ecb52933bc75d3a37a4.camel@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: <54f05f88178a152b4f3b4ecb52933bc75d3a37a4.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.12.2023 20:40, Oleksii wrote:
> On Mon, 2023-12-11 at 18:49 +0100, Jan Beulich wrote:
>> On 11.12.2023 18:37, Oleksii wrote:
>>> On Mon, 2023-12-11 at 17:02 +0100, Jan Beulich wrote:
>>>> Â In which case the approach taken here may be fine, but
>>>> it still wouldn't be what I suggested. It may then be Stefano or
>>>> Andrew
>>>> who you could consider for such a tag.
>>> I'm a bit confused again. In this case, it seems that both you
>>> andStefano or Andrew should be on the suggested list.
>>> You proposed the approach with "#ifdef CONFIG_GRANT_TABLE #include
>>> <asm/grant_table.h> #endif".
>>
>> But you're not meaning to use that approach anymore, are you?
> No, I am going to use it because there is still a need to use #ifdef
> for #include <asm/grant_table.h> in <xen/grant_table.h> to avoid
> providing a useless empty asm/grant_table.h header if
> CONFIG_GRANT_TABLE isn't supported.

Then _there_ keeping the tag is okay of course. But the CI change (or
whatever is come of it) will need treating in whichever way it is going
to move.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 08:38:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 08:38:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652733.1018739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyHj-0003vb-CX; Tue, 12 Dec 2023 08:38:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652733.1018739; Tue, 12 Dec 2023 08: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 1rCyHj-0003vU-84; Tue, 12 Dec 2023 08:38:35 +0000
Received: by outflank-mailman (input) for mailman id 652733;
 Tue, 12 Dec 2023 08:38: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=IzYH=HX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCyHh-0003vO-EY
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 08:38:33 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3ce37a2-98c9-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 09:38:31 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c256ffdbcso55939545e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 00:38:30 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 l12-20020a05600c4f0c00b0040b4b2a15ebsm15737945wmq.28.2023.12.12.00.38.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 00:38:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3ce37a2-98c9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702370310; x=1702975110; 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=hgWOSAvFUgceCheTd9cfK2sSRdSk4/oBkTdTk+cD/tk=;
        b=MgSbVjDJyp03G6Mauv2P/ncgq3BmiK0WYgs/LdE6CpCsHyu7IOGvo/P/LcFwbCd+XE
         /OB38AGUxr/f70FMOQQeH+cxGxChe6hMhQMe4X4qdeqDMvYF9xf1yh5h7qNCdQOQSMxd
         XCDf1nLVBmSwviE2+SjyMQ9fR49fK5CKeKdnQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702370310; x=1702975110;
        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=hgWOSAvFUgceCheTd9cfK2sSRdSk4/oBkTdTk+cD/tk=;
        b=cWmTdIrLLRVGxoopINIdjigwjO2wJlJJwmR1mQvdQUWmw7FL2vFtHS8M5wqqTeYAZq
         L6YiXgCtCttN24JBq/Lgbd22YHvyylOeHp8k3XWxXVIVZUO38p0ucsT/644qjroJ86SB
         WwUOSoXQNVS9NS3g1AubUhrO2BPH5Qs0IujOgjaDeb2NbOe0WKZME4j0OZ8BewPIaxnS
         xoga/UCTRMxF1jZcCsKg18nbd99BrSm+r5I+lmB3aWCelQXa/GzLYDLp6U2F1DXHcnZr
         4WHrzIyOrcptjJNgryOT59nfc0Jv7sv8TihVrHKe28oh1BQrf7QiF4FlLVu5GhSDk0Io
         YH8Q==
X-Gm-Message-State: AOJu0YxwMsPnpHJ4HSTWcEcBJ0c3dEtWdWu/ftUIzq5KFRQ4WKzXZxbb
	nom8XM6zjjNKiRFOt/TMijhvTA==
X-Google-Smtp-Source: AGHT+IEMHTK10uBTP16eEbfUBLFaa8mGa9GvSxjF6yio0dday5yCnZdXvxa5sizHN3f7Hw8Cc2tJMg==
X-Received: by 2002:a05:600c:16d4:b0:40c:2c1b:27ab with SMTP id l20-20020a05600c16d400b0040c2c1b27abmr2421067wmn.155.1702370309895;
        Tue, 12 Dec 2023 00:38:29 -0800 (PST)
Date: Tue, 12 Dec 2023 09:38:28 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Subject: Re: [OSSTEST PATCH 2/3] create_build_jobs: Enable X86_GENERIC for
 i386 kernel pvops jobs.
Message-ID: <ZXgcBIAkmWrLvo-h@macbook>
References: <20231208160226.14739-1-anthony.perard@citrix.com>
 <20231208160226.14739-3-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20231208160226.14739-3-anthony.perard@citrix.com>

On Fri, Dec 08, 2023 at 04:02:25PM +0000, Anthony PERARD wrote:
> This is following a failure to build "arch/x86/xen/enlighten.c" in
> build-i386-pvops jobs with linux 968f35f4ab1c ("Merge tag
> 'v6.7-rc3-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6")
> in linux-linus branch.

Could we expand a bit on why CONFIG_X86_GENERIC is required?  It would
seem to me that option should have been selected by default already?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 08:48:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 08:48:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652739.1018749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyRf-00062b-8F; Tue, 12 Dec 2023 08:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652739.1018749; Tue, 12 Dec 2023 08: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 1rCyRf-00062U-5g; Tue, 12 Dec 2023 08:48:51 +0000
Received: by outflank-mailman (input) for mailman id 652739;
 Tue, 12 Dec 2023 08: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCyRd-00062M-Gg
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 08:48:49 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4407b1ff-98cb-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 09:48:48 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id B84521FCFF;
 Tue, 12 Dec 2023 08:48: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 97070136C7;
 Tue, 12 Dec 2023 08:48:47 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 81hBI28eeGVHeAAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 08:48: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: 4407b1ff-98cb-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702370927; 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=pAQ9YKPOZAbLM5C+z5b8++X+tNlXyvSADKf62xHctA4=;
	b=Nqz0r+NyC5tREUhkMruL01SLB3KVYOtfx0LHNCSxVkSdn9GY0tGVt+yDa97ml1+hHP3QIQ
	NieFnsX/BH3LGPz/ctzFc+BKp5VSBZ0zuitpGuE666vpdtR3+a5ZtEJuq/Vn2118fOtYbL
	Ic2z/R5/kxbGzAiTDngCLd9VsIPjCwc=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702370927; 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=pAQ9YKPOZAbLM5C+z5b8++X+tNlXyvSADKf62xHctA4=;
	b=Nqz0r+NyC5tREUhkMruL01SLB3KVYOtfx0LHNCSxVkSdn9GY0tGVt+yDa97ml1+hHP3QIQ
	NieFnsX/BH3LGPz/ctzFc+BKp5VSBZ0zuitpGuE666vpdtR3+a5ZtEJuq/Vn2118fOtYbL
	Ic2z/R5/kxbGzAiTDngCLd9VsIPjCwc=
Message-ID: <6a175474-e6d4-4410-bde1-47c9895baeac@suse.com>
Date: Tue, 12 Dec 2023 09:48:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [OSSTEST PATCH 2/3] create_build_jobs: Enable X86_GENERIC for
 i386 kernel pvops jobs.
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org
References: <20231208160226.14739-1-anthony.perard@citrix.com>
 <20231208160226.14739-3-anthony.perard@citrix.com> <ZXgcBIAkmWrLvo-h@macbook>
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: <ZXgcBIAkmWrLvo-h@macbook>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Nk4DuQqhKTAt0P3c3NFpI1rV"
X-Spam-Level: ***************
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spam-Level: 
X-Rspamd-Server: rspamd1
X-Rspamd-Queue-Id: B84521FCFF
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=Nqz0r+Ny;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Result: default: False [-4.74 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.04)[58.41%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[3];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[];
	 RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]
X-Spam-Score: -4.74

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Nk4DuQqhKTAt0P3c3NFpI1rV
Content-Type: multipart/mixed; boundary="------------34IvQGXPlaGp0zbG9IWolAKw";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org
Message-ID: <6a175474-e6d4-4410-bde1-47c9895baeac@suse.com>
Subject: Re: [OSSTEST PATCH 2/3] create_build_jobs: Enable X86_GENERIC for
 i386 kernel pvops jobs.
References: <20231208160226.14739-1-anthony.perard@citrix.com>
 <20231208160226.14739-3-anthony.perard@citrix.com> <ZXgcBIAkmWrLvo-h@macbook>
In-Reply-To: <ZXgcBIAkmWrLvo-h@macbook>

--------------34IvQGXPlaGp0zbG9IWolAKw
Content-Type: multipart/mixed; boundary="------------Kxr0uniy7c5DT6j4QIlMboib"

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

T24gMTIuMTIuMjMgMDk6MzgsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+IE9uIEZyaSwg
RGVjIDA4LCAyMDIzIGF0IDA0OjAyOjI1UE0gKzAwMDAsIEFudGhvbnkgUEVSQVJEIHdyb3Rl
Og0KPj4gVGhpcyBpcyBmb2xsb3dpbmcgYSBmYWlsdXJlIHRvIGJ1aWxkICJhcmNoL3g4Ni94
ZW4vZW5saWdodGVuLmMiIGluDQo+PiBidWlsZC1pMzg2LXB2b3BzIGpvYnMgd2l0aCBsaW51
eCA5NjhmMzVmNGFiMWMgKCJNZXJnZSB0YWcNCj4+ICd2Ni43LXJjMy1zbWIzLWNsaWVudC1m
aXhlcycgb2YgZ2l0Oi8vZ2l0LnNhbWJhLm9yZy9zZnJlbmNoL2NpZnMtMi42IikNCj4+IGlu
IGxpbnV4LWxpbnVzIGJyYW5jaC4NCj4gDQo+IENvdWxkIHdlIGV4cGFuZCBhIGJpdCBvbiB3
aHkgQ09ORklHX1g4Nl9HRU5FUklDIGlzIHJlcXVpcmVkPyAgSXQgd291bGQNCj4gc2VlbSB0
byBtZSB0aGF0IG9wdGlvbiBzaG91bGQgaGF2ZSBiZWVuIHNlbGVjdGVkIGJ5IGRlZmF1bHQg
YWxyZWFkeT8NCg0KTm8sIHRoZSBrZXJuZWwncyBkZWZhdWx0IGZvciAzMi1iaXQgeDg2IGJ1
aWxkcyBpcyBzdGlsbCB1c2luZyB0aGUgTTY4Ni4NCg0KSSBndWVzcyB0aGlzIGlzIGZvciBo
aXN0b3JpY2FsIHJlYXNvbnMuDQoNCkJUVywgdGhlcmUgaXMgYSBrZXJuZWwgcGF0Y2ggcGVu
ZGluZyBsZXR0aW5nIENPTkZJR19YRU4gZGVwZW5kIG9uIG1vcmUNCnJlY2VudCBjcHUgdHlw
ZXMgZm9yIDMyLWJpdCBidWlsZHMuIEknbSBwbGFubmluZyB0byB0YWtlIHRoYXQgcGF0Y2gN
CmFmdGVyIE9TU3Rlc3QgaGFzIGJlZW4gY2hhbmdlZCB0byBubyBsb25nZXIgdXNlIE02ODYu
DQoNCg0KSnVlcmdlbg0KDQo=
--------------Kxr0uniy7c5DT6j4QIlMboib
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-----

--------------Kxr0uniy7c5DT6j4QIlMboib--

--------------34IvQGXPlaGp0zbG9IWolAKw--

--------------Nk4DuQqhKTAt0P3c3NFpI1rV
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/Ey8FAmV4Hm8FAwAAAAAACgkQsN6d1ii/Ey/3
1wgAlm+GJULS+tUorG9T2y3R0NQTYd79EKx+CcYOf9Ml4vSRukOqe8xoHunrqDUMZpFuOYyXIi3y
QuNWcp9A2khLG/02Iz7gXR4mxb1IXNKg2evWCUXFrX4otNYHisS3KhSGIOyzjfbqFGfS18BH/s9v
ArN0UMznseASygxxmk+CZwRs3XqyLmeP9FoDipQ08Fp85JqLeAp5sUttdYllLeE6TU//ZoZOwI6l
kpU0QImMK/XPo1E8XU+lxWX3+06qQgmAAhK+D4I9TS4PjWCcCyKT/qD80LVH0sIwVI8NNQTprCQb
jVvSad7EOEBpdS2jVuTnLUTMi6lpii/DQa+8yslvlw==
=rRDG
-----END PGP SIGNATURE-----

--------------Nk4DuQqhKTAt0P3c3NFpI1rV--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 08:49:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 08:49:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652741.1018759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyS6-0006RQ-Hs; Tue, 12 Dec 2023 08:49:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652741.1018759; Tue, 12 Dec 2023 08: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 1rCyS6-0006RJ-FJ; Tue, 12 Dec 2023 08:49:18 +0000
Received: by outflank-mailman (input) for mailman id 652741;
 Tue, 12 Dec 2023 08:49:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IzYH=HX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCyS5-0006Qw-33
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 08:49:17 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53d82d26-98cb-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 09:49:15 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-336221efdceso1451515f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 00:49:15 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 v13-20020a5d590d000000b003363469490asm503631wrd.111.2023.12.12.00.49.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 00:49:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53d82d26-98cb-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702370954; x=1702975754; 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=6uZzm+Qo9kyEz193letIHfqz7iKse8Vcx14IHv462OI=;
        b=abIqZx/h31gc8n4pZDGETQdDrDGm14bNuwTUjelF8acq3qrFfrxC1BwHZe+pMY/1gD
         cXMnaG27zYN7WhXhY5RyOpj9i12kNzmK8wL/UXqDcNPB6AYc0aocvNfeHUBPtirCq9zH
         2aVsD0FPZbGZ8qDrkUzRdL9RWg6yJ7pMFYfSA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702370954; x=1702975754;
        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=6uZzm+Qo9kyEz193letIHfqz7iKse8Vcx14IHv462OI=;
        b=O5BpVr7OqPpuxQZ0NqPTnwblbsXLtT1jAHHoOwzlBRSDYKU57WEbRK0zP3Hud199mu
         PfxEMomAfHoWVZAsdJtC77YgbhY5F9GNw2CFF99i3opGg59XCdqGAPmtm1EEF0W7c4fL
         EbWsNu2PD7xvLeWbKnBGKem7cPnuPVpRQAaaan+BDSpEfj7CefzgTJlVLKXjs3+b/5yF
         IBpHmbd5eJ452cBLjEZNguiDCBFaIAqlIogAvY4XvSkRPaTEuFYRuMZkL1whwAOfgQnP
         73h5vA+dvZndIHS/3I14tpkXjWsMLAYxnF12U/E8usmre3E1Ee7NZ6QWSwFM3RT/6Q6K
         0Ubw==
X-Gm-Message-State: AOJu0Yz4Cq3UdRLzvQp+xmkQ+wdM8+6Qd67KOrr7dAX/2/UNoYghHv2j
	rr0piFWu7DB6fmrAcMfo9Zf9kQ==
X-Google-Smtp-Source: AGHT+IEZFnrGwnWVMUa8WqvQ1kBpf2Ui1ZoWTnehWdJvArdWdni7kizYW7qHE4fznbzxBvAlLIdv1A==
X-Received: by 2002:a05:6000:1012:b0:333:174f:edd8 with SMTP id a18-20020a056000101200b00333174fedd8mr1089314wrx.50.1702370954354;
        Tue, 12 Dec 2023 00:49:14 -0800 (PST)
Date: Tue, 12 Dec 2023 09:49:13 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Message-ID: <ZXgeieg4E8UN0KoN@macbook>
References: <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook>
 <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXculMdLgwGaRC7i@macbook>
 <BL1PR12MB584997DDE6839F2340022976E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB584997DDE6839F2340022976E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>

On Tue, Dec 12, 2023 at 06:16:43AM +0000, Chen, Jiqian wrote:
> On 2023/12/11 23:45, Roger Pau MonnÃ© wrote:
> > On Wed, Dec 06, 2023 at 06:07:26AM +0000, Chen, Jiqian wrote:
> >>
> >> When PVH dom0 enable a device, it will get trigger and polarity from ACPI (see acpi_pci_irq_enable)
> >> I have a version of patch which tried that way, see below:
> >>
> >> diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
> >> index ada3868c02c2..43e1bda9f946 100644
> >> --- a/arch/x86/xen/enlighten_pvh.c
> >> +++ b/arch/x86/xen/enlighten_pvh.c
> >> @@ -1,6 +1,7 @@
> >>  // SPDX-License-Identifier: GPL-2.0
> >>  #include <linux/acpi.h>
> >>  #include <linux/export.h>
> >> +#include <linux/pci.h>
> >>
> >>  #include <xen/hvc-console.h>
> >>
> >> @@ -25,6 +26,127 @@
> >>  bool __ro_after_init xen_pvh;
> >>  EXPORT_SYMBOL_GPL(xen_pvh);
> >>
> >> +typedef struct gsi_info {
> >> +       int gsi;
> >> +       int trigger;
> >> +       int polarity;
> >> +       int pirq;
> >> +} gsi_info_t;
> >> +
> >> +struct acpi_prt_entry {
> >> +       struct acpi_pci_id      id;
> >> +       u8                      pin;
> >> +       acpi_handle             link;
> >> +       u32                     index;          /* GSI, or link _CRS index */
> >> +};
> >> +
> >> +static int xen_pvh_get_gsi_info(struct pci_dev *dev,
> >> +                                                               gsi_info_t *gsi_info)
> >> +{
> >> +       int gsi;
> >> +       u8 pin = 0;
> >> +       struct acpi_prt_entry *entry;
> >> +       int trigger = ACPI_LEVEL_SENSITIVE;
> >> +       int polarity = acpi_irq_model == ACPI_IRQ_MODEL_GIC ?
> >> +                                     ACPI_ACTIVE_HIGH : ACPI_ACTIVE_LOW;
> >> +
> >> +       if (dev)
> >> +               pin = dev->pin;
> >> +       if (!pin) {
> >> +               xen_raw_printk("No interrupt pin configured\n");
> >> +               return -EINVAL;
> >> +       }
> >> +
> >> +       entry = acpi_pci_irq_lookup(dev, pin);
> >> +       if (entry) {
> >> +               if (entry->link)
> >> +                       gsi = acpi_pci_link_allocate_irq(entry->link,
> >> +                                                        entry->index,
> >> +                                                        &trigger, &polarity,
> >> +                                                        NULL);
> >> +               else
> >> +                       gsi = entry->index;
> >> +       } else
> >> +               return -EINVAL;
> >> +
> >> +       gsi_info->gsi = gsi;
> >> +       gsi_info->trigger = trigger;
> >> +       gsi_info->polarity = polarity;
> >> +
> >> +       return 0;
> >> +}
> >> +
> >> +static int xen_pvh_map_pirq(gsi_info_t *gsi_info)
> >> +{
> >> +       struct physdev_map_pirq map_irq;
> >> +       int ret;
> >> +
> >> +       map_irq.domid = DOMID_SELF;
> >> +       map_irq.type = MAP_PIRQ_TYPE_GSI;
> >> +       map_irq.index = gsi_info->gsi;
> >> +       map_irq.pirq = gsi_info->gsi;
> >> +
> >> +       ret = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
> >> +       gsi_info->pirq = map_irq.pirq;
> >> +
> >> +       return ret;
> >> +}
> >> +
> >> +static int xen_pvh_unmap_pirq(gsi_info_t *gsi_info)
> >> +{
> >> +       struct physdev_unmap_pirq unmap_irq;
> >> +
> >> +       unmap_irq.domid = DOMID_SELF;
> >> +       unmap_irq.pirq = gsi_info->pirq;
> >> +
> >> +       return HYPERVISOR_physdev_op(PHYSDEVOP_unmap_pirq, &unmap_irq);
> >> +}
> >> +
> >> +static int xen_pvh_setup_gsi(gsi_info_t *gsi_info)
> >> +{
> >> +       struct physdev_setup_gsi setup_gsi;
> >> +
> >> +       setup_gsi.gsi = gsi_info->gsi;
> >> +       setup_gsi.triggering = (gsi_info->trigger == ACPI_EDGE_SENSITIVE ? 0 : 1);
> >> +       setup_gsi.polarity = (gsi_info->polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
> >> +
> >> +       return HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
> >> +}
> > 
> > Hm, why not simply call pcibios_enable_device() from pciback?  What
> pcibios_enable_device had been called when using cmd "xl pci-assignable-add sbdf" from pciback. But it didn't do map_pirq and setup_gsi.
> Because pcibios_enable_device-> pcibios_enable_irq-> __acpi_register_gsi(acpi_register_gsi_ioapic PVH specific)
> > you are doing here using the hypercalls is a backdoor into what's done
> > automatically by Xen on IO-APIC accesses by a PVH dom0.
> But the gsi didn't be unmasked, and vioapic_hwdom_map_gsi is never called.
> So, I think in pciback, if we can do what vioapic_hwdom_map_gsi does.
>

I see, it does setup the IO-APIC pin but doesn't unmask it, that's
what I feared.

> > It will be much more natural for the PVH dom0 model to simply use the
> > native way to configure and unmask the IO-APIC pin, and that would
> > correctly setup the triggering/polarity and bind it to dom0 without
> > requiring the usage of any hypercalls.
> Do you still prefer that I called unmask_irq in pcistub_init_device, as this v2 patch do?
> But Thomas Gleixner think it is not suitable to export unmask_irq.

Yeah, that wasn't good.

> > 
> > Is that an issue since in that case the gsi will get mapped and bound
> > to dom0?
> Dom0 do map_pirq is to pass the check xc_domain_irq_permission()-> pirq_access_permitted(), 

Can we see about finding another way to fix this check?

One option would be granting permissions over the IRQ in
PHYSDEVOP_setup_gsi?

Otherwise we could see about modifying the logic in PHYSDEVOP_map_pirq
so that the hardware domain can map IRQs to other domains without
having it mapped to itself first?

I think the call to PHYSDEVOP_setup_gsi in pciback is fine, but I
would really like to avoid the usage of PHYSDEVOP_{,un}map_pirq on a
PVH dom0 against itself.

> > 
> > Otherwise I would prefer if the gsi is just configured from pciback
> > (PHYSDEVOP_setup_gsi) but not mapped, as allowing a PVH dom0 to map
> > interrupts using PHYSDEVOP_{,un}map_pirq to itself introduces a new
> > interface to manage interrupts that clashes with the native way that a
> > PVH dom0 uses.
> This method does map_pirq and setup_gsi only when a device is assigned to passthrough, it won't affect the other device using native way.

It's not affected because of the specific usage in Linux, but allowing
the interface to be used against itself (so to manage interrupts
from assigned to dom0) is opening a whole new way to setup interrupts,
and it's unclear to me how that will affect the current way we use to
manage interrupts on a PVH dom0.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:12:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:12:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652755.1018769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyog-0003U6-Bo; Tue, 12 Dec 2023 09:12:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652755.1018769; Tue, 12 Dec 2023 09:12:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyog-0003Tz-99; Tue, 12 Dec 2023 09:12:38 +0000
Received: by outflank-mailman (input) for mailman id 652755;
 Tue, 12 Dec 2023 09:12:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=j5yJ=HX=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCyof-0003Tt-46
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:12:37 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95c0ca2e-98ce-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:12:34 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 89A334EE0737;
 Tue, 12 Dec 2023 10:12:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95c0ca2e-98ce-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Tue, 12 Dec 2023 10:12:33 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
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>, Wei Liu
 <wl@xen.org>
Subject: Re: [XEN PATCH 2/7] x86/mm: address MISRA C:2012 Rule 2.1
In-Reply-To: <alpine.DEB.2.22.394.2312111741390.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <5913d8871ff6c4f320c521e50e550a64e58d4351.1702283415.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312111741390.1703076@ubuntu-linux-20-04-desktop>
Message-ID: <ff95c65f53ab8acfd577ec132009cd7b@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 2023-12-12 02:42, Stefano Stabellini wrote:
> On Mon, 11 Dec 2023, Nicola Vetrini wrote:
>> The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
>> is unreachable because all switch clauses end with returns.
>> However, some of them can be substituted with "break"s to allow
>> the "return 0" outside the switch to be reachable.
>> 
>> No functional changes.
> 
> This is correct but makes the code inconsistent. I would either remove
> the return 0; at the end of arch_memory_op, or do the following:
> 
> - initialize rc to 0 at the beginning: int rc = 0;
> - all switch clauses break instead of return;
> - at the end: return rc;
> 

Given the feedback on the Arm side, the first solution is likely to be 
preferred.

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:18:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652761.1018778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyu8-0004St-3H; Tue, 12 Dec 2023 09:18:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652761.1018778; Tue, 12 Dec 2023 09: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 1rCyu8-0004Sm-0M; Tue, 12 Dec 2023 09:18:16 +0000
Received: by outflank-mailman (input) for mailman id 652761;
 Tue, 12 Dec 2023 09: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=IzYH=HX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rCyu6-0004Sg-VO
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:18:14 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5fcaf3ad-98cf-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:18:12 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3332efd75c9so4878548f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 01:18:12 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 t9-20020a05600c198900b0040c490db950sm5631023wmq.47.2023.12.12.01.18.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 01:18:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5fcaf3ad-98cf-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702372692; x=1702977492; 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=9WELy4DAZTSrhx4zGGjgQkw3W/tbMhWv9d+cZpR74m0=;
        b=sR8OaL8C0bLenlUb4kg+RBX2KkxdwuEa8Qt2xvPH/DG+3yrQjIx6qn+CADolTP6PYi
         4E3ZHeergOv67VjudURLbGCvL7ChTe4wE1R5zq+jMvQs09mjoNEq3kSxkVMI6UDExhEn
         5h/L13tNVTHy8jnI8VzUo7l0pCST3WFF2zhwY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702372692; x=1702977492;
        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=9WELy4DAZTSrhx4zGGjgQkw3W/tbMhWv9d+cZpR74m0=;
        b=mYrPCgH/RKL8x5PL0uF1ecnmMqYA5zgjYe58ZEU93zDNMPN7Yo/DzZmIWkTAG5x91r
         TAY3IUzJKIEzV4kvT2D7znCXLAAaAOA1JyR7thz3NZxzbHy/hLPe86S+gIwmcV5nDqHR
         JeXD1F8WOqUdbi6DIuZaVExFitD2/1u/ZMEIxIoZ1N/Gvqgs9X66F8Yma1r2Wu4WwTa0
         BNPDgXP8nJ9GrmV0sFx/Z+908/UzvpIRRSNBzuu/uwqe8FqqbRcEm+zwg2+7M5DxhkGc
         NoOug5FDoJlOnwyFscIlNe6tIP/t130MRqA1aRm/1uFPN4ZHopi/27j4aRdDwywjmW2T
         q2FQ==
X-Gm-Message-State: AOJu0Yx9hTBAcJFdHOkUcN8K/2kiB+XNoVTn5fRrfBa/SHPN4wpU8fjU
	hAfvwi4qNnh64LXNrg1bCuuNMg==
X-Google-Smtp-Source: AGHT+IFgKgRKA6Hj8FA4QbKIfcIE89wBNkiyNGzHcW1HguHNOiTJp2Iwm2e75u6BvwbtAJwHlC1s8w==
X-Received: by 2002:a05:600c:1c1f:b0:40b:4c54:3d6d with SMTP id j31-20020a05600c1c1f00b0040b4c543d6dmr1419794wms.8.1702372692352;
        Tue, 12 Dec 2023 01:18:12 -0800 (PST)
Date: Tue, 12 Dec 2023 10:18:11 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Message-ID: <ZXglU0EtBrRNiWVp@macbook>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-4-Jiqian.Chen@amd.com>
 <ZXdNf0HWs4nAVPeF@macbook>
 <BL1PR12MB584910C2E370BBCC8A312733E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB584910C2E370BBCC8A312733E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>

On Tue, Dec 12, 2023 at 06:34:27AM +0000, Chen, Jiqian wrote:
> 
> On 2023/12/12 01:57, Roger Pau MonnÃ© wrote:
> > On Mon, Dec 11, 2023 at 12:15:19AM +0800, Jiqian Chen wrote:
> >> There is a need for some scenarios to use gsi sysfs.
> >> For example, when xen passthrough a device to dumU, it will
> >> use gsi to map pirq, but currently userspace can't get gsi
> >> number.
> >> So, add gsi sysfs for that and for other potential scenarios.
> >>
> >> Co-developed-by: Huang Rui <ray.huang@amd.com>
> >> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >> ---
> >>  drivers/acpi/pci_irq.c  |  1 +
> >>  drivers/pci/pci-sysfs.c | 11 +++++++++++
> >>  include/linux/pci.h     |  2 ++
> >>  3 files changed, 14 insertions(+)
> >>
> >> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> >> index 630fe0a34bc6..739a58755df2 100644
> >> --- a/drivers/acpi/pci_irq.c
> >> +++ b/drivers/acpi/pci_irq.c
> >> @@ -449,6 +449,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
> >>  		kfree(entry);
> >>  		return 0;
> >>  	}
> >> +	dev->gsi = gsi;
> > 
> > It would be better if the gsi if fetched without requiring calling
> > acpi_pci_irq_enable(), as the gsi doesn't require the interrupt to be
> > enabled.  The gsi is known at boot time and won't change for the
> > lifetime of the device.
> Do you have any suggest places to do this?

I'm not an expert on this, but drivers/pci/pci-sysfs.c would seem like
a better place, together with the rest of the resources.

Maybe my understanding is incorrect, but given the suggested placement
in acpi_pci_irq_enable() I think the device would need to bind the
interrupt in order for the gsi node to appear on sysfs?

Would the current approach work if the device is assigned to pciback
on the kernel command line, and thus never owned by any driver in
dom0?

> > 
> >>  
> >>  	rc = acpi_register_gsi(&dev->dev, gsi, triggering, polarity);
> >>  	if (rc < 0) {
> >> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
> >> index 2321fdfefd7d..c51df88d079e 100644
> >> --- a/drivers/pci/pci-sysfs.c
> >> +++ b/drivers/pci/pci-sysfs.c
> >> @@ -71,6 +71,16 @@ static ssize_t irq_show(struct device *dev,
> >>  }
> >>  static DEVICE_ATTR_RO(irq);
> >>  
> >> +static ssize_t gsi_show(struct device *dev,
> >> +			struct device_attribute *attr,
> >> +			char *buf)
> >> +{
> >> +	struct pci_dev *pdev = to_pci_dev(dev);
> > 
> > const
> Do you mean "const struct pci_dev *pdev = to_pci_dev(dev);" ?

Yup.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:22:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652769.1018789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyyb-0006hN-LS; Tue, 12 Dec 2023 09:22:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652769.1018789; Tue, 12 Dec 2023 09:22:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyyb-0006hG-HT; Tue, 12 Dec 2023 09:22:53 +0000
Received: by outflank-mailman (input) for mailman id 652769;
 Tue, 12 Dec 2023 09:22:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=akbp=HX=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1rCyyZ-0006h9-EV
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:22:51 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05686b90-98d0-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 10:22:50 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-9fa45e75ed9so613748666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 01:22:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 05686b90-98d0-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702372970; x=1702977770; 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=CDscdFVnuNGU2uiHAJ42BphMIFDRjjoXFRIPAkkmiYo=;
        b=ZmacomayAuLNMaqXPBFEY8tq84p8J75UooqU38UwG//MdbrMSKePC3vkrYCaH+ikla
         U63UMm9WxtOFmEW83sFLddU/VRr0HOP6VSBLUBgHRIAHZS9JAqGc5zHFssZEg1G/msfL
         ULjz5QSWj3f4vhFCxuiYkGN2jDg5hmwJis6DY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702372970; x=1702977770;
        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=CDscdFVnuNGU2uiHAJ42BphMIFDRjjoXFRIPAkkmiYo=;
        b=kqM3Te/8xgfFip3TBDARp8i2vL1tnzN8Qyez8bKoD825leNbLcHiCghQ7T3nMGUJ9V
         9bpsi2Bo7/bOW+zMwW+UI5ay8cWWHuQNkZYBefkjbuSad5TTZba1Svhpsfl2QqQQoZVM
         VXgSpojvx/I4xprUtagvrQWFohKVaDQNLkSnDfEox3mDq+dPGRk+HAdHnOYATBoDHQL8
         7/zthZFnCmJchqJismivuyGY5rAWflCJIz3HoI1zCyBxba6JRKVZdrSTotEtILNYMQKx
         FeOi4nhWvXdCHbuFz3VEkT+7m4GSIJW4qU1r8bO25uPPmWt7t+5gtTodN+xh/3ePOtEv
         GC5A==
X-Gm-Message-State: AOJu0Yz8C/T5LqXszC8qM2sdNfyQzSPhcjmcF18LM99BN+uvndSI1TWt
	KD3/P78YvZTikYg2akT4gv5JepdudXPItQZ8i3oineIwX2THoscEwqs=
X-Google-Smtp-Source: AGHT+IGiXxAtVNOpZixVaJyH0pxbs41lxzKQ5lUcxUvW015bLXyVS2AF4NIF8kjassr/UgMiDEBi7EOnOtsKS7tQYV0=
X-Received: by 2002:a17:906:d6:b0:a1f:aca1:6bc with SMTP id
 22-20020a17090600d600b00a1faca106bcmr1367334eji.100.1702372970213; Tue, 12
 Dec 2023 01:22:50 -0800 (PST)
MIME-Version: 1.0
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
 <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com> <2e5395e6214a08056f112c46fdfab3eaa6f8dd45.camel@infradead.org>
In-Reply-To: <2e5395e6214a08056f112c46fdfab3eaa6f8dd45.camel@infradead.org>
From: Kelly Choi <kelly.choi@cloud.com>
Date: Tue, 12 Dec 2023 09:22:14 +0000
Message-ID: <CAO-mL=y3BXj7wSrgqQCoDrv_=8+xVgWxJ3v+XVqcyPveoOb6Wg@mail.gmail.com>
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
To: David Woodhouse <dwmw2@infradead.org>
Cc: George Dunlap <george.dunlap@cloud.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	xen-devel@lists.xenproject.org, committers@xenproject.org, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: multipart/alternative; boundary="0000000000002a5141060c4c98c1"

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

Hi David,

I appreciate your concerns, and I agree that the community like any other
open source project has room for improvement.
It's great to hear that you want to contribute and we're trying to make
this easier for all within the project. As such, we are in the process of
setting up a TAB to help address these concerns and minimise bikeshedding
where possible. I hope that once we have a full TAB, problems such as these
will be quickly resolved so that everyone can move forward. Please rest
assured that this is a top priority but will take some time to set up, as
with any other major change.

I will be speaking to the conduct team this week to fast-track this
process, and as soon as I have details to share I will let everyone know.
It's important to note that we are continuously making improvements to help
Xen become healthy, such as refreshing governance policies and implementing
informal voting procedures. These are just a snippet of a few initiatives
being run in the community and I would like to ask that you give the
community a chance to show the incremental progress we are making.

Many thanks,
Kelly Choi

Community Manager
Xen Project


On Mon, Dec 11, 2023 at 5:12=E2=80=AFPM David Woodhouse <dwmw2@infradead.or=
g> wrote:

> On Fri, 2023-12-01 at 10:27 +0000, George Dunlap wrote:
> >
> > FWIW I think a "five-point survey" would probably have been somewhat
> better:
> >
> > Regarding the review insisting that the word "broken" be removed from
> > the updated documentation to the old hypercall:
>
> (=E2=9C=94) I think this sort of enforcement is unreasonable and is harmi=
ng the
> community
>
> Honestly, this latest example just epitomises the reason I've dedicated
> the last two years of my life to hosting Xen guests on something
> *other* than Xen itself.
>
> I *want* to contribute, to help make Xen better. We have code we'd love
> to give back. I'd love to see Xen upstream supporting live update and
> guest transparent live migration (oops, even that term got gratuitously
> bikeshedded, didn't it?)
>
> But I cannot, and will not, subject my engineers to this.
>
> I've even got long-time Xen contributors on my team saying that they're
> done with it. I certainly can't ask junior engineers to operate in this
> environment.
>
> I don't say this to be combative. I genuinely want the Xen community to
> improve and to become as welcoming and productive as it can be.
>
> Perhaps we do need a TAB to help keep things working smoothly, and help
> stamp out the problematic behaviour? This isn't healthy.
>

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

<div dir=3D"ltr">Hi David,<div><br></div><div>I appreciate your concerns, a=
nd I agree that the community like=C2=A0any other open source project has r=
oom for=C2=A0improvement.=C2=A0</div><div>It&#39;s great to hear that you w=
ant to contribute and we&#39;re trying to make this easier for all within t=
he project. As such, we are in the process of setting up a TAB to help addr=
ess these concerns and minimise bikeshedding where possible. I hope that on=
ce we have a full TAB, problems such as these will be quickly resolved so t=
hat everyone can move forward. Please rest assured that this is a top prior=
ity but will take some time to set up,=C2=A0as with any other major change.=
=C2=A0</div><div><br></div><div>I will be speaking to the conduct team this=
 week to fast-track this process, and as soon as I have details to share I =
will let everyone know.=C2=A0</div><div>It&#39;s important to note that we =
are continuously making improvements to help Xen become healthy, such as re=
freshing governance policies and implementing informal voting procedures. T=
hese are just a snippet of a few initiatives being run in the community and=
 I would like to ask that you=C2=A0give the community a chance to show the =
incremental progress we are making.=C2=A0=C2=A0</div><div><br></div><div><d=
iv><div dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signa=
ture"><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><d=
iv 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 Mon, Dec 11, 2023 at 5:12=E2=80=AFPM David Woodhou=
se &lt;<a href=3D"mailto:dwmw2@infradead.org">dwmw2@infradead.org</a>&gt; w=
rote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0p=
x 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, 20=
23-12-01 at 10:27 +0000, George Dunlap wrote:<br>
&gt; <br>
&gt; FWIW I think a &quot;five-point survey&quot; would probably have been =
somewhat better:<br>
&gt; <br>
&gt; Regarding the review insisting that the word &quot;broken&quot; be rem=
oved from<br>
&gt; the updated documentation to the old hypercall:<br>
<br>
(=E2=9C=94) I think this sort of enforcement is unreasonable and is harming=
 the<br>
community<br>
<br>
Honestly, this latest example just epitomises the reason I&#39;ve dedicated=
<br>
the last two years of my life to hosting Xen guests on something<br>
*other* than Xen itself.<br>
<br>
I *want* to contribute, to help make Xen better. We have code we&#39;d love=
<br>
to give back. I&#39;d love to see Xen upstream supporting live update and<b=
r>
guest transparent live migration (oops, even that term got gratuitously<br>
bikeshedded, didn&#39;t it?)<br>
<br>
But I cannot, and will not, subject my engineers to this.<br>
<br>
I&#39;ve even got long-time Xen contributors on my team saying that they&#3=
9;re<br>
done with it. I certainly can&#39;t ask junior engineers to operate in this=
<br>
environment.<br>
<br>
I don&#39;t say this to be combative. I genuinely want the Xen community to=
<br>
improve and to become as welcoming and productive as it can be.<br>
<br>
Perhaps we do need a TAB to help keep things working smoothly, and help<br>
stamp out the problematic behaviour? This isn&#39;t healthy.<br>
</blockquote></div>

--0000000000002a5141060c4c98c1--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:23:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652771.1018799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyzb-0007EY-07; Tue, 12 Dec 2023 09:23:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652771.1018799; Tue, 12 Dec 2023 09:23:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCyza-0007ER-RL; Tue, 12 Dec 2023 09:23:54 +0000
Received: by outflank-mailman (input) for mailman id 652771;
 Tue, 12 Dec 2023 09:23: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 1rCyza-0007EL-A4
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:23: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 1rCyzZ-0002ia-LU; Tue, 12 Dec 2023 09:23:53 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCyzZ-0008Ik-Eb; Tue, 12 Dec 2023 09:23:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=TB5yjhHPKMvliFzy0ZYrxRezpvoAmMnx8oPcMzhpCCQ=; b=J7Wdk9RSaJ3qNdKouHQIaTJYnA
	JgV/DrD02+gCwIXz9ZPbEY7Ip9F8DASVal6pzYfymrndgGGkKhE9Ld38ZYSlS4aixbg7GzyrWQv4n
	zm1GL+jKVYFFx1y14UclcHzv/vP6ZZp0SvbZCKOCeHsnQ8jZzBOf49RjssZknOGVbx4U=;
Message-ID: <a9489f10-b126-40fa-9b1e-6a8a47dcc071@xen.org>
Date: Tue, 12 Dec 2023 09:23:51 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
 <c77560d6044700f10a8b149d539a95d1@bugseng.com>
 <3b3b62a3-0691-4ae7-9234-a8a85516c9eb@xen.org>
 <95690c3a-92c5-4e05-856b-088133b87650@xen.org>
 <920a835236ff8cf922e515c5082770b7@bugseng.com>
 <alpine.DEB.2.22.394.2312111735500.1703076@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312111735500.1703076@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 12/12/2023 01:36, Stefano Stabellini wrote:
> On Mon, 11 Dec 2023, Nicola Vetrini wrote:
>> On 2023-12-11 17:05, Julien Grall wrote:
>>> On 11/12/2023 15:59, Julien Grall wrote:
>>>> Hi Nicola,
>>>>
>>>> On 11/12/2023 14:54, Nicola Vetrini wrote:
>>>>> On 2023-12-11 13:32, Julien Grall wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On 11/12/2023 10:30, Nicola Vetrini wrote:
>>>>>>> The branches of the switch after a call to 'do_unexpected_trap'
>>>>>>> cannot return, but there is one path that may return, hence
>>>>>>> only some clauses are marked with ASSERT_UNREACHABLE().
>>>>>> I don't understand why this is necessary. The code should never be
>>>>>> reachable because do_unexpected_trap() is a noreturn().
>>>>>>
>>>>>> Cheers,
>>>>>
>>>>> It was meant as a safeguard against mistakes.
>>>>
>>>> I am confused about which mistakes you are trying to prevent. Are you
>>>> saying you are not trusting the noreturn attribute?
>>>>
>>>> And if so, are you intending to add ASSERT_UNREACHABLE() after every
>>>> single call to noreturn functions?
>>>
>>> Replying to myself. What's confusing the most is that in [1], you decided to
>>> not add the ASSERT_UNREACHABLE(). Yet the problem is similar.
>>>
>>> I'd also like to point out that by removing the "break", then if the
>>> 'noreturn' function turns out to return, then in prod build you would
>>> fallthrough to the next case. And who knows what's going to happen...
>>>
>>> All of this really adds some confusion...
>>>
>>
>> I should have checked before responding: do_trap_hyp_sync is not afaik
>> noreturn. Specifically, do_trap_brk may return. If I worked under the wrong
>> assumption, then certainly the ASSERT_UNREACHABLE-s should be dropped.
> 
> It looks like we could add noreturn to do_trap_brk. Julien what do you
> think?

You can't add noreturn to do_trap_brk(). It is used to handle WARN_ON() 
that *will* return.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:30:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652778.1018809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCz6D-0000fp-Kl; Tue, 12 Dec 2023 09:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652778.1018809; Tue, 12 Dec 2023 09:30:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCz6D-0000fi-HD; Tue, 12 Dec 2023 09:30:45 +0000
Received: by outflank-mailman (input) for mailman id 652778;
 Tue, 12 Dec 2023 09:30: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=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCz6C-0000fc-Uv
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:30:44 +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 1eb58ba2-98d1-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:30:42 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3362216835eso1409981f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 01:30:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o4-20020a5d58c4000000b0033333bee379sm10396747wrf.107.2023.12.12.01.30.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 01:30:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1eb58ba2-98d1-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702373442; x=1702978242; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=DMj9p7xwx+OVndYBPOyQxvVnn0lBuI05Tm+kOH1P30g=;
        b=dY5LEf6j5E2fwirFMr8+YjyYrofT92T+AZSes2IcGdYAVAZh1VYLZ87zJC5j4IvjM5
         acLQv8w9dS/7R1lNTd98B+v6dNwA6YYZiEE1JeQrlzz6ni2STuBZXKZ1lXXFWE/AVMI5
         zdAm2y6rj8XAuXjg4Eq6J4KiLzdbUkHChjuzWTrFiZW6RAKkHLiPAuEybOxxn3C2Zeix
         D6ahcoW8wrTMtatSWE66kpiPAFigdt9qOEZaBhlVKK9Iwahomp+Jc2ABX9K3lGWGf/C7
         cGS8fNj2QE2NlLrNdX0KickrbMl0oru8hYaf7GHTrl5HaQKmwAFcMavEJ8zWMMtZ5LuE
         +W2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702373442; x=1702978242;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=DMj9p7xwx+OVndYBPOyQxvVnn0lBuI05Tm+kOH1P30g=;
        b=gohBr1Hg0rHhLpKtxuHoH5yBjd7Dcu2w3ClDIPkeG7dT2QIZVCFHJwISOGWq61pj9t
         tl0NKxpHo8rfGYcAiCwEq4DpktR1aoSCK27bJpNFNTsJq0PRh5JDTHFC8x7t+WulqfYj
         v1ebBJ6t5ftJENzyZAc6ktJurN96IZMxx6RI8617JQUxPXvEA64ylmW1aQCmDJ5X0kUi
         PWuNyv15RazaNH4xWWoJUv+gUEPbAvTZFnNOr8yZeVdkA4qV6JygMGmIHxmzz4Od8tV3
         MvHvw2Cwxx/wccYKgIh874Dr3tvPqkCuTawa2sNPaOLRkRAcFt7LKopXk3I9IR259Gw4
         ILOA==
X-Gm-Message-State: AOJu0YyKELKsDp4XuUewrQW92zScDLENHhwcj4kpP/B7YzYWjlQwmDhG
	iASLqSejxWWne2eK9rgiSvll
X-Google-Smtp-Source: AGHT+IFuNBHLBQ7A4RYkMS5FUAC40a3HtC8bcyE5aUB9vYeC+otu3oLepXZwcpMkG+6q+C7qyVRSNA==
X-Received: by 2002:adf:ff82:0:b0:336:3590:a93d with SMTP id j2-20020adfff82000000b003363590a93dmr84260wrr.71.1702373442232;
        Tue, 12 Dec 2023 01:30:42 -0800 (PST)
Message-ID: <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
Date: Tue, 12 Dec 2023 10:30:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Content-Language: en-US
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>, "Huang, Honglei1"
 <Honglei1.Huang@amd.com>, "Zhang, Julia" <Julia.Zhang@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.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: <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.12.2023 07:49, Chen, Jiqian wrote:
> On 2023/12/11 23:31, Roger Pau MonnÃ© wrote:
>> On Mon, Dec 11, 2023 at 12:40:08AM +0800, Jiqian Chen wrote:
>>> --- a/xen/arch/x86/hvm/hypercall.c
>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>> @@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>  
>>>      switch ( cmd )
>>>      {
>>> +    case PHYSDEVOP_setup_gsi:
>>
>> I think given the new approach on the Linux side patches, where
>> pciback will configure the interrupt, there's no need to expose
>> setup_gsi anymore?
> The latest patch(the second patch of v3 on kernel side) does setup_gsi and map_pirq for passthrough device in pciback, so we need this and below.
> 
>>
>>>      case PHYSDEVOP_map_pirq:
>>>      case PHYSDEVOP_unmap_pirq:
>>> +        if ( is_hardware_domain(currd) )
>>> +            break;
>>
>> Also Jan already pointed this out in v2: this hypercall needs to be
>> limited so a PVH dom0 cannot execute it against itself.  IOW: refuse
>> the hypercall if DOMID_SELF or the passed domid matches the current
>> domain domid.
> Yes, I remember Jan's suggestion, but since the latest patch(the second patch of v3 on kernel side) has change the implementation, it does setup_gsi and map_pirq for dom0 itself, so I didn't add the DOMID_SELF check.

And why exactly would it do specifically the map_pirq? (Even the setup_gsi
looks questionable to me, but there might be reasons there.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:38:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:38:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652784.1018819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzDk-0001xv-Ga; Tue, 12 Dec 2023 09:38:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652784.1018819; Tue, 12 Dec 2023 09:38:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzDk-0001xo-Cy; Tue, 12 Dec 2023 09:38:32 +0000
Received: by outflank-mailman (input) for mailman id 652784;
 Tue, 12 Dec 2023 09:38: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=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCzDj-0001xi-8x
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:38:31 +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 34999bad-98d2-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:38:28 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2c9f62fca3bso69941281fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 01:38:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 l39-20020a05600c1d2700b0040c2c5f5844sm15927874wms.21.2023.12.12.01.38.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 01:38:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34999bad-98d2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702373908; x=1702978708; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=eYVZtZhSR1Rq0Lag/6BK768XzJ3pRiFsk9NAFdAubjk=;
        b=HnxGfHlAFDwgrKwFkABoRgpcsC/ID+p/4AzHbjOT/lV3DLseRFx6SeHVyFjjHdo/e0
         7F71QHVCvRMKze4OO3sHJkWSav+UapLA6bXDPzNcQ0gFA+hR0x+MYLAMEvGHmXV85mOG
         kZqH2UObmAlJx0/BscahbY0XGyW2OiqK3pvl8UBWdu57ereS+1kL8x3YazZoy727fI8W
         uTdBUlyP8hRgAm34SVklVxHz0kgZeBipC7LYI3sDiUbARlqhkJyMMCf8zusnhEHj/vuL
         bhexMfD51lbX2IqwV77amt/T+H8aeQ+83bb6JeUZQngpo1cNIl0/2XoBg2ynzogebmfd
         0T8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702373908; x=1702978708;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=eYVZtZhSR1Rq0Lag/6BK768XzJ3pRiFsk9NAFdAubjk=;
        b=nAqYGcXNa0F3uinys1R3hfu+hefZyJp9lpEWUcVcjuXCv76hsxtA25x5lNxfaXyE6y
         w3L40c9QlDzY9eqzmnFLjk3OEklz8aE7XB6nTswjgXdx2KDLXGmJhTwrLK6gQfq2FI4f
         Pc4ichZUfQOOmO33r8bsPSeCO9G90QZkU5DjPknl9M9gQVGT2OMbu/bYChvk2qPV4UQK
         JKO9uzOrChE4RP1t372cEQVZ1oIpo0PAqj607z65g5bQfKxjE4B3l/AYt3QReMJww9HR
         DuYNmtal3Jx5JJhsFwW2Ku6/XBAzx0XlU+ZEbhWavQANPARkloSVo1xt1E/XYSa6kt5p
         U1zw==
X-Gm-Message-State: AOJu0YzjbfpnDFMF8FtP3+BbhsC4lJPnzPwFz/Mv82hSyQZzuT+V45st
	A47cP+8JePzecVbdj8azbwZj
X-Google-Smtp-Source: AGHT+IHOT4lbLHXNJN9PVOA+ADujhAtde3saVGZ8zzjwE9/wjMq/MZAp51ltG0UOBFCCv6lER3lnZw==
X-Received: by 2002:a2e:86d8:0:b0:2ca:cb6:f478 with SMTP id n24-20020a2e86d8000000b002ca0cb6f478mr2618844ljj.52.1702373908388;
        Tue, 12 Dec 2023 01:38:28 -0800 (PST)
Message-ID: <50ca26a1-38e3-45fb-9c39-56e4d04de3e0@suse.com>
Date: Tue, 12 Dec 2023 10:38:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Bjorn Helgaas <bhelgaas@google.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Huang, Honglei1" <Honglei1.Huang@amd.com>,
 "Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
References: <alpine.DEB.2.22.394.2311301912350.110490@ubuntu-linux-20-04-desktop>
 <ZWmgJNidFsfkDp7q@macbook>
 <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXculMdLgwGaRC7i@macbook>
 <BL1PR12MB584997DDE6839F2340022976E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXgeieg4E8UN0KoN@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXgeieg4E8UN0KoN@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

(I think the Cc list is too long here, but then I don't know who to
keep and who to possibly drop.)

On 12.12.2023 09:49, Roger Pau MonnÃ© wrote:
> On Tue, Dec 12, 2023 at 06:16:43AM +0000, Chen, Jiqian wrote:
>> On 2023/12/11 23:45, Roger Pau MonnÃ© wrote:
>>> On Wed, Dec 06, 2023 at 06:07:26AM +0000, Chen, Jiqian wrote:
>>>> +static int xen_pvh_setup_gsi(gsi_info_t *gsi_info)
>>>> +{
>>>> +       struct physdev_setup_gsi setup_gsi;
>>>> +
>>>> +       setup_gsi.gsi = gsi_info->gsi;
>>>> +       setup_gsi.triggering = (gsi_info->trigger == ACPI_EDGE_SENSITIVE ? 0 : 1);
>>>> +       setup_gsi.polarity = (gsi_info->polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
>>>> +
>>>> +       return HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
>>>> +}
>>>
>>> Hm, why not simply call pcibios_enable_device() from pciback?  What
>> pcibios_enable_device had been called when using cmd "xl pci-assignable-add sbdf" from pciback. But it didn't do map_pirq and setup_gsi.
>> Because pcibios_enable_device-> pcibios_enable_irq-> __acpi_register_gsi(acpi_register_gsi_ioapic PVH specific)
>>> you are doing here using the hypercalls is a backdoor into what's done
>>> automatically by Xen on IO-APIC accesses by a PVH dom0.
>> But the gsi didn't be unmasked, and vioapic_hwdom_map_gsi is never called.
>> So, I think in pciback, if we can do what vioapic_hwdom_map_gsi does.
>>
> 
> I see, it does setup the IO-APIC pin but doesn't unmask it, that's
> what I feared.
> 
>>> It will be much more natural for the PVH dom0 model to simply use the
>>> native way to configure and unmask the IO-APIC pin, and that would
>>> correctly setup the triggering/polarity and bind it to dom0 without
>>> requiring the usage of any hypercalls.
>> Do you still prefer that I called unmask_irq in pcistub_init_device, as this v2 patch do?
>> But Thomas Gleixner think it is not suitable to export unmask_irq.
> 
> Yeah, that wasn't good.
> 
>>>
>>> Is that an issue since in that case the gsi will get mapped and bound
>>> to dom0?
>> Dom0 do map_pirq is to pass the check xc_domain_irq_permission()-> pirq_access_permitted(), 
> 
> Can we see about finding another way to fix this check?
> 
> One option would be granting permissions over the IRQ in
> PHYSDEVOP_setup_gsi?

There's no domain available there, and imo it's also the wrong interface to
possibly grant any permissions.

> Otherwise we could see about modifying the logic in PHYSDEVOP_map_pirq
> so that the hardware domain can map IRQs to other domains without
> having it mapped to itself first?

While this may be possible to arrange for, it still would feel wrong. How
would you express the same in a disaggregated environment? I.e. how would
you make sure a domain trying to grant permission is actually permitted to
do so for the resource in question?

> I think the call to PHYSDEVOP_setup_gsi in pciback is fine, but I
> would really like to avoid the usage of PHYSDEVOP_{,un}map_pirq on a
> PVH dom0 against itself.

+1

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:39:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:39:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652786.1018829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzEY-0002ZS-OJ; Tue, 12 Dec 2023 09:39:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652786.1018829; Tue, 12 Dec 2023 09:39: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 1rCzEY-0002ZL-LD; Tue, 12 Dec 2023 09:39:22 +0000
Received: by outflank-mailman (input) for mailman id 652786;
 Tue, 12 Dec 2023 09:39: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 1rCzEW-0002Z7-UQ; Tue, 12 Dec 2023 09:39: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 1rCzEW-00031q-Q5; Tue, 12 Dec 2023 09:39: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 1rCzEW-00048h-C5; Tue, 12 Dec 2023 09:39:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rCzEW-0002Ab-BI; Tue, 12 Dec 2023 09:39: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=Dafv9FNc9kK0eDv6udzDEXGoGWugsweR55b1clstFnk=; b=ej5UYFX84sBKgcvDE7ipZwIJoD
	wwYlueaiOhBK/sNWtd2T1qqmxHhOitkCTprTHOUJ6mEfSe6Ad2SQmfkSNolU4SBsWeWuYq8wxb/oW
	ySCxILwXeW/j9xYS/ra8LYzYXZ/BjKsqCTbbKd3o+Aznxqi/FOww7SdcC/TmRYOOk++4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184096-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184096: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-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-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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-libvirt: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-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 09:39:20 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-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-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-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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:
 linux                a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z   10 days
Failing since        183977  2023-12-03 00:12:06 Z    9 days   19 attempts
Testing same since   184086  2023-12-11 01:14:29 Z    1 days    3 attempts

------------------------------------------------------------
343 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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 12427 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:43:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:43:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652836.1018867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzIc-0005Wn-M2; Tue, 12 Dec 2023 09:43:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652836.1018867; Tue, 12 Dec 2023 09:43:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzIc-0005Wg-It; Tue, 12 Dec 2023 09:43:34 +0000
Received: by outflank-mailman (input) for mailman id 652836;
 Tue, 12 Dec 2023 09:43: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=cChi=HX=dingwall.me.uk=james@srs-se1.protection.inumbo.net>)
 id 1rCzIb-0005Wa-7I
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:43:33 +0000
Received: from smarthost01a.sbp.mail.zen.net.uk
 (smarthost01a.sbp.mail.zen.net.uk [212.23.1.1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e850f948-98d2-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 10:43:30 +0100 (CET)
Received: from [217.155.64.189] (helo=mail0.xen.dingwall.me.uk)
 by smarthost01a.sbp.mail.zen.net.uk with esmtpsa (TLS1.0) tls
 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (Exim 4.95)
 (envelope-from <james@dingwall.me.uk>) id 1rCzIX-00CPJn-Bf
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:43:30 +0000
Received: from localhost (localhost [IPv6:::1])
 by mail0.xen.dingwall.me.uk (Postfix) with ESMTP id A4B368DA2F8
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 09:43:29 +0000 (GMT)
Received: from mail0.xen.dingwall.me.uk ([IPv6:::1])
 by localhost (mail0.xen.dingwall.me.uk [IPv6:::1]) (amavisd-new, port 10024)
 with ESMTP id DrlNhiRrGMxE for <xen-devel@lists.xenproject.org>;
 Tue, 12 Dec 2023 09:43:29 +0000 (GMT)
Received: from ghoul.dingwall.me.uk (ghoul.dingwall.me.uk [192.168.1.200])
 by dingwall.me.uk (Postfix) with ESMTP id 707BB8DA2F5
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 09:43:29 +0000 (GMT)
Received: by ghoul.dingwall.me.uk (Postfix, from userid 1000)
 id 5F9C33A; Tue, 12 Dec 2023 09:43:29 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e850f948-98d2-11ee-98e8-6d05b1d4d9a1
X-Virus-Scanned: Debian amavisd-new at dingwall.me.uk
Date: Tue, 12 Dec 2023 09:43:29 +0000
From: James Dingwall <james-xen@dingwall.me.uk>
To: xen-devel@lists.xenproject.org
Subject: XSA-446 relevance on Intel
Message-ID: <ZXgrQdVvDuQCbCRP@dingwall.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Originating-smarthost01a-IP: [217.155.64.189]
Feedback-ID: 217.155.64.189

Hi,

We were experiencing a crash during PV domU boot on several different models
of hardware but all with Intel CPUs.  The Xen version was based on stable-4.15
at 4a4daf6bddbe8a741329df5cc8768f7dec664aed (XSA-444) with some local
patches.  Since updating the branch to b918c4cdc7ab2c1c9e9a9b54fa9d9c595913e028
(XSA-446) we have not observed the same crash.

The occurrence was on 1-2% of boots and we couldn't determine a particular
sequence of events that would trigger it.  The kernel is based on Ubuntu's
5.15.0-91 tag but we also observed the same with -85.  Due to the low
frequency it is possible that we simply haven't observed it again since
updating our Xen build.

If I have followed the early startup this is happening shortly after detection
of possible CPU vulnerabilities and patching in alternative instructions.  As
the RIP was native_irq_return_iret and XSA-446 related to interupt management
I wondered if it was possible that despite "Xen is not believed to be vulnerable
in default configurations on CPUs from other hardware vendors." there could
be some conditions in which an Intel CPU is affected?

Thanks,
James

[    0.374957] GDS: Unknown: Dependent on hypervisor status
[    0.375007] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.375016] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.375022] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.375027] x86/fpu: Supporting XSAVE feature 0x020: 'AVX-512 opmask'
[    0.375033] x86/fpu: Supporting XSAVE feature 0x040: 'AVX-512 Hi256'
[    0.375038] x86/fpu: Supporting XSAVE feature 0x080: 'AVX-512 ZMM_Hi256'
[    0.375047] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.375053] x86/fpu: xstate_offset[5]: 1088, xstate_sizes[5]:   64
[    0.375059] x86/fpu: xstate_offset[6]: 1152, xstate_sizes[6]:  512
[    0.375053] x86/fpu: xstate_offset[5]: 1088, xstate_sizes[5]:   64
[    0.375059] x86/fpu: xstate_offset[6]: 1152, xstate_sizes[6]:  512
[    0.375064] x86/fpu: xstate_offset[7]: 1664, xstate_sizes[7]: 1024
[    0.375047] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.375053] x86/fpu: xstate_offset[5]: 1088, xstate_sizes[5]:   64
[    0.375059] x86/fpu: xstate_offset[6]: 1152, xstate_sizes[6]:  512
[    0.375064] x86/fpu: xstate_offset[7]: 1664, xstate_sizes[7]: 1024
[    0.375070] x86/fpu: Enabled xstate features 0xe7, context size is 2688 bytes, using 'standard' format.
[    0.398765] segment-related general protection fault: e030 [#1] SMP NOPTI
[    0.398784] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.15.0-91-generic #101~20.04.1
[    0.398792] RIP: e030:native_irq_return_iret+0x0/0x2
[    0.398806] Code: 5b 41 5b 41 5a 41 59 41 58 58 59 5a 5e 5f 48 83 c4 08 eb 0f 0f 1f 00 90 66 66 2e 0f 1f 84 00 00 00 00 00 f6 44 24 20 04 75 02 <48> cf 57 0f 01 f8 eb 12 0f 20 df 90 90 90 90 90 48 81 e7 ff e7 ff
[    0.398818] RSP: e02b:ffffffff82e03bd8 EFLAGS: 00010046
[    0.398825] RAX: 0000000000000000 RBX: ffffffff82e03c30 RCX: 0000000000000000
[    0.398831] RDX: 000000000000000f RSI: ffffffff81e011f4 RDI: ffffffff82e03ca0
[    0.398836] RBP: ffffffff82e03c10 R08: ffffffff81e011ef R09: 0000000000000005
[    0.398842] R10: 0000000000000006 R11: e8ae0feb75ccff49 R12: ffffffff81e011ef
[    0.398848] R13: 0000000000000006 R14: ffffffff81e011f4 R15: 0000000000000005
[    0.398860] FS:  0000000000000000(0000) GS:ffff88802dc00000(0000) knlGS:0000000000000000
[    0.398866] CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[    0.398872] CR2: 0000000000000000 CR3: 0000000002e10000 CR4: 0000000000050660
[    0.398880] Call Trace:
[    0.398883]  <TASK>
[    0.398887]  ? show_trace_log_lvl+0x1d6/0x2ea
[    0.398896]  ? show_trace_log_lvl+0x1d6/0x2ea
[    0.398902]  ? optimize_nops+0x68/0x150
[    0.398909]  ? show_regs.part.0+0x23/0x29
[    0.398914]  ? __die_body.cold+0x8/0xd
[    0.398919]  ? die_addr+0x3e/0x60
[    0.398925]  ? exc_general_protection+0x1c1/0x350
[    0.398933]  ? asm_exc_general_protection+0x27/0x30
[    0.398939]  ? restore_regs_and_return_to_kernel+0x20/0x2c
[    0.398945]  ? restore_regs_and_return_to_kernel+0x1b/0x2c
[    0.398950]  ? restore_regs_and_return_to_kernel+0x1b/0x2c
[    0.398956]  ? restore_regs_and_return_to_kernel+0x20/0x2c
[    0.398962]  ? native_iret+0x7/0x7
[    0.398967]  ? insn_decode+0x79/0x100
[    0.398975]  ? insn_decode+0xcf/0x100
[    0.398980]  optimize_nops+0x68/0x150
[    0.398986]  apply_alternatives+0x181/0x3a0
[    0.398991]  ? restore_regs_and_return_to_kernel+0x1b/0x2c
[    0.398996]  ? fb_is_primary_device+0x25/0x73
[    0.399003]  ? restore_regs_and_return_to_kernel+0x1b/0x2c
[    0.399009]  ? apply_alternatives+0x8/0x3a0
[    0.399014]  ? fb_is_primary_device+0x6e/0x73
[    0.399019]  ? apply_returns+0xfc/0x180
[    0.399024]  ? fb_is_primary_device+0x6e/0x73
[    0.399029]  ? sanitize_boot_params.constprop.0+0xa/0xef
[    0.399035]  ? fb_is_primary_device+0x73/0x73
[    0.399040]  alternative_instructions+0xa9/0x173
[    0.399049]  arch_cpu_finalize_init+0x2c/0x51
[    0.399055]  start_kernel+0x425/0x4ce
[    0.399060]  x86_64_start_reservations+0x24/0x2a
[    0.399066]  xen_start_kernel+0x41e/0x429
[    0.399072]  startup_xen+0x3e/0x3e
[    0.399078]  </TASK>
[    0.399081] Modules linked in:
[    0.399087] ---[ end trace 94f81cdaf420d02b ]---
[    0.399092] RIP: e030:native_irq_return_iret+0x0/0x2
[    0.399098] Code: 5b 41 5b 41 5a 41 59 41 58 58 59 5a 5e 5f 48 83 c4 08 eb 0f 0f 1f 00 90 66 66 2e 0f 1f 84 00 00 00 00 00 f6 44 24 20 04 75 02 <48> cf 57 0f 01 f8 eb 12 0f 20 df 90 90 90 90 90 48 81 e7 ff e7 ff
[    0.399110] RSP: e02b:ffffffff82e03bd8 EFLAGS: 00010046
[    0.399116] RAX: 0000000000000000 RBX: ffffffff82e03c30 RCX: 0000000000000000
[    0.399121] RDX: 000000000000000f RSI: ffffffff81e011f4 RDI: ffffffff82e03ca0
[    0.399127] RBP: ffffffff82e03c10 R08: ffffffff81e011ef R09: 0000000000000005
[    0.399132] R10: 0000000000000006 R11: e8ae0feb75ccff49 R12: ffffffff81e011ef
[    0.399138] R13: 0000000000000006 R14: ffffffff81e011f4 R15: 0000000000000005
[    0.399147] FS:  0000000000000000(0000) GS:ffff88802dc00000(0000) knlGS:0000000000000000
[    0.399154] CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[    0.399159] CR2: 0000000000000000 CR3: 0000000002e10000 CR4: 0000000000050660
[    0.399168] Kernel panic - not syncing: Attempted to kill the idle task!



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:46:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:46:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652840.1018878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzL5-000690-A7; Tue, 12 Dec 2023 09:46:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652840.1018878; Tue, 12 Dec 2023 09:46:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzL5-00068t-4Y; Tue, 12 Dec 2023 09:46:07 +0000
Received: by outflank-mailman (input) for mailman id 652840;
 Tue, 12 Dec 2023 09:46: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=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCzL4-00068l-E1
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:46:06 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43456c9e-98d3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:46:03 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-32f8441dfb5so5093663f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 01:46:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p13-20020a5d48cd000000b0033609750752sm10062063wrs.8.2023.12.12.01.46.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 01:46:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43456c9e-98d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702374362; x=1702979162; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=r6Gl96y201tYy51rPnNaNg2CtFCGBFP2qjHNwcPC+GE=;
        b=M21zE3tGAXtG5FqJkVyhWGyPOUZH+M85UyVXUqyT/hAqjxO63jrii7Qa82d7SVrekD
         5qLmDvARjW+4ccTJnr7UOTQUCg8Va/ZgCFeWTWHSXtNgA2XvwITaY7ZXx71WXShi7WdF
         XSMkMouC+dDWc9fiUlIjW0Eo9Uo8U7zCwgnMuBQ7cQTTkG/ZqlUq0G4+sSl16wMNj2z6
         qD2MlBQ86dW9eJjK//wWj1LHHEIupvK9tWaI/BA0ZxVQO4uEOExiYjMPCAcN4DqttvVz
         fjpAmSO2QY7Z/CEnWCMveOz5g9cFV9Q69YaGzjX3acZ2U19w877aLwAlsfsAKHq689nh
         UKsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702374362; x=1702979162;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=r6Gl96y201tYy51rPnNaNg2CtFCGBFP2qjHNwcPC+GE=;
        b=QNRIV3Ci+2rILDuASSEhcKclJbekHQRmGfyQAs7M1MgduWW5/k4IjGM1QKLZXR3+4h
         bPeVpE+Awu2vT535HHR+AYLswujCscNQZl1RbrwR/Tuqnf9mFqduoQF51kioWjbHmP1T
         nfiql2A5NAuN2F815lD2fwumKPrRaNRKiIcp2l7H3Xzp29FMRPwTclt0odrmKmTcstME
         szchQlNa4P7Jtq8S7TTtt6Qi+HGUwQSdPOeDXwqGpaa7v3Yx6jEVLitQblJFNWD4/yYv
         Da1+KiAMjukZdJoGWQ1kZeO6e2Azkj2N/9sWbLWEblvikeDPmjO1x4fVQVbm4Ea/yE4U
         aafQ==
X-Gm-Message-State: AOJu0Yyzu1A3hOYprA/uE49qZamcGnbj4hD2ZQ4+NKs0l0+IwIxbqbHc
	aI5WistDZVstddXNAKWfV6aa
X-Google-Smtp-Source: AGHT+IHd5s5/LsG8fEFfRVsR4bDZTVryHHDpvFsIIM31h2Gw+svAICUxRbs322wNh5Yih2XC4bs3BA==
X-Received: by 2002:a5d:43d2:0:b0:333:408a:9563 with SMTP id v18-20020a5d43d2000000b00333408a9563mr3123563wrr.124.1702374362555;
        Tue, 12 Dec 2023 01:46:02 -0800 (PST)
Message-ID: <b8aa0715-db0f-4832-9cd2-6bd2ca296853@suse.com>
Date: Tue, 12 Dec 2023 10:45:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/7] xen/shutdown: address MISRA C:2012 Rule 2.1
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <c0a8a12e39d688e101936d221af0f8eeefabe352.1702283415.git.nicola.vetrini@bugseng.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: <c0a8a12e39d688e101936d221af0f8eeefabe352.1702283415.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 11:30, Nicola Vetrini wrote:
> Given that 'hwdom_shutdown' is a noreturn function, unreachable
> breaks can be eliminated to resolve violations of Rule 2.1.
> On the occasion, the type of its parameter is changed to uint8_t.

I don't particularly mind that extra change, but it's entirely unrelated
here. We do such when we touch lines (or maybe adjacent lines) anyway,
but here you had no need to touch either declaration or the header of
the definition.

> --- a/xen/common/shutdown.c
> +++ b/xen/common/shutdown.c
> @@ -30,7 +30,7 @@ static void noreturn maybe_reboot(void)
>      }
>  }
>  
> -void hwdom_shutdown(u8 reason)
> +void hwdom_shutdown(uint8_t reason)
>  {
>      switch ( reason )
>      {
> @@ -38,39 +38,32 @@ void hwdom_shutdown(u8 reason)
>          printk("Hardware Dom%u halted: halting machine\n",
>                 hardware_domain->domain_id);
>          machine_halt();
> -        break; /* not reached */
>  
>      case SHUTDOWN_crash:
>          debugger_trap_immediate();
>          printk("Hardware Dom%u crashed: ", hardware_domain->domain_id);
>          kexec_crash(CRASHREASON_HWDOM);
>          maybe_reboot();
> -        break; /* not reached */

Given the function's name, I don't view this removal (and the similar one
further down) as acceptable. The function first needs renaming so that
from its name one can no longer (wrongly) infer that it may reboot or else
return.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:47:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:47:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652843.1018886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMS-0006iM-Hs; Tue, 12 Dec 2023 09:47:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652843.1018886; Tue, 12 Dec 2023 09:47:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMS-0006iF-F0; Tue, 12 Dec 2023 09:47:32 +0000
Received: by outflank-mailman (input) for mailman id 652843;
 Tue, 12 Dec 2023 09:47:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzMQ-0006i7-WC
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:47:31 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 767241fb-98d3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:47:29 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 4C6EB1F889;
 Tue, 12 Dec 2023 09:47:28 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id D4AF8139E9;
 Tue, 12 Dec 2023 09:47:27 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id l+unMi8seGWefgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09:47: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: 767241fb-98d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374448; 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=e93iIacOyvg8IZOt/GLwCv5VvCaj135nkMbzbrK/9RI=;
	b=qgIaCxSvGV5Q6FcCqyfS9v2n2nHQy+kXTrNOyvYDDhH4Ue6iDl2s6/4Orq7D+FrQfLSYSt
	Nk7ucdP9+hSksJ+BJOO5LVH3cf2xBF6jMJMammmg7xp/HMUIjV8mgRjWCPHfbi740gk/WV
	XxTSOcwPysWkUKmp6y0DhrgwgLRhVjE=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374448; 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=e93iIacOyvg8IZOt/GLwCv5VvCaj135nkMbzbrK/9RI=;
	b=qgIaCxSvGV5Q6FcCqyfS9v2n2nHQy+kXTrNOyvYDDhH4Ue6iDl2s6/4Orq7D+FrQfLSYSt
	Nk7ucdP9+hSksJ+BJOO5LVH3cf2xBF6jMJMammmg7xp/HMUIjV8mgRjWCPHfbi740gk/WV
	XxTSOcwPysWkUKmp6y0DhrgwgLRhVjE=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Paul Durrant <paul@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Subject: [PATCH v4 00/12] xen/spinlock: make recursive spinlocks a dedicated type
Date: Tue, 12 Dec 2023 10:47:13 +0100
Message-Id: <20231212094725.22184-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: YES
X-Spam-Score: 20.10
X-Spam-Level: ******
X-Spamd-Bar: ++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=qgIaCxSv;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [6.09 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 RCPT_COUNT_TWELVE(0.00)[17];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 6.09
X-Rspamd-Queue-Id: 4C6EB1F889
X-Spam-Flag: NO

Instead of being able to use normal spinlocks as recursive ones, too,
make recursive spinlocks a special lock type.

This will make the spinlock structure smaller in production builds and
add type-safety.

This allows to increase the maximum number of physical cpus from 8191
to 65535 without increasing the size of the lock structure in production
builds (the size of recursive spinlocks in debug builds will grow to
12 bytes due to that change).

Changes in V2:
- addressed comments by Jan Beulich
- lots of additional cleanups
- reorganized complete series

Changes in V3:
- addressed comments by Jan Beulich

Changes in V4:
- former patch 1 has already been applied
- fixed a coding style issue in patch 1

Juergen Gross (12):
  xen/spinlock: reduce lock profile ifdefs
  xen/spinlock: make spinlock initializers more readable
  xen/spinlock: introduce new type for recursive spinlocks
  xen/spinlock: rename recursive lock functions
  xen/spinlock: add rspin_[un]lock_irq[save|restore]()
  xen/spinlock: make struct lock_profile rspinlock_t aware
  xen/spinlock: add explicit non-recursive locking functions
  xen/spinlock: add another function level
  xen/spinlock: add missing rspin_is_locked() and rspin_barrier()
  xen/spinlock: split recursive spinlocks from normal ones
  xen/spinlock: remove indirection through macros for spin_*() functions
  xen/spinlock: support higher number of cpus

 xen/arch/arm/domain.c         |   4 +-
 xen/arch/arm/mm.c             |   4 +-
 xen/arch/x86/domain.c         |  20 +--
 xen/arch/x86/include/asm/mm.h |   2 +-
 xen/arch/x86/mm.c             |  12 +-
 xen/arch/x86/mm/mem_sharing.c |  16 +-
 xen/arch/x86/mm/mm-locks.h    |   6 +-
 xen/arch/x86/mm/p2m-pod.c     |   6 +-
 xen/arch/x86/mm/p2m.c         |   4 +-
 xen/arch/x86/tboot.c          |   4 +-
 xen/arch/x86/traps.c          |  14 +-
 xen/common/domain.c           |   6 +-
 xen/common/domctl.c           |   4 +-
 xen/common/grant_table.c      |  10 +-
 xen/common/ioreq.c            |  54 +++----
 xen/common/memory.c           |   4 +-
 xen/common/numa.c             |   4 +-
 xen/common/page_alloc.c       |  30 ++--
 xen/common/spinlock.c         | 284 ++++++++++++++++++++++++----------
 xen/drivers/char/console.c    |  48 ++----
 xen/drivers/passthrough/pci.c |   8 +-
 xen/include/xen/console.h     |   5 +-
 xen/include/xen/sched.h       |  10 +-
 xen/include/xen/spinlock.h    | 166 +++++++++++++-------
 24 files changed, 437 insertions(+), 288 deletions(-)

-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:47:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:47:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652844.1018897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMX-0006zJ-PN; Tue, 12 Dec 2023 09:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652844.1018897; Tue, 12 Dec 2023 09:47:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMX-0006zC-Mj; Tue, 12 Dec 2023 09:47:37 +0000
Received: by outflank-mailman (input) for mailman id 652844;
 Tue, 12 Dec 2023 09: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzMW-0006i7-2M
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09: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 79a74d82-98d3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:47:34 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 DA0CD224B1;
 Tue, 12 Dec 2023 09:47:33 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 9B9D7139E9;
 Tue, 12 Dec 2023 09:47:33 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id T+u/JDUseGWqfgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09: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: 79a74d82-98d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374454; 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=05RrYMir4dujTWuikdK7at9dlF2CXR4dNylFaQEqncE=;
	b=Z/Oh8sjoUCM+8LRc8Dz3gUmr/TTBPaIRau3PfRqWgYATUg++NkN3Hhe9fo7EYWgnDpgCiZ
	3bdmEwcJDALmZGPLgk5OdZhwHfFm61MpBkwSE/j5C4skVytVKBNBbY0qVtWou4Hud8JBDS
	4rnbwgL+Kr+pJPA0xlR4NL9+DCscMDA=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374453; 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=05RrYMir4dujTWuikdK7at9dlF2CXR4dNylFaQEqncE=;
	b=Z5evBUhm1k8ym4FmZnajKtUQVssPQvL1NyssaSen+JthhgCQX4chO4KU+jZ2RsgZkvP4Qe
	t8p96/3q00v6+/12nkUgHZGNB6rEGQGkk5sETYrn8cCLyaEC4Pb7vhqpKvNkkaQb1oEOFB
	VI0JGhwLTMcYXtezGYrx53qKCIfUiCc=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v4 01/12] xen/spinlock: reduce lock profile ifdefs
Date: Tue, 12 Dec 2023 10:47:14 +0100
Message-Id: <20231212094725.22184-2-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 3.70
X-Spam-Flag: NO
X-Spam-Level: ****
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spamd-Result: default: False [4.90 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 4.90

With some small adjustments to the LOCK_PROFILE_* macros some #ifdefs
can be dropped from spinlock.c.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
V2:
- new patch
V3:
- add variable name to macros parameter (Jan Beulich)
V4:
- fix coding style issue (Alejandro Vallejo)
---
 xen/common/spinlock.c | 49 +++++++++++++++++++------------------------
 1 file changed, 21 insertions(+), 28 deletions(-)

diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index d5fa400b78..09028af864 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -267,25 +267,28 @@ void spin_debug_disable(void)
         lock->profile->time_hold += NOW() - lock->profile->time_locked;      \
         lock->profile->lock_cnt++;                                           \
     }
-#define LOCK_PROFILE_VAR    s_time_t block = 0
-#define LOCK_PROFILE_BLOCK  block = block ? : NOW();
-#define LOCK_PROFILE_GOT                                                     \
+#define LOCK_PROFILE_VAR(var, val)    s_time_t var = (val)
+#define LOCK_PROFILE_BLOCK(var)       var = var ? : NOW()
+#define LOCK_PROFILE_BLKACC(tst, val)                                        \
+    if ( tst )                                                               \
+    {                                                                        \
+        lock->profile->time_block += lock->profile->time_locked - (val);     \
+        lock->profile->block_cnt++;                                          \
+    }
+#define LOCK_PROFILE_GOT(val)                                                \
     if ( lock->profile )                                                     \
     {                                                                        \
         lock->profile->time_locked = NOW();                                  \
-        if ( block )                                                         \
-        {                                                                    \
-            lock->profile->time_block += lock->profile->time_locked - block; \
-            lock->profile->block_cnt++;                                      \
-        }                                                                    \
+        LOCK_PROFILE_BLKACC(val, val);                                       \
     }
 
 #else
 
 #define LOCK_PROFILE_REL
-#define LOCK_PROFILE_VAR
-#define LOCK_PROFILE_BLOCK
-#define LOCK_PROFILE_GOT
+#define LOCK_PROFILE_VAR(var, val)
+#define LOCK_PROFILE_BLOCK(var)
+#define LOCK_PROFILE_BLKACC(tst, val)
+#define LOCK_PROFILE_GOT(val)
 
 #endif
 
@@ -308,7 +311,7 @@ static void always_inline spin_lock_common(spinlock_t *lock,
                                            void (*cb)(void *data), void *data)
 {
     spinlock_tickets_t tickets = SPINLOCK_TICKET_INC;
-    LOCK_PROFILE_VAR;
+    LOCK_PROFILE_VAR(block, 0);
 
     check_lock(&lock->debug, false);
     preempt_disable();
@@ -316,14 +319,14 @@ static void always_inline spin_lock_common(spinlock_t *lock,
                                            tickets.head_tail);
     while ( tickets.tail != observe_head(&lock->tickets) )
     {
-        LOCK_PROFILE_BLOCK;
+        LOCK_PROFILE_BLOCK(block);
         if ( cb )
             cb(data);
         arch_lock_relax();
     }
     arch_lock_acquire_barrier();
     got_lock(&lock->debug);
-    LOCK_PROFILE_GOT;
+    LOCK_PROFILE_GOT(block);
 }
 
 void _spin_lock(spinlock_t *lock)
@@ -411,19 +414,15 @@ int _spin_trylock(spinlock_t *lock)
      * arch_lock_acquire_barrier().
      */
     got_lock(&lock->debug);
-#ifdef CONFIG_DEBUG_LOCK_PROFILE
-    if ( lock->profile )
-        lock->profile->time_locked = NOW();
-#endif
+    LOCK_PROFILE_GOT(0);
+
     return 1;
 }
 
 void _spin_barrier(spinlock_t *lock)
 {
     spinlock_tickets_t sample;
-#ifdef CONFIG_DEBUG_LOCK_PROFILE
-    s_time_t block = NOW();
-#endif
+    LOCK_PROFILE_VAR(block, NOW());
 
     check_barrier(&lock->debug);
     smp_mb();
@@ -432,13 +431,7 @@ void _spin_barrier(spinlock_t *lock)
     {
         while ( observe_head(&lock->tickets) == sample.head )
             arch_lock_relax();
-#ifdef CONFIG_DEBUG_LOCK_PROFILE
-        if ( lock->profile )
-        {
-            lock->profile->time_block += NOW() - block;
-            lock->profile->block_cnt++;
-        }
-#endif
+        LOCK_PROFILE_BLKACC(lock->profile, block);
     }
     smp_mb();
 }
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:47:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:47:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652845.1018907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMd-0007J2-1t; Tue, 12 Dec 2023 09:47:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652845.1018907; Tue, 12 Dec 2023 09: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 1rCzMc-0007It-V8; Tue, 12 Dec 2023 09:47:42 +0000
Received: by outflank-mailman (input) for mailman id 652845;
 Tue, 12 Dec 2023 09: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzMa-0007Gv-U7
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:47:40 +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 7d061412-98d3-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 10:47:40 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 74EE5224B7;
 Tue, 12 Dec 2023 09:47:39 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 3BE6E139E9;
 Tue, 12 Dec 2023 09:47:39 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id C59eDTsseGWwfgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09:47: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: 7d061412-98d3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374459; 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=doNpwSeReZ+USBSQcgU+UndKZ1tREobYqeEPZw9GeWA=;
	b=PNX5+Ub7qOIAHZAg3mwdjS51i1StvDwvNPx66nLRRjnlMAGV71xGdpFBAKLUegx2yVcQMO
	6PzMf9HqRheNMcxewW2D7KE6S6J701EC31h19BB0/BcKzGvHcfGc5CJtqrGMTc5xO+g8lR
	bh4UzrnJmW+Cw3F7rDsZjxT5XWIa3gg=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374459; 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=doNpwSeReZ+USBSQcgU+UndKZ1tREobYqeEPZw9GeWA=;
	b=PNX5+Ub7qOIAHZAg3mwdjS51i1StvDwvNPx66nLRRjnlMAGV71xGdpFBAKLUegx2yVcQMO
	6PzMf9HqRheNMcxewW2D7KE6S6J701EC31h19BB0/BcKzGvHcfGc5CJtqrGMTc5xO+g8lR
	bh4UzrnJmW+Cw3F7rDsZjxT5XWIa3gg=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v4 02/12] xen/spinlock: make spinlock initializers more readable
Date: Tue, 12 Dec 2023 10:47:15 +0100
Message-Id: <20231212094725.22184-3-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spam-Level: 
X-Rspamd-Server: rspamd1
X-Spamd-Result: default: False [-0.81 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-3.00)[100.00%];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Rspamd-Queue-Id: 74EE5224B7
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=PNX5+Ub7;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Bar: /
X-Spam-Score: -0.81

Use named member initializers instead of positional ones for the macros
used to initialize structures.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
V2:
- new patch
---
 xen/include/xen/spinlock.h | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index c44e7d4929..1cd9120eac 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -21,7 +21,7 @@ union lock_debug {
         bool unseen:1;
     };
 };
-#define _LOCK_DEBUG { LOCK_DEBUG_INITVAL }
+#define _LOCK_DEBUG { .val = LOCK_DEBUG_INITVAL }
 void check_lock(union lock_debug *debug, bool try);
 void lock_enter(const union lock_debug *debug);
 void lock_exit(const union lock_debug *debug);
@@ -94,12 +94,16 @@ struct lock_profile_qhead {
     int32_t                   idx;     /* index for printout */
 };
 
-#define _LOCK_PROFILE(name) { NULL, #name, &name, 0, 0, 0, 0, 0 }
+#define _LOCK_PROFILE(lockname) { .name = #lockname, .lock = &lockname, }
 #define _LOCK_PROFILE_PTR(name)                                               \
     static struct lock_profile * const __lock_profile_##name                  \
     __used_section(".lockprofile.data") =                                     \
     &__lock_profile_data_##name
-#define _SPIN_LOCK_UNLOCKED(x) { { 0 }, SPINLOCK_NO_CPU, 0, _LOCK_DEBUG, x }
+#define _SPIN_LOCK_UNLOCKED(x) {                                              \
+    .recurse_cpu = SPINLOCK_NO_CPU,                                           \
+    .debug =_LOCK_DEBUG,                                                      \
+    .profile = x,                                                             \
+}
 #define SPIN_LOCK_UNLOCKED _SPIN_LOCK_UNLOCKED(NULL)
 #define DEFINE_SPINLOCK(l)                                                    \
     spinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                 \
@@ -142,7 +146,10 @@ extern void cf_check spinlock_profile_reset(unsigned char key);
 
 struct lock_profile_qhead { };
 
-#define SPIN_LOCK_UNLOCKED { { 0 }, SPINLOCK_NO_CPU, 0, _LOCK_DEBUG }
+#define SPIN_LOCK_UNLOCKED {                                                  \
+    .recurse_cpu = SPINLOCK_NO_CPU,                                           \
+    .debug =_LOCK_DEBUG,                                                      \
+}
 #define DEFINE_SPINLOCK(l) spinlock_t l = SPIN_LOCK_UNLOCKED
 
 #define spin_lock_init_prof(s, l) spin_lock_init(&((s)->l))
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:47:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:47:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652846.1018917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMi-0007fC-Dw; Tue, 12 Dec 2023 09:47:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652846.1018917; Tue, 12 Dec 2023 09: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 1rCzMi-0007es-AA; Tue, 12 Dec 2023 09:47:48 +0000
Received: by outflank-mailman (input) for mailman id 652846;
 Tue, 12 Dec 2023 09:47: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzMh-0006i7-AG
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:47:47 +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 8044bd86-98d3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:47:45 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 1551D224B1;
 Tue, 12 Dec 2023 09:47:45 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id C6023139E9;
 Tue, 12 Dec 2023 09:47:44 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id 3fssL0AseGW6fgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09:47:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8044bd86-98d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374465; 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=88B7I1n8s6sxOU5LedyrvvowvYQQmSv/h/8w0LslwMs=;
	b=TbpSLwIc4crKkQi6n4Ieom6HjlLzThLBD+jPsECSsjt1E49fSLLQBFFhskOREKkm9QsNaR
	rcaLYvS4/s1u/rIV0Cv2Jdu2aH/cA44zfU9FSu/ggawZ5VO2Jb12bRdpb4464W2SWjy/wD
	8tZ8jofRPM+7pkjG/si/ETQrQdyZyu4=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374465; 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=88B7I1n8s6sxOU5LedyrvvowvYQQmSv/h/8w0LslwMs=;
	b=TbpSLwIc4crKkQi6n4Ieom6HjlLzThLBD+jPsECSsjt1E49fSLLQBFFhskOREKkm9QsNaR
	rcaLYvS4/s1u/rIV0Cv2Jdu2aH/cA44zfU9FSu/ggawZ5VO2Jb12bRdpb4464W2SWjy/wD
	8tZ8jofRPM+7pkjG/si/ETQrQdyZyu4=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v4 03/12] xen/spinlock: introduce new type for recursive spinlocks
Date: Tue, 12 Dec 2023 10:47:16 +0100
Message-Id: <20231212094725.22184-4-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Score: 10.00
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: ********
X-Spam-Score: 8.80
X-Spamd-Result: default: False [8.80 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[10];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

Introduce a new type "rspinlock_t" to be used for recursive spinlocks.

For now it is only an alias of spinlock_t, so both types can still be
used for recursive spinlocks. This will be changed later, though.

Switch all recursive spinlocks to the new type.

Define the initializer helpers and use them where appropriate.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- carved out from V1 patch
---
 xen/arch/x86/include/asm/mm.h |  2 +-
 xen/arch/x86/mm/mm-locks.h    |  2 +-
 xen/common/domain.c           |  4 ++--
 xen/common/ioreq.c            |  2 +-
 xen/drivers/char/console.c    |  4 ++--
 xen/drivers/passthrough/pci.c |  2 +-
 xen/include/xen/sched.h       |  6 +++---
 xen/include/xen/spinlock.h    | 19 +++++++++++++++----
 8 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 05dfe35502..8a6e0c283f 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -596,7 +596,7 @@ unsigned long domain_get_maximum_gpfn(struct domain *d);
 
 /* Definition of an mm lock: spinlock with extra fields for debugging */
 typedef struct mm_lock {
-    spinlock_t         lock;
+    rspinlock_t        lock;
     int                unlock_level;
     int                locker;          /* processor which holds the lock */
     const char        *locker_function; /* func that took it */
diff --git a/xen/arch/x86/mm/mm-locks.h b/xen/arch/x86/mm/mm-locks.h
index 00b1bc402d..b05cad1752 100644
--- a/xen/arch/x86/mm/mm-locks.h
+++ b/xen/arch/x86/mm/mm-locks.h
@@ -20,7 +20,7 @@ DECLARE_PERCPU_RWLOCK_GLOBAL(p2m_percpu_rwlock);
 
 static inline void mm_lock_init(mm_lock_t *l)
 {
-    spin_lock_init(&l->lock);
+    rspin_lock_init(&l->lock);
     l->locker = -1;
     l->locker_function = "nobody";
     l->unlock_level = 0;
diff --git a/xen/common/domain.c b/xen/common/domain.c
index c5954cdb1a..dc97755391 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -627,8 +627,8 @@ struct domain *domain_create(domid_t domid,
 
     atomic_set(&d->refcnt, 1);
     RCU_READ_LOCK_INIT(&d->rcu_lock);
-    spin_lock_init_prof(d, domain_lock);
-    spin_lock_init_prof(d, page_alloc_lock);
+    rspin_lock_init_prof(d, domain_lock);
+    rspin_lock_init_prof(d, page_alloc_lock);
     spin_lock_init(&d->hypercall_deadlock_mutex);
     INIT_PAGE_LIST_HEAD(&d->page_list);
     INIT_PAGE_LIST_HEAD(&d->extra_page_list);
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index 62b907f4c4..652c18a9b5 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -1331,7 +1331,7 @@ unsigned int ioreq_broadcast(ioreq_t *p, bool buffered)
 
 void ioreq_domain_init(struct domain *d)
 {
-    spin_lock_init(&d->ioreq_server.lock);
+    rspin_lock_init(&d->ioreq_server.lock);
 
     arch_ioreq_domain_init(d);
 }
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 0666564ec9..76e455bacd 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -120,7 +120,7 @@ static int __read_mostly sercon_handle = -1;
 int8_t __read_mostly opt_console_xen; /* console=xen */
 #endif
 
-static DEFINE_SPINLOCK(console_lock);
+static DEFINE_RSPINLOCK(console_lock);
 
 /*
  * To control the amount of printing, thresholds are added.
@@ -1178,7 +1178,7 @@ void console_force_unlock(void)
 {
     watchdog_disable();
     spin_debug_disable();
-    spin_lock_init(&console_lock);
+    rspin_lock_init(&console_lock);
     serial_force_unlock(sercon_handle);
     console_locks_busted = 1;
     console_start_sync();
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 28ed8ea817..d604ed5634 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -50,7 +50,7 @@ struct pci_seg {
     } bus2bridge[MAX_BUSES];
 };
 
-static spinlock_t _pcidevs_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_RSPINLOCK(_pcidevs_lock);
 
 void pcidevs_lock(void)
 {
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 3609ef88c4..c6604aef78 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -376,9 +376,9 @@ struct domain
 
     rcu_read_lock_t  rcu_lock;
 
-    spinlock_t       domain_lock;
+    rspinlock_t      domain_lock;
 
-    spinlock_t       page_alloc_lock; /* protects all the following fields  */
+    rspinlock_t      page_alloc_lock; /* protects all the following fields  */
     struct page_list_head page_list;  /* linked list */
     struct page_list_head extra_page_list; /* linked list (size extra_pages) */
     struct page_list_head xenpage_list; /* linked list (size xenheap_pages) */
@@ -597,7 +597,7 @@ struct domain
 #ifdef CONFIG_IOREQ_SERVER
     /* Lock protects all other values in the sub-struct */
     struct {
-        spinlock_t              lock;
+        rspinlock_t             lock;
         struct ioreq_server     *server[MAX_NR_IOREQ_SERVERS];
     } ioreq_server;
 #endif
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index 1cd9120eac..20d15f34dd 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -45,7 +45,7 @@ union lock_debug { };
     lock profiling on:
 
     Global locks which should be subject to profiling must be declared via
-    DEFINE_SPINLOCK.
+    DEFINE_[R]SPINLOCK.
 
     For locks in structures further measures are necessary:
     - the structure definition must include a profile_head with exactly this
@@ -56,7 +56,7 @@ union lock_debug { };
     - the single locks which are subject to profiling have to be initialized
       via
 
-      spin_lock_init_prof(ptr, lock);
+      [r]spin_lock_init_prof(ptr, lock);
 
       with ptr being the main structure pointer and lock the spinlock field
 
@@ -109,12 +109,16 @@ struct lock_profile_qhead {
     spinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                 \
     static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
     _LOCK_PROFILE_PTR(l)
+#define DEFINE_RSPINLOCK(l)                                                   \
+    rspinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                \
+    static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
+    _LOCK_PROFILE_PTR(l)
 
-#define spin_lock_init_prof(s, l)                                             \
+#define __spin_lock_init_prof(s, l, locktype)                                 \
     do {                                                                      \
         struct lock_profile *prof;                                            \
         prof = xzalloc(struct lock_profile);                                  \
-        (s)->l = (spinlock_t)_SPIN_LOCK_UNLOCKED(prof);                       \
+        (s)->l = (locktype)_SPIN_LOCK_UNLOCKED(prof);                         \
         if ( !prof )                                                          \
         {                                                                     \
             printk(XENLOG_WARNING                                             \
@@ -128,6 +132,9 @@ struct lock_profile_qhead {
         (s)->profile_head.elem_q = prof;                                      \
     } while( 0 )
 
+#define spin_lock_init_prof(s, l) __spin_lock_init_prof(s, l, spinlock_t)
+#define rspin_lock_init_prof(s, l) __spin_lock_init_prof(s, l, rspinlock_t)
+
 void _lock_profile_register_struct(
     int32_t type, struct lock_profile_qhead *qhead, int32_t idx);
 void _lock_profile_deregister_struct(int32_t type,
@@ -151,8 +158,10 @@ struct lock_profile_qhead { };
     .debug =_LOCK_DEBUG,                                                      \
 }
 #define DEFINE_SPINLOCK(l) spinlock_t l = SPIN_LOCK_UNLOCKED
+#define DEFINE_RSPINLOCK(l) rspinlock_t l = SPIN_LOCK_UNLOCKED
 
 #define spin_lock_init_prof(s, l) spin_lock_init(&((s)->l))
+#define rspin_lock_init_prof(s, l) rspin_lock_init(&((s)->l))
 #define lock_profile_register_struct(type, ptr, idx)
 #define lock_profile_deregister_struct(type, ptr)
 #define spinlock_profile_printall(key)
@@ -182,8 +191,10 @@ typedef struct spinlock {
 #endif
 } spinlock_t;
 
+typedef spinlock_t rspinlock_t;
 
 #define spin_lock_init(l) (*(l) = (spinlock_t)SPIN_LOCK_UNLOCKED)
+#define rspin_lock_init(l) (*(l) = (rspinlock_t)SPIN_LOCK_UNLOCKED)
 
 void _spin_lock(spinlock_t *lock);
 void _spin_lock_cb(spinlock_t *lock, void (*cb)(void *data), void *data);
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:47:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:47:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652849.1018927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMn-00084s-Nn; Tue, 12 Dec 2023 09:47:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652849.1018927; Tue, 12 Dec 2023 09:47:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMn-00084j-Jq; Tue, 12 Dec 2023 09:47:53 +0000
Received: by outflank-mailman (input) for mailman id 652849;
 Tue, 12 Dec 2023 09:47:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzMm-0007Gv-Cs
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:47:52 +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 83b929aa-98d3-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 10:47:51 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 C9D441F74C;
 Tue, 12 Dec 2023 09:47:50 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 68C57139E9;
 Tue, 12 Dec 2023 09:47:50 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id F6JoGEYseGXEfgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09:47: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: 83b929aa-98d3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374470; 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=fdRSEytmHvGpI/Z2j7dS5CoHPsmRTFiZAI41T9Vl7PE=;
	b=n/D7lrSIoQ++/5E4gz1W0B59W5XN1BfQcTyh2y1yo4XpVhdzYxEnreJPIA0FgqiOs3iiuU
	S+GxJpD56enSeKua3cujj/ttc4m+zCB0dypwvFGphoCEmEad1tLNllmwnM14W730kD1FY0
	H/I3AtDLyjSORra1rbg4zcGe1CGcJYI=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374470; 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=fdRSEytmHvGpI/Z2j7dS5CoHPsmRTFiZAI41T9Vl7PE=;
	b=n/D7lrSIoQ++/5E4gz1W0B59W5XN1BfQcTyh2y1yo4XpVhdzYxEnreJPIA0FgqiOs3iiuU
	S+GxJpD56enSeKua3cujj/ttc4m+zCB0dypwvFGphoCEmEad1tLNllmwnM14W730kD1FY0
	H/I3AtDLyjSORra1rbg4zcGe1CGcJYI=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v4 04/12] xen/spinlock: rename recursive lock functions
Date: Tue, 12 Dec 2023 10:47:17 +0100
Message-Id: <20231212094725.22184-5-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 18.90
X-Spam-Flag: YES
X-Spam-Level: *******
X-Rspamd-Server: rspamd1
X-Spamd-Result: default: False [7.29 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 RCPT_COUNT_TWELVE(0.00)[14];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Rspamd-Queue-Id: C9D441F74C
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="n/D7lrSI";
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Bar: +++++++
X-Spam-Score: 7.29

Rename the recursive spin_lock() functions by replacing the trailing
"_recursive" with a leading "r".

Switch the parameter to be a pointer to rspinlock_t.

Remove the indirection through a macro, as it is adding only complexity
without any gain.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 xen/arch/arm/domain.c         |  4 +--
 xen/arch/x86/domain.c         |  8 +++---
 xen/arch/x86/mm/mem_sharing.c |  8 +++---
 xen/arch/x86/mm/mm-locks.h    |  4 +--
 xen/common/ioreq.c            | 52 +++++++++++++++++------------------
 xen/common/page_alloc.c       | 12 ++++----
 xen/common/spinlock.c         |  6 ++--
 xen/drivers/char/console.c    | 12 ++++----
 xen/drivers/passthrough/pci.c |  4 +--
 xen/include/xen/sched.h       |  4 +--
 xen/include/xen/spinlock.h    | 24 +++++++---------
 11 files changed, 67 insertions(+), 71 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 5e7a7f3e7e..f38cb5e04c 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -987,7 +987,7 @@ static int relinquish_memory(struct domain *d, struct page_list_head *list)
     int               ret = 0;
 
     /* Use a recursive lock, as we may enter 'free_domheap_page'. */
-    spin_lock_recursive(&d->page_alloc_lock);
+    rspin_lock(&d->page_alloc_lock);
 
     page_list_for_each_safe( page, tmp, list )
     {
@@ -1014,7 +1014,7 @@ static int relinquish_memory(struct domain *d, struct page_list_head *list)
     }
 
   out:
-    spin_unlock_recursive(&d->page_alloc_lock);
+    rspin_unlock(&d->page_alloc_lock);
     return ret;
 }
 
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3712e36df9..69ce1fd5cf 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1321,7 +1321,7 @@ int arch_set_info_guest(
         {
             bool done = false;
 
-            spin_lock_recursive(&d->page_alloc_lock);
+            rspin_lock(&d->page_alloc_lock);
 
             for ( i = 0; ; )
             {
@@ -1342,7 +1342,7 @@ int arch_set_info_guest(
                     break;
             }
 
-            spin_unlock_recursive(&d->page_alloc_lock);
+            rspin_unlock(&d->page_alloc_lock);
 
             if ( !done )
                 return -ERESTART;
@@ -2181,7 +2181,7 @@ static int relinquish_memory(
     int               ret = 0;
 
     /* Use a recursive lock, as we may enter 'free_domheap_page'. */
-    spin_lock_recursive(&d->page_alloc_lock);
+    rspin_lock(&d->page_alloc_lock);
 
     while ( (page = page_list_remove_head(list)) )
     {
@@ -2322,7 +2322,7 @@ static int relinquish_memory(
     page_list_move(list, &d->arch.relmem_list);
 
  out:
-    spin_unlock_recursive(&d->page_alloc_lock);
+    rspin_unlock(&d->page_alloc_lock);
     return ret;
 }
 
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index 4f810706a3..1720079fd9 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -688,7 +688,7 @@ static int page_make_sharable(struct domain *d,
     int rc = 0;
     bool drop_dom_ref = false;
 
-    spin_lock_recursive(&d->page_alloc_lock);
+    rspin_lock(&d->page_alloc_lock);
 
     if ( d->is_dying )
     {
@@ -731,7 +731,7 @@ static int page_make_sharable(struct domain *d,
     }
 
 out:
-    spin_unlock_recursive(&d->page_alloc_lock);
+    rspin_unlock(&d->page_alloc_lock);
 
     if ( drop_dom_ref )
         put_domain(d);
@@ -1942,7 +1942,7 @@ int mem_sharing_fork_reset(struct domain *d, bool reset_state,
         goto state;
 
     /* need recursive lock because we will free pages */
-    spin_lock_recursive(&d->page_alloc_lock);
+    rspin_lock(&d->page_alloc_lock);
     page_list_for_each_safe(page, tmp, &d->page_list)
     {
         shr_handle_t sh;
@@ -1971,7 +1971,7 @@ int mem_sharing_fork_reset(struct domain *d, bool reset_state,
         put_page_alloc_ref(page);
         put_page_and_type(page);
     }
-    spin_unlock_recursive(&d->page_alloc_lock);
+    rspin_unlock(&d->page_alloc_lock);
 
  state:
     if ( reset_state )
diff --git a/xen/arch/x86/mm/mm-locks.h b/xen/arch/x86/mm/mm-locks.h
index b05cad1752..c867ad7d53 100644
--- a/xen/arch/x86/mm/mm-locks.h
+++ b/xen/arch/x86/mm/mm-locks.h
@@ -79,7 +79,7 @@ static inline void _mm_lock(const struct domain *d, mm_lock_t *l,
 {
     if ( !((mm_locked_by_me(l)) && rec) )
         _check_lock_level(d, level);
-    spin_lock_recursive(&l->lock);
+    rspin_lock(&l->lock);
     if ( l->lock.recurse_cnt == 1 )
     {
         l->locker_function = func;
@@ -200,7 +200,7 @@ static inline void mm_unlock(mm_lock_t *l)
         l->locker_function = "nobody";
         _set_lock_level(l->unlock_level);
     }
-    spin_unlock_recursive(&l->lock);
+    rspin_unlock(&l->lock);
 }
 
 static inline void mm_enforce_order_unlock(int unlock_level,
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index 652c18a9b5..1257a3d972 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -329,7 +329,7 @@ bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
     unsigned int id;
     bool found = false;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     FOR_EACH_IOREQ_SERVER(d, id, s)
     {
@@ -340,7 +340,7 @@ bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
         }
     }
 
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 
     return found;
 }
@@ -658,7 +658,7 @@ static int ioreq_server_create(struct domain *d, int bufioreq_handling,
         return -ENOMEM;
 
     domain_pause(d);
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     for ( i = 0; i < MAX_NR_IOREQ_SERVERS; i++ )
     {
@@ -686,13 +686,13 @@ static int ioreq_server_create(struct domain *d, int bufioreq_handling,
     if ( id )
         *id = i;
 
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
     domain_unpause(d);
 
     return 0;
 
  fail:
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
     domain_unpause(d);
 
     xfree(s);
@@ -704,7 +704,7 @@ static int ioreq_server_destroy(struct domain *d, ioservid_t id)
     struct ioreq_server *s;
     int rc;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     s = get_ioreq_server(d, id);
 
@@ -736,7 +736,7 @@ static int ioreq_server_destroy(struct domain *d, ioservid_t id)
     rc = 0;
 
  out:
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 
     return rc;
 }
@@ -749,7 +749,7 @@ static int ioreq_server_get_info(struct domain *d, ioservid_t id,
     struct ioreq_server *s;
     int rc;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     s = get_ioreq_server(d, id);
 
@@ -783,7 +783,7 @@ static int ioreq_server_get_info(struct domain *d, ioservid_t id,
     rc = 0;
 
  out:
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 
     return rc;
 }
@@ -796,7 +796,7 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
 
     ASSERT(is_hvm_domain(d));
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     s = get_ioreq_server(d, id);
 
@@ -834,7 +834,7 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
     }
 
  out:
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 
     return rc;
 }
@@ -850,7 +850,7 @@ static int ioreq_server_map_io_range(struct domain *d, ioservid_t id,
     if ( start > end )
         return -EINVAL;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     s = get_ioreq_server(d, id);
 
@@ -886,7 +886,7 @@ static int ioreq_server_map_io_range(struct domain *d, ioservid_t id,
     rc = rangeset_add_range(r, start, end);
 
  out:
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 
     return rc;
 }
@@ -902,7 +902,7 @@ static int ioreq_server_unmap_io_range(struct domain *d, ioservid_t id,
     if ( start > end )
         return -EINVAL;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     s = get_ioreq_server(d, id);
 
@@ -938,7 +938,7 @@ static int ioreq_server_unmap_io_range(struct domain *d, ioservid_t id,
     rc = rangeset_remove_range(r, start, end);
 
  out:
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 
     return rc;
 }
@@ -963,7 +963,7 @@ int ioreq_server_map_mem_type(struct domain *d, ioservid_t id,
     if ( flags & ~XEN_DMOP_IOREQ_MEM_ACCESS_WRITE )
         return -EINVAL;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     s = get_ioreq_server(d, id);
 
@@ -978,7 +978,7 @@ int ioreq_server_map_mem_type(struct domain *d, ioservid_t id,
     rc = arch_ioreq_server_map_mem_type(d, s, flags);
 
  out:
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 
     if ( rc == 0 )
         arch_ioreq_server_map_mem_type_completed(d, s, flags);
@@ -992,7 +992,7 @@ static int ioreq_server_set_state(struct domain *d, ioservid_t id,
     struct ioreq_server *s;
     int rc;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     s = get_ioreq_server(d, id);
 
@@ -1016,7 +1016,7 @@ static int ioreq_server_set_state(struct domain *d, ioservid_t id,
     rc = 0;
 
  out:
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
     return rc;
 }
 
@@ -1026,7 +1026,7 @@ int ioreq_server_add_vcpu_all(struct domain *d, struct vcpu *v)
     unsigned int id;
     int rc;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     FOR_EACH_IOREQ_SERVER(d, id, s)
     {
@@ -1035,7 +1035,7 @@ int ioreq_server_add_vcpu_all(struct domain *d, struct vcpu *v)
             goto fail;
     }
 
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 
     return 0;
 
@@ -1050,7 +1050,7 @@ int ioreq_server_add_vcpu_all(struct domain *d, struct vcpu *v)
         ioreq_server_remove_vcpu(s, v);
     }
 
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 
     return rc;
 }
@@ -1060,12 +1060,12 @@ void ioreq_server_remove_vcpu_all(struct domain *d, struct vcpu *v)
     struct ioreq_server *s;
     unsigned int id;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     FOR_EACH_IOREQ_SERVER(d, id, s)
         ioreq_server_remove_vcpu(s, v);
 
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 }
 
 void ioreq_server_destroy_all(struct domain *d)
@@ -1076,7 +1076,7 @@ void ioreq_server_destroy_all(struct domain *d)
     if ( !arch_ioreq_server_destroy_all(d) )
         return;
 
-    spin_lock_recursive(&d->ioreq_server.lock);
+    rspin_lock(&d->ioreq_server.lock);
 
     /* No need to domain_pause() as the domain is being torn down */
 
@@ -1094,7 +1094,7 @@ void ioreq_server_destroy_all(struct domain *d)
         xfree(s);
     }
 
-    spin_unlock_recursive(&d->ioreq_server.lock);
+    rspin_unlock(&d->ioreq_server.lock);
 }
 
 struct ioreq_server *ioreq_server_select(struct domain *d,
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 9b5df74fdd..8c6a3d9274 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2497,7 +2497,7 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
     if ( unlikely(is_xen_heap_page(pg)) )
     {
         /* NB. May recursively lock from relinquish_memory(). */
-        spin_lock_recursive(&d->page_alloc_lock);
+        rspin_lock(&d->page_alloc_lock);
 
         for ( i = 0; i < (1 << order); i++ )
             arch_free_heap_page(d, &pg[i]);
@@ -2505,7 +2505,7 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
         d->xenheap_pages -= 1 << order;
         drop_dom_ref = (d->xenheap_pages == 0);
 
-        spin_unlock_recursive(&d->page_alloc_lock);
+        rspin_unlock(&d->page_alloc_lock);
     }
     else
     {
@@ -2514,7 +2514,7 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
         if ( likely(d) && likely(d != dom_cow) )
         {
             /* NB. May recursively lock from relinquish_memory(). */
-            spin_lock_recursive(&d->page_alloc_lock);
+            rspin_lock(&d->page_alloc_lock);
 
             for ( i = 0; i < (1 << order); i++ )
             {
@@ -2537,7 +2537,7 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
 
             drop_dom_ref = !domain_adjust_tot_pages(d, -(1 << order));
 
-            spin_unlock_recursive(&d->page_alloc_lock);
+            rspin_unlock(&d->page_alloc_lock);
 
             /*
              * Normally we expect a domain to clear pages before freeing them,
@@ -2753,7 +2753,7 @@ void free_domstatic_page(struct page_info *page)
     ASSERT_ALLOC_CONTEXT();
 
     /* NB. May recursively lock from relinquish_memory(). */
-    spin_lock_recursive(&d->page_alloc_lock);
+    rspin_lock(&d->page_alloc_lock);
 
     arch_free_heap_page(d, page);
 
@@ -2764,7 +2764,7 @@ void free_domstatic_page(struct page_info *page)
     /* Add page on the resv_page_list *after* it has been freed. */
     page_list_add_tail(page, &d->resv_page_list);
 
-    spin_unlock_recursive(&d->page_alloc_lock);
+    rspin_unlock(&d->page_alloc_lock);
 
     if ( drop_dom_ref )
         put_domain(d);
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 09028af864..422a7fb1db 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -436,7 +436,7 @@ void _spin_barrier(spinlock_t *lock)
     smp_mb();
 }
 
-int _spin_trylock_recursive(spinlock_t *lock)
+int rspin_trylock(rspinlock_t *lock)
 {
     unsigned int cpu = smp_processor_id();
 
@@ -460,7 +460,7 @@ int _spin_trylock_recursive(spinlock_t *lock)
     return 1;
 }
 
-void _spin_lock_recursive(spinlock_t *lock)
+void rspin_lock(rspinlock_t *lock)
 {
     unsigned int cpu = smp_processor_id();
 
@@ -475,7 +475,7 @@ void _spin_lock_recursive(spinlock_t *lock)
     lock->recurse_cnt++;
 }
 
-void _spin_unlock_recursive(spinlock_t *lock)
+void rspin_unlock(rspinlock_t *lock)
 {
     if ( likely(--lock->recurse_cnt == 0) )
     {
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 76e455bacd..f6f61dc5a1 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -920,7 +920,7 @@ static void vprintk_common(const char *prefix, const char *fmt, va_list args)
 
     /* console_lock can be acquired recursively from __printk_ratelimit(). */
     local_irq_save(flags);
-    spin_lock_recursive(&console_lock);
+    rspin_lock(&console_lock);
     state = &this_cpu(state);
 
     (void)vsnprintf(buf, sizeof(buf), fmt, args);
@@ -956,7 +956,7 @@ static void vprintk_common(const char *prefix, const char *fmt, va_list args)
         state->continued = 1;
     }
 
-    spin_unlock_recursive(&console_lock);
+    rspin_unlock(&console_lock);
     local_irq_restore(flags);
 }
 
@@ -1163,14 +1163,14 @@ unsigned long console_lock_recursive_irqsave(void)
     unsigned long flags;
 
     local_irq_save(flags);
-    spin_lock_recursive(&console_lock);
+    rspin_lock(&console_lock);
 
     return flags;
 }
 
 void console_unlock_recursive_irqrestore(unsigned long flags)
 {
-    spin_unlock_recursive(&console_lock);
+    rspin_unlock(&console_lock);
     local_irq_restore(flags);
 }
 
@@ -1231,12 +1231,12 @@ int __printk_ratelimit(int ratelimit_ms, int ratelimit_burst)
             char lost_str[8];
             snprintf(lost_str, sizeof(lost_str), "%d", lost);
             /* console_lock may already be acquired by printk(). */
-            spin_lock_recursive(&console_lock);
+            rspin_lock(&console_lock);
             printk_start_of_line("(XEN) ");
             __putstr("printk: ");
             __putstr(lost_str);
             __putstr(" messages suppressed.\n");
-            spin_unlock_recursive(&console_lock);
+            rspin_unlock(&console_lock);
         }
         local_irq_restore(flags);
         return 1;
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index d604ed5634..41444f8e2e 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -54,12 +54,12 @@ static DEFINE_RSPINLOCK(_pcidevs_lock);
 
 void pcidevs_lock(void)
 {
-    spin_lock_recursive(&_pcidevs_lock);
+    rspin_lock(&_pcidevs_lock);
 }
 
 void pcidevs_unlock(void)
 {
-    spin_unlock_recursive(&_pcidevs_lock);
+    rspin_unlock(&_pcidevs_lock);
 }
 
 bool pcidevs_locked(void)
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index c6604aef78..8cf751ad0c 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -358,8 +358,8 @@ struct sched_unit {
           (v) = (v)->next_in_list )
 
 /* Per-domain lock can be recursively acquired in fault handlers. */
-#define domain_lock(d) spin_lock_recursive(&(d)->domain_lock)
-#define domain_unlock(d) spin_unlock_recursive(&(d)->domain_lock)
+#define domain_lock(d) rspin_lock(&(d)->domain_lock)
+#define domain_unlock(d) rspin_unlock(&(d)->domain_lock)
 
 struct evtchn_port_ops;
 
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index 20d15f34dd..ee536c302c 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -209,9 +209,16 @@ int _spin_is_locked(const spinlock_t *lock);
 int _spin_trylock(spinlock_t *lock);
 void _spin_barrier(spinlock_t *lock);
 
-int _spin_trylock_recursive(spinlock_t *lock);
-void _spin_lock_recursive(spinlock_t *lock);
-void _spin_unlock_recursive(spinlock_t *lock);
+/*
+ * rspin_[un]lock(): Use these forms when the lock can (safely!) be
+ * reentered recursively on the same CPU. All critical regions that may form
+ * part of a recursively-nested set must be protected by these forms. If there
+ * are any critical regions that cannot form part of such a set, they can use
+ * standard spin_[un]lock().
+ */
+int rspin_trylock(rspinlock_t *lock);
+void rspin_lock(rspinlock_t *lock);
+void rspin_unlock(rspinlock_t *lock);
 
 #define spin_lock(l)                  _spin_lock(l)
 #define spin_lock_cb(l, c, d)         _spin_lock_cb(l, c, d)
@@ -241,15 +248,4 @@ void _spin_unlock_recursive(spinlock_t *lock);
 /* Ensure a lock is quiescent between two critical operations. */
 #define spin_barrier(l)               _spin_barrier(l)
 
-/*
- * spin_[un]lock_recursive(): Use these forms when the lock can (safely!) be
- * reentered recursively on the same CPU. All critical regions that may form
- * part of a recursively-nested set must be protected by these forms. If there
- * are any critical regions that cannot form part of such a set, they can use
- * standard spin_[un]lock().
- */
-#define spin_trylock_recursive(l)     _spin_trylock_recursive(l)
-#define spin_lock_recursive(l)        _spin_lock_recursive(l)
-#define spin_unlock_recursive(l)      _spin_unlock_recursive(l)
-
 #endif /* __SPINLOCK_H__ */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:48:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:48:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652850.1018937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMu-0000FC-4j; Tue, 12 Dec 2023 09:48:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652850.1018937; Tue, 12 Dec 2023 09: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 1rCzMu-0000F5-1e; Tue, 12 Dec 2023 09:48:00 +0000
Received: by outflank-mailman (input) for mailman id 652850;
 Tue, 12 Dec 2023 09:47: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzMs-0006i7-HX
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:47:58 +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 87085716-98d3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:47:56 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 61B1E224B1;
 Tue, 12 Dec 2023 09:47:56 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 23376139E9;
 Tue, 12 Dec 2023 09:47:56 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id /fxYB0wseGXQfgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09: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: 87085716-98d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374476; 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=GvkQ+1+sIR2iv06NXkv6xKF/IP+0QdiM6YcayZ0slMo=;
	b=nVwSG+sNZUZIocD1eWzm7CMBxEElSnhxaVyrV7Y2bz/5OfUJdegD2HkVhXBsQT8r5jtbUl
	93TS1a9n6qg7Qk1htapA0uaRQaFeVfTBps5x4VzbMApTw8AExrhWJvk0XpTPHPgD0ndE6J
	/6aw1YiRtcthPl4s39ZAgTtQxFU7mmw=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374476; 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=GvkQ+1+sIR2iv06NXkv6xKF/IP+0QdiM6YcayZ0slMo=;
	b=nVwSG+sNZUZIocD1eWzm7CMBxEElSnhxaVyrV7Y2bz/5OfUJdegD2HkVhXBsQT8r5jtbUl
	93TS1a9n6qg7Qk1htapA0uaRQaFeVfTBps5x4VzbMApTw8AExrhWJvk0XpTPHPgD0ndE6J
	/6aw1YiRtcthPl4s39ZAgTtQxFU7mmw=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 05/12] xen/spinlock: add rspin_[un]lock_irq[save|restore]()
Date: Tue, 12 Dec 2023 10:47:18 +0100
Message-Id: <20231212094725.22184-6-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 18.90
X-Spam-Flag: YES
X-Spam-Level: *******
X-Rspamd-Server: rspamd1
X-Spamd-Result: default: False [7.29 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Rspamd-Queue-Id: 61B1E224B1
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=nVwSG+sN;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Bar: +++++++
X-Spam-Score: 7.29

Instead of special casing rspin_lock_irqsave() and
rspin_unlock_irqrestore() for the console lock, add those functions
to spinlock handling and use them where needed.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 xen/arch/x86/traps.c       | 14 ++++++++------
 xen/common/spinlock.c      | 16 ++++++++++++++++
 xen/drivers/char/console.c | 18 +-----------------
 xen/include/xen/console.h  |  5 +++--
 xen/include/xen/spinlock.h |  7 +++++++
 5 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 7724306116..21227877b3 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -647,13 +647,15 @@ void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs *regs)
 void show_execution_state(const struct cpu_user_regs *regs)
 {
     /* Prevent interleaving of output. */
-    unsigned long flags = console_lock_recursive_irqsave();
+    unsigned long flags;
+
+    rspin_lock_irqsave(&console_lock, flags);
 
     show_registers(regs);
     show_code(regs);
     show_stack(regs);
 
-    console_unlock_recursive_irqrestore(flags);
+    rspin_unlock_irqrestore(&console_lock, flags);
 }
 
 void cf_check show_execution_state_nonconst(struct cpu_user_regs *regs)
@@ -663,7 +665,7 @@ void cf_check show_execution_state_nonconst(struct cpu_user_regs *regs)
 
 void vcpu_show_execution_state(struct vcpu *v)
 {
-    unsigned long flags = 0;
+    unsigned long flags;
 
     if ( test_bit(_VPF_down, &v->pause_flags) )
     {
@@ -698,7 +700,7 @@ void vcpu_show_execution_state(struct vcpu *v)
 #endif
 
     /* Prevent interleaving of output. */
-    flags = console_lock_recursive_irqsave();
+    rspin_lock_irqsave(&console_lock, flags);
 
     vcpu_show_registers(v);
 
@@ -708,7 +710,7 @@ void vcpu_show_execution_state(struct vcpu *v)
          * Stop interleaving prevention: The necessary P2M lookups involve
          * locking, which has to occur with IRQs enabled.
          */
-        console_unlock_recursive_irqrestore(flags);
+        rspin_unlock_irqrestore(&console_lock, flags);
 
         show_hvm_stack(v, &v->arch.user_regs);
     }
@@ -717,7 +719,7 @@ void vcpu_show_execution_state(struct vcpu *v)
         if ( guest_kernel_mode(v, &v->arch.user_regs) )
             show_guest_stack(v, &v->arch.user_regs);
 
-        console_unlock_recursive_irqrestore(flags);
+        rspin_unlock_irqrestore(&console_lock, flags);
     }
 
 #ifdef CONFIG_HVM
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 422a7fb1db..c1a9ba1304 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -475,6 +475,16 @@ void rspin_lock(rspinlock_t *lock)
     lock->recurse_cnt++;
 }
 
+unsigned long __rspin_lock_irqsave(rspinlock_t *lock)
+{
+    unsigned long flags;
+
+    local_irq_save(flags);
+    rspin_lock(lock);
+
+    return flags;
+}
+
 void rspin_unlock(rspinlock_t *lock)
 {
     if ( likely(--lock->recurse_cnt == 0) )
@@ -484,6 +494,12 @@ void rspin_unlock(rspinlock_t *lock)
     }
 }
 
+void rspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags)
+{
+    rspin_unlock(lock);
+    local_irq_restore(flags);
+}
+
 #ifdef CONFIG_DEBUG_LOCK_PROFILE
 
 struct lock_profile_anc {
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index f6f61dc5a1..1db2bbdb6a 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -120,7 +120,7 @@ static int __read_mostly sercon_handle = -1;
 int8_t __read_mostly opt_console_xen; /* console=xen */
 #endif
 
-static DEFINE_RSPINLOCK(console_lock);
+DEFINE_RSPINLOCK(console_lock);
 
 /*
  * To control the amount of printing, thresholds are added.
@@ -1158,22 +1158,6 @@ void console_end_log_everything(void)
     atomic_dec(&print_everything);
 }
 
-unsigned long console_lock_recursive_irqsave(void)
-{
-    unsigned long flags;
-
-    local_irq_save(flags);
-    rspin_lock(&console_lock);
-
-    return flags;
-}
-
-void console_unlock_recursive_irqrestore(unsigned long flags)
-{
-    rspin_unlock(&console_lock);
-    local_irq_restore(flags);
-}
-
 void console_force_unlock(void)
 {
     watchdog_disable();
diff --git a/xen/include/xen/console.h b/xen/include/xen/console.h
index 68759862e8..583c38f064 100644
--- a/xen/include/xen/console.h
+++ b/xen/include/xen/console.h
@@ -8,8 +8,11 @@
 #define __CONSOLE_H__
 
 #include <xen/inttypes.h>
+#include <xen/spinlock.h>
 #include <public/xen.h>
 
+extern rspinlock_t console_lock;
+
 struct xen_sysctl_readconsole;
 long read_console_ring(struct xen_sysctl_readconsole *op);
 
@@ -20,8 +23,6 @@ void console_init_postirq(void);
 void console_endboot(void);
 int console_has(const char *device);
 
-unsigned long console_lock_recursive_irqsave(void);
-void console_unlock_recursive_irqrestore(unsigned long flags);
 void console_force_unlock(void);
 
 void console_start_sync(void);
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index ee536c302c..05b97c1e03 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -218,7 +218,14 @@ void _spin_barrier(spinlock_t *lock);
  */
 int rspin_trylock(rspinlock_t *lock);
 void rspin_lock(rspinlock_t *lock);
+#define rspin_lock_irqsave(l, f)                                \
+    ({                                                          \
+        BUILD_BUG_ON(sizeof(f) != sizeof(unsigned long));       \
+        ((f) = __rspin_lock_irqsave(l));                        \
+    })
+unsigned long __rspin_lock_irqsave(rspinlock_t *lock);
 void rspin_unlock(rspinlock_t *lock);
+void rspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags);
 
 #define spin_lock(l)                  _spin_lock(l)
 #define spin_lock_cb(l, c, d)         _spin_lock_cb(l, c, d)
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:48:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:48:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652854.1018946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzMz-0000lk-Es; Tue, 12 Dec 2023 09:48:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652854.1018946; Tue, 12 Dec 2023 09: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 1rCzMz-0000lX-Ar; Tue, 12 Dec 2023 09:48:05 +0000
Received: by outflank-mailman (input) for mailman id 652854;
 Tue, 12 Dec 2023 09: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzMx-0006i7-VO
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:48: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 8a5709ba-98d3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:48:02 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 F229E1F74C;
 Tue, 12 Dec 2023 09:48:01 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id B58C8139E9;
 Tue, 12 Dec 2023 09:48:01 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id DcYlK1EseGXSfgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09:48: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: 8a5709ba-98d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374482; 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=ImgxXwya7OlVCWVkU9MisuGH03hg4qJ0KBDJY6FOy/8=;
	b=egqNoIMtSq3uUlnt7OwPH2OSCEPrReq3lJDG0WY8H8IIlp3ftCWMOwz5zGGQK7qUUz2Wg/
	e5ZlVA1M/bd8vHbQRuM7vKgxOcVpwwo4nt33c7fyvU78uIppYm1WfEQj3SBmXnVKBqQxde
	KR9cvPuPUQiZGDDEuOldP7QE6bOnNUg=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374482; 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=ImgxXwya7OlVCWVkU9MisuGH03hg4qJ0KBDJY6FOy/8=;
	b=egqNoIMtSq3uUlnt7OwPH2OSCEPrReq3lJDG0WY8H8IIlp3ftCWMOwz5zGGQK7qUUz2Wg/
	e5ZlVA1M/bd8vHbQRuM7vKgxOcVpwwo4nt33c7fyvU78uIppYm1WfEQj3SBmXnVKBqQxde
	KR9cvPuPUQiZGDDEuOldP7QE6bOnNUg=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v4 06/12] xen/spinlock: make struct lock_profile rspinlock_t aware
Date: Tue, 12 Dec 2023 10:47:19 +0100
Message-Id: <20231212094725.22184-7-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 8.80
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: ********
X-Spam-Score: 8.80
X-Spamd-Result: default: False [8.80 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[99.99%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

Struct lock_profile contains a pointer to the spinlock it is associated
with. Prepare support of differing spinlock_t and rspinlock_t types by
adding a type indicator of the pointer. Use the highest bit of the
block_cnt member for this indicator in order to not grow the struct
while hurting only the slow path with slightly less performant code.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
V2:
- new patch
---
 xen/common/spinlock.c      | 26 +++++++++++++++++++-------
 xen/include/xen/spinlock.h | 10 ++++++++--
 2 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index c1a9ba1304..7d611d3d7d 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -538,19 +538,31 @@ static void spinlock_profile_iterate(lock_profile_subfunc *sub, void *par)
 static void cf_check spinlock_profile_print_elem(struct lock_profile *data,
     int32_t type, int32_t idx, void *par)
 {
-    struct spinlock *lock = data->lock;
+    unsigned int cpu;
+    uint32_t lockval;
+
+    if ( data->is_rlock )
+    {
+        cpu = data->rlock->debug.cpu;
+        lockval = data->rlock->tickets.head_tail;
+    }
+    else
+    {
+        cpu = data->lock->debug.cpu;
+        lockval = data->lock->tickets.head_tail;
+    }
 
     printk("%s ", lock_profile_ancs[type].name);
     if ( type != LOCKPROF_TYPE_GLOBAL )
         printk("%d ", idx);
-    printk("%s: addr=%p, lockval=%08x, ", data->name, lock,
-           lock->tickets.head_tail);
-    if ( lock->debug.cpu == SPINLOCK_NO_CPU )
+    printk("%s: addr=%p, lockval=%08x, ", data->name, data->lock, lockval);
+    if ( cpu == SPINLOCK_NO_CPU )
         printk("not locked\n");
     else
-        printk("cpu=%d\n", lock->debug.cpu);
-    printk("  lock:%" PRId64 "(%" PRI_stime "), block:%" PRId64 "(%" PRI_stime ")\n",
-           data->lock_cnt, data->time_hold, data->block_cnt, data->time_block);
+        printk("cpu=%u\n", cpu);
+    printk("  lock:%" PRIu64 "(%" PRI_stime "), block:%" PRIu64 "(%" PRI_stime ")\n",
+           data->lock_cnt, data->time_hold, (uint64_t)data->block_cnt,
+           data->time_block);
 }
 
 void cf_check spinlock_profile_printall(unsigned char key)
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index 05b97c1e03..ac3bef267a 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -76,13 +76,19 @@ union lock_debug { };
 */
 
 struct spinlock;
+/* Temporary hack until a dedicated struct rspinlock is existing. */
+#define rspinlock spinlock
 
 struct lock_profile {
     struct lock_profile *next;       /* forward link */
     const char          *name;       /* lock name */
-    struct spinlock     *lock;       /* the lock itself */
+    union {
+        struct spinlock *lock;       /* the lock itself */
+        struct rspinlock *rlock;     /* the recursive lock itself */
+    };
     uint64_t            lock_cnt;    /* # of complete locking ops */
-    uint64_t            block_cnt;   /* # of complete wait for lock */
+    uint64_t            block_cnt:63; /* # of complete wait for lock */
+    uint64_t            is_rlock:1;  /* use rlock pointer */
     s_time_t            time_hold;   /* cumulated lock time */
     s_time_t            time_block;  /* cumulated wait time */
     s_time_t            time_locked; /* system time of last locking */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:48:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:48:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652855.1018957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzN4-0001DJ-Ni; Tue, 12 Dec 2023 09:48:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652855.1018957; Tue, 12 Dec 2023 09:48: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 1rCzN4-0001DA-Kh; Tue, 12 Dec 2023 09:48:10 +0000
Received: by outflank-mailman (input) for mailman id 652855;
 Tue, 12 Dec 2023 09:48: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzN3-0007Gv-8n
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:48:09 +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 8dd442f4-98d3-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 10:48:08 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 C2043224B1;
 Tue, 12 Dec 2023 09:48:07 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 58BD2139E9;
 Tue, 12 Dec 2023 09:48:07 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id NAJtFFcseGXXfgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09:48:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8dd442f4-98d3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374487; 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=fuJajbW3/YYf0ZwXbPmGfzAVaQMwEgrS+mxOKjY7JuM=;
	b=I//7pvG9dUu5sVhpJO82/Y8e3y3JxDVHBkG7EqHvpH/sISE2vyx6KBnEzb1kCFZw/jB9y6
	r9IhKDRf/hf7XHt/noqg0QxGzlDOw5Oh7788PsVXcw7TQ62U06hSHRnP1up+qWsW9ZGhcM
	FJUwbegaGNEfb9lVibgJ238F9EAuB98=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374487; 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=fuJajbW3/YYf0ZwXbPmGfzAVaQMwEgrS+mxOKjY7JuM=;
	b=I//7pvG9dUu5sVhpJO82/Y8e3y3JxDVHBkG7EqHvpH/sISE2vyx6KBnEzb1kCFZw/jB9y6
	r9IhKDRf/hf7XHt/noqg0QxGzlDOw5Oh7788PsVXcw7TQ62U06hSHRnP1up+qWsW9ZGhcM
	FJUwbegaGNEfb9lVibgJ238F9EAuB98=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Subject: [PATCH v4 07/12] xen/spinlock: add explicit non-recursive locking functions
Date: Tue, 12 Dec 2023 10:47:20 +0100
Message-Id: <20231212094725.22184-8-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Score: 10.00
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: ********
X-Spam-Score: 8.80
X-Spamd-Result: default: False [8.80 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_TWELVE(0.00)[16];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

In order to prepare a type-safe recursive spinlock structure, add
explicitly non-recursive locking functions to be used for non-recursive
locking of spinlocks, which are used recursively, too.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- rename functions (Jan Beulich)
- get rid of !! in pcidevs_locked() (Jan Beulich)
---
 xen/arch/arm/mm.c             |  4 ++--
 xen/arch/x86/domain.c         | 12 ++++++------
 xen/arch/x86/mm.c             | 12 ++++++------
 xen/arch/x86/mm/mem_sharing.c |  8 ++++----
 xen/arch/x86/mm/p2m-pod.c     |  4 ++--
 xen/arch/x86/mm/p2m.c         |  4 ++--
 xen/arch/x86/tboot.c          |  4 ++--
 xen/common/domctl.c           |  4 ++--
 xen/common/grant_table.c      | 10 +++++-----
 xen/common/memory.c           |  4 ++--
 xen/common/numa.c             |  4 ++--
 xen/common/page_alloc.c       | 16 ++++++++--------
 xen/drivers/char/console.c    | 16 ++++++++--------
 xen/include/xen/spinlock.h    | 24 +++++++++++++++++++-----
 14 files changed, 70 insertions(+), 56 deletions(-)

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index eeb65ca6bb..7466d12b0c 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -105,7 +105,7 @@ void share_xen_page_with_guest(struct page_info *page, struct domain *d,
     if ( page_get_owner(page) == d )
         return;
 
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
 
     /*
      * The incremented type count pins as writable or read-only.
@@ -136,7 +136,7 @@ void share_xen_page_with_guest(struct page_info *page, struct domain *d,
         page_list_add_tail(page, &d->xenpage_list);
     }
 
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
 }
 
 int xenmem_add_to_physmap_one(
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 69ce1fd5cf..998cb53a58 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -212,7 +212,7 @@ void dump_pageframe_info(struct domain *d)
     {
         unsigned long total[MASK_EXTR(PGT_type_mask, PGT_type_mask) + 1] = {};
 
-        spin_lock(&d->page_alloc_lock);
+        nrspin_lock(&d->page_alloc_lock);
         page_list_for_each ( page, &d->page_list )
         {
             unsigned int index = MASK_EXTR(page->u.inuse.type_info,
@@ -231,13 +231,13 @@ void dump_pageframe_info(struct domain *d)
                    _p(mfn_x(page_to_mfn(page))),
                    page->count_info, page->u.inuse.type_info);
         }
-        spin_unlock(&d->page_alloc_lock);
+        nrspin_unlock(&d->page_alloc_lock);
     }
 
     if ( is_hvm_domain(d) )
         p2m_pod_dump_data(d);
 
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
 
     page_list_for_each ( page, &d->xenpage_list )
     {
@@ -253,7 +253,7 @@ void dump_pageframe_info(struct domain *d)
                page->count_info, page->u.inuse.type_info);
     }
 
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
 }
 
 void update_guest_memory_policy(struct vcpu *v,
@@ -2446,10 +2446,10 @@ int domain_relinquish_resources(struct domain *d)
             d->arch.auto_unmask = 0;
         }
 
-        spin_lock(&d->page_alloc_lock);
+        nrspin_lock(&d->page_alloc_lock);
         page_list_splice(&d->arch.relmem_list, &d->page_list);
         INIT_PAGE_LIST_HEAD(&d->arch.relmem_list);
-        spin_unlock(&d->page_alloc_lock);
+        nrspin_unlock(&d->page_alloc_lock);
 
     PROGRESS(xen):
 
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 0a66db10b9..c35a68fbd5 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -482,7 +482,7 @@ void share_xen_page_with_guest(struct page_info *page, struct domain *d,
 
     set_gpfn_from_mfn(mfn_x(page_to_mfn(page)), INVALID_M2P_ENTRY);
 
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
 
     /* The incremented type count pins as writable or read-only. */
     page->u.inuse.type_info =
@@ -502,7 +502,7 @@ void share_xen_page_with_guest(struct page_info *page, struct domain *d,
         page_list_add_tail(page, &d->xenpage_list);
     }
 
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
 }
 
 void make_cr3(struct vcpu *v, mfn_t mfn)
@@ -3584,11 +3584,11 @@ long do_mmuext_op(
             {
                 bool drop_ref;
 
-                spin_lock(&pg_owner->page_alloc_lock);
+                nrspin_lock(&pg_owner->page_alloc_lock);
                 drop_ref = (pg_owner->is_dying &&
                             test_and_clear_bit(_PGT_pinned,
                                                &page->u.inuse.type_info));
-                spin_unlock(&pg_owner->page_alloc_lock);
+                nrspin_unlock(&pg_owner->page_alloc_lock);
                 if ( drop_ref )
                 {
         pin_drop:
@@ -4411,7 +4411,7 @@ int steal_page(
      * that it might be upon return from alloc_domheap_pages with
      * MEMF_no_owner set.
      */
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
 
     BUG_ON(page->u.inuse.type_info & (PGT_count_mask | PGT_locked |
                                       PGT_pinned));
@@ -4423,7 +4423,7 @@ int steal_page(
     if ( !(memflags & MEMF_no_refcount) && !domain_adjust_tot_pages(d, -1) )
         drop_dom_ref = true;
 
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
 
     if ( unlikely(drop_dom_ref) )
         put_domain(d);
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index 1720079fd9..fa4e56a4df 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -746,11 +746,11 @@ static int page_make_private(struct domain *d, struct page_info *page)
     if ( !get_page(page, dom_cow) )
         return -EINVAL;
 
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
 
     if ( d->is_dying )
     {
-        spin_unlock(&d->page_alloc_lock);
+        nrspin_unlock(&d->page_alloc_lock);
         put_page(page);
         return -EBUSY;
     }
@@ -758,7 +758,7 @@ static int page_make_private(struct domain *d, struct page_info *page)
     expected_type = (PGT_shared_page | PGT_validated | PGT_locked | 2);
     if ( page->u.inuse.type_info != expected_type )
     {
-        spin_unlock(&d->page_alloc_lock);
+        nrspin_unlock(&d->page_alloc_lock);
         put_page(page);
         return -EEXIST;
     }
@@ -775,7 +775,7 @@ static int page_make_private(struct domain *d, struct page_info *page)
     if ( domain_adjust_tot_pages(d, 1) == 1 )
         get_knownalive_domain(d);
     page_list_add_tail(page, &d->page_list);
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
 
     put_page(page);
 
diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
index 9e5ad68df2..61a91f5a94 100644
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -27,7 +27,7 @@
 static inline void lock_page_alloc(struct p2m_domain *p2m)
 {
     page_alloc_mm_pre_lock(p2m->domain);
-    spin_lock(&(p2m->domain->page_alloc_lock));
+    nrspin_lock(&(p2m->domain->page_alloc_lock));
     page_alloc_mm_post_lock(p2m->domain,
                             p2m->domain->arch.page_alloc_unlock_level);
 }
@@ -35,7 +35,7 @@ static inline void lock_page_alloc(struct p2m_domain *p2m)
 static inline void unlock_page_alloc(struct p2m_domain *p2m)
 {
     page_alloc_mm_unlock(p2m->domain->arch.page_alloc_unlock_level);
-    spin_unlock(&(p2m->domain->page_alloc_lock));
+    nrspin_unlock(&(p2m->domain->page_alloc_lock));
 }
 
 /*
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index 6eb446e437..f188f09b8e 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2226,7 +2226,7 @@ void audit_p2m(struct domain *d,
 
     /* Audit part two: walk the domain's page allocation list, checking
      * the m2p entries. */
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
     page_list_for_each ( page, &d->page_list )
     {
         mfn = mfn_x(page_to_mfn(page));
@@ -2278,7 +2278,7 @@ void audit_p2m(struct domain *d,
         P2M_PRINTK("OK: mfn=%#lx, gfn=%#lx, p2mfn=%#lx\n",
                        mfn, gfn, mfn_x(p2mfn));
     }
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
 
     pod_unlock(p2m);
     p2m_unlock(p2m);
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 86c4c22cac..5b33a1bf9d 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -205,14 +205,14 @@ static void tboot_gen_domain_integrity(const uint8_t key[TB_KEY_SIZE],
             continue;
         printk("MACing Domain %u\n", d->domain_id);
 
-        spin_lock(&d->page_alloc_lock);
+        nrspin_lock(&d->page_alloc_lock);
         page_list_for_each(page, &d->page_list)
         {
             void *pg = __map_domain_page(page);
             vmac_update(pg, PAGE_SIZE, &ctx);
             unmap_domain_page(pg);
         }
-        spin_unlock(&d->page_alloc_lock);
+        nrspin_unlock(&d->page_alloc_lock);
 
         if ( is_iommu_enabled(d) && is_vtd )
         {
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index f5a71ee5f7..cb62b18a9d 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -621,14 +621,14 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
     {
         uint64_t new_max = op->u.max_mem.max_memkb >> (PAGE_SHIFT - 10);
 
-        spin_lock(&d->page_alloc_lock);
+        nrspin_lock(&d->page_alloc_lock);
         /*
          * NB. We removed a check that new_max >= current tot_pages; this means
          * that the domain will now be allowed to "ratchet" down to new_max. In
          * the meantime, while tot > max, all new allocations are disallowed.
          */
         d->max_pages = min(new_max, (uint64_t)(typeof(d->max_pages))-1);
-        spin_unlock(&d->page_alloc_lock);
+        nrspin_unlock(&d->page_alloc_lock);
         break;
     }
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 5721eab225..54163d51ea 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -2376,7 +2376,7 @@ gnttab_transfer(
             mfn = page_to_mfn(page);
         }
 
-        spin_lock(&e->page_alloc_lock);
+        nrspin_lock(&e->page_alloc_lock);
 
         /*
          * Check that 'e' will accept the page and has reservation
@@ -2387,7 +2387,7 @@ gnttab_transfer(
              unlikely(domain_tot_pages(e) >= e->max_pages) ||
              unlikely(!(e->tot_pages + 1)) )
         {
-            spin_unlock(&e->page_alloc_lock);
+            nrspin_unlock(&e->page_alloc_lock);
 
             if ( e->is_dying )
                 gdprintk(XENLOG_INFO, "Transferee d%d is dying\n",
@@ -2411,7 +2411,7 @@ gnttab_transfer(
          * safely drop the lock and re-aquire it later to add page to the
          * pagelist.
          */
-        spin_unlock(&e->page_alloc_lock);
+        nrspin_unlock(&e->page_alloc_lock);
         okay = gnttab_prepare_for_transfer(e, d, gop.ref);
 
         /*
@@ -2427,9 +2427,9 @@ gnttab_transfer(
              * Need to grab this again to safely free our "reserved"
              * page in the page total
              */
-            spin_lock(&e->page_alloc_lock);
+            nrspin_lock(&e->page_alloc_lock);
             drop_dom_ref = !domain_adjust_tot_pages(e, -1);
-            spin_unlock(&e->page_alloc_lock);
+            nrspin_unlock(&e->page_alloc_lock);
 
             if ( okay /* i.e. e->is_dying due to the surrounding if() */ )
                 gdprintk(XENLOG_INFO, "Transferee d%d is now dying\n",
diff --git a/xen/common/memory.c b/xen/common/memory.c
index b3b05c2ec0..b4593f5f45 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -770,10 +770,10 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
                               (1UL << in_chunk_order)) -
                              (j * (1UL << exch.out.extent_order)));
 
-                spin_lock(&d->page_alloc_lock);
+                nrspin_lock(&d->page_alloc_lock);
                 drop_dom_ref = (dec_count &&
                                 !domain_adjust_tot_pages(d, -dec_count));
-                spin_unlock(&d->page_alloc_lock);
+                nrspin_unlock(&d->page_alloc_lock);
 
                 if ( drop_dom_ref )
                     put_domain(d);
diff --git a/xen/common/numa.c b/xen/common/numa.c
index f454c4d894..47b1d0b5a8 100644
--- a/xen/common/numa.c
+++ b/xen/common/numa.c
@@ -718,13 +718,13 @@ static void cf_check dump_numa(unsigned char key)
 
         memset(page_num_node, 0, sizeof(page_num_node));
 
-        spin_lock(&d->page_alloc_lock);
+        nrspin_lock(&d->page_alloc_lock);
         page_list_for_each ( page, &d->page_list )
         {
             i = page_to_nid(page);
             page_num_node[i]++;
         }
-        spin_unlock(&d->page_alloc_lock);
+        nrspin_unlock(&d->page_alloc_lock);
 
         for_each_online_node ( i )
             printk("    Node %u: %u\n", i, page_num_node[i]);
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 8c6a3d9274..a25c00a7d4 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -515,7 +515,7 @@ int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
      * must always take the global heap_lock rather than only in the much
      * rarer case that d->outstanding_pages is non-zero
      */
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
     spin_lock(&heap_lock);
 
     /* pages==0 means "unset" the claim. */
@@ -561,7 +561,7 @@ int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
 
 out:
     spin_unlock(&heap_lock);
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
     return ret;
 }
 
@@ -2343,7 +2343,7 @@ int assign_pages(
     int rc = 0;
     unsigned int i;
 
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
 
     if ( unlikely(d->is_dying) )
     {
@@ -2425,7 +2425,7 @@ int assign_pages(
     }
 
  out:
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
     return rc;
 }
 
@@ -2906,9 +2906,9 @@ mfn_t acquire_reserved_page(struct domain *d, unsigned int memflags)
     ASSERT_ALLOC_CONTEXT();
 
     /* Acquire a page from reserved page list(resv_page_list). */
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
     page = page_list_remove_head(&d->resv_page_list);
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
     if ( unlikely(!page) )
         return INVALID_MFN;
 
@@ -2927,9 +2927,9 @@ mfn_t acquire_reserved_page(struct domain *d, unsigned int memflags)
      */
     unprepare_staticmem_pages(page, 1, false);
  fail:
-    spin_lock(&d->page_alloc_lock);
+    nrspin_lock(&d->page_alloc_lock);
     page_list_add_tail(page, &d->resv_page_list);
-    spin_unlock(&d->page_alloc_lock);
+    nrspin_unlock(&d->page_alloc_lock);
     return INVALID_MFN;
 }
 #endif
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 1db2bbdb6a..8d05c57f69 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -369,9 +369,9 @@ long read_console_ring(struct xen_sysctl_readconsole *op)
 
     if ( op->clear )
     {
-        spin_lock_irq(&console_lock);
+        nrspin_lock_irq(&console_lock);
         conringc = p - c > conring_size ? p - conring_size : c;
-        spin_unlock_irq(&console_lock);
+        nrspin_unlock_irq(&console_lock);
     }
 
     op->count = sofar;
@@ -639,7 +639,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
         if ( is_hardware_domain(cd) )
         {
             /* Use direct console output as it could be interactive */
-            spin_lock_irq(&console_lock);
+            nrspin_lock_irq(&console_lock);
 
             console_serial_puts(kbuf, kcount);
             video_puts(kbuf, kcount);
@@ -660,7 +660,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
                 tasklet_schedule(&notify_dom0_con_ring_tasklet);
             }
 
-            spin_unlock_irq(&console_lock);
+            nrspin_unlock_irq(&console_lock);
         }
         else
         {
@@ -1027,9 +1027,9 @@ void __init console_init_preirq(void)
     pv_console_set_rx_handler(serial_rx);
 
     /* HELLO WORLD --- start-of-day banner text. */
-    spin_lock(&console_lock);
+    nrspin_lock(&console_lock);
     __putstr(xen_banner());
-    spin_unlock(&console_lock);
+    nrspin_unlock(&console_lock);
     printk("Xen version %d.%d%s (%s@%s) (%s) %s %s\n",
            xen_major_version(), xen_minor_version(), xen_extra_version(),
            xen_compile_by(), xen_compile_domain(), xen_compiler(),
@@ -1066,13 +1066,13 @@ void __init console_init_ring(void)
     }
     opt_conring_size = PAGE_SIZE << order;
 
-    spin_lock_irqsave(&console_lock, flags);
+    nrspin_lock_irqsave(&console_lock, flags);
     for ( i = conringc ; i != conringp; i++ )
         ring[i & (opt_conring_size - 1)] = conring[i & (conring_size - 1)];
     conring = ring;
     smp_wmb(); /* Allow users of console_force_unlock() to see larger buffer. */
     conring_size = opt_conring_size;
-    spin_unlock_irqrestore(&console_lock, flags);
+    nrspin_unlock_irqrestore(&console_lock, flags);
 
     printk("Allocated console ring of %u KiB.\n", opt_conring_size >> 10);
 }
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index ac3bef267a..82ef99d3b6 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -101,6 +101,8 @@ struct lock_profile_qhead {
 };
 
 #define _LOCK_PROFILE(lockname) { .name = #lockname, .lock = &lockname, }
+#define _RLOCK_PROFILE(lockname) { .name = #lockname, .rlock = &lockname,     \
+    .is_rlock = 1, }
 #define _LOCK_PROFILE_PTR(name)                                               \
     static struct lock_profile * const __lock_profile_##name                  \
     __used_section(".lockprofile.data") =                                     \
@@ -117,10 +119,10 @@ struct lock_profile_qhead {
     _LOCK_PROFILE_PTR(l)
 #define DEFINE_RSPINLOCK(l)                                                   \
     rspinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                \
-    static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
+    static struct lock_profile __lock_profile_data_##l = _RLOCK_PROFILE(l);   \
     _LOCK_PROFILE_PTR(l)
 
-#define __spin_lock_init_prof(s, l, locktype)                                 \
+#define __spin_lock_init_prof(s, l, lockptr, locktype, isr)                   \
     do {                                                                      \
         struct lock_profile *prof;                                            \
         prof = xzalloc(struct lock_profile);                                  \
@@ -133,13 +135,16 @@ struct lock_profile_qhead {
             break;                                                            \
         }                                                                     \
         prof->name = #l;                                                      \
-        prof->lock = &(s)->l;                                                 \
+        prof->lockptr = &(s)->l;                                              \
+        prof->is_rlock = isr;                                                 \
         prof->next = (s)->profile_head.elem_q;                                \
         (s)->profile_head.elem_q = prof;                                      \
     } while( 0 )
 
-#define spin_lock_init_prof(s, l) __spin_lock_init_prof(s, l, spinlock_t)
-#define rspin_lock_init_prof(s, l) __spin_lock_init_prof(s, l, rspinlock_t)
+#define spin_lock_init_prof(s, l)                                             \
+    __spin_lock_init_prof(s, l, lock, spinlock_t, 0)
+#define rspin_lock_init_prof(s, l)                                            \
+    __spin_lock_init_prof(s, l, rlock, rspinlock_t, 1)
 
 void _lock_profile_register_struct(
     int32_t type, struct lock_profile_qhead *qhead, int32_t idx);
@@ -174,6 +179,7 @@ struct lock_profile_qhead { };
 
 #endif
 
+
 typedef union {
     uint32_t head_tail;
     struct {
@@ -261,4 +267,12 @@ void rspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags);
 /* Ensure a lock is quiescent between two critical operations. */
 #define spin_barrier(l)               _spin_barrier(l)
 
+#define nrspin_trylock(l)    spin_trylock(l)
+#define nrspin_lock(l)       spin_lock(l)
+#define nrspin_unlock(l)     spin_unlock(l)
+#define nrspin_lock_irq(l)   spin_lock_irq(l)
+#define nrspin_unlock_irq(l) spin_unlock_irq(l)
+#define nrspin_lock_irqsave(l, f)      spin_lock_irqsave(l, f)
+#define nrspin_unlock_irqrestore(l, f) spin_unlock_irqrestore(l, f)
+
 #endif /* __SPINLOCK_H__ */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:48:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:48:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652858.1018967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzNA-0001lI-8Z; Tue, 12 Dec 2023 09:48:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652858.1018967; Tue, 12 Dec 2023 09:48:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzNA-0001kz-5M; Tue, 12 Dec 2023 09:48:16 +0000
Received: by outflank-mailman (input) for mailman id 652858;
 Tue, 12 Dec 2023 09:48: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzN8-0007Gv-Lx
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:48:14 +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 9132306b-98d3-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 10:48:13 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 5EE4D1F8AF;
 Tue, 12 Dec 2023 09:48:13 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 25CBD139E9;
 Tue, 12 Dec 2023 09:48:13 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id NfAGCF0seGXifgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09:48: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: 9132306b-98d3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374493; 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=JqufYzI2VSdAkZ5M5j8hnnU6lqQ01enR77XYZZhm6gU=;
	b=RS0mBIQIWvWD3yz04dS6i8xt3FH+xEsh06cP6VAMODVwwM0A4buG9E7aP1qiXJoN1HU4Vh
	Bgq4m3asfdOoKtk6krfmEdmvaf9YtTElB3baiW9CckHIm70JRFDKNGA7/UUTPF7/YKRF5G
	R1oPE4RzeogH0pnPLtPMpsYC6EevDs8=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374493; 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=JqufYzI2VSdAkZ5M5j8hnnU6lqQ01enR77XYZZhm6gU=;
	b=RS0mBIQIWvWD3yz04dS6i8xt3FH+xEsh06cP6VAMODVwwM0A4buG9E7aP1qiXJoN1HU4Vh
	Bgq4m3asfdOoKtk6krfmEdmvaf9YtTElB3baiW9CckHIm70JRFDKNGA7/UUTPF7/YKRF5G
	R1oPE4RzeogH0pnPLtPMpsYC6EevDs8=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v4 08/12] xen/spinlock: add another function level
Date: Tue, 12 Dec 2023 10:47:21 +0100
Message-Id: <20231212094725.22184-9-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 18.90
X-Spam-Flag: YES
X-Spam-Level: ******
X-Spamd-Bar: ++++++
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=RS0mBIQI;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [6.09 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[99.99%];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 6.09
X-Rspamd-Queue-Id: 5EE4D1F8AF
X-Spam-Flag: NO

Add another function level in spinlock.c hiding the spinlock_t layout
from the low level locking code.

This is done in preparation of introducing rspinlock_t for recursive
locks without having to duplicate all of the locking code.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 xen/common/spinlock.c      | 104 +++++++++++++++++++++++--------------
 xen/include/xen/spinlock.h |   1 +
 2 files changed, 65 insertions(+), 40 deletions(-)

diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 7d611d3d7d..31d12b1006 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -261,29 +261,31 @@ void spin_debug_disable(void)
 
 #ifdef CONFIG_DEBUG_LOCK_PROFILE
 
+#define LOCK_PROFILE_PAR lock->profile
 #define LOCK_PROFILE_REL                                                     \
-    if ( lock->profile )                                                     \
+    if ( profile )                                                           \
     {                                                                        \
-        lock->profile->time_hold += NOW() - lock->profile->time_locked;      \
-        lock->profile->lock_cnt++;                                           \
+        profile->time_hold += NOW() - profile->time_locked;                  \
+        profile->lock_cnt++;                                                 \
     }
 #define LOCK_PROFILE_VAR(var, val)    s_time_t var = (val)
 #define LOCK_PROFILE_BLOCK(var)       var = var ? : NOW()
 #define LOCK_PROFILE_BLKACC(tst, val)                                        \
     if ( tst )                                                               \
     {                                                                        \
-        lock->profile->time_block += lock->profile->time_locked - (val);     \
-        lock->profile->block_cnt++;                                          \
+        profile->time_block += profile->time_locked - (val);                 \
+        profile->block_cnt++;                                                \
     }
 #define LOCK_PROFILE_GOT(val)                                                \
-    if ( lock->profile )                                                     \
+    if ( profile )                                                           \
     {                                                                        \
-        lock->profile->time_locked = NOW();                                  \
+        profile->time_locked = NOW();                                        \
         LOCK_PROFILE_BLKACC(val, val);                                       \
     }
 
 #else
 
+#define LOCK_PROFILE_PAR NULL
 #define LOCK_PROFILE_REL
 #define LOCK_PROFILE_VAR(var, val)
 #define LOCK_PROFILE_BLOCK(var)
@@ -307,17 +309,18 @@ static always_inline uint16_t observe_head(const spinlock_tickets_t *t)
     return read_atomic(&t->head);
 }
 
-static void always_inline spin_lock_common(spinlock_t *lock,
+static void always_inline spin_lock_common(spinlock_tickets_t *t,
+                                           union lock_debug *debug,
+                                           struct lock_profile *profile,
                                            void (*cb)(void *data), void *data)
 {
     spinlock_tickets_t tickets = SPINLOCK_TICKET_INC;
     LOCK_PROFILE_VAR(block, 0);
 
-    check_lock(&lock->debug, false);
+    check_lock(debug, false);
     preempt_disable();
-    tickets.head_tail = arch_fetch_and_add(&lock->tickets.head_tail,
-                                           tickets.head_tail);
-    while ( tickets.tail != observe_head(&lock->tickets) )
+    tickets.head_tail = arch_fetch_and_add(&t->head_tail, tickets.head_tail);
+    while ( tickets.tail != observe_head(t) )
     {
         LOCK_PROFILE_BLOCK(block);
         if ( cb )
@@ -325,18 +328,19 @@ static void always_inline spin_lock_common(spinlock_t *lock,
         arch_lock_relax();
     }
     arch_lock_acquire_barrier();
-    got_lock(&lock->debug);
+    got_lock(debug);
     LOCK_PROFILE_GOT(block);
 }
 
 void _spin_lock(spinlock_t *lock)
 {
-    spin_lock_common(lock, NULL, NULL);
+    spin_lock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR, NULL,
+                     NULL);
 }
 
 void _spin_lock_cb(spinlock_t *lock, void (*cb)(void *data), void *data)
 {
-    spin_lock_common(lock, cb, data);
+    spin_lock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR, cb, data);
 }
 
 void _spin_lock_irq(spinlock_t *lock)
@@ -355,16 +359,23 @@ unsigned long _spin_lock_irqsave(spinlock_t *lock)
     return flags;
 }
 
-void _spin_unlock(spinlock_t *lock)
+static void always_inline spin_unlock_common(spinlock_tickets_t *t,
+                                             union lock_debug *debug,
+                                             struct lock_profile *profile)
 {
     LOCK_PROFILE_REL;
-    rel_lock(&lock->debug);
+    rel_lock(debug);
     arch_lock_release_barrier();
-    add_sized(&lock->tickets.head, 1);
+    add_sized(&t->head, 1);
     arch_lock_signal();
     preempt_enable();
 }
 
+void _spin_unlock(spinlock_t *lock)
+{
+    spin_unlock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
+}
+
 void _spin_unlock_irq(spinlock_t *lock)
 {
     _spin_unlock(lock);
@@ -377,25 +388,25 @@ void _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
     local_irq_restore(flags);
 }
 
+static int always_inline spin_is_locked_common(const spinlock_tickets_t *t)
+{
+    return t->head != t->tail;
+}
+
 int _spin_is_locked(const spinlock_t *lock)
 {
-    /*
-     * Recursive locks may be locked by another CPU, yet we return
-     * "false" here, making this function suitable only for use in
-     * ASSERT()s and alike.
-     */
-    return lock->recurse_cpu == SPINLOCK_NO_CPU
-           ? lock->tickets.head != lock->tickets.tail
-           : lock->recurse_cpu == smp_processor_id();
+    return spin_is_locked_common(&lock->tickets);
 }
 
-int _spin_trylock(spinlock_t *lock)
+static int always_inline spin_trylock_common(spinlock_tickets_t *t,
+                                             union lock_debug *debug,
+                                             struct lock_profile *profile)
 {
     spinlock_tickets_t old, new;
 
     preempt_disable();
-    check_lock(&lock->debug, true);
-    old = observe_lock(&lock->tickets);
+    check_lock(debug, true);
+    old = observe_lock(t);
     if ( old.head != old.tail )
     {
         preempt_enable();
@@ -403,8 +414,7 @@ int _spin_trylock(spinlock_t *lock)
     }
     new = old;
     new.tail++;
-    if ( cmpxchg(&lock->tickets.head_tail,
-                 old.head_tail, new.head_tail) != old.head_tail )
+    if ( cmpxchg(&t->head_tail, old.head_tail, new.head_tail) != old.head_tail )
     {
         preempt_enable();
         return 0;
@@ -413,29 +423,41 @@ int _spin_trylock(spinlock_t *lock)
      * cmpxchg() is a full barrier so no need for an
      * arch_lock_acquire_barrier().
      */
-    got_lock(&lock->debug);
+    got_lock(debug);
     LOCK_PROFILE_GOT(0);
 
     return 1;
 }
 
-void _spin_barrier(spinlock_t *lock)
+int _spin_trylock(spinlock_t *lock)
+{
+    return spin_trylock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
+}
+
+static void always_inline spin_barrier_common(spinlock_tickets_t *t,
+                                              union lock_debug *debug,
+                                              struct lock_profile *profile)
 {
     spinlock_tickets_t sample;
     LOCK_PROFILE_VAR(block, NOW());
 
-    check_barrier(&lock->debug);
+    check_barrier(debug);
     smp_mb();
-    sample = observe_lock(&lock->tickets);
+    sample = observe_lock(t);
     if ( sample.head != sample.tail )
     {
-        while ( observe_head(&lock->tickets) == sample.head )
+        while ( observe_head(t) == sample.head )
             arch_lock_relax();
-        LOCK_PROFILE_BLKACC(lock->profile, block);
+        LOCK_PROFILE_BLKACC(profile, block);
     }
     smp_mb();
 }
 
+void _spin_barrier(spinlock_t *lock)
+{
+    spin_barrier_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
+}
+
 int rspin_trylock(rspinlock_t *lock)
 {
     unsigned int cpu = smp_processor_id();
@@ -448,7 +470,8 @@ int rspin_trylock(rspinlock_t *lock)
 
     if ( likely(lock->recurse_cpu != cpu) )
     {
-        if ( !spin_trylock(lock) )
+        if ( !spin_trylock_common(&lock->tickets, &lock->debug,
+                                  LOCK_PROFILE_PAR) )
             return 0;
         lock->recurse_cpu = cpu;
     }
@@ -466,7 +489,8 @@ void rspin_lock(rspinlock_t *lock)
 
     if ( likely(lock->recurse_cpu != cpu) )
     {
-        _spin_lock(lock);
+        spin_lock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR, NULL,
+                         NULL);
         lock->recurse_cpu = cpu;
     }
 
@@ -490,7 +514,7 @@ void rspin_unlock(rspinlock_t *lock)
     if ( likely(--lock->recurse_cnt == 0) )
     {
         lock->recurse_cpu = SPINLOCK_NO_CPU;
-        spin_unlock(lock);
+        spin_unlock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
     }
 }
 
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index 82ef99d3b6..d6f4b66613 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -163,6 +163,7 @@ extern void cf_check spinlock_profile_reset(unsigned char key);
 #else
 
 struct lock_profile_qhead { };
+struct lock_profile { };
 
 #define SPIN_LOCK_UNLOCKED {                                                  \
     .recurse_cpu = SPINLOCK_NO_CPU,                                           \
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:48:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652860.1018977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzNH-0002Qz-HJ; Tue, 12 Dec 2023 09:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652860.1018977; Tue, 12 Dec 2023 09: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 1rCzNH-0002Qs-Dj; Tue, 12 Dec 2023 09:48:23 +0000
Received: by outflank-mailman (input) for mailman id 652860;
 Tue, 12 Dec 2023 09:48:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzNF-0006i7-DE
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:48:21 +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 948b53c6-98d3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:48:19 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 06E76224B1;
 Tue, 12 Dec 2023 09:48:19 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id B6EEE139E9;
 Tue, 12 Dec 2023 09:48:18 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id 4pZtK2IseGXqfgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09: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>
X-Inumbo-ID: 948b53c6-98d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374499; 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=GeHSgUQmT5Ki5ph3MFsQ59wc1zBmxDp8n3ZyP6ZPgHs=;
	b=Cmfoz7I/V4oW5S7TltXIHoolTK9kmfZrWSj1gNeUqmiJhRSeYYD4q9XbZ8mn4MGXwSaR75
	5hOTo8mahHvw7kcZO+SNWB7LdjR2W7lYbEJpMH0YtxQ9Y3gv6X8vMJD0Jwzoqwcc+gj/u5
	ExsNZ9HYTM8mKNGN2aIvxV1Ia1VHv1Q=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374499; 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=GeHSgUQmT5Ki5ph3MFsQ59wc1zBmxDp8n3ZyP6ZPgHs=;
	b=Cmfoz7I/V4oW5S7TltXIHoolTK9kmfZrWSj1gNeUqmiJhRSeYYD4q9XbZ8mn4MGXwSaR75
	5hOTo8mahHvw7kcZO+SNWB7LdjR2W7lYbEJpMH0YtxQ9Y3gv6X8vMJD0Jwzoqwcc+gj/u5
	ExsNZ9HYTM8mKNGN2aIvxV1Ia1VHv1Q=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v4 09/12] xen/spinlock: add missing rspin_is_locked() and rspin_barrier()
Date: Tue, 12 Dec 2023 10:47:22 +0100
Message-Id: <20231212094725.22184-10-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 18.90
X-Spam-Flag: YES
X-Spam-Level: ******
X-Spamd-Bar: ++++++
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="Cmfoz7I/";
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [6.09 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[10];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 6.09
X-Rspamd-Queue-Id: 06E76224B1
X-Spam-Flag: NO

Add rspin_is_locked() and rspin_barrier() in order to prepare differing
spinlock_t and rspinlock_t types.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- partially carved out from V1 patch, partially new
---
 xen/arch/x86/mm/p2m-pod.c     |  2 +-
 xen/common/domain.c           |  2 +-
 xen/common/page_alloc.c       |  2 +-
 xen/common/spinlock.c         | 17 +++++++++++++++++
 xen/drivers/char/console.c    |  4 ++--
 xen/drivers/passthrough/pci.c |  2 +-
 xen/include/xen/spinlock.h    |  2 ++
 7 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
index 61a91f5a94..40d3b25d25 100644
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -385,7 +385,7 @@ int p2m_pod_empty_cache(struct domain *d)
 
     /* After this barrier no new PoD activities can happen. */
     BUG_ON(!d->is_dying);
-    spin_barrier(&p2m->pod.lock.lock);
+    rspin_barrier(&p2m->pod.lock.lock);
 
     lock_page_alloc(p2m);
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index dc97755391..198cb36878 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -982,7 +982,7 @@ int domain_kill(struct domain *d)
     case DOMDYING_alive:
         domain_pause(d);
         d->is_dying = DOMDYING_dying;
-        spin_barrier(&d->domain_lock);
+        rspin_barrier(&d->domain_lock);
         argo_destroy(d);
         vnuma_destroy(d->vnuma);
         domain_set_outstanding_pages(d, 0);
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index a25c00a7d4..14010b6fa5 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -476,7 +476,7 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
 {
     long dom_before, dom_after, dom_claimed, sys_before, sys_after;
 
-    ASSERT(spin_is_locked(&d->page_alloc_lock));
+    ASSERT(rspin_is_locked(&d->page_alloc_lock));
     d->tot_pages += pages;
 
     /*
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 31d12b1006..91e325f3fe 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -458,6 +458,23 @@ void _spin_barrier(spinlock_t *lock)
     spin_barrier_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
 }
 
+int rspin_is_locked(const rspinlock_t *lock)
+{
+    /*
+     * Recursive locks may be locked by another CPU, yet we return
+     * "false" here, making this function suitable only for use in
+     * ASSERT()s and alike.
+     */
+    return lock->recurse_cpu == SPINLOCK_NO_CPU
+           ? spin_is_locked_common(&lock->tickets)
+           : lock->recurse_cpu == smp_processor_id();
+}
+
+void rspin_barrier(rspinlock_t *lock)
+{
+    spin_barrier_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
+}
+
 int rspin_trylock(rspinlock_t *lock)
 {
     unsigned int cpu = smp_processor_id();
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 8d05c57f69..e6502641eb 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -328,7 +328,7 @@ static void cf_check do_dec_thresh(unsigned char key, struct cpu_user_regs *regs
 
 static void conring_puts(const char *str, size_t len)
 {
-    ASSERT(spin_is_locked(&console_lock));
+    ASSERT(rspin_is_locked(&console_lock));
 
     while ( len-- )
         conring[CONRING_IDX_MASK(conringp++)] = *str++;
@@ -766,7 +766,7 @@ static void __putstr(const char *str)
 {
     size_t len = strlen(str);
 
-    ASSERT(spin_is_locked(&console_lock));
+    ASSERT(rspin_is_locked(&console_lock));
 
     console_serial_puts(str, len);
     video_puts(str, len);
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 41444f8e2e..94f52b7acc 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -64,7 +64,7 @@ void pcidevs_unlock(void)
 
 bool pcidevs_locked(void)
 {
-    return !!spin_is_locked(&_pcidevs_lock);
+    return rspin_is_locked(&_pcidevs_lock);
 }
 
 static struct radix_tree_root pci_segments;
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index d6f4b66613..e63db4eb4c 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -239,6 +239,8 @@ void rspin_lock(rspinlock_t *lock);
 unsigned long __rspin_lock_irqsave(rspinlock_t *lock);
 void rspin_unlock(rspinlock_t *lock);
 void rspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags);
+int rspin_is_locked(const rspinlock_t *lock);
+void rspin_barrier(rspinlock_t *lock);
 
 #define spin_lock(l)                  _spin_lock(l)
 #define spin_lock_cb(l, c, d)         _spin_lock_cb(l, c, d)
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:48:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:48:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652862.1018987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzNK-0002pl-PZ; Tue, 12 Dec 2023 09:48:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652862.1018987; Tue, 12 Dec 2023 09:48: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 1rCzNK-0002pX-Mh; Tue, 12 Dec 2023 09:48:26 +0000
Received: by outflank-mailman (input) for mailman id 652862;
 Tue, 12 Dec 2023 09:48:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzNK-0007Gv-A9
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:48:26 +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 97da7a10-98d3-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 10:48:25 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 96282224B7;
 Tue, 12 Dec 2023 09:48:24 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 5C7A3139E9;
 Tue, 12 Dec 2023 09:48:24 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id 2X9YFWgseGX1fgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09:48: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: 97da7a10-98d3-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374504; 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=BklndjCL4Uz1x9x3WS3WiTgdhj80m92SjU/6dJo8OCQ=;
	b=VhO+QMOAA1MSIMe5kcASh6vyJs81aCpKNXCiEN64r6Ip+WsduMUegl4RaG/MUD4aWfuiAn
	L+enWUnDzxDMVn2+839l3mO9H5WGtISAvwbzsQCAvLxAv4B+8QC242+j8B0sbZZprJS3OI
	tapeKTxXZmMCU++ih6mvOXHKYQ22VxY=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374504; 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=BklndjCL4Uz1x9x3WS3WiTgdhj80m92SjU/6dJo8OCQ=;
	b=VhO+QMOAA1MSIMe5kcASh6vyJs81aCpKNXCiEN64r6Ip+WsduMUegl4RaG/MUD4aWfuiAn
	L+enWUnDzxDMVn2+839l3mO9H5WGtISAvwbzsQCAvLxAv4B+8QC242+j8B0sbZZprJS3OI
	tapeKTxXZmMCU++ih6mvOXHKYQ22VxY=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v4 10/12] xen/spinlock: split recursive spinlocks from normal ones
Date: Tue, 12 Dec 2023 10:47:23 +0100
Message-Id: <20231212094725.22184-11-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 8.80
X-Spam-Flag: NO
X-Spam-Level: **********
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spamd-Result: default: False [10.00 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 10.00

Recursive and normal spinlocks are sharing the same data structure for
representation of the lock. This has two major disadvantages:

- it is not clear from the definition of a lock, whether it is intended
  to be used recursive or not, while a mixture of both usage variants
  needs to be

- in production builds (builds without CONFIG_DEBUG_LOCKS) the needed
  data size of an ordinary spinlock is 8 bytes instead of 4, due to the
  additional recursion data needed (associated with that the rwlock
  data is using 12 instead of only 8 bytes)

Fix that by introducing a struct spinlock_recursive for recursive
spinlocks only, and switch recursive spinlock functions to require
pointers to this new struct.

This allows to check the correct usage at build time.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- use shorter names (Jan Beulich)
- don't embed spinlock_t in rspinlock_t (Jan Beulich)
---
 xen/common/spinlock.c      | 49 ++++++++++++++++++++++++++++++++
 xen/include/xen/spinlock.h | 58 +++++++++++++++++++++++++-------------
 2 files changed, 88 insertions(+), 19 deletions(-)

diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 91e325f3fe..d0f8393504 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -541,6 +541,55 @@ void rspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags)
     local_irq_restore(flags);
 }
 
+int nrspin_trylock(rspinlock_t *lock)
+{
+    check_lock(&lock->debug, true);
+
+    if ( unlikely(lock->recurse_cpu != SPINLOCK_NO_CPU) )
+        return 0;
+
+    return spin_trylock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
+}
+
+void nrspin_lock(rspinlock_t *lock)
+{
+    spin_lock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR, NULL,
+                     NULL);
+}
+
+void nrspin_unlock(rspinlock_t *lock)
+{
+    spin_unlock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
+}
+
+void nrspin_lock_irq(rspinlock_t *lock)
+{
+    ASSERT(local_irq_is_enabled());
+    local_irq_disable();
+    nrspin_lock(lock);
+}
+
+void nrspin_unlock_irq(rspinlock_t *lock)
+{
+    nrspin_unlock(lock);
+    local_irq_enable();
+}
+
+unsigned long __nrspin_lock_irqsave(rspinlock_t *lock)
+{
+    unsigned long flags;
+
+    local_irq_save(flags);
+    nrspin_lock(lock);
+    return flags;
+}
+
+void nrspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags)
+{
+    nrspin_unlock(lock);
+    local_irq_restore(flags);
+}
+
 #ifdef CONFIG_DEBUG_LOCK_PROFILE
 
 struct lock_profile_anc {
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index e63db4eb4c..ca18b9250a 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -76,8 +76,6 @@ union lock_debug { };
 */
 
 struct spinlock;
-/* Temporary hack until a dedicated struct rspinlock is existing. */
-#define rspinlock spinlock
 
 struct lock_profile {
     struct lock_profile *next;       /* forward link */
@@ -108,6 +106,10 @@ struct lock_profile_qhead {
     __used_section(".lockprofile.data") =                                     \
     &__lock_profile_data_##name
 #define _SPIN_LOCK_UNLOCKED(x) {                                              \
+    .debug =_LOCK_DEBUG,                                                      \
+    .profile = x,                                                             \
+}
+#define _RSPIN_LOCK_UNLOCKED(x) {                                             \
     .recurse_cpu = SPINLOCK_NO_CPU,                                           \
     .debug =_LOCK_DEBUG,                                                      \
     .profile = x,                                                             \
@@ -117,8 +119,9 @@ struct lock_profile_qhead {
     spinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                 \
     static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
     _LOCK_PROFILE_PTR(l)
+#define RSPIN_LOCK_UNLOCKED _RSPIN_LOCK_UNLOCKED(NULL)
 #define DEFINE_RSPINLOCK(l)                                                   \
-    rspinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                \
+    rspinlock_t l = _RSPIN_LOCK_UNLOCKED(NULL);                               \
     static struct lock_profile __lock_profile_data_##l = _RLOCK_PROFILE(l);   \
     _LOCK_PROFILE_PTR(l)
 
@@ -143,8 +146,11 @@ struct lock_profile_qhead {
 
 #define spin_lock_init_prof(s, l)                                             \
     __spin_lock_init_prof(s, l, lock, spinlock_t, 0)
-#define rspin_lock_init_prof(s, l)                                            \
-    __spin_lock_init_prof(s, l, rlock, rspinlock_t, 1)
+#define rspin_lock_init_prof(s, l) do {                                       \
+        __spin_lock_init_prof(s, l, rlock, rspinlock_t, 1);                   \
+        (s)->l.recurse_cpu = SPINLOCK_NO_CPU;                                 \
+        (s)->l.recurse_cnt = 0;                                               \
+    } while (0)
 
 void _lock_profile_register_struct(
     int32_t type, struct lock_profile_qhead *qhead, int32_t idx);
@@ -166,11 +172,15 @@ struct lock_profile_qhead { };
 struct lock_profile { };
 
 #define SPIN_LOCK_UNLOCKED {                                                  \
+    .debug =_LOCK_DEBUG,                                                      \
+}
+#define RSPIN_LOCK_UNLOCKED {                                                 \
+    .debug =_LOCK_DEBUG,                                                      \
     .recurse_cpu = SPINLOCK_NO_CPU,                                           \
     .debug =_LOCK_DEBUG,                                                      \
 }
 #define DEFINE_SPINLOCK(l) spinlock_t l = SPIN_LOCK_UNLOCKED
-#define DEFINE_RSPINLOCK(l) rspinlock_t l = SPIN_LOCK_UNLOCKED
+#define DEFINE_RSPINLOCK(l) rspinlock_t l = RSPIN_LOCK_UNLOCKED
 
 #define spin_lock_init_prof(s, l) spin_lock_init(&((s)->l))
 #define rspin_lock_init_prof(s, l) rspin_lock_init(&((s)->l))
@@ -180,7 +190,6 @@ struct lock_profile { };
 
 #endif
 
-
 typedef union {
     uint32_t head_tail;
     struct {
@@ -192,6 +201,14 @@ typedef union {
 #define SPINLOCK_TICKET_INC { .head_tail = 0x10000, }
 
 typedef struct spinlock {
+    spinlock_tickets_t tickets;
+    union lock_debug debug;
+#ifdef CONFIG_DEBUG_LOCK_PROFILE
+    struct lock_profile *profile;
+#endif
+} spinlock_t;
+
+typedef struct rspinlock {
     spinlock_tickets_t tickets;
     uint16_t recurse_cpu:SPINLOCK_CPU_BITS;
 #define SPINLOCK_NO_CPU        ((1u << SPINLOCK_CPU_BITS) - 1)
@@ -202,12 +219,10 @@ typedef struct spinlock {
 #ifdef CONFIG_DEBUG_LOCK_PROFILE
     struct lock_profile *profile;
 #endif
-} spinlock_t;
-
-typedef spinlock_t rspinlock_t;
+} rspinlock_t;
 
 #define spin_lock_init(l) (*(l) = (spinlock_t)SPIN_LOCK_UNLOCKED)
-#define rspin_lock_init(l) (*(l) = (rspinlock_t)SPIN_LOCK_UNLOCKED)
+#define rspin_lock_init(l) (*(l) = (rspinlock_t)RSPIN_LOCK_UNLOCKED)
 
 void _spin_lock(spinlock_t *lock);
 void _spin_lock_cb(spinlock_t *lock, void (*cb)(void *data), void *data);
@@ -242,6 +257,19 @@ void rspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags);
 int rspin_is_locked(const rspinlock_t *lock);
 void rspin_barrier(rspinlock_t *lock);
 
+int nrspin_trylock(rspinlock_t *lock);
+void nrspin_lock(rspinlock_t *lock);
+void nrspin_unlock(rspinlock_t *lock);
+void nrspin_lock_irq(rspinlock_t *lock);
+void nrspin_unlock_irq(rspinlock_t *lock);
+#define nrspin_lock_irqsave(l, f)                               \
+    ({                                                          \
+        BUILD_BUG_ON(sizeof(f) != sizeof(unsigned long));       \
+        ((f) = __nrspin_lock_irqsave(l));                       \
+    })
+unsigned long __nrspin_lock_irqsave(rspinlock_t *lock);
+void nrspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags);
+
 #define spin_lock(l)                  _spin_lock(l)
 #define spin_lock_cb(l, c, d)         _spin_lock_cb(l, c, d)
 #define spin_lock_irq(l)              _spin_lock_irq(l)
@@ -270,12 +298,4 @@ void rspin_barrier(rspinlock_t *lock);
 /* Ensure a lock is quiescent between two critical operations. */
 #define spin_barrier(l)               _spin_barrier(l)
 
-#define nrspin_trylock(l)    spin_trylock(l)
-#define nrspin_lock(l)       spin_lock(l)
-#define nrspin_unlock(l)     spin_unlock(l)
-#define nrspin_lock_irq(l)   spin_lock_irq(l)
-#define nrspin_unlock_irq(l) spin_unlock_irq(l)
-#define nrspin_lock_irqsave(l, f)      spin_lock_irqsave(l, f)
-#define nrspin_unlock_irqrestore(l, f) spin_unlock_irqrestore(l, f)
-
 #endif /* __SPINLOCK_H__ */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:51:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:51:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652875.1018996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzPf-0005jz-Ce; Tue, 12 Dec 2023 09:50:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652875.1018996; Tue, 12 Dec 2023 09:50:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzPf-0005js-A0; Tue, 12 Dec 2023 09:50:51 +0000
Received: by outflank-mailman (input) for mailman id 652875;
 Tue, 12 Dec 2023 09:50:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzNV-0006i7-SG
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:48:37 +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 9e84002a-98d3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:48:36 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 BE2EB1F74C;
 Tue, 12 Dec 2023 09:48:35 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 83F73139E9;
 Tue, 12 Dec 2023 09:48:35 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id gFz5HnMseGUAfwAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09:48:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e84002a-98d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374515; 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=o0uw0mmQZTxGdRt6ID2VqCT2e47nRjokh0HeNjme8pc=;
	b=GpYCzSlzf8uUWHp752gL4WHDqkywen/2Pq2rJqzgYiipkl4dTnvAsaSDdEVjDuCqWYYy1q
	kW5XhUATQEYwlYlnXiAYeEKuPjY1tuLtavOZ1L6rSBht0XhK4NgBRn9AfnKMf0aYk61XY/
	vHGIjVYXyUTBZGiCXC/zDnG9GWdWoyo=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374515; 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=o0uw0mmQZTxGdRt6ID2VqCT2e47nRjokh0HeNjme8pc=;
	b=GpYCzSlzf8uUWHp752gL4WHDqkywen/2Pq2rJqzgYiipkl4dTnvAsaSDdEVjDuCqWYYy1q
	kW5XhUATQEYwlYlnXiAYeEKuPjY1tuLtavOZ1L6rSBht0XhK4NgBRn9AfnKMf0aYk61XY/
	vHGIjVYXyUTBZGiCXC/zDnG9GWdWoyo=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
Date: Tue, 12 Dec 2023 10:47:25 +0100
Message-Id: <20231212094725.22184-13-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spam-Level: 
X-Spamd-Bar: /
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=GpYCzSlz;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [0.99 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: 0.99
X-Rspamd-Queue-Id: BE2EB1F74C
X-Spam-Flag: NO

Allow 16 bits per cpu number, which is the limit imposed by
spinlock_tickets_t.

This will allow up to 65535 cpus, while increasing only the size of
recursive spinlocks in debug builds from 8 to 12 bytes.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 xen/common/spinlock.c      |  1 +
 xen/include/xen/spinlock.h | 18 +++++++++---------
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 296bcf33e6..ae7c7c2086 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -481,6 +481,7 @@ int rspin_trylock(rspinlock_t *lock)
 
     /* Don't allow overflow of recurse_cpu field. */
     BUILD_BUG_ON(NR_CPUS > SPINLOCK_NO_CPU);
+    BUILD_BUG_ON(SPINLOCK_CPU_BITS > sizeof(lock->recurse_cpu) * 8);
     BUILD_BUG_ON(SPINLOCK_RECURSE_BITS < 3);
 
     check_lock(&lock->debug, true);
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index 87946965b2..d720778cc1 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -7,16 +7,16 @@
 #include <asm/system.h>
 #include <asm/spinlock.h>
 
-#define SPINLOCK_CPU_BITS  12
+#define SPINLOCK_CPU_BITS  16
 
 #ifdef CONFIG_DEBUG_LOCKS
 union lock_debug {
-    uint16_t val;
-#define LOCK_DEBUG_INITVAL 0xffff
+    uint32_t val;
+#define LOCK_DEBUG_INITVAL 0xffffffff
     struct {
-        uint16_t cpu:SPINLOCK_CPU_BITS;
-#define LOCK_DEBUG_PAD_BITS (14 - SPINLOCK_CPU_BITS)
-        uint16_t :LOCK_DEBUG_PAD_BITS;
+        uint32_t cpu:SPINLOCK_CPU_BITS;
+#define LOCK_DEBUG_PAD_BITS (30 - SPINLOCK_CPU_BITS)
+        uint32_t :LOCK_DEBUG_PAD_BITS;
         bool irq_safe:1;
         bool unseen:1;
     };
@@ -210,10 +210,10 @@ typedef struct spinlock {
 
 typedef struct rspinlock {
     spinlock_tickets_t tickets;
-    uint16_t recurse_cpu:SPINLOCK_CPU_BITS;
+    uint16_t recurse_cpu;
 #define SPINLOCK_NO_CPU        ((1u << SPINLOCK_CPU_BITS) - 1)
-#define SPINLOCK_RECURSE_BITS  (16 - SPINLOCK_CPU_BITS)
-    uint16_t recurse_cnt:SPINLOCK_RECURSE_BITS;
+#define SPINLOCK_RECURSE_BITS  8
+    uint8_t recurse_cnt;
 #define SPINLOCK_MAX_RECURSE   ((1u << SPINLOCK_RECURSE_BITS) - 1)
     union lock_debug debug;
 #ifdef CONFIG_DEBUG_LOCK_PROFILE
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:53:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652885.1019006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzS8-00071I-PC; Tue, 12 Dec 2023 09:53:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652885.1019006; Tue, 12 Dec 2023 09:53:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzS8-00071B-ME; Tue, 12 Dec 2023 09:53:24 +0000
Received: by outflank-mailman (input) for mailman id 652885;
 Tue, 12 Dec 2023 09:53:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=j5yJ=HX=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rCzS7-000715-OQ
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:53:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48c0b07a-98d4-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:53:21 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 48B9C4EE0737;
 Tue, 12 Dec 2023 10:53:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48c0b07a-98d4-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Tue, 12 Dec 2023 10:53:21 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 1/7] xen/shutdown: address MISRA C:2012 Rule 2.1
In-Reply-To: <b8aa0715-db0f-4832-9cd2-6bd2ca296853@suse.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <c0a8a12e39d688e101936d221af0f8eeefabe352.1702283415.git.nicola.vetrini@bugseng.com>
 <b8aa0715-db0f-4832-9cd2-6bd2ca296853@suse.com>
Message-ID: <984227ed9db13d3e22d95081b03a127a@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 2023-12-12 10:45, Jan Beulich wrote:
> On 11.12.2023 11:30, Nicola Vetrini wrote:
>> Given that 'hwdom_shutdown' is a noreturn function, unreachable
>> breaks can be eliminated to resolve violations of Rule 2.1.
>> On the occasion, the type of its parameter is changed to uint8_t.
> 
> I don't particularly mind that extra change, but it's entirely 
> unrelated
> here. We do such when we touch lines (or maybe adjacent lines) anyway,
> but here you had no need to touch either declaration or the header of
> the definition.
> 

Ok. I can make this a separate patch, since I'm already touching the 
function

>> --- a/xen/common/shutdown.c
>> +++ b/xen/common/shutdown.c
>> @@ -30,7 +30,7 @@ static void noreturn maybe_reboot(void)
>>      }
>>  }
>> 
>> -void hwdom_shutdown(u8 reason)
>> +void hwdom_shutdown(uint8_t reason)
>>  {
>>      switch ( reason )
>>      {
>> @@ -38,39 +38,32 @@ void hwdom_shutdown(u8 reason)
>>          printk("Hardware Dom%u halted: halting machine\n",
>>                 hardware_domain->domain_id);
>>          machine_halt();
>> -        break; /* not reached */
>> 
>>      case SHUTDOWN_crash:
>>          debugger_trap_immediate();
>>          printk("Hardware Dom%u crashed: ", 
>> hardware_domain->domain_id);
>>          kexec_crash(CRASHREASON_HWDOM);
>>          maybe_reboot();
>> -        break; /* not reached */
> 
> Given the function's name, I don't view this removal (and the similar 
> one
> further down) as acceptable. The function first needs renaming so that
> from its name one can no longer (wrongly) infer that it may reboot or 
> else
> return.
> 
> Jan

Something like "reboot_or_halt" would be okay?

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:53:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:53:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652888.1019017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzSS-0007XD-09; Tue, 12 Dec 2023 09:53:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652888.1019017; Tue, 12 Dec 2023 09: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 1rCzSR-0007X5-Tt; Tue, 12 Dec 2023 09:53:43 +0000
Received: by outflank-mailman (input) for mailman id 652888;
 Tue, 12 Dec 2023 09:53:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCzSQ-000715-2v
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:53:42 +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 53e2d840-98d4-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:53:40 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3332e351670so4926243f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 01:53:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g20-20020a05600c4ed400b0040c31bb66dcsm15672783wmq.20.2023.12.12.01.53.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 01:53:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53e2d840-98d4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702374820; x=1702979620; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=F1SydZvsbopBu/icAPKPoVlc7p/qggaakBqwEkAJFIE=;
        b=GQ8Quv6NUrePjNe2fsGDWj1crjZBG7RyTCoXWp7DHCdiQIQ9Ykbu+SM+jUuHe+96hk
         gmN10J6MxyUgC1TtBHhll1musFRHvwZD6zQFcYoOSR6MLNBthZtJM/7HyFl5oOuyYjoR
         9jGt/Dt7Fm3r/5T/WuQrjwuLHMLWKYOO7S2Gc6H8qG3MGVaJ68Sn0YXBx8p+IayBDZ6J
         SHdNAlY3XyHzFQiaieUvZfWORisLYBzg6cxf9iomQnkgW9+gVbmn7RKVVe9pICZqG/iM
         csD+mYTKUOkkUOpSw1CYypVafgc1rzYVKYjRoBQzAzLRTar3k/mx82idMTn2OTdBeNlc
         XyPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702374820; x=1702979620;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F1SydZvsbopBu/icAPKPoVlc7p/qggaakBqwEkAJFIE=;
        b=lwA8FYxXocMQU1pNVvYhVIcLOKLp66Ou9+anLHG5BKOc8hvTydxlx82KVr3VC/2njV
         eJmJfpMQ5YNjW3wCjorjExRd1a9ZBb3Quqe9Bfhc/YY67o/cCQ9UHOb1GJi1KZeyTOGA
         RKT7uzuAvrWj/6LUNl0Hhf1M1o1UON9gXve0GNr3FeX75o+8eOm+YnA56fD8YI3bnO0E
         7nUS+1t6e4eJJ9f9lHlRhEEmBqfYB/si9NH6bsaRunLf+aOkpJc/HyZzH7rIIuoRIHM9
         Jm9mR+2T+dEG8w89YlvXqQ3vAhpb7DaAXTyc+VFsBGZni5x/7Y6JCSwuBmhMZIQA0ytH
         rRYg==
X-Gm-Message-State: AOJu0Yx/fdc6o4l45ja67NwYs/BS4Lzsska6LHfxuKkfCcj3xprzTTbT
	butT4Zr8TDnH2gYcoRttbjun
X-Google-Smtp-Source: AGHT+IEmIo8c17Nv0bbU7s5adbxEAJhFfxsp6msh+pdzQ1DeUcasDrgNlT6NfMJD5y26KNoqCYt1mQ==
X-Received: by 2002:a05:600c:44e:b0:40b:5e22:2e0 with SMTP id s14-20020a05600c044e00b0040b5e2202e0mr1532334wmb.76.1702374819894;
        Tue, 12 Dec 2023 01:53:39 -0800 (PST)
Message-ID: <0ad1d3f5-2a23-4ee9-a6e7-ebb824d2b7d7@suse.com>
Date: Tue, 12 Dec 2023 10:53:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/7] x86/mm: address MISRA C:2012 Rule 2.1
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.org>
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>, Wei Liu <wl@xen.org>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <5913d8871ff6c4f320c521e50e550a64e58d4351.1702283415.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312111741390.1703076@ubuntu-linux-20-04-desktop>
 <ff95c65f53ab8acfd577ec132009cd7b@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: <ff95c65f53ab8acfd577ec132009cd7b@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2023 10:12, Nicola Vetrini wrote:
> On 2023-12-12 02:42, Stefano Stabellini wrote:
>> On Mon, 11 Dec 2023, Nicola Vetrini wrote:
>>> The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
>>> is unreachable because all switch clauses end with returns.
>>> However, some of them can be substituted with "break"s to allow
>>> the "return 0" outside the switch to be reachable.
>>>
>>> No functional changes.
>>
>> This is correct but makes the code inconsistent. I would either remove
>> the return 0; at the end of arch_memory_op, or do the following:
>>
>> - initialize rc to 0 at the beginning: int rc = 0;
>> - all switch clauses break instead of return;
>> - at the end: return rc;
> 
> Given the feedback on the Arm side, the first solution is likely to be 
> preferred.

I wouldn't mind either option, with
- the former ensured to be okay with all compiler versions we (still)
  support,
- the latter having the initialize rc to 0 part dropped; imo it's better
  if every case block makes sure to set the intended value explicitly.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 09:54:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 09:54:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652891.1019027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzSu-0008CI-9f; Tue, 12 Dec 2023 09:54:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652891.1019027; Tue, 12 Dec 2023 09: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 1rCzSu-0008CB-5e; Tue, 12 Dec 2023 09:54:12 +0000
Received: by outflank-mailman (input) for mailman id 652891;
 Tue, 12 Dec 2023 09: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rCzNQ-0006i7-9p
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 09:48:32 +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 9b26cd42-98d3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 10:48:30 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98])
 (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 2B6511F74C;
 Tue, 12 Dec 2023 09:48:30 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id E5F36139E9;
 Tue, 12 Dec 2023 09:48:29 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id GlrjNm0seGX+fgAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 09: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>
X-Inumbo-ID: 9b26cd42-98d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374510; 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=X9mtlOEEzRw0edEwEif+vRv2D1U88AlwXf4iThb3cgE=;
	b=j16YnGSd8HmcxmMNaY9AbaLdu2gwwGtPOeiAo3vlqhr2TN6EJVeWVMfG6CfxOooQ47VS1a
	1/37ZRLk5Hi/YZxZO2ykAAE9sOTX8JXldRsMBiaqeMXpGO4ldLURJQTqXkpFGtoPFIHa5n
	5g5tfAHahqu+Ig6LjgfAQ2Ukb+uyVoQ=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702374510; 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=X9mtlOEEzRw0edEwEif+vRv2D1U88AlwXf4iThb3cgE=;
	b=j16YnGSd8HmcxmMNaY9AbaLdu2gwwGtPOeiAo3vlqhr2TN6EJVeWVMfG6CfxOooQ47VS1a
	1/37ZRLk5Hi/YZxZO2ykAAE9sOTX8JXldRsMBiaqeMXpGO4ldLURJQTqXkpFGtoPFIHa5n
	5g5tfAHahqu+Ig6LjgfAQ2Ukb+uyVoQ=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v4 11/12] xen/spinlock: remove indirection through macros for spin_*() functions
Date: Tue, 12 Dec 2023 10:47:24 +0100
Message-Id: <20231212094725.22184-12-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212094725.22184-1-jgross@suse.com>
References: <20231212094725.22184-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Score: 10.00
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: ********
X-Spam-Score: 8.80
X-Spamd-Result: default: False [8.80 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

In reality all spin_*() functions are macros which are defined to just
call a related real function.

Remove this macro layer, as it is adding complexity without any gain.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 xen/common/spinlock.c      | 28 +++++++++---------
 xen/include/xen/spinlock.h | 58 +++++++++++++++-----------------------
 2 files changed, 36 insertions(+), 50 deletions(-)

diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index d0f8393504..296bcf33e6 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -332,30 +332,30 @@ static void always_inline spin_lock_common(spinlock_tickets_t *t,
     LOCK_PROFILE_GOT(block);
 }
 
-void _spin_lock(spinlock_t *lock)
+void spin_lock(spinlock_t *lock)
 {
     spin_lock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR, NULL,
                      NULL);
 }
 
-void _spin_lock_cb(spinlock_t *lock, void (*cb)(void *data), void *data)
+void spin_lock_cb(spinlock_t *lock, void (*cb)(void *data), void *data)
 {
     spin_lock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR, cb, data);
 }
 
-void _spin_lock_irq(spinlock_t *lock)
+void spin_lock_irq(spinlock_t *lock)
 {
     ASSERT(local_irq_is_enabled());
     local_irq_disable();
-    _spin_lock(lock);
+    spin_lock(lock);
 }
 
-unsigned long _spin_lock_irqsave(spinlock_t *lock)
+unsigned long __spin_lock_irqsave(spinlock_t *lock)
 {
     unsigned long flags;
 
     local_irq_save(flags);
-    _spin_lock(lock);
+    spin_lock(lock);
     return flags;
 }
 
@@ -371,20 +371,20 @@ static void always_inline spin_unlock_common(spinlock_tickets_t *t,
     preempt_enable();
 }
 
-void _spin_unlock(spinlock_t *lock)
+void spin_unlock(spinlock_t *lock)
 {
     spin_unlock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
 }
 
-void _spin_unlock_irq(spinlock_t *lock)
+void spin_unlock_irq(spinlock_t *lock)
 {
-    _spin_unlock(lock);
+    spin_unlock(lock);
     local_irq_enable();
 }
 
-void _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
+void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
 {
-    _spin_unlock(lock);
+    spin_unlock(lock);
     local_irq_restore(flags);
 }
 
@@ -393,7 +393,7 @@ static int always_inline spin_is_locked_common(const spinlock_tickets_t *t)
     return t->head != t->tail;
 }
 
-int _spin_is_locked(const spinlock_t *lock)
+int spin_is_locked(const spinlock_t *lock)
 {
     return spin_is_locked_common(&lock->tickets);
 }
@@ -429,7 +429,7 @@ static int always_inline spin_trylock_common(spinlock_tickets_t *t,
     return 1;
 }
 
-int _spin_trylock(spinlock_t *lock)
+int spin_trylock(spinlock_t *lock)
 {
     return spin_trylock_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
 }
@@ -453,7 +453,7 @@ static void always_inline spin_barrier_common(spinlock_tickets_t *t,
     smp_mb();
 }
 
-void _spin_barrier(spinlock_t *lock)
+void spin_barrier(spinlock_t *lock)
 {
     spin_barrier_common(&lock->tickets, &lock->debug, LOCK_PROFILE_PAR);
 }
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index ca18b9250a..87946965b2 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -224,18 +224,30 @@ typedef struct rspinlock {
 #define spin_lock_init(l) (*(l) = (spinlock_t)SPIN_LOCK_UNLOCKED)
 #define rspin_lock_init(l) (*(l) = (rspinlock_t)RSPIN_LOCK_UNLOCKED)
 
-void _spin_lock(spinlock_t *lock);
-void _spin_lock_cb(spinlock_t *lock, void (*cb)(void *data), void *data);
-void _spin_lock_irq(spinlock_t *lock);
-unsigned long _spin_lock_irqsave(spinlock_t *lock);
+void spin_lock(spinlock_t *lock);
+void spin_lock_cb(spinlock_t *lock, void (*cb)(void *data), void *data);
+void spin_lock_irq(spinlock_t *lock);
+#define spin_lock_irqsave(l, f)                                 \
+    ({                                                          \
+        BUILD_BUG_ON(sizeof(f) != sizeof(unsigned long));       \
+        ((f) = __spin_lock_irqsave(l));                         \
+    })
+unsigned long __spin_lock_irqsave(spinlock_t *lock);
 
-void _spin_unlock(spinlock_t *lock);
-void _spin_unlock_irq(spinlock_t *lock);
-void _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags);
+void spin_unlock(spinlock_t *lock);
+void spin_unlock_irq(spinlock_t *lock);
+void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags);
 
-int _spin_is_locked(const spinlock_t *lock);
-int _spin_trylock(spinlock_t *lock);
-void _spin_barrier(spinlock_t *lock);
+int spin_is_locked(const spinlock_t *lock);
+int spin_trylock(spinlock_t *lock);
+#define spin_trylock_irqsave(lock, flags)       \
+({                                              \
+    local_irq_save(flags);                      \
+    spin_trylock(lock) ?                        \
+    1 : ({ local_irq_restore(flags); 0; });     \
+})
+/* Ensure a lock is quiescent between two critical operations. */
+void spin_barrier(spinlock_t *lock);
 
 /*
  * rspin_[un]lock(): Use these forms when the lock can (safely!) be
@@ -270,32 +282,6 @@ void nrspin_unlock_irq(rspinlock_t *lock);
 unsigned long __nrspin_lock_irqsave(rspinlock_t *lock);
 void nrspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags);
 
-#define spin_lock(l)                  _spin_lock(l)
-#define spin_lock_cb(l, c, d)         _spin_lock_cb(l, c, d)
-#define spin_lock_irq(l)              _spin_lock_irq(l)
-#define spin_lock_irqsave(l, f)                                 \
-    ({                                                          \
-        BUILD_BUG_ON(sizeof(f) != sizeof(unsigned long));       \
-        ((f) = _spin_lock_irqsave(l));                          \
-    })
-
-#define spin_unlock(l)                _spin_unlock(l)
-#define spin_unlock_irq(l)            _spin_unlock_irq(l)
-#define spin_unlock_irqrestore(l, f)  _spin_unlock_irqrestore(l, f)
-
-#define spin_is_locked(l)             _spin_is_locked(l)
-#define spin_trylock(l)               _spin_trylock(l)
-
-#define spin_trylock_irqsave(lock, flags)       \
-({                                              \
-    local_irq_save(flags);                      \
-    spin_trylock(lock) ?                        \
-    1 : ({ local_irq_restore(flags); 0; });     \
-})
-
 #define spin_lock_kick(l)             arch_lock_signal_wmb()
 
-/* Ensure a lock is quiescent between two critical operations. */
-#define spin_barrier(l)               _spin_barrier(l)
-
 #endif /* __SPINLOCK_H__ */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 10:04:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 10:04:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652907.1019037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzd9-0004sv-7k; Tue, 12 Dec 2023 10:04:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652907.1019037; Tue, 12 Dec 2023 10:04:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzd9-0004so-4t; Tue, 12 Dec 2023 10:04:47 +0000
Received: by outflank-mailman (input) for mailman id 652907;
 Tue, 12 Dec 2023 10:04:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCzd8-0004si-1l
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 10:04:46 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df3bc1d2-98d5-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 11:04:43 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c517d0de5so4006005e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 02:04:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fj5-20020a05600c0c8500b0040b2976eb02sm16134474wmb.10.2023.12.12.02.04.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 02:04:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df3bc1d2-98d5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702375483; x=1702980283; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iIzOjm9ApykVxZkRgQSI/av936JIaW2QggLwYdtFEDc=;
        b=ScFSQxmDODNPqA2u5jbumsyKtTTygpjmm5iXTzBHMUXkQ4uqns1IV32nQDOTHLG73x
         5iNdH4p6Bb40cxVscalv5tgP3q7QmmSrTUpjZV8n2E5BHe/xWvEq71SRoYUYANXv2V0Y
         LWq5eFIIJBkfSjR2oNfJbskKLJH8BDxeH++oyEOKPUzTxGeDhlJziWOycmb8K01o0HsC
         3th44uD4HhnzOMJP36CYxlQeCGLITLbLTaVu8SLSBKWvkyS6bSXNKDWRGZ4vYh/1H6PI
         aBC4Uc3zH5Ae7O75QqHGdBEblDwOwRDtZs5KqOVH2wfOrAjNB/OPKbSnxbVBwnmjB7Iv
         khWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702375483; x=1702980283;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iIzOjm9ApykVxZkRgQSI/av936JIaW2QggLwYdtFEDc=;
        b=U1S21OyK5fa0fHGDkPjwq5pR5NXGRve8JCPyXy5DrxF2m5fvAureGGXhQ002/2v130
         gQ1BPNkaZHz9uLFJ/unma2aszneZzxOXYs6gyeDzQHlIGPnsYuV3KSCBgpo1dAahz7Wu
         tJR0vtE/Z1UOpnHmhJ4dCbW2SqDUNrH+BCY7qbjGgsFbv97ry3qkcmRE81oeoK2/GsRb
         pAkl9HaW6yadaY/bgquJR2IznjF2nf7mpEhBdecSxdNs2p/Q9rqt6kHpFoXDzg6rASLq
         wpNoFifQTRfxy/LWV0xObu8ZTrumgzUqVPTSAYLdvJRA90kEzGUTdw/SkB1DNJweAsZ4
         YkuA==
X-Gm-Message-State: AOJu0YzEu8x0IZHo3YdgJy8sbUWqJa7F5iuY0bXQdYS0DV+jQH97cKu6
	8o5uIA7DAiVTgHTXIuSFoTHQ
X-Google-Smtp-Source: AGHT+IF5coiw+z+7qlWtI9EUwFsYbvAiBmfx86Dj35gpmpp3GYZ8SYjanguUwcsSlKV0Xqh46RIUmQ==
X-Received: by 2002:a05:600c:331b:b0:40b:5e59:da79 with SMTP id q27-20020a05600c331b00b0040b5e59da79mr3067338wmp.140.1702375483245;
        Tue, 12 Dec 2023 02:04:43 -0800 (PST)
Message-ID: <1d05baf2-e262-4151-b5a3-308f0ffa1e97@suse.com>
Date: Tue, 12 Dec 2023 11:04:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 7/7] x86/xstate: move BUILD_BUG_ON to address MISRA
 C:2012 Rule 2.1
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: consulting@bugseng.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.1702283415.git.nicola.vetrini@bugseng.com>
 <a969550faea681c69730c0968264781f7739670d.1702283415.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: <a969550faea681c69730c0968264781f7739670d.1702283415.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 11:30, Nicola Vetrini wrote:
> The string literal inside the expansion of BUILD_BUG_ON is considered
> unreachable code; however, such statement can be moved earlier
> with no functional change.

First: Why is this deemed dead code in its present position, but okay when
moved? Second: While moving is indeed no functional change (really
BUILD_BUG_ON() can be moved about anywhere, for not producing any code in
the final binary), it removes the connection between it and the respective
asm() (where %z would have been nice to use).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 10:08:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 10:08:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652913.1019047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzgR-0005Xe-TQ; Tue, 12 Dec 2023 10:08:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652913.1019047; Tue, 12 Dec 2023 10: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 1rCzgR-0005XX-Pd; Tue, 12 Dec 2023 10:08:11 +0000
Received: by outflank-mailman (input) for mailman id 652913;
 Tue, 12 Dec 2023 10:08: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=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCzgQ-0005XR-JL
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 10:08:10 +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 595a1ab1-98d6-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 11:08:08 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-33338c47134so5098293f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 02:08:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 je16-20020a05600c1f9000b00405442edc69sm18164399wmb.14.2023.12.12.02.08.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 02:08:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 595a1ab1-98d6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702375688; x=1702980488; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KZwg/RtqM0NKLso9LDrpoMoAu9y2dzBm8vps/3U6MIE=;
        b=HpAP8PdGOu+W15FUDrjccVmt5scRh965iPZSQwe/W95CXDwVi6ANSXYVOqmLA/TRhr
         +nfMqQBhPHkTS5UhA40EctXfkgjas6DGPiTv+KMIsERyF/8S4RvRKD18G3TuRkbjoUuL
         vS54ZsdwggijdLVIW4whmO3KdPegFZybf3xdR/gB3wGavqZ3n/mKXlmKDDSu29CETLV6
         r/HzYk604HzEEEZnwCMKLkmsbCdxigEQGHH07U76W7AFUDdmE6N386cg+Z6/v36Ouxsg
         n8bZRl01QuneFcZ/PWyi0ITJ/MTZtfxkeifohd6D/VgmSJIsT0Dz6i5wRG62ebxM9WmB
         EMeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702375688; x=1702980488;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KZwg/RtqM0NKLso9LDrpoMoAu9y2dzBm8vps/3U6MIE=;
        b=B/jNhlIj1huoXshSJNHhSR+pXf/Go+Jnig5Nm5n3ci+91LDAnFP4gwckHHa25wfXqH
         GHdp49Mui/cQSvbbD2yLdR+chH+HK4ozga148SuxlluJemYcCKzcRkJzEbCDopHJSFLF
         3kdsg4wXYeCEn3W0Rf8pOf40xhH5tG/V63QoWsY90nsyuImVuflwYnWkG09qa1odG+vt
         pJXjDn3Dxx8yz1ybXuTp1JeJ1OI4IGWH1KdWN3ES3KX2jJ3QkDgZzrwpcwJPz2F6fmey
         y6eFWQ+l23qo9KvRlG7fpt50OuOhM6ZLKJZj11wO9l5NmRui5ZFjX74jTFuhdS7tI51b
         Ojvg==
X-Gm-Message-State: AOJu0Yx3zcEXUtA09cD2XyBB7r8DX3iHVKL/6anX7VR0+awHHQbOW6Ug
	NF6Ds8oxno43a6u8OYNLvw7M
X-Google-Smtp-Source: AGHT+IFMpUOfenFNBgzneXK9DaKmJxPHFZ9++jtQn70bdMYhkdtVZOs3a64lS1VjTJePT96WWl3rHA==
X-Received: by 2002:a7b:c5cc:0:b0:40c:53d1:4c6 with SMTP id n12-20020a7bc5cc000000b0040c53d104c6mr152574wmk.166.1702375688038;
        Tue, 12 Dec 2023 02:08:08 -0800 (PST)
Message-ID: <af20721d-c353-4327-8ae2-6e803de4ba37@suse.com>
Date: Tue, 12 Dec 2023 11:07:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 7/7] x86/xstate: move BUILD_BUG_ON to address MISRA
 C:2012 Rule 2.1
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: consulting@bugseng.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.1702283415.git.nicola.vetrini@bugseng.com>
 <a969550faea681c69730c0968264781f7739670d.1702283415.git.nicola.vetrini@bugseng.com>
 <1d05baf2-e262-4151-b5a3-308f0ffa1e97@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1d05baf2-e262-4151-b5a3-308f0ffa1e97@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2023 11:04, Jan Beulich wrote:
> On 11.12.2023 11:30, Nicola Vetrini wrote:
>> The string literal inside the expansion of BUILD_BUG_ON is considered
>> unreachable code; however, such statement can be moved earlier
>> with no functional change.
> 
> First: Why is this deemed dead code in its present position, but okay when
> moved? Second: While moving is indeed no functional change (really
> BUILD_BUG_ON() can be moved about anywhere, for not producing any code in
> the final binary), it removes the connection between it and the respective
> asm() (where %z would have been nice to use).

Oh, and third: Which string literal? I expect you're not building with
an ancient compiler, so it got to be

#define BUILD_BUG_ON(cond) ({ _Static_assert(!(cond), "!(" #cond ")"); })

which you see in use. Yet that string literal isn't "code" or "data", but
an argument to _Static_assert(). Is Eclair perhaps not properly aware of
_Static_assert()?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 10:10:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 10:10:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652915.1019057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCziQ-00073V-8I; Tue, 12 Dec 2023 10:10:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652915.1019057; Tue, 12 Dec 2023 10: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 1rCziQ-00073O-5E; Tue, 12 Dec 2023 10:10:14 +0000
Received: by outflank-mailman (input) for mailman id 652915;
 Tue, 12 Dec 2023 10:10:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rCziO-00071w-Ax
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 10:10:12 +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 1rCziO-0003ma-5O; Tue, 12 Dec 2023 10:10:12 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCziO-0001xu-0O; Tue, 12 Dec 2023 10: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=nGj3+B8OEe25c1Z0PTh9vYkcMlVI0EeYu+rE+6Ttrwg=; b=ymvmOJY+F8b5sXbDa1mjbUTfSv
	KQuzmb9tAwVcaQwE5zTsgZa5RXgLoMmoQZTR5R7AN6vZ/UvCkBA2/w1LjEspsSLmICUTdTottCyR6
	hBU9UZCFGqAuHl07E+BMbc/7c2W0mo63+/5J5WwABKnK9hCl87eKkvXi7bmSq2hErXSU=;
Message-ID: <2c2f8ee1-bf97-4e42-a1ef-74ed1997722c@xen.org>
Date: Tue, 12 Dec 2023 10:10:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231212094725.22184-13-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 12/12/2023 09:47, Juergen Gross wrote:
> Allow 16 bits per cpu number, which is the limit imposed by
> spinlock_tickets_t.
> 
> This will allow up to 65535 cpus, while increasing only the size of
> recursive spinlocks in debug builds from 8 to 12 bytes.
Looking at arch/Kconfig, it looks like we are limiting NR_CPUS to 
maximum 4096. So can you outline why we need this?

Just to be clear is I am not against this change, but alone it seems a 
little bit odd to increase the size in debug when that limit can never 
be reached (at least today).

Cheers,

> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>   xen/common/spinlock.c      |  1 +
>   xen/include/xen/spinlock.h | 18 +++++++++---------
>   2 files changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
> index 296bcf33e6..ae7c7c2086 100644
> --- a/xen/common/spinlock.c
> +++ b/xen/common/spinlock.c
> @@ -481,6 +481,7 @@ int rspin_trylock(rspinlock_t *lock)
>   
>       /* Don't allow overflow of recurse_cpu field. */
>       BUILD_BUG_ON(NR_CPUS > SPINLOCK_NO_CPU);
> +    BUILD_BUG_ON(SPINLOCK_CPU_BITS > sizeof(lock->recurse_cpu) * 8);
>       BUILD_BUG_ON(SPINLOCK_RECURSE_BITS < 3);
>   
>       check_lock(&lock->debug, true);
> diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
> index 87946965b2..d720778cc1 100644
> --- a/xen/include/xen/spinlock.h
> +++ b/xen/include/xen/spinlock.h
> @@ -7,16 +7,16 @@
>   #include <asm/system.h>
>   #include <asm/spinlock.h>
>   
> -#define SPINLOCK_CPU_BITS  12
> +#define SPINLOCK_CPU_BITS  16
>   
>   #ifdef CONFIG_DEBUG_LOCKS
>   union lock_debug {
> -    uint16_t val;
> -#define LOCK_DEBUG_INITVAL 0xffff
> +    uint32_t val;
> +#define LOCK_DEBUG_INITVAL 0xffffffff
>       struct {
> -        uint16_t cpu:SPINLOCK_CPU_BITS;
> -#define LOCK_DEBUG_PAD_BITS (14 - SPINLOCK_CPU_BITS)
> -        uint16_t :LOCK_DEBUG_PAD_BITS;
> +        uint32_t cpu:SPINLOCK_CPU_BITS;
> +#define LOCK_DEBUG_PAD_BITS (30 - SPINLOCK_CPU_BITS)
> +        uint32_t :LOCK_DEBUG_PAD_BITS;
>           bool irq_safe:1;
>           bool unseen:1;
>       };
> @@ -210,10 +210,10 @@ typedef struct spinlock {
>   
>   typedef struct rspinlock {
>       spinlock_tickets_t tickets;
> -    uint16_t recurse_cpu:SPINLOCK_CPU_BITS;
> +    uint16_t recurse_cpu;
>   #define SPINLOCK_NO_CPU        ((1u << SPINLOCK_CPU_BITS) - 1)
> -#define SPINLOCK_RECURSE_BITS  (16 - SPINLOCK_CPU_BITS)
> -    uint16_t recurse_cnt:SPINLOCK_RECURSE_BITS;
> +#define SPINLOCK_RECURSE_BITS  8
> +    uint8_t recurse_cnt;
>   #define SPINLOCK_MAX_RECURSE   ((1u << SPINLOCK_RECURSE_BITS) - 1)
>       union lock_debug debug;
>   #ifdef CONFIG_DEBUG_LOCK_PROFILE

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 10:14:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 10:14:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652919.1019067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzlv-0008Qz-Nb; Tue, 12 Dec 2023 10:13:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652919.1019067; Tue, 12 Dec 2023 10:13:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzlv-0008Qs-L5; Tue, 12 Dec 2023 10:13:51 +0000
Received: by outflank-mailman (input) for mailman id 652919;
 Tue, 12 Dec 2023 10:13: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=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rCzlt-0008Qk-VA
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 10:13:49 +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 23e2ba71-98d7-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 11:13:48 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3332efd75c9so4916230f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 02:13:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 n4-20020a5d6b84000000b0033634aef014sm614202wrx.104.2023.12.12.02.13.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 02:13:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23e2ba71-98d7-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702376028; x=1702980828; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=sA53lr3VybLm+zUZRmEDV22LzxVMfZxX2hxcf3b294g=;
        b=I7V2YKqWguq5gFzFYmmQ7POXDuPjaZRnsWBcAWSm5b+yzj7nxLXicq8/yB5l2ApM+t
         1Bohw+6JhJKqPgUbx1CMQT+HFlrZNY3Gcv0jzkyly6gc1Q/FuQNr2MhX46N2EYVhORh2
         DgDbynA7RSZ9PXtXz8aP++PWym84hJnJdhsq1kdx5LlWN1pnuDg83AanCunOgYT8KIfT
         hJXx6bEnVLRt3300msOAKfDekSS9ugqv+Zj66E5JmA+8tbSEUwlWcPmKvlin8dO6vT6e
         wCMOjmUB+FIoOAb4oDb4rjleewPxTUUKWrYS4CRCFeD9Pos59hyO/snACuFSWNeQCChx
         Yr1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702376028; x=1702980828;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=sA53lr3VybLm+zUZRmEDV22LzxVMfZxX2hxcf3b294g=;
        b=d7UkP5GgvtPxcjHiIObDhE/xYRmOiRkBgCi73Nr6PLVBXleGXZtZkJ18mx18gqYFMB
         rJn8GcnNsg349mdJWYSo1AFk/cDUWXW7MGQJRvWZhmLeNql3At5dwDwcWNzphuKQoMB7
         wuzxbXvf6KymtBqN2YbeJNJ8QRHx8O/9zFIoYHrhGQ11CuiJD5J8gZcYt733TS/XHSNQ
         /ezrMjI+ADmV+kPF+Mi1pqV7+MMRGa2elGw+YznHMTHjn3Hxf9l1GlvshMh3LqZpR47B
         psarQcfsutEHzdcmYKry5oKQ25rE5bNzAaqZoPbYOnX+DwiqVPyNTOshCLU1FBQU83Om
         MwcQ==
X-Gm-Message-State: AOJu0Yw+2t+YvXTyjZNJPL8zMcj71WP/pvIeyrzqsMavwDENnBrBdEF2
	OrVQK34nKagpXwbAj6L1cWdt
X-Google-Smtp-Source: AGHT+IHrOLWnwqUwi4jG+YJTLMbDbKBt8/XAhrcJ3OxXpULLg2Tlp7EOBzANOr3cd/3bJSyboRU1CA==
X-Received: by 2002:a5d:4342:0:b0:333:591c:6507 with SMTP id u2-20020a5d4342000000b00333591c6507mr1570505wrr.248.1702376027903;
        Tue, 12 Dec 2023 02:13:47 -0800 (PST)
Message-ID: <a8c42909-6316-448b-8d21-628d055abfbc@suse.com>
Date: Tue, 12 Dec 2023 11:13:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 6/7] x86/platform: removed break to address MISRA
 C:2012 Rule 2.1
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: consulting@bugseng.com, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <b1103bc13d5ce04159417592705b4fe6a6db748b.1702283415.git.nicola.vetrini@bugseng.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: <b1103bc13d5ce04159417592705b4fe6a6db748b.1702283415.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 11:30, Nicola Vetrini wrote:
> The break statement is redundant, hence it can be removed.

Except ...

> --- a/xen/arch/x86/platform_hypercall.c
> +++ b/xen/arch/x86/platform_hypercall.c
> @@ -723,7 +723,6 @@ ret_t do_platform_op(
>  
>          ret = continue_hypercall_on_cpu(
>              0, cpu_down_helper, (void *)(unsigned long)cpu);
> -        break;
>      }
>      break;

... it wants to be the other break that is removed, imo. Andrew, Roger,
what do you think? There are many such (again: imo) oddly placed break-s
in that switch() ... In some cases there are also inner scopes without
there being new local variables in there. IOW imo throughout this
switch()
- pointless inner scopes want dropping,
- all "main" break-s want to have the same indentation.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 10:14:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 10:14:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652921.1019077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzma-0000dY-2g; Tue, 12 Dec 2023 10:14:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652921.1019077; Tue, 12 Dec 2023 10:14:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rCzmZ-0000dR-UW; Tue, 12 Dec 2023 10:14:31 +0000
Received: by outflank-mailman (input) for mailman id 652921;
 Tue, 12 Dec 2023 10:14: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 1rCzmZ-0000dJ-0v
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 10:14: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 1rCzmY-0003sc-8X; Tue, 12 Dec 2023 10:14:30 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rCzmY-0002Jo-3g; Tue, 12 Dec 2023 10:14: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=29YVA4/Km6ptBVNj9ZU3gF6r9P1oD6VIxLk0PU38pg4=; b=Kdl+BUshBUS52atQGfxHpAuOJw
	+jAFtsTpKvjTRTWGZ8AyGccYarTNDLzmU5Lu7jzj735gl2sFdnDVamw8pUGniAwJtyPx1aoja5zJS
	8OUn7nJ/M8WXE1YN1Vk5bfxwdOVf9g9/uABCRChjmyyvMrvOUTDH39Zi5ZgWV80m+QbY=;
Message-ID: <b16c7e30-25ee-4dee-8928-45e8d2f9127e@xen.org>
Date: Tue, 12 Dec 2023 10:14:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xenstored: potentially split trace_io() out message
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>
References: <20231123160834.17674-1-jgross@suse.com>
 <c5a72070-fb63-4c05-a34e-e5abcb781ea2@xen.org>
 <b300f3ac-cf83-4ba7-9c93-c78bec0b38d2@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <b300f3ac-cf83-4ba7-9c93-c78bec0b38d2@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 12/12/2023 06:26, Juergen Gross wrote:
> On 11.12.23 20:11, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 23/11/2023 16:08, Juergen Gross wrote:
>>> Today write_messages() will call trace_io() after having written the
>>> complete message to the ring buffer or socket.
>>>
>>> In case the message can't be written in one go, split it by writing
>>> one trace entry when starting the write and one when finishing it.
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>
>> With one remark below:
>>
>> Reviewed-by: Julien Grall <jgrall@amazon.com>
>>
>>> ---
>>> This patch is meant to go on top of the patch "tools/xenstored: remove
>>> \"-V\" command line option" in order to not lose any possible debug
>>> information.
>>> ---
>>> Â  tools/xenstored/core.c | 30 ++++++++++++++++++++----------
>>> Â  1 file changed, 20 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
>>> index 9046b200bc..a14b240ed9 100644
>>> --- a/tools/xenstored/core.c
>>> +++ b/tools/xenstored/core.c
>>> @@ -121,7 +121,7 @@ void trace(const char *fmt, ...)
>>> Â  static void trace_io(const struct connection *conn,
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const struct buffered_data *data,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â  int out)
>>> +Â Â Â Â Â Â Â Â Â Â Â Â  const char *type)
>>
>> This change seems somewhat unrelated. It would be worth mentioning it 
>> in the commit message.
>>
>> If you propose a new wording, I can update it while committing.
> 
> What about:
> 
> In order to distinguish a complete OUT message from a split one, let the
> caller of trace_io specify the prefix string ("IN", "OUT", "OUT(START)",
> "OUT(END)") directly instead via an int.

Ah... I spotted the "OUT(END)" but somehow I didn't make the connection 
with the update of trace_io() prototype.

It is now committed.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 10:31:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 10:31:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652929.1019088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD02h-0008MA-G0; Tue, 12 Dec 2023 10:31:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652929.1019088; Tue, 12 Dec 2023 10:31:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD02h-0008La-BM; Tue, 12 Dec 2023 10:31:11 +0000
Received: by outflank-mailman (input) for mailman id 652929;
 Tue, 12 Dec 2023 10:31:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rD02f-0008KH-Rl
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 10:31:09 +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 8dce1cf6-98d9-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 11:31:05 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c339d2b88so41086605e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 02:31:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 k40-20020a05600c1ca800b0040b45356b72sm18249880wms.33.2023.12.12.02.31.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 02:31:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8dce1cf6-98d9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702377064; x=1702981864; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=iKd7VJ7ZNJLA7+VCrkwepcbUy2OllRRoh4OKwKgQSQw=;
        b=W22DLYqBW3PVB73wtU46uL6B0m6WG1pPOpi0FURZbfjdbQC8Kh72gE3QxHw5/BV7q8
         fztO0yHT0485sRoxETcIuKkUYygOziibx/+vajmaXPqvQau4NWOfUdKo4iwAHwOJ/wVv
         pZWS5iPPO01F9YM8lIJU7WJnj9S8TlfWXB5Jbi941/9e3Wq5vhdUj5q1fW+8bLsvNmj4
         U30FpmRgJjjRjdgNvpsujR4rQFPKcCYrneEK17JrEQ63238ZPZsgiOmMxQVnI2+rbjud
         oZeDnnyus9SpaCc/R4T6VNCDSFa5vtrBotBqHtyyEy5okP6m+5sZwt6iBJh3Gclr83hU
         Wngw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702377064; x=1702981864;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=iKd7VJ7ZNJLA7+VCrkwepcbUy2OllRRoh4OKwKgQSQw=;
        b=SO/eIMpbungGL9Ya6TD50P+8beoGoiEL4qMTJu7tDmxF4MoXT9VuBbE5qV92eEuNGJ
         zpf+mygWHzGmK4JkACiYWZ86VXX09DeFjix+xvorZuOQsbNtZZ0bhIs/UmwLEQaXnE9U
         wXO5GAaIFA9udhocbzzJVDlJbpJBg6ihECxOYI+SdDbQrcVoHuADLRNlldBUU+/PIMCc
         S8xYw4/obtozui7CctDUAkdkfTs6SNbxTIDaYrDTbsQ3bCFG6LF2gLdC32LvYsO72JlZ
         JXYIa6hsrYOBBMzmorRPaP3nqndQmXyS5X7JCclzDpHFlE0LO9i/psjAkmjCalBAR1I2
         AlEQ==
X-Gm-Message-State: AOJu0Yyo2aMJKX6wTdINJ96+bvQcNshnVcuUjpa7PlBQ2wRwPh27QKBR
	n63UxlwEnnk/bjf/a2BaJlJu
X-Google-Smtp-Source: AGHT+IENDr133pY921EeI1Perh93g9z4ggh8cHNYPz8pyofbOX76TAZlav4Bf8u4EGQujtzvdJH5hw==
X-Received: by 2002:a05:600c:6020:b0:40b:5e59:da77 with SMTP id az32-20020a05600c602000b0040b5e59da77mr3192895wmb.138.1702377064558;
        Tue, 12 Dec 2023 02:31:04 -0800 (PST)
Message-ID: <c979dff5-20a9-4bb8-a134-d73a269cfa05@suse.com>
Date: Tue, 12 Dec 2023 11:30:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/7] xen/shutdown: address MISRA C:2012 Rule 2.1
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <c0a8a12e39d688e101936d221af0f8eeefabe352.1702283415.git.nicola.vetrini@bugseng.com>
 <b8aa0715-db0f-4832-9cd2-6bd2ca296853@suse.com>
 <984227ed9db13d3e22d95081b03a127a@bugseng.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: <984227ed9db13d3e22d95081b03a127a@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2023 10:53, Nicola Vetrini wrote:
> On 2023-12-12 10:45, Jan Beulich wrote:
>> On 11.12.2023 11:30, Nicola Vetrini wrote:
>>> @@ -38,39 +38,32 @@ void hwdom_shutdown(u8 reason)
>>>          printk("Hardware Dom%u halted: halting machine\n",
>>>                 hardware_domain->domain_id);
>>>          machine_halt();
>>> -        break; /* not reached */
>>>
>>>      case SHUTDOWN_crash:
>>>          debugger_trap_immediate();
>>>          printk("Hardware Dom%u crashed: ", 
>>> hardware_domain->domain_id);
>>>          kexec_crash(CRASHREASON_HWDOM);
>>>          maybe_reboot();
>>> -        break; /* not reached */
>>
>> Given the function's name, I don't view this removal (and the similar 
>> one
>> further down) as acceptable. The function first needs renaming so that
>> from its name one can no longer (wrongly) infer that it may reboot or 
>> else
>> return.
> 
> Something like "reboot_or_halt" would be okay?

I think so, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 10:57:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 10:57:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652935.1019097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0Ro-0000bO-LK; Tue, 12 Dec 2023 10:57:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652935.1019097; Tue, 12 Dec 2023 10:57:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0Ro-0000bH-Hd; Tue, 12 Dec 2023 10:57:08 +0000
Received: by outflank-mailman (input) for mailman id 652935;
 Tue, 12 Dec 2023 10: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=A+1q=HX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rD0Rm-0000bB-Ru
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 10:57:06 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f3a1ed1-98dd-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 11:57:04 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3333a3a599fso3483700f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 02:57:04 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 x14-20020adfdd8e000000b0033630da3528sm1004932wrl.25.2023.12.12.02.56.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 02:56:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f3a1ed1-98dd-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702378624; x=1702983424; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0ZgpHItpOgzwWJXOE6/3cgC60N4mJ/I2l/9jNNQ2tMo=;
        b=FrZCCnT+uO3162m840fP4G9KA59xzzC6Kf1Htt8bO9j5moT1PKK8gERZmXBYrj/Gor
         466terATe4wW/wPgAzLelnTZcE6dCKUBe+WuNKasZKnUNVYsqvhuhX72DWMQASYYjt6G
         N5J65g3ApRXjGLVpHE0F9epVgbP1v+yIGTuMA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702378624; x=1702983424;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references: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=0ZgpHItpOgzwWJXOE6/3cgC60N4mJ/I2l/9jNNQ2tMo=;
        b=sDqkOHswRfCapqzN2zRdoUCT/5gRlbJH0ExlBVd9d8dpUkTTZL0m8YnqZGEV3VJxx8
         9P9VOr6oZSu77LAZNyK8e01k3+Nb9nS/MgjGl9tqOK6lwgyiP05Tuea3VpP0iYJ73ly3
         C/2E3yoTlE4mEeiKZWmXKYHUX/ZMuZUqipLmaytKEAq1TDd2OghQ8MNKgpDyZstNf/gU
         IocAguoOqGPphTYamD+0C3NvQEIAw6VwmziwCDroOjKow7PJ+OhKOvsiYWfT4WSoWnxA
         CfA7dY6TEJYG3RIfoKs/mGtTgbaZ+LVi4PGz/0PR1jCOfQrBgWM54bKPn7LbjRJ83UqI
         E0rw==
X-Gm-Message-State: AOJu0Yy9Q+QW7EI7kD9tuoYxYhrGe2UmgZbd0WTonxgejb1xX88HUtek
	SDH74/EB7wf4dGYYxWxfju9Xig==
X-Google-Smtp-Source: AGHT+IG8Fchp0Ln13X/19uaLu236xh1OvsJKkIwHdnU1BAeGCBQZIJrLcwheQ4coqAUrhxMx8YRHiQ==
X-Received: by 2002:a5d:4a82:0:b0:333:3c90:fe16 with SMTP id o2-20020a5d4a82000000b003333c90fe16mr3218453wrq.32.1702378623834;
        Tue, 12 Dec 2023 02:57:03 -0800 (PST)
Message-ID: <f4c7141c-5f37-4366-890c-ab8b86b6f5dd@citrix.com>
Date: Tue, 12 Dec 2023 10:56:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: XSA-446 relevance on Intel
Content-Language: en-GB
To: James Dingwall <james-xen@dingwall.me.uk>, xen-devel@lists.xenproject.org
References: <ZXgrQdVvDuQCbCRP@dingwall.me.uk>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <ZXgrQdVvDuQCbCRP@dingwall.me.uk>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/12/2023 9:43 am, James Dingwall wrote:
> Hi,
>
> We were experiencing a crash during PV domU boot on several different models
> of hardware but all with Intel CPUs.  The Xen version was based on stable-4.15
> at 4a4daf6bddbe8a741329df5cc8768f7dec664aed (XSA-444) with some local
> patches.  Since updating the branch to b918c4cdc7ab2c1c9e9a9b54fa9d9c595913e028
> (XSA-446) we have not observed the same crash.

That range covers:

1f5f515da0f6 - iommu/amd-vi: use correct level for quarantine domain
page tables
b918c4cdc7ab - x86/spec-ctrl: Remove conditional IRQs-on-ness for INT
$0x80/0x82 paths

so yeah - not much in the way of change.

> The occurrence was on 1-2% of boots and we couldn't determine a particular
> sequence of events that would trigger it.  The kernel is based on Ubuntu's
> 5.15.0-91 tag but we also observed the same with -85.  Due to the low
> frequency it is possible that we simply haven't observed it again since
> updating our Xen build.
>
> If I have followed the early startup this is happening shortly after detection
> of possible CPU vulnerabilities and patching in alternative instructions.  As
> the RIP was native_irq_return_iret and XSA-446 related to interupt management
> I wondered if it was possible that despite "Xen is not believed to be vulnerable
> in default configurations on CPUs from other hardware vendors." there could
> be some conditions in which an Intel CPU is affected?

In short, XSA-446 isn't plausibly related.Â  It's completely internal to
Xen, with no alteration on guest state.

It is an error that Linux has ended up in native_irq_return_iret.Â  Linux
cannot return to itself with an IRET instruction, and must use
HYPERCALL_iret instead.

In recent versions of Linux, this is fixed up as about the earliest
action a PV kernel takes, but on older versions of Linux, any
interrupt/exception early enough on boot was fatal in this way.


This part of the backtrace is odd:

[Â Â Â  0.398962]Â  ? native_iret+0x7/0x7
[Â Â Â  0.398967]Â  ? insn_decode+0x79/0x100
[Â Â Â  0.398975]Â  ? insn_decode+0xcf/0x100
[Â Â Â  0.398980]Â  optimize_nops+0x68/0x150

as it's not clear how we've ended up in a case wanting to return back to
the kernel to begin with.Â  However, it's most likely a pagefault, as
optimize_nops() is making changes in arbitrary locations.

It is possible that a change in visible features has altered the
behaviour enough not to crash, but if everything is still the same as
far as you can tell, then it's likely just chance that you haven't seen
it again.

This is definitely a Linux bug, so I suspect something bad has been
backported into Ubuntu.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 10:57:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 10:57:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652936.1019108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0S5-0000uO-U8; Tue, 12 Dec 2023 10:57:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652936.1019108; Tue, 12 Dec 2023 10:57:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0S5-0000uH-PG; Tue, 12 Dec 2023 10:57:25 +0000
Received: by outflank-mailman (input) for mailman id 652936;
 Tue, 12 Dec 2023 10:57:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/uNK=HX=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1rD0S3-0000tY-Mc
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 10:57:23 +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 39f57206-98dd-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 11:57:22 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-33635163fe6so186703f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 02:57:22 -0800 (PST)
Received: from EMEAENGAAD19049.citrite.net
 (default-46-102-197-194.interdsl.co.uk. [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id
 h5-20020a05600c314500b0040b56f2cce3sm18321291wmo.23.2023.12.12.02.57.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 02:57:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39f57206-98dd-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702378641; x=1702983441; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=FQntZ9IVfXXUVY24eUxCSk33M52J4eNjxmyKF3h3sV8=;
        b=k5Vax9dNJbhZxPSE8xmAfw3F3tGJ86Z8vKCrZE7+nGhp4sLjVryKbDEuemUlcq9q9J
         cZY2md57sCJfY0HEu2SZsb2aWvXRrYOGB0eucl7rjoJX2MGynk0vflIUyJgDZBuRHKR/
         nGUQVW+IgG9gcdz92XZLZPmYTYDhfFbvYjf+M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702378641; x=1702983441;
        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=FQntZ9IVfXXUVY24eUxCSk33M52J4eNjxmyKF3h3sV8=;
        b=klcOiz5PPHwWnxmY1bPG3TIxvfL9HL4od2jZvQUc3rFob+vfpN6BSmchEO2J8XaxQs
         QL8JZ5YlNBruKxpZxGsHPmZrwG1mz73YHIy9oFi6T4ibUI5IaxHdaIQOoKm48PiUNH/w
         iajUs/BR+GCIWgsriaOJvRek8H5mBFxYWiwSw0iDM+hFkXDXPRUzrmXhQRss75IuXgf8
         UvS+Iphy+zxfJUGgNR3LTV9M7VYh5gNrVYNIFeXLIDu1G0e4JfdP6OjkDeCC8jkM+IO2
         Wz2grR1lASJ1K/zLEA93Qp4Ug11ARm0j2lo+NI7TDYJY2R6vKzAnAUiQDMn9BPMB/es2
         jk1A==
X-Gm-Message-State: AOJu0Yx8oj3Gln5g+aeTpv8HiIvr8r9b1Wh0M0QB//R5DUYQOJipFVOd
	S2E6MjqgN6JvqNNwWrHFL+7Z70sCh4yzPI2VrMI=
X-Google-Smtp-Source: AGHT+IHG2qvH/AxbT4iFo2lXvF+I4JV5xHpjgdowuxyEtXvvHYXMT8/tgrsDAsfKVL7feK5RhWGyLw==
X-Received: by 2002:a05:600c:4749:b0:40c:31e6:cae3 with SMTP id w9-20020a05600c474900b0040c31e6cae3mr2819959wmo.115.1702378641131;
        Tue, 12 Dec 2023 02:57:21 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH] tools/xg: Reserialise CPU policies with the allocated number of leaves.
Date: Tue, 12 Dec 2023 10:57:17 +0000
Message-Id: <20231212105717.6031-1-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The procedure used to customize the domain CPU policy is broken when
toolstack tries to set leaves (with subleaves) that the hypervisor didn't
need to serialise (i.e: because they where empty subleaves).

During typical domain creation xg does the following:

  1. Probe Xen for max #leaves that a policy may have
  2. Allocate memory for that many leaves
  3. Tell the hypervisor to dump the policy in the allocated buffer
  4. Deserialise it
  5. Modify it
  6. Reserialise it
  7. Send it back to Xen

The problem is that (3) overrides nr_leaves, which then makes (6) fail in
the case where (5) has added subleaves that Xen understands but didn't need
to serialize on (3).

The fix uses an opaque CPU policy object so we can (a) avoid probing Xen
for sizes, and (b) trivially have knowledge of the actual size of the
buffer.

While at it, fix xc_cpu_policy_destroy() to preserve errno accross free()

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/libs/guest/xg_cpuid_x86.c | 98 +++++++++++++++------------------
 1 file changed, 45 insertions(+), 53 deletions(-)

diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index db5aebc815..4453178100 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -583,13 +583,15 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
     int rc;
     bool hvm;
     xc_domaininfo_t di;
-    unsigned int i, nr_leaves, nr_msrs;
-    xen_cpuid_leaf_t *leaves = NULL;
-    struct cpu_policy *p = NULL;
+    struct xc_cpu_policy *p = xc_cpu_policy_init();
+    unsigned int i, nr_leaves = ARRAY_SIZE(p->leaves), nr_msrs = 0;
     uint32_t err_leaf = -1, err_subleaf = -1, err_msr = -1;
     uint32_t host_featureset[FEATURESET_NR_ENTRIES] = {};
     uint32_t len = ARRAY_SIZE(host_featureset);
 
+    if ( !p )
+        return -ENOMEM;
+
     if ( (rc = xc_domain_getinfo_single(xch, domid, &di)) < 0 )
     {
         PERROR("Failed to obtain d%d info", domid);
@@ -598,19 +600,6 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
     }
     hvm = di.flags & XEN_DOMINF_hvm_guest;
 
-    rc = xc_cpu_policy_get_size(xch, &nr_leaves, &nr_msrs);
-    if ( rc )
-    {
-        PERROR("Failed to obtain policy info size");
-        rc = -errno;
-        goto out;
-    }
-
-    rc = -ENOMEM;
-    if ( (leaves = calloc(nr_leaves, sizeof(*leaves))) == NULL ||
-         (p = calloc(1, sizeof(*p))) == NULL )
-        goto out;
-
     /* Get the host policy. */
     rc = xc_get_cpu_featureset(xch, XEN_SYSCTL_cpu_featureset_host,
                                &len, host_featureset);
@@ -623,10 +612,9 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
     }
 
     /* Get the domain's default policy. */
-    nr_msrs = 0;
     rc = get_system_cpu_policy(xch, hvm ? XEN_SYSCTL_cpu_policy_hvm_default
                                         : XEN_SYSCTL_cpu_policy_pv_default,
-                               &nr_leaves, leaves, &nr_msrs, NULL);
+                               &nr_leaves, p->leaves, &nr_msrs, NULL);
     if ( rc )
     {
         PERROR("Failed to obtain %s default policy", hvm ? "hvm" : "pv");
@@ -634,7 +622,7 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
         goto out;
     }
 
-    rc = x86_cpuid_copy_from_buffer(p, leaves, nr_leaves,
+    rc = x86_cpuid_copy_from_buffer(&p->policy, p->leaves, nr_leaves,
                                     &err_leaf, &err_subleaf);
     if ( rc )
     {
@@ -659,18 +647,18 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
          * - Re-enable features which have become (possibly) off by default.
          */
 
-        p->basic.rdrand = test_bit(X86_FEATURE_RDRAND, host_featureset);
-        p->feat.hle = test_bit(X86_FEATURE_HLE, host_featureset);
-        p->feat.rtm = test_bit(X86_FEATURE_RTM, host_featureset);
+        p->policy.basic.rdrand = test_bit(X86_FEATURE_RDRAND, host_featureset);
+        p->policy.feat.hle = test_bit(X86_FEATURE_HLE, host_featureset);
+        p->policy.feat.rtm = test_bit(X86_FEATURE_RTM, host_featureset);
 
         if ( hvm )
         {
-            p->feat.mpx = test_bit(X86_FEATURE_MPX, host_featureset);
+            p->policy.feat.mpx = test_bit(X86_FEATURE_MPX, host_featureset);
         }
 
-        p->basic.max_leaf = min(p->basic.max_leaf, 0xdu);
-        p->feat.max_subleaf = 0;
-        p->extd.max_leaf = min(p->extd.max_leaf, 0x8000001c);
+        p->policy.basic.max_leaf = min(p->policy.basic.max_leaf, 0xdu);
+        p->policy.feat.max_subleaf = 0;
+        p->policy.extd.max_leaf = min(p->policy.extd.max_leaf, 0x8000001c);
     }
 
     if ( featureset )
@@ -714,17 +702,17 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
             }
         }
 
-        x86_cpu_featureset_to_policy(feat, p);
+        x86_cpu_featureset_to_policy(feat, &p->policy);
     }
     else
     {
-        p->extd.itsc = itsc;
+        p->policy.extd.itsc = itsc;
 
         if ( hvm )
         {
-            p->basic.pae = pae;
-            p->basic.vmx = nested_virt;
-            p->extd.svm = nested_virt;
+            p->policy.basic.pae = pae;
+            p->policy.basic.vmx = nested_virt;
+            p->policy.extd.svm = nested_virt;
         }
     }
 
@@ -734,8 +722,8 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
          * On hardware without CPUID Faulting, PV guests see real topology.
          * As a consequence, they also need to see the host htt/cmp fields.
          */
-        p->basic.htt       = test_bit(X86_FEATURE_HTT, host_featureset);
-        p->extd.cmp_legacy = test_bit(X86_FEATURE_CMP_LEGACY, host_featureset);
+        p->policy.basic.htt       = test_bit(X86_FEATURE_HTT, host_featureset);
+        p->policy.extd.cmp_legacy = test_bit(X86_FEATURE_CMP_LEGACY, host_featureset);
     }
     else
     {
@@ -743,28 +731,28 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
          * Topology for HVM guests is entirely controlled by Xen.  For now, we
          * hardcode APIC_ID = vcpu_id * 2 to give the illusion of no SMT.
          */
-        p->basic.htt = true;
-        p->extd.cmp_legacy = false;
+        p->policy.basic.htt = true;
+        p->policy.extd.cmp_legacy = false;
 
         /*
          * Leaf 1 EBX[23:16] is Maximum Logical Processors Per Package.
          * Update to reflect vLAPIC_ID = vCPU_ID * 2, but make sure to avoid
          * overflow.
          */
-        if ( !p->basic.lppp )
-            p->basic.lppp = 2;
-        else if ( !(p->basic.lppp & 0x80) )
-            p->basic.lppp *= 2;
+        if ( !p->policy.basic.lppp )
+            p->policy.basic.lppp = 2;
+        else if ( !(p->policy.basic.lppp & 0x80) )
+            p->policy.basic.lppp *= 2;
 
-        switch ( p->x86_vendor )
+        switch ( p->policy.x86_vendor )
         {
         case X86_VENDOR_INTEL:
-            for ( i = 0; (p->cache.subleaf[i].type &&
-                          i < ARRAY_SIZE(p->cache.raw)); ++i )
+            for ( i = 0; (p->policy.cache.subleaf[i].type &&
+                          i < ARRAY_SIZE(p->policy.cache.raw)); ++i )
             {
-                p->cache.subleaf[i].cores_per_package =
-                    (p->cache.subleaf[i].cores_per_package << 1) | 1;
-                p->cache.subleaf[i].threads_per_cache = 0;
+                p->policy.cache.subleaf[i].cores_per_package =
+                    (p->policy.cache.subleaf[i].cores_per_package << 1) | 1;
+                p->policy.cache.subleaf[i].threads_per_cache = 0;
             }
             break;
 
@@ -784,25 +772,26 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
              * apic_id_size values greater than 7.  Limit the value to
              * 7 for now.
              */
-            if ( p->extd.nc < 0x7f )
+            if ( p->policy.extd.nc < 0x7f )
             {
-                if ( p->extd.apic_id_size != 0 && p->extd.apic_id_size < 0x7 )
-                    p->extd.apic_id_size++;
+                if ( p->policy.extd.apic_id_size != 0 && p->policy.extd.apic_id_size < 0x7 )
+                    p->policy.extd.apic_id_size++;
 
-                p->extd.nc = (p->extd.nc << 1) | 1;
+                p->policy.extd.nc = (p->policy.extd.nc << 1) | 1;
             }
             break;
         }
     }
 
-    rc = x86_cpuid_copy_to_buffer(p, leaves, &nr_leaves);
+    nr_leaves = ARRAY_SIZE(p->leaves);
+    rc = x86_cpuid_copy_to_buffer(&p->policy, p->leaves, &nr_leaves);
     if ( rc )
     {
         ERROR("Failed to serialise CPUID (%d = %s)", -rc, strerror(-rc));
         goto out;
     }
 
-    rc = xc_set_domain_cpu_policy(xch, domid, nr_leaves, leaves, 0, NULL,
+    rc = xc_set_domain_cpu_policy(xch, domid, nr_leaves, p->leaves, 0, NULL,
                                   &err_leaf, &err_subleaf, &err_msr);
     if ( rc )
     {
@@ -825,8 +814,7 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
     rc = 0;
 
 out:
-    free(p);
-    free(leaves);
+    xc_cpu_policy_destroy(p);
 
     return rc;
 }
@@ -839,7 +827,11 @@ xc_cpu_policy_t *xc_cpu_policy_init(void)
 void xc_cpu_policy_destroy(xc_cpu_policy_t *policy)
 {
     if ( policy )
+    {
+        int err = errno;
         free(policy);
+        errno = err;
+    }
 }
 
 static int deserialize_policy(xc_interface *xch, xc_cpu_policy_t *policy,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:00:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:00:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652939.1019116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0Up-0003Jf-99; Tue, 12 Dec 2023 11:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652939.1019116; Tue, 12 Dec 2023 11: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 1rD0Up-0003JY-6b; Tue, 12 Dec 2023 11:00:15 +0000
Received: by outflank-mailman (input) for mailman id 652939;
 Tue, 12 Dec 2023 11:00: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=IzYH=HX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rD0Uo-0003JQ-Ii
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:00:14 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0182dde-98dd-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 12:00:13 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c46d6784eso18999465e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 03:00:13 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 g4-20020a5d5544000000b003333eadd206sm1043374wrw.27.2023.12.12.03.00.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 03:00:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0182dde-98dd-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702378813; x=1702983613; 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=N8MXrN+Cn3FzoXjyL/48GevHWtWaMfTYaAmqLcWF++M=;
        b=W9xJVjYd1O3xPVTgIYb80zngrvbBfokUiZQbHr/4b6y6ApU/dR0Bv3NaMd95HodzaC
         j2r6d0MYTErGYw/5Vcr42zW6rVX/NcuE+RhxAZevMULbycICmnNNLx5fe6xM1VVWnEjo
         HfAJF1wjr2Q/zAmqls0+YmoyHXFqYrid3TfVk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702378813; x=1702983613;
        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=N8MXrN+Cn3FzoXjyL/48GevHWtWaMfTYaAmqLcWF++M=;
        b=FKvdFB6Xtfcq6htzbS413MV44zaALzaTUgAoV30bGgKALTEhVWYAHmnPi+pElfp+W4
         +suyKVQn9YqGH/JHmyz3O3Pyeu1wvRX0YClAsHEyZxfsEXFamANNu7YqqQbCrYYHdb1/
         XLG+lhj3BQV7ZOKbtELFnrMOIv0DW4sD51HWIOw05dcmEcmsolGanBCQbi6VFcRnM6aE
         gp0FJDjGyvkTTxxFfaftyNrCqWR8TjbYMkvqX7PtKT5GV81lmdNlXoTnoKgy54iCxjTo
         ZqHoCCsh2YqG2NWe8OgyJwV8zm3hVSjLFUnAdvZATJ5nBR5/q5+30vNram0mt4CsZn3T
         rgWg==
X-Gm-Message-State: AOJu0YyUwtZ/ITAFDY+sQhUFKWzT3vlgoHRTT86p9pyr5J8mxAW0cQJG
	sx1vHJEVl9hgXLULsfx5GwoIQxfAb+mdNyg1WRs=
X-Google-Smtp-Source: AGHT+IG8roRDsBSl1Eg9ucnCVtZYhmkGFdewA2j57Hk7rAS0Hd8P+LcMU9szZSd1CZuKHbBWmYQrbw==
X-Received: by 2002:a05:600c:30d2:b0:40c:4378:f114 with SMTP id h18-20020a05600c30d200b0040c4378f114mr1925319wmn.177.1702378813111;
        Tue, 12 Dec 2023 03:00:13 -0800 (PST)
Date: Tue, 12 Dec 2023 12:00:12 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [OSSTEST PATCH 0/3] Set CONFIG_X86_GENERIC=y for i386 kernel
 build
Message-ID: <ZXg9PCXWaAcBtLEo@macbook>
References: <20231208160226.14739-1-anthony.perard@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231208160226.14739-1-anthony.perard@citrix.com>

On Fri, Dec 08, 2023 at 04:02:23PM +0000, Anthony PERARD wrote:
> CONFIG_X86_GENERIC=y and fixes around arch specific config values.
> 
> Thanks,
> 
> Anthony PERARD (3):
>   create_build_jobs: Set reset pvops_kconfig_overrides
>   create_build_jobs: Enable X86_GENERIC for i386 kernel pvops jobs.
>   ts-kernel-build: Remove use of $XEN_TARGET_ARCH

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

I would however request that if possible you expand a bit the
description on patch 2 with the additional information provided by
Juergen.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:09:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:09:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652947.1019127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0du-0005Tt-47; Tue, 12 Dec 2023 11:09:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652947.1019127; Tue, 12 Dec 2023 11:09:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0du-0005Tm-09; Tue, 12 Dec 2023 11:09:38 +0000
Received: by outflank-mailman (input) for mailman id 652947;
 Tue, 12 Dec 2023 11:09:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rD0ds-0005Tg-Uu
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:09:36 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee494418-98de-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 12:09:34 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 074941FD05;
 Tue, 12 Dec 2023 11:09: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 B0D08136C7;
 Tue, 12 Dec 2023 11:09:32 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id foKBKWw/eGV4LQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 11:09: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: ee494418-98de-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702379373; 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=WWFzz7B7HDdQvHxEm0VZDszHZV2tb7ZxAHURMGC6Hsw=;
	b=OXg3WypR1DlbaJa9MyURHuXDlbfnJRT7Gjsq87HQFjUDmUgNWOpohv5PnJIBLlZWAJmZNZ
	6isLNEEcvmoBaBky5iDJ2nwLqwks8gLsMFMMdvEyW+vcsXlb7plKFQR/NF5jD5O4LIDUUz
	tEHaL3zg5t08aek4ZetYmTEwbKkOiK4=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702379373; 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=WWFzz7B7HDdQvHxEm0VZDszHZV2tb7ZxAHURMGC6Hsw=;
	b=OXg3WypR1DlbaJa9MyURHuXDlbfnJRT7Gjsq87HQFjUDmUgNWOpohv5PnJIBLlZWAJmZNZ
	6isLNEEcvmoBaBky5iDJ2nwLqwks8gLsMFMMdvEyW+vcsXlb7plKFQR/NF5jD5O4LIDUUz
	tEHaL3zg5t08aek4ZetYmTEwbKkOiK4=
Message-ID: <29a4894c-6a08-49cb-9567-c952eaaffa0f@suse.com>
Date: Tue, 12 Dec 2023 12:09:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 javi.merino@cloud.com
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
 <2c2f8ee1-bf97-4e42-a1ef-74ed1997722c@xen.org>
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: <2c2f8ee1-bf97-4e42-a1ef-74ed1997722c@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------aBjSpE0n3i0K7srNAmULoOAb"
X-Spam-Level: ***************
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spam-Level: 
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=OXg3WypR;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [-5.94 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 SIGNED_PGP(-2.00)[];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.07)[62.39%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-0.97)[-0.975];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DWL_DNSWL_LOW(-1.00)[suse.com:dkim];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -5.94
X-Rspamd-Queue-Id: 074941FD05
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------aBjSpE0n3i0K7srNAmULoOAb
Content-Type: multipart/mixed; boundary="------------azZ9X7z6VYEbav50KaG0AXYb";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 javi.merino@cloud.com
Message-ID: <29a4894c-6a08-49cb-9567-c952eaaffa0f@suse.com>
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
 <2c2f8ee1-bf97-4e42-a1ef-74ed1997722c@xen.org>
In-Reply-To: <2c2f8ee1-bf97-4e42-a1ef-74ed1997722c@xen.org>

--------------azZ9X7z6VYEbav50KaG0AXYb
Content-Type: multipart/mixed; boundary="------------rwXR5bJKc7f00993aUOzVCHL"

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

T24gMTIuMTIuMjMgMTE6MTAsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDEyLzEyLzIwMjMgMDk6NDcsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBB
bGxvdyAxNiBiaXRzIHBlciBjcHUgbnVtYmVyLCB3aGljaCBpcyB0aGUgbGltaXQgaW1wb3Nl
ZCBieQ0KPj4gc3BpbmxvY2tfdGlja2V0c190Lg0KPj4NCj4+IFRoaXMgd2lsbCBhbGxvdyB1
cCB0byA2NTUzNSBjcHVzLCB3aGlsZSBpbmNyZWFzaW5nIG9ubHkgdGhlIHNpemUgb2YNCj4+
IHJlY3Vyc2l2ZSBzcGlubG9ja3MgaW4gZGVidWcgYnVpbGRzIGZyb20gOCB0byAxMiBieXRl
cy4NCj4gTG9va2luZyBhdCBhcmNoL0tjb25maWcsIGl0IGxvb2tzIGxpa2Ugd2UgYXJlIGxp
bWl0aW5nIE5SX0NQVVMgdG8gbWF4aW11bSA0MDk2LiANCj4gU28gY2FuIHlvdSBvdXRsaW5l
IHdoeSB3ZSBuZWVkIHRoaXM/DQoNClRoZSBsaW1pdCBvZiA0MDk2IGNwdXMgaXMgZGljdGF0
ZWQgYnkgdGhlIGN1cnJlbnQgbGltaXQgb2YgdGhlIHNwaW5sb2NrDQppbXBsZW1lbnRhdGlv
bi4gU28gYXNraW5nICJ3aHkgZG8gd2UgbmVlZCB0byBzdXBwb3J0IG1vcmUgdGhhbiA0MDk2
IGNwdXMNCmluIHNwaW5sb2NrX3Qgd2hlbiB0aGUgY3VycmVudCBYZW4gbGltaXQgaXMgNDA5
NiIgaXMga2luZCBvZiB0aGUgd3JvbmcNCnF1ZXN0aW9uLg0KDQpUaGUgY29ycmVjdCBxdWVz
dGlvbiB3b3VsZCBiZTogd2h5IGlzIFhlbiBsaW1pdGVkIHRvIDQwOTYgY3B1cz8gQW5zd2Vy
Og0KYmVjYXVzZSBvZiB0aGUgbGltaXQgaW4gc3BpbmxvY2tfdC4NCg0KVGhlcmUgYXJlICh4
ODYpIG1hY2hpbmVzIG91dCB0aGVyZSB3aXRoIG1vcmUgY3B1cyB0aGFuIDQwOTYsIGFuZCBK
YXZpIChhZGRlZA0KdG8gQ2M6KSB3YXMgYWxyZWFkeSBsb29raW5nIGludG8gcmlzaW5nIHRo
ZSBYZW4gbGltaXQuDQoNCj4gDQo+IEp1c3QgdG8gYmUgY2xlYXIgaXMgSSBhbSBub3QgYWdh
aW5zdCB0aGlzIGNoYW5nZSwgYnV0IGFsb25lIGl0IHNlZW1zIGEgbGl0dGxlIA0KPiBiaXQg
b2RkIHRvIGluY3JlYXNlIHRoZSBzaXplIGluIGRlYnVnIHdoZW4gdGhhdCBsaW1pdCBjYW4g
bmV2ZXIgYmUgcmVhY2hlZCAoYXQgDQo+IGxlYXN0IHRvZGF5KS4NCg0KDQpKdWVyZ2VuDQoN
Cg==
--------------rwXR5bJKc7f00993aUOzVCHL
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-----

--------------rwXR5bJKc7f00993aUOzVCHL--

--------------azZ9X7z6VYEbav50KaG0AXYb--

--------------aBjSpE0n3i0K7srNAmULoOAb
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/Ey8FAmV4P2wFAwAAAAAACgkQsN6d1ii/Ey80
UwgAlGyH6KM+WMa7o2dLrbBgHlndKDk8Rui9Su0umry1nESjc5BRo/EiznLoacpRwYH4L2VYBsVx
o+t/v90PifDQ6V+F6T8FtZuGZKMabpB2S6LQx6qbjLokoBSLXArzX5/yZNFe3Rm6FMmNK8e4DY4+
qJl+K8KfGvxwgD8cpPIWHl1iQt0xZj6AIBVV9A9HKczFhsShvZRIaq4XphUXMBPHCwUEa0F86A0h
oEbwPMh6Fru4S99U3gBhMpw8ztTu+jAfV0pokueZNzl27npU30tpvFTpMzZ4aXXje5Syb52MdBH8
idGXZYLbUi8NZjczwiFhTZx+rjvBqxdWTynh3ZffZg==
=sxvy
-----END PGP SIGNATURE-----

--------------aBjSpE0n3i0K7srNAmULoOAb--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:18:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:18:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652952.1019136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0mC-0000TJ-0h; Tue, 12 Dec 2023 11:18:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652952.1019136; Tue, 12 Dec 2023 11:18:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0mB-0000TC-UP; Tue, 12 Dec 2023 11:18:11 +0000
Received: by outflank-mailman (input) for mailman id 652952;
 Tue, 12 Dec 2023 11: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=IzYH=HX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rD0mA-0000T6-KK
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:18:10 +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 20b854e7-98e0-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 12:18:08 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3363397426eso352781f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 03:18:08 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 v4-20020a5d4a44000000b003342e0745absm10528606wrs.93.2023.12.12.03.18.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 03:18:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20b854e7-98e0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702379888; x=1702984688; 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=q7BFBppsK3GWi0F4LB+KttdrrzEfHyI8WvRQEogrcRE=;
        b=deE9eeDS9AicM2oPESH+238+vGS+YRjCe40iUTiZgt9JGq78OnKbWwFcjE3yXc/JOq
         R1DnerQfpbWwOcGkUhqn7ok9PfZ1RcZZ2rRYAOcMkOidiyQ5cef8nW9XXTT/PULhuF6A
         NAZbqq6EmoqL4aJ781y3sNNjOSyCpN9ohQUcE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702379888; x=1702984688;
        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=q7BFBppsK3GWi0F4LB+KttdrrzEfHyI8WvRQEogrcRE=;
        b=gwF6ly/SYxoqG7cIjWn1R2uzdlgR9T51h6Jh43wYmp+GzUjkxiC1DpGFbRSnYchicV
         oeWOkd0gm6JLF+W8InSp4VLQDhZScQmvammfm68XegjIBovHoweXdhjNaIRDrBC1IuTP
         GPfxU5OB08eP4038b8+PocLxhHiT15diOguBsIjuPOPDlX8+1GVTcMBk/pdqAn8GYWaU
         BPexNuelqaaJK9hwwati19O4lPVJyNNxDr+BN8PKaWOg2LOQvlhXBK09k6/ONY98ddB4
         B5rc4X4b0GxroE7Jfl7/Mh7PlfLT4QOYLmZXuwC5jwB5PNQGZwhLrd/0XO0zQgeS3Z/X
         pSJQ==
X-Gm-Message-State: AOJu0YxSEIkyf9NhPstf5yzWmPzSs5dLHHZq+Vvn2pquQ5cmXij1Ta4+
	7pW4A+BXVaNeZbGy2ba4SVfhcQ==
X-Google-Smtp-Source: AGHT+IE+cmXW0xzzzz/niDA4DCQcFmC2gDD9204EEblz5Il4mMgF4+Gk5TlFR116dxE3XcbBkwQm4g==
X-Received: by 2002:a5d:6242:0:b0:333:524d:59f9 with SMTP id m2-20020a5d6242000000b00333524d59f9mr2992320wrv.17.1702379887956;
        Tue, 12 Dec 2023 03:18:07 -0800 (PST)
Date: Tue, 12 Dec 2023 12:18:07 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Chen, Jiqian" <Jiqian.Chen@amd.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Message-ID: <ZXhBb0Vt6gDuprHa@macbook>
References: <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook>
 <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXculMdLgwGaRC7i@macbook>
 <BL1PR12MB584997DDE6839F2340022976E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXgeieg4E8UN0KoN@macbook>
 <50ca26a1-38e3-45fb-9c39-56e4d04de3e0@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <50ca26a1-38e3-45fb-9c39-56e4d04de3e0@suse.com>

On Tue, Dec 12, 2023 at 10:38:08AM +0100, Jan Beulich wrote:
> (I think the Cc list is too long here, but then I don't know who to
> keep and who to possibly drop.)
> 
> On 12.12.2023 09:49, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 12, 2023 at 06:16:43AM +0000, Chen, Jiqian wrote:
> >> On 2023/12/11 23:45, Roger Pau MonnÃ© wrote:
> >>> On Wed, Dec 06, 2023 at 06:07:26AM +0000, Chen, Jiqian wrote:
> >>>> +static int xen_pvh_setup_gsi(gsi_info_t *gsi_info)
> >>>> +{
> >>>> +       struct physdev_setup_gsi setup_gsi;
> >>>> +
> >>>> +       setup_gsi.gsi = gsi_info->gsi;
> >>>> +       setup_gsi.triggering = (gsi_info->trigger == ACPI_EDGE_SENSITIVE ? 0 : 1);
> >>>> +       setup_gsi.polarity = (gsi_info->polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
> >>>> +
> >>>> +       return HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
> >>>> +}
> >>>
> >>> Hm, why not simply call pcibios_enable_device() from pciback?  What
> >> pcibios_enable_device had been called when using cmd "xl pci-assignable-add sbdf" from pciback. But it didn't do map_pirq and setup_gsi.
> >> Because pcibios_enable_device-> pcibios_enable_irq-> __acpi_register_gsi(acpi_register_gsi_ioapic PVH specific)
> >>> you are doing here using the hypercalls is a backdoor into what's done
> >>> automatically by Xen on IO-APIC accesses by a PVH dom0.
> >> But the gsi didn't be unmasked, and vioapic_hwdom_map_gsi is never called.
> >> So, I think in pciback, if we can do what vioapic_hwdom_map_gsi does.
> >>
> > 
> > I see, it does setup the IO-APIC pin but doesn't unmask it, that's
> > what I feared.
> > 
> >>> It will be much more natural for the PVH dom0 model to simply use the
> >>> native way to configure and unmask the IO-APIC pin, and that would
> >>> correctly setup the triggering/polarity and bind it to dom0 without
> >>> requiring the usage of any hypercalls.
> >> Do you still prefer that I called unmask_irq in pcistub_init_device, as this v2 patch do?
> >> But Thomas Gleixner think it is not suitable to export unmask_irq.
> > 
> > Yeah, that wasn't good.
> > 
> >>>
> >>> Is that an issue since in that case the gsi will get mapped and bound
> >>> to dom0?
> >> Dom0 do map_pirq is to pass the check xc_domain_irq_permission()-> pirq_access_permitted(), 
> > 
> > Can we see about finding another way to fix this check?
> > 
> > One option would be granting permissions over the IRQ in
> > PHYSDEVOP_setup_gsi?
> 
> There's no domain available there, and imo it's also the wrong interface to
> possibly grant any permissions.

Well, the domain is the caller.

> > Otherwise we could see about modifying the logic in PHYSDEVOP_map_pirq
> > so that the hardware domain can map IRQs to other domains without
> > having it mapped to itself first?
> 
> While this may be possible to arrange for, it still would feel wrong. How
> would you express the same in a disaggregated environment? I.e. how would
> you make sure a domain trying to grant permission is actually permitted to
> do so for the resource in question?

I've been looking again at the original issue, and I think I was
confused.  The issue is not that dom0 doesn't have permissions over
the GSIs (as we do grant those in dom0_setup_permissions()), but
rather that XEN_DOMCTL_irq_permission attempts to use
domain_pirq_to_irq() in order to get the IRQ from the PIRQ parameter.

I've always been a bit confused with the PIRQ GSI relation, but IIRC
GSIs are always identity mapped to PIRQs, and hence you could possibly
adjust XEN_DOMCTL_irq_permission to use irq_permit_access() to check
if the caller domain has permissions over the target PIRQ.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:20:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:20:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652957.1019147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0nr-0001VC-Bd; Tue, 12 Dec 2023 11:19:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652957.1019147; Tue, 12 Dec 2023 11:19:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD0nr-0001V5-8f; Tue, 12 Dec 2023 11:19:55 +0000
Received: by outflank-mailman (input) for mailman id 652957;
 Tue, 12 Dec 2023 11:19:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rD0nq-0001Uv-6B
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:19:54 +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 5eb59665-98e0-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 12:19:52 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-336221efdceso1560344f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 03:19:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 w12-20020adfcd0c000000b003334010a849sm10541037wrm.109.2023.12.12.03.19.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 03:19:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5eb59665-98e0-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702379992; x=1702984792; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vwEjDc2CrhhCQ4rSnFOIHTRLclNv351PRw1yqQ6gOvc=;
        b=SsdJT+fzL3PbaBjEzicTqM0/YCVNhIvZ+bqaziKH9MKTohTvReyfOtbPpdbvjpuacJ
         d61NTAHeP4hPhEj1iLiDm//dTzqxbjbQzHCAF/P1WSJPbyXLaz5EjeH1ZcQ5bQp9hX2B
         eWMeNKeIQ3vu7m9Ks3/uNbH246HiZs+eikat6TRXkNIVWhzq7b2MuMcW1Hj2BJvFJ5Jv
         mKBRKJOJp89gddk3aENsehe2lNXlcHODB3I8bCNabTbuPMeQpxcIXjiGXzjsf3+TJDFo
         xjmhDJziHi2wdcI8oRiY1YT0elmIgWzaMm90o9rBI5VJxnEGLqQarFck3lgHDGL4DTVB
         bTdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702379992; x=1702984792;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=vwEjDc2CrhhCQ4rSnFOIHTRLclNv351PRw1yqQ6gOvc=;
        b=BD+gkK551U36RCVsZbW/Q4yRMAsOBo57rjRBghGN4PLyCM9V0zkUS1pBRhedsUVKuY
         0bpKky9yCw3XE/3hQ2pTN3nOOHqcQcnu+BJEWmC6HDtKKfy971U2RyJiLuseUjRAfhC4
         HLzBIl9bEVAOYV+2/L3L7O5JEJwe8f0usHrE3AVOI3FoTpHOxyVNOYSXZgG63U1olnb+
         AxgWxE1FIIZNkPAiVtNHEYl1PYlrSuK5ZvtJ54mkaf8JDIHzDFit0GZhchYZCOt7dGLf
         rT25GydwuiJyUimtf8dY6KjMRoIQMiLYl8eVTur7VO7AcRioBco7UEdOEE8B7WxYK1cB
         /+0g==
X-Gm-Message-State: AOJu0YxQysgVPg/+6x4TOxcR3AH68/aLhfDaio3+Iq6gX5Rqs5u28hnb
	+oynubyn9cHY4mLWLPBpKbt2
X-Google-Smtp-Source: AGHT+IGYmuHnHHwZdgS8cmc2M4RXLx4xGGviD6ncm+9+pbUeRvBRME7rh/XWp4ufVM9oE0BOeHwGZQ==
X-Received: by 2002:a05:6000:931:b0:333:3117:c48e with SMTP id cx17-20020a056000093100b003333117c48emr1212743wrb.287.1702379992016;
        Tue, 12 Dec 2023 03:19:52 -0800 (PST)
Message-ID: <c5d4e8a4-b286-4352-bf96-a67cb132b452@suse.com>
Date: Tue, 12 Dec 2023 12:19:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "Chen, Jiqian" <Jiqian.Chen@amd.com>, Thomas Gleixner
 <tglx@linutronix.de>, Stefano Stabellini <sstabellini@kernel.org>,
 Juergen Gross <jgross@suse.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Bjorn Helgaas <bhelgaas@google.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Huang, Honglei1" <Honglei1.Huang@amd.com>,
 "Zhang, Julia" <Julia.Zhang@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>
References: <alpine.DEB.2.22.394.2312011857260.110490@ubuntu-linux-20-04-desktop>
 <ZW2ptexPQXrWBiOS@macbook>
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXculMdLgwGaRC7i@macbook>
 <BL1PR12MB584997DDE6839F2340022976E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXgeieg4E8UN0KoN@macbook> <50ca26a1-38e3-45fb-9c39-56e4d04de3e0@suse.com>
 <ZXhBb0Vt6gDuprHa@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXhBb0Vt6gDuprHa@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.12.2023 12:18, Roger Pau MonnÃ© wrote:
> On Tue, Dec 12, 2023 at 10:38:08AM +0100, Jan Beulich wrote:
>> (I think the Cc list is too long here, but then I don't know who to
>> keep and who to possibly drop.)
>>
>> On 12.12.2023 09:49, Roger Pau MonnÃ© wrote:
>>> On Tue, Dec 12, 2023 at 06:16:43AM +0000, Chen, Jiqian wrote:
>>>> On 2023/12/11 23:45, Roger Pau MonnÃ© wrote:
>>>>> On Wed, Dec 06, 2023 at 06:07:26AM +0000, Chen, Jiqian wrote:
>>>>>> +static int xen_pvh_setup_gsi(gsi_info_t *gsi_info)
>>>>>> +{
>>>>>> +       struct physdev_setup_gsi setup_gsi;
>>>>>> +
>>>>>> +       setup_gsi.gsi = gsi_info->gsi;
>>>>>> +       setup_gsi.triggering = (gsi_info->trigger == ACPI_EDGE_SENSITIVE ? 0 : 1);
>>>>>> +       setup_gsi.polarity = (gsi_info->polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
>>>>>> +
>>>>>> +       return HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
>>>>>> +}
>>>>>
>>>>> Hm, why not simply call pcibios_enable_device() from pciback?  What
>>>> pcibios_enable_device had been called when using cmd "xl pci-assignable-add sbdf" from pciback. But it didn't do map_pirq and setup_gsi.
>>>> Because pcibios_enable_device-> pcibios_enable_irq-> __acpi_register_gsi(acpi_register_gsi_ioapic PVH specific)
>>>>> you are doing here using the hypercalls is a backdoor into what's done
>>>>> automatically by Xen on IO-APIC accesses by a PVH dom0.
>>>> But the gsi didn't be unmasked, and vioapic_hwdom_map_gsi is never called.
>>>> So, I think in pciback, if we can do what vioapic_hwdom_map_gsi does.
>>>>
>>>
>>> I see, it does setup the IO-APIC pin but doesn't unmask it, that's
>>> what I feared.
>>>
>>>>> It will be much more natural for the PVH dom0 model to simply use the
>>>>> native way to configure and unmask the IO-APIC pin, and that would
>>>>> correctly setup the triggering/polarity and bind it to dom0 without
>>>>> requiring the usage of any hypercalls.
>>>> Do you still prefer that I called unmask_irq in pcistub_init_device, as this v2 patch do?
>>>> But Thomas Gleixner think it is not suitable to export unmask_irq.
>>>
>>> Yeah, that wasn't good.
>>>
>>>>>
>>>>> Is that an issue since in that case the gsi will get mapped and bound
>>>>> to dom0?
>>>> Dom0 do map_pirq is to pass the check xc_domain_irq_permission()-> pirq_access_permitted(), 
>>>
>>> Can we see about finding another way to fix this check?
>>>
>>> One option would be granting permissions over the IRQ in
>>> PHYSDEVOP_setup_gsi?
>>
>> There's no domain available there, and imo it's also the wrong interface to
>> possibly grant any permissions.
> 
> Well, the domain is the caller.

Granting permission to itself?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:40:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652962.1019157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD17C-0007VG-Vx; Tue, 12 Dec 2023 11:39:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652962.1019157; Tue, 12 Dec 2023 11:39:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD17C-0007V9-SE; Tue, 12 Dec 2023 11:39:54 +0000
Received: by outflank-mailman (input) for mailman id 652962;
 Tue, 12 Dec 2023 11:39: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=IzYH=HX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rD17B-0007Td-Lh
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:39:53 +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 28857399-98e3-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 12:39:50 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3333a3a599fso3513668f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 03:39:50 -0800 (PST)
Received: from localhost ([213.195.113.99]) by smtp.gmail.com with ESMTPSA id
 f16-20020a5d6650000000b00336360467a8sm187075wrw.51.2023.12.12.03.39.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 03:39:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28857399-98e3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702381189; x=1702985989; 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=oNXBBRHD5qkWk2guSivg12tTPW3ePPSJ0V1IVaOxCk0=;
        b=uhY0suybSgrUCrrPvZNmcaMrMKbSEzhzJCyG8CBsiqj38O7UXjV2oLU+jY6uTQpbr5
         22+h1dvdKBOW17eEnNxheoktdGYBj340348sLRX5JgbCDmOFmfEpUiUyUNI6nK4GBCMd
         Rdy3sbISOqumAknR4FPYlypdNv1T9ITBzQawE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702381189; x=1702985989;
        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=oNXBBRHD5qkWk2guSivg12tTPW3ePPSJ0V1IVaOxCk0=;
        b=bRQodMiNeUuGge4HE/qxoMWkU4EYEu6el4ic435Rqe8N5vA3m5B/0eJvc2EiDGzopJ
         GtfdmyZogBmRgisO9Y2/kJbvWkSa2OaD/Akf/R2K6zg0U6rtVgzhrhXa307EQub6g3zN
         qBWdNPf9VToyjCv9d/CdbpfHu/nJaYl2uJW0BSOF3BbHoNHSJzWUiTr2Iwhie1iSh2ow
         w18vrvQgemIJ+b2RE7l4qORWs96Ox47S5kMt/dg6or/sZJEqI+sTp/fnhUqnR+kWTicn
         M7IbcJxN95cVoMDTd5bR+E7+S+dvzrgRgY/q5SuAA9Ddj0bRrUPavgxshhKH0oIT44s4
         eu/w==
X-Gm-Message-State: AOJu0YyN93cd+yKU1IthAQJ8sjCUEOo2L4XhYDZk80o/Q3Qm7h8pjqMx
	pH8amctVZ9zlSMhSaHB4Hiq09A==
X-Google-Smtp-Source: AGHT+IGhA7h3bvd2Khr+klspvTTuqGP41GONtnscuZATYBUae1a++AwgwOBg9QTOWntJSlUfuSQ8yQ==
X-Received: by 2002:a5d:5234:0:b0:333:2fd7:95f8 with SMTP id i20-20020a5d5234000000b003332fd795f8mr3438411wra.51.1702381189583;
        Tue, 12 Dec 2023 03:39:49 -0800 (PST)
Date: Tue, 12 Dec 2023 12:39:48 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Chen, Jiqian" <Jiqian.Chen@amd.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Message-ID: <ZXhGhKkcmlEZOpwZ@macbook>
References: <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook>
 <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXculMdLgwGaRC7i@macbook>
 <BL1PR12MB584997DDE6839F2340022976E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXgeieg4E8UN0KoN@macbook>
 <50ca26a1-38e3-45fb-9c39-56e4d04de3e0@suse.com>
 <ZXhBb0Vt6gDuprHa@macbook>
 <c5d4e8a4-b286-4352-bf96-a67cb132b452@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c5d4e8a4-b286-4352-bf96-a67cb132b452@suse.com>

On Tue, Dec 12, 2023 at 12:19:49PM +0100, Jan Beulich wrote:
> On 12.12.2023 12:18, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 12, 2023 at 10:38:08AM +0100, Jan Beulich wrote:
> >> (I think the Cc list is too long here, but then I don't know who to
> >> keep and who to possibly drop.)
> >>
> >> On 12.12.2023 09:49, Roger Pau MonnÃ© wrote:
> >>> On Tue, Dec 12, 2023 at 06:16:43AM +0000, Chen, Jiqian wrote:
> >>>> On 2023/12/11 23:45, Roger Pau MonnÃ© wrote:
> >>>>> On Wed, Dec 06, 2023 at 06:07:26AM +0000, Chen, Jiqian wrote:
> >>>>>> +static int xen_pvh_setup_gsi(gsi_info_t *gsi_info)
> >>>>>> +{
> >>>>>> +       struct physdev_setup_gsi setup_gsi;
> >>>>>> +
> >>>>>> +       setup_gsi.gsi = gsi_info->gsi;
> >>>>>> +       setup_gsi.triggering = (gsi_info->trigger == ACPI_EDGE_SENSITIVE ? 0 : 1);
> >>>>>> +       setup_gsi.polarity = (gsi_info->polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
> >>>>>> +
> >>>>>> +       return HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
> >>>>>> +}
> >>>>>
> >>>>> Hm, why not simply call pcibios_enable_device() from pciback?  What
> >>>> pcibios_enable_device had been called when using cmd "xl pci-assignable-add sbdf" from pciback. But it didn't do map_pirq and setup_gsi.
> >>>> Because pcibios_enable_device-> pcibios_enable_irq-> __acpi_register_gsi(acpi_register_gsi_ioapic PVH specific)
> >>>>> you are doing here using the hypercalls is a backdoor into what's done
> >>>>> automatically by Xen on IO-APIC accesses by a PVH dom0.
> >>>> But the gsi didn't be unmasked, and vioapic_hwdom_map_gsi is never called.
> >>>> So, I think in pciback, if we can do what vioapic_hwdom_map_gsi does.
> >>>>
> >>>
> >>> I see, it does setup the IO-APIC pin but doesn't unmask it, that's
> >>> what I feared.
> >>>
> >>>>> It will be much more natural for the PVH dom0 model to simply use the
> >>>>> native way to configure and unmask the IO-APIC pin, and that would
> >>>>> correctly setup the triggering/polarity and bind it to dom0 without
> >>>>> requiring the usage of any hypercalls.
> >>>> Do you still prefer that I called unmask_irq in pcistub_init_device, as this v2 patch do?
> >>>> But Thomas Gleixner think it is not suitable to export unmask_irq.
> >>>
> >>> Yeah, that wasn't good.
> >>>
> >>>>>
> >>>>> Is that an issue since in that case the gsi will get mapped and bound
> >>>>> to dom0?
> >>>> Dom0 do map_pirq is to pass the check xc_domain_irq_permission()-> pirq_access_permitted(), 
> >>>
> >>> Can we see about finding another way to fix this check?
> >>>
> >>> One option would be granting permissions over the IRQ in
> >>> PHYSDEVOP_setup_gsi?
> >>
> >> There's no domain available there, and imo it's also the wrong interface to
> >> possibly grant any permissions.
> > 
> > Well, the domain is the caller.
> 
> Granting permission to itself?

See below in the previous email, the issue is not with the
permissions, which are correctly assigned from
dom0_setup_permissions(), but the usage of domain_pirq_to_irq() in
pirq_access_permitted() as called by XEN_DOMCTL_irq_permission.
There's no need to play with the permissions at all.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:40:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:40:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652967.1019167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD184-0000oP-A9; Tue, 12 Dec 2023 11:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652967.1019167; Tue, 12 Dec 2023 11: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 1rD184-0000oI-7G; Tue, 12 Dec 2023 11:40:48 +0000
Received: by outflank-mailman (input) for mailman id 652967;
 Tue, 12 Dec 2023 11:40:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rD182-0000o8-TG
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:40:46 +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 1rD182-0005MI-M1; Tue, 12 Dec 2023 11:40:46 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD182-0006XD-EP; Tue, 12 Dec 2023 11:40: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=KykO3tlCCMmSZPtvJcGWxmVGOqrmWXFk37A4ESjIXJ4=; b=0FAJQTEjZ8gl/5wntTOW6W2C25
	9jGejJ4/ab9IMlwONwlSjqIgoCtfXx0+E6L1xXp/J+DOOac27g0dDNyXOF2FC71KKm/9ZuoDE59Ay
	N19sw0/ADDTseaWtrtGMPnQy5adGuNgipm+stREE93mFiX9POsJZr9A0RIMH5nFMAHzI=;
Message-ID: <e5d991d7-cfdb-4970-90e9-c43fc16cdba0@xen.org>
Date: Tue, 12 Dec 2023 11:40:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 javi.merino@cloud.com
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
 <2c2f8ee1-bf97-4e42-a1ef-74ed1997722c@xen.org>
 <29a4894c-6a08-49cb-9567-c952eaaffa0f@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <29a4894c-6a08-49cb-9567-c952eaaffa0f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 12/12/2023 11:09, Juergen Gross wrote:
> On 12.12.23 11:10, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 12/12/2023 09:47, Juergen Gross wrote:
>>> Allow 16 bits per cpu number, which is the limit imposed by
>>> spinlock_tickets_t.
>>>
>>> This will allow up to 65535 cpus, while increasing only the size of
>>> recursive spinlocks in debug builds from 8 to 12 bytes.
>> Looking at arch/Kconfig, it looks like we are limiting NR_CPUS to 
>> maximum 4096. So can you outline why we need this?
> 
> The limit of 4096 cpus is dictated by the current limit of the spinlock
> implementation. So asking "why do we need to support more than 4096 cpus
> in spinlock_t when the current Xen limit is 4096" is kind of the wrong
> question. >
> The correct question would be: why is Xen limited to 4096 cpus? Answer:
> because of the limit in spinlock_t.

I thought there was also some lock contention issue in Xen. Hence why I 
asked the question because the commit message doesn't really give any 
clue why we are raising the limit... (This is a hint that it probably 
needs to be expanded a bit).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:44:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652972.1019177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1Bv-0002Up-UC; Tue, 12 Dec 2023 11:44:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652972.1019177; Tue, 12 Dec 2023 11: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 1rD1Bv-0002Ui-RA; Tue, 12 Dec 2023 11:44:47 +0000
Received: by outflank-mailman (input) for mailman id 652972;
 Tue, 12 Dec 2023 11:44:46 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rD1Bu-0002Uc-8x
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:44:46 +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 1rD1Bt-0005Rj-Vz; Tue, 12 Dec 2023 11:44:45 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD1Bt-0006mk-QA; Tue, 12 Dec 2023 11:44:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=FgZoIbzKZyuwJLFL0Fix8G8Fx1iS5C3fAtASUpDKlCY=; b=aCeWjp07cgILqaeM1E0lCmUqcg
	w/YJ3XsUMeD3wm0852c6XYfZxNc9VGDemi21jBmbKx6veTtYUKLVs5lvZQE5JwnkYw8DJiMk6hXl3
	Q7D3umxGX2sUAKa25yQ9nyDTZMJ2e8WpdkkBIw0VACYU8pEzRvacU2DY9VkhTb6LnMnI=;
Message-ID: <b49a092d-a0de-4f54-8b1e-32c5a549c843@xen.org>
Date: Tue, 12 Dec 2023 11:44:43 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/3] xen: have a more generic unaligned.h header
Content-Language: en-GB
To: Juergen Gross <jgross@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20231211131616.1839-1-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231211131616.1839-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 11/12/2023 13:16, Juergen Gross wrote:
> Update Xen's unaligned.h header to support all architectures, allowing
> to remove the architecture specific variants (x86 only until now).
> 
> Changes in V2:
> - new patch 1 (Julien Grall)
> - adjusted patch 2 (Jan Beulich)
> 
> Changes in V3:
> - adjusted patch 2 (Andrew Cooper)
> 
> Juergen Gross (3):
>    xen/arm: set -mno-unaligned-access compiler option for Arm32
>    xen: make include/xen/unaligned.h usable on all architectures
>    xen: remove asm/unaligned.h

The series is now committed.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:46:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:46:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652974.1019187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1Dt-00039D-Af; Tue, 12 Dec 2023 11:46:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652974.1019187; Tue, 12 Dec 2023 11:46:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1Dt-000396-6w; Tue, 12 Dec 2023 11:46:49 +0000
Received: by outflank-mailman (input) for mailman id 652974;
 Tue, 12 Dec 2023 11:46: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 1rD1Ds-000390-4v
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:46: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 1rD1Dr-0005V5-7g; Tue, 12 Dec 2023 11:46:47 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD1Dr-0006rT-2Y; Tue, 12 Dec 2023 11:46: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:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=pJqnNvefVm93hOJgIQyEO7ib5GhgBU7NeedcXtSlBI4=; b=iq/358+/9WvZha9ei0yidkvh9W
	CX3v7h1qs7HTGVgEQj7qaZz0lB8SE5PCtDoSJAmpv6L+TATNP+7tohpMWQGVOyRQ/gUqUvN8dqtmP
	brfG44Kuu2o1tAjpwOzV3+yRMIsaPabXhnJWr9nWfzVX2roRylPkDp5/+/qmqg6O7/8I=;
Message-ID: <c86608cc-7dfc-4ccd-bd85-62d17c72a2cc@xen.org>
Date: Tue, 12 Dec 2023 11:46:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] MAINTAINERS: Hand over the release manager role to
 Oleksii Kurochko
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Henry Wang <Henry.Wang@arm.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20231207162036.1921323-1-Henry.Wang@arm.com>
 <90575ebd-4b09-47bd-a4ee-2f081020b2ad@xen.org>
In-Reply-To: <90575ebd-4b09-47bd-a4ee-2f081020b2ad@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07/12/2023 18:46, Julien Grall wrote:
> Hi,
> 
> On 07/12/2023 16:20, Henry Wang wrote:
>> I've finished the opportunity to do two releases (4.17 and 4.18)
>> and Oleksii Kurochko has volunteered to be the next release manager.
> 
> Henry, thanks for your time as release manager.
> Oleksii, thanks for stepping up and good luck for the role!
> 
>> Hand over the role to him by changing the maintainership of the
>> CHANGELOG.md.
>>
>> Signed-off-by: Henry Wang <Henry.Wang@arm.com>
> 
> Acked-by: Julien Grall <jgrall@amazon.com>
> 
> I didn't hear any objection during the community call. But I will give 
> until Tuesday morning (UK time) just in case. If there are none, then I 
> will commit it.

I haven't heard any objection. So this is now committed.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:49:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:49:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652978.1019196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1Gm-0003xu-Nt; Tue, 12 Dec 2023 11:49:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652978.1019196; Tue, 12 Dec 2023 11: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 1rD1Gm-0003xn-Kr; Tue, 12 Dec 2023 11:49:48 +0000
Received: by outflank-mailman (input) for mailman id 652978;
 Tue, 12 Dec 2023 11:49:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rD1Gl-0003vy-Cy
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:49:47 +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 1rD1Gk-0005Xs-Na; Tue, 12 Dec 2023 11:49:46 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD1Gk-0006vL-I1; Tue, 12 Dec 2023 11: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ZPOuZKwJwmad4Na8ydmsKVK8Vh9yP3C6c3O/x/4C7HA=; b=Jwm1Y3vGcYytKS1+BppiewjM/c
	RZNdidSRG376vsMr/bJ48Asgh9iaik/MhHh1aAhxYGaDzBt4o8DHXV9kj8vjzEQSAi7Ovp7AXlX0k
	M72d4Rv/Qx7Nwu3Jzcbw32RJ326a5+/gy65aVb2lke+1oZFyG60NRnak6jxA0ERpkcbQ=;
Message-ID: <170a19cb-7c79-4d48-8284-d5d4f9a98eca@xen.org>
Date: Tue, 12 Dec 2023 11:49:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen/arm: smmu: move phys_addr_t definition to
 linux-compat.h
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.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>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, Rahul Singh <rahul.singh@arm.com>
References: <e525cd0a2770743e052819b2e14f7df50f801a23.1702303903.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <e525cd0a2770743e052819b2e14f7df50f801a23.1702303903.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 11/12/2023 14:54, Federico Serafini wrote:
> Both smmu and smmu-v3 (ported from Linux) define the typedef name
> "phys_addr_t": move the type definition to the common header
> linux-compat.h to address violations of MISRA C:2012 Rule 5.6
> ("A typedef name shall be a unique identifier").
> No functional change.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

Regardless of Jan's comment:

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 11:56:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 11:56:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652981.1019206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1NU-0007AI-DQ; Tue, 12 Dec 2023 11:56:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652981.1019206; Tue, 12 Dec 2023 11:56:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1NU-0007AB-Av; Tue, 12 Dec 2023 11:56:44 +0000
Received: by outflank-mailman (input) for mailman id 652981;
 Tue, 12 Dec 2023 11:56:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Qa1=HX=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rD1NT-0007A2-K8
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 11:56:43 +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 836dab54-98e5-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 12:56:41 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c3ca9472dso35314535e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 03:56:41 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 i9-20020a05600c354900b003fee6e170f9sm16077232wmq.45.2023.12.12.03.56.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 03:56:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 836dab54-98e5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702382201; x=1702987001; 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=xBunA107wIy0gTQZ9mcw4hLAulb5qcRxITeSb5bOlMU=;
        b=tYJ9ZAiYW4db3i6F/wXwiDUBykd2M/cnbXEg29AQYuAqgApmsJNO5gLHcEt1ggIzU7
         EDnTSq+eKjZmSofPCymcDma28N4tUmdmhL4NH7bqiTsr64PaK3eilXMDO3+QLpvT1ff3
         joY6Mrm8qPV4JGy0HWUns/0cH7s6rlIFi0niI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702382201; x=1702987001;
        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=xBunA107wIy0gTQZ9mcw4hLAulb5qcRxITeSb5bOlMU=;
        b=CkCVsZX6AdvwzFFk2Eh1aeZrgnq3cqHl7DQZOAowZysjO1oohoQILIOHDxqY/erWWO
         XMT8Yyosi67oHyzb54KXyAQqNs9TDchT/EIDSBPtLZBksNk2U7HQxHb/csikT0Hym2vG
         ge3D59gX7vVj3GFhY/F9CZk75Ik4jjSQ0G6cT9Gh+CJVMwWypUSq/OUxjnAdhcZ9KdLS
         DHwYhSATPow8lFyZKAmckxwHD7ywrkMJuZ+d87YyCTDeqDvpiJO6Nlf+0wAhvewq6d67
         eNHBr4iF2km85EQarBJ95sKRSWB7U9CObvUWnwYzIE/iLjTY2BnKKgRMzNBKOeeT+lAi
         bEow==
X-Gm-Message-State: AOJu0YzBPD2HAc0yU85493IyRqefEI/Mk+kiDKRbM9jvV2i+3lWys0bC
	JcUqeBarI4x4m1uDgy/zWV4VTw==
X-Google-Smtp-Source: AGHT+IHWh7vexeswhBSa+NZnD1quO5YHXl14lhjYAO+B9XN7X8UReUM2pUVLg8dEN/INbktFffp5Qw==
X-Received: by 2002:a05:600c:17d0:b0:40c:2348:36db with SMTP id y16-20020a05600c17d000b0040c234836dbmr2152050wmo.239.1702382201118;
        Tue, 12 Dec 2023 03:56:41 -0800 (PST)
Date: Tue, 12 Dec 2023 11:56:40 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Juergen Gross <jgross@suse.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [OSSTEST PATCH 2/3] create_build_jobs: Enable X86_GENERIC for
 i386 kernel pvops jobs.
Message-ID: <0fef2f6d-9211-4f0d-a261-e1b2e180813f@perard>
References: <20231208160226.14739-1-anthony.perard@citrix.com>
 <20231208160226.14739-3-anthony.perard@citrix.com>
 <ZXgcBIAkmWrLvo-h@macbook>
 <6a175474-e6d4-4410-bde1-47c9895baeac@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6a175474-e6d4-4410-bde1-47c9895baeac@suse.com>

On Tue, Dec 12, 2023 at 09:48:46AM +0100, Juergen Gross wrote:
> On 12.12.23 09:38, Roger Pau Monné wrote:
> > On Fri, Dec 08, 2023 at 04:02:25PM +0000, Anthony PERARD wrote:
> > > This is following a failure to build "arch/x86/xen/enlighten.c" in
> > > build-i386-pvops jobs with linux 968f35f4ab1c ("Merge tag
> > > 'v6.7-rc3-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6")
> > > in linux-linus branch.
> > 
> > Could we expand a bit on why CONFIG_X86_GENERIC is required?  It would
> > seem to me that option should have been selected by default already?
> 
> No, the kernel's default for 32-bit x86 builds is still using the M686.
> 
> I guess this is for historical reasons.

If I add the following to the patch description, taken from Juergen
patch, would that be ok?

    Today the cpu type for a 32-bit x86 kernel is not specified in the
    used kernel config, resulting in the M686 to be used.

    Instead of using the M686 which isn't even a 64-bit cpu (thus not
    capable to run a Xen guest), use the X86_GENERIC variant which is
    more appropriate.

ref: https://lore.kernel.org/all/20231207080953.27976-1-jgross@suse.com/

I'm not sure what you mean Juergen with "not 64bit cpu -> can't run xen
guest", maybe it's because we can only run Xen on 64-bit cpus nowadays,
so if we can't run Xen, there's no Xen guest?

As for X86_GENERIC, I think I've read the description which says
something like distro should enable it, so I guess 32-bit distro would
usually have the config enabled, so it make sense that we test with it.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 12:01:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 12:01:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652987.1019217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1SN-0000jk-5j; Tue, 12 Dec 2023 12:01:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652987.1019217; Tue, 12 Dec 2023 12: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 1rD1SN-0000jd-2J; Tue, 12 Dec 2023 12:01:47 +0000
Received: by outflank-mailman (input) for mailman id 652987;
 Tue, 12 Dec 2023 12: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rD1SL-0000jV-KH
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 12:01:45 +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 37ee00e4-98e6-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 13:01:44 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id A47C91F381;
 Tue, 12 Dec 2023 12:01:43 +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 7AA8C13725;
 Tue, 12 Dec 2023 12:01:43 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id P1hWHKdLeGWWQwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 12: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: 37ee00e4-98e6-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702382503; 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=FDRQqvbxbFjhR+tSrmaOEiscLNB5HmtWiVCC6TrP330=;
	b=fLmY75EyO19nS9kfcnVueXIDt2+5y3g8gVPcaa6LLRx7phmas1gPQC9vW1bB25lpK17E32
	XOWOTpQYWfsltnaYliaGSbdx8ljM1CBMpSDb1LBboh6PLBu1kvQScxELMqiB1P9z3H2G+r
	yYroNHIkJfeZ5It8uEzPMx91khRqD/A=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702382503; 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=FDRQqvbxbFjhR+tSrmaOEiscLNB5HmtWiVCC6TrP330=;
	b=fLmY75EyO19nS9kfcnVueXIDt2+5y3g8gVPcaa6LLRx7phmas1gPQC9vW1bB25lpK17E32
	XOWOTpQYWfsltnaYliaGSbdx8ljM1CBMpSDb1LBboh6PLBu1kvQScxELMqiB1P9z3H2G+r
	yYroNHIkJfeZ5It8uEzPMx91khRqD/A=
Message-ID: <a3dd7a99-5706-4c6a-bf71-b159bc2a88c5@suse.com>
Date: Tue, 12 Dec 2023 13:01:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [OSSTEST PATCH 2/3] create_build_jobs: Enable X86_GENERIC for
 i386 kernel pvops jobs.
Content-Language: en-US
To: Anthony PERARD <anthony.perard@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org
References: <20231208160226.14739-1-anthony.perard@citrix.com>
 <20231208160226.14739-3-anthony.perard@citrix.com> <ZXgcBIAkmWrLvo-h@macbook>
 <6a175474-e6d4-4410-bde1-47c9895baeac@suse.com>
 <0fef2f6d-9211-4f0d-a261-e1b2e180813f@perard>
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: <0fef2f6d-9211-4f0d-a261-e1b2e180813f@perard>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------9UvtDfc8jPTxoO8oWnhUMpU7"
X-Spam-Level: ***************
X-Spam-Score: 15.00
X-Spam-Flag: YES
X-Spam-Level: 
X-Rspamd-Server: rspamd1
X-Rspamd-Queue-Id: A47C91F381
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=fLmY75Ey;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Result: default: False [-7.70 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[3];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -7.70

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------9UvtDfc8jPTxoO8oWnhUMpU7
Content-Type: multipart/mixed; boundary="------------eao9NKA7HGJ2o0FoMDzBPvJ2";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org
Message-ID: <a3dd7a99-5706-4c6a-bf71-b159bc2a88c5@suse.com>
Subject: Re: [OSSTEST PATCH 2/3] create_build_jobs: Enable X86_GENERIC for
 i386 kernel pvops jobs.
References: <20231208160226.14739-1-anthony.perard@citrix.com>
 <20231208160226.14739-3-anthony.perard@citrix.com> <ZXgcBIAkmWrLvo-h@macbook>
 <6a175474-e6d4-4410-bde1-47c9895baeac@suse.com>
 <0fef2f6d-9211-4f0d-a261-e1b2e180813f@perard>
In-Reply-To: <0fef2f6d-9211-4f0d-a261-e1b2e180813f@perard>

--------------eao9NKA7HGJ2o0FoMDzBPvJ2
Content-Type: multipart/mixed; boundary="------------Uvp1P0VVgnWDsh34SSbh2dcV"

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

T24gMTIuMTIuMjMgMTI6NTYsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUdWUsIERl
YyAxMiwgMjAyMyBhdCAwOTo0ODo0NkFNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gT24gMTIuMTIuMjMgMDk6MzgsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4gT24g
RnJpLCBEZWMgMDgsIDIwMjMgYXQgMDQ6MDI6MjVQTSArMDAwMCwgQW50aG9ueSBQRVJBUkQg
d3JvdGU6DQo+Pj4+IFRoaXMgaXMgZm9sbG93aW5nIGEgZmFpbHVyZSB0byBidWlsZCAiYXJj
aC94ODYveGVuL2VubGlnaHRlbi5jIiBpbg0KPj4+PiBidWlsZC1pMzg2LXB2b3BzIGpvYnMg
d2l0aCBsaW51eCA5NjhmMzVmNGFiMWMgKCJNZXJnZSB0YWcNCj4+Pj4gJ3Y2LjctcmMzLXNt
YjMtY2xpZW50LWZpeGVzJyBvZiBnaXQ6Ly9naXQuc2FtYmEub3JnL3NmcmVuY2gvY2lmcy0y
LjYiKQ0KPj4+PiBpbiBsaW51eC1saW51cyBicmFuY2guDQo+Pj4NCj4+PiBDb3VsZCB3ZSBl
eHBhbmQgYSBiaXQgb24gd2h5IENPTkZJR19YODZfR0VORVJJQyBpcyByZXF1aXJlZD8gIEl0
IHdvdWxkDQo+Pj4gc2VlbSB0byBtZSB0aGF0IG9wdGlvbiBzaG91bGQgaGF2ZSBiZWVuIHNl
bGVjdGVkIGJ5IGRlZmF1bHQgYWxyZWFkeT8NCj4+DQo+PiBObywgdGhlIGtlcm5lbCdzIGRl
ZmF1bHQgZm9yIDMyLWJpdCB4ODYgYnVpbGRzIGlzIHN0aWxsIHVzaW5nIHRoZSBNNjg2Lg0K
Pj4NCj4+IEkgZ3Vlc3MgdGhpcyBpcyBmb3IgaGlzdG9yaWNhbCByZWFzb25zLg0KPiANCj4g
SWYgSSBhZGQgdGhlIGZvbGxvd2luZyB0byB0aGUgcGF0Y2ggZGVzY3JpcHRpb24sIHRha2Vu
IGZyb20gSnVlcmdlbg0KPiBwYXRjaCwgd291bGQgdGhhdCBiZSBvaz8NCj4gDQo+ICAgICAg
VG9kYXkgdGhlIGNwdSB0eXBlIGZvciBhIDMyLWJpdCB4ODYga2VybmVsIGlzIG5vdCBzcGVj
aWZpZWQgaW4gdGhlDQo+ICAgICAgdXNlZCBrZXJuZWwgY29uZmlnLCByZXN1bHRpbmcgaW4g
dGhlIE02ODYgdG8gYmUgdXNlZC4NCj4gDQo+ICAgICAgSW5zdGVhZCBvZiB1c2luZyB0aGUg
TTY4NiB3aGljaCBpc24ndCBldmVuIGEgNjQtYml0IGNwdSAodGh1cyBub3QNCj4gICAgICBj
YXBhYmxlIHRvIHJ1biBhIFhlbiBndWVzdCksIHVzZSB0aGUgWDg2X0dFTkVSSUMgdmFyaWFu
dCB3aGljaCBpcw0KPiAgICAgIG1vcmUgYXBwcm9wcmlhdGUuDQo+IA0KPiByZWY6IGh0dHBz
Oi8vbG9yZS5rZXJuZWwub3JnL2FsbC8yMDIzMTIwNzA4MDk1My4yNzk3Ni0xLWpncm9zc0Bz
dXNlLmNvbS8NCj4gDQo+IEknbSBub3Qgc3VyZSB3aGF0IHlvdSBtZWFuIEp1ZXJnZW4gd2l0
aCAibm90IDY0Yml0IGNwdSAtPiBjYW4ndCBydW4geGVuDQo+IGd1ZXN0IiwgbWF5YmUgaXQn
cyBiZWNhdXNlIHdlIGNhbiBvbmx5IHJ1biBYZW4gb24gNjQtYml0IGNwdXMgbm93YWRheXMs
DQo+IHNvIGlmIHdlIGNhbid0IHJ1biBYZW4sIHRoZXJlJ3Mgbm8gWGVuIGd1ZXN0Pw0KDQpD
b3JyZWN0Lg0KDQoNCkp1ZXJnZW4NCg0K
--------------Uvp1P0VVgnWDsh34SSbh2dcV
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-----

--------------Uvp1P0VVgnWDsh34SSbh2dcV--

--------------eao9NKA7HGJ2o0FoMDzBPvJ2--

--------------9UvtDfc8jPTxoO8oWnhUMpU7
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/Ey8FAmV4S6cFAwAAAAAACgkQsN6d1ii/Ey+Z
Vwf/VdvMe2Wcx9zwrK6fX3xO2nVCH8PXtFzW8oeLcAeLZMeyVPlaDTnxg3mlHBrn4XjNJnymWUda
TYBcLVHPDoVUwMv6lTYc1CFZVn/R7Kvh7e4m0jZTWyfK3o2mAJ4GxzLqRsB7rjGPWg7ntwoIN52H
Xoo4jVsJKNA/EEFGO99KhuBAqeUm2GqeWnVhHcIuqSbmLqmMGeu/Mxzu2Xb1fEj7wlBjx4yWkrKo
1sdPm/Ek1hRekR1sx4Yt0jeyxxbDSqmi98VYOkVz7N3Axpk3telEsJyLNm9JTCkyEaMZ4Hfx6wTp
WmYysyoYAF0oTiWtn77B35gCOddxNv4zZC4y1FiVag==
=r2n/
-----END PGP SIGNATURE-----

--------------9UvtDfc8jPTxoO8oWnhUMpU7--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 12:02:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 12:02:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.652990.1019242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1Sb-0001My-M7; Tue, 12 Dec 2023 12:02:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 652990.1019242; Tue, 12 Dec 2023 12: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 1rD1Sb-0001Mr-JH; Tue, 12 Dec 2023 12:02:01 +0000
Received: by outflank-mailman (input) for mailman id 652990;
 Tue, 12 Dec 2023 12:02: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=mRPP=HX=xenbits.xen.org=julieng@srs-se1.protection.inumbo.net>)
 id 1rD1Sa-0000jV-3A
 for xen-devel@lists.xen.org; Tue, 12 Dec 2023 12:02:00 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f195976-98e6-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 13:01:58 +0100 (CET)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julieng@xenbits.xen.org>)
 id 1rD1SM-0005p1-Ul; Tue, 12 Dec 2023 12:01:46 +0000
Received: from julieng by xenbits.xenproject.org with local (Exim 4.92)
 (envelope-from <julieng@xenbits.xen.org>)
 id 1rD1SM-0007am-TM; Tue, 12 Dec 2023 12:01: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: 3f195976-98e6-11ee-98e8-6d05b1d4d9a1
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=IKVJYoJEAcqr4C0mhu8nw9Mo3QK1kIM7qw7Wb06QKjI=; b=fjQ1Bnjp1NGy4YbM0IGZc3yBH6
	vM6gjgkY3pyJ9wjbEs/mQysaRSnF6dF7Kw3TJiWxr/pMHlWY2QEtiexTGFJebTCJ0x0NrPTu1XuAj
	d2jQVTNxhJT8Z5i5UruI+gcmPZsKgnU4s+eC2donTFYHSU64Fm2AtI3wUwopDI+/n9fk=;
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 447 v2 (CVE-2023-46837) - arm32: The cache
 may not be properly cleaned/invalidated (take two)
Message-Id: <E1rD1SM-0007am-TM@xenbits.xenproject.org>
Date: Tue, 12 Dec 2023 12:01:46 +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-2023-46837 / XSA-447
                               version 2

  arm32: The cache may not be properly cleaned/invalidated (take two)

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

Arm provides multiple helpers to clean & invalidate the cache
for a given region.  This is, for instance, used when allocating
guest memory to ensure any writes (such as the ones during scrubbing)
have reached memory before handing over the page to a guest.

Unfortunately, the arithmetics in the helpers can overflow and would
then result to skip the cache cleaning/invalidation.  Therefore there
is no guarantee when all the writes will reach the memory.

This undefined behavior was meant to be addressed by XSA-437, but the
approach was not sufficient.

IMPACT
======

A malicious guest may be able to read sensitive data from memory that
previously belonged to another guest.

VULNERABLE SYSTEMS
==================

Systems running all version of Xen are affected.

Only systems running Xen on Arm 32-bit are vulnerable.  Xen on Arm 64-bit
is not affected.

MITIGATION
==========

There is no known mitigation.

CREDITS
=======

This issue was discovered by Michal Orzel from AMD.

RESOLUTION
==========

Applying the appropriate attached patch resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa447/xsa447.patch           xen-unstable - Xen 4.17.x
xsa447/xsa447-4.16.patch      Xen 4.16.x - Xen 4.15.x

$ sha256sum xsa447* xsa447*/*
639f3a30124fd0f45b6b68768c02a5b5aa2e78c6c1f28bbf1ea5fb9be1f874af  xsa447.meta
0816717ab6e9c2250975ed1100bb2943830dc10e9a52aed7dd5cbe1884a15918  xsa447/xsa447.patch
f325543852b28af3fb2a2ca501a70fc59d3b35432334d52f734b2071c8a9667f  xsa447/xsa447-4.16.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/4UyVfoK9kFAmV4SxMMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZvnUIAIG4NNqHQCeBV0VOLtdZLNgaBDt9Vguc4FLUYlI5
aBc4/IWrsGYYRuBzLAPGoKYP9/F+OjiHcE0ClFnxkQJ+bFKl4SQLxmSksHkvPtpo
6yL53IbyraIbA+TulYquTr27v7ZnTI9LQA3VurD6sMgiWIo8+C/kSb6g/1TAsm4R
qzHDRLhTd4H+yU7KV327qIUk1D4S0eGP1yWpudpd0A/05RBgI9m4gp01VFeJn8w+
UbYba/4LpcAKG/iyvxqk5o3fyO60zhZEc5BBHhcz7DJ+UvLrLf7TDLrkaI6lorye
m6etZ+kWU9ESL1Qy+lHEk9HqUOg25xQb5gPDrIP3TOMSsUU=
=mrfT
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa447.meta"
Content-Disposition: attachment; filename="xsa447.meta"
Content-Transfer-Encoding: base64

ewogICJYU0EiOiA0NDcsCiAgIlN1cHBvcnRlZFZlcnNpb25zIjogWwogICAg
Im1hc3RlciIsCiAgICAiNC4xOCIsCiAgICAiNC4xNyIsCiAgICAiNC4xNiIs
CiAgICAiNC4xNSIKICBdLAogICJUcmVlcyI6IFsKICAgICJ4ZW4iCiAgXSwK
ICAiUmVjaXBlcyI6IHsKICAgICI0LjE1IjogewogICAgICAiUmVjaXBlcyI6
IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICJi
OTE4YzRjZGM3YWIyYzFjOWU5YTliNTRmYTlkOWM1OTU5MTNlMDI4IiwKICAg
ICAgICAgICJQcmVyZXFzIjogW10sCiAgICAgICAgICAiUGF0Y2hlcyI6IFsK
ICAgICAgICAgICAgInhzYTQ0Ny94c2E0NDctNC4xNi5wYXRjaCIKICAgICAg
ICAgIF0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiNC4xNiI6IHsK
ICAgICAgIlJlY2lwZXMiOiB7CiAgICAgICAgInhlbiI6IHsKICAgICAgICAg
ICJTdGFibGVSZWYiOiAiNGRmZTk1MTc3Yjk0OGQxZjNlZDI3YTgwMWY2MDNl
ZDdmMWJjMzZlOCIsCiAgICAgICAgICAiUHJlcmVxcyI6IFtdLAogICAgICAg
ICAgIlBhdGNoZXMiOiBbCiAgICAgICAgICAgICJ4c2E0NDcveHNhNDQ3LTQu
MTYucGF0Y2giCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9
LAogICAgIjQuMTciOiB7CiAgICAgICJSZWNpcGVzIjogewogICAgICAgICJ4
ZW4iOiB7CiAgICAgICAgICAiU3RhYmxlUmVmIjogImUxZjljYjE2ZTJlZmJi
MjAyZjJmOGE5YWE3YzVmZjFkMzkyZWNlMzMiLAogICAgICAgICAgIlByZXJl
cXMiOiBbXSwKICAgICAgICAgICJQYXRjaGVzIjogWwogICAgICAgICAgICAi
eHNhNDQ3L3hzYTQ0Ny5wYXRjaCIKICAgICAgICAgIF0KICAgICAgICB9CiAg
ICAgIH0KICAgIH0sCiAgICAiNC4xOCI6IHsKICAgICAgIlJlY2lwZXMiOiB7
CiAgICAgICAgInhlbiI6IHsKICAgICAgICAgICJTdGFibGVSZWYiOiAiM2Y5
MzkwZmVhNWM1MWE2ZDY0NTk2ZDI5NTkwMmQyODkzMWVlY2E0YyIsCiAgICAg
ICAgICAiUHJlcmVxcyI6IFtdLAogICAgICAgICAgIlBhdGNoZXMiOiBbCiAg
ICAgICAgICAgICJ4c2E0NDcveHNhNDQ3LnBhdGNoIgogICAgICAgICAgXQog
ICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICJtYXN0ZXIiOiB7CiAgICAg
ICJSZWNpcGVzIjogewogICAgICAgICJ4ZW4iOiB7CiAgICAgICAgICAiU3Rh
YmxlUmVmIjogIjgwYzE1M2M0OGIyNTViYWU2MTk0ODgyNzI0MWMyNjY3MTIw
N2NmNGUiLAogICAgICAgICAgIlByZXJlcXMiOiBbXSwKICAgICAgICAgICJQ
YXRjaGVzIjogWwogICAgICAgICAgICAieHNhNDQ3L3hzYTQ0Ny5wYXRjaCIK
ICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0K

--=separator
Content-Type: application/octet-stream; name="xsa447/xsa447.patch"
Content-Disposition: attachment; filename="xsa447/xsa447.patch"
Content-Transfer-Encoding: base64

RnJvbSAwODRjNzMxMmZhNmMxZDRhN2ZhMzQzZWZhMWQ3ZDczNjkzZGFmZmY0
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWwgT3J6ZWwg
PG1pY2hhbC5vcnplbEBhbWQuY29tPgpEYXRlOiBUaHUsIDIzIE5vdiAyMDIz
IDE1OjUzOjAyICswMTAwClN1YmplY3Q6IFtQQVRDSF0geGVuL2FybTogcGFn
ZTogQXZvaWQgcG9pbnRlciBvdmVyZmxvdyBvbiBjYWNoZSBjbGVhbiAmCiBp
bnZhbGlkYXRlCgpPbiBBcm0zMiwgYWZ0ZXIgY2xlYW5pbmcgYW5kIGludmFs
aWRhdGluZyB0aGUgbGFzdCBkY2FjaGUgbGluZSBvZiB0aGUgdG9wCmRvbWhl
YXAgcGFnZSBpLmUuIFZBID0gMHhmZmZmZjAwMCAoYXMgYSByZXN1bHQgb2Yg
Zmx1c2hpbmcgdGhlIHBhZ2UgdG8KUkFNKSwgd2UgZW5kIHVwIGFkZGluZyB0
aGUgdmFsdWUgb2YgYSBkY2FjaGUgbGluZSBzaXplIHRvIHRoZSBwb2ludGVy
Cm9uY2UgYWdhaW4sIHdoaWNoIHJlc3VsdHMgaW4gYSBwb2ludGVyIGFyaXRo
bWV0aWMgb3ZlcmZsb3cgKHdpdGggNjRCIGxpbmUKc2l6ZSwgb3BlcmF0aW9u
IDB4ZmZmZmZmYzAgKyAweDQwIG92ZXJmbG93cyB0byAweDApLiBTdWNoIGJl
aGF2aW9yIGlzCnVuZGVmaW5lZCBhbmQgZ2l2ZW4gdGhlIHdpZGUgcmFuZ2Ug
b2YgY29tcGlsZXIgdmVyc2lvbnMgd2Ugc3VwcG9ydCwgaXQgaXMKZGlmZmlj
dWx0IHRvIGRldGVybWluZSB3aGF0IGNvdWxkIGhhcHBlbiBpbiBzdWNoIHNj
ZW5hcmlvLgoKTW9kaWZ5IGNsZWFuX2FuZF9pbnZhbGlkYXRlX2RjYWNoZV92
YV9yYW5nZSgpIGFzIHdlbGwgYXMKY2xlYW5fZGNhY2hlX3ZhX3JhbmdlKCkg
YW5kIGludmFsaWRhdGVfZGNhY2hlX3ZhX3JhbmdlKCkgZHVlIHRvIHNpbWls
YXJpdHkKb2YgaGFuZGxpbmcgdG8gcHJldmVudCBwb2ludGVyIGFyaXRobWV0
aWMgb3ZlcmZsb3cuIE1vZGlmeSB0aGUgbG9vcHMgdG8KdXNlIGFuIGFkZGl0
aW9uYWwgdmFyaWFibGUgdG8gc3RvcmUgdGhlIGluZGV4IG9mIHRoZSBuZXh0
IGNhY2hlbGluZS4KQWRkIGFuIGFzc2VydCB0byBwcmV2ZW50IHBhc3Npbmcg
YSByZWdpb24gdGhhdCB3cmFwcyBhcm91bmQgd2hpY2ggaXMKaWxsZWdhbCBh
bmQgd291bGQgZW5kIHVwIGluIGEgcGFnZSBmYXVsdCBhbnl3YXkgKHJlZ2lv
biAwLTJNQiBpcwp1bm1hcHBlZCkuIExhc3RseSwgcmV0dXJuIGVhcmx5IGlm
IHNpemUgcGFzc2VkIGlzIDAuCgpOb3RlIHRoYXQgb24gQXJtNjQsIHdlIGRv
bid0IGhhdmUgdGhpcyBwcm9ibGVtIGdpdmVuIHRoYXQgdGhlIG1heCBWQQpz
cGFjZSB3ZSBzdXBwb3J0IGlzIDQ4LWJpdHMuCgpUaGlzIGlzIFhTQS00NDcg
LyBDVkUtMjAyMy00NjgzNy4KClNpZ25lZC1vZmYtYnk6IE1pY2hhbCBPcnpl
bCA8bWljaGFsLm9yemVsQGFtZC5jb20+ClJldmlld2VkLWJ5OiBKdWxpZW4g
R3JhbGwgPGpncmFsbEBhbWF6b24uY29tPgotLS0KIHhlbi9hcmNoL2FybS9p
bmNsdWRlL2FzbS9wYWdlLmggfCAzNSArKysrKysrKysrKysrKysrKysrKysr
KysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCsp
LCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9p
bmNsdWRlL2FzbS9wYWdlLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
cGFnZS5oCmluZGV4IGViYWY1OTY0ZjExNC4uNjlmODE3ZDFlNjhhIDEwMDY0
NAotLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcGFnZS5oCisrKyBi
L3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wYWdlLmgKQEAgLTE2Miw2ICsx
NjIsMTMgQEAgc3RhdGljIGlubGluZSBzaXplX3QgcmVhZF9kY2FjaGVfbGlu
ZV9ieXRlcyh2b2lkKQogc3RhdGljIGlubGluZSBpbnQgaW52YWxpZGF0ZV9k
Y2FjaGVfdmFfcmFuZ2UoY29uc3Qgdm9pZCAqcCwgdW5zaWduZWQgbG9uZyBz
aXplKQogewogICAgIHNpemVfdCBjYWNoZWxpbmVfbWFzayA9IGRjYWNoZV9s
aW5lX2J5dGVzIC0gMTsKKyAgICB1bnNpZ25lZCBsb25nIGlkeCA9IDA7CisK
KyAgICBpZiAoICFzaXplICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAv
KiBQYXNzaW5nIGEgcmVnaW9uIHRoYXQgd3JhcHMgYXJvdW5kIGlzIGlsbGVn
YWwgKi8KKyAgICBBU1NFUlQoKCh1aW50cHRyX3QpcCArIHNpemUgLSAxKSA+
PSAodWludHB0cl90KXApOwogCiAgICAgZHNiKHN5KTsgICAgICAgICAgIC8q
IFNvIHRoZSBDUFUgaXNzdWVzIGFsbCB3cml0ZXMgdG8gdGhlIHJhbmdlICov
CiAKQEAgLTE3NCwxMSArMTgxLDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IGlu
dmFsaWRhdGVfZGNhY2hlX3ZhX3JhbmdlKGNvbnN0IHZvaWQgKnAsIHVuc2ln
bmVkIGxvbmcgc2l6ZSkKICAgICB9CiAKICAgICBmb3IgKCA7IHNpemUgPj0g
ZGNhY2hlX2xpbmVfYnl0ZXM7Ci0gICAgICAgICAgICBwICs9IGRjYWNoZV9s
aW5lX2J5dGVzLCBzaXplIC09IGRjYWNoZV9saW5lX2J5dGVzICkKLSAgICAg
ICAgYXNtIHZvbGF0aWxlIChfX2ludmFsaWRhdGVfZGNhY2hlX29uZSgwKSA6
IDogInIiIChwKSk7CisgICAgICAgICAgICBpZHggKz0gZGNhY2hlX2xpbmVf
Ynl0ZXMsIHNpemUgLT0gZGNhY2hlX2xpbmVfYnl0ZXMgKQorICAgICAgICBh
c20gdm9sYXRpbGUgKF9faW52YWxpZGF0ZV9kY2FjaGVfb25lKDApIDogOiAi
ciIgKHAgKyBpZHgpKTsKIAogICAgIGlmICggc2l6ZSA+IDAgKQotICAgICAg
ICBhc20gdm9sYXRpbGUgKF9fY2xlYW5fYW5kX2ludmFsaWRhdGVfZGNhY2hl
X29uZSgwKSA6IDogInIiIChwKSk7CisgICAgICAgIGFzbSB2b2xhdGlsZSAo
X19jbGVhbl9hbmRfaW52YWxpZGF0ZV9kY2FjaGVfb25lKDApIDogOiAiciIg
KHAgKyBpZHgpKTsKIAogICAgIGRzYihzeSk7ICAgICAgICAgICAvKiBTbyB3
ZSBrbm93IHRoZSBmbHVzaGVzIGhhcHBlbiBiZWZvcmUgY29udGludWluZyAq
LwogCkBAIC0xODgsMTQgKzE5NSwyMSBAQCBzdGF0aWMgaW5saW5lIGludCBp
bnZhbGlkYXRlX2RjYWNoZV92YV9yYW5nZShjb25zdCB2b2lkICpwLCB1bnNp
Z25lZCBsb25nIHNpemUpCiBzdGF0aWMgaW5saW5lIGludCBjbGVhbl9kY2Fj
aGVfdmFfcmFuZ2UoY29uc3Qgdm9pZCAqcCwgdW5zaWduZWQgbG9uZyBzaXpl
KQogewogICAgIHNpemVfdCBjYWNoZWxpbmVfbWFzayA9IGRjYWNoZV9saW5l
X2J5dGVzIC0gMTsKKyAgICB1bnNpZ25lZCBsb25nIGlkeCA9IDA7CisKKyAg
ICBpZiAoICFzaXplICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvKiBQ
YXNzaW5nIGEgcmVnaW9uIHRoYXQgd3JhcHMgYXJvdW5kIGlzIGlsbGVnYWwg
Ki8KKyAgICBBU1NFUlQoKCh1aW50cHRyX3QpcCArIHNpemUgLSAxKSA+PSAo
dWludHB0cl90KXApOwogCiAgICAgZHNiKHN5KTsgICAgICAgICAgIC8qIFNv
IHRoZSBDUFUgaXNzdWVzIGFsbCB3cml0ZXMgdG8gdGhlIHJhbmdlICovCiAg
ICAgc2l6ZSArPSAodWludHB0cl90KXAgJiBjYWNoZWxpbmVfbWFzazsKICAg
ICBzaXplID0gKHNpemUgKyBjYWNoZWxpbmVfbWFzaykgJiB+Y2FjaGVsaW5l
X21hc2s7CiAgICAgcCA9ICh2b2lkICopKCh1aW50cHRyX3QpcCAmIH5jYWNo
ZWxpbmVfbWFzayk7CiAgICAgZm9yICggOyBzaXplID49IGRjYWNoZV9saW5l
X2J5dGVzOwotICAgICAgICAgICAgcCArPSBkY2FjaGVfbGluZV9ieXRlcywg
c2l6ZSAtPSBkY2FjaGVfbGluZV9ieXRlcyApCi0gICAgICAgIGFzbSB2b2xh
dGlsZSAoX19jbGVhbl9kY2FjaGVfb25lKDApIDogOiAiciIgKHApKTsKKyAg
ICAgICAgICAgIGlkeCArPSBkY2FjaGVfbGluZV9ieXRlcywgc2l6ZSAtPSBk
Y2FjaGVfbGluZV9ieXRlcyApCisgICAgICAgIGFzbSB2b2xhdGlsZSAoX19j
bGVhbl9kY2FjaGVfb25lKDApIDogOiAiciIgKHAgKyBpZHgpKTsKICAgICBk
c2Ioc3kpOyAgICAgICAgICAgLyogU28gd2Uga25vdyB0aGUgZmx1c2hlcyBo
YXBwZW4gYmVmb3JlIGNvbnRpbnVpbmcgKi8KICAgICAvKiBBUk0gY2FsbGVy
cyBhc3N1bWUgdGhhdCBkY2FjaGVfKiBmdW5jdGlvbnMgY2Fubm90IGZhaWwu
ICovCiAgICAgcmV0dXJuIDA7CkBAIC0yMDUsMTQgKzIxOSwyMSBAQCBzdGF0
aWMgaW5saW5lIGludCBjbGVhbl9hbmRfaW52YWxpZGF0ZV9kY2FjaGVfdmFf
cmFuZ2UKICAgICAoY29uc3Qgdm9pZCAqcCwgdW5zaWduZWQgbG9uZyBzaXpl
KQogewogICAgIHNpemVfdCBjYWNoZWxpbmVfbWFzayA9IGRjYWNoZV9saW5l
X2J5dGVzIC0gMTsKKyAgICB1bnNpZ25lZCBsb25nIGlkeCA9IDA7CisKKyAg
ICBpZiAoICFzaXplICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvKiBQ
YXNzaW5nIGEgcmVnaW9uIHRoYXQgd3JhcHMgYXJvdW5kIGlzIGlsbGVnYWwg
Ki8KKyAgICBBU1NFUlQoKCh1aW50cHRyX3QpcCArIHNpemUgLSAxKSA+PSAo
dWludHB0cl90KXApOwogCiAgICAgZHNiKHN5KTsgICAgICAgICAvKiBTbyB0
aGUgQ1BVIGlzc3VlcyBhbGwgd3JpdGVzIHRvIHRoZSByYW5nZSAqLwogICAg
IHNpemUgKz0gKHVpbnRwdHJfdClwICYgY2FjaGVsaW5lX21hc2s7CiAgICAg
c2l6ZSA9IChzaXplICsgY2FjaGVsaW5lX21hc2spICYgfmNhY2hlbGluZV9t
YXNrOwogICAgIHAgPSAodm9pZCAqKSgodWludHB0cl90KXAgJiB+Y2FjaGVs
aW5lX21hc2spOwogICAgIGZvciAoIDsgc2l6ZSA+PSBkY2FjaGVfbGluZV9i
eXRlczsKLSAgICAgICAgICAgIHAgKz0gZGNhY2hlX2xpbmVfYnl0ZXMsIHNp
emUgLT0gZGNhY2hlX2xpbmVfYnl0ZXMgKQotICAgICAgICBhc20gdm9sYXRp
bGUgKF9fY2xlYW5fYW5kX2ludmFsaWRhdGVfZGNhY2hlX29uZSgwKSA6IDog
InIiIChwKSk7CisgICAgICAgICAgICBpZHggKz0gZGNhY2hlX2xpbmVfYnl0
ZXMsIHNpemUgLT0gZGNhY2hlX2xpbmVfYnl0ZXMgKQorICAgICAgICBhc20g
dm9sYXRpbGUgKF9fY2xlYW5fYW5kX2ludmFsaWRhdGVfZGNhY2hlX29uZSgw
KSA6IDogInIiIChwICsgaWR4KSk7CiAgICAgZHNiKHN5KTsgICAgICAgICAv
KiBTbyB3ZSBrbm93IHRoZSBmbHVzaGVzIGhhcHBlbiBiZWZvcmUgY29udGlu
dWluZyAqLwogICAgIC8qIEFSTSBjYWxsZXJzIGFzc3VtZSB0aGF0IGRjYWNo
ZV8qIGZ1bmN0aW9ucyBjYW5ub3QgZmFpbC4gKi8KICAgICByZXR1cm4gMDsK
LS0gCjIuNDAuMQoK

--=separator
Content-Type: application/octet-stream; name="xsa447/xsa447-4.16.patch"
Content-Disposition: attachment; filename="xsa447/xsa447-4.16.patch"
Content-Transfer-Encoding: base64

RnJvbSAyYmM3MmI4YmU0MTQ5YzFhYzg3MzNlNTU1MWQ5MzdkM2QxMmNiOGVk
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWwgT3J6ZWwg
PG1pY2hhbC5vcnplbEBhbWQuY29tPgpEYXRlOiBUaHUsIDIzIE5vdiAyMDIz
IDE1OjUzOjAyICswMTAwClN1YmplY3Q6IFtQQVRDSF0geGVuL2FybTogcGFn
ZTogQXZvaWQgcG9pbnRlciBvdmVyZmxvdyBvbiBjYWNoZSBjbGVhbiAmCiBp
bnZhbGlkYXRlCgpPbiBBcm0zMiwgYWZ0ZXIgY2xlYW5pbmcgYW5kIGludmFs
aWRhdGluZyB0aGUgbGFzdCBkY2FjaGUgbGluZSBvZiB0aGUgdG9wCmRvbWhl
YXAgcGFnZSBpLmUuIFZBID0gMHhmZmZmZjAwMCAoYXMgYSByZXN1bHQgb2Yg
Zmx1c2hpbmcgdGhlIHBhZ2UgdG8KUkFNKSwgd2UgZW5kIHVwIGFkZGluZyB0
aGUgdmFsdWUgb2YgYSBkY2FjaGUgbGluZSBzaXplIHRvIHRoZSBwb2ludGVy
Cm9uY2UgYWdhaW4sIHdoaWNoIHJlc3VsdHMgaW4gYSBwb2ludGVyIGFyaXRo
bWV0aWMgb3ZlcmZsb3cgKHdpdGggNjRCIGxpbmUKc2l6ZSwgb3BlcmF0aW9u
IDB4ZmZmZmZmYzAgKyAweDQwIG92ZXJmbG93cyB0byAweDApLiBTdWNoIGJl
aGF2aW9yIGlzCnVuZGVmaW5lZCBhbmQgZ2l2ZW4gdGhlIHdpZGUgcmFuZ2Ug
b2YgY29tcGlsZXIgdmVyc2lvbnMgd2Ugc3VwcG9ydCwgaXQgaXMKZGlmZmlj
dWx0IHRvIGRldGVybWluZSB3aGF0IGNvdWxkIGhhcHBlbiBpbiBzdWNoIHNj
ZW5hcmlvLgoKTW9kaWZ5IGNsZWFuX2FuZF9pbnZhbGlkYXRlX2RjYWNoZV92
YV9yYW5nZSgpIGFzIHdlbGwgYXMKY2xlYW5fZGNhY2hlX3ZhX3JhbmdlKCkg
YW5kIGludmFsaWRhdGVfZGNhY2hlX3ZhX3JhbmdlKCkgZHVlIHRvIHNpbWls
YXJpdHkKb2YgaGFuZGxpbmcgdG8gcHJldmVudCBwb2ludGVyIGFyaXRobWV0
aWMgb3ZlcmZsb3cuIE1vZGlmeSB0aGUgbG9vcHMgdG8KdXNlIGFuIGFkZGl0
aW9uYWwgdmFyaWFibGUgdG8gc3RvcmUgdGhlIGluZGV4IG9mIHRoZSBuZXh0
IGNhY2hlbGluZS4KQWRkIGFuIGFzc2VydCB0byBwcmV2ZW50IHBhc3Npbmcg
YSByZWdpb24gdGhhdCB3cmFwcyBhcm91bmQgd2hpY2ggaXMKaWxsZWdhbCBh
bmQgd291bGQgZW5kIHVwIGluIGEgcGFnZSBmYXVsdCBhbnl3YXkgKHJlZ2lv
biAwLTJNQiBpcwp1bm1hcHBlZCkuIExhc3RseSwgcmV0dXJuIGVhcmx5IGlm
IHNpemUgcGFzc2VkIGlzIDAuCgpOb3RlIHRoYXQgb24gQXJtNjQsIHdlIGRv
bid0IGhhdmUgdGhpcyBwcm9ibGVtIGdpdmVuIHRoYXQgdGhlIG1heCBWQQpz
cGFjZSB3ZSBzdXBwb3J0IGlzIDQ4LWJpdHMuCgpUaGlzIGlzIFhTQS00NDcg
LyBDVkUtMjAyMy00NjgzNy4KClNpZ25lZC1vZmYtYnk6IE1pY2hhbCBPcnpl
bCA8bWljaGFsLm9yemVsQGFtZC5jb20+ClJldmlld2VkLWJ5OiBKdWxpZW4g
R3JhbGwgPGpncmFsbEBhbWF6b24uY29tPgotLS0KIHhlbi9pbmNsdWRlL2Fz
bS1hcm0vcGFnZS5oIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysr
Ky0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA3
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1h
cm0vcGFnZS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wYWdlLmgKaW5kZXgg
ZWZmNTg4M2VmODdiLi5iNjc4NDQxN2VkMzQgMTAwNjQ0Ci0tLSBhL3hlbi9p
bmNsdWRlL2FzbS1hcm0vcGFnZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1h
cm0vcGFnZS5oCkBAIC0xNTMsNiArMTUzLDEzIEBAIHN0YXRpYyBpbmxpbmUg
c2l6ZV90IHJlYWRfZGNhY2hlX2xpbmVfYnl0ZXModm9pZCkKIHN0YXRpYyBp
bmxpbmUgaW50IGludmFsaWRhdGVfZGNhY2hlX3ZhX3JhbmdlKGNvbnN0IHZv
aWQgKnAsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKICAgICBzaXplX3QgY2Fj
aGVsaW5lX21hc2sgPSBkY2FjaGVfbGluZV9ieXRlcyAtIDE7CisgICAgdW5z
aWduZWQgbG9uZyBpZHggPSAwOworCisgICAgaWYgKCAhc2l6ZSApCisgICAg
ICAgIHJldHVybiAwOworCisgICAgLyogUGFzc2luZyBhIHJlZ2lvbiB0aGF0
IHdyYXBzIGFyb3VuZCBpcyBpbGxlZ2FsICovCisgICAgQVNTRVJUKCgodWlu
dHB0cl90KXAgKyBzaXplIC0gMSkgPj0gKHVpbnRwdHJfdClwKTsKIAogICAg
IGRzYihzeSk7ICAgICAgICAgICAvKiBTbyB0aGUgQ1BVIGlzc3VlcyBhbGwg
d3JpdGVzIHRvIHRoZSByYW5nZSAqLwogCkBAIC0xNjUsMTEgKzE3MiwxMSBA
QCBzdGF0aWMgaW5saW5lIGludCBpbnZhbGlkYXRlX2RjYWNoZV92YV9yYW5n
ZShjb25zdCB2b2lkICpwLCB1bnNpZ25lZCBsb25nIHNpemUpCiAgICAgfQog
CiAgICAgZm9yICggOyBzaXplID49IGRjYWNoZV9saW5lX2J5dGVzOwotICAg
ICAgICAgICAgcCArPSBkY2FjaGVfbGluZV9ieXRlcywgc2l6ZSAtPSBkY2Fj
aGVfbGluZV9ieXRlcyApCi0gICAgICAgIGFzbSB2b2xhdGlsZSAoX19pbnZh
bGlkYXRlX2RjYWNoZV9vbmUoMCkgOiA6ICJyIiAocCkpOworICAgICAgICAg
ICAgaWR4ICs9IGRjYWNoZV9saW5lX2J5dGVzLCBzaXplIC09IGRjYWNoZV9s
aW5lX2J5dGVzICkKKyAgICAgICAgYXNtIHZvbGF0aWxlIChfX2ludmFsaWRh
dGVfZGNhY2hlX29uZSgwKSA6IDogInIiIChwICsgaWR4KSk7CiAKICAgICBp
ZiAoIHNpemUgPiAwICkKLSAgICAgICAgYXNtIHZvbGF0aWxlIChfX2NsZWFu
X2FuZF9pbnZhbGlkYXRlX2RjYWNoZV9vbmUoMCkgOiA6ICJyIiAocCkpOwor
ICAgICAgICBhc20gdm9sYXRpbGUgKF9fY2xlYW5fYW5kX2ludmFsaWRhdGVf
ZGNhY2hlX29uZSgwKSA6IDogInIiIChwICsgaWR4KSk7CiAKICAgICBkc2Io
c3kpOyAgICAgICAgICAgLyogU28gd2Uga25vdyB0aGUgZmx1c2hlcyBoYXBw
ZW4gYmVmb3JlIGNvbnRpbnVpbmcgKi8KIApAQCAtMTc5LDE0ICsxODYsMjEg
QEAgc3RhdGljIGlubGluZSBpbnQgaW52YWxpZGF0ZV9kY2FjaGVfdmFfcmFu
Z2UoY29uc3Qgdm9pZCAqcCwgdW5zaWduZWQgbG9uZyBzaXplKQogc3RhdGlj
IGlubGluZSBpbnQgY2xlYW5fZGNhY2hlX3ZhX3JhbmdlKGNvbnN0IHZvaWQg
KnAsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKICAgICBzaXplX3QgY2FjaGVs
aW5lX21hc2sgPSBkY2FjaGVfbGluZV9ieXRlcyAtIDE7CisgICAgdW5zaWdu
ZWQgbG9uZyBpZHggPSAwOworCisgICAgaWYgKCAhc2l6ZSApCisgICAgICAg
IHJldHVybiAwOworCisgICAgLyogUGFzc2luZyBhIHJlZ2lvbiB0aGF0IHdy
YXBzIGFyb3VuZCBpcyBpbGxlZ2FsICovCisgICAgQVNTRVJUKCgodWludHB0
cl90KXAgKyBzaXplIC0gMSkgPj0gKHVpbnRwdHJfdClwKTsKIAogICAgIGRz
YihzeSk7ICAgICAgICAgICAvKiBTbyB0aGUgQ1BVIGlzc3VlcyBhbGwgd3Jp
dGVzIHRvIHRoZSByYW5nZSAqLwogICAgIHNpemUgKz0gKHVpbnRwdHJfdClw
ICYgY2FjaGVsaW5lX21hc2s7CiAgICAgc2l6ZSA9IChzaXplICsgY2FjaGVs
aW5lX21hc2spICYgfmNhY2hlbGluZV9tYXNrOwogICAgIHAgPSAodm9pZCAq
KSgodWludHB0cl90KXAgJiB+Y2FjaGVsaW5lX21hc2spOwogICAgIGZvciAo
IDsgc2l6ZSA+PSBkY2FjaGVfbGluZV9ieXRlczsKLSAgICAgICAgICAgIHAg
Kz0gZGNhY2hlX2xpbmVfYnl0ZXMsIHNpemUgLT0gZGNhY2hlX2xpbmVfYnl0
ZXMgKQotICAgICAgICBhc20gdm9sYXRpbGUgKF9fY2xlYW5fZGNhY2hlX29u
ZSgwKSA6IDogInIiIChwKSk7CisgICAgICAgICAgICBpZHggKz0gZGNhY2hl
X2xpbmVfYnl0ZXMsIHNpemUgLT0gZGNhY2hlX2xpbmVfYnl0ZXMgKQorICAg
ICAgICBhc20gdm9sYXRpbGUgKF9fY2xlYW5fZGNhY2hlX29uZSgwKSA6IDog
InIiIChwICsgaWR4KSk7CiAgICAgZHNiKHN5KTsgICAgICAgICAgIC8qIFNv
IHdlIGtub3cgdGhlIGZsdXNoZXMgaGFwcGVuIGJlZm9yZSBjb250aW51aW5n
ICovCiAgICAgLyogQVJNIGNhbGxlcnMgYXNzdW1lIHRoYXQgZGNhY2hlXyog
ZnVuY3Rpb25zIGNhbm5vdCBmYWlsLiAqLwogICAgIHJldHVybiAwOwpAQCAt
MTk2LDE0ICsyMTAsMjEgQEAgc3RhdGljIGlubGluZSBpbnQgY2xlYW5fYW5k
X2ludmFsaWRhdGVfZGNhY2hlX3ZhX3JhbmdlCiAgICAgKGNvbnN0IHZvaWQg
KnAsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKICAgICBzaXplX3QgY2FjaGVs
aW5lX21hc2sgPSBkY2FjaGVfbGluZV9ieXRlcyAtIDE7CisgICAgdW5zaWdu
ZWQgbG9uZyBpZHggPSAwOworCisgICAgaWYgKCAhc2l6ZSApCisgICAgICAg
IHJldHVybiAwOworCisgICAgLyogUGFzc2luZyBhIHJlZ2lvbiB0aGF0IHdy
YXBzIGFyb3VuZCBpcyBpbGxlZ2FsICovCisgICAgQVNTRVJUKCgodWludHB0
cl90KXAgKyBzaXplIC0gMSkgPj0gKHVpbnRwdHJfdClwKTsKIAogICAgIGRz
YihzeSk7ICAgICAgICAgLyogU28gdGhlIENQVSBpc3N1ZXMgYWxsIHdyaXRl
cyB0byB0aGUgcmFuZ2UgKi8KICAgICBzaXplICs9ICh1aW50cHRyX3QpcCAm
IGNhY2hlbGluZV9tYXNrOwogICAgIHNpemUgPSAoc2l6ZSArIGNhY2hlbGlu
ZV9tYXNrKSAmIH5jYWNoZWxpbmVfbWFzazsKICAgICBwID0gKHZvaWQgKiko
KHVpbnRwdHJfdClwICYgfmNhY2hlbGluZV9tYXNrKTsKICAgICBmb3IgKCA7
IHNpemUgPj0gZGNhY2hlX2xpbmVfYnl0ZXM7Ci0gICAgICAgICAgICBwICs9
IGRjYWNoZV9saW5lX2J5dGVzLCBzaXplIC09IGRjYWNoZV9saW5lX2J5dGVz
ICkKLSAgICAgICAgYXNtIHZvbGF0aWxlIChfX2NsZWFuX2FuZF9pbnZhbGlk
YXRlX2RjYWNoZV9vbmUoMCkgOiA6ICJyIiAocCkpOworICAgICAgICAgICAg
aWR4ICs9IGRjYWNoZV9saW5lX2J5dGVzLCBzaXplIC09IGRjYWNoZV9saW5l
X2J5dGVzICkKKyAgICAgICAgYXNtIHZvbGF0aWxlIChfX2NsZWFuX2FuZF9p
bnZhbGlkYXRlX2RjYWNoZV9vbmUoMCkgOiA6ICJyIiAocCArIGlkeCkpOwog
ICAgIGRzYihzeSk7ICAgICAgICAgLyogU28gd2Uga25vdyB0aGUgZmx1c2hl
cyBoYXBwZW4gYmVmb3JlIGNvbnRpbnVpbmcgKi8KICAgICAvKiBBUk0gY2Fs
bGVycyBhc3N1bWUgdGhhdCBkY2FjaGVfKiBmdW5jdGlvbnMgY2Fubm90IGZh
aWwuICovCiAgICAgcmV0dXJuIDA7Ci0tIAoyLjQwLjEKCg==

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 12:11:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 12:11:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653032.1019269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1bd-0005Ug-2w; Tue, 12 Dec 2023 12:11:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653032.1019269; Tue, 12 Dec 2023 12: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 1rD1bd-0005UZ-0H; Tue, 12 Dec 2023 12:11:21 +0000
Received: by outflank-mailman (input) for mailman id 653032;
 Tue, 12 Dec 2023 12:11:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rD1bb-0005UT-Rn
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 12:11:19 +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 8e484bfa-98e7-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 13:11:19 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 4AAD6224E2;
 Tue, 12 Dec 2023 12:11:18 +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 1003213725;
 Tue, 12 Dec 2023 12:11:18 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id N0OeAuZNeGW7RgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 12:11: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: 8e484bfa-98e7-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702383078; 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=pbCG1Z7adoWsjcXXqOAPfr/PUHnLy3QGG0302OGQ0PA=;
	b=OAhVnRDzbmCRqldDbYdwIb1aWoYhmviUZ+sIUJ4N8Kdl0/oIpqeB+8xg0J7Br2Ot9e6QWC
	ez2PcIhIj/xmHoMBRA90LQ/OnoPngaKDZs26JxxusrzD0gu2SZx39sxTz0w3Ed/fWzxdUl
	Jiw9d7JVDFimgEToQnBU24vQALxadU8=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702383078; 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=pbCG1Z7adoWsjcXXqOAPfr/PUHnLy3QGG0302OGQ0PA=;
	b=OAhVnRDzbmCRqldDbYdwIb1aWoYhmviUZ+sIUJ4N8Kdl0/oIpqeB+8xg0J7Br2Ot9e6QWC
	ez2PcIhIj/xmHoMBRA90LQ/OnoPngaKDZs26JxxusrzD0gu2SZx39sxTz0w3Ed/fWzxdUl
	Jiw9d7JVDFimgEToQnBU24vQALxadU8=
Message-ID: <a3a1b216-96d5-4ae0-a03e-e8ef7ee58a43@suse.com>
Date: Tue, 12 Dec 2023 13:11:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 javi.merino@cloud.com
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
 <2c2f8ee1-bf97-4e42-a1ef-74ed1997722c@xen.org>
 <29a4894c-6a08-49cb-9567-c952eaaffa0f@suse.com>
 <e5d991d7-cfdb-4970-90e9-c43fc16cdba0@xen.org>
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: <e5d991d7-cfdb-4970-90e9-c43fc16cdba0@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Nw1IFHWMrR2CZeeE3ftV3fww"
X-Spam-Level: 
X-Spam-Score: -2.20
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -2.28
X-Spamd-Result: default: False [-2.28 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-0.09)[64.74%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Nw1IFHWMrR2CZeeE3ftV3fww
Content-Type: multipart/mixed; boundary="------------d6rcROimtol6v1bjrTKdYu5H";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 javi.merino@cloud.com
Message-ID: <a3a1b216-96d5-4ae0-a03e-e8ef7ee58a43@suse.com>
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
 <2c2f8ee1-bf97-4e42-a1ef-74ed1997722c@xen.org>
 <29a4894c-6a08-49cb-9567-c952eaaffa0f@suse.com>
 <e5d991d7-cfdb-4970-90e9-c43fc16cdba0@xen.org>
In-Reply-To: <e5d991d7-cfdb-4970-90e9-c43fc16cdba0@xen.org>

--------------d6rcROimtol6v1bjrTKdYu5H
Content-Type: multipart/mixed; boundary="------------Qh08I2D0RK0oo0U6aFoO4v8x"

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

T24gMTIuMTIuMjMgMTI6NDAsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDEyLzEyLzIwMjMgMTE6MDksIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBP
biAxMi4xMi4yMyAxMToxMCwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4+IEhpIEp1ZXJnZW4s
DQo+Pj4NCj4+PiBPbiAxMi8xMi8yMDIzIDA5OjQ3LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4+PiBBbGxvdyAxNiBiaXRzIHBlciBjcHUgbnVtYmVyLCB3aGljaCBpcyB0aGUgbGltaXQg
aW1wb3NlZCBieQ0KPj4+PiBzcGlubG9ja190aWNrZXRzX3QuDQo+Pj4+DQo+Pj4+IFRoaXMg
d2lsbCBhbGxvdyB1cCB0byA2NTUzNSBjcHVzLCB3aGlsZSBpbmNyZWFzaW5nIG9ubHkgdGhl
IHNpemUgb2YNCj4+Pj4gcmVjdXJzaXZlIHNwaW5sb2NrcyBpbiBkZWJ1ZyBidWlsZHMgZnJv
bSA4IHRvIDEyIGJ5dGVzLg0KPj4+IExvb2tpbmcgYXQgYXJjaC9LY29uZmlnLCBpdCBsb29r
cyBsaWtlIHdlIGFyZSBsaW1pdGluZyBOUl9DUFVTIHRvIG1heGltdW0gDQo+Pj4gNDA5Ni4g
U28gY2FuIHlvdSBvdXRsaW5lIHdoeSB3ZSBuZWVkIHRoaXM/DQo+Pg0KPj4gVGhlIGxpbWl0
IG9mIDQwOTYgY3B1cyBpcyBkaWN0YXRlZCBieSB0aGUgY3VycmVudCBsaW1pdCBvZiB0aGUg
c3BpbmxvY2sNCj4+IGltcGxlbWVudGF0aW9uLiBTbyBhc2tpbmcgIndoeSBkbyB3ZSBuZWVk
IHRvIHN1cHBvcnQgbW9yZSB0aGFuIDQwOTYgY3B1cw0KPj4gaW4gc3BpbmxvY2tfdCB3aGVu
IHRoZSBjdXJyZW50IFhlbiBsaW1pdCBpcyA0MDk2IiBpcyBraW5kIG9mIHRoZSB3cm9uZw0K
Pj4gcXVlc3Rpb24uID4NCj4+IFRoZSBjb3JyZWN0IHF1ZXN0aW9uIHdvdWxkIGJlOiB3aHkg
aXMgWGVuIGxpbWl0ZWQgdG8gNDA5NiBjcHVzPyBBbnN3ZXI6DQo+PiBiZWNhdXNlIG9mIHRo
ZSBsaW1pdCBpbiBzcGlubG9ja190Lg0KPiANCj4gSSB0aG91Z2h0IHRoZXJlIHdhcyBhbHNv
IHNvbWUgbG9jayBjb250ZW50aW9uIGlzc3VlIGluIFhlbi4gSGVuY2Ugd2h5IEkgYXNrZWQg
DQo+IHRoZSBxdWVzdGlvbiBiZWNhdXNlIHRoZSBjb21taXQgbWVzc2FnZSBkb2Vzbid0IHJl
YWxseSBnaXZlIGFueSBjbHVlIHdoeSB3ZSBhcmUgDQo+IHJhaXNpbmcgdGhlIGxpbWl0Li4u
IChUaGlzIGlzIGEgaGludCB0aGF0IGl0IHByb2JhYmx5IG5lZWRzIHRvIGJlIGV4cGFuZGVk
IGEgYml0KS4NCg0KT2theSwgYXJlIHlvdSBmaW5lIHdpdGggdGhlIGZvbGxvd2luZyBhZGRp
dGlvbjoNCg0KICAgVGhlIGN1cnJlbnQgWGVuIGxpbWl0IG9mIDQwOTUgY3B1cyBpcyBpbXBv
c2VkIGJ5IFNQSU5MT0NLX0NQVV9CSVRTDQogICBiZWluZyAxMi4gVGhlcmUgYXJlIG1hY2hp
bmVzIGF2YWlsYWJsZSB3aXRoIG1vcmUgY3B1cyB0aGFuIHRoZSBjdXJyZW50DQogICBYZW4g
bGltaXQsIHNvIGl0IG1ha2VzIHNlbnNlIHRvIGhhdmUgdGhlIHBvc3NpYmlsaXR5IHRvIHVz
ZSBtb3JlIGNwdXMuDQoNCg0KSnVlcmdlbg0K
--------------Qh08I2D0RK0oo0U6aFoO4v8x
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-----

--------------Qh08I2D0RK0oo0U6aFoO4v8x--

--------------d6rcROimtol6v1bjrTKdYu5H--

--------------Nw1IFHWMrR2CZeeE3ftV3fww
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/Ey8FAmV4TeUFAwAAAAAACgkQsN6d1ii/Ey+b
WAf/Zj/DZyYT1LrCMy87m2UPByJQWTUHjWnIMYakJPYMTt5FCNd8gepnU3EvjDPS9HHAifUses5F
ckszMITj34HYYb8reCo03q/RpEVk404IFXzYuSi/dZ9H3sboEcjBbWVaBfzRGu2lGEOM6wRD09io
CNyc/sIOzaLVvrDOaTQW2mWOYeIxDutXoTWldPTYdEri89TyePVoMqtN0FXSq8JbsSzOFFpinWJi
xyQ5u6XC3Bi0Vmt35noNqwgI92bOpKgLdt8/2bJ7QfqFIq6FE6Hr6jdUGDpXmARGVLxVlyuLlY9r
EMBCOAP3k1htzXeigoPbOYB9pEnUOpSq2p+cUm6ddw==
=+B2B
-----END PGP SIGNATURE-----

--------------Nw1IFHWMrR2CZeeE3ftV3fww--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 12:22:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 12:22:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653047.1019281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1m8-0002Bx-2W; Tue, 12 Dec 2023 12:22:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653047.1019281; Tue, 12 Dec 2023 12:22:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD1m7-0002Bq-WE; Tue, 12 Dec 2023 12:22:12 +0000
Received: by outflank-mailman (input) for mailman id 653047;
 Tue, 12 Dec 2023 12:22:10 +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 1rD1m5-0002Aa-UI
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 12:22:10 +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 1rD1m5-0006Fh-Ou; Tue, 12 Dec 2023 12:22:09 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD1m5-0002MX-FQ; Tue, 12 Dec 2023 12:22: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=YfyG5cOvBKMc8x3GPmVNnaUzV+ObYlTiJStZdWZnFdM=; b=2D8EYKmR2IAhXUj+po8q/zGYD+
	5akRQt6B86DiPQat27rJ4nKRDLUlvQ36MYKMSYEY/GaGCZJ5izdp2WSbWvcqT89KD/xxAm2/qvN+G
	IqVx7kJrJ4Q/3zSM9t1goPIu+puNr/IdrODF0UxDYaQHct6EXKh4wZLmPWKIxB6EvDiA=;
Message-ID: <2056d029-99b0-4b6e-a83f-d3401c9828fe@xen.org>
Date: Tue, 12 Dec 2023 12:22:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 javi.merino@cloud.com
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
 <2c2f8ee1-bf97-4e42-a1ef-74ed1997722c@xen.org>
 <29a4894c-6a08-49cb-9567-c952eaaffa0f@suse.com>
 <e5d991d7-cfdb-4970-90e9-c43fc16cdba0@xen.org>
 <a3a1b216-96d5-4ae0-a03e-e8ef7ee58a43@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <a3a1b216-96d5-4ae0-a03e-e8ef7ee58a43@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 12/12/2023 12:11, Juergen Gross wrote:
> On 12.12.23 12:40, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 12/12/2023 11:09, Juergen Gross wrote:
>>> On 12.12.23 11:10, Julien Grall wrote:
>>>> Hi Juergen,
>>>>
>>>> On 12/12/2023 09:47, Juergen Gross wrote:
>>>>> Allow 16 bits per cpu number, which is the limit imposed by
>>>>> spinlock_tickets_t.
>>>>>
>>>>> This will allow up to 65535 cpus, while increasing only the size of
>>>>> recursive spinlocks in debug builds from 8 to 12 bytes.
>>>> Looking at arch/Kconfig, it looks like we are limiting NR_CPUS to 
>>>> maximum 4096. So can you outline why we need this?
>>>
>>> The limit of 4096 cpus is dictated by the current limit of the spinlock
>>> implementation. So asking "why do we need to support more than 4096 cpus
>>> in spinlock_t when the current Xen limit is 4096" is kind of the wrong
>>> question. >
>>> The correct question would be: why is Xen limited to 4096 cpus? Answer:
>>> because of the limit in spinlock_t.
>>
>> I thought there was also some lock contention issue in Xen. Hence why 
>> I asked the question because the commit message doesn't really give 
>> any clue why we are raising the limit... (This is a hint that it 
>> probably needs to be expanded a bit).
> 
> Okay, are you fine with the following addition:
> 
>  Â  The current Xen limit of 4095 cpus is imposed by SPINLOCK_CPU_BITS
>  Â  being 12. There are machines available with more cpus than the current
>  Â  Xen limit, so it makes sense to have the possibility to use more cpus.

Yes. That makes clearer.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 12:40:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 12:40:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653055.1019292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD23K-0007dK-Ib; Tue, 12 Dec 2023 12:39:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653055.1019292; Tue, 12 Dec 2023 12:39:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD23K-0007dD-FL; Tue, 12 Dec 2023 12:39:58 +0000
Received: by outflank-mailman (input) for mailman id 653055;
 Tue, 12 Dec 2023 12:39: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 1rD23K-0007d7-5k
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 12:39: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 1rD23K-0006Y0-2Z; Tue, 12 Dec 2023 12:39:58 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD23J-00036i-Tb; Tue, 12 Dec 2023 12: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=K6eOUXxhOh7y38HPVTOJqfzezXpkjDuR5mflNl0Qfg4=; b=GJJuEISXDkAEiAwm397Nchns9A
	M5JEPdkACu4XGgy930aIuzVxCOIaC4RB2fVXPXfnTgnwZeuh5itwsjfw98gEvD+OBVwA2m1OY6kZN
	/Hd1iNWrPm8IavArgXgn2Pi5pJFCwy1Tz6RrzI3Z+tg6BohrRkpKpiWzObKLg9Mk8hDM=;
Message-ID: <569bfdee-5d0b-4384-9dad-e2e90861d837@xen.org>
Date: Tue, 12 Dec 2023 12:39:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231212094725.22184-13-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/12/2023 09:47, Juergen Gross wrote:
> Allow 16 bits per cpu number, which is the limit imposed by
> spinlock_tickets_t.
> 
> This will allow up to 65535 cpus, while increasing only the size of
> recursive spinlocks in debug builds from 8 to 12 bytes.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>   xen/common/spinlock.c      |  1 +
>   xen/include/xen/spinlock.h | 18 +++++++++---------
>   2 files changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
> index 296bcf33e6..ae7c7c2086 100644
> --- a/xen/common/spinlock.c
> +++ b/xen/common/spinlock.c
> @@ -481,6 +481,7 @@ int rspin_trylock(rspinlock_t *lock)
>   
>       /* Don't allow overflow of recurse_cpu field. */
>       BUILD_BUG_ON(NR_CPUS > SPINLOCK_NO_CPU);
> +    BUILD_BUG_ON(SPINLOCK_CPU_BITS > sizeof(lock->recurse_cpu) * 8);
>       BUILD_BUG_ON(SPINLOCK_RECURSE_BITS < 3);
>   
>       check_lock(&lock->debug, true);
> diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
> index 87946965b2..d720778cc1 100644
> --- a/xen/include/xen/spinlock.h
> +++ b/xen/include/xen/spinlock.h
> @@ -7,16 +7,16 @@
>   #include <asm/system.h>
>   #include <asm/spinlock.h>
>   
> -#define SPINLOCK_CPU_BITS  12
> +#define SPINLOCK_CPU_BITS  16
>   
>   #ifdef CONFIG_DEBUG_LOCKS
>   union lock_debug {
> -    uint16_t val;
> -#define LOCK_DEBUG_INITVAL 0xffff
> +    uint32_t val;
> +#define LOCK_DEBUG_INITVAL 0xffffffff
>       struct {
> -        uint16_t cpu:SPINLOCK_CPU_BITS;
> -#define LOCK_DEBUG_PAD_BITS (14 - SPINLOCK_CPU_BITS)
> -        uint16_t :LOCK_DEBUG_PAD_BITS;
> +        uint32_t cpu:SPINLOCK_CPU_BITS;
> +#define LOCK_DEBUG_PAD_BITS (30 - SPINLOCK_CPU_BITS)
> +        uint32_t :LOCK_DEBUG_PAD_BITS;
>           bool irq_safe:1;
>           bool unseen:1;
>       };
> @@ -210,10 +210,10 @@ typedef struct spinlock {
>   
>   typedef struct rspinlock {
>       spinlock_tickets_t tickets;
> -    uint16_t recurse_cpu:SPINLOCK_CPU_BITS;
> +    uint16_t recurse_cpu;
>   #define SPINLOCK_NO_CPU        ((1u << SPINLOCK_CPU_BITS) - 1)
> -#define SPINLOCK_RECURSE_BITS  (16 - SPINLOCK_CPU_BITS)
> -    uint16_t recurse_cnt:SPINLOCK_RECURSE_BITS;
> +#define SPINLOCK_RECURSE_BITS  8
> +    uint8_t recurse_cnt;

This patch is also bumping the number of recursion possible from 16 to 
256. It is not clear to me whether this was intended or you just wanted 
to use uint8_t because it was easy to use.

 From above, I also see that we only need 3 bits:

 > BUILD_BUG_ON(SPINLOCK_RECURSE_BITS < 3);

So I would consider to ...

>   #define SPINLOCK_MAX_RECURSE   ((1u << SPINLOCK_RECURSE_BITS) - 1)

... update SPINLOCK_MAX_RECURSE to 16 or at least explain why we want to 
allow up to 256 recursion.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 12:44:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 12:44:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653057.1019302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD27e-0001uJ-4L; Tue, 12 Dec 2023 12:44:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653057.1019302; Tue, 12 Dec 2023 12: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 1rD27e-0001uC-0k; Tue, 12 Dec 2023 12:44:26 +0000
Received: by outflank-mailman (input) for mailman id 653057;
 Tue, 12 Dec 2023 12:44:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rD27d-0001ro-4N
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 12:44:25 +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 1rD27c-0006dL-W1; Tue, 12 Dec 2023 12:44:24 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD27c-0003P6-PP; Tue, 12 Dec 2023 12:44: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=J0Lab8Y6ujlrX1CMImkJgjnJ9LhYTyEWYsyqTRvaxIg=; b=spxQ73u/q6ZfyFW7FPeNhQIrwE
	WF9S9MJnMh+tS4LNekz3bHzbaPLZWdK5AsuX8jVPRP5pzovb2khosAJlqyCzLM7u5HKdD2Meb5beu
	xXC7jH7WO2ZCHFVL2bdzK2khc2hggjje8nmtwxqzE08lxz2eJDt4L8i7DCPRLOEdCWOs=;
Message-ID: <1669c051-a716-4965-98ae-593929555c72@xen.org>
Date: Tue, 12 Dec 2023 12:44:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/12] xen/spinlock: reduce lock profile ifdefs
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-2-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231212094725.22184-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 12/12/2023 09:47, Juergen Gross wrote:
> With some small adjustments to the LOCK_PROFILE_* macros some #ifdefs
> can be dropped from spinlock.c.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Reviewed-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 12:47:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 12:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653060.1019311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2Aj-0002it-Gy; Tue, 12 Dec 2023 12:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653060.1019311; Tue, 12 Dec 2023 12:47:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2Aj-0002im-ES; Tue, 12 Dec 2023 12:47:37 +0000
Received: by outflank-mailman (input) for mailman id 653060;
 Tue, 12 Dec 2023 12: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=y4OV=HX=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rD2Ah-0002ie-UT
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 12:47:36 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 9dee4cee-98ec-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 13:47:33 +0100 (CET)
Received: from mg.gitlab.com (4.226.74.34.bc.googleusercontent.com
 [34.74.226.4]) by
 956415a88304 with SMTP id 65785653d0b89648ecf53d2c (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 12 Dec 2023 12:47:15 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 9dee4cee-98ec-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702385251; x=1702392451; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=jdEyfTTqdsrpZ4NJA+PaR+lfXHC+rHKjxBeF8XOA27U=;
 b=XYI/k8n5elhXOaXP453fJOy2pX8J2thjbjeap+1smKoXxWpeJU40UB74jDkU6JS9UFmAjHGWIyZTCAH6JpopeTGKbRRIbyYQHTqJVY5aX7wk2EkQ/ZZR+0Vsj2gF6iSl/qLc9Pq0irkpecZe++H5adenXgHQ67EzmmikkDDUZVc=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 12 Dec 2023 12:47:15 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6578565336406_2c954ac71193@gitlab-sidekiq-catchall-v2-75c5dc9697-tcjgb.mail>
Subject: xen | Successful pipeline for staging | cf40abbc
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_657856532b78f_2c954ac7107a";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1103837091
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_657856532b78f_2c954ac7107a
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1103837091 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: cf40abbc ( https://gitlab.com/xen-project/xen/-/commit/cf40abbc7ff2a73eaaea84e919fc7762354e75ad )
Commit Message: tools/xenstored: potentially split trace_io() o...
Commit Author: Juergen Gross ( https://gitlab.com/jgross1 )
Committed by: Julien Grall



Pipeline #1103837091 ( https://gitlab.com/xen-project/xen/-/pipelines/1103837091 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | cf40abbc</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1103837091 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/cf40abbc7ff2a73eaa=
ea84e919fc7762354e75ad" style=3D"color: #3777b0; text-decoration: none;">=
cf40abbc</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
tools/xenstored: potentially split trace_io() o...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/0cac9c91cba4579c288f4be83125f17e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jgross1" style=3D"color: #3=
33333; text-decoration: none;">
Juergen Gross
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110383=
7091" style=3D"color: #3777b0; text-decoration: none;">#1103837091</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_657856532b78f_2c954ac7107a--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 12:58:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 12:58:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653100.1019322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2Kk-0006N6-LX; Tue, 12 Dec 2023 12:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653100.1019322; Tue, 12 Dec 2023 12: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 1rD2Kk-0006Mz-I1; Tue, 12 Dec 2023 12:57:58 +0000
Received: by outflank-mailman (input) for mailman id 653100;
 Tue, 12 Dec 2023 12: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 1rD2Kj-0006Mt-BQ
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 12: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 1rD2Kj-0006rb-67; Tue, 12 Dec 2023 12:57:57 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD2Ki-0003wo-V3; Tue, 12 Dec 2023 12:57:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=eibWchE1L62Y+xtGPEEyf4o62UjRh+mYlk+et5su8xk=; b=XuRdZLGXhkTGVd4FVAbjPz7k9f
	EH7rcPi+v2Jj62i2dCMTUZWpcqNJlRacTls9eSwqLkT0Ruy3rOUKMS/aSRk/nY2dJ4G2u4HHdtk7s
	G2sTzM06VYVazDG3LaC4Tkn+WNIWyVMDPmo6LZBqFAPzxQLjgKPs/TPCXi4Bt6K2G+s4=;
Message-ID: <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>
Date: Tue, 12 Dec 2023 12:57:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] xen/spinlock: introduce new type for recursive
 spinlocks
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Paul Durrant <paul@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-4-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231212094725.22184-4-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 12/12/2023 09:47, Juergen Gross wrote:
> diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
> index 1cd9120eac..20d15f34dd 100644
> --- a/xen/include/xen/spinlock.h
> +++ b/xen/include/xen/spinlock.h
> @@ -45,7 +45,7 @@ union lock_debug { };
>       lock profiling on:
>   
>       Global locks which should be subject to profiling must be declared via
> -    DEFINE_SPINLOCK.
> +    DEFINE_[R]SPINLOCK.
>   
>       For locks in structures further measures are necessary:
>       - the structure definition must include a profile_head with exactly this
> @@ -56,7 +56,7 @@ union lock_debug { };
>       - the single locks which are subject to profiling have to be initialized
>         via
>   
> -      spin_lock_init_prof(ptr, lock);
> +      [r]spin_lock_init_prof(ptr, lock);
>   
>         with ptr being the main structure pointer and lock the spinlock field
>   
> @@ -109,12 +109,16 @@ struct lock_profile_qhead {
>       spinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                 \
>       static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
>       _LOCK_PROFILE_PTR(l)
> +#define DEFINE_RSPINLOCK(l)                                                   \
> +    rspinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                \
> +    static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
> +    _LOCK_PROFILE_PTR(l)
>   
> -#define spin_lock_init_prof(s, l)                                             \
> +#define __spin_lock_init_prof(s, l, locktype)                                 \

If I am not mistaken the double-underscore prefix is a violation in 
MISRA. So can this be renamed to:

spin_lock_init_prof__()?

The rest of the code looks fine. I have checked the lock you are 
modifying in common/drivers and they all are meant to be recursive lock:

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 12:59:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 12:59:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653102.1019331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2M0-00075X-Uk; Tue, 12 Dec 2023 12:59:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653102.1019331; Tue, 12 Dec 2023 12:59:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2M0-00075O-SD; Tue, 12 Dec 2023 12:59:16 +0000
Received: by outflank-mailman (input) for mailman id 653102;
 Tue, 12 Dec 2023 12:59:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rD2Lz-00071b-7O
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 12:59:15 +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 1rD2Ly-0006t7-TN; Tue, 12 Dec 2023 12:59:14 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD2Ly-0003wo-OI; Tue, 12 Dec 2023 12:59: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=N5fA+ntBTjPqXaa194HlxUl9zGQGBIufeRBe97Pk7JE=; b=lehRiEMfF2E4f5rOEahe3G8ZlM
	+i9ka6qiQDTXPNSQDU3hgel8xHXGkzhYyZGpZi17OrQ+H6rjeYbuXQt7Wv52G5hIWTPEaapqRms32
	hNsBLBBZ4kwnWATCXazu4eL+PDrzU7jpwLsGgZpg416pTPK3gbHtWVzdtqQHGiGtkyp8=;
Message-ID: <10e5466c-a7d1-48b1-b040-b1ff04f1a4ee@xen.org>
Date: Tue, 12 Dec 2023 12:59:13 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/12] xen/spinlock: rename recursive lock functions
Content-Language: en-GB
To: Juergen Gross <jgross@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>,
 Paul Durrant <paul@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-5-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231212094725.22184-5-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 12/12/2023 09:47, Juergen Gross wrote:
> Rename the recursive spin_lock() functions by replacing the trailing
> "_recursive" with a leading "r".
> 
> Switch the parameter to be a pointer to rspinlock_t.
> 
> Remove the indirection through a macro, as it is adding only complexity
> without any gain.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:04:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:04:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653106.1019343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2Qa-00010D-HJ; Tue, 12 Dec 2023 13:04:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653106.1019343; Tue, 12 Dec 2023 13:04:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2Qa-000106-D0; Tue, 12 Dec 2023 13:04:00 +0000
Received: by outflank-mailman (input) for mailman id 653106;
 Tue, 12 Dec 2023 13:03:59 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rD2QZ-0000zz-Ct
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 13:03: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 1rD2QZ-00070D-AZ; Tue, 12 Dec 2023 13:03:59 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD2QZ-0004LK-4K; Tue, 12 Dec 2023 13:03:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=L7udOHg8N9kNtxRs3KWT52GcQ0nGzVblLYSMxaVl1h4=; b=RoHA4kT+7lnGUG5u23+SB+ZZ6a
	nF69mYRyKIff9tPvTc1ehq0hObqDEvMBahsNpMs5jtcuMjI56PBS88jMNNi+49rI7ghH2ZOEuVTKy
	UUAroYQFmO6YH3hnk56ejjialHveUJ6A2ThUMrmEh6UwYbKh/kNRrTNdhN/fvc5iy43o=;
Message-ID: <319c928c-500c-4f41-8a65-3ffdeb888d63@xen.org>
Date: Tue, 12 Dec 2023 13:03:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/12] xen/spinlock: add
 rspin_[un]lock_irq[save|restore]()
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-6-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231212094725.22184-6-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 12/12/2023 09:47, Juergen Gross wrote:
> Instead of special casing rspin_lock_irqsave() and
> rspin_unlock_irqrestore() for the console lock, add those functions
> to spinlock handling and use them where needed.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - new patch
> ---
>   xen/arch/x86/traps.c       | 14 ++++++++------
>   xen/common/spinlock.c      | 16 ++++++++++++++++
>   xen/drivers/char/console.c | 18 +-----------------
>   xen/include/xen/console.h  |  5 +++--
>   xen/include/xen/spinlock.h |  7 +++++++
>   5 files changed, 35 insertions(+), 25 deletions(-)
> 
> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
> index 7724306116..21227877b3 100644
> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -647,13 +647,15 @@ void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs *regs)
>   void show_execution_state(const struct cpu_user_regs *regs)
>   {
>       /* Prevent interleaving of output. */
> -    unsigned long flags = console_lock_recursive_irqsave();
> +    unsigned long flags;
> +
> +    rspin_lock_irqsave(&console_lock, flags);
>   
>       show_registers(regs);
>       show_code(regs);
>       show_stack(regs);
>   
> -    console_unlock_recursive_irqrestore(flags);
> +    rspin_unlock_irqrestore(&console_lock, flags);
>   }
>   
>   void cf_check show_execution_state_nonconst(struct cpu_user_regs *regs)
> @@ -663,7 +665,7 @@ void cf_check show_execution_state_nonconst(struct cpu_user_regs *regs)
>   
>   void vcpu_show_execution_state(struct vcpu *v)
>   {
> -    unsigned long flags = 0;
> +    unsigned long flags;
>   
>       if ( test_bit(_VPF_down, &v->pause_flags) )
>       {
> @@ -698,7 +700,7 @@ void vcpu_show_execution_state(struct vcpu *v)
>   #endif
>   
>       /* Prevent interleaving of output. */
> -    flags = console_lock_recursive_irqsave();
> +    rspin_lock_irqsave(&console_lock, flags);
>   
>       vcpu_show_registers(v);
>   
> @@ -708,7 +710,7 @@ void vcpu_show_execution_state(struct vcpu *v)
>            * Stop interleaving prevention: The necessary P2M lookups involve
>            * locking, which has to occur with IRQs enabled.
>            */
> -        console_unlock_recursive_irqrestore(flags);
> +        rspin_unlock_irqrestore(&console_lock, flags);
>   
>           show_hvm_stack(v, &v->arch.user_regs);
>       }
> @@ -717,7 +719,7 @@ void vcpu_show_execution_state(struct vcpu *v)
>           if ( guest_kernel_mode(v, &v->arch.user_regs) )
>               show_guest_stack(v, &v->arch.user_regs);
>   
> -        console_unlock_recursive_irqrestore(flags);
> +        rspin_unlock_irqrestore(&console_lock, flags);
>       }
>   
>   #ifdef CONFIG_HVM
> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
> index 422a7fb1db..c1a9ba1304 100644
> --- a/xen/common/spinlock.c
> +++ b/xen/common/spinlock.c
> @@ -475,6 +475,16 @@ void rspin_lock(rspinlock_t *lock)
>       lock->recurse_cnt++;
>   }
>   
> +unsigned long __rspin_lock_irqsave(rspinlock_t *lock)

This is going to be a problem with MISRA (see Rule 21.1). Can you move 
the double underscore to the end? Alternatively, I am not sure I see the 
benefits of the function here. So maybe we can fold the code in the 
macro below?

Other than that, the rest of the patch LGTM.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:04:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:04:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653107.1019352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2Qn-0001Mw-Nv; Tue, 12 Dec 2023 13:04:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653107.1019352; Tue, 12 Dec 2023 13:04:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2Qn-0001Mp-Kl; Tue, 12 Dec 2023 13:04:13 +0000
Received: by outflank-mailman (input) for mailman id 653107;
 Tue, 12 Dec 2023 13:04:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rD2Qm-0001MI-HG
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 13:04:12 +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 f1449675-98ee-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 14:04:11 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 6D89122378;
 Tue, 12 Dec 2023 13:04: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 2BD68136C7;
 Tue, 12 Dec 2023 13:04:10 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id A+deCUpaeGXUWQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 13:04: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: f1449675-98ee-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702386250; 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=5dg0uUNTN3hTgFfLtnfcqrrX2j4sAKgWoqJBEuyER+o=;
	b=a22p8/eArVp6yH9CXN0npkeQIvr5kpR/A7yELyVKnPwHPzSybq/bkYZAKi1FJd1ZyEbSR0
	dpUDgWo51CsgLuXRt2ogQ4iyLsLHSYNpzXEiGS4hPiOyYx03nihflB/Thgih7Auv8xymiE
	fmKDQGvyqJwUC72/7W6gyqWV0XQCow8=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702386250; 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=5dg0uUNTN3hTgFfLtnfcqrrX2j4sAKgWoqJBEuyER+o=;
	b=a22p8/eArVp6yH9CXN0npkeQIvr5kpR/A7yELyVKnPwHPzSybq/bkYZAKi1FJd1ZyEbSR0
	dpUDgWo51CsgLuXRt2ogQ4iyLsLHSYNpzXEiGS4hPiOyYx03nihflB/Thgih7Auv8xymiE
	fmKDQGvyqJwUC72/7W6gyqWV0XQCow8=
Message-ID: <492c7b3e-ee29-4fe6-b13e-f9928721a78b@suse.com>
Date: Tue, 12 Dec 2023 14:04:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] xen/spinlock: introduce new type for recursive
 spinlocks
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Paul Durrant <paul@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-4-jgross@suse.com>
 <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>
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: <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------OiFOPv9pVihFfHrmO9yinN0o"
X-Spam-Level: ***************
X-Spam-Score: 15.00
X-Spam-Flag: YES
X-Spam-Level: 
X-Rspamd-Server: rspamd1
X-Rspamd-Queue-Id: 6D89122378
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="a22p8/eA";
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Result: default: False [-5.70 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 SIGNED_PGP(-2.00)[];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.00)[24.42%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DWL_DNSWL_LOW(-1.00)[suse.com:dkim];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -5.70

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------OiFOPv9pVihFfHrmO9yinN0o
Content-Type: multipart/mixed; boundary="------------q0nkwE4xMcfyuzVHf9obbpDp";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Paul Durrant <paul@xen.org>
Message-ID: <492c7b3e-ee29-4fe6-b13e-f9928721a78b@suse.com>
Subject: Re: [PATCH v4 03/12] xen/spinlock: introduce new type for recursive
 spinlocks
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-4-jgross@suse.com>
 <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>
In-Reply-To: <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>

--------------q0nkwE4xMcfyuzVHf9obbpDp
Content-Type: multipart/mixed; boundary="------------0GgpLClFWkF0xOCZg2sQmuIW"

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

T24gMTIuMTIuMjMgMTM6NTcsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDEyLzEyLzIwMjMgMDk6NDcsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBk
aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NwaW5sb2NrLmggYi94ZW4vaW5jbHVkZS94
ZW4vc3BpbmxvY2suaA0KPj4gaW5kZXggMWNkOTEyMGVhYy4uMjBkMTVmMzRkZCAxMDA2NDQN
Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zcGlubG9jay5oDQo+PiArKysgYi94ZW4vaW5j
bHVkZS94ZW4vc3BpbmxvY2suaA0KPj4gQEAgLTQ1LDcgKzQ1LDcgQEAgdW5pb24gbG9ja19k
ZWJ1ZyB7IH07DQo+PiDCoMKgwqDCoMKgIGxvY2sgcHJvZmlsaW5nIG9uOg0KPj4gwqDCoMKg
wqDCoCBHbG9iYWwgbG9ja3Mgd2hpY2ggc2hvdWxkIGJlIHN1YmplY3QgdG8gcHJvZmlsaW5n
IG11c3QgYmUgZGVjbGFyZWQgdmlhDQo+PiAtwqDCoMKgIERFRklORV9TUElOTE9DSy4NCj4+
ICvCoMKgwqAgREVGSU5FX1tSXVNQSU5MT0NLLg0KPj4gwqDCoMKgwqDCoCBGb3IgbG9ja3Mg
aW4gc3RydWN0dXJlcyBmdXJ0aGVyIG1lYXN1cmVzIGFyZSBuZWNlc3Nhcnk6DQo+PiDCoMKg
wqDCoMKgIC0gdGhlIHN0cnVjdHVyZSBkZWZpbml0aW9uIG11c3QgaW5jbHVkZSBhIHByb2Zp
bGVfaGVhZCB3aXRoIGV4YWN0bHkgdGhpcw0KPj4gQEAgLTU2LDcgKzU2LDcgQEAgdW5pb24g
bG9ja19kZWJ1ZyB7IH07DQo+PiDCoMKgwqDCoMKgIC0gdGhlIHNpbmdsZSBsb2NrcyB3aGlj
aCBhcmUgc3ViamVjdCB0byBwcm9maWxpbmcgaGF2ZSB0byBiZSBpbml0aWFsaXplZA0KPj4g
wqDCoMKgwqDCoMKgwqAgdmlhDQo+PiAtwqDCoMKgwqDCoCBzcGluX2xvY2tfaW5pdF9wcm9m
KHB0ciwgbG9jayk7DQo+PiArwqDCoMKgwqDCoCBbcl1zcGluX2xvY2tfaW5pdF9wcm9mKHB0
ciwgbG9jayk7DQo+PiDCoMKgwqDCoMKgwqDCoCB3aXRoIHB0ciBiZWluZyB0aGUgbWFpbiBz
dHJ1Y3R1cmUgcG9pbnRlciBhbmQgbG9jayB0aGUgc3BpbmxvY2sgZmllbGQNCj4+IEBAIC0x
MDksMTIgKzEwOSwxNiBAQCBzdHJ1Y3QgbG9ja19wcm9maWxlX3FoZWFkIHsNCj4+IMKgwqDC
oMKgwqAgc3BpbmxvY2tfdCBsID0gX1NQSU5fTE9DS19VTkxPQ0tFRChOVUxMKTvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIFwNCj4+IMKgwqDCoMKgwqAgc3RhdGljIHN0cnVjdCBsb2NrX3Byb2ZpbGUgX19sb2Nr
X3Byb2ZpbGVfZGF0YV8jI2wgPSBfTE9DS19QUk9GSUxFKGwpO8KgwqDCoCBcDQo+PiDCoMKg
wqDCoMKgIF9MT0NLX1BST0ZJTEVfUFRSKGwpDQo+PiArI2RlZmluZSBERUZJTkVfUlNQSU5M
T0NLKGwpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBc
DQo+PiArwqDCoMKgIHJzcGlubG9ja190IGwgPSBfU1BJTl9MT0NLX1VOTE9DS0VEKE5VTEwp
O8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIFwNCj4+ICvCoMKgwqAgc3RhdGljIHN0cnVjdCBsb2NrX3Byb2ZpbGUgX19s
b2NrX3Byb2ZpbGVfZGF0YV8jI2wgPSBfTE9DS19QUk9GSUxFKGwpO8KgwqDCoCBcDQo+PiAr
wqDCoMKgIF9MT0NLX1BST0ZJTEVfUFRSKGwpDQo+PiAtI2RlZmluZSBzcGluX2xvY2tfaW5p
dF9wcm9mKHMsIGwpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcDQo+PiAr
I2RlZmluZSBfX3NwaW5fbG9ja19pbml0X3Byb2YocywgbCwgbG9ja3R5cGUpwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBcDQo+IA0KPiBJZiBJIGFtIG5vdCBtaXN0YWtlbiB0aGUgZG91YmxlLXVuZGVyc2NvcmUg
cHJlZml4IGlzIGEgdmlvbGF0aW9uIGluIE1JU1JBLiBTbyANCj4gY2FuIHRoaXMgYmUgcmVu
YW1lZCB0bzoNCj4gDQo+IHNwaW5fbG9ja19pbml0X3Byb2ZfXygpPw0KDQpGaW5lIHdpdGgg
bWUuDQoNCk5vdGUgdGhhdCBfX2xvY2tfcHJvZmlsZV9kYXRhXyMjbCBhbmQgX19sb2NrX3By
b2ZpbGVfIyNuYW1lIHNlZW0gdG8gdmlvbGF0ZQ0KTUlTUkEsIHRvby4gUHJvYmFibHkgYSBn
b29kIGlkZWEgdG8gY2hhbmdlIHRoZW0gYXMgd2VsbD8gVGhpcyBzaG91bGQgcHJvYmFibHkN
CmJlIGRvbmUgYXMgYSBwcmVyZXEgcGF0Y2ggdGhlbj8NCg0KPiANCj4gVGhlIHJlc3Qgb2Yg
dGhlIGNvZGUgbG9va3MgZmluZS4gSSBoYXZlIGNoZWNrZWQgdGhlIGxvY2sgeW91IGFyZSBt
b2RpZnlpbmcgaW4gDQo+IGNvbW1vbi9kcml2ZXJzIGFuZCB0aGV5IGFsbCBhcmUgbWVhbnQg
dG8gYmUgcmVjdXJzaXZlIGxvY2s6DQo+IA0KPiBBY2tlZC1ieTogSnVsaWVuIEdyYWxsIDxq
Z3JhbGxAYW1hem9uLmNvbT4NCg0KVGhhbmtzLA0KDQoNCkp1ZXJnZW4NCg0K
--------------0GgpLClFWkF0xOCZg2sQmuIW
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-----

--------------0GgpLClFWkF0xOCZg2sQmuIW--

--------------q0nkwE4xMcfyuzVHf9obbpDp--

--------------OiFOPv9pVihFfHrmO9yinN0o
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/Ey8FAmV4WkkFAwAAAAAACgkQsN6d1ii/Ey//
6wf+IrVtREU7qvRYS7OhMeoBKC3CmJw0bFaawzMDlboSDf2ZIKoVLWiBtF28io3aqNOk9usA5zU0
+fko4342n3ARZEc3b8jX/t/f2c+WzahMV4AgHzGaG/3K2mSxQyxe+s2jSCvgAOgX3wqRnb3cVjec
NLyx4jCIf8Yf2cgGt6KjPixFa7n4dzfAOEXOk0bFDkeTojkn0gxzNau6YXmGMvpJFOJnXyR9WbpG
o0a1LPv/TpCZN/2F8vBexpfX243rBks3QCScHXlmMtji70Uj5uYRaSm158oY6IPHhsjuYA+iNzVS
xgn7XDpsi25Gb/g8muYs40c2sS/JgBh1sZQR+T14fQ==
=Gdj1
-----END PGP SIGNATURE-----

--------------OiFOPv9pVihFfHrmO9yinN0o--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:07:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:07:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653114.1019361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2Tp-0002t6-AU; Tue, 12 Dec 2023 13:07:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653114.1019361; Tue, 12 Dec 2023 13:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2Tp-0002sz-7n; Tue, 12 Dec 2023 13:07:21 +0000
Received: by outflank-mailman (input) for mailman id 653114;
 Tue, 12 Dec 2023 13:07:20 +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 1rD2To-0002st-5p
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 13:07:20 +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 1rD2To-000752-3W; Tue, 12 Dec 2023 13:07:20 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD2Tn-0004YU-Uq; Tue, 12 Dec 2023 13:07:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=Bol7u6c/YSO2JLMVic2E2rGFrPWCYGxe0686HEg7awI=; b=AptYrM+W7tD6GzLF0EkgQdtMiz
	QxkNntMu3MDc7qhKkrdMwQdieaTWR7B8qgA8CVgA62NxU8afkP/x7lSVFS9ZKRf0/atlatEwW9c5S
	7F0hQEEXIZag88nMu5zPeMUSvgpxp+Gn8P+AJ6rsAybOQdCazqMr4KmBj3qrsu/K4yU0=;
Message-ID: <3b7bb422-5b9b-4c85-abe0-1963426a7bd3@xen.org>
Date: Tue, 12 Dec 2023 13:07:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] xen/spinlock: introduce new type for recursive
 spinlocks
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Paul Durrant <paul@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-4-jgross@suse.com>
 <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>
 <492c7b3e-ee29-4fe6-b13e-f9928721a78b@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <492c7b3e-ee29-4fe6-b13e-f9928721a78b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Juergen,

On 12/12/2023 13:04, Juergen Gross wrote:
> On 12.12.23 13:57, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 12/12/2023 09:47, Juergen Gross wrote:
>>> diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
>>> index 1cd9120eac..20d15f34dd 100644
>>> --- a/xen/include/xen/spinlock.h
>>> +++ b/xen/include/xen/spinlock.h
>>> @@ -45,7 +45,7 @@ union lock_debug { };
>>> Â Â Â Â Â  lock profiling on:
>>> Â Â Â Â Â  Global locks which should be subject to profiling must be 
>>> declared via
>>> -Â Â Â  DEFINE_SPINLOCK.
>>> +Â Â Â  DEFINE_[R]SPINLOCK.
>>> Â Â Â Â Â  For locks in structures further measures are necessary:
>>> Â Â Â Â Â  - the structure definition must include a profile_head with 
>>> exactly this
>>> @@ -56,7 +56,7 @@ union lock_debug { };
>>> Â Â Â Â Â  - the single locks which are subject to profiling have to be 
>>> initialized
>>> Â Â Â Â Â Â Â  via
>>> -Â Â Â Â Â  spin_lock_init_prof(ptr, lock);
>>> +Â Â Â Â Â  [r]spin_lock_init_prof(ptr, lock);
>>> Â Â Â Â Â Â Â  with ptr being the main structure pointer and lock the 
>>> spinlock field
>>> @@ -109,12 +109,16 @@ struct lock_profile_qhead {
>>> Â Â Â Â Â  spinlock_t l = 
>>> _SPIN_LOCK_UNLOCKED(NULL);Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> Â Â Â Â Â  static struct lock_profile __lock_profile_data_##l = 
>>> _LOCK_PROFILE(l);Â Â Â  \
>>> Â Â Â Â Â  _LOCK_PROFILE_PTR(l)
>>> +#define 
>>> DEFINE_RSPINLOCK(l)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> +Â Â Â  rspinlock_t l = 
>>> _SPIN_LOCK_UNLOCKED(NULL);Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> +Â Â Â  static struct lock_profile __lock_profile_data_##l = 
>>> _LOCK_PROFILE(l);Â Â Â  \
>>> +Â Â Â  _LOCK_PROFILE_PTR(l)
>>> -#define spin_lock_init_prof(s, 
>>> l)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> +#define __spin_lock_init_prof(s, l, 
>>> locktype)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>
>> If I am not mistaken the double-underscore prefix is a violation in 
>> MISRA. So can this be renamed to:
>>
>> spin_lock_init_prof__()?
> 
> Fine with me.
> 
> Note that __lock_profile_data_##l and __lock_profile_##name seem to violate
> MISRA, too. Probably a good idea to change them as well? This should 
> probably
> be done as a prereq patch then?

It would be preferable if this is done in a separate patch. But I don't 
mind if this is not part of this series or if you don't want to do it. 
They are existing violations and not the only ones in the codebase.

But we should try to avoid adding new ones.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:09:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:09:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653116.1019372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2VO-0003dZ-KY; Tue, 12 Dec 2023 13:08:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653116.1019372; Tue, 12 Dec 2023 13:08:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2VO-0003dS-Hs; Tue, 12 Dec 2023 13:08:58 +0000
Received: by outflank-mailman (input) for mailman id 653116;
 Tue, 12 Dec 2023 13:08:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rD2VM-0003dK-Hv
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 13:08:56 +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 9a6d29ba-98ef-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 14:08:55 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id B77701FB45;
 Tue, 12 Dec 2023 13:08:54 +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 7A6B8136C7;
 Tue, 12 Dec 2023 13:08:54 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id i/RhHGZbeGUFXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 13:08: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: 9a6d29ba-98ef-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702386534; 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=EWmdwTo9q1dyJAM2m70zNTFVQ92/ZTMV/dsFfVdvOaY=;
	b=akCPZJ38xJutF7nR12eslrS2nVV+A5thsS5zcTHX5qxgLQlgO2yn7g5fwJD7PZESuNhKKB
	LN5rBqJzl89YfXYju/7TBEhPGaV/E6ODruURnuPM0lCFRHndCU1qQXKbo2wYHVMXk8Ss9u
	D2vJukc5BUecQ/9cjTqAg2Bgwk0aFXQ=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702386534; 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=EWmdwTo9q1dyJAM2m70zNTFVQ92/ZTMV/dsFfVdvOaY=;
	b=akCPZJ38xJutF7nR12eslrS2nVV+A5thsS5zcTHX5qxgLQlgO2yn7g5fwJD7PZESuNhKKB
	LN5rBqJzl89YfXYju/7TBEhPGaV/E6ODruURnuPM0lCFRHndCU1qQXKbo2wYHVMXk8Ss9u
	D2vJukc5BUecQ/9cjTqAg2Bgwk0aFXQ=
Message-ID: <9f1f73e6-2ade-440f-aed4-df46be62f3a5@suse.com>
Date: Tue, 12 Dec 2023 14:08:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
 <569bfdee-5d0b-4384-9dad-e2e90861d837@xen.org>
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: <569bfdee-5d0b-4384-9dad-e2e90861d837@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------uAmlTggyraC4CH80Etu6Bd0A"
X-Spam-Level: ***************
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spam-Level: 
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=akCPZJ38;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [-10.90 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[7];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 SIGNED_PGP(-2.00)[];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 DWL_DNSWL_MED(-2.00)[suse.com:dkim];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -10.90
X-Rspamd-Queue-Id: B77701FB45
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------uAmlTggyraC4CH80Etu6Bd0A
Content-Type: multipart/mixed; boundary="------------FvfyFEd9s6wsf2jfcBpyV0fe";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Message-ID: <9f1f73e6-2ade-440f-aed4-df46be62f3a5@suse.com>
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
 <569bfdee-5d0b-4384-9dad-e2e90861d837@xen.org>
In-Reply-To: <569bfdee-5d0b-4384-9dad-e2e90861d837@xen.org>

--------------FvfyFEd9s6wsf2jfcBpyV0fe
Content-Type: multipart/mixed; boundary="------------NYZTHvQ2rH5EXYcUQbk5ks6m"

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

T24gMTIuMTIuMjMgMTM6MzksIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGksDQo+IA0KPiBP
biAxMi8xMi8yMDIzIDA5OjQ3LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gQWxsb3cgMTYg
Yml0cyBwZXIgY3B1IG51bWJlciwgd2hpY2ggaXMgdGhlIGxpbWl0IGltcG9zZWQgYnkNCj4+
IHNwaW5sb2NrX3RpY2tldHNfdC4NCj4+DQo+PiBUaGlzIHdpbGwgYWxsb3cgdXAgdG8gNjU1
MzUgY3B1cywgd2hpbGUgaW5jcmVhc2luZyBvbmx5IHRoZSBzaXplIG9mDQo+PiByZWN1cnNp
dmUgc3BpbmxvY2tzIGluIGRlYnVnIGJ1aWxkcyBmcm9tIDggdG8gMTIgYnl0ZXMuDQo+Pg0K
Pj4gU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KPj4g
LS0tDQo+PiDCoCB4ZW4vY29tbW9uL3NwaW5sb2NrLmPCoMKgwqDCoMKgIHzCoCAxICsNCj4+
IMKgIHhlbi9pbmNsdWRlL3hlbi9zcGlubG9jay5oIHwgMTggKysrKysrKysrLS0tLS0tLS0t
DQo+PiDCoCAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z
KC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc3BpbmxvY2suYyBiL3hlbi9j
b21tb24vc3BpbmxvY2suYw0KPj4gaW5kZXggMjk2YmNmMzNlNi4uYWU3YzdjMjA4NiAxMDA2
NDQNCj4+IC0tLSBhL3hlbi9jb21tb24vc3BpbmxvY2suYw0KPj4gKysrIGIveGVuL2NvbW1v
bi9zcGlubG9jay5jDQo+PiBAQCAtNDgxLDYgKzQ4MSw3IEBAIGludCByc3Bpbl90cnlsb2Nr
KHJzcGlubG9ja190ICpsb2NrKQ0KPj4gwqDCoMKgwqDCoCAvKiBEb24ndCBhbGxvdyBvdmVy
ZmxvdyBvZiByZWN1cnNlX2NwdSBmaWVsZC4gKi8NCj4+IMKgwqDCoMKgwqAgQlVJTERfQlVH
X09OKE5SX0NQVVMgPiBTUElOTE9DS19OT19DUFUpOw0KPj4gK8KgwqDCoCBCVUlMRF9CVUdf
T04oU1BJTkxPQ0tfQ1BVX0JJVFMgPiBzaXplb2YobG9jay0+cmVjdXJzZV9jcHUpICogOCk7
DQo+PiDCoMKgwqDCoMKgIEJVSUxEX0JVR19PTihTUElOTE9DS19SRUNVUlNFX0JJVFMgPCAz
KTsNCj4+IMKgwqDCoMKgwqAgY2hlY2tfbG9jaygmbG9jay0+ZGVidWcsIHRydWUpOw0KPj4g
ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zcGlubG9jay5oIGIveGVuL2luY2x1ZGUv
eGVuL3NwaW5sb2NrLmgNCj4+IGluZGV4IDg3OTQ2OTY1YjIuLmQ3MjA3NzhjYzEgMTAwNjQ0
DQo+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vc3BpbmxvY2suaA0KPj4gKysrIGIveGVuL2lu
Y2x1ZGUveGVuL3NwaW5sb2NrLmgNCj4+IEBAIC03LDE2ICs3LDE2IEBADQo+PiDCoCAjaW5j
bHVkZSA8YXNtL3N5c3RlbS5oPg0KPj4gwqAgI2luY2x1ZGUgPGFzbS9zcGlubG9jay5oPg0K
Pj4gLSNkZWZpbmUgU1BJTkxPQ0tfQ1BVX0JJVFPCoCAxMg0KPj4gKyNkZWZpbmUgU1BJTkxP
Q0tfQ1BVX0JJVFPCoCAxNg0KPj4gwqAgI2lmZGVmIENPTkZJR19ERUJVR19MT0NLUw0KPj4g
wqAgdW5pb24gbG9ja19kZWJ1ZyB7DQo+PiAtwqDCoMKgIHVpbnQxNl90IHZhbDsNCj4+IC0j
ZGVmaW5lIExPQ0tfREVCVUdfSU5JVFZBTCAweGZmZmYNCj4+ICvCoMKgwqAgdWludDMyX3Qg
dmFsOw0KPj4gKyNkZWZpbmUgTE9DS19ERUJVR19JTklUVkFMIDB4ZmZmZmZmZmYNCj4+IMKg
wqDCoMKgwqAgc3RydWN0IHsNCj4+IC3CoMKgwqDCoMKgwqDCoCB1aW50MTZfdCBjcHU6U1BJ
TkxPQ0tfQ1BVX0JJVFM7DQo+PiAtI2RlZmluZSBMT0NLX0RFQlVHX1BBRF9CSVRTICgxNCAt
IFNQSU5MT0NLX0NQVV9CSVRTKQ0KPj4gLcKgwqDCoMKgwqDCoMKgIHVpbnQxNl90IDpMT0NL
X0RFQlVHX1BBRF9CSVRTOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQzMl90IGNwdTpTUElO
TE9DS19DUFVfQklUUzsNCj4+ICsjZGVmaW5lIExPQ0tfREVCVUdfUEFEX0JJVFMgKDMwIC0g
U1BJTkxPQ0tfQ1BVX0JJVFMpDQo+PiArwqDCoMKgwqDCoMKgwqAgdWludDMyX3QgOkxPQ0tf
REVCVUdfUEFEX0JJVFM7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYm9vbCBpcnFfc2FmZTox
Ow0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJvb2wgdW5zZWVuOjE7DQo+PiDCoMKgwqDCoMKg
IH07DQo+PiBAQCAtMjEwLDEwICsyMTAsMTAgQEAgdHlwZWRlZiBzdHJ1Y3Qgc3BpbmxvY2sg
ew0KPj4gwqAgdHlwZWRlZiBzdHJ1Y3QgcnNwaW5sb2NrIHsNCj4+IMKgwqDCoMKgwqAgc3Bp
bmxvY2tfdGlja2V0c190IHRpY2tldHM7DQo+PiAtwqDCoMKgIHVpbnQxNl90IHJlY3Vyc2Vf
Y3B1OlNQSU5MT0NLX0NQVV9CSVRTOw0KPj4gK8KgwqDCoCB1aW50MTZfdCByZWN1cnNlX2Nw
dTsNCj4+IMKgICNkZWZpbmUgU1BJTkxPQ0tfTk9fQ1BVwqDCoMKgwqDCoMKgwqAgKCgxdSA8
PCBTUElOTE9DS19DUFVfQklUUykgLSAxKQ0KPj4gLSNkZWZpbmUgU1BJTkxPQ0tfUkVDVVJT
RV9CSVRTwqAgKDE2IC0gU1BJTkxPQ0tfQ1BVX0JJVFMpDQo+PiAtwqDCoMKgIHVpbnQxNl90
IHJlY3Vyc2VfY250OlNQSU5MT0NLX1JFQ1VSU0VfQklUUzsNCj4+ICsjZGVmaW5lIFNQSU5M
T0NLX1JFQ1VSU0VfQklUU8KgIDgNCj4+ICvCoMKgwqAgdWludDhfdCByZWN1cnNlX2NudDsN
Cj4gDQo+IFRoaXMgcGF0Y2ggaXMgYWxzbyBidW1waW5nIHRoZSBudW1iZXIgb2YgcmVjdXJz
aW9uIHBvc3NpYmxlIGZyb20gMTYgdG8gMjU2LiBJdCANCj4gaXMgbm90IGNsZWFyIHRvIG1l
IHdoZXRoZXIgdGhpcyB3YXMgaW50ZW5kZWQgb3IgeW91IGp1c3Qgd2FudGVkIHRvIHVzZSB1
aW50OF90IA0KPiBiZWNhdXNlIGl0IHdhcyBlYXN5IHRvIHVzZS4NCg0KVGhhdCB3YXMgdGhl
IGNhc2UgaW5kZWVkLg0KDQo+ICBGcm9tIGFib3ZlLCBJIGFsc28gc2VlIHRoYXQgd2Ugb25s
eSBuZWVkIDMgYml0czoNCj4gDQo+ICA+IEJVSUxEX0JVR19PTihTUElOTE9DS19SRUNVUlNF
X0JJVFMgPCAzKTsNCj4gDQo+IFNvIEkgd291bGQgY29uc2lkZXIgdG8gLi4uDQo+IA0KPj4g
wqAgI2RlZmluZSBTUElOTE9DS19NQVhfUkVDVVJTRcKgwqAgKCgxdSA8PCBTUElOTE9DS19S
RUNVUlNFX0JJVFMpIC0gMSkNCj4gDQo+IC4uLiB1cGRhdGUgU1BJTkxPQ0tfTUFYX1JFQ1VS
U0UgdG8gMTYgb3IgYXQgbGVhc3QgZXhwbGFpbiB3aHkgd2Ugd2FudCB0byBhbGxvdyANCj4g
dXAgdG8gMjU2IHJlY3Vyc2lvbi4NCg0KSSB0aGluayB1cGRhdGluZyBTUElOTE9DS19NQVhf
UkVDVVJTRSB0byAxNSAodGhlIGN1cnJlbnQgdmFsdWUpIGlzIGZpbmUsDQpwcm9iYWJseSB3
aXRoIGFuIGFkZGl0aW9uYWwNCg0KQlVJTERfQlVHX09OKFNQSU5MT0NLX01BWF9SRUNVUlNF
ID4gKCgxdSA8PCBTUElOTE9DS19SRUNVUlNFX0JJVFMpIC0gMSkpOw0KDQoNCkp1ZXJnZW4N
Cg==
--------------NYZTHvQ2rH5EXYcUQbk5ks6m
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-----

--------------NYZTHvQ2rH5EXYcUQbk5ks6m--

--------------FvfyFEd9s6wsf2jfcBpyV0fe--

--------------uAmlTggyraC4CH80Etu6Bd0A
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/Ey8FAmV4W2YFAwAAAAAACgkQsN6d1ii/Ey8S
aQf7BnxYrInDCqWtszJfgGYLn8IjclNxdoI98QnR68yGZmRCGpv7IbIUX0d0TA3Ppwpalsfjzmpw
hfnNPD6ib4R6dx/Vst9nQ8xgajPoHsKufkLvdDL6TObFWGuKwv3LMojRkw6LSYDZtZVNZNiHWbyt
nn88M2QQer96vt3ZmKVUCuxUQuXjWF5B5CRU6Mb7VkMowElugnT6r5DXWnW9RtPMjTZYVumYn1Dl
bZ+3p5i2ApYXH7hcCeATfQ1ORA+fmrBbL1T5rDryVPFxMVIA0yfvZAFmF0ggdHN7f2bT6GFJu+p8
wLwB9ZTyxY13Lg4lYlAvLrM0smppDLMTlh6i+NhvPQ==
=Th8u
-----END PGP SIGNATURE-----

--------------uAmlTggyraC4CH80Etu6Bd0A--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:15:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:15:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653120.1019381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2bQ-0006Pc-9o; Tue, 12 Dec 2023 13:15:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653120.1019381; Tue, 12 Dec 2023 13:15:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2bQ-0006PV-7K; Tue, 12 Dec 2023 13:15:12 +0000
Received: by outflank-mailman (input) for mailman id 653120;
 Tue, 12 Dec 2023 13:15: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=O/80=HX=bombadil.srs.infradead.org=BATV+6f90c2f2ff3264e7ff81+7415+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rD2bO-0006O8-HR
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 13:15:11 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 784dac41-98f0-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 14:15:08 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rD2ae-00BldE-0K; Tue, 12 Dec 2023 13:14: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: 784dac41-98f0-11ee-9b0f-b553b5be7939
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=d9GOM1CReQqHO2Eq5TSJ+QFrtD+BDx0i0I5iG3RHOkc=; b=dT7hUcTdggq68z9eTLTpZvkowz
	o0hzxFtGP/1A5CdpXLfKR7IAabXtd6tscvW4EWJ7bqf73me/qP/EdG2B4FI3typytMvICOqncBaZB
	juLPQegmxMqcDjRUgDWRxj7eyVDzzLp60SQCJEDdgc0OscK42Z3kENibYVgGF0I1l4mcAYgv7Nega
	dtBKSq2W5Eht1hqZUznEkZjKNtAWvDjb82DMtqFruzGL7aQEKgH38NdlFfSSWk5+OxXcyVtpRNqmc
	NPwFb5zSyEEcKZJQSk14/2oMDYGzCgMBHQVgCHGvkAUHl3vAl4PoAud1hrwXpknFsKsviOKDCWU7T
	JzSMOq4g==;
Date: Tue, 12 Dec 2023 05:14:24 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Jan Kara <jack@suse.cz>
Cc: Yu Kuai <yukuai1@huaweicloud.com>, axboe@kernel.dk,
	roger.pau@citrix.com, colyli@suse.de, kent.overstreet@gmail.com,
	joern@lazybastard.org, miquel.raynal@bootlin.com, richard@nod.at,
	vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
	hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
	jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
	josef@toxicpanda.com, dsterba@suse.com, viro@zeniv.linux.org.uk,
	brauner@kernel.org, nico@fluxnic.net, xiang@kernel.org,
	chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
	agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
	willy@infradead.org, akpm@linux-foundation.org,
	p.raghav@samsung.com, hare@suse.de, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org, yukuai3@huawei.com,
	yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 01/18] block: add some bdev apis
Message-ID: <ZXhcsNbvzbArtBUj@infradead.org>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140552.973290-2-yukuai1@huaweicloud.com>
 <20231211165217.fil437byq7w2vcp7@quack3>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211165217.fil437byq7w2vcp7@quack3>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

On Mon, Dec 11, 2023 at 05:52:17PM +0100, Jan Kara wrote:
> > +void bdev_associated_mapping(struct block_device *bdev,
> > +			     struct address_space *mapping)
> > +{
> > +	mapping->host = bdev->bd_inode;
> > +}
> 
> Here I'm not sure - is the helper really a win? It seems a bit obscure to
> me. This initialization of another mapping for a bdev looks really special.

If we want to hide bd_inode we'll something like this helper even if
I don't particularly like it either.

But it might be a good idea to move out of this series and into the
follow on removing bd_inode, as it's rather pointless without that
context.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:17:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:17:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653123.1019391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2dY-0007Yw-LT; Tue, 12 Dec 2023 13:17:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653123.1019391; Tue, 12 Dec 2023 13:17:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2dY-0007Ym-Is; Tue, 12 Dec 2023 13:17:24 +0000
Received: by outflank-mailman (input) for mailman id 653123;
 Tue, 12 Dec 2023 13:17: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=O/80=HX=bombadil.srs.infradead.org=BATV+6f90c2f2ff3264e7ff81+7415+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rD2dX-0007XS-Io
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 13:17:23 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7eac0bc-98f0-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 14:17:21 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rD2d4-00Bm1M-0C; Tue, 12 Dec 2023 13:16: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: c7eac0bc-98f0-11ee-9b0f-b553b5be7939
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=76xsvfvsQao0L1F4mpEWw4iFvDSKTUGOH0rkCxylyR0=; b=QmO1jXrHyamW18FiZ0XlDmH8Gd
	J6J4dTRw2FLTkkOKvQrns7exRXAFguyfbw2uOyWEWmNoQXBfbqBZNewfmIkmoQ6bdSNxZ1x5tnPZH
	084wgWpxKkNR2iIpsHjtrRZ9JY1ddTp/EvS2MbTosRtewIEI8Orvb3OQJiNOerl/hksqowqURXjvG
	fYWtLshBV60dlUDv9CIGwurTqiWt8vAiJIHs2JUjuped4+Ibfiu5fRUW9EHItbwHjIC6CXlZJyNyk
	OIbxjiE1dEkn9Ncl10qwLKuiHA8BtEyU6VYvKAm8AyY9ExdjsSwpGxcfoUdawzLHnMiAOJUPVSQrR
	k2K6LA6Q==;
Date: Tue, 12 Dec 2023 05:16:54 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
	nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, p.raghav@samsung.com, hare@suse.de,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 01/18] block: add some bdev apis
Message-ID: <ZXhdRhfr+JoWdhyj@infradead.org>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140552.973290-2-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211140552.973290-2-yukuai1@huaweicloud.com>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

> +void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
> +			   pgoff_t end)
> +{
> +	invalidate_mapping_pages(bdev->bd_inode->i_mapping, start, end);
> +}
> +EXPORT_SYMBOL_GPL(invalidate_bdev_range);

Can we have kerneldoc comments for the new helpers please?

> +struct folio *__bdev_get_folio(struct block_device *bdev, loff_t pos,
> +			       fgf_t fgp_flags, gfp_t gfp)
> +{
> +	return __filemap_get_folio(bdev->bd_inode->i_mapping, pos >> PAGE_SHIFT,
> +				   fgp_flags, gfp);
> +}
> +EXPORT_SYMBOL_GPL(__bdev_get_folio);

It's a bit silly to have a __-prefixed API without a version that
doesn't have the prefix, so I'd prefer to drop it.  Unless willy has
a good argument for keeping it the same as the filemap API.



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:19:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:19:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653128.1019402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2fF-00008T-3y; Tue, 12 Dec 2023 13:19:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653128.1019402; Tue, 12 Dec 2023 13:19:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2fF-00008M-1H; Tue, 12 Dec 2023 13:19:09 +0000
Received: by outflank-mailman (input) for mailman id 653128;
 Tue, 12 Dec 2023 13:19: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 1rD2fE-000089-99; Tue, 12 Dec 2023 13:19: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 1rD2fE-0007Ie-7M; Tue, 12 Dec 2023 13:19: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 1rD2fD-0006eL-PB; Tue, 12 Dec 2023 13:19:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rD2fD-0007ZF-Ok; Tue, 12 Dec 2023 13:19:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Hgi2dN2fnnIete59dRSuF3L2DUXqX7SuWFuBV0SbKTs=; b=3w+2mqA1NL/i00g9+sZP2xalNR
	ZPv+poFieOGg5/O4oGVsad0li9eQW+lyKd+D8eDtC8vhtSKYMwQ74DOb54b2rbBBTNXq3/UmRgX9v
	f4vf83siCFFFMpTgZ9vKWfaHQhd5ACqb4cKbi8wlOruOAWuVlb3fwfKOo2710rbSdID4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184103-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184103: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=cee7ba349c0c1ce489001a338a4e28555728b573
X-Osstest-Versions-That:
    ovmf=725acd0b9cc047b20a1b9379e46f05d3ebcf485e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 13:19:07 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 cee7ba349c0c1ce489001a338a4e28555728b573
baseline version:
 ovmf                 725acd0b9cc047b20a1b9379e46f05d3ebcf485e

Last test of basis   184097  2023-12-12 01:43:01 Z    0 days
Testing same since   184103  2023-12-12 11:11:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ard Biesheuvel <ardb@kernel.org>
  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-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-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
   725acd0b9c..cee7ba349c  cee7ba349c0c1ce489001a338a4e28555728b573 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:22:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653134.1019412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2iX-0002gu-KO; Tue, 12 Dec 2023 13:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653134.1019412; Tue, 12 Dec 2023 13:22:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2iX-0002gm-Hi; Tue, 12 Dec 2023 13:22:33 +0000
Received: by outflank-mailman (input) for mailman id 653134;
 Tue, 12 Dec 2023 13:22:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O/80=HX=bombadil.srs.infradead.org=BATV+6f90c2f2ff3264e7ff81+7415+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rD2iW-0002Zb-LR
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 13:22:32 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 805f86f6-98f1-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 14:22:31 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rD2i1-00BmdA-1Z; Tue, 12 Dec 2023 13:22: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: 805f86f6-98f1-11ee-9b0f-b553b5be7939
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=M7NmYC/Iylm9myghHwqILim55SAUt9QrM+UZYk0eJlw=; b=d82RgBMGaaclCmfp4Tm9o8eeAr
	5J48k2Y7WjvnZqrEyGwMif8AAp7lsxMyHiRerWCDvpM+uuCkRl8uH/kRItJxP6H9xqP63/lNRLlFO
	Mi3EN+Wdw5I6UIRMMc6ELZZyD3L7wP+bD2lYalA86sv9mMQqNAQViWtFhVollnzaiMdmN3PvuL77w
	B4AeTARacirMv82QpCndK6O66Jrjem548Vcc8ddZDiWQpd04d5vhGpZhyqQeFOu64id6pQ7SyWzdE
	wTLNH0jXL9/RDjUKqR4jJVLb2XB4YSMSVMxSw5TIZve4XEGZxW6DpOEYnRkYkZFu+YnDDTqzbDEoi
	zpVEFjSw==;
Date: Tue, 12 Dec 2023 05:22:01 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
	nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, p.raghav@samsung.com, hare@suse.de,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 17/18] ext4: remove
 block_device_ejected()
Message-ID: <ZXheecmAqhb8dN8E@infradead.org>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140833.975935-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211140833.975935-1-yukuai1@huaweicloud.com>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:26:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653137.1019421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2lv-00043m-32; Tue, 12 Dec 2023 13:26:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653137.1019421; Tue, 12 Dec 2023 13:26:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2lv-00043f-0T; Tue, 12 Dec 2023 13:26:03 +0000
Received: by outflank-mailman (input) for mailman id 653137;
 Tue, 12 Dec 2023 13:26: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=O/80=HX=bombadil.srs.infradead.org=BATV+6f90c2f2ff3264e7ff81+7415+infradead.org+hch@srs-se1.protection.inumbo.net>)
 id 1rD2lt-00043Z-SB
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 13:26:01 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd67a8d8-98f1-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 14:26:01 +0100 (CET)
Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat
 Linux)) id 1rD2lJ-00BnAr-2I; Tue, 12 Dec 2023 13:25:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd67a8d8-98f1-11ee-98e8-6d05b1d4d9a1
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=b0EJSjGbwEr2b4Ml7A+chJ8+pEiLc4/B8ooSTDiYxzk=; b=picipgXFbvzoUhEoBG/zPnQX1q
	HE6smIRBy5a89R9akhr+qXOZgV2ZWsX5XPLxtAEgCavvFg2RD1Nd4bY6y3UtqlfS5bvjWd1FYs03a
	CEKxQcI96bW9kVZcHP+cYaV8hEgMc7fElg/c9Fc75ryish62M2PDTmzUmPs5fvjFZ8ka06osdMRpf
	ASMKxc6mHhCj37Uwwthec0X8EOQOG/hGGGWoR9QRV2Bnh4w97sL+F2xaXO4b3Qr1y31RDun14/d27
	LpamT9Qvnaapt6jca0mzWu9EovPM8+74IynFRKTN08S2sDe2pXO4Td8t8oHiM29FNbbe9flIcdz3n
	3xcYUrag==;
Date: Tue, 12 Dec 2023 05:25:25 -0800
From: Christoph Hellwig <hch@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
	nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
	konishi.ryusuke@gmail.com, willy@infradead.org,
	akpm@linux-foundation.org, p.raghav@samsung.com, hare@suse.de,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	gfs2@lists.linux.dev, linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 15/18] buffer: add a new helper to
 read sb block
Message-ID: <ZXhfRdocHfrViOos@infradead.org>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140753.975297-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211140753.975297-1-yukuai1@huaweicloud.com>
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch@infradead.org> by bombadil.infradead.org. See http://www.infradead.org/rpr.html

On Mon, Dec 11, 2023 at 10:07:53PM +0800, Yu Kuai wrote:
> +static __always_inline int buffer_uptodate_or_error(struct buffer_head *bh)
> +{
> +	/*
> +	 * If the buffer has the write error flag, data was failed to write
> +	 * out in the block. In this case, set buffer uptodate to prevent
> +	 * reading old data.
> +	 */
> +	if (buffer_write_io_error(bh))
> +		set_buffer_uptodate(bh);
> +	return buffer_uptodate(bh);
> +}

So - risking this blows up into a lot of nasty work: Why do we even
clear the uptodate flag on write errors?  Doing so makes not sense to
me as the data isn't any less uptodate just because we failed to write
it..



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:38:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:38:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653142.1019432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2xm-0007jI-4L; Tue, 12 Dec 2023 13:38:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653142.1019432; Tue, 12 Dec 2023 13:38:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD2xm-0007jB-1l; Tue, 12 Dec 2023 13:38:18 +0000
Received: by outflank-mailman (input) for mailman id 653142;
 Tue, 12 Dec 2023 13:38: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=j5yJ=HX=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rD2xl-0007j5-3f
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 13:38:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3bfc1ec-98f3-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 14:38:15 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 32DC44EE0737;
 Tue, 12 Dec 2023 14:38:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3bfc1ec-98f3-11ee-98e8-6d05b1d4d9a1
MIME-Version: 1.0
Date: Tue, 12 Dec 2023 14:38:15 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 7/7] x86/xstate: move BUILD_BUG_ON to address MISRA
 C:2012 Rule 2.1
In-Reply-To: <af20721d-c353-4327-8ae2-6e803de4ba37@suse.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <a969550faea681c69730c0968264781f7739670d.1702283415.git.nicola.vetrini@bugseng.com>
 <1d05baf2-e262-4151-b5a3-308f0ffa1e97@suse.com>
 <af20721d-c353-4327-8ae2-6e803de4ba37@suse.com>
Message-ID: <06787876c18401f7adbfb23f7f91ee84@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 2023-12-12 11:07, Jan Beulich wrote:
> On 12.12.2023 11:04, Jan Beulich wrote:
>> On 11.12.2023 11:30, Nicola Vetrini wrote:
>>> The string literal inside the expansion of BUILD_BUG_ON is considered
>>> unreachable code; however, such statement can be moved earlier
>>> with no functional change.
>> 
>> First: Why is this deemed dead code in its present position, but okay 
>> when
>> moved? Second: While moving is indeed no functional change (really
>> BUILD_BUG_ON() can be moved about anywhere, for not producing any code 
>> in
>> the final binary), it removes the connection between it and the 
>> respective
>> asm() (where %z would have been nice to use).
> 
> Oh, and third: Which string literal? I expect you're not building with
> an ancient compiler, so it got to be
> 
> #define BUILD_BUG_ON(cond) ({ _Static_assert(!(cond), "!(" #cond ")"); 
> })
> 
> which you see in use. Yet that string literal isn't "code" or "data", 
> but
> an argument to _Static_assert(). Is Eclair perhaps not properly aware 
> of
> _Static_assert()?
> 
> Jan

On further inspection, this should have fallen into the deviation for 
pure decls. This patch can be dropped, we'll adjust this inside ECLAIR.

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 13:45:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 13:45:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653147.1019444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD34r-0002Yd-Sv; Tue, 12 Dec 2023 13:45:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653147.1019444; Tue, 12 Dec 2023 13:45:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD34r-0002YW-QN; Tue, 12 Dec 2023 13:45:37 +0000
Received: by outflank-mailman (input) for mailman id 653147;
 Tue, 12 Dec 2023 13:45: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 1rD34q-0002YM-GU; Tue, 12 Dec 2023 13:45: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 1rD34q-0007lr-EY; Tue, 12 Dec 2023 13:45: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 1rD34p-0007td-W7; Tue, 12 Dec 2023 13:45:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rD34p-0003Vg-Vh; Tue, 12 Dec 2023 13:45:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=TNPe+7QfP5mM+boIV3MK3kgVx3W06TdZd9OtTM4yTo0=; b=mbj6z9Q2cdPaxis/Ty0eeaXHrJ
	uKVuAU3MWIQNBZxNdxKWLIJl9cYDdxqWbINo0bcneRam5J6U8rBwLGpdyEWjH+zVEVoJxodFevr/R
	xXlFBhIYrVVPT7b+7PlaguX5ruVZry2q/7PqD+13wZmLh8BLhFKVEgqXNphGge47RS7g=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184102-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184102: 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=cf40abbc7ff2a73eaaea84e919fc7762354e75ad
X-Osstest-Versions-That:
    xen=1403131596fa77663708f6baa0fee8bf7b95eb5a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 13:45:35 +0000

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

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                  cf40abbc7ff2a73eaaea84e919fc7762354e75ad
baseline version:
 xen                  1403131596fa77663708f6baa0fee8bf7b95eb5a

Last test of basis   184091  2023-12-11 11:00:26 Z    1 days
Testing same since   184102  2023-12-12 11:00:28 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Juergen Gross <jgross@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
   1403131596..cf40abbc7f  cf40abbc7ff2a73eaaea84e919fc7762354e75ad -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 14:01:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 14:01:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653153.1019455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3KM-00075C-8v; Tue, 12 Dec 2023 14:01:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653153.1019455; Tue, 12 Dec 2023 14:01: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 1rD3KM-000755-5B; Tue, 12 Dec 2023 14:01:38 +0000
Received: by outflank-mailman (input) for mailman id 653153;
 Tue, 12 Dec 2023 14:01: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=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rD3KK-00074z-GY
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 14:01:36 +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 f576038e-98f6-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 15:01:34 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c3f68b79aso35855735e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 06:01:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j25-20020a05600c1c1900b004076f522058sm19095667wms.0.2023.12.12.06.01.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 06:01:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f576038e-98f6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702389694; x=1702994494; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Q07JDhtC8/CzI+mPapQNHYKf/7pRxNuK6H1n1J5tdx0=;
        b=d+vSCH4+dS6AEg1+CQls5ly+HJuODXl98cHE6FNHiYhi9DXbx2PNU9adwor40DmsFH
         6HCnQekBSLAS56YfThFoom62vkm94wndhosA15LBtI3fzzceSI3A5GYx7s8JcQmCvYHj
         2mFgVB3oRH+b1RLZDUUPYYTEXGC/y46s4yUg7xDKdc874w+IhwnSApel5Cmp7RCTYtYX
         m0d4gWX5tvUUStPB8rfTgtHVbF8pG9kcIxMqhmt3KGDMq1QnOWRzoToDbBi5RIsRNlMW
         ryB4SsD8tXYQdFIGIcmYTkIS86R9WzBgOl8DOjTvh/VjvXFl4IVhGXwsExM/g02RUjfc
         T2aQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702389694; x=1702994494;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Q07JDhtC8/CzI+mPapQNHYKf/7pRxNuK6H1n1J5tdx0=;
        b=CUu+FLLPXt3Dr5WH95o771ZZ27rno/2cSk8YDMdlBI6Y5eFSH6xs+e7G3YnqsJ7KG4
         eacEDWw4VkmVucSfFSLVVL8uIXzXbcEHDi2FN4osHy1woDZB501JFFqKu5IkPSOVh/Ic
         +SNh30d4VIFs0GvkhyGtUEAVJNZrECv7uu+3ethXxY+bcjCVqO7FPP0GeAgjfS85U9RW
         qUo1xEeQEnC8U7EFVGaOjhNoSlNTeTdJyilrp9AWD2m8iv3HTJ7Esdxrb26Dyfcp+R6e
         LaB7O5JmV2JolY4tg0CEpmz8SX1t1gr7MOTKKcDE6jDNPn4Q5vQvruAOioL30QIZQdVt
         gNOQ==
X-Gm-Message-State: AOJu0Yz2gvqUGrb+YNwaWLDXgdHFN74KW1JrX5DUj8jeq8tuHdrcrQmQ
	0Wq1yDN3tVSK88VLQccRtbst
X-Google-Smtp-Source: AGHT+IFEzJOrzF0IqeM7Q/R6hO1T7X20KDmEYbUoYh72xADGXyuGrIIU0Yc2N9ew/IBWlmVrD5xWRA==
X-Received: by 2002:a05:600c:22c2:b0:40c:2a2b:4ef with SMTP id 2-20020a05600c22c200b0040c2a2b04efmr3516456wmg.43.1702389693836;
        Tue, 12 Dec 2023 06:01:33 -0800 (PST)
Message-ID: <c2679666-9cd6-45aa-a222-82a589247ea2@suse.com>
Date: Tue, 12 Dec 2023 15:01:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 7/7] x86/xstate: move BUILD_BUG_ON to address MISRA
 C:2012 Rule 2.1
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: consulting@bugseng.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.1702283415.git.nicola.vetrini@bugseng.com>
 <a969550faea681c69730c0968264781f7739670d.1702283415.git.nicola.vetrini@bugseng.com>
 <1d05baf2-e262-4151-b5a3-308f0ffa1e97@suse.com>
 <af20721d-c353-4327-8ae2-6e803de4ba37@suse.com>
 <06787876c18401f7adbfb23f7f91ee84@bugseng.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: <06787876c18401f7adbfb23f7f91ee84@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2023 14:38, Nicola Vetrini wrote:
> On 2023-12-12 11:07, Jan Beulich wrote:
>> On 12.12.2023 11:04, Jan Beulich wrote:
>>> On 11.12.2023 11:30, Nicola Vetrini wrote:
>>>> The string literal inside the expansion of BUILD_BUG_ON is considered
>>>> unreachable code; however, such statement can be moved earlier
>>>> with no functional change.
>>>
>>> First: Why is this deemed dead code in its present position, but okay 
>>> when
>>> moved? Second: While moving is indeed no functional change (really
>>> BUILD_BUG_ON() can be moved about anywhere, for not producing any code 
>>> in
>>> the final binary), it removes the connection between it and the 
>>> respective
>>> asm() (where %z would have been nice to use).
>>
>> Oh, and third: Which string literal? I expect you're not building with
>> an ancient compiler, so it got to be
>>
>> #define BUILD_BUG_ON(cond) ({ _Static_assert(!(cond), "!(" #cond ")"); 
>> })
>>
>> which you see in use. Yet that string literal isn't "code" or "data", 
>> but
>> an argument to _Static_assert(). Is Eclair perhaps not properly aware 
>> of
>> _Static_assert()?
> 
> On further inspection, this should have fallen into the deviation for 
> pure decls. This patch can be dropped, we'll adjust this inside ECLAIR.

What's the connection to "pure" here? Or are you merely piggybacking on
that attribute for this non-function?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 14:04:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 14:04:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653155.1019465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3NU-0007ju-Ni; Tue, 12 Dec 2023 14:04:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653155.1019465; Tue, 12 Dec 2023 14:04:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3NU-0007jm-K5; Tue, 12 Dec 2023 14:04:52 +0000
Received: by outflank-mailman (input) for mailman id 653155;
 Tue, 12 Dec 2023 14:04:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rD3NT-0007jf-6x
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 14:04:51 +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 1rD3NS-0008D9-UY; Tue, 12 Dec 2023 14:04:50 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD3NS-0007MC-Np; Tue, 12 Dec 2023 14:04:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=aRzPj3gSpjPeOjXM+J4MFtF2ssViqCXIq0GWnn/kAlI=; b=HU/VY5HGqKs5CGc2CXHEjN6xST
	lxV2PGsOFXW9wJSgZrEYW4HOfFWFyzvjRiwMJ2oBjJGDZQ/ACRKhDITDAaYN67c1kQzxsyNRuUljp
	RU/Ssd5jhPqlu5QJUsRVn4q4MWbCjF7jYWzvu6UkAYi3hArMWuBRcvi6uqLNDv6au/q0=;
Message-ID: <4afe81fd-f5b7-4ddb-8782-38c98d8b3076@xen.org>
Date: Tue, 12 Dec 2023 14:04:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] xen/spinlock: support higher number of cpus
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-13-jgross@suse.com>
 <569bfdee-5d0b-4384-9dad-e2e90861d837@xen.org>
 <9f1f73e6-2ade-440f-aed4-df46be62f3a5@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9f1f73e6-2ade-440f-aed4-df46be62f3a5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 12/12/2023 13:08, Juergen Gross wrote:
> On 12.12.23 13:39, Julien Grall wrote:
>> Hi,
>>
>> On 12/12/2023 09:47, Juergen Gross wrote:
>>> Allow 16 bits per cpu number, which is the limit imposed by
>>> spinlock_tickets_t.
>>>
>>> This will allow up to 65535 cpus, while increasing only the size of
>>> recursive spinlocks in debug builds from 8 to 12 bytes.
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> ---
>>> Â  xen/common/spinlock.cÂ Â Â Â Â  |Â  1 +
>>> Â  xen/include/xen/spinlock.h | 18 +++++++++---------
>>> Â  2 files changed, 10 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
>>> index 296bcf33e6..ae7c7c2086 100644
>>> --- a/xen/common/spinlock.c
>>> +++ b/xen/common/spinlock.c
>>> @@ -481,6 +481,7 @@ int rspin_trylock(rspinlock_t *lock)
>>> Â Â Â Â Â  /* Don't allow overflow of recurse_cpu field. */
>>> Â Â Â Â Â  BUILD_BUG_ON(NR_CPUS > SPINLOCK_NO_CPU);
>>> +Â Â Â  BUILD_BUG_ON(SPINLOCK_CPU_BITS > sizeof(lock->recurse_cpu) * 8);
>>> Â Â Â Â Â  BUILD_BUG_ON(SPINLOCK_RECURSE_BITS < 3);
>>> Â Â Â Â Â  check_lock(&lock->debug, true);
>>> diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
>>> index 87946965b2..d720778cc1 100644
>>> --- a/xen/include/xen/spinlock.h
>>> +++ b/xen/include/xen/spinlock.h
>>> @@ -7,16 +7,16 @@
>>> Â  #include <asm/system.h>
>>> Â  #include <asm/spinlock.h>
>>> -#define SPINLOCK_CPU_BITSÂ  12
>>> +#define SPINLOCK_CPU_BITSÂ  16
>>> Â  #ifdef CONFIG_DEBUG_LOCKS
>>> Â  union lock_debug {
>>> -Â Â Â  uint16_t val;
>>> -#define LOCK_DEBUG_INITVAL 0xffff
>>> +Â Â Â  uint32_t val;
>>> +#define LOCK_DEBUG_INITVAL 0xffffffff
>>> Â Â Â Â Â  struct {
>>> -Â Â Â Â Â Â Â  uint16_t cpu:SPINLOCK_CPU_BITS;
>>> -#define LOCK_DEBUG_PAD_BITS (14 - SPINLOCK_CPU_BITS)
>>> -Â Â Â Â Â Â Â  uint16_t :LOCK_DEBUG_PAD_BITS;
>>> +Â Â Â Â Â Â Â  uint32_t cpu:SPINLOCK_CPU_BITS;
>>> +#define LOCK_DEBUG_PAD_BITS (30 - SPINLOCK_CPU_BITS)
>>> +Â Â Â Â Â Â Â  uint32_t :LOCK_DEBUG_PAD_BITS;
>>> Â Â Â Â Â Â Â Â Â  bool irq_safe:1;
>>> Â Â Â Â Â Â Â Â Â  bool unseen:1;
>>> Â Â Â Â Â  };
>>> @@ -210,10 +210,10 @@ typedef struct spinlock {
>>> Â  typedef struct rspinlock {
>>> Â Â Â Â Â  spinlock_tickets_t tickets;
>>> -Â Â Â  uint16_t recurse_cpu:SPINLOCK_CPU_BITS;
>>> +Â Â Â  uint16_t recurse_cpu;
>>> Â  #define SPINLOCK_NO_CPUÂ Â Â Â Â Â Â  ((1u << SPINLOCK_CPU_BITS) - 1)
>>> -#define SPINLOCK_RECURSE_BITSÂ  (16 - SPINLOCK_CPU_BITS)
>>> -Â Â Â  uint16_t recurse_cnt:SPINLOCK_RECURSE_BITS;
>>> +#define SPINLOCK_RECURSE_BITSÂ  8
>>> +Â Â Â  uint8_t recurse_cnt;
>>
>> This patch is also bumping the number of recursion possible from 16 to 
>> 256. It is not clear to me whether this was intended or you just 
>> wanted to use uint8_t because it was easy to use.
> 
> That was the case indeed.
> 
>> Â From above, I also see that we only need 3 bits:
>>
>> Â > BUILD_BUG_ON(SPINLOCK_RECURSE_BITS < 3);
>>
>> So I would consider to ...
>>
>>> Â  #define SPINLOCK_MAX_RECURSEÂ Â  ((1u << SPINLOCK_RECURSE_BITS) - 1)
>>
>> ... update SPINLOCK_MAX_RECURSE to 16 or at least explain why we want 
>> to allow up to 256 recursion.
> 
> I think updating SPINLOCK_MAX_RECURSE to 15 (the current value) is fine,
> probably with an additional
> 
> BUILD_BUG_ON(SPINLOCK_MAX_RECURSE > ((1u << SPINLOCK_RECURSE_BITS) - 1));

It sounds good to me.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 14:05:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 14:05:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653159.1019475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3OC-0008Df-3D; Tue, 12 Dec 2023 14:05:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653159.1019475; Tue, 12 Dec 2023 14:05:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3OC-0008DY-0L; Tue, 12 Dec 2023 14:05:36 +0000
Received: by outflank-mailman (input) for mailman id 653159;
 Tue, 12 Dec 2023 14:05: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=j5yJ=HX=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rD3OB-00086p-8M
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 14:05:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84b53cd2-98f7-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 15:05:34 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 49B594EE0737;
 Tue, 12 Dec 2023 15:05:34 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84b53cd2-98f7-11ee-98e8-6d05b1d4d9a1
MIME-Version: 1.0
Date: Tue, 12 Dec 2023 15:05:34 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 7/7] x86/xstate: move BUILD_BUG_ON to address MISRA
 C:2012 Rule 2.1
In-Reply-To: <c2679666-9cd6-45aa-a222-82a589247ea2@suse.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <a969550faea681c69730c0968264781f7739670d.1702283415.git.nicola.vetrini@bugseng.com>
 <1d05baf2-e262-4151-b5a3-308f0ffa1e97@suse.com>
 <af20721d-c353-4327-8ae2-6e803de4ba37@suse.com>
 <06787876c18401f7adbfb23f7f91ee84@bugseng.com>
 <c2679666-9cd6-45aa-a222-82a589247ea2@suse.com>
Message-ID: <93e217379f777bdc7c5f536865543d94@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 2023-12-12 15:01, Jan Beulich wrote:
> On 12.12.2023 14:38, Nicola Vetrini wrote:
>> On 2023-12-12 11:07, Jan Beulich wrote:
>>> On 12.12.2023 11:04, Jan Beulich wrote:
>>>> On 11.12.2023 11:30, Nicola Vetrini wrote:
>>>>> The string literal inside the expansion of BUILD_BUG_ON is 
>>>>> considered
>>>>> unreachable code; however, such statement can be moved earlier
>>>>> with no functional change.
>>>> 
>>>> First: Why is this deemed dead code in its present position, but 
>>>> okay
>>>> when
>>>> moved? Second: While moving is indeed no functional change (really
>>>> BUILD_BUG_ON() can be moved about anywhere, for not producing any 
>>>> code
>>>> in
>>>> the final binary), it removes the connection between it and the
>>>> respective
>>>> asm() (where %z would have been nice to use).
>>> 
>>> Oh, and third: Which string literal? I expect you're not building 
>>> with
>>> an ancient compiler, so it got to be
>>> 
>>> #define BUILD_BUG_ON(cond) ({ _Static_assert(!(cond), "!(" #cond 
>>> ")");
>>> })
>>> 
>>> which you see in use. Yet that string literal isn't "code" or "data",
>>> but
>>> an argument to _Static_assert(). Is Eclair perhaps not properly aware
>>> of
>>> _Static_assert()?
>> 
>> On further inspection, this should have fallen into the deviation for
>> pure decls. This patch can be dropped, we'll adjust this inside 
>> ECLAIR.
> 
> What's the connection to "pure" here? Or are you merely piggybacking on
> that attribute for this non-function?
> 
> Jan

Just a naming coincidence, there aren't any attributes involved. No 
change to Xen code is needed.

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 14:11:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 14:11:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653164.1019486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3Tg-0001iO-NG; Tue, 12 Dec 2023 14:11:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653164.1019486; Tue, 12 Dec 2023 14: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 1rD3Tg-0001iH-GY; Tue, 12 Dec 2023 14:11:16 +0000
Received: by outflank-mailman (input) for mailman id 653164;
 Tue, 12 Dec 2023 14:11:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=1LOD=HX=suse.cz=jack@srs-se1.protection.inumbo.net>)
 id 1rD3Tf-0001hQ-JX
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 14:11:15 +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 4e86f883-98f8-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 15:11:13 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 AF1351FB4F;
 Tue, 12 Dec 2023 14:11:11 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 8B6A8139E9;
 Tue, 12 Dec 2023 14:11:11 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap2.dmz-prg2.suse.org with ESMTPSA id lJX+If9peGUGTgAAn2gu4w
 (envelope-from <jack@suse.cz>); Tue, 12 Dec 2023 14:11:11 +0000
Received: by quack3.suse.cz (Postfix, from userid 1000)
 id E4786A06E5; Tue, 12 Dec 2023 15:11:10 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e86f883-98f8-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702390271; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=f/nbhyN5crR1w3m66kOkHUMah0FU4U4vRvr/vSaOUKo=;
	b=B++bEOcuECOPLUS6gRl1BadE5Ojhg72LI17/Jf8so38UM+0K3tK3EM18zqdte42Rmdahip
	pT2NLWONXbbx1wHqSpSUPrJ6SV/khTkKgkoHLhS3Je5qcEna7m+A0ImkydNS5Hp2KL7ol5
	NGT5IsMbucBv49ZwMiTMIN/MTc8WjGg=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702390271;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=f/nbhyN5crR1w3m66kOkHUMah0FU4U4vRvr/vSaOUKo=;
	b=RYDemGbnXZfKi9uzTsokLLJFp3Q2IBX/Y+6xZm0LlYsd4XpI31h6ZqYPNIYrqGTAdxjsbq
	9DRT+9hTWhL8LpBQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1702390271; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=f/nbhyN5crR1w3m66kOkHUMah0FU4U4vRvr/vSaOUKo=;
	b=B++bEOcuECOPLUS6gRl1BadE5Ojhg72LI17/Jf8so38UM+0K3tK3EM18zqdte42Rmdahip
	pT2NLWONXbbx1wHqSpSUPrJ6SV/khTkKgkoHLhS3Je5qcEna7m+A0ImkydNS5Hp2KL7ol5
	NGT5IsMbucBv49ZwMiTMIN/MTc8WjGg=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1702390271;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=f/nbhyN5crR1w3m66kOkHUMah0FU4U4vRvr/vSaOUKo=;
	b=RYDemGbnXZfKi9uzTsokLLJFp3Q2IBX/Y+6xZm0LlYsd4XpI31h6ZqYPNIYrqGTAdxjsbq
	9DRT+9hTWhL8LpBQ==
Date: Tue, 12 Dec 2023 15:11:10 +0100
From: Jan Kara <jack@suse.cz>
To: Christoph Hellwig <hch@infradead.org>
Cc: Yu Kuai <yukuai1@huaweicloud.com>, axboe@kernel.dk,
	roger.pau@citrix.com, colyli@suse.de, kent.overstreet@gmail.com,
	joern@lazybastard.org, miquel.raynal@bootlin.com, richard@nod.at,
	vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
	hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
	jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
	josef@toxicpanda.com, dsterba@suse.com, viro@zeniv.linux.org.uk,
	brauner@kernel.org, nico@fluxnic.net, xiang@kernel.org,
	chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca,
	agruenba@redhat.com, jack@suse.com, konishi.ryusuke@gmail.com,
	willy@infradead.org, akpm@linux-foundation.org,
	p.raghav@samsung.com, hare@suse.de, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
	linux-nilfs@vger.kernel.org, yukuai3@huawei.com,
	yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v2 for-6.8/block 15/18] buffer: add a new helper to
 read sb block
Message-ID: <20231212141110.4pcetu5ozp3m33qc@quack3>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140753.975297-1-yukuai1@huaweicloud.com>
 <ZXhfRdocHfrViOos@infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ZXhfRdocHfrViOos@infradead.org>
X-Spam-Flag: NO
X-Spam-Score: 1.39
X-Spam-Level: ****
X-Spamd-Bar: ++++
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=B++bEOcu;
	dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=RYDemGbn;
	dmarc=none;
	spf=softfail (smtp-out2.suse.de: 2a07:de40:b281:104:10:150:64:98 is neither permitted nor denied by domain of jack@suse.cz) smtp.mailfrom=jack@suse.cz
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [4.79 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_SPF_SOFTFAIL(4.60)[~all];
	 R_RATELIMIT(0.00)[to_ip_from(RLa8hd5fybgmzcyr9mhbq8ey7y)];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.cz:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_GT_50(0.00)[51];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-0.00)[22.45%];
	 ARC_NA(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 RCVD_DKIM_ARC_DNSWL_HI(-1.00)[];
	 FROM_HAS_DN(0.00)[];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 TAGGED_RCPT(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 DMARC_NA(1.20)[suse.cz];
	 TO_MATCH_ENVRCPT_SOME(0.00)[];
	 DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 MID_RHS_NOT_FQDN(0.50)[];
	 FREEMAIL_CC(0.00)[huaweicloud.com,kernel.dk,citrix.com,suse.de,gmail.com,lazybastard.org,bootlin.com,nod.at,ti.com,linux.ibm.com,oracle.com,fb.com,toxicpanda.com,suse.com,zeniv.linux.org.uk,kernel.org,fluxnic.net,mit.edu,dilger.ca,redhat.com,infradead.org,linux-foundation.org,samsung.com,vger.kernel.org,lists.xenproject.org,lists.infradead.org,lists.ozlabs.org,lists.linux.dev,huawei.com];
	 RCVD_TLS_ALL(0.00)[];
	 SUSPICIOUS_RECIPS(1.50)[];
	 RCVD_IN_DNSWL_HI(-0.50)[2a07:de40:b281:104:10:150:64:98:from]
X-Spam-Score: 4.79
X-Rspamd-Queue-Id: AF1351FB4F
X-Spam-Flag: NO

On Tue 12-12-23 05:25:25, Christoph Hellwig wrote:
> On Mon, Dec 11, 2023 at 10:07:53PM +0800, Yu Kuai wrote:
> > +static __always_inline int buffer_uptodate_or_error(struct buffer_head *bh)
> > +{
> > +	/*
> > +	 * If the buffer has the write error flag, data was failed to write
> > +	 * out in the block. In this case, set buffer uptodate to prevent
> > +	 * reading old data.
> > +	 */
> > +	if (buffer_write_io_error(bh))
> > +		set_buffer_uptodate(bh);
> > +	return buffer_uptodate(bh);
> > +}
> 
> So - risking this blows up into a lot of nasty work: Why do we even
> clear the uptodate flag on write errors?  Doing so makes not sense to
> me as the data isn't any less uptodate just because we failed to write
> it..

Historic reasons I'd say (buffer_write_io_error isn't *that* old - from
2003 it seems). And yes, it would make a lot of sense to keep uptodate flag
set and just rely on buffer_write_io_error() but it also means going
through all buffer_uptodate() checks in filesystems and determining which
need changing to buffer_write_io_error() which is something nobody is keen
on doing ;)

								Honza

-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 14:17:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 14:17:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653167.1019495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3Z8-0003S4-71; Tue, 12 Dec 2023 14:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653167.1019495; Tue, 12 Dec 2023 14:16: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 1rD3Z8-0003Rx-45; Tue, 12 Dec 2023 14:16:54 +0000
Received: by outflank-mailman (input) for mailman id 653167;
 Tue, 12 Dec 2023 14:16: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rD3Z6-0003Qc-Fp
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 14:16:52 +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 1764aafe-98f9-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 15:16:50 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 5B4641FB45;
 Tue, 12 Dec 2023 14:16:49 +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 0FBB013725;
 Tue, 12 Dec 2023 14:16:49 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id rKn7AVFreGVCdQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 14:16: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: 1764aafe-98f9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702390609; 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=PgNtcbs50nBRDFUuIXNDNWr9Xg6eKD2SdhqZXTq40Hc=;
	b=Za2l5gATs0OeAA3XbLVAtELNHL7WhxwKIsKdSFGtnh8DKddH5olMCcbcOhD87eq+gRNIoU
	zxuF3H5VJzE7O5Fg9zZNF6AkrUNEbn1esEeyAS7Ziv+rXnSbmE11Xx2x0P4Y16CEvg/ohw
	ue5TxG5pLZXlMponCRyNCTNNsJvA6xc=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702390609; 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=PgNtcbs50nBRDFUuIXNDNWr9Xg6eKD2SdhqZXTq40Hc=;
	b=Za2l5gATs0OeAA3XbLVAtELNHL7WhxwKIsKdSFGtnh8DKddH5olMCcbcOhD87eq+gRNIoU
	zxuF3H5VJzE7O5Fg9zZNF6AkrUNEbn1esEeyAS7Ziv+rXnSbmE11Xx2x0P4Y16CEvg/ohw
	ue5TxG5pLZXlMponCRyNCTNNsJvA6xc=
Message-ID: <bc236e16-cbc5-4303-a8e8-cdd8e2efd0d6@suse.com>
Date: Tue, 12 Dec 2023 15:16:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/12] xen/spinlock: add
 rspin_[un]lock_irq[save|restore]()
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-6-jgross@suse.com>
 <319c928c-500c-4f41-8a65-3ffdeb888d63@xen.org>
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: <319c928c-500c-4f41-8a65-3ffdeb888d63@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------p4lMFVoq5Uhj0mhRryFnJsEv"
X-Spam-Flag: NO
X-Spam-Score: 3.11
X-Spam-Level: ***
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	none
X-Spamd-Result: default: False [3.11 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Score: 3.11

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------p4lMFVoq5Uhj0mhRryFnJsEv
Content-Type: multipart/mixed; boundary="------------5561XOhLCVmcVW5pzsZi1Wua";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <bc236e16-cbc5-4303-a8e8-cdd8e2efd0d6@suse.com>
Subject: Re: [PATCH v4 05/12] xen/spinlock: add
 rspin_[un]lock_irq[save|restore]()
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-6-jgross@suse.com>
 <319c928c-500c-4f41-8a65-3ffdeb888d63@xen.org>
In-Reply-To: <319c928c-500c-4f41-8a65-3ffdeb888d63@xen.org>

--------------5561XOhLCVmcVW5pzsZi1Wua
Content-Type: multipart/mixed; boundary="------------R5bQB0BxqjpYCEMs0I9wj6BF"

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

T24gMTIuMTIuMjMgMTQ6MDMsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDEyLzEyLzIwMjMgMDk6NDcsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBJ
bnN0ZWFkIG9mIHNwZWNpYWwgY2FzaW5nIHJzcGluX2xvY2tfaXJxc2F2ZSgpIGFuZA0KPj4g
cnNwaW5fdW5sb2NrX2lycXJlc3RvcmUoKSBmb3IgdGhlIGNvbnNvbGUgbG9jaywgYWRkIHRo
b3NlIGZ1bmN0aW9ucw0KPj4gdG8gc3BpbmxvY2sgaGFuZGxpbmcgYW5kIHVzZSB0aGVtIHdo
ZXJlIG5lZWRlZC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jv
c3NAc3VzZS5jb20+DQo+PiAtLS0NCj4+IFYyOg0KPj4gLSBuZXcgcGF0Y2gNCj4+IC0tLQ0K
Pj4gwqAgeGVuL2FyY2gveDg2L3RyYXBzLmPCoMKgwqDCoMKgwqAgfCAxNCArKysrKysrKy0t
LS0tLQ0KPj4gwqAgeGVuL2NvbW1vbi9zcGlubG9jay5jwqDCoMKgwqDCoCB8IDE2ICsrKysr
KysrKysrKysrKysNCj4+IMKgIHhlbi9kcml2ZXJzL2NoYXIvY29uc29sZS5jIHwgMTggKy0t
LS0tLS0tLS0tLS0tLS0tDQo+PiDCoCB4ZW4vaW5jbHVkZS94ZW4vY29uc29sZS5owqAgfMKg
IDUgKysrLS0NCj4+IMKgIHhlbi9pbmNsdWRlL3hlbi9zcGlubG9jay5oIHzCoCA3ICsrKysr
KysNCj4+IMKgIDUgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRp
b25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIveGVu
L2FyY2gveDg2L3RyYXBzLmMNCj4+IGluZGV4IDc3MjQzMDYxMTYuLjIxMjI3ODc3YjMgMTAw
NjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC94ODYvdHJhcHMuYw0KPj4gKysrIGIveGVuL2FyY2gv
eDg2L3RyYXBzLmMNCj4+IEBAIC02NDcsMTMgKzY0NywxNSBAQCB2b2lkIHNob3dfc3RhY2tf
b3ZlcmZsb3codW5zaWduZWQgaW50IGNwdSwgY29uc3Qgc3RydWN0IA0KPj4gY3B1X3VzZXJf
cmVncyAqcmVncykNCj4+IMKgIHZvaWQgc2hvd19leGVjdXRpb25fc3RhdGUoY29uc3Qgc3Ry
dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiDCoCB7DQo+PiDCoMKgwqDCoMKgIC8qIFBy
ZXZlbnQgaW50ZXJsZWF2aW5nIG9mIG91dHB1dC4gKi8NCj4+IC3CoMKgwqAgdW5zaWduZWQg
bG9uZyBmbGFncyA9IGNvbnNvbGVfbG9ja19yZWN1cnNpdmVfaXJxc2F2ZSgpOw0KPj4gK8Kg
wqDCoCB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPj4gKw0KPj4gK8KgwqDCoCByc3Bpbl9sb2Nr
X2lycXNhdmUoJmNvbnNvbGVfbG9jaywgZmxhZ3MpOw0KPj4gwqDCoMKgwqDCoCBzaG93X3Jl
Z2lzdGVycyhyZWdzKTsNCj4+IMKgwqDCoMKgwqAgc2hvd19jb2RlKHJlZ3MpOw0KPj4gwqDC
oMKgwqDCoCBzaG93X3N0YWNrKHJlZ3MpOw0KPj4gLcKgwqDCoCBjb25zb2xlX3VubG9ja19y
ZWN1cnNpdmVfaXJxcmVzdG9yZShmbGFncyk7DQo+PiArwqDCoMKgIHJzcGluX3VubG9ja19p
cnFyZXN0b3JlKCZjb25zb2xlX2xvY2ssIGZsYWdzKTsNCj4+IMKgIH0NCj4+IMKgIHZvaWQg
Y2ZfY2hlY2sgc2hvd19leGVjdXRpb25fc3RhdGVfbm9uY29uc3Qoc3RydWN0IGNwdV91c2Vy
X3JlZ3MgKnJlZ3MpDQo+PiBAQCAtNjYzLDcgKzY2NSw3IEBAIHZvaWQgY2ZfY2hlY2sgc2hv
d19leGVjdXRpb25fc3RhdGVfbm9uY29uc3Qoc3RydWN0IA0KPj4gY3B1X3VzZXJfcmVncyAq
cmVncykNCj4+IMKgIHZvaWQgdmNwdV9zaG93X2V4ZWN1dGlvbl9zdGF0ZShzdHJ1Y3QgdmNw
dSAqdikNCj4+IMKgIHsNCj4+IC3CoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7DQo+
PiArwqDCoMKgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+PiDCoMKgwqDCoMKgIGlmICggdGVz
dF9iaXQoX1ZQRl9kb3duLCAmdi0+cGF1c2VfZmxhZ3MpICkNCj4+IMKgwqDCoMKgwqAgew0K
Pj4gQEAgLTY5OCw3ICs3MDAsNyBAQCB2b2lkIHZjcHVfc2hvd19leGVjdXRpb25fc3RhdGUo
c3RydWN0IHZjcHUgKnYpDQo+PiDCoCAjZW5kaWYNCj4+IMKgwqDCoMKgwqAgLyogUHJldmVu
dCBpbnRlcmxlYXZpbmcgb2Ygb3V0cHV0LiAqLw0KPj4gLcKgwqDCoCBmbGFncyA9IGNvbnNv
bGVfbG9ja19yZWN1cnNpdmVfaXJxc2F2ZSgpOw0KPj4gK8KgwqDCoCByc3Bpbl9sb2NrX2ly
cXNhdmUoJmNvbnNvbGVfbG9jaywgZmxhZ3MpOw0KPj4gwqDCoMKgwqDCoCB2Y3B1X3Nob3df
cmVnaXN0ZXJzKHYpOw0KPj4gQEAgLTcwOCw3ICs3MTAsNyBAQCB2b2lkIHZjcHVfc2hvd19l
eGVjdXRpb25fc3RhdGUoc3RydWN0IHZjcHUgKnYpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC
oCAqIFN0b3AgaW50ZXJsZWF2aW5nIHByZXZlbnRpb246IFRoZSBuZWNlc3NhcnkgUDJNIGxv
b2t1cHMgaW52b2x2ZQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBsb2NraW5nLCB3aGlj
aCBoYXMgdG8gb2NjdXIgd2l0aCBJUlFzIGVuYWJsZWQuDQo+PiDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAqLw0KPj4gLcKgwqDCoMKgwqDCoMKgIGNvbnNvbGVfdW5sb2NrX3JlY3Vyc2l2ZV9p
cnFyZXN0b3JlKGZsYWdzKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCByc3Bpbl91bmxvY2tfaXJx
cmVzdG9yZSgmY29uc29sZV9sb2NrLCBmbGFncyk7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg
c2hvd19odm1fc3RhY2sodiwgJnYtPmFyY2gudXNlcl9yZWdzKTsNCj4+IMKgwqDCoMKgwqAg
fQ0KPj4gQEAgLTcxNyw3ICs3MTksNyBAQCB2b2lkIHZjcHVfc2hvd19leGVjdXRpb25fc3Rh
dGUoc3RydWN0IHZjcHUgKnYpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCBndWVzdF9r
ZXJuZWxfbW9kZSh2LCAmdi0+YXJjaC51c2VyX3JlZ3MpICkNCj4+IMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHNob3dfZ3Vlc3Rfc3RhY2sodiwgJnYtPmFyY2gudXNlcl9yZWdzKTsN
Cj4+IC3CoMKgwqDCoMKgwqDCoCBjb25zb2xlX3VubG9ja19yZWN1cnNpdmVfaXJxcmVzdG9y
ZShmbGFncyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgcnNwaW5fdW5sb2NrX2lycXJlc3RvcmUo
JmNvbnNvbGVfbG9jaywgZmxhZ3MpOw0KPj4gwqDCoMKgwqDCoCB9DQo+PiDCoCAjaWZkZWYg
Q09ORklHX0hWTQ0KPj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc3BpbmxvY2suYyBiL3hl
bi9jb21tb24vc3BpbmxvY2suYw0KPj4gaW5kZXggNDIyYTdmYjFkYi4uYzFhOWJhMTMwNCAx
MDA2NDQNCj4+IC0tLSBhL3hlbi9jb21tb24vc3BpbmxvY2suYw0KPj4gKysrIGIveGVuL2Nv
bW1vbi9zcGlubG9jay5jDQo+PiBAQCAtNDc1LDYgKzQ3NSwxNiBAQCB2b2lkIHJzcGluX2xv
Y2socnNwaW5sb2NrX3QgKmxvY2spDQo+PiDCoMKgwqDCoMKgIGxvY2stPnJlY3Vyc2VfY250
Kys7DQo+PiDCoCB9DQo+PiArdW5zaWduZWQgbG9uZyBfX3JzcGluX2xvY2tfaXJxc2F2ZShy
c3BpbmxvY2tfdCAqbG9jaykNCj4gDQo+IFRoaXMgaXMgZ29pbmcgdG8gYmUgYSBwcm9ibGVt
IHdpdGggTUlTUkEgKHNlZSBSdWxlIDIxLjEpLiBDYW4geW91IG1vdmUgdGhlIA0KPiBkb3Vi
bGUgdW5kZXJzY29yZSB0byB0aGUgZW5kPyBBbHRlcm5hdGl2ZWx5LCBJIGFtIG5vdCBzdXJl
IEkgc2VlIHRoZSBiZW5lZml0cyBvZiANCj4gdGhlIGZ1bmN0aW9uIGhlcmUuIFNvIG1heWJl
IHdlIGNhbiBmb2xkIHRoZSBjb2RlIGluIHRoZSBtYWNybyBiZWxvdz8NCg0KSSB0aGluayBJ
J2xsIGZvbGxvdyB0aGUgY29tbW9uIHBhdHRlcm4gYW5kIGp1c3QgcmVuYW1lIHRoZSBmdW5j
dGlvbiBhcyB5b3UNCnN1Z2dlc3QuDQoNCg0KSnVlcmdlbg0K
--------------R5bQB0BxqjpYCEMs0I9wj6BF
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-----

--------------R5bQB0BxqjpYCEMs0I9wj6BF--

--------------5561XOhLCVmcVW5pzsZi1Wua--

--------------p4lMFVoq5Uhj0mhRryFnJsEv
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/Ey8FAmV4a1AFAwAAAAAACgkQsN6d1ii/Ey8K
kAf6AtObs21GOtX2D8uV2dJRj08bzx6WS3P/mxCaA8GxtBDZmRPqC2KCctVsUZ1sNxil4rO+jn5I
v+VAdE8gYirUsXh/8hkB6WGrMcujgzXMJ1UDNhgOBETArPKQccwMAJvPKywYKRR0Osi/w/YqBUDL
/GKJRpqpqGtE6dYezfaMcljtqyg6qxu86EifBhZmkUZWd9oqqtXP0CgoIgoM6E4DDx5+ZY+vIhny
aIo6fot30Jqjwy5WVLZwz0hrQBJ9R/bDZZ6GvXsxd7nn2dJEabn3ZzITaRbifhfjttBFQK2RgLCJ
nwhbukdVSL+gyVAB8yAgYBPE43k8V41wLpsLj9o9sQ==
=tVbB
-----END PGP SIGNATURE-----

--------------p4lMFVoq5Uhj0mhRryFnJsEv--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 14:20:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 14:20:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653170.1019505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3cA-0005Qh-Qa; Tue, 12 Dec 2023 14:20:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653170.1019505; Tue, 12 Dec 2023 14:20:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3cA-0005QB-Nl; Tue, 12 Dec 2023 14:20:02 +0000
Received: by outflank-mailman (input) for mailman id 653170;
 Tue, 12 Dec 2023 14:20:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Qa1=HX=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rD3c8-0005AY-Rq
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 14:20:00 +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 881d6632-98f9-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 15:19:59 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c2db2ee28so60267545e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 06:19:59 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 n21-20020a05600c4f9500b0040b36ad5413sm16310403wmq.46.2023.12.12.06.19.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 06:19:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 881d6632-98f9-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702390799; x=1702995599; 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=9FAI7uzbx1boNO4jdXWmLoa3VhRnZzRtn67+r1dQPVg=;
        b=IqMNXSyQRmPNGMCPb98dvYxXuKCaixzofDCW74gT5FrIUqcWw7u4GB5vtLXKAXtlRg
         ZKom2suuDvHF658mmSPKf1OALoo0EsXGibXrIxyrMo50yetcQkK3KcV1VaoeTQc8njcA
         EsRXX2g97+EMpbb49RyM6X5efQsxyNyMTKd04=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702390799; x=1702995599;
        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=9FAI7uzbx1boNO4jdXWmLoa3VhRnZzRtn67+r1dQPVg=;
        b=ESeG1oW3i4STjqnDfXRs9j7RDoHxIzdc0cWqmlyFh0dR0WnDiXmsa1fvSdTWYrk7B7
         MZDeCXA+aob9HByaGsNEI0RoswLgMNBFgWqCWtfngJqp/5Q1ARYDLJpBo5aMyF0BTltQ
         Sa1kzS8uIc8gxxkgqUCqHvsgpnyp9yloxccvwg266BrCAKEE6v6F3XVk3zDJj1C2yghR
         NHsvcIw2CCso+M/zjTOggcVGQsNSNBkLETMpD5mE8jh58qZ5NF7ZjUEGln/Y5i1oE8Sc
         AhBmPdzHmwogXDGAhqp0CfRfPF9k4NJ0zdtA1HMe8Af9MgDbk6oDnVHEsAhwoBGvUJHb
         /ajA==
X-Gm-Message-State: AOJu0YxBArgBFbykUT0y1qMSa/qRb3cCJdp99RbBjBgdInQZ6W0Cq0OX
	8XRbYuc1OMVa1tLa1631wfIZrQ==
X-Google-Smtp-Source: AGHT+IHMf4wc+LjrEtjZfWSxgAjvqtb7DfFrjTR+mRfO3I0NS7/jpv8Zlatopp2RJfNs/iBeMkOl8A==
X-Received: by 2002:a05:600c:2b0e:b0:40c:337e:f059 with SMTP id y14-20020a05600c2b0e00b0040c337ef059mr3258621wme.65.1702390798868;
        Tue, 12 Dec 2023 06:19:58 -0800 (PST)
Date: Tue, 12 Dec 2023 14:19:57 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Vikram Garhwal <vikram.garhwal@amd.com>
Cc: Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Michael Young <m.a.young@durham.ac.uk>, qemu-devel@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
Message-ID: <8be72952-88b6-4c74-b696-fecfa8313c96@perard>
References: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
 <ZXLg_YCHM-P6drQV@redhat.com>
 <alpine.DEB.2.22.394.2312081422490.1703076@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2312081422490.1703076@ubuntu-linux-20-04-desktop>

On Fri, Dec 08, 2023 at 02:49:27PM -0800, Stefano Stabellini wrote:
> On Fri, 8 Dec 2023, Daniel P. BerrangÃ© wrote:
> > On Thu, Dec 07, 2023 at 11:12:48PM +0000, Michael Young wrote:
> > > Builds of qemu-8.2.0rc2 with xen-4.18.0 are currently failing
> > > with errors like
> > > ../hw/arm/xen_arm.c:74:5: error: â€˜GUEST_VIRTIO_MMIO_SPI_LASTâ€™ undeclared (first use in this function)
> > >    74 |    (GUEST_VIRTIO_MMIO_SPI_LAST - GUEST_VIRTIO_MMIO_SPI_FIRST)
> > >       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > > 
> > > as there is an incorrect comparision in include/hw/xen/xen_native.h
> > > which means that settings like GUEST_VIRTIO_MMIO_SPI_LAST
> > > aren't being defined for xen-4.18.0
> > 
> > The conditions in arch-arm.h for xen 4.18 show:
> > 
> > $ cppi arch-arm.h | grep -E '(#.*if)|MMIO'
> > #ifndef __XEN_PUBLIC_ARCH_ARM_H__
> > # if defined(__XEN__) || defined(__XEN_TOOLS__) || defined(__GNUC__)
> > # endif
> > # ifndef __ASSEMBLY__
> > #  if defined(__XEN__) || defined(__XEN_TOOLS__)
> > #   if defined(__GNUC__) && !defined(__STRICT_ANSI__)
> > #   endif
> > #  endif /* __XEN__ || __XEN_TOOLS__ */
> > # endif
> > # if defined(__XEN__) || defined(__XEN_TOOLS__)
> > #  define PSR_MODE_BIT  0x10U /* Set iff AArch32 */
> > /* Virtio MMIO mappings */
> > #  define GUEST_VIRTIO_MMIO_BASE   xen_mk_ullong(0x02000000)
> > #  define GUEST_VIRTIO_MMIO_SIZE   xen_mk_ullong(0x00100000)
> > #  define GUEST_VIRTIO_MMIO_SPI_FIRST   33
> > #  define GUEST_VIRTIO_MMIO_SPI_LAST    43
> > # endif
> > # ifndef __ASSEMBLY__
> > # endif
> > #endif /*  __XEN_PUBLIC_ARCH_ARM_H__ */
> > 
> > So the MMIO constants are available if __XEN__ or __XEN_TOOLS__
> > are defined. This is no different to the condition that was
> > present in Xen 4.17.
> > 
> > What you didn't mention was that the Fedora build failure is
> > seen on an x86_64 host, when building the aarch64 target QEMU,
> > and I think this is the key issue.
> 
> Hi Daniel, thanks for looking into it.
> 
> - you are building on a x86_64 host
> - the target is aarch64
> - the target is the aarch64 Xen PVH machine (xen_arm.c)
> 
> But is the resulting QEMU binary expected to be an x86 binary? Or are
> you cross compiling ARM binaries on a x86 host?
> 
> In other word, is the resulting QEMU binary expected to run on ARM or
> x86?
> 
> 
> > Are we expecting to build Xen support for non-arch native QEMU
> > system binaries or not ?
> 
> The ARM xenpvh machine (xen_arm.c) is meant to work with Xen on ARM, not
> Xen on x86.  So this is only expected to work if you are
> cross-compiling. But you can cross-compile both Xen and QEMU, and I am
> pretty sure that Yocto is able to build Xen, Xen userspace tools, and
> QEMU for Xen/ARM on an x86 host today.
> 
> 
> > The constants are defined in arch-arm.h, which is only included
> > under:
> > 
> >   #if defined(__i386__) || defined(__x86_64__)
> >   #include "arch-x86/xen.h"
> >   #elif defined(__arm__) || defined (__aarch64__)
> >   #include "arch-arm.h"
> >   #else
> >   #error "Unsupported architecture"
> >   #endif
> > 
> > 
> > When we are building on an x86_64 host, we not going to get
> > arch-arm.h included, even if we're trying to build the aarch64
> > system emulator.
> > 
> > I don't know how this is supposed to work ?
> 
> It looks like a host vs. target architecture mismatch: the #if defined
> (__aarch64__) check should pass I think.


Building qemu with something like:
    ./configure --enable-xen --cpu=x86_64
used to work. Can we fix that? It still works with v8.1.0.
At least, it works on x86, I never really try to build qemu for arm.
Notice that there's no "--target-list" on the configure command line.
I don't know if --cpu is useful here.

Looks like the first commit where the build doesn't work is
7899f6589b78 ("xen_arm: Add virtual PCIe host bridge support").

Could we get that fixed?

I'm sure distribution will appreciate to be able to build a single qemu
package for xen and other, rather than having a dedicated qemu-xen
package.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 14:36:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 14:36:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653176.1019515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD3s9-000278-75; Tue, 12 Dec 2023 14:36:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653176.1019515; Tue, 12 Dec 2023 14: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 1rD3s9-000271-4C; Tue, 12 Dec 2023 14:36:33 +0000
Received: by outflank-mailman (input) for mailman id 653176;
 Tue, 12 Dec 2023 14:36: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=28/Z=HX=linaro.org=peter.maydell@srs-se1.protection.inumbo.net>)
 id 1rD3s7-00026t-Qh
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 14:36:31 +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 d709c7f1-98fb-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 15:36:30 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-54f4b31494fso8713978a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 06:36:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d709c7f1-98fb-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1702391790; x=1702996590; 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=jfu+d5q+ATVBjZRGtGSVS6+3GtIPGgV5XHh9rm3Ob0M=;
        b=u8hvRlQg9cRpXxdKNci7OFR+QTboYfSsQ1sYvqodFkSklcTujXJ22dzTVpaqKIKYGz
         lNiPB00JI3vAO3tzgH+0TuIwDI+NhE86wurtqxg6MeytFJNz96jKpjFylkHx81LbDQA5
         ywlAA1LKEcgbztfFkP9RpGxriAtmjgVn0kgZuxsldsoxTPtr5DGB23LncHEPuJyKgVoz
         VoD9fkoJhJHjvQND/5+HrpPE8a2tMb1+Cd74HiugSoE8JHMnhL6KmuR+BCs7qsfhSW2T
         eV03273gYiJkCJ9AVQecTC0r2OGE0ODCK+Dj6APRpcm55p0rkIcrS9CgHTUyVYITTeJO
         G9rA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702391790; x=1702996590;
        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=jfu+d5q+ATVBjZRGtGSVS6+3GtIPGgV5XHh9rm3Ob0M=;
        b=Wnx2+efnuFIvsmvBq+pJ3qqXwpg2igmN7/ZjfNkAvu7opFSk8NaY4hFgEQj8ejc/z7
         TS4DmKBJsK73EM5jC4A4/Hy9JcRr3h9FhY4cJjm7by7YH6bTVE+iZR6NO73Bm8ARwB/e
         TiMIywSRqoBm2ymzx/C7Kb9hPFJayAZg99nGHKfycVo+/Med9s2kpwDs+THO2rnlQIN9
         sbbuYgzj+JM2rlIAchTnEa7gWEjefcooT/tvncDw13PWJH8n1w4LHl8JGxSjJYDNL3L8
         8rlXntq9RkGAnakGN40neRI476sqjPAojG3nQ1ZNp/SsOfLG9tri3Pgt6VWKyo/hQTng
         C5wQ==
X-Gm-Message-State: AOJu0YzOq2iKYRgRaLtOTE78utBVkM0AH9CQp7eQAmVePzmdMcRMLywb
	A41/jawSly7tdwKJ+r7tEoX/E6GYJSxuVArJGFh5Vg==
X-Google-Smtp-Source: AGHT+IGhq9e48cyEEjI8jFQhQfihQASqsNz1kSvcg0h9SepYEIBOPXeynJFJJItwP/dGfKFoACADRfw1c/HXJuBVdNo=
X-Received: by 2002:a50:d652:0:b0:551:cf4a:7956 with SMTP id
 c18-20020a50d652000000b00551cf4a7956mr393108edj.19.1702391790190; Tue, 12 Dec
 2023 06:36:30 -0800 (PST)
MIME-Version: 1.0
References: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
 <ZXLg_YCHM-P6drQV@redhat.com> <alpine.DEB.2.22.394.2312081422490.1703076@ubuntu-linux-20-04-desktop>
 <8be72952-88b6-4c74-b696-fecfa8313c96@perard>
In-Reply-To: <8be72952-88b6-4c74-b696-fecfa8313c96@perard>
From: Peter Maydell <peter.maydell@linaro.org>
Date: Tue, 12 Dec 2023 14:36:19 +0000
Message-ID: <CAFEAcA_1cKWJbjbhnX3A0kjzf_qp7A2rVqPZFHo21dVLb9DutQ@mail.gmail.com>
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Vikram Garhwal <vikram.garhwal@amd.com>, 
	=?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	Michael Young <m.a.young@durham.ac.uk>, qemu-devel@nongnu.org, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Tue, 12 Dec 2023 at 14:20, Anthony PERARD <anthony.perard@citrix.com> wrote:
> Building qemu with something like:
>     ./configure --enable-xen --cpu=x86_64
> used to work. Can we fix that? It still works with v8.1.0.
> At least, it works on x86, I never really try to build qemu for arm.
> Notice that there's no "--target-list" on the configure command line.
> I don't know if --cpu is useful here.

You should almost never need to specify --cpu : configure
will work out your host CPU architecture by looking at what
the host compiler defines.

thanks
-- PMM


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:14:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653181.1019525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4Sx-00033V-1A; Tue, 12 Dec 2023 15:14:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653181.1019525; Tue, 12 Dec 2023 15: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 1rD4Sw-00033O-Tl; Tue, 12 Dec 2023 15:14:34 +0000
Received: by outflank-mailman (input) for mailman id 653181;
 Tue, 12 Dec 2023 15:14: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 1rD4Sv-00033E-BQ; Tue, 12 Dec 2023 15:14: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 1rD4Sv-00016a-8e; Tue, 12 Dec 2023 15:14: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 1rD4Su-0002H0-T9; Tue, 12 Dec 2023 15:14:32 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rD4Su-0007aJ-Sh; Tue, 12 Dec 2023 15:14: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=sjHoqKx3LhXiNKC2QvJ8xjsIhSdGBbj7M32Rakp2K0w=; b=axq2TANx0Dz/z9rtLjJvlGU6HF
	jEJUoBq2FhZ/RaJXjP5nCJKsetyC7pSvvPpR+MWtq3JqruXFc9BVbczyaGS+vBzDNe3xzTmun71+f
	KR5o1VRVcasDlGhs3lMkKd+rdsoqaVJFZh3qMbALx7DDN0wAIQvAH6fPjeCNyqB+Cvmg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184099-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184099: tolerable FAIL - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt-raw:guest-start:fail:heisenbug
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-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-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-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=ff8c5c523f128bf5d02473e62d44af629d908fa3
X-Osstest-Versions-That:
    libvirt=1a2f33cb593e6bf4913d97143bf76d5e7f866912
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 15:14:32 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-raw 13 guest-start         fail pass in 184104-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail in 184104 like 184069
 test-armhf-armhf-libvirt-raw 14 migrate-support-check fail in 184104 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184069
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184069
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 libvirt              ff8c5c523f128bf5d02473e62d44af629d908fa3
baseline version:
 libvirt              1a2f33cb593e6bf4913d97143bf76d5e7f866912

Last test of basis   184069  2023-12-10 04:18:48 Z    2 days
Testing same since   184099  2023-12-12 04:18:49 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  GÃ¶ran Uddeborg <goeran@uddeborg.se>

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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   1a2f33cb59..ff8c5c523f  ff8c5c523f128bf5d02473e62d44af629d908fa3 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:36:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:36:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653188.1019535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4nu-0008NK-P2; Tue, 12 Dec 2023 15:36:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653188.1019535; Tue, 12 Dec 2023 15:36:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4nu-0008ND-ME; Tue, 12 Dec 2023 15:36:14 +0000
Received: by outflank-mailman (input) for mailman id 653188;
 Tue, 12 Dec 2023 15:36: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=fKsX=HX=epam.com=prvs=6710380681=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1rD4nt-0008N7-5N
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:36:13 +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 2c344f3d-9904-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 16:36:10 +0100 (CET)
Received: from pps.filterd (m0174683.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BCFLTgZ003069; Tue, 12 Dec 2023 15:35:55 GMT
Received: from eur05-db8-obe.outbound.protection.outlook.com
 (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uxchra9sw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 12 Dec 2023 15:35:55 +0000 (GMT)
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB7621.eurprd03.prod.outlook.com (2603:10a6:20b:345::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Tue, 12 Dec
 2023 15:35:51 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7068.033; Tue, 12 Dec 2023
 15:35:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c344f3d-9904-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MOxHIsYXo+eYAPBFegm+siggxyMnNItejznFgP8q/LTccAT/7pl9oBhHpuIu/P9G8hgTloEx71AkwjDUf2DmWXpVdSbhimno1zVzR9FMjEsm2VF/7P+7pDV9UMms4DV6ryRvSzchNQfs3xhMoFydkY80zq9VZvZvEDH2r2R9qJlaVHgjq15o6I52TaEHMSzLmNXq7ELcfhJDXJ2Pvsb9U3c5rXmKZ7TnCE6AXG5HvoSXJVVBWJdWaihMSEnsTknr+MtiAKa/vBCfbErC1gmfq2X5YKiMbZefpsRXKPvz9HoAGeMpeJmvj3Wl1CHUQAiaP1pyRdnKpEUUxCiqn+m9PQ==
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=iciyFLJqabiF1FLw614bm1jE+2WY8RjOzhNlfSxTfiM=;
 b=YBuIs3ltrUrr+1/cRZEg8xGmn7Ysa4sRfaiZ1sUjPZM/eA94RazG49On1rzBy3OkcTy8MuqKut84OYwXzJESwXS1SxneI8CSFPd/1YT89W5Zp61j8uhUqDQz6+c9ENUBsSkFow5aTmd9k+ETIJy0lyKCOdYYR/v8gp/foxpH+0iSC1sSzgS8+RKXEgArR1pAfcaG8YQSJ3iyn6pO9KnhV328Uu/fdTJ70OEg4G92nTBrsvDgM1XNJTXe3/qwfv1gsToLZcqrAkzR9v8f/3CoFNnUjDVjRexSwxlqm9vgSENDuAublvcYDMJu85spw+sWLZGBe+/PWO4mGTAcgrlVCQ==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iciyFLJqabiF1FLw614bm1jE+2WY8RjOzhNlfSxTfiM=;
 b=nQR6PAUyCenAJ1OX3xu+09P9jafAwrHbCcrOZpeE71HZ7Uy1x8ECpzEG8JtlSnZK/BNfBxEI8/V96f4UMxWtfNaWjXbDgAqiNYjJTTIXtCU6NkpougVQGH/aOkjXyyw8ZvZdIS188BcWEfEqMrIVq9vuxVZbIl8VZCNetlzveD1bEDXoDsaYC6aAMo7fw9X0SCD6YKsXkG5eyGy48NWKe//91uTmxQZxXXe/40ZBaL5zeV5ED2FnpGXDG2eZtF+yxISl+XApbGKmWI17/AuWctuHony50P2iofGNKig80bo+gqkWNXDEbIQBMweTqHnewIZ74mUlKYgH+a0y1W8fWQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Anthony PERARD <anthony.perard@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Vikram Garhwal <vikram.garhwal@amd.com>,
        =?utf-8?B?RGFuaWVsIFAuIEJlcnJhbmfDqQ==?= <berrange@redhat.com>,
        Michael Young
	<m.a.young@durham.ac.uk>,
        "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
Thread-Topic: [PATCH] fix qemu build with xen-4.18.0
Thread-Index: AQHaKijL3WADPEA59ECvZnvE/VRP97CluD+AgAAUgoA=
Date: Tue, 12 Dec 2023 15:35:50 +0000
Message-ID: <87wmtj77sl.fsf@epam.com>
References: 
 <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
 <ZXLg_YCHM-P6drQV@redhat.com>
 <alpine.DEB.2.22.394.2312081422490.1703076@ubuntu-linux-20-04-desktop>
 <8be72952-88b6-4c74-b696-fecfa8313c96@perard>
In-Reply-To: <8be72952-88b6-4c74-b696-fecfa8313c96@perard>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: mu4e 1.10.7; emacs 29.1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB7621:EE_
x-ms-office365-filtering-correlation-id: 23e3ce4f-95be-47f0-3da1-08dbfb280557
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 z1y/0OspmCIb02sZ+S2vbVjsriYyPgC+n2cEgi8fuL5IxwFGleJ9wncOqWpCGM//aJjugROge52AlOJY9XLt/xK5rJl4Oa06YhHe9J/xUBI0Vr4EwgZkz0fDLbXXhLgg0yajiPlhRrehxA/Fy5roV8+9E2mCUYfMz3KLOMDWxrY0KVgR1IjSJe98WFwE6yHlDraVY36cWg0t6PCURC9a9gRlIot/DTCu0t/MCBHgQsHFhl2nBjAFtwzu7GJl74MxSzCGpFI5k8LWqoJpc50tQ/e1HG2WNdVQDOTd9PVbJqlJypofUsdN1yjwiqQPFgLb0XtoT5hKpEiCJu/E9lbK7Hg+MTtvjf+g0fY5mblmPVuIPpExhQVBmCxi7L+7KjQXYrCAo4F6AkIihhYqyX3O7wYAblpf5d0XiQIq35ewgoZBTuLLv1UBLIX5oCcC1FSR4nmxP0PuxYO401PtmFoE7p7uDTIZjTzaf7XSVoqdW2DAkcJVRMF1wXui6ooqwU1A3mJ7AohxCCNtK/eawM8EukF4p3o3QuY4A6IpOcXJrOMlZHyvjSUYyCqYiEnJyYH1F+IwZh22cvuuR09rpoc7UTR9YA+uVpH55Bgv5oYB21I9fN8IZyGQLRVtR9kxC97H
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(136003)(346002)(376002)(39860400002)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(38070700009)(66946007)(76116006)(66446008)(66476007)(66556008)(6916009)(64756008)(54906003)(91956017)(36756003)(86362001)(38100700002)(83380400001)(6512007)(6506007)(2616005)(55236004)(6486002)(2906002)(316002)(122000001)(71200400001)(478600001)(5660300002)(8936002)(4326008)(8676002)(41300700001)(26005);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?d3JKTy9FMEZsOVFTRUExUTRteEZVSm83b2xBTTdRS2JVaWtmVWxLaFdzaUpW?=
 =?utf-8?B?a2ZINnQvUnkwdzViRUFDOTJCdlpzUDRXWHlsVXRUTmMwVENBRVE0bHJTYjI5?=
 =?utf-8?B?bEhUeW5hUVF0Q1FxdzAwa3ZtaGh0S04ya2lVb2U5ZWZoV1Q2VHJNMU9WK1p3?=
 =?utf-8?B?aGJUU21wL2J5Zktranl6b3Z2MW51L2xvb1gvZFhqckplWnBqS0RTVUVSQnJG?=
 =?utf-8?B?Y0EzSFh1UVZiSHpSRWJqUDBPQnpKWmZpeFVYb3hBeXNvRGxRc1V2MzRvUllW?=
 =?utf-8?B?cDFqZnlZenk4MnVhWVNFV3B1cEg5WWs4eXplQVZjNGdZZ3JIaGdscnZvcStP?=
 =?utf-8?B?R25KNkNJd1ZSQWY2MEQyQSs5cU44VUtlWWZkV2JrcysxSFZhZUxEZHptaTg1?=
 =?utf-8?B?RkJLUHhrMWp6VXN1VmMvY0hlZVZQbllCa1VvazFIeFJUc3RqK1Vmd1ZyVldL?=
 =?utf-8?B?cHR1L29QRnl5NmYxZnYzT0I3RHhLNUZGc052TTVrekpJbHpTQUNicndUem9H?=
 =?utf-8?B?dXo3eUVrRzNXZWxZL2Nvcm1wV2NtYmxTNEloRkhJSVZDUFk1SWcyOWdHbHNl?=
 =?utf-8?B?UlNIWUFRV2xXZ0JBU284M29rUEVHcGs5Q1dvUzFVL0hZVFNpOGdVUElQTnQy?=
 =?utf-8?B?akxLd0tMaGVYemlUekE3UWtpbndxRDF2NXk0blNRU3loT0hnWGRGMmlycUc2?=
 =?utf-8?B?ZzZXS1JQejlJZGdaNFpGZTRIayttalBzamJ0SSs5QkE0akRkZkExbCtPUHlW?=
 =?utf-8?B?WEQvdE1YVitSQTZ2YUxGdVZSUWFRTzU5WjRFQnBzNXdCd1JVZVZ0QnM4SUhT?=
 =?utf-8?B?WFNhZjdhZUJmR2tyYWY3bGJ1UDNrNUlkYkNmaDk0RnFDK3lTVnVrTk1RMncw?=
 =?utf-8?B?dmNJMG1xWHZMQmJUd1NDN1FOOEtQNElMMkJmb0UvU2YxR21lUUh5TXZaRmJZ?=
 =?utf-8?B?ZDhLeUtWUC8xakNEU3N4bFpTUlBjR3NSZEVTRVEzNWp2WEM1cFFOUVFNU29H?=
 =?utf-8?B?YzFuaFRubVFabFFTYmdyM00wSDdObEJrVVlEUnNRRWVOajJPekRjSy9GYmZq?=
 =?utf-8?B?NjhTR1piazViZEJDVXVyY2htWEpxcyswRSt5RllaSGVOYlFIR2piMlBORVBL?=
 =?utf-8?B?ZEt4RmtJM3p3MmVmS0NBVWIxZHg5NEE2MUZXSzZqVklhcWE5WWp6eTlQc2NB?=
 =?utf-8?B?MTZTNGtqeEhycTR3blN5RWpmNG5QU3g0OWxDaTN5MklKWXAvT01sZDZCbzdy?=
 =?utf-8?B?N3VXdVhSZ0ZuY2ZTNUtOK2UzUEhOVGQyV0huUTJQaFJyVmY3WVJFaVpsR05M?=
 =?utf-8?B?WENOUCtVVGZGNG5aZjBpaisyV1hjL3N2eFRrcXFzeWxnYVF1YjVuVndBVHRP?=
 =?utf-8?B?WTNJdFNnUGo2aXdUOFFJc25MT2hkQ20yTWo0ckxkY2pVNXB5NlA0bWhQNDdZ?=
 =?utf-8?B?TWEzampENmNPVHcydHlHS0kwMGZPOGN3R0xTeW9lczg3WHBwZlA2aEJ3bXI1?=
 =?utf-8?B?aW5rNUhjRkZGTTA1Nkl6WnRDUERaRlBSWDNqMFNuNGJuelcxbmdFa1VwbkYv?=
 =?utf-8?B?NFlnUFQvMXk0UWxCaFY3aElwOUtmd1J2R0o2ejVaeHArZ1B2VG1tMkpTSVpT?=
 =?utf-8?B?Q2xDQkpDNkI5aHBqZjhxMXpwekI4L2YzQll1M1U0dVZtZUVCZGtJZmZpc2N4?=
 =?utf-8?B?MDZ6OVhzMkEvUkY2a0tic0pBUUxndW9TbVFkaTJpTnlPTnMzUVZjQjNhdDdJ?=
 =?utf-8?B?cnpVVzdvZFBwY1hKcjlrbDhSNTlVTEJtQzR6OTlPSHFFRFRGYnlrOHp1SGJZ?=
 =?utf-8?B?QnBZRUZzK3l0Y1FkT1ZjU1ZHc3JsRXM5UkhlOSs1UUh1WGpHNHRtd3FJMnlR?=
 =?utf-8?B?L0FweG4yblAybDhLMzVUWU9acVJ5aThjaVhMajkrOGMxNlgvZHFIVEUvVVFI?=
 =?utf-8?B?cGFUU2JudUJyK2VkK2QzMWNpLy8raUUrQWNTVW5JbVl0NnBvQ2ZQUE5BQ0Nk?=
 =?utf-8?B?M0lWVE0wc1BrdkdIM3h6ZTRQdTNmNEpBeXM5SzFrUVhZZE9VbjRsUHJ0SzlX?=
 =?utf-8?B?TlRDY2VGMjhjVGY5Rk5CdUExdjhGWG5Ha2daNnBWVXdvNFNybjVYdVd1Y1VE?=
 =?utf-8?B?U1FLTTFKNWJPNGs0RUR0SjFIY1dSb0hBU2l6U29IMjErUm80VkZranYyN2R0?=
 =?utf-8?B?bWc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AE0A9AC252D260428FE10B9BD1A33579@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 23e3ce4f-95be-47f0-3da1-08dbfb280557
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2023 15:35:50.9834
 (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: oSOfox1g+kPX9r7HF9xQVX8eae5vU3psVWvARWsWt7NoOWqoAr/r62Cvi/D4w9Hq0JnIpbPcKFPkFKuW2+aTfKqhKq+FwX07tclZNrbLkHo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7621
X-Proofpoint-GUID: 9fAWqwEJVuVnXKjBO1sldjQodDIMzdjb
X-Proofpoint-ORIG-GUID: 9fAWqwEJVuVnXKjBO1sldjQodDIMzdjb
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1011 impostorscore=0
 bulkscore=0 phishscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0
 suspectscore=0 mlxlogscore=963 spamscore=0 mlxscore=0 priorityscore=1501
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000
 definitions=main-2312120119

SGkgQW50aG9ueQ0KDQpBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4g
d3JpdGVzOg0KDQo+IE9uIEZyaSwgRGVjIDA4LCAyMDIzIGF0IDAyOjQ5OjI3UE0gLTA4MDAsIFN0
ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4+IE9uIEZyaSwgOCBEZWMgMjAyMywgRGFuaWVsIFAu
IEJlcnJhbmfDqSB3cm90ZToNCj4+ID4gT24gVGh1LCBEZWMgMDcsIDIwMjMgYXQgMTE6MTI6NDhQ
TSArMDAwMCwgTWljaGFlbCBZb3VuZyB3cm90ZToNCj4+ID4gPiBCdWlsZHMgb2YgcWVtdS04LjIu
MHJjMiB3aXRoIHhlbi00LjE4LjAgYXJlIGN1cnJlbnRseSBmYWlsaW5nDQo+PiA+ID4gd2l0aCBl
cnJvcnMgbGlrZQ0KPj4gPiA+IC4uL2h3L2FybS94ZW5fYXJtLmM6NzQ6NTogZXJyb3I6IOKAmEdV
RVNUX1ZJUlRJT19NTUlPX1NQSV9MQVNU4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz
IGZ1bmN0aW9uKQ0KPj4gPiA+ICAgIDc0IHwgICAgKEdVRVNUX1ZJUlRJT19NTUlPX1NQSV9MQVNU
IC0gR1VFU1RfVklSVElPX01NSU9fU1BJX0ZJUlNUKQ0KPj4gPiA+ICAgICAgIHwgICAgIF5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+PiA+ID4gDQo+PiA+ID4gYXMgdGhlcmUgaXMgYW4gaW5j
b3JyZWN0IGNvbXBhcmlzaW9uIGluIGluY2x1ZGUvaHcveGVuL3hlbl9uYXRpdmUuaA0KPj4gPiA+
IHdoaWNoIG1lYW5zIHRoYXQgc2V0dGluZ3MgbGlrZSBHVUVTVF9WSVJUSU9fTU1JT19TUElfTEFT
VA0KPj4gPiA+IGFyZW4ndCBiZWluZyBkZWZpbmVkIGZvciB4ZW4tNC4xOC4wDQo+PiA+IA0KPj4g
PiBUaGUgY29uZGl0aW9ucyBpbiBhcmNoLWFybS5oIGZvciB4ZW4gNC4xOCBzaG93Og0KPj4gPiAN
Cj4+ID4gJCBjcHBpIGFyY2gtYXJtLmggfCBncmVwIC1FICcoIy4qaWYpfE1NSU8nDQo+PiA+ICNp
Zm5kZWYgX19YRU5fUFVCTElDX0FSQ0hfQVJNX0hfXw0KPj4gPiAjIGlmIGRlZmluZWQoX19YRU5f
XykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSB8fCBkZWZpbmVkKF9fR05VQ19fKQ0KPj4gPiAj
IGVuZGlmDQo+PiA+ICMgaWZuZGVmIF9fQVNTRU1CTFlfXw0KPj4gPiAjICBpZiBkZWZpbmVkKF9f
WEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykNCj4+ID4gIyAgIGlmIGRlZmluZWQoX19H
TlVDX18pICYmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykNCj4+ID4gIyAgIGVuZGlmDQo+PiA+
ICMgIGVuZGlmIC8qIF9fWEVOX18gfHwgX19YRU5fVE9PTFNfXyAqLw0KPj4gPiAjIGVuZGlmDQo+
PiA+ICMgaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pDQo+PiA+
ICMgIGRlZmluZSBQU1JfTU9ERV9CSVQgIDB4MTBVIC8qIFNldCBpZmYgQUFyY2gzMiAqLw0KPj4g
PiAvKiBWaXJ0aW8gTU1JTyBtYXBwaW5ncyAqLw0KPj4gPiAjICBkZWZpbmUgR1VFU1RfVklSVElP
X01NSU9fQkFTRSAgIHhlbl9ta191bGxvbmcoMHgwMjAwMDAwMCkNCj4+ID4gIyAgZGVmaW5lIEdV
RVNUX1ZJUlRJT19NTUlPX1NJWkUgICB4ZW5fbWtfdWxsb25nKDB4MDAxMDAwMDApDQo+PiA+ICMg
IGRlZmluZSBHVUVTVF9WSVJUSU9fTU1JT19TUElfRklSU1QgICAzMw0KPj4gPiAjICBkZWZpbmUg
R1VFU1RfVklSVElPX01NSU9fU1BJX0xBU1QgICAgNDMNCj4+ID4gIyBlbmRpZg0KPj4gPiAjIGlm
bmRlZiBfX0FTU0VNQkxZX18NCj4+ID4gIyBlbmRpZg0KPj4gPiAjZW5kaWYgLyogIF9fWEVOX1BV
QkxJQ19BUkNIX0FSTV9IX18gKi8NCj4+ID4gDQo+PiA+IFNvIHRoZSBNTUlPIGNvbnN0YW50cyBh
cmUgYXZhaWxhYmxlIGlmIF9fWEVOX18gb3IgX19YRU5fVE9PTFNfXw0KPj4gPiBhcmUgZGVmaW5l
ZC4gVGhpcyBpcyBubyBkaWZmZXJlbnQgdG8gdGhlIGNvbmRpdGlvbiB0aGF0IHdhcw0KPj4gPiBw
cmVzZW50IGluIFhlbiA0LjE3Lg0KPj4gPiANCj4+ID4gV2hhdCB5b3UgZGlkbid0IG1lbnRpb24g
d2FzIHRoYXQgdGhlIEZlZG9yYSBidWlsZCBmYWlsdXJlIGlzDQo+PiA+IHNlZW4gb24gYW4geDg2
XzY0IGhvc3QsIHdoZW4gYnVpbGRpbmcgdGhlIGFhcmNoNjQgdGFyZ2V0IFFFTVUsDQo+PiA+IGFu
ZCBJIHRoaW5rIHRoaXMgaXMgdGhlIGtleSBpc3N1ZS4NCj4+IA0KPj4gSGkgRGFuaWVsLCB0aGFu
a3MgZm9yIGxvb2tpbmcgaW50byBpdC4NCj4+IA0KPj4gLSB5b3UgYXJlIGJ1aWxkaW5nIG9uIGEg
eDg2XzY0IGhvc3QNCj4+IC0gdGhlIHRhcmdldCBpcyBhYXJjaDY0DQo+PiAtIHRoZSB0YXJnZXQg
aXMgdGhlIGFhcmNoNjQgWGVuIFBWSCBtYWNoaW5lICh4ZW5fYXJtLmMpDQo+PiANCj4+IEJ1dCBp
cyB0aGUgcmVzdWx0aW5nIFFFTVUgYmluYXJ5IGV4cGVjdGVkIHRvIGJlIGFuIHg4NiBiaW5hcnk/
IE9yIGFyZQ0KPj4geW91IGNyb3NzIGNvbXBpbGluZyBBUk0gYmluYXJpZXMgb24gYSB4ODYgaG9z
dD8NCj4+IA0KPj4gSW4gb3RoZXIgd29yZCwgaXMgdGhlIHJlc3VsdGluZyBRRU1VIGJpbmFyeSBl
eHBlY3RlZCB0byBydW4gb24gQVJNIG9yDQo+PiB4ODY/DQo+PiANCj4+IA0KPj4gPiBBcmUgd2Ug
ZXhwZWN0aW5nIHRvIGJ1aWxkIFhlbiBzdXBwb3J0IGZvciBub24tYXJjaCBuYXRpdmUgUUVNVQ0K
Pj4gPiBzeXN0ZW0gYmluYXJpZXMgb3Igbm90ID8NCj4+IA0KPj4gVGhlIEFSTSB4ZW5wdmggbWFj
aGluZSAoeGVuX2FybS5jKSBpcyBtZWFudCB0byB3b3JrIHdpdGggWGVuIG9uIEFSTSwgbm90DQo+
PiBYZW4gb24geDg2LiAgU28gdGhpcyBpcyBvbmx5IGV4cGVjdGVkIHRvIHdvcmsgaWYgeW91IGFy
ZQ0KPj4gY3Jvc3MtY29tcGlsaW5nLiBCdXQgeW91IGNhbiBjcm9zcy1jb21waWxlIGJvdGggWGVu
IGFuZCBRRU1VLCBhbmQgSSBhbQ0KPj4gcHJldHR5IHN1cmUgdGhhdCBZb2N0byBpcyBhYmxlIHRv
IGJ1aWxkIFhlbiwgWGVuIHVzZXJzcGFjZSB0b29scywgYW5kDQo+PiBRRU1VIGZvciBYZW4vQVJN
IG9uIGFuIHg4NiBob3N0IHRvZGF5Lg0KPj4gDQo+PiANCj4+ID4gVGhlIGNvbnN0YW50cyBhcmUg
ZGVmaW5lZCBpbiBhcmNoLWFybS5oLCB3aGljaCBpcyBvbmx5IGluY2x1ZGVkDQo+PiA+IHVuZGVy
Og0KPj4gPiANCj4+ID4gICAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82
NF9fKQ0KPj4gPiAgICNpbmNsdWRlICJhcmNoLXg4Ni94ZW4uaCINCj4+ID4gICAjZWxpZiBkZWZp
bmVkKF9fYXJtX18pIHx8IGRlZmluZWQgKF9fYWFyY2g2NF9fKQ0KPj4gPiAgICNpbmNsdWRlICJh
cmNoLWFybS5oIg0KPj4gPiAgICNlbHNlDQo+PiA+ICAgI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNo
aXRlY3R1cmUiDQo+PiA+ICAgI2VuZGlmDQo+PiA+IA0KPj4gPiANCj4+ID4gV2hlbiB3ZSBhcmUg
YnVpbGRpbmcgb24gYW4geDg2XzY0IGhvc3QsIHdlIG5vdCBnb2luZyB0byBnZXQNCj4+ID4gYXJj
aC1hcm0uaCBpbmNsdWRlZCwgZXZlbiBpZiB3ZSdyZSB0cnlpbmcgdG8gYnVpbGQgdGhlIGFhcmNo
NjQNCj4+ID4gc3lzdGVtIGVtdWxhdG9yLg0KPj4gPiANCj4+ID4gSSBkb24ndCBrbm93IGhvdyB0
aGlzIGlzIHN1cHBvc2VkIHRvIHdvcmsgPw0KPj4gDQo+PiBJdCBsb29rcyBsaWtlIGEgaG9zdCB2
cy4gdGFyZ2V0IGFyY2hpdGVjdHVyZSBtaXNtYXRjaDogdGhlICNpZiBkZWZpbmVkDQo+PiAoX19h
YXJjaDY0X18pIGNoZWNrIHNob3VsZCBwYXNzIEkgdGhpbmsuDQo+DQo+DQo+IEJ1aWxkaW5nIHFl
bXUgd2l0aCBzb21ldGhpbmcgbGlrZToNCj4gICAgIC4vY29uZmlndXJlIC0tZW5hYmxlLXhlbiAt
LWNwdT14ODZfNjQNCj4gdXNlZCB0byB3b3JrLiBDYW4gd2UgZml4IHRoYXQ/IEl0IHN0aWxsIHdv
cmtzIHdpdGggdjguMS4wLg0KPiBBdCBsZWFzdCwgaXQgd29ya3Mgb24geDg2LCBJIG5ldmVyIHJl
YWxseSB0cnkgdG8gYnVpbGQgcWVtdSBmb3IgYXJtLg0KPiBOb3RpY2UgdGhhdCB0aGVyZSdzIG5v
ICItLXRhcmdldC1saXN0IiBvbiB0aGUgY29uZmlndXJlIGNvbW1hbmQgbGluZS4NCj4gSSBkb24n
dCBrbm93IGlmIC0tY3B1IGlzIHVzZWZ1bCBoZXJlLg0KPg0KPiBMb29rcyBsaWtlIHRoZSBmaXJz
dCBjb21taXQgd2hlcmUgdGhlIGJ1aWxkIGRvZXNuJ3Qgd29yayBpcw0KPiA3ODk5ZjY1ODliNzgg
KCJ4ZW5fYXJtOiBBZGQgdmlydHVhbCBQQ0llIGhvc3QgYnJpZGdlIHN1cHBvcnQiKS4NCg0KSSBh
bSBjdXJyZW50bHkgdHJ5aW5nIHRvIHVwc3RyZWFtIHRoaXMgcGF0Y2guIEl0IGlzIGluIHRoZSBR
RU1VIG1haWxpbmcNCmxpc3QgYnV0IGl0IHdhcyBuZXZlciBhY2NlcHRlZC4gSXQgaXMgbm90IHJl
dmlld2VkIGluIGZhY3QuIEknbGwgdGFrZSBhDQpsb29rIGF0IGl0LCBidXQgSSBkb24ndCB1bmRl
cnN0YW5kIGhvdyBkaWQgeW91IGdldCBpbiB0aGUgZmlyc3QgcGxhY2UuDQoNCi0tIA0KV0JSLCBW
b2xvZHlteXI=


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:38:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653195.1019585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4ph-0001Uv-L7; Tue, 12 Dec 2023 15:38:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653195.1019585; Tue, 12 Dec 2023 15:38:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4ph-0001Uc-Dj; Tue, 12 Dec 2023 15:38:05 +0000
Received: by outflank-mailman (input) for mailman id 653195;
 Tue, 12 Dec 2023 15:38:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0UEi=HX=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rD4pf-0000ZS-Kg
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:38:03 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e8d04b2-9904-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 16:38:01 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-82-60-45-193.retail.telecomitalia.it [82.60.45.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 6E0734EE0C92;
 Tue, 12 Dec 2023 16:38:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e8d04b2-9904-11ee-9b0f-b553b5be7939
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 3/4] xen/drivers: address violations of MISRA C:2012 Rule 8.2
Date: Tue, 12 Dec 2023 16:37:41 +0100
Message-Id: <6cd192af722b99323021c6f1561c5cf0178a1aaf.1702394721.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702394721.git.federico.serafini@bugseng.com>
References: <cover.1702394721.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/drivers/char/ehci-dbgp.c | 4 ++--
 xen/drivers/video/vga.c      | 2 +-
 xen/include/xen/video.h      | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c
index 72e1beabbb..0f5b41899e 100644
--- a/xen/drivers/char/ehci-dbgp.c
+++ b/xen/drivers/char/ehci-dbgp.c
@@ -341,7 +341,7 @@ struct ehci_dbgp {
     struct ehci_caps __iomem *ehci_caps;
 };
 
-static int ehci_dbgp_external_startup(struct ehci_dbgp *);
+static int ehci_dbgp_external_startup(struct ehci_dbgp *dbgp);
 
 static void ehci_dbgp_status(struct ehci_dbgp *dbgp, const char *str)
 {
@@ -997,7 +997,7 @@ err:
     return -ENODEV;
 }
 
-typedef void (*set_debug_port_t)(struct ehci_dbgp *, unsigned int);
+typedef void (*set_debug_port_t)(struct ehci_dbgp *dbgp, unsigned int port);
 
 static void cf_check default_set_debug_port(
     struct ehci_dbgp *dbgp, unsigned int port)
diff --git a/xen/drivers/video/vga.c b/xen/drivers/video/vga.c
index 18b590cdf0..b4d0183261 100644
--- a/xen/drivers/video/vga.c
+++ b/xen/drivers/video/vga.c
@@ -21,7 +21,7 @@ static unsigned char *video;
 
 static void cf_check vga_text_puts(const char *s, size_t nr);
 static void cf_check vga_noop_puts(const char *s, size_t nr) {}
-void (*video_puts)(const char *, size_t nr) = vga_noop_puts;
+void (*video_puts)(const char *s, size_t nr) = vga_noop_puts;
 
 /*
  * 'vga=<mode-specifier>[,keep]' where <mode-specifier> is one of:
diff --git a/xen/include/xen/video.h b/xen/include/xen/video.h
index 96f8a50132..1ee1aa46b1 100644
--- a/xen/include/xen/video.h
+++ b/xen/include/xen/video.h
@@ -13,7 +13,7 @@
 
 #ifdef CONFIG_VIDEO
 void video_init(void);
-extern void (*video_puts)(const char *, size_t nr);
+extern void (*video_puts)(const char *s, size_t nr);
 void video_endboot(void);
 #else
 #define video_init()    ((void)0)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:38:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653194.1019564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4pg-0000sW-9i; Tue, 12 Dec 2023 15:38:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653194.1019564; Tue, 12 Dec 2023 15:38:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4pg-0000rm-38; Tue, 12 Dec 2023 15:38:04 +0000
Received: by outflank-mailman (input) for mailman id 653194;
 Tue, 12 Dec 2023 15:38:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0UEi=HX=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rD4pe-0000ZS-KY
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:38:02 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e0817e9-9904-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 16:38:00 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-82-60-45-193.retail.telecomitalia.it [82.60.45.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 891544EE0C8D;
 Tue, 12 Dec 2023 16:37:59 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e0817e9-9904-11ee-9b0f-b553b5be7939
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 1/4] xen/compat: address violations of MISRA C:2012 Rule 8.2
Date: Tue, 12 Dec 2023 16:37:39 +0100
Message-Id: <6a3bd7a3e4fa83c2c176894f756bd2e24c0f3ee0.1702394721.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702394721.git.federico.serafini@bugseng.com>
References: <cover.1702394721.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/include/xen/compat.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/include/xen/compat.h b/xen/include/xen/compat.h
index 41a5d61eef..7ec9d6567e 100644
--- a/xen/include/xen/compat.h
+++ b/xen/include/xen/compat.h
@@ -232,9 +232,10 @@ int hypercall_xlat_continuation(unsigned int *id, unsigned int nr,
 
 /* In-place translation functons: */
 struct start_info;
-void xlat_start_info(struct start_info *, enum XLAT_start_info_console);
+void xlat_start_info(struct start_info *native,
+                     enum XLAT_start_info_console console);
 struct vcpu_runstate_info;
-void xlat_vcpu_runstate_info(struct vcpu_runstate_info *);
+void xlat_vcpu_runstate_info(struct vcpu_runstate_info *native);
 
 #else
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:38:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653193.1019558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4pf-0000j8-Up; Tue, 12 Dec 2023 15:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653193.1019558; Tue, 12 Dec 2023 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 1rD4pf-0000i1-O8; Tue, 12 Dec 2023 15:38:03 +0000
Received: by outflank-mailman (input) for mailman id 653193;
 Tue, 12 Dec 2023 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=0UEi=HX=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rD4pe-0000ZM-4R
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:38:02 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ecebe66-9904-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 16:38:01 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-82-60-45-193.retail.telecomitalia.it [82.60.45.193])
 by support.bugseng.com (Postfix) with ESMTPSA id DD1994EE0C96;
 Tue, 12 Dec 2023 16:38:00 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ecebe66-9904-11ee-98e8-6d05b1d4d9a1
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>,
	Paul Durrant <paul@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH 4/4] xen/iommu: address leftover violation of MISRA C:2012 Rule 8.2
Date: Tue, 12 Dec 2023 16:37:42 +0100
Message-Id: <443dc3828fd6cdfb97d2e9d0c9ec93bb23228d5b.1702394721.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702394721.git.federico.serafini@bugseng.com>
References: <cover.1702394721.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter name. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/include/xen/iommu.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 69d572543c..f53d045e2c 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -296,7 +296,7 @@ struct iommu_ops {
                                  uint64_t rte);
     unsigned int (*read_apic_from_ire)(unsigned int apic, unsigned int reg);
 
-    int (*setup_hpet_msi)(struct msi_desc *);
+    int (*setup_hpet_msi)(struct msi_desc *msi_desc);
 
     void (*adjust_irq_affinities)(void);
     void (*clear_root_pgtable)(struct domain *d);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:38:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653192.1019550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4pf-0000cw-KA; Tue, 12 Dec 2023 15:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653192.1019550; Tue, 12 Dec 2023 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 1rD4pf-0000cI-EU; Tue, 12 Dec 2023 15:38:03 +0000
Received: by outflank-mailman (input) for mailman id 653192;
 Tue, 12 Dec 2023 15:38: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=0UEi=HX=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rD4pd-0000ZS-UU
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:38:01 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ddb39f5-9904-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 16:37:59 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-82-60-45-193.retail.telecomitalia.it [82.60.45.193])
 by support.bugseng.com (Postfix) with ESMTPSA id F1CEE4EE0737;
 Tue, 12 Dec 2023 16:37:58 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ddb39f5-9904-11ee-9b0f-b553b5be7939
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Paul Durrant <paul@xen.org>
Subject: [XEN PATCH 0/4] xen: address violations of MISRA C:2012 Rule 8.2
Date: Tue, 12 Dec 2023 16:37:38 +0100
Message-Id: <cover.1702394721.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series adds the missing parameter names to address violations of
MISRA C:2012 Rule 8.2. No functional changes are introduced.

Federico Serafini (4):
  xen/compat: address violations of MISRA C:2012 Rule 8.2
  x86/asm: address violations of MISRA C:2012 Rule 8.2
  xen/drivers: address violations of MISRA C:2012 Rule 8.2
  xen/iommu: address leftover violation of MISRA C:2012 Rule 8.2

 xen/arch/x86/include/asm/amd.h       | 2 +-
 xen/arch/x86/include/asm/debugreg.h  | 4 ++--
 xen/arch/x86/include/asm/flushtlb.h  | 3 ++-
 xen/arch/x86/include/asm/hap.h       | 2 +-
 xen/arch/x86/include/asm/iommu.h     | 2 +-
 xen/arch/x86/include/asm/microcode.h | 2 +-
 xen/drivers/char/ehci-dbgp.c         | 4 ++--
 xen/drivers/video/vga.c              | 2 +-
 xen/include/xen/compat.h             | 5 +++--
 xen/include/xen/iommu.h              | 2 +-
 xen/include/xen/video.h              | 2 +-
 11 files changed, 16 insertions(+), 14 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:38:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653191.1019545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4pf-0000Zp-B0; Tue, 12 Dec 2023 15:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653191.1019545; Tue, 12 Dec 2023 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 1rD4pf-0000Zi-87; Tue, 12 Dec 2023 15:38:03 +0000
Received: by outflank-mailman (input) for mailman id 653191;
 Tue, 12 Dec 2023 15:38: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=0UEi=HX=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rD4pd-0000ZM-FF
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:38:01 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e47a0f6-9904-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 16:38:00 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-82-60-45-193.retail.telecomitalia.it [82.60.45.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 0662B4EE0C91;
 Tue, 12 Dec 2023 16:37:59 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e47a0f6-9904-11ee-98e8-6d05b1d4d9a1
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>,
	Wei Liu <wl@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH 2/4] x86/asm: address violations of MISRA C:2012 Rule 8.2
Date: Tue, 12 Dec 2023 16:37:40 +0100
Message-Id: <0db906df2d3649fc8652be6b80e14870b78b0f56.1702394721.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702394721.git.federico.serafini@bugseng.com>
References: <cover.1702394721.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing parameter names. No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/include/asm/amd.h       | 2 +-
 xen/arch/x86/include/asm/debugreg.h  | 4 ++--
 xen/arch/x86/include/asm/flushtlb.h  | 3 ++-
 xen/arch/x86/include/asm/hap.h       | 2 +-
 xen/arch/x86/include/asm/iommu.h     | 2 +-
 xen/arch/x86/include/asm/microcode.h | 2 +-
 6 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/include/asm/amd.h b/xen/arch/x86/include/asm/amd.h
index 0700827561..2cc0ce2e9f 100644
--- a/xen/arch/x86/include/asm/amd.h
+++ b/xen/arch/x86/include/asm/amd.h
@@ -157,7 +157,7 @@
 #define is_zen4_uarch()   boot_cpu_has(X86_FEATURE_AUTO_IBRS)
 
 struct cpuinfo_x86;
-int cpu_has_amd_erratum(const struct cpuinfo_x86 *, int, ...);
+int cpu_has_amd_erratum(const struct cpuinfo_x86 *cpu, int osvw_id, ...);
 
 extern s8 opt_allow_unsafe;
 
diff --git a/xen/arch/x86/include/asm/debugreg.h b/xen/arch/x86/include/asm/debugreg.h
index b6454cc04e..2bdaf5d9aa 100644
--- a/xen/arch/x86/include/asm/debugreg.h
+++ b/xen/arch/x86/include/asm/debugreg.h
@@ -96,8 +96,8 @@
 #define breakpoint_addr_ok(a) __addr_ok(a)
 
 struct vcpu;
-long set_debugreg(struct vcpu *, unsigned int reg, unsigned long value);
-void activate_debugregs(const struct vcpu *);
+long set_debugreg(struct vcpu *v, unsigned int reg, unsigned long value);
+void activate_debugregs(const struct vcpu *curr);
 
 struct cpu_policy;
 
diff --git a/xen/arch/x86/include/asm/flushtlb.h b/xen/arch/x86/include/asm/flushtlb.h
index a461ee36ff..bb0ad58db4 100644
--- a/xen/arch/x86/include/asm/flushtlb.h
+++ b/xen/arch/x86/include/asm/flushtlb.h
@@ -141,7 +141,8 @@ unsigned int flush_area_local(const void *va, unsigned int flags);
 #define flush_local(flags) flush_area_local(NULL, flags)
 
 /* Flush specified CPUs' TLBs/caches */
-void flush_area_mask(const cpumask_t *, const void *va, unsigned int flags);
+void flush_area_mask(const cpumask_t *mask, const void *va,
+                     unsigned int flags);
 #define flush_mask(mask, flags) flush_area_mask(mask, NULL, flags)
 
 /* Flush all CPUs' TLBs/caches */
diff --git a/xen/arch/x86/include/asm/hap.h b/xen/arch/x86/include/asm/hap.h
index 05e124ad57..f01ce73fb4 100644
--- a/xen/arch/x86/include/asm/hap.h
+++ b/xen/arch/x86/include/asm/hap.h
@@ -32,7 +32,7 @@ int   hap_track_dirty_vram(struct domain *d,
                            unsigned int nr_frames,
                            XEN_GUEST_HANDLE(void) guest_dirty_bitmap);
 
-extern const struct paging_mode *hap_paging_get_mode(struct vcpu *);
+extern const struct paging_mode *hap_paging_get_mode(struct vcpu *v);
 int hap_set_allocation(struct domain *d, unsigned int pages, bool *preempted);
 unsigned int hap_get_allocation(struct domain *d);
 
diff --git a/xen/arch/x86/include/asm/iommu.h b/xen/arch/x86/include/asm/iommu.h
index eb720205e2..15a848ddc3 100644
--- a/xen/arch/x86/include/asm/iommu.h
+++ b/xen/arch/x86/include/asm/iommu.h
@@ -87,7 +87,7 @@ extern const struct iommu_init_ops *iommu_init_ops;
 void iommu_update_ire_from_apic(unsigned int apic, unsigned int pin,
                                 uint64_t rte);
 unsigned int iommu_read_apic_from_ire(unsigned int apic, unsigned int reg);
-int iommu_setup_hpet_msi(struct msi_desc *);
+int iommu_setup_hpet_msi(struct msi_desc *msi);
 
 static inline void iommu_adjust_irq_affinities(void)
 {
diff --git a/xen/arch/x86/include/asm/microcode.h b/xen/arch/x86/include/asm/microcode.h
index 62ce3418f7..8f59b20b02 100644
--- a/xen/arch/x86/include/asm/microcode.h
+++ b/xen/arch/x86/include/asm/microcode.h
@@ -22,7 +22,7 @@ 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), unsigned long len);
+int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len);
 int early_microcode_init(unsigned long *module_map,
                          const struct multiboot_info *mbi);
 int microcode_init_cache(unsigned long *module_map,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:39:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:39:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653207.1019595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4qy-0003Hl-R9; Tue, 12 Dec 2023 15:39:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653207.1019595; Tue, 12 Dec 2023 15:39:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4qy-0003He-OS; Tue, 12 Dec 2023 15:39:24 +0000
Received: by outflank-mailman (input) for mailman id 653207;
 Tue, 12 Dec 2023 15:39: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=Ckot=HX=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rD4qw-0003HJ-NT
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:39:22 +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 9d60d559-9904-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 16:39:20 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-588-oXKjbKZqPLi5HX1YCXpYaQ-1; Tue,
 12 Dec 2023 10:39:14 -0500
Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com
 [10.11.54.4])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id B28B42806403;
 Tue, 12 Dec 2023 15:39:11 +0000 (UTC)
Received: from localhost (unknown [10.39.193.220])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 922F32026D66;
 Tue, 12 Dec 2023 15:39: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: 9d60d559-9904-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702395559;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=mhd5PyZ3DXbsV3qmdtVMB6yuzeux7oigKl5JGcj9MXo=;
	b=EsjQKdeD1G2/IqDJtT6IsqND4u9xIXHy2ejqVwvl1gFrFWeGWLiiHuNLtagBpWs2ldr4QP
	gH3JfYwU1nWNvaA7cvzMGDo3K1kH5lOpad70CAQRroLt6ghvPNudpoMnUXKbsQRwh/53H6
	MMoN3DG3VCAGTlEh/RVFCHFB0hPdrWA=
X-MC-Unique: oXKjbKZqPLi5HX1YCXpYaQ-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Artyom Tarasenko <atar4qemu@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	=?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@kaod.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	BALATON Zoltan <balaton@eik.bme.hu>,
	Jagannathan Raman <jag.raman@oracle.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
	Alexander Graf <agraf@csgraf.de>,
	Hailiang Zhang <zhanghailiang@xfusion.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	Harsh Prateek Bora <harshpb@linux.ibm.com>,
	Ilya Leoshkevich <iii@linux.ibm.com>,
	Peter Xu <peterx@redhat.com>,
	Hyman Huang <yong.huang@smartx.com>,
	Fam Zheng <fam@euphon.net>,
	Song Gao <gaosong@loongson.cn>,
	Alistair Francis <alistair.francis@wdc.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Leonardo Bras <leobras@redhat.com>,
	Jiri Slaby <jslaby@suse.cz>,
	Eric Farman <farman@linux.ibm.com>,
	Thomas Huth <thuth@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	David Hildenbrand <david@redhat.com>,
	Michael Roth <michael.roth@amd.com>,
	Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Cameron Esfahani <dirty@apple.com>,
	qemu-ppc@nongnu.org,
	John Snow <jsnow@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Weiwei Li <liwei1518@gmail.com>,
	Hanna Reitz <hreitz@redhat.com>,
	qemu-s390x@nongnu.org,
	qemu-block@nongnu.org,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	kvm@vger.kernel.org,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Reinoud Zandijk <reinoud@netbsd.org>,
	Kevin Wolf <kwolf@redhat.com>,
	Bin Meng <bin.meng@windriver.com>,
	Sunil Muthuswamy <sunilmut@microsoft.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-riscv@nongnu.org,
	Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
	Stafford Horne <shorne@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Juan Quintela <quintela@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	qemu-arm@nongnu.org,
	Jason Wang <jasowang@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Jean-Christophe Dubois <jcd@tribudubois.net>,
	Eric Blake <eblake@redhat.com>,
	Roman Bolshakov <rbolshakov@ddn.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH v2 0/5] Make Big QEMU Lock naming consistent
Date: Tue, 12 Dec 2023 10:38:59 -0500
Message-ID: <20231212153905.631119-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.4

v2:
- Rename APIs bql_*() [PeterX]
- Spell out "Big QEMU Lock (BQL)" in doc comments [PeterX]
- Rename "iolock" variables in hw/remote/mpqemu-link.c [Harsh]
- Fix bql_auto_lock() indentation in Patch 2 [Ilya]
- "with BQL taken" -> "with the BQL taken" [Philippe]
- "under BQL" -> "under the BQL" [Philippe]

The Big QEMU Lock ("BQL") has two other names: "iothread lock" and "QEMU global
mutex". The term "iothread lock" is easily confused with the unrelated --object
iothread (iothread.c).

This series updates the code and documentation to consistently use "BQL". This
makes the code easier to understand.

Stefan Hajnoczi (5):
  system/cpus: rename qemu_mutex_lock_iothread() to bql_lock()
  qemu/main-loop: rename QEMU_IOTHREAD_LOCK_GUARD to BQL_LOCK_GUARD
  qemu/main-loop: rename qemu_cond_wait_iothread() to
    qemu_cond_wait_bql()
  Replace "iothread lock" with "BQL" in comments
  Rename "QEMU global mutex" to "BQL" in comments and docs

 docs/devel/multi-thread-tcg.rst      |   7 +-
 docs/devel/qapi-code-gen.rst         |   2 +-
 docs/devel/replay.rst                |   2 +-
 docs/devel/reset.rst                 |   2 +-
 docs/devel/multiple-iothreads.txt    |  16 ++--
 hw/display/qxl.h                     |   2 +-
 include/block/aio-wait.h             |   2 +-
 include/block/blockjob.h             |   6 +-
 include/exec/cpu-common.h            |   2 +-
 include/exec/memory.h                |   4 +-
 include/exec/ramblock.h              |   2 +-
 include/io/task.h                    |   2 +-
 include/migration/register.h         |   8 +-
 include/qemu/coroutine-core.h        |   2 +-
 include/qemu/coroutine.h             |   2 +-
 include/qemu/main-loop.h             |  69 ++++++++--------
 include/qemu/thread.h                |   2 +-
 target/arm/internals.h               |   4 +-
 accel/accel-blocker.c                |  10 +--
 accel/dummy-cpus.c                   |   8 +-
 accel/hvf/hvf-accel-ops.c            |   4 +-
 accel/kvm/kvm-accel-ops.c            |   4 +-
 accel/kvm/kvm-all.c                  |  22 ++---
 accel/tcg/cpu-exec.c                 |  26 +++---
 accel/tcg/cputlb.c                   |  20 ++---
 accel/tcg/tcg-accel-ops-icount.c     |   6 +-
 accel/tcg/tcg-accel-ops-mttcg.c      |  12 +--
 accel/tcg/tcg-accel-ops-rr.c         |  18 ++--
 accel/tcg/tcg-accel-ops.c            |   2 +-
 accel/tcg/translate-all.c            |   2 +-
 cpu-common.c                         |   4 +-
 dump/dump.c                          |   4 +-
 hw/block/dataplane/virtio-blk.c      |   8 +-
 hw/block/virtio-blk.c                |   2 +-
 hw/core/cpu-common.c                 |   6 +-
 hw/display/virtio-gpu.c              |   2 +-
 hw/i386/intel_iommu.c                |   6 +-
 hw/i386/kvm/xen_evtchn.c             |  30 +++----
 hw/i386/kvm/xen_gnttab.c             |   2 +-
 hw/i386/kvm/xen_overlay.c            |   2 +-
 hw/i386/kvm/xen_xenstore.c           |   2 +-
 hw/intc/arm_gicv3_cpuif.c            |   2 +-
 hw/intc/s390_flic.c                  |  18 ++--
 hw/mips/mips_int.c                   |   2 +-
 hw/misc/edu.c                        |   4 +-
 hw/misc/imx6_src.c                   |   2 +-
 hw/misc/imx7_src.c                   |   2 +-
 hw/net/xen_nic.c                     |   8 +-
 hw/ppc/pegasos2.c                    |   2 +-
 hw/ppc/ppc.c                         |   6 +-
 hw/ppc/spapr.c                       |   2 +-
 hw/ppc/spapr_events.c                |   2 +-
 hw/ppc/spapr_rng.c                   |   4 +-
 hw/ppc/spapr_softmmu.c               |   4 +-
 hw/remote/mpqemu-link.c              |  22 ++---
 hw/remote/vfio-user-obj.c            |   2 +-
 hw/s390x/s390-skeys.c                |   2 +-
 hw/scsi/virtio-scsi-dataplane.c      |   6 +-
 migration/block-dirty-bitmap.c       |  14 ++--
 migration/block.c                    |  40 ++++-----
 migration/colo.c                     |  62 +++++++-------
 migration/dirtyrate.c                |  12 +--
 migration/migration.c                |  54 ++++++------
 migration/ram.c                      |  16 ++--
 net/tap.c                            |   2 +-
 replay/replay-internal.c             |   2 +-
 semihosting/console.c                |   8 +-
 stubs/iothread-lock.c                |   6 +-
 system/cpu-throttle.c                |   6 +-
 system/cpus.c                        |  55 +++++++------
 system/dirtylimit.c                  |   4 +-
 system/memory.c                      |   2 +-
 system/physmem.c                     |  14 ++--
 system/runstate.c                    |   2 +-
 system/watchpoint.c                  |   4 +-
 target/arm/arm-powerctl.c            |  14 ++--
 target/arm/helper.c                  |   6 +-
 target/arm/hvf/hvf.c                 |   8 +-
 target/arm/kvm.c                     |   4 +-
 target/arm/kvm64.c                   |   4 +-
 target/arm/ptw.c                     |   6 +-
 target/arm/tcg/helper-a64.c          |   8 +-
 target/arm/tcg/m_helper.c            |   6 +-
 target/arm/tcg/op_helper.c           |  24 +++---
 target/arm/tcg/psci.c                |   2 +-
 target/hppa/int_helper.c             |   8 +-
 target/i386/hvf/hvf.c                |   6 +-
 target/i386/kvm/hyperv.c             |   4 +-
 target/i386/kvm/kvm.c                |  28 +++----
 target/i386/kvm/xen-emu.c            |  16 ++--
 target/i386/nvmm/nvmm-accel-ops.c    |   6 +-
 target/i386/nvmm/nvmm-all.c          |  20 ++---
 target/i386/tcg/sysemu/fpu_helper.c  |   6 +-
 target/i386/tcg/sysemu/misc_helper.c |   4 +-
 target/i386/whpx/whpx-accel-ops.c    |   6 +-
 target/i386/whpx/whpx-all.c          |  24 +++---
 target/loongarch/csr_helper.c        |   4 +-
 target/mips/kvm.c                    |   4 +-
 target/mips/tcg/sysemu/cp0_helper.c  |   4 +-
 target/openrisc/sys_helper.c         |  16 ++--
 target/ppc/excp_helper.c             |  14 ++--
 target/ppc/helper_regs.c             |   2 +-
 target/ppc/kvm.c                     |   4 +-
 target/ppc/misc_helper.c             |   8 +-
 target/ppc/timebase_helper.c         |   8 +-
 target/riscv/cpu_helper.c            |   4 +-
 target/s390x/kvm/kvm.c               |   4 +-
 target/s390x/tcg/misc_helper.c       | 118 +++++++++++++--------------
 target/sparc/int32_helper.c          |   2 +-
 target/sparc/int64_helper.c          |   6 +-
 target/sparc/win_helper.c            |  20 ++---
 target/xtensa/exc_helper.c           |   8 +-
 ui/spice-core.c                      |   6 +-
 util/async.c                         |   2 +-
 util/main-loop.c                     |   8 +-
 util/qsp.c                           |   6 +-
 util/rcu.c                           |  16 ++--
 audio/coreaudio.m                    |   8 +-
 memory_ldst.c.inc                    |  18 ++--
 target/i386/hvf/README.md            |   2 +-
 ui/cocoa.m                           |  56 ++++++-------
 121 files changed, 644 insertions(+), 645 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:39:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:39:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653208.1019605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4r0-0003XA-6e; Tue, 12 Dec 2023 15:39:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653208.1019605; Tue, 12 Dec 2023 15:39:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4r0-0003Wx-3v; Tue, 12 Dec 2023 15:39:26 +0000
Received: by outflank-mailman (input) for mailman id 653208;
 Tue, 12 Dec 2023 15:39:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ckot=HX=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rD4qz-0003HJ-4U
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:39:25 +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 9f0f9d6d-9904-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 16:39:23 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-688-wQWsViZDNTmhjWSD43lVBw-1; Tue, 12 Dec 2023 10:39:20 -0500
Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com
 [10.11.54.10])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id D83C2836F27;
 Tue, 12 Dec 2023 15:39:17 +0000 (UTC)
Received: from localhost (unknown [10.39.193.220])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 0708C492BF0;
 Tue, 12 Dec 2023 15:39: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: 9f0f9d6d-9904-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702395562;
	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=BroPZmE361PFBNWWVQQ1qyyRuueblUtOw8ob7c91iHw=;
	b=LfaL4GKJyoR5nNJ8qCRNLN+R/NMsMf4C2OCR7bXU2G0TEm2/2Aei9rjdiQdhcVSKjp4ngI
	KkW9h/mVRwmg0AdkhCCy00EAFq2Qq1NXsnGIBNDD1ARtPwtOtkn7sDtgz/c9H7v4HISY7a
	i/6tN6xOtO/66jdLptcmA3J2tQ/TN+Y=
X-MC-Unique: wQWsViZDNTmhjWSD43lVBw-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Artyom Tarasenko <atar4qemu@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	=?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@kaod.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	BALATON Zoltan <balaton@eik.bme.hu>,
	Jagannathan Raman <jag.raman@oracle.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
	Alexander Graf <agraf@csgraf.de>,
	Hailiang Zhang <zhanghailiang@xfusion.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	Harsh Prateek Bora <harshpb@linux.ibm.com>,
	Ilya Leoshkevich <iii@linux.ibm.com>,
	Peter Xu <peterx@redhat.com>,
	Hyman Huang <yong.huang@smartx.com>,
	Fam Zheng <fam@euphon.net>,
	Song Gao <gaosong@loongson.cn>,
	Alistair Francis <alistair.francis@wdc.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Leonardo Bras <leobras@redhat.com>,
	Jiri Slaby <jslaby@suse.cz>,
	Eric Farman <farman@linux.ibm.com>,
	Thomas Huth <thuth@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	David Hildenbrand <david@redhat.com>,
	Michael Roth <michael.roth@amd.com>,
	Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Cameron Esfahani <dirty@apple.com>,
	qemu-ppc@nongnu.org,
	John Snow <jsnow@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Weiwei Li <liwei1518@gmail.com>,
	Hanna Reitz <hreitz@redhat.com>,
	qemu-s390x@nongnu.org,
	qemu-block@nongnu.org,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	kvm@vger.kernel.org,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Reinoud Zandijk <reinoud@netbsd.org>,
	Kevin Wolf <kwolf@redhat.com>,
	Bin Meng <bin.meng@windriver.com>,
	Sunil Muthuswamy <sunilmut@microsoft.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-riscv@nongnu.org,
	Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
	Stafford Horne <shorne@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Juan Quintela <quintela@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	qemu-arm@nongnu.org,
	Jason Wang <jasowang@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Jean-Christophe Dubois <jcd@tribudubois.net>,
	Eric Blake <eblake@redhat.com>,
	Roman Bolshakov <rbolshakov@ddn.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	David Woodhouse <dwmw@amazon.co.uk>
Subject: [PATCH v2 2/5] qemu/main-loop: rename QEMU_IOTHREAD_LOCK_GUARD to BQL_LOCK_GUARD
Date: Tue, 12 Dec 2023 10:39:01 -0500
Message-ID: <20231212153905.631119-3-stefanha@redhat.com>
In-Reply-To: <20231212153905.631119-1-stefanha@redhat.com>
References: <20231212153905.631119-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10

The name "iothread" is overloaded. Use the term Big QEMU Lock (BQL)
instead, it is already widely used and unambiguous.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Acked-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: CÃ©dric Le Goater <clg@kaod.org>
Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 include/qemu/main-loop.h  | 19 +++++++++----------
 hw/i386/kvm/xen_evtchn.c  | 14 +++++++-------
 hw/i386/kvm/xen_gnttab.c  |  2 +-
 hw/mips/mips_int.c        |  2 +-
 hw/ppc/ppc.c              |  2 +-
 target/i386/kvm/xen-emu.c |  2 +-
 target/ppc/excp_helper.c  |  2 +-
 target/ppc/helper_regs.c  |  2 +-
 target/riscv/cpu_helper.c |  4 ++--
 9 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
index 596a206acd..1da0fb186e 100644
--- a/include/qemu/main-loop.h
+++ b/include/qemu/main-loop.h
@@ -344,33 +344,32 @@ void bql_lock_impl(const char *file, int line);
 void bql_unlock(void);
 
 /**
- * QEMU_IOTHREAD_LOCK_GUARD
+ * BQL_LOCK_GUARD
  *
  * Wrap a block of code in a conditional bql_{lock,unlock}.
  */
-typedef struct IOThreadLockAuto IOThreadLockAuto;
+typedef struct BQLLockAuto BQLLockAuto;
 
-static inline IOThreadLockAuto *qemu_iothread_auto_lock(const char *file,
-                                                        int line)
+static inline BQLLockAuto *bql_auto_lock(const char *file, int line)
 {
     if (bql_locked()) {
         return NULL;
     }
     bql_lock_impl(file, line);
     /* Anything non-NULL causes the cleanup function to be called */
-    return (IOThreadLockAuto *)(uintptr_t)1;
+    return (BQLLockAuto *)(uintptr_t)1;
 }
 
-static inline void qemu_iothread_auto_unlock(IOThreadLockAuto *l)
+static inline void bql_auto_unlock(BQLLockAuto *l)
 {
     bql_unlock();
 }
 
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(IOThreadLockAuto, qemu_iothread_auto_unlock)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(BQLLockAuto, bql_auto_unlock)
 
-#define QEMU_IOTHREAD_LOCK_GUARD() \
-    g_autoptr(IOThreadLockAuto) _iothread_lock_auto __attribute__((unused)) \
-        = qemu_iothread_auto_lock(__FILE__, __LINE__)
+#define BQL_LOCK_GUARD() \
+    g_autoptr(BQLLockAuto) _bql_lock_auto __attribute__((unused)) \
+        = bql_auto_lock(__FILE__, __LINE__)
 
 /*
  * qemu_cond_wait_iothread: Wait on condition for the main loop mutex
diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c
index d7d15cfaf7..bd077eda6d 100644
--- a/hw/i386/kvm/xen_evtchn.c
+++ b/hw/i386/kvm/xen_evtchn.c
@@ -1127,7 +1127,7 @@ int xen_evtchn_reset_op(struct evtchn_reset *reset)
         return -ESRCH;
     }
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
     return xen_evtchn_soft_reset();
 }
 
@@ -1145,7 +1145,7 @@ int xen_evtchn_close_op(struct evtchn_close *close)
         return -EINVAL;
     }
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
     qemu_mutex_lock(&s->port_lock);
 
     ret = close_port(s, close->port, &flush_kvm_routes);
@@ -1272,7 +1272,7 @@ int xen_evtchn_bind_pirq_op(struct evtchn_bind_pirq *pirq)
         return -EINVAL;
     }
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
 
     if (s->pirq[pirq->pirq].port) {
         return -EBUSY;
@@ -1824,7 +1824,7 @@ int xen_physdev_map_pirq(struct physdev_map_pirq *map)
         return -ENOTSUP;
     }
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
     QEMU_LOCK_GUARD(&s->port_lock);
 
     if (map->domid != DOMID_SELF && map->domid != xen_domid) {
@@ -1884,7 +1884,7 @@ int xen_physdev_unmap_pirq(struct physdev_unmap_pirq *unmap)
         return -EINVAL;
     }
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
     qemu_mutex_lock(&s->port_lock);
 
     if (!pirq_inuse(s, pirq)) {
@@ -1924,7 +1924,7 @@ int xen_physdev_eoi_pirq(struct physdev_eoi *eoi)
         return -ENOTSUP;
     }
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
     QEMU_LOCK_GUARD(&s->port_lock);
 
     if (!pirq_inuse(s, pirq)) {
@@ -1956,7 +1956,7 @@ int xen_physdev_query_pirq(struct physdev_irq_status_query *query)
         return -ENOTSUP;
     }
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
     QEMU_LOCK_GUARD(&s->port_lock);
 
     if (!pirq_inuse(s, pirq)) {
diff --git a/hw/i386/kvm/xen_gnttab.c b/hw/i386/kvm/xen_gnttab.c
index 0a24f53f20..d9477ae927 100644
--- a/hw/i386/kvm/xen_gnttab.c
+++ b/hw/i386/kvm/xen_gnttab.c
@@ -176,7 +176,7 @@ int xen_gnttab_map_page(uint64_t idx, uint64_t gfn)
         return -EINVAL;
     }
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
     QEMU_LOCK_GUARD(&s->gnt_lock);
 
     xen_overlay_do_map_page(&s->gnt_aliases[idx], gpa);
diff --git a/hw/mips/mips_int.c b/hw/mips/mips_int.c
index 6c32e466a3..eef2fd2cd1 100644
--- a/hw/mips/mips_int.c
+++ b/hw/mips/mips_int.c
@@ -36,7 +36,7 @@ static void cpu_mips_irq_request(void *opaque, int irq, int level)
         return;
     }
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
 
     if (level) {
         env->CP0_Cause |= 1 << (irq + CP0Ca_IP);
diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
index b6581c16fc..7387b5b677 100644
--- a/hw/ppc/ppc.c
+++ b/hw/ppc/ppc.c
@@ -47,7 +47,7 @@ void ppc_set_irq(PowerPCCPU *cpu, int irq, int level)
     unsigned int old_pending;
 
     /* We may already have the BQL if coming from the reset path */
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
 
     old_pending = env->pending_interrupts;
 
diff --git a/target/i386/kvm/xen-emu.c b/target/i386/kvm/xen-emu.c
index b0ed2e6aeb..fc2c2321ac 100644
--- a/target/i386/kvm/xen-emu.c
+++ b/target/i386/kvm/xen-emu.c
@@ -581,7 +581,7 @@ static int xen_set_shared_info(uint64_t gfn)
     uint64_t gpa = gfn << TARGET_PAGE_BITS;
     int i, err;
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
 
     /*
      * The xen_overlay device tells KVM about it too, since it had to
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index 8a2bfb5aa2..2ec6429e36 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -2222,7 +2222,7 @@ static int ppc_next_unmasked_interrupt(CPUPPCState *env)
 void ppc_maybe_interrupt(CPUPPCState *env)
 {
     CPUState *cs = env_cpu(env);
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
 
     if (ppc_next_unmasked_interrupt(env)) {
         cpu_interrupt(cs, CPU_INTERRUPT_HARD);
diff --git a/target/ppc/helper_regs.c b/target/ppc/helper_regs.c
index f380342d4d..e0b2dcd02e 100644
--- a/target/ppc/helper_regs.c
+++ b/target/ppc/helper_regs.c
@@ -244,7 +244,7 @@ void cpu_interrupt_exittb(CPUState *cs)
      * unless running with TCG.
      */
     if (tcg_enabled()) {
-        QEMU_IOTHREAD_LOCK_GUARD();
+        BQL_LOCK_GUARD();
         cpu_interrupt(cs, CPU_INTERRUPT_EXITTB);
     }
 }
diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c
index e7e23b34f4..99d1275729 100644
--- a/target/riscv/cpu_helper.c
+++ b/target/riscv/cpu_helper.c
@@ -655,7 +655,7 @@ void riscv_cpu_interrupt(CPURISCVState *env)
     uint64_t gein, vsgein = 0, vstip = 0, irqf = 0;
     CPUState *cs = env_cpu(env);
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
 
     if (env->virt_enabled) {
         gein = get_field(env->hstatus, HSTATUS_VGEIN);
@@ -681,7 +681,7 @@ uint64_t riscv_cpu_update_mip(CPURISCVState *env, uint64_t mask, uint64_t value)
     /* No need to update mip for VSTIP */
     mask = ((mask == MIP_VSTIP) && env->vstime_irq) ? 0 : mask;
 
-    QEMU_IOTHREAD_LOCK_GUARD();
+    BQL_LOCK_GUARD();
 
     env->mip = (env->mip & ~mask) | (value & mask);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:39:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:39:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653209.1019615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4r2-0003o1-HB; Tue, 12 Dec 2023 15:39:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653209.1019615; Tue, 12 Dec 2023 15:39:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4r2-0003nu-DF; Tue, 12 Dec 2023 15:39:28 +0000
Received: by outflank-mailman (input) for mailman id 653209;
 Tue, 12 Dec 2023 15:39: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=Ckot=HX=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rD4r0-0003HJ-Kr
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:39:27 +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 9ef56423-9904-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 16:39:23 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-43-EZdfepwpP9Krw68f2dJ1Uw-1; Tue, 12 Dec 2023 10:39:17 -0500
Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com
 [10.11.54.9])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 99A6C185A787;
 Tue, 12 Dec 2023 15:39:15 +0000 (UTC)
Received: from localhost (unknown [10.39.193.220])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 2286C492BC8;
 Tue, 12 Dec 2023 15:39:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ef56423-9904-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702395561;
	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=XGFH4womdyo5SUTb+AvUbvENk6H3SDIdL8pEAkUfnV4=;
	b=DcQwEGQHSF6TqvTDxJYWmxzx7noZoaC5nj86KXFI+GxKwM1S8asSwMEngHAehIO/sglKNE
	QHPpaxTZQnzpxChE65GhOOZZ4GE0j2bTsJQxZDBCyHN1FKW44FHzaqBTKck8Ndcl1w4dOw
	e0cDzGJbwRuB+YqmTxPNRIz2DgwgNZU=
X-MC-Unique: EZdfepwpP9Krw68f2dJ1Uw-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Artyom Tarasenko <atar4qemu@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	=?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@kaod.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	BALATON Zoltan <balaton@eik.bme.hu>,
	Jagannathan Raman <jag.raman@oracle.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
	Alexander Graf <agraf@csgraf.de>,
	Hailiang Zhang <zhanghailiang@xfusion.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	Harsh Prateek Bora <harshpb@linux.ibm.com>,
	Ilya Leoshkevich <iii@linux.ibm.com>,
	Peter Xu <peterx@redhat.com>,
	Hyman Huang <yong.huang@smartx.com>,
	Fam Zheng <fam@euphon.net>,
	Song Gao <gaosong@loongson.cn>,
	Alistair Francis <alistair.francis@wdc.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Leonardo Bras <leobras@redhat.com>,
	Jiri Slaby <jslaby@suse.cz>,
	Eric Farman <farman@linux.ibm.com>,
	Thomas Huth <thuth@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	David Hildenbrand <david@redhat.com>,
	Michael Roth <michael.roth@amd.com>,
	Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Cameron Esfahani <dirty@apple.com>,
	qemu-ppc@nongnu.org,
	John Snow <jsnow@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Weiwei Li <liwei1518@gmail.com>,
	Hanna Reitz <hreitz@redhat.com>,
	qemu-s390x@nongnu.org,
	qemu-block@nongnu.org,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	kvm@vger.kernel.org,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Reinoud Zandijk <reinoud@netbsd.org>,
	Kevin Wolf <kwolf@redhat.com>,
	Bin Meng <bin.meng@windriver.com>,
	Sunil Muthuswamy <sunilmut@microsoft.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-riscv@nongnu.org,
	Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
	Stafford Horne <shorne@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Juan Quintela <quintela@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	qemu-arm@nongnu.org,
	Jason Wang <jasowang@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Jean-Christophe Dubois <jcd@tribudubois.net>,
	Eric Blake <eblake@redhat.com>,
	Roman Bolshakov <rbolshakov@ddn.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	David Woodhouse <dwmw@amazon.co.uk>
Subject: [PATCH v2 1/5] system/cpus: rename qemu_mutex_lock_iothread() to bql_lock()
Date: Tue, 12 Dec 2023 10:39:00 -0500
Message-ID: <20231212153905.631119-2-stefanha@redhat.com>
In-Reply-To: <20231212153905.631119-1-stefanha@redhat.com>
References: <20231212153905.631119-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.9

The Big QEMU Lock (BQL) has many names and they are confusing. The
actual QemuMutex variable is called qemu_global_mutex but it's commonly
referred to as the BQL in discussions and some code comments. The
locking APIs, however, are called qemu_mutex_lock_iothread() and
qemu_mutex_unlock_iothread().

The "iothread" name is historic and comes from when the main thread was
split into into KVM vcpu threads and the "iothread" (now called the main
loop thread). I have contributed to the confusion myself by introducing
a separate --object iothread, a separate concept unrelated to the BQL.

The "iothread" name is no longer appropriate for the BQL. Rename the
locking APIs to:
- void bql_lock(void)
- void bql_unlock(void)
- bool bql_locked(void)

There are more APIs with "iothread" in their names. Subsequent patches
will rename them. There are also comments and documentation that will be
updated in later patches.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Acked-by: Fabiano Rosas <farosas@suse.de>
Acked-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: CÃ©dric Le Goater <clg@kaod.org>
Acked-by: Peter Xu <peterx@redhat.com>
Acked-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
 include/block/aio-wait.h             |   2 +-
 include/qemu/main-loop.h             |  40 ++++-----
 include/qemu/thread.h                |   2 +-
 accel/accel-blocker.c                |  10 +--
 accel/dummy-cpus.c                   |   8 +-
 accel/hvf/hvf-accel-ops.c            |   4 +-
 accel/kvm/kvm-accel-ops.c            |   4 +-
 accel/kvm/kvm-all.c                  |  22 ++---
 accel/tcg/cpu-exec.c                 |  26 +++---
 accel/tcg/cputlb.c                   |  16 ++--
 accel/tcg/tcg-accel-ops-icount.c     |   4 +-
 accel/tcg/tcg-accel-ops-mttcg.c      |  12 +--
 accel/tcg/tcg-accel-ops-rr.c         |  14 ++--
 accel/tcg/tcg-accel-ops.c            |   2 +-
 accel/tcg/translate-all.c            |   2 +-
 cpu-common.c                         |   4 +-
 dump/dump.c                          |   4 +-
 hw/core/cpu-common.c                 |   6 +-
 hw/i386/intel_iommu.c                |   6 +-
 hw/i386/kvm/xen_evtchn.c             |  16 ++--
 hw/i386/kvm/xen_overlay.c            |   2 +-
 hw/i386/kvm/xen_xenstore.c           |   2 +-
 hw/intc/arm_gicv3_cpuif.c            |   2 +-
 hw/intc/s390_flic.c                  |  18 ++--
 hw/misc/edu.c                        |   4 +-
 hw/misc/imx6_src.c                   |   2 +-
 hw/misc/imx7_src.c                   |   2 +-
 hw/net/xen_nic.c                     |   8 +-
 hw/ppc/pegasos2.c                    |   2 +-
 hw/ppc/ppc.c                         |   4 +-
 hw/ppc/spapr.c                       |   2 +-
 hw/ppc/spapr_rng.c                   |   4 +-
 hw/ppc/spapr_softmmu.c               |   4 +-
 hw/remote/mpqemu-link.c              |  20 ++---
 hw/remote/vfio-user-obj.c            |   2 +-
 hw/s390x/s390-skeys.c                |   2 +-
 migration/block-dirty-bitmap.c       |   4 +-
 migration/block.c                    |  16 ++--
 migration/colo.c                     |  60 +++++++-------
 migration/dirtyrate.c                |  12 +--
 migration/migration.c                |  52 ++++++------
 migration/ram.c                      |  12 +--
 replay/replay-internal.c             |   2 +-
 semihosting/console.c                |   8 +-
 stubs/iothread-lock.c                |   6 +-
 system/cpu-throttle.c                |   4 +-
 system/cpus.c                        |  51 ++++++------
 system/dirtylimit.c                  |   4 +-
 system/memory.c                      |   2 +-
 system/physmem.c                     |   8 +-
 system/runstate.c                    |   2 +-
 system/watchpoint.c                  |   4 +-
 target/arm/arm-powerctl.c            |  14 ++--
 target/arm/helper.c                  |   4 +-
 target/arm/hvf/hvf.c                 |   8 +-
 target/arm/kvm.c                     |   4 +-
 target/arm/kvm64.c                   |   4 +-
 target/arm/ptw.c                     |   6 +-
 target/arm/tcg/helper-a64.c          |   8 +-
 target/arm/tcg/m_helper.c            |   6 +-
 target/arm/tcg/op_helper.c           |  24 +++---
 target/arm/tcg/psci.c                |   2 +-
 target/hppa/int_helper.c             |   8 +-
 target/i386/hvf/hvf.c                |   6 +-
 target/i386/kvm/hyperv.c             |   4 +-
 target/i386/kvm/kvm.c                |  28 +++----
 target/i386/kvm/xen-emu.c            |  14 ++--
 target/i386/nvmm/nvmm-accel-ops.c    |   4 +-
 target/i386/nvmm/nvmm-all.c          |  20 ++---
 target/i386/tcg/sysemu/fpu_helper.c  |   6 +-
 target/i386/tcg/sysemu/misc_helper.c |   4 +-
 target/i386/whpx/whpx-accel-ops.c    |   4 +-
 target/i386/whpx/whpx-all.c          |  24 +++---
 target/loongarch/csr_helper.c        |   4 +-
 target/mips/kvm.c                    |   4 +-
 target/mips/tcg/sysemu/cp0_helper.c  |   4 +-
 target/openrisc/sys_helper.c         |  16 ++--
 target/ppc/excp_helper.c             |  12 +--
 target/ppc/kvm.c                     |   4 +-
 target/ppc/misc_helper.c             |   8 +-
 target/ppc/timebase_helper.c         |   8 +-
 target/s390x/kvm/kvm.c               |   4 +-
 target/s390x/tcg/misc_helper.c       | 118 +++++++++++++--------------
 target/sparc/int32_helper.c          |   2 +-
 target/sparc/int64_helper.c          |   6 +-
 target/sparc/win_helper.c            |  20 ++---
 target/xtensa/exc_helper.c           |   8 +-
 ui/spice-core.c                      |   4 +-
 util/async.c                         |   2 +-
 util/main-loop.c                     |   8 +-
 util/qsp.c                           |   6 +-
 util/rcu.c                           |  14 ++--
 audio/coreaudio.m                    |   4 +-
 memory_ldst.c.inc                    |  18 ++--
 target/i386/hvf/README.md            |   2 +-
 ui/cocoa.m                           |  50 ++++++------
 96 files changed, 530 insertions(+), 529 deletions(-)

diff --git a/include/block/aio-wait.h b/include/block/aio-wait.h
index 5449b6d742..d22ca24329 100644
--- a/include/block/aio-wait.h
+++ b/include/block/aio-wait.h
@@ -151,7 +151,7 @@ static inline bool in_aio_context_home_thread(AioContext *ctx)
     }
 
     if (ctx == qemu_get_aio_context()) {
-        return qemu_mutex_iothread_locked();
+        return bql_locked();
     } else {
         return false;
     }
diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
index 68e70e61aa..596a206acd 100644
--- a/include/qemu/main-loop.h
+++ b/include/qemu/main-loop.h
@@ -248,19 +248,19 @@ GSource *iohandler_get_g_source(void);
 AioContext *iohandler_get_aio_context(void);
 
 /**
- * qemu_mutex_iothread_locked: Return lock status of the main loop mutex.
+ * bql_locked: Return lock status of the Big QEMU Lock (BQL)
  *
- * The main loop mutex is the coarsest lock in QEMU, and as such it
+ * The Big QEMU Lock (BQL) is the coarsest lock in QEMU, and as such it
  * must always be taken outside other locks.  This function helps
  * functions take different paths depending on whether the current
- * thread is running within the main loop mutex.
+ * thread is running within the BQL.
  *
  * This function should never be used in the block layer, because
  * unit tests, block layer tools and qemu-storage-daemon do not
  * have a BQL.
  * Please instead refer to qemu_in_main_thread().
  */
-bool qemu_mutex_iothread_locked(void);
+bool bql_locked(void);
 
 /**
  * qemu_in_main_thread: return whether it's possible to safely access
@@ -312,58 +312,58 @@ bool qemu_in_main_thread(void);
     } while (0)
 
 /**
- * qemu_mutex_lock_iothread: Lock the main loop mutex.
+ * bql_lock: Lock the Big QEMU Lock (BQL).
  *
- * This function locks the main loop mutex.  The mutex is taken by
+ * This function locks the Big QEMU Lock (BQL).  The lock is taken by
  * main() in vl.c and always taken except while waiting on
- * external events (such as with select).  The mutex should be taken
+ * external events (such as with select).  The lock should be taken
  * by threads other than the main loop thread when calling
  * qemu_bh_new(), qemu_set_fd_handler() and basically all other
  * functions documented in this file.
  *
- * NOTE: tools currently are single-threaded and qemu_mutex_lock_iothread
+ * NOTE: tools currently are single-threaded and bql_lock
  * is a no-op there.
  */
-#define qemu_mutex_lock_iothread()                      \
-    qemu_mutex_lock_iothread_impl(__FILE__, __LINE__)
-void qemu_mutex_lock_iothread_impl(const char *file, int line);
+#define bql_lock()                      \
+    bql_lock_impl(__FILE__, __LINE__)
+void bql_lock_impl(const char *file, int line);
 
 /**
- * qemu_mutex_unlock_iothread: Unlock the main loop mutex.
+ * bql_unlock: Unlock the Big QEMU Lock (BQL).
  *
- * This function unlocks the main loop mutex.  The mutex is taken by
+ * This function unlocks the Big QEMU Lock.  The lock is taken by
  * main() in vl.c and always taken except while waiting on
- * external events (such as with select).  The mutex should be unlocked
+ * external events (such as with select).  The lock should be unlocked
  * as soon as possible by threads other than the main loop thread,
  * because it prevents the main loop from processing callbacks,
  * including timers and bottom halves.
  *
- * NOTE: tools currently are single-threaded and qemu_mutex_unlock_iothread
+ * NOTE: tools currently are single-threaded and bql_unlock
  * is a no-op there.
  */
-void qemu_mutex_unlock_iothread(void);
+void bql_unlock(void);
 
 /**
  * QEMU_IOTHREAD_LOCK_GUARD
  *
- * Wrap a block of code in a conditional qemu_mutex_{lock,unlock}_iothread.
+ * Wrap a block of code in a conditional bql_{lock,unlock}.
  */
 typedef struct IOThreadLockAuto IOThreadLockAuto;
 
 static inline IOThreadLockAuto *qemu_iothread_auto_lock(const char *file,
                                                         int line)
 {
-    if (qemu_mutex_iothread_locked()) {
+    if (bql_locked()) {
         return NULL;
     }
-    qemu_mutex_lock_iothread_impl(file, line);
+    bql_lock_impl(file, line);
     /* Anything non-NULL causes the cleanup function to be called */
     return (IOThreadLockAuto *)(uintptr_t)1;
 }
 
 static inline void qemu_iothread_auto_unlock(IOThreadLockAuto *l)
 {
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(IOThreadLockAuto, qemu_iothread_auto_unlock)
diff --git a/include/qemu/thread.h b/include/qemu/thread.h
index dd3822d7ce..fb74e21c08 100644
--- a/include/qemu/thread.h
+++ b/include/qemu/thread.h
@@ -47,7 +47,7 @@ typedef void (*QemuCondWaitFunc)(QemuCond *c, QemuMutex *m, const char *f,
 typedef bool (*QemuCondTimedWaitFunc)(QemuCond *c, QemuMutex *m, int ms,
                                       const char *f, int l);
 
-extern QemuMutexLockFunc qemu_bql_mutex_lock_func;
+extern QemuMutexLockFunc bql_mutex_lock_func;
 extern QemuMutexLockFunc qemu_mutex_lock_func;
 extern QemuMutexTrylockFunc qemu_mutex_trylock_func;
 extern QemuRecMutexLockFunc qemu_rec_mutex_lock_func;
diff --git a/accel/accel-blocker.c b/accel/accel-blocker.c
index 1e7f423462..e083f24aa8 100644
--- a/accel/accel-blocker.c
+++ b/accel/accel-blocker.c
@@ -41,7 +41,7 @@ void accel_blocker_init(void)
 
 void accel_ioctl_begin(void)
 {
-    if (likely(qemu_mutex_iothread_locked())) {
+    if (likely(bql_locked())) {
         return;
     }
 
@@ -51,7 +51,7 @@ void accel_ioctl_begin(void)
 
 void accel_ioctl_end(void)
 {
-    if (likely(qemu_mutex_iothread_locked())) {
+    if (likely(bql_locked())) {
         return;
     }
 
@@ -62,7 +62,7 @@ void accel_ioctl_end(void)
 
 void accel_cpu_ioctl_begin(CPUState *cpu)
 {
-    if (unlikely(qemu_mutex_iothread_locked())) {
+    if (unlikely(bql_locked())) {
         return;
     }
 
@@ -72,7 +72,7 @@ void accel_cpu_ioctl_begin(CPUState *cpu)
 
 void accel_cpu_ioctl_end(CPUState *cpu)
 {
-    if (unlikely(qemu_mutex_iothread_locked())) {
+    if (unlikely(bql_locked())) {
         return;
     }
 
@@ -105,7 +105,7 @@ void accel_ioctl_inhibit_begin(void)
      * We allow to inhibit only when holding the BQL, so we can identify
      * when an inhibitor wants to issue an ioctl easily.
      */
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     /* Block further invocations of the ioctls outside the BQL.  */
     CPU_FOREACH(cpu) {
diff --git a/accel/dummy-cpus.c b/accel/dummy-cpus.c
index b75c919ac3..f4b0ec5890 100644
--- a/accel/dummy-cpus.c
+++ b/accel/dummy-cpus.c
@@ -24,7 +24,7 @@ static void *dummy_cpu_thread_fn(void *arg)
 
     rcu_register_thread();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_thread_get_self(cpu->thread);
     cpu->thread_id = qemu_get_thread_id();
     cpu->neg.can_do_io = true;
@@ -43,7 +43,7 @@ static void *dummy_cpu_thread_fn(void *arg)
     qemu_guest_random_seed_thread_part2(cpu->random_seed);
 
     do {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
 #ifndef _WIN32
         do {
             int sig;
@@ -56,11 +56,11 @@ static void *dummy_cpu_thread_fn(void *arg)
 #else
         qemu_sem_wait(&cpu->sem);
 #endif
-        qemu_mutex_lock_iothread();
+        bql_lock();
         qemu_wait_io_event(cpu);
     } while (!cpu->unplug);
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     rcu_unregister_thread();
     return NULL;
 }
diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c
index abe7adf7ee..8eabb696fa 100644
--- a/accel/hvf/hvf-accel-ops.c
+++ b/accel/hvf/hvf-accel-ops.c
@@ -424,7 +424,7 @@ static void *hvf_cpu_thread_fn(void *arg)
 
     rcu_register_thread();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_thread_get_self(cpu->thread);
 
     cpu->thread_id = qemu_get_thread_id();
@@ -449,7 +449,7 @@ static void *hvf_cpu_thread_fn(void *arg)
 
     hvf_vcpu_destroy(cpu);
     cpu_thread_signal_destroyed(cpu);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     rcu_unregister_thread();
     return NULL;
 }
diff --git a/accel/kvm/kvm-accel-ops.c b/accel/kvm/kvm-accel-ops.c
index 6195150a0b..45ff06e953 100644
--- a/accel/kvm/kvm-accel-ops.c
+++ b/accel/kvm/kvm-accel-ops.c
@@ -33,7 +33,7 @@ static void *kvm_vcpu_thread_fn(void *arg)
 
     rcu_register_thread();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_thread_get_self(cpu->thread);
     cpu->thread_id = qemu_get_thread_id();
     cpu->neg.can_do_io = true;
@@ -58,7 +58,7 @@ static void *kvm_vcpu_thread_fn(void *arg)
 
     kvm_destroy_vcpu(cpu);
     cpu_thread_signal_destroyed(cpu);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     rcu_unregister_thread();
     return NULL;
 }
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index e39a810a4e..09404b897f 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -817,7 +817,7 @@ static void kvm_dirty_ring_flush(void)
      * should always be with BQL held, serialization is guaranteed.
      * However, let's be sure of it.
      */
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
     /*
      * First make sure to flush the hardware buffers by kicking all
      * vcpus out in a synchronous way.
@@ -1402,9 +1402,9 @@ static void *kvm_dirty_ring_reaper_thread(void *data)
         trace_kvm_dirty_ring_reaper("wakeup");
         r->reaper_state = KVM_DIRTY_RING_REAPER_REAPING;
 
-        qemu_mutex_lock_iothread();
+        bql_lock();
         kvm_dirty_ring_reap(s, NULL);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
 
         r->reaper_iteration++;
     }
@@ -2828,7 +2828,7 @@ int kvm_cpu_exec(CPUState *cpu)
         return EXCP_HLT;
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     cpu_exec_start(cpu);
 
     do {
@@ -2868,11 +2868,11 @@ int kvm_cpu_exec(CPUState *cpu)
 
 #ifdef KVM_HAVE_MCE_INJECTION
         if (unlikely(have_sigbus_pending)) {
-            qemu_mutex_lock_iothread();
+            bql_lock();
             kvm_arch_on_sigbus_vcpu(cpu, pending_sigbus_code,
                                     pending_sigbus_addr);
             have_sigbus_pending = false;
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
         }
 #endif
 
@@ -2942,7 +2942,7 @@ int kvm_cpu_exec(CPUState *cpu)
              * still full.  Got kicked by KVM_RESET_DIRTY_RINGS.
              */
             trace_kvm_dirty_ring_full(cpu->cpu_index);
-            qemu_mutex_lock_iothread();
+            bql_lock();
             /*
              * We throttle vCPU by making it sleep once it exit from kernel
              * due to dirty ring full. In the dirtylimit scenario, reaping
@@ -2954,7 +2954,7 @@ int kvm_cpu_exec(CPUState *cpu)
             } else {
                 kvm_dirty_ring_reap(kvm_state, NULL);
             }
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             dirtylimit_vcpu_execute(cpu);
             ret = 0;
             break;
@@ -2970,9 +2970,9 @@ int kvm_cpu_exec(CPUState *cpu)
                 break;
             case KVM_SYSTEM_EVENT_CRASH:
                 kvm_cpu_synchronize_state(cpu);
-                qemu_mutex_lock_iothread();
+                bql_lock();
                 qemu_system_guest_panicked(cpu_get_crash_info(cpu));
-                qemu_mutex_unlock_iothread();
+                bql_unlock();
                 ret = 0;
                 break;
             default:
@@ -2989,7 +2989,7 @@ int kvm_cpu_exec(CPUState *cpu)
     } while (ret == 0);
 
     cpu_exec_end(cpu);
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     if (ret < 0) {
         cpu_dump_state(cpu, stderr, CPU_DUMP_CODE);
diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
index c938eb96f8..67eda9865e 100644
--- a/accel/tcg/cpu-exec.c
+++ b/accel/tcg/cpu-exec.c
@@ -558,8 +558,8 @@ static void cpu_exec_longjmp_cleanup(CPUState *cpu)
         tcg_ctx->gen_tb = NULL;
     }
 #endif
-    if (qemu_mutex_iothread_locked()) {
-        qemu_mutex_unlock_iothread();
+    if (bql_locked()) {
+        bql_unlock();
     }
     assert_no_pages_locked();
 }
@@ -680,10 +680,10 @@ static inline bool cpu_handle_halt(CPUState *cpu)
 #if defined(TARGET_I386)
         if (cpu->interrupt_request & CPU_INTERRUPT_POLL) {
             X86CPU *x86_cpu = X86_CPU(cpu);
-            qemu_mutex_lock_iothread();
+            bql_lock();
             apic_poll_irq(x86_cpu->apic_state);
             cpu_reset_interrupt(cpu, CPU_INTERRUPT_POLL);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
         }
 #endif /* TARGET_I386 */
         if (!cpu_has_work(cpu)) {
@@ -749,9 +749,9 @@ static inline bool cpu_handle_exception(CPUState *cpu, int *ret)
 #else
         if (replay_exception()) {
             CPUClass *cc = CPU_GET_CLASS(cpu);
-            qemu_mutex_lock_iothread();
+            bql_lock();
             cc->tcg_ops->do_interrupt(cpu);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             cpu->exception_index = -1;
 
             if (unlikely(cpu->singlestep_enabled)) {
@@ -812,7 +812,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
 
     if (unlikely(qatomic_read(&cpu->interrupt_request))) {
         int interrupt_request;
-        qemu_mutex_lock_iothread();
+        bql_lock();
         interrupt_request = cpu->interrupt_request;
         if (unlikely(cpu->singlestep_enabled & SSTEP_NOIRQ)) {
             /* Mask out external interrupts for this step. */
@@ -821,7 +821,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
         if (interrupt_request & CPU_INTERRUPT_DEBUG) {
             cpu->interrupt_request &= ~CPU_INTERRUPT_DEBUG;
             cpu->exception_index = EXCP_DEBUG;
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             return true;
         }
 #if !defined(CONFIG_USER_ONLY)
@@ -832,7 +832,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
             cpu->interrupt_request &= ~CPU_INTERRUPT_HALT;
             cpu->halted = 1;
             cpu->exception_index = EXCP_HLT;
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             return true;
         }
 #if defined(TARGET_I386)
@@ -843,14 +843,14 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
             cpu_svm_check_intercept_param(env, SVM_EXIT_INIT, 0, 0);
             do_cpu_init(x86_cpu);
             cpu->exception_index = EXCP_HALTED;
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             return true;
         }
 #else
         else if (interrupt_request & CPU_INTERRUPT_RESET) {
             replay_interrupt();
             cpu_reset(cpu);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             return true;
         }
 #endif /* !TARGET_I386 */
@@ -873,7 +873,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
                  */
                 if (unlikely(cpu->singlestep_enabled)) {
                     cpu->exception_index = EXCP_DEBUG;
-                    qemu_mutex_unlock_iothread();
+                    bql_unlock();
                     return true;
                 }
                 cpu->exception_index = -1;
@@ -892,7 +892,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
         }
 
         /* If we exit via cpu_loop_exit/longjmp it is reset in cpu_exec */
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 
     /* Finally, check if we need to exit to the main loop.  */
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
index db3f93fda9..5698a9fd8e 100644
--- a/accel/tcg/cputlb.c
+++ b/accel/tcg/cputlb.c
@@ -2030,10 +2030,10 @@ static uint64_t do_ld_mmio_beN(CPUState *cpu, CPUTLBEntryFull *full,
     section = io_prepare(&mr_offset, cpu, full->xlat_section, attrs, addr, ra);
     mr = section->mr;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ret = int_ld_mmio_beN(cpu, full, ret_be, addr, size, mmu_idx,
                           type, ra, mr, mr_offset);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return ret;
 }
@@ -2054,12 +2054,12 @@ static Int128 do_ld16_mmio_beN(CPUState *cpu, CPUTLBEntryFull *full,
     section = io_prepare(&mr_offset, cpu, full->xlat_section, attrs, addr, ra);
     mr = section->mr;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     a = int_ld_mmio_beN(cpu, full, ret_be, addr, size - 8, mmu_idx,
                         MMU_DATA_LOAD, ra, mr, mr_offset);
     b = int_ld_mmio_beN(cpu, full, ret_be, addr + size - 8, 8, mmu_idx,
                         MMU_DATA_LOAD, ra, mr, mr_offset + size - 8);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return int128_make128(b, a);
 }
@@ -2577,10 +2577,10 @@ static uint64_t do_st_mmio_leN(CPUState *cpu, CPUTLBEntryFull *full,
     section = io_prepare(&mr_offset, cpu, full->xlat_section, attrs, addr, ra);
     mr = section->mr;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ret = int_st_mmio_leN(cpu, full, val_le, addr, size, mmu_idx,
                           ra, mr, mr_offset);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return ret;
 }
@@ -2601,12 +2601,12 @@ static uint64_t do_st16_mmio_leN(CPUState *cpu, CPUTLBEntryFull *full,
     section = io_prepare(&mr_offset, cpu, full->xlat_section, attrs, addr, ra);
     mr = section->mr;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     int_st_mmio_leN(cpu, full, int128_getlo(val_le), addr, 8,
                     mmu_idx, ra, mr, mr_offset);
     ret = int_st_mmio_leN(cpu, full, int128_gethi(val_le), addr + 8,
                           size - 8, mmu_idx, ra, mr, mr_offset + 8);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return ret;
 }
diff --git a/accel/tcg/tcg-accel-ops-icount.c b/accel/tcg/tcg-accel-ops-icount.c
index b25685fb71..5824d92580 100644
--- a/accel/tcg/tcg-accel-ops-icount.c
+++ b/accel/tcg/tcg-accel-ops-icount.c
@@ -126,9 +126,9 @@ void icount_prepare_for_run(CPUState *cpu, int64_t cpu_budget)
          * We're called without the iothread lock, so must take it while
          * we're calling timer handlers.
          */
-        qemu_mutex_lock_iothread();
+        bql_lock();
         icount_notify_aio_contexts();
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 }
 
diff --git a/accel/tcg/tcg-accel-ops-mttcg.c b/accel/tcg/tcg-accel-ops-mttcg.c
index fac80095bb..af7307013a 100644
--- a/accel/tcg/tcg-accel-ops-mttcg.c
+++ b/accel/tcg/tcg-accel-ops-mttcg.c
@@ -76,7 +76,7 @@ static void *mttcg_cpu_thread_fn(void *arg)
     rcu_add_force_rcu_notifier(&force_rcu.notifier);
     tcg_register_thread();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_thread_get_self(cpu->thread);
 
     cpu->thread_id = qemu_get_thread_id();
@@ -91,9 +91,9 @@ static void *mttcg_cpu_thread_fn(void *arg)
     do {
         if (cpu_can_run(cpu)) {
             int r;
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             r = tcg_cpus_exec(cpu);
-            qemu_mutex_lock_iothread();
+            bql_lock();
             switch (r) {
             case EXCP_DEBUG:
                 cpu_handle_guest_debug(cpu);
@@ -105,9 +105,9 @@ static void *mttcg_cpu_thread_fn(void *arg)
                  */
                 break;
             case EXCP_ATOMIC:
-                qemu_mutex_unlock_iothread();
+                bql_unlock();
                 cpu_exec_step_atomic(cpu);
-                qemu_mutex_lock_iothread();
+                bql_lock();
             default:
                 /* Ignore everything else? */
                 break;
@@ -119,7 +119,7 @@ static void *mttcg_cpu_thread_fn(void *arg)
     } while (!cpu->unplug || cpu_can_run(cpu));
 
     tcg_cpus_destroy(cpu);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     rcu_remove_force_rcu_notifier(&force_rcu.notifier);
     rcu_unregister_thread();
     return NULL;
diff --git a/accel/tcg/tcg-accel-ops-rr.c b/accel/tcg/tcg-accel-ops-rr.c
index 611932f3c3..c4ea372a3f 100644
--- a/accel/tcg/tcg-accel-ops-rr.c
+++ b/accel/tcg/tcg-accel-ops-rr.c
@@ -188,7 +188,7 @@ static void *rr_cpu_thread_fn(void *arg)
     rcu_add_force_rcu_notifier(&force_rcu);
     tcg_register_thread();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_thread_get_self(cpu->thread);
 
     cpu->thread_id = qemu_get_thread_id();
@@ -218,9 +218,9 @@ static void *rr_cpu_thread_fn(void *arg)
         /* Only used for icount_enabled() */
         int64_t cpu_budget = 0;
 
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         replay_mutex_lock();
-        qemu_mutex_lock_iothread();
+        bql_lock();
 
         if (icount_enabled()) {
             int cpu_count = rr_cpu_count();
@@ -254,7 +254,7 @@ static void *rr_cpu_thread_fn(void *arg)
             if (cpu_can_run(cpu)) {
                 int r;
 
-                qemu_mutex_unlock_iothread();
+                bql_unlock();
                 if (icount_enabled()) {
                     icount_prepare_for_run(cpu, cpu_budget);
                 }
@@ -262,15 +262,15 @@ static void *rr_cpu_thread_fn(void *arg)
                 if (icount_enabled()) {
                     icount_process_data(cpu);
                 }
-                qemu_mutex_lock_iothread();
+                bql_lock();
 
                 if (r == EXCP_DEBUG) {
                     cpu_handle_guest_debug(cpu);
                     break;
                 } else if (r == EXCP_ATOMIC) {
-                    qemu_mutex_unlock_iothread();
+                    bql_unlock();
                     cpu_exec_step_atomic(cpu);
-                    qemu_mutex_lock_iothread();
+                    bql_lock();
                     break;
                 }
             } else if (cpu->stop) {
diff --git a/accel/tcg/tcg-accel-ops.c b/accel/tcg/tcg-accel-ops.c
index 1b57290682..813065c0ec 100644
--- a/accel/tcg/tcg-accel-ops.c
+++ b/accel/tcg/tcg-accel-ops.c
@@ -88,7 +88,7 @@ static void tcg_cpu_reset_hold(CPUState *cpu)
 /* mask must never be zero, except for A20 change call */
 void tcg_handle_interrupt(CPUState *cpu, int mask)
 {
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     cpu->interrupt_request |= mask;
 
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index 79a88f5fb7..1737bb3da5 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -649,7 +649,7 @@ void cpu_io_recompile(CPUState *cpu, uintptr_t retaddr)
 
 void cpu_interrupt(CPUState *cpu, int mask)
 {
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     cpu->interrupt_request |= mask;
     qatomic_set(&cpu->neg.icount_decr.u16.high, -1);
 }
diff --git a/cpu-common.c b/cpu-common.c
index c81fd72d16..ce78273af5 100644
--- a/cpu-common.c
+++ b/cpu-common.c
@@ -351,11 +351,11 @@ void process_queued_cpu_work(CPUState *cpu)
              * BQL, so it goes to sleep; start_exclusive() is sleeping too, so
              * neither CPU can proceed.
              */
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             start_exclusive();
             wi->func(cpu, wi->data);
             end_exclusive();
-            qemu_mutex_lock_iothread();
+            bql_lock();
         } else {
             wi->func(cpu, wi->data);
         }
diff --git a/dump/dump.c b/dump/dump.c
index 4819050764..84064d890d 100644
--- a/dump/dump.c
+++ b/dump/dump.c
@@ -108,11 +108,11 @@ static int dump_cleanup(DumpState *s)
     s->guest_note = NULL;
     if (s->resume) {
         if (s->detached) {
-            qemu_mutex_lock_iothread();
+            bql_lock();
         }
         vm_start();
         if (s->detached) {
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
         }
     }
     migrate_del_blocker(&dump_migration_blocker);
diff --git a/hw/core/cpu-common.c b/hw/core/cpu-common.c
index 82dae51a55..a59e2ce645 100644
--- a/hw/core/cpu-common.c
+++ b/hw/core/cpu-common.c
@@ -70,14 +70,14 @@ CPUState *cpu_create(const char *typename)
  * BQL here if we need to.  cpu_interrupt assumes it is held.*/
 void cpu_reset_interrupt(CPUState *cpu, int mask)
 {
-    bool need_lock = !qemu_mutex_iothread_locked();
+    bool need_lock = !bql_locked();
 
     if (need_lock) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
     cpu->interrupt_request &= ~mask;
     if (need_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 }
 
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index 5085a6fee3..7e310109cf 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -1665,7 +1665,7 @@ static bool vtd_switch_address_space(VTDAddressSpace *as)
 {
     bool use_iommu, pt;
     /* Whether we need to take the BQL on our own */
-    bool take_bql = !qemu_mutex_iothread_locked();
+    bool take_bql = !bql_locked();
 
     assert(as);
 
@@ -1683,7 +1683,7 @@ static bool vtd_switch_address_space(VTDAddressSpace *as)
      * it. We'd better make sure we have had it already, or, take it.
      */
     if (take_bql) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
 
     /* Turn off first then on the other */
@@ -1738,7 +1738,7 @@ static bool vtd_switch_address_space(VTDAddressSpace *as)
     }
 
     if (take_bql) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 
     return use_iommu;
diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c
index 02b8cbf8df..d7d15cfaf7 100644
--- a/hw/i386/kvm/xen_evtchn.c
+++ b/hw/i386/kvm/xen_evtchn.c
@@ -425,7 +425,7 @@ void xen_evtchn_set_callback_level(int level)
      * effect immediately. That just leaves interdomain loopback as the case
      * which uses the BH.
      */
-    if (!qemu_mutex_iothread_locked()) {
+    if (!bql_locked()) {
         qemu_bh_schedule(s->gsi_bh);
         return;
     }
@@ -459,7 +459,7 @@ int xen_evtchn_set_callback_param(uint64_t param)
      * We need the BQL because set_callback_pci_intx() may call into PCI code,
      * and because we may need to manipulate the old and new GSI levels.
      */
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
     qemu_mutex_lock(&s->port_lock);
 
     switch (type) {
@@ -1037,7 +1037,7 @@ static int close_port(XenEvtchnState *s, evtchn_port_t port,
     XenEvtchnPort *p = &s->port_table[port];
 
     /* Because it *might* be a PIRQ port */
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     switch (p->type) {
     case EVTCHNSTAT_closed:
@@ -1104,7 +1104,7 @@ int xen_evtchn_soft_reset(void)
         return -ENOTSUP;
     }
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     qemu_mutex_lock(&s->port_lock);
 
@@ -1601,7 +1601,7 @@ bool xen_evtchn_set_gsi(int gsi, int level)
     XenEvtchnState *s = xen_evtchn_singleton;
     int pirq;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     if (!s || gsi < 0 || gsi >= IOAPIC_NUM_PINS) {
         return false;
@@ -1712,7 +1712,7 @@ void xen_evtchn_snoop_msi(PCIDevice *dev, bool is_msix, unsigned int vector,
         return;
     }
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     pirq = msi_pirq_target(addr, data);
 
@@ -1749,7 +1749,7 @@ int xen_evtchn_translate_pirq_msi(struct kvm_irq_routing_entry *route,
         return 1; /* Not a PIRQ */
     }
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     pirq = msi_pirq_target(address, data);
     if (!pirq || pirq >= s->nr_pirqs) {
@@ -1796,7 +1796,7 @@ bool xen_evtchn_deliver_pirq_msi(uint64_t address, uint32_t data)
         return false;
     }
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     pirq = msi_pirq_target(address, data);
     if (!pirq || pirq >= s->nr_pirqs) {
diff --git a/hw/i386/kvm/xen_overlay.c b/hw/i386/kvm/xen_overlay.c
index 39fda1b72c..1722294638 100644
--- a/hw/i386/kvm/xen_overlay.c
+++ b/hw/i386/kvm/xen_overlay.c
@@ -194,7 +194,7 @@ int xen_overlay_map_shinfo_page(uint64_t gpa)
         return -ENOENT;
     }
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     if (s->shinfo_gpa) {
         /* If removing shinfo page, turn the kernel magic off first */
diff --git a/hw/i386/kvm/xen_xenstore.c b/hw/i386/kvm/xen_xenstore.c
index 6e651960b3..ae27889a3f 100644
--- a/hw/i386/kvm/xen_xenstore.c
+++ b/hw/i386/kvm/xen_xenstore.c
@@ -1341,7 +1341,7 @@ static void fire_watch_cb(void *opaque, const char *path, const char *token)
 {
     XenXenstoreState *s = opaque;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     /*
      * If there's a response pending, we obviously can't scribble over
diff --git a/hw/intc/arm_gicv3_cpuif.c b/hw/intc/arm_gicv3_cpuif.c
index ab1a00508e..77c2a6dd3b 100644
--- a/hw/intc/arm_gicv3_cpuif.c
+++ b/hw/intc/arm_gicv3_cpuif.c
@@ -934,7 +934,7 @@ void gicv3_cpuif_update(GICv3CPUState *cs)
     ARMCPU *cpu = ARM_CPU(cs->cpu);
     CPUARMState *env = &cpu->env;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     trace_gicv3_cpuif_update(gicv3_redist_affid(cs), cs->hppi.irq,
                              cs->hppi.grp, cs->hppi.prio);
diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c
index 74e02858d4..93b8531ad0 100644
--- a/hw/intc/s390_flic.c
+++ b/hw/intc/s390_flic.c
@@ -106,7 +106,7 @@ static int qemu_s390_clear_io_flic(S390FLICState *fs, uint16_t subchannel_id,
     QEMUS390FlicIO *cur, *next;
     uint8_t isc;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     if (!(flic->pending & FLIC_PENDING_IO)) {
         return 0;
     }
@@ -223,7 +223,7 @@ uint32_t qemu_s390_flic_dequeue_service(QEMUS390FLICState *flic)
 {
     uint32_t tmp;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     g_assert(flic->pending & FLIC_PENDING_SERVICE);
     tmp = flic->service_param;
     flic->service_param = 0;
@@ -238,7 +238,7 @@ QEMUS390FlicIO *qemu_s390_flic_dequeue_io(QEMUS390FLICState *flic, uint64_t cr6)
     QEMUS390FlicIO *io;
     uint8_t isc;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     if (!(flic->pending & CR6_TO_PENDING_IO(cr6))) {
         return NULL;
     }
@@ -262,7 +262,7 @@ QEMUS390FlicIO *qemu_s390_flic_dequeue_io(QEMUS390FLICState *flic, uint64_t cr6)
 
 void qemu_s390_flic_dequeue_crw_mchk(QEMUS390FLICState *flic)
 {
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     g_assert(flic->pending & FLIC_PENDING_MCHK_CR);
     flic->pending &= ~FLIC_PENDING_MCHK_CR;
 }
@@ -271,7 +271,7 @@ static void qemu_s390_inject_service(S390FLICState *fs, uint32_t parm)
 {
     QEMUS390FLICState *flic = s390_get_qemu_flic(fs);
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     /* multiplexing is good enough for sclp - kvm does it internally as well */
     flic->service_param |= parm;
     flic->pending |= FLIC_PENDING_SERVICE;
@@ -287,7 +287,7 @@ static void qemu_s390_inject_io(S390FLICState *fs, uint16_t subchannel_id,
     QEMUS390FLICState *flic = s390_get_qemu_flic(fs);
     QEMUS390FlicIO *io;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     io = g_new0(QEMUS390FlicIO, 1);
     io->id = subchannel_id;
     io->nr = subchannel_nr;
@@ -304,7 +304,7 @@ static void qemu_s390_inject_crw_mchk(S390FLICState *fs)
 {
     QEMUS390FLICState *flic = s390_get_qemu_flic(fs);
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     flic->pending |= FLIC_PENDING_MCHK_CR;
 
     qemu_s390_flic_notify(FLIC_PENDING_MCHK_CR);
@@ -330,7 +330,7 @@ bool qemu_s390_flic_has_crw_mchk(QEMUS390FLICState *flic)
 
 bool qemu_s390_flic_has_any(QEMUS390FLICState *flic)
 {
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     return !!flic->pending;
 }
 
@@ -340,7 +340,7 @@ static void qemu_s390_flic_reset(DeviceState *dev)
     QEMUS390FlicIO *cur, *next;
     int isc;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     flic->simm = 0;
     flic->nimm = 0;
     flic->pending = 0;
diff --git a/hw/misc/edu.c b/hw/misc/edu.c
index a1f8bc77e7..fa05bdd4f3 100644
--- a/hw/misc/edu.c
+++ b/hw/misc/edu.c
@@ -355,9 +355,9 @@ static void *edu_fact_thread(void *opaque)
         smp_mb__after_rmw();
 
         if (qatomic_read(&edu->status) & EDU_STATUS_IRQFACT) {
-            qemu_mutex_lock_iothread();
+            bql_lock();
             edu_raise_irq(edu, FACT_IRQ);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
         }
     }
 
diff --git a/hw/misc/imx6_src.c b/hw/misc/imx6_src.c
index a9c64d06eb..2b9bb07540 100644
--- a/hw/misc/imx6_src.c
+++ b/hw/misc/imx6_src.c
@@ -131,7 +131,7 @@ static void imx6_clear_reset_bit(CPUState *cpu, run_on_cpu_data data)
     struct SRCSCRResetInfo *ri = data.host_ptr;
     IMX6SRCState *s = ri->s;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     s->regs[SRC_SCR] = deposit32(s->regs[SRC_SCR], ri->reset_bit, 1, 0);
     DPRINTF("reg[%s] <= 0x%" PRIx32 "\n",
diff --git a/hw/misc/imx7_src.c b/hw/misc/imx7_src.c
index 983251e86f..77ad7a7eef 100644
--- a/hw/misc/imx7_src.c
+++ b/hw/misc/imx7_src.c
@@ -136,7 +136,7 @@ static void imx7_clear_reset_bit(CPUState *cpu, run_on_cpu_data data)
     struct SRCSCRResetInfo *ri = data.host_ptr;
     IMX7SRCState *s = ri->s;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     s->regs[SRC_A7RCR0] = deposit32(s->regs[SRC_A7RCR0], ri->reset_bit, 1, 0);
 
diff --git a/hw/net/xen_nic.c b/hw/net/xen_nic.c
index 1e2b3baeb1..453fdb9819 100644
--- a/hw/net/xen_nic.c
+++ b/hw/net/xen_nic.c
@@ -133,7 +133,7 @@ static bool net_tx_packets(struct XenNetDev *netdev)
     void *page;
     void *tmpbuf = NULL;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     for (;;) {
         rc = netdev->tx_ring.req_cons;
@@ -260,7 +260,7 @@ static ssize_t net_rx_packet(NetClientState *nc, const uint8_t *buf, size_t size
     RING_IDX rc, rp;
     void *page;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     if (xen_device_backend_get_state(&netdev->xendev) != XenbusStateConnected) {
         return -1;
@@ -354,7 +354,7 @@ static bool xen_netdev_connect(XenDevice *xendev, Error **errp)
     XenNetDev *netdev = XEN_NET_DEVICE(xendev);
     unsigned int port, rx_copy;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     if (xen_device_frontend_scanf(xendev, "tx-ring-ref", "%u",
                                   &netdev->tx_ring_ref) != 1) {
@@ -425,7 +425,7 @@ static void xen_netdev_disconnect(XenDevice *xendev, Error **errp)
 
     trace_xen_netdev_disconnect(netdev->dev);
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     netdev->tx_ring.sring = NULL;
     netdev->rx_ring.sring = NULL;
diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c
index 3203a4a728..d84f3f977d 100644
--- a/hw/ppc/pegasos2.c
+++ b/hw/ppc/pegasos2.c
@@ -515,7 +515,7 @@ static void pegasos2_hypercall(PPCVirtualHypervisor *vhyp, PowerPCCPU *cpu)
     CPUPPCState *env = &cpu->env;
 
     /* The TCG path should also be holding the BQL at this point */
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     if (FIELD_EX64(env->msr, MSR, PR)) {
         qemu_log_mask(LOG_GUEST_ERROR, "Hypercall made with MSR[PR]=1\n");
diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
index be167710a3..b6581c16fc 100644
--- a/hw/ppc/ppc.c
+++ b/hw/ppc/ppc.c
@@ -314,7 +314,7 @@ void store_40x_dbcr0(CPUPPCState *env, uint32_t val)
 {
     PowerPCCPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     switch ((val >> 28) & 0x3) {
     case 0x0:
@@ -334,7 +334,7 @@ void store_40x_dbcr0(CPUPPCState *env, uint32_t val)
         break;
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 /* PowerPC 40x internal IRQ controller */
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index df09aa9d6a..0620912f9c 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1304,7 +1304,7 @@ static void emulate_spapr_hypercall(PPCVirtualHypervisor *vhyp,
     CPUPPCState *env = &cpu->env;
 
     /* The TCG path should also be holding the BQL at this point */
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     g_assert(!vhyp_cpu_in_nested(cpu));
 
diff --git a/hw/ppc/spapr_rng.c b/hw/ppc/spapr_rng.c
index df5c4b9687..c2fda7ad20 100644
--- a/hw/ppc/spapr_rng.c
+++ b/hw/ppc/spapr_rng.c
@@ -82,9 +82,9 @@ static target_ulong h_random(PowerPCCPU *cpu, SpaprMachineState *spapr,
     while (hrdata.received < 8) {
         rng_backend_request_entropy(rngstate->backend, 8 - hrdata.received,
                                     random_recv, &hrdata);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         qemu_sem_wait(&hrdata.sem);
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
 
     qemu_sem_destroy(&hrdata.sem);
diff --git a/hw/ppc/spapr_softmmu.c b/hw/ppc/spapr_softmmu.c
index 278666317e..fc1bbc0b61 100644
--- a/hw/ppc/spapr_softmmu.c
+++ b/hw/ppc/spapr_softmmu.c
@@ -334,7 +334,7 @@ static void *hpt_prepare_thread(void *opaque)
         pending->ret = H_NO_MEM;
     }
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     if (SPAPR_MACHINE(qdev_get_machine())->pending_hpt == pending) {
         /* Ready to go */
@@ -344,7 +344,7 @@ static void *hpt_prepare_thread(void *opaque)
         free_pending_hpt(pending);
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     return NULL;
 }
 
diff --git a/hw/remote/mpqemu-link.c b/hw/remote/mpqemu-link.c
index 9bd98e8219..d04ac93621 100644
--- a/hw/remote/mpqemu-link.c
+++ b/hw/remote/mpqemu-link.c
@@ -33,7 +33,7 @@
  */
 bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)
 {
-    bool iolock = qemu_mutex_iothread_locked();
+    bool drop_bql = bql_locked();
     bool iothread = qemu_in_iothread();
     struct iovec send[2] = {};
     int *fds = NULL;
@@ -63,8 +63,8 @@ bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)
      * for IOThread case.
      * Also skip lock handling while in a co-routine in the main context.
      */
-    if (iolock && !iothread && !qemu_in_coroutine()) {
-        qemu_mutex_unlock_iothread();
+    if (drop_bql && !iothread && !qemu_in_coroutine()) {
+        bql_unlock();
     }
 
     if (!qio_channel_writev_full_all(ioc, send, G_N_ELEMENTS(send),
@@ -74,9 +74,9 @@ bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)
         trace_mpqemu_send_io_error(msg->cmd, msg->size, nfds);
     }
 
-    if (iolock && !iothread && !qemu_in_coroutine()) {
+    if (drop_bql && !iothread && !qemu_in_coroutine()) {
         /* See above comment why skip locking here. */
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
 
     return ret;
@@ -96,7 +96,7 @@ static ssize_t mpqemu_read(QIOChannel *ioc, void *buf, size_t len, int **fds,
                            size_t *nfds, Error **errp)
 {
     struct iovec iov = { .iov_base = buf, .iov_len = len };
-    bool iolock = qemu_mutex_iothread_locked();
+    bool drop_bql = bql_locked();
     bool iothread = qemu_in_iothread();
     int ret = -1;
 
@@ -106,14 +106,14 @@ static ssize_t mpqemu_read(QIOChannel *ioc, void *buf, size_t len, int **fds,
      */
     assert(qemu_in_coroutine() || !iothread);
 
-    if (iolock && !iothread && !qemu_in_coroutine()) {
-        qemu_mutex_unlock_iothread();
+    if (drop_bql && !iothread && !qemu_in_coroutine()) {
+        bql_unlock();
     }
 
     ret = qio_channel_readv_full_all_eof(ioc, &iov, 1, fds, nfds, errp);
 
-    if (iolock && !iothread && !qemu_in_coroutine()) {
-        qemu_mutex_lock_iothread();
+    if (drop_bql && !iothread && !qemu_in_coroutine()) {
+        bql_lock();
     }
 
     return (ret <= 0) ? ret : iov.iov_len;
diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c
index 8b10c32a3c..d9b879e056 100644
--- a/hw/remote/vfio-user-obj.c
+++ b/hw/remote/vfio-user-obj.c
@@ -400,7 +400,7 @@ static int vfu_object_mr_rw(MemoryRegion *mr, uint8_t *buf, hwaddr offset,
         }
 
         if (release_lock) {
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             release_lock = false;
         }
 
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
index 8f5159d85d..5c535d483e 100644
--- a/hw/s390x/s390-skeys.c
+++ b/hw/s390x/s390-skeys.c
@@ -153,7 +153,7 @@ void qmp_dump_skeys(const char *filename, Error **errp)
         goto out;
     }
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
     guest_phys_blocks_init(&guest_phys_blocks);
     guest_phys_blocks_append(&guest_phys_blocks);
 
diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c
index 24347ab0f7..92e031b6fa 100644
--- a/migration/block-dirty-bitmap.c
+++ b/migration/block-dirty-bitmap.c
@@ -774,7 +774,7 @@ static void dirty_bitmap_state_pending(void *opaque,
     SaveBitmapState *dbms;
     uint64_t pending = 0;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     QSIMPLEQ_FOREACH(dbms, &s->dbms_list, entry) {
         uint64_t gran = bdrv_dirty_bitmap_granularity(dbms->bitmap);
@@ -784,7 +784,7 @@ static void dirty_bitmap_state_pending(void *opaque,
         pending += DIV_ROUND_UP(sectors * BDRV_SECTOR_SIZE, gran);
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     trace_dirty_bitmap_state_pending(pending);
 
diff --git a/migration/block.c b/migration/block.c
index a15f9bddcb..4a675b92bc 100644
--- a/migration/block.c
+++ b/migration/block.c
@@ -269,7 +269,7 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
     int64_t count;
 
     if (bmds->shared_base) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         aio_context_acquire(blk_get_aio_context(bb));
         /* Skip unallocated sectors; intentionally treats failure or
          * partial sector as an allocated sector */
@@ -282,7 +282,7 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
             cur_sector += count >> BDRV_SECTOR_BITS;
         }
         aio_context_release(blk_get_aio_context(bb));
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 
     if (cur_sector >= total_sectors) {
@@ -321,14 +321,14 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
      * This is ugly and will disappear when we make bdrv_* thread-safe,
      * without the need to acquire the AioContext.
      */
-    qemu_mutex_lock_iothread();
+    bql_lock();
     aio_context_acquire(blk_get_aio_context(bmds->blk));
     bdrv_reset_dirty_bitmap(bmds->dirty_bitmap, cur_sector * BDRV_SECTOR_SIZE,
                             nr_sectors * BDRV_SECTOR_SIZE);
     blk->aiocb = blk_aio_preadv(bb, cur_sector * BDRV_SECTOR_SIZE, &blk->qiov,
                                 0, blk_mig_read_cb, blk);
     aio_context_release(blk_get_aio_context(bmds->blk));
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     bmds->cur_sector = cur_sector + nr_sectors;
     return (bmds->cur_sector >= total_sectors);
@@ -786,9 +786,9 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
             /* Always called with iothread lock taken for
              * simplicity, block_save_complete also calls it.
              */
-            qemu_mutex_lock_iothread();
+            bql_lock();
             ret = blk_mig_save_dirty_block(f, 1);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
         }
         if (ret < 0) {
             return ret;
@@ -860,9 +860,9 @@ static void block_state_pending(void *opaque, uint64_t *must_precopy,
     /* Estimate pending number of bytes to send */
     uint64_t pending;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     pending = get_remaining_dirty();
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     blk_mig_lock();
     pending += block_mig_state.submitted * BLK_MIG_BLOCK_SIZE +
diff --git a/migration/colo.c b/migration/colo.c
index 4447e34914..2a74efdd77 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -420,13 +420,13 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
     qio_channel_io_seek(QIO_CHANNEL(bioc), 0, 0, NULL);
     bioc->usage = 0;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     if (failover_get_state() != FAILOVER_STATUS_NONE) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         goto out;
     }
     vm_stop_force_state(RUN_STATE_COLO);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     trace_colo_vm_state_change("run", "stop");
     /*
      * Failover request bh could be called after vm_stop_force_state(),
@@ -435,23 +435,23 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
     if (failover_get_state() != FAILOVER_STATUS_NONE) {
         goto out;
     }
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     replication_do_checkpoint_all(&local_err);
     if (local_err) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         goto out;
     }
 
     colo_send_message(s->to_dst_file, COLO_MESSAGE_VMSTATE_SEND, &local_err);
     if (local_err) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         goto out;
     }
     /* Note: device state is saved into buffer */
     ret = qemu_save_device_state(fb);
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     if (ret < 0) {
         goto out;
     }
@@ -504,9 +504,9 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
 
     ret = 0;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     vm_start();
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     trace_colo_vm_state_change("stop", "run");
 
 out:
@@ -557,15 +557,15 @@ static void colo_process_checkpoint(MigrationState *s)
     fb = qemu_file_new_output(QIO_CHANNEL(bioc));
     object_unref(OBJECT(bioc));
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     replication_start_all(REPLICATION_MODE_PRIMARY, &local_err);
     if (local_err) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         goto out;
     }
 
     vm_start();
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     trace_colo_vm_state_change("stop", "run");
 
     timer_mod(s->colo_delay_timer, qemu_clock_get_ms(QEMU_CLOCK_HOST) +
@@ -639,14 +639,14 @@ out:
 
 void migrate_start_colo_process(MigrationState *s)
 {
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     qemu_event_init(&s->colo_checkpoint_event, false);
     s->colo_delay_timer =  timer_new_ms(QEMU_CLOCK_HOST,
                                 colo_checkpoint_notify, s);
 
     qemu_sem_init(&s->colo_exit_sem, 0);
     colo_process_checkpoint(s);
-    qemu_mutex_lock_iothread();
+    bql_lock();
 }
 
 static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
@@ -657,9 +657,9 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
     Error *local_err = NULL;
     int ret;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     vm_stop_force_state(RUN_STATE_COLO);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     trace_colo_vm_state_change("run", "stop");
 
     /* FIXME: This is unnecessary for periodic checkpoint mode */
@@ -677,10 +677,10 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
         return;
     }
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     cpu_synchronize_all_states();
     ret = qemu_loadvm_state_main(mis->from_src_file, mis);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     if (ret < 0) {
         error_setg(errp, "Load VM's live state (ram) error");
@@ -719,14 +719,14 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
         return;
     }
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     vmstate_loading = true;
     colo_flush_ram_cache();
     ret = qemu_load_device_state(fb);
     if (ret < 0) {
         error_setg(errp, "COLO: load device state failed");
         vmstate_loading = false;
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         return;
     }
 
@@ -734,7 +734,7 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
     if (local_err) {
         error_propagate(errp, local_err);
         vmstate_loading = false;
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         return;
     }
 
@@ -743,7 +743,7 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
     if (local_err) {
         error_propagate(errp, local_err);
         vmstate_loading = false;
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         return;
     }
     /* Notify all filters of all NIC to do checkpoint */
@@ -752,13 +752,13 @@ static void colo_incoming_process_checkpoint(MigrationIncomingState *mis,
     if (local_err) {
         error_propagate(errp, local_err);
         vmstate_loading = false;
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         return;
     }
 
     vmstate_loading = false;
     vm_start();
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     trace_colo_vm_state_change("stop", "run");
 
     if (failover_get_state() == FAILOVER_STATUS_RELAUNCH) {
@@ -851,14 +851,14 @@ static void *colo_process_incoming_thread(void *opaque)
     fb = qemu_file_new_input(QIO_CHANNEL(bioc));
     object_unref(OBJECT(bioc));
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     replication_start_all(REPLICATION_MODE_SECONDARY, &local_err);
     if (local_err) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         goto out;
     }
     vm_start();
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     trace_colo_vm_state_change("stop", "run");
 
     colo_send_message(mis->to_src_file, COLO_MESSAGE_CHECKPOINT_READY,
@@ -920,7 +920,7 @@ int coroutine_fn colo_incoming_co(void)
     Error *local_err = NULL;
     QemuThread th;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     if (!migration_incoming_colo_enabled()) {
         return 0;
@@ -940,10 +940,10 @@ int coroutine_fn colo_incoming_co(void)
     qemu_coroutine_yield();
     mis->colo_incoming_co = NULL;
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     /* Wait checkpoint incoming thread exit before free resource */
     qemu_thread_join(&th);
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     /* We hold the global iothread lock, so it is safe here */
     colo_release_ram_cache();
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index 036ac017fc..429d10c4d9 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -90,13 +90,13 @@ static int64_t do_calculate_dirtyrate(DirtyPageRecord dirty_pages,
 
 void global_dirty_log_change(unsigned int flag, bool start)
 {
-    qemu_mutex_lock_iothread();
+    bql_lock();
     if (start) {
         memory_global_dirty_log_start(flag);
     } else {
         memory_global_dirty_log_stop(flag);
     }
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 /*
@@ -106,12 +106,12 @@ void global_dirty_log_change(unsigned int flag, bool start)
  */
 static void global_dirty_log_sync(unsigned int flag, bool one_shot)
 {
-    qemu_mutex_lock_iothread();
+    bql_lock();
     memory_global_dirty_log_sync(false);
     if (one_shot) {
         memory_global_dirty_log_stop(flag);
     }
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 static DirtyPageRecord *vcpu_dirty_stat_alloc(VcpuStat *stat)
@@ -610,7 +610,7 @@ static void calculate_dirtyrate_dirty_bitmap(struct DirtyRateConfig config)
     int64_t start_time;
     DirtyPageRecord dirty_pages;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     memory_global_dirty_log_start(GLOBAL_DIRTY_DIRTY_RATE);
 
     /*
@@ -627,7 +627,7 @@ static void calculate_dirtyrate_dirty_bitmap(struct DirtyRateConfig config)
      * KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE cap is enabled.
      */
     dirtyrate_manual_reset_protect();
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     record_dirtypages_bitmap(&dirty_pages, true);
 
diff --git a/migration/migration.c b/migration/migration.c
index 3ce04b2aaf..be74c714d6 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1294,12 +1294,12 @@ static void migrate_fd_cleanup(MigrationState *s)
         QEMUFile *tmp;
 
         trace_migrate_fd_cleanup();
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         if (s->migration_thread_running) {
             qemu_thread_join(&s->thread);
             s->migration_thread_running = false;
         }
-        qemu_mutex_lock_iothread();
+        bql_lock();
 
         multifd_save_cleanup();
         qemu_mutex_lock(&s->qemu_file_lock);
@@ -2411,7 +2411,7 @@ static int postcopy_start(MigrationState *ms, Error **errp)
     }
 
     trace_postcopy_start();
-    qemu_mutex_lock_iothread();
+    bql_lock();
     trace_postcopy_start_set_run();
 
     migration_downtime_start(ms);
@@ -2520,7 +2520,7 @@ static int postcopy_start(MigrationState *ms, Error **errp)
 
     migration_downtime_end(ms);
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     if (migrate_postcopy_ram()) {
         /*
@@ -2561,7 +2561,7 @@ fail:
             error_report_err(local_err);
         }
     }
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     return -1;
 }
 
@@ -2595,14 +2595,14 @@ static int migration_maybe_pause(MigrationState *s,
      * wait for the 'pause_sem' semaphore.
      */
     if (s->state != MIGRATION_STATUS_CANCELLING) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         migrate_set_state(&s->state, *current_active_state,
                           MIGRATION_STATUS_PRE_SWITCHOVER);
         qemu_sem_wait(&s->pause_sem);
         migrate_set_state(&s->state, MIGRATION_STATUS_PRE_SWITCHOVER,
                           new_state);
         *current_active_state = new_state;
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
 
     return s->state == new_state ? 0 : -EINVAL;
@@ -2613,7 +2613,7 @@ static int migration_completion_precopy(MigrationState *s,
 {
     int ret;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     migration_downtime_start(s);
     qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER, NULL);
 
@@ -2641,7 +2641,7 @@ static int migration_completion_precopy(MigrationState *s,
     ret = qemu_savevm_state_complete_precopy(s->to_dst_file, false,
                                              s->block_inactive);
 out_unlock:
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     return ret;
 }
 
@@ -2649,9 +2649,9 @@ static void migration_completion_postcopy(MigrationState *s)
 {
     trace_migration_completion_postcopy_end();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_savevm_state_complete_postcopy(s->to_dst_file);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     /*
      * Shutdown the postcopy fast path thread.  This is only needed when dest
@@ -2675,14 +2675,14 @@ static void migration_completion_failed(MigrationState *s,
          */
         Error *local_err = NULL;
 
-        qemu_mutex_lock_iothread();
+        bql_lock();
         bdrv_activate_all(&local_err);
         if (local_err) {
             error_report_err(local_err);
         } else {
             s->block_inactive = false;
         }
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 
     migrate_set_state(&s->state, current_active_state,
@@ -3122,7 +3122,7 @@ static void migration_iteration_finish(MigrationState *s)
     /* If we enabled cpu throttling for auto-converge, turn it off. */
     cpu_throttle_stop();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     switch (s->state) {
     case MIGRATION_STATUS_COMPLETED:
         migration_calculate_complete(s);
@@ -3153,7 +3153,7 @@ static void migration_iteration_finish(MigrationState *s)
         break;
     }
     migrate_fd_cleanup_schedule(s);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 static void bg_migration_iteration_finish(MigrationState *s)
@@ -3165,7 +3165,7 @@ static void bg_migration_iteration_finish(MigrationState *s)
      */
     ram_write_tracking_stop();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     switch (s->state) {
     case MIGRATION_STATUS_COMPLETED:
         migration_calculate_complete(s);
@@ -3184,7 +3184,7 @@ static void bg_migration_iteration_finish(MigrationState *s)
     }
 
     migrate_fd_cleanup_schedule(s);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 /*
@@ -3306,9 +3306,9 @@ static void *migration_thread(void *opaque)
     object_ref(OBJECT(s));
     update_iteration_initial_status(s);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_savevm_state_header(s->to_dst_file);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     /*
      * If we opened the return path, we need to make sure dst has it
@@ -3336,9 +3336,9 @@ static void *migration_thread(void *opaque)
         qemu_savevm_send_colo_enable(s->to_dst_file);
     }
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_savevm_state_setup(s->to_dst_file);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,
                                MIGRATION_STATUS_ACTIVE);
@@ -3449,10 +3449,10 @@ static void *bg_migration_thread(void *opaque)
     ram_write_tracking_prepare();
 #endif
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_savevm_state_header(s->to_dst_file);
     qemu_savevm_state_setup(s->to_dst_file);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,
                                MIGRATION_STATUS_ACTIVE);
@@ -3462,7 +3462,7 @@ static void *bg_migration_thread(void *opaque)
     trace_migration_thread_setup_complete();
     migration_downtime_start(s);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     /*
      * If VM is currently in suspended state, then, to make a valid runstate
@@ -3505,7 +3505,7 @@ static void *bg_migration_thread(void *opaque)
     s->vm_start_bh = qemu_bh_new(bg_migration_vm_start_bh, s);
     qemu_bh_schedule(s->vm_start_bh);
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     while (migration_is_active(s)) {
         MigIterateState iter_state = bg_migration_iteration_run(s);
@@ -3534,7 +3534,7 @@ fail:
     if (early_fail) {
         migrate_set_state(&s->state, MIGRATION_STATUS_ACTIVE,
                 MIGRATION_STATUS_FAILED);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 
     bg_migration_iteration_finish(s);
diff --git a/migration/ram.c b/migration/ram.c
index 8c7886ab79..08dc7e2909 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -2984,9 +2984,9 @@ static int ram_save_setup(QEMUFile *f, void *opaque)
     migration_ops = g_malloc0(sizeof(MigrationOps));
     migration_ops->ram_save_target_page = ram_save_target_page_legacy;
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     ret = multifd_send_sync_main(f);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     if (ret < 0) {
         return ret;
     }
@@ -3221,11 +3221,11 @@ static void ram_state_pending_exact(void *opaque, uint64_t *must_precopy,
     uint64_t remaining_size = rs->migration_dirty_pages * TARGET_PAGE_SIZE;
 
     if (!migration_in_postcopy() && remaining_size < s->threshold_size) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         WITH_RCU_READ_LOCK_GUARD() {
             migration_bitmap_sync_precopy(rs, false);
         }
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         remaining_size = rs->migration_dirty_pages * TARGET_PAGE_SIZE;
     }
 
@@ -3453,7 +3453,7 @@ void colo_incoming_start_dirty_log(void)
 {
     RAMBlock *block = NULL;
     /* For memory_global_dirty_log_start below. */
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_mutex_lock_ramlist();
 
     memory_global_dirty_log_sync(false);
@@ -3467,7 +3467,7 @@ void colo_incoming_start_dirty_log(void)
     }
     ram_state->migration_dirty_pages = 0;
     qemu_mutex_unlock_ramlist();
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 /* It is need to hold the global lock to call this helper */
diff --git a/replay/replay-internal.c b/replay/replay-internal.c
index 77d0c82327..3e08e381cb 100644
--- a/replay/replay-internal.c
+++ b/replay/replay-internal.c
@@ -216,7 +216,7 @@ void replay_mutex_lock(void)
 {
     if (replay_mode != REPLAY_MODE_NONE) {
         unsigned long id;
-        g_assert(!qemu_mutex_iothread_locked());
+        g_assert(!bql_locked());
         g_assert(!replay_mutex_locked());
         qemu_mutex_lock(&lock);
         id = mutex_tail++;
diff --git a/semihosting/console.c b/semihosting/console.c
index 5d61e8207e..60102bbab6 100644
--- a/semihosting/console.c
+++ b/semihosting/console.c
@@ -43,7 +43,7 @@ static SemihostingConsole console;
 static int console_can_read(void *opaque)
 {
     SemihostingConsole *c = opaque;
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     return (int)fifo8_num_free(&c->fifo);
 }
 
@@ -58,7 +58,7 @@ static void console_wake_up(gpointer data, gpointer user_data)
 static void console_read(void *opaque, const uint8_t *buf, int size)
 {
     SemihostingConsole *c = opaque;
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     while (size-- && !fifo8_is_full(&c->fifo)) {
         fifo8_push(&c->fifo, *buf++);
     }
@@ -70,7 +70,7 @@ bool qemu_semihosting_console_ready(void)
 {
     SemihostingConsole *c = &console;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     return !fifo8_is_empty(&c->fifo);
 }
 
@@ -78,7 +78,7 @@ void qemu_semihosting_console_block_until_ready(CPUState *cs)
 {
     SemihostingConsole *c = &console;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     /* Block if the fifo is completely empty. */
     if (fifo8_is_empty(&c->fifo)) {
diff --git a/stubs/iothread-lock.c b/stubs/iothread-lock.c
index 5b45b7fc8b..d7890e5581 100644
--- a/stubs/iothread-lock.c
+++ b/stubs/iothread-lock.c
@@ -1,15 +1,15 @@
 #include "qemu/osdep.h"
 #include "qemu/main-loop.h"
 
-bool qemu_mutex_iothread_locked(void)
+bool bql_locked(void)
 {
     return false;
 }
 
-void qemu_mutex_lock_iothread_impl(const char *file, int line)
+void bql_lock_impl(const char *file, int line)
 {
 }
 
-void qemu_mutex_unlock_iothread(void)
+void bql_unlock(void)
 {
 }
diff --git a/system/cpu-throttle.c b/system/cpu-throttle.c
index d9bb30a223..786a9a5639 100644
--- a/system/cpu-throttle.c
+++ b/system/cpu-throttle.c
@@ -57,9 +57,9 @@ static void cpu_throttle_thread(CPUState *cpu, run_on_cpu_data opaque)
             qemu_cond_timedwait_iothread(cpu->halt_cond,
                                          sleeptime_ns / SCALE_MS);
         } else {
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             g_usleep(sleeptime_ns / SCALE_US);
-            qemu_mutex_lock_iothread();
+            bql_lock();
         }
         sleeptime_ns = endtime_ns - qemu_clock_get_ns(QEMU_CLOCK_REALTIME);
     }
diff --git a/system/cpus.c b/system/cpus.c
index a444a747f0..9b68dc9c7c 100644
--- a/system/cpus.c
+++ b/system/cpus.c
@@ -65,7 +65,8 @@
 
 #endif /* CONFIG_LINUX */
 
-static QemuMutex qemu_global_mutex;
+/* The Big QEMU Lock (BQL) */
+static QemuMutex bql;
 
 /*
  * The chosen accelerator is supposed to register this.
@@ -389,14 +390,14 @@ void qemu_init_cpu_loop(void)
     qemu_init_sigbus();
     qemu_cond_init(&qemu_cpu_cond);
     qemu_cond_init(&qemu_pause_cond);
-    qemu_mutex_init(&qemu_global_mutex);
+    qemu_mutex_init(&bql);
 
     qemu_thread_get_self(&io_thread);
 }
 
 void run_on_cpu(CPUState *cpu, run_on_cpu_func func, run_on_cpu_data data)
 {
-    do_run_on_cpu(cpu, func, data, &qemu_global_mutex);
+    do_run_on_cpu(cpu, func, data, &bql);
 }
 
 static void qemu_cpu_stop(CPUState *cpu, bool exit)
@@ -428,7 +429,7 @@ void qemu_wait_io_event(CPUState *cpu)
             slept = true;
             qemu_plugin_vcpu_idle_cb(cpu);
         }
-        qemu_cond_wait(cpu->halt_cond, &qemu_global_mutex);
+        qemu_cond_wait(cpu->halt_cond, &bql);
     }
     if (slept) {
         qemu_plugin_vcpu_resume_cb(cpu);
@@ -481,46 +482,46 @@ bool qemu_in_vcpu_thread(void)
     return current_cpu && qemu_cpu_is_self(current_cpu);
 }
 
-QEMU_DEFINE_STATIC_CO_TLS(bool, iothread_locked)
+QEMU_DEFINE_STATIC_CO_TLS(bool, bql_locked)
 
-bool qemu_mutex_iothread_locked(void)
+bool bql_locked(void)
 {
-    return get_iothread_locked();
+    return get_bql_locked();
 }
 
 bool qemu_in_main_thread(void)
 {
-    return qemu_mutex_iothread_locked();
+    return bql_locked();
 }
 
 /*
  * The BQL is taken from so many places that it is worth profiling the
  * callers directly, instead of funneling them all through a single function.
  */
-void qemu_mutex_lock_iothread_impl(const char *file, int line)
+void bql_lock_impl(const char *file, int line)
 {
-    QemuMutexLockFunc bql_lock = qatomic_read(&qemu_bql_mutex_lock_func);
+    QemuMutexLockFunc bql_lock_fn = qatomic_read(&bql_mutex_lock_func);
 
-    g_assert(!qemu_mutex_iothread_locked());
-    bql_lock(&qemu_global_mutex, file, line);
-    set_iothread_locked(true);
+    g_assert(!bql_locked());
+    bql_lock_fn(&bql, file, line);
+    set_bql_locked(true);
 }
 
-void qemu_mutex_unlock_iothread(void)
+void bql_unlock(void)
 {
-    g_assert(qemu_mutex_iothread_locked());
-    set_iothread_locked(false);
-    qemu_mutex_unlock(&qemu_global_mutex);
+    g_assert(bql_locked());
+    set_bql_locked(false);
+    qemu_mutex_unlock(&bql);
 }
 
 void qemu_cond_wait_iothread(QemuCond *cond)
 {
-    qemu_cond_wait(cond, &qemu_global_mutex);
+    qemu_cond_wait(cond, &bql);
 }
 
 void qemu_cond_timedwait_iothread(QemuCond *cond, int ms)
 {
-    qemu_cond_timedwait(cond, &qemu_global_mutex, ms);
+    qemu_cond_timedwait(cond, &bql, ms);
 }
 
 /* signal CPU creation */
@@ -571,15 +572,15 @@ void pause_all_vcpus(void)
     replay_mutex_unlock();
 
     while (!all_vcpus_paused()) {
-        qemu_cond_wait(&qemu_pause_cond, &qemu_global_mutex);
+        qemu_cond_wait(&qemu_pause_cond, &bql);
         CPU_FOREACH(cpu) {
             qemu_cpu_kick(cpu);
         }
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     replay_mutex_lock();
-    qemu_mutex_lock_iothread();
+    bql_lock();
 }
 
 void cpu_resume(CPUState *cpu)
@@ -608,9 +609,9 @@ void cpu_remove_sync(CPUState *cpu)
     cpu->stop = true;
     cpu->unplug = true;
     qemu_cpu_kick(cpu);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     qemu_thread_join(cpu->thread);
-    qemu_mutex_lock_iothread();
+    bql_lock();
 }
 
 void cpus_register_accel(const AccelOpsClass *ops)
@@ -649,7 +650,7 @@ void qemu_init_vcpu(CPUState *cpu)
     cpus_accel->create_vcpu_thread(cpu);
 
     while (!cpu->created) {
-        qemu_cond_wait(&qemu_cpu_cond, &qemu_global_mutex);
+        qemu_cond_wait(&qemu_cpu_cond, &bql);
     }
 }
 
diff --git a/system/dirtylimit.c b/system/dirtylimit.c
index 495c7a7082..b5607eb8c2 100644
--- a/system/dirtylimit.c
+++ b/system/dirtylimit.c
@@ -148,9 +148,9 @@ void vcpu_dirty_rate_stat_stop(void)
 {
     qatomic_set(&vcpu_dirty_rate_stat->running, 0);
     dirtylimit_state_unlock();
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     qemu_thread_join(&vcpu_dirty_rate_stat->thread);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     dirtylimit_state_lock();
 }
 
diff --git a/system/memory.c b/system/memory.c
index 798b6c0a17..7a9dc43c2d 100644
--- a/system/memory.c
+++ b/system/memory.c
@@ -1119,7 +1119,7 @@ void memory_region_transaction_commit(void)
     AddressSpace *as;
 
     assert(memory_region_transaction_depth);
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     --memory_region_transaction_depth;
     if (!memory_region_transaction_depth) {
diff --git a/system/physmem.c b/system/physmem.c
index a63853a7bc..4937e67bad 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -2639,8 +2639,8 @@ bool prepare_mmio_access(MemoryRegion *mr)
 {
     bool release_lock = false;
 
-    if (!qemu_mutex_iothread_locked()) {
-        qemu_mutex_lock_iothread();
+    if (!bql_locked()) {
+        bql_lock();
         release_lock = true;
     }
     if (mr->flush_coalesced_mmio) {
@@ -2721,7 +2721,7 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
         }
 
         if (release_lock) {
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             release_lock = false;
         }
 
@@ -2799,7 +2799,7 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
         }
 
         if (release_lock) {
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             release_lock = false;
         }
 
diff --git a/system/runstate.c b/system/runstate.c
index ea9d6c2a32..5833ba0675 100644
--- a/system/runstate.c
+++ b/system/runstate.c
@@ -810,7 +810,7 @@ void qemu_init_subsystems(void)
 
     qemu_init_cpu_list();
     qemu_init_cpu_loop();
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     atexit(qemu_run_exit_notifiers);
 
diff --git a/system/watchpoint.c b/system/watchpoint.c
index ba5ad13352..b76007ebf6 100644
--- a/system/watchpoint.c
+++ b/system/watchpoint.c
@@ -155,9 +155,9 @@ void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr len,
          * Now raise the debug interrupt so that it will
          * trigger after the current instruction.
          */
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_interrupt(cpu, CPU_INTERRUPT_DEBUG);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         return;
     }
 
diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c
index c078849403..8850381565 100644
--- a/target/arm/arm-powerctl.c
+++ b/target/arm/arm-powerctl.c
@@ -88,7 +88,7 @@ static void arm_set_cpu_on_async_work(CPUState *target_cpu_state,
     g_free(info);
 
     /* Finally set the power status */
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
     target_cpu->power_state = PSCI_ON;
 }
 
@@ -99,7 +99,7 @@ int arm_set_cpu_on(uint64_t cpuid, uint64_t entry, uint64_t context_id,
     ARMCPU *target_cpu;
     struct CpuOnInfo *info;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     DPRINTF("cpu %" PRId64 " (EL %d, %s) @ 0x%" PRIx64 " with R0 = 0x%" PRIx64
             "\n", cpuid, target_el, target_aa64 ? "aarch64" : "aarch32", entry,
@@ -196,7 +196,7 @@ static void arm_set_cpu_on_and_reset_async_work(CPUState *target_cpu_state,
     target_cpu_state->halted = 0;
 
     /* Finally set the power status */
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
     target_cpu->power_state = PSCI_ON;
 }
 
@@ -205,7 +205,7 @@ int arm_set_cpu_on_and_reset(uint64_t cpuid)
     CPUState *target_cpu_state;
     ARMCPU *target_cpu;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     /* Retrieve the cpu we are powering up */
     target_cpu_state = arm_get_cpu_by_id(cpuid);
@@ -247,7 +247,7 @@ static void arm_set_cpu_off_async_work(CPUState *target_cpu_state,
 {
     ARMCPU *target_cpu = ARM_CPU(target_cpu_state);
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
     target_cpu->power_state = PSCI_OFF;
     target_cpu_state->halted = 1;
     target_cpu_state->exception_index = EXCP_HLT;
@@ -258,7 +258,7 @@ int arm_set_cpu_off(uint64_t cpuid)
     CPUState *target_cpu_state;
     ARMCPU *target_cpu;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     DPRINTF("cpu %" PRId64 "\n", cpuid);
 
@@ -294,7 +294,7 @@ int arm_reset_cpu(uint64_t cpuid)
     CPUState *target_cpu_state;
     ARMCPU *target_cpu;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     DPRINTF("cpu %" PRId64 "\n", cpuid);
 
diff --git a/target/arm/helper.c b/target/arm/helper.c
index 2746d3fdac..4a978d1102 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -5831,7 +5831,7 @@ static void do_hcr_write(CPUARMState *env, uint64_t value, uint64_t valid_mask)
      * VFIQ are masked unless running at EL0 or EL1, and HCR
      * can only be written at EL2.
      */
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     arm_cpu_update_virq(cpu);
     arm_cpu_update_vfiq(cpu);
     arm_cpu_update_vserr(cpu);
@@ -11344,7 +11344,7 @@ void arm_cpu_do_interrupt(CPUState *cs)
      * BQL needs to be held for any modification of
      * cs->interrupt_request.
      */
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     arm_call_pre_el_change_hook(cpu);
 
diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
index 757e13b0f9..f8dffb815f 100644
--- a/target/arm/hvf/hvf.c
+++ b/target/arm/hvf/hvf.c
@@ -1718,9 +1718,9 @@ static void hvf_wait_for_ipi(CPUState *cpu, struct timespec *ts)
      * sleeping.
      */
     qatomic_set_mb(&cpu->thread_kicked, false);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     pselect(0, 0, 0, 0, ts, &cpu->accel->unblock_ipi_mask);
-    qemu_mutex_lock_iothread();
+    bql_lock();
 }
 
 static void hvf_wfi(CPUState *cpu)
@@ -1821,7 +1821,7 @@ int hvf_vcpu_exec(CPUState *cpu)
 
     flush_cpu_state(cpu);
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     assert_hvf_ok(hv_vcpu_run(cpu->accel->fd));
 
     /* handle VMEXIT */
@@ -1830,7 +1830,7 @@ int hvf_vcpu_exec(CPUState *cpu)
     uint32_t ec = syn_get_ec(syndrome);
 
     ret = 0;
-    qemu_mutex_lock_iothread();
+    bql_lock();
     switch (exit_reason) {
     case HV_EXIT_REASON_EXCEPTION:
         /* This is the main one, handle below. */
diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index 7903e2ddde..dcfe3d48ab 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -833,7 +833,7 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
     if (run->s.regs.device_irq_level != cpu->device_irq_level) {
         switched_level = cpu->device_irq_level ^ run->s.regs.device_irq_level;
 
-        qemu_mutex_lock_iothread();
+        bql_lock();
 
         if (switched_level & KVM_ARM_DEV_EL1_VTIMER) {
             qemu_set_irq(cpu->gt_timer_outputs[GTIMER_VIRT],
@@ -862,7 +862,7 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
 
         /* We also mark unknown levels as processed to not waste cycles */
         cpu->device_irq_level = run->s.regs.device_irq_level;
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 
     return MEMTXATTRS_UNSPECIFIED;
diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c
index 3c175c93a7..498d77b8cf 100644
--- a/target/arm/kvm64.c
+++ b/target/arm/kvm64.c
@@ -1233,9 +1233,9 @@ bool kvm_arm_handle_debug(CPUState *cs, struct kvm_debug_exit_arch *debug_exit)
     env->exception.syndrome = debug_exit->hsr;
     env->exception.vaddress = debug_exit->far;
     env->exception.target_el = 1;
-    qemu_mutex_lock_iothread();
+    bql_lock();
     arm_cpu_do_interrupt(cs);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return false;
 }
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
index 1762b058ae..0ecd3a36da 100644
--- a/target/arm/ptw.c
+++ b/target/arm/ptw.c
@@ -772,9 +772,9 @@ static uint64_t arm_casq_ptw(CPUARMState *env, uint64_t old_val,
 #if !TCG_OVERSIZED_GUEST
 # error "Unexpected configuration"
 #endif
-    bool locked = qemu_mutex_iothread_locked();
+    bool locked = bql_locked();
     if (!locked) {
-       qemu_mutex_lock_iothread();
+        bql_lock();
     }
     if (ptw->out_be) {
         cur_val = ldq_be_p(host);
@@ -788,7 +788,7 @@ static uint64_t arm_casq_ptw(CPUARMState *env, uint64_t old_val,
         }
     }
     if (!locked) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 #endif
 
diff --git a/target/arm/tcg/helper-a64.c b/target/arm/tcg/helper-a64.c
index 8ad84623d3..198b975f20 100644
--- a/target/arm/tcg/helper-a64.c
+++ b/target/arm/tcg/helper-a64.c
@@ -809,9 +809,9 @@ void HELPER(exception_return)(CPUARMState *env, uint64_t new_pc)
         goto illegal_return;
     }
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     arm_call_pre_el_change_hook(env_archcpu(env));
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     if (!return_to_aa64) {
         env->aarch64 = false;
@@ -876,9 +876,9 @@ void HELPER(exception_return)(CPUARMState *env, uint64_t new_pc)
      */
     aarch64_sve_change_el(env, cur_el, new_el, return_to_aa64);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     arm_call_el_change_hook(env_archcpu(env));
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return;
 
diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c
index a26adb75aa..d1f1e02acc 100644
--- a/target/arm/tcg/m_helper.c
+++ b/target/arm/tcg/m_helper.c
@@ -373,8 +373,8 @@ void HELPER(v7m_preserve_fp_state)(CPUARMState *env)
     bool ts = is_secure && (env->v7m.fpccr[M_REG_S] & R_V7M_FPCCR_TS_MASK);
     bool take_exception;
 
-    /* Take the iothread lock as we are going to touch the NVIC */
-    qemu_mutex_lock_iothread();
+    /* Take the BQL as we are going to touch the NVIC */
+    bql_lock();
 
     /* Check the background context had access to the FPU */
     if (!v7m_cpacr_pass(env, is_secure, is_priv)) {
@@ -428,7 +428,7 @@ void HELPER(v7m_preserve_fp_state)(CPUARMState *env)
     take_exception = !stacked_ok &&
         armv7m_nvic_can_take_pending_exception(env->nvic);
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     if (take_exception) {
         raise_exception_ra(env, EXCP_LAZYFP, 0, 1, GETPC());
diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c
index ea08936a85..34e706e0fd 100644
--- a/target/arm/tcg/op_helper.c
+++ b/target/arm/tcg/op_helper.c
@@ -427,9 +427,9 @@ void HELPER(cpsr_write_eret)(CPUARMState *env, uint32_t val)
 {
     uint32_t mask;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     arm_call_pre_el_change_hook(env_archcpu(env));
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     mask = aarch32_cpsr_valid_mask(env->features, &env_archcpu(env)->isar);
     cpsr_write(env, val, mask, CPSRWriteExceptionReturn);
@@ -442,9 +442,9 @@ void HELPER(cpsr_write_eret)(CPUARMState *env, uint32_t val)
     env->regs[15] &= (env->thumb ? ~1 : ~3);
     arm_rebuild_hflags(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     arm_call_el_change_hook(env_archcpu(env));
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 /* Access to user mode registers from privileged modes.  */
@@ -803,9 +803,9 @@ void HELPER(set_cp_reg)(CPUARMState *env, const void *rip, uint32_t value)
     const ARMCPRegInfo *ri = rip;
 
     if (ri->type & ARM_CP_IO) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         ri->writefn(env, ri, value);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     } else {
         ri->writefn(env, ri, value);
     }
@@ -817,9 +817,9 @@ uint32_t HELPER(get_cp_reg)(CPUARMState *env, const void *rip)
     uint32_t res;
 
     if (ri->type & ARM_CP_IO) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         res = ri->readfn(env, ri);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     } else {
         res = ri->readfn(env, ri);
     }
@@ -832,9 +832,9 @@ void HELPER(set_cp_reg64)(CPUARMState *env, const void *rip, uint64_t value)
     const ARMCPRegInfo *ri = rip;
 
     if (ri->type & ARM_CP_IO) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         ri->writefn(env, ri, value);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     } else {
         ri->writefn(env, ri, value);
     }
@@ -846,9 +846,9 @@ uint64_t HELPER(get_cp_reg64)(CPUARMState *env, const void *rip)
     uint64_t res;
 
     if (ri->type & ARM_CP_IO) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         res = ri->readfn(env, ri);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     } else {
         res = ri->readfn(env, ri);
     }
diff --git a/target/arm/tcg/psci.c b/target/arm/tcg/psci.c
index 6c1239bb96..9080a91d9c 100644
--- a/target/arm/tcg/psci.c
+++ b/target/arm/tcg/psci.c
@@ -107,7 +107,7 @@ void arm_handle_psci_call(ARMCPU *cpu)
             }
             target_cpu = ARM_CPU(target_cpu_state);
 
-            g_assert(qemu_mutex_iothread_locked());
+            g_assert(bql_locked());
             ret = target_cpu->power_state;
             break;
         default:
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
index 98e9d688f6..efe638b36e 100644
--- a/target/hppa/int_helper.c
+++ b/target/hppa/int_helper.c
@@ -84,17 +84,17 @@ void hppa_cpu_alarm_timer(void *opaque)
 void HELPER(write_eirr)(CPUHPPAState *env, target_ulong val)
 {
     env->cr[CR_EIRR] &= ~val;
-    qemu_mutex_lock_iothread();
+    bql_lock();
     eval_interrupt(env_archcpu(env));
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(write_eiem)(CPUHPPAState *env, target_ulong val)
 {
     env->cr[CR_EIEM] = val;
-    qemu_mutex_lock_iothread();
+    bql_lock();
     eval_interrupt(env_archcpu(env));
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void hppa_cpu_do_interrupt(CPUState *cs)
diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c
index 20b9ca3ef5..11ffdd4c69 100644
--- a/target/i386/hvf/hvf.c
+++ b/target/i386/hvf/hvf.c
@@ -429,9 +429,9 @@ int hvf_vcpu_exec(CPUState *cpu)
         }
         vmx_update_tpr(cpu);
 
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         if (!cpu_is_bsp(X86_CPU(cpu)) && cpu->halted) {
-            qemu_mutex_lock_iothread();
+            bql_lock();
             return EXCP_HLT;
         }
 
@@ -450,7 +450,7 @@ int hvf_vcpu_exec(CPUState *cpu)
         rip = rreg(cpu->accel->fd, HV_X86_RIP);
         env->eflags = rreg(cpu->accel->fd, HV_X86_RFLAGS);
 
-        qemu_mutex_lock_iothread();
+        bql_lock();
 
         update_apic_tpr(cpu);
         current_cpu = cpu;
diff --git a/target/i386/kvm/hyperv.c b/target/i386/kvm/hyperv.c
index e3ac978648..6825c89af3 100644
--- a/target/i386/kvm/hyperv.c
+++ b/target/i386/kvm/hyperv.c
@@ -45,9 +45,9 @@ void hyperv_x86_synic_update(X86CPU *cpu)
 
 static void async_synic_update(CPUState *cs, run_on_cpu_data data)
 {
-    qemu_mutex_lock_iothread();
+    bql_lock();
     hyperv_x86_synic_update(X86_CPU(cs));
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit)
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
index 4ce80555b4..76a66246eb 100644
--- a/target/i386/kvm/kvm.c
+++ b/target/i386/kvm/kvm.c
@@ -4713,9 +4713,9 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
     /* Inject NMI */
     if (cpu->interrupt_request & (CPU_INTERRUPT_NMI | CPU_INTERRUPT_SMI)) {
         if (cpu->interrupt_request & CPU_INTERRUPT_NMI) {
-            qemu_mutex_lock_iothread();
+            bql_lock();
             cpu->interrupt_request &= ~CPU_INTERRUPT_NMI;
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             DPRINTF("injected NMI\n");
             ret = kvm_vcpu_ioctl(cpu, KVM_NMI);
             if (ret < 0) {
@@ -4724,9 +4724,9 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
             }
         }
         if (cpu->interrupt_request & CPU_INTERRUPT_SMI) {
-            qemu_mutex_lock_iothread();
+            bql_lock();
             cpu->interrupt_request &= ~CPU_INTERRUPT_SMI;
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             DPRINTF("injected SMI\n");
             ret = kvm_vcpu_ioctl(cpu, KVM_SMI);
             if (ret < 0) {
@@ -4737,7 +4737,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
     }
 
     if (!kvm_pic_in_kernel()) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
 
     /* Force the VCPU out of its inner loop to process any INIT requests
@@ -4790,7 +4790,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
         DPRINTF("setting tpr\n");
         run->cr8 = cpu_get_apic_tpr(x86_cpu->apic_state);
 
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 }
 
@@ -4838,12 +4838,12 @@ MemTxAttrs kvm_arch_post_run(CPUState *cpu, struct kvm_run *run)
     /* We need to protect the apic state against concurrent accesses from
      * different threads in case the userspace irqchip is used. */
     if (!kvm_irqchip_in_kernel()) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
     cpu_set_apic_tpr(x86_cpu->apic_state, run->cr8);
     cpu_set_apic_base(x86_cpu->apic_state, run->apic_base);
     if (!kvm_irqchip_in_kernel()) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     return cpu_get_mem_attrs(env);
 }
@@ -5277,17 +5277,17 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
     switch (run->exit_reason) {
     case KVM_EXIT_HLT:
         DPRINTF("handle_hlt\n");
-        qemu_mutex_lock_iothread();
+        bql_lock();
         ret = kvm_handle_halt(cpu);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         break;
     case KVM_EXIT_SET_TPR:
         ret = 0;
         break;
     case KVM_EXIT_TPR_ACCESS:
-        qemu_mutex_lock_iothread();
+        bql_lock();
         ret = kvm_handle_tpr_access(cpu);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         break;
     case KVM_EXIT_FAIL_ENTRY:
         code = run->fail_entry.hardware_entry_failure_reason;
@@ -5313,9 +5313,9 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
         break;
     case KVM_EXIT_DEBUG:
         DPRINTF("kvm_exit_debug\n");
-        qemu_mutex_lock_iothread();
+        bql_lock();
         ret = kvm_handle_debug(cpu, &run->debug.arch);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         break;
     case KVM_EXIT_HYPERV:
         ret = kvm_hv_handle_exit(cpu, &run->hyperv);
diff --git a/target/i386/kvm/xen-emu.c b/target/i386/kvm/xen-emu.c
index c0631f9cf4..b0ed2e6aeb 100644
--- a/target/i386/kvm/xen-emu.c
+++ b/target/i386/kvm/xen-emu.c
@@ -403,7 +403,7 @@ void kvm_xen_maybe_deassert_callback(CPUState *cs)
 
     /* If the evtchn_upcall_pending flag is cleared, turn the GSI off. */
     if (!vi->evtchn_upcall_pending) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         /*
          * Check again now we have the lock, because it may have been
          * asserted in the interim. And we don't want to take the lock
@@ -413,7 +413,7 @@ void kvm_xen_maybe_deassert_callback(CPUState *cs)
             X86_CPU(cs)->env.xen_callback_asserted = false;
             xen_evtchn_set_callback_level(0);
         }
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 }
 
@@ -773,9 +773,9 @@ static bool handle_set_param(struct kvm_xen_exit *exit, X86CPU *cpu,
 
     switch (hp.index) {
     case HVM_PARAM_CALLBACK_IRQ:
-        qemu_mutex_lock_iothread();
+        bql_lock();
         err = xen_evtchn_set_callback_param(hp.value);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         xen_set_long_mode(exit->u.hcall.longmode);
         break;
     default:
@@ -1408,7 +1408,7 @@ int kvm_xen_soft_reset(void)
     CPUState *cpu;
     int err;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     trace_kvm_xen_soft_reset();
 
@@ -1481,9 +1481,9 @@ static int schedop_shutdown(CPUState *cs, uint64_t arg)
         break;
 
     case SHUTDOWN_soft_reset:
-        qemu_mutex_lock_iothread();
+        bql_lock();
         ret = kvm_xen_soft_reset();
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         break;
 
     default:
diff --git a/target/i386/nvmm/nvmm-accel-ops.c b/target/i386/nvmm/nvmm-accel-ops.c
index 6c46101ac1..f9d5e9a37a 100644
--- a/target/i386/nvmm/nvmm-accel-ops.c
+++ b/target/i386/nvmm/nvmm-accel-ops.c
@@ -25,7 +25,7 @@ static void *qemu_nvmm_cpu_thread_fn(void *arg)
 
     rcu_register_thread();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_thread_get_self(cpu->thread);
     cpu->thread_id = qemu_get_thread_id();
     current_cpu = cpu;
@@ -55,7 +55,7 @@ static void *qemu_nvmm_cpu_thread_fn(void *arg)
 
     nvmm_destroy_vcpu(cpu);
     cpu_thread_signal_destroyed(cpu);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     rcu_unregister_thread();
     return NULL;
 }
diff --git a/target/i386/nvmm/nvmm-all.c b/target/i386/nvmm/nvmm-all.c
index 7d752bc5e0..cfdca91123 100644
--- a/target/i386/nvmm/nvmm-all.c
+++ b/target/i386/nvmm/nvmm-all.c
@@ -399,7 +399,7 @@ nvmm_vcpu_pre_run(CPUState *cpu)
     uint8_t tpr;
     int ret;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     tpr = cpu_get_apic_tpr(x86_cpu->apic_state);
     if (tpr != qcpu->tpr) {
@@ -462,7 +462,7 @@ nvmm_vcpu_pre_run(CPUState *cpu)
         }
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 /*
@@ -485,9 +485,9 @@ nvmm_vcpu_post_run(CPUState *cpu, struct nvmm_vcpu_exit *exit)
     tpr = exit->exitstate.cr8;
     if (qcpu->tpr != tpr) {
         qcpu->tpr = tpr;
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_set_apic_tpr(x86_cpu->apic_state, qcpu->tpr);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 }
 
@@ -648,7 +648,7 @@ nvmm_handle_halted(struct nvmm_machine *mach, CPUState *cpu,
     CPUX86State *env = cpu_env(cpu);
     int ret = 0;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     if (!((cpu->interrupt_request & CPU_INTERRUPT_HARD) &&
           (env->eflags & IF_MASK)) &&
@@ -658,7 +658,7 @@ nvmm_handle_halted(struct nvmm_machine *mach, CPUState *cpu,
         ret = 1;
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return ret;
 }
@@ -721,7 +721,7 @@ nvmm_vcpu_loop(CPUState *cpu)
         return 0;
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     cpu_exec_start(cpu);
 
     /*
@@ -806,16 +806,16 @@ nvmm_vcpu_loop(CPUState *cpu)
             error_report("NVMM: Unexpected VM exit code 0x%lx [hw=0x%lx]",
                 exit->reason, exit->u.inv.hwcode);
             nvmm_get_registers(cpu);
-            qemu_mutex_lock_iothread();
+            bql_lock();
             qemu_system_guest_panicked(cpu_get_crash_info(cpu));
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             ret = -1;
             break;
         }
     } while (ret == 0);
 
     cpu_exec_end(cpu);
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     qatomic_set(&cpu->exit_request, false);
 
diff --git a/target/i386/tcg/sysemu/fpu_helper.c b/target/i386/tcg/sysemu/fpu_helper.c
index 93506cdd94..e0305ba234 100644
--- a/target/i386/tcg/sysemu/fpu_helper.c
+++ b/target/i386/tcg/sysemu/fpu_helper.c
@@ -32,9 +32,9 @@ void x86_register_ferr_irq(qemu_irq irq)
 void fpu_check_raise_ferr_irq(CPUX86State *env)
 {
     if (ferr_irq && !(env->hflags2 & HF2_IGNNE_MASK)) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         qemu_irq_raise(ferr_irq);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         return;
     }
 }
@@ -49,7 +49,7 @@ void cpu_set_ignne(void)
 {
     CPUX86State *env = &X86_CPU(first_cpu)->env;
 
-    assert(qemu_mutex_iothread_locked());
+    assert(bql_locked());
 
     env->hflags2 |= HF2_IGNNE_MASK;
     /*
diff --git a/target/i386/tcg/sysemu/misc_helper.c b/target/i386/tcg/sysemu/misc_helper.c
index e1528b7f80..1ddfc9fe09 100644
--- a/target/i386/tcg/sysemu/misc_helper.c
+++ b/target/i386/tcg/sysemu/misc_helper.c
@@ -118,9 +118,9 @@ void helper_write_crN(CPUX86State *env, int reg, target_ulong t0)
         break;
     case 8:
         if (!(env->hflags2 & HF2_VINTR_MASK)) {
-            qemu_mutex_lock_iothread();
+            bql_lock();
             cpu_set_apic_tpr(env_archcpu(env)->apic_state, t0);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
         }
         env->int_ctl = (env->int_ctl & ~V_TPR_MASK) | (t0 & V_TPR_MASK);
 
diff --git a/target/i386/whpx/whpx-accel-ops.c b/target/i386/whpx/whpx-accel-ops.c
index 67cad86720..e783a760a7 100644
--- a/target/i386/whpx/whpx-accel-ops.c
+++ b/target/i386/whpx/whpx-accel-ops.c
@@ -25,7 +25,7 @@ static void *whpx_cpu_thread_fn(void *arg)
 
     rcu_register_thread();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     qemu_thread_get_self(cpu->thread);
     cpu->thread_id = qemu_get_thread_id();
     current_cpu = cpu;
@@ -55,7 +55,7 @@ static void *whpx_cpu_thread_fn(void *arg)
 
     whpx_destroy_vcpu(cpu);
     cpu_thread_signal_destroyed(cpu);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     rcu_unregister_thread();
     return NULL;
 }
diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c
index d29ba916a0..a7262654ac 100644
--- a/target/i386/whpx/whpx-all.c
+++ b/target/i386/whpx/whpx-all.c
@@ -1324,7 +1324,7 @@ static int whpx_first_vcpu_starting(CPUState *cpu)
     struct whpx_state *whpx = &whpx_global;
     HRESULT hr;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     if (!QTAILQ_EMPTY(&cpu->breakpoints) ||
             (whpx->breakpoints.breakpoints &&
@@ -1442,7 +1442,7 @@ static int whpx_handle_halt(CPUState *cpu)
     CPUX86State *env = cpu_env(cpu);
     int ret = 0;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     if (!((cpu->interrupt_request & CPU_INTERRUPT_HARD) &&
           (env->eflags & IF_MASK)) &&
         !(cpu->interrupt_request & CPU_INTERRUPT_NMI)) {
@@ -1450,7 +1450,7 @@ static int whpx_handle_halt(CPUState *cpu)
         cpu->halted = true;
         ret = 1;
     }
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return ret;
 }
@@ -1472,7 +1472,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
     memset(&new_int, 0, sizeof(new_int));
     memset(reg_values, 0, sizeof(reg_values));
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     /* Inject NMI */
     if (!vcpu->interruption_pending &&
@@ -1563,7 +1563,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
         reg_count += 1;
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     vcpu->ready_for_pic_interrupt = false;
 
     if (reg_count) {
@@ -1590,9 +1590,9 @@ static void whpx_vcpu_post_run(CPUState *cpu)
     uint64_t tpr = vcpu->exit_ctx.VpContext.Cr8;
     if (vcpu->tpr != tpr) {
         vcpu->tpr = tpr;
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_set_apic_tpr(x86_cpu->apic_state, whpx_cr8_to_apic_tpr(vcpu->tpr));
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 
     vcpu->interruption_pending =
@@ -1652,7 +1652,7 @@ static int whpx_vcpu_run(CPUState *cpu)
     WhpxStepMode exclusive_step_mode = WHPX_STEP_NONE;
     int ret;
 
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     if (whpx->running_cpus++ == 0) {
         /* Insert breakpoints into memory, update exception exit bitmap. */
@@ -1690,7 +1690,7 @@ static int whpx_vcpu_run(CPUState *cpu)
         }
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     if (exclusive_step_mode != WHPX_STEP_NONE) {
         start_exclusive();
@@ -2028,9 +2028,9 @@ static int whpx_vcpu_run(CPUState *cpu)
             error_report("WHPX: Unexpected VP exit code %d",
                          vcpu->exit_ctx.ExitReason);
             whpx_get_registers(cpu);
-            qemu_mutex_lock_iothread();
+            bql_lock();
             qemu_system_guest_panicked(cpu_get_crash_info(cpu));
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             break;
         }
 
@@ -2055,7 +2055,7 @@ static int whpx_vcpu_run(CPUState *cpu)
         cpu_exec_end(cpu);
     }
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     current_cpu = cpu;
 
     if (--whpx->running_cpus == 0) {
diff --git a/target/loongarch/csr_helper.c b/target/loongarch/csr_helper.c
index 55341551a5..15f94caefa 100644
--- a/target/loongarch/csr_helper.c
+++ b/target/loongarch/csr_helper.c
@@ -89,9 +89,9 @@ target_ulong helper_csrwr_ticlr(CPULoongArchState *env, target_ulong val)
     int64_t old_v = 0;
 
     if (val & 0x1) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         loongarch_cpu_set_irq(cpu, IRQ_TIMER, 0);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     return old_v;
 }
diff --git a/target/mips/kvm.c b/target/mips/kvm.c
index e22e24ed97..15d0cf9adb 100644
--- a/target/mips/kvm.c
+++ b/target/mips/kvm.c
@@ -138,7 +138,7 @@ void kvm_arch_pre_run(CPUState *cs, struct kvm_run *run)
     int r;
     struct kvm_mips_interrupt intr;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     if ((cs->interrupt_request & CPU_INTERRUPT_HARD) &&
             cpu_mips_io_interrupts_pending(cpu)) {
@@ -151,7 +151,7 @@ void kvm_arch_pre_run(CPUState *cs, struct kvm_run *run)
         }
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
diff --git a/target/mips/tcg/sysemu/cp0_helper.c b/target/mips/tcg/sysemu/cp0_helper.c
index d349548743..cc545aed9c 100644
--- a/target/mips/tcg/sysemu/cp0_helper.c
+++ b/target/mips/tcg/sysemu/cp0_helper.c
@@ -59,9 +59,9 @@ static inline void mips_vpe_wake(MIPSCPU *c)
      * because there might be other conditions that state that c should
      * be sleeping.
      */
-    qemu_mutex_lock_iothread();
+    bql_lock();
     cpu_interrupt(CPU(c), CPU_INTERRUPT_WAKE);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 static inline void mips_vpe_sleep(MIPSCPU *cpu)
diff --git a/target/openrisc/sys_helper.c b/target/openrisc/sys_helper.c
index 782a5751b7..77567afba4 100644
--- a/target/openrisc/sys_helper.c
+++ b/target/openrisc/sys_helper.c
@@ -160,20 +160,20 @@ void HELPER(mtspr)(CPUOpenRISCState *env, target_ulong spr, target_ulong rb)
         break;
     case TO_SPR(9, 0):  /* PICMR */
         env->picmr = rb;
-        qemu_mutex_lock_iothread();
+        bql_lock();
         if (env->picsr & env->picmr) {
             cpu_interrupt(cs, CPU_INTERRUPT_HARD);
         } else {
             cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD);
         }
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         break;
     case TO_SPR(9, 2):  /* PICSR */
         env->picsr &= ~rb;
         break;
     case TO_SPR(10, 0): /* TTMR */
         {
-            qemu_mutex_lock_iothread();
+            bql_lock();
             if ((env->ttmr & TTMR_M) ^ (rb & TTMR_M)) {
                 switch (rb & TTMR_M) {
                 case TIMER_NONE:
@@ -198,15 +198,15 @@ void HELPER(mtspr)(CPUOpenRISCState *env, target_ulong spr, target_ulong rb)
                 cs->interrupt_request &= ~CPU_INTERRUPT_TIMER;
             }
             cpu_openrisc_timer_update(cpu);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
         }
         break;
 
     case TO_SPR(10, 1): /* TTCR */
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_openrisc_count_set(cpu, rb);
         cpu_openrisc_timer_update(cpu);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         break;
     }
 #endif
@@ -347,9 +347,9 @@ target_ulong HELPER(mfspr)(CPUOpenRISCState *env, target_ulong rd,
         return env->ttmr;
 
     case TO_SPR(10, 1): /* TTCR */
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_openrisc_count_update(cpu);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         return cpu_openrisc_count_get(cpu);
     }
 #endif
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index a42743a3e0..8a2bfb5aa2 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -3056,7 +3056,7 @@ void helper_msgsnd(target_ulong rb)
         return;
     }
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     CPU_FOREACH(cs) {
         PowerPCCPU *cpu = POWERPC_CPU(cs);
         CPUPPCState *cenv = &cpu->env;
@@ -3065,7 +3065,7 @@ void helper_msgsnd(target_ulong rb)
             ppc_set_irq(cpu, irq, 1);
         }
     }
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 /* Server Processor Control */
@@ -3093,7 +3093,7 @@ static void book3s_msgsnd_common(int pir, int irq)
 {
     CPUState *cs;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     CPU_FOREACH(cs) {
         PowerPCCPU *cpu = POWERPC_CPU(cs);
         CPUPPCState *cenv = &cpu->env;
@@ -3103,7 +3103,7 @@ static void book3s_msgsnd_common(int pir, int irq)
             ppc_set_irq(cpu, irq, 1);
         }
     }
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void helper_book3s_msgsnd(target_ulong rb)
@@ -3157,14 +3157,14 @@ void helper_book3s_msgsndp(CPUPPCState *env, target_ulong rb)
     }
 
     /* Does iothread need to be locked for walking CPU list? */
-    qemu_mutex_lock_iothread();
+    bql_lock();
     THREAD_SIBLING_FOREACH(cs, ccs) {
         PowerPCCPU *ccpu = POWERPC_CPU(ccs);
         uint32_t thread_id = ppc_cpu_tir(ccpu);
 
         if (ttir == thread_id) {
             ppc_set_irq(ccpu, PPC_INTERRUPT_DOORBELL, 1);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             return;
         }
     }
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 9b1abe2fc4..26fa9d0575 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -1656,7 +1656,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
     CPUPPCState *env = &cpu->env;
     int ret;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     switch (run->exit_reason) {
     case KVM_EXIT_DCR:
@@ -1715,7 +1715,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
         break;
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     return ret;
 }
 
diff --git a/target/ppc/misc_helper.c b/target/ppc/misc_helper.c
index a05bdf78c9..a9d41d2802 100644
--- a/target/ppc/misc_helper.c
+++ b/target/ppc/misc_helper.c
@@ -238,7 +238,7 @@ target_ulong helper_load_dpdes(CPUPPCState *env)
         return dpdes;
     }
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     THREAD_SIBLING_FOREACH(cs, ccs) {
         PowerPCCPU *ccpu = POWERPC_CPU(ccs);
         CPUPPCState *cenv = &ccpu->env;
@@ -248,7 +248,7 @@ target_ulong helper_load_dpdes(CPUPPCState *env)
             dpdes |= (0x1 << thread_id);
         }
     }
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return dpdes;
 }
@@ -278,14 +278,14 @@ void helper_store_dpdes(CPUPPCState *env, target_ulong val)
     }
 
     /* Does iothread need to be locked for walking CPU list? */
-    qemu_mutex_lock_iothread();
+    bql_lock();
     THREAD_SIBLING_FOREACH(cs, ccs) {
         PowerPCCPU *ccpu = POWERPC_CPU(ccs);
         uint32_t thread_id = ppc_cpu_tir(ccpu);
 
         ppc_set_irq(cpu, PPC_INTERRUPT_DOORBELL, val & (0x1 << thread_id));
     }
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 #endif /* defined(TARGET_PPC64) */
 
diff --git a/target/ppc/timebase_helper.c b/target/ppc/timebase_helper.c
index 08a6b47ee0..f618ed2922 100644
--- a/target/ppc/timebase_helper.c
+++ b/target/ppc/timebase_helper.c
@@ -173,9 +173,9 @@ target_ulong helper_load_dcr(CPUPPCState *env, target_ulong dcrn)
     } else {
         int ret;
 
-        qemu_mutex_lock_iothread();
+        bql_lock();
         ret = ppc_dcr_read(env->dcr_env, (uint32_t)dcrn, &val);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         if (unlikely(ret != 0)) {
             qemu_log_mask(LOG_GUEST_ERROR, "DCR read error %d %03x\n",
                           (uint32_t)dcrn, (uint32_t)dcrn);
@@ -196,9 +196,9 @@ void helper_store_dcr(CPUPPCState *env, target_ulong dcrn, target_ulong val)
                                POWERPC_EXCP_INVAL_INVAL, GETPC());
     } else {
         int ret;
-        qemu_mutex_lock_iothread();
+        bql_lock();
         ret = ppc_dcr_write(env->dcr_env, (uint32_t)dcrn, (uint32_t)val);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         if (unlikely(ret != 0)) {
             qemu_log_mask(LOG_GUEST_ERROR, "DCR write error %d %03x\n",
                           (uint32_t)dcrn, (uint32_t)dcrn);
diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c
index 33ab3551f4..888d6c1a1c 100644
--- a/target/s390x/kvm/kvm.c
+++ b/target/s390x/kvm/kvm.c
@@ -1923,7 +1923,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
     S390CPU *cpu = S390_CPU(cs);
     int ret = 0;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     kvm_cpu_synchronize_state(cs);
 
@@ -1947,7 +1947,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
             fprintf(stderr, "Unknown KVM exit: %d\n", run->exit_reason);
             break;
     }
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     if (ret == 0) {
         ret = EXCP_INTERRUPT;
diff --git a/target/s390x/tcg/misc_helper.c b/target/s390x/tcg/misc_helper.c
index 6aa7907438..89b5268fd4 100644
--- a/target/s390x/tcg/misc_helper.c
+++ b/target/s390x/tcg/misc_helper.c
@@ -101,9 +101,9 @@ uint64_t HELPER(stck)(CPUS390XState *env)
 /* SCLP service call */
 uint32_t HELPER(servc)(CPUS390XState *env, uint64_t r1, uint64_t r2)
 {
-    qemu_mutex_lock_iothread();
+    bql_lock();
     int r = sclp_service_call(env_archcpu(env), r1, r2);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     if (r < 0) {
         tcg_s390_program_interrupt(env, -r, GETPC());
     }
@@ -117,9 +117,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint32_t r3, uint32_t num)
     switch (num) {
     case 0x500:
         /* KVM hypercall */
-        qemu_mutex_lock_iothread();
+        bql_lock();
         r = s390_virtio_hypercall(env);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         break;
     case 0x44:
         /* yield */
@@ -127,9 +127,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint32_t r3, uint32_t num)
         break;
     case 0x308:
         /* ipl */
-        qemu_mutex_lock_iothread();
+        bql_lock();
         handle_diag_308(env, r1, r3, GETPC());
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         r = 0;
         break;
     case 0x288:
@@ -185,7 +185,7 @@ static void update_ckc_timer(CPUS390XState *env)
 
     /* stop the timer and remove pending CKC IRQs */
     timer_del(env->tod_timer);
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
     env->pending_int &= ~INTERRUPT_EXT_CLOCK_COMPARATOR;
 
     /* the tod has to exceed the ckc, this can never happen if ckc is all 1's */
@@ -207,9 +207,9 @@ void HELPER(sckc)(CPUS390XState *env, uint64_t ckc)
 {
     env->ckc = ckc;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     update_ckc_timer(env);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque)
@@ -229,9 +229,9 @@ uint32_t HELPER(sck)(CPUS390XState *env, uint64_t tod_low)
         .low = tod_low,
     };
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     tdc->set(td, &tod, &error_abort);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     return 0;
 }
 
@@ -421,9 +421,9 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
     int cc;
 
     /* TODO: needed to inject interrupts  - push further down */
-    qemu_mutex_lock_iothread();
+    bql_lock();
     cc = handle_sigp(env, order_code & SIGP_ORDER_MASK, r1, r3);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     return cc;
 }
@@ -433,92 +433,92 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
 void HELPER(xsch)(CPUS390XState *env, uint64_t r1)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_xsch(cpu, r1, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(csch)(CPUS390XState *env, uint64_t r1)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_csch(cpu, r1, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(hsch)(CPUS390XState *env, uint64_t r1)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_hsch(cpu, r1, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(msch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_msch(cpu, r1, inst >> 16, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(rchp)(CPUS390XState *env, uint64_t r1)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_rchp(cpu, r1, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(rsch)(CPUS390XState *env, uint64_t r1)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_rsch(cpu, r1, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(sal)(CPUS390XState *env, uint64_t r1)
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_sal(cpu, r1, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(schm)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint64_t inst)
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_schm(cpu, r1, r2, inst >> 16, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(ssch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_ssch(cpu, r1, inst >> 16, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(stcrw)(CPUS390XState *env, uint64_t inst)
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_stcrw(cpu, inst >> 16, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(stsch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_stsch(cpu, r1, inst >> 16, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
@@ -533,10 +533,10 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
         tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra);
     }
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     io = qemu_s390_flic_dequeue_io(flic, env->cregs[6]);
     if (!io) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
         return 0;
     }
 
@@ -554,7 +554,7 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
         if (s390_cpu_virt_mem_write(cpu, addr, 0, &intc, sizeof(intc))) {
             /* writing failed, reinject and properly clean up */
             s390_io_interrupt(io->id, io->nr, io->parm, io->word);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             g_free(io);
             s390_cpu_virt_mem_handle_exc(cpu, ra);
             return 0;
@@ -570,24 +570,24 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
     }
 
     g_free(io);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     return 1;
 }
 
 void HELPER(tsch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_tsch(cpu, r1, inst >> 16, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(chsc)(CPUS390XState *env, uint64_t inst)
 {
     S390CPU *cpu = env_archcpu(env);
-    qemu_mutex_lock_iothread();
+    bql_lock();
     ioinst_handle_chsc(cpu, inst >> 16, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 #endif
 
@@ -726,27 +726,27 @@ void HELPER(clp)(CPUS390XState *env, uint32_t r2)
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     clp_service_call(cpu, r2, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, uint32_t r2)
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     pcilg_service_call(cpu, r1, r2, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(pcistg)(CPUS390XState *env, uint32_t r1, uint32_t r2)
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     pcistg_service_call(cpu, r1, r2, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
@@ -754,9 +754,9 @@ void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     stpcifc_service_call(cpu, r1, fiba, ar, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint64_t r3)
@@ -764,9 +764,9 @@ void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint64_t r3)
     S390CPU *cpu = env_archcpu(env);
     int r;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     r = css_do_sic(cpu, (r3 >> 27) & 0x7, r1 & 0xffff);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     /* css_do_sic() may actually return a PGM_xxx value to inject */
     if (r) {
         tcg_s390_program_interrupt(env, -r, GETPC());
@@ -777,9 +777,9 @@ void HELPER(rpcit)(CPUS390XState *env, uint32_t r1, uint32_t r2)
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     rpcit_service_call(cpu, r1, r2, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3,
@@ -787,9 +787,9 @@ void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3,
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     pcistb_service_call(cpu, r1, r3, gaddr, ar, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
@@ -797,8 +797,8 @@ void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
 {
     S390CPU *cpu = env_archcpu(env);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     mpcifc_service_call(cpu, r1, fiba, ar, GETPC());
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 #endif
diff --git a/target/sparc/int32_helper.c b/target/sparc/int32_helper.c
index 1563613582..49a9149263 100644
--- a/target/sparc/int32_helper.c
+++ b/target/sparc/int32_helper.c
@@ -70,7 +70,7 @@ void cpu_check_irqs(CPUSPARCState *env)
     CPUState *cs;
 
     /* We should be holding the BQL before we mess with IRQs */
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     if (env->pil_in && (env->interrupt_index == 0 ||
                         (env->interrupt_index & ~15) == TT_EXTINT)) {
diff --git a/target/sparc/int64_helper.c b/target/sparc/int64_helper.c
index 1b4155f5f3..27df9dba89 100644
--- a/target/sparc/int64_helper.c
+++ b/target/sparc/int64_helper.c
@@ -69,7 +69,7 @@ void cpu_check_irqs(CPUSPARCState *env)
                   (env->softint & ~(SOFTINT_TIMER | SOFTINT_STIMER));
 
     /* We should be holding the BQL before we mess with IRQs */
-    g_assert(qemu_mutex_iothread_locked());
+    g_assert(bql_locked());
 
     /* TT_IVEC has a higher priority (16) than TT_EXTINT (31..17) */
     if (env->ivec_status & 0x20) {
@@ -267,9 +267,9 @@ static bool do_modify_softint(CPUSPARCState *env, uint32_t value)
         env->softint = value;
 #if !defined(CONFIG_USER_ONLY)
         if (cpu_interrupts_enabled(env)) {
-            qemu_mutex_lock_iothread();
+            bql_lock();
             cpu_check_irqs(env);
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
         }
 #endif
         return true;
diff --git a/target/sparc/win_helper.c b/target/sparc/win_helper.c
index 16d1c70fe7..b53fc9ce94 100644
--- a/target/sparc/win_helper.c
+++ b/target/sparc/win_helper.c
@@ -179,9 +179,9 @@ void helper_wrpsr(CPUSPARCState *env, target_ulong new_psr)
         cpu_raise_exception_ra(env, TT_ILL_INSN, GETPC());
     } else {
         /* cpu_put_psr may trigger interrupts, hence BQL */
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_put_psr(env, new_psr);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 }
 
@@ -407,9 +407,9 @@ void helper_wrpstate(CPUSPARCState *env, target_ulong new_state)
 
 #if !defined(CONFIG_USER_ONLY)
     if (cpu_interrupts_enabled(env)) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_check_irqs(env);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 #endif
 }
@@ -422,9 +422,9 @@ void helper_wrpil(CPUSPARCState *env, target_ulong new_pil)
     env->psrpil = new_pil;
 
     if (cpu_interrupts_enabled(env)) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_check_irqs(env);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 #endif
 }
@@ -451,9 +451,9 @@ void helper_done(CPUSPARCState *env)
 
 #if !defined(CONFIG_USER_ONLY)
     if (cpu_interrupts_enabled(env)) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_check_irqs(env);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 #endif
 }
@@ -480,9 +480,9 @@ void helper_retry(CPUSPARCState *env)
 
 #if !defined(CONFIG_USER_ONLY)
     if (cpu_interrupts_enabled(env)) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
         cpu_check_irqs(env);
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 #endif
 }
diff --git a/target/xtensa/exc_helper.c b/target/xtensa/exc_helper.c
index 91354884f7..168419a505 100644
--- a/target/xtensa/exc_helper.c
+++ b/target/xtensa/exc_helper.c
@@ -105,9 +105,9 @@ void HELPER(waiti)(CPUXtensaState *env, uint32_t pc, uint32_t intlevel)
     env->sregs[PS] = (env->sregs[PS] & ~PS_INTLEVEL) |
         (intlevel << PS_INTLEVEL_SHIFT);
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     check_interrupts(env);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     if (env->pending_irq_level) {
         cpu_loop_exit(cpu);
@@ -120,9 +120,9 @@ void HELPER(waiti)(CPUXtensaState *env, uint32_t pc, uint32_t intlevel)
 
 void HELPER(check_interrupts)(CPUXtensaState *env)
 {
-    qemu_mutex_lock_iothread();
+    bql_lock();
     check_interrupts(env);
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 }
 
 void HELPER(intset)(CPUXtensaState *env, uint32_t v)
diff --git a/ui/spice-core.c b/ui/spice-core.c
index db21db2c94..b6ee495a8f 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -222,7 +222,7 @@ static void channel_event(int event, SpiceChannelEventInfo *info)
      */
     bool need_lock = !qemu_thread_is_self(&me);
     if (need_lock) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
 
     if (info->flags & SPICE_CHANNEL_EVENT_FLAG_ADDR_EXT) {
@@ -260,7 +260,7 @@ static void channel_event(int event, SpiceChannelEventInfo *info)
     }
 
     if (need_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 
     qapi_free_SpiceServerInfo(server);
diff --git a/util/async.c b/util/async.c
index 8f90ddc304..def720045b 100644
--- a/util/async.c
+++ b/util/async.c
@@ -741,7 +741,7 @@ AioContext *qemu_get_current_aio_context(void)
     if (ctx) {
         return ctx;
     }
-    if (qemu_mutex_iothread_locked()) {
+    if (bql_locked()) {
         /* Possibly in a vCPU thread.  */
         return qemu_get_aio_context();
     }
diff --git a/util/main-loop.c b/util/main-loop.c
index 797b640c41..bfbff4f246 100644
--- a/util/main-loop.c
+++ b/util/main-loop.c
@@ -302,13 +302,13 @@ static int os_host_main_loop_wait(int64_t timeout)
 
     glib_pollfds_fill(&timeout);
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     replay_mutex_unlock();
 
     ret = qemu_poll_ns((GPollFD *)gpollfds->data, gpollfds->len, timeout);
 
     replay_mutex_lock();
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     glib_pollfds_poll();
 
@@ -517,7 +517,7 @@ static int os_host_main_loop_wait(int64_t timeout)
 
     poll_timeout_ns = qemu_soonest_timeout(poll_timeout_ns, timeout);
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
 
     replay_mutex_unlock();
 
@@ -525,7 +525,7 @@ static int os_host_main_loop_wait(int64_t timeout)
 
     replay_mutex_lock();
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
     if (g_poll_ret > 0) {
         for (i = 0; i < w->num; i++) {
             w->revents[i] = poll_fds[n_poll_fds + i].revents;
diff --git a/util/qsp.c b/util/qsp.c
index 2fe3764906..6b783e2e7f 100644
--- a/util/qsp.c
+++ b/util/qsp.c
@@ -124,7 +124,7 @@ static const char * const qsp_typenames[] = {
     [QSP_CONDVAR]   = "condvar",
 };
 
-QemuMutexLockFunc qemu_bql_mutex_lock_func = qemu_mutex_lock_impl;
+QemuMutexLockFunc bql_mutex_lock_func = qemu_mutex_lock_impl;
 QemuMutexLockFunc qemu_mutex_lock_func = qemu_mutex_lock_impl;
 QemuMutexTrylockFunc qemu_mutex_trylock_func = qemu_mutex_trylock_impl;
 QemuRecMutexLockFunc qemu_rec_mutex_lock_func = qemu_rec_mutex_lock_impl;
@@ -439,7 +439,7 @@ void qsp_enable(void)
 {
     qatomic_set(&qemu_mutex_lock_func, qsp_mutex_lock);
     qatomic_set(&qemu_mutex_trylock_func, qsp_mutex_trylock);
-    qatomic_set(&qemu_bql_mutex_lock_func, qsp_bql_mutex_lock);
+    qatomic_set(&bql_mutex_lock_func, qsp_bql_mutex_lock);
     qatomic_set(&qemu_rec_mutex_lock_func, qsp_rec_mutex_lock);
     qatomic_set(&qemu_rec_mutex_trylock_func, qsp_rec_mutex_trylock);
     qatomic_set(&qemu_cond_wait_func, qsp_cond_wait);
@@ -450,7 +450,7 @@ void qsp_disable(void)
 {
     qatomic_set(&qemu_mutex_lock_func, qemu_mutex_lock_impl);
     qatomic_set(&qemu_mutex_trylock_func, qemu_mutex_trylock_impl);
-    qatomic_set(&qemu_bql_mutex_lock_func, qemu_mutex_lock_impl);
+    qatomic_set(&bql_mutex_lock_func, qemu_mutex_lock_impl);
     qatomic_set(&qemu_rec_mutex_lock_func, qemu_rec_mutex_lock_impl);
     qatomic_set(&qemu_rec_mutex_trylock_func, qemu_rec_mutex_trylock_impl);
     qatomic_set(&qemu_cond_wait_func, qemu_cond_wait_impl);
diff --git a/util/rcu.c b/util/rcu.c
index e587bcc483..bb7f633b5c 100644
--- a/util/rcu.c
+++ b/util/rcu.c
@@ -283,24 +283,24 @@ static void *call_rcu_thread(void *opaque)
 
         qatomic_sub(&rcu_call_count, n);
         synchronize_rcu();
-        qemu_mutex_lock_iothread();
+        bql_lock();
         while (n > 0) {
             node = try_dequeue();
             while (!node) {
-                qemu_mutex_unlock_iothread();
+                bql_unlock();
                 qemu_event_reset(&rcu_call_ready_event);
                 node = try_dequeue();
                 if (!node) {
                     qemu_event_wait(&rcu_call_ready_event);
                     node = try_dequeue();
                 }
-                qemu_mutex_lock_iothread();
+                bql_lock();
             }
 
             n--;
             node->func(node);
         }
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     abort();
 }
@@ -337,13 +337,13 @@ static void drain_rcu_callback(struct rcu_head *node)
 void drain_call_rcu(void)
 {
     struct rcu_drain rcu_drain;
-    bool locked = qemu_mutex_iothread_locked();
+    bool locked = bql_locked();
 
     memset(&rcu_drain, 0, sizeof(struct rcu_drain));
     qemu_event_init(&rcu_drain.drain_complete_event, false);
 
     if (locked) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 
 
@@ -365,7 +365,7 @@ void drain_call_rcu(void)
     qatomic_dec(&in_drain_call_rcu);
 
     if (locked) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
 
 }
diff --git a/audio/coreaudio.m b/audio/coreaudio.m
index 8cd129a27d..9d2db9883c 100644
--- a/audio/coreaudio.m
+++ b/audio/coreaudio.m
@@ -547,7 +547,7 @@ static OSStatus handle_voice_change(
 {
     coreaudioVoiceOut *core = in_client_data;
 
-    qemu_mutex_lock_iothread();
+    bql_lock();
 
     if (core->outputDeviceID) {
         fini_out_device(core);
@@ -557,7 +557,7 @@ static OSStatus handle_voice_change(
         update_device_playback_state(core);
     }
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     return 0;
 }
 
diff --git a/memory_ldst.c.inc b/memory_ldst.c.inc
index 84b868f294..0e6f3940a9 100644
--- a/memory_ldst.c.inc
+++ b/memory_ldst.c.inc
@@ -61,7 +61,7 @@ static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL,
         *result = r;
     }
     if (release_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     RCU_READ_UNLOCK();
     return val;
@@ -130,7 +130,7 @@ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL,
         *result = r;
     }
     if (release_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     RCU_READ_UNLOCK();
     return val;
@@ -186,7 +186,7 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL,
         *result = r;
     }
     if (release_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     RCU_READ_UNLOCK();
     return val;
@@ -234,7 +234,7 @@ static inline uint16_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL,
         *result = r;
     }
     if (release_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     RCU_READ_UNLOCK();
     return val;
@@ -295,7 +295,7 @@ void glue(address_space_stl_notdirty, SUFFIX)(ARG1_DECL,
         *result = r;
     }
     if (release_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     RCU_READ_UNLOCK();
 }
@@ -339,7 +339,7 @@ static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL,
         *result = r;
     }
     if (release_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     RCU_READ_UNLOCK();
 }
@@ -391,7 +391,7 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL,
         *result = r;
     }
     if (release_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     RCU_READ_UNLOCK();
 }
@@ -435,7 +435,7 @@ static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL,
         *result = r;
     }
     if (release_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     RCU_READ_UNLOCK();
 }
@@ -499,7 +499,7 @@ static void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL,
         *result = r;
     }
     if (release_lock) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     RCU_READ_UNLOCK();
 }
diff --git a/target/i386/hvf/README.md b/target/i386/hvf/README.md
index 2d33477aca..64a8935237 100644
--- a/target/i386/hvf/README.md
+++ b/target/i386/hvf/README.md
@@ -4,4 +4,4 @@ These sources (and ../hvf-all.c) are adapted from Veertu Inc's vdhh (Veertu Desk
 
 1. Adapt to our current QEMU's `CPUState` structure and `address_space_rw` API; many struct members have been moved around (emulated x86 state, xsave_buf) due to historical differences + QEMU needing to handle more emulation targets.
 2. Removal of `apic_page` and hyperv-related functionality.
-3. More relaxed use of `qemu_mutex_lock_iothread`.
+3. More relaxed use of `bql_lock`.
diff --git a/ui/cocoa.m b/ui/cocoa.m
index cd069da696..5ebb535070 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -117,29 +117,29 @@ static void cocoa_switch(DisplayChangeListener *dcl,
 typedef void (^CodeBlock)(void);
 typedef bool (^BoolCodeBlock)(void);
 
-static void with_iothread_lock(CodeBlock block)
+static void with_bql(CodeBlock block)
 {
-    bool locked = qemu_mutex_iothread_locked();
+    bool locked = bql_locked();
     if (!locked) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
     block();
     if (!locked) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
 }
 
-static bool bool_with_iothread_lock(BoolCodeBlock block)
+static bool bool_with_bql(BoolCodeBlock block)
 {
-    bool locked = qemu_mutex_iothread_locked();
+    bool locked = bql_locked();
     bool val;
 
     if (!locked) {
-        qemu_mutex_lock_iothread();
+        bql_lock();
     }
     val = block();
     if (!locked) {
-        qemu_mutex_unlock_iothread();
+        bql_unlock();
     }
     return val;
 }
@@ -605,7 +605,7 @@ - (void) updateUIInfo
         return;
     }
 
-    with_iothread_lock(^{
+    with_bql(^{
         [self updateUIInfoLocked];
     });
 }
@@ -790,7 +790,7 @@ - (void) handleMonitorInput:(NSEvent *)event
 
 - (bool) handleEvent:(NSEvent *)event
 {
-    return bool_with_iothread_lock(^{
+    return bool_with_bql(^{
         return [self handleEventLocked:event];
     });
 }
@@ -1182,7 +1182,7 @@ - (QEMUScreen) gscreen {return screen;}
  */
 - (void) raiseAllKeys
 {
-    with_iothread_lock(^{
+    with_bql(^{
         qkbd_state_lift_all_keys(kbd);
     });
 }
@@ -1282,7 +1282,7 @@ - (void)applicationWillTerminate:(NSNotification *)aNotification
 {
     COCOA_DEBUG("QemuCocoaAppController: applicationWillTerminate\n");
 
-    with_iothread_lock(^{
+    with_bql(^{
         shutdown_action = SHUTDOWN_ACTION_POWEROFF;
         qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_UI);
     });
@@ -1420,7 +1420,7 @@ - (void)displayConsole:(id)sender
 /* Pause the guest */
 - (void)pauseQEMU:(id)sender
 {
-    with_iothread_lock(^{
+    with_bql(^{
         qmp_stop(NULL);
     });
     [sender setEnabled: NO];
@@ -1431,7 +1431,7 @@ - (void)pauseQEMU:(id)sender
 /* Resume running the guest operating system */
 - (void)resumeQEMU:(id) sender
 {
-    with_iothread_lock(^{
+    with_bql(^{
         qmp_cont(NULL);
     });
     [sender setEnabled: NO];
@@ -1461,7 +1461,7 @@ - (void)removePause
 /* Restarts QEMU */
 - (void)restartQEMU:(id)sender
 {
-    with_iothread_lock(^{
+    with_bql(^{
         qmp_system_reset(NULL);
     });
 }
@@ -1469,7 +1469,7 @@ - (void)restartQEMU:(id)sender
 /* Powers down QEMU */
 - (void)powerDownQEMU:(id)sender
 {
-    with_iothread_lock(^{
+    with_bql(^{
         qmp_system_powerdown(NULL);
     });
 }
@@ -1488,7 +1488,7 @@ - (void)ejectDeviceMedia:(id)sender
     }
 
     __block Error *err = NULL;
-    with_iothread_lock(^{
+    with_bql(^{
         qmp_eject([drive cStringUsingEncoding: NSASCIIStringEncoding],
                   NULL, false, false, &err);
     });
@@ -1523,7 +1523,7 @@ - (void)changeDeviceMedia:(id)sender
         }
 
         __block Error *err = NULL;
-        with_iothread_lock(^{
+        with_bql(^{
             qmp_blockdev_change_medium([drive cStringUsingEncoding:
                                                   NSASCIIStringEncoding],
                                        NULL,
@@ -1605,7 +1605,7 @@ - (void)adjustSpeed:(id)sender
     // get the throttle percentage
     throttle_pct = [sender tag];
 
-    with_iothread_lock(^{
+    with_bql(^{
         cpu_throttle_set(throttle_pct);
     });
     COCOA_DEBUG("cpu throttling at %d%c\n", cpu_throttle_get_percentage(), '%');
@@ -1819,7 +1819,7 @@ - (void)pasteboard:(NSPasteboard *)sender provideDataForType:(NSPasteboardType)t
         return;
     }
 
-    with_iothread_lock(^{
+    with_bql(^{
         QemuClipboardInfo *info = qemu_clipboard_info_ref(cbinfo);
         qemu_event_reset(&cbevent);
         qemu_clipboard_request(info, QEMU_CLIPBOARD_TYPE_TEXT);
@@ -1827,9 +1827,9 @@ - (void)pasteboard:(NSPasteboard *)sender provideDataForType:(NSPasteboardType)t
         while (info == cbinfo &&
                info->types[QEMU_CLIPBOARD_TYPE_TEXT].available &&
                info->types[QEMU_CLIPBOARD_TYPE_TEXT].data == NULL) {
-            qemu_mutex_unlock_iothread();
+            bql_unlock();
             qemu_event_wait(&cbevent);
-            qemu_mutex_lock_iothread();
+            bql_lock();
         }
 
         if (info == cbinfo) {
@@ -1927,9 +1927,9 @@ static void cocoa_clipboard_request(QemuClipboardInfo *info,
     int status;
 
     COCOA_DEBUG("Second thread: calling qemu_default_main()\n");
-    qemu_mutex_lock_iothread();
+    bql_lock();
     status = qemu_default_main();
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     COCOA_DEBUG("Second thread: qemu_default_main() returned, exiting\n");
     [cbowner release];
     exit(status);
@@ -1941,7 +1941,7 @@ static int cocoa_main(void)
 
     COCOA_DEBUG("Entered %s()\n", __func__);
 
-    qemu_mutex_unlock_iothread();
+    bql_unlock();
     qemu_thread_create(&thread, "qemu_main", call_qemu_main,
                        NULL, QEMU_THREAD_DETACHED);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:39:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:39:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653210.1019625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4r4-000479-0z; Tue, 12 Dec 2023 15:39:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653210.1019625; Tue, 12 Dec 2023 15: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 1rD4r3-000470-U2; Tue, 12 Dec 2023 15:39:29 +0000
Received: by outflank-mailman (input) for mailman id 653210;
 Tue, 12 Dec 2023 15:39:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ckot=HX=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rD4r2-0003HJ-9M
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:39:28 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a10a9e82-9904-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 16:39:26 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-544-_71iH8A6NKafr5XDmlNtWA-1; Tue, 12 Dec 2023 10:39:22 -0500
Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com
 [10.11.54.1])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6A6DB848944;
 Tue, 12 Dec 2023 15:39:20 +0000 (UTC)
Received: from localhost (unknown [10.39.193.220])
 by smtp.corp.redhat.com (Postfix) with ESMTP id 469623C25;
 Tue, 12 Dec 2023 15:39: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: a10a9e82-9904-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702395565;
	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=Xd7BChPoyrVAmQWuvXOGnPwm9Y44/Eg/Vj7EeInbfcY=;
	b=KaRC0o6qgg0Ani0iXOpIdF0IAFE2PGlyT+vBeKDtcgWWDrqaawx5K+8Ym/gYna33HArawg
	CdOYQxN/T+7wC7/u7QWhCTrB7wK8Jp39CwXFVD3aSJMbbY7U22M9tdWdlXg1j/dv3hWl6J
	KPl12LQ1xJZ8ZXoqQJBgPw6s44mIlAE=
X-MC-Unique: _71iH8A6NKafr5XDmlNtWA-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Artyom Tarasenko <atar4qemu@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	=?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@kaod.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	BALATON Zoltan <balaton@eik.bme.hu>,
	Jagannathan Raman <jag.raman@oracle.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
	Alexander Graf <agraf@csgraf.de>,
	Hailiang Zhang <zhanghailiang@xfusion.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	Harsh Prateek Bora <harshpb@linux.ibm.com>,
	Ilya Leoshkevich <iii@linux.ibm.com>,
	Peter Xu <peterx@redhat.com>,
	Hyman Huang <yong.huang@smartx.com>,
	Fam Zheng <fam@euphon.net>,
	Song Gao <gaosong@loongson.cn>,
	Alistair Francis <alistair.francis@wdc.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Leonardo Bras <leobras@redhat.com>,
	Jiri Slaby <jslaby@suse.cz>,
	Eric Farman <farman@linux.ibm.com>,
	Thomas Huth <thuth@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	David Hildenbrand <david@redhat.com>,
	Michael Roth <michael.roth@amd.com>,
	Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Cameron Esfahani <dirty@apple.com>,
	qemu-ppc@nongnu.org,
	John Snow <jsnow@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Weiwei Li <liwei1518@gmail.com>,
	Hanna Reitz <hreitz@redhat.com>,
	qemu-s390x@nongnu.org,
	qemu-block@nongnu.org,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	kvm@vger.kernel.org,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Reinoud Zandijk <reinoud@netbsd.org>,
	Kevin Wolf <kwolf@redhat.com>,
	Bin Meng <bin.meng@windriver.com>,
	Sunil Muthuswamy <sunilmut@microsoft.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-riscv@nongnu.org,
	Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
	Stafford Horne <shorne@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Juan Quintela <quintela@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	qemu-arm@nongnu.org,
	Jason Wang <jasowang@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Jean-Christophe Dubois <jcd@tribudubois.net>,
	Eric Blake <eblake@redhat.com>,
	Roman Bolshakov <rbolshakov@ddn.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH v2 3/5] qemu/main-loop: rename qemu_cond_wait_iothread() to qemu_cond_wait_bql()
Date: Tue, 12 Dec 2023 10:39:02 -0500
Message-ID: <20231212153905.631119-4-stefanha@redhat.com>
In-Reply-To: <20231212153905.631119-1-stefanha@redhat.com>
References: <20231212153905.631119-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.1

The name "iothread" is overloaded. Use the term Big QEMU Lock (BQL)
instead, it is already widely used and unambiguous.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: CÃ©dric Le Goater <clg@kaod.org>
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
---
 include/qemu/main-loop.h          | 10 +++++-----
 accel/tcg/tcg-accel-ops-rr.c      |  4 ++--
 hw/display/virtio-gpu.c           |  2 +-
 hw/ppc/spapr_events.c             |  2 +-
 system/cpu-throttle.c             |  2 +-
 system/cpus.c                     |  4 ++--
 target/i386/nvmm/nvmm-accel-ops.c |  2 +-
 target/i386/whpx/whpx-accel-ops.c |  2 +-
 8 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
index 1da0fb186e..662fdca566 100644
--- a/include/qemu/main-loop.h
+++ b/include/qemu/main-loop.h
@@ -372,17 +372,17 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(BQLLockAuto, bql_auto_unlock)
         = bql_auto_lock(__FILE__, __LINE__)
 
 /*
- * qemu_cond_wait_iothread: Wait on condition for the main loop mutex
+ * qemu_cond_wait_bql: Wait on condition for the Big QEMU Lock (BQL)
  *
- * This function atomically releases the main loop mutex and causes
+ * This function atomically releases the Big QEMU Lock (BQL) and causes
  * the calling thread to block on the condition.
  */
-void qemu_cond_wait_iothread(QemuCond *cond);
+void qemu_cond_wait_bql(QemuCond *cond);
 
 /*
- * qemu_cond_timedwait_iothread: like the previous, but with timeout
+ * qemu_cond_timedwait_bql: like the previous, but with timeout
  */
-void qemu_cond_timedwait_iothread(QemuCond *cond, int ms);
+void qemu_cond_timedwait_bql(QemuCond *cond, int ms);
 
 /* internal interfaces */
 
diff --git a/accel/tcg/tcg-accel-ops-rr.c b/accel/tcg/tcg-accel-ops-rr.c
index c4ea372a3f..5794e5a9ce 100644
--- a/accel/tcg/tcg-accel-ops-rr.c
+++ b/accel/tcg/tcg-accel-ops-rr.c
@@ -111,7 +111,7 @@ static void rr_wait_io_event(void)
 
     while (all_cpu_threads_idle()) {
         rr_stop_kick_timer();
-        qemu_cond_wait_iothread(first_cpu->halt_cond);
+        qemu_cond_wait_bql(first_cpu->halt_cond);
     }
 
     rr_start_kick_timer();
@@ -198,7 +198,7 @@ static void *rr_cpu_thread_fn(void *arg)
 
     /* wait for initial kick-off after machine start */
     while (first_cpu->stopped) {
-        qemu_cond_wait_iothread(first_cpu->halt_cond);
+        qemu_cond_wait_bql(first_cpu->halt_cond);
 
         /* process any pending work */
         CPU_FOREACH(cpu) {
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index b016d3bac8..67c5be1a4e 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1512,7 +1512,7 @@ void virtio_gpu_reset(VirtIODevice *vdev)
         g->reset_finished = false;
         qemu_bh_schedule(g->reset_bh);
         while (!g->reset_finished) {
-            qemu_cond_wait_iothread(&g->reset_cond);
+            qemu_cond_wait_bql(&g->reset_cond);
         }
     } else {
         virtio_gpu_reset_bh(g);
diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index deb4641505..cb0eeee587 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -899,7 +899,7 @@ void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered)
             }
             return;
         }
-        qemu_cond_wait_iothread(&spapr->fwnmi_machine_check_interlock_cond);
+        qemu_cond_wait_bql(&spapr->fwnmi_machine_check_interlock_cond);
         if (spapr->fwnmi_machine_check_addr == -1) {
             /*
              * If the machine was reset while waiting for the interlock,
diff --git a/system/cpu-throttle.c b/system/cpu-throttle.c
index 786a9a5639..c951a6c65e 100644
--- a/system/cpu-throttle.c
+++ b/system/cpu-throttle.c
@@ -54,7 +54,7 @@ static void cpu_throttle_thread(CPUState *cpu, run_on_cpu_data opaque)
     endtime_ns = qemu_clock_get_ns(QEMU_CLOCK_REALTIME) + sleeptime_ns;
     while (sleeptime_ns > 0 && !cpu->stop) {
         if (sleeptime_ns > SCALE_MS) {
-            qemu_cond_timedwait_iothread(cpu->halt_cond,
+            qemu_cond_timedwait_bql(cpu->halt_cond,
                                          sleeptime_ns / SCALE_MS);
         } else {
             bql_unlock();
diff --git a/system/cpus.c b/system/cpus.c
index 9b68dc9c7c..c8e2772b5f 100644
--- a/system/cpus.c
+++ b/system/cpus.c
@@ -514,12 +514,12 @@ void bql_unlock(void)
     qemu_mutex_unlock(&bql);
 }
 
-void qemu_cond_wait_iothread(QemuCond *cond)
+void qemu_cond_wait_bql(QemuCond *cond)
 {
     qemu_cond_wait(cond, &bql);
 }
 
-void qemu_cond_timedwait_iothread(QemuCond *cond, int ms)
+void qemu_cond_timedwait_bql(QemuCond *cond, int ms)
 {
     qemu_cond_timedwait(cond, &bql, ms);
 }
diff --git a/target/i386/nvmm/nvmm-accel-ops.c b/target/i386/nvmm/nvmm-accel-ops.c
index f9d5e9a37a..6b2bfd9b9c 100644
--- a/target/i386/nvmm/nvmm-accel-ops.c
+++ b/target/i386/nvmm/nvmm-accel-ops.c
@@ -48,7 +48,7 @@ static void *qemu_nvmm_cpu_thread_fn(void *arg)
             }
         }
         while (cpu_thread_is_idle(cpu)) {
-            qemu_cond_wait_iothread(cpu->halt_cond);
+            qemu_cond_wait_bql(cpu->halt_cond);
         }
         qemu_wait_io_event_common(cpu);
     } while (!cpu->unplug || cpu_can_run(cpu));
diff --git a/target/i386/whpx/whpx-accel-ops.c b/target/i386/whpx/whpx-accel-ops.c
index e783a760a7..189ae0f140 100644
--- a/target/i386/whpx/whpx-accel-ops.c
+++ b/target/i386/whpx/whpx-accel-ops.c
@@ -48,7 +48,7 @@ static void *whpx_cpu_thread_fn(void *arg)
             }
         }
         while (cpu_thread_is_idle(cpu)) {
-            qemu_cond_wait_iothread(cpu->halt_cond);
+            qemu_cond_wait_bql(cpu->halt_cond);
         }
         qemu_wait_io_event_common(cpu);
     } while (!cpu->unplug || cpu_can_run(cpu));
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:39:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:39:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653212.1019635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4rA-0004Vn-B4; Tue, 12 Dec 2023 15:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653212.1019635; Tue, 12 Dec 2023 15:39:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4rA-0004VW-6X; Tue, 12 Dec 2023 15:39:36 +0000
Received: by outflank-mailman (input) for mailman id 653212;
 Tue, 12 Dec 2023 15:39:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ckot=HX=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rD4r8-0004S0-B6
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:39:34 +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 a4b19ae2-9904-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 16:39:32 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-25-IhktvNooNpqmxnIbCz8xBA-1; Tue,
 12 Dec 2023 10:39:25 -0500
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com
 [10.11.54.3])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4B0911C0BA4F;
 Tue, 12 Dec 2023 15:39:23 +0000 (UTC)
Received: from localhost (unknown [10.39.193.220])
 by smtp.corp.redhat.com (Postfix) with ESMTP id D15FC1121306;
 Tue, 12 Dec 2023 15:39: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: a4b19ae2-9904-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702395571;
	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=YZijt9too/Os6Kph/L4KCjWYRbE74f+5vQOKqgCYPU8=;
	b=cAa8KMvJD1gf8kjPDs9iqMd0CdH+z94P3e+IQ+QMziL4A8mAXk//VB0rbXX7urZFgPoHdE
	0PDeBhc4xaw78AejNc/IA/02xy7Zks6zxfcGSNXWhWute4jBz/fTinVwN66z1GE81EO0QN
	zJ5DiJOGDNus8ZuLIp6FpsifdIp+xtQ=
X-MC-Unique: IhktvNooNpqmxnIbCz8xBA-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Artyom Tarasenko <atar4qemu@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	=?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@kaod.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	BALATON Zoltan <balaton@eik.bme.hu>,
	Jagannathan Raman <jag.raman@oracle.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
	Alexander Graf <agraf@csgraf.de>,
	Hailiang Zhang <zhanghailiang@xfusion.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	Harsh Prateek Bora <harshpb@linux.ibm.com>,
	Ilya Leoshkevich <iii@linux.ibm.com>,
	Peter Xu <peterx@redhat.com>,
	Hyman Huang <yong.huang@smartx.com>,
	Fam Zheng <fam@euphon.net>,
	Song Gao <gaosong@loongson.cn>,
	Alistair Francis <alistair.francis@wdc.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Leonardo Bras <leobras@redhat.com>,
	Jiri Slaby <jslaby@suse.cz>,
	Eric Farman <farman@linux.ibm.com>,
	Thomas Huth <thuth@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	David Hildenbrand <david@redhat.com>,
	Michael Roth <michael.roth@amd.com>,
	Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Cameron Esfahani <dirty@apple.com>,
	qemu-ppc@nongnu.org,
	John Snow <jsnow@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Weiwei Li <liwei1518@gmail.com>,
	Hanna Reitz <hreitz@redhat.com>,
	qemu-s390x@nongnu.org,
	qemu-block@nongnu.org,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	kvm@vger.kernel.org,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Reinoud Zandijk <reinoud@netbsd.org>,
	Kevin Wolf <kwolf@redhat.com>,
	Bin Meng <bin.meng@windriver.com>,
	Sunil Muthuswamy <sunilmut@microsoft.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-riscv@nongnu.org,
	Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
	Stafford Horne <shorne@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Juan Quintela <quintela@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	qemu-arm@nongnu.org,
	Jason Wang <jasowang@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Jean-Christophe Dubois <jcd@tribudubois.net>,
	Eric Blake <eblake@redhat.com>,
	Roman Bolshakov <rbolshakov@ddn.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH v2 4/5] Replace "iothread lock" with "BQL" in comments
Date: Tue, 12 Dec 2023 10:39:03 -0500
Message-ID: <20231212153905.631119-5-stefanha@redhat.com>
In-Reply-To: <20231212153905.631119-1-stefanha@redhat.com>
References: <20231212153905.631119-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3

The term "iothread lock" is obsolete. The APIs use Big QEMU Lock (BQL)
in their names. Update the code comments to use "BQL" instead of
"iothread lock".

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
---
 docs/devel/reset.rst             |  2 +-
 hw/display/qxl.h                 |  2 +-
 include/exec/cpu-common.h        |  2 +-
 include/exec/memory.h            |  4 ++--
 include/exec/ramblock.h          |  2 +-
 include/migration/register.h     |  8 ++++----
 target/arm/internals.h           |  4 ++--
 accel/tcg/cputlb.c               |  4 ++--
 accel/tcg/tcg-accel-ops-icount.c |  2 +-
 hw/remote/mpqemu-link.c          |  2 +-
 migration/block-dirty-bitmap.c   | 10 +++++-----
 migration/block.c                | 24 ++++++++++++------------
 migration/colo.c                 |  2 +-
 migration/migration.c            |  2 +-
 migration/ram.c                  |  4 ++--
 system/physmem.c                 |  6 +++---
 target/arm/helper.c              |  2 +-
 ui/spice-core.c                  |  2 +-
 util/rcu.c                       |  2 +-
 audio/coreaudio.m                |  4 ++--
 ui/cocoa.m                       |  6 +++---
 21 files changed, 48 insertions(+), 48 deletions(-)

diff --git a/docs/devel/reset.rst b/docs/devel/reset.rst
index 38ed1790f7..d4e79718ba 100644
--- a/docs/devel/reset.rst
+++ b/docs/devel/reset.rst
@@ -19,7 +19,7 @@ Triggering reset
 
 This section documents the APIs which "users" of a resettable object should use
 to control it. All resettable control functions must be called while holding
-the iothread lock.
+the BQL.
 
 You can apply a reset to an object using ``resettable_assert_reset()``. You need
 to call ``resettable_release_reset()`` to release the object from reset. To
diff --git a/hw/display/qxl.h b/hw/display/qxl.h
index fdac14edad..e0a85a5ca4 100644
--- a/hw/display/qxl.h
+++ b/hw/display/qxl.h
@@ -159,7 +159,7 @@ OBJECT_DECLARE_SIMPLE_TYPE(PCIQXLDevice, PCI_QXL)
  *
  * Use with care; by the time this function returns, the returned pointer is
  * not protected by RCU anymore.  If the caller is not within an RCU critical
- * section and does not hold the iothread lock, it must have other means of
+ * section and does not hold the BQL, it must have other means of
  * protecting the pointer, such as a reference to the region that includes
  * the incoming ram_addr_t.
  *
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
index 41115d8919..fef3138d29 100644
--- a/include/exec/cpu-common.h
+++ b/include/exec/cpu-common.h
@@ -92,7 +92,7 @@ RAMBlock *qemu_ram_block_by_name(const char *name);
  *
  * By the time this function returns, the returned pointer is not protected
  * by RCU anymore.  If the caller is not within an RCU critical section and
- * does not hold the iothread lock, it must have other means of protecting the
+ * does not hold the BQL, it must have other means of protecting the
  * pointer, such as a reference to the memory region that owns the RAMBlock.
  */
 RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
diff --git a/include/exec/memory.h b/include/exec/memory.h
index 831f7c996d..ad6466b07e 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -1962,7 +1962,7 @@ int memory_region_get_fd(MemoryRegion *mr);
  *
  * Use with care; by the time this function returns, the returned pointer is
  * not protected by RCU anymore.  If the caller is not within an RCU critical
- * section and does not hold the iothread lock, it must have other means of
+ * section and does not hold the BQL, it must have other means of
  * protecting the pointer, such as a reference to the region that includes
  * the incoming ram_addr_t.
  *
@@ -1979,7 +1979,7 @@ MemoryRegion *memory_region_from_host(void *ptr, ram_addr_t *offset);
  *
  * Use with care; by the time this function returns, the returned pointer is
  * not protected by RCU anymore.  If the caller is not within an RCU critical
- * section and does not hold the iothread lock, it must have other means of
+ * section and does not hold the BQL, it must have other means of
  * protecting the pointer, such as a reference to the region that includes
  * the incoming ram_addr_t.
  *
diff --git a/include/exec/ramblock.h b/include/exec/ramblock.h
index 69c6a53902..3eb79723c6 100644
--- a/include/exec/ramblock.h
+++ b/include/exec/ramblock.h
@@ -34,7 +34,7 @@ struct RAMBlock {
     ram_addr_t max_length;
     void (*resized)(const char*, uint64_t length, void *host);
     uint32_t flags;
-    /* Protected by iothread lock.  */
+    /* Protected by the BQL.  */
     char idstr[256];
     /* RCU-enabled, writes protected by the ramlist lock */
     QLIST_ENTRY(RAMBlock) next;
diff --git a/include/migration/register.h b/include/migration/register.h
index fed1d04a3c..9ab1f79512 100644
--- a/include/migration/register.h
+++ b/include/migration/register.h
@@ -17,7 +17,7 @@
 #include "hw/vmstate-if.h"
 
 typedef struct SaveVMHandlers {
-    /* This runs inside the iothread lock.  */
+    /* This runs inside the BQL.  */
     SaveStateHandler *save_state;
 
     /*
@@ -30,7 +30,7 @@ typedef struct SaveVMHandlers {
     int (*save_live_complete_postcopy)(QEMUFile *f, void *opaque);
     int (*save_live_complete_precopy)(QEMUFile *f, void *opaque);
 
-    /* This runs both outside and inside the iothread lock.  */
+    /* This runs both outside and inside the BQL.  */
     bool (*is_active)(void *opaque);
     bool (*has_postcopy)(void *opaque);
 
@@ -43,14 +43,14 @@ typedef struct SaveVMHandlers {
      */
     bool (*is_active_iterate)(void *opaque);
 
-    /* This runs outside the iothread lock in the migration case, and
+    /* This runs outside the BQL in the migration case, and
      * within the lock in the savevm case.  The callback had better only
      * use data that is local to the migration thread or protected
      * by other locks.
      */
     int (*save_live_iterate)(QEMUFile *f, void *opaque);
 
-    /* This runs outside the iothread lock!  */
+    /* This runs outside the BQL!  */
     /* Note for save_live_pending:
      * must_precopy:
      * - must be migrated in precopy or in stopped state
diff --git a/target/arm/internals.h b/target/arm/internals.h
index 143d57c0fe..71d6c70bf3 100644
--- a/target/arm/internals.h
+++ b/target/arm/internals.h
@@ -940,7 +940,7 @@ static inline const char *aarch32_mode_name(uint32_t psr)
  *
  * Update the CPU_INTERRUPT_VIRQ bit in cs->interrupt_request, following
  * a change to either the input VIRQ line from the GIC or the HCR_EL2.VI bit.
- * Must be called with the iothread lock held.
+ * Must be called with the BQL held.
  */
 void arm_cpu_update_virq(ARMCPU *cpu);
 
@@ -949,7 +949,7 @@ void arm_cpu_update_virq(ARMCPU *cpu);
  *
  * Update the CPU_INTERRUPT_VFIQ bit in cs->interrupt_request, following
  * a change to either the input VFIQ line from the GIC or the HCR_EL2.VF bit.
- * Must be called with the iothread lock held.
+ * Must be called with the BQL held.
  */
 void arm_cpu_update_vfiq(ARMCPU *cpu);
 
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
index 5698a9fd8e..3facfcbb24 100644
--- a/accel/tcg/cputlb.c
+++ b/accel/tcg/cputlb.c
@@ -1975,7 +1975,7 @@ static void *atomic_mmu_lookup(CPUState *cpu, vaddr addr, MemOpIdx oi,
  * @size: number of bytes
  * @mmu_idx: virtual address context
  * @ra: return address into tcg generated code, or 0
- * Context: iothread lock held
+ * Context: BQL held
  *
  * Load @size bytes from @addr, which is memory-mapped i/o.
  * The bytes are concatenated in big-endian order with @ret_be.
@@ -2521,7 +2521,7 @@ static Int128 do_ld16_mmu(CPUState *cpu, vaddr addr,
  * @size: number of bytes
  * @mmu_idx: virtual address context
  * @ra: return address into tcg generated code, or 0
- * Context: iothread lock held
+ * Context: BQL held
  *
  * Store @size bytes at @addr, which is memory-mapped i/o.
  * The bytes to store are extracted in little-endian order from @val_le;
diff --git a/accel/tcg/tcg-accel-ops-icount.c b/accel/tcg/tcg-accel-ops-icount.c
index 5824d92580..9e1ae66f65 100644
--- a/accel/tcg/tcg-accel-ops-icount.c
+++ b/accel/tcg/tcg-accel-ops-icount.c
@@ -123,7 +123,7 @@ void icount_prepare_for_run(CPUState *cpu, int64_t cpu_budget)
 
     if (cpu->icount_budget == 0) {
         /*
-         * We're called without the iothread lock, so must take it while
+         * We're called without the BQL, so must take it while
          * we're calling timer handlers.
          */
         bql_lock();
diff --git a/hw/remote/mpqemu-link.c b/hw/remote/mpqemu-link.c
index d04ac93621..4394dc4d82 100644
--- a/hw/remote/mpqemu-link.c
+++ b/hw/remote/mpqemu-link.c
@@ -58,7 +58,7 @@ bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)
     assert(qemu_in_coroutine() || !iothread);
 
     /*
-     * Skip unlocking/locking iothread lock when the IOThread is running
+     * Skip unlocking/locking BQL when the IOThread is running
      * in co-routine context. Co-routine context is asserted above
      * for IOThread case.
      * Also skip lock handling while in a co-routine in the main context.
diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c
index 92e031b6fa..2708abf3d7 100644
--- a/migration/block-dirty-bitmap.c
+++ b/migration/block-dirty-bitmap.c
@@ -464,7 +464,7 @@ static void send_bitmap_bits(QEMUFile *f, DBMSaveState *s,
     g_free(buf);
 }
 
-/* Called with iothread lock taken.  */
+/* Called with the BQL taken.  */
 static void dirty_bitmap_do_save_cleanup(DBMSaveState *s)
 {
     SaveBitmapState *dbms;
@@ -479,7 +479,7 @@ static void dirty_bitmap_do_save_cleanup(DBMSaveState *s)
     }
 }
 
-/* Called with iothread lock taken. */
+/* Called with the BQL taken. */
 static int add_bitmaps_to_list(DBMSaveState *s, BlockDriverState *bs,
                                const char *bs_name, GHashTable *alias_map)
 {
@@ -598,7 +598,7 @@ static int add_bitmaps_to_list(DBMSaveState *s, BlockDriverState *bs,
     return 0;
 }
 
-/* Called with iothread lock taken. */
+/* Called with the BQL taken. */
 static int init_dirty_bitmap_migration(DBMSaveState *s)
 {
     BlockDriverState *bs;
@@ -607,7 +607,7 @@ static int init_dirty_bitmap_migration(DBMSaveState *s)
     BlockBackend *blk;
     GHashTable *alias_map = NULL;
 
-    /* Runs in the migration thread, but holds the iothread lock */
+    /* Runs in the migration thread, but holds the BQL */
     GLOBAL_STATE_CODE();
     GRAPH_RDLOCK_GUARD_MAINLOOP();
 
@@ -742,7 +742,7 @@ static int dirty_bitmap_save_iterate(QEMUFile *f, void *opaque)
     return s->bulk_completed;
 }
 
-/* Called with iothread lock taken.  */
+/* Called with the BQL taken.  */
 
 static int dirty_bitmap_save_complete(QEMUFile *f, void *opaque)
 {
diff --git a/migration/block.c b/migration/block.c
index 4a675b92bc..61d4daf022 100644
--- a/migration/block.c
+++ b/migration/block.c
@@ -66,7 +66,7 @@ typedef struct BlkMigDevState {
     /* Protected by block migration lock.  */
     int64_t completed_sectors;
 
-    /* During migration this is protected by iothread lock / AioContext.
+    /* During migration this is protected by BQL / AioContext.
      * Allocation and free happen during setup and cleanup respectively.
      */
     BdrvDirtyBitmap *dirty_bitmap;
@@ -101,7 +101,7 @@ typedef struct BlkMigState {
     int prev_progress;
     int bulk_completed;
 
-    /* Lock must be taken _inside_ the iothread lock and any AioContexts.  */
+    /* Lock must be taken _inside_ the BQL and any AioContexts.  */
     QemuMutex lock;
 } BlkMigState;
 
@@ -117,7 +117,7 @@ static void blk_mig_unlock(void)
     qemu_mutex_unlock(&block_mig_state.lock);
 }
 
-/* Must run outside of the iothread lock during the bulk phase,
+/* Must run outside of the BQL during the bulk phase,
  * or the VM will stall.
  */
 
@@ -334,7 +334,7 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
     return (bmds->cur_sector >= total_sectors);
 }
 
-/* Called with iothread lock taken.  */
+/* Called with the BQL taken.  */
 
 static int set_dirty_tracking(void)
 {
@@ -361,7 +361,7 @@ fail:
     return ret;
 }
 
-/* Called with iothread lock taken.  */
+/* Called with the BQL taken.  */
 
 static void unset_dirty_tracking(void)
 {
@@ -512,7 +512,7 @@ static void blk_mig_reset_dirty_cursor(void)
     }
 }
 
-/* Called with iothread lock and AioContext taken.  */
+/* Called with the BQL and AioContext taken.  */
 
 static int mig_save_device_dirty(QEMUFile *f, BlkMigDevState *bmds,
                                  int is_async)
@@ -594,7 +594,7 @@ error:
     return ret;
 }
 
-/* Called with iothread lock taken.
+/* Called with the BQL taken.
  *
  * return value:
  * 0: too much data for max_downtime
@@ -658,7 +658,7 @@ static int flush_blks(QEMUFile *f)
     return ret;
 }
 
-/* Called with iothread lock taken.  */
+/* Called with the BQL taken.  */
 
 static int64_t get_remaining_dirty(void)
 {
@@ -676,7 +676,7 @@ static int64_t get_remaining_dirty(void)
 
 
 
-/* Called with iothread lock taken.  */
+/* Called with the BQL taken.  */
 static void block_migration_cleanup_bmds(void)
 {
     BlkMigDevState *bmds;
@@ -706,7 +706,7 @@ static void block_migration_cleanup_bmds(void)
     }
 }
 
-/* Called with iothread lock taken.  */
+/* Called with the BQL taken.  */
 static void block_migration_cleanup(void *opaque)
 {
     BlkMigBlock *blk;
@@ -783,7 +783,7 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
             }
             ret = 0;
         } else {
-            /* Always called with iothread lock taken for
+            /* Always called with the BQL taken for
              * simplicity, block_save_complete also calls it.
              */
             bql_lock();
@@ -811,7 +811,7 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
     return (delta_bytes > 0);
 }
 
-/* Called with iothread lock taken.  */
+/* Called with the BQL taken.  */
 
 static int block_save_complete(QEMUFile *f, void *opaque)
 {
diff --git a/migration/colo.c b/migration/colo.c
index 2a74efdd77..315e31fe32 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -945,7 +945,7 @@ int coroutine_fn colo_incoming_co(void)
     qemu_thread_join(&th);
     bql_lock();
 
-    /* We hold the global iothread lock, so it is safe here */
+    /* We hold the global BQL, so it is safe here */
     colo_release_ram_cache();
 
     return 0;
diff --git a/migration/migration.c b/migration/migration.c
index be74c714d6..fb0a1a766f 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2567,7 +2567,7 @@ fail:
 
 /**
  * migration_maybe_pause: Pause if required to by
- * migrate_pause_before_switchover called with the iothread locked
+ * migrate_pause_before_switchover called with the BQL locked
  * Returns: 0 on success
  */
 static int migration_maybe_pause(MigrationState *s,
diff --git a/migration/ram.c b/migration/ram.c
index 08dc7e2909..890f31cf66 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -2395,7 +2395,7 @@ static void ram_save_cleanup(void *opaque)
 
     /* We don't use dirty log with background snapshots */
     if (!migrate_background_snapshot()) {
-        /* caller have hold iothread lock or is in a bh, so there is
+        /* caller have hold BQL or is in a bh, so there is
          * no writing race against the migration bitmap
          */
         if (global_dirty_tracking & GLOBAL_DIRTY_MIGRATION) {
@@ -3131,7 +3131,7 @@ out:
  *
  * Returns zero to indicate success or negative on error
  *
- * Called with iothread lock
+ * Called with the BQL
  *
  * @f: QEMUFile where to send the data
  * @opaque: RAMState pointer
diff --git a/system/physmem.c b/system/physmem.c
index 4937e67bad..cc68a79763 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -799,7 +799,7 @@ static RAMBlock *qemu_get_ram_block(ram_addr_t addr)
     abort();
 
 found:
-    /* It is safe to write mru_block outside the iothread lock.  This
+    /* It is safe to write mru_block outside the BQL.  This
      * is what happens:
      *
      *     mru_block = xxx
@@ -1597,7 +1597,7 @@ int qemu_ram_get_fd(RAMBlock *rb)
     return rb->fd;
 }
 
-/* Called with iothread lock held.  */
+/* Called with the BQL held.  */
 void qemu_ram_set_idstr(RAMBlock *new_block, const char *name, DeviceState *dev)
 {
     RAMBlock *block;
@@ -1625,7 +1625,7 @@ void qemu_ram_set_idstr(RAMBlock *new_block, const char *name, DeviceState *dev)
     }
 }
 
-/* Called with iothread lock held.  */
+/* Called with the BQL held.  */
 void qemu_ram_unset_idstr(RAMBlock *block)
 {
     /* FIXME: arch_init.c assumes that this is not called throughout
diff --git a/target/arm/helper.c b/target/arm/helper.c
index 4a978d1102..16ec643337 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -5824,7 +5824,7 @@ static void do_hcr_write(CPUARMState *env, uint64_t value, uint64_t valid_mask)
      * Updates to VI and VF require us to update the status of
      * virtual interrupts, which are the logical OR of these bits
      * and the state of the input lines from the GIC. (This requires
-     * that we have the iothread lock, which is done by marking the
+     * that we have the BQL, which is done by marking the
      * reginfo structs as ARM_CP_IO.)
      * Note that if a write to HCR pends a VIRQ or VFIQ it is never
      * possible for it to be taken immediately, because VIRQ and
diff --git a/ui/spice-core.c b/ui/spice-core.c
index b6ee495a8f..37b277fd09 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -217,7 +217,7 @@ static void channel_event(int event, SpiceChannelEventInfo *info)
      * not do that.  It isn't that easy to fix it in spice and even
      * when it is fixed we still should cover the already released
      * spice versions.  So detect that we've been called from another
-     * thread and grab the iothread lock if so before calling qemu
+     * thread and grab the BQL if so before calling qemu
      * functions.
      */
     bool need_lock = !qemu_thread_is_self(&me);
diff --git a/util/rcu.c b/util/rcu.c
index bb7f633b5c..fa32c942e4 100644
--- a/util/rcu.c
+++ b/util/rcu.c
@@ -409,7 +409,7 @@ static void rcu_init_complete(void)
 
     qemu_event_init(&rcu_call_ready_event, false);
 
-    /* The caller is assumed to have iothread lock, so the call_rcu thread
+    /* The caller is assumed to have BQL, so the call_rcu thread
      * must have been quiescent even after forking, just recreate it.
      */
     qemu_thread_create(&thread, "call_rcu", call_rcu_thread,
diff --git a/audio/coreaudio.m b/audio/coreaudio.m
index 9d2db9883c..ab632b9bbb 100644
--- a/audio/coreaudio.m
+++ b/audio/coreaudio.m
@@ -299,7 +299,7 @@ static ret_type glue(coreaudio_, name)args_decl             \
 #undef COREAUDIO_WRAPPER_FUNC
 
 /*
- * callback to feed audiooutput buffer. called without iothread lock.
+ * callback to feed audiooutput buffer. called without BQL.
  * allowed to lock "buf_mutex", but disallowed to have any other locks.
  */
 static OSStatus audioDeviceIOProc(
@@ -538,7 +538,7 @@ static void update_device_playback_state(coreaudioVoiceOut *core)
     }
 }
 
-/* called without iothread lock. */
+/* called without BQL. */
 static OSStatus handle_voice_change(
     AudioObjectID in_object_id,
     UInt32 in_number_addresses,
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 5ebb535070..eb99064bee 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -113,7 +113,7 @@ static void cocoa_switch(DisplayChangeListener *dcl,
 static QemuClipboardInfo *cbinfo;
 static QemuEvent cbevent;
 
-// Utility functions to run specified code block with iothread lock held
+// Utility functions to run specified code block with the BQL held
 typedef void (^CodeBlock)(void);
 typedef bool (^BoolCodeBlock)(void);
 
@@ -548,7 +548,7 @@ - (void) setContentDimensions
 
 - (void) updateUIInfoLocked
 {
-    /* Must be called with the iothread lock, i.e. via updateUIInfo */
+    /* Must be called with the BQL, i.e. via updateUIInfo */
     NSSize frameSize;
     QemuUIInfo info;
 
@@ -2075,7 +2075,7 @@ static void cocoa_display_init(DisplayState *ds, DisplayOptions *opts)
      * Create the menu entries which depend on QEMU state (for consoles
      * and removable devices). These make calls back into QEMU functions,
      * which is OK because at this point we know that the second thread
-     * holds the iothread lock and is synchronously waiting for us to
+     * holds the BQL and is synchronously waiting for us to
      * finish.
      */
     add_console_menu_entries();
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:39:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:39:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653213.1019642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4rB-0004fa-2b; Tue, 12 Dec 2023 15:39:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653213.1019642; Tue, 12 Dec 2023 15:39:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4rA-0004f1-Rh; Tue, 12 Dec 2023 15:39:36 +0000
Received: by outflank-mailman (input) for mailman id 653213;
 Tue, 12 Dec 2023 15:39:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ckot=HX=redhat.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rD4r9-0004S0-0k
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:39:35 +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 a56c5078-9904-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 16:39:33 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-411-nid3NutHOn2yfWpyd9v-ow-1; Tue, 12 Dec 2023 10:39:28 -0500
Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com
 [10.11.54.7])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0F7B8101A52A;
 Tue, 12 Dec 2023 15:39:26 +0000 (UTC)
Received: from localhost (unknown [10.39.193.220])
 by smtp.corp.redhat.com (Postfix) with ESMTP id CA6D71C060AF;
 Tue, 12 Dec 2023 15:39:24 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a56c5078-9904-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702395572;
	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=kB/so7QFFjnkFtHtE1LEBq5orXKBbKTqYBv/2PCkoOc=;
	b=TfmFqPQ2tR5GgtDQi+L3YvTq6QHFFWx8fQv7zpMyBVLV6cfJ8Dso+S/x5PQEUPNFvNuNO+
	kImmvUY+qzV3JfIHJCOICv/ixFRhImFKm1iaFsF88g7VtRDHMhrE1rBUH7TYuk6YK8P8QG
	AKd0oP2sSI6EebiKILTmIyRXiAFdPYw=
X-MC-Unique: nid3NutHOn2yfWpyd9v-ow-1
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Akihiko Odaki <akihiko.odaki@daynix.com>,
	Artyom Tarasenko <atar4qemu@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	=?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@kaod.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	BALATON Zoltan <balaton@eik.bme.hu>,
	Jagannathan Raman <jag.raman@oracle.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
	Alexander Graf <agraf@csgraf.de>,
	Hailiang Zhang <zhanghailiang@xfusion.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	Harsh Prateek Bora <harshpb@linux.ibm.com>,
	Ilya Leoshkevich <iii@linux.ibm.com>,
	Peter Xu <peterx@redhat.com>,
	Hyman Huang <yong.huang@smartx.com>,
	Fam Zheng <fam@euphon.net>,
	Song Gao <gaosong@loongson.cn>,
	Alistair Francis <alistair.francis@wdc.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Leonardo Bras <leobras@redhat.com>,
	Jiri Slaby <jslaby@suse.cz>,
	Eric Farman <farman@linux.ibm.com>,
	Thomas Huth <thuth@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	David Hildenbrand <david@redhat.com>,
	Michael Roth <michael.roth@amd.com>,
	Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Cameron Esfahani <dirty@apple.com>,
	qemu-ppc@nongnu.org,
	John Snow <jsnow@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Weiwei Li <liwei1518@gmail.com>,
	Hanna Reitz <hreitz@redhat.com>,
	qemu-s390x@nongnu.org,
	qemu-block@nongnu.org,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	kvm@vger.kernel.org,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Reinoud Zandijk <reinoud@netbsd.org>,
	Kevin Wolf <kwolf@redhat.com>,
	Bin Meng <bin.meng@windriver.com>,
	Sunil Muthuswamy <sunilmut@microsoft.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-riscv@nongnu.org,
	Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
	Stafford Horne <shorne@gmail.com>,
	Fabiano Rosas <farosas@suse.de>,
	Juan Quintela <quintela@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	qemu-arm@nongnu.org,
	Jason Wang <jasowang@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Jean-Christophe Dubois <jcd@tribudubois.net>,
	Eric Blake <eblake@redhat.com>,
	Roman Bolshakov <rbolshakov@ddn.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH v2 5/5] Rename "QEMU global mutex" to "BQL" in comments and docs
Date: Tue, 12 Dec 2023 10:39:04 -0500
Message-ID: <20231212153905.631119-6-stefanha@redhat.com>
In-Reply-To: <20231212153905.631119-1-stefanha@redhat.com>
References: <20231212153905.631119-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7

The term "QEMU global mutex" is identical to the more widely used Big
QEMU Lock ("BQL"). Update the code comments and documentation to use
"BQL" instead of "QEMU global mutex".

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
---
 docs/devel/multi-thread-tcg.rst   |  7 +++----
 docs/devel/qapi-code-gen.rst      |  2 +-
 docs/devel/replay.rst             |  2 +-
 docs/devel/multiple-iothreads.txt | 16 ++++++++--------
 include/block/blockjob.h          |  6 +++---
 include/io/task.h                 |  2 +-
 include/qemu/coroutine-core.h     |  2 +-
 include/qemu/coroutine.h          |  2 +-
 hw/block/dataplane/virtio-blk.c   |  8 ++++----
 hw/block/virtio-blk.c             |  2 +-
 hw/scsi/virtio-scsi-dataplane.c   |  6 +++---
 net/tap.c                         |  2 +-
 12 files changed, 28 insertions(+), 29 deletions(-)

diff --git a/docs/devel/multi-thread-tcg.rst b/docs/devel/multi-thread-tcg.rst
index c9541a7b20..7302c3bf53 100644
--- a/docs/devel/multi-thread-tcg.rst
+++ b/docs/devel/multi-thread-tcg.rst
@@ -226,10 +226,9 @@ instruction. This could be a future optimisation.
 Emulated hardware state
 -----------------------
 
-Currently thanks to KVM work any access to IO memory is automatically
-protected by the global iothread mutex, also known as the BQL (Big
-QEMU Lock). Any IO region that doesn't use global mutex is expected to
-do its own locking.
+Currently thanks to KVM work any access to IO memory is automatically protected
+by the BQL (Big QEMU Lock). Any IO region that doesn't use the BQL is expected
+to do its own locking.
 
 However IO memory isn't the only way emulated hardware state can be
 modified. Some architectures have model specific registers that
diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
index 7f78183cd4..ea8228518c 100644
--- a/docs/devel/qapi-code-gen.rst
+++ b/docs/devel/qapi-code-gen.rst
@@ -594,7 +594,7 @@ blocking the guest and other background operations.
 Coroutine safety can be hard to prove, similar to thread safety.  Common
 pitfalls are:
 
-- The global mutex isn't held across ``qemu_coroutine_yield()``, so
+- The BQL isn't held across ``qemu_coroutine_yield()``, so
   operations that used to assume that they execute atomically may have
   to be more careful to protect against changes in the global state.
 
diff --git a/docs/devel/replay.rst b/docs/devel/replay.rst
index 0244be8b9c..effd856f0c 100644
--- a/docs/devel/replay.rst
+++ b/docs/devel/replay.rst
@@ -184,7 +184,7 @@ modes.
 Reading and writing requests are created by CPU thread of QEMU. Later these
 requests proceed to block layer which creates "bottom halves". Bottom
 halves consist of callback and its parameters. They are processed when
-main loop locks the global mutex. These locks are not synchronized with
+main loop locks the BQL. These locks are not synchronized with
 replaying process because main loop also processes the events that do not
 affect the virtual machine state (like user interaction with monitor).
 
diff --git a/docs/devel/multiple-iothreads.txt b/docs/devel/multiple-iothreads.txt
index a3e949f6b3..828e5527a3 100644
--- a/docs/devel/multiple-iothreads.txt
+++ b/docs/devel/multiple-iothreads.txt
@@ -5,7 +5,7 @@ the COPYING file in the top-level directory.
 
 
 This document explains the IOThread feature and how to write code that runs
-outside the QEMU global mutex.
+outside the BQL.
 
 The main loop and IOThreads
 ---------------------------
@@ -29,13 +29,13 @@ scalability bottleneck on hosts with many CPUs.  Work can be spread across
 several IOThreads instead of just one main loop.  When set up correctly this
 can improve I/O latency and reduce jitter seen by the guest.
 
-The main loop is also deeply associated with the QEMU global mutex, which is a
-scalability bottleneck in itself.  vCPU threads and the main loop use the QEMU
-global mutex to serialize execution of QEMU code.  This mutex is necessary
-because a lot of QEMU's code historically was not thread-safe.
+The main loop is also deeply associated with the BQL, which is a
+scalability bottleneck in itself.  vCPU threads and the main loop use the BQL
+to serialize execution of QEMU code.  This mutex is necessary because a lot of
+QEMU's code historically was not thread-safe.
 
 The fact that all I/O processing is done in a single main loop and that the
-QEMU global mutex is contended by all vCPU threads and the main loop explain
+BQL is contended by all vCPU threads and the main loop explain
 why it is desirable to place work into IOThreads.
 
 The experimental virtio-blk data-plane implementation has been benchmarked and
@@ -66,7 +66,7 @@ There are several old APIs that use the main loop AioContext:
 
 Since they implicitly work on the main loop they cannot be used in code that
 runs in an IOThread.  They might cause a crash or deadlock if called from an
-IOThread since the QEMU global mutex is not held.
+IOThread since the BQL is not held.
 
 Instead, use the AioContext functions directly (see include/block/aio.h):
  * aio_set_fd_handler() - monitor a file descriptor
@@ -105,7 +105,7 @@ used in the block layer and can lead to hangs.
 
 There is currently no lock ordering rule if a thread needs to acquire multiple
 AioContexts simultaneously.  Therefore, it is only safe for code holding the
-QEMU global mutex to acquire other AioContexts.
+BQL to acquire other AioContexts.
 
 Side note: the best way to schedule a function call across threads is to call
 aio_bh_schedule_oneshot().  No acquire/release or locking is needed.
diff --git a/include/block/blockjob.h b/include/block/blockjob.h
index e594c10d23..7061ab7201 100644
--- a/include/block/blockjob.h
+++ b/include/block/blockjob.h
@@ -54,7 +54,7 @@ typedef struct BlockJob {
 
     /**
      * Speed that was set with @block_job_set_speed.
-     * Always modified and read under QEMU global mutex (GLOBAL_STATE_CODE).
+     * Always modified and read under the BQL (GLOBAL_STATE_CODE).
      */
     int64_t speed;
 
@@ -66,7 +66,7 @@ typedef struct BlockJob {
 
     /**
      * Block other operations when block job is running.
-     * Always modified and read under QEMU global mutex (GLOBAL_STATE_CODE).
+     * Always modified and read under the BQL (GLOBAL_STATE_CODE).
      */
     Error *blocker;
 
@@ -89,7 +89,7 @@ typedef struct BlockJob {
 
     /**
      * BlockDriverStates that are involved in this block job.
-     * Always modified and read under QEMU global mutex (GLOBAL_STATE_CODE).
+     * Always modified and read under the BQL (GLOBAL_STATE_CODE).
      */
     GSList *nodes;
 } BlockJob;
diff --git a/include/io/task.h b/include/io/task.h
index dc7d32ebd0..0b5342ee84 100644
--- a/include/io/task.h
+++ b/include/io/task.h
@@ -149,7 +149,7 @@ typedef void (*QIOTaskWorker)(QIOTask *task,
  * lookups) to be easily run non-blocking. Reporting the
  * results in the main thread context means that the caller
  * typically does not need to be concerned about thread
- * safety wrt the QEMU global mutex.
+ * safety wrt the BQL.
  *
  * For example, the socket_listen() method will block the caller
  * while DNS lookups take place if given a name, instead of IP
diff --git a/include/qemu/coroutine-core.h b/include/qemu/coroutine-core.h
index 230bb56517..503bad6e0e 100644
--- a/include/qemu/coroutine-core.h
+++ b/include/qemu/coroutine-core.h
@@ -22,7 +22,7 @@
  * rather than callbacks, for operations that need to give up control while
  * waiting for events to complete.
  *
- * These functions are re-entrant and may be used outside the global mutex.
+ * These functions are re-entrant and may be used outside the BQL.
  *
  * Functions that execute in coroutine context cannot be called
  * directly from normal functions.  Use @coroutine_fn to mark such
diff --git a/include/qemu/coroutine.h b/include/qemu/coroutine.h
index a65be6697f..e6aff45301 100644
--- a/include/qemu/coroutine.h
+++ b/include/qemu/coroutine.h
@@ -26,7 +26,7 @@
  * rather than callbacks, for operations that need to give up control while
  * waiting for events to complete.
  *
- * These functions are re-entrant and may be used outside the global mutex.
+ * These functions are re-entrant and may be used outside the BQL.
  *
  * Functions that execute in coroutine context cannot be called
  * directly from normal functions.  Use @coroutine_fn to mark such
diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
index f83bb0f116..eafc573407 100644
--- a/hw/block/dataplane/virtio-blk.c
+++ b/hw/block/dataplane/virtio-blk.c
@@ -47,7 +47,7 @@ void virtio_blk_data_plane_notify(VirtIOBlockDataPlane *s, VirtQueue *vq)
     virtio_notify_irqfd(s->vdev, vq);
 }
 
-/* Context: QEMU global mutex held */
+/* Context: BQL held */
 bool virtio_blk_data_plane_create(VirtIODevice *vdev, VirtIOBlkConf *conf,
                                   VirtIOBlockDataPlane **dataplane,
                                   Error **errp)
@@ -100,7 +100,7 @@ bool virtio_blk_data_plane_create(VirtIODevice *vdev, VirtIOBlkConf *conf,
     return true;
 }
 
-/* Context: QEMU global mutex held */
+/* Context: BQL held */
 void virtio_blk_data_plane_destroy(VirtIOBlockDataPlane *s)
 {
     VirtIOBlock *vblk;
@@ -117,7 +117,7 @@ void virtio_blk_data_plane_destroy(VirtIOBlockDataPlane *s)
     g_free(s);
 }
 
-/* Context: QEMU global mutex held */
+/* Context: BQL held */
 int virtio_blk_data_plane_start(VirtIODevice *vdev)
 {
     VirtIOBlock *vblk = VIRTIO_BLK(vdev);
@@ -261,7 +261,7 @@ static void virtio_blk_data_plane_stop_bh(void *opaque)
     }
 }
 
-/* Context: QEMU global mutex held */
+/* Context: BQL held */
 void virtio_blk_data_plane_stop(VirtIODevice *vdev)
 {
     VirtIOBlock *vblk = VIRTIO_BLK(vdev);
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index a1f8e15522..2a5f6544cc 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -1500,7 +1500,7 @@ static void virtio_blk_resize(void *opaque)
     VirtIODevice *vdev = VIRTIO_DEVICE(opaque);
 
     /*
-     * virtio_notify_config() needs to acquire the global mutex,
+     * virtio_notify_config() needs to acquire the BQL,
      * so it can't be called from an iothread. Instead, schedule
      * it to be run in the main context BH.
      */
diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplane.c
index 1e684beebe..56ecc5b12e 100644
--- a/hw/scsi/virtio-scsi-dataplane.c
+++ b/hw/scsi/virtio-scsi-dataplane.c
@@ -20,7 +20,7 @@
 #include "scsi/constants.h"
 #include "hw/virtio/virtio-bus.h"
 
-/* Context: QEMU global mutex held */
+/* Context: BQL held */
 void virtio_scsi_dataplane_setup(VirtIOSCSI *s, Error **errp)
 {
     VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(s);
@@ -93,7 +93,7 @@ static void virtio_scsi_dataplane_stop_bh(void *opaque)
     }
 }
 
-/* Context: QEMU global mutex held */
+/* Context: BQL held */
 int virtio_scsi_dataplane_start(VirtIODevice *vdev)
 {
     int i;
@@ -191,7 +191,7 @@ fail_guest_notifiers:
     return -ENOSYS;
 }
 
-/* Context: QEMU global mutex held */
+/* Context: BQL held */
 void virtio_scsi_dataplane_stop(VirtIODevice *vdev)
 {
     BusState *qbus = qdev_get_parent_bus(DEVICE(vdev));
diff --git a/net/tap.c b/net/tap.c
index c23d0323c2..c698b70475 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -219,7 +219,7 @@ static void tap_send(void *opaque)
 
         /*
          * When the host keeps receiving more packets while tap_send() is
-         * running we can hog the QEMU global mutex.  Limit the number of
+         * running we can hog the BQL.  Limit the number of
          * packets that are processed per tap_send() callback to prevent
          * stalling the guest.
          */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:45:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:45:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653235.1019654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4xF-0000Kz-Na; Tue, 12 Dec 2023 15:45:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653235.1019654; Tue, 12 Dec 2023 15: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 1rD4xF-0000Ks-Kp; Tue, 12 Dec 2023 15:45:53 +0000
Received: by outflank-mailman (input) for mailman id 653235;
 Tue, 12 Dec 2023 15:45:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rD4xD-0000Km-PD
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:45:51 +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 1rD4xD-0001hw-BP; Tue, 12 Dec 2023 15:45:51 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD4xD-0003px-3v; Tue, 12 Dec 2023 15:45:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=n8issHcoK6ue8IefLltLRkrS5NNqQl2z2FAJcbXvrqk=; b=B1kBBS12QYSG17wzWnh6mN2Nf2
	G7V9h/8dtjUuorhLJdDfc+cCHMVad6Bzthx5ZpijvHWQAPGtXtQ2DNsJCrhCp6quBSIDyQ5glddpp
	YFNS4/1rxUSJeDGTq18JY5OHhXMlyS+/5XaMS0tHoplYcHd9j5AMSNSKaE1/Z6yjxUv0=;
Message-ID: <2d177dd2-7187-4d3c-8dbd-46a1a0651cf6@xen.org>
Date: Tue, 12 Dec 2023 15:45:49 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/3] xen: have a more generic unaligned.h header
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Juergen Gross <jgross@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20231211131616.1839-1-jgross@suse.com>
 <b49a092d-a0de-4f54-8b1e-32c5a549c843@xen.org>
In-Reply-To: <b49a092d-a0de-4f54-8b1e-32c5a549c843@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 12/12/2023 11:44, Julien Grall wrote:
> Hi Juergen,
> 
> On 11/12/2023 13:16, Juergen Gross wrote:
>> Update Xen's unaligned.h header to support all architectures, allowing
>> to remove the architecture specific variants (x86 only until now).
>>
>> Changes in V2:
>> - new patch 1 (Julien Grall)
>> - adjusted patch 2 (Jan Beulich)
>>
>> Changes in V3:
>> - adjusted patch 2 (Andrew Cooper)
>>
>> Juergen Gross (3):
>> Â Â  xen/arm: set -mno-unaligned-access compiler option for Arm32
>> Â Â  xen: make include/xen/unaligned.h usable on all architectures
>> Â Â  xen: remove asm/unaligned.h
> 
> The series is now committed.

Either patches #2 or #3 broke gitlab CI:

https://gitlab.com/xen-project/hardware/xen/-/jobs/5733143618

I have reverted both of them to unblock it.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:46:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:46:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653237.1019666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4xz-0000rk-26; Tue, 12 Dec 2023 15:46:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653237.1019666; Tue, 12 Dec 2023 15: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 1rD4xy-0000rd-TP; Tue, 12 Dec 2023 15:46:38 +0000
Received: by outflank-mailman (input) for mailman id 653237;
 Tue, 12 Dec 2023 15:46: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=6Qa1=HX=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rD4xy-0000rX-30
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:46:38 +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 a2027452-9905-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 16:46:37 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c41b43e1eso32515895e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 07:46:36 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 j6-20020adfe506000000b0033339e03a60sm11123474wrm.59.2023.12.12.07.46.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 07:46:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2027452-9905-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702395996; x=1703000796; 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=+OemhjYOdKfIJ0/gpK1EfT3NR+zGX/WOIYWuBnon+Q0=;
        b=qkAb29XJoA7g9+SWRSrzG62Hs5L9Sfu3hpLGyiej/tDozSClsY6R5BjAy7mn2q7qxe
         rarcSGUBoC+OVzJ4EHDuBducA+plakI/BikyrHsVx5gFpXPaCLiu/vq1eVvzfDajTU1Q
         IajDidpkqPH8Mv8LPTQOzMlv+leB8L0K8q4XU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702395996; x=1703000796;
        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=+OemhjYOdKfIJ0/gpK1EfT3NR+zGX/WOIYWuBnon+Q0=;
        b=rctVWz3YEEa8TbUU6LgW5WmXSUiPhq+oO433CVeJl9HaroBVkpTZqN2ZClB1crCen5
         7X7VjufH+FWMRd7AmE2i3uVWZfwtP28mf3IxK2sqqwaq6R+TA6AGBeWVJ2raEycU7huZ
         10NEuhmsM/j/zpm41KYNWyfS1m13sTNaIEnZKeg8GLyT7JIDy6S1wHpiQS6UtfVTQhxE
         W9bebH6GJ6FW8rXUxc7th6yXgUCkGdgIQ2Wsj/TPJhGAurDAHMZHt7DdHYRRAVu3VeHC
         lEGP+gDsQCzpqY5RBANMwuhNgHBUa1nqwQh4HeVldypqmxn0WtZSsyeaotBTO0t1lBjI
         ZhCw==
X-Gm-Message-State: AOJu0YzabvQAuL/vRX6gyc2lO/pLqD8YjdczqKILbomAgN7DypttypPX
	0yp6e2T972seoErHwsa4KQ30wg==
X-Google-Smtp-Source: AGHT+IHFJf03PzPkPzri93AhUKK+6y6rmzVHTxe8snweg8/A/E89NVAc6nL29hqbLwBh9xoltAF5lw==
X-Received: by 2002:a05:600c:240d:b0:40c:34cd:1fe3 with SMTP id 13-20020a05600c240d00b0040c34cd1fe3mr3102920wmp.83.1702395996279;
        Tue, 12 Dec 2023 07:46:36 -0800 (PST)
Date: Tue, 12 Dec 2023 15:46:35 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	David Woodhouse <dwmw@amazon.co.uk>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Greg Kurz <groug@kaod.org>,
	Christian Schoenebeck <qemu_oss@crudebyte.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Gerd Hoffmann <kraxel@redhat.com>, Paul Durrant <paul@xen.org>,
	=?iso-8859-1?Q?Marc-Andr=E9?= Lureau <marcandre.lureau@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Thomas Huth <thuth@redhat.com>,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	"open list:X86 Xen CPUs" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH v4 4/6] xen: add option to disable legacy backends
Message-ID: <8b74d526-30b1-4ab7-86bc-98d954beacfb@perard>
References: <20231202014108.2017803-1-volodymyr_babchuk@epam.com>
 <20231202014108.2017803-5-volodymyr_babchuk@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231202014108.2017803-5-volodymyr_babchuk@epam.com>

On Sat, Dec 02, 2023 at 01:41:22AM +0000, Volodymyr Babchuk wrote:
> diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
> index 9f9f137f99..03a55f345c 100644
> --- a/hw/xenpv/xen_machine_pv.c
> +++ b/hw/xenpv/xen_machine_pv.c
> @@ -37,7 +37,9 @@ static void xen_init_pv(MachineState *machine)
>      setup_xen_backend_ops();
>  
>      /* Initialize backend core & drivers */
> +#ifdef CONFIG_XEN_LEGACY_BACKENDS
>      xen_be_init();
> +#endif

There's more code that depends on legacy backend support in this
function: Call to xen_be_register() and xen_config_dev_nic() and symbol
xen_config_cleanup, and the code commented with "configure framebuffer".
I've tried to build this on x86.

>  
>      switch (xen_mode) {
>      case XEN_ATTACH:
> diff --git a/meson.build b/meson.build
> index ec01f8b138..c8a43dd97d 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2219,6 +2222,7 @@ config_host_data.set('CONFIG_DBUS_DISPLAY', dbus_display)
>  config_host_data.set('CONFIG_CFI', get_option('cfi'))
>  config_host_data.set('CONFIG_SELINUX', selinux.found())
>  config_host_data.set('CONFIG_XEN_BACKEND', xen.found())
> +config_host_data.set('CONFIG_XEN_LEGACY_BACKENDS', have_xen_legacy_backends)

I don't know if "config_host_data" is the right place to have "#define
CONFIG_XEN_LEGACY_BACKENDS", but the alternative is probably to define a
Kconfig value, but I don't know if that would be correct as well.
I guess this is fine here, for now.


>  config_host_data.set('CONFIG_LIBDW', libdw.found())
>  if xen.found()
>    # protect from xen.version() having less than three components
> @@ -3049,6 +3053,7 @@ config_all += config_targetos
>  config_all += config_all_disas
>  config_all += {
>    'CONFIG_XEN': xen.found(),
> +  'CONFIG_XEN_LEGACY_BACKENDS': have_xen_legacy_backends,

I don't think this is useful here, or even wanted.
I think things added to config_all are used only in "meson.build" files,
for things like "system_ss.add(when: ['CONFIG_XEN_LEGACY_BACKENDS'] ..."
But you use "if have_xen_legacy_backends" instead, which is probably ok
(because objects also depends on CONFIG_XEN_BUS).

>    'CONFIG_SYSTEM_ONLY': have_system,
>    'CONFIG_USER_ONLY': have_user,
>    'CONFIG_ALL': true,
> diff --git a/meson_options.txt b/meson_options.txt
> index c9baeda639..91dd677257 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -77,6 +77,8 @@ option('nvmm', type: 'feature', value: 'auto',
>         description: 'NVMM acceleration support')
>  option('xen', type: 'feature', value: 'auto',
>         description: 'Xen backend support')
> +option('xen-legacy-backends', type: 'feature', value: 'auto',

Every other meson options are using '_', I haven't found any single '-'.
Shouldn't this new option follow the same trend and be named
"xen_legacy_backends" ?

> +       description: 'Xen legacy backends (9pfs, fb, qusb) support')

This description feels a bit wrong somehow. "Legacy backend" is internal
to QEMU's code, and meant that the backends are implemented using legacy
support that we want to retire. But the backends them self, as seen by
a guest aren't going to change, and are not legacy. Also, a few month
ago, "qnic" would have been part of the list. Maybe a description like
"Xen backends based on legacy support" might be more appropriate. I'm
not sure listing the different backend in the description is a good
idea, as we will have to remember to change it whenever one of those
backend is been upgraded.


Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:47:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:47:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653239.1019675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD4z6-0001QR-Am; Tue, 12 Dec 2023 15:47:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653239.1019675; Tue, 12 Dec 2023 15: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 1rD4z6-0001QK-6o; Tue, 12 Dec 2023 15:47:48 +0000
Received: by outflank-mailman (input) for mailman id 653239;
 Tue, 12 Dec 2023 15:47: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=2zfk=HX=gmail.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rD4z5-0001QE-EB
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:47:47 +0000
Received: from mail-oa1-x34.google.com (mail-oa1-x34.google.com
 [2001:4860:4864:20::34])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca7bada3-9905-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 16:47:45 +0100 (CET)
Received: by mail-oa1-x34.google.com with SMTP id
 586e51a60fabf-2030f4d1af0so167886fac.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 07:47:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca7bada3-9905-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702396064; x=1703000864; 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=ozZMWDHeJ0qg54sRNCugGLW80XKaiRIqUq79OKSa2QI=;
        b=jZ+1+2LcYbO+Iyi/e8qZjSg9hN8n76ivdZJNN36kLOSeDE1dbk6A9Oo6H+RZNJtgR3
         rUOs3n8G19d+F07kCu6l33iiNNwdWqR6LHTADX0gr8Up4Iq2oTaANCh08YoG7tNTxQUh
         RBLxpli9Zxk1TXo5sBOc2MUVr6yyKJ555qiuTTsvgRN3fyBNQe+eXRypD3FYBRfFPwAl
         5iW+QfkzjwKYSkvgiv7s2wu6bJZlAMZPqhXxFZUwjnOM0ygCBIAMYTx/rmI48RH2wcrU
         /4yF5vtiHjrL3R9KR8z9Tc4jcSh5zffEWC+RMHbu1TE2ykBOd8JcHsO0RIbFPCTJPcwp
         1MNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702396064; x=1703000864;
        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=ozZMWDHeJ0qg54sRNCugGLW80XKaiRIqUq79OKSa2QI=;
        b=RBNxqJTVfS0R5hHnKj3p7PxNQLVnsO5owNvuQ9MqnbnkG+pu00jKEgiHJT0KlM0kf3
         feinskSCAGJIZrm5mSSxsZ0XGFmZaepZi4fHYw8fsjWl6llupibOjn87Vaw3ewBbtkQA
         WBdoM6z48xbGcOxvbeD8kAU6HE+m9uHqzSxMD3l8osESpEKxEn7QKBrCPPM1WM0UO1dK
         GGfzQ137TGlYXx1BZduTZwNXL9wrWDGY4l7R5GzPqF+5NoH7JkRobp7GPAG8YsYV5cBe
         Ep5ihk7CM7D/i1sfn7MMglfcdy1w7azVBMZbvQzG+CKWQNLQVVhaq3aB70pUE78UpVDS
         NWLA==
X-Gm-Message-State: AOJu0YznjLY1/hruXJyS4uiAvzCW2kzaiv3Njrt2e6M3CpLCVvvTLcUo
	g5xj5rlZuH5JOzVakW2biiRYJzBbupEj5E9Ijrw=
X-Google-Smtp-Source: AGHT+IHZGshyTQTe5je5WuS4NbHDKq7xJvmq3SZZUHKYPS530Tr2iF1drQOJI0hMI5PazFVs+wj8cIpcgnm4X9gud4k=
X-Received: by 2002:a05:6870:55cd:b0:1fa:ebea:b659 with SMTP id
 qk13-20020a05687055cd00b001faebeab659mr7739683oac.45.1702396064036; Tue, 12
 Dec 2023 07:47:44 -0800 (PST)
MIME-Version: 1.0
References: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
 <ZXLg_YCHM-P6drQV@redhat.com> <alpine.DEB.2.22.394.2312081422490.1703076@ubuntu-linux-20-04-desktop>
 <8be72952-88b6-4c74-b696-fecfa8313c96@perard> <87wmtj77sl.fsf@epam.com>
In-Reply-To: <87wmtj77sl.fsf@epam.com>
From: Stefan Hajnoczi <stefanha@gmail.com>
Date: Tue, 12 Dec 2023 10:47:32 -0500
Message-ID: <CAJSP0QUytnP60HyWwG4AhjMZwCS6b+pJJm7AOWd8P8pu1SqJ=Q@mail.gmail.com>
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Anthony PERARD <anthony.perard@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Vikram Garhwal <vikram.garhwal@amd.com>, 
	=?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	Michael Young <m.a.young@durham.ac.uk>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Paolo Bonzini <pbonzini@redhat.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, 12 Dec 2023 at 10:36, Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi Anthony
>
> Anthony PERARD <anthony.perard@citrix.com> writes:
>
> > On Fri, Dec 08, 2023 at 02:49:27PM -0800, Stefano Stabellini wrote:
> >> On Fri, 8 Dec 2023, Daniel P. Berrang=C3=A9 wrote:
> >> > On Thu, Dec 07, 2023 at 11:12:48PM +0000, Michael Young wrote:
> >> > > Builds of qemu-8.2.0rc2 with xen-4.18.0 are currently failing
> >> > > with errors like
> >> > > ../hw/arm/xen_arm.c:74:5: error: =E2=80=98GUEST_VIRTIO_MMIO_SPI_LA=
ST=E2=80=99 undeclared (first use in this function)
> >> > >    74 |    (GUEST_VIRTIO_MMIO_SPI_LAST - GUEST_VIRTIO_MMIO_SPI_FIR=
ST)
> >> > >       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
> >> > >
> >> > > as there is an incorrect comparision in include/hw/xen/xen_native.=
h
> >> > > which means that settings like GUEST_VIRTIO_MMIO_SPI_LAST
> >> > > aren't being defined for xen-4.18.0
> >> >
> >> > The conditions in arch-arm.h for xen 4.18 show:
> >> >
> >> > $ cppi arch-arm.h | grep -E '(#.*if)|MMIO'
> >> > #ifndef __XEN_PUBLIC_ARCH_ARM_H__
> >> > # if defined(__XEN__) || defined(__XEN_TOOLS__) || defined(__GNUC__)
> >> > # endif
> >> > # ifndef __ASSEMBLY__
> >> > #  if defined(__XEN__) || defined(__XEN_TOOLS__)
> >> > #   if defined(__GNUC__) && !defined(__STRICT_ANSI__)
> >> > #   endif
> >> > #  endif /* __XEN__ || __XEN_TOOLS__ */
> >> > # endif
> >> > # if defined(__XEN__) || defined(__XEN_TOOLS__)
> >> > #  define PSR_MODE_BIT  0x10U /* Set iff AArch32 */
> >> > /* Virtio MMIO mappings */
> >> > #  define GUEST_VIRTIO_MMIO_BASE   xen_mk_ullong(0x02000000)
> >> > #  define GUEST_VIRTIO_MMIO_SIZE   xen_mk_ullong(0x00100000)
> >> > #  define GUEST_VIRTIO_MMIO_SPI_FIRST   33
> >> > #  define GUEST_VIRTIO_MMIO_SPI_LAST    43
> >> > # endif
> >> > # ifndef __ASSEMBLY__
> >> > # endif
> >> > #endif /*  __XEN_PUBLIC_ARCH_ARM_H__ */
> >> >
> >> > So the MMIO constants are available if __XEN__ or __XEN_TOOLS__
> >> > are defined. This is no different to the condition that was
> >> > present in Xen 4.17.
> >> >
> >> > What you didn't mention was that the Fedora build failure is
> >> > seen on an x86_64 host, when building the aarch64 target QEMU,
> >> > and I think this is the key issue.
> >>
> >> Hi Daniel, thanks for looking into it.
> >>
> >> - you are building on a x86_64 host
> >> - the target is aarch64
> >> - the target is the aarch64 Xen PVH machine (xen_arm.c)
> >>
> >> But is the resulting QEMU binary expected to be an x86 binary? Or are
> >> you cross compiling ARM binaries on a x86 host?
> >>
> >> In other word, is the resulting QEMU binary expected to run on ARM or
> >> x86?
> >>
> >>
> >> > Are we expecting to build Xen support for non-arch native QEMU
> >> > system binaries or not ?
> >>
> >> The ARM xenpvh machine (xen_arm.c) is meant to work with Xen on ARM, n=
ot
> >> Xen on x86.  So this is only expected to work if you are
> >> cross-compiling. But you can cross-compile both Xen and QEMU, and I am
> >> pretty sure that Yocto is able to build Xen, Xen userspace tools, and
> >> QEMU for Xen/ARM on an x86 host today.
> >>
> >>
> >> > The constants are defined in arch-arm.h, which is only included
> >> > under:
> >> >
> >> >   #if defined(__i386__) || defined(__x86_64__)
> >> >   #include "arch-x86/xen.h"
> >> >   #elif defined(__arm__) || defined (__aarch64__)
> >> >   #include "arch-arm.h"
> >> >   #else
> >> >   #error "Unsupported architecture"
> >> >   #endif
> >> >
> >> >
> >> > When we are building on an x86_64 host, we not going to get
> >> > arch-arm.h included, even if we're trying to build the aarch64
> >> > system emulator.
> >> >
> >> > I don't know how this is supposed to work ?
> >>
> >> It looks like a host vs. target architecture mismatch: the #if defined
> >> (__aarch64__) check should pass I think.
> >
> >
> > Building qemu with something like:
> >     ./configure --enable-xen --cpu=3Dx86_64
> > used to work. Can we fix that? It still works with v8.1.0.
> > At least, it works on x86, I never really try to build qemu for arm.
> > Notice that there's no "--target-list" on the configure command line.
> > I don't know if --cpu is useful here.
> >
> > Looks like the first commit where the build doesn't work is
> > 7899f6589b78 ("xen_arm: Add virtual PCIe host bridge support").
>
> I am currently trying to upstream this patch. It is in the QEMU mailing
> list but it was never accepted. It is not reviewed in fact. I'll take a
> look at it, but I don't understand how did you get in the first place.

Hi Volodymyr,
Paolo Bonzini sent a pull request with similar code changes this
morning and I have merged it into the qemu.git/staging branch:
https://gitlab.com/qemu-project/qemu/-/commit/eaae59af4035770975b0ce9364b58=
7223a909501

If you spot something that is not correct, please reply here.

Thanks!

Stefan

>
> --
> WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 15:49:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 15:49:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653243.1019684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD515-0002Dn-Py; Tue, 12 Dec 2023 15:49:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653243.1019684; Tue, 12 Dec 2023 15:49: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 1rD515-0002De-NG; Tue, 12 Dec 2023 15:49:51 +0000
Received: by outflank-mailman (input) for mailman id 653243;
 Tue, 12 Dec 2023 15:49:50 +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 1rD514-0002DT-38
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 15:49:50 +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 1rD513-0001nR-Gq; Tue, 12 Dec 2023 15:49:49 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD513-0003vu-AC; Tue, 12 Dec 2023 15:49: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=EAxpfS6NSLT5CZ1gxVd/mYWapPEK99De7dLkzPi7u7k=; b=EWTFcL2YKt+9//32fdInBvqsTq
	1KPO20SsyjE5v0quPjjGEteMSeSoQjShFTSkITwA/z/NxicG9PqI5XAqlvLdMflSpGJkpbNDd6KGE
	She0s2jyh7mwAy+2xsg2slSlz5PpxMAd0QCigmIOFjLZgT3ZiEpNcvxTNth1yVvlTJBU=;
Message-ID: <240c97ed-ce27-406d-84ad-68b72e999294@xen.org>
Date: Tue, 12 Dec 2023 15:49:47 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.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.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
In-Reply-To: <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 11/12/2023 12:32, Julien Grall wrote:
> Hi,
> 
> On 11/12/2023 10:30, Nicola Vetrini wrote:
>> The branches of the switch after a call to 'do_unexpected_trap'
>> cannot return, but there is one path that may return, hence
>> only some clauses are marked with ASSERT_UNREACHABLE().
> I don't understand why this is necessary. The code should never be 
> reachable because do_unexpected_trap() is a noreturn().

 From the matrix discussion, it wasn't clear what was my position on 
this patch.

I would much prefer if the breaks are kept. I could accept:

ASSERT_UNREACHABLE();
break;

But this solution is a Nack because if you are concerned about functions 
like do_unexpected_trap() to return by mistaken, then it needs to also 
be safe in production.

The current proposal is not safe.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:00:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:00:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653252.1019694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5BS-00077V-OT; Tue, 12 Dec 2023 16:00:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653252.1019694; Tue, 12 Dec 2023 16:00:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5BS-00077O-Lu; Tue, 12 Dec 2023 16:00:34 +0000
Received: by outflank-mailman (input) for mailman id 653252;
 Tue, 12 Dec 2023 16:00: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=6Qa1=HX=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rD5BR-000762-DX
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:00:33 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9371588e-9907-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 17:00:31 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3363653e180so251677f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 08:00:31 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 l12-20020a05600c4f0c00b0040b4b2a15ebsm17070900wmq.28.2023.12.12.08.00.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 08:00:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9371588e-9907-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702396831; x=1703001631; 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=F/NRDJQeDGjfVB4trghfjH317bfJe+paebwX1w/yVf4=;
        b=Mk1XSMWM/iOVeBTcoTKeaO+vmsI6NWaKeza+hh3AvvGRpYK6ye1PIaB/TsEGh5E7kb
         KSfr3mfNXPLY33Gr38U+HdQIk2JkSSxoM4P+ImnunLB+ZoBhiQUc3CeObvwTYM+jNhPg
         t0ctjexVtF1cCFYNNyfoAIPq1ql84O6qXFb64=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702396831; x=1703001631;
        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=F/NRDJQeDGjfVB4trghfjH317bfJe+paebwX1w/yVf4=;
        b=bKRF7cjDT4nCiEfj3TUHpHk/dTZ6+GFug6I1A5y8jyPNhS7UER175+p0ZoNC4b6O3U
         aIzT5iZxo+uxKQmq0gzKQfDt9bUiPQW+KYN87jSrDILh4URbTrvw4/JeHQopoWm5N8oS
         VzvPs8MY8p5f8PmR7lhQsFC01cjLgVO0LkSlUZWTTzxpKtISzl47iptiR5SlOY8Hw2PS
         mmFkT7AZo+QW1AdskbLPmtXfVjfmeMHJEzVQ24sJZhD74lrZfE2En2pvUf4Qe5yJW4Ra
         jZOtfPuemzZEDxX0HT0/0MhPsonmUSTpBXAFnKBea3o7LjmumBroJ6nmH/CsUOgvb2CH
         Qdww==
X-Gm-Message-State: AOJu0YyP5WaPUz6uF6o6Eo4a8jKw7tibkr2Q+Kai0bVkLQaNfeJOcEg6
	P6VD9U2QMC/BlEMKsOe3EN/T+w==
X-Google-Smtp-Source: AGHT+IGs06IQ1RI06a5x+K2ZG/fQL9Wa3udmAW400tHnoMF+uHFv7F8KGhsxRBkQYJNq9Js0xU7gAQ==
X-Received: by 2002:a7b:c5ca:0:b0:40c:3df7:a815 with SMTP id n10-20020a7bc5ca000000b0040c3df7a815mr2481355wmk.228.1702396830730;
        Tue, 12 Dec 2023 08:00:30 -0800 (PST)
Date: Tue, 12 Dec 2023 16:00:29 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
	Vikram Garhwal <vikram.garhwal@amd.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Michael Young <m.a.young@durham.ac.uk>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
Message-ID: <9f0c39eb-f750-4f63-a033-f6edb86fbd79@perard>
References: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
 <ZXLg_YCHM-P6drQV@redhat.com>
 <alpine.DEB.2.22.394.2312081422490.1703076@ubuntu-linux-20-04-desktop>
 <8be72952-88b6-4c74-b696-fecfa8313c96@perard>
 <87wmtj77sl.fsf@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <87wmtj77sl.fsf@epam.com>

On Tue, Dec 12, 2023 at 03:35:50PM +0000, Volodymyr Babchuk wrote:
> Hi Anthony
> 
> Anthony PERARD <anthony.perard@citrix.com> writes:
> 
> > On Fri, Dec 08, 2023 at 02:49:27PM -0800, Stefano Stabellini wrote:
> >> On Fri, 8 Dec 2023, Daniel P. BerrangÃ© wrote:
> >> > On Thu, Dec 07, 2023 at 11:12:48PM +0000, Michael Young wrote:
> >> > > Builds of qemu-8.2.0rc2 with xen-4.18.0 are currently failing
> >> > > with errors like
> >> > > ../hw/arm/xen_arm.c:74:5: error: â€˜GUEST_VIRTIO_MMIO_SPI_LASTâ€™ undeclared (first use in this function)
> >> > >    74 |    (GUEST_VIRTIO_MMIO_SPI_LAST - GUEST_VIRTIO_MMIO_SPI_FIRST)
> >> > >       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
> >> > > 
> >> > > as there is an incorrect comparision in include/hw/xen/xen_native.h
> >> > > which means that settings like GUEST_VIRTIO_MMIO_SPI_LAST
> >> > > aren't being defined for xen-4.18.0
> >> > 
> >> > The conditions in arch-arm.h for xen 4.18 show:
> >> > 
> >> > $ cppi arch-arm.h | grep -E '(#.*if)|MMIO'
> >> > #ifndef __XEN_PUBLIC_ARCH_ARM_H__
> >> > # if defined(__XEN__) || defined(__XEN_TOOLS__) || defined(__GNUC__)
> >> > # endif
> >> > # ifndef __ASSEMBLY__
> >> > #  if defined(__XEN__) || defined(__XEN_TOOLS__)
> >> > #   if defined(__GNUC__) && !defined(__STRICT_ANSI__)
> >> > #   endif
> >> > #  endif /* __XEN__ || __XEN_TOOLS__ */
> >> > # endif
> >> > # if defined(__XEN__) || defined(__XEN_TOOLS__)
> >> > #  define PSR_MODE_BIT  0x10U /* Set iff AArch32 */
> >> > /* Virtio MMIO mappings */
> >> > #  define GUEST_VIRTIO_MMIO_BASE   xen_mk_ullong(0x02000000)
> >> > #  define GUEST_VIRTIO_MMIO_SIZE   xen_mk_ullong(0x00100000)
> >> > #  define GUEST_VIRTIO_MMIO_SPI_FIRST   33
> >> > #  define GUEST_VIRTIO_MMIO_SPI_LAST    43
> >> > # endif
> >> > # ifndef __ASSEMBLY__
> >> > # endif
> >> > #endif /*  __XEN_PUBLIC_ARCH_ARM_H__ */
> >> > 
> >> > So the MMIO constants are available if __XEN__ or __XEN_TOOLS__
> >> > are defined. This is no different to the condition that was
> >> > present in Xen 4.17.
> >> > 
> >> > What you didn't mention was that the Fedora build failure is
> >> > seen on an x86_64 host, when building the aarch64 target QEMU,
> >> > and I think this is the key issue.
> >> 
> >> Hi Daniel, thanks for looking into it.
> >> 
> >> - you are building on a x86_64 host
> >> - the target is aarch64
> >> - the target is the aarch64 Xen PVH machine (xen_arm.c)
> >> 
> >> But is the resulting QEMU binary expected to be an x86 binary? Or are
> >> you cross compiling ARM binaries on a x86 host?
> >> 
> >> In other word, is the resulting QEMU binary expected to run on ARM or
> >> x86?
> >> 
> >> 
> >> > Are we expecting to build Xen support for non-arch native QEMU
> >> > system binaries or not ?
> >> 
> >> The ARM xenpvh machine (xen_arm.c) is meant to work with Xen on ARM, not
> >> Xen on x86.  So this is only expected to work if you are
> >> cross-compiling. But you can cross-compile both Xen and QEMU, and I am
> >> pretty sure that Yocto is able to build Xen, Xen userspace tools, and
> >> QEMU for Xen/ARM on an x86 host today.
> >> 
> >> 
> >> > The constants are defined in arch-arm.h, which is only included
> >> > under:
> >> > 
> >> >   #if defined(__i386__) || defined(__x86_64__)
> >> >   #include "arch-x86/xen.h"
> >> >   #elif defined(__arm__) || defined (__aarch64__)
> >> >   #include "arch-arm.h"
> >> >   #else
> >> >   #error "Unsupported architecture"
> >> >   #endif
> >> > 
> >> > 
> >> > When we are building on an x86_64 host, we not going to get
> >> > arch-arm.h included, even if we're trying to build the aarch64
> >> > system emulator.
> >> > 
> >> > I don't know how this is supposed to work ?
> >> 
> >> It looks like a host vs. target architecture mismatch: the #if defined
> >> (__aarch64__) check should pass I think.
> >
> >
> > Building qemu with something like:
> >     ./configure --enable-xen --cpu=x86_64
> > used to work. Can we fix that? It still works with v8.1.0.
> > At least, it works on x86, I never really try to build qemu for arm.
> > Notice that there's no "--target-list" on the configure command line.
> > I don't know if --cpu is useful here.
> >
> > Looks like the first commit where the build doesn't work is
> > 7899f6589b78 ("xen_arm: Add virtual PCIe host bridge support").
> 
> I am currently trying to upstream this patch. It is in the QEMU mailing
> list but it was never accepted. It is not reviewed in fact. I'll take a
> look at it, but I don't understand how did you get in the first place.

Sorry, I got the wrong commit pasted, I actually meant:
0c8ab1cddd6c ("xen_arm: Create virtio-mmio devices during initialization")

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:02:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:02:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653255.1019705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5DL-0007r8-48; Tue, 12 Dec 2023 16:02:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653255.1019705; Tue, 12 Dec 2023 16:02:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5DL-0007r1-0t; Tue, 12 Dec 2023 16:02:31 +0000
Received: by outflank-mailman (input) for mailman id 653255;
 Tue, 12 Dec 2023 16:02: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=ekcj=HX=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1rD5DJ-0007qd-FC
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:02:29 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d924ca6e-9907-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 17:02:28 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c4846847eso22016685e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 08:02:28 -0800 (PST)
Received: from draig.lan ([85.9.250.243]) by smtp.gmail.com with ESMTPSA id
 w18-20020a5d5452000000b00336367631efsm276868wrv.65.2023.12.12.08.02.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 08:02:27 -0800 (PST)
Received: from draig (localhost [IPv6:::1])
 by draig.lan (Postfix) with ESMTP id 01BFD5F7D4;
 Tue, 12 Dec 2023 16:02:27 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d924ca6e-9907-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1702396948; x=1703001748; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:user-agent
         :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AhVnGCK45xBhXjKQjzeUrEBYyzIXyX39Thxixr9iuWQ=;
        b=fKQjbVvG9KpgydnUKqDRtyjJh2cscKEMBV3Y0uXCvEVYyXncDdfKtqKCJ75JXUpiPd
         Tgh0vEtDm++4fnIgJarUmcL0WajvhGouVL11Dy8vYMPRCY7cR7ZMeUGzVB1tpuCiHOhe
         ZMk9TBh9af1A5aG3omsG/cs70iyHodnOtIQCNrnA1pxZ0vhWXTeFrWXgo76K+mimBFUc
         tDZzGL7OtQxK8drI+cLIniS1ETzYBDkUbhKowTKMa3voHqS30peGYEVrH/ryRHUypnEf
         jhHr4Tx+VaUGS6I50YPl6VdTi2pcHqbvd51dBwk+jGkMqnonxXyWbSYX07f2WBN1s8VK
         VXhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702396948; x=1703001748;
        h=content-transfer-encoding:mime-version:message-id:date:user-agent
         :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=AhVnGCK45xBhXjKQjzeUrEBYyzIXyX39Thxixr9iuWQ=;
        b=weW6gD/JcKFRg2azFRublgS0RM43GBp0UFYJVL1a8Wi7WYkLNauVA7N7ku9Ze/NeMa
         aKM1GbnFPjv2xt2gN+cXCB3m2+cSc1kMi1xVed2OKPoQVHooCpt0d4t3fGechJjuqCvM
         agUk+2qa6jE66RMcON27Z6adcDSxDVAx3JwMh07WeKaw2qGNQzuZFBrXSDZ0GXmtq56o
         yU9J58oJzQeU+kZYd0hJR3S3pgcfMbp/PFC8jUBw07IZ7MYXxEFH8XHgkFFOvvMYNZRm
         kWgLHTEFWU+L2ceFujGHQ8t3a/ZzX3troNQuBK0ed/NRAvRcr3IM3GQtaUuWnft2SgBA
         LK8Q==
X-Gm-Message-State: AOJu0Yz4DQlN5EH30jbh0gMrl+Op37KpP37o4DIFS+o+vuHXIPyfPPPs
	ZIoUmeuaacuPljTPYDb+AWHHsg==
X-Google-Smtp-Source: AGHT+IEvL5rP0CFCQuL3bg8awKx85yIGG94DtKaPDO094KuG0JQvZPwHnzoFdcp4qzZ7pF74W2BJ4Q==
X-Received: by 2002:a05:600c:4897:b0:40c:a9d:fa1d with SMTP id j23-20020a05600c489700b0040c0a9dfa1dmr3366466wmp.142.1702396947793;
        Tue, 12 Dec 2023 08:02:27 -0800 (PST)
From: =?utf-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Mykyta Poturai <Mykyta_Poturai@epam.com>,  "qemu-devel@nongnu.org"
 <qemu-devel@nongnu.org>,  David Woodhouse <dwmw@amazon.co.uk>,  Julien
 Grall <julien@xen.org>,  Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
  "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
  Vikram Garhwal <vikram.garhwal@amd.com>,  Oleksandr Tyshchenko
 <Oleksandr_Tyshchenko@epam.com>,  stewart.hildebrand@amd.com
Subject: Re: Adding MSI support for virtio-pci to QEMU as Xen backend on ARM
In-Reply-To: <alpine.DEB.2.22.394.2312081407250.1703076@ubuntu-linux-20-04-desktop>
	(Stefano Stabellini's message of "Fri, 8 Dec 2023 14:15:16 -0800
	(PST)")
References: <PAVPR03MB10102178A70BF72984FFAF8CD848AA@PAVPR03MB10102.eurprd03.prod.outlook.com>
	<alpine.DEB.2.22.394.2312081407250.1703076@ubuntu-linux-20-04-desktop>
User-Agent: mu4e 1.11.26; emacs 29.1
Date: Tue, 12 Dec 2023 16:02:26 +0000
Message-ID: <87wmtjbe99.fsf@draig.linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Stefano Stabellini <sstabellini@kernel.org> writes:

> +Stewart
>
> On Fri, 8 Dec 2023, Mykyta Poturai wrote:
>> Hello everyone,
>>=20
>> I am currently working on adding MSI support to virtio-pci on ARM with X=
en.
>
> Excellent!
>
>
>> As far as I understand QEMU Xen ARM machine that is used for
>> virtio-pci device emulation does not initialize any interrupt
>> controllers. And that makes it somewhat unclear what is the best
>> approach to adding the MSI support. So, I would appreciate some
>> thoughts on this.
>> To trigger the MSI interrupt in Xen guests we basically need to call a s=
ingle DMOP, which I am also implementing.
>
> You should be able to call xen_inject_msi
>
>
>> So far, I have come up with 3 possible approaches:
>> 1. Hooking up the existing GIC code to the Xen Arm machine and extending=
 it with the DMOP call.
>
> No, I would rather avoid this for a couple of reasons. In reality, the
> GIC is emulated by Xen, not QEMU. So letting QEMU think that QEMU is
> emulating a GIC is more error prone than the alternatives and also it
> would allocate resources needlessly.
>
>
>> 2. Writing some new barebones GIC implementation with only the required =
methods (something similar to xen_apic.c).
>> 3. Just hooking up the DMOP call to the existing PCI code based on xen_e=
nabled() check.
>
> I would rather not introduce any more if (xen_enabled()) checks beyond
> the ones we already have unless it is the only option. So I would go
> with option 2). Even better if we could reuse xen_apic.c. xen_apic.c is
> just a stub, which is basically the same thing that we need here.

I guess the APIC part of the name is part of the historical baggage of
x86 - really it's just a xenpv-irq controller?

Anyway yeah I think just move it from hw/i386/xen to hw/xen and maybe
give it a new name with an alias to the old one we can deprecate over
time?

--=20
Alex Benn=C3=A9e
Virtualisation Tech Lead @ Linaro


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:03:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:03:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653257.1019714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5Dv-0008Hp-DH; Tue, 12 Dec 2023 16:03:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653257.1019714; Tue, 12 Dec 2023 16:03:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5Dv-0008Hi-AU; Tue, 12 Dec 2023 16:03:07 +0000
Received: by outflank-mailman (input) for mailman id 653257;
 Tue, 12 Dec 2023 16: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=fKsX=HX=epam.com=prvs=6710380681=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1rD5Du-0008HW-1w
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:03:06 +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 ee20ef90-9907-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 17:03:04 +0100 (CET)
Received: from pps.filterd (m0174682.ppops.net [127.0.0.1])
 by mx0b-0039f301.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BCFMiOQ018897; Tue, 12 Dec 2023 16:02:52 GMT
Received: from eur05-am6-obe.outbound.protection.outlook.com
 (mail-am6eur05lp2104.outbound.protection.outlook.com [104.47.18.104])
 by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3uxp2xh3uk-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 12 Dec 2023 16:02:50 +0000 (GMT)
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by DB5PR03MB10049.eurprd03.prod.outlook.com (2603:10a6:10:4a0::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Tue, 12 Dec
 2023 16:02:46 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7068.033; Tue, 12 Dec 2023
 16:02: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: ee20ef90-9907-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ENQJ6cdLi7EGbCFUy0jcHdVyKXf/YBTd9xRDsV9ApOxZ2rAXPkhJJNMEyygmd44VSuaLyxNT2uV/i1/SMAVZ0CTFnOcz1btaj/EB62XRGL7/ppbAzTEWgagT4/iRtOjp8zvatrS5oMhcljxa2lPJtg/+QPgl6ZHcm/kREbubrS2EJdtbLsWoOPaiWLQ3TgcbQ/cSh9SsmQjMKyYiKzaIPnhYrx3FLOn9jx5/tzMiJSoBCb/cs1tYDXd4Qs8AUK6e9NH8nSt6zw/cpSWj6QFZiACnyfIH4bBSEvDo5O3g8Aca1CUf13rgaZEdSM4qCqJ11BbX0FKhyTaHHGFmLbK4Sg==
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=pU1oUH1d8zFL8xmrruy+aPayRsVnL/j6bzG3pXleM2E=;
 b=XMbVT6GnuLi7rInVmblGq5XFFR+ss9oPZ9UgTSJ2XCI+44glFAr6pXjhe6n/ucpkB8jCN34ZbL5GcVmAVWZkbd2cUViKfenmn26JXX5ZiS7XoEw1v5lB6mPl2ULNf9RsEScmLxv/cC0m4hC7RckGiu78HtHxE5B+5KQ5WwLUISSt7bKdJryHm/L8s3GI/ZL11XbHHX8bcg+C0+zdHtujiR9QHMjb8R8bFxd88jEARriLRDWn+k0kXDVoSzL5q2Kenok3Ryr/CgNCXIKXLAqh1ZrLWmo55FH5NkDb4Z9JMhgkvekXXbk7LWy9B5zJcB10zG5BgwChPV4wX79x3vwDMA==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pU1oUH1d8zFL8xmrruy+aPayRsVnL/j6bzG3pXleM2E=;
 b=hnCdwMYaWaF6S2MvnfxiuDfHJ2ydfjNqBDzAnf86FkQI/HSMd9hlPZQsmBKeFBLt8uiuYV3SZBA36FQ87TQsFuAS0IV27Vd5OHJQ8qLicwYVacE/wrg1hMj/TEWT54In0rOXFTfNQ6SV4YYczUt1Ks5K8gJTqKy/Ixegz/oarJhGCLi992GVgv5lFThxDzXGZf1Uu6A/TZS64q4N5rU3xGwFqle38dMYrp5houDQ38ZlJ0zWg8LDE3Li0DJd+4szYtHaBUxPN6GJN01Low6mxXejgar4NnEkxwpF3yIQHryBe29qSQUreHnXv6aXbsoRDVwWSrbukZn5NudXj+KJRg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
CC: Anthony PERARD <anthony.perard@citrix.com>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>,
        Vikram Garhwal <vikram.garhwal@amd.com>,
        =?utf-8?B?RGFuaWVsIFAuIEJlcnJhbmfDqQ==?= <berrange@redhat.com>,
        Michael Young
	<m.a.young@durham.ac.uk>,
        "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Paolo
 Bonzini <pbonzini@redhat.com>
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
Thread-Topic: [PATCH] fix qemu build with xen-4.18.0
Thread-Index: AQHaKijL3WADPEA59ECvZnvE/VRP97CluD+AgAAUgoCAAAP2AIAAAvkA
Date: Tue, 12 Dec 2023 16:02:46 +0000
Message-ID: <87plzb76je.fsf@epam.com>
References: 
 <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
 <ZXLg_YCHM-P6drQV@redhat.com>
 <alpine.DEB.2.22.394.2312081422490.1703076@ubuntu-linux-20-04-desktop>
 <8be72952-88b6-4c74-b696-fecfa8313c96@perard> <87wmtj77sl.fsf@epam.com>
 <CAJSP0QUytnP60HyWwG4AhjMZwCS6b+pJJm7AOWd8P8pu1SqJ=Q@mail.gmail.com>
In-Reply-To: 
 <CAJSP0QUytnP60HyWwG4AhjMZwCS6b+pJJm7AOWd8P8pu1SqJ=Q@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: mu4e 1.10.7; emacs 29.1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|DB5PR03MB10049:EE_
x-ms-office365-filtering-correlation-id: fe4b8cb4-71df-4818-3316-08dbfb2bc84d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 FQel1a+ZsRTOg4tpoR0+MerGeTlNVqnGCceShmCD6un1sYZFe8v7cZg5b0yOHuJ0pXvLj/VHCWwvIQzlKCI3d9wXqA5hbsQ1UUeQXrmaR8/gI5TOFhtybzPjU1v+hVWwPm4fpppjHlkvlHJxIAvZviT76rmnxU71UO8Kbw5qseP6ZXX1W3cZpzCj/DE6EoT/BiK4wOq5mbaklJrjZWMO2uZbYMO0UAmXgcLhLki3bo7d5yGu8fEx6iSiIQEu2XhEQm6tzSjX3R9hJqOuLC7xSfZqnbPod+/idXG6xOwkPTSh++FCtR0FZnICvei2P3vgE1Uilnn8t8HOlACJOQi1DWKEZWP42YSE9aJfCqokniBdyi+43vw/E7zOgr5aTtcUbgraOsPpvhED4BO62/2tWd9P0EpqiMHmzMMzQQ22tTLccsm01V3LVBrscmcRuXYOWIaelNsjkmxsiVZ7vvJPrBDTYTlr4Bp9y0hnp6XY9jMO1WRNXQirKZRSxzXmtB231fMcCXk1AyBTlHWvAEwlc3Gts0mGamWlSxtxNbe3g9jS6dYXmg+ucDx9YSHNQ0feS/JaRTQ0o05r/GUrsB3ruwhHRUCGewFTWRLbHmnw7EI=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(366004)(396003)(376002)(39860400002)(346002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(84970400001)(26005)(2616005)(38070700009)(36756003)(38100700002)(86362001)(122000001)(6916009)(83380400001)(5660300002)(55236004)(6506007)(6512007)(316002)(76116006)(2906002)(66556008)(41300700001)(91956017)(966005)(66946007)(8936002)(8676002)(66446008)(64756008)(54906003)(6486002)(66476007)(4326008)(478600001)(71200400001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?ZkIwejFvRmtiQ1gyeFFYdjZRTi93cFY1WVJDb3V1VG1oWklORm05YThjNlhJ?=
 =?utf-8?B?eWJFSFRGY2RZRGwzNzE5OGlmZ0VHcnlyWjQyYzRRVnNYSzdlS0RUellQOG9L?=
 =?utf-8?B?SmwvOEFuNFdxL0xwKzMxRGlTdkhzYTFMK2FyYkNkSWNjYjlVK1VPWjFyL0hY?=
 =?utf-8?B?Rnk1WHVBOWErdlpheGVHeHNBakR4NFdQalJiZHIwMkE4aHlzOGUySERzQ1Aw?=
 =?utf-8?B?cHB1UTI3V1I4QndUVGtDdk4rWmsxSFp4dlFFYWhkcXg1K1VIVlBjN1lBNHJs?=
 =?utf-8?B?ajFIR0dUdSt5ZnBORGdWUlk4dTBoR1hoeGg0SXhRM0VZanhjTFdYMEVlL3J5?=
 =?utf-8?B?Q21CMWNTL3BPRmpqMm1hbWZ1UDhTM0M1cmZyRGxld1UxdTY4UlhwdDNTZUVQ?=
 =?utf-8?B?YjVzalZXR3BzaWVVcW0xQkxFNnhaZmNtakZGNUhKR1FTczZIcmFOMGQ0V2Jo?=
 =?utf-8?B?NjNVMzQ0VG5hTkFrdWRDVVJzZWZWTE1ZTld5RCsyZTY3QVl3MU1XVm9tK3pm?=
 =?utf-8?B?ekRkK3JhYXhMVVQ2RU1CMWhzRkZiMmJqbnBBWTN6MDVyYm1ybnZwR002dU8z?=
 =?utf-8?B?R0VQMmp1QThMZ2lqTjJ0TXlaN0V2NUVZakZ2QjdZeFJ1TXhVbjAxM3BBV2hV?=
 =?utf-8?B?dmRMRWd6Vk9QM0ZpaEVwZSs1S1pXcVE1ZnRhMTUrZzVlTTUzbzlQbGZzZFZ4?=
 =?utf-8?B?S2lSSTFKKzJ0SU5VeWZWS0JVdWVpUlRweVVkaktZRkpEVmYwZjRuQlM3ZUFw?=
 =?utf-8?B?TTZuS054dDFMM2QwRzJUNlFNUmZEZlRVSkJwL0Fjb1ZFUHYzOFF5Yk5rWHBo?=
 =?utf-8?B?ZTlUbVFUeFF0ajdXTUFJWHR2QzJmRDMzaWRRdWhYS0IxZTEySVVKa3dKQjZv?=
 =?utf-8?B?S09CN01RNUwzOVZsbzlFaVoxRkJuRFA0U2FrL3BSeXJDZXJPUWpSQUN6QTV2?=
 =?utf-8?B?dGZPV0xqVUJYVFNMTkhzVHV6NVJWeExScC8vTU1rVVBxTUlOT0l5cjFjZEVK?=
 =?utf-8?B?MnA2RlQyd3BBMEpVT2ptUEhNUGtKZmhvODlySUR1YllkblRuYW55OGZuTzNV?=
 =?utf-8?B?U2ZyV0hGbzh4UEpSVzdxT3NSMW9VbXQvZDNhUTlQV2JkVmt1NGFoeGRhWW1S?=
 =?utf-8?B?TXh6Tk5kdEJvYjZ5ckJMRWI3RVJyenFYRjJoWVBIRWZaMkFIdWR4VU9BUGdv?=
 =?utf-8?B?T3RSWTVIQWJ5eWF5TGtIMUNEWFVROFBVZ3Z3ZXBTMXRsa1dXVC84KzF1M21L?=
 =?utf-8?B?Q1RJbnk5bEREMHZGWkJTOGJLTm9xcjZzcjZYazcwTkhnTDlFQ0tYS0FYQVBP?=
 =?utf-8?B?cjAvRlBjRTZ6WHhuNjVqTFdjdWJqY1NqcUlkZ3NRWnBoUWkvNDBXbmZYcFVm?=
 =?utf-8?B?My9pczNBRDNoWTZlZWpXK0M1MkJCSDJNVzV4b3llZWhoZVMzUzN4RyswWWN3?=
 =?utf-8?B?aklRWVpHOExicCs5ZDQrdFNSS3RkQUc3dGdmeU9kRXFYbEJ1RzRGWGQ2eHNQ?=
 =?utf-8?B?WE5IcXF0NkdpeU4wd2F6U1pRNUt2aXd6RkhkNGZUc0RQbVFvM2Q0V01wdy9X?=
 =?utf-8?B?WGxrRUgwd2FIM2lCdTRDUFkwbTRaZ1RKTDE0SEVIVnVRalpSV28rTTRIMyt3?=
 =?utf-8?B?dCtGaDdGSTVIUHhkVW5hb25ldnJua1JiSW1kM3NnL2lKazBZVXJERWhiTjVh?=
 =?utf-8?B?QnczTGM0aHRabm5kZzBBdHlSL2pERDBLTTU0RDNaRlRTN1hKSVdpWEtCU013?=
 =?utf-8?B?UXFSNzhycGJvUkE1ajVhSlJwSkZaMXJaY2pnQk5BWU96VjRpUHBvNXBsdjJW?=
 =?utf-8?B?TDZoS3pvd0hGVlNGd2VTMkU2akhVVWpwKzlhNHlDM0ZrUjVxVHlUM3lWcm5y?=
 =?utf-8?B?ZlVDcHFDRDJocjBYSVk2Qjgzd2wwNWJwbC9jUnM1NDZGdnI2aHFXOWhSTE1S?=
 =?utf-8?B?WG4zaVBGQVFtQ2FPWFVMUnEzOEJlbTJ4WS9GWWFPZGs4UnNvUlB0aHY4VFJh?=
 =?utf-8?B?U1V6WnVXS1pXWXU2V2s2bnZqcjZTNjV6MFZBU0R4VDRwanF5V1Rxb3AyMUJX?=
 =?utf-8?B?Y1Y0WGJyZFBkTVBaSkp3cHN6MW5nUDBhelVTRlRpZXNLbGhkRFVBSENmMVcv?=
 =?utf-8?B?SG04N1FBYnhxZStMVXFZNzlrNDlKcmQ5TjAycnZjNVc3T3lRYklNUEczTGhK?=
 =?utf-8?B?d1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <14D114E0AFD6184880F6A445A5B35090@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe4b8cb4-71df-4818-3316-08dbfb2bc84d
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2023 16:02:46.5370
 (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: q8UkzxoPhciN5Ij7b+galhKH7419Ymge4ep6AXCirdDHCllhr/9Pk6Iq5EMozbOYeQwOb2i6vTHmmqV60X5VhV0nWD/b79mL+Xk7zT4wRPE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR03MB10049
X-Proofpoint-GUID: 4g_17uf2VOTZWJq7LFWGtJFlu-R7_xsK
X-Proofpoint-ORIG-GUID: 4g_17uf2VOTZWJq7LFWGtJFlu-R7_xsK
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_01,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0
 lowpriorityscore=0 mlxscore=0 malwarescore=0 bulkscore=0 adultscore=0
 suspectscore=0 mlxlogscore=999 impostorscore=0 classifier=spam adjust=0
 reason=mlx scancount=1 engine=8.19.0-2311290000
 definitions=main-2312120123

DQpIaSBTdGVmYW4sDQoNClN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAZ21haWwuY29tPiB3cml0
ZXM6DQoNCj4gT24gVHVlLCAxMiBEZWMgMjAyMyBhdCAxMDozNiwgVm9sb2R5bXlyIEJhYmNodWsN
Cj4gPFZvbG9keW15cl9CYWJjaHVrQGVwYW0uY29tPiB3cm90ZToNCj4+DQo+PiBIaSBBbnRob255
DQo+Pg0KPj4gQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+IHdyaXRl
czoNCj4+DQo+PiA+IE9uIEZyaSwgRGVjIDA4LCAyMDIzIGF0IDAyOjQ5OjI3UE0gLTA4MDAsIFN0
ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4+ID4+IE9uIEZyaSwgOCBEZWMgMjAyMywgRGFuaWVs
IFAuIEJlcnJhbmfDqSB3cm90ZToNCj4+ID4+ID4gT24gVGh1LCBEZWMgMDcsIDIwMjMgYXQgMTE6
MTI6NDhQTSArMDAwMCwgTWljaGFlbCBZb3VuZyB3cm90ZToNCj4+ID4+ID4gPiBCdWlsZHMgb2Yg
cWVtdS04LjIuMHJjMiB3aXRoIHhlbi00LjE4LjAgYXJlIGN1cnJlbnRseSBmYWlsaW5nDQo+PiA+
PiA+ID4gd2l0aCBlcnJvcnMgbGlrZQ0KPj4gPj4gPiA+IC4uL2h3L2FybS94ZW5fYXJtLmM6NzQ6
NTogZXJyb3I6IOKAmEdVRVNUX1ZJUlRJT19NTUlPX1NQSV9MQVNU4oCZIHVuZGVjbGFyZWQgKGZp
cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQ0KPj4gPj4gPiA+ICAgIDc0IHwgICAgKEdVRVNUX1ZJ
UlRJT19NTUlPX1NQSV9MQVNUIC0gR1VFU1RfVklSVElPX01NSU9fU1BJX0ZJUlNUKQ0KPj4gPj4g
PiA+ICAgICAgIHwgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+PiA+PiA+ID4NCj4+
ID4+ID4gPiBhcyB0aGVyZSBpcyBhbiBpbmNvcnJlY3QgY29tcGFyaXNpb24gaW4gaW5jbHVkZS9o
dy94ZW4veGVuX25hdGl2ZS5oDQo+PiA+PiA+ID4gd2hpY2ggbWVhbnMgdGhhdCBzZXR0aW5ncyBs
aWtlIEdVRVNUX1ZJUlRJT19NTUlPX1NQSV9MQVNUDQo+PiA+PiA+ID4gYXJlbid0IGJlaW5nIGRl
ZmluZWQgZm9yIHhlbi00LjE4LjANCj4+ID4+ID4NCj4+ID4+ID4gVGhlIGNvbmRpdGlvbnMgaW4g
YXJjaC1hcm0uaCBmb3IgeGVuIDQuMTggc2hvdzoNCj4+ID4+ID4NCj4+ID4+ID4gJCBjcHBpIGFy
Y2gtYXJtLmggfCBncmVwIC1FICcoIy4qaWYpfE1NSU8nDQo+PiA+PiA+ICNpZm5kZWYgX19YRU5f
UFVCTElDX0FSQ0hfQVJNX0hfXw0KPj4gPj4gPiAjIGlmIGRlZmluZWQoX19YRU5fXykgfHwgZGVm
aW5lZChfX1hFTl9UT09MU19fKSB8fCBkZWZpbmVkKF9fR05VQ19fKQ0KPj4gPj4gPiAjIGVuZGlm
DQo+PiA+PiA+ICMgaWZuZGVmIF9fQVNTRU1CTFlfXw0KPj4gPj4gPiAjICBpZiBkZWZpbmVkKF9f
WEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykNCj4+ID4+ID4gIyAgIGlmIGRlZmluZWQo
X19HTlVDX18pICYmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykNCj4+ID4+ID4gIyAgIGVuZGlm
DQo+PiA+PiA+ICMgIGVuZGlmIC8qIF9fWEVOX18gfHwgX19YRU5fVE9PTFNfXyAqLw0KPj4gPj4g
PiAjIGVuZGlmDQo+PiA+PiA+ICMgaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVO
X1RPT0xTX18pDQo+PiA+PiA+ICMgIGRlZmluZSBQU1JfTU9ERV9CSVQgIDB4MTBVIC8qIFNldCBp
ZmYgQUFyY2gzMiAqLw0KPj4gPj4gPiAvKiBWaXJ0aW8gTU1JTyBtYXBwaW5ncyAqLw0KPj4gPj4g
PiAjICBkZWZpbmUgR1VFU1RfVklSVElPX01NSU9fQkFTRSAgIHhlbl9ta191bGxvbmcoMHgwMjAw
MDAwMCkNCj4+ID4+ID4gIyAgZGVmaW5lIEdVRVNUX1ZJUlRJT19NTUlPX1NJWkUgICB4ZW5fbWtf
dWxsb25nKDB4MDAxMDAwMDApDQo+PiA+PiA+ICMgIGRlZmluZSBHVUVTVF9WSVJUSU9fTU1JT19T
UElfRklSU1QgICAzMw0KPj4gPj4gPiAjICBkZWZpbmUgR1VFU1RfVklSVElPX01NSU9fU1BJX0xB
U1QgICAgNDMNCj4+ID4+ID4gIyBlbmRpZg0KPj4gPj4gPiAjIGlmbmRlZiBfX0FTU0VNQkxZX18N
Cj4+ID4+ID4gIyBlbmRpZg0KPj4gPj4gPiAjZW5kaWYgLyogIF9fWEVOX1BVQkxJQ19BUkNIX0FS
TV9IX18gKi8NCj4+ID4+ID4NCj4+ID4+ID4gU28gdGhlIE1NSU8gY29uc3RhbnRzIGFyZSBhdmFp
bGFibGUgaWYgX19YRU5fXyBvciBfX1hFTl9UT09MU19fDQo+PiA+PiA+IGFyZSBkZWZpbmVkLiBU
aGlzIGlzIG5vIGRpZmZlcmVudCB0byB0aGUgY29uZGl0aW9uIHRoYXQgd2FzDQo+PiA+PiA+IHBy
ZXNlbnQgaW4gWGVuIDQuMTcuDQo+PiA+PiA+DQo+PiA+PiA+IFdoYXQgeW91IGRpZG4ndCBtZW50
aW9uIHdhcyB0aGF0IHRoZSBGZWRvcmEgYnVpbGQgZmFpbHVyZSBpcw0KPj4gPj4gPiBzZWVuIG9u
IGFuIHg4Nl82NCBob3N0LCB3aGVuIGJ1aWxkaW5nIHRoZSBhYXJjaDY0IHRhcmdldCBRRU1VLA0K
Pj4gPj4gPiBhbmQgSSB0aGluayB0aGlzIGlzIHRoZSBrZXkgaXNzdWUuDQo+PiA+Pg0KPj4gPj4g
SGkgRGFuaWVsLCB0aGFua3MgZm9yIGxvb2tpbmcgaW50byBpdC4NCj4+ID4+DQo+PiA+PiAtIHlv
dSBhcmUgYnVpbGRpbmcgb24gYSB4ODZfNjQgaG9zdA0KPj4gPj4gLSB0aGUgdGFyZ2V0IGlzIGFh
cmNoNjQNCj4+ID4+IC0gdGhlIHRhcmdldCBpcyB0aGUgYWFyY2g2NCBYZW4gUFZIIG1hY2hpbmUg
KHhlbl9hcm0uYykNCj4+ID4+DQo+PiA+PiBCdXQgaXMgdGhlIHJlc3VsdGluZyBRRU1VIGJpbmFy
eSBleHBlY3RlZCB0byBiZSBhbiB4ODYgYmluYXJ5PyBPciBhcmUNCj4+ID4+IHlvdSBjcm9zcyBj
b21waWxpbmcgQVJNIGJpbmFyaWVzIG9uIGEgeDg2IGhvc3Q/DQo+PiA+Pg0KPj4gPj4gSW4gb3Ro
ZXIgd29yZCwgaXMgdGhlIHJlc3VsdGluZyBRRU1VIGJpbmFyeSBleHBlY3RlZCB0byBydW4gb24g
QVJNIG9yDQo+PiA+PiB4ODY/DQo+PiA+Pg0KPj4gPj4NCj4+ID4+ID4gQXJlIHdlIGV4cGVjdGlu
ZyB0byBidWlsZCBYZW4gc3VwcG9ydCBmb3Igbm9uLWFyY2ggbmF0aXZlIFFFTVUNCj4+ID4+ID4g
c3lzdGVtIGJpbmFyaWVzIG9yIG5vdCA/DQo+PiA+Pg0KPj4gPj4gVGhlIEFSTSB4ZW5wdmggbWFj
aGluZSAoeGVuX2FybS5jKSBpcyBtZWFudCB0byB3b3JrIHdpdGggWGVuIG9uIEFSTSwgbm90DQo+
PiA+PiBYZW4gb24geDg2LiAgU28gdGhpcyBpcyBvbmx5IGV4cGVjdGVkIHRvIHdvcmsgaWYgeW91
IGFyZQ0KPj4gPj4gY3Jvc3MtY29tcGlsaW5nLiBCdXQgeW91IGNhbiBjcm9zcy1jb21waWxlIGJv
dGggWGVuIGFuZCBRRU1VLCBhbmQgSSBhbQ0KPj4gPj4gcHJldHR5IHN1cmUgdGhhdCBZb2N0byBp
cyBhYmxlIHRvIGJ1aWxkIFhlbiwgWGVuIHVzZXJzcGFjZSB0b29scywgYW5kDQo+PiA+PiBRRU1V
IGZvciBYZW4vQVJNIG9uIGFuIHg4NiBob3N0IHRvZGF5Lg0KPj4gPj4NCj4+ID4+DQo+PiA+PiA+
IFRoZSBjb25zdGFudHMgYXJlIGRlZmluZWQgaW4gYXJjaC1hcm0uaCwgd2hpY2ggaXMgb25seSBp
bmNsdWRlZA0KPj4gPj4gPiB1bmRlcjoNCj4+ID4+ID4NCj4+ID4+ID4gICAjaWYgZGVmaW5lZChf
X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQ0KPj4gPj4gPiAgICNpbmNsdWRlICJhcmNo
LXg4Ni94ZW4uaCINCj4+ID4+ID4gICAjZWxpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQg
KF9fYWFyY2g2NF9fKQ0KPj4gPj4gPiAgICNpbmNsdWRlICJhcmNoLWFybS5oIg0KPj4gPj4gPiAg
ICNlbHNlDQo+PiA+PiA+ICAgI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUiDQo+PiA+
PiA+ICAgI2VuZGlmDQo+PiA+PiA+DQo+PiA+PiA+DQo+PiA+PiA+IFdoZW4gd2UgYXJlIGJ1aWxk
aW5nIG9uIGFuIHg4Nl82NCBob3N0LCB3ZSBub3QgZ29pbmcgdG8gZ2V0DQo+PiA+PiA+IGFyY2gt
YXJtLmggaW5jbHVkZWQsIGV2ZW4gaWYgd2UncmUgdHJ5aW5nIHRvIGJ1aWxkIHRoZSBhYXJjaDY0
DQo+PiA+PiA+IHN5c3RlbSBlbXVsYXRvci4NCj4+ID4+ID4NCj4+ID4+ID4gSSBkb24ndCBrbm93
IGhvdyB0aGlzIGlzIHN1cHBvc2VkIHRvIHdvcmsgPw0KPj4gPj4NCj4+ID4+IEl0IGxvb2tzIGxp
a2UgYSBob3N0IHZzLiB0YXJnZXQgYXJjaGl0ZWN0dXJlIG1pc21hdGNoOiB0aGUgI2lmIGRlZmlu
ZWQNCj4+ID4+IChfX2FhcmNoNjRfXykgY2hlY2sgc2hvdWxkIHBhc3MgSSB0aGluay4NCj4+ID4N
Cj4+ID4NCj4+ID4gQnVpbGRpbmcgcWVtdSB3aXRoIHNvbWV0aGluZyBsaWtlOg0KPj4gPiAgICAg
Li9jb25maWd1cmUgLS1lbmFibGUteGVuIC0tY3B1PXg4Nl82NA0KPj4gPiB1c2VkIHRvIHdvcmsu
IENhbiB3ZSBmaXggdGhhdD8gSXQgc3RpbGwgd29ya3Mgd2l0aCB2OC4xLjAuDQo+PiA+IEF0IGxl
YXN0LCBpdCB3b3JrcyBvbiB4ODYsIEkgbmV2ZXIgcmVhbGx5IHRyeSB0byBidWlsZCBxZW11IGZv
ciBhcm0uDQo+PiA+IE5vdGljZSB0aGF0IHRoZXJlJ3Mgbm8gIi0tdGFyZ2V0LWxpc3QiIG9uIHRo
ZSBjb25maWd1cmUgY29tbWFuZCBsaW5lLg0KPj4gPiBJIGRvbid0IGtub3cgaWYgLS1jcHUgaXMg
dXNlZnVsIGhlcmUuDQo+PiA+DQo+PiA+IExvb2tzIGxpa2UgdGhlIGZpcnN0IGNvbW1pdCB3aGVy
ZSB0aGUgYnVpbGQgZG9lc24ndCB3b3JrIGlzDQo+PiA+IDc4OTlmNjU4OWI3OCAoInhlbl9hcm06
IEFkZCB2aXJ0dWFsIFBDSWUgaG9zdCBicmlkZ2Ugc3VwcG9ydCIpLg0KPj4NCj4+IEkgYW0gY3Vy
cmVudGx5IHRyeWluZyB0byB1cHN0cmVhbSB0aGlzIHBhdGNoLiBJdCBpcyBpbiB0aGUgUUVNVSBt
YWlsaW5nDQo+PiBsaXN0IGJ1dCBpdCB3YXMgbmV2ZXIgYWNjZXB0ZWQuIEl0IGlzIG5vdCByZXZp
ZXdlZCBpbiBmYWN0LiBJJ2xsIHRha2UgYQ0KPj4gbG9vayBhdCBpdCwgYnV0IEkgZG9uJ3QgdW5k
ZXJzdGFuZCBob3cgZGlkIHlvdSBnZXQgaW4gdGhlIGZpcnN0IHBsYWNlLg0KPg0KPiBIaSBWb2xv
ZHlteXIsDQo+IFBhb2xvIEJvbnppbmkgc2VudCBhIHB1bGwgcmVxdWVzdCB3aXRoIHNpbWlsYXIg
Y29kZSBjaGFuZ2VzIHRoaXMNCj4gbW9ybmluZyBhbmQgSSBoYXZlIG1lcmdlZCBpdCBpbnRvIHRo
ZSBxZW11LmdpdC9zdGFnaW5nIGJyYW5jaDoNCj4gaHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9f
X2h0dHBzOi8vZ2l0bGFiLmNvbS9xZW11LXByb2plY3QvcWVtdS8tL2NvbW1pdC9lYWFlNTlhZjQw
MzU3NzA5NzViMGNlOTM2NGI1ODcyMjNhOTA5NTAxX187ISFHRl8yOWRiY1FJVUJQQSF5RmdTeEFF
Z1hQamNrRjhwaVN0MFQ3N2JiZWdnU2d3Qy02LXhEdVptenE0YThVN0hFUDhYeEdueHdJaGdBOWl5
RlZpZS1mZFZnQVZBNXdWaXBuZXdiTE5wJA0KPiBbZ2l0bGFiWy5dY29tXQ0KPg0KPiBJZiB5b3Ug
c3BvdCBzb21ldGhpbmcgdGhhdCBpcyBub3QgY29ycmVjdCwgcGxlYXNlIHJlcGx5IGhlcmUuDQo+
DQoNCk5vLCBpdCBpcyBhbGwgZmluZSBpbiB0aGF0IHB1bGwgcmVxdWVzdC4gSSB3YXMgdGFsa2lu
ZyBhYm91dCBwYXRjaA0KInhlbl9hcm06IEFkZCB2aXJ0dWFsIFBDSWUgaG9zdCBicmlkZ2Ugc3Vw
cG9ydCIgd2hpY2ggaXMgc3RpbGwgb24NCnJldmlldzoNCmh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5l
bC5vcmcvcHJvamVjdC9xZW11LWRldmVsL3BhdGNoLzIwMjMxMjAyMDE0MTA4LjIwMTc4MDMtNy12
b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbS8NCg0KSSB3YXMgc3VycHJpc2VkIHdoZW4gQW50aG9u
eSBtZW50aW9uZWQgdGhhdCB0aGlzIHBhdGNoIGJyZWFrcyB0aGUNCmJ1aWxkLCBiZWNhdXNlIHRo
ZSBwYXRjaCBpcyBub3QgaW5jbHVkZWQgaW4gUUVNVSB0cmVlLg0KDQotLSANCldCUiwgVm9sb2R5
bXly


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:16:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:16:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653267.1019725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5Qz-0003tN-MO; Tue, 12 Dec 2023 16:16:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653267.1019725; Tue, 12 Dec 2023 16:16:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5Qz-0003tG-JI; Tue, 12 Dec 2023 16:16:37 +0000
Received: by outflank-mailman (input) for mailman id 653267;
 Tue, 12 Dec 2023 16:16:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=y4OV=HX=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rD5Qy-0003qe-0c
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:16:36 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id cfec82f1-9909-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 17:16:32 +0100 (CET)
Received: from mg.gitlab.com (29.226.74.34.bc.googleusercontent.com
 [34.74.226.29]) by
 ac29578615c6 with SMTP id 6578875ed900fdbd516b9c8d (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 12 Dec 2023 16:16:30 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: cfec82f1-9909-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702397790; x=1702404990; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=QR3kOZZT4U3DcERjEjX+pVuS7OrdVWi6LK78EK0/ATs=;
 b=nf+5OmgnP0p+aJyNLP1P3tFRwdR0PfJ7pEpv2sFgaJnOF6ic3byR+KC7qSVTDY11YsIVBZ7m3JNXU5pbbYfhzQiqH6ZtXyppIKx1QgewC5acrko3b9q5gWC2cKukqZK0HOjM6hr5gq9W5Zs26SVJxhuPeM3u2nI+8//sWIWN+e8=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 12 Dec 2023 16:16:30 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6578875e861af_2c95358120275@gitlab-sidekiq-catchall-v2-84d7b8dcd5-ssggk.mail>
Subject: xen | Failed pipeline for staging | 0fb4b6b0
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6578875e5ee3d_2c953581201a4";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1103957927
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6578875e5ee3d_2c953581201a4
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1103957927 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 0fb4b6b0 ( https://gitlab.com/xen-project/xen/-/commit/0fb4b6b0ea8505fbd4888faa440212e878002494 )
Commit Message: MAINTAINERS: Hand over the release manager role...
Commit Author: Henry Wang ( https://gitlab.com/MrXinWang )
Committed by: Julien Grall


Pipeline #1103957927 ( https://gitlab.com/xen-project/xen/-/pipelines/1103957927 ) triggered by Ganis ( https://gitlab.com/ganis )
had 27 failed jobs.

Job #5733199345 ( https://gitlab.com/xen-project/xen/-/jobs/5733199345/raw )

Stage: build
Name: ubuntu-focal-gcc
Job #5733199349 ( https://gitlab.com/xen-project/xen/-/jobs/5733199349/raw )

Stage: build
Name: ubuntu-focal-gcc-debug
Job #5733199088 ( https://gitlab.com/xen-project/xen/-/jobs/5733199088/raw )

Stage: build
Name: debian-stretch-gcc-debug
Job #5733199319 ( https://gitlab.com/xen-project/xen/-/jobs/5733199319/raw )

Stage: build
Name: ubuntu-trusty-gcc
Job #5733199328 ( https://gitlab.com/xen-project/xen/-/jobs/5733199328/raw )

Stage: build
Name: ubuntu-xenial-gcc
Job #5733199394 ( https://gitlab.com/xen-project/xen/-/jobs/5733199394/raw )

Stage: test
Name: build-each-commit-gcc
Job #5733199391 ( https://gitlab.com/xen-project/xen/-/jobs/5733199391/raw )

Stage: build
Name: opensuse-tumbleweed-gcc-debug
Job #5733199313 ( https://gitlab.com/xen-project/xen/-/jobs/5733199313/raw )

Stage: build
Name: debian-bookworm-32-gcc-debug
Job #5733199291 ( https://gitlab.com/xen-project/xen/-/jobs/5733199291/raw )

Stage: build
Name: debian-stretch-32-gcc-debug
Job #5733199284 ( https://gitlab.com/xen-project/xen/-/jobs/5733199284/raw )

Stage: build
Name: debian-stretch-gcc
Job #5733199305 ( https://gitlab.com/xen-project/xen/-/jobs/5733199305/raw )

Stage: build
Name: debian-bookworm-gcc-debug
Job #5733199303 ( https://gitlab.com/xen-project/xen/-/jobs/5733199303/raw )

Stage: build
Name: debian-bookworm-gcc
Job #5733199268 ( https://gitlab.com/xen-project/xen/-/jobs/5733199268/raw )

Stage: build
Name: archlinux-gcc
Job #5733199282 ( https://gitlab.com/xen-project/xen/-/jobs/5733199282/raw )

Stage: build
Name: centos-7-gcc-debug
Job #5733199073 ( https://gitlab.com/xen-project/xen/-/jobs/5733199073/raw )

Stage: build
Name: alpine-3.18-gcc
Job #5733199085 ( https://gitlab.com/xen-project/xen/-/jobs/5733199085/raw )

Stage: build
Name: alpine-3.18-gcc-debug
Job #5733199318 ( https://gitlab.com/xen-project/xen/-/jobs/5733199318/raw )

Stage: build
Name: fedora-gcc-debug
Job #5733199330 ( https://gitlab.com/xen-project/xen/-/jobs/5733199330/raw )

Stage: build
Name: ubuntu-xenial-gcc-debug
Job #5733199340 ( https://gitlab.com/xen-project/xen/-/jobs/5733199340/raw )

Stage: build
Name: ubuntu-bionic-gcc
Job #5733199321 ( https://gitlab.com/xen-project/xen/-/jobs/5733199321/raw )

Stage: build
Name: ubuntu-trusty-gcc-debug
Job #5733199342 ( https://gitlab.com/xen-project/xen/-/jobs/5733199342/raw )

Stage: build
Name: ubuntu-bionic-gcc-debug
Job #5733199275 ( https://gitlab.com/xen-project/xen/-/jobs/5733199275/raw )

Stage: build
Name: archlinux-gcc-debug
Job #5733199389 ( https://gitlab.com/xen-project/xen/-/jobs/5733199389/raw )

Stage: build
Name: opensuse-tumbleweed-gcc
Job #5733199379 ( https://gitlab.com/xen-project/xen/-/jobs/5733199379/raw )

Stage: build
Name: opensuse-leap-gcc-debug
Job #5733199360 ( https://gitlab.com/xen-project/xen/-/jobs/5733199360/raw )

Stage: build
Name: opensuse-leap-gcc
Job #5733199317 ( https://gitlab.com/xen-project/xen/-/jobs/5733199317/raw )

Stage: build
Name: fedora-gcc
Job #5733199280 ( https://gitlab.com/xen-project/xen/-/jobs/5733199280/raw )

Stage: build
Name: centos-7-gcc

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 0fb4b6b0</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1103957927 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/0fb4b6b0ea8505fbd4=
888faa440212e878002494" style=3D"color: #3777b0; text-decoration: none;">=

0fb4b6b0
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
MAINTAINERS: Hand over the release manager role...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/6c315d300fcf8b27953341ff2cb70c2a?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/MrXinWang" style=3D"color: =
#333333; text-decoration: none;">
Henry Wang
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1103957927">#1103957927</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 27 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199345" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-focal-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199349" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-focal-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199088" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199319" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199328" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-xenial-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199394" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199391" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199313" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199291" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199284" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199305" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199303" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199268" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199282" style=3D=
"color: #3777b0; text-decoration: none;">
centos-7-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199073" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199085" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199318" style=3D=
"color: #3777b0; text-decoration: none;">
fedora-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199330" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-xenial-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199340" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-bionic-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199321" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199342" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-bionic-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199275" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199389" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199379" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-leap-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199360" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-leap-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199317" style=3D=
"color: #3777b0; text-decoration: none;">
fedora-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733199280" style=3D=
"color: #3777b0; text-decoration: none;">
centos-7-gcc
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6578875e5ee3d_2c953581201a4--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:27:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:27:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653307.1019735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5b9-0000Fh-Oj; Tue, 12 Dec 2023 16:27:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653307.1019735; Tue, 12 Dec 2023 16:27:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5b9-0000Fa-Ly; Tue, 12 Dec 2023 16:27:07 +0000
Received: by outflank-mailman (input) for mailman id 653307;
 Tue, 12 Dec 2023 16:27: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rD5b8-0000E9-Kl
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:27: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 49c3c757-990b-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 17:27:06 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 A07CE21B4E;
 Tue, 12 Dec 2023 16:27:04 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 5C72C139E9;
 Tue, 12 Dec 2023 16:27:04 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id QxxSFdiJeGUgeQAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 16:27: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: 49c3c757-990b-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702398424; 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=zVP2t2W8BRlSVq7GpLt/uxZxuO3Mb4WFW3tHVkiGuD8=;
	b=BZB4kuIcDN5n7H23xzX4ilATTUnoHxeeJbINmLHKllRmsDh5LufBqTtvq7gp0mhsOuJSXs
	W3kKPClLq3NAnOe1ROBYDVM24HsoVeITWowUpHgs7g53e9R29J3OndKnONMGupU/QbuCsf
	XcwxgagWA4fUuTr4qqqXALHmCZ8qVFA=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702398424; 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=zVP2t2W8BRlSVq7GpLt/uxZxuO3Mb4WFW3tHVkiGuD8=;
	b=BZB4kuIcDN5n7H23xzX4ilATTUnoHxeeJbINmLHKllRmsDh5LufBqTtvq7gp0mhsOuJSXs
	W3kKPClLq3NAnOe1ROBYDVM24HsoVeITWowUpHgs7g53e9R29J3OndKnONMGupU/QbuCsf
	XcwxgagWA4fUuTr4qqqXALHmCZ8qVFA=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/2] xen: have a more generic unaligned.h header (take 2)
Date: Tue, 12 Dec 2023 17:27:00 +0100
Message-Id: <20231212162702.26360-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spam-Score: 15.80
X-Spam-Flag: YES
X-Spam-Level: 
X-Rspamd-Server: rspamd1
X-Rspamd-Queue-Id: A07CE21B4E
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=BZB4kuIc;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Result: default: False [-1.76 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[10];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-1.45)[91.33%];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 RCVD_DKIM_ARC_DNSWL_HI(-1.00)[];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_IN_DNSWL_HI(-0.50)[2a07:de40:b281:104:10:150:64:98:from];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -1.76

Second try for the generic unaligned.h approach.

This time including a fix for building stubdom with libxenguest,
which is using a cruel hack to reuse the hypervisor's decompressing
code.

Juergen Gross (2):
  xen: make include/xen/unaligned.h usable on all architectures
  xen: remove asm/unaligned.h

 .../guest/xg_dom_decompress_unsafe_zstd.c     |  2 +-
 xen/arch/x86/include/asm/unaligned.h          |  6 ---
 xen/common/lz4/defs.h                         |  2 +-
 xen/common/lzo.c                              |  2 +-
 xen/common/unlzo.c                            |  2 +-
 xen/common/xz/private.h                       |  2 +-
 xen/common/zstd/mem.h                         |  2 +-
 xen/include/xen/unaligned.h                   | 53 +++++++++++--------
 xen/lib/xxhash32.c                            |  2 +-
 xen/lib/xxhash64.c                            |  2 +-
 10 files changed, 38 insertions(+), 37 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/unaligned.h

-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:27:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:27:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653308.1019745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5bG-0000YI-Vr; Tue, 12 Dec 2023 16:27:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653308.1019745; Tue, 12 Dec 2023 16:27:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5bG-0000YB-T8; Tue, 12 Dec 2023 16:27:14 +0000
Received: by outflank-mailman (input) for mailman id 653308;
 Tue, 12 Dec 2023 16:27: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rD5bF-0000XE-EQ
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:27: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 4cd1a579-990b-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 17:27:11 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 43D2A21F06;
 Tue, 12 Dec 2023 16:27:10 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 015EC139E9;
 Tue, 12 Dec 2023 16:27:09 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id Alm3Ot2JeGUreQAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 16: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: 4cd1a579-990b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702398430; 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=86skB7BjO7pb6ks2XuLnugv1xzPDmhX3gUL9EVmPitE=;
	b=CP7oBF3Aypk7HX6jqMcEIdyr+6Fmtcm9VRxVnEsS5uqDwZavzScKKufVZhTlW6S5JDaDuB
	JHIQDj66YIZIbDl4B54jP4DxZUHh+yJcaEMK7yvMwaHJ6/zwF3nIw/68iB/NpZv1GAQPHp
	+wYVCa1FlbwhMGnX3ewdCepYyz8tCwg=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702398430; 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=86skB7BjO7pb6ks2XuLnugv1xzPDmhX3gUL9EVmPitE=;
	b=CP7oBF3Aypk7HX6jqMcEIdyr+6Fmtcm9VRxVnEsS5uqDwZavzScKKufVZhTlW6S5JDaDuB
	JHIQDj66YIZIbDl4B54jP4DxZUHh+yJcaEMK7yvMwaHJ6/zwF3nIw/68iB/NpZv1GAQPHp
	+wYVCa1FlbwhMGnX3ewdCepYyz8tCwg=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.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>,
	Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all architectures
Date: Tue, 12 Dec 2023 17:27:01 +0100
Message-Id: <20231212162702.26360-2-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212162702.26360-1-jgross@suse.com>
References: <20231212162702.26360-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spam-Level: 
X-Rspamd-Server: rspamd1
X-Rspamd-Queue-Id: 43D2A21F06
X-Spam-Flag: NO
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=CP7oBF3A;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Result: default: False [-3.31 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[10];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-3.00)[100.00%];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 RCVD_DKIM_ARC_DNSWL_HI(-1.00)[];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_IN_DNSWL_HI(-0.50)[2a07:de40:b281:104:10:150:64:98:from];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -3.31

Instead of defining get_unaligned() and put_unaligned() in a way that
is only supporting architectures allowing unaligned accesses, use the
same approach as the Linux kernel and let the compiler do the
decision how to generate the code for probably unaligned data accesses.

Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
the Linux kernel.

The generated code has been checked to be the same on x86.

Modify the Linux variant to not use underscore prefixed identifiers,
avoid unneeded parentheses and drop the 24-bit accessors.

Add the definition of __packed to xg_dom_decompress_unsafe_zstd.c in
libxenguest as it is using a cruel hack to reuse the hypervisor's
decompressing code for stubdom.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 803f4e1eab7a
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 .../guest/xg_dom_decompress_unsafe_zstd.c     |  2 +-
 xen/include/xen/unaligned.h                   | 53 +++++++++++--------
 2 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c b/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
index 01eafaaaa6..7cd266444b 100644
--- a/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
+++ b/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
@@ -26,13 +26,13 @@ typedef uint64_t __be64;
 #define __force
 #define always_inline
 #define noinline
+#define __packed __attribute__((__packed__))
 
 #undef ERROR
 
 #define __BYTEORDER_HAS_U64__
 #define __TYPES_H__ /* xen/types.h guard */
 #include "../../xen/include/xen/byteorder/little_endian.h"
-#define __ASM_UNALIGNED_H__ /* asm/unaligned.h guard */
 #include "../../xen/include/xen/unaligned.h"
 #include "../../xen/include/xen/xxhash.h"
 #include "../../xen/lib/xxhash64.c"
diff --git a/xen/include/xen/unaligned.h b/xen/include/xen/unaligned.h
index 0a2b16d05d..3eda0ece11 100644
--- a/xen/include/xen/unaligned.h
+++ b/xen/include/xen/unaligned.h
@@ -1,12 +1,4 @@
-/*
- * This header can be used by architectures where unaligned accesses work
- * without faulting, and at least reasonably efficiently.  Other architectures
- * will need to have a custom asm/unaligned.h.
- */
-#ifndef __ASM_UNALIGNED_H__
-#error "xen/unaligned.h should not be included directly - include asm/unaligned.h instead"
-#endif
-
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef __XEN_UNALIGNED_H__
 #define __XEN_UNALIGNED_H__
 
@@ -15,67 +7,82 @@
 #include <asm/byteorder.h>
 #endif
 
-#define get_unaligned(p) (*(p))
-#define put_unaligned(val, p) (*(p) = (val))
+/*
+ * This is the most generic implementation of unaligned accesses
+ * and should work almost anywhere.
+ */
+
+#define get_unaligned_t(type, ptr) ({					\
+	const struct { type x; } __packed *ptr_ = (typeof(ptr_))(ptr);	\
+	ptr_->x;							\
+})
+
+#define put_unaligned_t(type, val, ptr) do {				\
+	struct { type x; } __packed *ptr_ = (typeof(ptr_))(ptr);	\
+	ptr_->x = val;							\
+} while (0)
+
+#define get_unaligned(ptr)	get_unaligned_t(typeof(*(ptr)), ptr)
+#define put_unaligned(val, ptr) put_unaligned_t(typeof(*(ptr)), val, ptr)
 
 static inline uint16_t get_unaligned_be16(const void *p)
 {
-	return be16_to_cpup(p);
+	return be16_to_cpu(get_unaligned_t(__be16, p));
 }
 
 static inline void put_unaligned_be16(uint16_t val, void *p)
 {
-	*(__force __be16*)p = cpu_to_be16(val);
+	put_unaligned_t(__be16, cpu_to_be16(val), p);
 }
 
 static inline uint32_t get_unaligned_be32(const void *p)
 {
-	return be32_to_cpup(p);
+	return be32_to_cpu(get_unaligned_t(__be32, p));
 }
 
 static inline void put_unaligned_be32(uint32_t val, void *p)
 {
-	*(__force __be32*)p = cpu_to_be32(val);
+	put_unaligned_t(__be32, cpu_to_be32(val), p);
 }
 
 static inline uint64_t get_unaligned_be64(const void *p)
 {
-	return be64_to_cpup(p);
+	return be64_to_cpu(get_unaligned_t(__be64, p));
 }
 
 static inline void put_unaligned_be64(uint64_t val, void *p)
 {
-	*(__force __be64*)p = cpu_to_be64(val);
+	put_unaligned_t(__be64, cpu_to_be64(val), p);
 }
 
 static inline uint16_t get_unaligned_le16(const void *p)
 {
-	return le16_to_cpup(p);
+	return le16_to_cpu(get_unaligned_t(__le16, p));
 }
 
 static inline void put_unaligned_le16(uint16_t val, void *p)
 {
-	*(__force __le16*)p = cpu_to_le16(val);
+	put_unaligned_t(__le16, cpu_to_le16(val), p);
 }
 
 static inline uint32_t get_unaligned_le32(const void *p)
 {
-	return le32_to_cpup(p);
+	return le32_to_cpu(get_unaligned_t(__le32, p));
 }
 
 static inline void put_unaligned_le32(uint32_t val, void *p)
 {
-	*(__force __le32*)p = cpu_to_le32(val);
+	put_unaligned_t(__le32, cpu_to_le32(val), p);
 }
 
 static inline uint64_t get_unaligned_le64(const void *p)
 {
-	return le64_to_cpup(p);
+	return le64_to_cpu(get_unaligned_t(__le64, p));
 }
 
 static inline void put_unaligned_le64(uint64_t val, void *p)
 {
-	*(__force __le64*)p = cpu_to_le64(val);
+	put_unaligned_t(__le64, cpu_to_le64(val), p);
 }
 
 #endif /* __XEN_UNALIGNED_H__ */
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:27:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:27:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653309.1019754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5bL-0000pm-8e; Tue, 12 Dec 2023 16:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653309.1019754; Tue, 12 Dec 2023 16:27: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 1rD5bL-0000pf-5g; Tue, 12 Dec 2023 16:27:19 +0000
Received: by outflank-mailman (input) for mailman id 653309;
 Tue, 12 Dec 2023 16:27: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=/k62=HX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rD5bK-0000XE-ED
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:27:18 +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 5022f5c0-990b-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 17:27:16 +0100 (CET)
Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:98])
 (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 D6F1921B4E;
 Tue, 12 Dec 2023 16:27:15 +0000 (UTC)
Received: from imap2.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 imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 99A68139E9;
 Tue, 12 Dec 2023 16:27:15 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap2.dmz-prg2.suse.org with ESMTPSA id 9sgzJOOJeGUxeQAAn2gu4w
 (envelope-from <jgross@suse.com>); Tue, 12 Dec 2023 16:27: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: 5022f5c0-990b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702398436; 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=nBJS0i1q7hgxVXtg1Vp5RKK5sLWDTbrts9y24YukrYE=;
	b=OFsBuLpSMoRQKcXFvYhya4zw563HL5aVRuIbiGkK4dJpUVf9sBsud0TkrE87IUjdrokZ9u
	NkO0vdhODF/bP9s3FJ42XvE9+M3eCwX8K6A5ff56DBSqThD7huDrPoAenWuCb+HuzAK3kO
	92vclOULydn5lYQ/93R807ix3rOBGqo=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702398435; 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=nBJS0i1q7hgxVXtg1Vp5RKK5sLWDTbrts9y24YukrYE=;
	b=Y9S90SpLEycvJ7FtRl1qVchw4JSbBPzro2UYmJE/L8xoYyP/keRGbQTGCH9pPFgx1ySjdJ
	AgzDIWreTMeDI5nczZBVj6cwWbgkleC80gUkXWLIwUHOYcp1wUMmeYsp3B8MgIZyo0aS9X
	UIP9vR3sMETfOq9IFUNOLWeBliBE5UA=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] xen: remove asm/unaligned.h
Date: Tue, 12 Dec 2023 17:27:02 +0100
Message-Id: <20231212162702.26360-3-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
In-Reply-To: <20231212162702.26360-1-jgross@suse.com>
References: <20231212162702.26360-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: ***************
X-Spam-Score: 15.68
X-Spam-Flag: YES
X-Spam-Level: 
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=Y9S90SpL;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out1.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:98 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [-3.51 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 TO_DN_SOME(0.00)[];
	 R_MISSING_CHARSET(2.50)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 NEURAL_HAM_SHORT(-0.20)[-0.997];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 BAYES_HAM(-3.00)[100.00%];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.10)[text/plain];
	 RCVD_DKIM_ARC_DNSWL_HI(-1.00)[];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_IN_DNSWL_HI(-0.50)[2a07:de40:b281:104:10:150:64:98:from];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -3.51
X-Rspamd-Queue-Id: D6F1921B4E
X-Spam-Flag: NO

With include/xen/unaligned.h now dealing properly with unaligned
accesses for all architectures, asm/unaligned.h can be removed and
users can be switched to include xen/unaligned.h instead.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/include/asm/unaligned.h | 6 ------
 xen/common/lz4/defs.h                | 2 +-
 xen/common/lzo.c                     | 2 +-
 xen/common/unlzo.c                   | 2 +-
 xen/common/xz/private.h              | 2 +-
 xen/common/zstd/mem.h                | 2 +-
 xen/lib/xxhash32.c                   | 2 +-
 xen/lib/xxhash64.c                   | 2 +-
 8 files changed, 7 insertions(+), 13 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/unaligned.h

diff --git a/xen/arch/x86/include/asm/unaligned.h b/xen/arch/x86/include/asm/unaligned.h
deleted file mode 100644
index 6070801d4a..0000000000
--- a/xen/arch/x86/include/asm/unaligned.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_UNALIGNED_H__
-#define __ASM_UNALIGNED_H__
-
-#include <xen/unaligned.h>
-
-#endif /* __ASM_UNALIGNED_H__ */
diff --git a/xen/common/lz4/defs.h b/xen/common/lz4/defs.h
index 10609f5a53..6d81113266 100644
--- a/xen/common/lz4/defs.h
+++ b/xen/common/lz4/defs.h
@@ -10,7 +10,7 @@
 
 #ifdef __XEN__
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u16 get_unaligned_le16(const void *p)
diff --git a/xen/common/lzo.c b/xen/common/lzo.c
index a87c76dded..cc03f0f554 100644
--- a/xen/common/lzo.c
+++ b/xen/common/lzo.c
@@ -97,7 +97,7 @@
 #ifdef __XEN__
 #include <xen/lib.h>
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 #define get_unaligned_le16(_p) (*(u16 *)(_p))
 #endif
diff --git a/xen/common/unlzo.c b/xen/common/unlzo.c
index 74056778eb..bdcefa95b3 100644
--- a/xen/common/unlzo.c
+++ b/xen/common/unlzo.c
@@ -34,7 +34,7 @@
 
 #ifdef __XEN__
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u16 get_unaligned_be16(const void *p)
diff --git a/xen/common/xz/private.h b/xen/common/xz/private.h
index e6814250e8..2299705378 100644
--- a/xen/common/xz/private.h
+++ b/xen/common/xz/private.h
@@ -13,7 +13,7 @@
 #ifdef __XEN__
 #include <xen/kernel.h>
 #include <asm/byteorder.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #else
 
 static inline u32 get_unaligned_le32(const void *p)
diff --git a/xen/common/zstd/mem.h b/xen/common/zstd/mem.h
index 2acae6a8ed..ae1e305126 100644
--- a/xen/common/zstd/mem.h
+++ b/xen/common/zstd/mem.h
@@ -23,7 +23,7 @@
 #ifdef __XEN__
 #include <xen/string.h> /* memcpy */
 #include <xen/types.h>  /* size_t, ptrdiff_t */
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #endif
 
 /*-****************************************
diff --git a/xen/lib/xxhash32.c b/xen/lib/xxhash32.c
index e8d403e5ce..32efa651c5 100644
--- a/xen/lib/xxhash32.c
+++ b/xen/lib/xxhash32.c
@@ -42,7 +42,7 @@
 #include <xen/errno.h>
 #include <xen/string.h>
 #include <xen/xxhash.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 
 /*-*************************************
  * Macros
diff --git a/xen/lib/xxhash64.c b/xen/lib/xxhash64.c
index 481e76fbcf..1858e236fe 100644
--- a/xen/lib/xxhash64.c
+++ b/xen/lib/xxhash64.c
@@ -43,7 +43,7 @@
 #include <xen/errno.h>
 #include <xen/string.h>
 #include <xen/xxhash.h>
-#include <asm/unaligned.h>
+#include <xen/unaligned.h>
 #endif
 
 /*-*************************************
-- 
2.35.3



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:30:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:30:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653317.1019765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5e2-0003H7-Ob; Tue, 12 Dec 2023 16:30:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653317.1019765; Tue, 12 Dec 2023 16:30:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5e2-0003H0-K3; Tue, 12 Dec 2023 16:30:06 +0000
Received: by outflank-mailman (input) for mailman id 653317;
 Tue, 12 Dec 2023 16:30:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2zfk=HX=gmail.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rD5e1-00037m-Ko
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:30:05 +0000
Received: from mail-oo1-xc30.google.com (mail-oo1-xc30.google.com
 [2607:f8b0:4864:20::c30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3c33528-990b-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 17:30:04 +0100 (CET)
Received: by mail-oo1-xc30.google.com with SMTP id
 006d021491bc7-589d4033e84so3403343eaf.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 08:30:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3c33528-990b-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702398603; x=1703003403; 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=at5EiOX0b+pH+NFntsGsmIwUlK3jTtTR5le1bopqG9U=;
        b=iN+V9re7F4PUM3UKoJ3FtZQFAJAFO75ZvyuL3alxpyErUPCYJ8vum4GlY5tW7hXhgw
         sMvtlN7mQpK5Kh4sQxBNWO8savLSE+z1eE7H8iVHRYrpaWtxM1DImbh9yvTHcL3fTAV6
         BK5WgCCrvZ4yOeH13xUOsbCEsJImN7yGBK1aCxWa0/Xzmd0A2ApByYT4NvxYLDvmnaCp
         4QT9cxG9JJ4mayLqA9TJT3MEcGC1YuU09V5I+tk3fVkGewh912zUwKHwL/eydkWpCJEd
         WsvwEI0G0Hq8vgyygyjGIZUSPOTkjkVo8ZAfmkcAbFNYs24kUgkwXFgQTvjko4l1IGWb
         R8Xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702398603; x=1703003403;
        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=at5EiOX0b+pH+NFntsGsmIwUlK3jTtTR5le1bopqG9U=;
        b=H9L18reZf+KxOo55eTEAb5+7ioGpX4irOi4fOFCJ2t3VRHCS/dA+ZVTsFy2LPiPH5d
         3O1SSsi0rY/2HQMggfYsMF8bBwgGkMozqEFnWk5s7d61VZpxOETjqzZJG1Zti4ZMbuau
         7FmMfir2dXcjVD+Fk4GcmQ0+yz8i5uMXOBv8pAPhYvwiVYUVyEeVMZK8a0RZsEXW8/Ks
         MFFY4Bg9t+ZOHDWPqng9rNlaqfNa5P+YYGREPr9kwcP1WbWcT7JIi3J6gAb/TVP5OsMn
         zPYXaYTeC9PLsbXvB8G63swgafnAwUisz7C/vHwQu0dQtSP2auyI8hELSKwAiV9iGlIk
         Iw8A==
X-Gm-Message-State: AOJu0YyuiJVliHD2gh7AFWyEXYdL4roZOgjBltYjfKTPMAkkbI7ep9Ny
	PGAuSkirEFpil0ML+ZYLSQjvpp9OFJW2MzDoZzk=
X-Google-Smtp-Source: AGHT+IEu+dOeOt6iU/2HhXno+a9IveRq+bb92faD0+s1kUkqQhA2o1p/AaZw5Szi8AAHXzvr3SjjYymIvolv14ogzp0=
X-Received: by 2002:a05:6820:820:b0:58d:7171:c27 with SMTP id
 bg32-20020a056820082000b0058d71710c27mr7315512oob.8.1702398602542; Tue, 12
 Dec 2023 08:30:02 -0800 (PST)
MIME-Version: 1.0
References: <277e21fc78b75ec459efc7f5fde628a0222c63b0.1701989261.git.m.a.young@durham.ac.uk>
 <ZXLg_YCHM-P6drQV@redhat.com> <alpine.DEB.2.22.394.2312081422490.1703076@ubuntu-linux-20-04-desktop>
 <8be72952-88b6-4c74-b696-fecfa8313c96@perard> <87wmtj77sl.fsf@epam.com>
 <CAJSP0QUytnP60HyWwG4AhjMZwCS6b+pJJm7AOWd8P8pu1SqJ=Q@mail.gmail.com> <87plzb76je.fsf@epam.com>
In-Reply-To: <87plzb76je.fsf@epam.com>
From: Stefan Hajnoczi <stefanha@gmail.com>
Date: Tue, 12 Dec 2023 11:29:50 -0500
Message-ID: <CAJSP0QWYH0eh8s9tFOCAf-wJ-iX=4xXgW0HspohtjqhjyMasmA@mail.gmail.com>
Subject: Re: [PATCH] fix qemu build with xen-4.18.0
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Anthony PERARD <anthony.perard@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Vikram Garhwal <vikram.garhwal@amd.com>, 
	=?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	Michael Young <m.a.young@durham.ac.uk>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Paolo Bonzini <pbonzini@redhat.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, 12 Dec 2023 at 11:02, Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
>
> Hi Stefan,
>
> Stefan Hajnoczi <stefanha@gmail.com> writes:
>
> > On Tue, 12 Dec 2023 at 10:36, Volodymyr Babchuk
> > <Volodymyr_Babchuk@epam.com> wrote:
> >>
> >> Hi Anthony
> >>
> >> Anthony PERARD <anthony.perard@citrix.com> writes:
> >>
> >> > On Fri, Dec 08, 2023 at 02:49:27PM -0800, Stefano Stabellini wrote:
> >> >> On Fri, 8 Dec 2023, Daniel P. Berrang=C3=A9 wrote:
> >> >> > On Thu, Dec 07, 2023 at 11:12:48PM +0000, Michael Young wrote:
> >> >> > > Builds of qemu-8.2.0rc2 with xen-4.18.0 are currently failing
> >> >> > > with errors like
> >> >> > > ../hw/arm/xen_arm.c:74:5: error: =E2=80=98GUEST_VIRTIO_MMIO_SPI=
_LAST=E2=80=99 undeclared (first use in this function)
> >> >> > >    74 |    (GUEST_VIRTIO_MMIO_SPI_LAST - GUEST_VIRTIO_MMIO_SPI_=
FIRST)
> >> >> > >       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
> >> >> > >
> >> >> > > as there is an incorrect comparision in include/hw/xen/xen_nati=
ve.h
> >> >> > > which means that settings like GUEST_VIRTIO_MMIO_SPI_LAST
> >> >> > > aren't being defined for xen-4.18.0
> >> >> >
> >> >> > The conditions in arch-arm.h for xen 4.18 show:
> >> >> >
> >> >> > $ cppi arch-arm.h | grep -E '(#.*if)|MMIO'
> >> >> > #ifndef __XEN_PUBLIC_ARCH_ARM_H__
> >> >> > # if defined(__XEN__) || defined(__XEN_TOOLS__) || defined(__GNUC=
__)
> >> >> > # endif
> >> >> > # ifndef __ASSEMBLY__
> >> >> > #  if defined(__XEN__) || defined(__XEN_TOOLS__)
> >> >> > #   if defined(__GNUC__) && !defined(__STRICT_ANSI__)
> >> >> > #   endif
> >> >> > #  endif /* __XEN__ || __XEN_TOOLS__ */
> >> >> > # endif
> >> >> > # if defined(__XEN__) || defined(__XEN_TOOLS__)
> >> >> > #  define PSR_MODE_BIT  0x10U /* Set iff AArch32 */
> >> >> > /* Virtio MMIO mappings */
> >> >> > #  define GUEST_VIRTIO_MMIO_BASE   xen_mk_ullong(0x02000000)
> >> >> > #  define GUEST_VIRTIO_MMIO_SIZE   xen_mk_ullong(0x00100000)
> >> >> > #  define GUEST_VIRTIO_MMIO_SPI_FIRST   33
> >> >> > #  define GUEST_VIRTIO_MMIO_SPI_LAST    43
> >> >> > # endif
> >> >> > # ifndef __ASSEMBLY__
> >> >> > # endif
> >> >> > #endif /*  __XEN_PUBLIC_ARCH_ARM_H__ */
> >> >> >
> >> >> > So the MMIO constants are available if __XEN__ or __XEN_TOOLS__
> >> >> > are defined. This is no different to the condition that was
> >> >> > present in Xen 4.17.
> >> >> >
> >> >> > What you didn't mention was that the Fedora build failure is
> >> >> > seen on an x86_64 host, when building the aarch64 target QEMU,
> >> >> > and I think this is the key issue.
> >> >>
> >> >> Hi Daniel, thanks for looking into it.
> >> >>
> >> >> - you are building on a x86_64 host
> >> >> - the target is aarch64
> >> >> - the target is the aarch64 Xen PVH machine (xen_arm.c)
> >> >>
> >> >> But is the resulting QEMU binary expected to be an x86 binary? Or a=
re
> >> >> you cross compiling ARM binaries on a x86 host?
> >> >>
> >> >> In other word, is the resulting QEMU binary expected to run on ARM =
or
> >> >> x86?
> >> >>
> >> >>
> >> >> > Are we expecting to build Xen support for non-arch native QEMU
> >> >> > system binaries or not ?
> >> >>
> >> >> The ARM xenpvh machine (xen_arm.c) is meant to work with Xen on ARM=
, not
> >> >> Xen on x86.  So this is only expected to work if you are
> >> >> cross-compiling. But you can cross-compile both Xen and QEMU, and I=
 am
> >> >> pretty sure that Yocto is able to build Xen, Xen userspace tools, a=
nd
> >> >> QEMU for Xen/ARM on an x86 host today.
> >> >>
> >> >>
> >> >> > The constants are defined in arch-arm.h, which is only included
> >> >> > under:
> >> >> >
> >> >> >   #if defined(__i386__) || defined(__x86_64__)
> >> >> >   #include "arch-x86/xen.h"
> >> >> >   #elif defined(__arm__) || defined (__aarch64__)
> >> >> >   #include "arch-arm.h"
> >> >> >   #else
> >> >> >   #error "Unsupported architecture"
> >> >> >   #endif
> >> >> >
> >> >> >
> >> >> > When we are building on an x86_64 host, we not going to get
> >> >> > arch-arm.h included, even if we're trying to build the aarch64
> >> >> > system emulator.
> >> >> >
> >> >> > I don't know how this is supposed to work ?
> >> >>
> >> >> It looks like a host vs. target architecture mismatch: the #if defi=
ned
> >> >> (__aarch64__) check should pass I think.
> >> >
> >> >
> >> > Building qemu with something like:
> >> >     ./configure --enable-xen --cpu=3Dx86_64
> >> > used to work. Can we fix that? It still works with v8.1.0.
> >> > At least, it works on x86, I never really try to build qemu for arm.
> >> > Notice that there's no "--target-list" on the configure command line=
.
> >> > I don't know if --cpu is useful here.
> >> >
> >> > Looks like the first commit where the build doesn't work is
> >> > 7899f6589b78 ("xen_arm: Add virtual PCIe host bridge support").
> >>
> >> I am currently trying to upstream this patch. It is in the QEMU mailin=
g
> >> list but it was never accepted. It is not reviewed in fact. I'll take =
a
> >> look at it, but I don't understand how did you get in the first place.
> >
> > Hi Volodymyr,
> > Paolo Bonzini sent a pull request with similar code changes this
> > morning and I have merged it into the qemu.git/staging branch:
> > https://urldefense.com/v3/__https://gitlab.com/qemu-project/qemu/-/comm=
it/eaae59af4035770975b0ce9364b587223a909501__;!!GF_29dbcQIUBPA!yFgSxAEgXPjc=
kF8piSt0T77bbeggSgwC-6-xDuZmzq4a8U7HEP8XxGnxwIhgA9iyFVie-fdVgAVA5wVipnewbLN=
p$
> > [gitlab[.]com]
> >
> > If you spot something that is not correct, please reply here.
> >
>
> No, it is all fine in that pull request. I was talking about patch
> "xen_arm: Add virtual PCIe host bridge support" which is still on
> review:
> https://patchwork.kernel.org/project/qemu-devel/patch/20231202014108.2017=
803-7-volodymyr_babchuk@epam.com/
>
> I was surprised when Anthony mentioned that this patch breaks the
> build, because the patch is not included in QEMU tree.

Ah, I jumped straight to the last email and didn't realize :).

Stefan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:48:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:48:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653325.1019774 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5v7-0000uA-4g; Tue, 12 Dec 2023 16:47:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653325.1019774; Tue, 12 Dec 2023 16: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 1rD5v7-0000u3-25; Tue, 12 Dec 2023 16:47:45 +0000
Received: by outflank-mailman (input) for mailman id 653325;
 Tue, 12 Dec 2023 16:47: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=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rD5v5-0000tx-Ga
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:47:43 +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 28ebf558-990e-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 17:47:39 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c3fe6c1b5so30360215e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 08:47:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r20-20020a05600c459400b0040b349c91acsm19299344wmo.16.2023.12.12.08.47.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 08:47:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28ebf558-990e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702399658; x=1703004458; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=cNOWZc4yE208kyQTbNea+lP+dtLQtBZf8ABVh8X0IE0=;
        b=H7BhdANUx12WXNe7rQviYak+zXnWjpDF0rSCfaMZeQdQH4Lgpt71VSJYDOLkShPx5O
         gfkUBnR30XxrwUsCSWaOItoo7r7FWOdZIZ5IkPmjKs/KZ0NXfHE7OegBzegU8pzXoOEE
         gA7Bsfbs79cbiQXkTGVKxeXRzRtm7y7mS7IxaCrhAd0NAm9SnEAoWfHQAgTXDK+9Z607
         s9+FuOyYuAx46CR7Gff82VpbgkGCWti1KgR1K2kK/33btaW/X2FH/8XnTFPDEY37j3/+
         SIEnKNbbKR7aSbKHu1xyzCwj2H5FHI9WigKoqZIydKaVmtebk8/m4KE3APBUsQ54Wbfz
         rTgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702399658; x=1703004458;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=cNOWZc4yE208kyQTbNea+lP+dtLQtBZf8ABVh8X0IE0=;
        b=S9QTcI9axFxX8BZ1qXIWS8zpWE/D/AUPtXvWKgh4SPuJWVkP2JDaGa1xwdd4VpzwpB
         7tYELwiJJhP/Ji0scXE11MNC8hYN90aCX5xW7sJrwxPFx3uERPO07UNhFMZCHZ6TOpZu
         w1nv/Yd+XQ1bc6eFdK4YrFwtqoBx5mUk30yYgB7VsCJUIPYlXuUuIioGmbwN4Wf0c88M
         2Xvx/+qdTx2YRB+R2jtLnZ1l97aTguikX7Ep3lrahkwweXlk9U6aWqHfGIgGFkmXpdKV
         f8tOGsGHtin42s2SV/F4noqY6K692/gWErHGnq3iOSOLDuzViQpgFX5gBnNs7jMch4ge
         mosA==
X-Gm-Message-State: AOJu0YyqoN5KPuDX+y94kgJX92lhyVsXoiIzsgqCxKCGeGpndJtamLwc
	FyMm9JjxqyBbgAPcEqT6uwR1
X-Google-Smtp-Source: AGHT+IHEt6EEtH8o3Xw+T30qxUG8NCxdz+u1vCzpaLufTSmSgLumg+1nXl2cIEY53f8QDBDHVXB0Kw==
X-Received: by 2002:a05:600c:a3a1:b0:40c:5822:bcc1 with SMTP id hn33-20020a05600ca3a100b0040c5822bcc1mr95946wmb.66.1702399658519;
        Tue, 12 Dec 2023 08:47:38 -0800 (PST)
Message-ID: <00f77f61-9905-48dd-ba26-5a68769eb919@suse.com>
Date: Tue, 12 Dec 2023 17:47:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all
 architectures
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
 xen-devel@lists.xenproject.org
References: <20231212162702.26360-1-jgross@suse.com>
 <20231212162702.26360-2-jgross@suse.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: <20231212162702.26360-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2023 17:27, Juergen Gross wrote:
> Instead of defining get_unaligned() and put_unaligned() in a way that
> is only supporting architectures allowing unaligned accesses, use the
> same approach as the Linux kernel and let the compiler do the
> decision how to generate the code for probably unaligned data accesses.
> 
> Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
> the Linux kernel.
> 
> The generated code has been checked to be the same on x86.
> 
> Modify the Linux variant to not use underscore prefixed identifiers,
> avoid unneeded parentheses and drop the 24-bit accessors.
> 
> Add the definition of __packed to xg_dom_decompress_unsafe_zstd.c in
> libxenguest as it is using a cruel hack to reuse the hypervisor's
> decompressing code for stubdom.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 803f4e1eab7a
> Signed-off-by: Juergen Gross <jgross@suse.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:49:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:49:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653327.1019785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5wi-0001dv-FE; Tue, 12 Dec 2023 16:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653327.1019785; Tue, 12 Dec 2023 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 1rD5wi-0001do-C6; Tue, 12 Dec 2023 16:49:24 +0000
Received: by outflank-mailman (input) for mailman id 653327;
 Tue, 12 Dec 2023 16:49:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=akbp=HX=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1rD5wh-0001di-4D
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:49:23 +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 6653f56d-990e-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 17:49:22 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-50bf26b677dso5599739e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 08:49:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6653f56d-990e-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702399761; x=1703004561; 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=cKTOdYUJEYfM6/WDe/biSrugSZBK3LNWZp0xO7aItBU=;
        b=eJ72m+kH8vsiPw0GPPnE7+1EjiDUAxVLE0tpew3GLl3CapFVXizwOxUzlt4F2qYoIi
         mWa3O/XLQpj9CObq4KQZUglqxlGSQ1Yyz5warcOz6IL+4q7Opmg8DBlGbsP7/ctQoejO
         MWz1SCHmjPcL/01L2oK2GXq8ZqV1jjaPRIgaE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702399761; x=1703004561;
        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=cKTOdYUJEYfM6/WDe/biSrugSZBK3LNWZp0xO7aItBU=;
        b=Peu+SnWJNr4yo/nV6533hrDouJ9tDgRHdoVburvQQJHc/o9Pl3hIbpfmwcW1SHCtAM
         YDhDOeorPgQ3ObR+iTi+QG759Q0P7tZl0dCR+33B4tbf9Ds/3CRYtilChI3w8fruZX9S
         ZLeuHek4GL+AAF+7TdfTMqXHbnOYqeJJ+r3bIhooFR6stTIphEaKEhg/6xxixsRmXk1U
         zzj1Hb00LVYhII0QWmToMzf9b1JoQMz7rvX9AMoy5jaGmafCZJJ1isssd6EpSWJ1q/Je
         IiHbjzgk0L8goVLyfXbwJ9y/JIHnRlXHOGmUMG62jEpWuIhOPXMD1HFaya9Cq8fgUxJu
         6LRQ==
X-Gm-Message-State: AOJu0YwXRIziadRh4n+CpvrIvtGbw9t3xbTpJFkg0l15vV/ceOY3RQ4d
	ErefjHGwTXilrfFaZQeazhdIbohV3RTygZTjVYVwsKbot4KnE8yiK00=
X-Google-Smtp-Source: AGHT+IEmi4KySntacweR1iV9QEX6e74pJ4ZAzj4v15T/crxnOJ5CoCnC37VQjCm5mGmKJ7/VGgKAWV+ctFn4iYbUo3s=
X-Received: by 2002:a05:6512:a82:b0:50d:fb23:9c23 with SMTP id
 m2-20020a0565120a8200b0050dfb239c23mr1644553lfu.187.1702399761518; Tue, 12
 Dec 2023 08:49:21 -0800 (PST)
MIME-Version: 1.0
References: <87plzmcoj5.fsf@vates.fr>
In-Reply-To: <87plzmcoj5.fsf@vates.fr>
From: Kelly Choi <kelly.choi@cloud.com>
Date: Tue, 12 Dec 2023 16:48:45 +0000
Message-ID: <CAO-mL=yCD8+kQNhmK1fNQ7=VcgzrmN=9cTGeE3eyUHs83sJC1A@mail.gmail.com>
Subject: Re: Improving conflict resolution inside the Xen Project
To: "Charles-H. Schulz" <charles.schulz@vates.fr>
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000000d3417060c52d51e"

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

Hi Charles,

Thank you for your suggestion.

I will factor this into the discussion I am having this week with the
conduct/governance team.
I will also share the proposed plans with the community and advisory board
as soon as I have details. Please rest assured that all members will have a
chance to discuss these proposals before anything gets implemented.

Many thanks,
Kelly Choi

Community Manager
Xen Project


On Mon, Dec 4, 2023 at 9:20=E2=80=AFAM Charles-H. Schulz <charles.schulz@va=
tes.fr>
wrote:

> Hello,
>
> Following up on the discussions on the use of certain terms and the way t=
o
> handle disagreements that ultimately lead to conflicts, I would like to
> suggest certain mecanisms to more effectively handle such conflicts. This
> does not mean I'm against any informal or formal voting - I think it was
> the
> right thing to do at the right time. But looking forward we need to handl=
e
> conflicts resolution in a way that inflicts the minimum possible tension
> and
> paralysis on the code contributions and bug fixing.
>
> This means that we need to move to a model that's already quite common
> in other projects, namely, a model where conflicts resolution is dealt wi=
th
> processes implemented by one of the more or less formal committees
> chartered
> or existing in the community governance.
>
> What this would imply: in the absence of a more complex governance within
> the
> Xen Project I suggest the Advisory Board be put in charge of conflicts
> resolution. With a simple process that I (and others hopefully) will
> clarify
> soon, the Advisory Board would within a specific timeframe collect and
> analyze the conflict either on its own or called upon by one or more
> community members. It could effectively talk in more detail and off lists
> to
> the relevant persons and then suggest a way out of the conflict.
>
> Ideally - it's Monday and Christmas is not far so let's dream a bit -  th=
is
> would lift the burden of the conflict management away from the developmen=
t
> list and allow it to be focused on development. The Advisory Board should
> in
> these cases work in harmony with the informally proposed Technical Adviso=
y
> Board in order to ensure its decisions are not just the consensus of its
> own
> members but are well understood throughout the project.
>
> Hope this helps,
> --
> Charles-H. Schulz
> Vates SAS.
>
>

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

<div dir=3D"ltr">Hi Charles,<div><br></div><div>Thank you for your suggesti=
on.=C2=A0</div><div><br></div><div>I will factor this into the discussion I=
 am having this week with the conduct/governance team.=C2=A0</div><div>I wi=
ll also share the proposed plans with the community and advisory board as s=
oon as I have details. Please rest assured that all members will have a cha=
nce to discuss these proposals before anything gets implemented.=C2=A0</div=
><div><br clear=3D"all"><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><br></div></div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Dec 4, 2023 at 9:=
20=E2=80=AFAM Charles-H. Schulz &lt;<a href=3D"mailto:charles.schulz@vates.=
fr">charles.schulz@vates.fr</a>&gt; wrote:<br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">Hello,<br>
<br>
Following up on the discussions on the use of certain terms and the way to<=
br>
handle disagreements that ultimately lead to conflicts, I would like to<br>
suggest certain mecanisms to more effectively handle such conflicts. This<b=
r>
does not mean I&#39;m against any informal or formal voting - I think it wa=
s the<br>
right thing to do at the right time. But looking forward we need to handle<=
br>
conflicts resolution in a way that inflicts the minimum possible tension an=
d<br>
paralysis on the code contributions and bug fixing.<br>
<br>
This means that we need to move to a model that&#39;s already quite common<=
br>
in other projects, namely, a model where conflicts resolution is dealt with=
<br>
processes implemented by one of the more or less formal committees chartere=
d<br>
or existing in the community governance.<br>
<br>
What this would imply: in the absence of a more complex governance within t=
he<br>
Xen Project I suggest the Advisory Board be put in charge of conflicts<br>
resolution. With a simple process that I (and others hopefully) will clarif=
y<br>
soon, the Advisory Board would within a specific timeframe collect and<br>
analyze the conflict either on its own or called upon by one or more<br>
community members. It could effectively talk in more detail and off lists t=
o<br>
the relevant persons and then suggest a way out of the conflict.<br>
<br>
Ideally - it&#39;s Monday and Christmas is not far so let&#39;s dream a bit=
 -=C2=A0 this<br>
would lift the burden of the conflict management away from the development<=
br>
list and allow it to be focused on development. The Advisory Board should i=
n<br>
these cases work in harmony with the informally proposed Technical Advisoy<=
br>
Board in order to ensure its decisions are not just the consensus of its ow=
n<br>
members but are well understood throughout the project.<br>
<br>
Hope this helps,<br>
-- <br>
Charles-H. Schulz<br>
Vates SAS.<br>
<br>
</blockquote></div>

--0000000000000d3417060c52d51e--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:51:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:51:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653329.1019794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD5yY-0003qr-Pg; Tue, 12 Dec 2023 16:51:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653329.1019794; Tue, 12 Dec 2023 16:51: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 1rD5yY-0003qk-NB; Tue, 12 Dec 2023 16:51:18 +0000
Received: by outflank-mailman (input) for mailman id 653329;
 Tue, 12 Dec 2023 16:51:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rD5yX-0003oH-KG
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:51:17 +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 aa6d16fe-990e-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 17:51:16 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-33621d443a7so2288512f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 08:51:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v14-20020a5d4a4e000000b003333541a5bdsm11240295wrs.80.2023.12.12.08.51.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 08:51:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa6d16fe-990e-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702399876; x=1703004676; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ER0YuL4YyE/Qa4bQFqyGgDTCu49JTc++v1bdP7gyW7A=;
        b=TFeYhwzOcb5Td97SxSN2fDj+tfn5+XtU8WPnEFDRQzL+iBwd4cY7fAnogOFrMHYLki
         YIjHmJf973b5HOIwIfLYxbbtD7Z4R9AKynnfLHN2jltTq+PCYgKvImjeaO/8a90335I+
         kyNMhLlFFNbPgmChYovzwQTKkqYBtIyF4KjlJ/dn8yM3MXWS0cKbpnmmvNCGjBful4mo
         8YimJSzX52xH/k1YKk+pzavF2YmtKiBssYbbZzP7STdcLKT6UO5H7pYzNcD36gpJEqQz
         FXfHDVkQVJn5FhuaJa6nyluD4hgvpke8ESEIK2i8A3fU9ioqICTV4Hql/J9NMdv2Tdzd
         Dagw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702399876; x=1703004676;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ER0YuL4YyE/Qa4bQFqyGgDTCu49JTc++v1bdP7gyW7A=;
        b=s3tQPplluIxucc18b2gO/ftlDZZTCHOCR8HMZN+v4qkuSRCeBPE0aCH/aoPgpZolv/
         B8WkONhSxqx6MgeJKi05pDmx+5gUgQp7JDJHLxOU6Fzbc1dgoM2CcXVYAI4v7a0gC9Cs
         fjhK6/I410H/eGdOn+DgBEua0CdW6ma1r2cAvV1pu5eS6Cn07eLbZfAPvGnDMxEEUIrz
         JR6CQPobpV58UiKUEbZmmBOmN2BoiEgcwFSE0r7d5O5G8fB+p+upt1FtW8KUNjZIO1rq
         jjJAU9wCRzhKxwrUCa8AJcMiG7pW+sX3tpHCNVulDofNLBOPDDaidaKun0aIsrhlEG1I
         Pmuw==
X-Gm-Message-State: AOJu0Yxz6HCQ4bA0Q18+0MkoUDoxXwOMY9mJeQEEi/wPQhRstxaWqIar
	KBpOi3MY31nhkx9SiUYz1sBw
X-Google-Smtp-Source: AGHT+IFpmzl/FGuSr1jgua5SwLd27VzYOnkCBs3jTHBk8C1h3FaMXiKrafc4EF6m0kGsPQw25jAjVQ==
X-Received: by 2002:a5d:574b:0:b0:336:3740:5274 with SMTP id q11-20020a5d574b000000b0033637405274mr6390wrw.79.1702399876007;
        Tue, 12 Dec 2023 08:51:16 -0800 (PST)
Message-ID: <9f0bac57-5851-4d40-9b9c-3f430d58b0b2@suse.com>
Date: Tue, 12 Dec 2023 17:51:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 18/39] xen/riscv: introduce cmpxchg.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <981cabb593fb4b5d8927071d456ec7016891fe71.1700761381.git.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: <981cabb593fb4b5d8927071d456ec7016891fe71.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V2:
> 	- update the comment at the top of the header.
> 	- change xen/lib.h to xen/bug.h.
> 	- sort inclusion of headers properly.
> ---
>  xen/arch/riscv/include/asm/cmpxchg.h | 379 +++++++++++++++++++++++++++
>  1 file changed, 379 insertions(+)
>  create mode 100644 xen/arch/riscv/include/asm/cmpxchg.h
> 
> diff --git a/xen/arch/riscv/include/asm/cmpxchg.h b/xen/arch/riscv/include/asm/cmpxchg.h
> new file mode 100644
> index 0000000000..c535bc9660
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/cmpxchg.h
> @@ -0,0 +1,379 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + *  Taken and modified from Linux.

Depending on how heavily this file was modified, further adjustments may or
may not be advisable. Can the description here please be non-empty to cover
how close to the original the result is, plus also what version or commit
you started from?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:56:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:56:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653334.1019805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD63v-0005nv-Dp; Tue, 12 Dec 2023 16:56:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653334.1019805; Tue, 12 Dec 2023 16: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 1rD63v-0005no-Aw; Tue, 12 Dec 2023 16:56:51 +0000
Received: by outflank-mailman (input) for mailman id 653334;
 Tue, 12 Dec 2023 16:56:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rD63u-0005ni-8U
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:56:50 +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 70b4d5a8-990f-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 17:56:49 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3362216835eso1774171f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 08:56:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 h4-20020a05600004c400b0033621fe3a29sm4873600wri.26.2023.12.12.08.56.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 08:56:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70b4d5a8-990f-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702400208; x=1703005008; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=j/SpRd50Am3tUfGGJ9jxm4j84jDGow0Q/IazYwMhXIE=;
        b=D7f5XrlXf2XlaehObIappM+I/MMMiTGelRqXjwUJI3dq9+2dN8Q67s4/eoL6oLNhnF
         KWT7MUdKuwUQbTFfLLYet/S7myKDgfjO/OJ84ujXBfnsvv62Lp93U6zYzuQ6T4tpf202
         IUqcYoI97W+vPxW28x6XSs1jYd2FE5lFCy5Em4tFBQHiGTozJ+BlqF8JxWInHsCn6p/R
         eM3XxMaGa+0Eu7u02imIFPEyzzNdMYSKfYcamuOLaX5Dvq2j5L0elRT7c7Loh3SNOV5L
         sFx6/V+HvevFpatltdUUTBW8DwahJGabvG0c9UHN+51hWblBMoT225wF+udoq+B686Xs
         3SfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702400208; x=1703005008;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=j/SpRd50Am3tUfGGJ9jxm4j84jDGow0Q/IazYwMhXIE=;
        b=qdvqNgsjn37aF1rPTRN2rtQTDJ9haMUMvmFsqefvhCycdsSNItbluYyT7EOCJ4xSmq
         qSA19MOj0pxv2iOsFWVG2MFl327fgn7Z5cVkMB3TLQgAZyzU9gM6B6sksOGB8clEbNB9
         KXERUwEpBf5skpLIfy5EEqKKH3/sTdU+YYHGRhsM/mTXZu96trs9oAN4rKHxbziHKzJN
         7L/Jl9Rpj1UTlb1HLcJz65XMsbHjlp7lVO831TUgghRclWkt1Ykc4b34thrCE/CfubZB
         VqaDscgqhrHA8PXBaALgvXP/XG3wtqbKe2UcSimPSXZ8k76gjP2Tb6oTXftWNl3Y0+pX
         KA8w==
X-Gm-Message-State: AOJu0Yy105Fkx4f7JJzbGn4grxRJEPoKaCT4uFMxeEHiskXR24Pe/l3E
	Fyu9fPY5FL9ms/wI5RsX46Fk
X-Google-Smtp-Source: AGHT+IENmjcvsuYxUcKUIaq1IcF2lnlMoVhbn5Vxn2eJAgaMGRWZr5npubxyGRcqLADgqA/mNM7doQ==
X-Received: by 2002:a05:6000:50a:b0:336:26b2:be75 with SMTP id a10-20020a056000050a00b0033626b2be75mr1647748wrf.36.1702400208527;
        Tue, 12 Dec 2023 08:56:48 -0800 (PST)
Message-ID: <84f3f223-9c51-4e38-8ed0-38f32b01c8f8@suse.com>
Date: Tue, 12 Dec 2023 17:56:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 19/39] xen/riscv: introduce asm/io.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <5fdef2f1039c4c7c9d213e77f4d3dec3ada9c1d6.1700761381.git.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: <5fdef2f1039c4c7c9d213e77f4d3dec3ada9c1d6.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V2:
>  - Nothing changed. Only rebase.
> ---
>  xen/arch/riscv/include/asm/io.h | 134 ++++++++++++++++++++++++++++++++
>  1 file changed, 134 insertions(+)
>  create mode 100644 xen/arch/riscv/include/asm/io.h
> 
> diff --git a/xen/arch/riscv/include/asm/io.h b/xen/arch/riscv/include/asm/io.h
> new file mode 100644
> index 0000000000..987fddf902
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/io.h
> @@ -0,0 +1,134 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Taken and modified from Linux.

Somewhat similar the the previous patch, further style related adjustments
may or may not wants making depending on how close to the original the
result is. Same request therefore here as just mentioned there. One further
question though:

> + * {read,write}{b,w,l,q} based on arch/arm64/include/asm/io.h
> + *   which was based on arch/arm/include/io.h
> + *
> + * Copyright (C) 1996-2000 Russell King
> + * Copyright (C) 2012 ARM Ltd.
> + * Copyright (C) 2014 Regents of the University of California
> + */
> +
> +#ifndef _ASM_RISCV_IO_H
> +#define _ASM_RISCV_IO_H
> +
> +#include <asm/byteorder.h>
> +
> +/*
> + * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
> + * change the properties of memory regions.  This should be fixed by the
> + * upcoming platform spec.
> + */
> +#define ioremap_nocache(addr, size) ioremap((addr), (size))
> +#define ioremap_wc(addr, size) ioremap((addr), (size))
> +#define ioremap_wt(addr, size) ioremap((addr), (size))
> +
> +/* Generic IO read/write.  These perform native-endian accesses. */
> +#define __raw_writeb __raw_writeb
> +static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
> +{
> +	asm volatile("sb %0, 0(%1)" : : "r" (val), "r" (addr));
> +}
> +
> +#define __raw_writew __raw_writew
> +static inline void __raw_writew(u16 val, volatile void __iomem *addr)
> +{
> +	asm volatile("sh %0, 0(%1)" : : "r" (val), "r" (addr));
> +}
> +
> +#define __raw_writel __raw_writel
> +static inline void __raw_writel(u32 val, volatile void __iomem *addr)
> +{
> +	asm volatile("sw %0, 0(%1)" : : "r" (val), "r" (addr));
> +}
> +
> +#ifdef CONFIG_64BIT
> +#define __raw_writeq __raw_writeq
> +static inline void __raw_writeq(u64 val, volatile void __iomem *addr)
> +{
> +	asm volatile("sd %0, 0(%1)" : : "r" (val), "r" (addr));
> +}
> +#endif
> +
> +#define __raw_readb __raw_readb
> +static inline u8 __raw_readb(const volatile void __iomem *addr)
> +{
> +	u8 val;
> +
> +	asm volatile("lb %0, 0(%1)" : "=r" (val) : "r" (addr));
> +	return val;
> +}
> +
> +#define __raw_readw __raw_readw
> +static inline u16 __raw_readw(const volatile void __iomem *addr)
> +{
> +	u16 val;
> +
> +	asm volatile("lh %0, 0(%1)" : "=r" (val) : "r" (addr));
> +	return val;
> +}
> +
> +#define __raw_readl __raw_readl
> +static inline u32 __raw_readl(const volatile void __iomem *addr)
> +{
> +	u32 val;
> +
> +	asm volatile("lw %0, 0(%1)" : "=r" (val) : "r" (addr));
> +	return val;
> +}
> +
> +#ifdef CONFIG_64BIT
> +#define __raw_readq __raw_readq
> +static inline u64 __raw_readq(const volatile void __iomem *addr)
> +{
> +	u64 val;
> +
> +	asm volatile("ld %0, 0(%1)" : "=r" (val) : "r" (addr));
> +	return val;
> +}
> +#endif

If all of these are plain loads and stores, is it really necessary to use
inline assembly in the first place? Even more so that you don't properly
make the compiler aware of which range of memory you access.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 16:57:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 16:57:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653337.1019815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD64K-0006He-QN; Tue, 12 Dec 2023 16:57:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653337.1019815; Tue, 12 Dec 2023 16:57: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 1rD64K-0006HX-MS; Tue, 12 Dec 2023 16:57:16 +0000
Received: by outflank-mailman (input) for mailman id 653337;
 Tue, 12 Dec 2023 16:57:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rD64J-00066Z-BI
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 16:57:15 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f524162-990f-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 17:57:13 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3360ae1b937so2921786f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 08:57:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 h4-20020a05600004c400b0033621fe3a29sm4873600wri.26.2023.12.12.08.57.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 08:57:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f524162-990f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702400233; x=1703005033; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=IlsBuXrdrUY13Ll0FrcTZ09U5KvbDKYxEXqZDMbOQK0=;
        b=YBBrZSvIs1HnngMXn0H5c9MzmICiTBL792af5gQDtSEGAKyM8ZAYYhSr2ZcDa2PceJ
         S8sharH6tK+x9lLNnTnhkRp+WShrA+2neJXJ6lSy8UzIO16UjlqefBklptv2f+xtPNRe
         GoTMFQONUHD6xT453Ex6vLeRZG/rxPc96a8k/ar5km6YeYUaYLsWyD48nwHt2Nd6e1pV
         QTU1lvNEv+Fi0ZwH3XLKY/xrP7ut4wcgjDKpByyd0znxQ6Q45KwIRpZO2JgvXmu80kzJ
         uKhB81jJ/IBVOJP2DFoyR5vZXXi5t5b44wdN50/ExWDNFqUq5AKU/JRpstTBz10cnXG+
         H+og==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702400233; x=1703005033;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=IlsBuXrdrUY13Ll0FrcTZ09U5KvbDKYxEXqZDMbOQK0=;
        b=EZZSpM7X8mUiAbqxPIgJsQT6qPSXA0JqQriJRxF3haB0EcnJgSr9dSbTl3C6ki+mLT
         VBzbPiEPdj9zaIXAQqGtOJaMJkyv7YS6LKue9XQL77x2A27AV9KknL6xun2NAaLglQvb
         UHZPg/jtz4vW8ClOYiPVaQWqIIBM0ea7gIcYjrFV590wBKfWZRhPPfcFGqcFhAySdgD4
         5t8NEfT28rbGBzvfeD7y5oDvUkZ7wMZIJgNcTcEgxXvHI1u49rYQ7x+uBUcMqtHibwWZ
         964+ivnosNCyJTyyE07mjR0G8BAmU1o6CNqWmXSMW1f9hhPbtskJDTFRA+JlHcbsfbm8
         KkwQ==
X-Gm-Message-State: AOJu0Yx7jqRwP3JmxHw7AFZpfFrtlFgX7ckQBr/Hks5U7MExHt3sdrwn
	nnFojR6EE+42LcPlHOGnd8tN
X-Google-Smtp-Source: AGHT+IGFE309IqIHgNLTyUc0ecOEO6ZqMPFn9SBmYlYzRTYO+7pgHRXC60d5R9rKANrOhSDameIQrg==
X-Received: by 2002:adf:a1d8:0:b0:333:2fd2:812c with SMTP id v24-20020adfa1d8000000b003332fd2812cmr3393379wrv.73.1702400233214;
        Tue, 12 Dec 2023 08:57:13 -0800 (PST)
Message-ID: <e3647328-0d20-4800-ad86-b7f2c93f620c@suse.com>
Date: Tue, 12 Dec 2023 17:57:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 20/39] xen/riscv: define bug frame tables in xen.lds.S
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <2d9a1d2847be15e025121694ead80bee27c5ed97.1700761381.git.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: <2d9a1d2847be15e025121694ead80bee27c5ed97.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 12 17:04:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 17:04:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653342.1019825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD6B9-0000Fx-FW; Tue, 12 Dec 2023 17:04:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653342.1019825; Tue, 12 Dec 2023 17:04:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD6B9-0000Fq-Bz; Tue, 12 Dec 2023 17:04:19 +0000
Received: by outflank-mailman (input) for mailman id 653342;
 Tue, 12 Dec 2023 17:04:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=A/PU=HX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rD6B7-0000Fk-LT
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 17:04:17 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7b580c5c-9910-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 18:04:16 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40c339d2b88so45304885e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 09:04:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g10-20020a05600c4eca00b0040c11fbe581sm17009113wmq.27.2023.12.12.09.04.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 09:04:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b580c5c-9910-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702400656; x=1703005456; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Wn0vb6xtSjIRg20Fe1iG2HJ7YAjdlAATytw2BKVO00A=;
        b=VUwwtkcnEOWdC8A03K7KvfrA6CEDeM/bXfuRVlwynFJbkykA7KB13AYpPAlfWjZ6fC
         w6AXcXRejLttS98Gh7qn/fHr37n0IKoF+OdELplO9LBFXnyXcZCntGPPuu7KeubeqpYC
         yw8GycLLCwBqfoyNVIICFORBjrHVzdhUAbMduQFmE8Djms8egJCPTvfOrtdmLhrNeOFL
         6TYY+ZbRWQPI1XWLjvBY8/oSY//wxg/4HBUYxNTrmCvYA6eVlyvitAG5WwtToqO7sJDn
         eQ6x7X31UKyRJ7R0vxb2Fp8/nIEMVIOrwDkCiq9MOdMUcIKmrJfu2ixUuOVY0LnPJdMU
         iyQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702400656; x=1703005456;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Wn0vb6xtSjIRg20Fe1iG2HJ7YAjdlAATytw2BKVO00A=;
        b=gTUyegW90ih8PB6j8GqZBYvLgTjLZO6xh2uzL3qcAnM4/wG5GLCTDj+A7r6xAfeYUk
         t1WU4B+hIkqUUsHlaVHZYhRYTl1mUk1O1FHwlVR7It4SrJ6QtL/XUfVftF9CDiep/7fo
         fjIH5k3/2knF7tjoVMefCou2LFTHeOEpoDegGqDS3Wo0cd0cSya73UEduz0lvL3FFbTY
         /a/nIeWtO9z5pL4NgOHHJkbrwg9Z83HIpSyh+LFTamXUzBDIyJQdKjpqWQDs+XN76IV1
         Y22RL2d7qiv0i35vqx9yZRLy3rE0skqOx0Wfw2It8yR4RLPS4AUkaEra4hQD9G2/zLSv
         u59w==
X-Gm-Message-State: AOJu0YxOPDJLAZq3y0dK/CToTrlMkWOikWkr37SJUPvllhlLOjlGnEWz
	BULe7Iqz8drOkyVNeVzD4u7f
X-Google-Smtp-Source: AGHT+IFTngHwwc/ABPTOe+vX+cH8e3g2UyLQXgMVjqCL9arIT0JqAU05pKcYMBJE3D50qF1fi70wgg==
X-Received: by 2002:a05:600c:46cf:b0:40c:50b4:f44f with SMTP id q15-20020a05600c46cf00b0040c50b4f44fmr770253wmo.63.1702400655912;
        Tue, 12 Dec 2023 09:04:15 -0800 (PST)
Message-ID: <95542550-5f95-4231-8210-79dc2419ce61@suse.com>
Date: Tue, 12 Dec 2023 18:04:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 29/39] xen/riscv: add definition of __read_mostly
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <7fec1c9f906ee120ebae606de59f9f70efb79aff.1700761381.git.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: <7fec1c9f906ee120ebae606de59f9f70efb79aff.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> The definition of __read_mostly should be removed in:
> https://lore.kernel.org/xen-devel/f25eb5c9-7c14-6e23-8535-2c66772b333e@suse.com/

Andrew, can we settle on what to do with that patch? If you don't like me
putting __read_mostly in xen/cache.h (consistent with __ro_after_init),
would you please make an alternative suggestion? Personally I don't really
understand why that patch hasn't long gone in. If further reorg is wanted,
it can always be done subsequently. In whatever adjustments to the patch
you want me to make to get past your objection, please make sure that it
doesn't end up scope creeping.

Jan

> The patch introduces it in arch-specific header to not
> block enabling of full Xen build for RISC-V.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  - update the commit message
> ---
>  xen/arch/riscv/include/asm/cache.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/xen/arch/riscv/include/asm/cache.h b/xen/arch/riscv/include/asm/cache.h
> index 69573eb051..94bd94db53 100644
> --- a/xen/arch/riscv/include/asm/cache.h
> +++ b/xen/arch/riscv/include/asm/cache.h
> @@ -3,4 +3,6 @@
>  #ifndef _ASM_RISCV_CACHE_H
>  #define _ASM_RISCV_CACHE_H
>  
> +#define __read_mostly __section(".data.read_mostly")
> +
>  #endif /* _ASM_RISCV_CACHE_H */



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 17:14:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 17:14:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653346.1019835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD6LF-0003EX-Cq; Tue, 12 Dec 2023 17:14:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653346.1019835; Tue, 12 Dec 2023 17: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 1rD6LF-0003EQ-9m; Tue, 12 Dec 2023 17:14:45 +0000
Received: by outflank-mailman (input) for mailman id 653346;
 Tue, 12 Dec 2023 17:14:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8c9m=HX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rD6LD-0003EK-EQ
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 17:14:43 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f0015391-9911-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 18:14:41 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2c9e9c2989dso80080711fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 09:14:41 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 w2-20020a2e9bc2000000b002ca01163d2bsm1569704ljj.84.2023.12.12.09.14.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Dec 2023 09:14:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0015391-9911-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702401281; x=1703006081; 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=2Z60KvZ5MnGTmqpE+D1c5OUlyXv64/7/OFBRqgli1qI=;
        b=bJYyyF351MxETa3Vy6WYy5xmNTFhKTGpun2I/0gVgOdIkcEubAPQJT40QgLcchuGaL
         MaCUhRaZvaFEWrlLbNDjGhUrfm3NFEKoPvB0Rbx8j7VmwzLpqmpQ4Dyml3jft4AgCRAw
         UVhzy2mEokzjieJE7jaWy3zGHqTBlxsoXinUWYmBEvVBUBoJ8Cp/9G7wHinT9Rzms9+O
         z2fYl5jbAuL0EOshR63jIKimAMNB4Q4ICNKDAxVAcBLtWGHfpU0bNocs6ePcqtNf4Oh6
         hcr1SskI+bYu54LSHfgM3IZC+uAymhOwblXuFSyP2qi7u55JZze1PjF3RwVoi0tY4SU1
         eMgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702401281; x=1703006081;
        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=2Z60KvZ5MnGTmqpE+D1c5OUlyXv64/7/OFBRqgli1qI=;
        b=XObKq52hmAdKVE6aO4uwK8EZxyMKlxmjEX9zrsZCEruct38EMegIyxInqKI3yzoz8A
         WRREaQhVtZisXl5J8rKizqwjK3TaL/rdovcMyIO22YqbvjXWX5qRlh0JEJV7IassITQi
         7S+B4XFtNsBjxrIeVwTcYZuIj7GOHHeScCKFR0V6AjTpG0I2Yzc1i87AL3L4CohZHPJ0
         aQiL9Ty7+mbN6pbU+TrF3xfS1ubQOmcu8z85qOAebT7Sb7W59sXvAknkBQ5WtPFrH5OF
         0d0SoiDVSwxSTEKphdHRUDVLthagIaPhdOQbeSK3PwKY/6H5+wyqRP7cS5k4lXIPtsod
         cDLw==
X-Gm-Message-State: AOJu0YzgqclrbK0tvBZ+FvNezBK8Vt1ANQn1AyGNYCWcyvram1kJ83mG
	pB6fS0LHSFsDYN8C9yWdnTUC2LyIsZFexg==
X-Google-Smtp-Source: AGHT+IHAjrGmShi/0/muM6LtXQc+D8oLCkO34+3jDlXxdTiPYIR8IHedFq1Pk5u1C+birM3oGdoyWQ==
X-Received: by 2002:a2e:a545:0:b0:2cc:202f:6266 with SMTP id e5-20020a2ea545000000b002cc202f6266mr1800841ljn.96.1702401280712;
        Tue, 12 Dec 2023 09:14:40 -0800 (PST)
Message-ID: <97b62b54099c78eb5b2e89c087280a9a45546380.camel@gmail.com>
Subject: Re: [PATCH v2 18/39] xen/riscv: introduce cmpxchg.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Tue, 12 Dec 2023 19:14:39 +0200
In-Reply-To: <9f0bac57-5851-4d40-9b9c-3f430d58b0b2@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <981cabb593fb4b5d8927071d456ec7016891fe71.1700761381.git.oleksii.kurochko@gmail.com>
	 <9f0bac57-5851-4d40-9b9c-3f430d58b0b2@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Tue, 2023-12-12 at 17:51 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V2:
> > 	- update the comment at the top of the header.
> > 	- change xen/lib.h to xen/bug.h.
> > 	- sort inclusion of headers properly.
> > ---
> > =C2=A0xen/arch/riscv/include/asm/cmpxchg.h | 379
> > +++++++++++++++++++++++++++
> > =C2=A01 file changed, 379 insertions(+)
> > =C2=A0create mode 100644 xen/arch/riscv/include/asm/cmpxchg.h
> >=20
> > diff --git a/xen/arch/riscv/include/asm/cmpxchg.h
> > b/xen/arch/riscv/include/asm/cmpxchg.h
> > new file mode 100644
> > index 0000000000..c535bc9660
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/cmpxchg.h
> > @@ -0,0 +1,379 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + *=C2=A0 Taken and modified from Linux.
>=20
> Depending on how heavily this file was modified, further adjustments
> may or
> may not be advisable. Can the description here please be non-empty to
> cover
> how close to the original the result is, plus also what version or
> commit
> you started from?
Sure. I'll add but it was only minor changes:

This header isn't changed to much in Linux kernel so this one version
can be used as a base:
https://elixir.bootlin.com/linux/latest/source/arch/riscv/include/asm/cmpxc=
hg.h#L310

The following was changed:
1. 	default: \
		BUILD_BUG();
  BUILD_BUG -> ASSERT_UNREACHABLE
2. Remove prefixes arch_ before some macros.

But it will be changed more as Xen uses xchg and cmpxchg with 1 and 2
bytes types, so it should be handled...

Anyway, I'll be happy with your comments, and I'll apply them in the
next patch version.

~ Oleksii




From xen-devel-bounces@lists.xenproject.org Tue Dec 12 17:39:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 17:39:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653349.1019845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD6ij-0003uZ-8Y; Tue, 12 Dec 2023 17:39:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653349.1019845; Tue, 12 Dec 2023 17:39:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD6ij-0003uS-5t; Tue, 12 Dec 2023 17:39:01 +0000
Received: by outflank-mailman (input) for mailman id 653349;
 Tue, 12 Dec 2023 17:39: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=y4OV=HX=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rD6ih-0003uJ-Oh
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 17:39:00 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 53201b07-9915-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 18:38:57 +0100 (CET)
Received: from mg.gitlab.com (69.90.74.34.bc.googleusercontent.com
 [34.74.90.69]) by
 fd9e10b19675 with SMTP id 65789aafec502225e0c186fb (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 12 Dec 2023 17:38:55 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 53201b07-9915-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702402735; x=1702409935; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=S4QTXD1BTqWDv/pK8zJsPYMTW7+pISOYwNcv+9Aup58=;
 b=dsR8HxH4KN1kB1Ct31rv932R96gtkpqIH2C1n9NLO0/98o7c2VG2pcWd5crjtPFM99A6w21gLu9DFLS1tO8zU5pOroDC6jA1ag8KVoQTQOhZuv3Z6HdaJG5eVv0DNur2/hhDkp8co5JOpjTBjfhPXUSNAX1JZ0c26rzUtII1DTI=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 12 Dec 2023 17:38:55 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65789aaf4c632_2c14433a01822e1@gitlab-sidekiq-catchall-v2-84d7b8dcd5-vd97r.mail>
Subject: xen | Failed pipeline for staging | 7fca0463
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65789aaf25988_2c14433a018211b";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1104070818
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65789aaf25988_2c14433a018211b
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1104070818 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 7fca0463 ( https://gitlab.com/xen-project/xen/-/commit/7fca0463c71ca5a5b5ba853dbb000a54635c8899 )
Commit Message: xen/spinlock: make spinlock initializers more r...
Commit Author: Juergen Gross ( https://gitlab.com/jgross1 )
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )


Pipeline #1104070818 ( https://gitlab.com/xen-project/xen/-/pipelines/1104070818 ) triggered by Ganis ( https://gitlab.com/ganis )
had 27 failed jobs.

Job #5733933854 ( https://gitlab.com/xen-project/xen/-/jobs/5733933854/raw )

Stage: build
Name: alpine-3.18-gcc-debug
Job #5733933842 ( https://gitlab.com/xen-project/xen/-/jobs/5733933842/raw )

Stage: build
Name: alpine-3.18-gcc
Job #5733934222 ( https://gitlab.com/xen-project/xen/-/jobs/5733934222/raw )

Stage: build
Name: centos-7-gcc-debug
Job #5733934402 ( https://gitlab.com/xen-project/xen/-/jobs/5733934402/raw )

Stage: build
Name: fedora-gcc-debug
Job #5733934551 ( https://gitlab.com/xen-project/xen/-/jobs/5733934551/raw )

Stage: build
Name: opensuse-leap-gcc-debug
Job #5733934546 ( https://gitlab.com/xen-project/xen/-/jobs/5733934546/raw )

Stage: build
Name: opensuse-leap-gcc
Job #5733934572 ( https://gitlab.com/xen-project/xen/-/jobs/5733934572/raw )

Stage: build
Name: opensuse-tumbleweed-gcc
Job #5733934584 ( https://gitlab.com/xen-project/xen/-/jobs/5733934584/raw )

Stage: test
Name: build-each-commit-gcc
Job #5733934573 ( https://gitlab.com/xen-project/xen/-/jobs/5733934573/raw )

Stage: build
Name: opensuse-tumbleweed-gcc-debug
Job #5733934386 ( https://gitlab.com/xen-project/xen/-/jobs/5733934386/raw )

Stage: build
Name: debian-bookworm-32-gcc-debug
Job #5733934394 ( https://gitlab.com/xen-project/xen/-/jobs/5733934394/raw )

Stage: build
Name: fedora-gcc
Job #5733934413 ( https://gitlab.com/xen-project/xen/-/jobs/5733934413/raw )

Stage: build
Name: ubuntu-trusty-gcc
Job #5733934425 ( https://gitlab.com/xen-project/xen/-/jobs/5733934425/raw )

Stage: build
Name: ubuntu-trusty-gcc-debug
Job #5733934489 ( https://gitlab.com/xen-project/xen/-/jobs/5733934489/raw )

Stage: build
Name: ubuntu-bionic-gcc
Job #5733934495 ( https://gitlab.com/xen-project/xen/-/jobs/5733934495/raw )

Stage: build
Name: ubuntu-bionic-gcc-debug
Job #5733934513 ( https://gitlab.com/xen-project/xen/-/jobs/5733934513/raw )

Stage: build
Name: ubuntu-focal-gcc-debug
Job #5733934509 ( https://gitlab.com/xen-project/xen/-/jobs/5733934509/raw )

Stage: build
Name: ubuntu-focal-gcc
Job #5733934213 ( https://gitlab.com/xen-project/xen/-/jobs/5733934213/raw )

Stage: build
Name: archlinux-gcc-debug
Job #5733934216 ( https://gitlab.com/xen-project/xen/-/jobs/5733934216/raw )

Stage: build
Name: centos-7-gcc
Job #5733933859 ( https://gitlab.com/xen-project/xen/-/jobs/5733933859/raw )

Stage: build
Name: debian-stretch-gcc-debug
Job #5733934208 ( https://gitlab.com/xen-project/xen/-/jobs/5733934208/raw )

Stage: build
Name: archlinux-gcc
Job #5733934225 ( https://gitlab.com/xen-project/xen/-/jobs/5733934225/raw )

Stage: build
Name: debian-stretch-gcc
Job #5733934286 ( https://gitlab.com/xen-project/xen/-/jobs/5733934286/raw )

Stage: build
Name: debian-stretch-32-gcc-debug
Job #5733934361 ( https://gitlab.com/xen-project/xen/-/jobs/5733934361/raw )

Stage: build
Name: debian-bookworm-gcc-debug
Job #5733934353 ( https://gitlab.com/xen-project/xen/-/jobs/5733934353/raw )

Stage: build
Name: debian-bookworm-gcc
Job #5733934464 ( https://gitlab.com/xen-project/xen/-/jobs/5733934464/raw )

Stage: build
Name: ubuntu-xenial-gcc
Job #5733934471 ( https://gitlab.com/xen-project/xen/-/jobs/5733934471/raw )

Stage: build
Name: ubuntu-xenial-gcc-debug

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | 7fca0463</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1104070818 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/7fca0463c71ca5a5b5=
ba853dbb000a54635c8899" style=3D"color: #3777b0; text-decoration: none;">=

7fca0463
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/spinlock: make spinlock initializers more r...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/0cac9c91cba4579c288f4be83125f17e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jgross1" style=3D"color: #3=
33333; text-decoration: none;">
Juergen Gross
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1104070818">#1104070818</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 27 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733933854" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733933842" style=3D=
"color: #3777b0; text-decoration: none;">
alpine-3.18-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934222" style=3D=
"color: #3777b0; text-decoration: none;">
centos-7-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934402" style=3D=
"color: #3777b0; text-decoration: none;">
fedora-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934551" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-leap-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934546" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-leap-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934572" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934584" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934573" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-tumbleweed-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934386" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934394" style=3D=
"color: #3777b0; text-decoration: none;">
fedora-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934413" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934425" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-trusty-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934489" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-bionic-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934495" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-bionic-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934513" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-focal-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934509" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-focal-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934213" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934216" style=3D=
"color: #3777b0; text-decoration: none;">
centos-7-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733933859" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934208" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934225" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934286" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934361" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934353" style=3D=
"color: #3777b0; text-decoration: none;">
debian-bookworm-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934464" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-xenial-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5733934471" style=3D=
"color: #3777b0; text-decoration: none;">
ubuntu-xenial-gcc-debug
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65789aaf25988_2c14433a018211b--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 17:43:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 17:43:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653383.1019855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD6nE-0007S4-Vk; Tue, 12 Dec 2023 17:43:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653383.1019855; Tue, 12 Dec 2023 17: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 1rD6nE-0007Rx-Sg; Tue, 12 Dec 2023 17:43:40 +0000
Received: by outflank-mailman (input) for mailman id 653383;
 Tue, 12 Dec 2023 17: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 1rD6nD-0007Qb-IG; Tue, 12 Dec 2023 17: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 1rD6nD-0004Tg-Fo; Tue, 12 Dec 2023 17: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 1rD6nD-0002Lj-8e; Tue, 12 Dec 2023 17:43:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rD6nD-0000z0-7w; Tue, 12 Dec 2023 17: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=gNeNhrcBdQxx4YPD0fqfwk4QQ1N5g2oZ/Tg4KHkQLsY=; b=Hp71PzR9JoMDAsHU0iJi5wH+wI
	pF/BtyUPZISPy+7sK08DpgU8/hOvppvRzSNGuNA6NHloXycBjRP4biMu+jwk9jPvVUkOHs1nBFc/3
	f4K1BKQ5NI6obod7aD/ithmasI+I+F4mRlLJxzbGCMkTKcEUTMqPuyaymChyjum2nIYc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184106-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184106: 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=7fca0463c71ca5a5b5ba853dbb000a54635c8899
X-Osstest-Versions-That:
    xen=cf40abbc7ff2a73eaaea84e919fc7762354e75ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 17:43:39 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-amd64                   6 xen-build                fail REGR. vs. 184102

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                  7fca0463c71ca5a5b5ba853dbb000a54635c8899
baseline version:
 xen                  cf40abbc7ff2a73eaaea84e919fc7762354e75ad

Last test of basis   184102  2023-12-12 11:00:28 Z    0 days
Testing same since   184106  2023-12-12 14:02:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Arnd Bergmann <arnd@arndb.de>
  Federico Serafini <federico.serafini@bugseng.com>
  George Dunlap <george.dunlap@cloud.com>
  Henry Wang <Henry.Wang@arm.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Michal Orzel <michal.orzel@amd.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.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 7fca0463c71ca5a5b5ba853dbb000a54635c8899
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Dec 12 14:05:19 2023 +0100

    xen/spinlock: make spinlock initializers more readable
    
    Use named member initializers instead of positional ones for the macros
    used to initialize structures.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit a77fcbc3899526dcbb10571d01a289c53d124515
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Dec 12 14:04:47 2023 +0100

    xen/spinlock: reduce lock profile ifdefs
    
    With some small adjustments to the LOCK_PROFILE_* macros some #ifdefs
    can be dropped from spinlock.c.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
    Acked-by: Julien Grall <jgrall@amazon.com>

commit 35431ecb9db8c925a595f652dfbd1d2641bd2ff0
Author: Federico Serafini <federico.serafini@bugseng.com>
Date:   Tue Dec 12 14:04:22 2023 +0100

    xen/arm: smmu: move phys_addr_t definition to linux-compat.h
    
    Both smmu and smmu-v3 (ported from Linux) define the typedef name
    "phys_addr_t": move the type definition to the common header
    linux-compat.h to address violations of MISRA C:2012 Rule 5.6
    ("A typedef name shall be a unique identifier").
    No functional change.
    
    Suggested-by: Jan Beulich <jbeulich@suse.com>
    Suggested-by: Julien Grall <julien@xen.org>
    Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Julien Grall <jgrall@amazon.com>

commit 889af18eee001b73383406c4ba1706dd8baaf0a9
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Tue Dec 12 14:03:58 2023 +0100

    xen/sched: address MISRA C:2012 Rule 2.1
    
    The break statement after the return statement is definitely unreachable
    and can be removed with no functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Acked-by: George Dunlap <george.dunlap@cloud.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

commit f0bb77bf734ed5833712205fb839ea03e98cadc7
Author: Federico Serafini <federico.serafini@bugseng.com>
Date:   Tue Dec 12 14:03:33 2023 +0100

    AMD/IOMMU: address violations of MISRA C:2012 Rule 8.2
    
    Add missing parameter names to address violations of MISRA C:2012
    Rule 8.2. Remove trailing spaces and use C standard types to comply
    with XEN coding style. 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>

commit 6d5e94ca7dc1a121b94e44c1a2eee678f58c9b38
Author: Federico Serafini <federico.serafini@bugseng.com>
Date:   Tue Dec 12 14:02:58 2023 +0100

    x86/mm: address violations of MISRA C:2012 Rule 8.2
    
    Add missing parameter names. 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>

commit fbc8cff877e5e0243a7bef3fbbc9d06a269051e8
Author: Federico Serafini <federico.serafini@bugseng.com>
Date:   Tue Dec 12 14:02:25 2023 +0100

    x86/mm: remove compat_subarch_memory_op()
    
    Remove remove compat_subarch_memory_op() declaration: there is no
    definition and there are no calls to such function in the XEN project.
    
    Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit 431ada87e574f004001193a4ad44dda435dd0361
Author: Federico Serafini <federico.serafini@bugseng.com>
Date:   Tue Dec 12 14:01:56 2023 +0100

    xen/acpi: address violations of MISRA C:2012 Rule 8.2
    
    Add missing parameter names. 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>

commit 190b7f49af6487a9665da63d43adc9d9a5fbd01e
Author: Michal Orzel <michal.orzel@amd.com>
Date:   Thu Nov 23 15:53:02 2023 +0100

    xen/arm: page: Avoid pointer overflow on cache clean & invalidate
    
    On Arm32, after cleaning and invalidating the last dcache line of the top
    domheap page i.e. VA = 0xfffff000 (as a result of flushing the page to
    RAM), we end up adding the value of a dcache line size to the pointer
    once again, which results in a pointer arithmetic overflow (with 64B line
    size, operation 0xffffffc0 + 0x40 overflows to 0x0). Such behavior is
    undefined and given the wide range of compiler versions we support, it is
    difficult to determine what could happen in such scenario.
    
    Modify clean_and_invalidate_dcache_va_range() as well as
    clean_dcache_va_range() and invalidate_dcache_va_range() due to similarity
    of handling to prevent pointer arithmetic overflow. Modify the loops to
    use an additional variable to store the index of the next cacheline.
    Add an assert to prevent passing a region that wraps around which is
    illegal and would end up in a page fault anyway (region 0-2MB is
    unmapped). Lastly, return early if size passed is 0.
    
    Note that on Arm64, we don't have this problem given that the max VA
    space we support is 48-bits.
    
    This is XSA-447 / CVE-2023-46837.
    
    Signed-off-by: Michal Orzel <michal.orzel@amd.com>
    Reviewed-by: Julien Grall <jgrall@amazon.com>

commit 0fb4b6b0ea8505fbd4888faa440212e878002494
Author: Henry Wang <Henry.Wang@arm.com>
Date:   Fri Dec 8 00:20:36 2023 +0800

    MAINTAINERS: Hand over the release manager role to Oleksii Kurochko
    
    I've finished the opportunity to do two releases (4.17 and 4.18)
    and Oleksii Kurochko has volunteered to be the next release manager.
    Hand over the role to him by changing the maintainership of the
    CHANGELOG.md.
    
    Signed-off-by: Henry Wang <Henry.Wang@arm.com>
    Acked-by: Julien Grall <jgrall@amazon.com>
    Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

commit 6619c6f8913a8c7b2b980dd49a430c62ce6ce5ab
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Dec 11 14:16:16 2023 +0100

    xen: remove asm/unaligned.h
    
    With include/xen/unaligned.h now dealing properly with unaligned
    accesses for all architectures, asm/unaligned.h can be removed and
    users can be switched to include xen/unaligned.h instead.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit 6c4be4950391d77b78e824d41115def397dbc487
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Dec 11 14:16:15 2023 +0100

    xen: make include/xen/unaligned.h usable on all architectures
    
    Instead of defining get_unaligned() and put_unaligned() in a way that
    is only supporting architectures allowing unaligned accesses, use the
    same approach as the Linux kernel and let the compiler do the
    decision how to generate the code for probably unaligned data accesses.
    
    Update include/xen/unaligned.h from include/asm-generic/unaligned.h of
    the Linux kernel.
    
    The generated code has been checked to be the same on x86.
    
    Modify the Linux variant to not use underscore prefixed identifiers,
    avoid unneeded parentheses and drop the 24-bit accessors.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 803f4e1eab7a
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit 3e3ff7f9cddfeb3d972bd20c4e0be5e08c6b3dcb
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Dec 11 14:16:14 2023 +0100

    xen/arm: set -mno-unaligned-access compiler option for Arm32
    
    As the hypervisor is disabling unaligned accesses for Arm32, set the
    -mno-unaligned-access compiler option for building. This will prohibit
    unaligned accesses when e.g. accessing 2- or 4-byte data items in
    packed data structures.
    
    Backport: 4.15+
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Acked-by: Julien Grall <jgrall@amazon.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 18:43:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 18:43:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653395.1019868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD7ic-0007iO-Bz; Tue, 12 Dec 2023 18:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653395.1019868; Tue, 12 Dec 2023 18: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 1rD7ic-0007iH-8n; Tue, 12 Dec 2023 18:42:58 +0000
Received: by outflank-mailman (input) for mailman id 653395;
 Tue, 12 Dec 2023 18: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 1rD7ib-0007iB-4W
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 18: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 1rD7ia-0005gO-TJ; Tue, 12 Dec 2023 18:42:56 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD7ia-00011S-Mc; Tue, 12 Dec 2023 18: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>
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=TiGXERAqz5de0HgG5Jrqd61Stq1kw2Z09W26ISHeiGU=; b=dXHeMwS7Xcyg6qdWNCUGXuvgxx
	ilIpJzLaOWIR8hc1e9KwQLRJ/DGAbjMAWs0UaAPR8YL2jgb+JV6rTOFN7fyyAE74HOCDvbCDFtnNc
	tveQuwnjUBkLXAa9eJFTxJ5ycycYrpJyNtrjoh8it8U9byHZ81C/bh8FRSvT9pa9K8bM=;
Message-ID: <ba842318-0d5e-4b8f-99f9-f0f1e2dda1ab@xen.org>
Date: Tue, 12 Dec 2023 18:42:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] xen/spinlock: make struct lock_profile
 rspinlock_t aware
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-7-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231212094725.22184-7-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/12/2023 09:47, Juergen Gross wrote:
> Struct lock_profile contains a pointer to the spinlock it is associated
> with. Prepare support of differing spinlock_t and rspinlock_t types by
> adding a type indicator of the pointer. Use the highest bit of the
> block_cnt member for this indicator in order to not grow the struct
> while hurting only the slow path with slightly less performant code.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Acked-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
> V2:
> - new patch
> ---
>   xen/common/spinlock.c      | 26 +++++++++++++++++++-------
>   xen/include/xen/spinlock.h | 10 ++++++++--
>   2 files changed, 27 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
> index c1a9ba1304..7d611d3d7d 100644
> --- a/xen/common/spinlock.c
> +++ b/xen/common/spinlock.c
> @@ -538,19 +538,31 @@ static void spinlock_profile_iterate(lock_profile_subfunc *sub, void *par)
>   static void cf_check spinlock_profile_print_elem(struct lock_profile *data,
>       int32_t type, int32_t idx, void *par)
>   {
> -    struct spinlock *lock = data->lock;
> +    unsigned int cpu;
> +    uint32_t lockval;
> +
> +    if ( data->is_rlock )
> +    {
> +        cpu = data->rlock->debug.cpu;
> +        lockval = data->rlock->tickets.head_tail;
> +    }
> +    else
> +    {
> +        cpu = data->lock->debug.cpu;
> +        lockval = data->lock->tickets.head_tail;
> +    }
>   
>       printk("%s ", lock_profile_ancs[type].name);
>       if ( type != LOCKPROF_TYPE_GLOBAL )
>           printk("%d ", idx);
> -    printk("%s: addr=%p, lockval=%08x, ", data->name, lock,
> -           lock->tickets.head_tail);
> -    if ( lock->debug.cpu == SPINLOCK_NO_CPU )
> +    printk("%s: addr=%p, lockval=%08x, ", data->name, data->lock, lockval);
> +    if ( cpu == SPINLOCK_NO_CPU )
>           printk("not locked\n");
>       else
> -        printk("cpu=%d\n", lock->debug.cpu);
> -    printk("  lock:%" PRId64 "(%" PRI_stime "), block:%" PRId64 "(%" PRI_stime ")\n",
> -           data->lock_cnt, data->time_hold, data->block_cnt, data->time_block);
> +        printk("cpu=%u\n", cpu);
> +    printk("  lock:%" PRIu64 "(%" PRI_stime "), block:%" PRIu64 "(%" PRI_stime ")\n",
> +           data->lock_cnt, data->time_hold, (uint64_t)data->block_cnt,
> +           data->time_block);
>   }
>   
>   void cf_check spinlock_profile_printall(unsigned char key)
> diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
> index 05b97c1e03..ac3bef267a 100644
> --- a/xen/include/xen/spinlock.h
> +++ b/xen/include/xen/spinlock.h
> @@ -76,13 +76,19 @@ union lock_debug { };
>   */
>   
>   struct spinlock;
> +/* Temporary hack until a dedicated struct rspinlock is existing. */
> +#define rspinlock spinlock
>   
>   struct lock_profile {
>       struct lock_profile *next;       /* forward link */
>       const char          *name;       /* lock name */
> -    struct spinlock     *lock;       /* the lock itself */
> +    union {
> +        struct spinlock *lock;       /* the lock itself */
> +        struct rspinlock *rlock;     /* the recursive lock itself */
> +    };
>       uint64_t            lock_cnt;    /* # of complete locking ops */
> -    uint64_t            block_cnt;   /* # of complete wait for lock */
> +    uint64_t            block_cnt:63; /* # of complete wait for lock */
> +    uint64_t            is_rlock:1;  /* use rlock pointer */

This is meant to act like a bool. So I would prefer if we use:

bool is_rwlock:1;

And then use true/false when set.

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

>       s_time_t            time_hold;   /* cumulated lock time */
>       s_time_t            time_block;  /* cumulated wait time */
>       s_time_t            time_locked; /* system time of last locking */

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 18:49:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 18:49:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653397.1019878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD7pF-0008SM-0A; Tue, 12 Dec 2023 18:49:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653397.1019878; Tue, 12 Dec 2023 18: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 1rD7pE-0008SF-TP; Tue, 12 Dec 2023 18:49:48 +0000
Received: by outflank-mailman (input) for mailman id 653397;
 Tue, 12 Dec 2023 18:49:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rD7pD-0008S9-Pj
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 18:49:47 +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 1rD7pC-0005nE-Dx; Tue, 12 Dec 2023 18:49:46 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD7pC-0001Ki-7U; Tue, 12 Dec 2023 18: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=NMNulCSSY+fiJCBxWCg/1JfP0Db90hd5C3zG8wTWeME=; b=tyhtJ/s1ElIOByVM6vXcphBP2T
	tcb0VRNyK0Y0v+w4LggIDlUjz3scSm/1vSbSbAiySQoYODPjtqxOCnDrQWMePt9yHgAZV+TPWuNxY
	rYeYRbL+L6Avu/JsWU9mmf6LTpmI4i+ImCjqPPW3Z8Zg46CSV/fq92sijdfk3gjnr/qY=;
Message-ID: <c7a969af-274b-4e92-b083-56059cbc98d6@xen.org>
Date: Tue, 12 Dec 2023 18:49:43 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] xen/spinlock: add explicit non-recursive locking
 functions
Content-Language: en-GB
To: Juergen Gross <jgross@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-8-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231212094725.22184-8-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 12/12/2023 09:47, Juergen Gross wrote:
> -#define spin_lock_init_prof(s, l) __spin_lock_init_prof(s, l, spinlock_t)
> -#define rspin_lock_init_prof(s, l) __spin_lock_init_prof(s, l, rspinlock_t)
> +#define spin_lock_init_prof(s, l)                                             \
> +    __spin_lock_init_prof(s, l, lock, spinlock_t, 0)
> +#define rspin_lock_init_prof(s, l)                                            \
> +    __spin_lock_init_prof(s, l, rlock, rspinlock_t, 1)
>   
>   void _lock_profile_register_struct(
>       int32_t type, struct lock_profile_qhead *qhead, int32_t idx);
> @@ -174,6 +179,7 @@ struct lock_profile_qhead { };
>   
>   #endif
>   
> +

Spurious change?

>   typedef union {
>       uint32_t head_tail;
>       struct {
> @@ -261,4 +267,12 @@ void rspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags);
>   /* Ensure a lock is quiescent between two critical operations. */
>   #define spin_barrier(l)               _spin_barrier(l)
>   
> +#define nrspin_trylock(l)    spin_trylock(l)
> +#define nrspin_lock(l)       spin_lock(l)
> +#define nrspin_unlock(l)     spin_unlock(l)
> +#define nrspin_lock_irq(l)   spin_lock_irq(l)
> +#define nrspin_unlock_irq(l) spin_unlock_irq(l)
> +#define nrspin_lock_irqsave(l, f)      spin_lock_irqsave(l, f)
> +#define nrspin_unlock_irqrestore(l, f) spin_unlock_irqrestore(l, f)

There is a comment describing [r]spinlock but not this new variant. Can 
you add one?

That said, I know this is existing code, but I have to admit this is a 
bit unclear why we are allowing an recursive spinlock to be 
non-recursive. To me it sounds like we are making the typesafe not very 
safe because it doesn't guarantee that we are not mixing the call 
nrspin_* with rspin_*.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 19:06:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 19:06:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653403.1019887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD850-00050J-Ac; Tue, 12 Dec 2023 19:06:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653403.1019887; Tue, 12 Dec 2023 19:06:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD850-00050C-7v; Tue, 12 Dec 2023 19:06:06 +0000
Received: by outflank-mailman (input) for mailman id 653403;
 Tue, 12 Dec 2023 19:06: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 1rD84y-000502-9Y; Tue, 12 Dec 2023 19:06: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 1rD84y-00065H-65; Tue, 12 Dec 2023 19:06: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 1rD84x-0000II-Nh; Tue, 12 Dec 2023 19:06:03 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rD84x-0003mh-L8; Tue, 12 Dec 2023 19:06:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=PLAdVz5my9OLKDT9iBWxVV9AT+Y5598MNnm+KTyTbkE=; b=SbF0d4nm6AoKOw68NZVZRQvkaE
	s/ZxMg/fuco6h/N/6b4xvpig1NWK8r2AxLv2eGVt3Xw+MlNo42I/HSf1FIagahWzn6H5mYC6ezRDP
	wq+s/tdvyD9riWj8dbFb72Qa+0ula5HRwYpcHh5AHTJ/gDHzfGmPOpG8e+oU0OpYeVTs=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184100-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184100: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-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-amd64-i386-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-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-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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1403131596fa77663708f6baa0fee8bf7b95eb5a
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 19:06:03 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 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-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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          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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1403131596fa77663708f6baa0fee8bf7b95eb5a
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    4 days
Failing since        184036  2023-12-08 10:40:52 Z    4 days    9 attempts
Testing same since   184094  2023-12-11 19:10:39 Z    0 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Paul Durrant <paul@xen.org>
  Simone Ballarin <simone.ballarin@bugseng.com>
  Stefano Stabellini <stefano.stabellini@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 1403131596fa77663708f6baa0fee8bf7b95eb5a
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Mon Dec 11 11:28:02 2023 +0100

    x86/viridian: make build_assertions static
    
    This is consistent with other instances of the same function
    and also resolves a violation of MISRA C:2012 Rule 8.4.
    
    No functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Acked-by: Paul Durrant <paul@xen.org>

commit f45e488e7bc96b43faa5078c8418c6f496e466c1
Author: Stefano Stabellini <stefano.stabellini@amd.com>
Date:   Mon Dec 11 11:27:20 2023 +0100

    docs/misra/rules.rst: add more rules
    
    Add the rules accepted in the last three MISRA C working group meetings.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit 519c7a1d589cc263f1d0e291f53fd33a9980a239
Author: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Date:   Mon Dec 11 11:27:07 2023 +0100

    xen: address violations of MISRA C:2012 Rule 14.4
    
    The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
    headline states:
    "The controlling expression of an if statement and the controlling
    expression of an iteration-statement shall have essentially Boolean type".
    
    Struct domain member is_dying is an anonymous enum designed to act as boolean.
    Add deviation to mark its uses in controlling expressions as deliberate.
    
    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>

commit 807321b6f355dc93dc77de7e44c7d9afb3e5f8a1
Author: Federico Serafini <federico.serafini@bugseng.com>
Date:   Mon Dec 11 11:26:16 2023 +0100

    x86/acpi: remove acpi_pic_sci_set_trigger()
    
    Remove apci_pic_set_trigger() declaration: there is no definition and there are
    no calls to such function in the XEN project.
    
    Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 19:10:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 19:10:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653409.1019901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD88q-0006IC-0i; Tue, 12 Dec 2023 19:10:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653409.1019901; Tue, 12 Dec 2023 19:10:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD88p-0006I5-Tw; Tue, 12 Dec 2023 19:10:03 +0000
Received: by outflank-mailman (input) for mailman id 653409;
 Tue, 12 Dec 2023 19:10: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 1rD88o-00060j-ED
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 19:10: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 1rD88o-0006A2-9h; Tue, 12 Dec 2023 19:10:02 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rD88o-0002I6-49; Tue, 12 Dec 2023 19:10:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=+XQ6KnlVYNDALtnIzN/lzBgk8lYuxWwVr4C58l30SeM=; b=TGucZz5qEsDQQSqi5Cj9QeQqrg
	k4be7B2qMJAkCrsbkgMNKcW+jbwkNEcwQpoNxPmzt+OLbPMUMcDbbUIi+0sj4SVRWig3+XuVhOs6l
	k7xGjQ5B/Kr90SdEnDA4gWNaJmiUifITaZUMF4Gj2CI+1EzqZN65vxN3BfC6f7MLpC+M=;
Message-ID: <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
Date: Tue, 12 Dec 2023 19:10:00 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231212094725.22184-9-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Juergen,

On 12/12/2023 09:47, Juergen Gross wrote:
> Add another function level in spinlock.c hiding the spinlock_t layout
> from the low level locking code.
> 
> This is done in preparation of introducing rspinlock_t for recursive
> locks without having to duplicate all of the locking code.

So all the fields you pass are the one from spinlock.

Looking at pahole after this series is applid, we have:

==== Debug + Lock profile ====

struct spinlock {
         spinlock_tickets_t         tickets;              /*     0     4 */
         union lock_debug           debug;                /*     4     4 */
         struct lock_profile *      profile;              /*     8     8 */

         /* size: 16, cachelines: 1, members: 3 */
         /* last cacheline: 16 bytes */
};
struct rspinlock {
         spinlock_tickets_t         tickets;              /*     0     4 */
         uint16_t                   recurse_cpu;          /*     4     2 */
         uint8_t                    recurse_cnt;          /*     6     1 */

         /* XXX 1 byte hole, try to pack */

         union lock_debug           debug;                /*     8     4 */

         /* XXX 4 bytes hole, try to pack */

         struct lock_profile *      profile;              /*    16     8 */

         /* size: 24, cachelines: 1, members: 5 */
         /* sum members: 19, holes: 2, sum holes: 5 */
         /* last cacheline: 24 bytes */
};


==== Debug ====

struct spinlock {
         spinlock_tickets_t         tickets;              /*     0     4 */
         union lock_debug           debug;                /*     4     4 */

         /* size: 8, cachelines: 1, members: 2 */
         /* last cacheline: 8 bytes */
};
struct rspinlock {
         spinlock_tickets_t         tickets;              /*     0     4 */
         uint16_t                   recurse_cpu;          /*     4     2 */
         uint8_t                    recurse_cnt;          /*     6     1 */

         /* XXX 1 byte hole, try to pack */

         union lock_debug           debug;                /*     8     4 */

         /* size: 12, cachelines: 1, members: 4 */
         /* sum members: 11, holes: 1, sum holes: 1 */
         /* last cacheline: 12 bytes */
};

==== Prod ====

struct spinlock {
         spinlock_tickets_t         tickets;              /*     0     4 */
         union lock_debug           debug;                /*     4     0 */

         /* size: 4, cachelines: 1, members: 2 */
         /* last cacheline: 4 bytes */
};
struct rspinlock {
         spinlock_tickets_t         tickets;              /*     0     4 */
         uint16_t                   recurse_cpu;          /*     4     2 */
         uint8_t                    recurse_cnt;          /*     6     1 */
         union lock_debug           debug;                /*     7     0 */

         /* size: 8, cachelines: 1, members: 4 */
         /* padding: 1 */
         /* last cacheline: 8 bytes */
};


I think we could embed spinlock_t in rspinlock_t without increasing 
rspinlock_t. Have you considered it? This could reduce the number of 
function level introduced in this series.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 20:00:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 20:00:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653415.1019913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD8v4-0008Nd-K0; Tue, 12 Dec 2023 19:59:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653415.1019913; Tue, 12 Dec 2023 19:59: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 1rD8v4-0008NW-HS; Tue, 12 Dec 2023 19:59:54 +0000
Received: by outflank-mailman (input) for mailman id 653415;
 Tue, 12 Dec 2023 19:59: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=y4OV=HX=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rD8v2-0008NQ-SD
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 19:59:53 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 0257331f-9929-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 20:59:51 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 afbf59a88228 with SMTP id 6578bbb54b5825497fa75c58 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 12 Dec 2023 19:59:49 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 0257331f-9929-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702411189; x=1702418389; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=QvWlxDV7C3WZ9q4w4Dd410VctLHNhYp9G7Ehy4JTu74=;
 b=g/7oiE+jFqKL7CYqCvmbaYfULGO0sUrI72mG/svNKPJSpImdyOq2TAO8VQunxOsaVb0KE+bkxoeOZqhmoIs3qIG0doaBHJIvMtja5vUc5QCRJVCvTgf4LPq5qBdGKrzkMQtIFbU0HnGT7RTljrE6hGP9vJ5gPv1WtvXcwY53ogM=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 12 Dec 2023 19:59:49 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6578bbb530856_2c95344523a@gitlab-sidekiq-catchall-v2-5df6bf9867-nwn28.mail>
Subject: xen | Successful pipeline for staging-4.18 | 1792d172
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6578bbb52788c_2c95344522fc";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1104134407
X-GitLab-Pipeline-Ref: staging-4.18
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

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



Pipeline #1104134407 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging-4.18 ( https://gitlab.com/xen-project/xen/-/commits/stagi=
ng-4.18 )

Commit: 1792d172 ( https://gitlab.com/xen-project/xen/-/commit/1792d1723b=
7fb45a20b145d2de4d233913b22c09 )
Commit Message: x86/x2apic: introduce a mixed physical/cluster ...
Commit Author: Roger Pau Monn=C3=A9
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1104134407 ( https://gitlab.com/xen-project/xen/-/pipelines/110=
4134407 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- =

You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging-4.18 | 1792d172</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1104134407 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging-4.18" style=3D"color: #333333; text-decoration: none;">
staging-4.18
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/1792d1723b7fb45a20=
b145d2de4d233913b22c09" style=3D"color: #3777b0; text-decoration: none;">=
1792d172</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
x86/x2apic: introduce a mixed physical/cluster ...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/a8e7984f7692e6b8c12ff2d6f17f1bb6?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Roger Pau Monn&#233;
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110413=
4407" style=3D"color: #3777b0; text-decoration: none;">#1104134407</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6578bbb52788c_2c95344522fc--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 20:01:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 20:01:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653442.1019923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD8wW-0001Ss-VM; Tue, 12 Dec 2023 20:01:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653442.1019923; Tue, 12 Dec 2023 20: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 1rD8wW-0001Sl-ST; Tue, 12 Dec 2023 20:01:24 +0000
Received: by outflank-mailman (input) for mailman id 653442;
 Tue, 12 Dec 2023 20:01:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=y4OV=HX=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rD8wW-0001Sd-5q
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 20:01:24 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 38924f20-9929-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 21:01:22 +0100 (CET)
Received: from mg.gitlab.com (26.226.74.34.bc.googleusercontent.com
 [34.74.226.26]) by
 93a2b985278e with SMTP id 6578bc0e056ba3f9707f141b (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 12 Dec 2023 20:01:18 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 38924f20-9929-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702411280; x=1702418480; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=vhIfVq9tDjrlfq6TOjJ1oMPfOTsT0F1GMOiaYFAJRE8=;
 b=gckNeeGNHyxmqYtNxNq8iQNYKM8dh/raJ0iggN8SL8uzcZ/IxYkImjdlzt0RiAIP5vITpiPb5QgPvofX+GtHw6tcb2o3UkElDGh/6ihfUjBy42pJ/k7X2SdyiYRebh1Z8g+AN4SKNv3kOmjBOXfbfCHpnZod8dEq6frSLbnKZcw=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 12 Dec 2023 20:01:17 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6578bc0dab733_2c952e0838af@gitlab-sidekiq-catchall-v2-5df6bf9867-5zdvz.mail>
Subject: xen | Failed pipeline for staging-4.15 | 6400013f
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6578bc0d9487b_2c952e0837fd";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1104143214
X-GitLab-Pipeline-Ref: staging-4.15
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6578bc0d9487b_2c952e0837fd
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1104143214 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging-4.15 ( https://gitlab.com/xen-project/xen/-/commits/staging-4.15 )

Commit: 6400013f ( https://gitlab.com/xen-project/xen/-/commit/6400013f07e5c7fec9f68821755aed94683b663c )
Commit Message: xen/arm: page: Avoid pointer overflow on cache ...
Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )


Pipeline #1104143214 ( https://gitlab.com/xen-project/xen/-/pipelines/1104143214 ) triggered by Ganis ( https://gitlab.com/ganis )
had 18 failed jobs.

Job #5734412914 ( https://gitlab.com/xen-project/xen/-/jobs/5734412914/raw )

Stage: build
Name: archlinux-gcc-debug
Job #5734413215 ( https://gitlab.com/xen-project/xen/-/jobs/5734413215/raw )

Stage: build
Name: debian-unstable-gcc-arm64
Job #5734413038 ( https://gitlab.com/xen-project/xen/-/jobs/5734413038/raw )

Stage: build
Name: debian-unstable-gcc-debug
Job #5734412977 ( https://gitlab.com/xen-project/xen/-/jobs/5734412977/raw )

Stage: build
Name: debian-stretch-clang
Job #5734413005 ( https://gitlab.com/xen-project/xen/-/jobs/5734413005/raw )

Stage: build
Name: debian-stretch-32-clang-debug
Job #5734412993 ( https://gitlab.com/xen-project/xen/-/jobs/5734412993/raw )

Stage: build
Name: debian-stretch-gcc
Job #5734413030 ( https://gitlab.com/xen-project/xen/-/jobs/5734413030/raw )

Stage: build
Name: debian-unstable-clang-debug
Job #5734413000 ( https://gitlab.com/xen-project/xen/-/jobs/5734413000/raw )

Stage: build
Name: debian-stretch-gcc-debug
Job #5734412912 ( https://gitlab.com/xen-project/xen/-/jobs/5734412912/raw )

Stage: build
Name: archlinux-gcc
Job #5734412983 ( https://gitlab.com/xen-project/xen/-/jobs/5734412983/raw )

Stage: build
Name: debian-stretch-clang-debug
Job #5734413016 ( https://gitlab.com/xen-project/xen/-/jobs/5734413016/raw )

Stage: build
Name: debian-stretch-32-gcc-debug
Job #5734413142 ( https://gitlab.com/xen-project/xen/-/jobs/5734413142/raw )

Stage: build
Name: opensuse-leap-clang-debug
Job #5734413033 ( https://gitlab.com/xen-project/xen/-/jobs/5734413033/raw )

Stage: build
Name: debian-unstable-gcc
Job #5734413023 ( https://gitlab.com/xen-project/xen/-/jobs/5734413023/raw )

Stage: build
Name: debian-unstable-clang
Job #5734413051 ( https://gitlab.com/xen-project/xen/-/jobs/5734413051/raw )

Stage: build
Name: debian-unstable-32-gcc-debug
Job #5734413048 ( https://gitlab.com/xen-project/xen/-/jobs/5734413048/raw )

Stage: build
Name: debian-unstable-32-clang-debug
Job #5734413138 ( https://gitlab.com/xen-project/xen/-/jobs/5734413138/raw )

Stage: build
Name: opensuse-leap-clang
Job #5734413225 ( https://gitlab.com/xen-project/xen/-/jobs/5734413225/raw )

Stage: build
Name: debian-unstable-gcc-debug-arm64

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging-4.15 | 6400013f</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1104143214 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging-4.15" style=3D"color: #333333; text-decoration: none;">
staging-4.15
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/6400013f07e5c7fec9=
f68821755aed94683b663c" style=3D"color: #3777b0; text-decoration: none;">=

6400013f
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: page: Avoid pointer overflow on cache ...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/47e2f2ac4637bce0cc380dba59a9412f?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/orzelmichal" style=3D"color=
: #333333; text-decoration: none;">
Michal Orzel
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">Committed by</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1104143214">#1104143214</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 18 failed jobs
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed jobs
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734412914" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413215" style=3D=
"color: #3777b0; text-decoration: none;">
debian-unstable-gcc-arm64
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413038" style=3D=
"color: #3777b0; text-decoration: none;">
debian-unstable-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734412977" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-clang
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413005" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-32-clang-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734412993" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413030" style=3D=
"color: #3777b0; text-decoration: none;">
debian-unstable-clang-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413000" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734412912" style=3D=
"color: #3777b0; text-decoration: none;">
archlinux-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734412983" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-clang-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413016" style=3D=
"color: #3777b0; text-decoration: none;">
debian-stretch-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413142" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-leap-clang-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413033" style=3D=
"color: #3777b0; text-decoration: none;">
debian-unstable-gcc
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413023" style=3D=
"color: #3777b0; text-decoration: none;">
debian-unstable-clang
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413051" style=3D=
"color: #3777b0; text-decoration: none;">
debian-unstable-32-gcc-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413048" style=3D=
"color: #3777b0; text-decoration: none;">
debian-unstable-32-clang-debug
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413138" style=3D=
"color: #3777b0; text-decoration: none;">
opensuse-leap-clang
</a>

</td>
</tr>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
build
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5734413225" style=3D=
"color: #3777b0; text-decoration: none;">
debian-unstable-gcc-debug-arm64
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6578bc0d9487b_2c952e0837fd--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 20:18:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 20:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653494.1019933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9D3-0004qA-DB; Tue, 12 Dec 2023 20:18:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653494.1019933; Tue, 12 Dec 2023 20:18:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9D3-0004q3-Ai; Tue, 12 Dec 2023 20:18:29 +0000
Received: by outflank-mailman (input) for mailman id 653494;
 Tue, 12 Dec 2023 20:18:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=y4OV=HX=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rD9D2-0004px-Hw
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 20:18:28 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 9adcbe5b-992b-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 21:18:26 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 2166113eb8f8 with SMTP id 6578c0104b5825497fc43699 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 12 Dec 2023 20:18:24 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 9adcbe5b-992b-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702412304; x=1702419504; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=GIA6eXbUswXVriB8P9TI8Cd4CV8F23FhBz1BXy3UhAo=;
 b=K4fEeP3ugecAtWxYx5JLtZrIxbh40EGsZYgURuii40V2v/wC2ZbotOKgxQtjnmvplHfvioJI1escNMW+2eHMM106EKGTtAp/Drqb/dj5xKei3JAcQq5sKH2Zhl7rlFJnh4QQeloXWNINrnK65PKRZlVlIKOYOvf+E03US0XFh6g=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 12 Dec 2023 20:18:24 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6578c0105d479_2c99598645b@gitlab-sidekiq-catchall-v2-5df6bf9867-tzrgm.mail>
Subject: xen | Successful pipeline for staging-4.17 | 958706fd
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6578c010520ee_2c99598644e2";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1104146065
X-GitLab-Pipeline-Ref: staging-4.17
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6578c010520ee_2c99598644e2
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1104146065 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging-4.17 ( https://gitlab.com/xen-project/xen/-/commits/staging-4.17 )

Commit: 958706fd ( https://gitlab.com/xen-project/xen/-/commit/958706fd2e178ffe8e5597b05b694b494e24258b )
Commit Message: xen/arm: page: Avoid pointer overflow on cache ...
Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1104146065 ( https://gitlab.com/xen-project/xen/-/pipelines/1104146065 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 84 jobs in 2 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging-4.17 | 958706fd</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1104146065 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging-4.17" style=3D"color: #333333; text-decoration: none;">
staging-4.17
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/958706fd2e178ffe8e=
5597b05b694b494e24258b" style=3D"color: #3777b0; text-decoration: none;">=
958706fd</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: page: Avoid pointer overflow on cache ...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/47e2f2ac4637bce0cc380dba59a9412f?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/orzelmichal" style=3D"color=
: #333333; text-decoration: none;">
Michal Orzel
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110414=
6065" style=3D"color: #3777b0; text-decoration: none;">#1104146065</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 84 jobs in 2 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6578c010520ee_2c99598644e2--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 20:20:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 20:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653521.1019943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9Et-0006WW-Pf; Tue, 12 Dec 2023 20:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653521.1019943; Tue, 12 Dec 2023 20: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 1rD9Et-0006WP-NA; Tue, 12 Dec 2023 20:20:23 +0000
Received: by outflank-mailman (input) for mailman id 653521;
 Tue, 12 Dec 2023 20:20: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=y4OV=HX=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rD9Es-0006TO-MI
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 20:20:22 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id df7fe49f-992b-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 21:20:21 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 87e6332f9aab with SMTP id 6578c08380c53add00ea3198 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 12 Dec 2023 20:20:19 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: df7fe49f-992b-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702412419; x=1702419619; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=6Mpeo/5btTy1cQjp2MaQIiN1rRLPlKSq3/jaRMOqbEc=;
 b=DRqkkDTF+yknOe0vlGNXT23T3HhBxKgk6eK0ojsicej6Qm4EbkmzfWofWauDXmJ4c7jAgoIgWhqgObYnKqNhd+LgqaZO3ioSh+hqc6x+oh3avVJY85c5EBOqxcJIlDkwE+tpvNRVtf67yo11hepm/N6hFbWJIbSJNoVVIOjEvOQ=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 12 Dec 2023 20:20:19 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6578c08361458_2c952b82163a@gitlab-sidekiq-catchall-v2-5df6bf9867-cbd7h.mail>
Subject: xen | Successful pipeline for staging-4.16 | e7c3d6ce
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6578c08356c25_2c952b821549";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1104145725
X-GitLab-Pipeline-Ref: staging-4.16
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6578c08356c25_2c952b821549
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1104145725 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging-4.16 ( https://gitlab.com/xen-project/xen/-/commits/staging-4.16 )

Commit: e7c3d6ce ( https://gitlab.com/xen-project/xen/-/commit/e7c3d6ceaf73120098f9213fd12f79fd50e8e588 )
Commit Message: xen/arm: page: Avoid pointer overflow on cache ...
Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1104145725 ( https://gitlab.com/xen-project/xen/-/pipelines/1104145725 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 77 jobs in 2 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging-4.16 | e7c3d6ce</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1104145725 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging-4.16" style=3D"color: #333333; text-decoration: none;">
staging-4.16
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/e7c3d6ceaf73120098=
f9213fd12f79fd50e8e588" style=3D"color: #3777b0; text-decoration: none;">=
e7c3d6ce</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: page: Avoid pointer overflow on cache ...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/47e2f2ac4637bce0cc380dba59a9412f?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/orzelmichal" style=3D"color=
: #333333; text-decoration: none;">
Michal Orzel
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110414=
5725" style=3D"color: #3777b0; text-decoration: none;">#1104145725</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 77 jobs in 2 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6578c08356c25_2c952b821549--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 20:31:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 20:31:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653566.1019964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9PQ-0000Nf-1H; Tue, 12 Dec 2023 20:31:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653566.1019964; Tue, 12 Dec 2023 20:31:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9PP-0000NY-Ue; Tue, 12 Dec 2023 20:31:15 +0000
Received: by outflank-mailman (input) for mailman id 653566;
 Tue, 12 Dec 2023 20:31:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Lmm=HX=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1rD9PP-0000Lg-8n
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 20:31:15 +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 6295bae3-992d-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 21:31:11 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id E872820159;
 Tue, 12 Dec 2023 21:31:09 +0100 (CET)
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 R_Ot7AJtn7ap; Tue, 12 Dec 2023 21:31:09 +0100 (CET)
Received: from begin.home (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 ADFB120156;
 Tue, 12 Dec 2023 21:31:09 +0100 (CET)
Received: from samy by begin.home with local (Exim 4.97)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1rD9PJ-00000006Ph6-1Mkl; Tue, 12 Dec 2023 21:31:09 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6295bae3-992d-11ee-9b0f-b553b5be7939
Date: Tue, 12 Dec 2023 21:31:09 +0100
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: call event handlers always with interrupts
 off
Message-ID: <20231212203109.6lrewvlvjgv5wuml@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: <20231211134827.7130-1-jgross@suse.com>
 <20231211134827.7130-2-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231211134827.7130-2-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 11 dÃ©c. 2023 14:48:25 +0100, a ecrit:
> When unmasking an event channel the associated event handler can be
> called with interrupts enabled when not running as a PV guest.
> 
> This can result in hard to debug races in case e.g. a handler is
> registered for multiple events or when the handler is not using a lock
> as it assumes to have interrupts disabled.
> 
> Instead of using the PV interrupt disabling points just before calling
> the handler, do the disabling once at the very start of
> force_evtchn_callback().
> 
> Replace the evtchn_upcall_mask test in unmask_evtchn() with the more
> appropriate irqs_disabled() test.
> 
> As a precaution add a test to do_hypervisor_callback() that interrupts
> are really disabled and crash in case this is not true.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Thanks!

> ---
>  hypervisor.c | 26 +++++++++-----------------
>  1 file changed, 9 insertions(+), 17 deletions(-)
> 
> diff --git a/hypervisor.c b/hypervisor.c
> index f2cbbc1c..5309daa3 100644
> --- a/hypervisor.c
> +++ b/hypervisor.c
> @@ -102,6 +102,8 @@ void do_hypervisor_callback(struct pt_regs *regs)
>      shared_info_t *s = HYPERVISOR_shared_info;
>      vcpu_info_t   *vcpu_info = &s->vcpu_info[cpu];
>  
> +    BUG_ON(!irqs_disabled());
> +
>      in_callback = 1;
>     
>      vcpu_info->evtchn_upcall_pending = 0;
> @@ -131,27 +133,19 @@ void do_hypervisor_callback(struct pt_regs *regs)
>  
>  void force_evtchn_callback(void)
>  {
> -#ifdef XEN_HAVE_PV_UPCALL_MASK
> -    int save;
> -#endif
>      vcpu_info_t *vcpu;
> +    unsigned long flags;
> +
> +    local_irq_save(flags);
> +
>      vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()];
> -#ifdef XEN_HAVE_PV_UPCALL_MASK
> -    save = vcpu->evtchn_upcall_mask;
> -#endif
>  
>      while (vcpu->evtchn_upcall_pending) {
> -#ifdef XEN_HAVE_PV_UPCALL_MASK
> -        vcpu->evtchn_upcall_mask = 1;
> -#endif
> -        barrier();
>          do_hypervisor_callback(NULL);
>          barrier();
> -#ifdef XEN_HAVE_PV_UPCALL_MASK
> -        vcpu->evtchn_upcall_mask = save;
> -        barrier();
> -#endif
>      };
> +
> +    local_irq_restore(flags);
>  }
>  
>  inline void mask_evtchn(uint32_t port)
> @@ -177,9 +171,7 @@ inline void unmask_evtchn(uint32_t port)
>                &vcpu_info->evtchn_pending_sel) )
>      {
>          vcpu_info->evtchn_upcall_pending = 1;
> -#ifdef XEN_HAVE_PV_UPCALL_MASK
> -        if ( !vcpu_info->evtchn_upcall_mask )
> -#endif
> +        if ( !irqs_disabled() )
>              force_evtchn_callback();
>      }
>  }
> -- 
> 2.35.3
> 

-- 
Samuel
---
Pour une Ã©valuation indÃ©pendante, transparente et rigoureuse !
Je soutiens la Commission d'Ã‰valuation de l'Inria.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 20:32:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 20:32:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653572.1019978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9QR-000108-Bf; Tue, 12 Dec 2023 20:32:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653572.1019978; Tue, 12 Dec 2023 20:32:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9QR-000101-8i; Tue, 12 Dec 2023 20:32:19 +0000
Received: by outflank-mailman (input) for mailman id 653572;
 Tue, 12 Dec 2023 20:32: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=/Lmm=HX=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1rD9QQ-0000xX-B2
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 20:32:18 +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 88dd4b32-992d-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 21:32:14 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 4C01120159;
 Tue, 12 Dec 2023 21:32:14 +0100 (CET)
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 jqn5twaUrOYB; Tue, 12 Dec 2023 21:32:14 +0100 (CET)
Received: from begin.home (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 3632720156;
 Tue, 12 Dec 2023 21:32:14 +0100 (CET)
Received: from samy by begin.home with local (Exim 4.97)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1rD9QL-00000006Phm-3nm2; Tue, 12 Dec 2023 21:32:13 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88dd4b32-992d-11ee-9b0f-b553b5be7939
Date: Tue, 12 Dec 2023 21:32:13 +0100
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: drop in_callback variable
Message-ID: <20231212203213.whjfj73mixapitrg@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: <20231211134827.7130-1-jgross@suse.com>
 <20231211134827.7130-3-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231211134827.7130-3-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 11 dÃ©c. 2023 14:48:26 +0100, a ecrit:
> Now that do_hypervisor_callback() is always called with interrupts off
> the in_callback variable meant to handle recursive calls of
> do_hypervisor_callback() can be dropped.
> 
> As a precaution add a test to do_hypervisor_callback() that interrupts
> are really disabled and crash in case this is not true.

That paragraph was for the previous commit ;)

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

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Thanks!

> ---
>  hypervisor.c         |  6 ------
>  include/hypervisor.h |  2 --
>  sched.c              | 11 -----------
>  3 files changed, 19 deletions(-)
> 
> diff --git a/hypervisor.c b/hypervisor.c
> index 5309daa3..6facce3e 100644
> --- a/hypervisor.c
> +++ b/hypervisor.c
> @@ -37,8 +37,6 @@ EXPORT_SYMBOL(hypercall_page);
>      ((sh)->evtchn_pending[idx] &                \
>       ~(sh)->evtchn_mask[idx])
>  
> -int in_callback;
> -
>  #ifndef CONFIG_PARAVIRT
>  extern shared_info_t shared_info;
>  
> @@ -104,8 +102,6 @@ void do_hypervisor_callback(struct pt_regs *regs)
>  
>      BUG_ON(!irqs_disabled());
>  
> -    in_callback = 1;
> -   
>      vcpu_info->evtchn_upcall_pending = 0;
>      /* NB x86. No need for a barrier here -- XCHG is a barrier on x86. */
>  #if !defined(__i386__) && !defined(__x86_64__)
> @@ -127,8 +123,6 @@ void do_hypervisor_callback(struct pt_regs *regs)
>              do_event(port, regs);
>          }
>      }
> -
> -    in_callback = 0;
>  }
>  
>  void force_evtchn_callback(void)
> diff --git a/include/hypervisor.h b/include/hypervisor.h
> index 1d092719..b852a42a 100644
> --- a/include/hypervisor.h
> +++ b/include/hypervisor.h
> @@ -50,6 +50,4 @@ void mask_evtchn(uint32_t port);
>  void unmask_evtchn(uint32_t port);
>  void clear_evtchn(uint32_t port);
>  
> -extern int in_callback;
> -
>  #endif /* __HYPERVISOR_H__ */
> diff --git a/sched.c b/sched.c
> index e162cb60..3335efa0 100644
> --- a/sched.c
> +++ b/sched.c
> @@ -76,11 +76,6 @@ void schedule(void)
>      prev = current;
>      local_irq_save(flags); 
>  
> -    if (in_callback) {
> -        printk("Must not call schedule() from a callback\n");
> -        BUG();
> -    }
> -
>      do {
>          /* Examine all threads.
>             Find a runnable thread, but also wake up expired ones and find the
> @@ -151,15 +146,12 @@ struct thread* create_thread(char *name, void (*function)(void *), void *data)
>  EXPORT_SYMBOL(create_thread);
>  
>  #ifdef HAVE_LIBC
> -static struct _reent callback_reent;
>  struct _reent *__getreent(void)
>  {
>      struct _reent *_reent;
>  
>      if (!threads_started)
>          _reent = _impure_ptr;
> -    else if (in_callback)
> -        _reent = &callback_reent;
>      else
>          _reent = &get_current()->reent;
>  
> @@ -246,9 +238,6 @@ void init_sched(void)
>  {
>      printk("Initialising scheduler\n");
>  
> -#ifdef HAVE_LIBC
> -    _REENT_INIT_PTR((&callback_reent))
> -#endif
>      idle_thread = create_thread("Idle", idle_thread_fn, NULL);
>  }
>  
> -- 
> 2.35.3
> 

-- 
Samuel
---
Pour une Ã©valuation indÃ©pendante, transparente et rigoureuse !
Je soutiens la Commission d'Ã‰valuation de l'Inria.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 20:33:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 20:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653578.1019992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9Rr-0001aR-OY; Tue, 12 Dec 2023 20:33:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653578.1019992; Tue, 12 Dec 2023 20:33: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 1rD9Rr-0001aD-KT; Tue, 12 Dec 2023 20:33:47 +0000
Received: by outflank-mailman (input) for mailman id 653578;
 Tue, 12 Dec 2023 20:33: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=/Lmm=HX=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1rD9Rq-0001Zn-MI
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 20:33:46 +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 bd7a46c9-992d-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 21:33:42 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id 8D7C320159;
 Tue, 12 Dec 2023 21:33:42 +0100 (CET)
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 DsiAfeAZfdcf; Tue, 12 Dec 2023 21:33:42 +0100 (CET)
Received: from begin.home (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 7529220156;
 Tue, 12 Dec 2023 21:33:42 +0100 (CET)
Received: from samy by begin.home with local (Exim 4.97)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1rD9Rm-00000006PiE-0hH1; Tue, 12 Dec 2023 21:33:42 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd7a46c9-992d-11ee-9b0f-b553b5be7939
Date: Tue, 12 Dec 2023 21:33:42 +0100
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: cleanup hypervisor.c
Message-ID: <20231212203342.ky7hzaaj5gm7fydf@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: <20231211134827.7130-1-jgross@suse.com>
 <20231211134827.7130-4-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231211134827.7130-4-jgross@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)

Juergen Gross, le lun. 11 dÃ©c. 2023 14:48:27 +0100, a ecrit:
> Do the following cleanups in hypervisor.c:
> 
> - Let hypervisor.c conform to the coding style.
> - Drop the bogus "inline" attributes of exported functions.
> - Replace a always zero cpu variable with smp_processor_id() as
>   elsewhere in the code.
> - Replace "if () BUG()" with BUG_ON() in case the condition has no
>   side effects.
> - Drop the unused cpu parameter from the active_evtchns() macro.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Thanks!

> ---
>  hypervisor.c | 62 ++++++++++++++++++++++++++--------------------------
>  1 file changed, 31 insertions(+), 31 deletions(-)
> 
> diff --git a/hypervisor.c b/hypervisor.c
> index 6facce3e..ba535556 100644
> --- a/hypervisor.c
> +++ b/hypervisor.c
> @@ -1,27 +1,27 @@
>  /******************************************************************************
>   * hypervisor.c
> - * 
> + *
>   * Communication to/from hypervisor.
> - * 
> + *
>   * Copyright (c) 2002-2003, K A Fraser
>   * Copyright (c) 2005, Grzegorz Milos, gm281@cam.ac.uk,Intel Research Cambridge
> - * 
> + *
>   * Permission is hereby granted, free of charge, to any person obtaining a copy
>   * of this software and associated documentation files (the "Software"), to
>   * deal in the Software without restriction, including without limitation the
>   * 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.
>   */
>  
> @@ -33,9 +33,8 @@
>  
>  EXPORT_SYMBOL(hypercall_page);
>  
> -#define active_evtchns(cpu,sh,idx)              \
> -    ((sh)->evtchn_pending[idx] &                \
> -     ~(sh)->evtchn_mask[idx])
> +#define active_evtchns(sh, idx)                           \
> +    ((sh)->evtchn_pending[idx] & ~(sh)->evtchn_mask[idx])
>  
>  #ifndef CONFIG_PARAVIRT
>  extern shared_info_t shared_info;
> @@ -48,10 +47,10 @@ int hvm_get_parameter(int idx, uint64_t *value)
>      xhv.domid = DOMID_SELF;
>      xhv.index = idx;
>      ret = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv);
> -    if ( ret < 0 )
> -        BUG();
> +    BUG_ON(ret < 0);
>  
>      *value = xhv.value;
> +
>      return ret;
>  }
>  
> @@ -62,6 +61,7 @@ int hvm_set_parameter(int idx, uint64_t value)
>      xhv.domid = DOMID_SELF;
>      xhv.index = idx;
>      xhv.value = value;
> +
>      return HYPERVISOR_hvm_op(HVMOP_set_param, &xhv);
>  }
>  
> @@ -87,18 +87,15 @@ void unmap_shared_info(void)
>      xrtp.gpfn = virt_to_pfn(&shared_info);
>      if ( HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrtp) != 0 )
>          BUG();
> -
> -    return;
>  }
>  #endif
>  
>  void do_hypervisor_callback(struct pt_regs *regs)
>  {
> -    unsigned long  l1, l2, l1i, l2i;
> -    unsigned int   port;
> -    int            cpu = 0;
> +    unsigned long l1, l2, l1i, l2i;
> +    unsigned int port;
>      shared_info_t *s = HYPERVISOR_shared_info;
> -    vcpu_info_t   *vcpu_info = &s->vcpu_info[cpu];
> +    vcpu_info_t *vcpu_info = &s->vcpu_info[smp_processor_id()];
>  
>      BUG_ON(!irqs_disabled());
>  
> @@ -113,13 +110,13 @@ void do_hypervisor_callback(struct pt_regs *regs)
>      {
>          l1i = __ffs(l1);
>          l1 &= ~(1UL << l1i);
> -        
> -        while ( (l2 = active_evtchns(cpu, s, l1i)) != 0 )
> +
> +        while ( (l2 = active_evtchns(s, l1i)) != 0 )
>          {
>              l2i = __ffs(l2);
>              l2 &= ~(1UL << l2i);
>  
> -            port = (l1i * (sizeof(unsigned long) * 8)) + l2i;
> +            port = l1i * sizeof(unsigned long) * 8 + l2i;
>              do_event(port, regs);
>          }
>      }
> @@ -134,7 +131,8 @@ void force_evtchn_callback(void)
>  
>      vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()];
>  
> -    while (vcpu->evtchn_upcall_pending) {
> +    while ( vcpu->evtchn_upcall_pending )
> +    {
>          do_hypervisor_callback(NULL);
>          barrier();
>      };
> @@ -142,14 +140,15 @@ void force_evtchn_callback(void)
>      local_irq_restore(flags);
>  }
>  
> -inline void mask_evtchn(uint32_t port)
> +void mask_evtchn(uint32_t port)
>  {
>      shared_info_t *s = HYPERVISOR_shared_info;
> +
>      synch_set_bit(port, &s->evtchn_mask[0]);
>  }
>  EXPORT_SYMBOL(mask_evtchn);
>  
> -inline void unmask_evtchn(uint32_t port)
> +void unmask_evtchn(uint32_t port)
>  {
>      shared_info_t *s = HYPERVISOR_shared_info;
>      vcpu_info_t *vcpu_info = &s->vcpu_info[smp_processor_id()];
> @@ -160,9 +159,9 @@ inline void unmask_evtchn(uint32_t port)
>       * The following is basically the equivalent of 'hw_resend_irq'. Just like
>       * a real IO-APIC we 'lose the interrupt edge' if the channel is masked.
>       */
> -    if (  synch_test_bit        (port,    &s->evtchn_pending[0]) && 
> +    if ( synch_test_bit(port, &s->evtchn_pending[0]) &&
>           !synch_test_and_set_bit(port / (sizeof(unsigned long) * 8),
> -              &vcpu_info->evtchn_pending_sel) )
> +                                 &vcpu_info->evtchn_pending_sel) )
>      {
>          vcpu_info->evtchn_upcall_pending = 1;
>          if ( !irqs_disabled() )
> @@ -171,9 +170,10 @@ inline void unmask_evtchn(uint32_t port)
>  }
>  EXPORT_SYMBOL(unmask_evtchn);
>  
> -inline void clear_evtchn(uint32_t port)
> +void clear_evtchn(uint32_t port)
>  {
>      shared_info_t *s = HYPERVISOR_shared_info;
> +
>      synch_clear_bit(port, &s->evtchn_pending[0]);
>  }
>  EXPORT_SYMBOL(clear_evtchn);
> -- 
> 2.35.3
> 

-- 
Samuel
---
Pour une Ã©valuation indÃ©pendante, transparente et rigoureuse !
Je soutiens la Commission d'Ã‰valuation de l'Inria.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 20:58:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 20:58:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653597.1020001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9pf-0005aX-Lr; Tue, 12 Dec 2023 20:58:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653597.1020001; Tue, 12 Dec 2023 20: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 1rD9pf-0005aQ-J3; Tue, 12 Dec 2023 20:58:23 +0000
Received: by outflank-mailman (input) for mailman id 653597;
 Tue, 12 Dec 2023 20:58: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 1rD9pd-0005aG-P0; Tue, 12 Dec 2023 20:58: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 1rD9pd-00087x-Ls; Tue, 12 Dec 2023 20:58: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 1rD9pd-0000IB-D0; Tue, 12 Dec 2023 20:58:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rD9pd-0004Rf-CH; Tue, 12 Dec 2023 20:58: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=8OCAitK3smpHERzh5cAYQFYl2Y/0ODzfcEfPsUJhHlM=; b=h1/s5nC5dZxL/RxHJa6K3vMnw5
	QWp9TgPF2k7CZiZ7GHNYsDyxie/A1itSHRA7EZbsTitrUPHdtG17ARiJMH0a5osV1O2qdqJZKHiVj
	cjKto0FqH0QTylK8Wbh93THKIBWyfX1LKNEpxecDJXaMHbra44cW8ZAQj/oNEVk5JvWE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184101-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184101: regressions - trouble: blocked/broken/fail/pass
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl:<job status>:broken:regression
    linux-linus:test-armhf-armhf-xl:host-install(5):broken:regression
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    linux-linus:test-armhf-armhf-libvirt-raw:debian-di-install:fail:regression
    linux-linus:build-arm64-pvops:kernel-build:fail:regression
    linux-linus:test-arm64-arm64-examine:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm:build-check(1):blocked: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-libvirt-qcow2: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-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-qemuu-debianhvm-amd64-xsm:migrate-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-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-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=26aff849438cebcd05f1a647390c4aa700d5c0f1
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 20:58:21 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-xl             <job status>                 broken
 test-armhf-armhf-xl           5 host-install(5)        broken REGR. vs. 183973
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973
 test-armhf-armhf-libvirt-raw 12 debian-di-install        fail REGR. vs. 183973
 build-arm64-pvops             6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-examine      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     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-amd64-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-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-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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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:
 linux                26aff849438cebcd05f1a647390c4aa700d5c0f1
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z   10 days
Failing since        183977  2023-12-03 00:12:06 Z    9 days   20 attempts
Testing same since   184101  2023-12-12 09:44:26 Z    0 days    1 attempts

------------------------------------------------------------
346 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                                            fail    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             fail    
 test-amd64-amd64-xl                                          pass    
 test-amd64-coresched-amd64-xl                                pass    
 test-arm64-arm64-xl                                          blocked 
 test-armhf-armhf-xl                                          broken  
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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                                  blocked 
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  blocked 
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     blocked 
 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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-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                                 blocked 
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-amd64-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      blocked 
 test-armhf-armhf-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-job test-armhf-armhf-xl broken
broken-step test-armhf-armhf-xl host-install(5)

Not pushing.

(No revision log; it would be 12809 lines long.)


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 21:05:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 21:05:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653603.1020011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rD9wB-0008DN-Hh; Tue, 12 Dec 2023 21:05:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653603.1020011; Tue, 12 Dec 2023 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 1rD9wB-0008DG-FB; Tue, 12 Dec 2023 21:05:07 +0000
Received: by outflank-mailman (input) for mailman id 653603;
 Tue, 12 Dec 2023 21:05: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 1rD9w9-0008D6-GX; Tue, 12 Dec 2023 21:05: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 1rD9w9-0008HM-C9; Tue, 12 Dec 2023 21:05: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 1rD9w9-0000XK-5c; Tue, 12 Dec 2023 21:05:05 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rD9w9-0001mi-52; Tue, 12 Dec 2023 21:05: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=0wVBs88FJ/lRQfybuPSoNfq6h1DDT8kSxgvTEqc/W94=; b=VXkiBxSP2SS0H+NcMc6kVsI9k6
	g11pxZuIgL6qiu2m0/C+NW9rYs5PLHensaLBIclCIVKDHpvhmPz/wKNQHxeeEPom6mo/ef3UfJXe5
	K/SwZvM7h8jR2ZsVUM/sFDPztI1kWz2r4e9lnEWSPuxj53Ac59LU8NTabNGjbX6sxmRc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184112-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184112: 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=a6a8fe0eb177ca27c9155177e7e60c13fc46e5f6
X-Osstest-Versions-That:
    xen=cf40abbc7ff2a73eaaea84e919fc7762354e75ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 12 Dec 2023 21:05:05 +0000

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

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                  a6a8fe0eb177ca27c9155177e7e60c13fc46e5f6
baseline version:
 xen                  cf40abbc7ff2a73eaaea84e919fc7762354e75ad

Last test of basis   184102  2023-12-12 11:00:28 Z    0 days
Failing since        184106  2023-12-12 14:02:12 Z    0 days    2 attempts
Testing same since   184112  2023-12-12 18:02:28 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Arnd Bergmann <arnd@arndb.de>
  Federico Serafini <federico.serafini@bugseng.com>
  George Dunlap <george.dunlap@cloud.com>
  Henry Wang <Henry.Wang@arm.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Michal Orzel <michal.orzel@amd.com>
  Nicola Vetrini <nicola.vetrini@bugseng.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
   cf40abbc7f..a6a8fe0eb1  a6a8fe0eb177ca27c9155177e7e60c13fc46e5f6 -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 22:38:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 22:38:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653616.1020025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBOj-0004ip-6P; Tue, 12 Dec 2023 22:38:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653616.1020025; Tue, 12 Dec 2023 22:38:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBOj-0004ii-36; Tue, 12 Dec 2023 22:38:41 +0000
Received: by outflank-mailman (input) for mailman id 653616;
 Tue, 12 Dec 2023 22:38:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDBOh-0004iY-Af
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 22:38:39 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 30c4cb89-993f-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 23:38:37 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 267B8B817CA;
 Tue, 12 Dec 2023 22:38:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9CFE8C433C7;
 Tue, 12 Dec 2023 22:38: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: 30c4cb89-993f-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702420716;
	bh=CtG2DfxlAksLVIdyYgnqD1BqwaGgnM13hz70YTyLgok=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=OqbcEOGrXIDx/4Qec4va0UclQAsLOl20ESvfQNFbqmHCegaJV7Qb9TUorVj5WmcVY
	 E7B+Dp760r3sgpUME7jUTDjoiEYDRJAeyaz6ec2isvbKc7XOzdGcPLTpht+GLC1EYl
	 PSQBFRFSK8looUFGm5I8S+kui9Gfm5TfKRm2Zo9DitB7FrUvjpVbII4ibto8s+Scyu
	 Bb3GFhAFStNvoE4D5iqht/TRJuId2b/3BknA3ycUEr/RdO2XRwgz4ry2fRuXopRHjx
	 n2LGA0b0GJGVTfsXvThRqvhfys/Gia259QKc1+nQuI2u2sn2/cblyCDjE8tiV5QRFh
	 YHpxCZJ/glVZg==
Date: Tue, 12 Dec 2023 14:38:34 -0800 (PST)
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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    consulting@bugseng.com, Wei Liu <wl@xen.org>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 6/7] x86/platform: removed break to address MISRA
 C:2012 Rule 2.1
In-Reply-To: <a8c42909-6316-448b-8d21-628d055abfbc@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312121437280.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <b1103bc13d5ce04159417592705b4fe6a6db748b.1702283415.git.nicola.vetrini@bugseng.com> <a8c42909-6316-448b-8d21-628d055abfbc@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, 12 Dec 2023, Jan Beulich wrote:
> On 11.12.2023 11:30, Nicola Vetrini wrote:
> > The break statement is redundant, hence it can be removed.
> 
> Except ...
> 
> > --- a/xen/arch/x86/platform_hypercall.c
> > +++ b/xen/arch/x86/platform_hypercall.c
> > @@ -723,7 +723,6 @@ ret_t do_platform_op(
> >  
> >          ret = continue_hypercall_on_cpu(
> >              0, cpu_down_helper, (void *)(unsigned long)cpu);
> > -        break;
> >      }
> >      break;
> 
> ... it wants to be the other break that is removed, imo.

I was also about to comment about which of the two breaks to remove... I
didn't know if there are x86 specific conventions so I didn't say
anything about it. But I also think it is more natural to keep the other
break.


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 22:48:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 22:48:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653621.1020035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBXt-0006mY-1Y; Tue, 12 Dec 2023 22:48:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653621.1020035; Tue, 12 Dec 2023 22:48: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 1rDBXs-0006mR-VD; Tue, 12 Dec 2023 22:48:08 +0000
Received: by outflank-mailman (input) for mailman id 653621;
 Tue, 12 Dec 2023 22:48:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDBXr-0006mJ-BT
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 22:48:07 +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 829a6b3d-9940-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 23:48:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id B0B8DCE1C61;
 Tue, 12 Dec 2023 22:48:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D70FEC433C7;
 Tue, 12 Dec 2023 22:47: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: 829a6b3d-9940-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702421280;
	bh=FWunfJukoEf8uv3S6Blf40SDiYHQAMZe9Gql3B5kJ9g=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ShLSWiLIvT4eSfzvXltGMrcDw6iA3r6SP1QZQHKz4G3spFFMImdNYxzZcuVS44t7k
	 GQK4U9mTwxlbaDpIClg5/ZzonLKEEPBlt0FjusyHsmrghVF5DUC01KPHXgn/IiS+2j
	 1+GtD1+Q9xjJBDA761aF8+h7C3ZbRjOEtCTLImKfIqNay7mmSCEleGmn9wBEChVG/9
	 RnYn5SFD5/OLpXqTTiGtHJeNIv+81F3VfTiRGungJJ+RhqfqnCoaZkN4WSUINmnQrO
	 9w4GzwM3HDNeGhUk0n2EbYlt68b0cQu6rUpdPR8T04uwiigMkmSEAq2oLgs4hRNbi5
	 aufUofpKCtmgw==
Date: Tue, 12 Dec 2023 14:47:58 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 1/4] xen/compat: address violations of MISRA C:2012
 Rule 8.2
In-Reply-To: <6a3bd7a3e4fa83c2c176894f756bd2e24c0f3ee0.1702394721.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312121447520.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702394721.git.federico.serafini@bugseng.com> <6a3bd7a3e4fa83c2c176894f756bd2e24c0f3ee0.1702394721.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 Tue, 12 Dec 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 22:50:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 22:50:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653623.1020045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBa2-0000KF-E9; Tue, 12 Dec 2023 22:50:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653623.1020045; Tue, 12 Dec 2023 22:50:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBa2-0000K8-BQ; Tue, 12 Dec 2023 22:50:22 +0000
Received: by outflank-mailman (input) for mailman id 653623;
 Tue, 12 Dec 2023 22:50: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=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDBa1-0000K2-0K
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 22:50:21 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2d488d6-9940-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 23:50:19 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id A1382B818A2;
 Tue, 12 Dec 2023 22:50:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06890C433C8;
 Tue, 12 Dec 2023 22: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: d2d488d6-9940-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702421418;
	bh=FWunfJukoEf8uv3S6Blf40SDiYHQAMZe9Gql3B5kJ9g=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=oOdCoGJo4+5g1LoBnnvR658c9GW8ocpeW4jfjzZzE01z5xwtoZITWdMrXFcKkUxR1
	 nzhY+7MMj58SwqyFtLkZwf150lwgWA6nR+dRFq6q9hky2QFdgevRv81NjsLyeZt7KU
	 8ew9M4aWQDK4V64UIqBdtYloMPBWwyZ+w8JYKICJ7dydVcJCr2HS5AHYPQXrz69bE+
	 0iXc42t67K1gjKFXnEokMTNjlvcJ46l/yRsvmLPfy/XC1p1+W5hPZmJLXq2P87oQQn
	 7HhZflF+b4Vot+piDMth4w6qNKs9kZ48OYmT1PT1X6+AAz0ZhlePvvl15VGx9FEF4+
	 ozSDfrTwLmxkQ==
Date: Tue, 12 Dec 2023 14:50:15 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 2/4] x86/asm: address violations of MISRA C:2012 Rule
 8.2
In-Reply-To: <0db906df2d3649fc8652be6b80e14870b78b0f56.1702394721.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312121450100.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702394721.git.federico.serafini@bugseng.com> <0db906df2d3649fc8652be6b80e14870b78b0f56.1702394721.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 Tue, 12 Dec 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 22:51:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 22:51:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653626.1020055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBbC-0000uk-Oh; Tue, 12 Dec 2023 22:51:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653626.1020055; Tue, 12 Dec 2023 22: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 1rDBbC-0000ud-Kq; Tue, 12 Dec 2023 22:51:34 +0000
Received: by outflank-mailman (input) for mailman id 653626;
 Tue, 12 Dec 2023 22:51: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=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDBbB-0000uE-Nu
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 22:51:33 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fe44f292-9940-11ee-9b0f-b553b5be7939;
 Tue, 12 Dec 2023 23:51:31 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 8D089B817B7;
 Tue, 12 Dec 2023 22:51:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CFCDFC433C7;
 Tue, 12 Dec 2023 22:51: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: fe44f292-9940-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702421490;
	bh=FWunfJukoEf8uv3S6Blf40SDiYHQAMZe9Gql3B5kJ9g=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TwR1sbFNYKaYes9kb8UhuDAQrTGyBcpOc+uiASp4ZT3pnzyKlNcLAc6mQhPljcvPP
	 AvOiznIKZelqj+cOuZjLzeCEzZsSonPS1dZ2H08sJ3wqSzxmRKTAajLC2N5t7S2mIz
	 i+HBxehN53suP7YlWH1r04ToX6cGTYjI3aO7/EJUDMYTDZii7Z+2w6KskgtDg+AgmU
	 tSoVWmTnc0Hq099IM3qPWUPCilDHvLkmtZY6eT+EGF11tIcxK5REPYctJutTmwXscs
	 uG3XqdTuqt6itxyqqJEJwD0Qd0HZ1pcC1c4vw/yfSe92TeaxVGbmA4autS6FA7KHgm
	 U5iIrQC44lYjw==
Date: Tue, 12 Dec 2023 14:51:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 3/4] xen/drivers: address violations of MISRA C:2012
 Rule 8.2
In-Reply-To: <6cd192af722b99323021c6f1561c5cf0178a1aaf.1702394721.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312121451230.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702394721.git.federico.serafini@bugseng.com> <6cd192af722b99323021c6f1561c5cf0178a1aaf.1702394721.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 Tue, 12 Dec 2023, Federico Serafini wrote:
> Add missing parameter names. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Dec 12 22:52:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 22:52:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653628.1020065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBbn-0001PU-WB; Tue, 12 Dec 2023 22:52:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653628.1020065; Tue, 12 Dec 2023 22:52:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBbn-0001PN-TJ; Tue, 12 Dec 2023 22:52:11 +0000
Received: by outflank-mailman (input) for mailman id 653628;
 Tue, 12 Dec 2023 22:52:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDBbm-0001P5-JB
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 22:52:10 +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 13b5bf47-9941-11ee-98e8-6d05b1d4d9a1;
 Tue, 12 Dec 2023 23:52:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 1BEE4CE1C5D;
 Tue, 12 Dec 2023 22:52:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 776E6C433C7;
 Tue, 12 Dec 2023 22:52:05 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13b5bf47-9941-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702421526;
	bh=sfOS8IONgwZIj0jRAhO2P1Zm49dhdHSiHzzNWwHrgOM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=unVOmqqXMyP8gKV/HnKlgKCa/+qQoQf6Y6z/DDZZCuelwtuQvnQLbG5pD3sz6OU/4
	 CsZKFdvnDVzNzE4iBAm9D9lm801UHbDLJ92ByM5kxi6LYny9u3WZ4oYzaj6q5+IA2H
	 AnwRYcC3+rO6SuWu9/BjKCU869b4ufDM5lS8KcR5tFFNToEfFnk6I1pM07TkaLsSWP
	 78hVZXmhezQVRyPD/NeqHNAs6/pFheWJp9JJyki0hbCbH/pwzOZqh7bSBPxjr1haQE
	 pRJMIY7TC/rzt1yTuIw85NDv0x57u2uFSDnvnKnTrQ5cHb7qn9AT+TZdYQu7GX6aR4
	 K/YYbbHKA7Iyg==
Date: Tue, 12 Dec 2023 14:52:04 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>, Paul Durrant <paul@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 4/4] xen/iommu: address leftover violation of MISRA
 C:2012 Rule 8.2
In-Reply-To: <443dc3828fd6cdfb97d2e9d0c9ec93bb23228d5b.1702394721.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312121451580.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702394721.git.federico.serafini@bugseng.com> <443dc3828fd6cdfb97d2e9d0c9ec93bb23228d5b.1702394721.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 Tue, 12 Dec 2023, Federico Serafini wrote:
> Add missing parameter name. No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 23:01:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 23:01:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653632.1020074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBl3-0003rO-Re; Tue, 12 Dec 2023 23:01:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653632.1020074; Tue, 12 Dec 2023 23: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 1rDBl3-0003rH-On; Tue, 12 Dec 2023 23:01:45 +0000
Received: by outflank-mailman (input) for mailman id 653632;
 Tue, 12 Dec 2023 23: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=y4OV=HX=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rDBl2-0003r5-Bk
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 23:01:44 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 6962b0cd-9942-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 00:01:41 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 8f87016249a0 with SMTP id 6578e653995907b324cfab5b (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 12 Dec 2023 23:01:39 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 6962b0cd-9942-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702422099; x=1702429299; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=Hc9AJH4ymY8I50mijcR9tQq1Vd04yon8ZMstARD2Lgg=;
 b=k5QWK5RsiSETIg2QTyxz9MJDVqECaRyHQiDBlb3Qgmll73m8HdGeW4zyU6tZYuIKCgqt/Mdwtd8oaA0bSyebpxI5+mLT0H4qr317/ey0BYZOU07UYlLb8ZgBiyGKeRHm7QiYxM+E6qO/oyxhzArsW/zLxZUpGW5/8K/VvUW5ReU=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 12 Dec 2023 23:01:39 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6578e653a18cd_2c9543498c3@gitlab-sidekiq-catchall-v2-796f7bd78f-cdszn.mail>
Subject: xen | Failed pipeline for staging | a6a8fe0e
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6578e6539691e_2c9543497d1";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1104313882
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: failed
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6578e6539691e_2c9543497d1
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1104313882 has failed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: a6a8fe0e ( https://gitlab.com/xen-project/xen/-/commit/a6a8fe0eb177ca27c9155177e7e60c13fc46e5f6 )
Commit Message: Revert "xen: make include/xen/unaligned.h usabl...
Commit Author: Julien Grall


Pipeline #1104313882 ( https://gitlab.com/xen-project/xen/-/pipelines/1104313882 ) triggered by Ganis ( https://gitlab.com/ganis )
had 1 failed job.

Job #5735616619 ( https://gitlab.com/xen-project/xen/-/jobs/5735616619/raw )

Stage: test
Name: build-each-commit-gcc

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Failed pipeline for staging | a6a8fe0e</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"alert">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#d22f57">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px; line-height: 1;" align=3D"center" valig=
n=3D"middle">
<img alt=3D"&#10006;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-inverted-06edddd39ba2a7f9a32f6201e420=
175db85a4b6ac0348203fdc069001b440149.gif" style=3D"display: block;" width=
=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1104313882 has failed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/a6a8fe0eb177ca27c9=
155177e7e60c13fc46e5f6" style=3D"color: #3777b0; text-decoration: none;">=

a6a8fe0e
</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
Revert "xen: make include/xen/unaligned.h usabl...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"pre-section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
Pipeline <a style=3D"color: #3777b0; text-decoration: none;" href=3D"http=
s://gitlab.com/xen-project/xen/-/pipelines/1104313882">#1104313882</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px; padding-left: 5px;" =
width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; font-weight: 500; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 14px; font-weight: 400; line-heigh=
t: 1.4; padding: 0 8px 16px;" align=3D"center">
had 1 failed job
</td>
</tr>
<tr class=3D"table-warning">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 4px 4px 0 0; overflow: hidden; color: #d22852; font-size: 14=
px; line-height: 1.4; padding: 8px 16px; border-color: #ededed; border-st=
yle: solid; border-width: 1px 1px 0;" align=3D"center" bgcolor=3D"#fdf4f6=
">
Failed job
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 0 0 4px 4px; overflow: hidden; padding: 0 16px; border-color=
: #ededed; border-style: solid; border-width: 0 1px 1px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"builds" =
style=3D"width: 100%; border-collapse: collapse;">
<tbody>
<tr class=3D"build-state">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px; padding: 16px 0;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #d22f57; font-weight: 500; font-size: 16px; padding-right: 8px; line=
-height: 10px;" valign=3D"middle">
<img alt=3D"&#10006;" height=3D"10" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-x-red-67056b7b99899e30453df79abfbe16162f6a2=
6ed789d8236f81afcaea216ffe6.gif" style=3D"display: block;" width=3D"10" /=
>
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #8c8c8c; font-weight: 500; font-size: 14px;" valign=3D"middle">
test
</td>
</tr>
</tbody>
</table>
</td>
<td align=3D"right" style=3D"font-family: 'Helvetica Neue',Helvetica,Aria=
l,sans-serif; color: #8c8c8c; font-weight: 500; font-size: 14px; padding:=
 16px 0;">
<a href=3D"https://gitlab.com/xen-project/xen/-/jobs/5735616619" style=3D=
"color: #3777b0; text-decoration: none;">
build-each-commit-gcc
</a>

</td>
</tr>
</tbody>
</table>
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6578e6539691e_2c9543497d1--


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 23:09:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 23:09:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653668.1020085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBsq-00056T-Pf; Tue, 12 Dec 2023 23:09:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653668.1020085; Tue, 12 Dec 2023 23:09:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDBsq-00056M-MX; Tue, 12 Dec 2023 23:09:48 +0000
Received: by outflank-mailman (input) for mailman id 653668;
 Tue, 12 Dec 2023 23: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=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDBsp-000559-Jb
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 23:09:47 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a5fa3a2-9943-11ee-98e8-6d05b1d4d9a1;
 Wed, 13 Dec 2023 00:09:46 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 5D814B81983;
 Tue, 12 Dec 2023 23:09:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 574FAC433C8;
 Tue, 12 Dec 2023 23:09:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a5fa3a2-9943-11ee-98e8-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702422584;
	bh=U74hejZJZbbp5p9aKrLQhxOz/wgdMR4AmNKvc57O1Z0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=p6UzRdJDcPeWjXg9sE/LOwvbPwH0iRz8hSh7fhd72bBfSuwdqND+6qoA+rxZ1+tmo
	 pe4xu7eLe+G/B3ktEhuWtoEHL2JdFPfpdk2I14WeZbexH0RtjOrWQhyvuXZ0zwUt04
	 iNhAvcynuhjGyLJ1vo4SqoEpaH7YhB1YEj4loHVjB0MsAYRyuBcS/knWdA1IheQhDZ
	 9UyTacREnVMNGb4CDurtr/gBoZW2zv6l7XnjyM2ttyEPlNcep+bHWCIqJerivQLJ1M
	 caiOLWNsRMagv3WR3l488MuxQoT49cz7KJYcYgLqULFc9CN2qTc9G3J0Wz2Phb2GkD
	 QH/7rS8DubEhQ==
Date: Tue, 12 Dec 2023 15:09:42 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>, 
    "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [XEN PATCH v2] automation/eclair_analysis: file exclusion
 automation
In-Reply-To: <31a802364de17dd457f3ec265302ea27e90ed518.1702284801.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312121509360.1703076@ubuntu-linux-20-04-desktop>
References: <31a802364de17dd457f3ec265302ea27e90ed518.1702284801.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 Mon, 11 Dec 2023, Nicola Vetrini wrote:
> The file exclude-list.json contains files that are classified as
> adopted code for MISRA compliance. Therefore, this file is used to
> automatically generate a suitable .ecl configuration for ECLAIR.
> 
> As such, many entries in out_of_scope.ecl can be removed, as they
> would be duplicates.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 12 23:25:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Dec 2023 23:25:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653674.1020095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDC7a-0000Or-38; Tue, 12 Dec 2023 23:25:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653674.1020095; Tue, 12 Dec 2023 23: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 1rDC7Z-0000Ok-WB; Tue, 12 Dec 2023 23:25:01 +0000
Received: by outflank-mailman (input) for mailman id 653674;
 Tue, 12 Dec 2023 23:25: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=A1Zv=HX=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDC7Y-0000Oe-Q7
 for xen-devel@lists.xenproject.org; Tue, 12 Dec 2023 23:25:00 +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 a9c63c5d-9945-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 00:24:58 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id C7959619E2;
 Tue, 12 Dec 2023 23:24:56 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3217C433C7;
 Tue, 12 Dec 2023 23:24:54 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9c63c5d-9945-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702423496;
	bh=3aiFuz7enl3k/NkUSUqU4KPZRQahJAgE2vrUJIvYHyg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=O+NBod/7UKbVMn3Gpi1COYwfpSY3DX4/KKdEzDBnhEEH16hOCvAicAz5m4ShNA4m2
	 E9FUaVI58zE5agam0DKhBLQIBtPgs16NCWehdkqFsIILgjFTSFgn9Lf+S0wOWYAc0K
	 cXpQR5yqDs6p7mBi3rIB0qiMAsIKxBquyhx/7bJlsSh/X+YICENl6YwWnNu1dcoqeR
	 VHo3uUUThFTUWlwviSmoL6YycqTfR6bDcUk4qotOfMAs445JO9y0IISEsRdNxPk2hu
	 zzWSrT7Gjj99o4pX797bzp5AgAs3ckXR6R1L+dTW6vxpcLh+uxya5s8gfaZMOAzg3j
	 NpJacpSFjaTVw==
Date: Tue, 12 Dec 2023 15:24:53 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
In-Reply-To: <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312121516490.1703076@ubuntu-linux-20-04-desktop>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com> <d80309f31fea24ea75c4994e924da069472811fc.1702285639.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 Mon, 11 Dec 2023, Nicola Vetrini wrote:
> Such declaration is needed because a compatible declaration
> is not visible in xen/common/page_alloc.c, where the variable
> is defined. That variable can't yet be static because of the lack of
> support from ARM and PPC for NUMA.
> 
> On the occasion, use drop a use of u8.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> Having this declaration essentially sidesteps the current impossibility
> of having a static variable, as described in the comments in
> ARM and PCC's asm/numa.h.
> 
> Changes in v3:
> - Drop redundant declarations of first_valid_mfn in asm/numa.h for Arm and PPC.
> ---
>  xen/arch/arm/include/asm/numa.h | 8 ++++----
>  xen/arch/ppc/include/asm/numa.h | 7 +++----
>  xen/include/xen/mm.h            | 2 ++
>  3 files changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/numa.h
> index e2bee2bd8223..44b689f67db8 100644
> --- a/xen/arch/arm/include/asm/numa.h
> +++ b/xen/arch/arm/include/asm/numa.h
> @@ -2,8 +2,9 @@
>  #define __ARCH_ARM_NUMA_H
>  
>  #include <xen/mm.h>
> +#include <xen/types.h>

Why the addition of types.h? It doesn't seem to be necessary. Also on
PPC below doesn't seem to be necessary.

Everything else looks fine.



> -typedef u8 nodeid_t;
> +typedef uint8_t nodeid_t;
>  
>  #ifndef CONFIG_NUMA
>  
> @@ -12,10 +13,9 @@ typedef u8 nodeid_t;
>  #define node_to_cpumask(node)   (cpu_online_map)
>  
>  /*
> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
> - * is required because the dummy helpers are using it.
> + * TODO: define here first_valid_mfn as static when NUMA is supported on Arm,
> + * this is required because the dummy helpers are using it.
>   */
> -extern mfn_t first_valid_mfn;
>  
>  /* XXX: implement NUMA support */
>  #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
> diff --git a/xen/arch/ppc/include/asm/numa.h b/xen/arch/ppc/include/asm/numa.h
> index 7fdf66c3da74..152305ebe446 100644
> --- a/xen/arch/ppc/include/asm/numa.h
> +++ b/xen/arch/ppc/include/asm/numa.h
> @@ -1,8 +1,8 @@
>  #ifndef __ASM_PPC_NUMA_H__
>  #define __ASM_PPC_NUMA_H__
>  
> -#include <xen/types.h>
>  #include <xen/mm.h>
> +#include <xen/types.h>
>  
>  typedef uint8_t nodeid_t;
>  
> @@ -11,10 +11,9 @@ typedef uint8_t nodeid_t;
>  #define node_to_cpumask(node)   (cpu_online_map)
>  
>  /*
> - * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
> - * is required because the dummy helpers are using it.
> + * TODO: define here first_valid_mfn as static when NUMA is supported on PPC,
> + * this is required because the dummy helpers are using it.
>   */
> -extern mfn_t first_valid_mfn;
>  
>  /* XXX: implement NUMA support */
>  #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
> diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
> index 3d9b2d05a5c8..a13a9a46ced7 100644
> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -118,6 +118,8 @@ int destroy_xen_mappings(unsigned long s, unsigned long e);
>  /* Retrieve the MFN mapped by VA in Xen virtual address space. */
>  mfn_t xen_map_to_mfn(unsigned long va);
>  
> +extern mfn_t first_valid_mfn;
> +
>  /*
>   * Create only non-leaf page table entries for the
>   * page range in Xen virtual address space.
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 00:18:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 00:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653678.1020105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDCx9-0001vj-Ee; Wed, 13 Dec 2023 00:18:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653678.1020105; Wed, 13 Dec 2023 00:18:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDCx9-0001vc-BS; Wed, 13 Dec 2023 00:18:19 +0000
Received: by outflank-mailman (input) for mailman id 653678;
 Wed, 13 Dec 2023 00:18: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=zptr=HY=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDCx7-0001vW-NC
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 00:18:17 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1aca9803-994d-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 01:18:13 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 3EF9FB81A59;
 Wed, 13 Dec 2023 00:18:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 260DFC433C7;
 Wed, 13 Dec 2023 00:18: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: 1aca9803-994d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702426692;
	bh=/qZ++LEW8+z1IK+J9SXqOnTaJhNMDT2Xr/IjF3+fwgk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=o+ljR43JvIU5c96+DV2Mj5W5dgbjOoKe/VqZxLkMxuQ9voMlKjnBLrw+Ate966zh/
	 QlaRlDNojdAJmiq683IK9O+ht9PCgwub9B69z8HTqJa9RuQ1yRDjY/7aEfPoKxrBFx
	 dVL0IOTpXsayeDzmKM4F+VIpc6XlAgazDP+WhWvF495TOCAKXn0HJui5nSv8UML73H
	 IriTUrA0O8tXKRtZH3VDAOfLdyL3qQVCwz1nKpFLZbjcolhq/f0M22ODmz/QQWGeNZ
	 POcNj+SJip0Za3rHu4BUPxHXZoWwfM4JBOtdfHdR/MAx7j5vIAzvRBgi/xSv/YthkA
	 fWmEBa7ndoa0g==
Date: Tue, 12 Dec 2023 16:18:10 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Chuck Zmudzinski <brchuckz@netscape.net>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Mario Marietto <marietto2008@gmail.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Demi Marie Obenour <demi@invisiblethingslab.com>, 
    Anthony PERARD <anthony.perard@citrix.com>, Julien Grall <julien@xen.org>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Elliott Mitchell <ehem+freebsd@m5p.com>
Subject: Re: We are not able to virtualize FreeBSD using xen 4.17 on Arm 32
 bit
In-Reply-To: <c56f3db5-114e-4442-a318-b5abcd33eff8@netscape.net>
Message-ID: <alpine.DEB.2.22.394.2312121612480.1703076@ubuntu-linux-20-04-desktop>
References: <CA+1FSiggg=XZmif6c3pY0+jz7i9caU-OTwFy80gwO7MVpXiwcA@mail.gmail.com> <CA+1FSigM1PZc4WfZNUJSMsZbNPPTyThRJ7MMQwQ9TWn6VnSUTg@mail.gmail.com> <C0A0E9FA-5AAB-4324-BBBD-D07412CD7F32@arm.com> <ZWR1v5Y3EpRK817B@macbook>
 <CA+1FSij2Q9f9Vj0A06HUYeUxTddrEyF=Q8X5fbs96CRr83_BPg@mail.gmail.com> <4fc95518-7e46-4f82-b540-afdbc941508a@netscape.net> <f606be07-c4ff-43c6-acf9-42065a84b594@netscape.net> <alpine.DEB.2.22.394.2311271826370.3533093@ubuntu-linux-20-04-desktop>
 <c56f3db5-114e-4442-a318-b5abcd33eff8@netscape.net>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-767190743-1702426435=:1703076"
Content-ID: <alpine.DEB.2.22.394.2312121614410.1703076@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-767190743-1702426435=:1703076
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312121614411.1703076@ubuntu-linux-20-04-desktop>

On Mon, 11 Dec 2023, Chuck Zmudzinski wrote:
> On 11/27/2023 9:28 PM, Stefano Stabellini wrote:
> > On Mon, 27 Nov 2023, Chuck Zmudzinski wrote:
> >> On 11/27/2023 10:22 AM, Chuck Zmudzinski wrote:
> >> > On 11/27/2023 7:45 AM, Mario Marietto wrote:
> >> >> @Chuck Zmudzinski <mailto:brchuckz@netscape.net> : Stay tuned. They want to help us. The xen developers are great. Very good support for us. I'm sure that you can give a good contribution to understand what's our problem and how to implement a fix with the help of all those good guys.
> >> >> 
> >> >> On Mon, Nov 27, 2023 at 11:56â€¯AM Roger Pau MonnÃ© <roger.pau@citrix.com <mailto:roger.pau@citrix.com>> wrote:
> >> >> 
> >> >>     On Mon, Nov 27, 2023 at 10:28:13AM +0000, Henry Wang wrote:
> >> >>     > +(xen-devel and Arm maintainers, including Julien)
> >> >>     >
> >> >>     > > On Nov 27, 2023, at 18:03, Mario Marietto <marietto2008@gmail.com <mailto:marietto2008@gmail.com>>
> >> >>     > > wrote:
> >> >>     > >
> >> >>     > > Hello.Â  We have just virtualized Debian 12 on our arm (32 bit)
> >> >>     > > Chromebook model xe303c12 . As host / dom0 we have chosen Devuan
> >> >>     > > 5,and for guest / domU,Debian 12. It works great. But our goal is
> >> >>     > > different. We want to virtualize FreeBSD as domU. Can we have a
> >> >>     > > working Xen PV network driver for a FreeBSD arm guest ?. I found
> >> >>     > > that Julien Grall has ported the Xen drivers to FreeBSD on arm. I
> >> >>     > > would like to know if Julien's work was accepted upstream by
> >> >>     > > FreeBSD, in which case FreeBSD as a Xen guest on arm should work
> >> >>     > > if we enable the Xen PV drivers in the FreeBSD on arm kernel. If
> >> >>     > > Julien's work was not accepted upstream by FreeBSD, we will have
> >> >>     > > to find his patches and apply them ourselves to the FreeBSD on arm
> >> >>     > > kernel.
> >> >> 
> >> >>     I've added Elliot on Cc as he is working on upstreaming the patches to
> >> >>     FreeBSD.Â  He will be able to provide a better update than myself.
> >> >> 
> >> >>     Regards, Roger.
> >> > 
> >> > I have been collaborating with Mario, and I can explain what we have done so far :
> >> > 
> >> > We are using Julien's patch set against an old development version of FreeBSD 11
> >> > from 2014-12-03 :
> >> > 
> >> > https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=shortlog;h=refs/heads/xen-arm-v2.2
> >> > 
> >> > We successfully built the XENVIRT kernel and FreeBSD world, and created the
> >> > FreeBSD rootfs according to Julien's instructions here :
> >> > 
> >> > https://lists.freebsd.org/pipermail/freebsd-xen/2014-November/002202.html
> >> > 
> >> > There were some adjustments to the instructions :
> >> > 
> >> > To build the kernel, we used :
> >> > 
> >> > $ sudo make TARGET_ARCH=armv6 KERNCONF=XENVIRT buildkernel
> >> > 
> >> > instead of
> >> > 
> >> > $ sudo make TARGET_ARCH=armv6 KERNCONF=XENHVM buildkernel
> >> > 
> >> > The FreeBSD 'kernel' file is in ELF format and did not work, and we spent
> >> > some time trying to convert it to the zImage format without realizing the
> >> > build of the FreeBSD kernel creates the 'kernel.bin' file in the zImage format.
> >> > So when booting with the 'kernel.bin' file instead, it actually boots :
> >> > 
> >> > user@devuan-bunsen ~ % sudo xl create freebsd.cfg
> >> > Parsing config from freebsd.cfg
> >> > user@devuan-bunsen ~ % sudo xl li
> >> > Name                                        ID   Mem VCPUs	State	Time(s)
> >> > Domain-0                                     0   768     2     r-----    1439.4
> >> > freebsd                                      1  1152     1     r-----       3.0
> >> > user@devuan-bunsen ~ %
> >> > 
> >> > However, the guest is still not working correctly :
> >> > 
> >> > 1. Attaching the console with the -c option at creation or with
> >> >    'xl console freebsd' results in no output to the console.
> >> > 
> >> > 2. The timestamp on the virtual disk image file shows that the filesystem
> >> >    was at best mounted read-only, if it was mounted at all by the guest
> >> >    FreeBSD kernel.
> >> > 
> >> > 3. The 'xl shutdown freebsd' command does not work, it just hangs. To stop
> >> >    the guest, you need to do 'xl destroy freebsd'.
> >> > 
> >> > However, I think we can get the console to work and the rootfs to mount because I
> >> > just realized I forgot to do the steps from Julien's instructions of editing the
> >> > /etc/fstab and /etc/ttys files in the FreeBSD rootfs :
> >> > 
> >> > $ echo "/dev/xbd0       /       ufs     rw      1       1" > /mnt/etc/fstab
> >> > $ vi /mnt/etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm on secure")
> >> > 
> >> > I will add those and see if the console and disk are working.
> >> 
> >> Unfortunately, adding xc0 to /etc/ttys and /dev/xbd0 as the root device in
> >> /etc/fstab did not make the console or disk work. Still no output on the
> >> xen console from the guest kernel, and the timestamp on the rootfs image
> >> file did not change so it did not mount read-write.
> >> 
> >> We could use some advice for troubleshooting this. Now, we are blind because
> >> we are not getting any xen console output But I am pleased we were able to
> >> demonstrate that Julien's old patch set for FreeBSD 11 allows us to boot
> >> FreeBSD 11 on a modern version of Xen on arm - we are using the Debian
> >> stable Xen 4.17 packages.
> > 
> > You can use the DEBUG hypercalls to check how far we got into the
> > booting process:
> > https://wiki.xenproject.org/wiki/Xen_ARM_DEBUG_hypercalls
> > 
> > For instance add the following to FreeBSD code:
> > 
> > asm volatile("hvc 0xfffd");
> > 
> 
> It took me a while, but I finally got this approach to work to debug the FreeBSD
> kernel. Thanks!
> 
> The problem was the compiler was reporting hvc is an invalid instruction. To
> get the compiler to accept the hvc instruction as valid, I first spent quite a
> bit of time porting the patches from the old development version of FreeBSD 11 on
> which Julien's patches were based to FreeBSD 12.4, because that old development
> version of FreeBSD did not support armv7 but only armv6, and I thought maybe
> the compiler is rejecting the hvc instruction because the kernel build was
> targeting armv6 and I was not sure hypervisor extensions were available for
> armv6. But FreeBSD 12 and higher has support to target armv7 for the kernel.
> There were quite a few changes to account for between FreeBSD 11 and FreeBSD 12.4,
> I had to add about 12 more patches, but I also removed some of Julien's patches
> that were either applied in FreeBSD 12.4 or no longer applicable to FreeBSD 12.4.
> 
> So when I was able to build a FreeBSD 12.4 kernel + Julien's arm/xenvirt patches
> targeting armv7 instead of armv6, I got the same behavior: the guest started but
> no output on the console, and the compiler at first still did not accept the
> hvc instruction (FreeBSD uses the clang compiler by default to build the kernel).
> After some searches on the Internet I discovered that adding the -mthumb CFLAG
> when compiling the objects with an hvc instruction enabled the compiler to accept
> the hvc instruction.
> 
> So I was able to get output like this in the dom0 Xen console log from the hvc
> instruction in the guest :
> 
> (XEN) arch/arm/traps.c:1983:d2v0 HSR=0x80000005 pc=0xffff000c gva=0xffff000c gpa=0x000000ffff000c
> (XEN) arch/arm/traps.c:1983:d2v0 HSR=0x80000005 pc=0xffff000c gva=0xffff000c gpa=0x000000ffff000c
> ...
> 
> For now, I only put one hvc instruction in the FreeBSD code - it is where the
> kernel prints the copyright and version information to the console. So I don't
> understand why the message from the hvc instruction is appearing multiple times
> in the Xen logs...
> 
> In any case, this provides a way to debug the boot of FreeBSD / arm on Xen, so
> thanks, Stefano, for this suggestion!

You are welcome! :-)

I am glad you could make progress. You'll find that the hvc 0xfffd and
other debug hypercalls are really useful. Also it is easy to write using
just hvc and assembly a very simple early printk implementation. See the
__HYPERVISOR_console_io hypercall:

- immediate: 0xEA1
- r12: hypercall number 18
- r0: CONSOLEIO_write 0x0
- r1: number of chars
- r2: guest address of the string

Cheers,

Stefano
--8323329-767190743-1702426435=:1703076--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 01:09:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 01:09:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653683.1020115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDDke-00007r-4F; Wed, 13 Dec 2023 01:09:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653683.1020115; Wed, 13 Dec 2023 01: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 1rDDke-00007j-1G; Wed, 13 Dec 2023 01:09:28 +0000
Received: by outflank-mailman (input) for mailman id 653683;
 Wed, 13 Dec 2023 01:09:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8FWX=HY=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rDDkc-0008VR-D0
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 01:09:26 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e649cb0-9954-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 02:09:22 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Sqcnm0qcBz4f3jZ0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 09:09:16 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 54B1D1A093E
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 09:09:17 +0800 (CST)
Received: from [10.174.176.73] (unknown [10.174.176.73])
 by APP1 (Coremail) with SMTP id cCh0CgBntQs5BHllRkz5DQ--.6696S3;
 Wed, 13 Dec 2023 09:09:16 +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: 3e649cb0-9954-11ee-9b0f-b553b5be7939
Subject: Re: [PATCH RFC v2 for-6.8/block 01/18] block: add some bdev apis
To: Christoph Hellwig <hch@infradead.org>, Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
 kent.overstreet@gmail.com, joern@lazybastard.org, miquel.raynal@bootlin.com,
 richard@nod.at, vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com,
 hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
 jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com,
 josef@toxicpanda.com, dsterba@suse.com, viro@zeniv.linux.org.uk,
 brauner@kernel.org, nico@fluxnic.net, xiang@kernel.org, chao@kernel.org,
 tytso@mit.edu, adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
 konishi.ryusuke@gmail.com, willy@infradead.org, akpm@linux-foundation.org,
 p.raghav@samsung.com, hare@suse.de, linux-block@vger.kernel.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
 linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
 linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
 linux-fsdevel@vger.kernel.org, linux-erofs@lists.ozlabs.org,
 linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
 linux-nilfs@vger.kernel.org, yi.zhang@huawei.com, yangerkun@huawei.com,
 "yukuai (C)" <yukuai3@huawei.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140552.973290-2-yukuai1@huaweicloud.com>
 <ZXhdRhfr+JoWdhyj@infradead.org>
From: Yu Kuai <yukuai1@huaweicloud.com>
Message-ID: <893e2764-65a6-ef73-5ddf-95cd9f97cb19@huaweicloud.com>
Date: Wed, 13 Dec 2023 09:09:13 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <ZXhdRhfr+JoWdhyj@infradead.org>
Content-Type: text/plain; charset=gbk; format=flowed
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgBntQs5BHllRkz5DQ--.6696S3
X-Coremail-Antispam: 1UD129KBjvdXoW7Gw4fJw1rAF1UKF4fJrWDJwb_yoWfurcEqr
	n7Cryv9w1jvws5Wr4UKFy5JrWrJFWYyr43Xay8ta4Iq3s8Xa18Ar92ka48uas8Ww47Z3ZI
	9FsxuFy8uF4fujkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbaxFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w
	A2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j
	6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcVAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kI
	c2xKxwCYjI0SjxkI62AI1cAE67vIY487MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4
	AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE
	17CEb7AF67AKxVWrXVW8Jr1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCw
	CI42IY6xIIjxv20xvEc7CjxVAFwI0_Cr0_Gr1UMIIF0xvE42xK8VAvwI8IcIk0rVWrZr1j
	6s0DMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYx
	BIdaVFxhVjvjDU0xZFpf9x0JUd8n5UUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

Hi,

ÔÚ 2023/12/12 21:16, Christoph Hellwig Ð´µÀ:
>> +void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
>> +			   pgoff_t end)
>> +{
>> +	invalidate_mapping_pages(bdev->bd_inode->i_mapping, start, end);
>> +}
>> +EXPORT_SYMBOL_GPL(invalidate_bdev_range);
> 
> Can we have kerneldoc comments for the new helpers please?

Of course, will definitely do this in v3.
> 
>> +struct folio *__bdev_get_folio(struct block_device *bdev, loff_t pos,
>> +			       fgf_t fgp_flags, gfp_t gfp)
>> +{
>> +	return __filemap_get_folio(bdev->bd_inode->i_mapping, pos >> PAGE_SHIFT,
>> +				   fgp_flags, gfp);
>> +}
>> +EXPORT_SYMBOL_GPL(__bdev_get_folio);
> 
> It's a bit silly to have a __-prefixed API without a version that
> doesn't have the prefix, so I'd prefer to drop it.  Unless willy has
> a good argument for keeping it the same as the filemap API.

Ok, I'll drop it if willy doesn't against this.

Thanks,
Kuai
> 
> .
> 



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 01:10:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 01:10:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653686.1020125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDDlS-0001ej-DS; Wed, 13 Dec 2023 01:10:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653686.1020125; Wed, 13 Dec 2023 01:10:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDDlS-0001ec-AF; Wed, 13 Dec 2023 01:10:18 +0000
Received: by outflank-mailman (input) for mailman id 653686;
 Wed, 13 Dec 2023 01:10:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8FWX=HY=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rDDlQ-0000Zg-OW
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 01:10:16 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d1f77bf-9954-11ee-98e8-6d05b1d4d9a1;
 Wed, 13 Dec 2023 02:10:14 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Sqcpk02lXz4f3jrp
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 09:10:05 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 76D971A0881
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 09:10:08 +0800 (CST)
Received: from [10.174.176.73] (unknown [10.174.176.73])
 by APP1 (Coremail) with SMTP id cCh0CgDX2xFuBHlllVr5DQ--.61515S3;
 Wed, 13 Dec 2023 09:10:07 +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: 5d1f77bf-9954-11ee-98e8-6d05b1d4d9a1
Subject: Re: [PATCH RFC v2 for-6.8/block 01/18] block: add some bdev apis
To: Christoph Hellwig <hch@infradead.org>, Jan Kara <jack@suse.cz>
Cc: Yu Kuai <yukuai1@huaweicloud.com>, axboe@kernel.dk, roger.pau@citrix.com,
 colyli@suse.de, kent.overstreet@gmail.com, joern@lazybastard.org,
 miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
 sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
 gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
 martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
 dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
 nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
 adilger.kernel@dilger.ca, agruenba@redhat.com, jack@suse.com,
 konishi.ryusuke@gmail.com, willy@infradead.org, akpm@linux-foundation.org,
 p.raghav@samsung.com, hare@suse.de, linux-block@vger.kernel.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org,
 linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
 linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org,
 linux-fsdevel@vger.kernel.org, linux-erofs@lists.ozlabs.org,
 linux-ext4@vger.kernel.org, gfs2@lists.linux.dev,
 linux-nilfs@vger.kernel.org, yi.zhang@huawei.com, yangerkun@huawei.com,
 "yukuai (C)" <yukuai3@huawei.com>
References: <20231211140552.973290-1-yukuai1@huaweicloud.com>
 <20231211140552.973290-2-yukuai1@huaweicloud.com>
 <20231211165217.fil437byq7w2vcp7@quack3> <ZXhcsNbvzbArtBUj@infradead.org>
From: Yu Kuai <yukuai1@huaweicloud.com>
Message-ID: <718c424e-2514-8a14-b461-7e20b6355d16@huaweicloud.com>
Date: Wed, 13 Dec 2023 09:10:05 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <ZXhcsNbvzbArtBUj@infradead.org>
Content-Type: text/plain; charset=gbk; format=flowed
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDX2xFuBHlllVr5DQ--.61515S3
X-Coremail-Antispam: 1UD129KBjvdXoW7XF1DtryfCryDXw4DAry7Wrg_yoW3GFg_Xr
	909FW8K3W8A3ykJr43trs8Kr9YyFs2gr1UZrWrJ3W7X34kXFs8GFWvyr98WryfGw48CrnI
	kF9F934fJr92qjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbaxFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w
	A2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j
	6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcVAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kI
	c2xKxwCYjI0SjxkI62AI1cAE67vIY487MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4
	AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE
	17CEb7AF67AKxVWrXVW8Jr1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCw
	CI42IY6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Gr0_
	Zr1lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYx
	BIdaVFxhVjvjDU0xZFpf9x0JUCXdbUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

Hi,

ÔÚ 2023/12/12 21:14, Christoph Hellwig Ð´µÀ:
> On Mon, Dec 11, 2023 at 05:52:17PM +0100, Jan Kara wrote:
>>> +void bdev_associated_mapping(struct block_device *bdev,
>>> +			     struct address_space *mapping)
>>> +{
>>> +	mapping->host = bdev->bd_inode;
>>> +}
>>
>> Here I'm not sure - is the helper really a win? It seems a bit obscure to
>> me. This initialization of another mapping for a bdev looks really special.
> 
> If we want to hide bd_inode we'll something like this helper even if
> I don't particularly like it either.
> 
> But it might be a good idea to move out of this series and into the
> follow on removing bd_inode, as it's rather pointless without that
> context.

Yes, this sounds good, I'll remove this from v3.

Thanks,
Kuai

> .
> 



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 02:47:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 02:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653698.1020134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDFHR-0005zU-Hh; Wed, 13 Dec 2023 02:47:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653698.1020134; Wed, 13 Dec 2023 02:47: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 1rDFHR-0005zN-F2; Wed, 13 Dec 2023 02:47:25 +0000
Received: by outflank-mailman (input) for mailman id 653698;
 Wed, 13 Dec 2023 02:47: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=kw6B=HY=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rDFHQ-0005zH-NI
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 02:47:24 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20607.outbound.protection.outlook.com
 [2a01:111:f400:7e88::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f025b6ed-9961-11ee-98e8-6d05b1d4d9a1;
 Wed, 13 Dec 2023 03:47:22 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DM6PR12MB4218.namprd12.prod.outlook.com (2603:10b6:5:21b::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.36; Wed, 13 Dec
 2023 02:47:19 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Wed, 13 Dec 2023
 02:47: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: f025b6ed-9961-11ee-98e8-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bLAtuwND6IiIeEPX8o1GKLq59LJ3uqH9kXXqk1lXxt2sf0Y34htVI/sYwZxtWkQWYUc7kl9iNfltiObhhyGD0c8vD67lg0LIZiiWzWsvDxKdNsoutqm7jz49UlWltYnnQO1kryZukM6vnF9DX7DIG93cKTiaJo/0gEYtAIuCvFTHo+qxILIbOY8cygNOD8HS3TEFJ7m/XmjUohCHqUGs81Hb7m++UyqG0Y0vV4tHZaQB/U2auz0S0NTil8Jtm5dRaggjUX8Y5n15b5y9HAjHdRmT/KMvie0sp5rdrUwRkJ5WGpNHYNaxpKTUVAHZONb+81zDbSyeFjdx98Kk/VmHdA==
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=5nPLFwk9mtpN3JdlrGA0jQbp4AS228Zi0u1ktmTPUVg=;
 b=lxhgA+TbT/ht6hUm+Pq5v8Ljoy/d/xujzwEVfbO9/9+e7NvjDH7p2SvROmmCyhrfFV5/FU7i1zg7y9F/00Clj2psgIPx09k2Bte1bqlGO470OiVWuhT0kje1OWjNCqQWqYjSzC5BNxz0h/8nQK69hbMjmp1JSLGopDkHTdlauAyAVt+YA1QW5MVcsulH8JXvTEfkVZbQ3yfYec7+QBRgNm/DDK8Mc9uIjpcvhtT0ZLUstv5EgbIDYgB0YhBIQuJFfm+eMNrLhJoEAY/R6mxMxesHStdXkbHh2RSjyljPsJII4RwAHLEKJX9qVPDNb0W4lTZc4g1U0Q9v6d5ijCEgPA==
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=5nPLFwk9mtpN3JdlrGA0jQbp4AS228Zi0u1ktmTPUVg=;
 b=QO+lMOlOlIncIlyysOTKMGV4AWdv9I4mvp3NmFhmi6AFwXHJIXbfKtMPyLT/2vEzjWv7t2ha/Ohme7QzAGH4yR541X8pbV5Xw4dhdtvRnrEPlTE17CU39aSfcXEc4ZJsXUl26s62XjrmZbxdybe6tadbmJH6l4+vyEp94pOK09o=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Huang, Honglei1" <Honglei1.Huang@amd.com>, "Zhang,
 Julia" <Julia.Zhang@amd.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Topic: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Index: AQHaK4ebBv/EWT+No0GAUR8lU4172LCkNzqAgAGFPID//6gjAIABpqIA
Date: Wed, 13 Dec 2023 02:47:18 +0000
Message-ID:
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
In-Reply-To: <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA1PR12MB7663.namprd12.prod.outlook.com
 (15.20.7113.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_|DM6PR12MB4218:EE_
x-ms-office365-filtering-correlation-id: 70acd23b-9c24-4207-10b3-08dbfb85d2bd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 eQFopefHX1Fd1+9LgXfM00KQm5NRR+51QrfNQ5HAKEx5sheKgGz3QGGrnuyw47mbA/z9MG16RI4iAO6oeEuDFSd/DCLqsA/0eQjLsuv3SHVrtZ0tMpJ2IKY15GqIJcqiJrUCwJ40OSCa/TOGR4rBQNYvWkDrht6OLc4QaraNPs3Mriqijav0abvYc3Uqxd5k7BtL9WRowA4zH184TGH77wviVeqaqW9JZte6U2Bh/Rxiy4f9riWvsgn06s7u8f3dVbLQevaiBmXFnsY/jZb4JkETNsAWFzpp21mUEB4zg4HfnVURpCcZrd+s04pv/rfRs4eLkE67GMz/MszIQaiOtyYZ6klsz0TD0BupBqn+rSx8TaLfBREBlWSQqpAW5e3ew13DGEOcu/ZDoKvmcFJ1Yx2OgasxzuNHOLHl/T6P47rjnw9H/MLQI5VJdyPJZLa9Y4sHqakfTaaRqkQs27jn9oAYNXZDye8DbgJqW2nnhTGiK3sc+tmuDcGXp5kjbBmFyFUVtbxKHND+UmiUOob9OEp2EUhPI2XnRpQsWPFN5nwf9xYHuezInirNHAy+G9lxyzXFOl8i5+LwK2r398rdAD3+9XUMcIW3wZKZlVNCCSgklGp7JAeOOzVnpJUw62WZgJXhCIrn9uOZLgJlRJnEkkV0MTmSD5vklYhY6AdvSnk=
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:(13230031)(39860400002)(346002)(396003)(376002)(136003)(366004)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(53546011)(7696005)(83380400001)(6506007)(9686003)(122000001)(4326008)(5660300002)(8936002)(52536014)(8676002)(41300700001)(2906002)(478600001)(26005)(71200400001)(38100700002)(316002)(66556008)(66476007)(6916009)(64756008)(54906003)(66946007)(76116006)(33656002)(66446008)(38070700009)(55016003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eDZvRll3dmxOZEpnRTZZTzhJdlNIcE11ZGJNc2s4ZEhVanpHTlllSzVQVml6?=
 =?utf-8?B?aHFQODJKcGtEbW9kUzJXL3VIZ0dhYkxnNWk3TWdrckZoRngzU2FhTERyVDdu?=
 =?utf-8?B?eFRyUnFRWXFBRjluK2NWSXdpUjBLVDUxRG5RM1ZmVzRvN2x4ZXhmc2tNYUM2?=
 =?utf-8?B?TG9IbGV0ZHVZT3dkb3c5SjZKN241WmFjaE91WWh6dHhNOFRrQXB2UHlGYmVm?=
 =?utf-8?B?dW9DZGhBaXFmMUR3T3RXalNnK1ZWTStnMWV3aFFkZmFIakVudGppNnRNVlFa?=
 =?utf-8?B?Y3ZSUm1sb3FabmZxWGJTTTVxczArWlZEaHRCWmdpbXVpNkJYekNQclhjWU9h?=
 =?utf-8?B?aXFISmZiUDFYYWhZSVpnL290WDFZUS9ZQnZCK3ZRN0FIYkROUTIzZzJ6RjRn?=
 =?utf-8?B?L0p0bzZDclNjc0NOUmc4THVNYmtGVTlhNTZFMlQ3TVcrZ05BZXZWRDlBR0Vl?=
 =?utf-8?B?MUhYanB4NHdvQTBvMitjb1UvdERVM3psdVc5SHNQdlhsR1g5RDdpOC9BNmRj?=
 =?utf-8?B?T3hrZkE4ODRaUm9pZ1NBWVBSTXoxaDBpajBEWkY4QnRESitSZysyb2pvazBP?=
 =?utf-8?B?Q2hGbVNMLzk0dGI1Q0hmREJ3US80ZzRGdGVXSFRsbTVzUjBWVTRON2Nab3VM?=
 =?utf-8?B?WC9EeHRSSzBNYjFzVDFDaGdhZmt0NDVlbEwwUFRQbnV3dXQrL2srampQYm1P?=
 =?utf-8?B?UHVxQmllN3lHQ3hmZm5mS0NndXZoZnJNWjM1cEZ1dVE1QWdYL044SXV2RW1N?=
 =?utf-8?B?Y25WbzBxZUZNbGtEclgrMXcvWW5aSjNSbUpxVkFSRGpja3V4RVhPVGNOa1Fi?=
 =?utf-8?B?WElaVXg3OERlOFJDc20wN2ljd1dCZFp0Q2RFU2RlNVVScDNsbWdtUzZRbDNY?=
 =?utf-8?B?OGZtOEtBcW1WbkZvK21YdWozNWg4ZkFTbjJJY1BpNFMzM09XamxNSlA4Mkdt?=
 =?utf-8?B?RDE5OGJCM2NtWVpxOCttTDhUWFdENnhYaTB2WnFYOXJwb0VvWlRRU2xUZEhX?=
 =?utf-8?B?YThQWTExMHQ2ZUJjOEM0Y3doa1VncmY4UGNkTmpxby9lTDhaMDROUGZydDFJ?=
 =?utf-8?B?WEFnMTFWeS9MM1duRUdGTXE5ZG94aWpOcVhBMWNDU1EvYXVZLzZ4cDFGeTFv?=
 =?utf-8?B?YWVnU3pKVm1XNXRBRWZvZ2RWMUhGVzE2SEpvQ2l6RSttTHFqSkFueTh1dFRM?=
 =?utf-8?B?RXloMXo0U1FndXZJRDI5T1RabnRISTVXdDNja241ZFNhdmpyUG43cVNVQXEy?=
 =?utf-8?B?TkZxN1lVUFNwZVhkeG5HUFlkYkdzQlRBVkgxUnlaaTE0bGVVNC9Vekg5ek1s?=
 =?utf-8?B?Y1FnODNRNmp6c25NVzZBc1F0Mml6dEN3Ky9CNDBYdkdhUEpoVmR6dGkwY2lD?=
 =?utf-8?B?eWg1Nk9xYUYyUWVvMjZlNmxYOENBdTdadEpXV05rVWhPN0lWc0pUT1ZmbTlm?=
 =?utf-8?B?ZnhnNnl2UWRYV3g1RGs2YWZxV2ZpZGpyRnlKOVBCUGN2SE5sRDBwVVFSMlpU?=
 =?utf-8?B?bFUya3VLZDhOUFhTZWRGYmxBT1d5Ni8ySGplbWQ0Lzkxb1RHb3lpajAyekk2?=
 =?utf-8?B?aXR0UVBtOUkwSmo3R3RzU3Z6MjVyekh3bXAzMWIyWHp5U09MbWhjeGdqaHJ1?=
 =?utf-8?B?UGl0WTFERjkwblpmNG92SDZVZlZYNWhjMHVyWUlGbW16VHk4TFBLN3FOck1W?=
 =?utf-8?B?eHRzdXJCOEZzWGJ0TE1nTVY5b21ENHQvcEtXSHVaOEQ5ZFVzN2dVcEJNTGdW?=
 =?utf-8?B?OU5GUm5Rci9DM1VReUxrRFRoT0YzK0ZBUE56SEd6cHNMYVpQbFBaQ1B1MFF5?=
 =?utf-8?B?QUtWWEhCaEROaWl6UzZYWjAybVpRWVh2MW5vd28zZWpnTmlHTVF0dkNzUlYy?=
 =?utf-8?B?WDBoL3JvUDVUZkpzbDMwNyt0NUxjOTBrdkoyU2JZWFRCcDR4WFZBWnpXRkQ5?=
 =?utf-8?B?b0huT3QzdHNnRmt4MmV0cHNDbXQ0VVhQaitsNEpTQnV0NEFMS0VyY0Jsc0hh?=
 =?utf-8?B?OGdpejFlaGo5anpqb0l4VVdaTU1aNXVReFlJVkZrV3k5Tjd4Q0t6NUJYMklZ?=
 =?utf-8?B?eDQ3RDJYT2oydWE4NUo1Rm1FYnM4T3pHakNSQ1pVYWRNaGdNU3JqMG43L2Fn?=
 =?utf-8?Q?4Dog=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7ED9D4B5BB3E954093BD9184DBD241F7@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: 70acd23b-9c24-4207-10b3-08dbfb85d2bd
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 02:47:18.7369
 (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: OMQ19nSjwmuDsonLzRgk62lMF8AKrjD9mKGG+89ap0pENbmRxv56J618QFQfF5fKom3I9qWU4Tuqq6IJv5HeVQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4218

T24gMjAyMy8xMi8xMiAxNzozMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+IE9uIDEyLjEyLjIwMjMg
MDc6NDksIENoZW4sIEppcWlhbiB3cm90ZToNCj4+IE9uIDIwMjMvMTIvMTEgMjM6MzEsIFJvZ2Vy
IFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4gT24gTW9uLCBEZWMgMTEsIDIwMjMgYXQgMTI6NDA6MDhB
TSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+Pj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v
aHlwZXJjYWxsLmMNCj4+Pj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYw0KPj4+
PiBAQCAtNzIsOCArNzIsMTEgQEAgbG9uZyBodm1fcGh5c2Rldl9vcChpbnQgY21kLCBYRU5fR1VF
U1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+Pj4gIA0KPj4+PiAgICAgIHN3aXRjaCAoIGNt
ZCApDQo+Pj4+ICAgICAgew0KPj4+PiArICAgIGNhc2UgUEhZU0RFVk9QX3NldHVwX2dzaToNCj4+
Pg0KPj4+IEkgdGhpbmsgZ2l2ZW4gdGhlIG5ldyBhcHByb2FjaCBvbiB0aGUgTGludXggc2lkZSBw
YXRjaGVzLCB3aGVyZQ0KPj4+IHBjaWJhY2sgd2lsbCBjb25maWd1cmUgdGhlIGludGVycnVwdCwg
dGhlcmUncyBubyBuZWVkIHRvIGV4cG9zZQ0KPj4+IHNldHVwX2dzaSBhbnltb3JlPw0KPj4gVGhl
IGxhdGVzdCBwYXRjaCh0aGUgc2Vjb25kIHBhdGNoIG9mIHYzIG9uIGtlcm5lbCBzaWRlKSBkb2Vz
IHNldHVwX2dzaSBhbmQgbWFwX3BpcnEgZm9yIHBhc3N0aHJvdWdoIGRldmljZSBpbiBwY2liYWNr
LCBzbyB3ZSBuZWVkIHRoaXMgYW5kIGJlbG93Lg0KPj4NCj4+Pg0KPj4+PiAgICAgIGNhc2UgUEhZ
U0RFVk9QX21hcF9waXJxOg0KPj4+PiAgICAgIGNhc2UgUEhZU0RFVk9QX3VubWFwX3BpcnE6DQo+
Pj4+ICsgICAgICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJkKSApDQo+Pj4+ICsgICAg
ICAgICAgICBicmVhazsNCj4+Pg0KPj4+IEFsc28gSmFuIGFscmVhZHkgcG9pbnRlZCB0aGlzIG91
dCBpbiB2MjogdGhpcyBoeXBlcmNhbGwgbmVlZHMgdG8gYmUNCj4+PiBsaW1pdGVkIHNvIGEgUFZI
IGRvbTAgY2Fubm90IGV4ZWN1dGUgaXQgYWdhaW5zdCBpdHNlbGYuICBJT1c6IHJlZnVzZQ0KPj4+
IHRoZSBoeXBlcmNhbGwgaWYgRE9NSURfU0VMRiBvciB0aGUgcGFzc2VkIGRvbWlkIG1hdGNoZXMg
dGhlIGN1cnJlbnQNCj4+PiBkb21haW4gZG9taWQuDQo+PiBZZXMsIEkgcmVtZW1iZXIgSmFuJ3Mg
c3VnZ2VzdGlvbiwgYnV0IHNpbmNlIHRoZSBsYXRlc3QgcGF0Y2godGhlIHNlY29uZCBwYXRjaCBv
ZiB2MyBvbiBrZXJuZWwgc2lkZSkgaGFzIGNoYW5nZSB0aGUgaW1wbGVtZW50YXRpb24sIGl0IGRv
ZXMgc2V0dXBfZ3NpIGFuZCBtYXBfcGlycSBmb3IgZG9tMCBpdHNlbGYsIHNvIEkgZGlkbid0IGFk
ZCB0aGUgRE9NSURfU0VMRiBjaGVjay4NCj4gDQo+IEFuZCB3aHkgZXhhY3RseSB3b3VsZCBpdCBk
byBzcGVjaWZpY2FsbHkgdGhlIG1hcF9waXJxPyAoRXZlbiB0aGUgc2V0dXBfZ3NpDQo+IGxvb2tz
IHF1ZXN0aW9uYWJsZSB0byBtZSwgYnV0IHRoZXJlIG1pZ2h0IGJlIHJlYXNvbnMgdGhlcmUuKQ0K
TWFwX3BpcnEgaXMgdG8gc29sdmUgdGhlIGNoZWNrIGZhaWx1cmUgcHJvYmxlbS4gKHBjaV9hZGRf
ZG1fZG9uZS0+IHhjX2RvbWFpbl9pcnFfcGVybWlzc2lvbi0+IFhFTl9ET01DVExfaXJxX3Blcm1p
c3Npb24tPiBwaXJxX2FjY2Vzc19wZXJtaXR0ZWQtPmRvbWFpbl9waXJxX3RvX2lycS0+cmV0dXJu
IGlycSBpcyAwKQ0KU2V0dXBfZ3NpIGlzIGJlY2F1c2UgdGhlIGdzaSBpcyBuZXZlciBiZSB1bm1h
c2tlZCwgc28gdGhlIGdzaSBpcyBuZXZlciBiZSByZWdpc3RlcmVkKCB2aW9hcGljX2h3ZG9tX21h
cF9nc2ktPiBtcF9yZWdpc3Rlcl9nc2kgaXMgbmV2ZXIgYmUgY2FsbGVkKS4NCg0KPiANCj4gSmFu
DQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 03:02:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 03:02:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653703.1020144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDFVo-0000e2-Q6; Wed, 13 Dec 2023 03:02:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653703.1020144; Wed, 13 Dec 2023 03: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 1rDFVo-0000dv-ND; Wed, 13 Dec 2023 03:02:16 +0000
Received: by outflank-mailman (input) for mailman id 653703;
 Wed, 13 Dec 2023 03: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=kw6B=HY=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rDFVn-0000dp-NT
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 03:02: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 02cdbb71-9964-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 04:02:13 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by BL1PR12MB5850.namprd12.prod.outlook.com (2603:10b6:208:395::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Wed, 13 Dec
 2023 03:02:09 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Wed, 13 Dec 2023
 03:02: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: 02cdbb71-9964-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=bVTydhakzmGohF7cUp9c7KDlMdThUsR+nUbpNPLItEvRlSQV1ilZKWOsdfDrpMi3SHhlKcXQUVHFzXMXFNzBftxGPEABRK/h7lPuXOX2J3N4MaGhnsTDz+A8M7xB5uIQ+HSGpwzd13EjjlzKcu3fLGJLEmnaEaX55h7eGXX3d7Zq66M9OB+wDeEiK815TAKAStkDrqbWQBGj9yvvH4GDjdslmlmzElI34NFQG9AO+G29EKAUh1vFc8C6Rpo7Ugb8PXoSSW1Y/RbytVkKq8xKLJIKlLN52IB57Bb3CnFNCwpM3icOjGtLOD2Xtzf/s+g+QIbllGG0eppgvm/wdw36tA==
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=P5zil6xKw/XQCb1vlmlZZnzQ2j9Bb5ru/N04Rp9+aJI=;
 b=Xv8Sbh3vpUnWPMov1bmqJ5Qmf6nFva3ctmED4GfZlneEWJ9BAmSnP9zmzE4SN1fgddAYtxzCt2ttgGTEca/bab+HJ+tqdQc+znQpXDfGNIlVVQWTqZZTS+LY8ozCko0F6eacXRAEjWelawC53koPpn0sWn1s+BwT6DT5Zp8gx0GC98ZUPVPF6RLGWFRH4EH4MyVmNVeDsh5vDMsRtXKcEG/a1PulwnIolQme8Ra6s4m2EdBmaUl8B4eHzvXrS9Snccs7PdvoDUs/C3s7yFKT1WRRdZ31VlJ57Vx4ANuwrB42qhpp1GRIMkw3B32cThG7UArNMYugx9UqxgF3cAyiUA==
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=P5zil6xKw/XQCb1vlmlZZnzQ2j9Bb5ru/N04Rp9+aJI=;
 b=PwvFxHlkgC3f4JYmfWCUL12r5sXZ5eRic9Yhr1HQK0YjTRdzEsmlQLL7MTWSGPJSqfFF1S2qsfSpKDEP1vlGMOTvjZLv8oVRqlUgWGDkEHCvHarDPfEMiH9929nMoSRObj4wZ+RbP/Zj5HCOAYWy3gdEhhFHwuYtpyB9otAGfds=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Topic: [RFC KERNEL PATCH v3 1/3] xen/pci: Add xen_reset_device_state
 function
Thread-Index: AQHaK4QkzYDl8jqmzUObr+uXAc87xbClTeCAgAG/wAA=
Date: Wed, 13 Dec 2023 03:02:08 +0000
Message-ID:
 <BL1PR12MB5849151AA2D1F461EFF12E17E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-2-Jiqian.Chen@amd.com> <ZXgVGWLZEnLt0Pqn@macbook>
In-Reply-To: <ZXgVGWLZEnLt0Pqn@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA1PR12MB7663.namprd12.prod.outlook.com
 (15.20.7113.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_|BL1PR12MB5850:EE_
x-ms-office365-filtering-correlation-id: e9e78ff7-f4dd-4aec-015e-08dbfb87e552
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 lHfmfCdqEU8DuTIuBwRUkxHd8ljK6IDSX4AUSyTPn7I1LxgHpikfhh8DG/91cwFlZcTiZrc6HXML32OKgoie0FDuQLxCbNym2YPNekbAu3l2YiW9egFRgLEJQKnPKWMfCeHxgtddzUiH52r5aB4tMgj4daWHgkDUmkbvBA+ng5jpcyjVwUampE/aEaOUu3PIDrJdyRJFQ1jhKUs2W7cKWo7PhoDe7RGNz9ho2THtUr84qO1Z3dW0UWLPP4acLxnTYwJQe7a6APqMOMUqp2zDvysWhVc4U4cpFVKXzwCKT0XiEU63aFxBSHlLa6O7mkp3e4LE6ITEH+Mflq6ZXpzF/XlVFhxUD6bi21qVxCGMVLI9BqGMh21ZkVyFkq2SsaW3W7HhhWsOdFoXfi4FXIgEZqf+AG3B7qAK7h0lvg/FJGKrbpPEYfI6EsaO56uf1Mub8b7iOiXZUt5Ysr4G63N3fl8RV48aTBvqiSvmHeW01Bwn6fFrj7CapKWJE/bx4Phh+LYTtfbjmSMiLMqgFdpPts/YNZSZuyKESC8LdstqLdWo6lI0PMfn6VzhHLIy/yPcGfpxIEOzW80txpX4M2GOUlqCHpkdI14BJ3jc5H6RB5xcICBa6/bgJFbGrdJ6vGik
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:(13230031)(346002)(39860400002)(366004)(396003)(376002)(136003)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(52536014)(9686003)(53546011)(6506007)(5660300002)(26005)(33656002)(38070700009)(64756008)(6916009)(76116006)(66446008)(54906003)(66946007)(66476007)(66556008)(2906002)(83380400001)(478600001)(41300700001)(7696005)(55016003)(8936002)(8676002)(4326008)(122000001)(71200400001)(316002)(38100700002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UDhCVW1yNXovTDc0ZU03UGYra0tSQUVPWGQrVkkrdjhPajBYNjlaWUJodTAv?=
 =?utf-8?B?cUUwMEthOWkvaWQ5b0NYampTZkNTSTg1VzdtblpqSG5ndVZEZDFubm5yMktJ?=
 =?utf-8?B?SS9KK3l5cVFHUllNUC8wblVnWk1PWEFFbi9VQWRMNmxnSTFiaERKTjg0N1FE?=
 =?utf-8?B?OHJ5ZXV0ZUpqd3psay91NUJYNStmaUlFV3hrMFNVdU5oTERnSnpySHFxNGNr?=
 =?utf-8?B?aHhYL2pFM0lucHNGcTRLaStvQlVRdVRMSGo0dkg5RFBBd0lrRlFaYzY4TmE4?=
 =?utf-8?B?NmhUckdFVTBQODdqb2FiVGFRcGxJT1JLRlRoSkJkZk4vNThzeHlGWjlaWWxP?=
 =?utf-8?B?Z1poYmhPWVFBNEdKUjhGM0EybU5xWVQwaEpXY3hESFRRRFlMNmJGU2oveUtX?=
 =?utf-8?B?UjFzOWNRMUszZ2dUdWlsRFpzRWMyd2dydy9DcXkrOTluTlIyTVkzVmJyTlhR?=
 =?utf-8?B?d3pLdEFkdVVvbFlvQVRNV0ZOaU9zZ0Z6S2RBQ0xxd3VaUlh1dE9qdENVR0Fp?=
 =?utf-8?B?dXpnUWFBcDdINGE1cE92ZWZuQVd3SnRtcWNGODJ5NVduR2dlL0NEalgvR3Ez?=
 =?utf-8?B?ODFadVZ6RmZmeUxlK1FoUW51eHdPay9YQlFuODZHTlhSamVtTUVqYjNpemU1?=
 =?utf-8?B?VGlvcGlqZEtRam9IU3hZN3JOR0ZGbTZsbk9zdGtpOHM2TnY4eENUazRCaStX?=
 =?utf-8?B?ZXE4MUdsU0pjdWloa0ZKemx1OVJnU09SeCtVd3JMZENaaGNnUUF5eklNTWxF?=
 =?utf-8?B?S1E0R1AzZmZmL0J5YzVmUDNVaU9VbVphdXZtOHJvTFVHa2N2T3E0NWI5Y3Jv?=
 =?utf-8?B?MDhnYVZGZU10bWk0NFlnOTRqdWRSaTcvblBVTWg2KzJVRE1pUW5rdm9SSERO?=
 =?utf-8?B?VVZ6NFNNZ1dPZ1gvODdzM3ltSVViRlp6K0J5TWprR09UWkl4aGsyRWdMeTFM?=
 =?utf-8?B?ZzBsL2pta29uZEdWQmI2QXdhczZ5S1NyQWNXZGNuVlpUcGJXTlBmOTR0WEMv?=
 =?utf-8?B?VnFjU2NzUjJlYVArYzdENkYxNFBLVXdTODBCWXV2dXN6dithSTJDWTRBT0RL?=
 =?utf-8?B?R3pFdHBlK01sUEIrTzlLbHVOcmJOV2ZjRDlLQ3pYNjM1eXJQVzBkbWJ2bXk1?=
 =?utf-8?B?b1ZRVHVMZUowM09vK0Z2SndwLzl1OUY2ZzJLVk96d0EyaU1mVm1QTWt5ajJ0?=
 =?utf-8?B?cE1RMVErenRKSzgyd21SL0syTFEzaVQ4Vm9JZWwzSktOY3J2NDdpcCtpa24x?=
 =?utf-8?B?ZEdNODFmM2thTWpsd3JtZjRJMjd1V2FmQkxra28xeFRkUjlxNTZrd0pzaUpy?=
 =?utf-8?B?Q0l5alRXTG8zQXNRTW5KejQyVDdEOW0zWDFpUld5VEs4ZkZVNE8rNVVYV0w3?=
 =?utf-8?B?M2lqUllacEdOakQvdUdmeXY3ZnBBUFhvRm9EQVZxVXh1K01GSWRSdlZuaWdC?=
 =?utf-8?B?UkUzd1FERGVkNVYwTDNKSUtRd3V3SkxLY1ZrT0RUSEkyeEN1NnBDRnNzOEN1?=
 =?utf-8?B?dVR2eUlUSjJZYzkxTk5lZDZ6U0M0dU04ZU1ITmlSM20xQWU1dWJKS2JYL1pa?=
 =?utf-8?B?ZDEzeDhTV3N4NVkvcmdzYlJSQ0RlV1ZBWHkvSUU1dzV3YXU2VXlaN0dDaDBX?=
 =?utf-8?B?YjFiemxwQlVXb1pmNUwxUi9pZmJIM25uYmpmeHlBRFVlVzNOLzNhdzFlNWRu?=
 =?utf-8?B?WXdOSzlROGlpV2V2U28vSXN2K1JiRjJ0eUpqeDdYdnVDSGNSZnFrYUNwazFE?=
 =?utf-8?B?d3dkZmRpc3hELzRvYUUzRTEwNHZNRU5wVHltUnVOUmJ2RzVsSHJTbFhxbENy?=
 =?utf-8?B?ckdsT045WkUxSFZ4NG11Vkk5NHFHSCt3b29yTzRhZW1kV0pWYVZ4ODVqMHp0?=
 =?utf-8?B?bjd2NmR5RjdpOFl1ZTlhSDJRR3FlU1Rtd3kwQ0IwaFMwbkx1T05EcjRIRWlW?=
 =?utf-8?B?aXM1Z1FiUWpFZjlQc01jcTk2SHIvT3pWR2toQmJGYUFlSEM0aCthMmFrOFFp?=
 =?utf-8?B?cVhFRVVWK3BaeUZkVTVYR3VyU2tXRG01WVl6STRXQ2pjK1RtTzI3K3crcndL?=
 =?utf-8?B?WDFEN2NRanE3ZUZISHc4bFhSSkdDN2Y0NWwzd3lHVW5RaCtYK1pvWGhBVzNL?=
 =?utf-8?Q?ys2U=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9401DBBBFF149F4981634C8E051B5B5F@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: e9e78ff7-f4dd-4aec-015e-08dbfb87e552
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 03:02:08.9155
 (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: Na9Ger++rlLCj1xKomm7FVmLhMvR6oXCzIYTXIFRjfxwo25SIG6iUkdzldnkzvRSXvM9NLlwnUEBIa7NHdwJDw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5850

T24gMjAyMy8xMi8xMiAxNjowOCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gTW9uLCBE
ZWMgMTEsIDIwMjMgYXQgMTI6MTU6MTdBTSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBX
aGVuIGRldmljZSBvbiBkb20wIHNpZGUgaGFzIGJlZW4gcmVzZXQsIHRoZSB2cGNpIG9uIFhlbiBz
aWRlDQo+PiB3b24ndCBnZXQgbm90aWZpY2F0aW9uLCBzbyB0aGF0IHRoZSBjYWNoZWQgc3RhdGUg
aW4gdnBjaSBpcw0KPj4gYWxsIG91dCBvZiBkYXRlIHdpdGggdGhlIHJlYWwgZGV2aWNlIHN0YXRl
Lg0KPj4gVG8gc29sdmUgdGhhdCBwcm9ibGVtLCBhZGQgYSBuZXcgZnVuY3Rpb24gdG8gY2xlYXIg
YWxsIHZwY2kNCj4+IGRldmljZSBzdGF0ZSB3aGVuIGRldmljZSBpcyByZXNldCBvbiBkb20wIHNp
ZGUuDQo+Pg0KPj4gQW5kIGNhbGwgdGhhdCBmdW5jdGlvbiBpbiBwY2lzdHViX2luaXRfZGV2aWNl
LiBCZWNhdXNlIHdoZW4NCj4+IHVzaW5nICJwY2ktYXNzaWduYWJsZS1hZGQiIHRvIGFzc2lnbiBh
IHBhc3N0aHJvdWdoIGRldmljZSBpbg0KPj4gWGVuLCBpdCB3aWxsIHJlc2V0IHBhc3N0aHJvdWdo
IGRldmljZSBhbmQgdGhlIHZwY2kgc3RhdGUgd2lsbA0KPj4gb3V0IG9mIGRhdGUsIGFuZCB0aGVu
IGRldmljZSB3aWxsIGZhaWwgdG8gcmVzdG9yZSBiYXIgc3RhdGUuDQo+Pg0KPj4gQ28tZGV2ZWxv
cGVkLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTog
SmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+PiAtLS0NCj4+ICBkcml2ZXJzL3hl
bi9wY2kuYyAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrKysrKysrDQo+PiAgZHJpdmVycy94
ZW4veGVuLXBjaWJhY2svcGNpX3N0dWIuYyB8ICA0ICsrKysNCj4+ICBpbmNsdWRlL3hlbi9pbnRl
cmZhY2UvcGh5c2Rldi5oICAgIHwgIDggKysrKysrKysNCj4+ICBpbmNsdWRlL3hlbi9wY2kuaCAg
ICAgICAgICAgICAgICAgIHwgIDYgKysrKysrDQo+PiAgNCBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNl
cnRpb25zKCspDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3BjaS5jIGIvZHJpdmVy
cy94ZW4vcGNpLmMNCj4+IGluZGV4IDcyZDRlM2YxOTNhZi4uZTliMzBiYzA5MTM5IDEwMDY0NA0K
Pj4gLS0tIGEvZHJpdmVycy94ZW4vcGNpLmMNCj4+ICsrKyBiL2RyaXZlcnMveGVuL3BjaS5jDQo+
PiBAQCAtMTc3LDYgKzE3NywxOCBAQCBzdGF0aWMgaW50IHhlbl9yZW1vdmVfZGV2aWNlKHN0cnVj
dCBkZXZpY2UgKmRldikNCj4+ICAJcmV0dXJuIHI7DQo+PiAgfQ0KPj4gIA0KPj4gK2ludCB4ZW5f
cmVzZXRfZGV2aWNlX3N0YXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXYpDQo+PiArew0KPj4g
KwlzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlIGRldmljZSA9IHsNCj4+ICsJCS5zZWcgPSBwY2lf
ZG9tYWluX25yKGRldi0+YnVzKSwNCj4+ICsJCS5idXMgPSBkZXYtPmJ1cy0+bnVtYmVyLA0KPj4g
KwkJLmRldmZuID0gZGV2LT5kZXZmbg0KPj4gKwl9Ow0KPj4gKw0KPj4gKwlyZXR1cm4gSFlQRVJW
SVNPUl9waHlzZGV2X29wKFBIWVNERVZPUF9wY2lfZGV2aWNlX3N0YXRlX3Jlc2V0LCAmZGV2aWNl
KTsNCj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTF9HUEwoeGVuX3Jlc2V0X2RldmljZV9zdGF0ZSk7
DQo+PiArDQo+PiAgc3RhdGljIGludCB4ZW5fcGNpX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9i
bG9jayAqbmIsDQo+PiAgCQkJICAgIHVuc2lnbmVkIGxvbmcgYWN0aW9uLCB2b2lkICpkYXRhKQ0K
Pj4gIHsNCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5j
IGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpX3N0dWIuYw0KPj4gaW5kZXggZTM0YjYyM2U0
YjQxLi4yNGY1OTllYWVjMTQgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFj
ay9wY2lfc3R1Yi5jDQo+PiArKysgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5j
DQo+PiBAQCAtNDIxLDYgKzQyMSwxMCBAQCBzdGF0aWMgaW50IHBjaXN0dWJfaW5pdF9kZXZpY2Uo
c3RydWN0IHBjaV9kZXYgKmRldikNCj4+ICAJZWxzZSB7DQo+PiAgCQlkZXZfZGJnKCZkZXYtPmRl
diwgInJlc2V0dGluZyAoRkxSLCBEMywgZXRjKSB0aGUgZGV2aWNlXG4iKTsNCj4+ICAJCV9fcGNp
X3Jlc2V0X2Z1bmN0aW9uX2xvY2tlZChkZXYpOw0KPj4gKwkJaWYgKCF4ZW5fcHZfZG9tYWluKCkp
DQo+PiArCQkJZXJyID0geGVuX3Jlc2V0X2RldmljZV9zdGF0ZShkZXYpOw0KPj4gKwkJaWYgKGVy
cikNCj4+ICsJCQlnb3RvIGNvbmZpZ19yZWxlYXNlOw0KPiANCj4gSSB0aGluayB5b3UgYXJlIG1p
c3Npbmcgb3RoZXIgaW5zdGFuY2VzIHdoZXJlDQo+IF9fcGNpX3Jlc2V0X2Z1bmN0aW9uX2xvY2tl
ZCgpIGlzIGNhbGxlZCBpbiBwY2lfc3R1Yi5jPyAgU2VlDQo+IHBjaXN0dWJfZGV2aWNlX3JlbGVh
c2UoKSBhbmQgcGNpc3R1Yl9wdXRfcGNpX2RldigpLg0KU29ycnksIEkgZGlkbid0IGNvbnNpZGVy
IHRoZSBzaXR1YXRpb24gdG8gZnJlZSBwYXNzdGhyb3VnaCBkZXZpY2UuIFlvdSBhcmUgcmlnaHQu
DQoNCj4gDQo+IE92ZXJhbGwgSSdtIG5vdCBzdXJlIHdoeSB0aGUgaHlwZXJjYWxsIHdyYXBwZXIg
bmVlZHMgdG8gbGl2ZSBpbg0KPiB4ZW4vcGNpLmMuICANCkZvciBvdGhlciBwb3NzaWJsZSBzY2Vu
YXJpb3Mgd2hlcmUgdGhpcyBmdW5jdGlvbiBtYXkgYmUgdXNlZD8NCg0KPiBJIHRoaW5rIGl0IHdv
dWxkIGJlIGJldHRlciBpZiB5b3UgY291bGQgY3JlYXRlIGEgc3RhdGljIHdyYXBwZXIgaW4gcGNp
X3N0dWIuYyB0aGF0IGRvZXMgdGhlIGNhbGwgdG8NCj4gX19wY2lfcmVzZXRfZnVuY3Rpb25fbG9j
a2VkKCkgcGx1cyBQSFlTREVWT1BfcGNpX2RldmljZV9zdGF0ZV9yZXNldC4NCj4gVGhhdCB3b3Vs
ZCBtYWtlIGl0IGxlc3MgbGlrZWx5IHRoYXQgbmV3IGNhbGxlcnMgb2YNCj4gX19wY2lfcmVzZXRf
ZnVuY3Rpb25fbG9ja2VkKCkgYXJlIGludHJvZHVjZWQgd2l0aG91dCBub3RpY2luZyB0aGUgbmVl
ZA0KPiB0byBhbHNvIGNhbGwgUEhZU0RFVk9QX3BjaV9kZXZpY2Vfc3RhdGVfcmVzZXQuDQpPaywg
SSB3aWxsIGFkZCBhIG5ldyBmdW5jdGlvbiB0byBkbyBfX3BjaV9yZXNldF9mdW5jdGlvbl9sb2Nr
ZWQgYW5kIFBIWVNERVZPUF9wY2lfZGV2aWNlX3N0YXRlX3Jlc2V0IGluIHBjaV9zdHViLmMNCg0K
PiANCj4gVGhhbmtzLCBSb2dlci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4N
Cg==


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 03:31:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 03:31:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653707.1020155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDFy7-0005HJ-3M; Wed, 13 Dec 2023 03:31:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653707.1020155; Wed, 13 Dec 2023 03:31:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDFy6-0005HC-Vp; Wed, 13 Dec 2023 03:31:30 +0000
Received: by outflank-mailman (input) for mailman id 653707;
 Wed, 13 Dec 2023 03: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=kw6B=HY=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rDFy5-0005H6-9t
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 03:31:29 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2412::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 17eb9054-9968-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 04:31:26 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by BL1PR12MB5874.namprd12.prod.outlook.com (2603:10b6:208:396::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Wed, 13 Dec
 2023 03:31:21 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Wed, 13 Dec 2023
 03:31: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: 17eb9054-9968-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=a0KmnSGD+XtvqwhWshbYe5ojnkJq4fVvtGSvTCvwaBpkQi5qPfhPHcxsYrmNk380Jdq3ppya5L9dpNn+Fpe92UDO+OMyJnEZkEAyL6VQNneNBqHglVlcR9b0VCARlJh5RLPORXJlz37KNolSczlQzrZxrX9JiYyJq6WjLYvxjw7YIenRnel8QnwUshXKRGfcv+C2SVTJj4w3/frTJGk42D96XSm6NZ4unjnkDbKenjO+WlqSX4TIYNeF7Nr2lCAbWG4KYErQ9SnoZzrv/5TPom1VuOR2em/6ML0ifdibo5URPWRd21WTMOmsqMy6bhwuxPaFszu1k8E01LjMtIojuw==
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=JYgQuZUw/YxUYU1oh0lyRWrpXbyROUacQ8m6s5auS74=;
 b=I2gWK+F82a7MhlcyDNMOY62JCrhi345Z6riaFB1Dsvj795J9foVeoKBY+IP3fbRBCQW3o2zLscXAgH8QV8R3OlyUEMytNSpvLaddjcyJ3fdfIm2tDOs4uh0admvJaJ2CaIJQZl+N+a7O+Auwv42cg2cB6uQD3GXCEcRbuoHQM/fqd6dJsTX5KCPwNJNqdmhGOvAEQzxSI9lj9GjyaW7kj3fAIDv3D48bzD10SzBtOSZ7k8+7qlZL200IYUhmki7SCigLKWSPIr0K+p1sFITXEgunDp6nhDffLGrRG2wceM0dBZ/ekNgyT8aEo8k2Mnw8r0hsGkXux8iltxKm4dj1cA==
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=JYgQuZUw/YxUYU1oh0lyRWrpXbyROUacQ8m6s5auS74=;
 b=W/F7nbiZed+MtQhMfdSIXNJb/mvXotb7Bgp/pc6yiblTnzpdFMM0FJVNUlEsDPf/XcKWe0EAP/BFScZRFBWCSxJ8tyzA3I/QSmN/j7iNwF/JLo45T9n6RR1fC6LAPS7asTFSiiGghrZkaobNsF9Bu5t37HRWxKUi8wFgbxjp7pE=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "linux-pci@vger.kernel.org"
	<linux-pci@vger.kernel.org>, "linux-acpi@vger.kernel.org"
	<linux-acpi@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Thread-Topic: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Thread-Index: AQHaK4Q534ViUL7xiE2p4ymr6ObEurCkX+6AgAFU/YD//6xNgIABr6aA
Date: Wed, 13 Dec 2023 03:31:21 +0000
Message-ID:
 <BL1PR12MB584973D751EB57C3DE766AEEE78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-4-Jiqian.Chen@amd.com> <ZXdNf0HWs4nAVPeF@macbook>
 <BL1PR12MB584910C2E370BBCC8A312733E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXglU0EtBrRNiWVp@macbook>
In-Reply-To: <ZXglU0EtBrRNiWVp@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: MN0PR12MB6151.namprd12.prod.outlook.com
 (15.20.7113.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_|BL1PR12MB5874:EE_
x-ms-office365-filtering-correlation-id: 20f85686-a2ee-4391-91ab-08dbfb8bf9d9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 ZcHB7floJ0w84FEhlUG/YcoG8n6+WbH/Q1KTCTNEK0hx/eUvffX8QepqsFbZpNrQy1guHf0phLqDnLZVxJC2LoSFrhlwAdO/PDwcISArxedeqlE1aECqdwtH4sw1JUlVuV2G1wiLTj7exYMtnvK88kBQTuV8e+8cnfgsgwpMJPt8ma5gh8XmpKQP6DPPntSLNLvJKvq8iu0ymdy/OyR2jxN/doY/3PQZvcSPEwhmAgp4+DY/ZduNpoWC61ZP9CxPQCgNGUDzjFlJw9ToWENGLf26S60tEKpnbD01lOwEYbRycHXVr4XB8cdKra0ozbj3owMNg0y9/buNQUBVQm6WG1fHYjDl1V1lda/wJXrTBvxQyZO8iIS0Jj5krWkktRObSZVrSWdJ1Tfw+RXx1cJTdChIIYPSDRo7GFEZ+1nWmy4414Ao7mHlaPfIGSlwpGiZTs7bbsJI6CZIsV5108y83KHcWJ1cOVcpEjMvY+nCMjTG3M9U7ipm14KUlevdOCguHj/VKa3CMFBkgZxsKFQ3oBbFVbH9FigIwtnqcxRAwmRy2ddU1YVEUwdlN7OZy5yQ7Q0pFz5sAofVBnIZiTLJTL42yZJB+5bz8i42MtHIpA8FHKSsKlUeadnyefijDmzC
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:(13230031)(136003)(376002)(346002)(366004)(39860400002)(396003)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(55016003)(478600001)(71200400001)(6506007)(7696005)(26005)(9686003)(53546011)(122000001)(38070700009)(38100700002)(33656002)(41300700001)(76116006)(6916009)(66446008)(66476007)(64756008)(5660300002)(2906002)(54906003)(83380400001)(66946007)(66556008)(52536014)(4326008)(316002)(8676002)(8936002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?anJFTGEvRGg1Yk9LeWlVcWczeXVuL0RzRmhuRHhkemNaQWZTaGIwam5ESkRT?=
 =?utf-8?B?MlpXeEY0WS9jVVYrMlJiQk9BdENpd3ZEZHlVZW9CVlJxTlNzTm9MUmhZRFk4?=
 =?utf-8?B?U1R0ak54Z1M1Rk1PV3ZPUGNxWnI0TGhRYWJXcGZSQ2pEWmRYa0FMVjNjeEdq?=
 =?utf-8?B?bEF4cHJoTUZoRUQvQlVoNW9halFuMjhmekRraWNLc1NPK0hHL3R4Y1Vtd2xT?=
 =?utf-8?B?THhoWnB4UmdzczBmWCtnS2xVb0c2R0hNdEhlSFpMSUVZYmVUcHE5MnhBMjRm?=
 =?utf-8?B?K1ZVQlpOb3pwZVRuUGJscTF3b2RQR1FUckhQZWxROEluYTAzY1hyZkd4cmtv?=
 =?utf-8?B?TklqOTR1bG95Mkk3YTI1Q1RFSDE2WXRsRXM5eXkzejZURHU0a0lQbW4xSjZ1?=
 =?utf-8?B?ald0K1Vmb3dlckpGYXZLNm5Qa24wcHFTN1o3cDR4OWVMUEpONmtqTlJUbHRp?=
 =?utf-8?B?alg2dXpQNklYbDhpcURvdk51Vml1a2p0ZGtTWGJXTS9BMTZZWnNjK2QzekFy?=
 =?utf-8?B?eHdIV05YT0E3bCtnS0dqbGxiYkpDSzYyZDVLWW9laUdYOGlLSUlLWjl0UzU5?=
 =?utf-8?B?RXVDR3RhT0d3b1YxV0RCUmxaVzF6SjNqMXVBdlFOOVhyS29KTFptWXFvZSt3?=
 =?utf-8?B?WnRLdDg2eDErZkJPQnAxazRaUTYwaFhOT3Z0eWQ5anZ3OWM5Wk5NWHI3UUZ5?=
 =?utf-8?B?L0FGM1U3ZUF5SXc2Y1QveFRxSzYxaVpmYmpWQmVQc2tZdElMOVNKeUhaYkRF?=
 =?utf-8?B?R0hDL1MwaVNVcHlnaldiV1NWSURPRE1VbUVHMWI1M01uWlg3ZTJqQmFGSUtL?=
 =?utf-8?B?RHROQnY3c1JmR1B2Y2MrYjdTNnJXWTMwOVZFMjBtaEtjemVNSElJWGlDazZv?=
 =?utf-8?B?VnBnMGIxd0ZrTGZNYzBxcUxqclFDeUxMS1cwK0RCSllwQ0V1bDlVSkVyZzU3?=
 =?utf-8?B?VE50QnJ1UGtvcEJYY2dtc3UrblhoK05UbzhNS0dUQ2FIbnI1dzduTXArT0cz?=
 =?utf-8?B?ZnM1YTcwWXVPVk85UEcwb09SWkR1TkMzOVR3ckx0WWtmeDJ5MVZWWFgvT05t?=
 =?utf-8?B?YnNHWS8wa2QyeGU2c05SVE52VWxOcVB1ZXNadmd4REo0KzVoQVEyMS8yOG5L?=
 =?utf-8?B?SzBtR0tHSFcxeDlYVGxuTEZtN2xFeXhFaGR0N25MMHVGQ1V6aFZxbmNwSHda?=
 =?utf-8?B?OEhIY3ltbnNBV09sNWl0V0tPVTVJRWRNcHBFbkY4K1hNT0svZHJGODF5Vncw?=
 =?utf-8?B?S0N5VG5JQ0hVcWw5bzMvV3Q4NGpkQlNPQ09BTWdzVXNKWTR5WENtTHlmYzVI?=
 =?utf-8?B?S2lvcmYyWjdqRDlsYS80Wk1JbDR2QlBlbEF3OE1hdXlIUFVqL2gyWmtPWS9R?=
 =?utf-8?B?ZzhObjFWTlhsdjZ2ekI4VXBMYUpqRlFaeTBpYmJLRUJxSUg3ZkJiUGZERWJ2?=
 =?utf-8?B?TVV6b2VXbUZTZ1k3KzFkdG9sUnBIbHpZMW1rTitYbklPdkJQdzlSNVp2RGY0?=
 =?utf-8?B?QWEwWFJ3bGF2b1RFVzVkOVZVNzhQK1phdG1acjdRMDAxczNWSTR0UlNtQjA5?=
 =?utf-8?B?NGdDVHRJdjhzcUpXWU1UYWZOaEhrNlZNWjloYktpOXZpWHFvNkg4bjFkc1dh?=
 =?utf-8?B?cWlvRkpYQ05WbURzWE1PazJTNXFkcnQ5NVY5Qk55OHd2eXdQeStCbURSdGtX?=
 =?utf-8?B?OWR3TGUvbWVaeG1xY0JPZVE5VkVtSHoxcHJYeDc0eTBweU9zTEExTFdrdGhq?=
 =?utf-8?B?OVBITHFlWGxLc3NjdmZEYy9yT0NaYnQ0MkZRWVFzTlBnL1VuRmtqbkhiVlor?=
 =?utf-8?B?Rm5UcGpOTVA1blNnMS9zV29XbCtDeGpXVTZyazFYSEdtaStvRWZiei9tNTJT?=
 =?utf-8?B?TVFRVHlJbzVvcytrVFlNVFJnNVJPeWpOWCs0TU40VitpSGZnUHBpRmRnMXBl?=
 =?utf-8?B?Z1JVK3d5enFxK0NRd0JIY2lPcWFLd2ZvRjlEUFBmUk1PT2k3SllSdFFUdXN0?=
 =?utf-8?B?ajRzVUI5RVpxNnVwYysrZmNmUkxHZzl3ZjR5alFPWENNWjVCZitnVkxnMnNK?=
 =?utf-8?B?VXFrVVBaTDcyQmZkVHpNWHlGM09MbWcvT3BqdWFON09tTlZDd1N5UEtXR2ZB?=
 =?utf-8?Q?ey2A=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E09FF16BF408DB4994D2147D91EA5D59@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: 20f85686-a2ee-4391-91ab-08dbfb8bf9d9
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 03:31:21.3463
 (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: SgkuQ1qFMMaIquj0Kf8mzwDR0ghMHaljl/WYYyAVYdhXZ0tXN346M1CVkCmnw5P+9RUkiVS2/5qxMgalQBdMsw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5874

T24gMjAyMy8xMi8xMiAxNzoxOCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gVHVlLCBE
ZWMgMTIsIDIwMjMgYXQgMDY6MzQ6MjdBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4N
Cj4+IE9uIDIwMjMvMTIvMTIgMDE6NTcsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4gT24g
TW9uLCBEZWMgMTEsIDIwMjMgYXQgMTI6MTU6MTlBTSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6
DQo+Pj4+IFRoZXJlIGlzIGEgbmVlZCBmb3Igc29tZSBzY2VuYXJpb3MgdG8gdXNlIGdzaSBzeXNm
cy4NCj4+Pj4gRm9yIGV4YW1wbGUsIHdoZW4geGVuIHBhc3N0aHJvdWdoIGEgZGV2aWNlIHRvIGR1
bVUsIGl0IHdpbGwNCj4+Pj4gdXNlIGdzaSB0byBtYXAgcGlycSwgYnV0IGN1cnJlbnRseSB1c2Vy
c3BhY2UgY2FuJ3QgZ2V0IGdzaQ0KPj4+PiBudW1iZXIuDQo+Pj4+IFNvLCBhZGQgZ3NpIHN5c2Zz
IGZvciB0aGF0IGFuZCBmb3Igb3RoZXIgcG90ZW50aWFsIHNjZW5hcmlvcy4NCj4+Pj4NCj4+Pj4g
Q28tZGV2ZWxvcGVkLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0KPj4+PiBTaWdu
ZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4+Pj4gLS0tDQo+
Pj4+ICBkcml2ZXJzL2FjcGkvcGNpX2lycS5jICB8ICAxICsNCj4+Pj4gIGRyaXZlcnMvcGNpL3Bj
aS1zeXNmcy5jIHwgMTEgKysrKysrKysrKysNCj4+Pj4gIGluY2x1ZGUvbGludXgvcGNpLmggICAg
IHwgIDIgKysNCj4+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKQ0KPj4+Pg0K
Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3BjaV9pcnEuYyBiL2RyaXZlcnMvYWNwaS9w
Y2lfaXJxLmMNCj4+Pj4gaW5kZXggNjMwZmUwYTM0YmM2Li43MzlhNTg3NTVkZjIgMTAwNjQ0DQo+
Pj4+IC0tLSBhL2RyaXZlcnMvYWNwaS9wY2lfaXJxLmMNCj4+Pj4gKysrIGIvZHJpdmVycy9hY3Bp
L3BjaV9pcnEuYw0KPj4+PiBAQCAtNDQ5LDYgKzQ0OSw3IEBAIGludCBhY3BpX3BjaV9pcnFfZW5h
YmxlKHN0cnVjdCBwY2lfZGV2ICpkZXYpDQo+Pj4+ICAJCWtmcmVlKGVudHJ5KTsNCj4+Pj4gIAkJ
cmV0dXJuIDA7DQo+Pj4+ICAJfQ0KPj4+PiArCWRldi0+Z3NpID0gZ3NpOw0KPj4+DQo+Pj4gSXQg
d291bGQgYmUgYmV0dGVyIGlmIHRoZSBnc2kgaWYgZmV0Y2hlZCB3aXRob3V0IHJlcXVpcmluZyBj
YWxsaW5nDQo+Pj4gYWNwaV9wY2lfaXJxX2VuYWJsZSgpLCBhcyB0aGUgZ3NpIGRvZXNuJ3QgcmVx
dWlyZSB0aGUgaW50ZXJydXB0IHRvIGJlDQo+Pj4gZW5hYmxlZC4gIFRoZSBnc2kgaXMga25vd24g
YXQgYm9vdCB0aW1lIGFuZCB3b24ndCBjaGFuZ2UgZm9yIHRoZQ0KPj4+IGxpZmV0aW1lIG9mIHRo
ZSBkZXZpY2UuDQo+PiBEbyB5b3UgaGF2ZSBhbnkgc3VnZ2VzdCBwbGFjZXMgdG8gZG8gdGhpcz8N
Cj4gDQo+IEknbSBub3QgYW4gZXhwZXJ0IG9uIHRoaXMsIGJ1dCBkcml2ZXJzL3BjaS9wY2ktc3lz
ZnMuYyB3b3VsZCBzZWVtIGxpa2UNCj4gYSBiZXR0ZXIgcGxhY2UsIHRvZ2V0aGVyIHdpdGggdGhl
IHJlc3Qgb2YgdGhlIHJlc291cmNlcy4NCkknbSBub3QgZmFtaWxpYXIgd2l0aCB0aGlzIHRvby4g
QnV0IGl0IHNlZW1zIHBjaS1zeXNmcy5jIG9ubHkgY3JlYXRlcyBzeXNmcyBub2RlIGFuZCBzdXBw
b3J0cyB0aGUgcmVhZC93cml0ZSBtZXRob2Qgd2l0aG91dCBpbml0aWFsaXppbmcgdGhlIHZhbHVl
cy4NCklmIHdhbnQgdG8gaW5pdGlhbGl6ZSB0aGUgdmFsdWUgb2YgZ3NpIGhlcmUuIEFuIGFwcHJv
YWNoIHRvIGluaXRpYWxpemUgaXQgaXMgdG8gY2FsbCBhY3BpX3BjaV9pcnFfbG9va3VwIHRvIGdl
dCBnc2kgbnVtYmVyIHdoZW4gdGhlIGZpcnN0IHRpbWUgaXQgaXMgcmVhZD8NCg0KPiANCj4gTWF5
YmUgbXkgdW5kZXJzdGFuZGluZyBpcyBpbmNvcnJlY3QsIGJ1dCBnaXZlbiB0aGUgc3VnZ2VzdGVk
IHBsYWNlbWVudA0KPiBpbiBhY3BpX3BjaV9pcnFfZW5hYmxlKCkgSSB0aGluayB0aGUgZGV2aWNl
IHdvdWxkIG5lZWQgdG8gYmluZCB0aGUNCj4gaW50ZXJydXB0IGluIG9yZGVyIGZvciB0aGUgZ3Np
IG5vZGUgdG8gYXBwZWFyIG9uIHN5c2ZzPw0KTm8sIGdzaSBzeXNmcyBoYXMgZXhpc3RlZCB0aGVy
ZSwgaW4gYWNwaV9wY2lfaXJxX2VuYWJsZSBpcyB0byBpbml0aWFsaXplIHRoZSB2YWx1ZSBvZiBn
c2kuDQoNCj4gDQo+IFdvdWxkIHRoZSBjdXJyZW50IGFwcHJvYWNoIHdvcmsgaWYgdGhlIGRldmlj
ZSBpcyBhc3NpZ25lZCB0byBwY2liYWNrDQo+IG9uIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLCBh
bmQgdGh1cyBuZXZlciBvd25lZCBieSBhbnkgZHJpdmVyIGluDQo+IGRvbTA/DQpJZiBhc3NpZ25l
ZCB0byBwY2liYWNrLCBJIHRoaW5rIHBjaWJhY2sgd2lsbCBlbmFibGUgdGhlIGRldmljZSwgYW5k
IHRoZW4gYWNwaV9wY2lfaXJxX2VuYWJsZSB3aWxsIGJlIGNhbGxlZCwgYW5kIHRoZW4gdGhlIGdz
aSB3aWxsIGJlIGluaXRpYWxpemVkLiBTbywgY3VycmVudCBjYW4gd29yay4NCg0KPiANCj4+Pg0K
Pj4+PiAgDQo+Pj4+ICAJcmMgPSBhY3BpX3JlZ2lzdGVyX2dzaSgmZGV2LT5kZXYsIGdzaSwgdHJp
Z2dlcmluZywgcG9sYXJpdHkpOw0KPj4+PiAgCWlmIChyYyA8IDApIHsNCj4+Pj4gZGlmZiAtLWdp
dCBhL2RyaXZlcnMvcGNpL3BjaS1zeXNmcy5jIGIvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMNCj4+
Pj4gaW5kZXggMjMyMWZkZmVmZDdkLi5jNTFkZjg4ZDA3OWUgMTAwNjQ0DQo+Pj4+IC0tLSBhL2Ry
aXZlcnMvcGNpL3BjaS1zeXNmcy5jDQo+Pj4+ICsrKyBiL2RyaXZlcnMvcGNpL3BjaS1zeXNmcy5j
DQo+Pj4+IEBAIC03MSw2ICs3MSwxNiBAQCBzdGF0aWMgc3NpemVfdCBpcnFfc2hvdyhzdHJ1Y3Qg
ZGV2aWNlICpkZXYsDQo+Pj4+ICB9DQo+Pj4+ICBzdGF0aWMgREVWSUNFX0FUVFJfUk8oaXJxKTsN
Cj4+Pj4gIA0KPj4+PiArc3RhdGljIHNzaXplX3QgZ3NpX3Nob3coc3RydWN0IGRldmljZSAqZGV2
LA0KPj4+PiArCQkJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQo+Pj4+ICsJCQljaGFy
ICpidWYpDQo+Pj4+ICt7DQo+Pj4+ICsJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2
KGRldik7DQo+Pj4NCj4+PiBjb25zdA0KPj4gRG8geW91IG1lYW4gImNvbnN0IHN0cnVjdCBwY2lf
ZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOyIgPw0KPiANCj4gWXVwLg0KPiANCj4gVGhhbmtz
LCBSb2dlci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 05:32:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 05:32:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653693.1020165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDHqp-00068s-Db; Wed, 13 Dec 2023 05:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653693.1020165; Wed, 13 Dec 2023 05: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 1rDHqp-00068l-9h; Wed, 13 Dec 2023 05:32:07 +0000
Received: by outflank-mailman (input) for mailman id 653693;
 Wed, 13 Dec 2023 01:35: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=odKt=HY=smartx.com=yong.huang@srs-se1.protection.inumbo.net>)
 id 1rDE9j-00055W-CH
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 01:35:24 +0000
Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com
 [2607:f8b0:4864:20::1029])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd14ea6a-9957-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 02:35:15 +0100 (CET)
Received: by mail-pj1-x1029.google.com with SMTP id
 98e67ed59e1d1-28647f4ebd9so4840677a91.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 17:35:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd14ea6a-9957-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=smartx-com.20230601.gappssmtp.com; s=20230601; t=1702431314; x=1703036114; 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=pgfAz/69Ix72xABlAtLdjRPfJn1xOy20H6FDLfExTJk=;
        b=B8TpUciVeRIZKpyXsd23bAUlMLKVsvlWuhlBK9uDaYc3m40pxXiKqWQQTYiEEmj0Uq
         YIUN+WSpAQbUWK97YdWPQImfiq+vgd7Yy/ctbqF7yBDbFYzjGwyU6ExN/i99qj1OgRAq
         HVpFR5IJFqWdD+rleXs9ZHXb+Txi+a4Vbx6R/eXeawezLcdjVTnr2ml6p6k/aHndTYhJ
         u0VuSBW7E4bFVmMYh1mz5bcrdP5FzVIajP0cvgPefsi+CeiYSB2qqIx/moX1Z2xslvEE
         C3Vsh76bXQ29alWKQ+yxvsils/Nr/EEVv5MIz5qCIJ2FueBmqaDGWY2dBL+13VSYLhFR
         eG8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702431314; x=1703036114;
        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=pgfAz/69Ix72xABlAtLdjRPfJn1xOy20H6FDLfExTJk=;
        b=EGOUIJJC2sIMN4aBqfmKyj/e12Eu3TFmYXUEMd3PNhPyJVQrPm3ni5QD5YwvdWrM9k
         0xQShL2tbb/6zRpflfZbG4g6BPnBPuxUlbsrpEHSnMyYx/qE90pgFkgLWZs4bmNBQ2o4
         JyT7jlSxAxcQ7hd3crHLY3AOMtjXCglX74w8SQ2/aCIHXse/eDD7ZVnvUvOGms0nQSjm
         UlBrsVuF5NkeBS6h9QELfqD+DS4uDBZG1zKvQP40hCW7wx/5KBgkvuBQpRmG692I8kJ3
         6RT7ls7KAXU6CD/mcSw3uDTiURccny7penB9+a+5p1Szk0TuKrV3vgz8Aupf7HPOHGmw
         DvvA==
X-Gm-Message-State: AOJu0YzcyuFR167rGzISQc+KcW1x1Z0UGg8GslX3chcgY//1Yr00sRCV
	ZOtPJPMyK818hMeJ8Ki00F5EYDitnD/f+l9x4XenvA==
X-Google-Smtp-Source: AGHT+IEe+IIHuHCCXOnXwodpP61cdfdJz8siRfvbC8xkRSYmS4yOQ4o6JYbv9p2hBk/08JPKzNNnMkbcAEayNWZF6S0=
X-Received: by 2002:a17:90b:350:b0:286:6cc1:5fd4 with SMTP id
 fh16-20020a17090b035000b002866cc15fd4mr3534747pjb.87.1702431312252; Tue, 12
 Dec 2023 17:35:12 -0800 (PST)
MIME-Version: 1.0
References: <20231212153905.631119-1-stefanha@redhat.com> <20231212153905.631119-2-stefanha@redhat.com>
In-Reply-To: <20231212153905.631119-2-stefanha@redhat.com>
From: Yong Huang <yong.huang@smartx.com>
Date: Wed, 13 Dec 2023 09:34:55 +0800
Message-ID: <CAK9dgmZjEK=1mGs4GyaqszVEUMrW5NwRh3hHmyctcm0jPtV+sw@mail.gmail.com>
Subject: Re: [PATCH v2 1/5] system/cpus: rename qemu_mutex_lock_iothread() to bql_lock()
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, =?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Akihiko Odaki <akihiko.odaki@daynix.com>, 
	Artyom Tarasenko <atar4qemu@gmail.com>, Paul Durrant <paul@xen.org>, 
	Daniel Henrique Barboza <danielhb413@gmail.com>, =?UTF-8?Q?C=C3=A9dric_Le_Goater?= <clg@kaod.org>, 
	Paolo Bonzini <pbonzini@redhat.com>, BALATON Zoltan <balaton@eik.bme.hu>, 
	Jagannathan Raman <jag.raman@oracle.com>, Anthony Perard <anthony.perard@citrix.com>, 
	Nicholas Piggin <npiggin@gmail.com>, David Gibson <david@gibson.dropbear.id.au>, 
	Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, Alexander Graf <agraf@csgraf.de>, 
	Hailiang Zhang <zhanghailiang@xfusion.com>, Marcelo Tosatti <mtosatti@redhat.com>, 
	Jiaxun Yang <jiaxun.yang@flygoat.com>, Huacai Chen <chenhuacai@kernel.org>, 
	Harsh Prateek Bora <harshpb@linux.ibm.com>, Ilya Leoshkevich <iii@linux.ibm.com>, Peter Xu <peterx@redhat.com>, 
	Fam Zheng <fam@euphon.net>, Song Gao <gaosong@loongson.cn>, 
	Alistair Francis <alistair.francis@wdc.com>, 
	=?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= <marcandre.lureau@redhat.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, David Woodhouse <dwmw2@infradead.org>, 
	Christian Borntraeger <borntraeger@linux.ibm.com>, Palmer Dabbelt <palmer@dabbelt.com>, 
	Aurelien Jarno <aurelien@aurel32.net>, Leonardo Bras <leobras@redhat.com>, Jiri Slaby <jslaby@suse.cz>, 
	Eric Farman <farman@linux.ibm.com>, Thomas Huth <thuth@redhat.com>, 
	Richard Henderson <richard.henderson@linaro.org>, David Hildenbrand <david@redhat.com>, 
	Michael Roth <michael.roth@amd.com>, Elena Ufimtseva <elena.ufimtseva@oracle.com>, 
	Gerd Hoffmann <kraxel@redhat.com>, Cameron Esfahani <dirty@apple.com>, qemu-ppc@nongnu.org, 
	John Snow <jsnow@redhat.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, 
	Weiwei Li <liwei1518@gmail.com>, Hanna Reitz <hreitz@redhat.com>, qemu-s390x@nongnu.org, 
	qemu-block@nongnu.org, =?UTF-8?B?QWxleCBCZW5uw6ll?= <alex.bennee@linaro.org>, 
	kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>, 
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, 
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, Andrey Smirnov <andrew.smirnov@gmail.com>, 
	Reinoud Zandijk <reinoud@netbsd.org>, Kevin Wolf <kwolf@redhat.com>, Bin Meng <bin.meng@windriver.com>, 
	Sunil Muthuswamy <sunilmut@microsoft.com>, Peter Maydell <peter.maydell@linaro.org>, qemu-riscv@nongnu.org, 
	Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Stafford Horne <shorne@gmail.com>, 
	Fabiano Rosas <farosas@suse.de>, Juan Quintela <quintela@redhat.com>, 
	Markus Armbruster <armbru@redhat.com>, qemu-arm@nongnu.org, Jason Wang <jasowang@redhat.com>, 
	Eduardo Habkost <eduardo@habkost.net>, Max Filippov <jcmvbkbc@gmail.com>, 
	Jean-Christophe Dubois <jcd@tribudubois.net>, Eric Blake <eblake@redhat.com>, 
	Roman Bolshakov <rbolshakov@ddn.com>, Halil Pasic <pasic@linux.ibm.com>, xen-devel@lists.xenproject.org, 
	=?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= <philmd@linaro.org>, 
	David Woodhouse <dwmw@amazon.co.uk>
Content-Type: multipart/alternative; boundary="0000000000009f22ff060c5a2da5"

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

On Tue, Dec 12, 2023 at 11:39=E2=80=AFPM Stefan Hajnoczi <stefanha@redhat.c=
om>
wrote:

> The Big QEMU Lock (BQL) has many names and they are confusing. The
> actual QemuMutex variable is called qemu_global_mutex but it's commonly
> referred to as the BQL in discussions and some code comments. The
> locking APIs, however, are called qemu_mutex_lock_iothread() and
> qemu_mutex_unlock_iothread().
>
> The "iothread" name is historic and comes from when the main thread was
> split into into KVM vcpu threads and the "iothread" (now called the main
> loop thread). I have contributed to the confusion myself by introducing
> a separate --object iothread, a separate concept unrelated to the BQL.
>
> The "iothread" name is no longer appropriate for the BQL. Rename the
> locking APIs to:
> - void bql_lock(void)
> - void bql_unlock(void)
> - bool bql_locked(void)
>
> There are more APIs with "iothread" in their names. Subsequent patches
> will rename them. There are also comments and documentation that will be
> updated in later patches.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Paul Durrant <paul@xen.org>
> Acked-by: Fabiano Rosas <farosas@suse.de>
> Acked-by: David Woodhouse <dwmw@amazon.co.uk>
> Reviewed-by: C=C3=A9dric Le Goater <clg@kaod.org>
> Acked-by: Peter Xu <peterx@redhat.com>
> Acked-by: Eric Farman <farman@linux.ibm.com>
> Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
> ---
>  include/block/aio-wait.h             |   2 +-
>  include/qemu/main-loop.h             |  40 ++++-----
>  include/qemu/thread.h                |   2 +-
>  accel/accel-blocker.c                |  10 +--
>  accel/dummy-cpus.c                   |   8 +-
>  accel/hvf/hvf-accel-ops.c            |   4 +-
>  accel/kvm/kvm-accel-ops.c            |   4 +-
>  accel/kvm/kvm-all.c                  |  22 ++---
>  accel/tcg/cpu-exec.c                 |  26 +++---
>  accel/tcg/cputlb.c                   |  16 ++--
>  accel/tcg/tcg-accel-ops-icount.c     |   4 +-
>  accel/tcg/tcg-accel-ops-mttcg.c      |  12 +--
>  accel/tcg/tcg-accel-ops-rr.c         |  14 ++--
>  accel/tcg/tcg-accel-ops.c            |   2 +-
>  accel/tcg/translate-all.c            |   2 +-
>  cpu-common.c                         |   4 +-
>  dump/dump.c                          |   4 +-
>  hw/core/cpu-common.c                 |   6 +-
>  hw/i386/intel_iommu.c                |   6 +-
>  hw/i386/kvm/xen_evtchn.c             |  16 ++--
>  hw/i386/kvm/xen_overlay.c            |   2 +-
>  hw/i386/kvm/xen_xenstore.c           |   2 +-
>  hw/intc/arm_gicv3_cpuif.c            |   2 +-
>  hw/intc/s390_flic.c                  |  18 ++--
>  hw/misc/edu.c                        |   4 +-
>  hw/misc/imx6_src.c                   |   2 +-
>  hw/misc/imx7_src.c                   |   2 +-
>  hw/net/xen_nic.c                     |   8 +-
>  hw/ppc/pegasos2.c                    |   2 +-
>  hw/ppc/ppc.c                         |   4 +-
>  hw/ppc/spapr.c                       |   2 +-
>  hw/ppc/spapr_rng.c                   |   4 +-
>  hw/ppc/spapr_softmmu.c               |   4 +-
>  hw/remote/mpqemu-link.c              |  20 ++---
>  hw/remote/vfio-user-obj.c            |   2 +-
>  hw/s390x/s390-skeys.c                |   2 +-
>  migration/block-dirty-bitmap.c       |   4 +-
>  migration/block.c                    |  16 ++--
>  migration/colo.c                     |  60 +++++++-------
>  migration/dirtyrate.c                |  12 +--
>  migration/migration.c                |  52 ++++++------
>  migration/ram.c                      |  12 +--
>  replay/replay-internal.c             |   2 +-
>  semihosting/console.c                |   8 +-
>  stubs/iothread-lock.c                |   6 +-
>  system/cpu-throttle.c                |   4 +-
>  system/cpus.c                        |  51 ++++++------
>  system/dirtylimit.c                  |   4 +-
>  system/memory.c                      |   2 +-
>  system/physmem.c                     |   8 +-
>  system/runstate.c                    |   2 +-
>  system/watchpoint.c                  |   4 +-
>  target/arm/arm-powerctl.c            |  14 ++--
>  target/arm/helper.c                  |   4 +-
>  target/arm/hvf/hvf.c                 |   8 +-
>  target/arm/kvm.c                     |   4 +-
>  target/arm/kvm64.c                   |   4 +-
>  target/arm/ptw.c                     |   6 +-
>  target/arm/tcg/helper-a64.c          |   8 +-
>  target/arm/tcg/m_helper.c            |   6 +-
>  target/arm/tcg/op_helper.c           |  24 +++---
>  target/arm/tcg/psci.c                |   2 +-
>  target/hppa/int_helper.c             |   8 +-
>  target/i386/hvf/hvf.c                |   6 +-
>  target/i386/kvm/hyperv.c             |   4 +-
>  target/i386/kvm/kvm.c                |  28 +++----
>  target/i386/kvm/xen-emu.c            |  14 ++--
>  target/i386/nvmm/nvmm-accel-ops.c    |   4 +-
>  target/i386/nvmm/nvmm-all.c          |  20 ++---
>  target/i386/tcg/sysemu/fpu_helper.c  |   6 +-
>  target/i386/tcg/sysemu/misc_helper.c |   4 +-
>  target/i386/whpx/whpx-accel-ops.c    |   4 +-
>  target/i386/whpx/whpx-all.c          |  24 +++---
>  target/loongarch/csr_helper.c        |   4 +-
>  target/mips/kvm.c                    |   4 +-
>  target/mips/tcg/sysemu/cp0_helper.c  |   4 +-
>  target/openrisc/sys_helper.c         |  16 ++--
>  target/ppc/excp_helper.c             |  12 +--
>  target/ppc/kvm.c                     |   4 +-
>  target/ppc/misc_helper.c             |   8 +-
>  target/ppc/timebase_helper.c         |   8 +-
>  target/s390x/kvm/kvm.c               |   4 +-
>  target/s390x/tcg/misc_helper.c       | 118 +++++++++++++--------------
>  target/sparc/int32_helper.c          |   2 +-
>  target/sparc/int64_helper.c          |   6 +-
>  target/sparc/win_helper.c            |  20 ++---
>  target/xtensa/exc_helper.c           |   8 +-
>  ui/spice-core.c                      |   4 +-
>  util/async.c                         |   2 +-
>  util/main-loop.c                     |   8 +-
>  util/qsp.c                           |   6 +-
>  util/rcu.c                           |  14 ++--
>  audio/coreaudio.m                    |   4 +-
>  memory_ldst.c.inc                    |  18 ++--
>  target/i386/hvf/README.md            |   2 +-
>  ui/cocoa.m                           |  50 ++++++------
>  96 files changed, 530 insertions(+), 529 deletions(-)
>
> diff --git a/include/block/aio-wait.h b/include/block/aio-wait.h
> index 5449b6d742..d22ca24329 100644
> --- a/include/block/aio-wait.h
> +++ b/include/block/aio-wait.h
> @@ -151,7 +151,7 @@ static inline bool
> in_aio_context_home_thread(AioContext *ctx)
>      }
>
>      if (ctx =3D=3D qemu_get_aio_context()) {
> -        return qemu_mutex_iothread_locked();
> +        return bql_locked();
>      } else {
>          return false;
>      }
> diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
> index 68e70e61aa..596a206acd 100644
> --- a/include/qemu/main-loop.h
> +++ b/include/qemu/main-loop.h
> @@ -248,19 +248,19 @@ GSource *iohandler_get_g_source(void);
>  AioContext *iohandler_get_aio_context(void);
>
>  /**
> - * qemu_mutex_iothread_locked: Return lock status of the main loop mutex=
.
> + * bql_locked: Return lock status of the Big QEMU Lock (BQL)
>   *
> - * The main loop mutex is the coarsest lock in QEMU, and as such it
> + * The Big QEMU Lock (BQL) is the coarsest lock in QEMU, and as such it
>   * must always be taken outside other locks.  This function helps
>   * functions take different paths depending on whether the current
> - * thread is running within the main loop mutex.
> + * thread is running within the BQL.
>   *
>   * This function should never be used in the block layer, because
>   * unit tests, block layer tools and qemu-storage-daemon do not
>   * have a BQL.
>   * Please instead refer to qemu_in_main_thread().
>   */
> -bool qemu_mutex_iothread_locked(void);
> +bool bql_locked(void);
>
>  /**
>   * qemu_in_main_thread: return whether it's possible to safely access
> @@ -312,58 +312,58 @@ bool qemu_in_main_thread(void);
>      } while (0)
>
>  /**
> - * qemu_mutex_lock_iothread: Lock the main loop mutex.
> + * bql_lock: Lock the Big QEMU Lock (BQL).
>   *
> - * This function locks the main loop mutex.  The mutex is taken by
> + * This function locks the Big QEMU Lock (BQL).  The lock is taken by
>   * main() in vl.c and always taken except while waiting on
> - * external events (such as with select).  The mutex should be taken
> + * external events (such as with select).  The lock should be taken
>   * by threads other than the main loop thread when calling
>   * qemu_bh_new(), qemu_set_fd_handler() and basically all other
>   * functions documented in this file.
>   *
> - * NOTE: tools currently are single-threaded and qemu_mutex_lock_iothrea=
d
> + * NOTE: tools currently are single-threaded and bql_lock
>   * is a no-op there.
>   */
> -#define qemu_mutex_lock_iothread()                      \
> -    qemu_mutex_lock_iothread_impl(__FILE__, __LINE__)
> -void qemu_mutex_lock_iothread_impl(const char *file, int line);
> +#define bql_lock()                      \
> +    bql_lock_impl(__FILE__, __LINE__)
> +void bql_lock_impl(const char *file, int line);
>
>  /**
> - * qemu_mutex_unlock_iothread: Unlock the main loop mutex.
> + * bql_unlock: Unlock the Big QEMU Lock (BQL).
>   *
> - * This function unlocks the main loop mutex.  The mutex is taken by
> + * This function unlocks the Big QEMU Lock.  The lock is taken by
>   * main() in vl.c and always taken except while waiting on
> - * external events (such as with select).  The mutex should be unlocked
> + * external events (such as with select).  The lock should be unlocked
>   * as soon as possible by threads other than the main loop thread,
>   * because it prevents the main loop from processing callbacks,
>   * including timers and bottom halves.
>   *
> - * NOTE: tools currently are single-threaded and
> qemu_mutex_unlock_iothread
> + * NOTE: tools currently are single-threaded and bql_unlock
>   * is a no-op there.
>   */
> -void qemu_mutex_unlock_iothread(void);
> +void bql_unlock(void);
>
>  /**
>   * QEMU_IOTHREAD_LOCK_GUARD
>   *
> - * Wrap a block of code in a conditional
> qemu_mutex_{lock,unlock}_iothread.
> + * Wrap a block of code in a conditional bql_{lock,unlock}.
>   */
>  typedef struct IOThreadLockAuto IOThreadLockAuto;
>
>  static inline IOThreadLockAuto *qemu_iothread_auto_lock(const char *file=
,
>                                                          int line)
>  {
> -    if (qemu_mutex_iothread_locked()) {
> +    if (bql_locked()) {
>          return NULL;
>      }
> -    qemu_mutex_lock_iothread_impl(file, line);
> +    bql_lock_impl(file, line);
>      /* Anything non-NULL causes the cleanup function to be called */
>      return (IOThreadLockAuto *)(uintptr_t)1;
>  }
>
>  static inline void qemu_iothread_auto_unlock(IOThreadLockAuto *l)
>  {
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  G_DEFINE_AUTOPTR_CLEANUP_FUNC(IOThreadLockAuto, qemu_iothread_auto_unloc=
k)
> diff --git a/include/qemu/thread.h b/include/qemu/thread.h
> index dd3822d7ce..fb74e21c08 100644
> --- a/include/qemu/thread.h
> +++ b/include/qemu/thread.h
> @@ -47,7 +47,7 @@ typedef void (*QemuCondWaitFunc)(QemuCond *c, QemuMutex
> *m, const char *f,
>  typedef bool (*QemuCondTimedWaitFunc)(QemuCond *c, QemuMutex *m, int ms,
>                                        const char *f, int l);
>
> -extern QemuMutexLockFunc qemu_bql_mutex_lock_func;
> +extern QemuMutexLockFunc bql_mutex_lock_func;
>  extern QemuMutexLockFunc qemu_mutex_lock_func;
>  extern QemuMutexTrylockFunc qemu_mutex_trylock_func;
>  extern QemuRecMutexLockFunc qemu_rec_mutex_lock_func;
> diff --git a/accel/accel-blocker.c b/accel/accel-blocker.c
> index 1e7f423462..e083f24aa8 100644
> --- a/accel/accel-blocker.c
> +++ b/accel/accel-blocker.c
> @@ -41,7 +41,7 @@ void accel_blocker_init(void)
>
>  void accel_ioctl_begin(void)
>  {
> -    if (likely(qemu_mutex_iothread_locked())) {
> +    if (likely(bql_locked())) {
>          return;
>      }
>
> @@ -51,7 +51,7 @@ void accel_ioctl_begin(void)
>
>  void accel_ioctl_end(void)
>  {
> -    if (likely(qemu_mutex_iothread_locked())) {
> +    if (likely(bql_locked())) {
>          return;
>      }
>
> @@ -62,7 +62,7 @@ void accel_ioctl_end(void)
>
>  void accel_cpu_ioctl_begin(CPUState *cpu)
>  {
> -    if (unlikely(qemu_mutex_iothread_locked())) {
> +    if (unlikely(bql_locked())) {
>          return;
>      }
>
> @@ -72,7 +72,7 @@ void accel_cpu_ioctl_begin(CPUState *cpu)
>
>  void accel_cpu_ioctl_end(CPUState *cpu)
>  {
> -    if (unlikely(qemu_mutex_iothread_locked())) {
> +    if (unlikely(bql_locked())) {
>          return;
>      }
>
> @@ -105,7 +105,7 @@ void accel_ioctl_inhibit_begin(void)
>       * We allow to inhibit only when holding the BQL, so we can identify
>       * when an inhibitor wants to issue an ioctl easily.
>       */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      /* Block further invocations of the ioctls outside the BQL.  */
>      CPU_FOREACH(cpu) {
> diff --git a/accel/dummy-cpus.c b/accel/dummy-cpus.c
> index b75c919ac3..f4b0ec5890 100644
> --- a/accel/dummy-cpus.c
> +++ b/accel/dummy-cpus.c
> @@ -24,7 +24,7 @@ static void *dummy_cpu_thread_fn(void *arg)
>
>      rcu_register_thread();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_thread_get_self(cpu->thread);
>      cpu->thread_id =3D qemu_get_thread_id();
>      cpu->neg.can_do_io =3D true;
> @@ -43,7 +43,7 @@ static void *dummy_cpu_thread_fn(void *arg)
>      qemu_guest_random_seed_thread_part2(cpu->random_seed);
>
>      do {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>  #ifndef _WIN32
>          do {
>              int sig;
> @@ -56,11 +56,11 @@ static void *dummy_cpu_thread_fn(void *arg)
>  #else
>          qemu_sem_wait(&cpu->sem);
>  #endif
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          qemu_wait_io_event(cpu);
>      } while (!cpu->unplug);
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      rcu_unregister_thread();
>      return NULL;
>  }
> diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c
> index abe7adf7ee..8eabb696fa 100644
> --- a/accel/hvf/hvf-accel-ops.c
> +++ b/accel/hvf/hvf-accel-ops.c
> @@ -424,7 +424,7 @@ static void *hvf_cpu_thread_fn(void *arg)
>
>      rcu_register_thread();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_thread_get_self(cpu->thread);
>
>      cpu->thread_id =3D qemu_get_thread_id();
> @@ -449,7 +449,7 @@ static void *hvf_cpu_thread_fn(void *arg)
>
>      hvf_vcpu_destroy(cpu);
>      cpu_thread_signal_destroyed(cpu);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      rcu_unregister_thread();
>      return NULL;
>  }
> diff --git a/accel/kvm/kvm-accel-ops.c b/accel/kvm/kvm-accel-ops.c
> index 6195150a0b..45ff06e953 100644
> --- a/accel/kvm/kvm-accel-ops.c
> +++ b/accel/kvm/kvm-accel-ops.c
> @@ -33,7 +33,7 @@ static void *kvm_vcpu_thread_fn(void *arg)
>
>      rcu_register_thread();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_thread_get_self(cpu->thread);
>      cpu->thread_id =3D qemu_get_thread_id();
>      cpu->neg.can_do_io =3D true;
> @@ -58,7 +58,7 @@ static void *kvm_vcpu_thread_fn(void *arg)
>
>      kvm_destroy_vcpu(cpu);
>      cpu_thread_signal_destroyed(cpu);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      rcu_unregister_thread();
>      return NULL;
>  }
> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
> index e39a810a4e..09404b897f 100644
> --- a/accel/kvm/kvm-all.c
> +++ b/accel/kvm/kvm-all.c
> @@ -817,7 +817,7 @@ static void kvm_dirty_ring_flush(void)
>       * should always be with BQL held, serialization is guaranteed.
>       * However, let's be sure of it.
>       */
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>      /*
>       * First make sure to flush the hardware buffers by kicking all
>       * vcpus out in a synchronous way.
> @@ -1402,9 +1402,9 @@ static void *kvm_dirty_ring_reaper_thread(void *dat=
a)
>          trace_kvm_dirty_ring_reaper("wakeup");
>          r->reaper_state =3D KVM_DIRTY_RING_REAPER_REAPING;
>
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          kvm_dirty_ring_reap(s, NULL);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>
>          r->reaper_iteration++;
>      }
> @@ -2828,7 +2828,7 @@ int kvm_cpu_exec(CPUState *cpu)
>          return EXCP_HLT;
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      cpu_exec_start(cpu);
>
>      do {
> @@ -2868,11 +2868,11 @@ int kvm_cpu_exec(CPUState *cpu)
>
>  #ifdef KVM_HAVE_MCE_INJECTION
>          if (unlikely(have_sigbus_pending)) {
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              kvm_arch_on_sigbus_vcpu(cpu, pending_sigbus_code,
>                                      pending_sigbus_addr);
>              have_sigbus_pending =3D false;
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>          }
>  #endif
>
> @@ -2942,7 +2942,7 @@ int kvm_cpu_exec(CPUState *cpu)
>               * still full.  Got kicked by KVM_RESET_DIRTY_RINGS.
>               */
>              trace_kvm_dirty_ring_full(cpu->cpu_index);
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              /*
>               * We throttle vCPU by making it sleep once it exit from
> kernel
>               * due to dirty ring full. In the dirtylimit scenario, reapi=
ng
> @@ -2954,7 +2954,7 @@ int kvm_cpu_exec(CPUState *cpu)
>              } else {
>                  kvm_dirty_ring_reap(kvm_state, NULL);
>              }
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              dirtylimit_vcpu_execute(cpu);
>              ret =3D 0;
>              break;
> @@ -2970,9 +2970,9 @@ int kvm_cpu_exec(CPUState *cpu)
>                  break;
>              case KVM_SYSTEM_EVENT_CRASH:
>                  kvm_cpu_synchronize_state(cpu);
> -                qemu_mutex_lock_iothread();
> +                bql_lock();
>                  qemu_system_guest_panicked(cpu_get_crash_info(cpu));
> -                qemu_mutex_unlock_iothread();
> +                bql_unlock();
>                  ret =3D 0;
>                  break;
>              default:
> @@ -2989,7 +2989,7 @@ int kvm_cpu_exec(CPUState *cpu)
>      } while (ret =3D=3D 0);
>
>      cpu_exec_end(cpu);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      if (ret < 0) {
>          cpu_dump_state(cpu, stderr, CPU_DUMP_CODE);
> diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
> index c938eb96f8..67eda9865e 100644
> --- a/accel/tcg/cpu-exec.c
> +++ b/accel/tcg/cpu-exec.c
> @@ -558,8 +558,8 @@ static void cpu_exec_longjmp_cleanup(CPUState *cpu)
>          tcg_ctx->gen_tb =3D NULL;
>      }
>  #endif
> -    if (qemu_mutex_iothread_locked()) {
> -        qemu_mutex_unlock_iothread();
> +    if (bql_locked()) {
> +        bql_unlock();
>      }
>      assert_no_pages_locked();
>  }
> @@ -680,10 +680,10 @@ static inline bool cpu_handle_halt(CPUState *cpu)
>  #if defined(TARGET_I386)
>          if (cpu->interrupt_request & CPU_INTERRUPT_POLL) {
>              X86CPU *x86_cpu =3D X86_CPU(cpu);
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              apic_poll_irq(x86_cpu->apic_state);
>              cpu_reset_interrupt(cpu, CPU_INTERRUPT_POLL);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>          }
>  #endif /* TARGET_I386 */
>          if (!cpu_has_work(cpu)) {
> @@ -749,9 +749,9 @@ static inline bool cpu_handle_exception(CPUState *cpu=
,
> int *ret)
>  #else
>          if (replay_exception()) {
>              CPUClass *cc =3D CPU_GET_CLASS(cpu);
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              cc->tcg_ops->do_interrupt(cpu);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              cpu->exception_index =3D -1;
>
>              if (unlikely(cpu->singlestep_enabled)) {
> @@ -812,7 +812,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu=
,
>
>      if (unlikely(qatomic_read(&cpu->interrupt_request))) {
>          int interrupt_request;
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          interrupt_request =3D cpu->interrupt_request;
>          if (unlikely(cpu->singlestep_enabled & SSTEP_NOIRQ)) {
>              /* Mask out external interrupts for this step. */
> @@ -821,7 +821,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu=
,
>          if (interrupt_request & CPU_INTERRUPT_DEBUG) {
>              cpu->interrupt_request &=3D ~CPU_INTERRUPT_DEBUG;
>              cpu->exception_index =3D EXCP_DEBUG;
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              return true;
>          }
>  #if !defined(CONFIG_USER_ONLY)
> @@ -832,7 +832,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu=
,
>              cpu->interrupt_request &=3D ~CPU_INTERRUPT_HALT;
>              cpu->halted =3D 1;
>              cpu->exception_index =3D EXCP_HLT;
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              return true;
>          }
>  #if defined(TARGET_I386)
> @@ -843,14 +843,14 @@ static inline bool cpu_handle_interrupt(CPUState
> *cpu,
>              cpu_svm_check_intercept_param(env, SVM_EXIT_INIT, 0, 0);
>              do_cpu_init(x86_cpu);
>              cpu->exception_index =3D EXCP_HALTED;
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              return true;
>          }
>  #else
>          else if (interrupt_request & CPU_INTERRUPT_RESET) {
>              replay_interrupt();
>              cpu_reset(cpu);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              return true;
>          }
>  #endif /* !TARGET_I386 */
> @@ -873,7 +873,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu=
,
>                   */
>                  if (unlikely(cpu->singlestep_enabled)) {
>                      cpu->exception_index =3D EXCP_DEBUG;
> -                    qemu_mutex_unlock_iothread();
> +                    bql_unlock();
>                      return true;
>                  }
>                  cpu->exception_index =3D -1;
> @@ -892,7 +892,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu=
,
>          }
>
>          /* If we exit via cpu_loop_exit/longjmp it is reset in cpu_exec =
*/
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>
>      /* Finally, check if we need to exit to the main loop.  */
> diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
> index db3f93fda9..5698a9fd8e 100644
> --- a/accel/tcg/cputlb.c
> +++ b/accel/tcg/cputlb.c
> @@ -2030,10 +2030,10 @@ static uint64_t do_ld_mmio_beN(CPUState *cpu,
> CPUTLBEntryFull *full,
>      section =3D io_prepare(&mr_offset, cpu, full->xlat_section, attrs,
> addr, ra);
>      mr =3D section->mr;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ret =3D int_ld_mmio_beN(cpu, full, ret_be, addr, size, mmu_idx,
>                            type, ra, mr, mr_offset);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return ret;
>  }
> @@ -2054,12 +2054,12 @@ static Int128 do_ld16_mmio_beN(CPUState *cpu,
> CPUTLBEntryFull *full,
>      section =3D io_prepare(&mr_offset, cpu, full->xlat_section, attrs,
> addr, ra);
>      mr =3D section->mr;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      a =3D int_ld_mmio_beN(cpu, full, ret_be, addr, size - 8, mmu_idx,
>                          MMU_DATA_LOAD, ra, mr, mr_offset);
>      b =3D int_ld_mmio_beN(cpu, full, ret_be, addr + size - 8, 8, mmu_idx=
,
>                          MMU_DATA_LOAD, ra, mr, mr_offset + size - 8);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return int128_make128(b, a);
>  }
> @@ -2577,10 +2577,10 @@ static uint64_t do_st_mmio_leN(CPUState *cpu,
> CPUTLBEntryFull *full,
>      section =3D io_prepare(&mr_offset, cpu, full->xlat_section, attrs,
> addr, ra);
>      mr =3D section->mr;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ret =3D int_st_mmio_leN(cpu, full, val_le, addr, size, mmu_idx,
>                            ra, mr, mr_offset);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return ret;
>  }
> @@ -2601,12 +2601,12 @@ static uint64_t do_st16_mmio_leN(CPUState *cpu,
> CPUTLBEntryFull *full,
>      section =3D io_prepare(&mr_offset, cpu, full->xlat_section, attrs,
> addr, ra);
>      mr =3D section->mr;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      int_st_mmio_leN(cpu, full, int128_getlo(val_le), addr, 8,
>                      mmu_idx, ra, mr, mr_offset);
>      ret =3D int_st_mmio_leN(cpu, full, int128_gethi(val_le), addr + 8,
>                            size - 8, mmu_idx, ra, mr, mr_offset + 8);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return ret;
>  }
> diff --git a/accel/tcg/tcg-accel-ops-icount.c
> b/accel/tcg/tcg-accel-ops-icount.c
> index b25685fb71..5824d92580 100644
> --- a/accel/tcg/tcg-accel-ops-icount.c
> +++ b/accel/tcg/tcg-accel-ops-icount.c
> @@ -126,9 +126,9 @@ void icount_prepare_for_run(CPUState *cpu, int64_t
> cpu_budget)
>           * We're called without the iothread lock, so must take it while
>           * we're calling timer handlers.
>           */
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          icount_notify_aio_contexts();
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  }
>
> diff --git a/accel/tcg/tcg-accel-ops-mttcg.c
> b/accel/tcg/tcg-accel-ops-mttcg.c
> index fac80095bb..af7307013a 100644
> --- a/accel/tcg/tcg-accel-ops-mttcg.c
> +++ b/accel/tcg/tcg-accel-ops-mttcg.c
> @@ -76,7 +76,7 @@ static void *mttcg_cpu_thread_fn(void *arg)
>      rcu_add_force_rcu_notifier(&force_rcu.notifier);
>      tcg_register_thread();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_thread_get_self(cpu->thread);
>
>      cpu->thread_id =3D qemu_get_thread_id();
> @@ -91,9 +91,9 @@ static void *mttcg_cpu_thread_fn(void *arg)
>      do {
>          if (cpu_can_run(cpu)) {
>              int r;
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              r =3D tcg_cpus_exec(cpu);
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              switch (r) {
>              case EXCP_DEBUG:
>                  cpu_handle_guest_debug(cpu);
> @@ -105,9 +105,9 @@ static void *mttcg_cpu_thread_fn(void *arg)
>                   */
>                  break;
>              case EXCP_ATOMIC:
> -                qemu_mutex_unlock_iothread();
> +                bql_unlock();
>                  cpu_exec_step_atomic(cpu);
> -                qemu_mutex_lock_iothread();
> +                bql_lock();
>              default:
>                  /* Ignore everything else? */
>                  break;
> @@ -119,7 +119,7 @@ static void *mttcg_cpu_thread_fn(void *arg)
>      } while (!cpu->unplug || cpu_can_run(cpu));
>
>      tcg_cpus_destroy(cpu);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      rcu_remove_force_rcu_notifier(&force_rcu.notifier);
>      rcu_unregister_thread();
>      return NULL;
> diff --git a/accel/tcg/tcg-accel-ops-rr.c b/accel/tcg/tcg-accel-ops-rr.c
> index 611932f3c3..c4ea372a3f 100644
> --- a/accel/tcg/tcg-accel-ops-rr.c
> +++ b/accel/tcg/tcg-accel-ops-rr.c
> @@ -188,7 +188,7 @@ static void *rr_cpu_thread_fn(void *arg)
>      rcu_add_force_rcu_notifier(&force_rcu);
>      tcg_register_thread();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_thread_get_self(cpu->thread);
>
>      cpu->thread_id =3D qemu_get_thread_id();
> @@ -218,9 +218,9 @@ static void *rr_cpu_thread_fn(void *arg)
>          /* Only used for icount_enabled() */
>          int64_t cpu_budget =3D 0;
>
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          replay_mutex_lock();
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>
>          if (icount_enabled()) {
>              int cpu_count =3D rr_cpu_count();
> @@ -254,7 +254,7 @@ static void *rr_cpu_thread_fn(void *arg)
>              if (cpu_can_run(cpu)) {
>                  int r;
>
> -                qemu_mutex_unlock_iothread();
> +                bql_unlock();
>                  if (icount_enabled()) {
>                      icount_prepare_for_run(cpu, cpu_budget);
>                  }
> @@ -262,15 +262,15 @@ static void *rr_cpu_thread_fn(void *arg)
>                  if (icount_enabled()) {
>                      icount_process_data(cpu);
>                  }
> -                qemu_mutex_lock_iothread();
> +                bql_lock();
>
>                  if (r =3D=3D EXCP_DEBUG) {
>                      cpu_handle_guest_debug(cpu);
>                      break;
>                  } else if (r =3D=3D EXCP_ATOMIC) {
> -                    qemu_mutex_unlock_iothread();
> +                    bql_unlock();
>                      cpu_exec_step_atomic(cpu);
> -                    qemu_mutex_lock_iothread();
> +                    bql_lock();
>                      break;
>                  }
>              } else if (cpu->stop) {
> diff --git a/accel/tcg/tcg-accel-ops.c b/accel/tcg/tcg-accel-ops.c
> index 1b57290682..813065c0ec 100644
> --- a/accel/tcg/tcg-accel-ops.c
> +++ b/accel/tcg/tcg-accel-ops.c
> @@ -88,7 +88,7 @@ static void tcg_cpu_reset_hold(CPUState *cpu)
>  /* mask must never be zero, except for A20 change call */
>  void tcg_handle_interrupt(CPUState *cpu, int mask)
>  {
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      cpu->interrupt_request |=3D mask;
>
> diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
> index 79a88f5fb7..1737bb3da5 100644
> --- a/accel/tcg/translate-all.c
> +++ b/accel/tcg/translate-all.c
> @@ -649,7 +649,7 @@ void cpu_io_recompile(CPUState *cpu, uintptr_t retadd=
r)
>
>  void cpu_interrupt(CPUState *cpu, int mask)
>  {
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      cpu->interrupt_request |=3D mask;
>      qatomic_set(&cpu->neg.icount_decr.u16.high, -1);
>  }
> diff --git a/cpu-common.c b/cpu-common.c
> index c81fd72d16..ce78273af5 100644
> --- a/cpu-common.c
> +++ b/cpu-common.c
> @@ -351,11 +351,11 @@ void process_queued_cpu_work(CPUState *cpu)
>               * BQL, so it goes to sleep; start_exclusive() is sleeping
> too, so
>               * neither CPU can proceed.
>               */
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              start_exclusive();
>              wi->func(cpu, wi->data);
>              end_exclusive();
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>          } else {
>              wi->func(cpu, wi->data);
>          }
> diff --git a/dump/dump.c b/dump/dump.c
> index 4819050764..84064d890d 100644
> --- a/dump/dump.c
> +++ b/dump/dump.c
> @@ -108,11 +108,11 @@ static int dump_cleanup(DumpState *s)
>      s->guest_note =3D NULL;
>      if (s->resume) {
>          if (s->detached) {
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>          }
>          vm_start();
>          if (s->detached) {
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>          }
>      }
>      migrate_del_blocker(&dump_migration_blocker);
> diff --git a/hw/core/cpu-common.c b/hw/core/cpu-common.c
> index 82dae51a55..a59e2ce645 100644
> --- a/hw/core/cpu-common.c
> +++ b/hw/core/cpu-common.c
> @@ -70,14 +70,14 @@ CPUState *cpu_create(const char *typename)
>   * BQL here if we need to.  cpu_interrupt assumes it is held.*/
>  void cpu_reset_interrupt(CPUState *cpu, int mask)
>  {
> -    bool need_lock =3D !qemu_mutex_iothread_locked();
> +    bool need_lock =3D !bql_locked();
>
>      if (need_lock) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>      cpu->interrupt_request &=3D ~mask;
>      if (need_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  }
>
> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> index 5085a6fee3..7e310109cf 100644
> --- a/hw/i386/intel_iommu.c
> +++ b/hw/i386/intel_iommu.c
> @@ -1665,7 +1665,7 @@ static bool vtd_switch_address_space(VTDAddressSpac=
e
> *as)
>  {
>      bool use_iommu, pt;
>      /* Whether we need to take the BQL on our own */
> -    bool take_bql =3D !qemu_mutex_iothread_locked();
> +    bool take_bql =3D !bql_locked();
>
>      assert(as);
>
> @@ -1683,7 +1683,7 @@ static bool vtd_switch_address_space(VTDAddressSpac=
e
> *as)
>       * it. We'd better make sure we have had it already, or, take it.
>       */
>      if (take_bql) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>
>      /* Turn off first then on the other */
> @@ -1738,7 +1738,7 @@ static bool vtd_switch_address_space(VTDAddressSpac=
e
> *as)
>      }
>
>      if (take_bql) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>
>      return use_iommu;
> diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c
> index 02b8cbf8df..d7d15cfaf7 100644
> --- a/hw/i386/kvm/xen_evtchn.c
> +++ b/hw/i386/kvm/xen_evtchn.c
> @@ -425,7 +425,7 @@ void xen_evtchn_set_callback_level(int level)
>       * effect immediately. That just leaves interdomain loopback as the
> case
>       * which uses the BH.
>       */
> -    if (!qemu_mutex_iothread_locked()) {
> +    if (!bql_locked()) {
>          qemu_bh_schedule(s->gsi_bh);
>          return;
>      }
> @@ -459,7 +459,7 @@ int xen_evtchn_set_callback_param(uint64_t param)
>       * We need the BQL because set_callback_pci_intx() may call into PCI
> code,
>       * and because we may need to manipulate the old and new GSI levels.
>       */
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>      qemu_mutex_lock(&s->port_lock);
>
>      switch (type) {
> @@ -1037,7 +1037,7 @@ static int close_port(XenEvtchnState *s,
> evtchn_port_t port,
>      XenEvtchnPort *p =3D &s->port_table[port];
>
>      /* Because it *might* be a PIRQ port */
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      switch (p->type) {
>      case EVTCHNSTAT_closed:
> @@ -1104,7 +1104,7 @@ int xen_evtchn_soft_reset(void)
>          return -ENOTSUP;
>      }
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      qemu_mutex_lock(&s->port_lock);
>
> @@ -1601,7 +1601,7 @@ bool xen_evtchn_set_gsi(int gsi, int level)
>      XenEvtchnState *s =3D xen_evtchn_singleton;
>      int pirq;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      if (!s || gsi < 0 || gsi >=3D IOAPIC_NUM_PINS) {
>          return false;
> @@ -1712,7 +1712,7 @@ void xen_evtchn_snoop_msi(PCIDevice *dev, bool
> is_msix, unsigned int vector,
>          return;
>      }
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      pirq =3D msi_pirq_target(addr, data);
>
> @@ -1749,7 +1749,7 @@ int xen_evtchn_translate_pirq_msi(struct
> kvm_irq_routing_entry *route,
>          return 1; /* Not a PIRQ */
>      }
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      pirq =3D msi_pirq_target(address, data);
>      if (!pirq || pirq >=3D s->nr_pirqs) {
> @@ -1796,7 +1796,7 @@ bool xen_evtchn_deliver_pirq_msi(uint64_t address,
> uint32_t data)
>          return false;
>      }
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      pirq =3D msi_pirq_target(address, data);
>      if (!pirq || pirq >=3D s->nr_pirqs) {
> diff --git a/hw/i386/kvm/xen_overlay.c b/hw/i386/kvm/xen_overlay.c
> index 39fda1b72c..1722294638 100644
> --- a/hw/i386/kvm/xen_overlay.c
> +++ b/hw/i386/kvm/xen_overlay.c
> @@ -194,7 +194,7 @@ int xen_overlay_map_shinfo_page(uint64_t gpa)
>          return -ENOENT;
>      }
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      if (s->shinfo_gpa) {
>          /* If removing shinfo page, turn the kernel magic off first */
> diff --git a/hw/i386/kvm/xen_xenstore.c b/hw/i386/kvm/xen_xenstore.c
> index 6e651960b3..ae27889a3f 100644
> --- a/hw/i386/kvm/xen_xenstore.c
> +++ b/hw/i386/kvm/xen_xenstore.c
> @@ -1341,7 +1341,7 @@ static void fire_watch_cb(void *opaque, const char
> *path, const char *token)
>  {
>      XenXenstoreState *s =3D opaque;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      /*
>       * If there's a response pending, we obviously can't scribble over
> diff --git a/hw/intc/arm_gicv3_cpuif.c b/hw/intc/arm_gicv3_cpuif.c
> index ab1a00508e..77c2a6dd3b 100644
> --- a/hw/intc/arm_gicv3_cpuif.c
> +++ b/hw/intc/arm_gicv3_cpuif.c
> @@ -934,7 +934,7 @@ void gicv3_cpuif_update(GICv3CPUState *cs)
>      ARMCPU *cpu =3D ARM_CPU(cs->cpu);
>      CPUARMState *env =3D &cpu->env;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      trace_gicv3_cpuif_update(gicv3_redist_affid(cs), cs->hppi.irq,
>                               cs->hppi.grp, cs->hppi.prio);
> diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c
> index 74e02858d4..93b8531ad0 100644
> --- a/hw/intc/s390_flic.c
> +++ b/hw/intc/s390_flic.c
> @@ -106,7 +106,7 @@ static int qemu_s390_clear_io_flic(S390FLICState *fs,
> uint16_t subchannel_id,
>      QEMUS390FlicIO *cur, *next;
>      uint8_t isc;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      if (!(flic->pending & FLIC_PENDING_IO)) {
>          return 0;
>      }
> @@ -223,7 +223,7 @@ uint32_t
> qemu_s390_flic_dequeue_service(QEMUS390FLICState *flic)
>  {
>      uint32_t tmp;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      g_assert(flic->pending & FLIC_PENDING_SERVICE);
>      tmp =3D flic->service_param;
>      flic->service_param =3D 0;
> @@ -238,7 +238,7 @@ QEMUS390FlicIO
> *qemu_s390_flic_dequeue_io(QEMUS390FLICState *flic, uint64_t cr6)
>      QEMUS390FlicIO *io;
>      uint8_t isc;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      if (!(flic->pending & CR6_TO_PENDING_IO(cr6))) {
>          return NULL;
>      }
> @@ -262,7 +262,7 @@ QEMUS390FlicIO
> *qemu_s390_flic_dequeue_io(QEMUS390FLICState *flic, uint64_t cr6)
>
>  void qemu_s390_flic_dequeue_crw_mchk(QEMUS390FLICState *flic)
>  {
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      g_assert(flic->pending & FLIC_PENDING_MCHK_CR);
>      flic->pending &=3D ~FLIC_PENDING_MCHK_CR;
>  }
> @@ -271,7 +271,7 @@ static void qemu_s390_inject_service(S390FLICState
> *fs, uint32_t parm)
>  {
>      QEMUS390FLICState *flic =3D s390_get_qemu_flic(fs);
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      /* multiplexing is good enough for sclp - kvm does it internally as
> well */
>      flic->service_param |=3D parm;
>      flic->pending |=3D FLIC_PENDING_SERVICE;
> @@ -287,7 +287,7 @@ static void qemu_s390_inject_io(S390FLICState *fs,
> uint16_t subchannel_id,
>      QEMUS390FLICState *flic =3D s390_get_qemu_flic(fs);
>      QEMUS390FlicIO *io;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      io =3D g_new0(QEMUS390FlicIO, 1);
>      io->id =3D subchannel_id;
>      io->nr =3D subchannel_nr;
> @@ -304,7 +304,7 @@ static void qemu_s390_inject_crw_mchk(S390FLICState
> *fs)
>  {
>      QEMUS390FLICState *flic =3D s390_get_qemu_flic(fs);
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      flic->pending |=3D FLIC_PENDING_MCHK_CR;
>
>      qemu_s390_flic_notify(FLIC_PENDING_MCHK_CR);
> @@ -330,7 +330,7 @@ bool qemu_s390_flic_has_crw_mchk(QEMUS390FLICState
> *flic)
>
>  bool qemu_s390_flic_has_any(QEMUS390FLICState *flic)
>  {
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      return !!flic->pending;
>  }
>
> @@ -340,7 +340,7 @@ static void qemu_s390_flic_reset(DeviceState *dev)
>      QEMUS390FlicIO *cur, *next;
>      int isc;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      flic->simm =3D 0;
>      flic->nimm =3D 0;
>      flic->pending =3D 0;
> diff --git a/hw/misc/edu.c b/hw/misc/edu.c
> index a1f8bc77e7..fa05bdd4f3 100644
> --- a/hw/misc/edu.c
> +++ b/hw/misc/edu.c
> @@ -355,9 +355,9 @@ static void *edu_fact_thread(void *opaque)
>          smp_mb__after_rmw();
>
>          if (qatomic_read(&edu->status) & EDU_STATUS_IRQFACT) {
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              edu_raise_irq(edu, FACT_IRQ);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>          }
>      }
>
> diff --git a/hw/misc/imx6_src.c b/hw/misc/imx6_src.c
> index a9c64d06eb..2b9bb07540 100644
> --- a/hw/misc/imx6_src.c
> +++ b/hw/misc/imx6_src.c
> @@ -131,7 +131,7 @@ static void imx6_clear_reset_bit(CPUState *cpu,
> run_on_cpu_data data)
>      struct SRCSCRResetInfo *ri =3D data.host_ptr;
>      IMX6SRCState *s =3D ri->s;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      s->regs[SRC_SCR] =3D deposit32(s->regs[SRC_SCR], ri->reset_bit, 1, 0=
);
>      DPRINTF("reg[%s] <=3D 0x%" PRIx32 "\n",
> diff --git a/hw/misc/imx7_src.c b/hw/misc/imx7_src.c
> index 983251e86f..77ad7a7eef 100644
> --- a/hw/misc/imx7_src.c
> +++ b/hw/misc/imx7_src.c
> @@ -136,7 +136,7 @@ static void imx7_clear_reset_bit(CPUState *cpu,
> run_on_cpu_data data)
>      struct SRCSCRResetInfo *ri =3D data.host_ptr;
>      IMX7SRCState *s =3D ri->s;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      s->regs[SRC_A7RCR0] =3D deposit32(s->regs[SRC_A7RCR0], ri->reset_bit=
,
> 1, 0);
>
> diff --git a/hw/net/xen_nic.c b/hw/net/xen_nic.c
> index 1e2b3baeb1..453fdb9819 100644
> --- a/hw/net/xen_nic.c
> +++ b/hw/net/xen_nic.c
> @@ -133,7 +133,7 @@ static bool net_tx_packets(struct XenNetDev *netdev)
>      void *page;
>      void *tmpbuf =3D NULL;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      for (;;) {
>          rc =3D netdev->tx_ring.req_cons;
> @@ -260,7 +260,7 @@ static ssize_t net_rx_packet(NetClientState *nc, cons=
t
> uint8_t *buf, size_t size
>      RING_IDX rc, rp;
>      void *page;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      if (xen_device_backend_get_state(&netdev->xendev) !=3D
> XenbusStateConnected) {
>          return -1;
> @@ -354,7 +354,7 @@ static bool xen_netdev_connect(XenDevice *xendev,
> Error **errp)
>      XenNetDev *netdev =3D XEN_NET_DEVICE(xendev);
>      unsigned int port, rx_copy;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      if (xen_device_frontend_scanf(xendev, "tx-ring-ref", "%u",
>                                    &netdev->tx_ring_ref) !=3D 1) {
> @@ -425,7 +425,7 @@ static void xen_netdev_disconnect(XenDevice *xendev,
> Error **errp)
>
>      trace_xen_netdev_disconnect(netdev->dev);
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      netdev->tx_ring.sring =3D NULL;
>      netdev->rx_ring.sring =3D NULL;
> diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c
> index 3203a4a728..d84f3f977d 100644
> --- a/hw/ppc/pegasos2.c
> +++ b/hw/ppc/pegasos2.c
> @@ -515,7 +515,7 @@ static void pegasos2_hypercall(PPCVirtualHypervisor
> *vhyp, PowerPCCPU *cpu)
>      CPUPPCState *env =3D &cpu->env;
>
>      /* The TCG path should also be holding the BQL at this point */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      if (FIELD_EX64(env->msr, MSR, PR)) {
>          qemu_log_mask(LOG_GUEST_ERROR, "Hypercall made with MSR[PR]=3D1\=
n");
> diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
> index be167710a3..b6581c16fc 100644
> --- a/hw/ppc/ppc.c
> +++ b/hw/ppc/ppc.c
> @@ -314,7 +314,7 @@ void store_40x_dbcr0(CPUPPCState *env, uint32_t val)
>  {
>      PowerPCCPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      switch ((val >> 28) & 0x3) {
>      case 0x0:
> @@ -334,7 +334,7 @@ void store_40x_dbcr0(CPUPPCState *env, uint32_t val)
>          break;
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  /* PowerPC 40x internal IRQ controller */
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index df09aa9d6a..0620912f9c 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -1304,7 +1304,7 @@ static void
> emulate_spapr_hypercall(PPCVirtualHypervisor *vhyp,
>      CPUPPCState *env =3D &cpu->env;
>
>      /* The TCG path should also be holding the BQL at this point */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      g_assert(!vhyp_cpu_in_nested(cpu));
>
> diff --git a/hw/ppc/spapr_rng.c b/hw/ppc/spapr_rng.c
> index df5c4b9687..c2fda7ad20 100644
> --- a/hw/ppc/spapr_rng.c
> +++ b/hw/ppc/spapr_rng.c
> @@ -82,9 +82,9 @@ static target_ulong h_random(PowerPCCPU *cpu,
> SpaprMachineState *spapr,
>      while (hrdata.received < 8) {
>          rng_backend_request_entropy(rngstate->backend, 8 -
> hrdata.received,
>                                      random_recv, &hrdata);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          qemu_sem_wait(&hrdata.sem);
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>
>      qemu_sem_destroy(&hrdata.sem);
> diff --git a/hw/ppc/spapr_softmmu.c b/hw/ppc/spapr_softmmu.c
> index 278666317e..fc1bbc0b61 100644
> --- a/hw/ppc/spapr_softmmu.c
> +++ b/hw/ppc/spapr_softmmu.c
> @@ -334,7 +334,7 @@ static void *hpt_prepare_thread(void *opaque)
>          pending->ret =3D H_NO_MEM;
>      }
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      if (SPAPR_MACHINE(qdev_get_machine())->pending_hpt =3D=3D pending) {
>          /* Ready to go */
> @@ -344,7 +344,7 @@ static void *hpt_prepare_thread(void *opaque)
>          free_pending_hpt(pending);
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      return NULL;
>  }
>
> diff --git a/hw/remote/mpqemu-link.c b/hw/remote/mpqemu-link.c
> index 9bd98e8219..d04ac93621 100644
> --- a/hw/remote/mpqemu-link.c
> +++ b/hw/remote/mpqemu-link.c
> @@ -33,7 +33,7 @@
>   */
>  bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)
>  {
> -    bool iolock =3D qemu_mutex_iothread_locked();
> +    bool drop_bql =3D bql_locked();
>      bool iothread =3D qemu_in_iothread();
>      struct iovec send[2] =3D {};
>      int *fds =3D NULL;
> @@ -63,8 +63,8 @@ bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc,
> Error **errp)
>       * for IOThread case.
>       * Also skip lock handling while in a co-routine in the main context=
.
>       */
> -    if (iolock && !iothread && !qemu_in_coroutine()) {
> -        qemu_mutex_unlock_iothread();
> +    if (drop_bql && !iothread && !qemu_in_coroutine()) {
> +        bql_unlock();
>      }
>
>      if (!qio_channel_writev_full_all(ioc, send, G_N_ELEMENTS(send),
> @@ -74,9 +74,9 @@ bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc,
> Error **errp)
>          trace_mpqemu_send_io_error(msg->cmd, msg->size, nfds);
>      }
>
> -    if (iolock && !iothread && !qemu_in_coroutine()) {
> +    if (drop_bql && !iothread && !qemu_in_coroutine()) {
>          /* See above comment why skip locking here. */
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>
>      return ret;
> @@ -96,7 +96,7 @@ static ssize_t mpqemu_read(QIOChannel *ioc, void *buf,
> size_t len, int **fds,
>                             size_t *nfds, Error **errp)
>  {
>      struct iovec iov =3D { .iov_base =3D buf, .iov_len =3D len };
> -    bool iolock =3D qemu_mutex_iothread_locked();
> +    bool drop_bql =3D bql_locked();
>      bool iothread =3D qemu_in_iothread();
>      int ret =3D -1;
>
> @@ -106,14 +106,14 @@ static ssize_t mpqemu_read(QIOChannel *ioc, void
> *buf, size_t len, int **fds,
>       */
>      assert(qemu_in_coroutine() || !iothread);
>
> -    if (iolock && !iothread && !qemu_in_coroutine()) {
> -        qemu_mutex_unlock_iothread();
> +    if (drop_bql && !iothread && !qemu_in_coroutine()) {
> +        bql_unlock();
>      }
>
>      ret =3D qio_channel_readv_full_all_eof(ioc, &iov, 1, fds, nfds, errp=
);
>
> -    if (iolock && !iothread && !qemu_in_coroutine()) {
> -        qemu_mutex_lock_iothread();
> +    if (drop_bql && !iothread && !qemu_in_coroutine()) {
> +        bql_lock();
>      }
>
>      return (ret <=3D 0) ? ret : iov.iov_len;
> diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c
> index 8b10c32a3c..d9b879e056 100644
> --- a/hw/remote/vfio-user-obj.c
> +++ b/hw/remote/vfio-user-obj.c
> @@ -400,7 +400,7 @@ static int vfu_object_mr_rw(MemoryRegion *mr, uint8_t
> *buf, hwaddr offset,
>          }
>
>          if (release_lock) {
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              release_lock =3D false;
>          }
>
> diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
> index 8f5159d85d..5c535d483e 100644
> --- a/hw/s390x/s390-skeys.c
> +++ b/hw/s390x/s390-skeys.c
> @@ -153,7 +153,7 @@ void qmp_dump_skeys(const char *filename, Error **err=
p)
>          goto out;
>      }
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>      guest_phys_blocks_init(&guest_phys_blocks);
>      guest_phys_blocks_append(&guest_phys_blocks);
>
> diff --git a/migration/block-dirty-bitmap.c
> b/migration/block-dirty-bitmap.c
> index 24347ab0f7..92e031b6fa 100644
> --- a/migration/block-dirty-bitmap.c
> +++ b/migration/block-dirty-bitmap.c
> @@ -774,7 +774,7 @@ static void dirty_bitmap_state_pending(void *opaque,
>      SaveBitmapState *dbms;
>      uint64_t pending =3D 0;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      QSIMPLEQ_FOREACH(dbms, &s->dbms_list, entry) {
>          uint64_t gran =3D bdrv_dirty_bitmap_granularity(dbms->bitmap);
> @@ -784,7 +784,7 @@ static void dirty_bitmap_state_pending(void *opaque,
>          pending +=3D DIV_ROUND_UP(sectors * BDRV_SECTOR_SIZE, gran);
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      trace_dirty_bitmap_state_pending(pending);
>
> diff --git a/migration/block.c b/migration/block.c
> index a15f9bddcb..4a675b92bc 100644
> --- a/migration/block.c
> +++ b/migration/block.c
> @@ -269,7 +269,7 @@ static int mig_save_device_bulk(QEMUFile *f,
> BlkMigDevState *bmds)
>      int64_t count;
>
>      if (bmds->shared_base) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          aio_context_acquire(blk_get_aio_context(bb));
>          /* Skip unallocated sectors; intentionally treats failure or
>           * partial sector as an allocated sector */
> @@ -282,7 +282,7 @@ static int mig_save_device_bulk(QEMUFile *f,
> BlkMigDevState *bmds)
>              cur_sector +=3D count >> BDRV_SECTOR_BITS;
>          }
>          aio_context_release(blk_get_aio_context(bb));
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>
>      if (cur_sector >=3D total_sectors) {
> @@ -321,14 +321,14 @@ static int mig_save_device_bulk(QEMUFile *f,
> BlkMigDevState *bmds)
>       * This is ugly and will disappear when we make bdrv_* thread-safe,
>       * without the need to acquire the AioContext.
>       */
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      aio_context_acquire(blk_get_aio_context(bmds->blk));
>      bdrv_reset_dirty_bitmap(bmds->dirty_bitmap, cur_sector *
> BDRV_SECTOR_SIZE,
>                              nr_sectors * BDRV_SECTOR_SIZE);
>      blk->aiocb =3D blk_aio_preadv(bb, cur_sector * BDRV_SECTOR_SIZE,
> &blk->qiov,
>                                  0, blk_mig_read_cb, blk);
>      aio_context_release(blk_get_aio_context(bmds->blk));
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      bmds->cur_sector =3D cur_sector + nr_sectors;
>      return (bmds->cur_sector >=3D total_sectors);
> @@ -786,9 +786,9 @@ static int block_save_iterate(QEMUFile *f, void
> *opaque)
>              /* Always called with iothread lock taken for
>               * simplicity, block_save_complete also calls it.
>               */
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              ret =3D blk_mig_save_dirty_block(f, 1);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>          }
>          if (ret < 0) {
>              return ret;
> @@ -860,9 +860,9 @@ static void block_state_pending(void *opaque, uint64_=
t
> *must_precopy,
>      /* Estimate pending number of bytes to send */
>      uint64_t pending;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      pending =3D get_remaining_dirty();
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      blk_mig_lock();
>      pending +=3D block_mig_state.submitted * BLK_MIG_BLOCK_SIZE +
> diff --git a/migration/colo.c b/migration/colo.c
> index 4447e34914..2a74efdd77 100644
> --- a/migration/colo.c
> +++ b/migration/colo.c
> @@ -420,13 +420,13 @@ static int
> colo_do_checkpoint_transaction(MigrationState *s,
>      qio_channel_io_seek(QIO_CHANNEL(bioc), 0, 0, NULL);
>      bioc->usage =3D 0;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      if (failover_get_state() !=3D FAILOVER_STATUS_NONE) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          goto out;
>      }
>      vm_stop_force_state(RUN_STATE_COLO);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      trace_colo_vm_state_change("run", "stop");
>      /*
>       * Failover request bh could be called after vm_stop_force_state(),
> @@ -435,23 +435,23 @@ static int
> colo_do_checkpoint_transaction(MigrationState *s,
>      if (failover_get_state() !=3D FAILOVER_STATUS_NONE) {
>          goto out;
>      }
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      replication_do_checkpoint_all(&local_err);
>      if (local_err) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          goto out;
>      }
>
>      colo_send_message(s->to_dst_file, COLO_MESSAGE_VMSTATE_SEND,
> &local_err);
>      if (local_err) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          goto out;
>      }
>      /* Note: device state is saved into buffer */
>      ret =3D qemu_save_device_state(fb);
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      if (ret < 0) {
>          goto out;
>      }
> @@ -504,9 +504,9 @@ static int
> colo_do_checkpoint_transaction(MigrationState *s,
>
>      ret =3D 0;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      vm_start();
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      trace_colo_vm_state_change("stop", "run");
>
>  out:
> @@ -557,15 +557,15 @@ static void colo_process_checkpoint(MigrationState
> *s)
>      fb =3D qemu_file_new_output(QIO_CHANNEL(bioc));
>      object_unref(OBJECT(bioc));
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      replication_start_all(REPLICATION_MODE_PRIMARY, &local_err);
>      if (local_err) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          goto out;
>      }
>
>      vm_start();
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      trace_colo_vm_state_change("stop", "run");
>
>      timer_mod(s->colo_delay_timer, qemu_clock_get_ms(QEMU_CLOCK_HOST) +
> @@ -639,14 +639,14 @@ out:
>
>  void migrate_start_colo_process(MigrationState *s)
>  {
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      qemu_event_init(&s->colo_checkpoint_event, false);
>      s->colo_delay_timer =3D  timer_new_ms(QEMU_CLOCK_HOST,
>                                  colo_checkpoint_notify, s);
>
>      qemu_sem_init(&s->colo_exit_sem, 0);
>      colo_process_checkpoint(s);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>  }
>
>  static void colo_incoming_process_checkpoint(MigrationIncomingState *mis=
,
> @@ -657,9 +657,9 @@ static void
> colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>      Error *local_err =3D NULL;
>      int ret;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      vm_stop_force_state(RUN_STATE_COLO);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      trace_colo_vm_state_change("run", "stop");
>
>      /* FIXME: This is unnecessary for periodic checkpoint mode */
> @@ -677,10 +677,10 @@ static void
> colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>          return;
>      }
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      cpu_synchronize_all_states();
>      ret =3D qemu_loadvm_state_main(mis->from_src_file, mis);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      if (ret < 0) {
>          error_setg(errp, "Load VM's live state (ram) error");
> @@ -719,14 +719,14 @@ static void
> colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>          return;
>      }
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      vmstate_loading =3D true;
>      colo_flush_ram_cache();
>      ret =3D qemu_load_device_state(fb);
>      if (ret < 0) {
>          error_setg(errp, "COLO: load device state failed");
>          vmstate_loading =3D false;
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          return;
>      }
>
> @@ -734,7 +734,7 @@ static void
> colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>      if (local_err) {
>          error_propagate(errp, local_err);
>          vmstate_loading =3D false;
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          return;
>      }
>
> @@ -743,7 +743,7 @@ static void
> colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>      if (local_err) {
>          error_propagate(errp, local_err);
>          vmstate_loading =3D false;
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          return;
>      }
>      /* Notify all filters of all NIC to do checkpoint */
> @@ -752,13 +752,13 @@ static void
> colo_incoming_process_checkpoint(MigrationIncomingState *mis,
>      if (local_err) {
>          error_propagate(errp, local_err);
>          vmstate_loading =3D false;
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          return;
>      }
>
>      vmstate_loading =3D false;
>      vm_start();
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      trace_colo_vm_state_change("stop", "run");
>
>      if (failover_get_state() =3D=3D FAILOVER_STATUS_RELAUNCH) {
> @@ -851,14 +851,14 @@ static void *colo_process_incoming_thread(void
> *opaque)
>      fb =3D qemu_file_new_input(QIO_CHANNEL(bioc));
>      object_unref(OBJECT(bioc));
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      replication_start_all(REPLICATION_MODE_SECONDARY, &local_err);
>      if (local_err) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          goto out;
>      }
>      vm_start();
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      trace_colo_vm_state_change("stop", "run");
>
>      colo_send_message(mis->to_src_file, COLO_MESSAGE_CHECKPOINT_READY,
> @@ -920,7 +920,7 @@ int coroutine_fn colo_incoming_co(void)
>      Error *local_err =3D NULL;
>      QemuThread th;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      if (!migration_incoming_colo_enabled()) {
>          return 0;
> @@ -940,10 +940,10 @@ int coroutine_fn colo_incoming_co(void)
>      qemu_coroutine_yield();
>      mis->colo_incoming_co =3D NULL;
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      /* Wait checkpoint incoming thread exit before free resource */
>      qemu_thread_join(&th);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      /* We hold the global iothread lock, so it is safe here */
>      colo_release_ram_cache();
> diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
> index 036ac017fc..429d10c4d9 100644
> --- a/migration/dirtyrate.c
> +++ b/migration/dirtyrate.c
> @@ -90,13 +90,13 @@ static int64_t do_calculate_dirtyrate(DirtyPageRecord
> dirty_pages,
>
>  void global_dirty_log_change(unsigned int flag, bool start)
>  {
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      if (start) {
>          memory_global_dirty_log_start(flag);
>      } else {
>          memory_global_dirty_log_stop(flag);
>      }
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  /*
> @@ -106,12 +106,12 @@ void global_dirty_log_change(unsigned int flag, boo=
l
> start)
>   */
>  static void global_dirty_log_sync(unsigned int flag, bool one_shot)
>  {
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      memory_global_dirty_log_sync(false);
>      if (one_shot) {
>          memory_global_dirty_log_stop(flag);
>      }
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  static DirtyPageRecord *vcpu_dirty_stat_alloc(VcpuStat *stat)
> @@ -610,7 +610,7 @@ static void calculate_dirtyrate_dirty_bitmap(struct
> DirtyRateConfig config)
>      int64_t start_time;
>      DirtyPageRecord dirty_pages;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      memory_global_dirty_log_start(GLOBAL_DIRTY_DIRTY_RATE);
>
>      /*
> @@ -627,7 +627,7 @@ static void calculate_dirtyrate_dirty_bitmap(struct
> DirtyRateConfig config)
>       * KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE cap is enabled.
>       */
>      dirtyrate_manual_reset_protect();
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      record_dirtypages_bitmap(&dirty_pages, true);
>
> diff --git a/migration/migration.c b/migration/migration.c
> index 3ce04b2aaf..be74c714d6 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -1294,12 +1294,12 @@ static void migrate_fd_cleanup(MigrationState *s)
>          QEMUFile *tmp;
>
>          trace_migrate_fd_cleanup();
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          if (s->migration_thread_running) {
>              qemu_thread_join(&s->thread);
>              s->migration_thread_running =3D false;
>          }
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>
>          multifd_save_cleanup();
>          qemu_mutex_lock(&s->qemu_file_lock);
> @@ -2411,7 +2411,7 @@ static int postcopy_start(MigrationState *ms, Error
> **errp)
>      }
>
>      trace_postcopy_start();
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      trace_postcopy_start_set_run();
>
>      migration_downtime_start(ms);
> @@ -2520,7 +2520,7 @@ static int postcopy_start(MigrationState *ms, Error
> **errp)
>
>      migration_downtime_end(ms);
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      if (migrate_postcopy_ram()) {
>          /*
> @@ -2561,7 +2561,7 @@ fail:
>              error_report_err(local_err);
>          }
>      }
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      return -1;
>  }
>
> @@ -2595,14 +2595,14 @@ static int migration_maybe_pause(MigrationState *=
s,
>       * wait for the 'pause_sem' semaphore.
>       */
>      if (s->state !=3D MIGRATION_STATUS_CANCELLING) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          migrate_set_state(&s->state, *current_active_state,
>                            MIGRATION_STATUS_PRE_SWITCHOVER);
>          qemu_sem_wait(&s->pause_sem);
>          migrate_set_state(&s->state, MIGRATION_STATUS_PRE_SWITCHOVER,
>                            new_state);
>          *current_active_state =3D new_state;
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>
>      return s->state =3D=3D new_state ? 0 : -EINVAL;
> @@ -2613,7 +2613,7 @@ static int
> migration_completion_precopy(MigrationState *s,
>  {
>      int ret;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      migration_downtime_start(s);
>      qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER, NULL);
>
> @@ -2641,7 +2641,7 @@ static int
> migration_completion_precopy(MigrationState *s,
>      ret =3D qemu_savevm_state_complete_precopy(s->to_dst_file, false,
>                                               s->block_inactive);
>  out_unlock:
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      return ret;
>  }
>
> @@ -2649,9 +2649,9 @@ static void
> migration_completion_postcopy(MigrationState *s)
>  {
>      trace_migration_completion_postcopy_end();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_savevm_state_complete_postcopy(s->to_dst_file);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      /*
>       * Shutdown the postcopy fast path thread.  This is only needed when
> dest
> @@ -2675,14 +2675,14 @@ static void
> migration_completion_failed(MigrationState *s,
>           */
>          Error *local_err =3D NULL;
>
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          bdrv_activate_all(&local_err);
>          if (local_err) {
>              error_report_err(local_err);
>          } else {
>              s->block_inactive =3D false;
>          }
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>
>      migrate_set_state(&s->state, current_active_state,
> @@ -3122,7 +3122,7 @@ static void
> migration_iteration_finish(MigrationState *s)
>      /* If we enabled cpu throttling for auto-converge, turn it off. */
>      cpu_throttle_stop();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      switch (s->state) {
>      case MIGRATION_STATUS_COMPLETED:
>          migration_calculate_complete(s);
> @@ -3153,7 +3153,7 @@ static void
> migration_iteration_finish(MigrationState *s)
>          break;
>      }
>      migrate_fd_cleanup_schedule(s);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  static void bg_migration_iteration_finish(MigrationState *s)
> @@ -3165,7 +3165,7 @@ static void
> bg_migration_iteration_finish(MigrationState *s)
>       */
>      ram_write_tracking_stop();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      switch (s->state) {
>      case MIGRATION_STATUS_COMPLETED:
>          migration_calculate_complete(s);
> @@ -3184,7 +3184,7 @@ static void
> bg_migration_iteration_finish(MigrationState *s)
>      }
>
>      migrate_fd_cleanup_schedule(s);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  /*
> @@ -3306,9 +3306,9 @@ static void *migration_thread(void *opaque)
>      object_ref(OBJECT(s));
>      update_iteration_initial_status(s);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_savevm_state_header(s->to_dst_file);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      /*
>       * If we opened the return path, we need to make sure dst has it
> @@ -3336,9 +3336,9 @@ static void *migration_thread(void *opaque)
>          qemu_savevm_send_colo_enable(s->to_dst_file);
>      }
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_savevm_state_setup(s->to_dst_file);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,
>                                 MIGRATION_STATUS_ACTIVE);
> @@ -3449,10 +3449,10 @@ static void *bg_migration_thread(void *opaque)
>      ram_write_tracking_prepare();
>  #endif
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_savevm_state_header(s->to_dst_file);
>      qemu_savevm_state_setup(s->to_dst_file);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,
>                                 MIGRATION_STATUS_ACTIVE);
> @@ -3462,7 +3462,7 @@ static void *bg_migration_thread(void *opaque)
>      trace_migration_thread_setup_complete();
>      migration_downtime_start(s);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      /*
>       * If VM is currently in suspended state, then, to make a valid
> runstate
> @@ -3505,7 +3505,7 @@ static void *bg_migration_thread(void *opaque)
>      s->vm_start_bh =3D qemu_bh_new(bg_migration_vm_start_bh, s);
>      qemu_bh_schedule(s->vm_start_bh);
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      while (migration_is_active(s)) {
>          MigIterateState iter_state =3D bg_migration_iteration_run(s);
> @@ -3534,7 +3534,7 @@ fail:
>      if (early_fail) {
>          migrate_set_state(&s->state, MIGRATION_STATUS_ACTIVE,
>                  MIGRATION_STATUS_FAILED);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>
>      bg_migration_iteration_finish(s);
> diff --git a/migration/ram.c b/migration/ram.c
> index 8c7886ab79..08dc7e2909 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -2984,9 +2984,9 @@ static int ram_save_setup(QEMUFile *f, void *opaque=
)
>      migration_ops =3D g_malloc0(sizeof(MigrationOps));
>      migration_ops->ram_save_target_page =3D ram_save_target_page_legacy;
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      ret =3D multifd_send_sync_main(f);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      if (ret < 0) {
>          return ret;
>      }
> @@ -3221,11 +3221,11 @@ static void ram_state_pending_exact(void *opaque,
> uint64_t *must_precopy,
>      uint64_t remaining_size =3D rs->migration_dirty_pages *
> TARGET_PAGE_SIZE;
>
>      if (!migration_in_postcopy() && remaining_size < s->threshold_size) =
{
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          WITH_RCU_READ_LOCK_GUARD() {
>              migration_bitmap_sync_precopy(rs, false);
>          }
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          remaining_size =3D rs->migration_dirty_pages * TARGET_PAGE_SIZE;
>      }
>
> @@ -3453,7 +3453,7 @@ void colo_incoming_start_dirty_log(void)
>  {
>      RAMBlock *block =3D NULL;
>      /* For memory_global_dirty_log_start below. */
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_mutex_lock_ramlist();
>
>      memory_global_dirty_log_sync(false);
> @@ -3467,7 +3467,7 @@ void colo_incoming_start_dirty_log(void)
>      }
>      ram_state->migration_dirty_pages =3D 0;
>      qemu_mutex_unlock_ramlist();
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  /* It is need to hold the global lock to call this helper */
> diff --git a/replay/replay-internal.c b/replay/replay-internal.c
> index 77d0c82327..3e08e381cb 100644
> --- a/replay/replay-internal.c
> +++ b/replay/replay-internal.c
> @@ -216,7 +216,7 @@ void replay_mutex_lock(void)
>  {
>      if (replay_mode !=3D REPLAY_MODE_NONE) {
>          unsigned long id;
> -        g_assert(!qemu_mutex_iothread_locked());
> +        g_assert(!bql_locked());
>          g_assert(!replay_mutex_locked());
>          qemu_mutex_lock(&lock);
>          id =3D mutex_tail++;
> diff --git a/semihosting/console.c b/semihosting/console.c
> index 5d61e8207e..60102bbab6 100644
> --- a/semihosting/console.c
> +++ b/semihosting/console.c
> @@ -43,7 +43,7 @@ static SemihostingConsole console;
>  static int console_can_read(void *opaque)
>  {
>      SemihostingConsole *c =3D opaque;
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      return (int)fifo8_num_free(&c->fifo);
>  }
>
> @@ -58,7 +58,7 @@ static void console_wake_up(gpointer data, gpointer
> user_data)
>  static void console_read(void *opaque, const uint8_t *buf, int size)
>  {
>      SemihostingConsole *c =3D opaque;
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      while (size-- && !fifo8_is_full(&c->fifo)) {
>          fifo8_push(&c->fifo, *buf++);
>      }
> @@ -70,7 +70,7 @@ bool qemu_semihosting_console_ready(void)
>  {
>      SemihostingConsole *c =3D &console;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      return !fifo8_is_empty(&c->fifo);
>  }
>
> @@ -78,7 +78,7 @@ void qemu_semihosting_console_block_until_ready(CPUStat=
e
> *cs)
>  {
>      SemihostingConsole *c =3D &console;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      /* Block if the fifo is completely empty. */
>      if (fifo8_is_empty(&c->fifo)) {
> diff --git a/stubs/iothread-lock.c b/stubs/iothread-lock.c
> index 5b45b7fc8b..d7890e5581 100644
> --- a/stubs/iothread-lock.c
> +++ b/stubs/iothread-lock.c
> @@ -1,15 +1,15 @@
>  #include "qemu/osdep.h"
>  #include "qemu/main-loop.h"
>
> -bool qemu_mutex_iothread_locked(void)
> +bool bql_locked(void)
>  {
>      return false;
>  }
>
> -void qemu_mutex_lock_iothread_impl(const char *file, int line)
> +void bql_lock_impl(const char *file, int line)
>  {
>  }
>
> -void qemu_mutex_unlock_iothread(void)
> +void bql_unlock(void)
>  {
>  }
> diff --git a/system/cpu-throttle.c b/system/cpu-throttle.c
> index d9bb30a223..786a9a5639 100644
> --- a/system/cpu-throttle.c
> +++ b/system/cpu-throttle.c
> @@ -57,9 +57,9 @@ static void cpu_throttle_thread(CPUState *cpu,
> run_on_cpu_data opaque)
>              qemu_cond_timedwait_iothread(cpu->halt_cond,
>                                           sleeptime_ns / SCALE_MS);
>          } else {
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              g_usleep(sleeptime_ns / SCALE_US);
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>          }
>          sleeptime_ns =3D endtime_ns -
> qemu_clock_get_ns(QEMU_CLOCK_REALTIME);
>      }
> diff --git a/system/cpus.c b/system/cpus.c
> index a444a747f0..9b68dc9c7c 100644
> --- a/system/cpus.c
> +++ b/system/cpus.c
> @@ -65,7 +65,8 @@
>
>  #endif /* CONFIG_LINUX */
>
> -static QemuMutex qemu_global_mutex;
> +/* The Big QEMU Lock (BQL) */
> +static QemuMutex bql;
>
>  /*
>   * The chosen accelerator is supposed to register this.
> @@ -389,14 +390,14 @@ void qemu_init_cpu_loop(void)
>      qemu_init_sigbus();
>      qemu_cond_init(&qemu_cpu_cond);
>      qemu_cond_init(&qemu_pause_cond);
> -    qemu_mutex_init(&qemu_global_mutex);
> +    qemu_mutex_init(&bql);
>
>      qemu_thread_get_self(&io_thread);
>  }
>
>  void run_on_cpu(CPUState *cpu, run_on_cpu_func func, run_on_cpu_data dat=
a)
>  {
> -    do_run_on_cpu(cpu, func, data, &qemu_global_mutex);
> +    do_run_on_cpu(cpu, func, data, &bql);
>  }
>
>  static void qemu_cpu_stop(CPUState *cpu, bool exit)
> @@ -428,7 +429,7 @@ void qemu_wait_io_event(CPUState *cpu)
>              slept =3D true;
>              qemu_plugin_vcpu_idle_cb(cpu);
>          }
> -        qemu_cond_wait(cpu->halt_cond, &qemu_global_mutex);
> +        qemu_cond_wait(cpu->halt_cond, &bql);
>      }
>      if (slept) {
>          qemu_plugin_vcpu_resume_cb(cpu);
> @@ -481,46 +482,46 @@ bool qemu_in_vcpu_thread(void)
>      return current_cpu && qemu_cpu_is_self(current_cpu);
>  }
>
> -QEMU_DEFINE_STATIC_CO_TLS(bool, iothread_locked)
> +QEMU_DEFINE_STATIC_CO_TLS(bool, bql_locked)
>
> -bool qemu_mutex_iothread_locked(void)
> +bool bql_locked(void)
>  {
> -    return get_iothread_locked();
> +    return get_bql_locked();
>  }
>
>  bool qemu_in_main_thread(void)
>  {
> -    return qemu_mutex_iothread_locked();
> +    return bql_locked();
>  }
>
>  /*
>   * The BQL is taken from so many places that it is worth profiling the
>   * callers directly, instead of funneling them all through a single
> function.
>   */
> -void qemu_mutex_lock_iothread_impl(const char *file, int line)
> +void bql_lock_impl(const char *file, int line)
>  {
> -    QemuMutexLockFunc bql_lock =3D qatomic_read(&qemu_bql_mutex_lock_fun=
c);
> +    QemuMutexLockFunc bql_lock_fn =3D qatomic_read(&bql_mutex_lock_func)=
;
>
> -    g_assert(!qemu_mutex_iothread_locked());
> -    bql_lock(&qemu_global_mutex, file, line);
> -    set_iothread_locked(true);
> +    g_assert(!bql_locked());
> +    bql_lock_fn(&bql, file, line);
> +    set_bql_locked(true);
>  }
>
> -void qemu_mutex_unlock_iothread(void)
> +void bql_unlock(void)
>  {
> -    g_assert(qemu_mutex_iothread_locked());
> -    set_iothread_locked(false);
> -    qemu_mutex_unlock(&qemu_global_mutex);
> +    g_assert(bql_locked());
> +    set_bql_locked(false);
> +    qemu_mutex_unlock(&bql);
>  }
>
>  void qemu_cond_wait_iothread(QemuCond *cond)
>  {
> -    qemu_cond_wait(cond, &qemu_global_mutex);
> +    qemu_cond_wait(cond, &bql);
>  }
>
>  void qemu_cond_timedwait_iothread(QemuCond *cond, int ms)
>  {
> -    qemu_cond_timedwait(cond, &qemu_global_mutex, ms);
> +    qemu_cond_timedwait(cond, &bql, ms);
>  }
>
>  /* signal CPU creation */
> @@ -571,15 +572,15 @@ void pause_all_vcpus(void)
>      replay_mutex_unlock();
>
>      while (!all_vcpus_paused()) {
> -        qemu_cond_wait(&qemu_pause_cond, &qemu_global_mutex);
> +        qemu_cond_wait(&qemu_pause_cond, &bql);
>          CPU_FOREACH(cpu) {
>              qemu_cpu_kick(cpu);
>          }
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      replay_mutex_lock();
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>  }
>
>  void cpu_resume(CPUState *cpu)
> @@ -608,9 +609,9 @@ void cpu_remove_sync(CPUState *cpu)
>      cpu->stop =3D true;
>      cpu->unplug =3D true;
>      qemu_cpu_kick(cpu);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      qemu_thread_join(cpu->thread);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>  }
>
>  void cpus_register_accel(const AccelOpsClass *ops)
> @@ -649,7 +650,7 @@ void qemu_init_vcpu(CPUState *cpu)
>      cpus_accel->create_vcpu_thread(cpu);
>
>      while (!cpu->created) {
> -        qemu_cond_wait(&qemu_cpu_cond, &qemu_global_mutex);
> +        qemu_cond_wait(&qemu_cpu_cond, &bql);
>      }
>  }
>
> diff --git a/system/dirtylimit.c b/system/dirtylimit.c
> index 495c7a7082..b5607eb8c2 100644
> --- a/system/dirtylimit.c
> +++ b/system/dirtylimit.c
> @@ -148,9 +148,9 @@ void vcpu_dirty_rate_stat_stop(void)
>  {
>      qatomic_set(&vcpu_dirty_rate_stat->running, 0);
>      dirtylimit_state_unlock();
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      qemu_thread_join(&vcpu_dirty_rate_stat->thread);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      dirtylimit_state_lock();
>  }
>
> diff --git a/system/memory.c b/system/memory.c
> index 798b6c0a17..7a9dc43c2d 100644
> --- a/system/memory.c
> +++ b/system/memory.c
> @@ -1119,7 +1119,7 @@ void memory_region_transaction_commit(void)
>      AddressSpace *as;
>
>      assert(memory_region_transaction_depth);
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      --memory_region_transaction_depth;
>      if (!memory_region_transaction_depth) {
> diff --git a/system/physmem.c b/system/physmem.c
> index a63853a7bc..4937e67bad 100644
> --- a/system/physmem.c
> +++ b/system/physmem.c
> @@ -2639,8 +2639,8 @@ bool prepare_mmio_access(MemoryRegion *mr)
>  {
>      bool release_lock =3D false;
>
> -    if (!qemu_mutex_iothread_locked()) {
> -        qemu_mutex_lock_iothread();
> +    if (!bql_locked()) {
> +        bql_lock();
>          release_lock =3D true;
>      }
>      if (mr->flush_coalesced_mmio) {
> @@ -2721,7 +2721,7 @@ static MemTxResult flatview_write_continue(FlatView
> *fv, hwaddr addr,
>          }
>
>          if (release_lock) {
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              release_lock =3D false;
>          }
>
> @@ -2799,7 +2799,7 @@ MemTxResult flatview_read_continue(FlatView *fv,
> hwaddr addr,
>          }
>
>          if (release_lock) {
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              release_lock =3D false;
>          }
>
> diff --git a/system/runstate.c b/system/runstate.c
> index ea9d6c2a32..5833ba0675 100644
> --- a/system/runstate.c
> +++ b/system/runstate.c
> @@ -810,7 +810,7 @@ void qemu_init_subsystems(void)
>
>      qemu_init_cpu_list();
>      qemu_init_cpu_loop();
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      atexit(qemu_run_exit_notifiers);
>
> diff --git a/system/watchpoint.c b/system/watchpoint.c
> index ba5ad13352..b76007ebf6 100644
> --- a/system/watchpoint.c
> +++ b/system/watchpoint.c
> @@ -155,9 +155,9 @@ void cpu_check_watchpoint(CPUState *cpu, vaddr addr,
> vaddr len,
>           * Now raise the debug interrupt so that it will
>           * trigger after the current instruction.
>           */
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_interrupt(cpu, CPU_INTERRUPT_DEBUG);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          return;
>      }
>
> diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c
> index c078849403..8850381565 100644
> --- a/target/arm/arm-powerctl.c
> +++ b/target/arm/arm-powerctl.c
> @@ -88,7 +88,7 @@ static void arm_set_cpu_on_async_work(CPUState
> *target_cpu_state,
>      g_free(info);
>
>      /* Finally set the power status */
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>      target_cpu->power_state =3D PSCI_ON;
>  }
>
> @@ -99,7 +99,7 @@ int arm_set_cpu_on(uint64_t cpuid, uint64_t entry,
> uint64_t context_id,
>      ARMCPU *target_cpu;
>      struct CpuOnInfo *info;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      DPRINTF("cpu %" PRId64 " (EL %d, %s) @ 0x%" PRIx64 " with R0 =3D 0x%=
"
> PRIx64
>              "\n", cpuid, target_el, target_aa64 ? "aarch64" : "aarch32",
> entry,
> @@ -196,7 +196,7 @@ static void
> arm_set_cpu_on_and_reset_async_work(CPUState *target_cpu_state,
>      target_cpu_state->halted =3D 0;
>
>      /* Finally set the power status */
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>      target_cpu->power_state =3D PSCI_ON;
>  }
>
> @@ -205,7 +205,7 @@ int arm_set_cpu_on_and_reset(uint64_t cpuid)
>      CPUState *target_cpu_state;
>      ARMCPU *target_cpu;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      /* Retrieve the cpu we are powering up */
>      target_cpu_state =3D arm_get_cpu_by_id(cpuid);
> @@ -247,7 +247,7 @@ static void arm_set_cpu_off_async_work(CPUState
> *target_cpu_state,
>  {
>      ARMCPU *target_cpu =3D ARM_CPU(target_cpu_state);
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>      target_cpu->power_state =3D PSCI_OFF;
>      target_cpu_state->halted =3D 1;
>      target_cpu_state->exception_index =3D EXCP_HLT;
> @@ -258,7 +258,7 @@ int arm_set_cpu_off(uint64_t cpuid)
>      CPUState *target_cpu_state;
>      ARMCPU *target_cpu;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      DPRINTF("cpu %" PRId64 "\n", cpuid);
>
> @@ -294,7 +294,7 @@ int arm_reset_cpu(uint64_t cpuid)
>      CPUState *target_cpu_state;
>      ARMCPU *target_cpu;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      DPRINTF("cpu %" PRId64 "\n", cpuid);
>
> diff --git a/target/arm/helper.c b/target/arm/helper.c
> index 2746d3fdac..4a978d1102 100644
> --- a/target/arm/helper.c
> +++ b/target/arm/helper.c
> @@ -5831,7 +5831,7 @@ static void do_hcr_write(CPUARMState *env, uint64_t
> value, uint64_t valid_mask)
>       * VFIQ are masked unless running at EL0 or EL1, and HCR
>       * can only be written at EL2.
>       */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      arm_cpu_update_virq(cpu);
>      arm_cpu_update_vfiq(cpu);
>      arm_cpu_update_vserr(cpu);
> @@ -11344,7 +11344,7 @@ void arm_cpu_do_interrupt(CPUState *cs)
>       * BQL needs to be held for any modification of
>       * cs->interrupt_request.
>       */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      arm_call_pre_el_change_hook(cpu);
>
> diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
> index 757e13b0f9..f8dffb815f 100644
> --- a/target/arm/hvf/hvf.c
> +++ b/target/arm/hvf/hvf.c
> @@ -1718,9 +1718,9 @@ static void hvf_wait_for_ipi(CPUState *cpu, struct
> timespec *ts)
>       * sleeping.
>       */
>      qatomic_set_mb(&cpu->thread_kicked, false);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      pselect(0, 0, 0, 0, ts, &cpu->accel->unblock_ipi_mask);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>  }
>
>  static void hvf_wfi(CPUState *cpu)
> @@ -1821,7 +1821,7 @@ int hvf_vcpu_exec(CPUState *cpu)
>
>      flush_cpu_state(cpu);
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      assert_hvf_ok(hv_vcpu_run(cpu->accel->fd));
>
>      /* handle VMEXIT */
> @@ -1830,7 +1830,7 @@ int hvf_vcpu_exec(CPUState *cpu)
>      uint32_t ec =3D syn_get_ec(syndrome);
>
>      ret =3D 0;
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      switch (exit_reason) {
>      case HV_EXIT_REASON_EXCEPTION:
>          /* This is the main one, handle below. */
> diff --git a/target/arm/kvm.c b/target/arm/kvm.c
> index 7903e2ddde..dcfe3d48ab 100644
> --- a/target/arm/kvm.c
> +++ b/target/arm/kvm.c
> @@ -833,7 +833,7 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct
> kvm_run *run)
>      if (run->s.regs.device_irq_level !=3D cpu->device_irq_level) {
>          switched_level =3D cpu->device_irq_level ^
> run->s.regs.device_irq_level;
>
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>
>          if (switched_level & KVM_ARM_DEV_EL1_VTIMER) {
>              qemu_set_irq(cpu->gt_timer_outputs[GTIMER_VIRT],
> @@ -862,7 +862,7 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct
> kvm_run *run)
>
>          /* We also mark unknown levels as processed to not waste cycles =
*/
>          cpu->device_irq_level =3D run->s.regs.device_irq_level;
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>
>      return MEMTXATTRS_UNSPECIFIED;
> diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c
> index 3c175c93a7..498d77b8cf 100644
> --- a/target/arm/kvm64.c
> +++ b/target/arm/kvm64.c
> @@ -1233,9 +1233,9 @@ bool kvm_arm_handle_debug(CPUState *cs, struct
> kvm_debug_exit_arch *debug_exit)
>      env->exception.syndrome =3D debug_exit->hsr;
>      env->exception.vaddress =3D debug_exit->far;
>      env->exception.target_el =3D 1;
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      arm_cpu_do_interrupt(cs);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return false;
>  }
> diff --git a/target/arm/ptw.c b/target/arm/ptw.c
> index 1762b058ae..0ecd3a36da 100644
> --- a/target/arm/ptw.c
> +++ b/target/arm/ptw.c
> @@ -772,9 +772,9 @@ static uint64_t arm_casq_ptw(CPUARMState *env,
> uint64_t old_val,
>  #if !TCG_OVERSIZED_GUEST
>  # error "Unexpected configuration"
>  #endif
> -    bool locked =3D qemu_mutex_iothread_locked();
> +    bool locked =3D bql_locked();
>      if (!locked) {
> -       qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>      if (ptw->out_be) {
>          cur_val =3D ldq_be_p(host);
> @@ -788,7 +788,7 @@ static uint64_t arm_casq_ptw(CPUARMState *env,
> uint64_t old_val,
>          }
>      }
>      if (!locked) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  #endif
>
> diff --git a/target/arm/tcg/helper-a64.c b/target/arm/tcg/helper-a64.c
> index 8ad84623d3..198b975f20 100644
> --- a/target/arm/tcg/helper-a64.c
> +++ b/target/arm/tcg/helper-a64.c
> @@ -809,9 +809,9 @@ void HELPER(exception_return)(CPUARMState *env,
> uint64_t new_pc)
>          goto illegal_return;
>      }
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      arm_call_pre_el_change_hook(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      if (!return_to_aa64) {
>          env->aarch64 =3D false;
> @@ -876,9 +876,9 @@ void HELPER(exception_return)(CPUARMState *env,
> uint64_t new_pc)
>       */
>      aarch64_sve_change_el(env, cur_el, new_el, return_to_aa64);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      arm_call_el_change_hook(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return;
>
> diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c
> index a26adb75aa..d1f1e02acc 100644
> --- a/target/arm/tcg/m_helper.c
> +++ b/target/arm/tcg/m_helper.c
> @@ -373,8 +373,8 @@ void HELPER(v7m_preserve_fp_state)(CPUARMState *env)
>      bool ts =3D is_secure && (env->v7m.fpccr[M_REG_S] &
> R_V7M_FPCCR_TS_MASK);
>      bool take_exception;
>
> -    /* Take the iothread lock as we are going to touch the NVIC */
> -    qemu_mutex_lock_iothread();
> +    /* Take the BQL as we are going to touch the NVIC */
> +    bql_lock();
>
>      /* Check the background context had access to the FPU */
>      if (!v7m_cpacr_pass(env, is_secure, is_priv)) {
> @@ -428,7 +428,7 @@ void HELPER(v7m_preserve_fp_state)(CPUARMState *env)
>      take_exception =3D !stacked_ok &&
>          armv7m_nvic_can_take_pending_exception(env->nvic);
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      if (take_exception) {
>          raise_exception_ra(env, EXCP_LAZYFP, 0, 1, GETPC());
> diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c
> index ea08936a85..34e706e0fd 100644
> --- a/target/arm/tcg/op_helper.c
> +++ b/target/arm/tcg/op_helper.c
> @@ -427,9 +427,9 @@ void HELPER(cpsr_write_eret)(CPUARMState *env,
> uint32_t val)
>  {
>      uint32_t mask;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      arm_call_pre_el_change_hook(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      mask =3D aarch32_cpsr_valid_mask(env->features,
> &env_archcpu(env)->isar);
>      cpsr_write(env, val, mask, CPSRWriteExceptionReturn);
> @@ -442,9 +442,9 @@ void HELPER(cpsr_write_eret)(CPUARMState *env,
> uint32_t val)
>      env->regs[15] &=3D (env->thumb ? ~1 : ~3);
>      arm_rebuild_hflags(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      arm_call_el_change_hook(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  /* Access to user mode registers from privileged modes.  */
> @@ -803,9 +803,9 @@ void HELPER(set_cp_reg)(CPUARMState *env, const void
> *rip, uint32_t value)
>      const ARMCPRegInfo *ri =3D rip;
>
>      if (ri->type & ARM_CP_IO) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          ri->writefn(env, ri, value);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      } else {
>          ri->writefn(env, ri, value);
>      }
> @@ -817,9 +817,9 @@ uint32_t HELPER(get_cp_reg)(CPUARMState *env, const
> void *rip)
>      uint32_t res;
>
>      if (ri->type & ARM_CP_IO) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          res =3D ri->readfn(env, ri);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      } else {
>          res =3D ri->readfn(env, ri);
>      }
> @@ -832,9 +832,9 @@ void HELPER(set_cp_reg64)(CPUARMState *env, const voi=
d
> *rip, uint64_t value)
>      const ARMCPRegInfo *ri =3D rip;
>
>      if (ri->type & ARM_CP_IO) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          ri->writefn(env, ri, value);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      } else {
>          ri->writefn(env, ri, value);
>      }
> @@ -846,9 +846,9 @@ uint64_t HELPER(get_cp_reg64)(CPUARMState *env, const
> void *rip)
>      uint64_t res;
>
>      if (ri->type & ARM_CP_IO) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          res =3D ri->readfn(env, ri);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      } else {
>          res =3D ri->readfn(env, ri);
>      }
> diff --git a/target/arm/tcg/psci.c b/target/arm/tcg/psci.c
> index 6c1239bb96..9080a91d9c 100644
> --- a/target/arm/tcg/psci.c
> +++ b/target/arm/tcg/psci.c
> @@ -107,7 +107,7 @@ void arm_handle_psci_call(ARMCPU *cpu)
>              }
>              target_cpu =3D ARM_CPU(target_cpu_state);
>
> -            g_assert(qemu_mutex_iothread_locked());
> +            g_assert(bql_locked());
>              ret =3D target_cpu->power_state;
>              break;
>          default:
> diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
> index 98e9d688f6..efe638b36e 100644
> --- a/target/hppa/int_helper.c
> +++ b/target/hppa/int_helper.c
> @@ -84,17 +84,17 @@ void hppa_cpu_alarm_timer(void *opaque)
>  void HELPER(write_eirr)(CPUHPPAState *env, target_ulong val)
>  {
>      env->cr[CR_EIRR] &=3D ~val;
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      eval_interrupt(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(write_eiem)(CPUHPPAState *env, target_ulong val)
>  {
>      env->cr[CR_EIEM] =3D val;
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      eval_interrupt(env_archcpu(env));
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void hppa_cpu_do_interrupt(CPUState *cs)
> diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c
> index 20b9ca3ef5..11ffdd4c69 100644
> --- a/target/i386/hvf/hvf.c
> +++ b/target/i386/hvf/hvf.c
> @@ -429,9 +429,9 @@ int hvf_vcpu_exec(CPUState *cpu)
>          }
>          vmx_update_tpr(cpu);
>
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          if (!cpu_is_bsp(X86_CPU(cpu)) && cpu->halted) {
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              return EXCP_HLT;
>          }
>
> @@ -450,7 +450,7 @@ int hvf_vcpu_exec(CPUState *cpu)
>          rip =3D rreg(cpu->accel->fd, HV_X86_RIP);
>          env->eflags =3D rreg(cpu->accel->fd, HV_X86_RFLAGS);
>
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>
>          update_apic_tpr(cpu);
>          current_cpu =3D cpu;
> diff --git a/target/i386/kvm/hyperv.c b/target/i386/kvm/hyperv.c
> index e3ac978648..6825c89af3 100644
> --- a/target/i386/kvm/hyperv.c
> +++ b/target/i386/kvm/hyperv.c
> @@ -45,9 +45,9 @@ void hyperv_x86_synic_update(X86CPU *cpu)
>
>  static void async_synic_update(CPUState *cs, run_on_cpu_data data)
>  {
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      hyperv_x86_synic_update(X86_CPU(cs));
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit)
> diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
> index 4ce80555b4..76a66246eb 100644
> --- a/target/i386/kvm/kvm.c
> +++ b/target/i386/kvm/kvm.c
> @@ -4713,9 +4713,9 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run
> *run)
>      /* Inject NMI */
>      if (cpu->interrupt_request & (CPU_INTERRUPT_NMI | CPU_INTERRUPT_SMI)=
)
> {
>          if (cpu->interrupt_request & CPU_INTERRUPT_NMI) {
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              cpu->interrupt_request &=3D ~CPU_INTERRUPT_NMI;
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              DPRINTF("injected NMI\n");
>              ret =3D kvm_vcpu_ioctl(cpu, KVM_NMI);
>              if (ret < 0) {
> @@ -4724,9 +4724,9 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run
> *run)
>              }
>          }
>          if (cpu->interrupt_request & CPU_INTERRUPT_SMI) {
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              cpu->interrupt_request &=3D ~CPU_INTERRUPT_SMI;
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              DPRINTF("injected SMI\n");
>              ret =3D kvm_vcpu_ioctl(cpu, KVM_SMI);
>              if (ret < 0) {
> @@ -4737,7 +4737,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run
> *run)
>      }
>
>      if (!kvm_pic_in_kernel()) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>
>      /* Force the VCPU out of its inner loop to process any INIT requests
> @@ -4790,7 +4790,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run
> *run)
>          DPRINTF("setting tpr\n");
>          run->cr8 =3D cpu_get_apic_tpr(x86_cpu->apic_state);
>
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  }
>
> @@ -4838,12 +4838,12 @@ MemTxAttrs kvm_arch_post_run(CPUState *cpu, struc=
t
> kvm_run *run)
>      /* We need to protect the apic state against concurrent accesses fro=
m
>       * different threads in case the userspace irqchip is used. */
>      if (!kvm_irqchip_in_kernel()) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>      cpu_set_apic_tpr(x86_cpu->apic_state, run->cr8);
>      cpu_set_apic_base(x86_cpu->apic_state, run->apic_base);
>      if (!kvm_irqchip_in_kernel()) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      return cpu_get_mem_attrs(env);
>  }
> @@ -5277,17 +5277,17 @@ int kvm_arch_handle_exit(CPUState *cs, struct
> kvm_run *run)
>      switch (run->exit_reason) {
>      case KVM_EXIT_HLT:
>          DPRINTF("handle_hlt\n");
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          ret =3D kvm_handle_halt(cpu);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          break;
>      case KVM_EXIT_SET_TPR:
>          ret =3D 0;
>          break;
>      case KVM_EXIT_TPR_ACCESS:
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          ret =3D kvm_handle_tpr_access(cpu);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          break;
>      case KVM_EXIT_FAIL_ENTRY:
>          code =3D run->fail_entry.hardware_entry_failure_reason;
> @@ -5313,9 +5313,9 @@ int kvm_arch_handle_exit(CPUState *cs, struct
> kvm_run *run)
>          break;
>      case KVM_EXIT_DEBUG:
>          DPRINTF("kvm_exit_debug\n");
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          ret =3D kvm_handle_debug(cpu, &run->debug.arch);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          break;
>      case KVM_EXIT_HYPERV:
>          ret =3D kvm_hv_handle_exit(cpu, &run->hyperv);
> diff --git a/target/i386/kvm/xen-emu.c b/target/i386/kvm/xen-emu.c
> index c0631f9cf4..b0ed2e6aeb 100644
> --- a/target/i386/kvm/xen-emu.c
> +++ b/target/i386/kvm/xen-emu.c
> @@ -403,7 +403,7 @@ void kvm_xen_maybe_deassert_callback(CPUState *cs)
>
>      /* If the evtchn_upcall_pending flag is cleared, turn the GSI off. *=
/
>      if (!vi->evtchn_upcall_pending) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          /*
>           * Check again now we have the lock, because it may have been
>           * asserted in the interim. And we don't want to take the lock
> @@ -413,7 +413,7 @@ void kvm_xen_maybe_deassert_callback(CPUState *cs)
>              X86_CPU(cs)->env.xen_callback_asserted =3D false;
>              xen_evtchn_set_callback_level(0);
>          }
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  }
>
> @@ -773,9 +773,9 @@ static bool handle_set_param(struct kvm_xen_exit
> *exit, X86CPU *cpu,
>
>      switch (hp.index) {
>      case HVM_PARAM_CALLBACK_IRQ:
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          err =3D xen_evtchn_set_callback_param(hp.value);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          xen_set_long_mode(exit->u.hcall.longmode);
>          break;
>      default:
> @@ -1408,7 +1408,7 @@ int kvm_xen_soft_reset(void)
>      CPUState *cpu;
>      int err;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      trace_kvm_xen_soft_reset();
>
> @@ -1481,9 +1481,9 @@ static int schedop_shutdown(CPUState *cs, uint64_t
> arg)
>          break;
>
>      case SHUTDOWN_soft_reset:
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          ret =3D kvm_xen_soft_reset();
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          break;
>
>      default:
> diff --git a/target/i386/nvmm/nvmm-accel-ops.c
> b/target/i386/nvmm/nvmm-accel-ops.c
> index 6c46101ac1..f9d5e9a37a 100644
> --- a/target/i386/nvmm/nvmm-accel-ops.c
> +++ b/target/i386/nvmm/nvmm-accel-ops.c
> @@ -25,7 +25,7 @@ static void *qemu_nvmm_cpu_thread_fn(void *arg)
>
>      rcu_register_thread();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_thread_get_self(cpu->thread);
>      cpu->thread_id =3D qemu_get_thread_id();
>      current_cpu =3D cpu;
> @@ -55,7 +55,7 @@ static void *qemu_nvmm_cpu_thread_fn(void *arg)
>
>      nvmm_destroy_vcpu(cpu);
>      cpu_thread_signal_destroyed(cpu);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      rcu_unregister_thread();
>      return NULL;
>  }
> diff --git a/target/i386/nvmm/nvmm-all.c b/target/i386/nvmm/nvmm-all.c
> index 7d752bc5e0..cfdca91123 100644
> --- a/target/i386/nvmm/nvmm-all.c
> +++ b/target/i386/nvmm/nvmm-all.c
> @@ -399,7 +399,7 @@ nvmm_vcpu_pre_run(CPUState *cpu)
>      uint8_t tpr;
>      int ret;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      tpr =3D cpu_get_apic_tpr(x86_cpu->apic_state);
>      if (tpr !=3D qcpu->tpr) {
> @@ -462,7 +462,7 @@ nvmm_vcpu_pre_run(CPUState *cpu)
>          }
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  /*
> @@ -485,9 +485,9 @@ nvmm_vcpu_post_run(CPUState *cpu, struct
> nvmm_vcpu_exit *exit)
>      tpr =3D exit->exitstate.cr8;
>      if (qcpu->tpr !=3D tpr) {
>          qcpu->tpr =3D tpr;
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_set_apic_tpr(x86_cpu->apic_state, qcpu->tpr);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  }
>
> @@ -648,7 +648,7 @@ nvmm_handle_halted(struct nvmm_machine *mach, CPUStat=
e
> *cpu,
>      CPUX86State *env =3D cpu_env(cpu);
>      int ret =3D 0;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      if (!((cpu->interrupt_request & CPU_INTERRUPT_HARD) &&
>            (env->eflags & IF_MASK)) &&
> @@ -658,7 +658,7 @@ nvmm_handle_halted(struct nvmm_machine *mach, CPUStat=
e
> *cpu,
>          ret =3D 1;
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return ret;
>  }
> @@ -721,7 +721,7 @@ nvmm_vcpu_loop(CPUState *cpu)
>          return 0;
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      cpu_exec_start(cpu);
>
>      /*
> @@ -806,16 +806,16 @@ nvmm_vcpu_loop(CPUState *cpu)
>              error_report("NVMM: Unexpected VM exit code 0x%lx [hw=3D0x%l=
x]",
>                  exit->reason, exit->u.inv.hwcode);
>              nvmm_get_registers(cpu);
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              qemu_system_guest_panicked(cpu_get_crash_info(cpu));
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              ret =3D -1;
>              break;
>          }
>      } while (ret =3D=3D 0);
>
>      cpu_exec_end(cpu);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      qatomic_set(&cpu->exit_request, false);
>
> diff --git a/target/i386/tcg/sysemu/fpu_helper.c
> b/target/i386/tcg/sysemu/fpu_helper.c
> index 93506cdd94..e0305ba234 100644
> --- a/target/i386/tcg/sysemu/fpu_helper.c
> +++ b/target/i386/tcg/sysemu/fpu_helper.c
> @@ -32,9 +32,9 @@ void x86_register_ferr_irq(qemu_irq irq)
>  void fpu_check_raise_ferr_irq(CPUX86State *env)
>  {
>      if (ferr_irq && !(env->hflags2 & HF2_IGNNE_MASK)) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          qemu_irq_raise(ferr_irq);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          return;
>      }
>  }
> @@ -49,7 +49,7 @@ void cpu_set_ignne(void)
>  {
>      CPUX86State *env =3D &X86_CPU(first_cpu)->env;
>
> -    assert(qemu_mutex_iothread_locked());
> +    assert(bql_locked());
>
>      env->hflags2 |=3D HF2_IGNNE_MASK;
>      /*
> diff --git a/target/i386/tcg/sysemu/misc_helper.c
> b/target/i386/tcg/sysemu/misc_helper.c
> index e1528b7f80..1ddfc9fe09 100644
> --- a/target/i386/tcg/sysemu/misc_helper.c
> +++ b/target/i386/tcg/sysemu/misc_helper.c
> @@ -118,9 +118,9 @@ void helper_write_crN(CPUX86State *env, int reg,
> target_ulong t0)
>          break;
>      case 8:
>          if (!(env->hflags2 & HF2_VINTR_MASK)) {
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              cpu_set_apic_tpr(env_archcpu(env)->apic_state, t0);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>          }
>          env->int_ctl =3D (env->int_ctl & ~V_TPR_MASK) | (t0 & V_TPR_MASK=
);
>
> diff --git a/target/i386/whpx/whpx-accel-ops.c
> b/target/i386/whpx/whpx-accel-ops.c
> index 67cad86720..e783a760a7 100644
> --- a/target/i386/whpx/whpx-accel-ops.c
> +++ b/target/i386/whpx/whpx-accel-ops.c
> @@ -25,7 +25,7 @@ static void *whpx_cpu_thread_fn(void *arg)
>
>      rcu_register_thread();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      qemu_thread_get_self(cpu->thread);
>      cpu->thread_id =3D qemu_get_thread_id();
>      current_cpu =3D cpu;
> @@ -55,7 +55,7 @@ static void *whpx_cpu_thread_fn(void *arg)
>
>      whpx_destroy_vcpu(cpu);
>      cpu_thread_signal_destroyed(cpu);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      rcu_unregister_thread();
>      return NULL;
>  }
> diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c
> index d29ba916a0..a7262654ac 100644
> --- a/target/i386/whpx/whpx-all.c
> +++ b/target/i386/whpx/whpx-all.c
> @@ -1324,7 +1324,7 @@ static int whpx_first_vcpu_starting(CPUState *cpu)
>      struct whpx_state *whpx =3D &whpx_global;
>      HRESULT hr;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      if (!QTAILQ_EMPTY(&cpu->breakpoints) ||
>              (whpx->breakpoints.breakpoints &&
> @@ -1442,7 +1442,7 @@ static int whpx_handle_halt(CPUState *cpu)
>      CPUX86State *env =3D cpu_env(cpu);
>      int ret =3D 0;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      if (!((cpu->interrupt_request & CPU_INTERRUPT_HARD) &&
>            (env->eflags & IF_MASK)) &&
>          !(cpu->interrupt_request & CPU_INTERRUPT_NMI)) {
> @@ -1450,7 +1450,7 @@ static int whpx_handle_halt(CPUState *cpu)
>          cpu->halted =3D true;
>          ret =3D 1;
>      }
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return ret;
>  }
> @@ -1472,7 +1472,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
>      memset(&new_int, 0, sizeof(new_int));
>      memset(reg_values, 0, sizeof(reg_values));
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      /* Inject NMI */
>      if (!vcpu->interruption_pending &&
> @@ -1563,7 +1563,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
>          reg_count +=3D 1;
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      vcpu->ready_for_pic_interrupt =3D false;
>
>      if (reg_count) {
> @@ -1590,9 +1590,9 @@ static void whpx_vcpu_post_run(CPUState *cpu)
>      uint64_t tpr =3D vcpu->exit_ctx.VpContext.Cr8;
>      if (vcpu->tpr !=3D tpr) {
>          vcpu->tpr =3D tpr;
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_set_apic_tpr(x86_cpu->apic_state,
> whpx_cr8_to_apic_tpr(vcpu->tpr));
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>
>      vcpu->interruption_pending =3D
> @@ -1652,7 +1652,7 @@ static int whpx_vcpu_run(CPUState *cpu)
>      WhpxStepMode exclusive_step_mode =3D WHPX_STEP_NONE;
>      int ret;
>
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      if (whpx->running_cpus++ =3D=3D 0) {
>          /* Insert breakpoints into memory, update exception exit bitmap.
> */
> @@ -1690,7 +1690,7 @@ static int whpx_vcpu_run(CPUState *cpu)
>          }
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      if (exclusive_step_mode !=3D WHPX_STEP_NONE) {
>          start_exclusive();
> @@ -2028,9 +2028,9 @@ static int whpx_vcpu_run(CPUState *cpu)
>              error_report("WHPX: Unexpected VP exit code %d",
>                           vcpu->exit_ctx.ExitReason);
>              whpx_get_registers(cpu);
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              qemu_system_guest_panicked(cpu_get_crash_info(cpu));
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              break;
>          }
>
> @@ -2055,7 +2055,7 @@ static int whpx_vcpu_run(CPUState *cpu)
>          cpu_exec_end(cpu);
>      }
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      current_cpu =3D cpu;
>
>      if (--whpx->running_cpus =3D=3D 0) {
> diff --git a/target/loongarch/csr_helper.c b/target/loongarch/csr_helper.=
c
> index 55341551a5..15f94caefa 100644
> --- a/target/loongarch/csr_helper.c
> +++ b/target/loongarch/csr_helper.c
> @@ -89,9 +89,9 @@ target_ulong helper_csrwr_ticlr(CPULoongArchState *env,
> target_ulong val)
>      int64_t old_v =3D 0;
>
>      if (val & 0x1) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          loongarch_cpu_set_irq(cpu, IRQ_TIMER, 0);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      return old_v;
>  }
> diff --git a/target/mips/kvm.c b/target/mips/kvm.c
> index e22e24ed97..15d0cf9adb 100644
> --- a/target/mips/kvm.c
> +++ b/target/mips/kvm.c
> @@ -138,7 +138,7 @@ void kvm_arch_pre_run(CPUState *cs, struct kvm_run
> *run)
>      int r;
>      struct kvm_mips_interrupt intr;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      if ((cs->interrupt_request & CPU_INTERRUPT_HARD) &&
>              cpu_mips_io_interrupts_pending(cpu)) {
> @@ -151,7 +151,7 @@ void kvm_arch_pre_run(CPUState *cs, struct kvm_run
> *run)
>          }
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
> diff --git a/target/mips/tcg/sysemu/cp0_helper.c
> b/target/mips/tcg/sysemu/cp0_helper.c
> index d349548743..cc545aed9c 100644
> --- a/target/mips/tcg/sysemu/cp0_helper.c
> +++ b/target/mips/tcg/sysemu/cp0_helper.c
> @@ -59,9 +59,9 @@ static inline void mips_vpe_wake(MIPSCPU *c)
>       * because there might be other conditions that state that c should
>       * be sleeping.
>       */
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      cpu_interrupt(CPU(c), CPU_INTERRUPT_WAKE);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  static inline void mips_vpe_sleep(MIPSCPU *cpu)
> diff --git a/target/openrisc/sys_helper.c b/target/openrisc/sys_helper.c
> index 782a5751b7..77567afba4 100644
> --- a/target/openrisc/sys_helper.c
> +++ b/target/openrisc/sys_helper.c
> @@ -160,20 +160,20 @@ void HELPER(mtspr)(CPUOpenRISCState *env,
> target_ulong spr, target_ulong rb)
>          break;
>      case TO_SPR(9, 0):  /* PICMR */
>          env->picmr =3D rb;
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          if (env->picsr & env->picmr) {
>              cpu_interrupt(cs, CPU_INTERRUPT_HARD);
>          } else {
>              cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD);
>          }
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          break;
>      case TO_SPR(9, 2):  /* PICSR */
>          env->picsr &=3D ~rb;
>          break;
>      case TO_SPR(10, 0): /* TTMR */
>          {
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              if ((env->ttmr & TTMR_M) ^ (rb & TTMR_M)) {
>                  switch (rb & TTMR_M) {
>                  case TIMER_NONE:
> @@ -198,15 +198,15 @@ void HELPER(mtspr)(CPUOpenRISCState *env,
> target_ulong spr, target_ulong rb)
>                  cs->interrupt_request &=3D ~CPU_INTERRUPT_TIMER;
>              }
>              cpu_openrisc_timer_update(cpu);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>          }
>          break;
>
>      case TO_SPR(10, 1): /* TTCR */
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_openrisc_count_set(cpu, rb);
>          cpu_openrisc_timer_update(cpu);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          break;
>      }
>  #endif
> @@ -347,9 +347,9 @@ target_ulong HELPER(mfspr)(CPUOpenRISCState *env,
> target_ulong rd,
>          return env->ttmr;
>
>      case TO_SPR(10, 1): /* TTCR */
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_openrisc_count_update(cpu);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          return cpu_openrisc_count_get(cpu);
>      }
>  #endif
> diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
> index a42743a3e0..8a2bfb5aa2 100644
> --- a/target/ppc/excp_helper.c
> +++ b/target/ppc/excp_helper.c
> @@ -3056,7 +3056,7 @@ void helper_msgsnd(target_ulong rb)
>          return;
>      }
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      CPU_FOREACH(cs) {
>          PowerPCCPU *cpu =3D POWERPC_CPU(cs);
>          CPUPPCState *cenv =3D &cpu->env;
> @@ -3065,7 +3065,7 @@ void helper_msgsnd(target_ulong rb)
>              ppc_set_irq(cpu, irq, 1);
>          }
>      }
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  /* Server Processor Control */
> @@ -3093,7 +3093,7 @@ static void book3s_msgsnd_common(int pir, int irq)
>  {
>      CPUState *cs;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      CPU_FOREACH(cs) {
>          PowerPCCPU *cpu =3D POWERPC_CPU(cs);
>          CPUPPCState *cenv =3D &cpu->env;
> @@ -3103,7 +3103,7 @@ static void book3s_msgsnd_common(int pir, int irq)
>              ppc_set_irq(cpu, irq, 1);
>          }
>      }
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void helper_book3s_msgsnd(target_ulong rb)
> @@ -3157,14 +3157,14 @@ void helper_book3s_msgsndp(CPUPPCState *env,
> target_ulong rb)
>      }
>
>      /* Does iothread need to be locked for walking CPU list? */
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      THREAD_SIBLING_FOREACH(cs, ccs) {
>          PowerPCCPU *ccpu =3D POWERPC_CPU(ccs);
>          uint32_t thread_id =3D ppc_cpu_tir(ccpu);
>
>          if (ttir =3D=3D thread_id) {
>              ppc_set_irq(ccpu, PPC_INTERRUPT_DOORBELL, 1);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              return;
>          }
>      }
> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
> index 9b1abe2fc4..26fa9d0575 100644
> --- a/target/ppc/kvm.c
> +++ b/target/ppc/kvm.c
> @@ -1656,7 +1656,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct
> kvm_run *run)
>      CPUPPCState *env =3D &cpu->env;
>      int ret;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      switch (run->exit_reason) {
>      case KVM_EXIT_DCR:
> @@ -1715,7 +1715,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct
> kvm_run *run)
>          break;
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      return ret;
>  }
>
> diff --git a/target/ppc/misc_helper.c b/target/ppc/misc_helper.c
> index a05bdf78c9..a9d41d2802 100644
> --- a/target/ppc/misc_helper.c
> +++ b/target/ppc/misc_helper.c
> @@ -238,7 +238,7 @@ target_ulong helper_load_dpdes(CPUPPCState *env)
>          return dpdes;
>      }
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      THREAD_SIBLING_FOREACH(cs, ccs) {
>          PowerPCCPU *ccpu =3D POWERPC_CPU(ccs);
>          CPUPPCState *cenv =3D &ccpu->env;
> @@ -248,7 +248,7 @@ target_ulong helper_load_dpdes(CPUPPCState *env)
>              dpdes |=3D (0x1 << thread_id);
>          }
>      }
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return dpdes;
>  }
> @@ -278,14 +278,14 @@ void helper_store_dpdes(CPUPPCState *env,
> target_ulong val)
>      }
>
>      /* Does iothread need to be locked for walking CPU list? */
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      THREAD_SIBLING_FOREACH(cs, ccs) {
>          PowerPCCPU *ccpu =3D POWERPC_CPU(ccs);
>          uint32_t thread_id =3D ppc_cpu_tir(ccpu);
>
>          ppc_set_irq(cpu, PPC_INTERRUPT_DOORBELL, val & (0x1 <<
> thread_id));
>      }
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>  #endif /* defined(TARGET_PPC64) */
>
> diff --git a/target/ppc/timebase_helper.c b/target/ppc/timebase_helper.c
> index 08a6b47ee0..f618ed2922 100644
> --- a/target/ppc/timebase_helper.c
> +++ b/target/ppc/timebase_helper.c
> @@ -173,9 +173,9 @@ target_ulong helper_load_dcr(CPUPPCState *env,
> target_ulong dcrn)
>      } else {
>          int ret;
>
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          ret =3D ppc_dcr_read(env->dcr_env, (uint32_t)dcrn, &val);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          if (unlikely(ret !=3D 0)) {
>              qemu_log_mask(LOG_GUEST_ERROR, "DCR read error %d %03x\n",
>                            (uint32_t)dcrn, (uint32_t)dcrn);
> @@ -196,9 +196,9 @@ void helper_store_dcr(CPUPPCState *env, target_ulong
> dcrn, target_ulong val)
>                                 POWERPC_EXCP_INVAL_INVAL, GETPC());
>      } else {
>          int ret;
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          ret =3D ppc_dcr_write(env->dcr_env, (uint32_t)dcrn, (uint32_t)va=
l);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          if (unlikely(ret !=3D 0)) {
>              qemu_log_mask(LOG_GUEST_ERROR, "DCR write error %d %03x\n",
>                            (uint32_t)dcrn, (uint32_t)dcrn);
> diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c
> index 33ab3551f4..888d6c1a1c 100644
> --- a/target/s390x/kvm/kvm.c
> +++ b/target/s390x/kvm/kvm.c
> @@ -1923,7 +1923,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct
> kvm_run *run)
>      S390CPU *cpu =3D S390_CPU(cs);
>      int ret =3D 0;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      kvm_cpu_synchronize_state(cs);
>
> @@ -1947,7 +1947,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct
> kvm_run *run)
>              fprintf(stderr, "Unknown KVM exit: %d\n", run->exit_reason);
>              break;
>      }
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      if (ret =3D=3D 0) {
>          ret =3D EXCP_INTERRUPT;
> diff --git a/target/s390x/tcg/misc_helper.c
> b/target/s390x/tcg/misc_helper.c
> index 6aa7907438..89b5268fd4 100644
> --- a/target/s390x/tcg/misc_helper.c
> +++ b/target/s390x/tcg/misc_helper.c
> @@ -101,9 +101,9 @@ uint64_t HELPER(stck)(CPUS390XState *env)
>  /* SCLP service call */
>  uint32_t HELPER(servc)(CPUS390XState *env, uint64_t r1, uint64_t r2)
>  {
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      int r =3D sclp_service_call(env_archcpu(env), r1, r2);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      if (r < 0) {
>          tcg_s390_program_interrupt(env, -r, GETPC());
>      }
> @@ -117,9 +117,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1,
> uint32_t r3, uint32_t num)
>      switch (num) {
>      case 0x500:
>          /* KVM hypercall */
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          r =3D s390_virtio_hypercall(env);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          break;
>      case 0x44:
>          /* yield */
> @@ -127,9 +127,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1,
> uint32_t r3, uint32_t num)
>          break;
>      case 0x308:
>          /* ipl */
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          handle_diag_308(env, r1, r3, GETPC());
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          r =3D 0;
>          break;
>      case 0x288:
> @@ -185,7 +185,7 @@ static void update_ckc_timer(CPUS390XState *env)
>
>      /* stop the timer and remove pending CKC IRQs */
>      timer_del(env->tod_timer);
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>      env->pending_int &=3D ~INTERRUPT_EXT_CLOCK_COMPARATOR;
>
>      /* the tod has to exceed the ckc, this can never happen if ckc is al=
l
> 1's */
> @@ -207,9 +207,9 @@ void HELPER(sckc)(CPUS390XState *env, uint64_t ckc)
>  {
>      env->ckc =3D ckc;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      update_ckc_timer(env);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque)
> @@ -229,9 +229,9 @@ uint32_t HELPER(sck)(CPUS390XState *env, uint64_t
> tod_low)
>          .low =3D tod_low,
>      };
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      tdc->set(td, &tod, &error_abort);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      return 0;
>  }
>
> @@ -421,9 +421,9 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t
> order_code, uint32_t r1,
>      int cc;
>
>      /* TODO: needed to inject interrupts  - push further down */
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      cc =3D handle_sigp(env, order_code & SIGP_ORDER_MASK, r1, r3);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      return cc;
>  }
> @@ -433,92 +433,92 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t
> order_code, uint32_t r1,
>  void HELPER(xsch)(CPUS390XState *env, uint64_t r1)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_xsch(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(csch)(CPUS390XState *env, uint64_t r1)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_csch(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(hsch)(CPUS390XState *env, uint64_t r1)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_hsch(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(msch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_msch(cpu, r1, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(rchp)(CPUS390XState *env, uint64_t r1)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_rchp(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(rsch)(CPUS390XState *env, uint64_t r1)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_rsch(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(sal)(CPUS390XState *env, uint64_t r1)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_sal(cpu, r1, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(schm)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint64_t
> inst)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_schm(cpu, r1, r2, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(ssch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_ssch(cpu, r1, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(stcrw)(CPUS390XState *env, uint64_t inst)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_stcrw(cpu, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(stsch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_stsch(cpu, r1, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)
> @@ -533,10 +533,10 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t
> addr)
>          tcg_s390_program_interrupt(env, PGM_SPECIFICATION, ra);
>      }
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      io =3D qemu_s390_flic_dequeue_io(flic, env->cregs[6]);
>      if (!io) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>          return 0;
>      }
>
> @@ -554,7 +554,7 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t add=
r)
>          if (s390_cpu_virt_mem_write(cpu, addr, 0, &intc, sizeof(intc))) =
{
>              /* writing failed, reinject and properly clean up */
>              s390_io_interrupt(io->id, io->nr, io->parm, io->word);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              g_free(io);
>              s390_cpu_virt_mem_handle_exc(cpu, ra);
>              return 0;
> @@ -570,24 +570,24 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t
> addr)
>      }
>
>      g_free(io);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      return 1;
>  }
>
>  void HELPER(tsch)(CPUS390XState *env, uint64_t r1, uint64_t inst)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_tsch(cpu, r1, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(chsc)(CPUS390XState *env, uint64_t inst)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      ioinst_handle_chsc(cpu, inst >> 16, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>  #endif
>
> @@ -726,27 +726,27 @@ void HELPER(clp)(CPUS390XState *env, uint32_t r2)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      clp_service_call(cpu, r2, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, uint32_t r2)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      pcilg_service_call(cpu, r1, r2, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(pcistg)(CPUS390XState *env, uint32_t r1, uint32_t r2)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      pcistg_service_call(cpu, r1, r2, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
> @@ -754,9 +754,9 @@ void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1,
> uint64_t fiba,
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      stpcifc_service_call(cpu, r1, fiba, ar, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint64_t r3)
> @@ -764,9 +764,9 @@ void HELPER(sic)(CPUS390XState *env, uint64_t r1,
> uint64_t r3)
>      S390CPU *cpu =3D env_archcpu(env);
>      int r;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      r =3D css_do_sic(cpu, (r3 >> 27) & 0x7, r1 & 0xffff);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      /* css_do_sic() may actually return a PGM_xxx value to inject */
>      if (r) {
>          tcg_s390_program_interrupt(env, -r, GETPC());
> @@ -777,9 +777,9 @@ void HELPER(rpcit)(CPUS390XState *env, uint32_t r1,
> uint32_t r2)
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      rpcit_service_call(cpu, r1, r2, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3,
> @@ -787,9 +787,9 @@ void HELPER(pcistb)(CPUS390XState *env, uint32_t r1,
> uint32_t r3,
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      pcistb_service_call(cpu, r1, r3, gaddr, ar, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,
> @@ -797,8 +797,8 @@ void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1,
> uint64_t fiba,
>  {
>      S390CPU *cpu =3D env_archcpu(env);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      mpcifc_service_call(cpu, r1, fiba, ar, GETPC());
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>  #endif
> diff --git a/target/sparc/int32_helper.c b/target/sparc/int32_helper.c
> index 1563613582..49a9149263 100644
> --- a/target/sparc/int32_helper.c
> +++ b/target/sparc/int32_helper.c
> @@ -70,7 +70,7 @@ void cpu_check_irqs(CPUSPARCState *env)
>      CPUState *cs;
>
>      /* We should be holding the BQL before we mess with IRQs */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      if (env->pil_in && (env->interrupt_index =3D=3D 0 ||
>                          (env->interrupt_index & ~15) =3D=3D TT_EXTINT)) =
{
> diff --git a/target/sparc/int64_helper.c b/target/sparc/int64_helper.c
> index 1b4155f5f3..27df9dba89 100644
> --- a/target/sparc/int64_helper.c
> +++ b/target/sparc/int64_helper.c
> @@ -69,7 +69,7 @@ void cpu_check_irqs(CPUSPARCState *env)
>                    (env->softint & ~(SOFTINT_TIMER | SOFTINT_STIMER));
>
>      /* We should be holding the BQL before we mess with IRQs */
> -    g_assert(qemu_mutex_iothread_locked());
> +    g_assert(bql_locked());
>
>      /* TT_IVEC has a higher priority (16) than TT_EXTINT (31..17) */
>      if (env->ivec_status & 0x20) {
> @@ -267,9 +267,9 @@ static bool do_modify_softint(CPUSPARCState *env,
> uint32_t value)
>          env->softint =3D value;
>  #if !defined(CONFIG_USER_ONLY)
>          if (cpu_interrupts_enabled(env)) {
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>              cpu_check_irqs(env);
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>          }
>  #endif
>          return true;
> diff --git a/target/sparc/win_helper.c b/target/sparc/win_helper.c
> index 16d1c70fe7..b53fc9ce94 100644
> --- a/target/sparc/win_helper.c
> +++ b/target/sparc/win_helper.c
> @@ -179,9 +179,9 @@ void helper_wrpsr(CPUSPARCState *env, target_ulong
> new_psr)
>          cpu_raise_exception_ra(env, TT_ILL_INSN, GETPC());
>      } else {
>          /* cpu_put_psr may trigger interrupts, hence BQL */
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_put_psr(env, new_psr);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  }
>
> @@ -407,9 +407,9 @@ void helper_wrpstate(CPUSPARCState *env, target_ulong
> new_state)
>
>  #if !defined(CONFIG_USER_ONLY)
>      if (cpu_interrupts_enabled(env)) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_check_irqs(env);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  #endif
>  }
> @@ -422,9 +422,9 @@ void helper_wrpil(CPUSPARCState *env, target_ulong
> new_pil)
>      env->psrpil =3D new_pil;
>
>      if (cpu_interrupts_enabled(env)) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_check_irqs(env);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  #endif
>  }
> @@ -451,9 +451,9 @@ void helper_done(CPUSPARCState *env)
>
>  #if !defined(CONFIG_USER_ONLY)
>      if (cpu_interrupts_enabled(env)) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_check_irqs(env);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  #endif
>  }
> @@ -480,9 +480,9 @@ void helper_retry(CPUSPARCState *env)
>
>  #if !defined(CONFIG_USER_ONLY)
>      if (cpu_interrupts_enabled(env)) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          cpu_check_irqs(env);
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  #endif
>  }
> diff --git a/target/xtensa/exc_helper.c b/target/xtensa/exc_helper.c
> index 91354884f7..168419a505 100644
> --- a/target/xtensa/exc_helper.c
> +++ b/target/xtensa/exc_helper.c
> @@ -105,9 +105,9 @@ void HELPER(waiti)(CPUXtensaState *env, uint32_t pc,
> uint32_t intlevel)
>      env->sregs[PS] =3D (env->sregs[PS] & ~PS_INTLEVEL) |
>          (intlevel << PS_INTLEVEL_SHIFT);
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      check_interrupts(env);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      if (env->pending_irq_level) {
>          cpu_loop_exit(cpu);
> @@ -120,9 +120,9 @@ void HELPER(waiti)(CPUXtensaState *env, uint32_t pc,
> uint32_t intlevel)
>
>  void HELPER(check_interrupts)(CPUXtensaState *env)
>  {
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      check_interrupts(env);
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>  }
>
>  void HELPER(intset)(CPUXtensaState *env, uint32_t v)
> diff --git a/ui/spice-core.c b/ui/spice-core.c
> index db21db2c94..b6ee495a8f 100644
> --- a/ui/spice-core.c
> +++ b/ui/spice-core.c
> @@ -222,7 +222,7 @@ static void channel_event(int event,
> SpiceChannelEventInfo *info)
>       */
>      bool need_lock =3D !qemu_thread_is_self(&me);
>      if (need_lock) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>
>      if (info->flags & SPICE_CHANNEL_EVENT_FLAG_ADDR_EXT) {
> @@ -260,7 +260,7 @@ static void channel_event(int event,
> SpiceChannelEventInfo *info)
>      }
>
>      if (need_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>
>      qapi_free_SpiceServerInfo(server);
> diff --git a/util/async.c b/util/async.c
> index 8f90ddc304..def720045b 100644
> --- a/util/async.c
> +++ b/util/async.c
> @@ -741,7 +741,7 @@ AioContext *qemu_get_current_aio_context(void)
>      if (ctx) {
>          return ctx;
>      }
> -    if (qemu_mutex_iothread_locked()) {
> +    if (bql_locked()) {
>          /* Possibly in a vCPU thread.  */
>          return qemu_get_aio_context();
>      }
> diff --git a/util/main-loop.c b/util/main-loop.c
> index 797b640c41..bfbff4f246 100644
> --- a/util/main-loop.c
> +++ b/util/main-loop.c
> @@ -302,13 +302,13 @@ static int os_host_main_loop_wait(int64_t timeout)
>
>      glib_pollfds_fill(&timeout);
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      replay_mutex_unlock();
>
>      ret =3D qemu_poll_ns((GPollFD *)gpollfds->data, gpollfds->len, timeo=
ut);
>
>      replay_mutex_lock();
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      glib_pollfds_poll();
>
> @@ -517,7 +517,7 @@ static int os_host_main_loop_wait(int64_t timeout)
>
>      poll_timeout_ns =3D qemu_soonest_timeout(poll_timeout_ns, timeout);
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>
>      replay_mutex_unlock();
>
> @@ -525,7 +525,7 @@ static int os_host_main_loop_wait(int64_t timeout)
>
>      replay_mutex_lock();
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      if (g_poll_ret > 0) {
>          for (i =3D 0; i < w->num; i++) {
>              w->revents[i] =3D poll_fds[n_poll_fds + i].revents;
> diff --git a/util/qsp.c b/util/qsp.c
> index 2fe3764906..6b783e2e7f 100644
> --- a/util/qsp.c
> +++ b/util/qsp.c
> @@ -124,7 +124,7 @@ static const char * const qsp_typenames[] =3D {
>      [QSP_CONDVAR]   =3D "condvar",
>  };
>
> -QemuMutexLockFunc qemu_bql_mutex_lock_func =3D qemu_mutex_lock_impl;
> +QemuMutexLockFunc bql_mutex_lock_func =3D qemu_mutex_lock_impl;
>  QemuMutexLockFunc qemu_mutex_lock_func =3D qemu_mutex_lock_impl;
>  QemuMutexTrylockFunc qemu_mutex_trylock_func =3D qemu_mutex_trylock_impl=
;
>  QemuRecMutexLockFunc qemu_rec_mutex_lock_func =3D qemu_rec_mutex_lock_im=
pl;
> @@ -439,7 +439,7 @@ void qsp_enable(void)
>  {
>      qatomic_set(&qemu_mutex_lock_func, qsp_mutex_lock);
>      qatomic_set(&qemu_mutex_trylock_func, qsp_mutex_trylock);
> -    qatomic_set(&qemu_bql_mutex_lock_func, qsp_bql_mutex_lock);
> +    qatomic_set(&bql_mutex_lock_func, qsp_bql_mutex_lock);
>      qatomic_set(&qemu_rec_mutex_lock_func, qsp_rec_mutex_lock);
>      qatomic_set(&qemu_rec_mutex_trylock_func, qsp_rec_mutex_trylock);
>      qatomic_set(&qemu_cond_wait_func, qsp_cond_wait);
> @@ -450,7 +450,7 @@ void qsp_disable(void)
>  {
>      qatomic_set(&qemu_mutex_lock_func, qemu_mutex_lock_impl);
>      qatomic_set(&qemu_mutex_trylock_func, qemu_mutex_trylock_impl);
> -    qatomic_set(&qemu_bql_mutex_lock_func, qemu_mutex_lock_impl);
> +    qatomic_set(&bql_mutex_lock_func, qemu_mutex_lock_impl);
>      qatomic_set(&qemu_rec_mutex_lock_func, qemu_rec_mutex_lock_impl);
>      qatomic_set(&qemu_rec_mutex_trylock_func,
> qemu_rec_mutex_trylock_impl);
>      qatomic_set(&qemu_cond_wait_func, qemu_cond_wait_impl);
> diff --git a/util/rcu.c b/util/rcu.c
> index e587bcc483..bb7f633b5c 100644
> --- a/util/rcu.c
> +++ b/util/rcu.c
> @@ -283,24 +283,24 @@ static void *call_rcu_thread(void *opaque)
>
>          qatomic_sub(&rcu_call_count, n);
>          synchronize_rcu();
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>          while (n > 0) {
>              node =3D try_dequeue();
>              while (!node) {
> -                qemu_mutex_unlock_iothread();
> +                bql_unlock();
>                  qemu_event_reset(&rcu_call_ready_event);
>                  node =3D try_dequeue();
>                  if (!node) {
>                      qemu_event_wait(&rcu_call_ready_event);
>                      node =3D try_dequeue();
>                  }
> -                qemu_mutex_lock_iothread();
> +                bql_lock();
>              }
>
>              n--;
>              node->func(node);
>          }
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      abort();
>  }
> @@ -337,13 +337,13 @@ static void drain_rcu_callback(struct rcu_head *nod=
e)
>  void drain_call_rcu(void)
>  {
>      struct rcu_drain rcu_drain;
> -    bool locked =3D qemu_mutex_iothread_locked();
> +    bool locked =3D bql_locked();
>
>      memset(&rcu_drain, 0, sizeof(struct rcu_drain));
>      qemu_event_init(&rcu_drain.drain_complete_event, false);
>
>      if (locked) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>
>
> @@ -365,7 +365,7 @@ void drain_call_rcu(void)
>      qatomic_dec(&in_drain_call_rcu);
>
>      if (locked) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>
>  }
> diff --git a/audio/coreaudio.m b/audio/coreaudio.m
> index 8cd129a27d..9d2db9883c 100644
> --- a/audio/coreaudio.m
> +++ b/audio/coreaudio.m
> @@ -547,7 +547,7 @@ static OSStatus handle_voice_change(
>  {
>      coreaudioVoiceOut *core =3D in_client_data;
>
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>
>      if (core->outputDeviceID) {
>          fini_out_device(core);
> @@ -557,7 +557,7 @@ static OSStatus handle_voice_change(
>          update_device_playback_state(core);
>      }
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      return 0;
>  }
>
> diff --git a/memory_ldst.c.inc b/memory_ldst.c.inc
> index 84b868f294..0e6f3940a9 100644
> --- a/memory_ldst.c.inc
> +++ b/memory_ldst.c.inc
> @@ -61,7 +61,7 @@ static inline uint32_t glue(address_space_ldl_internal,
> SUFFIX)(ARG1_DECL,
>          *result =3D r;
>      }
>      if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      RCU_READ_UNLOCK();
>      return val;
> @@ -130,7 +130,7 @@ static inline uint64_t
> glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL,
>          *result =3D r;
>      }
>      if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      RCU_READ_UNLOCK();
>      return val;
> @@ -186,7 +186,7 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL,
>          *result =3D r;
>      }
>      if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      RCU_READ_UNLOCK();
>      return val;
> @@ -234,7 +234,7 @@ static inline uint16_t
> glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL,
>          *result =3D r;
>      }
>      if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      RCU_READ_UNLOCK();
>      return val;
> @@ -295,7 +295,7 @@ void glue(address_space_stl_notdirty,
> SUFFIX)(ARG1_DECL,
>          *result =3D r;
>      }
>      if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      RCU_READ_UNLOCK();
>  }
> @@ -339,7 +339,7 @@ static inline void glue(address_space_stl_internal,
> SUFFIX)(ARG1_DECL,
>          *result =3D r;
>      }
>      if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      RCU_READ_UNLOCK();
>  }
> @@ -391,7 +391,7 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL,
>          *result =3D r;
>      }
>      if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      RCU_READ_UNLOCK();
>  }
> @@ -435,7 +435,7 @@ static inline void glue(address_space_stw_internal,
> SUFFIX)(ARG1_DECL,
>          *result =3D r;
>      }
>      if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      RCU_READ_UNLOCK();
>  }
> @@ -499,7 +499,7 @@ static void glue(address_space_stq_internal,
> SUFFIX)(ARG1_DECL,
>          *result =3D r;
>      }
>      if (release_lock) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      RCU_READ_UNLOCK();
>  }
> diff --git a/target/i386/hvf/README.md b/target/i386/hvf/README.md
> index 2d33477aca..64a8935237 100644
> --- a/target/i386/hvf/README.md
> +++ b/target/i386/hvf/README.md
> @@ -4,4 +4,4 @@ These sources (and ../hvf-all.c) are adapted from Veertu
> Inc's vdhh (Veertu Desk
>
>  1. Adapt to our current QEMU's `CPUState` structure and
> `address_space_rw` API; many struct members have been moved around
> (emulated x86 state, xsave_buf) due to historical differences + QEMU
> needing to handle more emulation targets.
>  2. Removal of `apic_page` and hyperv-related functionality.
> -3. More relaxed use of `qemu_mutex_lock_iothread`.
> +3. More relaxed use of `bql_lock`.
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index cd069da696..5ebb535070 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -117,29 +117,29 @@ static void cocoa_switch(DisplayChangeListener *dcl=
,
>  typedef void (^CodeBlock)(void);
>  typedef bool (^BoolCodeBlock)(void);
>
> -static void with_iothread_lock(CodeBlock block)
> +static void with_bql(CodeBlock block)
>  {
> -    bool locked =3D qemu_mutex_iothread_locked();
> +    bool locked =3D bql_locked();
>      if (!locked) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>      block();
>      if (!locked) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>  }
>
> -static bool bool_with_iothread_lock(BoolCodeBlock block)
> +static bool bool_with_bql(BoolCodeBlock block)
>  {
> -    bool locked =3D qemu_mutex_iothread_locked();
> +    bool locked =3D bql_locked();
>      bool val;
>
>      if (!locked) {
> -        qemu_mutex_lock_iothread();
> +        bql_lock();
>      }
>      val =3D block();
>      if (!locked) {
> -        qemu_mutex_unlock_iothread();
> +        bql_unlock();
>      }
>      return val;
>  }
> @@ -605,7 +605,7 @@ - (void) updateUIInfo
>          return;
>      }
>
> -    with_iothread_lock(^{
> +    with_bql(^{
>          [self updateUIInfoLocked];
>      });
>  }
> @@ -790,7 +790,7 @@ - (void) handleMonitorInput:(NSEvent *)event
>
>  - (bool) handleEvent:(NSEvent *)event
>  {
> -    return bool_with_iothread_lock(^{
> +    return bool_with_bql(^{
>          return [self handleEventLocked:event];
>      });
>  }
> @@ -1182,7 +1182,7 @@ - (QEMUScreen) gscreen {return screen;}
>   */
>  - (void) raiseAllKeys
>  {
> -    with_iothread_lock(^{
> +    with_bql(^{
>          qkbd_state_lift_all_keys(kbd);
>      });
>  }
> @@ -1282,7 +1282,7 @@ - (void)applicationWillTerminate:(NSNotification
> *)aNotification
>  {
>      COCOA_DEBUG("QemuCocoaAppController: applicationWillTerminate\n");
>
> -    with_iothread_lock(^{
> +    with_bql(^{
>          shutdown_action =3D SHUTDOWN_ACTION_POWEROFF;
>          qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_UI);
>      });
> @@ -1420,7 +1420,7 @@ - (void)displayConsole:(id)sender
>  /* Pause the guest */
>  - (void)pauseQEMU:(id)sender
>  {
> -    with_iothread_lock(^{
> +    with_bql(^{
>          qmp_stop(NULL);
>      });
>      [sender setEnabled: NO];
> @@ -1431,7 +1431,7 @@ - (void)pauseQEMU:(id)sender
>  /* Resume running the guest operating system */
>  - (void)resumeQEMU:(id) sender
>  {
> -    with_iothread_lock(^{
> +    with_bql(^{
>          qmp_cont(NULL);
>      });
>      [sender setEnabled: NO];
> @@ -1461,7 +1461,7 @@ - (void)removePause
>  /* Restarts QEMU */
>  - (void)restartQEMU:(id)sender
>  {
> -    with_iothread_lock(^{
> +    with_bql(^{
>          qmp_system_reset(NULL);
>      });
>  }
> @@ -1469,7 +1469,7 @@ - (void)restartQEMU:(id)sender
>  /* Powers down QEMU */
>  - (void)powerDownQEMU:(id)sender
>  {
> -    with_iothread_lock(^{
> +    with_bql(^{
>          qmp_system_powerdown(NULL);
>      });
>  }
> @@ -1488,7 +1488,7 @@ - (void)ejectDeviceMedia:(id)sender
>      }
>
>      __block Error *err =3D NULL;
> -    with_iothread_lock(^{
> +    with_bql(^{
>          qmp_eject([drive cStringUsingEncoding: NSASCIIStringEncoding],
>                    NULL, false, false, &err);
>      });
> @@ -1523,7 +1523,7 @@ - (void)changeDeviceMedia:(id)sender
>          }
>
>          __block Error *err =3D NULL;
> -        with_iothread_lock(^{
> +        with_bql(^{
>              qmp_blockdev_change_medium([drive cStringUsingEncoding:
>                                                    NSASCIIStringEncoding]=
,
>                                         NULL,
> @@ -1605,7 +1605,7 @@ - (void)adjustSpeed:(id)sender
>      // get the throttle percentage
>      throttle_pct =3D [sender tag];
>
> -    with_iothread_lock(^{
> +    with_bql(^{
>          cpu_throttle_set(throttle_pct);
>      });
>      COCOA_DEBUG("cpu throttling at %d%c\n",
> cpu_throttle_get_percentage(), '%');
> @@ -1819,7 +1819,7 @@ - (void)pasteboard:(NSPasteboard *)sender
> provideDataForType:(NSPasteboardType)t
>          return;
>      }
>
> -    with_iothread_lock(^{
> +    with_bql(^{
>          QemuClipboardInfo *info =3D qemu_clipboard_info_ref(cbinfo);
>          qemu_event_reset(&cbevent);
>          qemu_clipboard_request(info, QEMU_CLIPBOARD_TYPE_TEXT);
> @@ -1827,9 +1827,9 @@ - (void)pasteboard:(NSPasteboard *)sender
> provideDataForType:(NSPasteboardType)t
>          while (info =3D=3D cbinfo &&
>                 info->types[QEMU_CLIPBOARD_TYPE_TEXT].available &&
>                 info->types[QEMU_CLIPBOARD_TYPE_TEXT].data =3D=3D NULL) {
> -            qemu_mutex_unlock_iothread();
> +            bql_unlock();
>              qemu_event_wait(&cbevent);
> -            qemu_mutex_lock_iothread();
> +            bql_lock();
>          }
>
>          if (info =3D=3D cbinfo) {
> @@ -1927,9 +1927,9 @@ static void
> cocoa_clipboard_request(QemuClipboardInfo *info,
>      int status;
>
>      COCOA_DEBUG("Second thread: calling qemu_default_main()\n");
> -    qemu_mutex_lock_iothread();
> +    bql_lock();
>      status =3D qemu_default_main();
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      COCOA_DEBUG("Second thread: qemu_default_main() returned, exiting\n"=
);
>      [cbowner release];
>      exit(status);
> @@ -1941,7 +1941,7 @@ static int cocoa_main(void)
>
>      COCOA_DEBUG("Entered %s()\n", __func__);
>
> -    qemu_mutex_unlock_iothread();
> +    bql_unlock();
>      qemu_thread_create(&thread, "qemu_main", call_qemu_main,
>                         NULL, QEMU_THREAD_DETACHED);
>
> --
> 2.43.0
>
>
Thanks,

Acked-by: Hyman Huang <yong.huang@smartx.com>

--=20
Best regards

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

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div di=
r=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:&quot;comic san=
s ms&quot;,sans-serif"><br></div></div><br><div class=3D"gmail_quote"><div =
dir=3D"ltr" class=3D"gmail_attr">On Tue, Dec 12, 2023 at 11:39=E2=80=AFPM S=
tefan Hajnoczi &lt;<a href=3D"mailto:stefanha@redhat.com">stefanha@redhat.c=
om</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-le=
ft-color:rgb(204,204,204);padding-left:1ex">The Big QEMU Lock (BQL) has man=
y names and they are confusing. The<br>
actual QemuMutex variable is called qemu_global_mutex but it&#39;s commonly=
<br>
referred to as the BQL in discussions and some code comments. The<br>
locking APIs, however, are called qemu_mutex_lock_iothread() and<br>
qemu_mutex_unlock_iothread().<br>
<br>
The &quot;iothread&quot; name is historic and comes from when the main thre=
ad was<br>
split into into KVM vcpu threads and the &quot;iothread&quot; (now called t=
he main<br>
loop thread). I have contributed to the confusion myself by introducing<br>
a separate --object iothread, a separate concept unrelated to the BQL.<br>
<br>
The &quot;iothread&quot; name is no longer appropriate for the BQL. Rename =
the<br>
locking APIs to:<br>
- void bql_lock(void)<br>
- void bql_unlock(void)<br>
- bool bql_locked(void)<br>
<br>
There are more APIs with &quot;iothread&quot; in their names. Subsequent pa=
tches<br>
will rename them. There are also comments and documentation that will be<br=
>
updated in later patches.<br>
<br>
Signed-off-by: Stefan Hajnoczi &lt;<a href=3D"mailto:stefanha@redhat.com" t=
arget=3D"_blank">stefanha@redhat.com</a>&gt;<br>
Reviewed-by: Paul Durrant &lt;<a href=3D"mailto:paul@xen.org" target=3D"_bl=
ank">paul@xen.org</a>&gt;<br>
Acked-by: Fabiano Rosas &lt;<a href=3D"mailto:farosas@suse.de" target=3D"_b=
lank">farosas@suse.de</a>&gt;<br>
Acked-by: David Woodhouse &lt;<a href=3D"mailto:dwmw@amazon.co.uk" target=
=3D"_blank">dwmw@amazon.co.uk</a>&gt;<br>
Reviewed-by: C=C3=A9dric Le Goater &lt;<a href=3D"mailto:clg@kaod.org" targ=
et=3D"_blank">clg@kaod.org</a>&gt;<br>
Acked-by: Peter Xu &lt;<a href=3D"mailto:peterx@redhat.com" target=3D"_blan=
k">peterx@redhat.com</a>&gt;<br>
Acked-by: Eric Farman &lt;<a href=3D"mailto:farman@linux.ibm.com" target=3D=
"_blank">farman@linux.ibm.com</a>&gt;<br>
Reviewed-by: Harsh Prateek Bora &lt;<a href=3D"mailto:harshpb@linux.ibm.com=
" target=3D"_blank">harshpb@linux.ibm.com</a>&gt;<br>
---<br>
=C2=A0include/block/aio-wait.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 =C2=A02 +-<br>
=C2=A0include/qemu/main-loop.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 40 ++++-----<br>
=C2=A0include/qemu/thread.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 =C2=A02 +-<br>
=C2=A0accel/accel-blocker.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 10 +--<br>
=C2=A0accel/dummy-cpus.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A08 +-<br>
=C2=A0accel/hvf/hvf-accel-ops.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A04 +-<br>
=C2=A0accel/kvm/kvm-accel-ops.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A04 +-<br>
=C2=A0accel/kvm/kvm-all.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 |=C2=A0 22 ++---<br>
=C2=A0accel/tcg/cpu-exec.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0|=C2=A0 26 +++---<br>
=C2=A0accel/tcg/cputlb.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0|=C2=A0 16 ++--<br>
=C2=A0accel/tcg/tcg-accel-ops-icount.c=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A04 +=
-<br>
=C2=A0accel/tcg/tcg-accel-ops-mttcg.c=C2=A0 =C2=A0 =C2=A0 |=C2=A0 12 +--<br=
>
=C2=A0accel/tcg/tcg-accel-ops-rr.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0=
 14 ++--<br>
=C2=A0accel/tcg/tcg-accel-ops.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A02 +-<br>
=C2=A0accel/tcg/translate-all.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A02 +-<br>
=C2=A0cpu-common.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=A04 +-<br>
=C2=A0dump/dump.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=A04 +-<br>
=C2=A0hw/core/cpu-common.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0|=C2=A0 =C2=A06 +-<br>
=C2=A0hw/i386/intel_iommu.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 =C2=A06 +-<br>
=C2=A0hw/i386/kvm/xen_evtchn.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 16 ++--<br>
=C2=A0hw/i386/kvm/xen_overlay.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A02 +-<br>
=C2=A0hw/i386/kvm/xen_xenstore.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=
=C2=A0 =C2=A02 +-<br>
=C2=A0hw/intc/arm_gicv3_cpuif.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A02 +-<br>
=C2=A0hw/intc/s390_flic.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 |=C2=A0 18 ++--<br>
=C2=A0hw/misc/edu.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=A04 +-<br>
=C2=A0hw/misc/imx6_src.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A02 +-<br>
=C2=A0hw/misc/imx7_src.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A02 +-<br>
=C2=A0hw/net/xen_nic.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=A08 +-<br>
=C2=A0hw/ppc/pegasos2.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A02 +-<br>
=C2=A0hw/ppc/ppc.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=A04 +-<br>
=C2=A0hw/ppc/spapr.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=A02 +-<br>
=C2=A0hw/ppc/spapr_rng.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A04 +-<br>
=C2=A0hw/ppc/spapr_softmmu.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0|=C2=A0 =C2=A04 +-<br>
=C2=A0hw/remote/mpqemu-link.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 |=C2=A0 20 ++---<br>
=C2=A0hw/remote/vfio-user-obj.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A02 +-<br>
=C2=A0hw/s390x/s390-skeys.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 =C2=A02 +-<br>
=C2=A0migration/block-dirty-bitmap.c=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=
=A04 +-<br>
=C2=A0migration/block.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |=C2=A0 16 ++--<br>
=C2=A0migration/colo.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 60 +++++++-------<br>
=C2=A0migration/dirtyrate.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 12 +--<br>
=C2=A0migration/migration.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 52 ++++++------<br>
=C2=A0migration/ram.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 12 +--<br>
=C2=A0replay/replay-internal.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 =C2=A02 +-<br>
=C2=A0semihosting/console.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 =C2=A08 +-<br>
=C2=A0stubs/iothread-lock.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 =C2=A06 +-<br>
=C2=A0system/cpu-throttle.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0system/cpus.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 51 ++++++------<br>
=C2=A0system/dirtylimit.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0system/memory.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=A02 +-<br>
=C2=A0system/physmem.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=A08 +-<br>
=C2=A0system/runstate.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A02 +-<br>
=C2=A0system/watchpoint.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0target/arm/arm-powerctl.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 14 ++--<br>
=C2=A0target/arm/helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0target/arm/hvf/hvf.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0|=C2=A0 =C2=A08 +-<br>
=C2=A0target/arm/kvm.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=A04 +-<br>
=C2=A0target/arm/kvm64.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A04 +-<br>
=C2=A0target/arm/ptw.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=A06 +-<br>
=C2=A0target/arm/tcg/helper-a64.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0=
 =C2=A08 +-<br>
=C2=A0target/arm/tcg/m_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A06 +-<br>
=C2=A0target/arm/tcg/op_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=
=C2=A0 24 +++---<br>
=C2=A0target/arm/tcg/psci.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 =C2=A02 +-<br>
=C2=A0target/hppa/int_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 =C2=A08 +-<br>
=C2=A0target/i386/hvf/hvf.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 =C2=A06 +-<br>
=C2=A0target/i386/kvm/hyperv.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 =C2=A04 +-<br>
=C2=A0target/i386/kvm/kvm.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 |=C2=A0 28 +++----<br>
=C2=A0target/i386/kvm/xen-emu.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 14 ++--<br>
=C2=A0target/i386/nvmm/nvmm-accel-ops.c=C2=A0 =C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0target/i386/nvmm/nvmm-all.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0=
 20 ++---<br>
=C2=A0target/i386/tcg/sysemu/fpu_helper.c=C2=A0 |=C2=A0 =C2=A06 +-<br>
=C2=A0target/i386/tcg/sysemu/misc_helper.c |=C2=A0 =C2=A04 +-<br>
=C2=A0target/i386/whpx/whpx-accel-ops.c=C2=A0 =C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0target/i386/whpx/whpx-all.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0=
 24 +++---<br>
=C2=A0target/loongarch/csr_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=
=A04 +-<br>
=C2=A0target/mips/kvm.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0target/mips/tcg/sysemu/cp0_helper.c=C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0target/openrisc/sys_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0=
 16 ++--<br>
=C2=A0target/ppc/excp_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 12 +--<br>
=C2=A0target/ppc/kvm.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=A04 +-<br>
=C2=A0target/ppc/misc_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 =C2=A08 +-<br>
=C2=A0target/ppc/timebase_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0=
 =C2=A08 +-<br>
=C2=A0target/s390x/kvm/kvm.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0|=C2=A0 =C2=A04 +-<br>
=C2=A0target/s390x/tcg/misc_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0| 118 ++++++=
+++++++--------------<br>
=C2=A0target/sparc/int32_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0=
 =C2=A02 +-<br>
=C2=A0target/sparc/int64_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0=
 =C2=A06 +-<br>
=C2=A0target/sparc/win_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 20 ++---<br>
=C2=A0target/xtensa/exc_helper.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=
=C2=A0 =C2=A08 +-<br>
=C2=A0ui/spice-core.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0util/async.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=A02 +-<br>
=C2=A0util/main-loop.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=A08 +-<br>
=C2=A0util/qsp.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=A06 +-<br>
=C2=A0util/rcu.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 14 ++--<br>
=C2=A0audio/coreaudio.m=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A04 +-<br>
=C2=A0memory_ldst.c.inc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |=C2=A0 18 ++--<br>
=C2=A0target/i386/hvf/README.md=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A02 +-<br>
=C2=A0ui/cocoa.m=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 50 ++++++------<br>
=C2=A096 files changed, 530 insertions(+), 529 deletions(-)<br>
<br>
diff --git a/include/block/aio-wait.h b/include/block/aio-wait.h<br>
index 5449b6d742..d22ca24329 100644<br>
--- a/include/block/aio-wait.h<br>
+++ b/include/block/aio-wait.h<br>
@@ -151,7 +151,7 @@ static inline bool in_aio_context_home_thread(AioContex=
t *ctx)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (ctx =3D=3D qemu_get_aio_context()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 return qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 return bql_locked();<br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return false;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h<br>
index 68e70e61aa..596a206acd 100644<br>
--- a/include/qemu/main-loop.h<br>
+++ b/include/qemu/main-loop.h<br>
@@ -248,19 +248,19 @@ GSource *iohandler_get_g_source(void);<br>
=C2=A0AioContext *iohandler_get_aio_context(void);<br>
<br>
=C2=A0/**<br>
- * qemu_mutex_iothread_locked: Return lock status of the main loop mutex.<=
br>
+ * bql_locked: Return lock status of the Big QEMU Lock (BQL)<br>
=C2=A0 *<br>
- * The main loop mutex is the coarsest lock in QEMU, and as such it<br>
+ * The Big QEMU Lock (BQL) is the coarsest lock in QEMU, and as such it<br=
>
=C2=A0 * must always be taken outside other locks.=C2=A0 This function help=
s<br>
=C2=A0 * functions take different paths depending on whether the current<br=
>
- * thread is running within the main loop mutex.<br>
+ * thread is running within the BQL.<br>
=C2=A0 *<br>
=C2=A0 * This function should never be used in the block layer, because<br>
=C2=A0 * unit tests, block layer tools and qemu-storage-daemon do not<br>
=C2=A0 * have a BQL.<br>
=C2=A0 * Please instead refer to qemu_in_main_thread().<br>
=C2=A0 */<br>
-bool qemu_mutex_iothread_locked(void);<br>
+bool bql_locked(void);<br>
<br>
=C2=A0/**<br>
=C2=A0 * qemu_in_main_thread: return whether it&#39;s possible to safely ac=
cess<br>
@@ -312,58 +312,58 @@ bool qemu_in_main_thread(void);<br>
=C2=A0 =C2=A0 =C2=A0} while (0)<br>
<br>
=C2=A0/**<br>
- * qemu_mutex_lock_iothread: Lock the main loop mutex.<br>
+ * bql_lock: Lock the Big QEMU Lock (BQL).<br>
=C2=A0 *<br>
- * This function locks the main loop mutex.=C2=A0 The mutex is taken by<br=
>
+ * This function locks the Big QEMU Lock (BQL).=C2=A0 The lock is taken by=
<br>
=C2=A0 * main() in vl.c and always taken except while waiting on<br>
- * external events (such as with select).=C2=A0 The mutex should be taken<=
br>
+ * external events (such as with select).=C2=A0 The lock should be taken<b=
r>
=C2=A0 * by threads other than the main loop thread when calling<br>
=C2=A0 * qemu_bh_new(), qemu_set_fd_handler() and basically all other<br>
=C2=A0 * functions documented in this file.<br>
=C2=A0 *<br>
- * NOTE: tools currently are single-threaded and qemu_mutex_lock_iothread<=
br>
+ * NOTE: tools currently are single-threaded and bql_lock<br>
=C2=A0 * is a no-op there.<br>
=C2=A0 */<br>
-#define qemu_mutex_lock_iothread()=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread_impl(__FILE__, __LINE__)<br>
-void qemu_mutex_lock_iothread_impl(const char *file, int line);<br>
+#define bql_lock()=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 \<br>
+=C2=A0 =C2=A0 bql_lock_impl(__FILE__, __LINE__)<br>
+void bql_lock_impl(const char *file, int line);<br>
<br>
=C2=A0/**<br>
- * qemu_mutex_unlock_iothread: Unlock the main loop mutex.<br>
+ * bql_unlock: Unlock the Big QEMU Lock (BQL).<br>
=C2=A0 *<br>
- * This function unlocks the main loop mutex.=C2=A0 The mutex is taken by<=
br>
+ * This function unlocks the Big QEMU Lock.=C2=A0 The lock is taken by<br>
=C2=A0 * main() in vl.c and always taken except while waiting on<br>
- * external events (such as with select).=C2=A0 The mutex should be unlock=
ed<br>
+ * external events (such as with select).=C2=A0 The lock should be unlocke=
d<br>
=C2=A0 * as soon as possible by threads other than the main loop thread,<br=
>
=C2=A0 * because it prevents the main loop from processing callbacks,<br>
=C2=A0 * including timers and bottom halves.<br>
=C2=A0 *<br>
- * NOTE: tools currently are single-threaded and qemu_mutex_unlock_iothrea=
d<br>
+ * NOTE: tools currently are single-threaded and bql_unlock<br>
=C2=A0 * is a no-op there.<br>
=C2=A0 */<br>
-void qemu_mutex_unlock_iothread(void);<br>
+void bql_unlock(void);<br>
<br>
=C2=A0/**<br>
=C2=A0 * QEMU_IOTHREAD_LOCK_GUARD<br>
=C2=A0 *<br>
- * Wrap a block of code in a conditional qemu_mutex_{lock,unlock}_iothread=
.<br>
+ * Wrap a block of code in a conditional bql_{lock,unlock}.<br>
=C2=A0 */<br>
=C2=A0typedef struct IOThreadLockAuto IOThreadLockAuto;<br>
<br>
=C2=A0static inline IOThreadLockAuto *qemu_iothread_auto_lock(const char *f=
ile,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int line)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 if (qemu_mutex_iothread_locked()) {<br>
+=C2=A0 =C2=A0 if (bql_locked()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread_impl(file, line);<br>
+=C2=A0 =C2=A0 bql_lock_impl(file, line);<br>
=C2=A0 =C2=A0 =C2=A0/* Anything non-NULL causes the cleanup function to be =
called */<br>
=C2=A0 =C2=A0 =C2=A0return (IOThreadLockAuto *)(uintptr_t)1;<br>
=C2=A0}<br>
<br>
=C2=A0static inline void qemu_iothread_auto_unlock(IOThreadLockAuto *l)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0G_DEFINE_AUTOPTR_CLEANUP_FUNC(IOThreadLockAuto, qemu_iothread_auto_un=
lock)<br>
diff --git a/include/qemu/thread.h b/include/qemu/thread.h<br>
index dd3822d7ce..fb74e21c08 100644<br>
--- a/include/qemu/thread.h<br>
+++ b/include/qemu/thread.h<br>
@@ -47,7 +47,7 @@ typedef void (*QemuCondWaitFunc)(QemuCond *c, QemuMutex *=
m, const char *f,<br>
=C2=A0typedef bool (*QemuCondTimedWaitFunc)(QemuCond *c, QemuMutex *m, int =
ms,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0const cha=
r *f, int l);<br>
<br>
-extern QemuMutexLockFunc qemu_bql_mutex_lock_func;<br>
+extern QemuMutexLockFunc bql_mutex_lock_func;<br>
=C2=A0extern QemuMutexLockFunc qemu_mutex_lock_func;<br>
=C2=A0extern QemuMutexTrylockFunc qemu_mutex_trylock_func;<br>
=C2=A0extern QemuRecMutexLockFunc qemu_rec_mutex_lock_func;<br>
diff --git a/accel/accel-blocker.c b/accel/accel-blocker.c<br>
index 1e7f423462..e083f24aa8 100644<br>
--- a/accel/accel-blocker.c<br>
+++ b/accel/accel-blocker.c<br>
@@ -41,7 +41,7 @@ void accel_blocker_init(void)<br>
<br>
=C2=A0void accel_ioctl_begin(void)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 if (likely(qemu_mutex_iothread_locked())) {<br>
+=C2=A0 =C2=A0 if (likely(bql_locked())) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -51,7 +51,7 @@ void accel_ioctl_begin(void)<br>
<br>
=C2=A0void accel_ioctl_end(void)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 if (likely(qemu_mutex_iothread_locked())) {<br>
+=C2=A0 =C2=A0 if (likely(bql_locked())) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -62,7 +62,7 @@ void accel_ioctl_end(void)<br>
<br>
=C2=A0void accel_cpu_ioctl_begin(CPUState *cpu)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 if (unlikely(qemu_mutex_iothread_locked())) {<br>
+=C2=A0 =C2=A0 if (unlikely(bql_locked())) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -72,7 +72,7 @@ void accel_cpu_ioctl_begin(CPUState *cpu)<br>
<br>
=C2=A0void accel_cpu_ioctl_end(CPUState *cpu)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 if (unlikely(qemu_mutex_iothread_locked())) {<br>
+=C2=A0 =C2=A0 if (unlikely(bql_locked())) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -105,7 +105,7 @@ void accel_ioctl_inhibit_begin(void)<br>
=C2=A0 =C2=A0 =C2=A0 * We allow to inhibit only when holding the BQL, so we=
 can identify<br>
=C2=A0 =C2=A0 =C2=A0 * when an inhibitor wants to issue an ioctl easily.<br=
>
=C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Block further invocations of the ioctls outside the =
BQL.=C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0CPU_FOREACH(cpu) {<br>
diff --git a/accel/dummy-cpus.c b/accel/dummy-cpus.c<br>
index b75c919ac3..f4b0ec5890 100644<br>
--- a/accel/dummy-cpus.c<br>
+++ b/accel/dummy-cpus.c<br>
@@ -24,7 +24,7 @@ static void *dummy_cpu_thread_fn(void *arg)<br>
<br>
=C2=A0 =C2=A0 =C2=A0rcu_register_thread();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_get_self(cpu-&gt;thread);<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;thread_id =3D qemu_get_thread_id();<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;neg.can_do_io =3D true;<br>
@@ -43,7 +43,7 @@ static void *dummy_cpu_thread_fn(void *arg)<br>
=C2=A0 =C2=A0 =C2=A0qemu_guest_random_seed_thread_part2(cpu-&gt;random_seed=
);<br>
<br>
=C2=A0 =C2=A0 =C2=A0do {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0#ifndef _WIN32<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0do {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int sig;<br>
@@ -56,11 +56,11 @@ static void *dummy_cpu_thread_fn(void *arg)<br>
=C2=A0#else<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_sem_wait(&amp;cpu-&gt;sem);<br>
=C2=A0#endif<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_wait_io_event(cpu);<br>
=C2=A0 =C2=A0 =C2=A0} while (!cpu-&gt;unplug);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0rcu_unregister_thread();<br>
=C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0}<br>
diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c<br>
index abe7adf7ee..8eabb696fa 100644<br>
--- a/accel/hvf/hvf-accel-ops.c<br>
+++ b/accel/hvf/hvf-accel-ops.c<br>
@@ -424,7 +424,7 @@ static void *hvf_cpu_thread_fn(void *arg)<br>
<br>
=C2=A0 =C2=A0 =C2=A0rcu_register_thread();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_get_self(cpu-&gt;thread);<br>
<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;thread_id =3D qemu_get_thread_id();<br>
@@ -449,7 +449,7 @@ static void *hvf_cpu_thread_fn(void *arg)<br>
<br>
=C2=A0 =C2=A0 =C2=A0hvf_vcpu_destroy(cpu);<br>
=C2=A0 =C2=A0 =C2=A0cpu_thread_signal_destroyed(cpu);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0rcu_unregister_thread();<br>
=C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0}<br>
diff --git a/accel/kvm/kvm-accel-ops.c b/accel/kvm/kvm-accel-ops.c<br>
index 6195150a0b..45ff06e953 100644<br>
--- a/accel/kvm/kvm-accel-ops.c<br>
+++ b/accel/kvm/kvm-accel-ops.c<br>
@@ -33,7 +33,7 @@ static void *kvm_vcpu_thread_fn(void *arg)<br>
<br>
=C2=A0 =C2=A0 =C2=A0rcu_register_thread();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_get_self(cpu-&gt;thread);<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;thread_id =3D qemu_get_thread_id();<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;neg.can_do_io =3D true;<br>
@@ -58,7 +58,7 @@ static void *kvm_vcpu_thread_fn(void *arg)<br>
<br>
=C2=A0 =C2=A0 =C2=A0kvm_destroy_vcpu(cpu);<br>
=C2=A0 =C2=A0 =C2=A0cpu_thread_signal_destroyed(cpu);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0rcu_unregister_thread();<br>
=C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0}<br>
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c<br>
index e39a810a4e..09404b897f 100644<br>
--- a/accel/kvm/kvm-all.c<br>
+++ b/accel/kvm/kvm-all.c<br>
@@ -817,7 +817,7 @@ static void kvm_dirty_ring_flush(void)<br>
=C2=A0 =C2=A0 =C2=A0 * should always be with BQL held, serialization is gua=
ranteed.<br>
=C2=A0 =C2=A0 =C2=A0 * However, let&#39;s be sure of it.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0/*<br>
=C2=A0 =C2=A0 =C2=A0 * First make sure to flush the hardware buffers by kic=
king all<br>
=C2=A0 =C2=A0 =C2=A0 * vcpus out in a synchronous way.<br>
@@ -1402,9 +1402,9 @@ static void *kvm_dirty_ring_reaper_thread(void *data)=
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0trace_kvm_dirty_ring_reaper(&quot;wakeup&=
quot;);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0r-&gt;reaper_state =3D KVM_DIRTY_RING_REA=
PER_REAPING;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0kvm_dirty_ring_reap(s, NULL);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0r-&gt;reaper_iteration++;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -2828,7 +2828,7 @@ int kvm_cpu_exec(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return EXCP_HLT;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0cpu_exec_start(cpu);<br>
<br>
=C2=A0 =C2=A0 =C2=A0do {<br>
@@ -2868,11 +2868,11 @@ int kvm_cpu_exec(CPUState *cpu)<br>
<br>
=C2=A0#ifdef KVM_HAVE_MCE_INJECTION<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (unlikely(have_sigbus_pending)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0kvm_arch_on_sigbus_vcpu(cpu=
, pending_sigbus_code,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pending_sigbus_a=
ddr);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0have_sigbus_pending =3D fal=
se;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
<br>
@@ -2942,7 +2942,7 @@ int kvm_cpu_exec(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * still full.=C2=A0 Got ki=
cked by KVM_RESET_DIRTY_RINGS.<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0trace_kvm_dirty_ring_full(c=
pu-&gt;cpu_index);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/*<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * We throttle vCPU by maki=
ng it sleep once it exit from kernel<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * due to dirty ring full. =
In the dirtylimit scenario, reaping<br>
@@ -2954,7 +2954,7 @@ int kvm_cpu_exec(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0kvm_dirty_rin=
g_reap(kvm_state, NULL);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0dirtylimit_vcpu_execute(cpu=
);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D 0;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
@@ -2970,9 +2970,9 @@ int kvm_cpu_exec(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case KVM_SYSTEM_EVENT_CRASH=
:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0kvm_cpu_synch=
ronize_state(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_io=
thread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_system_g=
uest_panicked(cpu_get_crash_info(cpu));<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_=
iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D 0;<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default:<br>
@@ -2989,7 +2989,7 @@ int kvm_cpu_exec(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0} while (ret =3D=3D 0);<br>
<br>
=C2=A0 =C2=A0 =C2=A0cpu_exec_end(cpu);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (ret &lt; 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_dump_state(cpu, stderr, CPU_DUMP_CODE=
);<br>
diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c<br>
index c938eb96f8..67eda9865e 100644<br>
--- a/accel/tcg/cpu-exec.c<br>
+++ b/accel/tcg/cpu-exec.c<br>
@@ -558,8 +558,8 @@ static void cpu_exec_longjmp_cleanup(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0tcg_ctx-&gt;gen_tb =3D NULL;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
-=C2=A0 =C2=A0 if (qemu_mutex_iothread_locked()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 if (bql_locked()) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0assert_no_pages_locked();<br>
=C2=A0}<br>
@@ -680,10 +680,10 @@ static inline bool cpu_handle_halt(CPUState *cpu)<br>
=C2=A0#if defined(TARGET_I386)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (cpu-&gt;interrupt_request &amp; CPU_I=
NTERRUPT_POLL) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0X86CPU *x86_cpu =3D X86_CPU=
(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0apic_poll_irq(x86_cpu-&gt;a=
pic_state);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_reset_interrupt(cpu, CP=
U_INTERRUPT_POLL);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif /* TARGET_I386 */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!cpu_has_work(cpu)) {<br>
@@ -749,9 +749,9 @@ static inline bool cpu_handle_exception(CPUState *cpu, =
int *ret)<br>
=C2=A0#else<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (replay_exception()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CPUClass *cc =3D CPU_GET_CL=
ASS(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cc-&gt;tcg_ops-&gt;do_inter=
rupt(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;exception_index =3D=
 -1;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (unlikely(cpu-&gt;single=
step_enabled)) {<br>
@@ -812,7 +812,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,<=
br>
<br>
=C2=A0 =C2=A0 =C2=A0if (unlikely(qatomic_read(&amp;cpu-&gt;interrupt_reques=
t))) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int interrupt_request;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0interrupt_request =3D cpu-&gt;interrupt_r=
equest;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (unlikely(cpu-&gt;singlestep_enabled &=
amp; SSTEP_NOIRQ)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Mask out external interr=
upts for this step. */<br>
@@ -821,7 +821,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (interrupt_request &amp; CPU_INTERRUPT=
_DEBUG) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;interrupt_request &=
amp;=3D ~CPU_INTERRUPT_DEBUG;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;exception_index =3D=
 EXCP_DEBUG;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#if !defined(CONFIG_USER_ONLY)<br>
@@ -832,7 +832,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;interrupt_request &=
amp;=3D ~CPU_INTERRUPT_HALT;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;halted =3D 1;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;exception_index =3D=
 EXCP_HLT;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#if defined(TARGET_I386)<br>
@@ -843,14 +843,14 @@ static inline bool cpu_handle_interrupt(CPUState *cpu=
,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_svm_check_intercept_par=
am(env, SVM_EXIT_INIT, 0, 0);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0do_cpu_init(x86_cpu);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;exception_index =3D=
 EXCP_HALTED;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#else<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0else if (interrupt_request &amp; CPU_INTE=
RRUPT_RESET) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0replay_interrupt();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_reset(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif /* !TARGET_I386 */<br>
@@ -873,7 +873,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (unlikely(=
cpu-&gt;singlestep_enabled)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0cpu-&gt;exception_index =3D EXCP_DEBUG;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu=
_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_=
unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0return true;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;excep=
tion_index =3D -1;<br>
@@ -892,7 +892,7 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* If we exit via cpu_loop_exit/longjmp i=
t is reset in cpu_exec */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Finally, check if we need to exit to the main loop.=
=C2=A0 */<br>
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c<br>
index db3f93fda9..5698a9fd8e 100644<br>
--- a/accel/tcg/cputlb.c<br>
+++ b/accel/tcg/cputlb.c<br>
@@ -2030,10 +2030,10 @@ static uint64_t do_ld_mmio_beN(CPUState *cpu, CPUTL=
BEntryFull *full,<br>
=C2=A0 =C2=A0 =C2=A0section =3D io_prepare(&amp;mr_offset, cpu, full-&gt;xl=
at_section, attrs, addr, ra);<br>
=C2=A0 =C2=A0 =C2=A0mr =3D section-&gt;mr;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ret =3D int_ld_mmio_beN(cpu, full, ret_be, addr, size, =
mmu_idx,<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=A0type, ra, mr, mr_offset);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
=C2=A0}<br>
@@ -2054,12 +2054,12 @@ static Int128 do_ld16_mmio_beN(CPUState *cpu, CPUTL=
BEntryFull *full,<br>
=C2=A0 =C2=A0 =C2=A0section =3D io_prepare(&amp;mr_offset, cpu, full-&gt;xl=
at_section, attrs, addr, ra);<br>
=C2=A0 =C2=A0 =C2=A0mr =3D section-&gt;mr;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0a =3D int_ld_mmio_beN(cpu, full, ret_be, addr, size - 8=
, mmu_idx,<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=A0MMU_DATA_LOAD, ra, mr, mr_offset);<br>
=C2=A0 =C2=A0 =C2=A0b =3D int_ld_mmio_beN(cpu, full, ret_be, addr + size - =
8, 8, mmu_idx,<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=A0MMU_DATA_LOAD, ra, mr, mr_offset + size - 8);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return int128_make128(b, a);<br>
=C2=A0}<br>
@@ -2577,10 +2577,10 @@ static uint64_t do_st_mmio_leN(CPUState *cpu, CPUTL=
BEntryFull *full,<br>
=C2=A0 =C2=A0 =C2=A0section =3D io_prepare(&amp;mr_offset, cpu, full-&gt;xl=
at_section, attrs, addr, ra);<br>
=C2=A0 =C2=A0 =C2=A0mr =3D section-&gt;mr;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ret =3D int_st_mmio_leN(cpu, full, val_le, addr, size, =
mmu_idx,<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=A0ra, mr, mr_offset);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
=C2=A0}<br>
@@ -2601,12 +2601,12 @@ static uint64_t do_st16_mmio_leN(CPUState *cpu, CPU=
TLBEntryFull *full,<br>
=C2=A0 =C2=A0 =C2=A0section =3D io_prepare(&amp;mr_offset, cpu, full-&gt;xl=
at_section, attrs, addr, ra);<br>
=C2=A0 =C2=A0 =C2=A0mr =3D section-&gt;mr;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0int_st_mmio_leN(cpu, full, int128_getlo(val_le), addr, =
8,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0mmu_idx, ra, mr, mr_offset);<br>
=C2=A0 =C2=A0 =C2=A0ret =3D int_st_mmio_leN(cpu, full, int128_gethi(val_le)=
, addr + 8,<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=A0size - 8, mmu_idx, ra, mr, mr_offset + 8);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
=C2=A0}<br>
diff --git a/accel/tcg/tcg-accel-ops-icount.c b/accel/tcg/tcg-accel-ops-ico=
unt.c<br>
index b25685fb71..5824d92580 100644<br>
--- a/accel/tcg/tcg-accel-ops-icount.c<br>
+++ b/accel/tcg/tcg-accel-ops-icount.c<br>
@@ -126,9 +126,9 @@ void icount_prepare_for_run(CPUState *cpu, int64_t cpu_=
budget)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * We&#39;re called without the iothread =
lock, so must take it while<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * we&#39;re calling timer handlers.<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0icount_notify_aio_contexts();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
<br>
diff --git a/accel/tcg/tcg-accel-ops-mttcg.c b/accel/tcg/tcg-accel-ops-mttc=
g.c<br>
index fac80095bb..af7307013a 100644<br>
--- a/accel/tcg/tcg-accel-ops-mttcg.c<br>
+++ b/accel/tcg/tcg-accel-ops-mttcg.c<br>
@@ -76,7 +76,7 @@ static void *mttcg_cpu_thread_fn(void *arg)<br>
=C2=A0 =C2=A0 =C2=A0rcu_add_force_rcu_notifier(&amp;force_rcu.notifier);<br=
>
=C2=A0 =C2=A0 =C2=A0tcg_register_thread();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_get_self(cpu-&gt;thread);<br>
<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;thread_id =3D qemu_get_thread_id();<br>
@@ -91,9 +91,9 @@ static void *mttcg_cpu_thread_fn(void *arg)<br>
=C2=A0 =C2=A0 =C2=A0do {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (cpu_can_run(cpu)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int r;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0r =3D tcg_cpus_exec(cpu);<b=
r>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0switch (r) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case EXCP_DEBUG:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_handle_gu=
est_debug(cpu);<br>
@@ -105,9 +105,9 @@ static void *mttcg_cpu_thread_fn(void *arg)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case EXCP_ATOMIC:<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_=
iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_exec_step=
_atomic(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_io=
thread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Ignore eve=
rything else? */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
@@ -119,7 +119,7 @@ static void *mttcg_cpu_thread_fn(void *arg)<br>
=C2=A0 =C2=A0 =C2=A0} while (!cpu-&gt;unplug || cpu_can_run(cpu));<br>
<br>
=C2=A0 =C2=A0 =C2=A0tcg_cpus_destroy(cpu);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0rcu_remove_force_rcu_notifier(&amp;force_rcu.notifier);=
<br>
=C2=A0 =C2=A0 =C2=A0rcu_unregister_thread();<br>
=C2=A0 =C2=A0 =C2=A0return NULL;<br>
diff --git a/accel/tcg/tcg-accel-ops-rr.c b/accel/tcg/tcg-accel-ops-rr.c<br=
>
index 611932f3c3..c4ea372a3f 100644<br>
--- a/accel/tcg/tcg-accel-ops-rr.c<br>
+++ b/accel/tcg/tcg-accel-ops-rr.c<br>
@@ -188,7 +188,7 @@ static void *rr_cpu_thread_fn(void *arg)<br>
=C2=A0 =C2=A0 =C2=A0rcu_add_force_rcu_notifier(&amp;force_rcu);<br>
=C2=A0 =C2=A0 =C2=A0tcg_register_thread();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_get_self(cpu-&gt;thread);<br>
<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;thread_id =3D qemu_get_thread_id();<br>
@@ -218,9 +218,9 @@ static void *rr_cpu_thread_fn(void *arg)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Only used for icount_enabled() */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int64_t cpu_budget =3D 0;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0replay_mutex_lock();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (icount_enabled()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int cpu_count =3D rr_cpu_co=
unt();<br>
@@ -254,7 +254,7 @@ static void *rr_cpu_thread_fn(void *arg)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (cpu_can_run(cpu)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int r;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_=
iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (icount_en=
abled()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0icount_prepare_for_run(cpu, cpu_budget);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
@@ -262,15 +262,15 @@ static void *rr_cpu_thread_fn(void *arg)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (icount_en=
abled()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0icount_process_data(cpu);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_io=
thread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (r =3D=3D =
EXCP_DEBUG) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0cpu_handle_guest_debug(cpu);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0break;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (r =
=3D=3D EXCP_ATOMIC) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu=
_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_=
unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0cpu_exec_step_atomic(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu=
_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_=
lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0break;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (cpu-&gt;stop) {<=
br>
diff --git a/accel/tcg/tcg-accel-ops.c b/accel/tcg/tcg-accel-ops.c<br>
index 1b57290682..813065c0ec 100644<br>
--- a/accel/tcg/tcg-accel-ops.c<br>
+++ b/accel/tcg/tcg-accel-ops.c<br>
@@ -88,7 +88,7 @@ static void tcg_cpu_reset_hold(CPUState *cpu)<br>
=C2=A0/* mask must never be zero, except for A20 change call */<br>
=C2=A0void tcg_handle_interrupt(CPUState *cpu, int mask)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;interrupt_request |=3D mask;<br>
<br>
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c<br>
index 79a88f5fb7..1737bb3da5 100644<br>
--- a/accel/tcg/translate-all.c<br>
+++ b/accel/tcg/translate-all.c<br>
@@ -649,7 +649,7 @@ void cpu_io_recompile(CPUState *cpu, uintptr_t retaddr)=
<br>
<br>
=C2=A0void cpu_interrupt(CPUState *cpu, int mask)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;interrupt_request |=3D mask;<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;cpu-&gt;neg.icount_decr.u16.high, -1);=
<br>
=C2=A0}<br>
diff --git a/cpu-common.c b/cpu-common.c<br>
index c81fd72d16..ce78273af5 100644<br>
--- a/cpu-common.c<br>
+++ b/cpu-common.c<br>
@@ -351,11 +351,11 @@ void process_queued_cpu_work(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * BQL, so it goes to sleep=
; start_exclusive() is sleeping too, so<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * neither CPU can proceed.=
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0start_exclusive();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0wi-&gt;func(cpu, wi-&gt;dat=
a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0end_exclusive();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0wi-&gt;func(cpu, wi-&gt;dat=
a);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
diff --git a/dump/dump.c b/dump/dump.c<br>
index 4819050764..84064d890d 100644<br>
--- a/dump/dump.c<br>
+++ b/dump/dump.c<br>
@@ -108,11 +108,11 @@ static int dump_cleanup(DumpState *s)<br>
=C2=A0 =C2=A0 =C2=A0s-&gt;guest_note =3D NULL;<br>
=C2=A0 =C2=A0 =C2=A0if (s-&gt;resume) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (s-&gt;detached) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vm_start();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (s-&gt;detached) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0migrate_del_blocker(&amp;dump_migration_blocker);<br>
diff --git a/hw/core/cpu-common.c b/hw/core/cpu-common.c<br>
index 82dae51a55..a59e2ce645 100644<br>
--- a/hw/core/cpu-common.c<br>
+++ b/hw/core/cpu-common.c<br>
@@ -70,14 +70,14 @@ CPUState *cpu_create(const char *typename)<br>
=C2=A0 * BQL here if we need to.=C2=A0 cpu_interrupt assumes it is held.*/<=
br>
=C2=A0void cpu_reset_interrupt(CPUState *cpu, int mask)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 bool need_lock =3D !qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 bool need_lock =3D !bql_locked();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (need_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;interrupt_request &amp;=3D ~mask;<br>
=C2=A0 =C2=A0 =C2=A0if (need_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
<br>
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c<br>
index 5085a6fee3..7e310109cf 100644<br>
--- a/hw/i386/intel_iommu.c<br>
+++ b/hw/i386/intel_iommu.c<br>
@@ -1665,7 +1665,7 @@ static bool vtd_switch_address_space(VTDAddressSpace =
*as)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0bool use_iommu, pt;<br>
=C2=A0 =C2=A0 =C2=A0/* Whether we need to take the BQL on our own */<br>
-=C2=A0 =C2=A0 bool take_bql =3D !qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 bool take_bql =3D !bql_locked();<br>
<br>
=C2=A0 =C2=A0 =C2=A0assert(as);<br>
<br>
@@ -1683,7 +1683,7 @@ static bool vtd_switch_address_space(VTDAddressSpace =
*as)<br>
=C2=A0 =C2=A0 =C2=A0 * it. We&#39;d better make sure we have had it already=
, or, take it.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0if (take_bql) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Turn off first then on the other */<br>
@@ -1738,7 +1738,7 @@ static bool vtd_switch_address_space(VTDAddressSpace =
*as)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (take_bql) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0return use_iommu;<br>
diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c<br>
index 02b8cbf8df..d7d15cfaf7 100644<br>
--- a/hw/i386/kvm/xen_evtchn.c<br>
+++ b/hw/i386/kvm/xen_evtchn.c<br>
@@ -425,7 +425,7 @@ void xen_evtchn_set_callback_level(int level)<br>
=C2=A0 =C2=A0 =C2=A0 * effect immediately. That just leaves interdomain loo=
pback as the case<br>
=C2=A0 =C2=A0 =C2=A0 * which uses the BH.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 if (!qemu_mutex_iothread_locked()) {<br>
+=C2=A0 =C2=A0 if (!bql_locked()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_bh_schedule(s-&gt;gsi_bh);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -459,7 +459,7 @@ int xen_evtchn_set_callback_param(uint64_t param)<br>
=C2=A0 =C2=A0 =C2=A0 * We need the BQL because set_callback_pci_intx() may =
call into PCI code,<br>
=C2=A0 =C2=A0 =C2=A0 * and because we may need to manipulate the old and ne=
w GSI levels.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0qemu_mutex_lock(&amp;s-&gt;port_lock);<br>
<br>
=C2=A0 =C2=A0 =C2=A0switch (type) {<br>
@@ -1037,7 +1037,7 @@ static int close_port(XenEvtchnState *s, evtchn_port_=
t port,<br>
=C2=A0 =C2=A0 =C2=A0XenEvtchnPort *p =3D &amp;s-&gt;port_table[port];<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Because it *might* be a PIRQ port */<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0switch (p-&gt;type) {<br>
=C2=A0 =C2=A0 =C2=A0case EVTCHNSTAT_closed:<br>
@@ -1104,7 +1104,7 @@ int xen_evtchn_soft_reset(void)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return -ENOTSUP;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0qemu_mutex_lock(&amp;s-&gt;port_lock);<br>
<br>
@@ -1601,7 +1601,7 @@ bool xen_evtchn_set_gsi(int gsi, int level)<br>
=C2=A0 =C2=A0 =C2=A0XenEvtchnState *s =3D xen_evtchn_singleton;<br>
=C2=A0 =C2=A0 =C2=A0int pirq;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!s || gsi &lt; 0 || gsi &gt;=3D IOAPIC_NUM_PINS) {<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return false;<br>
@@ -1712,7 +1712,7 @@ void xen_evtchn_snoop_msi(PCIDevice *dev, bool is_msi=
x, unsigned int vector,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0pirq =3D msi_pirq_target(addr, data);<br>
<br>
@@ -1749,7 +1749,7 @@ int xen_evtchn_translate_pirq_msi(struct kvm_irq_rout=
ing_entry *route,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return 1; /* Not a PIRQ */<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0pirq =3D msi_pirq_target(address, data);<br>
=C2=A0 =C2=A0 =C2=A0if (!pirq || pirq &gt;=3D s-&gt;nr_pirqs) {<br>
@@ -1796,7 +1796,7 @@ bool xen_evtchn_deliver_pirq_msi(uint64_t address, ui=
nt32_t data)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return false;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0pirq =3D msi_pirq_target(address, data);<br>
=C2=A0 =C2=A0 =C2=A0if (!pirq || pirq &gt;=3D s-&gt;nr_pirqs) {<br>
diff --git a/hw/i386/kvm/xen_overlay.c b/hw/i386/kvm/xen_overlay.c<br>
index 39fda1b72c..1722294638 100644<br>
--- a/hw/i386/kvm/xen_overlay.c<br>
+++ b/hw/i386/kvm/xen_overlay.c<br>
@@ -194,7 +194,7 @@ int xen_overlay_map_shinfo_page(uint64_t gpa)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return -ENOENT;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (s-&gt;shinfo_gpa) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* If removing shinfo page, turn the kern=
el magic off first */<br>
diff --git a/hw/i386/kvm/xen_xenstore.c b/hw/i386/kvm/xen_xenstore.c<br>
index 6e651960b3..ae27889a3f 100644<br>
--- a/hw/i386/kvm/xen_xenstore.c<br>
+++ b/hw/i386/kvm/xen_xenstore.c<br>
@@ -1341,7 +1341,7 @@ static void fire_watch_cb(void *opaque, const char *p=
ath, const char *token)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0XenXenstoreState *s =3D opaque;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0/*<br>
=C2=A0 =C2=A0 =C2=A0 * If there&#39;s a response pending, we obviously can&=
#39;t scribble over<br>
diff --git a/hw/intc/arm_gicv3_cpuif.c b/hw/intc/arm_gicv3_cpuif.c<br>
index ab1a00508e..77c2a6dd3b 100644<br>
--- a/hw/intc/arm_gicv3_cpuif.c<br>
+++ b/hw/intc/arm_gicv3_cpuif.c<br>
@@ -934,7 +934,7 @@ void gicv3_cpuif_update(GICv3CPUState *cs)<br>
=C2=A0 =C2=A0 =C2=A0ARMCPU *cpu =3D ARM_CPU(cs-&gt;cpu);<br>
=C2=A0 =C2=A0 =C2=A0CPUARMState *env =3D &amp;cpu-&gt;env;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0trace_gicv3_cpuif_update(gicv3_redist_affid(cs), cs-&gt=
;hppi.irq,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 cs-&gt;hppi.grp, cs-&gt;hppi.prio);<br>
diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c<br>
index 74e02858d4..93b8531ad0 100644<br>
--- a/hw/intc/s390_flic.c<br>
+++ b/hw/intc/s390_flic.c<br>
@@ -106,7 +106,7 @@ static int qemu_s390_clear_io_flic(S390FLICState *fs, u=
int16_t subchannel_id,<br>
=C2=A0 =C2=A0 =C2=A0QEMUS390FlicIO *cur, *next;<br>
=C2=A0 =C2=A0 =C2=A0uint8_t isc;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0if (!(flic-&gt;pending &amp; FLIC_PENDING_IO)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -223,7 +223,7 @@ uint32_t qemu_s390_flic_dequeue_service(QEMUS390FLICSta=
te *flic)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0uint32_t tmp;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0g_assert(flic-&gt;pending &amp; FLIC_PENDING_SERVICE);<=
br>
=C2=A0 =C2=A0 =C2=A0tmp =3D flic-&gt;service_param;<br>
=C2=A0 =C2=A0 =C2=A0flic-&gt;service_param =3D 0;<br>
@@ -238,7 +238,7 @@ QEMUS390FlicIO *qemu_s390_flic_dequeue_io(QEMUS390FLICS=
tate *flic, uint64_t cr6)<br>
=C2=A0 =C2=A0 =C2=A0QEMUS390FlicIO *io;<br>
=C2=A0 =C2=A0 =C2=A0uint8_t isc;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0if (!(flic-&gt;pending &amp; CR6_TO_PENDING_IO(cr6))) {=
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -262,7 +262,7 @@ QEMUS390FlicIO *qemu_s390_flic_dequeue_io(QEMUS390FLICS=
tate *flic, uint64_t cr6)<br>
<br>
=C2=A0void qemu_s390_flic_dequeue_crw_mchk(QEMUS390FLICState *flic)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0g_assert(flic-&gt;pending &amp; FLIC_PENDING_MCHK_CR);<=
br>
=C2=A0 =C2=A0 =C2=A0flic-&gt;pending &amp;=3D ~FLIC_PENDING_MCHK_CR;<br>
=C2=A0}<br>
@@ -271,7 +271,7 @@ static void qemu_s390_inject_service(S390FLICState *fs,=
 uint32_t parm)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0QEMUS390FLICState *flic =3D s390_get_qemu_flic(fs);<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0/* multiplexing is good enough for sclp - kvm does it i=
nternally as well */<br>
=C2=A0 =C2=A0 =C2=A0flic-&gt;service_param |=3D parm;<br>
=C2=A0 =C2=A0 =C2=A0flic-&gt;pending |=3D FLIC_PENDING_SERVICE;<br>
@@ -287,7 +287,7 @@ static void qemu_s390_inject_io(S390FLICState *fs, uint=
16_t subchannel_id,<br>
=C2=A0 =C2=A0 =C2=A0QEMUS390FLICState *flic =3D s390_get_qemu_flic(fs);<br>
=C2=A0 =C2=A0 =C2=A0QEMUS390FlicIO *io;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0io =3D g_new0(QEMUS390FlicIO, 1);<br>
=C2=A0 =C2=A0 =C2=A0io-&gt;id =3D subchannel_id;<br>
=C2=A0 =C2=A0 =C2=A0io-&gt;nr =3D subchannel_nr;<br>
@@ -304,7 +304,7 @@ static void qemu_s390_inject_crw_mchk(S390FLICState *fs=
)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0QEMUS390FLICState *flic =3D s390_get_qemu_flic(fs);<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0flic-&gt;pending |=3D FLIC_PENDING_MCHK_CR;<br>
<br>
=C2=A0 =C2=A0 =C2=A0qemu_s390_flic_notify(FLIC_PENDING_MCHK_CR);<br>
@@ -330,7 +330,7 @@ bool qemu_s390_flic_has_crw_mchk(QEMUS390FLICState *fli=
c)<br>
<br>
=C2=A0bool qemu_s390_flic_has_any(QEMUS390FLICState *flic)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0return !!flic-&gt;pending;<br>
=C2=A0}<br>
<br>
@@ -340,7 +340,7 @@ static void qemu_s390_flic_reset(DeviceState *dev)<br>
=C2=A0 =C2=A0 =C2=A0QEMUS390FlicIO *cur, *next;<br>
=C2=A0 =C2=A0 =C2=A0int isc;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0flic-&gt;simm =3D 0;<br>
=C2=A0 =C2=A0 =C2=A0flic-&gt;nimm =3D 0;<br>
=C2=A0 =C2=A0 =C2=A0flic-&gt;pending =3D 0;<br>
diff --git a/hw/misc/edu.c b/hw/misc/edu.c<br>
index a1f8bc77e7..fa05bdd4f3 100644<br>
--- a/hw/misc/edu.c<br>
+++ b/hw/misc/edu.c<br>
@@ -355,9 +355,9 @@ static void *edu_fact_thread(void *opaque)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0smp_mb__after_rmw();<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (qatomic_read(&amp;edu-&gt;status) &am=
p; EDU_STATUS_IRQFACT) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0edu_raise_irq(edu, FACT_IRQ=
);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
diff --git a/hw/misc/imx6_src.c b/hw/misc/imx6_src.c<br>
index a9c64d06eb..2b9bb07540 100644<br>
--- a/hw/misc/imx6_src.c<br>
+++ b/hw/misc/imx6_src.c<br>
@@ -131,7 +131,7 @@ static void imx6_clear_reset_bit(CPUState *cpu, run_on_=
cpu_data data)<br>
=C2=A0 =C2=A0 =C2=A0struct SRCSCRResetInfo *ri =3D data.host_ptr;<br>
=C2=A0 =C2=A0 =C2=A0IMX6SRCState *s =3D ri-&gt;s;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0s-&gt;regs[SRC_SCR] =3D deposit32(s-&gt;regs[SRC_SCR], =
ri-&gt;reset_bit, 1, 0);<br>
=C2=A0 =C2=A0 =C2=A0DPRINTF(&quot;reg[%s] &lt;=3D 0x%&quot; PRIx32 &quot;\n=
&quot;,<br>
diff --git a/hw/misc/imx7_src.c b/hw/misc/imx7_src.c<br>
index 983251e86f..77ad7a7eef 100644<br>
--- a/hw/misc/imx7_src.c<br>
+++ b/hw/misc/imx7_src.c<br>
@@ -136,7 +136,7 @@ static void imx7_clear_reset_bit(CPUState *cpu, run_on_=
cpu_data data)<br>
=C2=A0 =C2=A0 =C2=A0struct SRCSCRResetInfo *ri =3D data.host_ptr;<br>
=C2=A0 =C2=A0 =C2=A0IMX7SRCState *s =3D ri-&gt;s;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0s-&gt;regs[SRC_A7RCR0] =3D deposit32(s-&gt;regs[SRC_A7R=
CR0], ri-&gt;reset_bit, 1, 0);<br>
<br>
diff --git a/hw/net/xen_nic.c b/hw/net/xen_nic.c<br>
index 1e2b3baeb1..453fdb9819 100644<br>
--- a/hw/net/xen_nic.c<br>
+++ b/hw/net/xen_nic.c<br>
@@ -133,7 +133,7 @@ static bool net_tx_packets(struct XenNetDev *netdev)<br=
>
=C2=A0 =C2=A0 =C2=A0void *page;<br>
=C2=A0 =C2=A0 =C2=A0void *tmpbuf =3D NULL;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0for (;;) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rc =3D netdev-&gt;tx_ring.req_cons;<br>
@@ -260,7 +260,7 @@ static ssize_t net_rx_packet(NetClientState *nc, const =
uint8_t *buf, size_t size<br>
=C2=A0 =C2=A0 =C2=A0RING_IDX rc, rp;<br>
=C2=A0 =C2=A0 =C2=A0void *page;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (xen_device_backend_get_state(&amp;netdev-&gt;xendev=
) !=3D XenbusStateConnected) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return -1;<br>
@@ -354,7 +354,7 @@ static bool xen_netdev_connect(XenDevice *xendev, Error=
 **errp)<br>
=C2=A0 =C2=A0 =C2=A0XenNetDev *netdev =3D XEN_NET_DEVICE(xendev);<br>
=C2=A0 =C2=A0 =C2=A0unsigned int port, rx_copy;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (xen_device_frontend_scanf(xendev, &quot;tx-ring-ref=
&quot;, &quot;%u&quot;,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&amp;netdev-&gt;tx_ring=
_ref) !=3D 1) {<br>
@@ -425,7 +425,7 @@ static void xen_netdev_disconnect(XenDevice *xendev, Er=
ror **errp)<br>
<br>
=C2=A0 =C2=A0 =C2=A0trace_xen_netdev_disconnect(netdev-&gt;dev);<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0netdev-&gt;tx_ring.sring =3D NULL;<br>
=C2=A0 =C2=A0 =C2=A0netdev-&gt;rx_ring.sring =3D NULL;<br>
diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c<br>
index 3203a4a728..d84f3f977d 100644<br>
--- a/hw/ppc/pegasos2.c<br>
+++ b/hw/ppc/pegasos2.c<br>
@@ -515,7 +515,7 @@ static void pegasos2_hypercall(PPCVirtualHypervisor *vh=
yp, PowerPCCPU *cpu)<br>
=C2=A0 =C2=A0 =C2=A0CPUPPCState *env =3D &amp;cpu-&gt;env;<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* The TCG path should also be holding the BQL at this =
point */<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (FIELD_EX64(env-&gt;msr, MSR, PR)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_log_mask(LOG_GUEST_ERROR, &quot;Hype=
rcall made with MSR[PR]=3D1\n&quot;);<br>
diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c<br>
index be167710a3..b6581c16fc 100644<br>
--- a/hw/ppc/ppc.c<br>
+++ b/hw/ppc/ppc.c<br>
@@ -314,7 +314,7 @@ void store_40x_dbcr0(CPUPPCState *env, uint32_t val)<br=
>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0PowerPCCPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0switch ((val &gt;&gt; 28) &amp; 0x3) {<br>
=C2=A0 =C2=A0 =C2=A0case 0x0:<br>
@@ -334,7 +334,7 @@ void store_40x_dbcr0(CPUPPCState *env, uint32_t val)<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0/* PowerPC 40x internal IRQ controller */<br>
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c<br>
index df09aa9d6a..0620912f9c 100644<br>
--- a/hw/ppc/spapr.c<br>
+++ b/hw/ppc/spapr.c<br>
@@ -1304,7 +1304,7 @@ static void emulate_spapr_hypercall(PPCVirtualHypervi=
sor *vhyp,<br>
=C2=A0 =C2=A0 =C2=A0CPUPPCState *env =3D &amp;cpu-&gt;env;<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* The TCG path should also be holding the BQL at this =
point */<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0g_assert(!vhyp_cpu_in_nested(cpu));<br>
<br>
diff --git a/hw/ppc/spapr_rng.c b/hw/ppc/spapr_rng.c<br>
index df5c4b9687..c2fda7ad20 100644<br>
--- a/hw/ppc/spapr_rng.c<br>
+++ b/hw/ppc/spapr_rng.c<br>
@@ -82,9 +82,9 @@ static target_ulong h_random(PowerPCCPU *cpu, SpaprMachin=
eState *spapr,<br>
=C2=A0 =C2=A0 =C2=A0while (hrdata.received &lt; 8) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rng_backend_request_entropy(rngstate-&gt;=
backend, 8 - hrdata.received,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0random_recv, &am=
p;hrdata);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_sem_wait(&amp;hrdata.sem);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0qemu_sem_destroy(&amp;hrdata.sem);<br>
diff --git a/hw/ppc/spapr_softmmu.c b/hw/ppc/spapr_softmmu.c<br>
index 278666317e..fc1bbc0b61 100644<br>
--- a/hw/ppc/spapr_softmmu.c<br>
+++ b/hw/ppc/spapr_softmmu.c<br>
@@ -334,7 +334,7 @@ static void *hpt_prepare_thread(void *opaque)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pending-&gt;ret =3D H_NO_MEM;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (SPAPR_MACHINE(qdev_get_machine())-&gt;pending_hpt =
=3D=3D pending) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Ready to go */<br>
@@ -344,7 +344,7 @@ static void *hpt_prepare_thread(void *opaque)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0free_pending_hpt(pending);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0}<br>
<br>
diff --git a/hw/remote/mpqemu-link.c b/hw/remote/mpqemu-link.c<br>
index 9bd98e8219..d04ac93621 100644<br>
--- a/hw/remote/mpqemu-link.c<br>
+++ b/hw/remote/mpqemu-link.c<br>
@@ -33,7 +33,7 @@<br>
=C2=A0 */<br>
=C2=A0bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)<b=
r>
=C2=A0{<br>
-=C2=A0 =C2=A0 bool iolock =3D qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 bool drop_bql =3D bql_locked();<br>
=C2=A0 =C2=A0 =C2=A0bool iothread =3D qemu_in_iothread();<br>
=C2=A0 =C2=A0 =C2=A0struct iovec send[2] =3D {};<br>
=C2=A0 =C2=A0 =C2=A0int *fds =3D NULL;<br>
@@ -63,8 +63,8 @@ bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Err=
or **errp)<br>
=C2=A0 =C2=A0 =C2=A0 * for IOThread case.<br>
=C2=A0 =C2=A0 =C2=A0 * Also skip lock handling while in a co-routine in the=
 main context.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 if (iolock &amp;&amp; !iothread &amp;&amp; !qemu_in_coroutin=
e()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 if (drop_bql &amp;&amp; !iothread &amp;&amp; !qemu_in_corout=
ine()) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!qio_channel_writev_full_all(ioc, send, G_N_ELEMENT=
S(send),<br>
@@ -74,9 +74,9 @@ bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Err=
or **errp)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0trace_mpqemu_send_io_error(msg-&gt;cmd, m=
sg-&gt;size, nfds);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 if (iolock &amp;&amp; !iothread &amp;&amp; !qemu_in_coroutin=
e()) {<br>
+=C2=A0 =C2=A0 if (drop_bql &amp;&amp; !iothread &amp;&amp; !qemu_in_corout=
ine()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* See above comment why skip locking her=
e. */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
@@ -96,7 +96,7 @@ static ssize_t mpqemu_read(QIOChannel *ioc, void *buf, si=
ze_t len, int **fds,<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 size_t *nfds, Error **errp)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0struct iovec iov =3D { .iov_base =3D buf, .iov_len =3D =
len };<br>
-=C2=A0 =C2=A0 bool iolock =3D qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 bool drop_bql =3D bql_locked();<br>
=C2=A0 =C2=A0 =C2=A0bool iothread =3D qemu_in_iothread();<br>
=C2=A0 =C2=A0 =C2=A0int ret =3D -1;<br>
<br>
@@ -106,14 +106,14 @@ static ssize_t mpqemu_read(QIOChannel *ioc, void *buf=
, size_t len, int **fds,<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0assert(qemu_in_coroutine() || !iothread);<br>
<br>
-=C2=A0 =C2=A0 if (iolock &amp;&amp; !iothread &amp;&amp; !qemu_in_coroutin=
e()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 if (drop_bql &amp;&amp; !iothread &amp;&amp; !qemu_in_corout=
ine()) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0ret =3D qio_channel_readv_full_all_eof(ioc, &amp;iov, 1=
, fds, nfds, errp);<br>
<br>
-=C2=A0 =C2=A0 if (iolock &amp;&amp; !iothread &amp;&amp; !qemu_in_coroutin=
e()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 if (drop_bql &amp;&amp; !iothread &amp;&amp; !qemu_in_corout=
ine()) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0return (ret &lt;=3D 0) ? ret : iov.iov_len;<br>
diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c<br>
index 8b10c32a3c..d9b879e056 100644<br>
--- a/hw/remote/vfio-user-obj.c<br>
+++ b/hw/remote/vfio-user-obj.c<br>
@@ -400,7 +400,7 @@ static int vfu_object_mr_rw(MemoryRegion *mr, uint8_t *=
buf, hwaddr offset,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0release_lock =3D false;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c<br>
index 8f5159d85d..5c535d483e 100644<br>
--- a/hw/s390x/s390-skeys.c<br>
+++ b/hw/s390x/s390-skeys.c<br>
@@ -153,7 +153,7 @@ void qmp_dump_skeys(const char *filename, Error **errp)=
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto out;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0guest_phys_blocks_init(&amp;guest_phys_blocks);<br>
=C2=A0 =C2=A0 =C2=A0guest_phys_blocks_append(&amp;guest_phys_blocks);<br>
<br>
diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.=
c<br>
index 24347ab0f7..92e031b6fa 100644<br>
--- a/migration/block-dirty-bitmap.c<br>
+++ b/migration/block-dirty-bitmap.c<br>
@@ -774,7 +774,7 @@ static void dirty_bitmap_state_pending(void *opaque,<br=
>
=C2=A0 =C2=A0 =C2=A0SaveBitmapState *dbms;<br>
=C2=A0 =C2=A0 =C2=A0uint64_t pending =3D 0;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0QSIMPLEQ_FOREACH(dbms, &amp;s-&gt;dbms_list, entry) {<b=
r>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uint64_t gran =3D bdrv_dirty_bitmap_granu=
larity(dbms-&gt;bitmap);<br>
@@ -784,7 +784,7 @@ static void dirty_bitmap_state_pending(void *opaque,<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pending +=3D DIV_ROUND_UP(sectors * BDRV_=
SECTOR_SIZE, gran);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0trace_dirty_bitmap_state_pending(pending);<br>
<br>
diff --git a/migration/block.c b/migration/block.c<br>
index a15f9bddcb..4a675b92bc 100644<br>
--- a/migration/block.c<br>
+++ b/migration/block.c<br>
@@ -269,7 +269,7 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevS=
tate *bmds)<br>
=C2=A0 =C2=A0 =C2=A0int64_t count;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (bmds-&gt;shared_base) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0aio_context_acquire(blk_get_aio_context(b=
b));<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Skip unallocated sectors; intentionall=
y treats failure or<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * partial sector as an allocated sector =
*/<br>
@@ -282,7 +282,7 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevS=
tate *bmds)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cur_sector +=3D count &gt;&=
gt; BDRV_SECTOR_BITS;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0aio_context_release(blk_get_aio_context(b=
b));<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (cur_sector &gt;=3D total_sectors) {<br>
@@ -321,14 +321,14 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDe=
vState *bmds)<br>
=C2=A0 =C2=A0 =C2=A0 * This is ugly and will disappear when we make bdrv_* =
thread-safe,<br>
=C2=A0 =C2=A0 =C2=A0 * without the need to acquire the AioContext.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0aio_context_acquire(blk_get_aio_context(bmds-&gt;blk));=
<br>
=C2=A0 =C2=A0 =C2=A0bdrv_reset_dirty_bitmap(bmds-&gt;dirty_bitmap, cur_sect=
or * BDRV_SECTOR_SIZE,<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=A0nr_sectors * BDRV_SECTOR_SIZE);<br>
=C2=A0 =C2=A0 =C2=A0blk-&gt;aiocb =3D blk_aio_preadv(bb, cur_sector * BDRV_=
SECTOR_SIZE, &amp;blk-&gt;qiov,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00, blk_mig_read_cb, blk);<br>
=C2=A0 =C2=A0 =C2=A0aio_context_release(blk_get_aio_context(bmds-&gt;blk));=
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0bmds-&gt;cur_sector =3D cur_sector + nr_sectors;<br>
=C2=A0 =C2=A0 =C2=A0return (bmds-&gt;cur_sector &gt;=3D total_sectors);<br>
@@ -786,9 +786,9 @@ static int block_save_iterate(QEMUFile *f, void *opaque=
)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Always called with iothr=
ead lock taken for<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * simplicity, block_save_c=
omplete also calls it.<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D blk_mig_save_dirty_=
block(f, 1);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (ret &lt; 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return ret;<br>
@@ -860,9 +860,9 @@ static void block_state_pending(void *opaque, uint64_t =
*must_precopy,<br>
=C2=A0 =C2=A0 =C2=A0/* Estimate pending number of bytes to send */<br>
=C2=A0 =C2=A0 =C2=A0uint64_t pending;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0pending =3D get_remaining_dirty();<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0blk_mig_lock();<br>
=C2=A0 =C2=A0 =C2=A0pending +=3D block_mig_state.submitted * BLK_MIG_BLOCK_=
SIZE +<br>
diff --git a/migration/colo.c b/migration/colo.c<br>
index 4447e34914..2a74efdd77 100644<br>
--- a/migration/colo.c<br>
+++ b/migration/colo.c<br>
@@ -420,13 +420,13 @@ static int colo_do_checkpoint_transaction(MigrationSt=
ate *s,<br>
=C2=A0 =C2=A0 =C2=A0qio_channel_io_seek(QIO_CHANNEL(bioc), 0, 0, NULL);<br>
=C2=A0 =C2=A0 =C2=A0bioc-&gt;usage =3D 0;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0if (failover_get_state() !=3D FAILOVER_STATUS_NONE) {<b=
r>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto out;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0vm_stop_force_state(RUN_STATE_COLO);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0trace_colo_vm_state_change(&quot;run&quot;, &quot;stop&=
quot;);<br>
=C2=A0 =C2=A0 =C2=A0/*<br>
=C2=A0 =C2=A0 =C2=A0 * Failover request bh could be called after vm_stop_fo=
rce_state(),<br>
@@ -435,23 +435,23 @@ static int colo_do_checkpoint_transaction(MigrationSt=
ate *s,<br>
=C2=A0 =C2=A0 =C2=A0if (failover_get_state() !=3D FAILOVER_STATUS_NONE) {<b=
r>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto out;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0replication_do_checkpoint_all(&amp;local_err);<br>
=C2=A0 =C2=A0 =C2=A0if (local_err) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto out;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0colo_send_message(s-&gt;to_dst_file, COLO_MESSAGE_VMSTA=
TE_SEND, &amp;local_err);<br>
=C2=A0 =C2=A0 =C2=A0if (local_err) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto out;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0/* Note: device state is saved into buffer */<br>
=C2=A0 =C2=A0 =C2=A0ret =3D qemu_save_device_state(fb);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0if (ret &lt; 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto out;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -504,9 +504,9 @@ static int colo_do_checkpoint_transaction(MigrationStat=
e *s,<br>
<br>
=C2=A0 =C2=A0 =C2=A0ret =3D 0;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0vm_start();<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0trace_colo_vm_state_change(&quot;stop&quot;, &quot;run&=
quot;);<br>
<br>
=C2=A0out:<br>
@@ -557,15 +557,15 @@ static void colo_process_checkpoint(MigrationState *s=
)<br>
=C2=A0 =C2=A0 =C2=A0fb =3D qemu_file_new_output(QIO_CHANNEL(bioc));<br>
=C2=A0 =C2=A0 =C2=A0object_unref(OBJECT(bioc));<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0replication_start_all(REPLICATION_MODE_PRIMARY, &amp;lo=
cal_err);<br>
=C2=A0 =C2=A0 =C2=A0if (local_err) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto out;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0vm_start();<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0trace_colo_vm_state_change(&quot;stop&quot;, &quot;run&=
quot;);<br>
<br>
=C2=A0 =C2=A0 =C2=A0timer_mod(s-&gt;colo_delay_timer, qemu_clock_get_ms(QEM=
U_CLOCK_HOST) +<br>
@@ -639,14 +639,14 @@ out:<br>
<br>
=C2=A0void migrate_start_colo_process(MigrationState *s)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_event_init(&amp;s-&gt;colo_checkpoint_event, false=
);<br>
=C2=A0 =C2=A0 =C2=A0s-&gt;colo_delay_timer =3D=C2=A0 timer_new_ms(QEMU_CLOC=
K_HOST,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0colo_checkpoint_notify, s);<br=
>
<br>
=C2=A0 =C2=A0 =C2=A0qemu_sem_init(&amp;s-&gt;colo_exit_sem, 0);<br>
=C2=A0 =C2=A0 =C2=A0colo_process_checkpoint(s);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0}<br>
<br>
=C2=A0static void colo_incoming_process_checkpoint(MigrationIncomingState *=
mis,<br>
@@ -657,9 +657,9 @@ static void colo_incoming_process_checkpoint(MigrationI=
ncomingState *mis,<br>
=C2=A0 =C2=A0 =C2=A0Error *local_err =3D NULL;<br>
=C2=A0 =C2=A0 =C2=A0int ret;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0vm_stop_force_state(RUN_STATE_COLO);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0trace_colo_vm_state_change(&quot;run&quot;, &quot;stop&=
quot;);<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* FIXME: This is unnecessary for periodic checkpoint m=
ode */<br>
@@ -677,10 +677,10 @@ static void colo_incoming_process_checkpoint(Migratio=
nIncomingState *mis,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0cpu_synchronize_all_states();<br>
=C2=A0 =C2=A0 =C2=A0ret =3D qemu_loadvm_state_main(mis-&gt;from_src_file, m=
is);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (ret &lt; 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_setg(errp, &quot;Load VM&#39;s live=
 state (ram) error&quot;);<br>
@@ -719,14 +719,14 @@ static void colo_incoming_process_checkpoint(Migratio=
nIncomingState *mis,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0vmstate_loading =3D true;<br>
=C2=A0 =C2=A0 =C2=A0colo_flush_ram_cache();<br>
=C2=A0 =C2=A0 =C2=A0ret =3D qemu_load_device_state(fb);<br>
=C2=A0 =C2=A0 =C2=A0if (ret &lt; 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_setg(errp, &quot;COLO: load device =
state failed&quot;);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vmstate_loading =3D false;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -734,7 +734,7 @@ static void colo_incoming_process_checkpoint(MigrationI=
ncomingState *mis,<br>
=C2=A0 =C2=A0 =C2=A0if (local_err) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_propagate(errp, local_err);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vmstate_loading =3D false;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -743,7 +743,7 @@ static void colo_incoming_process_checkpoint(MigrationI=
ncomingState *mis,<br>
=C2=A0 =C2=A0 =C2=A0if (local_err) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_propagate(errp, local_err);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vmstate_loading =3D false;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0/* Notify all filters of all NIC to do checkpoint */<br=
>
@@ -752,13 +752,13 @@ static void colo_incoming_process_checkpoint(Migratio=
nIncomingState *mis,<br>
=C2=A0 =C2=A0 =C2=A0if (local_err) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_propagate(errp, local_err);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vmstate_loading =3D false;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0vmstate_loading =3D false;<br>
=C2=A0 =C2=A0 =C2=A0vm_start();<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0trace_colo_vm_state_change(&quot;stop&quot;, &quot;run&=
quot;);<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (failover_get_state() =3D=3D FAILOVER_STATUS_RELAUNC=
H) {<br>
@@ -851,14 +851,14 @@ static void *colo_process_incoming_thread(void *opaqu=
e)<br>
=C2=A0 =C2=A0 =C2=A0fb =3D qemu_file_new_input(QIO_CHANNEL(bioc));<br>
=C2=A0 =C2=A0 =C2=A0object_unref(OBJECT(bioc));<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0replication_start_all(REPLICATION_MODE_SECONDARY, &amp;=
local_err);<br>
=C2=A0 =C2=A0 =C2=A0if (local_err) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto out;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0vm_start();<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0trace_colo_vm_state_change(&quot;stop&quot;, &quot;run&=
quot;);<br>
<br>
=C2=A0 =C2=A0 =C2=A0colo_send_message(mis-&gt;to_src_file, COLO_MESSAGE_CHE=
CKPOINT_READY,<br>
@@ -920,7 +920,7 @@ int coroutine_fn colo_incoming_co(void)<br>
=C2=A0 =C2=A0 =C2=A0Error *local_err =3D NULL;<br>
=C2=A0 =C2=A0 =C2=A0QemuThread th;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!migration_incoming_colo_enabled()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;<br>
@@ -940,10 +940,10 @@ int coroutine_fn colo_incoming_co(void)<br>
=C2=A0 =C2=A0 =C2=A0qemu_coroutine_yield();<br>
=C2=A0 =C2=A0 =C2=A0mis-&gt;colo_incoming_co =3D NULL;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0/* Wait checkpoint incoming thread exit before free res=
ource */<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_join(&amp;th);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* We hold the global iothread lock, so it is safe here=
 */<br>
=C2=A0 =C2=A0 =C2=A0colo_release_ram_cache();<br>
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c<br>
index 036ac017fc..429d10c4d9 100644<br>
--- a/migration/dirtyrate.c<br>
+++ b/migration/dirtyrate.c<br>
@@ -90,13 +90,13 @@ static int64_t do_calculate_dirtyrate(DirtyPageRecord d=
irty_pages,<br>
<br>
=C2=A0void global_dirty_log_change(unsigned int flag, bool start)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0if (start) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0memory_global_dirty_log_start(flag);<br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0memory_global_dirty_log_stop(flag);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0/*<br>
@@ -106,12 +106,12 @@ void global_dirty_log_change(unsigned int flag, bool =
start)<br>
=C2=A0 */<br>
=C2=A0static void global_dirty_log_sync(unsigned int flag, bool one_shot)<b=
r>
=C2=A0{<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0memory_global_dirty_log_sync(false);<br>
=C2=A0 =C2=A0 =C2=A0if (one_shot) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0memory_global_dirty_log_stop(flag);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0static DirtyPageRecord *vcpu_dirty_stat_alloc(VcpuStat *stat)<br>
@@ -610,7 +610,7 @@ static void calculate_dirtyrate_dirty_bitmap(struct Dir=
tyRateConfig config)<br>
=C2=A0 =C2=A0 =C2=A0int64_t start_time;<br>
=C2=A0 =C2=A0 =C2=A0DirtyPageRecord dirty_pages;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0memory_global_dirty_log_start(GLOBAL_DIRTY_DIRTY_RATE);=
<br>
<br>
=C2=A0 =C2=A0 =C2=A0/*<br>
@@ -627,7 +627,7 @@ static void calculate_dirtyrate_dirty_bitmap(struct Dir=
tyRateConfig config)<br>
=C2=A0 =C2=A0 =C2=A0 * KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE cap is enabled.<=
br>
=C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0dirtyrate_manual_reset_protect();<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0record_dirtypages_bitmap(&amp;dirty_pages, true);<br>
<br>
diff --git a/migration/migration.c b/migration/migration.c<br>
index 3ce04b2aaf..be74c714d6 100644<br>
--- a/migration/migration.c<br>
+++ b/migration/migration.c<br>
@@ -1294,12 +1294,12 @@ static void migrate_fd_cleanup(MigrationState *s)<b=
r>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0QEMUFile *tmp;<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0trace_migrate_fd_cleanup();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (s-&gt;migration_thread_running) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_thread_join(&amp;s-&gt=
;thread);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0s-&gt;migration_thread_runn=
ing =3D false;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0multifd_save_cleanup();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_mutex_lock(&amp;s-&gt;qemu_file_lock=
);<br>
@@ -2411,7 +2411,7 @@ static int postcopy_start(MigrationState *ms, Error *=
*errp)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0trace_postcopy_start();<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0trace_postcopy_start_set_run();<br>
<br>
=C2=A0 =C2=A0 =C2=A0migration_downtime_start(ms);<br>
@@ -2520,7 +2520,7 @@ static int postcopy_start(MigrationState *ms, Error *=
*errp)<br>
<br>
=C2=A0 =C2=A0 =C2=A0migration_downtime_end(ms);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (migrate_postcopy_ram()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/*<br>
@@ -2561,7 +2561,7 @@ fail:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_report_err(local_err)=
;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0return -1;<br>
=C2=A0}<br>
<br>
@@ -2595,14 +2595,14 @@ static int migration_maybe_pause(MigrationState *s,=
<br>
=C2=A0 =C2=A0 =C2=A0 * wait for the &#39;pause_sem&#39; semaphore.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0if (s-&gt;state !=3D MIGRATION_STATUS_CANCELLING) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0migrate_set_state(&amp;s-&gt;state, *curr=
ent_active_state,<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=A0MIGRATION_STATUS_PRE_SWITCHOVER);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_sem_wait(&amp;s-&gt;pause_sem);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0migrate_set_state(&amp;s-&gt;state, MIGRA=
TION_STATUS_PRE_SWITCHOVER,<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=A0new_state);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*current_active_state =3D new_state;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0return s-&gt;state =3D=3D new_state ? 0 : -EINVAL;<br>
@@ -2613,7 +2613,7 @@ static int migration_completion_precopy(MigrationStat=
e *s,<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0int ret;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0migration_downtime_start(s);<br>
=C2=A0 =C2=A0 =C2=A0qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER, NU=
LL);<br>
<br>
@@ -2641,7 +2641,7 @@ static int migration_completion_precopy(MigrationStat=
e *s,<br>
=C2=A0 =C2=A0 =C2=A0ret =3D qemu_savevm_state_complete_precopy(s-&gt;to_dst=
_file, false,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 s-&gt;block_inactive);<br>
=C2=A0out_unlock:<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
=C2=A0}<br>
<br>
@@ -2649,9 +2649,9 @@ static void migration_completion_postcopy(MigrationSt=
ate *s)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0trace_migration_completion_postcopy_end();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_savevm_state_complete_postcopy(s-&gt;to_dst_file);=
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0/*<br>
=C2=A0 =C2=A0 =C2=A0 * Shutdown the postcopy fast path thread.=C2=A0 This i=
s only needed when dest<br>
@@ -2675,14 +2675,14 @@ static void migration_completion_failed(MigrationSt=
ate *s,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Error *local_err =3D NULL;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bdrv_activate_all(&amp;local_err);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (local_err) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_report_err(local_err)=
;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0s-&gt;block_inactive =3D fa=
lse;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0migrate_set_state(&amp;s-&gt;state, current_active_stat=
e,<br>
@@ -3122,7 +3122,7 @@ static void migration_iteration_finish(MigrationState=
 *s)<br>
=C2=A0 =C2=A0 =C2=A0/* If we enabled cpu throttling for auto-converge, turn=
 it off. */<br>
=C2=A0 =C2=A0 =C2=A0cpu_throttle_stop();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0switch (s-&gt;state) {<br>
=C2=A0 =C2=A0 =C2=A0case MIGRATION_STATUS_COMPLETED:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0migration_calculate_complete(s);<br>
@@ -3153,7 +3153,7 @@ static void migration_iteration_finish(MigrationState=
 *s)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0migrate_fd_cleanup_schedule(s);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0static void bg_migration_iteration_finish(MigrationState *s)<br>
@@ -3165,7 +3165,7 @@ static void bg_migration_iteration_finish(MigrationSt=
ate *s)<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0ram_write_tracking_stop();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0switch (s-&gt;state) {<br>
=C2=A0 =C2=A0 =C2=A0case MIGRATION_STATUS_COMPLETED:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0migration_calculate_complete(s);<br>
@@ -3184,7 +3184,7 @@ static void bg_migration_iteration_finish(MigrationSt=
ate *s)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0migrate_fd_cleanup_schedule(s);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0/*<br>
@@ -3306,9 +3306,9 @@ static void *migration_thread(void *opaque)<br>
=C2=A0 =C2=A0 =C2=A0object_ref(OBJECT(s));<br>
=C2=A0 =C2=A0 =C2=A0update_iteration_initial_status(s);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_savevm_state_header(s-&gt;to_dst_file);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0/*<br>
=C2=A0 =C2=A0 =C2=A0 * If we opened the return path, we need to make sure d=
st has it<br>
@@ -3336,9 +3336,9 @@ static void *migration_thread(void *opaque)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_savevm_send_colo_enable(s-&gt;to_dst=
_file);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_savevm_state_setup(s-&gt;to_dst_file);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 MIGRATION_STATUS_ACTIVE);<br>
@@ -3449,10 +3449,10 @@ static void *bg_migration_thread(void *opaque)<br>
=C2=A0 =C2=A0 =C2=A0ram_write_tracking_prepare();<br>
=C2=A0#endif<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_savevm_state_header(s-&gt;to_dst_file);<br>
=C2=A0 =C2=A0 =C2=A0qemu_savevm_state_setup(s-&gt;to_dst_file);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0qemu_savevm_wait_unplug(s, MIGRATION_STATUS_SETUP,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 MIGRATION_STATUS_ACTIVE);<br>
@@ -3462,7 +3462,7 @@ static void *bg_migration_thread(void *opaque)<br>
=C2=A0 =C2=A0 =C2=A0trace_migration_thread_setup_complete();<br>
=C2=A0 =C2=A0 =C2=A0migration_downtime_start(s);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0/*<br>
=C2=A0 =C2=A0 =C2=A0 * If VM is currently in suspended state, then, to make=
 a valid runstate<br>
@@ -3505,7 +3505,7 @@ static void *bg_migration_thread(void *opaque)<br>
=C2=A0 =C2=A0 =C2=A0s-&gt;vm_start_bh =3D qemu_bh_new(bg_migration_vm_start=
_bh, s);<br>
=C2=A0 =C2=A0 =C2=A0qemu_bh_schedule(s-&gt;vm_start_bh);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0while (migration_is_active(s)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0MigIterateState iter_state =3D bg_migrati=
on_iteration_run(s);<br>
@@ -3534,7 +3534,7 @@ fail:<br>
=C2=A0 =C2=A0 =C2=A0if (early_fail) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0migrate_set_state(&amp;s-&gt;state, MIGRA=
TION_STATUS_ACTIVE,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0MIGRATION_STA=
TUS_FAILED);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0bg_migration_iteration_finish(s);<br>
diff --git a/migration/ram.c b/migration/ram.c<br>
index 8c7886ab79..08dc7e2909 100644<br>
--- a/migration/ram.c<br>
+++ b/migration/ram.c<br>
@@ -2984,9 +2984,9 @@ static int ram_save_setup(QEMUFile *f, void *opaque)<=
br>
=C2=A0 =C2=A0 =C2=A0migration_ops =3D g_malloc0(sizeof(MigrationOps));<br>
=C2=A0 =C2=A0 =C2=A0migration_ops-&gt;ram_save_target_page =3D ram_save_tar=
get_page_legacy;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0ret =3D multifd_send_sync_main(f);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0if (ret &lt; 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return ret;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -3221,11 +3221,11 @@ static void ram_state_pending_exact(void *opaque, u=
int64_t *must_precopy,<br>
=C2=A0 =C2=A0 =C2=A0uint64_t remaining_size =3D rs-&gt;migration_dirty_page=
s * TARGET_PAGE_SIZE;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!migration_in_postcopy() &amp;&amp; remaining_size =
&lt; s-&gt;threshold_size) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0WITH_RCU_READ_LOCK_GUARD() {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0migration_bitmap_sync_preco=
py(rs, false);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0remaining_size =3D rs-&gt;migration_dirty=
_pages * TARGET_PAGE_SIZE;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -3453,7 +3453,7 @@ void colo_incoming_start_dirty_log(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0RAMBlock *block =3D NULL;<br>
=C2=A0 =C2=A0 =C2=A0/* For memory_global_dirty_log_start below. */<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_mutex_lock_ramlist();<br>
<br>
=C2=A0 =C2=A0 =C2=A0memory_global_dirty_log_sync(false);<br>
@@ -3467,7 +3467,7 @@ void colo_incoming_start_dirty_log(void)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0ram_state-&gt;migration_dirty_pages =3D 0;<br>
=C2=A0 =C2=A0 =C2=A0qemu_mutex_unlock_ramlist();<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0/* It is need to hold the global lock to call this helper */<br>
diff --git a/replay/replay-internal.c b/replay/replay-internal.c<br>
index 77d0c82327..3e08e381cb 100644<br>
--- a/replay/replay-internal.c<br>
+++ b/replay/replay-internal.c<br>
@@ -216,7 +216,7 @@ void replay_mutex_lock(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0if (replay_mode !=3D REPLAY_MODE_NONE) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0unsigned long id;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 g_assert(!qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 g_assert(!bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0g_assert(!replay_mutex_locked());<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_mutex_lock(&amp;lock);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0id =3D mutex_tail++;<br>
diff --git a/semihosting/console.c b/semihosting/console.c<br>
index 5d61e8207e..60102bbab6 100644<br>
--- a/semihosting/console.c<br>
+++ b/semihosting/console.c<br>
@@ -43,7 +43,7 @@ static SemihostingConsole console;<br>
=C2=A0static int console_can_read(void *opaque)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0SemihostingConsole *c =3D opaque;<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0return (int)fifo8_num_free(&amp;c-&gt;fifo);<br>
=C2=A0}<br>
<br>
@@ -58,7 +58,7 @@ static void console_wake_up(gpointer data, gpointer user_=
data)<br>
=C2=A0static void console_read(void *opaque, const uint8_t *buf, int size)<=
br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0SemihostingConsole *c =3D opaque;<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0while (size-- &amp;&amp; !fifo8_is_full(&amp;c-&gt;fifo=
)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fifo8_push(&amp;c-&gt;fifo, *buf++);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -70,7 +70,7 @@ bool qemu_semihosting_console_ready(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0SemihostingConsole *c =3D &amp;console;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0return !fifo8_is_empty(&amp;c-&gt;fifo);<br>
=C2=A0}<br>
<br>
@@ -78,7 +78,7 @@ void qemu_semihosting_console_block_until_ready(CPUState =
*cs)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0SemihostingConsole *c =3D &amp;console;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Block if the fifo is completely empty. */<br>
=C2=A0 =C2=A0 =C2=A0if (fifo8_is_empty(&amp;c-&gt;fifo)) {<br>
diff --git a/stubs/iothread-lock.c b/stubs/iothread-lock.c<br>
index 5b45b7fc8b..d7890e5581 100644<br>
--- a/stubs/iothread-lock.c<br>
+++ b/stubs/iothread-lock.c<br>
@@ -1,15 +1,15 @@<br>
=C2=A0#include &quot;qemu/osdep.h&quot;<br>
=C2=A0#include &quot;qemu/main-loop.h&quot;<br>
<br>
-bool qemu_mutex_iothread_locked(void)<br>
+bool bql_locked(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0return false;<br>
=C2=A0}<br>
<br>
-void qemu_mutex_lock_iothread_impl(const char *file, int line)<br>
+void bql_lock_impl(const char *file, int line)<br>
=C2=A0{<br>
=C2=A0}<br>
<br>
-void qemu_mutex_unlock_iothread(void)<br>
+void bql_unlock(void)<br>
=C2=A0{<br>
=C2=A0}<br>
diff --git a/system/cpu-throttle.c b/system/cpu-throttle.c<br>
index d9bb30a223..786a9a5639 100644<br>
--- a/system/cpu-throttle.c<br>
+++ b/system/cpu-throttle.c<br>
@@ -57,9 +57,9 @@ static void cpu_throttle_thread(CPUState *cpu, run_on_cpu=
_data opaque)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_cond_timedwait_iothrea=
d(cpu-&gt;halt_cond,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 s=
leeptime_ns / SCALE_MS);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0g_usleep(sleeptime_ns / SCA=
LE_US);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sleeptime_ns =3D endtime_ns - qemu_clock_=
get_ns(QEMU_CLOCK_REALTIME);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
diff --git a/system/cpus.c b/system/cpus.c<br>
index a444a747f0..9b68dc9c7c 100644<br>
--- a/system/cpus.c<br>
+++ b/system/cpus.c<br>
@@ -65,7 +65,8 @@<br>
<br>
=C2=A0#endif /* CONFIG_LINUX */<br>
<br>
-static QemuMutex qemu_global_mutex;<br>
+/* The Big QEMU Lock (BQL) */<br>
+static QemuMutex bql;<br>
<br>
=C2=A0/*<br>
=C2=A0 * The chosen accelerator is supposed to register this.<br>
@@ -389,14 +390,14 @@ void qemu_init_cpu_loop(void)<br>
=C2=A0 =C2=A0 =C2=A0qemu_init_sigbus();<br>
=C2=A0 =C2=A0 =C2=A0qemu_cond_init(&amp;qemu_cpu_cond);<br>
=C2=A0 =C2=A0 =C2=A0qemu_cond_init(&amp;qemu_pause_cond);<br>
-=C2=A0 =C2=A0 qemu_mutex_init(&amp;qemu_global_mutex);<br>
+=C2=A0 =C2=A0 qemu_mutex_init(&amp;bql);<br>
<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_get_self(&amp;io_thread);<br>
=C2=A0}<br>
<br>
=C2=A0void run_on_cpu(CPUState *cpu, run_on_cpu_func func, run_on_cpu_data =
data)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 do_run_on_cpu(cpu, func, data, &amp;qemu_global_mutex);<br>
+=C2=A0 =C2=A0 do_run_on_cpu(cpu, func, data, &amp;bql);<br>
=C2=A0}<br>
<br>
=C2=A0static void qemu_cpu_stop(CPUState *cpu, bool exit)<br>
@@ -428,7 +429,7 @@ void qemu_wait_io_event(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0slept =3D true;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_plugin_vcpu_idle_cb(cp=
u);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_cond_wait(cpu-&gt;halt_cond, &amp;qemu_gl=
obal_mutex);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_cond_wait(cpu-&gt;halt_cond, &amp;bql);<b=
r>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (slept) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_plugin_vcpu_resume_cb(cpu);<br>
@@ -481,46 +482,46 @@ bool qemu_in_vcpu_thread(void)<br>
=C2=A0 =C2=A0 =C2=A0return current_cpu &amp;&amp; qemu_cpu_is_self(current_=
cpu);<br>
=C2=A0}<br>
<br>
-QEMU_DEFINE_STATIC_CO_TLS(bool, iothread_locked)<br>
+QEMU_DEFINE_STATIC_CO_TLS(bool, bql_locked)<br>
<br>
-bool qemu_mutex_iothread_locked(void)<br>
+bool bql_locked(void)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 return get_iothread_locked();<br>
+=C2=A0 =C2=A0 return get_bql_locked();<br>
=C2=A0}<br>
<br>
=C2=A0bool qemu_in_main_thread(void)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 return qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 return bql_locked();<br>
=C2=A0}<br>
<br>
=C2=A0/*<br>
=C2=A0 * The BQL is taken from so many places that it is worth profiling th=
e<br>
=C2=A0 * callers directly, instead of funneling them all through a single f=
unction.<br>
=C2=A0 */<br>
-void qemu_mutex_lock_iothread_impl(const char *file, int line)<br>
+void bql_lock_impl(const char *file, int line)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 QemuMutexLockFunc bql_lock =3D qatomic_read(&amp;qemu_bql_mu=
tex_lock_func);<br>
+=C2=A0 =C2=A0 QemuMutexLockFunc bql_lock_fn =3D qatomic_read(&amp;bql_mute=
x_lock_func);<br>
<br>
-=C2=A0 =C2=A0 g_assert(!qemu_mutex_iothread_locked());<br>
-=C2=A0 =C2=A0 bql_lock(&amp;qemu_global_mutex, file, line);<br>
-=C2=A0 =C2=A0 set_iothread_locked(true);<br>
+=C2=A0 =C2=A0 g_assert(!bql_locked());<br>
+=C2=A0 =C2=A0 bql_lock_fn(&amp;bql, file, line);<br>
+=C2=A0 =C2=A0 set_bql_locked(true);<br>
=C2=A0}<br>
<br>
-void qemu_mutex_unlock_iothread(void)<br>
+void bql_unlock(void)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
-=C2=A0 =C2=A0 set_iothread_locked(false);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock(&amp;qemu_global_mutex);<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
+=C2=A0 =C2=A0 set_bql_locked(false);<br>
+=C2=A0 =C2=A0 qemu_mutex_unlock(&amp;bql);<br>
=C2=A0}<br>
<br>
=C2=A0void qemu_cond_wait_iothread(QemuCond *cond)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 qemu_cond_wait(cond, &amp;qemu_global_mutex);<br>
+=C2=A0 =C2=A0 qemu_cond_wait(cond, &amp;bql);<br>
=C2=A0}<br>
<br>
=C2=A0void qemu_cond_timedwait_iothread(QemuCond *cond, int ms)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 qemu_cond_timedwait(cond, &amp;qemu_global_mutex, ms);<br>
+=C2=A0 =C2=A0 qemu_cond_timedwait(cond, &amp;bql, ms);<br>
=C2=A0}<br>
<br>
=C2=A0/* signal CPU creation */<br>
@@ -571,15 +572,15 @@ void pause_all_vcpus(void)<br>
=C2=A0 =C2=A0 =C2=A0replay_mutex_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0while (!all_vcpus_paused()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_cond_wait(&amp;qemu_pause_cond, &amp;qemu=
_global_mutex);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_cond_wait(&amp;qemu_pause_cond, &amp;bql)=
;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CPU_FOREACH(cpu) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_cpu_kick(cpu);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0replay_mutex_lock();<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0}<br>
<br>
=C2=A0void cpu_resume(CPUState *cpu)<br>
@@ -608,9 +609,9 @@ void cpu_remove_sync(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;stop =3D true;<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;unplug =3D true;<br>
=C2=A0 =C2=A0 =C2=A0qemu_cpu_kick(cpu);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_join(cpu-&gt;thread);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0}<br>
<br>
=C2=A0void cpus_register_accel(const AccelOpsClass *ops)<br>
@@ -649,7 +650,7 @@ void qemu_init_vcpu(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0cpus_accel-&gt;create_vcpu_thread(cpu);<br>
<br>
=C2=A0 =C2=A0 =C2=A0while (!cpu-&gt;created) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_cond_wait(&amp;qemu_cpu_cond, &amp;qemu_g=
lobal_mutex);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_cond_wait(&amp;qemu_cpu_cond, &amp;bql);<=
br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
<br>
diff --git a/system/dirtylimit.c b/system/dirtylimit.c<br>
index 495c7a7082..b5607eb8c2 100644<br>
--- a/system/dirtylimit.c<br>
+++ b/system/dirtylimit.c<br>
@@ -148,9 +148,9 @@ void vcpu_dirty_rate_stat_stop(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;vcpu_dirty_rate_stat-&gt;running, 0);<=
br>
=C2=A0 =C2=A0 =C2=A0dirtylimit_state_unlock();<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_join(&amp;vcpu_dirty_rate_stat-&gt;thread);=
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0dirtylimit_state_lock();<br>
=C2=A0}<br>
<br>
diff --git a/system/memory.c b/system/memory.c<br>
index 798b6c0a17..7a9dc43c2d 100644<br>
--- a/system/memory.c<br>
+++ b/system/memory.c<br>
@@ -1119,7 +1119,7 @@ void memory_region_transaction_commit(void)<br>
=C2=A0 =C2=A0 =C2=A0AddressSpace *as;<br>
<br>
=C2=A0 =C2=A0 =C2=A0assert(memory_region_transaction_depth);<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0--memory_region_transaction_depth;<br>
=C2=A0 =C2=A0 =C2=A0if (!memory_region_transaction_depth) {<br>
diff --git a/system/physmem.c b/system/physmem.c<br>
index a63853a7bc..4937e67bad 100644<br>
--- a/system/physmem.c<br>
+++ b/system/physmem.c<br>
@@ -2639,8 +2639,8 @@ bool prepare_mmio_access(MemoryRegion *mr)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0bool release_lock =3D false;<br>
<br>
-=C2=A0 =C2=A0 if (!qemu_mutex_iothread_locked()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 if (!bql_locked()) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0release_lock =3D true;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (mr-&gt;flush_coalesced_mmio) {<br>
@@ -2721,7 +2721,7 @@ static MemTxResult flatview_write_continue(FlatView *=
fv, hwaddr addr,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0release_lock =3D false;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -2799,7 +2799,7 @@ MemTxResult flatview_read_continue(FlatView *fv, hwad=
dr addr,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0release_lock =3D false;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
diff --git a/system/runstate.c b/system/runstate.c<br>
index ea9d6c2a32..5833ba0675 100644<br>
--- a/system/runstate.c<br>
+++ b/system/runstate.c<br>
@@ -810,7 +810,7 @@ void qemu_init_subsystems(void)<br>
<br>
=C2=A0 =C2=A0 =C2=A0qemu_init_cpu_list();<br>
=C2=A0 =C2=A0 =C2=A0qemu_init_cpu_loop();<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0atexit(qemu_run_exit_notifiers);<br>
<br>
diff --git a/system/watchpoint.c b/system/watchpoint.c<br>
index ba5ad13352..b76007ebf6 100644<br>
--- a/system/watchpoint.c<br>
+++ b/system/watchpoint.c<br>
@@ -155,9 +155,9 @@ void cpu_check_watchpoint(CPUState *cpu, vaddr addr, va=
ddr len,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * Now raise the debug interrupt so that =
it will<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * trigger after the current instruction.=
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_interrupt(cpu, CPU_INTERRUPT_DEBUG);<=
br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c<br>
index c078849403..8850381565 100644<br>
--- a/target/arm/arm-powerctl.c<br>
+++ b/target/arm/arm-powerctl.c<br>
@@ -88,7 +88,7 @@ static void arm_set_cpu_on_async_work(CPUState *target_cp=
u_state,<br>
=C2=A0 =C2=A0 =C2=A0g_free(info);<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Finally set the power status */<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0target_cpu-&gt;power_state =3D PSCI_ON;<br>
=C2=A0}<br>
<br>
@@ -99,7 +99,7 @@ int arm_set_cpu_on(uint64_t cpuid, uint64_t entry, uint64=
_t context_id,<br>
=C2=A0 =C2=A0 =C2=A0ARMCPU *target_cpu;<br>
=C2=A0 =C2=A0 =C2=A0struct CpuOnInfo *info;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0DPRINTF(&quot;cpu %&quot; PRId64 &quot; (EL %d, %s) @ 0=
x%&quot; PRIx64 &quot; with R0 =3D 0x%&quot; PRIx64<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;\n&quot;, cpuid, targ=
et_el, target_aa64 ? &quot;aarch64&quot; : &quot;aarch32&quot;, entry,<br>
@@ -196,7 +196,7 @@ static void arm_set_cpu_on_and_reset_async_work(CPUStat=
e *target_cpu_state,<br>
=C2=A0 =C2=A0 =C2=A0target_cpu_state-&gt;halted =3D 0;<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Finally set the power status */<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0target_cpu-&gt;power_state =3D PSCI_ON;<br>
=C2=A0}<br>
<br>
@@ -205,7 +205,7 @@ int arm_set_cpu_on_and_reset(uint64_t cpuid)<br>
=C2=A0 =C2=A0 =C2=A0CPUState *target_cpu_state;<br>
=C2=A0 =C2=A0 =C2=A0ARMCPU *target_cpu;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Retrieve the cpu we are powering up */<br>
=C2=A0 =C2=A0 =C2=A0target_cpu_state =3D arm_get_cpu_by_id(cpuid);<br>
@@ -247,7 +247,7 @@ static void arm_set_cpu_off_async_work(CPUState *target=
_cpu_state,<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0ARMCPU *target_cpu =3D ARM_CPU(target_cpu_state);<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0target_cpu-&gt;power_state =3D PSCI_OFF;<br>
=C2=A0 =C2=A0 =C2=A0target_cpu_state-&gt;halted =3D 1;<br>
=C2=A0 =C2=A0 =C2=A0target_cpu_state-&gt;exception_index =3D EXCP_HLT;<br>
@@ -258,7 +258,7 @@ int arm_set_cpu_off(uint64_t cpuid)<br>
=C2=A0 =C2=A0 =C2=A0CPUState *target_cpu_state;<br>
=C2=A0 =C2=A0 =C2=A0ARMCPU *target_cpu;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0DPRINTF(&quot;cpu %&quot; PRId64 &quot;\n&quot;, cpuid)=
;<br>
<br>
@@ -294,7 +294,7 @@ int arm_reset_cpu(uint64_t cpuid)<br>
=C2=A0 =C2=A0 =C2=A0CPUState *target_cpu_state;<br>
=C2=A0 =C2=A0 =C2=A0ARMCPU *target_cpu;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0DPRINTF(&quot;cpu %&quot; PRId64 &quot;\n&quot;, cpuid)=
;<br>
<br>
diff --git a/target/arm/helper.c b/target/arm/helper.c<br>
index 2746d3fdac..4a978d1102 100644<br>
--- a/target/arm/helper.c<br>
+++ b/target/arm/helper.c<br>
@@ -5831,7 +5831,7 @@ static void do_hcr_write(CPUARMState *env, uint64_t v=
alue, uint64_t valid_mask)<br>
=C2=A0 =C2=A0 =C2=A0 * VFIQ are masked unless running at EL0 or EL1, and HC=
R<br>
=C2=A0 =C2=A0 =C2=A0 * can only be written at EL2.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0arm_cpu_update_virq(cpu);<br>
=C2=A0 =C2=A0 =C2=A0arm_cpu_update_vfiq(cpu);<br>
=C2=A0 =C2=A0 =C2=A0arm_cpu_update_vserr(cpu);<br>
@@ -11344,7 +11344,7 @@ void arm_cpu_do_interrupt(CPUState *cs)<br>
=C2=A0 =C2=A0 =C2=A0 * BQL needs to be held for any modification of<br>
=C2=A0 =C2=A0 =C2=A0 * cs-&gt;interrupt_request.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0arm_call_pre_el_change_hook(cpu);<br>
<br>
diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c<br>
index 757e13b0f9..f8dffb815f 100644<br>
--- a/target/arm/hvf/hvf.c<br>
+++ b/target/arm/hvf/hvf.c<br>
@@ -1718,9 +1718,9 @@ static void hvf_wait_for_ipi(CPUState *cpu, struct ti=
mespec *ts)<br>
=C2=A0 =C2=A0 =C2=A0 * sleeping.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set_mb(&amp;cpu-&gt;thread_kicked, false);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0pselect(0, 0, 0, 0, ts, &amp;cpu-&gt;accel-&gt;unblock_=
ipi_mask);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0}<br>
<br>
=C2=A0static void hvf_wfi(CPUState *cpu)<br>
@@ -1821,7 +1821,7 @@ int hvf_vcpu_exec(CPUState *cpu)<br>
<br>
=C2=A0 =C2=A0 =C2=A0flush_cpu_state(cpu);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0assert_hvf_ok(hv_vcpu_run(cpu-&gt;accel-&gt;fd));<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* handle VMEXIT */<br>
@@ -1830,7 +1830,7 @@ int hvf_vcpu_exec(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0uint32_t ec =3D syn_get_ec(syndrome);<br>
<br>
=C2=A0 =C2=A0 =C2=A0ret =3D 0;<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0switch (exit_reason) {<br>
=C2=A0 =C2=A0 =C2=A0case HV_EXIT_REASON_EXCEPTION:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* This is the main one, handle below. */=
<br>
diff --git a/target/arm/kvm.c b/target/arm/kvm.c<br>
index 7903e2ddde..dcfe3d48ab 100644<br>
--- a/target/arm/kvm.c<br>
+++ b/target/arm/kvm.c<br>
@@ -833,7 +833,7 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_r=
un *run)<br>
=C2=A0 =C2=A0 =C2=A0if (run-&gt;s.regs.device_irq_level !=3D cpu-&gt;device=
_irq_level) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0switched_level =3D cpu-&gt;device_irq_lev=
el ^ run-&gt;s.regs.device_irq_level;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (switched_level &amp; KVM_ARM_DEV_EL1_=
VTIMER) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_set_irq(cpu-&gt;gt_tim=
er_outputs[GTIMER_VIRT],<br>
@@ -862,7 +862,7 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_r=
un *run)<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* We also mark unknown levels as process=
ed to not waste cycles */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;device_irq_level =3D run-&gt;s.re=
gs.device_irq_level;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0return MEMTXATTRS_UNSPECIFIED;<br>
diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c<br>
index 3c175c93a7..498d77b8cf 100644<br>
--- a/target/arm/kvm64.c<br>
+++ b/target/arm/kvm64.c<br>
@@ -1233,9 +1233,9 @@ bool kvm_arm_handle_debug(CPUState *cs, struct kvm_de=
bug_exit_arch *debug_exit)<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;exception.syndrome =3D debug_exit-&gt;hsr;<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;exception.vaddress =3D debug_exit-&gt;far;<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;exception.target_el =3D 1;<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0arm_cpu_do_interrupt(cs);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return false;<br>
=C2=A0}<br>
diff --git a/target/arm/ptw.c b/target/arm/ptw.c<br>
index 1762b058ae..0ecd3a36da 100644<br>
--- a/target/arm/ptw.c<br>
+++ b/target/arm/ptw.c<br>
@@ -772,9 +772,9 @@ static uint64_t arm_casq_ptw(CPUARMState *env, uint64_t=
 old_val,<br>
=C2=A0#if !TCG_OVERSIZED_GUEST<br>
=C2=A0# error &quot;Unexpected configuration&quot;<br>
=C2=A0#endif<br>
-=C2=A0 =C2=A0 bool locked =3D qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 bool locked =3D bql_locked();<br>
=C2=A0 =C2=A0 =C2=A0if (!locked) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (ptw-&gt;out_be) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cur_val =3D ldq_be_p(host);<br>
@@ -788,7 +788,7 @@ static uint64_t arm_casq_ptw(CPUARMState *env, uint64_t=
 old_val,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (!locked) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
<br>
diff --git a/target/arm/tcg/helper-a64.c b/target/arm/tcg/helper-a64.c<br>
index 8ad84623d3..198b975f20 100644<br>
--- a/target/arm/tcg/helper-a64.c<br>
+++ b/target/arm/tcg/helper-a64.c<br>
@@ -809,9 +809,9 @@ void HELPER(exception_return)(CPUARMState *env, uint64_=
t new_pc)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto illegal_return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0arm_call_pre_el_change_hook(env_archcpu(env));<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!return_to_aa64) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0env-&gt;aarch64 =3D false;<br>
@@ -876,9 +876,9 @@ void HELPER(exception_return)(CPUARMState *env, uint64_=
t new_pc)<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0aarch64_sve_change_el(env, cur_el, new_el, return_to_aa=
64);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0arm_call_el_change_hook(env_archcpu(env));<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return;<br>
<br>
diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c<br>
index a26adb75aa..d1f1e02acc 100644<br>
--- a/target/arm/tcg/m_helper.c<br>
+++ b/target/arm/tcg/m_helper.c<br>
@@ -373,8 +373,8 @@ void HELPER(v7m_preserve_fp_state)(CPUARMState *env)<br=
>
=C2=A0 =C2=A0 =C2=A0bool ts =3D is_secure &amp;&amp; (env-&gt;v7m.fpccr[M_R=
EG_S] &amp; R_V7M_FPCCR_TS_MASK);<br>
=C2=A0 =C2=A0 =C2=A0bool take_exception;<br>
<br>
-=C2=A0 =C2=A0 /* Take the iothread lock as we are going to touch the NVIC =
*/<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 /* Take the BQL as we are going to touch the NVIC */<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Check the background context had access to the FPU *=
/<br>
=C2=A0 =C2=A0 =C2=A0if (!v7m_cpacr_pass(env, is_secure, is_priv)) {<br>
@@ -428,7 +428,7 @@ void HELPER(v7m_preserve_fp_state)(CPUARMState *env)<br=
>
=C2=A0 =C2=A0 =C2=A0take_exception =3D !stacked_ok &amp;&amp;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0armv7m_nvic_can_take_pending_exception(en=
v-&gt;nvic);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (take_exception) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0raise_exception_ra(env, EXCP_LAZYFP, 0, 1=
, GETPC());<br>
diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c<br>
index ea08936a85..34e706e0fd 100644<br>
--- a/target/arm/tcg/op_helper.c<br>
+++ b/target/arm/tcg/op_helper.c<br>
@@ -427,9 +427,9 @@ void HELPER(cpsr_write_eret)(CPUARMState *env, uint32_t=
 val)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0uint32_t mask;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0arm_call_pre_el_change_hook(env_archcpu(env));<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0mask =3D aarch32_cpsr_valid_mask(env-&gt;features, &amp=
;env_archcpu(env)-&gt;isar);<br>
=C2=A0 =C2=A0 =C2=A0cpsr_write(env, val, mask, CPSRWriteExceptionReturn);<b=
r>
@@ -442,9 +442,9 @@ void HELPER(cpsr_write_eret)(CPUARMState *env, uint32_t=
 val)<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;regs[15] &amp;=3D (env-&gt;thumb ? ~1 : ~3);<br=
>
=C2=A0 =C2=A0 =C2=A0arm_rebuild_hflags(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0arm_call_el_change_hook(env_archcpu(env));<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0/* Access to user mode registers from privileged modes.=C2=A0 */<br>
@@ -803,9 +803,9 @@ void HELPER(set_cp_reg)(CPUARMState *env, const void *r=
ip, uint32_t value)<br>
=C2=A0 =C2=A0 =C2=A0const ARMCPRegInfo *ri =3D rip;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (ri-&gt;type &amp; ARM_CP_IO) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ri-&gt;writefn(env, ri, value);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ri-&gt;writefn(env, ri, value);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -817,9 +817,9 @@ uint32_t HELPER(get_cp_reg)(CPUARMState *env, const voi=
d *rip)<br>
=C2=A0 =C2=A0 =C2=A0uint32_t res;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (ri-&gt;type &amp; ARM_CP_IO) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0res =3D ri-&gt;readfn(env, ri);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0res =3D ri-&gt;readfn(env, ri);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -832,9 +832,9 @@ void HELPER(set_cp_reg64)(CPUARMState *env, const void =
*rip, uint64_t value)<br>
=C2=A0 =C2=A0 =C2=A0const ARMCPRegInfo *ri =3D rip;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (ri-&gt;type &amp; ARM_CP_IO) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ri-&gt;writefn(env, ri, value);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ri-&gt;writefn(env, ri, value);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -846,9 +846,9 @@ uint64_t HELPER(get_cp_reg64)(CPUARMState *env, const v=
oid *rip)<br>
=C2=A0 =C2=A0 =C2=A0uint64_t res;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (ri-&gt;type &amp; ARM_CP_IO) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0res =3D ri-&gt;readfn(env, ri);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0res =3D ri-&gt;readfn(env, ri);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
diff --git a/target/arm/tcg/psci.c b/target/arm/tcg/psci.c<br>
index 6c1239bb96..9080a91d9c 100644<br>
--- a/target/arm/tcg/psci.c<br>
+++ b/target/arm/tcg/psci.c<br>
@@ -107,7 +107,7 @@ void arm_handle_psci_call(ARMCPU *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0target_cpu =3D ARM_CPU(targ=
et_cpu_state);<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_loc=
ked());<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D target_cpu-&gt;powe=
r_state;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default:<br>
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c<br>
index 98e9d688f6..efe638b36e 100644<br>
--- a/target/hppa/int_helper.c<br>
+++ b/target/hppa/int_helper.c<br>
@@ -84,17 +84,17 @@ void hppa_cpu_alarm_timer(void *opaque)<br>
=C2=A0void HELPER(write_eirr)(CPUHPPAState *env, target_ulong val)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;cr[CR_EIRR] &amp;=3D ~val;<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0eval_interrupt(env_archcpu(env));<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(write_eiem)(CPUHPPAState *env, target_ulong val)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;cr[CR_EIEM] =3D val;<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0eval_interrupt(env_archcpu(env));<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void hppa_cpu_do_interrupt(CPUState *cs)<br>
diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c<br>
index 20b9ca3ef5..11ffdd4c69 100644<br>
--- a/target/i386/hvf/hvf.c<br>
+++ b/target/i386/hvf/hvf.c<br>
@@ -429,9 +429,9 @@ int hvf_vcpu_exec(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vmx_update_tpr(cpu);<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!cpu_is_bsp(X86_CPU(cpu)) &amp;&amp; =
cpu-&gt;halted) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return EXCP_HLT;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -450,7 +450,7 @@ int hvf_vcpu_exec(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rip =3D rreg(cpu-&gt;accel-&gt;fd, HV_X86=
_RIP);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0env-&gt;eflags =3D rreg(cpu-&gt;accel-&gt=
;fd, HV_X86_RFLAGS);<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0update_apic_tpr(cpu);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0current_cpu =3D cpu;<br>
diff --git a/target/i386/kvm/hyperv.c b/target/i386/kvm/hyperv.c<br>
index e3ac978648..6825c89af3 100644<br>
--- a/target/i386/kvm/hyperv.c<br>
+++ b/target/i386/kvm/hyperv.c<br>
@@ -45,9 +45,9 @@ void hyperv_x86_synic_update(X86CPU *cpu)<br>
<br>
=C2=A0static void async_synic_update(CPUState *cs, run_on_cpu_data data)<br=
>
=C2=A0{<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0hyperv_x86_synic_update(X86_CPU(cs));<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit)<br>
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c<br>
index 4ce80555b4..76a66246eb 100644<br>
--- a/target/i386/kvm/kvm.c<br>
+++ b/target/i386/kvm/kvm.c<br>
@@ -4713,9 +4713,9 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *=
run)<br>
=C2=A0 =C2=A0 =C2=A0/* Inject NMI */<br>
=C2=A0 =C2=A0 =C2=A0if (cpu-&gt;interrupt_request &amp; (CPU_INTERRUPT_NMI =
| CPU_INTERRUPT_SMI)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (cpu-&gt;interrupt_request &amp; CPU_I=
NTERRUPT_NMI) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;interrupt_request &=
amp;=3D ~CPU_INTERRUPT_NMI;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DPRINTF(&quot;injected NMI\=
n&quot;);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D kvm_vcpu_ioctl(cpu,=
 KVM_NMI);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (ret &lt; 0) {<br>
@@ -4724,9 +4724,9 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *=
run)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (cpu-&gt;interrupt_request &amp; CPU_I=
NTERRUPT_SMI) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;interrupt_request &=
amp;=3D ~CPU_INTERRUPT_SMI;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DPRINTF(&quot;injected SMI\=
n&quot;);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D kvm_vcpu_ioctl(cpu,=
 KVM_SMI);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (ret &lt; 0) {<br>
@@ -4737,7 +4737,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *=
run)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!kvm_pic_in_kernel()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Force the VCPU out of its inner loop to process any =
INIT requests<br>
@@ -4790,7 +4790,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *=
run)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DPRINTF(&quot;setting tpr\n&quot;);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0run-&gt;cr8 =3D cpu_get_apic_tpr(x86_cpu-=
&gt;apic_state);<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
<br>
@@ -4838,12 +4838,12 @@ MemTxAttrs kvm_arch_post_run(CPUState *cpu, struct =
kvm_run *run)<br>
=C2=A0 =C2=A0 =C2=A0/* We need to protect the apic state against concurrent=
 accesses from<br>
=C2=A0 =C2=A0 =C2=A0 * different threads in case the userspace irqchip is u=
sed. */<br>
=C2=A0 =C2=A0 =C2=A0if (!kvm_irqchip_in_kernel()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0cpu_set_apic_tpr(x86_cpu-&gt;apic_state, run-&gt;cr8);<=
br>
=C2=A0 =C2=A0 =C2=A0cpu_set_apic_base(x86_cpu-&gt;apic_state, run-&gt;apic_=
base);<br>
=C2=A0 =C2=A0 =C2=A0if (!kvm_irqchip_in_kernel()) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0return cpu_get_mem_attrs(env);<br>
=C2=A0}<br>
@@ -5277,17 +5277,17 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_r=
un *run)<br>
=C2=A0 =C2=A0 =C2=A0switch (run-&gt;exit_reason) {<br>
=C2=A0 =C2=A0 =C2=A0case KVM_EXIT_HLT:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DPRINTF(&quot;handle_hlt\n&quot;);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D kvm_handle_halt(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case KVM_EXIT_SET_TPR:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D 0;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case KVM_EXIT_TPR_ACCESS:<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D kvm_handle_tpr_access(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case KVM_EXIT_FAIL_ENTRY:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0code =3D run-&gt;fail_entry.hardware_entr=
y_failure_reason;<br>
@@ -5313,9 +5313,9 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run=
 *run)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case KVM_EXIT_DEBUG:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0DPRINTF(&quot;kvm_exit_debug\n&quot;);<br=
>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D kvm_handle_debug(cpu, &amp;run-&g=
t;debug.arch);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case KVM_EXIT_HYPERV:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D kvm_hv_handle_exit(cpu, &amp;run-=
&gt;hyperv);<br>
diff --git a/target/i386/kvm/xen-emu.c b/target/i386/kvm/xen-emu.c<br>
index c0631f9cf4..b0ed2e6aeb 100644<br>
--- a/target/i386/kvm/xen-emu.c<br>
+++ b/target/i386/kvm/xen-emu.c<br>
@@ -403,7 +403,7 @@ void kvm_xen_maybe_deassert_callback(CPUState *cs)<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* If the evtchn_upcall_pending flag is cleared, turn t=
he GSI off. */<br>
=C2=A0 =C2=A0 =C2=A0if (!vi-&gt;evtchn_upcall_pending) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/*<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * Check again now we have the lock, beca=
use it may have been<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * asserted in the interim. And we don&#3=
9;t want to take the lock<br>
@@ -413,7 +413,7 @@ void kvm_xen_maybe_deassert_callback(CPUState *cs)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0X86_CPU(cs)-&gt;env.xen_cal=
lback_asserted =3D false;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0xen_evtchn_set_callback_lev=
el(0);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
<br>
@@ -773,9 +773,9 @@ static bool handle_set_param(struct kvm_xen_exit *exit,=
 X86CPU *cpu,<br>
<br>
=C2=A0 =C2=A0 =C2=A0switch (hp.index) {<br>
=C2=A0 =C2=A0 =C2=A0case HVM_PARAM_CALLBACK_IRQ:<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0err =3D xen_evtchn_set_callback_param(hp.=
value);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0xen_set_long_mode(exit-&gt;u.hcall.longmo=
de);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0default:<br>
@@ -1408,7 +1408,7 @@ int kvm_xen_soft_reset(void)<br>
=C2=A0 =C2=A0 =C2=A0CPUState *cpu;<br>
=C2=A0 =C2=A0 =C2=A0int err;<br>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0trace_kvm_xen_soft_reset();<br>
<br>
@@ -1481,9 +1481,9 @@ static int schedop_shutdown(CPUState *cs, uint64_t ar=
g)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
<br>
=C2=A0 =C2=A0 =C2=A0case SHUTDOWN_soft_reset:<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D kvm_xen_soft_reset();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
<br>
=C2=A0 =C2=A0 =C2=A0default:<br>
diff --git a/target/i386/nvmm/nvmm-accel-ops.c b/target/i386/nvmm/nvmm-acce=
l-ops.c<br>
index 6c46101ac1..f9d5e9a37a 100644<br>
--- a/target/i386/nvmm/nvmm-accel-ops.c<br>
+++ b/target/i386/nvmm/nvmm-accel-ops.c<br>
@@ -25,7 +25,7 @@ static void *qemu_nvmm_cpu_thread_fn(void *arg)<br>
<br>
=C2=A0 =C2=A0 =C2=A0rcu_register_thread();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_get_self(cpu-&gt;thread);<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;thread_id =3D qemu_get_thread_id();<br>
=C2=A0 =C2=A0 =C2=A0current_cpu =3D cpu;<br>
@@ -55,7 +55,7 @@ static void *qemu_nvmm_cpu_thread_fn(void *arg)<br>
<br>
=C2=A0 =C2=A0 =C2=A0nvmm_destroy_vcpu(cpu);<br>
=C2=A0 =C2=A0 =C2=A0cpu_thread_signal_destroyed(cpu);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0rcu_unregister_thread();<br>
=C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0}<br>
diff --git a/target/i386/nvmm/nvmm-all.c b/target/i386/nvmm/nvmm-all.c<br>
index 7d752bc5e0..cfdca91123 100644<br>
--- a/target/i386/nvmm/nvmm-all.c<br>
+++ b/target/i386/nvmm/nvmm-all.c<br>
@@ -399,7 +399,7 @@ nvmm_vcpu_pre_run(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0uint8_t tpr;<br>
=C2=A0 =C2=A0 =C2=A0int ret;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0tpr =3D cpu_get_apic_tpr(x86_cpu-&gt;apic_state);<br>
=C2=A0 =C2=A0 =C2=A0if (tpr !=3D qcpu-&gt;tpr) {<br>
@@ -462,7 +462,7 @@ nvmm_vcpu_pre_run(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0/*<br>
@@ -485,9 +485,9 @@ nvmm_vcpu_post_run(CPUState *cpu, struct nvmm_vcpu_exit=
 *exit)<br>
=C2=A0 =C2=A0 =C2=A0tpr =3D exit-&gt;exitstate.cr8;<br>
=C2=A0 =C2=A0 =C2=A0if (qcpu-&gt;tpr !=3D tpr) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qcpu-&gt;tpr =3D tpr;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_set_apic_tpr(x86_cpu-&gt;apic_state, =
qcpu-&gt;tpr);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
<br>
@@ -648,7 +648,7 @@ nvmm_handle_halted(struct nvmm_machine *mach, CPUState =
*cpu,<br>
=C2=A0 =C2=A0 =C2=A0CPUX86State *env =3D cpu_env(cpu);<br>
=C2=A0 =C2=A0 =C2=A0int ret =3D 0;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!((cpu-&gt;interrupt_request &amp; CPU_INTERRUPT_HA=
RD) &amp;&amp;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(env-&gt;eflags &amp; IF_MASK)) &a=
mp;&amp;<br>
@@ -658,7 +658,7 @@ nvmm_handle_halted(struct nvmm_machine *mach, CPUState =
*cpu,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D 1;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
=C2=A0}<br>
@@ -721,7 +721,7 @@ nvmm_vcpu_loop(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0cpu_exec_start(cpu);<br>
<br>
=C2=A0 =C2=A0 =C2=A0/*<br>
@@ -806,16 +806,16 @@ nvmm_vcpu_loop(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_report(&quot;NVMM: Un=
expected VM exit code 0x%lx [hw=3D0x%lx]&quot;,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0exit-&gt;reas=
on, exit-&gt;u.inv.hwcode);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0nvmm_get_registers(cpu);<br=
>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_system_guest_panicked(=
cpu_get_crash_info(cpu));<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D -1;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0} while (ret =3D=3D 0);<br>
<br>
=C2=A0 =C2=A0 =C2=A0cpu_exec_end(cpu);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;cpu-&gt;exit_request, false);<br>
<br>
diff --git a/target/i386/tcg/sysemu/fpu_helper.c b/target/i386/tcg/sysemu/f=
pu_helper.c<br>
index 93506cdd94..e0305ba234 100644<br>
--- a/target/i386/tcg/sysemu/fpu_helper.c<br>
+++ b/target/i386/tcg/sysemu/fpu_helper.c<br>
@@ -32,9 +32,9 @@ void x86_register_ferr_irq(qemu_irq irq)<br>
=C2=A0void fpu_check_raise_ferr_irq(CPUX86State *env)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0if (ferr_irq &amp;&amp; !(env-&gt;hflags2 &amp; HF2_IGN=
NE_MASK)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_irq_raise(ferr_irq);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
@@ -49,7 +49,7 @@ void cpu_set_ignne(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0CPUX86State *env =3D &amp;X86_CPU(first_cpu)-&gt;env;<b=
r>
<br>
-=C2=A0 =C2=A0 assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;hflags2 |=3D HF2_IGNNE_MASK;<br>
=C2=A0 =C2=A0 =C2=A0/*<br>
diff --git a/target/i386/tcg/sysemu/misc_helper.c b/target/i386/tcg/sysemu/=
misc_helper.c<br>
index e1528b7f80..1ddfc9fe09 100644<br>
--- a/target/i386/tcg/sysemu/misc_helper.c<br>
+++ b/target/i386/tcg/sysemu/misc_helper.c<br>
@@ -118,9 +118,9 @@ void helper_write_crN(CPUX86State *env, int reg, target=
_ulong t0)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case 8:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!(env-&gt;hflags2 &amp; HF2_VINTR_MAS=
K)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_set_apic_tpr(env_archcp=
u(env)-&gt;apic_state, t0);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0env-&gt;int_ctl =3D (env-&gt;int_ctl &amp=
; ~V_TPR_MASK) | (t0 &amp; V_TPR_MASK);<br>
<br>
diff --git a/target/i386/whpx/whpx-accel-ops.c b/target/i386/whpx/whpx-acce=
l-ops.c<br>
index 67cad86720..e783a760a7 100644<br>
--- a/target/i386/whpx/whpx-accel-ops.c<br>
+++ b/target/i386/whpx/whpx-accel-ops.c<br>
@@ -25,7 +25,7 @@ static void *whpx_cpu_thread_fn(void *arg)<br>
<br>
=C2=A0 =C2=A0 =C2=A0rcu_register_thread();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_get_self(cpu-&gt;thread);<br>
=C2=A0 =C2=A0 =C2=A0cpu-&gt;thread_id =3D qemu_get_thread_id();<br>
=C2=A0 =C2=A0 =C2=A0current_cpu =3D cpu;<br>
@@ -55,7 +55,7 @@ static void *whpx_cpu_thread_fn(void *arg)<br>
<br>
=C2=A0 =C2=A0 =C2=A0whpx_destroy_vcpu(cpu);<br>
=C2=A0 =C2=A0 =C2=A0cpu_thread_signal_destroyed(cpu);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0rcu_unregister_thread();<br>
=C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0}<br>
diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c<br>
index d29ba916a0..a7262654ac 100644<br>
--- a/target/i386/whpx/whpx-all.c<br>
+++ b/target/i386/whpx/whpx-all.c<br>
@@ -1324,7 +1324,7 @@ static int whpx_first_vcpu_starting(CPUState *cpu)<br=
>
=C2=A0 =C2=A0 =C2=A0struct whpx_state *whpx =3D &amp;whpx_global;<br>
=C2=A0 =C2=A0 =C2=A0HRESULT hr;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!QTAILQ_EMPTY(&amp;cpu-&gt;breakpoints) ||<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(whpx-&gt;breakpoints.break=
points &amp;&amp;<br>
@@ -1442,7 +1442,7 @@ static int whpx_handle_halt(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0CPUX86State *env =3D cpu_env(cpu);<br>
=C2=A0 =C2=A0 =C2=A0int ret =3D 0;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0if (!((cpu-&gt;interrupt_request &amp; CPU_INTERRUPT_HA=
RD) &amp;&amp;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(env-&gt;eflags &amp; IF_MASK)) &a=
mp;&amp;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0!(cpu-&gt;interrupt_request &amp; CPU_INT=
ERRUPT_NMI)) {<br>
@@ -1450,7 +1450,7 @@ static int whpx_handle_halt(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu-&gt;halted =3D true;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D 1;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
=C2=A0}<br>
@@ -1472,7 +1472,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0memset(&amp;new_int, 0, sizeof(new_int));<br>
=C2=A0 =C2=A0 =C2=A0memset(reg_values, 0, sizeof(reg_values));<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Inject NMI */<br>
=C2=A0 =C2=A0 =C2=A0if (!vcpu-&gt;interruption_pending &amp;&amp;<br>
@@ -1563,7 +1563,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0reg_count +=3D 1;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0vcpu-&gt;ready_for_pic_interrupt =3D false;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (reg_count) {<br>
@@ -1590,9 +1590,9 @@ static void whpx_vcpu_post_run(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0uint64_t tpr =3D vcpu-&gt;exit_ctx.VpContext.Cr8;<br>
=C2=A0 =C2=A0 =C2=A0if (vcpu-&gt;tpr !=3D tpr) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vcpu-&gt;tpr =3D tpr;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_set_apic_tpr(x86_cpu-&gt;apic_state, =
whpx_cr8_to_apic_tpr(vcpu-&gt;tpr));<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0vcpu-&gt;interruption_pending =3D<br>
@@ -1652,7 +1652,7 @@ static int whpx_vcpu_run(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0WhpxStepMode exclusive_step_mode =3D WHPX_STEP_NONE;<br=
>
=C2=A0 =C2=A0 =C2=A0int ret;<br>
<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (whpx-&gt;running_cpus++ =3D=3D 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Insert breakpoints into memory, update=
 exception exit bitmap. */<br>
@@ -1690,7 +1690,7 @@ static int whpx_vcpu_run(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (exclusive_step_mode !=3D WHPX_STEP_NONE) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0start_exclusive();<br>
@@ -2028,9 +2028,9 @@ static int whpx_vcpu_run(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error_report(&quot;WHPX: Un=
expected VP exit code %d&quot;,<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 vcpu-&gt;exit_ctx.ExitReason);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0whpx_get_registers(cpu);<br=
>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_system_guest_panicked(=
cpu_get_crash_info(cpu));<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -2055,7 +2055,7 @@ static int whpx_vcpu_run(CPUState *cpu)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_exec_end(cpu);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0current_cpu =3D cpu;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (--whpx-&gt;running_cpus =3D=3D 0) {<br>
diff --git a/target/loongarch/csr_helper.c b/target/loongarch/csr_helper.c<=
br>
index 55341551a5..15f94caefa 100644<br>
--- a/target/loongarch/csr_helper.c<br>
+++ b/target/loongarch/csr_helper.c<br>
@@ -89,9 +89,9 @@ target_ulong helper_csrwr_ticlr(CPULoongArchState *env, t=
arget_ulong val)<br>
=C2=A0 =C2=A0 =C2=A0int64_t old_v =3D 0;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (val &amp; 0x1) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0loongarch_cpu_set_irq(cpu, IRQ_TIMER, 0);=
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0return old_v;<br>
=C2=A0}<br>
diff --git a/target/mips/kvm.c b/target/mips/kvm.c<br>
index e22e24ed97..15d0cf9adb 100644<br>
--- a/target/mips/kvm.c<br>
+++ b/target/mips/kvm.c<br>
@@ -138,7 +138,7 @@ void kvm_arch_pre_run(CPUState *cs, struct kvm_run *run=
)<br>
=C2=A0 =C2=A0 =C2=A0int r;<br>
=C2=A0 =C2=A0 =C2=A0struct kvm_mips_interrupt intr;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if ((cs-&gt;interrupt_request &amp; CPU_INTERRUPT_HARD)=
 &amp;&amp;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_mips_io_interrupts_pend=
ing(cpu)) {<br>
@@ -151,7 +151,7 @@ void kvm_arch_pre_run(CPUState *cs, struct kvm_run *run=
)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)<br>
diff --git a/target/mips/tcg/sysemu/cp0_helper.c b/target/mips/tcg/sysemu/c=
p0_helper.c<br>
index d349548743..cc545aed9c 100644<br>
--- a/target/mips/tcg/sysemu/cp0_helper.c<br>
+++ b/target/mips/tcg/sysemu/cp0_helper.c<br>
@@ -59,9 +59,9 @@ static inline void mips_vpe_wake(MIPSCPU *c)<br>
=C2=A0 =C2=A0 =C2=A0 * because there might be other conditions that state t=
hat c should<br>
=C2=A0 =C2=A0 =C2=A0 * be sleeping.<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0cpu_interrupt(CPU(c), CPU_INTERRUPT_WAKE);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0static inline void mips_vpe_sleep(MIPSCPU *cpu)<br>
diff --git a/target/openrisc/sys_helper.c b/target/openrisc/sys_helper.c<br=
>
index 782a5751b7..77567afba4 100644<br>
--- a/target/openrisc/sys_helper.c<br>
+++ b/target/openrisc/sys_helper.c<br>
@@ -160,20 +160,20 @@ void HELPER(mtspr)(CPUOpenRISCState *env, target_ulon=
g spr, target_ulong rb)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case TO_SPR(9, 0):=C2=A0 /* PICMR */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0env-&gt;picmr =3D rb;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (env-&gt;picsr &amp; env-&gt;picmr) {<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_interrupt(cs, CPU_INTER=
RUPT_HARD);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_reset_interrupt(cs, CPU=
_INTERRUPT_HARD);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case TO_SPR(9, 2):=C2=A0 /* PICSR */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0env-&gt;picsr &amp;=3D ~rb;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case TO_SPR(10, 0): /* TTMR */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0{<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if ((env-&gt;ttmr &amp; TTM=
R_M) ^ (rb &amp; TTMR_M)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0switch (rb &a=
mp; TTMR_M) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case TIMER_NO=
NE:<br>
@@ -198,15 +198,15 @@ void HELPER(mtspr)(CPUOpenRISCState *env, target_ulon=
g spr, target_ulong rb)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cs-&gt;interr=
upt_request &amp;=3D ~CPU_INTERRUPT_TIMER;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_openrisc_timer_update(c=
pu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
<br>
=C2=A0 =C2=A0 =C2=A0case TO_SPR(10, 1): /* TTCR */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_openrisc_count_set(cpu, rb);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_openrisc_timer_update(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
@@ -347,9 +347,9 @@ target_ulong HELPER(mfspr)(CPUOpenRISCState *env, targe=
t_ulong rd,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return env-&gt;ttmr;<br>
<br>
=C2=A0 =C2=A0 =C2=A0case TO_SPR(10, 1): /* TTCR */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_openrisc_count_update(cpu);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return cpu_openrisc_count_get(cpu);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c<br>
index a42743a3e0..8a2bfb5aa2 100644<br>
--- a/target/ppc/excp_helper.c<br>
+++ b/target/ppc/excp_helper.c<br>
@@ -3056,7 +3056,7 @@ void helper_msgsnd(target_ulong rb)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0CPU_FOREACH(cs) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PowerPCCPU *cpu =3D POWERPC_CPU(cs);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CPUPPCState *cenv =3D &amp;cpu-&gt;env;<b=
r>
@@ -3065,7 +3065,7 @@ void helper_msgsnd(target_ulong rb)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ppc_set_irq(cpu, irq, 1);<b=
r>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0/* Server Processor Control */<br>
@@ -3093,7 +3093,7 @@ static void book3s_msgsnd_common(int pir, int irq)<br=
>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0CPUState *cs;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0CPU_FOREACH(cs) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PowerPCCPU *cpu =3D POWERPC_CPU(cs);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CPUPPCState *cenv =3D &amp;cpu-&gt;env;<b=
r>
@@ -3103,7 +3103,7 @@ static void book3s_msgsnd_common(int pir, int irq)<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ppc_set_irq(cpu, irq, 1);<b=
r>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void helper_book3s_msgsnd(target_ulong rb)<br>
@@ -3157,14 +3157,14 @@ void helper_book3s_msgsndp(CPUPPCState *env, target=
_ulong rb)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Does iothread need to be locked for walking CPU list=
? */<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0THREAD_SIBLING_FOREACH(cs, ccs) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PowerPCCPU *ccpu =3D POWERPC_CPU(ccs);<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uint32_t thread_id =3D ppc_cpu_tir(ccpu);=
<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (ttir =3D=3D thread_id) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ppc_set_irq(ccpu, PPC_INTER=
RUPT_DOORBELL, 1);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c<br>
index 9b1abe2fc4..26fa9d0575 100644<br>
--- a/target/ppc/kvm.c<br>
+++ b/target/ppc/kvm.c<br>
@@ -1656,7 +1656,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run=
 *run)<br>
=C2=A0 =C2=A0 =C2=A0CPUPPCState *env =3D &amp;cpu-&gt;env;<br>
=C2=A0 =C2=A0 =C2=A0int ret;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0switch (run-&gt;exit_reason) {<br>
=C2=A0 =C2=A0 =C2=A0case KVM_EXIT_DCR:<br>
@@ -1715,7 +1715,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run=
 *run)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0return ret;<br>
=C2=A0}<br>
<br>
diff --git a/target/ppc/misc_helper.c b/target/ppc/misc_helper.c<br>
index a05bdf78c9..a9d41d2802 100644<br>
--- a/target/ppc/misc_helper.c<br>
+++ b/target/ppc/misc_helper.c<br>
@@ -238,7 +238,7 @@ target_ulong helper_load_dpdes(CPUPPCState *env)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return dpdes;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0THREAD_SIBLING_FOREACH(cs, ccs) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PowerPCCPU *ccpu =3D POWERPC_CPU(ccs);<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CPUPPCState *cenv =3D &amp;ccpu-&gt;env;<=
br>
@@ -248,7 +248,7 @@ target_ulong helper_load_dpdes(CPUPPCState *env)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0dpdes |=3D (0x1 &lt;&lt; th=
read_id);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return dpdes;<br>
=C2=A0}<br>
@@ -278,14 +278,14 @@ void helper_store_dpdes(CPUPPCState *env, target_ulon=
g val)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* Does iothread need to be locked for walking CPU list=
? */<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0THREAD_SIBLING_FOREACH(cs, ccs) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PowerPCCPU *ccpu =3D POWERPC_CPU(ccs);<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uint32_t thread_id =3D ppc_cpu_tir(ccpu);=
<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ppc_set_irq(cpu, PPC_INTERRUPT_DOORBELL, =
val &amp; (0x1 &lt;&lt; thread_id));<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
=C2=A0#endif /* defined(TARGET_PPC64) */<br>
<br>
diff --git a/target/ppc/timebase_helper.c b/target/ppc/timebase_helper.c<br=
>
index 08a6b47ee0..f618ed2922 100644<br>
--- a/target/ppc/timebase_helper.c<br>
+++ b/target/ppc/timebase_helper.c<br>
@@ -173,9 +173,9 @@ target_ulong helper_load_dcr(CPUPPCState *env, target_u=
long dcrn)<br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int ret;<br>
<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D ppc_dcr_read(env-&gt;dcr_env, (ui=
nt32_t)dcrn, &amp;val);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (unlikely(ret !=3D 0)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_log_mask(LOG_GUEST_ERR=
OR, &quot;DCR read error %d %03x\n&quot;,<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(uint32_t)dcrn, (uint32_t)dcrn);<br>
@@ -196,9 +196,9 @@ void helper_store_dcr(CPUPPCState *env, target_ulong dc=
rn, target_ulong val)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 POWERPC_EXCP_INVAL_INVAL, GETPC());<=
br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int ret;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D ppc_dcr_write(env-&gt;dcr_env, (u=
int32_t)dcrn, (uint32_t)val);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (unlikely(ret !=3D 0)) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_log_mask(LOG_GUEST_ERR=
OR, &quot;DCR write error %d %03x\n&quot;,<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(uint32_t)dcrn, (uint32_t)dcrn);<br>
diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c<br>
index 33ab3551f4..888d6c1a1c 100644<br>
--- a/target/s390x/kvm/kvm.c<br>
+++ b/target/s390x/kvm/kvm.c<br>
@@ -1923,7 +1923,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run=
 *run)<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D S390_CPU(cs);<br>
=C2=A0 =C2=A0 =C2=A0int ret =3D 0;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0kvm_cpu_synchronize_state(cs);<br>
<br>
@@ -1947,7 +1947,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run=
 *run)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fprintf(stderr, &quot;Unkno=
wn KVM exit: %d\n&quot;, run-&gt;exit_reason);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (ret =3D=3D 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D EXCP_INTERRUPT;<br>
diff --git a/target/s390x/tcg/misc_helper.c b/target/s390x/tcg/misc_helper.=
c<br>
index 6aa7907438..89b5268fd4 100644<br>
--- a/target/s390x/tcg/misc_helper.c<br>
+++ b/target/s390x/tcg/misc_helper.c<br>
@@ -101,9 +101,9 @@ uint64_t HELPER(stck)(CPUS390XState *env)<br>
=C2=A0/* SCLP service call */<br>
=C2=A0uint32_t HELPER(servc)(CPUS390XState *env, uint64_t r1, uint64_t r2)<=
br>
=C2=A0{<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0int r =3D sclp_service_call(env_archcpu(env), r1, r2);<=
br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0if (r &lt; 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0tcg_s390_program_interrupt(env, -r, GETPC=
());<br>
=C2=A0 =C2=A0 =C2=A0}<br>
@@ -117,9 +117,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint=
32_t r3, uint32_t num)<br>
=C2=A0 =C2=A0 =C2=A0switch (num) {<br>
=C2=A0 =C2=A0 =C2=A0case 0x500:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* KVM hypercall */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0r =3D s390_virtio_hypercall(env);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case 0x44:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* yield */<br>
@@ -127,9 +127,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint=
32_t r3, uint32_t num)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case 0x308:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* ipl */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0handle_diag_308(env, r1, r3, GETPC());<br=
>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0r =3D 0;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
=C2=A0 =C2=A0 =C2=A0case 0x288:<br>
@@ -185,7 +185,7 @@ static void update_ckc_timer(CPUS390XState *env)<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* stop the timer and remove pending CKC IRQs */<br>
=C2=A0 =C2=A0 =C2=A0timer_del(env-&gt;tod_timer);<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;pending_int &amp;=3D ~INTERRUPT_EXT_CLOCK_COMPA=
RATOR;<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* the tod has to exceed the ckc, this can never happen=
 if ckc is all 1&#39;s */<br>
@@ -207,9 +207,9 @@ void HELPER(sckc)(CPUS390XState *env, uint64_t ckc)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;ckc =3D ckc;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0update_ckc_timer(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void tcg_s390_tod_updated(CPUState *cs, run_on_cpu_data opaque)<br>
@@ -229,9 +229,9 @@ uint32_t HELPER(sck)(CPUS390XState *env, uint64_t tod_l=
ow)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0.low =3D tod_low,<br>
=C2=A0 =C2=A0 =C2=A0};<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0tdc-&gt;set(td, &amp;tod, &amp;error_abort);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0return 0;<br>
=C2=A0}<br>
<br>
@@ -421,9 +421,9 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t orde=
r_code, uint32_t r1,<br>
=C2=A0 =C2=A0 =C2=A0int cc;<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* TODO: needed to inject interrupts=C2=A0 - push furth=
er down */<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0cc =3D handle_sigp(env, order_code &amp; SIGP_ORDER_MAS=
K, r1, r3);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0return cc;<br>
=C2=A0}<br>
@@ -433,92 +433,92 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t or=
der_code, uint32_t r1,<br>
=C2=A0void HELPER(xsch)(CPUS390XState *env, uint64_t r1)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_xsch(cpu, r1, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(csch)(CPUS390XState *env, uint64_t r1)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_csch(cpu, r1, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(hsch)(CPUS390XState *env, uint64_t r1)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_hsch(cpu, r1, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(msch)(CPUS390XState *env, uint64_t r1, uint64_t inst)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_msch(cpu, r1, inst &gt;&gt; 16, GETPC());=
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(rchp)(CPUS390XState *env, uint64_t r1)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_rchp(cpu, r1, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(rsch)(CPUS390XState *env, uint64_t r1)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_rsch(cpu, r1, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(sal)(CPUS390XState *env, uint64_t r1)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_sal(cpu, r1, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(schm)(CPUS390XState *env, uint64_t r1, uint64_t r2, uint6=
4_t inst)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_schm(cpu, r1, r2, inst &gt;&gt; 16, GETPC=
());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(ssch)(CPUS390XState *env, uint64_t r1, uint64_t inst)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_ssch(cpu, r1, inst &gt;&gt; 16, GETPC());=
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(stcrw)(CPUS390XState *env, uint64_t inst)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_stcrw(cpu, inst &gt;&gt; 16, GETPC());<br=
>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(stsch)(CPUS390XState *env, uint64_t r1, uint64_t inst)<br=
>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_stsch(cpu, r1, inst &gt;&gt; 16, GETPC())=
;<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)<br>
@@ -533,10 +533,10 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t add=
r)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0tcg_s390_program_interrupt(env, PGM_SPECI=
FICATION, ra);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0io =3D qemu_s390_flic_dequeue_io(flic, env-&gt;cregs[6]=
);<br>
=C2=A0 =C2=A0 =C2=A0if (!io) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -554,7 +554,7 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t addr)=
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (s390_cpu_virt_mem_write(cpu, addr, 0,=
 &amp;intc, sizeof(intc))) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* writing failed, reinject=
 and properly clean up */<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0s390_io_interrupt(io-&gt;id=
, io-&gt;nr, io-&gt;parm, io-&gt;word);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0g_free(io);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0s390_cpu_virt_mem_handle_ex=
c(cpu, ra);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;<br>
@@ -570,24 +570,24 @@ uint32_t HELPER(tpi)(CPUS390XState *env, uint64_t add=
r)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0g_free(io);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0return 1;<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(tsch)(CPUS390XState *env, uint64_t r1, uint64_t inst)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_tsch(cpu, r1, inst &gt;&gt; 16, GETPC());=
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(chsc)(CPUS390XState *env, uint64_t inst)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0ioinst_handle_chsc(cpu, inst &gt;&gt; 16, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
=C2=A0#endif<br>
<br>
@@ -726,27 +726,27 @@ void HELPER(clp)(CPUS390XState *env, uint32_t r2)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0clp_service_call(cpu, r2, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(pcilg)(CPUS390XState *env, uint32_t r1, uint32_t r2)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0pcilg_service_call(cpu, r1, r2, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(pcistg)(CPUS390XState *env, uint32_t r1, uint32_t r2)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0pcistg_service_call(cpu, r1, r2, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,<=
br>
@@ -754,9 +754,9 @@ void HELPER(stpcifc)(CPUS390XState *env, uint32_t r1, u=
int64_t fiba,<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0stpcifc_service_call(cpu, r1, fiba, ar, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint64_t r3)<br>
@@ -764,9 +764,9 @@ void HELPER(sic)(CPUS390XState *env, uint64_t r1, uint6=
4_t r3)<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
=C2=A0 =C2=A0 =C2=A0int r;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0r =3D css_do_sic(cpu, (r3 &gt;&gt; 27) &amp; 0x7, r1 &a=
mp; 0xffff);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0/* css_do_sic() may actually return a PGM_xxx value to =
inject */<br>
=C2=A0 =C2=A0 =C2=A0if (r) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0tcg_s390_program_interrupt(env, -r, GETPC=
());<br>
@@ -777,9 +777,9 @@ void HELPER(rpcit)(CPUS390XState *env, uint32_t r1, uin=
t32_t r2)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0rpcit_service_call(cpu, r1, r2, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, uint32_t r3,<br>
@@ -787,9 +787,9 @@ void HELPER(pcistb)(CPUS390XState *env, uint32_t r1, ui=
nt32_t r3,<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0pcistb_service_call(cpu, r1, r3, gaddr, ar, GETPC());<b=
r>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, uint64_t fiba,<b=
r>
@@ -797,8 +797,8 @@ void HELPER(mpcifc)(CPUS390XState *env, uint32_t r1, ui=
nt64_t fiba,<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0S390CPU *cpu =3D env_archcpu(env);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0mpcifc_service_call(cpu, r1, fiba, ar, GETPC());<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
=C2=A0#endif<br>
diff --git a/target/sparc/int32_helper.c b/target/sparc/int32_helper.c<br>
index 1563613582..49a9149263 100644<br>
--- a/target/sparc/int32_helper.c<br>
+++ b/target/sparc/int32_helper.c<br>
@@ -70,7 +70,7 @@ void cpu_check_irqs(CPUSPARCState *env)<br>
=C2=A0 =C2=A0 =C2=A0CPUState *cs;<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* We should be holding the BQL before we mess with IRQ=
s */<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (env-&gt;pil_in &amp;&amp; (env-&gt;interrupt_index =
=3D=3D 0 ||<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(env-&gt;interrupt_index &amp; ~15) =3D=3D TT_EXTINT)) {<b=
r>
diff --git a/target/sparc/int64_helper.c b/target/sparc/int64_helper.c<br>
index 1b4155f5f3..27df9dba89 100644<br>
--- a/target/sparc/int64_helper.c<br>
+++ b/target/sparc/int64_helper.c<br>
@@ -69,7 +69,7 @@ void cpu_check_irqs(CPUSPARCState *env)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(env-&=
gt;softint &amp; ~(SOFTINT_TIMER | SOFTINT_STIMER));<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* We should be holding the BQL before we mess with IRQ=
s */<br>
-=C2=A0 =C2=A0 g_assert(qemu_mutex_iothread_locked());<br>
+=C2=A0 =C2=A0 g_assert(bql_locked());<br>
<br>
=C2=A0 =C2=A0 =C2=A0/* TT_IVEC has a higher priority (16) than TT_EXTINT (3=
1..17) */<br>
=C2=A0 =C2=A0 =C2=A0if (env-&gt;ivec_status &amp; 0x20) {<br>
@@ -267,9 +267,9 @@ static bool do_modify_softint(CPUSPARCState *env, uint3=
2_t value)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0env-&gt;softint =3D value;<br>
=C2=A0#if !defined(CONFIG_USER_ONLY)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (cpu_interrupts_enabled(env)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_check_irqs(env);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true;<br>
diff --git a/target/sparc/win_helper.c b/target/sparc/win_helper.c<br>
index 16d1c70fe7..b53fc9ce94 100644<br>
--- a/target/sparc/win_helper.c<br>
+++ b/target/sparc/win_helper.c<br>
@@ -179,9 +179,9 @@ void helper_wrpsr(CPUSPARCState *env, target_ulong new_=
psr)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_raise_exception_ra(env, TT_ILL_INSN, =
GETPC());<br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* cpu_put_psr may trigger interrupts, he=
nce BQL */<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_put_psr(env, new_psr);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
<br>
@@ -407,9 +407,9 @@ void helper_wrpstate(CPUSPARCState *env, target_ulong n=
ew_state)<br>
<br>
=C2=A0#if !defined(CONFIG_USER_ONLY)<br>
=C2=A0 =C2=A0 =C2=A0if (cpu_interrupts_enabled(env)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_check_irqs(env);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
=C2=A0}<br>
@@ -422,9 +422,9 @@ void helper_wrpil(CPUSPARCState *env, target_ulong new_=
pil)<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;psrpil =3D new_pil;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (cpu_interrupts_enabled(env)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_check_irqs(env);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
=C2=A0}<br>
@@ -451,9 +451,9 @@ void helper_done(CPUSPARCState *env)<br>
<br>
=C2=A0#if !defined(CONFIG_USER_ONLY)<br>
=C2=A0 =C2=A0 =C2=A0if (cpu_interrupts_enabled(env)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_check_irqs(env);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
=C2=A0}<br>
@@ -480,9 +480,9 @@ void helper_retry(CPUSPARCState *env)<br>
<br>
=C2=A0#if !defined(CONFIG_USER_ONLY)<br>
=C2=A0 =C2=A0 =C2=A0if (cpu_interrupts_enabled(env)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_check_irqs(env);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0#endif<br>
=C2=A0}<br>
diff --git a/target/xtensa/exc_helper.c b/target/xtensa/exc_helper.c<br>
index 91354884f7..168419a505 100644<br>
--- a/target/xtensa/exc_helper.c<br>
+++ b/target/xtensa/exc_helper.c<br>
@@ -105,9 +105,9 @@ void HELPER(waiti)(CPUXtensaState *env, uint32_t pc, ui=
nt32_t intlevel)<br>
=C2=A0 =C2=A0 =C2=A0env-&gt;sregs[PS] =3D (env-&gt;sregs[PS] &amp; ~PS_INTL=
EVEL) |<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(intlevel &lt;&lt; PS_INTLEVEL_SHIFT);<br=
>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0check_interrupts(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (env-&gt;pending_irq_level) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_loop_exit(cpu);<br>
@@ -120,9 +120,9 @@ void HELPER(waiti)(CPUXtensaState *env, uint32_t pc, ui=
nt32_t intlevel)<br>
<br>
=C2=A0void HELPER(check_interrupts)(CPUXtensaState *env)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0check_interrupts(env);<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0}<br>
<br>
=C2=A0void HELPER(intset)(CPUXtensaState *env, uint32_t v)<br>
diff --git a/ui/spice-core.c b/ui/spice-core.c<br>
index db21db2c94..b6ee495a8f 100644<br>
--- a/ui/spice-core.c<br>
+++ b/ui/spice-core.c<br>
@@ -222,7 +222,7 @@ static void channel_event(int event, SpiceChannelEventI=
nfo *info)<br>
=C2=A0 =C2=A0 =C2=A0 */<br>
=C2=A0 =C2=A0 =C2=A0bool need_lock =3D !qemu_thread_is_self(&amp;me);<br>
=C2=A0 =C2=A0 =C2=A0if (need_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (info-&gt;flags &amp; SPICE_CHANNEL_EVENT_FLAG_ADDR_=
EXT) {<br>
@@ -260,7 +260,7 @@ static void channel_event(int event, SpiceChannelEventI=
nfo *info)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (need_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0qapi_free_SpiceServerInfo(server);<br>
diff --git a/util/async.c b/util/async.c<br>
index 8f90ddc304..def720045b 100644<br>
--- a/util/async.c<br>
+++ b/util/async.c<br>
@@ -741,7 +741,7 @@ AioContext *qemu_get_current_aio_context(void)<br>
=C2=A0 =C2=A0 =C2=A0if (ctx) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return ctx;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 if (qemu_mutex_iothread_locked()) {<br>
+=C2=A0 =C2=A0 if (bql_locked()) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Possibly in a vCPU thread.=C2=A0 */<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return qemu_get_aio_context();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
diff --git a/util/main-loop.c b/util/main-loop.c<br>
index 797b640c41..bfbff4f246 100644<br>
--- a/util/main-loop.c<br>
+++ b/util/main-loop.c<br>
@@ -302,13 +302,13 @@ static int os_host_main_loop_wait(int64_t timeout)<br=
>
<br>
=C2=A0 =C2=A0 =C2=A0glib_pollfds_fill(&amp;timeout);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0replay_mutex_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0ret =3D qemu_poll_ns((GPollFD *)gpollfds-&gt;data, gpol=
lfds-&gt;len, timeout);<br>
<br>
=C2=A0 =C2=A0 =C2=A0replay_mutex_lock();<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0glib_pollfds_poll();<br>
<br>
@@ -517,7 +517,7 @@ static int os_host_main_loop_wait(int64_t timeout)<br>
<br>
=C2=A0 =C2=A0 =C2=A0poll_timeout_ns =3D qemu_soonest_timeout(poll_timeout_n=
s, timeout);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0replay_mutex_unlock();<br>
<br>
@@ -525,7 +525,7 @@ static int os_host_main_loop_wait(int64_t timeout)<br>
<br>
=C2=A0 =C2=A0 =C2=A0replay_mutex_lock();<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0if (g_poll_ret &gt; 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0for (i =3D 0; i &lt; w-&gt;num; i++) {<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0w-&gt;revents[i] =3D poll_f=
ds[n_poll_fds + i].revents;<br>
diff --git a/util/qsp.c b/util/qsp.c<br>
index 2fe3764906..6b783e2e7f 100644<br>
--- a/util/qsp.c<br>
+++ b/util/qsp.c<br>
@@ -124,7 +124,7 @@ static const char * const qsp_typenames[] =3D {<br>
=C2=A0 =C2=A0 =C2=A0[QSP_CONDVAR]=C2=A0 =C2=A0=3D &quot;condvar&quot;,<br>
=C2=A0};<br>
<br>
-QemuMutexLockFunc qemu_bql_mutex_lock_func =3D qemu_mutex_lock_impl;<br>
+QemuMutexLockFunc bql_mutex_lock_func =3D qemu_mutex_lock_impl;<br>
=C2=A0QemuMutexLockFunc qemu_mutex_lock_func =3D qemu_mutex_lock_impl;<br>
=C2=A0QemuMutexTrylockFunc qemu_mutex_trylock_func =3D qemu_mutex_trylock_i=
mpl;<br>
=C2=A0QemuRecMutexLockFunc qemu_rec_mutex_lock_func =3D qemu_rec_mutex_lock=
_impl;<br>
@@ -439,7 +439,7 @@ void qsp_enable(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_mutex_lock_func, qsp_mutex_lock);=
<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_mutex_trylock_func, qsp_mutex_try=
lock);<br>
-=C2=A0 =C2=A0 qatomic_set(&amp;qemu_bql_mutex_lock_func, qsp_bql_mutex_loc=
k);<br>
+=C2=A0 =C2=A0 qatomic_set(&amp;bql_mutex_lock_func, qsp_bql_mutex_lock);<b=
r>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_rec_mutex_lock_func, qsp_rec_mute=
x_lock);<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_rec_mutex_trylock_func, qsp_rec_m=
utex_trylock);<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_cond_wait_func, qsp_cond_wait);<b=
r>
@@ -450,7 +450,7 @@ void qsp_disable(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_mutex_lock_func, qemu_mutex_lock_=
impl);<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_mutex_trylock_func, qemu_mutex_tr=
ylock_impl);<br>
-=C2=A0 =C2=A0 qatomic_set(&amp;qemu_bql_mutex_lock_func, qemu_mutex_lock_i=
mpl);<br>
+=C2=A0 =C2=A0 qatomic_set(&amp;bql_mutex_lock_func, qemu_mutex_lock_impl);=
<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_rec_mutex_lock_func, qemu_rec_mut=
ex_lock_impl);<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_rec_mutex_trylock_func, qemu_rec_=
mutex_trylock_impl);<br>
=C2=A0 =C2=A0 =C2=A0qatomic_set(&amp;qemu_cond_wait_func, qemu_cond_wait_im=
pl);<br>
diff --git a/util/rcu.c b/util/rcu.c<br>
index e587bcc483..bb7f633b5c 100644<br>
--- a/util/rcu.c<br>
+++ b/util/rcu.c<br>
@@ -283,24 +283,24 @@ static void *call_rcu_thread(void *opaque)<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qatomic_sub(&amp;rcu_call_count, n);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0synchronize_rcu();<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0while (n &gt; 0) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0node =3D try_dequeue();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0while (!node) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_=
iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_event_re=
set(&amp;rcu_call_ready_event);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0node =3D try_=
dequeue();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!node) {<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0qemu_event_wait(&amp;rcu_call_ready_event);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0node =3D try_dequeue();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_io=
thread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0n--;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0node-&gt;func(node);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0abort();<br>
=C2=A0}<br>
@@ -337,13 +337,13 @@ static void drain_rcu_callback(struct rcu_head *node)=
<br>
=C2=A0void drain_call_rcu(void)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0struct rcu_drain rcu_drain;<br>
-=C2=A0 =C2=A0 bool locked =3D qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 bool locked =3D bql_locked();<br>
<br>
=C2=A0 =C2=A0 =C2=A0memset(&amp;rcu_drain, 0, sizeof(struct rcu_drain));<br=
>
=C2=A0 =C2=A0 =C2=A0qemu_event_init(&amp;rcu_drain.drain_complete_event, fa=
lse);<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (locked) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
<br>
@@ -365,7 +365,7 @@ void drain_call_rcu(void)<br>
=C2=A0 =C2=A0 =C2=A0qatomic_dec(&amp;in_drain_call_rcu);<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (locked) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0}<br>
diff --git a/audio/coreaudio.m b/audio/coreaudio.m<br>
index 8cd129a27d..9d2db9883c 100644<br>
--- a/audio/coreaudio.m<br>
+++ b/audio/coreaudio.m<br>
@@ -547,7 +547,7 @@ static OSStatus handle_voice_change(<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0coreaudioVoiceOut *core =3D in_client_data;<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (core-&gt;outputDeviceID) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fini_out_device(core);<br>
@@ -557,7 +557,7 @@ static OSStatus handle_voice_change(<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0update_device_playback_state(core);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0return 0;<br>
=C2=A0}<br>
<br>
diff --git a/memory_ldst.c.inc b/memory_ldst.c.inc<br>
index 84b868f294..0e6f3940a9 100644<br>
--- a/memory_ldst.c.inc<br>
+++ b/memory_ldst.c.inc<br>
@@ -61,7 +61,7 @@ static inline uint32_t glue(address_space_ldl_internal, S=
UFFIX)(ARG1_DECL,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*result =3D r;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0RCU_READ_UNLOCK();<br>
=C2=A0 =C2=A0 =C2=A0return val;<br>
@@ -130,7 +130,7 @@ static inline uint64_t glue(address_space_ldq_internal,=
 SUFFIX)(ARG1_DECL,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*result =3D r;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0RCU_READ_UNLOCK();<br>
=C2=A0 =C2=A0 =C2=A0return val;<br>
@@ -186,7 +186,7 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*result =3D r;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0RCU_READ_UNLOCK();<br>
=C2=A0 =C2=A0 =C2=A0return val;<br>
@@ -234,7 +234,7 @@ static inline uint16_t glue(address_space_lduw_internal=
, SUFFIX)(ARG1_DECL,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*result =3D r;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0RCU_READ_UNLOCK();<br>
=C2=A0 =C2=A0 =C2=A0return val;<br>
@@ -295,7 +295,7 @@ void glue(address_space_stl_notdirty, SUFFIX)(ARG1_DECL=
,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*result =3D r;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0RCU_READ_UNLOCK();<br>
=C2=A0}<br>
@@ -339,7 +339,7 @@ static inline void glue(address_space_stl_internal, SUF=
FIX)(ARG1_DECL,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*result =3D r;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0RCU_READ_UNLOCK();<br>
=C2=A0}<br>
@@ -391,7 +391,7 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*result =3D r;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0RCU_READ_UNLOCK();<br>
=C2=A0}<br>
@@ -435,7 +435,7 @@ static inline void glue(address_space_stw_internal, SUF=
FIX)(ARG1_DECL,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*result =3D r;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0RCU_READ_UNLOCK();<br>
=C2=A0}<br>
@@ -499,7 +499,7 @@ static void glue(address_space_stq_internal, SUFFIX)(AR=
G1_DECL,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*result =3D r;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0if (release_lock) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0RCU_READ_UNLOCK();<br>
=C2=A0}<br>
diff --git a/target/i386/hvf/README.md b/target/i386/hvf/README.md<br>
index 2d33477aca..64a8935237 100644<br>
--- a/target/i386/hvf/README.md<br>
+++ b/target/i386/hvf/README.md<br>
@@ -4,4 +4,4 @@ These sources (and ../hvf-all.c) are adapted from Veertu In=
c&#39;s vdhh (Veertu Desk<br>
<br>
=C2=A01. Adapt to our current QEMU&#39;s `CPUState` structure and `address_=
space_rw` API; many struct members have been moved around (emulated x86 sta=
te, xsave_buf) due to historical differences + QEMU needing to handle more =
emulation targets.<br>
=C2=A02. Removal of `apic_page` and hyperv-related functionality.<br>
-3. More relaxed use of `qemu_mutex_lock_iothread`.<br>
+3. More relaxed use of `bql_lock`.<br>
diff --git a/ui/cocoa.m b/ui/cocoa.m<br>
index cd069da696..5ebb535070 100644<br>
--- a/ui/cocoa.m<br>
+++ b/ui/cocoa.m<br>
@@ -117,29 +117,29 @@ static void cocoa_switch(DisplayChangeListener *dcl,<=
br>
=C2=A0typedef void (^CodeBlock)(void);<br>
=C2=A0typedef bool (^BoolCodeBlock)(void);<br>
<br>
-static void with_iothread_lock(CodeBlock block)<br>
+static void with_bql(CodeBlock block)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 bool locked =3D qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 bool locked =3D bql_locked();<br>
=C2=A0 =C2=A0 =C2=A0if (!locked) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0block();<br>
=C2=A0 =C2=A0 =C2=A0if (!locked) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
<br>
-static bool bool_with_iothread_lock(BoolCodeBlock block)<br>
+static bool bool_with_bql(BoolCodeBlock block)<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 bool locked =3D qemu_mutex_iothread_locked();<br>
+=C2=A0 =C2=A0 bool locked =3D bql_locked();<br>
=C2=A0 =C2=A0 =C2=A0bool val;<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!locked) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0val =3D block();<br>
=C2=A0 =C2=A0 =C2=A0if (!locked) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0return val;<br>
=C2=A0}<br>
@@ -605,7 +605,7 @@ - (void) updateUIInfo<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[self updateUIInfoLocked];<br>
=C2=A0 =C2=A0 =C2=A0});<br>
=C2=A0}<br>
@@ -790,7 +790,7 @@ - (void) handleMonitorInput:(NSEvent *)event<br>
<br>
=C2=A0- (bool) handleEvent:(NSEvent *)event<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 return bool_with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 return bool_with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return [self handleEventLocked:event];<br=
>
=C2=A0 =C2=A0 =C2=A0});<br>
=C2=A0}<br>
@@ -1182,7 +1182,7 @@ - (QEMUScreen) gscreen {return screen;}<br>
=C2=A0 */<br>
=C2=A0- (void) raiseAllKeys<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qkbd_state_lift_all_keys(kbd);<br>
=C2=A0 =C2=A0 =C2=A0});<br>
=C2=A0}<br>
@@ -1282,7 +1282,7 @@ - (void)applicationWillTerminate:(NSNotification *)aN=
otification<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0COCOA_DEBUG(&quot;QemuCocoaAppController: applicationWi=
llTerminate\n&quot;);<br>
<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0shutdown_action =3D SHUTDOWN_ACTION_POWER=
OFF;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_system_shutdown_request(SHUTDOWN_CAU=
SE_HOST_UI);<br>
=C2=A0 =C2=A0 =C2=A0});<br>
@@ -1420,7 +1420,7 @@ - (void)displayConsole:(id)sender<br>
=C2=A0/* Pause the guest */<br>
=C2=A0- (void)pauseQEMU:(id)sender<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qmp_stop(NULL);<br>
=C2=A0 =C2=A0 =C2=A0});<br>
=C2=A0 =C2=A0 =C2=A0[sender setEnabled: NO];<br>
@@ -1431,7 +1431,7 @@ - (void)pauseQEMU:(id)sender<br>
=C2=A0/* Resume running the guest operating system */<br>
=C2=A0- (void)resumeQEMU:(id) sender<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qmp_cont(NULL);<br>
=C2=A0 =C2=A0 =C2=A0});<br>
=C2=A0 =C2=A0 =C2=A0[sender setEnabled: NO];<br>
@@ -1461,7 +1461,7 @@ - (void)removePause<br>
=C2=A0/* Restarts QEMU */<br>
=C2=A0- (void)restartQEMU:(id)sender<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qmp_system_reset(NULL);<br>
=C2=A0 =C2=A0 =C2=A0});<br>
=C2=A0}<br>
@@ -1469,7 +1469,7 @@ - (void)restartQEMU:(id)sender<br>
=C2=A0/* Powers down QEMU */<br>
=C2=A0- (void)powerDownQEMU:(id)sender<br>
=C2=A0{<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qmp_system_powerdown(NULL);<br>
=C2=A0 =C2=A0 =C2=A0});<br>
=C2=A0}<br>
@@ -1488,7 +1488,7 @@ - (void)ejectDeviceMedia:(id)sender<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0__block Error *err =3D NULL;<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qmp_eject([drive cStringUsingEncoding: NS=
ASCIIStringEncoding],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0NULL, =
false, false, &amp;err);<br>
=C2=A0 =C2=A0 =C2=A0});<br>
@@ -1523,7 +1523,7 @@ - (void)changeDeviceMedia:(id)sender<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__block Error *err =3D NULL;<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qmp_blockdev_change_medium(=
[drive cStringUsingEncoding:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0NSASCIIStringEncoding],<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 NULL,<br=
>
@@ -1605,7 +1605,7 @@ - (void)adjustSpeed:(id)sender<br>
=C2=A0 =C2=A0 =C2=A0// get the throttle percentage<br>
=C2=A0 =C2=A0 =C2=A0throttle_pct =3D [sender tag];<br>
<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cpu_throttle_set(throttle_pct);<br>
=C2=A0 =C2=A0 =C2=A0});<br>
=C2=A0 =C2=A0 =C2=A0COCOA_DEBUG(&quot;cpu throttling at %d%c\n&quot;, cpu_t=
hrottle_get_percentage(), &#39;%&#39;);<br>
@@ -1819,7 +1819,7 @@ - (void)pasteboard:(NSPasteboard *)sender provideData=
ForType:(NSPasteboardType)t<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-=C2=A0 =C2=A0 with_iothread_lock(^{<br>
+=C2=A0 =C2=A0 with_bql(^{<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0QemuClipboardInfo *info =3D qemu_clipboar=
d_info_ref(cbinfo);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_event_reset(&amp;cbevent);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_clipboard_request(info, QEMU_CLIPBOA=
RD_TYPE_TEXT);<br>
@@ -1827,9 +1827,9 @@ - (void)pasteboard:(NSPasteboard *)sender provideData=
ForType:(NSPasteboardType)t<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0while (info =3D=3D cbinfo &amp;&amp;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 info-&gt;types[QEMU=
_CLIPBOARD_TYPE_TEXT].available &amp;&amp;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 info-&gt;types[QEMU=
_CLIPBOARD_TYPE_TEXT].data =3D=3D NULL) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0qemu_event_wait(&amp;cbeven=
t);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (info =3D=3D cbinfo) {<br>
@@ -1927,9 +1927,9 @@ static void cocoa_clipboard_request(QemuClipboardInfo=
 *info,<br>
=C2=A0 =C2=A0 =C2=A0int status;<br>
<br>
=C2=A0 =C2=A0 =C2=A0COCOA_DEBUG(&quot;Second thread: calling qemu_default_m=
ain()\n&quot;);<br>
-=C2=A0 =C2=A0 qemu_mutex_lock_iothread();<br>
+=C2=A0 =C2=A0 bql_lock();<br>
=C2=A0 =C2=A0 =C2=A0status =3D qemu_default_main();<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0COCOA_DEBUG(&quot;Second thread: qemu_default_main() re=
turned, exiting\n&quot;);<br>
=C2=A0 =C2=A0 =C2=A0[cbowner release];<br>
=C2=A0 =C2=A0 =C2=A0exit(status);<br>
@@ -1941,7 +1941,7 @@ static int cocoa_main(void)<br>
<br>
=C2=A0 =C2=A0 =C2=A0COCOA_DEBUG(&quot;Entered %s()\n&quot;, __func__);<br>
<br>
-=C2=A0 =C2=A0 qemu_mutex_unlock_iothread();<br>
+=C2=A0 =C2=A0 bql_unlock();<br>
=C2=A0 =C2=A0 =C2=A0qemu_thread_create(&amp;thread, &quot;qemu_main&quot;, =
call_qemu_main,<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 NULL, QEMU_THREAD_DETACHED);<br>
<br>
-- <br>
2.43.0<br>
<br>
</blockquote></div><font face=3D"comic sans ms, sans-serif"><div dir=3D"ltr=
"><font face=3D"comic sans ms, sans-serif"><br></font></div>T<span class=3D=
"gmail_default" style=3D"font-family:&quot;comic sans ms&quot;,sans-serif">=
hanks,</span><div dir=3D"ltr"><font face=3D"comic sans ms, sans-serif"><br>=
</font></div>Acked-by: Hyman Huang &lt;<a href=3D"mailto:yong.huang@smartx.=
com">yong.huang@smartx.com</a>&gt;</font></div><div dir=3D"ltr"><font face=
=3D"comic sans ms, sans-serif"><br></font><span class=3D"gmail_signature_pr=
efix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"=
ltr"><font face=3D"comic sans ms, sans-serif">Best regards</font></div></di=
v></div></div></div></div>

--0000000000009f22ff060c5a2da5--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 06:05:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 06:05:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653717.1020174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDINE-0002Ru-7M; Wed, 13 Dec 2023 06:05:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653717.1020174; Wed, 13 Dec 2023 06:05:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDINE-0002Rn-4l; Wed, 13 Dec 2023 06:05:36 +0000
Received: by outflank-mailman (input) for mailman id 653717;
 Wed, 13 Dec 2023 06:05:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7vuN=HY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rDIND-0002Rh-5n
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 06:05:35 +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 9f8e454a-997d-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 07:05:32 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id E76A71FD3A;
 Wed, 13 Dec 2023 06:05:27 +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 A5C9C137E8;
 Wed, 13 Dec 2023 06:05:27 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 8zsmJ6dJeWUxDgAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 13 Dec 2023 06: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>
X-Inumbo-ID: 9f8e454a-997d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702447531; 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=brCf1OPoNpQdyWfoqLp+/WjPEPnkO7UI7wJ5otOemNo=;
	b=U36T/89yVH0DjAal0nhIlBNDkj6z28cniNHNVtKUjUT6mmC/XFZ86gmTU5h7lOstSgBgu9
	H17aL7jd/7Oy/N9zZIPGzHi0ewvTTDma8ihqhYcZ0laMctIU5U4uZtZpypI/Iq+fhn5WBm
	GatiXnPwttnwcmEG8DYCujtf7pq9I1A=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702447527; 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=brCf1OPoNpQdyWfoqLp+/WjPEPnkO7UI7wJ5otOemNo=;
	b=RkhEf6osqIrK+XMXXF6mSKF4Q6v4ugH6Y+L6SjH66aqDY2V1FbxQDad28BJakf+ze6b72D
	TTkBQ9M6sBeM70XdQNZB0FNr8owKStCYP0do0b5UPvNENY43+0V/0rtGoS627V6OPd1mFy
	K38k6v5FgojoFZm1UWS/mkNUci+4rQI=
Message-ID: <3895f5bb-354c-4ada-a14d-83537dd5d119@suse.com>
Date: Wed, 13 Dec 2023 07:05:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] xen/spinlock: make struct lock_profile
 rspinlock_t aware
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-7-jgross@suse.com>
 <ba842318-0d5e-4b8f-99f9-f0f1e2dda1ab@xen.org>
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: <ba842318-0d5e-4b8f-99f9-f0f1e2dda1ab@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------mgRz7VM0cn4yn0PFQ15v0TSC"
X-Spam-Level: ***************
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spam-Level: 
X-Rspamd-Server: rspamd1
X-Rspamd-Queue-Id: E76A71FD3A
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=RkhEf6os;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Result: default: False [-8.70 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 SIGNED_PGP(-2.00)[];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[cloud.com:email,suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -8.70

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------mgRz7VM0cn4yn0PFQ15v0TSC
Content-Type: multipart/mixed; boundary="------------lMU02RK5OQuKa03n1bOWkQjh";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
Message-ID: <3895f5bb-354c-4ada-a14d-83537dd5d119@suse.com>
Subject: Re: [PATCH v4 06/12] xen/spinlock: make struct lock_profile
 rspinlock_t aware
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-7-jgross@suse.com>
 <ba842318-0d5e-4b8f-99f9-f0f1e2dda1ab@xen.org>
In-Reply-To: <ba842318-0d5e-4b8f-99f9-f0f1e2dda1ab@xen.org>

--------------lMU02RK5OQuKa03n1bOWkQjh
Content-Type: multipart/mixed; boundary="------------lJdRCorVmJ8MUbKIr9aku6fi"

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

T24gMTIuMTIuMjMgMTk6NDIsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGksDQo+IA0KPiBP
biAxMi8xMi8yMDIzIDA5OjQ3LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gU3RydWN0IGxv
Y2tfcHJvZmlsZSBjb250YWlucyBhIHBvaW50ZXIgdG8gdGhlIHNwaW5sb2NrIGl0IGlzIGFz
c29jaWF0ZWQNCj4+IHdpdGguIFByZXBhcmUgc3VwcG9ydCBvZiBkaWZmZXJpbmcgc3Bpbmxv
Y2tfdCBhbmQgcnNwaW5sb2NrX3QgdHlwZXMgYnkNCj4+IGFkZGluZyBhIHR5cGUgaW5kaWNh
dG9yIG9mIHRoZSBwb2ludGVyLiBVc2UgdGhlIGhpZ2hlc3QgYml0IG9mIHRoZQ0KPj4gYmxv
Y2tfY250IG1lbWJlciBmb3IgdGhpcyBpbmRpY2F0b3IgaW4gb3JkZXIgdG8gbm90IGdyb3cg
dGhlIHN0cnVjdA0KPj4gd2hpbGUgaHVydGluZyBvbmx5IHRoZSBzbG93IHBhdGggd2l0aCBz
bGlnaHRseSBsZXNzIHBlcmZvcm1hbnQgY29kZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBK
dWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+PiBBY2tlZC1ieTogQWxlamFuZHJv
IFZhbGxlam8gPGFsZWphbmRyby52YWxsZWpvQGNsb3VkLmNvbT4NCj4+IC0tLQ0KPj4gVjI6
DQo+PiAtIG5ldyBwYXRjaA0KPj4gLS0tDQo+PiDCoCB4ZW4vY29tbW9uL3NwaW5sb2NrLmPC
oMKgwqDCoMKgIHwgMjYgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0NCj4+IMKgIHhlbi9p
bmNsdWRlL3hlbi9zcGlubG9jay5oIHwgMTAgKysrKysrKystLQ0KPj4gwqAgMiBmaWxlcyBj
aGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYg
LS1naXQgYS94ZW4vY29tbW9uL3NwaW5sb2NrLmMgYi94ZW4vY29tbW9uL3NwaW5sb2NrLmMN
Cj4+IGluZGV4IGMxYTliYTEzMDQuLjdkNjExZDNkN2QgMTAwNjQ0DQo+PiAtLS0gYS94ZW4v
Y29tbW9uL3NwaW5sb2NrLmMNCj4+ICsrKyBiL3hlbi9jb21tb24vc3BpbmxvY2suYw0KPj4g
QEAgLTUzOCwxOSArNTM4LDMxIEBAIHN0YXRpYyB2b2lkIA0KPj4gc3BpbmxvY2tfcHJvZmls
ZV9pdGVyYXRlKGxvY2tfcHJvZmlsZV9zdWJmdW5jICpzdWIsIHZvaWQgKnBhcikNCj4+IMKg
IHN0YXRpYyB2b2lkIGNmX2NoZWNrIHNwaW5sb2NrX3Byb2ZpbGVfcHJpbnRfZWxlbShzdHJ1
Y3QgbG9ja19wcm9maWxlICpkYXRhLA0KPj4gwqDCoMKgwqDCoCBpbnQzMl90IHR5cGUsIGlu
dDMyX3QgaWR4LCB2b2lkICpwYXIpDQo+PiDCoCB7DQo+PiAtwqDCoMKgIHN0cnVjdCBzcGlu
bG9jayAqbG9jayA9IGRhdGEtPmxvY2s7DQo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBjcHU7
DQo+PiArwqDCoMKgIHVpbnQzMl90IGxvY2t2YWw7DQo+PiArDQo+PiArwqDCoMKgIGlmICgg
ZGF0YS0+aXNfcmxvY2sgKQ0KPj4gK8KgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqAgY3B1
ID0gZGF0YS0+cmxvY2stPmRlYnVnLmNwdTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBsb2NrdmFs
ID0gZGF0YS0+cmxvY2stPnRpY2tldHMuaGVhZF90YWlsOw0KPj4gK8KgwqDCoCB9DQo+PiAr
wqDCoMKgIGVsc2UNCj4+ICvCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgIGNwdSA9IGRh
dGEtPmxvY2stPmRlYnVnLmNwdTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBsb2NrdmFsID0gZGF0
YS0+bG9jay0+dGlja2V0cy5oZWFkX3RhaWw7DQo+PiArwqDCoMKgIH0NCj4+IMKgwqDCoMKg
wqAgcHJpbnRrKCIlcyAiLCBsb2NrX3Byb2ZpbGVfYW5jc1t0eXBlXS5uYW1lKTsNCj4+IMKg
wqDCoMKgwqAgaWYgKCB0eXBlICE9IExPQ0tQUk9GX1RZUEVfR0xPQkFMICkNCj4+IMKgwqDC
oMKgwqDCoMKgwqDCoCBwcmludGsoIiVkICIsIGlkeCk7DQo+PiAtwqDCoMKgIHByaW50aygi
JXM6IGFkZHI9JXAsIGxvY2t2YWw9JTA4eCwgIiwgZGF0YS0+bmFtZSwgbG9jaywNCj4+IC3C
oMKgwqDCoMKgwqDCoMKgwqDCoCBsb2NrLT50aWNrZXRzLmhlYWRfdGFpbCk7DQo+PiAtwqDC
oMKgIGlmICggbG9jay0+ZGVidWcuY3B1ID09IFNQSU5MT0NLX05PX0NQVSApDQo+PiArwqDC
oMKgIHByaW50aygiJXM6IGFkZHI9JXAsIGxvY2t2YWw9JTA4eCwgIiwgZGF0YS0+bmFtZSwg
ZGF0YS0+bG9jaywgbG9ja3ZhbCk7DQo+PiArwqDCoMKgIGlmICggY3B1ID09IFNQSU5MT0NL
X05PX0NQVSApDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcHJpbnRrKCJub3QgbG9ja2VkXG4i
KTsNCj4+IMKgwqDCoMKgwqAgZWxzZQ0KPj4gLcKgwqDCoMKgwqDCoMKgIHByaW50aygiY3B1
PSVkXG4iLCBsb2NrLT5kZWJ1Zy5jcHUpOw0KPj4gLcKgwqDCoCBwcmludGsoIsKgIGxvY2s6
JSIgUFJJZDY0ICIoJSIgUFJJX3N0aW1lICIpLCBibG9jazolIiBQUklkNjQgIiglIiANCj4+
IFBSSV9zdGltZSAiKVxuIiwNCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLT5sb2Nr
X2NudCwgZGF0YS0+dGltZV9ob2xkLCBkYXRhLT5ibG9ja19jbnQsIGRhdGEtPnRpbWVfYmxv
Y2spOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHByaW50aygiY3B1PSV1XG4iLCBjcHUpOw0KPj4g
K8KgwqDCoCBwcmludGsoIsKgIGxvY2s6JSIgUFJJdTY0ICIoJSIgUFJJX3N0aW1lICIpLCBi
bG9jazolIiBQUkl1NjQgIiglIiANCj4+IFBSSV9zdGltZSAiKVxuIiwNCj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoCBkYXRhLT5sb2NrX2NudCwgZGF0YS0+dGltZV9ob2xkLCAodWludDY0
X3QpZGF0YS0+YmxvY2tfY250LA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEtPnRp
bWVfYmxvY2spOw0KPj4gwqAgfQ0KPj4gwqAgdm9pZCBjZl9jaGVjayBzcGlubG9ja19wcm9m
aWxlX3ByaW50YWxsKHVuc2lnbmVkIGNoYXIga2V5KQ0KPj4gZGlmZiAtLWdpdCBhL3hlbi9p
bmNsdWRlL3hlbi9zcGlubG9jay5oIGIveGVuL2luY2x1ZGUveGVuL3NwaW5sb2NrLmgNCj4+
IGluZGV4IDA1Yjk3YzFlMDMuLmFjM2JlZjI2N2EgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vaW5j
bHVkZS94ZW4vc3BpbmxvY2suaA0KPj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3NwaW5sb2Nr
LmgNCj4+IEBAIC03NiwxMyArNzYsMTkgQEAgdW5pb24gbG9ja19kZWJ1ZyB7IH07DQo+PiDC
oCAqLw0KPj4gwqAgc3RydWN0IHNwaW5sb2NrOw0KPj4gKy8qIFRlbXBvcmFyeSBoYWNrIHVu
dGlsIGEgZGVkaWNhdGVkIHN0cnVjdCByc3BpbmxvY2sgaXMgZXhpc3RpbmcuICovDQo+PiAr
I2RlZmluZSByc3BpbmxvY2sgc3BpbmxvY2sNCj4+IMKgIHN0cnVjdCBsb2NrX3Byb2ZpbGUg
ew0KPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgbG9ja19wcm9maWxlICpuZXh0O8KgwqDCoMKgwqDC
oCAvKiBmb3J3YXJkIGxpbmsgKi8NCj4+IMKgwqDCoMKgwqAgY29uc3QgY2hhcsKgwqDCoMKg
wqDCoMKgwqDCoCAqbmFtZTvCoMKgwqDCoMKgwqAgLyogbG9jayBuYW1lICovDQo+PiAtwqDC
oMKgIHN0cnVjdCBzcGlubG9ja8KgwqDCoMKgICpsb2NrO8KgwqDCoMKgwqDCoCAvKiB0aGUg
bG9jayBpdHNlbGYgKi8NCj4+ICvCoMKgwqAgdW5pb24gew0KPj4gK8KgwqDCoMKgwqDCoMKg
IHN0cnVjdCBzcGlubG9jayAqbG9jazvCoMKgwqDCoMKgwqAgLyogdGhlIGxvY2sgaXRzZWxm
ICovDQo+PiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IHJzcGlubG9jayAqcmxvY2s7wqDCoMKg
wqAgLyogdGhlIHJlY3Vyc2l2ZSBsb2NrIGl0c2VsZiAqLw0KPj4gK8KgwqDCoCB9Ow0KPj4g
wqDCoMKgwqDCoCB1aW50NjRfdMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbG9ja19jbnQ7wqDC
oMKgIC8qICMgb2YgY29tcGxldGUgbG9ja2luZyBvcHMgKi8NCj4+IC3CoMKgwqAgdWludDY0
X3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJsb2NrX2NudDvCoMKgIC8qICMgb2YgY29tcGxl
dGUgd2FpdCBmb3IgbG9jayAqLw0KPj4gK8KgwqDCoCB1aW50NjRfdMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgYmxvY2tfY250OjYzOyAvKiAjIG9mIGNvbXBsZXRlIHdhaXQgZm9yIGxvY2sg
Ki8NCj4+ICvCoMKgwqAgdWludDY0X3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlzX3Jsb2Nr
OjE7wqAgLyogdXNlIHJsb2NrIHBvaW50ZXIgKi8NCj4gDQo+IFRoaXMgaXMgbWVhbnQgdG8g
YWN0IGxpa2UgYSBib29sLiBTbyBJIHdvdWxkIHByZWZlciBpZiB3ZSB1c2U6DQo+IA0KPiBi
b29sIGlzX3J3bG9jazoxOw0KPiANCj4gQW5kIHRoZW4gdXNlIHRydWUvZmFsc2Ugd2hlbiBz
ZXQuDQoNCkRvIHdlIHdhbnQgdG8gZG8gdGhhdD8gQUZBSUsgaXQgd291bGQgZGVwZW5kIG9u
IHRoZSBjb21waWxlciB3aGF0IHRoZSBzaXplIG9mDQp0aGUgc3RydWN0IGlzIHdoZW4gbWl4
aW5nIHR5cGVzIGluIGJpdGZpZWxkcyAoaW4gdGhpcyBjYXNlOiBib29sIGFuZCB1aW50NjRf
dCkuDQoNCj4gQWNrZWQtYnk6IEp1bGllbiBHcmFsbCA8amdyYWxsQGFtYXpvbi5jb20+DQoN
ClRoYW5rcywNCg0KDQpKdWVyZ2VuDQoNCg==
--------------lJdRCorVmJ8MUbKIr9aku6fi
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-----

--------------lJdRCorVmJ8MUbKIr9aku6fi--

--------------lMU02RK5OQuKa03n1bOWkQjh--

--------------mgRz7VM0cn4yn0PFQ15v0TSC
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/Ey8FAmV5SacFAwAAAAAACgkQsN6d1ii/Ey87
YAf+MtnjJpCZG5n+0WLoWkcsel70y9nBuGlTps4ik7IUJOeUbJySMdz4SOyM3fyB7rZs7gWji4SE
OYDG1mv9HTaFniuP5U1J5vlv6BUWorQxbtgIrAJfsh6ccIoCdWN6KsFXGoYgMJFoLECKNqe+4mji
hhwt6Ej4dbb7E8hF37fB4l9DctdSlJe5bydzv71YcBmgu+W0IAxLgGQPrdSaWhngEkXoqV6dQDA2
wZ58tOcVvvnJHJ6poL3TjmqNt3ni59RLaeRMQVAeYqf6M7qOkXKhtDL/oylPvNS9fobGypGPOSIP
KCuEybNT6zrk5rnLb+ZsC5bn084uvA3AYjxl4kI7AQ==
=Tpnt
-----END PGP SIGNATURE-----

--------------mgRz7VM0cn4yn0PFQ15v0TSC--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 06:17:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 06:17:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653720.1020184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDIYc-0004O4-97; Wed, 13 Dec 2023 06:17:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653720.1020184; Wed, 13 Dec 2023 06:17: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 1rDIYc-0004Nx-6Y; Wed, 13 Dec 2023 06:17:22 +0000
Received: by outflank-mailman (input) for mailman id 653720;
 Wed, 13 Dec 2023 06:17: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=7vuN=HY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rDIYb-0004Nr-6l
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 06:17:21 +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 449bf78d-997f-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 07:17:19 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 22F621FD3B;
 Wed, 13 Dec 2023 06:17:18 +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 A5F1F137E8;
 Wed, 13 Dec 2023 06:17:17 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id CQ7RJm1MeWX5EAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 13 Dec 2023 06:17:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 449bf78d-997f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702448238; 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=mHK8q3vJE+OjcW2u4TBQGGX1PBvKCT0ty4MmbcIUzu0=;
	b=EuPa+9IyqehDiHAFW7uxCKjfGOrV3Y6+651v2WI4RWIUALgee4OYE3objGMMDpnqNuFiIY
	x5u1qj3NiPyZ4hN6Say8MbR4qDpgfqwMvVFOtWvlfxduTmzKResMmZxh9lMXVPskosLg3K
	kL6uHW3n4Lv22iqX0uJS20yFg2Fp6r8=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702448238; 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=mHK8q3vJE+OjcW2u4TBQGGX1PBvKCT0ty4MmbcIUzu0=;
	b=EuPa+9IyqehDiHAFW7uxCKjfGOrV3Y6+651v2WI4RWIUALgee4OYE3objGMMDpnqNuFiIY
	x5u1qj3NiPyZ4hN6Say8MbR4qDpgfqwMvVFOtWvlfxduTmzKResMmZxh9lMXVPskosLg3K
	kL6uHW3n4Lv22iqX0uJS20yFg2Fp6r8=
Message-ID: <f619efa1-da81-446b-968b-f81a2d18a7e5@suse.com>
Date: Wed, 13 Dec 2023 07:17:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] xen/spinlock: add explicit non-recursive locking
 functions
Content-Language: en-US
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-8-jgross@suse.com>
 <c7a969af-274b-4e92-b083-56059cbc98d6@xen.org>
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: <c7a969af-274b-4e92-b083-56059cbc98d6@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------U8pLdVWt4PD8TQ8TSHL0ppGQ"
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -2.99
X-Spam-Level: 
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	none
X-Spamd-Result: default: False [-5.99 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_TWELVE(0.00)[15];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Score: -5.99

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------U8pLdVWt4PD8TQ8TSHL0ppGQ
Content-Type: multipart/mixed; boundary="------------x96oUW6390DxsmmhINMkChZW";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>
Message-ID: <f619efa1-da81-446b-968b-f81a2d18a7e5@suse.com>
Subject: Re: [PATCH v4 07/12] xen/spinlock: add explicit non-recursive locking
 functions
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-8-jgross@suse.com>
 <c7a969af-274b-4e92-b083-56059cbc98d6@xen.org>
In-Reply-To: <c7a969af-274b-4e92-b083-56059cbc98d6@xen.org>

--------------x96oUW6390DxsmmhINMkChZW
Content-Type: multipart/mixed; boundary="------------0mFD8HQnVjlRlrC00R0b1cEe"

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

T24gMTIuMTIuMjMgMTk6NDksIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDEyLzEyLzIwMjMgMDk6NDcsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiAt
I2RlZmluZSBzcGluX2xvY2tfaW5pdF9wcm9mKHMsIGwpIF9fc3Bpbl9sb2NrX2luaXRfcHJv
ZihzLCBsLCBzcGlubG9ja190KQ0KPj4gLSNkZWZpbmUgcnNwaW5fbG9ja19pbml0X3Byb2Yo
cywgbCkgX19zcGluX2xvY2tfaW5pdF9wcm9mKHMsIGwsIHJzcGlubG9ja190KQ0KPj4gKyNk
ZWZpbmUgc3Bpbl9sb2NrX2luaXRfcHJvZihzLCBsKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgXA0KPj4gK8KgwqDCoCBfX3NwaW5fbG9ja19pbml0X3Byb2YocywgbCwg
bG9jaywgc3BpbmxvY2tfdCwgMCkNCj4+ICsjZGVmaW5lIHJzcGluX2xvY2tfaW5pdF9wcm9m
KHMsIGwpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXA0KPj4gK8KgwqDCoCBf
X3NwaW5fbG9ja19pbml0X3Byb2YocywgbCwgcmxvY2ssIHJzcGlubG9ja190LCAxKQ0KPj4g
wqAgdm9pZCBfbG9ja19wcm9maWxlX3JlZ2lzdGVyX3N0cnVjdCgNCj4+IMKgwqDCoMKgwqAg
aW50MzJfdCB0eXBlLCBzdHJ1Y3QgbG9ja19wcm9maWxlX3FoZWFkICpxaGVhZCwgaW50MzJf
dCBpZHgpOw0KPj4gQEAgLTE3NCw2ICsxNzksNyBAQCBzdHJ1Y3QgbG9ja19wcm9maWxlX3Fo
ZWFkIHsgfTsNCj4+IMKgICNlbmRpZg0KPj4gKw0KPiANCj4gU3B1cmlvdXMgY2hhbmdlPw0K
DQpJbmRlZWQsIHdpbGwgcmVtb3ZlIGl0Lg0KDQo+IA0KPj4gwqAgdHlwZWRlZiB1bmlvbiB7
DQo+PiDCoMKgwqDCoMKgIHVpbnQzMl90IGhlYWRfdGFpbDsNCj4+IMKgwqDCoMKgwqAgc3Ry
dWN0IHsNCj4+IEBAIC0yNjEsNCArMjY3LDEyIEBAIHZvaWQgcnNwaW5fdW5sb2NrX2lycXJl
c3RvcmUocnNwaW5sb2NrX3QgKmxvY2ssIHVuc2lnbmVkIA0KPj4gbG9uZyBmbGFncyk7DQo+
PiDCoCAvKiBFbnN1cmUgYSBsb2NrIGlzIHF1aWVzY2VudCBiZXR3ZWVuIHR3byBjcml0aWNh
bCBvcGVyYXRpb25zLiAqLw0KPj4gwqAgI2RlZmluZSBzcGluX2JhcnJpZXIobCnCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9zcGluX2JhcnJpZXIobCkNCj4+ICsjZGVmaW5lIG5y
c3Bpbl90cnlsb2NrKGwpwqDCoMKgIHNwaW5fdHJ5bG9jayhsKQ0KPj4gKyNkZWZpbmUgbnJz
cGluX2xvY2sobCnCoMKgwqDCoMKgwqAgc3Bpbl9sb2NrKGwpDQo+PiArI2RlZmluZSBucnNw
aW5fdW5sb2NrKGwpwqDCoMKgwqAgc3Bpbl91bmxvY2sobCkNCj4+ICsjZGVmaW5lIG5yc3Bp
bl9sb2NrX2lycShsKcKgwqAgc3Bpbl9sb2NrX2lycShsKQ0KPj4gKyNkZWZpbmUgbnJzcGlu
X3VubG9ja19pcnEobCkgc3Bpbl91bmxvY2tfaXJxKGwpDQo+PiArI2RlZmluZSBucnNwaW5f
bG9ja19pcnFzYXZlKGwsIGYpwqDCoMKgwqDCoCBzcGluX2xvY2tfaXJxc2F2ZShsLCBmKQ0K
Pj4gKyNkZWZpbmUgbnJzcGluX3VubG9ja19pcnFyZXN0b3JlKGwsIGYpIHNwaW5fdW5sb2Nr
X2lycXJlc3RvcmUobCwgZikNCj4gDQo+IFRoZXJlIGlzIGEgY29tbWVudCBkZXNjcmliaW5n
IFtyXXNwaW5sb2NrIGJ1dCBub3QgdGhpcyBuZXcgdmFyaWFudC4gQ2FuIHlvdSBhZGQgDQo+
IG9uZT8NCg0KT2theS4NCg0KPiBUaGF0IHNhaWQsIEkga25vdyB0aGlzIGlzIGV4aXN0aW5n
IGNvZGUsIGJ1dCBJIGhhdmUgdG8gYWRtaXQgdGhpcyBpcyBhIGJpdCANCj4gdW5jbGVhciB3
aHkgd2UgYXJlIGFsbG93aW5nIGFuIHJlY3Vyc2l2ZSBzcGlubG9jayB0byBiZSBub24tcmVj
dXJzaXZlLiBUbyBtZSBpdCANCj4gc291bmRzIGxpa2Ugd2UgYXJlIG1ha2luZyB0aGUgdHlw
ZXNhZmUgbm90IHZlcnkgc2FmZSBiZWNhdXNlIGl0IGRvZXNuJ3QgDQo+IGd1YXJhbnRlZSB0
aGF0IHdlIGFyZSBub3QgbWl4aW5nIHRoZSBjYWxsIG5yc3Bpbl8qIHdpdGggcnNwaW5fKi4N
Cg0KVGhpcyBpcyB0aGUgY3VycmVudCBBUEkuDQoNCklmIHlvdSBoYXZlIGxvY2tlZCB3aXRo
IG5yc3Bpbl8qLCBhbnkgcnNwaW5fKiBhdHRlbXB0IG9uIHRoZSBzYW1lIGxvY2sgd2lsbA0K
c3BpbiB1bnRpbCByc3Bpbl91bmxvY2sgKG5yc3Bpbl8qIHdpbGwgbm90IHNldCByZWN1cnNl
X2NwdSwgYnV0IHRha2UgdGhlDQpsb2NrKS4NCg0KSWYgeW91IGhhdmUgbG9ja2VkIHdpdGgg
cnNwaW5fKiwgYW55IG5yc3Bpbl8qIGF0dGVtcHQgb24gdGhlIHNhbWUgbG9jayB3aWxsDQpz
cGluLCB0b28uDQoNClNvIEkgZG9uJ3Qgc2VlIGFueSBtYWpvciBwcm9ibGVtIHJlZ2FyZGlu
ZyBhY2NpZGVudGFsIG1pc3VzZSwgd2hpY2ggd291bGRuJ3QNCmJlIHZpc2libGUgYnkgZGVh
ZGxvY2tzICh0aGVyZSBpcyBubyBzaWxlbnQgbWlzYmVoYXZpb3IpLg0KDQoNCkp1ZXJnZW4N
Cg==
--------------0mFD8HQnVjlRlrC00R0b1cEe
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-----

--------------0mFD8HQnVjlRlrC00R0b1cEe--

--------------x96oUW6390DxsmmhINMkChZW--

--------------U8pLdVWt4PD8TQ8TSHL0ppGQ
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/Ey8FAmV5TG0FAwAAAAAACgkQsN6d1ii/Ey88
fwf+PvmY90SgiqWCSfRxWMU9h8Ot/XAenRzhPeyvbA7doUyyvw2EFI9i7ly/ILpkZV1hkOSkUUCQ
nLdSfK6RWhaDsGxMa+R/3c6ExNR1p5HFTKEfG9TYHgxixcb/lxVc0YRWNLUGDv/LXn1j8ieRghV8
mgnuwkyDU6tSsvQCPEZri9zPKLnFggOFMmSb4AWz9H5jpwmPl8SgYzgB4/XF5y3pyKpTJxNdqxi4
Z6YUAh4dxekQKjtCT4f7hA88xTBcepSzKCuTRxBMxBYyJDdb3C186+q7Eye1/L2Ry4/bleKIYz4d
0WjOjoualKHu4qBce8xnTdNpBxkURVtStsWnFiMN3w==
=zJbY
-----END PGP SIGNATURE-----

--------------U8pLdVWt4PD8TQ8TSHL0ppGQ--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 06:23:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 06:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653723.1020195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDIea-0006RW-3N; Wed, 13 Dec 2023 06:23:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653723.1020195; Wed, 13 Dec 2023 06:23:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDIea-0006RP-0F; Wed, 13 Dec 2023 06:23:32 +0000
Received: by outflank-mailman (input) for mailman id 653723;
 Wed, 13 Dec 2023 06:23:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7vuN=HY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rDIeY-0006RJ-K4
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 06:23:30 +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 20fd1715-9980-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 07:23:28 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 907281FD3B;
 Wed, 13 Dec 2023 06:23:27 +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 546CC137E8;
 Wed, 13 Dec 2023 06:23:27 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 8b1ME99NeWVWEgAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 13 Dec 2023 06:23: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: 20fd1715-9980-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702448607; 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=KDFeuLJyTK5PzLLtE5vASfd0/tLQd+ki6juLzbRUZ98=;
	b=NA2v0uvnOLqyuOjPT7/dKdgV00vnIvRlswKdRe9OIVPUoWti4/59lfYfyYwpDr3AkFmnYr
	GVU/HzKI5woBOEFDzFiZmrSnZcxw5YYlyu5O5zltXkOCHnbyil88e4KFRDb0zSUeUS1B8M
	H2grGz7zd4V769SO3xlI6R9EmZrKMGo=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702448607; 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=KDFeuLJyTK5PzLLtE5vASfd0/tLQd+ki6juLzbRUZ98=;
	b=NA2v0uvnOLqyuOjPT7/dKdgV00vnIvRlswKdRe9OIVPUoWti4/59lfYfyYwpDr3AkFmnYr
	GVU/HzKI5woBOEFDzFiZmrSnZcxw5YYlyu5O5zltXkOCHnbyil88e4KFRDb0zSUeUS1B8M
	H2grGz7zd4V769SO3xlI6R9EmZrKMGo=
Message-ID: <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
Date: Wed, 13 Dec 2023 07:23:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
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: <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------WKk2qVpHJXSxLz1Z52Et2iE2"
X-Spam-Level: 
X-Spam-Score: -6.19
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	none
X-Spamd-Result: default: False [-5.99 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[7];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Score: -5.99

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------WKk2qVpHJXSxLz1Z52Et2iE2
Content-Type: multipart/mixed; boundary="------------iWUSR0tWUQi01lXyqFCaeIuu";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Message-ID: <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
In-Reply-To: <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>

--------------iWUSR0tWUQi01lXyqFCaeIuu
Content-Type: multipart/mixed; boundary="------------FcIac008lxzNOZ00rjX5usD0"

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

T24gMTIuMTIuMjMgMjA6MTAsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDEyLzEyLzIwMjMgMDk6NDcsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBB
ZGQgYW5vdGhlciBmdW5jdGlvbiBsZXZlbCBpbiBzcGlubG9jay5jIGhpZGluZyB0aGUgc3Bp
bmxvY2tfdCBsYXlvdXQNCj4+IGZyb20gdGhlIGxvdyBsZXZlbCBsb2NraW5nIGNvZGUuDQo+
Pg0KPj4gVGhpcyBpcyBkb25lIGluIHByZXBhcmF0aW9uIG9mIGludHJvZHVjaW5nIHJzcGlu
bG9ja190IGZvciByZWN1cnNpdmUNCj4+IGxvY2tzIHdpdGhvdXQgaGF2aW5nIHRvIGR1cGxp
Y2F0ZSBhbGwgb2YgdGhlIGxvY2tpbmcgY29kZS4NCj4gDQo+IFNvIGFsbCB0aGUgZmllbGRz
IHlvdSBwYXNzIGFyZSB0aGUgb25lIGZyb20gc3BpbmxvY2suDQo+IA0KPiBMb29raW5nIGF0
IHBhaG9sZSBhZnRlciB0aGlzIHNlcmllcyBpcyBhcHBsaWQsIHdlIGhhdmU6DQo+IA0KPiA9
PT09IERlYnVnICsgTG9jayBwcm9maWxlID09PT0NCj4gDQo+IHN0cnVjdCBzcGlubG9jayB7
DQo+ICDCoMKgwqDCoMKgwqDCoCBzcGlubG9ja190aWNrZXRzX3TCoMKgwqDCoMKgwqDCoMKg
IHRpY2tldHM7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDCoCAwwqDCoMKg
wqAgNCAqLw0KPiAgwqDCoMKgwqDCoMKgwqAgdW5pb24gbG9ja19kZWJ1Z8KgwqDCoMKgwqDC
oMKgwqDCoMKgIGRlYnVnO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDC
oMKgIDTCoMKgwqDCoCA0ICovDQo+ICDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgbG9ja19wcm9m
aWxlICrCoMKgwqDCoMKgIHByb2ZpbGU7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyrC
oMKgwqDCoCA4wqDCoMKgwqAgOCAqLw0KPiANCj4gIMKgwqDCoMKgwqDCoMKgIC8qIHNpemU6
IDE2LCBjYWNoZWxpbmVzOiAxLCBtZW1iZXJzOiAzICovDQo+ICDCoMKgwqDCoMKgwqDCoCAv
KiBsYXN0IGNhY2hlbGluZTogMTYgYnl0ZXMgKi8NCj4gfTsNCj4gc3RydWN0IHJzcGlubG9j
ayB7DQo+ICDCoMKgwqDCoMKgwqDCoCBzcGlubG9ja190aWNrZXRzX3TCoMKgwqDCoMKgwqDC
oMKgIHRpY2tldHM7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDCoCAwwqDC
oMKgwqAgNCAqLw0KPiAgwqDCoMKgwqDCoMKgwqAgdWludDE2X3TCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVjdXJzZV9jcHU7wqDCoMKgwqDCoMKgwqDCoMKgIC8q
wqDCoMKgwqAgNMKgwqDCoMKgIDIgKi8NCj4gIMKgwqDCoMKgwqDCoMKgIHVpbnQ4X3TCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWN1cnNlX2NudDvCoMKgwqDC
oMKgwqDCoMKgwqAgLyrCoMKgwqDCoCA2wqDCoMKgwqAgMSAqLw0KPiANCj4gIMKgwqDCoMKg
wqDCoMKgIC8qIFhYWCAxIGJ5dGUgaG9sZSwgdHJ5IHRvIHBhY2sgKi8NCj4gDQo+ICDCoMKg
wqDCoMKgwqDCoCB1bmlvbiBsb2NrX2RlYnVnwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVidWc7
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgOMKgwqDCoMKgIDQg
Ki8NCj4gDQo+ICDCoMKgwqDCoMKgwqDCoCAvKiBYWFggNCBieXRlcyBob2xlLCB0cnkgdG8g
cGFjayAqLw0KPiANCj4gIMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBsb2NrX3Byb2ZpbGUgKsKg
wqDCoMKgwqAgcHJvZmlsZTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDCoCAx
NsKgwqDCoMKgIDggKi8NCj4gDQo+ICDCoMKgwqDCoMKgwqDCoCAvKiBzaXplOiAyNCwgY2Fj
aGVsaW5lczogMSwgbWVtYmVyczogNSAqLw0KPiAgwqDCoMKgwqDCoMKgwqAgLyogc3VtIG1l
bWJlcnM6IDE5LCBob2xlczogMiwgc3VtIGhvbGVzOiA1ICovDQo+ICDCoMKgwqDCoMKgwqDC
oCAvKiBsYXN0IGNhY2hlbGluZTogMjQgYnl0ZXMgKi8NCj4gfTsNCj4gDQo+IA0KPiA9PT09
IERlYnVnID09PT0NCj4gDQo+IHN0cnVjdCBzcGlubG9jayB7DQo+ICDCoMKgwqDCoMKgwqDC
oCBzcGlubG9ja190aWNrZXRzX3TCoMKgwqDCoMKgwqDCoMKgIHRpY2tldHM7wqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDCoCAwwqDCoMKgwqAgNCAqLw0KPiAgwqDCoMKg
wqDCoMKgwqAgdW5pb24gbG9ja19kZWJ1Z8KgwqDCoMKgwqDCoMKgwqDCoMKgIGRlYnVnO8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDCoMKgIDTCoMKgwqDCoCA0ICov
DQo+IA0KPiAgwqDCoMKgwqDCoMKgwqAgLyogc2l6ZTogOCwgY2FjaGVsaW5lczogMSwgbWVt
YmVyczogMiAqLw0KPiAgwqDCoMKgwqDCoMKgwqAgLyogbGFzdCBjYWNoZWxpbmU6IDggYnl0
ZXMgKi8NCj4gfTsNCj4gc3RydWN0IHJzcGlubG9jayB7DQo+ICDCoMKgwqDCoMKgwqDCoCBz
cGlubG9ja190aWNrZXRzX3TCoMKgwqDCoMKgwqDCoMKgIHRpY2tldHM7wqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDCoCAwwqDCoMKgwqAgNCAqLw0KPiAgwqDCoMKgwqDC
oMKgwqAgdWludDE2X3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVj
dXJzZV9jcHU7wqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgNMKgwqDCoMKgIDIgKi8N
Cj4gIMKgwqDCoMKgwqDCoMKgIHVpbnQ4X3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCByZWN1cnNlX2NudDvCoMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDCoCA2
wqDCoMKgwqAgMSAqLw0KPiANCj4gIMKgwqDCoMKgwqDCoMKgIC8qIFhYWCAxIGJ5dGUgaG9s
ZSwgdHJ5IHRvIHBhY2sgKi8NCj4gDQo+ICDCoMKgwqDCoMKgwqDCoCB1bmlvbiBsb2NrX2Rl
YnVnwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVidWc7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIC8qwqDCoMKgwqAgOMKgwqDCoMKgIDQgKi8NCj4gDQo+ICDCoMKgwqDCoMKgwqDC
oCAvKiBzaXplOiAxMiwgY2FjaGVsaW5lczogMSwgbWVtYmVyczogNCAqLw0KPiAgwqDCoMKg
wqDCoMKgwqAgLyogc3VtIG1lbWJlcnM6IDExLCBob2xlczogMSwgc3VtIGhvbGVzOiAxICov
DQo+ICDCoMKgwqDCoMKgwqDCoCAvKiBsYXN0IGNhY2hlbGluZTogMTIgYnl0ZXMgKi8NCj4g
fTsNCj4gDQo+ID09PT0gUHJvZCA9PT09DQo+IA0KPiBzdHJ1Y3Qgc3BpbmxvY2sgew0KPiAg
wqDCoMKgwqDCoMKgwqAgc3BpbmxvY2tfdGlja2V0c190wqDCoMKgwqDCoMKgwqDCoCB0aWNr
ZXRzO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgMMKgwqDCoMKgIDQg
Ki8NCj4gIMKgwqDCoMKgwqDCoMKgIHVuaW9uIGxvY2tfZGVidWfCoMKgwqDCoMKgwqDCoMKg
wqDCoCBkZWJ1ZzvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDCoCA0
wqDCoMKgwqAgMCAqLw0KPiANCj4gIMKgwqDCoMKgwqDCoMKgIC8qIHNpemU6IDQsIGNhY2hl
bGluZXM6IDEsIG1lbWJlcnM6IDIgKi8NCj4gIMKgwqDCoMKgwqDCoMKgIC8qIGxhc3QgY2Fj
aGVsaW5lOiA0IGJ5dGVzICovDQo+IH07DQo+IHN0cnVjdCByc3BpbmxvY2sgew0KPiAgwqDC
oMKgwqDCoMKgwqAgc3BpbmxvY2tfdGlja2V0c190wqDCoMKgwqDCoMKgwqDCoCB0aWNrZXRz
O8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgMMKgwqDCoMKgIDQgKi8N
Cj4gIMKgwqDCoMKgwqDCoMKgIHVpbnQxNl90wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHJlY3Vyc2VfY3B1O8KgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDCoMKgIDTC
oMKgwqDCoCAyICovDQo+ICDCoMKgwqDCoMKgwqDCoCB1aW50OF90wqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVjdXJzZV9jbnQ7wqDCoMKgwqDCoMKgwqDCoMKg
IC8qwqDCoMKgwqAgNsKgwqDCoMKgIDEgKi8NCj4gIMKgwqDCoMKgwqDCoMKgIHVuaW9uIGxv
Y2tfZGVidWfCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZWJ1ZzvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgLyrCoMKgwqDCoCA3wqDCoMKgwqAgMCAqLw0KPiANCj4gIMKgwqDCoMKg
wqDCoMKgIC8qIHNpemU6IDgsIGNhY2hlbGluZXM6IDEsIG1lbWJlcnM6IDQgKi8NCj4gIMKg
wqDCoMKgwqDCoMKgIC8qIHBhZGRpbmc6IDEgKi8NCj4gIMKgwqDCoMKgwqDCoMKgIC8qIGxh
c3QgY2FjaGVsaW5lOiA4IGJ5dGVzICovDQo+IH07DQo+IA0KPiANCj4gSSB0aGluayB3ZSBj
b3VsZCBlbWJlZCBzcGlubG9ja190IGluIHJzcGlubG9ja190IHdpdGhvdXQgaW5jcmVhc2lu
ZyByc3BpbmxvY2tfdC4gDQo+IEhhdmUgeW91IGNvbnNpZGVyZWQgaXQ/IFRoaXMgY291bGQg
cmVkdWNlIHRoZSBudW1iZXIgb2YgZnVuY3Rpb24gbGV2ZWwgDQo+IGludHJvZHVjZWQgaW4g
dGhpcyBzZXJpZXMuDQoNClRoYXQgd2FzIHRoZSBsYXlvdXQgaW4gdGhlIGZpcnN0IHZlcnNp
b24gb2YgdGhpcyBzZXJpZXMuIEphbiByZXF1ZXN0ZWQgdG8gY2hhbmdlDQppdCB0byB0aGUg
Y3VycmVudCBsYXlvdXQgWzFdLg0KDQoNCkp1ZXJnZW4NCg0KWzFdOiBodHRwczovL2xpc3Rz
Lnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAyMi0xMi9tc2cwMTA1NC5odG1s
DQo=
--------------FcIac008lxzNOZ00rjX5usD0
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-----

--------------FcIac008lxzNOZ00rjX5usD0--

--------------iWUSR0tWUQi01lXyqFCaeIuu--

--------------WKk2qVpHJXSxLz1Z52Et2iE2
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/Ey8FAmV5Td8FAwAAAAAACgkQsN6d1ii/Ey+d
IAf/ZcBVzHXWES0UNnwBxuJ0NRe+EHROcRUBB5j6Jrk1lSl7GsDfnlJBydyIjm5g67313HHVt+bU
LTDFGgc7lADFj0aq44rKyh8qhVcoengA4M1jnrJBmg0PsTgdT02EslLaUfTtM3CDDk3C5CnaDuuW
HAvrKaCjnqBBQAeAxqPKP/IC7ban9oiGj1bXtR5pG04hf687Qq9uJvMr76M2t+9u08NErnZWRftp
YmYrgoG+ebM4ByLGvRDUr3DdHmwOakeXRX+QnzXdm0ZXv1XR2rZ9Np56c2omuVBDgWDA8H6AGZ0l
LmFY84Gd7UgBfvCbE91Qn7zXUTl68L4e2hi4fDS7JQ==
=D3av
-----END PGP SIGNATURE-----

--------------WKk2qVpHJXSxLz1Z52Et2iE2--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 06:37:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 06:37:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653726.1020205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDIrz-00008w-8P; Wed, 13 Dec 2023 06:37:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653726.1020205; Wed, 13 Dec 2023 06:37: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 1rDIrz-00008p-5q; Wed, 13 Dec 2023 06:37:23 +0000
Received: by outflank-mailman (input) for mailman id 653726;
 Wed, 13 Dec 2023 06: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=AQxx=HY=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rDIrx-00008j-E9
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 06:37:21 +0000
Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com
 [2607:f8b0:4864:20::1034])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e7f28be-9982-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 07:37:17 +0100 (CET)
Received: by mail-pj1-x1034.google.com with SMTP id
 98e67ed59e1d1-28abb3c5b9cso985264a91.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 22:37:17 -0800 (PST)
Received: from [157.82.205.15] ([157.82.205.15])
 by smtp.gmail.com with ESMTPSA id
 u13-20020a170902e5cd00b001cff026df52sm9636038plf.221.2023.12.12.22.37.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 22:37:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e7f28be-9982-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1702449436; x=1703054236; 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=kMU0hw+gwGczR/gRWRQnDaEoeESPinDQdK01aukaVCQ=;
        b=OFKtfprH+eMxLTgFc9eOVRyO4ktOOoxAR/DXIr44WhmKKmjjaYC4p7WQDoQAnKDjiI
         g+XrZ7XI2+z+J/U3O4dlq6w27Ht6BjVDBYX9ck92HOj3LirVqgFJmMp7j+FGCiewKpS8
         bf1S4aqKlN+1mDL66iB/4o7ULnUGjGILnbTYd/JWsihg4+5RmNlbah6U5BXFBgUmfB7Y
         XJdU9pGSugGMQbELoRs+NSZUPOmck23Cao2iiqchiwfBnXqUQfudpUznn2cw2huC3k3w
         QAL0b9nTK66mzpb8Jgy9Y+AO6Vn8ZQ7N3Fcp04zH4aaCIbXfkAnjx4B6uWY51WqCFvzC
         q7IA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702449436; x=1703054236;
        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=kMU0hw+gwGczR/gRWRQnDaEoeESPinDQdK01aukaVCQ=;
        b=ezP3wIhySuWhy4uemfXRxEciHEUZ8RYIS3J4ZzfXRNCyt2MXHTVvgY7VxKb6lfrtD0
         vCpy9sW7GId5jcBL+TWFvl/T0nFFNLTGR1VMqcCeTQidrYUvMKL2mX1bxdazJIrGCjIe
         IV3T+AWa4X1FANOFSFX5PLuMEV1BjYKu1G0etQ921zF/ifZblwB0okV+XiPhRAPsfRx0
         pqsNmaLUWZmr7BdQD5OLH5kjjZRxxcTKcMKIYaQgOH+9qjgDf/E2fDCnQ75yuZE56K0d
         tCyE+43ziDpHtkRnH3WHQQvYvpYbvYbdOBnIuovQleqJuLz+jOAwiDAV/GaoE4H9dNBo
         kvXw==
X-Gm-Message-State: AOJu0Yx/j4o7iSnGPBoz1V76rZRJpEA9LZoW53vSuww0RBPeLqYuPoC7
	oEW8otUqn2h9pJtoJXQEYTjm5Q==
X-Google-Smtp-Source: AGHT+IG5o/HJjzAe1oqBwjDmyKD+jnryCVy/PNKNBzfMqSP/v+UwSWZ7GhdbAoPzo3ay4ybD2HWbEQ==
X-Received: by 2002:a17:902:eb87:b0:1d0:b944:6344 with SMTP id q7-20020a170902eb8700b001d0b9446344mr3145508plg.28.1702449435577;
        Tue, 12 Dec 2023 22:37:15 -0800 (PST)
Message-ID: <389fff8c-9f5d-4b6b-acd2-bc3e2110a9b3@daynix.com>
Date: Wed, 13 Dec 2023 15:37:00 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] system/cpus: rename qemu_mutex_lock_iothread() to
 bql_lock()
Content-Language: en-US
To: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org
Cc: =?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>,
 Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
 Artyom Tarasenko <atar4qemu@gmail.com>, Paul Durrant <paul@xen.org>,
 Daniel Henrique Barboza <danielhb413@gmail.com>,
 =?UTF-8?Q?C=C3=A9dric_Le_Goater?= <clg@kaod.org>,
 Paolo Bonzini <pbonzini@redhat.com>, BALATON Zoltan <balaton@eik.bme.hu>,
 Jagannathan Raman <jag.raman@oracle.com>,
 Anthony Perard <anthony.perard@citrix.com>,
 Nicholas Piggin <npiggin@gmail.com>,
 David Gibson <david@gibson.dropbear.id.au>,
 Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
 Alexander Graf <agraf@csgraf.de>, Hailiang Zhang
 <zhanghailiang@xfusion.com>, Marcelo Tosatti <mtosatti@redhat.com>,
 Jiaxun Yang <jiaxun.yang@flygoat.com>, Huacai Chen <chenhuacai@kernel.org>,
 Harsh Prateek Bora <harshpb@linux.ibm.com>,
 Ilya Leoshkevich <iii@linux.ibm.com>, Peter Xu <peterx@redhat.com>,
 Hyman Huang <yong.huang@smartx.com>, Fam Zheng <fam@euphon.net>,
 Song Gao <gaosong@loongson.cn>, Alistair Francis <alistair.francis@wdc.com>,
 =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 David Woodhouse <dwmw2@infradead.org>,
 Christian Borntraeger <borntraeger@linux.ibm.com>,
 Palmer Dabbelt <palmer@dabbelt.com>, Aurelien Jarno <aurelien@aurel32.net>,
 Leonardo Bras <leobras@redhat.com>, Jiri Slaby <jslaby@suse.cz>,
 Eric Farman <farman@linux.ibm.com>, Thomas Huth <thuth@redhat.com>,
 Richard Henderson <richard.henderson@linaro.org>,
 David Hildenbrand <david@redhat.com>, Michael Roth <michael.roth@amd.com>,
 Elena Ufimtseva <elena.ufimtseva@oracle.com>,
 Gerd Hoffmann <kraxel@redhat.com>, Cameron Esfahani <dirty@apple.com>,
 qemu-ppc@nongnu.org, John Snow <jsnow@redhat.com>,
 Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
 Weiwei Li <liwei1518@gmail.com>, Hanna Reitz <hreitz@redhat.com>,
 qemu-s390x@nongnu.org, qemu-block@nongnu.org,
 =?UTF-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>, kvm@vger.kernel.org,
 "Michael S. Tsirkin" <mst@redhat.com>,
 Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
 Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
 Andrey Smirnov <andrew.smirnov@gmail.com>,
 Reinoud Zandijk <reinoud@netbsd.org>, Kevin Wolf <kwolf@redhat.com>,
 Bin Meng <bin.meng@windriver.com>, Sunil Muthuswamy
 <sunilmut@microsoft.com>, Peter Maydell <peter.maydell@linaro.org>,
 qemu-riscv@nongnu.org, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
 Stafford Horne <shorne@gmail.com>, Fabiano Rosas <farosas@suse.de>,
 Juan Quintela <quintela@redhat.com>, Markus Armbruster <armbru@redhat.com>,
 qemu-arm@nongnu.org, Jason Wang <jasowang@redhat.com>,
 Eduardo Habkost <eduardo@habkost.net>, Max Filippov <jcmvbkbc@gmail.com>,
 Jean-Christophe Dubois <jcd@tribudubois.net>, Eric Blake
 <eblake@redhat.com>, Roman Bolshakov <rbolshakov@ddn.com>,
 Halil Pasic <pasic@linux.ibm.com>, xen-devel@lists.xenproject.org,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 David Woodhouse <dwmw@amazon.co.uk>
References: <20231212153905.631119-1-stefanha@redhat.com>
 <20231212153905.631119-2-stefanha@redhat.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <20231212153905.631119-2-stefanha@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 2023/12/13 0:39, Stefan Hajnoczi wrote:
> The Big QEMU Lock (BQL) has many names and they are confusing. The
> actual QemuMutex variable is called qemu_global_mutex but it's commonly
> referred to as the BQL in discussions and some code comments. The
> locking APIs, however, are called qemu_mutex_lock_iothread() and
> qemu_mutex_unlock_iothread().
> 
> The "iothread" name is historic and comes from when the main thread was
> split into into KVM vcpu threads and the "iothread" (now called the main
> loop thread). I have contributed to the confusion myself by introducing
> a separate --object iothread, a separate concept unrelated to the BQL.
> 
> The "iothread" name is no longer appropriate for the BQL. Rename the
> locking APIs to:
> - void bql_lock(void)
> - void bql_unlock(void)
> - bool bql_locked(void)
> 
> There are more APIs with "iothread" in their names. Subsequent patches
> will rename them. There are also comments and documentation that will be
> updated in later patches.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Paul Durrant <paul@xen.org>
> Acked-by: Fabiano Rosas <farosas@suse.de>
> Acked-by: David Woodhouse <dwmw@amazon.co.uk>
> Reviewed-by: CÃ©dric Le Goater <clg@kaod.org>
> Acked-by: Peter Xu <peterx@redhat.com>
> Acked-by: Eric Farman <farman@linux.ibm.com>
> Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
> ---
>   include/block/aio-wait.h             |   2 +-
>   include/qemu/main-loop.h             |  40 ++++-----
>   include/qemu/thread.h                |   2 +-
>   accel/accel-blocker.c                |  10 +--
>   accel/dummy-cpus.c                   |   8 +-
>   accel/hvf/hvf-accel-ops.c            |   4 +-
>   accel/kvm/kvm-accel-ops.c            |   4 +-
>   accel/kvm/kvm-all.c                  |  22 ++---
>   accel/tcg/cpu-exec.c                 |  26 +++---
>   accel/tcg/cputlb.c                   |  16 ++--
>   accel/tcg/tcg-accel-ops-icount.c     |   4 +-
>   accel/tcg/tcg-accel-ops-mttcg.c      |  12 +--
>   accel/tcg/tcg-accel-ops-rr.c         |  14 ++--
>   accel/tcg/tcg-accel-ops.c            |   2 +-
>   accel/tcg/translate-all.c            |   2 +-
>   cpu-common.c                         |   4 +-
>   dump/dump.c                          |   4 +-
>   hw/core/cpu-common.c                 |   6 +-
>   hw/i386/intel_iommu.c                |   6 +-
>   hw/i386/kvm/xen_evtchn.c             |  16 ++--
>   hw/i386/kvm/xen_overlay.c            |   2 +-
>   hw/i386/kvm/xen_xenstore.c           |   2 +-
>   hw/intc/arm_gicv3_cpuif.c            |   2 +-
>   hw/intc/s390_flic.c                  |  18 ++--
>   hw/misc/edu.c                        |   4 +-
>   hw/misc/imx6_src.c                   |   2 +-
>   hw/misc/imx7_src.c                   |   2 +-
>   hw/net/xen_nic.c                     |   8 +-
>   hw/ppc/pegasos2.c                    |   2 +-
>   hw/ppc/ppc.c                         |   4 +-
>   hw/ppc/spapr.c                       |   2 +-
>   hw/ppc/spapr_rng.c                   |   4 +-
>   hw/ppc/spapr_softmmu.c               |   4 +-
>   hw/remote/mpqemu-link.c              |  20 ++---
>   hw/remote/vfio-user-obj.c            |   2 +-
>   hw/s390x/s390-skeys.c                |   2 +-
>   migration/block-dirty-bitmap.c       |   4 +-
>   migration/block.c                    |  16 ++--
>   migration/colo.c                     |  60 +++++++-------
>   migration/dirtyrate.c                |  12 +--
>   migration/migration.c                |  52 ++++++------
>   migration/ram.c                      |  12 +--
>   replay/replay-internal.c             |   2 +-
>   semihosting/console.c                |   8 +-
>   stubs/iothread-lock.c                |   6 +-
>   system/cpu-throttle.c                |   4 +-
>   system/cpus.c                        |  51 ++++++------
>   system/dirtylimit.c                  |   4 +-
>   system/memory.c                      |   2 +-
>   system/physmem.c                     |   8 +-
>   system/runstate.c                    |   2 +-
>   system/watchpoint.c                  |   4 +-
>   target/arm/arm-powerctl.c            |  14 ++--
>   target/arm/helper.c                  |   4 +-
>   target/arm/hvf/hvf.c                 |   8 +-
>   target/arm/kvm.c                     |   4 +-
>   target/arm/kvm64.c                   |   4 +-
>   target/arm/ptw.c                     |   6 +-
>   target/arm/tcg/helper-a64.c          |   8 +-
>   target/arm/tcg/m_helper.c            |   6 +-
>   target/arm/tcg/op_helper.c           |  24 +++---
>   target/arm/tcg/psci.c                |   2 +-
>   target/hppa/int_helper.c             |   8 +-
>   target/i386/hvf/hvf.c                |   6 +-
>   target/i386/kvm/hyperv.c             |   4 +-
>   target/i386/kvm/kvm.c                |  28 +++----
>   target/i386/kvm/xen-emu.c            |  14 ++--
>   target/i386/nvmm/nvmm-accel-ops.c    |   4 +-
>   target/i386/nvmm/nvmm-all.c          |  20 ++---
>   target/i386/tcg/sysemu/fpu_helper.c  |   6 +-
>   target/i386/tcg/sysemu/misc_helper.c |   4 +-
>   target/i386/whpx/whpx-accel-ops.c    |   4 +-
>   target/i386/whpx/whpx-all.c          |  24 +++---
>   target/loongarch/csr_helper.c        |   4 +-
>   target/mips/kvm.c                    |   4 +-
>   target/mips/tcg/sysemu/cp0_helper.c  |   4 +-
>   target/openrisc/sys_helper.c         |  16 ++--
>   target/ppc/excp_helper.c             |  12 +--
>   target/ppc/kvm.c                     |   4 +-
>   target/ppc/misc_helper.c             |   8 +-
>   target/ppc/timebase_helper.c         |   8 +-
>   target/s390x/kvm/kvm.c               |   4 +-
>   target/s390x/tcg/misc_helper.c       | 118 +++++++++++++--------------
>   target/sparc/int32_helper.c          |   2 +-
>   target/sparc/int64_helper.c          |   6 +-
>   target/sparc/win_helper.c            |  20 ++---
>   target/xtensa/exc_helper.c           |   8 +-
>   ui/spice-core.c                      |   4 +-
>   util/async.c                         |   2 +-
>   util/main-loop.c                     |   8 +-
>   util/qsp.c                           |   6 +-
>   util/rcu.c                           |  14 ++--
>   audio/coreaudio.m                    |   4 +-
>   memory_ldst.c.inc                    |  18 ++--
>   target/i386/hvf/README.md            |   2 +-
>   ui/cocoa.m                           |  50 ++++++------
>   96 files changed, 530 insertions(+), 529 deletions(-)
> 
> diff --git a/include/block/aio-wait.h b/include/block/aio-wait.h
> index 5449b6d742..d22ca24329 100644
> --- a/include/block/aio-wait.h
> +++ b/include/block/aio-wait.h
> @@ -151,7 +151,7 @@ static inline bool in_aio_context_home_thread(AioContext *ctx)
>       }
>   
>       if (ctx == qemu_get_aio_context()) {
> -        return qemu_mutex_iothread_locked();
> +        return bql_locked();
>       } else {
>           return false;
>       }
> diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
> index 68e70e61aa..596a206acd 100644
> --- a/include/qemu/main-loop.h
> +++ b/include/qemu/main-loop.h
> @@ -248,19 +248,19 @@ GSource *iohandler_get_g_source(void);
>   AioContext *iohandler_get_aio_context(void);
>   
>   /**
> - * qemu_mutex_iothread_locked: Return lock status of the main loop mutex.
> + * bql_locked: Return lock status of the Big QEMU Lock (BQL)
>    *
> - * The main loop mutex is the coarsest lock in QEMU, and as such it
> + * The Big QEMU Lock (BQL) is the coarsest lock in QEMU, and as such it
>    * must always be taken outside other locks.  This function helps
>    * functions take different paths depending on whether the current
> - * thread is running within the main loop mutex.
> + * thread is running within the BQL.
>    *
>    * This function should never be used in the block layer, because
>    * unit tests, block layer tools and qemu-storage-daemon do not
>    * have a BQL.
>    * Please instead refer to qemu_in_main_thread().
>    */
> -bool qemu_mutex_iothread_locked(void);
> +bool bql_locked(void);
>   
>   /**
>    * qemu_in_main_thread: return whether it's possible to safely access
> @@ -312,58 +312,58 @@ bool qemu_in_main_thread(void);
>       } while (0)
>   
>   /**
> - * qemu_mutex_lock_iothread: Lock the main loop mutex.
> + * bql_lock: Lock the Big QEMU Lock (BQL).
>    *
> - * This function locks the main loop mutex.  The mutex is taken by
> + * This function locks the Big QEMU Lock (BQL).  The lock is taken by
>    * main() in vl.c and always taken except while waiting on
> - * external events (such as with select).  The mutex should be taken
> + * external events (such as with select).  The lock should be taken
>    * by threads other than the main loop thread when calling
>    * qemu_bh_new(), qemu_set_fd_handler() and basically all other
>    * functions documented in this file.
>    *
> - * NOTE: tools currently are single-threaded and qemu_mutex_lock_iothread
> + * NOTE: tools currently are single-threaded and bql_lock
>    * is a no-op there.
>    */
> -#define qemu_mutex_lock_iothread()                      \
> -    qemu_mutex_lock_iothread_impl(__FILE__, __LINE__)
> -void qemu_mutex_lock_iothread_impl(const char *file, int line);
> +#define bql_lock()                      \
> +    bql_lock_impl(__FILE__, __LINE__)

This line break is no longer necessary.


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 07:03:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 07:03:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653730.1020215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDJGv-0005DV-Du; Wed, 13 Dec 2023 07:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653730.1020215; Wed, 13 Dec 2023 07: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 1rDJGv-0005DO-9l; Wed, 13 Dec 2023 07:03:09 +0000
Received: by outflank-mailman (input) for mailman id 653730;
 Wed, 13 Dec 2023 07: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=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDJGu-0005DG-Dr
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 07:03:08 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aad1d23f-9985-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 08:03:07 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3363ebb277bso97414f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 23:03:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 n6-20020a5d6606000000b00332ff137c29sm12537187wru.79.2023.12.12.23.03.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 23:03:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aad1d23f-9985-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702450986; x=1703055786; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=4Gamhmm4WB1pdkOpIrL4JFJZCO8vgk5i08dxaSStvSg=;
        b=Gu7V1F2ZB6w76FMHZXZ/3xkENm99y9nxF8vQHlMwFkGhCy24wbtWV9321DZbM6Lwgr
         4uvTY7DMG/ZJjGKKMuUHNxHxRjkOjtWsd2ttqlHnaSWt0mdGnbDTQuvHvJUa1FRKnjZI
         CmmccHgblW4vIC+T1H1oInxuGyG0iy9am3H7BN4rRAPcH9qtIdXIeaAzqsLykXL1+IrO
         oobPeWWJ2YvziLVQR150k4Za/qcwS2pZxSmbXq9bjmlZAkMZ9O7iYUUBhcNw06yOKalx
         a3Dyg28Po1dCxkIVaXQbsMzziUqiwiuPE83EqSmlTVNigNrm31Jcf62BrOPtMfBEeXe+
         /+4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702450986; x=1703055786;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=4Gamhmm4WB1pdkOpIrL4JFJZCO8vgk5i08dxaSStvSg=;
        b=YetDq5uaG6URi+crWANCXb9fq4VUAFxPRRPX314FpOlXGh49nELDeA3Zx+xAdFquoE
         RHxBr6C0ZPlYc1U0/qGFbRGQqEQDNSv/5hLrIJBFlPNEKlADBxqLg4xe0B/u5rlHyZS7
         qSP8LmnBM9OPpTlgYqcQT9UtLEwIVt1u+ouwzIqRXg/U91sn/CxakHr08hPOdfy0q1Ej
         ZoNQuNI7xZtjO4iSY/ovetM9mNPz6G5ktn39qNLvExwoGh8Rkbd/pbVscBbXmKFE6cRA
         tUjhFCieR5Ir1CVD5IrcfeUqkSzRmG40obBqaqGpMPFI+x4iX+kOTpxHMjyLMiFePo3s
         QuRQ==
X-Gm-Message-State: AOJu0YwuHTVWAYrQUk0dOWA5Z1wTm8la1ekSgwQCIt5ZWN776uDAXPzR
	VzcqupLzbHKQJXTzVut3mQKg
X-Google-Smtp-Source: AGHT+IHm94ysyCN9oDiUvHGizTCUs26FyitVU7nYmhb5dbzo6IZRigx64whFPbAsg4iIGvZJFud0Ag==
X-Received: by 2002:adf:db0f:0:b0:333:3eaa:f67a with SMTP id s15-20020adfdb0f000000b003333eaaf67amr3645533wri.75.1702450986705;
        Tue, 12 Dec 2023 23:03:06 -0800 (PST)
Message-ID: <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
Date: Wed, 13 Dec 2023 08:03:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Content-Language: en-US
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>, "Huang, Honglei1"
 <Honglei1.Huang@amd.com>, "Zhang, Julia" <Julia.Zhang@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.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: <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.12.2023 03:47, Chen, Jiqian wrote:
> On 2023/12/12 17:30, Jan Beulich wrote:
>> On 12.12.2023 07:49, Chen, Jiqian wrote:
>>> On 2023/12/11 23:31, Roger Pau MonnÃ© wrote:
>>>> On Mon, Dec 11, 2023 at 12:40:08AM +0800, Jiqian Chen wrote:
>>>>> --- a/xen/arch/x86/hvm/hypercall.c
>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>>>> @@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>>  
>>>>>      switch ( cmd )
>>>>>      {
>>>>> +    case PHYSDEVOP_setup_gsi:
>>>>
>>>> I think given the new approach on the Linux side patches, where
>>>> pciback will configure the interrupt, there's no need to expose
>>>> setup_gsi anymore?
>>> The latest patch(the second patch of v3 on kernel side) does setup_gsi and map_pirq for passthrough device in pciback, so we need this and below.
>>>
>>>>
>>>>>      case PHYSDEVOP_map_pirq:
>>>>>      case PHYSDEVOP_unmap_pirq:
>>>>> +        if ( is_hardware_domain(currd) )
>>>>> +            break;
>>>>
>>>> Also Jan already pointed this out in v2: this hypercall needs to be
>>>> limited so a PVH dom0 cannot execute it against itself.  IOW: refuse
>>>> the hypercall if DOMID_SELF or the passed domid matches the current
>>>> domain domid.
>>> Yes, I remember Jan's suggestion, but since the latest patch(the second patch of v3 on kernel side) has change the implementation, it does setup_gsi and map_pirq for dom0 itself, so I didn't add the DOMID_SELF check.
>>
>> And why exactly would it do specifically the map_pirq? (Even the setup_gsi
>> looks questionable to me, but there might be reasons there.)
> Map_pirq is to solve the check failure problem. (pci_add_dm_done-> xc_domain_irq_permission-> XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0)
> Setup_gsi is because the gsi is never be unmasked, so the gsi is never be registered( vioapic_hwdom_map_gsi-> mp_register_gsi is never be called).

And it was previously made pretty clear by Roger, I think, that doing a "map"
just for the purpose of granting permission is, well, at best a temporary
workaround in the early development phase. If there's presently no hypercall
to _only_ grant permission to IRQ, we need to add one. In fact "map" would
likely better not have done two things at a time from the very beginning ...

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 07:14:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 07:14:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653733.1020224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDJSB-0007br-DP; Wed, 13 Dec 2023 07:14:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653733.1020224; Wed, 13 Dec 2023 07: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 1rDJSB-0007bk-Ao; Wed, 13 Dec 2023 07:14:47 +0000
Received: by outflank-mailman (input) for mailman id 653733;
 Wed, 13 Dec 2023 07:14:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kw6B=HY=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rDJS9-0007be-Sj
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 07:14:46 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20611.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 497a0ad3-9987-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 08:14:43 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DM6PR12MB4436.namprd12.prod.outlook.com (2603:10b6:5:2a3::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Wed, 13 Dec
 2023 07:14:40 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Wed, 13 Dec 2023
 07:14: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: 497a0ad3-9987-11ee-98e9-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iA+L6lSi3Mxr1IB3DRpBdt5vNxLu1rB5Ucnihd6IzcCWYTOpzfiyrlppc+33SDAsfzq8+Izep9w29LgSd1P4OJgRTmzf2d4bBjH0Yo2bfxgnyC8E58Ad3BUqmJ0qPvRMAHm1olNQKM3EXSa5z3LT/ohz193rktOXSBHiQpCgkpKRUn3ZEDB2PqPkvMWSw3AtCf/6j/gyHfzKXjDarWIJ9N4da6zSbq0VtAmF3LpDXLPVgs3dl5D01zMRvEFfIi91zofQKUCoxpfv7UnK29tWiCIpfOpjDiAnAOu1/OfReU9BxuDsK6C53dGH6hoJl5zr0VXQmFePz/b+zwwaGMCeXg==
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=9yRMuZTO92HjjP9nofExiqlYtPA+XYQvpt//WQYZ2+w=;
 b=bkXnU+nsrxSrwUxH5JpMqKxOfguv5/QI8P9Lk+h4ICB5KhazYrwKVhmp8gTsTC9LyZp44bW//NuaBB78c+pflmNmny7WFsjDUPEdzDpxbamScvpUen2wDo8MXi4Mtsj1MxAydVBOWHVlW8/qTmj1HvNot40kCpoRSI8FiLzdg37ty7xS/dHFU1RWcHbfisf3+Fr8cVSB6J9LZkAc6hZlwnwFOC+OAVTYcWyTcRXy7UmxZpzrXZW2hMdK2I7a+d5tKZ2TSTd8HlzS/ys1K2dEIKc7x79l9eGtrhmBUlEmVCFiBSazObkD2wjaSs+6VeCWNvjzXMUl6h1OGcKKDjTLkw==
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=9yRMuZTO92HjjP9nofExiqlYtPA+XYQvpt//WQYZ2+w=;
 b=NOCun8Sq9woExMUqsVTCFjvVqj/a6ejeYy7aaE2HDrkgJ+jsaSBaAHtR8xi882bxjq9vby1NoQo1B7M1yh2qgl8DedUDEUuu1VvWQBAzKRHwiLasGVBAyPdxYyzPSYM16uxnAg5DMHvcJcsJ7nm5e3VNFxzvBrTEb9bA1NHjITQ=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
	<jgross@suse.com>, Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Topic: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Thread-Index:
 AQHaHsGdlNZnjmvNCkucW725DqxYz7CSRC+AgADLdgCAALwOgIAAX9AAgAE42ICAA5dDgIAAxsiAgAC4TACAABRoAIABzBGAgAf5bQCAATuOgP//4n+AgAANqwCAABvwgIAAAHmAgAAFlQCAAczKgA==
Date: Wed, 13 Dec 2023 07:14:40 +0000
Message-ID:
 <BL1PR12MB5849094EEE3FCE80C9FCBD48E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
References:
 <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXculMdLgwGaRC7i@macbook>
 <BL1PR12MB584997DDE6839F2340022976E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXgeieg4E8UN0KoN@macbook> <50ca26a1-38e3-45fb-9c39-56e4d04de3e0@suse.com>
 <ZXhBb0Vt6gDuprHa@macbook> <c5d4e8a4-b286-4352-bf96-a67cb132b452@suse.com>
 <ZXhGhKkcmlEZOpwZ@macbook>
In-Reply-To: <ZXhGhKkcmlEZOpwZ@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: IA1PR12MB8495.namprd12.prod.outlook.com
 (15.20.7113.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_|DM6PR12MB4436:EE_
x-ms-office365-filtering-correlation-id: 86e414a8-981b-4ed2-dc4b-08dbfbab2c4e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 1qpUYoiSOTloduMAgkvEmccaHypsMbEOymcighg7aai5ZcA93W51ec2gGXamSFLSV7z6ie84tDO8mXQOVrD0UAMOyfpFTqPq+XhqkdzHfzg4mjNcfq+SjrcCIOns0F87ze6rXrTK7baecuai4F0ZIQ1UL2EY/yRnF73n51fVT+cc34P8V7SJXH2S3rwI1J5NN955SqZIpZBfcKGBWlQ7kN9WObJFqvWlbvk6XBymP3kCkiTsi2TcKBB5PK2CNSq2A90epXUmLga+2to/jLhHRVIfRQzQyf2a9Hz2y9Wtetn05Ke+Ai49aFu0JcJVCxSjTzi17QpWXtXLkuunYn09OocR5SbOtYZSnsE0U6hWZgpK3Q4PP9Zf0VCoHcUVwvqe1f4GHbAAOalv9NzB+al33TbhvN76OcQoOiuYDo2vuP4U5gJk9MWRSXbUNpcv5Zqm2rJ0a8eHtQDoZw0o1oD6fjc35YSCe1V1zC/cAsMXmGIkF9puWVxBbhOspIhxiYTc9MlczrxxhvzPLzUYG0h3lGzl7hFFyreBL6NBVw7UnSyh3PFeCVwPGNQXwaXxjZroGPQjNPeEvIT1l996RwNZlsYByLi2eS2XtdT+iJSzFlZJVSy8wb4ObZuTphi6oSSD
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:(13230031)(136003)(376002)(346002)(39860400002)(396003)(366004)(230922051799003)(451199024)(64100799003)(1800799012)(186009)(55016003)(83380400001)(26005)(478600001)(71200400001)(9686003)(53546011)(7696005)(6506007)(76116006)(54906003)(66446008)(64756008)(66476007)(66556008)(66946007)(316002)(110136005)(8676002)(4326008)(8936002)(38100700002)(122000001)(5660300002)(2906002)(38070700009)(41300700001)(52536014)(33656002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?a2ZjaEprRDBvTkx1MXdzc2Z5b3pEaE5EcmpVcDJidDZFZGVMc0M2d3ZBenU2?=
 =?utf-8?B?eUFRaFdUaW0rUW9tMWovd3VaK0dUSFpLNVdzeFhwT1RuSEpNNDRFZEdRV0wv?=
 =?utf-8?B?NjF0WFRnNUkzU3Nabi9zN1RRRTY4aUdqZFNRdWliU1dWbmlOand3U3FwSkwr?=
 =?utf-8?B?WEhIT1dRWlU2SDBPVE41eC9FMGo0TmdsbFF6a1NFeDBwNHJkSVRWbm9Baktw?=
 =?utf-8?B?UkRxZHVnY2FTSkdkZytWTVY2MEZ4aWRQWDdUUVNKN3hrOGJFcXE4WWZuVGUr?=
 =?utf-8?B?VllCcDBvYmR3ZjBwMFpwWi9Sbzc4TnVZYnhEZHIvWFcxanhuQzdHS2RzUmFi?=
 =?utf-8?B?eSt5VmdTbVFwNE51dE9jSm1XU3g4TFlZS2x0S3RsTTFiUEF5V2RMb1pzemoy?=
 =?utf-8?B?elBWRlY2a2kzOW9FaTg0ZVgvRDlrdDBjQVIvNWNTSnE0bmJqR211dkkyL0Nr?=
 =?utf-8?B?Mnc3QUdVNko2Nk4rZlNqdXpZZGJKeHAvZ1ZjeStJUWI5UnBuQVFGQkxRN2NE?=
 =?utf-8?B?NEJnZURPY0p0NHJqcjJHbUZtT1l5Z1lmclRWc3lGY1o0RHAvdlNSNk1Ybnlm?=
 =?utf-8?B?STJveVFJRndrSkRoSkFQU3I5ZXM0MDc0UmY2ZWFLMEJiZVFtZEhxeThscDFQ?=
 =?utf-8?B?ZDE4T1BIWmRTRGExcTkwTi9vUStPSG9UdS9HL3RmeUU4YUhsRy9nc3puOTBh?=
 =?utf-8?B?dTVFWjBSbko0VlQwNmpPMER5dzd5KzVWRGVLWWY4TkNHRmQyUzYrMmRVbzFt?=
 =?utf-8?B?UTl3a2QwdW1BUGszU29BNlE0cHUwcWJNREU1Q1Z3a2cxZWhxdFNlOUdPdWZh?=
 =?utf-8?B?c2NFd0w4V3ArTFF3RU4ydlE0L3ZSOGd6UXo2U0hLRm0zUDVXY2tNY0NocEd1?=
 =?utf-8?B?Wk9FQlVXcUF3N2l0MVhKTEFVdXgxd1pPRml1eVlFRElvb3o3VDB5YWZnVHA5?=
 =?utf-8?B?Z2s5R2xhRFd2d1QrUHo0UXoxLzhrVVNhc2xvN0dLWXZnTjZFWm1MdVk5dHBK?=
 =?utf-8?B?L1AwQlEzMW9zQ01sNnNmQmJEaG5yc0M3ZTMrZGN1L1d3M1B4SWFrYWhTL1hS?=
 =?utf-8?B?ZmtRYjNaTmp5WnZZQVd3ZjZvaFFDL2hWaTZBUlp3MWpvYTZaUS9KMFV0UGd3?=
 =?utf-8?B?N0pSZXZ5QitsbWJXanJ0VlBIOHhwdmh2N3h4bjl0M200aWZXL0ZiZUtmUU9a?=
 =?utf-8?B?WjNpTldRZERCV2dQRGk0NzdqTUhFVElIcHBLZUJONEw1KytSVDU4V21ZNGRK?=
 =?utf-8?B?TmxUVElZQlJoeTRHR0RHOURKQldlUElLYUJhUzV2ckd2N1RUWVZPeUs1aXor?=
 =?utf-8?B?Q1V3YTV4bFJWQjNpdmdaSXZiTHFoT1ZHRjgzWmJhUVdoVVRKdVJRKzNnSGxy?=
 =?utf-8?B?V1JvTndJZzNueFZzSmFibktnSEl3TVVQOG9yRWRMSmQ4OWYzdHEzRWxOL3dC?=
 =?utf-8?B?MTg0NEZrUWo3WnhPMXZnYlZDK29wdWI1d09zdUEvc0JleWk5R3YrR0tYU1RZ?=
 =?utf-8?B?VzgvaGlNc0pKK3BmZGRoRG1YbXVocUJYMWdxVXhiOEtBdnUvM1RrajVTeHgx?=
 =?utf-8?B?M0R5ZUJEb0ljTUFXS3VkM2w0RW9tQThLSFRKMnk2amltOHJmOXYrL2ZHcXR1?=
 =?utf-8?B?cVFuOStGcmgzc0p0TEZRNk5hQmtxQytzNUZ3bzByUHJ5U3NBTmV4dlIzRnFX?=
 =?utf-8?B?eTlqeTNWWHM2eXRvdFo1Znp5ZFBxRnFIVmdCaHZLbThLcDRpY1FTbml1T3Jq?=
 =?utf-8?B?dTlHVUVxRDM5cE1LRHNiY1pzL2xhMU9nYlBlckt1VDh5d0h6Q3MveFF3N1VJ?=
 =?utf-8?B?Ymp4MkdybTdReTFsTElXVlNjcUFVcktuWVFQUFhYRk91QkNueE9SRG1KZ2Rl?=
 =?utf-8?B?Z0tUdGZkbjErVGx5elpVQm5mMjJtcE5lU3JyYW9SUm9iT0NKcjRaMS8yRlF1?=
 =?utf-8?B?UGt3T2RRZHladnNROWlPRDVuTlpOWkNzeGplSVhVeUhiRWhMRlduM1hTWkov?=
 =?utf-8?B?TG9RZTcyOWRhRm5KM2ZhejRZUmJUU045bDN5VUk0Vy9DZTBiSkhWK283VnhR?=
 =?utf-8?B?M2dHZE9YMDRack9oY3pxc1M2c0dsQkJMQTBzK3hUVCthL0s1dTRYa2pHNWJN?=
 =?utf-8?Q?/gUY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BF9B457C68259148B0CCECAE3F8C77F5@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: 86e414a8-981b-4ed2-dc4b-08dbfbab2c4e
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 07:14:40.4204
 (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: q2N6jpWTAUmtegMAEUMQksjJKEPSw9AXhROWDz5ovT7v/+36TgEOIgujDx+TnMyFu490pPVt+EQZxT2dw7OdaQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4436

T24gMjAyMy8xMi8xMiAxOTozOSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gVHVlLCBE
ZWMgMTIsIDIwMjMgYXQgMTI6MTk6NDlQTSArMDEwMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+PiBP
biAxMi4xMi4yMDIzIDEyOjE4LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4+IE9uIFR1ZSwg
RGVjIDEyLCAyMDIzIGF0IDEwOjM4OjA4QU0gKzAxMDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+
PiAoSSB0aGluayB0aGUgQ2MgbGlzdCBpcyB0b28gbG9uZyBoZXJlLCBidXQgdGhlbiBJIGRvbid0
IGtub3cgd2hvIHRvDQo+Pj4+IGtlZXAgYW5kIHdobyB0byBwb3NzaWJseSBkcm9wLikNCj4+Pj4N
Cj4+Pj4gT24gMTIuMTIuMjAyMyAwOTo0OSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+
IE9uIFR1ZSwgRGVjIDEyLCAyMDIzIGF0IDA2OjE2OjQzQU0gKzAwMDAsIENoZW4sIEppcWlhbiB3
cm90ZToNCj4+Pj4+PiBPbiAyMDIzLzEyLzExIDIzOjQ1LCBSb2dlciBQYXUgTW9ubsOpIHdyb3Rl
Og0KPj4+Pj4+PiBPbiBXZWQsIERlYyAwNiwgMjAyMyBhdCAwNjowNzoyNkFNICswMDAwLCBDaGVu
LCBKaXFpYW4gd3JvdGU6DQo+Pj4+Pj4+PiArc3RhdGljIGludCB4ZW5fcHZoX3NldHVwX2dzaShn
c2lfaW5mb190ICpnc2lfaW5mbykNCj4+Pj4+Pj4+ICt7DQo+Pj4+Pj4+PiArICAgICAgIHN0cnVj
dCBwaHlzZGV2X3NldHVwX2dzaSBzZXR1cF9nc2k7DQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArICAg
ICAgIHNldHVwX2dzaS5nc2kgPSBnc2lfaW5mby0+Z3NpOw0KPj4+Pj4+Pj4gKyAgICAgICBzZXR1
cF9nc2kudHJpZ2dlcmluZyA9IChnc2lfaW5mby0+dHJpZ2dlciA9PSBBQ1BJX0VER0VfU0VOU0lU
SVZFID8gMCA6IDEpOw0KPj4+Pj4+Pj4gKyAgICAgICBzZXR1cF9nc2kucG9sYXJpdHkgPSAoZ3Np
X2luZm8tPnBvbGFyaXR5ID09IEFDUElfQUNUSVZFX0hJR0ggPyAwIDogMSk7DQo+Pj4+Pj4+PiAr
DQo+Pj4+Pj4+PiArICAgICAgIHJldHVybiBIWVBFUlZJU09SX3BoeXNkZXZfb3AoUEhZU0RFVk9Q
X3NldHVwX2dzaSwgJnNldHVwX2dzaSk7DQo+Pj4+Pj4+PiArfQ0KPj4+Pj4+Pg0KPj4+Pj4+PiBI
bSwgd2h5IG5vdCBzaW1wbHkgY2FsbCBwY2liaW9zX2VuYWJsZV9kZXZpY2UoKSBmcm9tIHBjaWJh
Y2s/ICBXaGF0DQo+Pj4+Pj4gcGNpYmlvc19lbmFibGVfZGV2aWNlIGhhZCBiZWVuIGNhbGxlZCB3
aGVuIHVzaW5nIGNtZCAieGwgcGNpLWFzc2lnbmFibGUtYWRkIHNiZGYiIGZyb20gcGNpYmFjay4g
QnV0IGl0IGRpZG4ndCBkbyBtYXBfcGlycSBhbmQgc2V0dXBfZ3NpLg0KPj4+Pj4+IEJlY2F1c2Ug
cGNpYmlvc19lbmFibGVfZGV2aWNlLT4gcGNpYmlvc19lbmFibGVfaXJxLT4gX19hY3BpX3JlZ2lz
dGVyX2dzaShhY3BpX3JlZ2lzdGVyX2dzaV9pb2FwaWMgUFZIIHNwZWNpZmljKQ0KPj4+Pj4+PiB5
b3UgYXJlIGRvaW5nIGhlcmUgdXNpbmcgdGhlIGh5cGVyY2FsbHMgaXMgYSBiYWNrZG9vciBpbnRv
IHdoYXQncyBkb25lDQo+Pj4+Pj4+IGF1dG9tYXRpY2FsbHkgYnkgWGVuIG9uIElPLUFQSUMgYWNj
ZXNzZXMgYnkgYSBQVkggZG9tMC4NCj4+Pj4+PiBCdXQgdGhlIGdzaSBkaWRuJ3QgYmUgdW5tYXNr
ZWQsIGFuZCB2aW9hcGljX2h3ZG9tX21hcF9nc2kgaXMgbmV2ZXIgY2FsbGVkLg0KPj4+Pj4+IFNv
LCBJIHRoaW5rIGluIHBjaWJhY2ssIGlmIHdlIGNhbiBkbyB3aGF0IHZpb2FwaWNfaHdkb21fbWFw
X2dzaSBkb2VzLg0KPj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4gSSBzZWUsIGl0IGRvZXMgc2V0dXAgdGhl
IElPLUFQSUMgcGluIGJ1dCBkb2Vzbid0IHVubWFzayBpdCwgdGhhdCdzDQo+Pj4+PiB3aGF0IEkg
ZmVhcmVkLg0KPj4+Pj4NCj4+Pj4+Pj4gSXQgd2lsbCBiZSBtdWNoIG1vcmUgbmF0dXJhbCBmb3Ig
dGhlIFBWSCBkb20wIG1vZGVsIHRvIHNpbXBseSB1c2UgdGhlDQo+Pj4+Pj4+IG5hdGl2ZSB3YXkg
dG8gY29uZmlndXJlIGFuZCB1bm1hc2sgdGhlIElPLUFQSUMgcGluLCBhbmQgdGhhdCB3b3VsZA0K
Pj4+Pj4+PiBjb3JyZWN0bHkgc2V0dXAgdGhlIHRyaWdnZXJpbmcvcG9sYXJpdHkgYW5kIGJpbmQg
aXQgdG8gZG9tMCB3aXRob3V0DQo+Pj4+Pj4+IHJlcXVpcmluZyB0aGUgdXNhZ2Ugb2YgYW55IGh5
cGVyY2FsbHMuDQo+Pj4+Pj4gRG8geW91IHN0aWxsIHByZWZlciB0aGF0IEkgY2FsbGVkIHVubWFz
a19pcnEgaW4gcGNpc3R1Yl9pbml0X2RldmljZSwgYXMgdGhpcyB2MiBwYXRjaCBkbz8NCj4+Pj4+
PiBCdXQgVGhvbWFzIEdsZWl4bmVyIHRoaW5rIGl0IGlzIG5vdCBzdWl0YWJsZSB0byBleHBvcnQg
dW5tYXNrX2lycS4NCj4+Pj4+DQo+Pj4+PiBZZWFoLCB0aGF0IHdhc24ndCBnb29kLg0KPj4+Pj4N
Cj4+Pj4+Pj4NCj4+Pj4+Pj4gSXMgdGhhdCBhbiBpc3N1ZSBzaW5jZSBpbiB0aGF0IGNhc2UgdGhl
IGdzaSB3aWxsIGdldCBtYXBwZWQgYW5kIGJvdW5kDQo+Pj4+Pj4+IHRvIGRvbTA/DQo+Pj4+Pj4g
RG9tMCBkbyBtYXBfcGlycSBpcyB0byBwYXNzIHRoZSBjaGVjayB4Y19kb21haW5faXJxX3Blcm1p
c3Npb24oKS0+IHBpcnFfYWNjZXNzX3Blcm1pdHRlZCgpLCANCj4+Pj4+DQo+Pj4+PiBDYW4gd2Ug
c2VlIGFib3V0IGZpbmRpbmcgYW5vdGhlciB3YXkgdG8gZml4IHRoaXMgY2hlY2s/DQo+Pj4+Pg0K
Pj4+Pj4gT25lIG9wdGlvbiB3b3VsZCBiZSBncmFudGluZyBwZXJtaXNzaW9ucyBvdmVyIHRoZSBJ
UlEgaW4NCj4+Pj4+IFBIWVNERVZPUF9zZXR1cF9nc2k/DQo+Pj4+DQo+Pj4+IFRoZXJlJ3Mgbm8g
ZG9tYWluIGF2YWlsYWJsZSB0aGVyZSwgYW5kIGltbyBpdCdzIGFsc28gdGhlIHdyb25nIGludGVy
ZmFjZSB0bw0KPj4+PiBwb3NzaWJseSBncmFudCBhbnkgcGVybWlzc2lvbnMuDQo+Pj4NCj4+PiBX
ZWxsLCB0aGUgZG9tYWluIGlzIHRoZSBjYWxsZXIuDQo+Pg0KPj4gR3JhbnRpbmcgcGVybWlzc2lv
biB0byBpdHNlbGY/DQo+IA0KPiBTZWUgYmVsb3cgaW4gdGhlIHByZXZpb3VzIGVtYWlsLCB0aGUg
aXNzdWUgaXMgbm90IHdpdGggdGhlDQo+IHBlcm1pc3Npb25zLCB3aGljaCBhcmUgY29ycmVjdGx5
IGFzc2lnbmVkIGZyb20NCj4gZG9tMF9zZXR1cF9wZXJtaXNzaW9ucygpLCBidXQgdGhlIHVzYWdl
IG9mIGRvbWFpbl9waXJxX3RvX2lycSgpIGluDQo+IHBpcnFfYWNjZXNzX3Blcm1pdHRlZCgpIGFz
IGNhbGxlZCBieSBYRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9uLg0KPiBUaGVyZSdzIG5vIG5lZWQg
dG8gcGxheSB3aXRoIHRoZSBwZXJtaXNzaW9ucyBhdCBhbGwuDQpZZXMsIHRoZSBwcm9ibGVtIGlz
IHBjaV9hZGRfZG1fZG9uZS0+IHhjX2RvbWFpbl9pcnFfcGVybWlzc2lvbi0+IFhFTl9ET01DVExf
aXJxX3Blcm1pc3Npb24tPiBwaXJxX2FjY2Vzc19wZXJtaXR0ZWQtPmRvbWFpbl9waXJxX3RvX2ly
cS0+cmV0dXJuIGlycSBpcyAwLCBzbyBpdCBmYWlsZWQuDQpJIGFtIHRoaW5rIHRoYXQgc2luY2Ug
dGhlIFBWSCBkb2Vzbid0IHVzZSBwaXJxLCBjYW4gd2UganVzdCBza2lwIHRoaXMgaXJxX3Blcm1p
c3Npb24gY2hlY2sgZm9yIFBWSD8NCg0KPiANCj4gUmVnYXJkcywgUm9nZXIuDQoNCi0tIA0KQmVz
dCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 07:41:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 07:41:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653737.1020235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDJri-0004Iy-EM; Wed, 13 Dec 2023 07:41:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653737.1020235; Wed, 13 Dec 2023 07:41:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDJri-0004Ir-At; Wed, 13 Dec 2023 07:41:10 +0000
Received: by outflank-mailman (input) for mailman id 653737;
 Wed, 13 Dec 2023 07:41:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDJrh-0004Ij-5s
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 07:41:09 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f938d6f8-998a-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 08:41:06 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c339d2b88so51444265e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Dec 2023 23:41:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fj5-20020a05600c0c8500b0040b2976eb02sm19458404wmb.10.2023.12.12.23.41.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Dec 2023 23:41:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f938d6f8-998a-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702453266; x=1703058066; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8o4drzMaers2hVmDmJfFYBeEGuJUWOd6VhlCrOEzu1U=;
        b=XEArAVx1o8FQMao0JFrbMXkM5daC9IYBPBneE0HwAz7z1T2nz2IKnYOcOvhKyLW2DU
         ErBkvZAKVGGDqIrSq6Dvzmah4jZXadQJvS9jUwj7EJZD665Jbef6lWTpv5eOAG4+cIiH
         q9lmnDuUpsJ1KtsM75jWKUjcRuLndLKU3FB05t41fkrYWXRmK8sLU6t+ROgNjB9UI2OD
         lafFW6JrxObdIziNGPzWAzJih4ChTkid4R8+y2R8XkGogoJgZIcbxOtmJnWondv9c2V9
         6QAkaFNGIvH/+MLLRdNEPN+wFT3Aok3WZxLBeBaZQwpcRe7KIv6IB1/ioLGVmMUNPn3o
         98Gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702453266; x=1703058066;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=8o4drzMaers2hVmDmJfFYBeEGuJUWOd6VhlCrOEzu1U=;
        b=iE4hpVORLVS73C2Wys3VdHw/ftznY9VF0vM0deVDFSoqFV2g/HuG2vvhsrICkojPy6
         rQKLaAt2ZefRm7X4z+iHL9+/P5xcur0+Y+tVb6DootIXOO5NgApJ8o0l28hLmnF/PMvc
         C3W/AJ3ob5fvlxCRwSKjcaJcpu1QSDGZCx3zSt1XnpHIoek2NxLNYT3SXJFh8zxvLu4L
         zxH6JU5rZTq3YEAgOXcVRcGE+ktcGtMCY4A7jan7NgGFzw9rx0ZeKprGi4vzOq+i4dLN
         SqAnZRDN9wOMWY/0ZQRzxR1XliLjMCbLDY4SZsMeqOh+s4QXDwZeuJDGcRslWL8COY+s
         KlSw==
X-Gm-Message-State: AOJu0Yz0a21N9jyXaqNhj21Vk7f9Elvg3vKuJrbE/PweYqLid4mrZTvA
	1vgc/Sek5Dcilv8pRG8hoD0Q
X-Google-Smtp-Source: AGHT+IFd3wtuALjmsUXy4mLtYyt0ynj1xNEonxoKPdRqmez2zKHeIvI33I3yODJuVHhKFNb47ru3Kw==
X-Received: by 2002:a7b:ce14:0:b0:40b:5464:b241 with SMTP id m20-20020a7bce14000000b0040b5464b241mr3516231wmc.4.1702453265671;
        Tue, 12 Dec 2023 23:41:05 -0800 (PST)
Message-ID: <b2a64f91-c202-4c28-aade-b38e2f8e47df@suse.com>
Date: Wed, 13 Dec 2023 08:41:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC KERNEL PATCH v2 2/3] xen/pvh: Unmask irq for passthrough
 device in PVH dom0
Content-Language: en-US
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Juergen Gross <jgross@suse.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "Huang, Ray" <Ray.Huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <alpine.DEB.2.22.394.2312041413000.110490@ubuntu-linux-20-04-desktop>
 <ZW7rDjjC0gxEI1cq@macbook> <15275706-5c31-4e29-aa29-9f5e90526219@suse.com>
 <BL1PR12MB5849C871B0B9577D1E0BF576E784A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXculMdLgwGaRC7i@macbook>
 <BL1PR12MB584997DDE6839F2340022976E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXgeieg4E8UN0KoN@macbook> <50ca26a1-38e3-45fb-9c39-56e4d04de3e0@suse.com>
 <ZXhBb0Vt6gDuprHa@macbook> <c5d4e8a4-b286-4352-bf96-a67cb132b452@suse.com>
 <ZXhGhKkcmlEZOpwZ@macbook>
 <BL1PR12MB5849094EEE3FCE80C9FCBD48E78DA@BL1PR12MB5849.namprd12.prod.outlook.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: <BL1PR12MB5849094EEE3FCE80C9FCBD48E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.12.2023 08:14, Chen, Jiqian wrote:
> On 2023/12/12 19:39, Roger Pau MonnÃ© wrote:
>> On Tue, Dec 12, 2023 at 12:19:49PM +0100, Jan Beulich wrote:
>>> On 12.12.2023 12:18, Roger Pau MonnÃ© wrote:
>>>> On Tue, Dec 12, 2023 at 10:38:08AM +0100, Jan Beulich wrote:
>>>>> (I think the Cc list is too long here, but then I don't know who to
>>>>> keep and who to possibly drop.)
>>>>>
>>>>> On 12.12.2023 09:49, Roger Pau MonnÃ© wrote:
>>>>>> On Tue, Dec 12, 2023 at 06:16:43AM +0000, Chen, Jiqian wrote:
>>>>>>> On 2023/12/11 23:45, Roger Pau MonnÃ© wrote:
>>>>>>>> On Wed, Dec 06, 2023 at 06:07:26AM +0000, Chen, Jiqian wrote:
>>>>>>>>> +static int xen_pvh_setup_gsi(gsi_info_t *gsi_info)
>>>>>>>>> +{
>>>>>>>>> +       struct physdev_setup_gsi setup_gsi;
>>>>>>>>> +
>>>>>>>>> +       setup_gsi.gsi = gsi_info->gsi;
>>>>>>>>> +       setup_gsi.triggering = (gsi_info->trigger == ACPI_EDGE_SENSITIVE ? 0 : 1);
>>>>>>>>> +       setup_gsi.polarity = (gsi_info->polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
>>>>>>>>> +
>>>>>>>>> +       return HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
>>>>>>>>> +}
>>>>>>>>
>>>>>>>> Hm, why not simply call pcibios_enable_device() from pciback?  What
>>>>>>> pcibios_enable_device had been called when using cmd "xl pci-assignable-add sbdf" from pciback. But it didn't do map_pirq and setup_gsi.
>>>>>>> Because pcibios_enable_device-> pcibios_enable_irq-> __acpi_register_gsi(acpi_register_gsi_ioapic PVH specific)
>>>>>>>> you are doing here using the hypercalls is a backdoor into what's done
>>>>>>>> automatically by Xen on IO-APIC accesses by a PVH dom0.
>>>>>>> But the gsi didn't be unmasked, and vioapic_hwdom_map_gsi is never called.
>>>>>>> So, I think in pciback, if we can do what vioapic_hwdom_map_gsi does.
>>>>>>>
>>>>>>
>>>>>> I see, it does setup the IO-APIC pin but doesn't unmask it, that's
>>>>>> what I feared.
>>>>>>
>>>>>>>> It will be much more natural for the PVH dom0 model to simply use the
>>>>>>>> native way to configure and unmask the IO-APIC pin, and that would
>>>>>>>> correctly setup the triggering/polarity and bind it to dom0 without
>>>>>>>> requiring the usage of any hypercalls.
>>>>>>> Do you still prefer that I called unmask_irq in pcistub_init_device, as this v2 patch do?
>>>>>>> But Thomas Gleixner think it is not suitable to export unmask_irq.
>>>>>>
>>>>>> Yeah, that wasn't good.
>>>>>>
>>>>>>>>
>>>>>>>> Is that an issue since in that case the gsi will get mapped and bound
>>>>>>>> to dom0?
>>>>>>> Dom0 do map_pirq is to pass the check xc_domain_irq_permission()-> pirq_access_permitted(), 
>>>>>>
>>>>>> Can we see about finding another way to fix this check?
>>>>>>
>>>>>> One option would be granting permissions over the IRQ in
>>>>>> PHYSDEVOP_setup_gsi?
>>>>>
>>>>> There's no domain available there, and imo it's also the wrong interface to
>>>>> possibly grant any permissions.
>>>>
>>>> Well, the domain is the caller.
>>>
>>> Granting permission to itself?
>>
>> See below in the previous email, the issue is not with the
>> permissions, which are correctly assigned from
>> dom0_setup_permissions(), but the usage of domain_pirq_to_irq() in
>> pirq_access_permitted() as called by XEN_DOMCTL_irq_permission.
>> There's no need to play with the permissions at all.
> Yes, the problem is pci_add_dm_done-> xc_domain_irq_permission-> XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0, so it failed.
> I am think that since the PVH doesn't use pirq, can we just skip this irq_permission check for PVH?

If not the pIRQ, then the real IRQ would need checking for permissions.
You won't get away without any checking at all, I'm afraid.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 08:27:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 08:27:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653754.1020248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDKa3-0003sg-Ca; Wed, 13 Dec 2023 08:26:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653754.1020248; Wed, 13 Dec 2023 08: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 1rDKa3-0003s8-9b; Wed, 13 Dec 2023 08:26:59 +0000
Received: by outflank-mailman (input) for mailman id 653754;
 Wed, 13 Dec 2023 08:26:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDKa2-0003ru-O0
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 08:26:58 +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 60ed3847-9991-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 09:26:57 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a22f59c6aeaso74995966b.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 00:26:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ts4-20020a170907c5c400b00a1cc1be1158sm7357427ejc.165.2023.12.13.00.26.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 00:26:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60ed3847-9991-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702456016; x=1703060816; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xcvnI3gr77gLnsWSVXJXZmpqY64EySOREAcD6XFYIxk=;
        b=GLMLesJjQONW8f5pIQIe48jOalmddXVuHA43EOQKStPbLVVKEGcm5cNMDtLiAcUNwS
         D8kjrslQsPwPVV5s4vyxhZbf7EOcwZKZVO2z/7Ue3PXVLlUrrcKW+pP/kFtIrgeTvk0S
         JCq43o3twouYWTdd91hb3vJY9ZBxooe0vbLPKUt0tY847HUaJQYyT0w4Zx7KRdy6QxZp
         6OpFlzpYS2WP6B7sMSdEACl5ri/Y+B1OPUraZe7pPWZoktIqiRGQo0s5RtjvaCgS5w2k
         f3SJkbKs9yQ6Qg+hvb38RKqKhmwRgQLxV/A+ytGC3TWfXvFZSvot3rFsgXoSxq/MhovL
         g0yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702456016; x=1703060816;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=xcvnI3gr77gLnsWSVXJXZmpqY64EySOREAcD6XFYIxk=;
        b=PoFfW/z2gjaK3IT1Piu1ud9RF02YH6KOamLCVUvTWI6DhS3l/wLYBGlqxy3mNctWaX
         Ni1UjG5Cjl4qJeZ98A8H9FDh02VDvrIMdKRnsrK2xKCziYDGk94Ur28vkBZolGKIcnEy
         eWBz3WVsfsoPg4/M5PJEuCuWj2rqOf+YSJFvd98qxehnxN5rK5vu7mmj6RMcfnFv0trw
         dp/iLfob4R3Rb1tKoaXrK5OEUyBfdrVm/jrmnYqP8RZP0hi8eOB1tTdSHnirOFaA5sif
         cMGxRH55vzWnAXOR1nAFTZtEAhEDFMu+ATh21QjuhRFUkHPXrG2PNHSeh0YuT+02Axqj
         CN1A==
X-Gm-Message-State: AOJu0YyHNDiCwSQ/KC+y9VH0/sBPRAcQQrtB5TENH9CNmI9Y0NIOqkVn
	Cza/RuuDmnDuCV/ficZd+tMl
X-Google-Smtp-Source: AGHT+IFX5/B2c7BQUI38CTiF5CxdbzSNES/BIwOVW+PbrcCvGuEZktLWmv29CulcEcMlhjsZd2UczQ==
X-Received: by 2002:a17:907:7e94:b0:a19:a19b:55f3 with SMTP id qb20-20020a1709077e9400b00a19a19b55f3mr5021804ejc.131.1702456016695;
        Wed, 13 Dec 2023 00:26:56 -0800 (PST)
Message-ID: <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
Date: Wed, 13 Dec 2023 09:26:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: consulting@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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.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: <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 10:14, Nicola Vetrini wrote:
> --- a/xen/arch/arm/include/asm/numa.h
> +++ b/xen/arch/arm/include/asm/numa.h
> @@ -2,8 +2,9 @@
>  #define __ARCH_ARM_NUMA_H
>  
>  #include <xen/mm.h>

With this, ...

> +#include <xen/types.h>
>  
> -typedef u8 nodeid_t;
> +typedef uint8_t nodeid_t;
>  
>  #ifndef CONFIG_NUMA
>  
> @@ -12,10 +13,9 @@ typedef u8 nodeid_t;
>  #define node_to_cpumask(node)   (cpu_online_map)
>  
>  /*
> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
> - * is required because the dummy helpers are using it.
> + * TODO: define here first_valid_mfn as static when NUMA is supported on Arm,
> + * this is required because the dummy helpers are using it.
>   */
> -extern mfn_t first_valid_mfn;

... and this declaration moved to xen/mm.h, how is it going to be possible
to do as the adjusted comment says? The compiler will choke on the static
after having seen the extern.

I also firmly disagree with the entirely unrelated u8 -> uint8_t change
above. Such tidying can be done when somewhat related to what a patch is
doing anyway, but here there's (imo) not even a vague connection.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 08:32:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 08:32:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653758.1020258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDKfX-0005yb-Vl; Wed, 13 Dec 2023 08:32:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653758.1020258; Wed, 13 Dec 2023 08:32:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDKfX-0005yU-So; Wed, 13 Dec 2023 08:32:39 +0000
Received: by outflank-mailman (input) for mailman id 653758;
 Wed, 13 Dec 2023 08:32:38 +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 1rDKfW-0005yI-Dv
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 08:32:38 +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 1rDKfW-0004FQ-8A; Wed, 13 Dec 2023 08:32:38 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDKfW-00078Q-1W; Wed, 13 Dec 2023 08:32: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=KyaZv3M7qpbQRpNGqvc7jcBcOU5r9HENxg9n6/2ZcZU=; b=j+evQUn3JMENtZFXihWuwsK+YA
	MKRyCfUhBBBHCW01clhn1DkM3cOovfG48qj7Ntjl66F5BtKPr1SgaurAFT2urxlNb8mI/jDvxE1qv
	rQKK8/o6i85GUvy/W1cyq9ldOvS3qdSrnCR1caDmNB4V3+hy3vemEkJQ2c76L1VDwW94=;
Message-ID: <fa58888a-50c1-4413-8824-3682508b4cf8@xen.org>
Date: Wed, 13 Dec 2023 08:32:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] xen/spinlock: make struct lock_profile
 rspinlock_t aware
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-7-jgross@suse.com>
 <ba842318-0d5e-4b8f-99f9-f0f1e2dda1ab@xen.org>
 <3895f5bb-354c-4ada-a14d-83537dd5d119@suse.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <3895f5bb-354c-4ada-a14d-83537dd5d119@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Juergen,

On 13/12/2023 06:05, Juergen Gross wrote:
> On 12.12.23 19:42, Julien Grall wrote:
>> Hi,
>>
>> On 12/12/2023 09:47, Juergen Gross wrote:
>>> Struct lock_profile contains a pointer to the spinlock it is associated
>>> with. Prepare support of differing spinlock_t and rspinlock_t types by
>>> adding a type indicator of the pointer. Use the highest bit of the
>>> block_cnt member for this indicator in order to not grow the struct
>>> while hurting only the slow path with slightly less performant code.
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> Acked-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
>>> ---
>>> V2:
>>> - new patch
>>> ---
>>> Â  xen/common/spinlock.cÂ Â Â Â Â  | 26 +++++++++++++++++++-------
>>> Â  xen/include/xen/spinlock.h | 10 ++++++++--
>>> Â  2 files changed, 27 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
>>> index c1a9ba1304..7d611d3d7d 100644
>>> --- a/xen/common/spinlock.c
>>> +++ b/xen/common/spinlock.c
>>> @@ -538,19 +538,31 @@ static void 
>>> spinlock_profile_iterate(lock_profile_subfunc *sub, void *par)
>>> Â  static void cf_check spinlock_profile_print_elem(struct 
>>> lock_profile *data,
>>> Â Â Â Â Â  int32_t type, int32_t idx, void *par)
>>> Â  {
>>> -Â Â Â  struct spinlock *lock = data->lock;
>>> +Â Â Â  unsigned int cpu;
>>> +Â Â Â  uint32_t lockval;
>>> +
>>> +Â Â Â  if ( data->is_rlock )
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  cpu = data->rlock->debug.cpu;
>>> +Â Â Â Â Â Â Â  lockval = data->rlock->tickets.head_tail;
>>> +Â Â Â  }
>>> +Â Â Â  else
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  cpu = data->lock->debug.cpu;
>>> +Â Â Â Â Â Â Â  lockval = data->lock->tickets.head_tail;
>>> +Â Â Â  }
>>> Â Â Â Â Â  printk("%s ", lock_profile_ancs[type].name);
>>> Â Â Â Â Â  if ( type != LOCKPROF_TYPE_GLOBAL )
>>> Â Â Â Â Â Â Â Â Â  printk("%d ", idx);
>>> -Â Â Â  printk("%s: addr=%p, lockval=%08x, ", data->name, lock,
>>> -Â Â Â Â Â Â Â Â Â Â  lock->tickets.head_tail);
>>> -Â Â Â  if ( lock->debug.cpu == SPINLOCK_NO_CPU )
>>> +Â Â Â  printk("%s: addr=%p, lockval=%08x, ", data->name, data->lock, 
>>> lockval);
>>> +Â Â Â  if ( cpu == SPINLOCK_NO_CPU )
>>> Â Â Â Â Â Â Â Â Â  printk("not locked\n");
>>> Â Â Â Â Â  else
>>> -Â Â Â Â Â Â Â  printk("cpu=%d\n", lock->debug.cpu);
>>> -Â Â Â  printk("Â  lock:%" PRId64 "(%" PRI_stime "), block:%" PRId64 "(%" 
>>> PRI_stime ")\n",
>>> -Â Â Â Â Â Â Â Â Â Â  data->lock_cnt, data->time_hold, data->block_cnt, 
>>> data->time_block);
>>> +Â Â Â Â Â Â Â  printk("cpu=%u\n", cpu);
>>> +Â Â Â  printk("Â  lock:%" PRIu64 "(%" PRI_stime "), block:%" PRIu64 "(%" 
>>> PRI_stime ")\n",
>>> +Â Â Â Â Â Â Â Â Â Â  data->lock_cnt, data->time_hold, (uint64_t)data->block_cnt,
>>> +Â Â Â Â Â Â Â Â Â Â  data->time_block);
>>> Â  }
>>> Â  void cf_check spinlock_profile_printall(unsigned char key)
>>> diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
>>> index 05b97c1e03..ac3bef267a 100644
>>> --- a/xen/include/xen/spinlock.h
>>> +++ b/xen/include/xen/spinlock.h
>>> @@ -76,13 +76,19 @@ union lock_debug { };
>>> Â  */
>>> Â  struct spinlock;
>>> +/* Temporary hack until a dedicated struct rspinlock is existing. */
>>> +#define rspinlock spinlock
>>> Â  struct lock_profile {
>>> Â Â Â Â Â  struct lock_profile *next;Â Â Â Â Â Â  /* forward link */
>>> Â Â Â Â Â  const charÂ Â Â Â Â Â Â Â Â  *name;Â Â Â Â Â Â  /* lock name */
>>> -Â Â Â  struct spinlockÂ Â Â Â  *lock;Â Â Â Â Â Â  /* the lock itself */
>>> +Â Â Â  union {
>>> +Â Â Â Â Â Â Â  struct spinlock *lock;Â Â Â Â Â Â  /* the lock itself */
>>> +Â Â Â Â Â Â Â  struct rspinlock *rlock;Â Â Â Â  /* the recursive lock itself */
>>> +Â Â Â  };
>>> Â Â Â Â Â  uint64_tÂ Â Â Â Â Â Â Â Â Â Â  lock_cnt;Â Â Â  /* # of complete locking ops */
>>> -Â Â Â  uint64_tÂ Â Â Â Â Â Â Â Â Â Â  block_cnt;Â Â  /* # of complete wait for lock */
>>> +Â Â Â  uint64_tÂ Â Â Â Â Â Â Â Â Â Â  block_cnt:63; /* # of complete wait for lock */
>>> +Â Â Â  uint64_tÂ Â Â Â Â Â Â Â Â Â Â  is_rlock:1;Â  /* use rlock pointer */
>>
>> This is meant to act like a bool. So I would prefer if we use:
>>
>> bool is_rwlock:1;
>>
>> And then use true/false when set.
> 
> Do we want to do that? AFAIK it would depend on the compiler what the 
> size of
> the struct is when mixing types in bitfields (in this case: bool and 
> uint64_t).

I looked through our codebase and I could already find some use. Such as:

typedef union
{
     struct
     {
         uint8_t  vector;
         uint8_t  type:3;
         bool     ev:1;
         uint32_t resvd1:19;
         bool     v:1;
         uint32_t ec;
     };
     uint64_t raw;
} intinfo_t;

So I would assume that a mix is possible or we would have problem in 
other places.

Anyway, this is not a critical comment. It is just a preference of using 
true/false when a field can only be 0 or 1.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 08:36:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 08:36:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653761.1020268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDKjh-0006bg-F3; Wed, 13 Dec 2023 08:36:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653761.1020268; Wed, 13 Dec 2023 08:36:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDKjh-0006bZ-CP; Wed, 13 Dec 2023 08:36:57 +0000
Received: by outflank-mailman (input) for mailman id 653761;
 Wed, 13 Dec 2023 08:36:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDKjf-0006bR-SW
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 08:36:55 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c53056f8-9992-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 09:36:54 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a1f6433bc1eso1046292866b.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 00:36:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 rd12-20020a170907a28c00b00a11b2677acbsm7309435ejc.163.2023.12.13.00.36.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 00:36:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c53056f8-9992-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702456614; x=1703061414; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=wGhqywp7cv5PGxLMBSHpNRwp1heMj6dFujZmw103qyY=;
        b=NkW6ETlu/2GsjNNlAvR6sCqRAJV80IZFsZKmBKR+nsmla/yxeFAMpQ/UgfnuirMaYA
         YkVI8RDto+qTQjliyjhGAuClyDH19hAYzx35F1elR2Ywx2KmDXYQ2Fm855gRVDuMQqc5
         PoQIRcjp5cL+qWn93MSiCkjmqH2YdtE3I8sXVL2n1J0uiqCFGOqraXEziMGxEw0It/EC
         nZZkUfshaZfCs0VYrSSq0/hFpgfC5r8m/xbN9T/XhyGxoT3x7W22/gKyxZ58VVkbxhHC
         iUHWlPYrE40iLX+qXGEaESeIzgls3/mYCa5jeatDpwRuoIZixCYpYVNyxNi6ztzynz9B
         WPqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702456614; x=1703061414;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=wGhqywp7cv5PGxLMBSHpNRwp1heMj6dFujZmw103qyY=;
        b=tj9mXKkH3zqf0Yb9wNmTpNp3DZGpiAcGBSMB6pbgnJvWEL/9Ukn4DcFSHuOviwfilP
         kdQMCWfwzPsTyiJC8rI6O6dzhZM5xMKfEGYnruE4e0NoyXhBZL33JSWBVW1YnibxzGN8
         Ok4j5IorTPo3O3tRnKtkr8Fl1QE2J90pUygObaP+AlwEARK9HUD0ZlVpfAq2ikE86Cev
         m/7DDE+nKCq4vyc1P5vOw7M1VN+/y9Ew6hpoG86ipSgp8z1ur+NlEY5ksq8jXuYu3MgD
         PHS/YtSsBWgndi2w1KYzLfIcpkE1tr4O/SoxnoobC6a71jmxKvTGfCTwHGwHxkI0LFN9
         rXZQ==
X-Gm-Message-State: AOJu0YyPCTepCVeedKcF9vsJk59Xq03phMZ8evEUYnuMme210of8rflm
	mEcbSSmFm+leDO3WZ17c1eKT
X-Google-Smtp-Source: AGHT+IHMFv7ea+ri9j2Lk4lgvEVAZAgfdiFod8vIDyronbyefRRKuGz3zr5i5tNUCJD5HLllMa3b9A==
X-Received: by 2002:a17:906:101e:b0:a01:ae9a:c1d3 with SMTP id 30-20020a170906101e00b00a01ae9ac1d3mr7916013ejm.11.1702456614326;
        Wed, 13 Dec 2023 00:36:54 -0800 (PST)
Message-ID: <3f5f7df0-d7e5-4540-b01b-9b2cde9dcc55@suse.com>
Date: Wed, 13 Dec 2023 09:36:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] xen/spinlock: make struct lock_profile
 rspinlock_t aware
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-7-jgross@suse.com>
 <ba842318-0d5e-4b8f-99f9-f0f1e2dda1ab@xen.org>
 <3895f5bb-354c-4ada-a14d-83537dd5d119@suse.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: <3895f5bb-354c-4ada-a14d-83537dd5d119@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.12.2023 07:05, Juergen Gross wrote:
> On 12.12.23 19:42, Julien Grall wrote:
>> On 12/12/2023 09:47, Juergen Gross wrote:
>>> --- a/xen/include/xen/spinlock.h
>>> +++ b/xen/include/xen/spinlock.h
>>> @@ -76,13 +76,19 @@ union lock_debug { };
>>> Â  */
>>> Â  struct spinlock;
>>> +/* Temporary hack until a dedicated struct rspinlock is existing. */
>>> +#define rspinlock spinlock
>>> Â  struct lock_profile {
>>> Â Â Â Â Â  struct lock_profile *next;Â Â Â Â Â Â  /* forward link */
>>> Â Â Â Â Â  const charÂ Â Â Â Â Â Â Â Â  *name;Â Â Â Â Â Â  /* lock name */
>>> -Â Â Â  struct spinlockÂ Â Â Â  *lock;Â Â Â Â Â Â  /* the lock itself */
>>> +Â Â Â  union {
>>> +Â Â Â Â Â Â Â  struct spinlock *lock;Â Â Â Â Â Â  /* the lock itself */
>>> +Â Â Â Â Â Â Â  struct rspinlock *rlock;Â Â Â Â  /* the recursive lock itself */
>>> +Â Â Â  };
>>> Â Â Â Â Â  uint64_tÂ Â Â Â Â Â Â Â Â Â Â  lock_cnt;Â Â Â  /* # of complete locking ops */
>>> -Â Â Â  uint64_tÂ Â Â Â Â Â Â Â Â Â Â  block_cnt;Â Â  /* # of complete wait for lock */
>>> +Â Â Â  uint64_tÂ Â Â Â Â Â Â Â Â Â Â  block_cnt:63; /* # of complete wait for lock */
>>> +Â Â Â  uint64_tÂ Â Â Â Â Â Â Â Â Â Â  is_rlock:1;Â  /* use rlock pointer */
>>
>> This is meant to act like a bool. So I would prefer if we use:
>>
>> bool is_rwlock:1;
>>
>> And then use true/false when set.
> 
> Do we want to do that? AFAIK it would depend on the compiler what the size of
> the struct is when mixing types in bitfields (in this case: bool and uint64_t).

I thought in a similar way as you did when Andrew introduced similar
patterns (see Julien's reply for an example), and was then convinced
that the compiler really is supposed to be doing what we want here.
So yes, I second Julien's desire to have bool used when boolean is
meant.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 08:37:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 08:37:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653762.1020279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDKjm-0006sF-Mz; Wed, 13 Dec 2023 08:37:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653762.1020279; Wed, 13 Dec 2023 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 1rDKjm-0006s8-K6; Wed, 13 Dec 2023 08:37:02 +0000
Received: by outflank-mailman (input) for mailman id 653762;
 Wed, 13 Dec 2023 08:37:01 +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 1rDKjl-0006rY-7B
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 08:37:01 +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 1rDKjj-0004KH-LX; Wed, 13 Dec 2023 08:36:59 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDKjj-0007QJ-FK; Wed, 13 Dec 2023 08:36: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=uCTRGYxElAmknKhtzaaNVwMi+JaO0JZzW46jbb9U1ls=; b=f2dvnPWZRtQbmlWOkeyzv2xliK
	SXGB17E7JxwuiqJDGRLJd2oxpB/bcRLdqUWcfLB499LFxA4de44UHsDSsq033c3SyzK9KhVRwDmK0
	uJSNzXYKfA0rSxsNOYk41/dVwOGUynQrQVXSFr19VYisUwIgEKgk+pcM8FLXW3xBzg9I=;
Message-ID: <5c2e8010-5548-4bef-bdb0-1613e2893a0d@xen.org>
Date: Wed, 13 Dec 2023 08:36:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] xen/spinlock: add explicit non-recursive locking
 functions
Content-Language: en-GB
To: Juergen Gross <jgross@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-8-jgross@suse.com>
 <c7a969af-274b-4e92-b083-56059cbc98d6@xen.org>
 <f619efa1-da81-446b-968b-f81a2d18a7e5@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <f619efa1-da81-446b-968b-f81a2d18a7e5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 13/12/2023 06:17, Juergen Gross wrote:
> On 12.12.23 19:49, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 12/12/2023 09:47, Juergen Gross wrote:
>>> -#define spin_lock_init_prof(s, l) __spin_lock_init_prof(s, l, 
>>> spinlock_t)
>>> -#define rspin_lock_init_prof(s, l) __spin_lock_init_prof(s, l, 
>>> rspinlock_t)
>>> +#define spin_lock_init_prof(s, 
>>> l)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> +Â Â Â  __spin_lock_init_prof(s, l, lock, spinlock_t, 0)
>>> +#define rspin_lock_init_prof(s, 
>>> l)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> +Â Â Â  __spin_lock_init_prof(s, l, rlock, rspinlock_t, 1)
>>> Â  void _lock_profile_register_struct(
>>> Â Â Â Â Â  int32_t type, struct lock_profile_qhead *qhead, int32_t idx);
>>> @@ -174,6 +179,7 @@ struct lock_profile_qhead { };
>>> Â  #endif
>>> +
>>
>> Spurious change?
> 
> Indeed, will remove it.
> 
>>
>>> Â  typedef union {
>>> Â Â Â Â Â  uint32_t head_tail;
>>> Â Â Â Â Â  struct {
>>> @@ -261,4 +267,12 @@ void rspin_unlock_irqrestore(rspinlock_t *lock, 
>>> unsigned long flags);
>>> Â  /* Ensure a lock is quiescent between two critical operations. */
>>> Â  #define spin_barrier(l)Â Â Â Â Â Â Â Â Â Â Â Â Â Â  _spin_barrier(l)
>>> +#define nrspin_trylock(l)Â Â Â  spin_trylock(l)
>>> +#define nrspin_lock(l)Â Â Â Â Â Â  spin_lock(l)
>>> +#define nrspin_unlock(l)Â Â Â Â  spin_unlock(l)
>>> +#define nrspin_lock_irq(l)Â Â  spin_lock_irq(l)
>>> +#define nrspin_unlock_irq(l) spin_unlock_irq(l)
>>> +#define nrspin_lock_irqsave(l, f)Â Â Â Â Â  spin_lock_irqsave(l, f)
>>> +#define nrspin_unlock_irqrestore(l, f) spin_unlock_irqrestore(l, f)
>>
>> There is a comment describing [r]spinlock but not this new variant. 
>> Can you add one?
> 
> Okay.
> 
>> That said, I know this is existing code, but I have to admit this is a 
>> bit unclear why we are allowing an recursive spinlock to be 
>> non-recursive. To me it sounds like we are making the typesafe not 
>> very safe because it doesn't guarantee that we are not mixing the call 
>> nrspin_* with rspin_*.
> 
> This is the current API.

I know. This is why I wrote "I know this is existing code".

> 
> If you have locked with nrspin_*, any rspin_* attempt on the same lock will
> spin until rspin_unlock (nrspin_* will not set recurse_cpu, but take the
> lock).
> 
> If you have locked with rspin_*, any nrspin_* attempt on the same lock will
> spin, too.
> 
> So I don't see any major problem regarding accidental misuse, which 
> wouldn't
> be visible by deadlocks (there is no silent misbehavior).

Right, so this will lead to a deadlock, which is my concern. If we were 
using rspinlock_* everywhere then the deadlock (at least in the case 
when you recurse) would in theory not be possible (unless you recurse 
too much).

My point here is to simplify the interface rather than providing because 
I don't really see the benefits of providing a non-recursive version for 
recursive spinlock.

Anyway as I said this is nothing new.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 08:43:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 08:43:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653767.1020289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDKpv-0000xN-Cq; Wed, 13 Dec 2023 08:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653767.1020289; Wed, 13 Dec 2023 08: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 1rDKpv-0000xG-AD; Wed, 13 Dec 2023 08:43:23 +0000
Received: by outflank-mailman (input) for mailman id 653767;
 Wed, 13 Dec 2023 08:43: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 1rDKpu-0000vw-1P
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 08:43: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 1rDKpt-0004RC-TB; Wed, 13 Dec 2023 08:43:21 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDKpt-0007ds-Ni; Wed, 13 Dec 2023 08:43: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=yLuQKI+2Vdidtr4DRHkhWiwtNBrRrDwYJNYrDCOfKOE=; b=4yqatnHNUowWpMPfCFDwdd/3Ow
	FCDA0vkf+7FUJDGScynAwOxWrJKcEFyWo07oLp5rltjqSMdfb4y7qaEFYW02+VB6hx431/+XZpkFh
	V0ee74WZd8DWyjmuVtU7drLR1e3uHiMD70a1DPheyAouMikq2T4YyaN1b5jsOD/5EkVc=;
Message-ID: <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>
Date: Wed, 13 Dec 2023 08:43:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
 <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Juergen,

On 13/12/2023 06:23, Juergen Gross wrote:
> On 12.12.23 20:10, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 12/12/2023 09:47, Juergen Gross wrote:
>>> Add another function level in spinlock.c hiding the spinlock_t layout
>>> from the low level locking code.
>>>
>>> This is done in preparation of introducing rspinlock_t for recursive
>>> locks without having to duplicate all of the locking code.
>>
>> So all the fields you pass are the one from spinlock.
>>
>> Looking at pahole after this series is applid, we have:
>>
>> ==== Debug + Lock profile ====
>>
>> struct spinlock {
>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0     
>> 4 */
>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4     
>> 4 */
>> Â Â Â Â Â Â Â Â  struct lock_profile *Â Â Â Â Â  profile;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  8     
>> 8 */
>>
>> Â Â Â Â Â Â Â Â  /* size: 16, cachelines: 1, members: 3 */
>> Â Â Â Â Â Â Â Â  /* last cacheline: 16 bytes */
>> };
>> struct rspinlock {
>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0     
>> 4 */
>> Â Â Â Â Â Â Â Â  uint16_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cpu;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4     
>> 2 */
>> Â Â Â Â Â Â Â Â  uint8_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cnt;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  6     
>> 1 */
>>
>> Â Â Â Â Â Â Â Â  /* XXX 1 byte hole, try to pack */
>>
>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  8     
>> 4 */
>>
>> Â Â Â Â Â Â Â Â  /* XXX 4 bytes hole, try to pack */
>>
>> Â Â Â Â Â Â Â Â  struct lock_profile *Â Â Â Â Â  profile;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â  16     
>> 8 */
>>
>> Â Â Â Â Â Â Â Â  /* size: 24, cachelines: 1, members: 5 */
>> Â Â Â Â Â Â Â Â  /* sum members: 19, holes: 2, sum holes: 5 */
>> Â Â Â Â Â Â Â Â  /* last cacheline: 24 bytes */
>> };
>>
>>
>> ==== Debug ====
>>
>> struct spinlock {
>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0     
>> 4 */
>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4     
>> 4 */
>>
>> Â Â Â Â Â Â Â Â  /* size: 8, cachelines: 1, members: 2 */
>> Â Â Â Â Â Â Â Â  /* last cacheline: 8 bytes */
>> };
>> struct rspinlock {
>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0     
>> 4 */
>> Â Â Â Â Â Â Â Â  uint16_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cpu;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4     
>> 2 */
>> Â Â Â Â Â Â Â Â  uint8_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cnt;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  6     
>> 1 */
>>
>> Â Â Â Â Â Â Â Â  /* XXX 1 byte hole, try to pack */
>>
>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  8     
>> 4 */
>>
>> Â Â Â Â Â Â Â Â  /* size: 12, cachelines: 1, members: 4 */
>> Â Â Â Â Â Â Â Â  /* sum members: 11, holes: 1, sum holes: 1 */
>> Â Â Â Â Â Â Â Â  /* last cacheline: 12 bytes */
>> };
>>
>> ==== Prod ====
>>
>> struct spinlock {
>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0     
>> 4 */
>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4     
>> 0 */
>>
>> Â Â Â Â Â Â Â Â  /* size: 4, cachelines: 1, members: 2 */
>> Â Â Â Â Â Â Â Â  /* last cacheline: 4 bytes */
>> };
>> struct rspinlock {
>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0     
>> 4 */
>> Â Â Â Â Â Â Â Â  uint16_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cpu;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4     
>> 2 */
>> Â Â Â Â Â Â Â Â  uint8_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cnt;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  6     
>> 1 */
>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  7     
>> 0 */
>>
>> Â Â Â Â Â Â Â Â  /* size: 8, cachelines: 1, members: 4 */
>> Â Â Â Â Â Â Â Â  /* padding: 1 */
>> Â Â Â Â Â Â Â Â  /* last cacheline: 8 bytes */
>> };
>>
>>
>> I think we could embed spinlock_t in rspinlock_t without increasing 
>> rspinlock_t. Have you considered it? This could reduce the number of 
>> function level introduced in this series.
> 
> That was the layout in the first version of this series. Jan requested 
> to change
> it to the current layout [1].

Ah... Looking through the reasoning, I have to disagree with Jan 
argumentations. At least with the full series applied, there is no 
increase of rspinlock_t in debug build (if we compare to the version you 
provided in this series).

Furthermore, this is going to remove at least patch #6 and #8. We would 
still need nrspinlock_* because they can just be wrapper to
spin_barrier(&lock->lock).

This should also solve his concern of unwieldy code:

 > +    spin_barrier(&p2m->pod.lock.lock.lock);

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 08:56:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 08:56:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653774.1020311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDL2e-0003aB-R5; Wed, 13 Dec 2023 08:56:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653774.1020311; Wed, 13 Dec 2023 08:56: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 1rDL2e-0003a2-OT; Wed, 13 Dec 2023 08:56:32 +0000
Received: by outflank-mailman (input) for mailman id 653774;
 Wed, 13 Dec 2023 08:56: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 1rDL2d-0003Zs-I0; Wed, 13 Dec 2023 08:56: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 1rDL2d-0004fl-Fh; Wed, 13 Dec 2023 08:56: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 1rDL2c-0000XB-Qn; Wed, 13 Dec 2023 08:56:30 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDL2c-0000G4-Px; Wed, 13 Dec 2023 08:56: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=XFhwnz/+PGx4W70sBQtgyz/3x2Q2gIsI5p9DuSdqwNQ=; b=elhzxbso6uTjTUD9NJFBAgco98
	/kOsdrtdHVP4qmzVYLsUaf6n9hcaR3hGe6hwDuK+zKqm18RoIxcC7LbF8lTNo9lSZ/p5qsJ8QGx8Y
	m/s1/p0i9u54RMOHpNTnfsFg751vbmAV9hOT3B+F/BrRYVhJd0fCviHNm70nVfEJMM0s=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184105-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.18-testing test] 184105: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.18-testing:test-amd64-i386-xl-shadow:debian-fixup:fail:heisenbug
    xen-4.18-testing:test-amd64-amd64-libvirt-vhd:guest-start/debian.repeat:fail:heisenbug
    xen-4.18-testing:test-amd64-i386-xl-qemuu-ws16-amd64:windows-install:fail:heisenbug
    xen-4.18-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop: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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-qemuu-win7-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-i386-xl-qemut-ws16-amd64:guest-stop: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-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-libvirt:migrate-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-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-i386-libvirt-raw:migrate-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-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-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-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-libvirt:migrate-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-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-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-vhd: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-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
X-Osstest-Versions-This:
    xen=a4f3f5a62c10a5adc898cf45261783209f5bc037
X-Osstest-Versions-That:
    xen=25b7f9ed0f8c7e138a2cecb113bd377c613153d7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 13 Dec 2023 08:56:30 +0000

flight 184105 xen-4.18-testing real [real]
flight 184120 xen-4.18-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/184105/
http://logs.test-lab.xenproject.org/osstest/logs/184120/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-xl-shadow    13 debian-fixup        fail pass in 184120-retest
 test-amd64-amd64-libvirt-vhd 19 guest-start/debian.repeat fail pass in 184120-retest
 test-amd64-i386-xl-qemuu-ws16-amd64 12 windows-install fail pass in 184120-retest

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop   fail in 184120 like 184008
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184008
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184008
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184008
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184008
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184008
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184008
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184008
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184008
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184008
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184008
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184008
 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-multivcpu 15 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-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-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  a4f3f5a62c10a5adc898cf45261783209f5bc037
baseline version:
 xen                  25b7f9ed0f8c7e138a2cecb113bd377c613153d7

Last test of basis   184008  2023-12-06 10:07:11 Z    6 days
Testing same since   184105  2023-12-12 13:37:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@citrix.com>
  George Dunlap <george.dunlap@cloud.com>
  Jason Andryuk <jandryuk@gmail.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  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                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    fail    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 fail    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   25b7f9ed0f..a4f3f5a62c  a4f3f5a62c10a5adc898cf45261783209f5bc037 -> stable-4.18


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 08:59:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 08:59:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653778.1020321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDL5h-0004Bd-9B; Wed, 13 Dec 2023 08:59:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653778.1020321; Wed, 13 Dec 2023 08:59: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 1rDL5h-0004BW-6K; Wed, 13 Dec 2023 08:59:41 +0000
Received: by outflank-mailman (input) for mailman id 653778;
 Wed, 13 Dec 2023 08:59: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 1rDL5g-0004B5-25
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 08:59: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 1rDL5c-0004i6-Lm; Wed, 13 Dec 2023 08:59:36 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDL5c-0008Ji-GF; Wed, 13 Dec 2023 08:59: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=fPTdng8k2I9Cw/QmonDc6nGyBXtTgMUSJTX/ZTs59P4=; b=ZC7PSqZ0M7pzE3mXhDtr0dtCNc
	GeFz0nUzzBE0jlVl1Odz5LnE2e4Feap12zLdcnY6Z8+IyyUgEOqo9NX2rwHYGTclYcOFdkhgW/Dee
	4w0Gh9R+LhTSrLHRelcOt9YKr+Lv/ig0nAAc4g48ub7sl4gmnKI2CFQ/fvzdl460afDI=;
Message-ID: <d24daca9-c4f8-4d69-949f-db55cfbfff67@xen.org>
Date: Wed, 13 Dec 2023 08:59:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: We are not able to virtualize FreeBSD using xen 4.17 on Arm 32
 bit
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 Chuck Zmudzinski <brchuckz@netscape.net>
Cc: Mario Marietto <marietto2008@gmail.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Demi Marie Obenour <demi@invisiblethingslab.com>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Elliott Mitchell <ehem+freebsd@m5p.com>
References: <CA+1FSiggg=XZmif6c3pY0+jz7i9caU-OTwFy80gwO7MVpXiwcA@mail.gmail.com>
 <CA+1FSigM1PZc4WfZNUJSMsZbNPPTyThRJ7MMQwQ9TWn6VnSUTg@mail.gmail.com>
 <C0A0E9FA-5AAB-4324-BBBD-D07412CD7F32@arm.com> <ZWR1v5Y3EpRK817B@macbook>
 <CA+1FSij2Q9f9Vj0A06HUYeUxTddrEyF=Q8X5fbs96CRr83_BPg@mail.gmail.com>
 <4fc95518-7e46-4f82-b540-afdbc941508a@netscape.net>
 <f606be07-c4ff-43c6-acf9-42065a84b594@netscape.net>
 <alpine.DEB.2.22.394.2311271826370.3533093@ubuntu-linux-20-04-desktop>
 <c56f3db5-114e-4442-a318-b5abcd33eff8@netscape.net>
 <alpine.DEB.2.22.394.2312121612480.1703076@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312121612480.1703076@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Stefano,

On 13/12/2023 00:18, Stefano Stabellini wrote:
> On Mon, 11 Dec 2023, Chuck Zmudzinski wrote:
>> On 11/27/2023 9:28 PM, Stefano Stabellini wrote:
>>> On Mon, 27 Nov 2023, Chuck Zmudzinski wrote:
>>>> On 11/27/2023 10:22 AM, Chuck Zmudzinski wrote:
>>>>> On 11/27/2023 7:45 AM, Mario Marietto wrote:
>>>>>> @Chuck Zmudzinski <mailto:brchuckz@netscape.net> : Stay tuned. They want to help us. The xen developers are great. Very good support for us. I'm sure that you can give a good contribution to understand what's our problem and how to implement a fix with the help of all those good guys.
>>>>>>
>>>>>> On Mon, Nov 27, 2023 at 11:56â€¯AM Roger Pau MonnÃ© <roger.pau@citrix.com <mailto:roger.pau@citrix.com>> wrote:
>>>>>>
>>>>>>      On Mon, Nov 27, 2023 at 10:28:13AM +0000, Henry Wang wrote:
>>>>>>      > +(xen-devel and Arm maintainers, including Julien)
>>>>>>      >
>>>>>>      > > On Nov 27, 2023, at 18:03, Mario Marietto <marietto2008@gmail.com <mailto:marietto2008@gmail.com>>
>>>>>>      > > wrote:
>>>>>>      > >
>>>>>>      > > Hello.Â  We have just virtualized Debian 12 on our arm (32 bit)
>>>>>>      > > Chromebook model xe303c12 . As host / dom0 we have chosen Devuan
>>>>>>      > > 5,and for guest / domU,Debian 12. It works great. But our goal is
>>>>>>      > > different. We want to virtualize FreeBSD as domU. Can we have a
>>>>>>      > > working Xen PV network driver for a FreeBSD arm guest ?. I found
>>>>>>      > > that Julien Grall has ported the Xen drivers to FreeBSD on arm. I
>>>>>>      > > would like to know if Julien's work was accepted upstream by
>>>>>>      > > FreeBSD, in which case FreeBSD as a Xen guest on arm should work
>>>>>>      > > if we enable the Xen PV drivers in the FreeBSD on arm kernel. If
>>>>>>      > > Julien's work was not accepted upstream by FreeBSD, we will have
>>>>>>      > > to find his patches and apply them ourselves to the FreeBSD on arm
>>>>>>      > > kernel.
>>>>>>
>>>>>>      I've added Elliot on Cc as he is working on upstreaming the patches to
>>>>>>      FreeBSD.Â  He will be able to provide a better update than myself.
>>>>>>
>>>>>>      Regards, Roger.
>>>>>
>>>>> I have been collaborating with Mario, and I can explain what we have done so far :
>>>>>
>>>>> We are using Julien's patch set against an old development version of FreeBSD 11
>>>>> from 2014-12-03 :
>>>>>
>>>>> https://xenbits.xen.org/gitweb/?p=people/julieng/freebsd.git;a=shortlog;h=refs/heads/xen-arm-v2.2
>>>>>
>>>>> We successfully built the XENVIRT kernel and FreeBSD world, and created the
>>>>> FreeBSD rootfs according to Julien's instructions here :
>>>>>
>>>>> https://lists.freebsd.org/pipermail/freebsd-xen/2014-November/002202.html
>>>>>
>>>>> There were some adjustments to the instructions :
>>>>>
>>>>> To build the kernel, we used :
>>>>>
>>>>> $ sudo make TARGET_ARCH=armv6 KERNCONF=XENVIRT buildkernel
>>>>>
>>>>> instead of
>>>>>
>>>>> $ sudo make TARGET_ARCH=armv6 KERNCONF=XENHVM buildkernel
>>>>>
>>>>> The FreeBSD 'kernel' file is in ELF format and did not work, and we spent
>>>>> some time trying to convert it to the zImage format without realizing the
>>>>> build of the FreeBSD kernel creates the 'kernel.bin' file in the zImage format.
>>>>> So when booting with the 'kernel.bin' file instead, it actually boots :
>>>>>
>>>>> user@devuan-bunsen ~ % sudo xl create freebsd.cfg
>>>>> Parsing config from freebsd.cfg
>>>>> user@devuan-bunsen ~ % sudo xl li
>>>>> Name                                        ID   Mem VCPUs	State	Time(s)
>>>>> Domain-0                                     0   768     2     r-----    1439.4
>>>>> freebsd                                      1  1152     1     r-----       3.0
>>>>> user@devuan-bunsen ~ %
>>>>>
>>>>> However, the guest is still not working correctly :
>>>>>
>>>>> 1. Attaching the console with the -c option at creation or with
>>>>>     'xl console freebsd' results in no output to the console.
>>>>>
>>>>> 2. The timestamp on the virtual disk image file shows that the filesystem
>>>>>     was at best mounted read-only, if it was mounted at all by the guest
>>>>>     FreeBSD kernel.
>>>>>
>>>>> 3. The 'xl shutdown freebsd' command does not work, it just hangs. To stop
>>>>>     the guest, you need to do 'xl destroy freebsd'.
>>>>>
>>>>> However, I think we can get the console to work and the rootfs to mount because I
>>>>> just realized I forgot to do the steps from Julien's instructions of editing the
>>>>> /etc/fstab and /etc/ttys files in the FreeBSD rootfs :
>>>>>
>>>>> $ echo "/dev/xbd0       /       ufs     rw      1       1" > /mnt/etc/fstab
>>>>> $ vi /mnt/etc/ttys (add the line 'xc0 "/usr/libexec/getty Pc" xterm on secure")
>>>>>
>>>>> I will add those and see if the console and disk are working.
>>>>
>>>> Unfortunately, adding xc0 to /etc/ttys and /dev/xbd0 as the root device in
>>>> /etc/fstab did not make the console or disk work. Still no output on the
>>>> xen console from the guest kernel, and the timestamp on the rootfs image
>>>> file did not change so it did not mount read-write.
>>>>
>>>> We could use some advice for troubleshooting this. Now, we are blind because
>>>> we are not getting any xen console output But I am pleased we were able to
>>>> demonstrate that Julien's old patch set for FreeBSD 11 allows us to boot
>>>> FreeBSD 11 on a modern version of Xen on arm - we are using the Debian
>>>> stable Xen 4.17 packages.
>>>
>>> You can use the DEBUG hypercalls to check how far we got into the
>>> booting process:
>>> https://wiki.xenproject.org/wiki/Xen_ARM_DEBUG_hypercalls
>>>
>>> For instance add the following to FreeBSD code:
>>>
>>> asm volatile("hvc 0xfffd");
>>>
>>
>> It took me a while, but I finally got this approach to work to debug the FreeBSD
>> kernel. Thanks!
>>
>> The problem was the compiler was reporting hvc is an invalid instruction. To
>> get the compiler to accept the hvc instruction as valid, I first spent quite a
>> bit of time porting the patches from the old development version of FreeBSD 11 on
>> which Julien's patches were based to FreeBSD 12.4, because that old development
>> version of FreeBSD did not support armv7 but only armv6, and I thought maybe
>> the compiler is rejecting the hvc instruction because the kernel build was
>> targeting armv6 and I was not sure hypervisor extensions were available for
>> armv6. But FreeBSD 12 and higher has support to target armv7 for the kernel.
>> There were quite a few changes to account for between FreeBSD 11 and FreeBSD 12.4,
>> I had to add about 12 more patches, but I also removed some of Julien's patches
>> that were either applied in FreeBSD 12.4 or no longer applicable to FreeBSD 12.4.
>>
>> So when I was able to build a FreeBSD 12.4 kernel + Julien's arm/xenvirt patches
>> targeting armv7 instead of armv6, I got the same behavior: the guest started but
>> no output on the console, and the compiler at first still did not accept the
>> hvc instruction (FreeBSD uses the clang compiler by default to build the kernel).
>> After some searches on the Internet I discovered that adding the -mthumb CFLAG
>> when compiling the objects with an hvc instruction enabled the compiler to accept
>> the hvc instruction.
>>
>> So I was able to get output like this in the dom0 Xen console log from the hvc
>> instruction in the guest :
>>
>> (XEN) arch/arm/traps.c:1983:d2v0 HSR=0x80000005 pc=0xffff000c gva=0xffff000c gpa=0x000000ffff000c
>> (XEN) arch/arm/traps.c:1983:d2v0 HSR=0x80000005 pc=0xffff000c gva=0xffff000c gpa=0x000000ffff000c
>> ...
>>
>> For now, I only put one hvc instruction in the FreeBSD code - it is where the
>> kernel prints the copyright and version information to the console. So I don't
>> understand why the message from the hvc instruction is appearing multiple times
>> in the Xen logs...
>>
>> In any case, this provides a way to debug the boot of FreeBSD / arm on Xen, so
>> thanks, Stefano, for this suggestion!
> 
> You are welcome! :-)
> 
> I am glad you could make progress. You'll find that the hvc 0xfffd and
> other debug hypercalls are really useful. Also it is easy to write using
> just hvc and assembly a very simple early printk implementation. See the
> __HYPERVISOR_console_io hypercall:
> 
> - immediate: 0xEA1
> - r12: hypercall number 18
> - r0: CONSOLEIO_write 0x0
> - r1: number of chars
> - r2: guest address of the string

A word of caution, this may not work properly if you have the MMU turned 
off. The string would have to be static to prevent any caching.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 09:02:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 09:02:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653783.1020331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDL8h-0005oW-RQ; Wed, 13 Dec 2023 09:02:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653783.1020331; Wed, 13 Dec 2023 09:02: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 1rDL8h-0005oP-Ol; Wed, 13 Dec 2023 09:02:47 +0000
Received: by outflank-mailman (input) for mailman id 653783;
 Wed, 13 Dec 2023 09:02: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=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDL8g-0005oG-FH
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 09:02:46 +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 61317d4c-9996-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 10:02:45 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a22f2a28c16so120065166b.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 01:02:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 so7-20020a170907390700b00a1f747f762asm6736633ejc.112.2023.12.13.01.02.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 01:02:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61317d4c-9996-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702458164; x=1703062964; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SLgM7bcuq4V+3ryD30B+GyM8EjFRUazy636Y18jPA/A=;
        b=c8aNNvQPAwkJpl1zXcAu2OZP5R0DwO8XRk9A5Iq0Raw3PXnELX0iYcAWCYt9rxAwSd
         uiPhvm/4tXTs3CfI3jLdHTzrHI1w/7F5Sfyl3MTZeOhekyVIpIT0H7nMK/OGFGyq8DdZ
         iL0C9obuwcoOhGqJ/Nx62WSd5fAMwa7HOnOs4ejNLl4+EQRkqdE890hpaQgijVspAkI+
         7YcVqXtKwYi2A7mCexsi7zF1WYQJ0MU7f5OvMlAqOPc/kbVCTFLzsOvp4rX0/AUiTL6N
         dB9v8t8nykCJYTU/cxCpRlzRRF7LzsT2Eqn/b8w8XIGHGPs2khRjFPOTtQhG/2F2leF8
         /IUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702458164; x=1703062964;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=SLgM7bcuq4V+3ryD30B+GyM8EjFRUazy636Y18jPA/A=;
        b=JcZOksRlgGijlKxWTspGXgGJoy8BJ8ttm99imIl2dN+UgJv8SzTKpNCSelEe8bITd3
         1OFmRWz57kdBJ5/FY3B6ONvaD61pQWaoWbKGqquu5GYEW4iUtXVIqm3tgcgqd47asLne
         XbSxGWLTRkrCHIw7aENkBelDE84W6oj6Ql0j9eBLbEYLhabOEJ79ZuT3jDVQwxHl45Wz
         LNpkSlEz6i5w8uCoXUR8Imm/X+XI3UYUbFr/T3eds7XOYJMZlwtbpOmPa+2x7GHDHIJz
         +2BgtdtCPZ2WZ6KfMdXayjY4AwYfMCVqscFlRlrEMQEJZSLPjXUiigTBIgjzCl+AnZn3
         rHzw==
X-Gm-Message-State: AOJu0YxfMV9zU5sxn1/jKNzXQzO7LZ+jD7ArQsdn8/UCYwp6HJXUZsee
	bBY9y2r1pXWvgReKN8nu7cnQ
X-Google-Smtp-Source: AGHT+IFwaAWyc93ctiJ3H1VUuAvYYl3Eb14IKvYZZAOWtJgR6HIOX5quWhrQ+1NXOq+Vetzo7tzGJA==
X-Received: by 2002:a17:906:2f81:b0:a08:17de:6409 with SMTP id w1-20020a1709062f8100b00a0817de6409mr1978781eji.7.1702458164676;
        Wed, 13 Dec 2023 01:02:44 -0800 (PST)
Message-ID: <cbce8db0-bda5-4973-a105-7d5b2703b64d@suse.com>
Date: Wed, 13 Dec 2023 10:02:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] MAINTAINERS: add me as Mini-OS maintainer
Content-Language: en-US
To: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: 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>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <20231207073012.25730-1-jgross@suse.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: <20231207073012.25730-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.12.2023 08:30, Juergen Gross wrote:
> I've been the main contributor to Mini-OS since several years now.
> Add me as a maintainer.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

No matter what ./MAINTAINERS says about the file itself, I think this change
primarily wants approving by you, Samuel, as the only present maintainer.

Jan

> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -439,8 +439,8 @@ F:	xen/test/livepatch/*
>  
>  MINI-OS
>  M:	Samuel Thibault <samuel.thibault@ens-lyon.org>
> +M:	Juergen Gross <jgross@suse.com>
>  R:	Wei Liu <wl@xen.org>
> -R:	Juergen Gross <jgross@suse.com>
>  S:	Supported
>  L:	minios-devel@lists.xenproject.org
>  T:	git https://xenbits.xenproject.org/git-http/mini-os.git



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 09:07:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 09:07:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653786.1020341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLDY-0006z8-Dl; Wed, 13 Dec 2023 09:07:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653786.1020341; Wed, 13 Dec 2023 09:07:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLDY-0006z1-B5; Wed, 13 Dec 2023 09:07:48 +0000
Received: by outflank-mailman (input) for mailman id 653786;
 Wed, 13 Dec 2023 09: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=7vuN=HY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rDLDW-0006yu-Oe
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 09:07:46 +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 1406be8f-9997-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 10:07:45 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 9F7A21FD42;
 Wed, 13 Dec 2023 09:07:43 +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 5CB311377F;
 Wed, 13 Dec 2023 09:07:43 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id qzF5FF90eWWnPQAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 13 Dec 2023 09:07:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1406be8f-9997-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702458464; 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=Y+NTlNRv+KUYDyBLj5ss4y+FOo3hBRq7sFCXbTR6Ms8=;
	b=DLg1jopa/TM0I5zPqeJ70nTo3fmvXk+b3JRZcD85a2GTHXTs7yrmRDCRApyGYGNHPvyY1n
	e0lE1m73sWUDAGNL9kJH7L720qg5nWaRalzBGLrG3kaCKAIvneQ8+6yVB2G1qS7xowe9s8
	FNgMrZwGDs0idbejLVT0csyjFeGrj2s=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702458463; 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=Y+NTlNRv+KUYDyBLj5ss4y+FOo3hBRq7sFCXbTR6Ms8=;
	b=b4vT+SGttJPyoDJrm+PXDLUf4vAFAgQ7IohrsVHFJCVOR6QO3Yqe0q7qlfhe6zjxTArPc5
	tYd3rY7PWL/+jzNVSS+DjoKa3HFErPnQmQEp+cuJ2Goz7ED2EII4FSge2WnD1TmBbl7Mnj
	QsRGjUf2Rw7LS9uovIiJ5ZF2oaFVywk=
Message-ID: <b838696e-d5b2-4d48-8261-ca24a86cdbde@suse.com>
Date: Wed, 13 Dec 2023 10:07:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] xen/spinlock: make struct lock_profile
 rspinlock_t aware
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-7-jgross@suse.com>
 <ba842318-0d5e-4b8f-99f9-f0f1e2dda1ab@xen.org>
 <3895f5bb-354c-4ada-a14d-83537dd5d119@suse.com>
 <3f5f7df0-d7e5-4540-b01b-9b2cde9dcc55@suse.com>
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: <3f5f7df0-d7e5-4540-b01b-9b2cde9dcc55@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------NmJOSgOCN7V1ERPijZwCxDVc"
X-Spam-Level: ***************
X-Spam-Flag: YES
X-Spam-Score: 15.00
X-Spam-Level: 
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=b4vT+SGt;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [-7.90 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[8];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 SIGNED_PGP(-2.00)[];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-0.00)[40.49%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 DWL_DNSWL_MED(-2.00)[suse.com:dkim];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -7.90
X-Rspamd-Queue-Id: 9F7A21FD42
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------NmJOSgOCN7V1ERPijZwCxDVc
Content-Type: multipart/mixed; boundary="------------tkpD75prSHKA7qTBxHa3mjlO";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Message-ID: <b838696e-d5b2-4d48-8261-ca24a86cdbde@suse.com>
Subject: Re: [PATCH v4 06/12] xen/spinlock: make struct lock_profile
 rspinlock_t aware
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-7-jgross@suse.com>
 <ba842318-0d5e-4b8f-99f9-f0f1e2dda1ab@xen.org>
 <3895f5bb-354c-4ada-a14d-83537dd5d119@suse.com>
 <3f5f7df0-d7e5-4540-b01b-9b2cde9dcc55@suse.com>
In-Reply-To: <3f5f7df0-d7e5-4540-b01b-9b2cde9dcc55@suse.com>

--------------tkpD75prSHKA7qTBxHa3mjlO
Content-Type: multipart/mixed; boundary="------------I57fp1RDmk1qkqg1Pcp4Vofh"

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

T24gMTMuMTIuMjMgMDk6MzYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMy4xMi4yMDIz
IDA3OjA1LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMTIuMTIuMjMgMTk6NDIsIEp1
bGllbiBHcmFsbCB3cm90ZToNCj4+PiBPbiAxMi8xMi8yMDIzIDA5OjQ3LCBKdWVyZ2VuIEdy
b3NzIHdyb3RlOg0KPj4+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vc3BpbmxvY2suaA0KPj4+
PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vc3BpbmxvY2suaA0KPj4+PiBAQCAtNzYsMTMgKzc2
LDE5IEBAIHVuaW9uIGxvY2tfZGVidWcgeyB9Ow0KPj4+PiAgwqAgKi8NCj4+Pj4gIMKgIHN0
cnVjdCBzcGlubG9jazsNCj4+Pj4gKy8qIFRlbXBvcmFyeSBoYWNrIHVudGlsIGEgZGVkaWNh
dGVkIHN0cnVjdCByc3BpbmxvY2sgaXMgZXhpc3RpbmcuICovDQo+Pj4+ICsjZGVmaW5lIHJz
cGlubG9jayBzcGlubG9jaw0KPj4+PiAgwqAgc3RydWN0IGxvY2tfcHJvZmlsZSB7DQo+Pj4+
ICDCoMKgwqDCoMKgIHN0cnVjdCBsb2NrX3Byb2ZpbGUgKm5leHQ7wqDCoMKgwqDCoMKgIC8q
IGZvcndhcmQgbGluayAqLw0KPj4+PiAgwqDCoMKgwqDCoCBjb25zdCBjaGFywqDCoMKgwqDC
oMKgwqDCoMKgICpuYW1lO8KgwqDCoMKgwqDCoCAvKiBsb2NrIG5hbWUgKi8NCj4+Pj4gLcKg
wqDCoCBzdHJ1Y3Qgc3BpbmxvY2vCoMKgwqDCoCAqbG9jazvCoMKgwqDCoMKgwqAgLyogdGhl
IGxvY2sgaXRzZWxmICovDQo+Pj4+ICvCoMKgwqAgdW5pb24gew0KPj4+PiArwqDCoMKgwqDC
oMKgwqAgc3RydWN0IHNwaW5sb2NrICpsb2NrO8KgwqDCoMKgwqDCoCAvKiB0aGUgbG9jayBp
dHNlbGYgKi8NCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCByc3BpbmxvY2sgKnJsb2Nr
O8KgwqDCoMKgIC8qIHRoZSByZWN1cnNpdmUgbG9jayBpdHNlbGYgKi8NCj4+Pj4gK8KgwqDC
oCB9Ow0KPj4+PiAgwqDCoMKgwqDCoCB1aW50NjRfdMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
bG9ja19jbnQ7wqDCoMKgIC8qICMgb2YgY29tcGxldGUgbG9ja2luZyBvcHMgKi8NCj4+Pj4g
LcKgwqDCoCB1aW50NjRfdMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYmxvY2tfY250O8KgwqAg
LyogIyBvZiBjb21wbGV0ZSB3YWl0IGZvciBsb2NrICovDQo+Pj4+ICvCoMKgwqAgdWludDY0
X3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJsb2NrX2NudDo2MzsgLyogIyBvZiBjb21wbGV0
ZSB3YWl0IGZvciBsb2NrICovDQo+Pj4+ICvCoMKgwqAgdWludDY0X3TCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIGlzX3Jsb2NrOjE7wqAgLyogdXNlIHJsb2NrIHBvaW50ZXIgKi8NCj4+Pg0K
Pj4+IFRoaXMgaXMgbWVhbnQgdG8gYWN0IGxpa2UgYSBib29sLiBTbyBJIHdvdWxkIHByZWZl
ciBpZiB3ZSB1c2U6DQo+Pj4NCj4+PiBib29sIGlzX3J3bG9jazoxOw0KPj4+DQo+Pj4gQW5k
IHRoZW4gdXNlIHRydWUvZmFsc2Ugd2hlbiBzZXQuDQo+Pg0KPj4gRG8gd2Ugd2FudCB0byBk
byB0aGF0PyBBRkFJSyBpdCB3b3VsZCBkZXBlbmQgb24gdGhlIGNvbXBpbGVyIHdoYXQgdGhl
IHNpemUgb2YNCj4+IHRoZSBzdHJ1Y3QgaXMgd2hlbiBtaXhpbmcgdHlwZXMgaW4gYml0Zmll
bGRzIChpbiB0aGlzIGNhc2U6IGJvb2wgYW5kIHVpbnQ2NF90KS4NCj4gDQo+IEkgdGhvdWdo
dCBpbiBhIHNpbWlsYXIgd2F5IGFzIHlvdSBkaWQgd2hlbiBBbmRyZXcgaW50cm9kdWNlZCBz
aW1pbGFyDQo+IHBhdHRlcm5zIChzZWUgSnVsaWVuJ3MgcmVwbHkgZm9yIGFuIGV4YW1wbGUp
LCBhbmQgd2FzIHRoZW4gY29udmluY2VkDQo+IHRoYXQgdGhlIGNvbXBpbGVyIHJlYWxseSBp
cyBzdXBwb3NlZCB0byBiZSBkb2luZyB3aGF0IHdlIHdhbnQgaGVyZS4NCj4gU28geWVzLCBJ
IHNlY29uZCBKdWxpZW4ncyBkZXNpcmUgdG8gaGF2ZSBib29sIHVzZWQgd2hlbiBib29sZWFu
IGlzDQo+IG1lYW50Lg0KDQpPa2F5LCBmaW5lIHdpdGggbWUuDQoNCg0KSnVlcmdlbg0K
--------------I57fp1RDmk1qkqg1Pcp4Vofh
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-----

--------------I57fp1RDmk1qkqg1Pcp4Vofh--

--------------tkpD75prSHKA7qTBxHa3mjlO--

--------------NmJOSgOCN7V1ERPijZwCxDVc
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/Ey8FAmV5dF4FAwAAAAAACgkQsN6d1ii/Ey8Q
/QgAi4sW++7CMmBmmbRgTb8Iy+Cp/NBlyhTamvQ3aip6DW9c/TVGCZG7dnd/MBWeMaBsatjAs2N8
l0s6AmhylQYUxukD8zklwS8HYkwr7Ejh7qpuLhYMt60E4289hp4RBM+mLwUcnWoEYg3VERijS5+o
x97p1T0HJS7cfzWC1CaY5DZFmjDkc4LXdpa1c5rlOR19/1/nE71wGOqNYJQBhZkf7O4mUiH3Muig
ElHP7qw716fMbM03VHaN+DwiSV0F9HSyQ+FPqc92pzQsSPdfL0rMh/JO4piqJUNr1e+9MuBmOkq/
nCy1Y/TNH2UjGJ/hS7FvwSBnZ0l3QPGRrPmd1ujDxg==
=Cbg5
-----END PGP SIGNATURE-----

--------------NmJOSgOCN7V1ERPijZwCxDVc--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 09:11:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 09:11:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653790.1020351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLHO-0001Es-UO; Wed, 13 Dec 2023 09:11:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653790.1020351; Wed, 13 Dec 2023 09:11:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLHO-0001El-R4; Wed, 13 Dec 2023 09:11:46 +0000
Received: by outflank-mailman (input) for mailman id 653790;
 Wed, 13 Dec 2023 09:11: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=7vuN=HY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rDLHN-0001Ef-7g
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 09:11:45 +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 a1173c16-9997-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 10:11:42 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 423552254A;
 Wed, 13 Dec 2023 09:11:41 +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 C87881377F;
 Wed, 13 Dec 2023 09:11:40 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 2OmYL0x1eWXPPgAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 13 Dec 2023 09:11: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: a1173c16-9997-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702458701; 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=QdUl4RajCCF5I8J16BwxSqtLV4AuPBR5BmDWWapreug=;
	b=afSHlj2gMd1Hwgj2tRZnOKfoG+vGeauPv6Pxmg7/YTs9UxbLSyCwAM5t8N3QlBwyKhypnR
	RWE6Uphlt5lZWaINUa4UktdI31Mp80mxklkcq5LXbIil1WBKkzrIiY4wxSgEfBAhMu8CGR
	0vLHH6NFyZnxwlHPDG7MfP3BTXFcquk=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702458701; 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=QdUl4RajCCF5I8J16BwxSqtLV4AuPBR5BmDWWapreug=;
	b=afSHlj2gMd1Hwgj2tRZnOKfoG+vGeauPv6Pxmg7/YTs9UxbLSyCwAM5t8N3QlBwyKhypnR
	RWE6Uphlt5lZWaINUa4UktdI31Mp80mxklkcq5LXbIil1WBKkzrIiY4wxSgEfBAhMu8CGR
	0vLHH6NFyZnxwlHPDG7MfP3BTXFcquk=
Message-ID: <e903b152-cefe-4c87-a503-08c75a484767@suse.com>
Date: Wed, 13 Dec 2023 10:11:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] xen/spinlock: add explicit non-recursive locking
 functions
Content-Language: en-US
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-8-jgross@suse.com>
 <c7a969af-274b-4e92-b083-56059cbc98d6@xen.org>
 <f619efa1-da81-446b-968b-f81a2d18a7e5@suse.com>
 <5c2e8010-5548-4bef-bdb0-1613e2893a0d@xen.org>
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: <5c2e8010-5548-4bef-bdb0-1613e2893a0d@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------J40hAAdsO36cMtttllufRLFr"
X-Spam-Level: 
X-Spam-Flag: NO
X-Spam-Score: -5.99
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -6.19
X-Spamd-Result: default: False [-6.19 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-0.996];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_TWELVE(0.00)[15];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------J40hAAdsO36cMtttllufRLFr
Content-Type: multipart/mixed; boundary="------------mv0FCIzmAt7nbj3THU5cK0Th";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>
Message-ID: <e903b152-cefe-4c87-a503-08c75a484767@suse.com>
Subject: Re: [PATCH v4 07/12] xen/spinlock: add explicit non-recursive locking
 functions
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-8-jgross@suse.com>
 <c7a969af-274b-4e92-b083-56059cbc98d6@xen.org>
 <f619efa1-da81-446b-968b-f81a2d18a7e5@suse.com>
 <5c2e8010-5548-4bef-bdb0-1613e2893a0d@xen.org>
In-Reply-To: <5c2e8010-5548-4bef-bdb0-1613e2893a0d@xen.org>

--------------mv0FCIzmAt7nbj3THU5cK0Th
Content-Type: multipart/mixed; boundary="------------HMkyses7sbKQKkxnQcLs0Nqq"

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

T24gMTMuMTIuMjMgMDk6MzYsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gDQo+IA0KPiBPbiAx
My8xMi8yMDIzIDA2OjE3LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMTIuMTIuMjMg
MTk6NDksIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+PiBIaSBKdWVyZ2VuLA0KPj4+DQo+Pj4g
T24gMTIvMTIvMjAyMyAwOTo0NywgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+Pj4gLSNkZWZp
bmUgc3Bpbl9sb2NrX2luaXRfcHJvZihzLCBsKSBfX3NwaW5fbG9ja19pbml0X3Byb2Yocywg
bCwgc3BpbmxvY2tfdCkNCj4+Pj4gLSNkZWZpbmUgcnNwaW5fbG9ja19pbml0X3Byb2Yocywg
bCkgX19zcGluX2xvY2tfaW5pdF9wcm9mKHMsIGwsIHJzcGlubG9ja190KQ0KPj4+PiArI2Rl
ZmluZSBzcGluX2xvY2tfaW5pdF9wcm9mKHMsIA0KPj4+PiBsKcKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgXA0KPj4+PiArwqDCoMKgIF9fc3Bpbl9sb2NrX2luaXRfcHJv
ZihzLCBsLCBsb2NrLCBzcGlubG9ja190LCAwKQ0KPj4+PiArI2RlZmluZSByc3Bpbl9sb2Nr
X2luaXRfcHJvZihzLCANCj4+Pj4gbCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBcDQo+Pj4+ICvCoMKgwqAgX19zcGluX2xvY2tfaW5pdF9wcm9mKHMsIGwsIHJsb2NrLCBy
c3BpbmxvY2tfdCwgMSkNCj4+Pj4gwqAgdm9pZCBfbG9ja19wcm9maWxlX3JlZ2lzdGVyX3N0
cnVjdCgNCj4+Pj4gwqDCoMKgwqDCoCBpbnQzMl90IHR5cGUsIHN0cnVjdCBsb2NrX3Byb2Zp
bGVfcWhlYWQgKnFoZWFkLCBpbnQzMl90IGlkeCk7DQo+Pj4+IEBAIC0xNzQsNiArMTc5LDcg
QEAgc3RydWN0IGxvY2tfcHJvZmlsZV9xaGVhZCB7IH07DQo+Pj4+IMKgICNlbmRpZg0KPj4+
PiArDQo+Pj4NCj4+PiBTcHVyaW91cyBjaGFuZ2U/DQo+Pg0KPj4gSW5kZWVkLCB3aWxsIHJl
bW92ZSBpdC4NCj4+DQo+Pj4NCj4+Pj4gwqAgdHlwZWRlZiB1bmlvbiB7DQo+Pj4+IMKgwqDC
oMKgwqAgdWludDMyX3QgaGVhZF90YWlsOw0KPj4+PiDCoMKgwqDCoMKgIHN0cnVjdCB7DQo+
Pj4+IEBAIC0yNjEsNCArMjY3LDEyIEBAIHZvaWQgcnNwaW5fdW5sb2NrX2lycXJlc3RvcmUo
cnNwaW5sb2NrX3QgKmxvY2ssIA0KPj4+PiB1bnNpZ25lZCBsb25nIGZsYWdzKTsNCj4+Pj4g
wqAgLyogRW5zdXJlIGEgbG9jayBpcyBxdWllc2NlbnQgYmV0d2VlbiB0d28gY3JpdGljYWwg
b3BlcmF0aW9ucy4gKi8NCj4+Pj4gwqAgI2RlZmluZSBzcGluX2JhcnJpZXIobCnCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9zcGluX2JhcnJpZXIobCkNCj4+Pj4gKyNkZWZpbmUg
bnJzcGluX3RyeWxvY2sobCnCoMKgwqAgc3Bpbl90cnlsb2NrKGwpDQo+Pj4+ICsjZGVmaW5l
IG5yc3Bpbl9sb2NrKGwpwqDCoMKgwqDCoMKgIHNwaW5fbG9jayhsKQ0KPj4+PiArI2RlZmlu
ZSBucnNwaW5fdW5sb2NrKGwpwqDCoMKgwqAgc3Bpbl91bmxvY2sobCkNCj4+Pj4gKyNkZWZp
bmUgbnJzcGluX2xvY2tfaXJxKGwpwqDCoCBzcGluX2xvY2tfaXJxKGwpDQo+Pj4+ICsjZGVm
aW5lIG5yc3Bpbl91bmxvY2tfaXJxKGwpIHNwaW5fdW5sb2NrX2lycShsKQ0KPj4+PiArI2Rl
ZmluZSBucnNwaW5fbG9ja19pcnFzYXZlKGwsIGYpwqDCoMKgwqDCoCBzcGluX2xvY2tfaXJx
c2F2ZShsLCBmKQ0KPj4+PiArI2RlZmluZSBucnNwaW5fdW5sb2NrX2lycXJlc3RvcmUobCwg
Zikgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShsLCBmKQ0KPj4+DQo+Pj4gVGhlcmUgaXMgYSBj
b21tZW50IGRlc2NyaWJpbmcgW3Jdc3BpbmxvY2sgYnV0IG5vdCB0aGlzIG5ldyB2YXJpYW50
LiBDYW4geW91IA0KPj4+IGFkZCBvbmU/DQo+Pg0KPj4gT2theS4NCj4+DQo+Pj4gVGhhdCBz
YWlkLCBJIGtub3cgdGhpcyBpcyBleGlzdGluZyBjb2RlLCBidXQgSSBoYXZlIHRvIGFkbWl0
IHRoaXMgaXMgYSBiaXQgDQo+Pj4gdW5jbGVhciB3aHkgd2UgYXJlIGFsbG93aW5nIGFuIHJl
Y3Vyc2l2ZSBzcGlubG9jayB0byBiZSBub24tcmVjdXJzaXZlLiBUbyBtZSANCj4+PiBpdCBz
b3VuZHMgbGlrZSB3ZSBhcmUgbWFraW5nIHRoZSB0eXBlc2FmZSBub3QgdmVyeSBzYWZlIGJl
Y2F1c2UgaXQgZG9lc24ndCANCj4+PiBndWFyYW50ZWUgdGhhdCB3ZSBhcmUgbm90IG1peGlu
ZyB0aGUgY2FsbCBucnNwaW5fKiB3aXRoIHJzcGluXyouDQo+Pg0KPj4gVGhpcyBpcyB0aGUg
Y3VycmVudCBBUEkuDQo+IA0KPiBJIGtub3cuIFRoaXMgaXMgd2h5IEkgd3JvdGUgIkkga25v
dyB0aGlzIGlzIGV4aXN0aW5nIGNvZGUiLg0KPiANCj4+DQo+PiBJZiB5b3UgaGF2ZSBsb2Nr
ZWQgd2l0aCBucnNwaW5fKiwgYW55IHJzcGluXyogYXR0ZW1wdCBvbiB0aGUgc2FtZSBsb2Nr
IHdpbGwNCj4+IHNwaW4gdW50aWwgcnNwaW5fdW5sb2NrIChucnNwaW5fKiB3aWxsIG5vdCBz
ZXQgcmVjdXJzZV9jcHUsIGJ1dCB0YWtlIHRoZQ0KPj4gbG9jaykuDQo+Pg0KPj4gSWYgeW91
IGhhdmUgbG9ja2VkIHdpdGggcnNwaW5fKiwgYW55IG5yc3Bpbl8qIGF0dGVtcHQgb24gdGhl
IHNhbWUgbG9jayB3aWxsDQo+PiBzcGluLCB0b28uDQo+Pg0KPj4gU28gSSBkb24ndCBzZWUg
YW55IG1ham9yIHByb2JsZW0gcmVnYXJkaW5nIGFjY2lkZW50YWwgbWlzdXNlLCB3aGljaCB3
b3VsZG4ndA0KPj4gYmUgdmlzaWJsZSBieSBkZWFkbG9ja3MgKHRoZXJlIGlzIG5vIHNpbGVu
dCBtaXNiZWhhdmlvcikuDQo+IA0KPiBSaWdodCwgc28gdGhpcyB3aWxsIGxlYWQgdG8gYSBk
ZWFkbG9jaywgd2hpY2ggaXMgbXkgY29uY2Vybi4gSWYgd2Ugd2VyZSB1c2luZyANCj4gcnNw
aW5sb2NrXyogZXZlcnl3aGVyZSB0aGVuIHRoZSBkZWFkbG9jayAoYXQgbGVhc3QgaW4gdGhl
IGNhc2Ugd2hlbiB5b3UgcmVjdXJzZSkgDQo+IHdvdWxkIGluIHRoZW9yeSBub3QgYmUgcG9z
c2libGUgKHVubGVzcyB5b3UgcmVjdXJzZSB0b28gbXVjaCkuDQoNCkEgcHJvZ3JhbW1pbmcg
ZXJyb3IgY2FuIGxlYWQgdG8gYSBkZWFkbG9jaywgeWVzLg0KDQpNeSB1bmRlcnN0YW5kaW5n
IGlzIHRoYXQgdGhlcmUgYXJlIGRlbGliZXJhdGUgdXNlIGNhc2VzIG9mIG5vbi1yZWN1cnNp
dmUgbG9ja2luZw0KYXMgcGF0aHMgdXNpbmcgcmVjdXJzaXZlIGxvY2tpbmcgb2YgdGhlIHNh
bWUgbG9jayBhcmUgbm90IGFsbG93ZWQgaW4gdGhvc2UNCmNhc2VzLg0KDQpKdXN0IHVzaW5n
IHJzcGlubG9ja18qIGluc3RlYWQgb2YgbnJzcGlubG9ja18qIHdvdWxkIHNpbGVudGx5IGln
bm9yZSBzdWNoIGNhc2VzLA0Kd2hpY2ggaXMgZmFyIHdvcnNlIHRoYW4gYSBkZWFkbG9jaywg
YXMgdGhvc2UgY2FzZXMgbWlnaHQgaW50cm9kdWNlIGUuZy4gc2VjdXJpdHkNCmhvbGVzLg0K
DQo+IE15IHBvaW50IGhlcmUgaXMgdG8gc2ltcGxpZnkgdGhlIGludGVyZmFjZSByYXRoZXIg
dGhhbiBwcm92aWRpbmcgYmVjYXVzZSBJIGRvbid0IA0KPiByZWFsbHkgc2VlIHRoZSBiZW5l
Zml0cyBvZiBwcm92aWRpbmcgYSBub24tcmVjdXJzaXZlIHZlcnNpb24gZm9yIHJlY3Vyc2l2
ZSANCj4gc3BpbmxvY2suDQo+IA0KPiBBbnl3YXkgYXMgSSBzYWlkIHRoaXMgaXMgbm90aGlu
ZyBuZXcuDQoNCkNvcnJlY3QuIE5vdGhpbmcgSSdkIGxpa2UgdG8gYWRkcmVzcyBpbiB0aGlz
IHNlcmllcy4NCg0KDQpKdWVyZ2VuDQo=
--------------HMkyses7sbKQKkxnQcLs0Nqq
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-----

--------------HMkyses7sbKQKkxnQcLs0Nqq--

--------------mv0FCIzmAt7nbj3THU5cK0Th--

--------------J40hAAdsO36cMtttllufRLFr
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/Ey8FAmV5dUwFAwAAAAAACgkQsN6d1ii/Ey/P
dAf+NVE1Q43NMXyTpaLefS07BKg78wWRQZwvo6VmPRr0Ucr5H/Fq31NL6MzNNN7C/YgRcPpht3tp
/Nwcd1x2OUXrgRle0xXffJyJJvvkY54Fh8las/6LcgnaukdWjzpMLw8J4K6h8vWX6sFFDPZlJDfi
5ducR0ncuSLDm6IQeEekjMD3GbfvvuCJxBjkcERPG9ISU+GV1VlVLPmAr+TWFGvcTqTCB/7RDr53
JNl6yDL1pocBDLn2YXJpV8tZfOUYbPYzCN+L4aLTJqvo0MYdMVPBBcqLnb9nkHFgif6YJOnMLAw1
VqDfcV1+a9NCQ8Jb9RnELWNtBYQg8AqgMAsOcI7aTA==
=0vY3
-----END PGP SIGNATURE-----

--------------J40hAAdsO36cMtttllufRLFr--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 09:15:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 09:15:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653794.1020361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLL8-0001rv-G5; Wed, 13 Dec 2023 09:15:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653794.1020361; Wed, 13 Dec 2023 09: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 1rDLL8-0001ro-DJ; Wed, 13 Dec 2023 09:15:38 +0000
Received: by outflank-mailman (input) for mailman id 653794;
 Wed, 13 Dec 2023 09:15:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zJ/P=HY=ens-lyon.org=samuel.thibault@bounce.ens-lyon.org>)
 id 1rDLL7-0001ri-A6
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 09:15: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 2c249dea-9998-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 10:15:35 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by sonata.ens-lyon.org (Postfix) with ESMTP id ACBC820157;
 Wed, 13 Dec 2023 10:15:34 +0100 (CET)
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 zC7K8fMlobKP; Wed, 13 Dec 2023 10:15:34 +0100 (CET)
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 55CC020101;
 Wed, 13 Dec 2023 10:15:34 +0100 (CET)
Received: from samy by begin with local (Exim 4.97)
 (envelope-from <samuel.thibault@ens-lyon.org>)
 id 1rDLL3-0000000DMvq-3xUM; Wed, 13 Dec 2023 10:15:33 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c249dea-9998-11ee-98e9-6d05b1d4d9a1
Date: Wed, 13 Dec 2023 10:15:33 +0100
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>,
	xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] MAINTAINERS: add me as Mini-OS maintainer
Message-ID: <20231213091533.fmtbldd27dx7novc@begin>
Mail-Followup-To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Jan Beulich <jbeulich@suse.com>,
	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>,
	xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <20231207073012.25730-1-jgross@suse.com>
 <cbce8db0-bda5-4973-a105-7d5b2703b64d@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="jg26aeftgvflkdsg"
Content-Disposition: inline
In-Reply-To: <cbce8db0-bda5-4973-a105-7d5b2703b64d@suse.com>
Organization: I am not organized
User-Agent: NeoMutt/20170609 (1.8.3)


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

Jan Beulich, le mer. 13 d=C3=A9c. 2023 10:02:43 +0100, a ecrit:
> On 07.12.2023 08:30, Juergen Gross wrote:
> > I've been the main contributor to Mini-OS since several years now.
> > Add me as a maintainer.
> >=20
> > Signed-off-by: Juergen Gross <jgross@suse.com>
>=20
> No matter what ./MAINTAINERS says about the file itself, I think this cha=
nge
> primarily wants approving by you, Samuel, as the only present maintainer.

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Thanks!

> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -439,8 +439,8 @@ F:	xen/test/livepatch/*
> > =20
> >  MINI-OS
> >  M:	Samuel Thibault <samuel.thibault@ens-lyon.org>
> > +M:	Juergen Gross <jgross@suse.com>
> >  R:	Wei Liu <wl@xen.org>
> > -R:	Juergen Gross <jgross@suse.com>
> >  S:	Supported
> >  L:	minios-devel@lists.xenproject.org
> >  T:	git https://xenbits.xenproject.org/git-http/mini-os.git

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

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

iQIzBAABCgAdFiEEqpLrvfAUiqYaQ7iu5IlMrEVBS7AFAmV5di0ACgkQ5IlMrEVB
S7D4phAAhvVSKSN7GiqDsz/uOgVGm4l7kyIYo426GdIWGFIp/nBHOjuu0KJGtm/7
QeGCvr+gZW3TcgOpmYxkoACCEYTF/i8rrhqXpqhdkQwQjYnfx5ChQ1D3MTZAPTSx
rpoPyyiFDJ6I+F+8t0ieQ/UVBgMJROUJTUxk8gAyjkzAG/FqeqvMzgzys4kLJJsb
B6F4yi1YfrctcHftzpJVChzwj2V28JsOwMYo3DQyVF4MZVHnybl7J5TJnzE2c1JC
A5sIJCKTJoCJVagFHIQ/VJGcPen0X/cukm53hmnoazYWAFL9f3wAJCPqrUXDKn/O
o4n5jeas1e89Gp7Kiy8YCJ3Baz5NsXmZbf1eSzuhEZxOAIdXuCEViZ3ZbW0oB4bU
EppFtYD0hoUJCA4y5FDhSJ9veoJV49YmRzZUd3Oav7ApqUxVAY9t39SdB8W/kTQJ
La5i2/cCBl6pDeroQDVM7Qc5oJgnetazgDarnwzGHUUuDFvbSH3AmWu7iqkKKRb5
xNfg55XZ4aYSCP/aOB9kO2EgfkxqqfqykGPyT4mJn2D2SHunBA0pw5nZLKDrEknn
eq91g7Yyv86xUa5w6LTk5Lm7YpDVEUAJ3DaZ4b8KG7D2ilWz14be6vD6vrtXNQ8S
HfPXfJCY73+xWSz8NC15y3VH6CAU+izNJwWVF/LMpOaAvJvTqRE=
=E+Uq
-----END PGP SIGNATURE-----

--jg26aeftgvflkdsg--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 09:17:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 09:17:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653797.1020372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLMs-0002RR-Tv; Wed, 13 Dec 2023 09:17:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653797.1020372; Wed, 13 Dec 2023 09:17:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLMs-0002RK-PL; Wed, 13 Dec 2023 09:17:26 +0000
Received: by outflank-mailman (input) for mailman id 653797;
 Wed, 13 Dec 2023 09:17:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7vuN=HY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rDLMs-0002RC-0L
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 09:17:26 +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 6d65ca40-9998-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 10:17:24 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 BBC731FD42;
 Wed, 13 Dec 2023 09:17:23 +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 7FBB51377F;
 Wed, 13 Dec 2023 09:17:23 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id +TtaHaN2eWWJQAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 13 Dec 2023 09:17: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: 6d65ca40-9998-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702459043; 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=W0u7YrUT5nB5qMo1ziHRqeuZ18RQMb54IAgPhzbexck=;
	b=V7aBZTJdSnvlSHPu6vJNzoXaZXSVeP5z/ZAHn0E/sYzxMKFrWIWM9JvBTpJN74hi7Jl7zy
	+YBXC2UrfPKidSCLoao5ehOqbEXesI0iR5uXrQ2C+eUNsQaUN9VZX77zbk3aTXVhmVSMnJ
	YQvnHy86ljAWn1ST/bElL84ROp7lBNY=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702459043; 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=W0u7YrUT5nB5qMo1ziHRqeuZ18RQMb54IAgPhzbexck=;
	b=V7aBZTJdSnvlSHPu6vJNzoXaZXSVeP5z/ZAHn0E/sYzxMKFrWIWM9JvBTpJN74hi7Jl7zy
	+YBXC2UrfPKidSCLoao5ehOqbEXesI0iR5uXrQ2C+eUNsQaUN9VZX77zbk3aTXVhmVSMnJ
	YQvnHy86ljAWn1ST/bElL84ROp7lBNY=
Message-ID: <ea73d863-6ead-4b03-98f4-7ab873fa614b@suse.com>
Date: Wed, 13 Dec 2023 10:17:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
 <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
 <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>
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: <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------1czFYHZL9XLh5YAqN3goPvSl"
X-Spam-Level: 
X-Spam-Score: -2.99
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Level: 
X-Spam-Score: -2.99
X-Spamd-Result: default: False [-2.99 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 NEURAL_SPAM_SHORT(3.00)[1.000];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[7];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------1czFYHZL9XLh5YAqN3goPvSl
Content-Type: multipart/mixed; boundary="------------Zvsf2x2Cjonl06wSCHdrcjHR";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Message-ID: <ea73d863-6ead-4b03-98f4-7ab873fa614b@suse.com>
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
 <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
 <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>
In-Reply-To: <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>

--------------Zvsf2x2Cjonl06wSCHdrcjHR
Content-Type: multipart/mixed; boundary="------------Yzzd7twmFYD29Jf0kPtGdFU3"

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

T24gMTMuMTIuMjMgMDk6NDMsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSnVlcmdlbiwN
Cj4gDQo+IE9uIDEzLzEyLzIwMjMgMDY6MjMsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBP
biAxMi4xMi4yMyAyMDoxMCwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4+IEhpIEp1ZXJnZW4s
DQo+Pj4NCj4+PiBPbiAxMi8xMi8yMDIzIDA5OjQ3LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4+PiBBZGQgYW5vdGhlciBmdW5jdGlvbiBsZXZlbCBpbiBzcGlubG9jay5jIGhpZGluZyB0
aGUgc3BpbmxvY2tfdCBsYXlvdXQNCj4+Pj4gZnJvbSB0aGUgbG93IGxldmVsIGxvY2tpbmcg
Y29kZS4NCj4+Pj4NCj4+Pj4gVGhpcyBpcyBkb25lIGluIHByZXBhcmF0aW9uIG9mIGludHJv
ZHVjaW5nIHJzcGlubG9ja190IGZvciByZWN1cnNpdmUNCj4+Pj4gbG9ja3Mgd2l0aG91dCBo
YXZpbmcgdG8gZHVwbGljYXRlIGFsbCBvZiB0aGUgbG9ja2luZyBjb2RlLg0KPj4+DQo+Pj4g
U28gYWxsIHRoZSBmaWVsZHMgeW91IHBhc3MgYXJlIHRoZSBvbmUgZnJvbSBzcGlubG9jay4N
Cj4+Pg0KPj4+IExvb2tpbmcgYXQgcGFob2xlIGFmdGVyIHRoaXMgc2VyaWVzIGlzIGFwcGxp
ZCwgd2UgaGF2ZToNCj4+Pg0KPj4+ID09PT0gRGVidWcgKyBMb2NrIHByb2ZpbGUgPT09PQ0K
Pj4+DQo+Pj4gc3RydWN0IHNwaW5sb2NrIHsNCj4+PiDCoMKgwqDCoMKgwqDCoMKgIHNwaW5s
b2NrX3RpY2tldHNfdMKgwqDCoMKgwqDCoMKgwqAgdGlja2V0czvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCAvKsKgwqDCoMKgIDAgNCAqLw0KPj4+IMKgwqDCoMKgwqDCoMKgwqAgdW5p
b24gbG9ja19kZWJ1Z8KgwqDCoMKgwqDCoMKgwqDCoMKgIGRlYnVnO8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDCoMKgIDQgNCAqLw0KPj4+IMKgwqDCoMKgwqDCoMKg
wqAgc3RydWN0IGxvY2tfcHJvZmlsZSAqwqDCoMKgwqDCoCBwcm9maWxlO8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgOCA4ICovDQo+Pj4NCj4+PiDCoMKgwqDCoMKg
wqDCoMKgIC8qIHNpemU6IDE2LCBjYWNoZWxpbmVzOiAxLCBtZW1iZXJzOiAzICovDQo+Pj4g
wqDCoMKgwqDCoMKgwqDCoCAvKiBsYXN0IGNhY2hlbGluZTogMTYgYnl0ZXMgKi8NCj4+PiB9
Ow0KPj4+IHN0cnVjdCByc3BpbmxvY2sgew0KPj4+IMKgwqDCoMKgwqDCoMKgwqAgc3Bpbmxv
Y2tfdGlja2V0c190wqDCoMKgwqDCoMKgwqDCoCB0aWNrZXRzO8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIC8qwqDCoMKgwqAgMCA0ICovDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1aW50
MTZfdMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWN1cnNlX2NwdTvC
oMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDCoCA0IDIgKi8NCj4+PiDCoMKgwqDCoMKgwqDC
oMKgIHVpbnQ4X3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWN1
cnNlX2NudDvCoMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDCoCA2IDEgKi8NCj4+Pg0KPj4+
IMKgwqDCoMKgwqDCoMKgwqAgLyogWFhYIDEgYnl0ZSBob2xlLCB0cnkgdG8gcGFjayAqLw0K
Pj4+DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1bmlvbiBsb2NrX2RlYnVnwqDCoMKgwqDCoMKg
wqDCoMKgwqAgZGVidWc7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKg
wqAgOCA0ICovDQo+Pj4NCj4+PiDCoMKgwqDCoMKgwqDCoMKgIC8qIFhYWCA0IGJ5dGVzIGhv
bGUsIHRyeSB0byBwYWNrICovDQo+Pj4NCj4+PiDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBs
b2NrX3Byb2ZpbGUgKsKgwqDCoMKgwqAgcHJvZmlsZTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAvKsKgwqDCoCAxNiA4ICovDQo+Pj4NCj4+PiDCoMKgwqDCoMKgwqDCoMKgIC8qIHNp
emU6IDI0LCBjYWNoZWxpbmVzOiAxLCBtZW1iZXJzOiA1ICovDQo+Pj4gwqDCoMKgwqDCoMKg
wqDCoCAvKiBzdW0gbWVtYmVyczogMTksIGhvbGVzOiAyLCBzdW0gaG9sZXM6IDUgKi8NCj4+
PiDCoMKgwqDCoMKgwqDCoMKgIC8qIGxhc3QgY2FjaGVsaW5lOiAyNCBieXRlcyAqLw0KPj4+
IH07DQo+Pj4NCj4+Pg0KPj4+ID09PT0gRGVidWcgPT09PQ0KPj4+DQo+Pj4gc3RydWN0IHNw
aW5sb2NrIHsNCj4+PiDCoMKgwqDCoMKgwqDCoMKgIHNwaW5sb2NrX3RpY2tldHNfdMKgwqDC
oMKgwqDCoMKgwqAgdGlja2V0czvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDC
oMKgIDAgNCAqLw0KPj4+IMKgwqDCoMKgwqDCoMKgwqAgdW5pb24gbG9ja19kZWJ1Z8KgwqDC
oMKgwqDCoMKgwqDCoMKgIGRlYnVnO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAv
KsKgwqDCoMKgIDQgNCAqLw0KPj4+DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCAvKiBzaXplOiA4
LCBjYWNoZWxpbmVzOiAxLCBtZW1iZXJzOiAyICovDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCAv
KiBsYXN0IGNhY2hlbGluZTogOCBieXRlcyAqLw0KPj4+IH07DQo+Pj4gc3RydWN0IHJzcGlu
bG9jayB7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCBzcGlubG9ja190aWNrZXRzX3TCoMKgwqDC
oMKgwqDCoMKgIHRpY2tldHM7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDC
oCAwIDQgKi8NCj4+PiDCoMKgwqDCoMKgwqDCoMKgIHVpbnQxNl90wqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlY3Vyc2VfY3B1O8KgwqDCoMKgwqDCoMKgwqDCoCAv
KsKgwqDCoMKgIDQgMiAqLw0KPj4+IMKgwqDCoMKgwqDCoMKgwqAgdWludDhfdMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlY3Vyc2VfY250O8KgwqDCoMKgwqDC
oMKgwqDCoCAvKsKgwqDCoMKgIDYgMSAqLw0KPj4+DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCAv
KiBYWFggMSBieXRlIGhvbGUsIHRyeSB0byBwYWNrICovDQo+Pj4NCj4+PiDCoMKgwqDCoMKg
wqDCoMKgIHVuaW9uIGxvY2tfZGVidWfCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZWJ1ZzvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKgwqDCoCA4IDQgKi8NCj4+Pg0KPj4+
IMKgwqDCoMKgwqDCoMKgwqAgLyogc2l6ZTogMTIsIGNhY2hlbGluZXM6IDEsIG1lbWJlcnM6
IDQgKi8NCj4+PiDCoMKgwqDCoMKgwqDCoMKgIC8qIHN1bSBtZW1iZXJzOiAxMSwgaG9sZXM6
IDEsIHN1bSBob2xlczogMSAqLw0KPj4+IMKgwqDCoMKgwqDCoMKgwqAgLyogbGFzdCBjYWNo
ZWxpbmU6IDEyIGJ5dGVzICovDQo+Pj4gfTsNCj4+Pg0KPj4+ID09PT0gUHJvZCA9PT09DQo+
Pj4NCj4+PiBzdHJ1Y3Qgc3BpbmxvY2sgew0KPj4+IMKgwqDCoMKgwqDCoMKgwqAgc3Bpbmxv
Y2tfdGlja2V0c190wqDCoMKgwqDCoMKgwqDCoCB0aWNrZXRzO8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIC8qwqDCoMKgwqAgMCA0ICovDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1bmlv
biBsb2NrX2RlYnVnwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVidWc7wqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgNCAwICovDQo+Pj4NCj4+PiDCoMKgwqDCoMKg
wqDCoMKgIC8qIHNpemU6IDQsIGNhY2hlbGluZXM6IDEsIG1lbWJlcnM6IDIgKi8NCj4+PiDC
oMKgwqDCoMKgwqDCoMKgIC8qIGxhc3QgY2FjaGVsaW5lOiA0IGJ5dGVzICovDQo+Pj4gfTsN
Cj4+PiBzdHJ1Y3QgcnNwaW5sb2NrIHsNCj4+PiDCoMKgwqDCoMKgwqDCoMKgIHNwaW5sb2Nr
X3RpY2tldHNfdMKgwqDCoMKgwqDCoMKgwqAgdGlja2V0czvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCAvKsKgwqDCoMKgIDAgNCAqLw0KPj4+IMKgwqDCoMKgwqDCoMKgwqAgdWludDE2
X3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVjdXJzZV9jcHU7wqDC
oMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgNCAyICovDQo+Pj4gwqDCoMKgwqDCoMKgwqDC
oCB1aW50OF90wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVjdXJz
ZV9jbnQ7wqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgNiAxICovDQo+Pj4gwqDCoMKg
wqDCoMKgwqDCoCB1bmlvbiBsb2NrX2RlYnVnwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVidWc7
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgNyAwICovDQo+Pj4N
Cj4+PiDCoMKgwqDCoMKgwqDCoMKgIC8qIHNpemU6IDgsIGNhY2hlbGluZXM6IDEsIG1lbWJl
cnM6IDQgKi8NCj4+PiDCoMKgwqDCoMKgwqDCoMKgIC8qIHBhZGRpbmc6IDEgKi8NCj4+PiDC
oMKgwqDCoMKgwqDCoMKgIC8qIGxhc3QgY2FjaGVsaW5lOiA4IGJ5dGVzICovDQo+Pj4gfTsN
Cj4+Pg0KPj4+DQo+Pj4gSSB0aGluayB3ZSBjb3VsZCBlbWJlZCBzcGlubG9ja190IGluIHJz
cGlubG9ja190IHdpdGhvdXQgaW5jcmVhc2luZyANCj4+PiByc3BpbmxvY2tfdC4gSGF2ZSB5
b3UgY29uc2lkZXJlZCBpdD8gVGhpcyBjb3VsZCByZWR1Y2UgdGhlIG51bWJlciBvZiBmdW5j
dGlvbiANCj4+PiBsZXZlbCBpbnRyb2R1Y2VkIGluIHRoaXMgc2VyaWVzLg0KPj4NCj4+IFRo
YXQgd2FzIHRoZSBsYXlvdXQgaW4gdGhlIGZpcnN0IHZlcnNpb24gb2YgdGhpcyBzZXJpZXMu
IEphbiByZXF1ZXN0ZWQgdG8gY2hhbmdlDQo+PiBpdCB0byB0aGUgY3VycmVudCBsYXlvdXQg
WzFdLg0KPiANCj4gQWguLi4gTG9va2luZyB0aHJvdWdoIHRoZSByZWFzb25pbmcsIEkgaGF2
ZSB0byBkaXNhZ3JlZSB3aXRoIEphbiBhcmd1bWVudGF0aW9ucy4NCg0KSSB3b3VsZCBfcmVh
bGx5XyBoYXZlIGxpa2VkIHlvdSB0byBtZW50aW9uIHRoaXMgZGlzYWdyZWVtZW50IGJhY2sg
dGhlbiAoeW91J3ZlDQpiZWVuIG9uIENjOiBpbiB0aGUgdGhyZWFkLCB0b28pLg0KDQpMZXR0
aW5nIG1lIGRvIGEgbWFqb3IgcmV3b3JrIGFuZCB0aGVuIGFmdGVyIDIgbW9yZSBpdGVyYXRp
b25zIG9mIHRoZSBzZXJpZXMNCnJlcXVlc3RpbmcgdG8gdW5kbyBtb3N0IG9mIHRoZSB3b3Jr
IGlzbid0IGdyZWF0Lg0KDQo+IEF0IGxlYXN0IHdpdGggdGhlIGZ1bGwgc2VyaWVzIGFwcGxp
ZWQsIHRoZXJlIGlzIG5vIGluY3JlYXNlIG9mIHJzcGlubG9ja190IGluIA0KPiBkZWJ1ZyBi
dWlsZCAoaWYgd2UgY29tcGFyZSB0byB0aGUgdmVyc2lvbiB5b3UgcHJvdmlkZWQgaW4gdGhp
cyBzZXJpZXMpLg0KDQpUaGF0IHdhc24ndCBoaXMgc29sZSByZWFzb25pbmcsIHJpZ2h0Pw0K
DQo+IEZ1cnRoZXJtb3JlLCB0aGlzIGlzIGdvaW5nIHRvIHJlbW92ZSBhdCBsZWFzdCBwYXRj
aCAjNiBhbmQgIzguIFdlIHdvdWxkIHN0aWxsIA0KPiBuZWVkIG5yc3BpbmxvY2tfKiBiZWNh
dXNlIHRoZXkgY2FuIGp1c3QgYmUgd3JhcHBlciB0bw0KPiBzcGluX2JhcnJpZXIoJmxvY2st
PmxvY2spLg0KPiANCj4gVGhpcyBzaG91bGQgYWxzbyBzb2x2ZSBoaXMgY29uY2VybiBvZiB1
bndpZWxkeSBjb2RlOg0KPiANCj4gID4gK8KgwqDCoCBzcGluX2JhcnJpZXIoJnAybS0+cG9k
LmxvY2subG9jay5sb2NrKTsNCg0KWWVzLCBidXQgdGhlIGRlbWFuZCB0byBoYXZlIG9wdGlv
bmFsIGZpZWxkcyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3QgaXNuJ3QNCmNvdmVyZWQgYnkg
eW91ciByZXF1ZXN0Lg0KDQoNCkp1ZXJnZW4NCg==
--------------Yzzd7twmFYD29Jf0kPtGdFU3
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-----

--------------Yzzd7twmFYD29Jf0kPtGdFU3--

--------------Zvsf2x2Cjonl06wSCHdrcjHR--

--------------1czFYHZL9XLh5YAqN3goPvSl
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/Ey8FAmV5dqMFAwAAAAAACgkQsN6d1ii/Ey+4
jwf/ajN4/rlfp11S8Lk7uhG3+cvdgeoREymWYjJWhdtb+TMhxFEt7Dx2GjnnY9ehf5BP51jcPK8p
OWtOrVnlt1QVpmq9sPebWOUe3QsCUAHdBTDRrjKeo8X4U1cqx1iWqLA4Z3ubyjnndn6ZrozI2MwU
CPcsZE4BAGX5KQZbAbNaLycZvU4HlQ5qF0bexvHbpPg7Sd9rrDHo00u4RaGdHddBSUfx4vPhEjHF
TjPveUzscbvrD5LT05AnZAc3LjgTpGAm9gks2wtfjp8P3gxg5pAnh20zgJZddcd/EzWcoxHdH1LH
QjLjQqg6ehSd9SYUHVWjfpXtK4a+EzTh5Bzc9oxd3g==
=DgRK
-----END PGP SIGNATURE-----

--------------1czFYHZL9XLh5YAqN3goPvSl--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 09:26:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 09:26:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653801.1020380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLVh-0005Fj-OL; Wed, 13 Dec 2023 09:26:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653801.1020380; Wed, 13 Dec 2023 09: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 1rDLVh-0005Fc-Kg; Wed, 13 Dec 2023 09:26:33 +0000
Received: by outflank-mailman (input) for mailman id 653801;
 Wed, 13 Dec 2023 09:26: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=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDLVg-0005FU-82
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 09:26:32 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b271bae2-9999-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 10:26:30 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a1da1017a09so800632866b.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 01:26:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 rg14-20020a1709076b8e00b00a23002c8059sm460429ejc.70.2023.12.13.01.26.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 01:26:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b271bae2-9999-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702459589; x=1703064389; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=EpPGbmfjdx5CcvtqTTTTGuyilkzEW3yze8DbIh/Ggs8=;
        b=ZMhop9drjNfy7VJ/PZ9q9m+WBWeNLKyDHCDLATbn0VfzHG/oxsx/PYW09MMTKsfxny
         SLnmDLs2kgZd+pWHqREkVQc34xpJOKYzXJKGj0VAlr73V0if+8GRR/YFDFiywlZixc7r
         QxH/deVmwNHQISHGryoFJBrNa5iKIbffUqE/xPfc9sRT07OmD4EoDDaZ0FQAOYDKd+v0
         Jqph14Y77U3Iy+KVj9jubKAIhteqiKOWAYKzxO0htG8vf/DanUcix4Lc76645cy6obbB
         oNoErJBAnXlaXoElyYgHp2Vqxpo44/taZoiYHfCFsoszOnRl7C9dmnnr6ntiTfZOYi5D
         5U+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702459589; x=1703064389;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=EpPGbmfjdx5CcvtqTTTTGuyilkzEW3yze8DbIh/Ggs8=;
        b=SiRc3eAabqsOWn1Sf87Ju0QexWJiZVKF82NioGbf/cMZpDxr/lFz93L0Err+h/ybRT
         O67kebfQF09nvZEbJMN6sZq7hQgcMeO+ejOXuQbTKps41lL/LRmtAGvJERUFWHAkbQ9I
         ybuMgIQK3z/rnxaNV+8DYo1YFcD+capMKtx5UFVVdmN93gtZRNm4ZYtH9N3PJQCHu6h7
         AJ5uZpuJpH0vPixC3z21ffaHPm5SFjWeg87K6RbLJNVtsHMaX8DWZPPMjBomkya1Scek
         JohQrXFLnYnwlCQ+Is6b8OLbDOz3ckKL13DE8UQu62TN/eZo6N7FcHwaDICevgwcu8GY
         N0Ug==
X-Gm-Message-State: AOJu0YzhJqg95cEwIdZEOGaEcGo/yWa8Wl1TxTaytRkBi5XBCdsO4H+c
	PfVk4rDJPTx7vRZyfCSza1Y8
X-Google-Smtp-Source: AGHT+IEWMvSBngU76zYut8gTGXbVOBFWnGV8tfwBqm8aNaAuX1WNXigGOvlf2aNrOZAN2GKCFobeiA==
X-Received: by 2002:a17:906:413:b0:a19:a19b:78bf with SMTP id d19-20020a170906041300b00a19a19b78bfmr3648289eja.130.1702459589435;
        Wed, 13 Dec 2023 01:26:29 -0800 (PST)
Message-ID: <15aaed84-b5e1-4a5b-86fb-9d9cd4eb4e12@suse.com>
Date: Wed, 13 Dec 2023 10:26:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/4] x86/asm: address violations of MISRA C:2012 Rule
 8.2
Content-Language: en-US
To: 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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1702394721.git.federico.serafini@bugseng.com>
 <0db906df2d3649fc8652be6b80e14870b78b0f56.1702394721.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312121450100.1703076@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312121450100.1703076@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2023 23:50, Stefano Stabellini wrote:
> On Tue, 12 Dec 2023, Federico Serafini wrote:
>> Add missing parameter names. 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>




From xen-devel-bounces@lists.xenproject.org Wed Dec 13 09:27:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 09:27:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653804.1020391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLW9-0005ku-5w; Wed, 13 Dec 2023 09:27:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653804.1020391; Wed, 13 Dec 2023 09:27: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 1rDLW9-0005kn-2o; Wed, 13 Dec 2023 09:27:01 +0000
Received: by outflank-mailman (input) for mailman id 653804;
 Wed, 13 Dec 2023 09:26: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=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDLW7-0005FU-I8
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 09:26:59 +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 c327c172-9999-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 10:26:57 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a1db99cd1b2so836618766b.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 01:26:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 rg14-20020a1709076b8e00b00a23002c8059sm460429ejc.70.2023.12.13.01.26.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 01:26:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c327c172-9999-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702459617; x=1703064417; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Tj7kR/FqHHz4SkpGlMNdIhdI4WT+qpgLH8EQBoCVIiA=;
        b=WLK5MXWxyFaTfTve+LtQUlFcKeRVAFcnNGYit+UXaBtsnbF64hvgqsrGH8aV/CvBdP
         RTuqdp/EzW5jeb0e8ThSUYGpy7qDNEozxQaOVEOzMO2A49uwGG4wJIqSF39qux9RpW5v
         4PtN/AJ6gDM+PvUQyBnqgjMB53MgjE+uat/L0p0KpDPNg0pP53/HgyHlgF+cSJweGYul
         wHoHCkbDZAeovvG9Id8ypz1kV07BL6E70aGnh15iqtF2tViP8esz/+inBNNQ/EFq2v57
         +Nm32X5HnE/DpvymbN7vcfTuPsFSV7U8r1jlRJDxAiXjIhdgMDtDAWfU6PdwpUuONhqc
         ri7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702459617; x=1703064417;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Tj7kR/FqHHz4SkpGlMNdIhdI4WT+qpgLH8EQBoCVIiA=;
        b=n8HGYDjeGXquzRh5cN/9eBzDzdt+XgCYsrwBVZBvLBJoEIUUfGZO8VL3gZO/fGkQ+S
         rHD/Yk3UtfD4ea3Q2pvmAQkmRcpOU5N06Adg3QoB+cizvA5E2ujW7eszXwASAictq0I8
         KB8/LHnBkuiUyicUQ80V+vRKK8vhYr8lphJ6Q6hFhPc7PEDtqbO/MJWzBphCOfTVKkMv
         dJFxRn8RcMV9iCLk3X6FUJmlHdyFYeqt5WQEQt/OznS0j7y12vi8Y15bphaUsz7ekKk4
         Fowobj5yOKZwFHFhljpcf8BxwXqg4rPM/FFNXpQ3T9ZIyPXKCNzfO8CmODUbJlFlVDIa
         ZeJA==
X-Gm-Message-State: AOJu0YyJ2qw5M6wkQauEzijiE6US45bN2OgNqs41ajscMFR53Cyt+KaP
	lyMD+4P7LM7bATVV3yxlFxzH
X-Google-Smtp-Source: AGHT+IGD4zvvw0uFJL1HF0kFFGw1L2nGVnjwk3pOlUm2771PmVG831mjdOCwZtnilIMropuEDQGVGw==
X-Received: by 2002:a17:906:3f09:b0:a19:a19b:4267 with SMTP id c9-20020a1709063f0900b00a19a19b4267mr2642366ejj.210.1702459617397;
        Wed, 13 Dec 2023 01:26:57 -0800 (PST)
Message-ID: <f639b45f-2e9c-46f2-90a9-675554027cf5@suse.com>
Date: Wed, 13 Dec 2023 10:26:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 4/4] xen/iommu: address leftover violation of MISRA
 C:2012 Rule 8.2
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Paul Durrant <paul@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1702394721.git.federico.serafini@bugseng.com>
 <443dc3828fd6cdfb97d2e9d0c9ec93bb23228d5b.1702394721.git.federico.serafini@bugseng.com>
 <alpine.DEB.2.22.394.2312121451580.1703076@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312121451580.1703076@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2023 23:52, Stefano Stabellini wrote:
> On Tue, 12 Dec 2023, Federico Serafini wrote:
>> Add missing parameter name. 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>



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 09:48:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 09:48:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653808.1020401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLqu-0002t6-PX; Wed, 13 Dec 2023 09:48:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653808.1020401; Wed, 13 Dec 2023 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 1rDLqu-0002sz-Mj; Wed, 13 Dec 2023 09:48:28 +0000
Received: by outflank-mailman (input) for mailman id 653808;
 Wed, 13 Dec 2023 09:48: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 1rDLqt-0002st-UV
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 09:48:27 +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 1rDLqt-0005md-PR; Wed, 13 Dec 2023 09:48:27 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227] helo=[192.168.2.97])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDLqt-0002aX-Ib; Wed, 13 Dec 2023 09:48: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=nrEN8V1PEPjzdvlvxR0JnzBAlia2ZXMZWHYYpFl4TcI=; b=nAZ92fB8axdnVBoZiN7Lh46uft
	lIqWJbnmSSFibaFiq2j/e7gahjNRkiCl1MCXGSukTMzM0/INqftX8Rr3UI2bEnMAZc/pqnRH9Y70Z
	T/6urLgUJEWWaLUo01KpzRIeCvQ612TaP5bnRFAd4SYD2sCTHi9yl18NrM2SxjgkzCSY=;
Message-ID: <0f922ab8-ecad-40f5-a63c-c3be9006a5be@xen.org>
Date: Wed, 13 Dec 2023 09:48:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
 <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
 <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>
 <ea73d863-6ead-4b03-98f4-7ab873fa614b@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <ea73d863-6ead-4b03-98f4-7ab873fa614b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 13/12/2023 09:17, Juergen Gross wrote:
> On 13.12.23 09:43, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 13/12/2023 06:23, Juergen Gross wrote:
>>> On 12.12.23 20:10, Julien Grall wrote:
>>>> Hi Juergen,
>>>>
>>>> On 12/12/2023 09:47, Juergen Gross wrote:
>>>>> Add another function level in spinlock.c hiding the spinlock_t layout
>>>>> from the low level locking code.
>>>>>
>>>>> This is done in preparation of introducing rspinlock_t for recursive
>>>>> locks without having to duplicate all of the locking code.
>>>>
>>>> So all the fields you pass are the one from spinlock.
>>>>
>>>> Looking at pahole after this series is applid, we have:
>>>>
>>>> ==== Debug + Lock profile ====
>>>>
>>>> struct spinlock {
>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 4 */
>>>> Â Â Â Â Â Â Â Â  struct lock_profile *Â Â Â Â Â  profile;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  8 8 */
>>>>
>>>> Â Â Â Â Â Â Â Â  /* size: 16, cachelines: 1, members: 3 */
>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 16 bytes */
>>>> };
>>>> struct rspinlock {
>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>> Â Â Â Â Â Â Â Â  uint16_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cpu;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 2 */
>>>> Â Â Â Â Â Â Â Â  uint8_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cnt;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  6 1 */
>>>>
>>>> Â Â Â Â Â Â Â Â  /* XXX 1 byte hole, try to pack */
>>>>
>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  8 4 */
>>>>
>>>> Â Â Â Â Â Â Â Â  /* XXX 4 bytes hole, try to pack */
>>>>
>>>> Â Â Â Â Â Â Â Â  struct lock_profile *Â Â Â Â Â  profile;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â  16 8 */
>>>>
>>>> Â Â Â Â Â Â Â Â  /* size: 24, cachelines: 1, members: 5 */
>>>> Â Â Â Â Â Â Â Â  /* sum members: 19, holes: 2, sum holes: 5 */
>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 24 bytes */
>>>> };
>>>>
>>>>
>>>> ==== Debug ====
>>>>
>>>> struct spinlock {
>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 4 */
>>>>
>>>> Â Â Â Â Â Â Â Â  /* size: 8, cachelines: 1, members: 2 */
>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 8 bytes */
>>>> };
>>>> struct rspinlock {
>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>> Â Â Â Â Â Â Â Â  uint16_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cpu;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 2 */
>>>> Â Â Â Â Â Â Â Â  uint8_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cnt;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  6 1 */
>>>>
>>>> Â Â Â Â Â Â Â Â  /* XXX 1 byte hole, try to pack */
>>>>
>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  8 4 */
>>>>
>>>> Â Â Â Â Â Â Â Â  /* size: 12, cachelines: 1, members: 4 */
>>>> Â Â Â Â Â Â Â Â  /* sum members: 11, holes: 1, sum holes: 1 */
>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 12 bytes */
>>>> };
>>>>
>>>> ==== Prod ====
>>>>
>>>> struct spinlock {
>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 0 */
>>>>
>>>> Â Â Â Â Â Â Â Â  /* size: 4, cachelines: 1, members: 2 */
>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 4 bytes */
>>>> };
>>>> struct rspinlock {
>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>> Â Â Â Â Â Â Â Â  uint16_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cpu;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 2 */
>>>> Â Â Â Â Â Â Â Â  uint8_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cnt;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  6 1 */
>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  7 0 */
>>>>
>>>> Â Â Â Â Â Â Â Â  /* size: 8, cachelines: 1, members: 4 */
>>>> Â Â Â Â Â Â Â Â  /* padding: 1 */
>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 8 bytes */
>>>> };
>>>>
>>>>
>>>> I think we could embed spinlock_t in rspinlock_t without increasing 
>>>> rspinlock_t. Have you considered it? This could reduce the number of 
>>>> function level introduced in this series.
>>>
>>> That was the layout in the first version of this series. Jan 
>>> requested to change
>>> it to the current layout [1].
>>
>> Ah... Looking through the reasoning, I have to disagree with Jan 
>> argumentations.
> 
> I would _really_ have liked you to mention this disagreement back then 
> (you've
> been on Cc: in the thread, too).

Sorry for that. My e-mails backlog is quite large and I can't keep up 
with all the series.

> Letting me do a major rework and then after 2 more iterations of the series
> requesting to undo most of the work isn't great.

Indeed. But I note you continued without any additional feedback [1]. If 
you were not sure about the approach suggested by Jan, then why did you 
post two new versions? Shouldn't you have pinged the maintainers to make 
sure there is a consensus?

> 
>> At least with the full series applied, there is no increase of 
>> rspinlock_t in debug build (if we compare to the version you provided 
>> in this series).
> 
> That wasn't his sole reasoning, right?

I guess you mean the non-optional fields should always be at the same 
position?

> 
>> Furthermore, this is going to remove at least patch #6 and #8. We 
>> would still need nrspinlock_* because they can just be wrapper to
>> spin_barrier(&lock->lock).
>>
>> This should also solve his concern of unwieldy code:
>>
>> Â > +Â Â Â  spin_barrier(&p2m->pod.lock.lock.lock);
> 
> Yes, but the demand to have optional fields at the end of the struct isn't
> covered by your request.

I note this was a preference and weight against code duplication. It is 
not clear to me whether Jan agrees with this extra work now.

Anyway, I am not against this approach and if this is what Jan much 
prefers then so be it. But I thought I would point out the additional 
complexity which doesn't seem to be worth it.

Cheers,

[1] https://lists.xen.org/archives/html/xen-devel/2022-12/msg01065.html

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 09:56:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 09:56:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653816.1020431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDLyE-00060X-PB; Wed, 13 Dec 2023 09:56:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653816.1020431; Wed, 13 Dec 2023 09: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 1rDLyE-00060Q-MR; Wed, 13 Dec 2023 09:56:02 +0000
Received: by outflank-mailman (input) for mailman id 653816;
 Wed, 13 Dec 2023 09:56: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=7vuN=HY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rDLyD-00060K-TH
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 09:56:02 +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 d1b4ef78-999d-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 10:56:00 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 8B8FD1FD48;
 Wed, 13 Dec 2023 09:55: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 506211377F;
 Wed, 13 Dec 2023 09:55:59 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id beJFEq9/eWVXSwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 13 Dec 2023 09:55: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: d1b4ef78-999d-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702461359; 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=PK8B0Yq6iSbWfqdA8MDjltwnM2s8awqFwFOA9f3oXOg=;
	b=qOVeA+c0c0WzKUPCzwztcX+D9TigCAcAB6x9YZYxz84KxdNQ6NSpROknQV6DurOLmUKnPo
	MXjm1teLrBks+kkwuySk1HAdaTvHYPUJCIEo+C/bQLOnyKH20m84qlUZd8NtSrN7bGKhIw
	nIgHLzirCMzyn64GdIrRxHy+dzcOsaI=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702461359; 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=PK8B0Yq6iSbWfqdA8MDjltwnM2s8awqFwFOA9f3oXOg=;
	b=qOVeA+c0c0WzKUPCzwztcX+D9TigCAcAB6x9YZYxz84KxdNQ6NSpROknQV6DurOLmUKnPo
	MXjm1teLrBks+kkwuySk1HAdaTvHYPUJCIEo+C/bQLOnyKH20m84qlUZd8NtSrN7bGKhIw
	nIgHLzirCMzyn64GdIrRxHy+dzcOsaI=
Message-ID: <6156d11d-3421-42c1-9368-b9de5708030f@suse.com>
Date: Wed, 13 Dec 2023 10:55:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
Content-Language: en-US
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
 <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
 <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>
 <ea73d863-6ead-4b03-98f4-7ab873fa614b@suse.com>
 <0f922ab8-ecad-40f5-a63c-c3be9006a5be@xen.org>
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: <0f922ab8-ecad-40f5-a63c-c3be9006a5be@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------h1vxpmkGDfqc8Qov4uXBBTFM"
X-Spam-Level: *****************
X-Spam-Score: 17.75
X-Spam-Flag: YES
X-Spam-Level: 
X-Rspamd-Server: rspamd1
X-Spamd-Result: default: False [-0.60 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[7];
	 MX_GOOD(-0.01)[];
	 DMARC_POLICY_ALLOW(0.00)[suse.com,quarantine];
	 SIGNED_PGP(-2.00)[];
	 DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_SPF_FAIL(0.00)[-all];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 SPAM_FLAG(5.00)[];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 WHITELIST_DMARC(-7.00)[suse.com:D:+];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Rspamd-Queue-Id: 8B8FD1FD48
X-Spam-Flag: NO
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=qOVeA+c0;
	dmarc=pass (policy=quarantine) header.from=suse.com;
	spf=fail (smtp-out2.suse.de: domain of jgross@suse.com does not designate 2a07:de40:b281:104:10:150:64:97 as permitted sender) smtp.mailfrom=jgross@suse.com
X-Spamd-Bar: /
X-Spam-Score: -0.60

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------h1vxpmkGDfqc8Qov4uXBBTFM
Content-Type: multipart/mixed; boundary="------------RJq6IgyTtUoKg2BQa9qdvO10";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
Message-ID: <6156d11d-3421-42c1-9368-b9de5708030f@suse.com>
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
 <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
 <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>
 <ea73d863-6ead-4b03-98f4-7ab873fa614b@suse.com>
 <0f922ab8-ecad-40f5-a63c-c3be9006a5be@xen.org>
In-Reply-To: <0f922ab8-ecad-40f5-a63c-c3be9006a5be@xen.org>

--------------RJq6IgyTtUoKg2BQa9qdvO10
Content-Type: multipart/mixed; boundary="------------ZQxX2KpuQ0b49jCvi8qXqZ2g"

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

T24gMTMuMTIuMjMgMTA6NDgsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gDQo+IA0KPiBPbiAx
My8xMi8yMDIzIDA5OjE3LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMTMuMTIuMjMg
MDk6NDMsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+PiBIaSBKdWVyZ2VuLA0KPj4+DQo+Pj4g
T24gMTMvMTIvMjAyMyAwNjoyMywgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+Pj4gT24gMTIu
MTIuMjMgMjA6MTAsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+Pj4+IEhpIEp1ZXJnZW4sDQo+
Pj4+Pg0KPj4+Pj4gT24gMTIvMTIvMjAyMyAwOTo0NywgSnVlcmdlbiBHcm9zcyB3cm90ZToN
Cj4+Pj4+PiBBZGQgYW5vdGhlciBmdW5jdGlvbiBsZXZlbCBpbiBzcGlubG9jay5jIGhpZGlu
ZyB0aGUgc3BpbmxvY2tfdCBsYXlvdXQNCj4+Pj4+PiBmcm9tIHRoZSBsb3cgbGV2ZWwgbG9j
a2luZyBjb2RlLg0KPj4+Pj4+DQo+Pj4+Pj4gVGhpcyBpcyBkb25lIGluIHByZXBhcmF0aW9u
IG9mIGludHJvZHVjaW5nIHJzcGlubG9ja190IGZvciByZWN1cnNpdmUNCj4+Pj4+PiBsb2Nr
cyB3aXRob3V0IGhhdmluZyB0byBkdXBsaWNhdGUgYWxsIG9mIHRoZSBsb2NraW5nIGNvZGUu
DQo+Pj4+Pg0KPj4+Pj4gU28gYWxsIHRoZSBmaWVsZHMgeW91IHBhc3MgYXJlIHRoZSBvbmUg
ZnJvbSBzcGlubG9jay4NCj4+Pj4+DQo+Pj4+PiBMb29raW5nIGF0IHBhaG9sZSBhZnRlciB0
aGlzIHNlcmllcyBpcyBhcHBsaWQsIHdlIGhhdmU6DQo+Pj4+Pg0KPj4+Pj4gPT09PSBEZWJ1
ZyArIExvY2sgcHJvZmlsZSA9PT09DQo+Pj4+Pg0KPj4+Pj4gc3RydWN0IHNwaW5sb2NrIHsN
Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgc3BpbmxvY2tfdGlja2V0c190wqDCoMKgwqDCoMKg
wqDCoCB0aWNrZXRzO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgMCA0
ICovDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIHVuaW9uIGxvY2tfZGVidWfCoMKgwqDCoMKg
wqDCoMKgwqDCoCBkZWJ1ZzvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKg
wqDCoCA0IDQgKi8NCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGxvY2tfcHJvZmls
ZSAqwqDCoMKgwqDCoCBwcm9maWxlO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDC
oMKgwqAgOCA4ICovDQo+Pj4+Pg0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCAvKiBzaXplOiAx
NiwgY2FjaGVsaW5lczogMSwgbWVtYmVyczogMyAqLw0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDC
oCAvKiBsYXN0IGNhY2hlbGluZTogMTYgYnl0ZXMgKi8NCj4+Pj4+IH07DQo+Pj4+PiBzdHJ1
Y3QgcnNwaW5sb2NrIHsNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgc3BpbmxvY2tfdGlja2V0
c190wqDCoMKgwqDCoMKgwqDCoCB0aWNrZXRzO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IC8qwqDCoMKgwqAgMCA0ICovDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIHVpbnQxNl90wqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlY3Vyc2VfY3B1O8KgwqDCoMKg
wqDCoMKgwqDCoCAvKsKgwqDCoMKgIDQgMiAqLw0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1
aW50OF90wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVjdXJzZV9j
bnQ7wqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgNiAxICovDQo+Pj4+Pg0KPj4+Pj4g
wqDCoMKgwqDCoMKgwqDCoCAvKiBYWFggMSBieXRlIGhvbGUsIHRyeSB0byBwYWNrICovDQo+
Pj4+Pg0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1bmlvbiBsb2NrX2RlYnVnwqDCoMKgwqDC
oMKgwqDCoMKgwqAgZGVidWc7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDC
oMKgwqAgOCA0ICovDQo+Pj4+Pg0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCAvKiBYWFggNCBi
eXRlcyBob2xlLCB0cnkgdG8gcGFjayAqLw0KPj4+Pj4NCj4+Pj4+IMKgwqDCoMKgwqDCoMKg
wqAgc3RydWN0IGxvY2tfcHJvZmlsZSAqwqDCoMKgwqDCoCBwcm9maWxlO8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgIDE2IDggKi8NCj4+Pj4+DQo+Pj4+PiDCoMKgwqDC
oMKgwqDCoMKgIC8qIHNpemU6IDI0LCBjYWNoZWxpbmVzOiAxLCBtZW1iZXJzOiA1ICovDQo+
Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIC8qIHN1bSBtZW1iZXJzOiAxOSwgaG9sZXM6IDIsIHN1
bSBob2xlczogNSAqLw0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCAvKiBsYXN0IGNhY2hlbGlu
ZTogMjQgYnl0ZXMgKi8NCj4+Pj4+IH07DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+ID09PT0gRGVi
dWcgPT09PQ0KPj4+Pj4NCj4+Pj4+IHN0cnVjdCBzcGlubG9jayB7DQo+Pj4+PiDCoMKgwqDC
oMKgwqDCoMKgIHNwaW5sb2NrX3RpY2tldHNfdMKgwqDCoMKgwqDCoMKgwqAgdGlja2V0czvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDCoMKgIDAgNCAqLw0KPj4+Pj4gwqDC
oMKgwqDCoMKgwqDCoCB1bmlvbiBsb2NrX2RlYnVnwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVi
dWc7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgNCA0ICovDQo+
Pj4+Pg0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCAvKiBzaXplOiA4LCBjYWNoZWxpbmVzOiAx
LCBtZW1iZXJzOiAyICovDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIC8qIGxhc3QgY2FjaGVs
aW5lOiA4IGJ5dGVzICovDQo+Pj4+PiB9Ow0KPj4+Pj4gc3RydWN0IHJzcGlubG9jayB7DQo+
Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIHNwaW5sb2NrX3RpY2tldHNfdMKgwqDCoMKgwqDCoMKg
wqAgdGlja2V0czvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDCoMKgIDAgNCAq
Lw0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1aW50MTZfdMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCByZWN1cnNlX2NwdTvCoMKgwqDCoMKgwqDCoMKgwqAgLyrCoMKg
wqDCoCA0IDIgKi8NCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgdWludDhfdMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlY3Vyc2VfY250O8KgwqDCoMKgwqDCoMKg
wqDCoCAvKsKgwqDCoMKgIDYgMSAqLw0KPj4+Pj4NCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAg
LyogWFhYIDEgYnl0ZSBob2xlLCB0cnkgdG8gcGFjayAqLw0KPj4+Pj4NCj4+Pj4+IMKgwqDC
oMKgwqDCoMKgwqAgdW5pb24gbG9ja19kZWJ1Z8KgwqDCoMKgwqDCoMKgwqDCoMKgIGRlYnVn
O8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDCoMKgIDggNCAqLw0KPj4+
Pj4NCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgLyogc2l6ZTogMTIsIGNhY2hlbGluZXM6IDEs
IG1lbWJlcnM6IDQgKi8NCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgLyogc3VtIG1lbWJlcnM6
IDExLCBob2xlczogMSwgc3VtIGhvbGVzOiAxICovDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKg
IC8qIGxhc3QgY2FjaGVsaW5lOiAxMiBieXRlcyAqLw0KPj4+Pj4gfTsNCj4+Pj4+DQo+Pj4+
PiA9PT09IFByb2QgPT09PQ0KPj4+Pj4NCj4+Pj4+IHN0cnVjdCBzcGlubG9jayB7DQo+Pj4+
PiDCoMKgwqDCoMKgwqDCoMKgIHNwaW5sb2NrX3RpY2tldHNfdMKgwqDCoMKgwqDCoMKgwqAg
dGlja2V0czvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDCoMKgIDAgNCAqLw0K
Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1bmlvbiBsb2NrX2RlYnVnwqDCoMKgwqDCoMKgwqDC
oMKgwqAgZGVidWc7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAg
NCAwICovDQo+Pj4+Pg0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCAvKiBzaXplOiA0LCBjYWNo
ZWxpbmVzOiAxLCBtZW1iZXJzOiAyICovDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIC8qIGxh
c3QgY2FjaGVsaW5lOiA0IGJ5dGVzICovDQo+Pj4+PiB9Ow0KPj4+Pj4gc3RydWN0IHJzcGlu
bG9jayB7DQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIHNwaW5sb2NrX3RpY2tldHNfdMKgwqDC
oMKgwqDCoMKgwqAgdGlja2V0czvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKsKgwqDC
oMKgIDAgNCAqLw0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1aW50MTZfdMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWN1cnNlX2NwdTvCoMKgwqDCoMKgwqDCoMKg
wqAgLyrCoMKgwqDCoCA0IDIgKi8NCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgdWludDhfdMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlY3Vyc2VfY250O8KgwqDC
oMKgwqDCoMKgwqDCoCAvKsKgwqDCoMKgIDYgMSAqLw0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDC
oCB1bmlvbiBsb2NrX2RlYnVnwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVidWc7wqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qwqDCoMKgwqAgNyAwICovDQo+Pj4+Pg0KPj4+Pj4g
wqDCoMKgwqDCoMKgwqDCoCAvKiBzaXplOiA4LCBjYWNoZWxpbmVzOiAxLCBtZW1iZXJzOiA0
ICovDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIC8qIHBhZGRpbmc6IDEgKi8NCj4+Pj4+IMKg
wqDCoMKgwqDCoMKgwqAgLyogbGFzdCBjYWNoZWxpbmU6IDggYnl0ZXMgKi8NCj4+Pj4+IH07
DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+IEkgdGhpbmsgd2UgY291bGQgZW1iZWQgc3BpbmxvY2tf
dCBpbiByc3BpbmxvY2tfdCB3aXRob3V0IGluY3JlYXNpbmcgDQo+Pj4+PiByc3BpbmxvY2tf
dC4gSGF2ZSB5b3UgY29uc2lkZXJlZCBpdD8gVGhpcyBjb3VsZCByZWR1Y2UgdGhlIG51bWJl
ciBvZiANCj4+Pj4+IGZ1bmN0aW9uIGxldmVsIGludHJvZHVjZWQgaW4gdGhpcyBzZXJpZXMu
DQo+Pj4+DQo+Pj4+IFRoYXQgd2FzIHRoZSBsYXlvdXQgaW4gdGhlIGZpcnN0IHZlcnNpb24g
b2YgdGhpcyBzZXJpZXMuIEphbiByZXF1ZXN0ZWQgdG8gDQo+Pj4+IGNoYW5nZQ0KPj4+PiBp
dCB0byB0aGUgY3VycmVudCBsYXlvdXQgWzFdLg0KPj4+DQo+Pj4gQWguLi4gTG9va2luZyB0
aHJvdWdoIHRoZSByZWFzb25pbmcsIEkgaGF2ZSB0byBkaXNhZ3JlZSB3aXRoIEphbiBhcmd1
bWVudGF0aW9ucy4NCj4+DQo+PiBJIHdvdWxkIF9yZWFsbHlfIGhhdmUgbGlrZWQgeW91IHRv
IG1lbnRpb24gdGhpcyBkaXNhZ3JlZW1lbnQgYmFjayB0aGVuICh5b3UndmUNCj4+IGJlZW4g
b24gQ2M6IGluIHRoZSB0aHJlYWQsIHRvbykuDQo+IA0KPiBTb3JyeSBmb3IgdGhhdC4gTXkg
ZS1tYWlscyBiYWNrbG9nIGlzIHF1aXRlIGxhcmdlIGFuZCBJIGNhbid0IGtlZXAgdXAgd2l0
aCBhbGwgDQo+IHRoZSBzZXJpZXMuDQo+IA0KPj4gTGV0dGluZyBtZSBkbyBhIG1ham9yIHJl
d29yayBhbmQgdGhlbiBhZnRlciAyIG1vcmUgaXRlcmF0aW9ucyBvZiB0aGUgc2VyaWVzDQo+
PiByZXF1ZXN0aW5nIHRvIHVuZG8gbW9zdCBvZiB0aGUgd29yayBpc24ndCBncmVhdC4NCj4g
DQo+IEluZGVlZC4gQnV0IEkgbm90ZSB5b3UgY29udGludWVkIHdpdGhvdXQgYW55IGFkZGl0
aW9uYWwgZmVlZGJhY2sgWzFdLiBJZiB5b3UgDQo+IHdlcmUgbm90IHN1cmUgYWJvdXQgdGhl
IGFwcHJvYWNoIHN1Z2dlc3RlZCBieSBKYW4sIHRoZW4gd2h5IGRpZCB5b3UgcG9zdCB0d28g
bmV3IA0KPiB2ZXJzaW9ucz8gU2hvdWxkbid0IHlvdSBoYXZlIHBpbmdlZCB0aGUgbWFpbnRh
aW5lcnMgdG8gbWFrZSBzdXJlIHRoZXJlIGlzIGEgDQo+IGNvbnNlbnN1cz8NCg0KaHR0cHM6
Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMjMtMTAvbXNnMDEy
MjEuaHRtbA0KDQo+IA0KPj4NCj4+PiBBdCBsZWFzdCB3aXRoIHRoZSBmdWxsIHNlcmllcyBh
cHBsaWVkLCB0aGVyZSBpcyBubyBpbmNyZWFzZSBvZiByc3BpbmxvY2tfdCBpbiANCj4+PiBk
ZWJ1ZyBidWlsZCAoaWYgd2UgY29tcGFyZSB0byB0aGUgdmVyc2lvbiB5b3UgcHJvdmlkZWQg
aW4gdGhpcyBzZXJpZXMpLg0KPj4NCj4+IFRoYXQgd2Fzbid0IGhpcyBzb2xlIHJlYXNvbmlu
ZywgcmlnaHQ/DQo+IA0KPiBJIGd1ZXNzIHlvdSBtZWFuIHRoZSBub24tb3B0aW9uYWwgZmll
bGRzIHNob3VsZCBhbHdheXMgYmUgYXQgdGhlIHNhbWUgcG9zaXRpb24/DQoNClllcy4NCg0K
PiANCj4+DQo+Pj4gRnVydGhlcm1vcmUsIHRoaXMgaXMgZ29pbmcgdG8gcmVtb3ZlIGF0IGxl
YXN0IHBhdGNoICM2IGFuZCAjOC4gV2Ugd291bGQgc3RpbGwgDQo+Pj4gbmVlZCBucnNwaW5s
b2NrXyogYmVjYXVzZSB0aGV5IGNhbiBqdXN0IGJlIHdyYXBwZXIgdG8NCj4+PiBzcGluX2Jh
cnJpZXIoJmxvY2stPmxvY2spLg0KPj4+DQo+Pj4gVGhpcyBzaG91bGQgYWxzbyBzb2x2ZSBo
aXMgY29uY2VybiBvZiB1bndpZWxkeSBjb2RlOg0KPj4+DQo+Pj4gwqA+ICvCoMKgwqAgc3Bp
bl9iYXJyaWVyKCZwMm0tPnBvZC5sb2NrLmxvY2subG9jayk7DQo+Pg0KPj4gWWVzLCBidXQg
dGhlIGRlbWFuZCB0byBoYXZlIG9wdGlvbmFsIGZpZWxkcyBhdCB0aGUgZW5kIG9mIHRoZSBz
dHJ1Y3QgaXNuJ3QNCj4+IGNvdmVyZWQgYnkgeW91ciByZXF1ZXN0Lg0KPiANCj4gSSBub3Rl
IHRoaXMgd2FzIGEgcHJlZmVyZW5jZSBhbmQgd2VpZ2h0IGFnYWluc3QgY29kZSBkdXBsaWNh
dGlvbi4gSXQgaXMgbm90IA0KPiBjbGVhciB0byBtZSB3aGV0aGVyIEphbiBhZ3JlZXMgd2l0
aCB0aGlzIGV4dHJhIHdvcmsgbm93Lg0KPiANCj4gQW55d2F5LCBJIGFtIG5vdCBhZ2FpbnN0
IHRoaXMgYXBwcm9hY2ggYW5kIGlmIHRoaXMgaXMgd2hhdCBKYW4gbXVjaCBwcmVmZXJzIHRo
ZW4gDQo+IHNvIGJlIGl0LiBCdXQgSSB0aG91Z2h0IEkgd291bGQgcG9pbnQgb3V0IHRoZSBh
ZGRpdGlvbmFsIGNvbXBsZXhpdHkgd2hpY2ggDQo+IGRvZXNuJ3Qgc2VlbSB0byBiZSB3b3J0
aCBpdC4NCg0KVGhhbmtzIGZvciB0aGUgY2xhcmlmaWNhdGlvbi4NCg0KSmFuPw0KDQoNCkp1
ZXJnZW4NCg==
--------------ZQxX2KpuQ0b49jCvi8qXqZ2g
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-----

--------------ZQxX2KpuQ0b49jCvi8qXqZ2g--

--------------RJq6IgyTtUoKg2BQa9qdvO10--

--------------h1vxpmkGDfqc8Qov4uXBBTFM
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/Ey8FAmV5f64FAwAAAAAACgkQsN6d1ii/Ey+5
ZQf7Bl7bibiUsh8Z0AQFr88kRCyMq1p6DHqZD89fiMfdxSaotHs2XYGIVsq+c5U8CMAv4fdIbrtj
1BGZERxwfY+67gCbfx+RnHLN2Yiotc/QnbTjQatsVeAqqc/O+emhsyFv6UjNonBKV/QBcqNKNq5l
U87r/l7vXwWmCEZBG1gFUDJcdETchAmiZFr2OxWEDwFt5jECDzJDtpVKBc7KjotE3r3J84L7k8Et
bkNptPf/aR6YiH0U6sePZTkqXhQMHBkNlDqeYPxtEzgdOfyaPMghQeHp0rLFYuZ0LWJvPVyDxO56
ptpU3lnDyGHquGbodnh1uq4Zf18uD1YQeVPO9qvfaQ==
=6mze
-----END PGP SIGNATURE-----

--------------h1vxpmkGDfqc8Qov4uXBBTFM--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 10:04:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 10:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653821.1020440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDM6j-0000dB-Np; Wed, 13 Dec 2023 10:04:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653821.1020440; Wed, 13 Dec 2023 10:04:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDM6j-0000d4-LJ; Wed, 13 Dec 2023 10:04:49 +0000
Received: by outflank-mailman (input) for mailman id 653821;
 Wed, 13 Dec 2023 10:04:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDM6i-0000cw-6J
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 10:04:48 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b97076b-999f-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 11:04:47 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a1e35c2807fso889206066b.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 02:04:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 rf19-20020a1709076a1300b00a1f75d21bf3sm6746906ejc.6.2023.12.13.02.04.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 02:04:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b97076b-999f-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702461886; x=1703066686; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=KNiJZsoBYryJdjdOSl6hGATdLgRfPm1eIEa1SEoGZxY=;
        b=OTrUa9dY+3JQgBWxFj2rg9MS5DEE/+st9dKQMFR5gvjM/PUh23YVQmcE+oFIVfrSXD
         8TQPLsZoJ1gj4LRV0xk6U6vgntgmlOwsCq40aKGlDwVU5Tz8tXiiMND80iIiRpKbm+yl
         Tyktfi+EB5npwEK1bqm2cqO2HGhGA70y1heMK6f8WP21WIAMFpOmDyW7kksMjpOd5vFv
         58xXX7rsrHokRdYmgU2HRQnRDv1G5qoymNrE1rvNHvuHpIK+oBvsR8mcCLLAQfmp87J1
         WQLNHzZgLY9mXEKWyMy71Dug3Ym9Rug6y6gGdVizVW86XATSuz7wSvvVvutmXTVdPU/1
         Xq2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702461886; x=1703066686;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=KNiJZsoBYryJdjdOSl6hGATdLgRfPm1eIEa1SEoGZxY=;
        b=TuFEnMChHiwvr/cv0vKrHRUQAwAXAcJZpH2HMAXNxrYh0P6GKMc3didBD8sPj5Ral0
         9qRqmdXmvm1oR6WTYBtPJ4Fo3q4o4bLa1fAnIpehSJJLksOgUUX7ZEmHc5ad5DSMnxJA
         YmCPGmHgXV3TnVOKUpM/TPJt4xrzBhi/AZ5LeZd5cifPKU0X044Ie7MttbzfYZcewqIQ
         DwwJIpyeq8G4YIIu+oINDwdtbV17R4jJ16Y8AWQRAtaPW+KnOcLJUT3l2uMeJSvG0l9d
         40V6C/aq4/PrxJJtWVhclLejYv00Ei61CmMetnHtE3mz8fmv6MS7O5+htfrg07EEx9oG
         jGuA==
X-Gm-Message-State: AOJu0YyOzmvoNJ1la3Lf6N+VH3cK5OfGtgQXgSLXmj/NG3iRGRCMZdst
	xcRKwjGfAl3Hk62uLLNtoHYV
X-Google-Smtp-Source: AGHT+IFbgxt8N5O3tgkR1H5F0GjKYos2eDSpZGj99byJL9KXl3H0jptRoXWXdwn4J2G6CLqHjiSp6A==
X-Received: by 2002:a17:907:c91a:b0:a1d:b7b9:3266 with SMTP id ui26-20020a170907c91a00b00a1db7b93266mr3292677ejc.6.1702461886340;
        Wed, 13 Dec 2023 02:04:46 -0800 (PST)
Message-ID: <7e9256eb-1146-4373-b30a-571d3526882e@suse.com>
Date: Wed, 13 Dec 2023 11:04:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
 <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
 <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>
 <ea73d863-6ead-4b03-98f4-7ab873fa614b@suse.com>
 <0f922ab8-ecad-40f5-a63c-c3be9006a5be@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0f922ab8-ecad-40f5-a63c-c3be9006a5be@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.12.2023 10:48, Julien Grall wrote:
> On 13/12/2023 09:17, Juergen Gross wrote:
>> On 13.12.23 09:43, Julien Grall wrote:
>>> On 13/12/2023 06:23, Juergen Gross wrote:
>>>> On 12.12.23 20:10, Julien Grall wrote:
>>>>> On 12/12/2023 09:47, Juergen Gross wrote:
>>>>>> Add another function level in spinlock.c hiding the spinlock_t layout
>>>>>> from the low level locking code.
>>>>>>
>>>>>> This is done in preparation of introducing rspinlock_t for recursive
>>>>>> locks without having to duplicate all of the locking code.
>>>>>
>>>>> So all the fields you pass are the one from spinlock.
>>>>>
>>>>> Looking at pahole after this series is applid, we have:
>>>>>
>>>>> ==== Debug + Lock profile ====
>>>>>
>>>>> struct spinlock {
>>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 4 */
>>>>> Â Â Â Â Â Â Â Â  struct lock_profile *Â Â Â Â Â  profile;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  8 8 */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  /* size: 16, cachelines: 1, members: 3 */
>>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 16 bytes */
>>>>> };
>>>>> struct rspinlock {
>>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>>> Â Â Â Â Â Â Â Â  uint16_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cpu;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 2 */
>>>>> Â Â Â Â Â Â Â Â  uint8_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cnt;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  6 1 */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  /* XXX 1 byte hole, try to pack */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  8 4 */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  /* XXX 4 bytes hole, try to pack */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  struct lock_profile *Â Â Â Â Â  profile;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â  16 8 */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  /* size: 24, cachelines: 1, members: 5 */
>>>>> Â Â Â Â Â Â Â Â  /* sum members: 19, holes: 2, sum holes: 5 */
>>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 24 bytes */
>>>>> };
>>>>>
>>>>>
>>>>> ==== Debug ====
>>>>>
>>>>> struct spinlock {
>>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 4 */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  /* size: 8, cachelines: 1, members: 2 */
>>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 8 bytes */
>>>>> };
>>>>> struct rspinlock {
>>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>>> Â Â Â Â Â Â Â Â  uint16_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cpu;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 2 */
>>>>> Â Â Â Â Â Â Â Â  uint8_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cnt;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  6 1 */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  /* XXX 1 byte hole, try to pack */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  8 4 */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  /* size: 12, cachelines: 1, members: 4 */
>>>>> Â Â Â Â Â Â Â Â  /* sum members: 11, holes: 1, sum holes: 1 */
>>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 12 bytes */
>>>>> };
>>>>>
>>>>> ==== Prod ====
>>>>>
>>>>> struct spinlock {
>>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 0 */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  /* size: 4, cachelines: 1, members: 2 */
>>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 4 bytes */
>>>>> };
>>>>> struct rspinlock {
>>>>> Â Â Â Â Â Â Â Â  spinlock_tickets_tÂ Â Â Â Â Â Â Â  tickets;Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  0 4 */
>>>>> Â Â Â Â Â Â Â Â  uint16_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cpu;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  4 2 */
>>>>> Â Â Â Â Â Â Â Â  uint8_tÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  recurse_cnt;Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  6 1 */
>>>>> Â Â Â Â Â Â Â Â  union lock_debugÂ Â Â Â Â Â Â Â Â Â  debug;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*Â Â Â Â  7 0 */
>>>>>
>>>>> Â Â Â Â Â Â Â Â  /* size: 8, cachelines: 1, members: 4 */
>>>>> Â Â Â Â Â Â Â Â  /* padding: 1 */
>>>>> Â Â Â Â Â Â Â Â  /* last cacheline: 8 bytes */
>>>>> };
>>>>>
>>>>>
>>>>> I think we could embed spinlock_t in rspinlock_t without increasing 
>>>>> rspinlock_t. Have you considered it? This could reduce the number of 
>>>>> function level introduced in this series.
>>>>
>>>> That was the layout in the first version of this series. Jan 
>>>> requested to change
>>>> it to the current layout [1].
>>>
>>> Ah... Looking through the reasoning, I have to disagree with Jan 
>>> argumentations.
>>
>> I would _really_ have liked you to mention this disagreement back then 
>> (you've
>> been on Cc: in the thread, too).
> 
> Sorry for that. My e-mails backlog is quite large and I can't keep up 
> with all the series.
> 
>> Letting me do a major rework and then after 2 more iterations of the series
>> requesting to undo most of the work isn't great.
> 
> Indeed. But I note you continued without any additional feedback [1]. If 
> you were not sure about the approach suggested by Jan, then why did you 
> post two new versions? Shouldn't you have pinged the maintainers to make 
> sure there is a consensus?

I think this is unfair to JÃ¼rgen. We use the lazy consensus model generally,
and hence no replies generally mean consensus. Also note that it has been
very close to a fully year between my review comments back then and now. It
has been well over a year from the original posting of the RFC.

That said, I also understand that in particular RFCs receive less attention,
no matter that this is entirely contrary to their purpose. That's all the
same for me - I hardly ever look at RFCs as long as there are still non-RFC
patches pending review. Which in reality means it is close to impossible to
ever look at RFCs.

>>> At least with the full series applied, there is no increase of 
>>> rspinlock_t in debug build (if we compare to the version you provided 
>>> in this series).
>>
>> That wasn't his sole reasoning, right?
> 
> I guess you mean the non-optional fields should always be at the same 
> position?

I consider this at least desirable, yes.

>>> Furthermore, this is going to remove at least patch #6 and #8. We 
>>> would still need nrspinlock_* because they can just be wrapper to
>>> spin_barrier(&lock->lock).
>>>
>>> This should also solve his concern of unwieldy code:
>>>
>>> Â > +Â Â Â  spin_barrier(&p2m->pod.lock.lock.lock);
>>
>> Yes, but the demand to have optional fields at the end of the struct isn't
>> covered by your request.
> 
> I note this was a preference and weight against code duplication. It is 
> not clear to me whether Jan agrees with this extra work now.

Well, at the time I said I think "that's a reasonable price to pay", to
further state "with some de-duplication potential".

> Anyway, I am not against this approach and if this is what Jan much 
> prefers then so be it. But I thought I would point out the additional 
> complexity which doesn't seem to be worth it.

It's not "much", I would say, but some of the earlier oddities (like also
the .lock.lock.lock) would be really nice if they went away.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 10:06:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 10:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653823.1020451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDM8j-0001Cq-3m; Wed, 13 Dec 2023 10:06:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653823.1020451; Wed, 13 Dec 2023 10: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 1rDM8j-0001Cj-0v; Wed, 13 Dec 2023 10:06:53 +0000
Received: by outflank-mailman (input) for mailman id 653823;
 Wed, 13 Dec 2023 10: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=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDM8h-0001Ca-Kc
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 10:06:51 +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 54a208a7-999f-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 11:06:49 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-54f5469c211so6750938a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 02:06:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 l12-20020a50cbcc000000b0054b53aacd86sm5408243edi.65.2023.12.13.02.06.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 02:06:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54a208a7-999f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702462009; x=1703066809; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=KwTk6pkMdES9cresee7XintXj2enaIyyrvoCFuQaZmU=;
        b=aS0tgA6193wYcB2NAivkwMp5+O9nO2R6jWarcjlCQwW57/dR4Hk1ZMUj9sm5y9wiTf
         aIveWW7pgEPi4BGQQ2WOljMNVQFjCRGXI0AoM1tbLkTmKjlNZX3XQvGLHnDUTLs0BeHt
         eUHZPVICzswMNcJm3VkJ5Vizdy34BYUAZbGY5kCHCFbAczXtF1RZj0ydAkAfhLhwVkGL
         TqZ6BPkcV+Ma7+me6Bga5Wna4NcMhk43e/QS0E7ow4TT0pYNhTIZuU1Kk1VfFtpFhdPt
         geSc8tk+Y1/ctoekaaEm7j/YAQAOstHGSFU5lhK8Nl8yKSH9oFt2kQjmxXzNk9k/vHOJ
         RoLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702462009; x=1703066809;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=KwTk6pkMdES9cresee7XintXj2enaIyyrvoCFuQaZmU=;
        b=DarI+SI/1/AEE4r5c0V5or4m8L8ITCuvGLCBja1eUBU7R8a1MjPAwhVfE+1oj8rJe4
         GUB9h7mTNOUA8nuXwcJjzMQRtFQaxWiKLIqMIjcQNi2F6AOdlkxh6AZiXmIojpAQPknv
         5NK4++j7/4HIeF5pmne8D4AAZcrmiVwIIIJK3gGYoeB4ccJbJidZHH2Q5sXvqCHgM9MX
         EWr2MKI7hsmjCslthfzmmSBsYeXF5fBAp7M5f6+CDxzShu/8DGoSGV72LJ076CN1IblU
         mjXN0hb9qTdw6Fuiqvpaxrs2Hgp14QTxcO2lu4H50hkajdHw2eg1kxAKpMXFRqN54ivm
         4iBg==
X-Gm-Message-State: AOJu0Yz4AiXvYgXYOOGEoruFVoUt9l9AthNLbX6NArkoGHepi5E0kZyN
	LoA+r7+weEuYsDBJxYRTzo0F
X-Google-Smtp-Source: AGHT+IGaNRrNbp0hPDGUR/JntY8gYuIkY5QgF+4E7T/3tW3knVyt8HYFTsDvcPjWEsUceD+eDv8RRg==
X-Received: by 2002:a50:d75d:0:b0:551:d340:a59d with SMTP id i29-20020a50d75d000000b00551d340a59dmr997857edj.43.1702462009015;
        Wed, 13 Dec 2023 02:06:49 -0800 (PST)
Message-ID: <557e5082-01ba-407f-9815-317f9de18c0d@suse.com>
Date: Wed, 13 Dec 2023 11:06:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/spinlock: add another function level
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-9-jgross@suse.com>
 <bee4d33a-1120-4389-a83d-4d2b91c5611d@xen.org>
 <2cccc696-a9d6-49ed-9b00-74de59884d43@suse.com>
 <fa87ab8c-b422-4a79-a32d-608c6c63ddf8@xen.org>
 <ea73d863-6ead-4b03-98f4-7ab873fa614b@suse.com>
 <0f922ab8-ecad-40f5-a63c-c3be9006a5be@xen.org>
 <6156d11d-3421-42c1-9368-b9de5708030f@suse.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: <6156d11d-3421-42c1-9368-b9de5708030f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.12.2023 10:55, Juergen Gross wrote:
> On 13.12.23 10:48, Julien Grall wrote:
>> I note this was a preference and weight against code duplication. It is not 
>> clear to me whether Jan agrees with this extra work now.
>>
>> Anyway, I am not against this approach and if this is what Jan much prefers then 
>> so be it. But I thought I would point out the additional complexity which 
>> doesn't seem to be worth it.
> 
> Thanks for the clarification.
> 
> Jan?

Just to clarify: While I have replied to Julien's mail just a minute ago,
I didn't get around yet to look at the actual patch. That reply of mine
was purely based on what I said earlier on.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 10:21:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 10:21:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653829.1020460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMMf-0005Oe-Aq; Wed, 13 Dec 2023 10:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653829.1020460; Wed, 13 Dec 2023 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 1rDMMf-0005OV-7c; Wed, 13 Dec 2023 10:21:17 +0000
Received: by outflank-mailman (input) for mailman id 653829;
 Wed, 13 Dec 2023 10:21: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 1rDMMd-0005Mx-Tb; Wed, 13 Dec 2023 10:21: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 1rDMMd-0006Rw-HF; Wed, 13 Dec 2023 10:21: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 1rDMMd-0005F5-6O; Wed, 13 Dec 2023 10:21:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDMMd-00072E-5t; Wed, 13 Dec 2023 10:21: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=7alMVFvlVbyLmKHY8Gu8kxYRNjiqPi5aGhxgkifuuU8=; b=oD9QKORPKkVeW1yzcktgQrMfgU
	0qwXwZzHr5SNtAW/1Gw1hL3whA4OmJzPS7uxDhFYpDPCApSj2PCp+6bJythSKthXoMQXhIqjZSp3o
	6DX/4TkmWJcnbHd/fPwKYIgIh58fBcrddEHxn4ag0RsQ1/8rdIno4GuXynzR0w/GeOmw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184107-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.15-testing test] 184107: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.15-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.15-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=6400013f07e5c7fec9f68821755aed94683b663c
X-Osstest-Versions-That:
    xen=b918c4cdc7ab2c1c9e9a9b54fa9d9c595913e028
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 13 Dec 2023 10:21:15 +0000

flight 184107 xen-4.15-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/184107/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183751
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183751
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183751
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183751
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183751
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183751
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183751
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183751
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183751
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183751
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183751
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183751
 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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-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-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-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-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          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-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-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-amd64-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
 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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  6400013f07e5c7fec9f68821755aed94683b663c
baseline version:
 xen                  b918c4cdc7ab2c1c9e9a9b54fa9d9c595913e028

Last test of basis   183751  2023-11-14 13:06:44 Z   28 days
Testing same since   184107  2023-12-12 14:06:52 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                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   b918c4cdc7..6400013f07  6400013f07e5c7fec9f68821755aed94683b663c -> stable-4.15


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 10:27:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 10:27:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653836.1020475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMSE-0007Qo-2p; Wed, 13 Dec 2023 10:27:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653836.1020475; Wed, 13 Dec 2023 10:27: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 1rDMSE-0007Qh-07; Wed, 13 Dec 2023 10:27:02 +0000
Received: by outflank-mailman (input) for mailman id 653836;
 Wed, 13 Dec 2023 10:27:01 +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 1rDMSD-0007Qb-BP
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 10:27:01 +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 1rDMSC-0006Yt-Hm; Wed, 13 Dec 2023 10:27:00 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235] helo=[192.168.2.97])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDMSC-0004aY-Bi; Wed, 13 Dec 2023 10:27: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=oRIDefNm2wt/VIm+lNP5XxTf25jurIqcEEwhAZSz+FM=; b=ZDu0Jp7+vUoHiKo6EEx8D1nVnr
	yBeXnJsdvDhoUtSRh5iZyTmgAkw9mUufdRvqFs2HesaaSTYywd2LA6y3a4QMjXLotxT8aoBjWNRV1
	UXsxP54lrDLg+daify3wqzPEOzhUWNaUAzlrXe1Qb2O/mKoYe+2z+VPCRcn766hbG0Wg=;
Message-ID: <93fc510a-29ed-41c7-8786-e9d9d5912a65@xen.org>
Date: Wed, 13 Dec 2023 10:26:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: SAF-* comment at the end of the line
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "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>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <Michal.Orzel@amd.com>, George Dunlap
 <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
References: <27B32A01-F4D9-4A92-BA16-F43D0AF4F29E@arm.com>
 <alpine.DEB.2.22.394.2312051840070.110490@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312051840070.110490@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 06/12/2023 02:42, Stefano Stabellini wrote:
> On Tue, 5 Dec 2023, Luca Fancellu wrote:
>> Hi all,
>>
>> Iâ€™m writing this mail to collect thoughts about the need to improve the SAF-* comments.
>>
>> I think we reached a point where we need to use deviations for some violation that we want
>> to keep in the code with a proper justification and an issue was raised when the comment
>> cannot be put on a line on its own.
>>
>> e.g.
>>
>> If ( condition-1 &&
>>       condition-2 &&
>>        [...] )
>> {
>>      ...
>> }
>>
>> For example in the code above, if the violation is in the second condition, breaking the conditions
>> to have an empty line between them for the SAF-* comment is not ideal, so we could maybe
>> improve the in-code comment to be used at the end of the line:
>>
>> e.g.
>>
>> If ( condition-1 &&
>>       condition-2 && /* SAF-*-safe [...] */
>>        [...] )
>> {
>>      ...
>> }
>>
>> This might require also a deviation on the coding style to allow the comment to overcome the line length.
>>
>> Bertrand, from his experience with safety certifications, feels that adding this feature could be enough
>> to cover the majority of the cases where we need to deviate a violation in the code.
>>
>> Using it consistently in the code base as the only way to deviate a violation can also help the adoption
>> of the project to people who might want to fix them instead of deviating them, the only thing they would need
>> to do is to grep for SAF-* to have a rough idea of how many justified violation are in the code.
>>
>> Please let me know your thoughts before I start to implement the feature.
> 
> I think we need this feature and in fact we have already been adding it
> in an ad-hoc way with /* octal-ok */
> 
> It would like to remove octal-ok and use a generic way (SAF) to do the
> same.

+1.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 10:31:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 10:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653839.1020485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMWl-000180-M0; Wed, 13 Dec 2023 10:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653839.1020485; Wed, 13 Dec 2023 10: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 1rDMWl-00017t-Hn; Wed, 13 Dec 2023 10:31:43 +0000
Received: by outflank-mailman (input) for mailman id 653839;
 Wed, 13 Dec 2023 10: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=ptd6=HY=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1rDMWk-00017n-BS
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 10:31:42 +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 cd1614bd-99a2-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 11:31:40 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-55202565d48so551816a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 02:31:40 -0800 (PST)
Received: from rayden.urgonet (h-217-31-164-171.A175.priv.bahnhof.se.
 [217.31.164.171]) by smtp.gmail.com with ESMTPSA id
 t19-20020a50d713000000b005522da9fdb6sm227151edi.74.2023.12.13.02.31.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 02:31:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd1614bd-99a2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1702463499; x=1703068299; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=ZIA3UNEPY3fDTKnxgP5EMG590iwOpFZV2ZhUBxBlU0Q=;
        b=AopQPNLSDrGjYTVYZmVLuCP7fcIetYwlHKa9JcXEBQHHeapX0wfcB0LLzfgENYklNz
         hBLxcEVwLm7wqLin9AG5UChwN12pc/ABO4FxCzwagSWQ7Vh7dM+FxKH3iNUsmckigL19
         buzgNlrCTwv7zHfGWFt96NU3ddPqXhNBUx6SNUXWX8srJ6JNlsTGsuXJFG6cHiQeaKXf
         CTq3QmdBftW/rTfY1v0xJ7zafP77vRUIodbiv7GSThm05pg3+CoHJBL0sJ1XYZQDQ7VK
         pRAE7e9Cyi5+XS4aEcwzsC9M7V86XXjrlZ6GT5BNwgxk1dj6KhwmwCKgF8J3PDBCCYaB
         lAYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702463499; x=1703068299;
        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=ZIA3UNEPY3fDTKnxgP5EMG590iwOpFZV2ZhUBxBlU0Q=;
        b=goskdn0zm291C+0yGxHC5Awr2weAXvD0FrYNLw7OiNHIvQpi4abltcVKNxYi1+Hv1F
         Z2U6TN40UYLP+gVs2Z3RuVTzfugQfaQJjVmZGGrWVUH7ezXi9k+VDRauoJ4RoDdL1TA3
         uMB96ZiZFnsPCXuiTvS+65a+7Puqp1CAUd3yjhZIBfdfvV8vI68cz6Ff2pFmXbQj7A1x
         IgQIirWug+PkkAZx6E4x3RxpFUqNgT8qXdkYpjp7zwH2mfMUJtJx4Ga1j5+9cYJFXF5o
         bZUshu4BxJM7Qg0CfREUYxVN/yuS+A2yQoM9qrItbUgcEeM4JnXfiG38p5iz7FNkwOyJ
         9igg==
X-Gm-Message-State: AOJu0Ywjxvrt5tIW7qwWBnAtk3HBvo3zm97Mq8m30zR1p/8pKH+MenLH
	d+57DDLP5Kvu4lD37pilh2afLQ3L+akTZrVa6HA=
X-Google-Smtp-Source: AGHT+IFeKdUiB5mNydrj+PMkj9LWHgtuIkhTXR+DD9ZKw80UTy/4owp7jAjvltl79poafnCDqcoSbw==
X-Received: by 2002:a05:6402:5c6:b0:54d:2c63:782e with SMTP id n6-20020a05640205c600b0054d2c63782emr4858764edx.44.1702463499240;
        Wed, 13 Dec 2023 02:31:39 -0800 (PST)
From: Jens Wiklander <jens.wiklander@linaro.org>
To: xen-devel@lists.xenproject.org
Cc: patches@linaro.org,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [XEN PATCH] xen/arm: ffa: return fpi size from FFA_PARTITION_INFO_GET
Date: Wed, 13 Dec 2023 11:31:35 +0100
Message-Id: <20231213103135.2346238-1-jens.wiklander@linaro.org>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Until now has FFA_PARTITION_INFO_GET always returned zero in w3, but
FF-A v1.1 requires FFA_PARTITION_INFO_GET to return the size of each
partition information descriptor returned if
FFA_PARTITION_INFO_GET_COUNT_FLAG isn't set.

The SPMC queried with FFA_PARTITION_INFO_GET must also return the each
partition information descriptor returned so fix this by passing along
the same value.

Fixes: caf6491e95a9 ("xen/arm: ffa: support guest FFA_PARTITION_INFO_GET")
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
 xen/arch/arm/tee/ffa.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 183528d13388..1d4e0a083006 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -514,7 +514,7 @@ static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,
 
 static int32_t ffa_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
                                       uint32_t w4, uint32_t w5,
-                                      uint32_t *count)
+                                      uint32_t *count, uint32_t *fpi_size)
 {
     const struct arm_smccc_1_2_regs arg = {
         .a0 = FFA_PARTITION_INFO_GET,
@@ -531,7 +531,10 @@ static int32_t ffa_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
 
     ret = get_ffa_ret_code(&resp);
     if ( !ret )
+    {
         *count = resp.a2;
+        *fpi_size = resp.a3;
+    }
 
     return ret;
 }
@@ -784,7 +787,7 @@ static uint32_t handle_rxtx_unmap(void)
 
 static int32_t handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
                                          uint32_t w4, uint32_t w5,
-                                         uint32_t *count)
+                                         uint32_t *count, uint32_t *fpi_size)
 {
     int32_t ret = FFA_RET_DENIED;
     struct domain *d = current->domain;
@@ -799,7 +802,7 @@ static int32_t handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
      */
     if ( w5 == FFA_PARTITION_INFO_GET_COUNT_FLAG &&
          ctx->guest_vers == FFA_VERSION_1_1 )
-        return ffa_partition_info_get(w1, w2, w3, w4, w5, count);
+        return ffa_partition_info_get(w1, w2, w3, w4, w5, count, fpi_size);
     if ( w5 )
         return FFA_RET_INVALID_PARAMETERS;
 
@@ -812,7 +815,7 @@ static int32_t handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
     if ( !ctx->page_count || !ctx->rx_is_free )
         goto out;
     spin_lock(&ffa_rx_buffer_lock);
-    ret = ffa_partition_info_get(w1, w2, w3, w4, w5, count);
+    ret = ffa_partition_info_get(w1, w2, w3, w4, w5, count, fpi_size);
     if ( ret )
         goto out_rx_buf_unlock;
     /*
@@ -842,7 +845,7 @@ static int32_t handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
     }
     else
     {
-        size_t sz = *count * sizeof(struct ffa_partition_info_1_1);
+        size_t sz = *count * *fpi_size;
 
         if ( ctx->page_count * FFA_PAGE_SIZE < sz )
         {
@@ -1409,6 +1412,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     uint32_t fid = get_user_reg(regs, 0);
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
+    uint32_t fpi_size;
     uint32_t count;
     int e;
 
@@ -1444,11 +1448,11 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
                                       get_user_reg(regs, 2),
                                       get_user_reg(regs, 3),
                                       get_user_reg(regs, 4),
-                                      get_user_reg(regs, 5), &count);
+                                      get_user_reg(regs, 5), &count, &fpi_size);
         if ( e )
             set_regs_error(regs, e);
         else
-            set_regs_success(regs, count, 0);
+            set_regs_success(regs, count, fpi_size);
         return true;
     case FFA_RX_RELEASE:
         e = handle_rx_release();
@@ -1629,10 +1633,11 @@ static bool init_subscribers(struct ffa_partition_info_1_1 *fpi, uint16_t count)
 static bool init_sps(void)
 {
     bool ret = false;
+    uint32_t fpi_size;
     uint32_t count;
     int e;
 
-    e = ffa_partition_info_get(0, 0, 0, 0, 0, &count);
+    e = ffa_partition_info_get(0, 0, 0, 0, 0, &count, &fpi_size);
     if ( e )
     {
         printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 10:32:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 10:32:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653841.1020495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMXn-0001w1-UK; Wed, 13 Dec 2023 10:32:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653841.1020495; Wed, 13 Dec 2023 10:32:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMXn-0001vu-RP; Wed, 13 Dec 2023 10:32:47 +0000
Received: by outflank-mailman (input) for mailman id 653841;
 Wed, 13 Dec 2023 10: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=ptd6=HY=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1rDMXm-0001vk-Kf
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 10:32:46 +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 f442b278-99a2-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 11:32:45 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a1db6c63028so778803766b.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 02:32:45 -0800 (PST)
Received: from rayden.urgonet (h-217-31-164-171.A175.priv.bahnhof.se.
 [217.31.164.171]) by smtp.gmail.com with ESMTPSA id
 ty8-20020a170907c70800b00a1e026ac542sm7652383ejc.10.2023.12.13.02.32.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 02:32:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f442b278-99a2-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1702463565; x=1703068365; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=dk0Swo1pvH4Yil7NubYxKLwP+gfqZz/ud6scZNaZ/gw=;
        b=imRyJwbI6Wwg87oOQM28jNRiNGGh/hDeKWytG6uR38GGDoMQNRDs2W+yTABhmJxQS4
         EiFlHLAzAGIBSWEMjJdmzKtTRJnJj6KHtYkwzTTGjA/2egSJ98DSfmb5/KWyUQxqDyGb
         SCyhJQbXrfpXOmjG6QVvUCwBU47YawsinIH0riKfvd4Nlq8FoeYTZHj5KLFu385V9y0P
         yMePs9WZOA8TFTNbrhUu1TgasIpcSO86ukJ+ZqqViqIVLSTO8gZ1Ekx9DLaNP0mp6crM
         G7fg26Ly7GQOcSxOtRyd3Rp4qUu3VOfGPMrlNZ3LbXN+wHKHtPW9Ma3GspduhlnZUkmd
         nyvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702463565; x=1703068365;
        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=dk0Swo1pvH4Yil7NubYxKLwP+gfqZz/ud6scZNaZ/gw=;
        b=nd4tnxhGl7bOOiuSvAsALX/oQZYIx7P3wRT/qFdo4ARpD1s3ja+wyY+kobinprhd9n
         kphgIvtkDpld3bYzkBdvJbj5NTCFq8I4ZvtCnfw4IzuriQMqOHYh+sx8qNO2nfaQ0Pu8
         XxmHsijLUf3ATihsS+IEtVlTRrs1LkmqYRAil07zPLk0gFBYpgKFpVj1JmT5I8EnRvyI
         mxjydmtWZh43yBSgODupFfNTVSmQAcLxd4fChBcF2UxSL6awmsqM0IP+0Dqm2qDQ8f44
         zoc9d9A4akQixcAuEIEgG0CRGwRDQat+iOT9CWLYAao9UASPvGnaULIVJfVI7PiCPleG
         /AHg==
X-Gm-Message-State: AOJu0YzHLUwwj/7eecKchFyOIR83hlkXaAzBfahGsh05ODajXREEEhJN
	gM/CeuxDZ3halBV84+TlSvhxf5UJZqQlLQr6f/k=
X-Google-Smtp-Source: AGHT+IHvfV+uEmYCbEM3+HEyzqaMMVy0ebJ/kLQHHqDQpdXRieCq5RB4G36wi4Iyly4+54CUBsImcA==
X-Received: by 2002:a17:907:9623:b0:a18:8d66:b3a5 with SMTP id gb35-20020a170907962300b00a188d66b3a5mr4426624ejc.36.1702463564936;
        Wed, 13 Dec 2023 02:32:44 -0800 (PST)
From: Jens Wiklander <jens.wiklander@linaro.org>
To: xen-devel@lists.xenproject.org
Cc: patches@linaro.org,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [XEN PATCH] xen/arm: ffa: return FFA_RET_NOT_SUPPORTED on unhandled calls
Date: Wed, 13 Dec 2023 11:32:41 +0100
Message-Id: <20231213103241.2346813-1-jens.wiklander@linaro.org>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Until now has an unsupported FF-A request been reported back with
ARM_SMCCC_ERR_UNKNOWN_FUNCTION in register x0. A FF-A caller would
rather expect FFA_ERROR in x0 and FFA_RET_NOT_SUPPORTED in x2 so update
ffa_handle_call() to return true and with the cpu_user_regs updated.

Fixes: 38846de2176b ("xen/arm: tee: add a primitive FF-A mediator")
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
 xen/arch/arm/tee/ffa.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 183528d13388..98905fec7967 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -1477,7 +1477,8 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
 
     default:
         gprintk(XENLOG_ERR, "ffa: unhandled fid 0x%x\n", fid);
-        return false;
+        set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        return true;
     }
 }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 10:43:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 10:43:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653847.1020505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMiA-0004tW-Tw; Wed, 13 Dec 2023 10:43:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653847.1020505; Wed, 13 Dec 2023 10:43:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMiA-0004tP-Qo; Wed, 13 Dec 2023 10:43:30 +0000
Received: by outflank-mailman (input) for mailman id 653847;
 Wed, 13 Dec 2023 10:43:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mw9L=HY=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDMi9-0004s2-2L
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 10:43:29 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72477514-99a4-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 11:43:26 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 5FAB84EE0737;
 Wed, 13 Dec 2023 11:43:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 72477514-99a4-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Wed, 13 Dec 2023 11:43:26 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn?=
 =?UTF-8?Q?=C3=A9?= <roger.pau@citrix.com>, consulting@bugseng.com, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 6/7] x86/platform: removed break to address MISRA
 C:2012 Rule 2.1
In-Reply-To: <a8c42909-6316-448b-8d21-628d055abfbc@suse.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <b1103bc13d5ce04159417592705b4fe6a6db748b.1702283415.git.nicola.vetrini@bugseng.com>
 <a8c42909-6316-448b-8d21-628d055abfbc@suse.com>
Message-ID: <5a5db7d32c91658f80bf7d2991023a30@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 2023-12-12 11:13, Jan Beulich wrote:
> On 11.12.2023 11:30, Nicola Vetrini wrote:
>> The break statement is redundant, hence it can be removed.
> 
> Except ...
> 
>> --- a/xen/arch/x86/platform_hypercall.c
>> +++ b/xen/arch/x86/platform_hypercall.c
>> @@ -723,7 +723,6 @@ ret_t do_platform_op(
>> 
>>          ret = continue_hypercall_on_cpu(
>>              0, cpu_down_helper, (void *)(unsigned long)cpu);
>> -        break;
>>      }
>>      break;
> 
> ... it wants to be the other break that is removed, imo. Andrew, Roger,
> what do you think? There are many such (again: imo) oddly placed 
> break-s
> in that switch() ... In some cases there are also inner scopes without
> there being new local variables in there. IOW imo throughout this
> switch()
> - pointless inner scopes want dropping,
> - all "main" break-s want to have the same indentation.
> 
> Jan

Ok. I'm not particularly keen on doing a full style cleanup; I can drop 
the other break, for the sake of resolving the MISRA violation, so that 
the cleanup can happen anytime.

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 10:46:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 10:46:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653850.1020515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMks-0005tI-A9; Wed, 13 Dec 2023 10:46:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653850.1020515; Wed, 13 Dec 2023 10:46:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMks-0005tB-70; Wed, 13 Dec 2023 10:46:18 +0000
Received: by outflank-mailman (input) for mailman id 653850;
 Wed, 13 Dec 2023 10:46:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rDMkr-0005sp-1p
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 10:46:17 +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 1rDMkq-0006sq-Jk; Wed, 13 Dec 2023 10:46:16 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227] helo=[192.168.2.97])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDMkq-0005fz-Cv; Wed, 13 Dec 2023 10:46:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=NIKn1KtVJRyUNAQQ+HT5D4kqCv2OjKG5ZHXmVydNmNU=; b=L5GesP4Q7XFvd6KC5OpteW1UMK
	qV1USVSLXiVquHzGXwOextRabuMYlBdhVjfnWnlD+7KdfandEz9aI2wlQBzz6toyy/tSvr2vDXYmp
	dwdOOR/JBG7+xqlFqs6kNrUiypybY5N+ebLDTn5SKhbnuhVqjdv2hbYAbRatb/Q7gXQA=;
Message-ID: <a67c76c6-0fde-438e-9ca8-b6860d03470f@xen.org>
Date: Wed, 13 Dec 2023 10:46:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/9] xen/arm: don't pass iommu properties to hwdom for
 iommu-map
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>,
 Julien Grall <jgrall@amazon.com>
References: <20231109182716.367119-1-stewart.hildebrand@amd.com>
 <20231109182716.367119-2-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231109182716.367119-2-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 09/11/2023 18:27, Stewart Hildebrand wrote:
> A device tree node for a PCIe root controller may have an iommu-map property [1]
> with a phandle reference to the SMMU node, but not necessarily an iommus
> property. In this case, we want to treat it the same as we currently handle
> devices with an iommus property: don't pass the iommu related properties to
> hwdom.
> 
> [1] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/pci-iommu.txt
> 
> Reported-by: Michal Orzel <michal.orzel@amd.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Acked-by: Julien Grall <jgrall@amazon.com>

I was committed this patch. The rest doesn't seem to be reviewed or have 
some dependencies.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 10:55:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 10:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653854.1020524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDMtO-0000Ls-3t; Wed, 13 Dec 2023 10:55:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653854.1020524; Wed, 13 Dec 2023 10: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 1rDMtO-0000Ll-1P; Wed, 13 Dec 2023 10:55:06 +0000
Received: by outflank-mailman (input) for mailman id 653854;
 Wed, 13 Dec 2023 10: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=IrFR=HY=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDMtM-0000Lf-Qz
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 10:55:04 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 11806d46-99a6-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 11:55:03 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-336417c565eso214919f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 02:55:03 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 k13-20020a5d518d000000b003333040e7f3sm13006654wrv.60.2023.12.13.02.55.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 02:55:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11806d46-99a6-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702464903; x=1703069703; 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=luPdNZpMkpgepIMxboFkvJaSyVGV84+b2R+i4MuHydg=;
        b=r9xbiHdowFsSOrOxgkXTR9VmxO9upj2rdCIbxUCGKib5aRW3bzQfa2a5X5hiIeFWk6
         AiDITCVHt6I3/PRzTSIdly9xfV85kBEidi8RPi82h0YvphDDIdBnxx+GFn0cIT736/47
         ykFhn1Trd5qjI81Gvof2vkHQsDpPsgBjse+YI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702464903; x=1703069703;
        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=luPdNZpMkpgepIMxboFkvJaSyVGV84+b2R+i4MuHydg=;
        b=AnRsqqLz/joRnTrVQZHDsUDeQjEbk8hS0UVidQyEkkl81X4nlXe83kwfMvRKJmY96u
         5yO3q56z8XOppPMtOTJt0jYBRWRac/rpfkzys1Sod1/96DwBgEPee+8nMIell3tkbynW
         3itbh4kdDIyhoksXPrF8IPjz2usB9u7YQy1JCKMZyAI1TsGRLz8g5nRSPVCrNB3zuzPr
         8zdjAD+Bapy4V4T9oW3AGQH2nRkKhaDhUyzSmmwDYWFf5HrrMa5znnsDZKeMOXDfpfsZ
         81jSgiacslsW/c1s5YaIMghDjKJ4sI2qc+lhWpw7KbCc0CJB/4mY/5ivhyJeI2bRQ4/v
         sbow==
X-Gm-Message-State: AOJu0YzvBvqf96m1XIouaAORnBi+nM+hpob+KNRXc6ysaGoiEInxa0hX
	okAcxQurmdXWGnzhl5Iiv+MvejVir5K+RP2TiOc=
X-Google-Smtp-Source: AGHT+IEq36TI76OFEOIF9caUY65XQ51Gmgwyrp/w1cDTndr7i3Xta0ETdPqXUEUaG5iloVHFbQaU6Q==
X-Received: by 2002:adf:e610:0:b0:333:2fd2:3bfa with SMTP id p16-20020adfe610000000b003332fd23bfamr3032461wrm.179.1702464902789;
        Wed, 13 Dec 2023 02:55:02 -0800 (PST)
Date: Wed, 13 Dec 2023 11:55:00 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2 5/5] automation: add x86-64 livepatching test
Message-ID: <ZXmNhK58kveTKT0N@macbook>
References: <20231128100352.35430-1-roger.pau@citrix.com>
 <20231128100352.35430-6-roger.pau@citrix.com>
 <alpine.DEB.2.22.394.2311291901250.3533093@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2311291901250.3533093@ubuntu-linux-20-04-desktop>

On Wed, Nov 29, 2023 at 07:03:10PM -0800, Stefano Stabellini wrote:
> On Tue, 28 Nov 2023, Roger Pau Monne wrote:
> > Introduce a new gitlab tests for livepatching, using livepatch-build-tools,
> > which better reflects how downstreams build live patches rather than the
> > in-tree tests.
> > 
> > The tests applies the dummy in-tree patch example, checks that the patch is
> > applied correctly and then reverts and unloads it.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> >  automation/gitlab-ci/build.yaml               |  8 +++
> >  automation/gitlab-ci/test.yaml                |  8 +++
> >  automation/scripts/build                      | 21 ++++++
> >  .../scripts/qemu-alpine-x86_64-livepatch.sh   | 68 +++++++++++++++++++
> >  4 files changed, 105 insertions(+)
> >  create mode 100755 automation/scripts/qemu-alpine-x86_64-livepatch.sh
> > 
> > diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> > index 32af30ccedc9..22026df51b87 100644
> > --- a/automation/gitlab-ci/build.yaml
> > +++ b/automation/gitlab-ci/build.yaml
> > @@ -358,6 +358,14 @@ alpine-3.18-gcc-debug:
> >    variables:
> >      CONTAINER: alpine:3.18
> >  
> > +alpine-3.18-gcc-livepatch:
> > +  extends: .gcc-x86-64-build
> > +  variables:
> > +    CONTAINER: alpine:3.18
> > +    LIVEPATCH: y
> > +    EXTRA_XEN_CONFIG: |
> > +      CONFIG_LIVEPATCH=y
> > +
> >  debian-stretch-gcc-debug:
> >    extends: .gcc-x86-64-build-debug
> >    variables:
> > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> > index 6aabdb9d156f..58a90be5ed0e 100644
> > --- a/automation/gitlab-ci/test.yaml
> > +++ b/automation/gitlab-ci/test.yaml
> > @@ -459,3 +459,11 @@ qemu-smoke-ppc64le-powernv9-gcc:
> >    needs:
> >      - qemu-system-ppc64-8.1.0-ppc64-export
> >      - debian-bullseye-gcc-ppc64le-debug
> > +
> > +qemu-alpine-x86_64-gcc-livepatch:
> > +  extends: .qemu-x86-64
> > +  script:
> > +    - ./automation/scripts/qemu-alpine-x86_64-livepatch.sh 2>&1 | tee ${LOGFILE}
> > +  needs:
> > +    - *x86-64-test-needs
> > +    - alpine-3.18-gcc-livepatch
> > diff --git a/automation/scripts/build b/automation/scripts/build
> > index b3c71fb6fb60..0a0a6dceb08c 100755
> > --- a/automation/scripts/build
> > +++ b/automation/scripts/build
> > @@ -103,3 +103,24 @@ else
> >      cp -r dist binaries/
> >      if [[ -f xen/xen ]] ; then cp xen/xen binaries/xen; fi
> >  fi
> > +
> > +if [[ "$LIVEPATCH" == "y" ]]; then
> > +    # Build a test livepatch using livepatch-build-tools.
> > +
> > +    if [[ "$XEN_TARGET_ARCH" != "x86_64" ]]; then
> > +        exit 1
> > +    fi
> > +
> > +    # git diff --no-index returns 0 if no differences, otherwise 1.
> > +    git diff --no-index --output=test.patch xen/arch/x86/test-smc-lp.c \
> > +                                            xen/arch/x86/test-smc-lp-alt.c && exit 1
> > +
> > +    BUILDID=$(readelf -Wn xen/xen-syms | sed -n -e 's/^.*Build ID: //p')
> > +
> > +    git clone https://xenbits.xen.org/git-http/livepatch-build-tools.git
> > +    cd livepatch-build-tools
> > +    make
> > +    ./livepatch-build -s ../ -p ../test.patch -o out -c ../xen/.config \
> > +        --depends $BUILDID --xen-depends $BUILDID
> > +    cp out/test.livepatch ../binaries/test.livepatch
> > +fi
> 
> I realize this is a matter of taste but if possible I would move this to
> qemu-alpine-x86_64-livepatch.sh not to make the build script too
> complex.

I've attempted that, but there are some issues.  First, the
elfutils-dev package would need to be added to the test container,
checkout livepatch-build-tools.git from the test script, and do the
differential build in the test script, so all the Xen hypervisor build
dependencies would also be needed in the test container.

> Otherwise, plase create automation/scripts/livepatch and move this code
> there. You can call automation/scripts/livepatch from
> automation/scripts/build.

Unless you have a strong desire to pursue building the livepatch in
the test step, I will go with the route proposed here, and split the
livepatch build into automation/scripts/build-livepatch.

> Other than that, this is great! I'll let other review the livepatch
> specific changes in this series

Thanks, will post a new version soon.

Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 11:03:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 11:03:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653862.1020535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDN0z-00029J-Vs; Wed, 13 Dec 2023 11:02:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653862.1020535; Wed, 13 Dec 2023 11:02:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDN0z-00029C-TF; Wed, 13 Dec 2023 11:02:57 +0000
Received: by outflank-mailman (input) for mailman id 653862;
 Wed, 13 Dec 2023 11:02:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tYyH=HY=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rDN0y-000296-K9
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 11:02:56 +0000
Received: from m226-146.mailgun.net (m226-146.mailgun.net [159.135.226.146])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 29d1b897-99a7-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 12:02:54 +0100 (CET)
Received: from mg.gitlab.com (12.226.74.34.bc.googleusercontent.com
 [34.74.226.12]) by
 16f8a7cdc19b with SMTP id 65798f5c022b6c1a604ff32f (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 13 Dec 2023 11:02:52 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 29d1b897-99a7-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702465372; x=1702472572; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=a48wiJ/Kfxm9TdyhaBJacFe6PjGajT31TmZW7zyJ1pQ=;
 b=VltcQoqXJxerl1G3t33iDLCFZA3Ehb9Fv0l2iCzTW//o8chnyF9qIGSvxHfzfWf33fFU5AohLdd2TfdgyLfm6csy+TQSM+piEulyeqFE4q5itNxhURuVw5V0YM2n4mzYl7387pvRSFQ7P2zgj7/i8nkYLXeuiuob343VEkrEO+I=
X-Mailgun-Sending-Ip: 159.135.226.146
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 13 Dec 2023 11:02:52 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65798f5c7646d_2c953307313e@gitlab-sidekiq-catchall-v2-5697c886b5-n4bnl.mail>
Subject: xen | Successful pipeline for stable-4.15 | 6400013f
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65798f5c6a8d5_2c953307304d";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1105252952
X-GitLab-Pipeline-Ref: stable-4.15
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65798f5c6a8d5_2c953307304d
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1105252952 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: stable-4.15 ( https://gitlab.com/xen-project/xen/-/commits/stable-4.15 )

Commit: 6400013f ( https://gitlab.com/xen-project/xen/-/commit/6400013f07e5c7fec9f68821755aed94683b663c )
Commit Message: xen/arm: page: Avoid pointer overflow on cache ...
Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1105252952 ( https://gitlab.com/xen-project/xen/-/pipelines/1105252952 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 3 jobs in 1 stage.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for stable-4.15 | 6400013f</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1105252952 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
table-4.15" style=3D"color: #333333; text-decoration: none;">
stable-4.15
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/6400013f07e5c7fec9=
f68821755aed94683b663c" style=3D"color: #3777b0; text-decoration: none;">=
6400013f</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: page: Avoid pointer overflow on cache ...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/47e2f2ac4637bce0cc380dba59a9412f?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/orzelmichal" style=3D"color=
: #333333; text-decoration: none;">
Michal Orzel
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110525=
2952" style=3D"color: #3777b0; text-decoration: none;">#1105252952</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 3 jobs in 1 stage.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65798f5c6a8d5_2c953307304d--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 11:08:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 11:08:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653895.1020545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDN62-0002yG-IT; Wed, 13 Dec 2023 11:08:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653895.1020545; Wed, 13 Dec 2023 11: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 1rDN62-0002y9-FU; Wed, 13 Dec 2023 11:08:10 +0000
Received: by outflank-mailman (input) for mailman id 653895;
 Wed, 13 Dec 2023 11: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=tYyH=HY=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rDN61-0002y3-AD
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 11:08:09 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id e43c22ed-99a7-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 12:08:07 +0100 (CET)
Received: from mg.gitlab.com (64.90.74.34.bc.googleusercontent.com
 [34.74.90.64]) by
 add76e283df8 with SMTP id 65799095ac3be0d86a645be7 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 13 Dec 2023 11:08:05 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: e43c22ed-99a7-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702465685; x=1702472885; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=KBVPJc49UO6iO17BkMQtCZStFzzyNHVbWwcpe36rFAc=;
 b=i35iofCGl6LSWpO4KAqCIsj5H892NwHvmPxqE29AFuw+SRv+kNRLHsFsELUhwlchXrEvhjz15+WcQeNpxOWeOyORPa0XTL7PSfG4WFllPDOM6HSwQ3o9gA2LVwWufRdE6Yno3W3DrXABjHv0LqUvvG37mg1HO0XnsaM/RMcOJUw=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 13 Dec 2023 11:08:04 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65799094bb15d_2c952a499638@gitlab-sidekiq-catchall-v2-5697c886b5-9g9qz.mail>
Subject: xen | Successful pipeline for staging | 666e3c29
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65799094b054c_2c952a49959d";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1105206956
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65799094b054c_2c952a49959d
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1105206956 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 666e3c29 ( https://gitlab.com/xen-project/xen/-/commit/666e3c294d50e4a7f87a4d22757b7ffe5863b4df )
Commit Message: xen/iommu: address leftover violation of MISRA ...
Commit Author: Federico Serafini
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1105206956 ( https://gitlab.com/xen-project/xen/-/pipelines/1105206956 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 666e3c29</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1105206956 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/666e3c294d50e4a7f8=
7a4d22757b7ffe5863b4df" style=3D"color: #3777b0; text-decoration: none;">=
666e3c29</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/iommu: address leftover violation of MISRA ...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/7347c1427cde55f447d83dc392bce562?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Federico Serafini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110520=
6956" style=3D"color: #3777b0; text-decoration: none;">#1105206956</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65799094b054c_2c952a49959d--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 11:08:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 11:08:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653922.1020555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDN6o-0003dJ-Ue; Wed, 13 Dec 2023 11:08:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653922.1020555; Wed, 13 Dec 2023 11:08:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDN6o-0003dC-RZ; Wed, 13 Dec 2023 11:08:58 +0000
Received: by outflank-mailman (input) for mailman id 653922;
 Wed, 13 Dec 2023 11:08: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 1rDN6n-0003cy-6e; Wed, 13 Dec 2023 11:08: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 1rDN6n-0007JR-4o; Wed, 13 Dec 2023 11:08: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 1rDN6m-0007u3-O2; Wed, 13 Dec 2023 11:08:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDN6m-0001yA-NM; Wed, 13 Dec 2023 11: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=87bg8N4vdh/bBulC15uRvCBjb+ZfuDC70XiSHacxWhI=; b=SZeWFQHsjadwadA8c0dR5cWbvB
	DZrc8t5pYlOtdfwkswD2XscLEarusimPPYMmIQA/c4qjEPDY638ckKv9++WPOLGLmu8ci4CYkMRag
	AvnfWguGsEFZCwVsmD9L+iYA8wFQIJ8z1cVtkoSZVTLw83k0k+oVJXGGhjd7m+TrdMXo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184118-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184118: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=b8a3eec88cc74bbfe7fb389d026cc7d1d8a989c8
X-Osstest-Versions-That:
    ovmf=cee7ba349c0c1ce489001a338a4e28555728b573
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 13 Dec 2023 11:08:56 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 b8a3eec88cc74bbfe7fb389d026cc7d1d8a989c8
baseline version:
 ovmf                 cee7ba349c0c1ce489001a338a4e28555728b573

Last test of basis   184103  2023-12-12 11:11:06 Z    0 days
Testing same since   184118  2023-12-13 03:14:37 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abner Chang <abner.chang@amd.com>
  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    
 test-amd64-i386-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
   cee7ba349c..b8a3eec88c  b8a3eec88cc74bbfe7fb389d026cc7d1d8a989c8 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 11:26:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 11:26:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653946.1020565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDNNP-0000ow-Cv; Wed, 13 Dec 2023 11:26:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653946.1020565; Wed, 13 Dec 2023 11:26:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDNNP-0000op-97; Wed, 13 Dec 2023 11:26:07 +0000
Received: by outflank-mailman (input) for mailman id 653946;
 Wed, 13 Dec 2023 11:26: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=ptd6=HY=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1rDNNO-0000of-3S
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 11:26: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 64fd955c-99aa-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 12:26:01 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a1c7d8f89a5so901029066b.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 03:26:01 -0800 (PST)
Received: from rayden.urgonet (h-217-31-164-171.A175.priv.bahnhof.se.
 [217.31.164.171]) by smtp.gmail.com with ESMTPSA id
 ts7-20020a170907c5c700b00a1dd58874b8sm7598338ejc.119.2023.12.13.03.25.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 03:25:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64fd955c-99aa-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1702466760; x=1703071560; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=lSv7al3Ioe35SOHIiy2+HuhQYxNK3PVhXMdyK17ixcQ=;
        b=cyS684Wvn4pma1wDY36UuMC/E9oAS4p/wyZVDB0+HgCwwopLZsB0l6ZaogaijtW5mE
         4smyxQToWDYLc7RUrhxEPCrhLcE+Xt2p98c5zIVoSEUhSr/DCt+oyLDyeinyhNbdNest
         rozf+iWJ53OE7CufETFAtRIlgRlPOK91fMdOp4PQN/k6NmT036faa42hM60LaelQbECJ
         LOMP+ejWqwhH6am9PngU3efoQx3puNGah9plCvpQ6D7fSbSNg7mqYVQiBEgxuYskp+a6
         WYdoP2Y8gCSgawJQTYlIUbCxIQLnhqWyJR5i7If6/+DVEnFIMheIs3JX8LuEJgE/D79n
         37OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702466760; x=1703071560;
        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=lSv7al3Ioe35SOHIiy2+HuhQYxNK3PVhXMdyK17ixcQ=;
        b=AZ4Dm9mQ8IsGtIWC67QRjXvRceWJX0Z/IuLRLLBrg6HPOdyfVnE7IyXwctIyAwKaIk
         Fg9f0tC2ugbsHVN2lrJk7lEopdsEzCZCLFuCCQoieBcjgCJjCQEmVKLtsTfNnhTUOkWA
         wMtY9rjtdou1x/GghsUiO32/VXsCrajm9v1PzHfZdTjhuW2RMw7DVRwoh+9S7XuT8JJu
         +LBHx3d1rDSgqjPxX1foJOmAZ4KuQmmnoSGd6aTaaCooGFiiRR7mEWQkzlfkW+q4U269
         7gWIEKHzMycdpqXWNK62Pzqbv6NmJzrcauQmPuO0yK36pu/mp4oSeJ9RPmHI+jHByJPb
         M1gA==
X-Gm-Message-State: AOJu0YywTtxejSZX2REqbBUZknh6IkwmXV2Oil67WwzbiuKHRWV34mcE
	eT+T6sQ+yyewcz+R8DrCWzReFvRJkl9UdjOHB2I=
X-Google-Smtp-Source: AGHT+IF2mpvOWCSnE3je8vqy/ytHMm0uRzZ708JG3JngII+pAe4Glq70b9db9XLQkjX89yuGe1w12Q==
X-Received: by 2002:a17:907:d25:b0:a1f:6b64:6a52 with SMTP id gn37-20020a1709070d2500b00a1f6b646a52mr4963865ejc.43.1702466760443;
        Wed, 13 Dec 2023 03:26:00 -0800 (PST)
From: Jens Wiklander <jens.wiklander@linaro.org>
To: xen-devel@lists.xenproject.org
Cc: patches@linaro.org,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [XEN PATCH v2] xen/arm: ffa: reclaim shared memory on guest destroy
Date: Wed, 13 Dec 2023 12:25:57 +0100
Message-Id: <20231213112557.2393086-1-jens.wiklander@linaro.org>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When an FF-A enabled guest is destroyed it may leave behind memory
shared with SPs. This memory must be reclaimed before it's reused or an
SP may make changes to memory used by a new unrelated guest. So when the
domain is teared down add FF-A requests to reclaim all remaining shared
memory.

SPs in the secure world are notified using VM_DESTROYED that a guest has
been destroyed. An SP is supposed to relinquish all shared memory to allow
reclaiming the memory. The relinquish operation may need to be delayed if
the shared memory is for instance part of a DMA operation.

The domain reference counter is increased when the first FF-A shared
memory is registered and the counter is decreased again when the last
shared memory is reclaimed. If FF-A shared memory registrations remain
at the end of of ffa_domain_teardown() a timer is set to try to reclaim
the shared memory every second until the memory is reclaimed.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Hi,

This is a follow-up to the RFC patch. In this patch, I take an explicit
reference on the domain when FF-A shared memory is registered. I've
discovered that it might not be strictly necessary until all the shared
pages are released with put_page() they also keep a reference to the
domain.

I'm not entirely sure what is the status of the shared memory when the
domain has turned into a zombie. We still hold references on the shared
pages until put_page() is called on each. Is that enough to guarantee that
they will not be reused?

Thanks,
Jens

v2:
- Update commit message to match the new implementation
- Using a per domain bitfield to keep track of which SPs has been notified
  with VM_DESTROYED
- Holding a domain reference counter to keep the domain as a zombie domain
  while there still is shared memory registrations remaining to be reclaimed
- Using a timer to retry reclaiming remaining shared memory registrations

---
 xen/arch/arm/tee/ffa.c | 270 ++++++++++++++++++++++++++++++++++-------
 1 file changed, 224 insertions(+), 46 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 183528d13388..22906a6e1cff 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -54,6 +54,7 @@
 #include <xen/mm.h>
 #include <xen/sched.h>
 #include <xen/sizes.h>
+#include <xen/timer.h>
 #include <xen/types.h>
 
 #include <asm/event.h>
@@ -384,11 +385,6 @@ struct ffa_ctx {
     unsigned int page_count;
     /* FF-A version used by the guest */
     uint32_t guest_vers;
-    /*
-     * Number of SPs that we have sent a VM created signal to, used in
-     * ffa_domain_teardown() to know which SPs need to be signalled.
-     */
-    uint16_t create_signal_count;
     bool rx_is_free;
     /* Used shared memory objects, struct ffa_shm_mem */
     struct list_head shm_list;
@@ -402,6 +398,15 @@ struct ffa_ctx {
     spinlock_t tx_lock;
     spinlock_t rx_lock;
     spinlock_t lock;
+    /* Used if domain can't be teared down immediately */
+    struct domain *teardown_d;
+    struct list_head teardown_list;
+    s_time_t teardown_expire;
+    /*
+     * Used for ffa_domain_teardown() to keep track of which SPs should be
+     * notified that this guest is being destroyed.
+     */
+    unsigned long vm_destroy_bitmap[];
 };
 
 struct ffa_shm_mem {
@@ -436,6 +441,12 @@ static void *ffa_tx __read_mostly;
 static DEFINE_SPINLOCK(ffa_rx_buffer_lock);
 static DEFINE_SPINLOCK(ffa_tx_buffer_lock);
 
+
+/* Used if domain can't be teared down immediately */
+static struct timer ffa_teardown_timer;
+static struct list_head ffa_teardown_head;
+static DEFINE_SPINLOCK(ffa_teardown_lock);
+
 static bool ffa_get_version(uint32_t *vers)
 {
     const struct arm_smccc_1_2_regs arg = {
@@ -850,7 +861,6 @@ static int32_t handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
             goto out_rx_release;
         }
 
-
         memcpy(ctx->rx, ffa_rx, sz);
     }
     ctx->rx_is_free = false;
@@ -989,53 +999,75 @@ static void put_shm_pages(struct ffa_shm_mem *shm)
     }
 }
 
-static bool inc_ctx_shm_count(struct ffa_ctx *ctx)
+static bool inc_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
 {
     bool ret = true;
 
     spin_lock(&ctx->lock);
+
+    /*
+     * If this is the first shm added, increase the domain reference
+     * counter as we may need to domain around a bit longer to reclaim the
+     * shared memory in the teardown path.
+     */
+    if ( !ctx->shm_count )
+        get_knownalive_domain(d);
+
     if (ctx->shm_count >= FFA_MAX_SHM_COUNT)
         ret = false;
     else
         ctx->shm_count++;
+
     spin_unlock(&ctx->lock);
 
     return ret;
 }
 
-static void dec_ctx_shm_count(struct ffa_ctx *ctx)
+static void dec_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
 {
     spin_lock(&ctx->lock);
+
     ASSERT(ctx->shm_count > 0);
     ctx->shm_count--;
+
+    /*
+     * If this was the last shm removed, let go of the domain reference we
+     * took in inc_ctx_shm_count() above.
+     */
+    if ( !ctx->shm_count )
+        put_domain(d);
+
     spin_unlock(&ctx->lock);
 }
 
-static struct ffa_shm_mem *alloc_ffa_shm_mem(struct ffa_ctx *ctx,
+static struct ffa_shm_mem *alloc_ffa_shm_mem(struct domain *d,
                                              unsigned int page_count)
 {
+    struct ffa_ctx *ctx = d->arch.tee;
     struct ffa_shm_mem *shm;
 
     if ( page_count >= FFA_MAX_SHM_PAGE_COUNT )
         return NULL;
-    if ( !inc_ctx_shm_count(ctx) )
+    if ( !inc_ctx_shm_count(d, ctx) )
         return NULL;
 
     shm = xzalloc_flex_struct(struct ffa_shm_mem, pages, page_count);
     if ( shm )
         shm->page_count = page_count;
     else
-        dec_ctx_shm_count(ctx);
+        dec_ctx_shm_count(d, ctx);
 
     return shm;
 }
 
-static void free_ffa_shm_mem(struct ffa_ctx *ctx, struct ffa_shm_mem *shm)
+static void free_ffa_shm_mem(struct domain *d, struct ffa_shm_mem *shm)
 {
+    struct ffa_ctx *ctx = d->arch.tee;
+
     if ( !shm )
         return;
 
-    dec_ctx_shm_count(ctx);
+    dec_ctx_shm_count(d, ctx);
     put_shm_pages(shm);
     xfree(shm);
 }
@@ -1303,7 +1335,7 @@ static void handle_mem_share(struct cpu_user_regs *regs)
         goto out_unlock;
     }
 
-    shm = alloc_ffa_shm_mem(ctx, page_count);
+    shm = alloc_ffa_shm_mem(d, page_count);
     if ( !shm )
     {
         ret = FFA_RET_NO_MEMORY;
@@ -1347,7 +1379,7 @@ static void handle_mem_share(struct cpu_user_regs *regs)
 
 out:
     if ( ret )
-        free_ffa_shm_mem(ctx, shm);
+        free_ffa_shm_mem(d, shm);
 out_unlock:
     spin_unlock(&ctx->tx_lock);
 
@@ -1398,7 +1430,7 @@ static int handle_mem_reclaim(uint64_t handle, uint32_t flags)
     }
     else
     {
-        free_ffa_shm_mem(ctx, shm);
+        free_ffa_shm_mem(d, shm);
     }
 
     return ret;
@@ -1481,6 +1513,41 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     }
 }
 
+static bool is_in_subscr_list(const uint16_t *subscr, uint16_t start,
+                              uint16_t end, uint16_t sp_id)
+{
+    unsigned int n;
+
+    for ( n = start; n < end; n++ )
+    {
+        if ( subscr[n] == sp_id )
+            return true;
+    }
+
+    return false;
+}
+
+static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
+                                   unsigned int create_signal_count)
+{
+    unsigned int n;
+
+    for ( n = 0; n < subscr_vm_destroyed_count; n++ )
+    {
+        /*
+         * Skip SPs subscribed to the VM created event that never was
+         * notified of the VM creation due to an error during
+         * ffa_domain_init().
+         */
+        if ( is_in_subscr_list(subscr_vm_created, create_signal_count,
+                               subscr_vm_created_count,
+                               subscr_vm_destroyed[n]) )
+            continue;
+
+        set_bit(n, ctx->vm_destroy_bitmap);
+    }
+}
+
 static int ffa_domain_init(struct domain *d)
 {
     struct ffa_ctx *ctx;
@@ -1496,11 +1563,14 @@ static int ffa_domain_init(struct domain *d)
     if ( d->domain_id >= UINT16_MAX)
         return -ERANGE;
 
-    ctx = xzalloc(struct ffa_ctx);
+    ctx = xzalloc_flex_struct(struct ffa_ctx, vm_destroy_bitmap,
+                              BITS_TO_LONGS(subscr_vm_destroyed_count));
     if ( !ctx )
         return -ENOMEM;
 
     d->arch.tee = ctx;
+    ctx->teardown_d = d;
+    INIT_LIST_HEAD(&ctx->shm_list);
 
     for ( n = 0; n < subscr_vm_created_count; n++ )
     {
@@ -1510,64 +1580,169 @@ static int ffa_domain_init(struct domain *d)
         {
             printk(XENLOG_ERR "ffa: Failed to report creation of vm_id %u to  %u: res %d\n",
                    get_vm_id(d), subscr_vm_created[n], res);
-            ctx->create_signal_count = n;
+            vm_destroy_bitmap_init(ctx, n);
             return -EIO;
         }
     }
-    ctx->create_signal_count = subscr_vm_created_count;
-
-    INIT_LIST_HEAD(&ctx->shm_list);
+    vm_destroy_bitmap_init(ctx, subscr_vm_created_count);
 
     return 0;
 }
 
-static bool is_in_subscr_list(const uint16_t *subscr, uint16_t start,
-                              uint16_t end, uint16_t sp_id)
+static void send_vm_destroyed(struct domain *d)
 {
+    struct ffa_ctx *ctx = d->arch.tee;
     unsigned int n;
+    int32_t res;
 
-    for ( n = start; n < end; n++ )
+    for ( n = 0; n < subscr_vm_destroyed_count; n++ )
     {
-        if ( subscr[n] == sp_id )
-            return true;
-    }
+        if ( !test_bit(n, ctx->vm_destroy_bitmap) )
+            continue;
 
-    return false;
+        res = ffa_direct_req_send_vm(subscr_vm_destroyed[n], get_vm_id(d),
+                                     FFA_MSG_SEND_VM_DESTROYED);
+
+        if ( res )
+        {
+            printk(XENLOG_ERR "%pd: ffa: Failed to report destruction of vm_id %u to %u: res %d\n",
+                   d, get_vm_id(d), subscr_vm_destroyed[n], res);
+        }
+        else
+        {
+            clear_bit(n, ctx->vm_destroy_bitmap);
+        }
+    }
 }
 
-/* This function is supposed to undo what ffa_domain_init() has done */
-static int ffa_domain_teardown(struct domain *d)
+static void reclaim_shms(struct domain *d)
 {
     struct ffa_ctx *ctx = d->arch.tee;
-    unsigned int n;
+    struct ffa_shm_mem *shm, *tmp;
     int32_t res;
 
+    list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
+    {
+        register_t handle_hi;
+        register_t handle_lo;
+
+        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
+        res = ffa_mem_reclaim(handle_lo, handle_hi, 0);
+        if ( res )
+        {
+            printk(XENLOG_G_INFO "%pd: ffa: Failed to reclaim handle %#lx : %d\n",
+                   d, shm->handle, res);
+        }
+        else
+        {
+            printk(XENLOG_G_DEBUG "%pd: ffa: Reclaimed handle %#lx\n",
+                   d, shm->handle);
+            list_del(&shm->list);
+            free_ffa_shm_mem(d, shm);
+        }
+    }
+}
+
+static bool ffa_domain_teardown_continue(struct ffa_ctx *ctx)
+{
+    send_vm_destroyed(ctx->teardown_d);
+    reclaim_shms(ctx->teardown_d);
+
+    if ( ctx->shm_count )
+    {
+        printk(XENLOG_G_INFO "%pd: ffa: Remaining unclaimed handles, retrying\n", ctx->teardown_d);
+        return false;
+    }
+    else
+    {
+        return true;
+    }
+}
+
+static void ffa_teardown_timer_callback(void *arg)
+{
+    struct ffa_ctx *ctx;
+    bool do_free;
+
+    spin_lock(&ffa_teardown_lock);
+    ctx = list_first_entry_or_null(&ffa_teardown_head, struct ffa_ctx,
+                                   teardown_list);
+    spin_unlock(&ffa_teardown_lock);
+
     if ( !ctx )
-        return 0;
+    {
+        printk(XENLOG_G_ERR "%s: teardown list is empty\n", __func__);
+        return;
+    }
 
-    for ( n = 0; n < subscr_vm_destroyed_count; n++ )
+    do_free = ffa_domain_teardown_continue(ctx);
+
+    spin_lock(&ffa_teardown_lock);
+    list_del(&ctx->teardown_list);
+    if ( !do_free )
+    {
+        ctx->teardown_expire = NOW() + SECONDS(1);
+        list_add_tail(&ctx->teardown_list, &ffa_teardown_head);
+    }
+    spin_unlock(&ffa_teardown_lock);
+
+    if ( do_free )
     {
         /*
-         * Skip SPs subscribed to the VM created event that never was
-         * notified of the VM creation due to an error during
-         * ffa_domain_init().
+         * domain_destroy() has likely been called (via put_domain() in
+         * reclaim_shms()) by now, so we can't touch the domain
+         * structure anymore.
          */
-        if ( is_in_subscr_list(subscr_vm_created, ctx->create_signal_count,
-                               subscr_vm_created_count,
-                               subscr_vm_destroyed[n]) )
-            continue;
+        xfree(ctx);
+    }
 
-        res = ffa_direct_req_send_vm(subscr_vm_destroyed[n], get_vm_id(d),
-                                     FFA_MSG_SEND_VM_DESTROYED);
+    spin_lock(&ffa_teardown_lock);
+    ctx = list_first_entry_or_null(&ffa_teardown_head, struct ffa_ctx,
+                                   teardown_list);
+    spin_unlock(&ffa_teardown_lock);
 
-        if ( res )
-            printk(XENLOG_ERR "ffa: Failed to report destruction of vm_id %u to  %u: res %d\n",
-                   get_vm_id(d), subscr_vm_destroyed[n], res);
-    }
+    if ( ctx )
+        set_timer(&ffa_teardown_timer, ctx->teardown_expire);
+}
+
+static void ffa_queue_ctx_teardown(struct ffa_ctx *ctx)
+{
+    ctx->teardown_expire =  NOW() + SECONDS(1);
+
+    spin_lock(&ffa_teardown_lock);
+
+    /*
+     * The timer is already active if there are queued teardown entries.
+     */
+    if ( list_empty(&ffa_teardown_head) )
+        set_timer(&ffa_teardown_timer, ctx->teardown_expire);
+
+    list_add_tail(&ctx->teardown_list, &ffa_teardown_head);
+
+    spin_unlock(&ffa_teardown_lock);
+}
+
+/* This function is supposed to undo what ffa_domain_init() has done */
+static int ffa_domain_teardown(struct domain *d)
+{
+    struct ffa_ctx *ctx = d->arch.tee;
+
+    if ( !ctx )
+        return 0;
 
     if ( ctx->rx )
         rxtx_unmap(ctx);
 
+    send_vm_destroyed(d);
+    reclaim_shms(d);
+
+    if ( ctx->shm_count )
+    {
+        printk(XENLOG_G_INFO "%pd: ffa: Remaining unclaimed handles, retrying\n", d);
+        ffa_queue_ctx_teardown(ctx);
+        return 0;
+    }
+
     XFREE(d->arch.tee);
 
     return 0;
@@ -1733,6 +1908,9 @@ static bool ffa_probe(void)
     if ( !init_sps() )
         goto err_free_ffa_tx;
 
+    INIT_LIST_HEAD(&ffa_teardown_head);
+    init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0);
+
     return true;
 
 err_free_ffa_tx:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 11:26:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 11:26:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653947.1020574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDNNQ-00013b-Jx; Wed, 13 Dec 2023 11:26:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653947.1020574; Wed, 13 Dec 2023 11:26:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDNNQ-00013U-Go; Wed, 13 Dec 2023 11:26:08 +0000
Received: by outflank-mailman (input) for mailman id 653947;
 Wed, 13 Dec 2023 11:26:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6bXc=HY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDNNP-0000of-6R
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 11:26:07 +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 65ebc7a7-99aa-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 12:26:03 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-55193d5e8cdso1961513a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 03:26:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ts7-20020a170907c5c700b00a1b65cd1957sm7638756ejc.107.2023.12.13.03.26.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 03:26:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65ebc7a7-99aa-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702466762; x=1703071562; 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=MVhMZ95mKAlr6aDCNvbsUi8vylkupgWDWrbedv2GG0I=;
        b=Z4O7u2g0lt3zrLrxmGu/DiYfNrHoRjBW3/AcGXWvq5vftWU9xzIur6sOfdK8XH3/7q
         c72s6fbjbnVlYi94ewJn/pzt11cNlld22WF76W7OQqRXtRFaac394F+vD/m/VAW7FW4e
         N6cwpzrZxLdFmJhxpw6f9VOjXOXVJqPtYcMEpYaFPVd7lSj+iKqxTT0KfwNF3yJEqczr
         3LFMEL6lr2T7Yk0QydPm3LqRBIOSS02Z/jbrQ55ra8zKvWtCz+nQ+XFpmy3fy2xXuQvJ
         jI7bmiDXs3pzGtM2pm3mFHt0XzKp1JaKtbMb8sJKnfqTH2F0AF4sQelAG6tLEJiCGVem
         44eQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702466762; x=1703071562;
        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=MVhMZ95mKAlr6aDCNvbsUi8vylkupgWDWrbedv2GG0I=;
        b=gm4T+wPoNOh6s1I2PrTiE/CWwXmariQ5Ee06gH5KXRalXdZ/OYc4WhdUmJdmckR/GQ
         HNI7/0AJqoLpixZBsxK3eIwTl43LBhNH15jSwAeeMZI50X1wrubXjaIlGt3vG+ip5EWH
         Gtkb1AjBVKloPu4w08NKUV9SqD39DzoeBicJcxS14KTRy9WyVZHXkV/kQ5UPiWQZZh03
         tSXipvkiv9nOGAsAzvXaQru7ulIBXWWPvZabXP0qicm75TFxkbyWiwt2kd3NJQKRk61i
         9aSa2EpzxWoxSOjwa2PSt3r0JJbYkQplt4jWUZyed3WpsSqkFhmLzD3YQWN5S3z5p/Tj
         +HHA==
X-Gm-Message-State: AOJu0YzqvhI+ysWyTALiCHvqdBFQdDjrdU9YFhKnozDRW4d+CkmiXzrU
	QgrhN9kWu1T92h+d6zqxdX1l+ElDcau76SXClCQE
X-Google-Smtp-Source: AGHT+IHT0CAZPqcxNSN3/ppz+SV9gI3cYozYKrzLUMPTC/lpm/ea9bFzG+005QW2YXXFAp7Y184vcw==
X-Received: by 2002:a17:906:5197:b0:a1f:8159:614f with SMTP id y23-20020a170906519700b00a1f8159614fmr3655603ejk.137.1702466762473;
        Wed, 13 Dec 2023 03:26:02 -0800 (PST)
Message-ID: <6505090e-8961-47ca-9726-0271c25bf2f8@suse.com>
Date: Wed, 13 Dec 2023 12:26:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 George Dunlap <george.dunlap@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] smp: move cpu_is_offline() definition
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

It's all the same for the 3 arch-es which have it, and RISC-V would
introduce a 4th instance. Put it in xen/smp.h instead, while still
permitting asm/smp.h to define a custom variant if need be.

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

--- a/xen/arch/arm/include/asm/smp.h
+++ b/xen/arch/arm/include/asm/smp.h
@@ -12,8 +12,6 @@ extern unsigned long smp_up_cpu;
 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_mask);
 DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
 
-#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
-
 /*
  * Do we, for platform reasons, need to actually keep CPUs online when we
  * would otherwise prefer them to be off?
--- a/xen/arch/ppc/include/asm/smp.h
+++ b/xen/arch/ppc/include/asm/smp.h
@@ -7,8 +7,6 @@
 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_mask);
 DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
 
-#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
-
 /*
  * Do we, for platform reasons, need to actually keep CPUs online when we
  * would otherwise prefer them to be off?
--- a/xen/arch/x86/include/asm/smp.h
+++ b/xen/arch/x86/include/asm/smp.h
@@ -43,7 +43,6 @@ extern u32 x86_cpu_to_apicid[];
 
 #define cpu_physical_id(cpu)	x86_cpu_to_apicid[cpu]
 
-#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
 extern void cpu_exit_clear(unsigned int cpu);
 extern void cpu_uninit(unsigned int cpu);
 int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t pxm);
--- a/xen/include/xen/smp.h
+++ b/xen/include/xen/smp.h
@@ -3,6 +3,10 @@
 
 #include <asm/smp.h>
 
+#ifndef cpu_is_offline
+#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
+#endif
+
 /*
  * stops all CPUs but the current one:
  */


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 11:40:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 11:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653955.1020585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDNbP-0005SC-Je; Wed, 13 Dec 2023 11:40:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653955.1020585; Wed, 13 Dec 2023 11:40:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDNbP-0005S5-Gv; Wed, 13 Dec 2023 11:40:35 +0000
Received: by outflank-mailman (input) for mailman id 653955;
 Wed, 13 Dec 2023 11:40:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W+hD=HY=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rDNbN-0005Rz-JG
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 11:40:33 +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 6c20ffc5-99ac-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 12:40:32 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2c9f572c4c5so101936861fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 03:40:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c20ffc5-99ac-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702467632; x=1703072432; 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=GbCoC5hTxmsD9+C7j2qIyyBRKnNV3el4/6uZNw9lgBc=;
        b=BGsLPCpIPTnwN3GZ4dlR087KVxAeIZIyyp/Y96xW1JMXGkxEKaeM3ILSYx/UbHSHge
         kuENwbbwbQHKdvsdtie3VbvaOeSNeuBJTAeISKsQ53UGum1jv+xLZ2aIm8b97DcjEw3Y
         qy6Y92d4Go1E2LQxdeOgZwWYPe/TWVdW6+u1Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702467632; x=1703072432;
        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=GbCoC5hTxmsD9+C7j2qIyyBRKnNV3el4/6uZNw9lgBc=;
        b=tcP8VbSJ12DKW/AhrTQSRzzb8qUXkfT50Kb4cUJfmMlllxx421a+VuV5ley0F3XJZ5
         MdPGUr6jmHdbSJ6YiDFQehbaaOZHZTpn72pUVSVRukZl6O4GeSV1UART2f8Ld58zPTus
         VMdhDD5svXYtjmaHqHuW7p1NNTzgWHwsa+nOuHPvAmWwrlF/rycxvaxafc3+hv3T+Rdr
         onWNnBYZLWxWE8BXp+UC4q36c8T3BtFGn6PJfaWCcl6PwU5V1kZgA2mSxppD2rdyOAVq
         tLJiA56hOV2QHAGV4y+wzq45aFjEfjziFQ7fBs19U1d7zYwP0Aq56q+mWT65Hel8qvM4
         vg9Q==
X-Gm-Message-State: AOJu0YxBj2DXwzowLaB9gIdLQvzffJpJYpoCxTi/TiRMS2KYa34Z2TS7
	zukShV9rTa1Mbzs+8wDGigZG7G9vllxilmf9f5I2KA==
X-Google-Smtp-Source: AGHT+IFY2Sog5cENVzgUpEoRKS09COuOXOL/DO+lypPO+Dua/pH07uEMjaMjaFLYjLpdhkhOWgk6lPgIJDAawnEouK8=
X-Received: by 2002:a2e:98d0:0:b0:2ca:24f9:c55e with SMTP id
 s16-20020a2e98d0000000b002ca24f9c55emr3610170ljj.45.1702467631807; Wed, 13
 Dec 2023 03:40:31 -0800 (PST)
MIME-Version: 1.0
References: <6505090e-8961-47ca-9726-0271c25bf2f8@suse.com>
In-Reply-To: <6505090e-8961-47ca-9726-0271c25bf2f8@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Wed, 13 Dec 2023 11:40:20 +0000
Message-ID: <CA+zSX=Yupx6bEQLTViY=CCV1N2vNdsW7UX-QtPgznjfeH_R5yg@mail.gmail.com>
Subject: Re: [PATCH] smp: move cpu_is_offline() definition
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Shawn Anastasio <sanastasio@raptorengineering.com>, 
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 13, 2023 at 11:26=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> It's all the same for the 3 arch-es which have it, and RISC-V would
> introduce a 4th instance. Put it in xen/smp.h instead, while still
> permitting asm/smp.h to define a custom variant if need be.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: George Dunlap <george.dunlap@cloud.com>


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 11:44:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 11:44:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653958.1020595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDNfB-0006o4-3R; Wed, 13 Dec 2023 11:44:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653958.1020595; Wed, 13 Dec 2023 11: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 1rDNfB-0006nx-02; Wed, 13 Dec 2023 11:44:29 +0000
Received: by outflank-mailman (input) for mailman id 653958;
 Wed, 13 Dec 2023 11:44: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=jVlV=HY=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rDNfA-0006nr-8G
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 11:44:28 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f777e563-99ac-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 12:44:26 +0100 (CET)
Received: from [192.168.1.15] (host-82-60-45-193.retail.telecomitalia.it
 [82.60.45.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 9C0B44EE0737;
 Wed, 13 Dec 2023 12:44:25 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f777e563-99ac-11ee-9b0f-b553b5be7939
Message-ID: <9de5ec9d-1ebd-4fa9-89d4-e962d7c377e0@bugseng.com>
Date: Wed, 13 Dec 2023 12:44:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US, it
To: 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>,
 xen-devel@lists.xenproject.org,
 "consulting@bugseng.com" <consulting@bugseng.com>
From: Federico Serafini <federico.serafini@bugseng.com>
Subject: X86: MISRA C:2012 Rule 5.6
Organization: BUGSENG srl
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello everyone,

I have another question regarding Rule 5.6 ("A `typedef' name shall be
a unique identifier"), this time for X86:
the violations left [1] involve guest_intpte_t, guest_l1e_t and
guest_l2e_t, which seem to be deliberately defined differently depending
on the number of guest paging levels.
I would like to propose a deviation for these types, do you agree?

[1]
https://saas.eclairit.com:3787/fs/var/local/eclair/XEN.ecdf/ECLAIR_normal/staging/X86_64-2023/446/PROJECT.ecd;/by_service/MC3R1.R5.6.html

Regards
-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 12:12:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 12:12:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653983.1020605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDO62-0004ds-Tz; Wed, 13 Dec 2023 12:12:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653983.1020605; Wed, 13 Dec 2023 12:12:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDO62-0004dl-RB; Wed, 13 Dec 2023 12:12:14 +0000
Received: by outflank-mailman (input) for mailman id 653983;
 Wed, 13 Dec 2023 12:12:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IrFR=HY=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDO60-0004cb-UP
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 12:12:12 +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 d7a491d6-99b0-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 13:12:10 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-33635d11d92so855171f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 04:12:10 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 k2-20020a5d6282000000b003363432c0ffsm3429132wru.113.2023.12.13.04.12.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 04:12:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7a491d6-99b0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702469530; x=1703074330; 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=1+N4toHCJ10eN7beh/9j8TkfnPseGcXj+HseAP1tdBY=;
        b=kqyL0jRTgtuQ9KRBmOtY5TwO7YKc9qVBq+v28E/7kDHa2oh37xIvjWi99J7gk7eWi1
         paYQdLTFJVXkass0EZ0DkJCcVQXnWEBNbzaLOsZhtS2jsPHQ9Pxoo38uxi6nDk8miY5u
         IY2r3GDwtmILUUZchmCn9w01NLh9CAEDi/S7k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702469530; x=1703074330;
        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=1+N4toHCJ10eN7beh/9j8TkfnPseGcXj+HseAP1tdBY=;
        b=bzPZ+borgUfwWbJ4Fr9CL86KWCybB3Wsu291h6U0EUgc2iTB/EP7MlsC41+Pc4boLr
         YhTC71sbeoxXeSq7pPiIUjVhVR4ycvmxXMK4RBxTSbkAqPKfOU2YUp+fKCDL7B/H0iJi
         cbt4yW0h4LASy+kln8bzZ/KO1YLiUSIJGZU0oZZrkFET/iNQ4DgrI652HkDOJ1T2Z07d
         TUZnggpcpwYqDoV5la7xK70Lh4fY1lmQsLLbRbR00GCPBtbBPw5RqcnBSycbgmyUv74C
         4a7BRkhwQc0tPZicZLINqWp1Bl0ssPrQW05D7a+iYWp5DubOdiXhpUZNQ918wcaKDITR
         CFDg==
X-Gm-Message-State: AOJu0Yyv6Q2d5Io76bsUOUfl+1XAAK9cEzh4i9ZZhr7NXsu5cyAgmYoh
	dYz80O+xHbjGUX3lhAeXbfPzig==
X-Google-Smtp-Source: AGHT+IEXQImdxtidsySE8Dvo4Qp275qPuasc4MbJLcUoaLv3rryHkHfFfLlFqk21Zhh1xtU9nWcpFQ==
X-Received: by 2002:adf:fd08:0:b0:333:43a2:2caf with SMTP id e8-20020adffd08000000b0033343a22cafmr4973429wrr.14.1702469530209;
        Wed, 13 Dec 2023 04:12:10 -0800 (PST)
Date: Wed, 13 Dec 2023 13:12:09 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Message-ID: <ZXmfmbb4S8Iuy7si@macbook>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-4-Jiqian.Chen@amd.com>
 <ZXdNf0HWs4nAVPeF@macbook>
 <BL1PR12MB584910C2E370BBCC8A312733E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXglU0EtBrRNiWVp@macbook>
 <BL1PR12MB584973D751EB57C3DE766AEEE78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB584973D751EB57C3DE766AEEE78DA@BL1PR12MB5849.namprd12.prod.outlook.com>

On Wed, Dec 13, 2023 at 03:31:21AM +0000, Chen, Jiqian wrote:
> On 2023/12/12 17:18, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 12, 2023 at 06:34:27AM +0000, Chen, Jiqian wrote:
> >>
> >> On 2023/12/12 01:57, Roger Pau MonnÃ© wrote:
> >>> On Mon, Dec 11, 2023 at 12:15:19AM +0800, Jiqian Chen wrote:
> >>>> There is a need for some scenarios to use gsi sysfs.
> >>>> For example, when xen passthrough a device to dumU, it will
> >>>> use gsi to map pirq, but currently userspace can't get gsi
> >>>> number.
> >>>> So, add gsi sysfs for that and for other potential scenarios.
> >>>>
> >>>> Co-developed-by: Huang Rui <ray.huang@amd.com>
> >>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >>>> ---
> >>>>  drivers/acpi/pci_irq.c  |  1 +
> >>>>  drivers/pci/pci-sysfs.c | 11 +++++++++++
> >>>>  include/linux/pci.h     |  2 ++
> >>>>  3 files changed, 14 insertions(+)
> >>>>
> >>>> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> >>>> index 630fe0a34bc6..739a58755df2 100644
> >>>> --- a/drivers/acpi/pci_irq.c
> >>>> +++ b/drivers/acpi/pci_irq.c
> >>>> @@ -449,6 +449,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
> >>>>  		kfree(entry);
> >>>>  		return 0;
> >>>>  	}
> >>>> +	dev->gsi = gsi;
> >>>
> >>> It would be better if the gsi if fetched without requiring calling
> >>> acpi_pci_irq_enable(), as the gsi doesn't require the interrupt to be
> >>> enabled.  The gsi is known at boot time and won't change for the
> >>> lifetime of the device.
> >> Do you have any suggest places to do this?
> > 
> > I'm not an expert on this, but drivers/pci/pci-sysfs.c would seem like
> > a better place, together with the rest of the resources.
> I'm not familiar with this too. But it seems pci-sysfs.c only creates sysfs node and supports the read/write method without initializing the values.
> If want to initialize the value of gsi here. An approach to initialize it is to call acpi_pci_irq_lookup to get gsi number when the first time it is read?

Hm, maybe, I don't really have much experience with sysfs, so don't
know how nodes are usually initialized.

> > 
> > Maybe my understanding is incorrect, but given the suggested placement
> > in acpi_pci_irq_enable() I think the device would need to bind the
> > interrupt in order for the gsi node to appear on sysfs?
> No, gsi sysfs has existed there, in acpi_pci_irq_enable is to initialize the value of gsi.
> 
> > 
> > Would the current approach work if the device is assigned to pciback
> > on the kernel command line, and thus never owned by any driver in
> > dom0?
> If assigned to pciback, I think pciback will enable the device, and then acpi_pci_irq_enable will be called, and then the gsi will be initialized. So, current can work.

This needs checking to be sure, I'm certainly not that familiar.  You
would need to at least test that it works properly when the device is
hidden using xen-pciback.hide=(SBDF) in the Linux kernel command line.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 12:59:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 12:59:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.653995.1020615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDOpB-0004DN-Fr; Wed, 13 Dec 2023 12:58:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 653995.1020615; Wed, 13 Dec 2023 12: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 1rDOpB-0004DG-BE; Wed, 13 Dec 2023 12:58:53 +0000
Received: by outflank-mailman (input) for mailman id 653995;
 Wed, 13 Dec 2023 12: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 1rDOpA-0004D6-34; Wed, 13 Dec 2023 12: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 1rDOp9-0000p3-VA; Wed, 13 Dec 2023 12:58: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 1rDOp9-00061Z-HD; Wed, 13 Dec 2023 12:58:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDOp9-0006VT-Gg; Wed, 13 Dec 2023 12: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:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=rUYqboqh9H6ShBxhjVoFxNJ27v983gBEfgHKNslHAbE=; b=g32OYXKT94AgAYE417EK0VLGFa
	FlFZF+zXzXkzlakhlOQ33XR73TywtGOZO+/bOyT9S/Gv7bF/0F52YlhnND3K6QgsjXmpQnDyJcUsf
	gnn/vOd7ijk1getVCIq+nEqFk0jKeiRGrZvc6WRaFFXF35TEQ8chYt+O4RRdh5UvSwWI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184122-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184122: 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=666e3c294d50e4a7f87a4d22757b7ffe5863b4df
X-Osstest-Versions-That:
    xen=a6a8fe0eb177ca27c9155177e7e60c13fc46e5f6
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 13 Dec 2023 12:58:51 +0000

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

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                  666e3c294d50e4a7f87a4d22757b7ffe5863b4df
baseline version:
 xen                  a6a8fe0eb177ca27c9155177e7e60c13fc46e5f6

Last test of basis   184112  2023-12-12 18:02:28 Z    0 days
Testing same since   184122  2023-12-13 10:02:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@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
   a6a8fe0eb1..666e3c294d  666e3c294d50e4a7f87a4d22757b7ffe5863b4df -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 13:06:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 13:06:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654000.1020624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDOwW-0006bs-4X; Wed, 13 Dec 2023 13:06:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654000.1020624; Wed, 13 Dec 2023 13:06:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDOwW-0006bl-1x; Wed, 13 Dec 2023 13:06:28 +0000
Received: by outflank-mailman (input) for mailman id 654000;
 Wed, 13 Dec 2023 13:06: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=Y/PY=HY=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rDOwU-0006bf-0q
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 13:06:26 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20601.outbound.protection.outlook.com
 [2a01:111:f400:7eae::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 68278693-99b8-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 14:06:20 +0100 (CET)
Received: from DM6PR02CA0084.namprd02.prod.outlook.com (2603:10b6:5:1f4::25)
 by BY5PR12MB4871.namprd12.prod.outlook.com (2603:10b6:a03:1d1::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec
 2023 13:06:16 +0000
Received: from CY4PEPF0000EDD5.namprd03.prod.outlook.com
 (2603:10b6:5:1f4:cafe::99) by DM6PR02CA0084.outlook.office365.com
 (2603:10b6:5:1f4::25) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26 via Frontend
 Transport; Wed, 13 Dec 2023 13:06:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EDD5.mail.protection.outlook.com (10.167.241.209) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 13:06:16 +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.34; Wed, 13 Dec
 2023 07:06:12 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Wed, 13 Dec 2023 07:06:11 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 68278693-99b8-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mk0JkhQEeLSO2IAADrw98R0MSkJxuhOBXpB65Ey1sdNNo0ztKCeZKHSG+iVVvc4GEyqlLoprOrRom1n+DGgjmbhuQtd6ybs3UroVLcvlgEwV6DEP39xcpsBZzPmRgUAYAxjZGO3zBcmsseWeif+zwGPw8uGdFMaiBWCVl+v89qdEVBME67XsxDdz1xejoCU20sXOCAFwwvbQsz4oca3CFmLNzr/XRfqD9luIindbsBE8T9PxWPyA3AZo6fz4bgaYmrv2nrPeOsvgLpX2GzOOh5FjORjne3TnJmbVmU+fpiGU2XWbgLe2difwAnaiqoBNbUcsKHzAZYjm8pBx6ULEWQ==
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=ZJ8xRrHr9x3n9TjjgIiNwbuD/ioa+Thq+NJC8Urfb0c=;
 b=EYTVc1NmceQNXhs7iQ2Zx8umBV3Ze9I/F4tZ2PutU75QBufqvNy/uHD4P2YIdPfSzP9IOgOwUeHVqKVN5Y415JPDs1ZTc7wKPdxKQOiY6OmPhCXhCgC30cJgFR1ao1d6GkDHI6KpqX7nyP2BEbQ0DTFrOUC63Be8ph6iUEkuFdZROn4KqDbXiIenEKl5NwhxiDtLkAiYtuQTRTIw0Z6xg9Hqiysk226xD4mvKf8UsvEco4J4o8KgPRR7g/AevjpxzS3c9MKLJhJESgvCXSPIOgJeB+xkJZ3Y1KK9CZyKOASos/2NvTJNpS7vUXHWizz75Ho7tF2PMeeRNI8bimoKcQ==
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=ZJ8xRrHr9x3n9TjjgIiNwbuD/ioa+Thq+NJC8Urfb0c=;
 b=egIAq3ppCyJ4ixN/j9v2EV965c3XqeNV3lZy5VZXdA8L3ZTcShBU53jwuzzf10YL/Un2fP84F2Jot1mfQB7gh6fJ/yWZPnnqvwbxI82v+TghNHRJeyi6h0q3GQFBXygJT9qMnXhgV4aKwQalxQdNP9xFr2d4Be3TZiX8T4BwxPc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <0b7a0a09-ac54-4ef0-b4bc-c86f744089ed@amd.com>
Date: Wed, 13 Dec 2023 14:06:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen/arm: ffa: return FFA_RET_NOT_SUPPORTED on
 unhandled calls
Content-Language: en-US
To: Jens Wiklander <jens.wiklander@linaro.org>,
	<xen-devel@lists.xenproject.org>
CC: <patches@linaro.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
References: <20231213103241.2346813-1-jens.wiklander@linaro.org>
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20231213103241.2346813-1-jens.wiklander@linaro.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD5:EE_|BY5PR12MB4871:EE_
X-MS-Office365-Filtering-Correlation-Id: 7f9c1cf5-ed9a-4111-07da-08dbfbdc4a61
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	QdpOGJ6n2OBvLtDExOUBSSDNhyWKHNFvET4eEPzCMQnQJu+sYl8G3ElbLekiv4hXQwZQDIKp2NpQLJzuOqZTnQEz3o3pJz8UmnCjP26jR8izt+V3jyHXdZmwsubJA4Z07Hh7AEZbryHj2WbNLz+g19k/veuPszdn0SWtLO32sezUsmWhoBgulAqLKIfX1I7rxLCLvYlruLVDxWRDzbTsIel1+yP0QXWrrz+bV57Fy7IWu1iWXWVNwxu/M68CUv9Jlw/md/HcjqiuQV2hTeGQhq0lSB+0ycMBvpl76Jjs0FlU+KRJX5vNKfyAS5kA1gNqMADcZ58Sqv5XHVJTkfk0kYQfzHNCz6zXB/z9lBwmrGy4uGlioRJxLIeN8rn6XRwWPKtaNMszURm3Vj7L2S1+3aoevvZCCraV1wo5g2T9DakrOSPuUIfFSs1he2mvY/AmwQ9zkPbq3frkp2hTsT67fMHIWgo+7cClLY/8JYmKOV+9d/USnqtXf1MYqiUV+fN0Izoge7YpH9rn3XlBowUDD0R6zEgtKxdQ416faHuhdhYnplduwBzwNtq7as+AfXx68pUd7SAYRGOgn8euJw06kswCyygj794y3/7N3cQ0aR9lYqvJaITaJz/0HbDF4i6H/793T9iJTAXmJYZEHGCyzNsT/xS4Mx7lKxQR1xsiakJOzBeNmY2kQ/VsE9Kif5Lc5GLqGKq87E+IIvjCu/JeHcqvHRYm0uQpDuxdSoNQx/HLggGdgQl7ne9v5YQODH+qnhdgLOnUCdsi+IvHa9okIVFAN54qgWV/CYRV8rF7nQPqP4kXCqVNtoxnUmmY+dGZ
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(376002)(346002)(39860400002)(136003)(230922051799003)(451199024)(1800799012)(82310400011)(64100799003)(186009)(46966006)(36840700001)(40470700004)(40460700003)(426003)(83380400001)(53546011)(26005)(336012)(2616005)(47076005)(36860700001)(44832011)(5660300002)(4326008)(8936002)(8676002)(41300700001)(2906002)(110136005)(478600001)(16576012)(316002)(4744005)(86362001)(54906003)(70206006)(70586007)(31696002)(36756003)(356005)(81166007)(82740400003)(40480700001)(31686004)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2023 13:06:16.0431
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f9c1cf5-ed9a-4111-07da-08dbfbdc4a61
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EDD5.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4871

Hi,

On 13/12/2023 11:32, Jens Wiklander wrote:
> 
> 
> Until now has an unsupported FF-A request been reported back with
NIT: I think 'has' is in the wrong place

> ARM_SMCCC_ERR_UNKNOWN_FUNCTION in register x0. A FF-A caller would
> rather expect FFA_ERROR in x0 and FFA_RET_NOT_SUPPORTED in x2 so update
> ffa_handle_call() to return true and with the cpu_user_regs updated.
> 
> Fixes: 38846de2176b ("xen/arm: tee: add a primitive FF-A mediator")
> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Looking at Linux and TFA, this is indeed expected behavior, so:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 13:52:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 13:52:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654005.1020634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDPee-0006Cp-GO; Wed, 13 Dec 2023 13:52:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654005.1020634; Wed, 13 Dec 2023 13:52:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDPee-0006Ci-Di; Wed, 13 Dec 2023 13:52:04 +0000
Received: by outflank-mailman (input) for mailman id 654005;
 Wed, 13 Dec 2023 13:52:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IrFR=HY=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDPed-0006Cb-2Y
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 13:52:03 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca106841-99be-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 14:52:01 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-336417c565eso372655f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 05:52:00 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 h12-20020a5d504c000000b003333521a1cesm1277229wrt.57.2023.12.13.05.51.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 05:51:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca106841-99be-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702475520; x=1703080320; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=KAGK6CeQGpfPRG6k54rKBcuH1/bYwwYkZsXMsWDnJzs=;
        b=b7ioeewcYDfBK5FOJuMKTcIyc93KX7qyYSVycG43l+PWhYchgkYOCrfTY3RoEh/66k
         i+Ps5KeMqIrcg4JLELhv7NPXKXaPJkvL71g6xnykENijTEX/fg2UhYW2VWWEET4cFPqk
         uoJwzZUgIFnYbu4SOFT8cC/w2N2NFFwux4IE8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702475520; x=1703080320;
        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=KAGK6CeQGpfPRG6k54rKBcuH1/bYwwYkZsXMsWDnJzs=;
        b=qKEIbhfGvpw5aiImVIFtKcbHVxY0cpgsDV7aYAhOSFME59bw3won5TQbWEYjF1lYuU
         NTqpRD0NT2+v5xhO7OEhnmwp1bNP8G3aHwoLh8PfIBUzhm9O02SNkuBhA4B6QiH02S+t
         jeW51S7u7628a23Fc2fdWAPzcQPcwZUqAriLaEEbrpUKXd6lS8zwnGFiT+sEbEWKraK2
         qpjV8zXIMGCbDrAXwh+wUDaYBWQ1isye45fFW3tEvfpZF0M7jl/HIr8Vng29rIjIDZOF
         GMyYFPXEGD6ZuqZUkc1Y00cCok0uO8/mAXsLWv0l9NhJzH0u+Y0xHhNp4KeRDU+MSqdu
         NGpg==
X-Gm-Message-State: AOJu0Yzr2OoBhYedCRkAWKUqDpdxhdsXqXCCI0wOWwo+iUhTrAYw1WLW
	CNd9ob1ubn0YfCGcbLC74w/cF7KbaJeBBHUhU/g=
X-Google-Smtp-Source: AGHT+IFn6ZIRkJAZV3iMR6Xfkn1+X5khZH7616XoXJgDJbLGWFqvKkkRq3Rk7I3AHx9F6mXrYB+YwA==
X-Received: by 2002:a5d:55c6:0:b0:333:533d:9cfa with SMTP id i6-20020a5d55c6000000b00333533d9cfamr3157794wrw.208.1702475520210;
        Wed, 13 Dec 2023 05:52:00 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH] livepatch-build-tools: fix misuse of script directory as work directory
Date: Wed, 13 Dec 2023 14:51:47 +0100
Message-ID: <20231213135147.6749-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's incorrect to assume that the script directory will always match the
directory the script is executed from.  Instead cache the directory at the
start of script execution in order to be able to get back to it if needed.

Fixes: 629ab8ddb775 ('livepatch-build-tools: do not use readlink -m option')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 livepatch-build | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/livepatch-build b/livepatch-build
index f622683fc56c..e318cecd4da6 100755
--- a/livepatch-build
+++ b/livepatch-build
@@ -25,6 +25,7 @@
 # script.
 
 SCRIPTDIR="$(readlink -f $(dirname $(type -p $0)))"
+WORKDIR="$(readlink -f -- .)"
 CPUS="$(getconf _NPROCESSORS_ONLN)"
 DEBUG=n
 XEN_DEBUG=n
@@ -459,7 +460,7 @@ if [ "${SKIP}" != "build" ]; then
 fi
 
 if [ "${SKIP}" != "diff" ]; then
-    cd "${SCRIPTDIR}" || die
+    cd "${WORKDIR}" || die
     [ -d "$outputarg" ] || die "Output directory does not exist"
     OUTPUT="$(readlink -f -- "$outputarg")"
 

base-commit: 0ed8ef88dc300750696a64e89efa3b82502f6dc7
prerequisite-patch-id: 20327fdf775db3903c8067a0642254d67c495806
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 14:02:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 14:02:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654011.1020645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDPon-0008GG-Ds; Wed, 13 Dec 2023 14:02:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654011.1020645; Wed, 13 Dec 2023 14: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 1rDPon-0008G9-A3; Wed, 13 Dec 2023 14:02:33 +0000
Received: by outflank-mailman (input) for mailman id 654011;
 Wed, 13 Dec 2023 14: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=Mw9L=HY=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDPom-0008G3-Jz
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 14:02:32 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4133c998-99c0-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 15:02:30 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id B84A14EE0737;
 Wed, 13 Dec 2023 15:02:29 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4133c998-99c0-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Wed, 13 Dec 2023 15:02:29 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
In-Reply-To: <240c97ed-ce27-406d-84ad-68b72e999294@xen.org>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
 <240c97ed-ce27-406d-84ad-68b72e999294@xen.org>
Message-ID: <5ad1c008182bc9f23e1b37b0d6e35e4c@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 2023-12-12 16:49, Julien Grall wrote:
> Hi,
> 
> On 11/12/2023 12:32, Julien Grall wrote:
>> Hi,
>> 
>> On 11/12/2023 10:30, Nicola Vetrini wrote:
>>> The branches of the switch after a call to 'do_unexpected_trap'
>>> cannot return, but there is one path that may return, hence
>>> only some clauses are marked with ASSERT_UNREACHABLE().
>> I don't understand why this is necessary. The code should never be 
>> reachable because do_unexpected_trap() is a noreturn().
> 
> From the matrix discussion, it wasn't clear what was my position on 
> this patch.
> 
> I would much prefer if the breaks are kept. I could accept:
> 
> ASSERT_UNREACHABLE();
> break;
> 
> But this solution is a Nack because if you are concerned about 
> functions like do_unexpected_trap() to return by mistaken, then it 
> needs to also be safe in production.
> 
> The current proposal is not safe.
> 
> Cheers,

Ok. I wonder whether the should be applied here in vcpreg.c:

diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
index 39aeda9dab62..089d2f03eb5e 100644
--- a/xen/arch/arm/vcpreg.c
+++ b/xen/arch/arm/vcpreg.c
@@ -707,7 +707,8 @@ void do_cp10(struct cpu_user_regs *regs, const union 
hsr hsr)
          inject_undef_exception(regs, hsr);
          return;
      }
-
+
+    ASSERT_UNREACHABLE();
      advance_pc(regs, hsr);
  }

the rationale being that, should the switch somehow fail to return, the 
advance_pc would be called, rather than doing nothing.

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 14:13:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 14:13:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654016.1020655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDPzB-0001X6-Hs; Wed, 13 Dec 2023 14:13:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654016.1020655; Wed, 13 Dec 2023 14:13:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDPzB-0001Wz-EW; Wed, 13 Dec 2023 14:13:17 +0000
Received: by outflank-mailman (input) for mailman id 654016;
 Wed, 13 Dec 2023 14:13: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=ieRt=HY=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1rDPz9-0001Wt-HH
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 14:13:15 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-he1eur04on2070.outbound.protection.outlook.com [40.107.7.70])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bdfb8147-99c1-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 15:13:09 +0100 (CET)
Received: from AS9PR05CA0294.eurprd05.prod.outlook.com (2603:10a6:20b:492::28)
 by GV1PR08MB10424.eurprd08.prod.outlook.com (2603:10a6:150:15e::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Wed, 13 Dec
 2023 14:12:35 +0000
Received: from AM2PEPF0001C715.eurprd05.prod.outlook.com
 (2603:10a6:20b:492:cafe::58) by AS9PR05CA0294.outlook.office365.com
 (2603:10a6:20b:492::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33 via Frontend
 Transport; Wed, 13 Dec 2023 14:12:35 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM2PEPF0001C715.mail.protection.outlook.com (10.167.16.185) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7091.26 via Frontend Transport; Wed, 13 Dec 2023 14:12:34 +0000
Received: ("Tessian outbound 26ee1d40577c:v228");
 Wed, 13 Dec 2023 14:12:34 +0000
Received: from dc1b8797008f.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E6BE790B-8B01-4B6A-A63A-1656181BC50A.1; 
 Wed, 13 Dec 2023 14:12:28 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id dc1b8797008f.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 13 Dec 2023 14:12:28 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by PA6PR08MB10417.eurprd08.prod.outlook.com (2603:10a6:102:3cd::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Wed, 13 Dec
 2023 14:12:26 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b%6]) with mapi id 15.20.7091.022; Wed, 13 Dec 2023
 14:12:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bdfb8147-99c1-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=AlPgVnqXfE8udOL50Bd8KeDpieXbrQ2nqxqaRSRuI8V+yjawEjeyflByjiXxzs7WSGBT3Qva/FVeZ/REunU5Y4TcUsaFOCFbRC1trV4jojoqYoelwY2keWWXwgqncw1FZaLw+ziAvApgnDh1LE53FsK9QMC0/h1A+ciFxYnBNq2myXyaizx64NYqOFPhUBMhhd+E9Daq4/f84Lt/5ggWA8ldtMzagdigl0RfPgcE+8wm7OkG/pIuZgUNHpF3q8Iyzs/wnNQKpJ9pXatZCu8kquQufhZz+IhR2JikH/ulrHYElcqK+WWMgNC802+CoM44DSopqwZqsxKv/KnpuPKkEA==
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=zXvCi0VToAqo8eGsgipSbL9qnm6d03x9sVDBPq3nMlw=;
 b=L7unJMdlMo5Ar48ff2O7FuCxOx3QOGO3uAOqY1cyD8hSYzu7nsMkHqdTudExed5Y0RHPNJE4FFZiFrqvsKJ9zR0CYpvReUqiZwZClPjNlzWhyibq33TK4h37Vj7RbVUrbyGNq2kQ3Uv83WOZCULoH9JraPZD3fepbL6CLTl2BwSh3hVWs8JEJUr0bOw//M72lvWHY8eMZQLBuqgL5F1Yy2wqdEIc9qcU5Qwii36LWeX3cxMKXfQflzi1KHO9tvAJh59IFi4HcYa73S4TOvZYhWhmvNlqICWwxg8CYqJp4wFJU4VBtJCQRzdAqE8XpQYvBGjK5HoWSfo22/UAoEHdjA==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zXvCi0VToAqo8eGsgipSbL9qnm6d03x9sVDBPq3nMlw=;
 b=tFMmvD2FLIsgJZFZ6RJ/hLNbNiouIIbrr+tCd8jNsRFFVbbQHbcinwZIcbKUMLF4iFoHDDTXiqope9SNX84OYXyjDrzevha/05CoPJoz5le7UFQBTHn3/1CHXgg5zb7jB3sy8oe1CmbLTkFBoytLRU8qk2jOYt09ssYqHiwMGI0=
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=armh.onmicrosoft.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: 112ba88f2c48a028
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Ayg+l5atxpPAZYOsqjoM16rNhXTznyOBOFGPULX4C/vDAQH/4jsxEx4D7bE7bKRZ5V28ZjSAgNy4ug9ABxP1SOlr6GQ6np0wB3548kX8aPdradAJJwGKU1WkLnboxindopvjmenh/xjpX7VQ5JXo6rDVFuxY2J+k9XTrjMNA16Vx5KR5VzdxHEg7xwA7z9JsOtP/c1ytcWfgFi50FZSrpMTjd2d8JAZJRNqhVuaUhKAX0SRfQGp0fFEhXcfM3GII1IFNNb+vg4kWrQbb/dLYcTpkpYtUI39HeJqE0H4sdWO+QngXlQQ1CZ1t1BiALrZWc0G2Enb8hGc13cOu2vLCqA==
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=zXvCi0VToAqo8eGsgipSbL9qnm6d03x9sVDBPq3nMlw=;
 b=ODr0t6biUUU4aa4czfT3ggRUM9zw4ecouBK6n5yQnOkbR6vhNPeZ6VfLt71I9Jiltw90ux9uWxzX9CfHJv+i3nr9VpaaCfZIPFNyQGDf0dvcrDBCKo+GX9+c3L2kLjIDtNqsZPcxfW3JG5ZcGu+prQXGSMGHlZiRH6YOqBLuLe0hImIK5joDXf+PKgGV0AHBoRviq7Baa08iRzvpjeuv6rW6rrL3rkD63Z6DmbevYsQu8ElzUpFAM6ba5QyRE2fdIL5+QHVibgB1Te5RO27Ip7Z3MK28FCw1h6jWyCv1MfaDq5n5iIQGHPWL0l945b++GeNghNYe1zrmeYW2iA1QPQ==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zXvCi0VToAqo8eGsgipSbL9qnm6d03x9sVDBPq3nMlw=;
 b=tFMmvD2FLIsgJZFZ6RJ/hLNbNiouIIbrr+tCd8jNsRFFVbbQHbcinwZIcbKUMLF4iFoHDDTXiqope9SNX84OYXyjDrzevha/05CoPJoz5le7UFQBTHn3/1CHXgg5zb7jB3sy8oe1CmbLTkFBoytLRU8qk2jOYt09ssYqHiwMGI0=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, "patches@linaro.org"
	<patches@linaro.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Subject: Re: [XEN PATCH] xen/arm: ffa: return FFA_RET_NOT_SUPPORTED on
 unhandled calls
Thread-Topic: [XEN PATCH] xen/arm: ffa: return FFA_RET_NOT_SUPPORTED on
 unhandled calls
Thread-Index: AQHaLa+9f2NgKntfU0yyvul3VTpCb7CnQV2A
Date: Wed, 13 Dec 2023 14:12:24 +0000
Message-ID: <26C1D752-3FDB-43C4-9A28-8C1060C4AB70@arm.com>
References: <20231213103241.2346813-1-jens.wiklander@linaro.org>
In-Reply-To: <20231213103241.2346813-1-jens.wiklander@linaro.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3784:EE_|PA6PR08MB10417:EE_|AM2PEPF0001C715:EE_|GV1PR08MB10424:EE_
X-MS-Office365-Filtering-Correlation-Id: e8578701-9e91-4a04-fa45-08dbfbe58de9
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 FlAyA5KHAIYMI3gzjc6V8jazJK0bnj0JF1A8KQjWC1mjSiD+MyZBM0M5aCS9rk81EAg38rrXvZt3mvoST2VZx5lmiynOuW16cv6uWfbCvyyq5El3klRVhgvdQysZFfyIO0zHz4i2PURLFU3dEdI7bj8bVumGzTY1oy9tlOLM13tBEthChxsXNOn8MSJt+BKB8UdRpL3/DbCxBYgyLB5G20aqNSNNxafR4YCli87rlAYxoxaUiZ65AFCS3M+2dci5kxHs/URLozqSuhzH1N4yR0PYzQfwgiiGwJcZLgWsR9aNl71Flu8a9Gpge+z6ImnmruJjHoY8zG49RohNgEq/FW2HpmwLyHhVRaHrFHpMU4U2HTU3cT8jiDUoLW1UZRA6Y24UlnJ4kEc9xdI6sfALHenhH8tQFvUu19OcxbqsoIK3P2g9hneai4KvShI/9wMFBDShK1bIZsB2JXBfvUcxkEi57uG3t4UkJ67mj+t9NhalIm3ha+FVVC/KkDafYzGlTFPXMsLzcqVV8tQbcDuKQIik1U8u9l/UBgB1tLIwWMnawDrx5JRf7qjkc93zuV/7RIbz/I//Bg/xMu/oEefUq3wmdLYYmOeQNN2aqreR1WSNp9a8oB0/0ev0ix9OJCy6cXjhwaGCD6KwB8IzMFxrDA==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(396003)(346002)(136003)(376002)(366004)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(2616005)(86362001)(122000001)(38100700002)(38070700009)(36756003)(33656002)(83380400001)(5660300002)(316002)(66946007)(53546011)(71200400001)(76116006)(91956017)(6486002)(8676002)(8936002)(66556008)(64756008)(6916009)(66446008)(66476007)(6512007)(54906003)(41300700001)(2906002)(6506007)(478600001)(4326008)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <5A5385EEB4A3BC46A50C21B1BC6B5DF1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10417
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:
 AM2PEPF0001C715.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4dcc92d4-fd04-4695-b525-08dbfbe58779
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	28LgmWkrQ29LuM9NJV1+QsOA3MmZGuE02H/1aa0z0tYLYvvNwKulBo6mlDmR9/Yhrr0tayCsaVmXWB9vyt5PsqXfKey+fTLr5u1Tefj1AmNiM2nDClaPQ0IQ4/hOT++F48JZGLqB0TouH7oSsDENIortpe473W/SPUE6ghCkwJnef/UsXwFCL45XnnJvqVJmPlaOIyjlQAXqpSwdCFNlGFO8J8gcZzM0fP25qSxYUJda0rE8LGPl2CYwJ54le+YcAFDqDzbsJw/FvFzVSJ6rY2FCEv1py8tGD9UXYO2OeauFqYSTXVys+2jJ+7TtTFuuf8Pfs4b3WpILmaTcIbqJwy7zEwozf3mp3GpZlmlEDWq2tj5rztE33wyYak9jtCEesKneS1gYemtbod0gkfgX+AFUv0C5QyIbTQAebIovOblbzyqEyPJPRhuMGFD+gp5Wuzc8IpXID5M5Jv0xFDINiXD41Twb6eaWE47sp4nMquaZ/luV7AX8IiHokZvl3jtR3F9YJ7LpkM/1GJ+odJY3fqUS2xm09WIAtK+ZaM8qEfyy9BLW6raL9a6HYIqU+YsM6xh628KNM0BHA0fdIahe06oGM0JFm81meBRmPWjHJ12wCY7xkStLvP3vranAs0KIALgI/hINsyMQ3jRdQdnPTEvbmhhIHDnelzaCTgYakgbixxjSFvzQKM7CieMW/gnESD7Rbfgi1hufXEd4r8CiMjwnLYLYoDMHzRdrYYOIQrPX8l6T9eePdVADjMZrkqpn
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:(13230031)(4636009)(396003)(376002)(136003)(346002)(39860400002)(230922051799003)(82310400011)(186009)(64100799003)(451199024)(1800799012)(40470700004)(36840700001)(46966006)(40480700001)(40460700003)(36756003)(70586007)(54906003)(82740400003)(26005)(81166007)(356005)(86362001)(33656002)(70206006)(47076005)(36860700001)(53546011)(83380400001)(6506007)(6512007)(2616005)(6486002)(316002)(2906002)(8676002)(478600001)(336012)(5660300002)(4326008)(8936002)(41300700001)(6862004);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2023 14:12:34.9592
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e8578701-9e91-4a04-fa45-08dbfbe58de9
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:
	AM2PEPF0001C715.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10424

Hi Jens,


> On 13 Dec 2023, at 11:32, Jens Wiklander <jens.wiklander@linaro.org> wrot=
e:
>=20
> Until now has an unsupported FF-A request been reported back with
> ARM_SMCCC_ERR_UNKNOWN_FUNCTION in register x0. A FF-A caller would
> rather expect FFA_ERROR in x0 and FFA_RET_NOT_SUPPORTED in x2 so update
> ffa_handle_call() to return true and with the cpu_user_regs updated.
>=20
> Fixes: 38846de2176b ("xen/arm: tee: add a primitive FF-A mediator")
> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

With the Nit from Michal fixed in the commit message (could be done on comm=
it):
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

> ---
> xen/arch/arm/tee/ffa.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>=20
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 183528d13388..98905fec7967 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -1477,7 +1477,8 @@ static bool ffa_handle_call(struct cpu_user_regs *r=
egs)
>=20
>     default:
>         gprintk(XENLOG_ERR, "ffa: unhandled fid 0x%x\n", fid);
> -        return false;
> +        set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        return true;
>     }
> }
>=20
> --=20
> 2.34.1
>=20



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 14:24:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 14:24:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654019.1020665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDQ9z-0003wO-Hr; Wed, 13 Dec 2023 14:24:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654019.1020665; Wed, 13 Dec 2023 14:24: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 1rDQ9z-0003wH-EX; Wed, 13 Dec 2023 14:24:27 +0000
Received: by outflank-mailman (input) for mailman id 654019;
 Wed, 13 Dec 2023 14:24:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ca38=HY=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1rDQ9x-0003wB-BZ
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 14:24:25 +0000
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com
 [66.111.4.25]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e652f9f-99c3-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 15:24:22 +0100 (CET)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailout.nyi.internal (Postfix) with ESMTP id 351DE5C04FC;
 Wed, 13 Dec 2023 09:24:20 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute2.internal (MEProxy); Wed, 13 Dec 2023 09:24:20 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 13 Dec 2023 09:24:18 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e652f9f-99c3-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1702477460;
	 x=1702563860; bh=+XVNl6EQXZ04NF9e23mZvbfkUunjJ5i82874zXn0jF4=; b=
	wb7/7ziVQu9BNYqy72TNeHwL/tO1va8B+ISiKsBD3/o5NgZ0wUiaYJdiVqbhjpUK
	He44WEKwrT0UUjhfdVEcgtvxhPcUNlH03xd/5COD49GL7UufvwAT0WeIHsuFwNk5
	oF5dDAh2b9rV8N6Us5CswBBA7kqiaZFJEWoaSxbjfq5rVtNmxwiI76Gd+HH0zwgV
	bwVLJucXKYJ+E/6U2j16uyRibCvXuHg8eX445lMojpboaEwGmlPy3gvnUh2mBsI8
	15Ih25KuedLyCeqMUs1taAIg4wLyxl+FTh20PCE8L0HIE/RVRaE2lLQQmiZi/lPA
	m+fr3G5ghN8mM/t7mEB99A==
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=
	fm1; t=1702477460; x=1702563860; bh=+XVNl6EQXZ04NF9e23mZvbfkUunj
	J5i82874zXn0jF4=; b=fxXd9vhi2NxczXLJ5H2nLVVnqg45aqfIqR5UNidajMDK
	x0VMrUQZo7fu5guvJOhyLKAZujofASpgNRNt9rqR8A7wWGQZDMLaAB+oApGfISPK
	6bN+q4cXI32+TZu6XEDzyWwUkOLpUMgaQHgfcnkRbY+SXtQjmVZJLrDpRsllFa7S
	2hpmo4kKWggmIKKMU3NU5oQEmAwA/vQsmOijgA0WrYoKGqnToWwssV+28CNQWLG8
	nm7nrvMxwonir8odw6Bz57z9o1fVFsBGsZ0Z1UIAE/mDmXCcqQQ99widFpK1FpjP
	ao2LDNUmzxtnAiPiyehnf+NsF1/cf9GoQsHnV02TtQ==
X-ME-Sender: <xms:k755ZbhsiKSvMRm4f3ZNlmjQu4TKGZvUdu2hY6DCtIrgC2dRL6EVpQ>
    <xme:k755ZYC2WbGsp1PKqf9_N1m1ORqRajlB_UclRwdLzyB_Ppjvb6Y_c3EWt5uEvffuh
    J9y8QlXA4ao7A>
X-ME-Received: <xmr:k755ZbEMilL50vcCEDKVSqeI8kG4jbBD4frzboQk4i_AZRXnvjpLtvkWk9MolBr3q4qDrv0Lo6-dj5-OSgsAznNtZ7QEtoiP2w>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudeljedgtdegucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptefh
    gefgueegveevgeethfekueejgeeitdekhfffgfehgeeludetvddttdfhkeffnecuffhomh
    grihhnpehfohhllhhofihinhhgshhpvggtihhfihgtrghtihhonhhsrdhmugenucevlhhu
    shhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkh
    esihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:k755ZYTZPaKpitNCrQkUFuN02lsqEMANI48P4BrFBGrHCGuXbofOPA>
    <xmx:k755ZYz5td9fiAqw2bIv_PpEjbZCJ7rTJr1013KTTMm6rYlIg2f5EA>
    <xmx:k755Ze6kpbQ0THnZLFJPVDJbVdYvkwAT6_eux6W6N4rVbDAFPxKuaA>
    <xmx:lL55ZXpTCb3GNgL54-JhY6ju5NXtGF4RhEbgmUy63UzWJST-ncIpFA>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 13 Dec 2023 15:24:15 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: George Dunlap <george.dunlap@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>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH] docs: Document a policy for when to deviate from
 specifications
Message-ID: <ZXm+jxn4hr9Y68eD@mail-itl>
References: <20230918122817.6577-1-george.dunlap@cloud.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="eXnc3naPWXNrddmm"
Content-Disposition: inline
In-Reply-To: <20230918122817.6577-1-george.dunlap@cloud.com>


--eXnc3naPWXNrddmm
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 13 Dec 2023 15:24:15 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: George Dunlap <george.dunlap@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>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH] docs: Document a policy for when to deviate from
 specifications

On Mon, Sep 18, 2023 at 01:28:16PM +0100, George Dunlap wrote:
> There is an ongoing disagreement among maintainers for how Xen should
> handle deviations to specifications such as ACPI or EFI.
>=20
> Write up an explicit policy, and include two worked-out examples from
> recent discussions.

Looks very reasonable to me. While it would be nice for every hardware
(or thing in general) to follow specifications, sadly it isn't reality
and Xen doesn't have enough market share to influence vendors in a
meaningful way. So, yes, the policy described below sounds like a
reasonable approach to make things working for end users.

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

PS As a downstream distributions, we do ship several workarounds that were
rejected upstream on the grounds that "specification says otherwise"
before...

>=20
> Signed-off-by: George Dunlap <george.dunlap@cloud.com>
> ---
> NB that the technical descriptions of the costs of the accommodations
> or lack thereof I've just gathered from reading the discussions; I'm
> not familiar enough with the details to assert things about them.  So
> please correct any technical issues.
> ---
>  docs/policy/FollowingSpecifications.md | 219 +++++++++++++++++++++++++
>  1 file changed, 219 insertions(+)
>  create mode 100644 docs/policy/FollowingSpecifications.md
>=20
> diff --git a/docs/policy/FollowingSpecifications.md b/docs/policy/Followi=
ngSpecifications.md
> new file mode 100644
> index 0000000000..a197f01f65
> --- /dev/null
> +++ b/docs/policy/FollowingSpecifications.md
> @@ -0,0 +1,219 @@
> +# Guidelines for following specifications
> +
> +## In general, follow specifications
> +
> +In general, specifications such as ACPI and EFI should be followed.
> +
> +## Accommodate non-compliant systems if it doesn't affect compliant syst=
ems
> +
> +Sometimes, however, there occur situations where real systems "in the
> +wild" violate these specifications, or at least our interpretation of
> +them (henceforth called "non-compliant").  If we can accommodate
> +non-compliant systems without affecting any compliant systems, then we
> +should do so.
> +
> +## If accommodation would affect theoretical compliant systems that are
> +   not known to exist, and Linux and/or Windows takes the
> +   accommodation, take the accommodation unless there's a
> +   reason not to.
> +
> +Sometimes, however, there occur situations where real, non-compliant
> +systems "in the wild" cannot be accommodated without affecting
> +theoretical compliant systems; but there are no known theoretical
> +compliant systems which exist.  If Linux and/or Windows take the
> +accommodation, then from a cost/benefits perspective it's probably best
> +for us to take the accommodation as well.
> +
> +This is really a generalization of the next principle; the "reason not
> +to" would be in the form of a cost-benefits analysis as described in
> +the next section showing why the "special case" doesn't apply to the
> +accommodation in question.
> +
> +## If things aren't clear, do a cost-benefits analysis
> +
> +Sometimes, however, things are more complicated or less clear.  In
> +that case, we should do a cost-benefits analysis for a particular
> +accommodation.  Things which should be factored into the analysis:
> +
> +N-1: The number of non-compliant systems that require the accommodation
> + N-1a: The number of known current systems
> + N-1b: The probable number of unknown current systems
> + N-1c: The probable number of unknown future systems
> +
> +N-2 The severity of the effect of non-accommodation on these systems
> +
> +C-1: The number of compliant systems that would be affected by the accom=
modation
> + C-1a: The number of known current systems
> + C-1b: The probable number of unknown current systems
> + C-1c: The probable number of unknown future systems
> +
> +C-2 The severity of the effect of accommodation on these systems
> +
> +Intuitively, N-1 * N-2 gives us N, the cost of not making the
> +accommodation, and C-1 * C-2 gives us C, the cost of taking the
> +accommodation.  If N > C, then we should take the accommodation; if C >
> +N, then we shouldn't.
> +
> +The idea isn't to come up with actual numbers to plug in here
> +(although that's certainly an option if someone wants to), but to
> +explain the general idea we're trying to get at.
> +
> +A couple of other principles to factor in:
> +
> +Vendors tend to copy themselves and other vendors.  If one or two
> +major vendors are known to create compliant or non-compliant systems
> +in a particular way, then there are likely to be more unknown and
> +future systems which will be affected by / need a similar accommodation
> +respectively; that is, we should raise our estimates of N-1{b,c} and
> +C-1{b,c}.
> +
> +Some downstreams already implement accommodations, and test on a
> +variety of hardware.  If downstreams such as QubesOS or XenServer /
> +XCP-ng implement the accommodations, then N-1 * N-2 is likely to be
> +non-negligible, and C-1 * C-2 is likely to be negligible.
> +
> +Windows and Linux are widely tested.  If Windows and/or Linux make a
> +particular accommodation, and that accommodation has remained stable
> +without being reverted, then it's likely that the number of unknown
> +current systems that are affected by the accommodation is negligible;
> +that is, we should lower the C-1b estimate.
> +
> +Vendors tend to test server hardware on Windows and Linux.  If Windows
> +and/or Linux make a particular accommodation, then it's unlikely that
> +future systems will be affected by the accommodation; that is, we
> +should lower the C-1c estimate.
> +
> +# Example applications
> +
> +Here are some examples of how these principles can be applied.
> +
> +## ACPI MADT tables containing ~0
> +
> +Xen disables certain kinds of features on CPU hotplug systems; for
> +example, it will avoid using TSC, which is faster and more power
> +efficient (since on a hot-pluggable system it won't be reliable), and
> +instead fall back to other timer sources which are slower and less
> +power efficient.
> +
> +Some hardware vendors have (it seems) begun making a single ACPI table
> +image for a range of similar systems, with MADT entries for the number
> +of CPUs based on the system with the most CPUs, and then for the
> +systems with fewer CPUs, replacing the APIC IDs in the MADT table with
> +~0, to indicate that those entries aren't valid.  These systems are
> +not hotplug capable.  Sometimes the invalid slots are on a separate
> +socket.
> +
> +One interpretation of the spec is that a system with such MADT entries
> +could actually have an extra socket, and that later the system could
> +update the MADT table, populating the APIC IDs with real values.
> +
> +If Xen finds an MADT where all slots are either populated or filled
> +with APICID ~0, , should it consider it a multi-socket hotplug system,
> +disable features available on single-socket systems?  Or should it
> +accommodate the systems above, treating the system as systems
> +incapable of hotplug?
> +
> +N-1a: People have clearly found a number of systems in the wild, from
> +different vendors, that exhibit this property; it's a non-negligible
> +number of systems.
> +
> +N-1b,c: Since these systems are from different vendors, and there seem to
> +be a fair number of them, there are likely to be many more that we
> +don't know about; and likely to be many more produced in the future.
> +
> +N-2: Xen will use more expensive (both time and power-wise) clock
> +sources unless the user manually modifies the Xen command-line.
> +
> +C-1a,b: There are no known systems that implement phyical CPU hotplug
> +whatsoever, much less a system that uses ~0 for APICIDs.
> +
> +There are hypervisors that implement *virtual* CPU hotplug; but they
> +don't use ~0 for APICIDs.
> +
> +C-1c: It seems that physical CPU hotplug is an unsolved problem: it was
> +worked on for quite a while and then abandoned.  So it seems fairly
> +unlikely that any physical CPU hotplug systems will come to exist any
> +time in the near future.
> +
> +If any hotplug systems were created, they would only be affected if
> +they happened to use ~0 the APIC ID of the empty slots in the MADT
> +table.  This by itself seems unlikely, given the number of vendors who
> +are now using that to mean "invalid slot", and the fact that virtual
> +hotplug systems don't do this.
> +
> +Furthermore, Linux has been treating such entries as permanently
> +invalid since 2016.  If any system were to implement physical CPU
> +hotplug in the future, and use ~0 as a placeholder APIC ID, it's very
> +likely they would test it on Linux, discover that it doesn't work, and
> +modify the system to enable it to work (perhaps copying QEMU's
> +behavior).  It seems likely that Windows will do the same thing,
> +further reducing the probability that any system like this will make
> +it into production.
> +
> +So the potential number of future systems affected by this before we
> +can implement a fix seems very small indeed.
> +
> +C-2: If such a system did exist, everything would work fine at boot;
> +the only issue would be that when an extra CPU was plugged in, nothing
> +would happen.  This could be overridden by a command-line argument.
> +
> +Adding these all together, there's a widespread, moderate cost to not
> +accommodating these systems, and an uncertain and small cost to
> +accommodating them.  So it makes sense to apply the accommodation.
> +
> +## Calling EFI Reboot method
> +
> +One interpretation of the EFI spec is that operating systems should
> +call the EFI ResetSystem method in preference to the ACPI reboot
> +method.
> +
> +However, although the ResetSystem method is required by the EFI spec,
> +a large number of different systems doesn't actully work, at least
> +when called by Xen: a large number of systems don't cleanly reboot
> +after calling the EFI REBOOT method, but rather crash or fail in some
> +other random way.
> +
> +(One reason for this is that the Windows EFI test doesn't call the EFI
> +ResetSystem method, but calls the ACPI reboot method.  One possibile
> +explanation for the repeated pattern is that vendors smoke-test the
> +ResetSystem method from the EFI shell, which has its own memory map;
> +but fail to test it when running on the OS memory map.)
> +
> +Should Xen follow our interpretation of the EFI spec, and call the
> +ResetSystem method in preference to the ACPI reboot method?  Or should
> +Xen accommodate systems with broken ResetSystem methods, and call the
> +ACPI reboot method by default?
> +
> +N-1a: There are clearly a large number of systems which exhibit this
> +property.
> +
> +N-1b,c: Given the large number of diverse vendors who make this
> +mistake, it seems likely that there are even more that we don't know
> +about, and this will continue into the future.
> +
> +N-2: Systems are incapable of rebooting cleanly unless the right runes
> +are put into the Xen command line to make it prefer using the ACPI
> +reboot method.
> +
> +C-1a: A system would only be negatively affected if 1) an ACPI reboot
> +method exists, 2) an EFI method exists, and 3) calling the ACPI method
> +in preference to the EFI method causes some sort of issue.  So far
> +nobody has run into such a system.
> +
> +C-1b,c: The Windows EFI test explicitly tests the ACPI reboot method
> +on EFI systems.  Linux also prefers calling the ACPI reboot method
> +even when an EFI method is available.  The chance of someone shipping
> +a system that had a problem while that was the case is very tiny: it
> +basically wouldn't run either of the two most important operating
> +systems.
> +
> +C-2: It seems likely that the worst that could happen is what's
> +happening now when calling the EFI method: that the ACPI method would
> +cause a weird crash, which then would reboot or hang.
> +
> +XenServer has shipped this accommodation for several years now.
> +
> +Adding these altogether, the cost of non-accommodation is widespread
> +and moderate; that is to say, non-negligible; and the cost of
> +accommodation is theoretical and tiny.  So it makes sense to apply the
> +accommodation.
> \ No newline at end of file
> --=20
> 2.42.0
>=20
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmV5vo8ACgkQ24/THMrX
1yyF0wf/ezDeU0nztR8z4tFn4ngmeIL6HrKGavH6h8n9KKc1HVBb7d+ItkWdafva
CVi1AmeO+OtaG+z4vt/fTIjiMc0pziwJq7mPeJBXhxJLGcyoyUNwEd81q+UtOMrh
ie/c0+7iPQCAaxvEpgiO9NpS8AgcIAYBRmxjOJTOm7mzJJppCJGEHXzywRRjyOPY
kGckmjCdhHFgjvBtGk3SA06eZyTQ7zgVYc1mSUa9EV34q6ekvje00fS+2WHTEM6c
maCuAEH3q/2J3gORi2vDHgXJSGLGgYnoh4lJueGj5huq3LmavUsB8z865apj4vDH
w644+zAUVCiHZA9XkzWPcc2GkIASag==
=Vlsv
-----END PGP SIGNATURE-----

--eXnc3naPWXNrddmm--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 14:34:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 14:34:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654023.1020674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDQJj-000646-KO; Wed, 13 Dec 2023 14:34:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654023.1020674; Wed, 13 Dec 2023 14: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 1rDQJj-00063z-HP; Wed, 13 Dec 2023 14:34:31 +0000
Received: by outflank-mailman (input) for mailman id 654023;
 Wed, 13 Dec 2023 14: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=tYyH=HY=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rDQJi-00063t-7z
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 14:34:30 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id b7b9da07-99c4-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 15:34:27 +0100 (CET)
Received: from mg.gitlab.com (70.90.74.34.bc.googleusercontent.com
 [34.74.90.70]) by
 93a2b985278e with SMTP id 6579c0e94da2499b5ac59c12 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 13 Dec 2023 14:34:17 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: b7b9da07-99c4-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702478065; x=1702485265; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=C9qwFsIcqNnnNNNTy3CB5m0Yjkhq6eAa3fnM6ld1lzI=;
 b=H1HvhYIMR61Ku0G1KcvWY1mLdgIAPrQMNfI6iNpgstMU8Nbjq++uQ1rky6pBqzehics8WlkTHEC9woHEDRbVEeJXWNS8oWI3ozCUHaIsSeWqM6d4ypokjBz+eX0PrmKkoUrLB3dea8AIK7uUAUZH3+sgifXm8VP6gjipsZUQajg=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 13 Dec 2023 14:34:17 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6579c0e914259_2c9545c4759c@gitlab-sidekiq-catchall-v2-7c84b4f76f-wlrxn.mail>
Subject: xen | Successful pipeline for staging | a236b74b
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6579c0e99776_2c9545c474ca";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1105301739
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6579c0e99776_2c9545c474ca
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1105301739 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: a236b74b ( https://gitlab.com/xen-project/xen/-/commit/a236b74b961faa045640275605e319bba45483c1 )
Commit Message: xen/arm: don't pass iommu properties to hwdom f...
Commit Author: Stewart Hildebrand ( https://gitlab.com/stewarthildebrand )
Committed by: Julien Grall



Pipeline #1105301739 ( https://gitlab.com/xen-project/xen/-/pipelines/1105301739 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | a236b74b</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1105301739 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/a236b74b961faa0456=
40275605e319bba45483c1" style=3D"color: #3777b0; text-decoration: none;">=
a236b74b</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: don't pass iommu properties to hwdom f...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/86887961f183325c6bc3eca04f6fd4f4?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/stewarthildebrand" style=3D=
"color: #333333; text-decoration: none;">
Stewart Hildebrand
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110530=
1739" style=3D"color: #3777b0; text-decoration: none;">#1105301739</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6579c0e99776_2c9545c474ca--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 14:40:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 14:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654056.1020685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDQP2-0006q1-7r; Wed, 13 Dec 2023 14:40:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654056.1020685; Wed, 13 Dec 2023 14: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 1rDQP2-0006pu-5B; Wed, 13 Dec 2023 14:40:00 +0000
Received: by outflank-mailman (input) for mailman id 654056;
 Wed, 13 Dec 2023 14: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 1rDQP1-0006pk-AY; Wed, 13 Dec 2023 14: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 1rDQP0-0002e0-V8; Wed, 13 Dec 2023 14: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 1rDQP0-0002yK-L3; Wed, 13 Dec 2023 14:39:58 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDQP0-00068G-Kf; Wed, 13 Dec 2023 14: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=DzEJXmfOKgUBcyVjwS4TZKRwoJ0/+qFXU7azknnrkFM=; b=NrDa0HDvd1N/ofBoKoykneB4F2
	ScnAlOyApbwh81CHiFfOK9iVQSHJHHwcj2uJHnohudBKByg7mNWWAUqYPCFfj3wtDLmRGRme429kg
	NFdgiM/SeWz/g+RgGBUhTpZ3FHdzTy+Srpb8RY4J8ErKRV7M2sfiJIYSsEbSehVH9tUg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184109-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.17-testing test] 184109: tolerable trouble: fail/pass/starved - PUSHED
X-Osstest-Failures:
    xen-4.17-testing:test-amd64-i386-qemut-rhel6hvm-intel:guest-start/redhat.repeat:fail:heisenbug
    xen-4.17-testing:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-xl-qemut-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-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-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-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-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:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-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-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-vhd: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-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-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-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-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: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-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-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-xsm:hosts-allocate:starved:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit2:hosts-allocate:starved:nonblocking
    xen-4.17-testing:test-arm64-arm64-libvirt-raw:hosts-allocate:starved:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl:hosts-allocate:starved:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-credit1:hosts-allocate:starved:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-thunderx:hosts-allocate:starved:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-vhd:hosts-allocate:starved:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl-xsm:hosts-allocate:starved:nonblocking
X-Osstest-Versions-This:
    xen=958706fd2e178ffe8e5597b05b694b494e24258b
X-Osstest-Versions-That:
    xen=6eb98dda5c91e68555684c57a2c9bd119ff082c1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 13 Dec 2023 14:39:58 +0000

flight 184109 xen-4.17-testing real [real]
flight 184124 xen-4.17-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/184109/
http://logs.test-lab.xenproject.org/osstest/logs/184124/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-qemut-rhel6hvm-intel 14 guest-start/redhat.repeat fail pass in 184124-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184007
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184007
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184007
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184007
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184007
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184007
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184007
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184007
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184007
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184007
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184007
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184007
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-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-i386-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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt     15 migrate-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-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-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm  3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl-credit2   3 hosts-allocate               starved  n/a
 test-arm64-arm64-libvirt-raw  3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl           3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl-credit1   3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl-thunderx  3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl-vhd       3 hosts-allocate               starved  n/a
 test-arm64-arm64-xl-xsm       3 hosts-allocate               starved  n/a

version targeted for testing:
 xen                  958706fd2e178ffe8e5597b05b694b494e24258b
baseline version:
 xen                  6eb98dda5c91e68555684c57a2c9bd119ff082c1

Last test of basis   184007  2023-12-06 10:07:12 Z    7 days
Testing same since   184109  2023-12-12 14:07:07 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@citrix.com>
  George Dunlap <george.dunlap@cloud.com>
  Henry Wang <Henry.Wang@arm.com>
  Jason Andryuk <jandryuk@gmail.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Michal Orzel <michal.orzel@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                                          starved 
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 starved 
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      starved 
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  starved 
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  starved 
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         fail    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 starved 
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 starved 
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      starved 
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   6eb98dda5c..958706fd2e  958706fd2e178ffe8e5597b05b694b494e24258b -> stable-4.17


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 14:44:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 14:44:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654072.1020711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDQTe-0000VS-4m; Wed, 13 Dec 2023 14:44:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654072.1020711; Wed, 13 Dec 2023 14:44: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 1rDQTe-0000VL-28; Wed, 13 Dec 2023 14:44:46 +0000
Received: by outflank-mailman (input) for mailman id 654072;
 Wed, 13 Dec 2023 14:44: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=Mw9L=HY=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDQTd-0000VD-4B
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 14:44:45 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 277421bd-99c6-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 15:44:44 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id A5E9D4EE0737;
 Wed, 13 Dec 2023 15:44:43 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 277421bd-99c6-11ee-98e9-6d05b1d4d9a1
MIME-Version: 1.0
Date: Wed, 13 Dec 2023 15:44:43 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 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>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 2/7] x86/mm: address MISRA C:2012 Rule 2.1
In-Reply-To: <0ad1d3f5-2a23-4ee9-a6e7-ebb824d2b7d7@suse.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <5913d8871ff6c4f320c521e50e550a64e58d4351.1702283415.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312111741390.1703076@ubuntu-linux-20-04-desktop>
 <ff95c65f53ab8acfd577ec132009cd7b@bugseng.com>
 <0ad1d3f5-2a23-4ee9-a6e7-ebb824d2b7d7@suse.com>
Message-ID: <8a49facc4fbf4d3fefb91b9b5bef3305@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 2023-12-12 10:53, Jan Beulich wrote:
> On 12.12.2023 10:12, Nicola Vetrini wrote:
>> On 2023-12-12 02:42, Stefano Stabellini wrote:
>>> On Mon, 11 Dec 2023, Nicola Vetrini wrote:
>>>> The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
>>>> is unreachable because all switch clauses end with returns.
>>>> However, some of them can be substituted with "break"s to allow
>>>> the "return 0" outside the switch to be reachable.
>>>> 
>>>> No functional changes.
>>> 
>>> This is correct but makes the code inconsistent. I would either 
>>> remove
>>> the return 0; at the end of arch_memory_op, or do the following:
>>> 
>>> - initialize rc to 0 at the beginning: int rc = 0;
>>> - all switch clauses break instead of return;
>>> - at the end: return rc;
>> 
>> Given the feedback on the Arm side, the first solution is likely to be
>> preferred.
> 
> I wouldn't mind either option, with
> - the former ensured to be okay with all compiler versions we (still)
>   support,

I tested a stripped-down version of the switch on godbolt.org (as far 
back as gcc-4.8.5) and it doesn't complain. It should be tested on a 
real Xen build, though.

> - the latter having the initialize rc to 0 part dropped; imo it's 
> better
>   if every case block makes sure to set the intended value explicitly.
> 

This is a lot of churn, I'd rather avoid it.

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 15:12:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 15:12:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654077.1020721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDQtm-0005MD-7f; Wed, 13 Dec 2023 15:11:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654077.1020721; Wed, 13 Dec 2023 15:11:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDQtm-0005M6-4m; Wed, 13 Dec 2023 15:11:46 +0000
Received: by outflank-mailman (input) for mailman id 654077;
 Wed, 13 Dec 2023 15:11:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UN0u=HY=gmail.com=dpsmith.dev@srs-se1.protection.inumbo.net>)
 id 1rDQtk-0005Lh-Qq
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 15:11:44 +0000
Received: from mail-qv1-xf36.google.com (mail-qv1-xf36.google.com
 [2607:f8b0:4864:20::f36])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ec61cf8a-99c9-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 16:11:43 +0100 (CET)
Received: by mail-qv1-xf36.google.com with SMTP id
 6a1803df08f44-67a9cba087aso49059736d6.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 07:11:43 -0800 (PST)
Received: from [10.10.1.94] (static-72-81-132-2.bltmmd.fios.verizon.net.
 [72.81.132.2]) by smtp.gmail.com with ESMTPSA id
 c11-20020a0ce64b000000b0067ab7eada1dsm5158876qvn.59.2023.12.13.07.11.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 07:11:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec61cf8a-99c9-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702480302; x=1703085102; 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=73Cstw290dL3F2NVRvr54YyF04NGyknLRrd77sTMgqY=;
        b=ATkZPzgSvT3u3wZRAXmlRusNQMy2WiK3DC8KC21/wRa31B6K7QKlMUEOVzVJZmkB1G
         gjxYzDLv3qqbXN5VV+/p9/AmH5fLBFoEFqOX1RJ9kiTQsaFI5xZA7z2ialVJDnYMlsrs
         VwA+nTtpDVhQqE/6EM7nroawwPZ0ZDnXhaEWqQ7Ie//TSomko5x5hkI9s1pQSgILCzvb
         bEIoAnWLbhrE0iDL/oNi8097ft3COaSYnyy6X/hACAyRHt7vy3DpVywaHaLTRcu6o5y8
         dHGO2MOrsXAhJa+HWvWkAhgkVmKyKF7yIHmtODs055Tq/ke3cqwx+0Q0rsFE1oOHAHRy
         9tlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702480302; x=1703085102;
        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=73Cstw290dL3F2NVRvr54YyF04NGyknLRrd77sTMgqY=;
        b=ec7bDGTuZM1H6hSWJ97wxOrwbiEPh1lEGlDEQlCFD0crNujuP4p0UlVF9l9zNC43aN
         DrtEEUKp24pwvyK53YNVV4U1Dvlud+V+8sSN4tovIsiTM7h1J22kP/ORdq4hvF+AH2Pa
         GU+afmN20qD8JDkgMLJf6r6EU0hv0oQ/q0bqYTmjahQd5z5BKR3a+sbgjtK3jD+1aSwP
         uZYmvLP72Cth0n83QQo+3a2JT+yH40KaiGw+u8t+lhiIvAsszblvbjiFFjJ6FY+aR7dI
         JJ/3XC1VZaNcYWqlNS5MYTgtjUsOrBdE+i1h18NOp3/SRmFEPgPSExasBkI2TSoNL3hi
         +BPQ==
X-Gm-Message-State: AOJu0YzKl88I4XhOij/Ihk8AIAgdI2dV22emfCaTrQYhXlYwfPBxlDx6
	ErZhanz5dbNmJTTN0uahzdk=
X-Google-Smtp-Source: AGHT+IFjCYiMzYjaXbyYSHWcaFPtcgZUOF/2El6isre/4/9pxaWQiUQJhfLANx39wZXkWdNkq5oeIQ==
X-Received: by 2002:a0c:eb0c:0:b0:67a:b4f5:577a with SMTP id j12-20020a0ceb0c000000b0067ab4f5577amr9363106qvp.88.1702480302337;
        Wed, 13 Dec 2023 07:11:42 -0800 (PST)
Message-ID: <41179178-a1cd-4b9f-8955-f9f2acdb4967@gmail.com>
Date: Wed, 13 Dec 2023 10:11:41 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
Content-Language: en-US
To: George Dunlap <george.dunlap@cloud.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Kelly Choi <kelly.choi@cloud.com>, xen-devel@lists.xenproject.org,
 committers@xenproject.org
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com>
 <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop>
 <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
From: "dpsmith.dev" <dpsmith.dev@gmail.com>
In-Reply-To: <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 12/1/23 05:27, George Dunlap wrote:
> On Thu, Nov 30, 2023 at 10:28â€¯PM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
>>
>> Hi all,
>>
>> This vote is in the context of this thread:
>> https://marc.info/?l=xen-devel&m=169213351810075
> 
> To add slightly more context.
> 
> The issue here is more than a simple "should we use the word broken or
> not".  We already have a mechanism for resolving this, which is that
> the maintainers of the code in question (in this case THE REST), can
> vote.  In any case, on that thread, four of THE REST were opposed to
> using the word "broken" in technical documentation, and one in favor.
> 
> However -- and I hope I'm not misrepresenting Andy here -- Andy thinks
> that position is preposterous, and that this kind of request is a
> clear example of a kind of a pattern of unreasonable review which is
> damaging to the project and driving away contributors.  Daniel Smith
> at least supported the use of the word "broken" in that thread as
> well; and (hoping I'm not reading too much into it), the tone of
> writing also suggests a level of exasperation.  Andy seems to think
> there are others who agree with him as well. This specific issue has
> been sort of simmering in the background since August, and we're
> trying to get it resolved.
> 
> In my discussions with Andy, trying to understand his point of view,
> we always reach a sort of impasse, where Andy thinks the majority of
> contributors would agree with him, that insisting on removing "broken"
> is a completely unreasonable request; and I think that the majority of
> contributors would agree with me, that insisting on removing "broken"
> is a simple enforcement of long-established norms about how technical
> documentation is written.
> 
> Everyone would agree, I think, that community norms should be upheld;
> everyone agrees that unreasonable nitpicking or imposition of personal
> idiosyncratic preferences should be avoided; but in this case we
> disagree about whether "don't use broken in technical documentation"
> is a "community norm" or "personal idiosyncratic preference".
> 
> So the idea was to run a test and find out.  If most people in the
> community really do think that "broken" is suitable for the
> documentation in our project, then of course the maintainers should
> stop objecting to that kind of language.  If most of the people in the
> community think that "broken" is *not* suitable for technical
> documentation, then of course this isn't an example of unreasonable
> review (although other instances may be).
> 
> Fundamentally a lot of these sorts of issues come up because different
> parts of the community are not "on the same page".  The question is,
> how do we *get* on the same page?  I don't want to have a vote or poll
> over every little issue; but if we really have a deep 2(+) / 4 split,
> it's probably worth having some sort of a discussion to figure out
> where we are.  Hence the poll.
> 
> I would have worded it differently; but nonetheless, it's a sort of
> single data point.  What do you as the community think?  Is "this
> hypercall is broken" the sort of thing you'd like us to prevent, or is
> that being unreasonable?
> 

While this survey may have been released with the best of intentions, I 
can't help but to find it poorly conceived. Banning words, whether in 
general or for a specific instance, is not something to be taken lightly 
via "informal vote", and in my humble opinion is not addressing the 
underlying issue at hand. In fact, and not to be overly dire, the result 
is that it has put the project at the verge of a fork and/or collapse of 
the project as a whole. This survey must be immediately recalled, all 
results destroyed and anyone that has reviewed said results, should not 
discuss them, either publicly or privately.

I do not feel that a rush to form a Technical Advisory Board would 
address the larger issue at hand either. I would instead call for a 
bounded-duration working group to be convened, with an explicit charter 
to collect and vet community issues. Individuals may express any and all 
grievances publicly or privately to the working group. The goal for this 
group would be to listen, debate, and ultimately draft a set of 
recommendations for governance and/or other measures to achieve 
community reconciliation.  As such, the makeup of said working group 
must be those with a cultural understanding of Xen, but a level removed 
from the day-to-day happenings on xen-devel.

For instance, I would nominate Rich Persaud to chair and oversee 
membership of the working group. To my knowledge, Rich is the longest 
standing (XenSource, 2005) active community member that has continually 
worked for the betterment of the community as a whole. He is not a 
maintainer nor a direct code contributor, which I believe best positions 
him to be objective when considering disputes. From there, not to thrust 
this upon anyone unbeknownst, but I would suggest Xen contributors like 
Christopher Clark, David Woodhouse, and Tamas Lengyl as working group 
candidates for Rich to consider.  Each could apply their experience from 
Xen and other OSS communities, and none are immersed in the day-to-day 
minutiae of Xen development.

Very Respectfully,
Daniel P. Smith


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 15:21:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 15:21:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654082.1020731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDR30-0006yb-4j; Wed, 13 Dec 2023 15:21:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654082.1020731; Wed, 13 Dec 2023 15:21:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDR30-0006yU-1L; Wed, 13 Dec 2023 15:21:18 +0000
Received: by outflank-mailman (input) for mailman id 654082;
 Wed, 13 Dec 2023 15:21:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CjQj=HY=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rDR2y-0006wp-46
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 15:21:16 +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 41393aa6-99cb-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 16:21:14 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-336210c34ebso3238705f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 07:21:14 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 l6-20020adfa386000000b00336419542f0sm1299275wrb.87.2023.12.13.07.21.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 07:21:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41393aa6-99cb-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702480874; x=1703085674; 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=ycyKjlVlAV8V+V5o2A+LTIncCi5f6PuD+Wrhw0xReOM=;
        b=FWoed5o38vTNJOxLJkN1kLLDwznYPxF/XulxgONLM6LVYeVMKY0g3MOKSneH4rxMdC
         eHwt6HttYjxwM/yWC3TT5EbqMVzu2l87USW4qoDtSlA+OQtxpFRLEHeYWl8GyYMXg5BB
         Kpt8WhSf+8sPpxLNG5nzYyQ/ExsoK31tCSFZU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702480874; x=1703085674;
        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=ycyKjlVlAV8V+V5o2A+LTIncCi5f6PuD+Wrhw0xReOM=;
        b=PnOo+uH+oYzcrbMEGi3Y+ge4jM55uwb1AQJQkfqnkjMYUJ03NVZwNBc5mQQ/QsF6iO
         0eJbX6gNJnGeskVx+GGNvSExxl3sE0Kl7k6bTd/D8P3rdxwAPAiQGcutcF/rQUFuVcTk
         je6Fpup5i8qVeX/fH4kFFHZw1j7yT0KUZOPoDrKk9BeJd5YyinJHRIDMllpDALYNvtrT
         CYiT0jqrT4nYvm5bBxOIYUVeuVqle1zL0mNClmdGS4BpEwzWmf2LeqERrUlCejt8Vfok
         qiZvsjYFBkw8emW0RpDDbIQvk0wlyqbEybYfupHb6gZ51JRjkFh41o1JlyS6zwz30AP0
         Zvww==
X-Gm-Message-State: AOJu0Yzr2oD3YTawDxzO7nmJNuKx63Xz/R4WOH4mQnqicnnhPazdmL7m
	JfASe+JqB1zLS1bNdsgeVxRSpyk90wzsqT2rzEs=
X-Google-Smtp-Source: AGHT+IHV0vGICmHPYRAeJSqchVRhkVwINfHODWsargtBpSENgNKqHj71viGk/cwLjsewKn+tOSU66A==
X-Received: by 2002:adf:fd0d:0:b0:336:38ec:3fed with SMTP id e13-20020adffd0d000000b0033638ec3fedmr480208wrr.81.1702480874326;
        Wed, 13 Dec 2023 07:21:14 -0800 (PST)
Date: Wed, 13 Dec 2023 15:21:13 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>
Subject: Re: [PATCH] tools/libs/evtchn: fix locking in Mini-OS
Message-ID: <95f5cbad-eaea-47e7-a240-d5e99b1f8eb7@perard>
References: <20231211071017.27752-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231211071017.27752-1-jgross@suse.com>

On Mon, Dec 11, 2023 at 08:10:17AM +0100, Juergen Gross wrote:
> When adding locking to tools/libs/evtchn/minios.c a semaphore was
> used. This can result in deadlocks, as the lock is taken inside the
> event handler, which can interrupt an already locked region.

Or maybe the issue was with xenevtchn_unbind() which calls
port_dealloc() which was also trying to get the mutex.

> The fix is rather simple, as Mini-OS is supporting a single vcpu
> only. So instead of the semaphore it is enough to disable interrupts
> when operating on the port list.

Semaphore implementation does that as well, so that's fine, and it works
recursively.

> Fixes: bc4fe94a69d4 ("ools/libs/evtchn: replace assert()s in stubdom with proper locking")
> Signed-off-by: Juergen Gross <jgross@suse.com>


And osstest is happy with the patch:
http://logs.test-lab.xenproject.org/osstest/logs/184123/
> test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass
> test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass

So overall, patch looks fine to me:
Acked-by: Anthony PERARD <anthony.perard@citrix.com>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 15:52:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 15:52:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654087.1020741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDRWl-0003rA-JP; Wed, 13 Dec 2023 15:52:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654087.1020741; Wed, 13 Dec 2023 15:52:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDRWl-0003r3-EX; Wed, 13 Dec 2023 15:52:03 +0000
Received: by outflank-mailman (input) for mailman id 654087;
 Wed, 13 Dec 2023 15:52: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 1rDRWk-0003qt-QM; Wed, 13 Dec 2023 15:52: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 1rDRWk-0003y3-MQ; Wed, 13 Dec 2023 15:52:02 +0000
Received: from [172.16.148.1] (helo=osstest.test-lab.xenproject.org)
 by infra.test-lab.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1rDRWk-0004mD-4q; Wed, 13 Dec 2023 15:52:02 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDRWk-00052I-4K; Wed, 13 Dec 2023 15:52:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=bhOJquFIFMFYKKCGxIagyRb5/9dNhwghrxX4NHCVMUk=; b=zfML/1dwGWv5femlxlo6386tBl
	QpAIkzbvUSLDNM4YtxLhOGXvOV2zVCOvIvUyae5ofT8e8ohWp4MeouXREY7AkMh4Uogxy7cMqKhCA
	EVp/faiYmDRc9TdQPV+Pfu9z+fpOLatvcol67tXZq2h9Lxu9myoOtLMFAEQTcCwAUb/M=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184125-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184125: 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=a236b74b961faa045640275605e319bba45483c1
X-Osstest-Versions-That:
    xen=666e3c294d50e4a7f87a4d22757b7ffe5863b4df
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 13 Dec 2023 15:52:02 +0000

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

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                  a236b74b961faa045640275605e319bba45483c1
baseline version:
 xen                  666e3c294d50e4a7f87a4d22757b7ffe5863b4df

Last test of basis   184122  2023-12-13 10:02:13 Z    0 days
Testing same since   184125  2023-12-13 13:02:06 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  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
   666e3c294d..a236b74b96  a236b74b961faa045640275605e319bba45483c1 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 16:12:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 16:12:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654093.1020760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDRqD-0008DU-BO; Wed, 13 Dec 2023 16:12:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654093.1020760; Wed, 13 Dec 2023 16:12:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDRqD-0008DN-8n; Wed, 13 Dec 2023 16:12:09 +0000
Received: by outflank-mailman (input) for mailman id 654093;
 Wed, 13 Dec 2023 16:12:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mCut=HY=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDRqC-0007yZ-9u
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 16:12:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c40281e-99d2-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 17:12:06 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id E527E4EE0738;
 Wed, 13 Dec 2023 17:12:05 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c40281e-99d2-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	Wei Liu <wl@xen.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH v2 1/2] x86/IOMMU: address violations of MISRA C:2012 Rule 14.4
Date: Wed, 13 Dec 2023 17:10:50 +0100
Message-Id: <746a33fff1386b2e76657b5f7cfb31f3b117a1fe.1702310368.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702310368.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702310368.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
headline states:
"The controlling expression of an if statement and the controlling
expression of an iteration-statement shall have essentially Boolean type".

Add comparisons to avoid using enum constants as controlling expressions
to comply with Rule 14.4.
No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
Changes in v2
- rename prefix from AMD/IOMMU to x86/IOMMU
- move changes on msi.c and hpet.c in this patch.
---
 xen/arch/x86/hpet.c                      | 6 +++---
 xen/arch/x86/msi.c                       | 4 ++--
 xen/drivers/passthrough/amd/iommu_init.c | 4 ++--
 xen/drivers/passthrough/vtd/iommu.c      | 4 ++--
 xen/drivers/passthrough/vtd/quirks.c     | 2 +-
 5 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index 7be26c6a9b..d1ddc8ddf6 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -279,7 +279,7 @@ static int hpet_msi_write(struct hpet_event_channel *ch, struct msi_msg *msg)
 {
     ch->msi.msg = *msg;
 
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         int rc = iommu_update_ire_from_msi(&ch->msi, msg);
 
@@ -353,7 +353,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
     u32 cfg = hpet_read32(HPET_Tn_CFG(ch->idx));
     irq_desc_t *desc = irq_to_desc(ch->msi.irq);
 
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         ch->msi.hpet_id = hpet_blockid;
         ret = iommu_setup_hpet_msi(&ch->msi);
@@ -372,7 +372,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
         ret = __hpet_setup_msi_irq(desc);
     if ( ret < 0 )
     {
-        if ( iommu_intremap )
+        if ( iommu_intremap != iommu_intremap_off )
             iommu_update_ire_from_msi(&ch->msi, NULL);
         return ret;
     }
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 7f8e794254..72dce2e4ab 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -189,7 +189,7 @@ static int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
 {
     entry->msg = *msg;
 
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         int rc;
 
@@ -555,7 +555,7 @@ int msi_free_irq(struct msi_desc *entry)
             destroy_irq(entry[nr].irq);
 
         /* Free the unused IRTE if intr remap enabled */
-        if ( iommu_intremap )
+        if ( iommu_intremap != iommu_intremap_off )
             iommu_update_ire_from_msi(entry + nr, NULL);
     }
 
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 5515cb70fd..e02a09a9a7 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -1480,7 +1480,7 @@ int __init amd_iommu_init(bool xt)
             goto error_out;
     }
 
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
         register_keyhandler('V', &amd_iommu_dump_intremap_tables,
                             "dump IOMMU intremap tables", 0);
 
@@ -1498,7 +1498,7 @@ int __init amd_iommu_init_late(void)
 
     /* Further initialize the device table(s). */
     pci_init = true;
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
         rc = iterate_ivrs_mappings(amd_iommu_setup_device_table);
 
     for_each_amd_iommu ( iommu )
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index e13b7d99db..bd6d69a6f5 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2543,7 +2543,7 @@ static int __must_check init_vtd_hw(bool resume)
     /*
      * Enable interrupt remapping
      */  
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         int apic;
         for ( apic = 0; apic < nr_ioapics; apic++ )
@@ -2559,7 +2559,7 @@ static int __must_check init_vtd_hw(bool resume)
             }
         }
     }
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
     {
         for_each_drhd_unit ( drhd )
         {
diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
index 5a56565ea8..950dcd56ef 100644
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -392,7 +392,7 @@ void __init platform_quirks_init(void)
     map_igd_reg();
 
     /* Tylersburg interrupt remap quirk */
-    if ( iommu_intremap )
+    if ( iommu_intremap != iommu_intremap_off )
         tylersburg_intremap_quirk();
 }
 
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 16:12:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 16:12:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654092.1020750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDRqB-0007ym-3j; Wed, 13 Dec 2023 16:12:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654092.1020750; Wed, 13 Dec 2023 16: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 1rDRqB-0007yf-1A; Wed, 13 Dec 2023 16:12:07 +0000
Received: by outflank-mailman (input) for mailman id 654092;
 Wed, 13 Dec 2023 16:12:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mCut=HY=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDRq9-0007yZ-7N
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 16:12:05 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59f7d8e0-99d2-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 17:12:02 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id D99BA4EE0737;
 Wed, 13 Dec 2023 17:12:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59f7d8e0-99d2-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	Wei Liu <wl@xen.org>,
	Kevin Tian <kevin.tian@intel.com>
Subject: [PATCH v2 0/2] xen: address violations of MISRA C:2012 Rule 14.4
Date: Wed, 13 Dec 2023 17:10:49 +0100
Message-Id: <cover.1702310368.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
headline states:
"The controlling expression of an if statement and the controlling
expression of an iteration-statement shall have essentially Boolean type".

Add comparisons to avoid using enum constants as controlling expressions
to comply with Rule 14.4.

Changes in v2:
- rename patch prefix from AMD/IOMMU to x86/IOMMU;
- move changes on hpet.c and msi.c from xen/x86 to x86/IOMMU patch;
- rename patch prefix from xen/x86 to xen/x86_emulate.

Maria Celeste Cesario (2):
  x86/IOMMU: address violations of MISRA C:2012 Rule 14.4
  xen/x86_emulate: address violations of MISRA C:2012 Rule 14.4

 xen/arch/x86/hpet.c                      | 6 +++---
 xen/arch/x86/msi.c                       | 4 ++--
 xen/arch/x86/x86_emulate/x86_emulate.c   | 8 ++++----
 xen/drivers/passthrough/amd/iommu_init.c | 4 ++--
 xen/drivers/passthrough/vtd/iommu.c      | 4 ++--
 xen/drivers/passthrough/vtd/quirks.c     | 2 +-
 6 files changed, 14 insertions(+), 14 deletions(-)

-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 16:12:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 16:12:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654094.1020771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDRqV-0000DJ-PM; Wed, 13 Dec 2023 16:12:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654094.1020771; Wed, 13 Dec 2023 16:12:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDRqV-0000DA-MR; Wed, 13 Dec 2023 16:12:27 +0000
Received: by outflank-mailman (input) for mailman id 654094;
 Wed, 13 Dec 2023 16:12: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=mCut=HY=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDRqU-00009X-1O
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 16:12:26 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6738794a-99d2-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 17:12:25 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 63DCC4EE0737;
 Wed, 13 Dec 2023 17:12:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6738794a-99d2-11ee-98e9-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@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>,
	Wei Liu <wl@xen.org>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH v2 2/2] xen/x86_emulate: address violations of MISRA C:2012 Rule 14.4
Date: Wed, 13 Dec 2023 17:10:51 +0100
Message-Id: <da78956b9dcb09ef78cc31debb58ad781b33dbe9.1702310368.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702310368.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702310368.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
headline states:
"The controlling expression of an if statement and the controlling
expression of an iteration-statement shall have essentially Boolean type".

Add comparisons to avoid using enum constants as controlling expressions
to comply with Rule 14.4.
No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
Changes in v2:
- move changes on hpet.c and msi.c to x86/IOMMU patch.
- rename prefix from xen/x86 to xen/x86_emulate.
---
 xen/arch/x86/x86_emulate/x86_emulate.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index cf780da501..00b7365ed3 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -1320,7 +1320,7 @@ x86_emulate(
         ea.bytes = 2;
         goto srcmem_common;
     case SrcMem:
-        if ( state->simd_size )
+        if ( state->simd_size != simd_none )
             break;
         ea.bytes = (d & ByteOp) ? 1 : op_bytes;
     srcmem_common:
@@ -1460,7 +1460,7 @@ x86_emulate(
         /* Becomes a normal DstMem operation from here on. */
     case DstMem:
         generate_exception_if(ea.type == OP_MEM && evex.z, X86_EXC_UD);
-        if ( state->simd_size )
+        if ( state->simd_size != simd_none )
         {
             generate_exception_if(lock_prefix, X86_EXC_UD);
             break;
@@ -8176,7 +8176,7 @@ x86_emulate(
         goto done;
     }
 
-    if ( state->rmw )
+    if ( state->rmw != rmw_NONE )
     {
         ea.val = src.val;
         op_bytes = dst.bytes;
@@ -8205,7 +8205,7 @@ x86_emulate(
 
         dst.type = OP_NONE;
     }
-    else if ( state->simd_size )
+    else if ( state->simd_size != simd_none )
     {
         generate_exception_if(!op_bytes, X86_EXC_UD);
         generate_exception_if((vex.opcx && (d & TwoOp) &&
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 16:18:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 16:18:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654106.1020782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDRw0-0001JM-F6; Wed, 13 Dec 2023 16:18:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654106.1020782; Wed, 13 Dec 2023 16: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 1rDRw0-0001JF-AV; Wed, 13 Dec 2023 16:18:08 +0000
Received: by outflank-mailman (input) for mailman id 654106;
 Wed, 13 Dec 2023 16: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=BdY9=HY=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1rDRvz-0001J9-7l
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 16:18:07 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31eb5b66-99d3-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 17:18:05 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3333a3a599fso4411555f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 08:18:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31eb5b66-99d3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702484284; x=1703089084; 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=+tuZaQdrAxao2zUrd8u8T+Wt5o/b8bVscyhk+k0kxUE=;
        b=KY6Azdg/h8x1QuNtrob20pi8FY8anlKSrdh4kXD6JYHqITMrzCCy6B1VYSx/6R/RM1
         0sG5ytG5i0UZe97SEx0cN5vI1DpKFapLI1mOhyklaeJGCzzGeq3s838cJb2s+oJ+W2lO
         9XdXybfcJMXIj9MTzkIEmPi1yAOD+pGKL/ptc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702484284; x=1703089084;
        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=+tuZaQdrAxao2zUrd8u8T+Wt5o/b8bVscyhk+k0kxUE=;
        b=riIlHqbdUOdoyQ0uRNOI72SZ0uT64VAYvGLDkECH7mPdNzYux4+vAjEQbJL0EkH+vD
         2s7CV+xyG+v9oxM1MxQ6kkJNKuXjkPATQobz9jrdKnqlXVfsfJF7HmLMAGXpv/cibhle
         gyNt07c4I7/vp1WW+LNm5WAG9HhPJ3yFBpC5e+Dme73eeZdlWudwB6Te8M0xJoV/Xw7Q
         hZD79OvCSlSzk5cQI8zXbx527ZHTHJsg9h9Xt4dknqIrHobmXviZrdAH4GD2EF5YBMkW
         v4dTCiIjuP5JObO6z80//UwW40yPOIJ7IJe2aQZ6iCsdiFiXibx3NiaKHVGLidgx9YmJ
         vFVQ==
X-Gm-Message-State: AOJu0YwN6Lgr2PsMPbnPrJTIUOpxRHnUsq4Rf9ncUgEmJxTkt71bhlpj
	hY6dEvB4sJgL5JwiHQG8zWGdlPScyTG8xqN2fpEC
X-Google-Smtp-Source: AGHT+IFlsK9lA/Dg2yiTnHHD8Bspket/+0/wDAo+4R6rvF0cfLPRD0LVRqNF+mRTtg1ORtEEZtomLBK4WV2ovqafZA0=
X-Received: by 2002:a05:600c:12c6:b0:40c:3612:386d with SMTP id
 v6-20020a05600c12c600b0040c3612386dmr4315660wmd.170.1702484284570; Wed, 13
 Dec 2023 08:18:04 -0800 (PST)
MIME-Version: 1.0
References: <20231213135147.6749-1-roger.pau@citrix.com>
In-Reply-To: <20231213135147.6749-1-roger.pau@citrix.com>
From: Ross Lagerwall <ross.lagerwall@cloud.com>
Date: Wed, 13 Dec 2023 16:17:53 +0000
Message-ID: <CAG7k0Eq+3nTts_Ak-yRDpqDV2rKXeED0o9zDhybQbUG6pW+JQg@mail.gmail.com>
Subject: Re: [PATCH] livepatch-build-tools: fix misuse of script directory as
 work directory
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, 
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 13, 2023 at 1:52=E2=80=AFPM Roger Pau Monne <roger.pau@citrix.c=
om> wrote:
>
> It's incorrect to assume that the script directory will always match the
> directory the script is executed from.  Instead cache the directory at th=
e
> start of script execution in order to be able to get back to it if needed=
.
>
> Fixes: 629ab8ddb775 ('livepatch-build-tools: do not use readlink -m optio=
n')
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  livepatch-build | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/livepatch-build b/livepatch-build
> index f622683fc56c..e318cecd4da6 100755
> --- a/livepatch-build
> +++ b/livepatch-build
> @@ -25,6 +25,7 @@
>  # script.
>
>  SCRIPTDIR=3D"$(readlink -f $(dirname $(type -p $0)))"
> +WORKDIR=3D"$(readlink -f -- .)"
>  CPUS=3D"$(getconf _NPROCESSORS_ONLN)"
>  DEBUG=3Dn
>  XEN_DEBUG=3Dn
> @@ -459,7 +460,7 @@ if [ "${SKIP}" !=3D "build" ]; then
>  fi
>
>  if [ "${SKIP}" !=3D "diff" ]; then
> -    cd "${SCRIPTDIR}" || die
> +    cd "${WORKDIR}" || die
>      [ -d "$outputarg" ] || die "Output directory does not exist"
>      OUTPUT=3D"$(readlink -f -- "$outputarg")"
>
>
> base-commit: 0ed8ef88dc300750696a64e89efa3b82502f6dc7
> prerequisite-patch-id: 20327fdf775db3903c8067a0642254d67c495806
> --
> 2.43.0
>

Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>

Thanks,
Ross


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 16:25:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 16:25:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654111.1020792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDS3E-0003Go-6Z; Wed, 13 Dec 2023 16:25:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654111.1020792; Wed, 13 Dec 2023 16:25: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 1rDS3E-0003Gh-28; Wed, 13 Dec 2023 16:25:36 +0000
Received: by outflank-mailman (input) for mailman id 654111;
 Wed, 13 Dec 2023 16:25: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 1rDS3C-0003Gb-RQ
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 16:25: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 1rDS3C-000540-7L; Wed, 13 Dec 2023 16:25:34 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238] helo=[192.168.3.12])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDS3B-0005xh-TS; Wed, 13 Dec 2023 16:25:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=KQVQBYD9punWx/JFuIO9bxPLUotYPvGu70eUjPbbOs4=; b=RlER8AMaCMOdvBTv/aTxUBtU8K
	cjmyl7t2NEF/tnM6FI405GABBrsR6IOGSaycfbUldEI7+5LCAuvwmW2Q/S1mlQ6aEua2OiyxmjpMt
	aYPKiJ9xxV6o5/mPd1vVjOcgJzpZrHqAgcHaI7wxm7e/mnGy9Tmmnly5EN8hq7HpD1J8=;
Message-ID: <cb54c8c1-ad51-4718-8aa0-bee05e263fac@xen.org>
Date: Wed, 13 Dec 2023 16:25:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen/arm: ffa: return FFA_RET_NOT_SUPPORTED on
 unhandled calls
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>,
 Jens Wiklander <jens.wiklander@linaro.org>, xen-devel@lists.xenproject.org
Cc: patches@linaro.org, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20231213103241.2346813-1-jens.wiklander@linaro.org>
 <0b7a0a09-ac54-4ef0-b4bc-c86f744089ed@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0b7a0a09-ac54-4ef0-b4bc-c86f744089ed@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 13/12/2023 13:06, Michal Orzel wrote:
> Hi,
> 
> On 13/12/2023 11:32, Jens Wiklander wrote:
>>
>>
>> Until now has an unsupported FF-A request been reported back with
> NIT: I think 'has' is in the wrong place

Indeed. I have updated the commit message and committed.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 16:32:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 16:32:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654114.1020802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDS9k-0005Mg-Te; Wed, 13 Dec 2023 16:32:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654114.1020802; Wed, 13 Dec 2023 16:32:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDS9k-0005MZ-Oe; Wed, 13 Dec 2023 16:32:20 +0000
Received: by outflank-mailman (input) for mailman id 654114;
 Wed, 13 Dec 2023 16:32: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 1rDS9j-0005MP-Ir; Wed, 13 Dec 2023 16:32: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 1rDS9j-0005CT-FS; Wed, 13 Dec 2023 16:32: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 1rDS9j-0005i2-1E; Wed, 13 Dec 2023 16:32:19 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDS9j-0001bc-0U; Wed, 13 Dec 2023 16:32: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=YMxjpqMlBTST9SEtEsb/Hnn4eZRoateAUiEmcGgoZqM=; b=t/6o2JnFvLlEeMUOlkwqcn4uRB
	+Qr/tCGdHouV03mnA+lFoF6RM01J7pwg8TBfPie7TDdMoiG7FZ0EyBTawWOWRi4JDi/e7RnJVI1NL
	NxVtnxG9o/AeJvWytQzJibO6nWo7FCuZlpbElD6SzJvImW5VWvSfoLk/D/nLKPDbWVIY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184108-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.16-testing test] 184108: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.16-testing:test-amd64-i386-xl-qemut-debianhvm-amd64:guest-localmigrate/x10:fail:heisenbug
    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-i386-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-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-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-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop: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-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-amd64-amd64-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-amd64-i386-xl-pvshim:guest-start: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-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-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-vhd:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-xl-vhd:saverestore-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-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-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-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-arndale:saverestore-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-rtds:saverestore-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt: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-i386-libvirt-raw: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-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.16-testing:test-armhf-armhf-libvirt-qcow2: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
X-Osstest-Versions-This:
    xen=e7c3d6ceaf73120098f9213fd12f79fd50e8e588
X-Osstest-Versions-That:
    xen=4dfe95177b948d1f3ed27a801f603ed7f1bc36e8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 13 Dec 2023 16:32:19 +0000

flight 184108 xen-4.16-testing real [real]
flight 184126 xen-4.16-testing real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/184108/
http://logs.test-lab.xenproject.org/osstest/logs/184126/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-xl-qemut-debianhvm-amd64 18 guest-localmigrate/x10 fail pass in 184126-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183752
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183752
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183752
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 183752
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183752
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183752
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183752
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183752
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 183752
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183752
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 183752
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 183752
 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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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-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-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-amd64-i386-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-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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 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

version targeted for testing:
 xen                  e7c3d6ceaf73120098f9213fd12f79fd50e8e588
baseline version:
 xen                  4dfe95177b948d1f3ed27a801f603ed7f1bc36e8

Last test of basis   183752  2023-11-14 13:06:51 Z   29 days
Testing same since   184108  2023-12-12 14:07:04 Z    1 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                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     fail    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   4dfe95177b..e7c3d6ceaf  e7c3d6ceaf73120098f9213fd12f79fd50e8e588 -> stable-4.16


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 16:34:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 16:34:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654120.1020814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDSC2-00060j-DR; Wed, 13 Dec 2023 16:34:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654120.1020814; Wed, 13 Dec 2023 16:34:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDSC2-00060c-Al; Wed, 13 Dec 2023 16:34:42 +0000
Received: by outflank-mailman (input) for mailman id 654120;
 Wed, 13 Dec 2023 16: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=CjQj=HY=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rDSC1-00060W-Vz
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 16:34:42 +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 82e6ff0b-99d5-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 17:34:40 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c256ffdbcso73114585e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 08:34:40 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 n21-20020a05600c3b9500b0040b2a52ecaasm23231138wms.2.2023.12.13.08.34.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 08:34:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82e6ff0b-99d5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702485279; x=1703090079; 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=Nj0Q83XvuXxLhMhY7PSsyG+0vOtzeakcpdULBF6l2zw=;
        b=D4fwBVf8gApelpcssReXJDrdnF1x7qYTajh3REOoGuRfY62xGhD1ZFiiVLnrMCasjU
         7bzJWor/5OCobYO1DJXVol+i7OElb0vJQzyitpCErv67yavnm11Q3YXxQv9xm8hmkWOD
         s6wXZQMaS+lpyhJgmTRVbct3IflBpidy0ZEgY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702485279; x=1703090079;
        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=Nj0Q83XvuXxLhMhY7PSsyG+0vOtzeakcpdULBF6l2zw=;
        b=CjOqxu8v82poXzzBp2muFOTJMhd0L4DLXd1Nm55PELHA/SDLXx5TG1EytfbCViw51Q
         fQCTk2Q2yIGd8QXzgRK6d9UdCrxB+8sF9vrKgJ3nmGwafSuyOm3ibC8Zdp+i0luxyay/
         qtfiWwsAPfCibSMVFy+dIUfDMa9qawCIEgByQ9ZICJv7nulGjLYRSj193WEh3R03wahh
         7rfPGEukjofU53LYFdkAJHOSi5dk+BoXp/HRPMM3o/J2uaxHT/u0B1jkqdK6XUkFfmqw
         yfkbiWdGjtUhkzge0rBL+XJdzDjtHnrFM/CIajk/yhpbIxvuBQwASd+vYm/wcADSzMtY
         gS9w==
X-Gm-Message-State: AOJu0Yxl8HrGTZOyarjydFBbE+NQbcVhoDnsiHtKLRbwbf8vzRkUIgS6
	j5buvugUkhsxvHb7ohibV1SLHA==
X-Google-Smtp-Source: AGHT+IEEt+q/vmnkJM779zjwUKHjBe1K7aW3P4liMP8s+LDKjooSTJITTy8f64WlLlSuQTZywhJSlA==
X-Received: by 2002:a05:600c:3793:b0:40c:17cb:4558 with SMTP id o19-20020a05600c379300b0040c17cb4558mr4410143wmr.109.1702485279364;
        Wed, 13 Dec 2023 08:34:39 -0800 (PST)
Date: Wed, 13 Dec 2023 16:34:38 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [OSSTEST PATCH 0/3] Set CONFIG_X86_GENERIC=y for i386 kernel
 build
Message-ID: <53e3c1a3-f605-4930-97bd-f812a6eb272e@perard>
References: <20231208160226.14739-1-anthony.perard@citrix.com>
 <ZXg9PCXWaAcBtLEo@macbook>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ZXg9PCXWaAcBtLEo@macbook>

On Tue, Dec 12, 2023 at 12:00:12PM +0100, Roger Pau Monné wrote:
> On Fri, Dec 08, 2023 at 04:02:23PM +0000, Anthony PERARD wrote:
> > CONFIG_X86_GENERIC=y and fixes around arch specific config values.
> > 
> > Thanks,
> > 
> > Anthony PERARD (3):
> >   create_build_jobs: Set reset pvops_kconfig_overrides
> >   create_build_jobs: Enable X86_GENERIC for i386 kernel pvops jobs.
> >   ts-kernel-build: Remove use of $XEN_TARGET_ARCH
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> I would however request that if possible you expand a bit the
> description on patch 2 with the additional information provided by
> Juergen.

Pushed.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 16:39:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 16:39:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654124.1020825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDSGV-0006ij-Ut; Wed, 13 Dec 2023 16:39:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654124.1020825; Wed, 13 Dec 2023 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 1rDSGV-0006ic-Rh; Wed, 13 Dec 2023 16:39:19 +0000
Received: by outflank-mailman (input) for mailman id 654124;
 Wed, 13 Dec 2023 16:39: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=BdY9=HY=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1rDSGU-0006gz-UU
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 16:39:18 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 27c3e54f-99d6-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 17:39:16 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c3ceded81so44267935e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 08:39:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27c3e54f-99d6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702485556; x=1703090356; 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=xPRdQthbvAf4jHes04dP0b8FtKUtzb095r4Y3MTLn8s=;
        b=SgKQUiali1FLmhyniXqCSoNzULOjnGrGT4gv/7uS7dAbMAH4r++/7D9K5sEfcle9Nu
         HXdMA0CsqaFbw0GjyfvqyYUrk/uLzfH7kj6BXv3tAvlFt/FZqtQ8/idrXmb1mTzoItDM
         iJBztpp7BcctPtJnT/rUpHp9rWivhObgxxsf4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702485556; x=1703090356;
        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=xPRdQthbvAf4jHes04dP0b8FtKUtzb095r4Y3MTLn8s=;
        b=IU5+WnS2iqaP/6SsWqt9lexUl+MI2hCh9P+Y176hoF3xbTTOick+gZCIEpsSFzffzJ
         JhsFHNE0Z+e5ZnL5aT1CFOJSPu1tw1DyhNCQpIfH4JFxLuuchsY0v+VV3EBtIr+DbSLL
         v6fw70RvBkrAyr1ottMI8oHOiUaM15+8see02Yvy624UM+mePoBabPBcO5Q7skv4SKsk
         42nzeeZhhbHrAsEUcSKKpvW6C2YaB+bkVtqdZ5tdVKTrnow+UTFMYWjyAWySvH7lojdF
         oFJXN6HtT6Tl/EvJ7uZV62Q2oVjIgeOUkjdqIU/3Eon+Y91BgKK/ybiSlRIjlfgew65Y
         N36A==
X-Gm-Message-State: AOJu0YzKoPlYTiw1IwTHE9R7kQlDnQ6mZ7kHgkddttGXDFjHF4Zsa9Us
	lP1PDGWL6Pe3RAI4CNJtWwLwv3+OQCWc0rKPV9jvXAbtAt1Kk0algw==
X-Google-Smtp-Source: AGHT+IEBq74aFfWFi5b9YdCKH5uorgPe7NJlN1VPNLTB8q+y8+CI8gOxMoKiliR1Nb/b33M2KZLznyl7hggi3zNSOVY=
X-Received: by 2002:a05:600c:2d4b:b0:40c:3150:3d75 with SMTP id
 a11-20020a05600c2d4b00b0040c31503d75mr3618744wmg.108.1702485555988; Wed, 13
 Dec 2023 08:39:15 -0800 (PST)
MIME-Version: 1.0
References: <20231205123403.63813-1-roger.pau@citrix.com> <824c50c3-ad3f-4d97-a3e8-5343564cbde5@citrix.com>
 <ZW86TOTFn3JZswUO@macbook> <CAG7k0Eq72v7Y5HN+dckAkiL4+RHHUOaVCMW0TGwKdWa9wOeTMA@mail.gmail.com>
 <ZXbneT2XGoj8CtMW@macbook>
In-Reply-To: <ZXbneT2XGoj8CtMW@macbook>
From: Ross Lagerwall <ross.lagerwall@cloud.com>
Date: Wed, 13 Dec 2023 16:39:04 +0000
Message-ID: <CAG7k0ErYAYO9dq7KfwpcDU856Hau663ToLUmbk0KUTMMDQYB0A@mail.gmail.com>
Subject: Re: [PATCH] livepatch-build-tools: allow livepatching version.c
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, 
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 11, 2023 at 10:42=E2=80=AFAM Roger Pau Monn=C3=A9 <roger.pau@ci=
trix.com> wrote:
>
> On Wed, Dec 06, 2023 at 12:11:39PM +0000, Ross Lagerwall wrote:
> > On Tue, Dec 5, 2023 at 2:57=E2=80=AFPM Roger Pau Monn=C3=A9 <roger.pau@=
citrix.com> wrote:
> > >
> > > On Tue, Dec 05, 2023 at 02:15:05PM +0000, Andrew Cooper wrote:
> > > > On 05/12/2023 12:34 pm, Roger Pau Monne wrote:
> > > > > Currently version.o is explicitly ignored as the file would chang=
e as a result
> > > > > of the orignal and the patched build having possibly different da=
tes and
> > > > > times.
> > > > >
> > > > > Fix such difference by exporting the date and time from the build=
 script, so
> > > > > that both builds share the same build time.  This allows checking=
 for changes
> > > > > in version.c, since the rest of fields need to be manually change=
d in order to
> > > > > produce different output.
> > > > >
> > > > > Setting XEN_BUILD_{DATE,TIME} as an environment variable has been=
 supported
> > > > > since before livepatch support was added to Xen, so it's safe to =
export those
> > > > > variables unconditionally.
> > > > >
> > > > > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > > > > Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> > > > > ---
> > > > >  livepatch-build | 4 ++++
> > > > >  livepatch-gcc   | 2 --
> > > > >  2 files changed, 4 insertions(+), 2 deletions(-)
> > > > >
> > > > > diff --git a/livepatch-build b/livepatch-build
> > > > > index e2ccce4f7fd7..f622683fc56c 100755
> > > > > --- a/livepatch-build
> > > > > +++ b/livepatch-build
> > > > > @@ -417,6 +417,10 @@ if [ "${SKIP}" !=3D "build" ]; then
> > > > >
> > > > >      export CROSS_COMPILE=3D"${TOOLSDIR}/livepatch-gcc "
> > > > >
> > > > > +    # Force same date and time to prevent unwanted changes in ve=
rsion.c
> > > > > +    export XEN_BUILD_DATE=3D`LC_ALL=3DC date`
> > > > > +    export XEN_BUILD_TIME=3D`LC_ALL=3DC date +%T`
> > > >
> > > > Date is the one that goes wrong every time, but everything else in
> > > > compile.h can go wrong in a way that causes version.o to change.
> > >
> > > I've attempted to reflect that in "since the rest of fields need to b=
e
> > > manually changed in order to produce different output".
> > >
> > > For those to change there must be some kind of environment change
> > > between the original and the patched version build, and hence I don't
> > > think that would be supported.
> >
> > In general, yes. However, with this patch changes to the
> > hostname/domain/username would result in version.o being marked
> > as changed even though it is entirely fine to build the live patch
> > on a different build host from the original Xen.
>
> Keep in mind livepatch-build-tools builds it's base version of Xen and
> then a patched version, and that's how the diff is performed.  For the
> hostname/domain/username changes to appear on the livepatch payload
> such change would need to happen in the muddle of the execution of
> livepatch-build.
>
> This change doesn't prevent building the original Xen on a different
> host than the one building the livepatch, and the
> hostname/domain/username changes won't be part of the livepatch
> payload.

Oh, of course. That makes sense.

There is one other issue that may cause version.o to change
unnecessarily.

XEN_CHANGESET may change when the source tree is a Git repo.
In some cases, it will change from <commit> to <commit>-dirty
when the patch is applied. I guess we could set .scmversion
explicitly to avoid this?

>
> > >
> > > > Ideally, the pristine source for building livepatches would include=
 a
> > > > generated compile.h, and livepatch would have a way to force no
> > > > regeneration of the header.  But I've got no idea how nice that wou=
ld be
> > > > to arrange.
> > >
> > > Yes, no idea how fragile that would be either.  IMO the proposed
> > > approach is not that bad.
> > >
> > > > That way, you're using the same details as the Xen being patched, r=
ather
> > > > than hoping that two identical different details will cancel out in=
 the
> > > > binary diff.
> > >
> > > Another option is to set all the env variables to disable any
> > > build time probing.  However things like compiler or version changing
> > > between the original and the patched builds likely point out to issue=
s
> > > elsewhere, unless it's intentional modification of the helpers.
> > >
> > > > > +
> > > > >      echo "Perform full initial build with ${CPUS} CPU(s)..."
> > > > >      build_full
> > > > >
> > > > > diff --git a/livepatch-gcc b/livepatch-gcc
> > > > > index fcad80551aa0..e4cb6fb59029 100755
> > > > > --- a/livepatch-gcc
> > > > > +++ b/livepatch-gcc
> > > > > @@ -33,7 +33,6 @@ if [[ "$TOOLCHAINCMD" =3D~ $GCC_RE ]] ; then
> > > > >              obj=3D$2
> > > > >              [[ $2 =3D */.tmp_*.o ]] && obj=3D${2/.tmp_/}
> > > > >              case "$(basename $obj)" in
> > > > > -            version.o|\
> > > > >              debug.o|\
> > > > >              check.o|\
> > > >
> > > > Tangential question.  check.o is excluded because it's a toolchain =
test,
> > > > but any idea what debug.o is doing in this list?
> > > >
> > > > It can't possibly be the debug.c I've recently added to x86 (which =
we'll
> > > > want to be able to livepatch), so I guess it's got something to do =
the
> > > > ARM debug.S's, but I can't see anything in those that are worthy of
> > > > exemption either...
> > >
> > > Hm, that comes from the first commit that imported the wrapper to the
> > > repository, and at that point only x86 had livepatch support.
> > >
> > > I'm tempted to think this was inherited from the original xsplice
> > > tooling, and so debug.o needs to be removed from the list.
> > >
> >
> > livepatch-build-tools is derived from the kpatch build tooling and
> > debug.o has never been present there so it was added here for a
> > reason. AFAICT the gdbsx code used to live in debug.o. I can't
> > recall why it was being marked as changed unnecessarily but since
> > that is no longer an issue and the code lives elsewhere, the debug.o
> > lines can be dropped.
>
> Will someone send a patch for this, or should I do it?
>

I will send a patch for this.

Thanks,
Ross


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 16:42:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 16:42:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654126.1020834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDSJB-0000CF-BO; Wed, 13 Dec 2023 16:42:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654126.1020834; Wed, 13 Dec 2023 16:42:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDSJB-0000C8-8E; Wed, 13 Dec 2023 16:42:05 +0000
Received: by outflank-mailman (input) for mailman id 654126;
 Wed, 13 Dec 2023 16:42: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=dgA1=HY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rDSJA-0000By-Bz
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 16:42:04 +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 8a8da985-99d6-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 17:42:02 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50bf37fd2bbso9637377e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 08:42:02 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 w23-20020ac254b7000000b0050bf5188390sm1648134lfk.167.2023.12.13.08.42.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 08:42:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a8da985-99d6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702485722; x=1703090522; 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=s8Yp9BV047F1ItBGxIpzDx3xJfHvgD5UCrgrcCfhewQ=;
        b=Tyv46uSlPMra35hWRFLqgimDbBVqIl2ZUw39tyUljxNvultd2IFYte8/PVDhuVG+B3
         IuBocoN4wcjXJhNgE3Mprw64sZ0tsdy0AwQAbcJxrxKPjLwHFSg0/RTa/UIOwLgVPHlQ
         aXKVWqm95nerr3ODSgT24Sxj2bPL0UEw1NtV7LZcbwpsg+ekWu8D0W9svFv7ljMJYUmj
         FSyY0KQPZoV+vfoJ5ONlY9/n64Eiaf77pNxmecGhsgJgVjTmbn35DYA17F2QWgO9oxk0
         TwzgqGQPMoqi3mr3gGD76BCCm1+GDefvZ+K5dHacuUeZ+Iz+VFpxuaMAyg4oEc859i5Z
         YNXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702485722; x=1703090522;
        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=s8Yp9BV047F1ItBGxIpzDx3xJfHvgD5UCrgrcCfhewQ=;
        b=PspP075JPK5xcrBdRmLkLjkBN6vrGTsV3GgYtpyU5jaS7+lFz366GQZtjQ0VKfAqyi
         K9M8nLAf85Um94UMkHE0u0pY94iqk11msZk8M/+Jol852wI1LoTdGJvkwQj+AZGwF/GV
         XF+ZQGl7txHNmPGaeonJnWKGlXWmlaOuDJe344MN6Imk/u5atJ37beJ5TZ9YlNzZ54hG
         acl6ffOkXPXtU7Qw0UVxguWkoIenb9NqmMp8YVQ3MCHmN5mj1fFhxqCiCU18X0/MDRS+
         +ypPyAqDzTkEqmtXwNfCWx4KP2ZP/jzWSOai10Zjo69kethGJHANEcy6nOE63/VIdvrE
         QZNg==
X-Gm-Message-State: AOJu0YyBbpDAoIdO6j9VxjZlpz6xYu0b6FnXkchWdXqQoMPtI1jurlWo
	tOK1E8kx1u1hBGxcYbdzM+Q=
X-Google-Smtp-Source: AGHT+IF9MVFDxT6+dt1IhiVkNBIOf6yRsj+JizfzLtvDNVv4ZkEaEXBBF8HsGEl33NkA8k0rovrvWw==
X-Received: by 2002:a05:6512:318b:b0:50b:e4d3:9086 with SMTP id i11-20020a056512318b00b0050be4d39086mr5067021lfe.90.1702485721432;
        Wed, 13 Dec 2023 08:42:01 -0800 (PST)
Message-ID: <24f65706057487078f5d64706d45419e30a31364.camel@gmail.com>
Subject: Re: [PATCH] smp: move cpu_is_offline() definition
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>, Wei Liu <wl@xen.org>, Roger
 Pau =?ISO-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>, Julien Grall
 <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Volodymyr
 Babchuk <volodymyr_babchuk@epam.com>,  Bertrand Marquis
 <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Shawn
 Anastasio <sanastasio@raptorengineering.com>, George Dunlap
 <george.dunlap@citrix.com>
Date: Wed, 13 Dec 2023 18:41:59 +0200
In-Reply-To: <6505090e-8961-47ca-9726-0271c25bf2f8@suse.com>
References: <6505090e-8961-47ca-9726-0271c25bf2f8@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Wed, 2023-12-13 at 12:26 +0100, Jan Beulich wrote:
> It's all the same for the 3 arch-es which have it, and RISC-V would
> introduce a 4th instance. Put it in xen/smp.h instead, while still
> permitting asm/smp.h to define a custom variant if need be.
>=20
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> --- a/xen/arch/arm/include/asm/smp.h
> +++ b/xen/arch/arm/include/asm/smp.h
> @@ -12,8 +12,6 @@ extern unsigned long smp_up_cpu;
> =C2=A0DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_mask);
> =C2=A0DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
> =C2=A0
> -#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
> -
> =C2=A0/*
> =C2=A0 * Do we, for platform reasons, need to actually keep CPUs online
> when we
> =C2=A0 * would otherwise prefer them to be off?
> --- a/xen/arch/ppc/include/asm/smp.h
> +++ b/xen/arch/ppc/include/asm/smp.h
> @@ -7,8 +7,6 @@
> =C2=A0DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_mask);
> =C2=A0DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
> =C2=A0
> -#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
> -
> =C2=A0/*
> =C2=A0 * Do we, for platform reasons, need to actually keep CPUs online
> when we
> =C2=A0 * would otherwise prefer them to be off?
> --- a/xen/arch/x86/include/asm/smp.h
> +++ b/xen/arch/x86/include/asm/smp.h
> @@ -43,7 +43,6 @@ extern u32 x86_cpu_to_apicid[];
> =C2=A0
> =C2=A0#define cpu_physical_id(cpu)	x86_cpu_to_apicid[cpu]
> =C2=A0
> -#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
> =C2=A0extern void cpu_exit_clear(unsigned int cpu);
> =C2=A0extern void cpu_uninit(unsigned int cpu);
> =C2=A0int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t pxm);
> --- a/xen/include/xen/smp.h
> +++ b/xen/include/xen/smp.h
> @@ -3,6 +3,10 @@
> =C2=A0
> =C2=A0#include <asm/smp.h>
> =C2=A0
> +#ifndef cpu_is_offline
> +#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
> +#endif
> +
> =C2=A0/*
> =C2=A0 * stops all CPUs but the current one:
> =C2=A0 */

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



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 17:01:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 17:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654131.1020845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDSbW-0003VU-OA; Wed, 13 Dec 2023 17:01:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654131.1020845; Wed, 13 Dec 2023 17: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 1rDSbW-0003VN-LX; Wed, 13 Dec 2023 17:01:02 +0000
Received: by outflank-mailman (input) for mailman id 654131;
 Wed, 13 Dec 2023 17:01: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=8RNx=HY=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1rDSbV-0003VH-4p
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 17:01:01 +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 30b056f8-99d9-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 18:01:00 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a1c7d8f89a5so952320766b.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 09:01:00 -0800 (PST)
Received: from [192.168.79.175] ([93.23.251.22])
 by smtp.gmail.com with ESMTPSA id
 ty6-20020a170907c70600b00a1d71c57cb1sm8132013ejc.68.2023.12.13.09.00.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 09:00:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30b056f8-99d9-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1702486859; x=1703091659; 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=nPqK7GrcYmtiH3v3w3JzWW1DxNdjq8IQMp3DUklVk6o=;
        b=yfhEzuCHX0W9klquQR6TD75HOF3GroHEqEUtUlM+oTrA2ggJnhrBEuGxK0bIGi3jgI
         l8BGGGKMajgwTpXbXzoWVOStNgbjXac6pwBzCQ69TwaLxjNTXDWHuzcGDK6EArbZ81Q+
         Qb/SnwqEctxPvDQW/K5IO4dPBpHQZDax9TuqWr+ZSubPd53lVEIVU42e3dzkKVCCKtjw
         06H3BaZX+UDBkEDml7QD23jfLYRbJOyvLVa+d6Qy/MVBc2xhywGEhC/rdj/H4FNB3rhq
         Qm1qoPyO7VecYExq9txHpCFFrf8Dq4jReneCE/ydc35jcbXh7RXXz7T/LtDbUIXAg/yZ
         /edg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702486859; x=1703091659;
        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=nPqK7GrcYmtiH3v3w3JzWW1DxNdjq8IQMp3DUklVk6o=;
        b=C1JQOU5uoE1c/JGgSvBifrOl2fm5pY08UsPqBA7B/oG8ZNzL+AAD/M0XxYn/OlFU0o
         vwH/qTrDTAAjv7XsxzYB9Xpjv0eNrOkUTx3WZYKq5l6PfsEKk2jBgAYyqKo0OelYcg+s
         tgJye4AYHFpN+4bQ4Pt8iXV1qSaHiY7wK3MG5CF4SvxbjNMkyYBqbLaDvGkxGcYLmTyN
         zYQkRwUXu0k0OQ8AzT15055TLFND5cj1Cmusu7NBWFKZcdFohr7/NrvNQK9Pr8myzhlC
         Nvzyas8fwKG4I5lRaDDifR7DIMevchygRLOzq6w3ZKYh+uEMwKBq0ZDRXDjVSsYFCYeK
         dKtQ==
X-Gm-Message-State: AOJu0YxDUFSEC0DzNUzfFRBaB7vpJhCRHhLBDxefpCz/XM/0vqa9CaEC
	9I/6Z/I/Y0MkGC9mzzcj3Qv93A==
X-Google-Smtp-Source: AGHT+IGj0/KfsnmAFEqNG09uIgYWHMOTbaAWPiuoDfWlwAc+xnbcj8ZLgR9m5a7rGgg3UbFVjYS2Og==
X-Received: by 2002:a17:907:20b4:b0:a1d:f19c:ab1e with SMTP id pw20-20020a17090720b400b00a1df19cab1emr5069227ejb.100.1702486859552;
        Wed, 13 Dec 2023 09:00:59 -0800 (PST)
Message-ID: <0064f684-793e-4954-90cf-d39c21385a43@linaro.org>
Date: Wed, 13 Dec 2023 18:00:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH-for-9.0 0/9] hw/xen: Have ARM targets use common
 xen_memory_listener
Content-Language: en-US
To: qemu-devel@nongnu.org
Cc: Anthony Perard <anthony.perard@citrix.com>, Paul Durrant <paul@xen.org>,
 David Woodhouse <dwmw@amazon.co.uk>, Thomas Huth <thuth@redhat.com>,
 qemu-arm@nongnu.org, Stefano Stabellini <sstabellini@kernel.org>,
 Paolo Bonzini <pbonzini@redhat.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, xen-devel@lists.xenproject.org,
 Paolo Bonzini <pbonzini@redhat.com>
References: <20231114163123.74888-1-philmd@linaro.org>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20231114163123.74888-1-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

ping?

On 14/11/23 17:31, Philippe Mathieu-DaudÃ© wrote:
> Hi,
> 
> While looking at Xen target-specific code, I noticed some
> generic code used by x86 which is not implemented for ARM.
> 
> Maybe ARM machines don't need it, I don't know. But I
> wanted to see if I can get this common code target agnostic
> and build it once, possibly bringing smth useful to ARM.
> 
> The changes don't break CI testing and Avocado local tests.
> If this xen_memory_listener feature isn't required for ARM,
> I'll send follow up patch that keep this series with common
> xen_memory_listener but with a runtime flag to disable.
> 
> Patches do the usual "change target-specific API to a
> target-agnostic one", in particular using "exec/target_page.h"
> at runtime. Then non-x86 code is extracted, then merged to
> the generic xen/xen-hvm-common.c.
> 
> Thoughts?
> 
> Regards,
> 
> Phil.
> 
> Based-on: <20231114143816.71079-1-philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Wed Dec 13 17:09:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 17:09:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654134.1020855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDSjq-0004M6-IL; Wed, 13 Dec 2023 17:09:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654134.1020855; Wed, 13 Dec 2023 17:09:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDSjq-0004Lz-FV; Wed, 13 Dec 2023 17:09:38 +0000
Received: by outflank-mailman (input) for mailman id 654134;
 Wed, 13 Dec 2023 17:09:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IrFR=HY=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDSjp-0004Lt-FV
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 17:09:37 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63a98402-99da-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 18:09:35 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c2308faedso73600315e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 09:09:35 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 l15-20020a05600c1d0f00b003feae747ff2sm23687766wms.35.2023.12.13.09.09.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Dec 2023 09:09:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63a98402-99da-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702487374; x=1703092174; 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=b/hGGeu72epB4yX2XYgx/OBMHCbcRC3/pwvQyhn6UOM=;
        b=kMvqqLCbq0EPqw8H7S3qK3yUdqJiR4T6/qlnWwsIE2L4Zw4Mv+hQmwZC/9gQZ5N4ZW
         +yU8n9dd6l+a+XSKRDEzzhbKzkJi8EeQrPwOScV21mugIild70ktkNQuUzjVc1XT9+2t
         GDHQJasG0nIZ4qV56xhnaEBIeZz34mHjI9FRo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702487374; x=1703092174;
        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=b/hGGeu72epB4yX2XYgx/OBMHCbcRC3/pwvQyhn6UOM=;
        b=aR9qZ9LH8BzxgpW/iboLTi4IE7oR7Lc+W+Zd3d/AeAvEyn8oMq/6v+fX4RAKmWZBW0
         PiL50s0gNJFAdGCYo+VvJ8o4hIzkaMarJxroVa7q/+aABXidh1N8vftvS0H5Q81AJtJR
         u+8pXeHn5VGf6rPwlLx0L50Rvx16tXa/qf2uqdKSKwfOwS3gVGphwja7FFAFqZ8oV/TK
         a4gJjuIWeBU/1/8Rj7odRIb+YiiYKORU/4y/hCudiQwogG7ZXzprW3EO10/4b5LM0HrN
         7CTT+37kkQXytcqXUuOUdZcFpvW2KaYf6qs/znbkqoI1WH257tX382Vl2+SvfYLP/AeH
         yLDA==
X-Gm-Message-State: AOJu0YygK9Zt4Cx6FKaYaNtH/MzgczsExDeqfc0iHCH4g/1GeFSZ6WlK
	1Wpni9ub5lQMrE68HJ/6gGN/jA==
X-Google-Smtp-Source: AGHT+IEwf9F37TVbZg5njBvxrroua/WUbF9bnE75jurNaJcRzVBwjT+LTZ/gY+rAW1KE72Iu+3utKA==
X-Received: by 2002:a1c:7210:0:b0:40b:5e21:d360 with SMTP id n16-20020a1c7210000000b0040b5e21d360mr3734559wmc.105.1702487374490;
        Wed, 13 Dec 2023 09:09:34 -0800 (PST)
Date: Wed, 13 Dec 2023 18:09:33 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ross Lagerwall <ross.lagerwall@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: Re: [PATCH] livepatch-build-tools: allow livepatching version.c
Message-ID: <ZXnlTS0iCboWfnB0@macbook>
References: <20231205123403.63813-1-roger.pau@citrix.com>
 <824c50c3-ad3f-4d97-a3e8-5343564cbde5@citrix.com>
 <ZW86TOTFn3JZswUO@macbook>
 <CAG7k0Eq72v7Y5HN+dckAkiL4+RHHUOaVCMW0TGwKdWa9wOeTMA@mail.gmail.com>
 <ZXbneT2XGoj8CtMW@macbook>
 <CAG7k0ErYAYO9dq7KfwpcDU856Hau663ToLUmbk0KUTMMDQYB0A@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAG7k0ErYAYO9dq7KfwpcDU856Hau663ToLUmbk0KUTMMDQYB0A@mail.gmail.com>

On Wed, Dec 13, 2023 at 04:39:04PM +0000, Ross Lagerwall wrote:
> On Mon, Dec 11, 2023 at 10:42â€¯AM Roger Pau MonnÃ© <roger.pau@citrix.com> wrote:
> >
> > On Wed, Dec 06, 2023 at 12:11:39PM +0000, Ross Lagerwall wrote:
> > > On Tue, Dec 5, 2023 at 2:57â€¯PM Roger Pau MonnÃ© <roger.pau@citrix.com> wrote:
> > > >
> > > > On Tue, Dec 05, 2023 at 02:15:05PM +0000, Andrew Cooper wrote:
> > > > > On 05/12/2023 12:34 pm, Roger Pau Monne wrote:
> > > > > > Currently version.o is explicitly ignored as the file would change as a result
> > > > > > of the orignal and the patched build having possibly different dates and
> > > > > > times.
> > > > > >
> > > > > > Fix such difference by exporting the date and time from the build script, so
> > > > > > that both builds share the same build time.  This allows checking for changes
> > > > > > in version.c, since the rest of fields need to be manually changed in order to
> > > > > > produce different output.
> > > > > >
> > > > > > Setting XEN_BUILD_{DATE,TIME} as an environment variable has been supported
> > > > > > since before livepatch support was added to Xen, so it's safe to export those
> > > > > > variables unconditionally.
> > > > > >
> > > > > > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > > > > > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > > > > > ---
> > > > > >  livepatch-build | 4 ++++
> > > > > >  livepatch-gcc   | 2 --
> > > > > >  2 files changed, 4 insertions(+), 2 deletions(-)
> > > > > >
> > > > > > diff --git a/livepatch-build b/livepatch-build
> > > > > > index e2ccce4f7fd7..f622683fc56c 100755
> > > > > > --- a/livepatch-build
> > > > > > +++ b/livepatch-build
> > > > > > @@ -417,6 +417,10 @@ if [ "${SKIP}" != "build" ]; then
> > > > > >
> > > > > >      export CROSS_COMPILE="${TOOLSDIR}/livepatch-gcc "
> > > > > >
> > > > > > +    # Force same date and time to prevent unwanted changes in version.c
> > > > > > +    export XEN_BUILD_DATE=`LC_ALL=C date`
> > > > > > +    export XEN_BUILD_TIME=`LC_ALL=C date +%T`
> > > > >
> > > > > Date is the one that goes wrong every time, but everything else in
> > > > > compile.h can go wrong in a way that causes version.o to change.
> > > >
> > > > I've attempted to reflect that in "since the rest of fields need to be
> > > > manually changed in order to produce different output".
> > > >
> > > > For those to change there must be some kind of environment change
> > > > between the original and the patched version build, and hence I don't
> > > > think that would be supported.
> > >
> > > In general, yes. However, with this patch changes to the
> > > hostname/domain/username would result in version.o being marked
> > > as changed even though it is entirely fine to build the live patch
> > > on a different build host from the original Xen.
> >
> > Keep in mind livepatch-build-tools builds it's base version of Xen and
> > then a patched version, and that's how the diff is performed.  For the
> > hostname/domain/username changes to appear on the livepatch payload
> > such change would need to happen in the muddle of the execution of
> > livepatch-build.
> >
> > This change doesn't prevent building the original Xen on a different
> > host than the one building the livepatch, and the
> > hostname/domain/username changes won't be part of the livepatch
> > payload.
> 
> Oh, of course. That makes sense.
> 
> There is one other issue that may cause version.o to change
> unnecessarily.
> 
> XEN_CHANGESET may change when the source tree is a Git repo.
> In some cases, it will change from <commit> to <commit>-dirty
> when the patch is applied. I guess we could set .scmversion
> explicitly to avoid this?

Oh, right, I did consider that <commit> cannot change, but it can
indeed become <commit>-dirty.  Will expand to make it fixed also.

> >
> > > >
> > > > > Ideally, the pristine source for building livepatches would include a
> > > > > generated compile.h, and livepatch would have a way to force no
> > > > > regeneration of the header.  But I've got no idea how nice that would be
> > > > > to arrange.
> > > >
> > > > Yes, no idea how fragile that would be either.  IMO the proposed
> > > > approach is not that bad.
> > > >
> > > > > That way, you're using the same details as the Xen being patched, rather
> > > > > than hoping that two identical different details will cancel out in the
> > > > > binary diff.
> > > >
> > > > Another option is to set all the env variables to disable any
> > > > build time probing.  However things like compiler or version changing
> > > > between the original and the patched builds likely point out to issues
> > > > elsewhere, unless it's intentional modification of the helpers.
> > > >
> > > > > > +
> > > > > >      echo "Perform full initial build with ${CPUS} CPU(s)..."
> > > > > >      build_full
> > > > > >
> > > > > > diff --git a/livepatch-gcc b/livepatch-gcc
> > > > > > index fcad80551aa0..e4cb6fb59029 100755
> > > > > > --- a/livepatch-gcc
> > > > > > +++ b/livepatch-gcc
> > > > > > @@ -33,7 +33,6 @@ if [[ "$TOOLCHAINCMD" =~ $GCC_RE ]] ; then
> > > > > >              obj=$2
> > > > > >              [[ $2 = */.tmp_*.o ]] && obj=${2/.tmp_/}
> > > > > >              case "$(basename $obj)" in
> > > > > > -            version.o|\
> > > > > >              debug.o|\
> > > > > >              check.o|\
> > > > >
> > > > > Tangential question.  check.o is excluded because it's a toolchain test,
> > > > > but any idea what debug.o is doing in this list?
> > > > >
> > > > > It can't possibly be the debug.c I've recently added to x86 (which we'll
> > > > > want to be able to livepatch), so I guess it's got something to do the
> > > > > ARM debug.S's, but I can't see anything in those that are worthy of
> > > > > exemption either...
> > > >
> > > > Hm, that comes from the first commit that imported the wrapper to the
> > > > repository, and at that point only x86 had livepatch support.
> > > >
> > > > I'm tempted to think this was inherited from the original xsplice
> > > > tooling, and so debug.o needs to be removed from the list.
> > > >
> > >
> > > livepatch-build-tools is derived from the kpatch build tooling and
> > > debug.o has never been present there so it was added here for a
> > > reason. AFAICT the gdbsx code used to live in debug.o. I can't
> > > recall why it was being marked as changed unnecessarily but since
> > > that is no longer an issue and the code lives elsewhere, the debug.o
> > > lines can be dropped.
> >
> > Will someone send a patch for this, or should I do it?
> >
> 
> I will send a patch for this.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 17:35:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 17:35:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654142.1020864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDT8t-0002AF-Jl; Wed, 13 Dec 2023 17:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654142.1020864; Wed, 13 Dec 2023 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 1rDT8t-0002A8-HH; Wed, 13 Dec 2023 17:35:31 +0000
Received: by outflank-mailman (input) for mailman id 654142;
 Wed, 13 Dec 2023 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=tYyH=HY=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rDT8s-0002A2-6L
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 17:35:30 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id ffafabaa-99dd-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 18:35:25 +0100 (CET)
Received: from mg.gitlab.com (22.226.74.34.bc.googleusercontent.com
 [34.74.226.22]) by
 c4b7f2d94a03 with SMTP id 6579eb5bfb6cdee0b5f308fd (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 13 Dec 2023 17:35:23 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: ffafabaa-99dd-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702488924; x=1702496124; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=ADJ71GWzUv092hz9pV1v796DXaRB6Hvw28Lj8thxppo=;
 b=KcJmJ6z8SgPHM9xzYnJoFal0QpUP6I/B9cmKqafWyEGBzEvhwcyd30JE72aumC9y/uyTxLt7wwy0PxVPtkHltutXLcilySseWnxfD5TGAFGt0Nvke1KdO7wfpcgG7bml2RluENzGkLJy2RzRrsVObcgqLNebv1a93cHGoqfmaiw=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 13 Dec 2023 17:35:23 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6579eb5b3ce7_2c954208834a@gitlab-sidekiq-catchall-v2-79f56b6bb5-4kcx6.mail>
Subject: xen | Successful pipeline for stable-4.16 | e7c3d6ce
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6579eb5aefe77_2c95420882d6";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1105839143
X-GitLab-Pipeline-Ref: stable-4.16
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6579eb5aefe77_2c95420882d6
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1105839143 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: stable-4.16 ( https://gitlab.com/xen-project/xen/-/commits/stable-4.16 )

Commit: e7c3d6ce ( https://gitlab.com/xen-project/xen/-/commit/e7c3d6ceaf73120098f9213fd12f79fd50e8e588 )
Commit Message: xen/arm: page: Avoid pointer overflow on cache ...
Commit Author: Michal Orzel ( https://gitlab.com/orzelmichal )
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1105839143 ( https://gitlab.com/xen-project/xen/-/pipelines/1105839143 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 5 jobs in 1 stage.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for stable-4.16 | e7c3d6ce</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1105839143 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
table-4.16" style=3D"color: #333333; text-decoration: none;">
stable-4.16
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/e7c3d6ceaf73120098=
f9213fd12f79fd50e8e588" style=3D"color: #3777b0; text-decoration: none;">=
e7c3d6ce</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: page: Avoid pointer overflow on cache ...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/47e2f2ac4637bce0cc380dba59a9412f?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/orzelmichal" style=3D"color=
: #333333; text-decoration: none;">
Michal Orzel
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110583=
9143" style=3D"color: #3777b0; text-decoration: none;">#1105839143</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 5 jobs in 1 stage.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6579eb5aefe77_2c95420882d6--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 17:48:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 17:48:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654180.1020874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDTLg-0004WW-NO; Wed, 13 Dec 2023 17:48:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654180.1020874; Wed, 13 Dec 2023 17:48:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDTLg-0004WP-Kb; Wed, 13 Dec 2023 17:48:44 +0000
Received: by outflank-mailman (input) for mailman id 654180;
 Wed, 13 Dec 2023 17:48:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dGiJ=HY=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDTLf-0004WJ-49
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 17:48:43 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8ecc523-99df-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 18:48:40 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 766D48285C08;
 Wed, 13 Dec 2023 11:48:38 -0600 (CST)
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 9_cRjjXmkFdQ; Wed, 13 Dec 2023 11:48:37 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id C54188286742;
 Wed, 13 Dec 2023 11:48:37 -0600 (CST)
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 2v3Wc3PL1UK6; Wed, 13 Dec 2023 11:48:37 -0600 (CST)
Received: from [10.11.0.2] (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 0EBE58285C08;
 Wed, 13 Dec 2023 11:48:36 -0600 (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: d8ecc523-99df-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com C54188286742
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702489717; bh=XHWr/Jq5yO3apLnqolWFwaAIJe6r/wXh2WJLN012qGw=;
	h=Message-ID:Date:MIME-Version:To:From;
	b=Mie0+7c2GF/K5cfbaKuLZPcRpEZ9QFQ5DoZoWxhNuRTYUfhUjvc4XM+1Feimwk7c+
	 6cZ1K0ztYVRenf0yTcvPVjTRuudpxEhHYoFVLzlErVBS1n31DGiKEe/CoWgBEweLxk
	 znAwPb8eaxPDivYyy4Ez2kSzai9zfWIacUeIQaTY=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <c322568b-81ea-4f81-a8db-415fa2bc763f@raptorengineering.com>
Date: Wed, 13 Dec 2023 11:48:36 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] smp: move cpu_is_offline() definition
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 George Dunlap <george.dunlap@citrix.com>
References: <6505090e-8961-47ca-9726-0271c25bf2f8@suse.com>
From: Shawn Anastasio <sanastasio@raptorengineering.com>
In-Reply-To: <6505090e-8961-47ca-9726-0271c25bf2f8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi Jan,

On 12/13/23 5:26 AM, Jan Beulich wrote:
> It's all the same for the 3 arch-es which have it, and RISC-V would
> introduce a 4th instance. Put it in xen/smp.h instead, while still
> permitting asm/smp.h to define a custom variant if need be.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>

Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>

Thanks,
Shawn


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 18:27:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 18:27:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654184.1020884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDTww-0003bz-Kk; Wed, 13 Dec 2023 18:27:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654184.1020884; Wed, 13 Dec 2023 18:27:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDTww-0003bs-Hv; Wed, 13 Dec 2023 18:27:14 +0000
Received: by outflank-mailman (input) for mailman id 654184;
 Wed, 13 Dec 2023 18:27: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=tYyH=HY=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rDTwu-0003bl-FC
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 18:27:12 +0000
Received: from m226-146.mailgun.net (m226-146.mailgun.net [159.135.226.146])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 3a73a87e-99e5-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 19:27:11 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 87e6332f9aab with SMTP id 6579f77d9221d5e65e444078 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 13 Dec 2023 18:27:09 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 3a73a87e-99e5-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702492029; x=1702499229; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=Nsql7THyHRSimTOsc+LBB0gair5Ok0IngwrAOrghuOk=;
 b=dKNKDFanKMoDFt/pptPRHpO18bZGXkPMd/bKqNZWAMWqZ6HQ4w008C8j9D3+bA6dKGJYL0l7BwX3/ZcXmSGmq5xNjYoUj9sDTplO44tp7zLCtvZ0cFgSiBTx6v8lPJQYr8ckUwBAhX0LzjpD5GRCp1YX7PYHkX8o+AjWDWdcHkw=
X-Mailgun-Sending-Ip: 159.135.226.146
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 13 Dec 2023 18:27:08 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6579f77cedb1a_2c953bc55044@gitlab-sidekiq-catchall-v2-79f56b6bb5-xqbsf.mail>
Subject: xen | Successful pipeline for staging | 75571e16
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6579f77ce65d0_2c953bc549c5";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1105839214
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6579f77ce65d0_2c953bc549c5
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1105839214 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 75571e16 ( https://gitlab.com/xen-project/xen/-/commit/75571e162b78b73401307ce40f732021ae57d49a )
Commit Message: xen/arm: ffa: return FFA_RET_NOT_SUPPORTED on u...
Commit Author: Jens Wiklander ( https://gitlab.com/jenswi-linaro )
Committed by: Julien Grall



Pipeline #1105839214 ( https://gitlab.com/xen-project/xen/-/pipelines/1105839214 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 75571e16</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1105839214 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/75571e162b78b73401=
307ce40f732021ae57d49a" style=3D"color: #3777b0; text-decoration: none;">=
75571e16</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: ffa: return FFA_RET_NOT_SUPPORTED on u...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/5623521386d89fdd40c4a2677bfa2288?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jenswi-linaro" style=3D"col=
or: #333333; text-decoration: none;">
Jens Wiklander
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110583=
9214" style=3D"color: #3777b0; text-decoration: none;">#1105839214</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6579f77ce65d0_2c953bc549c5--


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 18:40:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 18:40:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654224.1020895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDU9E-00060K-SZ; Wed, 13 Dec 2023 18:39:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654224.1020895; Wed, 13 Dec 2023 18:39: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 1rDU9E-00060D-Pu; Wed, 13 Dec 2023 18:39:56 +0000
Received: by outflank-mailman (input) for mailman id 654224;
 Wed, 13 Dec 2023 18:39: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 1rDU9D-000607-U6
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 18:39: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 1rDU9C-0007Rr-H1; Wed, 13 Dec 2023 18:39:54 +0000
Received: from 54-240-197-238.amazon.com ([54.240.197.238] helo=[192.168.3.12])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDU9C-0001Bt-7U; Wed, 13 Dec 2023 18:39: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=apno7CYjLugo2KBC2//ahYVix5uiGUGPPAD6UEzuJVo=; b=OWSuTya0+fnDogskGHlZifKv2e
	QTSc2Cln5GKu2He4R7Lb5kcIzSMcdyIHbnDLShcwI/zhEpXTxD5tkNW/wmzSJcxgCO1GP5EmG+psJ
	Kixbip4Dv7hnhWkVMQGEe68/0CyuywY+SX7HfsHmalQKmBo/wVPH0a9Ow/saJAbwgEa8=;
Message-ID: <5306d465-9cf6-4e3f-86ea-0dacbd30062e@xen.org>
Date: Wed, 13 Dec 2023 18:39:51 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] smp: move cpu_is_offline() definition
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 George Dunlap <george.dunlap@citrix.com>
References: <6505090e-8961-47ca-9726-0271c25bf2f8@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <6505090e-8961-47ca-9726-0271c25bf2f8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 13/12/2023 11:26, Jan Beulich wrote:
> It's all the same for the 3 arch-es which have it, and RISC-V would
> introduce a 4th instance. Put it in xen/smp.h instead, while still
> permitting asm/smp.h to define a custom variant if need be.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 19:41:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 19:41:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654229.1020905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDV6K-0008H7-Ax; Wed, 13 Dec 2023 19:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654229.1020905; Wed, 13 Dec 2023 19:41:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDV6K-0008H0-87; Wed, 13 Dec 2023 19:41:00 +0000
Received: by outflank-mailman (input) for mailman id 654229;
 Wed, 13 Dec 2023 19:40: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 1rDV6I-0008Gq-69; Wed, 13 Dec 2023 19:40: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 1rDV6I-0008RC-3U; Wed, 13 Dec 2023 19:40: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 1rDV6H-0005Hx-Jw; Wed, 13 Dec 2023 19:40:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDV6H-0005XM-J8; Wed, 13 Dec 2023 19:40: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=NRZSI8N27QXPSbKmHjfs1OCcfw7fYkf74gm3J8SiiDM=; b=cVVzs56zv+GMGclbbW2T1V59j1
	tnnpJA2Mc/RVzQH5I/z0zgF0NmeymsS74Ifhib7XwUugirWfLgkUWTC9wR09pyh/EnYxQjE7u1yMM
	/7V6bx7uKnZWIe/e+dYgyVIzxTsJKTil1hSpI6wgEh1gObiyrXCbhQeppG9ZDviCR0C0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184128-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184128: 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=75571e162b78b73401307ce40f732021ae57d49a
X-Osstest-Versions-That:
    xen=a236b74b961faa045640275605e319bba45483c1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 13 Dec 2023 19:40:57 +0000

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

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                  75571e162b78b73401307ce40f732021ae57d49a
baseline version:
 xen                  a236b74b961faa045640275605e319bba45483c1

Last test of basis   184125  2023-12-13 13:02:06 Z    0 days
Testing same since   184128  2023-12-13 17:02:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jens Wiklander <jens.wiklander@linaro.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
   a236b74b96..75571e162b  75571e162b78b73401307ce40f732021ae57d49a -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 20:25:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 20:25:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654235.1020915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDVnT-0005PT-LG; Wed, 13 Dec 2023 20:25:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654235.1020915; Wed, 13 Dec 2023 20:25: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 1rDVnT-0005PM-Hy; Wed, 13 Dec 2023 20:25:35 +0000
Received: by outflank-mailman (input) for mailman id 654235;
 Wed, 13 Dec 2023 20:25: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=xXqT=HY=aepfle.de=olaf@srs-se1.protection.inumbo.net>)
 id 1rDVnS-0005PG-TV
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 20:25:35 +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 c20cdb9f-99f5-11ee-9b0f-b553b5be7939;
 Wed, 13 Dec 2023 21:25:30 +0100 (CET)
Received: from sender by smtp.strato.de (RZmta 49.10.0 AUTH)
 with ESMTPSA id Lf46f5zBDKPIVoW
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Wed, 13 Dec 2023 21:25:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c20cdb9f-99f5-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; t=1702499118; cv=none;
    d=strato.com; s=strato-dkim-0002;
    b=eJYSoEyEYPGFEQk5Hfn+Jt/Bj38n6y4/XuC2xi4mE2EwV1CPuBGwQi97LnC63og2xP
    VgG4UGfB3iM3QTbSstku+aRGpn64X6HL6kyuaazhQVn9CyRgFQNDCxvVPY3H1H0zWtvk
    piScUzyZfcQZ27+BwgRvup6kMK4T57LUmx3ZbA5K24ZRHlW9ey+/gDb10N3IiBtIzFG9
    G9MfDw0nxhmaYA6+l7h9QcMCYrbXH8oNVir/wVySEnjhgw7TUZ7ZbLWpPUhbArkSIzJW
    6gZOxXm5qGa+VRj/REXwW0AIC+zl5lhx9zDSDL4PLW6N2taZfhRgmxJ/Ic0pEDGrnNl4
    JHVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1702499118;
    s=strato-dkim-0002; d=strato.com;
    h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=aihsKihu5+hUBwS9eykBjqgunbBXjHfCPCWVjd/6nIQ=;
    b=i0uGQHvOs98QX+iL8GLliFTQpjZioi0T9t+/khPvmaZi841xxl8J9r+/cTF/rStRLy
    FAw56ZFdE0K+gWcvXUp3F4Kj28UkmLQXaKIozCRiVLmVd7nGMqK3HDH3LEZm+Cyi+eEz
    pzjqubgD0cKrdW0ggga78dxn06swBh1J8JAR4BwWFGHD+UVmyRBzqw6b07Ciz95kY5U7
    1mVPkOUCf3xPLBCWe5kfB3czrKQYGyZMNJG62rFw2auQ3UtvtJ7WHRJN6B9UuNPxfPrA
    zFq8snZ3mKQhq1C0fS3/M1uZ/whqH4j0oI9G9/9FY5GuqA9CGCweiAvWx7N3eiNoVACe
    yhnA==
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=1702499118;
    s=strato-dkim-0002; d=aepfle.de;
    h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=aihsKihu5+hUBwS9eykBjqgunbBXjHfCPCWVjd/6nIQ=;
    b=CjuKaisyMywOYl+F4zLbtYleS2MPHzXIyQgcZ8+cCsw6wfnTugILKW5Q8lqQ1Y/sQj
    pGHJ7tbIz91rlERYx81zBQOr4MTh1wt3EXBSzAJuFs1UcOTC300QRHh+B/pGhuLbsdbN
    9f/3W3i8yue6cKf8YSg0sRXHbB26r6QQLpibSGrVU3kgf5dMvmdgUNTndi2V3KspYNW/
    I6HdaIvqcvMNKP803DZhzjVk1pB4iwThiczmsEEiS9If3NsQdfXhuKeVZ+I4Lpu0iAvm
    /Un8IWNaCXNsFDo+et1qm6V68bCbtEc2YScxnuMjrGgea/BRWzAeKVNEjTDhWqdd/jXR
    PNhQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1702499118;
    s=strato-dkim-0003; d=aepfle.de;
    h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender;
    bh=aihsKihu5+hUBwS9eykBjqgunbBXjHfCPCWVjd/6nIQ=;
    b=xvC8gT01p7HxNVuEwipIdylYiiIYGU7kAJxIvJeA3DklzoUqGqTNOLS3+Yiz3Uraaq
    zx/GrXq4GicOx8EheVCQ==
X-RZG-AUTH: ":P2EQZWCpfu+qG7CngxMFH1J+3q8wa/QXkBR9MXjAuzpIG0mv9coXAg4x+Vn7GsstksPvyZyXfN0fdx3Mvj7f2syT56WA"
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: remove bin86/dev86 from tumbleweed image
Date: Wed, 13 Dec 2023 21:25:15 +0100
Message-Id: <20231213202515.30587-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"

https://build.opensuse.org/request/show/1126240

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

diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile b/automation/build/suse/opensuse-tumbleweed.dockerfile
index 38f6fda2ff..f00e03eda7 100644
--- a/automation/build/suse/opensuse-tumbleweed.dockerfile
+++ b/automation/build/suse/opensuse-tumbleweed.dockerfile
@@ -11,13 +11,11 @@ RUN zypper ref && zypper dup -y --no-recommends
 RUN zypper install -y --no-recommends \
         acpica \
         bc \
-        bin86 \
         bison \
         bzip2 \
         checkpolicy \
         clang \
         cmake \
-        dev86 \
         diffutils \
         discount \
         flex \


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 21:02:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 21:02:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654240.1020924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDWMg-0002HN-9A; Wed, 13 Dec 2023 21:01:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654240.1020924; Wed, 13 Dec 2023 21: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 1rDWMg-0002HG-6g; Wed, 13 Dec 2023 21:01:58 +0000
Received: by outflank-mailman (input) for mailman id 654240;
 Wed, 13 Dec 2023 21:01:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ONXu=HY=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1rDWMe-0002H5-TF
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 21:01:56 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d6f27f92-99fa-11ee-98e9-6d05b1d4d9a1;
 Wed, 13 Dec 2023 22:01:54 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.17.1/8.15.2) with ESMTPS id 3BDL1Kax001757
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Wed, 13 Dec 2023 16:01:26 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.17.1/8.15.2/Submit) id 3BDL1Kk7001756;
 Wed, 13 Dec 2023 13:01:20 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6f27f92-99fa-11ee-98e9-6d05b1d4d9a1
Date: Wed, 13 Dec 2023 13:01:20 -0800
From: Elliott Mitchell <ehem+freebsd@m5p.com>
To: Chuck Zmudzinski <brchuckz@netscape.net>,
        Anthony Perard <anthony.perard@citrix.com>
Cc: Mario Marietto <marietto2008@gmail.com>, Julien Grall <julien@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        xen-devel <xen-devel@lists.xenproject.org>,
        xen-users-request@lists.xenproject.org,
        Stefano Stabellini <sstabellini@kernel.org>,
        Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: xc_dom_guest_type: image not capable of booting inside a HV M
 container: Invalid kernel
Message-ID: <ZXoboEVx1jzIgrvJ@mattapan.m5p.com>
References: <CA+1FSiii2etikw9LKdJ5Ebn+z-3-e5UXh3cJjBgYGJYtq3q=Ww@mail.gmail.com>
 <300b7e2b-068a-4cac-a617-ae41caa6d3b9@netscape.net>
 <CA+1FSiiuWz_91Wg3Az440nFKaLY_raoUy=3nGj4Zca8viKAT=Q@mail.gmail.com>
 <0bf311bb-435a-4c5d-a36c-8cfe95f92f98@netscape.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0bf311bb-435a-4c5d-a36c-8cfe95f92f98@netscape.net>
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, Dec 11, 2023 at 01:41:21PM -0500, Chuck Zmudzinski wrote:
> On 12/11/2023 12:59 PM, Mario Marietto wrote:
> > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
> > 
> > ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamically linked, interpreter /red/herring, BuildID[sha1]=5e6982c9cb67d9c94571b76419142a8c495388d0, for FreeBSD 13.2, not stripped
> > 
> > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.bin
> > 
> > kernel.bin: data 
> 
> This needs to be :
> 
> kernel.bin: Linux kernel ARM boot executable zImage (little-endian)
> 
> > 
> > It does not boot from the kernel.bin file.
> 
> I suggest not trying to direct boot a kernel in Xen on arm unless the file command reports the kernel image is a Linux kernel ARM boot executable zImage (little endian).
> 
> Did you try applying Julien's patch (link is in my earlier message) to add zImage support to FreeBSD? Maybe after applying the patch the kernel.bin file will be in the correct zImage format.
> 
> The patch I linked in the earlier 

Appears FreeBSD-CURRENT removed the last step converting the kernel file
to kernel.bin.  The patch can be readily rebased, but without kernel.bin
that doesn't do too much.  (hmm, see if that can be tracked down...)


A bigger issue is this approach is a maintenance nightmare.  Updating
the kernel requires action from outside the VM.

As such, Anthony Perard would there be any hope for Tianocore/EDK2
gaining support for ARMv6/v7?  The delta should be pretty small.


-- 
(\___(\___(\______          --=> 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 Dec 13 23:10:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 23:10:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654248.1020935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDYMU-0007a3-AZ; Wed, 13 Dec 2023 23:09:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654248.1020935; Wed, 13 Dec 2023 23: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 1rDYMU-0007Zw-7f; Wed, 13 Dec 2023 23:09:54 +0000
Received: by outflank-mailman (input) for mailman id 654248;
 Wed, 13 Dec 2023 23:09: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 1rDYMS-0007Zm-UO; Wed, 13 Dec 2023 23:09: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 1rDYMS-0003sl-Q7; Wed, 13 Dec 2023 23:09: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 1rDYMS-0008TG-C2; Wed, 13 Dec 2023 23:09:52 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDYMS-0003Z3-Ap; Wed, 13 Dec 2023 23: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=/BvffnRF6uofAFrTcKFWOUpFt/5ED3oReSFer+AjI8g=; b=xkCV0NENvdb01UHUQrVYJmkpZe
	CBUXnGG4P/9+hEgyykl6j+XSy9/e4gW0ZaQLczV1EqjUJOsAHd5d58w3oEXIl9M4dQIuzcHvAguev
	gPyQ0IUHW5iu9J1Tlu4+3wLPc8+EW20IOaPPQhETJAbJJTxh+5IoE87BYJxvVHqfMGik=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184114-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184114: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-amd64-i386-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-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-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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=cf40abbc7ff2a73eaaea84e919fc7762354e75ad
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 13 Dec 2023 23:09:52 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-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-amd64-i386-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-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-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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          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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  cf40abbc7ff2a73eaaea84e919fc7762354e75ad
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    6 days
Failing since        184036  2023-12-08 10:40:52 Z    5 days   10 attempts
Testing same since   184114  2023-12-12 19:12:31 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Paul Durrant <paul@xen.org>
  Simone Ballarin <simone.ballarin@bugseng.com>
  Stefano Stabellini <stefano.stabellini@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 cf40abbc7ff2a73eaaea84e919fc7762354e75ad
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Nov 23 17:08:34 2023 +0100

    tools/xenstored: potentially split trace_io() out message
    
    Today write_messages() will call trace_io() after having written the
    complete message to the ring buffer or socket.
    
    In case the message can't be written in one go, split it by writing
    one trace entry when starting the write and one when finishing it.
    
    In order to distinguish a complete OUT message from a split one, let the
    caller of trace_io specify the prefix string ("IN", "OUT", "OUT(START)",
    "OUT(END)") directly instead via an int.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Julien Grall <jgrall@amazon.com>

commit 1403131596fa77663708f6baa0fee8bf7b95eb5a
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Mon Dec 11 11:28:02 2023 +0100

    x86/viridian: make build_assertions static
    
    This is consistent with other instances of the same function
    and also resolves a violation of MISRA C:2012 Rule 8.4.
    
    No functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Acked-by: Paul Durrant <paul@xen.org>

commit f45e488e7bc96b43faa5078c8418c6f496e466c1
Author: Stefano Stabellini <stefano.stabellini@amd.com>
Date:   Mon Dec 11 11:27:20 2023 +0100

    docs/misra/rules.rst: add more rules
    
    Add the rules accepted in the last three MISRA C working group meetings.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit 519c7a1d589cc263f1d0e291f53fd33a9980a239
Author: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Date:   Mon Dec 11 11:27:07 2023 +0100

    xen: address violations of MISRA C:2012 Rule 14.4
    
    The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
    headline states:
    "The controlling expression of an if statement and the controlling
    expression of an iteration-statement shall have essentially Boolean type".
    
    Struct domain member is_dying is an anonymous enum designed to act as boolean.
    Add deviation to mark its uses in controlling expressions as deliberate.
    
    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>

commit 807321b6f355dc93dc77de7e44c7d9afb3e5f8a1
Author: Federico Serafini <federico.serafini@bugseng.com>
Date:   Mon Dec 11 11:26:16 2023 +0100

    x86/acpi: remove acpi_pic_sci_set_trigger()
    
    Remove apci_pic_set_trigger() declaration: there is no definition and there are
    no calls to such function in the XEN project.
    
    Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit bc4fe94a69d4dab103c37045d97e589ef75f8647
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 7 07:25:51 2023 +0100

    tools/libs/evtchn: replace assert()s in stubdom with proper locking
    
    In tools/libs/evtchn/minios.c there are assert()s for the current
    thread being the main thread when binding an event channel.
    
    As Mini-OS is supporting multiple threads, there is no real reason
    why the binding shouldn't be allowed to happen in any other thread.
    
    Drop the assert()s and replace them with proper locking of the
    port_list.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

commit e6e8c5831a64420a56f83e87919ed157ab810fab
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Dec 7 18:54:45 2023 +0000

    Config: Update MiniOS revision
    
    Fixes for CI breakages
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 23:45:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 23:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654254.1020945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDYuk-0003f6-7E; Wed, 13 Dec 2023 23:45:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654254.1020945; Wed, 13 Dec 2023 23:45:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDYuk-0003ez-4G; Wed, 13 Dec 2023 23:45:18 +0000
Received: by outflank-mailman (input) for mailman id 654254;
 Wed, 13 Dec 2023 23:45:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FVP7=HY=epam.com=prvs=67111d5ab2=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1rDYuj-0003eo-9j
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 23:45:17 +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 a967eaf6-9a11-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 00:45:15 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BDJ2iKW012660; Wed, 13 Dec 2023 23:45:02 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uy0y4vams-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 13 Dec 2023 23:45:01 +0000 (GMT)
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB8666.eurprd03.prod.outlook.com (2603:10a6:20b:54c::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec
 2023 23:44:57 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7091.022; Wed, 13 Dec 2023
 23: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>
X-Inumbo-ID: a967eaf6-9a11-11ee-98e9-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=K6DQwe66U3SwrXOqtVQYC4Gy9syTXVyPFNTEWnalKLwEIRdov8WXQJ+AaltvjBbqS6cVYVv+h6w8HRDumOlB31glcxR8ur5dgMLrARfcBycAqJLvB/Gl96DyMGI6rumgyTIGg1oJsIWY5aFEjT8fHvad537nbesHIHzIeQzlR6j+wZe+Xy1yk45VvEOivOuWwdMP4Vastx69OB7LgkM788pMMNlDiDu6/gQk//sov2LAn4zPq9oh1cfVv6F3mG69rkx+B32dbMkHPPOjOfy7asewHbqCkuSKRxAz5ABS16STORu6NRjYWv20TuwBheRbKqGYsuji4SivKEIfcSb7Lw==
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=cwOLHmt/xVQKtVQ7dFIiwMzlKRmuQ+IjFFkVQYwTpbE=;
 b=kCbpnkHRUCGXnEJ9edKwrzP1XcWZH/2D8IgXyxd7CJxmH4WuidUGtADIeKVvOBQWtAGnSSurbGFKF9fCLNtVuKoTvvazu6qXvycJYh0cfeRaB0D6TMDQfGx1qOHLs85KEtWVPbOIFrLp9fla7QOLCuB7GmANCNax3ujb/2BsWhS7SvrSf9Sjryq+hRK2i8jf5ZXCzaNJzCz7ryq9x8WvG4WjTZEiS38zTuKqQDNSB6/0xsEggL0MWgBobuDuoSfvckLrYeMEMI1m0gavM3XVfEuMVF2RJzYltQqSjhEuD/bJvzdCqxxaEU5P9BEAmgJeOUfx841XMAXxCW7EbXKOMg==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cwOLHmt/xVQKtVQ7dFIiwMzlKRmuQ+IjFFkVQYwTpbE=;
 b=rqsjj3bEp6fzB+vPTJemzRmPex1AvoJE6X/J3yDzfnTUE8e4pTEsAbMSMD4Zl593KBmkkX1S1zr28tFo7vcenA3vRT86Ztk3oeQ5+Xk+caRJN891prj/ljKxzemLwohMuEXU+dQzsrNak8/xuo3loonD38Bs1W5RR2TRnVEiCyTwEL9Qdkupwa7/8tH1Dhc6LxQoCm8zlGqoCIH+YjHyQPlDhtJ0Lu+Iteau5v8vAtoVY/oiEylFzEN7U077MJZFJW2GIANd/PKBufv3l/Mnrp7VkOCM3O2wezfhFY9PlIUnwowRrDhGDyioSWKxhEPZSCZqvPYgAkhhzecftEn5SA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Liu <wl@xen.org>,
        Anthony PERARD
	<anthony.perard@citrix.com>,
        Juergen Gross <jgross@suse.com>,
        Andrew Cooper
	<andrew.cooper3@citrix.com>,
        George Dunlap <george.dunlap@citrix.com>,
        Jan
 Beulich <jbeulich@suse.com>, Paul Durrant <paul@xen.org>,
        =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>,
        Christian Lindig
	<christian.lindig@citrix.com>,
        David Scott <dave@recoil.org>,
        =?iso-8859-1?Q?Marek_Marczykowski-G=F3recki?=
	<marmarek@invisiblethingslab.com>
Subject: [RFC,FUTURE 0/3] Make vSBDF configurable by toolstack
Thread-Topic: [RFC,FUTURE 0/3] Make vSBDF configurable by toolstack
Thread-Index: AQHaLh5gqP9om/bdnUuJG4CQUapQdQ==
Date: Wed, 13 Dec 2023 23:44:56 +0000
Message-ID: <20231213234345.779722-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.43.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB8666:EE_
x-ms-office365-filtering-correlation-id: 3d17fa42-7f18-436a-1956-08dbfc358343
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;
x-microsoft-antispam-message-info: 
 H+uVTkZ+H5p67ftzYdLEoL0Ja40q0O+H6kHv9fMuypktwSWH76DJN9U1XEgN2biUrn8RzEOLjRQfaUWSwWuxVlrd6mtf8ekB5Ss0FZHzTaUivD9jimReFGLMV4SyezjkS9upnO9PTbn5YC45Vo2dYgC9aCwKDVmPJgjWFlTS6iEFVnjHinF+kuKLqxhRxe5tKwzEEzeZM3jpNudfjBU0mSh43GeH60C53+xaUPhXaIiBTVjo8AIMhDq7VnIVoShQfapIFLDOLtTjloavKRq3Qav7luBiNjw/vHH+ZjykjdcmeLoEDvTMIoQHG7X2HhQZmtX0zwkOz2KWmrOadWtIMQTa91YyW6jK+xgNHSpgv+2ImiA98iiEtNtSlk103oIBDtzWWrC75l2ZM6pD/5RtMfUM7y98aPQChxWI0SnspjQl5ePbcudhxGYJn3/1aNXH7GEzzbH/XGi/vUnabNcSi+BBQD+9+Ddt0kfXgp4R/PauWAW59gWL0dUjuJ0IILXjqWInFYZLbYrNTZZDt4B1Ni72a9Et9HAjHrd9IgTkKiMBNL2eq9re2hhg5z56uCHmuGIha6NeDGCie7kC1QXkMAieHXml3bLZFCkxpbMu39Y=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(376002)(396003)(39860400002)(136003)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(1076003)(26005)(2616005)(71200400001)(6506007)(6512007)(55236004)(83380400001)(5660300002)(7416002)(8936002)(41300700001)(2906002)(4326008)(478600001)(6486002)(966005)(66556008)(8676002)(76116006)(66946007)(91956017)(316002)(6916009)(54906003)(64756008)(66446008)(66476007)(86362001)(122000001)(38100700002)(36756003)(38070700009);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?3o/rOBUCL3+rGJYffQvq9P7uVhaEY3UeqppqKlJkFxyhpk6DJyTQHW7JTt?=
 =?iso-8859-1?Q?ymmm0MKq8yLK0ffkc6m1UFC26Cir30XWAGnHXQX7VPDhU7/jr7jcSvVQVj?=
 =?iso-8859-1?Q?aE+bzsDOtoRY5OJlcBV1DUIJ5vXZAI+vw4I5mFAgpTGXUIa4edUZxQWOXg?=
 =?iso-8859-1?Q?+LfFmFYZ/VU/V1PBxhMotOtEiHUdaVs7hvApXYEeksIK39XBiKDpoC+mlf?=
 =?iso-8859-1?Q?5xUQucnnDQ4pMChpVwSV5s3wJRnu2+oTvznnpn3f0LybjYFjLBfItA5B3f?=
 =?iso-8859-1?Q?6HHKG7rMTxdtpLgdc6gIoWTZ+2RiLbyMqSUQmESpltJilUd1zN3O45Jy6C?=
 =?iso-8859-1?Q?nfjsLlPEsnnekEbfDnfkb01bHXgP8AMTpdWwoLt9rVQQndO7+iL4r9nCKx?=
 =?iso-8859-1?Q?aSMxqVwJjGoFcUBrdslP1b5I/0lD+XP6wpmVzGP9rJR9vhPjDVfPZRZ3Pr?=
 =?iso-8859-1?Q?8xfUBlqeZTIKjewb1AYsK9np5wPmaLEircKEvpT31Rs4/MxqIVsIsiDFJJ?=
 =?iso-8859-1?Q?bzbtIOVxOvtGKhSg2pRiVtaih4Zy0Tu/f9I+rRnWC9WNnfoJBXmDLUEzKY?=
 =?iso-8859-1?Q?U8ZpgDklDYCwpcj5BnNCgVVBi6Rt908F8jV0wh6ERA/CT4QwyPpqq+XmAu?=
 =?iso-8859-1?Q?nnUt+lTxcDjlmF2AQ4C9wChKY0EYfi+BcCEC244ErPI888yzK2DBBrud/r?=
 =?iso-8859-1?Q?doYYZ4LvXUSXhxz+WQsPxkXsHqX71z3y+iVjGn/zFHfw+yBK5QwpkVL734?=
 =?iso-8859-1?Q?X58h44RSiSm8yxHURtZfcqqdLd3HDr1XtzT7OO5u2UlvrmXcv42bmTT3bA?=
 =?iso-8859-1?Q?t1q0DdEseUNOzf+crZzE/8AZ+KW7vjZ7n9x5TbvRXQlJTDYT/rZMLOb+tG?=
 =?iso-8859-1?Q?xcqFDRDIBMJ13ZHOsPKlwj5m0HR/WygCyWZC+4PUDrG8cpodyEhjXRNTz/?=
 =?iso-8859-1?Q?7JulDZ0ZUNM/j6jQMafaGBZpI7dd6iuzw9/t+wXwT4rLIDkfZ3D/0W43jp?=
 =?iso-8859-1?Q?qZUbHzbMwcYFpuOTdSwpTRkxcaHb9qqocohHjxDESGHscR5w1ea3EJsuSX?=
 =?iso-8859-1?Q?RR/sOikwCF4ldYEwrt+pqdEn31ei0LxGKOWaowTWYrYuDm4XCJrPMbUhC4?=
 =?iso-8859-1?Q?bntpiOAcPGvK7kdMGuZL2V89v11J99BUL1sZEsM3qiFTVMu/bSVVza1uMb?=
 =?iso-8859-1?Q?qYaRLz3XgBw0YlKDutOM/WmoPHNcPOg6+YOTOfkYegQJi8OSvb3MPILcRR?=
 =?iso-8859-1?Q?5seQrWkUmUV3Lnv2pRbC8OJo111RyUeeL5/XWGfd73u8BcRNwuD6ENkNd+?=
 =?iso-8859-1?Q?KU1JtQhminTdZ6+NQHKEjQm8SBbC36xUtTvup6ZZzKLNT/JWHPWtw0vxEy?=
 =?iso-8859-1?Q?ZmdtFirtYXhOUu1I/J9t7uMltGpwxW4i76HacjL/Zcjyk/Qcm6BtU7kjUC?=
 =?iso-8859-1?Q?siE4AmNaGi1s2OXTMf4WhxxOUvPTWN1q8DYYLFtDuUCFJqPU2ELUv/XBut?=
 =?iso-8859-1?Q?UOoE/WakgCG1ctg8LqynNwtqdST4l91JYrlyCiZJEKAY4h0WKtYNYbEJal?=
 =?iso-8859-1?Q?d34kBvb3cftYyEFAXme3Oxhxr7072qYh3Yl0Bjb4mHZ51w4ezIQycrtCO9?=
 =?iso-8859-1?Q?wKCo1gS8zsX8hRvPhpRzriB1kTLSKMtNn72s5bnQ9HwkzRF4sFgU8Qjw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d17fa42-7f18-436a-1956-08dbfc358343
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 23:44:56.8674
 (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: SmPnDhMJp+B7mVkDrSwiaBuTSwwykX/j85XCMLFBIjcxBsCjOpfCy82F4hTC/F3o9BQshrsSZLjRcvmVKsV7oaVM48ZrX2ztn0xs2e3UFYM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8666
X-Proofpoint-GUID: wLneGQ2sNluAE_XUS8cx3v-VZ9Z4XQmh
X-Proofpoint-ORIG-GUID: wLneGQ2sNluAE_XUS8cx3v-VZ9Z4XQmh
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxscore=0
 impostorscore=0 lowpriorityscore=0 adultscore=0 clxscore=1011 spamscore=0
 bulkscore=0 suspectscore=0 mlxlogscore=587 phishscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000
 definitions=main-2312130168

This patch series is a follow up for the dicsussion at [1].

It adds ability for toolstack to chose Device part of SBDF for a PCI
device when passing it to DomU. First and last patches are quite
straightforward, but the second one ("tools: libxc: add virtual_sbdf
parameter to xc_assign_device") changes API of libxc, which is big
no-no, so it is just a starting point for a discussion. What is the
best way to do this?

Another topic for discussion is the first patch ("domctl/pci: add
ability to provide/request a virtual SBDF"). It extends existing
domctl for assigning devices, which is fine for this use case. But we
also discussed use case of virtio-pci devices, for which we want to
allocate/request vSBDFs as well. Problem is that we cant't use
assign_device call for this because there is no physical device which
can be assigned. Probably we will need another domctl - specifically
for allocating vSBDFs. But then there would be two domctls that are
capable of allocating vSBDFs: assign_device and this new call... So
yeah, I am open for suggestions.

[1] https://lore.kernel.org/all/d6a58e73-da51-40f1-a2f7-576274945585@xen.or=
g/

Volodymyr Babchuk (3):
  domctl/pci: add ability to provide/request a virtual SBDF
  tools: libxc: add virtual_sbdf parameter to xc_assign_device
  tools: libxl: use "vslot" parameter when assigning a PCI device

 tools/include/xenctrl.h             |  1 +
 tools/libs/ctrl/xc_domain.c         | 13 +++++++++-
 tools/libs/light/libxl_pci.c        |  9 +++++--
 tools/ocaml/libs/xc/xenctrl_stubs.c |  2 +-
 tools/python/xen/lowlevel/xc/xc.c   |  2 +-
 xen/drivers/passthrough/pci.c       | 17 ++++++++-----
 xen/drivers/vpci/vpci.c             | 38 +++++++++++++++++++++++------
 xen/include/public/domctl.h         |  9 ++++++-
 xen/include/xen/vpci.h              |  4 +--
 9 files changed, 73 insertions(+), 22 deletions(-)

--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 23:45:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 23:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654257.1020975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDYun-0004Oe-83; Wed, 13 Dec 2023 23:45:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654257.1020975; Wed, 13 Dec 2023 23:45:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDYun-0004OV-4T; Wed, 13 Dec 2023 23:45:21 +0000
Received: by outflank-mailman (input) for mailman id 654257;
 Wed, 13 Dec 2023 23:45:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FVP7=HY=epam.com=prvs=67111d5ab2=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1rDYul-0003et-IA
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 23:45:19 +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 aa52f849-9a11-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 00:45:16 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BDJ2iKZ012660; Wed, 13 Dec 2023 23:45:04 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uy0y4vams-3
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 13 Dec 2023 23:45:03 +0000 (GMT)
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB8666.eurprd03.prod.outlook.com (2603:10a6:20b:54c::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec
 2023 23:44:58 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7091.022; Wed, 13 Dec 2023
 23:44:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa52f849-9a11-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HEAl8RyPV6a3z3UxXq+cAewuXcasPSFXNuJNEOZ0H5fZcZJ7IlMXwCbaOlwnyi+pXqdul2qFAmnsE85Oy1vksVc7KDCkI3Blkao52Y9jCWmnKQJgfajk1iUxlR0dlC6BXAUyU1nBY3Q/8+fa9hVWsf4WcJBwu8WDXb0+PhAGO3SnV89bpOLBEHEsjor32Zh0CJIf98RfB+wGGSFX37fHZZ4Z/hXvTFRv6P5L+JChn+VkM0o/hmCYGN+hP4kQup0pjSFHeQ8r1LGFsr1wZM5l4td3mRihXvUexzk978eSWRZpqk+Gi4nfjuZliIGvlU4dpJwVAsGrwEvXRDCeIbIZ5w==
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=8N7z/YACwnG4WAFTZ48WWNHL71zQbWaz9C/HbJ/rSg4=;
 b=RlIlBFnmG5ezZ8OU0nGgaKxDDq5cXtsapX4KnWslb0f6WyJaKmCoKRKTlIWfp7J+DkkJx0uuokS+WX1DFJwrrpR4lv+OhnCTZCKhNo+aaLNHdqoZS+xOQZ+/Fa53GK6mzE+gsdadczv+DArR2lnXmhKZUgWckeyI9ZZrkE9PFZkOD71RYDsmDJxyg/pQFu8g9DgsB4Jw/R7XK9KjLOAdjUyt5/mZvmujT7KLl8yS3067MSqGEZ3y2XxZKjo7/QPJEYQCy/5w/CT9/gJ0q2/1sXfabWJDtF2Du8EG6gIvGizlCFr+k5+3JakyJJhMBuWrjhQs74hqWE/srzcMwVE6GQ==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8N7z/YACwnG4WAFTZ48WWNHL71zQbWaz9C/HbJ/rSg4=;
 b=HabljxAwPla2Idr/nyLTjxnuuWUaA56c9RQ1/LexmTuhYZY6ZJCyhtIkBMkgEumyQ+AdBKHkuj+YKKy5AG/bE3betzkWmppI13fiSrfs0lQ+RItBKtC+AoCloRHmNrir4Xlj4GC5/aKpttjzUBmNr/sUKpZvrBkZ9eToOyUgifQp9FUAdER/8U8/3KCg2Gpl2+sn9BLyo5zCXZvYTIyoYSLHRPh0McEp0FJHIPbaH12vT7/xyvH0NhVGfX8DuKVFe346J8CH+dg6cMkxi5ycrzHhSYsQJjT/u2p2c0Vnpu1yCVs/chIdZlZaYDAOVeeMKDMCnnQmhzEiNan/VcWY/A==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Liu <wl@xen.org>,
        Anthony PERARD
	<anthony.perard@citrix.com>,
        Juergen Gross <jgross@suse.com>,
        Christian
 Lindig <christian.lindig@citrix.com>,
        David Scott <dave@recoil.org>,
        =?iso-8859-1?Q?Marek_Marczykowski-G=F3recki?=
	<marmarek@invisiblethingslab.com>
Subject: [RFC,FUTURE 2/3] tools: libxc: add virtual_sbdf parameter to
 xc_assign_device
Thread-Topic: [RFC,FUTURE 2/3] tools: libxc: add virtual_sbdf parameter to
 xc_assign_device
Thread-Index: AQHaLh5h1p+/0eroN0+FN9vNJqoD+w==
Date: Wed, 13 Dec 2023 23:44:58 +0000
Message-ID: <20231213234345.779722-3-volodymyr_babchuk@epam.com>
References: <20231213234345.779722-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231213234345.779722-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.43.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB8666:EE_
x-ms-office365-filtering-correlation-id: b531f16f-b7ab-4881-28f8-08dbfc358458
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;
x-microsoft-antispam-message-info: 
 +TVcbus1t8Xq089Hl8dEJ8MTTAEjayDFwDo/ceGAhqk7sS+QpYTJj/rOAixog2is7vJTS8OQ9CJXcGWhNjRX31sTfheVNrpkiss64IBJ3pSlb/7BHN0f3vwWLBahQ0p+Vl69JSyPkKNKLMZXUyi5+JpORt0Y3nl1HD6uW+6rd7hNuCSHxIME/9GB+YKrJ99YpE3b8rrtf1MN8jZmXGbXSyTRjMkoOjspr+BO7U8/lbOXWfYeKpS7T0x1Ggb7eiLfybxMgBGh7ae8EDpAPx1ZJhzCSSCJEUFFY5gKLtHE7oyYFMO/fBG+misAqcbrEWdQndTSlOE+heZRfVEbq0ZikQk/9DFoLdLWWeZbEGhJ8w/d+YjXdz0H1XXT5UKva5yV0I/y1mx7V5A3cnyFIMDkKKuQwHod6W1NXdnC5hq/2cuc9SCj0v3W/utYE5gh2R/v8QfHVsWUkJeZgg8rgVIdGPmytdyAm7XdTW2k2wkziajFcvL0MkWoUNgKLiU48DSWfq9HnG7+CeUzLPWpu0enKBLOoJQ82xcFSARRA5fcieKC7NBCVys1u0VopUlgc9xtMMZtubaubtiWTfgxPyZO5S/OvNthjKe/N4K0q6znCj5Af3IcutMezg4ggnY5IN2f
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(376002)(396003)(39860400002)(136003)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(1076003)(26005)(2616005)(71200400001)(6506007)(6512007)(55236004)(83380400001)(5660300002)(7416002)(8936002)(41300700001)(2906002)(4326008)(478600001)(6486002)(66556008)(8676002)(76116006)(66946007)(91956017)(316002)(6916009)(54906003)(64756008)(66446008)(66476007)(86362001)(122000001)(38100700002)(36756003)(38070700009);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?/JM9ee2v30wqwFP+KWXMttODE3YQRUIjNoY0ZU/rXO7KtJYyriWCGdO1WW?=
 =?iso-8859-1?Q?lN6G6oODVENv93DvrzV6EMQmfZ28ArZerTmuEpjlTajwI6y7EtmzbY8qcV?=
 =?iso-8859-1?Q?9IkbPxnuKEicbYt+WA8HZmn7vR9pLUJ8ET5PZMGDh9Q6BGBqfMZNAqePQZ?=
 =?iso-8859-1?Q?juocmEZRx2YEu5YEpyOBMjQ8h3Z98jgk3wUqeDjJFkNroR4qidlLTpYkeZ?=
 =?iso-8859-1?Q?ohx4Gm5MjZY7LwXC9fnAQPc4TMPGOckExPh+zDOpWql+n30v/GA0fzqI3X?=
 =?iso-8859-1?Q?NGEg1tZcMJNNmubzX6uBOPeey5gVkhLui7VSGGNQiQhd0e9eZ+pIJIva9n?=
 =?iso-8859-1?Q?UcaokZ5kmpr7fqaqRuTGSyQau6yvvuvhMWbBnUuNIYL724XJrnFl5N0gpg?=
 =?iso-8859-1?Q?Wt5PSoMeZKpTV5P+ePRHmGHsbuh4EeP0gClIXXpWFZjLmpCRbf2ySS2y1z?=
 =?iso-8859-1?Q?aNuzfk+UX2Hs+E0FWdphxOaf95zs0Y3CVt69MjEbIzvP4aTkICSVEx0l0H?=
 =?iso-8859-1?Q?Q4GAg3592u98q4Y4uYhm2bi4Q550NWqUOVW0wz/QxaKcGYQf2vf/5pOC68?=
 =?iso-8859-1?Q?IXaM2h47bDq19VlAxjCPSRAlXWTLF/It7bmfkotriKY0g6gVHQe50VRDLx?=
 =?iso-8859-1?Q?EiBtVZzm7G7J8/iPqh/IN/U3Yv5zktisgy7GAWl44JaKP0LUs2wC6s8Or2?=
 =?iso-8859-1?Q?QZeCXJwB/dLhUiNYvxASZKvY8IPTYL4K6SYMf42Lh3B0KbkITey7pdsyUQ?=
 =?iso-8859-1?Q?9bfwe0XTv9uKGqMwnmDMrzYqNjT/VrYXzB6HMm+c+1S/9TrjagMcAyl0v+?=
 =?iso-8859-1?Q?7nPYi67b1E3LZlEH+Ixe+w/RIywNvNAldrhz/oQBDoBp5vqw6MWCyUvTAp?=
 =?iso-8859-1?Q?u4J3yR+zPhqcL9AjK3BQaia40FKdviyuXGXdKw+n7CAjXCErGoz1XNF0Qo?=
 =?iso-8859-1?Q?99L7DfQ0WRdS4GisRNxKPWXfMa7GIbIQqm8euJQrm2DvoDSQJhFhGtjnp7?=
 =?iso-8859-1?Q?gNKTtjdcH2PrRxJWkfLKK3R+LCBuYFgvlH18hVUCAJNHmfFPlM4HbkmTWu?=
 =?iso-8859-1?Q?U5tIu2+GNt7X1GYi8ztXXFGdB80yVgNluBE5iUhgs1wa8NWpblmHs28drn?=
 =?iso-8859-1?Q?FhcpPHOOyY+jpGlV7Xj4ydZIUcFY7uQNkKDt4t0FrzJ3xcGKsyYDUZs7Tx?=
 =?iso-8859-1?Q?Ggu00EuKI/XgYk/tfhzSF3+D+Akg7RM5TxUObdTpOPxWLH0hVsd3czI4kz?=
 =?iso-8859-1?Q?UKqG2/w3VnCd+0jX+s9Ir5PQXJW+8Byh/Vns/IgEBrmqH4S2vzdd4fkTyc?=
 =?iso-8859-1?Q?1+9Sx/ojSsMfClqdlXgem3b7biTdsPL9396NVgqYdY2C5bZsfVOs1n617z?=
 =?iso-8859-1?Q?XtE+d+bmPyOnZVowDIBBwDX4cKu9KiksSuJzi6liv7Af+HfAvUa66gMQ98?=
 =?iso-8859-1?Q?w1reSSTt8nvRu7SNMxoglgl0YHTniHfr+dQWdDYas8rSS0f8+jUBRDJ4Vv?=
 =?iso-8859-1?Q?FC+Rlhvy0Cyq2ScZpNL2uwSKT9d6ZJ0N0Te7mA6Hs1MMVgiidFFtOMZVdI?=
 =?iso-8859-1?Q?MUpLg0sapkkiiZjU03HsyEcckMcixPjVGBMMr/kzYFF82E45J8UvyfAPRW?=
 =?iso-8859-1?Q?WDlqDUS19HbxI+nhgybQyOIhRWxol6TNbp+0yQa64IJ512iK7auOOMRQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b531f16f-b7ab-4881-28f8-08dbfc358458
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 23:44:58.2239
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: u/yOERxGxfwt0JZo9G71uQDdHuVFpu/Nzku2PDDpLfk3S2eAEdFq0i0gMy0oVeEPiJIpWPklL9jDvdm7usCgOLedO12/pd0D/3i8njv8Uh0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8666
X-Proofpoint-GUID: N-KnCT21uJ-hmOONFHBqsIY3oIezIrNn
X-Proofpoint-ORIG-GUID: N-KnCT21uJ-hmOONFHBqsIY3oIezIrNn
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxscore=0
 impostorscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 spamscore=0
 bulkscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000
 definitions=main-2312130168

Now, when "assign_device" domctl supports virtual_sbdf option, make it
available to libxc users. This is an optional parameter, if it is not
provided, xc_assign_device() will ask hypervisor to allocate a free
vSBDF.

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

--

This clearly breaks libxc API. So I wanted to discuss a proper way of
doing this. Should I introduce a new xc_assign_device() function with
an extra parameter?
---
 tools/include/xenctrl.h             |  1 +
 tools/libs/ctrl/xc_domain.c         | 14 ++++++++++++--
 tools/libs/light/libxl_pci.c        |  4 ++--
 tools/ocaml/libs/xc/xenctrl_stubs.c |  2 +-
 tools/python/xen/lowlevel/xc/xc.c   |  2 +-
 5 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 2ef8b4e054..ccc0745c35 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1689,6 +1689,7 @@ int xc_get_hvm_param(xc_interface *handle, uint32_t d=
om, int param, unsigned lon
 int xc_assign_device(xc_interface *xch,
                      uint32_t domid,
                      uint32_t machine_sbdf,
+                     uint32_t *virtual_sbdf,
                      uint32_t flag);
=20
 int xc_get_device_group(xc_interface *xch,
diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
index 2405e39517..ca60b13a89 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -1497,18 +1497,28 @@ int xc_assign_device(
     xc_interface *xch,
     uint32_t domid,
     uint32_t machine_sbdf,
+    uint32_t *virtual_sbdf,
     uint32_t flags)
 {
+    int rc;
     struct xen_domctl domctl =3D {};
=20
     domctl.cmd =3D XEN_DOMCTL_assign_device;
     domctl.domain =3D domid;
     domctl.u.assign_device.dev =3D XEN_DOMCTL_DEV_PCI;
     domctl.u.assign_device.u.pci.machine_sbdf =3D machine_sbdf;
-    domctl.u.assign_device.u.pci.virtual_sbdf =3D XEN_DOMCTL_DEV_SDBF_ANY;
+    if (!virtual_sbdf)
+        domctl.u.assign_device.u.pci.virtual_sbdf =3D XEN_DOMCTL_DEV_SDBF_=
ANY;
+    else
+        domctl.u.assign_device.u.pci.virtual_sbdf =3D *virtual_sbdf;
     domctl.u.assign_device.flags =3D flags;
=20
-    return do_domctl(xch, &domctl);
+    rc =3D do_domctl(xch, &domctl);
+
+    if (!rc && virtual_sbdf)
+        *virtual_sbdf =3D domctl.u.assign_device.u.pci.virtual_sbdf;
+
+    return rc;
 }
=20
 int xc_get_device_group(
diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 96cb4da079..723e577ef5 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -842,7 +842,7 @@ name:
      * so always pass XEN_DOMCTL_DEV_RDM_RELAXED to avoid assignment being
      * unnecessarily denied.
      */
-    rc =3D xc_assign_device(ctx->xch, DOMID_IO, pci_encode_bdf(pci),
+    rc =3D xc_assign_device(ctx->xch, DOMID_IO, pci_encode_bdf(pci), NULL,
                           XEN_DOMCTL_DEV_RDM_RELAXED);
     if ( rc < 0 ) {
         LOG(ERROR, "failed to quarantine "PCI_BDF, dom, bus, dev, func);
@@ -1524,7 +1524,7 @@ out_no_irq:
             rc =3D ERROR_FAIL;
             goto out;
         }
-        r =3D xc_assign_device(ctx->xch, domid, pci_encode_bdf(pci), flag)=
;
+        r =3D xc_assign_device(ctx->xch, domid, pci_encode_bdf(pci), NULL,=
 flag);
         if (r < 0 && (hvm || errno !=3D ENOSYS)) {
             LOGED(ERROR, domainid, "xc_assign_device failed");
             rc =3D ERROR_FAIL;
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenc=
trl_stubs.c
index 3703f48c74..55d257abbb 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -1323,7 +1323,7 @@ CAMLprim value stub_xc_domain_assign_device(value xch=
_val, value domid, value de
 	func =3D Int_val(Field(desc, 3));
 	sbdf =3D encode_sbdf(domain, bus, dev, func);
=20
-	ret =3D xc_assign_device(xch, Int_val(domid), sbdf,
+	ret =3D xc_assign_device(xch, Int_val(domid), sbdf, NULL,
 			       XEN_DOMCTL_DEV_RDM_RELAXED);
=20
 	if (ret < 0)
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/=
xc/xc.c
index d3ea350e07..1e210c78b7 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -587,7 +587,7 @@ static PyObject *pyxc_assign_device(XcObject *self,
         sbdf |=3D (dev & 0x1f) << 3;
         sbdf |=3D (func & 0x7);
=20
-        if ( xc_assign_device(self->xc_handle, dom, sbdf, 0) !=3D 0 )
+        if ( xc_assign_device(self->xc_handle, dom, sbdf, NULL, 0) !=3D 0 =
)
         {
             if (errno =3D=3D ENOSYS)
                 sbdf =3D -1;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 23:45:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 23:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654255.1020955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDYul-0003tp-F5; Wed, 13 Dec 2023 23:45:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654255.1020955; Wed, 13 Dec 2023 23:45:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDYul-0003ti-Bj; Wed, 13 Dec 2023 23:45:19 +0000
Received: by outflank-mailman (input) for mailman id 654255;
 Wed, 13 Dec 2023 23:45:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FVP7=HY=epam.com=prvs=67111d5ab2=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1rDYuj-0003et-Sz
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 23:45:18 +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 a91fc728-9a11-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 00:45:15 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BDJ2iKX012660; Wed, 13 Dec 2023 23:45:03 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uy0y4vams-2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 13 Dec 2023 23:45:02 +0000 (GMT)
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB8666.eurprd03.prod.outlook.com (2603:10a6:20b:54c::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec
 2023 23:44:58 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7091.022; Wed, 13 Dec 2023
 23:44:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a91fc728-9a11-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RjcCE34Q8cYAXZKgD7kJW0DB45vnF8CZxwIVuvrVjiEb8RAIuCOuBtuEWzBMAVfJ8R0tjmgMD5TVZ+yVgJb23II1xkTsaKWcq+jxTAU8/g+MN7NZKQEgzLvzI227tLLOz3SULA7Re3RsvOn873lnTaSPKxI7Lp1xTMETjVYv+Yfl/IMP33zKbSCFM9qXEaCem5pFZuLRh/11Wa9aR45a96Eck6agHlkQuGaSc0yCivJvT4N2QgktlPrm3/A01oAEBqFrz8KZl02YvgrstBO5tE6iMLF7F7Dvi+jkT0VY2QRmmQLPknrL8CjEvgtGYTUmWYUMBssxwLGCHbpuiBqEuA==
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=dJERCSIdBtv8QPcVo8Rezsd1dZHzxbvjwYiJ7vM4OF8=;
 b=c4srFKbusB0BKFODJhzutgrmdCs8st8VDehNfBqoeDyWHZxBfq8ajhcKcdCNRP9mMP+pHwcSXdfTWD7kQ4pJok4bQaBA56gz8HNz/uo83zF6+h6L8OiEWIy9Kpm9ASrMKEUgbXADp8XHkFE5lWbM99vTcS0rStV4ZJSSz6+xyKHCfnVuAGg3IlzbgbMx85Cz4Vfb6cz4Y454ixnV4ywnDZtn7kLHcXgMLEvsXNN4BxPu8rQAhJJVYA/KPZRWWHWhH7NzjJzJOp0p72GwgCOJ7ap6IjgE/AJSyrvplF8FbBXfqGvgcac2OVrhrGQp4/cEg+8ikFbURfjxZNnlsT+8qw==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dJERCSIdBtv8QPcVo8Rezsd1dZHzxbvjwYiJ7vM4OF8=;
 b=qwwfMLE3VqcvX84HbGT3d+xGPHosMRrdv5RA50Mh5gTCkFUE9gEbcVXIgqxM3snls77g6Hi3+i+ZPkM/v6SH4czZ9TALJHkSrs2tX5/szu2tbqWSutPWKOJ40Y3D8DRIfeLJrlybkXAejXCf9aNR0z6FoABhR6gpYyDCVcuaoJG8Km0rP/TeNZQStjK0ulObhLnKPPTggzN0xN7xIsQOK+xz2iNvUVnUKGZMWUQtHBJ4JPamIrFNUHUUnozhf1sBcSBWD13ygOkcGW7n+jy5OVL5QDFbF9GSpSvE3SzwDM4MF+4oWui3fLMHKyk513qYuSd9vWHDh34bFZZBtpksng==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Liu <wl@xen.org>,
        Anthony PERARD
	<anthony.perard@citrix.com>,
        Juergen Gross <jgross@suse.com>,
        Andrew Cooper
	<andrew.cooper3@citrix.com>,
        George Dunlap <george.dunlap@citrix.com>,
        Jan
 Beulich <jbeulich@suse.com>, Paul Durrant <paul@xen.org>,
        =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [RFC,FUTURE 1/3] domctl/pci: add ability to provide/request a virtual
 SBDF
Thread-Topic: [RFC,FUTURE 1/3] domctl/pci: add ability to provide/request a
 virtual SBDF
Thread-Index: AQHaLh5hbb+FwMFvSku5VoT+rvFZMg==
Date: Wed, 13 Dec 2023 23:44:57 +0000
Message-ID: <20231213234345.779722-2-volodymyr_babchuk@epam.com>
References: <20231213234345.779722-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231213234345.779722-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.43.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB8666:EE_
x-ms-office365-filtering-correlation-id: 4066ccfc-1076-4190-f13d-08dbfc358420
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;
x-microsoft-antispam-message-info: 
 DxAP/ZOjUgYq/8JnPc2f2uWdw/bLsvAoCwnkqKbnfd35oGiEqC7fn9ijhwCBzJFxttbxuTxuGjM6FolM7v8y0CmzbbIVvjGAgBQfZpobkQQP2pIXXgs5SkaJ/qCiOCUn9rHJ9/ho0wpRPBZWPszptK5zEKVtT+EhM4diRXaBQbHRtPgia2RvamhjZolE5RfJZmtPXBkANrQOF4phVDyZ6zOL+vWOzKsbWSbc9Ojce6CmQu8xrpG/Iw93qOl/m6u3LeOytxv4GwrN5fLkPuhoaxdXIl9PmkHIdnmtQWTMtghIA104sURA1PeF2LrYJqPqVjJVNDaog73oKNn8eSQsGWajdomh6iEgWAIjeTidzb9cUfrsGi8iE0pbD1SsnADAskv1RJh56+0bY8roD5Mjp9IFBJ0pjzx6FEZFzBcJMGkrhr44WF4/FNkGcZUp9obU4m5eu+WnPYhQNHhJUSxqnOk+cMEwyu1JhMyXST+/mEPIya4tTKb7ni+5cF/URISWCJUN9q6CcVM+Ew5sVQm6O7KrbruO7/0pybflE5SPKhKjlBlr9jRlTYbgbftopZwyBsy8plZdu/Taj0mYvh54xPDTflshow5UaRaoCc1973M=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(376002)(396003)(39860400002)(136003)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(1076003)(26005)(2616005)(71200400001)(6506007)(6512007)(55236004)(83380400001)(5660300002)(7416002)(8936002)(41300700001)(2906002)(4326008)(478600001)(6486002)(966005)(66556008)(8676002)(76116006)(66946007)(91956017)(316002)(6916009)(54906003)(64756008)(66446008)(66476007)(86362001)(122000001)(38100700002)(36756003)(38070700009);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?P0AisEOffWOw8RyHmh8GlbY3gp6QLZMeGsD8tDoF7VQcVFv4dV/FOyXwsA?=
 =?iso-8859-1?Q?vsIWUYt0XSZoZFJopnOO1FEwd58SvSjMA7P5Urn1kLFmQOZUElT/gZjGnV?=
 =?iso-8859-1?Q?L+fiEi3prOZsKwqsqdf+cngx0hlv6nlN1jNwgZgT9B2WbcQebNFtyVoevJ?=
 =?iso-8859-1?Q?Zc1EYwMGwxJ3JOrZjeF4tInN51nalnO6h7Hcbad1CzqSvqNYNOgkWQA5K8?=
 =?iso-8859-1?Q?LzROyPDML53pghrcI8gFP1N6rdH9QNHiLRwGyH0ekkr4fWBN0Tn1ph/SWV?=
 =?iso-8859-1?Q?93ZfaD4vWccD1S0XJJqnAoVGk9RyzYey8R8BzE8EnWi3yYCHPlkbMFwr2E?=
 =?iso-8859-1?Q?mPKJWaFT0v+N2/KG88fmUUqy+W/5ayYTUt0E6R65PhryarRVs50L8UtvJI?=
 =?iso-8859-1?Q?iksgYjzE97YMddN9RBhWsvj4vA9CMxe55JQNo9CqqiQWEFY6ua9jh6OnUH?=
 =?iso-8859-1?Q?WKbxtcyK3L1zL2vwYKlzLeBiQh0splvf8xiBdHdZ6tR1Y7ZmKldYZSuQAi?=
 =?iso-8859-1?Q?Kq0pfwA78l9RAl7PW3HrW0lTKWNIo4dxfxlphYjhODndoZouSDzSeucXP8?=
 =?iso-8859-1?Q?LftcnlR7OQIfNNMOBYvv/2PlD7FBhJWe42qxNhxf85dbfvex8TRmBdIi3u?=
 =?iso-8859-1?Q?PlDYooBG6X/F78VaVf6YE3FER/0TaBV+6FQezSFJiCvo3PRi1BSRXQ3vvR?=
 =?iso-8859-1?Q?ePdQGi1GsHML1Xy61NXxFbcUgVfLZ3zCRtYXE7MgyWyhYjjUM2oA4t6LSA?=
 =?iso-8859-1?Q?z2pu4AKfgBWdoZX7a5PdQiG968qvYRlXL7cbKSaf318r1neUJlLCzh7AYP?=
 =?iso-8859-1?Q?RvsJ6QGJN7kd6zrOITssd9fnG3DNAZtPXcLVWMfG56xRUuNg+VjMmsOoTN?=
 =?iso-8859-1?Q?YHwHNlyaSBQTBZ8TbVVPXbczB99fInBrylexdTStMOuC7cG7Cqw34TejFk?=
 =?iso-8859-1?Q?/z4Wi4tXFpYNKWoZQ6pWo4w0uwcrmT6m+b/E/aKR5Bu2KGU8FVrQg/NHFe?=
 =?iso-8859-1?Q?eQJi2AzMVzftygbiK889MC1r4m8sSfKT+Nk07AuPRubj0QBaDy2cUG4C/R?=
 =?iso-8859-1?Q?0uMqU2agKgp7PAPyRAUQJWsN1o7BwXuHXTkIwrakM4yl/IbW4Tlg7gNISx?=
 =?iso-8859-1?Q?YUgZFQKgoWPB6M2qtUGKoDn0qrtaDCLiH/JoOnxtcONvK7bFb+6pGJIucB?=
 =?iso-8859-1?Q?XYWOiwxJkPun6r3PggXVRaazm02tTP2NZ3keQycxMZbAgbCWxm+j4iA5QI?=
 =?iso-8859-1?Q?twyWuPmFCeGVsazcR20q9dzTfkmf6GnSzvx8Y4CJGJIkVY+g5Q+n5MC8Bp?=
 =?iso-8859-1?Q?33TdXsKuPk7wr7XT/2FbvCg4GX+ng+oFCXqNoSePJv5XTo4v6A6lF1IRh1?=
 =?iso-8859-1?Q?SDXIe0HzlyheGYEa4RQGIyb5dTHJuJJJwoKu9kKUTJr6cc/p60jhtY7kNT?=
 =?iso-8859-1?Q?IgbYluU/3fikSFKqnMwqs/TkKeYZ+JF1cU2nJ+nBZsnJ0KMvaI6FsYGYkQ?=
 =?iso-8859-1?Q?O9FoL6fV3it5OSzfxL1tcB9ST7r/MknAuMwco2Su4D7vn1qEElHzvzVlQ4?=
 =?iso-8859-1?Q?G6KfXYnFHjI7VlBKHzXI801VuZYV1gANbKGhOrDy0PZqqKY52dUihKJLui?=
 =?iso-8859-1?Q?V8sKaX7vRkwsQDTR9v6rrd5LIMyFsIACjNMFr6sk5AZh8pytri0tBUlg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4066ccfc-1076-4190-f13d-08dbfc358420
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 23:44:57.9566
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: H+SoYpuLw5Kt9ENP8djB6Tei82SR4pLyf+Pzj2HjountWUJkj6j1rek3Vkc+TeN2k4LJzL29odbgRjvZth2EeXX4H538D/Jqzka12EFz6kg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8666
X-Proofpoint-GUID: AslKyKk_D3ly4HoVn7Drgv3B9ttsx1zY
X-Proofpoint-ORIG-GUID: AslKyKk_D3ly4HoVn7Drgv3B9ttsx1zY
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxscore=0
 impostorscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 spamscore=0
 bulkscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000
 definitions=main-2312130168

With CONFIG_HAS_VPCI_GUEST_SUPPORT enabled, hypervisor will assign a
passed-through PCI device to a guest using virtual/guest SBDF
number. Right now hypervisor automatically allocates next free
SBDF. But there are cases mentioned in [1] when user should be able to
control SBDF assigned to the passed-through device.

To enable this, extend assign_device domctl call with optional
parameter virtual_sbdf. When this parameter is set to
XEN_DOMCTL_DEV_SDBF_ANY, hypervisor will act as previously, but it
will return allocated vSBDF back to the toolstack. Alternatively,
toolstack might provide desired vSBDF and hypervisor will try to use
it, if it is free and falls into permitted range.

[1] https://lore.kernel.org/all/d6a58e73-da51-40f1-a2f7-576274945585@xen.or=
g/

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 tools/libs/ctrl/xc_domain.c   |  1 +
 xen/drivers/passthrough/pci.c | 17 ++++++++++------
 xen/drivers/vpci/vpci.c       | 38 +++++++++++++++++++++++++++--------
 xen/include/public/domctl.h   |  9 ++++++++-
 xen/include/xen/vpci.h        |  4 ++--
 5 files changed, 52 insertions(+), 17 deletions(-)

diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
index f2d9d14b4d..2405e39517 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -1505,6 +1505,7 @@ int xc_assign_device(
     domctl.domain =3D domid;
     domctl.u.assign_device.dev =3D XEN_DOMCTL_DEV_PCI;
     domctl.u.assign_device.u.pci.machine_sbdf =3D machine_sbdf;
+    domctl.u.assign_device.u.pci.virtual_sbdf =3D XEN_DOMCTL_DEV_SDBF_ANY;
     domctl.u.assign_device.flags =3D flags;
=20
     return do_domctl(xch, &domctl);
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index a3312fdab2..9ea18c39f4 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -755,7 +755,7 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
          * For devices not discovered by Xen during boot, add vPCI handler=
s
          * when Dom0 first informs Xen about such devices.
          */
-        ret =3D vpci_assign_device(pdev);
+        ret =3D vpci_assign_device(pdev, NULL);
         if ( ret )
         {
             list_del(&pdev->domain_list);
@@ -891,7 +891,7 @@ static int deassign_device(struct domain *d, uint16_t s=
eg, uint8_t bus,
     pdev->fault.count =3D 0;
=20
     write_lock(&target->pci_lock);
-    ret =3D vpci_assign_device(pdev);
+    ret =3D vpci_assign_device(pdev, NULL);
     write_unlock(&target->pci_lock);
=20
  out:
@@ -1154,7 +1154,7 @@ static void __hwdom_init setup_one_hwdom_device(const=
 struct setup_hwdom *ctxt,
               PCI_SLOT(devfn) =3D=3D PCI_SLOT(pdev->devfn) );
=20
     write_lock(&ctxt->d->pci_lock);
-    err =3D vpci_assign_device(pdev);
+    err =3D vpci_assign_device(pdev, NULL);
     write_unlock(&ctxt->d->pci_lock);
     if ( err )
         printk(XENLOG_ERR "setup of vPCI for d%d failed: %d\n",
@@ -1461,7 +1461,8 @@ static int device_assigned(u16 seg, u8 bus, u8 devfn)
 }
=20
 /* Caller should hold the pcidevs_lock */
-static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 =
flag)
+static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 =
flag,
+                         pci_sbdf_t *vsbdf)
 {
     const struct domain_iommu *hd =3D dom_iommu(d);
     struct pci_dev *pdev;
@@ -1515,7 +1516,7 @@ static int assign_device(struct domain *d, u16 seg, u=
8 bus, u8 devfn, u32 flag)
     }
=20
     write_lock(&d->pci_lock);
-    rc =3D vpci_assign_device(pdev);
+    rc =3D vpci_assign_device(pdev, vsbdf);
     write_unlock(&d->pci_lock);
=20
  done:
@@ -1616,6 +1617,7 @@ int iommu_do_pci_domctl(
     u8 bus, devfn;
     int ret =3D 0;
     uint32_t machine_sbdf;
+    pci_sbdf_t virtual_sbdf;
=20
     switch ( domctl->cmd )
     {
@@ -1675,6 +1677,7 @@ int iommu_do_pci_domctl(
             break;
=20
         machine_sbdf =3D domctl->u.assign_device.u.pci.machine_sbdf;
+        virtual_sbdf.sbdf =3D domctl->u.assign_device.u.pci.virtual_sbdf;
=20
         ret =3D xsm_assign_device(XSM_HOOK, d, machine_sbdf);
         if ( ret )
@@ -1696,11 +1699,13 @@ int iommu_do_pci_domctl(
             }
         }
         else if ( !ret )
-            ret =3D assign_device(d, seg, bus, devfn, flags);
+            ret =3D assign_device(d, seg, bus, devfn, flags, &virtual_sbdf=
);
         pcidevs_unlock();
         if ( ret =3D=3D -ERESTART )
             ret =3D hypercall_create_continuation(__HYPERVISOR_domctl,
                                                 "h", u_domctl);
+
+        domctl->u.assign_device.u.pci.virtual_sbdf =3D virtual_sbdf.sbdf;
         break;
=20
     case XEN_DOMCTL_deassign_device:
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 7c0b610ccc..12963b77c3 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -37,7 +37,7 @@ extern vpci_register_init_t *const __end_vpci_array[];
 #define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
=20
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
-static int add_virtual_device(struct pci_dev *pdev)
+static int add_virtual_device(struct pci_dev *pdev, pci_sbdf_t *vsbdf)
 {
     struct domain *d =3D pdev->domain;
     unsigned int new_dev_number;
@@ -57,13 +57,35 @@ static int add_virtual_device(struct pci_dev *pdev)
                  &pdev->sbdf);
         return -EOPNOTSUPP;
     }
-    new_dev_number =3D find_first_zero_bit(d->vpci_dev_assigned_map,
-                                         VPCI_MAX_VIRT_DEV);
-    if ( new_dev_number =3D=3D VPCI_MAX_VIRT_DEV )
-        return -ENOSPC;
=20
-    __set_bit(new_dev_number, &d->vpci_dev_assigned_map);
+    if ( !vsbdf || vsbdf->sbdf =3D=3D XEN_DOMCTL_DEV_SDBF_ANY )
+    {
+        new_dev_number =3D find_first_zero_bit(d->vpci_dev_assigned_map,
+                                             VPCI_MAX_VIRT_DEV);
+        if ( new_dev_number =3D=3D VPCI_MAX_VIRT_DEV )
+            return -ENOSPC;
=20
+        if ( vsbdf )
+            *vsbdf =3D PCI_SBDF(0, 0, new_dev_number, 0);
+    }
+    else
+    {
+        if ( vsbdf->seg !=3D 0 || vsbdf->bus !=3D 0 || vsbdf->fn !=3D 0 )
+        {
+            gdprintk(XENLOG_ERR,
+                     "vSBDF %pp: segment, bus and function should be 0\n",
+                     vsbdf);
+            return -EOPNOTSUPP;
+        }
+        new_dev_number =3D vsbdf->dev;
+        if ( test_bit(new_dev_number, &d->vpci_dev_assigned_map) )
+        {
+            gdprintk(XENLOG_ERR, "vSBDF %pp already assigned\n", vsbdf);
+            return -EOPNOTSUPP;
+        }
+    }
+
+    __set_bit(new_dev_number, &d->vpci_dev_assigned_map);
     /*
      * Both segment and bus number are 0:
      *  - we emulate a single host bridge for the guest, e.g. segment 0
@@ -148,7 +170,7 @@ void vpci_deassign_device(struct pci_dev *pdev)
     pdev->vpci =3D NULL;
 }
=20
-int vpci_assign_device(struct pci_dev *pdev)
+int vpci_assign_device(struct pci_dev *pdev, pci_sbdf_t *vsbdf)
 {
     unsigned int i;
     const unsigned long *ro_map;
@@ -176,7 +198,7 @@ int vpci_assign_device(struct pci_dev *pdev)
=20
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
     pdev->vpci->guest_sbdf.sbdf =3D ~0;
-    rc =3D add_virtual_device(pdev);
+    rc =3D add_virtual_device(pdev, vsbdf);
     if ( rc )
         goto out;
 #endif
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index a33f9ec32b..60a59ce378 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -504,7 +504,12 @@ struct xen_domctl_sendtrigger {
=20
=20
 /* Assign a device to a guest. Sets up IOMMU structures. */
-/* XEN_DOMCTL_assign_device */
+/* XEN_DOMCTL_assign_device
+ * when assigning a PCI device, it is possible to either request
+ * or provide a virtual SBDF. When virtual_sbdf equals to
+ * XEN_DOMCTL_DEV_SDBF_ANY, hypervisor will return allocated
+ * vSBDF back.
+ */
 /*
  * XEN_DOMCTL_test_assign_device: Pass DOMID_INVALID to find out whether t=
he
  * given device is assigned to any DomU at all. Pass a specific domain ID =
to
@@ -528,6 +533,8 @@ struct xen_domctl_assign_device {
     union {
         struct {
             uint32_t machine_sbdf;   /* machine PCI ID of assigned device =
*/
+            uint32_t virtual_sbdf;   /* IN/OUT virtual SBDF of the device =
*/
+#define XEN_DOMCTL_DEV_SDBF_ANY     0xFFFFFFFF /* request a free SBDF */
         } pci;
         struct {
             uint32_t size; /* Length of the path */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index ec6598237b..f66a641e4f 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -33,7 +33,7 @@ typedef int vpci_register_init_t(struct pci_dev *dev);
                __used_section(".data.vpci." p) =3D x
=20
 /* Assign vPCI to device by adding handlers to device. */
-int __must_check vpci_assign_device(struct pci_dev *pdev);
+int __must_check vpci_assign_device(struct pci_dev *pdev, pci_sbdf_t *vsbd=
f);
=20
 /* Remove all handlers and free vpci related structures. */
 void vpci_deassign_device(struct pci_dev *pdev);
@@ -265,7 +265,7 @@ bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, =
unsigned int len,
 #else /* !CONFIG_HAS_VPCI */
 struct vpci_vcpu {};
=20
-static inline int vpci_assign_device(struct pci_dev *pdev)
+static inline int vpci_assign_device(struct pci_dev *pdev, pci_sbdf_t *vsb=
df)
 {
     return 0;
 }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Dec 13 23:45:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Dec 2023 23:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654256.1020960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDYul-0003xK-Pr; Wed, 13 Dec 2023 23:45:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654256.1020960; Wed, 13 Dec 2023 23:45:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDYul-0003x7-KK; Wed, 13 Dec 2023 23:45:19 +0000
Received: by outflank-mailman (input) for mailman id 654256;
 Wed, 13 Dec 2023 23:45:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FVP7=HY=epam.com=prvs=67111d5ab2=volodymyr_babchuk@srs-se1.protection.inumbo.net>)
 id 1rDYuk-0003et-I4
 for xen-devel@lists.xenproject.org; Wed, 13 Dec 2023 23:45:18 +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 aa0628d6-9a11-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 00:45:16 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BDJ2iKa012660; Wed, 13 Dec 2023 23:45:05 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2051.outbound.protection.outlook.com [104.47.13.51])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3uy0y4vams-4
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 13 Dec 2023 23:45:04 +0000 (GMT)
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com (2603:10a6:803:31::18)
 by AS8PR03MB8666.eurprd03.prod.outlook.com (2603:10a6:20b:54c::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec
 2023 23:44:59 +0000
Received: from VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822]) by VI1PR03MB3710.eurprd03.prod.outlook.com
 ([fe80::8e03:368:1fd7:1822%6]) with mapi id 15.20.7091.022; Wed, 13 Dec 2023
 23:44: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: aa0628d6-9a11-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=itAaYzhZY9Wp/aQ+boY7W3UK35VF9yEAd1O3Yh+a5ht6XbJ1UcQGystEJmxWmt+EeLQifxECsIQNhFDXba8N0HSI2YOvL1EhGbgcMCW/SXocdyLnrmLi5p/+Ar+TsyoczQFYzDjaNLkY08iuqXH4fUwwkhQennoVtqu7xuHCciDJnnrBz+7MBNqReGFz8NrUge9jVPh8qlzsRG7Ba0sGFYkeCnggPyDdNGOVfqUoOw4tdQjKUEAqMdTYx+fKn5V4gAzyhZYZRHfFpGobDdy7wCsv7fpEBEc6mKBMXdaP7eBl/MihXjCD03FgyOeCjNkyESs+KoKpV7yMtVm8sLYQGw==
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=YpRsE4hzDvT+283KhRaNySn9/iNEhYA8xfPItLgPBVE=;
 b=VmtLGRjOOiKw1o/IzNQWy+yT2ygjytJaqQPk8ZT9hA7o5+cPM3vJxD3BtrDjA+06itBLMwKmcy15e5qW6RxxYlwVms/FTE1YX9BHAZ5+K1Zak5GM3DmBgo+4AQH3HY58ApVuVTCHcujxMiE0xPUPueekt5sJqwnslmqZ1hOiBuucXJS1OtFzCFf8lMeXePrfv8wB0tnGIZv9WedJta23p1y04494wGZqwrsJm10siyhTeyXFs/viCfLfV8qR48UVUi4+BAH43QRGqW1+nMXoLomaXfDQ4P6wmlG0JC5+FngztxPWjatVV4he4eIAVSM4GjcN6zq+Ux/CZqilr+M+aA==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YpRsE4hzDvT+283KhRaNySn9/iNEhYA8xfPItLgPBVE=;
 b=ZiXlOtY3tY+OhOdjLJz4pYh/qD46uQ7jnrfMli/Byp3YPkKTWJGClY+MdAxH0LIo4kZBFhVLCsxyXcfSS0P2i/KteX5ynqARprFIxEkmcThDeze8T7SsU39ioKRZ16ETFn2+5bovuucZxe1fXvg8offyVnsrV8CIVi5gE7KlEMr0zT5aEzYfZ8zqFZYB14v+uEKiJnkEAirXN8UyIARpgzCrABPTS4ITIwqVLMYOO+0b4UfFB8//wmxmluLztL+4HWbY7LN/B/ko2WPysDAiktB+tshVF8fKCKhHYKr1Q/l/fkkMP0RfvyGpVBb7c425lwbmFKOPdYPlM5h1cLZQNA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
        Stefano Stabellini
	<sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Wei Liu <wl@xen.org>,
        Anthony PERARD
	<anthony.perard@citrix.com>,
        Juergen Gross <jgross@suse.com>
Subject: [RFC,FUTURE 3/3] tools: libxl: use "vslot" parameter when assigning a
 PCI device
Thread-Topic: [RFC,FUTURE 3/3] tools: libxl: use "vslot" parameter when
 assigning a PCI device
Thread-Index: AQHaLh5hhUhc1caE+UyL8B+mLfWnJg==
Date: Wed, 13 Dec 2023 23:44:58 +0000
Message-ID: <20231213234345.779722-4-volodymyr_babchuk@epam.com>
References: <20231213234345.779722-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20231213234345.779722-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: git-send-email 2.43.0
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3710:EE_|AS8PR03MB8666:EE_
x-ms-office365-filtering-correlation-id: 1ef081db-9247-460f-e608-08dbfc358489
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;
x-microsoft-antispam-message-info: 
 hPQQZDrRDl3eLGjHCj3alzVLu3Gfff2aS6wxGU0SX7NlbZDiFpn1WxFzdVaCnYKJXTl1VXtTUDSXLpOrqgYEoXpCyO4ks5/tYsb06c0QN5Al4m0kkE6/II8JfuGeoXDDw7HeMBbN3y2u3lAvGP67hCYvYA9uPB7wwMKDMq91LS8krEJqn/cspPluht1mtzEjhBPeHxQqg//KWAvKFgeRcGf8OfgCmszsDMHnKwi/TCrWmTkM8p9Qz9POFWs5uga2nt9YRd0UsE3AoUyLgYyrA03Ss7e1x43qtA5tLX+izT3NVWAKEmgUnR+nlU4YB+aPsxg3Ruf0HPkKA2Nzbe4GsP+qPHTvP5FVHhi1eFS4AFXmLE06v38oylEh4/sSFu096qkoku8n9tnKGrGrJYGe80tZwY3RsclfA/ku++OiT55EQOMeoEBzuzVfyHQy8Z/gjbdGR2kF6zvmar/xbFC2Z73ioKt0Y+35mNxjGO76tMZcBppZtup8PdvQIUyj+VF90nOXhu1Nrj+DC49Jj1RpQFAd1jAV27uO+7gA+SU1My24r3zC1r7S/3+RE+jbb77AxyjoiM7BQsrk9InYW6t637batrEW765pV0OpH9P5W3XOs8JHRsdhRK1/HQyTBHlQ
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3710.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(376002)(396003)(39860400002)(136003)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(1076003)(26005)(2616005)(71200400001)(6506007)(6512007)(55236004)(83380400001)(5660300002)(8936002)(41300700001)(2906002)(4326008)(478600001)(6486002)(66556008)(8676002)(76116006)(66946007)(91956017)(316002)(6916009)(54906003)(64756008)(66446008)(66476007)(86362001)(122000001)(38100700002)(36756003)(38070700009);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?ASbcbR7+SLkXhVLuTiwMCdSAHP85ravYLOYZXXt1fHi1bQ8dQd8MQa3Gas?=
 =?iso-8859-1?Q?2USLgNSHPspBx5kIW1xik7RU5yFJjsmVVpk3vcTIf4duGJBSEGabEAXCAW?=
 =?iso-8859-1?Q?j++DcmoWImJtkR0sEzQBPFhzi5a4rI4cjoq6RUMRjOhaNwFnz/TkTQaIGc?=
 =?iso-8859-1?Q?s61ckoaHlf0RQWYwNc2/28yQfYB25MpJ8UF8lcyrAKQfYwNFFFHoTWkxg1?=
 =?iso-8859-1?Q?Z1EjupkMrmZE4iVX51RDOaA3Uc40xFBSOPpPxJUjnSQ9/UhgvEHD7Z6Exy?=
 =?iso-8859-1?Q?MrmWRfh0Qixy3RuQdFWNy5sE2eUim35ArayCzoZ0qBAh9gexcMqCVRMoFb?=
 =?iso-8859-1?Q?s9j2uj0OXXDQnXf8buZpTCd7euxeMI5sfwNUnBGblSMtx4MT/H+fCe86AS?=
 =?iso-8859-1?Q?DXyNaW8NeXye6ldwMkAQCkmXX/woGE3RVez1OcdFdvg+uwavXYMo4q/S5W?=
 =?iso-8859-1?Q?3FrA53Io/kvjUcnkEmTpSqpC8YFvuV56v7Am+H0HgVwxwuCq7vzcp76uSg?=
 =?iso-8859-1?Q?dBuAQiz2SYu356sBQIxYZMnmH5RoEb1GhM7EnYT/iBGiXuarAo4R5X3uxl?=
 =?iso-8859-1?Q?Jyz/AHaN7Lp3piNstUKer8vE0/KDRBvVw/nPF5PpYyWHp8b1O2zfsI5f7T?=
 =?iso-8859-1?Q?zTiE5EYMtFTxlUQGk02XtpFSVsv4dCpyqlXZCGl08osEF6AT7R191b1gMk?=
 =?iso-8859-1?Q?zi9YMZFCoaHlYpCE9RFqQhYDSRWoLRlZ1bg12D/LguJ7RntULIUta+2RC+?=
 =?iso-8859-1?Q?/UTrmBprE2TuAD1S8WVrWIpMi57DCscG8o387532N3Qudh7W1qZAH7+bS7?=
 =?iso-8859-1?Q?XjSQR/noi+ejVmGw6uYHAzuWXSIzNBSXysjMiT/IsreP+2zVqb5uNsrL6x?=
 =?iso-8859-1?Q?6hWyYvPpxW91Jz0tgvs9ZfkO/jfWMzsBYaXUCvs6o3toRZt5Ju6I4kbtf6?=
 =?iso-8859-1?Q?beYCRNPAAjcoaGJPo+oYPAvhsYtMi07i1iWS6Xpy+oDQF9wD/vJARDn/JO?=
 =?iso-8859-1?Q?y6it6+9eCakW4Sp3mGiXl5sSgH+d5CUbCL4wUUweTIyIdGaUrm7dSLgZw+?=
 =?iso-8859-1?Q?JCbqZgmgnWw9SxraWy5FWMD6/CJB06Kwf1wAgCcjuINWQWg2DHnf76bDbc?=
 =?iso-8859-1?Q?KZGDKbMwiG01ZLp2uX51nL8PdGvqqAprjEf0Iubemlk7IHPV1/ztvCSmWW?=
 =?iso-8859-1?Q?S/W4HAbMsoAHxybVOJFPVVnShgVMMJz+a+n2WjphPu+Y3i/Qu8HsJ/oVz5?=
 =?iso-8859-1?Q?NkB/b2pd2m3cEl1NMuTOY0MrHQlbrruNJ3AwSayqv1+yJ1YkqODHvekNC8?=
 =?iso-8859-1?Q?9ucbyTM0xvTphpZWj31B6L8Ydk+vUzQcF2vvfzTO1ObcbajemqR4CLkQEF?=
 =?iso-8859-1?Q?sLTCV7uxzC87PnoFsiWmGqOO0/G986DVjxQ0n61ONDRYAAaoKpkwcm4e5Y?=
 =?iso-8859-1?Q?UBSNclOCqo5JaM69ImTs378Sg4FL/UH6mpX5XMwJFJ4R3Gpq4f16Xt8HJ2?=
 =?iso-8859-1?Q?CG0PxF8M2NXplgRbUBCPXLnol7kQ1BiSYE48VPW1TAWo+MZIjFd/n30bTs?=
 =?iso-8859-1?Q?k12jh1Vbn0HnxNDDKPVPopjgorSj1Yl8f8RWEvg8GZLpgVBJIUkP6TLRza?=
 =?iso-8859-1?Q?+KcW4wuL8zS8+MVlz6Z7Dzx5xSg3miOg8x6ZZaLYlpUhK46pqOqsGc9w?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB3710.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1ef081db-9247-460f-e608-08dbfc358489
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 23:44:58.5066
 (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: VgNq8jdL/4lbhXmekqRDzCZqyxNT/kLCet0DjsG9Ie2r30n3dlDLmJSh5WIzS8b6rTeaxQbzEcQ5P8T1foEgjxS+yonqaGWpysGNdb5zsDU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8666
X-Proofpoint-GUID: aQJr0MHTZ6mVGRNP0WHuntxA_k-knlLQ
X-Proofpoint-ORIG-GUID: aQJr0MHTZ6mVGRNP0WHuntxA_k-knlLQ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxscore=0
 impostorscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 spamscore=0
 bulkscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000
 definitions=main-2312130168

Now, when "assign_device" domctl supports providing a virtual SBDF, we
can leverage "vslot" option from PCI_SPEC_STRING and pass user
requested function number to the hypervisor.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 tools/libs/light/libxl_pci.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 723e577ef5..13c7b12343 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -1421,6 +1421,7 @@ static void pci_add_dm_done(libxl__egc *egc,
     uint32_t flag =3D XEN_DOMCTL_DEV_RDM_RELAXED;
     uint32_t domainid =3D domid;
     bool isstubdom =3D libxl_is_stubdom(ctx, domid, &domainid);
+    uint32_t vsbdf =3D XEN_DOMCTL_DEV_SDBF_ANY;
=20
     /* Convenience aliases */
     bool starting =3D pas->starting;
@@ -1524,12 +1525,16 @@ out_no_irq:
             rc =3D ERROR_FAIL;
             goto out;
         }
-        r =3D xc_assign_device(ctx->xch, domid, pci_encode_bdf(pci), NULL,=
 flag);
+        if (pci->vdevfn)
+            vsbdf =3D pci->vdevfn;
+
+        r =3D xc_assign_device(ctx->xch, domid, pci_encode_bdf(pci), &vsbd=
f, flag);
         if (r < 0 && (hvm || errno !=3D ENOSYS)) {
             LOGED(ERROR, domainid, "xc_assign_device failed");
             rc =3D ERROR_FAIL;
             goto out;
         }
+        LOGD(DEBUG, domainid, "Got vSBDF %x", vsbdf);
     }
=20
     if (!libxl_get_stubdom_id(CTX, domid))
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 01:40:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 01:40:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654269.1020984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDai9-00046U-LW; Thu, 14 Dec 2023 01:40:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654269.1020984; Thu, 14 Dec 2023 01:40:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDai9-00046N-Iu; Thu, 14 Dec 2023 01:40:25 +0000
Received: by outflank-mailman (input) for mailman id 654269;
 Thu, 14 Dec 2023 01:40: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 1rDai8-00044t-HR; Thu, 14 Dec 2023 01:40: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 1rDai8-0005hz-Eo; Thu, 14 Dec 2023 01:40: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 1rDai8-0007xP-0E; Thu, 14 Dec 2023 01:40:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDai7-0007a1-VN; Thu, 14 Dec 2023 01:40: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=+dX+xvoNy9FNtjv4b1C+Mt8LaSZoBQGc/7siARCb90s=; b=ajVCEUaBGdXXZi8JQIAb1qE4YF
	1Hwr3olVnQA46Rz509HaBKyG6kCExGUqP4ZNnI2SmoyXiHVmbs+Olt1kVXBYRnFy6KNZ7JIgwbcAd
	HkLtw76HlO/EKIiBN+2gYHRzeX5AYqaxp2fVZ6/CzCp8fw3iZ1qpeSDMTmyyK9u0MPPQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184117-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184117: regressions - FAIL
X-Osstest-Failures:
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-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-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-credit2:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit2: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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-libvirt: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-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=cf52eed70e555e864120cfaf280e979e2a035c66
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 14 Dec 2023 01:40:23 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-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-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-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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:
 linux                cf52eed70e555e864120cfaf280e979e2a035c66
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z   11 days
Failing since        183977  2023-12-03 00:12:06 Z   11 days   21 attempts
Testing same since   184117  2023-12-12 21:14:44 Z    1 days    1 attempts

------------------------------------------------------------
358 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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 13288 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 02:05:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 02:05:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654275.1020994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDb6E-0007cM-Qr; Thu, 14 Dec 2023 02:05:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654275.1020994; Thu, 14 Dec 2023 02: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 1rDb6E-0007cF-N9; Thu, 14 Dec 2023 02:05:18 +0000
Received: by outflank-mailman (input) for mailman id 654275;
 Thu, 14 Dec 2023 02: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDb6D-0007c7-PD
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 02:05: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 37bd9f2d-9a25-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 03:05:15 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 327A3CE2223;
 Thu, 14 Dec 2023 02:05:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D2E8EC433C8;
 Thu, 14 Dec 2023 02:05:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37bd9f2d-9a25-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702519511;
	bh=x0klhS8WaEHpzPlcz8EuF+4DGqTRpAbaamDlZDSXqHU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=uMMP4n13YecW0IjMfPCTSQQFyhCitL8HsSWjDRQxxzo/mTpJzOgAqiJlf7Q/qtE6C
	 F0J4mqIUwBGJHesN+mIv6tTY1kVLrjPxemMQnRJQV/HBsDqKgcnWgGtY0tfE29hw72
	 S2ZVXlDvEap+GcdrAsCod5Lwx0mVzVDlYVkFc6d7+8RFt7qLyHHsQsEdwt2i/1GXVG
	 KcdaPnJxj69uLQ/FSIZ28XG8F4R89OLE/D2AbhffLEIi5mOwyrPEdWWx7bCV9+gDXC
	 IU75zo8LR/f7GhkpND7O8Aqie5tDGD6c1OjR0/OCruIKjqlHER939qp1ixieta/Z+S
	 VKwoiPwLA+u3Q==
Date: Wed, 13 Dec 2023 18:05:05 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
In-Reply-To: <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com> <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com> <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 13 Dec 2023, Jan Beulich wrote:
> On 11.12.2023 10:14, Nicola Vetrini wrote:
> > --- a/xen/arch/arm/include/asm/numa.h
> > +++ b/xen/arch/arm/include/asm/numa.h
> > @@ -2,8 +2,9 @@
> >  #define __ARCH_ARM_NUMA_H
> >  
> >  #include <xen/mm.h>
> 
> With this, ...
> 
> > +#include <xen/types.h>
> >  
> > -typedef u8 nodeid_t;
> > +typedef uint8_t nodeid_t;
> >  
> >  #ifndef CONFIG_NUMA
> >  
> > @@ -12,10 +13,9 @@ typedef u8 nodeid_t;
> >  #define node_to_cpumask(node)   (cpu_online_map)
> >  
> >  /*
> > - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
> > - * is required because the dummy helpers are using it.
> > + * TODO: define here first_valid_mfn as static when NUMA is supported on Arm,
> > + * this is required because the dummy helpers are using it.
> >   */
> > -extern mfn_t first_valid_mfn;
> 
> ... and this declaration moved to xen/mm.h, how is it going to be possible
> to do as the adjusted comment says? The compiler will choke on the static
> after having seen the extern.

Hi Jan,

Nicola was just following a review comment by Julien. NUMA has been
pending for a while and I wouldn't hold this patch back because of it.
I suggest we go with Julien's request (this version of the patch).

If you feel strongly about it, please suggest an alternative.


> I also firmly disagree with the entirely unrelated u8 -> uint8_t change
> above. Such tidying can be done when somewhat related to what a patch is
> doing anyway, but here there's (imo) not even a vague connection.

Can be removed on commit


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 02:07:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 02:07:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654277.1021004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDb84-0008CM-4h; Thu, 14 Dec 2023 02:07:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654277.1021004; Thu, 14 Dec 2023 02:07:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDb84-0008CF-27; Thu, 14 Dec 2023 02:07:12 +0000
Received: by outflank-mailman (input) for mailman id 654277;
 Thu, 14 Dec 2023 02:07: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 1rDb82-0008C3-E3; Thu, 14 Dec 2023 02:07: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 1rDb82-0006cu-9C; Thu, 14 Dec 2023 02:07: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 1rDb81-0000YN-Qu; Thu, 14 Dec 2023 02:07:09 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDb81-000360-QS; Thu, 14 Dec 2023 02:07: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=yQXRQbDe/7iJz3TpFwNCbPcfHqHApSbb0sRzeVGjO68=; b=l/NL4LP7Qgjsm0BTzKwFAjhCkn
	k9khrD03kssFD3hHwPyBK0CQuGtFfNCrLFtBLtuAvq8nSUaBA731xjpdOG+k3DG8dc6sY6AxFcswR
	qEcNQN6ky9FemMRHvuJJO9j+tluS0jZnc8sy66/LFym0OsD+hykZlZqfGWnFY9ZLrYKY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184121-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.18-testing test] 184121: regressions - trouble: blocked/fail/pass/starved
X-Osstest-Failures:
    xen-4.18-testing:build-arm64-pvops:kernel-build:fail:regression
    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-amd64-i386-xl-qemuu-ws16-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-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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-qemuu-win7-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-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-libvirt:migrate-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-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-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-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-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-vhd: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-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-armhf-armhf-libvirt:hosts-allocate:starved:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-multivcpu:hosts-allocate:starved:nonblocking
X-Osstest-Versions-This:
    xen=1792d1723b7fb45a20b145d2de4d233913b22c09
X-Osstest-Versions-That:
    xen=a4f3f5a62c10a5adc898cf45261783209f5bc037
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 14 Dec 2023 02:07:09 +0000

flight 184121 xen-4.18-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/184121/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 build-arm64-pvops             6 kernel-build             fail REGR. vs. 184105

Tests which did not succeed, but are not blocking:
 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-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop       fail blocked in 184105
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184105
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184105
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184105
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184105
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184105
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184105
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184105
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184105
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184105
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184105
 test-amd64-i386-libvirt      15 migrate-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-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-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-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-raw  14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt      3 hosts-allocate               starved  n/a
 test-armhf-armhf-xl-multivcpu  3 hosts-allocate               starved  n/a

version targeted for testing:
 xen                  1792d1723b7fb45a20b145d2de4d233913b22c09
baseline version:
 xen                  a4f3f5a62c10a5adc898cf45261783209f5bc037

Last test of basis   184105  2023-12-12 13:37:12 Z    1 days
Testing same since   184121  2023-12-13 09:00:42 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Henry Wang <Henry.Wang@arm.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                                            fail    
 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                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      blocked 
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  blocked 
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  blocked 
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     starved 
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                starved 
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 blocked 
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      blocked 
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 1792d1723b7fb45a20b145d2de4d233913b22c09
Author: Roger Pau MonnÃ© <roger.pau@citrix.com>
Date:   Tue Dec 12 14:45:52 2023 +0100

    x86/x2apic: introduce a mixed physical/cluster mode
    
    The current implementation of x2APIC requires to either use Cluster Logical or
    Physical mode for all interrupts.  However the selection of Physical vs Logical
    is not done at APIC setup, an APIC can be addressed both in Physical or Logical
    destination modes concurrently.
    
    Introduce a new x2APIC mode called Mixed, which uses Logical Cluster mode for
    IPIs, and Physical mode for external interrupts, thus attempting to use the
    best method for each interrupt type.
    
    Using Physical mode for external interrupts allows more vectors to be used, and
    interrupt balancing to be more accurate.
    
    Using Logical Cluster mode for IPIs allows fewer accesses to the ICR register
    when sending those, as multiple CPUs can be targeted with a single ICR register
    write.
    
    A simple test calling flush_tlb_all() 10000 times on a tight loop on AMD EPYC
    9754 with 512 CPUs gives the following figures in nano seconds:
    
    x mixed
    + phys
    * cluster
        N           Min           Max        Median           Avg        Stddev
    x  25 3.5131328e+08 3.5716441e+08 3.5410987e+08 3.5432659e+08     1566737.4
    +  12  1.231082e+09  1.238824e+09 1.2370528e+09 1.2357981e+09     2853892.9
    Difference at 95.0% confidence
            8.81472e+08 +/- 1.46849e+06
            248.774% +/- 0.96566%
            (Student's t, pooled s = 2.05985e+06)
    *  11 3.5099276e+08 3.5561459e+08 3.5461234e+08 3.5415668e+08     1415071.9
    No difference proven at 95.0% confidence
    
    So Mixed has no difference when compared to Cluster mode, and Physical mode is
    248% slower when compared to either Mixed or Cluster modes with a 95%
    confidence.
    
    Note that Xen uses Cluster mode by default, and hence is already using the
    fastest way for IPI delivery at the cost of reducing the amount of vectors
    available system-wide.
    
    Make the newly introduced mode the default one.
    
    Note the printing of the APIC addressing mode done in connect_bsp_APIC() has
    been removed, as with the newly introduced mixed mode this would require more
    fine grained printing, or else would be incorrect.  The addressing mode can
    already be derived from the APIC driver in use, which is printed by different
    helpers.
    
    Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Acked-by: Henry Wang <Henry.Wang@arm.com>
    master commit: e3c409d59ac87ccdf97b8c7708c81efa8069cb31
    master date: 2023-11-07 09:59:48 +0000
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 02:08:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 02:08:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654281.1021014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDb9J-0000Kn-G4; Thu, 14 Dec 2023 02:08:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654281.1021014; Thu, 14 Dec 2023 02: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 1rDb9J-0000Kg-DR; Thu, 14 Dec 2023 02:08:29 +0000
Received: by outflank-mailman (input) for mailman id 654281;
 Thu, 14 Dec 2023 02: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDb9I-0000KY-H7
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 02:08:28 +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 a968a739-9a25-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 03:08:26 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 846D6CE2227;
 Thu, 14 Dec 2023 02:08:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F540C433C7;
 Thu, 14 Dec 2023 02:08: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: a968a739-9a25-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702519701;
	bh=hhEj1no1x3UdD4UJ0BBSbSDElzy6gelhkKhgRl7TBYw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=s37Dx7rjLlKtC8o08smkaRblNlsxqsXRNAhg+tZAD5SMZ94aNCYVPoQpKXCLScnZs
	 4FZ6pszRSTDDIks7bW9wQUJLwyADhmQdXujG7LttJo+K3Uyzt9FUpKiYHmCsZvouMq
	 j7y7+CIZQQvGyBwjyh0kdA7Z4gs7nDv67r9QPP3Z4Pd5SVlKOnF8JeeSUr/aTPUF52
	 q16toVi2psfE7ekGpNbFqTl7XKJ9Elm3uMPJgXuf+dsL4NGAKZfjjzIAmItrFYADeY
	 GKO9RkA6f9VdO5REm8GOL7Jgt57Pf1XpfmfN3esf8W7ZadC7gWOzqP5AUISZReg5Aw
	 jsoekkOzNQ6lQ==
Date: Wed, 13 Dec 2023 18:08:19 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2 5/5] automation: add x86-64 livepatching test
In-Reply-To: <ZXmNhK58kveTKT0N@macbook>
Message-ID: <alpine.DEB.2.22.394.2312131807190.3175268@ubuntu-linux-20-04-desktop>
References: <20231128100352.35430-1-roger.pau@citrix.com> <20231128100352.35430-6-roger.pau@citrix.com> <alpine.DEB.2.22.394.2311291901250.3533093@ubuntu-linux-20-04-desktop> <ZXmNhK58kveTKT0N@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-958033687-1702519701=:3175268"

  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-958033687-1702519701=:3175268
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 13 Dec 2023, Roger Pau MonnÃ© wrote:
> On Wed, Nov 29, 2023 at 07:03:10PM -0800, Stefano Stabellini wrote:
> > On Tue, 28 Nov 2023, Roger Pau Monne wrote:
> > > Introduce a new gitlab tests for livepatching, using livepatch-build-tools,
> > > which better reflects how downstreams build live patches rather than the
> > > in-tree tests.
> > > 
> > > The tests applies the dummy in-tree patch example, checks that the patch is
> > > applied correctly and then reverts and unloads it.
> > > 
> > > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > > ---
> > >  automation/gitlab-ci/build.yaml               |  8 +++
> > >  automation/gitlab-ci/test.yaml                |  8 +++
> > >  automation/scripts/build                      | 21 ++++++
> > >  .../scripts/qemu-alpine-x86_64-livepatch.sh   | 68 +++++++++++++++++++
> > >  4 files changed, 105 insertions(+)
> > >  create mode 100755 automation/scripts/qemu-alpine-x86_64-livepatch.sh
> > > 
> > > diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> > > index 32af30ccedc9..22026df51b87 100644
> > > --- a/automation/gitlab-ci/build.yaml
> > > +++ b/automation/gitlab-ci/build.yaml
> > > @@ -358,6 +358,14 @@ alpine-3.18-gcc-debug:
> > >    variables:
> > >      CONTAINER: alpine:3.18
> > >  
> > > +alpine-3.18-gcc-livepatch:
> > > +  extends: .gcc-x86-64-build
> > > +  variables:
> > > +    CONTAINER: alpine:3.18
> > > +    LIVEPATCH: y
> > > +    EXTRA_XEN_CONFIG: |
> > > +      CONFIG_LIVEPATCH=y
> > > +
> > >  debian-stretch-gcc-debug:
> > >    extends: .gcc-x86-64-build-debug
> > >    variables:
> > > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> > > index 6aabdb9d156f..58a90be5ed0e 100644
> > > --- a/automation/gitlab-ci/test.yaml
> > > +++ b/automation/gitlab-ci/test.yaml
> > > @@ -459,3 +459,11 @@ qemu-smoke-ppc64le-powernv9-gcc:
> > >    needs:
> > >      - qemu-system-ppc64-8.1.0-ppc64-export
> > >      - debian-bullseye-gcc-ppc64le-debug
> > > +
> > > +qemu-alpine-x86_64-gcc-livepatch:
> > > +  extends: .qemu-x86-64
> > > +  script:
> > > +    - ./automation/scripts/qemu-alpine-x86_64-livepatch.sh 2>&1 | tee ${LOGFILE}
> > > +  needs:
> > > +    - *x86-64-test-needs
> > > +    - alpine-3.18-gcc-livepatch
> > > diff --git a/automation/scripts/build b/automation/scripts/build
> > > index b3c71fb6fb60..0a0a6dceb08c 100755
> > > --- a/automation/scripts/build
> > > +++ b/automation/scripts/build
> > > @@ -103,3 +103,24 @@ else
> > >      cp -r dist binaries/
> > >      if [[ -f xen/xen ]] ; then cp xen/xen binaries/xen; fi
> > >  fi
> > > +
> > > +if [[ "$LIVEPATCH" == "y" ]]; then
> > > +    # Build a test livepatch using livepatch-build-tools.
> > > +
> > > +    if [[ "$XEN_TARGET_ARCH" != "x86_64" ]]; then
> > > +        exit 1
> > > +    fi
> > > +
> > > +    # git diff --no-index returns 0 if no differences, otherwise 1.
> > > +    git diff --no-index --output=test.patch xen/arch/x86/test-smc-lp.c \
> > > +                                            xen/arch/x86/test-smc-lp-alt.c && exit 1
> > > +
> > > +    BUILDID=$(readelf -Wn xen/xen-syms | sed -n -e 's/^.*Build ID: //p')
> > > +
> > > +    git clone https://xenbits.xen.org/git-http/livepatch-build-tools.git
> > > +    cd livepatch-build-tools
> > > +    make
> > > +    ./livepatch-build -s ../ -p ../test.patch -o out -c ../xen/.config \
> > > +        --depends $BUILDID --xen-depends $BUILDID
> > > +    cp out/test.livepatch ../binaries/test.livepatch
> > > +fi
> > 
> > I realize this is a matter of taste but if possible I would move this to
> > qemu-alpine-x86_64-livepatch.sh not to make the build script too
> > complex.
> 
> I've attempted that, but there are some issues.  First, the
> elfutils-dev package would need to be added to the test container,
> checkout livepatch-build-tools.git from the test script, and do the
> differential build in the test script, so all the Xen hypervisor build
> dependencies would also be needed in the test container.
> 
> > Otherwise, plase create automation/scripts/livepatch and move this code
> > there. You can call automation/scripts/livepatch from
> > automation/scripts/build.
> 
> Unless you have a strong desire to pursue building the livepatch in
> the test step, I will go with the route proposed here, and split the
> livepatch build into automation/scripts/build-livepatch.

I am OK with this.


> > Other than that, this is great! I'll let other review the livepatch
> > specific changes in this series
> 
> Thanks, will post a new version soon.
> 
> Roger.
> 
--8323329-958033687-1702519701=:3175268--


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 03:46:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 03:46:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654288.1021027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDcft-00054L-Dj; Thu, 14 Dec 2023 03:46:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654288.1021027; Thu, 14 Dec 2023 03:46:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDcft-00054E-Ap; Thu, 14 Dec 2023 03:46:13 +0000
Received: by outflank-mailman (input) for mailman id 654288;
 Thu, 14 Dec 2023 03:46: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 1rDcfr-000544-9n; Thu, 14 Dec 2023 03:46: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 1rDcfr-0008I1-4m; Thu, 14 Dec 2023 03:46: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 1rDcfq-0005v5-MD; Thu, 14 Dec 2023 03:46:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDcfq-0005Ca-Lm; Thu, 14 Dec 2023 03:46: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=m9e52mXayEiZMFORTwRhQHfZtua/oETwcBSMDrIpjKs=; b=3rdxFB14PKTgH+17IdtzowWxhj
	5lKgObjmBMx6y3SVRRWBhlajXz7r1MfIKdr32GIMJ9XA8qK/m55rx2qHMNwUVav+IbyVIFztZ0hEi
	fKTZK4+4T1uxeaWZIfrnZ0GQ1rFY6gjCLAOPezSar1cZWI3egVhT/oHZaOx0tCBFqXaI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184119-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184119: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-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-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-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=cecbaa87d53392a79098c66503af35b99e7b7029
X-Osstest-Versions-That:
    libvirt=ff8c5c523f128bf5d02473e62d44af629d908fa3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 14 Dec 2023 03:46:10 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail blocked in 184099
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184099
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184099
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              cecbaa87d53392a79098c66503af35b99e7b7029
baseline version:
 libvirt              ff8c5c523f128bf5d02473e62d44af629d908fa3

Last test of basis   184099  2023-12-12 04:18:49 Z    1 days
Testing same since   184119  2023-12-13 04:20:39 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  GÃ¶ran Uddeborg <goeran@uddeborg.se>

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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   ff8c5c523f..cecbaa87d5  cecbaa87d53392a79098c66503af35b99e7b7029 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 04:40:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 04:40:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654293.1021037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDdWB-0003tR-8B; Thu, 14 Dec 2023 04:40:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654293.1021037; Thu, 14 Dec 2023 04:40: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 1rDdWB-0003tK-55; Thu, 14 Dec 2023 04:40:15 +0000
Received: by outflank-mailman (input) for mailman id 654293;
 Thu, 14 Dec 2023 04:40: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDdW9-0003tE-7V
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 04:40: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 dbf16f13-9a3a-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 05:40:10 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 5E4DECE22AD;
 Thu, 14 Dec 2023 04:40:04 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5272C433C8;
 Thu, 14 Dec 2023 04:40: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: dbf16f13-9a3a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702528803;
	bh=PNBbQxoKFeD1S8tPQhuZzSMFlj7D46Y240hC5tR3Oto=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=oF2nl/wn/XPfH3CJCgULcCom686I+sG4FqTURKIODlMbJqSNTPqrWyOS5uofEz5ig
	 biTko6xl19KI/xBZmmfIDYFX+cIPPdiFjXS7Acb3B7do/tGgG1u9/ZMrIbagP6De4Z
	 GPZi1d6MPWY2cPZukUF4HxeSJR3J7Tp8UbrMZHvfa6NWXo0qoAOsJVXWuyXKvSQ+Yc
	 YxFSfGLseNvB7sqEFlJuBIA0oYTh/U4hzgilEmWukHqg+cPSYjkrtS9F1PDlDdCpon
	 F9Lvov8ZG1/qZs7LCERqYsiexgA3OL+suUS72azSBmQbFqETz/vxjsZzPl32QF4YAM
	 REvbfEakeTpBg==
Date: Wed, 13 Dec 2023 20:40:01 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "dpsmith.dev" <dpsmith.dev@gmail.com>
cc: George Dunlap <george.dunlap@cloud.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Kelly Choi <kelly.choi@cloud.com>, xen-devel@lists.xenproject.org, 
    committers@xenproject.org
Subject: Re: INFORMAL VOTE REQUIRED - DOCUMENTATION WORDING
In-Reply-To: <41179178-a1cd-4b9f-8955-f9f2acdb4967@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2312132039320.3175268@ubuntu-linux-20-04-desktop>
References: <CAO-mL=x3DntLhoKuaiWYjVqkQRqj=rdyZWmuH1aDjkmUbQchyA@mail.gmail.com> <alpine.DEB.2.22.394.2311301426210.110490@ubuntu-linux-20-04-desktop> <CA+zSX=ZJETPgXut62Y5RQyB8Q6Ruwqd656+iW+ark6WOXYEf+w@mail.gmail.com>
 <41179178-a1cd-4b9f-8955-f9f2acdb4967@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 13 Dec 2023, dpsmith.dev wrote:
> While this survey may have been released with the best of intentions, I can't
> help but to find it poorly conceived. Banning words, whether in general or for
> a specific instance, is not something to be taken lightly via "informal vote",
> and in my humble opinion is not addressing the underlying issue at hand. In
> fact, and not to be overly dire, the result is that it has put the project at
> the verge of a fork and/or collapse of the project as a whole. This survey
> must be immediately recalled, all results destroyed and anyone that has
> reviewed said results, should not discuss them, either publicly or privately.

I agree, it was sent with the best intentions but I would not have sent
the survey in the first place. Now it is best to close this thread.


> I do not feel that a rush to form a Technical Advisory Board would address the
> larger issue at hand either. I would instead call for a bounded-duration
> working group to be convened, with an explicit charter to collect and vet
> community issues.

This is a good suggestion. Let me discuss the details of an initial
proposal with Kelly and the committers and get back to the community for
further discussion (in a new different thread). This is an opportunity
for process improvement driven by people that care very much about the
project and are committed to its success.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 06:16:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 06:16:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654296.1021047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDf1D-0006Yp-4Y; Thu, 14 Dec 2023 06:16:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654296.1021047; Thu, 14 Dec 2023 06:16:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDf1D-0006Yi-1i; Thu, 14 Dec 2023 06:16:23 +0000
Received: by outflank-mailman (input) for mailman id 654296;
 Thu, 14 Dec 2023 06:16:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6sbk=HZ=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rDf1C-0006YX-0U
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 06:16:22 +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 4c3d2aef-9a48-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 07:16:20 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-551f9ca15b4so1948520a12.1; 
 Wed, 13 Dec 2023 22:16:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c3d2aef-9a48-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702534580; x=1703139380; 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=gD7tgxieDWSt+YW9XTmJUznY3tyvy/E6VKbPWapcg5o=;
        b=O48vzIag6zmZKgF8U0+qNCkp9DzP3rBKb4IaclFFqE4wWOvCriq0Mmr8N+OWz8CBNX
         QBC0F0Jr/MzSbHtL9xdN7M23G4L9LHGyrt/jT+ltuI+AuBBML+Qmag3eON66Js9lY2Sh
         9bLA8oHUREUSQ0XoT9lYseIursAXX//82OlCqar+Z1l039fvCJZT8CWcpLQtf6F+Cgcy
         vW5yuZ1/h5NftShw0nUDsxXHGoUeuZIHB6aULUYquHEvB/fuePAjSO0k5g/ikdeTt3CP
         p0EJx/jy14/U7rC2oUI1jDpQ+luNPkkrdNqdrc878VrC09h+ApCUvIlGWPc4uNDHLFzb
         e67Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702534580; x=1703139380;
        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=gD7tgxieDWSt+YW9XTmJUznY3tyvy/E6VKbPWapcg5o=;
        b=h+MNt4/e1kjyEiWWs4vEaIV/0xO3ZvknaIL0p1zWypri96OUqGsTvT2DeYQv3h2KnZ
         klici9dDy2OeXTrdIQWzTDWb+M5+Cmo4QNiNlyO15w9zRAPYHN57LZViDouMDLgUg9HD
         ogS3nBUWk4WOAx0lhz8b1jHjgVyFWSwVg+WskCNbgj6uWWPnveXIfy6L1WcHRhPnZIzU
         MR07oV+Qi+Ct2cO25+mHEXpqwMjryCbdjtqI2Br7cd1q+FLg2vc9zBYqqd0Vh6oc3Hk5
         bqtwxGZFitWgJwpM0Q1o3yrEHh3pvhW7UNLIbX5f7pSeN+PCGNp9lNCbHbnukfXd3Lkh
         waIw==
X-Gm-Message-State: AOJu0Yzufc6uiRB9EqSfUvOLrtG/R4JLSz/LmMIAZhsKpQy3nT63eiAF
	yO8uJuE35fDEYYgIqKqHrHJsia3EaccTuMFI+Vc=
X-Google-Smtp-Source: AGHT+IGp3ZrTN7VXz2ByAqHrggKslDSNkeVMphZYr2XmgXifM8Z7MvQXaInYTbJhF2W+en/rvsdUAaCOIzRmsnBHArE=
X-Received: by 2002:a17:906:212:b0:a1b:e1bc:73e3 with SMTP id
 18-20020a170906021200b00a1be1bc73e3mr5024862ejd.24.1702534579570; Wed, 13 Dec
 2023 22:16:19 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiii2etikw9LKdJ5Ebn+z-3-e5UXh3cJjBgYGJYtq3q=Ww@mail.gmail.com>
 <300b7e2b-068a-4cac-a617-ae41caa6d3b9@netscape.net> <CA+1FSiiuWz_91Wg3Az440nFKaLY_raoUy=3nGj4Zca8viKAT=Q@mail.gmail.com>
 <0bf311bb-435a-4c5d-a36c-8cfe95f92f98@netscape.net> <ZXoboEVx1jzIgrvJ@mattapan.m5p.com>
In-Reply-To: <ZXoboEVx1jzIgrvJ@mattapan.m5p.com>
From: Mario Marietto <marietto2008@gmail.com>
Date: Thu, 14 Dec 2023 07:15:45 +0100
Message-ID: <CA+1FSihCUR2Sh9T+Kfw2LWHHiHVkmy1ohWZuFQPcNtcfzOVt6A@mail.gmail.com>
Subject: Re: xc_dom_guest_type: image not capable of booting inside a HV M
 container: Invalid kernel
To: Elliott Mitchell <ehem+freebsd@m5p.com>
Cc: Chuck Zmudzinski <brchuckz@netscape.net>, Anthony Perard <anthony.perard@citrix.com>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	xen-devel <xen-devel@lists.xenproject.org>, xen-users-request@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: multipart/alternative; boundary="000000000000d54ba6060c723821"

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

Hello Elliott.

In my experiment I've used FreeBSD 13.2-RELEASE. Do you think that it will
work if I use a previous version,let's say 12.04 ?

On Wed, Dec 13, 2023 at 10:01=E2=80=AFPM Elliott Mitchell <ehem+freebsd@m5p=
.com>
wrote:

> On Mon, Dec 11, 2023 at 01:41:21PM -0500, Chuck Zmudzinski wrote:
> > On 12/11/2023 12:59 PM, Mario Marietto wrote:
> > > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-=
xen/kernel
> # file
> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel
> > >
> > > ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamically
> linked, interpreter /red/herring,
> BuildID[sha1]=3D5e6982c9cb67d9c94571b76419142a8c495388d0, for FreeBSD 13.=
2,
> not stripped
> > >
> > > root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-=
xen/kernel
> # file
> /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boot-xen/kernel/kernel.=
bin
> > >
> > > kernel.bin: data
> >
> > This needs to be :
> >
> > kernel.bin: Linux kernel ARM boot executable zImage (little-endian)
> >
> > >
> > > It does not boot from the kernel.bin file.
> >
> > I suggest not trying to direct boot a kernel in Xen on arm unless the
> file command reports the kernel image is a Linux kernel ARM boot executab=
le
> zImage (little endian).
> >
> > Did you try applying Julien's patch (link is in my earlier message) to
> add zImage support to FreeBSD? Maybe after applying the patch the
> kernel.bin file will be in the correct zImage format.
> >
> > The patch I linked in the earlier
>
> Appears FreeBSD-CURRENT removed the last step converting the kernel file
> to kernel.bin.  The patch can be readily rebased, but without kernel.bin
> that doesn't do too much.  (hmm, see if that can be tracked down...)
>
>
> A bigger issue is this approach is a maintenance nightmare.  Updating
> the kernel requires action from outside the VM.
>
> As such, Anthony Perard would there be any hope for Tianocore/EDK2
> gaining support for ARMv6/v7?  The delta should be pretty small.
>
>
> --
> (\___(\___(\______          --=3D> 8-) EHM <=3D--          ______/)___/)_=
__/)
>  \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
>   \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
> 8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445
>
>
>

--=20
Mario.

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

<div dir=3D"ltr"><div>Hello Elliott.</div><div><br></div><div></div><div>In=
 my experiment I&#39;ve used FreeBSD 13.2-RELEASE. Do you think that it wil=
l work if I use a previous version,let&#39;s say 12.04 ?<br></div></div><br=
><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, D=
ec 13, 2023 at 10:01=E2=80=AFPM Elliott Mitchell &lt;<a href=3D"mailto:ehem=
%2Bfreebsd@m5p.com">ehem+freebsd@m5p.com</a>&gt; wrote:<br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex">On Mon, Dec 11, 2023 at 01:41:21PM =
-0500, Chuck Zmudzinski wrote:<br>
&gt; On 12/11/2023 12:59 PM, Mario Marietto wrote:<br>
&gt; &gt; root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/b=
oot-xen/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boo=
t-xen/kernel/kernel<br>
&gt; &gt; <br>
&gt; &gt; ELF 32-bit LSB executable,ARM, EABI5 version 1 (FreeBSD), dynamic=
ally linked, interpreter /red/herring, BuildID[sha1]=3D5e6982c9cb67d9c94571=
b76419142a8c495388d0, for FreeBSD 13.2, not stripped<br>
&gt; &gt; <br>
&gt; &gt; root@marietto:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/b=
oot-xen/kernel # file /mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen/boo=
t-xen/kernel/kernel.bin<br>
&gt; &gt; <br>
&gt; &gt; kernel.bin: data=C2=A0<br>
&gt; <br>
&gt; This needs to be :<br>
&gt; <br>
&gt; kernel.bin: Linux kernel ARM boot executable zImage (little-endian)<br=
>
&gt; <br>
&gt; &gt; <br>
&gt; &gt; It does not boot from the kernel.bin file.<br>
&gt; <br>
&gt; I suggest not trying to direct boot a kernel in Xen on arm unless the =
file command reports the kernel image is a Linux kernel ARM boot executable=
 zImage (little endian).<br>
&gt; <br>
&gt; Did you try applying Julien&#39;s patch (link is in my earlier message=
) to add zImage support to FreeBSD? Maybe after applying the patch the kern=
el.bin file will be in the correct zImage format.<br>
&gt; <br>
&gt; The patch I linked in the earlier <br>
<br>
Appears FreeBSD-CURRENT removed the last step converting the kernel file<br=
>
to kernel.bin.=C2=A0 The patch can be readily rebased, but without kernel.b=
in<br>
that doesn&#39;t do too much.=C2=A0 (hmm, see if that can be tracked down..=
.)<br>
<br>
<br>
A bigger issue is this approach is a maintenance nightmare.=C2=A0 Updating<=
br>
the kernel requires action from outside the VM.<br>
<br>
As such, Anthony Perard would there be any hope for Tianocore/EDK2<br>
gaining support for ARMv6/v7?=C2=A0 The delta should be pretty small.<br>
<br>
<br>
-- <br>
(\___(\___(\______=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 --=3D&gt; 8-) EHM &lt;=
=3D--=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ______/)___/)___/)<br>
=C2=A0\BS (=C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"mail=
to:ehem%2Bsigmsg@m5p.com" target=3D"_blank">ehem+sigmsg@m5p.com</a>=C2=A0 P=
GP 87145445=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 )=C2=A0 =C2=A0/=
<br>
=C2=A0 \_CS\=C2=A0 =C2=A0|=C2=A0 _____=C2=A0 -O #include &lt;stddisclaimer.=
h&gt; O-=C2=A0 =C2=A0_____=C2=A0 |=C2=A0 =C2=A0/=C2=A0 _/<br>
8A19\___\_|_/58D2 7E3D DDF4 7BA6 &lt;-PGP-&gt; 41D1 B375 37D0 8714\_|_/___/=
5445<br>
<br>
<br>
</blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre=
fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d=
iv>

--000000000000d54ba6060c723821--


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 07:08:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 07:08:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654300.1021058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDfpp-0004hg-0J; Thu, 14 Dec 2023 07:08:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654300.1021058; Thu, 14 Dec 2023 07: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 1rDfpo-0004hZ-Tt; Thu, 14 Dec 2023 07:08:40 +0000
Received: by outflank-mailman (input) for mailman id 654300;
 Thu, 14 Dec 2023 07:08: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=+dVB=HZ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rDfpn-0004hP-IG
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 07:08:39 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20617.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 99288fe3-9a4f-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 08:08:36 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH0PR12MB8176.namprd12.prod.outlook.com (2603:10b6:510:290::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.38; Thu, 14 Dec
 2023 07:08:32 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Thu, 14 Dec 2023
 07:08: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: 99288fe3-9a4f-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=YE1cyh8UOHjttsOswOT5CFBPpCnxOyWGrUoL1gk8lwkXynC6OZhr+Ma1vq6g0VXUk/Km5lIQhp9+bcyRV+kno2ExI/VfpNi2UUvO0jFXZ34lW75+pnO+InUmimq59Q00RZQUielAdU7EYZOc8MSIA4jusaDukRkmEnEo02nXXzuC/mKLGKVrLBqTfj/08gjEIndLWqy5BfaQwORN2zbW+x5Rwp6M2eUS/mFtcHKVAhpSworzLswSiy73JqgC8mbP2nMQxP6e6CJLWYgwdztbEhgDAe4nnEcL1QCSgsNIstPFmrDrpUC7Fsj9L+vjbGeg7R9b7nvsLWQhIkxUP0tKVA==
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=GJnuVdnySQ5WBlK3eXqbHIn+m45C0uBgaqmgii4zrsQ=;
 b=Zts83f/tvmXtzxwBsVE0hMitatBZLNjGVuuS1FN20SgNT0NldjqvLj/s85SEnFNiRR7gRVdd3Ipe4cP8PDUD1fWETr8ZUI4/BvzIYf5LagfA0xWUS7IYyG7S1zNlDqdVyzw63j/VuAofN9c86nWBm8YyYkcFhl3a1A9d/xbXBPG6wVv+lqI2kupGgHMlEDHiDImWKaEPKnKgalRa1QV00s5cH3fvaK0SKE8ZsQ/AlyuWAsvt2EXWm88fbwwgKypt4Zx3ANdGcuxgR3QKWKx2YJJaA8sx+ZgYbzKfDaoS1bomJ+b4XeZIg/DX6J1NbisRXg+ipr9Y6GcJg0VX73r7tA==
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=GJnuVdnySQ5WBlK3eXqbHIn+m45C0uBgaqmgii4zrsQ=;
 b=XbcMcx0/uwTlaqy+BCVPdliPgALMlr+W6eijhnqw8qkptfNIebyq/17NVnrkLhLQWnHKzJiZkPsP2QzlggBwX1o2oxAngov1e3puV3aoklvOpGPgDv9emuw0nBOwcL+OVRqllyd3Neu2ZF2iOUSegEaELKM5H6et6f3AUk5roi8=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "linux-pci@vger.kernel.org"
	<linux-pci@vger.kernel.org>, "linux-acpi@vger.kernel.org"
	<linux-acpi@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Thread-Topic: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Thread-Index:
 AQHaK4Q534ViUL7xiE2p4ymr6ObEurCkX+6AgAFU/YD//6xNgIABr6aAgAATSoCAAcFZAA==
Date: Thu, 14 Dec 2023 07:08:32 +0000
Message-ID:
 <BL1PR12MB584911B4DFF4D9ED65CF92F0E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-4-Jiqian.Chen@amd.com> <ZXdNf0HWs4nAVPeF@macbook>
 <BL1PR12MB584910C2E370BBCC8A312733E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXglU0EtBrRNiWVp@macbook>
 <BL1PR12MB584973D751EB57C3DE766AEEE78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXmfmbb4S8Iuy7si@macbook>
In-Reply-To: <ZXmfmbb4S8Iuy7si@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5364.namprd12.prod.outlook.com
 (15.20.7113.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_|PH0PR12MB8176:EE_
x-ms-office365-filtering-correlation-id: a522719f-9363-47a9-0123-08dbfc737b64
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 CNokCmMLiAcB2OpIIMQImCJ6Ko5EHTFKBBfMAFkLACMGz2hevDcEDdZVf3CCxPubDR+fiKrJzEhppLj6B6Ld7NGqmOkN+wHgrtu2SdVmL4boalFPnxOtHx0sa2GpbhKdAUzqqfZ148t/Cak8I6ZtLLBAVoR7z5N+TcwkrC/5cU7FEyXeR25DfKnybzvrhYY9LHkts6CWIC+J1qIkG9QZDNkROuMwjLiU3pgWWzkShrxSsPPbAHAb3smw6qJ0D+DA7zemv3gQ3P9FtrWr77eUTyy4E79DqFcvrUbbU/xD+bvyuVMPJQNGfeE4FDB1/BpCjd/zuK0whU7tdJXkDGtW8MG38ILni3uCrcfTwgG8GsBjFoQpTAg/8BBgmYsu75rQNuSGSlbw39Z2R3gHqHq7j0iJ5TSND5OnYgKnac8ZlS++XFKtIyURrDvGpPM7JHllFHefQ6MoLam0jDON+1/XUi/eePIKZZaWsN5Al4LlfqifJCpqSy038/Y75qzwmIcpVrwoGZJc7rUiAxsHc2Rjxgf1Bcd7Dx8bBR+Az/BgXcp5nam3ybAX0GjEOyv0Tiukz1gJNeHUsnEDS9IFalidSePBE86twzIyJEQARulapCkM7esYgugfC+AEYlrstQJ2
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:(13230031)(346002)(396003)(376002)(136003)(39860400002)(366004)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(122000001)(2906002)(38100700002)(33656002)(38070700009)(41300700001)(4326008)(8936002)(8676002)(9686003)(71200400001)(478600001)(83380400001)(54906003)(76116006)(66946007)(66446008)(66476007)(66556008)(64756008)(316002)(6916009)(7696005)(6506007)(53546011)(5660300002)(55016003)(52536014)(26005);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QmZvWG9oWFZodVY5bUlkb1l6cDFlWVRmbjRYK2pmaytEUUMxRGJMNE1Sb0Nj?=
 =?utf-8?B?QzUzSXZtYmIrdFJQSDNySUhvajNjblBPczZHT1d0ajdwVjJORHRqZ0ZkRzhU?=
 =?utf-8?B?RlV6NmxSTTE3Y094WTByWlVEM1RPTmNpSGlHSXNuNlh6S1ZwUzV5dHUwZ2xI?=
 =?utf-8?B?NndKZWM2U3dYdFBHcHh4UEFjWTZiTXNjU0ZOYXdiSHI3YitzczcwZTJPWUVs?=
 =?utf-8?B?dzdLanZIcFpsSWMxeWF3U3djL2FwRGdWVW0vWjNORk9xU1pib2pRc0kxQUk0?=
 =?utf-8?B?WHc1NTcwWU5vdVI1THloMGJaMUV4ZktUMXhTSkxyME5aQkRoTXVSV1RGNnJr?=
 =?utf-8?B?VjdTV1dNZW5PZnRPaC8vaVpLcnZSczFTMmVpYzNHV2NSZy9jczZiZ0ZVcnVl?=
 =?utf-8?B?eUNnVnNWb1pQTHZQWmxGdDAvNEtDM2luWGdJei9UWlo0RU1IQ2h4bDdWdEsy?=
 =?utf-8?B?OWJYdUI2MXBVWnNMRE5FSXFPcEJnazhPVTlpY0hPZlQvVURSNmtXQzRzZDJi?=
 =?utf-8?B?WExxcmY5dkUzek1YSkNXL2taL0pSZUJJL3JHS3hXS3ZRSXVkQVhLNXB6WmYv?=
 =?utf-8?B?QkpIeTVsK2tXbmQ1em9DclhQNkRLSkhCV3Z6VW10aERscERuY0h4U05GYjE2?=
 =?utf-8?B?WWZrV0h4aUtPM0Z0NldIVGpsWHZSL1RxWWdyN2RTTzVUVzdKT1dmc3Y2emVC?=
 =?utf-8?B?TFNjeDF5MFhJSXJTbzk3QXRXSVpYNUxQQ2gzTHM3cjdJeVJCdzdXRlBLbU1O?=
 =?utf-8?B?N2V3TktpUUl0QnVERmo2N2ZYS0hDVW5qbjJtMzd3dVBEOG1oRTYwSkpuWjh1?=
 =?utf-8?B?Sjd6TmtPV2tiVzR6aG5KejZTMUJNYmlJQ0RMdGE4OXJCclBPak1VNFFaZk9O?=
 =?utf-8?B?eXpyM3A4aVEweVNseWEvbTNjbU1NWk53NTAvVG5qUTF0aVB6VDBranZVVndv?=
 =?utf-8?B?R0ZsYjlxM1ZyN0ZDY2ZLR216Q3pjQ3FkK25QOGFSVW9zbGh3cTZEeDNjN01l?=
 =?utf-8?B?UXZibkk2QXY4TW8rcmFTYTdsbllWV0tkUElzbTN6Vjh1NFQyZXFRNHkvdlhU?=
 =?utf-8?B?bm0yWTRZY1lXekduTUR5dDRYeWJDa0NBalFVRXZQZWt3M3pSM3IwRk9sTzhG?=
 =?utf-8?B?SUQyRTVBSHl0MUNZa1dDTVJjd0tUaVdlUmloRFo5NXlHYlpzSlNXR1ZneCt3?=
 =?utf-8?B?c29OS2lYenZvY295VURleS9iNmZhWkFhYU5ER09acTJ3Wktqck91eFZSc3Jt?=
 =?utf-8?B?N0x1V2g4M2tjZHJrUlo4Sm9HWGZlSUFXYUlpaitKTUhLckZQcTdaZ2h3RVBj?=
 =?utf-8?B?WTZVVEhHdzlZWHQzNTloeXM1MHBxd0UvaXkvTEFhMUV4L1ZJK3NqbXdEYWIz?=
 =?utf-8?B?K2dFSEdYaVZ1RmFFcHVCaU9jQ21NN1BtWDVwRUU2ODlYRElvekRWUEpEbGQx?=
 =?utf-8?B?NDJ1VlhjZkJjeEFYcGEway9XdlU5MTVyL0hBZkxMcms4T01oTDNVa25NejJq?=
 =?utf-8?B?TjhUc3ZCYnJqb0FNKzZ3TDZFUVN1bC9HYjJYbVJ0NVdQSTlza2FEL3VQYmJ0?=
 =?utf-8?B?MlpMK2tScU1QWU1Lb2F0OXBDZ3JUbzkvVjViUW1wN2s2U2tkbWp3Umdpc3Bo?=
 =?utf-8?B?cjZBQlJqMkxpUHhOdVRRdzVRR0dUZFgxRUFjQWp3a2dWbGM4cWQ3VHY2QytT?=
 =?utf-8?B?VzlVWi9EU3lFWmowQzZBRzhVNnlyNDM3c2puZW43MFdWZWxIU21wNG42a3VL?=
 =?utf-8?B?UEtWam5iWS9TWEo2VmV2N093dTNFU2lvODdFQnJIK09jNU9QNlFDcVMzYjBi?=
 =?utf-8?B?MVZyUGdFNlVmcTZCT3hMR05ZNGpVNitNNVU1aGc0bEtNWnlQTkgrWjlBQkFF?=
 =?utf-8?B?cXRHd0hwa1dndmxaTFB6WVlJc3hnVHNHRUQxVHFPRWNVOE5SK3ZxaGp5elVS?=
 =?utf-8?B?R3RsaVN1Z0h4T3MvaVlIM0tXU0o1b3Z1Q1g5dFFTS0VEYXZjUlFvVXR4Y2FP?=
 =?utf-8?B?dXU0MUZkMFUzTExiVjFrMllwRjQvWXpJaVRPZk10Wk9aZ3ZYZ0thWWp1NjNL?=
 =?utf-8?B?ZWVUZHJsNGsrY3BacVdaU212aE9rcTV1K1I0NDdncFF5NFlqL1pETjByZTJj?=
 =?utf-8?Q?x1yE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0B8CBC3B7490BE418DAAF6685149657A@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: a522719f-9363-47a9-0123-08dbfc737b64
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2023 07:08:32.4561
 (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: 8Fb31fz9i5RzRhT6CgSMTkoSCcyFgJvJ+AfYT2ApWqfFpTKjh7Ekeh5TkDktEMhXlezPo7znjKQyFnIHaLVkDQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8176

T24gMjAyMy8xMi8xMyAyMDoxMiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gV2VkLCBE
ZWMgMTMsIDIwMjMgYXQgMDM6MzE6MjFBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
T24gMjAyMy8xMi8xMiAxNzoxOCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBUdWUs
IERlYyAxMiwgMjAyMyBhdCAwNjozNDoyN0FNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+
Pj4+DQo+Pj4+IE9uIDIwMjMvMTIvMTIgMDE6NTcsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+
Pj4+PiBPbiBNb24sIERlYyAxMSwgMjAyMyBhdCAxMjoxNToxOUFNICswODAwLCBKaXFpYW4gQ2hl
biB3cm90ZToNCj4+Pj4+PiBUaGVyZSBpcyBhIG5lZWQgZm9yIHNvbWUgc2NlbmFyaW9zIHRvIHVz
ZSBnc2kgc3lzZnMuDQo+Pj4+Pj4gRm9yIGV4YW1wbGUsIHdoZW4geGVuIHBhc3N0aHJvdWdoIGEg
ZGV2aWNlIHRvIGR1bVUsIGl0IHdpbGwNCj4+Pj4+PiB1c2UgZ3NpIHRvIG1hcCBwaXJxLCBidXQg
Y3VycmVudGx5IHVzZXJzcGFjZSBjYW4ndCBnZXQgZ3NpDQo+Pj4+Pj4gbnVtYmVyLg0KPj4+Pj4+
IFNvLCBhZGQgZ3NpIHN5c2ZzIGZvciB0aGF0IGFuZCBmb3Igb3RoZXIgcG90ZW50aWFsIHNjZW5h
cmlvcy4NCj4+Pj4+Pg0KPj4+Pj4+IENvLWRldmVsb3BlZC1ieTogSHVhbmcgUnVpIDxyYXkuaHVh
bmdAYW1kLmNvbT4NCj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNo
ZW5AYW1kLmNvbT4NCj4+Pj4+PiAtLS0NCj4+Pj4+PiAgZHJpdmVycy9hY3BpL3BjaV9pcnEuYyAg
fCAgMSArDQo+Pj4+Pj4gIGRyaXZlcnMvcGNpL3BjaS1zeXNmcy5jIHwgMTEgKysrKysrKysrKysN
Cj4+Pj4+PiAgaW5jbHVkZS9saW51eC9wY2kuaCAgICAgfCAgMiArKw0KPj4+Pj4+ICAzIGZpbGVz
IGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKykNCj4+Pj4+Pg0KPj4+Pj4+IGRpZmYgLS1naXQgYS9k
cml2ZXJzL2FjcGkvcGNpX2lycS5jIGIvZHJpdmVycy9hY3BpL3BjaV9pcnEuYw0KPj4+Pj4+IGlu
ZGV4IDYzMGZlMGEzNGJjNi4uNzM5YTU4NzU1ZGYyIDEwMDY0NA0KPj4+Pj4+IC0tLSBhL2RyaXZl
cnMvYWNwaS9wY2lfaXJxLmMNCj4+Pj4+PiArKysgYi9kcml2ZXJzL2FjcGkvcGNpX2lycS5jDQo+
Pj4+Pj4gQEAgLTQ0OSw2ICs0NDksNyBAQCBpbnQgYWNwaV9wY2lfaXJxX2VuYWJsZShzdHJ1Y3Qg
cGNpX2RldiAqZGV2KQ0KPj4+Pj4+ICAJCWtmcmVlKGVudHJ5KTsNCj4+Pj4+PiAgCQlyZXR1cm4g
MDsNCj4+Pj4+PiAgCX0NCj4+Pj4+PiArCWRldi0+Z3NpID0gZ3NpOw0KPj4+Pj4NCj4+Pj4+IEl0
IHdvdWxkIGJlIGJldHRlciBpZiB0aGUgZ3NpIGlmIGZldGNoZWQgd2l0aG91dCByZXF1aXJpbmcg
Y2FsbGluZw0KPj4+Pj4gYWNwaV9wY2lfaXJxX2VuYWJsZSgpLCBhcyB0aGUgZ3NpIGRvZXNuJ3Qg
cmVxdWlyZSB0aGUgaW50ZXJydXB0IHRvIGJlDQo+Pj4+PiBlbmFibGVkLiAgVGhlIGdzaSBpcyBr
bm93biBhdCBib290IHRpbWUgYW5kIHdvbid0IGNoYW5nZSBmb3IgdGhlDQo+Pj4+PiBsaWZldGlt
ZSBvZiB0aGUgZGV2aWNlLg0KPj4+PiBEbyB5b3UgaGF2ZSBhbnkgc3VnZ2VzdCBwbGFjZXMgdG8g
ZG8gdGhpcz8NCj4+Pg0KPj4+IEknbSBub3QgYW4gZXhwZXJ0IG9uIHRoaXMsIGJ1dCBkcml2ZXJz
L3BjaS9wY2ktc3lzZnMuYyB3b3VsZCBzZWVtIGxpa2UNCj4+PiBhIGJldHRlciBwbGFjZSwgdG9n
ZXRoZXIgd2l0aCB0aGUgcmVzdCBvZiB0aGUgcmVzb3VyY2VzLg0KPj4gSSdtIG5vdCBmYW1pbGlh
ciB3aXRoIHRoaXMgdG9vLiBCdXQgaXQgc2VlbXMgcGNpLXN5c2ZzLmMgb25seSBjcmVhdGVzIHN5
c2ZzIG5vZGUgYW5kIHN1cHBvcnRzIHRoZSByZWFkL3dyaXRlIG1ldGhvZCB3aXRob3V0IGluaXRp
YWxpemluZyB0aGUgdmFsdWVzLg0KPj4gSWYgd2FudCB0byBpbml0aWFsaXplIHRoZSB2YWx1ZSBv
ZiBnc2kgaGVyZS4gQW4gYXBwcm9hY2ggdG8gaW5pdGlhbGl6ZSBpdCBpcyB0byBjYWxsIGFjcGlf
cGNpX2lycV9sb29rdXAgdG8gZ2V0IGdzaSBudW1iZXIgd2hlbiB0aGUgZmlyc3QgdGltZSBpdCBp
cyByZWFkPw0KPiANCj4gSG0sIG1heWJlLCBJIGRvbid0IHJlYWxseSBoYXZlIG11Y2ggZXhwZXJp
ZW5jZSB3aXRoIHN5c2ZzLCBzbyBkb24ndA0KPiBrbm93IGhvdyBub2RlcyBhcmUgdXN1YWxseSBp
bml0aWFsaXplZC4NCk1heWJlIHRoZSBtYWludGFpbmVycyBvZiBzeXNmcyBjYW4gZ2l2ZSBzb21l
IHN1Z2dlc3QgcGxhY2VzIHRvIGluaXRpYWxpemUgdGhlIHZhbHVlIG9mIGdzaS4NCg0KPiANCj4+
Pg0KPj4+IE1heWJlIG15IHVuZGVyc3RhbmRpbmcgaXMgaW5jb3JyZWN0LCBidXQgZ2l2ZW4gdGhl
IHN1Z2dlc3RlZCBwbGFjZW1lbnQNCj4+PiBpbiBhY3BpX3BjaV9pcnFfZW5hYmxlKCkgSSB0aGlu
ayB0aGUgZGV2aWNlIHdvdWxkIG5lZWQgdG8gYmluZCB0aGUNCj4+PiBpbnRlcnJ1cHQgaW4gb3Jk
ZXIgZm9yIHRoZSBnc2kgbm9kZSB0byBhcHBlYXIgb24gc3lzZnM/DQo+PiBObywgZ3NpIHN5c2Zz
IGhhcyBleGlzdGVkIHRoZXJlLCBpbiBhY3BpX3BjaV9pcnFfZW5hYmxlIGlzIHRvIGluaXRpYWxp
emUgdGhlIHZhbHVlIG9mIGdzaS4NCj4+DQo+Pj4NCj4+PiBXb3VsZCB0aGUgY3VycmVudCBhcHBy
b2FjaCB3b3JrIGlmIHRoZSBkZXZpY2UgaXMgYXNzaWduZWQgdG8gcGNpYmFjaw0KPj4+IG9uIHRo
ZSBrZXJuZWwgY29tbWFuZCBsaW5lLCBhbmQgdGh1cyBuZXZlciBvd25lZCBieSBhbnkgZHJpdmVy
IGluDQo+Pj4gZG9tMD8NCj4+IElmIGFzc2lnbmVkIHRvIHBjaWJhY2ssIEkgdGhpbmsgcGNpYmFj
ayB3aWxsIGVuYWJsZSB0aGUgZGV2aWNlLCBhbmQgdGhlbiBhY3BpX3BjaV9pcnFfZW5hYmxlIHdp
bGwgYmUgY2FsbGVkLCBhbmQgdGhlbiB0aGUgZ3NpIHdpbGwgYmUgaW5pdGlhbGl6ZWQuIFNvLCBj
dXJyZW50IGNhbiB3b3JrLg0KPiANCj4gVGhpcyBuZWVkcyBjaGVja2luZyB0byBiZSBzdXJlLCBJ
J20gY2VydGFpbmx5IG5vdCB0aGF0IGZhbWlsaWFyLiAgWW91DQo+IHdvdWxkIG5lZWQgdG8gYXQg
bGVhc3QgdGVzdCB0aGF0IGl0IHdvcmtzIHByb3Blcmx5IHdoZW4gdGhlIGRldmljZSBpcw0KPiBo
aWRkZW4gdXNpbmcgeGVuLXBjaWJhY2suaGlkZT0oU0JERikgaW4gdGhlIExpbnV4IGtlcm5lbCBj
b21tYW5kIGxpbmUuDQpTdXJlLCBJIGhhdmUgdmFsaWRhdGVkIGl0IG9uIG15IHNpZGUuIEJvdGgg
dGhlICJTdGF0aWMgYXNzaWdubWVudCBmb3IgYnVpbHQtaW4geGVuLXBjaWJhY2soeGVuLXBjaWJh
Y2suaGlkZT0oU0JERikpIiBhbmQgdGhlICJEeW5hbWljIGFzc2lnbm1lbnQgd2l0aCB4bChzdWRv
IG1vZHByb2JlIHhlbi1wY2liYWNrICYgc3VkbyB4bCBwY2ktYXNzaWduYWJsZS1hZGQgU0JERiki
IGNhbiB3b3JrIGZpbmUgd2l0aCBjdXJyZW50IGltcGxlbWVudGF0aW9uLg0KDQo+IA0KPiBUaGFu
a3MsIFJvZ2VyLg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 07:54:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 07:54:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654306.1021068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDgXd-0002xv-K8; Thu, 14 Dec 2023 07:53:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654306.1021068; Thu, 14 Dec 2023 07:53:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDgXd-0002xo-G1; Thu, 14 Dec 2023 07:53:57 +0000
Received: by outflank-mailman (input) for mailman id 654306;
 Thu, 14 Dec 2023 07:53:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDgXc-0002xi-Q1
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 07:53:56 +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 ed590cca-9a55-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 08:53:54 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a1e2ded3d9fso937386966b.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 23:53:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 si10-20020a170906ceca00b00a1e377ea789sm8871093ejb.203.2023.12.13.23.53.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 23:53:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed590cca-9a55-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702540433; x=1703145233; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=OWSICCGMVQL8q4mV5y32l1cSijarK9RheoZkjBakzOk=;
        b=ZP5s/lptfDkL9PCkyU6pB6rt1inLLM1ELtPuMs45YN39U1CqaGMN2SjERmFrFti8tE
         nSdVEjmRSOlgeNUX73jixvQhI8Y9cWhHgmNqv2LhnIdDqEwzN0HBJ9TMgTL8LNjym1tH
         xs1/sH5NRDMsLFEOmtFyxpjE+HBsJFjKGY6j8aFUfX79WOKxhKgBjZSHrpUqaIyeUOtD
         JtVeulhe6Be1ELixirapQIc5lDNylNNZLmq/4wb4BsXe/g0uoAGML9wBIMeUtEnkBnWj
         2pirFWbGx4KvBHZJELeAd0W1luqUVR8fjfCXQi8rRl6kGeqZpWQYRuKPDBBvye2CNQJ9
         aoWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702540433; x=1703145233;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=OWSICCGMVQL8q4mV5y32l1cSijarK9RheoZkjBakzOk=;
        b=qJ1lNfhLemEU29OfVB6MGNre06+6CnaJKxB0+nfOCWHmMmOQUVKhIPc+XbpIK26fc6
         br0stQWklNTKfNZINUi/j6lPz8s4Tr4JtxMF9E3XbdwK93qpbm5gaYPpz50RsBdzkf+6
         AQJY2SEl02+ZT+PmCjY4j9pDmJAvKiiWaK5ExKPXBd7+rhcFAMdPfDyN6Rw42DYrScLS
         7GGkVR8ejkeaXiPgaj9fM25wJ572zkBXsnbncGjwgueLexH1tzdIOR72wbbOKFWL7B1+
         OpDD+ALnYI7nNzqy1775qcOtrQmMHqx2yrT0pVRYrdB5fl10R9r4x0P2v7Kias9jFRjI
         p/9A==
X-Gm-Message-State: AOJu0YxCNg+cFloLtvJbdKuaX8h76YZriAuNmrGO/V3dIC6VPC0UfJLL
	7aAnAYP8umLGzlw3nA2rpnF7
X-Google-Smtp-Source: AGHT+IGlhdceWm2SZUD540asoVWeNJBZ4HF+NeOIH5P1r/rZw4D+hAkrEjN44KpZ4Qpj6kRucFFOkA==
X-Received: by 2002:a17:906:2c6:b0:a1f:9bd2:7f67 with SMTP id 6-20020a17090602c600b00a1f9bd27f67mr4060662ejk.123.1702540433634;
        Wed, 13 Dec 2023 23:53:53 -0800 (PST)
Message-ID: <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
Date: Thu, 14 Dec 2023 08:53:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
 <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312131803150.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 03:05, Stefano Stabellini wrote:
> On Wed, 13 Dec 2023, Jan Beulich wrote:
>> On 11.12.2023 10:14, Nicola Vetrini wrote:
>>> --- a/xen/arch/arm/include/asm/numa.h
>>> +++ b/xen/arch/arm/include/asm/numa.h
>>> @@ -2,8 +2,9 @@
>>>  #define __ARCH_ARM_NUMA_H
>>>  
>>>  #include <xen/mm.h>
>>
>> With this, ...
>>
>>> +#include <xen/types.h>
>>>  
>>> -typedef u8 nodeid_t;
>>> +typedef uint8_t nodeid_t;
>>>  
>>>  #ifndef CONFIG_NUMA
>>>  
>>> @@ -12,10 +13,9 @@ typedef u8 nodeid_t;
>>>  #define node_to_cpumask(node)   (cpu_online_map)
>>>  
>>>  /*
>>> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
>>> - * is required because the dummy helpers are using it.
>>> + * TODO: define here first_valid_mfn as static when NUMA is supported on Arm,
>>> + * this is required because the dummy helpers are using it.
>>>   */
>>> -extern mfn_t first_valid_mfn;
>>
>> ... and this declaration moved to xen/mm.h, how is it going to be possible
>> to do as the adjusted comment says? The compiler will choke on the static
>> after having seen the extern.
> 
> Nicola was just following a review comment by Julien. NUMA has been
> pending for a while and I wouldn't hold this patch back because of it.
> I suggest we go with Julien's request (this version of the patch).
> 
> If you feel strongly about it, please suggest an alternative.

Leaving a TODO comment which cannot actually be carried out is just wrong
imo. And I consider in unfair to ask me to suggest an alternative. The
(imo obvious) alternative is to drop this patch, if no proper change can
be proposed. There's nothing wrong with leaving a violation in place,
when that violation is far from causing any kind of harm. The more that
the place is already accompanied by a (suitable afaict) comment.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 07:57:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 07:57:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654308.1021078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDgbV-0003ZU-3O; Thu, 14 Dec 2023 07:57:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654308.1021078; Thu, 14 Dec 2023 07: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 1rDgbV-0003ZN-07; Thu, 14 Dec 2023 07:57:57 +0000
Received: by outflank-mailman (input) for mailman id 654308;
 Thu, 14 Dec 2023 07: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDgbT-0003Yy-Pl
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 07:57:55 +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 7c384115-9a56-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 08:57:53 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50d176eb382so8334355e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Dec 2023 23:57:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ul5-20020a170907ca8500b00a1fa7e39957sm5302163ejc.136.2023.12.13.23.57.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Dec 2023 23:57:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c384115-9a56-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702540673; x=1703145473; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=5qwfQ1fYnd2+9zNdiB4JsEFPiMnM3Cpj43jXBGS7xTg=;
        b=bVDXKUPM1XNoyJHeS2uOWMoWySsQ9cpA3FSWKrxsPXkZ069EaCd3G5+9C3Ti79ouAg
         Pp2Pyoad+DSH/aIXo+ESnWDb8Q2zUG4cEYKWCcCFKW0aDyvsLoUHfeV07jkqkWTO6h4U
         Mact5a39NBANj0gJNq5qUYpcsUsDjtKPIFf/nu0+lFZOAMabGBm0UdHGhoe7/glnXWe5
         uv6uJKJ/8VnceFKf4aUljzrSS4ckTd8+VBZpWtQsJxJSwqqrt9M6wr2KoKOZEqKuE3qL
         5IUThO44aPLmdVG9pThT6qp3chTNZobjyd/BQD2R/9ufY2pYFw8L75IRD1C62HBPDlex
         66tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702540673; x=1703145473;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=5qwfQ1fYnd2+9zNdiB4JsEFPiMnM3Cpj43jXBGS7xTg=;
        b=Wgsb0E4D/8Mq8SGcfKd6pqA+HeGnZqh58uP0VGG8s9hfWgcD8YErhJ9UDixKRkUoX+
         +3zY9r0BABaJ7BIfsh89CRVrZ5DtDe9fQ8NJ1dxuEVfK9lGu0Q6Sc+yyRFBiVAW4ApZi
         EKjY3uf8tq1I5PuuzKfFqmBOQNCyCB3IDJ4mglWRlHUGNcn8kCBKChCtL13fjnUtZdub
         JFB/3uiCb7OZd6snjwFDkM1QQWVpa5ukDz9atBaQ9EAGUa7FWcl22lKLeSIcqn+2lDPz
         IP305XFvlIAhQUdS8rdrOXG9ayNTIZNIxOaUn3f46YgwcEIcUUq3KPd+yAU6ScWWWxQ7
         i0bg==
X-Gm-Message-State: AOJu0YzEyfGzmplfWcoTvKvA6z9aFRZBn8MEvaVdlWVj8J5mkITVIQVa
	bkP3QSg0YCm3C7+gy2cqbO9K
X-Google-Smtp-Source: AGHT+IFrGFdO5vu4jx7cIPrbOFGu87mJSTJTV6uPVFwo/L3U3R+KigYXKgc28u41mwKP50Bq5wtpUA==
X-Received: by 2002:ac2:4141:0:b0:50e:1514:e56 with SMTP id c1-20020ac24141000000b0050e15140e56mr573142lfi.79.1702540673278;
        Wed, 13 Dec 2023 23:57:53 -0800 (PST)
Message-ID: <21dae6f8-6f79-4952-94e0-1b7c13c7c1a6@suse.com>
Date: Thu, 14 Dec 2023 08:57:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/7] x86/mm: address MISRA C:2012 Rule 2.1
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 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>, Wei Liu <wl@xen.org>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <5913d8871ff6c4f320c521e50e550a64e58d4351.1702283415.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312111741390.1703076@ubuntu-linux-20-04-desktop>
 <ff95c65f53ab8acfd577ec132009cd7b@bugseng.com>
 <0ad1d3f5-2a23-4ee9-a6e7-ebb824d2b7d7@suse.com>
 <8a49facc4fbf4d3fefb91b9b5bef3305@bugseng.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: <8a49facc4fbf4d3fefb91b9b5bef3305@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.12.2023 15:44, Nicola Vetrini wrote:
> On 2023-12-12 10:53, Jan Beulich wrote:
>> On 12.12.2023 10:12, Nicola Vetrini wrote:
>>> On 2023-12-12 02:42, Stefano Stabellini wrote:
>>>> On Mon, 11 Dec 2023, Nicola Vetrini wrote:
>>>>> The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
>>>>> is unreachable because all switch clauses end with returns.
>>>>> However, some of them can be substituted with "break"s to allow
>>>>> the "return 0" outside the switch to be reachable.
>>>>>
>>>>> No functional changes.
>>>>
>>>> This is correct but makes the code inconsistent. I would either 
>>>> remove
>>>> the return 0; at the end of arch_memory_op, or do the following:
>>>>
>>>> - initialize rc to 0 at the beginning: int rc = 0;
>>>> - all switch clauses break instead of return;
>>>> - at the end: return rc;
>>>
>>> Given the feedback on the Arm side, the first solution is likely to be
>>> preferred.
>>
>> I wouldn't mind either option, with
>> - the former ensured to be okay with all compiler versions we (still)
>>   support,
> 
> I tested a stripped-down version of the switch on godbolt.org (as far 
> back as gcc-4.8.5) and it doesn't complain. It should be tested on a 
> real Xen build, though.

I didn't fear any issue when going back to just 4.8. Quoting ./README:

      - For x86:
        - GCC 4.1.2_20070115 or later

>> - the latter having the initialize rc to 0 part dropped; imo it's 
>> better
>>   if every case block makes sure to set the intended value explicitly.
> 
> This is a lot of churn, I'd rather avoid it.

Rant (sorry): There's already excessive churn for entirely benign issues
that Misra claims need adjusting.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:19:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:19:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654317.1021088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDgwX-0007WP-5h; Thu, 14 Dec 2023 08:19:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654317.1021088; Thu, 14 Dec 2023 08:19: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 1rDgwX-0007WI-34; Thu, 14 Dec 2023 08:19:41 +0000
Received: by outflank-mailman (input) for mailman id 654317;
 Thu, 14 Dec 2023 08:19: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDgwV-0007Uu-SM
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:19:39 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8549a4ed-9a59-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 09:19:37 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a1e35c2807fso1030806166b.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 00:19:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 li14-20020a170907198e00b00a1f738318a5sm8458002ejc.155.2023.12.14.00.19.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 00:19:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8549a4ed-9a59-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702541977; x=1703146777; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jrQ8YIE4d3/Tpmw4bfYbiJUfruiQo02dLt+ivl0HW0k=;
        b=Uc5Z3Mi6l7ZFDTiH7bKuHtk0A0kADUT1zSRuKKRiR/jUS9k+EXNbwOuN/7CCaVqOjZ
         F/l8kVHc1LTex3VCRop7CaY5GWKEcP3dSa3sXhIbgT6JZO8iqG5450nMUdtdDokMxXil
         Ri3cI0qEQokPr6N0pNHadrApIr5PHFRN2Fb+UM2uqmyo2wzOhk0ud8nAG6pUzFR/yV8b
         MITcaFJPOeSiM7DKps5gZtQUrof68amy2mCyTZ1p21z/H6cbHFtpV7hBVX02qDzZaPcb
         WGetqUUYu1w5nkwAgnk6jKZeo5kXC0TpF/roxB03XbDif8PtZMWnar55nuIVPsljjZti
         kgDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702541977; x=1703146777;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=jrQ8YIE4d3/Tpmw4bfYbiJUfruiQo02dLt+ivl0HW0k=;
        b=hHY58eIJmfxChYfyW4ijM0tbKPZytjIoFfyGKeCIIqcVScnsyCIdmoly6bvSqlb+s1
         84o+OdiJXoNBo/Q17Jmz0mL+ErHZzhu31c/DitsOVxDN1qQspmsEMkJvm6+jWOKzH3B9
         K6oNailHoZ8L2U69jOhUhZV6lmZYzi90jKTqZTwVl2QcnvS3qWR+woqu3PiZR6YW1/da
         S2DplerPZDJBxelhp603AFqqy+MfZAXxJHnqxPSR6wlO70aMq0wJF2o+btgAst8FZGg5
         0Pa3I7ZwEfDSO++2syRW2tNG7oPgcM1Vx0DQQ6+ivtFUp2s/q89ajC//C0o0TwlTFY0U
         bNEA==
X-Gm-Message-State: AOJu0YyluTeWpWhLsRPMuMrqrP24YVxBoSqqJR6Qm/mTKhnuxBAuzPa4
	246hsQBNaHqT59shrIsJ7TPX
X-Google-Smtp-Source: AGHT+IHMXm21ZR/s64JD6ZQKqscq7Asau/DzT3mtW4nQ5PjZR7GclX1foS5GCls4aRCdC20nCL2lMA==
X-Received: by 2002:a17:906:5354:b0:a1c:aebe:6104 with SMTP id j20-20020a170906535400b00a1caebe6104mr4576636ejo.85.1702541977081;
        Thu, 14 Dec 2023 00:19:37 -0800 (PST)
Message-ID: <794b304e-d11c-420b-91e9-4d226f492d93@suse.com>
Date: Thu, 14 Dec 2023 09:19:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] livepatch-build-tools: fix misuse of script directory as
 work directory
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20231213135147.6749-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231213135147.6749-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.12.2023 14:51, Roger Pau Monne wrote:
> --- a/livepatch-build
> +++ b/livepatch-build
> @@ -25,6 +25,7 @@
>  # script.
>  
>  SCRIPTDIR="$(readlink -f $(dirname $(type -p $0)))"
> +WORKDIR="$(readlink -f -- .)"

More for my own education than anything else: Isn't the (standard) pwd
utility intended to be the "canonical" way of getting at the current
directory? Its -P option (apparently what would be needed to match the
-f used above) is also a standard one afaict.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:32:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:32:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654320.1021098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDh94-00026g-AS; Thu, 14 Dec 2023 08:32:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654320.1021098; Thu, 14 Dec 2023 08:32:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDh94-00026Z-6Y; Thu, 14 Dec 2023 08:32:38 +0000
Received: by outflank-mailman (input) for mailman id 654320;
 Thu, 14 Dec 2023 08:32: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 1rDh92-00026T-AP
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:32: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 1rDh8v-0005zu-UR; Thu, 14 Dec 2023 08:32:29 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDh8v-0007UL-Kb; Thu, 14 Dec 2023 08:32:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=mAG6MS2EG+y0rzmVJUdz8USHN0/TqwyiFdGtMbjPins=; b=unDm856o7NIKXSboWoaTrRDfO9
	BRX6AdmytVVzdXReRXbA1k2xuG4bIUBM+wkpIF0dnuMSk/WrtwbloE5PS2bDpQ2roIomS8TxDNp1v
	LUGXwBQhxtJMLM5FlZmSNEhoxIq4g697WA7U0lpC4VFtQuN/qfT53sgvk98Gh4PaF4yU=;
Message-ID: <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org>
Date: Thu, 14 Dec 2023 08:32:27 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
 <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 14/12/2023 07:53, Jan Beulich wrote:
> On 14.12.2023 03:05, Stefano Stabellini wrote:
>> On Wed, 13 Dec 2023, Jan Beulich wrote:
>>> On 11.12.2023 10:14, Nicola Vetrini wrote:
>>>> --- a/xen/arch/arm/include/asm/numa.h
>>>> +++ b/xen/arch/arm/include/asm/numa.h
>>>> @@ -2,8 +2,9 @@
>>>>   #define __ARCH_ARM_NUMA_H
>>>>   
>>>>   #include <xen/mm.h>
>>>
>>> With this, ...
>>>
>>>> +#include <xen/types.h>
>>>>   
>>>> -typedef u8 nodeid_t;
>>>> +typedef uint8_t nodeid_t;
>>>>   
>>>>   #ifndef CONFIG_NUMA
>>>>   
>>>> @@ -12,10 +13,9 @@ typedef u8 nodeid_t;
>>>>   #define node_to_cpumask(node)   (cpu_online_map)
>>>>   
>>>>   /*
>>>> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
>>>> - * is required because the dummy helpers are using it.
>>>> + * TODO: define here first_valid_mfn as static when NUMA is supported on Arm,
>>>> + * this is required because the dummy helpers are using it.
>>>>    */
>>>> -extern mfn_t first_valid_mfn;
>>>
>>> ... and this declaration moved to xen/mm.h, how is it going to be possible
>>> to do as the adjusted comment says? The compiler will choke on the static
>>> after having seen the extern.
>>
>> Nicola was just following a review comment by Julien. NUMA has been
>> pending for a while and I wouldn't hold this patch back because of it.
>> I suggest we go with Julien's request (this version of the patch).
>>
>> If you feel strongly about it, please suggest an alternative.
> 
> Leaving a TODO comment which cannot actually be carried out is just wrong
> imo. And I consider in unfair to ask me to suggest an alternative. The
> (imo obvious) alternative is to drop this patch, if no proper change can
> be proposed. There's nothing wrong with leaving a violation in place,
> when that violation is far from causing any kind of harm. The more that
> the place is already accompanied by a (suitable afaict) comment.

Just to clarify, are you saying you would be happy if the proposal if 
the TODO is removed?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:47:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:47:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654323.1021107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhMv-00048U-BY; Thu, 14 Dec 2023 08:46:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654323.1021107; Thu, 14 Dec 2023 08:46:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhMv-00048N-8v; Thu, 14 Dec 2023 08:46:57 +0000
Received: by outflank-mailman (input) for mailman id 654323;
 Thu, 14 Dec 2023 08:46: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=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDhMu-00048H-T5
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:46:56 +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 54d9fe68-9a5d-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 09:46:55 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-336445a2749so617819f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 00:46:54 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 h12-20020a5d504c000000b003333521a1cesm3283381wrt.57.2023.12.14.00.46.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 00:46:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54d9fe68-9a5d-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702543614; x=1703148414; 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=VRbI5kjcIRPl4oUV94OH4S0caT5wjSRkLPGI8s4DA/k=;
        b=NOS/gkojgOMTcITGkJEFJQHkH1Bv6QCp/kMTk9PHWA2UqIGvbPshXZuCEdCXxovMxI
         D4V9BEQmrP0Eq7gjmgVhi6gJByMg5cIDyIQEARZiY0dftktTHabYvM8p6dnIJljOuozq
         M4aIO+Zxf1T+fHGhiwPpO9g4H2wXYUVKYhTxk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702543614; x=1703148414;
        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=VRbI5kjcIRPl4oUV94OH4S0caT5wjSRkLPGI8s4DA/k=;
        b=kRW3lrMlo+dMVQgCY6kGoeTs4Yaq9b+GdgsVSLqIYBICXpIaanOwyUdfFkqvKO5l6N
         oajyV6ZUl3eYvquDvC88eR2O89pZb69ZdAXPtQo/7+phlyyHLlnHUntjMNteC6ylrlWh
         mduQuEl6VkJfpxULo6njVtCwgLPkEaX5MdBU45l45Qk3RyaHBdJDvzwZqv2T6xFRYd4u
         vGmkF9UIjEmjat6rmeGC1lnMv1zMFVmM1hwohNZL7nap4eHpJaU2Rm0anNd/RDjbT5JD
         cn9Vwt0bqb3w5rQqBxhP+FkSC4ummHIE1IWGGqI8cJZuC7aBsnvJCW3E2BFluLyaGoKH
         hJ4w==
X-Gm-Message-State: AOJu0YwRhiut018HoOqDyvrC4nxjre6RGY/VQZmbrTVj9ltCNIekto04
	ui8dqppde39uRmSwWOLfzuATFg==
X-Google-Smtp-Source: AGHT+IFs1KY+zsQXwuAqC03LiFJwO3hRSTw+6+YdEzAfW15eHnWqW0A0/g+qvKOg7kFPUNaNrf5hAQ==
X-Received: by 2002:a5d:6aca:0:b0:336:9ec:d613 with SMTP id u10-20020a5d6aca000000b0033609ecd613mr6133406wrw.90.1702543613756;
        Thu, 14 Dec 2023 00:46:53 -0800 (PST)
Date: Thu, 14 Dec 2023 09:46:52 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Message-ID: <ZXrA_OocbBkFAkM-@macbook>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-4-Jiqian.Chen@amd.com>
 <ZXdNf0HWs4nAVPeF@macbook>
 <BL1PR12MB584910C2E370BBCC8A312733E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXglU0EtBrRNiWVp@macbook>
 <BL1PR12MB584973D751EB57C3DE766AEEE78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXmfmbb4S8Iuy7si@macbook>
 <BL1PR12MB584911B4DFF4D9ED65CF92F0E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB584911B4DFF4D9ED65CF92F0E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>

On Thu, Dec 14, 2023 at 07:08:32AM +0000, Chen, Jiqian wrote:
> On 2023/12/13 20:12, Roger Pau MonnÃ© wrote:
> > On Wed, Dec 13, 2023 at 03:31:21AM +0000, Chen, Jiqian wrote:
> >> On 2023/12/12 17:18, Roger Pau MonnÃ© wrote:
> >>> On Tue, Dec 12, 2023 at 06:34:27AM +0000, Chen, Jiqian wrote:
> >>>>
> >>>> On 2023/12/12 01:57, Roger Pau MonnÃ© wrote:
> >>>>> On Mon, Dec 11, 2023 at 12:15:19AM +0800, Jiqian Chen wrote:
> >>>>>> There is a need for some scenarios to use gsi sysfs.
> >>>>>> For example, when xen passthrough a device to dumU, it will
> >>>>>> use gsi to map pirq, but currently userspace can't get gsi
> >>>>>> number.
> >>>>>> So, add gsi sysfs for that and for other potential scenarios.
> >>>>>>
> >>>>>> Co-developed-by: Huang Rui <ray.huang@amd.com>
> >>>>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >>>>>> ---
> >>>>>>  drivers/acpi/pci_irq.c  |  1 +
> >>>>>>  drivers/pci/pci-sysfs.c | 11 +++++++++++
> >>>>>>  include/linux/pci.h     |  2 ++
> >>>>>>  3 files changed, 14 insertions(+)
> >>>>>>
> >>>>>> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> >>>>>> index 630fe0a34bc6..739a58755df2 100644
> >>>>>> --- a/drivers/acpi/pci_irq.c
> >>>>>> +++ b/drivers/acpi/pci_irq.c
> >>>>>> @@ -449,6 +449,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
> >>>>>>  		kfree(entry);
> >>>>>>  		return 0;
> >>>>>>  	}
> >>>>>> +	dev->gsi = gsi;
> >>>>>
> >>>>> It would be better if the gsi if fetched without requiring calling
> >>>>> acpi_pci_irq_enable(), as the gsi doesn't require the interrupt to be
> >>>>> enabled.  The gsi is known at boot time and won't change for the
> >>>>> lifetime of the device.
> >>>> Do you have any suggest places to do this?
> >>>
> >>> I'm not an expert on this, but drivers/pci/pci-sysfs.c would seem like
> >>> a better place, together with the rest of the resources.
> >> I'm not familiar with this too. But it seems pci-sysfs.c only creates sysfs node and supports the read/write method without initializing the values.
> >> If want to initialize the value of gsi here. An approach to initialize it is to call acpi_pci_irq_lookup to get gsi number when the first time it is read?
> > 
> > Hm, maybe, I don't really have much experience with sysfs, so don't
> > know how nodes are usually initialized.
> Maybe the maintainers of sysfs can give some suggest places to initialize the value of gsi.
> 
> > 
> >>>
> >>> Maybe my understanding is incorrect, but given the suggested placement
> >>> in acpi_pci_irq_enable() I think the device would need to bind the
> >>> interrupt in order for the gsi node to appear on sysfs?
> >> No, gsi sysfs has existed there, in acpi_pci_irq_enable is to initialize the value of gsi.
> >>
> >>>
> >>> Would the current approach work if the device is assigned to pciback
> >>> on the kernel command line, and thus never owned by any driver in
> >>> dom0?
> >> If assigned to pciback, I think pciback will enable the device, and then acpi_pci_irq_enable will be called, and then the gsi will be initialized. So, current can work.
> > 
> > This needs checking to be sure, I'm certainly not that familiar.  You
> > would need to at least test that it works properly when the device is
> > hidden using xen-pciback.hide=(SBDF) in the Linux kernel command line.
> Sure, I have validated it on my side. Both the "Static assignment for built-in xen-pciback(xen-pciback.hide=(SBDF))" and the "Dynamic assignment with xl(sudo modprobe xen-pciback & sudo xl pci-assignable-add SBDF)" can work fine with current implementation.

Oh, OK, if that's the case I don't have much objection in doing the
initialization in acpi_pci_irq_enable(), that's an internal Linux
detail.  I mostly care about the GSI being exposed in sysfs in a
non-Xen specific way.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:49:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:49:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654329.1021118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhOz-0004kV-Qv; Thu, 14 Dec 2023 08:49:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654329.1021118; Thu, 14 Dec 2023 08:49:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhOz-0004kO-NH; Thu, 14 Dec 2023 08:49:05 +0000
Received: by outflank-mailman (input) for mailman id 654329;
 Thu, 14 Dec 2023 08:49:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=57RS=HZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDhOy-0004kI-F0
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:49:04 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a0fbc7cc-9a5d-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 09:49:02 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 2276A4EE073A;
 Thu, 14 Dec 2023 09:49:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0fbc7cc-9a5d-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Thu, 14 Dec 2023 09:49:01 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
 <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
 <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, Shawn Anastasio
 <sanastasio@raptorengineering.com>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
In-Reply-To: <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
 <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
Message-ID: <0d7901b9a9cbc7c23514ca977af3a66e@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 2023-12-14 08:53, Jan Beulich wrote:
> On 14.12.2023 03:05, Stefano Stabellini wrote:
>> On Wed, 13 Dec 2023, Jan Beulich wrote:
>>> On 11.12.2023 10:14, Nicola Vetrini wrote:
>>>> --- a/xen/arch/arm/include/asm/numa.h
>>>> +++ b/xen/arch/arm/include/asm/numa.h
>>>> @@ -2,8 +2,9 @@
>>>>  #define __ARCH_ARM_NUMA_H
>>>> 
>>>>  #include <xen/mm.h>
>>> 
>>> With this, ...
>>> 
>>>> +#include <xen/types.h>
>>>> 
>>>> -typedef u8 nodeid_t;
>>>> +typedef uint8_t nodeid_t;
>>>> 
>>>>  #ifndef CONFIG_NUMA
>>>> 
>>>> @@ -12,10 +13,9 @@ typedef u8 nodeid_t;
>>>>  #define node_to_cpumask(node)   (cpu_online_map)
>>>> 
>>>>  /*
>>>> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, 
>>>> this
>>>> - * is required because the dummy helpers are using it.
>>>> + * TODO: define here first_valid_mfn as static when NUMA is 
>>>> supported on Arm,
>>>> + * this is required because the dummy helpers are using it.
>>>>   */
>>>> -extern mfn_t first_valid_mfn;
>>> 
>>> ... and this declaration moved to xen/mm.h, how is it going to be 
>>> possible
>>> to do as the adjusted comment says? The compiler will choke on the 
>>> static
>>> after having seen the extern.
>> 
>> Nicola was just following a review comment by Julien. NUMA has been
>> pending for a while and I wouldn't hold this patch back because of it.
>> I suggest we go with Julien's request (this version of the patch).
>> 
>> If you feel strongly about it, please suggest an alternative.
> 
> Leaving a TODO comment which cannot actually be carried out is just 
> wrong
> imo. And I consider in unfair to ask me to suggest an alternative. The
> (imo obvious) alternative is to drop this patch, if no proper change 
> can
> be proposed. There's nothing wrong with leaving a violation in place,
> when that violation is far from causing any kind of harm. The more that
> the place is already accompanied by a (suitable afaict) comment.
> 
> Jan

I have a proposal: deviate first_valid_mfn as a deliberate workaround to 
NUMA not being supported on ARM and PPC. This still supplies a 
justification and does not imply any other code change.

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:49:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:49:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654330.1021127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhPI-0005Ax-1S; Thu, 14 Dec 2023 08:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654330.1021127; Thu, 14 Dec 2023 08: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 1rDhPH-0005An-Um; Thu, 14 Dec 2023 08:49:23 +0000
Received: by outflank-mailman (input) for mailman id 654330;
 Thu, 14 Dec 2023 08:49:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDhPG-00057s-UE
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:49:22 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id acfc5e21-9a5d-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 09:49:22 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c38e292c8so1848605e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 00:49:22 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 n9-20020a05600c4f8900b0040c41846923sm17598276wmq.26.2023.12.14.00.49.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 00:49:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: acfc5e21-9a5d-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702543761; x=1703148561; 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=rYuEGmqJ6YpOUBz/hMbORR4TaUC2bG8G25XQIxun79c=;
        b=fCrydjwwGc+k+aVxMuQcnTWKRPqUHcwzee+vjyPE+BtpbLQOmnZHwW9LePlD7L05N+
         hdxvig/uV6zeS2KV4Le3ru6EG0aGSjAtdmLOH/6DJoGQByYRb3xwtPHBkZgcvHrzL5KL
         xQl+AcFyyJRR8eeGSdbicdyWsS26Pu9u4mXSE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702543761; x=1703148561;
        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=rYuEGmqJ6YpOUBz/hMbORR4TaUC2bG8G25XQIxun79c=;
        b=Ve5YqsZdp5InJfX1PpnZMFXVvVblEjd3Q+8uK+wSTINapJQpRWoQN+5g19ggaJyFwC
         Ah0tQ9e12eeTS83YygsdQjYb+gOGjz9shGnphMTgRKwm1C7GN3RtNjj4McvCz92wB4E8
         0fnthcoYK5yDXmrz3QXJswRD7PQ7X+0qlVF6ot9PpliepV84EomXuYqazsmpMNUDdnwa
         6QtplaU47UJCV/XGeOspd2Wn7/UEF7xXDGCvA3QShplqRxmKB5uXhelQh41KW9LIVSID
         YxGdl61M0yYWWBTknqFYKAOMtZEy2DP07mc2OyaXTfuymRGDQ2/At37iqbN6SlnuNPQg
         I5oA==
X-Gm-Message-State: AOJu0YxobtDxyZipQbpoK5xCrnGsVcv6IPViec5AE+mcjJHVy/ZyvC8c
	/ud2PzzSMGUen195LVULuH32xg==
X-Google-Smtp-Source: AGHT+IGw75Wux1guGc4p3VlwWQXOe0h0UtSytiy4soAbYZ0HvFJL1gj2aOGIUDnrLDfhopbsHPXWLA==
X-Received: by 2002:a05:600c:4f11:b0:40b:5e1f:c384 with SMTP id l17-20020a05600c4f1100b0040b5e1fc384mr5229593wmq.26.1702543761612;
        Thu, 14 Dec 2023 00:49:21 -0800 (PST)
Date: Thu, 14 Dec 2023 09:49:20 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] livepatch-build-tools: fix misuse of script directory as
 work directory
Message-ID: <ZXrBkJoFcgeLL2zL@macbook>
References: <20231213135147.6749-1-roger.pau@citrix.com>
 <794b304e-d11c-420b-91e9-4d226f492d93@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <794b304e-d11c-420b-91e9-4d226f492d93@suse.com>

On Thu, Dec 14, 2023 at 09:19:35AM +0100, Jan Beulich wrote:
> On 13.12.2023 14:51, Roger Pau Monne wrote:
> > --- a/livepatch-build
> > +++ b/livepatch-build
> > @@ -25,6 +25,7 @@
> >  # script.
> >  
> >  SCRIPTDIR="$(readlink -f $(dirname $(type -p $0)))"
> > +WORKDIR="$(readlink -f -- .)"
> 
> More for my own education than anything else: Isn't the (standard) pwd
> utility intended to be the "canonical" way of getting at the current
> directory? Its -P option (apparently what would be needed to match the
> -f used above) is also a standard one afaict.

Hm, yes, having looked at it `pwd -P` would also be fine.  I've used
readlink because that's what is used thorough the script.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:51:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:51:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654338.1021138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhRC-0007Be-DG; Thu, 14 Dec 2023 08:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654338.1021138; Thu, 14 Dec 2023 08:51:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhRC-0007BX-A4; Thu, 14 Dec 2023 08:51:22 +0000
Received: by outflank-mailman (input) for mailman id 654338;
 Thu, 14 Dec 2023 08:51:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDhRB-0007BP-3J
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:51:21 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f286fd4c-9a5d-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 09:51:18 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-54c5ed26cf6so9930823a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 00:51:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o12-20020a50c90c000000b0054da352618asm6425912edh.94.2023.12.14.00.51.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 00:51:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f286fd4c-9a5d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702543878; x=1703148678; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PjmcJIYoSqp4uYmY+FikUF0e7Nj0cEaM62W8zVy/8WU=;
        b=bspqkfs02vNSNkLcW2RY+7w2Hz/jayTauSGj9Q5auCJyzVE6NNOYbNakcu1Ip0l6Fa
         0s4L1qRY40WyswawwgRlsZ1YeiS0zQSCW6Ry0/F4jRUzMHUkekVlrJGc4wWD9dfkt33M
         nfUH2Fxa2ubuzKEd5xmgOfWGnmPW+0dUu+rKndzjM3HyXaWIZWE1G+OwmOyD70wb6DRK
         OIr+/r4mPqO4bcyTU6AEsj1pnodHLVZBR0lA0Cs1MVq+SDP7AfGuua/kHUK0rUYDf/7U
         OfdIMDSo3jIK9/2g1ixDIeigTmbQJyYRFee2WGPJfWBe/vG2eR7k+eGHNOch5OoMHLmH
         fssg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702543878; x=1703148678;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PjmcJIYoSqp4uYmY+FikUF0e7Nj0cEaM62W8zVy/8WU=;
        b=AyeFyYwcykYha+VnSuS+cYtRwySg9pDsNx05H2LMTr4kQsT8eYu1vtKRgxPzxsss+a
         TSGBvnnPiy5I9fr1OWZXM+Wn81PAJT7zCqmeBsuuulgeIiPWrUfiunQTVlzQY80Kfi+3
         dx8B3Ik25pFhx4nbLtATQ/sdCHtKhCWgL1kC0/Ga/klpacoDvqafrD09Ta4tf2QJRyDJ
         PHuTYJEqPoRnx7J0oJruWvlqStqIPe1XI4IAOPoLm0mL85SvYkljIvE+6hvdYBkPyWZK
         RoxmupcXgZM5Nc4ldBfRLzblqRsP2VU1/qkNp3Qk+NOWPCC+Ap/16oa3bZLZ0NsMco7B
         7Xlw==
X-Gm-Message-State: AOJu0YyPvJgaavkp6GVE0VVShHVumc7DpAPW1L/V//KLtzHhzN6rwaoQ
	Jyn1bErBMSIxPUOKM3UdJf2L
X-Google-Smtp-Source: AGHT+IHHudoeIFm58su/jQH7iZgPGqGrS/wCgk6xz0aogewNHBVaHH0xD1WmiM77OVmwDp9ys/DJvw==
X-Received: by 2002:a50:c909:0:b0:54c:4837:81da with SMTP id o9-20020a50c909000000b0054c483781damr4672316edh.43.1702543878266;
        Thu, 14 Dec 2023 00:51:18 -0800 (PST)
Message-ID: <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com>
Date: Thu, 14 Dec 2023 09:51:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
To: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
 <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
 <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@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: <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 09:32, Julien Grall wrote:
> Hi Jan,
> 
> On 14/12/2023 07:53, Jan Beulich wrote:
>> On 14.12.2023 03:05, Stefano Stabellini wrote:
>>> On Wed, 13 Dec 2023, Jan Beulich wrote:
>>>> On 11.12.2023 10:14, Nicola Vetrini wrote:
>>>>> --- a/xen/arch/arm/include/asm/numa.h
>>>>> +++ b/xen/arch/arm/include/asm/numa.h
>>>>> @@ -2,8 +2,9 @@
>>>>>   #define __ARCH_ARM_NUMA_H
>>>>>   
>>>>>   #include <xen/mm.h>
>>>>
>>>> With this, ...
>>>>
>>>>> +#include <xen/types.h>
>>>>>   
>>>>> -typedef u8 nodeid_t;
>>>>> +typedef uint8_t nodeid_t;
>>>>>   
>>>>>   #ifndef CONFIG_NUMA
>>>>>   
>>>>> @@ -12,10 +13,9 @@ typedef u8 nodeid_t;
>>>>>   #define node_to_cpumask(node)   (cpu_online_map)
>>>>>   
>>>>>   /*
>>>>> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
>>>>> - * is required because the dummy helpers are using it.
>>>>> + * TODO: define here first_valid_mfn as static when NUMA is supported on Arm,
>>>>> + * this is required because the dummy helpers are using it.
>>>>>    */
>>>>> -extern mfn_t first_valid_mfn;
>>>>
>>>> ... and this declaration moved to xen/mm.h, how is it going to be possible
>>>> to do as the adjusted comment says? The compiler will choke on the static
>>>> after having seen the extern.
>>>
>>> Nicola was just following a review comment by Julien. NUMA has been
>>> pending for a while and I wouldn't hold this patch back because of it.
>>> I suggest we go with Julien's request (this version of the patch).
>>>
>>> If you feel strongly about it, please suggest an alternative.
>>
>> Leaving a TODO comment which cannot actually be carried out is just wrong
>> imo. And I consider in unfair to ask me to suggest an alternative. The
>> (imo obvious) alternative is to drop this patch, if no proper change can
>> be proposed. There's nothing wrong with leaving a violation in place,
>> when that violation is far from causing any kind of harm. The more that
>> the place is already accompanied by a (suitable afaict) comment.
> 
> Just to clarify, are you saying you would be happy if the proposal if 
> the TODO is removed?

Removing the bad (new) TODO here is an option. But the previous TODO shouldn't
go away. However, you asking now required me to actually look into Stefano's
request to make an alternative proposal (I still don't see though why it
needed to be me to think about an appropriate solution; probably in the time
I've spent writing replies on this thread, I could have made the change myself).

First, Arm's and PPC's header have this in their !NUMA sections. Much like
Oleksii's putting in quite a bit of effort to reduce redundancy in order to
not further grow it with RISC-V, what's wrong with sorting the !NUMA case
properly as a first step? Move the entire !NUMA section either into xen/numa.h
(eliminating the need for arch-es not supporting NUMA to even have such a
header), or (if need be) to asm-generic/. Then, as a 2nd step (albeit that
could also be done on its own, just the result would be less neat imo), make
the variable in question here extern _only_ when !NUMA. This would then
address the original TODO, so that could then legitimately be dropped. This
would further be a good opportunity to adjust the already stale comment in
page_alloc.c (it's no longer applicable to Arm only).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:53:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654342.1021147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhSl-0007og-N0; Thu, 14 Dec 2023 08:52:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654342.1021147; Thu, 14 Dec 2023 08:52:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhSl-0007oZ-KE; Thu, 14 Dec 2023 08:52:59 +0000
Received: by outflank-mailman (input) for mailman id 654342;
 Thu, 14 Dec 2023 08:52:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=57RS=HZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDhSk-0007oT-1W
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:52:58 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d2b3906-9a5e-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 09:52:57 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id E3DD94EE073A;
 Thu, 14 Dec 2023 09:52:56 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d2b3906-9a5e-11ee-98e9-6d05b1d4d9a1
MIME-Version: 1.0
Date: Thu, 14 Dec 2023 09:52:56 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 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>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 2/7] x86/mm: address MISRA C:2012 Rule 2.1
In-Reply-To: <21dae6f8-6f79-4952-94e0-1b7c13c7c1a6@suse.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <5913d8871ff6c4f320c521e50e550a64e58d4351.1702283415.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312111741390.1703076@ubuntu-linux-20-04-desktop>
 <ff95c65f53ab8acfd577ec132009cd7b@bugseng.com>
 <0ad1d3f5-2a23-4ee9-a6e7-ebb824d2b7d7@suse.com>
 <8a49facc4fbf4d3fefb91b9b5bef3305@bugseng.com>
 <21dae6f8-6f79-4952-94e0-1b7c13c7c1a6@suse.com>
Message-ID: <b53352aa8c605e30a5e7bdc8384726aa@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 2023-12-14 08:57, Jan Beulich wrote:
> On 13.12.2023 15:44, Nicola Vetrini wrote:
>> On 2023-12-12 10:53, Jan Beulich wrote:
>>> On 12.12.2023 10:12, Nicola Vetrini wrote:
>>>> On 2023-12-12 02:42, Stefano Stabellini wrote:
>>>>> On Mon, 11 Dec 2023, Nicola Vetrini wrote:
>>>>>> The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
>>>>>> is unreachable because all switch clauses end with returns.
>>>>>> However, some of them can be substituted with "break"s to allow
>>>>>> the "return 0" outside the switch to be reachable.
>>>>>> 
>>>>>> No functional changes.
>>>>> 
>>>>> This is correct but makes the code inconsistent. I would either
>>>>> remove
>>>>> the return 0; at the end of arch_memory_op, or do the following:
>>>>> 
>>>>> - initialize rc to 0 at the beginning: int rc = 0;
>>>>> - all switch clauses break instead of return;
>>>>> - at the end: return rc;
>>>> 
>>>> Given the feedback on the Arm side, the first solution is likely to 
>>>> be
>>>> preferred.
>>> 
>>> I wouldn't mind either option, with
>>> - the former ensured to be okay with all compiler versions we (still)
>>>   support,
>> 
>> I tested a stripped-down version of the switch on godbolt.org (as far
>> back as gcc-4.8.5) and it doesn't complain. It should be tested on a
>> real Xen build, though.
> 
> I didn't fear any issue when going back to just 4.8. Quoting ./README:
> 
>       - For x86:
>         - GCC 4.1.2_20070115 or later
> 

I found no issue in 4.1.2 (see https://godbolt.org/z/cxecnKseG)

>>> - the latter having the initialize rc to 0 part dropped; imo it's
>>> better
>>>   if every case block makes sure to set the intended value 
>>> explicitly.
>> 
>> This is a lot of churn, I'd rather avoid it.
> 
> Rant (sorry): There's already excessive churn for entirely benign 
> issues
> that Misra claims need adjusting.
> 
> Jan

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:54:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:54:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654346.1021157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhUU-0008NR-1Y; Thu, 14 Dec 2023 08:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654346.1021157; Thu, 14 Dec 2023 08:54:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhUT-0008NK-Uq; Thu, 14 Dec 2023 08:54:45 +0000
Received: by outflank-mailman (input) for mailman id 654346;
 Thu, 14 Dec 2023 08:54: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=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDhUS-0008NC-NF
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:54:44 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c631de5-9a5e-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 09:54:43 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3333131e08dso8273516f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 00:54:43 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 q9-20020a05600000c900b0033330846e76sm15512801wrx.86.2023.12.14.00.54.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 00:54:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c631de5-9a5e-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702544082; x=1703148882; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=FvgrAtAP6VYVedQI8IfKjme4qoauzMRvA4DIc1jKOdw=;
        b=Ztf/xUt9RuQGq7gEiJBGCnfhZ12abaA6xgyEk6hWUonY3wgCLdt/XfYhe3UIBnhMdk
         w+jzpc3KWbHiYPt+s/2jrqzeb0ezZz1VBP3QOFZ7dU5s73UQhUmzPwj+fAGOZiyCipNo
         9KE0LDH4DJA2sOaJBej1lURc4lP3tBpQx7APc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702544082; x=1703148882;
        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=FvgrAtAP6VYVedQI8IfKjme4qoauzMRvA4DIc1jKOdw=;
        b=ROIobfAziuRHsz5FlAwiQPczsKJBbNvOAn+C4uO8Gr9p1wrKMOY7CUmLe51jyEDQud
         qcGZJfaD/dLx9xBI35SeVfv1q0s0po7j057UnU2WTEjJEu1q0VWibfsLS6P324dv60aG
         U6Bc6PoqfUJZhN5MeUhsZEIQuHcFE/mo6SyynJVntbTzkOyTckn0xh9Ut7kSnkel+vxK
         pPw0/ZxfBWR5bBfqonWRM8zJiZiEf5sMUC9fOXMg6ZEn39kSrEJ5EvfQ1aDI9D0Eov5B
         3ZPkqs/xgwms6cgEkZi7qvcVRxUMtL8QhrrOzonW6giZKwF4NV6CGH6UbEMi5pAFw1U4
         /quw==
X-Gm-Message-State: AOJu0Ywbz826lcfvLsv00KAOXR/YJ5bl7Frq8FseMky9o0GdTJhQT6NY
	UljxY7zOTTYM8kcA6WgVrnIsN2O5w/9fBvCEat4=
X-Google-Smtp-Source: AGHT+IFU8Qv/tdCnT5BeSTEX/hkrxGa9t0zfcoWcV+Xqvp15vnK39v0RQF4OE00yGG4MnkqHBsQhaQ==
X-Received: by 2002:a05:6000:1370:b0:336:49da:57f with SMTP id q16-20020a056000137000b0033649da057fmr170089wrz.51.1702544082073;
        Thu, 14 Dec 2023 00:54:42 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2] livepatch-build-tools: allow livepatching version.c
Date: Thu, 14 Dec 2023 09:54:24 +0100
Message-ID: <20231214085424.16890-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Currently version.o is explicitly ignored as the file would change as a result
of the orignal and the patched build having possibly different dates, times or
changeset strings (by the patched build appending -dirty).

Fix such difference by exporting the date and time from the build script, so
that both builds share the same build time.  The changeset string gets set in
.scmversion, and is cleaned on script exit if it wasn't present initially. This
allows checking for changes in version.c, since the rest of fields need to be
manually changed in order to produce different output.

Setting XEN_BUILD_{DATE,TIME} as an environment variable and .scmversion has
been supported since before livepatch support was added to Xen, so it's safe to
export those variables unconditionally.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - Also ensure consistent changeset version.
---
 livepatch-build | 14 ++++++++++++++
 livepatch-gcc   |  2 --
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/livepatch-build b/livepatch-build
index e2ccce4f7fd7..332d26f5c6b6 100755
--- a/livepatch-build
+++ b/livepatch-build
@@ -392,6 +392,10 @@ echo "Output directory: $outputarg"
 echo "================================================"
 echo
 
+cleanup_version() {
+    rm -rf "${SRCDIR}/xen/.scmversion"
+}
+
 if [ "${SKIP}" != "build" ]; then
     # Make sure output directory doesn't exist, and create it.
     [ -e "$outputarg" ] && die "Output directory exists"
@@ -417,6 +421,16 @@ if [ "${SKIP}" != "build" ]; then
 
     export CROSS_COMPILE="${TOOLSDIR}/livepatch-gcc "
 
+    # Force same date and time to prevent unwanted changes in version.c
+    export XEN_BUILD_DATE=`LC_ALL=C date`
+    export XEN_BUILD_TIME=`LC_ALL=C date +%T`
+
+    # Ensure uniform changeset between builds
+    if [ ! -e "${SRCDIR}/xen/.scmversion" ]; then
+        trap cleanup_version EXIT
+        echo "unavailable" > "${SRCDIR}/xen/.scmversion"
+    fi
+
     echo "Perform full initial build with ${CPUS} CPU(s)..."
     build_full
 
diff --git a/livepatch-gcc b/livepatch-gcc
index fcad80551aa0..e4cb6fb59029 100755
--- a/livepatch-gcc
+++ b/livepatch-gcc
@@ -33,7 +33,6 @@ if [[ "$TOOLCHAINCMD" =~ $GCC_RE ]] ; then
             obj=$2
             [[ $2 = */.tmp_*.o ]] && obj=${2/.tmp_/}
             case "$(basename $obj)" in
-            version.o|\
             debug.o|\
             check.o|\
             *.xen-syms.*.o|\
@@ -63,7 +62,6 @@ done
 elif [[ "$TOOLCHAINCMD" =~ $OBJCOPY_RE ]] ; then
     obj="${!#}"
     case "$(basename $obj)" in
-        version.o|\
         debug.o|\
         check.o|\
         boot.o|\

base-commit: 0ed8ef88dc300750696a64e89efa3b82502f6dc7
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:55:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:55:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654353.1021168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhVY-0000Y8-FO; Thu, 14 Dec 2023 08:55:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654353.1021168; Thu, 14 Dec 2023 08:55:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhVY-0000Y1-CX; Thu, 14 Dec 2023 08:55:52 +0000
Received: by outflank-mailman (input) for mailman id 654353;
 Thu, 14 Dec 2023 08:55:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+dVB=HZ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rDhVX-0000Xt-JB
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:55:51 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2061d.outbound.protection.outlook.com
 [2a01:111:f400:fe59::61d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9327ec49-9a5e-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 09:55:49 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DM8PR12MB5447.namprd12.prod.outlook.com (2603:10b6:8:36::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7091.28; Thu, 14 Dec 2023 08:55:45 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Thu, 14 Dec 2023
 08:55: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: 9327ec49-9a5e-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KlGCrKewGqPoY+1r8Q7L6W/Q7eIWjDnBiVae7n2FRns07XbjCpcFrM9dPxdeCp0lFsFa2351Q2lTGV+dKFnwEZpa05+TIyby7LTfqunKfrdQn5/3S9OJgY45JF0KZraIUMAXnBOZPJbYI+9Nm+/5U8qTEVwCNJoxLxddCnR3lFLOvpF8ISVENaj6rKYzp5prtDe+nk+RvDAApcbwYSVn6hc/NMxDEkOdFC2QHhL1a29BmgzAvRyVVkOdiHRRjpBBSGcmAJP9kjXcGj7BD2XJbO0uz2T9RWjLyoy490vTyGMAR+LfJb0yIxIQXx3dNMbyD+h4gFpE0FPdUVee8PzaPQ==
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=u9RaFfcQpcZv1hJ14RTSBhp6n9Z8IEpv9O/reChr86M=;
 b=EoaJz5Pq6d8ZLcmv4uc+FWUo8bwNihAcqlYkURr9ZL1+KOPDF5kKjlmJjpOy2R5jzCveUSibiFuUSw3MUNXijQoObtnoFSKcX5iG5XuIAOAO9AzxDsZBlVV6ZHVZWfD0aSN3dtb4oA7oxODXZ4R0+o2qEPQNkXPdvysrxCnQ9j05LSZWlL+d7lLOxPhp2L+NmzqKtwKnGyekQh5gTj/88xXBuU0xJFErYUaNMPD/FSoaUvVICWnRO5iBUses9UztE13Fq+qKRJ+E8hf/FsFXC9oYg27t/h/0XTbwuoV1n4tLHjr7UtCYhAPPpQmt4isW1EzRuz8mTKnfvnhPlAxXtQ==
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=u9RaFfcQpcZv1hJ14RTSBhp6n9Z8IEpv9O/reChr86M=;
 b=jD8djG9SsBTb5BdpkwOb+jqhq3pNkmUNr7OMDm4ko9pNB290QhoCJsJBT/MJ7fn2wY9qTwtAzIibk8jXTZQt6pfq0hVsuqxp0pO2XAXLGt2/wqBQ1EbHdCPY5Z0AFrCZb4jQKrIl+g8saqRvQJ1MPa9GWM/UZabZRVPVTrSyCRw=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Daniel P .
 Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Topic: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Index:
 AQHaK4ebBv/EWT+No0GAUR8lU4172LCkNzqAgAGFPID//6gjAIABpqIA///CiwCAAi33AA==
Date: Thu, 14 Dec 2023 08:55:45 +0000
Message-ID:
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
In-Reply-To: <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5364.namprd12.prod.outlook.com
 (15.20.7113.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_|DM8PR12MB5447:EE_
x-ms-office365-filtering-correlation-id: adc9bbac-b258-4e1e-c78d-08dbfc827599
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 0YeQtzAHe4G2UnR1AB9rLZ0EqKaii7s/e21loAv5v3XrSKXvuMgBRWwbZ7x+arMbNGLR41PH6WbABOudDuVxpMGEnbIS5E5owH3Q7Hdr53hSK6ADA8Umg0xK27ap/m2vkM8w2xZvoSvOjqly7HSLGWmQA9W3U5XoMCGJ/shd2eZv69zx8JcEnLgHwzKR3PXRwrL29Dzbe7f0fSsagvBceIAbBMNJXBIVEpBNkTxfjni1fRXK8UvErNO5MxmBJndii6g9ZRZILbMAtJ8fO/rsoXFAz4OitXXNarZQpJTa3RCMfaFFCKdVN19N2fXUFpO1dtNY/RiC3uZzv/KMT9/cho3rWyKIo9sLufdf62uOE/vyD7PL2rnIBUiW0QM3wqnOSCkKx9wPH8+y/DN1p0taWI0FirFGLoYF9YOHXctjg0h3Rj9g04Tz9rUbviLtk2jxwy6AMDdhLQRnNhyILyVYYS9XJ+YNEZfKUffnEdW2HFbWVMTtUpDrJSp5r3NIwRfCoreqNyncxTtsTV/+HBNWHZIDpwOUHl35JtP7oVPduxpyHpzlEuhq4VttGarIZK6W+cs5FLyns5/r76TYUuy0/VxLsTIPaoGok5gwWwseJqMMyT/3X9CrS6uSHVUUMybI
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:(13230031)(346002)(366004)(39860400002)(396003)(376002)(136003)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(83380400001)(9686003)(122000001)(26005)(38100700002)(8676002)(8936002)(52536014)(4326008)(316002)(2906002)(5660300002)(71200400001)(478600001)(53546011)(6506007)(7696005)(41300700001)(6916009)(54906003)(64756008)(66446008)(66476007)(66946007)(66556008)(76116006)(38070700009)(33656002)(55016003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dURNck1RTEdCNGN5dzA0NGQ5OXFldmloZ25CaG91WUlGblR1NlI0S2FLQyto?=
 =?utf-8?B?MU5aZ0RtdVJVVDk3bkZvTkRyYlA0UTExekRwSHczbXhMV1pvRXFhcHQzR2hE?=
 =?utf-8?B?bFN6OVBxMG5vdHIxeHliSzNraEY5MklERUhSRlBGejQ0MGMxMVIyNlB3QlJn?=
 =?utf-8?B?NTlsY1lXaXRPWm5vV1FMV2hOS29xWk1xa1luU2MzalpGY1pSSzY1YU9UY2Fa?=
 =?utf-8?B?K09MSkhLN2tiU0s1aHJYdXJuNC8wT2xiT1k4bG9MbGZGTy9WbnJ6Yk5Hbnpz?=
 =?utf-8?B?TG9SNnUxT2dhQ3BzdVowUVVkd1F4aWl3TEJtaWhjTGFTRGZESHR3NTh6YklR?=
 =?utf-8?B?bXhIamg0MVVIUkRhR0gzaEpRMmtLRDRBY291UFRWVGk1bFZIaXh0QXB6d1hl?=
 =?utf-8?B?aWRqUEdTMklCWkhoMGY5M0VUeW1JZk04NmZmSWIrMHp1blUveG9mY3U1a0t0?=
 =?utf-8?B?VTV6eVVqa3NlcERGcndKYVNwUHV2RXp4TTlZeVVKS3pTR1lMTEF1c3N0c3p0?=
 =?utf-8?B?bnVWQmdrZ1M3dTlrc1RUMTdxWWVocFU5K2lnRmFydWUxVTZPa2ZzcWFJbG9y?=
 =?utf-8?B?cndtbmJEazBhY1hXK0h6RFpEM3YxWitUWjh1cHluR3FjdDB2bFYxQVoxNjV3?=
 =?utf-8?B?TndJZ3ppVFlVU3BYWlhWZjNoelRJUE43SkFDZTBZdXdybXRrRjlTV25JYXE2?=
 =?utf-8?B?a3hFSk9na2Z1U2pqT3F1SDZsdjlSZnNrL253aC9JVjB5ZlRhZDJ4SWdMOStV?=
 =?utf-8?B?UGNXZ2c5NkVSM3hyOHpKM3p4MEx6a3FjRS84cDRGeWlVa3NiM05acVFXdks3?=
 =?utf-8?B?dUt2Yi91NjM3OERlWkUwai9hRUhzdSsyWHk2L3RFejkrYTlqZkVpTmM2TWN2?=
 =?utf-8?B?RWRzWG8wazd6cHFnZHRYdGx2bjhHTXlrTjlMNnQwT0JQUmprZkNmSGk0Z1dY?=
 =?utf-8?B?ZGlaUnZaYVFhYjBWM0VncHdVMlh6RHpxSWxvUHFjWkMwM0pRMWlLK05JT2U0?=
 =?utf-8?B?Tmd3SnIxcEVZQ0pYRTFYL250THZqRVo1TWsxYmUwZFF4Q3J4T2ViK212Ykh5?=
 =?utf-8?B?OGF4ODJxTU9RREVHeXh5blNUZDFIeTEwaHFKbzlzY3FuelQ5dFBCN2VjNWF0?=
 =?utf-8?B?bklad1BKOU05Sm9TQW5ZZXdjNURRa0JhQzIwT01NQXFqY2liYWp2UFJWb3Vv?=
 =?utf-8?B?WkUyK3loUUpMVnBzdWNzRzgwZXBqaGFibExNakxFZjdSTU1CRnZUTDhkaVhm?=
 =?utf-8?B?aUErZmJOZzgrY2txVU56RGlZeEZYU2E2SG9iSUpOOVNpUnNhSWxTdU9HOE5h?=
 =?utf-8?B?QjRGQzlxV0haK1MzMUVwd1diNWhEVitsUnN4ZTZJcFN5bWNCVmhmMTFVZHZy?=
 =?utf-8?B?OHRuNS84b05EQi9HbjVDOXBCWk5BdlE0RTFSZ1Bvb25QU1RlQ1VzQ0I1ejNL?=
 =?utf-8?B?ZDR6SFUvRWF6eW5zS1c0QUQxbEdoNHFTY0NWWVllM25EaTFQb3lQZ0Vod0Zp?=
 =?utf-8?B?QmhMckRGQUpGYVFSNGlvdUwwN3lQODRwWVdZS1VBSlBMM2owTVV3VFIvb3lS?=
 =?utf-8?B?MWVaVXFuZFY3emJJNUk3dThJL3JmNXNsckw1TElISjRCRzJlNE8rS2JrWlM1?=
 =?utf-8?B?MTlLQktzYVQ5dWRxVWxVeXArcDdsdzZ2MCt5TkZDaUdBdElIQUtNVitKTG9x?=
 =?utf-8?B?MHl4T3lWYi9YbHNnK0NESVRuUlFuamd6V2o2S3JoNGNkUFdkWWN1ZGp4WGZV?=
 =?utf-8?B?cmt0K3NzaDlob3hiaEJneHRQc3dROUFZMDUzLzRMQ1hZZHdKUnBaUTlSYklQ?=
 =?utf-8?B?TlJ5clJHQ1RZYm5JUjI4NUl5MVpBWG14dmlmWG4zK3FlU05ZbkQvYzcvTlRB?=
 =?utf-8?B?Q3lrcmhvTWhsSVYrOW9xTTgzN1ExWVpPbVYvWjduTlh1N2ZrQ2xSWS9MVUEr?=
 =?utf-8?B?ZlI1ZFBPQTNTVHZrRXFaT0lINnNwNCtMMitsQXdYTUVlSk1KNzAwTU9La05D?=
 =?utf-8?B?eHNxcXUwQy9zTlpZZ0MzK0lLR2ZIMFY1R3ZTSTdEUGxGbEFGN21Qc3lRK201?=
 =?utf-8?B?VWtGeDRKK2xhRUh5T3NrOFh6dEpmUHM0NklyTCtCWjBLRlZNTHVwVkl4c0pa?=
 =?utf-8?Q?pYX4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A42ED27F6895F342ACE27229990F4EEB@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: adc9bbac-b258-4e1e-c78d-08dbfc827599
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2023 08:55:45.1655
 (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: 8+csyqVDvsl1HLmNeCBmeJANMDNjxQ9lec639s6PonpjoyBI7pIT9xSKFVdFdi4Vbsy312NMWFSKzRa5vj1IJA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR12MB5447

T24gMjAyMy8xMi8xMyAxNTowMywgSmFuIEJldWxpY2ggd3JvdGU6DQo+IE9uIDEzLjEyLjIwMjMg
MDM6NDcsIENoZW4sIEppcWlhbiB3cm90ZToNCj4+IE9uIDIwMjMvMTIvMTIgMTc6MzAsIEphbiBC
ZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDEyLjEyLjIwMjMgMDc6NDksIENoZW4sIEppcWlhbiB3cm90
ZToNCj4+Pj4gT24gMjAyMy8xMi8xMSAyMzozMSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+
Pj4+IE9uIE1vbiwgRGVjIDExLCAyMDIzIGF0IDEyOjQwOjA4QU0gKzA4MDAsIEppcWlhbiBDaGVu
IHdyb3RlOg0KPj4+Pj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMNCj4+Pj4+
PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jDQo+Pj4+Pj4gQEAgLTcyLDggKzcy
LDExIEBAIGxvbmcgaHZtX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJB
TSh2b2lkKSBhcmcpDQo+Pj4+Pj4gIA0KPj4+Pj4+ICAgICAgc3dpdGNoICggY21kICkNCj4+Pj4+
PiAgICAgIHsNCj4+Pj4+PiArICAgIGNhc2UgUEhZU0RFVk9QX3NldHVwX2dzaToNCj4+Pj4+DQo+
Pj4+PiBJIHRoaW5rIGdpdmVuIHRoZSBuZXcgYXBwcm9hY2ggb24gdGhlIExpbnV4IHNpZGUgcGF0
Y2hlcywgd2hlcmUNCj4+Pj4+IHBjaWJhY2sgd2lsbCBjb25maWd1cmUgdGhlIGludGVycnVwdCwg
dGhlcmUncyBubyBuZWVkIHRvIGV4cG9zZQ0KPj4+Pj4gc2V0dXBfZ3NpIGFueW1vcmU/DQo+Pj4+
IFRoZSBsYXRlc3QgcGF0Y2godGhlIHNlY29uZCBwYXRjaCBvZiB2MyBvbiBrZXJuZWwgc2lkZSkg
ZG9lcyBzZXR1cF9nc2kgYW5kIG1hcF9waXJxIGZvciBwYXNzdGhyb3VnaCBkZXZpY2UgaW4gcGNp
YmFjaywgc28gd2UgbmVlZCB0aGlzIGFuZCBiZWxvdy4NCj4+Pj4NCj4+Pj4+DQo+Pj4+Pj4gICAg
ICBjYXNlIFBIWVNERVZPUF9tYXBfcGlycToNCj4+Pj4+PiAgICAgIGNhc2UgUEhZU0RFVk9QX3Vu
bWFwX3BpcnE6DQo+Pj4+Pj4gKyAgICAgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oY3VycmQp
ICkNCj4+Pj4+PiArICAgICAgICAgICAgYnJlYWs7DQo+Pj4+Pg0KPj4+Pj4gQWxzbyBKYW4gYWxy
ZWFkeSBwb2ludGVkIHRoaXMgb3V0IGluIHYyOiB0aGlzIGh5cGVyY2FsbCBuZWVkcyB0byBiZQ0K
Pj4+Pj4gbGltaXRlZCBzbyBhIFBWSCBkb20wIGNhbm5vdCBleGVjdXRlIGl0IGFnYWluc3QgaXRz
ZWxmLiAgSU9XOiByZWZ1c2UNCj4+Pj4+IHRoZSBoeXBlcmNhbGwgaWYgRE9NSURfU0VMRiBvciB0
aGUgcGFzc2VkIGRvbWlkIG1hdGNoZXMgdGhlIGN1cnJlbnQNCj4+Pj4+IGRvbWFpbiBkb21pZC4N
Cj4+Pj4gWWVzLCBJIHJlbWVtYmVyIEphbidzIHN1Z2dlc3Rpb24sIGJ1dCBzaW5jZSB0aGUgbGF0
ZXN0IHBhdGNoKHRoZSBzZWNvbmQgcGF0Y2ggb2YgdjMgb24ga2VybmVsIHNpZGUpIGhhcyBjaGFu
Z2UgdGhlIGltcGxlbWVudGF0aW9uLCBpdCBkb2VzIHNldHVwX2dzaSBhbmQgbWFwX3BpcnEgZm9y
IGRvbTAgaXRzZWxmLCBzbyBJIGRpZG4ndCBhZGQgdGhlIERPTUlEX1NFTEYgY2hlY2suDQo+Pj4N
Cj4+PiBBbmQgd2h5IGV4YWN0bHkgd291bGQgaXQgZG8gc3BlY2lmaWNhbGx5IHRoZSBtYXBfcGly
cT8gKEV2ZW4gdGhlIHNldHVwX2dzaQ0KPj4+IGxvb2tzIHF1ZXN0aW9uYWJsZSB0byBtZSwgYnV0
IHRoZXJlIG1pZ2h0IGJlIHJlYXNvbnMgdGhlcmUuKQ0KPj4gTWFwX3BpcnEgaXMgdG8gc29sdmUg
dGhlIGNoZWNrIGZhaWx1cmUgcHJvYmxlbS4gKHBjaV9hZGRfZG1fZG9uZS0+IHhjX2RvbWFpbl9p
cnFfcGVybWlzc2lvbi0+IFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb24tPiBwaXJxX2FjY2Vzc19w
ZXJtaXR0ZWQtPmRvbWFpbl9waXJxX3RvX2lycS0+cmV0dXJuIGlycSBpcyAwKQ0KPj4gU2V0dXBf
Z3NpIGlzIGJlY2F1c2UgdGhlIGdzaSBpcyBuZXZlciBiZSB1bm1hc2tlZCwgc28gdGhlIGdzaSBp
cyBuZXZlciBiZSByZWdpc3RlcmVkKCB2aW9hcGljX2h3ZG9tX21hcF9nc2ktPiBtcF9yZWdpc3Rl
cl9nc2kgaXMgbmV2ZXIgYmUgY2FsbGVkKS4NCj4gDQo+IEFuZCBpdCB3YXMgcHJldmlvdXNseSBt
YWRlIHByZXR0eSBjbGVhciBieSBSb2dlciwgSSB0aGluaywgdGhhdCBkb2luZyBhICJtYXAiDQo+
IGp1c3QgZm9yIHRoZSBwdXJwb3NlIG9mIGdyYW50aW5nIHBlcm1pc3Npb24gaXMsIHdlbGwsIGF0
IGJlc3QgYSB0ZW1wb3JhcnkNCj4gd29ya2Fyb3VuZCBpbiB0aGUgZWFybHkgZGV2ZWxvcG1lbnQg
cGhhc2UuIElmIHRoZXJlJ3MgcHJlc2VudGx5IG5vIGh5cGVyY2FsbA0KPiB0byBfb25seV8gZ3Jh
bnQgcGVybWlzc2lvbiB0byBJUlEsIHdlIG5lZWQgdG8gYWRkIG9uZS4NCkNvdWxkIHlvdSBwbGVh
c2UgZGVzY3JpYmUgaXQgaW4gZGV0YWlsPyBEbyB5b3UgbWVhbiB0byBhZGQgYSBuZXcgaHlwZXJj
YWxsIHRvIGdyYW50IGlycSBhY2Nlc3MgZm9yIGRvbTAgb3IgZG9tVT8NCkl0IHNlZW1zIFhFTl9E
T01DVExfaXJxX3Blcm1pc3Npb24gaXMgdGhlIGh5cGVyY2FsbCB0byBncmFudCBpcnEgYWNjZXNz
IGZyb20gZG9tMCB0byBkb21VKHNlZSBYRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9uLT4gaXJxX3Bl
cm1pdF9hY2Nlc3MpLiBUaGVyZSBpcyBubyBuZWVkIHRvIGFkZCBoeXBlcmNhbGwgdG8gZ3JhbnQg
aXJxIGFjY2Vzcy4NCldlIGZhaWxlZCBoZXJlIChYRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9uLT4g
cGlycV9hY2Nlc3NfcGVybWl0dGVkLT5kb21haW5fcGlycV90b19pcnEtPnJldHVybiBpcnEgaXMg
MCkgaXMgYmVjYXVzZSB0aGUgUFZIIGRvbTAgZGlkbid0IHVzZSBQSVJRLCBzbyB3ZSBjYW4ndCBn
ZXQgaXJxIGZyb20gcGlycSBpZiAiY3VycmVudCIgaXMgUFZIIGRvbTAuDQpTbywgaXQgc2VlbXMg
dGhlIGxvZ2ljIG9mIFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb24gaXMgbm90IHN1aXRhYmxlIHdo
ZW4gUFZIIGRvbTA/IE1heWJlIGl0IGRpcmVjdGx5IG5lZWRzIHRvIGdldCBpcnEgZnJvbSB0aGUg
Y2FsbGVyKGRvbVUpIGluc3RlYWQgb2YgImN1cnJlbnQiIGlmIHRoZSAiY3VycmVudCIgaGFzIG5v
IFBJUlEgZmxhZz8NCg0KPiBJbiBmYWN0ICJtYXAiIHdvdWxkIGxpa2VseSBiZXR0ZXIgbm90IGhh
dmUgZG9uZSB0d28gdGhpbmdzIGF0IGEgdGltZSBmcm9tIHRoZSB2ZXJ5IGJlZ2lubmluZyAuLi4N
Cj4gDQo+IEphbg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 08:57:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 08:57:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654356.1021178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhWh-00018N-Q1; Thu, 14 Dec 2023 08:57:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654356.1021178; Thu, 14 Dec 2023 08: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 1rDhWh-00018G-MZ; Thu, 14 Dec 2023 08:57:03 +0000
Received: by outflank-mailman (input) for mailman id 654356;
 Thu, 14 Dec 2023 08: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDhWg-000187-L4
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 08:57: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 bef4bda9-9a5e-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 09:57:01 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a22f2a28c16so290076166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 00:57:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 cu3-20020a170906ba8300b00a1d818ebcadsm9179844ejd.19.2023.12.14.00.57.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 00:57:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bef4bda9-9a5e-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702544221; x=1703149021; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=deaBW+/DdML7CUJQTraMIt7liSMXRSWBsIeHtj+ukCo=;
        b=QHeXWZUC/9eqDs9ae7y7Av4lwFbiUxE5O7DrmGaMG1d4KpVFNdlJ2GWPjbC1J3qzHM
         OShXVgY5l6FzAKXcbiyXPp/vIdP5LoD7N/+yPfV0j3tkwgPBu1vtrbTCkSYwPYYZujos
         MDKy7B+zDezqHc4180S/BcBFbki9gv6NYZ7e0LDej2xIsx+ayXNN/iaTc2972XHaqFIt
         wYwfeD/dJIRH/dmH9SU7+wjnMKi2bwULeFALmYuFpgchgTw0+WXCCQDJo6pPlCZfO+Vv
         ANTDn1PFUSDTMKx8LOXPusXfZldF3blD8/nTFGDOjn/4cUk5SJAdocw8NMLwz1RxEiOI
         9eNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702544221; x=1703149021;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=deaBW+/DdML7CUJQTraMIt7liSMXRSWBsIeHtj+ukCo=;
        b=Cx15WQUSlBTjGzqDngSbvug3OLaRlPuFpSI04LTE1SRXHSg5stqVBSPbX8c84E1fX1
         9CgSpuEZwneSLuXya9M7AhRWsFgFC3Hy3DEi25NVQxBZ+oH20MePFcNFe87pSWrIPW34
         FLQYI40yz8DNTKEyQH2hijHsUDdZYNpSnRCzcZxRhV5WQ+pq+cEDJQ4iuCCmccYMj+9F
         5NAqSaMqfTGmujua9FeiQomkTGsxtXqbxO69O/ynOSrjd20xxMOt7o/dgDfHSBB10XyF
         CbzQqt4Uj0JiPUpi72mJ3rUyvJ2vuIEI0Fkgmxrfy9IvVgoneKRomxSQzCd5FDwGBPyM
         YRzA==
X-Gm-Message-State: AOJu0YxAM9KN6Srho2WOTmxtJoTZCg7y0kbNzhY337jhB3olaQmuuAgv
	XV3VGKfKYBkcEkLHnOmLORJQ
X-Google-Smtp-Source: AGHT+IGb97bTrR8Hrn6loqZ3SSVSW2YHmegvZwcwzjWlISKltEu7ZBGkpQD6BucFCqft4jiQx3bYGg==
X-Received: by 2002:a17:906:454f:b0:a19:a19b:421d with SMTP id s15-20020a170906454f00b00a19a19b421dmr2720578ejq.136.1702544221319;
        Thu, 14 Dec 2023 00:57:01 -0800 (PST)
Message-ID: <7222b529-ab39-4a18-a448-2a007992b9aa@suse.com>
Date: Thu, 14 Dec 2023 09:57:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: X86: MISRA C:2012 Rule 5.6
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>
References: <9de5ec9d-1ebd-4fa9-89d4-e962d7c377e0@bugseng.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>, xen-devel@lists.xenproject.org,
 "consulting@bugseng.com" <consulting@bugseng.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: <9de5ec9d-1ebd-4fa9-89d4-e962d7c377e0@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.12.2023 12:44, Federico Serafini wrote:
> I have another question regarding Rule 5.6 ("A `typedef' name shall be
> a unique identifier"), this time for X86:
> the violations left [1] involve guest_intpte_t, guest_l1e_t and
> guest_l2e_t, which seem to be deliberately defined differently depending
> on the number of guest paging levels.
> I would like to propose a deviation for these types, do you agree?

Yes. In fact I think we said so already when discussing this rule. The
whole rebuild-same-file-for-multiple-purposes can hardly work without
something along the lines of multiple ways of defining the same macros
and/or typedefs for each of the instances.

Jan

> [1]
> https://saas.eclairit.com:3787/fs/var/local/eclair/XEN.ecdf/ECLAIR_normal/staging/X86_64-2023/446/PROJECT.ecd;/by_service/MC3R1.R5.6.html
> 
> Regards



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 09:03:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 09:03:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654361.1021188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhcz-0003WP-FT; Thu, 14 Dec 2023 09:03:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654361.1021188; Thu, 14 Dec 2023 09:03: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 1rDhcz-0003WI-Br; Thu, 14 Dec 2023 09:03:33 +0000
Received: by outflank-mailman (input) for mailman id 654361;
 Thu, 14 Dec 2023 09:03: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=+dVB=HZ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rDhcx-0003Ux-TN
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 09:03:32 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062f.outbound.protection.outlook.com
 [2a01:111:f400:7e88::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a58c2bca-9a5f-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 10:03:29 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DM8PR12MB5447.namprd12.prod.outlook.com (2603:10b6:8:36::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7091.28; Thu, 14 Dec 2023 09:03:26 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7068.033; Thu, 14 Dec 2023
 09:03:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a58c2bca-9a5f-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=i5TuH6qm9sIaFJo9n3S0YOhfFMHRGf7qw6yT+OVI8Kwf+bjfjwEw1MWJfAigsBdlA7UG2S3RkzDF4Y9psNom4+DbiT0+X4zJjoDEKEkAnzHFMdS4rnbZyME4bQ87n1SzD2DarOihT9QlGKbq/ZYVcpWq8oErpA2i1c9bTy5hXH8TLvpReU9gV1S7eF3hcdvgwzEPSzN3KW8dSXvPvSLsVhKP2RhzOBrw9bKf7K+FK7mcMTwuoThFdmicKBEWiAE5dkgAmQwd2QpSz9u+Ftj+gQaWP+Uc2WJsJAuF5oRqVJEQ9nN4gYZFscvWnDzwMfChmwi7mMydqyNMnj8/NcU4LQ==
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=qiD1twIm+7M1Z3FKTgqVyLuFi2s6IY/iZq7/xn5tyCk=;
 b=F/ZtMkJXDGlaE7xIZZ6OrTPWGnWi+CowOOlxwDOP6hsaivyFHwLcHOk7jO5f+P18Ksbi+jaLtKzgAYWolMYQAznd1hGrU2m7YhLFY06qC1RCXe0EEJuXurVSwnAdIdAF/Z1Z0ePM+QNCv+56LViQ8PvtPiCpK2pghzcm+K6zHgFXnWfhrmgTcHJwkZYQrc4fSauSRKiM2KMSIrBStoswiU1R3bMeRl1claP+ZLUSIu3mIvLAS+Bs6Y+4tpFAffCaBSyyV7DPb2O+D7uYiumgDINt2FjQv1y8LnG32cb0p4+vuUc9VQ4/8ReNFk+/za70APlLSI+59fReAYfWoHE7yQ==
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=qiD1twIm+7M1Z3FKTgqVyLuFi2s6IY/iZq7/xn5tyCk=;
 b=guC/ZiTYbzVQ80E15lPVZu3IRZOHUiGPO1Tupo697FXEdwBLS356w7WKI1tGBo/7CAwZ3IrLvtlLez6pBjCsfIQi1kQj7MrzUhzn6sRDPeRBxcJ+vN1ynl15712sC2H6KZMywB5eGT3NGIOKG8t196hJrvXzsrXlcZVBEVRmkfU=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "linux-pci@vger.kernel.org"
	<linux-pci@vger.kernel.org>, "linux-acpi@vger.kernel.org"
	<linux-acpi@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Deucher, Alexander"
	<Alexander.Deucher@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Thread-Topic: [RFC KERNEL PATCH v3 3/3] PCI/sysfs: Add gsi sysfs for pci_dev
Thread-Index:
 AQHaK4Q534ViUL7xiE2p4ymr6ObEurCkX+6AgAFU/YD//6xNgIABr6aAgAATSoCAAcFZAP//l6EAgACJ0wA=
Date: Thu, 14 Dec 2023 09:03:26 +0000
Message-ID:
 <BL1PR12MB5849A269A09CB3837F2B3FA9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20231210161519.1550860-1-Jiqian.Chen@amd.com>
 <20231210161519.1550860-4-Jiqian.Chen@amd.com> <ZXdNf0HWs4nAVPeF@macbook>
 <BL1PR12MB584910C2E370BBCC8A312733E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXglU0EtBrRNiWVp@macbook>
 <BL1PR12MB584973D751EB57C3DE766AEEE78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXmfmbb4S8Iuy7si@macbook>
 <BL1PR12MB584911B4DFF4D9ED65CF92F0E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXrA_OocbBkFAkM-@macbook>
In-Reply-To: <ZXrA_OocbBkFAkM-@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5364.namprd12.prod.outlook.com
 (15.20.7113.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_|DM8PR12MB5447:EE_
x-ms-office365-filtering-correlation-id: 06a60244-423f-4c64-b84b-08dbfc838850
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 qBAWReC55Ze/b1bMr4HgNrXkCGrgpJohgc28dt/hgNg5Em+nGoD5JrUNw1z8SudqrYWQZAJt/pD6E7wUDn2gTH7ZVq5jfLEIjBG8x9lH1iC4LnS0BxLZYJmD+WtyuGXDViuQjEIMkjTOsdX2CHM6f4oczF4FCXLy0q85G8NoMVHRoe3Lj/y9OBZhd6lzR3OJjNYyfWCC+08t8N9uhZnPugTV0rHSXBscNsUlaoEQ71JnODRDjygFQoa4Z1YOHFFxYLeCm9cw62SG5xl1kLIp8dM41Lq5OZvQTxNwuM1khZeojqY0Wg7G7FBWd9YChxVGT/ot8CoF3OSnlO8+eOrulojrcsF24jeHESlg903npjFuCnnpLf/m5EEHNWEUJ4TTBE71PnksOQnrnCqHcdNIjrL398HOSXpFXDNTFar9GMDsKkIkWJ/CrhcqS41Jt2PlKts+n2joTRYkXjsDiR4yZ+9WJNq1K2gOUtvhQltretdn72wZB7rFrheD6Qb+RHPJ8FZAgLphdrERHensLn6/nVUNc8BjYgfu6kYmMAJgLhlz8rLgEBIiqzz5H39AGlWO0YMjBv2QFNHeNbSq5vPxTucxl3N4K8u0O34LT/waV4WYjAe+E6+pElvaEdGr9vDK
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:(13230031)(346002)(366004)(39860400002)(396003)(376002)(136003)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(83380400001)(9686003)(122000001)(26005)(38100700002)(8676002)(8936002)(52536014)(4326008)(316002)(2906002)(5660300002)(71200400001)(478600001)(53546011)(6506007)(7696005)(41300700001)(6916009)(54906003)(64756008)(66446008)(66476007)(66946007)(66556008)(76116006)(38070700009)(33656002)(55016003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QkdWWUNYTnU2dys3UVA0Z0x5ZUM3ay9oWGJOOVhGdUR4VitoWHNKRTVGQ0xh?=
 =?utf-8?B?SlBMWjkycStBNFc2allCQUJiZkt5cTh2b0YvRWg1ajk2VVNXZU8xakJ0T2tY?=
 =?utf-8?B?bHdSZWdUNys4QnFrQjVYckV1bWtWeEk5SmFTL0ZPNlIxUHBWZkgwbWZQL0ww?=
 =?utf-8?B?TFJGeUdoSkozbDYzQWZJQmMrVVNjeEo2MDczVEZEczdrSFNCNUxNWENSbmQw?=
 =?utf-8?B?OFYyMU42ejBBVXVoUytTemJYcVY5cEdYRjBKR2xacDdlWVBETlhGRnRXaFAx?=
 =?utf-8?B?c2w4U2xvNm5rUlVyd1pwSDMvMUpIaWF4QjhOTC9tdDNsbWMxaEFXNVhLL3I4?=
 =?utf-8?B?RmRWWjFPaE5HdktzNmlqOU44MFBzSzVBTVFIbFN0YkxTRlk3Z0RpM0Y2WTVI?=
 =?utf-8?B?a1VvL3RXVUQ1QlI5MXVER0JGdUQ1azF3VWpETVZRZWxNRjNXMW1jTjZhdUhU?=
 =?utf-8?B?ZnJrbmZQZElmRFQxdC9Cc2EwMm5Ua3hiYTBId3dLZzc3QnRKY2VHRXJtYmY0?=
 =?utf-8?B?R2JkeHVCMVJxcEhUWGlIeEFlMjA3SURwMklQRjRjZHdrUkVxN3MwaGYwV1R4?=
 =?utf-8?B?NGVMWERBVnlvcnNKb3NQNzZ4ZHFqMkcrL0V3bHNXVENzMjAvdStFcUk1STBa?=
 =?utf-8?B?V0hwVmFiS296aXJHeFRCQ0lPU0VMZGptdFA2bXJGN2xvdEdkQ0ZNczJ0dDJz?=
 =?utf-8?B?UzZHTkVZbVJTTklFeFB5NzNJak9XVkFlcHZSUWVjUVpZcVltRUVBaGVuaUZL?=
 =?utf-8?B?amJxRm9hSEROVUZZcDdZNW9EOGJ1NWJFZXkxOGc2QW5CbmVxWTBJT1kvY3BD?=
 =?utf-8?B?ZS92ZVc0elV6T0pHYmRsOGFvRGo5d05rMlRJeUZyUHh3QjlZMDhNRWd3Z0h3?=
 =?utf-8?B?VzFsVTdUdjQ5aEJpRGdEUEhNdE9qY0dOMWwzWE0wM2R4R2RYVU9Ca2NNY0to?=
 =?utf-8?B?RVhRUEVjTzdqSDhQTU1VVGhtZGJwdmFiYmtpS09telJwUCtYWnlQN05jcjRx?=
 =?utf-8?B?MnpaVFZGZDVoVEJlSXRBR0VBR0dFbFlCRFFJbmFsOHlGTFRUY2QwMUlzYkpx?=
 =?utf-8?B?ZFNvU1puMGp6TlA3UGZqc2lMekpYcTZBYWtEMXZtV2o2VFNJd2FhRVh3WU1Q?=
 =?utf-8?B?RFpBZHhNU1MxajR4SlMzdk9CU3lHNGl6UHA1OERzZ0N6OUNDbUMxaWdZSHNH?=
 =?utf-8?B?UEE2ZFlXZnQrc1dhM1cxMFJMZ2RMUmk2Ym15RFczUTJMZWlkWEpkeXFaNVd5?=
 =?utf-8?B?WGtYWXMwd3kzR21XSDQ2aFNzL1FxdU96akdseEdZWlpYaUZqMHNjcHRxVVpY?=
 =?utf-8?B?bHdoeWd1YWt5eVpmTEhjNTdSWGdhNGZSU2lQK0J2WHZYMHVYZWlNL1pIamN2?=
 =?utf-8?B?R0pFYk5wVzFFYy9CS3J5VitVWEpDaVByMHZrRnJsTFpDbDRDckRJdG4xVkdo?=
 =?utf-8?B?a0hMWkZkcXBzOU9LZ1NUZEMrYkY3TTdRSUY5aDVQM3RPSzEyUm03UFpMOU13?=
 =?utf-8?B?RSt3eUJYR1NrSkV4NGhuMFRjNzkwd0N1RSt1OHdnQ09ZMVB1YjRDUjZuMWZF?=
 =?utf-8?B?QWtkM3ZweEhReGtVcHl4OVdpem4rM3NzMzFUZG5CT0NPdStRWXMrb0hENWp3?=
 =?utf-8?B?YWZabURaUlFoaERYWEw5dTZmK1dZUVZBYjBKMXNHV2JmeVp3Vm9qRDhwOFlD?=
 =?utf-8?B?eC9LVm84VzBCTXZkdUNVUXdqSGJ3RlRlNnhySFhlNFFPdFpPRXZTZEVFcUhC?=
 =?utf-8?B?Q0o1bGtsYzE1aWJGeUVseS9NbktVNmhtZHB2aDZOWDJYbDRQenJFV0xDRi9G?=
 =?utf-8?B?QjhFUmxhUGg1cTNTdGFWc21qYVg1cExOZHFGdnNsTW5jUk5wa25URXFBa0Vm?=
 =?utf-8?B?blRVNFN5bmRyR09sVzdDQll4L21yU3o3aVlHaXBGVWRWS0lNbjRrenFBU3JK?=
 =?utf-8?B?YWpxd1VsUUVURHYrSFd3dG9MeUc4WmgwV3hja1RkdXhDOTUwdnBocUNFUjEv?=
 =?utf-8?B?anhoRlVRZnFicVNIck1Zd0RCTlBFUDNiM1RLTDNjMS9NV294Ukh1K3NqNytY?=
 =?utf-8?B?VkE5bmJvelQyZXY4Q2V4NS84aXJlRnNUeGJPbWZYeENXdEIyMThoTE9URlcr?=
 =?utf-8?Q?JzoM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1D00D119ED4F2D4CB926337B6C059E16@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: 06a60244-423f-4c64-b84b-08dbfc838850
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2023 09:03:26.0520
 (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: dL7DoG0DRKanJiXGGpi2ldKXBWkpI7Gth9o1uNAVmXaMG9E1f5YVfY7JI/GsQPRmVjePANYhzwxkcJFCid79LA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR12MB5447

T24gMjAyMy8xMi8xNCAxNjo0NiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gVGh1LCBE
ZWMgMTQsIDIwMjMgYXQgMDc6MDg6MzJBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
T24gMjAyMy8xMi8xMyAyMDoxMiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBXZWQs
IERlYyAxMywgMjAyMyBhdCAwMzozMToyMUFNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+
Pj4+IE9uIDIwMjMvMTIvMTIgMTc6MTgsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+PiBP
biBUdWUsIERlYyAxMiwgMjAyMyBhdCAwNjozNDoyN0FNICswMDAwLCBDaGVuLCBKaXFpYW4gd3Jv
dGU6DQo+Pj4+Pj4NCj4+Pj4+PiBPbiAyMDIzLzEyLzEyIDAxOjU3LCBSb2dlciBQYXUgTW9ubsOp
IHdyb3RlOg0KPj4+Pj4+PiBPbiBNb24sIERlYyAxMSwgMjAyMyBhdCAxMjoxNToxOUFNICswODAw
LCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+Pj4+Pj4+IFRoZXJlIGlzIGEgbmVlZCBmb3Igc29tZSBz
Y2VuYXJpb3MgdG8gdXNlIGdzaSBzeXNmcy4NCj4+Pj4+Pj4+IEZvciBleGFtcGxlLCB3aGVuIHhl
biBwYXNzdGhyb3VnaCBhIGRldmljZSB0byBkdW1VLCBpdCB3aWxsDQo+Pj4+Pj4+PiB1c2UgZ3Np
IHRvIG1hcCBwaXJxLCBidXQgY3VycmVudGx5IHVzZXJzcGFjZSBjYW4ndCBnZXQgZ3NpDQo+Pj4+
Pj4+PiBudW1iZXIuDQo+Pj4+Pj4+PiBTbywgYWRkIGdzaSBzeXNmcyBmb3IgdGhhdCBhbmQgZm9y
IG90aGVyIHBvdGVudGlhbCBzY2VuYXJpb3MuDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gQ28tZGV2ZWxv
cGVkLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPg0KPj4+Pj4+Pj4gU2lnbmVkLW9m
Zi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+Pj4+Pj4+PiAtLS0NCj4+
Pj4+Pj4+ICBkcml2ZXJzL2FjcGkvcGNpX2lycS5jICB8ICAxICsNCj4+Pj4+Pj4+ICBkcml2ZXJz
L3BjaS9wY2ktc3lzZnMuYyB8IDExICsrKysrKysrKysrDQo+Pj4+Pj4+PiAgaW5jbHVkZS9saW51
eC9wY2kuaCAgICAgfCAgMiArKw0KPj4+Pj4+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0
aW9ucygrKQ0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcGNp
X2lycS5jIGIvZHJpdmVycy9hY3BpL3BjaV9pcnEuYw0KPj4+Pj4+Pj4gaW5kZXggNjMwZmUwYTM0
YmM2Li43MzlhNTg3NTVkZjIgMTAwNjQ0DQo+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2FjcGkvcGNp
X2lycS5jDQo+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2FjcGkvcGNpX2lycS5jDQo+Pj4+Pj4+PiBA
QCAtNDQ5LDYgKzQ0OSw3IEBAIGludCBhY3BpX3BjaV9pcnFfZW5hYmxlKHN0cnVjdCBwY2lfZGV2
ICpkZXYpDQo+Pj4+Pj4+PiAgCQlrZnJlZShlbnRyeSk7DQo+Pj4+Pj4+PiAgCQlyZXR1cm4gMDsN
Cj4+Pj4+Pj4+ICAJfQ0KPj4+Pj4+Pj4gKwlkZXYtPmdzaSA9IGdzaTsNCj4+Pj4+Pj4NCj4+Pj4+
Pj4gSXQgd291bGQgYmUgYmV0dGVyIGlmIHRoZSBnc2kgaWYgZmV0Y2hlZCB3aXRob3V0IHJlcXVp
cmluZyBjYWxsaW5nDQo+Pj4+Pj4+IGFjcGlfcGNpX2lycV9lbmFibGUoKSwgYXMgdGhlIGdzaSBk
b2Vzbid0IHJlcXVpcmUgdGhlIGludGVycnVwdCB0byBiZQ0KPj4+Pj4+PiBlbmFibGVkLiAgVGhl
IGdzaSBpcyBrbm93biBhdCBib290IHRpbWUgYW5kIHdvbid0IGNoYW5nZSBmb3IgdGhlDQo+Pj4+
Pj4+IGxpZmV0aW1lIG9mIHRoZSBkZXZpY2UuDQo+Pj4+Pj4gRG8geW91IGhhdmUgYW55IHN1Z2dl
c3QgcGxhY2VzIHRvIGRvIHRoaXM/DQo+Pj4+Pg0KPj4+Pj4gSSdtIG5vdCBhbiBleHBlcnQgb24g
dGhpcywgYnV0IGRyaXZlcnMvcGNpL3BjaS1zeXNmcy5jIHdvdWxkIHNlZW0gbGlrZQ0KPj4+Pj4g
YSBiZXR0ZXIgcGxhY2UsIHRvZ2V0aGVyIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHJlc291cmNlcy4N
Cj4+Pj4gSSdtIG5vdCBmYW1pbGlhciB3aXRoIHRoaXMgdG9vLiBCdXQgaXQgc2VlbXMgcGNpLXN5
c2ZzLmMgb25seSBjcmVhdGVzIHN5c2ZzIG5vZGUgYW5kIHN1cHBvcnRzIHRoZSByZWFkL3dyaXRl
IG1ldGhvZCB3aXRob3V0IGluaXRpYWxpemluZyB0aGUgdmFsdWVzLg0KPj4+PiBJZiB3YW50IHRv
IGluaXRpYWxpemUgdGhlIHZhbHVlIG9mIGdzaSBoZXJlLiBBbiBhcHByb2FjaCB0byBpbml0aWFs
aXplIGl0IGlzIHRvIGNhbGwgYWNwaV9wY2lfaXJxX2xvb2t1cCB0byBnZXQgZ3NpIG51bWJlciB3
aGVuIHRoZSBmaXJzdCB0aW1lIGl0IGlzIHJlYWQ/DQo+Pj4NCj4+PiBIbSwgbWF5YmUsIEkgZG9u
J3QgcmVhbGx5IGhhdmUgbXVjaCBleHBlcmllbmNlIHdpdGggc3lzZnMsIHNvIGRvbid0DQo+Pj4g
a25vdyBob3cgbm9kZXMgYXJlIHVzdWFsbHkgaW5pdGlhbGl6ZWQuDQo+PiBNYXliZSB0aGUgbWFp
bnRhaW5lcnMgb2Ygc3lzZnMgY2FuIGdpdmUgc29tZSBzdWdnZXN0IHBsYWNlcyB0byBpbml0aWFs
aXplIHRoZSB2YWx1ZSBvZiBnc2kuDQo+Pg0KPj4+DQo+Pj4+Pg0KPj4+Pj4gTWF5YmUgbXkgdW5k
ZXJzdGFuZGluZyBpcyBpbmNvcnJlY3QsIGJ1dCBnaXZlbiB0aGUgc3VnZ2VzdGVkIHBsYWNlbWVu
dA0KPj4+Pj4gaW4gYWNwaV9wY2lfaXJxX2VuYWJsZSgpIEkgdGhpbmsgdGhlIGRldmljZSB3b3Vs
ZCBuZWVkIHRvIGJpbmQgdGhlDQo+Pj4+PiBpbnRlcnJ1cHQgaW4gb3JkZXIgZm9yIHRoZSBnc2kg
bm9kZSB0byBhcHBlYXIgb24gc3lzZnM/DQo+Pj4+IE5vLCBnc2kgc3lzZnMgaGFzIGV4aXN0ZWQg
dGhlcmUsIGluIGFjcGlfcGNpX2lycV9lbmFibGUgaXMgdG8gaW5pdGlhbGl6ZSB0aGUgdmFsdWUg
b2YgZ3NpLg0KPj4+Pg0KPj4+Pj4NCj4+Pj4+IFdvdWxkIHRoZSBjdXJyZW50IGFwcHJvYWNoIHdv
cmsgaWYgdGhlIGRldmljZSBpcyBhc3NpZ25lZCB0byBwY2liYWNrDQo+Pj4+PiBvbiB0aGUga2Vy
bmVsIGNvbW1hbmQgbGluZSwgYW5kIHRodXMgbmV2ZXIgb3duZWQgYnkgYW55IGRyaXZlciBpbg0K
Pj4+Pj4gZG9tMD8NCj4+Pj4gSWYgYXNzaWduZWQgdG8gcGNpYmFjaywgSSB0aGluayBwY2liYWNr
IHdpbGwgZW5hYmxlIHRoZSBkZXZpY2UsIGFuZCB0aGVuIGFjcGlfcGNpX2lycV9lbmFibGUgd2ls
bCBiZSBjYWxsZWQsIGFuZCB0aGVuIHRoZSBnc2kgd2lsbCBiZSBpbml0aWFsaXplZC4gU28sIGN1
cnJlbnQgY2FuIHdvcmsuDQo+Pj4NCj4+PiBUaGlzIG5lZWRzIGNoZWNraW5nIHRvIGJlIHN1cmUs
IEknbSBjZXJ0YWlubHkgbm90IHRoYXQgZmFtaWxpYXIuICBZb3UNCj4+PiB3b3VsZCBuZWVkIHRv
IGF0IGxlYXN0IHRlc3QgdGhhdCBpdCB3b3JrcyBwcm9wZXJseSB3aGVuIHRoZSBkZXZpY2UgaXMN
Cj4+PiBoaWRkZW4gdXNpbmcgeGVuLXBjaWJhY2suaGlkZT0oU0JERikgaW4gdGhlIExpbnV4IGtl
cm5lbCBjb21tYW5kIGxpbmUuDQo+PiBTdXJlLCBJIGhhdmUgdmFsaWRhdGVkIGl0IG9uIG15IHNp
ZGUuIEJvdGggdGhlICJTdGF0aWMgYXNzaWdubWVudCBmb3IgYnVpbHQtaW4geGVuLXBjaWJhY2so
eGVuLXBjaWJhY2suaGlkZT0oU0JERikpIiBhbmQgdGhlICJEeW5hbWljIGFzc2lnbm1lbnQgd2l0
aCB4bChzdWRvIG1vZHByb2JlIHhlbi1wY2liYWNrICYgc3VkbyB4bCBwY2ktYXNzaWduYWJsZS1h
ZGQgU0JERikiIGNhbiB3b3JrIGZpbmUgd2l0aCBjdXJyZW50IGltcGxlbWVudGF0aW9uLg0KPiAN
Cj4gT2gsIE9LLCBpZiB0aGF0J3MgdGhlIGNhc2UgSSBkb24ndCBoYXZlIG11Y2ggb2JqZWN0aW9u
IGluIGRvaW5nIHRoZQ0KPiBpbml0aWFsaXphdGlvbiBpbiBhY3BpX3BjaV9pcnFfZW5hYmxlKCks
IHRoYXQncyBhbiBpbnRlcm5hbCBMaW51eA0KPiBkZXRhaWwuICBJIG1vc3RseSBjYXJlIGFib3V0
IHRoZSBHU0kgYmVpbmcgZXhwb3NlZCBpbiBzeXNmcyBpbiBhDQo+IG5vbi1YZW4gc3BlY2lmaWMg
d2F5Lg0KWWVzLCBjdXJyZW50IGltcGxlbWVudGF0aW9uIGlzIGEgTGludXggaW50ZXJuYWwgd2F5
LCBub3QgYSBYZW4gc3BlY2lmaWMuIEluIGJhcmVtZXRhbCBMaW51eCwgSSBhbHNvIGNhbiBzZWUg
Z3NpIHN5c2ZzLiBUaGFuayB5b3UuDQoNCj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCi0tIA0KQmVz
dCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 09:17:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 09:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654368.1021200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDhqM-0006H3-Qa; Thu, 14 Dec 2023 09:17:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654368.1021200; Thu, 14 Dec 2023 09:17: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 1rDhqM-0006Gw-Nz; Thu, 14 Dec 2023 09:17:22 +0000
Received: by outflank-mailman (input) for mailman id 654368;
 Thu, 14 Dec 2023 09:17: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDhqL-0006Gq-Ft
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 09:17:21 +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 9540c667-9a61-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 10:17:20 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a1d2f89ddabso946621366b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 01:17:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 vt5-20020a170907a60500b00a1d38589c67sm9160182ejc.98.2023.12.14.01.17.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 01:17:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9540c667-9a61-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702545440; x=1703150240; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=D5wC+y2Q4cyNHZq/XlCdwk7f9LNzOjsAz34l19OvXNM=;
        b=MiCVtRTox9VBE74Ubbu8tXC/b7rIbZw1VX3ztUZ/x45BBeN2sZikUOo2gj//3dOnIK
         Jp/+gmhQYsS2CFP8v9V7LVSihSPJq2wQNFnbBYyBTeezBQefqlGanLc8spgLzYmpNk+i
         R1yVnjTbcSKltt/CpMM6C9e1sT42lAF+9DHS3+kdr1lbCovmxvWMm3qlaP5Su8es3bqB
         Fd2K/jB+zZK+L0SQeiZ9vMowJ+UFyOQ8LZ1h5H4rt8JSh/zCXzwDTIpruRacq/jfZpCA
         VTl4D692S0KtX4edEfze4ZSBKUakINSCAFx/tEnM4pb20105T9p1F1tjic1V/SvUQdXP
         5AGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702545440; x=1703150240;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=D5wC+y2Q4cyNHZq/XlCdwk7f9LNzOjsAz34l19OvXNM=;
        b=X9l1G7YwRkALhDH7153Z3efWR3ly+eFzhANT2XsYF0tZhpQZKVJgdHjdMwhud5yRSi
         qDmsxpX1RS20jjUTl9bEV6TIjrIFBwbvWTXSEWedCCPT+7NLtnIbyRIOeqiOAp5kbSNn
         OVqC4I8+6nf4ee736jNsK8UhvEZZBpmuT/mCNeIQ4ugXFuYKEojIKhbDkMGz0105R54H
         C+6KJ2pntSVwURNOXSgRjZWeT0Jy9q6NuPC2jyP1s+7jRrF6oMlvQBdNkNa+z7EANXSe
         h0oUrB8P3w3DuqjRHMWfvNERsHxSvkfop5aaiz3xiRsLYxo65vlmBtMWq73B/Tl8oME/
         6i4g==
X-Gm-Message-State: AOJu0YzwbmbB4Q5DX3NfsHLySAjgJxTTHyBvdWh0RuG83CrhpmS2K0Uv
	Lzy3tvv/b7IkwgHOTkHHIVSo
X-Google-Smtp-Source: AGHT+IF0tTBkKlJF68bz43/s119oI8RokxjV41tvnOBBoqwSE9d0cpTdXYda6jrMR48sU/4Rzc17sw==
X-Received: by 2002:a17:907:bcf:b0:a19:a19b:789f with SMTP id ez15-20020a1709070bcf00b00a19a19b789fmr4127500ejc.98.1702545439641;
        Thu, 14 Dec 2023 01:17:19 -0800 (PST)
Message-ID: <089cdcc8-c895-496d-8b59-bcea9b7065ef@suse.com>
Date: Thu, 14 Dec 2023 10:17:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Content-Language: en-US
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.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: <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.12.2023 09:55, Chen, Jiqian wrote:
> On 2023/12/13 15:03, Jan Beulich wrote:
>> On 13.12.2023 03:47, Chen, Jiqian wrote:
>>> On 2023/12/12 17:30, Jan Beulich wrote:
>>>> On 12.12.2023 07:49, Chen, Jiqian wrote:
>>>>> On 2023/12/11 23:31, Roger Pau MonnÃ© wrote:
>>>>>> On Mon, Dec 11, 2023 at 12:40:08AM +0800, Jiqian Chen wrote:
>>>>>>> --- a/xen/arch/x86/hvm/hypercall.c
>>>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>>>>>> @@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>>>>  
>>>>>>>      switch ( cmd )
>>>>>>>      {
>>>>>>> +    case PHYSDEVOP_setup_gsi:
>>>>>>
>>>>>> I think given the new approach on the Linux side patches, where
>>>>>> pciback will configure the interrupt, there's no need to expose
>>>>>> setup_gsi anymore?
>>>>> The latest patch(the second patch of v3 on kernel side) does setup_gsi and map_pirq for passthrough device in pciback, so we need this and below.
>>>>>
>>>>>>
>>>>>>>      case PHYSDEVOP_map_pirq:
>>>>>>>      case PHYSDEVOP_unmap_pirq:
>>>>>>> +        if ( is_hardware_domain(currd) )
>>>>>>> +            break;
>>>>>>
>>>>>> Also Jan already pointed this out in v2: this hypercall needs to be
>>>>>> limited so a PVH dom0 cannot execute it against itself.  IOW: refuse
>>>>>> the hypercall if DOMID_SELF or the passed domid matches the current
>>>>>> domain domid.
>>>>> Yes, I remember Jan's suggestion, but since the latest patch(the second patch of v3 on kernel side) has change the implementation, it does setup_gsi and map_pirq for dom0 itself, so I didn't add the DOMID_SELF check.
>>>>
>>>> And why exactly would it do specifically the map_pirq? (Even the setup_gsi
>>>> looks questionable to me, but there might be reasons there.)
>>> Map_pirq is to solve the check failure problem. (pci_add_dm_done-> xc_domain_irq_permission-> XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0)
>>> Setup_gsi is because the gsi is never be unmasked, so the gsi is never be registered( vioapic_hwdom_map_gsi-> mp_register_gsi is never be called).
>>
>> And it was previously made pretty clear by Roger, I think, that doing a "map"
>> just for the purpose of granting permission is, well, at best a temporary
>> workaround in the early development phase. If there's presently no hypercall
>> to _only_ grant permission to IRQ, we need to add one.
> Could you please describe it in detail? Do you mean to add a new hypercall to grant irq access for dom0 or domU?
> It seems XEN_DOMCTL_irq_permission is the hypercall to grant irq access from dom0 to domU(see XEN_DOMCTL_irq_permission-> irq_permit_access). There is no need to add hypercall to grant irq access.

Hmm, yes and no. May I turn your attention to
https://lists.xen.org/archives/html/xen-devel/2023-07/msg02056.html
and its earlier version
https://lists.xen.org/archives/html/xen-devel/2023-05/msg00301.html
(it's imo a shame that this series continues to be stuck)?

Both make pretty clear that without pIRQ, this domctl cannot be used in
its present shape anyway, for ...

> We failed here (XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0) is because the PVH dom0 didn't use PIRQ, so we can't get irq from pirq if "current" is PVH dom0.

... this very reason. Addressing this one way or another is a necessary
part of making passthrough work with PVH Dom0. So _effectively_ there is
no hypercall allowing PVH Dom0 to grant IRQ permission.

> So, it seems the logic of XEN_DOMCTL_irq_permission is not suitable when PVH dom0?

That's my view, yes.

> Maybe it directly needs to get irq from the caller(domU) instead of "current" if the "current" has no PIRQ flag?

I don't think the IRQ mapping in the DomU is necessary to be known here.
What we want to grant is access to a host resource. That host resource is
therefore all that should need specifying for the operation to be carried
out. It just so happens that a PV Dom0 would specify the host IRQ by way
of supplying its own equivalent pIRQ.

Things are more "interesting" for MSI, though: The (Xen) IRQ may not be
known early enough. There wants to be a way of indicating that when such
an IRQ is created, permission should be granted to the domain that is
going to use that IRQ (by way of being assigned the respective device).
(This aspect may be part of why "map" presently also grants permission,
yet I continue to think that was wrong from the start. The more that
access there is [likely needlessly] granted to the domain requesting the
mapping, just for it to then further grant access to the DomU.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 09:42:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 09:42:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654371.1021210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDiEa-0004Ex-OB; Thu, 14 Dec 2023 09:42:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654371.1021210; Thu, 14 Dec 2023 09: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 1rDiEa-0004Eq-Lg; Thu, 14 Dec 2023 09:42:24 +0000
Received: by outflank-mailman (input) for mailman id 654371;
 Thu, 14 Dec 2023 09:42: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 1rDiEZ-0004Ek-BJ
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 09:42: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 1rDiEY-0007Fd-In; Thu, 14 Dec 2023 09:42:22 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDiEY-0002Ul-7x; Thu, 14 Dec 2023 09:42: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=yAsO4JtgZOFg9xr7suahAVrKKgl0SRrIhIvpQP6U2gs=; b=fFngiLIEYOGD6C9akJ74hL66rp
	vhw7f6jQjqedi4D/BZz6q3r4MpPbGIrJ0Pvnx49sL6KRV1fRaD95kIzCq0NlI86HzfTkW/roS1CC4
	evX8QFCLBoV03m35UsZ6JTHSYvmmfHL7bSl31eiuLEwaHqdhBbwizQMdH8uJ+qF4Nwl8=;
Message-ID: <2b4eec7c-3657-4542-96b9-56b272e8723b@xen.org>
Date: Thu, 14 Dec 2023 09:42:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.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.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
 <240c97ed-ce27-406d-84ad-68b72e999294@xen.org>
 <5ad1c008182bc9f23e1b37b0d6e35e4c@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <5ad1c008182bc9f23e1b37b0d6e35e4c@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 13/12/2023 14:02, Nicola Vetrini wrote:
> On 2023-12-12 16:49, Julien Grall wrote:
>> Hi,
>>
>> On 11/12/2023 12:32, Julien Grall wrote:
>>> Hi,
>>>
>>> On 11/12/2023 10:30, Nicola Vetrini wrote:
>>>> The branches of the switch after a call to 'do_unexpected_trap'
>>>> cannot return, but there is one path that may return, hence
>>>> only some clauses are marked with ASSERT_UNREACHABLE().
>>> I don't understand why this is necessary. The code should never be 
>>> reachable because do_unexpected_trap() is a noreturn().
>>
>> From the matrix discussion, it wasn't clear what was my position on 
>> this patch.
>>
>> I would much prefer if the breaks are kept. I could accept:
>>
>> ASSERT_UNREACHABLE();
>> break;
>>
>> But this solution is a Nack because if you are concerned about 
>> functions like do_unexpected_trap() to return by mistaken, then it 
>> needs to also be safe in production.
>>
>> The current proposal is not safe.
>>
>> Cheers,
> 
> Ok. I wonder whether the should be applied here in vcpreg.c:
> 
> diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
> index 39aeda9dab62..089d2f03eb5e 100644
> --- a/xen/arch/arm/vcpreg.c
> +++ b/xen/arch/arm/vcpreg.c
> @@ -707,7 +707,8 @@ void do_cp10(struct cpu_user_regs *regs, const union 
> hsr hsr)
>  Â Â Â Â Â Â Â Â  inject_undef_exception(regs, hsr);
>  Â Â Â Â Â Â Â Â  return;
>  Â Â Â Â  }
> -
> +
> +Â Â Â  ASSERT_UNREACHABLE();
>  Â Â Â Â  advance_pc(regs, hsr);
>  Â }
> 
> the rationale being that, should the switch somehow fail to return, the 
> advance_pc would be called, rather than doing nothing.

To clarify, advance_pc(regs, hsr) would still be called in production 
build. So if you are concerned about advance_pc() been called, then 
adding an ASSERT_UNREACHABLE() is not going to help.

It took me a little while to confirm that none of the path effectively 
returns due to the macros (in hindsight, it wasn't a good idea of mine 
to introduce them).

Depending on what we are trying to solve there are 3 possible approach:
   1. Leave advance_pc(). This means we could potentially
      a. Advance the PC twice (if it was already called) and therefore 
skipping an instruction
      b. Advance the PC once without an emulation
   2. Remove advance_pc(). If we already called the function, then there 
is no problem. Otherwise, we would trap in a loop effectively rendering 
the guest vCPU unusable.
   3. Replace with domain_crash()

Here it feels, that 3 is more suitable as this gives a clear indication 
why/where the emulation gone wrong.

This may still need to be accompanied with a ASSERT_UNREACHABLE() to 
please MISRA.

Bertrand, Michal, Stefano, what do you think?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 09:55:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 09:55:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654374.1021222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDiRU-0006qK-V2; Thu, 14 Dec 2023 09:55:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654374.1021222; Thu, 14 Dec 2023 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 1rDiRU-0006qD-QJ; Thu, 14 Dec 2023 09:55:44 +0000
Received: by outflank-mailman (input) for mailman id 654374;
 Thu, 14 Dec 2023 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=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDiRT-0006q7-8l
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 09:55:43 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f10cb9a2-9a66-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 10:55:41 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3333b46f26aso7019115f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 01:55:41 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 g1-20020a5d5541000000b003364b530d1asm203781wrw.5.2023.12.14.01.55.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 01:55:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f10cb9a2-9a66-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702547741; x=1703152541; 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=MWx9AXkB6QEkm0CprSo5mUcj9GG0LbtGule9EscnPsA=;
        b=NRqwJkfotQ/xdShXSZAR7VzsBPicBJDx5u61OM3aOFv2UzmfgAOjcyCqC0ZZ44vu14
         eaBu/hizbEDi+TMxr4rIAVXMWTavwKFGsP38XYXiNoeoI3lyZN378eP1xsWM8mjtYPlo
         3AMfBR5/3e0RaSQB7D5eA/NorjbkaP5+U4Nmw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702547741; x=1703152541;
        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=MWx9AXkB6QEkm0CprSo5mUcj9GG0LbtGule9EscnPsA=;
        b=nLZkujZiozrpkI8gwIJdjWaG0fggWVNPIpeJ7CcF5EB/R5aLVVyH1SKJO/L7gv7aur
         qNOHWnyASyRKXrGbIaQ7gnNJffgYLgb/qN4OtK/lj4rdlTav7kODwXbl93AxUC3UWEL9
         1QZcDudPVkofLVzHtMhP1W8pATAHx8t/kLRDLfZ9pMryZIGinPfvh1zXJ/FdTARuNJmX
         LMnm12CaK+9EAfFmCKQkRk7Dm2p1TS4DYTqb3/l9zVO2q5Cdnmtsfucd61CHo8HsBcOW
         XTpiyurjxpLVpB5KQPXWCtZVYxDaXclEF+mDv8C/0khrTMrRUVVhyfFOPIuyssy1F5tL
         T4FA==
X-Gm-Message-State: AOJu0YxIO/DtGmhGXJuLBl7jnhTEkiNum53ZDGpUogVWQGbD8+MbUU7Y
	GtBL7fzT0NjiC/EivhuBP8G1FA==
X-Google-Smtp-Source: AGHT+IG33sWzXESS+u4sjx8IVnwHo70xlb/t9A5V94Hlpi2UpEPyiU+ZbqO7SuaZg2bxZCPOxbR3ZQ==
X-Received: by 2002:adf:fac9:0:b0:333:3a23:ff12 with SMTP id a9-20020adffac9000000b003333a23ff12mr4329244wrs.141.1702547741138;
        Thu, 14 Dec 2023 01:55:41 -0800 (PST)
Date: Thu, 14 Dec 2023 10:55:39 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Message-ID: <ZXrRG8oc25Do0Dnv@macbook>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com>
 <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>

On Thu, Dec 14, 2023 at 08:55:45AM +0000, Chen, Jiqian wrote:
> On 2023/12/13 15:03, Jan Beulich wrote:
> > On 13.12.2023 03:47, Chen, Jiqian wrote:
> >> On 2023/12/12 17:30, Jan Beulich wrote:
> >>> On 12.12.2023 07:49, Chen, Jiqian wrote:
> >>>> On 2023/12/11 23:31, Roger Pau MonnÃ© wrote:
> >>>>> On Mon, Dec 11, 2023 at 12:40:08AM +0800, Jiqian Chen wrote:
> >>>>>> --- a/xen/arch/x86/hvm/hypercall.c
> >>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
> >>>>>> @@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> >>>>>>  
> >>>>>>      switch ( cmd )
> >>>>>>      {
> >>>>>> +    case PHYSDEVOP_setup_gsi:
> >>>>>
> >>>>> I think given the new approach on the Linux side patches, where
> >>>>> pciback will configure the interrupt, there's no need to expose
> >>>>> setup_gsi anymore?
> >>>> The latest patch(the second patch of v3 on kernel side) does setup_gsi and map_pirq for passthrough device in pciback, so we need this and below.
> >>>>
> >>>>>
> >>>>>>      case PHYSDEVOP_map_pirq:
> >>>>>>      case PHYSDEVOP_unmap_pirq:
> >>>>>> +        if ( is_hardware_domain(currd) )
> >>>>>> +            break;
> >>>>>
> >>>>> Also Jan already pointed this out in v2: this hypercall needs to be
> >>>>> limited so a PVH dom0 cannot execute it against itself.  IOW: refuse
> >>>>> the hypercall if DOMID_SELF or the passed domid matches the current
> >>>>> domain domid.
> >>>> Yes, I remember Jan's suggestion, but since the latest patch(the second patch of v3 on kernel side) has change the implementation, it does setup_gsi and map_pirq for dom0 itself, so I didn't add the DOMID_SELF check.
> >>>
> >>> And why exactly would it do specifically the map_pirq? (Even the setup_gsi
> >>> looks questionable to me, but there might be reasons there.)
> >> Map_pirq is to solve the check failure problem. (pci_add_dm_done-> xc_domain_irq_permission-> XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0)
> >> Setup_gsi is because the gsi is never be unmasked, so the gsi is never be registered( vioapic_hwdom_map_gsi-> mp_register_gsi is never be called).
> > 
> > And it was previously made pretty clear by Roger, I think, that doing a "map"
> > just for the purpose of granting permission is, well, at best a temporary
> > workaround in the early development phase. If there's presently no hypercall
> > to _only_ grant permission to IRQ, we need to add one.
> Could you please describe it in detail? Do you mean to add a new hypercall to grant irq access for dom0 or domU?
> It seems XEN_DOMCTL_irq_permission is the hypercall to grant irq access from dom0 to domU(see XEN_DOMCTL_irq_permission-> irq_permit_access). There is no need to add hypercall to grant irq access.
> We failed here (XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0) is because the PVH dom0 didn't use PIRQ, so we can't get irq from pirq if "current" is PVH dom0.

One way to bodge this would be to detect whether the caller of
XEN_DOMCTL_irq_permission is a PV or an HVM domain, and in case of HVM
assume the pirq field is a GSI.  I'm unsure however how that will work
with non-x86 architectures.

It would  be better to introduce a new XEN_DOMCTL_gsi_permission, or
maybe XEN_DOMCTL_intr_permission that can take a struct we can use to
accommodate GSIs and other arch specific interrupt identifiers.

I'm also wondering whether the hypercall should be in a stable
interface so it could be easily used from QEMU if needed.

> So, it seems the logic of XEN_DOMCTL_irq_permission is not suitable when PVH dom0? Maybe it directly needs to get irq from the caller(domU) instead of "current" if the "current" has no PIRQ flag?

Hm, I'm kind of confused by this last sentence, as you mention "the
caller(domU)".  The caller of XEN_DOMCTL_irq_permission will always be
dom0 or the hardware domain.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 09:58:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 09:58:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654379.1021230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDiUA-0007Q5-A5; Thu, 14 Dec 2023 09:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654379.1021230; Thu, 14 Dec 2023 09:58:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDiUA-0007Py-7J; Thu, 14 Dec 2023 09:58:30 +0000
Received: by outflank-mailman (input) for mailman id 654379;
 Thu, 14 Dec 2023 09:58:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDiU8-0007Ps-Rf
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 09:58:28 +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 52f55fec-9a67-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 10:58:26 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-54f4f7e88feso8683204a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 01:58:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 cq27-20020a056402221b00b00551e7858f79sm1770432edb.15.2023.12.14.01.58.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 01:58:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52f55fec-9a67-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702547905; x=1703152705; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=4/APPL2CK1gXpzmHmxrhqhtZqCeWUIKKJ9tKJwZKEx4=;
        b=ZFYKtXfoSUGtTa4b9gTkhGOMCh10VyqvvHb1IEioBr/u9iM7Nb0uKiWyLsuynpCDhF
         kCZ/HiLmFT3DcLGNui0kLdCjB+Fsz44CR3AhsveC2wYcGyCQetzhUNt17WJVJDAksP6N
         oAuNs3VkfwehcEuNgQO+9LzfCPEttDjEetGOxtdu4pJqgGAqZ8Tm6r8IoIL+XZaY3B+T
         dpKsdXtwiUpTeg0AozRM07gmWKhEsMd0aljAKUMmko0qV+/8c9OzphAsf9cOF6HJaYlJ
         l7Bii17eyYQagS1V9pNMPl3O5WZ9qt12Sp5pIArlxFCfmDGI5J8A9qSaKGpdRZfAbQ2E
         8J0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702547905; x=1703152705;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=4/APPL2CK1gXpzmHmxrhqhtZqCeWUIKKJ9tKJwZKEx4=;
        b=sCqTqMbFtD1nYZJrE+udemyAO96lPy7PM+IvZ0luXPZsnHqe2DCbojST4gMlI9XJJr
         XhrSImruol+SEzTNVNE2rUsIh8Al8HBLaGqt9mRjVzI7tNbziYsIMF0YSnc3ga2l2cUN
         hJDtngDQmlNVlmfG7fsOt7sfNcZMR+DVcchAHqNCTRzXvYfGO4l+C4W3sfuD74LYUGkw
         XpoWdltWdlbRD+fkzx0YCC2w648nEFr1iTGmQSDQS4fB7e0ToY5QUP7fATAobGzEA53U
         qJie1SewLr89O4BBgDBpQQhNgF4h5rzz6BawiwmTSYxPlYsqL1UhIGwujWTofeuViCr0
         LNhQ==
X-Gm-Message-State: AOJu0YyNBXO/L6TKBVc8LQHLXm1Xau9yIkWK4qTWbXoNtacV4U2LHWUX
	oe8kRoY10+Ytj40kjyNeWjGG
X-Google-Smtp-Source: AGHT+IGFqm9baaA+4ynlHT5id9JoljE6OF7is745z64duoJA8jB8N0jKj2MXbyx6CEGdFhkiYqKspw==
X-Received: by 2002:a50:ab1c:0:b0:54c:4837:a642 with SMTP id s28-20020a50ab1c000000b0054c4837a642mr5184035edc.47.1702547905543;
        Thu, 14 Dec 2023 01:58:25 -0800 (PST)
Message-ID: <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com>
Date: Thu, 14 Dec 2023 10:58:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXrRG8oc25Do0Dnv@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXrRG8oc25Do0Dnv@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.12.2023 10:55, Roger Pau MonnÃ© wrote:
> On Thu, Dec 14, 2023 at 08:55:45AM +0000, Chen, Jiqian wrote:
>> On 2023/12/13 15:03, Jan Beulich wrote:
>>> On 13.12.2023 03:47, Chen, Jiqian wrote:
>>>> On 2023/12/12 17:30, Jan Beulich wrote:
>>>>> On 12.12.2023 07:49, Chen, Jiqian wrote:
>>>>>> On 2023/12/11 23:31, Roger Pau MonnÃ© wrote:
>>>>>>> On Mon, Dec 11, 2023 at 12:40:08AM +0800, Jiqian Chen wrote:
>>>>>>>> --- a/xen/arch/x86/hvm/hypercall.c
>>>>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>>>>>>> @@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>>>>>  
>>>>>>>>      switch ( cmd )
>>>>>>>>      {
>>>>>>>> +    case PHYSDEVOP_setup_gsi:
>>>>>>>
>>>>>>> I think given the new approach on the Linux side patches, where
>>>>>>> pciback will configure the interrupt, there's no need to expose
>>>>>>> setup_gsi anymore?
>>>>>> The latest patch(the second patch of v3 on kernel side) does setup_gsi and map_pirq for passthrough device in pciback, so we need this and below.
>>>>>>
>>>>>>>
>>>>>>>>      case PHYSDEVOP_map_pirq:
>>>>>>>>      case PHYSDEVOP_unmap_pirq:
>>>>>>>> +        if ( is_hardware_domain(currd) )
>>>>>>>> +            break;
>>>>>>>
>>>>>>> Also Jan already pointed this out in v2: this hypercall needs to be
>>>>>>> limited so a PVH dom0 cannot execute it against itself.  IOW: refuse
>>>>>>> the hypercall if DOMID_SELF or the passed domid matches the current
>>>>>>> domain domid.
>>>>>> Yes, I remember Jan's suggestion, but since the latest patch(the second patch of v3 on kernel side) has change the implementation, it does setup_gsi and map_pirq for dom0 itself, so I didn't add the DOMID_SELF check.
>>>>>
>>>>> And why exactly would it do specifically the map_pirq? (Even the setup_gsi
>>>>> looks questionable to me, but there might be reasons there.)
>>>> Map_pirq is to solve the check failure problem. (pci_add_dm_done-> xc_domain_irq_permission-> XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0)
>>>> Setup_gsi is because the gsi is never be unmasked, so the gsi is never be registered( vioapic_hwdom_map_gsi-> mp_register_gsi is never be called).
>>>
>>> And it was previously made pretty clear by Roger, I think, that doing a "map"
>>> just for the purpose of granting permission is, well, at best a temporary
>>> workaround in the early development phase. If there's presently no hypercall
>>> to _only_ grant permission to IRQ, we need to add one.
>> Could you please describe it in detail? Do you mean to add a new hypercall to grant irq access for dom0 or domU?
>> It seems XEN_DOMCTL_irq_permission is the hypercall to grant irq access from dom0 to domU(see XEN_DOMCTL_irq_permission-> irq_permit_access). There is no need to add hypercall to grant irq access.
>> We failed here (XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0) is because the PVH dom0 didn't use PIRQ, so we can't get irq from pirq if "current" is PVH dom0.
> 
> One way to bodge this would be to detect whether the caller of
> XEN_DOMCTL_irq_permission is a PV or an HVM domain, and in case of HVM
> assume the pirq field is a GSI.  I'm unsure however how that will work
> with non-x86 architectures.
> 
> It would  be better to introduce a new XEN_DOMCTL_gsi_permission, or
> maybe XEN_DOMCTL_intr_permission that can take a struct we can use to
> accommodate GSIs and other arch specific interrupt identifiers.

How would you see MSI being handled then?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:05:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:05:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654384.1021240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDias-0001nV-3t; Thu, 14 Dec 2023 10:05:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654384.1021240; Thu, 14 Dec 2023 10:05:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDias-0001nO-1Q; Thu, 14 Dec 2023 10:05:26 +0000
Received: by outflank-mailman (input) for mailman id 654384;
 Thu, 14 Dec 2023 10: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=i1ex=HZ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rDiaq-0001nI-EM
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:05:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b171102-9a68-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 11:05:22 +0100 (CET)
Received: from [192.168.1.15] (host-82-60-45-193.retail.telecomitalia.it
 [82.60.45.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 9B34C4EE073A;
 Thu, 14 Dec 2023 11:05:21 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b171102-9a68-11ee-9b0f-b553b5be7939
Message-ID: <a2729da1-3538-4bbd-a040-2dd05521c5cf@bugseng.com>
Date: Thu, 14 Dec 2023 11:05:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: X86: MISRA C:2012 Rule 5.6
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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org,
 "consulting@bugseng.com" <consulting@bugseng.com>
References: <9de5ec9d-1ebd-4fa9-89d4-e962d7c377e0@bugseng.com>
 <7222b529-ab39-4a18-a448-2a007992b9aa@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <7222b529-ab39-4a18-a448-2a007992b9aa@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 14/12/23 09:57, Jan Beulich wrote:
> On 13.12.2023 12:44, Federico Serafini wrote:
>> I have another question regarding Rule 5.6 ("A `typedef' name shall be
>> a unique identifier"), this time for X86:
>> the violations left [1] involve guest_intpte_t, guest_l1e_t and
>> guest_l2e_t, which seem to be deliberately defined differently depending
>> on the number of guest paging levels.
>> I would like to propose a deviation for these types, do you agree?
> 
> Yes. In fact I think we said so already when discussing this rule. The
> whole rebuild-same-file-for-multiple-purposes can hardly work without
> something along the lines of multiple ways of defining the same macros
> and/or typedefs for each of the instances.

Thanks for the feedback.

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:07:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654387.1021250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDicQ-0002N2-Ey; Thu, 14 Dec 2023 10:07:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654387.1021250; Thu, 14 Dec 2023 10:07:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDicQ-0002Mv-CM; Thu, 14 Dec 2023 10:07:02 +0000
Received: by outflank-mailman (input) for mailman id 654387;
 Thu, 14 Dec 2023 10:07: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=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDicP-0002Mp-LV
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:07:01 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 84e5507e-9a68-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 11:06:59 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c46d6784eso39765495e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:06:59 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 c4-20020adffb44000000b003362d0eefd3sm6188070wrs.20.2023.12.14.02.06.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 02:06:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84e5507e-9a68-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702548419; x=1703153219; 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=+1HfsRUd8Prmx0GcggoXOnJOewe5y9f5zGo8xkJ3VdA=;
        b=HepdT3UvhNukSg2le/VuWbceEaBfbobeLaCl/vNp6E7SnfiMz5YJgH2+IIMzlbFVWJ
         k4NZwNE2ApBc9nQzRgN1m9GpUKwFTzdUIjmb9MeFbQt+QFEqMyuBknV0CpZZrZv264Mg
         0WUatoBugkaBbxlHYx4+yTx8uAy40UmQKMgIA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702548419; x=1703153219;
        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=+1HfsRUd8Prmx0GcggoXOnJOewe5y9f5zGo8xkJ3VdA=;
        b=S227U3OaK0ExRzkuGLccIdAte4uWipZ+n5lU+Ykoj6QAA30lw5Ov5QrR1JuGfpUg0g
         hyGn38krMZpF4tJMLVsgKUf00o86xi/ksa16gE4nSTUNr03zGq6IJg40XxPKspohCupr
         eMPGhfjL5VlP73ajgCS0H2/o5A4WHFzhdVdzQrnvU3xJUHisneTpxXkl3zvNmm8IdhwY
         IX6G+A+Ij9wFHqvep3oWIu0OdIhHRiLyQJ/mDx0KcryjYswa6kGNqB4P/05kmMTzqBuQ
         tWfVuylF6dQEwVoXdrYQa/C0k0AIufDlygFuiZ46AMb0DpGTefZ9rDYX+5CITFrq0gn6
         k4ZA==
X-Gm-Message-State: AOJu0YyrA+gioA2dGcU3FqVTjFEpAUu3pA6ka/G3RMMES5qNvpx5DCv6
	s3YkGwx1DihH0Yuf+2RoZaawrQ==
X-Google-Smtp-Source: AGHT+IGuRdZ7ZOM3LhI54JGFn40EHFe3C1vjED09meuTkRczIoo8X8AJMgt/dwdiZt9MtV0a5BdAlw==
X-Received: by 2002:a05:600c:468d:b0:40c:31f1:1468 with SMTP id p13-20020a05600c468d00b0040c31f11468mr5206625wmo.165.1702548418719;
        Thu, 14 Dec 2023 02:06:58 -0800 (PST)
Date: Thu, 14 Dec 2023 11:06:57 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Message-ID: <ZXrTwfzedFQLhxiQ@macbook>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com>
 <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXrRG8oc25Do0Dnv@macbook>
 <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com>

On Thu, Dec 14, 2023 at 10:58:24AM +0100, Jan Beulich wrote:
> On 14.12.2023 10:55, Roger Pau MonnÃ© wrote:
> > On Thu, Dec 14, 2023 at 08:55:45AM +0000, Chen, Jiqian wrote:
> >> On 2023/12/13 15:03, Jan Beulich wrote:
> >>> On 13.12.2023 03:47, Chen, Jiqian wrote:
> >>>> On 2023/12/12 17:30, Jan Beulich wrote:
> >>>>> On 12.12.2023 07:49, Chen, Jiqian wrote:
> >>>>>> On 2023/12/11 23:31, Roger Pau MonnÃ© wrote:
> >>>>>>> On Mon, Dec 11, 2023 at 12:40:08AM +0800, Jiqian Chen wrote:
> >>>>>>>> --- a/xen/arch/x86/hvm/hypercall.c
> >>>>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
> >>>>>>>> @@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> >>>>>>>>  
> >>>>>>>>      switch ( cmd )
> >>>>>>>>      {
> >>>>>>>> +    case PHYSDEVOP_setup_gsi:
> >>>>>>>
> >>>>>>> I think given the new approach on the Linux side patches, where
> >>>>>>> pciback will configure the interrupt, there's no need to expose
> >>>>>>> setup_gsi anymore?
> >>>>>> The latest patch(the second patch of v3 on kernel side) does setup_gsi and map_pirq for passthrough device in pciback, so we need this and below.
> >>>>>>
> >>>>>>>
> >>>>>>>>      case PHYSDEVOP_map_pirq:
> >>>>>>>>      case PHYSDEVOP_unmap_pirq:
> >>>>>>>> +        if ( is_hardware_domain(currd) )
> >>>>>>>> +            break;
> >>>>>>>
> >>>>>>> Also Jan already pointed this out in v2: this hypercall needs to be
> >>>>>>> limited so a PVH dom0 cannot execute it against itself.  IOW: refuse
> >>>>>>> the hypercall if DOMID_SELF or the passed domid matches the current
> >>>>>>> domain domid.
> >>>>>> Yes, I remember Jan's suggestion, but since the latest patch(the second patch of v3 on kernel side) has change the implementation, it does setup_gsi and map_pirq for dom0 itself, so I didn't add the DOMID_SELF check.
> >>>>>
> >>>>> And why exactly would it do specifically the map_pirq? (Even the setup_gsi
> >>>>> looks questionable to me, but there might be reasons there.)
> >>>> Map_pirq is to solve the check failure problem. (pci_add_dm_done-> xc_domain_irq_permission-> XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0)
> >>>> Setup_gsi is because the gsi is never be unmasked, so the gsi is never be registered( vioapic_hwdom_map_gsi-> mp_register_gsi is never be called).
> >>>
> >>> And it was previously made pretty clear by Roger, I think, that doing a "map"
> >>> just for the purpose of granting permission is, well, at best a temporary
> >>> workaround in the early development phase. If there's presently no hypercall
> >>> to _only_ grant permission to IRQ, we need to add one.
> >> Could you please describe it in detail? Do you mean to add a new hypercall to grant irq access for dom0 or domU?
> >> It seems XEN_DOMCTL_irq_permission is the hypercall to grant irq access from dom0 to domU(see XEN_DOMCTL_irq_permission-> irq_permit_access). There is no need to add hypercall to grant irq access.
> >> We failed here (XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0) is because the PVH dom0 didn't use PIRQ, so we can't get irq from pirq if "current" is PVH dom0.
> > 
> > One way to bodge this would be to detect whether the caller of
> > XEN_DOMCTL_irq_permission is a PV or an HVM domain, and in case of HVM
> > assume the pirq field is a GSI.  I'm unsure however how that will work
> > with non-x86 architectures.
> > 
> > It would  be better to introduce a new XEN_DOMCTL_gsi_permission, or
> > maybe XEN_DOMCTL_intr_permission that can take a struct we can use to
> > accommodate GSIs and other arch specific interrupt identifiers.
> 
> How would you see MSI being handled then?

I wasn't really accounting for MSI here, as MSI is not handled by
XEN_DOMCTL_irq_permission now either.  My plan long term was to
introduce a new hypercall (part of dm_ops possibly) in order to be
able to bind MSI directly without having to 'map' it first.

Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:10:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:10:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654394.1021260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDifn-00048G-UY; Thu, 14 Dec 2023 10:10:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654394.1021260; Thu, 14 Dec 2023 10:10: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 1rDifn-000489-S4; Thu, 14 Dec 2023 10:10:31 +0000
Received: by outflank-mailman (input) for mailman id 654394;
 Thu, 14 Dec 2023 10: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDifm-000483-L5
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:10:30 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 023aa689-9a69-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 11:10:29 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a22fb5f71d9so87233666b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:10:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 tq14-20020a170907c50e00b00a1f83646eb6sm7769527ejc.149.2023.12.14.02.10.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 02:10:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 023aa689-9a69-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702548629; x=1703153429; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8TmD0kjhQymP/vgz+jd/OdLaJt8E7UaUV89SxBVkUII=;
        b=glJ0tZ7D2Hu7wesVyEUYMiirA2AyLSGaREV7uB4Tl4PHkL25qj410rHRZd9H73rKE5
         MCr3c0Pj1rdqJ5HWSm2BMaFEwmK/z/OULH9040TeTHtXyywm06CJVyr+qgcX9KfZkdpF
         Kh6hf0AA7RBCLPKhauPx4o7cLN510iidKLNcPrz2OAaTIe9U+8Cu8q7dqBdFhyzR5twU
         iHAYj9FcHBe9v79NEE2w240qCEbyPkSSEbEd0n4+0i6UJJaUIFbZlmq0YFk6wORR//WF
         pQDnmpnlDvwd/ln62n8egXuXfRQ4Jdk0s9aDmDCwHVGxvP7NqFrv5tqF3Yc+PDfByDNn
         Lt0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702548629; x=1703153429;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=8TmD0kjhQymP/vgz+jd/OdLaJt8E7UaUV89SxBVkUII=;
        b=YUzFMON54Z7fdHxB1t5UqK1U/6N4gPScrz5nF3w8Aq/1SPnXZTazq+MY7iARqmgN0+
         7P69lhxHxiMKPXEyaYyblLkJHHpA7XF2OO5u4AAfWZUuGo39+b/wvVGBe5HFiWNkZ8Rk
         E4T4U4xzcCni/vSULqz3ExyQ583VPJ5eWRNs755Ob69D4g4IFHdjfJ2OiRXicMCKYAIh
         Gbz68iJoJ4/jYCRFPvLR3nN/ZxcXdRXFyNCEDpbIPgTpew2noBejqsBRPRZ/lGzHCuGs
         CSKsPX6RZWoJJThPScQQjUz4yiimzJ1ue/wCylacEyH5eCJuN8KlSMv6qOfKTxxHEFSx
         Vs2A==
X-Gm-Message-State: AOJu0YyHbAEHYaT7V0FigAHsqgFM2hmGF6ayUVjDMDKknPLTfzJmUgL4
	eDX8r/DxWQpEd91OB9Gp34SZ
X-Google-Smtp-Source: AGHT+IHk/ijmfiNrjRlEiOK2E3x4xdMOD7bYmbIXvPDGlSrTjqyi/6Gqpg+ADOsEHd8Cx8pSbCsMDw==
X-Received: by 2002:a17:907:1dc9:b0:a22:ef8b:76cd with SMTP id og9-20020a1709071dc900b00a22ef8b76cdmr3419687ejc.38.1702548629050;
        Thu, 14 Dec 2023 02:10:29 -0800 (PST)
Message-ID: <b17bb7d1-1206-4ad1-96b1-7b903a740c83@suse.com>
Date: Thu, 14 Dec 2023 11:10:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/x86: io_apic: Introduce a command line option
 to skip timer check
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20231211122322.15815-1-julien@xen.org>
 <20231211122322.15815-2-julien@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231211122322.15815-2-julien@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 13:23, Julien Grall wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -2535,6 +2535,17 @@ pages) must also be specified via the tbuf_size parameter.
>  ### tickle_one_idle_cpu
>  > `= <boolean>`
>  
> +### pit-irq-works (x86)
> +> `=<boolean>`
> +
> +> Default: `false`
> +
> +Disables the code which tests for broken timer IRQ sources. Enabling
> +this option will reduce boot time on HW where the timer works properly.
> +
> +If the system is unstable when enabling the option, then it means you
> +may have a broken HW and therefore the testing cannot be be skipped.
> +
>  ### timer_slop
>  > `= <integer>`

With the rename this now needs to move up to retain sorting.

> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -57,6 +57,14 @@ bool __initdata ioapic_ack_forced;
>  int __read_mostly nr_ioapic_entries[MAX_IO_APICS];
>  int __read_mostly nr_ioapics;
>  
> +/*
> + * The logic to check if the timer is working is expensive. So allow
> + * the admin to bypass it if they know their platform doesn't have
> + * a buggy timer.
> + */
> +static bool __initdata pit_irq_works;
> +boolean_param("pit-irq-works", pit_irq_works);
> +
>  /*
>   * Rough estimation of how many shared IRQs there are, can
>   * be changed anytime.
> @@ -1502,6 +1510,9 @@ static int __init timer_irq_works(void)
>  {
>      unsigned long t1, flags;
>  
> +    if ( pit_irq_works )
> +        return 1;

When the check is placed here, what exactly use of the option means is
system dependent. I consider this somewhat risky, so I'd prefer if the
check was put on the "normal" path in check_timer(). That way it'll
affect only the one case which we can generally consider "known good",
but not the cases where the virtual wire setups are being probed. I.e.

    if (pin1 != -1) {
        /*
         * Ok, does IRQ0 through the IOAPIC work?
         */
        unmask_IO_APIC_irq(irq_to_desc(0));
        if (pit_irq_works || timer_irq_works()) {
            local_irq_restore(flags);
            return;
        }

Plus this way changes to the various fallback paths can also be done
without needing to consider users who might be making use of the new
option.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:14:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654397.1021271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDijp-0005bm-F2; Thu, 14 Dec 2023 10:14:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654397.1021271; Thu, 14 Dec 2023 10:14:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDijp-0005bf-Ba; Thu, 14 Dec 2023 10:14:41 +0000
Received: by outflank-mailman (input) for mailman id 654397;
 Thu, 14 Dec 2023 10:14:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rDijn-0005bZ-OW
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:14:39 +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 1rDijk-0007uu-TQ; Thu, 14 Dec 2023 10:14:36 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDijk-0004Mk-O8; Thu, 14 Dec 2023 10: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=vCkJKxxnc56SMIBx7j5k/fHoO7EYyhNLBp9OTVpvOyU=; b=S7vyrY9ntIdQsbjn5v7rmiyAHm
	XamEpBMA+2njaNP3YQWkblbMgJaKPF/iceiQ0xqbHhTF/BcBZ7tZTpT8WXk83JaNt0ABLbZVye2hq
	Jwmb/KaVHyX/a/AmcGqRglSBZ1iHFgLQ2Pa4GAxlCpGSpeJ7GL2/g9Pgh7Uy7cvIBFV0=;
Message-ID: <8b8a62a0-f854-405e-b256-5eee4bfdcb6c@xen.org>
Date: Thu, 14 Dec 2023 10:14:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/x86: io_apic: Introduce a command line option
 to skip timer check
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20231211122322.15815-1-julien@xen.org>
 <20231211122322.15815-2-julien@xen.org>
 <b17bb7d1-1206-4ad1-96b1-7b903a740c83@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <b17bb7d1-1206-4ad1-96b1-7b903a740c83@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 14/12/2023 10:10, Jan Beulich wrote:
> On 11.12.2023 13:23, Julien Grall wrote:
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -2535,6 +2535,17 @@ pages) must also be specified via the tbuf_size parameter.
>>   ### tickle_one_idle_cpu
>>   > `= <boolean>`
>>   
>> +### pit-irq-works (x86)
>> +> `=<boolean>`
>> +
>> +> Default: `false`
>> +
>> +Disables the code which tests for broken timer IRQ sources. Enabling
>> +this option will reduce boot time on HW where the timer works properly.
>> +
>> +If the system is unstable when enabling the option, then it means you
>> +may have a broken HW and therefore the testing cannot be be skipped.
>> +
>>   ### timer_slop
>>   > `= <integer>`
> 
> With the rename this now needs to move up to retain sorting.

Ok.

> 
>> --- a/xen/arch/x86/io_apic.c
>> +++ b/xen/arch/x86/io_apic.c
>> @@ -57,6 +57,14 @@ bool __initdata ioapic_ack_forced;
>>   int __read_mostly nr_ioapic_entries[MAX_IO_APICS];
>>   int __read_mostly nr_ioapics;
>>   
>> +/*
>> + * The logic to check if the timer is working is expensive. So allow
>> + * the admin to bypass it if they know their platform doesn't have
>> + * a buggy timer.
>> + */
>> +static bool __initdata pit_irq_works;
>> +boolean_param("pit-irq-works", pit_irq_works);
>> +
>>   /*
>>    * Rough estimation of how many shared IRQs there are, can
>>    * be changed anytime.
>> @@ -1502,6 +1510,9 @@ static int __init timer_irq_works(void)
>>   {
>>       unsigned long t1, flags;
>>   
>> +    if ( pit_irq_works )
>> +        return 1;
> 
> When the check is placed here, what exactly use of the option means is
> system dependent. I consider this somewhat risky, so I'd prefer if the
> check was put on the "normal" path in check_timer(). That way it'll
> affect only the one case which we can generally consider "known good",
> but not the cases where the virtual wire setups are being probed. I.e.

I am not against restricting when we allow skipping the timer check. But 
in that case, I wonder why Linux is doing it differently?

After all, this code is heavily borrowed from Linux. So shouldn't we 
follow what they are doing?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:17:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:17:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654401.1021290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDimo-0006So-53; Thu, 14 Dec 2023 10:17:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654401.1021290; Thu, 14 Dec 2023 10:17:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDimo-0006Sh-1z; Thu, 14 Dec 2023 10:17:46 +0000
Received: by outflank-mailman (input) for mailman id 654401;
 Thu, 14 Dec 2023 10:17: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=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDimm-0006DQ-81
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:17:44 +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 0456ce13-9a6a-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 11:17:42 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2c9f72176cfso100225831fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:17:42 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 c12-20020a5d4f0c000000b00336442b3e80sm2272336wru.78.2023.12.14.02.17.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 02:17:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0456ce13-9a6a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702549061; x=1703153861; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=//Q5HEM9v4eB3FhFejuA6Not40HTXEnc+em45fT0PEw=;
        b=CWLTEgAMiiQeDr0q8hQp6SCUU4SVcM2OiD4aS/lHmwyFZU8kAUuoXyIJ1EaigVYliQ
         QirpEurE96+QiAq7tdiSev08+vYouFh7Dsf8wGOOqUXpnIbXjUNbjbiCYZMcvfk8uw+f
         1mi65djX9Q06AnkVIKgOrtsSpU7Vd6rkOZnuA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702549061; x=1703153861;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=//Q5HEM9v4eB3FhFejuA6Not40HTXEnc+em45fT0PEw=;
        b=ECV5QX5Swv4p1RZLya706V8boS5cRAEd2P7DikeNbWNyDjlK08+ay8G4ucXK/2cqLq
         4eDDFoExL5+JLAoJbCD1d+OrX79+vOPwHl1KjvUvzUx1w9oediMhAV/Ew/XXqDqWalVi
         6xKbk5gE9x+4u3x03Ec5BVYhZ6LM0ZEN2WTM9HqBb6SdyN20+AYB5DvDjaqFcjph3nr+
         5yvVnMSBHhEbLEXIL7mZiKUyasnHqrdIJfUj7ZZuQELNoHsxqAZCiP8LreTj8m75PrMx
         4631wDO3RcKBvUEm7Te+HImxqufSq5XPMtcL5RTyerEHQSbqVjwTTsK9xU1PP6NrCEZA
         1MDw==
X-Gm-Message-State: AOJu0YyeFnO2uHba1Wn709ORkP4hcbqFSRONzObLXtK6yrS1w6bHmRnU
	Z5srXrJlho03GXbB8CmWJZHr2qypM40gqivl6P0=
X-Google-Smtp-Source: AGHT+IHzTZTldeZBawBMC1DH1MAbS4NWQNJ/tz+riZfQmQhRnhpkb9+u9RhBmRNN8vQ1M4Q+sc5Bcw==
X-Received: by 2002:a05:651c:154b:b0:2cc:27f4:67dc with SMTP id y11-20020a05651c154b00b002cc27f467dcmr1597105ljp.48.1702549061345;
        Thu, 14 Dec 2023 02:17:41 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3 1/4] x86/livepatch: align functions to ensure minimal distance between entry points
Date: Thu, 14 Dec 2023 11:17:16 +0100
Message-ID: <20231214101719.18770-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231214101719.18770-1-roger.pau@citrix.com>
References: <20231214101719.18770-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The minimal function size requirements for livepatch are either 5 bytes (for
jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  Ensure
that distance between functions entry points is always at least of the minimal
required size for livepatch instruction replacement to be successful.

Add an additional align directive to the linker script, in order to ensure that
the next section placed after the .text.* (per-function sections) is also
aligned to the required boundary, so that the distance of the last function
entry point with the next symbol is also of minimal size.

Note that it's possible for the compiler to end up using a higher function
alignment regardless of the passed value, so this change just make sure that
the minimum required for livepatch to work is present.

The compiler option -falign-functions is not available on at least clang 3.8,
so introduce a Kconfig check for it and make the livepatch option depend on the
compiler supporting the option.

The naming of the option(s) CONFIG_FUNCTION_ALIGNMENT is explicitly not
mentioning CC in preparation for the option also being used by assembly code.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - Add Arm side.
 - Align end of section in the linker script to ensure enough padding for the
   last function.
 - Expand commit message and subject.
 - Rework Kconfig options.
 - Check that the compiler supports the option.

Changes since v1:
 - New in this version.
---
 xen/Kconfig              | 18 ++++++++++++++++++
 xen/Makefile             |  3 +++
 xen/arch/arm/livepatch.c |  2 ++
 xen/arch/arm/xen.lds.S   |  4 ++++
 xen/arch/x86/livepatch.c |  4 ++++
 xen/arch/x86/xen.lds.S   |  4 ++++
 xen/common/Kconfig       |  5 ++++-
 7 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index 134e6e68ad84..7a61e130771c 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -37,6 +37,24 @@ config CC_HAS_VISIBILITY_ATTRIBUTE
 config CC_SPLIT_SECTIONS
 	bool
 
+# Set function alignment.
+#
+# Allow setting on a boolean basis, and then convert such selection to an
+# integer for the build system and code to consume more easily.
+config CC_HAS_FUNCTION_ALIGNMENT
+	def_bool $(cc-option,-falign-functions=8)
+config FUNCTION_ALIGNMENT_4B
+	bool
+config FUNCTION_ALIGNMENT_8B
+	bool
+config FUNCTION_ALIGNMENT_16B
+	bool
+config FUNCTION_ALIGNMENT
+	int
+	default 16 if FUNCTION_ALIGNMENT_16B
+	default  8 if  FUNCTION_ALIGNMENT_8B
+	default  4 if  FUNCTION_ALIGNMENT_4B
+
 source "arch/$(SRCARCH)/Kconfig"
 
 config DEFCONFIG_LIST
diff --git a/xen/Makefile b/xen/Makefile
index 21832d640225..162cb2bda1c5 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -390,6 +390,9 @@ CFLAGS += -fomit-frame-pointer
 endif
 
 CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections -fdata-sections
+ifdef CONFIG_FUNCTION_ALIGNMENT
+CFLAGS += -falign-functions=$(CONFIG_FUNCTION_ALIGNMENT)
+endif
 
 CFLAGS += -nostdinc -fno-builtin -fno-common
 CFLAGS += -Werror -Wredundant-decls -Wwrite-strings -Wno-pointer-arith
diff --git a/xen/arch/arm/livepatch.c b/xen/arch/arm/livepatch.c
index bbca1e5a5ed3..aa8ae8c38d28 100644
--- a/xen/arch/arm/livepatch.c
+++ b/xen/arch/arm/livepatch.c
@@ -68,6 +68,8 @@ void arch_livepatch_revive(void)
 
 int arch_livepatch_verify_func(const struct livepatch_func *func)
 {
+    BUILD_BUG_ON(ARCH_PATCH_INSN_SIZE > CONFIG_FUNCTION_ALIGNMENT);
+
     /* If NOPing only do up to maximum amount we can put in the ->opaque. */
     if ( !func->new_addr && (func->new_size > LIVEPATCH_OPAQUE_SIZE ||
          func->new_size % ARCH_PATCH_INSN_SIZE) )
diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 59b80d122fd0..afaf1e996b0e 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -44,6 +44,10 @@ SECTIONS
 #ifdef CONFIG_CC_SPLIT_SECTIONS
        *(.text.*)
 #endif
+#ifdef CONFIG_FUNCTION_ALIGNMENT
+       /* Ensure enough distance with the next placed section. */
+       . = ALIGN(CONFIG_FUNCTION_ALIGNMENT);
+#endif
 
        *(.fixup)
        *(.gnu.warning)
diff --git a/xen/arch/x86/livepatch.c b/xen/arch/x86/livepatch.c
index ee539f001b73..b00ad7120da9 100644
--- a/xen/arch/x86/livepatch.c
+++ b/xen/arch/x86/livepatch.c
@@ -109,6 +109,10 @@ int arch_livepatch_verify_func(const struct livepatch_func *func)
          */
         uint8_t needed = ARCH_PATCH_INSN_SIZE;
 
+        BUILD_BUG_ON(ARCH_PATCH_INSN_SIZE +
+                     (IS_ENABLED(CONIFG_XEN_IBT) ? ENDBR64_LEN : 0) >
+                     CONFIG_FUNCTION_ALIGNMENT);
+
         if ( is_endbr64(func->old_addr) || is_endbr64_poison(func->old_addr) )
             needed += ENDBR64_LEN;
 
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 8930e14fc40e..5b3332300d44 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -99,6 +99,10 @@ SECTIONS
        *(.text)
 #ifdef CONFIG_CC_SPLIT_SECTIONS
        *(.text.*)
+#endif
+#ifdef CONFIG_FUNCTION_ALIGNMENT
+       /* Ensure enough distance with the next placed section. */
+       . = ALIGN(CONFIG_FUNCTION_ALIGNMENT);
 #endif
        *(.text.__x86_indirect_thunk_*)
 
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 310ad4229cdf..c9a21c3c8a07 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -395,8 +395,11 @@ config CRYPTO
 config LIVEPATCH
 	bool "Live patching support"
 	default X86
-	depends on "$(XEN_HAS_BUILD_ID)" = "y"
+	depends on "$(XEN_HAS_BUILD_ID)" = "y" && CC_HAS_FUNCTION_ALIGNMENT
 	select CC_SPLIT_SECTIONS
+	select FUNCTION_ALIGNMENT_16B if XEN_IBT
+	select FUNCTION_ALIGNMENT_8B  if X86
+	select FUNCTION_ALIGNMENT_4B
 	---help---
 	  Allows a running Xen hypervisor to be dynamically patched using
 	  binary patches without rebooting. This is primarily used to binarily
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:17:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:17:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654402.1021295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDimo-0006VY-Dv; Thu, 14 Dec 2023 10:17:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654402.1021295; Thu, 14 Dec 2023 10:17:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDimo-0006U9-9I; Thu, 14 Dec 2023 10:17:46 +0000
Received: by outflank-mailman (input) for mailman id 654402;
 Thu, 14 Dec 2023 10:17:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDimm-0006Da-NN
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:17:44 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04d37c37-9a6a-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 11:17:43 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c38de1ee4so56228455e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:17:43 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 fm21-20020a05600c0c1500b0040c03c3289bsm24222464wmb.37.2023.12.14.02.17.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 02:17:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04d37c37-9a6a-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702549063; x=1703153863; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ViZ6HshgXIzZU2jJO110IUa3m0YwRdNIuCZWwBHHHR4=;
        b=RcGKljl3F+z6hAzSM7NwNsCjsTOLG8B1tfVtPpQVwIc7yqSWZcJzzbFvaPSMQUPqlj
         v1FkD2yVXBOeSGcCVsI9qGRQV9RbkSAb3KbJsOoRibabTLzkTz32QDPGZMRmmwVQek+b
         NHzLuZVN20ym/titjTUIkfR8nyatsANX/oqR0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702549063; x=1703153863;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ViZ6HshgXIzZU2jJO110IUa3m0YwRdNIuCZWwBHHHR4=;
        b=eP0YOPzmBeuxP4djDnLltivGkiBp4e3DoDFvlSc1qjjLqFdQp7FnrKyngjJXPdUHJi
         WmxbGiVVbdhfQVJp2tdLjpeQHmGs4PrBdxIWOyhjA6o0gv+/O3l+EzLMFkrH8Utv5Eev
         DsYxXq83GTZXSlmqAGxf8WDNSPFTfdBNoGAwc9BfK4GS0YxwHutypEwQ8FozfNkSJg50
         Fa6OnjqdnqvZ0TQhRiCihV4SX6l65pybr6VZnQlAP/7DeOMBc4jdAZnsP8eGzWgaqWqq
         iYIz2RvKr9nIGYG9NVATflKmTjIH286MbklhdQaYLoRkV/4/LrkA11O/zn8CLOgtrzeC
         KIww==
X-Gm-Message-State: AOJu0Yxbd7JKL3PI4lgLRum7FAB+iy9mjvBKIHnGfBOIj/gl6qRIjN+6
	EfwTjT9BftmkbVa4s04C5+5ruIzXEiXq0qerbUM=
X-Google-Smtp-Source: AGHT+IFrof9xmOuW95ijQWLTufyd6KrOVDaHydrGvFqct3533PxijnOPr2RuZI5T/3fRx6J6Lv8FuQ==
X-Received: by 2002:a7b:cd89:0:b0:40b:5e59:e9e8 with SMTP id y9-20020a7bcd89000000b0040b5e59e9e8mr4510564wmj.135.1702549062650;
        Thu, 14 Dec 2023 02:17:42 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.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>
Subject: [PATCH v3 2/4] xen/x86: introduce self modifying code test
Date: Thu, 14 Dec 2023 11:17:17 +0100
Message-ID: <20231214101719.18770-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231214101719.18770-1-roger.pau@citrix.com>
References: <20231214101719.18770-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a helper to perform checks related to self modifying code, and start
by creating a simple test to check that alternatives have been applied.

Such test is hooked into the boot process and called just after alternatives
have been applied.  In case of failure a message is printed, and the hypervisor
is tainted as not having passed the tests, this does require introducing a new
taint bit (printed as 'A').

A new sysctl is also introduced to run the tests on demand.  While there are no
current users introduced here, further changes will introduce those, and it's
helpful to have the interface defined in the sysctl header from the start.

Note the sysctl visibility is not limited to x86, albeit the only
implementation is for x86.  It's expected that other architectures can reuse
the same sysctl and structure, with possibly different tests.  Leave adjusting
those to when support for a different architecture is introduced, as the
sysctl interface is not stable anyway.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - Rename to smoc and place in test/smoc*
 - fix inline assembly.

Changes since v1:
 - Rework test and interface.
---
 tools/include/xenctrl.h              |  2 +
 tools/libs/ctrl/xc_misc.c            | 14 ++++++
 xen/arch/x86/Makefile                |  1 +
 xen/arch/x86/include/asm/test-smoc.h | 18 ++++++++
 xen/arch/x86/setup.c                 |  3 ++
 xen/arch/x86/sysctl.c                |  9 ++++
 xen/arch/x86/test/Makefile           |  1 +
 xen/arch/x86/test/smoc.c             | 68 ++++++++++++++++++++++++++++
 xen/common/kernel.c                  |  5 +-
 xen/include/public/sysctl.h          | 10 ++++
 xen/include/xen/lib.h                |  1 +
 11 files changed, 130 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/test-smoc.h
 create mode 100644 xen/arch/x86/test/Makefile
 create mode 100644 xen/arch/x86/test/smoc.c

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 2ef8b4e05422..0af796ae84e8 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2658,6 +2658,8 @@ int xc_dt_overlay(xc_interface *xch, void *overlay_fdt,
                   uint32_t overlay_fdt_size, uint8_t overlay_op);
 #endif
 
+int xc_test_smoc(xc_interface *xch, uint32_t tests, uint32_t *result);
+
 /* Compat shims */
 #include "xenctrl_compat.h"
 
diff --git a/tools/libs/ctrl/xc_misc.c b/tools/libs/ctrl/xc_misc.c
index 5ecdfa2c7934..1d3d5929cf96 100644
--- a/tools/libs/ctrl/xc_misc.c
+++ b/tools/libs/ctrl/xc_misc.c
@@ -1021,6 +1021,20 @@ int xc_livepatch_replace(xc_interface *xch, char *name, uint32_t timeout, uint32
     return _xc_livepatch_action(xch, name, LIVEPATCH_ACTION_REPLACE, timeout, flags);
 }
 
+int xc_test_smoc(xc_interface *xch, uint32_t tests, uint32_t *result)
+{
+    struct xen_sysctl sysctl = {
+        .cmd = XEN_SYSCTL_test_smoc,
+        .u.test_smoc.tests = tests,
+    };
+    int rc = do_sysctl(xch, &sysctl);
+
+    if ( !rc )
+        *result = sysctl.u.test_smoc.results;
+
+    return rc;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index f3abdf9cd111..ad5112b03c64 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_HVM) += hvm/
 obj-y += mm/
 obj-$(CONFIG_XENOPROF) += oprofile/
 obj-$(CONFIG_PV) += pv/
+obj-y += test/
 obj-y += x86_64/
 obj-y += x86_emulate/
 
diff --git a/xen/arch/x86/include/asm/test-smoc.h b/xen/arch/x86/include/asm/test-smoc.h
new file mode 100644
index 000000000000..2547b925d291
--- /dev/null
+++ b/xen/arch/x86/include/asm/test-smoc.h
@@ -0,0 +1,18 @@
+#ifndef _ASM_X86_TEST_SMC_H_
+#define _ASM_X86_TEST_SMC_H_
+
+#include <xen/types.h>
+
+int test_smoc(uint32_t selection, uint32_t *results);
+
+#endif	/* _ASM_X86_TEST_SMC_H_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 3cba2be0af6c..e026b0ea5adc 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -58,6 +58,7 @@
 #include <asm/microcode.h>
 #include <asm/prot-key.h>
 #include <asm/pv/domain.h>
+#include <asm/test-smoc.h>
 
 /* opt_nosmp: If true, secondary processors are ignored. */
 static bool __initdata opt_nosmp;
@@ -1951,6 +1952,8 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
 
     alternative_branches();
 
+    test_smoc(XEN_SYSCTL_TEST_SMOC_ALL, NULL);
+
     /*
      * 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/sysctl.c b/xen/arch/x86/sysctl.c
index 1d40d82c5ad2..918e56631b94 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -25,6 +25,7 @@
 #include <asm/processor.h>
 #include <asm/setup.h>
 #include <asm/smp.h>
+#include <asm/test-smoc.h>
 #include <asm/numa.h>
 #include <xen/nodemask.h>
 #include <xen/cpu.h>
@@ -423,6 +424,14 @@ long arch_do_sysctl(
         break;
     }
 
+    case XEN_SYSCTL_test_smoc:
+        ret = test_smoc(sysctl->u.test_smoc.tests,
+                        &sysctl->u.test_smoc.results);
+        if ( !ret && __copy_field_to_guest(u_sysctl, sysctl,
+                                           u.test_smoc.results) )
+            ret = -EFAULT;
+        break;
+
     default:
         ret = -ENOSYS;
         break;
diff --git a/xen/arch/x86/test/Makefile b/xen/arch/x86/test/Makefile
new file mode 100644
index 000000000000..b504b8196659
--- /dev/null
+++ b/xen/arch/x86/test/Makefile
@@ -0,0 +1 @@
+obj-y += smoc.o
diff --git a/xen/arch/x86/test/smoc.c b/xen/arch/x86/test/smoc.c
new file mode 100644
index 000000000000..e7529f937a5a
--- /dev/null
+++ b/xen/arch/x86/test/smoc.c
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <xen/errno.h>
+
+#include <asm/alternative.h>
+#include <asm/cpufeature.h>
+#include <asm/test-smoc.h>
+
+static bool cf_check test_insn_replacement(void)
+{
+#define EXPECTED_VALUE 2
+    unsigned int r = ~EXPECTED_VALUE;
+
+    alternative_io("", "mov %1, %0", X86_FEATURE_ALWAYS,
+                   "+r" (r), "i" (EXPECTED_VALUE));
+
+    return r == EXPECTED_VALUE;
+#undef EXPECTED_VALUE
+}
+
+int test_smoc(uint32_t selection, uint32_t *results)
+{
+    struct {
+        unsigned int mask;
+        bool (*test)(void);
+        const char *name;
+    } static const tests[] = {
+        { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
+          "alternative instruction replacement" },
+    };
+    unsigned int i;
+
+    if ( selection & ~XEN_SYSCTL_TEST_SMOC_ALL )
+        return -EINVAL;
+
+    if ( results )
+        *results = 0;
+
+    printk(XENLOG_INFO "Checking Self Modify Code\n");
+
+    for ( i = 0; i < ARRAY_SIZE(tests); i++ )
+    {
+        if ( !(selection & tests[i].mask) )
+            continue;
+
+        if ( tests[i].test() )
+        {
+            if ( results )
+                *results |= tests[i].mask;
+            continue;
+        }
+
+        add_taint(TAINT_ERROR_SMOC);
+        printk(XENLOG_ERR "%s test failed\n", tests[i].name);
+    }
+
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index 08dbaa2a054c..8ddfd309f65e 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -386,13 +386,14 @@ char *print_tainted(char *str)
 {
     if ( tainted )
     {
-        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c",
+        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c%c",
                  tainted & TAINT_MACHINE_INSECURE ? 'I' : ' ',
                  tainted & TAINT_MACHINE_CHECK ? 'M' : ' ',
                  tainted & TAINT_SYNC_CONSOLE ? 'C' : ' ',
                  tainted & TAINT_ERROR_INJECT ? 'E' : ' ',
                  tainted & TAINT_HVM_FEP ? 'H' : ' ',
-                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ');
+                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ',
+                 tainted & TAINT_ERROR_SMOC ? 'A' : ' ');
     }
     else
     {
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 9b19679caeb1..4b17f1344732 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -1180,6 +1180,7 @@ struct xen_sysctl_cpu_policy {
 };
 typedef struct xen_sysctl_cpu_policy xen_sysctl_cpu_policy_t;
 DEFINE_XEN_GUEST_HANDLE(xen_sysctl_cpu_policy_t);
+
 #endif
 
 #if defined(__arm__) || defined (__aarch64__)
@@ -1201,6 +1202,13 @@ struct xen_sysctl_dt_overlay {
 };
 #endif
 
+struct xen_sysctl_test_smoc {
+    uint32_t tests;     /* IN: bitmap with selected tests to execute. */
+#define XEN_SYSCTL_TEST_SMOC_INSN_REPL   (1U << 0)
+#define XEN_SYSCTL_TEST_SMOC_ALL         (XEN_SYSCTL_TEST_SMOC_INSN_REPL)
+    uint32_t results;   /* OUT: test result: 1 -> success, 0 -> failure. */
+};
+
 struct xen_sysctl {
     uint32_t cmd;
 #define XEN_SYSCTL_readconsole                    1
@@ -1232,6 +1240,7 @@ struct xen_sysctl {
 /* #define XEN_SYSCTL_set_parameter              28 */
 #define XEN_SYSCTL_get_cpu_policy                29
 #define XEN_SYSCTL_dt_overlay                    30
+#define XEN_SYSCTL_test_smoc                     31
     uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */
     union {
         struct xen_sysctl_readconsole       readconsole;
@@ -1259,6 +1268,7 @@ struct xen_sysctl {
         struct xen_sysctl_cpu_levelling_caps cpu_levelling_caps;
         struct xen_sysctl_cpu_featureset    cpu_featureset;
         struct xen_sysctl_livepatch_op      livepatch;
+        struct xen_sysctl_test_smoc         test_smoc;
 #if defined(__i386__) || defined(__x86_64__)
         struct xen_sysctl_cpu_policy        cpu_policy;
 #endif
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index 1793be5b6b89..575431e4bd38 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -167,6 +167,7 @@ uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c);
 #define TAINT_HVM_FEP                   (1u << 3)
 #define TAINT_MACHINE_INSECURE          (1u << 4)
 #define TAINT_CPU_OUT_OF_SPEC           (1u << 5)
+#define TAINT_ERROR_SMOC                (1U << 6)
 extern unsigned int tainted;
 #define TAINT_STRING_MAX_LEN            20
 extern char *print_tainted(char *str);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:17:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:17:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654400.1021280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDimm-0006Dn-QR; Thu, 14 Dec 2023 10:17:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654400.1021280; Thu, 14 Dec 2023 10:17: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 1rDimm-0006Dc-Nh; Thu, 14 Dec 2023 10:17:44 +0000
Received: by outflank-mailman (input) for mailman id 654400;
 Thu, 14 Dec 2023 10:17: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=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDiml-0006DQ-5M
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:17:43 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0367efaf-9a6a-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 11:17:41 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c38e292c8so2429125e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:17:41 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 je22-20020a05600c1f9600b0040c5177a479sm9699403wmb.20.2023.12.14.02.17.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 02:17:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0367efaf-9a6a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702549060; x=1703153860; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=NGpsS9ewPpfJ6fuvi3hbjOPSo2USkgEAi+sqPnYK2BE=;
        b=mX5zRf/FrA1YdeAyXSFmr7JNkGtrbOT32OvmJkJbCJfIN2U2/X7Dz+h92Mro7D4MYu
         AQ1Rq2Ee4WoxtIIUx9r4LC185yLwJnl/ado98YNzvAXECsftvqq6zhbDi1PYP0QYiy78
         6fC03RK6+Z1rztg2exJSbNVPmcrxXNtnxH4+I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702549060; x=1703153860;
        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=NGpsS9ewPpfJ6fuvi3hbjOPSo2USkgEAi+sqPnYK2BE=;
        b=fdTqpeCmioQiDPh134XfFYpX9iTNgthGTvvTJRKhKhkQ4typOR8sivQDumk3NoakTd
         hnvwZp6ufCSZGIU4WOBhnty9VJCzCILbdYmeS1q/hQ1JYtcT06n9a8ABC8TM8+n0WFXh
         YHK1bUG8nHqE9Mjnzi1m1L2VpmUPrNt9ZfaYNh1tDGvU9aksr0MvelE5ZP0XSvv5hYwZ
         NlP6EYVG5DQR6H9MGkHPkaYu6Jo6sVsJVBeWqYxA2HGUJFYxic4hz5EW++CIfKSq65Ht
         pjuMs+p2ADxGGeZfQQIgU0YpZeQqwqOgW28BOiF0EikdIvYUdrSqO/A8Losi2SePgwJ1
         ntaw==
X-Gm-Message-State: AOJu0YxiYE81H19wmI34iTGXnQD/xk62iNQunpAx1XyPFIGy2Ca95SQ4
	ycLXj1/1gUo/I0EqrR5lENItpp9JgKBqBkS/3fY=
X-Google-Smtp-Source: AGHT+IH/J8lg2tnAZiI5zsWX3qpnr6iClUDyoardnVCWta0djfZTiHda2Ntk5DXQEgKO9L6+sk7k7Q==
X-Received: by 2002:a05:600c:524d:b0:40c:3d02:57a1 with SMTP id fc13-20020a05600c524d00b0040c3d0257a1mr4863762wmb.132.1702549060308;
        Thu, 14 Dec 2023 02:17:40 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v3 0/4] xen/x86: add testing for self modifying code and livepatch
Date: Thu, 14 Dec 2023 11:17:15 +0100
Message-ID: <20231214101719.18770-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The following series contains a misc set of fixes and improvements.

There's one improvement for the hypervisor to set function alignment for
livepatch builds in order to make sure there's always enough space in a
function to be live-patched.

Following patches attempt to introduce a set of tests for self modifying
code, currently one test using the alternatives framework, and one test
for livepatch.

Last patch hooks the newly introduced livepatch test into the gitlab CI
using QEMU and an Alpine Linux dom0:

https://gitlab.com/xen-project/people/royger/xen/-/pipelines/1106713873

Roger Pau Monne (4):
  x86/livepatch: align functions to ensure minimal distance between
    entry points
  xen/x86: introduce self modifying code test
  x86/livepatch: introduce a basic live patch test to gitlab CI
  automation: add x86-64 livepatching test

 automation/gitlab-ci/build.yaml               |  9 +++
 automation/gitlab-ci/test.yaml                |  8 ++
 automation/scripts/build-livepatch            | 27 +++++++
 .../scripts/qemu-alpine-x86_64-livepatch.sh   | 68 ++++++++++++++++
 tools/include/xenctrl.h                       |  2 +
 tools/libs/ctrl/xc_misc.c                     | 14 ++++
 tools/misc/xen-livepatch.c                    | 29 +++++++
 xen/Kconfig                                   | 18 +++++
 xen/Makefile                                  |  3 +
 xen/arch/arm/livepatch.c                      |  2 +
 xen/arch/arm/xen.lds.S                        |  4 +
 xen/arch/x86/Makefile                         |  1 +
 xen/arch/x86/include/asm/test-smoc.h          | 22 ++++++
 xen/arch/x86/livepatch.c                      |  4 +
 xen/arch/x86/setup.c                          |  3 +
 xen/arch/x86/sysctl.c                         |  9 +++
 xen/arch/x86/test/Makefile                    |  3 +
 xen/arch/x86/test/smoc-lp-alt.c               | 24 ++++++
 xen/arch/x86/test/smoc-lp.c                   | 24 ++++++
 xen/arch/x86/test/smoc.c                      | 77 +++++++++++++++++++
 xen/arch/x86/xen.lds.S                        |  4 +
 xen/common/Kconfig                            |  5 +-
 xen/common/kernel.c                           |  5 +-
 xen/include/public/sysctl.h                   | 14 ++++
 xen/include/xen/lib.h                         |  1 +
 25 files changed, 377 insertions(+), 3 deletions(-)
 create mode 100755 automation/scripts/build-livepatch
 create mode 100755 automation/scripts/qemu-alpine-x86_64-livepatch.sh
 create mode 100644 xen/arch/x86/include/asm/test-smoc.h
 create mode 100644 xen/arch/x86/test/Makefile
 create mode 100644 xen/arch/x86/test/smoc-lp-alt.c
 create mode 100644 xen/arch/x86/test/smoc-lp.c
 create mode 100644 xen/arch/x86/test/smoc.c

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:17:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:17:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654403.1021303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDimo-0006ar-QW; Thu, 14 Dec 2023 10:17:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654403.1021303; Thu, 14 Dec 2023 10:17:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDimo-0006ZQ-Ig; Thu, 14 Dec 2023 10:17:46 +0000
Received: by outflank-mailman (input) for mailman id 654403;
 Thu, 14 Dec 2023 10:17: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=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDimn-0006Da-CH
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:17:45 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0554b220-9a6a-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 11:17:44 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c2db2ee28so84621525e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:17:44 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 gw18-20020a05600c851200b004053e9276easm26276280wmb.32.2023.12.14.02.17.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 02:17:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0554b220-9a6a-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702549063; x=1703153863; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7uem9HU9IMtRwRD4U1/+rZK9QwDDjIx6C/QW5H+G6tU=;
        b=eoScLbzCAlE+/+SQ0LdM0UkCB0eQ2O+YnyhC7mM9Rqbdyo3X8Lv1gqdPOiaNhOWTqJ
         i2460U2w7yh7UZssuOM1jDG4JhmmWZK23Au25im76OUWlU0a+xuZj4wOlDmH8JRYcVv+
         V/zKnK1xl2sPyyV0bmqxoO+1DmQF40unQnNKo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702549063; x=1703153863;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=7uem9HU9IMtRwRD4U1/+rZK9QwDDjIx6C/QW5H+G6tU=;
        b=PGCrmr8I5nyNZlIkCni8RvlFAjOF723rLJd4oGpLlyxKt+Oy7sS1Mct0h/Heok1mBj
         32EGKtlpDZdbboaehWHS4JaBHvbUuJXf2/M/U9+tHfiinWmdMeXnI5Im3QnZJokGtFCC
         zYXyHcH0UZ/UV7r4YvEsBIyMnxZyFZJOxmBePFfjEJHllFZRRWy1q1fmwGT92BZv0G5w
         4SP60al2K7/aAVl4eYAfM7cF8km7CoeSpQKdPqDSSt8ghIHHqKJJT+cnA1L2VlC67MvR
         MUF2xKaq3NZbQXGWwG/wiJc9E3Yt/KRHByCxILsFO4yrTHKKrBIsiQHY8Pa85WgH1dj2
         pQDg==
X-Gm-Message-State: AOJu0YzeKOUWVNShqHywYrkAg7IYbCAuqyxsrvjojJVMGqDepKpcqxEP
	WG32we7J0SV07BnpG97ONJH6ezyGiWeBcCLfB2w=
X-Google-Smtp-Source: AGHT+IHCqH8ZUtNHk8Qx/sLuLfjtYkIYiJVgPji27dkFRJbFYjadLYaWNCkNyWDQXfD28fkQVvzpFw==
X-Received: by 2002:a05:600c:1705:b0:40c:36ed:c5c6 with SMTP id c5-20020a05600c170500b0040c36edc5c6mr5405038wmn.29.1702549063621;
        Thu, 14 Dec 2023 02:17:43 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.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>
Subject: [PATCH v3 3/4] x86/livepatch: introduce a basic live patch test to gitlab CI
Date: Thu, 14 Dec 2023 11:17:18 +0100
Message-ID: <20231214101719.18770-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231214101719.18770-1-roger.pau@citrix.com>
References: <20231214101719.18770-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a basic livepatch test using the interface to run self modifying
tests.  The introduced test relies on changing a function from returning false
to returning true.

To simplify the burden of keeping a patch that can be provided to
livepatch-build-tools, introduce two new files: one containing the unpatched
test functions, and another one that contains the patched forms of such
functions.  Note that only the former is linked into the Xen image, the latter
is built but the object file is not consumed afterwards.  Do this to assert
that the file containing the patched functions continues to build.

Since livepatch testing will ensure that the functions are not patched previous
the applying the livepatch, allow the livepatch related tests to fail without
tainting the hypervisor.

Note the livepatch tests are not run as part of the self modifying checks
executed during boot, as they would obviously fail.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - Clarify comment about xor vs mov instructions for return false/true
   encodings.

Changes since v1:
 - New interface & test.
---
 tools/misc/xen-livepatch.c           | 29 ++++++++++++++++++++++++++++
 xen/arch/x86/include/asm/test-smoc.h |  4 ++++
 xen/arch/x86/setup.c                 |  2 +-
 xen/arch/x86/test/Makefile           |  2 ++
 xen/arch/x86/test/smoc-lp-alt.c      | 24 +++++++++++++++++++++++
 xen/arch/x86/test/smoc-lp.c          | 24 +++++++++++++++++++++++
 xen/arch/x86/test/smoc.c             | 11 ++++++++++-
 xen/include/public/sysctl.h          |  6 +++++-
 8 files changed, 99 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/x86/test/smoc-lp-alt.c
 create mode 100644 xen/arch/x86/test/smoc-lp.c

diff --git a/tools/misc/xen-livepatch.c b/tools/misc/xen-livepatch.c
index 5bf9d9a32b65..4ebd1b4e936d 100644
--- a/tools/misc/xen-livepatch.c
+++ b/tools/misc/xen-livepatch.c
@@ -37,6 +37,7 @@ void show_help(void)
             "  replace <name>         apply <name> patch and revert all others.\n"
             "  unload <name>          unload name <name> patch.\n"
             "  load <file> [flags]    upload and apply <file> with name as the <file> name\n"
+            "  test                   execute self modifying code livepatch hypervisor tests\n"
             "    Supported flags:\n"
             "      --nodeps           Disable inter-module buildid dependency check.\n"
             "                         Check only against hypervisor buildid.\n",
@@ -542,6 +543,33 @@ error:
     return rc;
 }
 
+static int test_func(int argc, char *argv[])
+{
+    uint32_t results = 0;
+    int rc;
+
+    if ( argc != 0 )
+    {
+        show_help();
+        return -1;
+    }
+
+    rc = xc_test_smoc(xch, XEN_SYSCTL_TEST_SMOC_LP, &results);
+    if ( rc )
+    {
+        fprintf(stderr, "test operation failed: %s\n", strerror(errno));
+        return -1;
+    }
+    if ( (results & XEN_SYSCTL_TEST_SMOC_LP) != XEN_SYSCTL_TEST_SMOC_LP )
+    {
+        fprintf(stderr, "some tests failed: %#x (expected %#x)\n",
+                results, XEN_SYSCTL_TEST_SMOC_LP);
+        return -1;
+    }
+
+    return 0;
+}
+
 /*
  * These are also functions in action_options that are called in case
  * none of the ones in main_options match.
@@ -554,6 +582,7 @@ struct {
     { "list", list_func },
     { "upload", upload_func },
     { "load", load_func },
+    { "test", test_func },
 };
 
 int main(int argc, char *argv[])
diff --git a/xen/arch/x86/include/asm/test-smoc.h b/xen/arch/x86/include/asm/test-smoc.h
index 2547b925d291..d369cf39687c 100644
--- a/xen/arch/x86/include/asm/test-smoc.h
+++ b/xen/arch/x86/include/asm/test-smoc.h
@@ -5,6 +5,10 @@
 
 int test_smoc(uint32_t selection, uint32_t *results);
 
+#ifdef CONFIG_LIVEPATCH
+bool cf_check test_lp_insn_replacement(void);
+#endif
+
 #endif	/* _ASM_X86_TEST_SMC_H_ */
 
 /*
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index e026b0ea5adc..b97faa7a3e97 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1952,7 +1952,7 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
 
     alternative_branches();
 
-    test_smoc(XEN_SYSCTL_TEST_SMOC_ALL, NULL);
+    test_smoc(XEN_SYSCTL_TEST_SMOC_ALL & ~XEN_SYSCTL_TEST_SMOC_LP, NULL);
 
     /*
      * NB: when running as a PV shim VCPUOP_up/down is wired to the shim
diff --git a/xen/arch/x86/test/Makefile b/xen/arch/x86/test/Makefile
index b504b8196659..3a5a0a98e4db 100644
--- a/xen/arch/x86/test/Makefile
+++ b/xen/arch/x86/test/Makefile
@@ -1 +1,3 @@
 obj-y += smoc.o
+obj-$(CONFIG_LIVEPATCH)   += smoc-lp.o     #Â for livepatch testing
+extra-$(CONFIG_LIVEPATCH) += smoc-lp-alt.o
diff --git a/xen/arch/x86/test/smoc-lp-alt.c b/xen/arch/x86/test/smoc-lp-alt.c
new file mode 100644
index 000000000000..d054e9bedc51
--- /dev/null
+++ b/xen/arch/x86/test/smoc-lp-alt.c
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <asm/test-smoc.h>
+
+/*
+ * Interesting case because `return false` can be encoded as `xor %eax, %eax`,
+ * which is shorter than `return true` which is encoded as a `mov $1, %eax`
+ * instruction (based on code generated by GCC 13.2 at -O2), and also shorter
+ * than the replacement `jmp` instruction.
+ */
+bool cf_check test_lp_insn_replacement(void)
+{
+    return true;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/x86/test/smoc-lp.c b/xen/arch/x86/test/smoc-lp.c
new file mode 100644
index 000000000000..e972791480b5
--- /dev/null
+++ b/xen/arch/x86/test/smoc-lp.c
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <asm/test-smoc.h>
+
+/*
+ * Interesting case because `return false` can be encoded as `xor %eax, %eax`,
+ * which is shorter than `return true` which is encoded as a `mov $1, %eax`
+ * instruction (based on code generated by GCC 13.2 at -O2), and also shorter
+ * than the replacement `jmp` instruction.
+ */
+bool cf_check test_lp_insn_replacement(void)
+{
+    return false;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/x86/test/smoc.c b/xen/arch/x86/test/smoc.c
index e7529f937a5a..8e74d26432ee 100644
--- a/xen/arch/x86/test/smoc.c
+++ b/xen/arch/x86/test/smoc.c
@@ -27,6 +27,10 @@ int test_smoc(uint32_t selection, uint32_t *results)
     } static const tests[] = {
         { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
           "alternative instruction replacement" },
+#ifdef CONFIG_LIVEPATCH
+        { XEN_SYSCTL_TEST_SMOC_LP_INSN, &test_lp_insn_replacement,
+          "livepatch instruction replacement" },
+#endif
     };
     unsigned int i;
 
@@ -50,7 +54,12 @@ int test_smoc(uint32_t selection, uint32_t *results)
             continue;
         }
 
-        add_taint(TAINT_ERROR_SMOC);
+        /*
+         * livepatch related tests don't taint the hypervisor because we also
+         * want to check the failing case.
+         */
+        if ( !(tests[i].mask & XEN_SYSCTL_TEST_SMOC_LP) )
+            add_taint(TAINT_ERROR_SMOC);
         printk(XENLOG_ERR "%s test failed\n", tests[i].name);
     }
 
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 4b17f1344732..aa4068d6996b 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -1205,7 +1205,11 @@ struct xen_sysctl_dt_overlay {
 struct xen_sysctl_test_smoc {
     uint32_t tests;     /* IN: bitmap with selected tests to execute. */
 #define XEN_SYSCTL_TEST_SMOC_INSN_REPL   (1U << 0)
-#define XEN_SYSCTL_TEST_SMOC_ALL         (XEN_SYSCTL_TEST_SMOC_INSN_REPL)
+#define XEN_SYSCTL_TEST_SMOC_LP_INSN     (1U << 1)
+#define XEN_SYSCTL_TEST_SMOC_ALL         (XEN_SYSCTL_TEST_SMOC_INSN_REPL | \
+                                         XEN_SYSCTL_TEST_SMOC_LP_INSN)
+#define XEN_SYSCTL_TEST_SMOC_LP          (XEN_SYSCTL_TEST_SMOC_LP_INSN)
+
     uint32_t results;   /* OUT: test result: 1 -> success, 0 -> failure. */
 };
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:17:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:17:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654404.1021321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDimr-0007FT-9S; Thu, 14 Dec 2023 10:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654404.1021321; Thu, 14 Dec 2023 10:17:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDimr-0007FC-4M; Thu, 14 Dec 2023 10:17:49 +0000
Received: by outflank-mailman (input) for mailman id 654404;
 Thu, 14 Dec 2023 10:17:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDimp-0006DQ-Dy
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:17:47 +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 062cf64c-9a6a-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 11:17:45 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c38e292c8so2429645e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:17:45 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 j17-20020a05600c1c1100b0040b48690c49sm24179651wms.6.2023.12.14.02.17.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 02:17:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 062cf64c-9a6a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702549064; x=1703153864; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xhWfcBNxu2blCdsb5H8j6/TvKkbd8xdFJdTYrKG7mJg=;
        b=wbonGj0Kwk8uGuZs5Df6z/JKDA4ljr22cnEQoMVtufA+ApFOkmguKdQ9jNMADydugH
         PJSloC33xFi4p/PqrC3p3hCmaXXp0UEf5qv1W/Bmc6DT8al8eaq+YRswlf1aAlWzofjt
         u82pmecob7/9WsAGY+PDkczsurz2WQl1puSVs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702549064; x=1703153864;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xhWfcBNxu2blCdsb5H8j6/TvKkbd8xdFJdTYrKG7mJg=;
        b=ARjpeD1qSg8YxiHI8kvM7uh9vb8Og9SStoTgxLoVHKqxIWcDbDDVAcaINvQMdT0Sk6
         cCVShmjABJkiJKiJi+qJd0aOvcgWGFz/EY8LAbfm/+1L76GEWyP3ElKXBvYCrb1IKGtE
         2jzFpyl+s/82OElxWPGIkhiczUryDpDPjL8opmDFt47qDhJOK6pjHcGUSWcXUh669mwd
         K+dcr0Mks2lZjl64DUkfUZ9CrxoMq4MxRjzK6ZhKR4mgC88yKaLa28WsvPZj1Vc2xy6m
         fiwtB2Xs6XXIdKIH7wYbQlh2yslWKG8PzSMsoSO03yUl3rcHh9YCFGxoN+/iZ22p04Pb
         rHdg==
X-Gm-Message-State: AOJu0YyN1ZEVehztzAXLCsRLjATDnx7s6sgVmKLYD3ttNvFLPLU8v9QI
	7paJWKJTxyiTSVCzlfoRStDQEsGmsQjOGbaZs/E=
X-Google-Smtp-Source: AGHT+IEc3PMulJYY6bnUPnHgqHCAJ8klvXR3bgb3dZiWTdxk4PHeDJW2ocvrQ8nVeSVg2y6jHgGuqw==
X-Received: by 2002:a05:600c:3b99:b0:40b:5e26:237b with SMTP id n25-20020a05600c3b9900b0040b5e26237bmr4736968wms.44.1702549064581;
        Thu, 14 Dec 2023 02:17:44 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 4/4] automation: add x86-64 livepatching test
Date: Thu, 14 Dec 2023 11:17:19 +0100
Message-ID: <20231214101719.18770-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231214101719.18770-1-roger.pau@citrix.com>
References: <20231214101719.18770-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a new gitlab tests for livepatching, using livepatch-build-tools,
which better reflects how downstreams build live patches rather than the
in-tree tests.

The tests applies the dummy in-tree patch example, checks that the patch is
applied correctly and then reverts and unloads it.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - Split livepatch build into a separate script.
---
 automation/gitlab-ci/build.yaml               |  9 +++
 automation/gitlab-ci/test.yaml                |  8 +++
 automation/scripts/build-livepatch            | 27 ++++++++
 .../scripts/qemu-alpine-x86_64-livepatch.sh   | 68 +++++++++++++++++++
 4 files changed, 112 insertions(+)
 create mode 100755 automation/scripts/build-livepatch
 create mode 100755 automation/scripts/qemu-alpine-x86_64-livepatch.sh

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 32af30ccedc9..d770bffb845e 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -358,6 +358,15 @@ alpine-3.18-gcc-debug:
   variables:
     CONTAINER: alpine:3.18
 
+alpine-3.18-gcc-livepatch:
+  extends: .gcc-x86-64-build
+  script:
+    - ./automation/scripts/build-livepatch 2>&1 | tee build.log
+  variables:
+    CONTAINER: alpine:3.18
+    EXTRA_XEN_CONFIG: |
+      CONFIG_LIVEPATCH=y
+
 debian-stretch-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 6aabdb9d156f..58a90be5ed0e 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -459,3 +459,11 @@ qemu-smoke-ppc64le-powernv9-gcc:
   needs:
     - qemu-system-ppc64-8.1.0-ppc64-export
     - debian-bullseye-gcc-ppc64le-debug
+
+qemu-alpine-x86_64-gcc-livepatch:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-alpine-x86_64-livepatch.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-livepatch
diff --git a/automation/scripts/build-livepatch b/automation/scripts/build-livepatch
new file mode 100755
index 000000000000..ac86b17ae5e4
--- /dev/null
+++ b/automation/scripts/build-livepatch
@@ -0,0 +1,27 @@
+#!/bin/bash -ex
+
+# Do a regular build first
+./automation/scripts/build
+
+# Build a test livepatch using livepatch-build-tools.
+
+if [[ "$XEN_TARGET_ARCH" != "x86_64" ]]; then
+    exit 1
+fi
+
+BASE=xen/arch/x86/test/smoc-lp.c
+ALT=xen/arch/x86/test/smoc-lp-alt.c
+
+[[ -f $BASE && -f $ALT ]]
+
+# git diff --no-index returns 0 if no differences, otherwise 1.
+git diff --no-index --output=test.patch $BASE $ALT && exit 1
+
+BUILDID=$(readelf -Wn xen/xen-syms | sed -n -e 's/^.*Build ID: //p')
+
+git clone https://xenbits.xen.org/git-http/livepatch-build-tools.git
+cd livepatch-build-tools
+make
+./livepatch-build -s ../ -p ../test.patch -o out -c ../xen/.config \
+    --depends $BUILDID --xen-depends $BUILDID
+cp out/test.livepatch ../binaries/test.livepatch
diff --git a/automation/scripts/qemu-alpine-x86_64-livepatch.sh b/automation/scripts/qemu-alpine-x86_64-livepatch.sh
new file mode 100755
index 000000000000..da478cac4376
--- /dev/null
+++ b/automation/scripts/qemu-alpine-x86_64-livepatch.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+set -ex
+
+cd binaries
+# initrd.tar.gz is Dom0 rootfs
+mkdir -p rootfs
+cd rootfs
+tar xvzf ../initrd.tar.gz
+mkdir proc
+mkdir run
+mkdir srv
+mkdir sys
+rm var/run
+cp -ar ../dist/install/* .
+cp ../test.livepatch ./root/
+cat << "EOF" >> etc/local.d/xen-lp.start
+#!/bin/bash
+
+set -ex
+
+trap poweroff EXIT
+
+export LD_LIBRARY_PATH=/usr/local/lib
+
+xen-livepatch test && exit 1 || true
+
+xen-livepatch load /root/test.livepatch
+
+# Cannot fail now
+xen-livepatch test
+
+xen-livepatch revert test
+xen-livepatch unload test
+
+xen-livepatch test && exit 1 || true
+
+echo "SUCCESS"
+EOF
+chmod +x etc/local.d/xen-lp.start
+echo "rc_verbose=yes" >> etc/rc.conf
+# rebuild Dom0 rootfs
+find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+cd ../..
+
+cat >> binaries/pxelinux.0 << EOF
+#!ipxe
+
+kernel xen console=com1 console_timestamps=boot
+module bzImage console=hvc0
+module xen-rootfs.cpio.gz
+boot
+EOF
+
+# Run the test
+rm -f smoke.serial
+timeout -k 1 360 \
+qemu-system-x86_64 \
+    -cpu qemu64,+svm \
+    -m 2G -smp 2 \
+    -monitor none -serial stdio \
+    -nographic \
+    -device virtio-net-pci,netdev=n0 \
+    -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 |& \
+        tee smoke.serial | sed 's/\r//'
+
+grep -q "SUCCESS" smoke.serial
+exit 0
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:19:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:19:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654420.1021331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDioJ-0000bK-Il; Thu, 14 Dec 2023 10:19:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654420.1021331; Thu, 14 Dec 2023 10: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 1rDioJ-0000bD-G3; Thu, 14 Dec 2023 10:19:19 +0000
Received: by outflank-mailman (input) for mailman id 654420;
 Thu, 14 Dec 2023 10:19:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDioI-0000b5-Tl
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:19:18 +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 3c8b0fa3-9a6a-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 11:19:16 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a1d93da3eb7so916779366b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:19:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v20-20020a170906489400b00a1de512fa24sm9109838ejq.191.2023.12.14.02.19.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 02:19:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c8b0fa3-9a6a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702549156; x=1703153956; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SiyksQcBmQT3PvLWawxm5b6xgs4BZhJSJynakMVd7oM=;
        b=UNxMeQhseR/Myr2t7jJArRwE9Sc9LVilwjezT9VkQ4J15/kjcpl6h4hpNvKSH9ApsG
         gXklMU9o0O9UsRF+AeDCRTgoIiY+/3UUVPwvmMBYhGenzl8w3SYsevxogghOpiwkX5am
         4Botn3ttJXAIbej67xXxR1O+DcF9K2VRYRqfIn9k3SPbm8k0aUe/TmAMZA0oufm2foaT
         RzCfVA5LeOoir9lcPzzKzNh1ovsDE9ptYtekmRId0r01L3FKtnfceDjzQ7UH9UBE9rYB
         SCXP5e3yxxuhrNxVq2njv3Uz5EppWP3x6f7ERu97uyA7h9bP5awTZ48f39OIXIDeC6fa
         jO2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702549156; x=1703153956;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=SiyksQcBmQT3PvLWawxm5b6xgs4BZhJSJynakMVd7oM=;
        b=IKpTssusyuFZXVVd/NnG8/Uh0AWMY03j58pojeinhuQFxz2D8JlEGGPub/dr9UmS8G
         WjMov/+pQN4ozOUez+lZcg5nn/tLX12uz7oXmQaznRRqzvaIBxN+tJ8FirfgNNP+oB2c
         PGMFb0faFqSvGbk+op1//o42V3gA8NumeMlEd3ckk3QPN0jAR+7JOUf5RK6WrJgJsr9W
         8lA4aIPxek+KmPFtu5fRybA35tsNhWQiwpHAchdZyWROfUGygAaZMMmXohGaojMwj4ja
         zIHMwbUVYwH5BWxRrjNpol8s5xHIabEmFmVRV0expp3XNPLcIcIKOb+Rw7WTE1IiComD
         brXA==
X-Gm-Message-State: AOJu0YzMECsFliVwHuwfmufO9Tob41VcqKd3zKW075azIoXYtzlyArqp
	ULYI65OuNm7u+CgCEq0Oa0Vd
X-Google-Smtp-Source: AGHT+IGcPEtFBvkvBXtT/ngoNkAPiY8aoehAzLF2M1r/D2Ir1FD+mAZE9IplwbU7GVTcXv5u1gTTZA==
X-Received: by 2002:a17:906:1787:b0:a19:a1ba:8cd6 with SMTP id t7-20020a170906178700b00a19a1ba8cd6mr4991638eje.116.1702549156430;
        Thu, 14 Dec 2023 02:19:16 -0800 (PST)
Message-ID: <6c5fd48d-a417-4731-8611-4f5f97865d91@suse.com>
Date: Thu, 14 Dec 2023 11:19:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/x86: ioapic: Bail out from timer_irq_works()
 as soon as possible
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.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: <20231211122322.15815-1-julien@xen.org>
 <20231211122322.15815-3-julien@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231211122322.15815-3-julien@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.12.2023 13:23, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
> 
> Currently timer_irq_works() will wait the full 100ms before checking
> that pit0_ticks has been incremented at least 4 times.
> 
> However, the bulk of the BIOS/platform should not have a buggy timer.
> So waiting for the full 100ms is a bit harsh.
> 
> Rework the logic to only wait until 100ms passed or we saw more than
> 4 ticks. So now, in the good case, this will reduce the wait time
> to ~50ms.

Isn't this more like 40ms (4 ticks 10ms apart)? And really somewhere
between 30 and 40, because the first tick has already partly elapsed?

> Take the opportunity to change the prototype of timer_irq_works() to
> return a bool rather than int (which was already acting as a bool because
> only 0/1 could be returned).
> 
> Signed-off-by: Julien Grall <jgrall@amazon.com>

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

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:36:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:36:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654435.1021340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDj4H-0006SC-UX; Thu, 14 Dec 2023 10:35:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654435.1021340; Thu, 14 Dec 2023 10: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 1rDj4H-0006S5-Rk; Thu, 14 Dec 2023 10:35:49 +0000
Received: by outflank-mailman (input) for mailman id 654435;
 Thu, 14 Dec 2023 10:35: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDj4G-0006Rz-WB
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:35:48 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b25507e-9a6c-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 11:35:47 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a1d2f89ddabso957301066b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:35:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 th18-20020a1709078e1200b00a2300127f26sm2185401ejc.185.2023.12.14.02.35.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 02:35:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b25507e-9a6c-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702550147; x=1703154947; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=6xd6ELtNY1fP4tjupBg2EdYAIEhiUlLKkCCl94oPfec=;
        b=UINWyjM8kRiwXPpfdgx03IvuA6uR32t/iR0oxbmsZoNhZcAJIthtLW/Iggo33yRL2N
         ScRfTUD5j1TOi4QlGs7qEWhcbqaKpKl9WreFZmR9OmrMBYAac3MjkzH5ORP5Ddd29bEb
         5tLjdhsX3KdxjH+zAi9CF0RnAbhqJaYEDLTnl5UfhJlsUdKY2Gk10kXWWIlDNJDWIjqD
         YnevmkdSQAgR8K4c+FWJOUBb68z7PS/0Z2MI04H2q8sEA08S2JPT3c16PO3tCh/yJ4Gp
         2tMdYl2IlCm4tSgIEbECjromY/OTJpSY9Q7gMfjCszI0bdL/tdnTiTOnd7llgloid3KF
         eMjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702550147; x=1703154947;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=6xd6ELtNY1fP4tjupBg2EdYAIEhiUlLKkCCl94oPfec=;
        b=F8t7nlDFMu0CqpH6sLsF7yMBM0iF2EX9p+i32LoDbNPwmiGhrrb5GLoi+O3IYiDiTt
         b/cLEp6e/taUwfMszP7mZQqYyTCWaxuU4GqvxG329RDCty3K0XYLUX0drRkXUnq4F499
         NYMuBaq+fsPqAOYIPfFczptFhCcjU05Kx6N/fmcfgTEYqXGmdzw7V2PqlErSnIr1VXqM
         +4zMllfERablnV4nr+825swtCOEX+pmcogicKWvKHe1CL4DvSB0TgXoJZu9gnSYzmQE6
         AVykX6eTG1HrzAynXx3lVkSrCP64au8/z7PqRehPlV2aakJQ0osz2/9AfxSZXgqChJR4
         zcJg==
X-Gm-Message-State: AOJu0YzgR7Z2y5ED4p+RtoHfuW2EDMoG+gwM50u2LaiOVVOZ3tWrK7eI
	AOFFYCbYIau66Z8UjTr4mltt
X-Google-Smtp-Source: AGHT+IGv8XCPixdiDMlXR181jXH6l9BfHwSx0UdEzTH6sIy1RMXRCe7KjyzRcDroZlYeQ/AvuNAc7w==
X-Received: by 2002:a17:906:10c7:b0:a1d:2e32:d284 with SMTP id v7-20020a17090610c700b00a1d2e32d284mr4263610ejv.23.1702550147275;
        Thu, 14 Dec 2023 02:35:47 -0800 (PST)
Message-ID: <b74f1f28-58da-4604-a7ef-370aeb0522ce@suse.com>
Date: Thu, 14 Dec 2023 11:35:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/x86: io_apic: Introduce a command line option
 to skip timer check
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20231211122322.15815-1-julien@xen.org>
 <20231211122322.15815-2-julien@xen.org>
 <b17bb7d1-1206-4ad1-96b1-7b903a740c83@suse.com>
 <8b8a62a0-f854-405e-b256-5eee4bfdcb6c@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8b8a62a0-f854-405e-b256-5eee4bfdcb6c@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 11:14, Julien Grall wrote:
> On 14/12/2023 10:10, Jan Beulich wrote:
>> On 11.12.2023 13:23, Julien Grall wrote:
>>> --- a/xen/arch/x86/io_apic.c
>>> +++ b/xen/arch/x86/io_apic.c
>>> @@ -57,6 +57,14 @@ bool __initdata ioapic_ack_forced;
>>>   int __read_mostly nr_ioapic_entries[MAX_IO_APICS];
>>>   int __read_mostly nr_ioapics;
>>>   
>>> +/*
>>> + * The logic to check if the timer is working is expensive. So allow
>>> + * the admin to bypass it if they know their platform doesn't have
>>> + * a buggy timer.
>>> + */
>>> +static bool __initdata pit_irq_works;
>>> +boolean_param("pit-irq-works", pit_irq_works);
>>> +
>>>   /*
>>>    * Rough estimation of how many shared IRQs there are, can
>>>    * be changed anytime.
>>> @@ -1502,6 +1510,9 @@ static int __init timer_irq_works(void)
>>>   {
>>>       unsigned long t1, flags;
>>>   
>>> +    if ( pit_irq_works )
>>> +        return 1;
>>
>> When the check is placed here, what exactly use of the option means is
>> system dependent. I consider this somewhat risky, so I'd prefer if the
>> check was put on the "normal" path in check_timer(). That way it'll
>> affect only the one case which we can generally consider "known good",
>> but not the cases where the virtual wire setups are being probed. I.e.
> 
> I am not against restricting when we allow skipping the timer check. But 
> in that case, I wonder why Linux is doing it differently?

Sadly Linux'es git history doesn't go back far enough (begins only at past
2.6.11), so I can't (easily) find the patch (and description) for the x86-64
change. The later i386 change is justified mainly by paravirt needs, so
isn't applicable here. I wouldn't therefore exclude that my point above
wasn't even taken into consideration. Furthermore their command line option
is "no_timer_check", which to me firmly says "don't check" without regard to
whether the source (PIT) is actually okay. That's different with the option
name you (imo validly) chose.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:40:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:40:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654438.1021350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDj8r-0008Hd-FY; Thu, 14 Dec 2023 10:40:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654438.1021350; Thu, 14 Dec 2023 10:40:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDj8r-0008HW-Cz; Thu, 14 Dec 2023 10:40:33 +0000
Received: by outflank-mailman (input) for mailman id 654438;
 Thu, 14 Dec 2023 10:40: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDj8q-0008GF-Ef
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:40:32 +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 343f4a20-9a6d-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 11:40:31 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-551ee7d5214so914159a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:40:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ga22-20020a170906b85600b00a1d3e9e8be7sm9000308ejb.204.2023.12.14.02.40.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 02:40:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 343f4a20-9a6d-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702550431; x=1703155231; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=cWi/xWteB0dJ+cLa6UZTA/zWrYQVrv5W0pjDjSwqS5s=;
        b=D9SG5aIoRo0/fnduFmQTdUspGebfkaTdtswTjKHwY8Do5qgJGvSzYnE0GNsRYGK257
         eikVSpPuz0azyl+hlmDSHClIp7+nHBGQAu2vkZbLGztrmxJXF3VN5gT9+WUzCkFQdKeC
         y93pP8J4Fk026doTzDNF49wPwd5DgjIIo7Auj9xjmpKXIR5FA0H31N2mHARof1iVJR1Z
         k1nxDOnJdtgCqMZsk+nlogAW4LWx1Mt8qBw+wUn/cgNOa520T07A7nRk74mUnRQInkyl
         vfWkfkV0n9NYly/Z+ijqnonwmITf2ZW3chY/BubWctDzCiAI5VnQtghG9J7sNaQnktoB
         GG9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702550431; x=1703155231;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=cWi/xWteB0dJ+cLa6UZTA/zWrYQVrv5W0pjDjSwqS5s=;
        b=HpRM+IR/IjM8x+dlra2OTsp77Ac9lHW/QS+2rN+uCZOW7denFZD3qDD/INcgqbp6HN
         qUX7Xn11EpLBDbwASyD1ajpVjTpHmkGvaByC7DFEt97DFzSMofcym2lc+Lci0F2zLqsp
         iOkHPYYGMvP22SmIoESapeGIDkQMz92aZoTGTD6x9wCllY2a6Sif3+nqtR4IKQxaAtKp
         bRaz8Z0tFHlqDLQ/6tPx8xxQo2schlCSP8eKoG+KoJe2t5h1/mClL322ZwdP3vApOsKF
         V98agoTwlfrJZ9H+bx0jT+WxaqsH3EdZcFM247RS/ArqPeUb1UAT7v1fWFlIG/mPns+5
         pczg==
X-Gm-Message-State: AOJu0Yx6Pc9BLOw3YqL3DmHgY1EMRtorP4dG8VY8KA7ZManMDDoXBgti
	UaAUKBRVzSjwy4reEZgjD4LT
X-Google-Smtp-Source: AGHT+IEVktsKINVR2V5tJtIyVOjDq3r+pqqwkCTma4C6OtlgVLWNEMqJeG9EYa2qX2VtyLc4UufhFw==
X-Received: by 2002:a17:906:af04:b0:a22:e827:fb7b with SMTP id lx4-20020a170906af0400b00a22e827fb7bmr4278422ejb.23.1702550431012;
        Thu, 14 Dec 2023 02:40:31 -0800 (PST)
Message-ID: <302a5dde-5b08-4a2d-8571-b28dfc8fb130@suse.com>
Date: Thu, 14 Dec 2023 11:40:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/x86_emulate: address violations of MISRA
 C:2012 Rule 14.4
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1702310368.git.maria.celeste.cesario@bugseng.com>
 <da78956b9dcb09ef78cc31debb58ad781b33dbe9.1702310368.git.maria.celeste.cesario@bugseng.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: <da78956b9dcb09ef78cc31debb58ad781b33dbe9.1702310368.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.12.2023 17:10, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
> headline states:
> "The controlling expression of an if statement and the controlling
> expression of an iteration-statement shall have essentially Boolean type".
> 
> Add comparisons to avoid using enum constants as controlling expressions
> to comply with Rule 14.4.
> No functional change.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>

Somewhat hesitantly, as indicated before:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 10:43:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 10:43:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654440.1021360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDjBQ-0000zX-Sb; Thu, 14 Dec 2023 10:43:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654440.1021360; Thu, 14 Dec 2023 10:43:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDjBQ-0000zQ-Pz; Thu, 14 Dec 2023 10:43:12 +0000
Received: by outflank-mailman (input) for mailman id 654440;
 Thu, 14 Dec 2023 10:43: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDjBP-0000zI-S7
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 10:43:11 +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 92a9cbf6-9a6d-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 11:43:09 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-50dfac6c0beso6065970e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 02:43:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 vh2-20020a170907d38200b00a1be80a0b69sm9182928ejc.58.2023.12.14.02.43.08
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 02:43:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92a9cbf6-9a6d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702550589; x=1703155389; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=PZVpokky+TFEHortVvpzOfyP1wjxhMg3ImUBtqh5rg0=;
        b=gGtCNfyLD9Gt1/uNdHJYKKnYu/xp5lRGG7my3E34aMZYG/8LVgr8p3KpS30eTWow2B
         P8ca4yVo4j2VXqvKY1SXYwk4pWPJZ/f+GoCI6VeroGfyCJ7fxDey77v/5Q/d4h3g42Lj
         VTeysK7DL2JHN9rzXgs92mvACwR+3XSRCakdCcz9Y3IrJLrOZGOI+8l5ogSpJVweQAkH
         hZDAkK3SgKVn5A5CzylghPiJkxkdZWDlS92oghe9tKX75XwF7xHsoLNjZtCpQsxJdnlV
         phoc3n8JRJs8Wy8e5VaZbrWaFAkDtzIWqHA+mbD/YnjVN6MUg7P7mjo3P7HrE1xNBH3C
         QTLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702550589; x=1703155389;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references: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=PZVpokky+TFEHortVvpzOfyP1wjxhMg3ImUBtqh5rg0=;
        b=TjM2PMdmMfX55L1L4YHqK4b0eBZCWCEGtJODir5PjKejw8Putrx8cyBOu9tb928fEt
         S9eWzLjUBO5+8R5VoM7RjnQhr/lZE3+vJZY9W043JhO4ut2vdCCNzAUCNH6aaVdr6t0X
         Pw0bff2HiicPXlfudWv5VpIT/2yYUcVuv8ZHK8aGHArpeIu02+XZS0ctLTZPI1sa3TFp
         DAn3bxy0rWlZXRF6mWRuP2EN6AFAzewL9TjAICOThP+AZKHHHIVXsJrGEaBkZKGEw7ot
         +WngQnO4wH84USXwpoIW29P8HiMMtx2aizWIrlTrwDi1JoicsUHSqMHtgmXWqhEz3J77
         togQ==
X-Gm-Message-State: AOJu0YzpCgi6ahyj4pKVPFOrm7veSM5OZctkut22QAB1XsQxNpLd3Jz3
	vL9XNSLgadhDQHYkOD7Uet4F0K19tAD1UzbxKANE
X-Google-Smtp-Source: AGHT+IGMggLN8ETdOWbZhVYXIIb7kpl0Jh2jzXNLIvBnBjsN/XPF9W4oLGgL//QMdyMiqucj2tTRag==
X-Received: by 2002:ac2:4542:0:b0:50d:12f6:da8a with SMTP id j2-20020ac24542000000b0050d12f6da8amr4112760lfm.48.1702550589187;
        Thu, 14 Dec 2023 02:43:09 -0800 (PST)
Message-ID: <dd07f28a-891e-48ed-a07c-eb3850811601@suse.com>
Date: Thu, 14 Dec 2023 11:43:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: xen | Failed pipeline for staging | cad6f9a4
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <657adb903cbdd_2c95448341d4@gitlab-sidekiq-catchall-v2-66957bfcc9-q9pqb.mail>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <657adb903cbdd_2c95448341d4@gitlab-sidekiq-catchall-v2-66957bfcc9-q9pqb.mail>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 11:40, GitLab wrote:
> 
> 
> Pipeline #1106780344 has failed!
> 
> Project: xen ( https://gitlab.com/xen-project/hardware/xen )
> Branch: staging ( https://gitlab.com/xen-project/hardware/xen/-/commits/staging )
> 
> Commit: cad6f9a4 ( https://gitlab.com/xen-project/hardware/xen/-/commit/cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce )
> Commit Message: smp: move cpu_is_offline() definition
> 
> It's all...
> Commit Author: Jan Beulich ( https://gitlab.com/jbeulich )
> 
> 
> Pipeline #1106780344 ( https://gitlab.com/xen-project/hardware/xen/-/pipelines/1106780344 ) triggered by Jan Beulich ( https://gitlab.com/jbeulich )
> had 22 failed jobs.
> 
> Job #5751094611 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094611/raw )
> 
> Stage: build
> Name: debian-bookworm-gcc-randconfig
> Job #5751094255 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094255/raw )
> 
> Stage: build
> Name: kernel-6.1.19-export
> Job #5751094548 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094548/raw )
> 
> Stage: build
> Name: archlinux-current-gcc-riscv64-debug-randconfig
> Job #5751094078 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094078/raw )
> 
> Stage: analyze
> Name: eclair-x86_64
> Job #5751094580 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094580/raw )
> 
> Stage: build
> Name: alpine-3.18-clang
> Job #5751094585 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094585/raw )
> 
> Stage: build
> Name: archlinux-gcc
> Job #5751094587 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094587/raw )
> 
> Stage: build
> Name: archlinux-gcc-debug
> Job #5751094540 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094540/raw )
> 
> Stage: build
> Name: archlinux-current-gcc-riscv64
> Job #5751094593 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094593/raw )
> 
> Stage: build
> Name: debian-stretch-clang
> Job #5751094620 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094620/raw )
> 
> Stage: build
> Name: fedora-gcc-debug
> Job #5751094595 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094595/raw )
> 
> Stage: build
> Name: debian-stretch-32-clang-debug
> Job #5751094597 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094597/raw )
> 
> Stage: build
> Name: debian-stretch-32-gcc-debug
> Job #5751094603 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094603/raw )
> 
> Stage: build
> Name: debian-bookworm-clang
> Job #5751094608 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/5751094608/raw )
> 
> Stage: build
> Name: debian-bookworm-gcc

Picking out this one:

Reinitialized existing Git repository in /builds/xen-project/hardware/xen/.git/
fatal: unable to access 'https://gitlab.com/xen-project/hardware/xen.git/': SSL certificate problem: self signed certificate in certificate chain

No idea what to do about it.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 11:18:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 11:18:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654445.1021372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDjjO-0001gD-Kb; Thu, 14 Dec 2023 11:18:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654445.1021372; Thu, 14 Dec 2023 11:18:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDjjO-0001g6-GC; Thu, 14 Dec 2023 11:18:18 +0000
Received: by outflank-mailman (input) for mailman id 654445;
 Thu, 14 Dec 2023 11:18:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDjjN-0001g0-4W
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 11:18:17 +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 79945258-9a72-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 12:18:15 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-54c7744a93fso11052816a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 03:18:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 hw18-20020a170907a0d200b00a1cbe52300csm9243152ejc.56.2023.12.14.03.18.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 03:18:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79945258-9a72-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702552695; x=1703157495; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=bk3hkXb4nxoYgE1ftEY+4BzIcQQbOAkFV6q6EsHsQXA=;
        b=IBz0/pYTZlov59fMMiztLpfX6xqTTcWP1RQhh6m0/gGHSwpmvEuL1K4P8HSo8vO1YE
         H6JRMkFra/EdvGi1r54cZB0pW7HtX0KKNChNP3RpNzChqAQ94xckFeOKyYWdrClg3Ceu
         7JWhcCzGcSkMgF/7n4XbQm5nH17tnFdBpNGKBUrEN9IkG0eLMTWruNr25fH+L5TgJO0/
         goPe6h7UmCBKAwLluGfO6200bQsz33p+IjXK87osFjD5Oc7R2dNPOnE66k3qeG5tf28A
         JEu27GzEjfBR2+877pg99ANZ9od3/G8z3Zxz3qShQXGJ328oD6MeIPl49H4h4PKAI7+N
         m2Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702552695; x=1703157495;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=bk3hkXb4nxoYgE1ftEY+4BzIcQQbOAkFV6q6EsHsQXA=;
        b=nS0u7xFF949gCsN7h95rERrfTG5ziMgrNWsFrnuoKfhVJOXicwcmpHRFNxGtUXlY0E
         bvbXx8XiQz9ldb2VxUR72lJMStUZc4AB95AJSqlBCPYvU6h/k1BrMFoOZ80knnOWTqBZ
         5z40TwcDE8G6brPsqAnbdVqG/DttuTY00NFGKK59UJEyGjI5kgwT9UX3aKOWhI43OiOd
         rpwf71xqEC3whgUZ9YGP30881v+vAxrWGBBRr7mI9yJEdPlm472HyapOeMos6D99B6Tt
         7Im8ZwuiiQALyL1k2//mMz20wiaj8P859X9bO6j0sTrUfZYsmsKKCTlTOIBWoXU/yPo0
         MA0A==
X-Gm-Message-State: AOJu0YzAyn8Nti883+3GT/8tJnFPDUXgEOzExKpGXKMZzujm8aw4RS3J
	WxivpiQlNg+oqL2NZlQ7RiYU
X-Google-Smtp-Source: AGHT+IH3/ZBtQuiCeqLzc1uFJ7ENzFBXkEm8wFVeXGfj7shAh5ojkCujzqTuplRf0l1IYuMu/apChg==
X-Received: by 2002:a17:907:e8f:b0:a18:b240:915f with SMTP id ho15-20020a1709070e8f00b00a18b240915fmr5572321ejc.69.1702552694831;
        Thu, 14 Dec 2023 03:18:14 -0800 (PST)
Message-ID: <4f6c3481-a44c-4176-a414-b32639556bb0@suse.com>
Date: Thu, 14 Dec 2023 12:18:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: 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>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-2-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231214101719.18770-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 11:17, Roger Pau Monne wrote:
> The minimal function size requirements for livepatch are either 5 bytes (for
> jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  Ensure
> that distance between functions entry points is always at least of the minimal
> required size for livepatch instruction replacement to be successful.
> 
> Add an additional align directive to the linker script, in order to ensure that
> the next section placed after the .text.* (per-function sections) is also
> aligned to the required boundary, so that the distance of the last function
> entry point with the next symbol is also of minimal size.
> 
> Note that it's possible for the compiler to end up using a higher function
> alignment regardless of the passed value, so this change just make sure that
> the minimum required for livepatch to work is present.

That's a possibility which we don't need to be concerned about. Yet isn't it
also possible that we override a larger, deemed better (e.g. performance-wise)
value? I'm somewhat concerned of that case. IOW is -falign-functions= really
the right option to use here? (There may not be one which we would actually
prefer to use.) Specifically -falign-functions (without a value, i.e. using a
machine dependent default) is implied by -O2 and -O3, as per 13.2 gcc doc.

> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -37,6 +37,24 @@ config CC_HAS_VISIBILITY_ATTRIBUTE
>  config CC_SPLIT_SECTIONS
>  	bool
>  
> +# Set function alignment.
> +#
> +# Allow setting on a boolean basis, and then convert such selection to an
> +# integer for the build system and code to consume more easily.
> +config CC_HAS_FUNCTION_ALIGNMENT
> +	def_bool $(cc-option,-falign-functions=8)

How does this check make sure 4- or 16-byte alignment are also accepted as
valid? (Requesting 8-byte alignment would be at least bogus on e.g. IA-64.)

> +config FUNCTION_ALIGNMENT_4B
> +	bool
> +config FUNCTION_ALIGNMENT_8B
> +	bool
> +config FUNCTION_ALIGNMENT_16B
> +	bool
> +config FUNCTION_ALIGNMENT
> +	int
> +	default 16 if FUNCTION_ALIGNMENT_16B
> +	default  8 if  FUNCTION_ALIGNMENT_8B
> +	default  4 if  FUNCTION_ALIGNMENT_4B

While for the immediate purpose here no "depends on CC_HAS_FUNCTION_ALIGNMENT"
is okay, I still wonder if it wouldn't better be added in case further
"select"s appear.

> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -390,6 +390,9 @@ CFLAGS += -fomit-frame-pointer
>  endif
>  
>  CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections -fdata-sections
> +ifdef CONFIG_FUNCTION_ALIGNMENT

... e.g. this meaningless? Or is the lack of a default value leading to
the option remaining undefined (rather than assigning some "default"
default, e.g. 0)?

> --- a/xen/arch/arm/xen.lds.S
> +++ b/xen/arch/arm/xen.lds.S
> @@ -44,6 +44,10 @@ SECTIONS
>  #ifdef CONFIG_CC_SPLIT_SECTIONS
>         *(.text.*)
>  #endif
> +#ifdef CONFIG_FUNCTION_ALIGNMENT
> +       /* Ensure enough distance with the next placed section. */
> +       . = ALIGN(CONFIG_FUNCTION_ALIGNMENT);
> +#endif
>  
>         *(.fixup)

Seeing .fixup nicely in context - can't that (and other specialized
sections containing code) also be patched?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 11:21:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 11:21:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654447.1021380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDjmC-0003tI-0n; Thu, 14 Dec 2023 11:21:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654447.1021380; Thu, 14 Dec 2023 11:21:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDjmB-0003tB-Tu; Thu, 14 Dec 2023 11:21:11 +0000
Received: by outflank-mailman (input) for mailman id 654447;
 Thu, 14 Dec 2023 11:21:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4Rgo=HZ=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rDjmA-0003t5-Re
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 11:21:11 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id e0236d9b-9a72-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 12:21:08 +0100 (CET)
Received: from mg.gitlab.com (16.226.74.34.bc.googleusercontent.com
 [34.74.226.16]) by
 9c5a89cddf6b with SMTP id 657ae521b0df483e13d26b38 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Thu, 14 Dec 2023 11:21:05 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: e0236d9b-9a72-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702552866; x=1702560066; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=WF4Ty1yR76JX5s+NXF7502er0QN0/zDjwmh35CBBrRU=;
 b=JdJ5CnS4vIE6EToTfCr+MswSQnOwPHK2x6S+19h5Ef5XJ4iQdNQ7oWVODn58H6v1auInjbGY8o7h77TxgBjiOEeY0Sc/wNoIFM8IvErleFbm59X5z/yksJK3+36klGuTmuKowGF8bVg3wB7Gce5WDNc5EMKJrAUBJ6wT+e9jx+o=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Thu, 14 Dec 2023 11:21:05 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <657ae521c88da_2c95434890bd@gitlab-sidekiq-catchall-v2-66957bfcc9-hprpd.mail>
Subject: xen | Successful pipeline for staging | cad6f9a4
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_657ae521bef32_2c954348893";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1106785576
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_657ae521bef32_2c954348893
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1106785576 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: cad6f9a4 ( https://gitlab.com/xen-project/xen/-/commit/cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce )
Commit Message: smp: move cpu_is_offline() definition

It's all...
Commit Author: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1106785576 ( https://gitlab.com/xen-project/xen/-/pipelines/1106785576 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | cad6f9a4</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1106785576 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/cad6f9a4c12dd4d5cd=
b2620e3fe24727ee81c7ce" style=3D"color: #3777b0; text-decoration: none;">=
cad6f9a4</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
smp: move cpu_is_offline() definition

It's all...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110678=
5576" style=3D"color: #3777b0; text-decoration: none;">#1106785576</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_657ae521bef32_2c954348893--


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 11:44:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 11:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654491.1021429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDk8Z-0001iq-DU; Thu, 14 Dec 2023 11:44:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654491.1021429; Thu, 14 Dec 2023 11: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 1rDk8Z-0001gZ-6p; Thu, 14 Dec 2023 11:44:19 +0000
Received: by outflank-mailman (input) for mailman id 654491;
 Thu, 14 Dec 2023 11:44:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=57RS=HZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDk8X-00016v-Tc
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 11:44:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c0e4ffd-9a76-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 12:44:16 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id A1EF04EE0746;
 Thu, 14 Dec 2023 12:44:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c0e4ffd-9a76-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 5/5] xen/wait: address violations of MISRA C Rule 11.9
Date: Thu, 14 Dec 2023 12:44:10 +0100
Message-Id: <a4e13ba24ab54895454d8df1c956865f7cf7f0b5.1702553835.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702553835.git.nicola.vetrini@bugseng.com>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/common/wait.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/common/wait.c b/xen/common/wait.c
index 86d3b15419db..cb6f5ff3c20a 100644
--- a/xen/common/wait.c
+++ b/xen/common/wait.c
@@ -125,7 +125,7 @@ static void __prepare_to_wait(struct waitqueue_vcpu *wqv)
     struct vcpu *curr = current;
     unsigned long dummy;
 
-    ASSERT(wqv->esp == 0);
+    ASSERT(wqv->esp == NULL);
 
     /* Save current VCPU affinity; force wakeup on *this* CPU only. */
     if ( vcpu_temporary_affinity(curr, smp_processor_id(), VCPU_AFFINITY_WAIT) )
@@ -171,7 +171,7 @@ static void __prepare_to_wait(struct waitqueue_vcpu *wqv)
           [sz] "i" (PAGE_SIZE)
         : "memory", "rax", "rdx", "r8", "r9", "r10", "r11" );
 
-    if ( unlikely(wqv->esp == 0) )
+    if ( unlikely(wqv->esp == NULL) )
     {
         gdprintk(XENLOG_ERR, "Stack too large in %s\n", __func__);
         domain_crash(curr->domain);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 11:44:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 11:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654490.1021425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDk8Z-0001b3-5P; Thu, 14 Dec 2023 11:44:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654490.1021425; Thu, 14 Dec 2023 11: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 1rDk8Y-0001ap-Sj; Thu, 14 Dec 2023 11:44:18 +0000
Received: by outflank-mailman (input) for mailman id 654490;
 Thu, 14 Dec 2023 11: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=57RS=HZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDk8X-0000uU-PR
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 11:44:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1babaf59-9a76-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 12:44:15 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 20DB04EE0C81;
 Thu, 14 Dec 2023 12:44:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1babaf59-9a76-11ee-98e9-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 4/5] x86/hvm: dom0: use helper to get sizeof struct field
Date: Thu, 14 Dec 2023 12:44:09 +0100
Message-Id: <17b01f14b89a5dba6935bbd8019ddf431d595890.1702553835.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702553835.git.nicola.vetrini@bugseng.com>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Use of the proper helper macro also resolves a violation
of MISRA C Rule 11.9.
No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/hvm/dom0_build.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 70d31289b04a..e59f6657d918 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -1144,8 +1144,7 @@ static int __init pvh_setup_acpi(struct domain *d, paddr_t start_info)
     rc = hvm_copy_to_guest_phys(start_info +
                                 offsetof(struct hvm_start_info, rsdp_paddr),
                                 &rsdp_paddr,
-                                sizeof(((struct hvm_start_info *)
-                                        0)->rsdp_paddr),
+                                sizeof_field(struct hvm_start_info, rsdp_paddr),
                                 d->vcpu[0]);
     if ( rc )
     {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 11:44:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 11:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654487.1021401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDk8W-00019Z-Sx; Thu, 14 Dec 2023 11:44:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654487.1021401; Thu, 14 Dec 2023 11: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 1rDk8W-00019O-Or; Thu, 14 Dec 2023 11:44:16 +0000
Received: by outflank-mailman (input) for mailman id 654487;
 Thu, 14 Dec 2023 11:44: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=57RS=HZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDk8V-0000uU-Oq
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 11:44:15 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b22bd8e-9a76-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 12:44:14 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 3BE0F4EE0744;
 Thu, 14 Dec 2023 12:44:14 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b22bd8e-9a76-11ee-98e9-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH 2/5] x86/ioapic: use NULL as a null pointer constant
Date: Thu, 14 Dec 2023 12:44:07 +0100
Message-Id: <01968117d9fc3eee6d6eca0d340d9d2edd4d6dd4.1702553835.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702553835.git.nicola.vetrini@bugseng.com>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Resolves violations of MISRA C Rule 11.9.
No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/io_apic.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index d11c880544e6..dd25ba394301 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -207,7 +207,7 @@ struct IO_APIC_route_entry **alloc_ioapic_entries(void)
 
     ioapic_entries = xmalloc_array(struct IO_APIC_route_entry *, nr_ioapics);
     if (!ioapic_entries)
-        return 0;
+        return NULL;
 
     for (apic = 0; apic < nr_ioapics; apic++) {
         ioapic_entries[apic] =
@@ -224,7 +224,7 @@ nomem:
         xfree(ioapic_entries[apic]);
     xfree(ioapic_entries);
 
-    return 0;
+    return NULL;
 }
 
 union entry_union {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 11:44:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 11:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654488.1021412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDk8Y-0001Oz-AF; Thu, 14 Dec 2023 11:44:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654488.1021412; Thu, 14 Dec 2023 11:44: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 1rDk8Y-0001Os-5N; Thu, 14 Dec 2023 11:44:18 +0000
Received: by outflank-mailman (input) for mailman id 654488;
 Thu, 14 Dec 2023 11:44: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=57RS=HZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDk8W-00016v-Ma
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 11:44:16 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ad1456f-9a76-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 12:44:14 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 913AC4EE0743;
 Thu, 14 Dec 2023 12:44:13 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ad1456f-9a76-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH 1/5] xen/hvm: use NULL as a null pointer constant
Date: Thu, 14 Dec 2023 12:44:06 +0100
Message-Id: <7c52d4b78785a56aee1ffc3661503bdd145595d9.1702553835.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702553835.git.nicola.vetrini@bugseng.com>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/include/asm/hvm/irq.h | 2 +-
 xen/include/public/hvm/save.h      | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/hvm/irq.h b/xen/arch/x86/include/asm/hvm/irq.h
index 1817ca6e2d22..87e89993a44f 100644
--- a/xen/arch/x86/include/asm/hvm/irq.h
+++ b/xen/arch/x86/include/asm/hvm/irq.h
@@ -136,7 +136,7 @@ struct hvm_girq_dpci_mapping {
 
 #define NR_ISAIRQS  16
 #define NR_LINK     4
-#define NR_HVM_DOMU_IRQS ARRAY_SIZE(((struct hvm_hw_vioapic *)0)->redirtbl)
+#define NR_HVM_DOMU_IRQS ARRAY_SIZE(((struct hvm_hw_vioapic *)NULL)->redirtbl)
 
 /* Protected by domain's event_lock */
 struct hvm_irq_dpci {
diff --git a/xen/include/public/hvm/save.h b/xen/include/public/hvm/save.h
index 2cf4238daaa1..42e8ff55b5b9 100644
--- a/xen/include/public/hvm/save.h
+++ b/xen/include/public/hvm/save.h
@@ -65,15 +65,15 @@ struct hvm_save_descriptor {
     struct __HVM_SAVE_TYPE_##_x { _type t; char c[_code]; char cpt[1];}
 #endif
 
-#define HVM_SAVE_TYPE(_x) __typeof__ (((struct __HVM_SAVE_TYPE_##_x *)(0))->t)
+#define HVM_SAVE_TYPE(_x) __typeof__ (((struct __HVM_SAVE_TYPE_##_x *)(NULL))->t)
 #define HVM_SAVE_LENGTH(_x) (sizeof (HVM_SAVE_TYPE(_x)))
-#define HVM_SAVE_CODE(_x) (sizeof (((struct __HVM_SAVE_TYPE_##_x *)(0))->c))
+#define HVM_SAVE_CODE(_x) (sizeof (((struct __HVM_SAVE_TYPE_##_x *)(NULL))->c))
 
 #ifdef __XEN__
-# define HVM_SAVE_TYPE_COMPAT(_x) __typeof__ (((struct __HVM_SAVE_TYPE_COMPAT_##_x *)(0))->t)
+# define HVM_SAVE_TYPE_COMPAT(_x) __typeof__ (((struct __HVM_SAVE_TYPE_COMPAT_##_x *)(NULL))->t)
 # define HVM_SAVE_LENGTH_COMPAT(_x) (sizeof (HVM_SAVE_TYPE_COMPAT(_x)))
 
-# define HVM_SAVE_HAS_COMPAT(_x) (sizeof (((struct __HVM_SAVE_TYPE_##_x *)(0))->cpt)-1)
+# define HVM_SAVE_HAS_COMPAT(_x) (sizeof (((struct __HVM_SAVE_TYPE_##_x *)(NULL))->cpt)-1)
 # define HVM_SAVE_FIX_COMPAT(_x, _dst, _size) __HVM_SAVE_FIX_COMPAT_##_x(_dst, _size)
 #endif
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 11:44:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 11:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654489.1021415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDk8Y-0001S8-JW; Thu, 14 Dec 2023 11:44:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654489.1021415; Thu, 14 Dec 2023 11:44: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 1rDk8Y-0001QR-DT; Thu, 14 Dec 2023 11:44:18 +0000
Received: by outflank-mailman (input) for mailman id 654489;
 Thu, 14 Dec 2023 11:44:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=57RS=HZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDk8W-0000uU-PA
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 11:44:16 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b5aaf31-9a76-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 12:44:15 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id B8D0A4EE0742;
 Thu, 14 Dec 2023 12:44:14 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b5aaf31-9a76-11ee-98e9-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH 3/5] xen/acpi: Use NULL as a null pointer constant
Date: Thu, 14 Dec 2023 12:44:08 +0100
Message-Id: <bb10a86a08eb36e9f9c6bda899cdc850afada403.1702553835.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702553835.git.nicola.vetrini@bugseng.com>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Resolves a violation of MISRA C Rule 11.9.
No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/include/acpi/acmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/acpi/acmacros.h b/xen/include/acpi/acmacros.h
index 86c503c20f3b..e7ca18e3dc66 100644
--- a/xen/include/acpi/acmacros.h
+++ b/xen/include/acpi/acmacros.h
@@ -111,7 +111,7 @@
 
 #define ACPI_TO_POINTER(i)              ACPI_ADD_PTR (void,(void *) NULL,(acpi_native_uint) i)
 #define ACPI_TO_INTEGER(p)              ACPI_PTR_DIFF (p,(void *) NULL)
-#define ACPI_OFFSET(d,f)                (acpi_size) ACPI_PTR_DIFF (&(((d *)0)->f),(void *) NULL)
+#define ACPI_OFFSET(d,f)                (acpi_size) ACPI_PTR_DIFF (&(((d *)NULL)->f),(void *) NULL)
 #define ACPI_PHYSADDR_TO_PTR(i)         ACPI_TO_POINTER(i)
 #define ACPI_PTR_TO_PHYSADDR(i)         ACPI_TO_INTEGER(i)
 
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 11:44:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 11:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654486.1021391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDk8V-0000uh-Kr; Thu, 14 Dec 2023 11:44:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654486.1021391; Thu, 14 Dec 2023 11:44:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDk8V-0000ua-I5; Thu, 14 Dec 2023 11:44:15 +0000
Received: by outflank-mailman (input) for mailman id 654486;
 Thu, 14 Dec 2023 11:44: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=57RS=HZ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rDk8V-0000uU-3f
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 11:44:15 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a912ab2-9a76-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 12:44:14 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id D6C814EE073A;
 Thu, 14 Dec 2023 12:44:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a912ab2-9a76-11ee-98e9-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH 0/5] address remaining violations of MISRA C:2012 Rule 11.9
Date: Thu, 14 Dec 2023 12:44:05 +0100
Message-Id: <cover.1702553835.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Hi all,

this series resolves violations of MISRA C:2012 Rule 11.9. After this series is
applied the rule has no violations on both ARM and x86.

Nicola Vetrini (5):
  xen/hvm: use NULL as a null pointer constant
  x86/ioapic: use NULL as a null pointer constant
  xen/acpi: Use NULL as a null pointer constant
  x86/hvm: dom0: use helper to get sizeof struct field
  xen/wait: address violations of MISRA C Rule 11.9

 xen/arch/x86/hvm/dom0_build.c      | 3 +--
 xen/arch/x86/include/asm/hvm/irq.h | 2 +-
 xen/arch/x86/io_apic.c             | 4 ++--
 xen/common/wait.c                  | 4 ++--
 xen/include/acpi/acmacros.h        | 2 +-
 xen/include/public/hvm/save.h      | 8 ++++----
 6 files changed, 11 insertions(+), 12 deletions(-)

-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 11:55:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 11:55:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654511.1021451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkJL-0006Ag-EN; Thu, 14 Dec 2023 11:55:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654511.1021451; Thu, 14 Dec 2023 11: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 1rDkJL-0006AZ-AZ; Thu, 14 Dec 2023 11:55:27 +0000
Received: by outflank-mailman (input) for mailman id 654511;
 Thu, 14 Dec 2023 11:55: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDkJJ-0006AT-Nl
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 11:55:25 +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 aa4f154e-9a77-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 12:55:24 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a22eba5a290so366990766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 03:55:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ci13-20020a170906c34d00b00a0988d69549sm9184421ejb.189.2023.12.14.03.55.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 03:55:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa4f154e-9a77-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702554924; x=1703159724; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=frIWyUhYo0oHbOzv9NBBMa8IQEpBKv17gm4P7VxxLl0=;
        b=ATWLJXBRDAH2XPe6W/3CJfeLmcaGRFa4jv3pU3sdva/YPAVVJmQsbrPSybuS1yO/Pj
         +VjZDZfhQalrirpUX7oH81Qgqt1HljTTzNdguIGMqP/yG6NtlJAKsvlA8WFn+029QT2K
         Ja612DKFqA8zA3lxuSQsxznd7C6fj70hvc3OZTevUai4JaCvhQSiPyFuL0W5iKNbV0XP
         /lJAdZNmND3yiIYyIllFBvIlXN1drUDcshU7p4LU4Ru2FdyLgT228gHuyP1reQP2rAue
         PGUTR2SgHkd/IwevDBqPNcI0M/uFnuZR3mNqnEvZJ404PuJLw+hk/lFb9F7SPWrsZ/3L
         m+UA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702554924; x=1703159724;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=frIWyUhYo0oHbOzv9NBBMa8IQEpBKv17gm4P7VxxLl0=;
        b=uG2vio2LGvcDm87Ir/4PTUVGdYgcrmFw+MiXjBQzhc1TXp+s+V2p98RAglrdiebzJs
         2+B91MngUeI+8nHbtJZMRuKHtn6VURWLpzekmRKgIKtPuy16u0cadKTozLgO2XDWvCp/
         pBqnK8/V29rpHPay9bxDnQUMUQg8AJhoFOUkMTCdbDZQQKDwA+eiaNaBXeklN7hcs68z
         cl6cxyQJd2i6w32eq1o9iZqSUveYZnYGb0krrFsW4iAIS8diXlgdg+fP7+dKN5A+mpEB
         3o7nXMVnE/B4WCOIcgLp90PkvXIRYbBhy/Df3R7WmKOZ5GIB6q9NgO7gbfnOB8GOVai6
         688g==
X-Gm-Message-State: AOJu0YwZPUlrUY0/xxMJG5Sp4KVVFF0mYwdApKfc1y6+TdYdDoKkW+Jw
	NJ0ZVxjEIKqBL2f9UtxH4QF3
X-Google-Smtp-Source: AGHT+IFQGzlkE514oCN8swImk7xNoTAIPF3f2XvEWEwzPxfb0DxdE/B4TFNB+y9RCiQIohDZ5wc1dQ==
X-Received: by 2002:a17:907:c30b:b0:a0d:ac30:4963 with SMTP id tl11-20020a170907c30b00b00a0dac304963mr6722513ejc.76.1702554924093;
        Thu, 14 Dec 2023 03:55:24 -0800 (PST)
Message-ID: <6226aa5e-c87f-48bf-b793-96aa04498c5e@suse.com>
Date: Thu, 14 Dec 2023 12:55:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] xen/x86: introduce self modifying code test
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.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: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-3-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231214101719.18770-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 11:17, Roger Pau Monne wrote:
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -58,6 +58,7 @@
>  #include <asm/microcode.h>
>  #include <asm/prot-key.h>
>  #include <asm/pv/domain.h>
> +#include <asm/test-smoc.h>
>  
>  /* opt_nosmp: If true, secondary processors are ignored. */
>  static bool __initdata opt_nosmp;
> @@ -1951,6 +1952,8 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
>  
>      alternative_branches();
>  
> +    test_smoc(XEN_SYSCTL_TEST_SMOC_ALL, NULL);

I realize I'm at risk of causing scope creep, but I'd still like to at
least ask: As further self-tests are added, we likely don't want to
alter __start_xen() every time. Should there perhaps better be a wrapper
(going forward: multiple ones, depending on the time tests want invoking),
together with a Kconfig control to allow suppressing all of these tests in
at least release builds?

> --- /dev/null
> +++ b/xen/arch/x86/test/smoc.c
> @@ -0,0 +1,68 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#include <xen/errno.h>
> +
> +#include <asm/alternative.h>
> +#include <asm/cpufeature.h>
> +#include <asm/test-smoc.h>
> +
> +static bool cf_check test_insn_replacement(void)
> +{
> +#define EXPECTED_VALUE 2
> +    unsigned int r = ~EXPECTED_VALUE;
> +
> +    alternative_io("", "mov %1, %0", X86_FEATURE_ALWAYS,
> +                   "+r" (r), "i" (EXPECTED_VALUE));
> +
> +    return r == EXPECTED_VALUE;
> +#undef EXPECTED_VALUE
> +}
> +
> +int test_smoc(uint32_t selection, uint32_t *results)
> +{
> +    struct {
> +        unsigned int mask;
> +        bool (*test)(void);
> +        const char *name;
> +    } static const tests[] = {
> +        { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
> +          "alternative instruction replacement" },
> +    };
> +    unsigned int i;
> +
> +    if ( selection & ~XEN_SYSCTL_TEST_SMOC_ALL )
> +        return -EINVAL;
> +
> +    if ( results )
> +        *results = 0;
> +
> +    printk(XENLOG_INFO "Checking Self Modify Code\n");
> +
> +    for ( i = 0; i < ARRAY_SIZE(tests); i++ )
> +    {
> +        if ( !(selection & tests[i].mask) )
> +            continue;
> +
> +        if ( tests[i].test() )
> +        {
> +            if ( results )
> +                *results |= tests[i].mask;
> +            continue;
> +        }
> +
> +        add_taint(TAINT_ERROR_SMOC);
> +        printk(XENLOG_ERR "%s test failed\n", tests[i].name);

Do we really want both of these even when coming here from the sysctl?

> --- a/xen/common/kernel.c
> +++ b/xen/common/kernel.c
> @@ -386,13 +386,14 @@ char *print_tainted(char *str)
>  {
>      if ( tainted )
>      {
> -        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c",
> +        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c%c",
>                   tainted & TAINT_MACHINE_INSECURE ? 'I' : ' ',
>                   tainted & TAINT_MACHINE_CHECK ? 'M' : ' ',
>                   tainted & TAINT_SYNC_CONSOLE ? 'C' : ' ',
>                   tainted & TAINT_ERROR_INJECT ? 'E' : ' ',
>                   tainted & TAINT_HVM_FEP ? 'H' : ' ',
> -                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ');
> +                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ',
> +                 tainted & TAINT_ERROR_SMOC ? 'A' : ' ');

How well is this going to scale as other selftests are added? IOW should
this taint really be self-modifying-code-specific?

> --- a/xen/include/public/sysctl.h
> +++ b/xen/include/public/sysctl.h
> @@ -1180,6 +1180,7 @@ struct xen_sysctl_cpu_policy {
>  };
>  typedef struct xen_sysctl_cpu_policy xen_sysctl_cpu_policy_t;
>  DEFINE_XEN_GUEST_HANDLE(xen_sysctl_cpu_policy_t);
> +
>  #endif
>  
>  #if defined(__arm__) || defined (__aarch64__)

Stray change (perhaps leftover from moving code around)?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:01:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:01:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654515.1021461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkP3-0008UG-8N; Thu, 14 Dec 2023 12:01:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654515.1021461; Thu, 14 Dec 2023 12:01: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 1rDkP3-0008U9-5K; Thu, 14 Dec 2023 12:01:21 +0000
Received: by outflank-mailman (input) for mailman id 654515;
 Thu, 14 Dec 2023 12:01: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=1CT4=HZ=alyssa.is=hi@srs-se1.protection.inumbo.net>)
 id 1rDkP0-0008U3-TA
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:01:20 +0000
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com
 [66.111.4.26]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a327db0-9a78-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 13:01:16 +0100 (CET)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
 by mailout.nyi.internal (Postfix) with ESMTP id B10D45C0166;
 Thu, 14 Dec 2023 07:01:12 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute5.internal (MEProxy); Thu, 14 Dec 2023 07:01:12 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 14 Dec 2023 07:01:10 -0500 (EST)
Received: by mbp.qyliss.net (Postfix, from userid 1000)
 id CA06894F7; Thu, 14 Dec 2023 13:01:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a327db0-9a78-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; 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=1702555272; x=1702641672; bh=1B4ThV600u
	QJHMyzGQwCFJGfVJ0JM9hKUZygdHA8jvY=; b=QxG9+FzVUnxG1xQHfwDHotyTDI
	4WbBVE/grZ3na48o2hQurbCrzTLdLS0nfAIGugLqe6tCH7Hz/K3xdTR8plhIgysM
	CLshuII9GWg678c62IkMQLgbadvrq7dnYnydAKvDWWkDnRG1moLH9bpVVY+xD1NW
	snK4pu3GdOqcouXMbW544fGvG+Jm3DpeX3a1XSmpVXy88sg6a7YntKyETOkWJzh7
	+d3Z/G1UB1ZnoQ/lBey6pi+Tu2H+cfEGa7Kg10D3P+/KTwK8UPDQzWoYri2vJ6b1
	KJcFt8pME5p21PqelvRaowAtDqkUNbAMaewSQzuSaXNB6qwDkgcWwk/VcChQ==
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=
	fm1; t=1702555272; x=1702641672; bh=1B4ThV600uQJHMyzGQwCFJGfVJ0J
	M9hKUZygdHA8jvY=; b=XI87XLh3jv1ua4maFylcDpTJDEwnanYfQEz4juby/+ED
	RZ6sR87y+wVy4Hfq9F8ECXMwwguW2j+aZnR/tHlpsREsuH7FoLw2bNGhKj8kmjfK
	iVHJd1CvlVl3R98KlEaD5R+QFprvtCnY7bnw6lP2bhIYjVADVaIsQis+1fkMObAo
	TXxsUzlG1K/mJTS6tq+UUo1yzpvKEfUpxozwqrSMHvxdjWsg3KNH3hgmHaES9EzQ
	Sp5A7XWdU+GGBJtTXz5HS3NraQLDivuImFdTd9Ww2TsaNQwAvHaHs8MX9s8/liIv
	Skya9q/KlusOCoYhYh2cniP9AtDEAQg018CmsLHvKA==
X-ME-Sender: <xms:h-56ZQVsKPUqJ3SpOgQKUv3L-79KwwNf3RF76RxGjI8AVo-TaOXHMA>
    <xme:h-56ZUmY1OUliHUS_6tTbkXbSJqxDC6WPzQ760gCzaDSp96lWrqSzXoMhFqbykDQi
    Gv6lvXGvnF1zjLOeg>
X-ME-Received: <xmr:h-56ZUbFAoWyVrzzKOasOFDwiMT-RhI5oyseAt0fldW18ZHo4jEELGabknceIJ_j2tI5laOwZX0pDSVfEbEo1XaGpEqq>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudelledgfeegucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepfffhvfevuffkfhggtggujgesghdtsfertddtvdenucfhrhhomheptehlhihs
    shgrucftohhsshcuoehhihesrghlhihsshgrrdhisheqnecuggftrfgrthhtvghrnheptd
    ejueetkeehfeeuleeugfevieffkefhteefiedvfeehuefhjeegvdeiffeihfeinecuvehl
    uhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhephhhisegrlhihsh
    hsrgdrihhs
X-ME-Proxy: <xmx:h-56ZfVO1vQmL2Y9Ydla-TqlDcd1qUHxqTCj_cUGWEqXt7wrqdoIhw>
    <xmx:h-56ZamAT0ZgS7clk3lojibHg-HxeD8WepAdXTuFVCvEx5_eiEAciQ>
    <xmx:h-56ZUc6JAjYIF_wbVyhPgLkfA6i2kfPuSIvpipMz70EYByVWlVy3Q>
    <xmx:iO56ZfgWIZuUM1RvE3xItuBBcEDsy7JAtgKRRLepvIGKvBmmdBGiAA>
Feedback-ID: i12284293:Fastmail
Date: Thu, 14 Dec 2023 13:01:09 +0100
From: Alyssa Ross <hi@alyssa.is>
To: Arnd Bergmann <arnd@kernel.org>
Cc: Juergen Gross <jgross@suse.com>, Thomas Gleixner <tglx@linutronix.de>, 
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] x86/xen: add CPU dependencies for 32-bit build
Message-ID: <snd4jotxfjwcekc52dhkyhn6gcxtaqyo3fchxd5acgvsvcoiqi@douctxdas3fu>
References: <20231204084722.3789473-1-arnd@kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="bjargecwevzoc6i5"
Content-Disposition: inline
In-Reply-To: <20231204084722.3789473-1-arnd@kernel.org>


--bjargecwevzoc6i5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Mon, Dec 04, 2023 at 09:47:01AM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> Xen only supports modern CPUs even when running a 32-bit kernel, and it now
> requires a kernel built for a 64 byte (or larger) cache line:
>
> In file included from <command-line>:
> In function 'xen_vcpu_setup',
>     inlined from 'xen_vcpu_setup_restore' at arch/x86/xen/enlighten.c:111:3,
>     inlined from 'xen_vcpu_restore' at arch/x86/xen/enlighten.c:141:3:
> include/linux/compiler_types.h:435:45: error: call to '__compiletime_assert_287' declared with attribute error: BUILD_BUG_ON failed: sizeof(*vcpup) > SMP_CACHE_BYTES
> arch/x86/xen/enlighten.c:166:9: note: in expansion of macro 'BUILD_BUG_ON'
>   166 |         BUILD_BUG_ON(sizeof(*vcpup) > SMP_CACHE_BYTES);
>       |         ^~~~~~~~~~~~
>
> Enforce the dependency with a whitelist of CPU configurations. In normal
> distro kernels, CONFIG_X86_GENERIC is enabled, and this works fine. When this
> is not set, still allow Xen to be built on kernels that target a 64-bit
> capable CPU.
>
> Fixes: db2832309a82 ("x86/xen: fix percpu vcpu_info allocation")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

This fixes 32-bit distro kernel builds in Nixpkgs, which regressed
with a recent stable kernel update.  Thanks!

Tested-by: Alyssa Ross <hi@alyssa.is>

>  arch/x86/xen/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
> index 9b1ec5d8c99c..a65fc2ae15b4 100644
> --- a/arch/x86/xen/Kconfig
> +++ b/arch/x86/xen/Kconfig
> @@ -9,6 +9,7 @@ config XEN
>  	select PARAVIRT_CLOCK
>  	select X86_HV_CALLBACK_VECTOR
>  	depends on X86_64 || (X86_32 && X86_PAE)
> +	depends on X86_64 || (X86_GENERIC || MPENTIUM4 || MCORE2 || MATOM || MK8)
>  	depends on X86_LOCAL_APIC && X86_TSC
>  	help
>  	  This is the Linux Xen port.  Enabling this will allow the
> --
> 2.39.2
>

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

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

iQIzBAABCAAdFiEEH9wgcxqlHM/ARR3h+dvtSFmyccAFAmV67oEACgkQ+dvtSFmy
ccAnEw//dm9vi/PyxEvDgewLQcikutEaQ4Mr/mlXW1mcleyv2baqH09M6PSn/g4D
GeZIGzxLMK54gwgw0b+zqgXD1r7x2A27qQLsFOpEFM+LE3LcejJcULczHvznQ1IX
3kFLjGWh0zzFPrQYZ/CST9RtP0w57LF0QHgZ8Mc4Am4n5+irPeLX8/K14LiK//6i
79L1E/3N4w3L3TG2QP/6KinYgjhDNMJlzUgclSv6etMkZ35FRV+vAeZbh8porE/j
vkba4GuxjuHiBXGe4oKBDjtNJJyxVbEJzW+CHguwxtYimxq1cuwQNBhZpDZ5xjVn
5n53mxAeOX0IwXUoiQfhVUJ4OIidpUiDn9+9OCZPk/jDGCh0QbGkRxNTXw1iywSJ
iQ3EX3Iron/n1wwP/cX3ntCkJZkQxbSNwqXJ0OZtxqTeOcBJKqFibiytCGAPuzaf
iXDiowlss71+d005qC7+RmCVr2lj81B60OIungWzBUfN606XLrTLZk7u5Q2Y/0Md
nDPx123HMbHxon+2aiTsKHJwQ6gcebUGNVPKXv5zTHyLBS6Nm4ngWTrAVCU1srDg
K01jNFSd2vFGYXDpbxHF8nDczQ207UxHv80BYcbKT9UejszhTY8Bv7ApKsDpU5Ax
1vs0Q92y0gbzq56sB+v30doKgMH5Afkw5+M+HBT1ZtDdiBGJ/O8=
=hV3v
-----END PGP SIGNATURE-----

--bjargecwevzoc6i5--


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654522.1021499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWI-0001ST-A7; Thu, 14 Dec 2023 12:08:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654522.1021499; Thu, 14 Dec 2023 12:08:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWI-0001Od-3X; Thu, 14 Dec 2023 12:08:50 +0000
Received: by outflank-mailman (input) for mailman id 654522;
 Thu, 14 Dec 2023 12:08:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWG-0000tI-KV
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:08:48 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 88302c32-9a79-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 13:08:46 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id B01994EE0742;
 Thu, 14 Dec 2023 13:08:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88302c32-9a79-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 2/9] xen/arm: address violations of MISRA C:2012 Rule 11.8
Date: Thu, 14 Dec 2023 13:07:44 +0100
Message-Id: <1ad7937f9aa2086e76a87c8edf8105bd4476bf39.1702555387.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Add missing const qualifiers in casts.
The variables are originally const-qualified.
There's no reason to drop the qualifiers.
No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 xen/arch/arm/bootfdt.c                 | 6 +++---
 xen/arch/arm/include/asm/alternative.h | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
index f496a8cf94..e7948ea3e8 100644
--- a/xen/arch/arm/bootfdt.c
+++ b/xen/arch/arm/bootfdt.c
@@ -377,7 +377,7 @@ static int __init process_chosen_node(const void *fdt, int node,
         printk("linux,initrd-start property has invalid length %d\n", len);
         return -EINVAL;
     }
-    start = dt_read_paddr((void *)&prop->data, dt_size_to_cells(len));
+    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 )
@@ -390,7 +390,7 @@ static int __init process_chosen_node(const void *fdt, int node,
         printk("linux,initrd-end property has invalid length %d\n", len);
         return -EINVAL;
     }
-    end = dt_read_paddr((void *)&prop->data, dt_size_to_cells(len));
+    end = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
 
     if ( start >= end )
     {
@@ -541,7 +541,7 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
 
     add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
 
-    ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
+    ret = device_tree_for_each_node((const void *)fdt, 0, early_scan_node, NULL);
     if ( ret )
         panic("Early FDT parsing failed (%d)\n", ret);
 
diff --git a/xen/arch/arm/include/asm/alternative.h b/xen/arch/arm/include/asm/alternative.h
index d3210e82f9..c7632668b6 100644
--- a/xen/arch/arm/include/asm/alternative.h
+++ b/xen/arch/arm/include/asm/alternative.h
@@ -20,7 +20,7 @@ struct alt_instr {
 };
 
 /* Xen: helpers used by common code. */
-#define __ALT_PTR(a,f)		((void *)&(a)->f + (a)->f)
+#define __ALT_PTR(a,f)		((const void *)&(a)->f + (a)->f)
 #define ALT_ORIG_PTR(a)		__ALT_PTR(a, orig_offset)
 #define ALT_REPL_PTR(a)		__ALT_PTR(a, repl_offset)
 
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654520.1021487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWH-0001Be-Ic; Thu, 14 Dec 2023 12:08:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654520.1021487; Thu, 14 Dec 2023 12:08:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWH-0001AS-Bl; Thu, 14 Dec 2023 12:08:49 +0000
Received: by outflank-mailman (input) for mailman id 654520;
 Thu, 14 Dec 2023 12:08:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWF-0000tI-VF
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:08:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87e99b2e-9a79-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 13:08:45 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 39B574EE0744;
 Thu, 14 Dec 2023 13:08:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87e99b2e-9a79-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 1/9] xen/arm64: address violations of MISRA C:2012 Rule 11.8
Date: Thu, 14 Dec 2023 13:07:43 +0100
Message-Id: <b29e28544eb7772c3df633b176b9698e0ee9ae88.1702555387.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Add volatile qualifiers missing in casts.
Arguments p and ptr are originally volatile-qualified.
There's no reason to drop the qualifiers.
No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 xen/arch/arm/arm64/lib/bitops.c          |  6 ++++--
 xen/arch/arm/include/asm/arm64/cmpxchg.h | 10 +++++-----
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/arm64/lib/bitops.c b/xen/arch/arm/arm64/lib/bitops.c
index 20e3f3d6ce..275a780329 100644
--- a/xen/arch/arm/arm64/lib/bitops.c
+++ b/xen/arch/arm/arm64/lib/bitops.c
@@ -32,7 +32,8 @@
 static always_inline bool int_##name(int nr, volatile void *p, bool timeout,\
                                      unsigned int max_try)                  \
 {                                                                           \
-    volatile uint32_t *ptr = (uint32_t *)p + BITOP_WORD((unsigned int)nr);  \
+    volatile uint32_t *ptr = (volatile uint32_t *)p +                       \
+                             BITOP_WORD((unsigned int)nr);                  \
     const uint32_t mask = BITOP_MASK((unsigned int)nr);                     \
     unsigned long res, tmp;                                                 \
                                                                             \
@@ -67,7 +68,8 @@ bool name##_timeout(int nr, volatile void *p, unsigned int max_try)         \
 static always_inline bool int_##name(int nr, volatile void *p, int *oldbit, \
                                      bool timeout, unsigned int max_try)    \
 {                                                                           \
-    volatile uint32_t *ptr = (uint32_t *)p + BITOP_WORD((unsigned int)nr);  \
+    volatile uint32_t *ptr = (volatile uint32_t *)p +                       \
+                             BITOP_WORD((unsigned int)nr);                  \
     unsigned int bit = (unsigned int)nr % BITOP_BITS_PER_WORD;              \
     const uint32_t mask = BITOP_MASK(bit);                                  \
     unsigned long res, tmp;                                                 \
diff --git a/xen/arch/arm/include/asm/arm64/cmpxchg.h b/xen/arch/arm/include/asm/arm64/cmpxchg.h
index dbfaf91567..031fa6d92a 100644
--- a/xen/arch/arm/include/asm/arm64/cmpxchg.h
+++ b/xen/arch/arm/include/asm/arm64/cmpxchg.h
@@ -13,7 +13,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
 		"1:	ldxrb	%w0, %2\n"
 		"	stlxrb	%w1, %w3, %2\n"
 		"	cbnz	%w1, 1b\n"
-			: "=&r" (ret), "=&r" (tmp), "+Q" (*(u8 *)ptr)
+			: "=&r" (ret), "=&r" (tmp), "+Q" (*(volatile u8 *)ptr)
 			: "r" (x)
 			: "memory");
 		break;
@@ -22,7 +22,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
 		"1:	ldxrh	%w0, %2\n"
 		"	stlxrh	%w1, %w3, %2\n"
 		"	cbnz	%w1, 1b\n"
-			: "=&r" (ret), "=&r" (tmp), "+Q" (*(u16 *)ptr)
+			: "=&r" (ret), "=&r" (tmp), "+Q" (*(volatile u16 *)ptr)
 			: "r" (x)
 			: "memory");
 		break;
@@ -31,7 +31,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
 		"1:	ldxr	%w0, %2\n"
 		"	stlxr	%w1, %w3, %2\n"
 		"	cbnz	%w1, 1b\n"
-			: "=&r" (ret), "=&r" (tmp), "+Q" (*(u32 *)ptr)
+			: "=&r" (ret), "=&r" (tmp), "+Q" (*(volatile u32 *)ptr)
 			: "r" (x)
 			: "memory");
 		break;
@@ -40,7 +40,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
 		"1:	ldxr	%0, %2\n"
 		"	stlxr	%w1, %3, %2\n"
 		"	cbnz	%w1, 1b\n"
-			: "=&r" (ret), "=&r" (tmp), "+Q" (*(u64 *)ptr)
+			: "=&r" (ret), "=&r" (tmp), "+Q" (*(volatile u64 *)ptr)
 			: "r" (x)
 			: "memory");
 		break;
@@ -82,7 +82,7 @@ static inline bool __cmpxchg_case_##name(volatile void *ptr,		\
 		"	stxr" #sz "	%w0, %" #w "4, %2\n"		\
 		"1:\n"							\
 		: "=&r" (res), "=&r" (oldval),				\
-		  "+Q" (*(unsigned long *)ptr)				\
+		  "+Q" (*(volatile unsigned long *)ptr)	\
 		: "Ir" (*old), "r" (new)				\
 		: "cc");						\
 									\
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654523.1021507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWI-0001Yl-QR; Thu, 14 Dec 2023 12:08:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654523.1021507; Thu, 14 Dec 2023 12:08:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWI-0001Wq-GK; Thu, 14 Dec 2023 12:08:50 +0000
Received: by outflank-mailman (input) for mailman id 654523;
 Thu, 14 Dec 2023 12:08:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWH-0000tC-BT
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:08:49 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 896fae79-9a79-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 13:08:48 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id CEBE34EE0C8D;
 Thu, 14 Dec 2023 13:08:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 896fae79-9a79-11ee-98e9-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@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>,
	Wei Liu <wl@xen.org>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 7/9] x86/hvm: address violations of MISRA C:2012 Rule 11.8
Date: Thu, 14 Dec 2023 13:07:49 +0100
Message-Id: <bfdd8f021230224e3bb1aea2aceaf2c712615ba7.1702555387.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Remove unnecessary cast.
from is a const-qualified pointer to void and the function hvm_copy_to_guest_linear
requires a const void* type argument, therefore the cast to void* is not necessary.

No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 xen/arch/x86/hvm/hvm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 35a30df3b1..523e0df57c 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3462,7 +3462,7 @@ unsigned int copy_to_user_hvm(void *to, const void *from, unsigned int len)
         return 0;
     }
 
-    rc = hvm_copy_to_guest_linear((unsigned long)to, (void *)from, len, 0, NULL);
+    rc = hvm_copy_to_guest_linear((unsigned long)to, from, len, 0, NULL);
     return rc ? len : 0; /* fake a copy_to_user() return code */
 }
 
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654518.1021471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWG-0000tV-0f; Thu, 14 Dec 2023 12:08:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654518.1021471; Thu, 14 Dec 2023 12: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 1rDkWF-0000tO-Tx; Thu, 14 Dec 2023 12:08:47 +0000
Received: by outflank-mailman (input) for mailman id 654518;
 Thu, 14 Dec 2023 12: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=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWE-0000tC-MS
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:08:46 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87b94610-9a79-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 13:08:45 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 436BB4EE073A;
 Thu, 14 Dec 2023 13:08:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87b94610-9a79-11ee-98e9-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@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>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH 0/9]  xen: address violations of MISRA C:2012 Rule 11.8
Date: Thu, 14 Dec 2023 13:07:42 +0100
Message-Id: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic
qualification from the type pointed to by a pointer".

This patch amends or removes casts that unnecessarily drop
const and volatile qualifiers.

Example:

 static always_inline bool int_##name(volatile void *p)
 {
    volatile uint32_t *ptr = (uint32_t *)p;             /* Non-compliant */
    volatile uint32_t *ptr = (volatile uint32_t *)p;    /* Compliant, proposed change */
 }

In this example, the volatile qualifier is unnecessarily removed
from the original object, therefore making it non-compliant.


Deviate the following violations:

- removal of const qualifier to comply with function signature
  It is safe to cast away const qualifiers to comply with function
  signature if the function does not modify the pointee.
  A SAF-3-safe comment was added to deviate this violation.

- violations in macro container_of
  Violations caused by this macro are due to pointer arithmetic operations
  with the provided offset. The resulting pointer is then immediately cast back to its
  original type, which preserves the qualifier. This use can be deemed as safe.

- violations in function ERR_CAST
  This function is made to explicitly cast an error-valued pointer to a void
  pointer type to make it clear that's what's going on, so the violation is deliberate.


Maria Celeste Cesario (9):
  xen/arm64: address violations of MISRA C:2012 Rule 11.8
  xen/arm: address violations of MISRA C:2012 Rule 11.8
  xen/efi: address violations of MISRA C:2012 Rule 11.8
  ACPI: address violations of MISRA C:2012 Rule 11.8
  xen/x86: address violations of MISRA C:2012 Rule 11.8
  xen/ppc: address violations of MISRA C:2012 Rule 11.8.
  x86/hvm: address violations of MISRA C:2012 Rule 11.8
  xen: add deviations for Rule 11.8
  xen: add SAF deviation for safe cast removal.

 automation/eclair_analysis/ECLAIR/deviations.ecl | 12 ++++++++++++
 docs/misra/deviations.rst                        | 13 +++++++++++++
 docs/misra/safe.json                             |  8 ++++++++
 xen/arch/arm/arm64/lib/bitops.c                  |  6 ++++--
 xen/arch/arm/bootfdt.c                           |  6 +++---
 xen/arch/arm/include/asm/alternative.h           |  2 +-
 xen/arch/arm/include/asm/arm64/cmpxchg.h         | 10 +++++-----
 xen/arch/ppc/include/asm/atomic.h                |  2 +-
 xen/arch/x86/boot/reloc.c                        |  4 ++--
 xen/arch/x86/hvm/hvm.c                           |  3 ++-
 xen/common/efi/boot.c                            |  6 +++---
 xen/common/version.c                             |  2 +-
 xen/include/acpi/acmacros.h                      |  2 +-
 13 files changed, 56 insertions(+), 20 deletions(-)

-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654521.1021493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWH-0001Ef-UZ; Thu, 14 Dec 2023 12:08:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654521.1021493; Thu, 14 Dec 2023 12:08:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWH-0001D0-Jv; Thu, 14 Dec 2023 12:08:49 +0000
Received: by outflank-mailman (input) for mailman id 654521;
 Thu, 14 Dec 2023 12:08: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=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWG-0000tC-BR
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:08:48 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 88f990b8-9a79-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 13:08:47 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 118C74EE0743;
 Thu, 14 Dec 2023 13:08:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88f990b8-9a79-11ee-98e9-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@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>,
	Wei Liu <wl@xen.org>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 5/9] xen/x86: address violations of MISRA C:2012 Rule 11.8
Date: Thu, 14 Dec 2023 13:07:47 +0100
Message-Id: <68e28c7631f1233df1527674cfc27cf3f44797a7.1702555387.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Add missing const qualifiers in casts.

Macro get_mb2_data returns values that are const-qualified.
The results are stored in const struct pointers, hence
there's no need to cast away the const qualifiers.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 xen/arch/x86/boot/reloc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
index df0bc710a7..77fdb2be05 100644
--- a/xen/arch/x86/boot/reloc.c
+++ b/xen/arch/x86/boot/reloc.c
@@ -300,8 +300,8 @@ static multiboot_info_t *mbi2_reloc(uint32_t mbi_in, uint32_t video_out)
                 const struct vesa_mode_info *mi;
 
                 video = _p(video_out);
-                ci = (void *)get_mb2_data(tag, vbe, vbe_control_info);
-                mi = (void *)get_mb2_data(tag, vbe, vbe_mode_info);
+                ci = (const void *)get_mb2_data(tag, vbe, vbe_control_info);
+                mi = (const void *)get_mb2_data(tag, vbe, vbe_mode_info);
 
                 if ( ci->version >= 0x0200 && (mi->attrib & 0x9b) == 0x9b )
                 {
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654519.1021481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWH-00018Q-80; Thu, 14 Dec 2023 12:08:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654519.1021481; Thu, 14 Dec 2023 12:08:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWH-00018J-4l; Thu, 14 Dec 2023 12:08:49 +0000
Received: by outflank-mailman (input) for mailman id 654519;
 Thu, 14 Dec 2023 12:08:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWF-0000tC-Lc
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:08:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 88b622c6-9a79-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 13:08:47 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id B2FEA4EE0C8A;
 Thu, 14 Dec 2023 13:08:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88b622c6-9a79-11ee-98e9-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@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>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 4/9] ACPI: address violations of MISRA C:2012 Rule 11.8
Date: Thu, 14 Dec 2023 13:07:46 +0100
Message-Id: <44c8f94bcfe4f0e33e53a7eb8aef826e7d906196.1702555387.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Add missing const qualifiers missing in casting.
There's no reason to drop the const qualifier in ACPI_COMPARE_NAME since
the macro arguments are not modified in its body.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 xen/include/acpi/acmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/acpi/acmacros.h b/xen/include/acpi/acmacros.h
index 86c503c20f..d7c74c5769 100644
--- a/xen/include/acpi/acmacros.h
+++ b/xen/include/acpi/acmacros.h
@@ -116,7 +116,7 @@
 #define ACPI_PTR_TO_PHYSADDR(i)         ACPI_TO_INTEGER(i)
 
 #ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
-#define ACPI_COMPARE_NAME(a,b)          (*ACPI_CAST_PTR (u32,(a)) == *ACPI_CAST_PTR (u32,(b)))
+#define ACPI_COMPARE_NAME(a,b)          (*ACPI_CAST_PTR (const u32,(a)) == *ACPI_CAST_PTR (const u32,(b)))
 #else
 #define ACPI_COMPARE_NAME(a,b)          (!ACPI_STRNCMP (ACPI_CAST_PTR (char,(a)), ACPI_CAST_PTR (char,(b)), ACPI_NAME_SIZE))
 #endif
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654524.1021515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWJ-0001sB-Fj; Thu, 14 Dec 2023 12:08:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654524.1021515; Thu, 14 Dec 2023 12:08:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWJ-0001pJ-BU; Thu, 14 Dec 2023 12:08:51 +0000
Received: by outflank-mailman (input) for mailman id 654524;
 Thu, 14 Dec 2023 12:08: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=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWH-0000tI-KV
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:08:49 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8880a984-9a79-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 13:08:46 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 3360D4EE0747;
 Thu, 14 Dec 2023 13:08:46 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8880a984-9a79-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 3/9] xen/efi: address violations of MISRA C:2012 Rule 11.8
Date: Thu, 14 Dec 2023 13:07:45 +0100
Message-Id: <4540a3850dae951dd6bc4f9b001c9816bde2e49e.1702555387.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Add missing const qualifiers in casts.
The variables are originally const-qualified.
There's no reason to drop the qualifiers.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 xen/common/efi/boot.c | 6 +++---
 xen/common/version.c  | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 6110819918..efbec00af9 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1248,10 +1248,10 @@ static void __init efi_exit_boot(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *Syste
 #endif
 
     /* Adjust pointers into EFI. */
-    efi_ct = (void *)efi_ct + DIRECTMAP_VIRT_START;
-    efi_rs = (void *)efi_rs + DIRECTMAP_VIRT_START;
+    efi_ct = (const void *)efi_ct + DIRECTMAP_VIRT_START;
+    efi_rs = (const void *)efi_rs + DIRECTMAP_VIRT_START;
     efi_memmap = (void *)efi_memmap + DIRECTMAP_VIRT_START;
-    efi_fw_vendor = (void *)efi_fw_vendor + DIRECTMAP_VIRT_START;
+    efi_fw_vendor = (const void *)efi_fw_vendor + DIRECTMAP_VIRT_START;
 }
 
 /* SAF-1-safe */
diff --git a/xen/common/version.c b/xen/common/version.c
index d320135208..6ac5a52700 100644
--- a/xen/common/version.c
+++ b/xen/common/version.c
@@ -178,7 +178,7 @@ void __init xen_build_init(void)
     if ( &n[1] >= __note_gnu_build_id_end )
         return;
 
-    sz = (void *)__note_gnu_build_id_end - (void *)n;
+    sz = (const void *)__note_gnu_build_id_end - (const void *)n;
 
     rc = xen_build_id_check(n, sz, &build_id_p, &build_id_len);
 
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654525.1021524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWK-00021z-72; Thu, 14 Dec 2023 12:08:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654525.1021524; Thu, 14 Dec 2023 12: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 1rDkWJ-00020q-Uo; Thu, 14 Dec 2023 12:08:51 +0000
Received: by outflank-mailman (input) for mailman id 654525;
 Thu, 14 Dec 2023 12: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=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWI-0000tC-BU
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12: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 89c53d18-9a79-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 13:08:49 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 46A274EE0C81;
 Thu, 14 Dec 2023 13:08:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89c53d18-9a79-11ee-98e9-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH 8/9] xen: add deviations for Rule 11.8
Date: Thu, 14 Dec 2023 13:07:50 +0100
Message-Id: <854747a97c4c7a70bfe1a30a038f2cc6aebfb566.1702555387.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Deviate use of macro container_of.
Deviate use of function ERR_CAST.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
container_of: Fixing this violation would require the declaration of a new
 macro taking advantage of the return value of the ternary operator ?: :
 its return value preserves qualifiers present on both expression, hence
 returning void* or qualified void* depending on pointer type, like in this macro:
 '#define same_constness_void_ptr(ptr) ((typeof((false ? (void*) 1 : (ptr)))) (ptr))'
 The result could then be used with a Generic to avoid the cast.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 12 ++++++++++++
 docs/misra/deviations.rst                        | 13 +++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 683f2bbfe8..d3e32a6ac8 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -292,6 +292,18 @@ constant expressions are required.\""
 # Series 11
 #
 
+-doc_begin="Violations caused by container_of are due to pointer arithmetic operations
+with the provided offset. The resulting pointer is then immediately cast back to its
+original type, which preserves the qualifier. This use can be deemed as safe.
+Fixing this violation would require to increase code complexity and lower readability."
+-config=MC3R1.R11.8,reports+={safe,"any_area(any_loc(any_exp(macro(^container_of$))))"}
+-doc_end
+
+-doc_begin="This function is made to explicitly cast an error-valued pointer to a void
+pointer type to make it clear that's what's going on, so the violation is deliberate."
+-config=MC3R1.R11.8,reports+={deliberate,"all_area(context(^ERR_CAST\\(.*$))"}
+-doc_end
+
 -doc_begin="This construct is used to check if the type is scalar, and for this purpose the use of 0 as a null pointer constant is deliberate."
 -config=MC3R1.R11.9,reports+={deliberate, "any_area(any_loc(any_exp(macro(^__ACCESS_ONCE$))))"
 }
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index eda3c8100c..98733d636d 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -248,6 +248,19 @@ Deviations related to MISRA C:2012 Rules:
        If no bits are set, 0 is returned.
      - Tagged as `safe` for ECLAIR.
 
+   * - R11.8
+     - Violations caused by container_of are due to pointer arithmetic operations
+       with the provided offset. The resulting pointer is then immediately cast back to its
+       original type, which preserves the qualifier. This use can be deemed as safe.
+       Fixing this violation would require to increase code complexity and lower readability.
+     - Tagged as `safe` for ECLAIR.
+    
+   * - R11.8
+     - This function is made to explicitly cast an error-valued pointer to a
+       void pointer type to make it clear that's what's going on, so the
+       violation is deliberate.
+     - Tagged ad `deliberate` for ECLAIR.
+
    * - R11.9
      - __ACCESS_ONCE uses an integer, which happens to be zero, as a
        compile time check. The typecheck uses a cast. The usage of zero or other
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654526.1021534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWK-0002DQ-U5; Thu, 14 Dec 2023 12:08:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654526.1021534; Thu, 14 Dec 2023 12: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 1rDkWK-0002Bh-FA; Thu, 14 Dec 2023 12:08:52 +0000
Received: by outflank-mailman (input) for mailman id 654526;
 Thu, 14 Dec 2023 12: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=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWI-0000tI-KY
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:08:50 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 892a5a09-9a79-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 13:08:48 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 7D10A4EE0C8F;
 Thu, 14 Dec 2023 13:08:47 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 892a5a09-9a79-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 6/9] xen/ppc: address violations of MISRA C:2012 Rule 11.8.
Date: Thu, 14 Dec 2023 13:07:48 +0100
Message-Id: <0dcaf3a85f3293168b993c42303dfd55684a7bb7.1702555387.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Fix violation by adding missing const qualifier in cast.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
Adaptation requested by the community to make the code more consistent.
---
 xen/arch/ppc/include/asm/atomic.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/ppc/include/asm/atomic.h b/xen/arch/ppc/include/asm/atomic.h
index 64168aa3f1..fe778579fb 100644
--- a/xen/arch/ppc/include/asm/atomic.h
+++ b/xen/arch/ppc/include/asm/atomic.h
@@ -16,7 +16,7 @@
 
 static inline int atomic_read(const atomic_t *v)
 {
-    return *(volatile int *)&v->counter;
+    return *(const volatile int *)&v->counter;
 }
 
 static inline int _atomic_read(atomic_t v)
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:08:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654527.1021550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWM-0002ll-E9; Thu, 14 Dec 2023 12:08:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654527.1021550; Thu, 14 Dec 2023 12:08:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkWL-0002hP-V2; Thu, 14 Dec 2023 12:08:53 +0000
Received: by outflank-mailman (input) for mailman id 654527;
 Thu, 14 Dec 2023 12:08:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWU9=HZ=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rDkWJ-0000tI-Kj
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:08:51 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a19fd92-9a79-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 13:08:49 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id D060B4EE0C91;
 Thu, 14 Dec 2023 13:08:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a19fd92-9a79-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH 9/9] xen: add SAF deviation for safe cast removal.
Date: Thu, 14 Dec 2023 13:07:51 +0100
Message-Id: <36e996b864853dba26a9c9fb9c9c674e92cc935e.1702555387.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

In function __hvm_copy, the const qualifier is cast away to comply with its
function signature. There's no modification of the pointee during its
execution, therefore its use can be deemed as safe.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
 docs/misra/safe.json   | 8 ++++++++
 xen/arch/x86/hvm/hvm.c | 1 +
 2 files changed, 9 insertions(+)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 952324f85c..e748bc6cf5 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -28,6 +28,14 @@
         },
         {
             "id": "SAF-3-safe",
+            "analyser": {
+                "eclair": "MC3R1.R11.8"
+            },
+            "name": "MC3R1.R11.8: removal of const qualifier to comply with function signature",
+            "text": "It is safe to cast away const qualifiers to comply with function signature if the function does not modify the pointee."
+        },
+        {
+            "id": "SAF-4-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 523e0df57c..414853254f 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3413,6 +3413,7 @@ static enum hvm_translation_result __hvm_copy(
 enum hvm_translation_result hvm_copy_to_guest_phys(
     paddr_t paddr, const void *buf, unsigned int size, struct vcpu *v)
 {
+    /* SAF-3-safe */
     return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */,
                       paddr, size, v,
                       HVMCOPY_to_guest | HVMCOPY_phys, 0, NULL);
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:36:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:36:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654559.1021570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDkwm-00034U-84; Thu, 14 Dec 2023 12:36:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654559.1021570; Thu, 14 Dec 2023 12: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 1rDkwm-00034N-5V; Thu, 14 Dec 2023 12:36:12 +0000
Received: by outflank-mailman (input) for mailman id 654559;
 Thu, 14 Dec 2023 12:36: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDkwl-00034F-7s
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:36:11 +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 5a5290de-9a7d-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 13:36:07 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a1db99cd1b2so1035381266b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 04:36:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 sl9-20020a170906618900b00a1cf7b31e9csm9227109ejc.89.2023.12.14.04.36.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 04:36:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a5290de-9a7d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702557367; x=1703162167; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=83KRkcynFeOjSAQ7DjVgOT+OEPh+NEpdKx4dRl0wsZ8=;
        b=Rqbtf+xtlIHKOH5qFeLdOOzu1bPZhtxgf99pNu5j1YBbrAKObQMNARXnebSODEt69G
         X1iYZ6uHB9tipFJIFd4IDH/o/MQvTjZGJzc8bg2h+ZFJRHc/w8e8VnVWUA+PkqwE/mOb
         pBZ/mv1iFU8IUrjmcAAdtB6zi0g1fqEQqqIXmHi2Oqzx2KH8V4xXtawyqEyUzX5mOX64
         8p6PSZmXYlNtFeJsNo8rL7O090FQVXkkyM7gU5dOyF/zDncapW4XGe1G5tavaK3iHgrX
         y2aNqb2vrd1AT5e9vgoRQD6TJQVe0YYozWx1ohJCFQLT14q4SOtBbKP7fWuC90aWmQAj
         1cfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702557367; x=1703162167;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=83KRkcynFeOjSAQ7DjVgOT+OEPh+NEpdKx4dRl0wsZ8=;
        b=OyoeFNU2dU/+zdbkCVxlHO0IEt+TFkB6bxSl+JO1KYHynLArld/4jNtvvKoEwAvwGJ
         q5KzzStegIdqKBrXHU28REjDHlBHb3qJ7NZrYXHVzvSHbAtLn1W04caHAhkICYmiEQZ1
         GUVEkEaBaDXucjbuudAhg1JR7TcsHCpyWgxrq/dv810sUOvIkN0yrzVlVPAF/IDlmlAd
         fKxZDtma5/Uf+Vhrfpq3h1unIGblupO+juuJdB64OJgHUEdLM57aIOOJRaYjKQUUnApM
         LaFf7SxgxLUKlLmLptFaYJSKwRd97WylaRgFOSw5+Q/qDDYEcHOsqRoLdcT0TmvBEnK/
         C4kg==
X-Gm-Message-State: AOJu0YwXJApxON6AjLjkmeiYBzlIRwMa/LvLR8pVnOd4ApqcCIBYWa0H
	z1oxNZBZqiV8FGngENzaN/rw
X-Google-Smtp-Source: AGHT+IHnaEIG9ELwNH7u9q8A3H8QeehkMCmNUtZ2qpFiI8ikDePBZNQEfNSZHG5AqfZUsgCI1T/AVw==
X-Received: by 2002:a17:907:94d4:b0:a1a:8399:e12d with SMTP id dn20-20020a17090794d400b00a1a8399e12dmr3820380ejc.64.1702557366816;
        Thu, 14 Dec 2023 04:36:06 -0800 (PST)
Message-ID: <3b3996fb-ec66-468e-8ee8-eb8e7648f59d@suse.com>
Date: Thu, 14 Dec 2023 13:36:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/9] xen: address violations of MISRA C:2012 Rule 11.8
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Cc: consulting@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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Shawn Anastasio <sanastasio@raptorengineering.com>,
 Doug Goldstein <cardoe@cardoe.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.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: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 13:07, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic
> qualification from the type pointed to by a pointer".
> 
> This patch amends or removes casts that unnecessarily drop
> const and volatile qualifiers.
> 
> Example:
> 
>  static always_inline bool int_##name(volatile void *p)
>  {
>     volatile uint32_t *ptr = (uint32_t *)p;             /* Non-compliant */
>     volatile uint32_t *ptr = (volatile uint32_t *)p;    /* Compliant, proposed change */
>  }

Why would you further complicate things when here the cast can simply
be dropped?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:46:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:46:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654562.1021580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDl6T-0005jF-36; Thu, 14 Dec 2023 12:46:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654562.1021580; Thu, 14 Dec 2023 12:46:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDl6T-0005j8-0Y; Thu, 14 Dec 2023 12:46:13 +0000
Received: by outflank-mailman (input) for mailman id 654562;
 Thu, 14 Dec 2023 12: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDl6R-0005j2-B5
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:46:11 +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 c0f04129-9a7e-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 13:46:09 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a1f6433bc1eso112589466b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 04:46:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 sa16-20020a1709076d1000b00a1da72b8752sm9274533ejc.212.2023.12.14.04.46.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 04:46:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0f04129-9a7e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702557968; x=1703162768; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=lsyAzTx9akiZfijKEWKipOctHdoPXGdStYQoTmxwkGU=;
        b=eStyOKTsV5WnerSd/USp5Mq5Pw2EmB2K7k68I/gzokcXlopB/CORCFtiiszjC20C/Y
         KhmQxviyPP4bkq5l0WQqfSHltTFnkFNYk1AoUTZDe2bkwBs6b2EcBp51fiM5uKb5oyqR
         YC6FLarNXhTKoifOI2gWrs1e3RoSDzaKylAP2GZzWlURdPSMzwAygAzH4xo6KVkJXMpU
         UraN2/leefd5ao16diTxjOdkUwm8zNwtmL953Bf6FeFyFk81JbWZaXNXTOx7kd1zCM5d
         cBXnQaAAJrslXgHdePKvtxaTsFuTU7REg3PPJAQOHCrXVtfuUQhAHbDYUHTmpVStbsdm
         5PbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702557968; x=1703162768;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=lsyAzTx9akiZfijKEWKipOctHdoPXGdStYQoTmxwkGU=;
        b=sTvq2nPJkYwJQgsWZUO0qMujfiY6GvxRLVn/pWsHzZp7D72dGwJItt8hJWX27HaaKG
         li0OXOqsyqr9yLknXAcHuo7orgd68r022ohq0xN2ZZbqezT+kufdyZBi9B45Wwlr/vAz
         yJKAnxocuGjCvyvskx1MIatW5R46svimhgHPkB0jwhVFmOBJZRyrFvhvIJ4GcJttG39H
         8mju68NQ6JB1um4wjkt+XeOBD7yBPK4jDVZ+mL6iXME3wqf6JEDXz2zWK9Jn2KHTVl/W
         RvpyBthsFuTrcJEgXX+DwdjehlijdjNE/AOb1TQeKv67z8EQqyDWFteVRH6cWJArIPAh
         RbwA==
X-Gm-Message-State: AOJu0YwEUiZPMI2As2Cj/wBkwZ9NwCuF3ltcveNnQSmw4XX3ka++sXLw
	GRwQKoYO4D4x8YSBb48DxBfK
X-Google-Smtp-Source: AGHT+IFe0NUpJ/WdwQm9RA1sMz8NDzACSVxNQLCnOYiT4onmNHJgmXkRrHJOD03a94tVZbFeI2CAaQ==
X-Received: by 2002:a17:907:7e8b:b0:a1d:58c0:ed7a with SMTP id qb11-20020a1709077e8b00b00a1d58c0ed7amr10745143ejc.38.1702557968377;
        Thu, 14 Dec 2023 04:46:08 -0800 (PST)
Message-ID: <ea5d25db-f035-47b5-999d-72a6f670fcd6@suse.com>
Date: Thu, 14 Dec 2023 13:46:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 8/9] xen: add deviations for Rule 11.8
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Cc: consulting@bugseng.com, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
 <854747a97c4c7a70bfe1a30a038f2cc6aebfb566.1702555387.git.maria.celeste.cesario@bugseng.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: <854747a97c4c7a70bfe1a30a038f2cc6aebfb566.1702555387.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 13:07, Simone Ballarin wrote:
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -292,6 +292,18 @@ constant expressions are required.\""
>  # Series 11
>  #
>  
> +-doc_begin="Violations caused by container_of are due to pointer arithmetic operations
> +with the provided offset. The resulting pointer is then immediately cast back to its
> +original type, which preserves the qualifier. This use can be deemed as safe.
> +Fixing this violation would require to increase code complexity and lower readability."
> +-config=MC3R1.R11.8,reports+={safe,"any_area(any_loc(any_exp(macro(^container_of$))))"}
> +-doc_end
> +
> +-doc_begin="This function is made to explicitly cast an error-valued pointer to a void
> +pointer type to make it clear that's what's going on, so the violation is deliberate."
> +-config=MC3R1.R11.8,reports+={deliberate,"all_area(context(^ERR_CAST\\(.*$))"}
> +-doc_end

While the wording is okay here, ...

> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -248,6 +248,19 @@ Deviations related to MISRA C:2012 Rules:
>         If no bits are set, 0 is returned.
>       - Tagged as `safe` for ECLAIR.
>  
> +   * - R11.8
> +     - Violations caused by container_of are due to pointer arithmetic operations
> +       with the provided offset. The resulting pointer is then immediately cast back to its
> +       original type, which preserves the qualifier. This use can be deemed as safe.
> +       Fixing this violation would require to increase code complexity and lower readability.
> +     - Tagged as `safe` for ECLAIR.
> +    
> +   * - R11.8
> +     - This function is made to explicitly cast an error-valued pointer to a
> +       void pointer type to make it clear that's what's going on, so the
> +       violation is deliberate.
> +     - Tagged ad `deliberate` for ECLAIR.

... "This function" here is entirely unclear. However, seeing ERR_CAST() has
no users, wouldn't we be better off simply removing it? (Otherwise, nit:
"Tagged as ...".)

Jan



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 12:56:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 12:56:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654566.1021590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDlG0-00085X-5B; Thu, 14 Dec 2023 12:56:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654566.1021590; Thu, 14 Dec 2023 12:56:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDlG0-00085Q-2Y; Thu, 14 Dec 2023 12:56:04 +0000
Received: by outflank-mailman (input) for mailman id 654566;
 Thu, 14 Dec 2023 12:56:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDlFy-00085K-3v
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 12:56:02 +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 212dba49-9a80-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 13:55:59 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2cc259392a6so56279301fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 04:55:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ch13-20020a0564021bcd00b005485282a520sm1730096edb.75.2023.12.14.04.55.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 04:55:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 212dba49-9a80-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702558559; x=1703163359; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+QkoaH5WsVctKTNHsw0uJGdS4MR6bkE9ymMeyyLGWHo=;
        b=Lsj19HXfacqXX7O0QkM+6oJXNSybTt+gLFNiKhdu3mnbv+IhcwJ22Dv/v/sdDmHPcF
         X37i5Fa8OfViZhPMoBQwW3v2IkFUA/TCgg7Vj83nun0f5ovjuB1EMKpKGouJY2exlrn9
         1V12nJWuBqfQnQQ2tFCQ8IAoKYIzSdL6jQ8MiDDqTWGVD06mxS1cHH11gJbbdruDoyh1
         4wHhAd0vTS/0BZ6ZSrXO+VIL5yI74e/oR3L4SkbohZg5fFehaTD7AYX+e/jRUYOobfuV
         0XSRuilCY6rPjzZP+OMfUbN1hI/tMp6yMy/W7QNJhfRRxEguzYYdddYy44xswL63bM/j
         hBzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702558559; x=1703163359;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=+QkoaH5WsVctKTNHsw0uJGdS4MR6bkE9ymMeyyLGWHo=;
        b=IrRZrA3W6zb6yd8McYaxvM4NXbYSYEzfhrdC9kzQ4NVahmXqjel/yT4TbpDAOw/jlo
         dWbzQqXLSd8eU3v1rivUavGAIn6IwzfpuL9wv82aiWkANE6/RmsIW3ZDjlCCweKfR/y6
         4pORE0BVmPN0Ow9t/CcOA5UdpAEO1Uype9eFdvp6rtYOEKVK3GV8etQPjpkOTLb/zHB4
         kSWiNvC2iezhrNxA+cTCnw36ma+1chyHd7++DvjfDmb5Z/HUEXl6/E09VwAf5kBoT0p8
         UFruUdNHHBaXUutqhK7Q5dK6ty3BMnukcLSD399ZBaLvGlsHFh5YslzwWHwCxFAUFJ1e
         GQzw==
X-Gm-Message-State: AOJu0YxSNOQXQT6PMJLiqbZow304scgOikU38evJ+XRzJdaFF3l2xtwa
	EtmtH5lcMqYVnxx7csgxbbck
X-Google-Smtp-Source: AGHT+IEGjD6L85IxpCrAfW44BH75qJqrAjpdQnpTBlIuJC3yfio7B2LiPNtNrdxpqXWUhvKjkbUxUA==
X-Received: by 2002:a2e:a5c3:0:b0:2cc:1ea9:c34 with SMTP id n3-20020a2ea5c3000000b002cc1ea90c34mr6128511ljp.63.1702558559380;
        Thu, 14 Dec 2023 04:55:59 -0800 (PST)
Message-ID: <a50a26c4-9de6-4443-8ee4-e5ce867fe90d@suse.com>
Date: Thu, 14 Dec 2023 13:55:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/4] x86/livepatch: introduce a basic live patch test
 to gitlab CI
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.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: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-4-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231214101719.18770-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.12.2023 11:17, Roger Pau Monne wrote:
> Introduce a basic livepatch test using the interface to run self modifying
> tests.  The introduced test relies on changing a function from returning false
> to returning true.
> 
> To simplify the burden of keeping a patch that can be provided to
> livepatch-build-tools, introduce two new files: one containing the unpatched
> test functions, and another one that contains the patched forms of such
> functions.  Note that only the former is linked into the Xen image, the latter
> is built but the object file is not consumed afterwards.  Do this to assert
> that the file containing the patched functions continues to build.
> 
> Since livepatch testing will ensure that the functions are not patched previous
> the applying the livepatch, allow the livepatch related tests to fail without
> tainting the hypervisor.
> 
> Note the livepatch tests are not run as part of the self modifying checks
> executed during boot, as they would obviously fail.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

I'm still not overly happy with those comments though, but yes - -O2 is likely
the only thing that matters in practice, until such time that we have a way to
allow use of -Os without any Makefile changes or other custom overrides.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 13:20:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 13:20:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654569.1021601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDldN-0004im-18; Thu, 14 Dec 2023 13:20:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654569.1021601; Thu, 14 Dec 2023 13: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 1rDldM-0004if-Ug; Thu, 14 Dec 2023 13:20:12 +0000
Received: by outflank-mailman (input) for mailman id 654569;
 Thu, 14 Dec 2023 13: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDldM-0004iW-DA
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 13:20: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 818b64bc-9a83-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 14:20:10 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a22fb5f71d9so121979066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 05:20:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ld4-20020a1709079c0400b00a1df88cc7c0sm9251893ejc.182.2023.12.14.05.20.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 05:20:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 818b64bc-9a83-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702560009; x=1703164809; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=miiwjMSAR/4BwalvAv/FwIicIF//rDW3MRsMW2tbB7g=;
        b=RUtKBcZBo/M3rdST5KMqNkpPkYsBEl1xY1fDtABuGw7KVnKiMtA6HpgWiTIwNmaeNk
         HaW8mjRA4RahJjtZku3PMiNX1/wbFLUl+2kzvDyje6bB+HClK511SJvItD1hUUoYLFCI
         O2TvYdjAhUq66qglmLxN2UpkiGLy8QZ9Kgrhd0vEv7MH3hUyk5kRr/0H+Vs1Cmmhww3t
         0T6BRSLTkckpp/OsTGgg6f2tHN1ciGkDbdt/QWtAoYvJWEeQ4ctWBOAAmIT5CEGIWzzV
         slBHpsuTiQRkkDFRE/ifu2sWH/OR0TekcykzwCvMCYqRHM5BUGMgE9FBmojM2nC3sMoO
         MR4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702560009; x=1703164809;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=miiwjMSAR/4BwalvAv/FwIicIF//rDW3MRsMW2tbB7g=;
        b=pmJgiiQsv2/g6sBldMW2utm6TtpLXOh/jfOVaec2+kUeqUrPIqbTeY6ux6Vu5QtyoV
         A7lBirwZcJAyJpFpABqwUKXYfV4TBmJacI8gaKT40iuWSWXQnksOKEGaLgVyHupT8hZs
         8TrTQc6Sd5Cv0nD56nd1qIAx3MCc71lYsY6tjbElr8CLGTzVAmaoDgPuUelOL9nrmEVt
         hrQnbT8QkVxhP464gCFfIUgozz/uj67uuDXAVcuKxT4q0TdQ1fZyCPr/mtn6cfV/go9I
         Zv4xN0R0WMpFSJiv50RxmwpxNQ/vgd1c2Z2N/aDTbQHWOdx7/4Aut0KJ6TXETqtCXShz
         XWjQ==
X-Gm-Message-State: AOJu0Yy/gBjMdKuFrC86ednoKjeQY7S7OiJsm9IzbIy/CTOBOQ7alqL5
	mSGiz/fqRwWnfTsbytMIFIWb
X-Google-Smtp-Source: AGHT+IGxphF/I9uOoudKMSfWlcVw6WWitUNJACvkyPvQ0fJxUGtA98SwmJpU6c0yTf/nqJ+JRCKKow==
X-Received: by 2002:a17:907:94d5:b0:a1e:6e3d:14ef with SMTP id dn21-20020a17090794d500b00a1e6e3d14efmr12125378ejc.60.1702560009675;
        Thu, 14 Dec 2023 05:20:09 -0800 (PST)
Message-ID: <19793b3b-60c3-47d1-9a40-914e7e0c47fd@suse.com>
Date: Thu, 14 Dec 2023 14:20:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/39] xen/riscv: add public arch-riscv.h
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: 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>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <fc7bb0a821ce58ef908ed0282b6678d19269ffc1.1700761381.git.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: <fc7bb0a821ce58ef908ed0282b6678d19269ffc1.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

If this is enough for the time being, so be it:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 13:27:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 13:27:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654572.1021612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDlkG-0005gG-RN; Thu, 14 Dec 2023 13:27:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654572.1021612; Thu, 14 Dec 2023 13: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 1rDlkG-0005g9-Ms; Thu, 14 Dec 2023 13:27:20 +0000
Received: by outflank-mailman (input) for mailman id 654572;
 Thu, 14 Dec 2023 13:27:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDlkF-0005g3-92
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 13:27:19 +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 80988236-9a84-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 14:27:17 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50bf69afa99so10473010e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 05:27:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 n2-20020a05640205c200b0055122551f98sm4313737edx.6.2023.12.14.05.27.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 05:27:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80988236-9a84-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702560437; x=1703165237; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=UW+LEd6alLWbY1UlBiK9EgrgI3DwgKwGv2EtAM42Pkg=;
        b=K24cEDqCEoahS7boyton4mfGKddFsyerr/0hPkGLmQA+lO8DwST7QXTU+aHfeRjUvP
         wWoqVY6U35X7axzOG/SHEp+AeDxn7fNi7xkmAYtM1X7x9Sj8wGQmvBF8SlCZbIZh6QEZ
         Y2VvT9Nni9TyEZ1GS1QXqqLoCxMpMMnegQsvCPi4Cozlu0SKDrzyIz7xOu+mxW/DGb0Y
         BVx6artqGDJY09qhpnzwTy0mbw8y2BPAr5ZMiXoEbEwCGya9qn0dikL0j/jrQpnE8lBc
         Ibp11pNusgrB3ToTIZaFvRV+Rjps+iKEbVUHIsvjx9e993sqDGsx/TbHZofYNMLaFpMt
         DnXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702560437; x=1703165237;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=UW+LEd6alLWbY1UlBiK9EgrgI3DwgKwGv2EtAM42Pkg=;
        b=vCnh1hvXEP2lYxqdZ3cmVdxTwvcOaQMjkt5iMT/lCE5cYiHK2gnp35AAPb7SZQewW7
         Et3cTd6P3Db1JXfzFxaz7FdhVKeJ/ChEgrZFcYUBP8jlCaO6bAu0P1HjpEZqlWtFtpkt
         n97Z4AYxtcTIh9IHrAlhhzMFFds5pHQIZCpdbF6VK9BzQEhvBU0adX3bLnnLGoMLn7md
         Z2IrnfzOuALXbXDHfTx4I43TtDaw50XCWmwptC4doDXu90cu30LutKGUzNQlDAr7H8W5
         XvHngVjR9obV/zK5YbJD7iCF0y9/1HE8ZI29zNvxUueIUgfFsfueVV/jkyZLDXWFrTZr
         9qWg==
X-Gm-Message-State: AOJu0YwJ3tT4Z2/C5VfEnoFCy3dnV8IWJZo83zb8dKJi+X8P2m28fs+j
	W1jfqalrxnrEGU1tu8DFZ22e
X-Google-Smtp-Source: AGHT+IG3ZOcMgNMoId/+MS4gdWQYMu+40a8MlIGUGo3E651c+XAyuYzdw6YakOZgSDzSDQWNbY92WQ==
X-Received: by 2002:a05:6512:689:b0:50d:1968:9f8e with SMTP id t9-20020a056512068900b0050d19689f8emr6766546lfe.100.1702560437525;
        Thu, 14 Dec 2023 05:27:17 -0800 (PST)
Message-ID: <ab8479db-b9f0-43b2-a751-349c7a59287d@suse.com>
Date: Thu, 14 Dec 2023 14:27:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 21/39] xen/riscv: introduce bit operations
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <20732007fb103115c0e01cefea7d113b8a7ad8e9.1700761381.git.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: <20732007fb103115c0e01cefea7d113b8a7ad8e9.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Did you write this code from scratch? If not, you need to at least point
out the origin. But: None of this looks RISC-V specific, so shouldn't it
instead be put under xen/lib/, as a fallback implementation for arch-es
not having optimized implementations? Looks also at least very similar
to Arm64's, so that one perhaps then will want dropping as well? We
surely don't want to carry two (almost) identical copies of the same
logic.

> --- /dev/null
> +++ b/xen/arch/riscv/lib/Makefile
> @@ -0,0 +1 @@
> +obj-y += find_next_bit.o

Dashes instead of underscores please in new file's names, whenever
possible.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 13:30:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 13:30:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654575.1021621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDlnZ-0007SH-9w; Thu, 14 Dec 2023 13:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654575.1021621; Thu, 14 Dec 2023 13:30:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDlnZ-0007SA-5I; Thu, 14 Dec 2023 13:30:45 +0000
Received: by outflank-mailman (input) for mailman id 654575;
 Thu, 14 Dec 2023 13:30: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 1rDlnX-0007S0-Gi; Thu, 14 Dec 2023 13:30: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 1rDlnX-0003g4-3b; Thu, 14 Dec 2023 13:30: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 1rDlnW-00007m-PG; Thu, 14 Dec 2023 13:30:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDlnW-0001Qn-Od; Thu, 14 Dec 2023 13:30: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=cS3DaKy4Vk1OYLr+svdA2xXmHxC/PXOE18RY2pdEZrQ=; b=MIsEOaaUIAyo5ObUkNK2FzB/V6
	s5JCOGknvP8hguLgFEVjQ3e6M33zOcWJfCduWchG6scvqoBKWZmpVmpIJs2BiqE9m5vPKY5HdNux5
	9+maEwDVGQh0DUk5GBL52Q5HETXvJi3xH+1J5NevSHhfCBZM4x+mk+PwC/BOzZCZzIqo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184135-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184135: 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=cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
X-Osstest-Versions-That:
    xen=75571e162b78b73401307ce40f732021ae57d49a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 14 Dec 2023 13:30:42 +0000

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

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                  cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
baseline version:
 xen                  75571e162b78b73401307ce40f732021ae57d49a

Last test of basis   184128  2023-12-13 17:02:04 Z    0 days
Testing same since   184135  2023-12-14 10:03:56 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Anthony PERARD <anthony.perard@citrix.com>
  George Dunlap <george.dunlap@cloud.com>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Shawn Anastasio <sanastasio@raptorengineering.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
   75571e162b..cad6f9a4c1  cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 13:37:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 13:37:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654580.1021630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDltt-0008S7-Um; Thu, 14 Dec 2023 13:37:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654580.1021630; Thu, 14 Dec 2023 13:37:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDltt-0008Rz-SE; Thu, 14 Dec 2023 13:37:17 +0000
Received: by outflank-mailman (input) for mailman id 654580;
 Thu, 14 Dec 2023 13:37:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDlts-0008Rn-DT
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 13:37:16 +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 e47cbda7-9a85-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 14:37:15 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-336445a2749so849328f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 05:37:15 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 v16-20020adfa1d0000000b003362e9b75c3sm6688908wrv.88.2023.12.14.05.37.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 05:37:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e47cbda7-9a85-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702561034; x=1703165834; 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=QPZRLKtzmCkjomHNkLIabNem0o9UPKydqQh6vIquRcM=;
        b=ESmNA2q0xWPtan4+bEV6SoXNveCiLaI6eIEcZ2qqW5KCYnCwT6tKDH1USSTwA8bB9b
         zeG3/zk0PDVcIypcgEzTTcGzmDvGivxZJrQnrJzbyQ/JBKtH/1OjEztGig4YoXzVPRzo
         ndQjAgCt0pWF/7ZyTvl2GeYanutaalV2Olc0w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702561034; x=1703165834;
        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=QPZRLKtzmCkjomHNkLIabNem0o9UPKydqQh6vIquRcM=;
        b=qqHMlLSscHq1Z+IL/cfjDNPqczhRECazTaHH83OeRm+LvasjDuIrmE0pRUZbezY5c5
         3A2+wBbA+/zfrT+8g1+1ymI7T1s27e7XH6m76/cnjOHci2h6cQCvbjYLtmkLS6L1ukJt
         biADb0GalYBgPvBmmfh7cE7KoIBPVptPBDqqthOFys1r7zR5Ihb6KESw7NZlC2Z6X06C
         WGAr9a1nrWylIIiak97VyrgFFYMLOoojb2/EgNv02x2Y5GhoSIQQYsj7HyAZUX2hoZeO
         yYl+q4XCdbPqn6XObJKJXZJum+vbxg67nvj78AXoprtVBcTbh9PAPLJeeRcCJMH0gzL0
         TN8w==
X-Gm-Message-State: AOJu0Yxj+YxflxZhC0o8F+a0WhV+NfIqMXkwIT+bb2SKyh9IXLjeYuuq
	NVjnQW7J1LjruI4lumKhWu1Ejg==
X-Google-Smtp-Source: AGHT+IFi2tSesHRWb0MLrzkRu9zmC3x5MBu/poA5aGvzbRdbLslgPgqPRuWFPmwhANzqDGHlUSUCIw==
X-Received: by 2002:adf:cf0e:0:b0:336:445a:ec51 with SMTP id o14-20020adfcf0e000000b00336445aec51mr703630wrj.143.1702561034560;
        Thu, 14 Dec 2023 05:37:14 -0800 (PST)
Date: Thu, 14 Dec 2023 14:37:13 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Message-ID: <ZXsFCSd1xpngciP3@macbook>
References: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-2-roger.pau@citrix.com>
 <4f6c3481-a44c-4176-a414-b32639556bb0@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
In-Reply-To: <4f6c3481-a44c-4176-a414-b32639556bb0@suse.com>

On Thu, Dec 14, 2023 at 12:18:13PM +0100, Jan Beulich wrote:
> On 14.12.2023 11:17, Roger Pau Monne wrote:
> > The minimal function size requirements for livepatch are either 5 bytes=
 (for
> > jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  E=
nsure
> > that distance between functions entry points is always at least of the =
minimal
> > required size for livepatch instruction replacement to be successful.
> >=20
> > Add an additional align directive to the linker script, in order to ens=
ure that
> > the next section placed after the .text.* (per-function sections) is al=
so
> > aligned to the required boundary, so that the distance of the last func=
tion
> > entry point with the next symbol is also of minimal size.
> >=20
> > Note that it's possible for the compiler to end up using a higher funct=
ion
> > alignment regardless of the passed value, so this change just make sure=
 that
> > the minimum required for livepatch to work is present.
>=20
> That's a possibility which we don't need to be concerned about. Yet isn't=
 it
> also possible that we override a larger, deemed better (e.g. performance-=
wise)
> value?

I'm kind of confused, the compiler will always choose the higher
alignment.  For example non-debug builds on my box end up with
function sections aligned to 16 instead of the 8 passed in the
-falign-functions=3D parameter:

$ clang -MMD -MP -MF arch/x86/.traps.o.d -m64 -DBUILD_ID -fno-strict-aliasi=
ng -std=3Dgnu99 -Wall -Wstrict-prototypes -Wno-unused-but-set-variable -Wno=
-unused-local-typedefs   -Werror=3Dunknown-warning-option -O2 -fomit-frame-=
pointer -falign-functions=3D8 -nostdinc -fno-builtin -fno-common -Werror -W=
redundant-decls -Wwrite-strings -Wno-pointer-arith -Wdeclaration-after-stat=
ement -Wvla -pipe -D__XEN__ -include ./include/xen/config.h -ffunction-sect=
ions -fdata-sections -mretpoline-external-thunk  -I./include -I./arch/x86/i=
nclude -I./arch/x86/include/generated -I./arch/x86/include/asm/mach-generic=
 -I./arch/x86/include/asm/mach-default -DXEN_IMG_OFFSET=3D0x200000 -msoft-f=
loat -fno-pie -fno-stack-protector -fno-exceptions -fno-asynchronous-unwind=
-tables -Wnested-externs -DHAVE_AS_VMX -DHAVE_AS_SSE4_2 -DHAVE_AS_EPT -DHAV=
E_AS_RDRAND -DHAVE_AS_FSGSBASE -DHAVE_AS_XSAVEOPT -DHAVE_AS_RDSEED -DHAVE_A=
S_CLAC_STAC -DHAVE_AS_CLWB -DHAVE_AS_QUOTED_SYM -DHAVE_AS_INVPCID -DHAVE_AS=
_MOVDIR -DHAVE_AS_ENQCMD -mno-red-zone -fpic -mno-mmx -mno-sse -mskip-rax-s=
etup -fcf-protection=3Dnone -Wa,-I./include -Wa,-I./include '-D__OBJECT_LAB=
EL__=3Darch/x86/traps.o'   -DXEN_BUILD_EFI -DBUILD_ID_EFI -c arch/x86/traps=
=2Ec -o arch/x86/.traps.o.tmp -MQ arch/x86/traps.o

$ readelf -WS xen/arch/x86/traps.o

There are 107 section headers, starting at offset 0xe2e0:

Section Headers:
  [Nr] Name              Type            Addr             Off    Size   ES =
Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00 =
     0   0  0
  [ 1] .text             PROGBITS        0000000000000000 000040 000000 00 =
 AX  0   0  4
  [ 2] .text.show_code   PROGBITS        0000000000000000 000040 000287 00 =
 AX  0   0 16
  [ 3] .rela.text.show_code RELA            0000000000000000 008520 000450 =
18   I 104   2  8
  [ 4] .altinstructions  PROGBITS        0000000000000000 0002c7 00024c 00 =
  A  0   0  1
  [ 5] .rela.altinstructions RELA            0000000000000000 008970 0007e0=
 18   I 104   4  8
  [ 6] .discard          PROGBITS        0000000000000000 000513 000054 00 =
  A  0   0  1
  [ 7] .altinstr_replacement PROGBITS        0000000000000000 000567 000018=
 00  AX  0   0  1
  [ 8] .ex_table         PROGBITS        0000000000000000 000580 000028 00 =
  A  0   0  4
  [ 9] .rela.ex_table    RELA            0000000000000000 009150 0000f0 18 =
  I 104   8  8
  [10] .text.get_stack_trace_bottom PROGBITS        0000000000000000 0005b0=
 000046 00  AX  0   0 16
  [11] .text.get_stack_dump_bottom PROGBITS        0000000000000000 000600 =
00003d 00  AX  0   0 16
  [12] .text.show_stack_overflow PROGBITS        0000000000000000 000640 00=
0158 00  AX  0   0 16
[...]

> I'm somewhat concerned of that case. IOW is -falign-functions=3D really
> the right option to use here? (There may not be one which we would actual=
ly
> prefer to use.) Specifically -falign-functions (without a value, i.e. usi=
ng a
> machine dependent default) is implied by -O2 and -O3, as per 13.2 gcc doc.

Right, and that still works fine AFAICT, see how in the example above
functions ended up aligned to 16 even when -falign-functions=3D8 was
provided on the command line.

> > --- a/xen/Kconfig
> > +++ b/xen/Kconfig
> > @@ -37,6 +37,24 @@ config CC_HAS_VISIBILITY_ATTRIBUTE
> >  config CC_SPLIT_SECTIONS
> >  	bool
> > =20
> > +# Set function alignment.
> > +#
> > +# Allow setting on a boolean basis, and then convert such selection to=
 an
> > +# integer for the build system and code to consume more easily.
> > +config CC_HAS_FUNCTION_ALIGNMENT
> > +	def_bool $(cc-option,-falign-functions=3D8)
>=20
> How does this check make sure 4- or 16-byte alignment are also accepted as
> valid? (Requesting 8-byte alignment would be at least bogus on e.g. IA-64=
=2E)

I was confused and expected the compiler to round up to the next
supported value by the arch, but that doesn't seem to be written down
in the GCC manual at least.

One option would be to simply test for -falign-functions with no
specific alignment, and leave Kconfig code to set a suitable value on
a per-arch basis.

> > +config FUNCTION_ALIGNMENT_4B
> > +	bool
> > +config FUNCTION_ALIGNMENT_8B
> > +	bool
> > +config FUNCTION_ALIGNMENT_16B
> > +	bool
> > +config FUNCTION_ALIGNMENT
> > +	int
> > +	default 16 if FUNCTION_ALIGNMENT_16B
> > +	default  8 if  FUNCTION_ALIGNMENT_8B
> > +	default  4 if  FUNCTION_ALIGNMENT_4B
>=20
> While for the immediate purpose here no "depends on CC_HAS_FUNCTION_ALIGN=
MENT"
> is okay, I still wonder if it wouldn't better be added in case further
> "select"s appear.

Will adjust in next version.

> > --- a/xen/Makefile
> > +++ b/xen/Makefile
> > @@ -390,6 +390,9 @@ CFLAGS +=3D -fomit-frame-pointer
> >  endif
> > =20
> >  CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) +=3D -ffunction-sections -fdata-sec=
tions
> > +ifdef CONFIG_FUNCTION_ALIGNMENT
>=20
> ... e.g. this meaningless? Or is the lack of a default value leading to
> the option remaining undefined (rather than assigning some "default"
> default, e.g. 0)?

If no default value the option remain undefined, and -falign-functions
is not passed on the compiler command line.  This is required in case
the compiler doesn't support -falign-functions.

> > --- a/xen/arch/arm/xen.lds.S
> > +++ b/xen/arch/arm/xen.lds.S
> > @@ -44,6 +44,10 @@ SECTIONS
> >  #ifdef CONFIG_CC_SPLIT_SECTIONS
> >         *(.text.*)
> >  #endif
> > +#ifdef CONFIG_FUNCTION_ALIGNMENT
> > +       /* Ensure enough distance with the next placed section. */
> > +       . =3D ALIGN(CONFIG_FUNCTION_ALIGNMENT);
> > +#endif
> > =20
> >         *(.fixup)
>=20
> Seeing .fixup nicely in context - can't that (and other specialized
> sections containing code) also be patched?

The current livepatch-build-tools logic doesn't seem to detect changes
to .fixup, so I've added this to my list of stuff to fix for
livepatch.  I do see the livepatch code in the hypervisor has support
for loading extra .ex_table sections, so I assume at some point it was
considered to add support for .fixup.  My current thinking is that
=2Efixup itself won't be changed, and that instead a new .fixup will be
loaded, and the newly loaded .ex_table will reference such section.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 13:41:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 13:41:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654586.1021641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDlxf-0001si-JM; Thu, 14 Dec 2023 13:41:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654586.1021641; Thu, 14 Dec 2023 13: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 1rDlxf-0001sb-FP; Thu, 14 Dec 2023 13:41:11 +0000
Received: by outflank-mailman (input) for mailman id 654586;
 Thu, 14 Dec 2023 13:41:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDlxe-0001sS-6C
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 13:41:10 +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 6ed6ffb6-9a86-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 14:41:07 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-54dcfca54e0so10611799a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 05:41:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 cx11-20020a170907168b00b00a1d5ebe8871sm9294320ejd.28.2023.12.14.05.41.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 05:41:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ed6ffb6-9a86-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702561267; x=1703166067; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=IlsBuXrdrUY13Ll0FrcTZ09U5KvbDKYxEXqZDMbOQK0=;
        b=FcoI8bfUBAT/fnCEyuREFXhb6SJ3ae+0+vgxS2JfQuSxdlr5si6Sk30f9pr11fyJk6
         17JKPcwGsDir6an0LAfQd6bqhzNLqWiPdJA6qzi8/NixWQRgAD+Cp3vx5Ev/X2Fg7dGX
         rjAEj3QC8kUNBkCYglncBs8eziCwz+88QR3ikjgn4ly1I955pCmJdovPBPxmPXV3dtPw
         UCNYa8/artMP1Tt6pR8ia802oZwlKnBovqk6w7W7ae6NCBW2W5KJXDBYiwxbs9a4JtjK
         RQs1m28q3hDDx8wRRKmDP11ipz33WHro9eJHBT6RFUyg4VLc0RpDJRc8LmtX6btfIJrj
         hV9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702561267; x=1703166067;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=IlsBuXrdrUY13Ll0FrcTZ09U5KvbDKYxEXqZDMbOQK0=;
        b=ROGZCb2oC+hvAiLREVMRLQkn82/mq47kGb77On98i9EM7abxwa7kwtGJ8lO4YnTF2m
         SB30VdXJIkTQEObgFUkg1E811yiVtRJXBMUC7wIO6f+505zWJLjaOH7iN1VxqsuiLx9G
         Zvo1J22tw1xnn9LeYCTck8Q4iNrm2sbBAMrC6oSyV9Ms79cN2427EGjVZMtooC5LHTGh
         t9RlpSEKsoApm7Fx3c7OrwG1CATAQgOHb3ipJbcFRrdsZxzoG2ZqihlAuhP+y+0Me8YW
         7gum42VAB9Ezct97SiawdsvBelw13ZElCmLNh9om/BgfCrbGwlD0Was1jm4QFzxCLJMu
         hFFg==
X-Gm-Message-State: AOJu0YzvtqqRCBg9ppsYJhJ3L/yuYn57KyKdqVdID5GnLaQDxSn1K1AW
	dld+3l+4RAGogf2MirmKxKY1
X-Google-Smtp-Source: AGHT+IGUVAuIRrzKQjqFBvMKi0j/mzot0o21jF5rMH+zYzdlEyUsq4hXCXW4z3UgAgz22dW6wJBk9Q==
X-Received: by 2002:a50:ee99:0:b0:54c:4837:a65d with SMTP id f25-20020a50ee99000000b0054c4837a65dmr5548347edr.74.1702561266717;
        Thu, 14 Dec 2023 05:41:06 -0800 (PST)
Message-ID: <3559975c-4022-4299-a3ed-39aaa7578c95@suse.com>
Date: Thu, 14 Dec 2023 14:41:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 22/39] xen/riscv: introduce asm/domain.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <25fa93f2195ff1b87d7c7c28e6aa6eb654faca7b.1700761381.git.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: <25fa93f2195ff1b87d7c7c28e6aa6eb654faca7b.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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




From xen-devel-bounces@lists.xenproject.org Thu Dec 14 13:47:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 13:47:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654589.1021651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDm3U-0002sy-6K; Thu, 14 Dec 2023 13:47:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654589.1021651; Thu, 14 Dec 2023 13:47:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDm3U-0002sr-3U; Thu, 14 Dec 2023 13:47:12 +0000
Received: by outflank-mailman (input) for mailman id 654589;
 Thu, 14 Dec 2023 13:47:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDm3T-0002sl-Mc
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 13:47:11 +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 4704fc2a-9a87-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 14:47:09 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-33646500f1aso705868f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 05:47:09 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 c13-20020a5d4ccd000000b003363823d8aesm4675724wrt.59.2023.12.14.05.47.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 05:47:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4704fc2a-9a87-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702561629; x=1703166429; 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=7Z5kjM6mHdQQw1Cata9v1sHQkmFezXUu333JNaLdocc=;
        b=emvb8sX9vJS0FdDiH+nJyL9RsW3ynmzwOH3dhjFKjeCMSlX4UUOXBkIrLYZHeTkhha
         bjMLa3vuZEr0Fllhotpg50PmShkQSOdxYeNtRYyJ3aV+xc3TAJ2+b8QtKo0g2tjtsO9Q
         fZWIxCJndg0WQIUX62M4oyeGSOqiOm7a2MGAw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702561629; x=1703166429;
        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=7Z5kjM6mHdQQw1Cata9v1sHQkmFezXUu333JNaLdocc=;
        b=NK8P6TCCdrUs6d3ZDOxBDUI0Q4/Kb+II31vpOk20mEk/SG+q5s6IKBMma/i6+A5iZq
         Y9FcG/+IJBL1quWxW9gJaKGJ7ZkOLljjCIkIwQnkroMM95+yZ68l7XwiPvCCm0YYknhS
         gAdYpLjgLwH2Indgh5AbWkqwrVfA3wy7S0HK4XQLMrwl0JE+WVPQbQwyVKeMsOncheFA
         0AQiE9HKfK7zpZuP+B4db3EDflYIvwhJLkChn+9XIEAGENJGpezFpVq10F5qo3fsdYGD
         qulYExu+mbio1L0IpKqWY5MSOta0op9xZ/MNcKhUC/LG0639fyFhEqmEA1iF4MU4g0oC
         foOA==
X-Gm-Message-State: AOJu0Yya8Xo/2/w0aKUkoEdye3uqGzesdUPry9Myql/csVl99A6qcS/G
	G8keXEnJ/xkG++ccLwqHyL5zQg==
X-Google-Smtp-Source: AGHT+IG15CORhiR17/RvUX09J3p6TRh1Rkaf1BnYEUJYsYN7hULGJDa3lhdjRT5z3ei1HRPhjSEpPw==
X-Received: by 2002:a5d:6311:0:b0:336:3919:54fe with SMTP id i17-20020a5d6311000000b00336391954femr957381wru.162.1702561629251;
        Thu, 14 Dec 2023 05:47:09 -0800 (PST)
Date: Thu, 14 Dec 2023 14:47:07 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.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
Subject: Re: [PATCH v3 2/4] xen/x86: introduce self modifying code test
Message-ID: <ZXsHWzcCSBKRS83S@macbook>
References: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-3-roger.pau@citrix.com>
 <6226aa5e-c87f-48bf-b793-96aa04498c5e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <6226aa5e-c87f-48bf-b793-96aa04498c5e@suse.com>

On Thu, Dec 14, 2023 at 12:55:22PM +0100, Jan Beulich wrote:
> On 14.12.2023 11:17, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/setup.c
> > +++ b/xen/arch/x86/setup.c
> > @@ -58,6 +58,7 @@
> >  #include <asm/microcode.h>
> >  #include <asm/prot-key.h>
> >  #include <asm/pv/domain.h>
> > +#include <asm/test-smoc.h>
> >  
> >  /* opt_nosmp: If true, secondary processors are ignored. */
> >  static bool __initdata opt_nosmp;
> > @@ -1951,6 +1952,8 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
> >  
> >      alternative_branches();
> >  
> > +    test_smoc(XEN_SYSCTL_TEST_SMOC_ALL, NULL);
> 
> I realize I'm at risk of causing scope creep, but I'd still like to at
> least ask: As further self-tests are added, we likely don't want to
> alter __start_xen() every time. Should there perhaps better be a wrapper
> (going forward: multiple ones, depending on the time tests want invoking),
> together with a Kconfig control to allow suppressing all of these tests in
> at least release builds?

Right now I only had in mind that livepatch related tests won't be
executed as part of the call in __start_xen(), but all the other ones
would, and hence wasn't expecting the code to change from the form in
the next patch.

> > --- /dev/null
> > +++ b/xen/arch/x86/test/smoc.c
> > @@ -0,0 +1,68 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +
> > +#include <xen/errno.h>
> > +
> > +#include <asm/alternative.h>
> > +#include <asm/cpufeature.h>
> > +#include <asm/test-smoc.h>
> > +
> > +static bool cf_check test_insn_replacement(void)
> > +{
> > +#define EXPECTED_VALUE 2
> > +    unsigned int r = ~EXPECTED_VALUE;
> > +
> > +    alternative_io("", "mov %1, %0", X86_FEATURE_ALWAYS,
> > +                   "+r" (r), "i" (EXPECTED_VALUE));
> > +
> > +    return r == EXPECTED_VALUE;
> > +#undef EXPECTED_VALUE
> > +}
> > +
> > +int test_smoc(uint32_t selection, uint32_t *results)
> > +{
> > +    struct {
> > +        unsigned int mask;
> > +        bool (*test)(void);
> > +        const char *name;
> > +    } static const tests[] = {
> > +        { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
> > +          "alternative instruction replacement" },
> > +    };
> > +    unsigned int i;
> > +
> > +    if ( selection & ~XEN_SYSCTL_TEST_SMOC_ALL )
> > +        return -EINVAL;
> > +
> > +    if ( results )
> > +        *results = 0;
> > +
> > +    printk(XENLOG_INFO "Checking Self Modify Code\n");
> > +
> > +    for ( i = 0; i < ARRAY_SIZE(tests); i++ )
> > +    {
> > +        if ( !(selection & tests[i].mask) )
> > +            continue;
> > +
> > +        if ( tests[i].test() )
> > +        {
> > +            if ( results )
> > +                *results |= tests[i].mask;
> > +            continue;
> > +        }
> > +
> > +        add_taint(TAINT_ERROR_SMOC);
> > +        printk(XENLOG_ERR "%s test failed\n", tests[i].name);
> 
> Do we really want both of these even when coming here from the sysctl?

So only print the messages if system_state < SYS_STATE_active?

That would be OK by me.

> > --- a/xen/common/kernel.c
> > +++ b/xen/common/kernel.c
> > @@ -386,13 +386,14 @@ char *print_tainted(char *str)
> >  {
> >      if ( tainted )
> >      {
> > -        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c",
> > +        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c%c",
> >                   tainted & TAINT_MACHINE_INSECURE ? 'I' : ' ',
> >                   tainted & TAINT_MACHINE_CHECK ? 'M' : ' ',
> >                   tainted & TAINT_SYNC_CONSOLE ? 'C' : ' ',
> >                   tainted & TAINT_ERROR_INJECT ? 'E' : ' ',
> >                   tainted & TAINT_HVM_FEP ? 'H' : ' ',
> > -                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ');
> > +                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ',
> > +                 tainted & TAINT_ERROR_SMOC ? 'A' : ' ');
> 
> How well is this going to scale as other selftests are added? IOW should
> this taint really be self-modifying-code-specific?

I'm afraid I'm not sure I'm following.  Would you instead like to make
the taint per-test selectable?

> > --- a/xen/include/public/sysctl.h
> > +++ b/xen/include/public/sysctl.h
> > @@ -1180,6 +1180,7 @@ struct xen_sysctl_cpu_policy {
> >  };
> >  typedef struct xen_sysctl_cpu_policy xen_sysctl_cpu_policy_t;
> >  DEFINE_XEN_GUEST_HANDLE(xen_sysctl_cpu_policy_t);
> > +
> >  #endif
> >  
> >  #if defined(__arm__) || defined (__aarch64__)
> 
> Stray change (perhaps leftover from moving code around)?

Indeed, sorry.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 13:53:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 13:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654595.1021661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDm9O-0004sA-Rm; Thu, 14 Dec 2023 13:53:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654595.1021661; Thu, 14 Dec 2023 13: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 1rDm9O-0004s3-O2; Thu, 14 Dec 2023 13:53:18 +0000
Received: by outflank-mailman (input) for mailman id 654595;
 Thu, 14 Dec 2023 13:53: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDm9O-0004qi-5t
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 13:53:18 +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 219b5a81-9a88-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 14:53:16 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a1ec87a7631so723921166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 05:53:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 uv8-20020a170907cf4800b00a1d232b39b9sm9312703ejc.184.2023.12.14.05.53.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 05:53:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 219b5a81-9a88-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702561996; x=1703166796; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1HAAm/0A8H11sUiDobV+CCmylODs2FpUb5hnIaxyzKM=;
        b=JZ2o6nJvekEyDIWGROTB3FiJ4vTHUHnQEZBOB256/YYQBHOSvOJCbuoM4XXiud42/z
         xfWjn+AHr4izF+JIfKHqc0al9u3mJeQ9gjglWikbOs9wIaEKT+b8tABpKrToNCZoa+HR
         bSK10J+vSE+6gWnspkgUh0Y6pJBjvDbuU/WuylLx7EluQF07JhJJkEe3PQscHjEJflHR
         jAnqnVsLMFApisD98ISt5WjTUTspEe8lF5xZmapD8BsE8iQtl+N5iwmglOfez5LzLl9q
         SlESd5mFKMqtMhThzr6AO31Ex5s6WcIT6PLEi2m64zvtQPgzDa/Za6BkMepzAi+gUp/l
         dZnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702561996; x=1703166796;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1HAAm/0A8H11sUiDobV+CCmylODs2FpUb5hnIaxyzKM=;
        b=FMjOKVr7b8Rp6RACedMhCs1jyMWtV8FVtEZyZnpiFbfVOXXjHPW8rr/G7a1RgOk0ws
         XJhm2yoXxD0JD7cqudsLuV3W2nbjfjV9RDmRPRLHxgmy2otLOnJroARtLhalO4X9wjdJ
         JSy7/HhDSmhfG5N5LKBxyNkvMlDwwz2kcVSGg8QXsUcNBhKEvpLIjl0HhBPx/OJyEoWk
         B0HY+km2qFRa2nQucK1/AVyaU0Lh8nrVgCIm/gOcWCcZQt96e+4WaqE/52+BPRgpKl6Q
         vvjvVd1ObPSBX3raI1t4rUu/B0/6z2HS2balfazzUFfwS2kZzUX/OfIusnjkEgaWpPD6
         xvZA==
X-Gm-Message-State: AOJu0YwsKpkqU/pZC52XbfRLh0h8EWxvfW0cL5Iy6NVpmHmhOjxj7ZEv
	vdzjRW9y4k13fO3u6lisqxwJ
X-Google-Smtp-Source: AGHT+IHNuTjW11VA1yhGqQtf45RPByM4oMyt1YFLFcaCBE/sdldesJPlmL92xH9arYA4Dpx21l4Pmg==
X-Received: by 2002:a17:907:9406:b0:a1d:f1ec:1cf8 with SMTP id dk6-20020a170907940600b00a1df1ec1cf8mr6759627ejc.27.1702561996073;
        Thu, 14 Dec 2023 05:53:16 -0800 (PST)
Message-ID: <89c741b3-9388-412e-87bf-4253e28c7808@suse.com>
Date: Thu, 14 Dec 2023 14:53:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: 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>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-2-roger.pau@citrix.com>
 <4f6c3481-a44c-4176-a414-b32639556bb0@suse.com> <ZXsFCSd1xpngciP3@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXsFCSd1xpngciP3@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 14.12.2023 14:37, Roger Pau Monn=C3=A9 wrote:
> On Thu, Dec 14, 2023 at 12:18:13PM +0100, Jan Beulich wrote:
>> On 14.12.2023 11:17, Roger Pau Monne wrote:
>>> The minimal function size requirements for livepatch are either 5 byt=
es (for
>>> jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm. =
 Ensure
>>> that distance between functions entry points is always at least of th=
e minimal
>>> required size for livepatch instruction replacement to be successful.=

>>>
>>> Add an additional align directive to the linker script, in order to e=
nsure that
>>> the next section placed after the .text.* (per-function sections) is =
also
>>> aligned to the required boundary, so that the distance of the last fu=
nction
>>> entry point with the next symbol is also of minimal size.
>>>
>>> Note that it's possible for the compiler to end up using a higher fun=
ction
>>> alignment regardless of the passed value, so this change just make su=
re that
>>> the minimum required for livepatch to work is present.
>>
>> That's a possibility which we don't need to be concerned about. Yet is=
n't it
>> also possible that we override a larger, deemed better (e.g. performan=
ce-wise)
>> value?
>=20
> I'm kind of confused, the compiler will always choose the higher
> alignment.

Will it? Before writing the reply I went through gcc's respective doc
section, without finding such a guarantee.

>  For example non-debug builds on my box end up with
> function sections aligned to 16 instead of the 8 passed in the
> -falign-functions=3D parameter:
>=20
> $ clang -MMD -MP -MF arch/x86/.traps.o.d -m64 -DBUILD_ID -fno-strict-al=
iasing -std=3Dgnu99 -Wall -Wstrict-prototypes -Wno-unused-but-set-variabl=
e -Wno-unused-local-typedefs   -Werror=3Dunknown-warning-option -O2 -fomi=
t-frame-pointer -falign-functions=3D8 -nostdinc -fno-builtin -fno-common =
-Werror -Wredundant-decls -Wwrite-strings -Wno-pointer-arith -Wdeclaratio=
n-after-statement -Wvla -pipe -D__XEN__ -include ./include/xen/config.h -=
ffunction-sections -fdata-sections -mretpoline-external-thunk  -I./includ=
e -I./arch/x86/include -I./arch/x86/include/generated -I./arch/x86/includ=
e/asm/mach-generic -I./arch/x86/include/asm/mach-default -DXEN_IMG_OFFSET=
=3D0x200000 -msoft-float -fno-pie -fno-stack-protector -fno-exceptions -f=
no-asynchronous-unwind-tables -Wnested-externs -DHAVE_AS_VMX -DHAVE_AS_SS=
E4_2 -DHAVE_AS_EPT -DHAVE_AS_RDRAND -DHAVE_AS_FSGSBASE -DHAVE_AS_XSAVEOPT=
 -DHAVE_AS_RDSEED -DHAVE_AS_CLAC_STAC -DHAVE_AS_CLWB -DHAVE_AS_QUOTED_SYM=
 -DHAVE_AS_INVPCID -DHAVE_AS_MOVDIR -DHAVE_AS_ENQCMD -mno-red-zone -fpic =
-mno-mmx -mno-sse -mskip-rax-setup -fcf-protection=3Dnone -Wa,-I./include=
 -Wa,-I./include '-D__OBJECT_LABEL__=3Darch/x86/traps.o'   -DXEN_BUILD_EF=
I -DBUILD_ID_EFI -c arch/x86/traps.c -o arch/x86/.traps.o.tmp -MQ arch/x8=
6/traps.o
>=20
> $ readelf -WS xen/arch/x86/traps.o
>=20
> There are 107 section headers, starting at offset 0xe2e0:
>=20
> Section Headers:
>   [Nr] Name              Type            Addr             Off    Size  =
 ES Flg Lk Inf Al
>   [ 0]                   NULL            0000000000000000 000000 000000=
 00      0   0  0
>   [ 1] .text             PROGBITS        0000000000000000 000040 000000=
 00  AX  0   0  4
>   [ 2] .text.show_code   PROGBITS        0000000000000000 000040 000287=
 00  AX  0   0 16
>   [ 3] .rela.text.show_code RELA            0000000000000000 008520 000=
450 18   I 104   2  8
>   [ 4] .altinstructions  PROGBITS        0000000000000000 0002c7 00024c=
 00   A  0   0  1
>   [ 5] .rela.altinstructions RELA            0000000000000000 008970 00=
07e0 18   I 104   4  8
>   [ 6] .discard          PROGBITS        0000000000000000 000513 000054=
 00   A  0   0  1
>   [ 7] .altinstr_replacement PROGBITS        0000000000000000 000567 00=
0018 00  AX  0   0  1
>   [ 8] .ex_table         PROGBITS        0000000000000000 000580 000028=
 00   A  0   0  4
>   [ 9] .rela.ex_table    RELA            0000000000000000 009150 0000f0=
 18   I 104   8  8
>   [10] .text.get_stack_trace_bottom PROGBITS        0000000000000000 00=
05b0 000046 00  AX  0   0 16
>   [11] .text.get_stack_dump_bottom PROGBITS        0000000000000000 000=
600 00003d 00  AX  0   0 16
>   [12] .text.show_stack_overflow PROGBITS        0000000000000000 00064=
0 000158 00  AX  0   0 16
> [...]
>=20
>> I'm somewhat concerned of that case. IOW is -falign-functions=3D reall=
y
>> the right option to use here? (There may not be one which we would act=
ually
>> prefer to use.) Specifically -falign-functions (without a value, i.e. =
using a
>> machine dependent default) is implied by -O2 and -O3, as per 13.2 gcc =
doc.
>=20
> Right, and that still works fine AFAICT, see how in the example above
> functions ended up aligned to 16 even when -falign-functions=3D8 was
> provided on the command line.
>=20
>>> --- a/xen/Kconfig
>>> +++ b/xen/Kconfig
>>> @@ -37,6 +37,24 @@ config CC_HAS_VISIBILITY_ATTRIBUTE
>>>  config CC_SPLIT_SECTIONS
>>>  	bool
>>> =20
>>> +# Set function alignment.
>>> +#
>>> +# Allow setting on a boolean basis, and then convert such selection =
to an
>>> +# integer for the build system and code to consume more easily.
>>> +config CC_HAS_FUNCTION_ALIGNMENT
>>> +	def_bool $(cc-option,-falign-functions=3D8)
>>
>> How does this check make sure 4- or 16-byte alignment are also accepte=
d as
>> valid? (Requesting 8-byte alignment would be at least bogus on e.g. IA=
-64.)
>=20
> I was confused and expected the compiler to round up to the next
> supported value by the arch, but that doesn't seem to be written down
> in the GCC manual at least.
>=20
> One option would be to simply test for -falign-functions with no
> specific alignment, and leave Kconfig code to set a suitable value on
> a per-arch basis.

Perhaps; this ...

>>> +config FUNCTION_ALIGNMENT_4B
>>> +	bool
>>> +config FUNCTION_ALIGNMENT_8B
>>> +	bool
>>> +config FUNCTION_ALIGNMENT_16B
>>> +	bool
>>> +config FUNCTION_ALIGNMENT
>>> +	int
>>> +	default 16 if FUNCTION_ALIGNMENT_16B
>>> +	default  8 if  FUNCTION_ALIGNMENT_8B
>>> +	default  4 if  FUNCTION_ALIGNMENT_4B

=2E.. makes sure the highest alignment ever selected from anywhere will b=
e
used (should an arch need to select any of these).

>>> --- a/xen/Makefile
>>> +++ b/xen/Makefile
>>> @@ -390,6 +390,9 @@ CFLAGS +=3D -fomit-frame-pointer
>>>  endif
>>> =20
>>>  CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) +=3D -ffunction-sections -fdata-s=
ections
>>> +ifdef CONFIG_FUNCTION_ALIGNMENT
>>
>> ... e.g. this meaningless? Or is the lack of a default value leading t=
o
>> the option remaining undefined (rather than assigning some "default"
>> default, e.g. 0)?
>=20
> If no default value the option remain undefined, and -falign-functions
> is not passed on the compiler command line.  This is required in case
> the compiler doesn't support -falign-functions.

Oh, sorry, I meant to delete that comment, which really was only the 2nd
half of something I had before actually deciding to try it out (see the
unmotivated ... at the beginning).

>>> --- a/xen/arch/arm/xen.lds.S
>>> +++ b/xen/arch/arm/xen.lds.S
>>> @@ -44,6 +44,10 @@ SECTIONS
>>>  #ifdef CONFIG_CC_SPLIT_SECTIONS
>>>         *(.text.*)
>>>  #endif
>>> +#ifdef CONFIG_FUNCTION_ALIGNMENT
>>> +       /* Ensure enough distance with the next placed section. */
>>> +       . =3D ALIGN(CONFIG_FUNCTION_ALIGNMENT);
>>> +#endif
>>> =20
>>>         *(.fixup)
>>
>> Seeing .fixup nicely in context - can't that (and other specialized
>> sections containing code) also be patched?
>=20
> The current livepatch-build-tools logic doesn't seem to detect changes
> to .fixup, so I've added this to my list of stuff to fix for
> livepatch.  I do see the livepatch code in the hypervisor has support
> for loading extra .ex_table sections, so I assume at some point it was
> considered to add support for .fixup.  My current thinking is that
> .fixup itself won't be changed, and that instead a new .fixup will be
> loaded, and the newly loaded .ex_table will reference such section.

Hmm, yes, that's a fair explanation for .fixup not needing special
handling. Yet then I would still be worried of other snippets, e.g.
stuff ending up in e.g. .text.cold or .text.unlikely. Would they all
also be dealt with in similar ways?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 13:57:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 13:57:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654598.1021670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDmDE-0005wL-Ar; Thu, 14 Dec 2023 13:57:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654598.1021670; Thu, 14 Dec 2023 13:57: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 1rDmDE-0005wE-8M; Thu, 14 Dec 2023 13:57:16 +0000
Received: by outflank-mailman (input) for mailman id 654598;
 Thu, 14 Dec 2023 13:57:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDmDD-0005w8-BD
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 13:57: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 aeafb309-9a88-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 14:57:13 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-50c0f6b1015so9529689e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 05:57:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 qo5-20020a170907874500b00a1b7b0cc30dsm9362695ejc.7.2023.12.14.05.57.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 05:57:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aeafb309-9a88-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702562233; x=1703167033; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=VPjvs+p+NxwNmbmCR28jMCoUyiLyV+8ltmkkMpNliIY=;
        b=Vux6JoQLrWn59z0j2BIHWWTHg+MyndEtaSrR3ddI8nq2MrHX7aGlWYfV3jr1eURL7f
         lSC+rTrSRh6bz6oCf2Qoui8wc0C4GMiFs6+Yd3Ih83ZBlaNqrYZKfvk7krEpbNDGzuf1
         83Ray++3zeYreoKF1xnF4h7tpGN8cmZOpDR9dTFQ3xNu9acbg/gQLKZcJtuKKMujSnkc
         Ury5o8CSIm/NTpziJRhYKBfvz/ys/4RU4FEkAwVXBjNiiWG3PuBTeXPb0BcdEEsmpaoA
         XPMaeSjFsNPiHf0l3yoUeRhtCgsG20w37/cs9UCyAvRBXyhknscyLzwJIvTd4C6QW8g1
         S+bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702562233; x=1703167033;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=VPjvs+p+NxwNmbmCR28jMCoUyiLyV+8ltmkkMpNliIY=;
        b=l/XfRctIkSXHl8aWvTG7mR6CRDRIRtgAPkITjiy+tOLoijgiaTWsBGFE9fg/RgTMiP
         SC7ZjD3h4EfdPb6l1jKCQj2ChiRoi663NzAmVxXiQ9AZY27GVQcME+Hv7OynfWVjE9yr
         1ya/rXgxv104HKs/QOdomSVftOq4Y7dzb+4Vcklx5EC0jTGAnBn4CI0Elvkdp1VmCxIK
         C2Z1EHS6zhRqiJVwijgYpKiwM5xQCm346tChRgShZztjp03CD/XtyWhuGV1l5UD0T1fz
         bAuAOmUtwdq6G+iG1NNXuOW2dBvD3f9YnEnheCryRAk7YorX2wpqWb1W1hN7bk+BeEQI
         ZpkQ==
X-Gm-Message-State: AOJu0YzSDxNooMreIgFMjJ8W5IvYaURzrq6UOcIsv2BYKzu6EVxlvy/L
	gfUamX7xD42gcxxq13gWMB5b
X-Google-Smtp-Source: AGHT+IGBX0hFSWg202PtKVPL960itMZCQpKPgT1YqHZSy2xWsxSkdfCVg/IfjEdlq09IfRSkWo67FA==
X-Received: by 2002:a05:6512:3a88:b0:50b:fa69:16be with SMTP id q8-20020a0565123a8800b0050bfa6916bemr5289581lfu.15.1702562232735;
        Thu, 14 Dec 2023 05:57:12 -0800 (PST)
Message-ID: <31cb367f-1a20-4ced-8f6f-aeab69f7c4fb@suse.com>
Date: Thu, 14 Dec 2023 14:57:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] xen/x86: introduce self modifying code test
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.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: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-3-roger.pau@citrix.com>
 <6226aa5e-c87f-48bf-b793-96aa04498c5e@suse.com> <ZXsHWzcCSBKRS83S@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXsHWzcCSBKRS83S@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.12.2023 14:47, Roger Pau MonnÃ© wrote:
> On Thu, Dec 14, 2023 at 12:55:22PM +0100, Jan Beulich wrote:
>> On 14.12.2023 11:17, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/setup.c
>>> +++ b/xen/arch/x86/setup.c
>>> @@ -58,6 +58,7 @@
>>>  #include <asm/microcode.h>
>>>  #include <asm/prot-key.h>
>>>  #include <asm/pv/domain.h>
>>> +#include <asm/test-smoc.h>
>>>  
>>>  /* opt_nosmp: If true, secondary processors are ignored. */
>>>  static bool __initdata opt_nosmp;
>>> @@ -1951,6 +1952,8 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
>>>  
>>>      alternative_branches();
>>>  
>>> +    test_smoc(XEN_SYSCTL_TEST_SMOC_ALL, NULL);
>>
>> I realize I'm at risk of causing scope creep, but I'd still like to at
>> least ask: As further self-tests are added, we likely don't want to
>> alter __start_xen() every time. Should there perhaps better be a wrapper
>> (going forward: multiple ones, depending on the time tests want invoking),
>> together with a Kconfig control to allow suppressing all of these tests in
>> at least release builds?
> 
> Right now I only had in mind that livepatch related tests won't be
> executed as part of the call in __start_xen(), but all the other ones
> would, and hence wasn't expecting the code to change from the form in
> the next patch.

Well, I was thinking of there more stuff appearing in test/, not self-
modifying-code related, and hence needing further test_*() alongside.
test_smoc().

>>> --- /dev/null
>>> +++ b/xen/arch/x86/test/smoc.c
>>> @@ -0,0 +1,68 @@
>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>> +
>>> +#include <xen/errno.h>
>>> +
>>> +#include <asm/alternative.h>
>>> +#include <asm/cpufeature.h>
>>> +#include <asm/test-smoc.h>
>>> +
>>> +static bool cf_check test_insn_replacement(void)
>>> +{
>>> +#define EXPECTED_VALUE 2
>>> +    unsigned int r = ~EXPECTED_VALUE;
>>> +
>>> +    alternative_io("", "mov %1, %0", X86_FEATURE_ALWAYS,
>>> +                   "+r" (r), "i" (EXPECTED_VALUE));
>>> +
>>> +    return r == EXPECTED_VALUE;
>>> +#undef EXPECTED_VALUE
>>> +}
>>> +
>>> +int test_smoc(uint32_t selection, uint32_t *results)
>>> +{
>>> +    struct {
>>> +        unsigned int mask;
>>> +        bool (*test)(void);
>>> +        const char *name;
>>> +    } static const tests[] = {
>>> +        { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
>>> +          "alternative instruction replacement" },
>>> +    };
>>> +    unsigned int i;
>>> +
>>> +    if ( selection & ~XEN_SYSCTL_TEST_SMOC_ALL )
>>> +        return -EINVAL;
>>> +
>>> +    if ( results )
>>> +        *results = 0;
>>> +
>>> +    printk(XENLOG_INFO "Checking Self Modify Code\n");
>>> +
>>> +    for ( i = 0; i < ARRAY_SIZE(tests); i++ )
>>> +    {
>>> +        if ( !(selection & tests[i].mask) )
>>> +            continue;
>>> +
>>> +        if ( tests[i].test() )
>>> +        {
>>> +            if ( results )
>>> +                *results |= tests[i].mask;
>>> +            continue;
>>> +        }
>>> +
>>> +        add_taint(TAINT_ERROR_SMOC);
>>> +        printk(XENLOG_ERR "%s test failed\n", tests[i].name);
>>
>> Do we really want both of these even when coming here from the sysctl?
> 
> So only print the messages if system_state < SYS_STATE_active?

Yes. Nor tainting the system.

>>> --- a/xen/common/kernel.c
>>> +++ b/xen/common/kernel.c
>>> @@ -386,13 +386,14 @@ char *print_tainted(char *str)
>>>  {
>>>      if ( tainted )
>>>      {
>>> -        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c",
>>> +        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c%c",
>>>                   tainted & TAINT_MACHINE_INSECURE ? 'I' : ' ',
>>>                   tainted & TAINT_MACHINE_CHECK ? 'M' : ' ',
>>>                   tainted & TAINT_SYNC_CONSOLE ? 'C' : ' ',
>>>                   tainted & TAINT_ERROR_INJECT ? 'E' : ' ',
>>>                   tainted & TAINT_HVM_FEP ? 'H' : ' ',
>>> -                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ');
>>> +                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ',
>>> +                 tainted & TAINT_ERROR_SMOC ? 'A' : ' ');
>>
>> How well is this going to scale as other selftests are added? IOW should
>> this taint really be self-modifying-code-specific?
> 
> I'm afraid I'm not sure I'm following.  Would you instead like to make
> the taint per-test selectable?

The other way around actually: Taint generally for failed selftests,
not just for the self-modifying-code one (which ends up being the only
one right now).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 14:06:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 14:06:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654601.1021681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDmLt-0008Fd-Bk; Thu, 14 Dec 2023 14:06:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654601.1021681; Thu, 14 Dec 2023 14: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 1rDmLt-0008FW-7Q; Thu, 14 Dec 2023 14:06:13 +0000
Received: by outflank-mailman (input) for mailman id 654601;
 Thu, 14 Dec 2023 14:06:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDmLr-0008FQ-KE
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 14:06:11 +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 ee46542d-9a89-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 15:06:09 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a1e2ded3d9fso985170766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 06:06:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 tk3-20020a170907c28300b00a1cd54ec021sm9421102ejc.57.2023.12.14.06.06.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 06:06:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee46542d-9a89-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702562769; x=1703167569; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=d5dZFMvCG+Hj4tJQMSIUYNtGUmi6rZaCDkq+11u8WP0=;
        b=bH9AXXNfpfoJNKnljyBcf0+RDa/Q4c0IYsnAOfsKmisoPhndd3AUu0uJdYxPAntadm
         KjiakWK2nivgvlvUF9hoPbgxIa7kiPKlDoeuVSuMR/BOCYDMM4GEOmPYON4rLSGiD7ia
         Ljjk7By5lWScVHcvZVKe713yqlbQdvFuyzckxVjD3oBEG3Sebz1a1jRVBD/xgxIUEnXd
         qXKLC2G/4eNkL66zuqwDCU55r69x6ojE0NECgyWj+c9HFYi8cHQGNjMFVehRDeYwETGX
         2Ix0J8aG7GHsFKBCf29t6PmbSKQSJ4hKpifSek/T92uNryLemLviAnGD8qx7CQv0ft7Y
         EREQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702562769; x=1703167569;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=d5dZFMvCG+Hj4tJQMSIUYNtGUmi6rZaCDkq+11u8WP0=;
        b=odFz3qfAomQ92vAT5tey2JeuEMKKeDJiGbw78JhiW8xO0rS59dyxLuVW9v2EHRYu8R
         i8iAPqOaabEJiFwaJcT+255wxR0K4F9miaf4fZeb9lIFCJFDJjaljxDm7GuwzuDWRutB
         b1tw9gGeMAYufD0kKDMe4627FBKAQlQldN8kHiv2FwFgUGjEUypvNH1CuljUdJ/+KUWE
         uV3joQkb52q0APt/eEV8C1xk4mEQDRxLGUUmHkzxrvmx17kH6bEahT8pppQ7tkYTjkJz
         5HTqXDRv1NDlhUAGnlUoo+AY0Fzv0nflMe096MIv9/8xzLijG5yv0Nv4nHTnNfKcxA8F
         P7uA==
X-Gm-Message-State: AOJu0Yx0PnWDiFn81X+c2Bh8OMLBom5TUrkDTeLKR3Dk4Jp43fqFC56t
	87Trx1V0+gXlY+ycMi4hKnyd
X-Google-Smtp-Source: AGHT+IHrgEXafmAfHDoGzW1QO9+mgCdwqRG68Wh8hGS3+4pMhZsTTqHruZW3oWjfb8RmOCXt2cj4gA==
X-Received: by 2002:a17:906:66c5:b0:a19:a19b:78ad with SMTP id k5-20020a17090666c500b00a19a19b78admr4734753ejp.112.1702562769010;
        Thu, 14 Dec 2023 06:06:09 -0800 (PST)
Message-ID: <e08e2f49-5ed5-40ec-8db4-e2dd597c8046@suse.com>
Date: Thu, 14 Dec 2023 15:06:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 23/39] xen/riscv: introduce asm/guest_access.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <7dda759b846003fcb453f1118cefbfd2eeb804d7.1700761381.git.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: <7dda759b846003fcb453f1118cefbfd2eeb804d7.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/guest_access.h
> @@ -0,0 +1,29 @@
> +#ifndef __ASM_RISCV_GUEST_ACCESS_H__
> +#define __ASM_RISCV_GUEST_ACCESS_H__
> +
> +#include <xen/types.h>
> +
> +unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len);
> +unsigned long raw_copy_from_guest(void *to, const void *from, unsigned len);

For the full build to work, you will need to implement these somewhere.
>From the titles of further patches I can't guess where that would be.
Note how PPC has decided to have these be inline dummies for the time
being. It also looks as if you would also need raw_clear_guest()?

> +#define __raw_copy_to_guest raw_copy_to_guest
> +#define __raw_copy_from_guest raw_copy_from_guest
> +
> +#define guest_handle_okay(hnd, nr) (1)
> +#define guest_handle_subrange_okay(hnd, first, last) (1)

Arm has a comment next to these (actually two, I mean the latter), which
I think would be sensible to also have here.

> +struct domain;
> +unsigned long copy_to_guest_phys(struct domain *d,
> +                                 paddr_t gpa,
> +                                 void *buf,
> +                                 unsigned int len);

You don't need this just yet, do you?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 14:09:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 14:09:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654602.1021690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDmOf-0000bF-NG; Thu, 14 Dec 2023 14:09:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654602.1021690; Thu, 14 Dec 2023 14: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 1rDmOf-0000b8-Kj; Thu, 14 Dec 2023 14:09:05 +0000
Received: by outflank-mailman (input) for mailman id 654602;
 Thu, 14 Dec 2023 14:09: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDmOe-0000b2-6p
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 14:09:04 +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 55458806-9a8a-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 15:09:02 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-54cb4fa667bso11286016a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 06:09:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bd18-20020a056402207200b00542db304680sm6758770edb.63.2023.12.14.06.09.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 06:09:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55458806-9a8a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702562942; x=1703167742; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GmWhQM7YanA96EdTlyUm4HZCcbp7a4LN4ZYdiGu2HCo=;
        b=W7PFIya3czJ1zKqUbFdx+G2kIPU+0gkQeZMLMb3YJGRZzeLKztNwy1rCi9cFl7wnW+
         +u1zh/rCLERkaETs4kl+NlCjz1cZSYfZ6sbtsstIGGkfqshk+XesnsuJwH5oBVBIjZDG
         6xstYXm7erx3y9+lNTiuTNnxr/huGkMmLZU1wz/Ycmqp0pP7WeRYLy+5kKspFJwDHyyH
         6sr9SKaWteKubnJT4L6wxYb7Z9RsqymytpP1enqZ/SOWwy+rZFXqReV9g37L2PoT7GQB
         CuWc16KS5CkqIc8VNyivzNZhriYw658Doa9xWcQgy72NC9FwNeilJ3i/zSpqX/etMdap
         nJGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702562942; x=1703167742;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=GmWhQM7YanA96EdTlyUm4HZCcbp7a4LN4ZYdiGu2HCo=;
        b=wedwsu6kky4nrz/nISSjHp/ZxZUcqUCM3I2lrK6YU4AwXQgcaaw6uDrO14EMfooV0r
         zOf2oiqG/18/3ESYNW2xGn1hVS1APC0u4jUXrs5TD28q8ry5gcoxgoNM0ilUjMPuTVsd
         3ncCsIOU51IhwyidB7Tm+S+biQ305W4HlXOzGV0iQf+3HVElTRsXC8UsFW2iTRxN7vP5
         ETZM5xeiixdlFOrRCDOCvFFZjDfOLDi6bBR0HD14ydzD7iNUZ/iUvaanD12Tryn/amm3
         vJomhhoiCe1G7xQ4ry5Pa/JkuS+egMIOJa93mwlj/hl9O4wTH6KKpP55SM4Xccn+beRr
         XCSQ==
X-Gm-Message-State: AOJu0YwqSdcYAdBF+G87iLFlFlB89vOtiMuiUCHH/saPNarPPScTQ3AY
	2YtxPi9ZLQsrhX11QrcwM/WE
X-Google-Smtp-Source: AGHT+IHOYu0IywXbblt3CyuLRmfX20sR4w0FYIK3Sb82an6dLAkB3ONBB29ARo77faotdVflSw1trw==
X-Received: by 2002:a50:9b43:0:b0:54b:c09e:ff40 with SMTP id a3-20020a509b43000000b0054bc09eff40mr5535730edj.8.1702562941876;
        Thu, 14 Dec 2023 06:09:01 -0800 (PST)
Message-ID: <479cd511-c01b-4460-bafc-2d3943956914@suse.com>
Date: Thu, 14 Dec 2023 15:09:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 24/39] xen/riscv: introduce asm/irq.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <e9fc98cad562dad495ac1eb87b98be77cda72524.1700761381.git.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: <e9fc98cad562dad495ac1eb87b98be77cda72524.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V2:
> 	- add ifdef CONFIG_HAS_DEVICE_TREE for things that shouldn't be
>       in case !CONFIG_HAS_DEVICE_TREE

Is there going to be a RISC-V build without this enabled (selected)? If
not, I'd recommend against such pointless #ifdef-ary.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 14:15:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 14:15:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654607.1021700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDmUu-0002y2-CZ; Thu, 14 Dec 2023 14:15:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654607.1021700; Thu, 14 Dec 2023 14:15: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 1rDmUu-0002xv-9n; Thu, 14 Dec 2023 14:15:32 +0000
Received: by outflank-mailman (input) for mailman id 654607;
 Thu, 14 Dec 2023 14:15: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=a063=HZ=cloud.com=george.dunlap@srs-se1.protection.inumbo.net>)
 id 1rDmUt-0002xp-Jc
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 14:15:31 +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 3c0cdced-9a8b-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 15:15:29 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2c9f85eff28so122056841fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 06:15:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c0cdced-9a8b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702563329; x=1703168129; 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=ymfayXGwoeRggRReIZbCdclTol5yCgZKrdQf+e7s3qc=;
        b=NrXXF4Y5JHj1LK59DGTku1up70N45Em4AKhw2So4UqOP1xnFfbz9tTnYCOfx/keopg
         HJfcAl30wHJbd4nDwGZ9SG7NFsfAD4HZB4V2qBXyOz6oGMxIaqwmNwrWWvDVAIWIBz3h
         JmOTea48JbjFMG8EuG7hEpYx5aE4oFR6K3GPg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702563329; x=1703168129;
        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=ymfayXGwoeRggRReIZbCdclTol5yCgZKrdQf+e7s3qc=;
        b=mOxg7pVVPHjLDr5AifP9lfIpD077NYIa9Bc5yQRo60RzVuE48PQ0/ElkajHqSGxCfI
         wb6sd+Q0tv+C7vxv8j21u0jKbUjpb1eoe1ZE+VEyNfgSathPKBTWfmlVkNdx4zPQnITO
         UcODOJY43Csg0qc04rnUfVk2kUkHGjuWVSCGFbZk2Wic5kmyv8oxBFJDBxTEgkd99nDq
         PNBKNmkSdMuUo+TGg8iNmhP5LM4c5lQxHUopyN8LuJKrQN48RUodKKPkWp8pkVmqIDEv
         VqVEudru3RliEaBeaBIaOYUcdYk1IxfgfXDM4cJMs+OVQfSzH3JG1tk574/dRi2bNPPA
         m7Dw==
X-Gm-Message-State: AOJu0Yx57Y5p81xYu5pAd8WMMjKOpJFIE9EiO7EPsRb+vZ+Nd98+o1lc
	r8i6yBjzCAkeKjpjrUyuMtxCc2A2EYz+NZYhNxSsTGp6WULjxvRtQRU=
X-Google-Smtp-Source: AGHT+IHuL3IknDYI09Of28GS3UShV0+rrrKY8lUPt7Sy6TVvWIFGCrG3ddJWkDNQSwQmWWGQoIrRfn4kMZOR+91vpzI=
X-Received: by 2002:a2e:6e13:0:b0:2ca:35a1:26de with SMTP id
 j19-20020a2e6e13000000b002ca35a126demr4405463ljc.39.1702563328869; Thu, 14
 Dec 2023 06:15:28 -0800 (PST)
MIME-Version: 1.0
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com> <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com> <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org>
 <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com>
In-Reply-To: <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com>
From: George Dunlap <george.dunlap@cloud.com>
Date: Thu, 14 Dec 2023 14:15:17 +0000
Message-ID: <CA+zSX=YHW3kGFroNDzwQg=EhEe3F_fw3gCd_9W+P2UxC7+g+0A@mail.gmail.com>
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
	Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 14, 2023 at 8:51=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 14.12.2023 09:32, Julien Grall wrote:
> > Hi Jan,
> >
> > On 14/12/2023 07:53, Jan Beulich wrote:
> >> On 14.12.2023 03:05, Stefano Stabellini wrote:
> >>> On Wed, 13 Dec 2023, Jan Beulich wrote:
> >>>> On 11.12.2023 10:14, Nicola Vetrini wrote:
> >>>>> --- a/xen/arch/arm/include/asm/numa.h
> >>>>> +++ b/xen/arch/arm/include/asm/numa.h
> >>>>> @@ -2,8 +2,9 @@
> >>>>>   #define __ARCH_ARM_NUMA_H
> >>>>>
> >>>>>   #include <xen/mm.h>
> >>>>
> >>>> With this, ...
> >>>>
> >>>>> +#include <xen/types.h>
> >>>>>
> >>>>> -typedef u8 nodeid_t;
> >>>>> +typedef uint8_t nodeid_t;
> >>>>>
> >>>>>   #ifndef CONFIG_NUMA
> >>>>>
> >>>>> @@ -12,10 +13,9 @@ typedef u8 nodeid_t;
> >>>>>   #define node_to_cpumask(node)   (cpu_online_map)
> >>>>>
> >>>>>   /*
> >>>>> - * TODO: make first_valid_mfn static when NUMA is supported on Arm=
, this
> >>>>> - * is required because the dummy helpers are using it.
> >>>>> + * TODO: define here first_valid_mfn as static when NUMA is suppor=
ted on Arm,
> >>>>> + * this is required because the dummy helpers are using it.
> >>>>>    */
> >>>>> -extern mfn_t first_valid_mfn;
> >>>>
> >>>> ... and this declaration moved to xen/mm.h, how is it going to be po=
ssible
> >>>> to do as the adjusted comment says? The compiler will choke on the s=
tatic
> >>>> after having seen the extern.
> >>>
> >>> Nicola was just following a review comment by Julien. NUMA has been
> >>> pending for a while and I wouldn't hold this patch back because of it=
.
> >>> I suggest we go with Julien's request (this version of the patch).
> >>>
> >>> If you feel strongly about it, please suggest an alternative.
> >>
> >> Leaving a TODO comment which cannot actually be carried out is just wr=
ong
> >> imo. And I consider in unfair to ask me to suggest an alternative. The
> >> (imo obvious) alternative is to drop this patch, if no proper change c=
an
> >> be proposed. There's nothing wrong with leaving a violation in place,
> >> when that violation is far from causing any kind of harm. The more tha=
t
> >> the place is already accompanied by a (suitable afaict) comment.
> >
> > Just to clarify, are you saying you would be happy if the proposal if
> > the TODO is removed?
>
> Removing the bad (new) TODO here is an option. But the previous TODO shou=
ldn't
> go away. However, you asking now required me to actually look into Stefan=
o's
> request to make an alternative proposal (I still don't see though why it
> needed to be me to think about an appropriate solution;

In general, it is unreasonable to expect other people to come up with
suggestions to make you happy.  You're ultimately the only person who
knows what would make you satisfied.  You're also more senior and know
the code better, and thus in a better position to be able to come up
with ideas.  "What about X?" "No." "What about Y?" "No." "What about
Z?" "No." Contributors experience it as caustic behavior.

The only time it's acceptable is if you can specify, precisely and
reasonably completely, your criteria for acceptance, such that there's
a clear way forward.  In this case, for instance, it sounds like "Has
a TODO which isn't technically inaccurate" might be the criteria.

In which case, for instance, a solution might be along the lines of:
"TODO: When NUMA is supported on Arm we'll need to do something about
defining first_valid_mfn, which is used by the dummy helpers."  This
punts the actual solution down the road until we need it.

But I do think that it's fair to ask Julien to think about a suitable
wording, since the comment is in a sense to remind him (or other ARM
maintainers) what's needed, and since the eventual solution will be
something to do with the ARM code and architecture anyway.

 -George

>
> First, Arm's and PPC's header have this in their !NUMA sections. Much lik=
e
> Oleksii's putting in quite a bit of effort to reduce redundancy in order =
to
> not further grow it with RISC-V, what's wrong with sorting the !NUMA case
> properly as a first step? Move the entire !NUMA section either into xen/n=
uma.h
> (eliminating the need for arch-es not supporting NUMA to even have such a
> header), or (if need be) to asm-generic/. Then, as a 2nd step (albeit tha=
t
> could also be done on its own, just the result would be less neat imo), m=
ake
> the variable in question here extern _only_ when !NUMA. This would then
> address the original TODO, so that could then legitimately be dropped. Th=
is
> would further be a good opportunity to adjust the already stale comment i=
n
> page_alloc.c (it's no longer applicable to Arm only).
>
> Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 14:19:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 14:19:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654610.1021711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDmYM-0003tI-Ro; Thu, 14 Dec 2023 14:19:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654610.1021711; Thu, 14 Dec 2023 14:19:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDmYM-0003tB-Oj; Thu, 14 Dec 2023 14:19:06 +0000
Received: by outflank-mailman (input) for mailman id 654610;
 Thu, 14 Dec 2023 14:19: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDmYM-0003t4-4N
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 14:19:06 +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 bbc7e57e-9a8b-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 15:19:03 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-50bf898c43cso7968775e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 06:19:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 x9-20020a056402414900b005528b3b3d95sm86577eda.34.2023.12.14.06.19.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 06:19:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bbc7e57e-9a8b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702563543; x=1703168343; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=CflFT3wIJhbc7Wiv8StCwpl5nqcG2FukpUUb5nB1+Lc=;
        b=Rr7hIxXxMHq3mrEsmJZctCtF+lxbS3HLBhmdjFsjE6zKWG/ZdPqB/qyIkCRSJTU62A
         5yMDYsGzyaE6J3fxYCkhz8w93NFURDot8eBIxALp7Vw5aSoDnUdwGN4ituoudisPN/L2
         oGrLx8oHNN00gO2/nJF4Rt/tuP412XKwj036LQj/OUpTrJEhEFbb4m3eAE8GXzUyfciI
         JmF+mr7KTyAavIBCstqSxFmLIAKtk0C51iEFOfzbNxmvMKIiHOk1DCqoF7pNf1VzCPTE
         LxLRSm6nW9sWBU2M5RaePBy7nwaaScmKLyXLdI+9f54EjAC6a1beZQA+QYMDMRTXaeBU
         JTyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702563543; x=1703168343;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=CflFT3wIJhbc7Wiv8StCwpl5nqcG2FukpUUb5nB1+Lc=;
        b=IRD+ekFvm6zT139cJiL5K4UjjbRo69N6+kv4f2CDlI7gLOecHM1X4QhbeM1HoGPo1C
         e4pm25bvmEZMWL1z8s/SG4vrcnfbVJ8DeXKbxMIiGlAxSxMjvaiVX/H+sJi+e5DoRNkJ
         ZW2wxsJPxhAkXzkzo5M/+AaLl4rUMZ1kFj++JKw9rZiX/aD8/xxtL7sSurGJOENjT8rZ
         r3LAqnExU4we0/h9QhtpItx7vhcF5gYGs84pn0b2NmTjqEKmTh8qzbN0BR987M0PD8k4
         QZnSnlb2PlFN10scc6V3eoBtFJonEjiQbQBHCpHamYZBa4GwJ8FuCiKH65+Bjoqvs6vn
         tPEg==
X-Gm-Message-State: AOJu0YwJF73/asRsphXFK37OEwS3IvMh8V8vPi0xbPE3vDCLkMgubSSV
	MYRtlGX5kjr04nfkknyasPDs
X-Google-Smtp-Source: AGHT+IEvJtHd/K000S76f4Cu0asVd9GBMwv3Ube3BNAQ9ClThgcJxukRCRHr0PXE4ts2hRrWcNTqzg==
X-Received: by 2002:a05:6512:aca:b0:50e:d27:a16b with SMTP id n10-20020a0565120aca00b0050e0d27a16bmr1389824lfu.77.1702563543244;
        Thu, 14 Dec 2023 06:19:03 -0800 (PST)
Message-ID: <46462554-f040-4c34-874d-2d0455707731@suse.com>
Date: Thu, 14 Dec 2023 15:19:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 25/39] xen/riscv: introduce asm/p2m.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <a37e4b7115897a0265907c53667a0ede3763f0ce.1700761381.git.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: <a37e4b7115897a0265907c53667a0ede3763f0ce.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -0,0 +1,105 @@
> +#ifndef __ASM_RISCV_P2M_H__
> +#define __ASM_RISCV_P2M_H__
> +
> +#include <asm/page-bits.h>
> +
> +#define paddr_bits PADDR_BITS
> +
> +/*
> + * List of possible type for each page in the p2m entry.
> + * The number of available bit per page in the pte for this purpose is 4 bits.
> + * So it's possible to only have 16 fields. If we run out of value in the
> + * future, it's possible to use higher value for pseudo-type and don't store
> + * them in the p2m entry.
> + */
> +typedef enum {
> +    p2m_invalid = 0,    /* Nothing mapped here */
> +    p2m_ram_rw,         /* Normal read/write guest RAM */
> +    p2m_ram_ro,         /* Read-only; writes are silently dropped */
> +    p2m_mmio_direct_dev,/* Read/write mapping of genuine Device MMIO area */
> +    p2m_mmio_direct_nc, /* Read/write mapping of genuine MMIO area non-cacheable */
> +    p2m_mmio_direct_c,  /* Read/write mapping of genuine MMIO area cacheable */
> +    p2m_map_foreign_rw, /* Read/write RAM pages from foreign domain */
> +    p2m_map_foreign_ro, /* Read-only RAM pages from foreign domain */
> +    p2m_grant_map_rw,   /* Read/write grant mapping */
> +    p2m_grant_map_ro,   /* Read-only grant mapping */
> +    /* The types below are only used to decide the page attribute in the P2M */
> +    p2m_iommu_map_rw,   /* Read/write iommu mapping */
> +    p2m_iommu_map_ro,   /* Read-only iommu mapping */
> +    p2m_max_real_type,  /* Types after this won't be store in the p2m */
> +} p2m_type_t;

As indicated before, I think you should have only those types here which
you're sure you'll need, or even just those which you really need right
away. I question in particular p2m_mmio_direct_*, which all look like
you simply took them from Arm, without regard as to applicability to
RISC-V. The fewer types you have here, the easier it is going to be to
tell what needs adding and what is already _properly_ supported.

> +#include <xen/p2m-common.h>
> +
> +static inline int get_page_and_type(struct page_info *page,
> +                                    struct domain *domain,
> +                                    unsigned long type)
> +{
> +    BUG();
> +    return 1;
> +}

Imo despite the BUG() any such stub would better return failure, just
like ...

> +/* Look up a GFN and take a reference count on the backing page. */
> +typedef unsigned int p2m_query_t;
> +#define P2M_ALLOC    (1u<<0)   /* Populate PoD and paged-out entries */
> +#define P2M_UNSHARE  (1u<<1)   /* Break CoW sharing */
> +
> +static inline struct page_info *get_page_from_gfn(
> +    struct domain *d, unsigned long gfn, p2m_type_t *t, p2m_query_t q)
> +{
> +    BUG();
> +    return NULL;
> +}

... you do here. May apply again further down.

> +static inline void memory_type_changed(struct domain *d)
> +{
> +    BUG();
> +}
> +
> +
> +static inline int guest_physmap_mark_populate_on_demand(struct domain *d, unsigned long gfn,
> +                                                        unsigned int order)
> +{
> +    BUG();
> +    return 1;
> +}
> +
> +static inline int guest_physmap_add_entry(struct domain *d,
> +                            gfn_t gfn,
> +                            mfn_t mfn,
> +                            unsigned long page_order,
> +                            p2m_type_t t)
> +{
> +    BUG();
> +    return 1;
> +}
> +
> +/* Untyped version for RAM only, for compatibility */
> +static inline int __must_check
> +guest_physmap_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
> +                       unsigned int page_order)
> +{
> +    return guest_physmap_add_entry(d, gfn, mfn, page_order, p2m_ram_rw);
> +}
> +
> +static inline mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn)
> +{
> +    BUG();
> +    return _mfn(0);
> +}
> +
> +static inline bool arch_acquire_resource_check(struct domain *d)
> +{
> +    /*
> +     * The reference counting of foreign entries in set_foreign_p2m_entry()
> +     * is supported on RISCV.
> +     */
> +    return true;
> +}
> +
> +static inline void p2m_altp2m_check(struct vcpu *v, uint16_t idx)
> +{
> +    /* Not supported on RISCV. */
> +}
> +
> +#endif /* __ASM_RISCV_P2M_H__ */
> \ No newline at end of file

This wants taking care of.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:01:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:01:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654614.1021721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnDS-0005hs-50; Thu, 14 Dec 2023 15:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654614.1021721; Thu, 14 Dec 2023 15:01:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnDS-0005hl-1m; Thu, 14 Dec 2023 15:01:34 +0000
Received: by outflank-mailman (input) for mailman id 654614;
 Thu, 14 Dec 2023 15: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDnDR-0005hd-3V
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:01:33 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aa5bdfc9-9a91-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 16:01:31 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a1ec87a7631so731176166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:01:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 re14-20020a170907a2ce00b00a1f751d2ba4sm8824048ejc.99.2023.12.14.07.01.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 07:01:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa5bdfc9-9a91-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702566091; x=1703170891; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vUuDz8H3VIsylHrOUwSIpaexVCt5dsQJH7N5vrjmoq4=;
        b=A1GidsJjtJZ4Wb5U4NK6NIl4A7lSb39gZXem4o4KLcWd2mlpBSEGcPQ7gWB1+N+hyI
         SoCTVD3e7AR8hEa+bjhKYf6ur9nPPMr9yYlniZpe5qnLsAyFbRq7JaMlm3DtOZNoyOAn
         xPFGQZU9ziMUUABgjaJyZoGDGOlHqnNScEedFClyn1dlAYWVvzp0fjMuhHTSozIMeRPr
         N37/hi56rXIYLMikye+1qBckmSHPm8C3VvCkQAX2dkHxZ+ZB8uJasyeQuWQ4qCJEIDR2
         DD4GW5ovJabATB5VD5R/Bzjx3+oU93IQxfYY7hNLzw0vy9Yt62jja98P9lodBRXBVCge
         b8qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702566091; x=1703170891;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=vUuDz8H3VIsylHrOUwSIpaexVCt5dsQJH7N5vrjmoq4=;
        b=HKBaH5sANPi+/+NW89HptaP0HuiqQyqrGLUhZALgWt1dME5TZOisyba8OWm0UUbv65
         Vh9Zj34DI3QTXpRQ+pyGfNPn9fBVPxCCIrqXsEkXAANmLn2sH7YwdS/+wdofpLU6KwBP
         sejq1bBzik4QgPii4LV2sTtGVVaE227KxFh3ZXc5hnYgFlAwpNjl+gxDKDmetMARtpju
         8o8/78I/MEHLYjGcZtgGgCTfHqPmh0ay4byf8oNeVETAkaz83WDyqWjli30LtaoLi3jl
         NLhC9JrOxhjrWaz3Wof+IWtnXsIb+XTQbhDXKa6Q3cOjw9co+BXm4lAQC9wjzW4f1gVR
         sXtg==
X-Gm-Message-State: AOJu0YwAEOsAYOnssk7KzeQAtZ1uxG8+hp8ku0d2t+sMG7KUgk8ia2V1
	LHFYE0yf808YHrLXie8+Z3mg
X-Google-Smtp-Source: AGHT+IHu+nIhUhPpaYk7OpvYIrYUb6Xs8epeNFc3r+rjnSdYuzUtyV1/bNKjMElvGpl/13LHH3LE7g==
X-Received: by 2002:a17:906:a3d8:b0:a19:420b:2e26 with SMTP id ca24-20020a170906a3d800b00a19420b2e26mr5588445ejb.76.1702566091108;
        Thu, 14 Dec 2023 07:01:31 -0800 (PST)
Message-ID: <ceaa9575-7844-42cd-afb3-7c3d4a6b864c@suse.com>
Date: Thu, 14 Dec 2023 16:01:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 25/39] xen/riscv: introduce asm/p2m.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <a37e4b7115897a0265907c53667a0ede3763f0ce.1700761381.git.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: <a37e4b7115897a0265907c53667a0ede3763f0ce.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> +static inline int guest_physmap_mark_populate_on_demand(struct domain *d, unsigned long gfn,
> +                                                        unsigned int order)
> +{
> +    BUG();
> +    return 1;
> +}

This one I actually don't think needs to be a stub. It can return
-EOPNOTSUPP or -EINVAL right away, and then wouldn't need touching
again afaict.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:05:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:05:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654616.1021731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnHf-0006br-Ls; Thu, 14 Dec 2023 15:05:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654616.1021731; Thu, 14 Dec 2023 15:05:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnHf-0006bk-If; Thu, 14 Dec 2023 15:05:55 +0000
Received: by outflank-mailman (input) for mailman id 654616;
 Thu, 14 Dec 2023 15:05:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDnHe-0006bc-5M
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:05:54 +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 45b56e3c-9a92-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 16:05:52 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a22f59c6aeaso280760266b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:05:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 vc12-20020a170907d08c00b00a1d4a920dffsm9411358ejc.88.2023.12.14.07.05.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 07:05:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45b56e3c-9a92-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702566351; x=1703171151; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+L5gw5Yv3RDA4ugjWXkflGlmHLIiRgfU6reN/U0aBM8=;
        b=L33m31pcWn6IK9qih8NTUmo6A55dqH11cOXPghU0mpD3iEJddzyY9kG1EEXSy8skqQ
         UzRGZy/vRQ7hRaF7pVtmkBhK2AA9o40t9rc6zuQCq3Ph36mxwioLNd1FgV0Z8EDDs0Lj
         M0vZgVPkThhu/0xd1LX4jSXgFFoH1M7MFuu88bc9Q5LECYcDbIunUTBcVgl6xPvyw6pW
         Rf6BxmgilnSOqSdLNNOqwqsw+9DnU1pX74d1BV14tTC5q6egDoQ1tByifbLQXZBp31ML
         CY5y1ewXn2aOb0TNg1m+rvr82J60JDe9LLYdGHznDYmUyh/5aJSY3Gu73NTNwDcI1p+/
         xhRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702566351; x=1703171151;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=+L5gw5Yv3RDA4ugjWXkflGlmHLIiRgfU6reN/U0aBM8=;
        b=GOFXkL+ZTFwRDINqaJQ+++c8tj0qTg3cEqQHxnsjeJP7lMaNZ2ShI77bI7AmNF8WHu
         iZlSyJ2Yoik7atq70k4YIxEgewOFoF3BdQB+dg1ZCaFra08SNMrd17HmddU/wAgSWf4y
         2gXfTJbZNHooxdD6uZvn7RungbTm9vYHBZyRb9FMEsN88jisEfOuW7Vx0vcs9ubhGkpx
         nFDENAVFN4FHlaYcnqQ1QFmlfZBI8n79BbS3RdJLWmct67358W6nfzVYmQyP2qBYQdKA
         IPplzXdQ/Iz8EPAG1HHVs3oj8R5Zv6M9vfdxOw8paCHDeIy8swLfjXPH8gVpxUvVwlby
         a6gw==
X-Gm-Message-State: AOJu0Yx45Up8/464jS4Ts9qhF8atp0gR3P0Osstaa/McVWjcsWfAG3GQ
	ThqJ3xOhfsuWrDuxIYaMT9Ri
X-Google-Smtp-Source: AGHT+IG+u4pX1V7gEqz4/YlQG5gNoSB5ikcqRkyZNPIR5KUOt13GOFEEeKM/TZ322iaiuLneG81zfw==
X-Received: by 2002:a17:906:58:b0:a23:c66:2d9a with SMTP id 24-20020a170906005800b00a230c662d9amr755879ejg.7.1702566351726;
        Thu, 14 Dec 2023 07:05:51 -0800 (PST)
Message-ID: <8802a6d5-ac99-4276-a9d4-3443f5f20358@suse.com>
Date: Thu, 14 Dec 2023 16:05:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 26/39] xen/riscv: introduce asm/regs.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <073c9a03abe429c1e45f6f66b648a25aff87e9f3.1700761381.git.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: <073c9a03abe429c1e45f6f66b648a25aff87e9f3.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/regs.h
> @@ -0,0 +1,26 @@
> +#ifndef __ARM_RISCV_REGS_H__
> +#define __ARM_RISCV_REGS_H__
> +
> +#ifndef __ASSEMBLY__
> +
> +#include <xen/bug.h>
> +#include <asm/current.h>

Does one of these bring in asm/processor.h, for ...

> +#define hyp_mode(r)     (0)
> +
> +static inline bool guest_mode(const struct cpu_user_regs *r)

... struct cpu_user_regs to be available? Else a forward declaration
would be needed here.

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

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:06:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654619.1021741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnIY-0007AK-0S; Thu, 14 Dec 2023 15:06:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654619.1021741; Thu, 14 Dec 2023 15:06:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnIX-0007AD-Sn; Thu, 14 Dec 2023 15:06:49 +0000
Received: by outflank-mailman (input) for mailman id 654619;
 Thu, 14 Dec 2023 15:06:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDnIW-0006bc-SH
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:06: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 667b76c4-9a92-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 16:06:47 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-551c03ae050so3336240a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:06:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 vc12-20020a170907d08c00b00a1d4a920dffsm9411358ejc.88.2023.12.14.07.06.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 07:06:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 667b76c4-9a92-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702566406; x=1703171206; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jT14e8FY/SU3IyrpMxl+ok9YoOzRkTPgRFdpVhB8/t8=;
        b=XPzmrJNBGC2uszxebeMa5LGn6ZQACheNDR018UPCWXEGX0Z3Erhk9HO8PFmTAs993o
         Fuq8EGGmsXtwNJQna/9Xi/Wz+1SDk5o4mNeSgawbcYd/A3FKXLadF+hKqfkGBLew/Y/y
         TzouZUCcMEV1YRIBVM1xCFA2rGcCfs90hKtdWPFmDNmn1Ynk4MwSwd1YG8r2z1YkIy4B
         FNjweY7ny/c5Rw1ah+wR2nvMi+t6VCcSgZLzk5r2bO0XOT3U1Ki3BaRrSTAxBhqrhsHk
         2X00GZ0lLd8kRECaU2kEXvz7xP9QxDCz5ThrwxNYUY10G7IfCkfy2+RwXhvFrbiofRpO
         Oepw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702566406; x=1703171206;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=jT14e8FY/SU3IyrpMxl+ok9YoOzRkTPgRFdpVhB8/t8=;
        b=XkkAggo0zRbi7ar1zfz17z1V6VegBkqFuQkyWvVuogl9s+urEFm/KyHdN9+Ni/ZxSv
         2yadiR+4vdgbKZbHJM24oD6ZLoO6oxeJkOHfoEyULXjk2doTM22pnXQ5ahIcAgJ+QV1g
         gzaesPs29WMhQtRzJDka6yDarAYs37x9E+8kLlfBBT3wpDONfV+SGheXhK9O0pFnOpu+
         zIAZPakFvYOFY+qImPVrFhboRkaIn8xbBhbKf0abateluDcRGmEHb+qODyOZqfu/gnzc
         9Wg4SRl4QsPC+e1+mbGU7c1dGwY8bvJlgbPK/F7vaYJdUwhF+xW5b9dhCUWGokHNoY4f
         csYw==
X-Gm-Message-State: AOJu0YwBlmz9HvUowat7adGvcBs3tLpOVlb3utju7D6Lv2knfjZMscTX
	HA0fghETvCnhHRB0wKH04Z/q
X-Google-Smtp-Source: AGHT+IEB8kU7dppZUSoI2c9kAttMgRxDT+qD1xt0YyWkchijiEqAaxdbj79Hf/qPL9IROiuufe1iYQ==
X-Received: by 2002:a17:907:6094:b0:9fe:5d39:41c6 with SMTP id ht20-20020a170907609400b009fe5d3941c6mr5601291ejc.51.1702566406648;
        Thu, 14 Dec 2023 07:06:46 -0800 (PST)
Message-ID: <96e877a8-a98e-4275-9d99-da7b1b6dea4b@suse.com>
Date: Thu, 14 Dec 2023 16:06:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 27/39] xen/riscv: introduce asm/time.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <ab09f88d1c43478938811511c54c9d425f4080d6.1700761381.git.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: <ab09f88d1c43478938811511c54c9d425f4080d6.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/time.h
> @@ -0,0 +1,19 @@
> +#ifndef __ASM_RISCV_TIME_H__
> +#define __ASM_RISCV_TIME_H__
> +
> +#include <xen/bug.h>
> +#include <asm/csr.h>
> +
> +struct vcpu;
> +
> +/* TODO: implement */
> +static inline void force_update_vcpu_system_time(struct vcpu *v) { BUG(); }
> +
> +typedef unsigned long cycles_t;
> +
> +static inline cycles_t get_cycles(void)
> +{
> +	return csr_read(CSR_TIME);
> +}
> +
> +#endif /* __ASM_RISCV_TIME_H__ */
> \ No newline at end of file

With this taken care of (and the SPDX header added)
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:08:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:08:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654621.1021751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnK7-0007rG-Az; Thu, 14 Dec 2023 15:08:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654621.1021751; Thu, 14 Dec 2023 15: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 1rDnK7-0007r9-7E; Thu, 14 Dec 2023 15:08:27 +0000
Received: by outflank-mailman (input) for mailman id 654621;
 Thu, 14 Dec 2023 15:08:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDnK6-0007r3-5f
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:08:26 +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 a02ea5cc-9a92-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 16:08:24 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a1f8f470903so659749166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:08:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 vc12-20020a170907d08c00b00a1d4a920dffsm9411358ejc.88.2023.12.14.07.08.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 07:08:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a02ea5cc-9a92-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702566503; x=1703171303; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SNQsVP6pxPj/+aujCEPQBO1mZgAKraFllw3rLOws8gQ=;
        b=G9sclT3HYocBuTmLL/CTveEo3SPqB7nI6i7sHjieexD0R32zX4vJx3o4/7pBPCyhbI
         clRTPyTfIz1dQ1Lyx0PXuddfJXSheePRrd2bH1wFIEExxI8jZJtNWsOJXO3J4AmQQC1I
         LaXDvgU+PgiNt1zz8C1HYXRVAN1b98xi9CsZjSiLDC7yk0zvFhErm3Wyw08yAA0CSeQo
         USZwPnST7y6RU7fiNPF+fEZDVRaIvoZwu8vwlR5n3hCAEZ3KaKMJqmQnckSu/eicbw1l
         qRBdMNVeR3xIn14XE4USFgIF60P0sh7upj97uZ1Fet/WsbXpdRcTCl8iIdu8d3d/Mka5
         Fjow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702566503; x=1703171303;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=SNQsVP6pxPj/+aujCEPQBO1mZgAKraFllw3rLOws8gQ=;
        b=nVrpc7JJ+kfzQmtxyb5x7rW3GB3Deh0eyLzSboirG4paoLxPMb3DoTv4euGbjxLJ9G
         tiH/JNRetozln91yban6M9rVMolNcGFmWHnyg0qmkFgSFURfosAGLxXEEhXGVSkqOaMr
         ws5mkZ4t+nRYhq2QLaag7RYf2+QKlJ77oXbiEyUVush465Hri1VeDr4QewCN26j2jRID
         HeSLBAajdzkgkQ2x2Y4ecxF6VNxp8DzaRQ+Wp6En+sSssXhU/02OrLFHB/cxXqQGlZSh
         Yr2uiI3teW3R4aBqd/Az3WQIuilE5qUyZnAKo9OZ6/07g8TWauqkxty5/0ydLCr32rWF
         300g==
X-Gm-Message-State: AOJu0YxQWpMJTuX8G/3vCZ1gfsp489CeS7EC4TfGf21O6tqz0wnOuOnW
	3hZL6NZX4kxTMwvZIN1HS8Gb
X-Google-Smtp-Source: AGHT+IGrOC+1nTnjUpaehxubetRQGBPx94WroB/zqU9Mpm+3uRg8DC+VFIVq/xBf+7uW310Q9AtB9A==
X-Received: by 2002:a17:907:904d:b0:a1c:d54f:9f19 with SMTP id az13-20020a170907904d00b00a1cd54f9f19mr4355832ejc.53.1702566503545;
        Thu, 14 Dec 2023 07:08:23 -0800 (PST)
Message-ID: <483a3c56-14df-4130-9b05-506a19333afc@suse.com>
Date: Thu, 14 Dec 2023 16:08:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 28/39] xen/riscv: introduce asm/event.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <492c6183a8248046f0b6fdb186ad5b33953c3b24.1700761381.git.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: <492c6183a8248046f0b6fdb186ad5b33953c3b24.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/event.h
> @@ -0,0 +1,34 @@
> +#ifndef __ASM_RISCV_EVENT_H__
> +#define __ASM_RISCV_EVENT_H__
> +
> +void vcpu_mark_events_pending(struct vcpu *v);
> +
> +static inline int vcpu_event_delivery_is_enabled(struct vcpu *v)
> +{
> +    return 0;
> +}
> +
> +static inline int local_events_need_delivery(void)
> +{
> +    return 0;
> +}
> +
> +static inline void local_event_delivery_enable(void)
> +{
> +}

These are stubs aiui, and hence would better have BUG() in them?

> +/* No arch specific virq definition now. Default to global. */
> +static inline bool arch_virq_is_global(unsigned int virq)
> +{
> +    return true;
> +}

This otoh may well remain as is for the foreseeable future.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:20:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:20:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654626.1021760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnVY-0003FX-Ar; Thu, 14 Dec 2023 15:20:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654626.1021760; Thu, 14 Dec 2023 15:20:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnVY-0003FQ-7h; Thu, 14 Dec 2023 15:20:16 +0000
Received: by outflank-mailman (input) for mailman id 654626;
 Thu, 14 Dec 2023 15:20:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDnVX-0003FK-89
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:20:15 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46ab7fbb-9a94-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 16:20:12 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3333131e08dso8661991f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:20:12 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 m1-20020adfa3c1000000b003364ad1c20esm1177910wrb.0.2023.12.14.07.20.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 07:20:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46ab7fbb-9a94-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702567212; x=1703172012; 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=roCafFA+jPed1pvjVzQKTqhbqlSXUdcTavu4yEdr3J4=;
        b=pWvmXfIY4Lf+zrSIfnQNiS8PlejH7WuRa5s8jI8KbBe86joIajWjpfeNChEnwwg4C4
         yx8SKs4ZG0h+o5FUdQqiHxLLURfo86rb0rUKFoZtPlLsT3JHeyM9AOEE4Bh/CGc5JtVQ
         wZUhUhCXIgotoQ/peht7v7P55ScxqUPAqEr9Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702567212; x=1703172012;
        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=roCafFA+jPed1pvjVzQKTqhbqlSXUdcTavu4yEdr3J4=;
        b=XWK5W7AQsqsh5+/P41eytVkrMAwRiQPGqZwE/XZmiBVXnJZoI/5wldmNNmgHmRHsjo
         DWvVgkWv1QMuAQsePMQCxmjLcFf9j/2k4vBG7jDs5AuqBnpKBHB/V5GgKmEs4SXWCWNc
         tmBlxsoMdQllKNNZ54qeFSn/h+Dy/dV8W7qoq/M/brvm3YthnnYwKOd/K0zywkQgkC0C
         0kIMi1T6jq8vyRVP6TWsxgTUfZm9J4HLXJFWIgjHDbyDWuJqpygUITCqXkiOqPBAKX5L
         /keeWKMi3xU7ofay0kug444gFaRayVCQwMK1QLurqI8IAayyzlf8XidL8poMRE77KpdN
         ZyGg==
X-Gm-Message-State: AOJu0YxobNj+FuPYje7KYDyfCXqGagdcm04L5PeSQ2jRRBGqbAhohR3r
	xxz0fJzuZekaELHqOli8EDJ2ig==
X-Google-Smtp-Source: AGHT+IFMxqvHbCt9784IWB82gtUSgAfDtmiB88AeLt4ji3pQOXTwUGbpOuaJILJcUS6CLjV7y1iITQ==
X-Received: by 2002:a05:600c:1503:b0:409:79cb:1df6 with SMTP id b3-20020a05600c150300b0040979cb1df6mr5095755wmg.14.1702567212152;
        Thu, 14 Dec 2023 07:20:12 -0800 (PST)
Date: Thu, 14 Dec 2023 16:20:10 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Message-ID: <ZXsdKsQS20IAyAny@macbook>
References: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-2-roger.pau@citrix.com>
 <4f6c3481-a44c-4176-a414-b32639556bb0@suse.com>
 <ZXsFCSd1xpngciP3@macbook>
 <89c741b3-9388-412e-87bf-4253e28c7808@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
In-Reply-To: <89c741b3-9388-412e-87bf-4253e28c7808@suse.com>

On Thu, Dec 14, 2023 at 02:53:13PM +0100, Jan Beulich wrote:
> On 14.12.2023 14:37, Roger Pau Monn=C3=A9 wrote:
> > On Thu, Dec 14, 2023 at 12:18:13PM +0100, Jan Beulich wrote:
> >> On 14.12.2023 11:17, Roger Pau Monne wrote:
> >>> The minimal function size requirements for livepatch are either 5 byt=
es (for
> >>> jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm. =
 Ensure
> >>> that distance between functions entry points is always at least of th=
e minimal
> >>> required size for livepatch instruction replacement to be successful.
> >>>
> >>> Add an additional align directive to the linker script, in order to e=
nsure that
> >>> the next section placed after the .text.* (per-function sections) is =
also
> >>> aligned to the required boundary, so that the distance of the last fu=
nction
> >>> entry point with the next symbol is also of minimal size.
> >>>
> >>> Note that it's possible for the compiler to end up using a higher fun=
ction
> >>> alignment regardless of the passed value, so this change just make su=
re that
> >>> the minimum required for livepatch to work is present.
> >>
> >> That's a possibility which we don't need to be concerned about. Yet is=
n't it
> >> also possible that we override a larger, deemed better (e.g. performan=
ce-wise)
> >> value?
> >=20
> > I'm kind of confused, the compiler will always choose the higher
> > alignment.
>=20
> Will it? Before writing the reply I went through gcc's respective doc
> section, without finding such a guarantee.

Hm, yes, checked with godbolt now and GCC behaves the opposite of
clang, and will always attempt to honor the alignment passed in
falign-functions.

Maybe for release builds we should select a 16b alignment on x86?

Arm seems to use 4 byte alignment by default when using -O2.

> >  For example non-debug builds on my box end up with
> > function sections aligned to 16 instead of the 8 passed in the
> > -falign-functions=3D parameter:
> >=20
> > $ clang -MMD -MP -MF arch/x86/.traps.o.d -m64 -DBUILD_ID -fno-strict-al=
iasing -std=3Dgnu99 -Wall -Wstrict-prototypes -Wno-unused-but-set-variable =
-Wno-unused-local-typedefs   -Werror=3Dunknown-warning-option -O2 -fomit-fr=
ame-pointer -falign-functions=3D8 -nostdinc -fno-builtin -fno-common -Werro=
r -Wredundant-decls -Wwrite-strings -Wno-pointer-arith -Wdeclaration-after-=
statement -Wvla -pipe -D__XEN__ -include ./include/xen/config.h -ffunction-=
sections -fdata-sections -mretpoline-external-thunk  -I./include -I./arch/x=
86/include -I./arch/x86/include/generated -I./arch/x86/include/asm/mach-gen=
eric -I./arch/x86/include/asm/mach-default -DXEN_IMG_OFFSET=3D0x200000 -mso=
ft-float -fno-pie -fno-stack-protector -fno-exceptions -fno-asynchronous-un=
wind-tables -Wnested-externs -DHAVE_AS_VMX -DHAVE_AS_SSE4_2 -DHAVE_AS_EPT -=
DHAVE_AS_RDRAND -DHAVE_AS_FSGSBASE -DHAVE_AS_XSAVEOPT -DHAVE_AS_RDSEED -DHA=
VE_AS_CLAC_STAC -DHAVE_AS_CLWB -DHAVE_AS_QUOTED_SYM -DHAVE_AS_INVPCID -DHAV=
E_AS_MOVDIR -DHAVE_AS_ENQCMD -mno-red-zone -fpic -mno-mmx -mno-sse -mskip-r=
ax-setup -fcf-protection=3Dnone -Wa,-I./include -Wa,-I./include '-D__OBJECT=
_LABEL__=3Darch/x86/traps.o'   -DXEN_BUILD_EFI -DBUILD_ID_EFI -c arch/x86/t=
raps.c -o arch/x86/.traps.o.tmp -MQ arch/x86/traps.o
> >=20
> > $ readelf -WS xen/arch/x86/traps.o
> >=20
> > There are 107 section headers, starting at offset 0xe2e0:
> >=20
> > Section Headers:
> >   [Nr] Name              Type            Addr             Off    Size  =
 ES Flg Lk Inf Al
> >   [ 0]                   NULL            0000000000000000 000000 000000=
 00      0   0  0
> >   [ 1] .text             PROGBITS        0000000000000000 000040 000000=
 00  AX  0   0  4
> >   [ 2] .text.show_code   PROGBITS        0000000000000000 000040 000287=
 00  AX  0   0 16
> >   [ 3] .rela.text.show_code RELA            0000000000000000 008520 000=
450 18   I 104   2  8
> >   [ 4] .altinstructions  PROGBITS        0000000000000000 0002c7 00024c=
 00   A  0   0  1
> >   [ 5] .rela.altinstructions RELA            0000000000000000 008970 00=
07e0 18   I 104   4  8
> >   [ 6] .discard          PROGBITS        0000000000000000 000513 000054=
 00   A  0   0  1
> >   [ 7] .altinstr_replacement PROGBITS        0000000000000000 000567 00=
0018 00  AX  0   0  1
> >   [ 8] .ex_table         PROGBITS        0000000000000000 000580 000028=
 00   A  0   0  4
> >   [ 9] .rela.ex_table    RELA            0000000000000000 009150 0000f0=
 18   I 104   8  8
> >   [10] .text.get_stack_trace_bottom PROGBITS        0000000000000000 00=
05b0 000046 00  AX  0   0 16
> >   [11] .text.get_stack_dump_bottom PROGBITS        0000000000000000 000=
600 00003d 00  AX  0   0 16
> >   [12] .text.show_stack_overflow PROGBITS        0000000000000000 00064=
0 000158 00  AX  0   0 16
> > [...]
> >=20
> >> I'm somewhat concerned of that case. IOW is -falign-functions=3D really
> >> the right option to use here? (There may not be one which we would act=
ually
> >> prefer to use.) Specifically -falign-functions (without a value, i.e. =
using a
> >> machine dependent default) is implied by -O2 and -O3, as per 13.2 gcc =
doc.
> >=20
> > Right, and that still works fine AFAICT, see how in the example above
> > functions ended up aligned to 16 even when -falign-functions=3D8 was
> > provided on the command line.
> >=20
> >>> --- a/xen/Kconfig
> >>> +++ b/xen/Kconfig
> >>> @@ -37,6 +37,24 @@ config CC_HAS_VISIBILITY_ATTRIBUTE
> >>>  config CC_SPLIT_SECTIONS
> >>>  	bool
> >>> =20
> >>> +# Set function alignment.
> >>> +#
> >>> +# Allow setting on a boolean basis, and then convert such selection =
to an
> >>> +# integer for the build system and code to consume more easily.
> >>> +config CC_HAS_FUNCTION_ALIGNMENT
> >>> +	def_bool $(cc-option,-falign-functions=3D8)
> >>
> >> How does this check make sure 4- or 16-byte alignment are also accepte=
d as
> >> valid? (Requesting 8-byte alignment would be at least bogus on e.g. IA=
-64.)
> >=20
> > I was confused and expected the compiler to round up to the next
> > supported value by the arch, but that doesn't seem to be written down
> > in the GCC manual at least.
> >=20
> > One option would be to simply test for -falign-functions with no
> > specific alignment, and leave Kconfig code to set a suitable value on
> > a per-arch basis.
>=20
> Perhaps; this ...
>=20
> >>> +config FUNCTION_ALIGNMENT_4B
> >>> +	bool
> >>> +config FUNCTION_ALIGNMENT_8B
> >>> +	bool
> >>> +config FUNCTION_ALIGNMENT_16B
> >>> +	bool
> >>> +config FUNCTION_ALIGNMENT
> >>> +	int
> >>> +	default 16 if FUNCTION_ALIGNMENT_16B
> >>> +	default  8 if  FUNCTION_ALIGNMENT_8B
> >>> +	default  4 if  FUNCTION_ALIGNMENT_4B
>=20
> ... makes sure the highest alignment ever selected from anywhere will be
> used (should an arch need to select any of these).

That's the intention, that the highest selected FUNCTION_ALIGNMENT_X
ends up defining the value of FUNCTION_ALIGNMENT.

> >>> --- a/xen/arch/arm/xen.lds.S
> >>> +++ b/xen/arch/arm/xen.lds.S
> >>> @@ -44,6 +44,10 @@ SECTIONS
> >>>  #ifdef CONFIG_CC_SPLIT_SECTIONS
> >>>         *(.text.*)
> >>>  #endif
> >>> +#ifdef CONFIG_FUNCTION_ALIGNMENT
> >>> +       /* Ensure enough distance with the next placed section. */
> >>> +       . =3D ALIGN(CONFIG_FUNCTION_ALIGNMENT);
> >>> +#endif
> >>> =20
> >>>         *(.fixup)
> >>
> >> Seeing .fixup nicely in context - can't that (and other specialized
> >> sections containing code) also be patched?
> >=20
> > The current livepatch-build-tools logic doesn't seem to detect changes
> > to .fixup, so I've added this to my list of stuff to fix for
> > livepatch.  I do see the livepatch code in the hypervisor has support
> > for loading extra .ex_table sections, so I assume at some point it was
> > considered to add support for .fixup.  My current thinking is that
> > .fixup itself won't be changed, and that instead a new .fixup will be
> > loaded, and the newly loaded .ex_table will reference such section.
>=20
> Hmm, yes, that's a fair explanation for .fixup not needing special
> handling. Yet then I would still be worried of other snippets, e.g.
> stuff ending up in e.g. .text.cold or .text.unlikely. Would they all
> also be dealt with in similar ways?

Yes, livepatch-build-tools requires functions to be in separate
sections in order to be able to patch them.  Contents of .text.cold or
=2Etext.unlikely won't be detected by the patch generation scripts as
far as I'm aware (like it doesn't detect changes to .fixup currently).

There might be ways to create patches for those manually by building a
custom livepatch payload, but in that case the function size is left
to the user to calculate.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:28:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:28:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654632.1021770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDndY-0004tn-7v; Thu, 14 Dec 2023 15:28:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654632.1021770; Thu, 14 Dec 2023 15:28:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDndY-0004tg-59; Thu, 14 Dec 2023 15:28:32 +0000
Received: by outflank-mailman (input) for mailman id 654632;
 Thu, 14 Dec 2023 15:28: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDndW-0004ta-6j
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:28: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 6e74e276-9a95-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 16:28:28 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-50c0f6b1015so9658768e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:28:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 he43-20020a1709073dab00b00a1e21893a26sm9462019ejc.222.2023.12.14.07.28.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 07:28:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e74e276-9a95-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702567708; x=1703172508; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=2VDIexrzVZRd3Ykzq4FJxkRhO49UpQTV8isXD61Khu0=;
        b=c7e2QKcRG8chva53PiSG933+C9BANgGerdsmzHOnzrbc3aK1h8kq7i9YJIFrZQCag7
         8Cqy7iuCjAPJQAVmWzni1RWFt5dOFRLsJTnyXc0PxDb5jSOv/BU+BJY95+D7ySsKxsLm
         JPq9y26SDc4snc87aHeZV92Jpxsp60gWj45tbor1VJ+EssGh4ALBlL+3w2H/JXvgKznZ
         x1pI5zNstDVc6/A6G5SZqh2tmL+Ek6cM9GxdbyVS9B5+x5hehyYkFodkAB54Oqsu5NSS
         f3ZVunrnrjBWPhwGwfgWaVMRhk9ZZ98MFUKodw1PHBiD2TFwHil1LUy9ZG4OPwDR0BeZ
         7xQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702567708; x=1703172508;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=2VDIexrzVZRd3Ykzq4FJxkRhO49UpQTV8isXD61Khu0=;
        b=FXr4xK165BrYV/MEgXh4fo/tE9Y3vAKpgTr9rFsizgmjFQc4lirg5z5y7JQthSO1St
         xOeiMoV1hvRo0oOSMKDpfuNzNQE158ywg1RRwmFhtZttoBvuWmDYXhc3eahwyYbAvJ6+
         npL31HIj9k4Jr3kIM3CcFNrWW1Y88Mvjlv6dQSVs4uFDSpXopqIquVGNATxyWM1qIN2g
         hR6626v1mX6lGhGV/42r6MJcXxl+KUnXyCPuGfTYLRe2vANVXQmlHKER1plAjn04OdYp
         OEMQ0HpFSYTI3piX/ZVeyypTyAfX/lUMax2qK35aJ37JMl1+zrM6gUIf8VrNgwPBAlW6
         7z6Q==
X-Gm-Message-State: AOJu0Yy58Z99yBpNg44z8NI2kaGzn7k3gGcVm+FLEvnNHYCfIijgl1j6
	LuGSdcoOE3UDGva7g3foThxA
X-Google-Smtp-Source: AGHT+IHSyz9YG8lLQyzBxZwNK2fJATEg9kKQ2YRefDwzI/iXKSEHI4XxsE6n8kjz8k0FM7VZJRD9zQ==
X-Received: by 2002:a05:6512:23a2:b0:50b:ee8f:2fb1 with SMTP id c34-20020a05651223a200b0050bee8f2fb1mr5881333lfv.10.1702567708538;
        Thu, 14 Dec 2023 07:28:28 -0800 (PST)
Message-ID: <9030ad37-62f2-4cfc-8f82-83c51cd5c763@suse.com>
Date: Thu, 14 Dec 2023 16:28:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: 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>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-2-roger.pau@citrix.com>
 <4f6c3481-a44c-4176-a414-b32639556bb0@suse.com> <ZXsFCSd1xpngciP3@macbook>
 <89c741b3-9388-412e-87bf-4253e28c7808@suse.com> <ZXsdKsQS20IAyAny@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXsdKsQS20IAyAny@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.12.2023 16:20, Roger Pau MonnÃ© wrote:
> On Thu, Dec 14, 2023 at 02:53:13PM +0100, Jan Beulich wrote:
>> On 14.12.2023 14:37, Roger Pau MonnÃ© wrote:
>>> On Thu, Dec 14, 2023 at 12:18:13PM +0100, Jan Beulich wrote:
>>>> On 14.12.2023 11:17, Roger Pau Monne wrote:
>>>>> The minimal function size requirements for livepatch are either 5 bytes (for
>>>>> jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  Ensure
>>>>> that distance between functions entry points is always at least of the minimal
>>>>> required size for livepatch instruction replacement to be successful.
>>>>>
>>>>> Add an additional align directive to the linker script, in order to ensure that
>>>>> the next section placed after the .text.* (per-function sections) is also
>>>>> aligned to the required boundary, so that the distance of the last function
>>>>> entry point with the next symbol is also of minimal size.
>>>>>
>>>>> Note that it's possible for the compiler to end up using a higher function
>>>>> alignment regardless of the passed value, so this change just make sure that
>>>>> the minimum required for livepatch to work is present.
>>>>
>>>> That's a possibility which we don't need to be concerned about. Yet isn't it
>>>> also possible that we override a larger, deemed better (e.g. performance-wise)
>>>> value?
>>>
>>> I'm kind of confused, the compiler will always choose the higher
>>> alignment.
>>
>> Will it? Before writing the reply I went through gcc's respective doc
>> section, without finding such a guarantee.
> 
> Hm, yes, checked with godbolt now and GCC behaves the opposite of
> clang, and will always attempt to honor the alignment passed in
> falign-functions.
> 
> Maybe for release builds we should select a 16b alignment on x86?

Might make sense, yes. Iirc there was a time where 16-byte alignment was
the default for functions in gcc.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:28:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:28:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654633.1021781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDndt-0005Jy-Gh; Thu, 14 Dec 2023 15:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654633.1021781; Thu, 14 Dec 2023 15: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 1rDndt-0005Jr-DJ; Thu, 14 Dec 2023 15:28:53 +0000
Received: by outflank-mailman (input) for mailman id 654633;
 Thu, 14 Dec 2023 15:28: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=h5bz=HZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rDnds-0004ta-Bb
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:28:52 +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 7bf4e3b5-9a95-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 16:28:51 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-336445a2749so951763f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:28:51 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 h11-20020adffd4b000000b003333298eb4bsm16488863wrs.61.2023.12.14.07.28.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 07:28:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7bf4e3b5-9a95-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702567731; x=1703172531; 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=PEC11bvLrwqaV5FBlAzJli958YZFskgIWyli4SMwyaI=;
        b=JJy35vx+e87YkaohC5Sph1HqvE1FR03I6jKIBfcsnWgeM00K/h0INPOGhNHBkyRKAh
         o8GMOBvZ3dTSJTDlzN559dQTvOBFT7r16O3I93sEnLe3bd4PPx4am3x746SkuXHHVZGz
         ZRDDWkoWOTt8Qcx1EkH3+mrMdJnKJ7oqyWBlM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702567731; x=1703172531;
        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=PEC11bvLrwqaV5FBlAzJli958YZFskgIWyli4SMwyaI=;
        b=WhndFdPgkPknZjZPom3RKjC+6GNXDPSSvwffdI5B9muGo4oRz7yt4/MoTUlTDnWKsK
         vLqF0IlhFYr4kC9zF2lr4Uv/SQWSkqpaIKDS1FADPOr9plX3JNCbcx6dLfsk6Lympf7T
         vf4xLgE0PGZyukKr/lSt8ReIz/wMwaCq7c0K/BZc5xIGlokjRPh8zIHTPfwuVSDa4gv5
         A4n5ybF80eXfk/gnbpMzGcDsiWgOf91YkBJ3qItOl0C+VyrCaCfOwdW1wg6AA6TbGGMh
         k4WKA0RfuBdn5ePDNGfOXfx61friD1GgXreiarNDzluqBqeHoEBnM7slASJVjO8uoQJU
         CXXA==
X-Gm-Message-State: AOJu0YzRybmJzJYeqweVuH1OgpTwxBGB78ch4mEWJ22C9NhVRzMi/Tjd
	B2jHz2vKhIXmrGkn6EwDC9bRCw==
X-Google-Smtp-Source: AGHT+IF92EA5/1DPhRvrFtCQGWkXEIlA9UPJM4A60DEbq0uOZnDsICtWPCnvdQ2deEsRj22QUEuHzg==
X-Received: by 2002:a5d:630c:0:b0:333:2fd2:68dd with SMTP id i12-20020a5d630c000000b003332fd268ddmr5288179wru.112.1702567731172;
        Thu, 14 Dec 2023 07:28:51 -0800 (PST)
Date: Thu, 14 Dec 2023 16:28:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.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
Subject: Re: [PATCH v3 2/4] xen/x86: introduce self modifying code test
Message-ID: <ZXsfMthj8wTdZOeT@macbook>
References: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-3-roger.pau@citrix.com>
 <6226aa5e-c87f-48bf-b793-96aa04498c5e@suse.com>
 <ZXsHWzcCSBKRS83S@macbook>
 <31cb367f-1a20-4ced-8f6f-aeab69f7c4fb@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <31cb367f-1a20-4ced-8f6f-aeab69f7c4fb@suse.com>

On Thu, Dec 14, 2023 at 02:57:11PM +0100, Jan Beulich wrote:
> On 14.12.2023 14:47, Roger Pau MonnÃ© wrote:
> > On Thu, Dec 14, 2023 at 12:55:22PM +0100, Jan Beulich wrote:
> >> On 14.12.2023 11:17, Roger Pau Monne wrote:
> >>> --- a/xen/arch/x86/setup.c
> >>> +++ b/xen/arch/x86/setup.c
> >>> @@ -58,6 +58,7 @@
> >>>  #include <asm/microcode.h>
> >>>  #include <asm/prot-key.h>
> >>>  #include <asm/pv/domain.h>
> >>> +#include <asm/test-smoc.h>
> >>>  
> >>>  /* opt_nosmp: If true, secondary processors are ignored. */
> >>>  static bool __initdata opt_nosmp;
> >>> @@ -1951,6 +1952,8 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
> >>>  
> >>>      alternative_branches();
> >>>  
> >>> +    test_smoc(XEN_SYSCTL_TEST_SMOC_ALL, NULL);
> >>
> >> I realize I'm at risk of causing scope creep, but I'd still like to at
> >> least ask: As further self-tests are added, we likely don't want to
> >> alter __start_xen() every time. Should there perhaps better be a wrapper
> >> (going forward: multiple ones, depending on the time tests want invoking),
> >> together with a Kconfig control to allow suppressing all of these tests in
> >> at least release builds?
> > 
> > Right now I only had in mind that livepatch related tests won't be
> > executed as part of the call in __start_xen(), but all the other ones
> > would, and hence wasn't expecting the code to change from the form in
> > the next patch.
> 
> Well, I was thinking of there more stuff appearing in test/, not self-
> modifying-code related, and hence needing further test_*() alongside.
> test_smoc().

Oh, I see.  I think it might be best to introduce such wrapper when we
have at least 2 different self tests?  Otherwise it would be weird IMO
to have another function (ie: execute_self_tests()?) that's just a
wrapper around test_smoc().

> >>> --- /dev/null
> >>> +++ b/xen/arch/x86/test/smoc.c
> >>> @@ -0,0 +1,68 @@
> >>> +/* SPDX-License-Identifier: GPL-2.0 */
> >>> +
> >>> +#include <xen/errno.h>
> >>> +
> >>> +#include <asm/alternative.h>
> >>> +#include <asm/cpufeature.h>
> >>> +#include <asm/test-smoc.h>
> >>> +
> >>> +static bool cf_check test_insn_replacement(void)
> >>> +{
> >>> +#define EXPECTED_VALUE 2
> >>> +    unsigned int r = ~EXPECTED_VALUE;
> >>> +
> >>> +    alternative_io("", "mov %1, %0", X86_FEATURE_ALWAYS,
> >>> +                   "+r" (r), "i" (EXPECTED_VALUE));
> >>> +
> >>> +    return r == EXPECTED_VALUE;
> >>> +#undef EXPECTED_VALUE
> >>> +}
> >>> +
> >>> +int test_smoc(uint32_t selection, uint32_t *results)
> >>> +{
> >>> +    struct {
> >>> +        unsigned int mask;
> >>> +        bool (*test)(void);
> >>> +        const char *name;
> >>> +    } static const tests[] = {
> >>> +        { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
> >>> +          "alternative instruction replacement" },
> >>> +    };
> >>> +    unsigned int i;
> >>> +
> >>> +    if ( selection & ~XEN_SYSCTL_TEST_SMOC_ALL )
> >>> +        return -EINVAL;
> >>> +
> >>> +    if ( results )
> >>> +        *results = 0;
> >>> +
> >>> +    printk(XENLOG_INFO "Checking Self Modify Code\n");
> >>> +
> >>> +    for ( i = 0; i < ARRAY_SIZE(tests); i++ )
> >>> +    {
> >>> +        if ( !(selection & tests[i].mask) )
> >>> +            continue;
> >>> +
> >>> +        if ( tests[i].test() )
> >>> +        {
> >>> +            if ( results )
> >>> +                *results |= tests[i].mask;
> >>> +            continue;
> >>> +        }
> >>> +
> >>> +        add_taint(TAINT_ERROR_SMOC);
> >>> +        printk(XENLOG_ERR "%s test failed\n", tests[i].name);
> >>
> >> Do we really want both of these even when coming here from the sysctl?
> > 
> > So only print the messages if system_state < SYS_STATE_active?
> 
> Yes. Nor tainting the system.

OK.

> >>> --- a/xen/common/kernel.c
> >>> +++ b/xen/common/kernel.c
> >>> @@ -386,13 +386,14 @@ char *print_tainted(char *str)
> >>>  {
> >>>      if ( tainted )
> >>>      {
> >>> -        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c",
> >>> +        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c%c",
> >>>                   tainted & TAINT_MACHINE_INSECURE ? 'I' : ' ',
> >>>                   tainted & TAINT_MACHINE_CHECK ? 'M' : ' ',
> >>>                   tainted & TAINT_SYNC_CONSOLE ? 'C' : ' ',
> >>>                   tainted & TAINT_ERROR_INJECT ? 'E' : ' ',
> >>>                   tainted & TAINT_HVM_FEP ? 'H' : ' ',
> >>> -                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ');
> >>> +                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ',
> >>> +                 tainted & TAINT_ERROR_SMOC ? 'A' : ' ');
> >>
> >> How well is this going to scale as other selftests are added? IOW should
> >> this taint really be self-modifying-code-specific?
> > 
> > I'm afraid I'm not sure I'm following.  Would you instead like to make
> > the taint per-test selectable?
> 
> The other way around actually: Taint generally for failed selftests,
> not just for the self-modifying-code one (which ends up being the only
> one right now).

So the suggestion would be to use TAINT_ERROR_SELFTEST instead of
TAINT_ERROR_SMOC?  I can do that, but it might also be more
appropriate when there are more self tests.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:33:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:33:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654651.1021802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnib-0007mY-6P; Thu, 14 Dec 2023 15:33:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654651.1021802; Thu, 14 Dec 2023 15:33:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnib-0007mR-3h; Thu, 14 Dec 2023 15:33:45 +0000
Received: by outflank-mailman (input) for mailman id 654651;
 Thu, 14 Dec 2023 15:33: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDnia-0007lZ-2K
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:33:44 +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 28f82abb-9a96-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 16:33:42 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a1c7b20f895so956699066b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:33:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 qo14-20020a170907874e00b00a1f6737be65sm9265180ejc.82.2023.12.14.07.33.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 07:33:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28f82abb-9a96-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702568022; x=1703172822; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=PaiBT7+fp6FlmEVHn3Lwy3NhSgvZTPm/0hnA0Wc4po4=;
        b=csE4QHwEo86Isq5+HfU1yXOeCRDrKEmgGyJT88Gk4rHniF4CprGKnEGmTcA66CrV4r
         bgnXB3GbvKLS8U8BqSM9n4VLWGDhVprMww63NPphnhGOROUMPIYX6y4NdLcbvhxMInZv
         p06IKVqltiu77e+MNF33hW4230ObxRUiRhn0dCD6t4UKh9J6IGFXvdXvWoHU6bQIkWlY
         meKZ1bRJyYD5lny9NTj1U8JDyOitmiaIwyWTcOTIOKqWIFzE4G06X2BTu3GqmNmBh/+P
         2+CIOJxByqNYABTn4SN6tyqnyc2X7dOZLECkd96enogP3O4Do1V6TwbnS6IJOlGopbe4
         pSgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702568022; x=1703172822;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=PaiBT7+fp6FlmEVHn3Lwy3NhSgvZTPm/0hnA0Wc4po4=;
        b=Q5KAkYDFoKyrG04oQf8L77t+FliRuZUuQJ3/kkeYpx+droHCaBKA0xb/AOYKVIuzr5
         JvbNH7gbUayhItLe0TBGdcdjQoBWNIdiRdzCGNUhiwv9wBp3taA6brc+KvvHH73yPPpg
         ni2ycAg33Ojt2hOQaMZz/iVYATp7OwdOQE8ZWAyNFZSIXvKhC7xsLuOA2rWYNHRMLBZt
         4W996WwWqPRNjJB4NYsRGPPZdqc0QYX4fC4DIz1qP2HQ2pLSZ1GwJLMrWGdLXw2mj06A
         48R4e3MdYWJ9wn3Q6JYXaj15pg8H+ZsFTtNc24gUTGxrQK8LRKkVzVTuAI9nnM1YhApv
         bnyA==
X-Gm-Message-State: AOJu0YzEZxP8qUmDZqMfaDw/C6KiEYrFDYLibISuUuNWTcKtFQAqwHRu
	24vZGH5neuyATxeJ97rUPROi
X-Google-Smtp-Source: AGHT+IEA2ZB8oCmS0UyPuXtT9LtMJgx4A5LGRfb0bMuZ3idSbPrNcTmxUJuMqvs8/z4al8h2hyfKXA==
X-Received: by 2002:a17:907:868d:b0:a19:a1ba:8ccb with SMTP id qa13-20020a170907868d00b00a19a1ba8ccbmr5424992ejc.105.1702568021765;
        Thu, 14 Dec 2023 07:33:41 -0800 (PST)
Message-ID: <414cc532-727c-478e-a565-1f2d6510ffee@suse.com>
Date: Thu, 14 Dec 2023 16:33:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] xen/x86: introduce self modifying code test
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.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: <20231214101719.18770-1-roger.pau@citrix.com>
 <20231214101719.18770-3-roger.pau@citrix.com>
 <6226aa5e-c87f-48bf-b793-96aa04498c5e@suse.com> <ZXsHWzcCSBKRS83S@macbook>
 <31cb367f-1a20-4ced-8f6f-aeab69f7c4fb@suse.com> <ZXsfMthj8wTdZOeT@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXsfMthj8wTdZOeT@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.12.2023 16:28, Roger Pau MonnÃ© wrote:
> On Thu, Dec 14, 2023 at 02:57:11PM +0100, Jan Beulich wrote:
>> On 14.12.2023 14:47, Roger Pau MonnÃ© wrote:
>>> On Thu, Dec 14, 2023 at 12:55:22PM +0100, Jan Beulich wrote:
>>>> On 14.12.2023 11:17, Roger Pau Monne wrote:
>>>>> --- a/xen/arch/x86/setup.c
>>>>> +++ b/xen/arch/x86/setup.c
>>>>> @@ -58,6 +58,7 @@
>>>>>  #include <asm/microcode.h>
>>>>>  #include <asm/prot-key.h>
>>>>>  #include <asm/pv/domain.h>
>>>>> +#include <asm/test-smoc.h>
>>>>>  
>>>>>  /* opt_nosmp: If true, secondary processors are ignored. */
>>>>>  static bool __initdata opt_nosmp;
>>>>> @@ -1951,6 +1952,8 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
>>>>>  
>>>>>      alternative_branches();
>>>>>  
>>>>> +    test_smoc(XEN_SYSCTL_TEST_SMOC_ALL, NULL);
>>>>
>>>> I realize I'm at risk of causing scope creep, but I'd still like to at
>>>> least ask: As further self-tests are added, we likely don't want to
>>>> alter __start_xen() every time. Should there perhaps better be a wrapper
>>>> (going forward: multiple ones, depending on the time tests want invoking),
>>>> together with a Kconfig control to allow suppressing all of these tests in
>>>> at least release builds?
>>>
>>> Right now I only had in mind that livepatch related tests won't be
>>> executed as part of the call in __start_xen(), but all the other ones
>>> would, and hence wasn't expecting the code to change from the form in
>>> the next patch.
>>
>> Well, I was thinking of there more stuff appearing in test/, not self-
>> modifying-code related, and hence needing further test_*() alongside.
>> test_smoc().
> 
> Oh, I see.  I think it might be best to introduce such wrapper when we
> have at least 2 different self tests?  Otherwise it would be weird IMO
> to have another function (ie: execute_self_tests()?) that's just a
> wrapper around test_smoc().

That's precisely why I said "risk of causing scope creep, but I'd still
like to at least ask". I'm okay-ish, as long as it's clear that this
way more code churn may happen down the road. Same ...

>>>>> --- a/xen/common/kernel.c
>>>>> +++ b/xen/common/kernel.c
>>>>> @@ -386,13 +386,14 @@ char *print_tainted(char *str)
>>>>>  {
>>>>>      if ( tainted )
>>>>>      {
>>>>> -        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c",
>>>>> +        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c%c",
>>>>>                   tainted & TAINT_MACHINE_INSECURE ? 'I' : ' ',
>>>>>                   tainted & TAINT_MACHINE_CHECK ? 'M' : ' ',
>>>>>                   tainted & TAINT_SYNC_CONSOLE ? 'C' : ' ',
>>>>>                   tainted & TAINT_ERROR_INJECT ? 'E' : ' ',
>>>>>                   tainted & TAINT_HVM_FEP ? 'H' : ' ',
>>>>> -                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ');
>>>>> +                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ',
>>>>> +                 tainted & TAINT_ERROR_SMOC ? 'A' : ' ');
>>>>
>>>> How well is this going to scale as other selftests are added? IOW should
>>>> this taint really be self-modifying-code-specific?
>>>
>>> I'm afraid I'm not sure I'm following.  Would you instead like to make
>>> the taint per-test selectable?
>>
>> The other way around actually: Taint generally for failed selftests,
>> not just for the self-modifying-code one (which ends up being the only
>> one right now).
> 
> So the suggestion would be to use TAINT_ERROR_SELFTEST instead of
> TAINT_ERROR_SMOC?  I can do that, but it might also be more
> appropriate when there are more self tests.

... here - of course we can also rename later.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:48:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:48:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654665.1021813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnwW-0002fq-DU; Thu, 14 Dec 2023 15:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654665.1021813; Thu, 14 Dec 2023 15:48:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDnwW-0002fj-AB; Thu, 14 Dec 2023 15:48:08 +0000
Received: by outflank-mailman (input) for mailman id 654665;
 Thu, 14 Dec 2023 15:48: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDnwV-0002fd-0y
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:48:07 +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 2ae01578-9a98-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 16:48:04 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a1f47f91fc0so1000893166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:48:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 tl18-20020a170907c31200b00a1da2c9b06asm9534582ejc.42.2023.12.14.07.48.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 07:48:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ae01578-9a98-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702568884; x=1703173684; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=J3VZnS/XqbUIqSxZOPYZeTGzImphUl2TuDlrCaZ0Atk=;
        b=Pjwrc3oEjSTAp8amywq9dTyrmPPom5aJMuzSD8ub034cPectSdcpJTK6HYhUjPvxTn
         akLCLoTHY3TU61sGcjGJbQTsLrIKHMIxshY54P3blPH6sPmj9lqSmaqCraKNeuQ+aFJq
         NLP9iUAJn8Q1N1wO2Yn8QueUkOv+XSpO323qVCv2QHm0ea1HNgBMDkuIBpVKzAZMNeLy
         uHtmfae00JlU9EQzSJKpbCiIAThf27K8utYC4KrT97i57g99RrUuLYcSJG6zK7aWot5l
         n3Wbo+bZ2wEvIS7X7N2HUw+ld2bZ9pnooXXRJkvGFOJHuDMS13KwHpuLGSkI8ePvArBJ
         9ayA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702568884; x=1703173684;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=J3VZnS/XqbUIqSxZOPYZeTGzImphUl2TuDlrCaZ0Atk=;
        b=BF3vXfcFxuwyOj6j4gZf+Zj+pQJvJ1WtJBzr3Kw44QIDJ8/L221xQj5zi0ZvhUA7+/
         8zHlnPQiA+yEVmy6GckSh/j62E3T4eicAVzoxTHGtbfH1uBCOn99cppOdewAl92xWcI4
         36+tMdQuESwUWc4be4vGZ1mFEZbD59+oAGuNzwlzopizEyfZ9UOGegVCEEnPpTubb7cH
         VwYiE16k/y67P747CQKjr56NwyEyurQws2Fz5LtF2XD/z83qXXxYiQTB8zgnmWl5GzPi
         /qGqsWHkT2dnX9bjZB7UAcRUTr+IG7xWL4kPEoUoEgcn5XYhk9kmJS8eIyxLS6VlCUNO
         4FbQ==
X-Gm-Message-State: AOJu0YxgWw0HMccwdmlL3nr7Os9yakw1eRd0TS2h0AUePVbB6arfkozU
	krWkdh52GF551/Y+tzEROW2D
X-Google-Smtp-Source: AGHT+IGE9sKpgW5hnKvRFTQJfA7VtOioYJStTE9Hc2YotSFBvK92RRKDs8OUJGQ/7T0CMr5XhOmT0w==
X-Received: by 2002:a17:906:184:b0:a19:a19b:55ce with SMTP id 4-20020a170906018400b00a19a19b55cemr5086234ejb.94.1702568883952;
        Thu, 14 Dec 2023 07:48:03 -0800 (PST)
Message-ID: <b2c42d56-6bc8-4ea8-9e6f-cae259c274c5@suse.com>
Date: Thu, 14 Dec 2023 16:48:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 30/39] xen/riscv: define an address of frame table
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <13ad41657814e4fc235772fa0928de1723ae7c3d.1700761381.git.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: <13ad41657814e4fc235772fa0928de1723ae7c3d.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Also the patchs adds some helpful macros.

In how far they're (going to be) helpful is hard to tell without uses
and without some suitable comments.

> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -77,12 +77,31 @@
>    name:
>  #endif
>  
> +#define VPN_BITS    (9)
> +#define OFFSET_BITS (12)

Whose offset? In how far is this different from PAGE_SHIFT?

>  #ifdef CONFIG_RISCV_64
> +
> +#define SLOTN_ENTRY_BITS        (HYP_PT_ROOT_LEVEL * VPN_BITS + OFFSET_BITS)
> +#define SLOTN(slot)             (_AT(vaddr_t,slot) << SLOTN_ENTRY_BITS)

Nit: Missing blank after comma.

> +#define SLOTN_ENTRY_SIZE        SLOTN(1)
> +
>  #define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL) + 1 - GB(1)) */
> +
> +#define FRAMETABLE_VIRT_START   SLOTN(196)
> +#define FRAMETABLE_SIZE         GB(3)
> +#define FRAMETABLE_NR           (FRAMETABLE_SIZE / sizeof(*frame_table))
> +#define FRAMETABLE_VIRT_END     (FRAMETABLE_VIRT_START + FRAMETABLE_SIZE - 1)
> +
> +#define VMAP_VIRT_START         SLOTN(194)
> +#define VMAP_VIRT_SIZE          GB(1)

May I suggest that you keep these blocks sorted by slot number? Or wait,
the layout comment further up is also in decreasing order, so that's
fine here, but then can all of this please be moved next to the comment
actually providing the necessary context (thus eliminating the need for
new comments)? You'll then also notice that the generalization here
(keeping basically the same layout for e.g. SATP_MODE_SV48, just shifted
by 9 bits) isn't in line with the comment there.

> @@ -95,6 +114,8 @@
>  #define RV_STAGE1_MODE SATP_MODE_SV32
>  #endif
>  
> +#define HYP_PT_ROOT_LEVEL (CONFIG_PAGING_LEVELS - 1)

I understand that CONFIG_PAGING_LEVELS is defined only just up from here,
but what that identifier stands for is quite clear. It would seem to me
that moving this up ahead if its first use would help clarity.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:55:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:55:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654669.1021823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDo3M-0005Of-9O; Thu, 14 Dec 2023 15:55:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654669.1021823; Thu, 14 Dec 2023 15:55:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDo3M-0005OY-5Z; Thu, 14 Dec 2023 15:55:12 +0000
Received: by outflank-mailman (input) for mailman id 654669;
 Thu, 14 Dec 2023 15:55: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDo3L-0005OS-EF
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:55:11 +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 2810d5a0-9a99-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 16:55:08 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a1ec87a7631so737368466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:55:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 kt19-20020a1709079d1300b00a1d9c81418esm9721571ejc.170.2023.12.14.07.55.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 07:55:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2810d5a0-9a99-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702569309; x=1703174109; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1AA9b8pPqAZkCqGNXQjvl1Q6dVf0lcKY67rRVMMh1Uc=;
        b=G3k+MYhrMzHdc/EMH0y67FQZhJDD3g1yC4nkj4snwZCePGO5bFfWKfoGZVaEFb7RrW
         TqDIxR1f+4uzuhAroEekGaAx6ETqRSfennTFvntibhP7VTkriEmhApc3MgitKLEW/0TS
         yEM8EGWrR284bs1WdwwJ3Yz2vHOrJdNCqX+5652Okj9o/ia+mdUFIQSL3vmX2NbW5ydm
         w32Waiw5a13nfYwV8dUsrKPKyPRdoWKubUP2YgHyTiA85zjcR77xj5xO75n9T5WjqLO7
         8Cz01skQLU4AiRNIOK+91SQFv9tpIaTNjeFkAgBSggjY/XuUjeGtPb2UjATIlcGtPtqW
         bACw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702569309; x=1703174109;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1AA9b8pPqAZkCqGNXQjvl1Q6dVf0lcKY67rRVMMh1Uc=;
        b=aDbKquyjaTMEcmJUt9oUn8oi86vR5mTcmYY+47JXFYdsx0IKZtnwfzwg7mV0wexcQV
         aEeZyMCwjm1EryZiZo62WGk0FFNlG6v+C9xeCbn/xGscw6uQcE0kawR/WW4y0RbJNir4
         PjKiK6QoCsS0AKIkNfdnqUUwAep8GNZWJ5vGo56VMvAIDBKhr1A5r9SXCzl+/SKH+3R6
         bQyOWBunmRxXFx4GvIHDcCYSJvdjY/H521IlOPsitP98c3xF24k9OnJtDhSV3f/ZFPdo
         6fJxOKq0luj0AQFkX+AGIV/1d8UaXtfgfGXSzwHShoUaqB1PfXR3Sdim283qh3jLTdW8
         4SiQ==
X-Gm-Message-State: AOJu0YwsNxGmFdFPSXO5Yu14uUFnU4SFYm+fMSk5brVDsY4C71/NeCb9
	EKaUfn9T8bF1ap0kYjfxbLdW
X-Google-Smtp-Source: AGHT+IHNMD56N3/X6z/zV/UmAiCq/D1amJFbKc1lStWNkYD6lHMKqe2xrGhlKAi3V2PQvnBhrHY3Pg==
X-Received: by 2002:a17:906:19:b0:a12:5e2e:d27a with SMTP id 25-20020a170906001900b00a125e2ed27amr5747261eja.0.1702569308789;
        Thu, 14 Dec 2023 07:55:08 -0800 (PST)
Message-ID: <8d089dbe-a411-4083-9540-d0c95fa183cf@suse.com>
Date: Thu, 14 Dec 2023 16:55:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 31/39] xen/riscv: add required things to asm/current.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <b6328d9b5bbb9269066dc17d7c0fcb32fa935b2b.1700761381.git.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: <b6328d9b5bbb9269066dc17d7c0fcb32fa935b2b.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/current.h
> +++ b/xen/arch/riscv/include/asm/current.h
> @@ -3,6 +3,22 @@
>  #ifndef __ASM_CURRENT_H
>  #define __ASM_CURRENT_H
>  
> +#include <xen/percpu.h>
> +#include <asm/processor.h>
> +
> +#ifndef __ASSEMBLY__
> +
> +struct vcpu;

I don't think you need this here?

> +/* Which VCPU is "current" on this PCPU. */
> +DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
> +
> +#define current            (this_cpu(curr_vcpu))

Nit: No need for the extra parentheses.

> +#define set_current(vcpu)  do { current = (vcpu); } while (0)
> +#define get_cpu_current(cpu)  (per_cpu(curr_vcpu, cpu))

Same here then.

> +#define guest_cpu_user_regs() (0)

0 or NULL? Also perhaps better 

#define guest_cpu_user_regs() ({ BUG(); NULL; })

until it's properly implemented?

> @@ -10,4 +26,8 @@
>      unreachable();                                          \
>  } while ( false )
>  
> +#define get_per_cpu_offset() __per_cpu_offset[get_processor_id()]

I'd like to remind you that there's no get_processor_id() anymore.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 15:57:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 15:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654671.1021832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDo5Y-0005yd-KY; Thu, 14 Dec 2023 15:57:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654671.1021832; Thu, 14 Dec 2023 15:57:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDo5Y-0005yW-I5; Thu, 14 Dec 2023 15:57:28 +0000
Received: by outflank-mailman (input) for mailman id 654671;
 Thu, 14 Dec 2023 15: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDo5X-0005yL-5X
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 15:57: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 78a58711-9a99-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 16:57:24 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-55297485c04so41716a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 07:57:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 el13-20020a056402360d00b005527de2aecfsm528598edb.42.2023.12.14.07.57.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 07:57:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78a58711-9a99-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702569443; x=1703174243; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=qu/e6yITpwgTdF2nyZ0igoQI83bYXMlbflOh4TbbvaY=;
        b=FUbuX2uXBF8BkYCclWR5/dFHjn80K4flU8JRVVoO5+6K2AmhDLmRE3XzIalJoBMAOg
         jLFCGCFvRS8F5brMAehf5mZQqD6pRhUTOQOPLvfK/FTg3pd6kcuSvzOfQPGlpr5RCBhR
         KeKsNYzhSkmB9GSocM1KXwfqvmRQLjUXPvl7MfLSCykQqHhfunySK18t/PorXv+nvfll
         OAQLTPNdTIjagvke2DsywZs249zqu9ICP99CfBskItFTtVGLbltw2vYsgbnT6E4he+Az
         aCB0D35oHmUFwk76iHn0jgllsdZ0UgXgqBkVFhUxLkYg87MdVXBdfA3WRaQ7dxG6acKb
         jvoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702569443; x=1703174243;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=qu/e6yITpwgTdF2nyZ0igoQI83bYXMlbflOh4TbbvaY=;
        b=Qh6Znd2csHJNLvGh8GV/6Oz1Rg7ETDJKMllx9YiIWHXEdo3ilGWRDowMUVmcyd3frk
         hL5QtHr35nNqhRfvmRufjnT4roaw4hfO6wvTW4R7tmtcl0bEvxt1PvJvfX1/AH//sIPL
         /Lq/HNr86obXofyPQ0jbJc76MVO72O1bzQSNCvTYjhMNnhgWO6JvrG99N7+/kjatAhCW
         NeK8rj9bNcXf+TxUARds69LC3cz+dTsPSBsUFYBpPcCnR49Y6BqEPEoXUg3fu2hNxmb2
         xto+xn/fHEASeCLNebecVuHD7/n3WsvCJ1XmxX3OZ8hYQDjMcquK77C26V+igT+/JIps
         RvGg==
X-Gm-Message-State: AOJu0YxN6KmhYJAkipqlv+X37ZhEUKlohg79rhNLHkj/vWHliKWtdlhQ
	F8t6XlWsixQpg7D/1q/32owU
X-Google-Smtp-Source: AGHT+IEpMk9QPOKHkB+kmSLEgb+m7bX2ax2nczAgb/w0mhbdVdP1IYvpzRYxRzoCf17dTJjISKweOA==
X-Received: by 2002:a50:ab5c:0:b0:552:2bb7:2e0b with SMTP id t28-20020a50ab5c000000b005522bb72e0bmr731002edc.91.1702569443654;
        Thu, 14 Dec 2023 07:57:23 -0800 (PST)
Message-ID: <ccef1adc-af39-43b2-8f97-ed3895e8809d@suse.com>
Date: Thu, 14 Dec 2023 16:57:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 32/39] xen/riscv: add minimal stuff to asm/page.h to
 build full Xen
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <34a4bc023eb50e1d1cf70fa149825c51f2f4555f.1700761381.git.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: <34a4bc023eb50e1d1cf70fa149825c51f2f4555f.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

I wonder though ...

> --- a/xen/arch/riscv/include/asm/page.h
> +++ b/xen/arch/riscv/include/asm/page.h
> @@ -6,6 +6,7 @@
>  #ifndef __ASSEMBLY__
>  
>  #include <xen/const.h>
> +#include <xen/bug.h>
>  #include <xen/types.h>
>  
>  #include <asm/mm.h>
> @@ -32,6 +33,9 @@
>  #define PTE_LEAF_DEFAULT            (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
>  #define PTE_TABLE                   (PTE_VALID)
>  
> +/* TODO */
> +#define PAGE_HYPERVISOR 0

... whether this couldn't be defined properly right away.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:04:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:04:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654675.1021842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDoCZ-0008T5-Bf; Thu, 14 Dec 2023 16:04:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654675.1021842; Thu, 14 Dec 2023 16:04:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDoCZ-0008Sy-8W; Thu, 14 Dec 2023 16:04:43 +0000
Received: by outflank-mailman (input) for mailman id 654675;
 Thu, 14 Dec 2023 16:04: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDoCX-0008Sq-UR
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:04:41 +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 7b408c96-9a9a-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 17:04:38 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a1915034144so1084216666b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:04:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 z9-20020a170906d00900b009c5c5c2c5a4sm9550394ejy.219.2023.12.14.08.04.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 08:04:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b408c96-9a9a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702569878; x=1703174678; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HcFfTIiTFIffAV2LOgSTTjZ+M5y+zCjTyK4mjfr5F+g=;
        b=MwuzBMPLRqSA3EesltLIYxVtSKMde4uZk2qrzn2eT5CDwfCAA6fM+xgqIvuVOcU3vU
         1w4Wv1Bdhyad804jQc8DKHvgXGC/wSh6R+W+afjLMgT6U0mFFsyVmTwNCeFS+Z+pHyWp
         dgDwXTXf3eYqt6w+Y48CQoGNtQN+m6PHehA/bYE09qm25/xZx9SZlGVdm/FRo738SaXK
         33nBpU1vxrmNkt6snQKI+aRGQyXVbOLNeAKHvPlqYNsHLw8t7qWdrdJaMsUP1fMX7NsK
         g/FvUCJDIofRqqQutOK1bsDQmsuD5z7yMd4DDE3dVbID27LbnleUZATImtEkKHKhLm4C
         EVkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702569878; x=1703174678;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=HcFfTIiTFIffAV2LOgSTTjZ+M5y+zCjTyK4mjfr5F+g=;
        b=cbbPFSY0jqJBsGy82nX+8ls04l5g6E7zTNvvxnoaGQHnBZA34H2jXasdXdZT3sgsiH
         E4zTHSidiFQLmth6O+3es8kd5LPnB+H7wLPQ90mWR7ai/508G7kLhg4p6S27nH/4Fu7E
         gjNAAzxL0wjrghR+ZPRCt8EpVICkkDpkag5SXLRUGRHy0eh6wvh1XSQPVA32Jp671hTa
         jgy/aSi78dBFlWEyvSUHhcbCeiSnFoIJGanpVBcNPlQR/Sz8Ma8OqOtCdzopfqVMRoI/
         JQLOyZnxy/hxwxtWXKuPl+6MW8kE1uBmeONH7kuydLlITrGepWkeGshWZpweunZ9EBoh
         H4DA==
X-Gm-Message-State: AOJu0YxxmR/nPvacnZ9ttKBSJxJhfkmnKrl1KpDLiMWNn6obAIRcWLQV
	OPwKrKBHyPd/1iJCOhGlOYNv
X-Google-Smtp-Source: AGHT+IE58Y7rYWKvPcTjTnJCM6yKthFuhSoiBhFnNbg3IVm7oL3TNIsrXeGJwTLewcpjnH+jZrkO4w==
X-Received: by 2002:a17:906:b2d6:b0:a1d:4883:e066 with SMTP id cf22-20020a170906b2d600b00a1d4883e066mr4997187ejb.70.1702569877860;
        Thu, 14 Dec 2023 08:04:37 -0800 (PST)
Message-ID: <c431a7ac-ac4d-4de2-969a-ad2acf1a7aee@suse.com>
Date: Thu, 14 Dec 2023 17:04:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 33/39] xen/riscv: add minimal stuff to asm/processor.h
 to build full Xen
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <11f177882b74c60233626075a69bdd00d3da2311.1700761381.git.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: <11f177882b74c60233626075a69bdd00d3da2311.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/processor.h
> +++ b/xen/arch/riscv/include/asm/processor.h
> @@ -12,6 +12,9 @@
>  
>  #ifndef __ASSEMBLY__
>  
> +/* TODO: need to be implemeted */
> +#define get_processor_id() 0

Please don't re-introduce this - it was just recently dropped from the
code base.

> @@ -53,6 +56,18 @@ struct cpu_user_regs
>      unsigned long pregs;
>  };
>  
> +/* TODO: need to implement */
> +#define cpu_to_core(_cpu)   (0)
> +#define cpu_to_socket(_cpu) (0)

No need for leading underscores here.

> +static inline void cpu_relax(void)
> +{
> +	int dummy;
> +	/* In lieu of a halt instruction, induce a long-latency stall. */
> +	__asm__ __volatile__ ("div %0, %0, zero" : "=r" (dummy));

Any reason for this, when Arm's is just barrier(), and apparently they got
away with this quite fine? Also isn't this causing a division by zero,
which I'd expect to cause some kind of exception? (Terminology-wise I'm of
course biased by x86, where "halt instruction" wouldn't be suitable to use
here. But if that terminology is fine on RISC-V, then obviously no
objection.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:16:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:16:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654678.1021853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDoNp-0002iR-Dk; Thu, 14 Dec 2023 16:16:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654678.1021853; Thu, 14 Dec 2023 16: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 1rDoNp-0002iK-Ae; Thu, 14 Dec 2023 16:16:21 +0000
Received: by outflank-mailman (input) for mailman id 654678;
 Thu, 14 Dec 2023 16:16: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDoNo-0002iE-C7
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:16:20 +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 1c812ca3-9a9c-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 17:16:18 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a1f8f470903so670092466b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:16:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 rm6-20020a1709076b0600b00a1bec12448csm9546273ejc.150.2023.12.14.08.16.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 08:16:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c812ca3-9a9c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702570577; x=1703175377; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=R0dF8FAdH10Q8hinICWOsI7Ckkeic9tLUQyzW8L08mU=;
        b=Uo7wMbqZeZUBWoTGB4lCcGOW2XvPkYkH/h6GLVcEN8dCZ+pndN0f8i6MnmPJoMsgbS
         zbXFCBElMZ+egWigAhrxW8dZl4v+203GliClEjZn5VcYxb1sUhgcqUf/1XQmR0jlTsOA
         l7Fqt8C3aA+Ny1fZvuNvuiVQmI3ZToTOIqtATI2km+iIraIOnh25Hg2b3O3bYZ+ooACY
         qNQaMocLqysNxe4WI69uXiuRQb0Qt4skUX6vLlBqjxTODFTjHJB2bpX2fKXZFtLDf+OJ
         kzsKidgIuSeKi60BhadrFasGnvOraJrRrS9I0lfTRdX7D5xNS5ukd12hSbz9Rrs/ZmPy
         FjAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702570577; x=1703175377;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=R0dF8FAdH10Q8hinICWOsI7Ckkeic9tLUQyzW8L08mU=;
        b=RetJ2IbrJ5nvhAInzT8WzZ2ZkVf0TZwnUbD8k47d2T9br45PDyaTwzY4VpHrcZOxsp
         RWxrxR2RrKf5XAe+OHvbWobMZBZNNyGW12ZpvkZz1yYPKVwnv4+QUgQ+1pKK5o0C1A0v
         7Blo1fcDftxHZIi+qHZp5al0DIdB76vS9JcgU2WV7AC1bQUCeJ743lTHTVLdhpj0jsOI
         Kic2wMiSzXOZbWe7z5OyjTCShsDUotN9Zf69hnzkwTaRgOYx+9oqkB/wJD//ahaM5eGZ
         0FN65d0yXisL5BzeS/M0Hkynj1rEVUPpHbyKgNJkfhJmsx2C5A0puFwLOKIVJP19ucch
         7gZA==
X-Gm-Message-State: AOJu0Yy5hWvhxr/0G8YPSVVtlvT8mWF7GUgyVFaJe56vVfpGUpDzke1w
	mg+kYED+wdLcqz7cH2zT3MwN
X-Google-Smtp-Source: AGHT+IH80IQDQIvpiO+9AGVV/3Os7myTiGO49dSMTc26qk8vWKXmSArR5xo5eVPUNP6ArZfTPnfwHA==
X-Received: by 2002:a17:906:118:b0:a1d:b924:1042 with SMTP id 24-20020a170906011800b00a1db9241042mr5079515eje.13.1702570577563;
        Thu, 14 Dec 2023 08:16:17 -0800 (PST)
Message-ID: <ce90b4dc-20b7-41ea-ae51-9e99d4a3c07f@suse.com>
Date: Thu, 14 Dec 2023 17:16:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 34/39] xen: add RISCV support for pmu.h
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: 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>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <55a47c6b5df5ea8c7dbe38995616b997f587880e.1700761381.git.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: <55a47c6b5df5ea8c7dbe38995616b997f587880e.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

I think though that this would make sense to fold into patch 4, which is
where the relevant (stub) structure appears.

Jan

> --- a/xen/include/public/pmu.h
> +++ b/xen/include/public/pmu.h
> @@ -13,6 +13,8 @@
>  #include "arch-arm.h"
>  #elif defined (__powerpc64__)
>  #include "arch-ppc.h"
> +#elif defined(__riscv)
> +#include "arch-riscv.h"
>  #else
>  #error "Unsupported architecture"
>  #endif



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:20:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:20:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654681.1021863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDoRx-0004rk-UE; Thu, 14 Dec 2023 16:20:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654681.1021863; Thu, 14 Dec 2023 16:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDoRx-0004rd-RD; Thu, 14 Dec 2023 16:20:37 +0000
Received: by outflank-mailman (input) for mailman id 654681;
 Thu, 14 Dec 2023 16:20: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDoRw-0004rX-EA
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:20:36 +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 b5fda806-9a9c-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 17:20:35 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a22ed5f0440so434019666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:20:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 hw18-20020a170907a0d200b00a1cbe52300csm9605591ejc.56.2023.12.14.08.20.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 08:20:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5fda806-9a9c-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702570835; x=1703175635; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=W+TauTi0WTTFqG4aaGELHLCGA518s+1bbBSvABtqpQ0=;
        b=TyqTsGke+5GtPa2oWtaWCJ3y7tzQA+BsxwAOYEs2V1viX1UW6+Gv3pSxzYOVPAVyMo
         KeMD/vNxb3hTSJQ4Bbq3hLzJ0USuM8pA9zaLY6qvqpRNxSP/mGE/93XcYwlbFbaYria5
         OI8XVr4hSzTuAWntWneUXVbriNlxVcw2nWBqh6YM7mwmykCbmH1yEhw9B1AuJBwlWvmy
         Upb4XTbmGYnHNlGlZeapPdtHkahbsQmig1NNm11CCdTbZ0TnEOt4m/ZlsRfc9+OyrGb1
         Znq5/NFP1WUi2QRsABdLJ4sxR5HzM0Mj+GVOM6jDjO1iUFwR5nfV1884nkb9Udv6fHG5
         OdCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702570835; x=1703175635;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=W+TauTi0WTTFqG4aaGELHLCGA518s+1bbBSvABtqpQ0=;
        b=Gh2yybrklR0Q5jDuS0kX5kM5GNIkoiqNfPW8c6wW/RiWIkv2z1lkMGNke64BDr5xDy
         wxMAIEABozV0CrNjG//47z+OcmQ27cLTfFGQBds2UPDxZi4lnIGFjifOOb+3w1MLq1ag
         WKeue4lKPnYAche6SzqZnyh9oqbgm5Yo3g9xBvQMmIirDdeoG/8iJvbUP3swKYji3MpM
         io4xeuI/pUfgYWeeeWDBzPre+BnxVwcKv0bATnxf9aLBPkVdR2tc4lC0NlOuOFDPX9us
         jQBnAluWtxzGf9UPZAIeRhKTDyarZcrVO6estVZo/SbPpp2QVCjw4JuRJhoyYJ9PdAXF
         wYYg==
X-Gm-Message-State: AOJu0YypU6mgVTc7Qc3PuQJ2rXIe8vvnGCHQ63FDcnxy3Nrb5k+ZMJ36
	rpIVkfRmMc0odj+DkhF8gqB2
X-Google-Smtp-Source: AGHT+IEnBdXQcDnKrMb1gsXaaKx6qCMUpg4FSsnmBg4/Le3fCjWJCS1dLRzvDUI3lYn5AGuL4kK8pw==
X-Received: by 2002:a17:906:225b:b0:a1f:8ffa:15af with SMTP id 27-20020a170906225b00b00a1f8ffa15afmr3087894ejr.130.1702570835093;
        Thu, 14 Dec 2023 08:20:35 -0800 (PST)
Message-ID: <2f79370e-ba6d-4796-a375-c4e19126fef9@suse.com>
Date: Thu, 14 Dec 2023 17:20:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 35/39] xen: add necessary headers to common to build
 full Xen for RISC-V
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: 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>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <88bab81d8412588dab82bb53193105ff4993961a.1700761381.git.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: <88bab81d8412588dab82bb53193105ff4993961a.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

With an empty description it is hard to judge whether this is really needed.
I would sincerely hope we can get away without. Note how there already a few
struct xen_domctl_* forward declarations there, which - if the #include
really needs adding - should be dropped in exchange.

As a nit on the subject - it's only singular (now?) and could hence do with
being more precise on what the specific change is.

Jan

> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -4,6 +4,7 @@
>  
>  #include <xen/types.h>
>  
> +#include <public/domctl.h>
>  #include <public/xen.h>
>  
>  struct guest_area {



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:24:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:24:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654685.1021872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDoW0-0006gO-Hj; Thu, 14 Dec 2023 16:24:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654685.1021872; Thu, 14 Dec 2023 16:24:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDoW0-0006gH-Ev; Thu, 14 Dec 2023 16:24:48 +0000
Received: by outflank-mailman (input) for mailman id 654685;
 Thu, 14 Dec 2023 16:24:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDoVz-0006gB-C6
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:24:47 +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 4af298b7-9a9d-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 17:24:45 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2cc49101044so4191341fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:24:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 di5-20020a056402318500b0054cea9f91e9sm6864276edb.20.2023.12.14.08.24.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 08:24:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4af298b7-9a9d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702571085; x=1703175885; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=g9hobUheEx6nxl7wlXkAx0RzSOd0Ksqy+4tISQdL4DQ=;
        b=HKLsIbZSetoXUI3VTYwZcQ4nB9AZZBYlsdVYJblD2aRWsoFGdbBvYcuJ0lOMV/FAOE
         8Y241CSglmK21SuWQbvB3JqiYJnrVnvWoj+iuMENby8204GazmxxrZGgSZ8NxFy8Wpgu
         LjipZPEdqd5TlcfHHd/h6+97vUUk8JbrD/i+hFFBdSIwP+idutbY4e/rgetcZpksY05p
         /iBg05PX508hQA2JuS76XeJ6mVv3d7QIac25vt5LkUPPdAeHswVhXIUuJDXbvMWxLz2d
         hl5WrFbJPrP5J2/vnpV3dKnQaeXQ/mF2WvsMOdu9TT81IBYjrsaYMqivZuHd+YXNdwPp
         qAKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702571085; x=1703175885;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=g9hobUheEx6nxl7wlXkAx0RzSOd0Ksqy+4tISQdL4DQ=;
        b=QX9FTfCzIrqaemNq5O/JI/NAX9EMw5ydOwa8M3TVfNVi285B5mvKhrEtSNN+YD0+ck
         pEgaihoMrzavyVeffXJT3MC0ubhyCPyk4VIwfCV628bAScpW882XqefFjD4pBiNiZ4tG
         gUJ3JHFqfwKPc2auKelnPXNddObf1bxVldHwVN/9d9152noYrM8vM9VKQMWuilgex/N3
         WQlouv7dZ+TQFn2/tgofS8vc4Y6oaL1JWfqNdLcUwL9c9AJHMnuqZubhQCHNoHGVxE01
         rkbxKF0NFHvfJYsPqF3CB2YVrf5t/Xri3r6mwMiIb6FimJAAJD5mMEDnEIVBc+GCe+Gm
         x7PA==
X-Gm-Message-State: AOJu0YxLNdNzEWoGzw/AVVqwleXwSSHP4U7OcJJU1GDfLSQXQrfixE6v
	e8sWLEjtjCtMRg8ub9VPwWjw
X-Google-Smtp-Source: AGHT+IE48Co3kC0DbWtV8Ra70VR/Fvo8zVCCSOpgYpXGcdIeJ8iSwnM4rjFg38Rq7IMaUTu/Ok10SA==
X-Received: by 2002:a2e:a4ce:0:b0:2cc:3da1:8e1c with SMTP id p14-20020a2ea4ce000000b002cc3da18e1cmr495979ljm.74.1702571084945;
        Thu, 14 Dec 2023 08:24:44 -0800 (PST)
Message-ID: <7150b1fb-5deb-4d4d-9de1-fd5abb18ca3d@suse.com>
Date: Thu, 14 Dec 2023 17:24:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 39/39] xen: fix compilation issue of serial.c
Content-Language: en-US
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: 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>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <6e1f19de1e8a276d487e8517810da3e8e68104ff.1700761381.git.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: <6e1f19de1e8a276d487e8517810da3e8e68104ff.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> The following issue occurs on RISC-V platforms:
> drivers/char/serial.c: In function 'serial_tx_interrupt':
> drivers/char/serial.c:88:9: error: implicit declaration of function 'cpu_relax' [-Werror=implicit-function-declaration]
>    88 |         cpu_relax();
> 
> cpu_relax() is defined in <asm/processor.h> so it was added
> an inclusion of the header to serial.c.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

I think this needs moving ahead at least by one patch in the series,
but I guess I'll put it in ahead of most of the rest anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:30:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:30:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654688.1021883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDobM-0008Pk-5b; Thu, 14 Dec 2023 16:30:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654688.1021883; Thu, 14 Dec 2023 16: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 1rDobM-0008Op-1Y; Thu, 14 Dec 2023 16:30:20 +0000
Received: by outflank-mailman (input) for mailman id 654688;
 Thu, 14 Dec 2023 16:30: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 1rDobL-0008Of-9g; Thu, 14 Dec 2023 16:30: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 1rDobK-0007w9-Sm; Thu, 14 Dec 2023 16:30: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 1rDobK-0004jA-Ch; Thu, 14 Dec 2023 16:30:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDobK-0007nB-CA; Thu, 14 Dec 2023 16:30: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=OUwypn1g7wqdCJpDo5h06C/SbmCMelvzBWKrPtqZu5o=; b=zKvhw0tZpx8GgXpZXQe6mSQkvv
	rEt/UmLHge2zV48yE7WHFVgLcHJIGb1/Wx0/bymFAX6q5708GpgvWkg5EC3BFQQ/jXnweSu3lvzNR
	j0KMY3tMuid9zZSCE8BgaY5VB1BogI7Po4iE3d5QKp39tTs09s/NIXVslS0/QDHEHtA4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184136-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184136: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=59a952d9ab007fda9f7a66418782c8257d3c917f
X-Osstest-Versions-That:
    ovmf=b8a3eec88cc74bbfe7fb389d026cc7d1d8a989c8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 14 Dec 2023 16:30:18 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 59a952d9ab007fda9f7a66418782c8257d3c917f
baseline version:
 ovmf                 b8a3eec88cc74bbfe7fb389d026cc7d1d8a989c8

Last test of basis   184118  2023-12-13 03:14:37 Z    1 days
Testing same since   184136  2023-12-14 14:42:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jianyong Wu <jianyong.wu@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    
 test-amd64-i386-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
   b8a3eec88c..59a952d9ab  59a952d9ab007fda9f7a66418782c8257d3c917f -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:32:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:32:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654692.1021892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDodr-0000w9-Ic; Thu, 14 Dec 2023 16:32:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654692.1021892; Thu, 14 Dec 2023 16:32:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDodr-0000w2-Fx; Thu, 14 Dec 2023 16:32:55 +0000
Received: by outflank-mailman (input) for mailman id 654692;
 Thu, 14 Dec 2023 16:32:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDodq-0000vw-On
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:32:54 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e01454a-9a9e-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 17:32:53 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a1f5cb80a91so970476966b.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:32:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ga16-20020a1709070c1000b00a1c7f8fe581sm9614463ejc.221.2023.12.14.08.32.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 08:32:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e01454a-9a9e-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702571573; x=1703176373; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=naPya93xPXkZqa34DPYRN5ELQVzAHemEOqpxaSOlbOU=;
        b=FbcYA4gL1SKWsCvzs1CG6L8RZsvNgzluCHgn7rmZMtpFx61M6ZVX4XEdnQZeMNf38D
         C1GetJaKTaMbeWKwm6EEfpsPTOXq1Pmy+egr7ZVHkx9LN8klHYO80kTqduEFcoKHeGh+
         WHKCEvvOAUS+fpFNc8DskGVqL1Tk9eOzumE/DhQAnYV24wIUBouri6QQ/672yyXoBIpI
         BA4nhFJHgf/+wK9cr4MDwNoqc4VYuTz+/+eOPTn7NgBAQe5w/C/HhZCy1oRiVOw/ai+G
         AwwQUlXtv+EWn6CmZiIfgmw5t93ML2bKDFoNUnFnsbi7jddrTlX9NXZLbdQhBqXj6OET
         j2XQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702571573; x=1703176373;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=naPya93xPXkZqa34DPYRN5ELQVzAHemEOqpxaSOlbOU=;
        b=TjaL6CaXRvp4WHO48YNQhVxxK+3/RGYP/y5Cp2NA9gY1ICg3XyD4Ckokzri81h9dJ3
         2J0t4iYDIiTasf76mQry9Ze9qpvm+b0jesY5RxUh79mofjWamDDaW35zerQoGN/vXNII
         2119ccKMh/JVbXyrOhSFPghdpr9d8heRgd3/GcDycj1vPK5Abd6mAK6JmVf/L9U2yE2p
         WQV7HH19w9Ce08LK+/uVK+NqiaLZNlawNPv0BDuMkEAKiFdxiC13bzy7MHnuQu1+eKU6
         ubjwkyGReav9KNgOPDgteOedG+zbhTfF4Wjy8iOo/qg71Xy3xTVLALiLPQnIG/QxbtLp
         WmLA==
X-Gm-Message-State: AOJu0YwZFhT11ASCM95ypv+C+RL/6W3zZ8TCfSY0J0WG+vPc1zbODCNI
	sCy51/A06qarnuLCZesxSAVD
X-Google-Smtp-Source: AGHT+IHqGFNJWQL2pEkgWze448sNP2IPSFVrEEwKiT0gA2MCkN/9EY4S3C3JORafKujLqx6q6PnTTQ==
X-Received: by 2002:a17:906:59:b0:a19:a19b:4264 with SMTP id 25-20020a170906005900b00a19a19b4264mr3961671ejg.207.1702571573313;
        Thu, 14 Dec 2023 08:32:53 -0800 (PST)
Message-ID: <61867b53-648f-4bb0-b430-aa5d343cb29a@suse.com>
Date: Thu, 14 Dec 2023 17:32:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/9] xen/efi: address violations of MISRA C:2012 Rule 11.8
To: Simone Ballarin <simone.ballarin@bugseng.com>,
 Maria Celeste Cesario <maria.celeste.cesario@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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
 <4540a3850dae951dd6bc4f9b001c9816bde2e49e.1702555387.git.maria.celeste.cesario@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: <4540a3850dae951dd6bc4f9b001c9816bde2e49e.1702555387.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 13:07, Simone Ballarin wrote:
> --- a/xen/common/version.c
> +++ b/xen/common/version.c
> @@ -178,7 +178,7 @@ void __init xen_build_init(void)
>      if ( &n[1] >= __note_gnu_build_id_end )
>          return;
>  
> -    sz = (void *)__note_gnu_build_id_end - (void *)n;
> +    sz = (const void *)__note_gnu_build_id_end - (const void *)n;
>  
>      rc = xen_build_id_check(n, sz, &build_id_p, &build_id_len);
>  

How does this change fit the subject? I'm also inclined to ask that these
casts be changed to unsigned long or uintptr_t.

For the actual EFI change:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:35:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:35:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654696.1021904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDogi-0001p3-1j; Thu, 14 Dec 2023 16:35:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654696.1021904; Thu, 14 Dec 2023 16:35:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDogh-0001ow-TM; Thu, 14 Dec 2023 16:35:51 +0000
Received: by outflank-mailman (input) for mailman id 654696;
 Thu, 14 Dec 2023 16:35:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i1ex=HZ=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rDogg-0001oq-Cb
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:35:50 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d66b5473-9a9e-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 17:35:49 +0100 (CET)
Received: from Dell.homenet.telecomitalia.it
 (host-82-60-45-193.retail.telecomitalia.it [82.60.45.193])
 by support.bugseng.com (Postfix) with ESMTPSA id 266554EE073C;
 Thu, 14 Dec 2023 17:35:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d66b5473-9a9e-11ee-98e9-6d05b1d4d9a1
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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>,
	Wei Liu <wl@xen.org>
Subject: [XEN RFC] xen/bug: introduce bug_fn_nonconst_t to validate run_in_exception_handle()
Date: Thu, 14 Dec 2023 17:35:42 +0100
Message-Id: <3423244b0b1506d2a928799d80e15c19add75566.1702570086.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce function type bug_fn_nonconst_t (as opposed to bug_fn_t)
to validate the argument passed to run_in_exception_handle().

Place the definition of bug_fn_nonconst_t before of asm/bug.h inclusion
so that arch-specific implementations of run_in_exception_handler() can
use it (and move bug_fn_t into the same place for the same reason).

Furthermore, use bug_fn_nonconst_t to address violations of
MISRA C:2012 Rule 8.2  ("Function types shall be in prototype form with
named parameters").

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
At the moment, bug_fn_t can not be used within run_in_exception_handler()
because of the const qualifier on the formal parameter.
I tried to adjust the constness of the functions passed to
run_in_exception_handler but at a certain point I stopped:
a lot of code churn is required and I am not sure about the correctenss of the
result.
So, I came up with this solution, taking inspiration from the exising functions
show_execution_state() and show_execution_state_nonconst().

I would like to ask if:
1) I correctly applied Julien's suggestion about the visibility [1];
2) this RFC can become a patch.

[1]
https://lists.xenproject.org/archives/html/xen-devel/2023-11/msg01361.html
---
 xen/common/bug.c      |  2 +-
 xen/include/xen/bug.h | 21 +++++++++++++++------
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/xen/common/bug.c b/xen/common/bug.c
index ca166e102b..9170821ab8 100644
--- a/xen/common/bug.c
+++ b/xen/common/bug.c
@@ -63,7 +63,7 @@ int do_bug_frame(struct cpu_user_regs *regs, unsigned long pc)
 
     if ( id == BUGFRAME_run_fn )
     {
-        void (*fn)(struct cpu_user_regs *) = bug_ptr(bug);
+        bug_fn_nonconst_t *fn = bug_ptr(bug);
 
         fn(regs);
 
diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h
index cb5138410e..c6f5594af5 100644
--- a/xen/include/xen/bug.h
+++ b/xen/include/xen/bug.h
@@ -12,6 +12,18 @@
 #define BUG_LINE_LO_WIDTH (31 - BUG_DISP_WIDTH)
 #define BUG_LINE_HI_WIDTH (31 - BUG_DISP_WIDTH)
 
+#ifndef __ASSEMBLY__
+
+/*
+ * Make bug_fn_t and bug_fn_nonconst_t visible for arch-specific implementation
+ * of run_in_exception_handler.
+ */
+struct cpu_user_regs;
+typedef void bug_fn_t(const struct cpu_user_regs *regs);
+typedef void bug_fn_nonconst_t(struct cpu_user_regs *regs);
+
+#endif
+
 #include <asm/bug.h>
 
 #ifndef __ASSEMBLY__
@@ -99,18 +111,15 @@ struct bug_frame {
 
 #endif
 
-struct cpu_user_regs;
-typedef void bug_fn_t(const struct cpu_user_regs *regs);
-
 #ifndef run_in_exception_handler
 
 /*
  * TODO: untangle header dependences, break BUILD_BUG_ON() out of xen/lib.h,
  * and use a real static inline here to get proper type checking of fn().
  */
-#define run_in_exception_handler(fn) do {                   \
-    (void)((fn) == (void (*)(struct cpu_user_regs *))NULL); \
-    BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL);             \
+#define run_in_exception_handler(fn) do {       \
+    (void)((fn) == (bug_fn_nonconst_t *)NULL);  \
+    BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL); \
 } while ( false )
 
 #endif /* run_in_exception_handler */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:36:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:36:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654699.1021913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDohI-0002KK-9E; Thu, 14 Dec 2023 16:36:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654699.1021913; Thu, 14 Dec 2023 16:36:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDohI-0002KD-55; Thu, 14 Dec 2023 16:36:28 +0000
Received: by outflank-mailman (input) for mailman id 654699;
 Thu, 14 Dec 2023 16:36:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDohH-0002BF-48
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:36:27 +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 ec4041b2-9a9e-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 17:36:25 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2c9f9db9567so95731091fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:36:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 h7-20020a170906530700b00a1b32663d7csm9633429ejo.102.2023.12.14.08.36.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 08:36:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec4041b2-9a9e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702571785; x=1703176585; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=PRKu0czlNBsLFVH3CVysVNF65A67HErZmHe2IEwwcq0=;
        b=HE/+liaQdVakosfchhj01V2R7rnCq/JlN46V2pJPu/v5BFPUIhQyjAa/yx7fuPXIe9
         hhT4lc5094c0/PsQR9cRIqhrAF6ulnpyHTQ8kTxqGohIqVvycBfd/YEZimg8jfaeVr6N
         6oTtqoq9pDsGIloWaiRVLok6kxs7QxBrzEN+e01uclDZZrZYBuD6SZijxHRb6IvOY3Oc
         jNpavN62sX5Y6Q5sl4TB6LirX/42eSRYMqH855mBGTkrD26bJYloJpHmxKygf2Mbwle6
         B31Y0q29dyOA3Mzs9xo2ZxmhzweVY9UoLUm+M0x4mBcIvSDLMTyBMHDu/zE6QDC16rit
         ySmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702571785; x=1703176585;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=PRKu0czlNBsLFVH3CVysVNF65A67HErZmHe2IEwwcq0=;
        b=i06pJ3q8qS/1fPrGZNxbEwsJ1G8wKzwW6S8rxx1lbLMWQ6jrQDO3JpcJdSTWuwTiB/
         YXX01tvnTEw0MzLsqI3VGR1f/cBz31mTwYJhVrCdGQfAu83BPbjzkWIXSNxVNplgcmct
         5IQ98AjsQ5W1sGWmJ/c3oCrHaVYK8UOgvboCoaYW0SHhAxoiljxVkS5PuOIHBskmgVKc
         INUHbQbEO1i4Eo8tFFPlBxCdeDn5D29OBo/V6yrezY3NmJlK11mfKK8aGMausrIqlzVq
         jfpqhg5OfjROGcqIn/AoQg4SMjibMeKXOMR+gCNo0Lhj6MgtPz3eSuPWS1SxfYw8hkQr
         6jXQ==
X-Gm-Message-State: AOJu0YyjyEam8p2xbHmBFi8nJ0CqX2GNQeVY0uCT4c4IDamwL2fM7HB/
	9OjrluqV8JupSLmVXLpxB5jOwcLeDZQ3O7p3UdWz
X-Google-Smtp-Source: AGHT+IGB8phFJ0MvtA+chBVuEXVM9gfwZrbVmb+F1F5S+rz4gSJA0ZZD9nI6C2AhNbzvoHZI9N/vDQ==
X-Received: by 2002:a05:6512:2388:b0:50b:dec0:8d0b with SMTP id c8-20020a056512238800b0050bdec08d0bmr5991595lfv.85.1702571784940;
        Thu, 14 Dec 2023 08:36:24 -0800 (PST)
Message-ID: <a9b5e527-b2a8-4edb-8285-77e6be0152e3@suse.com>
Date: Thu, 14 Dec 2023 17:36:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/9] ACPI: address violations of MISRA C:2012 Rule 11.8
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>
Cc: consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
 <44c8f94bcfe4f0e33e53a7eb8aef826e7d906196.1702555387.git.maria.celeste.cesario@bugseng.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: <44c8f94bcfe4f0e33e53a7eb8aef826e7d906196.1702555387.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 13:07, Simone Ballarin wrote:
> --- a/xen/include/acpi/acmacros.h
> +++ b/xen/include/acpi/acmacros.h
> @@ -116,7 +116,7 @@
>  #define ACPI_PTR_TO_PHYSADDR(i)         ACPI_TO_INTEGER(i)
>  
>  #ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
> -#define ACPI_COMPARE_NAME(a,b)          (*ACPI_CAST_PTR (u32,(a)) == *ACPI_CAST_PTR (u32,(b)))
> +#define ACPI_COMPARE_NAME(a,b)          (*ACPI_CAST_PTR (const u32,(a)) == *ACPI_CAST_PTR (const u32,(b)))

Hmm, I'm a little hesitant to take changes to this header. We've
inherited it from Linux, who in turn inherited / imported it from
ACPI CA.

>  #else
>  #define ACPI_COMPARE_NAME(a,b)          (!ACPI_STRNCMP (ACPI_CAST_PTR (char,(a)), ACPI_CAST_PTR (char,(b)), ACPI_NAME_SIZE))
>  #endif

What about this alternative code, btw?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:40:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:40:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654703.1021922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDoky-00048u-MB; Thu, 14 Dec 2023 16:40:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654703.1021922; Thu, 14 Dec 2023 16:40:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDoky-00048n-Jj; Thu, 14 Dec 2023 16:40:16 +0000
Received: by outflank-mailman (input) for mailman id 654703;
 Thu, 14 Dec 2023 16:40: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=McK7=HZ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rDokx-00048g-0r
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:40:15 +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 7494e660-9a9f-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 17:40:14 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2cc3f5e7451so18867361fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:40:14 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 g4-20020a2eb0c4000000b002ca35adea10sm2167220ljl.15.2023.12.14.08.40.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Dec 2023 08:40:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7494e660-9a9f-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702572014; x=1703176814; 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=JRy2ITIZLne8uh+U7lI4/2fjdiedROs7l88bSv7nTOM=;
        b=kEPCnwU5NWxqPKS9FF59x3KQ9e3HtM/fmFMNDVPTzP/CX/CPBK/oJxYXUpc2p53scn
         qQnpS68IaqfW4PDeO7t3f5KxhBLyEWVQuu9L+rXuTipfo0XnKy5OSOcAdVco0omgON93
         nHV3pHP19bNWs6vqLcM6Mrl5iKw4DeosbXTjumPGaocIV7vi9TSZ+BFQAunr/3zoHF8k
         qJvR3hCagsEG+A8w0/p85RfELKKaXRBpd8YtDJY2OCbiBzrWV65jbX/yY6ik/FiFKUl+
         uF0VNGT3Msdh1imIyUwb6a/9DrSHlKxMd10c+y2b5lGecXgWreq67vwJRosU/5CTY9K+
         xQQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702572014; x=1703176814;
        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=JRy2ITIZLne8uh+U7lI4/2fjdiedROs7l88bSv7nTOM=;
        b=wOrdqKSSg1mQ7VhJ5MdrCElMMTCZl2RW7DvFZsaXXw4qbWJyz0taZ/T+f9EW7IN5bZ
         6GCHBvBLtqhgMrOmDh03AybBHWFh5ZgAo/gymRCUYcmWMRr4XlPafbpUwUNVlZF31WbL
         /sPZiO2g4Mk01bXsCPZ1iRWU2TmXhdJryVXEyGKlVGZwoAG9IFVqiGELZjdCJl95LUiX
         1DT9jYWCd+LJgSMknBrOayOnBnisagAKJ1eoNVAamjzHHHBIGriAVRPX0+2WJkfz7qRF
         bAditiROZavsuxMv8mrwrniSITr15lJKOhKL4LA46UPOD+G0G8bNXVLYjNruAebGPOwW
         lu6Q==
X-Gm-Message-State: AOJu0YyP1DEX6wRfnnZbA+eBVktEx2mD0afR27NKu9hlMzhvMJNKX2re
	ou04wXfqNIzIGjLXQmBNbV8XVnS1P/WekA==
X-Google-Smtp-Source: AGHT+IHTgWo613m3oZZ6/Bm5zWWLKKuWtDQYIGZeWFasYjYph5IGCMm89hLIfemAKmOn7788W/3vwg==
X-Received: by 2002:a2e:b74b:0:b0:2cc:2fb2:c3a4 with SMTP id k11-20020a2eb74b000000b002cc2fb2c3a4mr2159499ljo.53.1702572013507;
        Thu, 14 Dec 2023 08:40:13 -0800 (PST)
Message-ID: <54981058256b8edf4c735e82960d90d6aa8df99a.camel@gmail.com>
Subject: Re: [PATCH v2 39/39] xen: fix compilation issue of serial.c
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>,
 xen-devel@lists.xenproject.org
Date: Thu, 14 Dec 2023 18:40:10 +0200
In-Reply-To: <7150b1fb-5deb-4d4d-9de1-fd5abb18ca3d@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <6e1f19de1e8a276d487e8517810da3e8e68104ff.1700761381.git.oleksii.kurochko@gmail.com>
	 <7150b1fb-5deb-4d4d-9de1-fd5abb18ca3d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 17:24 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > The following issue occurs on RISC-V platforms:
> > drivers/char/serial.c: In function 'serial_tx_interrupt':
> > drivers/char/serial.c:88:9: error: implicit declaration of function
> > 'cpu_relax' [-Werror=3Dimplicit-function-declaration]
> > =C2=A0=C2=A0 88 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cpu_r=
elax();
> >=20
> > cpu_relax() is defined in <asm/processor.h> so it was added
> > an inclusion of the header to serial.c.
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> Acked-by: Jan Beulich <jbeulich@suse.com>
>=20
> I think this needs moving ahead at least by one patch in the series,
> but I guess I'll put it in ahead of most of the rest anyway.
Thanks. I'll moved it.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:41:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:41:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654706.1021933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDolo-00059h-4n; Thu, 14 Dec 2023 16:41:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654706.1021933; Thu, 14 Dec 2023 16:41: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 1rDolo-00059a-1c; Thu, 14 Dec 2023 16:41:08 +0000
Received: by outflank-mailman (input) for mailman id 654706;
 Thu, 14 Dec 2023 16:41: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDoln-0004qM-NE
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:41:07 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93764c8b-9a9f-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 17:41:06 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-54cde11d0f4so11512505a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:41:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 tp25-20020a170907c49900b00a1f7c502736sm8344807ejc.164.2023.12.14.08.41.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 08:41:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93764c8b-9a9f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702572065; x=1703176865; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=WZymVK33WgTVZ4huU390OLbZTDqEpS01bezEYBsmnGQ=;
        b=BP8pUDSmqcaRUV1DuQSihblQU0XO6MnwuhlWezvg3LJMOPyCjmWhIowl20skzvpdm3
         tQKZq9mz5v9yCZZ8Fp1oiylVP5I3PdOtF7dkjeOSnR0hUtu4WpvKSn4MSycg0w93qEWG
         lNsg+IYAbeRZhCkcgPg9uC5qILjYfjHiEDcyQSoUUH1uYHu15PSlaxdpjNFLi1SFEbWV
         ePTydmV6jypdoVyGUh46ngGDKSmc3pR26kvtBwOd4/k1v5xmRveZfYaTJVqmVwYTeYex
         CW/+wocSyaQy1Ys8u4RjvdwrAhBRv8ZXy23bfse/aBgVt1L2BRmUflMkaHxiQ5n6BQaK
         KgCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702572065; x=1703176865;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=WZymVK33WgTVZ4huU390OLbZTDqEpS01bezEYBsmnGQ=;
        b=ZJvKzqyb6UUm2rhbocLCRK/eLYY9ye16TR6TapsEvbxbmOwysg8iNDi4qh++q38A/7
         GD/GoTepYGQvLIrk+D7/jyEGQwdsY8v+vWo9p/NTrP18ge2lTEKXEpPa4k3LohFuYjBZ
         riB2iNQNy9L8AuObXZvJ9CnwWHCtW9Fcr6ICLL/T9oA4xM1dYgw60W42ipEIcomGCpHb
         oVK0s8stiJfRwiM4hURhigFAVVQMryaZmcCLWSR3fA+k5B1yAUi8ZzQJI/zEyaDAPwzD
         ujxjTO7lIx9D9dKs67U+RPBfPvl5xPONUJ6jTIDSTrPag/s+pTIpbV4TxYLstI/cRhka
         xq9g==
X-Gm-Message-State: AOJu0Yyt6pItxcaPsaA8CXYkd4bzzy4qrS8yqieOBYSq79W4TTXBuxFE
	WZOS71o3w+22yVgAO1/zJqlvFwUsIRMkhdujmrqS
X-Google-Smtp-Source: AGHT+IFWJGVtecjVtZQzWPHsibwEYPDmor3cI9s5xyrUZynWoYtN5z5kpl9yW88HzAv98baQTg05qw==
X-Received: by 2002:a17:907:31c3:b0:a19:a1ba:da2d with SMTP id xf3-20020a17090731c300b00a19a1bada2dmr6405591ejb.84.1702572065590;
        Thu, 14 Dec 2023 08:41:05 -0800 (PST)
Message-ID: <0aad77af-e760-4ea9-b2e7-b308bbdbfa44@suse.com>
Date: Thu, 14 Dec 2023 17:41:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/9] xen/x86: address violations of MISRA C:2012 Rule 11.8
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Cc: consulting@bugseng.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.1702555386.git.maria.celeste.cesario@bugseng.com>
 <68e28c7631f1233df1527674cfc27cf3f44797a7.1702555387.git.maria.celeste.cesario@bugseng.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: <68e28c7631f1233df1527674cfc27cf3f44797a7.1702555387.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 13:07, Simone Ballarin wrote:
> --- a/xen/arch/x86/boot/reloc.c
> +++ b/xen/arch/x86/boot/reloc.c
> @@ -300,8 +300,8 @@ static multiboot_info_t *mbi2_reloc(uint32_t mbi_in, uint32_t video_out)
>                  const struct vesa_mode_info *mi;
>  
>                  video = _p(video_out);
> -                ci = (void *)get_mb2_data(tag, vbe, vbe_control_info);
> -                mi = (void *)get_mb2_data(tag, vbe, vbe_mode_info);
> +                ci = (const void *)get_mb2_data(tag, vbe, vbe_control_info);
> +                mi = (const void *)get_mb2_data(tag, vbe, vbe_mode_info);

This wasn't and isn't very nice, but I also can't think of a way to
improve it, so
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:43:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:43:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654709.1021942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDons-0006Le-GW; Thu, 14 Dec 2023 16:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654709.1021942; Thu, 14 Dec 2023 16: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 1rDons-0006LX-Di; Thu, 14 Dec 2023 16:43:16 +0000
Received: by outflank-mailman (input) for mailman id 654709;
 Thu, 14 Dec 2023 16:43: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDonr-0006LR-Gm
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:43:15 +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 dff1f64b-9a9f-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 17:43:14 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-54f4f7d082cso9451680a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:43:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 er22-20020a056402449600b0055291f03be2sm147803edb.83.2023.12.14.08.43.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 08:43:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dff1f64b-9a9f-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702572194; x=1703176994; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=p59r0OwJ2c/bXFSnnK6lECJNx+J4L0BqUsqOUHTNUyA=;
        b=dlgTCeqUGITeJeyNtke8AxHy6w0Fdui4XrbmZ1KDeSsQnEkgfZOt198ihnWreYvUmn
         LFoQcQfGUUDkGClzqvwoO+BMQvianXLQMluwAu66es8tktp2tJFvyMpU6CWpMo5HtW0H
         lq3Jhg9Ne9xDSedq5OXekEguXkBLpH1P5Q13jkYYqLgamvioqxHCOj2AMBxx0NLKNlkP
         azacQT9gB3MvfO2bpeRW2pfV1C0e9d9vyeuwQQv39udpFFvyyGwL1Y9H+IWDSBFCamtK
         PFPDQFmkb79e0lWEDP7GrYn3Op0bh5CNXlvXjLw+G1vHU/VbBjJxSypGA+E8awiEx6mi
         K1dA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702572194; x=1703176994;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=p59r0OwJ2c/bXFSnnK6lECJNx+J4L0BqUsqOUHTNUyA=;
        b=tC7wTdOwu5Pb8P/vRPpvv70ldy9WFXBD1K+lf2L+ER1JCesQFDPIEvIBZ3Bz5+AxfA
         jrut1N2BN7GObf+AQBFbY5XfF2ACA4/ATnAcQuavPg4IRTPfQfNoAygCRnJTxpYTKgLt
         n54mIgJmio6nepa3KXi3hWkvAw1feMsdN9AG+H8wIqiMRAbwTtXRdge2Zsxtakx7U5WT
         +CPmo3m9W5YsuzOVZQTO68WmSjaJazyZavHndKr7NlmpQwZbPsDl9weoYPITPJAsIBrx
         0aiBJ/32K9I81L/Ex7Wc95wixqeo1molTvsuqrJdCDGqi3LeqOZVvFvxBMx4MDCtkRnF
         ZUbw==
X-Gm-Message-State: AOJu0YxyrBZFbEjHBCUDzoYIc9eFTkqbTw69Kr85C5oqH4pwzvQ9Y8O+
	i16KYACmoZzDNhtgPnXlh7gr
X-Google-Smtp-Source: AGHT+IHCSJa7986FsQocuLUjhuRSr1fleGUvOa4gGos5KdhSYCj7whANhFt2044LkoVGAkMtc8NMYA==
X-Received: by 2002:a50:d706:0:b0:552:3530:2f88 with SMTP id t6-20020a50d706000000b0055235302f88mr1569749edi.68.1702572193932;
        Thu, 14 Dec 2023 08:43:13 -0800 (PST)
Message-ID: <97004f27-8b57-490a-aa02-48dfa724c593@suse.com>
Date: Thu, 14 Dec 2023 17:43:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/9] x86/hvm: address violations of MISRA C:2012 Rule 11.8
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Cc: consulting@bugseng.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.1702555386.git.maria.celeste.cesario@bugseng.com>
 <bfdd8f021230224e3bb1aea2aceaf2c712615ba7.1702555387.git.maria.celeste.cesario@bugseng.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: <bfdd8f021230224e3bb1aea2aceaf2c712615ba7.1702555387.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 13:07, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Remove unnecessary cast.
> from is a const-qualified pointer to void and the function hvm_copy_to_guest_linear
> requires a const void* type argument, therefore the cast to void* is not necessary.
> 
> 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: Jan Beulich <jbeulich@suse.com>




From xen-devel-bounces@lists.xenproject.org Thu Dec 14 16:51:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 16:51:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654713.1021952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDovl-00087U-5j; Thu, 14 Dec 2023 16:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654713.1021952; Thu, 14 Dec 2023 16: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 1rDovl-00087N-33; Thu, 14 Dec 2023 16:51:25 +0000
Received: by outflank-mailman (input) for mailman id 654713;
 Thu, 14 Dec 2023 16: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDovj-00087H-Vm
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 16:51:23 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 023a42b2-9aa1-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 17:51:21 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a1f8510883aso764866966b.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 08:51:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fb4-20020a1709073a0400b00a1c76114fcesm9625021ejc.218.2023.12.14.08.51.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 08:51:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 023a42b2-9aa1-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702572681; x=1703177481; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=dNYvtmubaofRIkT+8zeBPrH20RsMCKxGj/hy+mbuttg=;
        b=ZCI2dE7DwxM7TGwEH/W98UQl5/kDo5xpUzgcJTZlRpVKIiaMlcaXAkb14lepM1+Wpd
         ZG1265LmepILbDfFZIMfS/ntzWzsyLjuv0S/iY7uw6pb7xPzhDn++hAe+M1WQuUaNkIg
         WXOLdYr/B/oCRdKmfOW3tVV31ygxIuKNLtwQAt4H6J5eztcHeDw5bcfK56QzIwvwzSg1
         lGUwEBt4gIBT4aJ8Qr3Pq4gsBqlmOGhZjThydTMl5CO8WgX/uCMLhdS1AMKKtyXwiBxy
         rXS5MFHMD/5NY+iXmZzJzajCD/+d1dlcQwa61Tn53KcGw9SWZHX58xj0QGzc8Fp2GfLb
         4s4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702572681; x=1703177481;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=dNYvtmubaofRIkT+8zeBPrH20RsMCKxGj/hy+mbuttg=;
        b=Smp2+6mZk7cRLc9CN3f5ngBqrSfF4SXQKd4+4bOoWyXwIMmE2ACCCYsVMdlodLLTJA
         ZrT5UjxWCK9+miyKzqPqwNDrSZrBc5olBOG8r7KW+twYpZmDRqRBLa0DDRa+x436tXiN
         tXoFC6AH/xGiHPS0bOrPym5xs/5Wu9r79+rcC5spWNTrwoey8GUh6MsI3GVM9u/O6MLI
         dAGnE/k1aOPOd/2mJjC+LGIwRl1mN/uvIY+zhtaFmVKsrsqNYnuCvujFz8a+C3kNcusg
         shN68U+jObjZv18YZB3/ac9yJNghHJfPEWW2gZImf7JAv9U7cIypkgMegUdqFvYXKWXo
         XPYA==
X-Gm-Message-State: AOJu0YxeXFRFfxI47xSnIGvcRL6BCWjmBXKfMOW1WNL3MkByZA6D5hSW
	Vcjph6ItJWpoVzC5f9Hov6+1
X-Google-Smtp-Source: AGHT+IHAfK/aMq5JTkZTVoxqjTWTGnapFIQ6MDVU7sNkwjPuPuv4iorzyFVh9S/Ja7y7SW5fVICMdQ==
X-Received: by 2002:a17:907:7f1f:b0:a19:d40a:d1fd with SMTP id qf31-20020a1709077f1f00b00a19d40ad1fdmr3436465ejc.201.1702572680909;
        Thu, 14 Dec 2023 08:51:20 -0800 (PST)
Message-ID: <b93417c7-1375-4bf4-ace2-d36bd63c8b0b@suse.com>
Date: Thu, 14 Dec 2023 17:51:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 9/9] xen: add SAF deviation for safe cast removal.
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>,
 Maria Celeste Cesario <maria.celeste.cesario@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>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
 <36e996b864853dba26a9c9fb9c9c674e92cc935e.1702555387.git.maria.celeste.cesario@bugseng.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: <36e996b864853dba26a9c9fb9c9c674e92cc935e.1702555387.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 13:07, Simone Ballarin wrote:
> --- a/docs/misra/safe.json
> +++ b/docs/misra/safe.json
> @@ -28,6 +28,14 @@
>          },
>          {
>              "id": "SAF-3-safe",
> +            "analyser": {
> +                "eclair": "MC3R1.R11.8"
> +            },
> +            "name": "MC3R1.R11.8: removal of const qualifier to comply with function signature",
> +            "text": "It is safe to cast away const qualifiers to comply with function signature if the function does not modify the pointee."

I'm not happy with this description, as it invites for all sorts of abuse.
Yet I'm also puzzled that ...

> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -3413,6 +3413,7 @@ static enum hvm_translation_result __hvm_copy(
>  enum hvm_translation_result hvm_copy_to_guest_phys(
>      paddr_t paddr, const void *buf, unsigned int size, struct vcpu *v)
>  {
> +    /* SAF-3-safe */
>      return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */,
>                        paddr, size, v,
>                        HVMCOPY_to_guest | HVMCOPY_phys, 0, NULL);

... this is the only place you then use it. Afaict some of Arm's copy_guest()
callers ought to have a similar issue. If so, an enlarged patch should be
discussed with a larger audience, to see how we collectively think we want to
put this specific kind of deviation.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 17:08:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 17:08:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654716.1021963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDpBw-0003rI-E1; Thu, 14 Dec 2023 17:08:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654716.1021963; Thu, 14 Dec 2023 17:08:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDpBw-0003rB-A9; Thu, 14 Dec 2023 17:08:08 +0000
Received: by outflank-mailman (input) for mailman id 654716;
 Thu, 14 Dec 2023 17:08: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=xmUX=HZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rDpBv-0003pr-12
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 17:08:07 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5709ddb9-9aa3-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 18:08:02 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2c9f099cf3aso125298111fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 09:08:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o20-20020a17090611d400b00a0d02cfa48bsm9618542eja.213.2023.12.14.09.08.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 09:08:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5709ddb9-9aa3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702573682; x=1703178482; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=lvWck/vkt//fHgws7/hzujTWbo5R8ofID7T5B0xhEfo=;
        b=Y944ZmoBL13Vezey6libb5H1/zSiWBSrhIahy7lY8InMBI2qGMy660WZNQhH9HXdvO
         oycyyFztqkeT4LCq7R21s6YH87vcyfAxleNqxMYRLigQLz3qpfVcYYuC+eXFWQu28d9S
         G7Z6DxJtqpFfnbJUvdSdtSrSZ6vBE2UxQL1skQluxMCrr0nTgmie28G1jZWnh0So54gz
         rwqWzb0bHK4p+wLmfK2r/Km3aaEUpGvwt6kOo0hFvoY+Q6cEHVVFvJDESqyn19r+oWuD
         Vqro6HnrKRDgP3YuAevahB8EDvyCPFZOK0Dtbm1Ni1MALHQfT0onFsEpnPJjE1xM74lc
         z/Nw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702573682; x=1703178482;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=lvWck/vkt//fHgws7/hzujTWbo5R8ofID7T5B0xhEfo=;
        b=oxfUBk4q7/5XByjpYfGsiBg8ePbyhAW/UESDlQLYPwgqOFIux77VHCRihmuUELHI0a
         AZRMdnqEDap/tlaH3shCAqqXuEAFYgYee8xzXI+c09phauGxuQi/jdUVsXqPPywUEcHr
         bXm8pzBJ9knJLAGwHLW2lAmEnNTj6LZnj19z6JTraJMIiTcwXSHyqEh7rKWZ3QTbtMOO
         sF80ZkeMwgb/nXAmHqVvKbz5BCheVA0ILJ1O60nO8rv1vAvKkeYl7MXK+1iszJCHL8mi
         4c0hQoma0FgDe7AS5RB7JtnOIrF1/PgrjQjvqKPRkxkRpNSvfL4HZOe20lJ1BmfBo4on
         euXQ==
X-Gm-Message-State: AOJu0YylMf0M6de8BWTEdnSNs7HBanDyWlIRxZ4Avzvgwk4oIwXcRNCx
	GDDiZNKhtt1xj4JF3x0y2c/9
X-Google-Smtp-Source: AGHT+IHt32bp+QH/eTcGqcb3B0qYtnVWhNosWfwKGBmDNveuhW5yeW2bCzLQLQ82uVDGdCTKRRXDlw==
X-Received: by 2002:a05:6512:ad5:b0:50d:1eb3:7bfd with SMTP id n21-20020a0565120ad500b0050d1eb37bfdmr5550368lfu.13.1702573681998;
        Thu, 14 Dec 2023 09:08:01 -0800 (PST)
Message-ID: <3d8bfead-e18c-4082-a75d-92aa379fa943@suse.com>
Date: Thu, 14 Dec 2023 18:08:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 36/39] xen/riscv: add minimal stuff to asm/mm.h to
 build full Xen
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <ec017ed24b1e5274d64d5458e4ab4475c92dece7.1700761381.git.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: <ec017ed24b1e5274d64d5458e4ab4475c92dece7.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -3,10 +3,271 @@
>  #ifndef _ASM_RISCV_MM_H
>  #define _ASM_RISCV_MM_H
>  
> +#include <public/xen.h>
> +#include <xen/pdx.h>
> +#include <xen/types.h>
> +
> +#include <asm/page.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))

I'm a little puzzled here: Just a few patches ago you introduced them into
asm/page.h, and (only) now you're removing them here.

> +#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))
> +#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))
> +
> +#define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
> +#define maddr_to_virt(pa) ((void *)((paddr_t)(pa) | XEN_VIRT_START))

Is this really XEN_VIRT_START? I.e. does your directmap start there,
right where the Xen image area also starts?

> +/* Convert between Xen-heap virtual addresses and machine frame numbers. */
> +#define __virt_to_mfn(va) (virt_to_maddr(va) >> PAGE_SHIFT)
> +#define __mfn_to_virt(mfn) (maddr_to_virt((paddr_t)(mfn) << PAGE_SHIFT))

Nit: Excess parentheses again.

> +/* Convert between Xen-heap virtual addresses and page-info structures. */
> +static inline struct page_info *virt_to_page(const void *v)
> +{
> +    BUG();
> +    return NULL;
> +}
> +
> +/*
> + * 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;

Something's wrong with indentation here.

> +    } u;
> +
> +    union {
> +        /* Page is in use, but not as a shadow. */
> +        struct {
> +            /* Owner of this page (zero 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
> +         */
> +        u32 tlbflush_timestamp;

Nit: uint32_t and ...

> +    };
> +    u64 pad;

... uint64_t please in new code. Assuming, for the latter, you really need
the field in the first place: I can't see what it's needed for.

> +};
> +
> +#define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
> +
> +/* PDX of the first page in the frame table. */
> +extern unsigned long frametable_base_pdx;
> +
> +/* Convert between machine frame numbers and page-info structures. */
> +#define mfn_to_page(mfn)                                            \
> +    (frame_table + (mfn_to_pdx(mfn) - frametable_base_pdx))
> +#define page_to_mfn(pg)                                             \
> +    pdx_to_mfn((unsigned long)((pg) - frame_table) + frametable_base_pdx)
> +
> +static inline void *page_to_virt(const struct page_info *pg)
> +{
> +    return mfn_to_virt(mfn_x(page_to_mfn(pg)));
> +}
> +
> +/*
> + * 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)
> +{
> +    return;

No need for this; the body can ve entirely empty, as we have it elsewhere.

> +}
> +
> +/* TODO */
> +static inline bool get_page_nr(struct page_info *page, const struct domain *domain,
> +                        unsigned long nr)
> +{
> +    BUG();
> +}
> +static inline void put_page_nr(struct page_info *page, unsigned long nr)
> +{
> +    BUG();
> +}

What are these two needed for?

> +static inline void put_page_and_type(struct page_info *page)
> +{
> +    put_page_type(page);
> +    put_page(page);
> +}
> +
> +/*
> + * RISCV 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)
> +
> +/* Xen always owns P2M on PPC */

PPC?

> +#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 (16 + 5)
> +
> +static inline unsigned long domain_get_maximum_gpfn(struct domain *d)
> +{
> +    BUG();
> +    return 0;
> +}
> +
> +static inline long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
> +{
> +    BUG();
> +    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)
> +#ifdef CONFIG_STATIC_MEMORY
> +/* Page is static memory */
> +#define _PGC_static    PG_shift(3)
> +#define PGC_static     PG_mask(1, 3)
> +#else
> +#define PGC_static     0
> +#endif

Please omit this until you really know whether you're going to support
static memory.

> +/* ... */

???

> +/* 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 page_state_is(pg, st) (((pg)->count_info&PGC_state) == PGC_state_##st)
> +
> +#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(&_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 max_page (0UL)

???

> +#define mfn_to_gfn(d, mfn) ((void)(d), _gfn(mfn_x(mfn)))
> +
> +#define domain_set_alloc_bitsize(d) ((void)0)
> +#define domain_clamp_alloc_bitsize(d, b) (b)
> +
> +#define PFN_ORDER(_pfn) ((_pfn)->v.free.order)

No leading underscore needed here, I suppose.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 17:42:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 17:42:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654720.1021973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDpid-0005dg-Sq; Thu, 14 Dec 2023 17:41:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654720.1021973; Thu, 14 Dec 2023 17: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 1rDpid-0005dZ-QA; Thu, 14 Dec 2023 17:41:55 +0000
Received: by outflank-mailman (input) for mailman id 654720;
 Thu, 14 Dec 2023 17:41: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 1rDpic-0005dP-CR; Thu, 14 Dec 2023 17:41: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 1rDpic-0000lz-5T; Thu, 14 Dec 2023 17:41: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 1rDpib-0006YB-Ow; Thu, 14 Dec 2023 17:41:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDpib-0005GV-OS; Thu, 14 Dec 2023 17:41: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=oEZEwaBcaWM3ywWrEF92COPNcjGaUm98BiWVmW2xTgU=; b=nRDP0bYaVnmTlHR8A0O850y9K3
	3iJhnhoe6Sxc9L7LXF8YEizDjVYvfMwkAETWyOD/pTMnsd3x6OOL3DDh21jqwrxn4EJ42g3wvrv8H
	MJRgY38myZW7xN+iPxR97+BJz7aTaF4M/Ag3yCG+avOzeH0YUPVJ1RsTiwAWuM8tCOa0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184129-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-5.4 test] 184129: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-5.4:test-amd64-amd64-libvirt-vhd:xen-boot:fail:heisenbug
    linux-5.4:test-armhf-armhf-xl-credit1:guest-start:fail:heisenbug
    linux-5.4:test-armhf-armhf-xl-arndale:guest-start/debian.repeat:fail:heisenbug
    linux-5.4:test-armhf-armhf-libvirt-raw:guest-start/debian.repeat:fail:heisenbug
    linux-5.4:test-armhf-armhf-xl-multivcpu:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=16e6e107a688046df37976fb6d7310e886c8115d
X-Osstest-Versions-That:
    linux=34244ed6219a9eab1ce2262dc3c2bf39a3789b8a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 14 Dec 2023 17:41:53 +0000

flight 184129 linux-5.4 real [real]
flight 184137 linux-5.4 real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/184129/
http://logs.test-lab.xenproject.org/osstest/logs/184137/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-libvirt-vhd  8 xen-boot            fail pass in 184137-retest
 test-armhf-armhf-xl-credit1  14 guest-start         fail pass in 184137-retest
 test-armhf-armhf-xl-arndale 18 guest-start/debian.repeat fail pass in 184137-retest
 test-armhf-armhf-libvirt-raw 17 guest-start/debian.repeat fail pass in 184137-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-multivcpu 18 guest-start/debian.repeat fail blocked in 184035
 test-armhf-armhf-xl-credit1 18 guest-start/debian.repeat fail in 184137 like 184035
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check fail in 184137 never pass
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 184137 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 184137 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184035
 test-armhf-armhf-xl-rtds     18 guest-start/debian.repeat    fail  like 184035
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184035
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184035
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184035
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184035
 test-armhf-armhf-xl-credit2  18 guest-start/debian.repeat    fail  like 184035
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184035
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184035
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184035
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184035
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184035
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184035
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184035
 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     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  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-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                16e6e107a688046df37976fb6d7310e886c8115d
baseline version:
 linux                34244ed6219a9eab1ce2262dc3c2bf39a3789b8a

Last test of basis   184035  2023-12-08 08:13:05 Z    6 days
Testing same since   184129  2023-12-13 17:42:57 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  <urbinek@gmail.com>
  Ahmed S. Darwish <a.darwish@linutronix.de>
  Alex Deucher <alexander.deucher@amd.com>
  Alex Pakhunov <alexey.pakhunov@spacex.com>
  Andrew Morton <akpm@linux-foundation.org>
  AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  Anson Huang <Anson.Huang@nxp.com>
  Armin Wolf <W_Armin@gmx.de>
  Arnaldo Carvalho de Melo <acme@redhat.com>
  Arnd Bergmann <arnd@arndb.de>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Bjorn Helgaas <bhelgaas@google.com>
  Bjorn Helgaas <bhelgaas@google.com>   # pci/msi.c
  Boerge Struempfel <boerge.struempfel@gmail.com>
  Borislav Petkov (AMD) <bp@alien8.de>
  Cameron Williams <cang1@live.co.uk>
  Catalin Marinas <catalin.marinas@arm.com>
  Claudio Imbrenda <imbrenda@linux.ibm.com>
  Daniel Borkmann <daniel@iogearbox.net>
  Daniel Mack <daniel@zonque.org>
  David Howells <dhowells@redhat.com>
  David S. Miller <davem@davemloft.net>
  Diana Craciun <diana.craciun@oss.nxp.com>
  Dinghao Liu <dinghao.liu@zju.edu.cn>
  Eric Dumazet <edumazet@google.com>
  Eugen Hristev <eugen.hristev@collabora.com>
  Florian Fainelli <florian.fainelli@broadcom.com>
  Florian Westphal <fw@strlen.de>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Gregory CLEMENT <gregory.clement@bootlin.com>
  Guenter Roeck <linux@roeck-us.net>
  Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
  Heiner Kallweit <hkallweit1@gmail.com>
  Ido Schimmel <idosch@nvidia.com>
  Jakub Kicinski <kuba@kernel.org>
  Jason Zhang <jason.zhang@rock-chips.com>
  Jens Axboe <axboe@kernel.dk>
  Jijie Shao <shaojijie@huawei.com>
  Jiri Olsa <jolsa@kernel.org>
  Joerg Roedel <jroedel@suse.de>
  John Fastabend <john.fastabend@gmail.com>
  Jon Hunter <jonathanh@nvidia.com>
  Jozsef Kadlecsik <kadlec@netfilter.org>
  Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
  Konstantin Aladyshev <aladyshev22@gmail.com>
  Kunwu Chan <chentao@kylinos.cn>
  Lee Jones <lee.jones@linaro.org>
  Leon Romanovsky <leon@kernel.org>
  Lina Iyer <lina.iyer@linaro.org>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Liu Tie <liutie4@huawei.com>
  Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
  Luca Ceresoli <luca.ceresoli@bootlin.com>
  Mark Brown <broonie@kernel.org>
  Martin Blumenstingl <martin.blumenstingl@googlemail.com>
  Martin K. Petersen <martin.petersen@oracle.com>
  Masahiro Yamada <masahiroy@kernel.org>
  Mukesh Ojha <quic_mojha@quicinc.com>
  Namhyung Kim <namhyung@kernel.org>
  Neal Cardwell <ncardwell@google.com>
  Pablo Neira Ayuso <pablo@netfilter.org>
  Paolo Abeni <pabeni@redhat.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Pavel Begunkov <asml.silence@gmail.com>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Peter Zijlstra <peterz@infradead.org>
  Petr Pavlu <petr.pavlu@suse.com>
  Phil Sutter <phil@nwl.cc>
  Philipp Zabel <p.zabel@pengutronix.de>
  Randy Dunlap <rdunlap@infradead.org>
  RD Babiera <rdbabiera@google.com>
  Rob Herring <robh@kernel.org>
  Roland Hieber <rhi@pengutronix.de>
  Ronald Wahl <ronald.wahl@raritan.com>
  Ryusuke Konishi <konishi.ryusuke@gmail.com>
  Sasha Levin <sashal@kernel.org>
  Sebastian Andrzej Siewior <bigeasy@linutronix.de>
  Selvin Xavier <selvin.xavier@broadcom.com>
  Shawn Guo <shawnguo@kernel.org>
  Shigeru Yoshida <syoshida@redhat.com>
  Shuah Khan <skhan@linuxfoundation.org>
  Simon Horman <horms@kernel.org> # build-tested
  Steve French <stfrench@microsoft.com>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Sudip Mukherjee <sudipm.mukherjee@gmail.com>
  Takashi Iwai <tiwai@suse.de>
  Thomas Gleixner <tglx@linutronix.de>
  Thomas Reichinger <thomas.reichinger@sohard.de>
  Tong Zhang <ztong0001@gmail.com>
  Ulf Hansson <ulf.hansson@linaro.org>
  Vincent Wong <vincent.wong2@spacex.com>
  Wenchao Chen <wenchao.chen@unisoc.com>
  Yonglong Liu <liuyonglong@huawei.com>
  YuanShang <YuanShang.Mao@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                fail    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 fail    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   34244ed6219a..16e6e107a688  16e6e107a688046df37976fb6d7310e886c8115d -> tested/linux-5.4


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 18:32:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 18:32:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654725.1021983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDqVQ-0006KE-7X; Thu, 14 Dec 2023 18:32:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654725.1021983; Thu, 14 Dec 2023 18:32:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDqVQ-0006K7-3W; Thu, 14 Dec 2023 18:32:20 +0000
Received: by outflank-mailman (input) for mailman id 654725;
 Thu, 14 Dec 2023 18:32: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 1rDqVO-0006Jx-Nc; Thu, 14 Dec 2023 18:32: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 1rDqVO-0001hT-Ah; Thu, 14 Dec 2023 18:32: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 1rDqVO-0007xd-2T; Thu, 14 Dec 2023 18:32:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDqVO-0004rK-1w; Thu, 14 Dec 2023 18:32:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=QyrLVoyFKLUm5oVIiLz9sMXcfl4Y4FSBOj+GEmyAKng=; b=P0jU26XOJF4ER45lQ2fDpAJSeQ
	D+dfDAeMVj8gRRg6BSVTmiU8Vd0cKNObjJPPG5HuJXIEbN+nXcLNlerTdgOnvYgJKpwI6H0AsSfIl
	veDkI70kjvMta+/ghZb/I7KHBVm37FjZo0y839ZBAaGJN7npr17wBcrCIVO7bIwuzLBM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184138-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184138: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=7f5e75895bd6bbfbde191fb8458d324033f76c57
X-Osstest-Versions-That:
    ovmf=59a952d9ab007fda9f7a66418782c8257d3c917f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 14 Dec 2023 18:32:18 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 7f5e75895bd6bbfbde191fb8458d324033f76c57
baseline version:
 ovmf                 59a952d9ab007fda9f7a66418782c8257d3c917f

Last test of basis   184136  2023-12-14 14:42:44 Z    0 days
Testing same since   184138  2023-12-14 16:44:15 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    
 test-amd64-i386-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
   59a952d9ab..7f5e75895b  7f5e75895bd6bbfbde191fb8458d324033f76c57 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 19:10:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 19:10:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654730.1021993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDr6I-0003wx-38; Thu, 14 Dec 2023 19:10:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654730.1021993; Thu, 14 Dec 2023 19: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 1rDr6I-0003wq-04; Thu, 14 Dec 2023 19:10:26 +0000
Received: by outflank-mailman (input) for mailman id 654730;
 Thu, 14 Dec 2023 19:10:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDr6G-0003wk-B8
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 19:10:24 +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 6ceca05e-9ab4-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 20:10:22 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 7B9B5CE25AA;
 Thu, 14 Dec 2023 19:10:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 12DA6C433C7;
 Thu, 14 Dec 2023 19:10: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: 6ceca05e-9ab4-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702581018;
	bh=e3tR118Er5z+48pjGBLo7m1zIVAIVDZtxIyvy0CYPlo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Y+RBlqfLfjjbvdC15B9FGi1Q1KB8TJnxBoelmEohxzMhRY6dIm3xcbF2w4r+SxFRn
	 DxTMJpPB8BkkKGLb0S9jY6exsqfRF7rNChmdxPpzo4dvuwQuSargfhZuoyn8Uv0OZL
	 H0qbF5ba8xGeXW0lO41UkrJu6ZFsxyMSeAvF/+DMAM7xB3mTkXwb315BcINOga5AOQ
	 ksvKPGXqpq3ZIBu5PU+xKVOIgzG9NuUwSC+Weuj8JfCScH1lRaRsNGgjNTkECP5O7t
	 wSMD5eWs6ErEW8ww+S/rSnJnTmE2x8ZCNCvy4LXaZkW/Ddbm5IkdfaRwRsn2LQxkfE
	 +RebCydlYUwpA==
Date: Thu, 14 Dec 2023 11:10:16 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Roger Pau Monne <roger.pau@citrix.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 4/4] automation: add x86-64 livepatching test
In-Reply-To: <20231214101719.18770-5-roger.pau@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2312141110100.3175268@ubuntu-linux-20-04-desktop>
References: <20231214101719.18770-1-roger.pau@citrix.com> <20231214101719.18770-5-roger.pau@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1806696802-1702581018=:3175268"

  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-1806696802-1702581018=:3175268
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 13 Dec 2023, Roger Pau Monne wrote:
> Introduce a new gitlab tests for livepatching, using livepatch-build-tools,
> which better reflects how downstreams build live patches rather than the
> in-tree tests.
> 
> The tests applies the dummy in-tree patch example, checks that the patch is
> applied correctly and then reverts and unloads it.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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


> ---
> Changes since v2:
>  - Split livepatch build into a separate script.
> ---
>  automation/gitlab-ci/build.yaml               |  9 +++
>  automation/gitlab-ci/test.yaml                |  8 +++
>  automation/scripts/build-livepatch            | 27 ++++++++
>  .../scripts/qemu-alpine-x86_64-livepatch.sh   | 68 +++++++++++++++++++
>  4 files changed, 112 insertions(+)
>  create mode 100755 automation/scripts/build-livepatch
>  create mode 100755 automation/scripts/qemu-alpine-x86_64-livepatch.sh
> 
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index 32af30ccedc9..d770bffb845e 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -358,6 +358,15 @@ alpine-3.18-gcc-debug:
>    variables:
>      CONTAINER: alpine:3.18
>  
> +alpine-3.18-gcc-livepatch:
> +  extends: .gcc-x86-64-build
> +  script:
> +    - ./automation/scripts/build-livepatch 2>&1 | tee build.log
> +  variables:
> +    CONTAINER: alpine:3.18
> +    EXTRA_XEN_CONFIG: |
> +      CONFIG_LIVEPATCH=y
> +
>  debian-stretch-gcc-debug:
>    extends: .gcc-x86-64-build-debug
>    variables:
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 6aabdb9d156f..58a90be5ed0e 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -459,3 +459,11 @@ qemu-smoke-ppc64le-powernv9-gcc:
>    needs:
>      - qemu-system-ppc64-8.1.0-ppc64-export
>      - debian-bullseye-gcc-ppc64le-debug
> +
> +qemu-alpine-x86_64-gcc-livepatch:
> +  extends: .qemu-x86-64
> +  script:
> +    - ./automation/scripts/qemu-alpine-x86_64-livepatch.sh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-livepatch
> diff --git a/automation/scripts/build-livepatch b/automation/scripts/build-livepatch
> new file mode 100755
> index 000000000000..ac86b17ae5e4
> --- /dev/null
> +++ b/automation/scripts/build-livepatch
> @@ -0,0 +1,27 @@
> +#!/bin/bash -ex
> +
> +# Do a regular build first
> +./automation/scripts/build
> +
> +# Build a test livepatch using livepatch-build-tools.
> +
> +if [[ "$XEN_TARGET_ARCH" != "x86_64" ]]; then
> +    exit 1
> +fi
> +
> +BASE=xen/arch/x86/test/smoc-lp.c
> +ALT=xen/arch/x86/test/smoc-lp-alt.c
> +
> +[[ -f $BASE && -f $ALT ]]
> +
> +# git diff --no-index returns 0 if no differences, otherwise 1.
> +git diff --no-index --output=test.patch $BASE $ALT && exit 1
> +
> +BUILDID=$(readelf -Wn xen/xen-syms | sed -n -e 's/^.*Build ID: //p')
> +
> +git clone https://xenbits.xen.org/git-http/livepatch-build-tools.git
> +cd livepatch-build-tools
> +make
> +./livepatch-build -s ../ -p ../test.patch -o out -c ../xen/.config \
> +    --depends $BUILDID --xen-depends $BUILDID
> +cp out/test.livepatch ../binaries/test.livepatch
> diff --git a/automation/scripts/qemu-alpine-x86_64-livepatch.sh b/automation/scripts/qemu-alpine-x86_64-livepatch.sh
> new file mode 100755
> index 000000000000..da478cac4376
> --- /dev/null
> +++ b/automation/scripts/qemu-alpine-x86_64-livepatch.sh
> @@ -0,0 +1,68 @@
> +#!/bin/bash
> +
> +set -ex
> +
> +cd binaries
> +# initrd.tar.gz is Dom0 rootfs
> +mkdir -p rootfs
> +cd rootfs
> +tar xvzf ../initrd.tar.gz
> +mkdir proc
> +mkdir run
> +mkdir srv
> +mkdir sys
> +rm var/run
> +cp -ar ../dist/install/* .
> +cp ../test.livepatch ./root/
> +cat << "EOF" >> etc/local.d/xen-lp.start
> +#!/bin/bash
> +
> +set -ex
> +
> +trap poweroff EXIT
> +
> +export LD_LIBRARY_PATH=/usr/local/lib
> +
> +xen-livepatch test && exit 1 || true
> +
> +xen-livepatch load /root/test.livepatch
> +
> +# Cannot fail now
> +xen-livepatch test
> +
> +xen-livepatch revert test
> +xen-livepatch unload test
> +
> +xen-livepatch test && exit 1 || true
> +
> +echo "SUCCESS"
> +EOF
> +chmod +x etc/local.d/xen-lp.start
> +echo "rc_verbose=yes" >> etc/rc.conf
> +# rebuild Dom0 rootfs
> +find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
> +cd ../..
> +
> +cat >> binaries/pxelinux.0 << EOF
> +#!ipxe
> +
> +kernel xen console=com1 console_timestamps=boot
> +module bzImage console=hvc0
> +module xen-rootfs.cpio.gz
> +boot
> +EOF
> +
> +# Run the test
> +rm -f smoke.serial
> +timeout -k 1 360 \
> +qemu-system-x86_64 \
> +    -cpu qemu64,+svm \
> +    -m 2G -smp 2 \
> +    -monitor none -serial stdio \
> +    -nographic \
> +    -device virtio-net-pci,netdev=n0 \
> +    -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 |& \
> +        tee smoke.serial | sed 's/\r//'
> +
> +grep -q "SUCCESS" smoke.serial
> +exit 0
> -- 
> 2.43.0
> 
--8323329-1806696802-1702581018=:3175268--


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 19:11:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 19:11:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654733.1022004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDr6z-0004VH-Gh; Thu, 14 Dec 2023 19:11:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654733.1022004; Thu, 14 Dec 2023 19: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 1rDr6z-0004VA-CJ; Thu, 14 Dec 2023 19:11:09 +0000
Received: by outflank-mailman (input) for mailman id 654733;
 Thu, 14 Dec 2023 19:11:07 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rDr6x-0004V4-HM
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 19:11:07 +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 1rDr6q-0002KT-8Z; Thu, 14 Dec 2023 19:11:00 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rDr6q-00018H-0y; Thu, 14 Dec 2023 19:11: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=KYUUN9X4Ajwg43cwKND/8MlZYP48mZcV8oNN3IMF/Ck=; b=30ZvwIUcRtAKmIv/+HLedELN5Y
	MLT9Pg1lhUkWlE9/ofYYsAwX/ZWI/oGSSWGTtObUweSx2y6cMu0qK/SriXbAeFaI0MIClOD4ezrdO
	BGC5oh6YykK/m9/15BJznZtHMhFDml5Llfi5XMhJErGfo14oVHMnhnilNqitDIvoo48I=;
Message-ID: <0166dd5b-c12e-40d8-88a6-1f3c97bcf2e0@xen.org>
Date: Thu, 14 Dec 2023 19:10:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
To: George Dunlap <george.dunlap@cloud.com>, Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
 <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
 <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org>
 <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com>
 <CA+zSX=YHW3kGFroNDzwQg=EhEe3F_fw3gCd_9W+P2UxC7+g+0A@mail.gmail.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <CA+zSX=YHW3kGFroNDzwQg=EhEe3F_fw3gCd_9W+P2UxC7+g+0A@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi  George,

On 14/12/2023 14:15, George Dunlap wrote:
> But I do think that it's fair to ask Julien to think about a suitable
> wording, since the comment is in a sense to remind him (or other ARM
> maintainers) what's needed, and since the eventual solution will be
> something to do with the ARM code and architecture anyway.

The comment is for anyone using !NUMA (i.e. all architectures but x86) 
:). What about the following (this is Nicola's patch with the comments 
reworked):

diff --git a/xen/arch/arm/include/asm/numa.h 
b/xen/arch/arm/include/asm/numa.h
index e2bee2bd8223..4bf7c304ea3c 100644
--- a/xen/arch/arm/include/asm/numa.h
+++ b/xen/arch/arm/include/asm/numa.h
@@ -2,8 +2,9 @@
  #define __ARCH_ARM_NUMA_H

  #include <xen/mm.h>
+#include <xen/types.h>

-typedef u8 nodeid_t;
+typedef uint8_t nodeid_t;

  #ifndef CONFIG_NUMA

@@ -11,12 +12,6 @@ typedef u8 nodeid_t;
  #define cpu_to_node(cpu) 0
  #define node_to_cpumask(node)   (cpu_online_map)

-/*
- * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
- * is required because the dummy helpers are using it.
- */
-extern mfn_t first_valid_mfn;
-
  /* XXX: implement NUMA support */
  #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
  #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
diff --git a/xen/arch/ppc/include/asm/numa.h 
b/xen/arch/ppc/include/asm/numa.h
index 7fdf66c3da74..888de2dbd1eb 100644
--- a/xen/arch/ppc/include/asm/numa.h
+++ b/xen/arch/ppc/include/asm/numa.h
@@ -1,8 +1,8 @@
  #ifndef __ASM_PPC_NUMA_H__
  #define __ASM_PPC_NUMA_H__

-#include <xen/types.h>
  #include <xen/mm.h>
+#include <xen/types.h>

  typedef uint8_t nodeid_t;

@@ -10,12 +10,6 @@ typedef uint8_t nodeid_t;
  #define cpu_to_node(cpu) 0
  #define node_to_cpumask(node)   (cpu_online_map)

-/*
- * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
- * is required because the dummy helpers are using it.
- */
-extern mfn_t first_valid_mfn;
-
  /* XXX: implement NUMA support */
  #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
  #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 9b5df74fddab..d874525916ea 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -255,8 +255,10 @@ static PAGE_LIST_HEAD(page_broken_list);
   */

  /*
- * first_valid_mfn is exported because it is use in ARM specific NUMA
- * helpers. See comment in arch/arm/include/asm/numa.h.
+ * first_valid_mfn is exported because it is used when !CONFIG_NUMA.
+ *
+ * TODO: Consider if we can conditionally export first_valid_mfn based
+ * on whether NUMA is selected.
   */
  mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;

diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index 3d9b2d05a5c8..a13a9a46ced7 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -118,6 +118,8 @@ int destroy_xen_mappings(unsigned long s, unsigned 
long e);
  /* Retrieve the MFN mapped by VA in Xen virtual address space. */
  mfn_t xen_map_to_mfn(unsigned long va);

+extern mfn_t first_valid_mfn;
+
  /*
   * Create only non-leaf page table entries for the
   * page range in Xen virtual address space.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 20:59:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 20:59:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654737.1022013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDsna-0001zI-Rf; Thu, 14 Dec 2023 20:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654737.1022013; Thu, 14 Dec 2023 20:59:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDsna-0001zB-Oi; Thu, 14 Dec 2023 20:59:14 +0000
Received: by outflank-mailman (input) for mailman id 654737;
 Thu, 14 Dec 2023 20:59: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 1rDsna-0001z1-B3; Thu, 14 Dec 2023 20:59: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 1rDsna-0004IY-70; Thu, 14 Dec 2023 20:59: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 1rDsnZ-0003A6-Qx; Thu, 14 Dec 2023 20:59:13 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDsnZ-00089u-QQ; Thu, 14 Dec 2023 20:59: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=ZIgIIL11E/cqotRuK5JsdWeouzLnU84MkGPtZ7THVF8=; b=StwbwDcb42mfzyfGPumTYyyXYw
	7KVLUG4eP46o0BUCSIc6LXhumEmXwMavCNAZK70YPvlqfCjgZiI19EKT29ccifhK58SgtEfsxy/GS
	yhSF2gzwa8BTzGla5Hbnc+lvl1xMbuFIw7p1BGTonrBrDYU/KZEewBZZdJEMRTUMHock=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184131-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184131: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm:debian-hvm-install:fail:regression
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=75571e162b78b73401307ce40f732021ae57d49a
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 14 Dec 2023 20:59:13 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 12 debian-hvm-install fail REGR. vs. 184031

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-amd64-i386-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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          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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  75571e162b78b73401307ce40f732021ae57d49a
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    6 days
Failing since        184036  2023-12-08 10:40:52 Z    6 days   11 attempts
Testing same since   184131  2023-12-13 23:14:15 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Arnd Bergmann <arnd@arndb.de>
  Federico Serafini <federico.serafini@bugseng.com>
  George Dunlap <george.dunlap@cloud.com>
  Henry Wang <Henry.Wang@arm.com>
  Jan Beulich <jbeulich@suse.com>
  Jens Wiklander <jens.wiklander@linaro.org>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
  Michal Orzel <michal.orzel@amd.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>
  Paul Durrant <paul@xen.org>
  Simone Ballarin <simone.ballarin@bugseng.com>
  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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        fail    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         fail    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 431 lines long.)


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:27:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:27:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654742.1022022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtEh-0005xr-01; Thu, 14 Dec 2023 21:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654742.1022022; Thu, 14 Dec 2023 21:27:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtEg-0005xk-Ti; Thu, 14 Dec 2023 21:27:14 +0000
Received: by outflank-mailman (input) for mailman id 654742;
 Thu, 14 Dec 2023 21:27: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtEf-0005xd-0H
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:27:13 +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 88ffbc9d-9ac7-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 22:27:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 1106ECE264D;
 Thu, 14 Dec 2023 21:27:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC7D0C433C7;
 Thu, 14 Dec 2023 21:27: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: 88ffbc9d-9ac7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702589225;
	bh=A3gX7ZY9swtd6QPnA/axRoagiZKHBXh/m4z61DBUMOw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=mhcqqayUGkbgEunbzXR4SVBwJ/H4qkEF8QJn/oLS5a/zE9d+TS7l9LQkiJEm3VQS5
	 m8sj94zVk26zXi441ld1UEiMTQeax6tPS5fp239l5jGf5yau99DVvbfGPYpXh46dhW
	 mJCIfvs90pKn9qI+SxhVzrUTfJB9EkFSCCcMeuFAZN4Pqz+IiXGkVoilRk0C3H4/Gb
	 pDnC7NWL5QuZCXy471YK5CRabN7CA91Kv0Gt3UtijkYT/QqcFmUsX8tXeDJuThdt79
	 zWvlk9fUONymQ/Rrl2yFmsf10eTKWAOGu24gbWJoCydV/nqEvGMHrDwnKVF4YL4P65
	 sjqaAIbOB8qmw==
Date: Thu, 14 Dec 2023 13:27:02 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: George Dunlap <george.dunlap@cloud.com>, Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
In-Reply-To: <0166dd5b-c12e-40d8-88a6-1f3c97bcf2e0@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312141326480.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com> <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com> <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com> <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com> <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org> <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com> <CA+zSX=YHW3kGFroNDzwQg=EhEe3F_fw3gCd_9W+P2UxC7+g+0A@mail.gmail.com>
 <0166dd5b-c12e-40d8-88a6-1f3c97bcf2e0@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 14 Dec 2023, Julien Grall wrote:
> Hi  George,
> 
> On 14/12/2023 14:15, George Dunlap wrote:
> > But I do think that it's fair to ask Julien to think about a suitable
> > wording, since the comment is in a sense to remind him (or other ARM
> > maintainers) what's needed, and since the eventual solution will be
> > something to do with the ARM code and architecture anyway.
> 
> The comment is for anyone using !NUMA (i.e. all architectures but x86) :).
> What about the following (this is Nicola's patch with the comments reworked):

The below looks good to me.



> diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/numa.h
> index e2bee2bd8223..4bf7c304ea3c 100644
> --- a/xen/arch/arm/include/asm/numa.h
> +++ b/xen/arch/arm/include/asm/numa.h
> @@ -2,8 +2,9 @@
>  #define __ARCH_ARM_NUMA_H
> 
>  #include <xen/mm.h>
> +#include <xen/types.h>
> 
> -typedef u8 nodeid_t;
> +typedef uint8_t nodeid_t;
> 
>  #ifndef CONFIG_NUMA
> 
> @@ -11,12 +12,6 @@ typedef u8 nodeid_t;
>  #define cpu_to_node(cpu) 0
>  #define node_to_cpumask(node)   (cpu_online_map)
> 
> -/*
> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
> - * is required because the dummy helpers are using it.
> - */
> -extern mfn_t first_valid_mfn;
> -
>  /* XXX: implement NUMA support */
>  #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
>  #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> diff --git a/xen/arch/ppc/include/asm/numa.h b/xen/arch/ppc/include/asm/numa.h
> index 7fdf66c3da74..888de2dbd1eb 100644
> --- a/xen/arch/ppc/include/asm/numa.h
> +++ b/xen/arch/ppc/include/asm/numa.h
> @@ -1,8 +1,8 @@
>  #ifndef __ASM_PPC_NUMA_H__
>  #define __ASM_PPC_NUMA_H__
> 
> -#include <xen/types.h>
>  #include <xen/mm.h>
> +#include <xen/types.h>
> 
>  typedef uint8_t nodeid_t;
> 
> @@ -10,12 +10,6 @@ typedef uint8_t nodeid_t;
>  #define cpu_to_node(cpu) 0
>  #define node_to_cpumask(node)   (cpu_online_map)
> 
> -/*
> - * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
> - * is required because the dummy helpers are using it.
> - */
> -extern mfn_t first_valid_mfn;
> -
>  /* XXX: implement NUMA support */
>  #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
>  #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 9b5df74fddab..d874525916ea 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -255,8 +255,10 @@ static PAGE_LIST_HEAD(page_broken_list);
>   */
> 
>  /*
> - * first_valid_mfn is exported because it is use in ARM specific NUMA
> - * helpers. See comment in arch/arm/include/asm/numa.h.
> + * first_valid_mfn is exported because it is used when !CONFIG_NUMA.
> + *
> + * TODO: Consider if we can conditionally export first_valid_mfn based
> + * on whether NUMA is selected.
>   */
>  mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
> 
> diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
> index 3d9b2d05a5c8..a13a9a46ced7 100644
> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -118,6 +118,8 @@ int destroy_xen_mappings(unsigned long s, unsigned long
> e);
>  /* Retrieve the MFN mapped by VA in Xen virtual address space. */
>  mfn_t xen_map_to_mfn(unsigned long va);
> 
> +extern mfn_t first_valid_mfn;
> +
>  /*
>   * Create only non-leaf page table entries for the
>   * page range in Xen virtual address space.
> 
> Cheers,
> 
> -- 
> Julien Grall
> 


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:29:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:29:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654746.1022033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtH6-0006qd-Ic; Thu, 14 Dec 2023 21:29:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654746.1022033; Thu, 14 Dec 2023 21: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 1rDtH6-0006qW-Fh; Thu, 14 Dec 2023 21:29:44 +0000
Received: by outflank-mailman (input) for mailman id 654746;
 Thu, 14 Dec 2023 21:29: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtH5-0006qO-NR
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:29:43 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4559638-9ac7-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 22:29:41 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 3964DB8076B;
 Thu, 14 Dec 2023 21:29:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A9A0C433C7;
 Thu, 14 Dec 2023 21:29: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: e4559638-9ac7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702589380;
	bh=G7OvJbnTg05jJWpHaAvpURoYXvWOrX3FazP3c15oqRk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Y1aEUh9ALRBqZy96EZ9PnuX3cgf2cjuZg8H88Wk2S7prnpVQ0rMPw/feKkyvmD+02
	 8fOpJQM80VF43W+n6l0r7YtK/Et0JwF+yWYpwD2FW/BF7cel62+LI5XA73c7ZHPFDn
	 Wwy5R+l138gn9EVlx8zh2QjzIYb++aH82zObZWJzs7PSNaG5YTH1yAUAOt51N8IFHC
	 Qb9+6QJeIkquttzNlanXrpEY+LdYAzLZExZ6Ileb+n0k8YbryV5/d3nxUQt1pP8S/1
	 KK4xNzQ9iR4Wa5MmTIEBiywOZSY5pZaGsb73/BWoaICQhl6bTXnTk1fsGTTjXVvlWp
	 KMjV6PDWtzvjQ==
Date: Thu, 14 Dec 2023 13:29:38 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    Wei Liu <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 1/5] xen/hvm: use NULL as a null pointer constant
In-Reply-To: <7c52d4b78785a56aee1ffc3661503bdd145595d9.1702553835.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141329320.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com> <7c52d4b78785a56aee1ffc3661503bdd145595d9.1702553835.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 Thu, 14 Dec 2023, Nicola Vetrini wrote:
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:30:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:30:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654749.1022042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtHx-0008EI-Sn; Thu, 14 Dec 2023 21:30:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654749.1022042; Thu, 14 Dec 2023 21:30:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtHx-0008E9-QD; Thu, 14 Dec 2023 21:30:37 +0000
Received: by outflank-mailman (input) for mailman id 654749;
 Thu, 14 Dec 2023 21:30: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtHw-0008Dz-74
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:30:36 +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 031b8fe6-9ac8-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 22:30:35 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 16E49CE248D;
 Thu, 14 Dec 2023 21:30:32 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6BBD3C433C8;
 Thu, 14 Dec 2023 21:30:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 031b8fe6-9ac8-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702589431;
	bh=z7DK3fJ7UoTx4ZzCexTuVjJMYigMkIHSQlbcZ4S1dM0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=N9vAdeApV16K74Z8eVW/eK/HouEqmcJx6rveVPWkEdbHY59ucL7/Y2Yc+5yWtt65B
	 EObKzKkRTqreuy7xvumMa3I+FYy/qC4FI0wFhPEQNrE//efE6ylWnNBH3igF2u3ejZ
	 S+dXtY/50tgT8WIOPoq6sHhHVYL1a9XJ/4qOWHUALjfDbq/xoRXpUhiaogEcASS93V
	 hkKDiVhwrFSQCgDZwXs2V84FiKahRQI5yKgmfZzPARMda4u1zyb9oNn/tDabxJS4OV
	 jgjKoIOZPy/oQDF5s96haBmmjCtcsEek3/531BX+EBNSM4tKMM3VQ98aTyawv0PF4i
	 L/8TA0jwQjD4g==
Date: Thu, 14 Dec 2023 13:30:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 2/5] x86/ioapic: use NULL as a null pointer
 constant
In-Reply-To: <01968117d9fc3eee6d6eca0d340d9d2edd4d6dd4.1702553835.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141330230.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com> <01968117d9fc3eee6d6eca0d340d9d2edd4d6dd4.1702553835.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 Thu, 14 Dec 2023, Nicola Vetrini wrote:
> Resolves violations of MISRA C Rule 11.9.
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:32:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:32:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654751.1022053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtJP-0000Og-7N; Thu, 14 Dec 2023 21:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654751.1022053; Thu, 14 Dec 2023 21: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 1rDtJP-0000OZ-45; Thu, 14 Dec 2023 21:32:07 +0000
Received: by outflank-mailman (input) for mailman id 654751;
 Thu, 14 Dec 2023 21:32:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtJO-0000OT-6U
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:32: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 38d831b2-9ac8-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 22:32:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 8DC7ACE2568;
 Thu, 14 Dec 2023 21:32:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41666C433C8;
 Thu, 14 Dec 2023 21:32: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: 38d831b2-9ac8-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702589521;
	bh=0zQK4DOnY6Pob5LVEP3ox98r5A7wfFmZy2UWkaki5Wk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JDETZf12ailXNDGILTSBfI2YycglFQf9qHCezpVxVUDpfxHtfbo/yOylA7lNPOdkB
	 TVqyrVlPwy4llLXK417veb7plf5TUBR4P1GpqzYqBg1e7uxayFB2Kws0M/9nmZ9gb8
	 Z66By4qOAdNhD+aznBFPR8ZquvSzmSYLgHpQ6Kj0HOdCnkSAKmL33TBYiuujxwthnD
	 VrfQlRDX+R8UdyZKy/pwfS9HkHgcKuhn7g+WH6Del19HESJoxgN5KuZSB0tcuLZt3z
	 A34oMgRPh2ckypDqFraUoLgjoDdO2N+5e8fmdwkPGaBPuc88V+9LeVqPrG1UrCpX/Z
	 rLg+ynAt4/dRg==
Date: Thu, 14 Dec 2023 13:31:59 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [XEN PATCH 3/5] xen/acpi: Use NULL as a null pointer constant
In-Reply-To: <bb10a86a08eb36e9f9c6bda899cdc850afada403.1702553835.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141331540.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com> <bb10a86a08eb36e9f9c6bda899cdc850afada403.1702553835.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 Thu, 14 Dec 2023, Nicola Vetrini wrote:
> Resolves a violation of MISRA C Rule 11.9.
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:33:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:33:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654753.1022062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtKG-0000vr-FD; Thu, 14 Dec 2023 21:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654753.1022062; Thu, 14 Dec 2023 21:33:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtKG-0000vk-Cc; Thu, 14 Dec 2023 21:33:00 +0000
Received: by outflank-mailman (input) for mailman id 654753;
 Thu, 14 Dec 2023 21:32:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtKF-0000mX-75
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:32:59 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5941338d-9ac8-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 22:32:57 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 535A2B8247A;
 Thu, 14 Dec 2023 21:32:57 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC726C433C8;
 Thu, 14 Dec 2023 21:32: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: 5941338d-9ac8-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702589576;
	bh=RK5ArRgMYzm6Ya6ricxDIkR3W7N7vbW749156mq+Qxc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Eb/IzHmC+QQHAM66UTdKNJKa/U+V5ascqPhfTSLz68M2265GO6cG/5JcNrhDdPkMO
	 3qEra+0FGRzeLWHN9OtMNNzg3wFt6ME4x3vTVlZtbkcZi8JJWviFL9s6N5fOAc/wWp
	 sde/7G1iE3NXxp/whx2vMksXssewsfK+Lmv60Pnb8dmGPWhkAfoUoJdEzSjVpl7AEd
	 MA6hz7i9lCHm+1cCEZ2yOYfivaalcX9LL/WpfVeQwj9pUxVD1kwjAApk+ezxQciqw8
	 5thflhY2khDOw83jbxTIARSXRXnS37DfRwdft9a6xks0xMkXgCdM8ocFwN9oWD2Kg3
	 42lJR+YAhNLlw==
Date: Thu, 14 Dec 2023 13:32:54 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 4/5] x86/hvm: dom0: use helper to get sizeof struct
 field
In-Reply-To: <17b01f14b89a5dba6935bbd8019ddf431d595890.1702553835.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141332470.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com> <17b01f14b89a5dba6935bbd8019ddf431d595890.1702553835.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 Thu, 14 Dec 2023, Nicola Vetrini wrote:
> Use of the proper helper macro also resolves a violation
> of MISRA C Rule 11.9.
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:33:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:33:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654756.1022072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtL4-0001TV-Oh; Thu, 14 Dec 2023 21:33:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654756.1022072; Thu, 14 Dec 2023 21:33: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 1rDtL4-0001TO-Lc; Thu, 14 Dec 2023 21:33:50 +0000
Received: by outflank-mailman (input) for mailman id 654756;
 Thu, 14 Dec 2023 21:33:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtL4-0001TB-0V
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:33:50 +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 76c8614f-9ac8-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 22:33:49 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 6E8EACE2646;
 Thu, 14 Dec 2023 21:33:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7CC43C433C8;
 Thu, 14 Dec 2023 21:33: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: 76c8614f-9ac8-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702589622;
	bh=G7OvJbnTg05jJWpHaAvpURoYXvWOrX3FazP3c15oqRk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=vMLO5OF8ZwH4yyeUff2IK6qsFWi0dN0xdkfMrAAWPldDfFCwEw9Xw4NdMtu9a1Tv9
	 aZSqArbsDm1HRM8OgS6jrSWu5/uJuuezDw5XfrW8O2hB/W5hrmBJbitGY2vE9rvecW
	 4hb08Dgv9E/hKYhlRj/1F2GRK9f734xC7gEePuboUa/Yp6kL1HH1Qp1DAXM/vSlxsF
	 vIsHhonYE6q+x40w86JcKqp1Ax2n5hhC7eSQRaplLye+BTTxhNHlSGMVFuaFVv2Hip
	 IxyTSXjJ91Z9kbneBHOBdLa5jC47DpNzeLTkXo2tuw1DM5jpai6YSil97Tvra8+P6O
	 2WVFbI7sjEa8g==
Date: Thu, 14 Dec 2023 13:33:40 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH 5/5] xen/wait: address violations of MISRA C Rule
 11.9
In-Reply-To: <a4e13ba24ab54895454d8df1c956865f7cf7f0b5.1702553835.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141333350.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com> <a4e13ba24ab54895454d8df1c956865f7cf7f0b5.1702553835.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 Thu, 14 Dec 2023, Nicola Vetrini wrote:
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:38:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:38:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654762.1022082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtPF-00027S-9z; Thu, 14 Dec 2023 21:38:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654762.1022082; Thu, 14 Dec 2023 21:38:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtPF-00027L-79; Thu, 14 Dec 2023 21:38:09 +0000
Received: by outflank-mailman (input) for mailman id 654762;
 Thu, 14 Dec 2023 21: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtPE-00027F-HL
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:38:08 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11489460-9ac9-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 22:38:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 10730B81C85;
 Thu, 14 Dec 2023 21:38:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89DBCC433C9;
 Thu, 14 Dec 2023 21:38: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: 11489460-9ac9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702589885;
	bh=SwARVrNpFPEk+os6hpP3BfrLy4e5W0jSxktQWs+PggY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WHKYG8Gek8dNaeDkImNoq0qW/dACpdiHa19b4rGT1rZ4N6H5JJwNaphUtdh8HlzC7
	 YCC4ehMJ4F9XAUtyPEDxvR8up7Jr5vUD8zwWbEHqBbVEw3nAXgrH6RgxAZ3lTefABX
	 XUTa9a6mMbxLIYL2YB5cNB9p/bJTTl01Hc+Emo/YqM4LWuUaXKxuwaJwbwPqZ+YIKo
	 MKqZ5mYNI/OnFIPxvUL8oxMOJKT7onCyW+RT+QS0wFrjGhn7RxzIVBy1vIe0o43Gkl
	 FFqS3yxQG19ac/9JeuWpffXp+u8yb3/cw+3fuPu44/Y48JL4Sox0dJQzpUoN0rGOSu
	 DzocZG4cHXWiA==
Date: Thu, 14 Dec 2023 13:38:03 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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 1/9] xen/arm64: address violations of MISRA C:2012 Rule
 11.8
In-Reply-To: <b29e28544eb7772c3df633b176b9698e0ee9ae88.1702555387.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141337520.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <b29e28544eb7772c3df633b176b9698e0ee9ae88.1702555387.git.maria.celeste.cesario@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, 14 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Add volatile qualifiers missing in casts.
> Arguments p and ptr are originally volatile-qualified.
> There's no reason to drop the qualifiers.
> 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>


>  xen/arch/arm/arm64/lib/bitops.c          |  6 ++++--
>  xen/arch/arm/include/asm/arm64/cmpxchg.h | 10 +++++-----
>  2 files changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/arm/arm64/lib/bitops.c b/xen/arch/arm/arm64/lib/bitops.c
> index 20e3f3d6ce..275a780329 100644
> --- a/xen/arch/arm/arm64/lib/bitops.c
> +++ b/xen/arch/arm/arm64/lib/bitops.c
> @@ -32,7 +32,8 @@
>  static always_inline bool int_##name(int nr, volatile void *p, bool timeout,\
>                                       unsigned int max_try)                  \
>  {                                                                           \
> -    volatile uint32_t *ptr = (uint32_t *)p + BITOP_WORD((unsigned int)nr);  \
> +    volatile uint32_t *ptr = (volatile uint32_t *)p +                       \
> +                             BITOP_WORD((unsigned int)nr);                  \
>      const uint32_t mask = BITOP_MASK((unsigned int)nr);                     \
>      unsigned long res, tmp;                                                 \
>                                                                              \
> @@ -67,7 +68,8 @@ bool name##_timeout(int nr, volatile void *p, unsigned int max_try)         \
>  static always_inline bool int_##name(int nr, volatile void *p, int *oldbit, \
>                                       bool timeout, unsigned int max_try)    \
>  {                                                                           \
> -    volatile uint32_t *ptr = (uint32_t *)p + BITOP_WORD((unsigned int)nr);  \
> +    volatile uint32_t *ptr = (volatile uint32_t *)p +                       \
> +                             BITOP_WORD((unsigned int)nr);                  \
>      unsigned int bit = (unsigned int)nr % BITOP_BITS_PER_WORD;              \
>      const uint32_t mask = BITOP_MASK(bit);                                  \
>      unsigned long res, tmp;                                                 \
> diff --git a/xen/arch/arm/include/asm/arm64/cmpxchg.h b/xen/arch/arm/include/asm/arm64/cmpxchg.h
> index dbfaf91567..031fa6d92a 100644
> --- a/xen/arch/arm/include/asm/arm64/cmpxchg.h
> +++ b/xen/arch/arm/include/asm/arm64/cmpxchg.h
> @@ -13,7 +13,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
>  		"1:	ldxrb	%w0, %2\n"
>  		"	stlxrb	%w1, %w3, %2\n"
>  		"	cbnz	%w1, 1b\n"
> -			: "=&r" (ret), "=&r" (tmp), "+Q" (*(u8 *)ptr)
> +			: "=&r" (ret), "=&r" (tmp), "+Q" (*(volatile u8 *)ptr)
>  			: "r" (x)
>  			: "memory");
>  		break;
> @@ -22,7 +22,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
>  		"1:	ldxrh	%w0, %2\n"
>  		"	stlxrh	%w1, %w3, %2\n"
>  		"	cbnz	%w1, 1b\n"
> -			: "=&r" (ret), "=&r" (tmp), "+Q" (*(u16 *)ptr)
> +			: "=&r" (ret), "=&r" (tmp), "+Q" (*(volatile u16 *)ptr)
>  			: "r" (x)
>  			: "memory");
>  		break;
> @@ -31,7 +31,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
>  		"1:	ldxr	%w0, %2\n"
>  		"	stlxr	%w1, %w3, %2\n"
>  		"	cbnz	%w1, 1b\n"
> -			: "=&r" (ret), "=&r" (tmp), "+Q" (*(u32 *)ptr)
> +			: "=&r" (ret), "=&r" (tmp), "+Q" (*(volatile u32 *)ptr)
>  			: "r" (x)
>  			: "memory");
>  		break;
> @@ -40,7 +40,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
>  		"1:	ldxr	%0, %2\n"
>  		"	stlxr	%w1, %3, %2\n"
>  		"	cbnz	%w1, 1b\n"
> -			: "=&r" (ret), "=&r" (tmp), "+Q" (*(u64 *)ptr)
> +			: "=&r" (ret), "=&r" (tmp), "+Q" (*(volatile u64 *)ptr)
>  			: "r" (x)
>  			: "memory");
>  		break;
> @@ -82,7 +82,7 @@ static inline bool __cmpxchg_case_##name(volatile void *ptr,		\
>  		"	stxr" #sz "	%w0, %" #w "4, %2\n"		\
>  		"1:\n"							\
>  		: "=&r" (res), "=&r" (oldval),				\
> -		  "+Q" (*(unsigned long *)ptr)				\
> +		  "+Q" (*(volatile unsigned long *)ptr)	\
>  		: "Ir" (*old), "r" (new)				\
>  		: "cc");						\
>  									\
> -- 
> 2.40.0
> 


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:42:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:42:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654765.1022093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtTE-0004Ol-RV; Thu, 14 Dec 2023 21:42:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654765.1022093; Thu, 14 Dec 2023 21:42: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 1rDtTE-0004Oe-Nt; Thu, 14 Dec 2023 21:42:16 +0000
Received: by outflank-mailman (input) for mailman id 654765;
 Thu, 14 Dec 2023 21:42: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtTD-0004OY-T9
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:42: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 a49b3a61-9ac9-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 22:42:14 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 0C333623D6;
 Thu, 14 Dec 2023 21:42:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8D28C433CB;
 Thu, 14 Dec 2023 21:42: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: a49b3a61-9ac9-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702590132;
	bh=Fn4jMwSH1u3E0YTNgaCsHAFFep7YcPQe4+hSTpEcooE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Lp3t1QMMpwE0aHE5QUG8T22ahuqlsagN2OEUBr4VRE5OeVFZDBNo0oxzaCaNhe6L6
	 VmmiEKayoTLuGkAFw0BAgIG03Fq7QW3t5fVUr6ZF4nXXh0YtYVGY3zEvsXYtg1fdbK
	 eL9Zb5jI2r01I4kIi7XoIA721iLtD4c/K0DyOgNNXmTF1YDtboxFPnXyq8ZfLI+zeW
	 ETUjr5e8e93TnnUcRMDQQe1+v+D7V1rFOv+fKC35n2M7qzVAuU1XTZM9E+kE9AaNIa
	 Hguof1LEV6PUIysHOXGn0PdfgUO/GSG61kCPIihTKQ/MtVvBrGcK31JMFFizx/zz6A
	 vuFhjiyy/gjHg==
Date: Thu, 14 Dec 2023 13:42:10 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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 2/9] xen/arm: address violations of MISRA C:2012 Rule
 11.8
In-Reply-To: <1ad7937f9aa2086e76a87c8edf8105bd4476bf39.1702555387.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141340460.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <1ad7937f9aa2086e76a87c8edf8105bd4476bf39.1702555387.git.maria.celeste.cesario@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, 14 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Add missing const qualifiers in casts.
> The variables are originally const-qualified.
> There's no reason to drop the qualifiers.
> No functional change.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> ---
>  xen/arch/arm/bootfdt.c                 | 6 +++---
>  xen/arch/arm/include/asm/alternative.h | 2 +-
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
> index f496a8cf94..e7948ea3e8 100644
> --- a/xen/arch/arm/bootfdt.c
> +++ b/xen/arch/arm/bootfdt.c
> @@ -377,7 +377,7 @@ static int __init process_chosen_node(const void *fdt, int node,
>          printk("linux,initrd-start property has invalid length %d\n", len);
>          return -EINVAL;
>      }
> -    start = dt_read_paddr((void *)&prop->data, dt_size_to_cells(len));
> +    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 )
> @@ -390,7 +390,7 @@ static int __init process_chosen_node(const void *fdt, int node,
>          printk("linux,initrd-end property has invalid length %d\n", len);
>          return -EINVAL;
>      }
> -    end = dt_read_paddr((void *)&prop->data, dt_size_to_cells(len));
> +    end = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
>  
>      if ( start >= end )
>      {
> @@ -541,7 +541,7 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>  
>      add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
>  
> -    ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
> +    ret = device_tree_for_each_node((const void *)fdt, 0, early_scan_node, NULL);
>      if ( ret )
>          panic("Early FDT parsing failed (%d)\n", ret);

This cast can be dropped. The rest looks OK.


> diff --git a/xen/arch/arm/include/asm/alternative.h b/xen/arch/arm/include/asm/alternative.h
> index d3210e82f9..c7632668b6 100644
> --- a/xen/arch/arm/include/asm/alternative.h
> +++ b/xen/arch/arm/include/asm/alternative.h
> @@ -20,7 +20,7 @@ struct alt_instr {
>  };
>  
>  /* Xen: helpers used by common code. */
> -#define __ALT_PTR(a,f)		((void *)&(a)->f + (a)->f)
> +#define __ALT_PTR(a,f)		((const void *)&(a)->f + (a)->f)
>  #define ALT_ORIG_PTR(a)		__ALT_PTR(a, orig_offset)
>  #define ALT_REPL_PTR(a)		__ALT_PTR(a, repl_offset)
>  
> -- 
> 2.40.0
> 


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:46:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:46:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654770.1022102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtWn-00051v-E7; Thu, 14 Dec 2023 21:45:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654770.1022102; Thu, 14 Dec 2023 21: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 1rDtWn-00051o-BV; Thu, 14 Dec 2023 21:45:57 +0000
Received: by outflank-mailman (input) for mailman id 654770;
 Thu, 14 Dec 2023 21:45: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtWl-00051i-Lw
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:45:55 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 282e156b-9aca-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 22:45:54 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id E2C25B824BD;
 Thu, 14 Dec 2023 21:45:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E925BC433C7;
 Thu, 14 Dec 2023 21:45: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: 282e156b-9aca-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702590353;
	bh=FMVbQUit/8TwQmnHYqaIVeehSOzQkCIrUTdCvymHnUU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=iKMFYx6zEm0CnexUMtasTjCVrjlFLyy0Ne+s46iAqkKIkI0H62yusPRThdrWKdB+s
	 /LRmw5rrNiAFqopNNEKVliAh4NkNMaZseoKR1PaWya8a0azTXZlx3vorOyXPVCrp13
	 LM5AStyycF2JQ6lM5e6wbyu+cvJmluBeQn1bCnmEy8bCMxiMKx3KgvgxYyE/A8R/Ul
	 9k3m4QyvVSGAgg3wuyOTAW3C6yqqKXqqG5hauxMHE9112+504MUFwuSQcXbQyZuQJ9
	 3lco0L/PEKFrPcoYOouZ54CHTPUy+IqKXy0Tu9PMIqm44AGvPawDX3vPZX5Nib3zvl
	 eLdf7spRf8TZQ==
Date: Thu, 14 Dec 2023 13:45:50 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    Jan Beulich <jbeulich@suse.com>, 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 3/9] xen/efi: address violations of MISRA C:2012 Rule
 11.8
In-Reply-To: <4540a3850dae951dd6bc4f9b001c9816bde2e49e.1702555387.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141345180.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <4540a3850dae951dd6bc4f9b001c9816bde2e49e.1702555387.git.maria.celeste.cesario@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, 14 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Add missing const qualifiers in casts.
> The variables are originally const-qualified.
> There's no reason to drop the qualifiers.
> 
> 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>


> ---
>  xen/common/efi/boot.c | 6 +++---
>  xen/common/version.c  | 2 +-
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 6110819918..efbec00af9 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1248,10 +1248,10 @@ static void __init efi_exit_boot(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *Syste
>  #endif
>  
>      /* Adjust pointers into EFI. */
> -    efi_ct = (void *)efi_ct + DIRECTMAP_VIRT_START;
> -    efi_rs = (void *)efi_rs + DIRECTMAP_VIRT_START;
> +    efi_ct = (const void *)efi_ct + DIRECTMAP_VIRT_START;
> +    efi_rs = (const void *)efi_rs + DIRECTMAP_VIRT_START;
>      efi_memmap = (void *)efi_memmap + DIRECTMAP_VIRT_START;
> -    efi_fw_vendor = (void *)efi_fw_vendor + DIRECTMAP_VIRT_START;
> +    efi_fw_vendor = (const void *)efi_fw_vendor + DIRECTMAP_VIRT_START;
>  }
>  
>  /* SAF-1-safe */
> diff --git a/xen/common/version.c b/xen/common/version.c
> index d320135208..6ac5a52700 100644
> --- a/xen/common/version.c
> +++ b/xen/common/version.c
> @@ -178,7 +178,7 @@ void __init xen_build_init(void)
>      if ( &n[1] >= __note_gnu_build_id_end )
>          return;
>  
> -    sz = (void *)__note_gnu_build_id_end - (void *)n;
> +    sz = (const void *)__note_gnu_build_id_end - (const void *)n;
>  
>      rc = xen_build_id_check(n, sz, &build_id_p, &build_id_len);
>  
> -- 
> 2.40.0
> 


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:49:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:49:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654773.1022112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtab-0005mZ-Te; Thu, 14 Dec 2023 21:49:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654773.1022112; Thu, 14 Dec 2023 21:49:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtab-0005mS-Qh; Thu, 14 Dec 2023 21:49:53 +0000
Received: by outflank-mailman (input) for mailman id 654773;
 Thu, 14 Dec 2023 21:49:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtaZ-0005mM-T8
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:49:51 +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 b3f80a0f-9aca-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 22:49:50 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 643A0CE25C5;
 Thu, 14 Dec 2023 21:49:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1103C433C8;
 Thu, 14 Dec 2023 21:49: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: b3f80a0f-9aca-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702590583;
	bh=2nggg6RuIpS40KC0MJiI6H/jVgFmH7whqAtwDWlWezU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fmC959Z/y98+5nCJgVhmRgPVDFVRzle3ksdpCx1qGpA62mmK7Usjqy52gcoIfud51
	 EraUgFs9xVCzrJ9UaU862boYyCmVzgzVen/8Cef/1+ZTLFa6+RO11si0aFdLJVTEWG
	 P93q3gxsTmHXuogCiZz6lDZVCpvd8IRpVDTrtxiMUk/rL1AyOia/TGV8bPAFrpZsny
	 336iboguwmeS+iNAy95OvFwvKG+C8sYGAVBt2VRKJU4nVvUfxl1/5JXgrWR6ezw7ho
	 j6XoqUYVi0DvXe5kiJORjF7NIAzZDD2zL+FTMGmtetsTBKvxyTEWaaq3oo1gT+tefK
	 qZHw2tS2WavzA==
Date: Thu, 14 Dec 2023 13:49:41 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH 4/9] ACPI: address violations of MISRA C:2012 Rule 11.8
In-Reply-To: <44c8f94bcfe4f0e33e53a7eb8aef826e7d906196.1702555387.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141347570.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <44c8f94bcfe4f0e33e53a7eb8aef826e7d906196.1702555387.git.maria.celeste.cesario@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, 14 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Add missing const qualifiers missing in casting.
> There's no reason to drop the const qualifier in ACPI_COMPARE_NAME since
> the macro arguments are not modified in its body.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
> ---
>  xen/include/acpi/acmacros.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/include/acpi/acmacros.h b/xen/include/acpi/acmacros.h
> index 86c503c20f..d7c74c5769 100644
> --- a/xen/include/acpi/acmacros.h
> +++ b/xen/include/acpi/acmacros.h
> @@ -116,7 +116,7 @@
>  #define ACPI_PTR_TO_PHYSADDR(i)         ACPI_TO_INTEGER(i)
>  
>  #ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
> -#define ACPI_COMPARE_NAME(a,b)          (*ACPI_CAST_PTR (u32,(a)) == *ACPI_CAST_PTR (u32,(b)))
> +#define ACPI_COMPARE_NAME(a,b)          (*ACPI_CAST_PTR (const u32,(a)) == *ACPI_CAST_PTR (const u32,(b)))

I am a bit confused but this one. The implementation of ACPI_CAST_PTR
is:

#define ACPI_CAST_PTR(t, p)             ((t *) (acpi_uintptr_t) (p))

The first cast to acpi_uintptr_t would already drop the const anyway?


>  #else
>  #define ACPI_COMPARE_NAME(a,b)          (!ACPI_STRNCMP (ACPI_CAST_PTR (char,(a)), ACPI_CAST_PTR (char,(b)), ACPI_NAME_SIZE))
>  #endif

Would it make sense to also add the const here too if nothing else for
consistency?


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:50:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:50:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654775.1022122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtbB-00078p-4h; Thu, 14 Dec 2023 21:50:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654775.1022122; Thu, 14 Dec 2023 21:50:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtbB-00078i-29; Thu, 14 Dec 2023 21:50:29 +0000
Received: by outflank-mailman (input) for mailman id 654775;
 Thu, 14 Dec 2023 21:50:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtbA-00074p-08
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:50:28 +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 c9aca467-9aca-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 22:50:26 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 9418562237;
 Thu, 14 Dec 2023 21:50:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4D36FC433C7;
 Thu, 14 Dec 2023 21:50: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: c9aca467-9aca-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702590624;
	bh=kjVDvz/CbrFM6q6FXiu3J4Rma/Bq/NM1oBIi3H5dDXs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fPpl+lRj3iY5HtrErGCrR1PalY0fpJzob/cYNEVSdwtWOLsUJmgD2VGxRyO9Y7m0e
	 gyLQjOu+WGBxYWCLHt+36fqLpBWpkngXlETlwtEy1aNGnJFlmcnIzRDc1q/wpIU6s8
	 25SMLsVQzBb7yMddrsL0Fmu7JjHGNYzZtu3B/yk0XzFVF/3QYaVZM1cuzon3ioejpH
	 DehRUL15ohl9R2NOK64Zp6r7fZKDxnOVdS3ra8TosqP+Tw0PDtthm2AfVoJ/ehYsP0
	 mMOedIlLsLVVNl9g2eRW5iQjQIMlIUkQqamoq9KCoGoef4eFD3eYKyN/qWjwqG23KD
	 hnP9mRhRnYtfw==
Date: Thu, 14 Dec 2023 13:50:21 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH 5/9] xen/x86: address violations of MISRA C:2012 Rule
 11.8
In-Reply-To: <68e28c7631f1233df1527674cfc27cf3f44797a7.1702555387.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141350150.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <68e28c7631f1233df1527674cfc27cf3f44797a7.1702555387.git.maria.celeste.cesario@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, 14 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Add missing const qualifiers in casts.
> 
> Macro get_mb2_data returns values that are const-qualified.
> The results are stored in const struct pointers, hence
> there's no need to cast away the const qualifiers.
> 
> 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>


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:51:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:51:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654777.1022132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtcR-0007ya-EC; Thu, 14 Dec 2023 21:51:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654777.1022132; Thu, 14 Dec 2023 21:51: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 1rDtcR-0007yT-Bh; Thu, 14 Dec 2023 21:51:47 +0000
Received: by outflank-mailman (input) for mailman id 654777;
 Thu, 14 Dec 2023 21:51:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtcQ-0007x9-Oe
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:51:46 +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 f7f34884-9aca-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 22:51:44 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 411B2CE2075;
 Thu, 14 Dec 2023 21:51:42 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6A66C433C7;
 Thu, 14 Dec 2023 21:51: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: f7f34884-9aca-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702590701;
	bh=HI5d78YTA7qAVlFkFnEl2H5ELDpWk8VWXhPQUNA1+ug=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=t+kRf1jciZu0QobOst+AzVjfp45qSiP1DIE7yl9ivx9WCmEnKzyXN0NMTxdnrtTtg
	 7nSW7fdLpKZwfGBwFVa5RCObroETyG8a5iK744KEkTNhCEQy3M5EE3H1/73RBLoQ/0
	 6o/3SNPCBQqDAWzk9UNU7Le0168BfMY3Iefx4272ufi+lgZabDv8lxoLsQdW0gHLjd
	 /Io9TKVP8rZwKa4XlCURP/5JRUrFE9i5zAx5qNBapXbhU25laC13J9W42tHPLoaqVU
	 cbEvtlxMNws2f0X8EIoHPqYPk37HGCNiU6NKaOb4hs+ObZyZuyMBmB5g2NPhzYb2b4
	 iY3hKagCYUrjQ==
Date: Thu, 14 Dec 2023 13:51:39 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: Re: [PATCH 6/9] xen/ppc: address violations of MISRA C:2012 Rule
 11.8.
In-Reply-To: <0dcaf3a85f3293168b993c42303dfd55684a7bb7.1702555387.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141351320.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <0dcaf3a85f3293168b993c42303dfd55684a7bb7.1702555387.git.maria.celeste.cesario@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, 14 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Fix violation by adding missing const qualifier in cast.
> 
> 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>


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 21:52:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 21:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654779.1022143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtd1-0000D7-N5; Thu, 14 Dec 2023 21:52:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654779.1022143; Thu, 14 Dec 2023 21:52:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtd1-0000D0-Jr; Thu, 14 Dec 2023 21:52:23 +0000
Received: by outflank-mailman (input) for mailman id 654779;
 Thu, 14 Dec 2023 21:52: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtd0-0000BO-B1
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 21:52: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 0e3327bc-9acb-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 22:52:21 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id E8F3461FE5;
 Thu, 14 Dec 2023 21:52:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B42CC433C8;
 Thu, 14 Dec 2023 21:52: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: 0e3327bc-9acb-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702590739;
	bh=qIpOWTaUdB7yzkvyAE/T8SIdASjcLU5t219uTMkkb3I=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=FWPtGObVkpBBTFDVjUcuSgeTyQGl90TNiQORofl0M2xOT6pgxU9hZWU6ube+RA4pg
	 hsSxXvB97DijjicSVugckN8HuvO+k5UcSyCnEbiq77PxOXz99R2bHmDdw+qpladpXD
	 0LzDHEnCbKAk/v7Lj0cvgdvqnq+7Wlncx59ZfDuaBuyAydo2tRO8d6E3n2aEv/RCW8
	 SjEpJh9RrDuzwhGjK+2xv6pXQ4nCya9AUuOPp5YpTNmZ/fJQqhsmjTBZS/1Sv3MF54
	 6Flr8HbE43aTZt+Ub65+vp2Spts72xVCXFZrJgmJajDuBELSNORi1DincWYa/sBiMo
	 mDYU++1Z/0Fmw==
Date: Thu, 14 Dec 2023 13:52:17 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH 7/9] x86/hvm: address violations of MISRA C:2012 Rule
 11.8
In-Reply-To: <bfdd8f021230224e3bb1aea2aceaf2c712615ba7.1702555387.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141352100.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <bfdd8f021230224e3bb1aea2aceaf2c712615ba7.1702555387.git.maria.celeste.cesario@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, 14 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Remove unnecessary cast.
> from is a const-qualified pointer to void and the function hvm_copy_to_guest_linear
> requires a const void* type argument, therefore the cast to void* is not necessary.
> 
> 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>


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 22:04:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 22:04:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654785.1022153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtoy-00038j-QK; Thu, 14 Dec 2023 22:04:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654785.1022153; Thu, 14 Dec 2023 22:04:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtoy-00038c-Mn; Thu, 14 Dec 2023 22:04:44 +0000
Received: by outflank-mailman (input) for mailman id 654785;
 Thu, 14 Dec 2023 22:04:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtox-00038W-OY
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 22:04:43 +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 c6fd692f-9acc-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 23:04:41 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 147C6CE2652;
 Thu, 14 Dec 2023 22:04:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B9467C433C8;
 Thu, 14 Dec 2023 22:04: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: c6fd692f-9acc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702591478;
	bh=IIXYAcHhB9hNg5Zo0YZQzIK6v2vnrn8wn7nrRKXOlIk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=UPako9BNjPqVbWSVyv58pUag7mYioZhtslU+5KGRHmrjZmR1pb2uEzmGAqzvhLnDG
	 qhO481hCX5UmKFB9HPTss0SLYe1p4ZuqT/QCK/6J1pVslW1w8Fs2xNxDUfZgzHsDKE
	 rrkOPhb4mzDKsXplkfKCdbW0EjeehAPApbobqFDc0XETo1aM6RehwhXe7QxeStrLUm
	 eoDOq1b1xHZOd8hJ+zt0jk112CnMxis76pFxUexffwnOh3lnyXO3yzZQ6w5gM31VXL
	 17HhVsqWRCT09KTAr8NdJcBLFo9ryZgFGzppwnMv2FV81eQFCnwDtX4is0214oKi0l
	 VkWSXdcOM41DQ==
Date: Thu, 14 Dec 2023 14:04:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Simone Ballarin <simone.ballarin@bugseng.com>, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    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>, Wei Liu <wl@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH 9/9] xen: add SAF deviation for safe cast removal.
In-Reply-To: <b93417c7-1375-4bf4-ace2-d36bd63c8b0b@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312141355391.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <36e996b864853dba26a9c9fb9c9c674e92cc935e.1702555387.git.maria.celeste.cesario@bugseng.com> <b93417c7-1375-4bf4-ace2-d36bd63c8b0b@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 14 Dec 2023, Jan Beulich wrote:
> On 14.12.2023 13:07, Simone Ballarin wrote:
> > --- a/docs/misra/safe.json
> > +++ b/docs/misra/safe.json
> > @@ -28,6 +28,14 @@
> >          },
> >          {
> >              "id": "SAF-3-safe",
> > +            "analyser": {
> > +                "eclair": "MC3R1.R11.8"
> > +            },
> > +            "name": "MC3R1.R11.8: removal of const qualifier to comply with function signature",
> > +            "text": "It is safe to cast away const qualifiers to comply with function signature if the function does not modify the pointee."
> 
> I'm not happy with this description, as it invites for all sorts of abuse.
> Yet I'm also puzzled that ...

We can improve the language but the concept would still be the same. For
instance:

A single function might or might not modify the pointee depending on
other function parameters (for instance a single function that could
either read or write depending on how it is called). It is safe to cast
away const qualifiers when passing a parameter to a function of this
type when the other parameters are triggering a read-only operation.


> > --- a/xen/arch/x86/hvm/hvm.c
> > +++ b/xen/arch/x86/hvm/hvm.c
> > @@ -3413,6 +3413,7 @@ static enum hvm_translation_result __hvm_copy(
> >  enum hvm_translation_result hvm_copy_to_guest_phys(
> >      paddr_t paddr, const void *buf, unsigned int size, struct vcpu *v)
> >  {
> > +    /* SAF-3-safe */
> >      return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */,
> >                        paddr, size, v,
> >                        HVMCOPY_to_guest | HVMCOPY_phys, 0, NULL);
> 
> ... this is the only place you then use it. Afaict some of Arm's copy_guest()
> callers ought to have a similar issue. If so, an enlarged patch should be
> discussed with a larger audience, to see how we collectively think we want to
> put this specific kind of deviation.

We have a similar problem, see xen/arch/arm/guestcopy.c
raw_copy_to_guest and raw_copy_from_guest.

I would use the SAF deviation there too.

In the case here, I think the comment "HVMCOPY_to_guest doesn't modify"
could be removed as it becomes redundant with SAF-3-safe, but I'll leave
it to you.


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 22:10:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 22:10:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654788.1022162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDtu2-0004VL-CJ; Thu, 14 Dec 2023 22:09:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654788.1022162; Thu, 14 Dec 2023 22: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 1rDtu2-0004VE-9o; Thu, 14 Dec 2023 22:09:58 +0000
Received: by outflank-mailman (input) for mailman id 654788;
 Thu, 14 Dec 2023 22: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDtu0-0004Tw-O8
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 22:09:56 +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 8145da4b-9acd-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 23:09:54 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id EE032CE19BF;
 Thu, 14 Dec 2023 22:09:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 024E7C433C8;
 Thu, 14 Dec 2023 22:09:47 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8145da4b-9acd-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702591789;
	bh=r0H0axnIr8sFfyx3f914gBTpH6k5yBQX/8Z21Aeq3tA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=g/YmWuxHUv4pukgpanQtM3jm4NUarpGkndcSfKetQDEUZystt+4YZkO3Zm6ka58lR
	 cckCaGy/aEX88ICCYRPqFxcE+n/vNWR+4p4reprd5MVEIEfbBrBBckudFh6pWgwGxg
	 JyYY75Vk9zzTAQI31b4uZ+wTQjdOimEZS26y4uRZcQZFN16YKlnd+Rdmz8B0RKc6KI
	 m8LxVlidDIo3wL6VKQ9riOeInANalHF9XuAz3Zq5yH/2Xt1iQhhxpNGNSbptXPJtuJ
	 d96NyprwFlS7oWJ+VosThCIBRQubD1MPRbUYl8HU3idBfiUW0agJArgRQPhAuDwIUV
	 9HehReNdP15fQ==
Date: Thu, 14 Dec 2023 14:09:46 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN RFC] xen/bug: introduce bug_fn_nonconst_t to validate
 run_in_exception_handle()
In-Reply-To: <3423244b0b1506d2a928799d80e15c19add75566.1702570086.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312141407580.3175268@ubuntu-linux-20-04-desktop>
References: <3423244b0b1506d2a928799d80e15c19add75566.1702570086.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 Thu, 14 Dec 2023, Federico Serafini wrote:
> Introduce function type bug_fn_nonconst_t (as opposed to bug_fn_t)
> to validate the argument passed to run_in_exception_handle().
> 
> Place the definition of bug_fn_nonconst_t before of asm/bug.h inclusion
> so that arch-specific implementations of run_in_exception_handler() can
> use it (and move bug_fn_t into the same place for the same reason).
> 
> Furthermore, use bug_fn_nonconst_t to address violations of
> MISRA C:2012 Rule 8.2  ("Function types shall be in prototype form with
> named parameters").
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
> At the moment, bug_fn_t can not be used within run_in_exception_handler()
> because of the const qualifier on the formal parameter.
> I tried to adjust the constness of the functions passed to
> run_in_exception_handler but at a certain point I stopped:
> a lot of code churn is required and I am not sure about the correctenss of the
> result.
> So, I came up with this solution, taking inspiration from the exising functions
> show_execution_state() and show_execution_state_nonconst().
> 
> I would like to ask if:
> 1) I correctly applied Julien's suggestion about the visibility [1];
> 2) this RFC can become a patch.
> 
> [1]
> https://lists.xenproject.org/archives/html/xen-devel/2023-11/msg01361.html
> ---
>  xen/common/bug.c      |  2 +-
>  xen/include/xen/bug.h | 21 +++++++++++++++------
>  2 files changed, 16 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/common/bug.c b/xen/common/bug.c
> index ca166e102b..9170821ab8 100644
> --- a/xen/common/bug.c
> +++ b/xen/common/bug.c
> @@ -63,7 +63,7 @@ int do_bug_frame(struct cpu_user_regs *regs, unsigned long pc)
>  
>      if ( id == BUGFRAME_run_fn )
>      {
> -        void (*fn)(struct cpu_user_regs *) = bug_ptr(bug);
> +        bug_fn_nonconst_t *fn = bug_ptr(bug);
>  
>          fn(regs);
>  
> diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h
> index cb5138410e..c6f5594af5 100644
> --- a/xen/include/xen/bug.h
> +++ b/xen/include/xen/bug.h
> @@ -12,6 +12,18 @@
>  #define BUG_LINE_LO_WIDTH (31 - BUG_DISP_WIDTH)
>  #define BUG_LINE_HI_WIDTH (31 - BUG_DISP_WIDTH)
>  
> +#ifndef __ASSEMBLY__
> +
> +/*
> + * Make bug_fn_t and bug_fn_nonconst_t visible for arch-specific implementation
> + * of run_in_exception_handler.
> + */
> +struct cpu_user_regs;
> +typedef void bug_fn_t(const struct cpu_user_regs *regs);
> +typedef void bug_fn_nonconst_t(struct cpu_user_regs *regs);
> +
> +#endif
> +
>  #include <asm/bug.h>
>  
>  #ifndef __ASSEMBLY__
> @@ -99,18 +111,15 @@ struct bug_frame {
>  
>  #endif
>  
> -struct cpu_user_regs;
> -typedef void bug_fn_t(const struct cpu_user_regs *regs);

I am not sure why you moved this up in the file, but everything looks
correct to me. I would ack it but I'll let Julien confirm in regards to
his older comment.


>  #ifndef run_in_exception_handler
>  
>  /*
>   * TODO: untangle header dependences, break BUILD_BUG_ON() out of xen/lib.h,
>   * and use a real static inline here to get proper type checking of fn().
>   */
> -#define run_in_exception_handler(fn) do {                   \
> -    (void)((fn) == (void (*)(struct cpu_user_regs *))NULL); \
> -    BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL);             \
> +#define run_in_exception_handler(fn) do {       \
> +    (void)((fn) == (bug_fn_nonconst_t *)NULL);  \
> +    BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL); \
>  } while ( false )
>  
>  #endif /* run_in_exception_handler */
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 22:33:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 22:33:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654793.1022173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDuGK-0002eH-Bg; Thu, 14 Dec 2023 22:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654793.1022173; Thu, 14 Dec 2023 22:33:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDuGK-0002eA-7c; Thu, 14 Dec 2023 22:33:00 +0000
Received: by outflank-mailman (input) for mailman id 654793;
 Thu, 14 Dec 2023 22:32:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDuGJ-0002d2-MZ
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 22:32: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 bad1c1ee-9ad0-11ee-98e9-6d05b1d4d9a1;
 Thu, 14 Dec 2023 23:32:58 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id E2A4462215;
 Thu, 14 Dec 2023 22:32:56 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90E9AC433C7;
 Thu, 14 Dec 2023 22:32: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: bad1c1ee-9ad0-11ee-98e9-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702593176;
	bh=0QdiEQBaLuIST3rqtdsjoAfSh1iEsq3v1/JLWfSHBiI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=INpQ498laNXL1qvakMHhrsQWGeuF8aUf1Q5/CFWWotaOIJpjP3jfzq0v+7JIUPREd
	 xWSRg+fk72KeeqygbHltbPJZz4KwPHdaSPjRKR0LAgS1Igmi2UJkJcCgLQZOUswDLx
	 5HS+I9YdHMckKyk32zWAeyorMC6cV4QFd41wEdJPZ65KEpTZbmEpeC06zEGw9pnPLm
	 QmkELYZkAXW84TOpp6W7+H9dMrwmAQJa0Yj9tmKWqL9US5x7cplFfDuoYqbJHlRVxZ
	 azYTdrBOZEsVjSHZ/uFJxDduuJE4qT6Vjz0ojJFjPxdpHh+kciyCVM+OZh1OLR4Xj5
	 +touIJUcBCoPg==
Date: Thu, 14 Dec 2023 14:32:54 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
In-Reply-To: <2b4eec7c-3657-4542-96b9-56b272e8723b@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312141418160.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com> <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org> <240c97ed-ce27-406d-84ad-68b72e999294@xen.org>
 <5ad1c008182bc9f23e1b37b0d6e35e4c@bugseng.com> <2b4eec7c-3657-4542-96b9-56b272e8723b@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1284507503-1702592684=:3175268"
Content-ID: <alpine.DEB.2.22.394.2312141425040.3175268@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-1284507503-1702592684=:3175268
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312141425041.3175268@ubuntu-linux-20-04-desktop>

On Thu, 14 Dec 2023, Julien Grall wrote:
> Hi,
> 
> On 13/12/2023 14:02, Nicola Vetrini wrote:
> > On 2023-12-12 16:49, Julien Grall wrote:
> > > Hi,
> > > 
> > > On 11/12/2023 12:32, Julien Grall wrote:
> > > > Hi,
> > > > 
> > > > On 11/12/2023 10:30, Nicola Vetrini wrote:
> > > > > The branches of the switch after a call to 'do_unexpected_trap'
> > > > > cannot return, but there is one path that may return, hence
> > > > > only some clauses are marked with ASSERT_UNREACHABLE().
> > > > I don't understand why this is necessary. The code should never be
> > > > reachable because do_unexpected_trap() is a noreturn().
> > >
> > > From the matrix discussion, it wasn't clear what was my position on this
> > > patch.
> > > 
> > > I would much prefer if the breaks are kept. I could accept:
> > > 
> > > ASSERT_UNREACHABLE();
> > > break;
> > > 
> > > But this solution is a Nack because if you are concerned about functions
> > > like do_unexpected_trap() to return by mistaken, then it needs to also be
> > > safe in production.
> > > 
> > > The current proposal is not safe.

I re-read the email thread. I also do not think that this is useful:

         do_unexpected_trap("SVE trap at EL2", regs);
-        break;
+        ASSERT_UNREACHABLE();

I also do not think that we should be concerned about functions like
do_unexpected_trap() to return by mistaken.

That said, what is the problem from MISRA point of view that we are
trying to fix? Is the only problem the presence of break; after the call
to a noreturn function?

If that's not allowed, I would suggest to do this:


         do_unexpected_trap("SVE trap at EL2", regs);
-        break;
+        /* break; */


Or deviate "break" globally as it doesn't seem to be a safety risk in my
opinion. If nothing else, it should make the code a bit safer because in
case of mistakes in do_unexpected_trap, at least we would continue to
follow a more reasonable code path rather than blindly falling through
the next switch case by accident.


> > Ok. I wonder whether the should be applied here in vcpreg.c:
> > 
> > diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
> > index 39aeda9dab62..089d2f03eb5e 100644
> > --- a/xen/arch/arm/vcpreg.c
> > +++ b/xen/arch/arm/vcpreg.c
> > @@ -707,7 +707,8 @@ void do_cp10(struct cpu_user_regs *regs, const union hsr
> > hsr)
> >  Â Â Â Â Â Â Â Â  inject_undef_exception(regs, hsr);
> >  Â Â Â Â Â Â Â Â  return;
> >  Â Â Â Â  }
> > -
> > +
> > +Â Â Â  ASSERT_UNREACHABLE();
> >  Â Â Â Â  advance_pc(regs, hsr);
> >  Â }
> > 
> > the rationale being that, should the switch somehow fail to return, the
> > advance_pc would be called, rather than doing nothing.
> 
> To clarify, advance_pc(regs, hsr) would still be called in production build.
> So if you are concerned about advance_pc() been called, then adding an
> ASSERT_UNREACHABLE() is not going to help.
> 
> It took me a little while to confirm that none of the path effectively returns
> due to the macros (in hindsight, it wasn't a good idea of mine to introduce
> them).
> 
> Depending on what we are trying to solve there are 3 possible approach:
>   1. Leave advance_pc(). This means we could potentially
>      a. Advance the PC twice (if it was already called) and therefore skipping
> an instruction
>      b. Advance the PC once without an emulation
>   2. Remove advance_pc(). If we already called the function, then there is no
> problem. Otherwise, we would trap in a loop effectively rendering the guest
> vCPU unusable.
>   3. Replace with domain_crash()
> 
> Here it feels, that 3 is more suitable as this gives a clear indication
> why/where the emulation gone wrong.
> 
> This may still need to be accompanied with a ASSERT_UNREACHABLE() to please
> MISRA.
> 
> Bertrand, Michal, Stefano, what do you think?

Yes, I would go with 3., replace advance_pc with domain_crash. Assuming
that it would also solve the violation in ECLAIR.
--8323329-1284507503-1702592684=:3175268--


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 22:49:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 22:49:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654803.1022188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDuWH-0006SB-Of; Thu, 14 Dec 2023 22:49:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654803.1022188; Thu, 14 Dec 2023 22: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 1rDuWH-0006S4-Lx; Thu, 14 Dec 2023 22:49:29 +0000
Received: by outflank-mailman (input) for mailman id 654803;
 Thu, 14 Dec 2023 22:49: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=fjLX=HZ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rDuWG-0006Ry-H0
 for xen-devel@lists.xenproject.org; Thu, 14 Dec 2023 22:49:28 +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 070117a1-9ad3-11ee-9b0f-b553b5be7939;
 Thu, 14 Dec 2023 23:49:25 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id ED3D8CE2462;
 Thu, 14 Dec 2023 22:49:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C970C433C7;
 Thu, 14 Dec 2023 22:49: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: 070117a1-9ad3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702594162;
	bh=YxAoDz1562Qm5JXSHG+37rbo8or/kA4W8NhMy564ma8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Vdqfq4nnWtOEcINi1OABxK8g/yP4J2ctA/2JONMQqZrint4anCTu+YOROici5Xzto
	 1CFK1FL4QyysewKF8drTF6GKuzfhVAVwJQs3qDy6Ge5/3vVJptUDYK2/Vaj4BGyVew
	 UbnOWiec//ZBizalrWeqogQhhdDmI31C3/Gf5++drOnzlEX3LGQleiFtJNj6EBhcx+
	 4TEt7TXlbsEE7kqUoCAJyBR5RBGBuuuhWF2ktG2JuKtCBrXc0y/PwEnPIBu52HMYWq
	 yE4fbCwyPfZkPB6MaB7eg9PVwe1V8vwB161YT8lWqGXbSoK0Nq5jUw7jbSAW9tSpAL
	 wmFHgg4vXhGCg==
Date: Thu, 14 Dec 2023 14:49:18 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Jan Beulich <jbeulich@suse.com>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>, 
    Anthony PERARD <anthony.perard@citrix.com>, 
    Juergen Gross <jgross@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, 
    "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, 
    "Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
In-Reply-To: <ZXrTwfzedFQLhxiQ@macbook>
Message-ID: <alpine.DEB.2.22.394.2312141441020.3175268@ubuntu-linux-20-04-desktop>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com> <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook> <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com> <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com> <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com> <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com> <ZXrRG8oc25Do0Dnv@macbook>
 <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com> <ZXrTwfzedFQLhxiQ@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1075268383-1702593786=:3175268"
Content-ID: <alpine.DEB.2.22.394.2312141443090.3175268@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-1075268383-1702593786=:3175268
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312141443091.3175268@ubuntu-linux-20-04-desktop>

On Thu, 14 Dec 2023, Roger Pau MonnÃ© wrote:
> On Thu, Dec 14, 2023 at 10:58:24AM +0100, Jan Beulich wrote:
> > On 14.12.2023 10:55, Roger Pau MonnÃ© wrote:
> > > On Thu, Dec 14, 2023 at 08:55:45AM +0000, Chen, Jiqian wrote:
> > >> On 2023/12/13 15:03, Jan Beulich wrote:
> > >>> On 13.12.2023 03:47, Chen, Jiqian wrote:
> > >>>> On 2023/12/12 17:30, Jan Beulich wrote:
> > >>>>> On 12.12.2023 07:49, Chen, Jiqian wrote:
> > >>>>>> On 2023/12/11 23:31, Roger Pau MonnÃ© wrote:
> > >>>>>>> On Mon, Dec 11, 2023 at 12:40:08AM +0800, Jiqian Chen wrote:
> > >>>>>>>> --- a/xen/arch/x86/hvm/hypercall.c
> > >>>>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
> > >>>>>>>> @@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> > >>>>>>>>  
> > >>>>>>>>      switch ( cmd )
> > >>>>>>>>      {
> > >>>>>>>> +    case PHYSDEVOP_setup_gsi:
> > >>>>>>>
> > >>>>>>> I think given the new approach on the Linux side patches, where
> > >>>>>>> pciback will configure the interrupt, there's no need to expose
> > >>>>>>> setup_gsi anymore?
> > >>>>>> The latest patch(the second patch of v3 on kernel side) does setup_gsi and map_pirq for passthrough device in pciback, so we need this and below.
> > >>>>>>
> > >>>>>>>
> > >>>>>>>>      case PHYSDEVOP_map_pirq:
> > >>>>>>>>      case PHYSDEVOP_unmap_pirq:
> > >>>>>>>> +        if ( is_hardware_domain(currd) )
> > >>>>>>>> +            break;
> > >>>>>>>
> > >>>>>>> Also Jan already pointed this out in v2: this hypercall needs to be
> > >>>>>>> limited so a PVH dom0 cannot execute it against itself.  IOW: refuse
> > >>>>>>> the hypercall if DOMID_SELF or the passed domid matches the current
> > >>>>>>> domain domid.
> > >>>>>> Yes, I remember Jan's suggestion, but since the latest patch(the second patch of v3 on kernel side) has change the implementation, it does setup_gsi and map_pirq for dom0 itself, so I didn't add the DOMID_SELF check.
> > >>>>>
> > >>>>> And why exactly would it do specifically the map_pirq? (Even the setup_gsi
> > >>>>> looks questionable to me, but there might be reasons there.)
> > >>>> Map_pirq is to solve the check failure problem. (pci_add_dm_done-> xc_domain_irq_permission-> XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0)
> > >>>> Setup_gsi is because the gsi is never be unmasked, so the gsi is never be registered( vioapic_hwdom_map_gsi-> mp_register_gsi is never be called).
> > >>>
> > >>> And it was previously made pretty clear by Roger, I think, that doing a "map"
> > >>> just for the purpose of granting permission is, well, at best a temporary
> > >>> workaround in the early development phase. If there's presently no hypercall
> > >>> to _only_ grant permission to IRQ, we need to add one.
> > >> Could you please describe it in detail? Do you mean to add a new hypercall to grant irq access for dom0 or domU?
> > >> It seems XEN_DOMCTL_irq_permission is the hypercall to grant irq access from dom0 to domU(see XEN_DOMCTL_irq_permission-> irq_permit_access). There is no need to add hypercall to grant irq access.
> > >> We failed here (XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0) is because the PVH dom0 didn't use PIRQ, so we can't get irq from pirq if "current" is PVH dom0.
> > > 
> > > One way to bodge this would be to detect whether the caller of
> > > XEN_DOMCTL_irq_permission is a PV or an HVM domain, and in case of HVM
> > > assume the pirq field is a GSI.  I'm unsure however how that will work
> > > with non-x86 architectures.

PIRQ is an x86-only concept. We have event channels but no PIRQs on ARM.
I expect RISC-V will be the same.


> > > It would  be better to introduce a new XEN_DOMCTL_gsi_permission, or

"GSI" is another x86-only concept.

So actually the best name was indeed XEN_DOMCTL_irq_permission, given
that it is using the more arch-neutral "irq" terminology.

Perhaps it was always a mistake to pass PIRQs to
XEN_DOMCTL_irq_permission and we should always have passed the real
interrupt number (GSI on x86, SPI on ARM).

So your "bodge" is actually kind of OK in my opinion. Basically everyone
else (x86 HVM/PVH, ARM, RISC-V, probably PPC too) will use
XEN_DOMCTL_irq_permission with hardware interrupt numbers (GSIs, SPIs,
etc.), the only special case is x86 PV. It is x86 PV the odd one.

Given that DOMCTL is an unstable interface anyway, I feel OK making
changes to it, even better if backward compatible.

--8323329-1075268383-1702593786=:3175268--


From xen-devel-bounces@lists.xenproject.org Thu Dec 14 23:25:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Dec 2023 23:25:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654806.1022198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDv4T-0006s9-5V; Thu, 14 Dec 2023 23:24:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654806.1022198; Thu, 14 Dec 2023 23: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 1rDv4T-0006s2-1t; Thu, 14 Dec 2023 23:24:49 +0000
Received: by outflank-mailman (input) for mailman id 654806;
 Thu, 14 Dec 2023 23:24: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 1rDv4S-0006rs-34; Thu, 14 Dec 2023 23:24: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 1rDv4R-00073c-RH; Thu, 14 Dec 2023 23:24: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 1rDv4R-000153-BD; Thu, 14 Dec 2023 23:24:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDv4R-0008Gu-At; Thu, 14 Dec 2023 23:24: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=J6WyimnQPJwyvB8vBlGQh44LUcVjH5O3zforRFgXPgo=; b=eina1TUZDWSd7wWHNHt8hyLl/g
	gd46Frc1phFQ9tZlouDzDpnT7lIYkkwm8jEvk8wJBePs5HMpTXtmkrz5D9YMpnKVjz/0atgQ3O92R
	WcDxIGq5DEyB6pyVhk9UTDpBjvAfAK3F+Rm/OVIogML3b8MDzcLqt677L73HnWAXI6DQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184132-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184132: regressions - FAIL
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt:xen-boot:fail:regression
    linux-linus:build-i386-pvops:kernel-build:fail:regression
    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-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-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: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-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-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-libvirt-qemuu-debianhvm-amd64-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-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-qcow2: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
X-Osstest-Versions-This:
    linux=5bd7ef53ffe5ca580e93e74eb8c81ed191ddc4bd
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 14 Dec 2023 23:24:47 +0000

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

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. 183973
 build-i386-pvops              6 kernel-build             fail REGR. vs. 183973
 test-armhf-armhf-xl-credit2   8 xen-boot                 fail REGR. vs. 183973

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-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          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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-qcow2 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

version targeted for testing:
 linux                5bd7ef53ffe5ca580e93e74eb8c81ed191ddc4bd
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z   12 days
Failing since        183977  2023-12-03 00:12:06 Z   11 days   22 attempts
Testing same since   184132  2023-12-14 01:46:55 Z    0 days    1 attempts

------------------------------------------------------------
367 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                                             fail    
 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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 13484 lines long.)


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 01:09:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 01:09:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654813.1022208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDwhQ-00042i-Vm; Fri, 15 Dec 2023 01:09:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654813.1022208; Fri, 15 Dec 2023 01:09:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDwhQ-00042b-T5; Fri, 15 Dec 2023 01:09:08 +0000
Received: by outflank-mailman (input) for mailman id 654813;
 Fri, 15 Dec 2023 01:09:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S3yi=H2=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rDwhO-00042E-NA
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 01:09:06 +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 87d2014f-9ae6-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 02:09:00 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c339d2b88so1613435e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 17:09:00 -0800 (PST)
Received: from [192.168.188.81] ([81.6.40.96])
 by smtp.gmail.com with ESMTPSA id
 q9-20020a05600000c900b0033330846e76sm17433020wrx.86.2023.12.14.17.08.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 17:08:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87d2014f-9ae6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702602540; x=1703207340; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=F9q2YIiSgoRTyD6YcDpdgmC6AZSRx+Tm7VqsNiyuBDY=;
        b=TMaS5jQ2s1lp6ezkvD+6Sy5udY7bKgSjL9W7s9adtFRvFUpDbzMVjl7XXxGDV+oNPN
         Vyew5eqreJQEThAw5OlB7IOnqe9k+BizosOorfat83IH9SykIFdml+WAKtHHQRY5EM0E
         0NFGs6JxXTQlXXYzmA1zECNJkZFbZo6in9Rwg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702602540; x=1703207340;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=F9q2YIiSgoRTyD6YcDpdgmC6AZSRx+Tm7VqsNiyuBDY=;
        b=Fj31N6JCjo67DCm1x7vNT2vuB4pjLtp66hzUKrn9cjh2HNYNVCU1iZTEJ0deJeyhlR
         TDBgqd+qimZbLzDAODNVr6jalI61QgtfxBBK3tSemY6F2BotEqpZl1NvEFbjRq00d3Uh
         AIARP42nRJzoNFZ5007jXmrwzscD53NfQQbFd8cYy99DPwOph8cMeqxDW4Us5ONthAP8
         eNIsKI/phnOKCcWcZz9IpZDy99W0ZRBYU6dK6WfkkRV7APhTPceALQz9r3wSxYwVmOGQ
         VWvDs7x2vkbqVGtLb1q6Du/g+zEwr55TQroZon2Cer5PT4sB/S+1zW0SPd3u+MX4ODTn
         Sz+A==
X-Gm-Message-State: AOJu0YxMIXsvN26l66rWlBox+DaH+vHzzTHcDjGbh6iJzCHZ3QHAeSw6
	4GRJXcRWjii9Mcc5gpqzj4uaLw==
X-Google-Smtp-Source: AGHT+IEskJWNPNs/l0/dyl+45Io8m4/eZ42InVnFf5AA14yjbXWnYjcAyKXyCafZiOJVTXmu5cfVYg==
X-Received: by 2002:a05:600c:548c:b0:40b:54ef:ff07 with SMTP id iv12-20020a05600c548c00b0040b54efff07mr5415191wmb.32.1702602540101;
        Thu, 14 Dec 2023 17:09:00 -0800 (PST)
Message-ID: <7c10c729-cd9c-45cd-9ae1-d8baaae7d591@citrix.com>
Date: Fri, 15 Dec 2023 01:08:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN RFC] xen/bug: introduce bug_fn_nonconst_t to validate
 run_in_exception_handle()
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, George Dunlap <george.dunlap@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>
References: <3423244b0b1506d2a928799d80e15c19add75566.1702570086.git.federico.serafini@bugseng.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <3423244b0b1506d2a928799d80e15c19add75566.1702570086.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/12/2023 4:35 pm, Federico Serafini wrote:
> Introduce function type bug_fn_nonconst_t (as opposed to bug_fn_t)
> to validate the argument passed to run_in_exception_handle().
>
> Place the definition of bug_fn_nonconst_t before of asm/bug.h inclusion
> so that arch-specific implementations of run_in_exception_handler() can
> use it (and move bug_fn_t into the same place for the same reason).
>
> Furthermore, use bug_fn_nonconst_t to address violations of
> MISRA C:2012 Rule 8.2  ("Function types shall be in prototype form with
> named parameters").
>
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
> At the moment, bug_fn_t can not be used within run_in_exception_handler()
> because of the const qualifier on the formal parameter.
> I tried to adjust the constness of the functions passed to
> run_in_exception_handler but at a certain point I stopped:
> a lot of code churn is required and I am not sure about the correctenss of the
> result.

run_in_exception_handler() should be bug_fn_t.Â  Any mutation of the
pointer passed in is UB, as it corrupts state behind C's back.

In fact, it's not right for any of the IRQ infrastructure to take a regs
pointer, because the pointer can't be safely be mutated reasons, *and*
its not relevant content for an interrupt handler to peek at (except
perhaps a profiler).Â  Furthermore, there is even a way to recover the
regs pointer if you really need it, via get_irq_regs().

>From a safety perspective, dropping the regs parameter would be a very
good thing.Â  It shrinks the compiled binary (don't need to spill and
recover the pointer in all the infrastructure), and it will avoid
needing to answer awkward questions such as "why are you passing around
a pointer that you can't legally read or write?"Â  But it's also a lot of
work and definitely out of scope for run_in_exception_handler()

> So, I came up with this solution, taking inspiration from the exising functions
> show_execution_state() and show_execution_state_nonconst().

show_execution_state_nonconst() is a bodge of mine to use a const-taking
function in an API wanting a non-const pointer, and it only exists
because I didn't have time to untangle this mess while working to
security embargo.

The only path I can see which actually mutates the pointer is
do_debug_key() into debugger_trap_fatal() into GDBstub's
process_command().Â  However, it's a debugger making arbitrary state
changes, so can cast away const in order to do so.

> diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h
> index cb5138410e..c6f5594af5 100644
> --- a/xen/include/xen/bug.h
> +++ b/xen/include/xen/bug.h
> @@ -99,18 +111,15 @@ struct bug_frame {
>  
>  #endif
>  
> -struct cpu_user_regs;
> -typedef void bug_fn_t(const struct cpu_user_regs *regs);
> -
>  #ifndef run_in_exception_handler
>  
>  /*
>   * TODO: untangle header dependences, break BUILD_BUG_ON() out of xen/lib.h,
>   * and use a real static inline here to get proper type checking of fn().
>   */

I'm pretty sure this TODO can be completed now that we have xen/macros.h

In fact, the fact there's a common run_in_exception_handler() provided
now also helps simplify some of the other cases.


I would much rather that we fix run_in_exception_handler() to use
bug_fn_t than to continue hacking around the breakage.Â  I really don't
think it's terribly complicated to fix now.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 01:52:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 01:52:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654821.1022218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDxN8-00023r-4T; Fri, 15 Dec 2023 01:52:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654821.1022218; Fri, 15 Dec 2023 01:52:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDxN8-00023j-1r; Fri, 15 Dec 2023 01:52:14 +0000
Received: by outflank-mailman (input) for mailman id 654821;
 Fri, 15 Dec 2023 01:52:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j7Oc=H2=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1rDxN6-00023d-SQ
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 01:52:12 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e06f95a-9aec-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 02:52:10 +0100 (CET)
Received: from [IPV6:2601:646:8002:4641:eb14:ad94:2806:1c1a]
 ([IPv6:2601:646:8002:4641:eb14:ad94:2806:1c1a])
 (authenticated bits=0)
 by mail.zytor.com (8.17.2/8.17.1) with ESMTPSA id 3BF1p8ju3422931
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 14 Dec 2023 17:51:09 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e06f95a-9aec-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 3BF1p8ju3422931
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2023121201; t=1702605070;
	bh=V5+Mh+vAvnbIoWj79wEvhgtTOB599w/6t78stUt4jko=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=Ko9BU3RN/mr7W5ck/3mbDE4qKSw33iFOYqtP3Bs8t7H7TxLB+/0ExArIn930tFBEi
	 wWbvQQoYiUA7zMZvjSaeXKgyHzcb9mAkrJ87Z2gsAbhvkmy6EbjDtjTwdW6FMy0FYc
	 VgdPLrTe3CHOz3Xo7SPARoBWimh+KFFFPdBO7jNfjgY9FJtcSQhWgFJV3jlS5Cz7mo
	 S/PJcXtZmE6b+S5qI9ETjyCjHpeMTV7pk75QbVPr9Jlmf7SFThEQoF2YVfA6hc4UAS
	 Kn1skMzQ1FKQeIswTvZJQueASmlEY9ufG5Z+3vml4ygCKhmYWXGplfjznWRxPZLQH2
	 oP8f2Lo3MSN7Q==
Message-ID: <c0c7c605-d487-483e-a034-983b76ee1dfa@zytor.com>
Date: Thu, 14 Dec 2023 17:51:03 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v13 24/35] x86/fred: Add a NMI entry stub for FRED
Content-Language: en-US
To: Xin Li <xin3.li@intel.com>, linux-doc@vger.kernel.org,
        linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org,
        linux-hyperv@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, luto@kernel.org,
        pbonzini@redhat.com, seanjc@google.com, peterz@infradead.org,
        jgross@suse.com, ravi.v.shankar@intel.com, mhiramat@kernel.org,
        andrew.cooper3@citrix.com, jiangshanlai@gmail.com,
        nik.borisov@suse.com, shan.kang@intel.com
References: <20231205105030.8698-1-xin3.li@intel.com>
 <20231205105030.8698-25-xin3.li@intel.com>
From: "H. Peter Anvin" <hpa@zytor.com>
In-Reply-To: <20231205105030.8698-25-xin3.li@intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

So we have recently discovered an overlooked interaction with VT-x. 
Immediately before VMENTER and after VMEXIT, CR2 is live with the 
*guest* CR2. Regardless of if the guest uses FRED or not, this is guest 
state and SHOULD NOT be corrupted. Furthermore, host state MUST NOT leak 
into the guest.

NMIs are blocked on VMEXIT if the cause was an NMI, but not for other 
reasons, so a NMI coming in during this window that then #PFs could 
corrupt the guest CR2.

Intel is exploring ways to close this hole, but for schedule reasons, it 
will not be available at the same time as the first implementation of 
FRED. Therefore, as a workaround, it turns out that the FRED NMI stub 
*will*, unfortunately, have to save and restore CR2 after all when (at 
least) Intel KVM is in use.

Note that this is airtight: it does add a performance penalty to the NMI 
path (two read CR2 in the common case of no #PF), but there is no gap 
during which a bad CR2 value could be introduced in the guest, no matter 
in which sequence the events happen.

In theory the performance penalty could be further reduced by 
conditionalizing this on the NMI happening in the critical region in the 
KVM code, but it seems to be pretty far from necessary to me.

This obviously was an unfortunate oversight on our part, but the 
workaround is simple and doesn't affect any non-NMI paths.

	-hpa

On 12/5/23 02:50, Xin Li wrote:
> +
> +	if (IS_ENABLED(CONFIG_SMP) && arch_cpu_is_offline(smp_processor_id()))
> +		return;
> +

This is cut & paste from elsewhere in the NMI code, but I believe the 
IS_ENABLED() is unnecessary (not to mention ugly): smp_processor_id() 
should always return zero on UP, and arch_cpu_is_offline() reduces to 
!(cpu == 0), so this is a statically true condition on UP.

	-hpa


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 01:52:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 01:52:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654825.1022227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDxNq-0002Yh-CA; Fri, 15 Dec 2023 01:52:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654825.1022227; Fri, 15 Dec 2023 01:52:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDxNq-0002Ya-9U; Fri, 15 Dec 2023 01:52:58 +0000
Received: by outflank-mailman (input) for mailman id 654825;
 Fri, 15 Dec 2023 01: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 1rDxNo-0002YO-Sx; Fri, 15 Dec 2023 01: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 1rDxNo-0000Je-Nl; Fri, 15 Dec 2023 01: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 1rDxNo-0001OW-8z; Fri, 15 Dec 2023 01:52:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rDxNo-0005EO-7Y; Fri, 15 Dec 2023 01:52: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=OH1TZrrHV0yaKLFxqbRlPpLK06QMCY/asXnvQyy2e0k=; b=suY4w56efCNHeTIfSzrh3PfSV9
	C+u0l2zGi0uV+WUcWzvWTTQwUflizZPz/IC8YHdnTSGOe4dVEmJhcGyVLp9LCZkTFhP0BO7OsbCkZ
	3HcS3VakskmgX+WCnzvxRxTbkJU6+N1SBBukaNnwIB6RXtWdXP+N80U67BewRoIlvpBg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184142-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184142: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=3ce5f2d445e51efe2aebaa227a055e5c8522d00b
X-Osstest-Versions-That:
    ovmf=7f5e75895bd6bbfbde191fb8458d324033f76c57
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 15 Dec 2023 01:52:56 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 3ce5f2d445e51efe2aebaa227a055e5c8522d00b
baseline version:
 ovmf                 7f5e75895bd6bbfbde191fb8458d324033f76c57

Last test of basis   184138  2023-12-14 16:44:15 Z    0 days
Testing same since   184142  2023-12-14 22:12:46 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    
 test-amd64-i386-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
   7f5e75895b..3ce5f2d445  3ce5f2d445e51efe2aebaa227a055e5c8522d00b -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:50:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:50:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654832.1022238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyHP-0002QA-8Q; Fri, 15 Dec 2023 02:50:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654832.1022238; Fri, 15 Dec 2023 02: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 1rDyHP-0002Q3-5l; Fri, 15 Dec 2023 02:50:23 +0000
Received: by outflank-mailman (input) for mailman id 654832;
 Fri, 15 Dec 2023 02:50: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=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyHN-0002Pv-2n
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:50:21 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id abf60fd7-9af4-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 03:50:15 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 8A1F38285463;
 Thu, 14 Dec 2023 20:50:13 -0600 (CST)
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 bmues2ljoQog; Thu, 14 Dec 2023 20:50:13 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id EDE098285558;
 Thu, 14 Dec 2023 20:50:12 -0600 (CST)
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 3W1wJtzMBbe9; Thu, 14 Dec 2023 20:50:12 -0600 (CST)
Received: from [10.11.0.2] (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 36E3B8285463;
 Thu, 14 Dec 2023 20:50:12 -0600 (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: abf60fd7-9af4-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com EDE098285558
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608613; bh=M2dCAVskJ5Bbdcz6mR8vjfRrGA1mVbY8VyComlFME8I=;
	h=Message-ID:Date:MIME-Version:To:From;
	b=EgAD4Hql2I95us9FrFWuNXq5lcZByCv/TPakGVVHFHZh6jArDSgBj4XtIhAlE31Cs
	 vk+80EZNxhygmGa/RAeWSBPyjbuqx0Tfkhh25nuLuH45U8M0b+56wNP/2p7frJcSkM
	 rzTngJLqKlkq0DG5N4RiZMhtk6U/1McSDMQoGZI8=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <bd465581-601e-4d7d-a345-6d88740c9e64@raptorengineering.com>
Date: Thu, 14 Dec 2023 20:50:11 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
Content-Language: en-US
To: Julien Grall <julien@xen.org>,
 Timothy Pearson <tpearson@raptorengineering.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Oleksii <oleksii.kurochko@gmail.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
 <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
 <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
 <7e0ea8d9ca0a3a90550eb7b9e65fe86c.squirrel@vali.starlink.edu>
 <1981531f-a919-4569-9b6b-8f962f9d7cfb@xen.org>
 <536439989.51518893.1701471704571.JavaMail.zimbra@raptorengineeringinc.com>
 <4ce0f52f-8a63-4d10-8cea-5c3b905477ec@xen.org>
From: Shawn Anastasio <sanastasio@raptorengineering.com>
In-Reply-To: <4ce0f52f-8a63-4d10-8cea-5c3b905477ec@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi Julien,

Thank you for the feedback. Most of your points will be addressed by
following your suggestion of moving ARM's bootfdt.c to common, but I
wanted to respond with a few points of clarification.

On 12/1/23 5:23 PM, Julien Grall wrote:
> * fdt_get_mem_rsv_paddr(), this is part of the DT is used to reserve
> memory. This was superseed to /reserved-memory, but I wonder how
> widespread this is on PPC?

As far as I can tell, the DT reserve memory map is not used on
PPC/PowerNV. This information is instead communicated through
`reserved-memory` nodes in the DT itself, which the existing code
handles.

> * If am not mistaken you are adding the Xen module as BOOTMOD_KERNEL,
> however this is meant to be used for the domain kernel. Xen should be
> BOOTMOD_XEN.

Thank you for pointing this out -- BOOTMOD_XEN is indeed the correct
choice here.

> I hope that helps.
> 
> Cheers,
>

Thanks,
Shawn



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:52:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654834.1022248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJQ-0002yw-Km; Fri, 15 Dec 2023 02:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654834.1022248; Fri, 15 Dec 2023 02: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 1rDyJQ-0002yp-Hu; Fri, 15 Dec 2023 02:52:28 +0000
Received: by outflank-mailman (input) for mailman id 654834;
 Fri, 15 Dec 2023 02:52:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyJP-0002yh-RP
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:52:27 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f9f7ef5c-9af4-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 03:52:26 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id DDBC58285463;
 Thu, 14 Dec 2023 20:52:24 -0600 (CST)
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 PB9qqedX0N4j; Thu, 14 Dec 2023 20:52:24 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 5AD1A8285558;
 Thu, 14 Dec 2023 20:52:24 -0600 (CST)
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 qnhnRQcWb2BQ; Thu, 14 Dec 2023 20:52:24 -0600 (CST)
Received: from [10.11.0.2] (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id E83A58285463;
 Thu, 14 Dec 2023 20:52:23 -0600 (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: f9f7ef5c-9af4-11ee-98ea-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 5AD1A8285558
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608744; bh=je1/038gDPWcBkKuI2BLJBDrybC8NWy5sL6lNWqQTtI=;
	h=Message-ID:Date:MIME-Version:To:From;
	b=AziBbRlAoB05qdJoPatF0fMQRqkNFOzKoA769y786Wvm4DscIdppSZkdvqKL8P6cX
	 898dzV2MbVHELiD5McUXayQ7g0v3sadBlx6u6wz71doy+85JtT7tAtXlFzeyCY68cm
	 owxDd8nDEtM1OiPX/uoDeU0Eq/4tUo1G1FXx9r+k=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <838f9aaf-a5ef-44f7-945a-7ea682cd6f0f@raptorengineering.com>
Date: Thu, 14 Dec 2023 20:52:23 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/3] Early Boot Allocation on Power
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
 <be3936a2-22e6-4528-90f3-a5a5629754ba@suse.com>
From: Shawn Anastasio <sanastasio@raptorengineering.com>
In-Reply-To: <be3936a2-22e6-4528-90f3-a5a5629754ba@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi Jan,

On 12/4/23 1:58 AM, Jan Beulich wrote:
> A standalone patch with this title was sent earlier. What's their
> interrelation?
> 

I had intended to prefix this patch with 'RESEND' to clarify that it is
the same as the one previously sent, but seem to have forgotten. My
apologies! In any case, this patch will be superseded in v2 of the
series.

> Jan
>

Thanks,
Shawn


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:52:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:52:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654835.1022258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJf-0003K1-Sl; Fri, 15 Dec 2023 02:52:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654835.1022258; Fri, 15 Dec 2023 02:52:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJf-0003Jp-PR; Fri, 15 Dec 2023 02:52:43 +0000
Received: by outflank-mailman (input) for mailman id 654835;
 Fri, 15 Dec 2023 02:52: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=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyJe-0002yh-Ri
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:52:42 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03c9522a-9af5-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 03:52:42 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 6C3DE8285AE9;
 Thu, 14 Dec 2023 20:52:41 -0600 (CST)
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 4QWcbhvCeJov; Thu, 14 Dec 2023 20:52:40 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id BF0068285558;
 Thu, 14 Dec 2023 20:52:40 -0600 (CST)
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 5aQeFJSzNbJ0; Thu, 14 Dec 2023 20:52:40 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 57EF08285463;
 Thu, 14 Dec 2023 20:52:40 -0600 (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: 03c9522a-9af5-11ee-98ea-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com BF0068285558
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608760; bh=aoCOeO7z9bNlnTw9oM+Zje9/i964p+H4GGuD02MWEqQ=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=ksPM5YUSgMXmAyEjD8ifbnkrzYLhdE/AuWsLNPHd66YMTxQ2NtbqGv0oFT50cjvKt
	 TuBvm7ylUlaBbJ9dwNjeB8LBswtaoGRrWgqSpAAkSiSkCbybK1Q9chdgkes98xhqRR
	 /vevvnJDsF/eLd54flSrOKyNA6zY1lz1NIJ+/+SQ=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v2 0/7] Early Boot Allocation on Power
Date: Thu, 14 Dec 2023 20:43:55 -0600
Message-Id: <cover.1702607884.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Hello all,

This series enables the Xen boot time allocator on Power by parsing
the available memory regions from the firmware-provided device tree.

As suggested during review of v1, this is now accomplished by moving
Arm's bootfdt.c into xen/common, along with a few modifications to
adapt it to Power -- namely to tolerate a device tree with no memory
reserve map entries and to tolerate an FDT that overlaps with the a
reserved memory region.

Additionally, the final patch of the series updates the radix mmu
code to use the newly-enabled boot allocator for the Partition and
Process tables, instead of statically allocating them like was
previously done. Among other things, switching to run-time allocation
allows us to allocate a full-sized Process Table instead of the
minimal one that was previously used to keep the Xen binary size small.

Thanks,
Shawn

Shawn Anastasio (7):
  xen/asm-generic: Introduce generic static-shmem.h
  xen/asm-generic: Introduce generic setup.h
  xen/common: Move Arm's bootfdt to common
  xen/device-tree: Fix bootfdt.c to tolerate 0 reserved regions
  xen/ppc: Enable bootfdt and boot allocator
  xen/ppc: mm-radix: Replace debug printing code with printk
  xen/ppc: mm-radix: Allocate Partition and Process Tables at runtime

 xen/arch/arm/Makefile                         |   1 -
 xen/arch/ppc/include/asm/Makefile             |   1 +
 xen/arch/ppc/include/asm/setup.h              | 117 +++++++
 xen/arch/ppc/mm-radix.c                       | 199 ++++++------
 xen/arch/ppc/setup.c                          | 289 +++++++++++++++++-
 xen/common/Makefile                           |   1 +
 xen/common/device-tree/Makefile               |   1 +
 .../arm => common/device-tree}/bootfdt.c      |  45 ++-
 xen/include/asm-generic/setup.h               | 148 +++++++++
 xen/include/asm-generic/static-shmem.h        |  12 +
 10 files changed, 698 insertions(+), 116 deletions(-)
 create mode 100644 xen/common/device-tree/Makefile
 rename xen/{arch/arm => common/device-tree}/bootfdt.c (93%)
 create mode 100644 xen/include/asm-generic/setup.h
 create mode 100644 xen/include/asm-generic/static-shmem.h

--
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:52:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:52:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654836.1022267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJh-0003b8-8S; Fri, 15 Dec 2023 02:52:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654836.1022267; Fri, 15 Dec 2023 02: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 1rDyJh-0003b1-5l; Fri, 15 Dec 2023 02:52:45 +0000
Received: by outflank-mailman (input) for mailman id 654836;
 Fri, 15 Dec 2023 02:52: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=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyJg-0002yh-1y
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:52:44 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 046989a9-9af5-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 03:52:43 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 797D682867CE;
 Thu, 14 Dec 2023 20:52:42 -0600 (CST)
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 n4h2h6g4EhV5; Thu, 14 Dec 2023 20:52:41 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 6DED582867CC;
 Thu, 14 Dec 2023 20:52:41 -0600 (CST)
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 t9I7Qbp6PaBD; Thu, 14 Dec 2023 20:52:41 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 0B5508285463;
 Thu, 14 Dec 2023 20:52:41 -0600 (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: 046989a9-9af5-11ee-98ea-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 6DED582867CC
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608761; bh=xuXZQRjjBFlAEEWI2+xfJ/TIf6aMhn0vjL1+nXTvXR8=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=g0aLQ9Rq6c1615MM3uO5YF0hpHgZtrd24SJlVYziAR4XGHZqmB/0Fq+9ZiEDBKdYB
	 TzLzP3aP1ISCSw+VWL6lasRWnv/I3ktJQy07hDcCWKmtFOmKrHsomMqaZ0F6Efg1hk
	 C1BLNvjKDJXPYSIzbTG0YCNrbeHE8x/VXwgrptLA=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v2 2/7] xen/asm-generic: Introduce generic setup.h
Date: Thu, 14 Dec 2023 20:43:57 -0600
Message-Id: <1e4f48d753871bf61de3af97a3009e069d25d01e.1702607884.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1702607884.git.sanastasio@raptorengineering.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Introduce setup.h to asm-generic based off of ARM's to define all
stubs necessary to compile bootfdt.c

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/arch/ppc/include/asm/Makefile |   1 +
 xen/arch/ppc/include/asm/setup.h  |   6 --
 xen/include/asm-generic/setup.h   | 148 ++++++++++++++++++++++++++++++
 3 files changed, 149 insertions(+), 6 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/setup.h
 create mode 100644 xen/include/asm-generic/setup.h

diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index a711cfa856..7167661f86 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -6,5 +6,6 @@ generic-y += iocap.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
+generic-y += setup.h
 generic-y += static-shmem.h
 generic-y += vm_event.h
diff --git a/xen/arch/ppc/include/asm/setup.h b/xen/arch/ppc/include/asm/setup.h
deleted file mode 100644
index e4f64879b6..0000000000
--- a/xen/arch/ppc/include/asm/setup.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_PPC_SETUP_H__
-#define __ASM_PPC_SETUP_H__
-
-#define max_init_domid (0)
-
-#endif /* __ASM_PPC_SETUP_H__ */
diff --git a/xen/include/asm-generic/setup.h b/xen/include/asm-generic/setup.h
new file mode 100644
index 0000000000..0262ad49f9
--- /dev/null
+++ b/xen/include/asm-generic/setup.h
@@ -0,0 +1,148 @@
+#ifndef __ASM_GENERIC_SETUP_H__
+#define __ASM_GENERIC_SETUP_H__
+
+#define max_init_domid (0)
+
+#include <xen/bug.h>
+
+#include <public/version.h>
+#include <asm/p2m.h>
+#include <xen/device_tree.h>
+
+#define MIN_FDT_ALIGN 8
+#define MAX_FDT_SIZE SZ_2M
+
+#define NR_MEM_BANKS 256
+
+#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,
+};
+
+/* Indicates the maximum number of characters(\0 included) for shm_id */
+#define MAX_SHM_ID_LENGTH 16
+
+struct membank {
+    paddr_t start;
+    paddr_t size;
+    enum membank_type type;
+};
+
+struct meminfo {
+    unsigned int nr_banks;
+    struct membank bank[NR_MEM_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;
+    struct meminfo reserved_mem;
+    struct bootmodules modules;
+    struct bootcmdlines cmdlines;
+    bool static_heap;
+};
+
+extern struct bootinfo bootinfo;
+
+/*
+ * setup.c
+ */
+
+static inline bool check_reserved_regions_overlap(paddr_t region_start,
+                                                  paddr_t region_size)
+{
+    /* Not implemented on GENERIC */
+    BUG();
+}
+
+static inline struct bootmodule *add_boot_module(bootmodule_kind kind,
+                                                 paddr_t start, paddr_t size,
+                                                 bool domU)
+{
+    /* Not implemented on GENERIC */
+    BUG();
+}
+
+static inline void add_boot_cmdline(const char *name, const char *cmdline,
+                                    bootmodule_kind kind, paddr_t start,
+                                    bool domU)
+{
+    /* Not implemented on GENERIC */
+    BUG();
+}
+
+static inline const char *boot_module_kind_as_string(bootmodule_kind kind)
+{
+    /* Not implemented on GENERIC */
+    BUG();
+}
+
+static inline struct bootcmdline *boot_cmdline_find_by_kind(
+    bootmodule_kind kind)
+{
+    /* Not implemented on GENERIC */
+    BUG();
+}
+
+#endif /* __ASM_GENERIC_SETUP_H__ */
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:52:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:52:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654837.1022278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJi-0003rZ-J4; Fri, 15 Dec 2023 02:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654837.1022278; Fri, 15 Dec 2023 02: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 1rDyJi-0003rI-FB; Fri, 15 Dec 2023 02:52:46 +0000
Received: by outflank-mailman (input) for mailman id 654837;
 Fri, 15 Dec 2023 02:52:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyJg-0003SX-Ke
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:52:44 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 04116fc3-9af5-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 03:52:42 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id AAB288285463;
 Thu, 14 Dec 2023 20:52:41 -0600 (CST)
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 SN6EouxCpzyy; Thu, 14 Dec 2023 20:52:41 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 0BDBE8286129;
 Thu, 14 Dec 2023 20:52:41 -0600 (CST)
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 Dw2MKnTmA0Dd; Thu, 14 Dec 2023 20:52:40 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id AB05D8285AE9;
 Thu, 14 Dec 2023 20:52:40 -0600 (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: 04116fc3-9af5-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 0BDBE8286129
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608761; bh=A+G8Y/mAKwwr+YfqhBvn2P9VeSV+LGNGsCJ+HQ4NXzE=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=RNjC36g1Zwt5bABtXwyRXUrFADTeu2GyXlZh8G/cOfRuohZ7q/6KoC4A4axhjqA9c
	 nT+qGICCqdGia9B4M1B9cLa4sbwvA0oE0irLmwGyCjsp7OAAWpe23CgwflBJNOlF0E
	 sioJsuzlDE3OOeDITyC5UGf/hE76UTpEVVwrwgN0=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v2 1/7] xen/asm-generic: Introduce generic static-shmem.h
Date: Thu, 14 Dec 2023 20:43:56 -0600
Message-Id: <ea548f9c6cefff54dadf83446d4f5c721281f247.1702607884.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1702607884.git.sanastasio@raptorengineering.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Introduce static-shmem.h to asm-generic as a prerequisite for moving
ARM's bootfdt.c into xen/common.

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/arch/ppc/include/asm/Makefile      |  1 +
 xen/include/asm-generic/static-shmem.h | 12 ++++++++++++
 2 files changed, 13 insertions(+)
 create mode 100644 xen/include/asm-generic/static-shmem.h

diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index 2da995bb2f..a711cfa856 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -6,4 +6,5 @@ generic-y += iocap.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
+generic-y += static-shmem.h
 generic-y += vm_event.h
diff --git a/xen/include/asm-generic/static-shmem.h b/xen/include/asm-generic/static-shmem.h
new file mode 100644
index 0000000000..d45c44a419
--- /dev/null
+++ b/xen/include/asm-generic/static-shmem.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier:  GPL-2.0-only */
+
+#ifndef __ASM_GENERIC_STATIC_SHMEM_H__
+#define __ASM_GENERIC_STATIC_SHMEM_H__
+
+static inline int process_shm_node(const void *fdt, int node,
+                                   uint32_t address_cells, uint32_t size_cells)
+{
+    return -EINVAL;
+}
+
+#endif /* __ASM_GENERIC_STATIC_SHMEM_H__ */
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:52:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654838.1022283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJi-0003tF-VJ; Fri, 15 Dec 2023 02:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654838.1022283; Fri, 15 Dec 2023 02: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 1rDyJi-0003sb-OH; Fri, 15 Dec 2023 02:52:46 +0000
Received: by outflank-mailman (input) for mailman id 654838;
 Fri, 15 Dec 2023 02: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=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyJh-0002yh-9g
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:52:45 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0514dcdf-9af5-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 03:52:44 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 8CB878285558;
 Thu, 14 Dec 2023 20:52:43 -0600 (CST)
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 6BPePTQqDQM2; Thu, 14 Dec 2023 20:52:42 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id E70A78286129;
 Thu, 14 Dec 2023 20:52:41 -0600 (CST)
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 7y2vHdqhNRYr; Thu, 14 Dec 2023 20:52:41 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 560CE8286790;
 Thu, 14 Dec 2023 20:52:41 -0600 (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: 0514dcdf-9af5-11ee-98ea-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com E70A78286129
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608761; bh=1DibHtcfh6jkTS269svt4kmE2LEah8edNOuQ9qxlV+s=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=uJ6J6of4YCWZ2BvZaBL42Zh0KGb+aS3r7OPWFmBNtTCNdvcnahgouNKeSv7eW0ozq
	 VBXLk3LeAj8szrkuI5r76Dq/RQtRttaZqj1Fnog43orLBoLQMbCfmQFzTtuigW2HnO
	 qbcnOAMEQn8OCxKio8Bc3GTNEmzZkOhXwxwr8N5I=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Julien Grall <julien@xen.org>
Subject: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common
Date: Thu, 14 Dec 2023 20:43:58 -0600
Message-Id: <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1702607884.git.sanastasio@raptorengineering.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Move Arm's bootfdt.c to xen/common so that it can be used by other
device tree architectures like PPC and RISCV. Only a minor change to
conditionalize a call to a function only available on EFI-supporting
targets was made to the code itself.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/arch/arm/Makefile                          |  1 -
 xen/common/Makefile                            |  1 +
 xen/common/device-tree/Makefile                |  1 +
 xen/{arch/arm => common/device-tree}/bootfdt.c | 15 +++++++++------
 4 files changed, 11 insertions(+), 7 deletions(-)
 create mode 100644 xen/common/device-tree/Makefile
 rename xen/{arch/arm => common/device-tree}/bootfdt.c (98%)

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 33c677672f..64fdf84170 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/common/Makefile b/xen/common/Makefile
index 69d6aa626c..6e175626d5 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..66c2500df9
--- /dev/null
+++ b/xen/common/device-tree/Makefile
@@ -0,0 +1 @@
+obj-y += bootfdt.init.o
diff --git a/xen/arch/arm/bootfdt.c b/xen/common/device-tree/bootfdt.c
similarity index 98%
rename from xen/arch/arm/bootfdt.c
rename to xen/common/device-tree/bootfdt.c
index f496a8cf94..ae9fa1e3d6 100644
--- a/xen/arch/arm/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -431,12 +431,15 @@ static int __init early_scan_node(const void *fdt,
 {
     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") )
+    if ( device_tree_node_matches(fdt, node, "memory") )
+#if defined(CONFIG_ARM_EFI)
+        /*
+         * If Xen has been booted via UEFI, the memory banks are
+         * populated. So we should skip the parsing.
+         */
+        if ( efi_enabled(EFI_BOOT) )
+            return rc;
+#endif
         rc = process_memory_node(fdt, node, name, depth,
                                  address_cells, size_cells, &bootinfo.mem);
     else if ( depth == 1 && !dt_node_cmp(name, "reserved-memory") )
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:52:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654839.1022289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJj-00041I-EJ; Fri, 15 Dec 2023 02:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654839.1022289; Fri, 15 Dec 2023 02:52:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJj-00040J-55; Fri, 15 Dec 2023 02:52:47 +0000
Received: by outflank-mailman (input) for mailman id 654839;
 Fri, 15 Dec 2023 02:52:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyJi-0003SX-8s
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:52:46 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 055090b1-9af5-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 03:52:44 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id DC6CA82867CC;
 Thu, 14 Dec 2023 20:52:43 -0600 (CST)
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 hr1Mi86VvOGp; Thu, 14 Dec 2023 20:52:42 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 4A5DC8286790;
 Thu, 14 Dec 2023 20:52:42 -0600 (CST)
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 kFWfp9NhR9_k; Thu, 14 Dec 2023 20:52:42 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id EBAC282867CE;
 Thu, 14 Dec 2023 20:52:41 -0600 (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: 055090b1-9af5-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 4A5DC8286790
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608762; bh=Abuhdt8ZljNVI1itjtnL52V9CIwnwao7c1+uXWvjbAk=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=CU4MRvuqVnzdeeXxGSnwZpyYynd8karBdYPlpkyNpnMM25lItLZv/ehjmWjsVN8QU
	 7EUoBnvtsL/2lBvUi3Z7OmgceOjH8JKCBPD5xi8XeeRrMPHnjPkSQCYM2dKlkdH4ip
	 k1wYpTcWTehLvNZxtSzUdDbTQxK8jk1sYeMRWVvs=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v2 4/7] xen/device-tree: Fix bootfdt.c to tolerate 0 reserved regions
Date: Thu, 14 Dec 2023 20:43:59 -0600
Message-Id: <1c6f0f94f4ea2b773f960d88bd02e2168ac28abb.1702607884.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1702607884.git.sanastasio@raptorengineering.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

The early_print_info routine in bootfdt.c incorrectly stores the result
of a call to fdt_num_mem_rsv() in an unsigned int, which results in the
negative error code being interpreted incorrectly in a subsequent loop
in the case where the device tree does not contain any memory reserve
map entries.

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/common/device-tree/bootfdt.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index ae9fa1e3d6..796ac01c18 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -466,7 +466,8 @@ static void __init early_print_info(void)
     struct meminfo *mem_resv = &bootinfo.reserved_mem;
     struct bootmodules *mods = &bootinfo.modules;
     struct bootcmdlines *cmds = &bootinfo.cmdlines;
-    unsigned int i, j, nr_rsvd;
+    unsigned int i, j;
+    int nr_rsvd;
 
     for ( i = 0; i < mi->nr_banks; i++ )
         printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
@@ -481,7 +482,7 @@ static void __init early_print_info(void)
                 boot_module_kind_as_string(mods->module[i].kind));
 
     nr_rsvd = fdt_num_mem_rsv(device_tree_flattened);
-    for ( i = 0; i < nr_rsvd; i++ )
+    for ( i = 0; nr_rsvd > 0 && i < nr_rsvd; i++ )
     {
         paddr_t s, e;
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:52:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654840.1022297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJk-0004CF-0D; Fri, 15 Dec 2023 02:52:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654840.1022297; Fri, 15 Dec 2023 02:52:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJj-00048m-NM; Fri, 15 Dec 2023 02:52:47 +0000
Received: by outflank-mailman (input) for mailman id 654840;
 Fri, 15 Dec 2023 02:52:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyJi-0002yh-Et
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:52:46 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05c8c75b-9af5-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 03:52:45 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id C21728285463;
 Thu, 14 Dec 2023 20:52:44 -0600 (CST)
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 0f5zos89AOXS; Thu, 14 Dec 2023 20:52:44 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id DDA77828698C;
 Thu, 14 Dec 2023 20:52:43 -0600 (CST)
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 rDbIojDsXB3J; Thu, 14 Dec 2023 20:52:43 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id E2FB182868E0;
 Thu, 14 Dec 2023 20:52:42 -0600 (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: 05c8c75b-9af5-11ee-98ea-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com DDA77828698C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608763; bh=omGeWwxxs1EefNj9oLx+tt5P0J41D7DMHK4/6rhqXn8=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=JycP26csV4eCNTiWpwYj0UO1/1zMIq/ZdY4Vho8OAcEWRnTNRR0fasALiSnxiJFiE
	 AY1j+f/dhj3GBPqFEIVY8OuFoU4UGnoErZPCda9BL732szXoFY5Qg0YZJnE34oucvV
	 KVfpHH8JjwtSPDcggbVfGm/W5+l4w+QoEWSiBDAk=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v2 7/7] xen/ppc: mm-radix: Allocate Partition and Process Tables at runtime
Date: Thu, 14 Dec 2023 20:44:02 -0600
Message-Id: <f49a4a372a9f82e217fa56ba0dc3068deff32ef5.1702607884.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1702607884.git.sanastasio@raptorengineering.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

In the initial mm-radix implementation, the in-memory partition and
process tables required to configure the MMU were allocated statically
since the boot allocator was not yet available.

Now that it is, allocate these tables at runtime and bump the size of
the Process Table to its maximum supported value (on POWER9). Also bump
the number of static LVL2/3 PD frames to tolerate cases where the boot
allocator returns an address outside of the range of the LVL2 frame used
for Xen.

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in v2:
  - Bump LVL2/3 PD count to 3 to avoid running out in case the boot
  allocator returns a suitably high address.

 xen/arch/ppc/mm-radix.c | 169 +++++++++++++++++++++++-----------------
 1 file changed, 97 insertions(+), 72 deletions(-)

diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index de181cf6f1..e5604d8fb3 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -22,7 +22,7 @@ void enable_mmu(void);
 #endif

 #define INITIAL_LVL1_PD_COUNT      1
-#define INITIAL_LVL2_LVL3_PD_COUNT 2
+#define INITIAL_LVL2_LVL3_PD_COUNT 3
 #define INITIAL_LVL4_PT_COUNT      256

 static size_t __initdata initial_lvl1_pd_pool_used;
@@ -34,17 +34,13 @@ static struct lvl2_pd initial_lvl2_lvl3_pd_pool[INITIAL_LVL2_LVL3_PD_COUNT];
 static size_t __initdata initial_lvl4_pt_pool_used;
 static struct lvl4_pt initial_lvl4_pt_pool[INITIAL_LVL4_PT_COUNT];

-/* Only reserve minimum Partition and Process tables  */
 #define PATB_SIZE_LOG2 16 /* Only supported partition table size on POWER9 */
 #define PATB_SIZE      (1UL << PATB_SIZE_LOG2)
-#define PRTB_SIZE_LOG2 12
+#define PRTB_SIZE_LOG2 24 /* Maximum process table size on POWER9 */
 #define PRTB_SIZE      (1UL << PRTB_SIZE_LOG2)

-static struct patb_entry
-    __aligned(PATB_SIZE) initial_patb[PATB_SIZE / sizeof(struct patb_entry)];
-
-static struct prtb_entry
-    __aligned(PRTB_SIZE) initial_prtb[PRTB_SIZE / sizeof(struct prtb_entry)];
+static struct patb_entry *initial_patb;
+static struct prtb_entry *initial_prtb;

 static __init struct lvl1_pd *lvl1_pd_pool_alloc(void)
 {
@@ -86,6 +82,62 @@ static __init struct lvl4_pt *lvl4_pt_pool_alloc(void)
     return &initial_lvl4_pt_pool[initial_lvl4_pt_pool_used++];
 }

+static void map_page_initial(struct lvl1_pd *lvl1, vaddr_t virt, paddr_t phys,
+                             unsigned long flags)
+{
+    struct lvl2_pd *lvl2;
+    struct lvl3_pd *lvl3;
+    struct lvl4_pt *lvl4;
+    pde_t *pde;
+    pte_t *pte;
+
+    /* Allocate LVL 2 PD if necessary */
+    pde = pt_entry(lvl1, virt);
+    if ( !pde_is_valid(*pde) )
+    {
+        lvl2 = lvl2_pd_pool_alloc();
+        *pde = paddr_to_pde(__pa(lvl2), PDE_VALID,
+                            XEN_PT_ENTRIES_LOG2_LVL_2);
+    }
+    else
+        lvl2 = __va(pde_to_paddr(*pde));
+
+    /* Allocate LVL 3 PD if necessary */
+    pde = pt_entry(lvl2, virt);
+    if ( !pde_is_valid(*pde) )
+    {
+        lvl3 = lvl3_pd_pool_alloc();
+        *pde = paddr_to_pde(__pa(lvl3), PDE_VALID,
+                            XEN_PT_ENTRIES_LOG2_LVL_3);
+    }
+    else
+        lvl3 = __va(pde_to_paddr(*pde));
+
+    /* Allocate LVL 4 PT if necessary */
+    pde = pt_entry(lvl3, virt);
+    if ( !pde_is_valid(*pde) )
+    {
+        lvl4 = lvl4_pt_pool_alloc();
+        *pde = paddr_to_pde(__pa(lvl4), PDE_VALID,
+                            XEN_PT_ENTRIES_LOG2_LVL_4);
+    }
+    else
+        lvl4 = __va(pde_to_paddr(*pde));
+
+    /* Finally, create PTE in LVL 4 PT */
+    pte = pt_entry(lvl4, virt);
+    if ( !pte_is_valid(*pte) )
+    {
+        radix_dprintk("%016lx being mapped to %016lx\n", phys, virt);
+        *pte = paddr_to_pte(phys, flags);
+    }
+    else
+    {
+        early_printk("BUG: Tried to create PTE for already-mapped page!");
+        die();
+    }
+}
+
 static void __init setup_initial_mapping(struct lvl1_pd *lvl1,
                                          vaddr_t map_start,
                                          vaddr_t map_end,
@@ -105,80 +157,43 @@ static void __init setup_initial_mapping(struct lvl1_pd *lvl1,
         die();
     }

+    /* Identity map Xen itself */
     for ( page_addr = map_start; page_addr < map_end; page_addr += PAGE_SIZE )
     {
-        struct lvl2_pd *lvl2;
-        struct lvl3_pd *lvl3;
-        struct lvl4_pt *lvl4;
-        pde_t *pde;
-        pte_t *pte;
-
-        /* Allocate LVL 2 PD if necessary */
-        pde = pt_entry(lvl1, page_addr);
-        if ( !pde_is_valid(*pde) )
-        {
-            lvl2 = lvl2_pd_pool_alloc();
-            *pde = paddr_to_pde(__pa(lvl2), PDE_VALID,
-                                XEN_PT_ENTRIES_LOG2_LVL_2);
-        }
-        else
-            lvl2 = __va(pde_to_paddr(*pde));
+        unsigned long flags;

-        /* Allocate LVL 3 PD if necessary */
-        pde = pt_entry(lvl2, page_addr);
-        if ( !pde_is_valid(*pde) )
+        if ( is_kernel_text(page_addr) || is_kernel_inittext(page_addr) )
         {
-            lvl3 = lvl3_pd_pool_alloc();
-            *pde = paddr_to_pde(__pa(lvl3), PDE_VALID,
-                                XEN_PT_ENTRIES_LOG2_LVL_3);
+            radix_dprintk("%016lx being marked as TEXT (RX)\n", page_addr);
+            flags = PTE_XEN_RX;
         }
-        else
-            lvl3 = __va(pde_to_paddr(*pde));
-
-        /* Allocate LVL 4 PT if necessary */
-        pde = pt_entry(lvl3, page_addr);
-        if ( !pde_is_valid(*pde) )
-        {
-            lvl4 = lvl4_pt_pool_alloc();
-            *pde = paddr_to_pde(__pa(lvl4), PDE_VALID,
-                                XEN_PT_ENTRIES_LOG2_LVL_4);
-        }
-        else
-            lvl4 = __va(pde_to_paddr(*pde));
-
-        /* Finally, create PTE in LVL 4 PT */
-        pte = pt_entry(lvl4, page_addr);
-        if ( !pte_is_valid(*pte) )
+        else if ( is_kernel_rodata(page_addr) )
         {
-            unsigned long paddr = (page_addr - map_start) + phys_base;
-            unsigned long flags;
-
-            radix_dprintk("%016lx being mapped to %016lx\n", paddr, page_addr);
-            if ( is_kernel_text(page_addr) || is_kernel_inittext(page_addr) )
-            {
-                radix_dprintk("%016lx being marked as TEXT (RX)\n", page_addr);
-                flags = PTE_XEN_RX;
-            }
-            else if ( is_kernel_rodata(page_addr) )
-            {
-                radix_dprintk("%016lx being marked as RODATA (RO)\n", page_addr);
-                flags = PTE_XEN_RO;
-            }
-            else
-            {
-                radix_dprintk("%016lx being marked as DEFAULT (RW)\n", page_addr);
-                flags = PTE_XEN_RW;
-            }
-
-            *pte = paddr_to_pte(paddr, flags);
-            radix_dprintk("%016lx is the result of PTE map\n",
-                paddr_to_pte(paddr, flags).pte);
+            radix_dprintk("%016lx being marked as RODATA (RO)\n", page_addr);
+            flags = PTE_XEN_RO;
         }
         else
         {
-            early_printk("BUG: Tried to create PTE for already-mapped page!");
-            die();
+            radix_dprintk("%016lx being marked as DEFAULT (RW)\n", page_addr);
+            flags = PTE_XEN_RW;
         }
+
+        map_page_initial(lvl1, page_addr, (page_addr - map_start) + phys_base, flags);
+    }
+
+    /* Map runtime-allocated PATB, PRTB */
+    for ( page_addr = (uint64_t)initial_patb;
+          page_addr < (uint64_t)initial_patb + PATB_SIZE;
+          page_addr += PAGE_SIZE )
+    {
+        map_page_initial(lvl1, page_addr, __pa(page_addr), PTE_XEN_RW);
+    }
+
+    for ( page_addr = (uint64_t)initial_prtb;
+          page_addr < (uint64_t)initial_prtb + PRTB_SIZE;
+          page_addr += PAGE_SIZE )
+    {
+        map_page_initial(lvl1, page_addr, __pa(page_addr), PTE_XEN_RW);
     }
 }

@@ -210,6 +225,16 @@ void __init setup_initial_pagetables(void)
 {
     struct lvl1_pd *root = lvl1_pd_pool_alloc();
     unsigned long lpcr;
+    mfn_t patb_mfn, prtb_mfn;
+
+    /* Allocate mfns for in-memory tables using the boot allocator */
+    prtb_mfn = alloc_boot_pages(PRTB_SIZE / PAGE_SIZE,
+                                max(1, PRTB_SIZE_LOG2 - PAGE_SHIFT));
+    patb_mfn = alloc_boot_pages(PATB_SIZE / PAGE_SIZE,
+                                max(1, PATB_SIZE_LOG2 - PAGE_SHIFT));
+
+    initial_patb = __va(mfn_to_maddr(patb_mfn));
+    initial_prtb = __va(mfn_to_maddr(prtb_mfn));

     setup_initial_mapping(root, (vaddr_t)_start, (vaddr_t)_end, __pa(_start));

--
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:52:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654841.1022303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJk-0004Or-Ll; Fri, 15 Dec 2023 02:52:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654841.1022303; Fri, 15 Dec 2023 02:52:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJk-0004Ld-Gz; Fri, 15 Dec 2023 02:52:48 +0000
Received: by outflank-mailman (input) for mailman id 654841;
 Fri, 15 Dec 2023 02:52:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyJi-0003SX-Fr
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:52:46 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 05535a5c-9af5-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 03:52:44 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id E120F82869E4;
 Thu, 14 Dec 2023 20:52:43 -0600 (CST)
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 gRVHeYDAcCqB; Thu, 14 Dec 2023 20:52:43 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id F32ED8285AE9;
 Thu, 14 Dec 2023 20:52:42 -0600 (CST)
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 VVV1gIaDpdrw; Thu, 14 Dec 2023 20:52:42 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 9FEE482867CC;
 Thu, 14 Dec 2023 20:52:42 -0600 (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: 05535a5c-9af5-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com F32ED8285AE9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608763; bh=PTGVv84Ek2dEZO/cpvmXSIJIyqcsMRVxyQ3qXqyT7ic=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=V0JrNFGfk5JrqXkpR+jqEi4H74pr+w7xYdb92PDe3Urjo6d9f0+T35wmhoE7PEdoy
	 QTo2NeHHFS2lnU6VSkyQraMkSmMuEzqeDzftVTA9CM1F/E2HYl+fW1xU4J1L+elrod
	 hEIhmXDgVs5bGs1jltTtnGREmEl51LPpNZEbCuyM=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v2 6/7] xen/ppc: mm-radix: Replace debug printing code with printk
Date: Thu, 14 Dec 2023 20:44:01 -0600
Message-Id: <a45e841068ef66cc8c1d836a2452910fd3effd50.1702607884.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1702607884.git.sanastasio@raptorengineering.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Now that we have common code building, there's no need to keep the old
itoa64+debug print function in mm-radix.c

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/arch/ppc/mm-radix.c | 58 +++++++++--------------------------------
 1 file changed, 12 insertions(+), 46 deletions(-)

diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index daa411a6fa..de181cf6f1 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -15,6 +15,12 @@
 
 void enable_mmu(void);
 
+#ifdef NDEBUG
+#define radix_dprintk(...)
+#else
+#define radix_dprintk(msg, ...) printk(XENLOG_DEBUG msg, ## __VA_ARGS__)
+#endif
+
 #define INITIAL_LVL1_PD_COUNT      1
 #define INITIAL_LVL2_LVL3_PD_COUNT 2
 #define INITIAL_LVL4_PT_COUNT      256
@@ -80,45 +86,6 @@ static __init struct lvl4_pt *lvl4_pt_pool_alloc(void)
     return &initial_lvl4_pt_pool[initial_lvl4_pt_pool_used++];
 }
 
-#ifndef NDEBUG
-/* TODO: Remove once we get common/ building */
-static char *__init itoa64_hex(uint64_t val, char *out_buf, size_t buf_len)
-{
-    uint64_t cur;
-    size_t i = buf_len - 1;
-
-    /* Null terminate buffer */
-    out_buf[i] = '\0';
-
-    /* Add digits in reverse */
-    cur = val;
-    while ( cur && i > 0 )
-    {
-        out_buf[--i] = "0123456789ABCDEF"[cur % 16];
-        cur /= 16;
-    }
-
-    /* Pad to 16 digits */
-    while ( i > 0 )
-        out_buf[--i] = '0';
-
-    return out_buf + i;
-}
-#endif
-
-static void __init radix_dprint(uint64_t addr, const char *msg)
-{
-#ifndef NDEBUG
-    char buf[sizeof("DEADBEEFCAFEBABA")];
-    char *addr_s = itoa64_hex(addr, buf, sizeof(buf));
-
-    early_printk("(0x");
-    early_printk(addr_s);
-    early_printk(") ");
-    early_printk(msg);
-#endif
-}
-
 static void __init setup_initial_mapping(struct lvl1_pd *lvl1,
                                          vaddr_t map_start,
                                          vaddr_t map_end,
@@ -186,27 +153,26 @@ static void __init setup_initial_mapping(struct lvl1_pd *lvl1,
             unsigned long paddr = (page_addr - map_start) + phys_base;
             unsigned long flags;
 
-            radix_dprint(paddr, "being mapped to ");
-            radix_dprint(page_addr, "!\n");
+            radix_dprintk("%016lx being mapped to %016lx\n", paddr, page_addr);
             if ( is_kernel_text(page_addr) || is_kernel_inittext(page_addr) )
             {
-                radix_dprint(page_addr, "being marked as TEXT (RX)\n");
+                radix_dprintk("%016lx being marked as TEXT (RX)\n", page_addr);
                 flags = PTE_XEN_RX;
             }
             else if ( is_kernel_rodata(page_addr) )
             {
-                radix_dprint(page_addr, "being marked as RODATA (RO)\n");
+                radix_dprintk("%016lx being marked as RODATA (RO)\n", page_addr);
                 flags = PTE_XEN_RO;
             }
             else
             {
-                radix_dprint(page_addr, "being marked as DEFAULT (RW)\n");
+                radix_dprintk("%016lx being marked as DEFAULT (RW)\n", page_addr);
                 flags = PTE_XEN_RW;
             }
 
             *pte = paddr_to_pte(paddr, flags);
-            radix_dprint(paddr_to_pte(paddr, flags).pte,
-                             "is result of PTE map!\n");
+            radix_dprintk("%016lx is the result of PTE map\n",
+                paddr_to_pte(paddr, flags).pte);
         }
         else
         {
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 02:52:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 02:52:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654842.1022314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rDyJl-0004cg-NX; Fri, 15 Dec 2023 02:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654842.1022314; Fri, 15 Dec 2023 02: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 1rDyJl-0004aU-9p; Fri, 15 Dec 2023 02:52:49 +0000
Received: by outflank-mailman (input) for mailman id 654842;
 Fri, 15 Dec 2023 02: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=onWf=H2=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rDyJk-0003SX-0U
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 02:52:48 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 061f4984-9af5-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 03:52:46 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 45D8D8285558;
 Thu, 14 Dec 2023 20:52:45 -0600 (CST)
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 yuWOP8qUYRU7; Thu, 14 Dec 2023 20:52:43 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id CA45E8286129;
 Thu, 14 Dec 2023 20:52:43 -0600 (CST)
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 xn56w4kR2ohd; Thu, 14 Dec 2023 20:52:42 -0600 (CST)
Received: from raptor-ewks-026.2lan (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 5084F828681E;
 Thu, 14 Dec 2023 20:52:42 -0600 (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: 061f4984-9af5-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com CA45E8286129
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1702608763; bh=3Xu8/TjCiVl92nD/llN9P4dPFGZtJ2QZdU92pz36pYM=;
	h=From:To:Date:Message-Id:MIME-Version;
	b=uyU20zW6m5aTv0JL3JQKQdyQ3ZEscKEtx/l4PeeC8JYmUU62Pj2YQ+/7JZm/TChh9
	 cHQgAwQ7f4Rp55d70fiReLcQIDACi9C1wqA3dyUnj3wM5NiWj2TTz/w7zoCy88Dt4U
	 FaDivOUHuU3syEyLX0+dPnwhsa05clvUSVviA2X4=
X-Virus-Scanned: amavisd-new at rptsys.com
From: Shawn Anastasio <sanastasio@raptorengineering.com>
To: xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v2 5/7] xen/ppc: Enable bootfdt and boot allocator
Date: Thu, 14 Dec 2023 20:44:00 -0600
Message-Id: <aa67a0dacab0e3f39dabeb30e31732d617cadde1.1702607884.git.sanastasio@raptorengineering.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <cover.1702607884.git.sanastasio@raptorengineering.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Move PPC off the asm-generic setup.h and enable usage of bootfdt for
populating the boot info struct from the firmware-provided device tree.
Also enable the Xen boot page allocator.

Includes minor changes to bootfdt.c's boot_fdt_info() to tolerate the
scenario in which the FDT overlaps a reserved memory region, as is the
case on PPC when booted directly from skiboot. Also includes a minor
change to record Xen's correct position on PPC where Xen relocates
itself to at the entrypoint.

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/arch/ppc/include/asm/Makefile |   1 -
 xen/arch/ppc/include/asm/setup.h  | 123 +++++++++++++
 xen/arch/ppc/setup.c              | 289 +++++++++++++++++++++++++++++-
 xen/common/device-tree/bootfdt.c  |  25 ++-
 4 files changed, 434 insertions(+), 4 deletions(-)
 create mode 100644 xen/arch/ppc/include/asm/setup.h

diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index 7167661f86..a711cfa856 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -6,6 +6,5 @@ generic-y += iocap.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
-generic-y += setup.h
 generic-y += static-shmem.h
 generic-y += vm_event.h
diff --git a/xen/arch/ppc/include/asm/setup.h b/xen/arch/ppc/include/asm/setup.h
new file mode 100644
index 0000000000..c0f700fc07
--- /dev/null
+++ b/xen/arch/ppc/include/asm/setup.h
@@ -0,0 +1,123 @@
+#ifndef __ASM_PPC_SETUP_H__
+#define __ASM_PPC_SETUP_H__
+
+#define max_init_domid (0)
+
+#include <public/version.h>
+#include <asm/p2m.h>
+#include <xen/device_tree.h>
+
+#define MIN_FDT_ALIGN 8
+#define MAX_FDT_SIZE SZ_2M
+
+#define NR_MEM_BANKS 256
+
+#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,
+};
+
+/* Indicates the maximum number of characters(\0 included) for shm_id */
+#define MAX_SHM_ID_LENGTH 16
+
+struct membank {
+    paddr_t start;
+    paddr_t size;
+    enum membank_type type;
+};
+
+struct meminfo {
+    unsigned int nr_banks;
+    struct membank bank[NR_MEM_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;
+    struct meminfo reserved_mem;
+    struct bootmodules modules;
+    struct bootcmdlines cmdlines;
+    bool static_heap;
+};
+
+extern struct bootinfo bootinfo;
+
+/*
+ * setup.c
+ */
+
+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);
+void add_boot_cmdline(const char *name, const char *cmdline,
+                      bootmodule_kind kind, paddr_t start, bool domU);
+const char *boot_module_kind_as_string(bootmodule_kind kind);
+struct bootcmdline * __init boot_cmdline_find_by_kind(bootmodule_kind kind);
+
+/*
+ * bootfdt.c
+ */
+size_t boot_fdt_info(const void *fdt, paddr_t paddr);
+
+#endif /* __ASM_PPC_SETUP_H__ */
diff --git a/xen/arch/ppc/setup.c b/xen/arch/ppc/setup.c
index 101bdd8bb6..143f2e449e 100644
--- a/xen/arch/ppc/setup.c
+++ b/xen/arch/ppc/setup.c
@@ -1,16 +1,296 @@
 /* SPDX-License-Identifier: GPL-2.0-or-later */
 #include <xen/init.h>
 #include <xen/lib.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/mm.h>
 #include <public/version.h>
 #include <asm/boot.h>
 #include <asm/early_printk.h>
 #include <asm/mm.h>
 #include <asm/processor.h>
+#include <asm/setup.h>
 
 /* Xen stack for bringing up the first CPU. */
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE] __aligned(STACK_SIZE);
 
+struct bootinfo __initdata bootinfo;
+
+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);
+}
+
+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;
+}
+
+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";
+    default: BUG();
+    }
+}
+
+/*
+ * 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;
+}
+
+/*
+ * 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(struct meminfo *meminfo,
+                                         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 = meminfo->nr_banks;
+
+    for ( i = 0; i < bank_num; i++ )
+    {
+        bank_start = meminfo->bank[i].start;
+        bank_end = bank_start + meminfo->bank[i].size;
+
+        if ( 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;
+}
+
+/*
+ * 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)
+{
+    /* Check if input region is overlapping with bootinfo.reserved_mem banks */
+    if ( meminfo_overlap_check(&bootinfo.reserved_mem,
+                               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;
+}
+
+/*
+ * 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;
+}
+
+static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
+                                         void (*cb)(paddr_t ps, paddr_t pe),
+                                         unsigned int first)
+{
+    unsigned int i;
+
+    for ( i = 0 ; i < bootinfo.reserved_mem.nr_banks; i++ )
+    {
+        paddr_t r_s = bootinfo.reserved_mem.bank[i].start;
+        paddr_t r_e = r_s + bootinfo.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;
+        }
+    }
+
+    cb(s, e);
+}
+
+/*
+ * 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;
+}
+
+/*
+ * Populate the boot allocator. Based on arch/arm/setup.c's
+ * populate_boot_allocator.
+ * All RAM but the following regions will be added to the boot allocator:
+ *  - Modules (e.g., Xen, Kernel)
+ *  - Reserved regions
+ */
+static void __init populate_boot_allocator(void)
+{
+    unsigned int i;
+    const struct meminfo *banks = &bootinfo.mem;
+    paddr_t s, e;
+
+    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;
+
+            dt_unreserved_regions(s, e, init_boot_pages, 0);
+
+            s = n;
+        }
+    }
+}
+
 void setup_exceptions(void)
 {
     unsigned long lpcr;
@@ -24,6 +304,8 @@ void __init noreturn start_xen(unsigned long r3, unsigned long r4,
                                unsigned long r5, unsigned long r6,
                                unsigned long r7)
 {
+    void *boot_fdt;
+
     if ( r5 )
     {
         /* Unsupported OpenFirmware boot protocol */
@@ -32,11 +314,16 @@ void __init noreturn start_xen(unsigned long r3, unsigned long r4,
     else
     {
         /* kexec boot protocol */
-        boot_opal_init((void *)r3);
+        boot_fdt = (void *)r3;
+        boot_opal_init(boot_fdt);
     }
 
     setup_exceptions();
 
+    boot_fdt_info(boot_fdt, r3);
+
+    populate_boot_allocator();
+
     setup_initial_pagetables();
 
     early_printk("Hello, ppc64le!\n");
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index 796ac01c18..7ddfcc7e2a 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -543,12 +543,33 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
     if ( ret < 0 )
         panic("No valid device tree\n");
 
-    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
-
     ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
     if ( ret )
         panic("Early FDT parsing failed (%d)\n", ret);
 
+    /*
+     * Add module for the FDT itself after the device tree has been parsed. This
+     * is required on ppc64le where the device tree passed to Xen may have been
+     * allocated by skiboot, in which case it will exist within a reserved
+     * region and this call will fail. This is fine, however, since either way
+     * the allocator will know not to step on the device tree.
+     */
+    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
+
+    /*
+     * Xen relocates itself at the ppc64 entrypoint, so we need to manually mark
+     * the kernel module.
+     */
+    if ( IS_ENABLED(CONFIG_PPC64) ) {
+        paddr_t xen_start, xen_end;
+
+        xen_start = __pa(_start);
+        xen_end = PAGE_ALIGN(__pa(_end));
+        if ( !add_boot_module(BOOTMOD_XEN, xen_start, xen_end, false) )
+            panic("Xen overlaps reserved memory! %016lx - %016lx\n", xen_start,
+                xen_end);
+    }
+
     /*
      * 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
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 05:04:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 05:04:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654869.1022342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE0N6-0006sq-Sj; Fri, 15 Dec 2023 05:04:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654869.1022342; Fri, 15 Dec 2023 05: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 1rE0N6-0006sj-Q4; Fri, 15 Dec 2023 05:04:24 +0000
Received: by outflank-mailman (input) for mailman id 654869;
 Fri, 15 Dec 2023 05:04: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 1rE0N5-0006sZ-2w; Fri, 15 Dec 2023 05:04: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 1rE0N4-0004oZ-Vw; Fri, 15 Dec 2023 05:04: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 1rE0N4-0000pV-Ki; Fri, 15 Dec 2023 05:04:22 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rE0N4-0002Ys-KC; Fri, 15 Dec 2023 05:04: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=AcZ+Hc8Vn1OZ1dw9c3kHiR3Xt/eQNEGsSlWgqx6nddQ=; b=6XWCyTtkwacjtbbQbEaJmo0I2/
	1bIgIc0vhXG/WRVUwHZPJ9m8VOoNvKDx9xmM353i5AOUEz3sqrGiNX3w1K2MQ/8C8RAGyZR4ROYwE
	w09dL3d3fMRPHHZnGb1wBGF4CJnqLUheK1VmuJSnzTxSf75A5Zf4fuYM2tN2NQ8+CWr8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184133-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.18-testing test] 184133: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-4.18-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop: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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-qemuu-win7-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-i386-xl-qemut-ws16-amd64:guest-stop: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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.18-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-qemuu-debianhvm-amd64-xsm: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-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-arm64-arm64-xl-credit1: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-credit1:saverestore-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: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-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-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-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-libvirt:migrate-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-amd64-i386-libvirt-raw: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-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.18-testing:test-armhf-armhf-xl-vhd: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-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
X-Osstest-Versions-This:
    xen=1792d1723b7fb45a20b145d2de4d233913b22c09
X-Osstest-Versions-That:
    xen=a4f3f5a62c10a5adc898cf45261783209f5bc037
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 15 Dec 2023 05:04:22 +0000

flight 184133 xen-4.18-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/184133/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop       fail blocked in 184105
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184105
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184105
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184105
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184105
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184105
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184105
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184105
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184105
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184105
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184105
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184105
 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-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-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-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-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-xsm      15 migrate-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-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-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-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  16 saverestore-support-check    fail   never pass
 test-amd64-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  1792d1723b7fb45a20b145d2de4d233913b22c09
baseline version:
 xen                  a4f3f5a62c10a5adc898cf45261783209f5bc037

Last test of basis   184105  2023-12-12 13:37:12 Z    2 days
Testing same since   184121  2023-12-13 09:00:42 Z    1 days    2 attempts

------------------------------------------------------------
People who touched revisions under test:
  Henry Wang <Henry.Wang@arm.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   a4f3f5a62c..1792d1723b  1792d1723b7fb45a20b145d2de4d233913b22c09 -> stable-4.18


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 07:20:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 07:20:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654880.1022352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE2Uq-00078Y-Gn; Fri, 15 Dec 2023 07:20:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654880.1022352; Fri, 15 Dec 2023 07:20:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE2Uq-00078R-E2; Fri, 15 Dec 2023 07:20:32 +0000
Received: by outflank-mailman (input) for mailman id 654880;
 Fri, 15 Dec 2023 07:20:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WVEl=H2=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rE2Up-00078L-8j
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 07:20:31 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20618.outbound.protection.outlook.com
 [2a01:111:f400:fe5a::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c1d0e55-9b1a-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 08:20:29 +0100 (CET)
Received: from PH7PR12MB5854.namprd12.prod.outlook.com (2603:10b6:510:1d5::20)
 by CH3PR12MB9099.namprd12.prod.outlook.com (2603:10b6:610:1a5::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.31; Fri, 15 Dec
 2023 07:20:24 +0000
Received: from PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::3329:8fa8:d28d:981c]) by PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::3329:8fa8:d28d:981c%5]) with mapi id 15.20.7068.031; Fri, 15 Dec 2023
 07:20: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: 6c1d0e55-9b1a-11ee-98ea-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lSyn2T0YLz8+PXBzt78hiC/ZLq7i3TAfFmYuC9zbU3iz+yJ5sXdsg+iVNpYEj0sBRkYS374BEJLLmwWXGVi4zMTP0aRaLVXH4mgkACyRpcR7yqoPm4wt+TZZFgpYSx+Yo4HoLE7281U8kP2HctdvZY6HAvom8XsyixKryHOMzJthSo/65igIYXvbqTJcjewXZKmCmhvHiOzNWMmOmmzB8SCGV48V12aI8jRkwJFRDlr63xtUJGaLb7JoefRu5/otcJu78UzBDKwvePSD4P2ynXjP6lg6dGeUSq9lq1OCqI2NMIprDu9APQhFLX9Ay6hZzkk+2vPc6fbItdmf0MT0Ew==
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=yAXjiSuuz4Ex211bdHR0aVLYn2YhKMgyPQrifGRwOxE=;
 b=MQrmOaW5ovK0KXtdSiEANhO5cJTqEKdu/0iJHja7sa5cTLJGoW6ABju+mgKBW5qTGNgSVwkHTKE8fChWKmd845dheNtzZR8TP2rXawXF3Fp6L4nRaG8C46UnMnx2HuqNO0mBpof+PAr2UYlrVwnkxP3ZI32TK6Y3/bT/+SeFjc8fBK2SE5Z0/u9n22tudfycZIxsBv0DL0oXDhXIlMC/ET9MRpBKuPq1bPwWMRoqlMkQRtguu21xFKwIsSVw+YOppdCr+D+ePuLRPXkbpqzcy429jBrcp8ZbAYU7upSUh7Lv+PYsWuOFF+6CVjFHwtq3NWEILJrcnxM20HnACbMkEA==
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=yAXjiSuuz4Ex211bdHR0aVLYn2YhKMgyPQrifGRwOxE=;
 b=vQQlCvfGkebI+DOzmLFejI8BBuEEoNy6bVoqyOO0XpxQAmTTLAg7P54c++x/6dJORTF45uBO8HAe4o2Zs2JHOAHR7thysh3JKtvv9ncGL2M1x4yejYcexDOP8DRIWnRVpQaHp705VW4WwM5CB1Id+dmIMLCtCTLKCi6bot8MXVg=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia"
	<Xenia.Ragiadakou@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian"
	<Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Topic: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Index:
 AQHaK4ebBv/EWT+No0GAUR8lU4172LCkNzqAgAGFPID//6gjAIABpqIA///CiwCAAi33AP//lJaAAAAYnAAAAExygAAan/AAACJ1V4A=
Date: Fri, 15 Dec 2023 07:20:24 +0000
Message-ID:
 <PH7PR12MB58546C2F2208D57396C48764E793A@PH7PR12MB5854.namprd12.prod.outlook.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXrRG8oc25Do0Dnv@macbook> <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com>
 <ZXrTwfzedFQLhxiQ@macbook>
 <alpine.DEB.2.22.394.2312141441020.3175268@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2312141441020.3175268@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: PH8PR12MB7208.namprd12.prod.outlook.com
 (15.20.7113.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: PH7PR12MB5854:EE_|CH3PR12MB9099:EE_
x-ms-office365-filtering-correlation-id: c41a9258-5c6e-4b11-a31c-08dbfd3e4e4e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 sUmj0lb62sgvv6VUQAjDo80PU1LEu+TNWR9z4n3fJtB0aLIYXBYpAqzDsqH1NqIQAByNF367NBn6Q/B1rHFYo5WdhSc8zDFz5MzuZLst5ma97cjmtAeOfnCqKJqkPsB5GO7lI1Mtv+w/8WYgF5BJbk0vreLe3Q4y/bZuFN9tDHYDtxM9PnwKakGxrxE2imSY9OxJ1OJd6HZwYveYIvAqP2WuewycdwuD+V9He1LzLqt4qeDLKYIyRAZIRaUQiNhFiSPd1PqF+OgugsBi/zr12QCyeF0VClHBrqeLbk2FmY5GLWA+J2iJqPLNUZcGhNj7q5qzcuQ4IuaupT0OnmZ0VfXlXfjhxytBGf819th5W2Y2kzM17iiRWBQPRWgcmOX/JuXsgc+PVta+djNrYp5kuBo0FvKZUitY6Q/ivDu5Qc2VUMi+yQnujNT6GO/Gcq7CIst6EZmlebm2BHKfJqEYTIOa9W1lSQwjdprdrmERDHKRyO6QG4tk5H5CzIp0QEcQ1XYjs4WkTGLakkQxicT2AQxufM8AsAFeV2XL6IzbECIaDLp4qbTQ+5VU3msLoME0i0G9Am8JsHEH3JwNp0bAeZEH+h9hDhTocNvoSj4wvfatNGZ/CjFgkAds7gDn2VCY
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB5854.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(346002)(39860400002)(366004)(396003)(376002)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(26005)(6506007)(7696005)(71200400001)(53546011)(9686003)(83380400001)(5660300002)(52536014)(4326008)(41300700001)(2906002)(478600001)(8676002)(8936002)(76116006)(110136005)(66946007)(316002)(54906003)(64756008)(66446008)(66476007)(66556008)(33656002)(122000001)(38100700002)(38070700009)(55016003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZGVRUmtoRElZWWlWaWRpS0tIRTdqRzYzV2JPWFExY05DalZQYkpUelNzeXZt?=
 =?utf-8?B?RUhnbXBvemtxVWZlVjB4UGJNNkdIclpUSWkxL1hqZWt3eWd2STVyajV3TTZh?=
 =?utf-8?B?Q21TRXAzaC9SMm9PeXNPdzZlUmZpTG1zZjZWTkZsa1lBREJYK3dGK1M0YkI4?=
 =?utf-8?B?VFNsR2xRVEtLUmZtRm5IdjFsN2RqMUpsRUxrY1BJZGVYVEt1SXJuSXBlbXdE?=
 =?utf-8?B?VUFiOWhmaE56MTN5Z2hCb1p0emFpamErdWZVdUJKSEJDZG93RUtqc1hqZmtp?=
 =?utf-8?B?SmZLenIrYWU4TXU2eFEyS3VxR2ZCWm5PbjV4TzF3UE9TMVpYelpnUzBUV3o0?=
 =?utf-8?B?SndKRmVENEg3RlJWOGtwaGU3YnFhVnZJaHBvN1ZJejRPUUc0YlA1RmEvbHU4?=
 =?utf-8?B?OXc1VVBjTVpETkxWd2gyK3prNHhMTFRDcGk5eWlGaDh1Sno4emxmWS91cnh3?=
 =?utf-8?B?MGF0dUNMMzVPcUV0OU1pMjd6Z3ordFlROUNIOFFwdStYalBLZE9zV3lqdXBZ?=
 =?utf-8?B?OWlqT3RlZG9TYmtpL1M4bFZqZVNZU0dWbE1oa1BVVklWS0hSRTZRRUpzZnF3?=
 =?utf-8?B?RlhTZG0xLzVTcGJNL2gzYUJGYkNrRTJIaGVJcHF0TUZKMlpwWE5GS051M1pC?=
 =?utf-8?B?M1lCbFhTelhId2toVkttemVjOUIzcHJFSmd2UVVQalA3MkFCMlhPUzFnc3pr?=
 =?utf-8?B?RmpUNGVGUHM3TVV4bm54MDBvdlZINEJ1cTlEWXVwRnFRWGZUVENKcmFLck9u?=
 =?utf-8?B?OVBMcTVjaEozK1JCejFyZ2g2RVlKYVFMVFNGYzk0L3R2bnRkelc1eWVQTndS?=
 =?utf-8?B?c3l5cmlRZHVTK1h5a2pXckZLNjUyZjMwSU91d2JvNTJsQjMrN0s1WWgxaUVR?=
 =?utf-8?B?eGl1a1hFTzV5MjFnNzdoVktmY011dnEydDJ1QTNjVWs1UUVXV0VMNEJuSXNL?=
 =?utf-8?B?eG5VVEJwbkZXdnJSdlpMNUtsMU9UaitFOWVjbWZHYmhaVDdPeC83ZFVEMU1o?=
 =?utf-8?B?NzVSbGRwRy9WSWk2L2pTQTlqVVJ0V1dQT3FFMTZjM1ZMaDJmNlI4c3lSRFkx?=
 =?utf-8?B?Z09DNmVmeE1rWUk3ckVWVTQxS2dPbVdkdTc1RVpmMkpHQWwzOGdZZlJCWVZ2?=
 =?utf-8?B?TkFUSFFKcVBXVE1YcFBycndNWTJSV3ZXS2tHUVY4NUExc00vRHUrRHdGd0xQ?=
 =?utf-8?B?dGNId3hZTTZ6bm9JYUNJRDdPOUhwRllYTzlyekNlRUdOQzZGY0hEVUc3M3NU?=
 =?utf-8?B?di9oNkN3UEZVQmdBSEozMW5hYjdmdkVMR1dlWitXNldjR2N5b05qZEZudE05?=
 =?utf-8?B?MG5WZ0VmYVdkTmFqanNrdGZ3a25ya1kzTDR0dWtZTldrUVUySnVkUnFXM3Bh?=
 =?utf-8?B?OEdYWnRmZko3c2g2RFhnWWs3bFR3Uld1bXBjcHBqb3VpNUVGaUJjVG1wNGhK?=
 =?utf-8?B?cGNSZko0cXVTdlRHZ29yR0pUNmh4d29ieGg1TUhtdjNLdFVpZ2JCUGlTUmd3?=
 =?utf-8?B?VzRjVXlJSFo5MWMzZ0FoOWpQMUc2Um1nd0NHNUhZU2JEWnAwdmdPRzZacSs0?=
 =?utf-8?B?WVp6ZWhBSExlc3daNlhlTDVBaGc1WTRmYlQ0MTNPblRSYzgrZTArQitlTHgr?=
 =?utf-8?B?QnlvSzU1d01tcWtWVENZWlZDNEJnMFN2elhOVFl3RndrQ2tVdGlqV3ZpY2lu?=
 =?utf-8?B?SzlscU83K3Z6eFJSNEp0WjlxL1dCaS9WcFNqeFVuUWJvWWdjYWxGZEtSOGRz?=
 =?utf-8?B?ZlJBbXFhZ05Md3l0WXo3a2dSNFh6WStIM3dpK3FsdjFpLzgwbmRlUGxrL3lF?=
 =?utf-8?B?OWJ2eFQwdGVDS1h2QzBaUEczMjNtZzk4NWxoZUtZQVNJV0p5SzNEQllqL1ZD?=
 =?utf-8?B?dWlYbTE0aW9nRXhlZzJPMDlQMTBtU2RlejlTSFlOelQyeHhIRkdrMCtaQy9q?=
 =?utf-8?B?dndJaTBkKzFoa2IxZUxDdGtDdzhWeVBKVS81SWNuUzlOUnRHMnZ1Uk5oWUJP?=
 =?utf-8?B?RUFRbjA1YzNnL3JrMzVCaUYwSU1rc0tzQUVTVTQ2dWFNajFpQXpNeC9WZkph?=
 =?utf-8?B?YloxdG5mYTUxYjNWT0JnenpaQTdzMDZhbzd4TnI1ejVHZktkdXhjT0pJd04v?=
 =?utf-8?Q?I6Lg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D0446210E9A04F47B72CE836204B3569@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB5854.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c41a9258-5c6e-4b11-a31c-08dbfd3e4e4e
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Dec 2023 07:20:24.6208
 (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: F0xoNohRpcaidBOAYOCkNzzsAolYxDVIE5hzRUioolXnUnBTEKrVa+uxyfzkxnIBzLCY13SHV8BcWps6xrckeg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9099

T24gMjAyMy8xMi8xNSAwNjo0OSwgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOg0KPiBPbiBUaHUs
IDE0IERlYyAyMDIzLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4gT24gVGh1LCBEZWMgMTQs
IDIwMjMgYXQgMTA6NTg6MjRBTSArMDEwMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTQu
MTIuMjAyMyAxMDo1NSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4gT24gVGh1LCBEZWMg
MTQsIDIwMjMgYXQgMDg6NTU6NDVBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4+Pj4g
T24gMjAyMy8xMi8xMyAxNTowMywgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+Pj4gT24gMTMuMTIu
MjAyMyAwMzo0NywgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4+Pj4+PiBPbiAyMDIzLzEyLzEyIDE3
OjMwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+Pj4+IE9uIDEyLjEyLjIwMjMgMDc6NDksIENo
ZW4sIEppcWlhbiB3cm90ZToNCj4+Pj4+Pj4+PiBPbiAyMDIzLzEyLzExIDIzOjMxLCBSb2dlciBQ
YXUgTW9ubsOpIHdyb3RlOg0KPj4+Pj4+Pj4+PiBPbiBNb24sIERlYyAxMSwgMjAyMyBhdCAxMjo0
MDowOEFNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+Pj4+Pj4+Pj4+IC0tLSBhL3hlbi9h
cmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMNCj4+Pj4+Pj4+Pj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9o
dm0vaHlwZXJjYWxsLmMNCj4+Pj4+Pj4+Pj4+IEBAIC03Miw4ICs3MiwxMSBAQCBsb25nIGh2bV9w
aHlzZGV2X29wKGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQ0KPj4+
Pj4+Pj4+Pj4gIA0KPj4+Pj4+Pj4+Pj4gICAgICBzd2l0Y2ggKCBjbWQgKQ0KPj4+Pj4+Pj4+Pj4g
ICAgICB7DQo+Pj4+Pj4+Pj4+PiArICAgIGNhc2UgUEhZU0RFVk9QX3NldHVwX2dzaToNCj4+Pj4+
Pj4+Pj4NCj4+Pj4+Pj4+Pj4gSSB0aGluayBnaXZlbiB0aGUgbmV3IGFwcHJvYWNoIG9uIHRoZSBM
aW51eCBzaWRlIHBhdGNoZXMsIHdoZXJlDQo+Pj4+Pj4+Pj4+IHBjaWJhY2sgd2lsbCBjb25maWd1
cmUgdGhlIGludGVycnVwdCwgdGhlcmUncyBubyBuZWVkIHRvIGV4cG9zZQ0KPj4+Pj4+Pj4+PiBz
ZXR1cF9nc2kgYW55bW9yZT8NCj4+Pj4+Pj4+PiBUaGUgbGF0ZXN0IHBhdGNoKHRoZSBzZWNvbmQg
cGF0Y2ggb2YgdjMgb24ga2VybmVsIHNpZGUpIGRvZXMgc2V0dXBfZ3NpIGFuZCBtYXBfcGlycSBm
b3IgcGFzc3Rocm91Z2ggZGV2aWNlIGluIHBjaWJhY2ssIHNvIHdlIG5lZWQgdGhpcyBhbmQgYmVs
b3cuDQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+ICAgICAgY2FzZSBQSFlTREVW
T1BfbWFwX3BpcnE6DQo+Pj4+Pj4+Pj4+PiAgICAgIGNhc2UgUEhZU0RFVk9QX3VubWFwX3BpcnE6
DQo+Pj4+Pj4+Pj4+PiArICAgICAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihjdXJyZCkgKQ0K
Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgIGJyZWFrOw0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBB
bHNvIEphbiBhbHJlYWR5IHBvaW50ZWQgdGhpcyBvdXQgaW4gdjI6IHRoaXMgaHlwZXJjYWxsIG5l
ZWRzIHRvIGJlDQo+Pj4+Pj4+Pj4+IGxpbWl0ZWQgc28gYSBQVkggZG9tMCBjYW5ub3QgZXhlY3V0
ZSBpdCBhZ2FpbnN0IGl0c2VsZi4gIElPVzogcmVmdXNlDQo+Pj4+Pj4+Pj4+IHRoZSBoeXBlcmNh
bGwgaWYgRE9NSURfU0VMRiBvciB0aGUgcGFzc2VkIGRvbWlkIG1hdGNoZXMgdGhlIGN1cnJlbnQN
Cj4+Pj4+Pj4+Pj4gZG9tYWluIGRvbWlkLg0KPj4+Pj4+Pj4+IFllcywgSSByZW1lbWJlciBKYW4n
cyBzdWdnZXN0aW9uLCBidXQgc2luY2UgdGhlIGxhdGVzdCBwYXRjaCh0aGUgc2Vjb25kIHBhdGNo
IG9mIHYzIG9uIGtlcm5lbCBzaWRlKSBoYXMgY2hhbmdlIHRoZSBpbXBsZW1lbnRhdGlvbiwgaXQg
ZG9lcyBzZXR1cF9nc2kgYW5kIG1hcF9waXJxIGZvciBkb20wIGl0c2VsZiwgc28gSSBkaWRuJ3Qg
YWRkIHRoZSBET01JRF9TRUxGIGNoZWNrLg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IEFuZCB3aHkgZXhh
Y3RseSB3b3VsZCBpdCBkbyBzcGVjaWZpY2FsbHkgdGhlIG1hcF9waXJxPyAoRXZlbiB0aGUgc2V0
dXBfZ3NpDQo+Pj4+Pj4+PiBsb29rcyBxdWVzdGlvbmFibGUgdG8gbWUsIGJ1dCB0aGVyZSBtaWdo
dCBiZSByZWFzb25zIHRoZXJlLikNCj4+Pj4+Pj4gTWFwX3BpcnEgaXMgdG8gc29sdmUgdGhlIGNo
ZWNrIGZhaWx1cmUgcHJvYmxlbS4gKHBjaV9hZGRfZG1fZG9uZS0+IHhjX2RvbWFpbl9pcnFfcGVy
bWlzc2lvbi0+IFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb24tPiBwaXJxX2FjY2Vzc19wZXJtaXR0
ZWQtPmRvbWFpbl9waXJxX3RvX2lycS0+cmV0dXJuIGlycSBpcyAwKQ0KPj4+Pj4+PiBTZXR1cF9n
c2kgaXMgYmVjYXVzZSB0aGUgZ3NpIGlzIG5ldmVyIGJlIHVubWFza2VkLCBzbyB0aGUgZ3NpIGlz
IG5ldmVyIGJlIHJlZ2lzdGVyZWQoIHZpb2FwaWNfaHdkb21fbWFwX2dzaS0+IG1wX3JlZ2lzdGVy
X2dzaSBpcyBuZXZlciBiZSBjYWxsZWQpLg0KPj4+Pj4+DQo+Pj4+Pj4gQW5kIGl0IHdhcyBwcmV2
aW91c2x5IG1hZGUgcHJldHR5IGNsZWFyIGJ5IFJvZ2VyLCBJIHRoaW5rLCB0aGF0IGRvaW5nIGEg
Im1hcCINCj4+Pj4+PiBqdXN0IGZvciB0aGUgcHVycG9zZSBvZiBncmFudGluZyBwZXJtaXNzaW9u
IGlzLCB3ZWxsLCBhdCBiZXN0IGEgdGVtcG9yYXJ5DQo+Pj4+Pj4gd29ya2Fyb3VuZCBpbiB0aGUg
ZWFybHkgZGV2ZWxvcG1lbnQgcGhhc2UuIElmIHRoZXJlJ3MgcHJlc2VudGx5IG5vIGh5cGVyY2Fs
bA0KPj4+Pj4+IHRvIF9vbmx5XyBncmFudCBwZXJtaXNzaW9uIHRvIElSUSwgd2UgbmVlZCB0byBh
ZGQgb25lLg0KPj4+Pj4gQ291bGQgeW91IHBsZWFzZSBkZXNjcmliZSBpdCBpbiBkZXRhaWw/IERv
IHlvdSBtZWFuIHRvIGFkZCBhIG5ldyBoeXBlcmNhbGwgdG8gZ3JhbnQgaXJxIGFjY2VzcyBmb3Ig
ZG9tMCBvciBkb21VPw0KPj4+Pj4gSXQgc2VlbXMgWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbiBp
cyB0aGUgaHlwZXJjYWxsIHRvIGdyYW50IGlycSBhY2Nlc3MgZnJvbSBkb20wIHRvIGRvbVUoc2Vl
IFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb24tPiBpcnFfcGVybWl0X2FjY2VzcykuIFRoZXJlIGlz
IG5vIG5lZWQgdG8gYWRkIGh5cGVyY2FsbCB0byBncmFudCBpcnEgYWNjZXNzLg0KPj4+Pj4gV2Ug
ZmFpbGVkIGhlcmUgKFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb24tPiBwaXJxX2FjY2Vzc19wZXJt
aXR0ZWQtPmRvbWFpbl9waXJxX3RvX2lycS0+cmV0dXJuIGlycSBpcyAwKSBpcyBiZWNhdXNlIHRo
ZSBQVkggZG9tMCBkaWRuJ3QgdXNlIFBJUlEsIHNvIHdlIGNhbid0IGdldCBpcnEgZnJvbSBwaXJx
IGlmICJjdXJyZW50IiBpcyBQVkggZG9tMC4NCj4+Pj4NCj4+Pj4gT25lIHdheSB0byBib2RnZSB0
aGlzIHdvdWxkIGJlIHRvIGRldGVjdCB3aGV0aGVyIHRoZSBjYWxsZXIgb2YNCj4+Pj4gWEVOX0RP
TUNUTF9pcnFfcGVybWlzc2lvbiBpcyBhIFBWIG9yIGFuIEhWTSBkb21haW4sIGFuZCBpbiBjYXNl
IG9mIEhWTQ0KPj4+PiBhc3N1bWUgdGhlIHBpcnEgZmllbGQgaXMgYSBHU0kuICBJJ20gdW5zdXJl
IGhvd2V2ZXIgaG93IHRoYXQgd2lsbCB3b3JrDQo+Pj4+IHdpdGggbm9uLXg4NiBhcmNoaXRlY3R1
cmVzLg0KPiANCj4gUElSUSBpcyBhbiB4ODYtb25seSBjb25jZXB0LiBXZSBoYXZlIGV2ZW50IGNo
YW5uZWxzIGJ1dCBubyBQSVJRcyBvbiBBUk0uDQo+IEkgZXhwZWN0IFJJU0MtViB3aWxsIGJlIHRo
ZSBzYW1lLg0KPiANCj4gDQo+Pj4+IEl0IHdvdWxkICBiZSBiZXR0ZXIgdG8gaW50cm9kdWNlIGEg
bmV3IFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb24sIG9yDQo+IA0KPiAiR1NJIiBpcyBhbm90aGVy
IHg4Ni1vbmx5IGNvbmNlcHQuDQo+IA0KPiBTbyBhY3R1YWxseSB0aGUgYmVzdCBuYW1lIHdhcyBp
bmRlZWQgWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbiwgZ2l2ZW4NCj4gdGhhdCBpdCBpcyB1c2lu
ZyB0aGUgbW9yZSBhcmNoLW5ldXRyYWwgImlycSIgdGVybWlub2xvZ3kuDQo+IA0KPiBQZXJoYXBz
IGl0IHdhcyBhbHdheXMgYSBtaXN0YWtlIHRvIHBhc3MgUElSUXMgdG8NCj4gWEVOX0RPTUNUTF9p
cnFfcGVybWlzc2lvbiBhbmQgd2Ugc2hvdWxkIGFsd2F5cyBoYXZlIHBhc3NlZCB0aGUgcmVhbA0K
PiBpbnRlcnJ1cHQgbnVtYmVyIChHU0kgb24geDg2LCBTUEkgb24gQVJNKS4NCj4gDQo+IFNvIHlv
dXIgImJvZGdlIiBpcyBhY3R1YWxseSBraW5kIG9mIE9LIGluIG15IG9waW5pb24uIEJhc2ljYWxs
eSBldmVyeW9uZQ0KPiBlbHNlICh4ODYgSFZNL1BWSCwgQVJNLCBSSVNDLVYsIHByb2JhYmx5IFBQ
QyB0b28pIHdpbGwgdXNlDQo+IFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb24gd2l0aCBoYXJkd2Fy
ZSBpbnRlcnJ1cHQgbnVtYmVycyAoR1NJcywgU1BJcywNCj4gZXRjLiksIHRoZSBvbmx5IHNwZWNp
YWwgY2FzZSBpcyB4ODYgUFYuIEl0IGlzIHg4NiBQViB0aGUgb2RkIG9uZS4NCj4gDQo+IEdpdmVu
IHRoYXQgRE9NQ1RMIGlzIGFuIHVuc3RhYmxlIGludGVyZmFjZSBhbnl3YXksIEkgZmVlbCBPSyBt
YWtpbmcNCj4gY2hhbmdlcyB0byBpdCwgZXZlbiBiZXR0ZXIgaWYgYmFja3dhcmQgY29tcGF0aWJs
ZS4NCkkgdHJ5IHRvIHVuZGVyc3RhbmQgeW91ciBkaXNjdXNzaW9uIGFib3V0IHRoZSBtb2RpZmlj
YXRpb24gb2YgWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbi4gQXQgdGhlIHhsIGxldmVsLCBnc2kg
bmVlZHMgdG8gYmUgcGFzc2VkIGluIGluc3RlYWQgb2YgcGlycSwgYW5kIHRoZW4gYSBqdWRnbWVu
dCBpcyBhZGRlZCB0byBYRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9uLCBqdXN0IGxpa2UgdGhlIGlt
cGxlbWVudGF0aW9uIGJlbG93Pw0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxf
cGNpLmMgYi90b29scy9saWJzL2xpZ2h0L2xpYnhsX3BjaS5jDQppbmRleCBkMzUwN2QxM2EwMjku
LmY2NjVkMTdhZmJmNSAxMDA2NDQNCi0tLSBhL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfcGNpLmMN
CisrKyBiL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfcGNpLmMNCkBAIC0xNDg2LDYgKzE0ODYsNyBA
QCBzdGF0aWMgdm9pZCBwY2lfYWRkX2RtX2RvbmUobGlieGxfX2VnYyAqZWdjLA0KICAgICAgICAg
Z290byBvdXRfbm9faXJxOw0KICAgICB9DQogICAgIGlmICgoZnNjYW5mKGYsICIldSIsICZpcnEp
ID09IDEpICYmIGlycSkgew0KKyAgICAgICAgaW50IGdzaSA9IGlycTsNCiAgICAgICAgIHIgPSB4
Y19waHlzZGV2X21hcF9waXJxKGN0eC0+eGNoLCBkb21pZCwgaXJxLCAmaXJxKTsNCiAgICAgICAg
IGlmIChyIDwgMCkgew0KICAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21haW5pZCwgInhjX3Bo
eXNkZXZfbWFwX3BpcnEgaXJxPSVkIChlcnJvcj0lZCkiLA0KQEAgLTE0OTQsNyArMTQ5NSw3IEBA
IHN0YXRpYyB2b2lkIHBjaV9hZGRfZG1fZG9uZShsaWJ4bF9fZWdjICplZ2MsDQogICAgICAgICAg
ICAgcmMgPSBFUlJPUl9GQUlMOw0KICAgICAgICAgICAgIGdvdG8gb3V0Ow0KICAgICAgICAgfQ0K
LSAgICAgICAgciA9IHhjX2RvbWFpbl9pcnFfcGVybWlzc2lvbihjdHgtPnhjaCwgZG9taWQsIGly
cSwgMSk7DQorICAgICAgICByID0geGNfZG9tYWluX2lycV9wZXJtaXNzaW9uKGN0eC0+eGNoLCBk
b21pZCwgZ3NpLCAxKTsNCiAgICAgICAgIGlmIChyIDwgMCkgew0KICAgICAgICAgICAgIExPR0VE
KEVSUk9SLCBkb21haW5pZCwNCiAgICAgICAgICAgICAgICAgICAieGNfZG9tYWluX2lycV9wZXJt
aXNzaW9uIGlycT0lZCAoZXJyb3I9JWQpIiwgaXJxLCByKTsNCmRpZmYgLS1naXQgYS94ZW4vY29t
bW9uL2RvbWN0bC5jIGIveGVuL2NvbW1vbi9kb21jdGwuYw0KaW5kZXggZjVhNzFlZTVmNzhkLi43
ODJjNGE3YTcwYTQgMTAwNjQ0DQotLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jDQorKysgYi94ZW4v
Y29tbW9uL2RvbWN0bC5jDQpAQCAtNjU4LDcgKzY1OCwxMiBAQCBsb25nIGRvX2RvbWN0bChYRU5f
R1VFU1RfSEFORExFX1BBUkFNKHhlbl9kb21jdGxfdCkgdV9kb21jdGwpDQogICAgICAgICAgICAg
cmV0ID0gLUVJTlZBTDsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIH0NCi0gICAgICAg
IGlycSA9IHBpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5kb21haW4sIHBpcnEpOw0KKw0K
KyAgICAgICAgaWYgKCBpc19odm1fZG9tYWluKGN1cnJlbnQtPmRvbWFpbikgKQ0KKyAgICAgICAg
ICAgIGlycSA9IHBpcnE7DQorICAgICAgICBlbHNlDQorICAgICAgICAgICAgaXJxID0gcGlycV9h
Y2Nlc3NfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbiwgcGlycSk7DQorDQogICAgICAgICBpZiAo
ICFpcnEgfHwgeHNtX2lycV9wZXJtaXNzaW9uKFhTTV9IT09LLCBkLCBpcnEsIGFsbG93KSApDQog
ICAgICAgICAgICAgcmV0ID0gLUVQRVJNOw0KICAgICAgICAgZWxzZSBpZiAoIGFsbG93ICkNCg0K
LS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 07:59:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 07:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654886.1022361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE36J-0002sJ-Fx; Fri, 15 Dec 2023 07:59:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654886.1022361; Fri, 15 Dec 2023 07:59:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE36J-0002sC-DG; Fri, 15 Dec 2023 07:59:15 +0000
Received: by outflank-mailman (input) for mailman id 654886;
 Fri, 15 Dec 2023 07:59:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=F+xl=H2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rE36H-0002s5-PG
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 07:59:13 +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 d4ce4ff5-9b1f-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 08:59:11 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2c9f559b82cso3290731fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Dec 2023 23:59:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 k18-20020a02c652000000b004695eff62cfsm3266455jan.107.2023.12.14.23.59.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Dec 2023 23:59:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4ce4ff5-9b1f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702627151; x=1703231951; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AoL5T/jtDuRBjgc1vlyLRWbNP3HQ5hMn5bid8W/sS7o=;
        b=OpXzWmxlp1dcWA3u4zEP8BDBKzi+UByVb6Li34S/379+ydnQy9gXTAQ9hCWST2y12z
         j5LpPDQ1+3XqUwkVMtMoItuQtW/k0D/e9a76lbijOikasbJTrTlIfoO5uWvkspIKfxIY
         TDh5QQnU+KvxCEVzMk6nZDtYPiDWWO5+Cy4YyBa9p6nBuO2WsBWr2/gUimX0EieonUIc
         52Vi5+71smFbxiXZjq6rTAfh0obuQJFCNzVGaH+G12N6pKtkiy00v9seScAKzzwyDyls
         rWbG0aGOwyiFwd1YZysVued1b3+8F91INN5F4GVMimnv2+LSNNzmAfQ0+9tfX1BZ2pUn
         iQeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702627151; x=1703231951;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=AoL5T/jtDuRBjgc1vlyLRWbNP3HQ5hMn5bid8W/sS7o=;
        b=qJEX6lnafPcx5rD7YkqTJ+Ov2FTDvUsH2r+bJ4CUNW1FZOyPe/Obh90W/XDnePrevO
         wbwOPRQ9OGKUAkfG3TcHHjqNxvqdY2609cMcP3sp28zAq1DPf9bXVnfMRInCiTut5YPv
         sNGJLr1/esC+I0Ya+hGb+DK7UiHwO5FiRTI5gUMD5uwn94fMNUeHtk5xif2YuWE4+q3C
         /Mg7wnKQ2/wALWdTy8P9BmifoNzJFb77MyNQfzqZyusRXg1IOf95oyTg7LbIPnMECIMh
         tJ6IrWxr3tEPiPqbF4UlFCWLZWCwJRb1wiS8II/NzuewjiYzQOBWQevyKqFnaREtvNmq
         31Lg==
X-Gm-Message-State: AOJu0Yz7e1ydmobpPofeJ/1mbvgq3IeY9vxLiuIlAjQfJ/2z1WOel55/
	ewnFnkhoy9cg8qN27xzOWtjO
X-Google-Smtp-Source: AGHT+IHFXKnyzjSf2os4xdbd1HBuakDu+p3YXoGW8DQT1mLf3nFUGyMk7g8dygQe3TdK/hLsA0ELDA==
X-Received: by 2002:a2e:a401:0:b0:2c9:f975:8c59 with SMTP id p1-20020a2ea401000000b002c9f9758c59mr4369386ljn.87.1702627150769;
        Thu, 14 Dec 2023 23:59:10 -0800 (PST)
Message-ID: <698cb944-3e91-498c-99ba-ff0849723285@suse.com>
Date: Fri, 15 Dec 2023 08:59:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 9/9] xen: add SAF deviation for safe cast removal.
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Simone Ballarin <simone.ballarin@bugseng.com>,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
 <36e996b864853dba26a9c9fb9c9c674e92cc935e.1702555387.git.maria.celeste.cesario@bugseng.com>
 <b93417c7-1375-4bf4-ace2-d36bd63c8b0b@suse.com>
 <alpine.DEB.2.22.394.2312141355391.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312141355391.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 23:04, Stefano Stabellini wrote:
> On Thu, 14 Dec 2023, Jan Beulich wrote:
>> On 14.12.2023 13:07, Simone Ballarin wrote:
>>> --- a/docs/misra/safe.json
>>> +++ b/docs/misra/safe.json
>>> @@ -28,6 +28,14 @@
>>>          },
>>>          {
>>>              "id": "SAF-3-safe",
>>> +            "analyser": {
>>> +                "eclair": "MC3R1.R11.8"
>>> +            },
>>> +            "name": "MC3R1.R11.8: removal of const qualifier to comply with function signature",
>>> +            "text": "It is safe to cast away const qualifiers to comply with function signature if the function does not modify the pointee."
>>
>> I'm not happy with this description, as it invites for all sorts of abuse.
>> Yet I'm also puzzled that ...
> 
> We can improve the language but the concept would still be the same. For
> instance:
> 
> A single function might or might not modify the pointee depending on
> other function parameters (for instance a single function that could
> either read or write depending on how it is called). It is safe to cast
> away const qualifiers when passing a parameter to a function of this
> type when the other parameters are triggering a read-only operation.

Right, but I think the next here needs to be setting as tight boundaries
as possible: It should cover only this one specific pattern. Anything
else would better get its own deviation, imo.

>>> --- a/xen/arch/x86/hvm/hvm.c
>>> +++ b/xen/arch/x86/hvm/hvm.c
>>> @@ -3413,6 +3413,7 @@ static enum hvm_translation_result __hvm_copy(
>>>  enum hvm_translation_result hvm_copy_to_guest_phys(
>>>      paddr_t paddr, const void *buf, unsigned int size, struct vcpu *v)
>>>  {
>>> +    /* SAF-3-safe */
>>>      return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */,
>>>                        paddr, size, v,
>>>                        HVMCOPY_to_guest | HVMCOPY_phys, 0, NULL);
>>
>> ... this is the only place you then use it. Afaict some of Arm's copy_guest()
>> callers ought to have a similar issue. If so, an enlarged patch should be
>> discussed with a larger audience, to see how we collectively think we want to
>> put this specific kind of deviation.
> 
> We have a similar problem, see xen/arch/arm/guestcopy.c
> raw_copy_to_guest and raw_copy_from_guest.
> 
> I would use the SAF deviation there too.
> 
> In the case here, I think the comment "HVMCOPY_to_guest doesn't modify"
> could be removed as it becomes redundant with SAF-3-safe, but I'll leave
> it to you.

No, the comment cannot be removed: The SAF comment says exactly nothing
until you go and look up its description. The two comments could be
folded, though. Which is something I was trying to advocate for in
general: Unless entirely obvious, what exactly it is that is "safe"
would better be (briefly) stated in these SAF comments.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 08:03:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 08:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654892.1022372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE3AD-00051q-Em; Fri, 15 Dec 2023 08:03:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654892.1022372; Fri, 15 Dec 2023 08: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 1rE3AD-00051j-AU; Fri, 15 Dec 2023 08:03:17 +0000
Received: by outflank-mailman (input) for mailman id 654892;
 Fri, 15 Dec 2023 08:03: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=F+xl=H2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rE3AB-00051Y-71
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 08:03:15 +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 650fe576-9b20-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 09:03:13 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2ca02def690so4086151fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 00:03:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r9-20020a6bd909000000b007b42bf452f4sm4049808ioc.33.2023.12.15.00.03.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Dec 2023 00:03:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 650fe576-9b20-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702627393; x=1703232193; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Ax5qWN2jCHuAZZBuH/izsXI73jZNQrgV3cmPyhzFqUI=;
        b=EclH/0oProrBrKQecDNNIMzYsHm1l2UrtAvFVq4aCDp6Ocwgw48ghOtXJ7rxTOaEZI
         +HpbXxX3EZ0BfkCmUflQENaoqfugYqum0TtWRzC6pYnrR4FonPebnmPewfn4dq0WJO+W
         j4yKQayeg21I33c4FOoosQNxEhNGdlGcHIUuR4Mr8daOQmXHKOd0XtdYLM4zDFy0xpZJ
         l7Eer6NuOZMEn1qA01dARk8++aqZZzIX4l2SmCnRNY9r0nJwhF6ASOoPgjp9QvDGB/qF
         K/ZrPUFihxqSW7z7o+YxSxoINwTG9L8NRyYSPd+iZcU92Fn8ocHyV0CVdlzm+u9aDmUf
         0ydw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702627393; x=1703232193;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Ax5qWN2jCHuAZZBuH/izsXI73jZNQrgV3cmPyhzFqUI=;
        b=tqnBNNmpxoRwJk3CqFyfDVO8m9831+djoAXsaAHvIh57uS+MO71BkzciZ7D2YLrvUV
         mRs6Oprnwj2xXbR15pPhxM4nGYezw7wzrVbLAzEdcrudMivEE7tzzDZMOcNWVRes1gSc
         Ey6YhwrWB9hITX7Oknu263kb7FpYe0zHGeRS1gtrSpxE9AzyWimKlDn0wBXXDbNFMJp4
         6aM2j8qjr5Z1jEqa2IN+0Ahlstr9OJIc2MME+ZRMl9NPo3FupKiVXy6YDN6PQgd9xvK9
         ZlJyK546OT+1Rj3aDO83sGzEicStRD0JkDCH7PLfU1WZ6wVyzGkDGOHpTsD0acxzRfS+
         DDKg==
X-Gm-Message-State: AOJu0Yzi/AiK2x/Ur3KLIRNkr/M/PhGqqqU0K3ozNyJpA8J/Q+qkRDDu
	uefAnqV+O9mQngH9KURKxLh8
X-Google-Smtp-Source: AGHT+IFuw9BQ57yLPmlZUmDD6sZuJ8Cb2oWXQKiU4cgxgz1NE788BDCt7XfZZtjIvWudmfR9gN7K7w==
X-Received: by 2002:a05:651c:1607:b0:2cc:31b4:c33b with SMTP id f7-20020a05651c160700b002cc31b4c33bmr4239630ljq.77.1702627392856;
        Fri, 15 Dec 2023 00:03:12 -0800 (PST)
Message-ID: <3b2f1699-d58c-40d8-af36-caef70064601@suse.com>
Date: Fri, 15 Dec 2023 09:03:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, George Dunlap <george.dunlap@cloud.com>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
 <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
 <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org>
 <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com>
 <CA+zSX=YHW3kGFroNDzwQg=EhEe3F_fw3gCd_9W+P2UxC7+g+0A@mail.gmail.com>
 <0166dd5b-c12e-40d8-88a6-1f3c97bcf2e0@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0166dd5b-c12e-40d8-88a6-1f3c97bcf2e0@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 20:10, Julien Grall wrote:
> On 14/12/2023 14:15, George Dunlap wrote:
>> But I do think that it's fair to ask Julien to think about a suitable
>> wording, since the comment is in a sense to remind him (or other ARM
>> maintainers) what's needed, and since the eventual solution will be
>> something to do with the ARM code and architecture anyway.
> 
> The comment is for anyone using !NUMA (i.e. all architectures but x86) 
> :). What about the following (this is Nicola's patch with the comments 
> reworked):

This clearly is better, yet then ...

> --- a/xen/arch/arm/include/asm/numa.h
> +++ b/xen/arch/arm/include/asm/numa.h
> @@ -2,8 +2,9 @@
>   #define __ARCH_ARM_NUMA_H
> 
>   #include <xen/mm.h>
> +#include <xen/types.h>
> 
> -typedef u8 nodeid_t;
> +typedef uint8_t nodeid_t;
> 
>   #ifndef CONFIG_NUMA
> 
> @@ -11,12 +12,6 @@ typedef u8 nodeid_t;
>   #define cpu_to_node(cpu) 0
>   #define node_to_cpumask(node)   (cpu_online_map)
> 
> -/*
> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
> - * is required because the dummy helpers are using it.
> - */
> -extern mfn_t first_valid_mfn;
> -
>   /* XXX: implement NUMA support */
>   #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
>   #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> diff --git a/xen/arch/ppc/include/asm/numa.h 
> b/xen/arch/ppc/include/asm/numa.h
> index 7fdf66c3da74..888de2dbd1eb 100644
> --- a/xen/arch/ppc/include/asm/numa.h
> +++ b/xen/arch/ppc/include/asm/numa.h
> @@ -1,8 +1,8 @@
>   #ifndef __ASM_PPC_NUMA_H__
>   #define __ASM_PPC_NUMA_H__
> 
> -#include <xen/types.h>
>   #include <xen/mm.h>
> +#include <xen/types.h>
> 
>   typedef uint8_t nodeid_t;
> 
> @@ -10,12 +10,6 @@ typedef uint8_t nodeid_t;
>   #define cpu_to_node(cpu) 0
>   #define node_to_cpumask(node)   (cpu_online_map)
> 
> -/*
> - * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
> - * is required because the dummy helpers are using it.
> - */
> -extern mfn_t first_valid_mfn;
> -
>   /* XXX: implement NUMA support */
>   #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
>   #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 9b5df74fddab..d874525916ea 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -255,8 +255,10 @@ static PAGE_LIST_HEAD(page_broken_list);
>    */
> 
>   /*
> - * first_valid_mfn is exported because it is use in ARM specific NUMA
> - * helpers. See comment in arch/arm/include/asm/numa.h.
> + * first_valid_mfn is exported because it is used when !CONFIG_NUMA.
> + *
> + * TODO: Consider if we can conditionally export first_valid_mfn based
> + * on whether NUMA is selected.
>    */
>   mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
> 
> diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
> index 3d9b2d05a5c8..a13a9a46ced7 100644
> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -118,6 +118,8 @@ int destroy_xen_mappings(unsigned long s, unsigned 
> long e);
>   /* Retrieve the MFN mapped by VA in Xen virtual address space. */
>   mfn_t xen_map_to_mfn(unsigned long va);
> 
> +extern mfn_t first_valid_mfn;
> +
>   /*
>    * Create only non-leaf page table entries for the
>    * page range in Xen virtual address space.

... I still disagree with the placement here (should be xen/numa.h imo),
and I still don't see why we can't carry out the TODO right away, if we
have to touch all of this anyway. If it's really too much to ask from
the original contributor, I can certainly see about making a patch myself
(and I've now added this to my short-term TODO list).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 08:22:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 08:22:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654902.1022381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE3SN-0008HL-1N; Fri, 15 Dec 2023 08:22:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654902.1022381; Fri, 15 Dec 2023 08:22: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 1rE3SM-0008HE-V2; Fri, 15 Dec 2023 08:22:02 +0000
Received: by outflank-mailman (input) for mailman id 654902;
 Fri, 15 Dec 2023 08:22:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE3SM-0008H5-GL
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 08:22:02 +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 03f2f787-9b23-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 09:21:58 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c55872d80so8545235e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 00:21:58 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 h2-20020a05600c350200b0040c44b4a282sm20101255wmq.43.2023.12.15.00.21.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 00:21:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03f2f787-9b23-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702628518; x=1703233318; 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=aUHn+EpO/wJgG//9RpLLhXdoLe1RQ/ZYsupoGSnu8GM=;
        b=sP/1trdwHZ4uCBYMr/HuS9DoDI0TcSY3RmXU5Pk22No43N6yWEltrZ23G8i1qq8lgr
         etnXaJcLIH4P02MlXtar0Wap53gybKs8dHhiLJTVDcTvCyXrYS4i7AyxxQqvxZXFQAlJ
         TXPi4TlbJEMc9Pm1qmk0M28ycsGuoe9lYDuEc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702628518; x=1703233318;
        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=aUHn+EpO/wJgG//9RpLLhXdoLe1RQ/ZYsupoGSnu8GM=;
        b=DnS4xe3vx3htKbpdivq8vlM/cckecyQO4mpL5PB07TWfF73U6wbC581Btg/fdeN7g4
         S510bbFImDb7RqsAu5TUvY3mV7a+inRW9SfiyYJm2CHLIdxIGe55W82a3y+8O+nH4BCr
         jDmhZfMULvwoH+svij0iBZcRyP1ufJxdmqM2tDhH/97v6M6IRDN2lPPwp9gMumUugRFo
         xiwnpesJja2FJ+VW9IRwfk8eLJtRWAzk3TSVaTKeLZtcGRi7MfsVCJxaB5eKSTJXyQ5M
         binc0UjljOdvIm6D4IatI2Idw6eWWdDWB0NwY/92nX67VHbcGhA3ZvouzLxMj21Nl2VN
         BjTA==
X-Gm-Message-State: AOJu0Yz2TNdYdpbaS3++5VHedsjMlk5B+sdC/NYOumstH1T5bCvGByfS
	lfgiQuqndQ9tAxwAVAux5CfYjw==
X-Google-Smtp-Source: AGHT+IHcuhTj2ptHr/F8V5VtKOPw26XqdLkHSGdeQ1pQEIc1I3bxAxWIPhA/ytQgJdrVG4QR4FFCWw==
X-Received: by 2002:a05:600c:548c:b0:40b:5e26:2385 with SMTP id iv12-20020a05600c548c00b0040b5e262385mr5744293wmb.54.1702628518157;
        Fri, 15 Dec 2023 00:21:58 -0800 (PST)
Date: Fri, 15 Dec 2023 09:21:56 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Message-ID: <ZXwMpGFJuJD3j0wI@macbook>
References: <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXrRG8oc25Do0Dnv@macbook>
 <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com>
 <ZXrTwfzedFQLhxiQ@macbook>
 <alpine.DEB.2.22.394.2312141441020.3175268@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2312141441020.3175268@ubuntu-linux-20-04-desktop>

On Thu, Dec 14, 2023 at 02:49:18PM -0800, Stefano Stabellini wrote:
> On Thu, 14 Dec 2023, Roger Pau MonnÃ© wrote:
> > On Thu, Dec 14, 2023 at 10:58:24AM +0100, Jan Beulich wrote:
> > > On 14.12.2023 10:55, Roger Pau MonnÃ© wrote:
> > > > On Thu, Dec 14, 2023 at 08:55:45AM +0000, Chen, Jiqian wrote:
> > > >> On 2023/12/13 15:03, Jan Beulich wrote:
> > > >>> On 13.12.2023 03:47, Chen, Jiqian wrote:
> > > >>>> On 2023/12/12 17:30, Jan Beulich wrote:
> > > >>>>> On 12.12.2023 07:49, Chen, Jiqian wrote:
> > > >>>>>> On 2023/12/11 23:31, Roger Pau MonnÃ© wrote:
> > > >>>>>>> On Mon, Dec 11, 2023 at 12:40:08AM +0800, Jiqian Chen wrote:
> > > >>>>>>>> --- a/xen/arch/x86/hvm/hypercall.c
> > > >>>>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
> > > >>>>>>>> @@ -72,8 +72,11 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> > > >>>>>>>>  
> > > >>>>>>>>      switch ( cmd )
> > > >>>>>>>>      {
> > > >>>>>>>> +    case PHYSDEVOP_setup_gsi:
> > > >>>>>>>
> > > >>>>>>> I think given the new approach on the Linux side patches, where
> > > >>>>>>> pciback will configure the interrupt, there's no need to expose
> > > >>>>>>> setup_gsi anymore?
> > > >>>>>> The latest patch(the second patch of v3 on kernel side) does setup_gsi and map_pirq for passthrough device in pciback, so we need this and below.
> > > >>>>>>
> > > >>>>>>>
> > > >>>>>>>>      case PHYSDEVOP_map_pirq:
> > > >>>>>>>>      case PHYSDEVOP_unmap_pirq:
> > > >>>>>>>> +        if ( is_hardware_domain(currd) )
> > > >>>>>>>> +            break;
> > > >>>>>>>
> > > >>>>>>> Also Jan already pointed this out in v2: this hypercall needs to be
> > > >>>>>>> limited so a PVH dom0 cannot execute it against itself.  IOW: refuse
> > > >>>>>>> the hypercall if DOMID_SELF or the passed domid matches the current
> > > >>>>>>> domain domid.
> > > >>>>>> Yes, I remember Jan's suggestion, but since the latest patch(the second patch of v3 on kernel side) has change the implementation, it does setup_gsi and map_pirq for dom0 itself, so I didn't add the DOMID_SELF check.
> > > >>>>>
> > > >>>>> And why exactly would it do specifically the map_pirq? (Even the setup_gsi
> > > >>>>> looks questionable to me, but there might be reasons there.)
> > > >>>> Map_pirq is to solve the check failure problem. (pci_add_dm_done-> xc_domain_irq_permission-> XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0)
> > > >>>> Setup_gsi is because the gsi is never be unmasked, so the gsi is never be registered( vioapic_hwdom_map_gsi-> mp_register_gsi is never be called).
> > > >>>
> > > >>> And it was previously made pretty clear by Roger, I think, that doing a "map"
> > > >>> just for the purpose of granting permission is, well, at best a temporary
> > > >>> workaround in the early development phase. If there's presently no hypercall
> > > >>> to _only_ grant permission to IRQ, we need to add one.
> > > >> Could you please describe it in detail? Do you mean to add a new hypercall to grant irq access for dom0 or domU?
> > > >> It seems XEN_DOMCTL_irq_permission is the hypercall to grant irq access from dom0 to domU(see XEN_DOMCTL_irq_permission-> irq_permit_access). There is no need to add hypercall to grant irq access.
> > > >> We failed here (XEN_DOMCTL_irq_permission-> pirq_access_permitted->domain_pirq_to_irq->return irq is 0) is because the PVH dom0 didn't use PIRQ, so we can't get irq from pirq if "current" is PVH dom0.
> > > > 
> > > > One way to bodge this would be to detect whether the caller of
> > > > XEN_DOMCTL_irq_permission is a PV or an HVM domain, and in case of HVM
> > > > assume the pirq field is a GSI.  I'm unsure however how that will work
> > > > with non-x86 architectures.
> 
> PIRQ is an x86-only concept. We have event channels but no PIRQs on ARM.
> I expect RISC-V will be the same.
> 
> 
> > > > It would  be better to introduce a new XEN_DOMCTL_gsi_permission, or
> 
> "GSI" is another x86-only concept.

Yes, that hypercall would be x86-specific.

> So actually the best name was indeed XEN_DOMCTL_irq_permission, given
> that it is using the more arch-neutral "irq" terminology.
> 
> Perhaps it was always a mistake to pass PIRQs to
> XEN_DOMCTL_irq_permission and we should always have passed the real
> interrupt number (GSI on x86, SPI on ARM).

I really don't know much about Arm, but don't you also have LPIs, and
would need to add some kind of type field to
xen_domctl_irq_permission?

> So your "bodge" is actually kind of OK in my opinion. Basically everyone
> else (x86 HVM/PVH, ARM, RISC-V, probably PPC too) will use
> XEN_DOMCTL_irq_permission with hardware interrupt numbers (GSIs, SPIs,
> etc.), the only special case is x86 PV. It is x86 PV the odd one.

x86 PV could also pass the GSI if we wanted to change the interface
uniformly.  AFAICT the hypercall is only used by libxl, so would
likely be fine to change.

> Given that DOMCTL is an unstable interface anyway, I feel OK making
> changes to it, even better if backward compatible.

Me calling this a 'bodge' was mostly because I think it would be nice
to take the opportunity to move the hypercall to a stable
interface.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 08:24:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 08:24:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654907.1022391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE3Uj-0000Pp-E7; Fri, 15 Dec 2023 08:24:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654907.1022391; Fri, 15 Dec 2023 08:24:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE3Uj-0000Pi-Bb; Fri, 15 Dec 2023 08:24:29 +0000
Received: by outflank-mailman (input) for mailman id 654907;
 Fri, 15 Dec 2023 08:24: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=F+xl=H2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rE3Ui-0000PY-5m
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 08:24: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 5c606cca-9b23-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 09:24:27 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2cc3647bf06so3692671fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 00:24:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 l27-20020a02cd9b000000b0046938c12608sm3966060jap.122.2023.12.15.00.24.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Dec 2023 00:24:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c606cca-9b23-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702628667; x=1703233467; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vaJip8GmLT+eoudw6ELZE8CHy+R0HyuDI+ZhYJsgRAI=;
        b=TqPMrhI3nEXUoxXsnYK4Lr2ouCJENY3wLA5yz92lJKC6PK3Pc4/mq1ZWRy0wJu6IFf
         kVeVffAZV44TcwdD+A9TUmXMLs47VpmqAoBY5Jw4I34DBa114MOfyuTlipk6EWrk8HV9
         OtCCeXNrD0UsXEUHyfqfNTmiBTZoPHJKaSGW5/mcupQ5K2d+seQAPTVv7DpTYB16K4lW
         UglE/U8o/BBHPW2t/pCJDcNKjrY0HGmqi0UWqRAOB1zcReNunn4n1GE9jrcoKYqbJ+K8
         k2qS9Ix5/SDrM1vs2roO+Lu39x6dh8qSVxH7iLpdzMdViM5th+i44FnlojgQsO2hWBIi
         vR2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702628667; x=1703233467;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=vaJip8GmLT+eoudw6ELZE8CHy+R0HyuDI+ZhYJsgRAI=;
        b=ZIqpjqpNPU+ZhiifI1Ukdynd0sGQg/Zh2gobDBnhqH6sCjrm6O1GWH7TB6OjK+nwSb
         O8BNYHU1PshE9+JI8V/Bt4oycrL+jvxEdKQHdw86wLPyPgJIKTMgM4NMmEEMkUPDFcTl
         EIv72lZBFJGn3og3/E9ua71reFpQ5PQsEcWl7CcGkCXNo8jOJMA8D42gCcwfC7xlKYaC
         1HJnwHl92i5c0w1E2WvNVcoNibxl78VyrzRORvslww+WY8TWBozcrqdKrCJ4KGuBXoT0
         cT0g6plZHQEXS9DG7e5OW0Q+kXwsDi3Gjo5ZXVcpjLTGAFyFikxalyZoa4GjGN/hyZgL
         UMMg==
X-Gm-Message-State: AOJu0YyVk6arPXGPPzCCFAas0pe3S8EW4hxFsvOX88o39RD+8SUAHpMX
	EM/LA9iwNIohFl3Vo+YA/Rwa
X-Google-Smtp-Source: AGHT+IELc/vx8/KItuHJw7/P8JvoXsZy5zRLYr1PvIRMkoptNOs0lJj/lPxrd+a9pWpoUg1XpUntDw==
X-Received: by 2002:ac2:47fa:0:b0:50e:208f:e553 with SMTP id b26-20020ac247fa000000b0050e208fe553mr25487lfp.70.1702628666713;
        Fri, 15 Dec 2023 00:24:26 -0800 (PST)
Message-ID: <6ba1feda-275a-43f1-911e-8a8596e100ff@suse.com>
Date: Fri, 15 Dec 2023 09:24:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20231210164009.1551147-1-Jiqian.Chen@amd.com>
 <20231210164009.1551147-3-Jiqian.Chen@amd.com> <ZXcrX44ceUjzjtDh@macbook>
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXrRG8oc25Do0Dnv@macbook> <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com>
 <ZXrTwfzedFQLhxiQ@macbook>
 <alpine.DEB.2.22.394.2312141441020.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312141441020.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.12.2023 23:49, Stefano Stabellini wrote:
> On Thu, 14 Dec 2023, Roger Pau MonnÃ© wrote:
>> On Thu, Dec 14, 2023 at 10:58:24AM +0100, Jan Beulich wrote:
>>> On 14.12.2023 10:55, Roger Pau MonnÃ© wrote:
>>>> One way to bodge this would be to detect whether the caller of
>>>> XEN_DOMCTL_irq_permission is a PV or an HVM domain, and in case of HVM
>>>> assume the pirq field is a GSI.  I'm unsure however how that will work
>>>> with non-x86 architectures.
> 
> PIRQ is an x86-only concept. We have event channels but no PIRQs on ARM.
> I expect RISC-V will be the same.
> 
> 
>>>> It would  be better to introduce a new XEN_DOMCTL_gsi_permission, or
> 
> "GSI" is another x86-only concept.

Just to mention it - going through the ACPI spec, this looks to be an
arch-neutral ACPI term. It is also used in places which to me look
pretty Arm-centric.

Jan

> So actually the best name was indeed XEN_DOMCTL_irq_permission, given
> that it is using the more arch-neutral "irq" terminology.
> 
> Perhaps it was always a mistake to pass PIRQs to
> XEN_DOMCTL_irq_permission and we should always have passed the real
> interrupt number (GSI on x86, SPI on ARM).
> 
> So your "bodge" is actually kind of OK in my opinion. Basically everyone
> else (x86 HVM/PVH, ARM, RISC-V, probably PPC too) will use
> XEN_DOMCTL_irq_permission with hardware interrupt numbers (GSIs, SPIs,
> etc.), the only special case is x86 PV. It is x86 PV the odd one.
> 
> Given that DOMCTL is an unstable interface anyway, I feel OK making
> changes to it, even better if backward compatible.



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 08:29:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 08:29:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654915.1022402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE3Ze-0001BT-2C; Fri, 15 Dec 2023 08:29:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654915.1022402; Fri, 15 Dec 2023 08:29:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE3Zd-0001BM-VF; Fri, 15 Dec 2023 08:29:33 +0000
Received: by outflank-mailman (input) for mailman id 654915;
 Fri, 15 Dec 2023 08:29:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE3Zd-0001A8-2Z
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 08:29:33 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11817cb5-9b24-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 09:29:31 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c4846847eso4463245e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 00:29:31 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 az27-20020a05600c601b00b0040c34e763ecsm27316682wmb.44.2023.12.15.00.29.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 00:29:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11817cb5-9b24-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702628970; x=1703233770; 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=D+5LrHZZmYuLl132bbVzeXmRrdb/c61zeghwOfXOCZw=;
        b=Jjmm+wv578ZCtzu8ZboVlbQAAWA+B7snVFTgCRif7JcOMlu3DHZFSYPHFH2gtKjLOW
         bUaci3kRHkGlsGH9xxnBvHYCn2gLgjiLdgjEzIHIGf62FKuFoPyLDZZFzVLre/azZPYk
         MnXdzBjSQPB9Y/FV/r3hoWZmwmPsYjCjfxusA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702628970; x=1703233770;
        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=D+5LrHZZmYuLl132bbVzeXmRrdb/c61zeghwOfXOCZw=;
        b=skG05/s5XSc43Uqg883PwfQ+3Trr6z3ISx2fwuNlD8bgmt4G/keZUlG6sZbTBO4JMG
         2dqzP7Vn+6Wudhn1TyPjCgdvnXfabzv3v6gyot1b+DBNtQQsaleRRRJuLCWIjs1Lpdwa
         fmbwsbjAXLbCy47xDSQ0u85pGUdWakl6RZm6iRGPguXW7tcewSVil+z24csFUu+uVVHv
         jkcaOSOnk/FKk3bBaYXt00IH60NK99wY/UzyvCgR8OZ6u4U1bSWHAqbLfMCmQ51slFQk
         KFw70/uzW0iJVjqjkvu/WDVdTySHaWrWtEBjFw0f2OJjbsbANZP9RAbOm/qZlzY9X7eD
         ObVg==
X-Gm-Message-State: AOJu0Yx1tq2WXmKjUqJMYVprH3JJbaTQwejThwoOSuiJah6DQQeW/t41
	by2TwcF4XP4UfZTz2H2b95SOBA==
X-Google-Smtp-Source: AGHT+IHwW18E6EFrYfNzAIMpw7kBXaNqZAXyeX1CiEcqYiIqDqEyvVKfbb1Rm8WUyUNIhrURzdvsUg==
X-Received: by 2002:a05:600c:84c9:b0:40b:5e21:e28b with SMTP id er9-20020a05600c84c900b0040b5e21e28bmr5376518wmb.120.1702628970605;
        Fri, 15 Dec 2023 00:29:30 -0800 (PST)
Date: Fri, 15 Dec 2023 09:29:29 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Message-ID: <ZXwOabGbV_lFaSfO@macbook>
References: <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXrRG8oc25Do0Dnv@macbook>
 <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com>
 <ZXrTwfzedFQLhxiQ@macbook>
 <alpine.DEB.2.22.394.2312141441020.3175268@ubuntu-linux-20-04-desktop>
 <PH7PR12MB58546C2F2208D57396C48764E793A@PH7PR12MB5854.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <PH7PR12MB58546C2F2208D57396C48764E793A@PH7PR12MB5854.namprd12.prod.outlook.com>

On Fri, Dec 15, 2023 at 07:20:24AM +0000, Chen, Jiqian wrote:
> diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
> index d3507d13a029..f665d17afbf5 100644
> --- a/tools/libs/light/libxl_pci.c
> +++ b/tools/libs/light/libxl_pci.c
> @@ -1486,6 +1486,7 @@ static void pci_add_dm_done(libxl__egc *egc,
>          goto out_no_irq;
>      }
>      if ((fscanf(f, "%u", &irq) == 1) && irq) {
> +        int gsi = irq;
>          r = xc_physdev_map_pirq(ctx->xch, domid, irq, &irq);
>          if (r < 0) {
>              LOGED(ERROR, domainid, "xc_physdev_map_pirq irq=%d (error=%d)",
> @@ -1494,7 +1495,7 @@ static void pci_add_dm_done(libxl__egc *egc,
>              rc = ERROR_FAIL;
>              goto out;
>          }
> -        r = xc_domain_irq_permission(ctx->xch, domid, irq, 1);
> +        r = xc_domain_irq_permission(ctx->xch, domid, gsi, 1);
>          if (r < 0) {
>              LOGED(ERROR, domainid,
>                    "xc_domain_irq_permission irq=%d (error=%d)", irq, r);
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index f5a71ee5f78d..782c4a7a70a4 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -658,7 +658,12 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>              ret = -EINVAL;
>              break;
>          }
> -        irq = pirq_access_permitted(current->domain, pirq);
> +
> +        if ( is_hvm_domain(current->domain) )
> +            irq = pirq;
> +        else
> +            irq = pirq_access_permitted(current->domain, pirq);

You are dropping an irq_access_permitted() check here for the HVM
case, as pirq_access_permitted() translates from pirq to irq and also
checks for permissions.

This would need to be something along the lines of:

irq = 0;
if ( is_hvm_domain(current->domain) &&
     irq_access_permitted(current->domain, pirq) )
    irq = pirq;
else
    irq = pirq_access_permitted(current->domain, pirq);

And then I wonder whether it wouldn't be best to uniformly use a GSI
for both PV and HVM.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 08:36:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 08:36:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654945.1022504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE3gb-0003yf-PG; Fri, 15 Dec 2023 08:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654945.1022504; Fri, 15 Dec 2023 08: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 1rE3gb-0003y3-KW; Fri, 15 Dec 2023 08:36:45 +0000
Received: by outflank-mailman (input) for mailman id 654945;
 Fri, 15 Dec 2023 08:36: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 1rE3ga-0003xX-27; Fri, 15 Dec 2023 08:36: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 1rE3gZ-0000pG-WC; Fri, 15 Dec 2023 08:36: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 1rE3gZ-0006ao-Eh; Fri, 15 Dec 2023 08:36:43 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rE3gZ-0002zT-E8; Fri, 15 Dec 2023 08:36:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=dVcdxXKgFH1Dq2SKbnXhM09GbMLFjxcLfY1uhq/6l/s=; b=mNzR+RRgVWOpbCi1McczM6rgKN
	mihdCZnGTCA7vIhbOyEEjBgO0+Nnc6Zm/3BDK4LdtFQgjWOB8Q4r8MWxdm5hi6VHXDrGXLOscO0xw
	nCofMHSA4kjxfWjhGGc0zvlFpq2wNS5SBb0roBqm7tvU6MqrrIeqGlWwAkHJy+QAp22M=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184141-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184141: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-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-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
X-Osstest-Versions-That:
    xen=d2b7c442b4a066bb670ee83e24800cabc415241d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 15 Dec 2023 08:36:43 +0000

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

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 184031
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184031
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184031
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184031
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184031
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184031
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184031
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184031
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184031
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-amd64-i386-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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          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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
baseline version:
 xen                  d2b7c442b4a066bb670ee83e24800cabc415241d

Last test of basis   184031  2023-12-07 22:10:35 Z    7 days
Failing since        184036  2023-12-08 10:40:52 Z    6 days   12 attempts
Testing same since   184141  2023-12-14 21:01:48 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Anthony PERARD <anthony.perard@citrix.com>
  Arnd Bergmann <arnd@arndb.de>
  Federico Serafini <federico.serafini@bugseng.com>
  George Dunlap <george.dunlap@cloud.com>
  Henry Wang <Henry.Wang@arm.com>
  Jan Beulich <jbeulich@suse.com>
  Jens Wiklander <jens.wiklander@linaro.org>
  Juergen Gross <jgross@suse.com>
  Julien Grall <jgrall@amazon.com>
  Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
  Michal Orzel <michal.orzel@amd.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Oleksii Kurochko <oleksii.kurochko@gmail.com>
  Paul Durrant <paul@xen.org>
  Shawn Anastasio <sanastasio@raptorengineering.com>
  Simone Ballarin <simone.ballarin@bugseng.com>
  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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   d2b7c442b4..cad6f9a4c1  cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce -> master


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 08:40:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 08:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654963.1022550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE3k1-00066r-QK; Fri, 15 Dec 2023 08:40:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654963.1022550; Fri, 15 Dec 2023 08:40: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 1rE3k1-00066k-MY; Fri, 15 Dec 2023 08:40:17 +0000
Received: by outflank-mailman (input) for mailman id 654963;
 Fri, 15 Dec 2023 08:40: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=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE3jz-00065P-PP
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 08:40:15 +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 90a31167-9b25-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 09:40:13 +0100 (CET)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2c9f62fca3bso4617911fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 00:40:13 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 l6-20020a05600c4f0600b0040b45282f88sm30187277wmq.36.2023.12.15.00.40.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 00:40:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90a31167-9b25-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702629613; x=1703234413; 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=sCGv2FyzgS5cO4MfOiZidV8ZPybRPrnmFB74OpjXZ2w=;
        b=ZGOipomm3VsdchgN6qxTijqFw7duwpKunm+3MVVL1z8ShdzxDP9jXtHa3C4axEU1CH
         5obIfSBGey4P1XqcfEZiWG1X8TPUvRV9tBD4FWbeDif9bH7V/3xFjKO/7nVxLw0HB2AQ
         9ps7BTSeEx2JmqrsMtjdfqflLLKcNVyalyxkU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702629613; x=1703234413;
        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=sCGv2FyzgS5cO4MfOiZidV8ZPybRPrnmFB74OpjXZ2w=;
        b=O8uaJtl0P55/FcTYCkpuZdXkyiVigxDB7kMT35ftU5TFs3qdNBsu4ZdK96AT6HGK+H
         x52UKXHABIp08ZUBnIG+FmhYdN+h08ssYrjCYBVX9AeGMqBD2K6l34sDU8SUymuwetYU
         DSYdC9DETpCPwKqM0KlVzoNh+X/peF0FKoxe3ANjHWTKMoFKZmNbTEj+fXSzphLEhGfr
         Y3lFhIHNiQfZHSlW9d2zAWaDTox+jUdVbmSPp7tFbcB5/qTjrjQlaVIJUM4/mRbU5klQ
         GiognlbZAdjpfJd1iJEAKcnDweVvOJ/Y5VP0VzrNWD3zmltNNS7Qkt5pr+qHJ5rxhSl7
         8iug==
X-Gm-Message-State: AOJu0YxXtLSDzbij2Oa2gmNbcBHgwHchvDIpSbAVmrapOLO5I+TJDZ4d
	2xxLyeBK/jYRRYX2Kg61G2i2lw==
X-Google-Smtp-Source: AGHT+IGTwt2Z5UE97wULKluUuImQQDtjAJ06rZnYVD7EaKhE3xolmMOurU0XZQrShboOcnikHjFO/A==
X-Received: by 2002:a2e:b74c:0:b0:2cc:301e:8134 with SMTP id k12-20020a2eb74c000000b002cc301e8134mr2711996ljo.102.1702629613337;
        Fri, 15 Dec 2023 00:40:13 -0800 (PST)
Date: Fri, 15 Dec 2023 09:40:12 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Message-ID: <ZXwQ7BF9AxZPYPXQ@macbook>
References: <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXrRG8oc25Do0Dnv@macbook>
 <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com>
 <ZXrTwfzedFQLhxiQ@macbook>
 <alpine.DEB.2.22.394.2312141441020.3175268@ubuntu-linux-20-04-desktop>
 <6ba1feda-275a-43f1-911e-8a8596e100ff@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6ba1feda-275a-43f1-911e-8a8596e100ff@suse.com>

On Fri, Dec 15, 2023 at 09:24:22AM +0100, Jan Beulich wrote:
> On 14.12.2023 23:49, Stefano Stabellini wrote:
> > On Thu, 14 Dec 2023, Roger Pau MonnÃ© wrote:
> >> On Thu, Dec 14, 2023 at 10:58:24AM +0100, Jan Beulich wrote:
> >>> On 14.12.2023 10:55, Roger Pau MonnÃ© wrote:
> >>>> One way to bodge this would be to detect whether the caller of
> >>>> XEN_DOMCTL_irq_permission is a PV or an HVM domain, and in case of HVM
> >>>> assume the pirq field is a GSI.  I'm unsure however how that will work
> >>>> with non-x86 architectures.
> > 
> > PIRQ is an x86-only concept. We have event channels but no PIRQs on ARM.
> > I expect RISC-V will be the same.
> > 
> > 
> >>>> It would  be better to introduce a new XEN_DOMCTL_gsi_permission, or
> > 
> > "GSI" is another x86-only concept.
> 
> Just to mention it - going through the ACPI spec, this looks to be an
> arch-neutral ACPI term. It is also used in places which to me look
> pretty Arm-centric.

Oh, indeed, they have retrofitted GSI(V?) for Arm also, as a way to have a
"flat" uniform interrupt space.  So I guess Arm would also need the
GSI type, unless the translation from GSI to SPI or whatever platform
interrupt type is done by the guest and Xen is completely agnostic to
GSIs (if that's even possible).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 09:13:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 09:13:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654971.1022559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4Fp-0003Bi-8F; Fri, 15 Dec 2023 09:13:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654971.1022559; Fri, 15 Dec 2023 09:13:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4Fp-0003Bb-5X; Fri, 15 Dec 2023 09:13:09 +0000
Received: by outflank-mailman (input) for mailman id 654971;
 Fri, 15 Dec 2023 09:13:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cTjp=H2=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rE4Fn-0003BV-Cu
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 09:13:07 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 276848ab-9b2a-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 10:13:05 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.160.44.52])
 by support.bugseng.com (Postfix) with ESMTPSA id 554084EE073C;
 Fri, 15 Dec 2023 10:13:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 276848ab-9b2a-11ee-98ea-6d05b1d4d9a1
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH] automation/eclair: update configuration of MISRA C:2012 Rule 5.6
Date: Fri, 15 Dec 2023 10:12:55 +0100
Message-Id: <ea8f782e7695b3ee235a89a8575a0af018bc85e4.1702629422.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Deviate typedef names that are delberately defined multiple times.

Update docs/misra/deviations.rst accordingly.

Tag Rule 5.6 as clean.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 automation/eclair_analysis/ECLAIR/tagging.ecl    | 2 +-
 docs/misra/deviations.rst                        | 7 +++++++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 683f2bbfe8..195ddddde8 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -90,6 +90,12 @@ depending on the guest."
 -config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
 -doc_end
 
+-doc_begin="On X86, the types \"guest_intpte_t\", \"guest_l1e_t\" and
+\"guest_l2e_t\" are deliberately defined multiple times, depending on the
+number of guest paging levels."
+-config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/include/asm/guest_pt\\.h$)))&&any_area(any_loc(text(^.*(guest_intpte_t|guest_l[12]e_t).*$)))"}
+-doc_end
+
 -doc_begin="The following files are imported from the gnu-efi package."
 -file_tag+={adopted_r5_6,"^xen/include/efi/.*$"}
 -file_tag+={adopted_r5_6,"^xen/arch/.*/include/asm/.*/efibind\\.h$"}
diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index d5d3bff396..900c532196 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -30,7 +30,7 @@
 
 -doc_begin="Clean guidelines: new violations for these guidelines are not accepted."
 
--service_selector={clean_guidelines_common,"MC3R1.D1.1||MC3R1.D2.1||MC3R1.D4.11||MC3R1.D4.14||MC3R1.R1.1||MC3R1.R1.3||MC3R1.R1.4||MC3R1.R2.2||MC3R1.R3.1||MC3R1.R3.2||MC3R1.R4.1||MC3R1.R4.2||MC3R1.R5.1||MC3R1.R5.2||MC3R1.R5.4||MC3R1.R6.1||MC3R1.R6.2||MC3R1.R7.1||MC3R1.R8.1||MC3R1.R8.5||MC3R1.R8.6||MC3R1.R8.8||MC3R1.R8.10||MC3R1.R8.12||MC3R1.R8.14||MC3R1.R9.2||MC3R1.R9.4||MC3R1.R9.5||MC3R1.R12.5||MC3R1.R17.3||MC3R1.R17.4||MC3R1.R17.6||MC3R1.R20.13||MC3R1.R20.14||MC3R1.R21.13||MC3R1.R21.19||MC3R1.R21.21||MC3R1.R22.2||MC3R1.R22.4||MC3R1.R22.5||MC3R1.R22.6"
+-service_selector={clean_guidelines_common,"MC3R1.D1.1||MC3R1.D2.1||MC3R1.D4.11||MC3R1.D4.14||MC3R1.R1.1||MC3R1.R1.3||MC3R1.R1.4||MC3R1.R2.2||MC3R1.R3.1||MC3R1.R3.2||MC3R1.R4.1||MC3R1.R4.2||MC3R1.R5.1||MC3R1.R5.2||MC3R1.R5.4||MC3R1.R5.6||MC3R1.R6.1||MC3R1.R6.2||MC3R1.R7.1||MC3R1.R8.1||MC3R1.R8.5||MC3R1.R8.6||MC3R1.R8.8||MC3R1.R8.10||MC3R1.R8.12||MC3R1.R8.14||MC3R1.R9.2||MC3R1.R9.4||MC3R1.R9.5||MC3R1.R12.5||MC3R1.R17.3||MC3R1.R17.4||MC3R1.R17.6||MC3R1.R20.13||MC3R1.R20.14||MC3R1.R21.13||MC3R1.R21.19||MC3R1.R21.21||MC3R1.R22.2||MC3R1.R22.4||MC3R1.R22.5||MC3R1.R22.6"
 }
 
 -setq=target,getenv("XEN_TARGET_ARCH")
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index eda3c8100c..5632685190 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -103,6 +103,13 @@ Deviations related to MISRA C:2012 Rules:
        type of guest to service.
      - Tagged as `deliberate` for ECLAIR.
 
+   * - R5.6
+     - On X86, some types are deliberately defined multiple times, depending on
+       the number of guest paging levels.
+     - Tagged as `deliberate` for ECLAIR. Such types are:
+         - guest_intpte
+         - guest_l[12]e_t
+
    * - R5.6
      - Some files are not subject to respect MISRA rules at
        the moment, but, among these out-of-scope files, there are definitions
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 09:27:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 09:27:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654976.1022570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4T6-0005Ha-Gp; Fri, 15 Dec 2023 09:26:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654976.1022570; Fri, 15 Dec 2023 09:26:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4T6-0005HT-Ct; Fri, 15 Dec 2023 09:26:52 +0000
Received: by outflank-mailman (input) for mailman id 654976;
 Fri, 15 Dec 2023 09:26: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=cTjp=H2=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rE4T5-0005HN-At
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 09:26:51 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 135426b2-9b2c-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 10:26:50 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.160.44.52])
 by support.bugseng.com (Postfix) with ESMTPSA id 9BF6E4EE073C;
 Fri, 15 Dec 2023 10:26:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 135426b2-9b2c-11ee-98ea-6d05b1d4d9a1
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012 Rule 16.3
Date: Fri, 15 Dec 2023 10:26:28 +0100
Message-Id: <7b07ed4a2a87c2774b469eb0fa280c19f945b3a4.1702631924.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C:2012 Rule 16.3 states that an unconditional break statement
shall terminate every switch-clause.

Update ECLAIR configuration to take into account:
  - continue, goto, return statements;
  - functions that do not give the control back;
  - fallthrough pseudo-keyword;
  - macro BUG();
  - comments.

Update docs/misra/deviations.rst accordingly.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 .../eclair_analysis/ECLAIR/deviations.ecl     | 28 +++++++++++++++++++
 docs/misra/deviations.rst                     | 28 +++++++++++++++++++
 2 files changed, 56 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 683f2bbfe8..e27d840fe4 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -327,6 +327,34 @@ therefore have the same behavior of a boolean"
 -config=MC3R1.R14.4,etypes+={deliberate, "stmt(child(cond,child(expr,ref(^<?domain>?::is_dying$))))","src_type(enum)"}
 -doc_end
 
+#
+# Series 16.
+#
+
+-doc_begin="Switch clauses ending with continue, goto, return statements are
+safe."
+-config=MC3R1.R16.3,terminals+={safe, "node(continue_stmt||goto_stmt||return_stmt)"}
+-doc_end
+
+-doc_begin="Switch clauses ending with a call to a function that does not give
+the control back are safe."
+-config=MC3R1.R16.3,terminals+={safe, "call(property(noreturn))"}
+-doc_end
+
+-doc_begin="Switch clauses ending with pseudo-keyword \"fallthrough\" are
+safe."
+-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(/fallthrough;/))))"}
+-doc_end
+
+-doc_begin="Switch clauses ending with failure method \"BUG()\" are 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_end
+
 #
 # Series 20.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index eda3c8100c..d593be81b9 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -276,6 +276,34 @@ Deviations related to MISRA C:2012 Rules:
        therefore have the same behavior of a boolean.
      - Project-wide deviation; tagged as `deliberate` for ECLAIR.
 
+   * - R16.3
+     - Switch clauses ending with continue, goto, return statements are safe.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R16.3
+     - Switch clauses ending with a call to a function that does not give
+       the control back are safe.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R16.3
+     - Switch clauses ending with failure method \"BUG()\" are safe.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R16.3
+     - Existing switch clauses not ending with the break statement are safe if
+       an explicit comment indicating the fallthrough intention is present.
+       However, the use of such comments in new code is deprecated:
+       pseudo-keyword "fallthrough" shall be used.
+     - Tagged as `safe` for ECLAIR. The accepted comments are:
+         - /\* fall through \*/
+         - /\* fall through. \*/
+         - /\* fallthrough \*/
+         - /\* fallthrough. \*/
+         - /\* Fall through \*/
+         - /\* Fall through. \*/
+         - /\* Fallthrough \*/
+         - /\* Fallthrough. \*/
+
    * - R20.7
      - Code violating Rule 20.7 is safe when macro parameters are used:
        (1) as function arguments;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 09:28:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 09:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654979.1022580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4V4-0005pJ-SA; Fri, 15 Dec 2023 09:28:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654979.1022580; Fri, 15 Dec 2023 09: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 1rE4V4-0005pC-PU; Fri, 15 Dec 2023 09:28:54 +0000
Received: by outflank-mailman (input) for mailman id 654979;
 Fri, 15 Dec 2023 09: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=cTjp=H2=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rE4V3-0005p6-OA
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 09:28:53 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c71ab82-9b2c-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 10:28:52 +0100 (CET)
Received: from [172.20.10.2] (unknown [37.160.44.52])
 by support.bugseng.com (Postfix) with ESMTPSA id AA4D94EE073C;
 Fri, 15 Dec 2023 10:28:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c71ab82-9b2c-11ee-98ea-6d05b1d4d9a1
Message-ID: <796d26d3-5479-40f8-b640-bdb704347139@bugseng.com>
Date: Fri, 15 Dec 2023 10:28:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: update configuration of MISRA
 C:2012 Rule 5.6
Content-Language: en-US, it
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>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
References: <ea8f782e7695b3ee235a89a8575a0af018bc85e4.1702629422.git.federico.serafini@bugseng.com>
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <ea8f782e7695b3ee235a89a8575a0af018bc85e4.1702629422.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 15/12/23 10:12, Federico Serafini wrote:
> Deviate typedef names that are delberately defined multiple times.
> 
> Update docs/misra/deviations.rst accordingly.
> 
> Tag Rule 5.6 as clean.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>   automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
>   automation/eclair_analysis/ECLAIR/tagging.ecl    | 2 +-
>   docs/misra/deviations.rst                        | 7 +++++++
>   3 files changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 683f2bbfe8..195ddddde8 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -90,6 +90,12 @@ depending on the guest."
>   -config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
>   -doc_end
>   
> +-doc_begin="On X86, the types \"guest_intpte_t\", \"guest_l1e_t\" and
> +\"guest_l2e_t\" are deliberately defined multiple times, depending on the
> +number of guest paging levels."
> +-config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/include/asm/guest_pt\\.h$)))&&any_area(any_loc(text(^.*(guest_intpte_t|guest_l[12]e_t).*$)))"}
> +-doc_end
> +
>   -doc_begin="The following files are imported from the gnu-efi package."
>   -file_tag+={adopted_r5_6,"^xen/include/efi/.*$"}
>   -file_tag+={adopted_r5_6,"^xen/arch/.*/include/asm/.*/efibind\\.h$"}
> diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
> index d5d3bff396..900c532196 100644
> --- a/automation/eclair_analysis/ECLAIR/tagging.ecl
> +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
> @@ -30,7 +30,7 @@
>   
>   -doc_begin="Clean guidelines: new violations for these guidelines are not accepted."
>   
> --service_selector={clean_guidelines_common,"MC3R1.D1.1||MC3R1.D2.1||MC3R1.D4.11||MC3R1.D4.14||MC3R1.R1.1||MC3R1.R1.3||MC3R1.R1.4||MC3R1.R2.2||MC3R1.R3.1||MC3R1.R3.2||MC3R1.R4.1||MC3R1.R4.2||MC3R1.R5.1||MC3R1.R5.2||MC3R1.R5.4||MC3R1.R6.1||MC3R1.R6.2||MC3R1.R7.1||MC3R1.R8.1||MC3R1.R8.5||MC3R1.R8.6||MC3R1.R8.8||MC3R1.R8.10||MC3R1.R8.12||MC3R1.R8.14||MC3R1.R9.2||MC3R1.R9.4||MC3R1.R9.5||MC3R1.R12.5||MC3R1.R17.3||MC3R1.R17.4||MC3R1.R17.6||MC3R1.R20.13||MC3R1.R20.14||MC3R1.R21.13||MC3R1.R21.19||MC3R1.R21.21||MC3R1.R22.2||MC3R1.R22.4||MC3R1.R22.5||MC3R1.R22.6"
> +-service_selector={clean_guidelines_common,"MC3R1.D1.1||MC3R1.D2.1||MC3R1.D4.11||MC3R1.D4.14||MC3R1.R1.1||MC3R1.R1.3||MC3R1.R1.4||MC3R1.R2.2||MC3R1.R3.1||MC3R1.R3.2||MC3R1.R4.1||MC3R1.R4.2||MC3R1.R5.1||MC3R1.R5.2||MC3R1.R5.4||MC3R1.R5.6||MC3R1.R6.1||MC3R1.R6.2||MC3R1.R7.1||MC3R1.R8.1||MC3R1.R8.5||MC3R1.R8.6||MC3R1.R8.8||MC3R1.R8.10||MC3R1.R8.12||MC3R1.R8.14||MC3R1.R9.2||MC3R1.R9.4||MC3R1.R9.5||MC3R1.R12.5||MC3R1.R17.3||MC3R1.R17.4||MC3R1.R17.6||MC3R1.R20.13||MC3R1.R20.14||MC3R1.R21.13||MC3R1.R21.19||MC3R1.R21.21||MC3R1.R22.2||MC3R1.R22.4||MC3R1.R22.5||MC3R1.R22.6"
>   }
>   
>   -setq=target,getenv("XEN_TARGET_ARCH")
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index eda3c8100c..5632685190 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -103,6 +103,13 @@ Deviations related to MISRA C:2012 Rules:
>          type of guest to service.
>        - Tagged as `deliberate` for ECLAIR.
>   
> +   * - R5.6
> +     - On X86, some types are deliberately defined multiple times, depending on
> +       the number of guest paging levels.
> +     - Tagged as `deliberate` for ECLAIR. Such types are:
> +         - guest_intpte

Typo: missing "_t"

> +         - guest_l[12]e_t
> +
>      * - R5.6
>        - Some files are not subject to respect MISRA rules at
>          the moment, but, among these out-of-scope files, there are definitions

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 09:38:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 09:38:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654986.1022589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4dl-0007ok-Ns; Fri, 15 Dec 2023 09:37:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654986.1022589; Fri, 15 Dec 2023 09: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 1rE4dl-0007od-L6; Fri, 15 Dec 2023 09:37:53 +0000
Received: by outflank-mailman (input) for mailman id 654986;
 Fri, 15 Dec 2023 09:37:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+kaI=H2=arm.com=Rahul.Singh@srs-se1.protection.inumbo.net>)
 id 1rE4dj-0007oW-SR
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 09:37:52 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 (mail-dbaeur03on20601.outbound.protection.outlook.com
 [2a01:111:f403:260d::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9cc2c72c-9b2d-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 10:37:50 +0100 (CET)
Received: from AS9PR05CA0054.eurprd05.prod.outlook.com (2603:10a6:20b:489::13)
 by VE1PR08MB5679.eurprd08.prod.outlook.com (2603:10a6:800:1a8::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.31; Fri, 15 Dec
 2023 09:37:44 +0000
Received: from AMS0EPF000001AA.eurprd05.prod.outlook.com
 (2603:10a6:20b:489:cafe::ca) by AS9PR05CA0054.outlook.office365.com
 (2603:10a6:20b:489::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.31 via Frontend
 Transport; Fri, 15 Dec 2023 09:37:44 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF000001AA.mail.protection.outlook.com (10.167.16.150) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7091.26 via Frontend Transport; Fri, 15 Dec 2023 09:37:43 +0000
Received: ("Tessian outbound e243565b0037:v228");
 Fri, 15 Dec 2023 09:37:43 +0000
Received: from a41c0e88ad43.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 EC849A52-4CB6-46BA-9EF5-F9EF4C35489B.1; 
 Fri, 15 Dec 2023 09:36:52 +0000
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a41c0e88ad43.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Fri, 15 Dec 2023 09:36:52 +0000
Received: from AS8PR08MB7158.eurprd08.prod.outlook.com (2603:10a6:20b:404::24)
 by AS2PR08MB10252.eurprd08.prod.outlook.com (2603:10a6:20b:648::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.28; Fri, 15 Dec
 2023 09:36:50 +0000
Received: from AS8PR08MB7158.eurprd08.prod.outlook.com
 ([fe80::6cb4:5aeb:a290:1770]) by AS8PR08MB7158.eurprd08.prod.outlook.com
 ([fe80::6cb4:5aeb:a290:1770%3]) with mapi id 15.20.7091.030; Fri, 15 Dec 2023
 09:36:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9cc2c72c-9b2d-11ee-98ea-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=fbtg14kSgTWsDuJfBrw/wXxI9KXYXcB7V/uTr6NvklInzYmDNwSiumr1BMYprq9R7d91prWMBec6DVgw8b0lKDaPlI2eWd7alah8r6Br2lf9M312J6qG+X2qXRKRGvTxjaatn7MwqNzQIXEvsbvH5EyTQeAdjCRHmCycxY4JY6cS4IyUvDtE4uOxeIzGmSepMuJu7T2XSaSqxGciT5x66g8TjuYoSH2sczf5mxnLceeHy9iV6SaVaOb84aEBa8YhC5KYthQQGAxTCAsWlbz7+wFCaLFv4G8AgjKLVh7X54vx8Bkxy1yJiWBjHik7t3z0Tp8hOjCbRrG8Yqn+f/4JdQ==
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=3YGWxqzJeuJrALw4MTaFhrvF/9TdLY1BHDeRC9/lVaU=;
 b=Ef8IYBaPjkJMDlPkH3STqCtZjdH+VYtl2qbajI0tw+PC2D/u0lhuFMGtYrmneSW8lcgznYFqCHNihAiYXlkVWIk3jMRJTLMEhnd50GZpsBzGNf+AjyEe2swV4ydRr+KncNbal8zZbXGgTRtufdHhB6IxA1sqck+lH7KXCuhd6GMDCIkzVvxG6UastPs7Y/fE0aj5VIbv3xLAQf8HoECnQxTeL8tQ0JAzkMWAHOzMUQOtmvyQixJaoh0vj1pnIEB5uCJPOovPQCx3ZffxsXQpKnwaoRKvNNgVCyFHxhRgQEywNJcSHAKpvX+eMdEBy0zmKE3M3Usqg0AQJOcy3IgseA==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3YGWxqzJeuJrALw4MTaFhrvF/9TdLY1BHDeRC9/lVaU=;
 b=a0BDuiSiigHQzFkHXx9PL7b3Acr8uNM4zZ3kH60zLdow932ijHYVJQEusbCgo8viBazC3C9s00vnEQeWmEvD76Bi8ZjbI7T1nLRf9miPl0p+FmyiHlsbDueMWFfJN9e19/zb7y7v07bWP39iY8XqTwn5XAeAEaK8zngxHqOZUUI=
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=armh.onmicrosoft.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: b85d46dc4e010fa0
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fKJZJeN1R4RDQM9m9K6ABOkVZODYQDyTLUkN5ZJdAMkWbGM3N02MDnaHWd9FvbGzFlTpOx/QOGnmOz/BIQR9Zt8z1tTGYHPqF4tWe4+JyxisGpm9Bbu7Gb/07FBD4ZwkuTA2B5YcaqDELCPnIm3LXzI/VH2hsFkq1Q23euaKgSBurY2C5WN2f0O6zVNzKm0sQwthaGsdKU3E5IlWkaqng69hPGQjmPu1krfzIgiWixvoVwVGFfIC60EmMAJQycn92Xk9DDmQeyeVw/kt0G5r+dOujsMP6xexD7357xZ1B+MxzOHkR2bT+kC7vB1ZsyohDs3e3tnWgkkMoyVqIFgDTA==
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=3YGWxqzJeuJrALw4MTaFhrvF/9TdLY1BHDeRC9/lVaU=;
 b=TCOvaf3R+Bu0q8IOIXguBohNJaOxyNvJ6smGB8vVhuxqwhOA7bu+E8EQM8GIhhfy7hOIF8k7kuhMWz72gzyvVRiemqMeeHUDmDEfj36QpH8y9kGzA5Uml5DrPSpGZ92WyWmAlwb/SSbHyuWZ0Oy7NzMaRsu7F14wh347ub13UexWXBbg6D9PyYJAPQGHhQ1GwfLwP2gotBiLX7EJJ84ow49degE2+WM85mZkxe11huKD5uK1d2uvWuNGzkNSQrPNszD2DtIIbb1RrDYyygwV0a6CdLXhktxyIFNR3TVjLEvGwX10HnmSLYCk9ckqlkd6KHf6pQbISsiUIMkYmrd47g==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3YGWxqzJeuJrALw4MTaFhrvF/9TdLY1BHDeRC9/lVaU=;
 b=a0BDuiSiigHQzFkHXx9PL7b3Acr8uNM4zZ3kH60zLdow932ijHYVJQEusbCgo8viBazC3C9s00vnEQeWmEvD76Bi8ZjbI7T1nLRf9miPl0p+FmyiHlsbDueMWFfJN9e19/zb7y7v07bWP39iY8XqTwn5XAeAEaK8zngxHqOZUUI=
From: Rahul Singh <Rahul.Singh@arm.com>
To: Stewart Hildebrand <Stewart.Hildebrand@amd.com>
CC: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>, David Scott
	<dave@recoil.org>, =?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>, Christian Lindig
	<christian.lindig@cloud.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v6 2/5] xen/vpci: move xen_domctl_createdomain vPCI flag
 to common
Thread-Topic: [PATCH v6 2/5] xen/vpci: move xen_domctl_createdomain vPCI flag
 to common
Thread-Index: AQHaFn/ghOWRrQCqzUOzpwxJJh+Sd7B5h/6AgBhgEgCAGF9AgA==
Date: Fri, 15 Dec 2023 09:36:49 +0000
Message-ID: <3BA22E6C-F2AE-487D-AF2C-F9AE67E429D7@arm.com>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-3-stewart.hildebrand@amd.com>
 <da9eb6fe-3eaf-de9a-2790-79165ecfd917@suse.com>
 <e6019342-8e46-48c9-8211-26105c61fa52@amd.com>
In-Reply-To: <e6019342-8e46-48c9-8211-26105c61fa52@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7158:EE_|AS2PR08MB10252:EE_|AMS0EPF000001AA:EE_|VE1PR08MB5679:EE_
X-MS-Office365-Filtering-Correlation-Id: cd4a9b0a-4693-4066-4d75-08dbfd517d23
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 8cH80QRgWElGc1KZoJI+KU9RgxSdN8YkyQOr0kze+sL3vaCFGkmWNuh6EszTfPyaLOhTz3qsNspoPJQAK3bJ6Cz/QcHGFE3Z9b2nju/4QmhQ0zJBh/1MDlRv+m8QbwbSa4JQNLGvNuUaiDfLq7YN+bfARr2ezRXuNiGx434hlDlUhraPfNstsecBggR6PDjZUnDVPS/yyV4jixgrQcnUMqUsS//yslOF73U4Hib9KbYHNzZGhLkZ1CwhzmPVt5JQY4Rz1gdlxQABikDVpqDtP6pkT3EuFU0mFuCf0MEW7J+CMjvC54G0UExCStivjvW1jve36cXgfnLciG8w/UrEHAiGiequExTjtro5lcFa53Kw9gT+r/Fqk/Ld26ets/1CcnfrDL0ASKha3l9R38+YznDFNYx7YF8p1uaiMWh0czUgRpICLIlLdmxNKBUkYcwKeSDWv15PVMzeKJWLYTzg7+qwsKwmH9n+1Un4wJluYfBVPD00Zqjo5SE9OTgeSYtVctL8anhEfGUarO5Qk4uamaBImXftnTkkDUiNJIKjO0q9w5cDVlMgv+xW1mPTco5F2BIqjheeKB7mIvdQ9hO3m2M+T1aLrH05/eadmtBhPh9bsV7jBrkGBL0oTiBlC8znUvbxvD5pmrAgakp7aH8L9A==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7158.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(376002)(136003)(366004)(346002)(396003)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(86362001)(36756003)(33656002)(41300700001)(71200400001)(91956017)(76116006)(66556008)(478600001)(6506007)(53546011)(66946007)(66446008)(64756008)(54906003)(6916009)(66476007)(38070700009)(26005)(6512007)(38100700002)(122000001)(83380400001)(2616005)(7416002)(5660300002)(2906002)(316002)(6486002)(8936002)(8676002)(4326008)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <01257103CDC1D74DB240733EC19850BC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10252
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:
 AMS0EPF000001AA.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3a6f2f2b-6bf6-42e0-2a63-08dbfd515d2f
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	LRlyGzIt0bgjedNU4ruXbxcyJ8Bj5Lcovz/ySuYzEQHZShLFbMHitilwvedHMT8eQ+jLXiwrLA7xUiIsqi70AdVn6DjvPeMnV+mhD6j2SnT3ehWyugHhf6vXn6fPeRAXyqqvahbEWgH8GJzmwxSv8RmDGg6wEhSA/Klf0j7aOsTS9htmIUs+ZcQDTkibTxuyF+IeS/zFqeJe3tq0ctatiRHXgLXktInAf1gDGxh4fYSAe7c/nItIj9ftHBt+MkMI5rKBf87OenYOCdHsy1cnYkl0+QUjaLvY4zuD2hOEg4wjuoA2FlKfgIQuC/1Wh1osAZ2mmuZcsiJhRlL/quwUHOfz/ShHXJyjY6yIJW8D4E2pdbXBNNkbkll0jzbaWTi3NHplubpwc6sDReF2Og0z7Wkiv1Nvo7/QXhbaInChCB0xJO3aP9xoqYHXTH0f8D14Ao87CWeSaY4TeodIlcpp2fLY7EaitM9JtH7M77tCGOwOgo3FwIuhmKoG0G1aVshTU4pdIqXgmqEEL2n0UWHHGmniAtDPoFV9yB4C5UDeDmlaSg4EMZMuB+OKi20GUBcXyelTgLzL/R61cAJ7hTRDd2rC+iCwXKgRn1ayI94rh2q7Jv0bRk0fTFNwxeye/OeOknd21iTAK5i71xgIiMag0CwkmwaNIBbxwoNCsFsv6DbA+2EIxe0RHYPv+iV76w7AODcPgccGoZn7kGM+qduiSA==
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:(13230031)(4636009)(376002)(346002)(39850400004)(136003)(396003)(230922051799003)(82310400011)(64100799003)(186009)(1800799012)(451199024)(46966006)(36840700001)(26005)(2616005)(336012)(6506007)(53546011)(6512007)(36860700001)(83380400001)(47076005)(5660300002)(4326008)(6862004)(41300700001)(2906002)(478600001)(6486002)(8676002)(8936002)(70586007)(70206006)(316002)(54906003)(82740400003)(356005)(33656002)(36756003)(86362001)(81166007)(40480700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2023 09:37:43.5919
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cd4a9b0a-4693-4066-4d75-08dbfd517d23
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:
	AMS0EPF000001AA.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5679

SGkgU3Rld2FydCwNCg0KPiBPbiAyOSBOb3YgMjAyMywgYXQgOToyNeKAr3BtLCBTdGV3YXJ0IEhp
bGRlYnJhbmQgPFN0ZXdhcnQuSGlsZGVicmFuZEBhbWQuY29tPiB3cm90ZToNCj4gDQo+IE9uIDEx
LzE0LzIzIDA0OjExLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+IE9uIDEzLjExLjIwMjMgMjM6MjEs
IFN0ZXdhcnQgSGlsZGVicmFuZCB3cm90ZToNCj4+PiBAQCAtNzA5LDEwICs3MTAsMTcgQEAgaW50
IGFyY2hfc2FuaXRpc2VfZG9tYWluX2NvbmZpZyhzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21h
aW4gKmNvbmZpZykNCj4+PiAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4+ICAgICB9DQo+Pj4g
DQo+Pj4gKyAgICBpZiAoIHZwY2kgJiYgIWh2bSApDQo+Pj4gKyAgICB7DQo+Pj4gKyAgICAgICAg
ZHByaW50ayhYRU5MT0dfSU5GTywgInZQQ0kgcmVxdWVzdGVkIGZvciBub24tSFZNIGd1ZXN0XG4i
KTsNCj4+PiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+PiArICAgIH0NCj4+PiArDQo+Pj4g
ICAgIHJldHVybiAwOw0KPj4+IH0NCj4+IA0KPj4gQXMgc2FpZCBvbiB0aGUgdjUgdGhyZWFkLCBJ
IHRoaW5rIG15IGNvbW1lbnQgd2FzIG1pc2d1aWRlZCAoSSdtIHNvcnJ5KQ0KPj4gYW5kIHRoaXMg
d2FudHMga2VlcGluZyBpbiBjb21tb24gY29kZSBhcyB5b3UgaGFkIGl0Lg0KPiANCj4gSSdsbCBt
b3ZlIGl0IGJhY2sgdG8geGVuL2NvbW1vbi9kb21haW4uYy4gTm8gd29ycmllcy4NCg0KSSB0ZXN0
ZWQgdGhpcyBwYXRjaCBhbmQgb2JzZXJ2ZWQgYnVpbGQgZmFpbHVyZSB3aGVuIGNvbXBpbGluZyB0
aGUgIng4Nl82NOKAnSBhcmNoIHdpdGgNCiJDT05GSUdfSFZNPW7igJwgb3B0aW9uLg0KDQp4ODZf
NjQtbGludXgtZ251LWxkICAgIC1tZWxmX3g4Nl82NCAgLVQgYXJjaC94ODYveGVuLmxkcyAtTiBw
cmVsaW5rLm8gLS1idWlsZC1pZD1zaGExIFwNCiAgICAuL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8g
LW8gLi8ueGVuLXN5bXMuMCANCng4Nl82NC1saW51eC1nbnUtbGQ6IHByZWxpbmsubzogaW4gZnVu
Y3Rpb24gYGFyY2hfaW9tbXVfaHdkb21faW5pdOKAmToNCiguaW5pdC50ZXh0KzB4MjE5MmIpOiB1
bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB2cGNpX2lzX21tY2ZnX2FkZHJlc3PigJkNCiguaW5pdC50
ZXh0KzB4MjE5MmIpOiByZWxvY2F0aW9uIHRydW5jYXRlZCB0byBmaXQ6IFJfWDg2XzY0X1BMVDMy
IGFnYWluc3QgdW5kZWZpbmVkIHN5bWJvbCBgdnBjaV9pc19tbWNmZ19hZGRyZXNzJw0KeDg2XzY0
LWxpbnV4LWdudS1sZDogKC5pbml0LnRleHQrMHgyMTk0Nyk6IHVuZGVmaW5lZCByZWZlcmVuY2Ug
dG8gYHZwY2lfaXNfbW1jZmdfYWRkcmVzcycNCiguaW5pdC50ZXh0KzB4MjE5NDcpOiByZWxvY2F0
aW9uIHRydW5jYXRlZCB0byBmaXQ6IFJfWDg2XzY0X1BMVDMyIGFnYWluc3QgdW5kZWZpbmVkIHN5
bWJvbCBgdnBjaV9pc19tbWNmZ19hZGRyZXNzJw0KeDg2XzY0LWxpbnV4LWdudS1sZDogcHJlbGlu
ay5vOiBpbiBmdW5jdGlvbiBgZG9fcGh5c2Rldl9vcOKAmTogDQooLnRleHQuZG9fcGh5c2Rldl9v
cCsweDZkYik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHJlZ2lzdGVyX3ZwY2lfbW1jZmdfaGFu
ZGxlcicNCigudGV4dC5kb19waHlzZGV2X29wKzB4NmRiKTogcmVsb2NhdGlvbiB0cnVuY2F0ZWQg
dG8gZml0OiBSX1g4Nl82NF9QTFQzMiBhZ2FpbnN0IHVuZGVmaW5lZCBzeW1ib2wgYHJlZ2lzdGVy
X3ZwY2lfbW1jZmdfaGFuZGxlcicNCng4Nl82NC1saW51eC1nbnUtbGQ6IC4vLnhlbi1zeW1zLjA6
IGhpZGRlbiBzeW1ib2wgYHZwY2lfaXNfbW1jZmdfYWRkcmVzcycgaXNuJ3QgZGVmaW5lZA0KeDg2
XzY0LWxpbnV4LWdudS1sZDogZmluYWwgbGluayBmYWlsZWQ6IGJhZCB2YWx1ZSAgICAgICAgICAg
ICAgICANCg0KDQpSZWdhcmRzLA0KUmFodWwNCg0KDQo+IA0KPj4gDQo+Pj4gLS0tIGEveGVuL2lu
Y2x1ZGUvcHVibGljL2FyY2gteDg2L3hlbi5oDQo+Pj4gKysrIGIveGVuL2luY2x1ZGUvcHVibGlj
L2FyY2gteDg2L3hlbi5oDQo+Pj4gQEAgLTI4MywxNSArMjgzLDE2IEBAIHN0cnVjdCB4ZW5fYXJj
aF9kb21haW5jb25maWcgew0KPj4+ICNkZWZpbmUgWEVOX1g4Nl9FTVVfUElUICAgICAgICAgICAg
ICgxVTw8X1hFTl9YODZfRU1VX1BJVCkNCj4+PiAjZGVmaW5lIF9YRU5fWDg2X0VNVV9VU0VfUElS
USAgICAgICA5DQo+Pj4gI2RlZmluZSBYRU5fWDg2X0VNVV9VU0VfUElSUSAgICAgICAgKDFVPDxf
WEVOX1g4Nl9FTVVfVVNFX1BJUlEpDQo+Pj4gLSNkZWZpbmUgX1hFTl9YODZfRU1VX1ZQQ0kgICAg
ICAgICAgIDEwDQo+Pj4gLSNkZWZpbmUgWEVOX1g4Nl9FTVVfVlBDSSAgICAgICAgICAgICgxVTw8
X1hFTl9YODZfRU1VX1ZQQ0kpDQo+Pj4gKy8qDQo+Pj4gKyAqIE5vdGU6IGJpdCAxMCB3YXMgcHJl
dmlvdXNseSB1c2VkIGZvciBhIFhFTl9YODZfRU1VX1ZQQ0kgZmxhZy4gVGhpcyBiaXQgc2hvdWxk
DQo+Pj4gKyAqIG5vdCBiZSByZS11c2VkIHdpdGhvdXQgY2FyZWZ1bCBjb25zaWRlcmF0aW9uLg0K
Pj4+ICsgKi8NCj4+IA0KPj4gSSB0aGluayBhIG11bHRpLWxpbmUgY29tbWVudCBpcyBkcmF3aW5n
IG92ZXJseSBtdWNoIGF0dGVudGlvbiB0byB0aGlzLg0KPj4gSG93IGFib3V0ICJOb3RlOiBCaXQg
MTAgd2FzIHByZXZpb3VzbHkgdXNlZCBmb3IgWEVOX1g4Nl9FTVVfVlBDSS4gUmUtdXNlDQo+PiB3
aXRoIGNhcmUuIiB3aGljaCBJIHRoaW5rIGZpdHMgaW4gYSBzaW5nbGUgbGluZSBjb21tZW50Lg0K
PiANCj4gU291bmRzIGdvb2QuDQo+IA0KPj4gDQo+PiBKYW4NCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 09:41:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 09:41:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654992.1022599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4h3-0001Ls-B3; Fri, 15 Dec 2023 09:41:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654992.1022599; Fri, 15 Dec 2023 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 1rE4h3-0001Lk-8Q; Fri, 15 Dec 2023 09:41:17 +0000
Received: by outflank-mailman (input) for mailman id 654992;
 Fri, 15 Dec 2023 09:41:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cTjp=H2=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rE4h1-0001K8-Ky
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 09:41:15 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 162325fd-9b2e-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 10:41:13 +0100 (CET)
Received: from [172.20.10.2] (unknown [37.160.44.52])
 by support.bugseng.com (Postfix) with ESMTPSA id 7C1BF4EE073C;
 Fri, 15 Dec 2023 10:41:12 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 162325fd-9b2e-11ee-9b0f-b553b5be7939
Message-ID: <91f745a6-aaec-4bdc-aea2-ac43034e5b67@bugseng.com>
Date: Fri, 15 Dec 2023 10:41:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012
 Rule 16.3
Content-Language: en-US, it
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>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
References: <7b07ed4a2a87c2774b469eb0fa280c19f945b3a4.1702631924.git.federico.serafini@bugseng.com>
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <7b07ed4a2a87c2774b469eb0fa280c19f945b3a4.1702631924.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 15/12/23 10:26, Federico Serafini wrote:
> MISRA C:2012 Rule 16.3 states that an unconditional break statement
> shall terminate every switch-clause.
> 
> Update ECLAIR configuration to take into account:
>    - continue, goto, return statements;
>    - functions that do not give the control back;
>    - fallthrough pseudo-keyword;
>    - macro BUG();
>    - comments.
> 
> Update docs/misra/deviations.rst accordingly.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>   .../eclair_analysis/ECLAIR/deviations.ecl     | 28 +++++++++++++++++++
>   docs/misra/deviations.rst                     | 28 +++++++++++++++++++
>   2 files changed, 56 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 683f2bbfe8..e27d840fe4 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -327,6 +327,34 @@ therefore have the same behavior of a boolean"
>   -config=MC3R1.R14.4,etypes+={deliberate, "stmt(child(cond,child(expr,ref(^<?domain>?::is_dying$))))","src_type(enum)"}
>   -doc_end
>   
> +#
> +# Series 16.
> +#
> +
> +-doc_begin="Switch clauses ending with continue, goto, return statements are
> +safe."
> +-config=MC3R1.R16.3,terminals+={safe, "node(continue_stmt||goto_stmt||return_stmt)"}
> +-doc_end
> +
> +-doc_begin="Switch clauses ending with a call to a function that does not give
> +the control back are safe."
> +-config=MC3R1.R16.3,terminals+={safe, "call(property(noreturn))"}
> +-doc_end
> +
> +-doc_begin="Switch clauses ending with pseudo-keyword \"fallthrough\" are
> +safe."
> +-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(/fallthrough;/))))"}
> +-doc_end
> +
> +-doc_begin="Switch clauses ending with failure method \"BUG()\" are 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_end
> +
>   #
>   # Series 20.
>   #
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index eda3c8100c..d593be81b9 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -276,6 +276,34 @@ Deviations related to MISRA C:2012 Rules:
>          therefore have the same behavior of a boolean.
>        - Project-wide deviation; tagged as `deliberate` for ECLAIR.
>   
> +   * - R16.3
> +     - Switch clauses ending with continue, goto, return statements are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Switch clauses ending with a call to a function that does not give
> +       the control back are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Switch clauses ending with failure method \"BUG()\" are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Existing switch clauses not ending with the break statement are safe if
> +       an explicit comment indicating the fallthrough intention is present.
> +       However, the use of such comments in new code is deprecated:
> +       pseudo-keyword "fallthrough" shall be used.
> +     - Tagged as `safe` for ECLAIR. The accepted comments are:
> +         - /\* fall through \*/
> +         - /\* fall through. \*/
> +         - /\* fallthrough \*/
> +         - /\* fallthrough. \*/
> +         - /\* Fall through \*/
> +         - /\* Fall through. \*/
> +         - /\* Fallthrough \*/
> +         - /\* Fallthrough. \*/
> +
>      * - R20.7
>        - Code violating Rule 20.7 is safe when macro parameters are used:
>          (1) as function arguments;

I forgot to mention that this is a V2.
The older version and the discussion can be found at:
https://lists.xenproject.org/archives/html/xen-devel/2023-12/msg00957.html

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 09:43:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 09:43:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.654995.1022609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4j3-0001tu-Mf; Fri, 15 Dec 2023 09:43:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 654995.1022609; Fri, 15 Dec 2023 09: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 1rE4j3-0001tn-KB; Fri, 15 Dec 2023 09:43:21 +0000
Received: by outflank-mailman (input) for mailman id 654995;
 Fri, 15 Dec 2023 09:43:20 +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 1rE4j2-0001tf-LZ
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 09:43:20 +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 1rE4is-0001yt-Rl; Fri, 15 Dec 2023 09:43:10 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rE4is-0001Cm-Lb; Fri, 15 Dec 2023 09:43: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=Ryc6jrnleTQwhwz3wqjr2Yg2T0bwnh4tw8JpGfF8ofU=; b=mQHlGzRvhgtYUqiZuylkfKOlK+
	kSrR3gCprkKliUGTW+1AdSRlaLvLWlMJbjHJlR+BSDd1+1jXGi24kmctnQ8T5/uPmyo/Y7Sk1Ae7h
	f3T1JWQm3jh8t+fJSynz+HpmFxCYwFcYVYS4A/tcAATR1XdHTWRQMKs/yBXGIGfatWHc=;
Message-ID: <2879189b-eea3-48c4-86e4-baed69e6a8f0@xen.org>
Date: Fri, 15 Dec 2023 09:43:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, George Dunlap <george.dunlap@cloud.com>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
 <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
 <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org>
 <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com>
 <CA+zSX=YHW3kGFroNDzwQg=EhEe3F_fw3gCd_9W+P2UxC7+g+0A@mail.gmail.com>
 <0166dd5b-c12e-40d8-88a6-1f3c97bcf2e0@xen.org>
 <3b2f1699-d58c-40d8-af36-caef70064601@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3b2f1699-d58c-40d8-af36-caef70064601@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 15/12/2023 08:03, Jan Beulich wrote:
> On 14.12.2023 20:10, Julien Grall wrote:
>> On 14/12/2023 14:15, George Dunlap wrote:
>>> But I do think that it's fair to ask Julien to think about a suitable
>>> wording, since the comment is in a sense to remind him (or other ARM
>>> maintainers) what's needed, and since the eventual solution will be
>>> something to do with the ARM code and architecture anyway.
>>
>> The comment is for anyone using !NUMA (i.e. all architectures but x86)
>> :). What about the following (this is Nicola's patch with the comments
>> reworked):
> 
> This clearly is better, yet then ...
> 
>> --- a/xen/arch/arm/include/asm/numa.h
>> +++ b/xen/arch/arm/include/asm/numa.h
>> @@ -2,8 +2,9 @@
>>    #define __ARCH_ARM_NUMA_H
>>
>>    #include <xen/mm.h>
>> +#include <xen/types.h>
>>
>> -typedef u8 nodeid_t;
>> +typedef uint8_t nodeid_t;
>>
>>    #ifndef CONFIG_NUMA
>>
>> @@ -11,12 +12,6 @@ typedef u8 nodeid_t;
>>    #define cpu_to_node(cpu) 0
>>    #define node_to_cpumask(node)   (cpu_online_map)
>>
>> -/*
>> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
>> - * is required because the dummy helpers are using it.
>> - */
>> -extern mfn_t first_valid_mfn;
>> -
>>    /* XXX: implement NUMA support */
>>    #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
>>    #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
>> diff --git a/xen/arch/ppc/include/asm/numa.h
>> b/xen/arch/ppc/include/asm/numa.h
>> index 7fdf66c3da74..888de2dbd1eb 100644
>> --- a/xen/arch/ppc/include/asm/numa.h
>> +++ b/xen/arch/ppc/include/asm/numa.h
>> @@ -1,8 +1,8 @@
>>    #ifndef __ASM_PPC_NUMA_H__
>>    #define __ASM_PPC_NUMA_H__
>>
>> -#include <xen/types.h>
>>    #include <xen/mm.h>
>> +#include <xen/types.h>
>>
>>    typedef uint8_t nodeid_t;
>>
>> @@ -10,12 +10,6 @@ typedef uint8_t nodeid_t;
>>    #define cpu_to_node(cpu) 0
>>    #define node_to_cpumask(node)   (cpu_online_map)
>>
>> -/*
>> - * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
>> - * is required because the dummy helpers are using it.
>> - */
>> -extern mfn_t first_valid_mfn;
>> -
>>    /* XXX: implement NUMA support */
>>    #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
>>    #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
>> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
>> index 9b5df74fddab..d874525916ea 100644
>> --- a/xen/common/page_alloc.c
>> +++ b/xen/common/page_alloc.c
>> @@ -255,8 +255,10 @@ static PAGE_LIST_HEAD(page_broken_list);
>>     */
>>
>>    /*
>> - * first_valid_mfn is exported because it is use in ARM specific NUMA
>> - * helpers. See comment in arch/arm/include/asm/numa.h.
>> + * first_valid_mfn is exported because it is used when !CONFIG_NUMA.
>> + *
>> + * TODO: Consider if we can conditionally export first_valid_mfn based
>> + * on whether NUMA is selected.
>>     */
>>    mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
>>
>> diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
>> index 3d9b2d05a5c8..a13a9a46ced7 100644
>> --- a/xen/include/xen/mm.h
>> +++ b/xen/include/xen/mm.h
>> @@ -118,6 +118,8 @@ int destroy_xen_mappings(unsigned long s, unsigned
>> long e);
>>    /* Retrieve the MFN mapped by VA in Xen virtual address space. */
>>    mfn_t xen_map_to_mfn(unsigned long va);
>>
>> +extern mfn_t first_valid_mfn;
>> +
>>    /*
>>     * Create only non-leaf page table entries for the
>>     * page range in Xen virtual address space.
> 
> ... I still disagree with the placement here (should be xen/numa.h imo),

I don't care too much about which header is used. So I am ok with numa.h 
if this is what you really want. However...

> and I still don't see why we can't carry out the TODO right away, if we
> have to touch all of this anyway. If it's really too much to ask from
> the original contributor, I can certainly see about making a patch myself

There are a few reasons I didn't update with that approach or want to 
ask Nicola for this:
   1. I assume this will be a macro and it is not clear to me whether 
Eclair would be able to detect the visibility change based on the config
   2. IMHO, this is obfuscating a bit more the code
   3. I don't see why we want to special case first_valid_mfn. I am sure 
we have other external variables in the same situation.

So if any solution needs to came up, then it needs to be generic, and I 
fear this is going to be yet another lengthy work which is not worth it 
for this case.

> (and I've now added this to my short-term TODO list).

Thanks. But as I wrote above, I am not sure I agree such proposal. Let 
see what the code looks like.

Cheers,


-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 09:59:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 09:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655003.1022619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4yH-0003zu-0v; Fri, 15 Dec 2023 09:59:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655003.1022619; Fri, 15 Dec 2023 09:59:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE4yG-0003zn-UR; Fri, 15 Dec 2023 09:59:04 +0000
Received: by outflank-mailman (input) for mailman id 655003;
 Fri, 15 Dec 2023 09:59:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rqNh=H2=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rE4yG-0003zh-7u
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 09:59:04 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9387f046-9b30-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 10:59:03 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 8186F4EE073C;
 Fri, 15 Dec 2023 10:59:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9387f046-9b30-11ee-98ea-6d05b1d4d9a1
MIME-Version: 1.0
Date: Fri, 15 Dec 2023 10:59:02 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>, Jbeulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
 <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, Shawn
 Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, George Dunlap <george.dunlap@cloud.com>
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
In-Reply-To: <2879189b-eea3-48c4-86e4-baed69e6a8f0@xen.org>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
 <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
 <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org>
 <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com>
 <CA+zSX=YHW3kGFroNDzwQg=EhEe3F_fw3gCd_9W+P2UxC7+g+0A@mail.gmail.com>
 <0166dd5b-c12e-40d8-88a6-1f3c97bcf2e0@xen.org>
 <3b2f1699-d58c-40d8-af36-caef70064601@suse.com>
 <2879189b-eea3-48c4-86e4-baed69e6a8f0@xen.org>
Message-ID: <9c981e710ef8c86f2a71ef332d991ef1@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

Hi Jan, Julien

>>> 
>>> +extern mfn_t first_valid_mfn;
>>> +
>>>    /*
>>>     * Create only non-leaf page table entries for the
>>>     * page range in Xen virtual address space.
>> 
>> ... I still disagree with the placement here (should be xen/numa.h 
>> imo),
> 
> I don't care too much about which header is used. So I am ok with 
> numa.h if this is what you really want. However...
> 
>> and I still don't see why we can't carry out the TODO right away, if 
>> we
>> have to touch all of this anyway. If it's really too much to ask from
>> the original contributor, I can certainly see about making a patch 
>> myself
> 
> There are a few reasons I didn't update with that approach or want to 
> ask Nicola for this:
>   1. I assume this will be a macro and it is not clear to me whether 
> Eclair would be able to detect the visibility change based on the 
> config
>   2. IMHO, this is obfuscating a bit more the code
>   3. I don't see why we want to special case first_valid_mfn. I am sure 
> we have other external variables in the same situation.
> 
> So if any solution needs to came up, then it needs to be generic, and I 
> fear this is going to be yet another lengthy work which is not worth it 
> for this case.
> 
>> (and I've now added this to my short-term TODO list).
> 
> Thanks. But as I wrote above, I am not sure I agree such proposal. Let 
> see what the code looks like.
> 

Given the controversy that arose on this patch, maybe it's best to drop 
it now from this series. If then it's agreed that as a temporary 
workaround you want to leave it as is and deviate, as I proposed 
elsewhere in the thread, feel free to reach out. Meanwhile, if patch 1 
looks ok I can mark this series as done and focus on the v2 for R2.1, 
which is almost ready.

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 10:06:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 10:06:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655008.1022630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE55V-00063N-No; Fri, 15 Dec 2023 10:06:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655008.1022630; Fri, 15 Dec 2023 10: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 1rE55V-00063G-LE; Fri, 15 Dec 2023 10:06:33 +0000
Received: by outflank-mailman (input) for mailman id 655008;
 Fri, 15 Dec 2023 10:06: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 1rE55U-000638-7Q
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 10:06: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 1rE55N-0002S0-6e; Fri, 15 Dec 2023 10:06:25 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rE55N-0002K1-07; Fri, 15 Dec 2023 10:06:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=yGOQoYn/pPtbyKE9cY1vHTrI83/h3ZhByC+oEYbbW5Y=; b=cb5rTVYJDKnorGdFyau4arcqjX
	IWsjIDzE2F6fu+g4n+M9erBr42b2V4M+bbEGTQZtPGHIBPC1olj1j3nLRokc5Xc3u8xL/zdwxHYCY
	NDrWjPok+/fpTEm0pEi1+vbFgUDprCpttcVD2xr3B4fpmSDywvI5GDDo68E54fkKw4zk=;
Message-ID: <05133f2d-c322-459b-b0b2-e34a07fbb3b6@xen.org>
Date: Fri, 15 Dec 2023 10:06:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, Jbeulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, George Dunlap <george.dunlap@cloud.com>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com>
 <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com>
 <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com>
 <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org>
 <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com>
 <CA+zSX=YHW3kGFroNDzwQg=EhEe3F_fw3gCd_9W+P2UxC7+g+0A@mail.gmail.com>
 <0166dd5b-c12e-40d8-88a6-1f3c97bcf2e0@xen.org>
 <3b2f1699-d58c-40d8-af36-caef70064601@suse.com>
 <2879189b-eea3-48c4-86e4-baed69e6a8f0@xen.org>
 <9c981e710ef8c86f2a71ef332d991ef1@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9c981e710ef8c86f2a71ef332d991ef1@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 15/12/2023 09:59, Nicola Vetrini wrote:
>>>> +extern mfn_t first_valid_mfn;
>>>> +
>>>> Â Â  /*
>>>> Â Â Â  * Create only non-leaf page table entries for the
>>>> Â Â Â  * page range in Xen virtual address space.
>>>
>>> ... I still disagree with the placement here (should be xen/numa.h imo),
>>
>> I don't care too much about which header is used. So I am ok with 
>> numa.h if this is what you really want. However...
>>
>>> and I still don't see why we can't carry out the TODO right away, if we
>>> have to touch all of this anyway. If it's really too much to ask from
>>> the original contributor, I can certainly see about making a patch 
>>> myself
>>
>> There are a few reasons I didn't update with that approach or want to 
>> ask Nicola for this:
>> Â  1. I assume this will be a macro and it is not clear to me whether 
>> Eclair would be able to detect the visibility change based on the config
>> Â  2. IMHO, this is obfuscating a bit more the code
>> Â  3. I don't see why we want to special case first_valid_mfn. I am 
>> sure we have other external variables in the same situation.
>>
>> So if any solution needs to came up, then it needs to be generic, and 
>> I fear this is going to be yet another lengthy work which is not worth 
>> it for this case.
>>
>>> (and I've now added this to my short-term TODO list).
>>
>> Thanks. But as I wrote above, I am not sure I agree such proposal. Let 
>> see what the code looks like.
>>
> 
> Given the controversy that arose on this patch, maybe it's best to drop 
> it now from this series. If then it's agreed that as a temporary 
> workaround you want to leave it as is and deviate, as I proposed 
> elsewhere in the thread, feel free to reach out. Meanwhile, if patch 1 
> looks ok I can mark this series as done and focus on the v2 for R2.1, 
> which is almost ready.

I am still not in favor of deviation. We would need to create a new 
SAF-* (because none of the existing one are not correct) and it is not 
clear how you could argue this is a good deviation.

Just to be clear, this is not a Nack for a deviation. I find just silly 
we are trying to use deviation here just because there is a small roadblock.

To me the goal is to try to improve Xen, not trying to deviate 
everything because this is easier.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 10:09:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 10:09:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655012.1022640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE58I-0006gn-6p; Fri, 15 Dec 2023 10:09:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655012.1022640; Fri, 15 Dec 2023 10:09:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE58I-0006gg-2p; Fri, 15 Dec 2023 10:09:26 +0000
Received: by outflank-mailman (input) for mailman id 655012;
 Fri, 15 Dec 2023 10:09: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 1rE58G-0006dc-St
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 10:09: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 1rE58G-0002W8-EP; Fri, 15 Dec 2023 10:09:24 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rE58G-0002SS-9g; Fri, 15 Dec 2023 10:09: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=LKYG6QOonHkrTfzQaFyV96HChZyiX8dgHI4zP6hOfZo=; b=yWE8mV1UVlns7ViFDlGWvMhM4w
	vynaiXmjRGhQEQg7BL/A4uLuuCoyfEjeEh/T86oX7yk0sxsa/UmGmLGhTVP8zeU13ftOz2aXX3zNT
	rF17w4GxZ72kzDocXD6QcoeZUzzRmnrB/xXoaqsO6ouOdC82Y+3Ii9VYvr+uqYhNImA0=;
Message-ID: <ee67fddd-ca90-4b18-9256-579881e9fb87@xen.org>
Date: Fri, 15 Dec 2023 10:09:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/misra/rules.rst: add Rule 16.2
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, george.dunlap@citrix.com,
 bertrand.marquis@arm.com, roger.pau@citrix.com, roberto.bagnara@bugseng.com,
 federico.serafini@bugseng.com
References: <alpine.DEB.2.22.394.2312071612330.1265976@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312071612330.1265976@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 08/12/2023 00:18, Stefano Stabellini wrote:
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 10:13:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 10:13:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655016.1022649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE5CU-0008Tq-N4; Fri, 15 Dec 2023 10:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655016.1022649; Fri, 15 Dec 2023 10: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 1rE5CU-0008Tj-Jr; Fri, 15 Dec 2023 10:13:46 +0000
Received: by outflank-mailman (input) for mailman id 655016;
 Fri, 15 Dec 2023 10:13:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rE5CT-0008Td-DQ
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 10:13:45 +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 1rE5CS-0002b4-L2; Fri, 15 Dec 2023 10:13:44 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rE5CS-0002nN-FW; Fri, 15 Dec 2023 10:13:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=YF1IUtbjUDYNzmWTFBspUyEj570HY8hYtH34Zc78lgc=; b=4R2XC2H4ZQav5LSYMMtGu4BTp5
	/v2wQGI0G2HpqmAHPX0n9fukcB/QfukjukX5O6U83mE0i1BRflPuFWz3NpL+hJvbbUvoEYdoDt4OI
	Zc3pQJlZ/tPdtW+aGF0h5DX15NkpDsygDZSv1ni9PUIzYP+orBnf0M9FLA9zsnb2EJOo=;
Message-ID: <d7b880b2-10ec-4c3d-bf12-1c29995857d6@xen.org>
Date: Fri, 15 Dec 2023 10:13:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] docs/misra/rules.rst: add Rule 17.1
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, george.dunlap@citrix.com,
 bertrand.marquis@arm.com, roger.pau@citrix.com, roberto.bagnara@bugseng.com,
 federico.serafini@bugseng.com
References: <alpine.DEB.2.22.394.2312081738100.1703076@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312081738100.1703076@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 09/12/2023 01:39, Stefano Stabellini wrote:
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
> Changes in v2:
> - separated 17.1 in its own patch
> - add a comment
> 
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 8a659d8d47..f29b4c3d9a 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -189,6 +189,12 @@ existing codebase are work-in-progress.
>        - A switch-expression shall not have essentially Boolean type
>        -
>   
> +   * - `Rule 17.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
> +     - Required
> +     - The features of <stdarg.h> shall not be used
> +     - It is understood that in some limited circumstances <stdarg.h> is
> +       appropriate to use, such as the implementation of printk.

The last bullet point is unclear to me. You don't define what 
"appropriate" means here. So who is going to decide? Also, how is this 
going to be deviated?

Possibly the solution here is to remove the last bullet point and have a 
paragraph in deviations.rst explaining why we are using va_args.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 11:04:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 11:04:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655024.1022659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE5yy-0008Bz-Gd; Fri, 15 Dec 2023 11:03:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655024.1022659; Fri, 15 Dec 2023 11: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 1rE5yy-0008Bs-E8; Fri, 15 Dec 2023 11:03:52 +0000
Received: by outflank-mailman (input) for mailman id 655024;
 Fri, 15 Dec 2023 11:03:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rqNh=H2=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rE5yx-0008Bk-D0
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 11:03:51 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d773774-9b39-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 12:03:48 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id AE1D34EE073C;
 Fri, 15 Dec 2023 12:03:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d773774-9b39-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Fri, 15 Dec 2023 12:03:44 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org,
 consulting@bugseng.com, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
In-Reply-To: <alpine.DEB.2.22.394.2312141418160.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
 <240c97ed-ce27-406d-84ad-68b72e999294@xen.org>
 <5ad1c008182bc9f23e1b37b0d6e35e4c@bugseng.com>
 <2b4eec7c-3657-4542-96b9-56b272e8723b@xen.org>
 <alpine.DEB.2.22.394.2312141418160.3175268@ubuntu-linux-20-04-desktop>
Message-ID: <add58ef45d9cb970c2447f22443f50c8@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2023-12-14 23:32, Stefano Stabellini wrote:
> On Thu, 14 Dec 2023, Julien Grall wrote:
>> Hi,
>> 
>> On 13/12/2023 14:02, Nicola Vetrini wrote:
>> > On 2023-12-12 16:49, Julien Grall wrote:
>> > > Hi,
>> > >
>> > > On 11/12/2023 12:32, Julien Grall wrote:
>> > > > Hi,
>> > > >
>> > > > On 11/12/2023 10:30, Nicola Vetrini wrote:
>> > > > > The branches of the switch after a call to 'do_unexpected_trap'
>> > > > > cannot return, but there is one path that may return, hence
>> > > > > only some clauses are marked with ASSERT_UNREACHABLE().
>> > > > I don't understand why this is necessary. The code should never be
>> > > > reachable because do_unexpected_trap() is a noreturn().
>> > >
>> > > From the matrix discussion, it wasn't clear what was my position on this
>> > > patch.
>> > >
>> > > I would much prefer if the breaks are kept. I could accept:
>> > >
>> > > ASSERT_UNREACHABLE();
>> > > break;
>> > >
>> > > But this solution is a Nack because if you are concerned about functions
>> > > like do_unexpected_trap() to return by mistaken, then it needs to also be
>> > > safe in production.
>> > >
>> > > The current proposal is not safe.
> 
> I re-read the email thread. I also do not think that this is useful:
> 
>          do_unexpected_trap("SVE trap at EL2", regs);
> -        break;
> +        ASSERT_UNREACHABLE();
> 
> I also do not think that we should be concerned about functions like
> do_unexpected_trap() to return by mistaken.
> 
> That said, what is the problem from MISRA point of view that we are
> trying to fix? Is the only problem the presence of break; after the 
> call
> to a noreturn function?
> 
> If that's not allowed, I would suggest to do this:
> 
> 
>          do_unexpected_trap("SVE trap at EL2", regs);
> -        break;
> +        /* break; */
> 
> 
> Or deviate "break" globally as it doesn't seem to be a safety risk in 
> my
> opinion. If nothing else, it should make the code a bit safer because 
> in
> case of mistakes in do_unexpected_trap, at least we would continue to
> follow a more reasonable code path rather than blindly falling through
> the next switch case by accident.
> 
> 

That doesn't seem like a good idea to deviate just "break". However, 
Julien's earlier proposal

ASSERT_UNREACHABLE();
break;

is ok, though it could be shrunk in a macro

#define unreachable_break ASSERT_UNREACHABLE(); break;

or just

#define unreachable_break break;

so that "unreachable_break" can be deviated.

>> > Ok. I wonder whether the should be applied here in vcpreg.c:
>> >
>> > diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
>> > index 39aeda9dab62..089d2f03eb5e 100644
>> > --- a/xen/arch/arm/vcpreg.c
>> > +++ b/xen/arch/arm/vcpreg.c
>> > @@ -707,7 +707,8 @@ void do_cp10(struct cpu_user_regs *regs, const union hsr
>> > hsr)
>> >  Â Â Â Â Â Â Â Â  inject_undef_exception(regs, hsr);
>> >  Â Â Â Â Â Â Â Â  return;
>> >  Â Â Â Â  }
>> > -
>> > +
>> > +Â Â Â  ASSERT_UNREACHABLE();
>> >  Â Â Â Â  advance_pc(regs, hsr);
>> >  Â }
>> >
>> > the rationale being that, should the switch somehow fail to return, the
>> > advance_pc would be called, rather than doing nothing.
>> 
>> To clarify, advance_pc(regs, hsr) would still be called in production 
>> build.
>> So if you are concerned about advance_pc() been called, then adding an
>> ASSERT_UNREACHABLE() is not going to help.
>> 
>> It took me a little while to confirm that none of the path effectively 
>> returns
>> due to the macros (in hindsight, it wasn't a good idea of mine to 
>> introduce
>> them).
>> 
>> Depending on what we are trying to solve there are 3 possible 
>> approach:
>>   1. Leave advance_pc(). This means we could potentially
>>      a. Advance the PC twice (if it was already called) and therefore 
>> skipping
>> an instruction
>>      b. Advance the PC once without an emulation
>>   2. Remove advance_pc(). If we already called the function, then 
>> there is no
>> problem. Otherwise, we would trap in a loop effectively rendering the 
>> guest
>> vCPU unusable.
>>   3. Replace with domain_crash()
>> 
>> Here it feels, that 3 is more suitable as this gives a clear 
>> indication
>> why/where the emulation gone wrong.
>> 
>> This may still need to be accompanied with a ASSERT_UNREACHABLE() to 
>> please
>> MISRA.
>> 
>> Bertrand, Michal, Stefano, what do you think?
> 
> Yes, I would go with 3., replace advance_pc with domain_crash. Assuming
> that it would also solve the violation in ECLAIR.

It needs to be prefixed with an ASSERT_UNREACHABLE(), though, because 
it's still a violation if there is no execution path leading to 
domain_crash(), but other than that it seems the safest choice.

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 11:18:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 11:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655030.1022680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6DW-0002Jf-2f; Fri, 15 Dec 2023 11:18:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655030.1022680; Fri, 15 Dec 2023 11: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 1rE6DV-0002JY-Vj; Fri, 15 Dec 2023 11:18:53 +0000
Received: by outflank-mailman (input) for mailman id 655030;
 Fri, 15 Dec 2023 11:18:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE6DU-00024C-Dj
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 11:18:52 +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 b9b3ba33-9b3b-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 12:18:51 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-33638e7f71aso269965f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 03:18:51 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 t6-20020a5d6906000000b003364c7a8f2csm2414842wru.60.2023.12.15.03.18.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 03:18:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9b3ba33-9b3b-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702639130; x=1703243930; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZC9Vxss+k2nEc+pnvf7NZ+INbsOVxJbzC5jLly5PWRM=;
        b=cIG0B2tXACsBh1SIt0wsXQQ5Ecw5r11Zn7lo6gZp6JF/jAVpo7zddcG0u+SZrIs5mF
         ykAKZJy1g7bb+8rv1K8ipAT/by7xy2vUfR/FTeni4RHcFRJroRB024LaibOHWa7xz2yx
         Xf50vQDIJrEB90CwgSgj0QRoL/mHqd48qciKg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702639130; x=1703243930;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ZC9Vxss+k2nEc+pnvf7NZ+INbsOVxJbzC5jLly5PWRM=;
        b=YbkEs2pNgDcPvrO8wO02ZVkwpuCwYnfrRuZ430q3PYFtGyydWDW6xdqBviqeu7FHf3
         +AuOz9rQ7xs0RK065R3kcmArnhZyTOx6pRFCXcDSF7zIBm/nIh2CrBsmjbw+iVs46lyL
         gmCCCJiYKs2F+YoUrLVkE436t1i6/gorsxdgQWCKeKxknF3CR3FaL8xJKmwhtYSX9DX3
         hvXGipnqxNdavdzXGcOx9RtKFbbYr/DVYTl0nt1u4IG35nT91LrudeDVgB5O5C/iMYTc
         5fqOiz1McfPt0JjVJLHCusUSTNlLM3z02uOu+6GdX2KvPAzdwh1vWE231bxd8Ki7qm0U
         gJkw==
X-Gm-Message-State: AOJu0Yzk4MZ2WDDiLjonSlu73CZVDdfRvsb0Erwk2qV2CiKKz1Wi2rcG
	LFuBWCu8JUQ0EJP9q9LlvGI3xx0D9YSELWr6TyQ=
X-Google-Smtp-Source: AGHT+IH0M+5D/QAwXYgxAkDN+ZljJ81WuOOU4uJQ0nLNU+3BWqfooFuQ8OidqkMHCnkLGDT3PC0FAA==
X-Received: by 2002:a5d:458c:0:b0:336:44f0:6427 with SMTP id p12-20020a5d458c000000b0033644f06427mr1507783wrq.28.1702639130458;
        Fri, 15 Dec 2023 03:18:50 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	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>,
	Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 1/4] x86/livepatch: align functions to ensure minimal distance between entry points
Date: Fri, 15 Dec 2023 12:18:39 +0100
Message-ID: <20231215111842.8009-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215111842.8009-1-roger.pau@citrix.com>
References: <20231215111842.8009-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The minimal function size requirements for livepatch are either 5 bytes (for
jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  Ensure
that distance between functions entry points is always at least of the minimal
required size for livepatch instruction replacement to be successful.

Add an additional align directive to the linker script, in order to ensure that
the next section placed after the .text.* (per-function sections) is also
aligned to the required boundary, so that the distance of the last function
entry point with the next symbol is also of minimal size.

Note that it's possible for the compiler to end up using a higher function
alignment regardless of the passed value, so this change just make sure that
the minimum required for livepatch to work is present.  Different compilers
handle the option differently, as clang will ignore -falign-functions value
if it's smaller than the one that would be set by the optimization level, while
gcc seems to always honor the function alignment passed in -falign-functions.
In order to cope with this behavior and avoid that setting -falign-functions
results in an alignment inferior to what the optimization level would have
selected force x86 release builds to use a function alignment of 16 bytes.

The compiler option -falign-functions is not available on at least clang 3.8,
so introduce a Kconfig check for it and make the livepatch option depend on the
compiler supporting the option.

The naming of the option(s) CONFIG_FUNCTION_ALIGNMENT is explicitly not
mentioning CC in preparation for the option also being used by assembly code.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v3:
 - Test for compiler option with -falign-functions.
 - Make FUNCTION_ALIGNMENT depend on CC_HAS_FUNCTION_ALIGNMENT.
 - Set 16byte function alignment for x86 release builds.

Changes since v2:
 - Add Arm side.
 - Align end of section in the linker script to ensure enough padding for the
   last function.
 - Expand commit message and subject.
 - Rework Kconfig options.
 - Check that the compiler supports the option.

Changes since v1:
 - New in this version.
---
 xen/Kconfig              | 19 +++++++++++++++++++
 xen/Makefile             |  3 +++
 xen/arch/arm/livepatch.c |  2 ++
 xen/arch/arm/xen.lds.S   |  4 ++++
 xen/arch/x86/Kconfig     |  1 +
 xen/arch/x86/livepatch.c |  4 ++++
 xen/arch/x86/xen.lds.S   |  4 ++++
 xen/common/Kconfig       |  5 ++++-
 8 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index 134e6e68ad84..c2cc3fe165eb 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -37,6 +37,25 @@ config CC_HAS_VISIBILITY_ATTRIBUTE
 config CC_SPLIT_SECTIONS
 	bool
 
+# Set function alignment.
+#
+# Allow setting on a boolean basis, and then convert such selection to an
+# integer for the build system and code to consume more easily.
+config CC_HAS_FUNCTION_ALIGNMENT
+	def_bool $(cc-option,-falign-functions)
+config FUNCTION_ALIGNMENT_4B
+	bool
+config FUNCTION_ALIGNMENT_8B
+	bool
+config FUNCTION_ALIGNMENT_16B
+	bool
+config FUNCTION_ALIGNMENT
+	int
+	depends on CC_HAS_FUNCTION_ALIGNMENT
+	default 16 if FUNCTION_ALIGNMENT_16B
+	default  8 if  FUNCTION_ALIGNMENT_8B
+	default  4 if  FUNCTION_ALIGNMENT_4B
+
 source "arch/$(SRCARCH)/Kconfig"
 
 config DEFCONFIG_LIST
diff --git a/xen/Makefile b/xen/Makefile
index 21832d640225..162cb2bda1c5 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -390,6 +390,9 @@ CFLAGS += -fomit-frame-pointer
 endif
 
 CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections -fdata-sections
+ifdef CONFIG_FUNCTION_ALIGNMENT
+CFLAGS += -falign-functions=$(CONFIG_FUNCTION_ALIGNMENT)
+endif
 
 CFLAGS += -nostdinc -fno-builtin -fno-common
 CFLAGS += -Werror -Wredundant-decls -Wwrite-strings -Wno-pointer-arith
diff --git a/xen/arch/arm/livepatch.c b/xen/arch/arm/livepatch.c
index bbca1e5a5ed3..aa8ae8c38d28 100644
--- a/xen/arch/arm/livepatch.c
+++ b/xen/arch/arm/livepatch.c
@@ -68,6 +68,8 @@ void arch_livepatch_revive(void)
 
 int arch_livepatch_verify_func(const struct livepatch_func *func)
 {
+    BUILD_BUG_ON(ARCH_PATCH_INSN_SIZE > CONFIG_FUNCTION_ALIGNMENT);
+
     /* If NOPing only do up to maximum amount we can put in the ->opaque. */
     if ( !func->new_addr && (func->new_size > LIVEPATCH_OPAQUE_SIZE ||
          func->new_size % ARCH_PATCH_INSN_SIZE) )
diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 59b80d122fd0..afaf1e996b0e 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -44,6 +44,10 @@ SECTIONS
 #ifdef CONFIG_CC_SPLIT_SECTIONS
        *(.text.*)
 #endif
+#ifdef CONFIG_FUNCTION_ALIGNMENT
+       /* Ensure enough distance with the next placed section. */
+       . = ALIGN(CONFIG_FUNCTION_ALIGNMENT);
+#endif
 
        *(.fixup)
        *(.gnu.warning)
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 1acdffc51c22..0cd741be5b6f 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -29,6 +29,7 @@ config X86
 	select HAS_UBSAN
 	select HAS_VPCI if HVM
 	select NEEDS_LIBELF
+	select FUNCTION_ALIGNMENT_16B if !DEBUG
 
 config ARCH_DEFCONFIG
 	string
diff --git a/xen/arch/x86/livepatch.c b/xen/arch/x86/livepatch.c
index ee539f001b73..b00ad7120da9 100644
--- a/xen/arch/x86/livepatch.c
+++ b/xen/arch/x86/livepatch.c
@@ -109,6 +109,10 @@ int arch_livepatch_verify_func(const struct livepatch_func *func)
          */
         uint8_t needed = ARCH_PATCH_INSN_SIZE;
 
+        BUILD_BUG_ON(ARCH_PATCH_INSN_SIZE +
+                     (IS_ENABLED(CONIFG_XEN_IBT) ? ENDBR64_LEN : 0) >
+                     CONFIG_FUNCTION_ALIGNMENT);
+
         if ( is_endbr64(func->old_addr) || is_endbr64_poison(func->old_addr) )
             needed += ENDBR64_LEN;
 
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 8930e14fc40e..5b3332300d44 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -99,6 +99,10 @@ SECTIONS
        *(.text)
 #ifdef CONFIG_CC_SPLIT_SECTIONS
        *(.text.*)
+#endif
+#ifdef CONFIG_FUNCTION_ALIGNMENT
+       /* Ensure enough distance with the next placed section. */
+       . = ALIGN(CONFIG_FUNCTION_ALIGNMENT);
 #endif
        *(.text.__x86_indirect_thunk_*)
 
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 310ad4229cdf..c9a21c3c8a07 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -395,8 +395,11 @@ config CRYPTO
 config LIVEPATCH
 	bool "Live patching support"
 	default X86
-	depends on "$(XEN_HAS_BUILD_ID)" = "y"
+	depends on "$(XEN_HAS_BUILD_ID)" = "y" && CC_HAS_FUNCTION_ALIGNMENT
 	select CC_SPLIT_SECTIONS
+	select FUNCTION_ALIGNMENT_16B if XEN_IBT
+	select FUNCTION_ALIGNMENT_8B  if X86
+	select FUNCTION_ALIGNMENT_4B
 	---help---
 	  Allows a running Xen hypervisor to be dynamically patched using
 	  binary patches without rebooting. This is primarily used to binarily
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 11:18:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 11:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655029.1022669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6DU-00024W-Qs; Fri, 15 Dec 2023 11:18:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655029.1022669; Fri, 15 Dec 2023 11:18:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6DU-00024P-ON; Fri, 15 Dec 2023 11:18:52 +0000
Received: by outflank-mailman (input) for mailman id 655029;
 Fri, 15 Dec 2023 11:18:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE6DT-00024C-OQ
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 11:18:51 +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 b8bad3d4-9b3b-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 12:18:50 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c48d7a7a7so5131405e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 03:18:50 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 q14-20020a05600c46ce00b0040c4c9c52a3sm16968713wmo.12.2023.12.15.03.18.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 03:18:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8bad3d4-9b3b-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702639129; x=1703243929; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=QQSfgCUH/gyqfKahydnZfRc1+dZ9TnmnpZoNnoVbHCA=;
        b=tAZyuB+L/axBWDP5SxLPpMoNdbQ7QdcZow+tl53MBRbyxu8JQPKneocVtvOrjVoM5g
         X/ZcEsVwBP0GdfBEWv14Ez7RfLuhgKt8Od/vYhWcGyxwscRJ8Jt2ZBY3VfQp+17niR42
         RpCwGgFCaaPnQv3jGvaR8/AkZvt4i7XHvG3Eg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702639129; x=1703243929;
        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=QQSfgCUH/gyqfKahydnZfRc1+dZ9TnmnpZoNnoVbHCA=;
        b=wELR+IgOeNNjyYQknoDfjPuKgEfpIzTCHRO16kSfHPZl55EJwa+FNVSWWqcdOBc9ap
         zzA+ZJ7dFcqcLHuf+ANylo90EIXZ93s1yHVFM+le1rP/kA+fS+y8DEV5FfNczQjtt43Y
         5tAfQYlfUVjazY+1q2kudlENp1WxtXRsN0oxlhnnI/1Ak1lRZurU8aMoIMaYkOrBRcF7
         LEqg8bZHlIIxofNj//2Ky42XBD64xQAc25kInQvJRu1P+U/+fTFM8MJUfj4YXHaoLdJN
         5TddPvR5hQFoA6kNPdEH/7VclClPvuJtyypthdZJFR77f0ufhkTNMHfP/pkoA+qfkeUQ
         RnGg==
X-Gm-Message-State: AOJu0YxM+GQgISHPrr8dTZSlWxxBErXk9IfW9xDejZV6S86mFVVdyJwY
	tj15Hjl/WI6ueaKLd6hXouK5c/qPdD/tfxz9kS4=
X-Google-Smtp-Source: AGHT+IFwESF7Ewp9G+VWRj6rmJQWPYVvDfKnaUTthxyii3n7Ut2mEE7WCszR1WVBmtYa1xVTNilVCA==
X-Received: by 2002:a05:600c:3411:b0:404:4b6f:d70d with SMTP id y17-20020a05600c341100b004044b6fd70dmr6839489wmp.17.1702639128764;
        Fri, 15 Dec 2023 03:18:48 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v4 0/4] xen/x86: add testing for self modifying code and livepatch
Date: Fri, 15 Dec 2023 12:18:38 +0100
Message-ID: <20231215111842.8009-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The following series contains a misc set of fixes and improvements.

There's one improvement for the hypervisor to set function alignment for
livepatch builds in order to make sure there's always enough space in a
function to be live-patched.

Following patches attempt to introduce a set of tests for self modifying
code, currently one test using the alternatives framework, and one test
for livepatch.

Last patch hooks the newly introduced livepatch test into the gitlab CI
using QEMU and an Alpine Linux dom0:

https://gitlab.com/xen-project/people/royger/xen/-/pipelines/1108069448

Roger Pau Monne (4):
  x86/livepatch: align functions to ensure minimal distance between
    entry points
  xen/x86: introduce self modifying code test
  x86/livepatch: introduce a basic live patch test to gitlab CI
  automation: add x86-64 livepatching test

 automation/gitlab-ci/build.yaml               |  9 +++
 automation/gitlab-ci/test.yaml                |  8 +++
 automation/scripts/build-livepatch            | 27 +++++++
 .../scripts/qemu-alpine-x86_64-livepatch.sh   | 68 ++++++++++++++++++
 tools/include/xenctrl.h                       |  2 +
 tools/libs/ctrl/xc_misc.c                     | 14 ++++
 tools/misc/xen-livepatch.c                    | 29 ++++++++
 xen/Kconfig                                   | 19 +++++
 xen/Makefile                                  |  3 +
 xen/arch/arm/livepatch.c                      |  2 +
 xen/arch/arm/xen.lds.S                        |  4 ++
 xen/arch/x86/Kconfig                          |  1 +
 xen/arch/x86/Makefile                         |  1 +
 xen/arch/x86/include/asm/test.h               | 37 ++++++++++
 xen/arch/x86/livepatch.c                      |  4 ++
 xen/arch/x86/setup.c                          |  3 +
 xen/arch/x86/sysctl.c                         |  9 +++
 xen/arch/x86/test/Makefile                    |  3 +
 xen/arch/x86/test/smoc-lp-alt.c               | 24 +++++++
 xen/arch/x86/test/smoc-lp.c                   | 24 +++++++
 xen/arch/x86/test/smoc.c                      | 70 +++++++++++++++++++
 xen/arch/x86/xen.lds.S                        |  4 ++
 xen/common/Kconfig                            |  5 +-
 xen/common/kernel.c                           |  5 +-
 xen/include/public/sysctl.h                   | 13 ++++
 xen/include/xen/lib.h                         |  1 +
 26 files changed, 386 insertions(+), 3 deletions(-)
 create mode 100755 automation/scripts/build-livepatch
 create mode 100755 automation/scripts/qemu-alpine-x86_64-livepatch.sh
 create mode 100644 xen/arch/x86/include/asm/test.h
 create mode 100644 xen/arch/x86/test/Makefile
 create mode 100644 xen/arch/x86/test/smoc-lp-alt.c
 create mode 100644 xen/arch/x86/test/smoc-lp.c
 create mode 100644 xen/arch/x86/test/smoc.c

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 11:18:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 11:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655031.1022691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6DZ-0002a1-Bn; Fri, 15 Dec 2023 11:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655031.1022691; Fri, 15 Dec 2023 11: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 1rE6DZ-0002Zr-6O; Fri, 15 Dec 2023 11:18:57 +0000
Received: by outflank-mailman (input) for mailman id 655031;
 Fri, 15 Dec 2023 11: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=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE6DX-0002YQ-KJ
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 11:18:55 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bacae79c-9b3b-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 12:18:53 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3333074512bso935334f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 03:18:53 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 i1-20020a05600c354100b0040c411da99csm23156935wmq.48.2023.12.15.03.18.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 03:18:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bacae79c-9b3b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702639132; x=1703243932; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EJ4YPQXNY4qR0RRVt6L4swFAHn2UjNCHVeT7LC23VgE=;
        b=AXr7RXjid2TlJ9EA5EBdQp8ZworaGzRbkNAtGM6B89EUcTsx4ApvOINBczd+Yuh5+x
         RWE7YRzU8cu3SqVF9sxHdDHm/p/D5sbBTvD7DDUnDEa5eBBtqSc0h5Y0/tUGqT1/PGiA
         XXzgib7qi/w4UuKCkuiS2C1MNvvHv5Qy5mwBU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702639132; x=1703243932;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=EJ4YPQXNY4qR0RRVt6L4swFAHn2UjNCHVeT7LC23VgE=;
        b=szvZFN9zn8mTaS5cI21CNJrQRdiCZn1l1ncZJqGdJlXXkgAi0GVM3P28rUvHxXC+iP
         lGpXx0rgW0p+WoNdSi0p3guFGaZavGLZsDmO2pxAyEfhn/jxIa1zfq4dBreWMr8gibhV
         G5B9/x+f+bS040m+Na+t6wZYgFGS/BHuwTHCOQGHTjOyUIO+1bPd6MhVDBu7ngWatd2v
         RB7Rt52uHIOR9Qoqkcu2HZ4FVCajhEmy3peA5urERXzxdkI19Y0XDgukor81JOToAV9b
         Un4v/shdzKiaD/EsfLXngaBLz9pisBhYT9TwA/6XRZHh1Svdh9MS2OPV9FKTj6WAC61M
         Ud8g==
X-Gm-Message-State: AOJu0Yx7MdbyDn7kbPbOXi/UTLhyLsE/psa7eiPkGswxrgNRMfPemdgi
	AvfFPsHzh5PW+twO4SkUPIy7Y0ysnLkT6ZyRPZQ=
X-Google-Smtp-Source: AGHT+IH5PNz/24/bP8VTc+j65gdAELWDZpYAGHFgO/QA947980Z1wu/Y9/3QUmVawihD/uomRJLkug==
X-Received: by 2002:a05:600c:54c4:b0:40c:3984:4983 with SMTP id iw4-20020a05600c54c400b0040c39844983mr6213574wmb.76.1702639132200;
        Fri, 15 Dec 2023 03:18:52 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.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>
Subject: [PATCH v4 2/4] xen/x86: introduce self modifying code test
Date: Fri, 15 Dec 2023 12:18:40 +0100
Message-ID: <20231215111842.8009-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215111842.8009-1-roger.pau@citrix.com>
References: <20231215111842.8009-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a helper to perform checks related to self modifying code, and start
by creating a simple test to check that alternatives have been applied.

Such test is hooked into the boot process and called just after alternatives
have been applied.  In case of failure a message is printed, and the hypervisor
is tainted as not having passed the tests, this does require introducing a new
taint bit (printed as 'T').

A new sysctl is also introduced to run the tests on demand.  While there are no
current users introduced here, further changes will introduce those, and it's
helpful to have the interface defined in the sysctl header from the start.

Note the sysctl visibility is not limited to x86, albeit the only
implementation is for x86.  It's expected that other architectures can reuse
the same sysctl and structure, with possibly different tests.  Leave adjusting
those to when support for a different architecture is introduced, as the
sysctl interface is not stable anyway.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v3:
 - Rename taint variable.
 - Introduce a wrapper to run all selftests.
 - Only print messages and taint the hypervisor when tests are executed on
   boot.

Changes since v2:
 - Rename to smoc and place in test/smoc*
 - fix inline assembly.

Changes since v1:
 - Rework test and interface.
---
 tools/include/xenctrl.h         |  2 +
 tools/libs/ctrl/xc_misc.c       | 14 +++++++
 xen/arch/x86/Makefile           |  1 +
 xen/arch/x86/include/asm/test.h | 30 +++++++++++++++
 xen/arch/x86/setup.c            |  3 ++
 xen/arch/x86/sysctl.c           |  9 +++++
 xen/arch/x86/test/Makefile      |  1 +
 xen/arch/x86/test/smoc.c        | 66 +++++++++++++++++++++++++++++++++
 xen/common/kernel.c             |  5 ++-
 xen/include/public/sysctl.h     |  9 +++++
 xen/include/xen/lib.h           |  1 +
 11 files changed, 139 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/test.h
 create mode 100644 xen/arch/x86/test/Makefile
 create mode 100644 xen/arch/x86/test/smoc.c

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 2ef8b4e05422..0af796ae84e8 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2658,6 +2658,8 @@ int xc_dt_overlay(xc_interface *xch, void *overlay_fdt,
                   uint32_t overlay_fdt_size, uint8_t overlay_op);
 #endif
 
+int xc_test_smoc(xc_interface *xch, uint32_t tests, uint32_t *result);
+
 /* Compat shims */
 #include "xenctrl_compat.h"
 
diff --git a/tools/libs/ctrl/xc_misc.c b/tools/libs/ctrl/xc_misc.c
index 5ecdfa2c7934..1d3d5929cf96 100644
--- a/tools/libs/ctrl/xc_misc.c
+++ b/tools/libs/ctrl/xc_misc.c
@@ -1021,6 +1021,20 @@ int xc_livepatch_replace(xc_interface *xch, char *name, uint32_t timeout, uint32
     return _xc_livepatch_action(xch, name, LIVEPATCH_ACTION_REPLACE, timeout, flags);
 }
 
+int xc_test_smoc(xc_interface *xch, uint32_t tests, uint32_t *result)
+{
+    struct xen_sysctl sysctl = {
+        .cmd = XEN_SYSCTL_test_smoc,
+        .u.test_smoc.tests = tests,
+    };
+    int rc = do_sysctl(xch, &sysctl);
+
+    if ( !rc )
+        *result = sysctl.u.test_smoc.results;
+
+    return rc;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index f3abdf9cd111..ad5112b03c64 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_HVM) += hvm/
 obj-y += mm/
 obj-$(CONFIG_XENOPROF) += oprofile/
 obj-$(CONFIG_PV) += pv/
+obj-y += test/
 obj-y += x86_64/
 obj-y += x86_emulate/
 
diff --git a/xen/arch/x86/include/asm/test.h b/xen/arch/x86/include/asm/test.h
new file mode 100644
index 000000000000..e96e709c6a52
--- /dev/null
+++ b/xen/arch/x86/include/asm/test.h
@@ -0,0 +1,30 @@
+#ifndef _ASM_X86_TEST_H_
+#define _ASM_X86_TEST_H_
+
+#include <xen/types.h>
+
+int test_smoc(uint32_t selection, uint32_t *results);
+
+static inline void execute_selftests(void)
+{
+    const uint32_t exec_mask = XEN_SYSCTL_TEST_SMOC_ALL;
+    uint32_t result;
+    int rc;
+
+    printk(XENLOG_INFO "Checking Self Modify Code\n");
+    rc = test_smoc(exec_mask, &result);
+    if ( rc || (result & exec_mask) != exec_mask )
+        add_taint(TAINT_ERROR_SELFTEST);
+}
+
+#endif	/* _ASM_X86_TEST_H_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 3cba2be0af6c..e974a8f8d725 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -58,6 +58,7 @@
 #include <asm/microcode.h>
 #include <asm/prot-key.h>
 #include <asm/pv/domain.h>
+#include <asm/test.h>
 
 /* opt_nosmp: If true, secondary processors are ignored. */
 static bool __initdata opt_nosmp;
@@ -1951,6 +1952,8 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
 
     alternative_branches();
 
+    execute_selftests();
+
     /*
      * 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/sysctl.c b/xen/arch/x86/sysctl.c
index 1d40d82c5ad2..a61a99f8696a 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -25,6 +25,7 @@
 #include <asm/processor.h>
 #include <asm/setup.h>
 #include <asm/smp.h>
+#include <asm/test.h>
 #include <asm/numa.h>
 #include <xen/nodemask.h>
 #include <xen/cpu.h>
@@ -423,6 +424,14 @@ long arch_do_sysctl(
         break;
     }
 
+    case XEN_SYSCTL_test_smoc:
+        ret = test_smoc(sysctl->u.test_smoc.tests,
+                        &sysctl->u.test_smoc.results);
+        if ( !ret && __copy_field_to_guest(u_sysctl, sysctl,
+                                           u.test_smoc.results) )
+            ret = -EFAULT;
+        break;
+
     default:
         ret = -ENOSYS;
         break;
diff --git a/xen/arch/x86/test/Makefile b/xen/arch/x86/test/Makefile
new file mode 100644
index 000000000000..b504b8196659
--- /dev/null
+++ b/xen/arch/x86/test/Makefile
@@ -0,0 +1 @@
+obj-y += smoc.o
diff --git a/xen/arch/x86/test/smoc.c b/xen/arch/x86/test/smoc.c
new file mode 100644
index 000000000000..09db5cee9ae2
--- /dev/null
+++ b/xen/arch/x86/test/smoc.c
@@ -0,0 +1,66 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <xen/errno.h>
+
+#include <asm/alternative.h>
+#include <asm/cpufeature.h>
+#include <asm/test.h>
+
+static bool cf_check test_insn_replacement(void)
+{
+#define EXPECTED_VALUE 2
+    unsigned int r = ~EXPECTED_VALUE;
+
+    alternative_io("", "mov %1, %0", X86_FEATURE_ALWAYS,
+                   "+r" (r), "i" (EXPECTED_VALUE));
+
+    return r == EXPECTED_VALUE;
+#undef EXPECTED_VALUE
+}
+
+int test_smoc(uint32_t selection, uint32_t *results)
+{
+    struct {
+        unsigned int mask;
+        bool (*test)(void);
+        const char *name;
+    } static const tests[] = {
+        { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
+          "alternative instruction replacement" },
+    };
+    unsigned int i;
+
+    if ( selection & ~XEN_SYSCTL_TEST_SMOC_ALL )
+        return -EINVAL;
+
+    if ( results )
+        *results = 0;
+
+    for ( i = 0; i < ARRAY_SIZE(tests); i++ )
+    {
+        if ( !(selection & tests[i].mask) )
+            continue;
+
+        if ( tests[i].test() )
+        {
+            if ( results )
+                *results |= tests[i].mask;
+            continue;
+        }
+
+        if ( system_state < SYS_STATE_active )
+            printk(XENLOG_ERR "%s test failed\n", tests[i].name);
+    }
+
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index 08dbaa2a054c..77f93f137cac 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -386,13 +386,14 @@ char *print_tainted(char *str)
 {
     if ( tainted )
     {
-        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c",
+        snprintf(str, TAINT_STRING_MAX_LEN, "Tainted: %c%c%c%c%c%c%c",
                  tainted & TAINT_MACHINE_INSECURE ? 'I' : ' ',
                  tainted & TAINT_MACHINE_CHECK ? 'M' : ' ',
                  tainted & TAINT_SYNC_CONSOLE ? 'C' : ' ',
                  tainted & TAINT_ERROR_INJECT ? 'E' : ' ',
                  tainted & TAINT_HVM_FEP ? 'H' : ' ',
-                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ');
+                 tainted & TAINT_CPU_OUT_OF_SPEC ? 'S' : ' ',
+                 tainted & TAINT_ERROR_SELFTEST ? 'T' : ' ');
     }
     else
     {
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 9b19679caeb1..d015a490da38 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -1201,6 +1201,13 @@ struct xen_sysctl_dt_overlay {
 };
 #endif
 
+struct xen_sysctl_test_smoc {
+    uint32_t tests;     /* IN: bitmap with selected tests to execute. */
+#define XEN_SYSCTL_TEST_SMOC_INSN_REPL   (1U << 0)
+#define XEN_SYSCTL_TEST_SMOC_ALL         (XEN_SYSCTL_TEST_SMOC_INSN_REPL)
+    uint32_t results;   /* OUT: test result: 1 -> success, 0 -> failure. */
+};
+
 struct xen_sysctl {
     uint32_t cmd;
 #define XEN_SYSCTL_readconsole                    1
@@ -1232,6 +1239,7 @@ struct xen_sysctl {
 /* #define XEN_SYSCTL_set_parameter              28 */
 #define XEN_SYSCTL_get_cpu_policy                29
 #define XEN_SYSCTL_dt_overlay                    30
+#define XEN_SYSCTL_test_smoc                     31
     uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */
     union {
         struct xen_sysctl_readconsole       readconsole;
@@ -1259,6 +1267,7 @@ struct xen_sysctl {
         struct xen_sysctl_cpu_levelling_caps cpu_levelling_caps;
         struct xen_sysctl_cpu_featureset    cpu_featureset;
         struct xen_sysctl_livepatch_op      livepatch;
+        struct xen_sysctl_test_smoc         test_smoc;
 #if defined(__i386__) || defined(__x86_64__)
         struct xen_sysctl_cpu_policy        cpu_policy;
 #endif
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index 1793be5b6b89..dcb42a5b64c9 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -167,6 +167,7 @@ uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c);
 #define TAINT_HVM_FEP                   (1u << 3)
 #define TAINT_MACHINE_INSECURE          (1u << 4)
 #define TAINT_CPU_OUT_OF_SPEC           (1u << 5)
+#define TAINT_ERROR_SELFTEST            (1U << 6)
 extern unsigned int tainted;
 #define TAINT_STRING_MAX_LEN            20
 extern char *print_tainted(char *str);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 11:18:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 11:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655032.1022695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6DZ-0002hG-Ph; Fri, 15 Dec 2023 11:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655032.1022695; Fri, 15 Dec 2023 11: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 1rE6DZ-0002ez-LW; Fri, 15 Dec 2023 11:18:57 +0000
Received: by outflank-mailman (input) for mailman id 655032;
 Fri, 15 Dec 2023 11:18:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE6DY-0002YQ-AE
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 11:18:56 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb6777a3-9b3b-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 12:18:54 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c38e292c8so2717425e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 03:18:54 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 v14-20020a5d4a4e000000b003333541a5bdsm18546891wrs.80.2023.12.15.03.18.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 03:18:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb6777a3-9b3b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702639134; x=1703243934; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8pZ/40IFyhVPhsZHwd4jJR9UQEqZhbtR8GJbwcsXPwM=;
        b=dGKmgbvQHjwTTfbLTDcDoDAbHpTYx07UkR8jWXaFjhdoHa8dHfB3dkde8ovY1BGjr7
         1U7Nab3QlvPllhWk2xEcHnEFt/b+N3dIQr9KmKC26C6snPeLEQT5/GZpR7va93THCJRw
         3FTqWw4i4AamkI2fBEnvTTdWtzR/AIJ36pCE4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702639134; x=1703243934;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=8pZ/40IFyhVPhsZHwd4jJR9UQEqZhbtR8GJbwcsXPwM=;
        b=m233xB0XFqtai9MaBSM1Olngb0+O53jLBT01tibj7wwbsF/+HX8eEuxOR8BB0VWELd
         GYGiMJ/DEJhzvtY37NvCYSDIJ5vwSCoj7pW9pqnCxxwPpAs4bhdmVfszwHNcf9Ixshcj
         XWtTMirIZ61LW2IN8MTTDD/w8L3gp713KEkFg6len4wPOlJk2+C4LnCLOXcTbYFOsRHm
         yWlHYeWfACoHskLRT3ZhI3c1QBdaqwTyWdiETftzRtEnrDtgSfDKyQHbrYF/XK13Rz3e
         Ln4GT2/mmEX/tO+l9d/Fn9lZNsALlU1pxS5aeALEMPvp3RmZFokRXWmjRqepyjn/8c+y
         /9mg==
X-Gm-Message-State: AOJu0YxCISA9WZBJGMTMlxMribSI+p3eLYrCXAZLiH1DH6WruXMlSalp
	SSBCaSsKDHvnLiH0Qs1Q27a3IyerzOg0X3/b/wc=
X-Google-Smtp-Source: AGHT+IHM6LyEQJjS5r5wgOMqxTjLBuiwG9g8fGA70gVVpa+M0/gMISIxwNnAsj0O1luVjyHYHVl7jA==
X-Received: by 2002:a05:600c:1503:b0:40c:2c5f:5887 with SMTP id b3-20020a05600c150300b0040c2c5f5887mr5740434wmg.22.1702639133809;
        Fri, 15 Dec 2023 03:18:53 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.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>
Subject: [PATCH v4 3/4] x86/livepatch: introduce a basic live patch test to gitlab CI
Date: Fri, 15 Dec 2023 12:18:41 +0100
Message-ID: <20231215111842.8009-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215111842.8009-1-roger.pau@citrix.com>
References: <20231215111842.8009-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a basic livepatch test using the interface to run self modifying
tests.  The introduced test relies on changing a function from returning false
to returning true.

To simplify the burden of keeping a patch that can be provided to
livepatch-build-tools, introduce two new files: one containing the unpatched
test functions, and another one that contains the patched forms of such
functions.  Note that only the former is linked into the Xen image, the latter
is built but the object file is not consumed afterwards.  Do this to assert
that the file containing the patched functions continues to build.

Since livepatch testing will ensure that the functions are not patched previous
the applying the livepatch, allow the livepatch related tests to fail without
tainting the hypervisor.

Note the livepatch tests are not run as part of the self modifying checks
executed during boot, as they would obviously fail.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v3:
 - Rebase over previous changes.

Changes since v2:
 - Clarify comment about xor vs mov instructions for return false/true
   encodings.

Changes since v1:
 - New interface & test.
---
 tools/misc/xen-livepatch.c      | 29 +++++++++++++++++++++++++++++
 xen/arch/x86/include/asm/test.h |  9 ++++++++-
 xen/arch/x86/test/Makefile      |  2 ++
 xen/arch/x86/test/smoc-lp-alt.c | 24 ++++++++++++++++++++++++
 xen/arch/x86/test/smoc-lp.c     | 24 ++++++++++++++++++++++++
 xen/arch/x86/test/smoc.c        |  4 ++++
 xen/include/public/sysctl.h     |  6 +++++-
 7 files changed, 96 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/x86/test/smoc-lp-alt.c
 create mode 100644 xen/arch/x86/test/smoc-lp.c

diff --git a/tools/misc/xen-livepatch.c b/tools/misc/xen-livepatch.c
index 5bf9d9a32b65..4ebd1b4e936d 100644
--- a/tools/misc/xen-livepatch.c
+++ b/tools/misc/xen-livepatch.c
@@ -37,6 +37,7 @@ void show_help(void)
             "  replace <name>         apply <name> patch and revert all others.\n"
             "  unload <name>          unload name <name> patch.\n"
             "  load <file> [flags]    upload and apply <file> with name as the <file> name\n"
+            "  test                   execute self modifying code livepatch hypervisor tests\n"
             "    Supported flags:\n"
             "      --nodeps           Disable inter-module buildid dependency check.\n"
             "                         Check only against hypervisor buildid.\n",
@@ -542,6 +543,33 @@ error:
     return rc;
 }
 
+static int test_func(int argc, char *argv[])
+{
+    uint32_t results = 0;
+    int rc;
+
+    if ( argc != 0 )
+    {
+        show_help();
+        return -1;
+    }
+
+    rc = xc_test_smoc(xch, XEN_SYSCTL_TEST_SMOC_LP, &results);
+    if ( rc )
+    {
+        fprintf(stderr, "test operation failed: %s\n", strerror(errno));
+        return -1;
+    }
+    if ( (results & XEN_SYSCTL_TEST_SMOC_LP) != XEN_SYSCTL_TEST_SMOC_LP )
+    {
+        fprintf(stderr, "some tests failed: %#x (expected %#x)\n",
+                results, XEN_SYSCTL_TEST_SMOC_LP);
+        return -1;
+    }
+
+    return 0;
+}
+
 /*
  * These are also functions in action_options that are called in case
  * none of the ones in main_options match.
@@ -554,6 +582,7 @@ struct {
     { "list", list_func },
     { "upload", upload_func },
     { "load", load_func },
+    { "test", test_func },
 };
 
 int main(int argc, char *argv[])
diff --git a/xen/arch/x86/include/asm/test.h b/xen/arch/x86/include/asm/test.h
index e96e709c6a52..951aaaa1f55e 100644
--- a/xen/arch/x86/include/asm/test.h
+++ b/xen/arch/x86/include/asm/test.h
@@ -3,11 +3,18 @@
 
 #include <xen/types.h>
 
+#include <public/sysctl.h>
+
 int test_smoc(uint32_t selection, uint32_t *results);
 
+#ifdef CONFIG_LIVEPATCH
+bool cf_check test_lp_insn_replacement(void);
+#endif
+
 static inline void execute_selftests(void)
 {
-    const uint32_t exec_mask = XEN_SYSCTL_TEST_SMOC_ALL;
+    const uint32_t exec_mask = XEN_SYSCTL_TEST_SMOC_ALL &
+                               ~XEN_SYSCTL_TEST_SMOC_LP;
     uint32_t result;
     int rc;
 
diff --git a/xen/arch/x86/test/Makefile b/xen/arch/x86/test/Makefile
index b504b8196659..3a5a0a98e4db 100644
--- a/xen/arch/x86/test/Makefile
+++ b/xen/arch/x86/test/Makefile
@@ -1 +1,3 @@
 obj-y += smoc.o
+obj-$(CONFIG_LIVEPATCH)   += smoc-lp.o     #Â for livepatch testing
+extra-$(CONFIG_LIVEPATCH) += smoc-lp-alt.o
diff --git a/xen/arch/x86/test/smoc-lp-alt.c b/xen/arch/x86/test/smoc-lp-alt.c
new file mode 100644
index 000000000000..16cf65dafdc1
--- /dev/null
+++ b/xen/arch/x86/test/smoc-lp-alt.c
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <asm/test.h>
+
+/*
+ * Interesting case because `return false` can be encoded as `xor %eax, %eax`,
+ * which is shorter than `return true` which is encoded as a `mov $1, %eax`
+ * instruction (based on code generated by GCC 13.2 at -O2), and also shorter
+ * than the replacement `jmp` instruction.
+ */
+bool cf_check test_lp_insn_replacement(void)
+{
+    return true;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/x86/test/smoc-lp.c b/xen/arch/x86/test/smoc-lp.c
new file mode 100644
index 000000000000..ac32bce4d464
--- /dev/null
+++ b/xen/arch/x86/test/smoc-lp.c
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <asm/test.h>
+
+/*
+ * Interesting case because `return false` can be encoded as `xor %eax, %eax`,
+ * which is shorter than `return true` which is encoded as a `mov $1, %eax`
+ * instruction (based on code generated by GCC 13.2 at -O2), and also shorter
+ * than the replacement `jmp` instruction.
+ */
+bool cf_check test_lp_insn_replacement(void)
+{
+    return false;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/x86/test/smoc.c b/xen/arch/x86/test/smoc.c
index 09db5cee9ae2..3a6091141fdf 100644
--- a/xen/arch/x86/test/smoc.c
+++ b/xen/arch/x86/test/smoc.c
@@ -27,6 +27,10 @@ int test_smoc(uint32_t selection, uint32_t *results)
     } static const tests[] = {
         { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
           "alternative instruction replacement" },
+#ifdef CONFIG_LIVEPATCH
+        { XEN_SYSCTL_TEST_SMOC_LP_INSN, &test_lp_insn_replacement,
+          "livepatch instruction replacement" },
+#endif
     };
     unsigned int i;
 
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index d015a490da38..f12fc1e2f110 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -1204,7 +1204,11 @@ struct xen_sysctl_dt_overlay {
 struct xen_sysctl_test_smoc {
     uint32_t tests;     /* IN: bitmap with selected tests to execute. */
 #define XEN_SYSCTL_TEST_SMOC_INSN_REPL   (1U << 0)
-#define XEN_SYSCTL_TEST_SMOC_ALL         (XEN_SYSCTL_TEST_SMOC_INSN_REPL)
+#define XEN_SYSCTL_TEST_SMOC_LP_INSN     (1U << 1)
+#define XEN_SYSCTL_TEST_SMOC_ALL         (XEN_SYSCTL_TEST_SMOC_INSN_REPL | \
+                                         XEN_SYSCTL_TEST_SMOC_LP_INSN)
+#define XEN_SYSCTL_TEST_SMOC_LP          (XEN_SYSCTL_TEST_SMOC_LP_INSN)
+
     uint32_t results;   /* OUT: test result: 1 -> success, 0 -> failure. */
 };
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 11:18:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 11:18:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655033.1022701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6Da-0002o1-61; Fri, 15 Dec 2023 11:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655033.1022701; Fri, 15 Dec 2023 11:18:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6Da-0002lu-26; Fri, 15 Dec 2023 11:18:58 +0000
Received: by outflank-mailman (input) for mailman id 655033;
 Fri, 15 Dec 2023 11:18:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE6DZ-00024C-0m
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 11:18:57 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc62f88d-9b3b-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 12:18:56 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c38e292c8so2717515e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 03:18:56 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 y12-20020a5d614c000000b0033643505580sm5386737wrt.92.2023.12.15.03.18.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 03:18:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc62f88d-9b3b-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702639135; x=1703243935; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZZlPTOk9/t1OmWoVhIbxLZaJgIzAgwV+V3DWNDNFJhM=;
        b=f3BLzzv5ZsU/UZqlYbkCDjgpO7r3L5wQQtBjDqhDuJs8Y6ujcceFYbAQSvhTYFGR2l
         55VuGviFlAYAesWWedS/rWzi9Zt1ceNfj/GQVQkh0aBLj8ZsUpGSMGi5uyT/K1tQPd05
         uNn8h+vcot3p9cQtwV/l8M9QIcLZnSjucIugc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702639135; x=1703243935;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ZZlPTOk9/t1OmWoVhIbxLZaJgIzAgwV+V3DWNDNFJhM=;
        b=Z5MMlEJX8HUlQyQbwdNXUtf7W41sw1+TP9+GpuIfPCtUC687+H34p/iHvh6vufjUo7
         hUEujAKOxnKpAD1Kwtc7miYlEMKOlIsYGJ6dQEMLQ01wkBNVHauvFFQI0jSTrEdQZhLp
         Vyysb6NfNuo2d/0Q7b1gQt6qfSbbMV4STcHfbX4yI7wo8XucwDSqdoti8i3iARKpwlej
         tGzqsEUWl9/eSf6Lpz5NVYRu8b7xuZr9CRn6t7vUQ/ad3KF86CGvCa4MEeTR87wrgFiw
         pzB56KfE3PWJYM73dtV3xy3QcsWI826hj+14tIKDPgCUbOGNdLzswhwzWZ3VgVeQGV4c
         Ee3w==
X-Gm-Message-State: AOJu0Yzg8pLAxGWmDRqOsnZDWZsjdbLnIZsfeHqlf7PwSgyM5MC1AmvX
	l+upMLZ7ncsVCcBO6BCa+gNxWKTYscZeDKE85XM=
X-Google-Smtp-Source: AGHT+IHQcoXi5iRHcJl9BtkyYNoOiiLzn01aWEKXAHCv8Vq7W5AiqIeHGveqt0nuPd3l7VKX8C1RcA==
X-Received: by 2002:a05:600c:54e4:b0:40b:5e56:7b48 with SMTP id jb4-20020a05600c54e400b0040b5e567b48mr5458792wmb.145.1702639135024;
        Fri, 15 Dec 2023 03:18:55 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 4/4] automation: add x86-64 livepatching test
Date: Fri, 15 Dec 2023 12:18:42 +0100
Message-ID: <20231215111842.8009-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215111842.8009-1-roger.pau@citrix.com>
References: <20231215111842.8009-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a new gitlab tests for livepatching, using livepatch-build-tools,
which better reflects how downstreams build live patches rather than the
in-tree tests.

The tests applies the dummy in-tree patch example, checks that the patch is
applied correctly and then reverts and unloads it.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes since v2:
 - Split livepatch build into a separate script.
---
 automation/gitlab-ci/build.yaml               |  9 +++
 automation/gitlab-ci/test.yaml                |  8 +++
 automation/scripts/build-livepatch            | 27 ++++++++
 .../scripts/qemu-alpine-x86_64-livepatch.sh   | 68 +++++++++++++++++++
 4 files changed, 112 insertions(+)
 create mode 100755 automation/scripts/build-livepatch
 create mode 100755 automation/scripts/qemu-alpine-x86_64-livepatch.sh

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 32af30ccedc9..d770bffb845e 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -358,6 +358,15 @@ alpine-3.18-gcc-debug:
   variables:
     CONTAINER: alpine:3.18
 
+alpine-3.18-gcc-livepatch:
+  extends: .gcc-x86-64-build
+  script:
+    - ./automation/scripts/build-livepatch 2>&1 | tee build.log
+  variables:
+    CONTAINER: alpine:3.18
+    EXTRA_XEN_CONFIG: |
+      CONFIG_LIVEPATCH=y
+
 debian-stretch-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 6aabdb9d156f..58a90be5ed0e 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -459,3 +459,11 @@ qemu-smoke-ppc64le-powernv9-gcc:
   needs:
     - qemu-system-ppc64-8.1.0-ppc64-export
     - debian-bullseye-gcc-ppc64le-debug
+
+qemu-alpine-x86_64-gcc-livepatch:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-alpine-x86_64-livepatch.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-livepatch
diff --git a/automation/scripts/build-livepatch b/automation/scripts/build-livepatch
new file mode 100755
index 000000000000..ac86b17ae5e4
--- /dev/null
+++ b/automation/scripts/build-livepatch
@@ -0,0 +1,27 @@
+#!/bin/bash -ex
+
+# Do a regular build first
+./automation/scripts/build
+
+# Build a test livepatch using livepatch-build-tools.
+
+if [[ "$XEN_TARGET_ARCH" != "x86_64" ]]; then
+    exit 1
+fi
+
+BASE=xen/arch/x86/test/smoc-lp.c
+ALT=xen/arch/x86/test/smoc-lp-alt.c
+
+[[ -f $BASE && -f $ALT ]]
+
+# git diff --no-index returns 0 if no differences, otherwise 1.
+git diff --no-index --output=test.patch $BASE $ALT && exit 1
+
+BUILDID=$(readelf -Wn xen/xen-syms | sed -n -e 's/^.*Build ID: //p')
+
+git clone https://xenbits.xen.org/git-http/livepatch-build-tools.git
+cd livepatch-build-tools
+make
+./livepatch-build -s ../ -p ../test.patch -o out -c ../xen/.config \
+    --depends $BUILDID --xen-depends $BUILDID
+cp out/test.livepatch ../binaries/test.livepatch
diff --git a/automation/scripts/qemu-alpine-x86_64-livepatch.sh b/automation/scripts/qemu-alpine-x86_64-livepatch.sh
new file mode 100755
index 000000000000..da478cac4376
--- /dev/null
+++ b/automation/scripts/qemu-alpine-x86_64-livepatch.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+set -ex
+
+cd binaries
+# initrd.tar.gz is Dom0 rootfs
+mkdir -p rootfs
+cd rootfs
+tar xvzf ../initrd.tar.gz
+mkdir proc
+mkdir run
+mkdir srv
+mkdir sys
+rm var/run
+cp -ar ../dist/install/* .
+cp ../test.livepatch ./root/
+cat << "EOF" >> etc/local.d/xen-lp.start
+#!/bin/bash
+
+set -ex
+
+trap poweroff EXIT
+
+export LD_LIBRARY_PATH=/usr/local/lib
+
+xen-livepatch test && exit 1 || true
+
+xen-livepatch load /root/test.livepatch
+
+# Cannot fail now
+xen-livepatch test
+
+xen-livepatch revert test
+xen-livepatch unload test
+
+xen-livepatch test && exit 1 || true
+
+echo "SUCCESS"
+EOF
+chmod +x etc/local.d/xen-lp.start
+echo "rc_verbose=yes" >> etc/rc.conf
+# rebuild Dom0 rootfs
+find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+cd ../..
+
+cat >> binaries/pxelinux.0 << EOF
+#!ipxe
+
+kernel xen console=com1 console_timestamps=boot
+module bzImage console=hvc0
+module xen-rootfs.cpio.gz
+boot
+EOF
+
+# Run the test
+rm -f smoke.serial
+timeout -k 1 360 \
+qemu-system-x86_64 \
+    -cpu qemu64,+svm \
+    -m 2G -smp 2 \
+    -monitor none -serial stdio \
+    -nographic \
+    -device virtio-net-pci,netdev=n0 \
+    -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 |& \
+        tee smoke.serial | sed 's/\r//'
+
+grep -q "SUCCESS" smoke.serial
+exit 0
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 11:47:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 11:47:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655070.1022719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6fF-0001eK-BE; Fri, 15 Dec 2023 11:47:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655070.1022719; Fri, 15 Dec 2023 11:47:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6fF-0001eD-8f; Fri, 15 Dec 2023 11:47:33 +0000
Received: by outflank-mailman (input) for mailman id 655070;
 Fri, 15 Dec 2023 11:47: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=qUFd=H2=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1rE6fD-0001e7-F5
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 11:47:31 +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 ba1cedf1-9b3f-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 12:47:30 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c39e936b4so5961645e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 03:47:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ba1cedf1-9b3f-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702640850; x=1703245650; 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=TenIao7bMiUVyvEGfhfEceUI6WytzaJa5c4gA8UOiHc=;
        b=U9v6HafNTPexqAr1Nq6GcEfKdx/jceve8FvRyg2ecdbx0HvMZNiYcWusyc66Cc0k1D
         OscGZsSgTuUdPxoLCRCATOdCCkEJi+DSs0BA1OpogNFg3bPy8YkbSahaSagHz/wKuTV3
         nRxbP+ffXPN96O1nhnjBkkjWeU29OyyI/J1bE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702640850; x=1703245650;
        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=TenIao7bMiUVyvEGfhfEceUI6WytzaJa5c4gA8UOiHc=;
        b=aRJJrJIyoBEURuDhBhJNNkt6Nycfh+n6tKJ6iKtSmKCSM2TAKr3F3BcUrK27MByrad
         S4azqZwsDEYMl+qFgO4+qzrRG4yDSCzE7GMzCkZs6luK60HBjzcXpOHLlV5exrCLHBU8
         BzuxfbyVq7ibHE+RKqsHXLhnbUawRjMZAq83bNfj/B0gmM/EyGDE11o1de1Id0jl8Je+
         tznshNiGvMQ+ixx16bh7UCiB0gEyaCfU3RXa+6S7ooONv03gyoDbT0NrB5wLRn7eh8Oc
         iF6eNzvnpv05g+olr6WU//+E68oisFii9QD8Rts7eqQXMwRvUO5ZnSIW1yFhb7hNPQ+z
         BBEg==
X-Gm-Message-State: AOJu0Yz+UVjIFbvSPMEyhHJCAH4zZc0FWlHtnsoF1Ji5P1gBu9XBIh93
	/iG58k8tdMUEnGOkVm3yY7lLJm5dej68CE/R/5AF
X-Google-Smtp-Source: AGHT+IEAM9d/uNJA8u1Vg5tTYO+RBd4K1EX5rSNkRyigqjkaPrD4fX7j0CFMYTRTQWoP7AJbxafzWyJ1vJUx37s8P7g=
X-Received: by 2002:a05:600c:2814:b0:40b:5f03:b43f with SMTP id
 m20-20020a05600c281400b0040b5f03b43fmr3058809wmb.353.1702640849828; Fri, 15
 Dec 2023 03:47:29 -0800 (PST)
MIME-Version: 1.0
References: <20231214085424.16890-1-roger.pau@citrix.com>
In-Reply-To: <20231214085424.16890-1-roger.pau@citrix.com>
From: Ross Lagerwall <ross.lagerwall@cloud.com>
Date: Fri, 15 Dec 2023 11:47:18 +0000
Message-ID: <CAG7k0EqHi2gTFY8rhuceVURTWv1TvHLuQgkvjtjoz=A7GWdiAQ@mail.gmail.com>
Subject: Re: [PATCH v2] livepatch-build-tools: allow livepatching version.c
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, 
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 14, 2023 at 8:54=E2=80=AFAM Roger Pau Monne <roger.pau@citrix.c=
om> wrote:
>
> Currently version.o is explicitly ignored as the file would change as a r=
esult
> of the orignal and the patched build having possibly different dates, tim=
es or
> changeset strings (by the patched build appending -dirty).
>
> Fix such difference by exporting the date and time from the build script,=
 so
> that both builds share the same build time.  The changeset string gets se=
t in
> .scmversion, and is cleaned on script exit if it wasn't present initially=
. This
> allows checking for changes in version.c, since the rest of fields need t=
o be
> manually changed in order to produce different output.
>
> Setting XEN_BUILD_{DATE,TIME} as an environment variable and .scmversion =
has
> been supported since before livepatch support was added to Xen, so it's s=
afe to
> export those variables unconditionally.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
> Changes since v1:
>  - Also ensure consistent changeset version.
> ---
>  livepatch-build | 14 ++++++++++++++
>  livepatch-gcc   |  2 --
>  2 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/livepatch-build b/livepatch-build
> index e2ccce4f7fd7..332d26f5c6b6 100755
> --- a/livepatch-build
> +++ b/livepatch-build
> @@ -392,6 +392,10 @@ echo "Output directory: $outputarg"
>  echo "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D"
>  echo
>
> +cleanup_version() {
> +    rm -rf "${SRCDIR}/xen/.scmversion"
> +}
> +
>  if [ "${SKIP}" !=3D "build" ]; then
>      # Make sure output directory doesn't exist, and create it.
>      [ -e "$outputarg" ] && die "Output directory exists"
> @@ -417,6 +421,16 @@ if [ "${SKIP}" !=3D "build" ]; then
>
>      export CROSS_COMPILE=3D"${TOOLSDIR}/livepatch-gcc "
>
> +    # Force same date and time to prevent unwanted changes in version.c
> +    export XEN_BUILD_DATE=3D`LC_ALL=3DC date`
> +    export XEN_BUILD_TIME=3D`LC_ALL=3DC date +%T`
> +
> +    # Ensure uniform changeset between builds
> +    if [ ! -e "${SRCDIR}/xen/.scmversion" ]; then
> +        trap cleanup_version EXIT
> +        echo "unavailable" > "${SRCDIR}/xen/.scmversion"

Shouldn't this be "${SRCDIR}/.scmversion" since Xen runs
"$(srctree)/tools/scmversion $(XEN_ROOT)"?

Otherwise I still get spurious version.o changes...

With the 3 uses of that changed (can change during commit),

Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 11:56:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 11:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655073.1022730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6o9-0003uh-92; Fri, 15 Dec 2023 11:56:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655073.1022730; Fri, 15 Dec 2023 11: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 1rE6o9-0003ua-50; Fri, 15 Dec 2023 11:56:45 +0000
Received: by outflank-mailman (input) for mailman id 655073;
 Fri, 15 Dec 2023 11: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=25p9=H2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rE6o8-0003uR-Dp
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 11:56:44 +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 02bd88e9-9b41-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 12:56:42 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 97295220BB;
 Fri, 15 Dec 2023 11:56: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 5F72413726;
 Fri, 15 Dec 2023 11:56:40 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id IGmPFfg+fGXneQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 15 Dec 2023 11: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: 02bd88e9-9b41-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702641400; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:autocrypt:autocrypt;
	bh=LRMQqVrZ6GARetn79IuzTK+ZJbxCgecJDKfpgXerAnA=;
	b=VJsG4X6sgw1MGJnKTekVz+InOJNR+WtKCZtrphNcQx5la13R1R58GuwHZsWGmRglDayToA
	n1BNORfX/527aa9tkppMJmwE6wha2Bcswih8E7uddmWFW3fczrWn3+2zzOAejVno6ZHi5J
	3KuUbnjbEfogNHlR34NOw82jxBTCy2Y=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702641400; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:autocrypt:autocrypt;
	bh=LRMQqVrZ6GARetn79IuzTK+ZJbxCgecJDKfpgXerAnA=;
	b=VJsG4X6sgw1MGJnKTekVz+InOJNR+WtKCZtrphNcQx5la13R1R58GuwHZsWGmRglDayToA
	n1BNORfX/527aa9tkppMJmwE6wha2Bcswih8E7uddmWFW3fczrWn3+2zzOAejVno6ZHi5J
	3KuUbnjbEfogNHlR34NOw82jxBTCy2Y=
Message-ID: <29ceab65-4790-4015-b83c-241c35dfff08@suse.com>
Date: Fri, 15 Dec 2023 12:56:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: lkml <linux-kernel@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 amd-gfx@lists.freedesktop.org
Cc: Alex Deucher <alexander.deucher@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 "Pan, Xinhui" <Xinhui.Pan@amd.com>
From: Juergen Gross <jgross@suse.com>
Subject: Crashes under Xen with Radeon graphics card
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==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------p0vLCb7WsYvA2vtXtEkJRHBC"
X-Spam-Flag: NO
X-Spamd-Result: default: False [2.90 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 TO_DN_SOME(0.00)[];
	 BAYES_SPAM(5.10)[100.00%];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCPT_COUNT_FIVE(0.00)[6];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 MX_GOOD(-0.01)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DWL_DNSWL_LOW(-1.00)[suse.com:dkim];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[];
	 RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]
X-Spam-Score: 2.90
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 97295220BB
X-Spam-Level: **
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=VJsG4X6s
X-Spamd-Bar: ++

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------p0vLCb7WsYvA2vtXtEkJRHBC
Content-Type: multipart/mixed; boundary="------------ORrOahqAO9gzzHbVxO77YjGX";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: lkml <linux-kernel@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 amd-gfx@lists.freedesktop.org
Cc: Alex Deucher <alexander.deucher@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 "Pan, Xinhui" <Xinhui.Pan@amd.com>
Message-ID: <29ceab65-4790-4015-b83c-241c35dfff08@suse.com>
Subject: Crashes under Xen with Radeon graphics card

--------------ORrOahqAO9gzzHbVxO77YjGX
Content-Type: multipart/mixed; boundary="------------PmkiSJ5jAAIl0MvSACFfnbck"

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

SGksDQoNCkkgcmVjZW50bHkgc3R1bWJsZWQgb3ZlciBhIHRlc3Qgc3lzdGVtIHdoaWNoIHNo
b3dlZCBjcmFzaGVzIHByb2JhYmx5IHJlc3VsdGluZw0KZnJvbSBtZW1vcnkgYmVpbmcgb3Zl
cndyaXR0ZW4gcmFuZG9tbHkuDQoNClRoZSBwcm9ibGVtIGlzIG9jY3VycmluZyBvbmx5IGlu
IERvbTAgd2hlbiBydW5uaW5nIHVuZGVyIFhlbi4gSXQgc2VlbXMgdG8gYmUNCnByZXNlbnQg
c2luY2UgYXQgbGVhc3Qga2VybmVsIDYuMyAoSSBkaWRuJ3QgZ28gYmFjayBmdXJ0aGVyIHll
dCksIGFuZCBpdCBzZWVtcw0KTk9UIHRvIGJlIHByZXNlbnQgaW4ga2VybmVsIDUuMTQuDQoN
CkkgdHJhY2tlZCB0aGUgcHJvYmxlbSBkb3duIHRvIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0
aGUgZ3JhcGhpY3MgY2FyZCAodGhlDQpwcm9ibGVtIG1pZ2h0IHN1cmZhY2Ugb25seSBsYXRl
ciwgYnV0IGF0IGxlYXN0IGFuIGVhcmx5IGluaXRpYWxpemF0aW9uDQpmYWlsdXJlIG1hZGUg
dGhlIHByb2JsZW0gZ28gYXdheSkuDQoNCiMgbHNwY2kNCjAxOjAwLjAgVkdBIGNvbXBhdGli
bGUgY29udHJvbGxlcjogQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBbQU1EL0FUSV0g
Q2FpY29zIA0KWFRYIFtSYWRlb24gSEQgODQ5MCAvIFI1IDIzNVggT0VNXQ0KMDE6MDAuMSBB
dWRpbyBkZXZpY2U6IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gW0FNRC9BVEldIENh
aWNvcyBIRE1JIEF1ZGlvIA0KW1JhZGVvbiBIRCA2NDUwIC8gNzQ1MC84NDUwLzg0OTAgT0VN
IC8gUjUgMjMwLzIzNS8yMzVYIE9FTV0NCg0KSSBoYWQgYSB3b3JraW5nIC5jb25maWcgYW5k
IG9uZSB3aGljaCBkaWQgcHJvZHVjZSB0aGUgY3Jhc2hlcywgc28gSSBuYXJyb3dlZA0KdGhl
IHByb2JsZW0gZG93biB0byBkZXRlY3QgdGhhdCB0aGUgaW1wb3J0YW50IGRpZmZlcmVuY2Ug
d2FzIGluIHRoZSBhcmVhIG9mDQpmaXJtd2FyZSBsb2FkaW5nICh0aGUgd29ya2luZyAuY29u
ZmlnIGRpZG4ndCBoYXZlIENPTkZJR19GV19MT0FERVJfQ09NUFJFU1NfWFoNCnNldCwgY2F1
c2luZyBmaXJtd2FyZSBsb2FkaW5nIGZvciB0aGUgY2FyZCB0byBmYWlsKS4gVGhpcyB3YXMg
b2YgY291cnNlIG5vdA0KdGhlIHJlYWwgcHJvYmxlbSwgYnV0IGl0IGNhdXNlZCB0aGUgY2Fy
ZCBpbml0aWFsaXphdGlvbiB0byBmYWlsLg0KDQpJIG1hbnVhbGx5IGRlY29tcHJlc3NlZCB0
aGUgZmlybXdhcmUgZmlsZXMgb25lIGJ5IG9uZSB0byBzZWUgd2hldGhlciB0aGUNCnByb2Js
ZW0gd291bGQgYmUgaW4gdGhlIGRlY29tcHJlc3NvciBvciBwcm9iYWJseSBpbiB0aGUgZHJp
dmVyIG9mIHRoZSBjYXJkLg0KDQpUaGUgbGFzdCBzdGVwIHdpdGhvdXQgY3Jhc2ggd2FzOg0K
DQojIGRtZXNnIHwgZ3JlcCByYWRlb24NClsgICAxMC4xMDY0MDVdIFtkcm1dIHJhZGVvbiBr
ZXJuZWwgbW9kZXNldHRpbmcgZW5hYmxlZC4NClsgICAxMC4xMDY0NTVdIHJhZGVvbiAwMDAw
OjAxOjAwLjA6IHZnYWFyYjogZGVhY3RpdmF0ZSB2Z2EgY29uc29sZQ0KWyAgIDEwLjIyMjk0
NF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogVlJBTTogMTAyNE0gMHgwMDAwMDAwMDAwMDAwMDAw
IC0gDQoweDAwMDAwMDAwM0ZGRkZGRkYgKDEwMjRNIHVzZWQpDQpbICAgMTAuMjUyOTIxXSBy
YWRlb24gMDAwMDowMTowMC4wOiBHVFQ6IDEwMjRNIDB4MDAwMDAwMDA0MDAwMDAwMCAtIA0K
MHgwMDAwMDAwMDdGRkZGRkZGDQpbICAgMTAuMjc4MjU1XSBbZHJtXSByYWRlb246IDEwMjRN
IG9mIFZSQU0gbWVtb3J5IHJlYWR5DQpbICAgMTAuMjk1ODI4XSBbZHJtXSByYWRlb246IDEw
MjRNIG9mIEdUVCBtZW1vcnkgcmVhZHkuDQpbICAgMTAuMjk1ODY3XSByYWRlb24gMDAwMDow
MTowMC4wOiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3IgDQpyYWRlb24vQ0FJQ09TX3BmcC5i
aW4gc3VjY2VlZGVkDQpbICAgMTAuMzMwODQ2XSByYWRlb24gMDAwMDowMTowMC4wOiBEaXJl
Y3QgZmlybXdhcmUgbG9hZCBmb3IgDQpyYWRlb24vQ0FJQ09TX21lLmJpbiBzdWNjZWVkZWQN
ClsgICAxMC4zMzA4NThdIHJhZGVvbiAwMDAwOjAxOjAwLjA6IERpcmVjdCBmaXJtd2FyZSBs
b2FkIGZvciByYWRlb24vQlRDX3JsYy5iaW4gDQpzdWNjZWVkZWQNClsgICAxMC4zMzA4NzBd
IHJhZGVvbiAwMDAwOjAxOjAwLjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvciANCnJhZGVv
bi9DQUlDT1NfbWMuYmluIGZhaWxlZCB3aXRoIGVycm9yIC0yDQpbICAgMTAuMzgwOTc5XSBu
aV9jcDogRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgInJhZGVvbi9DQUlDT1NfbWMuYmluIg0K
WyAgIDEwLjM4MTAwNl0gW2RybTpldmVyZ3JlZW5faW5pdCBbcmFkZW9uXV0gKkVSUk9SKiBG
YWlsZWQgdG8gbG9hZCBmaXJtd2FyZSENClsgICAxMC40MDU3NjVdIHJhZGVvbiAwMDAwOjAx
OjAwLjA6IEZhdGFsIGVycm9yIGR1cmluZyBHUFUgaW5pdA0KWyAgIDEwLjQzMjEwN10gW2Ry
bV0gcmFkZW9uOiBmaW5pc2hpbmcgZGV2aWNlLg0KWyAgIDEwLjQzOTE3OV0gW2RybV0gcmFk
ZW9uOiB0dG0gZmluYWxpemVkDQpbICAgMTAuNDYzMjAzXSByYWRlb246IHByb2JlIG9mIDAw
MDA6MDE6MDAuMCBmYWlsZWQgd2l0aCBlcnJvciAtMg0KDQpBbmQgd2l0aCBkZWNvbXByZXNz
aW5nIHJhZGVvbi9DQUlDT1NfbWMuYmluIEkgZ290Og0KDQojIGRtZXNnIHwgZ3JlcCByYWRl
b24NClsgICAxMC4yNjY0OTFdIFtkcm1dIHJhZGVvbiBrZXJuZWwgbW9kZXNldHRpbmcgZW5h
YmxlZC4NClsgICAxMC4yNjY1NTJdIHJhZGVvbiAwMDAwOjAxOjAwLjA6IHZnYWFyYjogZGVh
Y3RpdmF0ZSB2Z2EgY29uc29sZQ0KWyAgIDEwLjQ1NjA0N10gcmFkZW9uIDAwMDA6MDE6MDAu
MDogVlJBTTogMTAyNE0gMHgwMDAwMDAwMDAwMDAwMDAwIC0gDQoweDAwMDAwMDAwM0ZGRkZG
RkYgKDEwMjRNIHVzZWQpDQpbICAgMTAuNDcwMjcwXSByYWRlb24gMDAwMDowMTowMC4wOiBH
VFQ6IDEwMjRNIDB4MDAwMDAwMDA0MDAwMDAwMCAtIA0KMHgwMDAwMDAwMDdGRkZGRkZGDQpb
ICAgMTAuNTY2OTQ2XSBbZHJtXSByYWRlb246IDEwMjRNIG9mIFZSQU0gbWVtb3J5IHJlYWR5
DQpbICAgMTAuNTc2ODkxXSBbZHJtXSByYWRlb246IDEwMjRNIG9mIEdUVCBtZW1vcnkgcmVh
ZHkuDQpbICAgMTAuNTg2OTcxXSByYWRlb24gMDAwMDowMTowMC4wOiBEaXJlY3QgZmlybXdh
cmUgbG9hZCBmb3IgDQpyYWRlb24vQ0FJQ09TX3BmcC5iaW4gc3VjY2VlZGVkDQpbICAgMTAu
NjExODg2XSByYWRlb24gMDAwMDowMTowMC4wOiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3Ig
DQpyYWRlb24vQ0FJQ09TX21lLmJpbiBzdWNjZWVkZWQNClsgICAxMC42MTE5MDldIHJhZGVv
biAwMDAwOjAxOjAwLjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvciByYWRlb24vQlRDX3Js
Yy5iaW4gDQpzdWNjZWVkZWQNClsgICAxMC42MTE5MzhdIHJhZGVvbiAwMDAwOjAxOjAwLjA6
IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvciANCnJhZGVvbi9DQUlDT1NfbWMuYmluIHN1Y2Nl
ZWRlZA0KWyAgIDEwLjY2MDU5OV0gcmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13
YXJlIGxvYWQgZm9yIA0KcmFkZW9uL0NBSUNPU19zbWMuYmluIGZhaWxlZCB3aXRoIGVycm9y
IC0yDQpbICAgMTAuNjYwNjAxXSBzbWM6IGVycm9yIGxvYWRpbmcgZmlybXdhcmUgInJhZGVv
bi9DQUlDT1Nfc21jLmJpbiINClsgICAxMC42NjE2NzZdIFtkcm1dIHJhZGVvbjogcG93ZXIg
bWFuYWdlbWVudCBpbml0aWFsaXplZA0KWyAgIDEwLjcxMzY2Nl0gcmFkZW9uIDAwMDA6MDE6
MDAuMDogRGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yIHJhZGVvbi9TVU1PX3V2ZC5iaW4gDQpm
YWlsZWQgd2l0aCBlcnJvciAtMg0KWyAgIDEwLjcxMzY2OF0gcmFkZW9uIDAwMDA6MDE6MDAu
MDogcmFkZW9uX3V2ZDogQ2FuJ3QgbG9hZCBmaXJtd2FyZSANCiJyYWRlb24vU1VNT191dmQu
YmluIg0KWyAgIDEwLjcxMzY2OV0gcmFkZW9uIDAwMDA6MDE6MDAuMDogZmFpbGVkIFVWRCAo
LTIpIGluaXQuDQpbICAgMTAuNzE0Nzg3XSBbZHJtXSBlbmFibGluZyBQQ0lFIGdlbiAyIGxp
bmsgc3BlZWRzLCBkaXNhYmxlIHdpdGggDQpyYWRlb24ucGNpZV9nZW4yPTANClsgICAxMC44
MDkyMTNdIHJhZGVvbiAwMDAwOjAxOjAwLjA6IFdCIGVuYWJsZWQNClsgICAxMC44MTc1Mjhd
IHJhZGVvbiAwMDAwOjAxOjAwLjA6IGZlbmNlIGRyaXZlciBvbiByaW5nIDAgdXNlIGdwdSBh
ZGRyIA0KMHgwMDAwMDAwMDQwMDAwYzAwDQpbICAgMTAuODMzNzU1XSByYWRlb24gMDAwMDow
MTowMC4wOiBmZW5jZSBkcml2ZXIgb24gcmluZyAzIHVzZSBncHUgYWRkciANCjB4MDAwMDAw
MDA0MDAwMGMwYw0KWyAgIDEwLjg1MDMzMF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogcmFkZW9u
OiBNU0kgbGltaXRlZCB0byAzMi1iaXQNClsgICAxMC44NjIxNTRdIHJhZGVvbiAwMDAwOjAx
OjAwLjA6IHJhZGVvbjogdXNpbmcgTVNJLg0KWyAgIDEwLjg3MTkzMF0gW2RybV0gcmFkZW9u
OiBpcnEgaW5pdGlhbGl6ZWQuDQpbICAgMTEuMDYyMDI4XSBbZHJtXSBJbml0aWFsaXplZCBy
YWRlb24gMi41MC4wIDIwMDgwNTI4IGZvciAwMDAwOjAxOjAwLjAgb24gbWlub3IgMA0KWyAg
IDExLjExOTcyM10gW2RybTpyYWRlb25fZHZpX2RldGVjdCBbcmFkZW9uXV0gKkVSUk9SKiBE
VkktSS0xOiBwcm9iZWQgYSANCm1vbml0b3IgYnV0IG5vfGludmFsaWQgRURJRA0KWyAgIDEx
LjQxMTM3MF0gZmJjb246IHJhZGVvbmRybWZiIChmYjApIGlzIHByaW1hcnkgZGV2aWNlDQpb
ICAgMTEuNTA3MjUyXSByYWRlb24gMDAwMDowMTowMC4wOiBbZHJtXSBmYjA6IHJhZGVvbmRy
bWZiIGZyYW1lIGJ1ZmZlciBkZXZpY2UNClsgICAxMS42NzQwMjhdIFtkcm06cmFkZW9uX2R2
aV9kZXRlY3QgW3JhZGVvbl1dICpFUlJPUiogRFZJLUktMTogcHJvYmVkIGEgDQptb25pdG9y
IGJ1dCBub3xpbnZhbGlkIEVESUQNClsgICAxMS44MzQzMTddIFtkcm06cmFkZW9uX2R2aV9k
ZXRlY3QgW3JhZGVvbl1dICpFUlJPUiogRFZJLUktMTogcHJvYmVkIGEgDQptb25pdG9yIGJ1
dCBub3xpbnZhbGlkIEVESUQNClsgICAyOC4zMTMwNDFdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MTowMC4xOiBib3VuZCAwMDAwOjAxOjAwLjAgKG9wcyANCnJhZGVvbl9hdWRpb19jb21wb25l
bnRfYmluZF9vcHMgW3JhZGVvbl0pDQpbICAgNDQuMzcxOTkxXSBbZHJtOnJhZGVvbl9kdmlf
ZGV0ZWN0IFtyYWRlb25dXSAqRVJST1IqIERWSS1JLTE6IHByb2JlZCBhIA0KbW9uaXRvciBi
dXQgbm98aW52YWxpZCBFRElEDQpbICAgNDQuNDI4MDY4XSBbZHJtOnJhZGVvbl9kdmlfZGV0
ZWN0IFtyYWRlb25dXSAqRVJST1IqIERWSS1JLTE6IHByb2JlZCBhIA0KbW9uaXRvciBidXQg
bm98aW52YWxpZCBFRElEDQoNCmZvbGxvd2VkIGJ5IGEgY3Jhc2ggc29tZSBzZWNvbmRzIGFm
dGVyIHRoZSBzeXN0ZW0gd2FzIHVwLg0KDQpUaGUgY3Jhc2hlcyB2YXJ5LCBidXQgb2Z0ZW4g
dGhlIGtlcm5lbCBhY2Nlc3NlcyBub24tY2Fub25pY2FsIGFkZHJlc3NlcyBvcg0KdHJpZXMg
dG8gbWFwIGlsbGVnYWwgcGh5c2ljYWwgYWRkcmVzc2VzLiBTb21ldGltZXMgdGhlIHN5c3Rl
bSBpcyBqdXN0DQpoYW5naW5nLCBlaXRoZXIgd2l0aCBzb2Z0bG9ja3VwcyBvciB3aXRob3V0
IGFueSBmdXJ0aGVyIHNpZ25zIG9mIGJlaW5nDQphbGl2ZS4NCg0KSSBjYW4gZWFzaWx5IHJl
cHJvZHVjZSB0aGUgcHJvYmxlbSwgc28gYW55IGRlYnVnIHBhdGNoZXMgdG8gbmFycm93IGRv
d24gdGhlDQpwcm9ibGVtIGFyZSB3ZWxjb21lLg0KDQoNCkp1ZXJnZW4NCg==
--------------PmkiSJ5jAAIl0MvSACFfnbck
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-----

--------------PmkiSJ5jAAIl0MvSACFfnbck--

--------------ORrOahqAO9gzzHbVxO77YjGX--

--------------p0vLCb7WsYvA2vtXtEkJRHBC
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/Ey8FAmV8PvcFAwAAAAAACgkQsN6d1ii/Ey+7
nQgAjfqww6/GbcZNEkEmnge1wTmdHmhRgP9iVqj639M4n0Y7jSXycYTCucrC4UOVrb7tgoa4nz/i
rlp9yzMvp/Bi4bnlsrZEPuVkhLmMAUA0hASuJN1mMx9RKQhC12FICN4nL7FTAEfz4p9PN1T+yp3z
E7mg2Q+X+IPzUrD6OkvuUGzf77turh0b0AdrIZnme1ZdTdnhuuVCN6ur8Fk+rHXYTXi/qsKazxpQ
WuaBuK8WJ9p6RCGZvmOmPgE7KsOwHoaY3uMnPFF5ctFusslHKHpDRKQgc/uHtpg2UEBXOQGD1MWK
z/t1I8rlrqWEzVGbG98HC/zlrEXkPROdKPzJpdj/Hw==
=a/5G
-----END PGP SIGNATURE-----

--------------p0vLCb7WsYvA2vtXtEkJRHBC--


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 11:59:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 11:59:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655078.1022740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6qp-0004Y1-TU; Fri, 15 Dec 2023 11:59:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655078.1022740; Fri, 15 Dec 2023 11:59:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6qp-0004Xu-Ps; Fri, 15 Dec 2023 11:59:31 +0000
Received: by outflank-mailman (input) for mailman id 655078;
 Fri, 15 Dec 2023 11:59:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P6RE=H2=redhat.com=fweimer@srs-se1.protection.inumbo.net>)
 id 1rE6qo-0004Xh-2P
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 11:59:30 +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 65b75d8c-9b41-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 12:59:28 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-35-587X5X2KM4K_b81SrIwdzg-1; Fri, 15 Dec 2023 06:59:25 -0500
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com
 [10.11.54.3])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id AD707879843
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 11:59:25 +0000 (UTC)
Received: from oldenburg.str.redhat.com (unknown [10.39.192.149])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 2CF0C1121306
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 11:59: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: 65b75d8c-9b41-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702641567;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type;
	bh=b1+pg+WM6+oojv3iHQ79WbEbE+ZjsqgernGureeLzb8=;
	b=WEY6M9F4TKJ67rDUftHf2wIv4Nh9StF5/XwPMaPft0FUtkkbtdbpk53o89Si9fKMdDQO6r
	+MEbaUKEnvXKIq/n5ISIvwgFR/hgsBw/QTqBkQzcf+dPYQLiXFqlfZNtjUgAxKjxBQIzpS
	I7yL8kjmDRHULmrhPAXUfCtzFfyXbl0=
X-MC-Unique: 587X5X2KM4K_b81SrIwdzg-1
From: Florian Weimer <fweimer@redhat.com>
To: xen-devel@lists.xenproject.org
Subject: [PATCH] Fix C compatibility issue in mini-os
Date: Fri, 15 Dec 2023 12:59:23 +0100
Message-ID: <87edfn8yn8.fsf@oldenburg.str.redhat.com>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.3 (gnu/linux)
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain

The cc-option check always fails (that, it picks the second option
unconditionally) if the compiler does not support implicit conversion
from integers to pointers.  Just drop the initialization because it
seems unnecessary in this context.

Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>

Signed-off-by: Florian Weimer <fweimer@redhat.com>

diff --git a/Config.mk b/Config.mk
index f2d1f0a..b7c9887 100644
--- a/Config.mk
+++ b/Config.mk
@@ -21,7 +21,7 @@ endef
 # of which would indicate an "unrecognized command-line option" warning/error.
 #
 # Usage: cflags-y += $(call cc-option,$(CC),-march=winchip-c6,-march=i586)
-cc-option = $(shell if test -z "`echo 'void*p=1;' | \
+cc-option = $(shell if test -z "`echo 'void*p;' | \
               $(1) $(2) -c -o /dev/null -x c - 2>&1 | grep -- $(2) -`"; \
               then echo "$(2)"; else echo "$(3)"; fi ;)
 



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 12:02:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 12:02:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655089.1022750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6tk-0006PH-Gn; Fri, 15 Dec 2023 12:02:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655089.1022750; Fri, 15 Dec 2023 12:02:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE6tk-0006PA-Cz; Fri, 15 Dec 2023 12:02:32 +0000
Received: by outflank-mailman (input) for mailman id 655089;
 Fri, 15 Dec 2023 12:02: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=F+xl=H2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rE6ti-0006P4-CH
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 12:02:30 +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 d1ddc58d-9b41-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 13:02:29 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2c9f85eff28so7545951fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 04:02:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 x3-20020a92cc83000000b0035d70101e82sm4810511ilo.42.2023.12.15.04.02.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Dec 2023 04:02:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1ddc58d-9b41-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702641749; x=1703246549; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=oTDBItIy0DCdfJP3rlkoJxj1NgDtoU20JNs5o4WyJU4=;
        b=MuQdt5W8GIjnXw8L+PMaH7gNlVeV9NDugJd6K5y4Qea1dQ4sV6qv1sET6URa391cN1
         CFItGTqVCqTol0VvYzjJ8JtImr5lgz1mC8FTW/7YlKezqsCAajGZmB46TWdvlQKIO8pm
         s5ZyQqjKZVB3PnFgfSXEAkUS9xKdXUAj0zQMDayuIBBeaelVIxwYOV0vK+a8rLyVswDi
         RpzOq/OTO44GL6sLQ6uP2XgnbdWph5XCYQ/gEZGAYjtmaq9jZaWMd184YPFZ86OFfrzA
         omxKrLoHvvyLb4DWimSQXVIkKgznHBwGWa4jIzOlG8YU9sLhEA7jSJk4ANG1BjlZSWBi
         f9YQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702641749; x=1703246549;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=oTDBItIy0DCdfJP3rlkoJxj1NgDtoU20JNs5o4WyJU4=;
        b=NVqXj5z/aQWoIhRX65mjwRlAWt9GLTYT1DGFqvGfdK8HUKF44u07aD03Iz1ZfC62Ke
         xSCmumJWjwi6a3EFulStubcEMve8bZVaI5NsZ7DjmLJhNLwgzIg4Jt309Sr8VfISf4j/
         tmAS215E9+T2gIw959zv/Gtg/QESxdyVY/ELGdAZJQPzonWkQkvi/+RwrbLDyCzmRA6x
         i3F5tN2wjp28fdooD+6g+JWOkM9hgAW3FnLA84WnqwphOGflrN7HNP/OCqPlb4+mWXLz
         3YLmGzmlgSHI4weSssT6iScxAEceJrs0p7QAahRnbu8knyTvTz/M8DLyYx4VUcvWo/b1
         zCOA==
X-Gm-Message-State: AOJu0Yy1Yc8hsWR5aYFu4b42b4An/HH7AzHZd7N03zY1b1Yq+pCcG0+e
	gkSuSXftE/0VX9mdO0gI+Hgq
X-Google-Smtp-Source: AGHT+IH2NXjsInDWm9fy2eTCyLRdheeeF8kCXkYtNl/lmQB5PeKlIp+LhpyTi7S15VrZG2meBkfgyQ==
X-Received: by 2002:a2e:a808:0:b0:2cc:1ec0:a75a with SMTP id l8-20020a2ea808000000b002cc1ec0a75amr8621669ljq.104.1702641748741;
        Fri, 15 Dec 2023 04:02:28 -0800 (PST)
Message-ID: <cc41e7e9-13cf-48dd-a0a0-3e0d9d9b4051@suse.com>
Date: Fri, 15 Dec 2023 13:02:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Fix C compatibility issue in mini-os
Content-Language: en-US
To: Florian Weimer <fweimer@redhat.com>
References: <87edfn8yn8.fsf@oldenburg.str.redhat.com>
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: <87edfn8yn8.fsf@oldenburg.str.redhat.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 12:59, Florian Weimer wrote:
> The cc-option check always fails (that, it picks the second option
> unconditionally) if the compiler does not support implicit conversion
> from integers to pointers.  Just drop the initialization because it
> seems unnecessary in this context.

Did you pay attention to ...

> --- a/Config.mk
> +++ b/Config.mk
> @@ -21,7 +21,7 @@ endef
>  # of which would indicate an "unrecognized command-line option" warning/error.

... the comment the tail of which is visible here?

Jan

>  #
>  # Usage: cflags-y += $(call cc-option,$(CC),-march=winchip-c6,-march=i586)
> -cc-option = $(shell if test -z "`echo 'void*p=1;' | \
> +cc-option = $(shell if test -z "`echo 'void*p;' | \
>                $(1) $(2) -c -o /dev/null -x c - 2>&1 | grep -- $(2) -`"; \
>                then echo "$(2)"; else echo "$(3)"; fi ;)
>  
> 
> 



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 12:24:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 12:24:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655095.1022759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE7EX-0002rE-5X; Fri, 15 Dec 2023 12:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655095.1022759; Fri, 15 Dec 2023 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 1rE7EX-0002r7-2a; Fri, 15 Dec 2023 12:24:01 +0000
Received: by outflank-mailman (input) for mailman id 655095;
 Fri, 15 Dec 2023 12: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=P6RE=H2=redhat.com=fweimer@srs-se1.protection.inumbo.net>)
 id 1rE7EV-0002r1-Nx
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 12:23:59 +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 d12f1eb1-9b44-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 13:23:57 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-221-RJqo6eCiM1OHdZUypp3Z4w-1; Fri,
 15 Dec 2023 07:23:55 -0500
Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com
 [10.11.54.10])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id BCDFF38135E4;
 Fri, 15 Dec 2023 12:23:54 +0000 (UTC)
Received: from oldenburg.str.redhat.com (unknown [10.39.192.149])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 38DCB492BF0;
 Fri, 15 Dec 2023 12:23:54 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d12f1eb1-9b44-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702643036;
	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=r55WWxcNKxE1IFQ++85Wouj4dgeBip3v5Uv+75Z0XCw=;
	b=T1Rqh4Sw6wAHKamrkM3k/EeP0DoKPSlt6G/e9PBNJomT0SYTb1bMnxSds2MnQHC+KPJvtF
	hNbBNnq3sZu8DsaLhYxDItCpM0I1GLIhscyqylf87XJRpPVvLeoWMq+fjeVC3aJGCRQvj6
	a4DflJoxmkucN7CZe35P3SS+IuYiClI=
X-MC-Unique: RJqo6eCiM1OHdZUypp3Z4w-1
From: Florian Weimer <fweimer@redhat.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [PATCH] Fix C compatibility issue in mini-os
References: <87edfn8yn8.fsf@oldenburg.str.redhat.com>
	<cc41e7e9-13cf-48dd-a0a0-3e0d9d9b4051@suse.com>
Date: Fri, 15 Dec 2023 13:23:52 +0100
In-Reply-To: <cc41e7e9-13cf-48dd-a0a0-3e0d9d9b4051@suse.com> (Jan Beulich's
	message of "Fri, 15 Dec 2023 13:02:26 +0100")
Message-ID: <875y0z8xif.fsf@oldenburg.str.redhat.com>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.3 (gnu/linux)
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain

* Jan Beulich:

> On 15.12.2023 12:59, Florian Weimer wrote:
>> The cc-option check always fails (that, it picks the second option
>> unconditionally) if the compiler does not support implicit conversion
>> from integers to pointers.  Just drop the initialization because it
>> seems unnecessary in this context.
>
> Did you pay attention to ...
>
>> --- a/Config.mk
>> +++ b/Config.mk
>> @@ -21,7 +21,7 @@ endef
>>  # of which would indicate an "unrecognized command-line option" warning/error.
>
> ... the comment the tail of which is visible here?

I didn't investigate how the mechanics of the selection are
accomplished.  I was so happy that I finally found the source of the
int-conversion error and got a bit carried away.

Looking at the shell script fragment:

>>  # Usage: cflags-y += $(call cc-option,$(CC),-march=winchip-c6,-march=i586)
>> -cc-option = $(shell if test -z "`echo 'void*p=1;' | \
>> +cc-option = $(shell if test -z "`echo 'void*p;' | \
>>                $(1) $(2) -c -o /dev/null -x c - 2>&1 | grep -- $(2) -`"; \
>>                then echo "$(2)"; else echo "$(3)"; fi ;)

I can see that the exit status of the compiler does not matter, so the
patch will not make a difference.

I'll record this as a false positive.

Thanks,
Florian



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 12:29:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 12:29:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655099.1022770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE7Jh-0003UH-Nq; Fri, 15 Dec 2023 12:29:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655099.1022770; Fri, 15 Dec 2023 12:29:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE7Jh-0003UA-LE; Fri, 15 Dec 2023 12:29:21 +0000
Received: by outflank-mailman (input) for mailman id 655099;
 Fri, 15 Dec 2023 12:29: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=F+xl=H2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rE7Jg-0003Sl-Ct
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 12:29:20 +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 919a7f28-9b45-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 13:29:19 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2cc2238f597so6682581fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 04:29:19 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 b59-20020a0295c1000000b004692731d512sm4149976jai.69.2023.12.15.04.29.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Dec 2023 04:29:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 919a7f28-9b45-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702643359; x=1703248159; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0SBXzRmCdovs9HRQBMq+0SXsXtq/1IqzbtDsjE3+dNE=;
        b=BWBemIsX8VsXZkQhwCQgPbQdoXVUPyfzG/HD0X41xOBlbPF+7z6doV4bTVXPGFRlbR
         HnkbDzdLAhCB99djDuYyDacAwiGovaM1jEHro/rzFqFkbOa85fGV05IZZALlHXvLdnS/
         TkhOc0kQALMcl4M09eEEUCpGTICXULzL2cfqIhq3f+iiycFbg9ReLv1hCKV7FSdpAj4Z
         2QU3kucdhntQGynj8ZZjFHt3PGo1ZDP56nj2GbyYCLssFOX3ZkLrG3YtIvDcbTG2TS8l
         SWOVdYq6NQEb8SM8Fh/r0aNNVRdWnW5J2/8pFBpCxRbzw2I0cRnxySeoa0SmERbrX2eH
         fIeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702643359; x=1703248159;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=0SBXzRmCdovs9HRQBMq+0SXsXtq/1IqzbtDsjE3+dNE=;
        b=Dhe2nwp5firXszOmzebZ5Eu81ORkqJGsf2BRYg73R2uSTsPO9wjytHJFBWxWPkTeXk
         iXi42yQuqcRyj3v72SEOrpSXfMO6Is2GhhaXTruaMvKPaFCJwjCpQr1vMPNZYXoHlugh
         78W8YmvmW6Gc4ycn//m7jociTCV5POCfLqcAAm3ILnoFc16WFdh+xYw8JsAFs9zzxsR7
         W/4zYgVXltanteUif1GL5KFlPNVYEjRAT9QcAMKpJnJMoocQej0pfp3QUvO/G/ErGvm6
         b4BCoe8uVEIxgUpxRcqYvM0cAHwIlYKB4czPLU8r8Ok8EbOhUVFzpfpMTjyKhnsx7mnB
         WShw==
X-Gm-Message-State: AOJu0YzyQHnUvQaN5gZ86z/YI1e/rH7qr+qFck3fzwccxK9Us3mUvTl6
	ub50g7xXgHHqUWD4uxlMOfBC
X-Google-Smtp-Source: AGHT+IEH9v7VE7FatNZ0/o4SCi25YQXb/aVvXen7mp+fM8Rf8MXfa+zjg2IjGgkxK4RNJrKeMxWmNg==
X-Received: by 2002:a2e:b173:0:b0:2ca:129f:3f9c with SMTP id a19-20020a2eb173000000b002ca129f3f9cmr2303758ljm.25.1702643358909;
        Fri, 15 Dec 2023 04:29:18 -0800 (PST)
Message-ID: <6abd038c-fe93-4a7a-bc60-3d5c483e199e@suse.com>
Date: Fri, 15 Dec 2023 13:29:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Fix C compatibility issue in mini-os
Content-Language: en-US
To: Florian Weimer <fweimer@redhat.com>
Cc: xen-devel@lists.xenproject.org,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Juergen Gross <jgross@suse.com>
References: <87edfn8yn8.fsf@oldenburg.str.redhat.com>
 <cc41e7e9-13cf-48dd-a0a0-3e0d9d9b4051@suse.com>
 <875y0z8xif.fsf@oldenburg.str.redhat.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: <875y0z8xif.fsf@oldenburg.str.redhat.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 13:23, Florian Weimer wrote:
> * Jan Beulich:
> 
>> On 15.12.2023 12:59, Florian Weimer wrote:
>>> The cc-option check always fails (that, it picks the second option
>>> unconditionally) if the compiler does not support implicit conversion
>>> from integers to pointers.  Just drop the initialization because it
>>> seems unnecessary in this context.
>>
>> Did you pay attention to ...
>>
>>> --- a/Config.mk
>>> +++ b/Config.mk
>>> @@ -21,7 +21,7 @@ endef
>>>  # of which would indicate an "unrecognized command-line option" warning/error.
>>
>> ... the comment the tail of which is visible here?
> 
> I didn't investigate how the mechanics of the selection are
> accomplished.  I was so happy that I finally found the source of the
> int-conversion error and got a bit carried away.
> 
> Looking at the shell script fragment:
> 
>>>  # Usage: cflags-y += $(call cc-option,$(CC),-march=winchip-c6,-march=i586)
>>> -cc-option = $(shell if test -z "`echo 'void*p=1;' | \
>>> +cc-option = $(shell if test -z "`echo 'void*p;' | \
>>>                $(1) $(2) -c -o /dev/null -x c - 2>&1 | grep -- $(2) -`"; \
>>>                then echo "$(2)"; else echo "$(3)"; fi ;)
> 
> I can see that the exit status of the compiler does not matter, so the
> patch will not make a difference.

An option may be to use Xen's (newer) variant

cc-option = $(shell if $(1) $(2:-Wno-%=-W%) -Werror -c -o /dev/null -x c /dev/null >/dev/null 2>&1; \
              then echo "$(2)"; else echo "$(3)"; fi ;)

here as well (omitted all commentary). Cc-ing maintainers for possible
input.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 12:34:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 12:34:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655102.1022780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE7P0-0005iN-B2; Fri, 15 Dec 2023 12:34:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655102.1022780; Fri, 15 Dec 2023 12:34:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE7P0-0005iE-8C; Fri, 15 Dec 2023 12:34:50 +0000
Received: by outflank-mailman (input) for mailman id 655102;
 Fri, 15 Dec 2023 12:34: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 1rE7Oy-0005i4-MO; Fri, 15 Dec 2023 12:34: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 1rE7Oy-0005MZ-9k; Fri, 15 Dec 2023 12:34: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 1rE7Ox-000114-Q7; Fri, 15 Dec 2023 12:34:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rE7Ox-0003em-P5; Fri, 15 Dec 2023 12:34: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=GwuNuaTaKI+FODKyX7tJcc0UzzDdvrKJZbRyKbfd3Ds=; b=0hI0tJidzShiEVKkyIDR6zIHMD
	bEGL45j5K/8eIycZW1/055Y6l9lqTNVvR7KDTUJWww7QYVcI8sJmFUM/w+xySGM/VtSxRTYtf8sCi
	H2HI50bcj10auoEnTTTuE3OZTRkkUa7WwNIXy+qML7YdK7dy8i07r/lKUsx0fKLUWOtk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184143-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184143: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-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: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-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-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-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: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-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-xl-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c7402612e2e61b76177f22e6e7f705adcbecc6fe
X-Osstest-Versions-That:
    linux=815fb87b753055df2d9e50f6cd80eb10235fe3e9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 15 Dec 2023 12:34:47 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 183973
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 183973
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 183973
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 183973
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 183973
 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-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          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-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-armhf-armhf-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-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:
 linux                c7402612e2e61b76177f22e6e7f705adcbecc6fe
baseline version:
 linux                815fb87b753055df2d9e50f6cd80eb10235fe3e9

Last test of basis   183973  2023-12-02 07:48:26 Z   13 days
Failing since        183977  2023-12-03 00:12:06 Z   12 days   23 attempts
Testing same since   184143  2023-12-14 23:28:11 Z    0 days    1 attempts

------------------------------------------------------------
411 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   815fb87b7530..c7402612e2e6  c7402612e2e61b76177f22e6e7f705adcbecc6fe -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 13:12:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 13:12:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655112.1022790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE7zS-0004Oc-99; Fri, 15 Dec 2023 13:12:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655112.1022790; Fri, 15 Dec 2023 13:12:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE7zS-0004OV-5h; Fri, 15 Dec 2023 13:12:30 +0000
Received: by outflank-mailman (input) for mailman id 655112;
 Fri, 15 Dec 2023 13: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=25p9=H2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rE7zQ-0004OP-2U
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 13:12:28 +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 9545a5ed-9b4b-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 14:12:22 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 87047220CA;
 Fri, 15 Dec 2023 13:12: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 62C22137D4;
 Fri, 15 Dec 2023 13:12:22 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id rwlWFrZQfGWVEAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 15 Dec 2023 13:12:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9545a5ed-9b4b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702645942; 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=8dZJ8+Q6HOrbbBJMuaEeEQTg47YvTBVHao9Abb7CCgU=;
	b=DYpTGVlEX+WjodErI2/b06hyXilI9WGUyoRxCjwSoyplLRcMWhdh0Te1xA2PlV1XtvLxb3
	AU1aESa+CBHUzERRL3BKBDRHZFDi1SXngvJ97AwAca/JNSMXfHCXmk1f65Lmpq9+J7zTbq
	2Q38B1PA7WUH5B0o+s7NIi5ntBrxi6E=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702645942; 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=8dZJ8+Q6HOrbbBJMuaEeEQTg47YvTBVHao9Abb7CCgU=;
	b=DYpTGVlEX+WjodErI2/b06hyXilI9WGUyoRxCjwSoyplLRcMWhdh0Te1xA2PlV1XtvLxb3
	AU1aESa+CBHUzERRL3BKBDRHZFDi1SXngvJ97AwAca/JNSMXfHCXmk1f65Lmpq9+J7zTbq
	2Q38B1PA7WUH5B0o+s7NIi5ntBrxi6E=
Message-ID: <f82d5a55-9524-4678-aac0-88fffbdf7e40@suse.com>
Date: Fri, 15 Dec 2023 14:12:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Fix C compatibility issue in mini-os
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Florian Weimer <fweimer@redhat.com>
Cc: xen-devel@lists.xenproject.org,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
References: <87edfn8yn8.fsf@oldenburg.str.redhat.com>
 <cc41e7e9-13cf-48dd-a0a0-3e0d9d9b4051@suse.com>
 <875y0z8xif.fsf@oldenburg.str.redhat.com>
 <6abd038c-fe93-4a7a-bc60-3d5c483e199e@suse.com>
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: <6abd038c-fe93-4a7a-bc60-3d5c483e199e@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------3VDvbSgVffxRdWsrUShjHvWz"
X-Spam-Level: 
X-Spam-Level: 
X-Spamd-Result: default: False [-3.99 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 TO_DN_SOME(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
Authentication-Results: smtp-out1.suse.de;
	none
X-Spam-Score: -3.99
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------3VDvbSgVffxRdWsrUShjHvWz
Content-Type: multipart/mixed; boundary="------------6lQZrnNj0PVYQuamDnjGtJaH";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Florian Weimer <fweimer@redhat.com>
Cc: xen-devel@lists.xenproject.org,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Message-ID: <f82d5a55-9524-4678-aac0-88fffbdf7e40@suse.com>
Subject: Re: [PATCH] Fix C compatibility issue in mini-os
References: <87edfn8yn8.fsf@oldenburg.str.redhat.com>
 <cc41e7e9-13cf-48dd-a0a0-3e0d9d9b4051@suse.com>
 <875y0z8xif.fsf@oldenburg.str.redhat.com>
 <6abd038c-fe93-4a7a-bc60-3d5c483e199e@suse.com>
In-Reply-To: <6abd038c-fe93-4a7a-bc60-3d5c483e199e@suse.com>

--------------6lQZrnNj0PVYQuamDnjGtJaH
Content-Type: multipart/mixed; boundary="------------IYTZKUAnktfbxqhv4EWuuHYz"

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

T24gMTUuMTIuMjMgMTM6MjksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNS4xMi4yMDIz
IDEzOjIzLCBGbG9yaWFuIFdlaW1lciB3cm90ZToNCj4+ICogSmFuIEJldWxpY2g6DQo+Pg0K
Pj4+IE9uIDE1LjEyLjIwMjMgMTI6NTksIEZsb3JpYW4gV2VpbWVyIHdyb3RlOg0KPj4+PiBU
aGUgY2Mtb3B0aW9uIGNoZWNrIGFsd2F5cyBmYWlscyAodGhhdCwgaXQgcGlja3MgdGhlIHNl
Y29uZCBvcHRpb24NCj4+Pj4gdW5jb25kaXRpb25hbGx5KSBpZiB0aGUgY29tcGlsZXIgZG9l
cyBub3Qgc3VwcG9ydCBpbXBsaWNpdCBjb252ZXJzaW9uDQo+Pj4+IGZyb20gaW50ZWdlcnMg
dG8gcG9pbnRlcnMuICBKdXN0IGRyb3AgdGhlIGluaXRpYWxpemF0aW9uIGJlY2F1c2UgaXQN
Cj4+Pj4gc2VlbXMgdW5uZWNlc3NhcnkgaW4gdGhpcyBjb250ZXh0Lg0KPj4+DQo+Pj4gRGlk
IHlvdSBwYXkgYXR0ZW50aW9uIHRvIC4uLg0KPj4+DQo+Pj4+IC0tLSBhL0NvbmZpZy5taw0K
Pj4+PiArKysgYi9Db25maWcubWsNCj4+Pj4gQEAgLTIxLDcgKzIxLDcgQEAgZW5kZWYNCj4+
Pj4gICAjIG9mIHdoaWNoIHdvdWxkIGluZGljYXRlIGFuICJ1bnJlY29nbml6ZWQgY29tbWFu
ZC1saW5lIG9wdGlvbiIgd2FybmluZy9lcnJvci4NCj4+Pg0KPj4+IC4uLiB0aGUgY29tbWVu
dCB0aGUgdGFpbCBvZiB3aGljaCBpcyB2aXNpYmxlIGhlcmU/DQo+Pg0KPj4gSSBkaWRuJ3Qg
aW52ZXN0aWdhdGUgaG93IHRoZSBtZWNoYW5pY3Mgb2YgdGhlIHNlbGVjdGlvbiBhcmUNCj4+
IGFjY29tcGxpc2hlZC4gIEkgd2FzIHNvIGhhcHB5IHRoYXQgSSBmaW5hbGx5IGZvdW5kIHRo
ZSBzb3VyY2Ugb2YgdGhlDQo+PiBpbnQtY29udmVyc2lvbiBlcnJvciBhbmQgZ290IGEgYml0
IGNhcnJpZWQgYXdheS4NCj4+DQo+PiBMb29raW5nIGF0IHRoZSBzaGVsbCBzY3JpcHQgZnJh
Z21lbnQ6DQo+Pg0KPj4+PiAgICMgVXNhZ2U6IGNmbGFncy15ICs9ICQoY2FsbCBjYy1vcHRp
b24sJChDQyksLW1hcmNoPXdpbmNoaXAtYzYsLW1hcmNoPWk1ODYpDQo+Pj4+IC1jYy1vcHRp
b24gPSAkKHNoZWxsIGlmIHRlc3QgLXogImBlY2hvICd2b2lkKnA9MTsnIHwgXA0KPj4+PiAr
Y2Mtb3B0aW9uID0gJChzaGVsbCBpZiB0ZXN0IC16ICJgZWNobyAndm9pZCpwOycgfCBcDQo+
Pj4+ICAgICAgICAgICAgICAgICAkKDEpICQoMikgLWMgLW8gL2Rldi9udWxsIC14IGMgLSAy
PiYxIHwgZ3JlcCAtLSAkKDIpIC1gIjsgXA0KPj4+PiAgICAgICAgICAgICAgICAgdGhlbiBl
Y2hvICIkKDIpIjsgZWxzZSBlY2hvICIkKDMpIjsgZmkgOykNCj4+DQo+PiBJIGNhbiBzZWUg
dGhhdCB0aGUgZXhpdCBzdGF0dXMgb2YgdGhlIGNvbXBpbGVyIGRvZXMgbm90IG1hdHRlciwg
c28gdGhlDQo+PiBwYXRjaCB3aWxsIG5vdCBtYWtlIGEgZGlmZmVyZW5jZS4NCj4gDQo+IEFu
IG9wdGlvbiBtYXkgYmUgdG8gdXNlIFhlbidzIChuZXdlcikgdmFyaWFudA0KPiANCj4gY2Mt
b3B0aW9uID0gJChzaGVsbCBpZiAkKDEpICQoMjotV25vLSU9LVclKSAtV2Vycm9yIC1jIC1v
IC9kZXYvbnVsbCAteCBjIC9kZXYvbnVsbCA+L2Rldi9udWxsIDI+JjE7IFwNCj4gICAgICAg
ICAgICAgICAgdGhlbiBlY2hvICIkKDIpIjsgZWxzZSBlY2hvICIkKDMpIjsgZmkgOykNCj4g
DQo+IGhlcmUgYXMgd2VsbCAob21pdHRlZCBhbGwgY29tbWVudGFyeSkuIENjLWluZyBtYWlu
dGFpbmVycyBmb3IgcG9zc2libGUNCj4gaW5wdXQuDQoNClRoZXJlIGlzIG5vIHVyZ2VudCBu
ZWVkIGZvciB0aGF0LCBhcyBpbiBNaW5pLU9TIEknbSBub3QgYXdhcmUgb2YgYW55IHVzZSBj
YXNlDQp0byB0ZXN0IGZvciBhICItVy4uLiIgb3B0aW9uLCBidXQgdGhlIGFwcHJvYWNoIGlz
IHJlYWxseSBjbGVhbmVyIElNTy4NCg0KDQpKdWVyZ2VuDQoNCg==
--------------IYTZKUAnktfbxqhv4EWuuHYz
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-----

--------------IYTZKUAnktfbxqhv4EWuuHYz--

--------------6lQZrnNj0PVYQuamDnjGtJaH--

--------------3VDvbSgVffxRdWsrUShjHvWz
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/Ey8FAmV8ULUFAwAAAAAACgkQsN6d1ii/Ey97
vAf/f9SudulCJH+IkwfJv3CDes54h0PBvaXodUcy6E68supzHVPeP1Dxd+h5OyyYkcmYq2ZwXfb0
xWAuSaaYeZwDMzCDq/rh9f9dktjveO0uXV4gLZ5xfuui9PpJoQ7o1sZCpYyaEZgThaIhQRSmocJI
5m7yKT6CDY2di0s/H7i0YaP75CfgQabaBe+AtmxDJrK91CBji9V5eCjXCQyXQs212L3r314at3/t
s60bHSm6+nzXzP9SQG4fEHZSkpxID4IB7u0MmqOE7VsXk6R7FrCQTb6PTG4jgs42gF1xVdDn0uLH
Y5ZnrXwp2U5784FpDmyFUm4UGwDFegl2eblv9ve1qA==
=fi4V
-----END PGP SIGNATURE-----

--------------3VDvbSgVffxRdWsrUShjHvWz--


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 13:53:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 13:53:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655116.1022800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE8d9-0002fa-BS; Fri, 15 Dec 2023 13:53:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655116.1022800; Fri, 15 Dec 2023 13:53: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 1rE8d9-0002fT-8g; Fri, 15 Dec 2023 13:53:31 +0000
Received: by outflank-mailman (input) for mailman id 655116;
 Fri, 15 Dec 2023 13:53: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=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE8d8-0002fN-OK
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 13:53:30 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5271b931-9b51-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 14:53:27 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-336417c565eso537163f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 05:53:28 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 t9-20020a05600c198900b0040c490db950sm19040676wmq.47.2023.12.15.05.53.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 05:53:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5271b931-9b51-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702648408; x=1703253208; 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=4oTz+EykF+iasEo40v/D9N01k9DWVfqX3JPjdOrNgOQ=;
        b=H/FGigUm/f6nMu5OIrHGm8EmyksVkYm8slmfPqALWDIlWHjCHF9dOS0fzy8rYZIWId
         AleQt2mw3nF5xIqlFFvzCm8WlHA7KdstjtZuGdpj1eVZGXWuuttZTDeXORJzuuThAlj1
         ac3I82bfn1omY+xiIum0FzUloCdmBHMkPwKBI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702648408; x=1703253208;
        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=4oTz+EykF+iasEo40v/D9N01k9DWVfqX3JPjdOrNgOQ=;
        b=UYltmy3G5QCVinlf+AbHz7cuDeGAMJa31dDKJC3KQPViNFTdQ8KnJvI0LGw13OXbrd
         F9aBGKXUGgQWvXpmHHUFuRV3QbDCJhOEZlJl0MyInrKKECGi522GP/cZp+GAvayjkkxn
         7wT7cg8S+w4IxqppsyP6DkESu9mZUoyzODX8bqcZ2inUdSbNlaMUGfSwpdosT+LVELN0
         92rpjgAmzRShw7OOxD20HUSXY8UpVZ4u7WRCbJMIE+IB3ie+956dkV3U2BjM/oOWOF9o
         AkQ1ys2gUC46fOnBWjEwNhJ9AF48NhxmZtizXuC6vt5ZeaIlsRo+RdsNQNeSPHO55gBK
         lWCw==
X-Gm-Message-State: AOJu0Yz2gfpVNwmZ9ZDcJOvwT+keEa/7LEzp2T1oW0Yhs+LjbVwuiyDO
	d0Q5eOfntpjHUwAQkEQTP4cOaw==
X-Google-Smtp-Source: AGHT+IG8ejPic4fq3YUyqBFC2M/dmpjPZFhF9B/YOZq1B3ztev0FIYtpvxqQAyPqpkLkxn5hk22mGQ==
X-Received: by 2002:a7b:cb95:0:b0:40c:33ab:1b37 with SMTP id m21-20020a7bcb95000000b0040c33ab1b37mr4423010wmi.152.1702648407871;
        Fri, 15 Dec 2023 05:53:27 -0800 (PST)
Date: Fri, 15 Dec 2023 14:53:26 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ross Lagerwall <ross.lagerwall@cloud.com>
Cc: xen-devel@lists.xenproject.org,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2] livepatch-build-tools: allow livepatching version.c
Message-ID: <ZXxaVq19etLNbjEl@macbook>
References: <20231214085424.16890-1-roger.pau@citrix.com>
 <CAG7k0EqHi2gTFY8rhuceVURTWv1TvHLuQgkvjtjoz=A7GWdiAQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAG7k0EqHi2gTFY8rhuceVURTWv1TvHLuQgkvjtjoz=A7GWdiAQ@mail.gmail.com>

On Fri, Dec 15, 2023 at 11:47:18AM +0000, Ross Lagerwall wrote:
> On Thu, Dec 14, 2023 at 8:54â€¯AM Roger Pau Monne <roger.pau@citrix.com> wrote:
> >
> > Currently version.o is explicitly ignored as the file would change as a result
> > of the orignal and the patched build having possibly different dates, times or
> > changeset strings (by the patched build appending -dirty).
> >
> > Fix such difference by exporting the date and time from the build script, so
> > that both builds share the same build time.  The changeset string gets set in
> > .scmversion, and is cleaned on script exit if it wasn't present initially. This
> > allows checking for changes in version.c, since the rest of fields need to be
> > manually changed in order to produce different output.
> >
> > Setting XEN_BUILD_{DATE,TIME} as an environment variable and .scmversion has
> > been supported since before livepatch support was added to Xen, so it's safe to
> > export those variables unconditionally.
> >
> > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> > Changes since v1:
> >  - Also ensure consistent changeset version.
> > ---
> >  livepatch-build | 14 ++++++++++++++
> >  livepatch-gcc   |  2 --
> >  2 files changed, 14 insertions(+), 2 deletions(-)
> >
> > diff --git a/livepatch-build b/livepatch-build
> > index e2ccce4f7fd7..332d26f5c6b6 100755
> > --- a/livepatch-build
> > +++ b/livepatch-build
> > @@ -392,6 +392,10 @@ echo "Output directory: $outputarg"
> >  echo "================================================"
> >  echo
> >
> > +cleanup_version() {
> > +    rm -rf "${SRCDIR}/xen/.scmversion"
> > +}
> > +
> >  if [ "${SKIP}" != "build" ]; then
> >      # Make sure output directory doesn't exist, and create it.
> >      [ -e "$outputarg" ] && die "Output directory exists"
> > @@ -417,6 +421,16 @@ if [ "${SKIP}" != "build" ]; then
> >
> >      export CROSS_COMPILE="${TOOLSDIR}/livepatch-gcc "
> >
> > +    # Force same date and time to prevent unwanted changes in version.c
> > +    export XEN_BUILD_DATE=`LC_ALL=C date`
> > +    export XEN_BUILD_TIME=`LC_ALL=C date +%T`
> > +
> > +    # Ensure uniform changeset between builds
> > +    if [ ! -e "${SRCDIR}/xen/.scmversion" ]; then
> > +        trap cleanup_version EXIT
> > +        echo "unavailable" > "${SRCDIR}/xen/.scmversion"
> 
> Shouldn't this be "${SRCDIR}/.scmversion" since Xen runs
> "$(srctree)/tools/scmversion $(XEN_ROOT)"?
> 
> Otherwise I still get spurious version.o changes...
> 
> With the 3 uses of that changed (can change during commit),
> 
> Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>

Great, I had a stale .scmversion in my Xen root and that's why I
wasn't seeing the path not being effective.

Please adjust on commit.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:08:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:08:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655123.1022809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE8rf-0004le-KG; Fri, 15 Dec 2023 14:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655123.1022809; Fri, 15 Dec 2023 14:08:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE8rf-0004lX-HS; Fri, 15 Dec 2023 14:08:31 +0000
Received: by outflank-mailman (input) for mailman id 655123;
 Fri, 15 Dec 2023 14:08:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rqNh=H2=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rE8re-0004lR-SA
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:08:30 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b800b87-9b53-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 15:08:28 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 0A38A4EE073C;
 Fri, 15 Dec 2023 15:08:28 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b800b87-9b53-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Fri, 15 Dec 2023 15:08:28 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org,
 consulting@bugseng.com, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
In-Reply-To: <add58ef45d9cb970c2447f22443f50c8@bugseng.com>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
 <240c97ed-ce27-406d-84ad-68b72e999294@xen.org>
 <5ad1c008182bc9f23e1b37b0d6e35e4c@bugseng.com>
 <2b4eec7c-3657-4542-96b9-56b272e8723b@xen.org>
 <alpine.DEB.2.22.394.2312141418160.3175268@ubuntu-linux-20-04-desktop>
 <add58ef45d9cb970c2447f22443f50c8@bugseng.com>
Message-ID: <c70f5399c36e364f06c525eed3058789@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

Hi Julien,

>> Yes, I would go with 3., replace advance_pc with domain_crash. 
>> Assuming
>> that it would also solve the violation in ECLAIR.
> 
> It needs to be prefixed with an ASSERT_UNREACHABLE(), though, because 
> it's still a violation if there is no execution path leading to 
> domain_crash(), but other than that it seems the safest choice.

Assuming there are no objections to going forward with this proposal, 
would you mind telling me how can I do the proper domain_crash call. 
Most of the examples get a "struct domain *" from a parameter or from 
the macro "current", so I was thinking of

domain_crash(current->domain);

but I'm not so sure about this, as there are no other uses in vcpreg.c. 
You can also submit the patch yourself, if you prefer.

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


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:19:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:19:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655128.1022820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE91p-0006f5-Jr; Fri, 15 Dec 2023 14:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655128.1022820; Fri, 15 Dec 2023 14: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 1rE91p-0006ey-G7; Fri, 15 Dec 2023 14:19:01 +0000
Received: by outflank-mailman (input) for mailman id 655128;
 Fri, 15 Dec 2023 14: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=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE91n-0006es-W5
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:18:59 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3510af2-9b54-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 15:18:59 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40c236624edso7548425e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 06:18:59 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 p8-20020a05600c468800b0040c488e4fb5sm19266019wmo.40.2023.12.15.06.18.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 06:18:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3510af2-9b54-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702649938; x=1703254738; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AfxozcO3CAG7eR5+VWkDWdrPK7Br/PqDvBXsKNSGHKo=;
        b=QeqAM+z6Kt+A5yRh3kV/q5cJiSZyAwU6YwYuTdXlASdrviMXTHImN9Nc1B1gFeXsrR
         m1ZLgvxQqgXMPQ1t5huvkeWjiQWAVtCIdiq/IFif0IwC94vrfD7pHscuQjAOhG7R2hwS
         GjrsrUCuZBO2vD92tlWc3dJYs7pnezYy/hy7s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702649938; x=1703254738;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=AfxozcO3CAG7eR5+VWkDWdrPK7Br/PqDvBXsKNSGHKo=;
        b=PaYC74MTyhaiqgS0WIDzGR0zFsQ4nfgXDylItjsL5CTF38Rd4ukEQCyrhZ53E33+f2
         z7jCQg9wI4yKKQSJWYqZSYeBjiNViauE75LsjSPUwX9H/1WHB/F6cJV7+Cq4Yk88Rh5G
         +2p95g2+Rw2/RndZD2Tw45C5HsjEe1nExb0IGxtfQZCDQHDimhwWdKBC4IY0+zT99TGi
         yD+gCzrtNEkch3dubIJdWYZ3v1sQJtVVBMO5A+zxI910AfX9pDHumadxkU4vfA8GyHes
         M/1wwAWeVxB1buufw6LdFS0OQGHeXVH9uZj7KyTtUubmry9Y9SVVYO3RooIwqtjb6eTm
         D3Dg==
X-Gm-Message-State: AOJu0YzW1S6VD67533KGVxUMNAjYu6DntzF6D8myf4mQxhFVlkZ7v/LL
	yXYC9zBrgW0POfzYh24CWGZ03M49fqj1wDoEQvI=
X-Google-Smtp-Source: AGHT+IHUqRs+AdoriH7td6vOHiqYhpHsTg2itXwsLM+PX2tbjJTgM5u0HqcuKToJoxPHgO5/vzPsOQ==
X-Received: by 2002:a05:600c:4f93:b0:40c:6b55:2a0e with SMTP id n19-20020a05600c4f9300b0040c6b552a0emr493672wmq.75.1702649938297;
        Fri, 15 Dec 2023 06:18:58 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Subject: [PATCH v3 7/7] x86/iommu: cleanup unused functions
Date: Fri, 15 Dec 2023 15:18:32 +0100
Message-ID: <20231215141832.9492-8-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215141832.9492-1-roger.pau@citrix.com>
References: <20231215141832.9492-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Remove xen_in_range() and vpci_is_mmcfg_address() now that hey are unused.

Adjust comments to point to the new functions that replace the existing ones.

No functional change.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - Do remove vpci_is_mmcfg_address().
---
Can be squashed with the previous patch if desired, split as a separate patch
for clarity.
---
 xen/arch/x86/hvm/io.c             |  5 ---
 xen/arch/x86/include/asm/hvm/io.h |  3 --
 xen/arch/x86/include/asm/setup.h  |  1 -
 xen/arch/x86/setup.c              | 53 ++-----------------------------
 xen/arch/x86/tboot.c              |  2 +-
 5 files changed, 3 insertions(+), 61 deletions(-)

diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
index a42854c52b65..06283b41c463 100644
--- a/xen/arch/x86/hvm/io.c
+++ b/xen/arch/x86/hvm/io.c
@@ -364,11 +364,6 @@ static const struct hvm_mmcfg *vpci_mmcfg_find(const struct domain *d,
     return NULL;
 }
 
-bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr)
-{
-    return vpci_mmcfg_find(d, addr);
-}
-
 int __hwdom_init vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r)
 {
     const struct hvm_mmcfg *mmcfg;
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index e1e5e6fe7491..24d1b6134f02 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -153,9 +153,6 @@ int register_vpci_mmcfg_handler(struct domain *d, paddr_t addr,
 /* Destroy tracked MMCFG areas. */
 void destroy_vpci_mmcfg(struct domain *d);
 
-/* Check if an address is between a MMCFG region for a domain. */
-bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr);
-
 /* Remove MMCFG regions from a given rangeset. */
 int vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r);
 
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index cd07d98101d8..1ced1299c77b 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -36,7 +36,6 @@ unsigned long initial_images_nrpages(nodeid_t node);
 void discard_initial_images(void);
 void *bootstrap_map(const module_t *mod);
 
-int xen_in_range(unsigned long mfn);
 int remove_xen_ranges(struct rangeset *r);
 
 extern uint8_t kbd_shift_flags;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 71fa0b46f181..7d2cb61a2a4a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1343,7 +1343,7 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
         relocated = true;
 
         /*
-         * This needs to remain in sync with xen_in_range() and the
+         * This needs to remain in sync with remove_xen_ranges() and the
          * respective reserve_e820_ram() invocation below. No need to
          * query efi_boot_mem_unused() here, though.
          */
@@ -1495,7 +1495,7 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
     if ( using_2M_mapping() )
         efi_boot_mem_unused(NULL, NULL);
 
-    /* This needs to remain in sync with xen_in_range(). */
+    /* This needs to remain in sync with remove_xen_ranges(). */
     if ( efi_boot_mem_unused(&eb_start, &eb_end) )
     {
         reserve_e820_ram(&boot_e820, __pa(_stext), __pa(eb_start));
@@ -2087,55 +2087,6 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
     }
 }
 
-int __hwdom_init xen_in_range(unsigned long mfn)
-{
-    paddr_t start, end;
-    int i;
-
-    enum { region_s3, region_ro, region_rw, region_bss, nr_regions };
-    static struct {
-        paddr_t s, e;
-    } xen_regions[nr_regions] __hwdom_initdata;
-
-    /* initialize first time */
-    if ( !xen_regions[0].s )
-    {
-        /* S3 resume code (and other real mode trampoline code) */
-        xen_regions[region_s3].s = bootsym_phys(trampoline_start);
-        xen_regions[region_s3].e = bootsym_phys(trampoline_end);
-
-        /*
-         * This needs to remain in sync with the uses of the same symbols in
-         * - __start_xen() (above)
-         * - is_xen_fixed_mfn()
-         * - tboot_shutdown()
-         */
-
-        /* hypervisor .text + .rodata */
-        xen_regions[region_ro].s = __pa(&_stext);
-        xen_regions[region_ro].e = __pa(&__2M_rodata_end);
-        /* hypervisor .data + .bss */
-        xen_regions[region_rw].s = __pa(&__2M_rwdata_start);
-        xen_regions[region_rw].e = __pa(&__2M_rwdata_end);
-        if ( efi_boot_mem_unused(&start, &end) )
-        {
-            ASSERT(__pa(start) >= xen_regions[region_rw].s);
-            ASSERT(__pa(end) <= xen_regions[region_rw].e);
-            xen_regions[region_rw].e = __pa(start);
-            xen_regions[region_bss].s = __pa(end);
-            xen_regions[region_bss].e = __pa(&__2M_rwdata_end);
-        }
-    }
-
-    start = (paddr_t)mfn << PAGE_SHIFT;
-    end = start + PAGE_SIZE;
-    for ( i = 0; i < nr_regions; i++ )
-        if ( (start < xen_regions[i].e) && (end > xen_regions[i].s) )
-            return 1;
-
-    return 0;
-}
-
 int __hwdom_init remove_xen_ranges(struct rangeset *r)
 {
     paddr_t start, end;
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 86c4c22cacb8..4c254b4e34b4 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -321,7 +321,7 @@ void tboot_shutdown(uint32_t shutdown_type)
 
         /*
          * Xen regions for tboot to MAC. This needs to remain in sync with
-         * xen_in_range().
+         * remove_xen_ranges().
          */
         g_tboot_shared->num_mac_regions = 3;
         /* S3 resume code (and other real mode trampoline code) */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:19:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:19:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655131.1022829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92X-0007KG-V7; Fri, 15 Dec 2023 14:19:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655131.1022829; Fri, 15 Dec 2023 14:19:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92X-0007K9-Sh; Fri, 15 Dec 2023 14:19:45 +0000
Received: by outflank-mailman (input) for mailman id 655131;
 Fri, 15 Dec 2023 14:19:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE92W-0007Jp-Jf
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:19:44 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id de174ab3-9b54-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 15:18:50 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-333536432e0so589058f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 06:18:50 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 m18-20020a5d6a12000000b003364492703csm5234834wru.23.2023.12.15.06.18.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 06:18:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de174ab3-9b54-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702649929; x=1703254729; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=hq7ROO1Dkz8xNVK9sMXMO1yZBwV35ERmOXzQeR/x8C0=;
        b=VmYIwVhniQ3J7/NeTZ+Zpf83NQGDh2vpko9JlKLmW0scS3e1HPUXXjWbPa9rtdW4t6
         xMMhL2yX2N0dhGgl1rtaPHc1MznJ0RMOd/n8fhxHbqwr9ausJhZoqspFUTcfStySPuH7
         Yv7zq8VuxX/Vcuqc0dqFmrFAjKFFq5yGeZ4jo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702649929; x=1703254729;
        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=hq7ROO1Dkz8xNVK9sMXMO1yZBwV35ERmOXzQeR/x8C0=;
        b=NA415GYMbFLHUlKA0ZUW4Gn0HzZaqDMe1JfJoWlWYDLtLeD9ib1ji4K0lgTn3WSssC
         ZwsJW1IvrkhZNOnOrZ1O97qNOptEg39QTTWSakCOXFm+7lrNullt2SK8SSmoj4hGQcCg
         mJ9llgFWKzE/YB2f5NE7luBlrn2DSbcOOONeYw/XHl5khRDhRcfnLf/KExcBexiu2avj
         lS2JGhtPtb5HrbV9G1DKg4PvQlOa8FD9kIs0C2ZMCp9cqJrpiD799lZwJwhWXJtO8LM2
         JKWREH3kZYVgGqtLG1kC8s58ezM5giiLK2CdtPd5qQ7PRDf34XJiocHo9Zs7I9zP+Jir
         hkCA==
X-Gm-Message-State: AOJu0YyF0THR9g0TCUI6qcgNROjzV5zP/8QkwFGWfSGFE1cj6MpWevkn
	D1sh2NF9CPQWrMWohwvH34tnRCyvrLpL3+l7pNY=
X-Google-Smtp-Source: AGHT+IF/b/7/qScFgyi6zCgNgHy5tARgUgn0qJZAQ0F0OWawCH5vq5RwbOa55Qm59OQwGBcEYWEe7g==
X-Received: by 2002:adf:fa89:0:b0:333:d38:9cf8 with SMTP id h9-20020adffa89000000b003330d389cf8mr5965361wrr.23.1702649929063;
        Fri, 15 Dec 2023 06:18:49 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Kevin Tian <kevin.tian@intel.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Subject: [PATCH v3 0/7] x86/iommu: improve setup time of hwdom IOMMU
Date: Fri, 15 Dec 2023 15:18:25 +0100
Message-ID: <20231215141832.9492-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The aim of the series is to reduce boot time setup of IOMMU page tables
for dom0.

The first patch is completely unrelated leftover work from XSA-445, just
included in the series because it's IOMMU code.

Second and third patches are a pre-req, as further patches can end up
attempting to create maps above the max RAM address, and hence without
properly setting the IOMMU page tables levels those attempts to map
would fail.

Last 4 patches rework the hardware domain IOMMU setup to use a rangeset
instead of iterating over all addresses up to the max RAM page.  See
patch 6/7 for performance figures.

Thanks, Roger.

Roger Pau Monne (7):
  iommu/vt-d: do not assume page table levels for quarantine domain
  x86/p2m: move and rename paging_max_paddr_bits()
  amd-vi: set IOMMU page table levels based on guest reported paddr
    width
  x86/iommu: introduce a rangeset to perform hwdom IOMMU setup
  x86/iommu: remove regions not to be mapped
  x86/iommu: switch hwdom IOMMU to use a rangeset
  x86/iommu: cleanup unused functions

 xen/arch/x86/cpu-policy.c                   |   2 +-
 xen/arch/x86/domain.c                       |  21 ++
 xen/arch/x86/hvm/io.c                       |  15 +-
 xen/arch/x86/include/asm/domain.h           |   3 +
 xen/arch/x86/include/asm/hvm/io.h           |   4 +-
 xen/arch/x86/include/asm/paging.h           |  22 --
 xen/arch/x86/include/asm/setup.h            |   2 +-
 xen/arch/x86/setup.c                        |  81 +++---
 xen/arch/x86/tboot.c                        |   2 +-
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  20 +-
 xen/drivers/passthrough/vtd/iommu.c         |   2 +-
 xen/drivers/passthrough/x86/iommu.c         | 277 +++++++++++++-------
 12 files changed, 269 insertions(+), 182 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:19:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:19:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655132.1022834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92Y-0007Ny-AZ; Fri, 15 Dec 2023 14:19:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655132.1022834; Fri, 15 Dec 2023 14:19:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92Y-0007Mq-4w; Fri, 15 Dec 2023 14:19:46 +0000
Received: by outflank-mailman (input) for mailman id 655132;
 Fri, 15 Dec 2023 14:19:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE92W-0007Jp-Qd
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:19:44 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dea13028-9b54-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 15:18:51 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c2308faedso8281565e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 06:18:51 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 jb4-20020a05600c54e400b0040c5cf930e6sm10304507wmb.19.2023.12.15.06.18.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 06:18:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dea13028-9b54-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702649930; x=1703254730; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=micbYiHo1/eCgvDXtChxHAYytkH71LDeDIW7HuEr1a4=;
        b=gHuIKTHMNPbo5fam2PXpRNXWTVdFAxLaQAfa95l5BshF7aMQIMVY58N3g2CTed6ABD
         lw6v+EOu7nOOq4uwdXCcS/tHTTUfwDEmtH3a4Pcd1CKvn/oLXf9s2KhQYYmywPvCD2sb
         kml/WhEBQN9S1uaXWRNYEo+c2Mzg9wQPVDi5I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702649930; x=1703254730;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=micbYiHo1/eCgvDXtChxHAYytkH71LDeDIW7HuEr1a4=;
        b=vJgHS0V0bDqop2Q1dHFWTosuraE92p/c9d91Dp80KoU534VxZ+0ZuBGhz0MFivl1kR
         P6tQqhXr11zxNByQ+7gshWaPtSha6BMTcAjpPz/Y6gs0JHJg/409W4YDtGEzB6rMp5Dw
         UMwhnVTWkMrTkW/7fWBfpGvE4/JZssoGiXX8cQbAj1dbBQwp6MoyhPFBX4NhGIWMwIfO
         pcHnxPZDjBBB/eO9vrOSqpI0F+2FJw8DgE76otegfDJ5Lx77LGYr1c6pXDBjMPO+6hfW
         7jvyQ2Ctcpz7VpQoyjhrR4F5B/IgfFiKO7NzPTU2YCsBm0g6fnH1hP1RwEPqmLfS6y7R
         ErLQ==
X-Gm-Message-State: AOJu0Ywh4B5yJZY9rcEKrmgFMhejVNQvHhQo6R99NrHlFgdajcUpK7u5
	ukWlg+oWMTve4TmykgedpJwUMQiisgxsx4Crm14=
X-Google-Smtp-Source: AGHT+IGWmSEZYLoT7xDKGoqko8aP4/fZXUAfOWv+AmUwoE7mtuX1+6GMblkV4W+DGOpW3sm4PuQ7QQ==
X-Received: by 2002:a05:600c:1c05:b0:40c:3856:5e07 with SMTP id j5-20020a05600c1c0500b0040c38565e07mr6063639wms.9.1702649930379;
        Fri, 15 Dec 2023 06:18:50 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Kevin Tian <kevin.tian@intel.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v3 1/7] iommu/vt-d: do not assume page table levels for quarantine domain
Date: Fri, 15 Dec 2023 15:18:26 +0100
Message-ID: <20231215141832.9492-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215141832.9492-1-roger.pau@citrix.com>
References: <20231215141832.9492-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Like XSA-445, do not assume IOMMU page table levels on VT-d are always set
based on DEFAULT_DOMAIN_ADDRESS_WIDTH and instead fetch the value set by
intel_iommu_domain_init() from the domain iommu structure.  This prevents
changes to intel_iommu_domain_init() possibly getting the levels out of sync
with what intel_iommu_quarantine_init() expects.

No functional change, since on Intel domains are hardcoded to use
DEFAULT_DOMAIN_ADDRESS_WIDTH.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v1:
 - New in this version.
---
 xen/drivers/passthrough/vtd/iommu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index e13b7d99db40..bc6181c9f911 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -3162,7 +3162,7 @@ static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
 {
     struct domain_iommu *hd = dom_iommu(dom_io);
     struct page_info *pg;
-    unsigned int agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
+    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;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:19:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:19:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655133.1022841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92Y-0007UV-N4; Fri, 15 Dec 2023 14:19:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655133.1022841; Fri, 15 Dec 2023 14:19:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92Y-0007Sz-Ga; Fri, 15 Dec 2023 14:19:46 +0000
Received: by outflank-mailman (input) for mailman id 655133;
 Fri, 15 Dec 2023 14:19: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=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE92X-0007Jp-7E
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:19:45 +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 e0f36918-9b54-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 15:18:55 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-336447100e9so660666f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 06:18:55 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 m11-20020a056000008b00b0033332524235sm18838237wrx.82.2023.12.15.06.18.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 06:18:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0f36918-9b54-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702649934; x=1703254734; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Oi/OU1B+BD1EA3x0F7BUpdNkno4zp2sbqcsBzG1DxYU=;
        b=nFDC5G/l+7sldOARFp40VwKOHEcm0cFiA8bzoJMJzjEc6+OKCr2eVtuV9PwX1aN6rk
         v8gH8FpR4QzpchbWj1/5dtZQqGawAbGFLStCZdZyV9uxijH3WDtZVxLtrcHGGO2I57tP
         09rDhNeut/SPPXNtKR1lBdw9sEikmozXgUVnU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702649934; x=1703254734;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Oi/OU1B+BD1EA3x0F7BUpdNkno4zp2sbqcsBzG1DxYU=;
        b=Qi0RjgvS2HwwS9bZJCjSaIOR4fgXU5ZVHrS2Q3FbmoQIR3X0ZPabZjaaxIpvKVxePu
         l1VPDEJNlhjEIA8oUTl5yUMO4O9F2AgVBD/LarT42qG4OLUGDJkKG+R3guO3OwQFnxNk
         deyhgcu4rUpZyF9+EmW+C4bDya/Z/SDkRqBkTCwPysyfFe8jhNjRH4HRbzAGsUnxtXmV
         jXHIzDNRAmbzspuBKe7yv2PGwrXSGm0bXNxVCKsmheZuqiLuc11L2bvN+vNlgx9Zmem6
         8rs0FEbKrZcgFaEo6KLL7DU5EYDghGkh9L1t9fH0o8r7tCQmdfjoYa4xiuq2PqMKY4l+
         ig9A==
X-Gm-Message-State: AOJu0Yz8OB22eR5zUXfYazHoyLxoQzBpWLNWmexxQRgoe7jNSYa7bP0n
	+S6PUi0fwRi6P/5+BePx9x2Bbv+3IYEs22ySZOc=
X-Google-Smtp-Source: AGHT+IGNAKxLrG4i+x0ulksZxzM5IxMcvmrPVWewI4viXKQy/+N3xsRzrOj4Cn+xThFRixmYztTIsA==
X-Received: by 2002:adf:f94a:0:b0:336:2548:2e21 with SMTP id q10-20020adff94a000000b0033625482e21mr3922947wrr.38.1702649934301;
        Fri, 15 Dec 2023 06:18:54 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v3 4/7] x86/iommu: introduce a rangeset to perform hwdom IOMMU setup
Date: Fri, 15 Dec 2023 15:18:29 +0100
Message-ID: <20231215141832.9492-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215141832.9492-1-roger.pau@citrix.com>
References: <20231215141832.9492-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This change just introduces the boilerplate code in order to use a rangeset
when setting up the hardware domain IOMMU mappings.  The rangeset is never
populated in this patch, so it's a non-functional change as far as the mappings
the domain gets established.

Note there will be a change for HVM domains (ie: PVH dom0) when the code
introduced here gets used: the p2m mappings will be established using
map_mmio_regions() instead of p2m_add_identity_entry(), so that ranges can be
mapped with a single function call if possible.  Note that the interface of
map_mmio_regions() doesn't allow creating read-only mappings, but so far there
are no such mappings created for PVH dom0 in arch_iommu_hwdom_init().

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - Better deal with read-only regions.
 - Destroy rangeset earlier.
 - Switch to using map_data.flush_flags.
 - Reword commit message to clarify the change in behaviour for HVM will only
   take effect after later changes.

Changes since v1:
 - Split from bigger patch.
---
 xen/drivers/passthrough/x86/iommu.c | 102 +++++++++++++++++++++++++++-
 1 file changed, 101 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 857dccb6a465..ca5e0bca810f 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -370,10 +370,88 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
     return perms;
 }
 
+struct map_data {
+    struct domain *d;
+    unsigned int flush_flags;
+    bool mmio_ro;
+};
+
+static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
+                                              void *data)
+{
+    struct map_data *info = data;
+    struct domain *d = info->d;
+    long rc;
+
+    if ( iommu_verbose )
+        printk(XENLOG_INFO " [%010lx, %010lx] R%c\n",
+               s, e, info->mmio_ro ? 'O' : 'W');
+
+    if ( paging_mode_translate(d) )
+    {
+        if ( info->mmio_ro )
+        {
+            ASSERT_UNREACHABLE();
+            return 0;
+        }
+        while ( (rc = map_mmio_regions(d, _gfn(s), e - s + 1, _mfn(s))) > 0 )
+        {
+            s += rc;
+            process_pending_softirqs();
+        }
+    }
+    else
+    {
+        const unsigned int perms = IOMMUF_readable | IOMMUF_preempt |
+                                   (info->mmio_ro ? 0 : IOMMUF_writable);
+
+        /*
+         * Read-only ranges are only created based on the contents of mmio
+         * read-only rangeset, and hence need the additional iomem permissions
+         * check.
+         */
+        while( info->mmio_ro && s <= e && !iomem_access_permitted(d, s, e) )
+        {
+            /*
+             * Consume a frame per iteration until the reminder is accessible
+             * or there's nothing left to map.
+             */
+            if ( iomem_access_permitted(d, s, s) )
+            {
+                rc = iommu_map(d, _dfn(s), _mfn(s), 1, perms,
+                               &info->flush_flags);
+                if ( rc < 0 )
+                    break;
+                /* Must map a frame at least, which is what we request for. */
+                ASSERT(rc == 1);
+                process_pending_softirqs();
+            }
+            s++;
+        }
+        while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
+                                perms, &info->flush_flags)) > 0 )
+        {
+            s += rc;
+            process_pending_softirqs();
+        }
+    }
+    ASSERT(rc <= 0);
+    if ( rc )
+        printk(XENLOG_WARNING
+               "IOMMU identity mapping of [%lx, %lx] failed: %ld\n",
+               s, e, rc);
+
+    /* Ignore errors and attempt to map the remaining regions. */
+    return 0;
+}
+
 void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 {
     unsigned long i, top, max_pfn, start, count;
     unsigned int flush_flags = 0, start_perms = 0;
+    struct rangeset *map;
+    struct map_data map_data = { .d = d };
+    int rc;
 
     BUG_ON(!is_hardware_domain(d));
 
@@ -397,6 +475,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
     if ( iommu_hwdom_passthrough )
         return;
 
+    map = rangeset_new(NULL, NULL, 0);
+    if ( !map )
+        panic("IOMMU init: unable to allocate rangeset\n");
+
     max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
     top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
 
@@ -451,8 +533,26 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
             goto commit;
     }
 
+    if ( iommu_verbose )
+        printk(XENLOG_INFO "%pd: identity mappings for IOMMU:\n", d);
+
+    rc = rangeset_report_ranges(map, 0, ~0UL, identity_map, &map_data);
+    if ( rc )
+        panic("IOMMU unable to create mappings: %d\n", rc);
+    rangeset_destroy(map);
+
+    if ( is_pv_domain(d) )
+    {
+        map_data.mmio_ro = true;
+        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, identity_map,
+                                    &map_data);
+        if ( rc )
+            panic("IOMMU unable to create read-only mappings: %d\n", rc);
+    }
+
+    map_data.flush_flags |= flush_flags;
     /* Use if to avoid compiler warning */
-    if ( iommu_iotlb_flush_all(d, flush_flags) )
+    if ( iommu_iotlb_flush_all(d, map_data.flush_flags) )
         return;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:19:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655134.1022859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92Z-00080Z-Vz; Fri, 15 Dec 2023 14:19:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655134.1022859; Fri, 15 Dec 2023 14:19:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92Z-0007zJ-RI; Fri, 15 Dec 2023 14:19:47 +0000
Received: by outflank-mailman (input) for mailman id 655134;
 Fri, 15 Dec 2023 14:19:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE92Y-0007Jp-7M
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:19:46 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e1f8004f-9b54-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 15:18:56 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c3f68b69aso6816685e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 06:18:56 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 az27-20020a05600c601b00b0040c34e763ecsm28577461wmb.44.2023.12.15.06.18.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 06:18:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1f8004f-9b54-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702649935; x=1703254735; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=414KfQ9OMqT0fBT+K6thqF0nIM6hdKEG00zYxPdik0w=;
        b=Wn8guxtRaQvyoGYHLkju5wUaDvNjmmYWwaABSUyOxjsqsD4ZoCiVnpECU4SZ45Dhtb
         afxlKD0xjB1UjYohLW939RTozmc8JkLrfO7I6UZX1AbQF8afmEXUX3PhmLUV8+Qu7UKN
         9ipuiO3Rcs7IDeS9GsqFPaqCsazYPhAIGSMI4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702649935; x=1703254735;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=414KfQ9OMqT0fBT+K6thqF0nIM6hdKEG00zYxPdik0w=;
        b=lfzsfRqMU0SiJ/886P5ZTsqS1fHcGWy30/+9QS19Nubx9RYhS8qpnrWS6aBvjNr9m7
         UWPwb9qkSvgGWHHREmehkVKrC4JuV4tNkgk2rqFVTwaso+/HDrm9tEba7rO7xCzOJAC5
         zKI3nGdLNL1AhEvlXnergFdE0EOofs+2czK2EmAe84kG7+s6bWlDVzAzqbdmyp1JIbOt
         U/OiRsQPAoOq6Zi04NV+rv9wJCjqeLm0t5A1/GnWKUpJCTcqHudXJwkdBssJ4Ka0CuIo
         +Jq5+X+Uzkc4NmcPh33jGVVf54UQjFPb8U/4lA1JEvCEkhA/sYkCXKKOuFc9uoA4TXOq
         SGTw==
X-Gm-Message-State: AOJu0Yxf0MAxfH8sPUDaywr3T+62WcZYnCxh7QcqVOOAdlNdC5DgIn6r
	ENovyTJSJIUeW/6QI+Gku/XY+G4lA89o9Woll/0=
X-Google-Smtp-Source: AGHT+IH7hD0UjG+r2dSu+6dpB/MUorArHBJNnw3LjFfKrbo9+qfGJuZuK7QBI4wpwsIp6QxvAycbtQ==
X-Received: by 2002:a05:600c:3556:b0:40c:2d76:d2a8 with SMTP id i22-20020a05600c355600b0040c2d76d2a8mr7455414wmq.7.1702649935600;
        Fri, 15 Dec 2023 06:18:55 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 5/7] x86/iommu: remove regions not to be mapped
Date: Fri, 15 Dec 2023 15:18:30 +0100
Message-ID: <20231215141832.9492-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215141832.9492-1-roger.pau@citrix.com>
References: <20231215141832.9492-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce the code to remove regions not to be mapped from the rangeset
that will be used to setup the IOMMU page tables for the hardware domain.

This change also introduces two new functions: remove_xen_ranges() and
vpci_subtract_mmcfg() that copy the logic in xen_in_range() and
vpci_is_mmcfg_address() respectively and remove the ranges that would otherwise
be intercepted by the original functions.

Note that the rangeset is still not populated.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - Split from bigger patch.
---
 xen/arch/x86/hvm/io.c               | 16 ++++++++
 xen/arch/x86/include/asm/hvm/io.h   |  3 ++
 xen/arch/x86/include/asm/setup.h    |  1 +
 xen/arch/x86/setup.c                | 48 ++++++++++++++++++++++
 xen/drivers/passthrough/x86/iommu.c | 64 +++++++++++++++++++++++++++++
 5 files changed, 132 insertions(+)

diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
index d75af83ad01f..a42854c52b65 100644
--- a/xen/arch/x86/hvm/io.c
+++ b/xen/arch/x86/hvm/io.c
@@ -369,6 +369,22 @@ bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr)
     return vpci_mmcfg_find(d, addr);
 }
 
+int __hwdom_init vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r)
+{
+    const struct hvm_mmcfg *mmcfg;
+
+    list_for_each_entry ( mmcfg, &d->arch.hvm.mmcfg_regions, next )
+    {
+        int rc = rangeset_remove_range(r, PFN_DOWN(mmcfg->addr),
+                                       PFN_DOWN(mmcfg->addr + mmcfg->size - 1));
+
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
 static unsigned int vpci_mmcfg_decode_addr(const struct hvm_mmcfg *mmcfg,
                                            paddr_t addr, pci_sbdf_t *sbdf)
 {
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index a97731657801..e1e5e6fe7491 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -156,6 +156,9 @@ void destroy_vpci_mmcfg(struct domain *d);
 /* Check if an address is between a MMCFG region for a domain. */
 bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr);
 
+/* Remove MMCFG regions from a given rangeset. */
+int vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r);
+
 #endif /* __ASM_X86_HVM_IO_H__ */
 
 
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 9a460e4db8f4..cd07d98101d8 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -37,6 +37,7 @@ void discard_initial_images(void);
 void *bootstrap_map(const module_t *mod);
 
 int xen_in_range(unsigned long mfn);
+int remove_xen_ranges(struct rangeset *r);
 
 extern uint8_t kbd_shift_flags;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 3cba2be0af6c..71fa0b46f181 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2136,6 +2136,54 @@ int __hwdom_init xen_in_range(unsigned long mfn)
     return 0;
 }
 
+int __hwdom_init remove_xen_ranges(struct rangeset *r)
+{
+    paddr_t start, end;
+    int rc;
+
+    /* S3 resume code (and other real mode trampoline code) */
+    rc = rangeset_remove_range(r, PFN_DOWN(bootsym_phys(trampoline_start)),
+                               PFN_DOWN(bootsym_phys(trampoline_end)));
+    if ( rc )
+        return rc;
+
+    /*
+     * This needs to remain in sync with the uses of the same symbols in
+     * - __start_xen()
+     * - is_xen_fixed_mfn()
+     * - tboot_shutdown()
+     */
+    /* hypervisor .text + .rodata */
+    rc = rangeset_remove_range(r, PFN_DOWN(__pa(&_stext)),
+                               PFN_DOWN(__pa(&__2M_rodata_end)));
+    if ( rc )
+        return rc;
+
+    /* hypervisor .data + .bss */
+    if ( efi_boot_mem_unused(&start, &end) )
+    {
+        ASSERT(__pa(start) >= __pa(&__2M_rwdata_start));
+        rc = rangeset_remove_range(r, PFN_DOWN(__pa(&__2M_rwdata_start)),
+                                   PFN_DOWN(__pa(start)));
+        if ( rc )
+            return rc;
+        ASSERT(__pa(end) <= __pa(&__2M_rwdata_end));
+        rc = rangeset_remove_range(r, PFN_DOWN(__pa(end)),
+                                   PFN_DOWN(__pa(&__2M_rwdata_end)));
+        if ( rc )
+            return rc;
+    }
+    else
+    {
+        rc = rangeset_remove_range(r, PFN_DOWN(__pa(&__2M_rwdata_start)),
+                                   PFN_DOWN(__pa(&__2M_rwdata_end)));
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
 static int __hwdom_init cf_check io_bitmap_cb(
     unsigned long s, unsigned long e, void *ctx)
 {
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index ca5e0bca810f..3bc84d1bfb3e 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -370,6 +370,14 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
     return perms;
 }
 
+static int __hwdom_init cf_check map_subtract(unsigned long s, unsigned long e,
+                                              void *data)
+{
+    struct rangeset *map = data;
+
+    return rangeset_remove_range(map, s, e);
+}
+
 struct map_data {
     struct domain *d;
     unsigned int flush_flags;
@@ -533,6 +541,62 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
             goto commit;
     }
 
+    /* Remove any areas in-use by Xen. */
+    rc = remove_xen_ranges(map);
+    if ( rc )
+        panic("IOMMU failed to remove Xen ranges: %d\n", rc);
+
+    /* Remove any overlap with the Interrupt Address Range. */
+    rc = rangeset_remove_range(map, 0xfee00, 0xfeeff);
+    if ( rc )
+        panic("IOMMU failed to remove Interrupt Address Range: %d\n",
+              rc);
+
+    /* If emulating IO-APIC(s) make sure the base address is unmapped. */
+    if ( has_vioapic(d) )
+    {
+        for ( i = 0; i < d->arch.hvm.nr_vioapics; i++ )
+        {
+            rc = rangeset_remove_singleton(map,
+                PFN_DOWN(domain_vioapic(d, i)->base_address));
+            if ( rc )
+                panic("IOMMU failed to remove IO-APIC: %d\n",
+                      rc);
+        }
+    }
+
+    if ( is_pv_domain(d) )
+    {
+        /*
+         * Be consistent with CPU mappings: Dom0 is permitted to establish r/o
+         * ones there (also for e.g. HPET in certain cases), so it should also
+         * have such established for IOMMUs.  Remove any read-only ranges here,
+         * since ranges in mmio_ro_ranges are already explicitly mapped below
+         * in read-only mode.
+         */
+        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, map_subtract, map);
+        if ( rc )
+            panic("IOMMU failed to remove read-only regions: %d\n",
+                  rc);
+    }
+
+    if ( has_vpci(d) )
+    {
+        /*
+         * TODO: runtime added MMCFG regions are not checked to make sure they
+         * don't overlap with already mapped regions, thus preventing trapping.
+         */
+        rc = vpci_subtract_mmcfg(d, map);
+        if ( rc )
+            panic("IOMMU unable to remove MMCFG areas: %d\n", rc);
+    }
+
+    /* Remove any regions past the last address addressable by the domain. */
+    rc = rangeset_remove_range(map, PFN_DOWN(1UL << domain_max_paddr_bits(d)),
+                               ~0UL);
+    if ( rc )
+        panic("IOMMU unable to remove unaddressable ranges: %d\n", rc);
+
     if ( iommu_verbose )
         printk(XENLOG_INFO "%pd: identity mappings for IOMMU:\n", d);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:19:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655135.1022867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92a-00089W-LH; Fri, 15 Dec 2023 14:19:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655135.1022867; Fri, 15 Dec 2023 14: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 1rE92a-00087W-Cr; Fri, 15 Dec 2023 14:19:48 +0000
Received: by outflank-mailman (input) for mailman id 655135;
 Fri, 15 Dec 2023 14:19:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE92Z-0007Jp-7Q
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:19:47 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2cf4adf-9b54-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 15:18:58 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3365424df34so306128f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 06:18:58 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 f6-20020adff446000000b0033657514fcfsm855835wrp.88.2023.12.15.06.18.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 06:18:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e2cf4adf-9b54-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702649937; x=1703254737; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5lykRqqEdrF/krYjCiZGA6WQAOyP6ulgqiaZTejSNGo=;
        b=cij/3YMP060wV+SXGsYd0P8ts7rBnTqZv38Ws3VJrq7HHquf5i9M3npzwuPg4vEcu+
         Nb926wNvu7HRjYqvPOijzqGanZzUIuaEOHfeOyRuEq7xkPohuLvsttarLfFDlKfw89R+
         2pMAqI0WE0OeyXMYQzGLhubxAg6Yh5SWy1WF4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702649937; x=1703254737;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5lykRqqEdrF/krYjCiZGA6WQAOyP6ulgqiaZTejSNGo=;
        b=xSY74aVqk3jRzC0Kolbu8WbXmO2VIQGm76nIVNCInfjCpuzH2bRAqnvE7KdlWw5qOE
         yojTSvNLfHyzJIjxV8XttejF7pgAYg7Db2ErGEV0KQUve0QYLmA84BFejfhWv7DKfKqE
         shYjzART0Q1aYcxMPdKyXBULZmDhBrzQ7VpglpdkhuYg4tzejN9BSyWH0XZPcuO/rUhP
         rFCzuyr31+23mgyATdOeAnTkMD/jOGqWq477UtONs8VizLoQeqsDdZ63Zr8f5HrkczcY
         pYaJ76ei7+PATedMpoQ/0lPOIWOzwTGIhZV7UDImKpJ9e6q4s4xzkc+Gsy6xPiAtxB8a
         JJBA==
X-Gm-Message-State: AOJu0YzP1RPjjA3AWmnlEEXnQZpfbl21VOeE0uKx1wB/z7r4Q9SjTvnP
	/t1TQdZqS2vChZFjlzt4nFiSsUDGCkHdMkaOkLs=
X-Google-Smtp-Source: AGHT+IGQGsI0lKB1NPkzVppEMIHv2TdUuGosUDtge/cbC0NcVsYiccA3HK76OV2Km7hq4OxXDv5IJw==
X-Received: by 2002:adf:e2cc:0:b0:334:b157:f155 with SMTP id d12-20020adfe2cc000000b00334b157f155mr5895378wrj.28.1702649936944;
        Fri, 15 Dec 2023 06:18:56 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v3 6/7] x86/iommu: switch hwdom IOMMU to use a rangeset
Date: Fri, 15 Dec 2023 15:18:31 +0100
Message-ID: <20231215141832.9492-7-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215141832.9492-1-roger.pau@citrix.com>
References: <20231215141832.9492-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current loop that iterates from 0 to the maximum RAM address in order to
setup the IOMMU mappings is highly inefficient, and it will get worse as the
amount of RAM increases.  It's also not accounting for any reserved regions
past the last RAM address.

Instead of iterating over memory addresses, iterate over the memory map regions
and use a rangeset in order to keep track of which ranges need to be identity
mapped in the hardware domain physical address space.

On an AMD EPYC 7452 with 512GiB of RAM, the time to execute
arch_iommu_hwdom_init() in nanoseconds is:

x old
+ new
    N           Min           Max        Median           Avg        Stddev
x   5 2.2364154e+10  2.338244e+10 2.2474685e+10 2.2622409e+10 4.2949869e+08
+   5       1025012       1033036       1026188     1028276.2     3623.1194
Difference at 95.0% confidence
        -2.26214e+10 +/- 4.42931e+08
        -99.9955% +/- 9.05152e-05%
        (Student's t, pooled s = 3.03701e+08)

Execution time of arch_iommu_hwdom_init() goes down from ~22s to ~0.001s.

Note there's a change for HVM domains (ie: PVH dom0) that get switched to
create the p2m mappings using map_mmio_regions() instead of
p2m_add_identity_entry(), so that ranges can be mapped with a single function
call if possible.  Note that the interface of map_mmio_regions() doesn't
allow creating read-only mappings, but so far there are no such mappings
created for PVH dom0 in arch_iommu_hwdom_init().

No change intended in the resulting mappings that a hardware domain gets.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - Simplify a bit the logic related to inclusive option, at the cost of making
   some no-op calls on some cases.

Changes since v1:
 - Split from bigger patch.
 - Remove unneeded default case.
---
 xen/drivers/passthrough/x86/iommu.c | 149 ++++++----------------------
 1 file changed, 32 insertions(+), 117 deletions(-)

diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 3bc84d1bfb3e..67cf9bff1c29 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -300,76 +300,6 @@ void iommu_identity_map_teardown(struct domain *d)
     }
 }
 
-static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
-                                                 unsigned long pfn,
-                                                 unsigned long max_pfn)
-{
-    mfn_t mfn = _mfn(pfn);
-    unsigned int i, type, perms = IOMMUF_readable | IOMMUF_writable;
-
-    /*
-     * Set up 1:1 mapping for dom0. Default to include only conventional RAM
-     * areas and let RMRRs include needed reserved regions. When set, the
-     * inclusive mapping additionally maps in every pfn up to 4GB except those
-     * that fall in unusable ranges for PV Dom0.
-     */
-    if ( (pfn > max_pfn && !mfn_valid(mfn)) || xen_in_range(pfn) )
-        return 0;
-
-    switch ( type = page_get_ram_type(mfn) )
-    {
-    case RAM_TYPE_UNUSABLE:
-        return 0;
-
-    case RAM_TYPE_CONVENTIONAL:
-        if ( iommu_hwdom_strict )
-            return 0;
-        break;
-
-    default:
-        if ( type & RAM_TYPE_RESERVED )
-        {
-            if ( !iommu_hwdom_inclusive && !iommu_hwdom_reserved )
-                perms = 0;
-        }
-        else if ( is_hvm_domain(d) )
-            return 0;
-        else if ( !iommu_hwdom_inclusive || pfn > max_pfn )
-            perms = 0;
-    }
-
-    /* Check that it doesn't overlap with the Interrupt Address Range. */
-    if ( pfn >= 0xfee00 && pfn <= 0xfeeff )
-        return 0;
-    /* ... or the IO-APIC */
-    if ( has_vioapic(d) )
-    {
-        for ( i = 0; i < d->arch.hvm.nr_vioapics; i++ )
-            if ( pfn == PFN_DOWN(domain_vioapic(d, i)->base_address) )
-                return 0;
-    }
-    else if ( is_pv_domain(d) )
-    {
-        /*
-         * Be consistent with CPU mappings: Dom0 is permitted to establish r/o
-         * ones there (also for e.g. HPET in certain cases), so it should also
-         * have such established for IOMMUs.
-         */
-        if ( iomem_access_permitted(d, pfn, pfn) &&
-             rangeset_contains_singleton(mmio_ro_ranges, pfn) )
-            perms = IOMMUF_readable;
-    }
-    /*
-     * ... or the PCIe MCFG regions.
-     * TODO: runtime added MMCFG regions are not checked to make sure they
-     * don't overlap with already mapped regions, thus preventing trapping.
-     */
-    if ( has_vpci(d) && vpci_is_mmcfg_address(d, pfn_to_paddr(pfn)) )
-        return 0;
-
-    return perms;
-}
-
 static int __hwdom_init cf_check map_subtract(unsigned long s, unsigned long e,
                                               void *data)
 {
@@ -455,8 +385,7 @@ static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
 
 void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 {
-    unsigned long i, top, max_pfn, start, count;
-    unsigned int flush_flags = 0, start_perms = 0;
+    unsigned int i;
     struct rangeset *map;
     struct map_data map_data = { .d = d };
     int rc;
@@ -487,58 +416,45 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
     if ( !map )
         panic("IOMMU init: unable to allocate rangeset\n");
 
-    max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
-    top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
+    if ( iommu_hwdom_inclusive )
+    {
+        /* Add the whole range below 4GB, UNUSABLE regions will be removed. */
+        rc = rangeset_add_range(map, 0, PFN_DOWN(GB(4)) - 1);
+        if ( rc )
+            panic("IOMMU inclusive mappings can't be added: %d\n",
+                  rc);
+    }
 
-    for ( i = 0, start = 0, count = 0; i < top; )
+    for ( i = 0; i < e820.nr_map; i++ )
     {
-        unsigned long pfn = pdx_to_pfn(i);
-        unsigned int perms = hwdom_iommu_map(d, pfn, max_pfn);
+        const struct e820entry entry = e820.map[i];
 
-        if ( !perms )
-            /* nothing */;
-        else if ( paging_mode_translate(d) )
+        switch ( entry.type )
         {
-            int rc;
-
-            rc = p2m_add_identity_entry(d, pfn,
-                                        perms & IOMMUF_writable ? p2m_access_rw
-                                                                : p2m_access_r,
-                                        0);
+        case E820_UNUSABLE:
+            /* Only relevant for inclusive mode, otherwise this is a no-op. */
+            rc = rangeset_remove_range(map, PFN_DOWN(entry.addr),
+                                       PFN_DOWN(entry.addr + entry.size - 1));
             if ( rc )
-                printk(XENLOG_WARNING
-                       "%pd: identity mapping of %lx failed: %d\n",
-                       d, pfn, rc);
-        }
-        else if ( pfn != start + count || perms != start_perms )
-        {
-            long rc;
+                panic("IOMMU failed to remove unusable memory: %d\n",
+                      rc);
+            continue;
 
-        commit:
-            while ( (rc = iommu_map(d, _dfn(start), _mfn(start), count,
-                                    start_perms | IOMMUF_preempt,
-                                    &flush_flags)) > 0 )
-            {
-                start += rc;
-                count -= rc;
-                process_pending_softirqs();
-            }
-            if ( rc )
-                printk(XENLOG_WARNING
-                       "%pd: IOMMU identity mapping of [%lx,%lx) failed: %ld\n",
-                       d, start, start + count, rc);
-            start = pfn;
-            count = 1;
-            start_perms = perms;
-        }
-        else
-            ++count;
+        case E820_RESERVED:
+            if ( !iommu_hwdom_inclusive && !iommu_hwdom_reserved )
+                continue;
+            break;
 
-        if ( !(++i & 0xfffff) )
-            process_pending_softirqs();
+        case E820_RAM:
+            if ( iommu_hwdom_strict )
+                continue;
+            break;
+        }
 
-        if ( i == top && count )
-            goto commit;
+        rc = rangeset_add_range(map, PFN_DOWN(entry.addr),
+                                PFN_DOWN(entry.addr + entry.size - 1));
+        if ( rc )
+            panic("IOMMU failed to add identity range: %d\n", rc);
     }
 
     /* Remove any areas in-use by Xen. */
@@ -614,7 +530,6 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
             panic("IOMMU unable to create read-only mappings: %d\n", rc);
     }
 
-    map_data.flush_flags |= flush_flags;
     /* Use if to avoid compiler warning */
     if ( iommu_iotlb_flush_all(d, map_data.flush_flags) )
         return;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:19:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:19:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655136.1022880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92b-000092-Sm; Fri, 15 Dec 2023 14:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655136.1022880; Fri, 15 Dec 2023 14:19:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92b-00006o-Mo; Fri, 15 Dec 2023 14:19:49 +0000
Received: by outflank-mailman (input) for mailman id 655136;
 Fri, 15 Dec 2023 14:19:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE92a-0007Jp-7Z
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:19:48 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df8f4edd-9b54-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 15:18:52 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c236624edso7547545e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 06:18:52 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 k20-20020a5d5254000000b003365b5df349sm190650wrc.93.2023.12.15.06.18.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 06:18:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df8f4edd-9b54-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702649931; x=1703254731; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i40rODJO/X0LXQNlEUFaGjc3uP8fUKGEa0LahLnFqZ4=;
        b=OwkYD66IIPftCSkkiC1fwKj9Pgye/tPEMWK4sQx6dsS6e6DR00aNHXEanAIiOh+J+y
         piI5fQ3icHQREdTygqb/LQKQ7LQW8bcuzIHnPyAyK1Me1WjBh8ws1uuwNc4uY4w1yiRN
         MCLO460EiIwYS67XG6kl8Qmzr5FkJ3ohQ5I4s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702649931; x=1703254731;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=i40rODJO/X0LXQNlEUFaGjc3uP8fUKGEa0LahLnFqZ4=;
        b=hr+nvWUMZM6Pn1a6xEQIvssbyasAgj/qHNnl5GcLtX+pd8WCftF4imDeWlr+u5FRnm
         j/F9U5cI/RRIRtCanAP7r9CGlTRkBMi7v2Ry//jLaDTXcHa93lkT0IWuqreGE3NHzuCx
         X0MZrl1kAU1aWdiKSDod3l9jdm/xwNoixpIYYdKx1/yJibSmizgO7d7k1YMvQe5HJd6w
         8cvhiBqu07lIVLLT2/gJlyiiDDrE4uI/pZO/nxCsZyez7gVOn3XJnKBvN9aiLox6DTJ1
         tuzHUsRV5tFi1M36AAeCOk/gx+/JvAQWvXREiXAMCQrkAa0LGH/koK2RUpM9w1e8kejp
         xidw==
X-Gm-Message-State: AOJu0Yz0ixUG1Rx26OwG4rB0YTTwwSLzEwP057qRp4GUvEvjGjE0wcsW
	JY/fUsSBevrGAJx8IJwB61kO+qafPn4SskPmWlU=
X-Google-Smtp-Source: AGHT+IHolaIVqpjYAMNLgKYfrrXCOS+fc4hUrxfSN2XF9Ny4iN8pmO3vuABTOUeCM7ux/KAzFMr1uw==
X-Received: by 2002:a05:600c:6cf:b0:40c:5777:da1a with SMTP id b15-20020a05600c06cf00b0040c5777da1amr2998869wmn.113.1702649931612;
        Fri, 15 Dec 2023 06:18:51 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 2/7] x86/p2m: move and rename paging_max_paddr_bits()
Date: Fri, 15 Dec 2023 15:18:27 +0100
Message-ID: <20231215141832.9492-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215141832.9492-1-roger.pau@citrix.com>
References: <20231215141832.9492-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The function also supports non-paging domains, and hence it being placed in
p2m.h and named with the paging_ prefix is misleading.

Move to x86 domain.c and rename to domain_max_paddr_bits().  Moving to a
different header is non trivial, as the function depends on helpers declared in
p2m.h.  There's no performance reason for the function being inline.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - New in this version.
---
 xen/arch/x86/cpu-policy.c         |  2 +-
 xen/arch/x86/domain.c             | 21 +++++++++++++++++++++
 xen/arch/x86/include/asm/domain.h |  3 +++
 xen/arch/x86/include/asm/paging.h | 22 ----------------------
 4 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 423932bc13d6..76efb050edf7 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -864,7 +864,7 @@ void recalculate_cpuid_policy(struct domain *d)
 
     p->extd.maxphysaddr = min(p->extd.maxphysaddr, max->extd.maxphysaddr);
     p->extd.maxphysaddr = min_t(uint8_t, p->extd.maxphysaddr,
-                                paging_max_paddr_bits(d));
+                                domain_max_paddr_bits(d));
     p->extd.maxphysaddr = max_t(uint8_t, p->extd.maxphysaddr,
                                 (p->basic.pae || p->basic.pse36) ? 36 : 32);
 
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3712e36df930..8a31d18f6967 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2552,6 +2552,27 @@ static int __init cf_check init_vcpu_kick_softirq(void)
 }
 __initcall(init_vcpu_kick_softirq);
 
+unsigned int domain_max_paddr_bits(const struct domain *d)
+{
+    unsigned int bits = paging_mode_hap(d) ? hap_paddr_bits : paddr_bits;
+
+    if ( paging_mode_external(d) )
+    {
+        if ( !IS_ENABLED(CONFIG_BIGMEM) && paging_mode_shadow(d) )
+        {
+            /* Shadowed superpages store GFNs in 32-bit page_info fields. */
+            bits = min(bits, 32U + PAGE_SHIFT);
+        }
+        else
+        {
+            /* Both p2m-ept and p2m-pt only support 4-level page tables. */
+            bits = min(bits, 48U);
+        }
+    }
+
+    return bits;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 4b6b7ceab1ed..622d22bef255 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -777,6 +777,9 @@ static inline void pv_inject_sw_interrupt(unsigned int vector)
 struct arch_vcpu_io {
 };
 
+/* Maxphysaddr supportable by the paging infrastructure. */
+unsigned int domain_max_paddr_bits(const struct domain *d);
+
 #endif /* __ASM_DOMAIN_H__ */
 
 /*
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 76162a9429ce..8a2a0af40874 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -336,28 +336,6 @@ static inline bool gfn_valid(const struct domain *d, gfn_t gfn)
     return !(gfn_x(gfn) >> (d->arch.cpuid->extd.maxphysaddr - PAGE_SHIFT));
 }
 
-/* Maxphysaddr supportable by the paging infrastructure. */
-static always_inline unsigned int paging_max_paddr_bits(const struct domain *d)
-{
-    unsigned int bits = paging_mode_hap(d) ? hap_paddr_bits : paddr_bits;
-
-    if ( paging_mode_external(d) )
-    {
-        if ( !IS_ENABLED(CONFIG_BIGMEM) && paging_mode_shadow(d) )
-        {
-            /* Shadowed superpages store GFNs in 32-bit page_info fields. */
-            bits = min(bits, 32U + PAGE_SHIFT);
-        }
-        else
-        {
-            /* Both p2m-ept and p2m-pt only support 4-level page tables. */
-            bits = min(bits, 48U);
-        }
-    }
-
-    return bits;
-}
-
 #endif /* XEN_PAGING_H */
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:19:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:19:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655137.1022890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92d-0000WR-9v; Fri, 15 Dec 2023 14:19:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655137.1022890; Fri, 15 Dec 2023 14:19:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE92d-0000VQ-5m; Fri, 15 Dec 2023 14:19:51 +0000
Received: by outflank-mailman (input) for mailman id 655137;
 Fri, 15 Dec 2023 14:19: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=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE92b-0007Jp-7c
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:19:49 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e0166d80-9b54-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 15:18:53 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c2c5a8150so6716615e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 06:18:53 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 jb4-20020a05600c54e400b0040c5cf930e6sm10304639wmb.19.2023.12.15.06.18.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 06:18:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0166d80-9b54-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702649933; x=1703254733; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FDw1hBjsMh2mJKl/ow003iacu/0pNjCq+t0PtXkwl9g=;
        b=MA9kWeo8D7n3EFjRQHy72QWjaVBKDBDkyJ8xGyQ02Y/M3Dq5E64UoPpFroWejcvD98
         qMFgJ1G8lG9jdN5RS9xnwL9A7XwjbRHbc+hbfWEQWYdcvYwGQTbtktEefHajCejCZuxv
         YmL+lmOZRo49+Tsoyytqzvopnsdv32S8YPO8Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702649933; x=1703254733;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FDw1hBjsMh2mJKl/ow003iacu/0pNjCq+t0PtXkwl9g=;
        b=pEXLA/ORfObDc+ZVoAPpXnJ2WLLCom72LjAGqfbHB626XuRbL8x8xvcorbrHzFAL6A
         Y/QmdsHkRuQv0Z8byHOrFQcodUiU536JPkvqYbCmPHXL+yxazVI4V6F5dofuQ6nI7/9f
         jtCVah7nY7BsuOk/kjahYIlLv6po60dRuPgvE3Xp1Uhwvwz2TTLgUVUfzkCw5p3weIu0
         tkyRG78T9SIEZDdpDDuW4RD0mC6K63e9BnfSBhmzKh48dxAhGf61G/neq9eoO7c4aYUL
         dfpTfobxzEXDtvqmX/BY6OfIVnTAwbcFruRD/7r2Dbv2Jchej0cbxq1WWeYv5QgaVhMc
         dIIA==
X-Gm-Message-State: AOJu0YxYqty5jJTvK89u1QxROx2/ZJ7N2eNiIK1l5ITxUwf77UYwASKO
	uI3jBtcAefAZsuI6kWiDPshDql+LLYDx+X6Socw=
X-Google-Smtp-Source: AGHT+IEKFd55/ZjZslr+01W7mD8pITw5hJ9VLgKPE1npdtdCJtacXmzMitWqw+BqgZzK1lArug7B/w==
X-Received: by 2002:a05:600c:1705:b0:40b:3fc7:c887 with SMTP id c5-20020a05600c170500b0040b3fc7c887mr6586131wmn.20.1702649932808;
        Fri, 15 Dec 2023 06:18:52 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v3 3/7] amd-vi: set IOMMU page table levels based on guest reported paddr width
Date: Fri, 15 Dec 2023 15:18:28 +0100
Message-ID: <20231215141832.9492-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231215141832.9492-1-roger.pau@citrix.com>
References: <20231215141832.9492-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

However take into account the minimum number of levels required by unity maps
when setting the page table levels.

The previous setting of the page table levels for PV guests based on the
highest RAM address was bogus, as there can be other non-RAM regions past the
highest RAM address that need to be mapped, for example device MMIO.

For HVM we also take amd_iommu_min_paging_mode into account, however if unity
maps require more than 4 levels attempting to add those will currently fail at
the p2m level, as 4 levels is the maximum supported.

Fixes: 0700c962ac2d ('Add AMD IOMMU support into hypervisor')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - Use the renamed domain_max_paddr_bits().

Changes since v1:
 - Use paging_max_paddr_bits() instead of hardcoding
   DEFAULT_DOMAIN_ADDRESS_WIDTH.
---
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 6bc73dc21052..cc3e2ccd5ed7 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -359,21 +359,17 @@ int __read_mostly amd_iommu_min_paging_mode = 1;
 static int cf_check amd_iommu_domain_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    int pglvl = amd_iommu_get_paging_mode(
+                PFN_DOWN(1UL << domain_max_paddr_bits(d)));
+
+    if ( pglvl < 0 )
+        return pglvl;
 
     /*
-     * Choose the number of levels for the IOMMU page tables.
-     * - PV needs 3 or 4, depending on whether there is RAM (including hotplug
-     *   RAM) above the 512G boundary.
-     * - HVM could in principle use 3 or 4 depending on how much guest
-     *   physical address space we give it, but this isn't known yet so use 4
-     *   unilaterally.
-     * - Unity maps may require an even higher number.
+     * Choose the number of levels for the IOMMU page tables, taking into
+     * account unity maps.
      */
-    hd->arch.amd.paging_mode = max(amd_iommu_get_paging_mode(
-            is_hvm_domain(d)
-            ? 1UL << (DEFAULT_DOMAIN_ADDRESS_WIDTH - PAGE_SHIFT)
-            : get_upper_mfn_bound() + 1),
-        amd_iommu_min_paging_mode);
+    hd->arch.amd.paging_mode = max(pglvl, amd_iommu_min_paging_mode);
 
     return 0;
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 14:55:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 14:55:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655188.1022900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE9ab-0001L5-Os; Fri, 15 Dec 2023 14:54:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655188.1022900; Fri, 15 Dec 2023 14:54:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rE9ab-0001Ky-MC; Fri, 15 Dec 2023 14:54:57 +0000
Received: by outflank-mailman (input) for mailman id 655188;
 Fri, 15 Dec 2023 14:54:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=a4Sn=H2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rE9aa-0001Ks-4r
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 14:54:56 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e794a2e6-9b59-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 15:54:53 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c256ffdbcso8674695e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Dec 2023 06:54:53 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 fa5-20020a05600c518500b0040c6d559490sm1720837wmb.3.2023.12.15.06.54.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Dec 2023 06:54:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e794a2e6-9b59-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702652093; x=1703256893; 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=Pb+esVZ95ff8GURkfDxZ5O1g1nKPENVklToWc7Xd3cA=;
        b=B1PyVCV+/ygrH+9Bn2FXzpJ8CUH0cPQlCNoiMPZF6V/u53IjuvXW6EuYxZVQL+igcJ
         azuUqf6HJLwr8AMD+pswT8/dflcoMBTAEx4BQce+bHkDAiSnxBRTq6xyJ0OLzlo/QkNc
         iVt229Folw7CHbtYDyZyCS7LoL0J+AJXGqvJ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702652093; x=1703256893;
        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=Pb+esVZ95ff8GURkfDxZ5O1g1nKPENVklToWc7Xd3cA=;
        b=f+BxSO8idLEkAtpwuqqCbjCR3K2XsvvIwjceyc2JSDBn3vtEZ1tRnkIDixlVHl0zUB
         nntLP7Y5oPjV8ddSCIHZHLVp2qPED6LSjDChWTkCZvO5CRNvxaBs9htawjxznCoKjcCL
         z/dAJ07jlLnwktJ62VTtowcR3KAoOdSvUS9VUGnL9gAw0K3x6JNMAW0RJi0PEUz7saG0
         8NzsG86Bf6a/gjLqffgeSIWqMaK+IOcwu9dkkcfh1n8ziO/+27KBjqNmC1GSzsS+vS++
         BkM5DR3UZXyNq0iN+2irIVI2km+8bmCYdXY5nKYZU9dmeS16g8RvWciqM3VxzEi6Tjdu
         k55g==
X-Gm-Message-State: AOJu0Yxe7vlb7uyVX3dSeFsvVqKCokwh2PR0fNcswPRbi/LjK8wqxlsU
	P+STakvhnQDbCo30NyhMdpD4bw==
X-Google-Smtp-Source: AGHT+IHHXZAtub6WmdhpsanpDsB4lEKRPMS5lET1dND/fbmyV17vruz6MYh1jSFpU8bINPUUM3If8w==
X-Received: by 2002:a05:600c:16c4:b0:40c:69dc:18c7 with SMTP id l4-20020a05600c16c400b0040c69dc18c7mr785377wmn.170.1702652093242;
        Fri, 15 Dec 2023 06:54:53 -0800 (PST)
Date: Fri, 15 Dec 2023 15:54:52 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH] x86: allow non-BIGMEM configs to boot on >= 16Tb systems
Message-ID: <ZXxovHNdNK_OfHUs@macbook>
References: <4b282f2f-bce8-4c98-897c-2866ec1b6dd0@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4b282f2f-bce8-4c98-897c-2866ec1b6dd0@suse.com>

On Wed, Jun 07, 2023 at 08:17:30AM +0200, Jan Beulich wrote:
> While frame table setup, directmap init, and boot allocator population
> respect all intended bounds, the logic passing memory to the heap
> allocator which wasn't passed to the boot allocator fails to respect
> max_{pdx,pfn}. This then typically triggers the BUG() in
> free_heap_pages() after checking page state, because of hitting a struct
> page_info instance which was set to all ~0.
> 
> Of course all the memory above the 16Tb boundary is still going to
> remain unused; using it requires BIGMEM=y. And of course this fix
> similarly ought to help BIGMEM=y configurations on >= 123Tb systems
> (where all the memory beyond that boundary continues to be unused).
> 
> Fixes: bac2000063ba ("x86-64: reduce range spanned by 1:1 mapping and frame table indexes")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

> ---
> Sadly the people reporting the issue have decided to go with the 16Tb
> limit, and hence the patch wasn't tested by them. I thought that I'd
> still post it, though.

We should see about finding a way to test BIGMEM, maybe with PoD.

> The "must not be passed to the boot allocator" for the range in question
> may already not be applicable anymore, with all page tables now being
> mapped via map_domain_page() (iirc this work has been completed). But of
> course there would be a risk that something else is/was overlooked, and
> hence the offending code is being fixed rather than purged (and the
> purging should occur once the directmap is properly gone). (This also
> seems preferable for potential backports of this change.)
> 
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1722,15 +1722,16 @@ void __init noreturn __start_xen(unsigne
>  
>      if ( max_page - 1 > virt_to_mfn(HYPERVISOR_VIRT_END - 1) )
>      {
> -        unsigned long limit = virt_to_mfn(HYPERVISOR_VIRT_END - 1);
> +        unsigned long lo = virt_to_mfn(HYPERVISOR_VIRT_END - 1);
> +        unsigned long hi = pdx_to_pfn(max_pdx - 1) + 1;

Maybe use max_page to avoid the pdx_to_pfn() call?  (And is also more
in context with the condition on the outside if).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 16:12:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 16:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655205.1022918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEAnA-0007XA-FC; Fri, 15 Dec 2023 16:12:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655205.1022918; Fri, 15 Dec 2023 16:12:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEAnA-0007X3-Bn; Fri, 15 Dec 2023 16:12:00 +0000
Received: by outflank-mailman (input) for mailman id 655205;
 Fri, 15 Dec 2023 16:11: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 1rEAn8-0007Wh-En; Fri, 15 Dec 2023 16:11: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 1rEAn8-0001jV-5r; Fri, 15 Dec 2023 16:11: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 1rEAn7-0002q0-MV; Fri, 15 Dec 2023 16:11:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEAn7-0003mN-M1; Fri, 15 Dec 2023 16:11: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=wlf49ex4GpR+nGBBl4fk+KsOtmd0bXkS/ys0PvvkPUM=; b=bcGC2pwZ6PdvJ9woyUDd+S8vB7
	qPrxnYVheDULhuub+69zuzkNCKuI8xAe0E9oOcS5YKohpULyuyfzV6n9xjJ6GTRjUmoJyjMnoWdIq
	UOob7jyUIW7PVJFFR5ZdndY9trzFvT0iBkkf57Gzrq+qF4K3oYfHnCa1cszt/Cl/Ntf8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184144-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184144: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-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-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-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=641ed83e3d635648d94234fa94a6d47e912144f7
X-Osstest-Versions-That:
    libvirt=cecbaa87d53392a79098c66503af35b99e7b7029
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 15 Dec 2023 16:11:57 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184119
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184119
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184119
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  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-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-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              641ed83e3d635648d94234fa94a6d47e912144f7
baseline version:
 libvirt              cecbaa87d53392a79098c66503af35b99e7b7029

Last test of basis   184119  2023-12-13 04:20:39 Z    2 days
Testing same since   184144  2023-12-15 04:22:03 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Peter Krempa <pkrempa@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   cecbaa87d5..641ed83e3d  641ed83e3d635648d94234fa94a6d47e912144f7 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 16:12:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 16:12:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655216.1022928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEAnq-00082K-OO; Fri, 15 Dec 2023 16:12:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655216.1022928; Fri, 15 Dec 2023 16:12: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 1rEAnq-00082D-Kx; Fri, 15 Dec 2023 16:12:42 +0000
Received: by outflank-mailman (input) for mailman id 655216;
 Fri, 15 Dec 2023 16:12: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=25p9=H2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rEAnp-00081t-9A
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 16:12:41 +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 c4467f14-9b64-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 17:12:39 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 1724D1F83F;
 Fri, 15 Dec 2023 16:12:38 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D423913726;
 Fri, 15 Dec 2023 16:12:37 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 9gmVMfV6fGXuZwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 15 Dec 2023 16:12:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4467f14-9b64-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702656758; 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=yDBCRDrZr4+5hIuUyIxI8EGqZkT8EFZctCoZ2lc3E5M=;
	b=E/v4ytAbqs0i+ubbNE6wWqKkQvNlS94y0hvgx2TEL0ZCNXcmU+746XyqVFdPeCamWCTaV3
	N4QgP//AnfgVJ3YKF19ihkEjm2PoGZxHyLou75zJSHWbj7TAuivMDtfgFy0aemTmT/TrgW
	FCkctzcr6fMnjCUjlUq63qU4zY6/Dbs=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702656758; 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=yDBCRDrZr4+5hIuUyIxI8EGqZkT8EFZctCoZ2lc3E5M=;
	b=E/v4ytAbqs0i+ubbNE6wWqKkQvNlS94y0hvgx2TEL0ZCNXcmU+746XyqVFdPeCamWCTaV3
	N4QgP//AnfgVJ3YKF19ihkEjm2PoGZxHyLou75zJSHWbj7TAuivMDtfgFy0aemTmT/TrgW
	FCkctzcr6fMnjCUjlUq63qU4zY6/Dbs=
Message-ID: <b91dabec-8fde-4de1-abfe-1664f9607784@suse.com>
Date: Fri, 15 Dec 2023 17:12:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Crashes under Xen with Radeon graphics card
Content-Language: en-US
To: "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 lkml <linux-kernel@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>
Cc: "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Pan, Xinhui" <Xinhui.Pan@amd.com>
References: <29ceab65-4790-4015-b83c-241c35dfff08@suse.com>
 <BL1PR12MB5144541AC4318F30D2F57F27F793A@BL1PR12MB5144.namprd12.prod.outlook.com>
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: <BL1PR12MB5144541AC4318F30D2F57F27F793A@BL1PR12MB5144.namprd12.prod.outlook.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------n5q47dhKenDHw0thuDhdOTXj"
X-Spam-Level: *
X-Spam-Level: 
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="E/v4ytAb"
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-5.40 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCPT_COUNT_FIVE(0.00)[6];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 MX_GOOD(-0.01)[];
	 SIGNED_PGP(-2.00)[];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[amd.com:email,suse.com:dkim,suse.com:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -5.40
X-Rspamd-Queue-Id: 1724D1F83F
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------n5q47dhKenDHw0thuDhdOTXj
Content-Type: multipart/mixed; boundary="------------uvwBTBvdMRe7VA7G0i8YDlJY";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 lkml <linux-kernel@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>
Cc: "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Pan, Xinhui" <Xinhui.Pan@amd.com>
Message-ID: <b91dabec-8fde-4de1-abfe-1664f9607784@suse.com>
Subject: Re: Crashes under Xen with Radeon graphics card
References: <29ceab65-4790-4015-b83c-241c35dfff08@suse.com>
 <BL1PR12MB5144541AC4318F30D2F57F27F793A@BL1PR12MB5144.namprd12.prod.outlook.com>
In-Reply-To: <BL1PR12MB5144541AC4318F30D2F57F27F793A@BL1PR12MB5144.namprd12.prod.outlook.com>

--------------uvwBTBvdMRe7VA7G0i8YDlJY
Content-Type: multipart/mixed; boundary="------------kxPE0UWCVuBdTwBgE5WHt8yy"

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

T24gMTUuMTIuMjMgMTc6MDQsIERldWNoZXIsIEFsZXhhbmRlciB3cm90ZToNCj4gW1B1Ymxp
Y10NCj4gDQo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogSnVlcmdl
biBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KPj4gU2VudDogRnJpZGF5LCBEZWNlbWJlciAx
NSwgMjAyMyA2OjU3IEFNDQo+PiBUbzogbGttbCA8bGludXgta2VybmVsQHZnZXIua2VybmVs
Lm9yZz47IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgYW1kLQ0KPj4gZ2Z4QGxp
c3RzLmZyZWVkZXNrdG9wLm9yZw0KPj4gQ2M6IERldWNoZXIsIEFsZXhhbmRlciA8QWxleGFu
ZGVyLkRldWNoZXJAYW1kLmNvbT47IEtvZW5pZywgQ2hyaXN0aWFuDQo+PiA8Q2hyaXN0aWFu
LktvZW5pZ0BhbWQuY29tPjsgUGFuLCBYaW5odWkgPFhpbmh1aS5QYW5AYW1kLmNvbT4NCj4+
IFN1YmplY3Q6IENyYXNoZXMgdW5kZXIgWGVuIHdpdGggUmFkZW9uIGdyYXBoaWNzIGNhcmQN
Cj4+DQo+PiBIaSwNCj4+DQo+PiBJIHJlY2VudGx5IHN0dW1ibGVkIG92ZXIgYSB0ZXN0IHN5
c3RlbSB3aGljaCBzaG93ZWQgY3Jhc2hlcyBwcm9iYWJseQ0KPj4gcmVzdWx0aW5nIGZyb20g
bWVtb3J5IGJlaW5nIG92ZXJ3cml0dGVuIHJhbmRvbWx5Lg0KPj4NCj4+IFRoZSBwcm9ibGVt
IGlzIG9jY3VycmluZyBvbmx5IGluIERvbTAgd2hlbiBydW5uaW5nIHVuZGVyIFhlbi4gSXQg
c2VlbXMgdG8NCj4+IGJlIHByZXNlbnQgc2luY2UgYXQgbGVhc3Qga2VybmVsIDYuMyAoSSBk
aWRuJ3QgZ28gYmFjayBmdXJ0aGVyIHlldCksIGFuZCBpdCBzZWVtcw0KPj4gTk9UIHRvIGJl
IHByZXNlbnQgaW4ga2VybmVsIDUuMTQuDQo+Pg0KPj4gSSB0cmFja2VkIHRoZSBwcm9ibGVt
IGRvd24gdG8gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBncmFwaGljcyBjYXJkICh0aGUN
Cj4+IHByb2JsZW0gbWlnaHQgc3VyZmFjZSBvbmx5IGxhdGVyLCBidXQgYXQgbGVhc3QgYW4g
ZWFybHkgaW5pdGlhbGl6YXRpb24gZmFpbHVyZSBtYWRlDQo+PiB0aGUgcHJvYmxlbSBnbyBh
d2F5KS4NCj4+DQo+PiAjIGxzcGNpDQo+PiAwMTowMC4wIFZHQSBjb21wYXRpYmxlIGNvbnRy
b2xsZXI6IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gW0FNRC9BVEldDQo+PiBDYWlj
b3MgWFRYIFtSYWRlb24gSEQgODQ5MCAvIFI1IDIzNVggT0VNXQ0KPj4gMDE6MDAuMSBBdWRp
byBkZXZpY2U6IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gW0FNRC9BVEldIENhaWNv
cyBIRE1JDQo+PiBBdWRpbyBbUmFkZW9uIEhEIDY0NTAgLyA3NDUwLzg0NTAvODQ5MCBPRU0g
LyBSNSAyMzAvMjM1LzIzNVggT0VNXQ0KPj4NCj4+IEkgaGFkIGEgd29ya2luZyAuY29uZmln
IGFuZCBvbmUgd2hpY2ggZGlkIHByb2R1Y2UgdGhlIGNyYXNoZXMsIHNvIEkgbmFycm93ZWQN
Cj4+IHRoZSBwcm9ibGVtIGRvd24gdG8gZGV0ZWN0IHRoYXQgdGhlIGltcG9ydGFudCBkaWZm
ZXJlbmNlIHdhcyBpbiB0aGUgYXJlYSBvZg0KPj4gZmlybXdhcmUgbG9hZGluZyAodGhlIHdv
cmtpbmcgLmNvbmZpZyBkaWRuJ3QgaGF2ZQ0KPj4gQ09ORklHX0ZXX0xPQURFUl9DT01QUkVT
U19YWiBzZXQsIGNhdXNpbmcgZmlybXdhcmUgbG9hZGluZyBmb3IgdGhlDQo+PiBjYXJkIHRv
IGZhaWwpLiBUaGlzIHdhcyBvZiBjb3Vyc2Ugbm90IHRoZSByZWFsIHByb2JsZW0sIGJ1dCBp
dCBjYXVzZWQgdGhlIGNhcmQNCj4+IGluaXRpYWxpemF0aW9uIHRvIGZhaWwuDQo+Pg0KPj4g
SSBtYW51YWxseSBkZWNvbXByZXNzZWQgdGhlIGZpcm13YXJlIGZpbGVzIG9uZSBieSBvbmUg
dG8gc2VlIHdoZXRoZXIgdGhlDQo+PiBwcm9ibGVtIHdvdWxkIGJlIGluIHRoZSBkZWNvbXBy
ZXNzb3Igb3IgcHJvYmFibHkgaW4gdGhlIGRyaXZlciBvZiB0aGUgY2FyZC4NCj4+DQo+PiBU
aGUgbGFzdCBzdGVwIHdpdGhvdXQgY3Jhc2ggd2FzOg0KPj4NCj4+ICMgZG1lc2cgfCBncmVw
IHJhZGVvbg0KPj4gWyAgIDEwLjEwNjQwNV0gW2RybV0gcmFkZW9uIGtlcm5lbCBtb2Rlc2V0
dGluZyBlbmFibGVkLg0KPj4gWyAgIDEwLjEwNjQ1NV0gcmFkZW9uIDAwMDA6MDE6MDAuMDog
dmdhYXJiOiBkZWFjdGl2YXRlIHZnYSBjb25zb2xlDQo+PiBbICAgMTAuMjIyOTQ0XSByYWRl
b24gMDAwMDowMTowMC4wOiBWUkFNOiAxMDI0TSAweDAwMDAwMDAwMDAwMDAwMDANCj4+IC0N
Cj4+IDB4MDAwMDAwMDAzRkZGRkZGRiAoMTAyNE0gdXNlZCkNCj4+IFsgICAxMC4yNTI5MjFd
IHJhZGVvbiAwMDAwOjAxOjAwLjA6IEdUVDogMTAyNE0gMHgwMDAwMDAwMDQwMDAwMDAwIC0N
Cj4+IDB4MDAwMDAwMDA3RkZGRkZGRg0KPj4gWyAgIDEwLjI3ODI1NV0gW2RybV0gcmFkZW9u
OiAxMDI0TSBvZiBWUkFNIG1lbW9yeSByZWFkeQ0KPj4gWyAgIDEwLjI5NTgyOF0gW2RybV0g
cmFkZW9uOiAxMDI0TSBvZiBHVFQgbWVtb3J5IHJlYWR5Lg0KPj4gWyAgIDEwLjI5NTg2N10g
cmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yDQo+PiByYWRl
b24vQ0FJQ09TX3BmcC5iaW4gc3VjY2VlZGVkDQo+PiBbICAgMTAuMzMwODQ2XSByYWRlb24g
MDAwMDowMTowMC4wOiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3INCj4+IHJhZGVvbi9DQUlD
T1NfbWUuYmluIHN1Y2NlZWRlZA0KPj4gWyAgIDEwLjMzMDg1OF0gcmFkZW9uIDAwMDA6MDE6
MDAuMDogRGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yDQo+PiByYWRlb24vQlRDX3JsYy5iaW4N
Cj4+IHN1Y2NlZWRlZA0KPj4gWyAgIDEwLjMzMDg3MF0gcmFkZW9uIDAwMDA6MDE6MDAuMDog
RGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yDQo+PiByYWRlb24vQ0FJQ09TX21jLmJpbiBmYWls
ZWQgd2l0aCBlcnJvciAtMg0KPj4gWyAgIDEwLjM4MDk3OV0gbmlfY3A6IEZhaWxlZCB0byBs
b2FkIGZpcm13YXJlICJyYWRlb24vQ0FJQ09TX21jLmJpbiINCj4+IFsgICAxMC4zODEwMDZd
IFtkcm06ZXZlcmdyZWVuX2luaXQgW3JhZGVvbl1dICpFUlJPUiogRmFpbGVkIHRvIGxvYWQN
Cj4+IGZpcm13YXJlIQ0KPj4gWyAgIDEwLjQwNTc2NV0gcmFkZW9uIDAwMDA6MDE6MDAuMDog
RmF0YWwgZXJyb3IgZHVyaW5nIEdQVSBpbml0DQo+PiBbICAgMTAuNDMyMTA3XSBbZHJtXSBy
YWRlb246IGZpbmlzaGluZyBkZXZpY2UuDQo+PiBbICAgMTAuNDM5MTc5XSBbZHJtXSByYWRl
b246IHR0bSBmaW5hbGl6ZWQNCj4+IFsgICAxMC40NjMyMDNdIHJhZGVvbjogcHJvYmUgb2Yg
MDAwMDowMTowMC4wIGZhaWxlZCB3aXRoIGVycm9yIC0yDQo+Pg0KPj4gQW5kIHdpdGggZGVj
b21wcmVzc2luZyByYWRlb24vQ0FJQ09TX21jLmJpbiBJIGdvdDoNCj4+DQo+PiAjIGRtZXNn
IHwgZ3JlcCByYWRlb24NCj4+IFsgICAxMC4yNjY0OTFdIFtkcm1dIHJhZGVvbiBrZXJuZWwg
bW9kZXNldHRpbmcgZW5hYmxlZC4NCj4+IFsgICAxMC4yNjY1NTJdIHJhZGVvbiAwMDAwOjAx
OjAwLjA6IHZnYWFyYjogZGVhY3RpdmF0ZSB2Z2EgY29uc29sZQ0KPj4gWyAgIDEwLjQ1NjA0
N10gcmFkZW9uIDAwMDA6MDE6MDAuMDogVlJBTTogMTAyNE0gMHgwMDAwMDAwMDAwMDAwMDAw
DQo+PiAtDQo+PiAweDAwMDAwMDAwM0ZGRkZGRkYgKDEwMjRNIHVzZWQpDQo+PiBbICAgMTAu
NDcwMjcwXSByYWRlb24gMDAwMDowMTowMC4wOiBHVFQ6IDEwMjRNIDB4MDAwMDAwMDA0MDAw
MDAwMCAtDQo+PiAweDAwMDAwMDAwN0ZGRkZGRkYNCj4+IFsgICAxMC41NjY5NDZdIFtkcm1d
IHJhZGVvbjogMTAyNE0gb2YgVlJBTSBtZW1vcnkgcmVhZHkNCj4+IFsgICAxMC41NzY4OTFd
IFtkcm1dIHJhZGVvbjogMTAyNE0gb2YgR1RUIG1lbW9yeSByZWFkeS4NCj4+IFsgICAxMC41
ODY5NzFdIHJhZGVvbiAwMDAwOjAxOjAwLjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvcg0K
Pj4gcmFkZW9uL0NBSUNPU19wZnAuYmluIHN1Y2NlZWRlZA0KPj4gWyAgIDEwLjYxMTg4Nl0g
cmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yDQo+PiByYWRl
b24vQ0FJQ09TX21lLmJpbiBzdWNjZWVkZWQNCj4+IFsgICAxMC42MTE5MDldIHJhZGVvbiAw
MDAwOjAxOjAwLjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvcg0KPj4gcmFkZW9uL0JUQ19y
bGMuYmluDQo+PiBzdWNjZWVkZWQNCj4+IFsgICAxMC42MTE5MzhdIHJhZGVvbiAwMDAwOjAx
OjAwLjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvcg0KPj4gcmFkZW9uL0NBSUNPU19tYy5i
aW4gc3VjY2VlZGVkDQo+PiBbICAgMTAuNjYwNTk5XSByYWRlb24gMDAwMDowMTowMC4wOiBE
aXJlY3QgZmlybXdhcmUgbG9hZCBmb3INCj4+IHJhZGVvbi9DQUlDT1Nfc21jLmJpbiBmYWls
ZWQgd2l0aCBlcnJvciAtMg0KPj4gWyAgIDEwLjY2MDYwMV0gc21jOiBlcnJvciBsb2FkaW5n
IGZpcm13YXJlICJyYWRlb24vQ0FJQ09TX3NtYy5iaW4iDQo+IA0KPiBZb3UgYWxzbyBuZWVk
IHRvIG1ha2Ugc3VyZSBDQUlDT1Nfc21jLmJpbiBpcyBhdmFpbGFibGUuDQoNCk9mIGNvdXJz
ZS4gQnV0IHdpdGggYWxsIGZpcm13YXJlIGZpbGVzIGxvYWRhYmxlIHRoZSBzeXN0ZW0gaXMg
Y3Jhc2hpbmcsIHRvby4NCg0KSSB0aG91Z2h0IGl0IG1pZ2h0IGhlbHAgdG8gc2VlIGFmdGVy
IHdoaWNoIGZpcm13YXJlIHRoZSBjcmFzaGVzIGFyZSBzdGFydGluZy4NCg0KPiANCj4+IFsg
ICAxMC42NjE2NzZdIFtkcm1dIHJhZGVvbjogcG93ZXIgbWFuYWdlbWVudCBpbml0aWFsaXpl
ZA0KPj4gWyAgIDEwLjcxMzY2Nl0gcmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13
YXJlIGxvYWQgZm9yDQo+PiByYWRlb24vU1VNT191dmQuYmluDQo+PiBmYWlsZWQgd2l0aCBl
cnJvciAtMg0KPj4gWyAgIDEwLjcxMzY2OF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogcmFkZW9u
X3V2ZDogQ2FuJ3QgbG9hZCBmaXJtd2FyZQ0KPj4gInJhZGVvbi9TVU1PX3V2ZC5iaW4iDQo+
PiBbICAgMTAuNzEzNjY5XSByYWRlb24gMDAwMDowMTowMC4wOiBmYWlsZWQgVVZEICgtMikg
aW5pdC4NCj4gDQo+IEFuZCBTVU1PX3V2ZC5iaW4uDQoNClN1cmUuDQoNCj4gDQo+PiBbICAg
MTAuNzE0Nzg3XSBbZHJtXSBlbmFibGluZyBQQ0lFIGdlbiAyIGxpbmsgc3BlZWRzLCBkaXNh
YmxlIHdpdGgNCj4+IHJhZGVvbi5wY2llX2dlbjI9MA0KPj4gWyAgIDEwLjgwOTIxM10gcmFk
ZW9uIDAwMDA6MDE6MDAuMDogV0IgZW5hYmxlZA0KPj4gWyAgIDEwLjgxNzUyOF0gcmFkZW9u
IDAwMDA6MDE6MDAuMDogZmVuY2UgZHJpdmVyIG9uIHJpbmcgMCB1c2UgZ3B1IGFkZHINCj4+
IDB4MDAwMDAwMDA0MDAwMGMwMA0KPj4gWyAgIDEwLjgzMzc1NV0gcmFkZW9uIDAwMDA6MDE6
MDAuMDogZmVuY2UgZHJpdmVyIG9uIHJpbmcgMyB1c2UgZ3B1IGFkZHINCj4+IDB4MDAwMDAw
MDA0MDAwMGMwYw0KPj4gWyAgIDEwLjg1MDMzMF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogcmFk
ZW9uOiBNU0kgbGltaXRlZCB0byAzMi1iaXQNCj4+IFsgICAxMC44NjIxNTRdIHJhZGVvbiAw
MDAwOjAxOjAwLjA6IHJhZGVvbjogdXNpbmcgTVNJLg0KPj4gWyAgIDEwLjg3MTkzMF0gW2Ry
bV0gcmFkZW9uOiBpcnEgaW5pdGlhbGl6ZWQuDQo+PiBbICAgMTEuMDYyMDI4XSBbZHJtXSBJ
bml0aWFsaXplZCByYWRlb24gMi41MC4wIDIwMDgwNTI4IGZvciAwMDAwOjAxOjAwLjAgb24N
Cj4+IG1pbm9yIDANCj4+IFsgICAxMS4xMTk3MjNdIFtkcm06cmFkZW9uX2R2aV9kZXRlY3Qg
W3JhZGVvbl1dICpFUlJPUiogRFZJLUktMTogcHJvYmVkIGENCj4+IG1vbml0b3IgYnV0IG5v
fGludmFsaWQgRURJRA0KPj4gWyAgIDExLjQxMTM3MF0gZmJjb246IHJhZGVvbmRybWZiIChm
YjApIGlzIHByaW1hcnkgZGV2aWNlDQo+PiBbICAgMTEuNTA3MjUyXSByYWRlb24gMDAwMDow
MTowMC4wOiBbZHJtXSBmYjA6IHJhZGVvbmRybWZiIGZyYW1lIGJ1ZmZlcg0KPj4gZGV2aWNl
DQo+PiBbICAgMTEuNjc0MDI4XSBbZHJtOnJhZGVvbl9kdmlfZGV0ZWN0IFtyYWRlb25dXSAq
RVJST1IqIERWSS1JLTE6IHByb2JlZCBhDQo+PiBtb25pdG9yIGJ1dCBub3xpbnZhbGlkIEVE
SUQNCj4+IFsgICAxMS44MzQzMTddIFtkcm06cmFkZW9uX2R2aV9kZXRlY3QgW3JhZGVvbl1d
ICpFUlJPUiogRFZJLUktMTogcHJvYmVkIGENCj4+IG1vbml0b3IgYnV0IG5vfGludmFsaWQg
RURJRA0KPj4gWyAgIDI4LjMxMzA0MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAxOjAwLjE6IGJv
dW5kIDAwMDA6MDE6MDAuMCAob3BzDQo+PiByYWRlb25fYXVkaW9fY29tcG9uZW50X2JpbmRf
b3BzIFtyYWRlb25dKQ0KPj4gWyAgIDQ0LjM3MTk5MV0gW2RybTpyYWRlb25fZHZpX2RldGVj
dCBbcmFkZW9uXV0gKkVSUk9SKiBEVkktSS0xOiBwcm9iZWQgYQ0KPj4gbW9uaXRvciBidXQg
bm98aW52YWxpZCBFRElEDQo+PiBbICAgNDQuNDI4MDY4XSBbZHJtOnJhZGVvbl9kdmlfZGV0
ZWN0IFtyYWRlb25dXSAqRVJST1IqIERWSS1JLTE6IHByb2JlZCBhDQo+PiBtb25pdG9yIGJ1
dCBub3xpbnZhbGlkIEVESUQNCj4+DQo+PiBmb2xsb3dlZCBieSBhIGNyYXNoIHNvbWUgc2Vj
b25kcyBhZnRlciB0aGUgc3lzdGVtIHdhcyB1cC4NCj4+DQo+PiBUaGUgY3Jhc2hlcyB2YXJ5
LCBidXQgb2Z0ZW4gdGhlIGtlcm5lbCBhY2Nlc3NlcyBub24tY2Fub25pY2FsIGFkZHJlc3Nl
cyBvcg0KPj4gdHJpZXMgdG8gbWFwIGlsbGVnYWwgcGh5c2ljYWwgYWRkcmVzc2VzLiBTb21l
dGltZXMgdGhlIHN5c3RlbSBpcyBqdXN0IGhhbmdpbmcsDQo+PiBlaXRoZXIgd2l0aCBzb2Z0
bG9ja3VwcyBvciB3aXRob3V0IGFueSBmdXJ0aGVyIHNpZ25zIG9mIGJlaW5nIGFsaXZlLg0K
Pj4NCj4+IEkgY2FuIGVhc2lseSByZXByb2R1Y2UgdGhlIHByb2JsZW0sIHNvIGFueSBkZWJ1
ZyBwYXRjaGVzIHRvIG5hcnJvdyBkb3duIHRoZQ0KPj4gcHJvYmxlbSBhcmUgd2VsY29tZS4N
Cj4gDQo+IFRoZXJlIGFyZSBzdGlsbCBtaXNzaW5nIGZpcm13YXJlIHJlcXVpcmVkIGZvciBw
cm9wZXIgb3BlcmF0aW9uLiAgUGxlYXNlIGZpeCB0aGVtIHVwLg0KDQpUaGF0IHdhcyB0aGUg
c3RhcnRpbmcgcG9pbnQsIG9mIGNvdXJzZSENCg0KQlRXLCBtZWFud2hpbGUgSSBoYXZlIHRl
c3RlZCBrZXJuZWwgNS4xOSwgd2hpY2ggaXMgd29ya2luZy4gSSBzdXNwZWN0ZWQgdGhhdA0K
dGhlIHBhdGNoIHNlcmllcyBtZXJnaW5nIHN3aW90bGIgYW5kIHN3aW90bGIteGVuIGNvdWxk
IGJlIHRvIGJsYW1lLCBidXQgdGhhdA0Kd2VudCBpbnRvIHY1LjE5Lg0KDQoNCkp1ZXJnZW4N
Cg==
--------------kxPE0UWCVuBdTwBgE5WHt8yy
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-----

--------------kxPE0UWCVuBdTwBgE5WHt8yy--

--------------uvwBTBvdMRe7VA7G0i8YDlJY--

--------------n5q47dhKenDHw0thuDhdOTXj
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/Ey8FAmV8evUFAwAAAAAACgkQsN6d1ii/Ey8E
2gf/VUYp5g3ZkxQF7r5l+iSuNyvgyRWtXAl46OHoyvTzgyLhSljPGoN8C9OWLg3TbBFcgy1v2mFX
Ufg8Bher3kPuvC8+CHQMg7mh8auqHPjpgf1DeHtr21gVJ8sc923IFvJGvMAgMOk0w2BXBnMrDXdr
T9GJvPs+c2mW3vXQtqSbmu3Lz9ZHmuQM5ZbW7a1YBmN/z1DUkfWlr9rOWw4siKmAH3uXrpP+JTwK
9VYCs9tr1o2KqZ5gPepClzWpbQfLtdUxCRqib/bQLW8xcTefnSCJqeRoPSLDd3FG+oQJVEVAbrrw
lesnI0ky3PEnHk09eiERnrjqxTCT5lg72Piuwezahg==
=ejFs
-----END PGP SIGNATURE-----

--------------n5q47dhKenDHw0thuDhdOTXj--


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 16:13:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 16:13:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655199.1022938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEAo8-0008PX-5v; Fri, 15 Dec 2023 16:13:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655199.1022938; Fri, 15 Dec 2023 16:13:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEAo8-0008PP-2F; Fri, 15 Dec 2023 16:13:00 +0000
Received: by outflank-mailman (input) for mailman id 655199;
 Fri, 15 Dec 2023 16:04: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=Iwb5=H2=amd.com=Alexander.Deucher@srs-se1.protection.inumbo.net>)
 id 1rEAgD-00066h-Aw
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 16:04:49 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20601.outbound.protection.outlook.com
 [2a01:111:f400:7eae::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a996ad73-9b63-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 17:04:45 +0100 (CET)
Received: from BL1PR12MB5144.namprd12.prod.outlook.com (2603:10b6:208:316::6)
 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.7091.28; Fri, 15 Dec
 2023 16:04:41 +0000
Received: from BL1PR12MB5144.namprd12.prod.outlook.com
 ([fe80::f081:16c7:9129:c010]) by BL1PR12MB5144.namprd12.prod.outlook.com
 ([fe80::f081:16c7:9129:c010%3]) with mapi id 15.20.7091.032; Fri, 15 Dec 2023
 16:04: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: a996ad73-9b63-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Rt/VQ+DfRQfOnHq62IFNHqb2AehuQDC7IJ01jR7F2C1s5/D2IKKRv+jlHVyCXCduaUx/G09sFO22EVZaRKV8yy8u6zYwVmxACHmcPARKPEOT8bkEyxDPndIptq9gL0PBj1hCKCCOdBgE/OGSbs9jmNHkx68TPz9DQpX/5gEv+XmLEtaBkTS+gjjdyAntMLrPUA433iC6g190/KZYzXrsTpEtG01Z3Q4ZXazzPMrLVJdTfziXl7XcDyMVC0M7iTZpApeFh5Y17VPYdNU4JYQl9ImLId5gSM/g8nOo4cBDTYWyxVVVFQNKh94UexVK8xHhf/3WJr4WvYtolkzuejz4lg==
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=Ckcw/fAX2EZCrBYjqm5Ss1V4REYBXH7rXqP8aSCno7w=;
 b=SorEAp9HXBIsxjzY5cnUhzMWUITfk4GPcPEyhJWKekMByozAZEAnX+nbFIRBfZyHm4E6A17Kp8NhlqlQ9Er94LN3LONj/78tBwi1UIe25VIWQmPGWv+SWu2CFWYDiTzKHDT1YXeeh+adoucMWZee9M9OZOnp0pxLHQVjIFTEnBHCyKWaMqC56NYuPw312RUxYQudIHrFxX0VbfQhjTC74ZGl7nsecVHlr5eA+l1drHm45hcHG4RJdSD8DnubHQYLAUpDu3RUXlydguORddrU/WtUTSwNMOJ6AkrA5WV350ArIl7XWKdsN/nSQTHrj9sWRyQth2ho4Zwwiw1p+k7mZg==
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=Ckcw/fAX2EZCrBYjqm5Ss1V4REYBXH7rXqP8aSCno7w=;
 b=4ci+AfnODhanMm44E41BPUtFVaS6HIPDOth7j30oqYMOaUfkHX9yisfhUdF0P6Terw/Ecx+IHF7/H2+He355Rbn/WtVwN3Bo5bAMgd9rIdJ5HLQdLcJr7tIPpVgyfKIj1wEBYTIx16VBOI+LqGV3iwFt2gI7O/HEzd0G+/fk0Yc=
From: "Deucher, Alexander" <Alexander.Deucher@amd.com>
To: Juergen Gross <jgross@suse.com>, lkml <linux-kernel@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>
CC: "Koenig, Christian" <Christian.Koenig@amd.com>, "Pan, Xinhui"
	<Xinhui.Pan@amd.com>
Subject: RE: Crashes under Xen with Radeon graphics card
Thread-Topic: Crashes under Xen with Radeon graphics card
Thread-Index: AQHaL03LUpC/YyNzGkyNa5aGXUbMjbCqgbQQ
Date: Fri, 15 Dec 2023 16:04:40 +0000
Message-ID:
 <BL1PR12MB5144541AC4318F30D2F57F27F793A@BL1PR12MB5144.namprd12.prod.outlook.com>
References: <29ceab65-4790-4015-b83c-241c35dfff08@suse.com>
In-Reply-To: <29ceab65-4790-4015-b83c-241c35dfff08@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ActionId=81c24ba7-b2f2-4c46-866e-4101b85b4dff;MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ContentBits=0;MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Enabled=true;MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Method=Privileged;MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Name=Public-AIP
 2.0;MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SetDate=2023-12-15T16:02:58Z;MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5144:EE_|SA3PR12MB7781:EE_
x-ms-office365-filtering-correlation-id: ffbdd11e-e720-4dc3-99a0-08dbfd878b98
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 R1/EQQiw+Ti4a2ILBKbmxX6DKdKsQf+2lWeSghmKXhblSTgCq6MNSr6uyvgnrr9Qqsirjc9u80sp+a5w/h3pU7tfquZ5crss+jAEfmiZAiXoFMFXYgtR7TEcUMgh8sNiJ73srDbC5FuBmp9hatKkjT4z5cjjuGso6crRLGy3YozRSdhmaqIwUzEFd6p05vluy0cr3AORnmlwcpQ5RwqSrFphScn00kU8h/OlNygL4AynHUfg7cMwURkqTMpbgaB9BryoQuHt4o84f7In34Uy/BSud34h1jLDP5Ror6v+hAb5MKHnZhhVgzUwpEnEkEjKR5sIyLMFhCLCMtqngWPZPNPKK+tvF+HXkDxopFlrQ1+pmm/Amxdsu+nE75M96+K7i4f3UifzLxwO+/ahu9ZMv/xlEjmTXNbEgPkmwsXWYCyyJiEMjw49lEEjOtzgXLlMPOOYo8onHrgermzyP1Ynqg7QiqRpDJAgW+aQYnWtNsSaidbJojflXWSVydgJqA9AG6BXSzXRt/6V2Ndree1uYH+iUVj1wHyipujktvHo3HmyYcvtZgnyVWaAZYFX3Xh7/hTpLrfB9C70lChBHgz4KQrQUnDKOohJFYrAH+jPZ0KllyiqGzlm7uhWt1n1b9J6
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5144.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(136003)(39860400002)(396003)(366004)(346002)(230922051799003)(451199024)(64100799003)(186009)(1800799012)(66556008)(66446008)(52536014)(110136005)(64756008)(54906003)(76116006)(316002)(8676002)(8936002)(4326008)(66574015)(66476007)(83380400001)(66946007)(6506007)(7696005)(71200400001)(53546011)(478600001)(26005)(9686003)(5660300002)(2906002)(41300700001)(33656002)(38070700009)(66899024)(122000001)(38100700002)(86362001)(55016003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VW5FQjE2QnZZQ0RQdDZSNTNzTFAvQ1hqNm5zUHYyVHAwYVFLcmxGUVBzTE1s?=
 =?utf-8?B?ZUp6SjhFakRoUWpCMHNOWEZPb2d6QUxiMnlaUmI2Ym1PdUtUcU1UZ1MxcU5h?=
 =?utf-8?B?VjNpNW5pa01yQkIxay9jMzA5OFpuUitNV1FzTXJaLzFUbDVHRUJTR1c3cG44?=
 =?utf-8?B?RnNnOUE5REVJM2FnNjZPa2cya285eWZxOEhRZy82aTlzeUVtRHJORzBsbm5q?=
 =?utf-8?B?TGN2eG55V0JkN1EyWE1pWVlmcnMvRlk5UHZ4QzhzV3RYSGNHdXd4YkVDMEFz?=
 =?utf-8?B?eDZzb1liSXJucERZUEFGT3p6SXQwU2FmaC9qd3NEM1JnNnpQRVhhYzZ3bkZi?=
 =?utf-8?B?dk1uRkNPcWNqTC9zcVB0QTY3NU9ReDR2QzdUSzFUZFRva1NjR2xzWThoMFI0?=
 =?utf-8?B?dXJuTDJGcGFCTkhITHBSYkpNVlM3eERTZGt6NWpaM0Y4eWZkVUc1bFJvKzc2?=
 =?utf-8?B?SHNZeG9LZWxlQlJVUDVUMjE4QTFIeTJZV0J0ZnlSYjlqTlJSUzc5bTVyWUJt?=
 =?utf-8?B?VEx0WVFqSXJ5WW9VcHZNWXNkRWlNeWNxdm85VWMzM29obEdUc0ZENnltb3g4?=
 =?utf-8?B?RHFxTFViU3hlMkVhaGhMTXdOQlU4aUxFVElMbkVsejVOdkczc2JkbTQ0V2pa?=
 =?utf-8?B?aVoxRmZVSVVnVXBEQWxqeHhhZ2xwdmxtekE5RlUvTDdibDFvR25tSlZvdG9O?=
 =?utf-8?B?b2xwUnl6TmlUTytaNzQzekprQmh2SzkyRjQrYVhDMkltNE1yek5raHJ4Vzds?=
 =?utf-8?B?N091bmwrSTF4N1ROL3M4VDdlcjZPbmNMT041VFpENWtuM2ErcnlrR2crdCt6?=
 =?utf-8?B?UWNQa1huRnptZXFhUk1wWkpJemVNRDlFSW5kUStrWXN6TitEZXlwRWsxbWRH?=
 =?utf-8?B?amdGNjByL0kxOTlCTHozYWNQY2xpdWM2N0hXUzZSOEorZExiWEFJM3NIN05W?=
 =?utf-8?B?cit2MzlqbC9WaHJHWGpxVjZMTytVRGZTQTJvYnZJMWZ0bDMwVTlFSlVTM00y?=
 =?utf-8?B?ZzJIRmJaMldOSXdMWXhYNFhUQ0cvQWxONTBpbzRIcmxMSUo1VmdWUzQyYXZK?=
 =?utf-8?B?cmxtODB2NkJXanBaRU5jZENzdFRDSHJGNDhaQSt5OUJCMlovTW8vVkZpbGV0?=
 =?utf-8?B?TjhycHkzSUtzMlVjNm9EaDhEd0NyL2RGenVKdkV6WjIrU0xnNzhFWVpUL251?=
 =?utf-8?B?SHAyTlYrNXN4T2VKYjFEM1dRT2ZsODhTUlUrQTFkdkxrOFBWV1BUU3JDcmRp?=
 =?utf-8?B?YzFwRXMvbEhXN3dzcllRWDljbExuTTloaDN6WDg4NkVRSXF6TDlOOCt5VVRy?=
 =?utf-8?B?N0RwdlpXYTFpSFRRMThNZjRXVnV3UzdOQTkyTk5UUHR3elg0bG03SXR4Slp4?=
 =?utf-8?B?QTZoWEtsRHkvamVqdXBDN1RPWnVmWnM0WWJGekM0K0dkUXd3N2VRcjVyTnpl?=
 =?utf-8?B?U3N2SmxtdS8rYVZFYkFzV3BIQ2EvMlNqTE80MldOZ1ZEVzZZcnh1NkxjbHN4?=
 =?utf-8?B?UUk2RmRybHQyVzR3dHhFUlR2dVEzVEJtTlJMRzJZaTBVeXdVY1lIbHI0clp6?=
 =?utf-8?B?bStYM2ZtMDdOa01LTTJVV1dUcFBJeWNFc1ZHRnFRWG1OdUxqSUMwbnpVcjZB?=
 =?utf-8?B?S1ZaTXpvNFV0MDJFUlNIbTB4NHJTR2RjTTZjVENwc2JJZVUvdlhIWnprYzFk?=
 =?utf-8?B?clB5ZjRLRWZtTFhSM044YVlQaEEwVng2eHMvdVBXN3ZiWUZzeUkvY1l3Z3lt?=
 =?utf-8?B?MGE2VWFrYm00WjhrN0N6SjNCRTBLOWRuYVFsUktCMjlmOTI5U3A3WENnL3g5?=
 =?utf-8?B?K0h4T1N5M04zQVdpMU12dElZWEdVU0lYbmZueHd4dktBMGVoclJZMEgveDBu?=
 =?utf-8?B?aThZS2JBRHduYWNsNWRDU0VYdVRGSG1vY1N4b0JOUE1KZlhzOForb2k5a3NO?=
 =?utf-8?B?WHNyWXpMZVQ0ZWNNdHJCYTdPMjk0TWZJam1JU0hLbWhvYkpuaEdNblVKY2ZJ?=
 =?utf-8?B?R0JGS2dsSlN3bFNRMlpOaytjK2tldWV6cmJKVkZzSUlTdms4VHVkZ1lCa0cr?=
 =?utf-8?B?UUZadjd6VFZIU0Q3MDNROGZGV0pHdXhGRldwaUkwRnJzN093NFhFT1ZLeFZa?=
 =?utf-8?Q?s+NY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5144.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ffbdd11e-e720-4dc3-99a0-08dbfd878b98
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Dec 2023 16:04:40.7484
 (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: OO0vDaMbC04Yr7Me+Vb3iq+KdQR6KDeaN8lAl1CySvh7JK8tlopITv9k3jWa/J+7FHo3l30BPFwFbPOezGU6yw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7781

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKdWVyZ2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMTUsIDIw
MjMgNjo1NyBBTQ0KPiBUbzogbGttbCA8bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZz47IHhl
bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgYW1kLQ0KPiBnZnhAbGlzdHMuZnJlZWRlc2t0
b3Aub3JnDQo+IENjOiBEZXVjaGVyLCBBbGV4YW5kZXIgPEFsZXhhbmRlci5EZXVjaGVyQGFtZC5j
b20+OyBLb2VuaWcsIENocmlzdGlhbg0KPiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPjsgUGFu
LCBYaW5odWkgPFhpbmh1aS5QYW5AYW1kLmNvbT4NCj4gU3ViamVjdDogQ3Jhc2hlcyB1bmRlciBY
ZW4gd2l0aCBSYWRlb24gZ3JhcGhpY3MgY2FyZA0KPg0KPiBIaSwNCj4NCj4gSSByZWNlbnRseSBz
dHVtYmxlZCBvdmVyIGEgdGVzdCBzeXN0ZW0gd2hpY2ggc2hvd2VkIGNyYXNoZXMgcHJvYmFibHkN
Cj4gcmVzdWx0aW5nIGZyb20gbWVtb3J5IGJlaW5nIG92ZXJ3cml0dGVuIHJhbmRvbWx5Lg0KPg0K
PiBUaGUgcHJvYmxlbSBpcyBvY2N1cnJpbmcgb25seSBpbiBEb20wIHdoZW4gcnVubmluZyB1bmRl
ciBYZW4uIEl0IHNlZW1zIHRvDQo+IGJlIHByZXNlbnQgc2luY2UgYXQgbGVhc3Qga2VybmVsIDYu
MyAoSSBkaWRuJ3QgZ28gYmFjayBmdXJ0aGVyIHlldCksIGFuZCBpdCBzZWVtcw0KPiBOT1QgdG8g
YmUgcHJlc2VudCBpbiBrZXJuZWwgNS4xNC4NCj4NCj4gSSB0cmFja2VkIHRoZSBwcm9ibGVtIGRv
d24gdG8gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBncmFwaGljcyBjYXJkICh0aGUNCj4gcHJv
YmxlbSBtaWdodCBzdXJmYWNlIG9ubHkgbGF0ZXIsIGJ1dCBhdCBsZWFzdCBhbiBlYXJseSBpbml0
aWFsaXphdGlvbiBmYWlsdXJlIG1hZGUNCj4gdGhlIHByb2JsZW0gZ28gYXdheSkuDQo+DQo+ICMg
bHNwY2kNCj4gMDE6MDAuMCBWR0EgY29tcGF0aWJsZSBjb250cm9sbGVyOiBBZHZhbmNlZCBNaWNy
byBEZXZpY2VzLCBJbmMuIFtBTUQvQVRJXQ0KPiBDYWljb3MgWFRYIFtSYWRlb24gSEQgODQ5MCAv
IFI1IDIzNVggT0VNXQ0KPiAwMTowMC4xIEF1ZGlvIGRldmljZTogQWR2YW5jZWQgTWljcm8gRGV2
aWNlcywgSW5jLiBbQU1EL0FUSV0gQ2FpY29zIEhETUkNCj4gQXVkaW8gW1JhZGVvbiBIRCA2NDUw
IC8gNzQ1MC84NDUwLzg0OTAgT0VNIC8gUjUgMjMwLzIzNS8yMzVYIE9FTV0NCj4NCj4gSSBoYWQg
YSB3b3JraW5nIC5jb25maWcgYW5kIG9uZSB3aGljaCBkaWQgcHJvZHVjZSB0aGUgY3Jhc2hlcywg
c28gSSBuYXJyb3dlZA0KPiB0aGUgcHJvYmxlbSBkb3duIHRvIGRldGVjdCB0aGF0IHRoZSBpbXBv
cnRhbnQgZGlmZmVyZW5jZSB3YXMgaW4gdGhlIGFyZWEgb2YNCj4gZmlybXdhcmUgbG9hZGluZyAo
dGhlIHdvcmtpbmcgLmNvbmZpZyBkaWRuJ3QgaGF2ZQ0KPiBDT05GSUdfRldfTE9BREVSX0NPTVBS
RVNTX1haIHNldCwgY2F1c2luZyBmaXJtd2FyZSBsb2FkaW5nIGZvciB0aGUNCj4gY2FyZCB0byBm
YWlsKS4gVGhpcyB3YXMgb2YgY291cnNlIG5vdCB0aGUgcmVhbCBwcm9ibGVtLCBidXQgaXQgY2F1
c2VkIHRoZSBjYXJkDQo+IGluaXRpYWxpemF0aW9uIHRvIGZhaWwuDQo+DQo+IEkgbWFudWFsbHkg
ZGVjb21wcmVzc2VkIHRoZSBmaXJtd2FyZSBmaWxlcyBvbmUgYnkgb25lIHRvIHNlZSB3aGV0aGVy
IHRoZQ0KPiBwcm9ibGVtIHdvdWxkIGJlIGluIHRoZSBkZWNvbXByZXNzb3Igb3IgcHJvYmFibHkg
aW4gdGhlIGRyaXZlciBvZiB0aGUgY2FyZC4NCj4NCj4gVGhlIGxhc3Qgc3RlcCB3aXRob3V0IGNy
YXNoIHdhczoNCj4NCj4gIyBkbWVzZyB8IGdyZXAgcmFkZW9uDQo+IFsgICAxMC4xMDY0MDVdIFtk
cm1dIHJhZGVvbiBrZXJuZWwgbW9kZXNldHRpbmcgZW5hYmxlZC4NCj4gWyAgIDEwLjEwNjQ1NV0g
cmFkZW9uIDAwMDA6MDE6MDAuMDogdmdhYXJiOiBkZWFjdGl2YXRlIHZnYSBjb25zb2xlDQo+IFsg
ICAxMC4yMjI5NDRdIHJhZGVvbiAwMDAwOjAxOjAwLjA6IFZSQU06IDEwMjRNIDB4MDAwMDAwMDAw
MDAwMDAwMA0KPiAtDQo+IDB4MDAwMDAwMDAzRkZGRkZGRiAoMTAyNE0gdXNlZCkNCj4gWyAgIDEw
LjI1MjkyMV0gcmFkZW9uIDAwMDA6MDE6MDAuMDogR1RUOiAxMDI0TSAweDAwMDAwMDAwNDAwMDAw
MDAgLQ0KPiAweDAwMDAwMDAwN0ZGRkZGRkYNCj4gWyAgIDEwLjI3ODI1NV0gW2RybV0gcmFkZW9u
OiAxMDI0TSBvZiBWUkFNIG1lbW9yeSByZWFkeQ0KPiBbICAgMTAuMjk1ODI4XSBbZHJtXSByYWRl
b246IDEwMjRNIG9mIEdUVCBtZW1vcnkgcmVhZHkuDQo+IFsgICAxMC4yOTU4NjddIHJhZGVvbiAw
MDAwOjAxOjAwLjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvcg0KPiByYWRlb24vQ0FJQ09TX3Bm
cC5iaW4gc3VjY2VlZGVkDQo+IFsgICAxMC4zMzA4NDZdIHJhZGVvbiAwMDAwOjAxOjAwLjA6IERp
cmVjdCBmaXJtd2FyZSBsb2FkIGZvcg0KPiByYWRlb24vQ0FJQ09TX21lLmJpbiBzdWNjZWVkZWQN
Cj4gWyAgIDEwLjMzMDg1OF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJlIGxv
YWQgZm9yDQo+IHJhZGVvbi9CVENfcmxjLmJpbg0KPiBzdWNjZWVkZWQNCj4gWyAgIDEwLjMzMDg3
MF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yDQo+IHJhZGVv
bi9DQUlDT1NfbWMuYmluIGZhaWxlZCB3aXRoIGVycm9yIC0yDQo+IFsgICAxMC4zODA5NzldIG5p
X2NwOiBGYWlsZWQgdG8gbG9hZCBmaXJtd2FyZSAicmFkZW9uL0NBSUNPU19tYy5iaW4iDQo+IFsg
ICAxMC4zODEwMDZdIFtkcm06ZXZlcmdyZWVuX2luaXQgW3JhZGVvbl1dICpFUlJPUiogRmFpbGVk
IHRvIGxvYWQNCj4gZmlybXdhcmUhDQo+IFsgICAxMC40MDU3NjVdIHJhZGVvbiAwMDAwOjAxOjAw
LjA6IEZhdGFsIGVycm9yIGR1cmluZyBHUFUgaW5pdA0KPiBbICAgMTAuNDMyMTA3XSBbZHJtXSBy
YWRlb246IGZpbmlzaGluZyBkZXZpY2UuDQo+IFsgICAxMC40MzkxNzldIFtkcm1dIHJhZGVvbjog
dHRtIGZpbmFsaXplZA0KPiBbICAgMTAuNDYzMjAzXSByYWRlb246IHByb2JlIG9mIDAwMDA6MDE6
MDAuMCBmYWlsZWQgd2l0aCBlcnJvciAtMg0KPg0KPiBBbmQgd2l0aCBkZWNvbXByZXNzaW5nIHJh
ZGVvbi9DQUlDT1NfbWMuYmluIEkgZ290Og0KPg0KPiAjIGRtZXNnIHwgZ3JlcCByYWRlb24NCj4g
WyAgIDEwLjI2NjQ5MV0gW2RybV0gcmFkZW9uIGtlcm5lbCBtb2Rlc2V0dGluZyBlbmFibGVkLg0K
PiBbICAgMTAuMjY2NTUyXSByYWRlb24gMDAwMDowMTowMC4wOiB2Z2FhcmI6IGRlYWN0aXZhdGUg
dmdhIGNvbnNvbGUNCj4gWyAgIDEwLjQ1NjA0N10gcmFkZW9uIDAwMDA6MDE6MDAuMDogVlJBTTog
MTAyNE0gMHgwMDAwMDAwMDAwMDAwMDAwDQo+IC0NCj4gMHgwMDAwMDAwMDNGRkZGRkZGICgxMDI0
TSB1c2VkKQ0KPiBbICAgMTAuNDcwMjcwXSByYWRlb24gMDAwMDowMTowMC4wOiBHVFQ6IDEwMjRN
IDB4MDAwMDAwMDA0MDAwMDAwMCAtDQo+IDB4MDAwMDAwMDA3RkZGRkZGRg0KPiBbICAgMTAuNTY2
OTQ2XSBbZHJtXSByYWRlb246IDEwMjRNIG9mIFZSQU0gbWVtb3J5IHJlYWR5DQo+IFsgICAxMC41
NzY4OTFdIFtkcm1dIHJhZGVvbjogMTAyNE0gb2YgR1RUIG1lbW9yeSByZWFkeS4NCj4gWyAgIDEw
LjU4Njk3MV0gcmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yDQo+
IHJhZGVvbi9DQUlDT1NfcGZwLmJpbiBzdWNjZWVkZWQNCj4gWyAgIDEwLjYxMTg4Nl0gcmFkZW9u
IDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yDQo+IHJhZGVvbi9DQUlDT1Nf
bWUuYmluIHN1Y2NlZWRlZA0KPiBbICAgMTAuNjExOTA5XSByYWRlb24gMDAwMDowMTowMC4wOiBE
aXJlY3QgZmlybXdhcmUgbG9hZCBmb3INCj4gcmFkZW9uL0JUQ19ybGMuYmluDQo+IHN1Y2NlZWRl
ZA0KPiBbICAgMTAuNjExOTM4XSByYWRlb24gMDAwMDowMTowMC4wOiBEaXJlY3QgZmlybXdhcmUg
bG9hZCBmb3INCj4gcmFkZW9uL0NBSUNPU19tYy5iaW4gc3VjY2VlZGVkDQo+IFsgICAxMC42NjA1
OTldIHJhZGVvbiAwMDAwOjAxOjAwLjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvcg0KPiByYWRl
b24vQ0FJQ09TX3NtYy5iaW4gZmFpbGVkIHdpdGggZXJyb3IgLTINCj4gWyAgIDEwLjY2MDYwMV0g
c21jOiBlcnJvciBsb2FkaW5nIGZpcm13YXJlICJyYWRlb24vQ0FJQ09TX3NtYy5iaW4iDQoNCllv
dSBhbHNvIG5lZWQgdG8gbWFrZSBzdXJlIENBSUNPU19zbWMuYmluIGlzIGF2YWlsYWJsZS4NCg0K
PiBbICAgMTAuNjYxNjc2XSBbZHJtXSByYWRlb246IHBvd2VyIG1hbmFnZW1lbnQgaW5pdGlhbGl6
ZWQNCj4gWyAgIDEwLjcxMzY2Nl0gcmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJl
IGxvYWQgZm9yDQo+IHJhZGVvbi9TVU1PX3V2ZC5iaW4NCj4gZmFpbGVkIHdpdGggZXJyb3IgLTIN
Cj4gWyAgIDEwLjcxMzY2OF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogcmFkZW9uX3V2ZDogQ2FuJ3Qg
bG9hZCBmaXJtd2FyZQ0KPiAicmFkZW9uL1NVTU9fdXZkLmJpbiINCj4gWyAgIDEwLjcxMzY2OV0g
cmFkZW9uIDAwMDA6MDE6MDAuMDogZmFpbGVkIFVWRCAoLTIpIGluaXQuDQoNCkFuZCBTVU1PX3V2
ZC5iaW4uDQoNCj4gWyAgIDEwLjcxNDc4N10gW2RybV0gZW5hYmxpbmcgUENJRSBnZW4gMiBsaW5r
IHNwZWVkcywgZGlzYWJsZSB3aXRoDQo+IHJhZGVvbi5wY2llX2dlbjI9MA0KPiBbICAgMTAuODA5
MjEzXSByYWRlb24gMDAwMDowMTowMC4wOiBXQiBlbmFibGVkDQo+IFsgICAxMC44MTc1MjhdIHJh
ZGVvbiAwMDAwOjAxOjAwLjA6IGZlbmNlIGRyaXZlciBvbiByaW5nIDAgdXNlIGdwdSBhZGRyDQo+
IDB4MDAwMDAwMDA0MDAwMGMwMA0KPiBbICAgMTAuODMzNzU1XSByYWRlb24gMDAwMDowMTowMC4w
OiBmZW5jZSBkcml2ZXIgb24gcmluZyAzIHVzZSBncHUgYWRkcg0KPiAweDAwMDAwMDAwNDAwMDBj
MGMNCj4gWyAgIDEwLjg1MDMzMF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogcmFkZW9uOiBNU0kgbGlt
aXRlZCB0byAzMi1iaXQNCj4gWyAgIDEwLjg2MjE1NF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogcmFk
ZW9uOiB1c2luZyBNU0kuDQo+IFsgICAxMC44NzE5MzBdIFtkcm1dIHJhZGVvbjogaXJxIGluaXRp
YWxpemVkLg0KPiBbICAgMTEuMDYyMDI4XSBbZHJtXSBJbml0aWFsaXplZCByYWRlb24gMi41MC4w
IDIwMDgwNTI4IGZvciAwMDAwOjAxOjAwLjAgb24NCj4gbWlub3IgMA0KPiBbICAgMTEuMTE5NzIz
XSBbZHJtOnJhZGVvbl9kdmlfZGV0ZWN0IFtyYWRlb25dXSAqRVJST1IqIERWSS1JLTE6IHByb2Jl
ZCBhDQo+IG1vbml0b3IgYnV0IG5vfGludmFsaWQgRURJRA0KPiBbICAgMTEuNDExMzcwXSBmYmNv
bjogcmFkZW9uZHJtZmIgKGZiMCkgaXMgcHJpbWFyeSBkZXZpY2UNCj4gWyAgIDExLjUwNzI1Ml0g
cmFkZW9uIDAwMDA6MDE6MDAuMDogW2RybV0gZmIwOiByYWRlb25kcm1mYiBmcmFtZSBidWZmZXIN
Cj4gZGV2aWNlDQo+IFsgICAxMS42NzQwMjhdIFtkcm06cmFkZW9uX2R2aV9kZXRlY3QgW3JhZGVv
bl1dICpFUlJPUiogRFZJLUktMTogcHJvYmVkIGENCj4gbW9uaXRvciBidXQgbm98aW52YWxpZCBF
RElEDQo+IFsgICAxMS44MzQzMTddIFtkcm06cmFkZW9uX2R2aV9kZXRlY3QgW3JhZGVvbl1dICpF
UlJPUiogRFZJLUktMTogcHJvYmVkIGENCj4gbW9uaXRvciBidXQgbm98aW52YWxpZCBFRElEDQo+
IFsgICAyOC4zMTMwNDFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMTowMC4xOiBib3VuZCAwMDAwOjAx
OjAwLjAgKG9wcw0KPiByYWRlb25fYXVkaW9fY29tcG9uZW50X2JpbmRfb3BzIFtyYWRlb25dKQ0K
PiBbICAgNDQuMzcxOTkxXSBbZHJtOnJhZGVvbl9kdmlfZGV0ZWN0IFtyYWRlb25dXSAqRVJST1Iq
IERWSS1JLTE6IHByb2JlZCBhDQo+IG1vbml0b3IgYnV0IG5vfGludmFsaWQgRURJRA0KPiBbICAg
NDQuNDI4MDY4XSBbZHJtOnJhZGVvbl9kdmlfZGV0ZWN0IFtyYWRlb25dXSAqRVJST1IqIERWSS1J
LTE6IHByb2JlZCBhDQo+IG1vbml0b3IgYnV0IG5vfGludmFsaWQgRURJRA0KPg0KPiBmb2xsb3dl
ZCBieSBhIGNyYXNoIHNvbWUgc2Vjb25kcyBhZnRlciB0aGUgc3lzdGVtIHdhcyB1cC4NCj4NCj4g
VGhlIGNyYXNoZXMgdmFyeSwgYnV0IG9mdGVuIHRoZSBrZXJuZWwgYWNjZXNzZXMgbm9uLWNhbm9u
aWNhbCBhZGRyZXNzZXMgb3INCj4gdHJpZXMgdG8gbWFwIGlsbGVnYWwgcGh5c2ljYWwgYWRkcmVz
c2VzLiBTb21ldGltZXMgdGhlIHN5c3RlbSBpcyBqdXN0IGhhbmdpbmcsDQo+IGVpdGhlciB3aXRo
IHNvZnRsb2NrdXBzIG9yIHdpdGhvdXQgYW55IGZ1cnRoZXIgc2lnbnMgb2YgYmVpbmcgYWxpdmUu
DQo+DQo+IEkgY2FuIGVhc2lseSByZXByb2R1Y2UgdGhlIHByb2JsZW0sIHNvIGFueSBkZWJ1ZyBw
YXRjaGVzIHRvIG5hcnJvdyBkb3duIHRoZQ0KPiBwcm9ibGVtIGFyZSB3ZWxjb21lLg0KDQpUaGVy
ZSBhcmUgc3RpbGwgbWlzc2luZyBmaXJtd2FyZSByZXF1aXJlZCBmb3IgcHJvcGVyIG9wZXJhdGlv
bi4gIFBsZWFzZSBmaXggdGhlbSB1cC4NCg0KQWxleA0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 16:19:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 16:19:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655240.1022955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEAuU-000169-UU; Fri, 15 Dec 2023 16:19:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655240.1022955; Fri, 15 Dec 2023 16:19:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEAuU-000162-Rk; Fri, 15 Dec 2023 16:19:34 +0000
Received: by outflank-mailman (input) for mailman id 655240;
 Fri, 15 Dec 2023 16:19:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Iwb5=H2=amd.com=Alexander.Deucher@srs-se1.protection.inumbo.net>)
 id 1rEAuT-00012n-IP
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 16:19:33 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20601.outbound.protection.outlook.com
 [2a01:111:f403:2009::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba9e4c4c-9b65-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 17:19:32 +0100 (CET)
Received: from BL1PR12MB5144.namprd12.prod.outlook.com (2603:10b6:208:316::6)
 by MW6PR12MB8706.namprd12.prod.outlook.com (2603:10b6:303:249::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.28; Fri, 15 Dec
 2023 16:19:27 +0000
Received: from BL1PR12MB5144.namprd12.prod.outlook.com
 ([fe80::f081:16c7:9129:c010]) by BL1PR12MB5144.namprd12.prod.outlook.com
 ([fe80::f081:16c7:9129:c010%3]) with mapi id 15.20.7091.032; Fri, 15 Dec 2023
 16:19: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: ba9e4c4c-9b65-11ee-98ea-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QTJx1ECBSCEbuDq3b/+4HboRdIqErBP1d5b7/Jza9euxvvbArbCvHSKBTIRy0NUiV2Hixr/jVJP0zuWvDIfQHRzEZ39haVLIEeq09KzoQQViDfYVm70IKYeDyUPKUKHNqbEeP5Vge2gr+S/bknzVzTh9NSC56MsPGrZ1emwvLHIRQZz+nRjGNhl+yoVxnZRCKdZhtruff9LYeAtRT9QNPkfRNjOGVpJNzy9/apHVmAZhJuk4145bhFrX+1+ye8ti7p38FOINkvIdr77b0AY2JEJSqrgVPYwvSG+MhZk1HUIezcleEAtU+1RtHjQUvn9tk1NTeC/TavX0Gnu8wv0TFw==
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=IfvV0o4mmu05T7arDCJPd0Ew926IrWPi250ctYhJbIo=;
 b=KisvekWzRKre5IXQbgZGLQzzqjXUDkmg7f2pwyuxlAg2Ji24IXS3usd6CeJ9DXwkdyLpf2+JGsO4xszcSAAAiXw1vKpVHVJygChN57qDu2M0CvClfCdpeQFQvUJVFwgIIK24xNKyk7QB4KA17s1CTVeGp2t3LRHHnMCbcExhYlbX1whPyatUBze5AwTyfqWHYV73oLbunAzAXDz8lEt/lAjbm5Y1s0JtoK/MwaAW2d94R7J2CJY8Q6snzM8u20fbyTzAMOnCkdrngP+EApOkGUUqZE+7WYjWWW1FSIIfI4PIGO4iA29ZqV3GsL0x6hngfoIwiXCNLETzaZYOsOmypw==
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=IfvV0o4mmu05T7arDCJPd0Ew926IrWPi250ctYhJbIo=;
 b=lfF2QTj7BYg8GHcvBVP+8f6ua/hXOCi8metBBoOl2eTmMbUYFEKKgZiQ9tfwZJEGaCTy08K4NITysRkB98ic/TA4E898U7RjoBmi1B4fpHlP3U1aH5o3k55Y3D80FIbDhCFxecnDHgZNVpTYUDjG0G+4KVdtlPtM8cR+rZr43RY=
From: "Deucher, Alexander" <Alexander.Deucher@amd.com>
To: Juergen Gross <jgross@suse.com>, lkml <linux-kernel@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>
CC: "Koenig, Christian" <Christian.Koenig@amd.com>, "Pan, Xinhui"
	<Xinhui.Pan@amd.com>
Subject: RE: Crashes under Xen with Radeon graphics card
Thread-Topic: Crashes under Xen with Radeon graphics card
Thread-Index: AQHaL03LUpC/YyNzGkyNa5aGXUbMjbCqgbQQgAACuoCAAAFH8A==
Date: Fri, 15 Dec 2023 16:19:26 +0000
Message-ID:
 <BL1PR12MB514451609D73B032E7FF8B3AF793A@BL1PR12MB5144.namprd12.prod.outlook.com>
References: <29ceab65-4790-4015-b83c-241c35dfff08@suse.com>
 <BL1PR12MB5144541AC4318F30D2F57F27F793A@BL1PR12MB5144.namprd12.prod.outlook.com>
 <b91dabec-8fde-4de1-abfe-1664f9607784@suse.com>
In-Reply-To: <b91dabec-8fde-4de1-abfe-1664f9607784@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=745415b8-a4d8-48fe-960d-942329dd3b97;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-12-15T16:17:11Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5144:EE_|MW6PR12MB8706:EE_
x-ms-office365-filtering-correlation-id: 31310cd3-1e3f-41b8-c3ba-08dbfd899bc9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 Yv4jTRR9exezXwc8saN7gYKcPtggXaNl99EtY7kWSlqQP6XMfvgYLLJc1MJMg/etZQcEKNJiFSrtmHszIoe/R//wFeJ3qvvH3ncyDTIWM6j9FBiOGx42ERM8D5HYvPNMjj0YbXtDtt34JWTFHkoU73zICLH6fhnYvnocwZq57rv4GdTSU4YnDJ3Tj1JQndZlJ/fvtyEPrM9+TG+I+FxBYi4TzvHGUeoo1zBfCYa4F9ZVEZtqjufULNkhaTjW8Y72hBvE5ULg0aPgRUr6qHARgiI03VBhHYCGN1z8LHQ30NXLF4FLXzpDP/dR0X7L+913Y70ymV6Q9cnAixx7oQJGFJvkY5kmRPi/BMgX7rhSjcR6DpsPYP05AIMFyFFDxlNEODhJaue+C44pw/a6akn1jqZNZJyFIlTO+/5Jc9o2O+I/zbpnAIe5KccoEsJS1utY3iwu4oT0llQm0HUN12oouqpNKbqoSPEOrOffT9j6Dlavg7fcUCd+2lJWqVm592EL6jAIelLj1K7/qqddoWkfi4G3S904ysf2m5MF1b6ye8nnGVi25YOUGUduCHvnR7aHkp2PexaRBT654zIs0+6deezoDYrSqk0unHltyB83XrDoaon9TX1EFazotK20YX3u
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5144.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(376002)(39860400002)(396003)(346002)(366004)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(86362001)(122000001)(38100700002)(66899024)(38070700009)(55016003)(9686003)(26005)(7696005)(71200400001)(478600001)(6506007)(53546011)(52536014)(4326008)(76116006)(66946007)(64756008)(66476007)(66446008)(66556008)(8936002)(83380400001)(316002)(8676002)(110136005)(54906003)(66574015)(41300700001)(33656002)(5660300002)(2906002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WUNqQUU0T0trRnBvNDZxL1p4OGZlKzR3NEx1ZkdnMDNPTGw1UHUvNzVWVkc0?=
 =?utf-8?B?ZEZ2dWpUVXhNcnFZNmNMSksyR1RuU2lRbUtDT1pRSzJjN3IxYjJLeDY1NDhP?=
 =?utf-8?B?MU4zMUo0aUpCeTNubGRvSGFlRXpEdTN4MXJJR296aStsd3lmSW84VzEydUVt?=
 =?utf-8?B?dTNnV1BMdEx0UW9pd2JKQmhaMHBKZlk5TEdGYWFSRm1sMGhuZ2JMdyt4WGpP?=
 =?utf-8?B?OFFPSSt5L1NrMkZPWjlhdnFxalE5L2V0ZVljTExkUWxLcU1WQ0FYTUdtRGZR?=
 =?utf-8?B?cVg1Qkt1TXBqTGROb1E2Z0EyTUFVTHJ0VTVkRmxlSXhLZTYvVTl1L0lxNWJv?=
 =?utf-8?B?bVl2cUFISUJmb1U1bG5VUnprcFBiWXhvYVphSmsyNXRYRXpaVFh3MklybS8r?=
 =?utf-8?B?d21pSUlPQkxmZy9QckxMWENGbWxPM3I2azByV1lwYjVXc2M0NVh1bnRKQ1Nh?=
 =?utf-8?B?dFVrQnRpUmFlU1BPNWwzdm1iME9mZ0hqd0R4allXREVVa2lOdGh1R1Byb2lS?=
 =?utf-8?B?YnJaUkRNeHRSTWVVSmVhTnN0VzcxblZlVEtJV0xnSDZJb1VKNXBzNlo2S2J4?=
 =?utf-8?B?OWtJR1FXZjBObTUxcmVUbi9ZdGpGcGZwbUw2S2hlTmZLMVVNZk1hTXl5b2xC?=
 =?utf-8?B?TVd0YXd5TUh6STU1WldGTFRDVE5QVFNaUEc0Zkpycm5sK21xcDV6M1ZCTTgy?=
 =?utf-8?B?TmdqcHZzajZmTUxieUkrcDdhWnh3cTZIejJXVnQ1aks0VkZJWXBxUDVZN3B0?=
 =?utf-8?B?YVZVOU1LbUdTWklYZ1p1VEhyb0d5UlVxZGNaZFQ1c0pZVVJRWStIeGRLU0Mz?=
 =?utf-8?B?b3dua1F1Q2ZMM011Z2pVcDRsMVB4ZW5WZ3Z4elZpRXQ1RUVROTZrNnpxS2F4?=
 =?utf-8?B?QlFYWi9uOUVCZTd5aWp5aER5Ylg2L3pqV3RzVnloUnBrSjhUN0hqNk42R1JN?=
 =?utf-8?B?T3dsZUJ2RVVSZkJDZnFqbG9aTmhCcllIdGpMTGQycjY2a2t2M2ZmaFpGdXV4?=
 =?utf-8?B?aUZsejFOVS9INmNGVGtjUDlYMjh5d3JLd2JYcFR1TTNudExtWGVyTE9SZ3dI?=
 =?utf-8?B?MGxRVTErZUQrbWxKUGhrVXBmN1JjanA1WlVCZThNTi9mdmJ4bTBVRk9ESnUx?=
 =?utf-8?B?dmJXQUJBTGlMMzB6aWEzeG85WStsdFJYS2VzWk5DdTYyblEwd3liTm1uVFRN?=
 =?utf-8?B?akF1bjQvRll4TFY2VXN4YWFHeUx0a21zTUJCSlVrcXJSVmxlRStPRkovUWR0?=
 =?utf-8?B?NHYxZkZxZktlc0ExY2NkNEFKbzJvTC9TV3E1dmF6MnZIdnZSNXllcHZybitQ?=
 =?utf-8?B?TDdTcU96RjkyTkVXdkM2aU42MitJdjFmVTZKMUcwT1NDTFU0Wi94VnZMb0hU?=
 =?utf-8?B?dUdyZDNoS2hpN3A1eDd3NExheVVSQmhpeUdCNzJiVW1tTkhENHRIcWs0TDFR?=
 =?utf-8?B?eDBqTk5JUGJGOHRhaDZLYmxBVklEc3poRkFNSUJpZmJvaXVmTERkRnlUVVVj?=
 =?utf-8?B?T0xjRWtJTC9sd2FYQmdjMFJCSlB2TG4vN0d2cjhRZkJQU1VEVm5ndVhpTEU3?=
 =?utf-8?B?OE9lb2VFWmxmazUycm82N1Y0WnJjcnR4MlJKVkhXYmVoREZic3V6cHVBSTdp?=
 =?utf-8?B?ajhkMXBFYWZJbGZCd0VzQ2VWY0QrTjFwZStCakhvaGs4dXBML1hsOGROWEJq?=
 =?utf-8?B?Y1dIdXNhbFZxdWJ4ZlN2UVUzY1Z3ZjBtWjdZUGZPNVFCTVZTK0JHbTExZkxI?=
 =?utf-8?B?VVZHZzRBZHJVZDNndzRrd0prVitCa0FuN2I4RXJSaGtKVTI4M0hsSHE1SDVX?=
 =?utf-8?B?Z1dzaitDZjhNWiswaHNGYjRUcmlpOXhWVithOGQ0Nk5wT1VvOEQ5bzd2WFJF?=
 =?utf-8?B?SmxnZGtTMjd5VEU3RWdMSzZYcWk0WStBcWRna2VxaHB3U0xWNVhSalFtaWRU?=
 =?utf-8?B?L3dIOHU2Skc5di9XaUxDMXZVRG01cUFzZ1RxQ1ZUaFNpQVhlREV3eHFtUW81?=
 =?utf-8?B?RkE3eVhFMnB3WDc1RFBibTBiY1lwclRRa0hxSFNmbng3R3htOTFLSEJNM1gv?=
 =?utf-8?B?b1RGU09uYzZwZnZabmVPVzEyWVRJRHYwbFk2MGg4K2VHclJxdmJJQmNvY0JU?=
 =?utf-8?Q?h/aI=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5144.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 31310cd3-1e3f-41b8-c3ba-08dbfd899bc9
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Dec 2023 16:19:26.8654
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: x/PrU48nPH0mqyUWKFO8GHt77Z2CD7YouzssOu6IZXIw6ttChkTZwBMNt8XKJyOgEnCdhl5DmuPY0D4IiTBx6Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8706

W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNz
YWdlLS0tLS0NCj4gRnJvbTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KPiBTZW50
OiBGcmlkYXksIERlY2VtYmVyIDE1LCAyMDIzIDExOjEzIEFNDQo+IFRvOiBEZXVjaGVyLCBBbGV4
YW5kZXIgPEFsZXhhbmRlci5EZXVjaGVyQGFtZC5jb20+OyBsa21sIDxsaW51eC0NCj4ga2VybmVs
QHZnZXIua2VybmVsLm9yZz47IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgYW1kLQ0K
PiBnZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IENjOiBLb2VuaWcsIENocmlzdGlhbiA8Q2hy
aXN0aWFuLktvZW5pZ0BhbWQuY29tPjsgUGFuLCBYaW5odWkNCj4gPFhpbmh1aS5QYW5AYW1kLmNv
bT4NCj4gU3ViamVjdDogUmU6IENyYXNoZXMgdW5kZXIgWGVuIHdpdGggUmFkZW9uIGdyYXBoaWNz
IGNhcmQNCj4NCj4gT24gMTUuMTIuMjMgMTc6MDQsIERldWNoZXIsIEFsZXhhbmRlciB3cm90ZToN
Cj4gPiBbUHVibGljXQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+
IEZyb206IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gPj4gU2VudDogRnJpZGF5
LCBEZWNlbWJlciAxNSwgMjAyMyA2OjU3IEFNDQo+ID4+IFRvOiBsa21sIDxsaW51eC1rZXJuZWxA
dmdlci5rZXJuZWwub3JnPjsNCj4gPj4geGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBh
bWQtIGdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gPj4gQ2M6IERldWNoZXIsIEFsZXhhbmRl
ciA8QWxleGFuZGVyLkRldWNoZXJAYW1kLmNvbT47IEtvZW5pZywgQ2hyaXN0aWFuDQo+ID4+IDxD
aHJpc3RpYW4uS29lbmlnQGFtZC5jb20+OyBQYW4sIFhpbmh1aSA8WGluaHVpLlBhbkBhbWQuY29t
Pg0KPiA+PiBTdWJqZWN0OiBDcmFzaGVzIHVuZGVyIFhlbiB3aXRoIFJhZGVvbiBncmFwaGljcyBj
YXJkDQo+ID4+DQo+ID4+IEhpLA0KPiA+Pg0KPiA+PiBJIHJlY2VudGx5IHN0dW1ibGVkIG92ZXIg
YSB0ZXN0IHN5c3RlbSB3aGljaCBzaG93ZWQgY3Jhc2hlcyBwcm9iYWJseQ0KPiA+PiByZXN1bHRp
bmcgZnJvbSBtZW1vcnkgYmVpbmcgb3ZlcndyaXR0ZW4gcmFuZG9tbHkuDQo+ID4+DQo+ID4+IFRo
ZSBwcm9ibGVtIGlzIG9jY3VycmluZyBvbmx5IGluIERvbTAgd2hlbiBydW5uaW5nIHVuZGVyIFhl
bi4gSXQNCj4gPj4gc2VlbXMgdG8gYmUgcHJlc2VudCBzaW5jZSBhdCBsZWFzdCBrZXJuZWwgNi4z
IChJIGRpZG4ndCBnbyBiYWNrDQo+ID4+IGZ1cnRoZXIgeWV0KSwgYW5kIGl0IHNlZW1zIE5PVCB0
byBiZSBwcmVzZW50IGluIGtlcm5lbCA1LjE0Lg0KPiA+Pg0KPiA+PiBJIHRyYWNrZWQgdGhlIHBy
b2JsZW0gZG93biB0byB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGdyYXBoaWNzIGNhcmQNCj4g
Pj4gKHRoZSBwcm9ibGVtIG1pZ2h0IHN1cmZhY2Ugb25seSBsYXRlciwgYnV0IGF0IGxlYXN0IGFu
IGVhcmx5DQo+ID4+IGluaXRpYWxpemF0aW9uIGZhaWx1cmUgbWFkZSB0aGUgcHJvYmxlbSBnbyBh
d2F5KS4NCj4gPj4NCj4gPj4gIyBsc3BjaQ0KPiA+PiAwMTowMC4wIFZHQSBjb21wYXRpYmxlIGNv
bnRyb2xsZXI6IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4NCj4gPj4gW0FNRC9BVEldIENh
aWNvcyBYVFggW1JhZGVvbiBIRCA4NDkwIC8gUjUgMjM1WCBPRU1dDQo+ID4+IDAxOjAwLjEgQXVk
aW8gZGV2aWNlOiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIFtBTUQvQVRJXSBDYWljb3MN
Cj4gPj4gSERNSSBBdWRpbyBbUmFkZW9uIEhEIDY0NTAgLyA3NDUwLzg0NTAvODQ5MCBPRU0gLyBS
NQ0KPiAyMzAvMjM1LzIzNVgNCj4gPj4gT0VNXQ0KPiA+Pg0KPiA+PiBJIGhhZCBhIHdvcmtpbmcg
LmNvbmZpZyBhbmQgb25lIHdoaWNoIGRpZCBwcm9kdWNlIHRoZSBjcmFzaGVzLCBzbyBJDQo+ID4+
IG5hcnJvd2VkIHRoZSBwcm9ibGVtIGRvd24gdG8gZGV0ZWN0IHRoYXQgdGhlIGltcG9ydGFudCBk
aWZmZXJlbmNlIHdhcw0KPiA+PiBpbiB0aGUgYXJlYSBvZiBmaXJtd2FyZSBsb2FkaW5nICh0aGUg
d29ya2luZyAuY29uZmlnIGRpZG4ndCBoYXZlDQo+ID4+IENPTkZJR19GV19MT0FERVJfQ09NUFJF
U1NfWFogc2V0LCBjYXVzaW5nIGZpcm13YXJlIGxvYWRpbmcgZm9yIHRoZQ0KPiA+PiBjYXJkIHRv
IGZhaWwpLiBUaGlzIHdhcyBvZiBjb3Vyc2Ugbm90IHRoZSByZWFsIHByb2JsZW0sIGJ1dCBpdCBj
YXVzZWQNCj4gPj4gdGhlIGNhcmQgaW5pdGlhbGl6YXRpb24gdG8gZmFpbC4NCj4gPj4NCj4gPj4g
SSBtYW51YWxseSBkZWNvbXByZXNzZWQgdGhlIGZpcm13YXJlIGZpbGVzIG9uZSBieSBvbmUgdG8g
c2VlIHdoZXRoZXINCj4gPj4gdGhlIHByb2JsZW0gd291bGQgYmUgaW4gdGhlIGRlY29tcHJlc3Nv
ciBvciBwcm9iYWJseSBpbiB0aGUgZHJpdmVyIG9mIHRoZQ0KPiBjYXJkLg0KPiA+Pg0KPiA+PiBU
aGUgbGFzdCBzdGVwIHdpdGhvdXQgY3Jhc2ggd2FzOg0KPiA+Pg0KPiA+PiAjIGRtZXNnIHwgZ3Jl
cCByYWRlb24NCj4gPj4gWyAgIDEwLjEwNjQwNV0gW2RybV0gcmFkZW9uIGtlcm5lbCBtb2Rlc2V0
dGluZyBlbmFibGVkLg0KPiA+PiBbICAgMTAuMTA2NDU1XSByYWRlb24gMDAwMDowMTowMC4wOiB2
Z2FhcmI6IGRlYWN0aXZhdGUgdmdhIGNvbnNvbGUNCj4gPj4gWyAgIDEwLjIyMjk0NF0gcmFkZW9u
IDAwMDA6MDE6MDAuMDogVlJBTTogMTAyNE0NCj4gMHgwMDAwMDAwMDAwMDAwMDAwDQo+ID4+IC0N
Cj4gPj4gMHgwMDAwMDAwMDNGRkZGRkZGICgxMDI0TSB1c2VkKQ0KPiA+PiBbICAgMTAuMjUyOTIx
XSByYWRlb24gMDAwMDowMTowMC4wOiBHVFQ6IDEwMjRNIDB4MDAwMDAwMDA0MDAwMDAwMA0KPiAt
DQo+ID4+IDB4MDAwMDAwMDA3RkZGRkZGRg0KPiA+PiBbICAgMTAuMjc4MjU1XSBbZHJtXSByYWRl
b246IDEwMjRNIG9mIFZSQU0gbWVtb3J5IHJlYWR5DQo+ID4+IFsgICAxMC4yOTU4MjhdIFtkcm1d
IHJhZGVvbjogMTAyNE0gb2YgR1RUIG1lbW9yeSByZWFkeS4NCj4gPj4gWyAgIDEwLjI5NTg2N10g
cmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yDQo+ID4+IHJhZGVv
bi9DQUlDT1NfcGZwLmJpbiBzdWNjZWVkZWQNCj4gPj4gWyAgIDEwLjMzMDg0Nl0gcmFkZW9uIDAw
MDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJlIGxvYWQgZm9yDQo+ID4+IHJhZGVvbi9DQUlDT1Nf
bWUuYmluIHN1Y2NlZWRlZA0KPiA+PiBbICAgMTAuMzMwODU4XSByYWRlb24gMDAwMDowMTowMC4w
OiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3INCj4gPj4gcmFkZW9uL0JUQ19ybGMuYmluDQo+ID4+
IHN1Y2NlZWRlZA0KPiA+PiBbICAgMTAuMzMwODcwXSByYWRlb24gMDAwMDowMTowMC4wOiBEaXJl
Y3QgZmlybXdhcmUgbG9hZCBmb3INCj4gPj4gcmFkZW9uL0NBSUNPU19tYy5iaW4gZmFpbGVkIHdp
dGggZXJyb3IgLTINCj4gPj4gWyAgIDEwLjM4MDk3OV0gbmlfY3A6IEZhaWxlZCB0byBsb2FkIGZp
cm13YXJlICJyYWRlb24vQ0FJQ09TX21jLmJpbiINCj4gPj4gWyAgIDEwLjM4MTAwNl0gW2RybTpl
dmVyZ3JlZW5faW5pdCBbcmFkZW9uXV0gKkVSUk9SKiBGYWlsZWQgdG8gbG9hZA0KPiA+PiBmaXJt
d2FyZSENCj4gPj4gWyAgIDEwLjQwNTc2NV0gcmFkZW9uIDAwMDA6MDE6MDAuMDogRmF0YWwgZXJy
b3IgZHVyaW5nIEdQVSBpbml0DQo+ID4+IFsgICAxMC40MzIxMDddIFtkcm1dIHJhZGVvbjogZmlu
aXNoaW5nIGRldmljZS4NCj4gPj4gWyAgIDEwLjQzOTE3OV0gW2RybV0gcmFkZW9uOiB0dG0gZmlu
YWxpemVkDQo+ID4+IFsgICAxMC40NjMyMDNdIHJhZGVvbjogcHJvYmUgb2YgMDAwMDowMTowMC4w
IGZhaWxlZCB3aXRoIGVycm9yIC0yDQo+ID4+DQo+ID4+IEFuZCB3aXRoIGRlY29tcHJlc3Npbmcg
cmFkZW9uL0NBSUNPU19tYy5iaW4gSSBnb3Q6DQo+ID4+DQo+ID4+ICMgZG1lc2cgfCBncmVwIHJh
ZGVvbg0KPiA+PiBbICAgMTAuMjY2NDkxXSBbZHJtXSByYWRlb24ga2VybmVsIG1vZGVzZXR0aW5n
IGVuYWJsZWQuDQo+ID4+IFsgICAxMC4yNjY1NTJdIHJhZGVvbiAwMDAwOjAxOjAwLjA6IHZnYWFy
YjogZGVhY3RpdmF0ZSB2Z2EgY29uc29sZQ0KPiA+PiBbICAgMTAuNDU2MDQ3XSByYWRlb24gMDAw
MDowMTowMC4wOiBWUkFNOiAxMDI0TQ0KPiAweDAwMDAwMDAwMDAwMDAwMDANCj4gPj4gLQ0KPiA+
PiAweDAwMDAwMDAwM0ZGRkZGRkYgKDEwMjRNIHVzZWQpDQo+ID4+IFsgICAxMC40NzAyNzBdIHJh
ZGVvbiAwMDAwOjAxOjAwLjA6IEdUVDogMTAyNE0gMHgwMDAwMDAwMDQwMDAwMDAwDQo+IC0NCj4g
Pj4gMHgwMDAwMDAwMDdGRkZGRkZGDQo+ID4+IFsgICAxMC41NjY5NDZdIFtkcm1dIHJhZGVvbjog
MTAyNE0gb2YgVlJBTSBtZW1vcnkgcmVhZHkNCj4gPj4gWyAgIDEwLjU3Njg5MV0gW2RybV0gcmFk
ZW9uOiAxMDI0TSBvZiBHVFQgbWVtb3J5IHJlYWR5Lg0KPiA+PiBbICAgMTAuNTg2OTcxXSByYWRl
b24gMDAwMDowMTowMC4wOiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3INCj4gPj4gcmFkZW9uL0NB
SUNPU19wZnAuYmluIHN1Y2NlZWRlZA0KPiA+PiBbICAgMTAuNjExODg2XSByYWRlb24gMDAwMDow
MTowMC4wOiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3INCj4gPj4gcmFkZW9uL0NBSUNPU19tZS5i
aW4gc3VjY2VlZGVkDQo+ID4+IFsgICAxMC42MTE5MDldIHJhZGVvbiAwMDAwOjAxOjAwLjA6IERp
cmVjdCBmaXJtd2FyZSBsb2FkIGZvcg0KPiA+PiByYWRlb24vQlRDX3JsYy5iaW4NCj4gPj4gc3Vj
Y2VlZGVkDQo+ID4+IFsgICAxMC42MTE5MzhdIHJhZGVvbiAwMDAwOjAxOjAwLjA6IERpcmVjdCBm
aXJtd2FyZSBsb2FkIGZvcg0KPiA+PiByYWRlb24vQ0FJQ09TX21jLmJpbiBzdWNjZWVkZWQNCj4g
Pj4gWyAgIDEwLjY2MDU5OV0gcmFkZW9uIDAwMDA6MDE6MDAuMDogRGlyZWN0IGZpcm13YXJlIGxv
YWQgZm9yDQo+ID4+IHJhZGVvbi9DQUlDT1Nfc21jLmJpbiBmYWlsZWQgd2l0aCBlcnJvciAtMg0K
PiA+PiBbICAgMTAuNjYwNjAxXSBzbWM6IGVycm9yIGxvYWRpbmcgZmlybXdhcmUgInJhZGVvbi9D
QUlDT1Nfc21jLmJpbiINCj4gPg0KPiA+IFlvdSBhbHNvIG5lZWQgdG8gbWFrZSBzdXJlIENBSUNP
U19zbWMuYmluIGlzIGF2YWlsYWJsZS4NCj4NCj4gT2YgY291cnNlLiBCdXQgd2l0aCBhbGwgZmly
bXdhcmUgZmlsZXMgbG9hZGFibGUgdGhlIHN5c3RlbSBpcyBjcmFzaGluZywgdG9vLg0KPg0KPiBJ
IHRob3VnaHQgaXQgbWlnaHQgaGVscCB0byBzZWUgYWZ0ZXIgd2hpY2ggZmlybXdhcmUgdGhlIGNy
YXNoZXMgYXJlIHN0YXJ0aW5nLg0KPg0KPiA+DQo+ID4+IFsgICAxMC42NjE2NzZdIFtkcm1dIHJh
ZGVvbjogcG93ZXIgbWFuYWdlbWVudCBpbml0aWFsaXplZA0KPiA+PiBbICAgMTAuNzEzNjY2XSBy
YWRlb24gMDAwMDowMTowMC4wOiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3INCj4gPj4gcmFkZW9u
L1NVTU9fdXZkLmJpbg0KPiA+PiBmYWlsZWQgd2l0aCBlcnJvciAtMg0KPiA+PiBbICAgMTAuNzEz
NjY4XSByYWRlb24gMDAwMDowMTowMC4wOiByYWRlb25fdXZkOiBDYW4ndCBsb2FkIGZpcm13YXJl
DQo+ID4+ICJyYWRlb24vU1VNT191dmQuYmluIg0KPiA+PiBbICAgMTAuNzEzNjY5XSByYWRlb24g
MDAwMDowMTowMC4wOiBmYWlsZWQgVVZEICgtMikgaW5pdC4NCj4gPg0KPiA+IEFuZCBTVU1PX3V2
ZC5iaW4uDQo+DQo+IFN1cmUuDQo+DQo+ID4NCj4gPj4gWyAgIDEwLjcxNDc4N10gW2RybV0gZW5h
YmxpbmcgUENJRSBnZW4gMiBsaW5rIHNwZWVkcywgZGlzYWJsZSB3aXRoDQo+ID4+IHJhZGVvbi5w
Y2llX2dlbjI9MA0KPiA+PiBbICAgMTAuODA5MjEzXSByYWRlb24gMDAwMDowMTowMC4wOiBXQiBl
bmFibGVkDQo+ID4+IFsgICAxMC44MTc1MjhdIHJhZGVvbiAwMDAwOjAxOjAwLjA6IGZlbmNlIGRy
aXZlciBvbiByaW5nIDAgdXNlIGdwdSBhZGRyDQo+ID4+IDB4MDAwMDAwMDA0MDAwMGMwMA0KPiA+
PiBbICAgMTAuODMzNzU1XSByYWRlb24gMDAwMDowMTowMC4wOiBmZW5jZSBkcml2ZXIgb24gcmlu
ZyAzIHVzZSBncHUgYWRkcg0KPiA+PiAweDAwMDAwMDAwNDAwMDBjMGMNCj4gPj4gWyAgIDEwLjg1
MDMzMF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogcmFkZW9uOiBNU0kgbGltaXRlZCB0byAzMi1iaXQN
Cj4gPj4gWyAgIDEwLjg2MjE1NF0gcmFkZW9uIDAwMDA6MDE6MDAuMDogcmFkZW9uOiB1c2luZyBN
U0kuDQo+ID4+IFsgICAxMC44NzE5MzBdIFtkcm1dIHJhZGVvbjogaXJxIGluaXRpYWxpemVkLg0K
PiA+PiBbICAgMTEuMDYyMDI4XSBbZHJtXSBJbml0aWFsaXplZCByYWRlb24gMi41MC4wIDIwMDgw
NTI4IGZvciAwMDAwOjAxOjAwLjANCj4gb24NCj4gPj4gbWlub3IgMA0KPiA+PiBbICAgMTEuMTE5
NzIzXSBbZHJtOnJhZGVvbl9kdmlfZGV0ZWN0IFtyYWRlb25dXSAqRVJST1IqIERWSS1JLTE6DQo+
IHByb2JlZCBhDQo+ID4+IG1vbml0b3IgYnV0IG5vfGludmFsaWQgRURJRA0KPiA+PiBbICAgMTEu
NDExMzcwXSBmYmNvbjogcmFkZW9uZHJtZmIgKGZiMCkgaXMgcHJpbWFyeSBkZXZpY2UNCj4gPj4g
WyAgIDExLjUwNzI1Ml0gcmFkZW9uIDAwMDA6MDE6MDAuMDogW2RybV0gZmIwOiByYWRlb25kcm1m
YiBmcmFtZSBidWZmZXINCj4gPj4gZGV2aWNlDQo+ID4+IFsgICAxMS42NzQwMjhdIFtkcm06cmFk
ZW9uX2R2aV9kZXRlY3QgW3JhZGVvbl1dICpFUlJPUiogRFZJLUktMToNCj4gcHJvYmVkIGENCj4g
Pj4gbW9uaXRvciBidXQgbm98aW52YWxpZCBFRElEDQo+ID4+IFsgICAxMS44MzQzMTddIFtkcm06
cmFkZW9uX2R2aV9kZXRlY3QgW3JhZGVvbl1dICpFUlJPUiogRFZJLUktMToNCj4gcHJvYmVkIGEN
Cj4gPj4gbW9uaXRvciBidXQgbm98aW52YWxpZCBFRElEDQo+ID4+IFsgICAyOC4zMTMwNDFdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMTowMC4xOiBib3VuZCAwMDAwOjAxOjAwLjAgKG9wcw0KPiA+PiBy
YWRlb25fYXVkaW9fY29tcG9uZW50X2JpbmRfb3BzIFtyYWRlb25dKQ0KPiA+PiBbICAgNDQuMzcx
OTkxXSBbZHJtOnJhZGVvbl9kdmlfZGV0ZWN0IFtyYWRlb25dXSAqRVJST1IqIERWSS1JLTE6DQo+
IHByb2JlZCBhDQo+ID4+IG1vbml0b3IgYnV0IG5vfGludmFsaWQgRURJRA0KPiA+PiBbICAgNDQu
NDI4MDY4XSBbZHJtOnJhZGVvbl9kdmlfZGV0ZWN0IFtyYWRlb25dXSAqRVJST1IqIERWSS1JLTE6
DQo+IHByb2JlZCBhDQo+ID4+IG1vbml0b3IgYnV0IG5vfGludmFsaWQgRURJRA0KPiA+Pg0KPiA+
PiBmb2xsb3dlZCBieSBhIGNyYXNoIHNvbWUgc2Vjb25kcyBhZnRlciB0aGUgc3lzdGVtIHdhcyB1
cC4NCj4gPj4NCj4gPj4gVGhlIGNyYXNoZXMgdmFyeSwgYnV0IG9mdGVuIHRoZSBrZXJuZWwgYWNj
ZXNzZXMgbm9uLWNhbm9uaWNhbA0KPiA+PiBhZGRyZXNzZXMgb3IgdHJpZXMgdG8gbWFwIGlsbGVn
YWwgcGh5c2ljYWwgYWRkcmVzc2VzLiBTb21ldGltZXMgdGhlDQo+ID4+IHN5c3RlbSBpcyBqdXN0
IGhhbmdpbmcsIGVpdGhlciB3aXRoIHNvZnRsb2NrdXBzIG9yIHdpdGhvdXQgYW55IGZ1cnRoZXIg
c2lnbnMNCj4gb2YgYmVpbmcgYWxpdmUuDQo+ID4+DQo+ID4+IEkgY2FuIGVhc2lseSByZXByb2R1
Y2UgdGhlIHByb2JsZW0sIHNvIGFueSBkZWJ1ZyBwYXRjaGVzIHRvIG5hcnJvdw0KPiA+PiBkb3du
IHRoZSBwcm9ibGVtIGFyZSB3ZWxjb21lLg0KPiA+DQo+ID4gVGhlcmUgYXJlIHN0aWxsIG1pc3Np
bmcgZmlybXdhcmUgcmVxdWlyZWQgZm9yIHByb3BlciBvcGVyYXRpb24uICBQbGVhc2UgZml4DQo+
IHRoZW0gdXAuDQo+DQo+IFRoYXQgd2FzIHRoZSBzdGFydGluZyBwb2ludCwgb2YgY291cnNlIQ0K
DQpBaCwgb2suICBUaGFua3MgZm9yIGNsYXJpZnlpbmcuICBXaGF0IGV4YWN0bHkgaGFwcGVucyB3
aGVuIHlvdSBnZXQgdGhpcyBjcmFzaD8gIFN5c3RlbSBoYW5nPyAgS2VybmVsIG9vcHM/ICBJcyB0
aGVyZSBhbnl0aGluZyBpbiB0aGUgZG1lc2cgd2hlbiBpdCBoYXBwZW5zPw0KDQo+DQo+IEJUVywg
bWVhbndoaWxlIEkgaGF2ZSB0ZXN0ZWQga2VybmVsIDUuMTksIHdoaWNoIGlzIHdvcmtpbmcuIEkg
c3VzcGVjdGVkIHRoYXQNCj4gdGhlIHBhdGNoIHNlcmllcyBtZXJnaW5nIHN3aW90bGIgYW5kIHN3
aW90bGIteGVuIGNvdWxkIGJlIHRvIGJsYW1lLCBidXQgdGhhdA0KPiB3ZW50IGludG8gdjUuMTku
DQoNCkNhbiB5b3UgYmlzZWN0Pw0KDQpBbGV4DQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 16:33:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 16:33:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655270.1022966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEB7V-0004fV-4l; Fri, 15 Dec 2023 16:33:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655270.1022966; Fri, 15 Dec 2023 16:33:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEB7V-0004fO-1L; Fri, 15 Dec 2023 16:33:01 +0000
Received: by outflank-mailman (input) for mailman id 655270;
 Fri, 15 Dec 2023 16:33: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=25p9=H2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rEB7T-0004fI-Sv
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 16:33:00 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b21e404-9b67-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 17:32:58 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 7C0821FDD0;
 Fri, 15 Dec 2023 16:32: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 47B31137D4;
 Fri, 15 Dec 2023 16:32:57 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 7/HOD7l/fGU3bQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 15 Dec 2023 16:32: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: 9b21e404-9b67-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702657977; 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=xpLu4k/OyPUz/RLNHNQNcy2kaSsAFMk/ZFX4UPOv7lo=;
	b=m35CfrNFau0XYvLPOuoM9tmPau5tT5+3ElfuomottQCbxqg5ChSUskn1TtUloOq9rbhuQn
	sk90VI5VO/VrWV6Xeg4W5XwhzubBPz2vKkf/rkk3BiC2WrpeI4wEanUu09dNiBp31tuYq7
	o7aWUzBH2yizSbA7KjSvUwkj+BmvZJM=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1702657977; 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=xpLu4k/OyPUz/RLNHNQNcy2kaSsAFMk/ZFX4UPOv7lo=;
	b=m35CfrNFau0XYvLPOuoM9tmPau5tT5+3ElfuomottQCbxqg5ChSUskn1TtUloOq9rbhuQn
	sk90VI5VO/VrWV6Xeg4W5XwhzubBPz2vKkf/rkk3BiC2WrpeI4wEanUu09dNiBp31tuYq7
	o7aWUzBH2yizSbA7KjSvUwkj+BmvZJM=
Message-ID: <20270f70-f2a6-4977-9e75-5474b0306cea@suse.com>
Date: Fri, 15 Dec 2023 17:32:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Crashes under Xen with Radeon graphics card
Content-Language: en-US
To: "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 lkml <linux-kernel@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>
Cc: "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Pan, Xinhui" <Xinhui.Pan@amd.com>
References: <29ceab65-4790-4015-b83c-241c35dfff08@suse.com>
 <BL1PR12MB5144541AC4318F30D2F57F27F793A@BL1PR12MB5144.namprd12.prod.outlook.com>
 <b91dabec-8fde-4de1-abfe-1664f9607784@suse.com>
 <BL1PR12MB514451609D73B032E7FF8B3AF793A@BL1PR12MB5144.namprd12.prod.outlook.com>
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: <BL1PR12MB514451609D73B032E7FF8B3AF793A@BL1PR12MB5144.namprd12.prod.outlook.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------4ZOWJRl0YsisP82RrqFNdYTS"
X-Spam-Level: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.20 / 50.00];
	 TO_DN_EQ_ADDR_SOME(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCPT_COUNT_FIVE(0.00)[6];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 MX_GOOD(-0.01)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email,lists.freedesktop.org:email,xenproject.org:email];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 RCVD_TLS_ALL(0.00)[];
	 RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=m35CfrNF
X-Spam-Score: -4.20
X-Rspamd-Queue-Id: 7C0821FDD0

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------4ZOWJRl0YsisP82RrqFNdYTS
Content-Type: multipart/mixed; boundary="------------PeCYtwQpR9wAnvc09cLSGfT0";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 lkml <linux-kernel@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>
Cc: "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Pan, Xinhui" <Xinhui.Pan@amd.com>
Message-ID: <20270f70-f2a6-4977-9e75-5474b0306cea@suse.com>
Subject: Re: Crashes under Xen with Radeon graphics card
References: <29ceab65-4790-4015-b83c-241c35dfff08@suse.com>
 <BL1PR12MB5144541AC4318F30D2F57F27F793A@BL1PR12MB5144.namprd12.prod.outlook.com>
 <b91dabec-8fde-4de1-abfe-1664f9607784@suse.com>
 <BL1PR12MB514451609D73B032E7FF8B3AF793A@BL1PR12MB5144.namprd12.prod.outlook.com>
In-Reply-To: <BL1PR12MB514451609D73B032E7FF8B3AF793A@BL1PR12MB5144.namprd12.prod.outlook.com>

--------------PeCYtwQpR9wAnvc09cLSGfT0
Content-Type: multipart/mixed; boundary="------------uccJtY91T04U06gThWB9tOK0"

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

T24gMTUuMTIuMjMgMTc6MTksIERldWNoZXIsIEFsZXhhbmRlciB3cm90ZToNCj4gW0FNRCBP
ZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQo+IA0KPj4gLS0tLS1PcmlnaW5hbCBNZXNz
YWdlLS0tLS0NCj4+IEZyb206IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+
IFNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMTUsIDIwMjMgMTE6MTMgQU0NCj4+IFRvOiBEZXVj
aGVyLCBBbGV4YW5kZXIgPEFsZXhhbmRlci5EZXVjaGVyQGFtZC5jb20+OyBsa21sIDxsaW51
eC0NCj4+IGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmc7IGFtZC0NCj4+IGdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+IENjOiBL
b2VuaWcsIENocmlzdGlhbiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPjsgUGFuLCBYaW5o
dWkNCj4+IDxYaW5odWkuUGFuQGFtZC5jb20+DQo+PiBTdWJqZWN0OiBSZTogQ3Jhc2hlcyB1
bmRlciBYZW4gd2l0aCBSYWRlb24gZ3JhcGhpY3MgY2FyZA0KPj4NCj4+IE9uIDE1LjEyLjIz
IDE3OjA0LCBEZXVjaGVyLCBBbGV4YW5kZXIgd3JvdGU6DQo+Pj4gW1B1YmxpY10NCj4+Pg0K
Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+PiBGcm9tOiBKdWVyZ2VuIEdy
b3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCi4uLg0KDQo+Pj4+IFRoZSBjcmFzaGVzIHZhcnks
IGJ1dCBvZnRlbiB0aGUga2VybmVsIGFjY2Vzc2VzIG5vbi1jYW5vbmljYWwNCj4+Pj4gYWRk
cmVzc2VzIG9yIHRyaWVzIHRvIG1hcCBpbGxlZ2FsIHBoeXNpY2FsIGFkZHJlc3Nlcy4gU29t
ZXRpbWVzIHRoZQ0KPj4+PiBzeXN0ZW0gaXMganVzdCBoYW5naW5nLCBlaXRoZXIgd2l0aCBz
b2Z0bG9ja3VwcyBvciB3aXRob3V0IGFueSBmdXJ0aGVyIHNpZ25zDQo+PiBvZiBiZWluZyBh
bGl2ZS4NCj4+Pj4NCj4+Pj4gSSBjYW4gZWFzaWx5IHJlcHJvZHVjZSB0aGUgcHJvYmxlbSwg
c28gYW55IGRlYnVnIHBhdGNoZXMgdG8gbmFycm93DQo+Pj4+IGRvd24gdGhlIHByb2JsZW0g
YXJlIHdlbGNvbWUuDQo+Pj4NCj4+PiBUaGVyZSBhcmUgc3RpbGwgbWlzc2luZyBmaXJtd2Fy
ZSByZXF1aXJlZCBmb3IgcHJvcGVyIG9wZXJhdGlvbi4gIFBsZWFzZSBmaXgNCj4+IHRoZW0g
dXAuDQo+Pg0KPj4gVGhhdCB3YXMgdGhlIHN0YXJ0aW5nIHBvaW50LCBvZiBjb3Vyc2UhDQo+
IA0KPiBBaCwgb2suICBUaGFua3MgZm9yIGNsYXJpZnlpbmcuICBXaGF0IGV4YWN0bHkgaGFw
cGVucyB3aGVuIHlvdSBnZXQgdGhpcyBjcmFzaD8gIFN5c3RlbSBoYW5nPyAgS2VybmVsIG9v
cHM/ICBJcyB0aGVyZSBhbnl0aGluZyBpbiB0aGUgZG1lc2cgd2hlbiBpdCBoYXBwZW5zPw0K
DQpBcyBJIHdyb3RlIGFib3ZlOiByYXRoZXIgZGlmZmVyZW50IGNhc2VzLiBUaGUgY3Jhc2gg
aGFwcGVucyBub3JtYWxseQ0Kd2l0aGluIDIwIHNlY29uZHMgYWZ0ZXIgdGhlIHN5c3RlbSBp
cyBjb21wbGV0ZWx5IHVwLiBJIGhhZCBvbmUgY2FzZQ0Kd2hlcmUgaXQgc3Vydml2ZWQgY2Eu
IDIgbWludXRlcy4NCg0KT25lIGV4YW1wbGU6DQoNClsgICA2NC41NDkxMTRdIEJVRzogdW5h
YmxlIHRvIGhhbmRsZSBwYWdlIGZhdWx0IGZvciBhZGRyZXNzOiBmZmZmODg4MTIxMjkxMDAw
DQpbICAgNjQuNTYyODUwXSAjUEY6IHN1cGVydmlzb3Igd3JpdGUgYWNjZXNzIGluIGtlcm5l
bCBtb2RlDQpbICAgNjQuNTczMzUyXSAjUEY6IGVycm9yX2NvZGUoMHgwMDAzKSAtIHBlcm1p
c3Npb25zIHZpb2xhdGlvbg0KWyAgIDY0LjU4NDU4OV0gUEdEIDI4MzYwNjcgUDREIDI4MzYw
NjcgUFVEIDNlNzNmNzA2NyBQTUQgM2U3MmVkMDY3IFBURSANCjgwMTAwMDAxMjEyOTEwMjUN
ClsgICA2NC42MDAyMTJdIE9vcHM6IDAwMDMgWyMxXSBQUkVFTVBUIFNNUCBOT1BUSQ0KWyAg
IDY0LjYwODk4NV0gQ1BVOiAzIFBJRDogMjA5MCBDb21tOiBraW9zbGF2ZTUgVGFpbnRlZDog
RyAgICAgICAgICAgIEUgDQo2LjcuMC1yYzUtZGVmYXVsdCAjOTc0DQpbICAgNjQuNjI2NzIx
XSBIYXJkd2FyZSBuYW1lOiBEZWxsIEluYy4gT3B0aVBsZXggOTAyMC8wUEM1RjcsIEJJT1Mg
QTI1IDA1LzMwLzIwMTkNClsgICA2NC42NDExOTNdIFJJUDogZTAzMDpjbGVhcl9wYWdlX2Vy
bXMrMHg3LzB4MTANClsgICA2NC42NTAxNjFdIENvZGU6IDQ4IDg5IDQ3IDM4IDQ4IDhkIDdm
IDQwIDc1IGQ5IDkwIGMzIGNjIGNjIGNjIGNjIDBmIDFmIDAwIDkwIA0KOTAgOTAgOTAgOTAg
OTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgYjkgMDAgMTAgMDAgMDAgMzEgYzAg
PGYzPiBhYSBjMyBjYyANCmNjIGNjIGNjIDY2IDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkw
IDkwIDkwIDkwIDkwIDkwDQpbICAgNjQuNjg3OTk2XSBSU1A6IGUwMmI6ZmZmZmM5MDA0MjA2
ZmI1MCBFRkxBR1M6IDAwMDEwMjQ2DQpbICAgNjQuNjk4Mzc4XSBSQVg6IDAwMDAwMDAwMDAw
MDAwMDAgUkJYOiBmZmZmZWEwMDA0ODRhNDAwIFJDWDogMDAwMDAwMDAwMDAwMTAwMA0KWyAg
IDY0LjcxMjc4MF0gUkRYOiAwMDAwMDAwMDAwMDUyZGMwIFJTSTogMDAwMDAwMDAwMDAwMDAw
MyBSREk6IGZmZmY4ODgxMjEyOTEwMDANClsgICA2NC43MjcxNTRdIFJCUDogMDAwMDAwMDAw
MDAwMDkwMSBSMDg6IGZmZmZlYTAwMDQ4NGE0NDAgUjA5OiBmZmZmZWEwMDA0ODRhNjAwDQpb
ICAgNjQuNzQxNDkxXSBSMTA6IDAwMDAwMDAwMDAwMDAwMDIgUjExOiAwMDAwMDAwMDAwMDAy
NDFlIFIxMjogZmZmZjg4ODNlN2QyMWQ4MA0KWyAgIDY0Ljc1NTg0M10gUjEzOiAwMDAwMDAw
MDAwMjhkODM0IFIxNDogMDAwMDAwMDAwMDAwMDkwMSBSMTU6IGZmZmZlYTAwMDQ4NGE0MDAN
ClsgICA2NC43NzAyMDddIEZTOiAgMDAwMDdmNGMyYjc5ZDI4MCgwMDAwKSBHUzpmZmZmODg4
NDA5MzgwMDAwKDAwMDApIA0Ka25sR1M6MDAwMDAwMDAwMDAwMDAwMA0KWyAgIDY0Ljc4NjQ4
N10gQ1M6ICBlMDMwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMw0K
WyAgIDY0Ljc5ODAxOV0gQ1IyOiBmZmZmODg4MTIxMjkxMDAwIENSMzogMDAwMDAwMDE0ZmVm
NDAwMCBDUjQ6IDAwMDAwMDAwMDAwNTA2NjANClsgICA2NC44MTI0MTFdIENhbGwgVHJhY2U6
DQpbICAgNjQuODE3MzA4XSAgPFRBU0s+DQpbICAgNjQuODIxNjI1XSAgPyBfX2RpZV9ib2R5
KzB4MWEvMHg2MA0KWyAgIDY0LjgyODc0Nl0gID8gcGFnZV9mYXVsdF9vb3BzKzB4MTUxLzB4
NDcwDQpbICAgNjQuODM3MDY1XSAgPyBzZWFyY2hfYnBmX2V4dGFibGVzKzB4NjUvMHg3MA0K
WyAgIDY0Ljg0NTcxN10gID8gZml4dXBfZXhjZXB0aW9uKzB4MjIvMHgzMjANClsgICA2NC44
NTM4NDRdICA/IGV4Y19wYWdlX2ZhdWx0KzB4YjMvMHgxNTANClsgICA2NC44NjE3OTJdICA/
IGFzbV9leGNfcGFnZV9mYXVsdCsweDIyLzB4MzANClsgICA2NC44NzAyNzVdICA/IGNsZWFy
X3BhZ2VfZXJtcysweDcvMHgxMA0KWyAgIDY0Ljg3ODA1MF0gIHByZXBfbmV3X3BhZ2UrMHg5
Ny8weGIwDQpbICAgNjQuODg1MzA4XSAgZ2V0X3BhZ2VfZnJvbV9mcmVlbGlzdCsweDdhNC8w
eDFmNDANClsgICA2NC44OTQ2NzhdICBfX2FsbG9jX3BhZ2VzKzB4MThiLzB4MzUwDQpbICAg
NjQuOTAyMjcwXSAgPyBrdm1hbGxvY19ub2RlKzB4M2EvMHhkMA0KWyAgIDY0LjkwOTg5Ml0g
IF9fa21hbGxvY19sYXJnZV9ub2RlKzB4N2EvMHgxNDANClsgICA2NC45MTg1NDJdICBfX2tt
YWxsb2Nfbm9kZSsweGMxLzB4MTMwDQpbICAgNjQuOTI2MTQ5XSAga3ZtYWxsb2Nfbm9kZSsw
eDNhLzB4ZDANClsgICA2NC45MzMzOTldICBwcm9jX3N5c19jYWxsX2hhbmRsZXIrMHhmYS8w
eDIzMA0KWyAgIDY0Ljk0MjI1OV0gIHZmc19yZWFkKzB4MjJmLzB4MmUwDQpbICAgNjQuOTQ5
MDA3XSAga3N5c19yZWFkKzB4YTUvMHhlMA0KWyAgIDY0Ljk1NTUyN10gIGRvX3N5c2NhbGxf
NjQrMHg1ZC8weGUwDQpbICAgNjQuOTYyODA2XSAgPyBkb191c2VyX2FkZHJfZmF1bHQrMHg1
YjMvMHg4YTANClsgICA2NC45NzE2NDddICA/IGV4Y19wYWdlX2ZhdWx0KzB4NmYvMHgxNTAN
ClsgICA2NC45Nzk1ODddICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg2Zi8w
eDc3DQpbICAgNjQuOTg5ODIxXSBSSVA6IDAwMzM6MHg3ZjRjMjlmMDZhM2UNClsgICA2NC45
OTcwOThdIENvZGU6IDA4IGU4IGY0IDFlIDAyIDAwIDY2IDBmIDFmIDQ0IDAwIDAwIDkwIDkw
IDkwIDkwIDkwIDkwIDkwIDkwIA0KOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgNjQgOGIgMDQg
MjUgMTggMDAgMDAgMDAgODUgYzAgNzUgMTQgMGYgMDUgPDQ4PiAzZCAwMCBmMCANCmZmIGZm
IDc3IDVhIGYzIGMzIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDQxIDU0IDU1IDQ5DQpbICAg
NjUuMDM0OTYyXSBSU1A6IDAwMmI6MDAwMDdmZmQ1YTg2ZjJiOCBFRkxBR1M6IDAwMDAwMjQ2
IE9SSUdfUkFYOiANCjAwMDAwMDAwMDAwMDAwMDANClsgICA2NS4wNTAwNzFdIFJBWDogZmZm
ZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOiAwMDAwN2Y0YzI5ZjA2
YTNlDQpbICAgNjUuMDY0NDE1XSBSRFg6IDAwMDAwMDAwMDAwMDQwMDAgUlNJOiAwMDAwMDAw
MDAyNTYyYzE4IFJESTogMDAwMDAwMDAwMDAwMDAwNA0KWyAgIDY1LjA3ODc3NV0gUkJQOiAw
MDAwMDAwMDAyNTYxZDYwIFIwODogMDAwMDdmNGMyYWJkMzQxOCBSMDk6IDAwMDAwMDAwMDAw
MDAwMjgNClsgICA2NS4wOTMxNTVdIFIxMDogMDAwMDAwMDAwMjUzYjAxMCBSMTE6IDAwMDAw
MDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwMDA0MDAwDQpbICAgNjUuMTA3NDkyXSBSMTM6
IDAwMDAwMDAwMDAwMDQwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDA0IFIxNTogMDAwMDAwMDAw
MjU2MmMxOA0KWyAgIDY1LjEyMTg1MF0gIDwvVEFTSz4NCg0KPiANCj4+DQo+PiBCVFcsIG1l
YW53aGlsZSBJIGhhdmUgdGVzdGVkIGtlcm5lbCA1LjE5LCB3aGljaCBpcyB3b3JraW5nLiBJ
IHN1c3BlY3RlZCB0aGF0DQo+PiB0aGUgcGF0Y2ggc2VyaWVzIG1lcmdpbmcgc3dpb3RsYiBh
bmQgc3dpb3RsYi14ZW4gY291bGQgYmUgdG8gYmxhbWUsIGJ1dCB0aGF0DQo+PiB3ZW50IGlu
dG8gdjUuMTkuDQo+IA0KPiBDYW4geW91IGJpc2VjdD8NCg0KSSBjYW4gdHJ5IHRvIGZpbmQg
dGhlIG9mZmVuZGluZyBjb21taXQsIHN1cmUuIEkganVzdCB3YW50ZWQgdG8gc2hhcmUgbXkg
Y3VycmVudA0KZmluZGluZ3MgaW4gdGhlIGhvcGUgdGhhdCBzb21lb25lIG1pZ2h0IGhhdmUg
YW4gaWRlYSAuLi4NCg0KDQpKdWVyZ2VuDQo=
--------------uccJtY91T04U06gThWB9tOK0
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-----

--------------uccJtY91T04U06gThWB9tOK0--

--------------PeCYtwQpR9wAnvc09cLSGfT0--

--------------4ZOWJRl0YsisP82RrqFNdYTS
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/Ey8FAmV8f7gFAwAAAAAACgkQsN6d1ii/Ey+A
TAf9GdxH8CHk6EiuOyaumXp0epaxR5XTxuJp1Rb6UwAjibq46iHrSD5prjopAnEFbnohGEz4sEXk
9A/f1Wjip4gjQCJ+wR65hxhpAxDG3TeT/2CbhP6VubA/Av94BwtkA7cYcxlfXfPy9ycY6GhChXrj
PJoj2bqF5N07pZbCQ6oz001C+qvtgRYSkzuzU/N3CrkrDv5gKcH9e1hJ7Sr0ePNqLHhmg1iN7sN/
7MkaMdGybkVHdUHLVDZmz8XFTzLzEvZnUkhbzahYVkyjS6kXwJpjTW8+/+hQ0IkXnZVrxBAtpZQ0
A/s7aDbAR0OIlVCpysT9Dp8MX1gt1wizzDtt1WBBug==
=aREM
-----END PGP SIGNATURE-----

--------------4ZOWJRl0YsisP82RrqFNdYTS--


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 17:10:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 17:10:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655286.1022983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEBi2-0002PW-Un; Fri, 15 Dec 2023 17:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655286.1022983; Fri, 15 Dec 2023 17:10:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEBi2-0002PP-S1; Fri, 15 Dec 2023 17:10:46 +0000
Received: by outflank-mailman (input) for mailman id 655286;
 Fri, 15 Dec 2023 17:10:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KpGJ=H2=linutronix.de=bigeasy@srs-se1.protection.inumbo.net>)
 id 1rEBi1-0002PI-1H
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 17:10:45 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df19536e-9b6c-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 18:10:40 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df19536e-9b6c-11ee-9b0f-b553b5be7939
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1702660239;
	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=+0HJJPub1Rbn3MJWlEsGP0R+kJz2sY8/FL1YHZqJTPQ=;
	b=bu//WPoJj1s+CyuzY9fCzuWUPNElBTG0mDAue5MtksSZ/nlXc3JYfccn6tG0UR7/s9bLcB
	TyHwPF9rL6/pk9aAThq84QZ/O0PPk1BIhRiaV+wWrm874nalOaix3eDsDuVspKXyfMpQsX
	SEP7qczM42BqZeYaUbDx8DFkqux75/XmDcmsMW8XVXUoArSSTH/2/SLlrKU/Y/BeoEFJ1G
	niUm3L0GNIf2r6tGor3HgSQ2mPyJbN54p8y9ylbMz9svBrqSDE0+Rvfj8QwFQ3UWZybFQ3
	9KKmqHpMn8OyR/lDx/Ew+Azv1ohXTln9Yj3vk5ZeyQyuhF5aBTxjwvDJbtZIEw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1702660239;
	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=+0HJJPub1Rbn3MJWlEsGP0R+kJz2sY8/FL1YHZqJTPQ=;
	b=IFHcLtVItNS1jqIMdMN6dYTNqvyEKzMDmeSXBvDnw0eZeuYwuQGT7alkK3RqsOXKSI1Vp9
	o+kMgK4SkJMS6CBw==
To: linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>,
	Boqun Feng <boqun.feng@gmail.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Eric Dumazet <edumazet@google.com>,
	Frederic Weisbecker <frederic@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Waiman Long <longman@redhat.com>,
	Will Deacon <will@kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Hao Luo <haoluo@google.com>,
	Jesper Dangaard Brouer <hawk@kernel.org>,
	Jiri Olsa <jolsa@kernel.org>,
	John Fastabend <john.fastabend@gmail.com>,
	Juergen Gross <jgross@suse.com>,
	KP Singh <kpsingh@kernel.org>,
	Martin KaFai Lau <martin.lau@linux.dev>,
	Nikolay Aleksandrov <razor@blackwall.org>,
	Song Liu <song@kernel.org>,
	Stanislav Fomichev <sdf@google.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wei.liu@kernel.org>,
	Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	Yonghong Song <yonghong.song@linux.dev>,
	bpf@vger.kernel.org,
	virtualization@lists.linux.dev,
	xen-devel@lists.xenproject.org
Subject: [PATCH net-next 16/24] net: netkit, veth, tun, virt*: Use nested-BH locking for XDP redirect.
Date: Fri, 15 Dec 2023 18:07:35 +0100
Message-ID: <20231215171020.687342-17-bigeasy@linutronix.de>
In-Reply-To: <20231215171020.687342-1-bigeasy@linutronix.de>
References: <20231215171020.687342-1-bigeasy@linutronix.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

The per-CPU variables used during bpf_prog_run_xdp() invocation and
later during xdp_do_redirect() rely on disabled BH for their protection.
Without locking in local_bh_disable() on PREEMPT_RT these data structure
require explicit locking.

This is a follow-up on the previous change which introduced
bpf_run_lock.redirect_lock and uses it now within drivers.

The simple way is to acquire the lock before bpf_prog_run_xdp() is
invoked and hold it until the end of function.
This does not always work because some drivers (cpsw, atlantic) invoke
xdp_do_flush() in the same context.
Acquiring the lock in bpf_prog_run_xdp() and dropping in
xdp_do_redirect() (without touching drivers) does not work because not
all driver, which use bpf_prog_run_xdp(), do support XDP_REDIRECT (and
invoke xdp_do_redirect()).

Ideally the minimal locking scope would be bpf_prog_run_xdp() +
xdp_do_redirect() and everything else (error recovery, DMA unmapping,
free/ alloc of memory, =E2=80=A6) would happen outside of the locked sectio=
n.

Cc: "K. Y. Srinivasan" <kys@microsoft.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: Dexuan Cui <decui@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Hao Luo <haoluo@google.com>
Cc: Jesper Dangaard Brouer <hawk@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Fastabend <john.fastabend@gmail.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: KP Singh <kpsingh@kernel.org>
Cc: Martin KaFai Lau <martin.lau@linux.dev>
Cc: Nikolay Aleksandrov <razor@blackwall.org>
Cc: Song Liu <song@kernel.org>
Cc: Stanislav Fomichev <sdf@google.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Wei Liu <wei.liu@kernel.org>
Cc: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Cc: Yonghong Song <yonghong.song@linux.dev>
Cc: bpf@vger.kernel.org
Cc: virtualization@lists.linux.dev
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/net/hyperv/netvsc_bpf.c |  1 +
 drivers/net/netkit.c            | 13 +++++++----
 drivers/net/tun.c               | 28 +++++++++++++----------
 drivers/net/veth.c              | 40 ++++++++++++++++++++-------------
 drivers/net/virtio_net.c        |  1 +
 drivers/net/xen-netfront.c      |  1 +
 6 files changed, 52 insertions(+), 32 deletions(-)

diff --git a/drivers/net/hyperv/netvsc_bpf.c b/drivers/net/hyperv/netvsc_bp=
f.c
index 4a9522689fa4f..55f8ca92ca199 100644
--- a/drivers/net/hyperv/netvsc_bpf.c
+++ b/drivers/net/hyperv/netvsc_bpf.c
@@ -58,6 +58,7 @@ u32 netvsc_run_xdp(struct net_device *ndev, struct netvsc=
_channel *nvchan,
=20
 	memcpy(xdp->data, data, len);
=20
+	guard(local_lock_nested_bh)(&bpf_run_lock.redirect_lock);
 	act =3D bpf_prog_run_xdp(prog, xdp);
=20
 	switch (act) {
diff --git a/drivers/net/netkit.c b/drivers/net/netkit.c
index 39171380ccf29..fbcf78477bda8 100644
--- a/drivers/net/netkit.c
+++ b/drivers/net/netkit.c
@@ -80,8 +80,15 @@ static netdev_tx_t netkit_xmit(struct sk_buff *skb, stru=
ct net_device *dev)
 	netkit_prep_forward(skb, !net_eq(dev_net(dev), dev_net(peer)));
 	skb->dev =3D peer;
 	entry =3D rcu_dereference(nk->active);
-	if (entry)
-		ret =3D netkit_run(entry, skb, ret);
+	if (entry) {
+		scoped_guard(local_lock_nested_bh, &bpf_run_lock.redirect_lock) {
+			ret =3D netkit_run(entry, skb, ret);
+			if (ret =3D=3D NETKIT_REDIRECT) {
+				dev_sw_netstats_tx_add(dev, 1, len);
+				skb_do_redirect(skb);
+			}
+		}
+	}
 	switch (ret) {
 	case NETKIT_NEXT:
 	case NETKIT_PASS:
@@ -95,8 +102,6 @@ static netdev_tx_t netkit_xmit(struct sk_buff *skb, stru=
ct net_device *dev)
 		}
 		break;
 	case NETKIT_REDIRECT:
-		dev_sw_netstats_tx_add(dev, 1, len);
-		skb_do_redirect(skb);
 		break;
 	case NETKIT_DROP:
 	default:
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index afa5497f7c35c..fe0d31f11e4b6 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -1708,16 +1708,18 @@ static struct sk_buff *tun_build_skb(struct tun_str=
uct *tun,
 		xdp_init_buff(&xdp, buflen, &tfile->xdp_rxq);
 		xdp_prepare_buff(&xdp, buf, pad, len, false);
=20
-		act =3D bpf_prog_run_xdp(xdp_prog, &xdp);
-		if (act =3D=3D XDP_REDIRECT || act =3D=3D XDP_TX) {
-			get_page(alloc_frag->page);
-			alloc_frag->offset +=3D buflen;
-		}
-		err =3D tun_xdp_act(tun, xdp_prog, &xdp, act);
-		if (err < 0) {
-			if (act =3D=3D XDP_REDIRECT || act =3D=3D XDP_TX)
-				put_page(alloc_frag->page);
-			goto out;
+		scoped_guard(local_lock_nested_bh, &bpf_run_lock.redirect_lock) {
+			act =3D bpf_prog_run_xdp(xdp_prog, &xdp);
+			if (act =3D=3D XDP_REDIRECT || act =3D=3D XDP_TX) {
+				get_page(alloc_frag->page);
+				alloc_frag->offset +=3D buflen;
+			}
+			err =3D tun_xdp_act(tun, xdp_prog, &xdp, act);
+			if (err < 0) {
+				if (act =3D=3D XDP_REDIRECT || act =3D=3D XDP_TX)
+					put_page(alloc_frag->page);
+				goto out;
+			}
 		}
=20
 		if (err =3D=3D XDP_REDIRECT)
@@ -2460,8 +2462,10 @@ static int tun_xdp_one(struct tun_struct *tun,
 		xdp_init_buff(xdp, buflen, &tfile->xdp_rxq);
 		xdp_set_data_meta_invalid(xdp);
=20
-		act =3D bpf_prog_run_xdp(xdp_prog, xdp);
-		ret =3D tun_xdp_act(tun, xdp_prog, xdp, act);
+		scoped_guard(local_lock_nested_bh, &bpf_run_lock.redirect_lock) {
+			act =3D bpf_prog_run_xdp(xdp_prog, xdp);
+			ret =3D tun_xdp_act(tun, xdp_prog, xdp, act);
+		}
 		if (ret < 0) {
 			put_page(virt_to_head_page(xdp->data));
 			return ret;
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 977861c46b1fe..c69e5ff9f8795 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -624,7 +624,18 @@ static struct xdp_frame *veth_xdp_rcv_one(struct veth_=
rq *rq,
 		xdp->rxq =3D &rq->xdp_rxq;
 		vxbuf.skb =3D NULL;
=20
-		act =3D bpf_prog_run_xdp(xdp_prog, xdp);
+		scoped_guard(local_lock_nested_bh, &bpf_run_lock.redirect_lock) {
+			act =3D bpf_prog_run_xdp(xdp_prog, xdp);
+			if (act =3D=3D XDP_REDIRECT) {
+				orig_frame =3D *frame;
+				xdp->rxq->mem =3D frame->mem;
+				if (xdp_do_redirect(rq->dev, xdp, xdp_prog)) {
+					frame =3D &orig_frame;
+					stats->xdp_drops++;
+					goto err_xdp;
+				}
+			}
+		}
=20
 		switch (act) {
 		case XDP_PASS:
@@ -644,13 +655,6 @@ static struct xdp_frame *veth_xdp_rcv_one(struct veth_=
rq *rq,
 			rcu_read_unlock();
 			goto xdp_xmit;
 		case XDP_REDIRECT:
-			orig_frame =3D *frame;
-			xdp->rxq->mem =3D frame->mem;
-			if (xdp_do_redirect(rq->dev, xdp, xdp_prog)) {
-				frame =3D &orig_frame;
-				stats->rx_drops++;
-				goto err_xdp;
-			}
 			stats->xdp_redirect++;
 			rcu_read_unlock();
 			goto xdp_xmit;
@@ -857,7 +861,18 @@ static struct sk_buff *veth_xdp_rcv_skb(struct veth_rq=
 *rq,
 	orig_data =3D xdp->data;
 	orig_data_end =3D xdp->data_end;
=20
-	act =3D bpf_prog_run_xdp(xdp_prog, xdp);
+	scoped_guard(local_lock_nested_bh, &bpf_run_lock.redirect_lock) {
+		act =3D bpf_prog_run_xdp(xdp_prog, xdp);
+		if (act =3D=3D XDP_REDIRECT) {
+			veth_xdp_get(xdp);
+			consume_skb(skb);
+			xdp->rxq->mem =3D rq->xdp_mem;
+			if (xdp_do_redirect(rq->dev, xdp, xdp_prog)) {
+				stats->rx_drops++;
+				goto err_xdp;
+			}
+		}
+	}
=20
 	switch (act) {
 	case XDP_PASS:
@@ -875,13 +890,6 @@ static struct sk_buff *veth_xdp_rcv_skb(struct veth_rq=
 *rq,
 		rcu_read_unlock();
 		goto xdp_xmit;
 	case XDP_REDIRECT:
-		veth_xdp_get(xdp);
-		consume_skb(skb);
-		xdp->rxq->mem =3D rq->xdp_mem;
-		if (xdp_do_redirect(rq->dev, xdp, xdp_prog)) {
-			stats->rx_drops++;
-			goto err_xdp;
-		}
 		stats->xdp_redirect++;
 		rcu_read_unlock();
 		goto xdp_xmit;
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index d16f592c2061f..5e362c4604239 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -1010,6 +1010,7 @@ static int virtnet_xdp_handler(struct bpf_prog *xdp_p=
rog, struct xdp_buff *xdp,
 	int err;
 	u32 act;
=20
+	guard(local_lock_nested_bh)(&bpf_run_lock.redirect_lock);
 	act =3D bpf_prog_run_xdp(xdp_prog, xdp);
 	u64_stats_inc(&stats->xdp_packets);
=20
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index ad29f370034e4..e3daa8cdeb84e 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -978,6 +978,7 @@ static u32 xennet_run_xdp(struct netfront_queue *queue,=
 struct page *pdata,
 	xdp_prepare_buff(xdp, page_address(pdata), XDP_PACKET_HEADROOM,
 			 len, false);
=20
+	guard(local_lock_nested_bh)(&bpf_run_lock.redirect_lock);
 	act =3D bpf_prog_run_xdp(prog, xdp);
 	switch (act) {
 	case XDP_TX:
--=20
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 18:14:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 18:14:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655294.1023010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rECi7-000437-Ab; Fri, 15 Dec 2023 18:14:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655294.1023010; Fri, 15 Dec 2023 18:14:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rECi7-00042g-3j; Fri, 15 Dec 2023 18:14:55 +0000
Received: by outflank-mailman (input) for mailman id 655294;
 Fri, 15 Dec 2023 18:14: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=Xt8Y=H2=citrix.com=prvs=706e6129d=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1rECi5-0003yp-Mf
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 18:14:53 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6c21cca-9b75-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 19:14:51 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6c21cca-9b75-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1702664091;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=OnqPq6Hc/S5oBn22Ow8iaK4FcBK3XvOA2+OarJseW4c=;
  b=Q2+AZNxwViMxBsHM1rw5PxGnafEyCjndkQnigrCykWF8fTrX3Fsr7M+G
   jPSRXEy6JIcrnmE7tBkM3oRhonYJset4S2yqXylZcXu6gNjcr7zrr7aGh
   X7PWmhXPlKINsFdzE+vXPzPv4K0ZphQukre9Or2cakm7h0qig48BV/MMt
   Q=;
X-CSE-ConnectionGUID: 7ftEl9BGRgycC6H1/bDEmw==
X-CSE-MsgGUID: A2VzZa1FSpGJWEghRx/ITw==
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 4.0
X-MesageID: 131604187
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.159.70
X-Policy: $RELAYED
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:NMkela+MS5SbEYxSjbWlDrUDiH6TJUtcMsCJ2f8bNWPcYEJGY0x3z
 mAcCzqPMqqMZDP1LdgibYqy/R8E68DQnIdqSwJsrSo8E34SpcT7XtnIdU2Y0wF+jCHgZBk+s
 5hBMImowOQcFCK0SsKFa+C5xZVE/fjVAOK6UKidYnwZqTZMEE8JkQhkl/MynrlmiN24BxLlk
 d7pqojUNUTNNwRcawr40Ird7ksz1BjOkGlA5AdnP6kW5AW2e0Q9V/rzG4ngdxMUfaEMdgKKb
 76r5K20+Grf4yAsBruN+losWhRXKlJ6FVHmZkt+A8BOsDAbzsAB+v9T2M4nQVVWk120c+VZk
 72hg3ASpTABZcUgkMxFO/VR/roX0aduoNcrKlDn2SCfItGvn9IBDJyCAWlvVbD09NqbDkkR+
 +A1LGEnQSqMlumdnpLiDeNAq8E8eZyD0IM34hmMzBncBPciB5vCX7/L9ZlT2zJYasJmRKiEI
 ZBDMHw2MUWGPEUn1lQ/UfrSmM+BgHXlfiIeg1WSvactuEDYzRBr0airO93QEjCPbZwOxxjA+
 juWoAwVBDkzbuKN+zPc3Em0qc3wsCz7YpJVNYGno6sCbFq7mTVIVUx+uUGAiem0jAuyVsxSL
 2QQ+zEytu4i+UqzVN7/Uhak5nmesXY0efBdDuk74wGl0bfP7kCSAW1sZiVadNUsucsyRDor/
 lyEhdXkAXpoqrL9YW2Z3qeZq3W1Iyd9BW0fYS4JSyMV7t+lp5s85jrBQ9puCq++iZvuFCv5z
 TGMrQA0mroIgMgEka68+Dj6bymE/8aTCFRvv0OOAzPjsVsRiJOZi5KAtlbHwPIRBqmjQUiKl
 yYkwo+UwM0LEsTY/MCSe9nhDI1F9t7cb2WG3A81RMVxnwlB7UJPamy53d2fGKuKGpxdEdMRS
 BWP0T69HbcKVJdQUYd5YpiqF+MhxrX6GNLuW5j8N4UWOMUuJVfZrXw+OiZ8OlwBd2B1wMkC1
 WqzK57wXR7294w+lFJauNvxIZd0n3tjlAs/tLjwzgi90Kr2WZJmYe5tDbd6VchgtPnsiFyMo
 75i2z6il003vBvWPnOGrub+7DkicRAGOHwBg5EHL7XbfFU5SAnMyZb5mNscRmCspIwN/s+gw
 513chYwJIbX7ZEfFTi3Vw==
IronPort-HdrOrdr: A9a23:Tmwu5anYTvBWccrEp7h0eBuzTY7pDfIU3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE7gr5OUtQ4exoV5PhfZqxz/JICMwqTNKftWrdyQyVxeNZnOjfKlTbckWUnINgPO
 VbAsxD4bXLfCFHZK3BgTVQfexO/DD+ytHLudvj
X-Talos-CUID: 9a23:XOOLkW/ItOZYOLgbS1CVvxEaBu0hI1fy9njBKGTmKT8uQpG4TEDFrQ==
X-Talos-MUID: 9a23:WWVmUAr9paSOsPad3ysezxg4CtVa6v2AM1gis6ortMm+JWtRByjI2Q==
X-IronPort-AV: E=Sophos;i="6.04,279,1695700800"; 
   d="scan'208";a="131604187"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<George.Dunlap@citrix.com>, Jan Beulich <JBeulich@suse.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Julien Grall
	<julien@xen.org>, Federico Serafini <federico.serafini@bugseng.com>
Subject: [PATCH 1/2] driver/char: Drop run_in_exception_handler() ifdefary
Date: Fri, 15 Dec 2023 18:14:32 +0000
Message-ID: <20231215181433.1588532-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20231215181433.1588532-1-andrew.cooper3@citrix.com>
References: <20231215181433.1588532-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Since commit 60a9b0715055 ("xen: introduce CONFIG_GENERIC_BUG_FRAME"), the new
common bug.h provides an implementation of run_in_exception_handler() in all
cases, making the #else here dead.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: George Dunlap <George.Dunlap@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/drivers/char/ehci-dbgp.c | 4 ----
 xen/drivers/char/ns16550.c   | 4 ----
 2 files changed, 8 deletions(-)

diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c
index 0f5b41899ef5..bbf4e51c0263 100644
--- a/xen/drivers/char/ehci-dbgp.c
+++ b/xen/drivers/char/ehci-dbgp.c
@@ -1293,11 +1293,7 @@ static void cf_check _ehci_dbgp_poll(struct cpu_user_regs *regs)
 static void cf_check ehci_dbgp_poll(void *data)
 {
     poll_port = data;
-#ifdef run_in_exception_handler
     run_in_exception_handler(_ehci_dbgp_poll);
-#else
-    _ehci_dbgp_poll(guest_cpu_user_regs());
-#endif
 }
 
 static bool ehci_dbgp_setup_preirq(struct ehci_dbgp *dbgp)
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index c8a51ed66008..29691e8d3ae6 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -233,11 +233,7 @@ static void cf_check __ns16550_poll(struct cpu_user_regs *regs)
 static void cf_check ns16550_poll(void *data)
 {
     this_cpu(poll_port) = data;
-#ifdef run_in_exception_handler
     run_in_exception_handler(__ns16550_poll);
-#else
-    __ns16550_poll(guest_cpu_user_regs());
-#endif
 }
 
 static int cf_check ns16550_tx_ready(struct serial_port *port)
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 18:14:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 18:14:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655292.1022994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEChx-0003jn-OL; Fri, 15 Dec 2023 18:14:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655292.1022994; Fri, 15 Dec 2023 18: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 1rEChx-0003jg-KP; Fri, 15 Dec 2023 18:14:45 +0000
Received: by outflank-mailman (input) for mailman id 655292;
 Fri, 15 Dec 2023 18:14:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xt8Y=H2=citrix.com=prvs=706e6129d=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1rEChw-0003jY-0h
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 18:14:44 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf0bbfb2-9b75-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 19:14:40 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf0bbfb2-9b75-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1702664080;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=yXDBjaPcuOw/xCtDwRwQPhmDviMcMBFl67n9XyYACmQ=;
  b=KsA6OMHJwSm17WxBIqgXWA54059QBIR3WLYl670qS+0Y4COLkWiJKNCW
   sdvpV3mqIrdtVCqNQuFxyy/ICxbRCJPNrz6Ps8Lzb+hjd4cLwrFqa45yE
   pCvQg1XGrmkwrO8cikrzGmmeSyKnQA7YLkg6qTER/yoN+s5rQSZjVsVHg
   s=;
X-CSE-ConnectionGUID: EbfGol2xRT6TFvuMP1WoPw==
X-CSE-MsgGUID: 59wrAI4lSFaR4S7u+PqXbg==
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 4.0
X-MesageID: 128813335
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.159.70
X-Policy: $RELAYED
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:XGSj6a6fi73/StDlUAnVvwxRtDDHchMFZxGqfqrLsTDasY5as4F+v
 jEZWjzSPv2INGLweIwkYYS39E1U757WxoJjTwE5qis8Hi5G8cbLO4+Ufxz6V8+wwm8vb2o8t
 plDNYOQRCwQZiWBzvt4GuG59RGQ7YnRG/ykTraCY3gtLeNdYH9JoQp5nOIkiZJfj9G8Agec0
 fv/uMSaM1K+s9JOGjt8B5mr9lU34JwehBtC5gZlPKoS4QeE/5UoJMl3yZ+ZfiOQrrZ8RoZWd
 86bpJml82XQ+QsaC9/Nut4XpWVTH9Y+lSDX4pZnc/DKbipq/0Te4Y5iXBYoUm9Fii3hojxE4
 I4lWapc6+seFvakdOw1C3G0GszlVEFM0OevzXOX6aR/w6BaGpdFLjoH4EweZOUlFuhL7W5m2
 PYWBzcJNAC5u7yK7qymb9E1ucMbM5y+VG8fkikIITDxCP8nRdbIQrnQ5M8e1zA17ixMNa+AP
 YxDM2MpNUmRJUIXUrsUIMtWcOOAr3/zaTBH7nmSorI6+TP7xw1tyrn9dtHSf7RmQO0MxBbI/
 zmdpDmR7hcyaY2A0xOkrnaXqOb1wRikRcEqDY2y+as/6LGU7jNKU0BHPbehmtGph0j7V99BJ
 kg8/is1sbN05EGtVsP6XRCzvDiDpBF0c/h6HvA+6QqN4rHJ+AvfDW8BJhZac8AvvsIyQT0s1
 3eKksnvCDgpt6eaIVqC8p+EoDX0PjIaRUcAeCsFQA0t89Tl5oYpgXrnQNtvHbS0hdqzAjzqy
 j6LqikWjagclsMN2OOw+lWvvt63jsGXFEhvvFyRBz/0qFwhDGK4W2C2wXXR49lHKNyJdGXfg
 FYahu2mtd8JNY7YwURhX94x8KGVC+etaWKE2wM+RcJ9p1yQF2ifkZe8CQySxXuF0e5eIFcFm
 GeJ5WtsCGZ7ZRNGl5NfbYOrENgNxqP9D9njXf28RoMROsIsK17fonAzNRH4M4XRfK8EyPBXB
 HtmWZz0USZy5VpPlWLeqxghPU8DmXllmDK7qWHTxBW7y7uODEN5up9cWGZimtsRtfveyC2Mq
 oY3Cid/40kHOAEISnWNoNF7wJFjBSRTOK0aXOQKJrfYelQ5RzFJ5j246epJRrGJVp99zo/gl
 kxRkGcBoLYjrRUr8Tm3V00=
IronPort-HdrOrdr: A9a23:3x4eZq8tOSPbjELZWvluk+DgI+orL9Y04lQ7vn2YSXRuHPBw8P
 re+sjztCWE8Ar5N0tBpTntAsW9qDbnhPtICOoqTNCftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM
 9bAtFD4bbLbGSS4/yU3ODBKadD/OW6
X-Talos-CUID: 9a23:EowecWExNFxvwbXAqmJK/kA7HcR/Ykfhkkv+PVKdMT9WT4WKHAo=
X-Talos-MUID: =?us-ascii?q?9a23=3AqUtyyA/eGEIwUGKhtPfzKk6Qf5o5/L6HKRwJqrs?=
 =?us-ascii?q?PgZW/ajEzAy6thjviFw=3D=3D?=
X-IronPort-AV: E=Sophos;i="6.04,279,1695700800"; 
   d="scan'208";a="128813335"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<George.Dunlap@citrix.com>, Jan Beulich <JBeulich@suse.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Julien Grall
	<julien@xen.org>, Federico Serafini <federico.serafini@bugseng.com>
Subject: [PATCH 2/2] xen/bug: Complete outstanding TODO
Date: Fri, 15 Dec 2023 18:14:33 +0000
Message-ID: <20231215181433.1588532-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20231215181433.1588532-1-andrew.cooper3@citrix.com>
References: <20231215181433.1588532-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Since this TODO was written, BUILD_BUG_ON() has been moved out of xen/lib.h
into xen/macros.h, which has done all the hard work.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: George Dunlap <George.Dunlap@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/include/xen/bug.h | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h
index cb5138410ea7..8cca4486a477 100644
--- a/xen/include/xen/bug.h
+++ b/xen/include/xen/bug.h
@@ -20,7 +20,8 @@
 #define BUG_DEBUGGER_TRAP_FATAL(regs) 0
 #endif
 
-#include <xen/lib.h>
+#include <xen/macros.h>
+#include <xen/types.h>
 
 #ifndef BUG_FRAME_STRUCT
 
@@ -104,14 +105,11 @@ typedef void bug_fn_t(const struct cpu_user_regs *regs);
 
 #ifndef run_in_exception_handler
 
-/*
- * TODO: untangle header dependences, break BUILD_BUG_ON() out of xen/lib.h,
- * and use a real static inline here to get proper type checking of fn().
- */
-#define run_in_exception_handler(fn) do {                   \
-    (void)((fn) == (void (*)(struct cpu_user_regs *))NULL); \
-    BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL);             \
-} while ( false )
+static void always_inline run_in_exception_handler(
+    void (*fn)(struct cpu_user_regs *regs))
+{
+    BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL);
+}
 
 #endif /* run_in_exception_handler */
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 18:14:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 18:14:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655293.1023004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rECi6-00040C-Vl; Fri, 15 Dec 2023 18:14:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655293.1023004; Fri, 15 Dec 2023 18:14: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 1rECi6-000405-SN; Fri, 15 Dec 2023 18:14:54 +0000
Received: by outflank-mailman (input) for mailman id 655293;
 Fri, 15 Dec 2023 18:14: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=Xt8Y=H2=citrix.com=prvs=706e6129d=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1rECi5-0003yp-Fg
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 18:14:53 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3f73a49-9b75-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 19:14:48 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3f73a49-9b75-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1702664088;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=yYLE3EW3IzlmeMXoR9i6wCusETN7guTz9g5beECTFME=;
  b=gexQ9JkAnBh345LFIekjHLjOnfpqo/pM1oRNrlTxCSRkcgKeYiLMTyKQ
   sqJlqVO7MAkvkqt9eQ6AIUTLvqRoHDvYDCSvhJbS1ZMef7fNbgNodcSMa
   hdMgLTYcpXPfPF1ySg7PVBnykDqQP8GBQslHxUSlUNqfdtPD5s1BYu6vg
   Q=;
X-CSE-ConnectionGUID: 7ftEl9BGRgycC6H1/bDEmw==
X-CSE-MsgGUID: vpzgdHhQRHCjbkiwCy9h9A==
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 4.0
X-MesageID: 131604185
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.159.70
X-Policy: $RELAYED
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:izRIpKBTVvP9IxVW/4viw5YqxClBgxIJ4kV8jS/XYbTApG8rgWQGx
 2sfXW/XaKncZGKjLtpxb9nio0hT7ZDcz9RiQQY4rX1jcSlH+JHPbTi7wuUcHAvJd5GeExg3h
 yk6QoOdRCzhZiaE/n9BCpC48D8kk/nOH+KgYAL9EngZbRd+Tys8gg5Ulec8g4p56fC0GArIs
 t7pyyHlEAbNNwVcbCRMt8pvlDs15K6p4WlB4wRkDRx2lAS2e0c9Xcp3yZ6ZdxMUcqEMdsamS
 uDKyq2O/2+x13/B3fv8z94X2mVTKlLjFVDmZkh+AsBOsTAbzsAG6Y4pNeJ0VKtio27hc+ada
 jl6ncfYpQ8BZsUgkQmGOvVSO3kW0aZuoNcrLZUj2CA6IoKvn3bEmp1T4E8K0YIwpehrLGUf3
 9MiJyEGRU6j3qW87J++Vbw57igjBJGD0II3v3hhyXfSDOo8QICFSKLPjTNa9G5u3IYUR6+YP
 pdIL2U3BPjDS0Qn1lM/IZQyhuq3wFL4dCVVsgm9rqsr+WnDigd21dABNfKMIYXUHZkMzhvwS
 mTu4XzrDR06NOWl6RGH+HGtmcTezCOqcddHfFG/3qEz2wDCroAJMzUGWF3+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQnZKflkdCAZwKSbR8sVzcjPWMi+qEOoQaZmFPdPEi5eUZfzM73
 XTXv4quDxBCtaLAHBpx6YyoQSOO1Tk9dDBaP3JVF1BZs7HeTJcPYgUjp+uP8ZJZbfWvQFkcO
 xjQ8EADa0w71KbnLZmT81HdmC6LrZPUVAMz7Qi/djv6tlkkO9/9Od31uQezARN8wGGxFwjpg
 ZT5s5LGsLBm4W+lzXTlrBox8EGBuK/ebWy0ba9HFJg97TW9k0NPjqgJiAyS0HxBa55eERewO
 R+7hO+kzMMLVJdcRfMtMt3Z5gVD5fSIKOkJodiJPoMVOsYuK1/vEeMHTRf44l0BWXMEyckXU
 ap3u+71ZZrGIcyLFAaLeto=
IronPort-HdrOrdr: A9a23:HRAy8aCYY+lvRHXlHemg55DYdb4zR+YMi2TC1yhKJyC9Ffbo8/
 xG/c5rsyMc5wxwZJhNo7y90cq7MBbhHPxOkOos1N6ZNWGM0gaVxelZnOzfKlbbehEWmNQz6U
 4ZSdkdNOHN
X-Talos-CUID: =?us-ascii?q?9a23=3A/zbQImmo1crkb1sXcaj4e9cvVGjXOSLT0FrUcmW?=
 =?us-ascii?q?XM2l4Q5bLaQbX8o9JltU7zg=3D=3D?=
X-Talos-MUID: 9a23:pkKozgVP4JBWjFDq/CH0lj5uFMdR2YSFCkoOkIotqpiEZAUlbg==
X-IronPort-AV: E=Sophos;i="6.04,279,1695700800"; 
   d="scan'208";a="131604185"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 0/2] xen: run_in_exception_handler() cleanup
Date: Fri, 15 Dec 2023 18:14:31 +0000
Message-ID: <20231215181433.1588532-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Cleanup from looking at "[XEN RFC] xen/bug: introduce bug_fn_nonconst_t to
validate run_in_exception_handle()".  Not really relevant to the MISRA side of
things.

Gitlab run:
  https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1108032069

Andrew Cooper (2):
  driver/char: Drop run_in_exception_handler() ifdefary
  xen/bug: Complete outstanding TODO

 xen/drivers/char/ehci-dbgp.c |  4 ----
 xen/drivers/char/ns16550.c   |  4 ----
 xen/include/xen/bug.h        | 16 +++++++---------
 3 files changed, 7 insertions(+), 17 deletions(-)


base-commit: cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 18:18:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 18:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655312.1023023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEClX-0005QH-M9; Fri, 15 Dec 2023 18:18:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655312.1023023; Fri, 15 Dec 2023 18:18: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 1rEClX-0005QA-Jb; Fri, 15 Dec 2023 18:18:27 +0000
Received: by outflank-mailman (input) for mailman id 655312;
 Fri, 15 Dec 2023 18:18:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rEClW-0005Q4-Nu
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 18:18:26 +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 1rEClV-00042p-K1; Fri, 15 Dec 2023 18:18:25 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.3.206]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rEClV-0000yV-Dq; Fri, 15 Dec 2023 18:18:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=26x2uNLuz37IfKdR7s5+/RWOsOtwTlwVQz6SGBOEY5U=; b=5XOJe7aSlpeNika1Szi6zXvc8f
	gZQrmGmMslxwDLSRj/ZsiECM8rqXAB75kvnvJHYKzY6gJu7DWpfvJa1GqqeBWILUmWjFTU9e0tD4l
	8BAf3oCn3FbwYQc5Qv63LDOESh34/MIMFT+t3BihMcVBcev9aFEJxphwn0clskZaMyIM=;
Message-ID: <724bf769-709b-4489-aab3-85d5abe2abbf@xen.org>
Date: Fri, 15 Dec 2023 18:18:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com>
 <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com>
 <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org>
 <240c97ed-ce27-406d-84ad-68b72e999294@xen.org>
 <5ad1c008182bc9f23e1b37b0d6e35e4c@bugseng.com>
 <2b4eec7c-3657-4542-96b9-56b272e8723b@xen.org>
 <alpine.DEB.2.22.394.2312141418160.3175268@ubuntu-linux-20-04-desktop>
 <add58ef45d9cb970c2447f22443f50c8@bugseng.com>
 <c70f5399c36e364f06c525eed3058789@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c70f5399c36e364f06c525eed3058789@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 15/12/2023 14:08, Nicola Vetrini wrote:
>>> Yes, I would go with 3., replace advance_pc with domain_crash. Assuming
>>> that it would also solve the violation in ECLAIR.
>>
>> It needs to be prefixed with an ASSERT_UNREACHABLE(), though, because 
>> it's still a violation if there is no execution path leading to 
>> domain_crash(), but other than that it seems the safest choice.
> 
> Assuming there are no objections to going forward with this proposal, 
> would you mind telling me how can I do the proper domain_crash call. 
> Most of the examples get a "struct domain *" from a parameter or from 
> the macro "current", so I was thinking of
> 
> domain_crash(current->domain);
> 
> but I'm not so sure about this, as there are no other uses in vcpreg.c. 

That would be correct. All the helpers in vcpreg.c are meant to work on 
the current vCPU.

> You can also submit the patch yourself, if you prefer.

I am not entirely sure about which justification you want to use for 
MISRA. So here the diff:

diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
index 39aeda9dab62..485b3cb63c86 100644
--- a/xen/arch/arm/vcpreg.c
+++ b/xen/arch/arm/vcpreg.c
@@ -708,7 +708,13 @@ void do_cp10(struct cpu_user_regs *regs, const 
union hsr hsr)
          return;
      }

-    advance_pc(regs, hsr);
+    /*
+     * All the cases in the switch should return. If this is not the
+     * case, then something went wrong and it is best to crash the
+     * domain.
+     */
+    ASSERT_UNREACHABLE();
+    domain_crash(current->domain);
  }

  void do_cp(struct cpu_user_regs *regs, const union hsr hsr)

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 18:20:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 18:20:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655317.1023038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rECnI-0007b8-3H; Fri, 15 Dec 2023 18:20:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655317.1023038; Fri, 15 Dec 2023 18:20:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rECnI-0007b1-0Z; Fri, 15 Dec 2023 18:20:16 +0000
Received: by outflank-mailman (input) for mailman id 655317;
 Fri, 15 Dec 2023 18:20: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 1rECnG-0007ar-Gh
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 18:20: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 1rECnG-00045Q-2k; Fri, 15 Dec 2023 18:20:14 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.3.206]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rECnF-00016B-TA; Fri, 15 Dec 2023 18:20:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=g+wjXQEd6Llwerpzoi1f9KCEQ/bU6rfkvhU1YbLhOio=; b=cPvYJFyWciooHVzfdFBCP06XGy
	DdrMNIJf7Psjj6j9r0HUj+WEFM6FkOf/w0DG2V25N37Ke3s5+kjnZZDf9Y514+unVKi0CebjHTG58
	q7u5gxVA6ZzNoGWqy4qymP+ZWMD3vPlId0knLt5cCaN7EyZnweSqXyEMrS0aQEOpXs6w=;
Message-ID: <6e9db22f-2974-48a8-a659-a2424c60c797@xen.org>
Date: Fri, 15 Dec 2023 18:20:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] driver/char: Drop run_in_exception_handler() ifdefary
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: George Dunlap <George.Dunlap@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, Federico Serafini <federico.serafini@bugseng.com>
References: <20231215181433.1588532-1-andrew.cooper3@citrix.com>
 <20231215181433.1588532-2-andrew.cooper3@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231215181433.1588532-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 15/12/2023 18:14, Andrew Cooper wrote:
> Since commit 60a9b0715055 ("xen: introduce CONFIG_GENERIC_BUG_FRAME"), the new
> common bug.h provides an implementation of run_in_exception_handler() in all
> cases, making the #else here dead.

This reminds me, I need to look at using CONFIG_GENERIC_BUG_FRAME for 
Arm. In the past, we had some issues compiling it.

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

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 18:35:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 18:35:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655330.1023049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rED1i-0001ls-C1; Fri, 15 Dec 2023 18:35:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655330.1023049; Fri, 15 Dec 2023 18:35:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rED1i-0001ll-8o; Fri, 15 Dec 2023 18:35:10 +0000
Received: by outflank-mailman (input) for mailman id 655330;
 Fri, 15 Dec 2023 18:35:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rED1g-0001lc-PN
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 18:35:08 +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 1rED1g-0004WZ-5V; Fri, 15 Dec 2023 18:35:08 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.3.206]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rED1f-0001ps-V8; Fri, 15 Dec 2023 18: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=c5HlktnpL28JFXepwvAtDM/QnqahJzHO48lN0KMg7vY=; b=PJtNUw6zPFWZmYp+ubkbs6UA24
	Eax+TdTGQZ4s4gcOUszB6Asrr8Gf5vlQxmK39IgMKRHfEg52qjTgD+fAP+Nz04hk5KmxZqBRUfHTK
	aDU/6aBZ9ZtmQdt9AkNJlzGAuKZhl9mbyBKUEbc3HGg9N6AnRY0ZO/hDUEyuysbCrRa4=;
Message-ID: <139031ab-522c-41d7-b9d7-e9b7d3656555@xen.org>
Date: Fri, 15 Dec 2023 18:35:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/bug: Complete outstanding TODO
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: George Dunlap <George.Dunlap@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, Federico Serafini <federico.serafini@bugseng.com>
References: <20231215181433.1588532-1-andrew.cooper3@citrix.com>
 <20231215181433.1588532-3-andrew.cooper3@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231215181433.1588532-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 15/12/2023 18:14, Andrew Cooper wrote:
> Since this TODO was written, BUILD_BUG_ON() has been moved out of xen/lib.h
> into xen/macros.h, which has done all the hard work.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: George Dunlap <George.Dunlap@citrix.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Wei Liu <wl@xen.org>
> CC: Julien Grall <julien@xen.org>
> CC: Federico Serafini <federico.serafini@bugseng.com>
> ---
>   xen/include/xen/bug.h | 16 +++++++---------
>   1 file changed, 7 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h
> index cb5138410ea7..8cca4486a477 100644
> --- a/xen/include/xen/bug.h
> +++ b/xen/include/xen/bug.h
> @@ -20,7 +20,8 @@
>   #define BUG_DEBUGGER_TRAP_FATAL(regs) 0
>   #endif
>   
> -#include <xen/lib.h>
> +#include <xen/macros.h>
> +#include <xen/types.h>
>   
>   #ifndef BUG_FRAME_STRUCT
>   
> @@ -104,14 +105,11 @@ typedef void bug_fn_t(const struct cpu_user_regs *regs);
>   
>   #ifndef run_in_exception_handler
>   
> -/*
> - * TODO: untangle header dependences, break BUILD_BUG_ON() out of xen/lib.h,
> - * and use a real static inline here to get proper type checking of fn().
> - */
> -#define run_in_exception_handler(fn) do {                   \
> -    (void)((fn) == (void (*)(struct cpu_user_regs *))NULL); \
> -    BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL);             \
> -} while ( false )
> +static void always_inline run_in_exception_handler(
> +    void (*fn)(struct cpu_user_regs *regs))

Based on the other threads, shouldn't this be using bug_fn_t?

Also coding style NIT: I was under the impression we would format 
prototype like that:

static void always_inline
run_in_exception_handler(void (*fn)(struct cpu_user_regs *regs))

Anyway, that comment would be moot if we were using bug_fn_t.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 18:37:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 18:37:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655332.1023059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rED4D-0002M7-RF; Fri, 15 Dec 2023 18:37:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655332.1023059; Fri, 15 Dec 2023 18: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 1rED4D-0002M0-Mu; Fri, 15 Dec 2023 18:37:45 +0000
Received: by outflank-mailman (input) for mailman id 655332;
 Fri, 15 Dec 2023 18:37:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=DQrm=H2=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rED4C-0002Lu-EF
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 18:37:44 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06f3c4ee-9b79-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 19:37:42 +0100 (CET)
Received: from orsmga006.jf.intel.com ([10.7.209.51])
 by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 15 Dec 2023 10:37:39 -0800
Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81])
 by orsmga006.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 15 Dec 2023 10:37:38 -0800
Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by
 fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35; Fri, 15 Dec 2023 10:37:38 -0800
Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by
 fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35; Fri, 15 Dec 2023 10:37:38 -0800
Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by
 fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35 via Frontend Transport; Fri, 15 Dec 2023 10:37:38 -0800
Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.101)
 by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.35; Fri, 15 Dec 2023 10:37:37 -0800
Received: from SA1PR11MB6734.namprd11.prod.outlook.com (2603:10b6:806:25d::22)
 by SA1PR11MB7062.namprd11.prod.outlook.com (2603:10b6:806:2b3::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Fri, 15 Dec
 2023 18:37:27 +0000
Received: from SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3]) by SA1PR11MB6734.namprd11.prod.outlook.com
 ([fe80::3d98:6afd:a4b2:49e3%7]) with mapi id 15.20.7091.030; Fri, 15 Dec 2023
 18: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: 06f3c4ee-9b79-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1702665462; x=1734201462;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=57mVtHS5ImLBrxXuVvgmhfYm11vBOdhv05t5OuHc7xk=;
  b=WZ8jgSuoUjph6EVrGCbNc4QKJiSFgVnb+EWMw41Jkf7YRKGVfo4IAxdi
   xxkCp+jUpgF1UneLBTV8Kpqnv37Hkt8Dn6OHAyTW2NFNREYb8QhVRujAc
   wE9vGBbBK+dkEeqEdvuYge9C/bfYipoBfy5mIGrg7UtMZ7/l25cNYUDNC
   ICAM36LHeR8C2v1JdbrdtAp3HOVNW8pbciqZDRB7uMLmH33rrxl7gTX/V
   3ahRJAXMiIuq+p/5z6oODFDs0W6EAr+zmCWNvEVzpn9FM5fr013ydwXTZ
   odQZZKivCa02XWKI8DMPs6I+IdMDOqlyiv7qkjofXlMCd1AG4DfpBwZKb
   g==;
X-IronPort-AV: E=McAfee;i="6600,9927,10925"; a="374814893"
X-IronPort-AV: E=Sophos;i="6.04,279,1695711600"; 
   d="scan'208";a="374814893"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10925"; a="751024617"
X-IronPort-AV: E=Sophos;i="6.04,279,1695711600"; 
   d="scan'208";a="751024617"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Okneq/NGkR5c6tC+dLAZpOle37kELLiXj5W7rocoaj7El6zsbwCnZuQwADyigFoWJs5T+W9ezjxSGOhgcjb3xebodoAUtybQ4hrN2C1D3hJzqmN+rScuI1UcaznmN20XPx1DvKZFjVFL76cWCPdPqydxl6C1KDBeIP7BQJAkDzeTU+zK4Khr/LkO5D+LYq7xa0Iq8D2IEc+J0fZhCEZF71yahX32HUGGzzxvrWrusgF4qT24RYuK72owxt7KsKAAMX1JZuaimZybo4WjR4G/zNazrpj8xEjch9h5SqHE6Vm16Fp6LcyxuJVJ33d89oza1/LdhhgXDe0BDvYMj1Vo6Q==
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=57mVtHS5ImLBrxXuVvgmhfYm11vBOdhv05t5OuHc7xk=;
 b=T2EEcwutH2gvbJDCwfbX2hXRA3920YMaREhEIzG6LW6voeb+/3iJrZdff4tkp1ZBfQEywkvzRAHWf8T16q+u9yp+Q9xMrMfmvoGjD1dY1BUNoxneyWtXy9JWa805xAcHouhILrjXwgFxoed7vBqgc6kipIY+2LyBJg6KODXBB5NgRpD8UQ38onpWJQ+Qy2LrZ87dTeZhsGAsjDuAUCaebT8cnlOLKu+SzMmB9OWXvZj8r2dt75dBv1jSC02CMOQuV8st18uoWBNa+ydbVCaBFnWEzADQKHwuxi2h5Cm/pRtIPHH6UwFyE6VEh8VooIQ63kEbBX/ejemVdlnfF1BgNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
From: "Li, Xin3" <xin3.li@intel.com>
To: "H. Peter Anvin" <hpa@zytor.com>, "linux-doc@vger.kernel.org"
	<linux-doc@vger.kernel.org>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "linux-edac@vger.kernel.org"
	<linux-edac@vger.kernel.org>, "linux-hyperv@vger.kernel.org"
	<linux-hyperv@vger.kernel.org>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "tglx@linutronix.de" <tglx@linutronix.de>, "mingo@redhat.com"
	<mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org"
	<x86@kernel.org>, "Lutomirski, Andy" <luto@kernel.org>, "pbonzini@redhat.com"
	<pbonzini@redhat.com>, "seanjc@google.com" <seanjc@google.com>,
	"peterz@infradead.org" <peterz@infradead.org>, "jgross@suse.com"
	<jgross@suse.com>, "Shankar, Ravi V" <ravi.v.shankar@intel.com>,
	"mhiramat@kernel.org" <mhiramat@kernel.org>, "andrew.cooper3@citrix.com"
	<andrew.cooper3@citrix.com>, "jiangshanlai@gmail.com"
	<jiangshanlai@gmail.com>, "nik.borisov@suse.com" <nik.borisov@suse.com>,
	"Kang, Shan" <shan.kang@intel.com>
Subject: RE: [PATCH v13 24/35] x86/fred: Add a NMI entry stub for FRED
Thread-Topic: [PATCH v13 24/35] x86/fred: Add a NMI entry stub for FRED
Thread-Index: AQHaJ21um304Ih/3wke5WdAmrxBB47Cpo3eAgAEUIxA=
Date: Fri, 15 Dec 2023 18:37:27 +0000
Message-ID: <SA1PR11MB673465C969A6554B8574157EA893A@SA1PR11MB6734.namprd11.prod.outlook.com>
References: <20231205105030.8698-1-xin3.li@intel.com>
 <20231205105030.8698-25-xin3.li@intel.com>
 <c0c7c605-d487-483e-a034-983b76ee1dfa@zytor.com>
In-Reply-To: <c0c7c605-d487-483e-a034-983b76ee1dfa@zytor.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA1PR11MB6734:EE_|SA1PR11MB7062:EE_
x-ms-office365-filtering-correlation-id: 021c973f-2884-44de-dba1-08dbfd9ce356
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;
x-microsoft-antispam-message-info: GHI9S5GeYdVT2kaXFI9wxFJxC0n5K0A+gvggDzWO6pYIt8Dh7tCib95HSlqk/Dv1G7R1UXBVeTWrAVKmoCy5ZFIvuUEftCq5SD24EV38OyVK8MHcPhwrWT/SZSWTI9YhlqICbacI44Tpbhjyj7boOWUP9YfiOl/P0z4knqWrdfq5qLggsJrhIAbz6A4JSbgsLRl8hMN5WQP4mbMb7x0hkIuzl4HG8u4PyhncjRg8+Rifwwlt7etLPlaoiEIaXG5vxx5bWepHSJOKSHp6PhfVP/Qhk83qEOb75tEOPAm5PVz9UmiidYFabCGjysYVEC+r2Oh1n6mK1BbK1iuvr9ERiKNLwY0nn9PPnJjnYWJjwNI7L9uHTlHKHIqA1bL5R/+w+L1P0twOPMAMR8L0qJi7OqjZ+loXkzrpqyPbvrhG4q+rFy/aFdeOTLoq2eyqFV1nM60na4gC3yOsf5ETJnQDZoJwPFLz3ekS+LEVUR137zvI0B07tXkBNvcaIvkglkjaea86nw9YNZzFgZkEQ51FSunwPBnh66Eu/SzJtZe19hN2HUWiGTzPgpvIIieMkgILzQ//lNC8muWB1te+oxRdxGqFTl+Y9kdqBj46prCWoio=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB6734.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(136003)(396003)(39860400002)(376002)(346002)(230922051799003)(451199024)(64100799003)(1800799012)(186009)(26005)(83380400001)(82960400001)(122000001)(86362001)(38100700002)(41300700001)(5660300002)(7416002)(8936002)(4326008)(110136005)(7696005)(8676002)(52536014)(54906003)(66556008)(66946007)(76116006)(9686003)(64756008)(66476007)(966005)(2906002)(478600001)(6506007)(316002)(66446008)(71200400001)(38070700009)(33656002)(55016003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OUdzNWtwOXprQUFkZXByTk5JRzNyeUpnVnpMR0tXKzhjaWJoRm41NGtMTUpq?=
 =?utf-8?B?ek9yUU9uMXR1cHpIVVAvSHZFdUJMQzcxeVBKVk9NYnZJYWs4RldVaDMzTWpq?=
 =?utf-8?B?dHJtZEJuUDhqdVhxeS85dlcwVEFmeVIrWWxudGpRMGgxcURrU0MrWHZJVXZC?=
 =?utf-8?B?eWVIdlZLdlJaeTVId1ZQNkp1U0NES3NnQWRzV0N6WEJ3MThPZFROYTRmVENp?=
 =?utf-8?B?dmVKQXdPaWw1aW4yOUJ1VG51UzVuN2FEUHFKS1hZdU1sV3RZUmZVYngwSndU?=
 =?utf-8?B?STIxRjVkTjBwRzJBcVNyK1VOVmx4SFVQazY0NzJ3cWFWd1VEYm5ya2NPT0Z6?=
 =?utf-8?B?Zm16TXAySEdUZDk3eVc3emU2VlJJZFhmV3drcmdJYWtXYkN4QU9yREExT1hM?=
 =?utf-8?B?TVMrQXdleEs0Ulh1NFkvR0prdjZXSjg1QVBzcHVWdDVmVnFWbUVadFBXYkhY?=
 =?utf-8?B?ZjJWWGM4UE9VQUNDUFFRb0hKRmltRFJPL2dhTmNDdUk5ek96dnpLN3BFNTl4?=
 =?utf-8?B?V2VtVElrZmFUcjdOcFRGZlJpcWhiTXhTNyttckRHUUlxaURwbGoycHBSRDNF?=
 =?utf-8?B?QXMrMWhzVHVESng2enI4Q3QwS0x6K0p6R2xoM2VtRlZvKzdzVmtTeUFVckwr?=
 =?utf-8?B?SGN2SnN1SmdZRzJ4TE1mVFZ4WHhNRXRvcjFXR1kycStxeHUxaDJCOEhDT0tI?=
 =?utf-8?B?V3RnSnp1TlhsWXlVdUhCYitZZGxiTklqU05xK3I2TWFWTWlMT2V5bFlRa1U5?=
 =?utf-8?B?NVdXbU85NW4zell4YzR1YWpIZ09zdWE3SjZ2UkZVcmtoajAxRDJlOFpreG55?=
 =?utf-8?B?VUdYVmhpOHE2Wmp5ZUNBdWMwV1RlQW1wUTFLNFp5cndBekxjWllrbHV6dzFt?=
 =?utf-8?B?Z0hwdG9hTnVsLzdaWGsrVWdycGdXcStFcXJqZUNvK1MrTkZwUHo0ZE9ETmVP?=
 =?utf-8?B?QW4xSDhkRGtsSVhoNyttazNnd0pEL1hlQ1Fodm85ZXUyMW1OeXlMZi9WMGxi?=
 =?utf-8?B?MUw4aUM5dlJKY1JqdlJST0tLL1o4S2pWb051L2U0REs3a1FiTEd2TXhFTHlH?=
 =?utf-8?B?WDJNTWlpWGZGZUFvWXVGMERTY3MzRVJXcmdOOUVsbS9CeVUrZHIvMlVoL1F5?=
 =?utf-8?B?VStEaE9EdmlZK1J5TnNybFdtT2lGVmo5aGVKNVRVMXRDSlNBOENCSk5wWXhT?=
 =?utf-8?B?YVd2aWR0cE4rYk5tc2J3d1piUm1wcEtpdlI1TkMyN1FTamc3SUg2QWFGZWFO?=
 =?utf-8?B?VjArbE1hd2h2L1J1bE95a3lmK25sNnVibnFCdHo4WE1PV2w5aHgwVnhvUE5r?=
 =?utf-8?B?L3AwV2QwU2t3ZDFHTzZ3TlY1ZFIwNjZGTEpMU2k1WFV1WWFBS0lJNzhVUDlB?=
 =?utf-8?B?OS9WVnBXYmdyUXpjOXNNbUtVTnQrZ2pEV0tpaUNSSGx3MERrSStrRjFXeWRS?=
 =?utf-8?B?Z0RqbWVYejV6SmltTHZscmU2Y0RaYlUrTU8yWXNDZThjK3A2YitxOE1hSGdm?=
 =?utf-8?B?clNuU1VGb3cyWHcwZVphVjlsWXE5MFVxT25kclIyVVlldW95K2dxWTBaM3I5?=
 =?utf-8?B?V1JjeUdSM3pmTUloNDkyNkJNZkZPUXJvWFJrT2xkcHFqT25UNFRMY3hTSmR5?=
 =?utf-8?B?Y0dOMS9pT3pxaS90d3dGSVRwa1kvQ1h1c3E2U0tUaUN4bXYzNHRYNU9YM2RH?=
 =?utf-8?B?ZUVyVFlMd3BqRHV2NlVqV2dHaFh3MnBpMkFrZWxOT1NEelBSb0d0MmtTNDVC?=
 =?utf-8?B?bXc0NEd5eFBuU3BKOTJ0bHRNb21BV1lQS3lnMFphbEhwTHhxc1ZQTzZhM1Vo?=
 =?utf-8?B?cllDOUJJY3UrTnN2d3EzMDByWUtVRVF1NVZXY0kwclBSdDArYnUwclZQYU83?=
 =?utf-8?B?b21nY2ZUa3A3czcvb1k3U05iWkhxWDFIYW8xM2xySndxSkpZQ3NDTkxueWxR?=
 =?utf-8?B?djhVdHRYdzBnKy9GeEorb0doNHhVYTU0MTBtbWRmZ1JWUEIvdHh1MkxqYTM4?=
 =?utf-8?B?RmczNS9TR1NBSVhJQkV3aEZlZ0tJb3JGZ3pTb2d5VXcvK1dRVFZmRjJhSm1H?=
 =?utf-8?B?alREK1VNQm9CQ0p0c0JIYWpZYkZwRGhIYld4ZzhHem5Gc1VrakZjUGlveFRM?=
 =?utf-8?Q?YaYs=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6734.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 021c973f-2884-44de-dba1-08dbfd9ce356
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Dec 2023 18:37:27.3639
 (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: kJV7tt6zUx7CJVXA9YqH9aRI6glqYwI2EATrXbVWz/dHxwCwaY9kWl1NMV5EcvWIkEgmh/eghnVpQPxX6xQzNA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB7062
X-OriginatorOrg: intel.com

PiBTbyB3ZSBoYXZlIHJlY2VudGx5IGRpc2NvdmVyZWQgYW4gb3Zlcmxvb2tlZCBpbnRlcmFjdGlv
biB3aXRoIFZULXguDQo+IEltbWVkaWF0ZWx5IGJlZm9yZSBWTUVOVEVSIGFuZCBhZnRlciBWTUVY
SVQsIENSMiBpcyBsaXZlIHdpdGggdGhlDQo+ICpndWVzdCogQ1IyLiBSZWdhcmRsZXNzIG9mIGlm
IHRoZSBndWVzdCB1c2VzIEZSRUQgb3Igbm90LCB0aGlzIGlzIGd1ZXN0DQo+IHN0YXRlIGFuZCBT
SE9VTEQgTk9UIGJlIGNvcnJ1cHRlZC4gRnVydGhlcm1vcmUsIGhvc3Qgc3RhdGUgTVVTVCBOT1Qg
bGVhaw0KPiBpbnRvIHRoZSBndWVzdC4NCj4gDQo+IE5NSXMgYXJlIGJsb2NrZWQgb24gVk1FWElU
IGlmIHRoZSBjYXVzZSB3YXMgYW4gTk1JLCBidXQgbm90IGZvciBvdGhlcg0KPiByZWFzb25zLCBz
byBhIE5NSSBjb21pbmcgaW4gZHVyaW5nIHRoaXMgd2luZG93IHRoYXQgdGhlbiAjUEZzIGNvdWxk
DQo+IGNvcnJ1cHQgdGhlIGd1ZXN0IENSMi4NCg0KSSBhZGQgYSBjb21tZW50IHRvIHZteF92Y3B1
X2VudGVyX2V4aXQoKSBpbg0KaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcva3ZtLzIwMjMxMTA4MTgz
MDAzLjU5ODEtMS14aW4zLmxpQGludGVsLmNvbS9ULyNtMjk2MTZjMDJiZWZjMDQzMDUwODViMWNi
YWM2NGRmOTE2MzY0NjI2YQ0KZm9yIHRoaXMuDQoNCj4gDQo+IEludGVsIGlzIGV4cGxvcmluZyB3
YXlzIHRvIGNsb3NlIHRoaXMgaG9sZSwgYnV0IGZvciBzY2hlZHVsZSByZWFzb25zLCBpdA0KPiB3
aWxsIG5vdCBiZSBhdmFpbGFibGUgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgZmlyc3QgaW1wbGVt
ZW50YXRpb24gb2YNCj4gRlJFRC4gVGhlcmVmb3JlLCBhcyBhIHdvcmthcm91bmQsIGl0IHR1cm5z
IG91dCB0aGF0IHRoZSBGUkVEIE5NSSBzdHViDQo+ICp3aWxsKiwgdW5mb3J0dW5hdGVseSwgaGF2
ZSB0byBzYXZlIGFuZCByZXN0b3JlIENSMiBhZnRlciBhbGwgd2hlbiAoYXQNCj4gbGVhc3QpIElu
dGVsIEtWTSBpcyBpbiB1c2UuDQo+IA0KPiBOb3RlIHRoYXQgdGhpcyBpcyBhaXJ0aWdodDogaXQg
ZG9lcyBhZGQgYSBwZXJmb3JtYW5jZSBwZW5hbHR5IHRvIHRoZSBOTUkNCj4gcGF0aCAodHdvIHJl
YWQgQ1IyIGluIHRoZSBjb21tb24gY2FzZSBvZiBubyAjUEYpLCBidXQgdGhlcmUgaXMgbm8gZ2Fw
DQo+IGR1cmluZyB3aGljaCBhIGJhZCBDUjIgdmFsdWUgY291bGQgYmUgaW50cm9kdWNlZCBpbiB0
aGUgZ3Vlc3QsIG5vIG1hdHRlcg0KPiBpbiB3aGljaCBzZXF1ZW5jZSB0aGUgZXZlbnRzIGhhcHBl
bi4NCj4gDQo+IEluIHRoZW9yeSB0aGUgcGVyZm9ybWFuY2UgcGVuYWx0eSBjb3VsZCBiZSBmdXJ0
aGVyIHJlZHVjZWQgYnkNCj4gY29uZGl0aW9uYWxpemluZyB0aGlzIG9uIHRoZSBOTUkgaGFwcGVu
aW5nIGluIHRoZSBjcml0aWNhbCByZWdpb24gaW4gdGhlDQo+IEtWTSBjb2RlLCBidXQgaXQgc2Vl
bXMgdG8gYmUgcHJldHR5IGZhciBmcm9tIG5lY2Vzc2FyeSB0byBtZS4NCg0KV2Ugc2hvdWxkIGtl
ZXAgdGhlIGZvbGxvd2luZyBjb2RlIGluIHRoZSBGUkVEIE5NSSBoYW5kbGVyLCByaWdodD8NCg0K
ew0KLi4uDQoJdGhpc19jcHVfd3JpdGUobm1pX2NyMiwgcmVhZF9jcjIoKSk7DQouLi4NCglpZiAo
dW5saWtlbHkodGhpc19jcHVfcmVhZChubWlfY3IyKSAhPSByZWFkX2NyMigpKSkNCgkJd3JpdGVf
Y3IyKHRoaXNfY3B1X3JlYWQobm1pX2NyMikpOw0KLi4uDQp9DQoNCj4gVGhpcyBvYnZpb3VzbHkg
d2FzIGFuIHVuZm9ydHVuYXRlIG92ZXJzaWdodCBvbiBvdXIgcGFydCwgYnV0IHRoZQ0KPiB3b3Jr
YXJvdW5kIGlzIHNpbXBsZSBhbmQgZG9lc24ndCBhZmZlY3QgYW55IG5vbi1OTUkgcGF0aHMuDQo+
IA0KPiA+ICsNCj4gPiArCWlmIChJU19FTkFCTEVEKENPTkZJR19TTVApICYmDQo+IGFyY2hfY3B1
X2lzX29mZmxpbmUoc21wX3Byb2Nlc3Nvcl9pZCgpKSkNCj4gPiArCQlyZXR1cm47DQo+ID4gKw0K
PiANCj4gVGhpcyBpcyBjdXQgJiBwYXN0ZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGUgTk1JIGNvZGUs
IGJ1dCBJIGJlbGlldmUgdGhlDQo+IElTX0VOQUJMRUQoKSBpcyB1bm5lY2Vzc2FyeSAobm90IHRv
IG1lbnRpb24gdWdseSk6IHNtcF9wcm9jZXNzb3JfaWQoKQ0KPiBzaG91bGQgYWx3YXlzIHJldHVy
biB6ZXJvIG9uIFVQLCBhbmQgYXJjaF9jcHVfaXNfb2ZmbGluZSgpIHJlZHVjZXMgdG8NCj4gIShj
cHUgPT0gMCksIHNvIHRoaXMgaXMgYSBzdGF0aWNhbGx5IHRydWUgY29uZGl0aW9uIG9uIFVQLg0K
DQpBaCwgZ29vZCBwb2ludCENCg==


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 18:52:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 18:52:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655340.1023070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEDIG-00064V-76; Fri, 15 Dec 2023 18:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655340.1023070; Fri, 15 Dec 2023 18:52:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEDIG-00064O-2n; Fri, 15 Dec 2023 18:52:16 +0000
Received: by outflank-mailman (input) for mailman id 655340;
 Fri, 15 Dec 2023 18:52: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 1rEDIE-00064I-L3
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 18:52: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 1rEDID-00051b-Vs; Fri, 15 Dec 2023 18:52:13 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.3.206]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rEDID-0002Z6-PM; Fri, 15 Dec 2023 18: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=os94DVtBRmD3Y+NDIOdjLVu25UbLznToBDj1ha1Gmfs=; b=fZ2TwGJqq91XJkyqtQcRD0AjdS
	laDJbgrbj7gb5H+5FkImdsfXGbqRYjgt7VeJneAYn+aGHyDMVvEdU+cWTZFDJ7hPs7SJhnKLRfhEH
	Bq0N9mUJNuyYI7/AV0Y77qxXq4aS1jL4mhVvburuitYY1FA9q+RBxLq24oS5UElOQSz8=;
Message-ID: <ad47ae1c-79b7-4698-bf3b-36a7c71540aa@xen.org>
Date: Fri, 15 Dec 2023 18:52:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen/ppc: Enable Boot Allocator
Content-Language: en-GB
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
 Timothy Pearson <tpearson@raptorengineering.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <jbeulich@suse.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Oleksii <oleksii.kurochko@gmail.com>
References: <cover.1701384928.git.sanastasio@raptorengineering.com>
 <5ed3351f7824a5d0a1ff29c17cb55b2608f28109.1701384928.git.sanastasio@raptorengineering.com>
 <938b9bfe-fba0-4c77-b2e5-fb79fb316ab4@xen.org>
 <7e0ea8d9ca0a3a90550eb7b9e65fe86c.squirrel@vali.starlink.edu>
 <1981531f-a919-4569-9b6b-8f962f9d7cfb@xen.org>
 <536439989.51518893.1701471704571.JavaMail.zimbra@raptorengineeringinc.com>
 <4ce0f52f-8a63-4d10-8cea-5c3b905477ec@xen.org>
 <bd465581-601e-4d7d-a345-6d88740c9e64@raptorengineering.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <bd465581-601e-4d7d-a345-6d88740c9e64@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Shawn,

On 15/12/2023 02:50, Shawn Anastasio wrote:
> Hi Julien,
> 
> Thank you for the feedback. Most of your points will be addressed by
> following your suggestion of moving ARM's bootfdt.c to common, but I
> wanted to respond with a few points of clarification.
> 
> On 12/1/23 5:23 PM, Julien Grall wrote:
>> * fdt_get_mem_rsv_paddr(), this is part of the DT is used to reserve
>> memory. This was superseed to /reserved-memory, but I wonder how
>> widespread this is on PPC?
> 
> As far as I can tell, the DT reserve memory map is not used on
> PPC/PowerNV. This information is instead communicated through
> `reserved-memory` nodes in the DT itself, which the existing code
> handles.

On Arm, there is a mix between using /memreserve (found by Xen via 
fdt_get_mem_rsv_paddr() and reserved-memory.

Looking at Linux, it seems that it will try to parse /memreserve in PPC 
and I have found a few DT using it:

42sh> ack memreserve
boot/dts/currituck.dts
13:/memreserve/ 0x01f00000 0x00100000;	// spin table

boot/dts/akebono.dts
14:/memreserve/ 0x01f00000 0x00100000;	// spin table

boot/dts/iss4xx-mpic.dts
17:/memreserve/ 0x01f00000 0x00100000;

boot/dts/mpc836x_mds.dts
10:/memreserve/	00000000 1000000;

boot/dts/wii.dts
17: * contiguous RAM range and will BUG() if the memreserve is outside
20:/*/memreserve/ 0x10000000 0x0004000;*/	/* DSP RAM */

I guess we are not targetting any of those hardwares. Even if this is 
the case, I don't think we can simply ignore the node. If you don't want 
to handle them, then I would at least suggest to add a check in Xen to 
confirm the /memreserve/ is empty.

Better to catch such DT early rather than debugging a memory corruption 
later on :).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 19:29:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 19:29:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655344.1023082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEDrd-00047K-T1; Fri, 15 Dec 2023 19:28:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655344.1023082; Fri, 15 Dec 2023 19:28:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEDrd-00047D-Pn; Fri, 15 Dec 2023 19:28:49 +0000
Received: by outflank-mailman (input) for mailman id 655344;
 Fri, 15 Dec 2023 19:28:49 +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 1rEDrc-000477-Sf
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 19:28:49 +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 1rEDrb-0005qj-QH; Fri, 15 Dec 2023 19:28:47 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.3.206]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rEDrb-00048W-IR; Fri, 15 Dec 2023 19:28:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=3IqicZryB/mpkkmkQeXM3Gtkzp+ZABa/cLdKPTvJN5o=; b=hYe0ltWScltbs9LJmeTa7zrApV
	JmS83mErhLplGMljjXGeoPb5wHqzUTSiLoZrGuwQKZTJi6WG420o/XaOZHL3tNF2OvPp/G1wM5QWT
	Q/D7Gn8zT15XoXBhLnojV2N/oZ//wVjRMdOxtqQsgjMhs9LhhqIK48gRY85y94PvMZDg=;
Message-ID: <c348f48c-d774-40ed-b90f-c254a7171d90@xen.org>
Date: Fri, 15 Dec 2023 19:28:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/9] iommu/arm: Introduce iommu_add_dt_pci_sideband_ids
 API
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich
 <jbeulich@suse.com>, Paul Durrant <paul@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <20231109182716.367119-1-stewart.hildebrand@amd.com>
 <20231109182716.367119-4-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231109182716.367119-4-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stewart,

On 09/11/2023 18:27, Stewart Hildebrand wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> The main purpose of this patch is to add a way to register PCI device
> (which is behind the IOMMU) using the generic PCI-IOMMU DT bindings [1]
> before assigning that device to a domain.
> 
> This behaves similarly to the existing iommu_add_dt_device API, except it
> handles PCI devices, and it is to be invoked from the add_device hook in the
> SMMU driver.
> 
> The function dt_map_id to translate an ID through a downstream mapping
> (which is also suitable for mapping Requester ID) was borrowed from Linux
> (v5.10-rc6) and updated according to the Xen code base.
> 
> [1] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/pci-iommu.txt
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> v5->v6:
> * pass ops to iommu_dt_xlate()
> 
> v4->v5:
> * style: add newlines after variable declarations and before return in iommu.h
> * drop device_is_protected() check in iommu_add_dt_pci_sideband_ids()
> * rebase on top of ("dynamic node programming using overlay dtbo") series
> * fix typo in commit message
> * remove #ifdef around dt_map_id() prototype
> * move dt_map_id() to xen/common/device_tree.c
> * add function name in error prints
> * use dprintk for debug prints
> * use GENMASK and #include <xen/bitops.h>
> * fix typo in comment
> * remove unnecessary (int) cast in loop condition
> * assign *id_out and return success in case of no translation in dt_map_id()
> * don't initialize local variable unnecessarily
> * return error in case of ACPI/no DT in iommu_add_{dt_}pci_sideband_ids()
> 
> v3->v4:
> * wrap #include <asm/acpi.h> and if ( acpi_disabled ) in #ifdef CONFIG_ACPI
> * fix Michal's remarks about style, parenthesis, and print formats
> * remove !ops->dt_xlate check since it is already in iommu_dt_xlate helper
> * rename s/iommu_dt_pci_map_id/dt_map_id/ because it is generic, not specific
>    to iommu
> * update commit description
> 
> v2->v3:
> * new patch title (was: iommu/arm: Introduce iommu_add_dt_pci_device API)
> * renamed function
>    from: iommu_add_dt_pci_device
>    to: iommu_add_dt_pci_sideband_ids
> * removed stale ops->add_device check
> * iommu.h: add empty stub iommu_add_dt_pci_sideband_ids for !HAS_DEVICE_TREE
> * iommu.h: add iommu_add_pci_sideband_ids helper
> * iommu.h: don't wrap prototype in #ifdef CONFIG_HAS_PCI
> * s/iommu_fwspec_free(pci_to_dev(pdev))/iommu_fwspec_free(dev)/
> 
> v1->v2:
> * remove extra devfn parameter since pdev fully describes the device
> * remove ops->add_device() call from iommu_add_dt_pci_device(). Instead, rely on
>    the existing iommu call in iommu_add_device().
> * move the ops->add_device and ops->dt_xlate checks earlier
> 
> downstream->v1:
> * rebase
> * add const qualifier to struct dt_device_node *np arg in dt_map_id()
> * add const qualifier to struct dt_device_node *np declaration in iommu_add_pci_device()
> * use stdint.h types instead of u8/u32/etc...
> * rename functions:
>    s/dt_iommu_xlate/iommu_dt_xlate/
>    s/dt_map_id/iommu_dt_pci_map_id/
>    s/iommu_add_pci_device/iommu_add_dt_pci_device/
> * add device_is_protected check in iommu_add_dt_pci_device
> * wrap prototypes in CONFIG_HAS_PCI
> 
> (cherry picked from commit 734e3bf6ee77e7947667ab8fa96c25b349c2e1da from
>   the downstream branch poc/pci-passthrough from
>   https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)
> ---
>   xen/common/device_tree.c              | 91 +++++++++++++++++++++++++++
>   xen/drivers/passthrough/device_tree.c | 42 +++++++++++++
>   xen/include/xen/device_tree.h         | 23 +++++++
>   xen/include/xen/iommu.h               | 24 ++++++-
>   4 files changed, 179 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
> index b1c29529514f..5cb84864b89b 100644
> --- a/xen/common/device_tree.c
> +++ b/xen/common/device_tree.c
> @@ -10,6 +10,7 @@
>    * published by the Free Software Foundation.
>    */
>   
> +#include <xen/bitops.h>
>   #include <xen/types.h>
>   #include <xen/init.h>
>   #include <xen/guest_access.h>
> @@ -2243,6 +2244,96 @@ int dt_get_pci_domain_nr(struct dt_device_node *node)
>       return (u16)domain;
>   }
>   
> +int dt_map_id(const struct dt_device_node *np, uint32_t id,

OOI (no changes requested), compare to Linux, why did you rename 'rid' 
to 'id'? Are we going to pass something different than a requester ID?

> +              const char *map_name, const char *map_mask_name,
> +              struct dt_device_node **target, uint32_t *id_out)
> +{
> +    uint32_t map_mask, masked_id, map_len;
> +    const __be32 *map = NULL;
> +
> +    if ( !np || !map_name || (!target && !id_out) )
> +        return -EINVAL;
> +
> +    map = dt_get_property(np, map_name, &map_len);
> +    if ( !map )
> +    {
> +        if ( target )
> +            return -ENODEV;
> +
> +        /* Otherwise, no map implies no translation */
> +        *id_out = id;
> +        return 0;
> +    }
> +
> +    if ( !map_len || (map_len % (4 * sizeof(*map))) )
> +    {
> +        printk(XENLOG_ERR "%s(): %s: Error: Bad %s length: %u\n", __func__,
> +               np->full_name, map_name, map_len);
> +        return -EINVAL;
> +    }
> +
> +    /* The default is to select all bits. */
> +    map_mask = GENMASK(31, 0);
> +
> +    /*
> +     * Can be overridden by "{iommu,msi}-map-mask" property.
> +     * If dt_property_read_u32() fails, the default is used.
> +     */
> +    if ( map_mask_name )
> +        dt_property_read_u32(np, map_mask_name, &map_mask);
> +
> +    masked_id = map_mask & id;
> +    for ( ; map_len > 0; map_len -= 4 * sizeof(*map), map += 4 )
> +    {
> +        struct dt_device_node *phandle_node;
> +        uint32_t id_base = be32_to_cpup(map + 0);
> +        uint32_t phandle = be32_to_cpup(map + 1);
> +        uint32_t out_base = be32_to_cpup(map + 2);
> +        uint32_t id_len = be32_to_cpup(map + 3);
> +
> +        if ( id_base & ~map_mask )
> +        {
> +            printk(XENLOG_ERR "%s(): %s: Invalid %s translation - %s-mask (0x%"PRIx32") ignores id-base (0x%"PRIx32")\n",
> +                   __func__, np->full_name, map_name, map_name, map_mask,
> +                   id_base);
> +            return -EFAULT;
> +        }
> +
> +        if ( (masked_id < id_base) || (masked_id >= (id_base + id_len)) )
> +            continue;
> +
> +        phandle_node = dt_find_node_by_phandle(phandle);
> +        if ( !phandle_node )
> +            return -ENODEV;
> +
> +        if ( target )
> +        {
> +            if ( !*target )
> +                *target = phandle_node;
> +
> +            if ( *target != phandle_node )
> +                continue;
> +        }
> +
> +        if ( id_out )
> +            *id_out = masked_id - id_base + out_base;
> +
> +        dprintk(XENLOG_DEBUG, "%s: %s, using mask %08"PRIx32", id-base: %08"PRIx32", out-base: %08"PRIx32", length: %08"PRIx32", id: %08"PRIx32" -> %08"PRIx32"\n",
> +               np->full_name, map_name, map_mask, id_base, out_base, id_len, id,
> +               masked_id - id_base + out_base);
> +        return 0;
> +    }
> +
> +    dprintk(XENLOG_DEBUG, "%s: no %s translation for id 0x%"PRIx32" on %s\n",
> +           np->full_name, map_name, id,
> +           (target && *target) ? (*target)->full_name : NULL);
> +
> +    if ( id_out )
> +        *id_out = id;
> +
> +    return 0;
> +}
> +
>   /*
>    * Local variables:
>    * mode: C
> diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
> index 4c35281d98ad..edbd3f17adc5 100644
> --- a/xen/drivers/passthrough/device_tree.c
> +++ b/xen/drivers/passthrough/device_tree.c
> @@ -161,6 +161,48 @@ static int iommu_dt_xlate(struct device *dev,
>       return ops->dt_xlate(dev, iommu_spec);
>   }
>   
> +#ifdef CONFIG_HAS_PCI
> +int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
> +{
> +    const struct iommu_ops *ops = iommu_get_ops();
> +    struct dt_phandle_args iommu_spec = { .args_count = 1 };
> +    struct device *dev = pci_to_dev(pdev);
> +    const struct dt_device_node *np;
> +    int rc;
> +
> +    if ( !iommu_enabled )
> +        return NO_IOMMU;
> +
> +    if ( !ops )
> +        return -EINVAL;
> +
> +    if ( dev_iommu_fwspec_get(dev) )
> +        return -EEXIST;
> +
> +    np = pci_find_host_bridge_node(pdev);
> +    if ( !np )
> +        return -ENODEV;
> +
> +    /*
> +     * According to the Documentation/devicetree/bindings/pci/pci-iommu.txt
> +     * from Linux.
> +     */
> +    rc = dt_map_id(np, PCI_BDF(pdev->bus, pdev->devfn), "iommu-map",
> +                   "iommu-map-mask", &iommu_spec.np, iommu_spec.args);

It is not fully clear why in Xen we directly call dt_map_id() (aka 
of_map_rid() in Linux) whereas Linux will may map multiple RID via 
pci_for_each_dma_alias(). Can you clarify?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 20:35:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 20:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655355.1023095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEEu0-0006hC-P9; Fri, 15 Dec 2023 20:35:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655355.1023095; Fri, 15 Dec 2023 20: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 1rEEu0-0006h5-M3; Fri, 15 Dec 2023 20:35:20 +0000
Received: by outflank-mailman (input) for mailman id 655355;
 Fri, 15 Dec 2023 20:35: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 1rEEtz-0006gb-8M; Fri, 15 Dec 2023 20:35: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 1rEEtz-00076v-25; Fri, 15 Dec 2023 20:35: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 1rEEty-00012V-M0; Fri, 15 Dec 2023 20:35:18 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEEty-0008Am-LT; Fri, 15 Dec 2023 20:35: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=nKy6dnSFn7mRHZS19hAqaLFz7J4g/eS43IpqklykL20=; b=UPNAYQlkKXJXqKtJ9WIQJ70EPK
	94O4ylCBUAQxLxyLIFsROjEVbatBUVSGp8Q9lwj+n3Hw9cUIatfEhjz0YByp251x3PFDx3JGsDIWf
	t05aLOzPyjiO43yudwsoY6n0HqCsscu9oIn+KL+OaBIPIDlysq2SILj7sPUTYDuI737Q=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184145-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184145: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt-raw:xen-boot:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt: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-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-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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-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-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
X-Osstest-Versions-That:
    xen=cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 15 Dec 2023 20:35:18 +0000

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

Failures :-/ but no regressions.

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

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail in 184141 blocked in 184145
 test-armhf-armhf-libvirt-raw 14 migrate-support-check fail in 184141 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184141
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184141
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184141
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184141
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184141
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184141
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184141
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184141
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184141
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184141
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184141
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-amd64-i386-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          15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          16 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
baseline version:
 xen                  cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce

Last test of basis   184145  2023-12-15 08:41:13 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 15 21:01:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 21:01:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655363.1023106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFJc-0002da-2U; Fri, 15 Dec 2023 21:01:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655363.1023106; Fri, 15 Dec 2023 21:01: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 1rEFJb-0002dT-UE; Fri, 15 Dec 2023 21:01:47 +0000
Received: by outflank-mailman (input) for mailman id 655363;
 Fri, 15 Dec 2023 21:01:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Stqq=H2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rEFJa-0002dN-Hi
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 21:01:46 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27729c28-9b8d-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 22:01:45 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 7ADCFB82640;
 Fri, 15 Dec 2023 21:01:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4EEF4C433C8;
 Fri, 15 Dec 2023 21:01: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: 27729c28-9b8d-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702674103;
	bh=LPqiB4gWftxzgmuGTpgcB+VxWM/1TXhAIWQUzdXycos=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rKOSWL7IS4QP5xaZcOeJbk9eYRPkpnvG/FeLfIaCCt9UZfJ6O5wOVP+b+tq9lTJ2d
	 +3k9l2acP7wWtYFU8Zo14KGgWaTstHHdxP6sF1ErBsy+7RRYKv/pRRg54o61aJ26l7
	 a4pDIyW7XOszBSTkyOoJii5wSCzxZXtLj/XrgQM/70oxI20zNYYoYabSohGTlPZkAV
	 Siu7HnUxaIlgx1f18EL3owMljyBD/U+pbyLIK+u4VzVzSZuPFqQsyJB4KKx4nwVBN9
	 8qz9YsZlFO0kWQuQAeDtQY+pHh3YTbrX1VXOcCMdLyUVfn836oRaObOrYyJU1ZXAaL
	 hw8OQNS67Wh1w==
Date: Fri, 15 Dec 2023 13:01:40 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei Liu <wl@xen.org>, 
    Anthony PERARD <anthony.perard@citrix.com>, 
    Juergen Gross <jgross@suse.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, 
    "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, 
    "Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
In-Reply-To: <ZXwQ7BF9AxZPYPXQ@macbook>
Message-ID: <alpine.DEB.2.22.394.2312151114310.3175268@ubuntu-linux-20-04-desktop>
References: <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com> <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com> <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com> <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com> <ZXrRG8oc25Do0Dnv@macbook> <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com> <ZXrTwfzedFQLhxiQ@macbook> <alpine.DEB.2.22.394.2312141441020.3175268@ubuntu-linux-20-04-desktop>
 <6ba1feda-275a-43f1-911e-8a8596e100ff@suse.com> <ZXwQ7BF9AxZPYPXQ@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1170783508-1702667762=:3175268"
Content-ID: <alpine.DEB.2.22.394.2312151116100.3175268@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-1170783508-1702667762=:3175268
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312151116101.3175268@ubuntu-linux-20-04-desktop>

On Fri, 15 Dec 2023, Roger Pau MonnÃ© wrote:
> On Fri, Dec 15, 2023 at 09:24:22AM +0100, Jan Beulich wrote:
> > On 14.12.2023 23:49, Stefano Stabellini wrote:
> > > On Thu, 14 Dec 2023, Roger Pau MonnÃ© wrote:
> > >> On Thu, Dec 14, 2023 at 10:58:24AM +0100, Jan Beulich wrote:
> > >>> On 14.12.2023 10:55, Roger Pau MonnÃ© wrote:
> > >>>> One way to bodge this would be to detect whether the caller of
> > >>>> XEN_DOMCTL_irq_permission is a PV or an HVM domain, and in case of HVM
> > >>>> assume the pirq field is a GSI.  I'm unsure however how that will work
> > >>>> with non-x86 architectures.
> > > 
> > > PIRQ is an x86-only concept. We have event channels but no PIRQs on ARM.
> > > I expect RISC-V will be the same.
> > > 
> > > 
> > >>>> It would  be better to introduce a new XEN_DOMCTL_gsi_permission, or
> > > 
> > > "GSI" is another x86-only concept.
> > 
> > Just to mention it - going through the ACPI spec, this looks to be an
> > arch-neutral ACPI term. It is also used in places which to me look
> > pretty Arm-centric.
> 
> Oh, indeed, they have retrofitted GSI(V?) for Arm also, as a way to have a
> "flat" uniform interrupt space.

Interesting, and I am not surprised. (I don't usually work with ACPI on
ARM because none of our boards come with ACPI, they are all Device
Tree.)


> So I guess Arm would also need the
> GSI type, unless the translation from GSI to SPI or whatever platform
> interrupt type is done by the guest and Xen is completely agnostic to
> GSIs (if that's even possible).

I am guessing that GSIs on ARM must be mapped 1:1 to SPIs otherwise we
would have severe inconsistencies between ACPI and DeviceTree booting
and some boards support both.

Also to answer your question about LPIs: those are MSIs on ARM.
--8323329-1170783508-1702667762=:3175268--


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 21:01:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 21:01:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655364.1023115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFJm-0002us-93; Fri, 15 Dec 2023 21:01:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655364.1023115; Fri, 15 Dec 2023 21: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 1rEFJm-0002ul-5Y; Fri, 15 Dec 2023 21:01:58 +0000
Received: by outflank-mailman (input) for mailman id 655364;
 Fri, 15 Dec 2023 21:01:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Stqq=H2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rEFJk-0002dN-6Q
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 21:01:56 +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 2d169105-9b8d-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 22:01:55 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id CF044627A6;
 Fri, 15 Dec 2023 21:01:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7339C433C8;
 Fri, 15 Dec 2023 21:01: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: 2d169105-9b8d-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702674113;
	bh=O2RuI3xmzIwwGqozyus2XuyWTx0BEzOms47qRRmXgok=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=QwAZHZfTXqFj89eq/eW2JglJ9T51SshUy5dM89ykyi5ZxrA/anC6D3BRcMGvIaCS1
	 ZjMjLwUc5qIe9vE8LO65/Y3NpE55ut/LZsqHvR1srQoyBSPI2Tc3UiVEutqCBzM3Ys
	 UZk0i2YhV0zVNBxUezwhcywpUMNhI3YZuCEUugrVzgpjHYGd80mF0VWcdFFVAHSHaa
	 B0EdKpVDg6Vq46ZreXeQ/LEb7iu4Q/ivbWe7vfE5YfHs+8Z5c0O5SglfN9Ok1qYyYK
	 AoyTIes0zSjZZ7kisIryqncvXqFXCaewSKQ2lzB8+Jv7JYfM3oSlLPwqS+Uoj7Ds15
	 piLUQyry2TMiQ==
Date: Fri, 15 Dec 2023 13:01:50 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>, 
    xen-devel@lists.xenproject.org, George Dunlap <george.dunlap@cloud.com>
Subject: Re: [XEN PATCH v3 3/3] xen/mm: add declaration for first_valid_mfn
In-Reply-To: <3b2f1699-d58c-40d8-af36-caef70064601@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312151124490.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com> <d80309f31fea24ea75c4994e924da069472811fc.1702285639.git.nicola.vetrini@bugseng.com> <6c717bd4-db1b-4e19-9b98-0776a8359085@suse.com> <alpine.DEB.2.22.394.2312131803150.3175268@ubuntu-linux-20-04-desktop>
 <2a7f0d03-1cab-4824-86ae-fb7a26ff8adc@suse.com> <9fcc73f0-fc9c-4f4f-a431-f1f3b0df1b6a@xen.org> <4a1f86c7-6643-4fd1-ba1c-a4f86abb63f3@suse.com> <CA+zSX=YHW3kGFroNDzwQg=EhEe3F_fw3gCd_9W+P2UxC7+g+0A@mail.gmail.com> <0166dd5b-c12e-40d8-88a6-1f3c97bcf2e0@xen.org>
 <3b2f1699-d58c-40d8-af36-caef70064601@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, 15 Dec 2023, Jan Beulich wrote:
> On 14.12.2023 20:10, Julien Grall wrote:
> > On 14/12/2023 14:15, George Dunlap wrote:
> >> But I do think that it's fair to ask Julien to think about a suitable
> >> wording, since the comment is in a sense to remind him (or other ARM
> >> maintainers) what's needed, and since the eventual solution will be
> >> something to do with the ARM code and architecture anyway.
> > 
> > The comment is for anyone using !NUMA (i.e. all architectures but x86) 
> > :). What about the following (this is Nicola's patch with the comments 
> > reworked):
> 
> This clearly is better, yet then ...
> 
> > --- a/xen/arch/arm/include/asm/numa.h
> > +++ b/xen/arch/arm/include/asm/numa.h
> > @@ -2,8 +2,9 @@
> >   #define __ARCH_ARM_NUMA_H
> > 
> >   #include <xen/mm.h>
> > +#include <xen/types.h>
> > 
> > -typedef u8 nodeid_t;
> > +typedef uint8_t nodeid_t;
> > 
> >   #ifndef CONFIG_NUMA
> > 
> > @@ -11,12 +12,6 @@ typedef u8 nodeid_t;
> >   #define cpu_to_node(cpu) 0
> >   #define node_to_cpumask(node)   (cpu_online_map)
> > 
> > -/*
> > - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
> > - * is required because the dummy helpers are using it.
> > - */
> > -extern mfn_t first_valid_mfn;
> > -
> >   /* XXX: implement NUMA support */
> >   #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
> >   #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> > diff --git a/xen/arch/ppc/include/asm/numa.h 
> > b/xen/arch/ppc/include/asm/numa.h
> > index 7fdf66c3da74..888de2dbd1eb 100644
> > --- a/xen/arch/ppc/include/asm/numa.h
> > +++ b/xen/arch/ppc/include/asm/numa.h
> > @@ -1,8 +1,8 @@
> >   #ifndef __ASM_PPC_NUMA_H__
> >   #define __ASM_PPC_NUMA_H__
> > 
> > -#include <xen/types.h>
> >   #include <xen/mm.h>
> > +#include <xen/types.h>
> > 
> >   typedef uint8_t nodeid_t;
> > 
> > @@ -10,12 +10,6 @@ typedef uint8_t nodeid_t;
> >   #define cpu_to_node(cpu) 0
> >   #define node_to_cpumask(node)   (cpu_online_map)
> > 
> > -/*
> > - * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
> > - * is required because the dummy helpers are using it.
> > - */
> > -extern mfn_t first_valid_mfn;
> > -
> >   /* XXX: implement NUMA support */
> >   #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
> >   #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> > diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> > index 9b5df74fddab..d874525916ea 100644
> > --- a/xen/common/page_alloc.c
> > +++ b/xen/common/page_alloc.c
> > @@ -255,8 +255,10 @@ static PAGE_LIST_HEAD(page_broken_list);
> >    */
> > 
> >   /*
> > - * first_valid_mfn is exported because it is use in ARM specific NUMA
> > - * helpers. See comment in arch/arm/include/asm/numa.h.
> > + * first_valid_mfn is exported because it is used when !CONFIG_NUMA.
> > + *
> > + * TODO: Consider if we can conditionally export first_valid_mfn based
> > + * on whether NUMA is selected.
> >    */
> >   mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
> > 
> > diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
> > index 3d9b2d05a5c8..a13a9a46ced7 100644
> > --- a/xen/include/xen/mm.h
> > +++ b/xen/include/xen/mm.h
> > @@ -118,6 +118,8 @@ int destroy_xen_mappings(unsigned long s, unsigned 
> > long e);
> >   /* Retrieve the MFN mapped by VA in Xen virtual address space. */
> >   mfn_t xen_map_to_mfn(unsigned long va);
> > 
> > +extern mfn_t first_valid_mfn;
> > +
> >   /*
> >    * Create only non-leaf page table entries for the
> >    * page range in Xen virtual address space.
> 
> ... I still disagree with the placement here (should be xen/numa.h imo),

This is where I would call it "good enough" and close it for now. I
think we should commit such a patch (Julien's patch with the placement
in xen/numa.h).

Anything else...


> and I still don't see why we can't carry out the TODO right away, if we
> have to touch all of this anyway. If it's really too much to ask from
> the original contributor, I can certainly see about making a patch myself
> (and I've now added this to my short-term TODO list).

... can still be done later whenever you get to it.


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 21:02:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 21:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655366.1023125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFK0-0003OT-G2; Fri, 15 Dec 2023 21:02:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655366.1023125; Fri, 15 Dec 2023 21: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 1rEFK0-0003OM-DF; Fri, 15 Dec 2023 21:02:12 +0000
Received: by outflank-mailman (input) for mailman id 655366;
 Fri, 15 Dec 2023 21:02: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=Stqq=H2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rEFJz-0002dN-AJ
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 21:02:11 +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 361fbe4f-9b8d-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 22:02:10 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 482EF62799;
 Fri, 15 Dec 2023 21:02:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7F571C433C7;
 Fri, 15 Dec 2023 21:02:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 361fbe4f-9b8d-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702674128;
	bh=7wtrVTI/cW8Ic7U1Zkh5SC8wcl/JQhroBiig5pdm/5M=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=p0InLU7OvgQNITHWUUBh0DovXQjPDVsunjEuTJYO40h4KZSxrATmqRQF8PoXXvPcc
	 Vu67ejcVOq4IGJHceNz/8K8heIpTgx7iqdL/gm2SKUHUu9GhyLKE2Ofuf2v5Vvx/kF
	 xt8euoOflOu6ESM20BIHHUPoVl8/pMUaDU8qBeV2luOhnEfm1hiqmrc6zmKR7f2ETd
	 k5PIuKO3hLV+epAcU6H+vdOfcYA4iO5TLb4e2DQCG81hSba0UUdmFxw+ZJTQPFu4M7
	 vbxHGPY4KyJO7iH4lbls62zFHupCKTlCztwtTenG98TDxteICBXM9rqQq8/pnSD2bK
	 QFLd0ZYUH5H/A==
Date: Fri, 15 Dec 2023 13:02:06 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, 
    Wei Liu <wl@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH 9/9] xen: add SAF deviation for safe cast removal.
In-Reply-To: <698cb944-3e91-498c-99ba-ff0849723285@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312151127450.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <36e996b864853dba26a9c9fb9c9c674e92cc935e.1702555387.git.maria.celeste.cesario@bugseng.com> <b93417c7-1375-4bf4-ace2-d36bd63c8b0b@suse.com> <alpine.DEB.2.22.394.2312141355391.3175268@ubuntu-linux-20-04-desktop>
 <698cb944-3e91-498c-99ba-ff0849723285@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, 15 Dec 2023, Jan Beulich wrote:
> On 14.12.2023 23:04, Stefano Stabellini wrote:
> > On Thu, 14 Dec 2023, Jan Beulich wrote:
> >> On 14.12.2023 13:07, Simone Ballarin wrote:
> >>> --- a/docs/misra/safe.json
> >>> +++ b/docs/misra/safe.json
> >>> @@ -28,6 +28,14 @@
> >>>          },
> >>>          {
> >>>              "id": "SAF-3-safe",
> >>> +            "analyser": {
> >>> +                "eclair": "MC3R1.R11.8"
> >>> +            },
> >>> +            "name": "MC3R1.R11.8: removal of const qualifier to comply with function signature",
> >>> +            "text": "It is safe to cast away const qualifiers to comply with function signature if the function does not modify the pointee."
> >>
> >> I'm not happy with this description, as it invites for all sorts of abuse.
> >> Yet I'm also puzzled that ...
> > 
> > We can improve the language but the concept would still be the same. For
> > instance:
> > 
> > A single function might or might not modify the pointee depending on
> > other function parameters (for instance a single function that could
> > either read or write depending on how it is called). It is safe to cast
> > away const qualifiers when passing a parameter to a function of this
> > type when the other parameters are triggering a read-only operation.
> 
> Right, but I think the next here needs to be setting as tight boundaries
> as possible: It should cover only this one specific pattern. Anything
> else would better get its own deviation, imo.

OK. What about:

A single function might or might not modify the pointee depending on
other function parameters, for instance a common pattern is to implement
one function that could either read or write depending on how it is
called. It is safe to cast away const qualifiers when passing a
parameter to a function following this pattern when the other parameters
are triggering a read-only operation.

Feel free to suggest a better wording.


> >>> --- a/xen/arch/x86/hvm/hvm.c
> >>> +++ b/xen/arch/x86/hvm/hvm.c
> >>> @@ -3413,6 +3413,7 @@ static enum hvm_translation_result __hvm_copy(
> >>>  enum hvm_translation_result hvm_copy_to_guest_phys(
> >>>      paddr_t paddr, const void *buf, unsigned int size, struct vcpu *v)
> >>>  {
> >>> +    /* SAF-3-safe */
> >>>      return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */,
> >>>                        paddr, size, v,
> >>>                        HVMCOPY_to_guest | HVMCOPY_phys, 0, NULL);
> >>
> >> ... this is the only place you then use it. Afaict some of Arm's copy_guest()
> >> callers ought to have a similar issue. If so, an enlarged patch should be
> >> discussed with a larger audience, to see how we collectively think we want to
> >> put this specific kind of deviation.
> > 
> > We have a similar problem, see xen/arch/arm/guestcopy.c
> > raw_copy_to_guest and raw_copy_from_guest.
> > 
> > I would use the SAF deviation there too.
> > 
> > In the case here, I think the comment "HVMCOPY_to_guest doesn't modify"
> > could be removed as it becomes redundant with SAF-3-safe, but I'll leave
> > it to you.
> 
> No, the comment cannot be removed: The SAF comment says exactly nothing
> until you go and look up its description. The two comments could be
> folded, though. Which is something I was trying to advocate for in
> general: Unless entirely obvious, what exactly it is that is "safe"
> would better be (briefly) stated in these SAF comments.

I agree with you


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 21:02:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 21:02:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655368.1023135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFKC-0003rD-O5; Fri, 15 Dec 2023 21:02:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655368.1023135; Fri, 15 Dec 2023 21:02: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 1rEFKC-0003r6-LM; Fri, 15 Dec 2023 21:02:24 +0000
Received: by outflank-mailman (input) for mailman id 655368;
 Fri, 15 Dec 2023 21:02: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=Stqq=H2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rEFKB-0003HQ-Hk
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 21:02:23 +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 3bdc4f1e-9b8d-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 22:02:20 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 6EDD6CE25AD;
 Fri, 15 Dec 2023 21:02:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 956D4C433C7;
 Fri, 15 Dec 2023 21:02:14 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3bdc4f1e-9b8d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702674135;
	bh=iXoPoN5b1cbk7caU/j7j0FXXkoKjie9kx4ARMYXyul8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=onK4HkDbrK/t7zH8xmwiZKmxIX2MV4tvdwPT8T7I1ZxePD9sa5aAS18riD20RiPZe
	 BWUxSmq52E+obbvoewhvIu2LIjPRQ3vidPn4lP071TMDC7sq4rjdcXe5KYMIlIg+72
	 gRG5BzlT9ek+z8ZRbxQZSBa4piMHEAoQSNn24b8azffRTeVudnARCyA0sIvsbaTGaZ
	 FHcKbj6G3qqQxZ9+Klt9sj86Jrhlaz+HUm0Co4ONX2AEwo+tk58ViIY1FuEJwvIEHv
	 hYOMOtYIOiMIoeglYsqIRP10GkWnKTIEHyM3JlvFUPim8y0cseqbNiQkeGPRvtJWTZ
	 sLpF5Jvr2/BMg==
Date: Fri, 15 Dec 2023 13:02:13 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Xen-devel <xen-devel@lists.xenproject.org>, 
    George Dunlap <George.Dunlap@citrix.com>, Jan Beulich <JBeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
    Julien Grall <julien@xen.org>, 
    Federico Serafini <federico.serafini@bugseng.com>
Subject: Re: [PATCH 1/2] driver/char: Drop run_in_exception_handler()
 ifdefary
In-Reply-To: <20231215181433.1588532-2-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2312151134270.3175268@ubuntu-linux-20-04-desktop>
References: <20231215181433.1588532-1-andrew.cooper3@citrix.com> <20231215181433.1588532-2-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Dec 2023, Andrew Cooper wrote:
> Since commit 60a9b0715055 ("xen: introduce CONFIG_GENERIC_BUG_FRAME"), the new
> common bug.h provides an implementation of run_in_exception_handler() in all
> cases, making the #else here dead.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Dec 15 21:02:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 21:02:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655371.1023145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFKY-0004XD-1Z; Fri, 15 Dec 2023 21:02:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655371.1023145; Fri, 15 Dec 2023 21:02:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFKX-0004WS-Tk; Fri, 15 Dec 2023 21:02:45 +0000
Received: by outflank-mailman (input) for mailman id 655371;
 Fri, 15 Dec 2023 21:02:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Stqq=H2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rEFKW-0003HQ-Iz
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 21:02:44 +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 48b6df3d-9b8d-11ee-9b0f-b553b5be7939;
 Fri, 15 Dec 2023 22:02:42 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 2C013CE2D95;
 Fri, 15 Dec 2023 21:02:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A4A1C433C7;
 Fri, 15 Dec 2023 21:02: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: 48b6df3d-9b8d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702674159;
	bh=C/xgDUM5yXFR5uoImC9gd6W6nfxkpEJQwSOEfxy6g9w=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=tzNl4cr/3DJa+9tOA1PHc+xhS7e3WeSawfLF5ukSP2aqpNa33zW6a6oGhWkBX3zx8
	 1cUcD2N2XPE1pzB8tvY7OoWJzvjD5LSZiCZ08qIkBUphb0DG+KsFlkdT5z0cx6s2Gn
	 s+Yc4XysUo2lq4WXtjUnr5fvM9jrx7SLPr7W8vbs3PeGL/1OtYf2q3+npykeOfVDl8
	 dFxtPG0uxnJI5cpSjcEVsYjh0WRkx3OViPw11I7TG3hTb53S3mOSzrM56tC9nI3rLb
	 a+EesSzfmdFg+5u2UvzsS2IilfhOX6gsFbtmwkv1cQ/mihTTWTQL6PrJfzoYppUzY+
	 1yg57oSoENvjQ==
Date: Fri, 15 Dec 2023 13:02:36 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [XEN PATCH 5/7] xen/arm: traps: add ASSERT_UNREACHABLE() where
 needed
In-Reply-To: <add58ef45d9cb970c2447f22443f50c8@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312151232580.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702283415.git.nicola.vetrini@bugseng.com> <394b69b769f2dc2461d2ddb0c7e037f4794eb244.1702283415.git.nicola.vetrini@bugseng.com> <08e3c8f0-772e-4c08-9afc-c623f19c85e3@xen.org> <240c97ed-ce27-406d-84ad-68b72e999294@xen.org>
 <5ad1c008182bc9f23e1b37b0d6e35e4c@bugseng.com> <2b4eec7c-3657-4542-96b9-56b272e8723b@xen.org> <alpine.DEB.2.22.394.2312141418160.3175268@ubuntu-linux-20-04-desktop> <add58ef45d9cb970c2447f22443f50c8@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Dec 2023, Nicola Vetrini wrote:
> On 2023-12-14 23:32, Stefano Stabellini wrote:
> > On Thu, 14 Dec 2023, Julien Grall wrote:
> > > Hi,
> > > 
> > > On 13/12/2023 14:02, Nicola Vetrini wrote:
> > > > On 2023-12-12 16:49, Julien Grall wrote:
> > > > > Hi,
> > > > >
> > > > > On 11/12/2023 12:32, Julien Grall wrote:
> > > > > > Hi,
> > > > > >
> > > > > > On 11/12/2023 10:30, Nicola Vetrini wrote:
> > > > > > > The branches of the switch after a call to 'do_unexpected_trap'
> > > > > > > cannot return, but there is one path that may return, hence
> > > > > > > only some clauses are marked with ASSERT_UNREACHABLE().
> > > > > > I don't understand why this is necessary. The code should never be
> > > > > > reachable because do_unexpected_trap() is a noreturn().
> > > > >
> > > > > From the matrix discussion, it wasn't clear what was my position on
> > > this
> > > > > patch.
> > > > >
> > > > > I would much prefer if the breaks are kept. I could accept:
> > > > >
> > > > > ASSERT_UNREACHABLE();
> > > > > break;
> > > > >
> > > > > But this solution is a Nack because if you are concerned about
> > > functions
> > > > > like do_unexpected_trap() to return by mistaken, then it needs to also
> > > be
> > > > > safe in production.
> > > > >
> > > > > The current proposal is not safe.
> > 
> > I re-read the email thread. I also do not think that this is useful:
> > 
> >          do_unexpected_trap("SVE trap at EL2", regs);
> > -        break;
> > +        ASSERT_UNREACHABLE();
> > 
> > I also do not think that we should be concerned about functions like
> > do_unexpected_trap() to return by mistaken.
> > 
> > That said, what is the problem from MISRA point of view that we are
> > trying to fix? Is the only problem the presence of break; after the call
> > to a noreturn function?
> > 
> > If that's not allowed, I would suggest to do this:
> > 
> > 
> >          do_unexpected_trap("SVE trap at EL2", regs);
> > -        break;
> > +        /* break; */
> > 
> > 
> > Or deviate "break" globally as it doesn't seem to be a safety risk in my
> > opinion. If nothing else, it should make the code a bit safer because in
> > case of mistakes in do_unexpected_trap, at least we would continue to
> > follow a more reasonable code path rather than blindly falling through
> > the next switch case by accident.
> > 
> > 
> 
> That doesn't seem like a good idea to deviate just "break". However, Julien's
> earlier proposal
> 
> ASSERT_UNREACHABLE();
> break;
> 
> is ok, though it could be shrunk in a macro
> 
> #define unreachable_break ASSERT_UNREACHABLE(); break;
> 
> or just
> 
> #define unreachable_break break;
> 
> so that "unreachable_break" can be deviated.

Let's just go with:

ASSERT_UNREACHABLE();
break;

If Julien is OK with it too.


Just to make sure we are all aligned on what the problem and solution
are:
- we are not concerned that do_unexpected_trap could return
- it is just forbidden to have any code after something that doesn't
  return
- not even a break;
- so we need to use ASSERT_UNREACHABLE() as a marker to tell ECLAIR to
  ignore the violation


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 21:02:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 21:02:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655372.1023155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFKi-0004wH-Dl; Fri, 15 Dec 2023 21:02:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655372.1023155; Fri, 15 Dec 2023 21: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 1rEFKi-0004w7-AT; Fri, 15 Dec 2023 21:02:56 +0000
Received: by outflank-mailman (input) for mailman id 655372;
 Fri, 15 Dec 2023 21:02:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Stqq=H2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rEFKg-0002dN-LF
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 21:02:54 +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 4f894ce3-9b8d-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 22:02:53 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 8FE2CCE2D95;
 Fri, 15 Dec 2023 21:02:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 79F39C433C8;
 Fri, 15 Dec 2023 21:02:49 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f894ce3-9b8d-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702674170;
	bh=/JGqxQU/28Q4Bq843zBis3vY9fYQ4hwln7idLiWAy9k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=l1lakN1HqL8W2ro/fXHMG8l32bX2DCwvFDl+KLOTIl3Q9gYrlTsXx2WVem1QE8quB
	 EPOZQYvJR7lme2VFTQdbaajvCH8PW6/DwWgw1thL/hPedHJJDrj4hjWL8LPmMC2zT0
	 ZtlnDR9mc6p0h117OXp4geKHR/aFy5kJT2RqQl6as1dujcf35w/Ai3YWKqbyau6/SZ
	 DBCN+UfYtuoguC8QmBwQtt0NbUTgQ0TUmyeUHYE1uIumpX4aZCyFNfvuSQsAsPuD9S
	 smoVfJRvXHccvYxiCtHTFrXKNFtO38f6kFKENdfiZdfqa+dAe+U4tHdFXFOZYfHfSN
	 aM57rtTwuPpKQ==
Date: Fri, 15 Dec 2023 13:02:48 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    jbeulich@suse.com, george.dunlap@citrix.com, bertrand.marquis@arm.com, 
    roger.pau@citrix.com, roberto.bagnara@bugseng.com, 
    federico.serafini@bugseng.com
Subject: Re: [PATCH v2] docs/misra/rules.rst: add Rule 17.1
In-Reply-To: <d7b880b2-10ec-4c3d-bf12-1c29995857d6@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312151251450.3175268@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2312081738100.1703076@ubuntu-linux-20-04-desktop> <d7b880b2-10ec-4c3d-bf12-1c29995857d6@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Dec 2023, Julien Grall wrote:
> Hi Stefano,
> 
> On 09/12/2023 01:39, Stefano Stabellini wrote:
> > 
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > ---
> > Changes in v2:
> > - separated 17.1 in its own patch
> > - add a comment
> > 
> > diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> > index 8a659d8d47..f29b4c3d9a 100644
> > --- a/docs/misra/rules.rst
> > +++ b/docs/misra/rules.rst
> > @@ -189,6 +189,12 @@ existing codebase are work-in-progress.
> >        - A switch-expression shall not have essentially Boolean type
> >        -
> >   +   * - `Rule 17.1
> > <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
> > +     - Required
> > +     - The features of <stdarg.h> shall not be used
> > +     - It is understood that in some limited circumstances <stdarg.h> is
> > +       appropriate to use, such as the implementation of printk.
> 
> The last bullet point is unclear to me. You don't define what "appropriate"
> means here. So who is going to decide? Also, how is this going to be deviated?
> 
> Possibly the solution here is to remove the last bullet point and have a
> paragraph in deviations.rst explaining why we are using va_args.

Actually, I agree with you. I added the last bullet to address Jan's
concern:
https://marc.info/?l=xen-devel&m=170191695511513
https://marc.info/?l=xen-devel&m=170193528120968

This was my original reply:

"We agreed that in certain situations stdarg.h is OK to use and in those
cases we would add a deviation. Would you like me to add something to
that effect here? I could do that but it would sound a bit vague.  Also
if we want to specify a project-wide deviation it would be better
documented in docs/misra/deviations.rst. I would leave Rule 17.1 without
a note."

My preference is still to remove the last bullet (because too generic)
and add any specific information to deviations.rst as usual.

Julien, would you be OK with this patch if I remove the last bullet and
leave it blank?


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 21:03:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 21:03:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655374.1023165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFKo-0005Je-O8; Fri, 15 Dec 2023 21:03:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655374.1023165; Fri, 15 Dec 2023 21:03:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFKo-0005JR-IK; Fri, 15 Dec 2023 21:03:02 +0000
Received: by outflank-mailman (input) for mailman id 655374;
 Fri, 15 Dec 2023 21:03:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Stqq=H2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rEFKn-0002dN-F0
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 21:03:01 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5410f6d7-9b8d-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 22:03:00 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 80B456278C;
 Fri, 15 Dec 2023 21:02:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5CDDC433C7;
 Fri, 15 Dec 2023 21:02: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: 5410f6d7-9b8d-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702674179;
	bh=CwavZH985tFGH+nz4igt66M3LHxD7KqL6hRpkZVWPgg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Gid0m339LmMTPHhxvA0/VQzJfaVHX2i3ND24FEcNF+dXYLbeowmmqFoeuIo0fh24y
	 ycGBC3KItIaorWzPujcnqHVV64hsOpIeTQR2l87NlWC7+rTnP+DC2onK8NWh2mgNW8
	 hjqPJXS7vcO+tjIsSvDtx3dgcdSLmeviagwzdtG//f3PqnRFGX0g7y85etw4FgUBbJ
	 Caa4rojQkf6UcAZUncF8Z+XVohfQFdtVcqOjanafDMssUj3qwDVliJcJ1sYbaDJHNH
	 gtofYBK11p9QFaIvU7vw1bl9j38pimh5p5OdfTpiHBxK8LtyNO6+m133CaihUZvbia
	 l/kN4RI7+Kg4w==
Date: Fri, 15 Dec 2023 13:02:56 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH] automation/eclair: update configuration of MISRA
 C:2012 Rule 5.6
In-Reply-To: <796d26d3-5479-40f8-b640-bdb704347139@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312151256300.3175268@ubuntu-linux-20-04-desktop>
References: <ea8f782e7695b3ee235a89a8575a0af018bc85e4.1702629422.git.federico.serafini@bugseng.com> <796d26d3-5479-40f8-b640-bdb704347139@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Dec 2023, Federico Serafini wrote:
> On 15/12/23 10:12, Federico Serafini wrote:
> > Deviate typedef names that are delberately defined multiple times.
> > 
> > Update docs/misra/deviations.rst accordingly.
> > 
> > Tag Rule 5.6 as clean.
> > 
> > Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> > ---
> >   automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
> >   automation/eclair_analysis/ECLAIR/tagging.ecl    | 2 +-
> >   docs/misra/deviations.rst                        | 7 +++++++
> >   3 files changed, 14 insertions(+), 1 deletion(-)
> > 
> > diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl
> > b/automation/eclair_analysis/ECLAIR/deviations.ecl
> > index 683f2bbfe8..195ddddde8 100644
> > --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> > +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> > @@ -90,6 +90,12 @@ depending on the guest."
> >   -config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
> >   -doc_end
> >   +-doc_begin="On X86, the types \"guest_intpte_t\", \"guest_l1e_t\" and
> > +\"guest_l2e_t\" are deliberately defined multiple times, depending on the
> > +number of guest paging levels."
> > +-config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/include/asm/guest_pt\\.h$)))&&any_area(any_loc(text(^.*(guest_intpte_t|guest_l[12]e_t).*$)))"}
> > +-doc_end
> > +
> >   -doc_begin="The following files are imported from the gnu-efi package."
> >   -file_tag+={adopted_r5_6,"^xen/include/efi/.*$"}
> >   -file_tag+={adopted_r5_6,"^xen/arch/.*/include/asm/.*/efibind\\.h$"}
> > diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl
> > b/automation/eclair_analysis/ECLAIR/tagging.ecl
> > index d5d3bff396..900c532196 100644
> > --- a/automation/eclair_analysis/ECLAIR/tagging.ecl
> > +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
> > @@ -30,7 +30,7 @@
> >     -doc_begin="Clean guidelines: new violations for these guidelines are
> > not accepted."
> > 
> > --service_selector={clean_guidelines_common,"MC3R1.D1.1||MC3R1.D2.1||MC3R1.D4.11||MC3R1.D4.14||MC3R1.R1.1||MC3R1.R1.3||MC3R1.R1.4||MC3R1.R2.2||MC3R1.R3.1||MC3R1.R3.2||MC3R1.R4.1||MC3R1.R4.2||MC3R1.R5.1||MC3R1.R5.2||MC3R1.R5.4||MC3R1.R6.1||MC3R1.R6.2||MC3R1.R7.1||MC3R1.R8.1||MC3R1.R8.5||MC3R1.R8.6||MC3R1.R8.8||MC3R1.R8.10||MC3R1.R8.12||MC3R1.R8.14||MC3R1.R9.2||MC3R1.R9.4||MC3R1.R9.5||MC3R1.R12.5||MC3R1.R17.3||MC3R1.R17.4||MC3R1.R17.6||MC3R1.R20.13||MC3R1.R20.14||MC3R1.R21.13||MC3R1.R21.19||MC3R1.R21.21||MC3R1.R22.2||MC3R1.R22.4||MC3R1.R22.5||MC3R1.R22.6"
> > +-service_selector={clean_guidelines_common,"MC3R1.D1.1||MC3R1.D2.1||MC3R1.D4.11||MC3R1.D4.14||MC3R1.R1.1||MC3R1.R1.3||MC3R1.R1.4||MC3R1.R2.2||MC3R1.R3.1||MC3R1.R3.2||MC3R1.R4.1||MC3R1.R4.2||MC3R1.R5.1||MC3R1.R5.2||MC3R1.R5.4||MC3R1.R5.6||MC3R1.R6.1||MC3R1.R6.2||MC3R1.R7.1||MC3R1.R8.1||MC3R1.R8.5||MC3R1.R8.6||MC3R1.R8.8||MC3R1.R8.10||MC3R1.R8.12||MC3R1.R8.14||MC3R1.R9.2||MC3R1.R9.4||MC3R1.R9.5||MC3R1.R12.5||MC3R1.R17.3||MC3R1.R17.4||MC3R1.R17.6||MC3R1.R20.13||MC3R1.R20.14||MC3R1.R21.13||MC3R1.R21.19||MC3R1.R21.21||MC3R1.R22.2||MC3R1.R22.4||MC3R1.R22.5||MC3R1.R22.6"
> >   }
> >     -setq=target,getenv("XEN_TARGET_ARCH")
> > diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> > index eda3c8100c..5632685190 100644
> > --- a/docs/misra/deviations.rst
> > +++ b/docs/misra/deviations.rst
> > @@ -103,6 +103,13 @@ Deviations related to MISRA C:2012 Rules:
> >          type of guest to service.
> >        - Tagged as `deliberate` for ECLAIR.
> >   +   * - R5.6
> > +     - On X86, some types are deliberately defined multiple times,
> > depending on
> > +       the number of guest paging levels.
> > +     - Tagged as `deliberate` for ECLAIR. Such types are:
> > +         - guest_intpte
> 
> Typo: missing "_t"

Typo aside:

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


> > +         - guest_l[12]e_t
> > +
> >      * - R5.6
> >        - Some files are not subject to respect MISRA rules at
> >          the moment, but, among these out-of-scope files, there are
> > definitions
> 
> -- 
> Federico Serafini, M.Sc.
> 
> Software Engineer, BUGSENG (http://bugseng.com)
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 21:03:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 21:03:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655377.1023175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFKu-0005oG-U0; Fri, 15 Dec 2023 21:03:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655377.1023175; Fri, 15 Dec 2023 21:03:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEFKu-0005ny-QS; Fri, 15 Dec 2023 21:03:08 +0000
Received: by outflank-mailman (input) for mailman id 655377;
 Fri, 15 Dec 2023 21:03:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Stqq=H2=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rEFKt-0002dN-GL
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 21:03:07 +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 575f6fc5-9b8d-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 22:03:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id D7B6BCE2D95;
 Fri, 15 Dec 2023 21:03:04 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8482C433C8;
 Fri, 15 Dec 2023 21:03:02 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 575f6fc5-9b8d-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702674184;
	bh=xAVz5tJ8KI4Ofi8ERilBIDhJejnxCzaIifNeF/zGzm0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=CY3XZ7MWZi2bDSK4hlfcLULPDGoLEWol5N/u6UIGbW+JCSprD1MxroL04Og+opI23
	 D0TDzSs3w4cgK5y4Yw0plzxim+PeBtfO1fBZuksCZarsACmB6mc+E+3++nwxSbFZ3S
	 AZ1yUeFC1QESqCSgQEwa+DPW93lzAZmdkXYibdCpLDDx7t3iH4TOlI7QVYRBx5ghp7
	 3zRMJ2LEI65Z4X0c9ZIjJ4eVq0b/tRdlxfpZ4p2E3e2jQnUjNyE/EzoxhRhSDlleFy
	 v+pDSsWIGyDQ7emWO1YWOF4sofGwBZhVYUhuI6A7qLcSNyUQku0jUM8TqBmYa4Lawj
	 0K06/+QjAFWRA==
Date: Fri, 15 Dec 2023 13:03:01 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012
 Rule 16.3
In-Reply-To: <7b07ed4a2a87c2774b469eb0fa280c19f945b3a4.1702631924.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312151258360.3175268@ubuntu-linux-20-04-desktop>
References: <7b07ed4a2a87c2774b469eb0fa280c19f945b3a4.1702631924.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 Fri, 15 Dec 2023, Federico Serafini wrote:
> MISRA C:2012 Rule 16.3 states that an unconditional break statement
> shall terminate every switch-clause.
> 
> Update ECLAIR configuration to take into account:
>   - continue, goto, return statements;
>   - functions that do not give the control back;
>   - fallthrough pseudo-keyword;
>   - macro BUG();
>   - comments.
> 
> Update docs/misra/deviations.rst accordingly.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

This is much sharper and better than before, thanks Federico!


> ---
>  .../eclair_analysis/ECLAIR/deviations.ecl     | 28 +++++++++++++++++++
>  docs/misra/deviations.rst                     | 28 +++++++++++++++++++
>  2 files changed, 56 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 683f2bbfe8..e27d840fe4 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -327,6 +327,34 @@ therefore have the same behavior of a boolean"
>  -config=MC3R1.R14.4,etypes+={deliberate, "stmt(child(cond,child(expr,ref(^<?domain>?::is_dying$))))","src_type(enum)"}
>  -doc_end
>  
> +#
> +# Series 16.
> +#
> +
> +-doc_begin="Switch clauses ending with continue, goto, return statements are
> +safe."
> +-config=MC3R1.R16.3,terminals+={safe, "node(continue_stmt||goto_stmt||return_stmt)"}
> +-doc_end
> +
> +-doc_begin="Switch clauses ending with a call to a function that does not give
> +the control back are safe."
> +-config=MC3R1.R16.3,terminals+={safe, "call(property(noreturn))"}
> +-doc_end
> +
> +-doc_begin="Switch clauses ending with pseudo-keyword \"fallthrough\" are
> +safe."
> +-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(/fallthrough;/))))"}
> +-doc_end
> +
> +-doc_begin="Switch clauses ending with failure method \"BUG()\" are 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_end
> +
>  #
>  # Series 20.
>  #
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index eda3c8100c..d593be81b9 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -276,6 +276,34 @@ Deviations related to MISRA C:2012 Rules:
>         therefore have the same behavior of a boolean.
>       - Project-wide deviation; tagged as `deliberate` for ECLAIR.
>  
> +   * - R16.3
> +     - Switch clauses ending with continue, goto, return statements are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Switch clauses ending with a call to a function that does not give
> +       the control back are safe.

NIT: it might be good to add:

  (noreturn)

to the statement for clarity but it is good enough already


> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Switch clauses ending with failure method \"BUG()\" are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Existing switch clauses not ending with the break statement are safe if
> +       an explicit comment indicating the fallthrough intention is present.
> +       However, the use of such comments in new code is deprecated:
> +       pseudo-keyword "fallthrough" shall be used.

          ^NIT: the pseudo-keyword

both changes could be done on commit

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


> +     - Tagged as `safe` for ECLAIR. The accepted comments are:
> +         - /\* fall through \*/
> +         - /\* fall through. \*/
> +         - /\* fallthrough \*/
> +         - /\* fallthrough. \*/
> +         - /\* Fall through \*/
> +         - /\* Fall through. \*/
> +         - /\* Fallthrough \*/
> +         - /\* Fallthrough. \*/
> +
>     * - R20.7
>       - Code violating Rule 20.7 is safe when macro parameters are used:
>         (1) as function arguments;
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Fri Dec 15 22:38:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Dec 2023 22:38:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655397.1023185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEGol-00068l-E7; Fri, 15 Dec 2023 22:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655397.1023185; Fri, 15 Dec 2023 22: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 1rEGol-00068e-Ai; Fri, 15 Dec 2023 22:38:03 +0000
Received: by outflank-mailman (input) for mailman id 655397;
 Fri, 15 Dec 2023 22:38: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=JTvD=H2=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rEGoj-00068Y-Jt
 for xen-devel@lists.xenproject.org; Fri, 15 Dec 2023 22:38:01 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 98e286aa-9b9a-11ee-98ea-6d05b1d4d9a1;
 Fri, 15 Dec 2023 23:37:59 +0100 (CET)
Received: from mg.gitlab.com (16.226.74.34.bc.googleusercontent.com
 [34.74.226.16]) by
 35c854c909fa with SMTP id 657cd545e44f46f86e70fbab (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Fri, 15 Dec 2023 22:37:57 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 98e286aa-9b9a-11ee-98ea-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702679877; x=1702687077; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=AiLk5dm4PMfb6I29YxWA8PXGHcKEMQRdGyE8Raq72l8=;
 b=Dp1PmkGXzumIREdRIWvc/UcrfvFymSLAIkDkvCsTP0LJykr5kDmfDvA8iNXKcejye5sOyCNVoWw8pbVEZouw35kiK1SaPp0SXfJ5yVjRVbrkcvoKB2S4MIC5DdxNhrCPUTAY83ZsxJRGzKtmVM1UQIe26iDZ/rnaYZgj+ILzLFM=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Fri, 15 Dec 2023 22:37:57 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <657cd54546e19_2c95484601e2@gitlab-sidekiq-catchall-v2-5b75896b6c-tklpv.mail>
Subject: xen | Successful pipeline for staging | a60067f3
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_657cd5453c871_2c9548460025";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1108858445
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_657cd5453c871_2c9548460025
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1108858445 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: a60067f3 ( https://gitlab.com/xen-project/xen/-/commit/a60067f39882a4f40547fc0cd8177bac89cb01b7 )
Commit Message: docs/misra/rules.rst: add Rule 16.2

Signed-off...
Commit Author: Stefano Stabellini



Pipeline #1108858445 ( https://gitlab.com/xen-project/xen/-/pipelines/1108858445 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | a60067f3</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1108858445 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/a60067f39882a4f405=
47fc0cd8177bac89cb01b7" style=3D"color: #3777b0; text-decoration: none;">=
a60067f3</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
docs/misra/rules.rst: add Rule 16.2

Signed-off...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/50b82a64e2a9f930cabefa3948871101?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Stefano Stabellini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/110885=
8445" style=3D"color: #3777b0; text-decoration: none;">#1108858445</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_657cd5453c871_2c9548460025--


From xen-devel-bounces@lists.xenproject.org Sat Dec 16 00:31:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Dec 2023 00:31:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655438.1023195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEIaY-0004kM-Vf; Sat, 16 Dec 2023 00:31:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655438.1023195; Sat, 16 Dec 2023 00: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 1rEIaY-0004kF-Rz; Sat, 16 Dec 2023 00:31:30 +0000
Received: by outflank-mailman (input) for mailman id 655438;
 Sat, 16 Dec 2023 00:31: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 1rEIaX-0004k5-76; Sat, 16 Dec 2023 00:31: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 1rEIaW-0003x5-Pw; Sat, 16 Dec 2023 00:31: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 1rEIaW-0006U1-BF; Sat, 16 Dec 2023 00:31:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEIaW-0006xm-Ah; Sat, 16 Dec 2023 00:31:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=SPDemTFh0UGQ0tPDN7wD0AqxsQ+QN1PpW8HDgdFhLeU=; b=tmF629fR4AF92qW95IdTVF+sMc
	k/VVVzaimYEJbwaAATmbQXr39YIX+6s8xMyQNb/DWWwENBB1Kg7oFRj6+M8oKH03DhYI2p4PLmYTP
	fw3cFEx7ZtaATcVUHl7nqAO+NFY4b9I1c1ma1jwYwQ2rvUpw5lH0APJqaRpblFkO/JgE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184147-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184147: 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=a60067f39882a4f40547fc0cd8177bac89cb01b7
X-Osstest-Versions-That:
    xen=cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 16 Dec 2023 00:31:28 +0000

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

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                  a60067f39882a4f40547fc0cd8177bac89cb01b7
baseline version:
 xen                  cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce

Last test of basis   184135  2023-12-14 10:03:56 Z    1 days
Testing same since   184147  2023-12-15 22:03:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  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
   cad6f9a4c1..a60067f398  a60067f39882a4f40547fc0cd8177bac89cb01b7 -> smoke


From xen-devel-bounces@lists.xenproject.org Sat Dec 16 03:45:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Dec 2023 03:45:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655446.1023205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rELbg-00077S-HB; Sat, 16 Dec 2023 03:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655446.1023205; Sat, 16 Dec 2023 03: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 1rELbg-00077L-EX; Sat, 16 Dec 2023 03:44:52 +0000
Received: by outflank-mailman (input) for mailman id 655446;
 Sat, 16 Dec 2023 03: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 1rELbf-000779-4n; Sat, 16 Dec 2023 03: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 1rELbe-0006DR-Oo; Sat, 16 Dec 2023 03: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 1rELbe-0005Fq-4T; Sat, 16 Dec 2023 03:44:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rELbe-0000Fs-3X; Sat, 16 Dec 2023 03: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=x/rFXGBAaG4w/pp5gO9mlxSuDVip/nQaILCbbhp0fZ4=; b=XlzmGDAoNf9Sc6ASDiW8+jV41I
	wcgU+Z2/eyWu1hU90up0RdCy8X3WwFble2DVyI8LTXaDg6Xh6sgoDWm08D03DwDHrxuT4SAK1tT4l
	rXcYcAVzxjv6RFH55pyt+Upd4f5V/GF3YZ+ohFMkxhyEmYBq6u/JF20JnreHJCckKNek=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184146-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184146: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-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: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-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-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-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: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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=3f7168591ebf7bbdb91797d02b1afaf00a4289b1
X-Osstest-Versions-That:
    linux=c7402612e2e61b76177f22e6e7f705adcbecc6fe
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 16 Dec 2023 03:44:50 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184143
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184143
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184143
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184143
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184143
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184143
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184143
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184143
 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-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          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-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                3f7168591ebf7bbdb91797d02b1afaf00a4289b1
baseline version:
 linux                c7402612e2e61b76177f22e6e7f705adcbecc6fe

Last test of basis   184143  2023-12-14 23:28:11 Z    1 days
Testing same since   184146  2023-12-15 12:39:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Arnold Gozum <arngozum@gmail.com>
  Hans de Goede <hdegoede@redhat.com>
  Ilpo JÃ¤rvinen <ilpo.jarvinen@linux.intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Randy Dunlap <rdunlap@infradead.org>
  Steve French <stfrench@microsoft.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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   c7402612e2e6..3f7168591ebf  3f7168591ebf7bbdb91797d02b1afaf00a4289b1 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sat Dec 16 07:02:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Dec 2023 07:02:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655452.1023215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEOgP-0003MT-MJ; Sat, 16 Dec 2023 07:01:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655452.1023215; Sat, 16 Dec 2023 07: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 1rEOgP-0003MM-Iu; Sat, 16 Dec 2023 07:01:57 +0000
Received: by outflank-mailman (input) for mailman id 655452;
 Sat, 16 Dec 2023 07: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=7H9O=H3=neowutran.ovh=xen@srs-se1.protection.inumbo.net>)
 id 1rEOgN-0003MG-Or
 for xen-devel@lists.xenproject.org; Sat, 16 Dec 2023 07:01:56 +0000
Received: from neowutran.ovh (core.neowutran.ovh [51.83.40.211])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd15b35c-9be0-11ee-9b0f-b553b5be7939;
 Sat, 16 Dec 2023 08:01:51 +0100 (CET)
Received: from neowutran.ovh (maisonhome.neowutran.ovh [82.65.3.49])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384)
 (No client certificate requested)
 by neowutran.ovh (Postfix) with ESMTPSA id 53AD26107A
 for <xen-devel@lists.xenproject.org>; Sat, 16 Dec 2023 07:01: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: fd15b35c-9be0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=neowutran.ovh; s=mail;
	t=1702710110; bh=Aovk/JMxhTbP1pVB4wFTtzzp3nMrjuWwL/mImbaWQhQ=;
	h=Date:From:To:Subject;
	b=lyTxb5Th4D1DMJYoDji0A/RDCPtAgskTsEh1S/vPObes/ejsBbBMLoywkcu9sMJ8V
	 3HMNvz92yRxQ7Q1iYtPTQMbCxMs6qd18Et5jv3TALzCi9TmS8VZieyox/JLZTM9Im+
	 2PwEazAG+HXccocC24MnqwLkPMbtDC4RuSRg9J/Tc+UkIjNaRZ/0XuMFH5upge6Ll2
	 7uOQGnJY2WKRpjzxF5OLP6I05qmXqxIkhtRdwixOdwFWmBO7a/zWNCMR+pkxhe+HcY
	 o5sPv+2xi3wItcPXXGcVxk77Xn03T8g+UZom6LbZeTiSrhuSNh77S0/N8DxQBCyiih
	 ApOtzjOB1lnagOTr8Ni2vh+fpoG0dID2v9rIORArwzDutAVwe7W/TKe3K85//t1XI6
	 LCwshhmqfHIJlEEM86al8m7HL1BekuepjMw0YrXMJ0V8Zd+c+LycZ0dCuPVPDLxMDw
	 zmPMKEZjpYN+e7J9QAjsgHLk+Ft2xakRB9d3pEtEVrYJQH6/VCcLEBrJLR8om1AMow
	 MDAm2eoALJRdsrrtY/3NBVHApzl4ksI7hbIkL3Wh5SoCG+Wfds0b7gnSiu3uow5Zx4
	 dR1BcGvkscW4KOLxvJlHMGFtMhvCtWlIRxxHKxGhwW0aJ3LVWr4Wtn4qWHn+Rl881w
	 956QYWJkHfUs3Yl09FXJ5bt0=
Date: Sat, 16 Dec 2023 08:01:32 +0100
From: Neowutran <xen@neowutran.ovh>
To: xen-devel@lists.xenproject.org
Subject: hvmloader - allow_memory_relocate overlaps
Message-ID: <7oe275z3eap7rhdwmrm4mvqnjnhrpag5cjwnfvwsf7rchhkyjv@pd3abzwdhg6v>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

I am wondering if the variable "allow_memory_relocate" is still
relevant today and if its default value is still relevant. 
Should it be defined to 0 by default instead of 1 (it seems to be a
workaround for qemu-traditional, so maybe an outdated default value ? ) ? 

Code extract: 

tools/firmware/hvmloader/pci.c 
"
   /*
     * Do we allow hvmloader to relocate guest memory in order to
     * increase the size of the lowmem MMIO hole?  Defaulting to 1
     * here will
 mean that non-libxl toolstacks (including xend and
     * home-grown ones) means that those using qemu-xen will still
     * experience the memory relocation bug described below; but it
     * also means that those using q 
emu-traditional will *not*
     * experience any change; and it also means that there is a
     * work-around for those using qemu-xen, namely switching to
     * qemu-traditional.
     *
     * If we defaulted to 0, and failing to resize the hole caused any
     * problems with qemu-traditional, then there is no work-around.
     *
     * Since xend can only use qemu-traditional, I think this is the
     * option that will have the least impact.
     */
    bool allow_memory_relocate = 1;
"

"
        /*
         * At the moment qemu-xen can't deal with relocated memory regions.
         * It's too close to the release to make a proper fix; for now,
         * only allow t
he MMIO hole to grow large enough to move guest memory
         * if we're running qemu-traditional.  Items that don't fit will be
         * relocated into the 64-bit address space.
         *
         * This loop now does the following:
         * - If allow_memory_relocate, increase the MMIO hole until it's
         *   big enough, or  
until it's 2GiB
         * - If !allow_memory_relocate, increase the MMIO hole until it's
         *   big enough, or until it's 2GiB, or until it overlaps guest
         *   memory
         */
        while ( (mmio_total > (pci_mem_end - pci_mem_start))
                && ((pci_mem_start << 1) != 0)
                && (allow_memory_relocate
                    || (((pci_mem_start << 1) >> PAGE_SHIFT)
                        >= hvm_info->low_mem_pgend)) )
            pci_mem_start <<= 1;
"

The issue it cause is documented in the source code: guest memory can
be trashed by the hvmloader. 

Due to this issue, it is impossible to passthrough a large PCI device to a HVM with a lot of ram.
(https://github.com/QubesOS/qubes-issues/issues/4321). 

(Forcing "allow_memory_relocate" to be 0 seems to solve the issue
linked)



Thanks, 
Neowutran
 


From xen-devel-bounces@lists.xenproject.org Sat Dec 16 07:02:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Dec 2023 07:02:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655462.1023225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEOhF-0003rj-Vb; Sat, 16 Dec 2023 07:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655462.1023225; Sat, 16 Dec 2023 07:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEOhF-0003rc-Ri; Sat, 16 Dec 2023 07:02:49 +0000
Received: by outflank-mailman (input) for mailman id 655462;
 Sat, 16 Dec 2023 07:02:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fbHy=H3=intel.com=xin3.li@srs-se1.protection.inumbo.net>)
 id 1rEOhD-0003kT-Rd
 for xen-devel@lists.xenproject.org; Sat, 16 Dec 2023 07:02:48 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c644f0b-9be1-11ee-98eb-6d05b1d4d9a1;
 Sat, 16 Dec 2023 08:02:46 +0100 (CET)
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 15 Dec 2023 23:02:43 -0800
Received: from unknown (HELO fred..) ([172.25.112.68])
 by fmsmga002.fm.intel.com with ESMTP; 15 Dec 2023 23:02:42 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c644f0b-9be1-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1702710166; x=1734246166;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=lOQJTvu9nXAtsh+1v9ZBLjUIH0wLI8goSM/VimYjQg0=;
  b=a+cjP13j0BNexUZ2LWHhTadjishd10PxwzJJKF2dTgp1WZDSvf5sS6nA
   SL38ayFqIfhjiRbFt2fSozGxt6q+WrTOVR/ecf64kIMzxE6esei8O5Z8R
   MujkZi5bdI3Lhl5LvA6biASvf0thcCPY/p3j5oOSnBj4cXDElrffYiZMr
   6pjXOpxU/1dBAvdGv+g+TeVUN9xbjYwGGjlwmdK4NcObytGdxwIZ8TVHo
   qfjaJAKqhktzMeYccftv9/YxcIbY5gDI0+GkfHEBZ2//efFiGQcw1Rh66
   ZpKaGPAhNP3vDGbp6KYcQe5hqMvWpJTe+ga2Fm1ZcsyLEMwVxFY70GIFm
   Q==;
X-IronPort-AV: E=McAfee;i="6600,9927,10925"; a="375515994"
X-IronPort-AV: E=Sophos;i="6.04,281,1695711600"; 
   d="scan'208";a="375515994"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10925"; a="893168964"
X-IronPort-AV: E=Sophos;i="6.04,281,1695711600"; 
   d="scan'208";a="893168964"
From: Xin Li <xin3.li@intel.com>
To: linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-edac@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	luto@kernel.org,
	pbonzini@redhat.com,
	seanjc@google.com,
	peterz@infradead.org,
	jgross@suse.com,
	ravi.v.shankar@intel.com,
	mhiramat@kernel.org,
	andrew.cooper3@citrix.com,
	jiangshanlai@gmail.com,
	nik.borisov@suse.com,
	shan.kang@intel.com
Subject: [PATCH v13A 24/35] x86/fred: Add a NMI entry stub for FRED
Date: Fri, 15 Dec 2023 22:31:39 -0800
Message-ID: <20231216063139.25567-1-xin3.li@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <SA1PR11MB673465C969A6554B8574157EA893A@SA1PR11MB6734.namprd11.prod.outlook.com>
References: <SA1PR11MB673465C969A6554B8574157EA893A@SA1PR11MB6734.namprd11.prod.outlook.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

On a FRED system, NMIs nest both with themselves and faults, transient
information is saved into the stack frame, and NMI unblocking only
happens when the stack frame indicates that so should happen.

Thus, the NMI entry stub for FRED is really quite small...

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Tested-by: Shan Kang <shan.kang@intel.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
---

Changes since v13:
* Save and restore %cr2 upon entering and leaving the FRED NMI handler
  (H. Peter Anvin).
* Remove an unnecessary check "IS_ENABLED(CONFIG_SMP)" (H. Peter Anvin).
* Sync a microcode change to the IDT NMI handler from 8f849ff63bcbc to
  the FRED NMI handler.
---
 arch/x86/kernel/nmi.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
index 17e955ab69fe..1dd8838e5583 100644
--- a/arch/x86/kernel/nmi.c
+++ b/arch/x86/kernel/nmi.c
@@ -35,6 +35,7 @@
 #include <asm/nospec-branch.h>
 #include <asm/microcode.h>
 #include <asm/sev.h>
+#include <asm/fred.h>
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/nmi.h>
@@ -651,6 +652,41 @@ void nmi_backtrace_stall_check(const struct cpumask *btp)
 
 #endif
 
+#ifdef CONFIG_X86_FRED
+/*
+ * With FRED, CR2/DR6 is pushed to #PF/#DB stack frame during FRED
+ * event delivery, i.e., there is no problem of transient states.
+ * And NMI unblocking only happens when the stack frame indicates
+ * that so should happen.
+ *
+ * Thus, the NMI entry stub for FRED is really straightforward and
+ * as simple as most exception handlers. As such, #DB is allowed
+ * during NMI handling.
+ */
+DEFINE_FREDENTRY_NMI(exc_nmi)
+{
+	irqentry_state_t irq_state;
+
+	if (arch_cpu_is_offline(smp_processor_id())) {
+		if (microcode_nmi_handler_enabled())
+			microcode_offline_nmi_handler();
+		return;
+	}
+
+	this_cpu_write(nmi_cr2, read_cr2());
+
+	irq_state = irqentry_nmi_enter(regs);
+
+	inc_irq_stat(__nmi_count);
+	default_do_nmi(regs);
+
+	irqentry_nmi_exit(regs, irq_state);
+
+	if (unlikely(this_cpu_read(nmi_cr2) != read_cr2()))
+		write_cr2(this_cpu_read(nmi_cr2));
+}
+#endif
+
 void stop_nmi(void)
 {
 	ignore_nmis++;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Dec 16 10:23:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Dec 2023 10:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655491.1023243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rERpD-0001ot-Us; Sat, 16 Dec 2023 10:23:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655491.1023243; Sat, 16 Dec 2023 10:23:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rERpD-0001om-R8; Sat, 16 Dec 2023 10:23:15 +0000
Received: by outflank-mailman (input) for mailman id 655491;
 Sat, 16 Dec 2023 10:23: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 1rERpB-0001oc-MA; Sat, 16 Dec 2023 10:23: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 1rERpB-0006Ma-Jn; Sat, 16 Dec 2023 10:23: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 1rERpB-0007RV-3i; Sat, 16 Dec 2023 10:23:13 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rERpB-00042O-2y; Sat, 16 Dec 2023 10:23: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=wuSStPv1dUxIVEM5KzY3PpXWTl3TRX+foZULAHf+TUU=; b=HSiwEdduA9u/JfAOqbsMrjiPNH
	2sJnfvcK04BpMEA28TOCuDq0zsRqwfRfOsKWjei3kywmkXPQXkXusq2sfn0QFBZi6Znn2r/V/XVEA
	3OlOXgE9mzzIuU+jK+zgGYG91XHQBlv/Nsh2/tQVF20H6uvp1VGvOWQMOfKI20Cr72r8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184148-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184148: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-libvirt-raw: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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-libvirt: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-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-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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a60067f39882a4f40547fc0cd8177bac89cb01b7
X-Osstest-Versions-That:
    xen=cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 16 Dec 2023 10:23:13 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184141
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184145
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184145
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184145
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184145
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184145
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184145
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184145
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184145
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184145
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184145
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184145
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-arm64-arm64-libvirt-raw 14 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-raw 15 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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-amd64-i386-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a60067f39882a4f40547fc0cd8177bac89cb01b7
baseline version:
 xen                  cad6f9a4c12dd4d5cdb2620e3fe24727ee81c7ce

Last test of basis   184145  2023-12-15 08:41:13 Z    1 days
Testing same since   184148  2023-12-16 00:37:15 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <jgrall@amazon.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Stefano Stabellini <stefano.stabellini@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   cad6f9a4c1..a60067f398  a60067f39882a4f40547fc0cd8177bac89cb01b7 -> master


From xen-devel-bounces@lists.xenproject.org Sat Dec 16 16:31:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Dec 2023 16:31:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655512.1023253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEXZN-0006Cc-00; Sat, 16 Dec 2023 16:31:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655512.1023253; Sat, 16 Dec 2023 16:31:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEXZM-0006CQ-Qv; Sat, 16 Dec 2023 16:31:16 +0000
Received: by outflank-mailman (input) for mailman id 655512;
 Sat, 16 Dec 2023 16:31: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 1rEXZL-0006BV-TU; Sat, 16 Dec 2023 16:31: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 1rEXZL-00059W-JH; Sat, 16 Dec 2023 16:31: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 1rEXZL-0007px-1L; Sat, 16 Dec 2023 16:31:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEXZL-0006HO-0a; Sat, 16 Dec 2023 16:31: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=3Iyf5t0CRJSpO/wGtNpFS0IxLSs53cfPV7azlqkqws4=; b=Mt1Q7Jfqd53TDkY1mfqciMWwbO
	HNWvQuvB2+7MzFJX4qLfQ7YQY40iN639kNamRz2P65/Y35pFyfqiHA1N5VGAGArqwVMo3b78Wv9Jr
	0PmNkLAM7lIavIN0nsBfgREPvxa22cT6rW9ok6WhX1Hwf45o9aEi24KcZek4obeh0wYg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184149-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184149: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-xl-qemuu-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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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-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: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-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-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-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-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-credit1: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-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-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-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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=3bd7d748816927202268cb335921f7f68b3ca723
X-Osstest-Versions-That:
    linux=3f7168591ebf7bbdb91797d02b1afaf00a4289b1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 16 Dec 2023 16:31:15 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 184152-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184146
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184146
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184146
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184146
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184146
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184146
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184146
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184146
 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-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          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-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-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-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-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                3bd7d748816927202268cb335921f7f68b3ca723
baseline version:
 linux                3f7168591ebf7bbdb91797d02b1afaf00a4289b1

Last test of basis   184146  2023-12-15 12:39:59 Z    1 days
Testing same since   184149  2023-12-16 03:49:59 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Al Viro <viro@zeniv.linux.org.uk>
  Alex Deucher <alexander.deucher@amd.com>
  Andrew Morton <akpm@linux-foundation.org>
  Andrzej Kacprowski <Andrzej.Kacprowski@intel.com>
  AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  Animesh Manna <animesh.manna@intel.com>
  Aurabindo Pillai <aurabindo.pillai@amd.com>
  Baoquan He <bhe@redhat.com>
  Bin Li <binli@gnome.org>
  Borislav Petkov (AMD) <bp@alien8.de>
  Christian KÃ¶nig <christian.koenig@amd.com>
  Chun-Kuang Hu <chunkuang.hu@kernel.org>
  Dave Airlie <airlied@redhat.com>
  David Heidelberg <david@ixit.cz>
  David Hildenbrand <david@redhat.com>
  David Stevens <stevensd@chromium.org>
  Dmitrii Galantsev <dmitrii.galantsev@amd.com>
  Eugen Hristev <eugen.hristev@collabora.com>
  Fangzhi Zuo <jerry.zuo@amd.com>
  Farouk Bouabid <farouk.bouabid@theobroma-systems.com>
  Fei Shao <fshao@chromium.org>
  Gergo Koteles <soyer@irl.hu>
  Hamza Mahfooz <hamza.mahfooz@amd.com>
  Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
  Hartmut Knaack <knaack.h@gmx.de>
  Heiko Stuebner <heiko@sntech.de>
  Ignat Korchagin <ignat@cloudflare.com>
  Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
  Jani Nikula <jani.nikula@intel.com>
  Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>
  Jason-JH.Lin <jason-jh.lin@mediatek.com>
  Jens Axboe <axboe@kernel.dk>
  Jessica Zhang <quic_jesszhan@quicinc.com>
  John Hubbard <jhubbard@nvidia.com>
  Jon Hunter <jonathanh@nvidia.com>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  Kai-Heng Feng <kai.heng.feng@canonical.com>
  Kalesh Singh <kaleshsingh@google.com>
  Kefeng Wang <wangkefeng.wang@huawei.com>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Leo Liu <leo.liu@amd.com>
  Lingkai Dong <lingkai.dong@arm.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Lyude Paul <lyude@redhat.com>
  Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  Macpaul Lin <macpaul.lin@mediatek.com>
  Mario Limonciello <mario.limonciello@amd.com>
  Mario Limonciello <mario.limonciello@amd.com> (v1)
  Maxime Ripard <mripard@kernel.org>
  Michael Walle <mwalle@kernel.org>
  Neil Armstrong <neil.armstrong@linaro.org>
  NÃ­colas F. R. A. Prado <nfraprado@collabora.com>
  Ondrej Mosnacek <omosnace@redhat.com>
  Randy Dunlap <rdunlap@infradead.org>
  Randy Dunlap <rdunlap@infradead.org> # build-tested
  Saleemkhan Jamadar <saleemkhan.jamadar@amd.com>
  SeongJae Park <sj@kernel.org>
  Stuart Lee <stuart.lee@mediatek.com>
  T.J. Mercier <tjmercier@google.com>
  Taimur Hassan <syed.hassan@amd.com>
  Takashi Iwai <tiwai@suse.de>
  Thierry Reding <treding@nvidia.com>
  Tvrtko Ursulin <tvrtko.ursulin@intel.com>
  Ville SyrjÃ¤lÃ¤ <ville.syrjala@linux.intel.com>
  Yu Zhao <yuzhao@google.com>
  Yuntao Wang <ytcoode@gmail.com>
  Ziqi Zhao <astrajoan@yahoo.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                 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   3f7168591ebf..3bd7d7488169  3bd7d748816927202268cb335921f7f68b3ca723 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sat Dec 16 18:16:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Dec 2023 18:16:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655520.1023263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEZCt-0008Oh-Ep; Sat, 16 Dec 2023 18:16:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655520.1023263; Sat, 16 Dec 2023 18: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 1rEZCt-0008Oa-Bp; Sat, 16 Dec 2023 18:16:11 +0000
Received: by outflank-mailman (input) for mailman id 655520;
 Sat, 16 Dec 2023 18:16: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 1rEZCr-0008OO-NN; Sat, 16 Dec 2023 18:16: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 1rEZCr-0007AT-Is; Sat, 16 Dec 2023 18:16: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 1rEZCr-00025V-6Y; Sat, 16 Dec 2023 18:16:09 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEZCr-00015Z-6A; Sat, 16 Dec 2023 18:16: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=eh/rW74t4WI0eSr4nZaeiyzIRnHOJlbRjEiw4Y26icA=; b=4H/c6HlNgetXcOADyhzaXKxOtD
	8pII41w3JLpi6AYMh5cLdnTjN3pojCEPoas0KXZaMCqnAb7mccq0wQNLRzpef1v0ltpnolCvuq9h9
	r5EeoL0R/bXn4ciKaLnJyST3K4ut4AFlb8S9IdoSG2BKVE5731LM5/Rajd5pkD2GE6D4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184150-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184150: tolerable FAIL - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt-raw:guest-start:fail:heisenbug
    libvirt:test-amd64-amd64-libvirt-vhd:guest-start/debian.repeat:fail:heisenbug
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-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-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-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-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-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=0d03ca17b15c73609e6cf20a616d8576ae71e65b
X-Osstest-Versions-That:
    libvirt=641ed83e3d635648d94234fa94a6d47e912144f7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 16 Dec 2023 18:16:09 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-raw 13 guest-start         fail pass in 184154-retest
 test-amd64-amd64-libvirt-vhd 19 guest-start/debian.repeat fail pass in 184154-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail in 184154 like 184144
 test-armhf-armhf-libvirt-raw 14 migrate-support-check fail in 184154 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184144
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184144
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-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-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 libvirt              0d03ca17b15c73609e6cf20a616d8576ae71e65b
baseline version:
 libvirt              641ed83e3d635648d94234fa94a6d47e912144f7

Last test of basis   184144  2023-12-15 04:22:03 Z    1 days
Testing same since   184150  2023-12-16 04:18:50 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  JÃ¡n Tomko <jtomko@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-libvirt-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


Pushing revision :

To xenbits.xen.org:/home/xen/git/libvirt.git
   641ed83e3d..0d03ca17b1  0d03ca17b15c73609e6cf20a616d8576ae71e65b -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Sat Dec 16 22:12:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Dec 2023 22:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655531.1023272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEcsx-0007N3-OY; Sat, 16 Dec 2023 22:11:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655531.1023272; Sat, 16 Dec 2023 22:11:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEcsx-0007Mw-M1; Sat, 16 Dec 2023 22:11:51 +0000
Received: by outflank-mailman (input) for mailman id 655531;
 Sat, 16 Dec 2023 22:11: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 1rEcsw-0007Mm-QC; Sat, 16 Dec 2023 22:11: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 1rEcsw-00037H-L0; Sat, 16 Dec 2023 22:11: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 1rEcsw-0002s0-3O; Sat, 16 Dec 2023 22:11:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEcsw-0002RN-2r; Sat, 16 Dec 2023 22: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=mDpFcLHpUKTz/f5z0b7wJxlNWOva+INaArtSSCQqCEU=; b=G7p6J77i+sFJy5fcgQflsR2rTV
	XbLCIN1JOJd6yqI6RZgC4jX/F3fZowTfmBFLdlcY0bZrUu1RsTsrozgMUmBclkkmZQ+u3mvj2AZ+Z
	nP2GwNKOXAKe9GgoDWFiXeJ4cJJFoLifHfIidIWPoRbp+/3N81JNo3auwiu1+OC1FjVE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184151-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184151: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install:fail:heisenbug
    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-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-libvirt: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-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-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a60067f39882a4f40547fc0cd8177bac89cb01b7
X-Osstest-Versions-That:
    xen=a60067f39882a4f40547fc0cd8177bac89cb01b7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 16 Dec 2023 22:11:50 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install    fail pass in 184148

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop fail in 184148 blocked in 184151
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184148
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184148
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184148
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184148
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184148
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184148
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184148
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184148
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184148
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184148
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184148
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-amd64-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a60067f39882a4f40547fc0cd8177bac89cb01b7
baseline version:
 xen                  a60067f39882a4f40547fc0cd8177bac89cb01b7

Last test of basis   184151  2023-12-16 10:27:16 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 17 02:20:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Dec 2023 02:20:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655540.1023283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEgl1-0005f2-BZ; Sun, 17 Dec 2023 02:19:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655540.1023283; Sun, 17 Dec 2023 02:19:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEgl1-0005ev-7w; Sun, 17 Dec 2023 02:19:55 +0000
Received: by outflank-mailman (input) for mailman id 655540;
 Sun, 17 Dec 2023 02:19: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 1rEgl0-0005el-Fr; Sun, 17 Dec 2023 02:19: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 1rEgl0-0007Bq-Ap; Sun, 17 Dec 2023 02:19: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 1rEgkz-0000AX-Li; Sun, 17 Dec 2023 02:19:53 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEgkz-0004uP-L0; Sun, 17 Dec 2023 02:19:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=O1DVwqtYjeD+YeHX9dfhLoq/bV9AbUuJB7QjAtyvgMw=; b=cUjdQGlj7IXF1WypQ5AXazYCnk
	3LNvlM9fmBxbRa8MwtoDElJ40IEGN/A+Whb9pWtYSjMqwyZT0AQ4NdH8rj3j8xdYF9WjBebMUF74c
	N0jEeOzGM1/mjGoL2Vvmx941w/h3+9ReQQcQsLpdktNZ/+Z2ReR6jFGX2dk3qeMjtuKY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184153-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184153: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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-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: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-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c8e97fc6b4c057a350a9e9a1ad625e10cc9c39ee
X-Osstest-Versions-That:
    linux=3bd7d748816927202268cb335921f7f68b3ca723
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 17 Dec 2023 02:19:53 +0000

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

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 184149
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184149
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184149
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184149
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184149
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184149
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184149
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184149
 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-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          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-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
 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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                c8e97fc6b4c057a350a9e9a1ad625e10cc9c39ee
baseline version:
 linux                3bd7d748816927202268cb335921f7f68b3ca723

Last test of basis   184149  2023-12-16 03:49:59 Z    0 days
Testing same since   184153  2023-12-16 16:42:11 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Bjorn Helgaas <bhelgaas@google.com>
  Catalin Marinas <catalin.marinas@arm.com>
  Huacai Chen <chenhuacai@loongson.cn>
  Igor Mammedov <imammedo@redhat.com>
  James Houghton <jthoughton@google.com>
  Jens Axboe <axboe@kernel.dk>
  Jiaxun Yang <jiaxun.yang@flygoat.com>
  Johan Hovold <johan+linaro@kernel.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Michael S. Tsirkin <mst@redhat.com>
  Robin Murphy <robin.murphy@arm.com>
  Will Deacon <will@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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   3bd7d7488169..c8e97fc6b4c0  c8e97fc6b4c057a350a9e9a1ad625e10cc9c39ee -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sun Dec 17 12:21:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Dec 2023 12:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655576.1023298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEq8z-0000Ko-At; Sun, 17 Dec 2023 12:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655576.1023298; Sun, 17 Dec 2023 12: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 1rEq8z-0000Ka-76; Sun, 17 Dec 2023 12:21:17 +0000
Received: by outflank-mailman (input) for mailman id 655576;
 Sun, 17 Dec 2023 12:21: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 1rEq8y-0000Jl-Hm; Sun, 17 Dec 2023 12:21: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 1rEq8y-0002Hw-3c; Sun, 17 Dec 2023 12:21: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 1rEq8x-0000kY-IP; Sun, 17 Dec 2023 12:21:15 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEq8x-0008BE-Hf; Sun, 17 Dec 2023 12:21: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=226ZZvY/mUVYHPOOwSPGT/bz6rQJ1Uz3Riwm3V8PQiI=; b=G+TB4ZuJtJethe3f5OxicnTIo9
	7ufjdE/eSkspORLbiiA9gRhdb5TQtVlHEn+beZpSqH0M+vfku6+5+71b8oqVl/Zvx311stsHjqyps
	PnRDqozeUpxcPuWDSKDUJ028DQwcnh/LIQh/D2oOKAufua440l8m2E21vFbWuiwZVhRA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184155-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184155: trouble: broken/fail/pass
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict:<job status>:broken:regression
    xen-unstable:test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict:host-reuse/final:broken:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    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-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-libvirt: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-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-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a60067f39882a4f40547fc0cd8177bac89cb01b7
X-Osstest-Versions-That:
    xen=a60067f39882a4f40547fc0cd8177bac89cb01b7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 17 Dec 2023 12:21:15 +0000

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

Failures and problems with tests :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict    <job status>   broken

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict 26 host-reuse/final broken pass in 184151
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install fail in 184151 pass in 184155
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 184151

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184148
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184151
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184151
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184151
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184151
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184151
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184151
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184151
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184151
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184151
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184151
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184151
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-amd64-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a60067f39882a4f40547fc0cd8177bac89cb01b7
baseline version:
 xen                  a60067f39882a4f40547fc0cd8177bac89cb01b7

Last test of basis   184155  2023-12-17 01:55:35 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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        broken  
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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-job test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict broken
broken-step test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict host-reuse/final

Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Sun Dec 17 14:31:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Dec 2023 14:31:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655589.1023308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEsBA-0005Hu-IU; Sun, 17 Dec 2023 14:31:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655589.1023308; Sun, 17 Dec 2023 14:31:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEsBA-0005Hn-Ei; Sun, 17 Dec 2023 14:31:40 +0000
Received: by outflank-mailman (input) for mailman id 655589;
 Sun, 17 Dec 2023 14:31: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 1rEsB9-0005Hd-69; Sun, 17 Dec 2023 14:31: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 1rEsB9-0004qz-0n; Sun, 17 Dec 2023 14:31: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 1rEsB8-0003ov-L3; Sun, 17 Dec 2023 14:31:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEsB8-0005Ko-Kf; Sun, 17 Dec 2023 14:31: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=x0/fXKgxq/iN8Bq+iwUj8i6N0J+TSSDDM4ESUJMUILU=; b=s+BwE2NJwod2G8+Oiukg32H4TM
	30lhUwDryhhvlnEaAzZKIXyKWxCLN1tcSsKJHYjeiVAMujl8+W70IksPzrO/K8cM0BE3aVput6ksu
	CpvpakstiVTt/oJFAxWXuTGp8fpGzkD09hMJsbXUBF4NxSR8tnCqxzEOOctXEupZCoyI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184156-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184156: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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-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: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-arm64-arm64-xl-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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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: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-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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=3b8a9b2e6809d281890dd0a1102dc14d2cd11caf
X-Osstest-Versions-That:
    linux=c8e97fc6b4c057a350a9e9a1ad625e10cc9c39ee
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 17 Dec 2023 14:31:38 +0000

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

Failures :-/ but no regressions.

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

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-arndale 15 migrate-support-check fail in 184158 never pass
 test-armhf-armhf-xl-arndale 16 saverestore-support-check fail in 184158 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184153
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184153
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184153
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184153
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184153
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184153
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184153
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184153
 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-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          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-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-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                3b8a9b2e6809d281890dd0a1102dc14d2cd11caf
baseline version:
 linux                c8e97fc6b4c057a350a9e9a1ad625e10cc9c39ee

Last test of basis   184153  2023-12-16 16:42:11 Z    0 days
Testing same since   184156  2023-12-17 02:23:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Beau Belgrave <beaub@linux.microsoft.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Zheng Yejian <zhengyejian1@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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   c8e97fc6b4c0..3b8a9b2e6809  3b8a9b2e6809d281890dd0a1102dc14d2cd11caf -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sun Dec 17 14:46:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Dec 2023 14:46:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655597.1023317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEsP8-0006tw-VF; Sun, 17 Dec 2023 14:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655597.1023317; Sun, 17 Dec 2023 14: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 1rEsP8-0006tp-Sf; Sun, 17 Dec 2023 14:46:06 +0000
Received: by outflank-mailman (input) for mailman id 655597;
 Sun, 17 Dec 2023 14:46: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=gbmG=H4=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rEsP8-0006tj-62
 for xen-devel@lists.xenproject.org; Sun, 17 Dec 2023 14:46:06 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id ffd7fbea-9cea-11ee-98eb-6d05b1d4d9a1;
 Sun, 17 Dec 2023 15:46:03 +0100 (CET)
Received: from mg.gitlab.com (31.226.74.34.bc.googleusercontent.com
 [34.74.226.31]) by
 b88a95e97985 with SMTP id 657f09a9438585501f953895 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Sun, 17 Dec 2023 14:46:01 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: ffd7fbea-9cea-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702824361; x=1702831561; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=1jI5KCIP65GEgat+AZp/e1kWntWUtY7I57vyq9S+Opg=;
 b=dnpIrdSMeUpEV11J2BbpXIOh+Z6QV54oITPsphrrYRdYkMWZUyM04uC30drP7B6K81T7ez5ZihwvJSdZY4a65sZ93mARgExzsi+bmQ2XLSwR5kEUz1a8BIWR4Nqu4mzCkBJYhkjKz8xYuoKikkIWcOGIJjrtQR5/whJsYxTh5ic=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Sun, 17 Dec 2023 14:46:00 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <657f09a8df561_2c11088afc153135@gitlab-sidekiq-catchall-v2-5b75896b6c-wrff7.mail>
Subject: xen | Successful pipeline for staging | a60067f3
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_657f09a8d76fa_2c11088afc1530b6";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1110118952
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_657f09a8d76fa_2c11088afc1530b6
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1110118952 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: a60067f3 ( https://gitlab.com/xen-project/xen/-/commit/a60067f39882a4f40547fc0cd8177bac89cb01b7 )
Commit Message: docs/misra/rules.rst: add Rule 16.2

Signed-off...
Commit Author: Stefano Stabellini



Pipeline #1110118952 ( https://gitlab.com/xen-project/xen/-/pipelines/1110118952 ) triggered by Andrew Cooper ( https://gitlab.com/andyhhp )
successfully completed 133 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | a60067f3</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1110118952 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/a60067f39882a4f405=
47fc0cd8177bac89cb01b7" style=3D"color: #3777b0; text-decoration: none;">=
a60067f3</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
docs/misra/rules.rst: add Rule 16.2

Signed-off...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/50b82a64e2a9f930cabefa3948871101?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Stefano Stabellini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111011=
8952" style=3D"color: #3777b0; text-decoration: none;">#1110118952</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/4c68e59c4858f6dbd3465bd1ba226772?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 133 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_657f09a8d76fa_2c11088afc1530b6--


From xen-devel-bounces@lists.xenproject.org Sun Dec 17 15:22:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Dec 2023 15:22:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655637.1023328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rEsxw-0002zK-Nl; Sun, 17 Dec 2023 15:22:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655637.1023328; Sun, 17 Dec 2023 15:22: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 1rEsxw-0002zD-Ky; Sun, 17 Dec 2023 15:22:04 +0000
Received: by outflank-mailman (input) for mailman id 655637;
 Sun, 17 Dec 2023 15:22: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 1rEsxw-0002z2-1k; Sun, 17 Dec 2023 15:22: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 1rEsxv-0005hT-HI; Sun, 17 Dec 2023 15:22: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 1rEsxv-0004zA-0N; Sun, 17 Dec 2023 15:22:03 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rEsxu-000222-W4; Sun, 17 Dec 2023 15:22:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=wR7pzk8560JvRtg/cxqKrMis7kEZePAmXbvmfvC28f0=; b=2nPT4QBUx6w330gtgrBDV5r7q6
	BI4dnfjZO6ZPGFCz2RkiXCzrHGn+DbcLZhrzDrJhqsEl9sf0SIe3Za01pub08r5Yy/fpDZeBVCJGx
	4o2hnM98Nd3Q+NWOo+eo8uB03iUz9KZhq4m4PfbTqGF32z2dXDWma3wnFaiDWvbPuN3Q=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184157-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184157: tolerable FAIL - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:guest-start:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-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-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-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-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-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=19ce02c773fdeb4d1dfaabac42c650a976a07973
X-Osstest-Versions-That:
    libvirt=0d03ca17b15c73609e6cf20a616d8576ae71e65b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 17 Dec 2023 15:22:02 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184150
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184150
 test-armhf-armhf-libvirt-raw 13 guest-start                  fail  like 184150
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-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-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 libvirt              19ce02c773fdeb4d1dfaabac42c650a976a07973
baseline version:
 libvirt              0d03ca17b15c73609e6cf20a616d8576ae71e65b

Last test of basis   184150  2023-12-16 04:18:50 Z    1 days
Testing same since   184157  2023-12-17 04:20:41 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Peter Krempa <pkrempa@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   0d03ca17b1..19ce02c773  19ce02c773fdeb4d1dfaabac42c650a976a07973 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 02:25:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 02:25:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655651.1023338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF3JW-0001cB-Au; Mon, 18 Dec 2023 02:25:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655651.1023338; Mon, 18 Dec 2023 02: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 1rF3JW-0001c4-7O; Mon, 18 Dec 2023 02:25:02 +0000
Received: by outflank-mailman (input) for mailman id 655651;
 Mon, 18 Dec 2023 02:25: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 1rF3JU-0001bu-8L; Mon, 18 Dec 2023 02:25: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 1rF3JT-00016p-Sq; Mon, 18 Dec 2023 02:24: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 1rF3JT-0006lG-Eo; Mon, 18 Dec 2023 02:24:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rF3JT-00065N-EK; Mon, 18 Dec 2023 02:24: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=pys5B6NVJRDFdAapFRd+BhSGyZG8C4VmU7K/Pr9eego=; b=fL7UMW/Xg42P25SfpqnV/uaUzU
	dSUQkfwiDUWsFyBCbEGD7LHh0tfOHobPqQnPx3Gz6A3+8owZC5xVPyGC1j+bCQXPXhYSl3v5fEmH9
	LucWaDegZZ+oz9hCJ3PeD7NPFyG7QZXj8Wa+wQZlUH0X6mlmrVXJU9n7EHu9fhLxu0T0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184159-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184159: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-raw:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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-qcow2:saverestore-support-check: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-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: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-arm64-arm64-xl-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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-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-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-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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd: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-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=0e389834672c723435a44818ed2cabc4dad24429
X-Osstest-Versions-That:
    linux=3b8a9b2e6809d281890dd0a1102dc14d2cd11caf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 18 Dec 2023 02:24:59 +0000

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

Failures :-/ but no regressions.

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

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail in 184160 like 184156
 test-armhf-armhf-libvirt-raw 14 migrate-support-check fail in 184160 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184156
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184156
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184156
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184156
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184156
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184156
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184156
 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-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-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-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-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass

version targeted for testing:
 linux                0e389834672c723435a44818ed2cabc4dad24429
baseline version:
 linux                3b8a9b2e6809d281890dd0a1102dc14d2cd11caf

Last test of basis   184156  2023-12-17 02:23:04 Z    0 days
Testing same since   184159  2023-12-17 17:42:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  "Aneesh Kumar K.V (IBM)" <aneesh.kumar@kernel.org>
  "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
  Alex Bee <knaerzche@gmail.com>
  Alison Schofield <alison.schofield@intel.com>
  Amelie Delaunay <amelie.delaunay@foss.st.com>
  Andrew Davis <afd@ti.com>
  Arnd Bergmann <arnd@arndb.de>
  Bard Liao <yung-chuan.liao@linux.intel.com>
  Borislav Petkov (AMD) <bp@alien8.de>
  Chao Song <chao.song@linux.intel.com>
  Chris Morgan <macromorgan@hotmail.com>
  Dan Williams <dan.j.williams@intel.com>
  Dave Jiang <dave.jiang@intel.com>
  David Sterba <dsterba@suse.com>
  Davidlohr Bueso <dave@stgolabs.net>
  Finley Xiao <finley.xiao@rock-chips.com>
  Frank Li <Frank.Li@nxp.com>
  Guanjun <guanjun@linux.alibaba.com>
  Haren Myneni <haren@linux.ibm.com>
  Heiko Stuebner <heiko@sntech.de>
  Ira Weiny <ira.weiny@intel.com>
  Jagadeesh Kona <quic_jkona@quicinc.com>
  Jai Luthra <j-luthra@ti.com>
  Josef Bacik <josef@toxicpanda.com>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Lijun Pan <lijun.pan@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael Walle <mwalle@kernel.org>
  Peter Ujfalusi <peter.ujfalusi@gmail.com>
  Randy Dunlap <rdunlap@infradead.org>
  Ronald Wahl <ronald.wahl@raritan.com>
  Ronald Wahl <rwahl@gmx.de>
  Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
  Stephen Boyd <sboyd@kernel.org>
  Su Hui <suhui@nfschina.com>
  Vinod Koul <vkoul@kernel.org>
  Weihao Li <cn.liweihao@gmail.com>
  Xiaolei Wang <xiaolei.wang@windriver.com>
  Yang Yingliang <yangyingliang@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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   3b8a9b2e6809..0e389834672c  0e389834672c723435a44818ed2cabc4dad24429 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 03:25:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 03:25:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655659.1023348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF4Fo-0001Ul-M5; Mon, 18 Dec 2023 03:25:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655659.1023348; Mon, 18 Dec 2023 03:25:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF4Fo-0001Ue-Is; Mon, 18 Dec 2023 03:25:16 +0000
Received: by outflank-mailman (input) for mailman id 655659;
 Mon, 18 Dec 2023 03:25:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nWsa=H5=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1rF4Fm-0001UY-V4
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 03:25:15 +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 0c3ddcdf-9d55-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 04:25:13 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH7PR12MB8793.namprd12.prod.outlook.com (2603:10b6:510:27a::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Mon, 18 Dec
 2023 03:25:05 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::969f:11b3:5ec2:3aa1%3]) with mapi id 15.20.7091.034; Mon, 18 Dec 2023
 03:25:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c3ddcdf-9d55-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VdV4MiJ+0VUVvCLFhI7Be/IO0vb3S4Yqm9rWgbqN6e+y3oM28DVoEtbnz9x1suqjNXpjOPJu6+n7o/DkxrelkpiDQuSHEcvQaVtyxnfpObkCia6SqgA73wLhf8n4K2NsB0p2LFNRvNfx14yeO1z6faXxEW2m6uhZOx/GHdPubk/421sMJ16ovwuEi90q7pOwwNyoggxA4vBdmAQ9HOIs0tkSMS7wKQzWE6GRb89XH8FNBCyG3dn1iWO9IKbB94ScKzB7UPbHI6nrCnTrnjZ9/TGUii/bcpeJoaOlBcFKxKGJqTaNAVMchIGdD8aU3Nin2AXHkNprUqke9Ab9A+2D/g==
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=mEBRPe2MRV/MdybBof27MTjnam7g6tLVZNDdVAm/X3c=;
 b=kf8T4MQS/sRETf0kPjHn7G9zMYLirng6nmAY2ia/KTJVFw2nPkXXRGWT69ijA5oibQ1R8L5YhTKK/jn6JbsSuMvLmqhzo9vfv4tRMVMBaeJqzIZl9ZXG6wiFTkZb0shYmRBjx1YLxC6omgaBdDeQ+opWjJoBp33TCP5N+IbYfdbisSP5158wWoFwa7HVsUTd0SMYrwyGQk1cb3EPAojUVg96TSfb/oDqmP02sOv54AyhN/pIrKZJ4S0pL/zaOakaqk70MwA9mu5RxIBbqmad2HyrdXpQWW+645yjuLQNOzdUfGAAmI1Qw3qJIuz76HcRDNOpnW9M6VFep+z8fFVahQ==
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=mEBRPe2MRV/MdybBof27MTjnam7g6tLVZNDdVAm/X3c=;
 b=w4oIoZscKVsckITRsUi03ogY4M6lODjOIrp79l13S5j7xatkgfARTjTzO3bUGCvN9pumbtbwHXjyEqXkD70o01R2LwsV32PV7xRM7AB646TU2ervIFQOZn6qyvAGpceVnhUIj0GlqSSXfF4ClqOH/yZQVeQNIwb7/g4/8+Wf+ck=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich
	<jbeulich@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, Wei
 Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross
	<jgross@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Hildebrand, Stewart"
	<Stewart.Hildebrand@amd.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Huang, Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Topic: [RFC XEN PATCH v3 2/3] x86/pvh: Add (un)map_pirq and setup_gsi
 for PVH dom0
Thread-Index:
 AQHaK4ebBv/EWT+No0GAUR8lU4172LCkNzqAgAGFPID//6gjAIABpqIA///CiwCAAi33AP//lJaAAAAYnAAAAExygAAan/AAACJ1V4D//45vgIAE5d8A
Date: Mon, 18 Dec 2023 03:25:05 +0000
Message-ID:
 <BL1PR12MB5849D229B71783001C834E72E790A@BL1PR12MB5849.namprd12.prod.outlook.com>
References:
 <BL1PR12MB5849B1BDCBECD73353413869E78EA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <704cc051-7362-4691-a120-4effaf8dd1fc@suse.com>
 <BL1PR12MB584993E317AF28E675814FC6E78DA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <917ef38b-5aec-4c6a-803c-c0b2dcc74454@suse.com>
 <BL1PR12MB58494259A9E37CD7133090D9E78CA@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZXrRG8oc25Do0Dnv@macbook> <390368e2-5f13-4bbf-8c07-4a05c04e9939@suse.com>
 <ZXrTwfzedFQLhxiQ@macbook>
 <alpine.DEB.2.22.394.2312141441020.3175268@ubuntu-linux-20-04-desktop>
 <PH7PR12MB58546C2F2208D57396C48764E793A@PH7PR12MB5854.namprd12.prod.outlook.com>
 <ZXwOabGbV_lFaSfO@macbook>
In-Reply-To: <ZXwOabGbV_lFaSfO@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL3PR12MB6546.namprd12.prod.outlook.com
 (15.20.7113.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_|PH7PR12MB8793:EE_
x-ms-office365-filtering-correlation-id: 4b37cd59-d3d5-4547-5000-08dbff78eda9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 HFdp9eQshtaTNJC+BjwRmm0FXACK/jCe8hhM8nmqasji74QHRDQF/qW2DK0YQIE+x+XkG0hAB5vWJC38jLGNAHvpW5i4y2y8ZCv7TVUk8+mXR4hu+nwcxZ6Isd4oCncIbL/yE34dofOIrvIp6EI1B/Yf6OZPAtmX5utXUVlxq/5y3sjLy3yOeLQMCfG3WzfSJTfQJVmQaQJ6mlkJMN4beOElm9PsbFNdarwSqreFiH8nTB7UASpv3SECgSVr5LjEEmM8gJNh2Yjx/I4fbaUVy3Fe9jmL5GQUy3l63nfESPGqI8hOES7DqRCqX53iDAToIkGFlbKSmofEFbbkzSMScmuHeisTJTgjQb6ZhItTZ1GuzBue5izmdVfxUhU55H3amZ2yecC6a+5uN0yjv3odmNKh1O9uzzS4MRIxfym1pplHe9iPcAw0GwnOGQNx1PSf2Z79townkwzJN1o6tgBHHjT6FlE565Nf1dRfJsrE8ldu48Z/H8E2HzhlHHXfu06KncI0dppf2OECtWYb9I1wGuFjjZDC/FynK2LaC/AnJGesAa2+a2SaMzy/tF/f/CHl2FZnAIEM1SFmEZkD8xoZSOXebNqbXDWD5Vx8F/MwINiRFis01cSkPQQ7jdryPv8o
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:(13230031)(366004)(136003)(376002)(346002)(39860400002)(396003)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(55016003)(38070700009)(76116006)(33656002)(38100700002)(122000001)(83380400001)(26005)(53546011)(71200400001)(478600001)(2906002)(66556008)(66476007)(66446008)(64756008)(54906003)(6916009)(9686003)(7696005)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(5660300002)(41300700001)(52536014);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dGtBeDZBK3JCeWJtZGlTQXZJWDg3dHVMMElnaFAvemJScTl6UU5ZRW52bjRF?=
 =?utf-8?B?ZjN1TlgrdU9IcVlxSWZNNzYzSS8welJadlhZOURLYmphYlhpWEIrOUdhYk1M?=
 =?utf-8?B?MmtiM08rV1ZzdlpoZ2VtRCtjQ1dyUmFZK3VVSHBMRzd3WFZTVmpCOU9OT05i?=
 =?utf-8?B?T1Uvcmd1UldiS21jOHJMSHZ0SlZpc1I0Zzg0SjByaE9rQllFaFpOdVFZMnQ2?=
 =?utf-8?B?VEd6NFdvanhqV1Y5Wk9XNmNHc0hXY1J6R25YVzFtTmt6RFpxZklPbnE5MXdC?=
 =?utf-8?B?cTVHZjNmSVhzM3VpWHJPcXBtV2JxL0lLWHVKMldZd2R1VmJYaFNCZXZRa3dV?=
 =?utf-8?B?Ykx6eDN2SUp4dHBVNGFWUzB4UFVNTklSb3k5SWdPZDIraWxYM0xnL2dxMWVI?=
 =?utf-8?B?WmxUUXc1ZitVaGp4dnpEZm02OS96R1NXTzNzck5RMjNGOTVPSmNSM3JDRDFw?=
 =?utf-8?B?eTJoOUtGTzAza1JnU0VBSlBLcGNhekVWQURZc3VCcnpka2hlSytsVnlUaTlZ?=
 =?utf-8?B?S01zc2hOeTI0WWJlYVlxSEhwSVJVUFlUVjlsdElXckpvenRGYTAyMmpRUG4w?=
 =?utf-8?B?ekpkZHY4eUxvOHNGblJ6QkpXempnSm5rVzBUQS9FYUdWUVFTUGFLV1F4aVhU?=
 =?utf-8?B?eTI1cVJycTl6cHZaYThqbVVpbmo0cFhHU01ncHVtQnA5cyt0VjcyNXptZGNJ?=
 =?utf-8?B?UnpOclNTbFFsN0NITlpmTFlvRG5yM3FHbVZNVkgvNGw5SEZKUUROYmJlZTJx?=
 =?utf-8?B?RGNTQ0ZmN3lnUEpXcXprdHk1d3o3Zk5Wd1VWR2xYZzB0RFJyaUM3eFNxVStK?=
 =?utf-8?B?K0NtQks5UURsSTJRbUFuYWFuR0RqNHR4REFNTDljMzN0bVVwWTQ0ZXdsVDFm?=
 =?utf-8?B?RW5qWEtaN1JBQmNrckFqQkwwT0Q4c21DSlgxMFFhRDRLbnF1Y25wRkdXdXJB?=
 =?utf-8?B?MFo2Y2xnTTc4N1RjcEFFVWFnbHpmaG9mYjhLY0ZCR3U4ZWZ1dDVDRTMvcXFB?=
 =?utf-8?B?RTBjK2p0bVl3Mnl5K3NIMUJON00yczZxdUxiOHU3cEpkelBhTENwRGF3UHJt?=
 =?utf-8?B?VDdENGtPS0VKM0NKK0Z3QVU2QzQ3ZDFvUVRzT0QwSWxTS0g2TXM3NjhPVGlG?=
 =?utf-8?B?K3VXdlZTWEU1ZGNJRmtpRk9vWXh2VlRVN1hrY0RaZ2oxK1N2dnB2b255U3VB?=
 =?utf-8?B?VWp2cGZNUnIrbmZGQTlGZXF0SHA1OGJSVCtuV3RPeFhmYTl3N3d5WkxQWVZR?=
 =?utf-8?B?alBrWlBtZzVtRlV0VEV6VkVyYW5yck9sTmZ2b2VVRjVpT0ZMK0JtUXhLSUho?=
 =?utf-8?B?dndLNlZkcFQ0L3JNTXRhN3B3ZzBVZHROR29IYnJ0ODFPSFVaQ1VPaUZzY1J1?=
 =?utf-8?B?NGlpWjBISGxkdDJFemlTcWtvczgxSzhaaVVMS1NEa0laT21HR3FEd09pZHk5?=
 =?utf-8?B?ejh5V1hMUWI4QndBQWRBTlpZa2VRR0VLSHdEeTBmWERXeC82YmZWY3Y0bEQz?=
 =?utf-8?B?dWxZTm50ZGtYUnk2L1VZK1l1WXBJVGlnUFpYazlBSkZXRThvMFc1UExHbTZ3?=
 =?utf-8?B?NlZFYzNOQnQ3a1ovVkg0STFOOHFoSzBxczFDVGZMZHlGUlR2TXE5QVhyYjJm?=
 =?utf-8?B?OFBDenBPZ2VIUjRPekR2S1hqUGRlSkt2WlpISi9MV1hDdURra3AxdkdqRk9W?=
 =?utf-8?B?d1BycmJmY2lRQ2dFYWZxS1NKdGVBdmlQbjZaaTZzRHVGVXFRRFZiN3lNc2V2?=
 =?utf-8?B?TVZJb3V0TG1qQ2dmM0VOd2lmT3o4bnJTVEc0VWJ2S2UxeWVLWkFXSG5DOWkr?=
 =?utf-8?B?ejdESm9QVWc1UHVBcmxaMXRycEhDaXIxMkphaExVWlluU0J3akdPMTBueURN?=
 =?utf-8?B?Q0xWREkycktlSXM4bWNMNkFDWDVpb01XdTlRVUVxdEc3RWRTeGhkN20vVmEy?=
 =?utf-8?B?YUlReTN2emF0eE9IQ0pWUjBORTM1K1NkdFZZTmZBK2FWcG5XNmVGcm41NUo1?=
 =?utf-8?B?bnRRZTIrZ2V5Q3ZEUUJSV0JaUHVnNE5aVVJQbjRIWVJRMi9ndTJSa1lKd1hv?=
 =?utf-8?B?SUdXMlcwTHNlZHNObE1NVmhhR0NyZzhmb0ZRRzVLMjArMWtWV3B3ektNeTZl?=
 =?utf-8?Q?gD2o=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <69B4D5EBBE258046ABEA1CD25345FEB1@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: 4b37cd59-d3d5-4547-5000-08dbff78eda9
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Dec 2023 03:25:05.1269
 (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: vkG13Re49c2Pfj087dyRvvpCl1lBBu+IvcDkvMJ63ALGItbb2CWr8fqMnLBJ3laojSdE0CRKQxka2yCfcoLifg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8793

T24gMjAyMy8xMi8xNSAxNjoyOSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gRnJpLCBE
ZWMgMTUsIDIwMjMgYXQgMDc6MjA6MjRBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfcGNpLmMgYi90b29scy9saWJzL2xp
Z2h0L2xpYnhsX3BjaS5jDQo+PiBpbmRleCBkMzUwN2QxM2EwMjkuLmY2NjVkMTdhZmJmNSAxMDA2
NDQNCj4+IC0tLSBhL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfcGNpLmMNCj4+ICsrKyBiL3Rvb2xz
L2xpYnMvbGlnaHQvbGlieGxfcGNpLmMNCj4+IEBAIC0xNDg2LDYgKzE0ODYsNyBAQCBzdGF0aWMg
dm9pZCBwY2lfYWRkX2RtX2RvbmUobGlieGxfX2VnYyAqZWdjLA0KPj4gICAgICAgICAgZ290byBv
dXRfbm9faXJxOw0KPj4gICAgICB9DQo+PiAgICAgIGlmICgoZnNjYW5mKGYsICIldSIsICZpcnEp
ID09IDEpICYmIGlycSkgew0KPj4gKyAgICAgICAgaW50IGdzaSA9IGlycTsNCj4+ICAgICAgICAg
IHIgPSB4Y19waHlzZGV2X21hcF9waXJxKGN0eC0+eGNoLCBkb21pZCwgaXJxLCAmaXJxKTsNCj4+
ICAgICAgICAgIGlmIChyIDwgMCkgew0KPj4gICAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21h
aW5pZCwgInhjX3BoeXNkZXZfbWFwX3BpcnEgaXJxPSVkIChlcnJvcj0lZCkiLA0KPj4gQEAgLTE0
OTQsNyArMTQ5NSw3IEBAIHN0YXRpYyB2b2lkIHBjaV9hZGRfZG1fZG9uZShsaWJ4bF9fZWdjICpl
Z2MsDQo+PiAgICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOw0KPj4gICAgICAgICAgICAgIGdv
dG8gb3V0Ow0KPj4gICAgICAgICAgfQ0KPj4gLSAgICAgICAgciA9IHhjX2RvbWFpbl9pcnFfcGVy
bWlzc2lvbihjdHgtPnhjaCwgZG9taWQsIGlycSwgMSk7DQo+PiArICAgICAgICByID0geGNfZG9t
YWluX2lycV9wZXJtaXNzaW9uKGN0eC0+eGNoLCBkb21pZCwgZ3NpLCAxKTsNCj4+ICAgICAgICAg
IGlmIChyIDwgMCkgew0KPj4gICAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21haW5pZCwNCj4+
ICAgICAgICAgICAgICAgICAgICAieGNfZG9tYWluX2lycV9wZXJtaXNzaW9uIGlycT0lZCAoZXJy
b3I9JWQpIiwgaXJxLCByKTsNCj4+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWN0bC5jIGIv
eGVuL2NvbW1vbi9kb21jdGwuYw0KPj4gaW5kZXggZjVhNzFlZTVmNzhkLi43ODJjNGE3YTcwYTQg
MTAwNjQ0DQo+PiAtLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jDQo+PiArKysgYi94ZW4vY29tbW9u
L2RvbWN0bC5jDQo+PiBAQCAtNjU4LDcgKzY1OCwxMiBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VF
U1RfSEFORExFX1BBUkFNKHhlbl9kb21jdGxfdCkgdV9kb21jdGwpDQo+PiAgICAgICAgICAgICAg
cmV0ID0gLUVJTlZBTDsNCj4+ICAgICAgICAgICAgICBicmVhazsNCj4+ICAgICAgICAgIH0NCj4+
IC0gICAgICAgIGlycSA9IHBpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5kb21haW4sIHBp
cnEpOw0KPj4gKw0KPj4gKyAgICAgICAgaWYgKCBpc19odm1fZG9tYWluKGN1cnJlbnQtPmRvbWFp
bikgKQ0KPj4gKyAgICAgICAgICAgIGlycSA9IHBpcnE7DQo+PiArICAgICAgICBlbHNlDQo+PiAr
ICAgICAgICAgICAgaXJxID0gcGlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbiwg
cGlycSk7DQo+IA0KPiBZb3UgYXJlIGRyb3BwaW5nIGFuIGlycV9hY2Nlc3NfcGVybWl0dGVkKCkg
Y2hlY2sgaGVyZSBmb3IgdGhlIEhWTQ0KPiBjYXNlLCBhcyBwaXJxX2FjY2Vzc19wZXJtaXR0ZWQo
KSB0cmFuc2xhdGVzIGZyb20gcGlycSB0byBpcnEgYW5kIGFsc28NCj4gY2hlY2tzIGZvciBwZXJt
aXNzaW9ucy4NCj4gDQo+IFRoaXMgd291bGQgbmVlZCB0byBiZSBzb21ldGhpbmcgYWxvbmcgdGhl
IGxpbmVzIG9mOg0KPiANCj4gaXJxID0gMDsNCj4gaWYgKCBpc19odm1fZG9tYWluKGN1cnJlbnQt
PmRvbWFpbikgJiYNCj4gICAgICBpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5kb21haW4s
IHBpcnEpICkNCk9oLCB5ZXMsIGl0IHNob3VsZCBhZGQgdGhpcyBjaGVjay4NCg0KPiAgICAgaXJx
ID0gcGlycTsNCj4gZWxzZQ0KPiAgICAgaXJxID0gcGlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJl
bnQtPmRvbWFpbiwgcGlycSk7DQo+IA0KPiBBbmQgdGhlbiBJIHdvbmRlciB3aGV0aGVyIGl0IHdv
dWxkbid0IGJlIGJlc3QgdG8gdW5pZm9ybWx5IHVzZSBhIEdTSQ0KPiBmb3IgYm90aCBQViBhbmQg
SFZNLg0KSWYgd2Ugb25seSBsb29rIGF0IHRoZSB2YWx1ZShzZWVtcyB0aGUgbnVtYmVyIG9mIGdz
aSA9PSBwaXJxID09IGlycSBpbiBQViksIGl0IHNlZW1zIHRoYXQgZ3NpIGNhbiBhbHNvIGJlIHVz
ZWQgdW5pZm9ybWx5IGZvciBQVi4NCkFuZCB0aGVuIGhlcmUgc2hvdWxkIGJlLiANCmlmICggaXJx
X2FjY2Vzc19wZXJtaXR0ZWQoY3VycmVudC0+ZG9tYWluLCBwaXJxKSApDQoJaXJxID0gcGlycTsN
CmVsc2UNCnsNCglyZXQgPSAtRVBFUk07DQoJYnJlYWs7DQp9DQoNCj4gDQo+IFRoYW5rcywgUm9n
ZXIuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 05:15:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 05:15:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655664.1023358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF5yC-0005hV-Fb; Mon, 18 Dec 2023 05:15:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655664.1023358; Mon, 18 Dec 2023 05:15:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF5yC-0005hO-By; Mon, 18 Dec 2023 05:15:12 +0000
Received: by outflank-mailman (input) for mailman id 655664;
 Mon, 18 Dec 2023 05:15: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=fu7n=H5=redhat.com=peterx@srs-se1.protection.inumbo.net>)
 id 1rF5yB-0005hI-QR
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 05:15:11 +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 69506933-9d64-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 06:15:09 +0100 (CET)
Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com
 [209.85.210.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-577-uVVNHWs9PYKwdW8oPzCuTg-1; Mon, 18 Dec 2023 00:15:06 -0500
Received: by mail-ot1-f72.google.com with SMTP id
 46e09a7af769-6da6577c5ecso401457a34.1
 for <xen-devel@lists.xenproject.org>; Sun, 17 Dec 2023 21:15:06 -0800 (PST)
Received: from x1n ([43.228.180.230]) by smtp.gmail.com with ESMTPSA id
 l2-20020a6542c2000000b005c621e0de25sm14460466pgp.71.2023.12.17.21.14.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 17 Dec 2023 21:15:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69506933-9d64-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702876508;
	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=us3d4nmHk3sAoZXoQzVjlol7teSSMXKMmltMJechvww=;
	b=GyhVXPcOMD2t1dNLv5mDM7HCXC/4CzeYXVDlidjbeMnJHEC4AYlVCt1TZ40DquFaL4PZ5r
	qtYmYWRb7MOU4MBGI/4Fytw+7V65FiI8gWnNyNlQIISbgeuY6MEFZQqt251QGWgDrzIk/I
	MpGkvwa/OKcu6tsYperdoFwu4k8lQkw=
X-MC-Unique: uVVNHWs9PYKwdW8oPzCuTg-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702876506; x=1703481306;
        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=us3d4nmHk3sAoZXoQzVjlol7teSSMXKMmltMJechvww=;
        b=wgTdTx0TQzx3weFNP6cN+k1gp2rvkVXvBJcf5tFR6WkCZRSGxx0ZNMege+CM83ogj1
         WhO20YXa5722TPm2Y4Of94TzVVY2C/Z0twBgslibjdogL1Yo7q/aYzlQCh6Mf+VAZJsj
         JBC0/T/ivqb94tVLpERcPyXEAKNWzH2n7OoHEIaWM4HMhB5pkAdclv3VnM875Eu735GM
         43Jw8DW343vrQBLwk5fXkbv+gFXitxdHWt5mo/GOthJHvqBmaCR3fmTzth6ODVkleDOi
         IW0eYGtjHffn/nDsEzKYWXQp2/fGRMLm1wXun4BiwhscJENAvelqHMRWTYFzwOXr8cuv
         kCDw==
X-Gm-Message-State: AOJu0Yx0V/WVQZ/zVteEykVAU3mjTDWGYSaWjU47xbrZT3i33P4b/9Gt
	1VPlBSZHk+FyQh6G8QIrZOvpXhCI8ma4oUU09T8hVNTbjl5Y+wICuYmqkK4d61MZfceUqBShxUS
	J6WrySd4iy/RTLquTFzF4DkRMwvI=
X-Received: by 2002:a05:6830:907:b0:6d9:d486:be6b with SMTP id v7-20020a056830090700b006d9d486be6bmr30313457ott.2.1702876505791;
        Sun, 17 Dec 2023 21:15:05 -0800 (PST)
X-Google-Smtp-Source: AGHT+IG4QA9KxY4Fn4YCPnsyU89ZFiETt7gugueZXTi477MfazzAvRiHFwSBh2R0w1CA/5uU2dzxlA==
X-Received: by 2002:a05:6830:907:b0:6d9:d486:be6b with SMTP id v7-20020a056830090700b006d9d486be6bmr30313443ott.2.1702876505570;
        Sun, 17 Dec 2023 21:15:05 -0800 (PST)
Date: Mon, 18 Dec 2023 13:14:51 +0800
From: Peter Xu <peterx@redhat.com>
To: Steven Sistare <steven.sistare@oracle.com>
Cc: Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Thomas Huth <thuth@redhat.com>,
	Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= <berrange@redhat.com>,
	Fabiano Rosas <farosas@suse.de>, Leonardo Bras <leobras@redhat.com>,
	qemu-devel@nongnu.org, Stefan Berger <stefanb@linux.vnet.ibm.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony Perard <anthony.perard@citrix.com>,
	Paul Durrant <paul@xen.org>, Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Laurent Vivier <lvivier@redhat.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH V8 00/12] fix migration of suspended runstate
Message-ID: <ZX_VS_KDsoiL9T2X@x1n>
References: <1702481421-375368-1-git-send-email-steven.sistare@oracle.com>
 <a9ddc1b2-d4fc-44de-857b-2aeb35fa0925@oracle.com>
MIME-Version: 1.0
In-Reply-To: <a9ddc1b2-d4fc-44de-857b-2aeb35fa0925@oracle.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

On Wed, Dec 13, 2023 at 10:35:33AM -0500, Steven Sistare wrote:
> Hi Peter, all have RB's, with all i's dotted and t's crossed - steve

Yes this seems to be more migration related so maybe good candidate for a
pull from migration submodule.

But since this is still solving a generic issue, I'm copying a few more
people from get_maintainers.pl that this series touches, just in case
they'll have something to say before dev cycle starts.

Thanks,

-- 
Peter Xu



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 07:27:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 07:27:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655671.1023368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF81b-0003O0-RA; Mon, 18 Dec 2023 07:26:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655671.1023368; Mon, 18 Dec 2023 07:26:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF81b-0003Nt-O4; Mon, 18 Dec 2023 07:26:51 +0000
Received: by outflank-mailman (input) for mailman id 655671;
 Mon, 18 Dec 2023 07:26:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rF81a-0003Nn-0D
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 07:26:50 +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 cdad3821-9d76-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 08:26:48 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-33663adf953so667671f8f.3
 for <xen-devel@lists.xenproject.org>; Sun, 17 Dec 2023 23:26:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 b12-20020adff90c000000b00333359b522dsm25988829wrr.77.2023.12.17.23.26.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 Dec 2023 23:26:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cdad3821-9d76-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702884407; x=1703489207; 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=Q8AOVAk5scbBIpfOBk6d8oH+qpZdZEmZB2qz/ZMRz64=;
        b=dcxLntYZMgBOW/jqevXuZXutCwZcU3eJ+Sqw3G+WtyhVxRxy7vzOz6+MRZjyksFLQF
         C/NjCtGxYqElQ4aAaYVETtpD4ThhJSm138pHzRx0wONzL/ek1y19WFN4Mx5W/FUXolJw
         QNNdamKQxqE0ygTCocnab0nUvKqnefmMN0VJwM3i7gsXPF6lHwjSQzVphCgNZP986LXS
         3w9fU8a2AvZuHJFnszonD82nbQXKkoGhAFHogM3IUQKF7H1hEgRZaeST4TKCn+xish0i
         JWxYIBFC9VMHZG2IdGLNLRqX1Lgk6QEY0YR+B0TK5pU7JhRARYY1SWAqiwM2hTdfTqBD
         C2Kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702884407; x=1703489207;
        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=Q8AOVAk5scbBIpfOBk6d8oH+qpZdZEmZB2qz/ZMRz64=;
        b=KCoE9B6SrxqvyMQJ3R2hZfQ8fnpQOd+nhyJHwhiBoWEZ8u4Gqxa+SnPkoqv4puJJBx
         zceW59vpjgFnhPJzisnoVKAmU749MiIQO1Ru0Qu7bnHPg/dX6bE/VOVzxWFbob4yWWu/
         4KpBXmWzvTKFDkZ1QHODE9Ti7lfy/flA4OkiWFcIoGiD463XjcY0tewUypa75usqPxW4
         rVEwKYZhtlj98ZAfRetvM0YdYOZNVvcuf3rq4QFRXt40+tfFngxcS23EV7QZ0Qw5yJnW
         cil77bl1ZILNdCKAtAFY1CWdrw2C+DrU0fdYNVF6N/M2SXkBD4q6V38zpVcb0u7jaDm8
         NXlQ==
X-Gm-Message-State: AOJu0YwIslTPVKPrh1o4KIEYqXglZWQQGJFpITpYxQPRuX0aG0dzpO8Z
	H8VmLbF/5/phgAWSfjmm2g9AaQkxJeif7fDBUqjR
X-Google-Smtp-Source: AGHT+IHHkuuNmjkpR3/Pv8AFMigkMIERk0E6658I/57u6RL59SuPfHg3T6qgfQPaq6wyk3nz+y0RQw==
X-Received: by 2002:a5d:4b02:0:b0:336:6693:6e74 with SMTP id v2-20020a5d4b02000000b0033666936e74mr790853wrq.119.1702884407375;
        Sun, 17 Dec 2023 23:26:47 -0800 (PST)
Message-ID: <89d77714-df09-4d0b-bc7d-7d773f8d4f4b@suse.com>
Date: Mon, 18 Dec 2023 08:26:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] x86/HVM: limit upcall vector related verbosity
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Avoid logging all-identical messages for every vCPU, but make sure to
log unusual events like the vector differing from vCPU 0's (note that
the respective condition also makes sure vCPU 0 itself will have the
vector setting logged), or it changing after it was once set. (Arguably
a downside is that some vCPU not having its vector set would no longer
be recognizable from the logs. But I think that's tolerable as
sufficiently unlikely outside of people actively fiddling with related
code.)

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

--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4129,7 +4129,15 @@ static int hvmop_set_evtchn_upcall_vecto
     if ( (v = domain_vcpu(d, op.vcpu)) == NULL )
         return -ENOENT;
 
-    printk(XENLOG_G_INFO "%pv: upcall vector %02x\n", v, op.vector);
+    /*
+     * Avoid logging all-identical messages for every vCPU, but make sure to
+     * log unusual events like the vector differing from vCPU 0's, or it
+     * changing after it was once set
+     */
+    if ( op.vector != d->vcpu[0]->arch.hvm.evtchn_upcall_vector ||
+         (v->arch.hvm.evtchn_upcall_vector &&
+          op.vector != v->arch.hvm.evtchn_upcall_vector) )
+        printk(XENLOG_G_INFO "%pv: upcall vector %02x\n", v, op.vector);
 
     v->arch.hvm.evtchn_upcall_vector = op.vector;
     hvm_assert_evtchn_irq(v);


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 07:42:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 07:42:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655675.1023377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF8GM-00062G-4o; Mon, 18 Dec 2023 07:42:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655675.1023377; Mon, 18 Dec 2023 07:42:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF8GM-000629-1f; Mon, 18 Dec 2023 07:42:06 +0000
Received: by outflank-mailman (input) for mailman id 655675;
 Mon, 18 Dec 2023 07:42: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rF8GK-000622-Mz
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 07:42:04 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed6c652f-9d78-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 08:42:00 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c38de1ee4so26026435e9.0
 for <xen-devel@lists.xenproject.org>; Sun, 17 Dec 2023 23:42:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 s13-20020a05600c384d00b004030e8ff964sm42972289wmr.34.2023.12.17.23.41.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 Dec 2023 23:41:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed6c652f-9d78-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702885320; x=1703490120; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=uUOu6YYXKQBzpeitVPIjuzsau7+hn+uuhnA8u1uaQ/I=;
        b=WxOM4VRCSGAoSotGpyMhySh49vmWbfJ/2y/ucuTy5s4nG/sVqHkJU2YDFip+0qaYe5
         8UH9+tac/5rikgGCsrE/8KvmMgz01rV5e+qTwfGrw98BR2IYiwDwTI/wSUBmovnEYtZg
         /FAQ1jGnIl2DMDyFpn0zI3r+MpIjiyjdf/CqerwhXWRQvG31M7CL4Ds50eNIdAzBGxLV
         hJmNpkCVCKqXh6Etlj9k9/xJr9xqukce8DRLJxe37zUOE2MQv7ifEJoYVvN3cMBpPFZg
         oNeqrqjomf64dBAPJX1iUXEsP+5oRul8HnmzOgcuCJddpQRFeJeR+yHMlCPqUkuSDOSC
         7xsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702885320; x=1703490120;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=uUOu6YYXKQBzpeitVPIjuzsau7+hn+uuhnA8u1uaQ/I=;
        b=beAko5jMBRT5bFl7vErDOwGL4iFI9mwnP6EzYZ52ulIAy43OWYyis4albmtfxSzfDW
         lA7xQbAwT7yN8qixCDvENwzDBaGL/NMf7HMWbQlVgGn47ao4CaeTMdxTH5j58tFcNcVT
         V7aHqb5BAmLvCMWnpZLg2Ghz8alN/RQge8y/i75f0cGiKZbz7u8Dw6StluFAN3MSMr80
         7RCYZlT7UyUE/i++dzhvnJrFw+mZFI7eQmODaHQG2FJJkWEXwKBF1i4+sXW5gA/K+aDc
         kzFURPYdaoozBXXOvEBBdilqQ2Atxkq9Eo9amUo+zoGtwbw12HzHdUr+wwI2TTxKINep
         poTg==
X-Gm-Message-State: AOJu0YxNMUWCVBw5vOdEcR+nuytaiVQ1EoZvb77sawb2xFxEFZqkCYr+
	wbArK9IQciHwlsUChGwp9cKj
X-Google-Smtp-Source: AGHT+IFkY+JBZGBm1N86XLV9Rs0yLe8I4VmRrLCnqPBJ6S9ia/ip3gsQL1+dKZzUF724gtoKJnnEQg==
X-Received: by 2002:a1c:6a0e:0:b0:40c:2617:69c4 with SMTP id f14-20020a1c6a0e000000b0040c261769c4mr7958415wmc.78.1702885320230;
        Sun, 17 Dec 2023 23:42:00 -0800 (PST)
Message-ID: <a011c39d-7154-47d3-8604-073bcabb645b@suse.com>
Date: Mon, 18 Dec 2023 08:42:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012
 Rule 16.3
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <7b07ed4a2a87c2774b469eb0fa280c19f945b3a4.1702631924.git.federico.serafini@bugseng.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: <7b07ed4a2a87c2774b469eb0fa280c19f945b3a4.1702631924.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 10:26, Federico Serafini wrote:
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -327,6 +327,34 @@ therefore have the same behavior of a boolean"
>  -config=MC3R1.R14.4,etypes+={deliberate, "stmt(child(cond,child(expr,ref(^<?domain>?::is_dying$))))","src_type(enum)"}
>  -doc_end
>  
> +#
> +# Series 16.
> +#
> +
> +-doc_begin="Switch clauses ending with continue, goto, return statements are
> +safe."
> +-config=MC3R1.R16.3,terminals+={safe, "node(continue_stmt||goto_stmt||return_stmt)"}
> +-doc_end
> +
> +-doc_begin="Switch clauses ending with a call to a function that does not give
> +the control back are safe."
> +-config=MC3R1.R16.3,terminals+={safe, "call(property(noreturn))"}
> +-doc_end
> +
> +-doc_begin="Switch clauses ending with pseudo-keyword \"fallthrough\" are
> +safe."
> +-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(/fallthrough;/))))"}
> +-doc_end
> +
> +-doc_begin="Switch clauses ending with failure method \"BUG()\" are 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_end
> +
>  #
>  # Series 20.
>  #
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -276,6 +276,34 @@ Deviations related to MISRA C:2012 Rules:
>         therefore have the same behavior of a boolean.
>       - Project-wide deviation; tagged as `deliberate` for ECLAIR.
>  
> +   * - R16.3
> +     - Switch clauses ending with continue, goto, return statements are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Switch clauses ending with a call to a function that does not give
> +       the control back are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Switch clauses ending with failure method \"BUG()\" are safe.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R16.3
> +     - Existing switch clauses not ending with the break statement are safe if
> +       an explicit comment indicating the fallthrough intention is present.
> +       However, the use of such comments in new code is deprecated:
> +       pseudo-keyword "fallthrough" shall be used.
> +     - Tagged as `safe` for ECLAIR. The accepted comments are:
> +         - /\* fall through \*/
> +         - /\* fall through. \*/
> +         - /\* fallthrough \*/
> +         - /\* fallthrough. \*/
> +         - /\* Fall through \*/
> +         - /\* Fall through. \*/
> +         - /\* Fallthrough \*/
> +         - /\* Fallthrough. \*/

I was puzzled by there being 4 bullet points here, but 5 additions to the
other file. I don't think the wording here is sufficiently unambiguous towards
the use of the pseudo-keyword. If that's to remain a single bullet point, imo
the pseudo-keyword needs mentioning first, and only the talk should be about
comments as an alternative.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 07:55:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 07:55:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655681.1023388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF8Ta-0007oQ-E3; Mon, 18 Dec 2023 07:55:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655681.1023388; Mon, 18 Dec 2023 07:55:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF8Ta-0007oJ-Ab; Mon, 18 Dec 2023 07:55:46 +0000
Received: by outflank-mailman (input) for mailman id 655681;
 Mon, 18 Dec 2023 07:55: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rF8TZ-0007oD-HN
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 07:55:45 +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 d79c4749-9d7a-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 08:55:42 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c3ceded81so25986665e9.1
 for <xen-devel@lists.xenproject.org>; Sun, 17 Dec 2023 23:55:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fm21-20020a05600c0c1500b0040c03c3289bsm41299672wmb.37.2023.12.17.23.55.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 Dec 2023 23:55:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d79c4749-9d7a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702886143; x=1703490943; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=k0dGek6JxjcMTscNQvyJtmYk1nYp4HTQSC09bgrSgjw=;
        b=UeCLiphdRpzer/BNj1DCagywjqE+NTAfBRRTA8/WOLyfxMWUaz2cC/d+njTyCZUbw4
         yEsI11F3ULY88oKbD7FqYODiCOSd3my3CT6gFPVN6vK6VTLaMZ6bCaiX7gvPVfbKkIat
         guIPjI9KvhlL7QE6ng/w+6Mx6hRK2fUIYGFonoamHnJAumOmcS/eyo0FRDVvqQok04O1
         mnz5b1EFfO6Y01gccCN2McSbQsvO+CU8IIXvs/iZn5wt1hpD7aDZFmO0CFBUdcT15OXL
         bHEBJZTEgi+YtgqMWii3h+O4eq04P9kxw2oowc6lOLR06KDpzn7t1unab/VytUnvDAgw
         p/QA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702886143; x=1703490943;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=k0dGek6JxjcMTscNQvyJtmYk1nYp4HTQSC09bgrSgjw=;
        b=S2ozZE84qRbT9m+Z6cGHMzCi6Pkb/pBCvzFOw3Ad6d7xR85LM6v1/+6kvNY72RGVTF
         h1Z3maEaPRfj8wfPX8fDUKW0KcmEFmRinSeJd199bEFgQjg8urilUUANEvEvAFdF7iyX
         2a1hN40aCgN8kOOZBdJI12rjMBaZ19z9rTLgRX1dznK/TCYUN2vdNZlsFFLSMHrCMoBv
         MOqlEMEUhfxBmvIIbp8t7sDFTrSYAnKbzRUVoWr5365GN/iYQLf/RP/NdRmGIYGH1pMc
         3ers/FGFuMSyr3SeVW24G46YaVC+04YIoZojY/wH5Ha/xoCNjMQ/RQTCnrYDwRVYRQvR
         WD8g==
X-Gm-Message-State: AOJu0Yzngp+Qhb7C+0EmNEaqm8/jwaf3AnaVOOoeUoUUBBKNyPrRE9gT
	36VhfcBy6FlOFSAXxGxnz4UO
X-Google-Smtp-Source: AGHT+IH+tWQZo/x6ERMgfipW7QwnA0RNyxQNhWPvDuufUNPtilU0UqITD7RR/d2sBsWi+ijZfRUhVQ==
X-Received: by 2002:a05:600c:2147:b0:40b:5e21:ec26 with SMTP id v7-20020a05600c214700b0040b5e21ec26mr7922558wml.88.1702886142717;
        Sun, 17 Dec 2023 23:55:42 -0800 (PST)
Message-ID: <5d76295f-0438-4c5d-8b2e-73a1abcc96e6@suse.com>
Date: Mon, 18 Dec 2023 08:55:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Ping: [PATCH] Argo: drop meaningless mfn_valid() check
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: Christopher Clark <christopher.w.clark@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <580c6c48-9dd5-4296-8696-2b40beac2bc3@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <580c6c48-9dd5-4296-8696-2b40beac2bc3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Christopher,

On 27.11.2023 14:55, Jan Beulich wrote:
> Holding a valid struct page_info * in hands already means the referenced
> MFN is valid; there's no need to check that again. Convert the checking
> logic to a switch(), to help keeping the extra (and questionable) x86-
> only check in somewhat tidy shape.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

much like "Argo: don't obtain excess page references" (with which the one
here actually also conflicts), this one is awaiting your ack or otherwise.
Note that the other one has now been pending for quite a bit more than a
year. I hope the same isn't going to happen here ...

Thanks, Jan

> ---
> Initially I had this (with less code churn) as
> 
> #ifdef CONFIG_X86
>     if ( p2mt == p2m_ram_logdirty )
>         ret = -EAGAIN;
>     else
> #endif
>     if ( (p2mt != p2m_ram_rw) ||
>          !get_page_type(page, PGT_writable_page) )
>         ret = -EINVAL;
> 
> But the "else" placement seemed too ugly to me. Otoh there better
> wouldn't be any special casing of log-dirty here (and instead such a
> page be converted, perhaps right in check_get_page_from_gfn() when
> readonly=false), at which point the odd "else" would go away, and the
> if() likely again be preferable over the switch().
> 
> --- a/xen/common/argo.c
> +++ b/xen/common/argo.c
> @@ -1421,15 +1421,24 @@ find_ring_mfn(struct domain *d, gfn_t gf
>          return ret;
>  
>      *mfn = page_to_mfn(page);
> -    if ( !mfn_valid(*mfn) )
> -        ret = -EINVAL;
> +
> +    switch ( p2mt )
> +    {
> +    case p2m_ram_rw:
> +        if ( !get_page_and_type(page, d, PGT_writable_page) )
> +            ret = -EINVAL;
> +        break;
> +
>  #ifdef CONFIG_X86
> -    else if ( p2mt == p2m_ram_logdirty )
> +    case p2m_ram_logdirty:
>          ret = -EAGAIN;
> +        break;
>  #endif
> -    else if ( (p2mt != p2m_ram_rw) ||
> -              !get_page_and_type(page, d, PGT_writable_page) )
> +
> +    default:
>          ret = -EINVAL;
> +        break;
> +    }
>  
>      put_page(page);
>  
> 



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 08:07:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 08:07:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655689.1023398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF8ew-0001kh-TM; Mon, 18 Dec 2023 08:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655689.1023398; Mon, 18 Dec 2023 08:07: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 1rF8ew-0001ka-P6; Mon, 18 Dec 2023 08:07:30 +0000
Received: by outflank-mailman (input) for mailman id 655689;
 Mon, 18 Dec 2023 08:07:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MePR=H5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rF8ev-0001kU-Ls
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 08:07:29 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b3a95b7-9d7c-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 09:07:26 +0100 (CET)
Received: from [192.168.1.229] (93-36-216-194.ip62.fastwebnet.it
 [93.36.216.194])
 by support.bugseng.com (Postfix) with ESMTPSA id 828D64EE0741;
 Mon, 18 Dec 2023 09:07:25 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b3a95b7-9d7c-11ee-9b0f-b553b5be7939
Message-ID: <180268ec-b3c3-43b6-a1ea-2f7262580621@bugseng.com>
Date: Mon, 18 Dec 2023 09:07:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: add deviations for MISRA C:2012
 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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <7b07ed4a2a87c2774b469eb0fa280c19f945b3a4.1702631924.git.federico.serafini@bugseng.com>
 <a011c39d-7154-47d3-8604-073bcabb645b@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <a011c39d-7154-47d3-8604-073bcabb645b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18/12/23 08:42, Jan Beulich wrote:
> On 15.12.2023 10:26, Federico Serafini wrote:
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -327,6 +327,34 @@ therefore have the same behavior of a boolean"
>>   -config=MC3R1.R14.4,etypes+={deliberate, "stmt(child(cond,child(expr,ref(^<?domain>?::is_dying$))))","src_type(enum)"}
>>   -doc_end
>>   
>> +#
>> +# Series 16.
>> +#
>> +
>> +-doc_begin="Switch clauses ending with continue, goto, return statements are
>> +safe."
>> +-config=MC3R1.R16.3,terminals+={safe, "node(continue_stmt||goto_stmt||return_stmt)"}
>> +-doc_end
>> +
>> +-doc_begin="Switch clauses ending with a call to a function that does not give
>> +the control back are safe."
>> +-config=MC3R1.R16.3,terminals+={safe, "call(property(noreturn))"}
>> +-doc_end
>> +
>> +-doc_begin="Switch clauses ending with pseudo-keyword \"fallthrough\" are
>> +safe."
>> +-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(/fallthrough;/))))"}
>> +-doc_end
>> +
>> +-doc_begin="Switch clauses ending with failure method \"BUG()\" are 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_end
>> +
>>   #
>>   # Series 20.
>>   #
>> --- a/docs/misra/deviations.rst
>> +++ b/docs/misra/deviations.rst
>> @@ -276,6 +276,34 @@ Deviations related to MISRA C:2012 Rules:
>>          therefore have the same behavior of a boolean.
>>        - Project-wide deviation; tagged as `deliberate` for ECLAIR.
>>   
>> +   * - R16.3
>> +     - Switch clauses ending with continue, goto, return statements are safe.
>> +     - Tagged as `safe` for ECLAIR.
>> +
>> +   * - R16.3
>> +     - Switch clauses ending with a call to a function that does not give
>> +       the control back are safe.
>> +     - Tagged as `safe` for ECLAIR.
>> +
>> +   * - R16.3
>> +     - Switch clauses ending with failure method \"BUG()\" are safe.
>> +     - Tagged as `safe` for ECLAIR.
>> +
>> +   * - R16.3
>> +     - Existing switch clauses not ending with the break statement are safe if
>> +       an explicit comment indicating the fallthrough intention is present.
>> +       However, the use of such comments in new code is deprecated:
>> +       pseudo-keyword "fallthrough" shall be used.
>> +     - Tagged as `safe` for ECLAIR. The accepted comments are:
>> +         - /\* fall through \*/
>> +         - /\* fall through. \*/
>> +         - /\* fallthrough \*/
>> +         - /\* fallthrough. \*/
>> +         - /\* Fall through \*/
>> +         - /\* Fall through. \*/
>> +         - /\* Fallthrough \*/
>> +         - /\* Fallthrough. \*/
> 
> I was puzzled by there being 4 bullet points here, but 5 additions to the
> other file. I don't think the wording here is sufficiently unambiguous towards
> the use of the pseudo-keyword. If that's to remain a single bullet point, imo
> the pseudo-keyword needs mentioning first, and only the talk should be about
> comments as an alternative.

I'll send a v3 to include Stefano's observations and an
explicit bullet point for pseudo-keyword fallthrough.

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 08:18:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 08:18:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655695.1023407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF8pB-0003Wl-R4; Mon, 18 Dec 2023 08:18:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655695.1023407; Mon, 18 Dec 2023 08:18:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF8pB-0003We-O7; Mon, 18 Dec 2023 08:18:05 +0000
Received: by outflank-mailman (input) for mailman id 655695;
 Mon, 18 Dec 2023 08:18:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rF8p9-0003WY-V3
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 08:18:03 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f680f39b-9d7d-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 09:18:02 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c824b199fso16830125e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 00:18:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 l39-20020a05600c1d2700b0040c2c5f5844sm41142067wms.21.2023.12.18.00.18.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 00:18:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f680f39b-9d7d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702887482; x=1703492282; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=9rpGK4FKMjSoKDVcFG2fZXFsDN1EVeVcSGyQ8JgVQYs=;
        b=XPwx1CouMzKGytDSiH8yCCkwzJO+Rx6tIj4G34UirKAW1ZokYns8ARn6ulSbu1Q+bK
         eUUzv4BlplYm3jMVZWPJzg2wDb9T/4jK9vQFVQS9X6Q1EzZvFFVHQqRlEdkVC5rtf7FK
         /JBnnh2S8dUTmMjSqVr4p2/EMeckjtJDSGlrw5LGLi8J805pFcqB+pyr3P0IX1SiBZch
         lajn3NgEMlS4nOq7XH7VC9G4RBVE92mcr+iL+eEQ/R0fdBkAXHJcchay3UtgXaas3BUR
         bz8E1JfaHdJd5Q2cEctBuBhsAQZworgafE0tcI/13acnnWAi1yt4IekFRJnwNMpygJXo
         H2IQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702887482; x=1703492282;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=9rpGK4FKMjSoKDVcFG2fZXFsDN1EVeVcSGyQ8JgVQYs=;
        b=tP7rlOIZ74ynC39tjcBAAqDGM946Ti1C6rumFvSshTCb2I8b9GtXRu9+FoROQ2KXUy
         vKe+VW8mll3TFPQ/bGLZDpeENn6zf6CfmlFdwG8WyjuBbQrX3OwDdJCuiyu6RetD+rBE
         4u7jpofxyX1sGLtMj9eFo3M0sL+3ES1Sc/7qCyqvptf+nD3dbZMfoY1Tqjdx8P8v37QM
         hc7ubs+LtfUgqUEq1fX+fXYhesD5cTlVDxHu89/P4NT8BC93p0jz9BlfgH7rK2DT1prw
         nojd+UUczwqu2yCqndR8rNZeH/TnG69PvtuVo0VACF3zFCFPEzwLYacMymkxMShHqoiZ
         RcHg==
X-Gm-Message-State: AOJu0YwuAuURv1Kooe5nEKPZdIgtKky+puPp6iHgtUlFTQjFIbThh/fT
	7W+WE1DLmEnbYwUgElv/ETsF
X-Google-Smtp-Source: AGHT+IHqoN1AddQzOK1JbWHSC4RUr0EQBMogHPchpUB6RY56oCFDprGkuHSLM7hLAJ2m8JdFpiNOKQ==
X-Received: by 2002:a05:600c:458d:b0:40b:5e1c:af2a with SMTP id r13-20020a05600c458d00b0040b5e1caf2amr7804720wmo.48.1702887482413;
        Mon, 18 Dec 2023 00:18:02 -0800 (PST)
Message-ID: <a9db3cb0-f085-47c2-bcaa-aa4f7351d586@suse.com>
Date: Mon, 18 Dec 2023 09:18:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 9/9] xen: add SAF deviation for safe cast removal.
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Simone Ballarin <simone.ballarin@bugseng.com>,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
 <36e996b864853dba26a9c9fb9c9c674e92cc935e.1702555387.git.maria.celeste.cesario@bugseng.com>
 <b93417c7-1375-4bf4-ace2-d36bd63c8b0b@suse.com>
 <alpine.DEB.2.22.394.2312141355391.3175268@ubuntu-linux-20-04-desktop>
 <698cb944-3e91-498c-99ba-ff0849723285@suse.com>
 <alpine.DEB.2.22.394.2312151127450.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312151127450.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 22:02, Stefano Stabellini wrote:
> On Fri, 15 Dec 2023, Jan Beulich wrote:
>> On 14.12.2023 23:04, Stefano Stabellini wrote:
>>> On Thu, 14 Dec 2023, Jan Beulich wrote:
>>>> On 14.12.2023 13:07, Simone Ballarin wrote:
>>>>> --- a/docs/misra/safe.json
>>>>> +++ b/docs/misra/safe.json
>>>>> @@ -28,6 +28,14 @@
>>>>>          },
>>>>>          {
>>>>>              "id": "SAF-3-safe",
>>>>> +            "analyser": {
>>>>> +                "eclair": "MC3R1.R11.8"
>>>>> +            },
>>>>> +            "name": "MC3R1.R11.8: removal of const qualifier to comply with function signature",
>>>>> +            "text": "It is safe to cast away const qualifiers to comply with function signature if the function does not modify the pointee."
>>>>
>>>> I'm not happy with this description, as it invites for all sorts of abuse.
>>>> Yet I'm also puzzled that ...
>>>
>>> We can improve the language but the concept would still be the same. For
>>> instance:
>>>
>>> A single function might or might not modify the pointee depending on
>>> other function parameters (for instance a single function that could
>>> either read or write depending on how it is called). It is safe to cast
>>> away const qualifiers when passing a parameter to a function of this
>>> type when the other parameters are triggering a read-only operation.
>>
>> Right, but I think the next here needs to be setting as tight boundaries
>> as possible: It should cover only this one specific pattern. Anything
>> else would better get its own deviation, imo.
> 
> OK. What about:
> 
> A single function might or might not modify the pointee depending on
> other function parameters, for instance a common pattern is to implement
> one function that could either read or write depending on how it is
> called. It is safe to cast away const qualifiers when passing a
> parameter to a function following this pattern when the other parameters
> are triggering a read-only operation.
> 
> Feel free to suggest a better wording.

Well, my point was to get rid of "for instance" and "common pattern" (and
anything alike). E.g.:

"A single function could either read or write through a passed in pointer,
 depending on how it is called. It is deemed safe to cast away a const
 qualifier when passing a pointer to such a function, when the other
 parameters guarantee read-only operation."

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 08:26:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 08:26:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655698.1023417 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF8xG-0005Mt-Iz; Mon, 18 Dec 2023 08:26:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655698.1023417; Mon, 18 Dec 2023 08: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 1rF8xG-0005Mm-GN; Mon, 18 Dec 2023 08:26:26 +0000
Received: by outflank-mailman (input) for mailman id 655698;
 Mon, 18 Dec 2023 08:26:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rF8xE-0005Mg-LD
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 08:26:24 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20f262c1-9d7f-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 09:26:23 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c3ca9472dso31179565e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 00:26:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bi11-20020a05600c3d8b00b0040c2963e5f3sm40658941wmb.38.2023.12.18.00.26.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 00:26:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20f262c1-9d7f-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702887983; x=1703492783; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=d5pT9m4n+V1mSNPWP2Fz4wO3/NsQmAiWtPyv5IaAhJQ=;
        b=fF/z0EEfDj42mKQCUyg/l7lAMtETdCtLVyQefxCCm6o8VPj44qERmJFSKoaV2dxQ5u
         t6evT9ViILpcLfBEPkXlmTk0uttWN1z6ah4hciu+FAKLMjUnGjKoBsE74FCKPsJkrDHY
         /u7gel27+A2W+91P0TvGVCKPcUPJh5gk6dkPVTERef1Qt5f41tdpYjSC8GxyLy9I2pkK
         O8CDmiTYaxnahmTi9tC7vAxmS3LcpIp6khzB/uyAXaVIpF/8geJR+hhiN25jwiVl6bSJ
         DbumM70phILCjEcNRNZTgvKcdqDJ3598iuBzbWsmsEskBHEjgAdQfJp4O5etNHrYf2C+
         CzsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702887983; x=1703492783;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=d5pT9m4n+V1mSNPWP2Fz4wO3/NsQmAiWtPyv5IaAhJQ=;
        b=F1bHeMvrhJjslf/NY3IyJYtVaOt4qlGwbNbv8BI76yxRfmcuJNUCNaahNHhqAR2RZo
         Fs4HCUrwSaGoQhC3VEIx8IpjUB2jc/iTSShwFbJ/CQjA5NrWSt6BmIRm1OdbVRmyMIHl
         sABJv77hb1unNg7Cei7ILyxX5sEfcgOds+TpETi7iiKvjcMlHUoDcxkiJ1aHPvk9xFu1
         CgJFZm60vXgjC7NPbEGlZ8PowA4olSN6Yux2AfVxoNGqqP5sN/HbOQbJteFMg+PDhg/Q
         X4UZ4D87Z+5/QBZXVTcfzPYWiQ0zhTGS3YvWmj/WOPHDStZSd6rvRxiFeTOtJItHMKFn
         BW3g==
X-Gm-Message-State: AOJu0Yw1xkdJ9jZk6hro8zldB4iBVskV66RYc95+dnetdxjpGfw/wPaG
	iTZpOqHf6HEV68DgI/G2RT7Z
X-Google-Smtp-Source: AGHT+IFtbHEcoxqOrwd1E4CrBz9gR2uuGK5NXTBXrMe6TzhP1jzQNIAmT6Rv76qXahfEgJ8rbOzmxQ==
X-Received: by 2002:a05:600c:6020:b0:40b:5e59:99bd with SMTP id az32-20020a05600c602000b0040b5e5999bdmr5569257wmb.221.1702887983008;
        Mon, 18 Dec 2023 00:26:23 -0800 (PST)
Message-ID: <3a41ab3a-c1e6-4371-bd71-26cd97baffd6@suse.com>
Date: Mon, 18 Dec 2023 09:26:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: allow non-BIGMEM configs to boot on >= 16Tb systems
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <4b282f2f-bce8-4c98-897c-2866ec1b6dd0@suse.com>
 <ZXxovHNdNK_OfHUs@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZXxovHNdNK_OfHUs@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2023 15:54, Roger Pau MonnÃ© wrote:
> On Wed, Jun 07, 2023 at 08:17:30AM +0200, Jan Beulich wrote:
>> While frame table setup, directmap init, and boot allocator population
>> respect all intended bounds, the logic passing memory to the heap
>> allocator which wasn't passed to the boot allocator fails to respect
>> max_{pdx,pfn}. This then typically triggers the BUG() in
>> free_heap_pages() after checking page state, because of hitting a struct
>> page_info instance which was set to all ~0.
>>
>> Of course all the memory above the 16Tb boundary is still going to
>> remain unused; using it requires BIGMEM=y. And of course this fix
>> similarly ought to help BIGMEM=y configurations on >= 123Tb systems
>> (where all the memory beyond that boundary continues to be unused).
>>
>> Fixes: bac2000063ba ("x86-64: reduce range spanned by 1:1 mapping and frame table indexes")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks.

>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1722,15 +1722,16 @@ void __init noreturn __start_xen(unsigne
>>  
>>      if ( max_page - 1 > virt_to_mfn(HYPERVISOR_VIRT_END - 1) )
>>      {
>> -        unsigned long limit = virt_to_mfn(HYPERVISOR_VIRT_END - 1);
>> +        unsigned long lo = virt_to_mfn(HYPERVISOR_VIRT_END - 1);
>> +        unsigned long hi = pdx_to_pfn(max_pdx - 1) + 1;
> 
> Maybe use max_page to avoid the pdx_to_pfn() call?  (And is also more
> in context with the condition on the outside if).

You mean

        unsigned long hi = min(pdx_to_pfn(max_pdx - 1) + 1, max_page);

? I could switch to that, yes. I wouldn't feel well switching to using
just max_page, especially with me having nowhere to (reasonably) test.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 08:27:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 08:27:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655701.1023428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF8yU-0005tn-UC; Mon, 18 Dec 2023 08:27:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655701.1023428; Mon, 18 Dec 2023 08:27: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 1rF8yU-0005tg-RD; Mon, 18 Dec 2023 08:27:42 +0000
Received: by outflank-mailman (input) for mailman id 655701;
 Mon, 18 Dec 2023 08:27: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=E1zl=H5=bounce.vates.tech=bounce-md_30504962.6580027a.v1-1891faa1f0cd4165864c7527081f5c54@srs-se1.protection.inumbo.net>)
 id 1rF8yU-0005tY-5y
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 08:27:42 +0000
Received: from mail186-15.suw21.mandrillapp.com
 (mail186-15.suw21.mandrillapp.com [198.2.186.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4dfffffd-9d7f-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 09:27:39 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-15.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4SttHG3vgzzPm0PS8
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 08:27:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1891faa1f0cd4165864c7527081f5c54; Mon, 18 Dec 2023 08:27: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: 4dfffffd-9d7f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mandrill; t=1702888058; x=1703148558;
	bh=DE/IAiWNoIP0sxSwAH4FpSFwG4oZ+DXaMs/NeHMvJdg=;
	h=From:Subject:Message-Id:To:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=RsNKDO9raUgadUhaeEHGBp2bS0vvUNU1b4Wd/ON//wcQVsAeN44jxjTy2DCYsqcTb
	 OEzo8iwPnvxjNVqaPkkr19P7z0CPFlMqIlX6PpEB0m7/vJ93sjeNoxrvUQ4ncVSYVG
	 1X+T1z9IMqGPpt2/BjsENTQ9cvDVRsLvEneCekJ4=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
	s=mandrill; t=1702888058; x=1703148558; i=yann.dirson@vates.tech;
	bh=DE/IAiWNoIP0sxSwAH4FpSFwG4oZ+DXaMs/NeHMvJdg=;
	h=From:Subject:Message-Id:To:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=fEVj+lo5ldd2HQTBGGgOW+xP4mwEsUxinSQE3bQB5qrffxd/BngmMk7Nk0h5UDM6m
	 zRsCiNBTWR165OqfnskAiIpMLiziGWvLdcV+7U17tSbeedJveTDA4npSAreyKMNSDF
	 C63eBNJu3ebBEnmFIZJlFpB4x5raljjWqum+GcrQ=
From: Yann Dirson <yann.dirson@vates.tech>
Subject: =?utf-8?Q?Rust=20Xen=20Guest=20Agent=200.3.0?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1702888057779
Message-Id: <59441526-c583-44b2-aa48-f5a81eeb9f08@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.1891faa1f0cd4165864c7527081f5c54?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20231218:md
Date: Mon, 18 Dec 2023 08:27:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

A new pre-release of our guest agent prototype written in Rust is
available, numbered 0.3.0 [1].  Identified issues and work to be done
are tracked in Gitlab issue tracker [2].

As always, feedback will be greatly appreciated!

Highlights:

### new features

* available and total guest memory are now collected in FreeBSD guests
* command-line flags `--stderr` and `--loglevel` were added to help
   troubleshooting

### behavior changes

* logs are now sent to syslog by default on Unix-like OS

### bugfixes

* the agent does not require the `libxenstore.so` symlink typically
   coming from Xen development package, only the runtime library
   package is now required
* VIF hot(un)plug is now properly handled

### other noteworthy changes

* executables and packages for supported guest platforms (currently
   Linux/Glibc and FreeBSD, both for x86_64 guests) are now available
   from Gitlab CI pipelines
* APT repositories (though not signed) are now available from Gitlab
   CI pipelines
* CI pipelines now testbuilds every commit in a merge request


[1] https://gitlab.com/xen-project/xen-guest-agent/-/releases/0.3.0
[2] https://gitlab.com/xen-project/xen-guest-agent/-/issues


Yann Dirson | Vates Platform Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 09:00:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 09:00:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655711.1023438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF9UL-0003Tr-LO; Mon, 18 Dec 2023 09:00:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655711.1023438; Mon, 18 Dec 2023 09: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 1rF9UL-0003Tk-HY; Mon, 18 Dec 2023 09:00:37 +0000
Received: by outflank-mailman (input) for mailman id 655711;
 Mon, 18 Dec 2023 09:00: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=MePR=H5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rF9UK-0003Te-M5
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 09:00:36 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e763abf3-9d83-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 10:00:34 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.165.135])
 by support.bugseng.com (Postfix) with ESMTPSA id 803954EE0742;
 Mon, 18 Dec 2023 10:00:31 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e763abf3-9d83-11ee-9b0f-b553b5be7939
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH v3] automation/eclair: add deviations for MISRA C:2012 Rule 16.3
Date: Mon, 18 Dec 2023 10:00:18 +0100
Message-Id: <23f4bf337883f1d6b67f7bd8466a9c299713e9d4.1702889534.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C:2012 Rule 16.3 states that an unconditional break statement
shall terminate every switch-clause.

Update ECLAIR configuration to take into account:
  - continue, goto, return statements;
  - functions with attribute noreturn;
  - pseudo-keyword fallthrough;
  - macro BUG();
  - comments.

Update docs/misra/deviations.rst accordingly.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Changes in v3:
  - added bullet point for pseudo-keyword fallthrough;
  - mentioned noreturn attribute;
  - fixed typo.
---
Changes in v2:
  - applied suggestions coming from
    https://lists.xenproject.org/archives/html/xen-devel/2023-12/msg00957.html
---
 .../eclair_analysis/ECLAIR/deviations.ecl     | 28 ++++++++++++++++
 docs/misra/deviations.rst                     | 32 +++++++++++++++++++
 2 files changed, 60 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 683f2bbfe8..0e8152f9c3 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -327,6 +327,34 @@ therefore have the same behavior of a boolean"
 -config=MC3R1.R14.4,etypes+={deliberate, "stmt(child(cond,child(expr,ref(^<?domain>?::is_dying$))))","src_type(enum)"}
 -doc_end
 
+#
+# Series 16.
+#
+
+-doc_begin="Switch clauses ending with continue, goto, return statements are
+safe."
+-config=MC3R1.R16.3,terminals+={safe, "node(continue_stmt||goto_stmt||return_stmt)"}
+-doc_end
+
+-doc_begin="Switch clauses ending with a call to a function that does not give
+the control back (i.e., a function with attribute noreturn) are safe."
+-config=MC3R1.R16.3,terminals+={safe, "call(property(noreturn))"}
+-doc_end
+
+-doc_begin="Switch clauses ending with pseudo-keyword \"fallthrough\" are
+safe."
+-config=MC3R1.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(/fallthrough;/))))"}
+-doc_end
+
+-doc_begin="Switch clauses ending with failure method \"BUG()\" are 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_end
+
 #
 # Series 20.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index eda3c8100c..0131d72959 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -276,6 +276,38 @@ Deviations related to MISRA C:2012 Rules:
        therefore have the same behavior of a boolean.
      - Project-wide deviation; tagged as `deliberate` for ECLAIR.
 
+   * - R16.3
+     - Switch clauses ending with continue, goto, return statements are safe.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R16.3
+     - Switch clauses ending with a call to a function that does not give
+       the control back (i.e., a function with attribute noreturn) are safe.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R16.3
+     - Switch clauses ending with pseudo-keyword \"fallthrough\" are safe.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R16.3
+     - Switch clauses ending with failure method \"BUG()\" are safe.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R16.3
+     - Existing switch clauses not ending with the break statement are safe if
+       an explicit comment indicating the fallthrough intention is present.
+       However, the use of such comments in new code is deprecated:
+       the pseudo-keyword "fallthrough" shall be used.
+     - Tagged as `safe` for ECLAIR. The accepted comments are:
+         - /\* fall through \*/
+         - /\* fall through. \*/
+         - /\* fallthrough \*/
+         - /\* fallthrough. \*/
+         - /\* Fall through \*/
+         - /\* Fall through. \*/
+         - /\* Fallthrough \*/
+         - /\* Fallthrough. \*/
+
    * - R20.7
      - Code violating Rule 20.7 is safe when macro parameters are used:
        (1) as function arguments;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 09:04:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 09:04:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655714.1023448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF9Y7-0004OQ-55; Mon, 18 Dec 2023 09:04:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655714.1023448; Mon, 18 Dec 2023 09:04: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 1rF9Y7-0004OJ-2K; Mon, 18 Dec 2023 09:04:31 +0000
Received: by outflank-mailman (input) for mailman id 655714;
 Mon, 18 Dec 2023 09:04: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 1rF9Y5-0004O9-91; Mon, 18 Dec 2023 09:04: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 1rF9Y4-0001Eb-SQ; Mon, 18 Dec 2023 09:04: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 1rF9Y4-0001GG-IT; Mon, 18 Dec 2023 09:04:28 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rF9Y4-0001tV-I5; Mon, 18 Dec 2023 09:04: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=PLA1lCyabivRuz9Z6ASlfFpnObM0ox6xATOYkkPcueM=; b=jKv7lKfGOfB/TNHE82mXdHT18U
	cu9T00jlq7bdJfPeaQA7ywNcYhz6S0hFWTl0NIWDsiw/Io8J5RZTgjRiHoS3VlosndXQbxq1CbWsV
	uMeQYyCfCYBsANTuod2y+w988PGNGWQJukuNH04yk1eWXEJH78V/cH2rtqhD9AFWKwkg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184163-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184163: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=74daeded0cabe87d26546f07f9a3911cb60ec0e1
X-Osstest-Versions-That:
    ovmf=3ce5f2d445e51efe2aebaa227a055e5c8522d00b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 18 Dec 2023 09:04:28 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 74daeded0cabe87d26546f07f9a3911cb60ec0e1
baseline version:
 ovmf                 3ce5f2d445e51efe2aebaa227a055e5c8522d00b

Last test of basis   184142  2023-12-14 22:12:46 Z    3 days
Testing same since   184163  2023-12-18 06:42:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Daniel Nguyen <daniel.nguyen@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    
 test-amd64-i386-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
   3ce5f2d445..74daeded0c  74daeded0cabe87d26546f07f9a3911cb60ec0e1 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 09:12:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 09:12:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655722.1023457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rF9fc-0006Br-TH; Mon, 18 Dec 2023 09:12:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655722.1023457; Mon, 18 Dec 2023 09:12: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 1rF9fc-0006Bk-Qj; Mon, 18 Dec 2023 09:12:16 +0000
Received: by outflank-mailman (input) for mailman id 655722;
 Mon, 18 Dec 2023 09:12:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MePR=H5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rF9fb-0006Be-I2
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 09:12:15 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87d75bae-9d85-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 10:12:13 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.165.135])
 by support.bugseng.com (Postfix) with ESMTPSA id D76BF4EE0742;
 Mon, 18 Dec 2023 10:12:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87d75bae-9d85-11ee-9b0f-b553b5be7939
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH v2] automation/eclair: update configuration of MISRA C:2012 Rule 5.6
Date: Mon, 18 Dec 2023 10:12:00 +0100
Message-Id: <1d0448b5ef2d3c84f5df77b78c832836826bc9fe.1702890135.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Deviate typedef names that are delberately defined multiple times.

Update docs/misra/deviations.rst accordingly.

Tag Rule 5.6 as clean.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Changes in v2:
  - fixed typo.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 automation/eclair_analysis/ECLAIR/tagging.ecl    | 2 +-
 docs/misra/deviations.rst                        | 7 +++++++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 683f2bbfe8..195ddddde8 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -90,6 +90,12 @@ depending on the guest."
 -config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
 -doc_end
 
+-doc_begin="On X86, the types \"guest_intpte_t\", \"guest_l1e_t\" and
+\"guest_l2e_t\" are deliberately defined multiple times, depending on the
+number of guest paging levels."
+-config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/include/asm/guest_pt\\.h$)))&&any_area(any_loc(text(^.*(guest_intpte_t|guest_l[12]e_t).*$)))"}
+-doc_end
+
 -doc_begin="The following files are imported from the gnu-efi package."
 -file_tag+={adopted_r5_6,"^xen/include/efi/.*$"}
 -file_tag+={adopted_r5_6,"^xen/arch/.*/include/asm/.*/efibind\\.h$"}
diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index d5d3bff396..900c532196 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -30,7 +30,7 @@
 
 -doc_begin="Clean guidelines: new violations for these guidelines are not accepted."
 
--service_selector={clean_guidelines_common,"MC3R1.D1.1||MC3R1.D2.1||MC3R1.D4.11||MC3R1.D4.14||MC3R1.R1.1||MC3R1.R1.3||MC3R1.R1.4||MC3R1.R2.2||MC3R1.R3.1||MC3R1.R3.2||MC3R1.R4.1||MC3R1.R4.2||MC3R1.R5.1||MC3R1.R5.2||MC3R1.R5.4||MC3R1.R6.1||MC3R1.R6.2||MC3R1.R7.1||MC3R1.R8.1||MC3R1.R8.5||MC3R1.R8.6||MC3R1.R8.8||MC3R1.R8.10||MC3R1.R8.12||MC3R1.R8.14||MC3R1.R9.2||MC3R1.R9.4||MC3R1.R9.5||MC3R1.R12.5||MC3R1.R17.3||MC3R1.R17.4||MC3R1.R17.6||MC3R1.R20.13||MC3R1.R20.14||MC3R1.R21.13||MC3R1.R21.19||MC3R1.R21.21||MC3R1.R22.2||MC3R1.R22.4||MC3R1.R22.5||MC3R1.R22.6"
+-service_selector={clean_guidelines_common,"MC3R1.D1.1||MC3R1.D2.1||MC3R1.D4.11||MC3R1.D4.14||MC3R1.R1.1||MC3R1.R1.3||MC3R1.R1.4||MC3R1.R2.2||MC3R1.R3.1||MC3R1.R3.2||MC3R1.R4.1||MC3R1.R4.2||MC3R1.R5.1||MC3R1.R5.2||MC3R1.R5.4||MC3R1.R5.6||MC3R1.R6.1||MC3R1.R6.2||MC3R1.R7.1||MC3R1.R8.1||MC3R1.R8.5||MC3R1.R8.6||MC3R1.R8.8||MC3R1.R8.10||MC3R1.R8.12||MC3R1.R8.14||MC3R1.R9.2||MC3R1.R9.4||MC3R1.R9.5||MC3R1.R12.5||MC3R1.R17.3||MC3R1.R17.4||MC3R1.R17.6||MC3R1.R20.13||MC3R1.R20.14||MC3R1.R21.13||MC3R1.R21.19||MC3R1.R21.21||MC3R1.R22.2||MC3R1.R22.4||MC3R1.R22.5||MC3R1.R22.6"
 }
 
 -setq=target,getenv("XEN_TARGET_ARCH")
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index eda3c8100c..48d0e6ed58 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -103,6 +103,13 @@ Deviations related to MISRA C:2012 Rules:
        type of guest to service.
      - Tagged as `deliberate` for ECLAIR.
 
+   * - R5.6
+     - On X86, some types are deliberately defined multiple times, depending on
+       the number of guest paging levels.
+     - Tagged as `deliberate` for ECLAIR. Such types are:
+         - guest_intpte_t
+         - guest_l[12]e_t
+
    * - R5.6
      - Some files are not subject to respect MISRA rules at
        the moment, but, among these out-of-scope files, there are definitions
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 09:56:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 09:56:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655727.1023468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAMC-0003V2-4h; Mon, 18 Dec 2023 09:56:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655727.1023468; Mon, 18 Dec 2023 09:56:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAMC-0003Uc-1U; Mon, 18 Dec 2023 09:56:16 +0000
Received: by outflank-mailman (input) for mailman id 655727;
 Mon, 18 Dec 2023 09:56: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFAMA-0003UW-J1
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 09:56:14 +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 ab939503-9d8b-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 10:56:10 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2cc6b5a8364so9793751fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 01:56:10 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 17-20020a05651c009100b002cc77d0434esm101432ljq.22.2023.12.18.01.56.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 01:56:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab939503-9d8b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702893369; x=1703498169; 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=1wi5oz66ZuTJB947miRH47KjYEnI0bUKJACGV50xjrg=;
        b=X8Vk1T1leP8edf34/NZ4eQcsJ+t4lP5p1lsX406MXbjQ9A3IbSnee/Mb/0NoYbCErr
         GgnvDrtO0QEUFdJf5jMUe0VjKBgG+Swt9tprwWJx4ita1OUx2XUYjH3pc4zyyD3AZO0C
         Mm1mp2YiD+Kos0WeXGqpdikWGVi7ZgxCgw53zwS+hQoIIUFVKwlOPauUBNldULEYesXn
         FNYW6w5y7595SlF2VHhZzMFFyXB8R1HQpHVuCoIQC1Z2+kv93Ye5TqpiXyQ//5Y5fk5d
         ajC082kGyoZfJm2fIDCL6OWBr6xeb2FirIq7a4nGblUNbTEkmxtuOPsWpzR5Pb58uaf+
         1Pmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702893369; x=1703498169;
        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=1wi5oz66ZuTJB947miRH47KjYEnI0bUKJACGV50xjrg=;
        b=oTbiqiMz4t8FlQRoOEQ9psQCHHa8yeZWzqO0wp9ofpMIsvCuxGTOB8eJ6W+N8ix0ou
         EZcbPIQ1LExcQfaCqcia9EkRHiU+bml3uqZoLkz8C6mgNt7grLVoPkpnjZsTMyNctFG6
         jeLDGe416wMy9U+Tqf8xYrOr3heVOhAJ4odRz0ab49t/CFiSp9oOW5QZzzOOD5bJ33Mz
         vm8EF71QDSXnKBV2N1LWBVwkF+c9ewGkpG6ApJm8hOUlHJ4pLXftkGR+eqBixLaMNKZB
         1WiwvTPRE8Tw7J2JDjooY+ATOilCqtqjSGVkFtoNYLaCaKuR5ecgsKZrvSiC/sPHo6ug
         JcQw==
X-Gm-Message-State: AOJu0Yx8eyEYMt8Z3/95crwCRzI8QW3dzqBPeY6X496gcsPC9ofeeA1b
	WwA/iZiOcJWQyJogrTnVNWA=
X-Google-Smtp-Source: AGHT+IEZC0Ykx+b4/S1W3aG1lInvTw4Ez//R/vmHZVceOchcfTDDaB6l60yA56NwArnO7DGwdyOpBg==
X-Received: by 2002:a05:651c:1a21:b0:2cb:2f3b:c89e with SMTP id by33-20020a05651c1a2100b002cb2f3bc89emr6639672ljb.20.1702893369288;
        Mon, 18 Dec 2023 01:56:09 -0800 (PST)
Message-ID: <5d9896c04a906c7ee379d6788e4c854e90cef363.camel@gmail.com>
Subject: Re: [PATCH v2 21/39] xen/riscv: introduce bit operations
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 11:56:07 +0200
In-Reply-To: <ab8479db-b9f0-43b2-a751-349c7a59287d@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <20732007fb103115c0e01cefea7d113b8a7ad8e9.1700761381.git.oleksii.kurochko@gmail.com>
	 <ab8479db-b9f0-43b2-a751-349c7a59287d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 14:27 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> Did you write this code from scratch? If not, you need to at least
> point
> out the origin. But: None of this looks RISC-V specific, so shouldn't
> it
> instead be put under xen/lib/, as a fallback implementation for arch-
> es
> not having optimized implementations? Looks also at least very
> similar
> to Arm64's, so that one perhaps then will want dropping as well? We
> surely don't want to carry two (almost) identical copies of the same
> logic.
No, I took the code from Arm because as you mentioned it doesn't have
RISC-V specific things.

I think we can move it to xen/lib. Would it be better to as part of
this patch series?

>=20
> > --- /dev/null
> > +++ b/xen/arch/riscv/lib/Makefile
> > @@ -0,0 +1 @@
> > +obj-y +=3D find_next_bit.o
>=20
> Dashes instead of underscores please in new file's names, whenever
> possible.
Sure. I'll update that. Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 09:58:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 09:58:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655709.1023478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAOS-00043m-H9; Mon, 18 Dec 2023 09:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655709.1023478; Mon, 18 Dec 2023 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 1rFAOS-00043f-Dv; Mon, 18 Dec 2023 09:58:36 +0000
Received: by outflank-mailman (input) for mailman id 655709;
 Mon, 18 Dec 2023 08:52:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UGV7=H5=iogearbox.net=daniel@srs-se1.protection.inumbo.net>)
 id 1rF9Mq-0002OK-8G
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 08:52:52 +0000
Received: from www62.your-server.de (www62.your-server.de
 [2a01:4f8:d0a:276a::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d1a2ec2f-9d82-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 09:52:48 +0100 (CET)
Received: from sslproxy06.your-server.de ([78.46.172.3])
 by www62.your-server.de with esmtpsa  (TLS1.3) tls TLS_AES_256_GCM_SHA384
 (Exim 4.94.2) (envelope-from <daniel@iogearbox.net>)
 id 1rF9M8-000GMZ-Kc; Mon, 18 Dec 2023 09:52:08 +0100
Received: from [85.1.206.226] (helo=linux.home)
 by sslproxy06.your-server.de with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <daniel@iogearbox.net>)
 id 1rF9M6-000DSm-B8; Mon, 18 Dec 2023 09:52:06 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1a2ec2f-9d82-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=iogearbox.net; s=default2302; h=Content-Transfer-Encoding:Content-Type:
	In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender
	:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:
	Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID;
	bh=u9rU7FfAkS1Xg3KQP7X+Uy8VuWy1sh7xNAOO2EeOmow=; b=pVnxw0u3V2KMrtdVYsexwpdnA5
	XUz4IKQOBNxaBluhdNYzL8zwlyI8CjvzruSXco86xKeQ6QX9cV0XiRUgx1SayqkGcLFTuuCdNcreN
	IYv72Eo9aa2ezSpHM/sq6jV2R3+vIjjFyGjsK/x2Nl8dUJj/GySOniPAkjktHMBS0gwug9YlUSVKk
	E1ANshGn7IEXwUCrQ0edmmtKumnnePMpDfJ7tvxXWWIUvjf8OwTHC7AAiHt93l6j9w58BEch4hds3
	CFiaDf4S4lSKklzGWwvE7xj7zzlkiYN9B3rJVXyRh4lviegYdZLL2jkzTg8CtU/F3vHY7hgsqJnoi
	sJS6vhrQ==;
Subject: Re: [PATCH net-next 16/24] net: netkit, veth, tun, virt*: Use
 nested-BH locking for XDP redirect.
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
 linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>, Boqun Feng
 <boqun.feng@gmail.com>, Eric Dumazet <edumazet@google.com>,
 Frederic Weisbecker <frederic@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Peter Zijlstra <peterz@infradead.org>, Thomas Gleixner <tglx@linutronix.de>,
 Waiman Long <longman@redhat.com>, Will Deacon <will@kernel.org>,
 "K. Y. Srinivasan" <kys@microsoft.com>, "Michael S. Tsirkin"
 <mst@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Andrii Nakryiko <andrii@kernel.org>, Dexuan Cui <decui@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Hao Luo <haoluo@google.com>,
 Jesper Dangaard Brouer <hawk@kernel.org>, Jiri Olsa <jolsa@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, Juergen Gross <jgross@suse.com>,
 KP Singh <kpsingh@kernel.org>, Martin KaFai Lau <martin.lau@linux.dev>,
 Nikolay Aleksandrov <razor@blackwall.org>, Song Liu <song@kernel.org>,
 Stanislav Fomichev <sdf@google.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wei.liu@kernel.org>,
 Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
 Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
 Yonghong Song <yonghong.song@linux.dev>, bpf@vger.kernel.org,
 virtualization@lists.linux.dev, xen-devel@lists.xenproject.org
References: <20231215171020.687342-1-bigeasy@linutronix.de>
 <20231215171020.687342-17-bigeasy@linutronix.de>
From: Daniel Borkmann <daniel@iogearbox.net>
Message-ID: <74feb818-7109-cb1e-8eec-a037c17a2871@iogearbox.net>
Date: Mon, 18 Dec 2023 09:52:05 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.7.2
MIME-Version: 1.0
In-Reply-To: <20231215171020.687342-17-bigeasy@linutronix.de>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Authenticated-Sender: daniel@iogearbox.net
X-Virus-Scanned: Clear (ClamAV 0.103.10/27126/Sun Dec 17 10:37:59 2023)

Hi Sebastian,

On 12/15/23 6:07 PM, Sebastian Andrzej Siewior wrote:
> The per-CPU variables used during bpf_prog_run_xdp() invocation and
> later during xdp_do_redirect() rely on disabled BH for their protection.
> Without locking in local_bh_disable() on PREEMPT_RT these data structure
> require explicit locking.
> 
> This is a follow-up on the previous change which introduced
> bpf_run_lock.redirect_lock and uses it now within drivers.
> 
> The simple way is to acquire the lock before bpf_prog_run_xdp() is
> invoked and hold it until the end of function.
> This does not always work because some drivers (cpsw, atlantic) invoke
> xdp_do_flush() in the same context.
> Acquiring the lock in bpf_prog_run_xdp() and dropping in
> xdp_do_redirect() (without touching drivers) does not work because not
> all driver, which use bpf_prog_run_xdp(), do support XDP_REDIRECT (and
> invoke xdp_do_redirect()).
> 
> Ideally the minimal locking scope would be bpf_prog_run_xdp() +
> xdp_do_redirect() and everything else (error recovery, DMA unmapping,
> free/ alloc of memory, â€¦) would happen outside of the locked section.
[...]

>   drivers/net/hyperv/netvsc_bpf.c |  1 +
>   drivers/net/netkit.c            | 13 +++++++----
>   drivers/net/tun.c               | 28 +++++++++++++----------
>   drivers/net/veth.c              | 40 ++++++++++++++++++++-------------
>   drivers/net/virtio_net.c        |  1 +
>   drivers/net/xen-netfront.c      |  1 +
>   6 files changed, 52 insertions(+), 32 deletions(-)
[...]

Please exclude netkit from this set given it does not support XDP, but
instead only accepts tc BPF typed programs.

Thanks,
Daniel

> diff --git a/drivers/net/netkit.c b/drivers/net/netkit.c
> index 39171380ccf29..fbcf78477bda8 100644
> --- a/drivers/net/netkit.c
> +++ b/drivers/net/netkit.c
> @@ -80,8 +80,15 @@ static netdev_tx_t netkit_xmit(struct sk_buff *skb, struct net_device *dev)
>   	netkit_prep_forward(skb, !net_eq(dev_net(dev), dev_net(peer)));
>   	skb->dev = peer;
>   	entry = rcu_dereference(nk->active);
> -	if (entry)
> -		ret = netkit_run(entry, skb, ret);
> +	if (entry) {
> +		scoped_guard(local_lock_nested_bh, &bpf_run_lock.redirect_lock) {
> +			ret = netkit_run(entry, skb, ret);
> +			if (ret == NETKIT_REDIRECT) {
> +				dev_sw_netstats_tx_add(dev, 1, len);
> +				skb_do_redirect(skb);
> +			}
> +		}
> +	}
>   	switch (ret) {
>   	case NETKIT_NEXT:
>   	case NETKIT_PASS:
> @@ -95,8 +102,6 @@ static netdev_tx_t netkit_xmit(struct sk_buff *skb, struct net_device *dev)
>   		}
>   		break;
>   	case NETKIT_REDIRECT:
> -		dev_sw_netstats_tx_add(dev, 1, len);
> -		skb_do_redirect(skb);
>   		break;
>   	case NETKIT_DROP:
>   	default:


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:02:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655751.1023487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFARs-0005yb-0X; Mon, 18 Dec 2023 10:02:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655751.1023487; Mon, 18 Dec 2023 10: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 1rFARr-0005yU-U8; Mon, 18 Dec 2023 10:02:07 +0000
Received: by outflank-mailman (input) for mailman id 655751;
 Mon, 18 Dec 2023 10:02: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFARr-0005yO-Bs
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:02:07 +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 801c0167-9d8c-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:02:06 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50e3845abdaso846596e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:02:06 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 o20-20020ac24bd4000000b0050bfc775f51sm2889931lfq.169.2023.12.18.02.02.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:02:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 801c0167-9d8c-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702893726; x=1703498526; 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=8KPNS9rX0K9FIdMM95PTvRzLQgHalLSgPcfO4iEp++M=;
        b=WS7m34nHnsWwX9GjKiah9blum1y14YIs98c8+CRKIT0nEu8j2b+KLTXZUcFH4gEuq8
         zStlG1ZlLGnamOyO5wG137Tl8EQ1yIlH8VA215ehlBz2RGPwz/WUtG7y8b6NeoSgyesy
         UZhlHajZ3EFLVtL+hCBD/ZYJhD9RTAnxvkmne2hyH+vOQARx+C/BnMwmb1Ne2dQY6zVX
         3mPIEQoPI3SQUI53qg+rwAY63TVoSEMecdKwPEdowVLuGoLqZF4oLp93J1B+AI+gO8Wl
         gQs1X6Yd87H27/gnXHF5zh49javD2ZOFG/ldAGxFkQU0DGEboVcsSCeokd7roXEBW7As
         ASfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702893726; x=1703498526;
        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=8KPNS9rX0K9FIdMM95PTvRzLQgHalLSgPcfO4iEp++M=;
        b=dByyZxcFHaZWAP0TqEWpVbUGSrHZGnA0pumFea6vJRXO8wjr5CFUQYp+nQ7aKEQhsB
         HNGECuGXEtcK3K9qMTnzPk60VFIZySmvj+G6v/sYWvlMOeI25AlEuP5rLmdNwL2y4jbL
         el2n8g7LaPao7ftVA4sJgh99HoPUM2d7QZaS4k9U0PdSLHdrdK7l7ksW7mRljFarVSB+
         YRDXV2jJ51VGVi1CW95vfzXkaRqvi3+EmJCiY84o+NDaM9tI58U8dQ81YAcpw1xFrCqd
         3A4bAuV2lhz/PRxpsLhmNyZUhZSTSLHjIWEGseYQdN5SDE7pzDVV6xDKLgHxh9CmN02F
         kpDg==
X-Gm-Message-State: AOJu0Yy8VBvW9ps9Lhg3uTb35wq5EupErU3V6TUjoi3ZYlYCTjsxx6Ob
	7cUdnYbLmWfNjkUP0MvEyRU=
X-Google-Smtp-Source: AGHT+IHM68/awZGH1ze06wdVGQco/ZLkHPJks3f5v7VMgA5jE3VhNilCCWmDqqG9Y71DUbCR7vd67g==
X-Received: by 2002:a19:750c:0:b0:50e:2fe1:26fc with SMTP id y12-20020a19750c000000b0050e2fe126fcmr1058111lfe.19.1702893725897;
        Mon, 18 Dec 2023 02:02:05 -0800 (PST)
Message-ID: <406a8425dc711725d3575b4c06d7bcaaff05992b.camel@gmail.com>
Subject: Re: [PATCH v2 23/39] xen/riscv: introduce asm/guest_access.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:02:04 +0200
In-Reply-To: <e08e2f49-5ed5-40ec-8db4-e2dd597c8046@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <7dda759b846003fcb453f1118cefbfd2eeb804d7.1700761381.git.oleksii.kurochko@gmail.com>
	 <e08e2f49-5ed5-40ec-8db4-e2dd597c8046@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 15:06 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/guest_access.h
> > @@ -0,0 +1,29 @@
> > +#ifndef __ASM_RISCV_GUEST_ACCESS_H__
> > +#define __ASM_RISCV_GUEST_ACCESS_H__
> > +
> > +#include <xen/types.h>
> > +
> > +unsigned long raw_copy_to_guest(void *to, const void *from,
> > unsigned len);
> > +unsigned long raw_copy_from_guest(void *to, const void *from,
> > unsigned len);
>=20
> For the full build to work, you will need to implement these
> somewhere.
> From the titles of further patches I can't guess where that would be.
> Note how PPC has decided to have these be inline dummies for the time
> being. It also looks as if you would also need raw_clear_guest()?
It is implemented in xen/arch/riscv/stubs.c:362,367.
Regarding raw_clear_guest() I'll double check. I don't have a
compilation issue with it, so I ignored this macros.

> > +#define __raw_copy_to_guest raw_copy_to_guest
> > +#define __raw_copy_from_guest raw_copy_from_guest
> > +
> > +#define guest_handle_okay(hnd, nr) (1)
> > +#define guest_handle_subrange_okay(hnd, first, last) (1)
>=20
> Arm has a comment next to these (actually two, I mean the latter),
> which
> I think would be sensible to also have here.
Thanks. I'll add the comment.

>=20
> > +struct domain;
> > +unsigned long copy_to_guest_phys(struct domain *d,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 gpa,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 void *buf,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 len);
>=20
> You don't need this just yet, do you?
Yes, you are right. This function isn't needed for now.

Thanks. I'll drop it.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:03:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:03:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655755.1023498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFASo-0006Vk-F5; Mon, 18 Dec 2023 10:03:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655755.1023498; Mon, 18 Dec 2023 10:03: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 1rFASo-0006Vd-Bu; Mon, 18 Dec 2023 10:03:06 +0000
Received: by outflank-mailman (input) for mailman id 655755;
 Mon, 18 Dec 2023 10:03: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 1rFASm-0006VL-MX; Mon, 18 Dec 2023 10:03: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 1rFASm-0002SE-AT; Mon, 18 Dec 2023 10:03: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 1rFASm-0003m1-23; Mon, 18 Dec 2023 10:03:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFASm-0004R9-1X; Mon, 18 Dec 2023 10:03: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=mGxGu2EgAhjKFQp8nJw0IT9mOgB0Zb3NhqWOUA6TE1w=; b=gFtTtdvtX8qgKFxkbSkuQ0UE+w
	sPZqVyyk0V+tZGFF3MdQYblX3efqHRjAbsczI7KiyymFKNxez7cnErP0C7+eSjRFvFrNcIV6HnySC
	sHahfCZY1LbDGWxYN6Ccav1OoxSmT0dbeZCh8KMSi6KaQ9G6h+Bsu2TIC2vqcGob8dzA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184161-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184161: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-libvirt: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-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-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=a60067f39882a4f40547fc0cd8177bac89cb01b7
X-Osstest-Versions-That:
    xen=a60067f39882a4f40547fc0cd8177bac89cb01b7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 18 Dec 2023 10:03:04 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184155
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184155
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184155
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184155
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184155
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184155
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184155
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184155
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184155
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184155
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184155
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184155
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-amd64-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  a60067f39882a4f40547fc0cd8177bac89cb01b7
baseline version:
 xen                  a60067f39882a4f40547fc0cd8177bac89cb01b7

Last test of basis   184161  2023-12-18 01:52:13 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 18 10:04:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:04:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655759.1023508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFATm-00077s-P3; Mon, 18 Dec 2023 10:04:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655759.1023508; Mon, 18 Dec 2023 10: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 1rFATm-00077l-Ll; Mon, 18 Dec 2023 10:04:06 +0000
Received: by outflank-mailman (input) for mailman id 655759;
 Mon, 18 Dec 2023 10:04:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFATm-00076O-0T
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:04:06 +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 c6234c44-9d8c-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:04:04 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2cc5a0130faso22897641fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:04:04 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 h1-20020a05651c158100b002cc6843108bsm645584ljq.41.2023.12.18.02.04.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:04:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6234c44-9d8c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702893843; x=1703498643; 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=q3q+WJeZahjrDtBWxkMwuCI2o49JSbRrdJ4UjvtwwqI=;
        b=a4qrZ3Z7XwI/pxjtDvc/P8gKdRWwxmwW8cq4+iRwGjV4cq8cQd6JulN40hZZyC0gjx
         kTjFM9jMhgAsD1sqJ8uKYY3AmNkJK4KPbVAbGlTv7KDIq5Ys2M5qAoJ5SnwSdl7cszVk
         hLDMgTBn6Z4LP4paELqX0pd9drOynWscqLMt/D+jNHJEzz2opmCknvmn4++m0/m7j2zw
         4UqcJkNrcl1fZW6ByfXPtl2RllJ9U/Ub4CKxPmZLcyI6MZkZ1vrTbdw91NFcysOtgJZP
         BWfQkhkTHYMb7hASW1Gr7jB3yr+UxmeXeTsFoU1IpfPGThAq9hrXrIM4IOVJJFaWsrm9
         DdAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702893843; x=1703498643;
        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=q3q+WJeZahjrDtBWxkMwuCI2o49JSbRrdJ4UjvtwwqI=;
        b=k/hWuLTUYrrAZQpBQyHA4bfmxUoffRNF5mxideVklDeyTk4lpoPGyO7osCOfY36MoY
         ZdZlLVdTIVT7a8rhbi3oa4TX93LrLSepkdDZfJPgPm1hFJQUAkt6bLg8xl0fcxcuCfu3
         1GeGF4ymUUkR0I43iitNeRrW4PUnPEhGiPaTC6EoNAGY5HM/xAPuPhUPmbKDnrOySa70
         IKY9k6GXegbagVTsByv0URFhlpl9Gr5lC8dxYJUGreg2phPXg6TOF+PoPg9tRAqoNRL1
         wz6dJ1Kskxskcvmjz4hwnmN1bJbqYdXgn1vcq9tOL3wz8rUimRku5OsQ8UD2W+EBK4eF
         8Kvw==
X-Gm-Message-State: AOJu0YxISh/pZIvLA2uFbieXSNWey4sGbxZwIhYsgP6+RoCTevLblPqe
	hTMvdkomcUM5pH3uOLmbVvE=
X-Google-Smtp-Source: AGHT+IHcYZt6eK2QPUbrxpFGI95kJn4KJXgPNPun56K6jzzC2m4hjf2s9SBpUubHAiuhOTrlYr8rVg==
X-Received: by 2002:a2e:bcd1:0:b0:2cc:2b1c:e2a0 with SMTP id z17-20020a2ebcd1000000b002cc2b1ce2a0mr7304926ljp.106.1702893843430;
        Mon, 18 Dec 2023 02:04:03 -0800 (PST)
Message-ID: <d50405f2181396931941874f24c5018800cc5b44.camel@gmail.com>
Subject: Re: [PATCH v2 24/39] xen/riscv: introduce asm/irq.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:04:02 +0200
In-Reply-To: <479cd511-c01b-4460-bafc-2d3943956914@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <e9fc98cad562dad495ac1eb87b98be77cda72524.1700761381.git.oleksii.kurochko@gmail.com>
	 <479cd511-c01b-4460-bafc-2d3943956914@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 15:09 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V2:
> > 	- add ifdef CONFIG_HAS_DEVICE_TREE for things that
> > shouldn't be
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 in case !CONFIG_HAS_DEVICE_TREE
>=20
> Is there going to be a RISC-V build without this enabled (selected)?
> If
> not, I'd recommend against such pointless #ifdef-ary.
For this stage (Xen RISC-V full build), CONFIG_HAS_DEVICE_TREE will not
be selected, but it will be in the near future.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:06:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:06:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655763.1023518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAVy-0007j7-4I; Mon, 18 Dec 2023 10:06:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655763.1023518; Mon, 18 Dec 2023 10:06: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 1rFAVy-0007j0-1L; Mon, 18 Dec 2023 10:06:22 +0000
Received: by outflank-mailman (input) for mailman id 655763;
 Mon, 18 Dec 2023 10:06: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFAVw-0007is-Uw
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:06:20 +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 16a514a1-9d8d-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:06:19 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-336417c565eso2539776f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:06:19 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 t13-20020a5d6a4d000000b0033651e6a74dsm8666264wrw.27.2023.12.18.02.06.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 02:06:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16a514a1-9d8d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702893979; x=1703498779; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vKwQ3k72rxhe/ksMxkMfX6FAU9m4gB/GR3kZ7/hmvP4=;
        b=S4/vKoNKjYfymlt6OAYVR6o9x+iYV8ogFiKWCqpKbdtg6Hf7xryDa+tDv1a57PM82W
         bnNqBtiXv2LiSGnGifC7by/q3oFcbChq/+IAA4tMqDAzPPA6a7caBgpS99tFaynoeOky
         zJ8pNGrREw50x2lUEIitRKVowD3ZbsbS0eOkf4JNrWNLoy3BjvSGkdijQ1DlIw9Fx+DP
         eP//lAQQRFa6XAiLMaUrPaYv/lBWUf99kOVFKgqxaWJbStcX4oE4eqeoMwBFTaUfr2KQ
         TLvNmgNHhpz03oS+ZSPPoo8rnhrWuz57rHQK0nJG7vD95qOU8FUNROUGK8kPCeXlntbJ
         abrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702893979; x=1703498779;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=vKwQ3k72rxhe/ksMxkMfX6FAU9m4gB/GR3kZ7/hmvP4=;
        b=hqVkBre1klelisdEPgTpojL867wg7reBbnWS5QLNAPZzI9liaNsFy1eh0/QLLGNJPZ
         J4/J01J9QWCs2nKhCW+bgj1lrvrC1pViPqswe+mFLAgn9sPcQc6PXhgQT5dXWkaowvl7
         eJ8BivyAYZ3B+R8Eq4NExPPY/7z4TJjT0bQnDENN0o8Mtg0g43T5w/ysfEg61tMdpnRc
         RFvCfedwW4T9FEN/PrhHsAyF8VnTbC/qwKssHdezBY2ylZWNUOGQY89Hn8S5feQqYdtS
         JjMsRxfVJSQUg6U8lSjul375JpUD96rL6dhNXpD0PCe9yKfp3ng11lF/y+e/rV3VlwB2
         k03g==
X-Gm-Message-State: AOJu0Yy/2XAABihGSV4RkAzlbWOEurU+JCe7jEdVN81xAIQawNdLR5K7
	xEhfYB3mUOV29ARGjzBL+oQQ
X-Google-Smtp-Source: AGHT+IEAf2pQpnkobchMHmrmB/wyqgwoCVsARSmy5VZ4UyHXs8ZJR7sUurbtzPNP57au0aaXrmmusQ==
X-Received: by 2002:a5d:4587:0:b0:336:5674:13a7 with SMTP id p7-20020a5d4587000000b00336567413a7mr1621891wrq.207.1702893978736;
        Mon, 18 Dec 2023 02:06:18 -0800 (PST)
Message-ID: <093f1893-c675-4cde-b762-081c70c5d436@suse.com>
Date: Mon, 18 Dec 2023 11:06:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 21/39] xen/riscv: introduce bit operations
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <20732007fb103115c0e01cefea7d113b8a7ad8e9.1700761381.git.oleksii.kurochko@gmail.com>
 <ab8479db-b9f0-43b2-a751-349c7a59287d@suse.com>
 <5d9896c04a906c7ee379d6788e4c854e90cef363.camel@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: <5d9896c04a906c7ee379d6788e4c854e90cef363.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2023 10:56, Oleksii wrote:
> On Thu, 2023-12-14 at 14:27 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>
>> Did you write this code from scratch? If not, you need to at least
>> point
>> out the origin. But: None of this looks RISC-V specific, so shouldn't
>> it
>> instead be put under xen/lib/, as a fallback implementation for arch-
>> es
>> not having optimized implementations? Looks also at least very
>> similar
>> to Arm64's, so that one perhaps then will want dropping as well? We
>> surely don't want to carry two (almost) identical copies of the same
>> logic.
> No, I took the code from Arm because as you mentioned it doesn't have
> RISC-V specific things.
> 
> I think we can move it to xen/lib. Would it be better to as part of
> this patch series?

Doesn't matter much whether it's separate or part of this series, I'd say.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:06:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:06:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655765.1023528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAWA-00083H-Gm; Mon, 18 Dec 2023 10:06:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655765.1023528; Mon, 18 Dec 2023 10:06:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAWA-00083A-EA; Mon, 18 Dec 2023 10:06:34 +0000
Received: by outflank-mailman (input) for mailman id 655765;
 Mon, 18 Dec 2023 10:06:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFAW8-00082K-PL
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:06:32 +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 1d4ecd2b-9d8d-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:06:30 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2cc6d9b4c6aso10068371fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:06:30 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 h19-20020a05651c159300b002cc4385729dsm1412953ljq.27.2023.12.18.02.06.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:06:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d4ecd2b-9d8d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702893990; x=1703498790; 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=a6mir6FZSgShTDwjOVk46qOZ4CrkGGybu54LdIVnujA=;
        b=WsK0YLLvHkg0kLJVw8r20tvLz+kBLBArw1C2D+d8hEEbPMkssngl/Wnt61EgTOyLrn
         PmiEhuseL9j4VAFUsWW6GADmOvMZ39BMwWAUhusdpJbxdjXfawkFImABY7YzqA11uPDD
         9j/lUEpydOW0LDcpmTaF1nN66+yK2AMPHLSkRK/5ViY7uc+3jRAz9hvDW7mhFs8WVaPa
         9RqLqR0bUo81qhKF5trG4YfuXftRy6dBkY+2YW8CjiBwC3e7kaxKMbSsMfs5y0uVxiXH
         tTtXcnGnnBfKNvHnQyqFgbXFb5eLfEPQBeLP91Byx1oSggl14xlmzRAOVNZ+Gx40ICkF
         o2zA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702893990; x=1703498790;
        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=a6mir6FZSgShTDwjOVk46qOZ4CrkGGybu54LdIVnujA=;
        b=tRqwsWtXf6tFj2WObNEDjKtm8KsabBBDFEAI+oyj9zXxFx0BEvT3RlmJ44ZZf3mB+L
         4SYKgWB4JZIZteAiin5frWj/txZLGc2IWEyWhAM0FLsxqAUnn8vDgIAAHhscy0GkDOnZ
         WMatShG4XYKupCyjkZ+N0thl9ZDX1SWX2Hq9LAW4jNjrVAwgtOjurfV9h8lQsfG3C4fC
         s9p8j7akEkb3kQghJvvY3OZIKskcf0jduGhbzT30o4SkxuAXY3EkJGdVQBRDNBPwqbUN
         nhh44m6Ua2K8e4oo4JsO/RoMu/FqP98WzzM6JHAK2FkhsFUGz/od9Ao3Jxp0cFDVrSHV
         pwIA==
X-Gm-Message-State: AOJu0Yy85DOHHP1aH/wlzM+fVmKqqvI7Wq0NiH/YbeIIDzU1mGkNMLcH
	Fjfv0fhPBJSDrapipEkha2Y=
X-Google-Smtp-Source: AGHT+IETtlSENTr//cU9Us2LfLnoQR/5R6RplflDosK7B84aNz3DQOR5HHMIpOXVdULpOCTKOJIXUw==
X-Received: by 2002:a2e:9e56:0:b0:2c9:f92e:fa4 with SMTP id g22-20020a2e9e56000000b002c9f92e0fa4mr6065655ljk.34.1702893989763;
        Mon, 18 Dec 2023 02:06:29 -0800 (PST)
Message-ID: <fb8d6b3f47c9939eb1e0730f77204ec4648a0bcb.camel@gmail.com>
Subject: Re: [PATCH v2 25/39] xen/riscv: introduce asm/p2m.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:06:28 +0200
In-Reply-To: <46462554-f040-4c34-874d-2d0455707731@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <a37e4b7115897a0265907c53667a0ede3763f0ce.1700761381.git.oleksii.kurochko@gmail.com>
	 <46462554-f040-4c34-874d-2d0455707731@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 15:19 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/p2m.h
> > @@ -0,0 +1,105 @@
> > +#ifndef __ASM_RISCV_P2M_H__
> > +#define __ASM_RISCV_P2M_H__
> > +
> > +#include <asm/page-bits.h>
> > +
> > +#define paddr_bits PADDR_BITS
> > +
> > +/*
> > + * List of possible type for each page in the p2m entry.
> > + * The number of available bit per page in the pte for this
> > purpose is 4 bits.
> > + * So it's possible to only have 16 fields. If we run out of value
> > in the
> > + * future, it's possible to use higher value for pseudo-type and
> > don't store
> > + * them in the p2m entry.
> > + */
> > +typedef enum {
> > +=C2=A0=C2=A0=C2=A0 p2m_invalid =3D 0,=C2=A0=C2=A0=C2=A0 /* Nothing map=
ped here */
> > +=C2=A0=C2=A0=C2=A0 p2m_ram_rw,=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 /* Normal read/write guest RAM */
> > +=C2=A0=C2=A0=C2=A0 p2m_ram_ro,=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 /* Read-only; writes are silently dropped
> > */
> > +=C2=A0=C2=A0=C2=A0 p2m_mmio_direct_dev,/* Read/write mapping of genuin=
e Device
> > MMIO area */
> > +=C2=A0=C2=A0=C2=A0 p2m_mmio_direct_nc, /* Read/write mapping of genuin=
e MMIO area
> > non-cacheable */
> > +=C2=A0=C2=A0=C2=A0 p2m_mmio_direct_c,=C2=A0 /* Read/write mapping of g=
enuine MMIO area
> > cacheable */
> > +=C2=A0=C2=A0=C2=A0 p2m_map_foreign_rw, /* Read/write RAM pages from fo=
reign
> > domain */
> > +=C2=A0=C2=A0=C2=A0 p2m_map_foreign_ro, /* Read-only RAM pages from for=
eign domain
> > */
> > +=C2=A0=C2=A0=C2=A0 p2m_grant_map_rw,=C2=A0=C2=A0 /* Read/write grant m=
apping */
> > +=C2=A0=C2=A0=C2=A0 p2m_grant_map_ro,=C2=A0=C2=A0 /* Read-only grant ma=
pping */
> > +=C2=A0=C2=A0=C2=A0 /* The types below are only used to decide the page=
 attribute
> > in the P2M */
> > +=C2=A0=C2=A0=C2=A0 p2m_iommu_map_rw,=C2=A0=C2=A0 /* Read/write iommu m=
apping */
> > +=C2=A0=C2=A0=C2=A0 p2m_iommu_map_ro,=C2=A0=C2=A0 /* Read-only iommu ma=
pping */
> > +=C2=A0=C2=A0=C2=A0 p2m_max_real_type,=C2=A0 /* Types after this won't =
be store in the
> > p2m */
> > +} p2m_type_t;
>=20
> As indicated before, I think you should have only those types here
> which
> you're sure you'll need, or even just those which you really need
> right
> away. I question in particular p2m_mmio_direct_*, which all look like
> you simply took them from Arm, without regard as to applicability to
> RISC-V. The fewer types you have here, the easier it is going to be
> to
> tell what needs adding and what is already _properly_ supported.
Agreed. I have to leave only the ones that are necessary for now.
I'll update that.

>=20
> > +#include <xen/p2m-common.h>
> > +
> > +static inline int get_page_and_type(struct page_info *page,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 d=
omain *domain,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned=
 long type)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +=C2=A0=C2=A0=C2=A0 return 1;
> > +}
>=20
> Imo despite the BUG() any such stub would better return failure, just
> like ...
Thanks. I'll update that.

>=20
> > +/* Look up a GFN and take a reference count on the backing page.
> > */
> > +typedef unsigned int p2m_query_t;
> > +#define P2M_ALLOC=C2=A0=C2=A0=C2=A0 (1u<<0)=C2=A0=C2=A0 /* Populate Po=
D and paged-out
> > entries */
> > +#define P2M_UNSHARE=C2=A0 (1u<<1)=C2=A0=C2=A0 /* Break CoW sharing */
> > +
> > +static inline struct page_info *get_page_from_gfn(
> > +=C2=A0=C2=A0=C2=A0 struct domain *d, unsigned long gfn, p2m_type_t *t,
> > p2m_query_t q)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +=C2=A0=C2=A0=C2=A0 return NULL;
> > +}
>=20
> ... you do here. May apply again further down.
>=20
> > +static inline void memory_type_changed(struct domain *d)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +
> > +static inline int guest_physmap_mark_populate_on_demand(struct
> > domain *d, unsigned long gfn,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 order)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +=C2=A0=C2=A0=C2=A0 return 1;
> > +}
> > +
> > +static inline int guest_physmap_add_entry(struct domain *d,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 gfn_t gfn,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 mfn_t mfn,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 unsigned long page_order,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 p2m_type_t t)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +=C2=A0=C2=A0=C2=A0 return 1;
> > +}
> > +
> > +/* Untyped version for RAM only, for compatibility */
> > +static inline int __must_check
> > +guest_physmap_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 in=
t page_order)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return guest_physmap_add_entry(d, gfn, mfn, page_or=
der,
> > p2m_ram_rw);
> > +}
> > +
> > +static inline mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +=C2=A0=C2=A0=C2=A0 return _mfn(0);
> > +}
> > +
> > +static inline bool arch_acquire_resource_check(struct domain *d)
> > +{
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * The reference counting of foreign entries i=
n
> > set_foreign_p2m_entry()
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * is supported on RISCV.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 return true;
> > +}
> > +
> > +static inline void p2m_altp2m_check(struct vcpu *v, uint16_t idx)
> > +{
> > +=C2=A0=C2=A0=C2=A0 /* Not supported on RISCV. */
> > +}
> > +
> > +#endif /* __ASM_RISCV_P2M_H__ */
> > \ No newline at end of file
>=20
> This wants taking care of.
Thanks. I'll update that.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:08:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:08:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655775.1023537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAY1-0000SL-Sl; Mon, 18 Dec 2023 10:08:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655775.1023537; Mon, 18 Dec 2023 10: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 1rFAY1-0000SE-QB; Mon, 18 Dec 2023 10:08:29 +0000
Received: by outflank-mailman (input) for mailman id 655775;
 Mon, 18 Dec 2023 10:08: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFAY1-0000S6-C1
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:08: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 63d4a33f-9d8d-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:08:28 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2cc6a52231cso10435461fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:08:28 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 v9-20020ac25609000000b0050e2cc84f26sm543985lfd.181.2023.12.18.02.08.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:08:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63d4a33f-9d8d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702894108; x=1703498908; 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=3ozxgz9sevBrE1t3w1Q3/tH5P7QLXuImQgZ3W8/TQWI=;
        b=MsOViVRlsp3grl6gMPi2f3g2EqZVh92Zjl3q2KsHarNjWd03Ks5fJA3lmB9oT6Rt2/
         aCHYpsnMfPVPVzln+Q+o+bzSeIHF2jgomfOxcHrYaK/gnpMg7gR0vjgJwiEA7oPtlO1P
         jBEGCtbAI2c/9ioGZfUjC/ptsnOsIYy6moctwZ9XF6HUDFEbcnXDtGWvQI9Cmcd+z5y/
         k9oy9BRmhHYA9WSnZYtbEfpm9pKiYRbBK90gn+KRqF3dOT/uC6qdEwxFS1tqLJ1+vThz
         u5GMOp3bXjOere75VU/MhMAwlCJ8GfWRnxnSm18DBIcK6stg3rSpEiFvncCKIDiwC92T
         O4wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702894108; x=1703498908;
        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=3ozxgz9sevBrE1t3w1Q3/tH5P7QLXuImQgZ3W8/TQWI=;
        b=F/hecxLrkBl5fW8XXCnmBdpHsmCEhRwJwQf3R61ge8LBUbRF6WmOSjQQVJ2T7rgNyi
         o8sk3a9mM1yG35S7RSYb75axoycJqLNmw98eRj0oVIxI7OEahhPlpG9CH63fTvjBhR1Q
         1MmIf1r5Nw0CMNPUhhZtoHCuRmzC/cJbZ0fag7j+BkGZIfX51nXtSoC7hLOM4pLGg3t3
         1hBajUljxBmtbFy4p0FCorfG4INiFTKnD8PHS6E0ZbrChrKxAezfqw2Zcg/CML8FCixQ
         UtO4dAvkNsnjQWkpN34mmcg2TpOBQsenXZ/C07010PxgOm1hjcP5hOKFF0p0gxYjmxML
         5JwQ==
X-Gm-Message-State: AOJu0Yz3A4O0a09I1jAi18Uva6AANKoxuvbgGCCZCNSlWyGTFxbJYh8C
	mdIKs5yifxHA2Yqb/WTxihM=
X-Google-Smtp-Source: AGHT+IFELFBJS6VoIuie7rRnjJ5HfquHk4jeRIqZLDyjEEJK8q+q/DNc2aN8RFJgcLdoGn+OW5RfXw==
X-Received: by 2002:a05:6512:2385:b0:50e:2eb0:3c2a with SMTP id c5-20020a056512238500b0050e2eb03c2amr1587102lfv.131.1702894108128;
        Mon, 18 Dec 2023 02:08:28 -0800 (PST)
Message-ID: <50ab6b74c08034c876bf5c1bd5b73528c2021090.camel@gmail.com>
Subject: Re: [PATCH v2 26/39] xen/riscv: introduce asm/regs.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:08:27 +0200
In-Reply-To: <8802a6d5-ac99-4276-a9d4-3443f5f20358@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <073c9a03abe429c1e45f6f66b648a25aff87e9f3.1700761381.git.oleksii.kurochko@gmail.com>
	 <8802a6d5-ac99-4276-a9d4-3443f5f20358@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 16:05 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/regs.h
> > @@ -0,0 +1,26 @@
> > +#ifndef __ARM_RISCV_REGS_H__
> > +#define __ARM_RISCV_REGS_H__
> > +
> > +#ifndef __ASSEMBLY__
> > +
> > +#include <xen/bug.h>
> > +#include <asm/current.h>
>=20
> Does one of these bring in asm/processor.h, for ...
>=20
> > +#define hyp_mode(r)=C2=A0=C2=A0=C2=A0=C2=A0 (0)
> > +
> > +static inline bool guest_mode(const struct cpu_user_regs *r)
>=20
> ... struct cpu_user_regs to be available? Else a forward declaration
> would be needed here.
Agreed. It will be better to use a forward declaration. I'll change
that in next patch series.

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

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:09:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:09:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655778.1023548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAYf-0000xV-5t; Mon, 18 Dec 2023 10:09:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655778.1023548; Mon, 18 Dec 2023 10: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 1rFAYf-0000xO-1u; Mon, 18 Dec 2023 10:09:09 +0000
Received: by outflank-mailman (input) for mailman id 655778;
 Mon, 18 Dec 2023 10:09: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFAYd-0000S6-NB
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:09:07 +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 7adc42d4-9d8d-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:09:07 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2cc6a52231cso10443181fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:09:07 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 p14-20020a2e9ace000000b002cc68f0c127sm613303ljj.134.2023.12.18.02.09.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:09:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7adc42d4-9d8d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702894147; x=1703498947; 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=G/i2SWE2VS1xxt0Fg74/ZRVGtJav8DC8Y3wsFqZpLhs=;
        b=WmDNFw8UgNBNUeGGxUdf8iDieqDMpkoDU1LHpncYMDvlAYsCI07BhfzvSz1NbzScDP
         L4gp4ZK0WJViNEgQ9z4+G5TWsDJMXTY0ClAD5V5ePvY4I3opjd8Vq+MvKRJbU1Bsqu74
         4cdjlZ0U5eRC6Cwd3M0QpzESnRtys6EwX3IqcbXAU6VJjnvZWIXBpJ9N23pwJTNQXELH
         bCBKGC5DTQBIEoY/BZTf5ogaG7nLg6Y6ktc4LLp8sURUf/Fq2U56AP+V+/W68y2HdOt3
         8TSwzyPTxqxIM9rDOp9YtQx9cAyTcZuQh4bymWAfCGhYgRhK6YaLWH7moKDQVt/OyIjL
         gvFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702894147; x=1703498947;
        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=G/i2SWE2VS1xxt0Fg74/ZRVGtJav8DC8Y3wsFqZpLhs=;
        b=KZGU7+PQkVUU8OHbgKB0YQ50hTxz+7Wfm7Ffv+vusJ2kKl2pBXqbyIhg/zNa30ihMz
         TdcDqszeQfNEIvqVZaLD/c/CTz1HhxxxdBfom3bJYsJksA1xFERoEw7WL8l4Hm/gWKWK
         CzR0zhhD1q2ARdcp/mRjFcVYluy995kNGUdyGpVeLOIdAk0DQpIqujSDm42zO5AGIARe
         Lv1/vsLN8lkLRE6YWeaffDbZgHvbXL5YZV3cuNtqDjDRTPOUiLd3zaArzYJhhc9SxxwJ
         OkLyH+8zfsWNEtfhvcV/Qvk8O+YkVyIbJwrg/gZ0t3QIiIZ2SCpkTgQ993foYKV4UW1P
         h74w==
X-Gm-Message-State: AOJu0Yw4pwON4rmJtWWdvnQ9y5+EjFUm/hU2eH4khJdQszojsNdLhQt7
	6ZxfuWRWaTZabKcN9PSFWkQ=
X-Google-Smtp-Source: AGHT+IFcSEQg16pGRQ3DgxqiMLSuete5Zj6KNX82Ror8iAb896JmOZyjRNQpebr+3ceGT+Wff5dGGw==
X-Received: by 2002:a2e:9350:0:b0:2cc:7125:fa8c with SMTP id m16-20020a2e9350000000b002cc7125fa8cmr481871ljh.62.1702894146707;
        Mon, 18 Dec 2023 02:09:06 -0800 (PST)
Message-ID: <6a41baabbeaedf16b3c82d839f9f3bb53c4fb980.camel@gmail.com>
Subject: Re: [PATCH v2 27/39] xen/riscv: introduce asm/time.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:09:05 +0200
In-Reply-To: <96e877a8-a98e-4275-9d99-da7b1b6dea4b@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <ab09f88d1c43478938811511c54c9d425f4080d6.1700761381.git.oleksii.kurochko@gmail.com>
	 <96e877a8-a98e-4275-9d99-da7b1b6dea4b@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 16:06 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/time.h
> > @@ -0,0 +1,19 @@
> > +#ifndef __ASM_RISCV_TIME_H__
> > +#define __ASM_RISCV_TIME_H__
> > +
> > +#include <xen/bug.h>
> > +#include <asm/csr.h>
> > +
> > +struct vcpu;
> > +
> > +/* TODO: implement */
> > +static inline void force_update_vcpu_system_time(struct vcpu *v) {
> > BUG(); }
> > +
> > +typedef unsigned long cycles_t;
> > +
> > +static inline cycles_t get_cycles(void)
> > +{
> > +	return csr_read(CSR_TIME);
> > +}
> > +
> > +#endif /* __ASM_RISCV_TIME_H__ */
> > \ No newline at end of file
>=20
> With this taken care of (and the SPDX header added)
> Acked-by: Jan Beulich <jbeulich@suse.com>
Thanks.

I'll add SPDX and fix "No newline..."

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:10:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:10:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655781.1023557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAaK-0002UT-G2; Mon, 18 Dec 2023 10:10:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655781.1023557; Mon, 18 Dec 2023 10:10:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAaK-0002UM-D9; Mon, 18 Dec 2023 10:10:52 +0000
Received: by outflank-mailman (input) for mailman id 655781;
 Mon, 18 Dec 2023 10:10:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFAaJ-0002UG-HQ
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:10:51 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7c24724-9d8d-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:10:49 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2cc3f5e7451so32916701fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:10:49 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 s4-20020a2ea104000000b002cc794df665sm6983ljl.125.2023.12.18.02.10.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:10:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7c24724-9d8d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702894249; x=1703499049; 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=OP7alBYNWOY0lV5TE68wytu7Od6IeE1WBgUzqPpLzT0=;
        b=UJCHzo7VBB+BohYPh4tnDH5Flhvk+3aKfDg9ZTm6PcakpQ3MkBP9UlJJkcOQq7aNe9
         nYf21gRRfCx5CxRCchd+0p0IO4gG4rzbsxASgExzZ0S/cTR8yRLOQzB0vefNQhAgjrIP
         VveGsDZU7kReymaPkVyjMhyIESKHm1NJ05285YXTEwwLfA8be78WoGAmnp0YLHEtDGjg
         OHatLeQiJ25Y3r9HVpK7uy2Fc+ZWAaOQpD2S0O3I2/q0YYGXXUTS85aSpDJGfpIhbetN
         dBKUWL6v66x0nT0GaxttYU81uLYqD4PFE/B4WXcDyLxpixfdYoamaKXgpCgtFZ9lloJF
         ya/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702894249; x=1703499049;
        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=OP7alBYNWOY0lV5TE68wytu7Od6IeE1WBgUzqPpLzT0=;
        b=QoAkTS0OWagBQKXd0FArAXY0qhBhfB2KbDOVQRSASnYerfsYQYv41bT43R5iH4MyUs
         ILfJHjJMV8vP7xsZzaxgxExoGiCfklcbOG+cuhZPNjcGvTroRf1FAO3mIZSPLdvmPTGp
         dbLp/8a6fa9BtCwcmJ0nliRwixBwyXMQky05Q0zPjbWji6TdoHFXcGYHY2RrPOIzGKMo
         Dz/KK2Mq1EUvlrIJMGtHqMA6ZywZJTjRlLSP5ryeJzZP+soVkoExhKoR0+BlVR6oPPpU
         OKNVFHvFPwGES8FmaJrCwA0L2kEI7BbR8T0zIqkqM3ArAaWZNRf4D3J+ne/lozidUr+y
         N67Q==
X-Gm-Message-State: AOJu0YxTxkMRc2JEQ2vDLc800+cyKsEWKJgqaSziV0+Dkg3FL47fdYiR
	i0Rj6iofb5M7z/Y10bgYXYOICiPfeRiT5w==
X-Google-Smtp-Source: AGHT+IGNeIch/BNsQbxG42g/lJDMxhoQGGfYsWDGCQLY5U+uUOYeJL9eomjHlRoOQqdiekpBcBB5lw==
X-Received: by 2002:a2e:b708:0:b0:2cc:6bbf:ea8e with SMTP id j8-20020a2eb708000000b002cc6bbfea8emr920636ljo.45.1702894248946;
        Mon, 18 Dec 2023 02:10:48 -0800 (PST)
Message-ID: <fe18855bbbb0c6ee4d06ae6f5dcc975859a7b6bd.camel@gmail.com>
Subject: Re: [PATCH v2 28/39] xen/riscv: introduce asm/event.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:10:48 +0200
In-Reply-To: <483a3c56-14df-4130-9b05-506a19333afc@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <492c6183a8248046f0b6fdb186ad5b33953c3b24.1700761381.git.oleksii.kurochko@gmail.com>
	 <483a3c56-14df-4130-9b05-506a19333afc@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 16:08 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/arch/riscv/include/asm/event.h
> > @@ -0,0 +1,34 @@
> > +#ifndef __ASM_RISCV_EVENT_H__
> > +#define __ASM_RISCV_EVENT_H__
> > +
> > +void vcpu_mark_events_pending(struct vcpu *v);
> > +
> > +static inline int vcpu_event_delivery_is_enabled(struct vcpu *v)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return 0;
> > +}
> > +
> > +static inline int local_events_need_delivery(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return 0;
> > +}
> > +
> > +static inline void local_event_delivery_enable(void)
> > +{
> > +}
>=20
> These are stubs aiui, and hence would better have BUG() in them?
Yes, for now it would be better to add BUG(). Thanks.

>=20
> > +/* No arch specific virq definition now. Default to global. */
> > +static inline bool arch_virq_is_global(unsigned int virq)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return true;
> > +}
>=20
> This otoh may well remain as is for the foreseeable future.
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:10:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:10:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655782.1023567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAaO-0002ku-Np; Mon, 18 Dec 2023 10:10:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655782.1023567; Mon, 18 Dec 2023 10:10: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 1rFAaO-0002kn-Kt; Mon, 18 Dec 2023 10:10:56 +0000
Received: by outflank-mailman (input) for mailman id 655782;
 Mon, 18 Dec 2023 10:10: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFAaN-0002UG-Aj
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:10:55 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9fa6d22-9d8d-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:10:53 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-33663adf953so766297f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:10:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v18-20020a5d5912000000b003365e7f35f4sm6165150wrd.46.2023.12.18.02.10.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 02:10:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9fa6d22-9d8d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702894253; x=1703499053; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HxjJnl32ZClJfNFczB7mo7VhiixqzK9x9AgIPcO6AGQ=;
        b=FYLgmHkQ5Y2yclVwzfY/Ru7feP7FhbOTCXCQpqj+qLSb8tXQH8BA1jvpngOBlYQU5o
         7V045XOM9vPjZMf1rOrK0W8yhSgMR3sf8rQIIXhQg2Caic6FQTqB+ZIsY2fm/XDCXww2
         jtov8gFbNUSdGfFqvcRTn1+wSH6v98iVna/+o4g5OxlCHBSAEXV8desy0DqynN1YMi+E
         zSGshEfoa8yswYzY7CHLTjx91GIpXNANgOB7dDbAQdXNL5QXNOVtIHcp0L1xmUTGPMtN
         p8tErVmqnyf6v3wMSWqR89PcBRLa1FyY0xQdQ4Mvtj/NznR6fSvCgtGvAoni102/G40u
         og8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702894253; x=1703499053;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=HxjJnl32ZClJfNFczB7mo7VhiixqzK9x9AgIPcO6AGQ=;
        b=fa/UMW395LBA+f7Zo1x5o5Q1TNmLrqpiZbuEnb2g/+btsfFC4jRVcM1n352/0ikfVi
         rwflSiXxGduOpNGmsx0AOhe9gkcZwnf8X93MnUEzF6k3N5uKNK/qE3HxgUK7wfFcrnAe
         rAhUtman2NauDWLfj1/rRRUSP8tx4mnO/jnN+ENum+/BV22YDbEcF9aRFxAvXlDl2K5M
         WJyPt+vK7GDpdRunDBDfffHXutKqO5zkLAfxkdxOcaoYp4rb+3pulfdqUhwEJjDJY70Y
         7+q7WjCarUUuIr1TK1J2WF6h6ZWPloLbyH/IV4iq/T7Mkbd4BpProPN7jkDJB8JbuBM4
         q87g==
X-Gm-Message-State: AOJu0YxTNMtStr2nhvvETsMOx/OmY7YwNwy/zxttQblMRTzAgzShfK99
	idGKfonl56jb793pDAnAGjdR
X-Google-Smtp-Source: AGHT+IHoUVD44ERA8at3G/zI17Qf5OnO8UWvxuCGRjGiy+sTgtftEVUmIBHwfN+5IELQnttfNcVSlQ==
X-Received: by 2002:a05:6000:1863:b0:336:60ea:319d with SMTP id d3-20020a056000186300b0033660ea319dmr1542471wri.63.1702894252801;
        Mon, 18 Dec 2023 02:10:52 -0800 (PST)
Message-ID: <f53d964e-8df5-42eb-9582-41f6b8b5740a@suse.com>
Date: Mon, 18 Dec 2023 11:10:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 23/39] xen/riscv: introduce asm/guest_access.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <7dda759b846003fcb453f1118cefbfd2eeb804d7.1700761381.git.oleksii.kurochko@gmail.com>
 <e08e2f49-5ed5-40ec-8db4-e2dd597c8046@suse.com>
 <406a8425dc711725d3575b4c06d7bcaaff05992b.camel@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: <406a8425dc711725d3575b4c06d7bcaaff05992b.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2023 11:02, Oleksii wrote:
> On Thu, 2023-12-14 at 15:06 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/guest_access.h
>>> @@ -0,0 +1,29 @@
>>> +#ifndef __ASM_RISCV_GUEST_ACCESS_H__
>>> +#define __ASM_RISCV_GUEST_ACCESS_H__
>>> +
>>> +#include <xen/types.h>
>>> +
>>> +unsigned long raw_copy_to_guest(void *to, const void *from,
>>> unsigned len);
>>> +unsigned long raw_copy_from_guest(void *to, const void *from,
>>> unsigned len);
>>
>> For the full build to work, you will need to implement these
>> somewhere.
>> From the titles of further patches I can't guess where that would be.
>> Note how PPC has decided to have these be inline dummies for the time
>> being. It also looks as if you would also need raw_clear_guest()?
> It is implemented in xen/arch/riscv/stubs.c:362,367.

Ah, that's patch 37, which I didn't get to yet.

Jan

> Regarding raw_clear_guest() I'll double check. I don't have a
> compilation issue with it, so I ignored this macros.




From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:12:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:12:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655788.1023578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAbo-0003r1-6V; Mon, 18 Dec 2023 10:12:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655788.1023578; Mon, 18 Dec 2023 10: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 1rFAbo-0003qu-2v; Mon, 18 Dec 2023 10:12:24 +0000
Received: by outflank-mailman (input) for mailman id 655788;
 Mon, 18 Dec 2023 10:12:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFAbm-0003qi-JX
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:12:22 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee189039-9d8d-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:12:20 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3365424df34so1781156f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:12:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v18-20020a5d5912000000b003365e7f35f4sm6165150wrd.46.2023.12.18.02.12.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 02:12:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee189039-9d8d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702894340; x=1703499140; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=prDamPmLWsLHEbHCY7T2NRUW+DQt+u2BWyu9eE/IYRc=;
        b=A1TUAoTAyJD81VgxrRk1wjyegPJ7NJ4gAelca3Gwju59VUR3tgBjhPKsEQ3O91Ra1p
         TZ9kDTgTKxjHUEXUn+F9skbtltbl42atRNg3i6zzD2vj3YsaRmq26HUexAjLmsrYkz2g
         It3QMevLloUmhvRON3LnZj/I3ZjhYQfTXwQ1qwj0uL6iij/DZNM96QKkQdYUlN62lv5p
         xF78aSCnP9k0WoBl7C8VLB9iw741oQC20E00PTtciKN1TTPMt9YuLYR8ri7LISuogMvj
         Wc2RKT+q0QcgjCY0JOJg5OL6chg73PsVbvdmHS9qxf4o9hr3dPCrHGdMA1NxwS9mvonG
         luRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702894340; x=1703499140;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=prDamPmLWsLHEbHCY7T2NRUW+DQt+u2BWyu9eE/IYRc=;
        b=KyAh1V3kp2c4T1om5TM5nMp1lqbRE+63xHqV8dhFERbRmbeXB/plfrB599cbLZ4USj
         +cB17TtzDYIPFq6A+luCKxtBRAxOMe3zURgIm0x8yX8EQokh4/WdiEPA+gDdYbBLMyk9
         /xlsTurUVUstZPhwlzBIkI/mCPv13tRsndZ4n0wDb/NX8ZoMquY9mFBHqXPer9Gud0QX
         ZHdaHhyRAQIsamNS2Uyz9uU0trafiu6BZjDcdtbg/hT53Ek56emtC4KOVmMZ+aUKP7FX
         0y1D+IZHRDrnDPB4s1ojDQO89hR05ehsobxOWd+0/BfV8heMuQ9Sd8sp/viQZR8urFRm
         hk1Q==
X-Gm-Message-State: AOJu0Yw3s/SuUy0LQ7jb/bT3Dj/vbsh9mO8JPDryuc6ltgf8yVBIEy/+
	ZnpWcBqtafgSS6vefMtjD5TJ
X-Google-Smtp-Source: AGHT+IG/6nGLhFTel3NudfciZM6sg6LlmC1u1N8BXZoZ8KMRM7MftrMxwPSl2z0JuAKVG5zvEfXDtA==
X-Received: by 2002:a5d:63d2:0:b0:336:5a95:8f4 with SMTP id c18-20020a5d63d2000000b003365a9508f4mr2698964wrw.37.1702894340239;
        Mon, 18 Dec 2023 02:12:20 -0800 (PST)
Message-ID: <ef529ee1-7ae4-4a0b-b089-e26feb3b2743@suse.com>
Date: Mon, 18 Dec 2023 11:12:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 24/39] xen/riscv: introduce asm/irq.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <e9fc98cad562dad495ac1eb87b98be77cda72524.1700761381.git.oleksii.kurochko@gmail.com>
 <479cd511-c01b-4460-bafc-2d3943956914@suse.com>
 <d50405f2181396931941874f24c5018800cc5b44.camel@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: <d50405f2181396931941874f24c5018800cc5b44.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 11:04, Oleksii wrote:
> On Thu, 2023-12-14 at 15:09 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>> Changes in V2:
>>> 	- add ifdef CONFIG_HAS_DEVICE_TREE for things that
>>> shouldn't be
>>> Â Â Â Â Â  in case !CONFIG_HAS_DEVICE_TREE
>>
>> Is there going to be a RISC-V build without this enabled (selected)?
>> If
>> not, I'd recommend against such pointless #ifdef-ary.
> For this stage (Xen RISC-V full build), CONFIG_HAS_DEVICE_TREE will not
> be selected, but it will be in the near future.

And from then on it'll always be selected, or only conditionally? In the
former case it would still feel odd if #ifdef-s were introduced.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:17:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:17:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655802.1023598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAgw-0005LO-W2; Mon, 18 Dec 2023 10:17:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655802.1023598; Mon, 18 Dec 2023 10: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 1rFAgw-0005LD-TN; Mon, 18 Dec 2023 10:17:42 +0000
Received: by outflank-mailman (input) for mailman id 655802;
 Mon, 18 Dec 2023 10:17:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFAgv-00055P-Ki
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:17:41 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac6cff72-9d8e-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:17:40 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 81AEE4EE0747;
 Mon, 18 Dec 2023 11:17:38 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac6cff72-9d8e-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH v2 1/7] xen/shutdown: address MISRA C:2012 Rule 2.1
Date: Mon, 18 Dec 2023 11:17:27 +0100
Message-Id: <22881ed8e7e28d66a730deb8812b6a4b7becc750.1702891792.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702891792.git.nicola.vetrini@bugseng.com>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Given that 'hwdom_shutdown' is a noreturn function, unreachable
breaks can be eliminated to resolve violations of Rule 2.1.

The rename s/maybe_reboot/reboot_or_halt/ is done to clarify
that the function is noreturn.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- rename maybe_reboot to reboot_or_halt.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl |  2 +-
 xen/common/shutdown.c                            | 15 ++++-----------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 683f2bbfe89b..85741a2c01a9 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -16,7 +16,7 @@ Constant expressions and unreachable branches of if and switch statements are ex
 
 -doc_begin="Unreachability caused by calls to the following functions or macros is deliberate and there is no risk of code being unexpectedly left out."
 -config=MC3R1.R2.1,statements+={deliberate,"macro(name(BUG||assert_failed))"}
--config=MC3R1.R2.1,statements+={deliberate, "call(decl(name(__builtin_unreachable||panic||do_unexpected_trap||machine_halt||machine_restart||maybe_reboot)))"}
+-config=MC3R1.R2.1,statements+={deliberate, "call(decl(name(__builtin_unreachable||panic||do_unexpected_trap||machine_halt||machine_restart||reboot_or_halt)))"}
 -doc_end
 
 -doc_begin="Unreachability inside an ASSERT_UNREACHABLE() and analogous macro calls is deliberate and safe."
diff --git a/xen/common/shutdown.c b/xen/common/shutdown.c
index 37901a4f3391..dfd5e41097e9 100644
--- a/xen/common/shutdown.c
+++ b/xen/common/shutdown.c
@@ -15,7 +15,7 @@
 bool __read_mostly opt_noreboot;
 boolean_param("noreboot", opt_noreboot);
 
-static void noreturn maybe_reboot(void)
+static void noreturn reboot_or_halt(void)
 {
     if ( opt_noreboot )
     {
@@ -38,39 +38,32 @@ void hwdom_shutdown(u8 reason)
         printk("Hardware Dom%u halted: halting machine\n",
                hardware_domain->domain_id);
         machine_halt();
-        break; /* not reached */
 
     case SHUTDOWN_crash:
         debugger_trap_immediate();
         printk("Hardware Dom%u crashed: ", hardware_domain->domain_id);
         kexec_crash(CRASHREASON_HWDOM);
-        maybe_reboot();
-        break; /* not reached */
+        reboot_or_halt();
 
     case SHUTDOWN_reboot:
         printk("Hardware Dom%u shutdown: rebooting machine\n",
                hardware_domain->domain_id);
         machine_restart(0);
-        break; /* not reached */
 
     case SHUTDOWN_watchdog:
         printk("Hardware Dom%u shutdown: watchdog rebooting machine\n",
                hardware_domain->domain_id);
         kexec_crash(CRASHREASON_WATCHDOG);
         machine_restart(0);
-        break; /* not reached */
 
     case SHUTDOWN_soft_reset:
         printk("Hardware domain %d did unsupported soft reset, rebooting.\n",
                hardware_domain->domain_id);
         machine_restart(0);
-        break; /* not reached */
 
     default:
         printk("Hardware Dom%u shutdown (unknown reason %u): ",
                hardware_domain->domain_id, reason);
-        maybe_reboot();
-        break; /* not reached */
+        reboot_or_halt();
     }
-}  
-
+}
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:17:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:17:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655804.1023618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAgy-0005pA-Fa; Mon, 18 Dec 2023 10:17:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655804.1023618; Mon, 18 Dec 2023 10:17: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 1rFAgy-0005p1-C6; Mon, 18 Dec 2023 10:17:44 +0000
Received: by outflank-mailman (input) for mailman id 655804;
 Mon, 18 Dec 2023 10:17: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=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFAgw-00055V-T3
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:17:42 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id addb1bd8-9d8e-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:17:42 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 301BB4EE0C8A;
 Mon, 18 Dec 2023 11:17:41 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: addb1bd8-9d8e-11ee-98eb-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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: [XEN PATCH v2 3/7] xen/arm: address MISRA C:2012 Rule 2.1
Date: Mon, 18 Dec 2023 11:17:29 +0100
Message-Id: <06857c133d1db8ab3a2eec5e0363be4358a0ec81.1702891792.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702891792.git.nicola.vetrini@bugseng.com>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There are no paths that can reach the last return statement
of function 'vgic_v3_its_mmio_write' in 'vcig-v3-its.c' and
'arch_memory_op' in 'arch/arm/mm.c', thus violating
MISRA C:2012 Rule 2.1:
"A project shall not contain unreachable code".

Therefore, an ASSERT_UNREACHABLE() is inserted to remove the unreachable
return statement and protect against possible mistakes.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- Changed resolution strategy to have an ASSERT_UNREACHABLE() before
  the return.
---
 xen/arch/arm/mm.c          | 1 +
 xen/arch/arm/vgic-v3-its.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index eeb65ca6bb79..b15a18a49412 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -283,6 +283,7 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
         return -ENOSYS;
     }
 
+    ASSERT_UNREACHABLE();
     return 0;
 }
 
diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
index 05429030b539..70b5aeb82219 100644
--- a/xen/arch/arm/vgic-v3-its.c
+++ b/xen/arch/arm/vgic-v3-its.c
@@ -1409,6 +1409,7 @@ static int vgic_v3_its_mmio_write(struct vcpu *v, mmio_info_t *info,
         return 0;
     }
 
+    ASSERT_UNREACHABLE();
     return 1;
 
 write_ignore_64:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:17:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:17:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655803.1023602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAgx-0005O0-8T; Mon, 18 Dec 2023 10:17:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655803.1023602; Mon, 18 Dec 2023 10:17:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAgx-0005NF-3f; Mon, 18 Dec 2023 10:17:43 +0000
Received: by outflank-mailman (input) for mailman id 655803;
 Mon, 18 Dec 2023 10:17: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=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFAgv-00055V-V8
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:17:41 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ad1d3069-9d8e-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:17:41 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 103064EE0C81;
 Mon, 18 Dec 2023 11:17:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad1d3069-9d8e-11ee-98eb-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH v2 2/7] x86/mm: address MISRA C:2012 Rule 2.1
Date: Mon, 18 Dec 2023 11:17:28 +0100
Message-Id: <1cd82cf19a613a122a770bf6670e681ca7fccd44.1702891792.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702891792.git.nicola.vetrini@bugseng.com>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
is unreachable because all switch clauses end with returns, and
can thus be dropped.

No functional changes.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- Drop the final return instead. A stripped-down version of this switch has been
  tested on godbolt.org with gcc-4.1.2 and shows no compile-time issues.
---
 xen/arch/x86/mm.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 0a66db10b959..49d9f371f35c 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4887,8 +4887,6 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     default:
         return subarch_memory_op(cmd, arg);
     }
-
-    return 0;
 }
 
 int cf_check mmio_ro_emulated_write(
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:17:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:17:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655805.1023628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAh0-00066y-On; Mon, 18 Dec 2023 10:17:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655805.1023628; Mon, 18 Dec 2023 10:17:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAh0-00066l-JT; Mon, 18 Dec 2023 10:17:46 +0000
Received: by outflank-mailman (input) for mailman id 655805;
 Mon, 18 Dec 2023 10:17:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFAgz-00055P-4s
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:17:45 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae7ffbaf-9d8e-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:17:43 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 674F14EE0C8D;
 Mon, 18 Dec 2023 11:17:42 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae7ffbaf-9d8e-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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: [XEN PATCH v2 4/7] xen/arm: traps: add ASSERT_UNREACHABLE() where needed
Date: Mon, 18 Dec 2023 11:17:30 +0100
Message-Id: <02070d1bb4bfc0e88d548a529bef8bedab5b3488.1702891792.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702891792.git.nicola.vetrini@bugseng.com>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The statements after a call to the noreturn function 'do_unexpected_trap'
can't be reached, thus violating MISRA C:2012 Rule 2.1
("A project shall not contain unreachable code.").
ASSERT_UNREACHABLE() is used to signal that the unreachable break-s are used as
a defensive coding measure to prevent inadvertent fallthrough.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- Use ASSERT_UNREACHABLE() to prevent mistakes.
---
 xen/arch/arm/traps.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 3784e8276ef6..77220ba0927a 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -2152,6 +2152,7 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs)
     case HSR_EC_SVE:
         /* An SVE exception is a bug somewhere in hypervisor code */
         do_unexpected_trap("SVE trap at EL2", regs);
+        ASSERT_UNREACHABLE();
         break;
 #endif
     case HSR_EC_DATA_ABORT_CURR_EL:
@@ -2171,7 +2172,7 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs)
             dump_hyp_walk(get_hfar(is_data));
 
         do_unexpected_trap(fault, regs);
-
+        ASSERT_UNREACHABLE();
         break;
     }
     default:
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:17:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:17:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655801.1023588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAgv-00055h-Pa; Mon, 18 Dec 2023 10:17:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655801.1023588; Mon, 18 Dec 2023 10: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 1rFAgv-00055W-LW; Mon, 18 Dec 2023 10:17:41 +0000
Received: by outflank-mailman (input) for mailman id 655801;
 Mon, 18 Dec 2023 10:17:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFAgu-00055P-ON
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:17:40 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ab9dfe7b-9d8e-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:17:38 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 7C6EB4EE0742;
 Mon, 18 Dec 2023 11:17:36 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab9dfe7b-9d8e-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN PATCH v2 0/7] address violations of MISRA C:2012 Rule 2.1
Date: Mon, 18 Dec 2023 11:17:26 +0100
Message-Id: <cover.1702891792.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C:2012 Rule 2.1 states: "A project shall not contain unreachable code".
As such, this series eliminates various instances of unreachable code found in
Xen, by providing equivalent compliant constructs.

This series is loosely based on my earlier series [1], but the overall approach
has changed since; for instance, declarations without initialization are now
ignored, as detailed in docs/misra/deviations.rst.

[1] https://lore.kernel.org/xen-devel/cover.1690985045.git.nicola.vetrini@bugseng.com/

Changes in v2:
- Patch 4 has been committed;
- Drop Patch 7/7;
- Add two new patches:
  - "xen/arm: vcpreg: address violation of MISRA C Rule 2.1"
  - "automation/eclair_analysis: avoid violation of MISRA Rule 2.1"
- Reworked all other patches.

Nicola Vetrini (7):
  xen/shutdown: address MISRA C:2012 Rule 2.1
  x86/mm: address MISRA C:2012 Rule 2.1
  xen/arm: address MISRA C:2012 Rule 2.1
  xen/arm: traps: add ASSERT_UNREACHABLE() where needed
  x86/platform: removed break to address MISRA C:2012 Rule 2.1
  xen/arm: vcpreg: address violation of MISRA C Rule 2.1
  automation/eclair_analysis: avoid violation of MISRA Rule 2.1

 automation/eclair_analysis/ECLAIR/deviations.ecl |  7 ++++++-
 xen/arch/arm/mm.c                                |  1 +
 xen/arch/arm/traps.c                             |  3 ++-
 xen/arch/arm/vcpreg.c                            | 10 ++++++++--
 xen/arch/arm/vgic-v3-its.c                       |  1 +
 xen/arch/x86/mm.c                                |  2 --
 xen/arch/x86/platform_hypercall.c                |  1 -
 xen/common/shutdown.c                            | 15 ++++-----------
 8 files changed, 22 insertions(+), 18 deletions(-)

-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:17:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:17:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655806.1023634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAh1-0006BV-83; Mon, 18 Dec 2023 10:17:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655806.1023634; Mon, 18 Dec 2023 10: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 1rFAh1-0006B7-0C; Mon, 18 Dec 2023 10:17:47 +0000
Received: by outflank-mailman (input) for mailman id 655806;
 Mon, 18 Dec 2023 10:17: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=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFAgz-00055V-7C
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:17:45 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af30754f-9d8e-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:17:44 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 84A224EE0746;
 Mon, 18 Dec 2023 11:17:43 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af30754f-9d8e-11ee-98eb-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH v2 5/7] x86/platform: removed break to address MISRA C:2012 Rule 2.1
Date: Mon, 18 Dec 2023 11:17:31 +0100
Message-Id: <a6b3f8d44888d7c8b1d72803111dc331fafd4b02.1702891792.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702891792.git.nicola.vetrini@bugseng.com>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The break statement is redundant, hence it can be removed.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- Remove the outer break, instead of the inner one.
---
 xen/arch/x86/platform_hypercall.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 4dde71db275c..7a2e4b9b603e 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -725,7 +725,6 @@ ret_t do_platform_op(
             0, cpu_down_helper, (void *)(unsigned long)cpu);
         break;
     }
-    break;
 
     case XENPF_cpu_hotadd:
         ret = xsm_resource_plug_core(XSM_HOOK);
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:17:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:17:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655807.1023639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAh1-0006Ha-J2; Mon, 18 Dec 2023 10:17:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655807.1023639; Mon, 18 Dec 2023 10: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 1rFAh1-0006GI-BI; Mon, 18 Dec 2023 10:17:47 +0000
Received: by outflank-mailman (input) for mailman id 655807;
 Mon, 18 Dec 2023 10:17:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFAh0-00055V-Fw
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:17:46 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id affa4c52-9d8e-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:17:46 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id A4D0C4EE0747;
 Mon, 18 Dec 2023 11:17:44 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: affa4c52-9d8e-11ee-98eb-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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: [XEN PATCH v2 6/7] xen/arm: vcpreg: address violation of MISRA C Rule 2.1
Date: Mon, 18 Dec 2023 11:17:32 +0100
Message-Id: <9816362a11aeb7b9618500dea9bbf32e4b5483a9.1702891792.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702891792.git.nicola.vetrini@bugseng.com>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There is no path that reaches the call to 'advance_pc', thus violating MISRA C
Rule 2.1.
A call to ASSERT_UNREACHABLE() is added after the switch, despite this being
useful to detect errors only in debug builds; if that marker is ever reached,
a domain crash is triggered, as a defensive coding measure.

No functional change.

Signed-off-by: Julien Grall <julien@xen.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
The code changes (including the comment) were made by Julien in [1]; I added the
commit text and all other informations.

All the switch clauses, when expanded, end with a return statement
and the default clause has an unconditional return, therefore
advance_pc() is never reached.

However, it has been deemed safer to crash the domain if the switch is ever
exited.

[1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2312151232580.3175268@ubuntu-linux-20-04-desktop/T/#maa91d8025532455a6317119a1e4affa00a99e1ce
---
 xen/arch/arm/vcpreg.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
index 39aeda9dab62..a2d050070473 100644
--- a/xen/arch/arm/vcpreg.c
+++ b/xen/arch/arm/vcpreg.c
@@ -707,8 +707,14 @@ void do_cp10(struct cpu_user_regs *regs, const union hsr hsr)
         inject_undef_exception(regs, hsr);
         return;
     }
-
-    advance_pc(regs, hsr);
+    
+    /*
+     * All the cases in the switch should return. If this is not the
+     * case, then something went wrong and it is best to crash the
+     * domain.
+     */
+    ASSERT_UNREACHABLE();
+    domain_crash(current->domain);
 }
 
 void do_cp(struct cpu_user_regs *regs, const union hsr hsr)
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:17:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:17:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655808.1023656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAh3-0006sZ-9H; Mon, 18 Dec 2023 10:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655808.1023656; Mon, 18 Dec 2023 10:17:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAh3-0006rh-4d; Mon, 18 Dec 2023 10:17:49 +0000
Received: by outflank-mailman (input) for mailman id 655808;
 Mon, 18 Dec 2023 10:17: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=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFAh1-00055V-Fm
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:17:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0979b7a-9d8e-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:17:47 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 0196E4EE0746;
 Mon, 18 Dec 2023 11:17:45 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0979b7a-9d8e-11ee-98eb-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@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>
Subject: [XEN PATCH v2 7/7] automation/eclair_analysis: avoid violation of MISRA Rule 2.1
Date: Mon, 18 Dec 2023 11:17:33 +0100
Message-Id: <6bf425b3d01dc16297ef45e58c03b3ffd803b9e0.1702891792.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702891792.git.nicola.vetrini@bugseng.com>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The presence of an unlinked object file triggers a violation
of MISRA C Rule 2.1, which is deviated, as it's not part of
the final Xen binary.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 85741a2c01a9..e3de0fb2adf8 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -28,6 +28,11 @@ not executable, and therefore it is safe for them to be unreachable."
 -config=MC3R1.R2.1,ignored_stmts+={"any()", "pure_decl()"}
 -doc_end
 
++-doc_begin="The following autogenerated file is not linked deliberately."
++-file_tag+={C_runtime_failures,"^automation/eclair_analysis/C-runtime-failures\\.rst\\.c$"}
++-config=MC3R1.R2.1,reports+={deliberate, "any_area(any_loc(file(C_runtime_failures)))"}
++-doc_end
+
 -doc_begin="Proving compliance with respect to Rule 2.2 is generally impossible:
 see https://arxiv.org/abs/2212.13933 for details. Moreover, peer review gives us
 confidence that no evidence of errors in the program's logic has been missed due
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:36:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655844.1023667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFAyy-0005Lh-W8; Mon, 18 Dec 2023 10:36:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655844.1023667; Mon, 18 Dec 2023 10: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 1rFAyy-0005La-T7; Mon, 18 Dec 2023 10:36:20 +0000
Received: by outflank-mailman (input) for mailman id 655844;
 Mon, 18 Dec 2023 10:36:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFAyx-0005LU-Pz
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:36:19 +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 46a88669-9d91-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:36:17 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2c9f099cf3aso38301231fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:36:17 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 f8-20020a193808000000b0050d12fe487bsm978192lfa.277.2023.12.18.02.36.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:36:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46a88669-9d91-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702895777; x=1703500577; 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=okUy8HINtJZLwVQpwTpc8nuySwXabZIOlPYTAN+PnYc=;
        b=db0sdiRX+S/n7u5zRjUyY3wYwm/jNq9nwBFyIuYAd6qkBszr5IHuxphPGrv0B2kN/q
         GFd6k/yzIsyqdJgA83D22QefrET7dGz/JetsmSEwTOBmSyuyDEuVdfM0CyfcSy2CCuU4
         e+SwHticdz9DuTcv7jSYhTKwFLaCNhzkemF0cwKmw1u+rXyxcklrkPHg4t/0xLLBSuXS
         HMYR2ZHlHZclTvpe2GyTcNYah7gGMXAfbV3vkAxPFTttjF77oEbLGaEGX0zouq4SwpWz
         2Hv3d4bt5swMm+UJrPznAEqvh1ZeEfRgykdyL7hXz6YN1m0R/LbIbLFSR/l3/GUMKNP8
         wkhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702895777; x=1703500577;
        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=okUy8HINtJZLwVQpwTpc8nuySwXabZIOlPYTAN+PnYc=;
        b=jRJEFj51ZMyloWpVdN+VTagSsj4zRQFgnAVJXfL8Q4yPIcot2xTqD7hQjs2/OCCbyE
         Ob/CMzIp61E+D2aok7r91miw8XBYGEhHdeamEmSXxhWP/6bhLu3APgfXFauIHfV0aeQA
         l6rqMUM9iNwdU0IG79VSoS1Co1wMY6tPy6BLaKN4VSJdTbiIKOilCvjon4QNnh1PwYfx
         uaWoWiryEWzt0/gR8fW9+rBBI1QG33MXV4jecT8yecVGEt6lMyV0SCMyBdmXrpxqCQFi
         s9kGqa9Bp+VDpODjo+fAczUlt2/8wb7ej3QH9CN3HYGvObt35YzHKMryTDYezQSh+5Vl
         Wszg==
X-Gm-Message-State: AOJu0YzihvQz7EOTWh49LJhC4eIT/fbt2PDkGGtrTSvt2Ts+S7NTvubk
	BkuBp4+9tjBG1CcJKf4Tz50=
X-Google-Smtp-Source: AGHT+IH3LZDbLXk0GkIeBpkjitcQ107qNfjV7huLQ7t6FrVCyvRktHp/4lCtSD3VDqp9Y7V5aHJ7bQ==
X-Received: by 2002:a05:6512:2242:b0:50d:1a17:b69c with SMTP id i2-20020a056512224200b0050d1a17b69cmr8158155lfu.52.1702895777100;
        Mon, 18 Dec 2023 02:36:17 -0800 (PST)
Message-ID: <5d3e7f9ad7ff0eb779e269eee1c42300d987b5a1.camel@gmail.com>
Subject: Re: [PATCH v2 30/39] xen/riscv: define an address of frame table
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:36:16 +0200
In-Reply-To: <b2c42d56-6bc8-4ea8-9e6f-cae259c274c5@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <13ad41657814e4fc235772fa0928de1723ae7c3d.1700761381.git.oleksii.kurochko@gmail.com>
	 <b2c42d56-6bc8-4ea8-9e6f-cae259c274c5@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 16:48 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Also the patchs adds some helpful macros.
>=20
> In how far they're (going to be) helpful is hard to tell without uses
> and without some suitable comments.
>=20
> > --- a/xen/arch/riscv/include/asm/config.h
> > +++ b/xen/arch/riscv/include/asm/config.h
> > @@ -77,12 +77,31 @@
> > =C2=A0=C2=A0 name:
> > =C2=A0#endif
> > =C2=A0
> > +#define VPN_BITS=C2=A0=C2=A0=C2=A0 (9)
> > +#define OFFSET_BITS (12)
>=20
> Whose offset? In how far is this different from PAGE_SHIFT?
It is page offset ( RISC-V terminology names it so ) and it is not
different with PAGE_SHIFT. OFFSET_BITS can be dropped.
>=20
> > =C2=A0#ifdef CONFIG_RISCV_64
> > +
> > +#define SLOTN_ENTRY_BITS=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (HY=
P_PT_ROOT_LEVEL * VPN_BITS +
> > OFFSET_BITS)
> > +#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)
>=20
> Nit: Missing blank after comma.
Thanks. I'll update that.

>=20
> > +#define SLOTN_ENTRY_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 SLO=
TN(1)
> > +
> > =C2=A0#define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL) + 1 -
> > GB(1)) */
> > +
> > +#define FRAMETABLE_VIRT_START=C2=A0=C2=A0 SLOTN(196)
> > +#define FRAMETABLE_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 GB(3)
> > +#define FRAMETABLE_NR=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 (FRAMETABLE_SIZE /
> > sizeof(*frame_table))
> > +#define FRAMETABLE_VIRT_END=C2=A0=C2=A0=C2=A0=C2=A0 (FRAMETABLE_VIRT_S=
TART +
> > FRAMETABLE_SIZE - 1)
> > +
> > +#define VMAP_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 SLOTN(194)
> > +#define VMAP_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 GB(1)
>=20
> May I suggest that you keep these blocks sorted by slot number? Or
> wait,
> the layout comment further up is also in decreasing order, so that's
> fine here, but then can all of this please be moved next to the
> comment
> actually providing the necessary context (thus eliminating the need
> for
> new comments)?
Sure, I'll put this part close to layout comment.

>  You'll then also notice that the generalization here
> (keeping basically the same layout for e.g. SATP_MODE_SV48, just
> shifted
> by 9 bits) isn't in line with the comment there.
Does it make sense to add another one table with updated addresses for
SATP_MODE_SV48?
Microchip has h/w which requires SATP_MODE_SV48 ( at least ), so I have
a patch which introduces SATP_MODE_SV48 and I planned to update the
layout table in this patch.

>=20
> > @@ -95,6 +114,8 @@
> > =C2=A0#define RV_STAGE1_MODE SATP_MODE_SV32
> > =C2=A0#endif
> > =C2=A0
> > +#define HYP_PT_ROOT_LEVEL (CONFIG_PAGING_LEVELS - 1)
>=20
> I understand that CONFIG_PAGING_LEVELS is defined only just up from
> here,
> but what that identifier stands for is quite clear. It would seem to
> me
> that moving this up ahead if its first use would help clarity.
Thanks. It can be useful, so I'll move it up.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:39:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:39:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655846.1023678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFB1z-00063A-Dw; Mon, 18 Dec 2023 10:39:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655846.1023678; Mon, 18 Dec 2023 10:39:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFB1z-000633-Av; Mon, 18 Dec 2023 10:39:27 +0000
Received: by outflank-mailman (input) for mailman id 655846;
 Mon, 18 Dec 2023 10:39:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFB1x-00061n-Qp
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:39:25 +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 b593f8be-9d91-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:39:23 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-50bf3efe2cbso2934539e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:39:23 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 d2-20020a05651233c200b0050e23d8af76sm706226lfg.137.2023.12.18.02.39.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:39:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b593f8be-9d91-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702895963; x=1703500763; 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=CSVVdtw9ZDDvPQei/DzRiX/UIKO5jqCzMWFdIP0+7cY=;
        b=kX5RVIEWvjApT1Ada3Bdf+cQ6YwH0MjLoSvI9XosIcVD/M2vweReXV2/ruwVLI4zEA
         wH0dZTJCz1fUL0hO6XK2JmOHNerw4f1TiIGQjZHkleILuh9r5pVNUsA4sAmkQWMoiGiq
         YpYutkYN5dC3mqCYHT0if6/a3RlssKMDhfYGjKfwOWtKlKi7Vv8bJnCIoIhbM4gWtiT0
         yO8tgR1ZcU4K9Rnn0V49KMKOVTja6eAyCyQ1QR//0nEQKq2nOPYNj/aQCkebt6LxjXKs
         X0tplKw0duX7xo1/gJ3snHnyOJlSquW5qcUto8UXENyfsXuNA6Vfr5lgJerxKYfFD+4D
         w8KA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702895963; x=1703500763;
        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=CSVVdtw9ZDDvPQei/DzRiX/UIKO5jqCzMWFdIP0+7cY=;
        b=dM2IHj9grMRJYv2absH7I9pQJgj1tMybN60BC/5uSFGriX6rYd3XrCjNtziA1pv7MQ
         vPm3HGQC7HlkjDuWlMw2ohlVp4k89xrJTuWYMEYI5ndKmZ1PDvsiH9b2SDcp2ahL3vvS
         xMhQLxltdZKXvL8/eraiKErnp19C2tA6OpqVJ+QqyDxh3I6a2gA4YA6PXZfWVLSChptu
         +eHBgaAUUo6FC0dL1v1HaJec2KvgkW7Lv0+HEeXSrzBuDYgyGBYuKOgzLGeXfugsGK3w
         UKRIQLW+Tz46q2Bmp3+xXYT5WGfSc6QnH4uUS8u6ndwWj7RHPlYUOusqxE+mrgLfMp++
         mLJA==
X-Gm-Message-State: AOJu0Yy9sFpshcCFFfScs4vHLE2kroVQ3zHMJ2ePqVeVsZZcD3AdWPl6
	C+6cYkZvggJDr8A1/qAjx20=
X-Google-Smtp-Source: AGHT+IHOiN6wNqnmAMVffnnlI9SH235nv1RDtuB/UvbJOXTWYx95SP/RmYC7EZHQV1EETaj/TzbJew==
X-Received: by 2002:ac2:5f6e:0:b0:50e:34a2:6a93 with SMTP id c14-20020ac25f6e000000b0050e34a26a93mr388725lfc.102.1702895963253;
        Mon, 18 Dec 2023 02:39:23 -0800 (PST)
Message-ID: <2c0ac2c7d21222944052f51c3af497c53f1a1da4.camel@gmail.com>
Subject: Re: [PATCH v2 31/39] xen/riscv: add required things to asm/current.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:39:22 +0200
In-Reply-To: <8d089dbe-a411-4083-9540-d0c95fa183cf@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <b6328d9b5bbb9269066dc17d7c0fcb32fa935b2b.1700761381.git.oleksii.kurochko@gmail.com>
	 <8d089dbe-a411-4083-9540-d0c95fa183cf@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 16:55 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- a/xen/arch/riscv/include/asm/current.h
> > +++ b/xen/arch/riscv/include/asm/current.h
> > @@ -3,6 +3,22 @@
> > =C2=A0#ifndef __ASM_CURRENT_H
> > =C2=A0#define __ASM_CURRENT_H
> > =C2=A0
> > +#include <xen/percpu.h>
> > +#include <asm/processor.h>
> > +
> > +#ifndef __ASSEMBLY__
> > +
> > +struct vcpu;
>=20
> I don't think you need this here?
Shouldn't forward declaration be for the case of curr_vcpu declaration
in the next line ?
>=20
> > +/* Which VCPU is "current" on this PCPU. */
> > +DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
> > +
> > +#define current=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 (this_cpu(curr_vcpu))
>=20
> Nit: No need for the extra parentheses.
Thanks.

>=20
> > +#define set_current(vcpu)=C2=A0 do { current =3D (vcpu); } while (0)
> > +#define get_cpu_current(cpu)=C2=A0 (per_cpu(curr_vcpu, cpu))
>=20
> Same here then.
>=20
> > +#define guest_cpu_user_regs() (0)
>=20
> 0 or NULL? Also perhaps better=20
>=20
> #define guest_cpu_user_regs() ({ BUG(); NULL; })
>=20
> until it's properly implemented?
Thanks. I'll use your definition.

>=20
> > @@ -10,4 +26,8 @@
> > =C2=A0=C2=A0=C2=A0=C2=A0 unreachable();=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > =C2=A0} while ( false )
> > =C2=A0
> > +#define get_per_cpu_offset() __per_cpu_offset[get_processor_id()]
>=20
> I'd like to remind you that there's no get_processor_id() anymore.
Yeah, missed that. Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:45:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:45:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655850.1023687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFB7U-0008UF-1L; Mon, 18 Dec 2023 10:45:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655850.1023687; Mon, 18 Dec 2023 10:45:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFB7T-0008U8-V5; Mon, 18 Dec 2023 10:45:07 +0000
Received: by outflank-mailman (input) for mailman id 655850;
 Mon, 18 Dec 2023 10:45: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFB7T-0008U2-59
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:45:07 +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 81c49e3a-9d92-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 11:45:06 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-50e0d1f9fe6so3239715e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:45:06 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 k14-20020ac257ce000000b0050e3464b390sm414349lfo.234.2023.12.18.02.45.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:45:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81c49e3a-9d92-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702896306; x=1703501106; 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=6ApyRgxr82IK8huQazKMS4Grkj8EA18c6hdKN81ovao=;
        b=iUQQM+uFai0R4uK55m6eU3fU+gqA/zI2+REMUvuRljRhVO24p+Ogqy4atApYidPt2W
         6FD8bfEyypwfu/VS0L+bBjiWIuDhSrgRWTc+IXJ7+LmzgfGbeMiuJ7kRUklitWZYK2Tm
         yQvWpsGnZcSJcpFSQuX2BNVXvzhm5svTDZ+EA3v6GWxNGVqdtV5xzvy/daGLmj+E3hx1
         DznEkXwYXvB9sA+9Iv4jHladyIWLdm6mPC1J0VfSI7TGCCoQIMhT8A68VqJMSh1QhTyR
         Op/nLi7trSZI9r+u6EXicCBUPBKRsTFd9la04SqQWXrHebKPokpJk64YcqhQB1qUH1OG
         1Exw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702896306; x=1703501106;
        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=6ApyRgxr82IK8huQazKMS4Grkj8EA18c6hdKN81ovao=;
        b=HfD4c5A+3VC3Ba5DJxG8OcSFmtz9Hgjo4ofulkNo1VQl139GAM0Y9pI4FCsigD2Qqp
         R37ihsSrJ/DGyj3bC1LdzdUeAvi5I87dT+CPJt/lQQiELZCBudaBCmscz+Y4Ud8JBtAG
         9SGQM01OZ/1KoR+OTyh/L9qDhqFLJzIizADDUofAzFHwpkldUUo6a/NLBee5Lp/OzpPv
         M3apPPU+jtNAsjqCZAOjo8ishiM/4Ka0FNfPDd9oM8lYiUTpQN/Xh6PvV8VmUN7mEQMx
         MgqmDAEl0ZbJoOPuXzn7czEFQaIdUKzLIS8BWu5dIwKpCzKhuXJ2uq2ol+TPHwCB/ObF
         vOhg==
X-Gm-Message-State: AOJu0Yw6ESLoj15G/KRj9L/Hn0iXWIyP9IbKB6lMxMSe1SaGOYUhXRxK
	fXVBhd49kqSR3l0+2fj6bno=
X-Google-Smtp-Source: AGHT+IGtnK0MXifLyXtE9BFwj1U3KvEgE9X7i7UF8jkxhXzdYAVgsbyS5Comfc6AlF1vXQYXFZobFw==
X-Received: by 2002:a05:6512:518:b0:50c:1280:8506 with SMTP id o24-20020a056512051800b0050c12808506mr7148036lfb.42.1702896305790;
        Mon, 18 Dec 2023 02:45:05 -0800 (PST)
Message-ID: <c0ae5654e6be1eb10282a3d95fb419d5c975e98b.camel@gmail.com>
Subject: Re: [PATCH v2 32/39] xen/riscv: add minimal stuff to asm/page.h to
 build full Xen
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:45:04 +0200
In-Reply-To: <ccef1adc-af39-43b2-8f97-ed3895e8809d@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <34a4bc023eb50e1d1cf70fa149825c51f2f4555f.1700761381.git.oleksii.kurochko@gmail.com>
	 <ccef1adc-af39-43b2-8f97-ed3895e8809d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 16:57 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> Acked-by: Jan Beulich <jbeulich@suse.com>
>=20
> I wonder though ...
>=20
> > --- a/xen/arch/riscv/include/asm/page.h
> > +++ b/xen/arch/riscv/include/asm/page.h
> > @@ -6,6 +6,7 @@
> > =C2=A0#ifndef __ASSEMBLY__
> > =C2=A0
> > =C2=A0#include <xen/const.h>
> > +#include <xen/bug.h>
> > =C2=A0#include <xen/types.h>
> > =C2=A0
> > =C2=A0#include <asm/mm.h>
> > @@ -32,6 +33,9 @@
> > =C2=A0#define PTE_LEAF_DEFAULT=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 (PTE_VALID | PTE_READABLE |
> > PTE_WRITABLE)
> > =C2=A0#define PTE_TABLE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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_VALID)
> > =C2=A0
> > +/* TODO */
> > +#define PAGE_HYPERVISOR 0
>=20
> ... whether this couldn't be defined properly right away.
It can be introduced now but it requires some additional defines to be
introduced in the same time:

#define _PAGE_W_BIT     2
#define _PAGE_XN_BIT    3
#define _PAGE_RO_BIT    1
#define _PAGE_XN        (1U << _PAGE_XN_BIT)
#define _PAGE_RO        (1U << _PAGE_RO_BIT)
#define _PAGE_W         (1U << _PAGE_W_BIT)

...
/*
 * _PAGE_DEVICE and _PAGE_NORMAL are convenience defines. They are not
 * meant to be used outside of this header.
 */
// #define _PAGE_DEVICE    _PAGE_XN
#define _PAGE_NORMAL    _PAGE_PRESENT

#define PAGE_HYPERVISOR_RW      (_PAGE_NORMAL | _PAGE_RO | _PAGE_XN |
_PAGE_W)

#define PAGE_HYPERVISOR         PAGE_HYPERVISOR_RW

And _PAGE_PRESENT in pgtbl-bits.h:

#define _PAGE_PRESENT   (1 << 0)

I prefer to introduce all this things when it will be really used.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 10:49:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 10:49:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655856.1023698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBBX-0000kv-J7; Mon, 18 Dec 2023 10:49:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655856.1023698; Mon, 18 Dec 2023 10:49:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBBX-0000ko-F4; Mon, 18 Dec 2023 10:49:19 +0000
Received: by outflank-mailman (input) for mailman id 655856;
 Mon, 18 Dec 2023 10:49: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFBBW-0000ki-Da
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 10:49:18 +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 16d12800-9d93-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 11:49:16 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-50e2786e71fso1951393e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 02:49:16 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 t10-20020a195f0a000000b0050e38f8ba2esm241016lfb.273.2023.12.18.02.49.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 02:49:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16d12800-9d93-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702896556; x=1703501356; 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=Kfl3xyUQgtnl0J3d2lYhaR3oNiOESEkZ9aSw9+9YdVY=;
        b=Cv5eVK8ljVVl6LvVQbYW43PIM5Q5tZBhPzWbez2WadQS5zAeU9BoLjGlPgr7uwqD2T
         dfuRcgxTtWF80plqC1PMBlVIMtR8gdO/Mi0XPTMGGohSEt5uBIzT3AoNCZ+uNQmkitEr
         1LL7UTlghruXT/inn2zyACcBs4ym9rhNKqeU4cSIV5wclq8mPElO6SVrmKLmbQD0f1eN
         xxqwLxDOkBMf9HYZtsVMykjIkzDG/Nl9seew+wHKHz0lnuwjYxp1+uy/IPz1VQHlgcOP
         i4GZ8yxaBX1dZiFjOpvt+u68tPGdi1xJiR14RFWLRs3ppuKJIohysIrrBA+Dww8TE3tK
         WNsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702896556; x=1703501356;
        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=Kfl3xyUQgtnl0J3d2lYhaR3oNiOESEkZ9aSw9+9YdVY=;
        b=IiQsmytTUMHKqovi1x+MwLuZ6UlC5Sl9sirufqb/oLlJsgSzMQAQ6DoC3i7gF7Qi2o
         kit80NhI8pBJJAd/97bjDLNeocNylhweMWKCuT0UClrj+YwIjta+nhD65cEXPV5BAxP9
         hdfbaPzaeamjBliR5QZdevQn8EsvC/tncTQptQKOiaTNV7bwESYlSg+dYRi0AVDOdSZV
         Q5xJWu4us3y0t/PTVpGxYnDoHujxRFSJwmoU6NE+f6n/fEb83WeVucr0AVMiTdl9whtG
         MRXVANKXJDw2vEOlxRJNOqRQlJ1x7lZ1a2SujsrFC4o16JYL8F/ljFIepeWc0Q/iWawV
         Gk7A==
X-Gm-Message-State: AOJu0YwopG3G+cZ+/nfaZKjcLyLfSTWeEDu49wfsGxvFGJ6fDlA+FpZz
	+oMq0noPdGT9KDC1k4BFP1Y=
X-Google-Smtp-Source: AGHT+IF2K4Eo08ieZCU5IzlvqIa7inNWQZ47AQLtqbtMTdHDnMrLbyCv0HpCaBKnocfTcKLGZ+edlQ==
X-Received: by 2002:ac2:46f3:0:b0:50e:24c4:6080 with SMTP id q19-20020ac246f3000000b0050e24c46080mr1474356lfo.7.1702896555882;
        Mon, 18 Dec 2023 02:49:15 -0800 (PST)
Message-ID: <a46dee8dc5f15beb8c01f84b6363f6d7763e0ede.camel@gmail.com>
Subject: Re: [PATCH v2 33/39] xen/riscv: add minimal stuff to
 asm/processor.h to build full Xen
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 12:49:14 +0200
In-Reply-To: <c431a7ac-ac4d-4de2-969a-ad2acf1a7aee@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <11f177882b74c60233626075a69bdd00d3da2311.1700761381.git.oleksii.kurochko@gmail.com>
	 <c431a7ac-ac4d-4de2-969a-ad2acf1a7aee@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 17:04 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- a/xen/arch/riscv/include/asm/processor.h
> > +++ b/xen/arch/riscv/include/asm/processor.h
> > @@ -12,6 +12,9 @@
> > =C2=A0
> > =C2=A0#ifndef __ASSEMBLY__
> > =C2=A0
> > +/* TODO: need to be implemeted */
> > +#define get_processor_id() 0
>=20
> Please don't re-introduce this - it was just recently dropped from
> the
> code base.
Thanks for remind me that. I'll drop it in the next version.

>=20
> > @@ -53,6 +56,18 @@ struct cpu_user_regs
> > =C2=A0=C2=A0=C2=A0=C2=A0 unsigned long pregs;
> > =C2=A0};
> > =C2=A0
> > +/* TODO: need to implement */
> > +#define cpu_to_core(_cpu)=C2=A0=C2=A0 (0)
> > +#define cpu_to_socket(_cpu) (0)
>=20
> No need for leading underscores here.
Sure. Thanks.
>=20
> > +static inline void cpu_relax(void)
> > +{
> > +	int dummy;
> > +	/* In lieu of a halt instruction, induce a long-latency
> > stall. */
> > +	__asm__ __volatile__ ("div %0, %0, zero" : "=3Dr" (dummy));
>=20
> Any reason for this, when Arm's is just barrier(), and apparently
> they got
> away with this quite fine? Also isn't this causing a division by
> zero,
> which I'd expect to cause some kind of exception? (Terminology-wise
> I'm of
> course biased by x86, where "halt instruction" wouldn't be suitable
> to use
> here. But if that terminology is fine on RISC-V, then obviously no
> objection.)
It was based on Linux kernel code:
https://elixir.bootlin.com/linux/latest/source/arch/riscv/include/asm/vdso/=
processor.h#L9

But looks I missed barrier()...
Probably it will be better update cpu_relax() to:

	/* Encoding of the pause instruction */
	__asm__ __volatile__ (".4byte 0x100000F");

	barrier();

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:03:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:03:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655860.1023708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBP7-0004wf-OJ; Mon, 18 Dec 2023 11:03:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655860.1023708; Mon, 18 Dec 2023 11:03:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBP7-0004wY-Lq; Mon, 18 Dec 2023 11:03:21 +0000
Received: by outflank-mailman (input) for mailman id 655860;
 Mon, 18 Dec 2023 11:03:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFBP6-0004wS-6B
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:03:20 +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 0c7f5eb4-9d95-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 12:03:18 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2cc7087c6c4so9169551fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:03:18 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 q14-20020a0565123a8e00b0050e223d4b32sm736396lfu.3.2023.12.18.03.03.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 03:03:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c7f5eb4-9d95-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702897397; x=1703502197; 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=A/1B2P23M2dF/p23C/9AibOVYR2P7U7GZ+oXoZANPTY=;
        b=hdzIkG8yal1glX2x7QcGW4fuG5y2/QLbEHVdsAukbZU4OSgUr5TDS0h78BvR6i2Mva
         DqktXXXxw5OrlL2/ExKl2b0YpLDCv+v2wxNz2a5SNw6exaDrEtTc0CTwkzuB/XgNH12F
         1uy/sbuycMUm4TytkoeMxPsNnW/CGuHBgBcfTTgb7scQHz14ctpIqUX/rnPtWO/insWw
         Xoa/KZFWvHCq/CL6A9WwNX5iJwR0sQzfyIJfTDyTBp/0SkNjszlUNWo9/wUSi0NkBac/
         5PIeGdO09PUJSEqdW13+lC7FnKz4f3lxxKPS5a/etVCt+GZbITz+cXFOqScW7tZA0k1Q
         KiaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702897397; x=1703502197;
        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=A/1B2P23M2dF/p23C/9AibOVYR2P7U7GZ+oXoZANPTY=;
        b=kLD4eOeNPiKVMBbxjK7T7mqcWtUKDtlf4QbHWzCvWvP1RJesBOI3NaA9kTEt+A3XOq
         2foLQTus8dGYl+9S0q703iQgcLCjrAkZtK5aTgdIY8fUo9yITybRlHP9By3+CjrjvM/k
         lZQG4bZbqL3EgkeSqstn9Sr3m0h1AIwHix1dFOXSH/ohAaNjZOK3iRgfz/ecHrGcOwbE
         41yNLKD2uyO14B57GNsWFgG8D/mrp+Jcq6BEB5M+YpWXkSGRC83/JvzsTao2WPkmNW3l
         B/ZjRIFEgyooe0JvrbgbTNCvyN1/zmjCiJI3ScWMhmIWwRm0zCUzwtiDItVXV50pAPib
         XVGA==
X-Gm-Message-State: AOJu0YwoxU8c3HElG1VmXzXjvwORvJXJqMTqLBUx2puCZOXkkft2YLeA
	/2EFSnazYLCRI3JnTVkGo3c=
X-Google-Smtp-Source: AGHT+IGC4qdACHoXsCXNzwkF8ETpOhiDeFlVmibSF9tanh2Frx1akMXP+gjQ1JalQ0SxEITfImw9Hg==
X-Received: by 2002:a05:6512:4015:b0:50e:1d6a:48d4 with SMTP id br21-20020a056512401500b0050e1d6a48d4mr4045336lfb.122.1702897397442;
        Mon, 18 Dec 2023 03:03:17 -0800 (PST)
Message-ID: <0d0b66d6b143625c21811659afe31007ebae6f1f.camel@gmail.com>
Subject: Re: [PATCH v2 35/39] xen: add necessary headers to common to build
 full Xen for RISC-V
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: 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>,
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 13:03:16 +0200
In-Reply-To: <2f79370e-ba6d-4796-a375-c4e19126fef9@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <88bab81d8412588dab82bb53193105ff4993961a.1700761381.git.oleksii.kurochko@gmail.com>
	 <2f79370e-ba6d-4796-a375-c4e19126fef9@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 17:20 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>=20
> With an empty description it is hard to judge whether this is really
> needed.
> I would sincerely hope we can get away without. Note how there
> already a few
> struct xen_domctl_* forward declarations there, which - if the
> #include
> really needs adding - should be dropped in exchange.
>=20
> As a nit on the subject - it's only singular (now?) and could hence
> do with
> being more precise on what the specific change is.
It will be another one reminder for me to write proper commit messages
as I don't remember what was an issue.

I double checked what was the issue and it seems that this change isn't
needed any more... So I'll drop this patch.

~ Oleksii
>=20
> Jan
>=20
> > --- a/xen/include/xen/domain.h
> > +++ b/xen/include/xen/domain.h
> > @@ -4,6 +4,7 @@
> > =C2=A0
> > =C2=A0#include <xen/types.h>
> > =C2=A0
> > +#include <public/domctl.h>
> > =C2=A0#include <public/xen.h>
> > =C2=A0
> > =C2=A0struct guest_area {
>=20





From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:13:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655866.1023717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBZE-0008MB-RB; Mon, 18 Dec 2023 11:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655866.1023717; Mon, 18 Dec 2023 11:13:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBZE-0008M4-Od; Mon, 18 Dec 2023 11:13:48 +0000
Received: by outflank-mailman (input) for mailman id 655866;
 Mon, 18 Dec 2023 11:13:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W5ff=H5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFBZD-0008Km-Cq
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:13:47 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 821e8e98-9d96-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 12:13:45 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3365424df34so1824041f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:13:45 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 z1-20020a056000110100b0033668b27f8fsm2203962wrw.4.2023.12.18.03.13.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 03:13:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 821e8e98-9d96-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702898024; x=1703502824; 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=MthIdiXZ78060HMU1lbzNbAvd7gnrX08aSlRwyFs5eU=;
        b=DXHomInmZcII6EN164c5gHMH6axxrnMB3wZ5o0WGRaR7EvR4xyPNhnj45sUrXeTG3a
         DfkVCI7FT3HtjH7h9IeeiGwLULuGeui8CIzaetsDsYH4OwnG1vM38fsMBcwuG4K5dij6
         iEbISsiCSJMWK2d6/yD5l8BajTO9cgpQVSiRk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702898024; x=1703502824;
        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=MthIdiXZ78060HMU1lbzNbAvd7gnrX08aSlRwyFs5eU=;
        b=snGDJ1jIG0pVT9PQb/KLBRzFHZleCvZGpW6zOBShhkJBB32aiFcokv165JJCnFb6iO
         Z2VV1iLAki0W3BrxwMjqjEad8k9Y8oIhKRVmL66I1UnWBCFvVF+CzT8hPj280cEVGmTM
         7ZGTvA4v/MubGuQ2+V0Dk/XQgmcxZKSp3PIuu2KY5yLxgw0N4rLqRgweDG5PmwZTQ/RX
         E76IEFPh2ArEwdZk8F/aICPLMfUxAIXPeZEsD6VF7G4MRRpKbUvpimxG5DNz/VuZxvi4
         evUBBOu77nWEIaX/v3PnyoIvE/3onXrbK1A5s70YXIgwd2lt/JYsb8E+Ix47zkJDvpri
         48Fw==
X-Gm-Message-State: AOJu0Yy+f7ApqBlAMm7cqu9a/e6Ce4ZybE4fQjE05h5rqXo4JiwjhMsc
	T7VOn398uaG0KmQKpwIwyJiUuQ==
X-Google-Smtp-Source: AGHT+IELDQwAsH7VQY5YgqXQfjhKWISS+NuJrt5NgA5SOi8+NEVY3hsGeGZlTzfKgyGxWhX0bLANCg==
X-Received: by 2002:a5d:4e8c:0:b0:336:66e4:fd77 with SMTP id e12-20020a5d4e8c000000b0033666e4fd77mr1018210wru.131.1702898024463;
        Mon, 18 Dec 2023 03:13:44 -0800 (PST)
Date: Mon, 18 Dec 2023 12:13:41 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH] x86: allow non-BIGMEM configs to boot on >= 16Tb systems
Message-ID: <ZYApZTMGKOKlUdiA@macbook>
References: <4b282f2f-bce8-4c98-897c-2866ec1b6dd0@suse.com>
 <ZXxovHNdNK_OfHUs@macbook>
 <3a41ab3a-c1e6-4371-bd71-26cd97baffd6@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3a41ab3a-c1e6-4371-bd71-26cd97baffd6@suse.com>

On Mon, Dec 18, 2023 at 09:26:24AM +0100, Jan Beulich wrote:
> On 15.12.2023 15:54, Roger Pau MonnÃ© wrote:
> > On Wed, Jun 07, 2023 at 08:17:30AM +0200, Jan Beulich wrote:
> >> While frame table setup, directmap init, and boot allocator population
> >> respect all intended bounds, the logic passing memory to the heap
> >> allocator which wasn't passed to the boot allocator fails to respect
> >> max_{pdx,pfn}. This then typically triggers the BUG() in
> >> free_heap_pages() after checking page state, because of hitting a struct
> >> page_info instance which was set to all ~0.
> >>
> >> Of course all the memory above the 16Tb boundary is still going to
> >> remain unused; using it requires BIGMEM=y. And of course this fix
> >> similarly ought to help BIGMEM=y configurations on >= 123Tb systems
> >> (where all the memory beyond that boundary continues to be unused).
> >>
> >> Fixes: bac2000063ba ("x86-64: reduce range spanned by 1:1 mapping and frame table indexes")
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Thanks.
> 
> >> --- a/xen/arch/x86/setup.c
> >> +++ b/xen/arch/x86/setup.c
> >> @@ -1722,15 +1722,16 @@ void __init noreturn __start_xen(unsigne
> >>  
> >>      if ( max_page - 1 > virt_to_mfn(HYPERVISOR_VIRT_END - 1) )
> >>      {
> >> -        unsigned long limit = virt_to_mfn(HYPERVISOR_VIRT_END - 1);
> >> +        unsigned long lo = virt_to_mfn(HYPERVISOR_VIRT_END - 1);
> >> +        unsigned long hi = pdx_to_pfn(max_pdx - 1) + 1;
> > 
> > Maybe use max_page to avoid the pdx_to_pfn() call?  (And is also more
> > in context with the condition on the outside if).
> 
> You mean
> 
>         unsigned long hi = min(pdx_to_pfn(max_pdx - 1) + 1, max_page);
> 
> ? I could switch to that, yes. I wouldn't feel well switching to using
> just max_page, especially with me having nowhere to (reasonably) test.

Isn't max_page derived from max_pdx (see setup_max_pdx()), and
hence we could avoid the pdx_to_pfn() conversion by just using it?

max_page = pdx_to_pfn(max_pdx - 1) + 1;

So hi == max_page in your proposed code.

Maybe there are further restrictions applied to max_pdx that are not
propagated into max_page, the meaning of all those variables is very
opaque, and hard to follow in the source code.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:22:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655873.1023727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBhy-0002sW-Lg; Mon, 18 Dec 2023 11:22:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655873.1023727; Mon, 18 Dec 2023 11:22:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBhy-0002sP-J8; Mon, 18 Dec 2023 11:22:50 +0000
Received: by outflank-mailman (input) for mailman id 655873;
 Mon, 18 Dec 2023 11:22:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFBhx-0002sJ-Ga
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:22:49 +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 c5453ef8-9d97-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 12:22:47 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-336668a5a8dso969400f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:22:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 f9-20020a05600c154900b0040c4be1af17sm30131904wmg.21.2023.12.18.03.22.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 03:22:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5453ef8-9d97-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702898566; x=1703503366; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nvMRlcz7eJggJ1c/5Xm+zAPmyx9D+E8+RX58+Cir7tc=;
        b=b7PQkhW8cGlxJIYlTIIrNQjjTbcKZ8b3KPaopc7vmhBwAi3KB2Y6W/XrQNGNeekzqp
         XYfHmP7iA8tYYAmhJdGt2dsFr7W5WuQgvq2Rd/f+UpoXwRN+QKWMz4/660t2roSRGheC
         HTFgkMNjV0MgsaioL650cHRlqLP7yLPQmt4y5wCgKJ/2nPltHFwdLKHAoF4ozgSlUCPk
         GKTdM4KSx3x3SkQvKJSMEXE7IdM2t4ee19ufoNJGtk65ams3CClYXR2bplFx2bRxh2fO
         cP1e2WHX2EkiLfJQ79pBDwPKnNYFKs3q0bXDHvajiCapf9vWFJdTRG17PZABOr4VF/Z5
         iffA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702898566; x=1703503366;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nvMRlcz7eJggJ1c/5Xm+zAPmyx9D+E8+RX58+Cir7tc=;
        b=bEQG/xeyAMlcvdKRz/OVu4ptFCsKbw6TLu3vfWy1audMWga+R9+e0zerK3u10fy00M
         AMKnNHTGiSAmkoupCa84Tqb4wLbdc9yFIHgn/ebkrh5bb2NTdpCX6hqTL0ZtzVEG7Y/i
         YTRHHRF9ZljrtE9XyCb7dqutmklC81ezZbGksaYKeFbf9BxEgaKOOv1mab7+TA4pI8sN
         K4UADHe65eej8DfRC6hdnLypuSVvTBcfNKClLCk7udQVsa0x20k3QW4hgIBFmHmSq3YH
         7uEg/nmAyz1s0aNFQsytjv+zDy4BlXD3P/UNLhiraSVgEQS/LWOALQS5NSzn/CvZAqXU
         Ct6A==
X-Gm-Message-State: AOJu0YxDO7Z7nYe8rL/1EpujAO1OFmMwFV+1G93SgKF/1auLqvy85Mej
	eQsdTTokPDj5ORXNTL+2soJ5
X-Google-Smtp-Source: AGHT+IFAT5AyQY7EZPwPCfgaOFk9pJ/q8s55zYRJ2yoJ3b/0ze5uBqQySf4/Rg8GyksKYGLFS6gHmA==
X-Received: by 2002:a05:600c:22c2:b0:40c:2a2b:4ef with SMTP id 2-20020a05600c22c200b0040c2a2b04efmr9044275wmg.43.1702898566612;
        Mon, 18 Dec 2023 03:22:46 -0800 (PST)
Message-ID: <abacb997-99f4-49c3-b146-320cc9ff1a90@suse.com>
Date: Mon, 18 Dec 2023 12:22:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 30/39] xen/riscv: define an address of frame table
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <13ad41657814e4fc235772fa0928de1723ae7c3d.1700761381.git.oleksii.kurochko@gmail.com>
 <b2c42d56-6bc8-4ea8-9e6f-cae259c274c5@suse.com>
 <5d3e7f9ad7ff0eb779e269eee1c42300d987b5a1.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: <5d3e7f9ad7ff0eb779e269eee1c42300d987b5a1.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 11:36, Oleksii wrote:
> On Thu, 2023-12-14 at 16:48 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> +#define SLOTN_ENTRY_SIZEÂ Â Â Â Â Â Â  SLOTN(1)
>>> +
>>> Â #define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL) + 1 -
>>> GB(1)) */
>>> +
>>> +#define FRAMETABLE_VIRT_STARTÂ Â  SLOTN(196)
>>> +#define FRAMETABLE_SIZEÂ Â Â Â Â Â Â Â  GB(3)
>>> +#define FRAMETABLE_NRÂ Â Â Â Â Â Â Â Â Â  (FRAMETABLE_SIZE /
>>> sizeof(*frame_table))
>>> +#define FRAMETABLE_VIRT_ENDÂ Â Â Â  (FRAMETABLE_VIRT_START +
>>> FRAMETABLE_SIZE - 1)
>>> +
>>> +#define VMAP_VIRT_STARTÂ Â Â Â Â Â Â Â  SLOTN(194)
>>> +#define VMAP_VIRT_SIZEÂ Â Â Â Â Â Â Â Â  GB(1)
>>
>> May I suggest that you keep these blocks sorted by slot number? Or
>> wait,
>> the layout comment further up is also in decreasing order, so that's
>> fine here, but then can all of this please be moved next to the
>> comment
>> actually providing the necessary context (thus eliminating the need
>> for
>> new comments)?
> Sure, I'll put this part close to layout comment.
> 
>>  You'll then also notice that the generalization here
>> (keeping basically the same layout for e.g. SATP_MODE_SV48, just
>> shifted
>> by 9 bits) isn't in line with the comment there.
> Does it make sense to add another one table with updated addresses for
> SATP_MODE_SV48?

Well, especially if you mean to support that mode, its layout surely
wants writing down. I was hoping though that maybe you/we could get away
without multiple tables, but e.g. use one having multiple columns.

Jan

> Microchip has h/w which requires SATP_MODE_SV48 ( at least ), so I have
> a patch which introduces SATP_MODE_SV48 and I planned to update the
> layout table in this patch.





From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:28:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:28:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655877.1023737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBnW-0003Yu-9t; Mon, 18 Dec 2023 11:28:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655877.1023737; Mon, 18 Dec 2023 11:28:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBnW-0003Yn-6y; Mon, 18 Dec 2023 11:28:34 +0000
Received: by outflank-mailman (input) for mailman id 655877;
 Mon, 18 Dec 2023 11:28:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFBnV-0003Yh-5N
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:28:33 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 921d2d5e-9d98-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 12:28:30 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3366827ca79so617726f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:28:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 k15-20020adff28f000000b003365dc5b125sm6704909wro.69.2023.12.18.03.28.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 03:28:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 921d2d5e-9d98-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702898910; x=1703503710; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vz8AILrAucXAWiaclwBZWeVtVjCyc6JBG28HfDpIZlk=;
        b=Nc2YqoMl7QoSgVm6lhOI7k5/0RMU19ZMF3oXfxHyseyykajdxUDdinU/d6UxeZO3u0
         SIf3NLPeu15a0CkLazsTRjiEI/1c+sBgRv9hzJ4NXDVYcR4CJ9CoT8/a/xEdaom56UMx
         Eph+J9ezzvwu3xHS+6TRNQ19ZzlF0DSE4N3GRfnNd8Yoi2yVPsHlYuIgSOSgKSylAarS
         fKiedeSF3WqVCVw41w9A+ygH4Bf/lCePS9LBKUcCFo75b1CH929mxAcXCt9rwxDMhdQ3
         4N67cvlp30z3Blde4ErbaS4CFazKMnX3C5J43OafV2AddL02Ywi1B7F3PkuarL3cSZ7J
         +a0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702898910; x=1703503710;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=vz8AILrAucXAWiaclwBZWeVtVjCyc6JBG28HfDpIZlk=;
        b=nVt3r/LWsYfWI3h8Pa+gSZpwwxetAkgPjqBOjgZiGliGr4OKb/6kRxGUWuCLNzu9r3
         7c3HSf94qa1ZALedGmNBAB35gFT3v0BGMhJ8+9R2LgLi4k1cp3xe0mPI7aiXYjacH5QT
         d4L4X/Fk+9ZMEjJNm+/X4o3aQs32q39gK4fGy9axYJsl5hNiIR8Nsi6hJ/iURIw7CxZS
         erTyoU3LvtNVQjszdB8ldIRzm24wEYNuzswmPEHb5z4hY70059Ha8Cqzk0zgFML2cYQN
         CAuGy9vgROy5cy9VooK8fI3kLIRBfEQHxZ42YEvMVuxsVPhOwGbA3XSFOb7c7e7Auze3
         MzjQ==
X-Gm-Message-State: AOJu0YxP/Dy+8HmU2n0wP99Ejnt1z2cMp9pZ4MFRkR3D0/PoEkywIIAw
	5tTZgvWDOATV5pfwQ7iScNlH
X-Google-Smtp-Source: AGHT+IHFUwg2GwyAaG0EYAGxFCVBK1GUAEaYM8tEHqeJ2W6TWkh4MTRQsPAjnkqYYW7eUbjBOTYglA==
X-Received: by 2002:a5d:4003:0:b0:336:6514:a97f with SMTP id n3-20020a5d4003000000b003366514a97fmr1247663wrp.106.1702898910274;
        Mon, 18 Dec 2023 03:28:30 -0800 (PST)
Message-ID: <95431643-9f52-4723-89e6-a5e7e8b51bca@suse.com>
Date: Mon, 18 Dec 2023 12:28:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 31/39] xen/riscv: add required things to asm/current.h
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <b6328d9b5bbb9269066dc17d7c0fcb32fa935b2b.1700761381.git.oleksii.kurochko@gmail.com>
 <8d089dbe-a411-4083-9540-d0c95fa183cf@suse.com>
 <2c0ac2c7d21222944052f51c3af497c53f1a1da4.camel@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: <2c0ac2c7d21222944052f51c3af497c53f1a1da4.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 11:39, Oleksii wrote:
> On Thu, 2023-12-14 at 16:55 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/current.h
>>> +++ b/xen/arch/riscv/include/asm/current.h
>>> @@ -3,6 +3,22 @@
>>> Â #ifndef __ASM_CURRENT_H
>>> Â #define __ASM_CURRENT_H
>>> Â 
>>> +#include <xen/percpu.h>
>>> +#include <asm/processor.h>
>>> +
>>> +#ifndef __ASSEMBLY__
>>> +
>>> +struct vcpu;
>>
>> I don't think you need this here?
> Shouldn't forward declaration be for the case of curr_vcpu declaration
> in the next line ?

I don't think so. In C forward decls are needed only when an otherwise
undeclared type is used as type of a function parameter. (C++ is different
in this regard.)

Jan

>>> +/* Which VCPU is "current" on this PCPU. */
>>> +DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
>>> +
>>> +#define currentÂ Â Â Â Â Â Â Â Â Â Â  (this_cpu(curr_vcpu))



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:35:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:35:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655880.1023748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBuD-0006Hq-W1; Mon, 18 Dec 2023 11:35:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655880.1023748; Mon, 18 Dec 2023 11:35:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBuD-0006Hj-Sk; Mon, 18 Dec 2023 11:35:29 +0000
Received: by outflank-mailman (input) for mailman id 655880;
 Mon, 18 Dec 2023 11: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFBuD-0006Hd-5D
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:35:29 +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 8aaf5540-9d99-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 12:35:27 +0100 (CET)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2cc4029dc6eso34023931fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:35:27 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 d8-20020a05651c01c800b002ca34ad9e8bsm3461819ljn.138.2023.12.18.03.35.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 03:35:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8aaf5540-9d99-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702899327; x=1703504127; 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=yAXhqnj2A6tTgQiZxL6I+4KbwUe55bqg9efuQ2bPfks=;
        b=G1Z7zUgg46D73C3I3HzT01VFMfkeAXj6ZCUhKh9D16RzoJxazx0ZDPEPJCHSZ3eooX
         Yhj+NARI+Wu6sefTThE7vkVcgr6UwXRy1+nm0ZM5BjuCs/VGowACM8CCm8DaISnEcsiR
         v4tNcErftkhUtKNDQN1RzZ9BqPaKGBH5OODt0PUE68S8BIvvO12hnN5jOBCNrMXaM7XT
         5aVYFTdy5Dh9g3msezI09sPWTyO7cpJsCNcCCMKYQDx8DLYdo+dvxRgE/oc6QknTUT/t
         JUpLLFjpAMUo0iD4sPCCp/YF9o9k9R+pq4MJ75YzXZw/L5vxDqBBgOZRpnHVOZ4whyqK
         gnaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702899327; x=1703504127;
        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=yAXhqnj2A6tTgQiZxL6I+4KbwUe55bqg9efuQ2bPfks=;
        b=N7isb0629NbmnFKemaGDXg4kCjkepT1m0HQ/W/RAMM058wAfE29yeqKLKR+XrVlKCN
         9e986t3tFfcWm93o8umrWkHuE1gobieZ10u6cBu7D7SjzYwnmsJCX/gqchgR6NXk5v/g
         o/GulmkPZnPYWSvE8B2IdWmUejcdpYFEQ+qBvPmYkaumBTK75wrmghZPrdNeUKAyfe4i
         DLqkx0iJat+icLNlAi2+dzpyWIoXKPtgodjKP540wDFB+O7gP2yQG79cKyGdckQMTGkp
         MBalqh9njN1ZyKUrh/hAfGQ33PrrCwB8xE3N4+2GnHULfaCUcEOWaBbynHvKZD7N+sNN
         U5Zw==
X-Gm-Message-State: AOJu0Ywgr7bgVbvn4B7Rnb7rKZB+Id3O78oGEzpELu3Eqr/NoStZdLr9
	j9d6262zdxhBdVMf2gzyPyg=
X-Google-Smtp-Source: AGHT+IFkCD+0TPPPaZBF6cARVTTODH07PXBpLEjt1XfE2Reb8ijlHtJHRifkNANBBKQTaakt3y0aZg==
X-Received: by 2002:a2e:4a0a:0:b0:2cc:3f83:9cb9 with SMTP id x10-20020a2e4a0a000000b002cc3f839cb9mr3291386lja.22.1702899327108;
        Mon, 18 Dec 2023 03:35:27 -0800 (PST)
Message-ID: <ad31947dfffdd5deecbfcb3989585cda9449afc6.camel@gmail.com>
Subject: Re: [PATCH v2 36/39] xen/riscv: add minimal stuff to asm/mm.h to
 build full Xen
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 13:35:26 +0200
In-Reply-To: <3d8bfead-e18c-4082-a75d-92aa379fa943@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <ec017ed24b1e5274d64d5458e4ab4475c92dece7.1700761381.git.oleksii.kurochko@gmail.com>
	 <3d8bfead-e18c-4082-a75d-92aa379fa943@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-14 at 18:08 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- a/xen/arch/riscv/include/asm/mm.h
> > +++ b/xen/arch/riscv/include/asm/mm.h
> > @@ -3,10 +3,271 @@
> > =C2=A0#ifndef _ASM_RISCV_MM_H
> > =C2=A0#define _ASM_RISCV_MM_H
> > =C2=A0
> > +#include <public/xen.h>
> > +#include <xen/pdx.h>
> > +#include <xen/types.h>
> > +
> > +#include <asm/page.h>
> > =C2=A0#include <asm/page-bits.h>
> > =C2=A0
> > -#define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
> > -#define paddr_to_pfn(pa)=C2=A0 ((unsigned long)((pa) >> PAGE_SHIFT))
>=20
> I'm a little puzzled here: Just a few patches ago you introduced them
> into
> asm/page.h, and (only) now you're removing them here.
I think it was some issue during rebasing of latest changes and
staging.

>=20
> > +#define paddr_to_pdx(pa)=C2=A0=C2=A0=C2=A0 mfn_to_pdx(maddr_to_mfn(pa)=
)
> > +#define gfn_to_gaddr(gfn)=C2=A0=C2=A0 pfn_to_paddr(gfn_x(gfn))
> > +#define gaddr_to_gfn(ga)=C2=A0=C2=A0=C2=A0 _gfn(paddr_to_pfn(ga))
> > +#define mfn_to_maddr(mfn)=C2=A0=C2=A0 pfn_to_paddr(mfn_x(mfn))
> > +#define maddr_to_mfn(ma)=C2=A0=C2=A0=C2=A0 _mfn(paddr_to_pfn(ma))
> > +#define vmap_to_mfn(va)=C2=A0=C2=A0=C2=A0=C2=A0
> > maddr_to_mfn(virt_to_maddr((vaddr_t)va))
> > +#define vmap_to_page(va)=C2=A0=C2=A0=C2=A0 mfn_to_page(vmap_to_mfn(va)=
)
> > +#define paddr_to_pdx(pa)=C2=A0=C2=A0=C2=A0 mfn_to_pdx(maddr_to_mfn(pa)=
)
> > +#define gfn_to_gaddr(gfn)=C2=A0=C2=A0 pfn_to_paddr(gfn_x(gfn))
> > +#define gaddr_to_gfn(ga)=C2=A0=C2=A0=C2=A0 _gfn(paddr_to_pfn(ga))
> > +#define mfn_to_maddr(mfn)=C2=A0=C2=A0 pfn_to_paddr(mfn_x(mfn))
> > +#define maddr_to_mfn(ma)=C2=A0=C2=A0=C2=A0 _mfn(paddr_to_pfn(ma))
> > +#define vmap_to_mfn(va)=C2=A0=C2=A0=C2=A0=C2=A0
> > maddr_to_mfn(virt_to_maddr((vaddr_t)va))
> > +#define vmap_to_page(va)=C2=A0=C2=A0=C2=A0 mfn_to_page(vmap_to_mfn(va)=
)
> > +
> > +#define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
> > +#define maddr_to_virt(pa) ((void *)((paddr_t)(pa) |
> > XEN_VIRT_START))
>=20
> Is this really XEN_VIRT_START? I.e. does your directmap start there,
> right where the Xen image area also starts?
No, it is not. I tried to re-use PPC's version of mm.h ( as it was
already merged ) and missed to update this macros. Actually right now
it is defined for RISC-V as:

static inline void *maddr_to_virt(paddr_t ma)
{
    ASSERT((mfn_to_pdx(maddr_to_mfn(ma)) - directmap_base_pdx) <
           (DIRECTMAP_SIZE >> PAGE_SHIFT));
    return (void *)(XENHEAP_VIRT_START -
                    (directmap_base_pdx << PAGE_SHIFT) +
                    ((ma & ma_va_bottom_mask) |
                     ((ma & ma_top_mask) >> pfn_pdx_hole_shift)));
}


but I think about to stub it with BUG() if it will work or to change
XEN_VIRT_START to DIRECTMAP_VIRT_START.

>=20
> > +/* Convert between Xen-heap virtual addresses and machine frame
> > numbers. */
> > +#define __virt_to_mfn(va) (virt_to_maddr(va) >> PAGE_SHIFT)
> > +#define __mfn_to_virt(mfn) (maddr_to_virt((paddr_t)(mfn) <<
> > PAGE_SHIFT))
>=20
> Nit: Excess parentheses again.
Thanks. Ill update.

>=20
> > +/* Convert between Xen-heap virtual addresses and page-info
> > structures. */
> > +static inline struct page_info *virt_to_page(const void *v)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +=C2=A0=C2=A0=C2=A0 return NULL;
> > +}
> > +
> > +/*
> > + * 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)=C2=A0=C2=A0=C2=A0=C2=A0 __virt_to_mfn(va)
> > +#define mfn_to_virt(mfn)=C2=A0=C2=A0=C2=A0 __mfn_to_virt(mfn)
> > +
> > +struct page_info
> > +{
> > +=C2=A0=C2=A0=C2=A0 /* Each frame can be threaded onto a doubly-linked =
list. */
> > +=C2=A0=C2=A0=C2=A0 struct page_list_entry list;
> > +
> > +=C2=A0=C2=A0=C2=A0 /* Reference count and various PGC_xxx flags and fi=
elds. */
> > +=C2=A0=C2=A0=C2=A0 unsigned long count_info;
> > +
> > +=C2=A0=C2=A0=C2=A0 /* Context-dependent fields follow... */
> > +=C2=A0=C2=A0=C2=A0 union {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Page is in use: ((count_=
info & PGC_count_mask) !=3D 0).
> > */
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* =
Type reference count and various PGT_xxx flags and
> > fields. */
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 uns=
igned long type_info;
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } inuse;
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Page is on a free list: =
((count_info & PGC_count_mask)
> > =3D=3D 0). */
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 union {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 str=
uct {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0=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 of the first *possibly* unscrubbed page
> > in the buddy.
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 * One more bit than maximum possible order to
> > accommodate
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 * INVALID_DIRTY_IDX.
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +#define INVALID_DIRTY_IDX ((1UL << (MAX_ORDER + 1)) - 1)
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 unsigned long first_dirty:MAX_ORDER + 1;
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 /* Do TLBs need flushing for safety before next
> > page use? */
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 bool need_tlbflush:1;
> > +
> > +#define BUDDY_NOT_SCRUBBING=C2=A0=C2=A0=C2=A0 0
> > +#define BUDDY_SCRUBBING=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 1
> > +#define BUDDY_SCRUB_ABORT=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 2
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 unsigned long scrub_state:2;
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 };
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 uns=
igned long val;
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } f=
ree;
>=20
> Something's wrong with indentation here.
Thanks. Ill double check.

>=20
> > +=C2=A0=C2=A0=C2=A0 } u;
> > +
> > +=C2=A0=C2=A0=C2=A0 union {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Page is in use, but not =
as a shadow. */
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* =
Owner of this page (zero if page is anonymous). */
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 str=
uct domain *domain;
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } inuse;
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Page is on a free list. =
*/
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* =
Order-size of the free chunk this page is the head
> > of. */
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 uns=
igned int order;
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } free;
> > +
> > +=C2=A0=C2=A0=C2=A0 } v;
> > +
> > +=C2=A0=C2=A0=C2=A0 union {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * Timestamp from 'TLB=
 clock', used to avoid extra safety
> > flushes.
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * Only valid for: a) =
free pages, and b) pages with zero
> > type count
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 u32 tlbflush_timestamp;
>=20
> Nit: uint32_t and ...
>=20
> > +=C2=A0=C2=A0=C2=A0 };
> > +=C2=A0=C2=A0=C2=A0 u64 pad;
>=20
> ... uint64_t please in new code. Assuming, for the latter, you really
> need
> the field in the first place: I can't see what it's needed for.
This structure was copied from Arm's mm.h.
I am not sure too if it is needed. It seems to me it should be 8 byte
aligned without this pad for 64-bit archs.


>=20
> > +};
> > +
> > +#define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
> > +
> > +/* PDX of the first page in the frame table. */
> > +extern unsigned long frametable_base_pdx;
> > +
> > +/* Convert between machine frame numbers and page-info structures.
> > */
> > +#define
> > mfn_to_page(mfn)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > +=C2=A0=C2=A0=C2=A0 (frame_table + (mfn_to_pdx(mfn) - frametable_base_p=
dx))
> > +#define
> > page_to_mfn(pg)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > +=C2=A0=C2=A0=C2=A0 pdx_to_mfn((unsigned long)((pg) - frame_table) +
> > frametable_base_pdx)
> > +
> > +static inline void *page_to_virt(const struct page_info *pg)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return mfn_to_virt(mfn_x(page_to_mfn(pg)));
> > +}
> > +
> > +/*
> > + * 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)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return 1;
> > +}
> > +
> > +static inline void put_page_type(struct page_info *page)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return;
>=20
> No need for this; the body can ve entirely empty, as we have it
> elsewhere.
Thanks. I'll update.

>=20
> > +}
> > +
> > +/* TODO */
> > +static inline bool get_page_nr(struct page_info *page, const
> > struct domain *domain,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsig=
ned long nr)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +static inline void put_page_nr(struct page_info *page, unsigned
> > long nr)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
>=20
> What are these two needed for?
>=20
> > +static inline void put_page_and_type(struct page_info *page)
> > +{
> > +=C2=A0=C2=A0=C2=A0 put_page_type(page);
> > +=C2=A0=C2=A0=C2=A0 put_page(page);
> > +}
> > +
> > +/*
> > + * RISCV 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=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (~=
0UL)
> > +#define SHARED_M2P_ENTRY=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 (~0UL - 1UL)
> > +#define SHARED_M2P(_e)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 ((_e) =3D=3D SHARED_M2P_ENTRY)
> > +
> > +/* Xen always owns P2M on PPC */
>=20
> PPC?
Should be RISC-V. Missed to change.

>=20
> > +#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 (16 + 5)
> > +
> > +static inline unsigned long domain_get_maximum_gpfn(struct domain
> > *d)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +=C2=A0=C2=A0=C2=A0 return 0;
> > +}
> > +
> > +static inline long arch_memory_op(int op,
> > XEN_GUEST_HANDLE_PARAM(void) arg)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +=C2=A0=C2=A0=C2=A0 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)
> > +{
> > +=C2=A0=C2=A0=C2=A0 return true;
> > +}
> > +
> > +#define PG_shift(idx)=C2=A0=C2=A0 (BITS_PER_LONG - (idx))
> > +#define PG_mask(x, idx) (x ## UL << PG_shift(idx))
> > +
> > +#define PGT_none=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 PG_mask(0, 1)=C2=A0 /* no special uses of
> > this page=C2=A0=C2=A0 */
> > +#define PGT_writable_page PG_mask(1, 1)=C2=A0 /* has writable
> > mappings?=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +#define PGT_type_mask=C2=A0=C2=A0=C2=A0=C2=A0 PG_mask(1, 1)=C2=A0 /* B=
its 31 or
> > 63.=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +
> > + /* Count of uses of this frame as its current type. */
> > +#define PGT_count_width=C2=A0=C2=A0 PG_shift(2)
> > +#define PGT_count_mask=C2=A0=C2=A0=C2=A0 ((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=C2=A0=C2=A0 _PGC_allocated
> > +#define PGC_need_scrub=C2=A0=C2=A0=C2=A0 PGC_allocated
> > +
> > +//=C2=A0 /* Cleared when the owning guest 'frees' this page. */
> > +#define _PGC_allocated=C2=A0=C2=A0=C2=A0 PG_shift(1)
> > +#define PGC_allocated=C2=A0=C2=A0=C2=A0=C2=A0 PG_mask(1, 1)
> > +=C2=A0 /* Page is Xen heap? */
> > +#define _PGC_xen_heap=C2=A0=C2=A0=C2=A0=C2=A0 PG_shift(2)
> > +#define PGC_xen_heap=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_mask(1, 2)
> > +#ifdef CONFIG_STATIC_MEMORY
> > +/* Page is static memory */
> > +#define _PGC_static=C2=A0=C2=A0=C2=A0 PG_shift(3)
> > +#define PGC_static=C2=A0=C2=A0=C2=A0=C2=A0 PG_mask(1, 3)
> > +#else
> > +#define PGC_static=C2=A0=C2=A0=C2=A0=C2=A0 0
> > +#endif
>=20
> Please omit this until you really know whether you're going to
> support
> static memory.
Ok. I'll drop that.
>=20
> > +/* ... */
>=20
> ???
It was taken for Arm and I don't know what is the purpose of the
comment so it makes sense to drop it.
>=20
> > +/* Page is broken? */
> > +#define _PGC_broken=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_shift(7)
> > +#define PGC_broken=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_mask(1=
, 7)
> > + /* Mutually-exclusive page states: { inuse, offlining, offlined,
> > free }. */
> > +#define PGC_state=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_m=
ask(3, 9)
> > +#define PGC_state_inuse=C2=A0=C2=A0 PG_mask(0, 9)
> > +#define PGC_state_offlining PG_mask(1, 9)
> > +#define PGC_state_offlined PG_mask(2, 9)
> > +#define PGC_state_free=C2=A0=C2=A0=C2=A0 PG_mask(3, 9)
> > +// #define page_state_is(pg, st) (((pg)->count_info&PGC_state) =3D=3D
> > PGC_state_##st)
> > +
> > +/* Count of references to this frame. */
> > +#define PGC_count_width=C2=A0=C2=A0 PG_shift(9)
> > +#define PGC_count_mask=C2=A0=C2=A0=C2=A0 ((1UL<<PGC_count_width)-1)
> > +
> > +#define page_state_is(pg, st) (((pg)->count_info&PGC_state) =3D=3D
> > PGC_state_##st)
> > +
> > +#define _PGC_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_shift(=
10)
> > +#define PGC_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_m=
ask(1, 10)
> > +
> > +#define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
> > +#define is_xen_heap_mfn(mfn) \
> > +=C2=A0=C2=A0=C2=A0 (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn=
)))
> > +
> > +#define is_xen_fixed_mfn(mfn)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 \
> > +=C2=A0=C2=A0=C2=A0 ((mfn_to_maddr(mfn) >=3D virt_to_maddr(&_start)) &&=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > +=C2=A0=C2=A0=C2=A0=C2=A0 (mfn_to_maddr(mfn) <=3D virt_to_maddr((vaddr_=
t)_end - 1)))
> > +
> > +#define page_get_owner(_p)=C2=A0=C2=A0=C2=A0 (_p)->v.inuse.domain
> > +#define page_set_owner(_p,_d) ((_p)->v.inuse.domain =3D (_d))
> > +
> > +/* TODO: implement */
> > +#define mfn_valid(mfn) ({ (void) (mfn); 0; })
> > +// #define max_page (0UL)
>=20
> ???
This macros isn't needed for now ( when I tried to make minimal build I
just commented such places and forgot to remove it ).
>=20
> > +#define mfn_to_gfn(d, mfn) ((void)(d), _gfn(mfn_x(mfn)))
> > +
> > +#define domain_set_alloc_bitsize(d) ((void)0)
> > +#define domain_clamp_alloc_bitsize(d, b) (b)
> > +
> > +#define PFN_ORDER(_pfn) ((_pfn)->v.free.order)
>=20
> No leading underscore needed here, I suppose.
Thanks. I'll remove underscore.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:36:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:36:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655884.1023757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBuv-0006rG-Ap; Mon, 18 Dec 2023 11:36:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655884.1023757; Mon, 18 Dec 2023 11:36: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 1rFBuv-0006r9-8J; Mon, 18 Dec 2023 11:36:13 +0000
Received: by outflank-mailman (input) for mailman id 655884;
 Mon, 18 Dec 2023 11:36: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFBuu-0006et-8A
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:36:12 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3f9ce38-9d99-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 12:36:10 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c55872d80so21746225e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:36:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 s7-20020a05600c45c700b0040c45071c18sm33569238wmo.39.2023.12.18.03.36.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 03:36:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3f9ce38-9d99-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702899370; x=1703504170; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0m+bG8W4M+3kfYULre/DPAW8Mn6gXC7VyhQN4Iv0aD4=;
        b=BR0pXh2jYxHS5RW3bhikpo+lPOloj7FKap5vced25ttDzZK1BHFBL701wftIqaJ2F/
         jkrKdE0RDsYZDTFh+7ZEgkJTErCgzTmnKmoSqHeOpFIDAjA+eAIYcBqLs79KnxV4yBMf
         26uIrAGGuTGsEcpKeozrdqxEdNBs+MZGyg2Bixo4pRhAyP7FqZ8BqL04CsHDBswzPvSS
         CNB3OKLt/uHKolFy6SR0+nFoSsfEimn3p/DSgQblR6PUpPQ6Tgwz8t2FGdTOzMd867rC
         riwXv01PsI7tSBydBo4rX0VA60QE0UTm2CT1V4i+letNz0rXzyM5Ou2aBCMGxipkulHR
         Wl5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702899370; x=1703504170;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=0m+bG8W4M+3kfYULre/DPAW8Mn6gXC7VyhQN4Iv0aD4=;
        b=Kbbs42lgzy8vX72wO3W8cZLsmaMBCjkQrSziStFwY/KTH9o904LjV9gpQ+OQxy8iEU
         2Lb7TP4omDEO0fQEKPUWJOH4lL+bPJX+8ZDMtjHEnU7E1zKRJYO762zp8SCoAGgHJgo/
         vkpzCoQ41rs7vRTslmJ+kqU/NWUhe5u3tZTQsaFsN+2ba71bl2sWodcAgrc/mdPQQzNF
         o0U3CU3lbcX27YRdzSRaKuTEa98/k2DK0/ZM750sm5rF2JaT43KiATe0Pjw7iPUDSYpb
         EzNcZ92Ez2T/OMtEEdAT5ka9YKkNlltsZyQttn59f2dFt9n0PhUJB/Vo8gjFMrEBtTpV
         J+DA==
X-Gm-Message-State: AOJu0Yzp6zoTnAcSGZGbJ3l9hWVTtwIL4BrRg/nhVK2bzUEG8LT+pRe0
	L1IMP5jj3w8qRTuTPjgtZK8E
X-Google-Smtp-Source: AGHT+IFCguSCv0MHJd9r6ZtMU5lC5EQ5yBCaAvEWQe+xHZBRSzjVpihL5bqyqczX5YBJ9iq+toeojQ==
X-Received: by 2002:a05:600c:4f84:b0:40c:288b:a688 with SMTP id n4-20020a05600c4f8400b0040c288ba688mr7393618wmq.108.1702899369763;
        Mon, 18 Dec 2023 03:36:09 -0800 (PST)
Message-ID: <2fa8fa4f-86d9-4856-91f3-f3dcf1c1013c@suse.com>
Date: Mon, 18 Dec 2023 12:36:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 32/39] xen/riscv: add minimal stuff to asm/page.h to
 build full Xen
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <34a4bc023eb50e1d1cf70fa149825c51f2f4555f.1700761381.git.oleksii.kurochko@gmail.com>
 <ccef1adc-af39-43b2-8f97-ed3895e8809d@suse.com>
 <c0ae5654e6be1eb10282a3d95fb419d5c975e98b.camel@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: <c0ae5654e6be1eb10282a3d95fb419d5c975e98b.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 11:45, Oleksii wrote:
> On Thu, 2023-12-14 at 16:57 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>
>> I wonder though ...
>>
>>> --- a/xen/arch/riscv/include/asm/page.h
>>> +++ b/xen/arch/riscv/include/asm/page.h
>>> @@ -6,6 +6,7 @@
>>> Â #ifndef __ASSEMBLY__
>>> Â 
>>> Â #include <xen/const.h>
>>> +#include <xen/bug.h>
>>> Â #include <xen/types.h>
>>> Â 
>>> Â #include <asm/mm.h>
>>> @@ -32,6 +33,9 @@
>>> Â #define PTE_LEAF_DEFAULTÂ Â Â Â Â Â Â Â Â Â Â  (PTE_VALID | PTE_READABLE |
>>> PTE_WRITABLE)
>>> Â #define PTE_TABLEÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (PTE_VALID)
>>> Â 
>>> +/* TODO */
>>> +#define PAGE_HYPERVISOR 0
>>
>> ... whether this couldn't be defined properly right away.
> It can be introduced now but it requires some additional defines to be
> introduced in the same time:
> 
> #define _PAGE_W_BIT     2
> #define _PAGE_XN_BIT    3
> #define _PAGE_RO_BIT    1
> #define _PAGE_XN        (1U << _PAGE_XN_BIT)
> #define _PAGE_RO        (1U << _PAGE_RO_BIT)
> #define _PAGE_W         (1U << _PAGE_W_BIT)

Why would you need these, when you already have
PTE_{READABLE,WRITABLE,EXECUTABLE} just out of context from above? (And
that's aside from me (a) not following the naming (vs their purpose) and
(b) not seeing what _PAGE_*_BIT are needed for, not even thinking about
the leading underscores in these identifiers again.)

> ...
> /*
>  * _PAGE_DEVICE and _PAGE_NORMAL are convenience defines. They are not
>  * meant to be used outside of this header.
>  */
> // #define _PAGE_DEVICE    _PAGE_XN
> #define _PAGE_NORMAL    _PAGE_PRESENT
> 
> #define PAGE_HYPERVISOR_RW      (_PAGE_NORMAL | _PAGE_RO | _PAGE_XN |
> _PAGE_W)
> 
> #define PAGE_HYPERVISOR         PAGE_HYPERVISOR_RW
> 
> And _PAGE_PRESENT in pgtbl-bits.h:
> 
> #define _PAGE_PRESENT   (1 << 0)
> 
> I prefer to introduce all this things when it will be really used.

I understand that, yet for easy things it may help doing them right
away, rather than leaving them to be touched (in a straightforward way)
again very soon.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:38:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:38:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655888.1023768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBx3-0007Ty-P4; Mon, 18 Dec 2023 11:38:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655888.1023768; Mon, 18 Dec 2023 11:38:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFBx3-0007Tr-Kx; Mon, 18 Dec 2023 11:38:25 +0000
Received: by outflank-mailman (input) for mailman id 655888;
 Mon, 18 Dec 2023 11:38: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFBx2-0007Tc-9h
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:38:24 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f34a7ab4-9d99-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 12:38:23 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3365f09de18so1653605f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:38:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o10-20020a5d408a000000b00336614e25d0sm5086289wrp.56.2023.12.18.03.38.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 03:38:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f34a7ab4-9d99-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702899503; x=1703504303; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=FaGE3Ts2cqNjsxHOLEGHqXBRMtYea0jFnnNCq7d/TrE=;
        b=SKwSK5k0C3QtrSnvrw9/rLq4h+y+afhU/RKo+CP5Pg9atjCphWpJCquQqbbUIAvADn
         IV6P1hQOFq5BPFbjLciMXj834mGJF06xNztsfVWI1X2N0fhBEskNSdlIpQmBmnZbB1zB
         iS9pT35w1uozedTvr58G7VbY3nQp79t6Da2gXCvh5WRvQP0DGIvXR5A9ZgtXlbjAQNGP
         Ixgud7ljHwIkXF2urmceDkm4ep+uDojW7Qy7t8xrWNCps5Mi2wGyR07HlivT2oKzXIVh
         v9YJSzk6u/o+yXWxyOT7ULNEPywf+RCkyVFabrPzj7Lkv7xrB0Ws2UZYj5qc28S0UR+3
         mRow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702899503; x=1703504303;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=FaGE3Ts2cqNjsxHOLEGHqXBRMtYea0jFnnNCq7d/TrE=;
        b=uJ4gg/YRnP3s9X2ZmncYEFB9qsyIDnJmdlwHjRehN3j3fDmJwQkapydCSgrD+xU1lw
         UxKqHmdIyAvyEk8O8tE/D8nx+zU9DGhneKcNl1S7kRME56rg3Jp0SZhpBMPS5DkCkrUO
         kzPNyw6BOd5RI8KOPsQAi3axqOeNaXdG4/Nwa4cXzs69PNCumDTmOJlRcoF2qVKpxP78
         K1RnUGdNQXmRj8iYaAMUHK5/TO8vhir2OSC7BlnGKE/BBY0MxE9c1hWZU/rxHmmpQhbk
         EYOjf3BsfFREwDEw02TNJUgORLJZHApgwoet9G91AEELmvvIumSUZ1IlrJSeETUdfp/o
         gL4A==
X-Gm-Message-State: AOJu0Yw2xVJCFetVBfCWWfpbJe4QneLeR5CDP2tgwyQL2RCBOltiwEfg
	zP+Rqwzqb6hK4uVCfIVuu8Fw
X-Google-Smtp-Source: AGHT+IH5a+/v+3dAdY1UbkVgkb7ASeE9RBeb6OWes8QuWufnFteX39UVdsWnMnkpvrpoyNb5lmtOlw==
X-Received: by 2002:adf:f3ca:0:b0:336:64b8:9d39 with SMTP id g10-20020adff3ca000000b0033664b89d39mr1205589wrp.89.1702899502885;
        Mon, 18 Dec 2023 03:38:22 -0800 (PST)
Message-ID: <c89a7b34-c5d2-4406-9c1f-16d662379b32@suse.com>
Date: Mon, 18 Dec 2023 12:38:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 33/39] xen/riscv: add minimal stuff to asm/processor.h
 to build full Xen
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <11f177882b74c60233626075a69bdd00d3da2311.1700761381.git.oleksii.kurochko@gmail.com>
 <c431a7ac-ac4d-4de2-969a-ad2acf1a7aee@suse.com>
 <a46dee8dc5f15beb8c01f84b6363f6d7763e0ede.camel@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: <a46dee8dc5f15beb8c01f84b6363f6d7763e0ede.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2023 11:49, Oleksii wrote:
> On Thu, 2023-12-14 at 17:04 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> +static inline void cpu_relax(void)
>>> +{
>>> +	int dummy;
>>> +	/* In lieu of a halt instruction, induce a long-latency
>>> stall. */
>>> +	__asm__ __volatile__ ("div %0, %0, zero" : "=r" (dummy));
>>
>> Any reason for this, when Arm's is just barrier(), and apparently
>> they got
>> away with this quite fine? Also isn't this causing a division by
>> zero,
>> which I'd expect to cause some kind of exception? (Terminology-wise
>> I'm of
>> course biased by x86, where "halt instruction" wouldn't be suitable
>> to use
>> here. But if that terminology is fine on RISC-V, then obviously no
>> objection.)
> It was based on Linux kernel code:
> https://elixir.bootlin.com/linux/latest/source/arch/riscv/include/asm/vdso/processor.h#L9
> 
> But looks I missed barrier()...
> Probably it will be better update cpu_relax() to:
> 
> 	/* Encoding of the pause instruction */
> 	__asm__ __volatile__ (".4byte 0x100000F");
> 
> 	barrier();

But definitely without .4byte, which defines a piece of data. If for
whatever reason you don't want to use "pause" directly, please use
.insn.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:42:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:42:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655893.1023778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFC0y-00019D-75; Mon, 18 Dec 2023 11:42:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655893.1023778; Mon, 18 Dec 2023 11:42: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 1rFC0y-000196-4P; Mon, 18 Dec 2023 11:42:28 +0000
Received: by outflank-mailman (input) for mailman id 655893;
 Mon, 18 Dec 2023 11:42: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFC0x-000190-HG
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:42:27 +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 845f3f34-9d9a-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 12:42:26 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-50e3295978aso1390942e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:42:26 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 y1-20020a197501000000b0050e2c05576fsm583581lfe.9.2023.12.18.03.42.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 03:42:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 845f3f34-9d9a-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702899746; x=1703504546; 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=QH459F2/taJyBqCg2g2LBxM7hEvnaUFXdcPuPsjZ2So=;
        b=LV+9mR86EDPHK5XZGQxekG0ujzUf9EESMBlgIyVdxQWfu3JErkvOOM0SZlQeRCJ/V4
         dM3KlLk0Vwm2tMdtkEuwvqRt7YKG73c8wBR9L53WGp1VGksb2WhsE0Y+K/8OeW7dcFyD
         rpJs5Up0QE21SqN0FiuiWWeuMwwdCH5wNm+s5kN2O92y+IIz1pu/1hBP1VRl77LLaB1g
         B8G8tF5gu9FyaTvcKwHY79vDTu8tERgZq9zplSEk4pbfMQG/FnTzzKWqFfhU80VeTDUP
         EPQ6/7cGLtpsY/Me3Pwmv/xzb5bMOgtI+OjVuOTXuu0GNdMT4D2dFqhXjDEg7eW5wuSU
         P9tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702899746; x=1703504546;
        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=QH459F2/taJyBqCg2g2LBxM7hEvnaUFXdcPuPsjZ2So=;
        b=bPL679lbpaWWeww377rWb2a0i4crVIbycsqcWmgTULrcz6hPyUX48DzORiQcFytunW
         6HoyfTdyRkZtZzsj95NjQrQVhmgsR+a1tE5bW0QVs36xHXOm88zktStCHGHOcEMynzoJ
         28hfCqwBisLokC7tyTYNe0ytpxpQffJoXaQowUjXFOTiXILCWlNT6Fwlz8dTIWfrHYQa
         GF6sY7Olw440wCHDFC0goDsQo8GzztqsleHaVBHFy7F54vv+MqaqOsYBQSdnqJpSOhgS
         VV6IfEfjUa3HjtMpAScRaBoZZKnefaIGMGsl6GZ+UWttnkOf1He0svVtSBF4ZUsEl5Tm
         KrMw==
X-Gm-Message-State: AOJu0YwWNYlQaFbvUrsHtFa7omhE32zI6hRoVdVG2LPfYUpVlq51TIQR
	sdlNRZCkPEWF3qbbbhlI2ZQ=
X-Google-Smtp-Source: AGHT+IH/imAMcfEYG7znvy7c41OMUBMIrpSfnefBp0FuKVpWOnKHi0b+FAQGpTykp3y3VNO8LMyrfA==
X-Received: by 2002:a05:6512:610:b0:50e:2aff:2964 with SMTP id b16-20020a056512061000b0050e2aff2964mr1243113lfe.30.1702899746132;
        Mon, 18 Dec 2023 03:42:26 -0800 (PST)
Message-ID: <b7b75cffd105ff399505ca5616d0850fdb46480a.camel@gmail.com>
Subject: Re: [PATCH v2 24/39] xen/riscv: introduce asm/irq.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 13:42:25 +0200
In-Reply-To: <ef529ee1-7ae4-4a0b-b089-e26feb3b2743@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <e9fc98cad562dad495ac1eb87b98be77cda72524.1700761381.git.oleksii.kurochko@gmail.com>
	 <479cd511-c01b-4460-bafc-2d3943956914@suse.com>
	 <d50405f2181396931941874f24c5018800cc5b44.camel@gmail.com>
	 <ef529ee1-7ae4-4a0b-b089-e26feb3b2743@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-18 at 11:12 +0100, Jan Beulich wrote:
> On 18.12.2023 11:04, Oleksii wrote:
> > On Thu, 2023-12-14 at 15:09 +0100, Jan Beulich wrote:
> > > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > > ---
> > > > Changes in V2:
> > > > 	- add ifdef CONFIG_HAS_DEVICE_TREE for things that
> > > > shouldn't be
> > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 in case !CONFIG_HAS_DEVICE_TREE
> > >=20
> > > Is there going to be a RISC-V build without this enabled
> > > (selected)?
> > > If
> > > not, I'd recommend against such pointless #ifdef-ary.
> > For this stage (Xen RISC-V full build), CONFIG_HAS_DEVICE_TREE will
> > not
> > be selected, but it will be in the near future.
>=20
> And from then on it'll always be selected, or only conditionally? In
> the
> former case it would still feel odd if #ifdef-s were introduced.
It will always be selected until ACPI support is provided. I've seen
patches that add ACPI support for the Linux kernel, but I'm not sure if
it is really needed at this point. So, I've planned to go with Device
Tree for quite a while

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:44:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:44:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655895.1023787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFC2d-0002CR-Hj; Mon, 18 Dec 2023 11:44:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655895.1023787; Mon, 18 Dec 2023 11:44:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFC2d-0002CK-F6; Mon, 18 Dec 2023 11:44:11 +0000
Received: by outflank-mailman (input) for mailman id 655895;
 Mon, 18 Dec 2023 11:44: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFC2c-0002CE-Lj
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:44:10 +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 c133d4dc-9d9a-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 12:44:08 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-50e2168ab09so3060251e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:44:08 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 x12-20020ac259cc000000b0050e36a32b15sm357210lfn.239.2023.12.18.03.44.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 03:44:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c133d4dc-9d9a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702899848; x=1703504648; 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=jwtWEkrks9hDrtQJ3eN3j9qk8j1ZB8qqi3LeuLEC+zM=;
        b=nGzNX0yQZY1Mt0BepmAmoGFcXQR2DeSXOhlQYLIGfosL3wzE1CNK6+tZZzo4ADfE/K
         XH6mJsQp/qAled8oCGkgaZ8rZo60o7aWrhEyDn0C+lKp59z+RdAK0lYjfiyK790WzNQ6
         PcGd1JLtB2OAEz0GyKg/jcG9xIOf95j1qe09QVI20bMmAfpnA48SG3dZP/qETmy3slhj
         CI/CIcPeaZiFyYp6EfToA7lteTPXrJtcs0xBsk6tk2YOwlwUdxkYGvHqjOiEEdc2LLFE
         VjVMS+jXG+XMtca7CzaQfmuUalS2eSvYr1TN2c5SawNPDXqEIeEIMcsiqMFWRxbusw3k
         7MBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702899848; x=1703504648;
        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=jwtWEkrks9hDrtQJ3eN3j9qk8j1ZB8qqi3LeuLEC+zM=;
        b=jnFQFz4hTJRkVvIeJzJtTzA++7lSIaFdYC7NrxrPitHigLhj/Mpv0+7/qhakInfQyo
         lFOQIjkBacmrSjd0c5ajwvS9d5ROMiJ3NTjYyIWghQGpdpWY6KSSPkLWDfyc7dAh70uD
         JD5xLB+GkpPH2BHWbYcMdJqDVaoUFH1Uo1O3dtg9PgS0zUByIxI72dfgml4TBu1nE5KM
         Og9hOuypkbtrvX5B8PUm3BS7o3ndmrA1tV8AnON5wWqNjdrdmMWaEVo3k/Xh/jOQCtyf
         KFqZNGMtEesYjPitNo58+SvXNBYfYMu035HKZZDeS9tp/dIgWB2VE7um0WvO/kABIxvv
         mXVQ==
X-Gm-Message-State: AOJu0YwdZmejUKB8ZOuEOshc4M+922VzYKzWgRqAJcPw0JAja3wVoGdo
	Tq+ThPcn5AXFMybiC40Svfk=
X-Google-Smtp-Source: AGHT+IGVfYrZ7fchrUP0EQxwjTGK7AXHdmQfUdgEfU3Qo62DiRntudOoHB1bD0Wsaf5CHoIZUz5dYw==
X-Received: by 2002:ac2:598b:0:b0:50e:3e73:a55f with SMTP id w11-20020ac2598b000000b0050e3e73a55fmr238744lfn.73.1702899848193;
        Mon, 18 Dec 2023 03:44:08 -0800 (PST)
Message-ID: <e4186e51d0a86e63386ea40e492e862d316e75d3.camel@gmail.com>
Subject: Re: [PATCH v2 31/39] xen/riscv: add required things to asm/current.h
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 13:44:07 +0200
In-Reply-To: <95431643-9f52-4723-89e6-a5e7e8b51bca@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <b6328d9b5bbb9269066dc17d7c0fcb32fa935b2b.1700761381.git.oleksii.kurochko@gmail.com>
	 <8d089dbe-a411-4083-9540-d0c95fa183cf@suse.com>
	 <2c0ac2c7d21222944052f51c3af497c53f1a1da4.camel@gmail.com>
	 <95431643-9f52-4723-89e6-a5e7e8b51bca@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-18 at 12:28 +0100, Jan Beulich wrote:
> On 18.12.2023 11:39, Oleksii wrote:
> > On Thu, 2023-12-14 at 16:55 +0100, Jan Beulich wrote:
> > > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > --- a/xen/arch/riscv/include/asm/current.h
> > > > +++ b/xen/arch/riscv/include/asm/current.h
> > > > @@ -3,6 +3,22 @@
> > > > =C2=A0#ifndef __ASM_CURRENT_H
> > > > =C2=A0#define __ASM_CURRENT_H
> > > > =C2=A0
> > > > +#include <xen/percpu.h>
> > > > +#include <asm/processor.h>
> > > > +
> > > > +#ifndef __ASSEMBLY__
> > > > +
> > > > +struct vcpu;
> > >=20
> > > I don't think you need this here?
> > Shouldn't forward declaration be for the case of curr_vcpu
> > declaration
> > in the next line ?
>=20
> I don't think so. In C forward decls are needed only when an
> otherwise
> undeclared type is used as type of a function parameter. (C++ is
> different
> in this regard.)
Thanks for clarifying; in this case, it can be dropped.


~ Oleksii
> > > > +/* Which VCPU is "current" on this PCPU. */
> > > > +DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
> > > > +
> > > > +#define current=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 (this_cpu(curr_vcpu))
>=20



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:52:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:52:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655903.1023797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCAB-00055t-9h; Mon, 18 Dec 2023 11:51:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655903.1023797; Mon, 18 Dec 2023 11:51: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 1rFCAB-00055m-77; Mon, 18 Dec 2023 11:51:59 +0000
Received: by outflank-mailman (input) for mailman id 655903;
 Mon, 18 Dec 2023 11:51: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=MePR=H5=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFCA9-00055g-S0
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:51:57 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7eeb694-9d9b-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 12:51:56 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.165.135])
 by support.bugseng.com (Postfix) with ESMTPSA id B5A034EE0742;
 Mon, 18 Dec 2023 12:51:53 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7eeb694-9d9b-11ee-98eb-6d05b1d4d9a1
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH] docs/misra: add entries to exclude-list
Date: Mon, 18 Dec 2023 12:51:45 +0100
Message-Id: <5df2a8c3c6daa0bec1b38f440fcd8fa3a380a1f6.1702900114.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Exclude efibind.h for all the architectures: it is used to build the
efi stub, which is a separate entry point for Xen when booted from EFI
firmware.
Remove redundant entries from out_of_scope.ecl.

Exclude common/coverage: it is code to support gcov, hence it is part
of the testing machinery.

Exclude decompress.h: file ported from Linux that defines a unique and
documented interface towards all the (adopted) decompress functions.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 .../eclair_analysis/ECLAIR/out_of_scope.ecl      |  5 -----
 docs/misra/exclude-list.json                     | 16 ++++++++++++++++
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
index fd870716cf..9bcec4c69d 100644
--- a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
+++ b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
@@ -17,11 +17,6 @@
 -file_tag+={out_of_scope,"^xen/arch/x86/include/asm/intel-family\\.h$"}
 -doc_end
 
--doc_begin="Files imported from the gnu-efi package"
--file_tag+={adopted,"^xen/include/efi/.*$"}
--file_tag+={adopted,"^xen/arch/x86/include/asm/x86_64/efibind\\.h$"}
--doc_end
-
 -doc_begin="Build tools are out of scope."
 -file_tag+={out_of_scope_tools,"^xen/tools/.*$"}
 -file_tag+={out_of_scope_tools,"^xen/arch/x86/efi/mkreloc\\.c$"}
diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
index 48f671c548..83fae0b4a4 100644
--- a/docs/misra/exclude-list.json
+++ b/docs/misra/exclude-list.json
@@ -1,6 +1,10 @@
 {
     "version": "1.0",
     "content": [
+        {
+            "rel_path": "arch/*/include/asm/*/efibind.h",
+            "comment": "Imported from gnu-efi package, ignore for now"
+        },
         {
             "rel_path": "arch/arm/arm64/cpufeature.c",
             "comment": "Imported from Linux, ignore for now"
@@ -97,6 +101,10 @@
             "rel_path": "arch/x86/efi/check.c",
             "comment": "The resulting code is not included in the final Xen binary, ignore for now"
         },
+        {
+            "rel_path": "common/coverage/*",
+            "comment": "Files to support gcov, ignore for now"
+        },
         {
             "rel_path": "common/bitmap.c",
             "comment": "Imported from Linux, ignore for now"
@@ -213,6 +221,14 @@
             "rel_path": "include/xen/acpi.h",
             "comment": "Imported from Linux, ignore for now"
         },
+        {
+            "rel_path": "include/efi/*",
+            "comment": "Imported from gnu-efi package, ignore for now"
+        },
+        {
+            "rel_path": "include/xen/decompress.h",
+            "comment": "Imported from Linux, ignore for now"
+        },
         {
             "rel_path": "lib/list-sort.c",
             "comment": "Imported from Linux, ignore for now"
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:57:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:57:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655910.1023808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCFj-0006CZ-1f; Mon, 18 Dec 2023 11:57:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655910.1023808; Mon, 18 Dec 2023 11:57:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCFi-0006CS-V7; Mon, 18 Dec 2023 11:57:42 +0000
Received: by outflank-mailman (input) for mailman id 655910;
 Mon, 18 Dec 2023 11:57: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=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFCFh-0006CM-N3
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:57:41 +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 a35465d1-9d9c-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 12:57:37 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-50c04ebe1bbso3818483e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:57:37 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 t10-20020a195f0a000000b0050e38f8ba2esm259192lfb.273.2023.12.18.03.57.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 03:57:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a35465d1-9d9c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702900657; x=1703505457; 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=dYi86SiMnphl8dWBxbqFJm3Le7+SIw0V803ihqs4b1A=;
        b=GkbKaYgR2VTchkqct5Y5/cBsGbHzzbg+Hot3NMKUmNtafjY/sZq5obguFv9VujFqZw
         1dHgjtJ3uwiF/TZOchdCU+8uulrBNYn/jhUN0luStBR/aLouW5HaTf5zXwcLfqo86KV4
         2kiLt2vYAb1Sl6Jj/FZ5hQVn5h2XWKI8vXrmIseS9pqwphtxSazVvXiBgvImnJzeOGjV
         tb83FOqpeAIVgLsByyywVoV727Y/+/rixgjhAiQ6x+w+9PL2YTg5LVJrAXEcZrfPJUW8
         AxvUrhAZaU6gdH+lGGSGRXXcMLtRdStCQ3BPvBW+qT9xCwEHyReZEphSz8cLpjz1UtVL
         F9zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702900657; x=1703505457;
        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=dYi86SiMnphl8dWBxbqFJm3Le7+SIw0V803ihqs4b1A=;
        b=e9JUVZefIAjexsVtXf0z1+ZmyzKImBO4szdkzVl5tmSHAqqPyq7ZSYojmU0DBhewEB
         dTsqcl+yZq63epolYrE9sDtVas23HMe4DDpMcFwDAbUefk+MyQl1lofAgT0877ctgCxK
         qnO6i0BVlWl7B/4k3rxKmWyKkH4pEVo3L4rxdiC7UUg6q6gYuyigyUf0pK9Bw9zQaTMe
         e5qqSz00bMXHxSQZf289DYJ1cDIyxrLz8KmQDXTYgQCm4pNrt8dUGgDKO1hsl0uq6VGw
         Yk04KIRSZEVesV33UMlL7d8tc+jTLSIDSjrBOVPkSETZfJzKLoe1HdfUQ5pDgzt2OC5c
         vg9Q==
X-Gm-Message-State: AOJu0YzBOOfOtZ/1OA9HQAQ2VTZbpVK2ak/fnnJG5eqnxNljtqnupQf1
	KOltneo1v7rzDxImu/LlS7Q=
X-Google-Smtp-Source: AGHT+IG3Jo7V4DTj44V+yQguI+0NiGxbBZCAqv1OlMpAlZrAqHVbtHOhFZFtsuTcwLvuh3QEMGBwfA==
X-Received: by 2002:ac2:4849:0:b0:50e:2ade:af45 with SMTP id 9-20020ac24849000000b0050e2adeaf45mr1728066lfy.29.1702900657033;
        Mon, 18 Dec 2023 03:57:37 -0800 (PST)
Message-ID: <61afc7bf7dd153c368173eb8a82052d726ae2512.camel@gmail.com>
Subject: Re: [PATCH v2 32/39] xen/riscv: add minimal stuff to asm/page.h to
 build full Xen
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 13:57:36 +0200
In-Reply-To: <2fa8fa4f-86d9-4856-91f3-f3dcf1c1013c@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <34a4bc023eb50e1d1cf70fa149825c51f2f4555f.1700761381.git.oleksii.kurochko@gmail.com>
	 <ccef1adc-af39-43b2-8f97-ed3895e8809d@suse.com>
	 <c0ae5654e6be1eb10282a3d95fb419d5c975e98b.camel@gmail.com>
	 <2fa8fa4f-86d9-4856-91f3-f3dcf1c1013c@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-18 at 12:36 +0100, Jan Beulich wrote:
> On 18.12.2023 11:45, Oleksii wrote:
> > On Thu, 2023-12-14 at 16:57 +0100, Jan Beulich wrote:
> > > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > >=20
> > > Acked-by: Jan Beulich <jbeulich@suse.com>
> > >=20
> > > I wonder though ...
> > >=20
> > > > --- a/xen/arch/riscv/include/asm/page.h
> > > > +++ b/xen/arch/riscv/include/asm/page.h
> > > > @@ -6,6 +6,7 @@
> > > > =C2=A0#ifndef __ASSEMBLY__
> > > > =C2=A0
> > > > =C2=A0#include <xen/const.h>
> > > > +#include <xen/bug.h>
> > > > =C2=A0#include <xen/types.h>
> > > > =C2=A0
> > > > =C2=A0#include <asm/mm.h>
> > > > @@ -32,6 +33,9 @@
> > > > =C2=A0#define PTE_LEAF_DEFAULT=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (PTE_VALID | PTE_READABLE
> > > > |
> > > > PTE_WRITABLE)
> > > > =C2=A0#define PTE_TABLE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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_VAL=
ID)
> > > > =C2=A0
> > > > +/* TODO */
> > > > +#define PAGE_HYPERVISOR 0
> > >=20
> > > ... whether this couldn't be defined properly right away.
> > It can be introduced now but it requires some additional defines to
> > be
> > introduced in the same time:
> >=20
> > #define _PAGE_W_BIT=C2=A0=C2=A0=C2=A0=C2=A0 2
> > #define _PAGE_XN_BIT=C2=A0=C2=A0=C2=A0 3
> > #define _PAGE_RO_BIT=C2=A0=C2=A0=C2=A0 1
> > #define _PAGE_XN=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (1U << _PAGE=
_XN_BIT)
> > #define _PAGE_RO=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (1U << _PAGE=
_RO_BIT)
> > #define _PAGE_W=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (1U << =
_PAGE_W_BIT)
>=20
> Why would you need these, when you already have
> PTE_{READABLE,WRITABLE,EXECUTABLE} just out of context from above?
I thought that the hypervisor page table is fully software-related, and
that's why a separate PAGE*BIT was introduced. These bits can be
different from PTE* bits, which are hardware-related
https://gitlab.com/xen-project/xen/-/blob/staging/xen/arch/arm/include/asm/=
page.h?ref_type=3Dheads#L66

It looks like I misunderstood that, and PTE* can be used everywhere
instead of _PAGE*. Alternatively, we could consider renaming everything
to PAGE* to maintain consistency across architectures.

Does it make sense?


> (And
> that's aside from me (a) not following the naming (vs their purpose)
> and
> (b) not seeing what _PAGE_*_BIT are needed for, not even thinking
> about
> the leading underscores in these identifiers again.)
>=20
> > ...
> > /*
> > =C2=A0* _PAGE_DEVICE and _PAGE_NORMAL are convenience defines. They are
> > not
> > =C2=A0* meant to be used outside of this header.
> > =C2=A0*/
> > // #define _PAGE_DEVICE=C2=A0=C2=A0=C2=A0 _PAGE_XN
> > #define _PAGE_NORMAL=C2=A0=C2=A0=C2=A0 _PAGE_PRESENT
> >=20
> > #define PAGE_HYPERVISOR_RW=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (_PAGE_NORMAL =
| _PAGE_RO | _PAGE_XN
> > |
> > _PAGE_W)
> >=20
> > #define PAGE_HYPERVISOR=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 PAGE_HYPERVISOR_RW
> >=20
> > And _PAGE_PRESENT in pgtbl-bits.h:
> >=20
> > #define _PAGE_PRESENT=C2=A0=C2=A0 (1 << 0)
> >=20
> > I prefer to introduce all this things when it will be really used.
>=20
> I understand that, yet for easy things it may help doing them right
> away, rather than leaving them to be touched (in a straightforward
> way)
> again very soon.
>=20
~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 11:58:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 11:58:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655912.1023818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCGv-0006jr-Ay; Mon, 18 Dec 2023 11:58:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655912.1023818; Mon, 18 Dec 2023 11:58:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCGv-0006jk-7y; Mon, 18 Dec 2023 11:58:57 +0000
Received: by outflank-mailman (input) for mailman id 655912;
 Mon, 18 Dec 2023 11:58: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=U9fe=H5=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1rFCGt-0006jZ-Kz
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 11:58:55 +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 d09113a7-9d9c-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 12:58:53 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-553338313a0so1242279a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 03:58:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d09113a7-9d9c-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1702900733; x=1703505533; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=RqjCOkcWk9lFw7XmwLS/EZADd87c7o4tyio1n/qNYRg=;
        b=YHUKr2G5U9HoZddGQ/tBeDx2pZING9daIvKoqDcarMP9HaFDpaAUy9QJ+DG4BrwrbH
         o62dKrw9xzh1hMLo9dPUmugzqhZrPV7hz0qkOM0VQVae2V2xt1TZLd9pg1wGQNLyaDwX
         Hwr+uQtVhdyD3780hiNSDQkHu7z3fmW4oRolc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702900733; x=1703505533;
        h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=RqjCOkcWk9lFw7XmwLS/EZADd87c7o4tyio1n/qNYRg=;
        b=WmRKzr0EoM1fDsaDYSEOhJ2DMmPtur7SeWpLsjPZHG7VVSA22USU/4nmQqOo35oxP2
         kIqT7CsPSS6vgwI/lPW86bpiyIcS19vtyrnsjHXzC3B5htZOp1n7qsEJfOAyej4CClcs
         iJxb/ivFESL2sCr1VxVAnO9Z3hBRsd8FS/lHcLfhB/5Y3kqkwId/dVftIgrdQbe+4yX1
         LC97Fyf7fLEHpwwdJHgjDRVGgxIbsoc6HPYltZMzHH7AvvjicXhCjs0liuY2beWuHqlV
         glN/oSG3Ju1OyiGkqlsSJLdqhzcKUgcrQRVIs4Y0YGDMOgwlkoDuG7EN+qi6FcocYryr
         CvjQ==
X-Gm-Message-State: AOJu0YxuCs0QFbxeeAV+t9+yXPGtUDWqZH9WM88XsQfIz8UeHd6hEqyq
	T95UBEE/VlklexPGjySp/dJvYkvs5bEPuAsveGCxu7874CTlxfLruSjumA==
X-Google-Smtp-Source: AGHT+IEVolVt9qkbvnMiizuoi5uWNCXUVM3ntt6N639M2TUrQIbtc1YtxtVxTSlCn073nZ9TdFgbu+4SBBQjjEFZNH0=
X-Received: by 2002:a05:6402:2051:b0:54c:5f17:1163 with SMTP id
 bc17-20020a056402205100b0054c5f171163mr8246854edb.58.1702900732700; Mon, 18
 Dec 2023 03:58:52 -0800 (PST)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Mon, 18 Dec 2023 11:58:16 +0000
Message-ID: <CAO-mL=ziVf=9E345gaRJMUMN1BortznAwzOOJRw-8LMwFRweiQ@mail.gmail.com>
Subject: Community Manager Update
To: xen-devel@lists.xenproject.org, xen-users@lists.xenproject.org
Cc: committers@xenproject.org
Content-Type: multipart/alternative; boundary="00000000000042c320060cc779d3"

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

Hi all,

Merry Christmas!

Just a quick update from myself.

Whilst I can=E2=80=99t speak for everyone in the community, I know we have =
valuable
members who are committed to making the Xen Project successful. We are a
strong and passionate community made up of individuals who consistently
seek improvement in ways of working to ensure our open source project is
welcoming and friendly. Our project is not only advancing the industry in
many ways, but there are policies and governance practices that the
community has helped shape to make it a better environment for all.

As such, I strongly condemn activities or communications that diminish our
efforts on how great the community is. We may not be perfect, but
collectively we are all working towards a common goal on how to be better.

This is a reminder to everyone to keep up the great work you are already
doing, and for other individuals to refrain from making comments that could
be seen as harmful to the community. Our communications can easily be
misperceived and interpreted by others negatively, so if your messaging is
not beneficial, please do not send these.

Our next steps will be to look at creating a community working or technical
group of some sort, to help address concerns and drive direction within the
community. Given this will be something that affects everyone, I=E2=80=99d =
like to
ask for your patience as we scope out the specifics before asking for your
feedback. I want to make sure we do this properly to ensure the process is
something that benefits the community in the long run. As soon as I have
the details, I will be sharing them with you all.

I wish you all a great holiday and a Happy New Year!

Many thanks,
Kelly Choi

Community Manager
Xen Project

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

<div dir=3D"ltr">Hi all,<div><br></div><div>Merry=C2=A0Christmas!</div><div=
><br></div><div>Just a quick update from myself.</div><div><br></div>Whilst=
 I can=E2=80=99t speak for everyone in the community, I know we have valuab=
le members who are committed to making the Xen Project successful. We are a=
 strong and passionate community made up of individuals who consistently se=
ek improvement in ways of working to ensure our open source project is welc=
oming and friendly. Our project is not only advancing the industry in many =
ways, but there are policies and governance practices that the community ha=
s helped shape to make it a better environment for all. <br><br>As such, I =
strongly condemn activities or communications that diminish our efforts on =
how great the community is. We may not be perfect, but collectively we are =
all working towards a common goal on how to be better. <br><br>This is a re=
minder to everyone to keep up the great work you are already doing, and for=
 other individuals to refrain from making comments that could be seen as ha=
rmful to the community. Our communications can easily be misperceived and i=
nterpreted by others negatively, so if your messaging is not beneficial, pl=
ease do not send these. <br><br>Our next steps will be to look at creating =
a community working or technical group of some sort, to help address concer=
ns and drive direction within the community. Given this will be something t=
hat affects everyone, I=E2=80=99d like to ask for your patience as we scope=
 out the specifics before asking for your feedback. I want to make sure we =
do this properly to ensure the process is something=C2=A0that benefits the =
community in the long run. As soon as I have the details, I will be sharing=
 them with you all.=C2=A0<div><br></div><div>I wish you all a great holiday=
 and a Happy New Year!=C2=A0<br><div>=C2=A0 <br><div>Many thanks,<br></div>=
<div><div dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_sig=
nature"><div dir=3D"ltr"><div>Kelly Choi</div><div><br></div><div><div styl=
e=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></d=
iv></div>

--00000000000042c320060cc779d3--


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 12:05:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 12:05:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655949.1023844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCN1-0001r8-LS; Mon, 18 Dec 2023 12:05:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655949.1023844; Mon, 18 Dec 2023 12:05:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCN1-0001r1-IH; Mon, 18 Dec 2023 12:05:15 +0000
Received: by outflank-mailman (input) for mailman id 655949;
 Mon, 18 Dec 2023 12:05:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFCN0-0001pL-Ao
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 12:05:14 +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 b3128f95-9d9d-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 13:05:13 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c6e2a47f6so27870455e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 04:05:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bd19-20020a05600c1f1300b0040839fcb217sm42151486wmb.8.2023.12.18.04.05.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 04:05:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3128f95-9d9d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702901113; x=1703505913; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+S2YZtpkrXpPeCF/W4lHSTE3t8QggdrwTPCu+mAiobg=;
        b=c/TdN6G8wt7/iace5NCjDMwRJ10oNYcsiCvzwu5nMgMBlcA6dIO3+FYQT3rKQTO91M
         MbeG9kzhozJU/ReMZDxn7pztXY8H5JFYuWk9XypnKHRkOXUJfIluvsFM5pV3PAYDVgzp
         9TVyLFJsYv6NGKRWZkUlJ3vMD8xugwQYqH6qXQXKT5mCx8qzm2TFVG3/fmU/I1E9tjUl
         AluWpkoNVEwIs6CFa+vJrFHSlQqf2DKhC7vqAuPxe75rBxhCbhyrn9ZiWs7gWf0Xu4dI
         6b2QTJCyAeW1q8zGwmGTLOVNojw8D10I+v8WW/u5SbLhXkMg4ABORDOy9VDtvH61e2MR
         zamg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702901113; x=1703505913;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=+S2YZtpkrXpPeCF/W4lHSTE3t8QggdrwTPCu+mAiobg=;
        b=ATx6KPDjsBy0v0IvLULobfV41tOkui8N59M/8sKXO5WRw7jy6xydaiNQgoJuliVbre
         9Oi70vQCEsbA1+HJUaD5u9eUvDuAmkwmyJpIxwFc9hKRmVrSX3xCjiR+8bDbMnXs7l3j
         QcTjPTX/8SJktz6xXERYX+v81MBU5GFzWuQSxBXGVY8otDTm4U5G55CBBaFQXanVaYW7
         sn3Y8onRLRbEeIPdxG1xo0Z8vfxB90eq4j/MGmjM93na+o9ImiM4FmLfYzRhWFguWHDI
         +e1v6CKcJO55IDVLeWQB2T2dkw8DhOKgZSFcsI3cK1PZhW6hC7F3NKwWJHc6zrH1BACz
         hZOQ==
X-Gm-Message-State: AOJu0Yzmffb2wRXj1klBWwUKxu+wIsUDJfHiJxfE5qVn/tNjnk094V3I
	tJoSg2vpPuqv9tA+j7t2jwm7
X-Google-Smtp-Source: AGHT+IGtQ+kY7TgL0YgE7TkFXyZ6g+/VLHfG1BehiFO55NonRfM9ZIL/vK5vyQR6AxpNwNL6jB+VOg==
X-Received: by 2002:a05:600c:310c:b0:40b:5f03:b3cd with SMTP id g12-20020a05600c310c00b0040b5f03b3cdmr4279146wmo.239.1702901113020;
        Mon, 18 Dec 2023 04:05:13 -0800 (PST)
Message-ID: <929aef52-2f5e-4796-9404-c507b987cab3@suse.com>
Date: Mon, 18 Dec 2023 13:05:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 32/39] xen/riscv: add minimal stuff to asm/page.h to
 build full Xen
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <34a4bc023eb50e1d1cf70fa149825c51f2f4555f.1700761381.git.oleksii.kurochko@gmail.com>
 <ccef1adc-af39-43b2-8f97-ed3895e8809d@suse.com>
 <c0ae5654e6be1eb10282a3d95fb419d5c975e98b.camel@gmail.com>
 <2fa8fa4f-86d9-4856-91f3-f3dcf1c1013c@suse.com>
 <61afc7bf7dd153c368173eb8a82052d726ae2512.camel@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: <61afc7bf7dd153c368173eb8a82052d726ae2512.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 12:57, Oleksii wrote:
> On Mon, 2023-12-18 at 12:36 +0100, Jan Beulich wrote:
>> On 18.12.2023 11:45, Oleksii wrote:
>>> On Thu, 2023-12-14 at 16:57 +0100, Jan Beulich wrote:
>>>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>
>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>
>>>> I wonder though ...
>>>>
>>>>> --- a/xen/arch/riscv/include/asm/page.h
>>>>> +++ b/xen/arch/riscv/include/asm/page.h
>>>>> @@ -6,6 +6,7 @@
>>>>> Â #ifndef __ASSEMBLY__
>>>>> Â 
>>>>> Â #include <xen/const.h>
>>>>> +#include <xen/bug.h>
>>>>> Â #include <xen/types.h>
>>>>> Â 
>>>>> Â #include <asm/mm.h>
>>>>> @@ -32,6 +33,9 @@
>>>>> Â #define PTE_LEAF_DEFAULTÂ Â Â Â Â Â Â Â Â Â Â  (PTE_VALID | PTE_READABLE
>>>>> |
>>>>> PTE_WRITABLE)
>>>>> Â #define PTE_TABLEÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (PTE_VALID)
>>>>> Â 
>>>>> +/* TODO */
>>>>> +#define PAGE_HYPERVISOR 0
>>>>
>>>> ... whether this couldn't be defined properly right away.
>>> It can be introduced now but it requires some additional defines to
>>> be
>>> introduced in the same time:
>>>
>>> #define _PAGE_W_BITÂ Â Â Â  2
>>> #define _PAGE_XN_BITÂ Â Â  3
>>> #define _PAGE_RO_BITÂ Â Â  1
>>> #define _PAGE_XNÂ Â Â Â Â Â Â  (1U << _PAGE_XN_BIT)
>>> #define _PAGE_ROÂ Â Â Â Â Â Â  (1U << _PAGE_RO_BIT)
>>> #define _PAGE_WÂ Â Â Â Â Â Â Â  (1U << _PAGE_W_BIT)
>>
>> Why would you need these, when you already have
>> PTE_{READABLE,WRITABLE,EXECUTABLE} just out of context from above?
> I thought that the hypervisor page table is fully software-related, and
> that's why a separate PAGE*BIT was introduced. These bits can be
> different from PTE* bits, which are hardware-related
> https://gitlab.com/xen-project/xen/-/blob/staging/xen/arch/arm/include/asm/page.h?ref_type=heads#L66
> 
> It looks like I misunderstood that, and PTE* can be used everywhere
> instead of _PAGE*. Alternatively, we could consider renaming everything
> to PAGE* to maintain consistency across architectures.
> 
> Does it make sense?

Sure. Whether renaming makes sense is harder to tell though. It would
be only the name prefix that's uniform, as how exactly e.g. permissions
are controlled is arch-specific anyway. The one place I'm aware where
PAGE_* (or, sadly, still _PAGE_*) would matter for common code is
_PAGE_NONE (not sure though whether that's something that can / wants
to be expressed for RISC-V).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 12:12:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 12:12:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655957.1023854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCTa-0004ok-Ay; Mon, 18 Dec 2023 12:12:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655957.1023854; Mon, 18 Dec 2023 12:12:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCTa-0004od-7V; Mon, 18 Dec 2023 12:12:02 +0000
Received: by outflank-mailman (input) for mailman id 655957;
 Mon, 18 Dec 2023 12:12:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W5ff=H5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFCTZ-0004n4-2g
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 12:12:01 +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 a4eb2cae-9d9e-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 13:11:59 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c6e2a47f6so27937985e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 04:11:59 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 be9-20020a05600c1e8900b0040596352951sm44461314wmb.5.2023.12.18.04.11.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 04:11:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4eb2cae-9d9e-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702901519; x=1703506319; 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=sxvYF1wjc1IVUHSe1pg6IpLYnJtbNQPeJwvV7IgPw68=;
        b=mNIJBXRhVeo01A2FMKZY/Ymg0eXMeTzDVnSZYG7CV2AmPKAD0NZ5Tcjz9J17G2h6gq
         FBCWvxJ2TZEt0NXmQftLDxW73+AH4GlT/MfTQXH/cejSuP1vAaMSQQiPoJA32dZPoO+6
         Jyyp6XfjDWcCatG1nHthGvF+G/m/D7qwMZf1Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702901519; x=1703506319;
        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=sxvYF1wjc1IVUHSe1pg6IpLYnJtbNQPeJwvV7IgPw68=;
        b=q/WAC4bn3Nb9qNCLdCqQ1asvujBHGGEayM3J3nObZfsara4ULDKIVT0i5Cj53Bxb5i
         AEpHVK2fuNG+A1OE7whcMtWVqN+TTFnHokq3Y3SA5SiBXJRbM8I+sUmIHroceShTTqCn
         lzMnQ3MhZd2LByS4QlOBwVxlKvrcdw4ajY3ElCWwBJBYVPx3R/2mGyZkCJJBRh5YbZOs
         KuF7xQnBJqWQflSCJINoIfqjq9VOu21hLxUFmOI662AUz5xZ4GuHeoWIJYjjFwGy7voX
         XolKPd45956gxZU7BR1oGy/eBAKL+05d3E6OTWl1bxtQapPdC5E0Ihp9d5PD+Urrl9gx
         BRtg==
X-Gm-Message-State: AOJu0YwKGO/zRUlKMsKfTw38ifK1TnIXzdD6kkAlkghoGeKpiRHms5ZR
	ZJgbwYtz6DufMwsoAUX1FPLKsg==
X-Google-Smtp-Source: AGHT+IGomCiHaws/pxyKohiOFMjYIupD5ND/LK9juxMLf2SAPbbxh7HSKFk5qupGusP6NlWZ743jnA==
X-Received: by 2002:a1c:6a11:0:b0:40c:4ecf:e447 with SMTP id f17-20020a1c6a11000000b0040c4ecfe447mr2661757wmc.222.1702901518797;
        Mon, 18 Dec 2023 04:11:58 -0800 (PST)
Date: Mon, 18 Dec 2023 13:11:57 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 1/4] x86/spec-ctrl: add logic to issue IBPB on exit to
 guest
Message-ID: <ZYA3Db53Z3fvBlwn@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <31da79de-bd6b-af95-793a-c16516992bc7@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <31da79de-bd6b-af95-793a-c16516992bc7@suse.com>

Hello,

I'm not as expert as Andrew in all the speculation stuff, but I will
try to provide some feedback.

On Tue, Feb 14, 2023 at 05:10:42PM +0100, Jan Beulich wrote:
> In order to be able to defer the context switch IBPB to the last
> possible point, add logic to the exit-to-guest paths to issue the
> barrier there, including the "IBPB doesn't flush the RSB/RAS"
> workaround. Since alternatives, for now at least, can't nest, emit JMP
> to skip past both constructs where both are needed. This may be more
> efficient anyway, as the sequence of NOPs is pretty long.

Could you elaborate on the reason why deferring the IBPB to the exit
to guest path is helpful?  So far it just seem to make the logic more
complex without nay justification (at least in the changelog).

> 
> As with all other conditional blocks on exit-to-guest paths, no
> Spectre-v1 protections are necessary as execution will imminently be
> hitting a serialising event.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> I have to admit that I'm not really certain about the placement of the
> IBPB wrt the MSR_SPEC_CTRL writes. For now I've simply used "opposite of
> entry".

Maybe it would easier to just add the MSR_PRED_CMD PRED_CMD_IBPB write
to the vmcs MSR load list?

It's a one-time only AFAICT, as you would only want to do this for
context-switch AFAICT.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 12:39:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 12:39:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655964.1023864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCtr-0003FX-FO; Mon, 18 Dec 2023 12:39:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655964.1023864; Mon, 18 Dec 2023 12:39:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFCtr-0003FQ-C1; Mon, 18 Dec 2023 12:39:11 +0000
Received: by outflank-mailman (input) for mailman id 655964;
 Mon, 18 Dec 2023 12:39:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=W5ff=H5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFCtq-0003FK-KS
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 12:39:10 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6fccf1c9-9da2-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 13:39:08 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c339d2b88so31768435e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 04:39:08 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 t9-20020a05600c198900b0040c490db950sm31553236wmq.47.2023.12.18.04.39.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 04:39:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6fccf1c9-9da2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702903148; x=1703507948; 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=jdkKBhaUm/qQXMxDj+zOdH5N1Fpb5RPvTGS8ZYXnJl8=;
        b=WATgGqJwcPK5C9AeLhSB8tdKZLyKvfZYbUpMY5aLS4/L+XFnN2KAhvjTCarF74U0X5
         8/xiUDok8jbj4laJ6K/PQkI1M7DPk2q7LJrxlsp2oXLlFNdWRvAL9vouiGXxKWSOVlMK
         H8zfFOwBpw4o0fj3/dpbbddogv1arc7fNFR7A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702903148; x=1703507948;
        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=jdkKBhaUm/qQXMxDj+zOdH5N1Fpb5RPvTGS8ZYXnJl8=;
        b=YQxkK9W7FQP9ofIoRXEMtDkkBUQZDXIwZjZbgkpVwLV1oDCXJkYGfbYY4WZcBfANAF
         F+InETu9I+aMJ9EkBXd1++ir0A2YWpTHStczBBQKvbVhcmXheGpRVtdSa5ZYbXuidxjo
         Rx6QuUq//2G4b30WzNRqRsPvj/Cf5L8n9+YdHjnqWNX6W+Ze9S4qB1YHtBkzfM+9cY8J
         LGrV8NftUR3hFRdmcy6an7yO4jHMIiBnHgHozwyjLxQt3NroDuXMrvqNrD87D5fldM3b
         TRtkCAjbRcPbQw1ZBrXcHqliMzq9I+vo/oM9LpByM5gPY7KlyIgjGc1BjlPVlb7wIiMJ
         HGBg==
X-Gm-Message-State: AOJu0YyD+427Ufxc9h7akzfEQ39Ngc5hlCrMToXJ4A9FyokyI1obsArx
	MaabnZfKXsTWG5L6VEknN0f7vg==
X-Google-Smtp-Source: AGHT+IHE2Efg3G7VL9QgT1GxU9SL60uxQutRS338pKilE6s0iG6b87xzgI63f7mZyspCIaScsKmYWA==
X-Received: by 2002:a05:600c:4d0f:b0:40c:3e43:417f with SMTP id u15-20020a05600c4d0f00b0040c3e43417fmr7912062wmp.58.1702903147658;
        Mon, 18 Dec 2023 04:39:07 -0800 (PST)
Date: Mon, 18 Dec 2023 13:39:06 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 2/4] x86/spec-ctrl: defer context-switch IBPB until
 guest entry
Message-ID: <ZYA9ap4dB5nnFCu3@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <83c2a504-bce4-d3e7-1d9a-76ac0ca17bab@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <83c2a504-bce4-d3e7-1d9a-76ac0ca17bab@suse.com>

On Tue, Feb 14, 2023 at 05:11:05PM +0100, Jan Beulich wrote:
> In order to avoid clobbering Xen's own predictions, defer the barrier as
> much as possible. Merely mark the CPU as needing a barrier issued the
> next time we're exiting to guest context.

While I understand that doing the flush in the middle of the guest
context might not be ideal, as it's my understanding we also
needlessly flush Xen predictions, I'm unsure whether this makes any
difference in practice, and IMO just makes the exit to guest paths
more complex.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 13:47:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 13:47:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655971.1023873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFDxE-00027d-3Y; Mon, 18 Dec 2023 13:46:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655971.1023873; Mon, 18 Dec 2023 13:46: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 1rFDxE-00027W-12; Mon, 18 Dec 2023 13:46:44 +0000
Received: by outflank-mailman (input) for mailman id 655971;
 Mon, 18 Dec 2023 13:46: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFDxC-00027Q-Ux
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 13:46:42 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id de66a8d0-9dab-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 14:46:39 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c3ceded81so29512405e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 05:46:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g17-20020a05600c311100b0040c4535f1a2sm34130079wmo.39.2023.12.18.05.46.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 05:46:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de66a8d0-9dab-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702907199; x=1703511999; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GPT9cYcQOYxA2APCAUIcMSqmKhgOl8CMbnj43hfLWpg=;
        b=BYasl/R15PizbHEqD5BydYHdUkMymx2VOpVa5mvjYtQd2rejKUzmqK1y6VQO6+wYG5
         yle/DXBRqf3Qwh0JZbBnQtHnINHmLzQW+jV3HKb9R5DlysHMqNZDHMRurwXYLMdXoTxf
         S/ZtGBy0xzXMiFM5xPecLr5U4hIXN/U/lTrtYgpgTXxAt8SrAIoBf9vq/lcOxRu+P3Uu
         4U/4uPwdE4xatL7qG+v+iPgm4ByfaqgIAOgQqJX1kCohjG7wvLBDoOYAN8T+h115zDuw
         KKPjjQV2aXjttTlW7Dgyex2WB1XbzMRRJSK8sD+iejEmCPMkPg4Q500Fwfnq5gpSYiDS
         ieBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702907199; x=1703511999;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=GPT9cYcQOYxA2APCAUIcMSqmKhgOl8CMbnj43hfLWpg=;
        b=SaY3RvBixepjpGrKQy6otPVC+j7a5J1bAfCCY7wZuBb9+LSelEPZZjO+6Q63SqmFd2
         /CfXZbC9awUsOitc0LjrTpq7aW7hnx202K8T6PKZj6p7k8CWA74/JYWZ0tq84/LPaGoy
         E1YhEmDq/pHbU4iTP7nL4IxihtV2H0tH36hxtEQYcak4cVGzNrqIFnfRev96ozymrWUf
         hQylsusfE3fg607ZTtZ7cCP5UhCkrEFtiDYuwvBc9hf4TQyMUDW7a1Xf2Yw+Xwg/6tWJ
         WgAVmZvSsm0xTJfjhoFsWsRW/iqJ7PEcptvc2M5KpygUfgG/h8MHgmgCRWIW6eloaXh/
         Hi5w==
X-Gm-Message-State: AOJu0YynR6ZN46cWaJBSfGbR2Ocrbcoqzwj5JwMsuGIGX9nSKYVUATbP
	TCmlDQztR45CpX03m3dQe65d
X-Google-Smtp-Source: AGHT+IHam7tjrsJWy9K4GXvfmVwPjac37c0wnvg2KB1BcokUCgQGIqTOtz5f8fPyFSgz/Kbw4RrfBQ==
X-Received: by 2002:a05:600c:2a41:b0:40c:236f:612 with SMTP id x1-20020a05600c2a4100b0040c236f0612mr8396831wme.124.1702907198717;
        Mon, 18 Dec 2023 05:46:38 -0800 (PST)
Message-ID: <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com>
Date: Mon, 18 Dec 2023 14:46:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86/spec-ctrl: add logic to issue IBPB on exit to
 guest
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <31da79de-bd6b-af95-793a-c16516992bc7@suse.com> <ZYA3Db53Z3fvBlwn@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYA3Db53Z3fvBlwn@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 13:11, Roger Pau MonnÃ© wrote:
> Hello,
> 
> I'm not as expert as Andrew in all the speculation stuff, but I will
> try to provide some feedback.
> 
> On Tue, Feb 14, 2023 at 05:10:42PM +0100, Jan Beulich wrote:
>> In order to be able to defer the context switch IBPB to the last
>> possible point, add logic to the exit-to-guest paths to issue the
>> barrier there, including the "IBPB doesn't flush the RSB/RAS"
>> workaround. Since alternatives, for now at least, can't nest, emit JMP
>> to skip past both constructs where both are needed. This may be more
>> efficient anyway, as the sequence of NOPs is pretty long.
> 
> Could you elaborate on the reason why deferring the IBPB to the exit
> to guest path is helpful?  So far it just seem to make the logic more
> complex without nay justification (at least in the changelog).

I've added "(to leave behind as little as possible)" ahead of the 1st
comma - is that sufficient, do you think?

>> ---
>> I have to admit that I'm not really certain about the placement of the
>> IBPB wrt the MSR_SPEC_CTRL writes. For now I've simply used "opposite of
>> entry".
> 
> Maybe it would easier to just add the MSR_PRED_CMD PRED_CMD_IBPB write
> to the vmcs MSR load list?
> 
> It's a one-time only AFAICT, as you would only want to do this for
> context-switch AFAICT.

That would be a back and forth of adding and removing the MSR to/from
that list then, which I'm not convinced is helpful. With these special
MSRs I would further be uncertain as to their effect when used via one
of these lists.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 13:50:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 13:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655973.1023883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFE0t-0003mA-It; Mon, 18 Dec 2023 13:50:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655973.1023883; Mon, 18 Dec 2023 13:50:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFE0t-0003m3-GS; Mon, 18 Dec 2023 13:50:31 +0000
Received: by outflank-mailman (input) for mailman id 655973;
 Mon, 18 Dec 2023 13:50: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFE0s-0003lr-GZ
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 13:50:30 +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 672e8e87-9dac-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 14:50:28 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40d13e4f7abso13808915e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 05:50:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 t11-20020a05600c450b00b0040c495b1c90sm31447034wmo.11.2023.12.18.05.50.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 05:50:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 672e8e87-9dac-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702907428; x=1703512228; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ck/LeqPE6c91McazT8sAMARWeAxNpRDqXCjjQdtdRv4=;
        b=WO/J17j2GfPqAqc/NUmPEvyoZVizC4jH20U83tCNP/As7UI/xLiBElUPQ6jGbr4M3J
         12ZNIS5YqOw+QGBhSZtBLUy5/77q/0O9YJg3o99FmKLUwnZHIA5qEOwrkXCAcVPSNMU6
         QnIEzBPdkK4etGUeWacPro8amasn6IP9NUItRg1peuwe0mWANbHfZEIrcsfb9of5PljX
         mC/jhZrAa7G2FE6uVvP3lXbDAmcyz/dZQyV8z6VIeBpWRQOx+9AFMuz+6fiCAHUdxrQ3
         JFQHTRYF/aCMHYAyMgJd1c4x1zss8cX7dnQELOq9GuhabZrm+fQwcXVVPMXM+uXPVY/F
         4ysQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702907428; x=1703512228;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ck/LeqPE6c91McazT8sAMARWeAxNpRDqXCjjQdtdRv4=;
        b=jBTH7tSshsxBcvQit3GYFKuw5SsdraD8iOhmSSLpq8Jn3IFP0JrArfnUYxSZaXGMtg
         D5jPyf/R5OB8ixYfyV1DNSNSGlwStI+CttzAstIUNPw5bWUIX4e3QzfjdMPia5J+813C
         KzF6yK2E7+o58gFOUIPEpNArhdIMSRBEQzPcYQmtLXmNQv1gx+OoPxUakXO+A92JCxMx
         Bc1ZmF/T1Gc7AjWX2hXOPwM3Jl/nPlb6ZwlAEsOYJ53veKD+OnKEuoDp1AyqzSkPFVD6
         3I6rfB9D52deB39iZa3LJ/tUQfYBTqpf/FNSMsiLWCZ02v/Cjt+AH8TChEOBp5sPfWtd
         IxHw==
X-Gm-Message-State: AOJu0Yyq+kyQNpknDtipSuAuaYZfrsy09lifXr4qiva0oGyzF9LL3zPQ
	l3NKwchiWTbNbI68tY1QDPYJoA3xTJUUKskxbblC
X-Google-Smtp-Source: AGHT+IFsLcnu0lMrLnnUzr+UuS0/VJZn0r+2vY72r5W/v2+zDIYsUEHeYrWBpRT9/EccRSWvyKJw/A==
X-Received: by 2002:a05:600c:1c09:b0:40b:3645:4671 with SMTP id j9-20020a05600c1c0900b0040b36454671mr9808617wms.10.1702907428640;
        Mon, 18 Dec 2023 05:50:28 -0800 (PST)
Message-ID: <2f6367bd-d63d-435f-8d6e-553d5e129eb5@suse.com>
Date: Mon, 18 Dec 2023 14:50:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86/spec-ctrl: add logic to issue IBPB on exit to
 guest
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <31da79de-bd6b-af95-793a-c16516992bc7@suse.com> <ZYA3Db53Z3fvBlwn@macbook>
 <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 14:46, Jan Beulich wrote:
> On 18.12.2023 13:11, Roger Pau MonnÃ© wrote:
>> Hello,
>>
>> I'm not as expert as Andrew in all the speculation stuff, but I will
>> try to provide some feedback.
>>
>> On Tue, Feb 14, 2023 at 05:10:42PM +0100, Jan Beulich wrote:
>>> In order to be able to defer the context switch IBPB to the last
>>> possible point, add logic to the exit-to-guest paths to issue the
>>> barrier there, including the "IBPB doesn't flush the RSB/RAS"
>>> workaround. Since alternatives, for now at least, can't nest, emit JMP
>>> to skip past both constructs where both are needed. This may be more
>>> efficient anyway, as the sequence of NOPs is pretty long.
>>
>> Could you elaborate on the reason why deferring the IBPB to the exit
>> to guest path is helpful?  So far it just seem to make the logic more
>> complex without nay justification (at least in the changelog).
> 
> I've added "(to leave behind as little as possible)" ahead of the 1st
> comma - is that sufficient, do you think?

Actually, the next patch supplies better context, i.e. is more / also
about avoiding to clobber Xen's own predictions.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 13:50:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 13:50:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655975.1023894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFE18-0004Ds-0A; Mon, 18 Dec 2023 13:50:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655975.1023894; Mon, 18 Dec 2023 13:50:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFE17-0004Dl-Ta; Mon, 18 Dec 2023 13:50:45 +0000
Received: by outflank-mailman (input) for mailman id 655975;
 Mon, 18 Dec 2023 13:50: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 1rFE16-0004AS-7R; Mon, 18 Dec 2023 13:50: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 1rFE15-0006al-Sh; Mon, 18 Dec 2023 13:50: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 1rFE15-0002BT-Bi; Mon, 18 Dec 2023 13:50:43 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFE15-00080P-BJ; Mon, 18 Dec 2023 13:50: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=SGTKDD4XFv6d35XlUt/45axde0wQkEQAjmKlQQq7eVY=; b=hyCRtFoTo7Jwbe2QBIK3S+V9jj
	AMab2haVBZatMtAHNwogMglVCHAiNcaxG22SGlSoH1SDPV6gDYuczYu9deV8dTCke24wr19vb49V8
	8AeSl/18qscYTCSDEoFpevNwz9L2nySj90dOnacLMuBROHFU03tdP4rtyH65Uv/hGqXU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184162-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184162: 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-libvirt-raw:saverestore-support-check:fail:nonblocking
    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-armhf-armhf-libvirt-qcow2: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-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: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-arm64-arm64-xl-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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-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-armhf-armhf-xl-rtds: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-amd64-amd64-libvirt-raw: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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=ceb6a6f023fd3e8b07761ed900352ef574010bcb
X-Osstest-Versions-That:
    linux=0e389834672c723435a44818ed2cabc4dad24429
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 18 Dec 2023 13:50:43 +0000

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

Failures :-/ but no regressions.

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

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail blocked in 184159
 test-armhf-armhf-libvirt 16 saverestore-support-check fail in 184166 like 184159
 test-armhf-armhf-libvirt    15 migrate-support-check fail in 184166 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184159
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184159
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184159
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184159
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184159
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184159
 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-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-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-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-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-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                ceb6a6f023fd3e8b07761ed900352ef574010bcb
baseline version:
 linux                0e389834672c723435a44818ed2cabc4dad24429

Last test of basis   184159  2023-12-17 17:42:14 Z    0 days
Testing same since   184162  2023-12-18 02:29:46 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Linus Torvalds <torvalds@linux-foundation.org>
  Mark Rutland <mark.rutland@arm.com>
  Peter Zijlstra (Intel) <peterz@infradead.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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   0e389834672c..ceb6a6f023fd  ceb6a6f023fd3e8b07761ed900352ef574010bcb -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 13:58:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 13:58:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655987.1023904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFE8E-0005el-PG; Mon, 18 Dec 2023 13:58:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655987.1023904; Mon, 18 Dec 2023 13:58: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 1rFE8E-0005ee-L6; Mon, 18 Dec 2023 13:58:06 +0000
Received: by outflank-mailman (input) for mailman id 655987;
 Mon, 18 Dec 2023 13:58: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFE8D-0005eX-Ki
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 13:58:05 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7631c74c-9dad-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 14:58:03 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40c48d7a7a7so29657465e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 05:58:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 s5-20020a05600c384500b0040b632f31d2sm43018361wmr.5.2023.12.18.05.58.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 05:58:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7631c74c-9dad-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702907883; x=1703512683; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GyQrSRSCGAFsbstRqubNv6AvRfxrPkij+L7T9YVmuG0=;
        b=b7cNMseBTHkirEZk5Llj/rD7PPhDeS9mJu5bLQfxk4TDraC41vTMca+ruUGyQ2LIlo
         Jb7Ddcz6xd4l7a5hzL5qQRmaKdbcfRVSzQ7jLYZ+vms6QZSiTxWqM28BavgB6P2eEAS9
         YCaW5InYHywgh0o+fKPgEdZYTJGTRbVkI6yszXc++UHqeBruS4m/i/VNgKygnhmCA6PN
         Aa5ejwXWtzcKYRY6fx5Bhqpy6pc3r7MwnffJc0ReoT0/gkwPLTdPCOnpCqbVO3FARGjw
         Hx1SQ2CDcHx54M7+egD7KyUfkkCX1l8X9ooZT64d2dYCg/mMsb3ZX4hTbKL0MXYRlsqh
         Ko9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702907883; x=1703512683;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=GyQrSRSCGAFsbstRqubNv6AvRfxrPkij+L7T9YVmuG0=;
        b=TxjNI3vAMTQQloU+/KijWC8cxXlGnrQS9utosDD+VeZV7wi0lzM450Xw0cz/HTDlC9
         KM+yB/qlF6l0Qca+QtXeRUUmwOQDca3MnkoaLvClcfJSMka35cA1v2u9Fgw7Hl6LuumN
         4GtLgG+YNQHehbI9IWaV7u4xKj2c1n3md4/fh8JPzYhBL7vObaLrMEbxYEam3Xbd10Mb
         rW+/pTMLgCu9d3zSrvuvwvSmrHp9HuHKmficxNKis8wWR7Yyizh+vusKAXt/ckLjFa08
         uOoLE35vU8ZlXeh8T1jBb33csLl3wPQJ3Rh2xCJ+SvR3PhrWlA/rsj9TLEqP6ShHweHW
         45Mw==
X-Gm-Message-State: AOJu0Yz+B0rS/CVBH4a6sOgg3qFTneRh37/k2wxBxy8a/WCfkIfkr8IO
	vSfMGOIRpKQWg+H7Zh8wK4f1
X-Google-Smtp-Source: AGHT+IH35fQbtMpq2sadzdVXv1VSc7lpdaBQdXgcyoyGnOh/M7Oc/uuzmnXDz2lA2Ip6ew3wQatrwA==
X-Received: by 2002:a05:600c:4c8a:b0:40c:d3a:2447 with SMTP id g10-20020a05600c4c8a00b0040c0d3a2447mr10062550wmp.87.1702907882841;
        Mon, 18 Dec 2023 05:58:02 -0800 (PST)
Message-ID: <c618b09d-c9eb-4f2b-81bb-18c486ba6ea2@suse.com>
Date: Mon, 18 Dec 2023 14:58:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] x86/spec-ctrl: defer context-switch IBPB until
 guest entry
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <83c2a504-bce4-d3e7-1d9a-76ac0ca17bab@suse.com> <ZYA9ap4dB5nnFCu3@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYA9ap4dB5nnFCu3@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 13:39, Roger Pau MonnÃ© wrote:
> On Tue, Feb 14, 2023 at 05:11:05PM +0100, Jan Beulich wrote:
>> In order to avoid clobbering Xen's own predictions, defer the barrier as
>> much as possible. Merely mark the CPU as needing a barrier issued the
>> next time we're exiting to guest context.
> 
> While I understand that doing the flush in the middle of the guest
> context might not be ideal, as it's my understanding we also

s/guest context/context switch/?

> needlessly flush Xen predictions, I'm unsure whether this makes any
> difference in practice, and IMO just makes the exit to guest paths
> more complex.

I need to redirect this question to Andrew, who suggested that doing so
can be expected to make a difference. When we were discussing this, I
could easily see it might make a difference, but I cannot provide hard
proof.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 13:59:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 13:59:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655989.1023913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFE9z-0006Uf-0G; Mon, 18 Dec 2023 13:59:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655989.1023913; Mon, 18 Dec 2023 13:59: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 1rFE9y-0006UY-Tx; Mon, 18 Dec 2023 13:59:54 +0000
Received: by outflank-mailman (input) for mailman id 655989;
 Mon, 18 Dec 2023 13:59: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFE9w-0006TG-W0
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 13:59:52 +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 b6b7ccf5-9dad-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 14:59:51 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3363aa1b7d2so2873729f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 05:59:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p16-20020a5d48d0000000b0033616ea5a0fsm23744085wrs.45.2023.12.18.05.54.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 05:54:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6b7ccf5-9dad-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702907991; x=1703512791; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kSJ+2g/yNCJ4GnMeWu8vmqbqESy46ofPlCqnat6qEq8=;
        b=DV/ZjTJqpCnUV8rJqxXrzuaAOXq4aNVEiuHgfU5YNFAcfiRICOJkgZX2ZaUjdr4UQe
         055Eo5sa/NbBz1I7pR8RkjWgwaIoZv5sYhCZ7mJnSZxEwNHiKX1eunHwcieAYzmtJT/D
         Huz1QhPh70aayYAhl4xYoQ9bZ5Ekm6HUkoRJzImBU65SRfsEUAQqbAbwDVP/2Ilb1NZ3
         LC9+0JfudkmvBw6JgTGj+GMwA1Nc2iOOTcQl7utjmrmXjIcTrZVCxvSTwzWJGxQyCu3+
         oFv+PaqdxCmHHcWeBdoBxbYEJ0fvBpeDfA2Hq8ey4teL3jF4xSUUrXbpnDvuPALNVGdN
         lGnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702907991; x=1703512791;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=kSJ+2g/yNCJ4GnMeWu8vmqbqESy46ofPlCqnat6qEq8=;
        b=M+akaYOtMFdUDJ83IdnkuYT0aH1lbd4M/qPYc6dEKzZJ4LYQXRmBhdWsCrsI0raoxF
         5BpsNDbigfc3yt/gzUU6ldhrCARpYz6dcCQaH5Wqao/jdr8uxtY8APPEK4SIF6Brnb3w
         ro1XI3+CC6252OTvWiJTRY830/buKk33QTuzfyrX61NT9hsAFSwm2qpRKdjtcJeCwV6a
         jNW6MrspkSc1IzUmEWU3+iQuy0AGpA2qeFjoVHE9jIrJSm3Xhikx/rjKw3HiCPe7tU9v
         nHAM5wpnaGUtRg93fvY4byh5cr0m0Fu3oIPwvd9dNDLHJO9gvtqGmvrgQRJmuE776RVI
         DXNA==
X-Gm-Message-State: AOJu0YwaXqMb9ht0Xqtsn2TyYSTuyp1jcVJWYWcbFjGmb8q5ByCbdqom
	WX31lrybjBkU4bftQV7V3/cYranyiXwF/+JsImS2
X-Google-Smtp-Source: AGHT+IEVvuPrFF6mW+vXa3B+FfNNW12GiFEKN3Id0l0oEpmd5gD+pW3fci0zfDE6aTeccVoZC56N1g==
X-Received: by 2002:adf:f383:0:b0:336:5d19:e73c with SMTP id m3-20020adff383000000b003365d19e73cmr1598390wro.200.1702907653748;
        Mon, 18 Dec 2023 05:54:13 -0800 (PST)
Message-ID: <f7cbd6a1-3367-41a0-b5df-7013dcfffc83@suse.com>
Date: Mon, 18 Dec 2023 14:54:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86/spec-ctrl: add logic to issue IBPB on exit to
 guest
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <31da79de-bd6b-af95-793a-c16516992bc7@suse.com> <ZYA3Db53Z3fvBlwn@macbook>
 <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 14:46, Jan Beulich wrote:
> On 18.12.2023 13:11, Roger Pau MonnÃ© wrote:
>> On Tue, Feb 14, 2023 at 05:10:42PM +0100, Jan Beulich wrote:
>>> ---
>>> I have to admit that I'm not really certain about the placement of the
>>> IBPB wrt the MSR_SPEC_CTRL writes. For now I've simply used "opposite of
>>> entry".
>>
>> Maybe it would easier to just add the MSR_PRED_CMD PRED_CMD_IBPB write
>> to the vmcs MSR load list?
>>
>> It's a one-time only AFAICT, as you would only want to do this for
>> context-switch AFAICT.
> 
> That would be a back and forth of adding and removing the MSR to/from
> that list then, which I'm not convinced is helpful. With these special
> MSRs I would further be uncertain as to their effect when used via one
> of these lists.

Plus (as only a secondary argument, but still) it would make PV and HVM
mechanisms entirely different.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:03:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:03:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.655996.1023923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFED7-00008F-I3; Mon, 18 Dec 2023 14:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 655996.1023923; Mon, 18 Dec 2023 14:03:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFED7-000083-FX; Mon, 18 Dec 2023 14:03:09 +0000
Received: by outflank-mailman (input) for mailman id 655996;
 Mon, 18 Dec 2023 14:03:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFED6-00007x-OH
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:03:08 +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 2af72cdc-9dae-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 15:03:06 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40d05ebe642so8754075e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:03:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bg22-20020a05600c3c9600b0040c6ab53cd2sm15492943wmb.10.2023.12.18.06.03.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:03:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2af72cdc-9dae-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702908186; x=1703512986; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ntiCil28lyRVJPkdss5XJyeHJxz3eEVttwAY37JVNGY=;
        b=SwNaiK0am1KqURVTLPgzsGS5Lo0eH2/ZLdH0mMFO5lVsa2lk4QhAVLPmg67XU/ty1J
         aKHzxePV0NgFPBgUw2eBs5ciFeje+wM7QGcIGA3yrlyAmSqJOJKquOypUV/5si6EmKWG
         ZevzsZR2pKX+il88H8/toTWhRL2cBaBckb3MAOW23x4XtPqbOPzv5NPy0gV33GEhkp8J
         4X97AXmhf3/+zHEcMK8ig6RMACSnK0TWsoOob2brOUoQo6UuVvUaUVM1WBab9xwo1tx3
         1HIGrO9oTK0UfRNr2b4VoIrUJlVC4lcWihnapDKlhd/WC6/jdZCw78m3xba4wS2ms5Mq
         MdIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702908186; x=1703512986;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ntiCil28lyRVJPkdss5XJyeHJxz3eEVttwAY37JVNGY=;
        b=fwq8kZoOk5PhE9RpH8SbQzsD7BzM6/hNg2TPKLcW78bSqg4K0eYOCDkZ+E3hua/zO1
         d2++lHprHchEi8ioG3mml43IUJvgHQwxgnrgdnRGzCoW6n9xinC9Wo3PgPfhUXU6tCfY
         PyG28FpDcMi8g6U8D4MpEKKr3GmDrWqM+TmbyqI0dF5YFDHVNVNCPa6Va1E4Xb46QOGW
         GrEQBE2vnivMMYyGlY3p3fm1S8v81kPuf7RUBRqMjm5AlKQ+WniLlGJpVbsVRNv9jtB1
         ligZU3pX401j0Mx0hCtBda326kpwYHZTppiVsI+fgOaBCaqdm4FC58YOsqIzvTKcTb0C
         X7Ow==
X-Gm-Message-State: AOJu0Yz2WnAFHLWkSb3PEepi/qm+rXbr+zQXPJ8zH7vatKFeqEV66SIp
	f92xNpUkgcIw08SYkYTSqOfq
X-Google-Smtp-Source: AGHT+IGTna0BCzeSRqTqSDXdZjpJqWI9i62p+/FBdAtztuUKchlgkRWaV57vqp/AZhmucQuu/fC+vw==
X-Received: by 2002:a05:600c:1c01:b0:40c:2ba2:8add with SMTP id j1-20020a05600c1c0100b0040c2ba28addmr7925084wms.117.1702908186182;
        Mon, 18 Dec 2023 06:03:06 -0800 (PST)
Message-ID: <ffa5a22a-36cf-4817-aae3-668d6ff181bf@suse.com>
Date: Mon, 18 Dec 2023 15:03:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 1/3] xen/x86: add missing instances of asmlinkage
 attributes
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1702285639.git.nicola.vetrini@bugseng.com>
 <2282f4b7ff0143f513f9677e0cca2d68c0f2a08c.1702285639.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312111748300.1703076@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312111748300.1703076@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2023 02:48, Stefano Stabellini wrote:
> On Mon, 11 Dec 2023, Nicola Vetrini wrote:
>> No functional change.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:13:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:13:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656001.1023934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEN0-00021x-IB; Mon, 18 Dec 2023 14:13:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656001.1023934; Mon, 18 Dec 2023 14: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 1rFEN0-00021q-Eu; Mon, 18 Dec 2023 14:13:22 +0000
Received: by outflank-mailman (input) for mailman id 656001;
 Mon, 18 Dec 2023 14:13:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f46f=H5=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFEMy-00021g-Sc
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:13:20 +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 97cc133c-9daf-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 15:13:18 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2cc3f5e7451so36667611fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:13:18 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 be36-20020a056512252400b005007e7211f7sm2942964lfb.21.2023.12.18.06.13.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 06:13:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97cc133c-9daf-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702908798; x=1703513598; 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=OEa0sbauuIhV+BjML8kJrtYIpYt0Ny7P0oxI+GJW2uM=;
        b=L9WvrEn6h4RAq8E4GE/gjJycJ7YWqTfmeFA8YPLgT7DVmH8K572rGq8z6aoCvWYxwc
         nZpduq8pd19jfWMvXw+45c5zxLAGdtRKZ4yUCfdgpAIEXh++bsMTTdCNyw+F+yRgei4E
         RnRqYokFI7uUaFmZ+ujt3ydx4en7NPf42BthCI21AlakvpsKKIITa4NxOH6mgikzf1WR
         o65U4XMR0EbL1F8Jibl/X6Rj1c2FnZ3NQFUdY7CC1iA+cPAsxknjcFHuxlG404C5WYTB
         VboH2af4WXf4Sa9b1rczaL/ke9MygyyvCpf8yIEk0cMi8qRYA0Zq6w9m6Oa8VrTgVK15
         pJhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702908798; x=1703513598;
        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=OEa0sbauuIhV+BjML8kJrtYIpYt0Ny7P0oxI+GJW2uM=;
        b=dmLrzJkNk7LnP1DbMffqUdljlKzQUX8obhapeMyDxKoUjKH9nxxjwJ0oksrJz7teRU
         XmLayJghwRl8f6st3zMFLYiNZXXaA7FC5NeBh1F3gRNMh2/6sA4TMJl+Ip0cfC+F/tG3
         lOSa3QXo7lUaKSIgL1ZEbZwx3h/oBJYMq15t1NLRrJWCgS6tjGYaWtM84aFKczg9QdLj
         EftzAqa+H9Bithtu5dJA4RAGuH5EH4TDIvb3dLwAK3/kcBa4pUQZ/szz1J0/FwBf1yF/
         BHqQO1vOs14//lYMpH4VdnjX4vyCvftuOtZ5t6ZHXXlan0y76Ah6Y7a+Dq0F7LgAsouO
         2Eqw==
X-Gm-Message-State: AOJu0YwkB1dOiFNKg8ymp8HHQaw7gd3ln0SHbjK+b4h28lqC5LP0WhMq
	xL3PAYbp8Fo5luqUkL6Yffg=
X-Google-Smtp-Source: AGHT+IE0pftetWrQgJFXJHFZABRwkm9P0cGpDxBJX53H5eh7O1gM4H1mCPM00NXbscOOIMdl9Lz+jw==
X-Received: by 2002:a05:6512:ad1:b0:50c:6b:f16b with SMTP id n17-20020a0565120ad100b0050c006bf16bmr10358439lfu.73.1702908797923;
        Mon, 18 Dec 2023 06:13:17 -0800 (PST)
Message-ID: <e84d108233562f1c7801a4c25742f6613703105e.camel@gmail.com>
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG
 for randconfig
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>,  Stefano Stabellini <sstabellini@kernel.org>
Cc: George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
  Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>, 
 xen-devel@lists.xenproject.org
Date: Mon, 18 Dec 2023 16:13:17 +0200
In-Reply-To: <7ec81395-298d-4d50-89af-d54f756ef657@suse.com>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>
	 <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
	 <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
	 <7ec81395-298d-4d50-89af-d54f756ef657@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-11 at 16:56 +0100, Jan Beulich wrote:
> On 07.12.2023 21:17, Andrew Cooper wrote:
> > On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
> > > ARCH_FIXED_CONFIG is required in the case of randconfig
> > > and CI for configs that aren't ready or are not
> > > supposed to be implemented for specific architecture.
> > > These configs should always be disabled to prevent randconfig
> > > related tests from failing.
> > >=20
> > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > ---
> > > =C2=A0xen/Makefile | 5 ++++-
> > > =C2=A01 file changed, 4 insertions(+), 1 deletion(-)
> > >=20
> > > diff --git a/xen/Makefile b/xen/Makefile
> > > index ca571103c8..8ae8fe1480 100644
> > > --- a/xen/Makefile
> > > +++ b/xen/Makefile
> > > @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
> > > =C2=A0# *config targets only - make sure prerequisites are updated,
> > > and descend
> > > =C2=A0# in tools/kconfig to make the *config target
> > > =C2=A0
> > > +ARCH_FORCED_CONFIG :=3D
> > > $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
> > > +
> > > =C2=A0# Create a file for KCONFIG_ALLCONFIG which depends on the
> > > environment.
> > > =C2=A0# This will be use by kconfig targets
> > > allyesconfig/allmodconfig/allnoconfig/randconfig
> > > =C2=A0filechk_kconfig_allconfig =3D \
> > > =C2=A0=C2=A0=C2=A0=C2=A0 $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)),=
 echo
> > > 'CONFIG_XSM_FLASK_POLICY=3Dn';) \
> > > -=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFI=
G);) \
> > > +=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFI=
G); \
> > > +=C2=A0=C2=A0=C2=A0 $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat
> > > $(ARCH_FORCED_CONFIG);) ) \
> > > =C2=A0=C2=A0=C2=A0=C2=A0 :
> > > =C2=A0
> > > =C2=A0.allconfig.tmp: FORCE
> >=20
> > We already have infrastructure for this.=C2=A0 What's wrong with
> > EXTRA_FIXED_RANDCONFIG?
>=20
> What I don't understand here is why dealing with the issue would want
> limiting to gitlab-CI. Anyone could run randconfig on their own, and
> imo it would be helpful if the same issue(s) could be prevented
> there,
> too. Hence my earlier suggestion to have a snippet which can be used
> by "interested" parties. And once dealt with in e.g. the makefile
> there should not be a need for any overrides in the CI config
> anymore.
I agree with Jan's point of view that having a more universal solution
for cases where it is necessary to disable a config for randconfig
would be beneficial.

Sometimes, I test randconfig locally, especially during the RISC-V Xen
full build patch series where numerous configs are disabled. It would
be convenient to have only one place to disable configs instead of
duplicating them in two different places.

Does anyone have any objections?

~ Oleksii
>=20
> > ---8<---
> >=20
> > CI: Revert "automation: Drop ppc64le-*randconfig jobs", fix
> > Randconfig
> > with existing infrastructure
> > =C2=A0=C2=A0 =C2=A0
> > This reverts commit cbb71b95dd708b1e26899bbe1e7bf9a85081fd60.
> >=20
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >=20
> > diff --git a/automation/gitlab-ci/build.yaml
> > b/automation/gitlab-ci/build.yaml
> > index 32af30ccedc9..346d0400ed09 100644
> > --- a/automation/gitlab-ci/build.yaml
> > +++ b/automation/gitlab-ci/build.yaml
> > @@ -538,6 +538,7 @@ archlinux-current-gcc-riscv64-randconfig:
> > =C2=A0=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> > =C2=A0=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG:
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> > =C2=A0
> > =C2=A0archlinux-current-gcc-riscv64-debug-randconfig:
> > =C2=A0=C2=A0 extends: .gcc-riscv64-cross-build-debug
> > @@ -547,6 +548,7 @@ archlinux-current-gcc-riscv64-debug-randconfig:
> > =C2=A0=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> > =C2=A0=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG:
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> > =C2=A0
> > =C2=A0# Power cross-build
> > =C2=A0debian-bullseye-gcc-ppc64le:
> > @@ -563,6 +565,26 @@ debian-bullseye-gcc-ppc64le-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-bullseye-gcc-ppc64le-randconfig:
> > +=C2=A0 extends: .gcc-ppc64le-cross-build
> > +=C2=A0 variables:
> > +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:bullseye-ppc64le
> > +=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: ppc64_defconfig
> > +=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> > +=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG:
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> > +
> > +debian-bullseye-gcc-ppc64le-debug-randconfig:
> > +=C2=A0 extends: .gcc-ppc64le-cross-build-debug
> > +=C2=A0 variables:
> > +=C2=A0=C2=A0=C2=A0 CONTAINER: debian:bullseye-ppc64le
> > +=C2=A0=C2=A0=C2=A0 KBUILD_DEFCONFIG: ppc64_defconfig
> > +=C2=A0=C2=A0=C2=A0 RANDCONFIG: y
> > +=C2=A0=C2=A0=C2=A0 EXTRA_FIXED_RANDCONFIG:
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_COVERAGE=3Dn
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_GRANT_TABLE=3Dn
> > +
> > =C2=A0# Yocto test jobs
> > =C2=A0yocto-qemuarm64:
> > =C2=A0=C2=A0 extends: .yocto-test-arm64
> >=20
>=20



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:19:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:19:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656004.1023943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFESq-0003EZ-5z; Mon, 18 Dec 2023 14:19:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656004.1023943; Mon, 18 Dec 2023 14:19:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFESq-0003ES-3A; Mon, 18 Dec 2023 14:19:24 +0000
Received: by outflank-mailman (input) for mailman id 656004;
 Mon, 18 Dec 2023 14:19: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=BN9V=H5=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rFESo-0003EM-7f
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:19:22 +0000
Received: from m202-219.mailgun.net (m202-219.mailgun.net [161.38.202.219])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 6ec17c20-9db0-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:19:20 +0100 (CET)
Received: from mg.gitlab.com (5.226.74.34.bc.googleusercontent.com
 [34.74.226.5]) by
 c72726e02947 with SMTP id 658054e3090757214fc989b7 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Mon, 18 Dec 2023 14:19:15 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 6ec17c20-9db0-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702909157; x=1702916357; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=64ygHKSCUUS3WAcRK735jbnI5cAcCAghe9QNaDcn5Vc=;
 b=opPDHpSwViy5ybw0WHQjldd6kc2A9Cp1ScATC+LFpV8jGM2fIusw8JLGSv0eaAUkKBE2FzIUi31Q0T1kBRG2DWDW2m6/NCDxEVoBcovD98pHn0WvND7VgM9AoaJH6IJkmXC01NbMduVAZAd/+XiTzi+sf8GHxB0jN+xAAeLoSXc=
X-Mailgun-Sending-Ip: 161.38.202.219
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Mon, 18 Dec 2023 14:19:15 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <658054e314b3f_2c22b63290595379@gitlab-sidekiq-catchall-v2-5b75896b6c-mv7c2.mail>
Subject: xen | Successful pipeline for staging-4.17 | 949a4aad
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_658054e32ecc_2c22b63290595286";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1111177680
X-GitLab-Pipeline-Ref: staging-4.17
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_658054e32ecc_2c22b63290595286
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1111177680 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging-4.17 ( https://gitlab.com/xen-project/xen/-/commits/staging-4.17 )

Commit: 949a4aad ( https://gitlab.com/xen-project/xen/-/commit/949a4aad417621638231e4cf9f1b35e8e0328463 )
Commit Message: update Xen version to 4.17.3

Commit Author: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1111177680 ( https://gitlab.com/xen-project/xen/-/pipelines/1111177680 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 84 jobs in 2 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging-4.17 | 949a4aad</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1111177680 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging-4.17" style=3D"color: #333333; text-decoration: none;">
staging-4.17
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/949a4aad4176216382=
31e4cf9f1b35e8e0328463" style=3D"color: #3777b0; text-decoration: none;">=
949a4aad</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
update Xen version to 4.17.3

</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111117=
7680" style=3D"color: #3777b0; text-decoration: none;">#1111177680</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 84 jobs in 2 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_658054e32ecc_2c22b63290595286--


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:28:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:28:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656042.1023954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEbN-0005rg-3l; Mon, 18 Dec 2023 14:28:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656042.1023954; Mon, 18 Dec 2023 14:28:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEbN-0005rZ-1F; Mon, 18 Dec 2023 14:28:13 +0000
Received: by outflank-mailman (input) for mailman id 656042;
 Mon, 18 Dec 2023 14:28: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=9FT9=H5=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFEbL-0005rT-Re
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:28:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab6ac118-9db1-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:28:10 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 48E354EE0742;
 Mon, 18 Dec 2023 15:28:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab6ac118-9db1-11ee-98eb-6d05b1d4d9a1
Message-ID: <2c4de29a-ec34-4261-bcd9-ee0db52ee09f@bugseng.com>
Date: Mon, 18 Dec 2023 15:28:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/9] xen: address violations of MISRA C:2012 Rule 11.8
To: Jan Beulich <jbeulich@suse.com>,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Cc: consulting@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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Shawn Anastasio <sanastasio@raptorengineering.com>,
 Doug Goldstein <cardoe@cardoe.com>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
 <3b3996fb-ec66-468e-8ee8-eb8e7648f59d@suse.com>
Content-Language: en-US
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <3b3996fb-ec66-468e-8ee8-eb8e7648f59d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 14/12/23 13:36, Jan Beulich wrote:
> On 14.12.2023 13:07, Simone Ballarin wrote:
>> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
>>
>> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
>> headline states:
>> "A conversion shall not remove any const, volatile or _Atomic
>> qualification from the type pointed to by a pointer".
>>
>> This patch amends or removes casts that unnecessarily drop
>> const and volatile qualifiers.
>>
>> Example:
>>
>>   static always_inline bool int_##name(volatile void *p)
>>   {
>>      volatile uint32_t *ptr = (uint32_t *)p;             /* Non-compliant */
>>      volatile uint32_t *ptr = (volatile uint32_t *)p;    /* Compliant, proposed change */
>>   }
> 
> Why would you further complicate things when here the cast can simply
> be dropped?
> 
> Jan

Of course, the example will be improved in v2.


-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:32:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:32:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656051.1023963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEfk-00080Y-LC; Mon, 18 Dec 2023 14:32:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656051.1023963; Mon, 18 Dec 2023 14: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 1rFEfk-00080R-Ii; Mon, 18 Dec 2023 14:32:44 +0000
Received: by outflank-mailman (input) for mailman id 656051;
 Mon, 18 Dec 2023 14: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=9FT9=H5=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFEfk-00080G-4Y
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:32:44 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4de7d172-9db2-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:32:43 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 964E14EE0742;
 Mon, 18 Dec 2023 15:32:42 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4de7d172-9db2-11ee-98eb-6d05b1d4d9a1
Message-ID: <d3e4a5ae-a57d-4101-ba8a-e3a2390d9072@bugseng.com>
Date: Mon, 18 Dec 2023 15:32:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/9] xen/efi: address violations of MISRA C:2012 Rule 11.8
To: Jan Beulich <jbeulich@suse.com>,
 Maria Celeste Cesario <maria.celeste.cesario@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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
 <4540a3850dae951dd6bc4f9b001c9816bde2e49e.1702555387.git.maria.celeste.cesario@bugseng.com>
 <61867b53-648f-4bb0-b430-aa5d343cb29a@suse.com>
Content-Language: en-US
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <61867b53-648f-4bb0-b430-aa5d343cb29a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 14/12/23 17:32, Jan Beulich wrote:
> On 14.12.2023 13:07, Simone Ballarin wrote:
>> --- a/xen/common/version.c
>> +++ b/xen/common/version.c
>> @@ -178,7 +178,7 @@ void __init xen_build_init(void)
>>       if ( &n[1] >= __note_gnu_build_id_end )
>>           return;
>>   
>> -    sz = (void *)__note_gnu_build_id_end - (void *)n;
>> +    sz = (const void *)__note_gnu_build_id_end - (const void *)n;
>>   
>>       rc = xen_build_id_check(n, sz, &build_id_p, &build_id_len);
>>   
> 
> How does this change fit the subject? I'm also inclined to ask that these
> casts be changed to unsigned long or uintptr_t.
> 
> For the actual EFI change:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Jan
> 

Ok, v2 will use uintptr_t.

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:33:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:33:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656054.1023973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEgl-0000Gc-Un; Mon, 18 Dec 2023 14:33:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656054.1023973; Mon, 18 Dec 2023 14:33: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 1rFEgl-0000GV-SA; Mon, 18 Dec 2023 14:33:47 +0000
Received: by outflank-mailman (input) for mailman id 656054;
 Mon, 18 Dec 2023 14:33: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=5+P8=H5=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1rFEgk-0000GP-OD
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:33:46 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20630.outbound.protection.outlook.com
 [2a01:111:f400:fe16::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 733aac07-9db2-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:33:46 +0100 (CET)
Received: from AS9PR06CA0060.eurprd06.prod.outlook.com (2603:10a6:20b:463::26)
 by AM8PR08MB6321.eurprd08.prod.outlook.com (2603:10a6:20b:366::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Mon, 18 Dec
 2023 14:33:38 +0000
Received: from AMS0EPF000001A3.eurprd05.prod.outlook.com
 (2603:10a6:20b:463:cafe::e) by AS9PR06CA0060.outlook.office365.com
 (2603:10a6:20b:463::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37 via Frontend
 Transport; Mon, 18 Dec 2023 14:33:38 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF000001A3.mail.protection.outlook.com (10.167.16.228) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7113.14 via Frontend Transport; Mon, 18 Dec 2023 14:33:38 +0000
Received: ("Tessian outbound 8289ea11ec17:v228");
 Mon, 18 Dec 2023 14:33:38 +0000
Received: from 183284e508fc.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 ADE8522C-6BA4-4B51-879D-86934EDBAD9A.1; 
 Mon, 18 Dec 2023 14:33:31 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 183284e508fc.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 18 Dec 2023 14:33:31 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25)
 by AS8PR08MB8419.eurprd08.prod.outlook.com (2603:10a6:20b:567::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Mon, 18 Dec
 2023 14:33:29 +0000
Received: from AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b]) by AM6PR08MB3784.eurprd08.prod.outlook.com
 ([fe80::a045:911e:2349:3d8b%6]) with mapi id 15.20.7091.034; Mon, 18 Dec 2023
 14:33:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 733aac07-9db2-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=ocGb9pjBkyq27ruxjv3QfafkOHvlgsojD+8feGZKKxBU9pDgsAZQySTdZBz6EgPUPgZFYXIBXEx2tODNhXBbXfiOFiNIy0qSUKFlq+P3B6zlwQV2zhfM+UHUV7CrJbzDpqTlbuhlnVy9VffwXs3hNbiCWMBS/m4WgomCF14gxdB96AgeoKw3Yr+WwMv//zRUJya7a+oGZDsG+6dlSRlXc1TTyOMHpmpiStIWddNeLGmkOGYe8Lq+XkJdxW7F4vplRnIOium95bi0vAlb3kQj5gdM/TOcYN2uVOSrjmcmHpTKs8zU+5OLevyDlvjQUBzDgsC1t5Cj2j9v+oxNUF3zGg==
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=x9pe6Hl54WbPgNk6+QV3VbAQCeGyfQ8IlUWB1oI+Ddg=;
 b=IYbDOLd4qyEiF8j2MFrQxds8TsOWcBYOiTNut0KtaqHkvmlcDksW3UjyqVGKPyhJajaGLIUVjxQ0GEYQBKo/BADeNEHupa+Uf0WxNIVvf/l614+YSHWK45KFl/q3XZp84IbPnQSeATMQB1wAARUXsmpR7FA1f49JW/820C9N5v78wpEzoZytqHG8/MUnqES+l5e03SWl9u/SFIClrR8jEYRVPvwGe/XY2HEl0Cg1Gwb0ABgB2kmIz3h1o72c3O22HPBAiwB3rDI5BMCYWDbKD4qacHOESm/l2A/D30FBKpGXNtsJCiSb/b5ud5vIB9LwWZgeuMJfCMYaiHQAfdO85w==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=x9pe6Hl54WbPgNk6+QV3VbAQCeGyfQ8IlUWB1oI+Ddg=;
 b=xf2MaemXa42Iyci9oHzyGxXbqooVunuMB+Gxim68W4ZkDhfz9BOMllkkh9x3a3wWid98HKkMkXnE/q8GUlncSBWx6IEa9VQKd3AisGmxhGjwuz1HDKde7bpU1ifBhKTIegsmnZElvcuQqg35O1MXMDW4ZkahgkuDjh3BgBwyAGU=
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=armh.onmicrosoft.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: fc6aba228f1fadad
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fcb4gzLZQjMM3vXwVsp4PmX1vfm7wPjXEkEFMrY2Mxmw1/JIQbCg/LShmf97WBN/wcNXkgXuSlbopLafubeiQk6kjf2zQk7fwNHy2XR8f858dgOuYSHnfph+JmUKIdhDJ2IXHx8rF9FAruyPaDcv3JMy0m7G0GwBe2JqFPn8MUKevX91Raye/jfNKHxojlXsMgLXOV8nS+YKH0s5bdDWXwOAVMqc4jUdAlapNkBub5Me+QwYmEx8aomds7tb5L311GBcfnzzUdSbwUPbVq4nLytcofD/h+LIqbk614MjMsgNN8ndMWPiaqgiUJ4q39GAUY0TPRzWhUuI1LiISTKyow==
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=x9pe6Hl54WbPgNk6+QV3VbAQCeGyfQ8IlUWB1oI+Ddg=;
 b=J23TM9YDQ6ooHPGFfGXH4jo0vF7immXVYtMwtq1wHmj1Am0zX1OoqyQkdwIJ0uOD1PiSaDspBk4PF2bAmM3BQiUns0aJlO1quFONhdhb0pnZltBuinB+AUdDrygmgLa/SEXWeo8zWsmOJTwogJ82szqaoXvCaX+uLWiwN/QBVnT3Hz7zn5IkFPkYG+1fBGPL7BPKLaiy8Fzo8EoBo0KGFAYnX303VNjpWIoVDkDn5ViDtjuz+c+cYALi6LNqMXVkUBv08oCYh1plsmoQf6jTLhQzSpo+12dhJOClDnkwYgvXAwwnI1EWaliCXvmM/H4eR/Y5O2iGmrSLp1V51RM8vg==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=x9pe6Hl54WbPgNk6+QV3VbAQCeGyfQ8IlUWB1oI+Ddg=;
 b=xf2MaemXa42Iyci9oHzyGxXbqooVunuMB+Gxim68W4ZkDhfz9BOMllkkh9x3a3wWid98HKkMkXnE/q8GUlncSBWx6IEa9VQKd3AisGmxhGjwuz1HDKde7bpU1ifBhKTIegsmnZElvcuQqg35O1MXMDW4ZkahgkuDjh3BgBwyAGU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, "patches@linaro.org"
	<patches@linaro.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Subject: Re: [XEN PATCH] xen/arm: ffa: return fpi size from
 FFA_PARTITION_INFO_GET
Thread-Topic: [XEN PATCH] xen/arm: ffa: return fpi size from
 FFA_PARTITION_INFO_GET
Thread-Index: AQHaLa+UlQwUyLuLjkSJPyDwSlt2/7CvIukA
Date: Mon, 18 Dec 2023 14:33:29 +0000
Message-ID: <62A3B41A-0362-411A-89D3-64787DDC1AE1@arm.com>
References: <20231213103135.2346238-1-jens.wiklander@linaro.org>
In-Reply-To: <20231213103135.2346238-1-jens.wiklander@linaro.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3784:EE_|AS8PR08MB8419:EE_|AMS0EPF000001A3:EE_|AM8PR08MB6321:EE_
X-MS-Office365-Filtering-Correlation-Id: ca9730e8-612d-4545-be80-08dbffd65332
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 jUxcibUwJ3mWOkPP3eAYE2bBX/1v1McMxh0qSPGyAewPwczBbEZoWTwD8pVtB9HPfW55rIU/pkehcdT2DAI+xEK2wRjXj3RhtgaNP1gE5ChPZ40ykfsqDrvxN4YMyE1IiYvFHc1uAPAPl7VmbXfsRswRqYkIkik/RrxWtPzLZM96dz/YkNhfvcAN74b5vFke4MNR/g3DAxEcLDmwk8bxlPYTXFk4V3QHSoMxZ9KNpLq2xHjKfDMj+gPMdxKt/mLvds56MdJfkhxz50N1ccq5qBCqcmiqjf2dnX93flthnAjfziVgfy0gEpz5BanpZLz1n7ucglNYspzj2ob4DuZnbcj+fwxMMjwy0M7rVNWAMQKhM6R9zrkIBSldxLyli4L8pSeoBesHWhtkVTtjgH5j/S3NuVBdvJhgBZm4UN7CrEwxVdY5SXwcdLrz2R3pqqunRAqFYY+fvqJ9ELOKkIJClTBIjb1HxNuz6Pv+NbwG/EozOBwjOPHYO6Jm+TuOK+b43kFcd8ejiX3gvSStRXJiUg2He4UYgn31oDWADU4b0oYcjwx00i/atriiiVL/Hbi5ts9GB5V/DcbXhEtcrbm0peI1YUWBBAfqXzLC30Bp7JcY5xM35nynd1p3uPgy5d4PqoSxxK6QVMs4xpHZfMcQHQ==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(39860400002)(136003)(366004)(376002)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(66946007)(64756008)(41300700001)(54906003)(316002)(71200400001)(76116006)(66476007)(66556008)(6512007)(6506007)(66446008)(2906002)(8936002)(38100700002)(6486002)(86362001)(2616005)(478600001)(91956017)(6916009)(53546011)(8676002)(122000001)(4326008)(33656002)(36756003)(83380400001)(38070700009)(5660300002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <05DDB21F971C8D429F828EB2102744D2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8419
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:
 AMS0EPF000001A3.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3ff1c6e8-8b67-40f1-8963-08dbffd64d83
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	esb3XnSDwejO5dhImhmvaXVr2VZu/A8i+ZQx6c7Glgw65Y/haGQ9/7rJPIE9b9yfWiL34jZPuPW9ED0Mjf8up+ttHbpO2SJfdzJxvIhE9lt+Q4ojOQNgDN+bv1bB0PoaonnbSKbTj78LEx06FAGSMkJdqMgfs3MaQzwaLy1l+MXxCboHhBjT1ggsdieHxPJNhkl2NkMJdEfWiTzd7ZX1MoYretaYGI4/7LYxiBdvwiC+fJijmoBqWowPCMtAPosIzOgekzfg/bDmIVx0OYEnP3fiDs8IM4gDbYyvqwiA+t/mtb8vAyFTtkm/f+IEtW1K2TmV2hu+CGt6fEV9xissl3XFWA1iepMaIrRUEtrNXPqSrrzWZwgfosM77RdxZ8mHsOEokw4vGmOYXPobZnzMFYo4Rule7C0fuHKql3vQfg/rEKT9R5hU0K5lyjGA8wC/aFo5P2OqMG3a4r5Xa6cMYSdHobL5664po6ZTJ/L4mC+Dw/8rVTRbbWTzK6PGVLD9LPiqb/LeyBfkqzlVr3XYdzc7MXcl7QO9YwExRstbXYdFHe9VZl+yDk5bGYtygo1Vy+E0HU3X3GAYFkZIJP/9cw+qi3pirBcJDbn8YwX7QO7hyz+Yh+s0DSdi50vdjhm7xcHrJvva8d04O7fAmvLV8Og2c2Ya9RhplleN3z6atejmU4MeJnPRBH1Q3RJicW3GPtQjAkUtLZD2FNcBWlasJrqP4uIw7XdNlJjnjCBah9ZBDxTUOA0QRDNCUBSRwE8B
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:(13230031)(4636009)(39860400002)(396003)(376002)(136003)(346002)(230922051799003)(1800799012)(451199024)(186009)(82310400011)(64100799003)(40470700004)(46966006)(36840700001)(5660300002)(82740400003)(6862004)(8676002)(8936002)(41300700001)(4326008)(53546011)(36756003)(356005)(47076005)(86362001)(6506007)(36860700001)(40480700001)(81166007)(70586007)(54906003)(316002)(70206006)(2906002)(33656002)(83380400001)(40460700003)(336012)(26005)(2616005)(6512007)(478600001)(6486002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2023 14:33:38.6194
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ca9730e8-612d-4545-be80-08dbffd65332
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:
	AMS0EPF000001A3.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6321

Hi Jens,

> On 13 Dec 2023, at 11:31, Jens Wiklander <jens.wiklander@linaro.org> wrot=
e:
>=20
> Until now has FFA_PARTITION_INFO_GET always returned zero in w3, but
> FF-A v1.1 requires FFA_PARTITION_INFO_GET to return the size of each
> partition information descriptor returned if
> FFA_PARTITION_INFO_GET_COUNT_FLAG isn't set.
>=20

Good finding.

> The SPMC queried with FFA_PARTITION_INFO_GET must also return the each
> partition information descriptor returned so fix this by passing along
> the same value.
>=20
> Fixes: caf6491e95a9 ("xen/arm: ffa: support guest FFA_PARTITION_INFO_GET"=
)
> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>

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

Cheers
Bertrand

> ---
> xen/arch/arm/tee/ffa.c | 21 +++++++++++++--------
> 1 file changed, 13 insertions(+), 8 deletions(-)
>=20
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 183528d13388..1d4e0a083006 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -514,7 +514,7 @@ static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t =
rx_addr,
>=20
> static int32_t ffa_partition_info_get(uint32_t w1, uint32_t w2, uint32_t =
w3,
>                                       uint32_t w4, uint32_t w5,
> -                                      uint32_t *count)
> +                                      uint32_t *count, uint32_t *fpi_siz=
e)
> {
>     const struct arm_smccc_1_2_regs arg =3D {
>         .a0 =3D FFA_PARTITION_INFO_GET,
> @@ -531,7 +531,10 @@ static int32_t ffa_partition_info_get(uint32_t w1, u=
int32_t w2, uint32_t w3,
>=20
>     ret =3D get_ffa_ret_code(&resp);
>     if ( !ret )
> +    {
>         *count =3D resp.a2;
> +        *fpi_size =3D resp.a3;
> +    }
>=20
>     return ret;
> }
> @@ -784,7 +787,7 @@ static uint32_t handle_rxtx_unmap(void)
>=20
> static int32_t handle_partition_info_get(uint32_t w1, uint32_t w2, uint32=
_t w3,
>                                          uint32_t w4, uint32_t w5,
> -                                         uint32_t *count)
> +                                         uint32_t *count, uint32_t *fpi_=
size)
> {
>     int32_t ret =3D FFA_RET_DENIED;
>     struct domain *d =3D current->domain;
> @@ -799,7 +802,7 @@ static int32_t handle_partition_info_get(uint32_t w1,=
 uint32_t w2, uint32_t w3,
>      */
>     if ( w5 =3D=3D FFA_PARTITION_INFO_GET_COUNT_FLAG &&
>          ctx->guest_vers =3D=3D FFA_VERSION_1_1 )
> -        return ffa_partition_info_get(w1, w2, w3, w4, w5, count);
> +        return ffa_partition_info_get(w1, w2, w3, w4, w5, count, fpi_siz=
e);
>     if ( w5 )
>         return FFA_RET_INVALID_PARAMETERS;
>=20
> @@ -812,7 +815,7 @@ static int32_t handle_partition_info_get(uint32_t w1,=
 uint32_t w2, uint32_t w3,
>     if ( !ctx->page_count || !ctx->rx_is_free )
>         goto out;
>     spin_lock(&ffa_rx_buffer_lock);
> -    ret =3D ffa_partition_info_get(w1, w2, w3, w4, w5, count);
> +    ret =3D ffa_partition_info_get(w1, w2, w3, w4, w5, count, fpi_size);
>     if ( ret )
>         goto out_rx_buf_unlock;
>     /*
> @@ -842,7 +845,7 @@ static int32_t handle_partition_info_get(uint32_t w1,=
 uint32_t w2, uint32_t w3,
>     }
>     else
>     {
> -        size_t sz =3D *count * sizeof(struct ffa_partition_info_1_1);
> +        size_t sz =3D *count * *fpi_size;
>=20
>         if ( ctx->page_count * FFA_PAGE_SIZE < sz )
>         {
> @@ -1409,6 +1412,7 @@ static bool ffa_handle_call(struct cpu_user_regs *r=
egs)
>     uint32_t fid =3D get_user_reg(regs, 0);
>     struct domain *d =3D current->domain;
>     struct ffa_ctx *ctx =3D d->arch.tee;
> +    uint32_t fpi_size;
>     uint32_t count;
>     int e;
>=20
> @@ -1444,11 +1448,11 @@ static bool ffa_handle_call(struct cpu_user_regs =
*regs)
>                                       get_user_reg(regs, 2),
>                                       get_user_reg(regs, 3),
>                                       get_user_reg(regs, 4),
> -                                      get_user_reg(regs, 5), &count);
> +                                      get_user_reg(regs, 5), &count, &fp=
i_size);
>         if ( e )
>             set_regs_error(regs, e);
>         else
> -            set_regs_success(regs, count, 0);
> +            set_regs_success(regs, count, fpi_size);
>         return true;
>     case FFA_RX_RELEASE:
>         e =3D handle_rx_release();
> @@ -1629,10 +1633,11 @@ static bool init_subscribers(struct ffa_partition=
_info_1_1 *fpi, uint16_t count)
> static bool init_sps(void)
> {
>     bool ret =3D false;
> +    uint32_t fpi_size;
>     uint32_t count;
>     int e;
>=20
> -    e =3D ffa_partition_info_get(0, 0, 0, 0, 0, &count);
> +    e =3D ffa_partition_info_get(0, 0, 0, 0, 0, &count, &fpi_size);
>     if ( e )
>     {
>         printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
> --=20
> 2.34.1
>=20



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:37:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:37:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656058.1023984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEkb-0000ud-Ey; Mon, 18 Dec 2023 14:37:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656058.1023984; Mon, 18 Dec 2023 14: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 1rFEkb-0000uW-Bv; Mon, 18 Dec 2023 14:37:45 +0000
Received: by outflank-mailman (input) for mailman id 656058;
 Mon, 18 Dec 2023 14:37:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEka-0000uQ-1r
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:37:44 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ffddea13-9db2-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 15:37:41 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c3fe6c08fso36104855e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:37:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c17-20020a05600c0a5100b0040b4fca8620sm45283539wmq.37.2023.12.18.06.37.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:37:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffddea13-9db2-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910261; x=1703515061; 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=6BOCyboTJUyTx5eGqSPVb5AwGu5hDn9koJAC1IHPpVo=;
        b=IfRi+XxNhg/Pxl1vuQCGXyA/HYKRwkdOdHG5Yk+uAepoBKUwyyOaUuH7ZPJdXqGC9I
         xYfof/u/xLwAWBJ2wKSw84fUWrXxOcO3M+GYOddmHe6vdwti8lHWa1HKudoKqwgAxEs7
         uMyrYyyrsU44bSL9s8sXwEWfwE+75ZPiD9QDJ/j9U0m/ACz6O2oDA+nD20imrsHEqZbu
         l87p6uVunI2y6qXdxBBa3VzuZ8K/IZSVIpSeuDfdMLm5aKioPIyMS1twYIK3xi7g8TEm
         k7zABlB8EY70IcCaTQ9cvC+2S/PBcLbN/gtRoxZMSRRHHFKAWuFTA1nZdy2XYodt/+g0
         eKgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910261; x=1703515061;
        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=6BOCyboTJUyTx5eGqSPVb5AwGu5hDn9koJAC1IHPpVo=;
        b=EQb4Zltey5P0OQ4merudjK8lf1xlamfewwhS1M6pWk1gmj9ASBjRrkaKY3jIR27N29
         swLbGm2uFveIrdxkD5ncNNr7enxDrEnqBbfuKT10qSHtXu3ck7WgGZg/etw9mIBJ3DV/
         v0xb1AW5iyZadVVegER+BqVzaAnprHjtgvaVlxd8bTNZtneqf2US8zsG53IAfzDa+G/V
         rURrZiN3INZRQ2i04VHrtlQ+51qSY1b6RdWEm4nSmVcM0otDB+w7Gb2Z4wLEF0aNBmdN
         6Fuiuxvao678hr4HY5/06CU/jVl4dwoFyvnmEaFZHeUNOdDyF3ya1SySumPsixln+bP2
         PdNA==
X-Gm-Message-State: AOJu0Yxjq571UZpcn/ubjwKbmmKE9r949hRS/0BI+abdnoaP5yaogU3j
	xoBU15fDOaHALcZNy7q7eQIjEczaO2OTqAcAbefA
X-Google-Smtp-Source: AGHT+IE2bImCpdhhJ3RQKbpIM51mgYn8gCvOo+FBg8/GDb1cIvMC6IX5LMsOUWKhLIeQQsZdLJTHHw==
X-Received: by 2002:a7b:c44b:0:b0:40b:5f5b:758a with SMTP id l11-20020a7bc44b000000b0040b5f5b758amr5453781wmi.145.1702910261314;
        Mon, 18 Dec 2023 06:37:41 -0800 (PST)
Message-ID: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Date: Mon, 18 Dec 2023 15:37:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v4 0/5] x86/HVM: load state checking
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

With the request to convert bounding to actual refusal, and then
doing so in new hooks, the two previously separate patches now need
to be in a series, with infrastructure work done first. Clearly the
checking in other load handlers could (and likely wants to be) moved
to separate check handlers as well - one example of doing so is
added anew in v4, the rest will want doing down the road.

1: HVM: split restore state checking from state loading
2: HVM: adjust save/restore hook registration for optional check handler
3: vPIT: check values loaded from state save record
4: vPIC: check values loaded from state save record
5: vIRQ: split PCI link load state checking from actual loading

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:40:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656062.1023993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEmn-0001hj-1b; Mon, 18 Dec 2023 14:40:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656062.1023993; Mon, 18 Dec 2023 14:40: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 1rFEmm-0001hc-UH; Mon, 18 Dec 2023 14:40:00 +0000
Received: by outflank-mailman (input) for mailman id 656062;
 Mon, 18 Dec 2023 14:39:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEml-0001hV-BS
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:39:59 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 504a794c-9db3-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 15:39:56 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c580ba223so39062195e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:39:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v9-20020a05600c470900b0040c4acaa4bfsm31329915wmo.19.2023.12.18.06.39.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:39:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 504a794c-9db3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910396; x=1703515196; 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=Lh1hl9sCcsQ2pc/dsi+OGUNJGqlfdDZuQfx1cyY8ztI=;
        b=dJu4DqehkFmfTtyrrANOa130oxlVefZStc6cpJB7gW/bsepqkRijK6NqYLCaRHS9Wj
         B172F0A0qZLe01VqRUXTE0aT3w9dPqv1geNeps3AkUYZjzVPR6SopnlwxRqWx+6wi4ar
         AATC0oshXaO2Ll/0DeVe7ZoJNPQ6i5AWYpjD/Gm5ovGNfgR5kFYzL7K4cKv38Qugskoy
         MwaRWKmtmek4vfLXlAXgMlDp6IBz+G6j2PhI84O9aXI6Odzcv8y/Nh3XrZncZS0y9qA+
         QElfHg903KOmRmPh23/Z4yraHkwkgMLOmfWAkCRbMRmbiK9x5EmXOcyyWp5txVjB4EV4
         PwIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910396; x=1703515196;
        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=Lh1hl9sCcsQ2pc/dsi+OGUNJGqlfdDZuQfx1cyY8ztI=;
        b=ICTAfwYX148f0AV70D2hYWxgbjcfT6W43pLWWAYRl2fWtD2UYrbOJ6Su8HWm4JtdDq
         Vz70haLrYbCA4nYLkQ5LDomoptt4Rs2zz3jemUqr1lXvrmnMHKRCIP3bcjRx93uIcYHO
         /X+x1oBNnnsZsKtxgwHxnebQ8578C2F7hnXsdp8wNjjfguyqEv0R0vNsB1niU30tclB9
         8th6Eibz+jRsgz+7Gd2r0KVSHvT+y8RB55dufaH5Aa6roXut6ur9A3VfNqc22XeVspva
         Yd8tovfO47ejD3ULPmMLo3jWl29ZrxQYyyIehGQfReUxRHkuvM04i2o2Ty/5cgqn3Sh/
         P23A==
X-Gm-Message-State: AOJu0YxEawBIPlrsLyV50zyWBn9vrpX8wYLEFOmvIfUFhVpo1euG/seD
	NaS/KseXzkPnp2wcHFXqXmaHJdDletrh0aIgu5ms
X-Google-Smtp-Source: AGHT+IHVZs15/+OWblOreD2gWeNcEqRPITzOD3Nw9dnkYmZw3AoRm9ZBHpc1U0YnS53rESzeLQLXew==
X-Received: by 2002:a05:600c:4f56:b0:40c:6a42:c60b with SMTP id m22-20020a05600c4f5600b0040c6a42c60bmr3386796wmq.187.1702910396284;
        Mon, 18 Dec 2023 06:39:56 -0800 (PST)
Message-ID: <05e69eea-79cc-4b3c-861b-855fa67c878a@suse.com>
Date: Mon, 18 Dec 2023 15:39:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 1/5] x86/HVM: split restore state checking from state
 loading
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <1e855575-8c0f-4222-80ba-e64305ea714b@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: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

..., at least as reasonably feasible without making a check hook
mandatory (in particular strict vs relaxed/zero-extend length checking
can't be done early this way).

Note that only one of the two uses of "real" hvm_load() is accompanied
with a "checking" one. The other directly consumes hvm_save() output,
which ought to be well-formed. This means that while input data related
checks don't need repeating in the "load" function when already done by
the "check" one (albeit assertions to this effect may be desirable),
domain state related checks (e.g. has_xyz(d)) will be required in both
places.

Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Now that this re-arranges hvm_load() anyway, wouldn't it be better to
down the vCPU-s ahead of calling arch_hvm_load() (which is now easy to
arrange for)?

Do we really need all the copying involved in use of _hvm_read_entry()
(backing hvm_load_entry()? Zero-extending loads are likely easier to
handle that way, but for strict loads all we gain is a reduced risk of
unaligned accesses (compared to simply pointing into h->data[]).
---
v4: Fold hvm_check() into hvm_load().
v2: New.

--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -379,8 +379,12 @@ long arch_do_domctl(
         if ( copy_from_guest(c.data, domctl->u.hvmcontext.buffer, c.size) != 0 )
             goto sethvmcontext_out;
 
+        ret = hvm_load(d, false, &c);
+        if ( ret )
+            goto sethvmcontext_out;
+
         domain_pause(d);
-        ret = hvm_load(d, &c);
+        ret = hvm_load(d, true, &c);
         domain_unpause(d);
 
     sethvmcontext_out:
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5397,7 +5397,7 @@ int hvm_copy_context_and_params(struct d
     }
 
     c.cur = 0;
-    rc = hvm_load(dst, &c);
+    rc = hvm_load(dst, true, &c);
 
  out:
     vfree(c.data);
--- a/xen/arch/x86/hvm/save.c
+++ b/xen/arch/x86/hvm/save.c
@@ -30,7 +30,8 @@ static void arch_hvm_save(struct domain
     d->arch.hvm.sync_tsc = rdtsc();
 }
 
-static int arch_hvm_load(struct domain *d, const struct hvm_save_header *hdr)
+static int arch_hvm_check(const struct domain *d,
+                          const struct hvm_save_header *hdr)
 {
     uint32_t eax, ebx, ecx, edx;
 
@@ -55,6 +56,11 @@ static int arch_hvm_load(struct domain *
                "(%#"PRIx32") and restored on another (%#"PRIx32").\n",
                d->domain_id, hdr->cpuid, eax);
 
+    return 0;
+}
+
+static void arch_hvm_load(struct domain *d, const struct hvm_save_header *hdr)
+{
     /* Restore guest's preferred TSC frequency. */
     if ( hdr->gtsc_khz )
         d->arch.tsc_khz = hdr->gtsc_khz;
@@ -66,13 +72,12 @@ static int arch_hvm_load(struct domain *
 
     /* VGA state is not saved/restored, so we nobble the cache. */
     d->arch.hvm.stdvga.cache = STDVGA_CACHE_DISABLED;
-
-    return 0;
 }
 
 /* List of handlers for various HVM save and restore types */
 static struct {
     hvm_save_handler save;
+    hvm_check_handler check;
     hvm_load_handler load;
     const char *name;
     size_t size;
@@ -88,6 +93,7 @@ void __init hvm_register_savevm(uint16_t
 {
     ASSERT(typecode <= HVM_SAVE_CODE_MAX);
     ASSERT(hvm_sr_handlers[typecode].save == NULL);
+    ASSERT(hvm_sr_handlers[typecode].check == NULL);
     ASSERT(hvm_sr_handlers[typecode].load == NULL);
     hvm_sr_handlers[typecode].save = save_state;
     hvm_sr_handlers[typecode].load = load_state;
@@ -275,12 +281,10 @@ int hvm_save(struct domain *d, hvm_domai
     return 0;
 }
 
-int hvm_load(struct domain *d, hvm_domain_context_t *h)
+int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h)
 {
     const struct hvm_save_header *hdr;
     struct hvm_save_descriptor *desc;
-    hvm_load_handler handler;
-    struct vcpu *v;
     int rc;
 
     if ( d->is_dying )
@@ -291,50 +295,91 @@ int hvm_load(struct domain *d, hvm_domai
     if ( !hdr )
         return -ENODATA;
 
-    rc = arch_hvm_load(d, hdr);
-    if ( rc )
-        return rc;
+    rc = arch_hvm_check(d, hdr);
+    if ( real )
+    {
+        struct vcpu *v;
+
+        ASSERT(!rc);
+        arch_hvm_load(d, hdr);
 
-    /* Down all the vcpus: we only re-enable the ones that had state saved. */
-    for_each_vcpu(d, v)
-        if ( !test_and_set_bit(_VPF_down, &v->pause_flags) )
-            vcpu_sleep_nosync(v);
+        /*
+         * Down all the vcpus: we only re-enable the ones that had state
+         * saved.
+         */
+        for_each_vcpu(d, v)
+            if ( !test_and_set_bit(_VPF_down, &v->pause_flags) )
+                vcpu_sleep_nosync(v);
+    }
+    else if ( rc )
+        return rc;
 
     for ( ; ; )
     {
+        const char *name;
+        hvm_load_handler load;
+
         if ( h->size - h->cur < sizeof(struct hvm_save_descriptor) )
         {
             /* Run out of data */
             printk(XENLOG_G_ERR
                    "HVM%d restore: save did not end with a null entry\n",
                    d->domain_id);
+            ASSERT(!real);
             return -ENODATA;
         }
 
         /* Read the typecode of the next entry  and check for the end-marker */
         desc = (struct hvm_save_descriptor *)(&h->data[h->cur]);
-        if ( desc->typecode == 0 )
+        if ( desc->typecode == HVM_SAVE_CODE(END) )
+        {
+            /* Reset cursor for hvm_load(, true, ). */
+            if ( !real )
+                h->cur = 0;
             return 0;
+        }
 
         /* Find the handler for this entry */
-        if ( (desc->typecode > HVM_SAVE_CODE_MAX) ||
-             ((handler = hvm_sr_handlers[desc->typecode].load) == NULL) )
+        if ( desc->typecode >= ARRAY_SIZE(hvm_sr_handlers) ||
+             !(name = hvm_sr_handlers[desc->typecode].name) ||
+             !(load = hvm_sr_handlers[desc->typecode].load) )
         {
             printk(XENLOG_G_ERR "HVM%d restore: unknown entry typecode %u\n",
                    d->domain_id, desc->typecode);
+            ASSERT(!real);
             return -EINVAL;
         }
 
-        /* Load the entry */
-        printk(XENLOG_G_INFO "HVM%d restore: %s %"PRIu16"\n", d->domain_id,
-               hvm_sr_handlers[desc->typecode].name, desc->instance);
-        rc = handler(d, h);
+        if ( real )
+        {
+            /* Load the entry */
+            printk(XENLOG_G_INFO "HVM restore %pd: %s %"PRIu16"\n", d,
+                   name, desc->instance);
+            rc = load(d, h);
+        }
+        else
+        {
+            /* Check the entry. */
+            hvm_check_handler check = hvm_sr_handlers[desc->typecode].check;
+
+            if ( !check )
+            {
+                if ( desc->length > h->size - h->cur - sizeof(*desc) )
+                    return -ENODATA;
+                h->cur += sizeof(*desc) + desc->length;
+                rc = 0;
+            }
+            else
+                rc = check(d, h);
+        }
+
         if ( rc )
         {
-            printk(XENLOG_G_ERR "HVM%d restore: failed to load entry %u/%u rc %d\n",
-                   d->domain_id, desc->typecode, desc->instance, rc);
+            printk(XENLOG_G_ERR "HVM restore %pd: failed to %s %s:%u rc %d\n",
+                   d, real ? "load" : "check", name, desc->instance, rc);
             return rc;
         }
+
         process_pending_softirqs();
     }
 
--- a/xen/arch/x86/include/asm/hvm/save.h
+++ b/xen/arch/x86/include/asm/hvm/save.h
@@ -103,6 +103,8 @@ static inline unsigned int hvm_load_inst
  * restoring.  Both return non-zero on error. */
 typedef int (*hvm_save_handler) (struct vcpu *v,
                                  hvm_domain_context_t *h);
+typedef int (*hvm_check_handler)(const struct domain *d,
+                                 hvm_domain_context_t *h);
 typedef int (*hvm_load_handler) (struct domain *d,
                                  hvm_domain_context_t *h);
 
@@ -140,6 +142,6 @@ size_t hvm_save_size(struct domain *d);
 int hvm_save(struct domain *d, hvm_domain_context_t *h);
 int hvm_save_one(struct domain *d, unsigned int typecode, unsigned int instance,
                  XEN_GUEST_HANDLE_64(uint8) handle, uint64_t *bufsz);
-int hvm_load(struct domain *d, hvm_domain_context_t *h);
+int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h);
 
 #endif /* __XEN_HVM_SAVE_H__ */



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:40:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656063.1024004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEn6-0002v3-Ay; Mon, 18 Dec 2023 14:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656063.1024004; Mon, 18 Dec 2023 14:40:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEn6-0002us-7X; Mon, 18 Dec 2023 14:40:20 +0000
Received: by outflank-mailman (input) for mailman id 656063;
 Mon, 18 Dec 2023 14:40: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEn4-0001hV-Kv
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:40:18 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5bfc2054-9db3-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 15:40:16 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c31f18274so39447275e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:40:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v9-20020a05600c470900b0040c4acaa4bfsm31329915wmo.19.2023.12.18.06.40.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:40:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bfc2054-9db3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910416; x=1703515216; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4DiAqokvVXPd3MpiYleSixbq9Tt+MTQdnErWjsgoNBk=;
        b=Fy1I60LwA5NUhDj+BRYKoXo+Y1L6EeLzM57ehmrzrR5exZWfakOfuy2FDPVmuyamVh
         PCS3ZjH8DK6RLluIXVmefpTT2Y1GlbwtfVG654Z7AS+HHf4XPNOrTJyF35qa5ppsDel4
         WHa8PfR2YCfw80EKJDkei6ud4rJ/YzGG1JyYou0o2Opt8bkX2GmKG3HgXol6QTKb8Eix
         KSlBi/4craO4PllucAkc+6h7IDM3k0cQSLktvpZXlJB4DIpsAojA5sM2NAwiD+QPUoEH
         /zYecECT1RBeN1Nz7vQE3hc1zl1MYt7Xmo/Y8ByaQTT9dM3YlGBqTlRiqN+fXl1MXaAg
         0LWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910416; x=1703515216;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=4DiAqokvVXPd3MpiYleSixbq9Tt+MTQdnErWjsgoNBk=;
        b=Jti+uhj1QnWba+v1BV/ZsMQJ4ZLU5zVp9OB4b8OueEaIYRIIJ72jPW4vII/3GpvxIX
         2x6M96bhQmal0h71op+lWn9AUhS/mBUZbLRQ8q7D3ur/82gAX/RkJFFy1t4Y/Qm+W6zO
         aZzWWgP4LDGP4l4H9bIya0LXot5eqpApKZQ4QkmuSnjGvDmucbRikQThWm3HuDK1g5p+
         81Q3iOM02uHTxBk6YoHaGLVB9rLi0zEUkJS3+SKIeMh9iG+ZjJPBx3bHUU472L5eyM/Z
         8+7xDlznGwK34R1MwTcki7jOJWnj4i4aDYf1ywxmtyEPituayCCWcF08jH2p19UiFa9q
         M/2A==
X-Gm-Message-State: AOJu0YwrDVtgNnZAshdwwAnATGjFqVL49r5zlcY8BR8HiBQgt1DiPvpj
	DNSCANX1IfeTRa8InCcs8DS09lQd0kj/9CKd8CVc
X-Google-Smtp-Source: AGHT+IFMLpzKTNORPRPFLBDCtaO+CZBNJmfJ5d+xy3Kd9QX0KblH5lsAi7/62hsZEtGlNqIpHkMQng==
X-Received: by 2002:a05:600c:4e8d:b0:401:b6f6:d90c with SMTP id f13-20020a05600c4e8d00b00401b6f6d90cmr7854855wmq.35.1702910415796;
        Mon, 18 Dec 2023 06:40:15 -0800 (PST)
Message-ID: <4ed8bbd2-f893-4c12-b804-2df56d55209e@suse.com>
Date: Mon, 18 Dec 2023 15:40:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 2/5] x86/HVM: adjust save/restore hook registration for
 optional check handler
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Register NULL uniformly as a first step.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
v2: New.

--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -374,7 +374,7 @@ static int cf_check vmce_load_vcpu_ctxt(
     return err ?: vmce_restore_vcpu(v, &ctxt);
 }
 
-HVM_REGISTER_SAVE_RESTORE(VMCE_VCPU, vmce_save_vcpu_ctxt,
+HVM_REGISTER_SAVE_RESTORE(VMCE_VCPU, vmce_save_vcpu_ctxt, NULL,
                           vmce_load_vcpu_ctxt, 1, HVMSR_PER_VCPU);
 #endif
 
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -458,7 +458,7 @@ static int cf_check pit_load(struct doma
     return rc;
 }
 
-HVM_REGISTER_SAVE_RESTORE(PIT, pit_save, pit_load, 1, HVMSR_PER_DOM);
+HVM_REGISTER_SAVE_RESTORE(PIT, pit_save, NULL, pit_load, 1, HVMSR_PER_DOM);
 #endif
 
 /* The intercept action for PIT DM retval: 0--not handled; 1--handled. */
--- a/xen/arch/x86/hvm/hpet.c
+++ b/xen/arch/x86/hvm/hpet.c
@@ -692,7 +692,7 @@ static int cf_check hpet_load(struct dom
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(HPET, hpet_save, hpet_load, 1, HVMSR_PER_DOM);
+HVM_REGISTER_SAVE_RESTORE(HPET, hpet_save, NULL, hpet_load, 1, HVMSR_PER_DOM);
 
 static void hpet_set(HPETState *h)
 {
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -793,7 +793,7 @@ static int cf_check hvm_load_tsc_adjust(
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(TSC_ADJUST, hvm_save_tsc_adjust,
+HVM_REGISTER_SAVE_RESTORE(TSC_ADJUST, hvm_save_tsc_adjust, NULL,
                           hvm_load_tsc_adjust, 1, HVMSR_PER_VCPU);
 
 static int cf_check hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
@@ -1189,7 +1189,7 @@ static int cf_check hvm_load_cpu_ctxt(st
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(CPU, hvm_save_cpu_ctxt, hvm_load_cpu_ctxt, 1,
+HVM_REGISTER_SAVE_RESTORE(CPU, hvm_save_cpu_ctxt, NULL, hvm_load_cpu_ctxt, 1,
                           HVMSR_PER_VCPU);
 
 #define HVM_CPU_XSAVE_SIZE(xcr0) (offsetof(struct hvm_hw_cpu_xsave, \
@@ -1538,6 +1538,7 @@ static int __init cf_check hvm_register_
     hvm_register_savevm(CPU_XSAVE_CODE,
                         "CPU_XSAVE",
                         hvm_save_cpu_xsave_states,
+                        NULL,
                         hvm_load_cpu_xsave_states,
                         HVM_CPU_XSAVE_SIZE(xfeature_mask) +
                             sizeof(struct hvm_save_descriptor),
@@ -1546,6 +1547,7 @@ static int __init cf_check hvm_register_
     hvm_register_savevm(CPU_MSR_CODE,
                         "CPU_MSR",
                         hvm_save_cpu_msrs,
+                        NULL,
                         hvm_load_cpu_msrs,
                         HVM_CPU_MSR_SIZE(ARRAY_SIZE(msrs_to_send)) +
                             sizeof(struct hvm_save_descriptor),
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -784,9 +784,9 @@ static int cf_check irq_load_link(struct
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(PCI_IRQ, irq_save_pci, irq_load_pci,
+HVM_REGISTER_SAVE_RESTORE(PCI_IRQ, irq_save_pci, NULL, irq_load_pci,
                           1, HVMSR_PER_DOM);
-HVM_REGISTER_SAVE_RESTORE(ISA_IRQ, irq_save_isa, irq_load_isa,
+HVM_REGISTER_SAVE_RESTORE(ISA_IRQ, irq_save_isa, NULL, irq_load_isa,
                           1, HVMSR_PER_DOM);
-HVM_REGISTER_SAVE_RESTORE(PCI_LINK, irq_save_link, irq_load_link,
+HVM_REGISTER_SAVE_RESTORE(PCI_LINK, irq_save_link, NULL, irq_load_link,
                           1, HVMSR_PER_DOM);
--- a/xen/arch/x86/hvm/mtrr.c
+++ b/xen/arch/x86/hvm/mtrr.c
@@ -773,7 +773,7 @@ static int cf_check hvm_load_mtrr_msr(st
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(MTRR, hvm_save_mtrr_msr, hvm_load_mtrr_msr, 1,
+HVM_REGISTER_SAVE_RESTORE(MTRR, hvm_save_mtrr_msr, NULL, hvm_load_mtrr_msr, 1,
                           HVMSR_PER_VCPU);
 
 void memory_type_changed(struct domain *d)
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -300,7 +300,7 @@ static int cf_check acpi_load(struct dom
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(PMTIMER, acpi_save, acpi_load,
+HVM_REGISTER_SAVE_RESTORE(PMTIMER, acpi_save, NULL, acpi_load,
                           1, HVMSR_PER_DOM);
 
 int pmtimer_change_ioport(struct domain *d, uint64_t version)
--- a/xen/arch/x86/hvm/rtc.c
+++ b/xen/arch/x86/hvm/rtc.c
@@ -797,7 +797,7 @@ static int cf_check rtc_load(struct doma
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(RTC, rtc_save, rtc_load, 1, HVMSR_PER_DOM);
+HVM_REGISTER_SAVE_RESTORE(RTC, rtc_save, NULL, rtc_load, 1, HVMSR_PER_DOM);
 
 void rtc_reset(struct domain *d)
 {
--- a/xen/arch/x86/hvm/save.c
+++ b/xen/arch/x86/hvm/save.c
@@ -88,6 +88,7 @@ static struct {
 void __init hvm_register_savevm(uint16_t typecode,
                                 const char *name,
                                 hvm_save_handler save_state,
+                                hvm_check_handler check_state,
                                 hvm_load_handler load_state,
                                 size_t size, int kind)
 {
@@ -96,6 +97,7 @@ void __init hvm_register_savevm(uint16_t
     ASSERT(hvm_sr_handlers[typecode].check == NULL);
     ASSERT(hvm_sr_handlers[typecode].load == NULL);
     hvm_sr_handlers[typecode].save = save_state;
+    hvm_sr_handlers[typecode].check = check_state;
     hvm_sr_handlers[typecode].load = load_state;
     hvm_sr_handlers[typecode].name = name;
     hvm_sr_handlers[typecode].size = size;
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -631,7 +631,8 @@ static int cf_check ioapic_load(struct d
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(IOAPIC, ioapic_save, ioapic_load, 1, HVMSR_PER_DOM);
+HVM_REGISTER_SAVE_RESTORE(IOAPIC, ioapic_save, NULL, ioapic_load, 1,
+                          HVMSR_PER_DOM);
 
 void vioapic_reset(struct domain *d)
 {
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -1145,7 +1145,7 @@ static int cf_check viridian_load_domain
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(VIRIDIAN_DOMAIN, viridian_save_domain_ctxt,
+HVM_REGISTER_SAVE_RESTORE(VIRIDIAN_DOMAIN, viridian_save_domain_ctxt, NULL,
                           viridian_load_domain_ctxt, 1, HVMSR_PER_DOM);
 
 static int cf_check viridian_save_vcpu_ctxt(
@@ -1188,7 +1188,7 @@ static int cf_check viridian_load_vcpu_c
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(VIRIDIAN_VCPU, viridian_save_vcpu_ctxt,
+HVM_REGISTER_SAVE_RESTORE(VIRIDIAN_VCPU, viridian_save_vcpu_ctxt, NULL,
                           viridian_load_vcpu_ctxt, 1, HVMSR_PER_VCPU);
 
 static int __init cf_check parse_viridian_version(const char *arg)
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -1617,9 +1617,9 @@ static int cf_check lapic_load_regs(stru
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(LAPIC, lapic_save_hidden,
+HVM_REGISTER_SAVE_RESTORE(LAPIC, lapic_save_hidden, NULL,
                           lapic_load_hidden, 1, HVMSR_PER_VCPU);
-HVM_REGISTER_SAVE_RESTORE(LAPIC_REGS, lapic_save_regs,
+HVM_REGISTER_SAVE_RESTORE(LAPIC_REGS, lapic_save_regs, NULL,
                           lapic_load_regs, 1, HVMSR_PER_VCPU);
 
 int vlapic_init(struct vcpu *v)
--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -449,7 +449,7 @@ static int cf_check vpic_load(struct dom
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(PIC, vpic_save, vpic_load, 2, HVMSR_PER_DOM);
+HVM_REGISTER_SAVE_RESTORE(PIC, vpic_save, NULL, vpic_load, 2, HVMSR_PER_DOM);
 
 void vpic_reset(struct domain *d)
 {
--- a/xen/arch/x86/include/asm/hvm/save.h
+++ b/xen/arch/x86/include/asm/hvm/save.h
@@ -113,6 +113,7 @@ typedef int (*hvm_load_handler) (struct
 void hvm_register_savevm(uint16_t typecode,
                          const char *name, 
                          hvm_save_handler save_state,
+                         hvm_check_handler check_state,
                          hvm_load_handler load_state,
                          size_t size, int kind);
 
@@ -122,12 +123,13 @@ void hvm_register_savevm(uint16_t typeco
 
 /* Syntactic sugar around that function: specify the max number of
  * saves, and this calculates the size of buffer needed */
-#define HVM_REGISTER_SAVE_RESTORE(_x, _save, _load, _num, _k)             \
+#define HVM_REGISTER_SAVE_RESTORE(_x, _save, check, _load, _num, _k)      \
 static int __init cf_check __hvm_register_##_x##_save_and_restore(void)   \
 {                                                                         \
     hvm_register_savevm(HVM_SAVE_CODE(_x),                                \
                         #_x,                                              \
                         &_save,                                           \
+                        check,                                            \
                         &_load,                                           \
                         (_num) * (HVM_SAVE_LENGTH(_x)                     \
                                   + sizeof (struct hvm_save_descriptor)), \



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:40:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:40:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656066.1024013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEnN-0003Sp-I1; Mon, 18 Dec 2023 14:40:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656066.1024013; Mon, 18 Dec 2023 14: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 1rFEnN-0003Si-F9; Mon, 18 Dec 2023 14:40:37 +0000
Received: by outflank-mailman (input) for mailman id 656066;
 Mon, 18 Dec 2023 14:40:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEnM-0003LJ-Ek
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:40:36 +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 67750d39-9db3-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:40:35 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c256ffdbcso37433805e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:40:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v9-20020a05600c470900b0040c4acaa4bfsm31329915wmo.19.2023.12.18.06.40.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:40:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67750d39-9db3-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910435; x=1703515235; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZlEogBHJ42bqKdVld3OnXFEdms3+g1R9Ku2xVNYGcew=;
        b=gZrgDnmAwawg3irOr18KAp9h+dD4j3JiSPgde5BxZI8h6dhs6I6Po1mtpOibzAQXKq
         bArCBImfhYBbkNatGuevwG2iFC15eEERp4xuTstRm5ufdqIXB6dYIb8Ro7ZHdpzbNGB3
         BID3fgfU3XN4Qk8O3+AZKSWXHcZgSxJ9LYSTsrDUJ3xkdR335+0gENcm+MEKczPV/Q49
         jpV4qPQ0y3353jHY0MrqMg4xo2W6pQKdOM0VMoFY5BPUb4lErITT3mUorAwZHmNkc7BY
         GK34vIKTkppuAzaMCEPs7SMPri6aHrxMUdAC9CVbq6M5IOdH2m1AhcScR0W5pBs8DGP/
         T74Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910435; x=1703515235;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ZlEogBHJ42bqKdVld3OnXFEdms3+g1R9Ku2xVNYGcew=;
        b=QtNOOS46HVnzbpL9SKmtBggep4Kz7NUsMFlxaavj7VWEYSCLZOPrie3ILDxKIS/C3I
         1i4/pjudPIQou96nA78kGKSuwXm3796xrWt5rzrZXvCFGwEoZxriVMVeh5i2udXZwIyj
         PhTU0fBDj8536ieLbVC8NpQKcqOtjshbqY262n6GP/FFrbDqClANTUprABaOvaKsYc2/
         Ox2uvJ27miGcI2LZQd/3hL1qPhfLFVe/BmWFq71PS8swAfxrqsyFoH9bckd/jZHfP7jq
         +7OmdazR5ICV2sRPpj/ksjWRKYMI9Ppik8ZUt6eJmxshVTOH55z28QNSVhbzepVaWiTw
         t/fQ==
X-Gm-Message-State: AOJu0Yw/uooAv+uTRATKbVVlhNHPg8Cl1QB8A3dUSti2niH0/wfGNIIH
	pAjtdtO+8thvyuEfsnChBu2KI2uG7YGuH0HtvnD2
X-Google-Smtp-Source: AGHT+IEhltKV7HXRK7qqDP6DCXQOLNvBF2soPdud5P371fCtyDZ4MAsc1yR8Nze4nLgdwVHGL3VMiQ==
X-Received: by 2002:a05:600c:35d3:b0:40d:18ee:1d08 with SMTP id r19-20020a05600c35d300b0040d18ee1d08mr883863wmq.138.1702910434890;
        Mon, 18 Dec 2023 06:40:34 -0800 (PST)
Message-ID: <160696b3-13ff-4b4e-99ec-3d926a3c0be8@suse.com>
Date: Mon, 18 Dec 2023 15:40:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 3/5] x86/vPIT: check values loaded from state save record
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In particular pit_latch_status() and speaker_ioport_read() perform
calculations which assume in-bounds values. Several of the state save
record fields can hold wider ranges, though. Refuse to load values which
cannot result from normal operation, except mode, the init state of
which (see also below) cannot otherwise be reached.

Note that ->gate should only be possible to be zero for channel 2;
enforce that as well.

Adjust pit_reset()'s writing of ->mode as well, to not unduly affect
the value pit_latch_status() may calculate. The chosen mode of 7 is
still one which cannot be established by writing the control word. Note
that with or without this adjustment effectively all switch() statements
using mode as the control expression aren't quite right when the PIT is
still in that init state; there is an apparent assumption that before
these can sensibly be invoked, the guest would init the PIT (i.e. in
particular set the mode).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
For mode we could refuse to load values in the [0x08,0xfe] range; I'm
not certain that's going to be overly helpful.

For count I was considering to clip the saved value to 16 bits (i.e. to
convert the internally used 0x10000 back to the architectural 0x0000),
but pit_save() doesn't easily lend itself to such a "fixup". If desired
perhaps better a separate change anyway.
---
v3: Slightly adjust two comments. Re-base over rename in earlier patch.
v2: Introduce separate checking function; switch to refusing to load
    bogus values. Re-base.

--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -47,6 +47,7 @@
 #define RW_STATE_MSB 2
 #define RW_STATE_WORD0 3
 #define RW_STATE_WORD1 4
+#define RW_STATE_NUM 5
 
 #define get_guest_time(v) \
    (is_hvm_vcpu(v) ? hvm_get_guest_time(v) : (u64)get_s_time())
@@ -427,6 +428,47 @@ static int cf_check pit_save(struct vcpu
     return rc;
 }
 
+static int cf_check pit_check(const struct domain *d, hvm_domain_context_t *h)
+{
+    const struct hvm_hw_pit *hw;
+    unsigned int i;
+
+    if ( !has_vpit(d) )
+        return -ENODEV;
+
+    hw = hvm_get_entry(PIT, h);
+    if ( !hw )
+        return -ENODATA;
+
+    /*
+     * Check to-be-loaded values are within valid range, for them to represent
+     * actually reachable state.  Uses of some of the values elsewhere assume
+     * this is the case.  Note that the channels' mode fields aren't checked;
+     * Xen prior to 4.19 might save them as 0xff.
+     */
+    if ( hw->speaker_data_on > 1 || hw->pad0 )
+        return -EDOM;
+
+    for ( i = 0; i < ARRAY_SIZE(hw->channels); ++i )
+    {
+        const struct hvm_hw_pit_channel *ch = &hw->channels[i];
+
+        if ( ch->count > 0x10000 ||
+             ch->count_latched >= RW_STATE_NUM ||
+             ch->read_state >= RW_STATE_NUM ||
+             ch->write_state >= RW_STATE_NUM ||
+             ch->rw_mode > RW_STATE_WORD0 ||
+             ch->gate > 1 ||
+             ch->bcd > 1 )
+            return -EDOM;
+
+        if ( i != 2 && !ch->gate )
+            return -EINVAL;
+    }
+
+    return 0;
+}
+
 static int cf_check pit_load(struct domain *d, hvm_domain_context_t *h)
 {
     PITState *pit = domain_vpit(d);
@@ -443,6 +485,14 @@ static int cf_check pit_load(struct doma
         goto out;
     }
     
+    for ( i = 0; i < ARRAY_SIZE(pit->hw.channels); ++i )
+    {
+        struct hvm_hw_pit_channel *ch = &pit->hw.channels[i];
+
+        if ( (ch->mode &= 7) > 5 )
+            ch->mode -= 4;
+    }
+
     /*
      * Recreate platform timers from hardware state.  There will be some 
      * time jitter here, but the wall-clock will have jumped massively, so 
@@ -458,7 +508,7 @@ static int cf_check pit_load(struct doma
     return rc;
 }
 
-HVM_REGISTER_SAVE_RESTORE(PIT, pit_save, NULL, pit_load, 1, HVMSR_PER_DOM);
+HVM_REGISTER_SAVE_RESTORE(PIT, pit_save, pit_check, pit_load, 1, HVMSR_PER_DOM);
 #endif
 
 /* The intercept action for PIT DM retval: 0--not handled; 1--handled. */
@@ -575,7 +625,7 @@ void pit_reset(struct domain *d)
     for ( i = 0; i < 3; i++ )
     {
         s = &pit->hw.channels[i];
-        s->mode = 0xff; /* the init mode */
+        s->mode = 7; /* unreachable sentinel */
         s->gate = (i != 2);
         pit_load_count(pit, i, 0);
     }



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:40:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:40:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656068.1024023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEng-00049G-UR; Mon, 18 Dec 2023 14:40:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656068.1024023; Mon, 18 Dec 2023 14:40:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEng-000496-Rn; Mon, 18 Dec 2023 14:40:56 +0000
Received: by outflank-mailman (input) for mailman id 656068;
 Mon, 18 Dec 2023 14:40:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEnf-00048G-8T
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:40:55 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71c86c98-9db3-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 15:40:53 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c3fe6c1b5so34652435e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:40:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v9-20020a05600c470900b0040c4acaa4bfsm31329915wmo.19.2023.12.18.06.40.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:40:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71c86c98-9db3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910452; x=1703515252; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ymXg0bpmFz+1mXkWwxvgqG3wuNIkNAkO2q/Jn5XmZJc=;
        b=ZCYQm2n0QmuJkA1KAHqAgTPpY9OfnV0NWGiRWFZvjmelZxG+Yn0bqX86wyqon5La4j
         JnEgc3idnjOCqHQbJPr5v0OdZc/I8mUxQT2Vjo/5FfJtcCCCmPE21g77DIahjM0zj1uq
         RATUnBYhX9UfLBMhxUTaUlA+PXoBwzdjTE/gWvpiEpjuhd/kAQkevD53po4/sgZHMf5k
         qyrUALjWBKwoQCVe0+8XV6RpyWZb4vgblgYnp41Jdl4yckqyfcREpUOwzcD2z31GoSSp
         3TkezJIUh2DFrA01WPVdzu5r4XZlZkxHYR04M1HljKDQr5F97fxQ1AmYBmZ/KkCUrFYA
         EHxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910452; x=1703515252;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ymXg0bpmFz+1mXkWwxvgqG3wuNIkNAkO2q/Jn5XmZJc=;
        b=UjT1rA1PA3HKuc7EUE7+KciYZiYkRqKQh6d+N0FwmhjRJM71JvuUIgQNPtWrU0/7eV
         zotmR7Ohg1gO12BVc9XfPr3Yn6+JF4fUrh2H6TZSgXVINhvchDgCAv/BsqTAUIzxMj9m
         sPpS6ZArL5udMdEnvRWNKW8ITIiiTAhVfdoYi0Mr3Jg2rDP3SVuiibxIGfoTvOSA6fxD
         /CTQua69f8BMHFsbqHykEoNf2c3p1blCk/Jm9BQKOVw1L3xpio1loPrcKMnpnfzMmYoF
         dpYbv5leGqgF4YmlQ7YZp0srMM/VuJCDdgpS13oUAdinj6hlltY/Sxt5fr1BZyZfykfz
         0qNA==
X-Gm-Message-State: AOJu0YyAAu9bp0q4GEpNiMJMSByMnNBSt+tneH3gSGVFWztSwFqHhA8u
	XaLvqCktyg/EKnQP7yGsUIYW9NyZ9hoYfUVh4Z4M
X-Google-Smtp-Source: AGHT+IENCFbPhDWDJ3O0ULNCi2CFlhIgp2QC7so5i0AAfbe74adx52KuOILEZGhet3fdRhlvc10odA==
X-Received: by 2002:a05:600c:1715:b0:40c:2bfa:fb03 with SMTP id c21-20020a05600c171500b0040c2bfafb03mr8060780wmn.72.1702910452441;
        Mon, 18 Dec 2023 06:40:52 -0800 (PST)
Message-ID: <9ab115f2-04c6-443f-95f1-581b2889b08f@suse.com>
Date: Mon, 18 Dec 2023 15:40:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 4/5] x86/vPIC: check values loaded from state save record
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Loading is_master from the state save record can lead to out-of-bounds
accesses via at least the two container_of() uses by vpic_domain() and
__vpic_lock(). Make sure the value is consistent with the instance being
loaded.

For ->int_output (which for whatever reason isn't a 1-bit bitfield),
besides bounds checking also take ->init_state into account.

For ELCR follow what vpic_intercept_elcr_io()'s write path and
vpic_reset() do, i.e. don't insist on the internal view of the value to
be saved.

Move the instance range check as well, leaving just an assertion in the
load handler.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
v3: vpic_domain() fix and vpic_elcr_mask() adjustment split out. Re-base
    over rename in earlier patch.
v2: Introduce separate checking function; switch to refusing to load
    bogus values. Re-base.

--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -429,6 +429,38 @@ static int cf_check vpic_save(struct vcp
     return 0;
 }
 
+static int cf_check vpic_check(const struct domain *d, hvm_domain_context_t *h)
+{
+    unsigned int inst = hvm_load_instance(h);
+    const struct hvm_hw_vpic *s;
+
+    if ( !has_vpic(d) )
+        return -ENODEV;
+
+    /* Which PIC is this? */
+    if ( inst >= ARRAY_SIZE(d->arch.hvm.vpic) )
+        return -ENOENT;
+
+    s = hvm_get_entry(PIC, h);
+    if ( !s )
+        return -ENODATA;
+
+    /*
+     * Check to-be-loaded values are within valid range, for them to represent
+     * actually reachable state.  Uses of some of the values elsewhere assume
+     * this is the case.
+     */
+    if ( s->int_output > 1 )
+        return -EDOM;
+
+    if ( s->is_master != !inst ||
+         (s->int_output && s->init_state) ||
+         (s->elcr & ~vpic_elcr_mask(s, 1)) )
+        return -EINVAL;
+
+    return 0;
+}
+
 static int cf_check vpic_load(struct domain *d, hvm_domain_context_t *h)
 {
     struct hvm_hw_vpic *s;
@@ -438,18 +470,21 @@ static int cf_check vpic_load(struct dom
         return -ENODEV;
 
     /* Which PIC is this? */
-    if ( inst > 1 )
-        return -ENOENT;
+    ASSERT(inst < ARRAY_SIZE(d->arch.hvm.vpic));
     s = &d->arch.hvm.vpic[inst];
 
     /* Load the state */
     if ( hvm_load_entry(PIC, h, s) != 0 )
         return -EINVAL;
 
+    if ( s->is_master )
+        s->elcr |= 1 << 2;
+
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(PIC, vpic_save, NULL, vpic_load, 2, HVMSR_PER_DOM);
+HVM_REGISTER_SAVE_RESTORE(PIC, vpic_save, vpic_check, vpic_load, 2,
+                          HVMSR_PER_DOM);
 
 void vpic_reset(struct domain *d)
 {



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:41:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:41:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656072.1024033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEo2-0004qx-5j; Mon, 18 Dec 2023 14:41:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656072.1024033; Mon, 18 Dec 2023 14: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 1rFEo2-0004qq-2o; Mon, 18 Dec 2023 14:41:18 +0000
Received: by outflank-mailman (input) for mailman id 656072;
 Mon, 18 Dec 2023 14:41:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEo0-0003LJ-8S
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:41:16 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f5c899e-9db3-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:41:15 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40b5155e154so39167485e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:41:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v9-20020a05600c470900b0040c4acaa4bfsm31329915wmo.19.2023.12.18.06.41.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:41:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f5c899e-9db3-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910475; x=1703515275; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SA83WH/tVAa+8UrSlLg9fG17XrU318HxH5GSIudImvg=;
        b=S+0IbRap4/C1EFSlMJkMYUCyD+9KP7RY88e28IOhlK/wUI4EgE7AqyVDLq9AD1Vv5q
         n+kbVDKcd8la/QSzhEug/EMlt8PZhIBlvkwXieqV4AzZCUDQZqemFdIpl4lH8nyv//i8
         UPTa+cZQn1PDFHgBnRSR4jQMHPLixGIbF7631cOrnkcHz48ugEVE6lU7aKt5VL6LtXlR
         oyy5jeFoNYDc/I3kjdsalnG0FVvR3s/OqdxI+hP31qpvtV4CjM54Xq8sThcsNb/JnKeF
         gzSssWTqP0NqIBm08m2eeM/UHgK3O9a+vpChy3vsr75r+eM9jt9wq3VVNxS3s21AUqpQ
         XEoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910475; x=1703515275;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=SA83WH/tVAa+8UrSlLg9fG17XrU318HxH5GSIudImvg=;
        b=s8lDsJC/XI4gmjuUZ3G+rvVJkEoRIkpf89S+jyX1dp+ouNtkDep51tCBE7TeaNIitf
         LulXkRh4Q1R1dI6O0BXCuMro40AK3/jfTTCVOgTj71LH1uk1Z7fem81x9aDV4xTyMueZ
         dMfpJe9VfDhuhhqNtRm9KUuWAa7RYGOxvuCQVw3m1zOuHsBIIIIqn0zFPiY75RKFhKCS
         nMIvPsM1DYFakiViNQwigoq5TB+KoNF3D/8v9YfZ7jIV2F8EW2N4Gz+A+gLCTmJCtB08
         P3NqVLiiZL77Z7eo0ZqFlMzLl6htrSMTZFqVBIGdFpW/B7IRhxlClYEyc8I8IiyOgaBw
         UaTw==
X-Gm-Message-State: AOJu0YxKaV1qPgRA/4RPkfu6B9gF2hShRWQ4SCUj4Iyg6HPQHpY6OjOR
	IO/+29PI8IOkIMPLiLVwx+nou2jGSA7ixDPFP57T
X-Google-Smtp-Source: AGHT+IEealb4TeglQHiJMGnJmhQlZzJDKrMBnAgY1fG14D5192f8JWEwkO3UZFcej4VUE8t1+TV/wA==
X-Received: by 2002:a05:600c:1c9d:b0:40c:837:f033 with SMTP id k29-20020a05600c1c9d00b0040c0837f033mr7923825wms.61.1702910475359;
        Mon, 18 Dec 2023 06:41:15 -0800 (PST)
Message-ID: <3bd1a8b8-1ed5-4d3a-8f5a-e193fdab7e1d@suse.com>
Date: Mon, 18 Dec 2023 15:41:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 5/5] x86/vIRQ: split PCI link load state checking from
 actual loading
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Move the checking into a check hook, and add checking of the padding
fields as well.

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

--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -749,6 +749,30 @@ static int cf_check irq_load_isa(struct
     return 0;
 }
 
+static int cf_check irq_check_link(const struct domain *d,
+                                   hvm_domain_context_t *h)
+{
+    const struct hvm_hw_pci_link *pci_link = hvm_get_entry(PCI_LINK, h);
+    unsigned int link;
+
+    if ( !pci_link )
+        return -ENODATA;
+
+    for ( link = 0; link < ARRAY_SIZE(pci_link->pad0); link++ )
+        if ( pci_link->pad0[link] )
+            return -EINVAL;
+
+    for ( link = 0; link < ARRAY_SIZE(pci_link->route); link++ )
+        if ( pci_link->route[link] > 15 )
+        {
+            printk(XENLOG_G_ERR
+                   "HVM restore: PCI-ISA link %u out of range (%u)\n",
+                   link, pci_link->route[link]);
+            return -EINVAL;
+        }
+
+    return 0;
+}
 
 static int cf_check irq_load_link(struct domain *d, hvm_domain_context_t *h)
 {
@@ -759,16 +783,6 @@ static int cf_check irq_load_link(struct
     if ( hvm_load_entry(PCI_LINK, h, &hvm_irq->pci_link) != 0 )
         return -EINVAL;
 
-    /* Sanity check */
-    for ( link = 0; link < 4; link++ )
-        if ( hvm_irq->pci_link.route[link] > 15 )
-        {
-            printk(XENLOG_G_ERR
-                   "HVM restore: PCI-ISA link %u out of range (%u)\n",
-                   link, hvm_irq->pci_link.route[link]);
-            return -EINVAL;
-        }
-
     /* Adjust the GSI assert counts for the link outputs.
      * This relies on the PCI and ISA IRQ state being loaded first */
     for ( link = 0; link < 4; link++ )
@@ -788,5 +802,5 @@ HVM_REGISTER_SAVE_RESTORE(PCI_IRQ, irq_s
                           1, HVMSR_PER_DOM);
 HVM_REGISTER_SAVE_RESTORE(ISA_IRQ, irq_save_isa, NULL, irq_load_isa,
                           1, HVMSR_PER_DOM);
-HVM_REGISTER_SAVE_RESTORE(PCI_LINK, irq_save_link, NULL, irq_load_link,
-                          1, HVMSR_PER_DOM);
+HVM_REGISTER_SAVE_RESTORE(PCI_LINK, irq_save_link, irq_check_link,
+                          irq_load_link, 1, HVMSR_PER_DOM);



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:45:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:45:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656087.1024044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFErt-0006CX-N8; Mon, 18 Dec 2023 14:45:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656087.1024044; Mon, 18 Dec 2023 14:45:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFErt-0006CQ-KL; Mon, 18 Dec 2023 14:45:17 +0000
Received: by outflank-mailman (input) for mailman id 656087;
 Mon, 18 Dec 2023 14: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=NrWQ=H5=oracle.com=steven.sistare@srs-se1.protection.inumbo.net>)
 id 1rFEqs-0006BL-6z
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:44:14 +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 e7bbef76-9db3-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:44:12 +0100 (CET)
Received: from pps.filterd (m0333521.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3BIDkDS1009144; Mon, 18 Dec 2023 14:43:59 GMT
Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta02.appoci.oracle.com [147.154.18.20])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3v12tc3f26-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 18 Dec 2023 14:43:58 +0000
Received: from pps.filterd
 (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 3BIEBlYn030910; Mon, 18 Dec 2023 14:43:57 GMT
Received: from nam12-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam12lp2169.outbound.protection.outlook.com [104.47.55.169])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 3v12bbd178-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 18 Dec 2023 14:43:57 +0000
Received: from SA2PR10MB4684.namprd10.prod.outlook.com (2603:10b6:806:119::14)
 by DM4PR10MB6911.namprd10.prod.outlook.com (2603:10b6:8:101::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Mon, 18 Dec
 2023 14:43:53 +0000
Received: from SA2PR10MB4684.namprd10.prod.outlook.com
 ([fe80::d609:b162:ba7c:4e96]) by SA2PR10MB4684.namprd10.prod.outlook.com
 ([fe80::d609:b162:ba7c:4e96%4]) with mapi id 15.20.7091.034; Mon, 18 Dec 2023
 14: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>
X-Inumbo-ID: e7bbef76-9db3-11ee-98eb-6d05b1d4d9a1
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=ds/yykHR1Lt1xrxhWUv2WCfWkTRu6xTHu9L2lF05jgE=;
 b=U0mDmAp4c1GAyzdXrGIYXfu3sqdL6lNQOGcD6cZQgvtWr8FBZr5OObx9y71yxKru58BM
 Cgiup38E+uoPx5lwrVNpgADBtaQAzmdI2fCmH2BZeD+1Ao+GsTaYsKZ8ZXu/MOFZxgF/
 0KktszeT6BVwDKzDukGTpdzHukkTko4FUestoPyCh89g1RMMNoxmePO+855VMIsh3FfR
 P+TfIgTZ+dOpPWplX/we0awdnnPDLWDsuFCh/G9TVD2BpvM9x/u0DcDHzs3RpVH7vIDP
 7vEbCjchsBYEq64tlXSV4H1ykMcH7U1qp69VGWgFb5rHN0Hbcgjb4IWn4WlP/MNZfUW6 aA== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SJBbJjtnmfgvTB+tbvqBcsxcj/l1rLnb2DDtZndfbgapWLZMlcY76QiOc+HPvSkYhskOQAtBsOsLaBfixYwiGgYfXRYKeHE89iJk3PO7O4m9cAaW2h8SmRUvxb3fFry0mu4mZO3EzUfejueLJ5SQ7uFc6pdmGhXNXOrvrbZcXEEw4bstOt3aP2VH0SH/y745Ab0QnsPvZC/AQsSfUdRirVXEyhT2wmRj6NX8E788sEd4VVLMX+sdvDiVYWH/Y+ppfeSKttNrAn2ruyJJU4yL5pHwlAFgGV4jRcApoYUV/qsC0MITUn9E3iXn3rpmo2uznfFa4preKHo37+TKjtDITg==
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=ds/yykHR1Lt1xrxhWUv2WCfWkTRu6xTHu9L2lF05jgE=;
 b=UkPfLv4zjBCfgx9yIecD8PzRPJ4IAsLd0jhpStVfMUOII4fMXiHdQEqOXNR/uSrKFP/r+fvdGKnMfY/PeiTqP2zhlC+Kksrns4zXpU4RMN09Roj/ejF5jEMLvjgQG7+miyK2a0tHuIH8YSlV3L+7h1SWCAz15nzwIdyQGsuisvwcH6B2ToIJYBhtGi/NKcjPdA4Sx1TIMLMNrY72UXbVO7bsvvtmCtNruxVZJk/apkPa8ZAwmK3o67xH4dUmfW5DphsLBitK3zSAWh1Q1Ei9ruB5sW/ffdJhTL3WYrm3IaldK/FWFWczREBwKkBCO6E5PfTMzzn3MK9qkj1OqzFe6Q==
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=ds/yykHR1Lt1xrxhWUv2WCfWkTRu6xTHu9L2lF05jgE=;
 b=yR4eivliYxh+1hGMkJVZlNvVakIP4wauJ+nyGq+AJQCmf9u+/7qrGsYvsdMYBJqjvPZu0P9+xEJeV4iB49Uv9YSyGw/TLFIW46oYVj39x7wzPJHeELfQdS1NAWb6jYKze/0KJPP99uSvRKtGjcZNF3U4T/5P05t4z2r8aELd2Nw=
Message-ID: <8f6ef8e1-5f22-4db4-bd60-a481e7b4433e@oracle.com>
Date: Mon, 18 Dec 2023 09:43:48 -0500
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V8 00/12] fix migration of suspended runstate
Content-Language: en-US
To: Peter Xu <peterx@redhat.com>
Cc: Juan Quintela <quintela@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>,
        Thomas Huth <thuth@redhat.com>,
        =?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?=
 <berrange@redhat.com>,
        Fabiano Rosas <farosas@suse.de>, Leonardo Bras <leobras@redhat.com>,
        qemu-devel@nongnu.org, Stefan Berger <stefanb@linux.vnet.ibm.com>,
        Gerd Hoffmann
 <kraxel@redhat.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Anthony Perard <anthony.perard@citrix.com>,
        Paul Durrant <paul@xen.org>, Eric Blake <eblake@redhat.com>,
        Markus Armbruster <armbru@redhat.com>,
        Richard Henderson <richard.henderson@linaro.org>,
        Laurent Vivier <lvivier@redhat.com>, xen-devel@lists.xenproject.org
References: <1702481421-375368-1-git-send-email-steven.sistare@oracle.com>
 <a9ddc1b2-d4fc-44de-857b-2aeb35fa0925@oracle.com> <ZX_VS_KDsoiL9T2X@x1n>
From: Steven Sistare <steven.sistare@oracle.com>
Organization: Oracle Corporation
In-Reply-To: <ZX_VS_KDsoiL9T2X@x1n>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BYAPR06CA0033.namprd06.prod.outlook.com
 (2603:10b6:a03:d4::46) To SA2PR10MB4684.namprd10.prod.outlook.com
 (2603:10b6:806:119::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PR10MB4684:EE_|DM4PR10MB6911:EE_
X-MS-Office365-Filtering-Correlation-Id: 2fc05405-b87e-491f-38ff-08dbffd7c1af
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	FVYtNNZSrwPPxnpmuHoTqtTvyBU4p+5VCEg3juEbSjdtw3T/9Vbks4595wgVHoHnhWQvrW5uHjVqFWaouUU7GeS61tSouQZh6EkiQdF8QEJN5VeGzlu6RNMqknIA8MCRYPKIZVieEz5O7slvwcum0Kxff1D/xcbdwVICfWjmgJJmKk3YhEsISLUkyFEavCC8x/gUCnByEPuSeROZY7ry5UsAIbeCpgxRQsDK0dsfQv5vTyvaLuWHi8mnAWtrzwZ0wOmMmXpisA008RfYX7v77BJFyEKanEibX7bjwwzbBU+m4vChAWEpfXWXRGZDFizNpXtLxm8+bot88RqFoc14nM2Bs1VxSKYaVQFrYiDAlAnKWM+XZOC9MbumAsSGUgRXkj05WF+x4q2sljL8Edq7qce3wKLvQOmqzxTM6Hhvwjz9B9kC4WDMJuRBmJG497pgPb/dB/E7eMKdm2yBEYoCIDqffIyCFd95dzuVOumHz4n5PBDjHsaRA0DR3776GzM12Hauzgi3EzjobZb5dk1ezBs9YREtVY9eCgENAPm9XtvhPLVhtxoHmLEA1dqoxvYfPQtVLgMUCbZcWMlyoaBM12pGn+ByURG2e4phHMi7D2Dn++f6mSLpZhCAn9eqRU1Ze78aYWfoXomkrjtJPs2z8g==
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4684.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(376002)(366004)(396003)(136003)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(26005)(36916002)(2616005)(6506007)(53546011)(6512007)(6666004)(83380400001)(7416002)(15650500001)(478600001)(5660300002)(2906002)(8676002)(8936002)(4326008)(41300700001)(316002)(44832011)(6486002)(54906003)(66476007)(66946007)(66556008)(966005)(6916009)(38100700002)(86362001)(31696002)(36756003)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?bzF5cWJsUm1IWmhqWlhPNys0bWFUNDMwUkY2OTlldDFjRkxvZjJBL0lYdy9m?=
 =?utf-8?B?aC8zVTdnT3FxRkZKbTczRHFYeWNhblBJa2VWL2xwLzlsQ05CaEd0Y0VLM0pu?=
 =?utf-8?B?Z2dnNTdWY3hpdCttY0dXZ0wwZUZ5R2h4VjdRTmdTSmd4SXQraW5GN0hyRTVi?=
 =?utf-8?B?TXRvTGRORzJ6TzZQRGxuUlY5dFZxbzNlRmJKajhxWUF3WTF1RnFYYy9UWWFE?=
 =?utf-8?B?YjhzWFFDOHh1NTB1dUhxZFRuTm5jMmduclVkRDNBRGd6eldSTmZpU2Vmcndl?=
 =?utf-8?B?R2Q5eTY0TFk1NGxJWStoUlZJWldIbnp5M1c1bDhzWW5KUG03dzMvYUNWcU5O?=
 =?utf-8?B?ZTdGYUFHeXd0c1NRT1g4V0x5V2QwRTZXRVRSYVBtOXRtbHF5VGJsUFd0dmt4?=
 =?utf-8?B?Z01MVjVFN29EcWx5L2pyeG9PbnBqYXpvSHNjNENqOWlCSzNva0NRaFlzUjBr?=
 =?utf-8?B?YTI5REpxdGF4VzVndURDSVBGTEptbzhoeGMxS2FCVzRscGczQW5jNjdBZFZy?=
 =?utf-8?B?NWMyTmJNQTVBaWVJSVYvbmpIUUNjL3BEVzVJYUI3U1dmb0xsM1lFaERGaGpl?=
 =?utf-8?B?MFVvVk56NjUrdmVlaENmQzBwcStaU2ZpZE9WdkRGZ3ZKVHB0ODZrRTF4VENQ?=
 =?utf-8?B?L2pvQmdwamVSa28waERYVkZZWURaUElNVFZkOXU0VS9oSnhtdUxpbVZOTjF0?=
 =?utf-8?B?L2VmUGozWGc4ZE0vYUU1NWxRVGVmbTFrZ3dXRys1elZXNllDNlY3WGlOMDg0?=
 =?utf-8?B?SGt1TWp1ZjRGUXpYQVlWWDFKcDlvNFdubCs2NGt4Mk5oVEdVdEgrd1JZaHNI?=
 =?utf-8?B?TkwyQ1lINnFodjdKQVJHUFNreGlWWmVoT28zOHg2VjVsM0I3UHFIRzVsNGZ3?=
 =?utf-8?B?cldnUG1GWkRyY0hJSlRBWVBaVDZ2Lyt1N3pmdG5ycnVhdnJEVUtLc2ZaZkJF?=
 =?utf-8?B?eGpaKzF1MkxlVVd3V2wwbEJySkU5Q3JER2ZOQlh0SisyanZoUXBlVUxpQU1o?=
 =?utf-8?B?Q0RoZW1ZaDRnTXZ6UGJ3c0xuTmRmTjdOb05sNHk4eFNud2YxcmZ2QkhWS3NF?=
 =?utf-8?B?M25ZeXl0MFNLNGNpZ0VrQXRCWGUvdFAyUkN0RlJGNm1oZ0xwWjZFUUlvMU03?=
 =?utf-8?B?VUw2b2VwOGFWVldkbHF5cDcxMVhjRnpuS2p1Q3BqdGlzQlc0eWRXK2daMzNm?=
 =?utf-8?B?WmlDT214RGpzWDRHYjhpa3ZGbXAvQjZxcmVib1k3K05MdlE2QllNaDBENmZB?=
 =?utf-8?B?Q2xEd1NSL1d1KzlOUlRGU1E1a2NHemNBbStyOCt3SEordzZ0YXBrdzZQcCt0?=
 =?utf-8?B?Q3ZOWitOdnB6Tk5MVWV4VUhUTEI0bmR0WldldnkrdC9wZ3AyYmdTWGtHUzZO?=
 =?utf-8?B?ZWpqVU8vM00xS0N2OGUzSThvRk40aHo4THBvbEdjV1dIL1ovWE53WWZkSkc1?=
 =?utf-8?B?NUxtTUh6SEIwSUtmQlBkbVFVemFjV0RvQlVLYjQrLzBkZjE4N2t6cGJKaFlK?=
 =?utf-8?B?ODlEd25WMW1xSG1udFhmZGNEeStXWDdVNmZOVXh0RE80UHpEdGQxdUtrZUJF?=
 =?utf-8?B?WW5nU0p6SjJndk8yMUcwT3dIWkpaZXBucW02ZlJYR1pyZ0xFMTgxdjFjWlpL?=
 =?utf-8?B?d3VGQzRlNzhiTFlSN0QrN3U1VVdFNm5zYzJJMDFIaVozbUIzRE5ZNHlDUXVI?=
 =?utf-8?B?SUREMWZPVjNscFdKV08xK0lxREpia3RwR1d4UW5BdkRrc1VEUHBURnVDOEJM?=
 =?utf-8?B?ZFBvNGp4RHBWQlJ1dlNOTEhNM1RRM2tuTTMvYVBHMTNoWHJUcjV3OUYzZTJm?=
 =?utf-8?B?NUJoeURSQUhlT1YvT1BqK29IeUg3Q1FINyt1a28vOG0yVE50d2hmUzlydzIw?=
 =?utf-8?B?dkt5N05XUzdwOVFsRmhVWTlhVm9xMjlOOWNTQjgwUWpwdkNES29XcTRvTHNy?=
 =?utf-8?B?eDh0ZGkrd3hPR3YyeDZ6RGwxZE1PRnpueTA1SEEyNkFJR1BDaG5FbXA4SXU0?=
 =?utf-8?B?SmQ4bkZrdEJOY2xOSmUxNytzcFRGT3FIM0xSeHZBTFRLaXZ6Ryt6WnJPK1FD?=
 =?utf-8?B?L01wbEpsN1pWeWJpY0hpTVltL3IrZFYzLzVJTEtxbnE1b2dIaWVCelREbG1R?=
 =?utf-8?B?aEx4ZjZCNVRFcklTbGdFOTZoaXZwOXIvUjM3dVlHU0s4akwvblJ0VHp5VVkw?=
 =?utf-8?B?c0E9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 
	szq4+6QF7sKvj14FQNT8IWXYw7rXfOb5o97gw83kWbXB4iHDSb64V2UbCSeKCBvWPLIEOvGNQ3uMAkwqdZ1DdPHAtH7SKTWwsMsuyUE5VQM88Iq47J4whMYfEsImsbFCYmXmoSajKqvEOEcZI2RJC11BdJatgLlbNXgYXB2ePDPIfdWg8PSd7wRkHIm1GEbp3vwZD3d5px2E6nNQWHB9atJIIHwT/bsIpdD10AoHa4CZP+PRe3TXMA4pUlmV126JVvQlEiGl+YudOEmjJLEnRmcEva9n809k39froz9geyd0ittNu5Y4uZNUXMNd8kFCZnCyrRx2bjv5Y+TnGNLsc39/ko7N/TZvj0x0W8QJ/ujIEzmCqzwhD3Xy8xTu2923Phov+XEIihL0lDKB7SgDVEDY4ozee1nGOtvXY6PCYmnEQvl+opKjq8PqZkxyv33aKR2JEydHCgMTLUMbY79uUMDM3tXWgqLQDQeJFGYgOlwN9ORc3W7jzthzKNdf4dyq6l9kGsZ4tmFfrnFx5pcCGChYcWPFvf4jgAJz5G3y/p0MqNGhmVl7nwXMShOWNNMuacTDl66rgfwplSukwFIFHgbSFb9bh77pvrfrUvslc6o=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2fc05405-b87e-491f-38ff-08dbffd7c1af
X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4684.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2023 14:43:53.7851
 (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: Ehcb+qo5sXQHXVQ83XCcoEB+nYXexQLXaO+th4UoePdndqVumCh8a+lWjhVtnSJ3i6/+OiYFPRS31+BrfFPeMu4ojaR018eTpH5K+dObddY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6911
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-18_09,2023-12-14_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxscore=0
 adultscore=0 suspectscore=0 spamscore=0 malwarescore=0 mlxlogscore=999
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000
 definitions=main-2312180107
X-Proofpoint-ORIG-GUID: saPKuyxTkOv0A4HLNWDeTudp2xNpvIdP
X-Proofpoint-GUID: saPKuyxTkOv0A4HLNWDeTudp2xNpvIdP

On 12/18/2023 12:14 AM, Peter Xu wrote:
> On Wed, Dec 13, 2023 at 10:35:33AM -0500, Steven Sistare wrote:
>> Hi Peter, all have RB's, with all i's dotted and t's crossed - steve
> 
> Yes this seems to be more migration related so maybe good candidate for a
> pull from migration submodule.
> 
> But since this is still solving a generic issue, I'm copying a few more
> people from get_maintainers.pl that this series touches, just in case
> they'll have something to say before dev cycle starts.

The key aspects are summarized by the cover letter and the commit messages
pasted below for the first 6 patches:

https://lore.kernel.org/qemu-devel/1702481421-375368-1-git-send-email-steven.sistare@oracle.com

---------------------------------------------------------------------------

[PATCH V8 00/12] fix migration of suspended runstate

Migration of a guest in the suspended runstate is broken.  The incoming
migration code automatically tries to wake the guest, which is wrong;
the guest should end migration in the same runstate it started.  Further,
after saving a snapshot in the suspended state and loading it, the vm_start
fails.  The runstate is RUNNING, but the guest is not.
---------------------------------------------------------------------------

[PATCH V8 01/12] cpus: vm_was_suspended

Add a state variable to remember if a vm previously transitioned into a
suspended state.
---------------------------------------------------------------------------

[PATCH V8 02/12] cpus: stop vm in suspended runstate

Currently, a vm in the suspended state is not completely stopped.  The VCPUs
have been paused, but the cpu clock still runs, and runstate notifiers for
the transition to stopped have not been called.  This causes problems for
live migration.  Stale cpu timers_state is saved to the migration stream,
causing time errors in the guest when it wakes from suspend, and state that
would have been modified by runstate notifiers is wrong.

Modify vm_stop to completely stop the vm if the current state is suspended,
transition to RUN_STATE_PAUSED, and remember that the machine was suspended.
Modify vm_start to restore the suspended state.

This affects all callers of vm_stop and vm_start, notably, the qapi stop and
cont commands.  For example:

    (qemu) info status
    VM status: paused (suspended)

    (qemu) stop
    (qemu) info status
    VM status: paused

    (qemu) system_wakeup
    Error: Unable to wake up: guest is not in suspended state

    (qemu) cont
    (qemu) info status
    VM status: paused (suspended)

    (qemu) system_wakeup
    (qemu) info status
    VM status: running

---------------------------------------------------------------------------

[PATCH V8 03/12] cpus: check running not RUN_STATE_RUNNING

When a vm transitions from running to suspended, runstate notifiers are
not called, so the notifiers still think the vm is running.  Hence, when
we call vm_start to restore the suspended state, we call vm_state_notify
with running=1.  However, some notifiers check for RUN_STATE_RUNNING.
They must check the running boolean instead.

No functional change.
---------------------------------------------------------------------------

[PATCH V8 04/12] cpus: vm_resume

Define the vm_resume helper, for use in subsequent patches.
---------------------------------------------------------------------------

[PATCH V8 05/12] migration: propagate suspended runstate

If the outgoing machine was previously suspended, propagate that to the
incoming side via global_state, so a subsequent vm_start restores the
suspended state.  To maintain backward and forward compatibility, reclaim
some space from the runstate member.
---------------------------------------------------------------------------

[PATCH V8 06/12] migration: preserve suspended runstate

A guest that is migrated in the suspended state automaticaly wakes and
continues execution.  This is wrong; the guest should end migration in
the same state it started.  The root cause is that the outgoing migration
code automatically wakes the guest, then saves the RUNNING runstate in
global_state_store(), hence the incoming migration code thinks the guest is
running and continues the guest if autostart is true.

On the outgoing side, delete the call to qemu_system_wakeup_request().
Now that vm_stop completely stops a vm in the suspended state (from the
preceding patches), the existing call to vm_stop_force_state is sufficient
to correctly migrate all vmstate.

On the incoming side, call vm_start if the pre-migration state was running
or suspended.  For the latter, vm_start correctly restores the suspended
state, and a future system_wakeup monitor request will cause the vm to
resume running.
---------------------------------------------------------------------------


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:46:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:46:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656092.1024054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEsd-0006kW-4B; Mon, 18 Dec 2023 14:46:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656092.1024054; Mon, 18 Dec 2023 14:46:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEsd-0006kP-1Z; Mon, 18 Dec 2023 14:46:03 +0000
Received: by outflank-mailman (input) for mailman id 656092;
 Mon, 18 Dec 2023 14: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEsc-0006Yh-1u
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:46:02 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 28f802ec-9db4-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 15:46:00 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3365752934bso2400477f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:46:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j29-20020a5d6e5d000000b003364e437577sm10175351wrz.84.2023.12.18.06.45.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:45:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28f802ec-9db4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910760; x=1703515560; 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=mSNK+9XQWf+R3LH3HgTsPh5as0gnPF6qZgvItnNd83s=;
        b=FflDt0PSBk3VOVWOFUltWuX1eKmlY2BEs9gTPGClRKpQSosjCXLQgdJChldQ3IjxP8
         dpv+BjUfc2PgPwZjx0oa4sD6kkgpmKugxX8e7FOfjZKMVDlmRAU4/S38X1+RyuHwky/V
         AdW0G1+h97/+kRxM4Wulm30b1MQYrXakY5zhm0H0QkUGg/X4V0c70/lh9pqLHfX0ub04
         v1MRdIBB6VJSaozLGUeOukedGNtQRN6Wqnd4si+I0bidAAJYWZVjS5AVR8u05pm3oshK
         FOKqFltoBRx8OMUZO1j9aG7IfkLCOdvRWdMXJvxqOMlSYmK3CZYqQkW2qUTbpThrICIe
         lraQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910760; x=1703515560;
        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=mSNK+9XQWf+R3LH3HgTsPh5as0gnPF6qZgvItnNd83s=;
        b=SbsAgFtuKiB5zgD3egVI79QWHvQPAKcBotnsQlQUm+4IMzjbEnpNArlJpZ+Kq1MSvc
         Oogdd32VcMRh38TWjqCBObX8TE7llh/L9HXUL+edJMFoaktlZ/X/8+aE2+T7jqAJFepR
         2F6RNzYt/FAtVXS7rebj5LJJxqviJOFZzvDHA+W481Dd8R5cZXuww7gfCTfpnXjuIdca
         ZwUpb6KejnogNHQIGVNtUB8fBCagK+kwBAF3faqzJLjGouEOIaRuCVgiMwznqhe/mBiD
         5zG9z4BXLuo/Doxy98tspPwB7P+R+pB85nPRwsJrmQkFdtZ3HGDsPnBCu+6HK6Q9CDvP
         AwPg==
X-Gm-Message-State: AOJu0YwuOaLKRlU4jobgVyyhfq97vp2n+XTaeyGNzYS5Lbeo7Ostd08b
	fYgN4nLYiP2GvwMXbF2gmglbk6dACTO+hqOiH+K+
X-Google-Smtp-Source: AGHT+IFv2PFXpvWKKPsKQtZbGQAVYfz1vBcbaQ1IXvVKO7NFA3Bj2nv79Y5k1WuGXFa4zm1TQD7ZPw==
X-Received: by 2002:a5d:6584:0:b0:336:5f10:6c85 with SMTP id q4-20020a5d6584000000b003365f106c85mr1993588wru.122.1702910759508;
        Mon, 18 Dec 2023 06:45:59 -0800 (PST)
Message-ID: <0c45155a-2beb-4e69-bca3-cdf42ba22f2b@suse.com>
Date: Mon, 18 Dec 2023 15:45:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/3] x86: Dom0 I/O port access permissions
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Following on from the CMOS/RTC port aliasing change, there are some
more missing restrictions; in particular there's more port aliasing to
be aware of. But first of all introduce a command line option to allow
suppressing this probing of aliases, as was requested.

Of course an alternative to all of this would be to do away with all
policy-only ioports_deny_access() in dom0_setup_permissions(), leaving
in place only ones which are truly required for functionality reasons.

1: allow to suppress port-alias probing
2: detect PIC aliasing on ports other than 0x[2A][01]
3: detect PIT aliasing on ports other than 0x4[0-3]

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:47:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:47:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656094.1024064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEty-0007NK-E9; Mon, 18 Dec 2023 14:47:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656094.1024064; Mon, 18 Dec 2023 14: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 1rFEty-0007ND-B5; Mon, 18 Dec 2023 14:47:26 +0000
Received: by outflank-mailman (input) for mailman id 656094;
 Mon, 18 Dec 2023 14:47:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEtx-0007N3-53
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:47:25 +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 5af23cc0-9db4-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:47:24 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-336668a5a8dso1348899f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:47:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j29-20020a5d6e5d000000b003364e437577sm10175351wrz.84.2023.12.18.06.47.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:47:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5af23cc0-9db4-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910843; x=1703515643; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/fMlAv9ea8KmO95h1rEr/bKlXlzXc/GyAyAyQRSshWQ=;
        b=K9ndiHpo/nJKD3gSh9ZRw7a4F4sHUiXYc4ZOWIhLtvgJJLdDjgsbWRdE0Zo7ca9o+j
         xqBEcHHJ+yunc/Jadgf66ppkFQx+PhDwmDGaVkJVVc39YZCGld+HXtxeMXYSovpiBoEz
         Hv5ApNGpHyjhM+OXQreRbqtThpSk6CRtuqI9HDVqyOQhTZrONLHxFfFiX04TdIiKiNvN
         hR8kxfxZhZzicHbRIs2Lm0YtfnuJ+F82hI6fCCUIYuezS2xTlyM7OJTc4O6/aeLHZccR
         bKL7tcJCKn5FZsWxPZjgs6tt5GSoooUgo43bxTox2UYaVDheb5nbze68zXwrg0lhzb3H
         at4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910843; x=1703515643;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=/fMlAv9ea8KmO95h1rEr/bKlXlzXc/GyAyAyQRSshWQ=;
        b=kNL7tQaauYg6UUgt5m3KveWg9DqUpgdxFCLPI/tom7E/RZMe+R0M/kreJ2nQudJ7EK
         WsX9SQuI8UkEdESo5aNX3Mq/7Qkoc26MhbzDzla+NaTkTFj+2xGKrf4p5xV6vvSS8Z5X
         QUH3ECPzPtGZtMIZ77dz+sp2i0UX8HTSMN5LZ0Piwdmw0AIieqnemokb9Yf+98BvoJUE
         KCrmVwRax5zQJ9/Lcfaq2QuCfO49JGukSxXHvSrrDHn+UO6VH2I5d5hFx3Fn72BW46rY
         nmtH1044/EA6OsNM9LQuvKm2F14eMjbOgd6y+9JSEn1rObkYRKiSb7SAWWYTfhAFi7QS
         b6fg==
X-Gm-Message-State: AOJu0Yxc7ruYyZdAG/xq9uSSRZhjqCA93yMR2I6STPtpIK8ivoSBk0H7
	JQkqXkEYSM0VrDLvPcrjwg2mhlEWfFyarvakhKJm
X-Google-Smtp-Source: AGHT+IEEWLq7N/yo94hEvikQL8/wPkeWEXKD8oVGf1W5HpGeD4qe37bbrWxPQNmlpNA+UW9AGlaq0A==
X-Received: by 2002:a5d:55c6:0:b0:336:6e7d:3aff with SMTP id i6-20020a5d55c6000000b003366e7d3affmr185148wrw.37.1702910843678;
        Mon, 18 Dec 2023 06:47:23 -0800 (PST)
Message-ID: <bd116645-3451-47d7-8b8e-6e4b1af0680d@suse.com>
Date: Mon, 18 Dec 2023 15:47:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/3] x86: allow to suppress port-alias probing
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <0c45155a-2beb-4e69-bca3-cdf42ba22f2b@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0c45155a-2beb-4e69-bca3-cdf42ba22f2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

By default there's already no use for this when we run in shim mode.
Plus there may also be a need to suppress the probing in case of issues
with it. Before introducing further port alias probing, introduce a
command line option allowing to bypass it, default it to on when in shim
mode, and gate RTC/CMOS port alias probing on it.

Requested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
While "probe-port-aliases" is longish, shorter forms (e.g. "port-probe")
partially lose the intended meaning.
---
v2: New.

--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2000,6 +2000,17 @@ INVPCID is supported and not disabled vi
 This is a mask of C-states which are to be used preferably.  This option is
 applicable only on hardware were certain C-states are exclusive of one another.
 
+### probe-port-aliases (x86)
+> `= <boolean>`
+
+> Default: `true` outside of shim mode, `false` in shim mode
+
+Certain devices accessible by I/O ports may be accessible also through "alias"
+ports (originally a result of incomplete address decoding).  When such devices
+are solely under Xen's control, Xen disallows even Dom0 access to the "primary"
+ports.  When alias probing is active and aliases are detected, "alias" ports
+would then be treated similar to the "primary" ones.
+
 ### psr (Intel)
 > `= List of ( cmt:<boolean> | rmid_max:<integer> | cat:<boolean> | cos_max:<integer> | cdp:<boolean> )`
 
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -47,6 +47,7 @@ extern unsigned long highmem_start;
 #endif
 
 extern int8_t opt_smt;
+extern int8_t opt_probe_port_aliases;
 
 #ifdef CONFIG_SHADOW_PAGING
 extern bool opt_dom0_shadow;
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -75,6 +75,9 @@ static bool __initdata opt_invpcid = tru
 boolean_param("invpcid", opt_invpcid);
 bool __read_mostly use_invpcid;
 
+int8_t __initdata opt_probe_port_aliases = -1;
+boolean_param("probe-port-aliases", opt_probe_port_aliases);
+
 /* Only used in asm code and within this source file */
 unsigned long asmlinkage __read_mostly cr4_pv32_mask;
 
@@ -1844,6 +1847,9 @@ void asmlinkage __init noreturn __start_
     /* Low mappings were only needed for some BIOS table parsing. */
     zap_low_mappings();
 
+    if ( opt_probe_port_aliases < 0 )
+        opt_probe_port_aliases = !pv_shim;
+
     init_apic_mappings();
 
     normalise_cpu_order();
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1253,7 +1253,8 @@ static int __init cf_check probe_cmos_al
 {
     unsigned int offs;
 
-    if ( acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_CMOS_RTC )
+    if ( (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_CMOS_RTC) ||
+         !opt_probe_port_aliases )
         return 0;
 
     for ( offs = 2; offs < 8; offs <<= 1 )



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:48:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:48:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656096.1024074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEue-0007rr-Mw; Mon, 18 Dec 2023 14:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656096.1024074; Mon, 18 Dec 2023 14:48:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEue-0007rk-K7; Mon, 18 Dec 2023 14:48:08 +0000
Received: by outflank-mailman (input) for mailman id 656096;
 Mon, 18 Dec 2023 14:48:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEud-0007qP-BB
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:48:07 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 73f7efaa-9db4-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:48:06 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-33662243274so779396f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:48:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j29-20020a5d6e5d000000b003364e437577sm10175351wrz.84.2023.12.18.06.48.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:48:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73f7efaa-9db4-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910885; x=1703515685; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LjS7V6KKmRJM6g/C5tVk+zV0y+JdDW9hCdqYHqXgGAA=;
        b=FbYzuQUIIHvdA3CGkCns8uLTNiPTowQFyqbOBLCm/jxcXmbYDku8kbQfeTAqPoqtME
         vJQDJWu6d7L2XesjaUoTktbscpPmtPCkrDdpo+vh3cqRQnNRY2iQnqIZlA6DOTZMVWQZ
         oR4/f8vzEpkY3prt7LJdd8s9cvR/gtEpvuoFeCQRP8WbujOfa5ffzH1ATi81tpK5RqvC
         y91qHHf95v2Cgo5JP48o4/nvqYXvTehFYzOuD391IJ3dMTBLONe1piu0qGdPr1Rx+QO4
         +OBcw7htrZ3YoTH10S9QCbDE3BUA9vwyV9M229Wpm4zxbcxdbVNSfuPIOwMEAQXMy5Ml
         B1Qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910885; x=1703515685;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=LjS7V6KKmRJM6g/C5tVk+zV0y+JdDW9hCdqYHqXgGAA=;
        b=OjFilTTFjqKOwqGiaQLnXYPtTabxXUMNd0pkpmQzYHIPwIXonq6HRH6E7EAexIAB/q
         68bkpNjdVTMv+yztdZABK63m+75KP0WXPXdPTpr6Ofx0hjmAbFaGl4lj5SYPGN6fs6II
         KLJQc2UkXQsDV+0ckEZtqfShxFIJcyAZsZD1m5McZ9bEtqcvuJjkUjzvAPtJiyoqYC42
         dGzQpLSryb5udjFkZoq2L8Wco4/pHjCx+8gjacyNMa3jcEJAtjzYtI/K8L4/gIkz6tYM
         q0NsmOY+6kAN4Ao+IKkq1mI5r8c9IQBP9riypIDPqOFA+V/2786yrtHSpln21FZgJfxx
         7pxg==
X-Gm-Message-State: AOJu0YxF74i+LfVwHT4KzFIFPpVkrpXHAGsIpRVXf9JbaZujpFCKoakW
	pCx/Vx88rmQEWf7QdtoG6lE8KydkvylZ06p1JgcN
X-Google-Smtp-Source: AGHT+IFTEIXHMTkzeOPQVN+hq1bcbwiIh1yeEabfPyUbLyuJEBXjuuc0f/sxATGC1mw+eCEKiIWZEw==
X-Received: by 2002:a05:600c:46c3:b0:40c:6e98:7c50 with SMTP id q3-20020a05600c46c300b0040c6e987c50mr2713037wmo.165.1702910885553;
        Mon, 18 Dec 2023 06:48:05 -0800 (PST)
Message-ID: <c29ced52-6e1e-4997-81ab-8882df2d38a7@suse.com>
Date: Mon, 18 Dec 2023 15:48:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/3] x86: detect PIC aliasing on ports other than
 0x[2A][01]
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <0c45155a-2beb-4e69-bca3-cdf42ba22f2b@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0c45155a-2beb-4e69-bca3-cdf42ba22f2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

... in order to also deny Dom0 access through the alias ports. Without
this it is only giving the impression of denying access to both PICs.
Unlike for CMOS/RTC, do detection very early, to avoid disturbing normal
operation later on.

Like for CMOS/RTC a fundamental assumption of the probing is that reads
from the probed alias port won't have side effects in case it does not
alias the respective PIC's one.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Use new command line option. s/pic/8252A/. Re-base over new earlier
    patch. Use ISOLATE_LSB().

--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -467,7 +467,7 @@ static void __init process_dom0_ioports_
 int __init dom0_setup_permissions(struct domain *d)
 {
     unsigned long mfn;
-    unsigned int i;
+    unsigned int i, offs;
     int rc;
 
     if ( pv_shim )
@@ -480,10 +480,16 @@ int __init dom0_setup_permissions(struct
 
     /* Modify I/O port access permissions. */
 
-    /* Master Interrupt Controller (PIC). */
-    rc |= ioports_deny_access(d, 0x20, 0x21);
-    /* Slave Interrupt Controller (PIC). */
-    rc |= ioports_deny_access(d, 0xA0, 0xA1);
+    for ( offs = 0, i = ISOLATE_LSB(i8259A_alias_mask) ?: 2;
+          offs <= i8259A_alias_mask; offs += i )
+    {
+        if ( offs & ~i8259A_alias_mask )
+            continue;
+        /* Master Interrupt Controller (PIC). */
+        rc |= ioports_deny_access(d, 0x20 + offs, 0x21 + offs);
+        /* Slave Interrupt Controller (PIC). */
+        rc |= ioports_deny_access(d, 0xA0 + offs, 0xA1 + offs);
+    }
 
     /* ELCR of both PICs. */
     rc |= ioports_deny_access(d, 0x4D0, 0x4D1);
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -19,6 +19,7 @@
 #include <xen/delay.h>
 #include <asm/apic.h>
 #include <asm/asm_defns.h>
+#include <asm/setup.h>
 #include <io_ports.h>
 #include <irq_vectors.h>
 
@@ -333,6 +334,58 @@ void __init make_8259A_irq(unsigned int
     irq_to_desc(irq)->handler = &i8259A_irq_type;
 }
 
+unsigned int __initdata i8259A_alias_mask;
+
+static void __init probe_8259A_alias(void)
+{
+    unsigned int mask = 0x1e;
+    uint8_t val = 0;
+
+    if ( !opt_probe_port_aliases )
+        return;
+
+    /*
+     * The only properly r/w register is OCW1.  While keeping the master
+     * fully masked (thus also masking anything coming through the slave),
+     * write all possible 256 values to the slave's base port, and check
+     * whether the same value can then be read back through any of the
+     * possible alias ports.  Probing just the slave of course builds on the
+     * assumption that aliasing is identical for master and slave.
+     */
+
+    outb(0xff, 0x21); /* Fully mask master. */
+
+    do {
+        unsigned int offs;
+
+        outb(val, 0xa1);
+
+        /* Try to make sure we're actually having a PIC here. */
+        if ( inb(0xa1) != val )
+        {
+            mask = 0;
+            break;
+        }
+
+        for ( offs = ISOLATE_LSB(mask); offs <= mask; offs <<= 1 )
+        {
+            if ( !(mask & offs) )
+                continue;
+            if ( inb(0xa1 + offs) != val )
+                mask &= ~offs;
+        }
+    } while ( mask && (val += 0x0d) );  /* Arbitrary uneven number. */
+
+    outb(cached_A1, 0xa1); /* Restore slave IRQ mask. */
+    outb(cached_21, 0x21); /* Restore master IRQ mask. */
+
+    if ( mask )
+    {
+        dprintk(XENLOG_INFO, "PIC aliasing mask: %02x\n", mask);
+        i8259A_alias_mask = mask;
+    }
+}
+
 static struct irqaction __read_mostly cascade = { no_action, "cascade", NULL};
 
 void __init init_IRQ(void)
@@ -343,6 +396,8 @@ void __init init_IRQ(void)
 
     init_8259A(0);
 
+    probe_8259A_alias();
+
     for (irq = 0; platform_legacy_irq(irq); irq++) {
         struct irq_desc *desc = irq_to_desc(irq);
         
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -46,6 +46,8 @@ extern uint8_t kbd_shift_flags;
 extern unsigned long highmem_start;
 #endif
 
+extern unsigned int i8259A_alias_mask;
+
 extern int8_t opt_smt;
 extern int8_t opt_probe_port_aliases;
 



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:48:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:48:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656099.1024084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEv3-0008KX-UK; Mon, 18 Dec 2023 14:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656099.1024084; Mon, 18 Dec 2023 14:48:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFEv3-0008KQ-Rj; Mon, 18 Dec 2023 14:48:33 +0000
Received: by outflank-mailman (input) for mailman id 656099;
 Mon, 18 Dec 2023 14:48: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFEv2-0007qP-QL
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:48:32 +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 83794f5b-9db4-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 15:48:32 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-336668a5a8dso1352427f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:48:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j29-20020a5d6e5d000000b003364e437577sm10175351wrz.84.2023.12.18.06.48.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:48:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83794f5b-9db4-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702910911; x=1703515711; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fdAJveYHqA2g4CKa3+3oW3cyM7mNTxYeZr4t06ZVD3M=;
        b=Q/j86XPWaYLHKQRauVym+6lRndWRgfI8qqTdUPFPIn/wJas9mBxMUbOiiCDebpJKcX
         mwuoXou8c68OVtBB0emsmonX0tt+YSLVQOSmxuARXAU6h6I/MIl6pJmvYA3SPP57AIbq
         u4riZHKShXFfUFwisjR840MczpziBdFMyWZ1Hta0DgKUtHDoUbR7ReN4AxOooS3WjWTU
         Cf4cKKQUXClFSOieq1ytslMK7kjtNp9NGeYBhFmmzWv6RaDV7G45KiFcQnRrPpBpf+E9
         x03To/tzMnrnm3SjgoYW/BH1QnLScEuwEFAvdepMsBisKsV3SGSrib7IDlc6DukEsyyG
         4cww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702910911; x=1703515711;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=fdAJveYHqA2g4CKa3+3oW3cyM7mNTxYeZr4t06ZVD3M=;
        b=i6KLnbGjxhElRyr8IgfO+ViMUWfa0CrpN78y7wJjGoauHKUyGaIw2oNRf9OUgOGJTp
         iDGeedSSYIpEjT491rkZxalU7LXBdn86RPzL3Z/4R43IvuJQgSrpdXJk2knHSWdvJUIY
         Qaqs+Cjccca3jmpV58FHb9jc4iCZkI3CKejAYT1yT07K23VBCLi0SDhV6y+l13o99k+x
         a+Xu30fwpA75E103EhNwSo7xIPcgQLMksI1F96hOZN91MTerrke5qTBQAZwiNnXtdrLc
         WfU0hQ0BwgmgWL9aq5CCGzSMIZjgy5Qc7YtA8J+gpeEl1ECA0f+ix4P0t1fZABYP5bUm
         WIFQ==
X-Gm-Message-State: AOJu0Yz3O6g1l7gnxGvgWjN2NE9VOI3nBzMwmkMLPhV3REsh0AfrUXFy
	n0ZHEaFLkcUjFZ3FbclqhkiC0t3SEJuOCqbiWyrY
X-Google-Smtp-Source: AGHT+IEcRm1OlYQRw4waYkgXv26JzJWDtoeZ7XB0p/wpHi2fh7f4AW0IzQg5clA/hSFMznmjF6/EAA==
X-Received: by 2002:a05:6000:1201:b0:336:4e26:f7e5 with SMTP id e1-20020a056000120100b003364e26f7e5mr3068903wrx.110.1702910911614;
        Mon, 18 Dec 2023 06:48:31 -0800 (PST)
Message-ID: <039b9ceb-4862-4e26-a344-e47fc04bd979@suse.com>
Date: Mon, 18 Dec 2023 15:48:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 3/3] x86: detect PIT aliasing on ports other than 0x4[0-3]
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <0c45155a-2beb-4e69-bca3-cdf42ba22f2b@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0c45155a-2beb-4e69-bca3-cdf42ba22f2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

... in order to also deny Dom0 access through the alias ports. Without
this it is only giving the impression of denying access to PIT. Unlike
for CMOS/RTC, do detection pretty early, to avoid disturbing normal
operation later on (even if typically we won't use much of the PIT).

Like for CMOS/RTC a fundamental assumption of the probing is that reads
from the probed alias port won't have side effects (beyond such that PIT
reads have anyway) in case it does not alias the PIT's.

At to the port 0x61 accesses: Unlike other accesses we do, this masks
off the top four bits (in addition to the bottom two ones), following
Intel chipset documentation saying that these (read-only) bits should
only be written with zero.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
If Xen was running on top of another instance of itself (in HVM mode,
not PVH, i.e. not as a shim), prior to 14f42af3f52d ('x86/vPIT: account
for "counter stopped" time') I'm afraid our vPIT logic would not have
allowed the "Try to further make sure ..." check to pass in the Xen
running on top: We don't respect the gate bit being clear when handling
counter reads. (There are more unhandled [and unmentioned as being so]
aspects of PIT behavior though, yet it's unclear in how far addressing
at least some of them would be useful.)
---
v2: Use new command line option. Re-base over changes to earlier
    patches. Use ISOLATE_LSB().

--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -495,7 +495,11 @@ int __init dom0_setup_permissions(struct
     rc |= ioports_deny_access(d, 0x4D0, 0x4D1);
 
     /* Interval Timer (PIT). */
-    rc |= ioports_deny_access(d, 0x40, 0x43);
+    for ( offs = 0, i = ISOLATE_LSB(pit_alias_mask) ?: 4;
+          offs <= pit_alias_mask; offs += i )
+        if ( !(offs & ~pit_alias_mask) )
+            rc |= ioports_deny_access(d, 0x40 + offs, 0x43 + offs);
+
     /* PIT Channel 2 / PC Speaker Control. */
     rc |= ioports_deny_access(d, 0x61, 0x61);
 
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -47,6 +47,7 @@ extern unsigned long highmem_start;
 #endif
 
 extern unsigned int i8259A_alias_mask;
+extern unsigned int pit_alias_mask;
 
 extern int8_t opt_smt;
 extern int8_t opt_probe_port_aliases;
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -425,6 +425,72 @@ static struct platform_timesource __init
     .resume = resume_pit,
 };
 
+unsigned int __initdata pit_alias_mask;
+
+static void __init probe_pit_alias(void)
+{
+    unsigned int mask = 0x1c;
+    uint8_t val = 0;
+
+    if ( !opt_probe_port_aliases )
+        return;
+
+    /*
+     * Use channel 2 in mode 0 for probing.  In this mode even a non-initial
+     * count is loaded independent of counting being / becoming enabled.  Thus
+     * we have a 16-bit value fully under our control, to write and then check
+     * whether we can also read it back unaltered.
+     */
+
+    /* Turn off speaker output and disable channel 2 counting. */
+    outb(inb(0x61) & 0x0c, 0x61);
+
+    outb((2 << 6) | (3 << 4) | (0 << 1), PIT_MODE); /* Mode 0, LSB/MSB. */
+
+    do {
+        uint8_t val2;
+        unsigned int offs;
+
+        outb(val, PIT_CH2);
+        outb(val ^ 0xff, PIT_CH2);
+
+        /* Wait for the Null Count bit to clear. */
+        do {
+            /* Latch status. */
+            outb((3 << 6) | (1 << 5) | (1 << 3), PIT_MODE);
+
+            /* Try to make sure we're actually having a PIT here. */
+            val2 = inb(PIT_CH2);
+            if ( (val2 & ~(3 << 6)) != ((3 << 4) | (0 << 1)) )
+                return;
+        } while ( val2 & (1 << 6) );
+
+        /*
+         * Try to further make sure we're actually having a PIT here.
+         *
+         * NB: Deliberately |, not ||, as we always want both reads.
+         */
+        val2 = inb(PIT_CH2);
+        if ( (val2 ^ val) | (inb(PIT_CH2) ^ val ^ 0xff) )
+            return;
+
+        for ( offs = ISOLATE_LSB(mask); offs <= mask; offs <<= 1 )
+        {
+            if ( !(mask & offs) )
+                continue;
+            val2 = inb(PIT_CH2 + offs);
+            if ( (val2 ^ val) | (inb(PIT_CH2 + offs) ^ val ^ 0xff) )
+                mask &= ~offs;
+        }
+    } while ( mask && (val += 0x0b) );  /* Arbitrary uneven number. */
+
+    if ( mask )
+    {
+        dprintk(XENLOG_INFO, "PIT aliasing mask: %02x\n", mask);
+        pit_alias_mask = mask;
+    }
+}
+
 /************************************************************
  * PLATFORM TIMER 2: HIGH PRECISION EVENT TIMER (HPET)
  */
@@ -2414,6 +2480,8 @@ void __init early_time_init(void)
     }
 
     preinit_pit();
+    probe_pit_alias();
+
     tmp = init_platform_timer();
     plt_tsc.frequency = tmp;
 



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 14:59:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 14:59:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656113.1024094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFF5O-0003WT-2P; Mon, 18 Dec 2023 14:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656113.1024094; Mon, 18 Dec 2023 14:59:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFF5N-0003WM-VL; Mon, 18 Dec 2023 14:59:13 +0000
Received: by outflank-mailman (input) for mailman id 656113;
 Mon, 18 Dec 2023 14:59:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFF5M-0003V8-0J
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 14:59:12 +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 ff7d9952-9db5-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 15:59:09 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-33666946422so924426f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 06:59:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 z8-20020adfec88000000b0033661255299sm5647133wrn.34.2023.12.18.06.59.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 06:59:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff7d9952-9db5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702911549; x=1703516349; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=cxP29n4VWgPdbNOCi1SlYHTP9cf3/4CPHpClqTi9kAg=;
        b=fAF1q2rmDLcaOsHbOtpfDbYfw1vL4yxLSDSsK2vWBtlbb6+bu6ZDWuIKZyDM95dRbY
         dIJQx+1ErsuOld+HmW/O3hb4yx24si3D39ACGYQBy/4r9DGfrZ/wbma8TxV8kSI+17wG
         chVQcKR39OgVTQYRk3wnh7AaChyVf/IHSuLPRw7zVE2V5wvOP5hFwvPW3A9/n4gqpeYr
         ayMQB19KB5yHgqSNWgd9YkvxynV2EJgHppWWiCLADFyB8Jcl9sCRPm57JmUaEyfgP7Rw
         qmd5Zwo+BZVDa1IX/FLma5L10a9l9te9dMiG7pCyT2MLiaNPQDbYKSJAb3GFLaLn0yil
         kScg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702911549; x=1703516349;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=cxP29n4VWgPdbNOCi1SlYHTP9cf3/4CPHpClqTi9kAg=;
        b=esDCX2u6oCceXCyiyg60AKkji4G78bK9xEQ+K2K4xwVIcveljvsJbGWX6y+/DcDePh
         qqPqoifF2Ikipzyg9eku8lorSzxitEfyFuZmc3WT/RQ7Z12XrhJ1kXXUgOdaunkdOyFB
         WQ89wPqVnO0Z/xUWt8tM8xVtHItJGEuy5+7Cxl65S18ipz+vd4PYIXglD27gRqbLHXzL
         hoX6oyL0f2kgkxzKWHfwdewVbe7JObBu41jFvG4uKEm0Jv9soBFHhLgh5SyKWidDkMsq
         p40+AqChf99V5VM7KQiZpVSw2B/LZTk5yjghP/RB10fFimP8fVssDt+gpOz0Zyvud+S4
         vokg==
X-Gm-Message-State: AOJu0Yx2tPm1HeBQe11erOu58Lx3gXLvvMbneiiR8PIRV/gr/2HVZ26d
	KUH0D1hyemRvcfmIBkhtEQ+s
X-Google-Smtp-Source: AGHT+IGhDOv82I4kXat8MLnocczdOTQWF2fMhWWRpM8tZovtLHu+LvYc2bPkkEUfxPo9sTaiv639ag==
X-Received: by 2002:a5d:5f49:0:b0:336:6d62:763e with SMTP id cm9-20020a5d5f49000000b003366d62763emr604511wrb.7.1702911549174;
        Mon, 18 Dec 2023 06:59:09 -0800 (PST)
Message-ID: <c9542ac3-9d41-4efd-a466-0f4d78da70b8@suse.com>
Date: Mon, 18 Dec 2023 15:59:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: allow non-BIGMEM configs to boot on >= 16Tb systems
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <4b282f2f-bce8-4c98-897c-2866ec1b6dd0@suse.com>
 <ZXxovHNdNK_OfHUs@macbook> <3a41ab3a-c1e6-4371-bd71-26cd97baffd6@suse.com>
 <ZYApZTMGKOKlUdiA@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYApZTMGKOKlUdiA@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 12:13, Roger Pau MonnÃ© wrote:
> On Mon, Dec 18, 2023 at 09:26:24AM +0100, Jan Beulich wrote:
>> On 15.12.2023 15:54, Roger Pau MonnÃ© wrote:
>>> On Wed, Jun 07, 2023 at 08:17:30AM +0200, Jan Beulich wrote:
>>>> While frame table setup, directmap init, and boot allocator population
>>>> respect all intended bounds, the logic passing memory to the heap
>>>> allocator which wasn't passed to the boot allocator fails to respect
>>>> max_{pdx,pfn}. This then typically triggers the BUG() in
>>>> free_heap_pages() after checking page state, because of hitting a struct
>>>> page_info instance which was set to all ~0.
>>>>
>>>> Of course all the memory above the 16Tb boundary is still going to
>>>> remain unused; using it requires BIGMEM=y. And of course this fix
>>>> similarly ought to help BIGMEM=y configurations on >= 123Tb systems
>>>> (where all the memory beyond that boundary continues to be unused).
>>>>
>>>> Fixes: bac2000063ba ("x86-64: reduce range spanned by 1:1 mapping and frame table indexes")
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> Thanks.
>>
>>>> --- a/xen/arch/x86/setup.c
>>>> +++ b/xen/arch/x86/setup.c
>>>> @@ -1722,15 +1722,16 @@ void __init noreturn __start_xen(unsigne
>>>>  
>>>>      if ( max_page - 1 > virt_to_mfn(HYPERVISOR_VIRT_END - 1) )
>>>>      {
>>>> -        unsigned long limit = virt_to_mfn(HYPERVISOR_VIRT_END - 1);
>>>> +        unsigned long lo = virt_to_mfn(HYPERVISOR_VIRT_END - 1);
>>>> +        unsigned long hi = pdx_to_pfn(max_pdx - 1) + 1;
>>>
>>> Maybe use max_page to avoid the pdx_to_pfn() call?  (And is also more
>>> in context with the condition on the outside if).
>>
>> You mean
>>
>>         unsigned long hi = min(pdx_to_pfn(max_pdx - 1) + 1, max_page);
>>
>> ? I could switch to that, yes. I wouldn't feel well switching to using
>> just max_page, especially with me having nowhere to (reasonably) test.
> 
> Isn't max_page derived from max_pdx (see setup_max_pdx()), and
> hence we could avoid the pdx_to_pfn() conversion by just using it?
> 
> max_page = pdx_to_pfn(max_pdx - 1) + 1;
> 
> So hi == max_page in your proposed code.
> 
> Maybe there are further restrictions applied to max_pdx that are not
> propagated into max_page, the meaning of all those variables is very
> opaque, and hard to follow in the source code.

Looking more closely, the two appear to be properly in sync once
setup_max_pdx() was called the first time. I guess I was in part
mislead by

            e = (pdx_to_pfn(max_pdx - 1) + 1ULL) << PAGE_SHIFT;

just a few lines past an update to both variables. I'll switch to
max_page here, and I may also make a patch to tidy the line quoted
above.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:05:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:05:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656117.1024104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFBW-0005TD-MP; Mon, 18 Dec 2023 15:05:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656117.1024104; Mon, 18 Dec 2023 15:05: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 1rFFBW-0005T6-Jh; Mon, 18 Dec 2023 15:05:34 +0000
Received: by outflank-mailman (input) for mailman id 656117;
 Mon, 18 Dec 2023 15:05: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=9FT9=H5=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFFBW-0005T0-5B
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:05:34 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e40ce329-9db6-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 16:05:33 +0100 (CET)
Received: from [192.168.1.9] (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 76E1C4EE0742;
 Mon, 18 Dec 2023 16:05:32 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e40ce329-9db6-11ee-98eb-6d05b1d4d9a1
Message-ID: <e0e01e1f-bfe3-401c-b418-858aab6114b3@bugseng.com>
Date: Mon, 18 Dec 2023 16:05:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/9] ACPI: address violations of MISRA C:2012 Rule 11.8
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com>
 <44c8f94bcfe4f0e33e53a7eb8aef826e7d906196.1702555387.git.maria.celeste.cesario@bugseng.com>
 <a9b5e527-b2a8-4edb-8285-77e6be0152e3@suse.com>
From: Simone Ballarin <simone.ballarin@bugseng.com>
Organization: BUGSENG
In-Reply-To: <a9b5e527-b2a8-4edb-8285-77e6be0152e3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 14/12/23 17:36, Jan Beulich wrote:
> On 14.12.2023 13:07, Simone Ballarin wrote:
>> --- a/xen/include/acpi/acmacros.h
>> +++ b/xen/include/acpi/acmacros.h
>> @@ -116,7 +116,7 @@
>>   #define ACPI_PTR_TO_PHYSADDR(i)         ACPI_TO_INTEGER(i)
>>   
>>   #ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
>> -#define ACPI_COMPARE_NAME(a,b)          (*ACPI_CAST_PTR (u32,(a)) == *ACPI_CAST_PTR (u32,(b)))
>> +#define ACPI_COMPARE_NAME(a,b)          (*ACPI_CAST_PTR (const u32,(a)) == *ACPI_CAST_PTR (const u32,(b)))
> 
> Hmm, I'm a little hesitant to take changes to this header. We've
> inherited it from Linux, who in turn inherited / imported it from
> ACPI CA.
> 
>>   #else
>>   #define ACPI_COMPARE_NAME(a,b)          (!ACPI_STRNCMP (ACPI_CAST_PTR (char,(a)), ACPI_CAST_PTR (char,(b)), ACPI_NAME_SIZE))
>>   #endif
> 
> What about this alternative code, btw?
> 
> Jan
> 
If the file is not supposed to be changed, I would consider adding it in
docs/misra/exclude-list*.
For the moment, I think it is better to drop the change.

-- 
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:06:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:06:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656120.1024113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFCG-00062j-V0; Mon, 18 Dec 2023 15:06:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656120.1024113; Mon, 18 Dec 2023 15:06:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFCG-00062c-SS; Mon, 18 Dec 2023 15:06:20 +0000
Received: by outflank-mailman (input) for mailman id 656120;
 Mon, 18 Dec 2023 15:06:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFFCF-00062U-KP
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:06:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fe26b818-9db6-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:06:17 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 44E754EE0742;
 Mon, 18 Dec 2023 16:06:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe26b818-9db6-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [XEN PATCH v2] xen: move declaration of first_valid_mfn to xen/numa.h
Date: Mon, 18 Dec 2023 16:06:12 +0100
Message-Id: <ad7ee70bd00c0de4b6dad48c91281929e98ef95c.1702911455.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Such declaration is moved in order to provide it for Arm and PPC,
whilst not violating MISRA C:2012 Rule 8.4 in common/page_alloc.c:
"A compatible declaration shall be visible when an object or
function with external linkage is defined".

Signed-off-by: Julien Grall <julien@xen.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
This patch is a rework of a previous one appeared in this series [1], of which
patches 1 and 2 have been committed already.

The updated patch was provided by Julien in this thread [2]. I added the commit
message and the rest of the information.

[1] https://lore.kernel.org/xen-devel/cover.1702285639.git.nicola.vetrini@bugseng.com/T/#mee6def855787d932fe2f10d5648d437dcb6f046c
[2] https://lore.kernel.org/xen-devel/cover.1702285639.git.nicola.vetrini@bugseng.com/T/#m3c5b141b806530b5920bb5e9dd53631195560317
---
 xen/arch/arm/include/asm/numa.h | 6 ------
 xen/arch/ppc/include/asm/numa.h | 6 ------
 xen/common/page_alloc.c         | 6 ++++--
 xen/include/xen/numa.h          | 2 ++
 4 files changed, 6 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/numa.h
index e2bee2bd8223..a2c1da4a82f7 100644
--- a/xen/arch/arm/include/asm/numa.h
+++ b/xen/arch/arm/include/asm/numa.h
@@ -11,12 +11,6 @@ typedef u8 nodeid_t;
 #define cpu_to_node(cpu) 0
 #define node_to_cpumask(node)   (cpu_online_map)
 
-/*
- * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
- * is required because the dummy helpers are using it.
- */
-extern mfn_t first_valid_mfn;
-
 /* XXX: implement NUMA support */
 #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
 #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
diff --git a/xen/arch/ppc/include/asm/numa.h b/xen/arch/ppc/include/asm/numa.h
index 7fdf66c3da74..204180ad5b98 100644
--- a/xen/arch/ppc/include/asm/numa.h
+++ b/xen/arch/ppc/include/asm/numa.h
@@ -10,12 +10,6 @@ typedef uint8_t nodeid_t;
 #define cpu_to_node(cpu) 0
 #define node_to_cpumask(node)   (cpu_online_map)
 
-/*
- * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
- * is required because the dummy helpers are using it.
- */
-extern mfn_t first_valid_mfn;
-
 /* XXX: implement NUMA support */
 #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
 #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 9b5df74fddab..d874525916ea 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -255,8 +255,10 @@ static PAGE_LIST_HEAD(page_broken_list);
  */
 
 /*
- * first_valid_mfn is exported because it is use in ARM specific NUMA
- * helpers. See comment in arch/arm/include/asm/numa.h.
+ * first_valid_mfn is exported because it is used when !CONFIG_NUMA.
+ *
+ * TODO: Consider if we can conditionally export first_valid_mfn based
+ * on whether NUMA is selected.
  */
 mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
 
diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h
index 287e81ff6666..a10d4b1778a0 100644
--- a/xen/include/xen/numa.h
+++ b/xen/include/xen/numa.h
@@ -108,6 +108,8 @@ extern void numa_set_processor_nodes_parsed(nodeid_t node);
 
 #else
 
+extern mfn_t first_valid_mfn;
+
 static inline nodeid_t mfn_to_nid(mfn_t mfn)
 {
     return 0;
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:13:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:13:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656127.1024123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFJ3-00084Y-Lg; Mon, 18 Dec 2023 15:13:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656127.1024123; Mon, 18 Dec 2023 15:13: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 1rFFJ3-00084R-Iq; Mon, 18 Dec 2023 15:13:21 +0000
Received: by outflank-mailman (input) for mailman id 656127;
 Mon, 18 Dec 2023 15:13:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFFJ2-000837-Ku
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:13:20 +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 f9fdf044-9db7-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 16:13:19 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40d12ade25dso17945915e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 07:13:19 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d1-20020adfe841000000b00333404e9935sm5893196wrn.54.2023.12.18.07.13.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 07:13:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9fdf044-9db7-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702912399; x=1703517199; 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=gKyIHACRia97J7Bd6I0jfvQXW42r6xNI6IA+Nbk/jb4=;
        b=KyKUGytHdvBqzF9ZwCymrrxo7SrvTnq78F0jT1eQCJG2rnVpa8XlxdPkKZUqd9lER0
         mOAskzOR46GAjHHX1huWwTNjen4JSPM2KTm60ZueQ/jKHXOcPH3LSt/AGWe2YNFgmqkB
         YjdLdYEMZS52slWw50fqDdHL/m4ftuKly+Usrd3ATbLV2MutLgOI3W/nSJAY2Id75f3c
         6KyBTxLrPlfDwmVXscqeewGdPdlrBUBduLLwZlwhDxS7U8YzMjNzjpyYmgLihtEb5Mgx
         t8YeccEXkBIPddQ3mvaRI/nm3l/v93Z1A/SNo2THCdUXUBPDObz9NAlk1dWYtptFr7Gb
         35JA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702912399; x=1703517199;
        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=gKyIHACRia97J7Bd6I0jfvQXW42r6xNI6IA+Nbk/jb4=;
        b=e4PAQb8u3wPfrN+7Dha9znprtDmNxeYkJBnEQMb6cJUlT9GeP2T7WH+XDGUqagxOOn
         i6GY6vqwoaJAXpkxKNfy1+Tzt1I1jGklbai+VkXf1qbjoXz5FIm30T7fn4d764pa08ne
         Ah0F6CXPrni/PDM+8MqV74gXidTqK/kY/MAlJhCZ6Jc2tDAqU8m3kMpcYOyYFNuLOnv3
         G6h24o2J08SZin1Akbuumd4o73a28O3oMAWjj4wlIlrP4dDLicNs9fkX+fEyxkGPKktQ
         SFTkzMmFo8VT91CzKRYlQUe0GJVkqUK8YFc2uhlGbVD6Es0c3X97tBKv+fL2CmhFjLHX
         476w==
X-Gm-Message-State: AOJu0YzX5LAq2/W3hrHuPxN9Ua2C4r7wdpCobwKmSLrpMk5OQ2I28bma
	gwpUTOX7BCKuVgSqMoZcJundjckpkLzdwEV9+iWw
X-Google-Smtp-Source: AGHT+IH6DUQgj0qemM0y5jm7NyruBMvE/mZXci0tZlMSX57cQLg1eOyXx7Fc5Gp+0WXcSfrIGF0iPg==
X-Received: by 2002:a7b:c846:0:b0:40c:5f0b:d62e with SMTP id c6-20020a7bc846000000b0040c5f0bd62emr4702634wml.83.1702912398895;
        Mon, 18 Dec 2023 07:13:18 -0800 (PST)
Message-ID: <6ecac5e1-2131-44b0-af07-eeacfbd6b522@suse.com>
Date: Mon, 18 Dec 2023 16:13:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?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 max_page calculation nor pfn_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

As observed by Roger while reviewing a somewhat related change, there's
no need here either to open-code the (largely, i.e. once setup_max_pdx()
was called) fixed relationship between max_pdx and max_page. Further we
can avoid open-coding pfn_to_paddr() here.

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

--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1569,7 +1569,7 @@ void asmlinkage __init noreturn __start_
                 continue;
             }
             map_e = e;
-            e = (pdx_to_pfn(max_pdx - 1) + 1ULL) << PAGE_SHIFT;
+            e = pfn_to_paddr(max_page);
             printk(XENLOG_WARNING "Ignoring inaccessible memory range"
                                   " %013"PRIx64"-%013"PRIx64"\n",
                    e, map_e);


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:20:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:20:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656133.1024138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFPp-00059r-EW; Mon, 18 Dec 2023 15:20:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656133.1024138; Mon, 18 Dec 2023 15:20: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 1rFFPp-00059k-Bo; Mon, 18 Dec 2023 15:20:21 +0000
Received: by outflank-mailman (input) for mailman id 656133;
 Mon, 18 Dec 2023 15:20: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=W5ff=H5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFFPn-00059W-Sy
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:20:19 +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 cf39fbeb-9db8-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:19:17 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-33664b6d6d5so1015297f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 07:19:17 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 df5-20020a5d5b85000000b003364a0e6983sm12011852wrb.62.2023.12.18.07.19.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 07:19:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf39fbeb-9db8-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702912757; x=1703517557; 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=d72LA5toV9dc1Tf/rdYFCxcsJs5cMzbAaYGqLCerd2Y=;
        b=EPPpzSlABXBY5HULC5cm58CrxsObmE8WszfWXJIfKmQ2m2MIZeDh2TzuVoOCy+/h6v
         r1cChNyYw4vXM77qDoXqmnbnn0y1feGk4ZIfOljjJyx9fUhG2Z1MfX8CrXRxTdRhmrrs
         x6v2zwK1oDI74I95bpj2DCNIGz1++w0ZbF140=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702912757; x=1703517557;
        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=d72LA5toV9dc1Tf/rdYFCxcsJs5cMzbAaYGqLCerd2Y=;
        b=qYgEoJZehomGyMHvkvhV9hdk75bG+Bb9U/gnte2uCO2Nb8vEg7/ZsSFNmug0oU3CWe
         O3iUmIKrIlg194hmI6zSXOwVMnMN1gV1VtE6VxZxUbomqZoBy3+xozrL13kNj2wfc4gf
         Hk0gpEMDBpq6tWbdTjlm3Ok6sfIo9q1c2icGUb+BHFJ8OZdo1wSmBmcFVFA2J8u9g/oU
         5dVvzN6KMEmQDtud4F56nYWPcLiKj2jVzBaFCyozQJMJWeAYC2+w4qFqAyVH1yWqGCFN
         AoSeaxMt1AV4dX4GKuZmC+qdg9wxBLxuesyMacWSkL8BPwV2cfXncFaN8Rn+VcKgVTHC
         yDRQ==
X-Gm-Message-State: AOJu0Yw/3DppEv8FDS/fxaCRHe7yS3ODv3LhpDOWNSP4P+hz0/NUrMOm
	aAbaQ6gN2ty1yqhlwoKl/NGv9A==
X-Google-Smtp-Source: AGHT+IG6hGAsh9BuhdB8LcmqFHeNsrHBwpPQ4jlEhWWE950gHikxm3MbzaGBzswBKj5j/YjMrmgzIA==
X-Received: by 2002:adf:e942:0:b0:336:6a2d:4ff0 with SMTP id m2-20020adfe942000000b003366a2d4ff0mr683997wrn.101.1702912756730;
        Mon, 18 Dec 2023 07:19:16 -0800 (PST)
Date: Mon, 18 Dec 2023 16:19:15 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 3/4] x86: limit issuing of IBPB during context switch
Message-ID: <ZYBi83-LWEwywUuD@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <29e2b527-16b8-e72d-f625-781aedf21bc4@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <29e2b527-16b8-e72d-f625-781aedf21bc4@suse.com>

On Tue, Feb 14, 2023 at 05:11:40PM +0100, Jan Beulich wrote:
> When the outgoing vCPU had IBPB issued and RSB overwritten upon entering
> Xen, then there's no need for a 2nd barrier during context switch.
> 
> Note that SCF_entry_ibpb is always clear for the idle domain, so no
> explicit idle domain check is needed to augment the feature check
> (which is simply inapplicable to "idle").
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

> ---
> v4: Tighten the condition.
> v3: Fold into series.
> ---
> I think in principle we could limit the impact from finding the idle
> domain as "prevd", by having __context_switch() tell us what kind
> domain's vCPU was switched out (it could still be "idle", but in fewer
> cases).
> 
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -2005,17 +2005,26 @@ void context_switch(struct vcpu *prev, s
>      }
>      else
>      {
> +        unsigned int feat_sc_rsb = X86_FEATURE_SC_RSB_HVM;
> +
>          __context_switch();
>  
>          /* Re-enable interrupts before restoring state which may fault. */
>          local_irq_enable();
>  
>          if ( is_pv_domain(nextd) )
> +        {
>              load_segments(next);
>  
> +            feat_sc_rsb = X86_FEATURE_SC_RSB_PV;
> +        }
> +
>          ctxt_switch_levelling(next);
>  
> -        if ( opt_ibpb_ctxt_switch && !is_idle_domain(nextd) )
> +        if ( opt_ibpb_ctxt_switch && !is_idle_domain(nextd) &&
> +             (!(prevd->arch.spec_ctrl_flags & SCF_entry_ibpb) ||
> +              /* is_idle_domain(prevd) || */

I would rather add a comment to note that the idle domain always has
SCF_entry_ibpb clear, rather than leaving this commented check in the
condition.

> +              !boot_cpu_has(feat_sc_rsb)) )

I do wonder if it would be more fail safe (and easier to expand going
forward) if we introduce a new cpu_info field to track the CPU state:
relevant here would be whether RSB has been overwritten and IBPB
executed.  Such state would be cleared on each return from guest path.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:24:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:24:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656147.1024148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFTi-0006B1-4P; Mon, 18 Dec 2023 15:24:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656147.1024148; Mon, 18 Dec 2023 15:24:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFTi-0006Au-1r; Mon, 18 Dec 2023 15:24:22 +0000
Received: by outflank-mailman (input) for mailman id 656147;
 Mon, 18 Dec 2023 15:24:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=De97=H5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFFTh-0006Ao-51
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:24:21 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 830382d9-9db9-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:24:18 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c48d7a7a7so30987415e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 07:24:18 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 n10-20020a05600c500a00b004094e565e71sm42512731wmr.23.2023.12.18.07.24.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 07:24:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 830382d9-9db9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702913058; x=1703517858; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ZI8fYECyFWhMfQ1QmsKU5KlQzSU2OGF2knoo9S9tKTg=;
        b=cjzM/vTyHRxS1ayt41aUbLGJRDUyMEhV7kYETeaQuQ+Ndt2dwjoBpUVID+mmsDfPz2
         2B/sQsGtAPfNLivVMayS6zNEfGWEUnsd2K/h+uZ/vhxjKoFjmOQ3dGcmetKSnfXb707i
         kBLcbjYe2mc6v5+mLjFyblUNgYoj4hz7rY1ug=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702913058; x=1703517858;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ZI8fYECyFWhMfQ1QmsKU5KlQzSU2OGF2knoo9S9tKTg=;
        b=hS6qkM+ZNGV1fbThTUQFMawgh94mHcTg4rlUxFMZoCx45py8qeSmGiCtUUm5oz3xOF
         LZ0Z3VFzIOG8mYNzI1zZPMs60KJGrE4hzwjzxCLhrSX3isylKErOpGr42iu0XDySR6Bq
         dc/FhVWbEmVRWtLULmrksGstrP610dtRpzrO24p2ohFKoms4S+yC+EFOGMLBXLW796Yz
         KrJfdC1JwPaQHlTb7wUWekAdSgv3KB9GMr8taLBqv8h0Pwp4L1bue9vK6yZB6LG0XNeT
         0xNwn+KfcKceTauNpwwMU+XcKUGPCa+S2hcuo04aQ6NjDwNhWP6S9P/gV8v/gYGahYka
         2JUQ==
X-Gm-Message-State: AOJu0YxmXLzdcqjyR+/sQJ4KekEsW3jt40XBOo/W+aDdlJmaNGyjNWcv
	L1ZGVzyLfH7/tdp09boo17zh0g==
X-Google-Smtp-Source: AGHT+IEJvqkxHds9i4CrtHzLParZ2U2GYZtcKQCFJ3JLaqh4DrC+xGEZJvW3Sds1EHVAFdSXkg2X4Q==
X-Received: by 2002:a05:600c:19d0:b0:40c:6b66:6b43 with SMTP id u16-20020a05600c19d000b0040c6b666b43mr3362562wmq.80.1702913058376;
        Mon, 18 Dec 2023 07:24:18 -0800 (PST)
Message-ID: <b4d71538-1fa2-4552-b054-623c4ba64aa1@citrix.com>
Date: Mon, 18 Dec 2023 15:24:17 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: don't open-code max_page calculation nor
 pfn_to_paddr()
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <6ecac5e1-2131-44b0-af07-eeacfbd6b522@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <6ecac5e1-2131-44b0-af07-eeacfbd6b522@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18/12/2023 3:13 pm, Jan Beulich wrote:
> As observed by Roger while reviewing a somewhat related change, there's
> no need here either to open-code the (largely, i.e. once setup_max_pdx()
> was called) fixed relationship between max_pdx and max_page. Further we
> can avoid open-coding pfn_to_paddr() here.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:28:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:28:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656150.1024158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFXj-0006nM-LX; Mon, 18 Dec 2023 15:28:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656150.1024158; Mon, 18 Dec 2023 15:28: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 1rFFXj-0006nF-Iq; Mon, 18 Dec 2023 15:28:31 +0000
Received: by outflank-mailman (input) for mailman id 656150;
 Mon, 18 Dec 2023 15:28: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFFXi-0006n9-1b
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:28:30 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1754843e-9dba-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:28:27 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40d190044c5so12110645e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 07:28:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bh15-20020a05600c3d0f00b0040b4ccdcffbsm43708967wmb.2.2023.12.18.07.28.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 07:28:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1754843e-9dba-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702913307; x=1703518107; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=bb538l1cplwls0pdfdQNLvJxmZ7uqWXDjusq2ozBKH4=;
        b=RcK4SEJoyJvDQDDcIVA0Z5sjhL5yLgdo/VOlwyqX6TqD+x9v5P02oCulic9yL0eBGm
         Kg1LaGSEp/WwDQ3zcVMiR/5jicgIqSsdOOU4p/Y2x6429UC8AU13pl/E5v826ThsETel
         BRvMIs55HrdFosfKSZLmJTTnkw2j1c5fUhbVm9ve33+eCTyFvkI38+dJEnEyWhPn+rnZ
         J+UCTbJwMlS5UHxjhvIwxT7oj0fpkJWHVaYtThto90pb4hPuzxcJipFiQsFAsiXGF8qc
         GfcXkIMXLn29DtY8tMR5lR/5ntbVk2MdyB8mHqKKKXlLbnWcHgJPU9c8JjDKRu+/PLBI
         6HYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702913307; x=1703518107;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=bb538l1cplwls0pdfdQNLvJxmZ7uqWXDjusq2ozBKH4=;
        b=kzaB5lICP5zX5dxJO9oAh/+HPBn3LpVUXwVaYUQEIMaWlChNYoVqH7SgRUNkVfIFDh
         /TCNnQQ5QL7EYaNaldskUItKlkujpvCRc+t6g8cJ19iU6l3C0W6v+2T9m04PWKxATi+Z
         CYly8tcp7k0/anmxmWUnTjLl7el6iSWdzJPAtOCwSxCqSt3AHupq3+x5F0xdQm9JT2fp
         Y9Pf5YQn/y7QHJZeWE6VekP8QDCWyGvHcg+132Syg3VwLzWCKzyeFrPzY74a35LX7nR0
         VgsmkQXdRTvbufBfEsMr0/c/GiAxTWFcv61JXopKGu2dg/RMHAcr6waU1hfxEZQ31we5
         qHjQ==
X-Gm-Message-State: AOJu0Yz0kTBB1JLdZh3Bb09V5k/qxEOj5IZu+n71BtJkNgCA1dKc0l4D
	tQJ6tSO3hTYxX/NiYEIpT84K
X-Google-Smtp-Source: AGHT+IEAEmo0dhkWwsh9aNAsZNTJCMWpyvHDWf04ZfaD8lBkYAbQpNWy2/f/hV4olVZHY8E56lwTFA==
X-Received: by 2002:a05:600c:1c90:b0:401:b6f6:d8fd with SMTP id k16-20020a05600c1c9000b00401b6f6d8fdmr7925546wms.6.1702913307260;
        Mon, 18 Dec 2023 07:28:27 -0800 (PST)
Message-ID: <a092425b-3537-4639-aa80-f3a42fa2a94b@suse.com>
Date: Mon, 18 Dec 2023 16:28:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 38/39] xen/riscv: enable full Xen build
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <c56be97d180b996d431eb97e7b0a23ac28798996.1700761381.git.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: <c56be97d180b996d431eb97e7b0a23ac28798996.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

> --- a/xen/arch/riscv/configs/tiny64_defconfig
> +++ b/xen/arch/riscv/configs/tiny64_defconfig
> @@ -24,7 +24,6 @@
>  # CONFIG_COVERAGE is not set
>  # CONFIG_UBSAN is not set
>  # CONFIG_NEEDS_LIBELF is not set
> -
>  CONFIG_RISCV_64=y
>  CONFIG_DEBUG=y
>  CONFIG_DEBUG_INFO=y

... this unrelated (and perhaps even unhelpful) change dropped.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:34:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:34:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656155.1024169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFdH-0000RR-HT; Mon, 18 Dec 2023 15:34:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656155.1024169; Mon, 18 Dec 2023 15: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 1rFFdH-0000RK-DH; Mon, 18 Dec 2023 15:34:15 +0000
Received: by outflank-mailman (input) for mailman id 656155;
 Mon, 18 Dec 2023 15:32: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=vkXa=H5=gmail.com=j.tretter@srs-se1.protection.inumbo.net>)
 id 1rFFbc-0000Dz-Ss
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:32:33 +0000
Received: from mail-oo1-xc34.google.com (mail-oo1-xc34.google.com
 [2607:f8b0:4864:20::c34])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7787a61-9dba-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:32:30 +0100 (CET)
Received: by mail-oo1-xc34.google.com with SMTP id
 006d021491bc7-5913922ab10so2029730eaf.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 07:32:30 -0800 (PST)
Received: from ?IPV6:2603:8080:a900:257c::1000?
 (2603-8080-a900-257c-0000-0000-0000-1000.res6.spectrum.com.
 [2603:8080:a900:257c::1000]) by smtp.gmail.com with ESMTPSA id
 s186-20020a4a51c3000000b0059148accd55sm2794376ooa.23.2023.12.18.07.32.26
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 07:32:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: a7787a61-9dba-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702913548; x=1703518348; darn=lists.xenproject.org;
        h=subject:from:content-language:to:user-agent:mime-version:date
         :message-id:sender:from:to:cc:subject:date:message-id:reply-to;
        bh=19K4Q3KB/fFtoylQW777ooi7e8xpjTFA0NmaimpxH2E=;
        b=h9y2HcIqz2aVAPBpjOsNn5S4DHzMZ956JkSXehIhi9oaIJAW0WNEFJELLWY6gyz7Ra
         AOZg80h+qZ1x9sS720Nd3ReTCPKKsNLrjE2AjEZ0aDnSAhMkC13NeRY9SQ8mS8yI0vHA
         iftGg18XF3nabuBNC8CN5TrfklxA1oBVTLYEZA27qXniwKqPDFluPUQYks4rOiE2Ot5V
         64xfOiMnzgIQitWC6lkJ7h5VYJgCxaKPGTJFJ3vXXpVIIOMKXwUvnMOhl2yV8yBBpMBH
         kQl82cQiyVhhmG9DDLYrh+R1Nc1uFmd9GkybMxYI13lvJEu/r7gX99tGjz9uFCnCtJsn
         A4wQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702913548; x=1703518348;
        h=subject:from:content-language:to:user-agent:mime-version:date
         :message-id:sender:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=19K4Q3KB/fFtoylQW777ooi7e8xpjTFA0NmaimpxH2E=;
        b=IjQEx5mSF4MM6C3OqJU1gxQD4nkGXT/n0vSNxtg7h0JEg6QiemVL47/6LoJ4xe2HbY
         ohvosjzVF5vREFniD9pKXQOiKBFXCfmJXqYHPQFpRTSLMphEGxycbNj3jFING2WIaBeP
         i4T4XeXbnZYkeVQ8DBe0DRdyzYBpz7p4y1WdHqI3HIJTKrN9+kXZmELlaAYet5Y+j2TZ
         KCAvWE9MwNY9pDISV2e07fUQphwCDyJecMWK6ygWgJPm5h9Sz0myCy411naqStGhZqv7
         JR9vU4z5fM0kmO/J+45wbjFliFdhcI9NySPFdSgb/6jCB0PZw0vgpUx+3TvAcORxdalG
         xeJQ==
X-Gm-Message-State: AOJu0Yxzhfd2CNnfkX/A2jWMuAhz6x08kVnTQbDZbij6VgzYvaO+iXwD
	n+LWrvv/jXggKeU1X2NjOUJbsPPgqMg=
X-Google-Smtp-Source: AGHT+IHs1fc9vi+083cDFQhj4TTcVwDt6uliis4HkJGnwGzVNkPrWEMnJ9pXY5fTmH2cZjDDrlQ6AA==
X-Received: by 2002:a05:6820:162c:b0:58e:1c47:631c with SMTP id bb44-20020a056820162c00b0058e1c47631cmr11374749oob.10.1702913548202;
        Mon, 18 Dec 2023 07:32:28 -0800 (PST)
Sender: Joe Tretter <joerg.tretter@gmail.com>
Content-Type: multipart/alternative;
 boundary="------------sa3NGJFpO5XqPGY7IAZF0VJV"
Message-ID: <de8b87e2-a4a2-4e49-80f5-97c745f46500@gmail.com>
Date: Mon, 18 Dec 2023 09:34:28 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: xen-devel@lists.xenproject.org
Content-Language: en-US
From: Joe Tretter <j.tretter@gmail.com>
Subject: Possible bug in Xen

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

Hello,

I discussed the below problem with the QubesOS team on Github 
(https://github.com/QubesOS/qubes-issues/issues/4493) and they suggest 
that this seems to be a problem with Xen, and suggested that I post it 
to this e-mail address.

I have problems restoring backups in QubesOS release 4.1.2 on one of my 
machines.
Other users reported the issue too, but no QubesOS developer seemed to 
be able to reproduce it, therefore nothing happened for a while and the 
assumption has been that it's some sort of hardware problem.

I analyzed the problem down to the "scrypt" tool 
(https://www.tarsnap.com/scrypt.html) falsely complaining that the 
password would be wrong.
I proceeded and re-compiled the "scrypt" tool in it's latest version and 
found that the self-tests show intermittent erratic behavior.

This issue only happens with QubesOS/Xen Kernel, if I boot into a kernel 
without Xen, the problem can't be observed.
The problem can only be observed on one of my machines which is a Dell 
Inspiron 5675 with an AMD Ryzen 7 1700 Eight-Core Processor.

I hope you can help with this issue.

*With Xen - self test fails intermittently*


*Without Xen - self test succeeds*


Regards

~Joe
--------------sa3NGJFpO5XqPGY7IAZF0VJV
Content-Type: multipart/related;
 boundary="------------zrBOJYaJz93t7xlyjJQgFkV8"

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

<!DOCTYPE html>
<html data-lt-installed="true">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    Hello,<br>
    <br>
    I discussed the below problem with the QubesOS team on Github
    (<a class="moz-txt-link-freetext" href="https://github.com/QubesOS/qubes-issues/issues/4493">https://github.com/QubesOS/qubes-issues/issues/4493</a>) and they
    suggest that this seems to be a problem with Xen, and suggested that
    I post it to this e-mail address.<br>
    <br>
    I have problems restoring backups in QubesOS release 4.1.2 on one of
    my machines. <br>
    Other users reported the issue too, but no QubesOS developer seemed
    to be able to reproduce it, therefore nothing happened for a while
    and the assumption has been that it's some sort of hardware problem.<br>
    <br>
    I analyzed the problem down to the "scrypt" toolÂ 
    (<a class="moz-txt-link-freetext" href="https://www.tarsnap.com/scrypt.html">https://www.tarsnap.com/scrypt.html</a>) falsely complaining that the
    password would be wrong.<br>
    I proceeded and re-compiled the "scrypt" tool in it's latest version
    and found that the self-tests show intermittent erratic behavior.<br>
    <br>
    This issue only happens with QubesOS/Xen Kernel, if I boot into a
    kernel without Xen, the problem can't be observed.<br>
    The problem can only be observed on one of my machines which is a
    Dell Inspiron <span
style="color: rgb(31, 35, 40); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">5675
      with an AMD Ryzen 7 1700 Eight-Core Processor.</span><span
style="color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"></span><span
style="color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"><br>
      <br>
    </span>I hope you can help with this issue. <br>
    <br>
    <b>With Xen - self test fails intermittently</b><br>
    <img src="cid:part1.Xng0m8i8.j7nTWJpA@gmail.com"
      moz-do-not-send="false"><br>
    <br>
    <b>Without Xen - self test succeeds</b><br>
    <span
style="color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"><span>Â <img
          src="cid:part2.NgKR56BV.L0sFOgVl@gmail.com"
          moz-do-not-send="false"></span></span><br>
    <br>
    Regards<br>
    <br>
    ~Joe<br>
  </body>
  <lt-container></lt-container>
</html>
--------------zrBOJYaJz93t7xlyjJQgFkV8
Content-Type: image/jpeg; name="WithXen.jpg"
Content-Disposition: inline; filename="WithXen.jpg"
Content-Id: <part1.Xng0m8i8.j7nTWJpA@gmail.com>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEASABIAAD/4QCuRXhpZgAASUkqAAgAAAAHABIBAwABAAAAAQAAABoB
BQABAAAAYgAAABsBBQABAAAAagAAACgBAwABAAAAAgAAADEBAgANAAAAcgAAADIBAgAUAAAA
gAAAAGmHBAABAAAAlAAAAAAAAABIAAAAAQAAAEgAAAABAAAAR0lNUCAyLjEwLjM2AAAyMDIz
OjEyOjE3IDE2OjI3OjIxAAEAAaADAAEAAAABAAAAAAAAAP/hDM9odHRwOi8vbnMuYWRvYmUu
Y29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVT
ek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1w
dGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUv
UmVzb3VyY2VFdmVudCMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMv
MS4xLyIgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIiB4bWxuczp4bXA9
Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6
ZG9jaWQ6Z2ltcDozYzdjZjRjOC1kNGY2LTRjODEtYmY1Ny02MmRhMGQ5ZjA0ZDIiIHhtcE1N
Okluc3RhbmNlSUQ9InhtcC5paWQ6ZDRjZTczNTgtYmRiMi00NTNkLTk0NzUtMTllNGI5ZDZm
NmE3IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NTE4OGU1YWUtZWIyYy00
OWRjLTg0NmQtYzQ0NDQ0OTFhYzhmIiBkYzpGb3JtYXQ9ImltYWdlL2pwZWciIEdJTVA6QVBJ
PSIyLjAiIEdJTVA6UGxhdGZvcm09IkxpbnV4IiBHSU1QOlRpbWVTdGFtcD0iMTcwMjg1MjA1
MTk0OTMyNSIgR0lNUDpWZXJzaW9uPSIyLjEwLjM2IiB4bXA6Q3JlYXRvclRvb2w9IkdJTVAg
Mi4xMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMzoxMjoxN1QxNjoyNzoyMS0wNjowMCIgeG1w
Ok1vZGlmeURhdGU9IjIwMjM6MTI6MTdUMTY6Mjc6MjEtMDY6MDAiPiA8eG1wTU06SGlzdG9y
eT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6Y2hhbmdl
ZD0iLyIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMTg0M2NjYy1jMDUwLTRiODYtOWE5
Ny05ZDc2MjljMGQ5NjQiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgp
IiBzdEV2dDp3aGVuPSIyMDIzLTEyLTE3VDE2OjI3OjMxLTA2OjAwIi8+IDwvcmRmOlNlcT4g
PC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/+ICsElDQ19QUk9GSUxFAAEBAAACoGxjbXMEQAAAbW50
clJHQiBYWVogB+cADAARABYAGAAwYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
APbWAAEAAAAA0y1sY21zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAANZGVzYwAAASAAAABAY3BydAAAAWAAAAA2d3RwdAAAAZgAAAAUY2hhZAAAAawA
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
AAAAAAAAAAAAAAAAAAAAANHuNHiTRQAAAaXgQGjJQQGQAAAAAAAAAAACkAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABo9xo8SaKAAADS8wUyCghDmAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR7jR4k0UAAAGl8oBoAGQAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaPcaPEmigAAA0vMgOhDiZB2KZ
OZDqek4GjmaKYMGjZxNGimzByIDsaMEIaOR6DmZNlMmCHY4gAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAA0e40eJNFAAABpeJSFIYIAAAdCGgZBCmTQMmzBspDJkp2MGSkNHM6EMGjZg
yDocwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaPcaPEmigAAA0vAyUoKQpTIKQwaIU
pk0U5g6HM0UwdSEAMGzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHuNHiT
RQAAAaOS5IdinMpshQQycTuZIYO5o5HMHY4mimTqZNHIpg2YAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAABo9xo8aUoAAANhRAAUpkAAAAGiEAAAANGQbKZMgAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0ekHgSlAAAB/8QALBAAAgIBAwMDBAMBAQEBAAAA
AQIAERIhIjIDEDETFCAwM0FgI0JDUEBwkP/aAAgBAQABBQL/AL78exh7HkDtClWX6P4/8I8c
YTBdvH8HjoBZg17DksNVUTj2XlG6gEuJwQDEAeovAN2Xz2EfklQdvEPiyJZEsiFm/QH45TKZ
SzLMvdSQBBF+j+P/AArKEodqB70BKldqEqUJQ7N0wRhaIN8weem8XRQko5KNnZfPYdi2vTMI
0x1rQCpWgFShPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9
YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9
YT1hPWE9YT1hPWE9YT1hPWE9YT1hPWE9YT1hD1QRYliWJYliWJYliBxMxMxMxMxMxMxMxMxM
xMxMxMxMxMxMxMxMxMxMxMxMxMxMxMxMxMxB1AJ6wnrCesJ6wnrCesJ6wnrCesJ6wnrCesJ6
wnrCesJ6wnrCesJ6onqieqJ6onqiZrPVEPUUzNZ6ohZDLSDqAT1RPUWeoBPVE9RZ6oE9YT1h
PWE9Uf8A4a3MGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0
waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGm
DTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0w
aYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmDTBpg0waYNMGmD
TBoVIly5f0D5PmDUf8jI43rkJmsuZbW0AbTITJZYrISxL1hIWWJYmQsmWKDXMhM1hOoIPYmj
YrITITITIXFOQbQDUXu/5BmmUx7eoJcpomoVtty51R8/7NQK4LFG3/kBG9P07PpmemZgRMDi
wtfTM9PU9MmYGx0zeDUvTIhW463Chy9MiBCCVmGnpkg9MmHpkzAxVKzATG56ZhUlmW+pRL4E
NjUVWVWUsACIqtl/yG0mzKZt2y2nx6i10/C8R5bx1uPyu2BYjfN83zfN83zfN83zfN83zfN8
3zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83z
fN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN
83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN83zfN8topGNrLWdU2vyu2Thety+9wmpk
B3uA3LEvvlrcsSx2sQnTtlqCDFNi+9y4D+vtE49up4+QFMnCt1TE9wNaMo92BsiBZie58qpm
OlQiG7o9z5GVgGL2PjGYmGD9eaJx7dTx8v7Jw/8AgDeU49up4+X9k4f/AAA+U49ur8/7Jw7X
LlzIVcJoXLEsS4TQBliWO1yxLliX/wA6xLli7liA6WJYmXexLljtYgNy9YDcv/knynHt1fn/
AGTh2rcBAJ+IQYRCIRNZ5hEqVrRgi+AIvgD/AJpFwgwgyoZVQAiAStKPbxK01utf61fb+0Fi
a3/xD8D5TjLnU8fL+ycP/gB8pxlTqePkDbKy45rM1mazNZmszWZrM1mazNZmszWZrM1mazNZ
mszWZrM1mazNZmszWZrM1mazNZmszWZrM1mazNZmszWZrM1mazNZmszWZrM1mazNZmszWZrM
1mazNZmszWZrM1mazNZmszWZrM1mazNYeoBPVnqz1Z6s9WerPVnqz1Z6s9WerPVnqz1Z6s9W
erPVnqz1Z6s9WerPVnqz1Z6s9WerPVnqz1Z6s9WerPVnqz1Z6s9WerPVnqz1Z6s9WerPVnqz
1Z6s9WerPVnqz1Z6s9WerPVnqQEmHynHt1PHyqmC2uJsipW2hgosouRIIhUiBSYATMTKNFCJ
htgFwioVImJMFRhi0xPwIoShgosouRIIhUiKLKgGeYRvZCIFJgUmYmyCJiYFJirZAuVpiewF
yjeJmDdgCYq2SCJiYoViq2oFswrsFJ+DACBSQqXPHehgATKN4mUZg0VcpRsgj/mrzh8px7dT
x8v7DXpk72Aj+RqnT5Jox0RtQdyr4U0zaM2hGqRdC1RtRcWG7qm/EAsoLJNmtBqnT5Jox0Rt
QdqJ5rV/uHQncoF9LIZN4fydy9Pku12q/wAReJI9ZfuXpFmgfTH8AUoEyHqNwrRavsY2q/5p
58drg1ReC6dQ+XO2Kdy6E6J/zF5w+U49up4+X9oRXeq+QFwGp+fMqpcP0ALPcivgRRgFmEV8
L071pALh0MsfAipY7AX86+NdgL71KNAFu1Rrmp7kUYBZ+AFkAnsRR7AXAL+RFGpWgF/+ZecP
lOPbqePl+RohAPU0h1MAqHEdQjVsZiO3TFk0Q+h/PhHGs6hmgi1OPUc7m1A0VRktb3rF/C8k
l6t906xdHXymrch5mX8S1gMcjx6hg+2vhhXUfnXagBpOpVP40EGgoDqvpG1EGiONY3CJUC79
DL0gNRaycRuH+V6asXOp+2HpemY3nqc4ujisRjmdUbUDRVrBlxnU56UNR0+amiwoz8oQC3nq
c24Xp2PltR/4l5w+U49up4+Q5BiJkby1ZyZm0DETI2STMie4NQm5kTMjAxEJvtkayMBIl2Sx
MyJhNwEqQahYmWaV6lwGoWJlmB2EvRGxJJMLEwMRASJkZemRrMgBiISSSSe2RmRlmFiZZrIw
MRMjdmsiZZoEiE32J2wGpZskmZt3BqEkwnbe2A12J2xWxhNxzb2SA7CAkRWokkzImE3AxEJJ
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
C3MdahSpjp8QLlWSKhSpibx0x3MKNECCsGXUrUK1MdAthU3FahSoFuBbgWyRXYDYBfdhQwMC
3MbJWoUqY6YzE5VGUD/trzbzB9Lp/c7A0Swivrddi38lgS9gIxUhSx0uXsVtt7iwuwICtgxD
R4ktFIoVcPnSopqZDMxzZU/xj7Rbc9XpUDUinVjak2qkUPtZC72ObKsBFMyAdjpBWCmo1ZQ1
jkMgRS0Caxc2b2K23LcY1Ef9pebeYPpdP7gWxWrLiStAioFsBbJFQih/6b/XV5t5g+l0/uL9
vp834NwfiPtJD9onb+7LzbzB9Lp/c75MZkwmREyN+f3hebeYPpdP7iqCMdWWp1VojpytezY4
jHBKs+Y/H8kW6rXUK0T04pATp8lNMwvqHpzSlLRzv6mvUP21OwVfZ8YOnFW4Kzesm+3F+3yc
1GCiYiKsNdmN9P8ATl5t5g+l0/uBqmcLaF7mQMFX82ogtbZ3M92WhIMvapCn8ltxIM0pWAGl
s1nM4hgAKuAEwgkXBULWzEEmsIGGINNGNzOA9ywx/Tl5t5g+l0/uILPklSIVImJMVcpjqVoY
aYkwKTAupGkxNAEyjeJlGYNFXKeOzAYwVGGLSgQACqoWjLjF8R+f64vNvMH0unz6flOd7/E/
KnVdJdTwPypEsRzti6hdUXTqHy52xTu8Ewj+OtFuPWRGraKvBMaY2y+I/P8AXF5t5g+l0/uD
oOJ6Dz27T27T27T27T0HEPRcz27T27T27T27T27T27T27T27T27T0Gh6Lmei5nt2nt2nt2nt
2nt2nt2nt2nt2nt2novXt2nt2g6LCehD0WJ9u09u09u09u09u09u09u09u09u09u09u09u09
u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09
u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09
u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09u09
u09u09u09u09u09u09u09u0HQYGmlNY8fR//xAAiEQADAAEDAwUAAAAAAAAAAAAAARFwEBIw
AiCgIVBgkOD/2gAIAQMBAT8B+BP3VdNEtWPVYF3o3rvX3uI9B6zBC0fhasrKysrKysrKysrK
ysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKxeHx
eFYDfEsBvBr4ksBw28N/B3//xAAkEQADAAEBBwUAAAAAAAAAAAAAARFwIAIDEDBQYKAhMUGw
0P/aAAgBAgEBPwHsB8N2vnqt47T9TZ9tD0twTvZM6tCa3pauB79EokRERERERERERERERERE
REREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREQ14gLwGu
U8BrBq5TeA6XkzBt/dI0n5B//8QAOBAAAgEDAgQFAwIFBQEAAwEAAAERECExAkEgUWFxEjAy
gZFgcsEDIkBCUKGxUmJwguHwkJKi0f/aAAgBAQAGPwL6FRGWxSau/wDFsxeD2ELuYuewoye5
mjE+Ze5pWa/9TRS0OmntV8f7pLf3qhnOxmbHOx//AL9A4pgxRSf+0ff+NxS6rjgxTBilrEbk
7LFMGBdi6ZZMfkMdY4MGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBg
wYMGDBgwYMGDBgwYMGDBgx/RcGDBgwYMGDBgwYMGDBgwYMG5ubm5gwXRhm56T0lkbmDBuYMG
DBgx/wDg2wYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBg
wYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwYMGDBgwY
MGDBgwYMGDBgwYMF15a7jM6hf0lPmQ7VUXklEl9xdaOBTTTG9L1ir5KsIXD2pFcUSaz/AElE
eJyR1MsjqfzHuZNU8CfHpH4t0P8AcLt/SUoumNvlBtiBdoNPNEZuNGnoaehr6j6qD/rAuhp6
GWLuSuRblAux/wCC55NU7jxLNXUlcoEtqOTO5pfIX9zWkJrlA7t9zYwhciXH9JTJ8SJ28R6t
BO3iPDOnBO3iI2NR7VXfj0kwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkw
vkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkw
vkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkw
vkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkw
vkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkw
vkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkwvkulcWTD+DD+GLvxo09jB78G
HS/Dngw6ZM0ySq4dOvAutL/T+kVX93440aew2e571w88zG571tvkfYuf5qhdDSahjgdUKRWw
dKo9z/sP6e0iq/u/HHpNPb/gHSKr+78cekXb/gHSKr+78cekXbikx5Of6pmkGHS/kZ4I/pmk
VX93449Iu3AuguguhsO2R9TUexg9j2MbC7CEhC6CF0/pqHbI+o+psLcVhC7kdaZFzMbDG/Yx
FjkYMUuv6TpFV/d+OPSLt/wDpFV/d+OP3/ArrB6kepHqR6kepHqR6kepHqR6kepHqR6kepHq
R6kepHqR6kepHqR6kepHqR6kepHqR6kepHqR6kepHqR6kepHqR6kepHqR6kepHqR6kepHqR6
kepHqR6kepHqR6kepHqR6kepHqR6kepHqR6kepHqR6kWaNjY2NjY2NjY2NjY2NjY2NjY2NjY
2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjYuIVX934413J6kb0k
nrT24LVuTb54ryRxLnSetPat8DpA+VY34p4I34WqpXkbhvtTDXfiUbokfTgnqWIo+hikf05d
6IVX93449I1O4ojECjPQjkNdSbDlrAlvI24noab4NXai08jXfJHWqjI24noaWvDbmPVbsXIZ
q9PSK9CRDXUmw5awJbyNuJ6Ecz2It8k2NblXNN8D7n/WCLewuxpvgmxc06dkavT0im09RX5C
7ns6be5qjEGmeZq9PSC0S+uDP9x3yokS3EafTG9cQJ8kLuPtXA11GhUnfUaHOEPqNPkJb/01
d6IVX93449PmzX0oxHkQuC/BekUvwR5PpXBc9K/hJLUkTZ2rFI4YVY8qKT/DrvRCq/u/HHpJ
6j7CxM7GtQrGhRlDfXkdDTiHyGrdDH/9KjnZCup6D0wjQoyietVjHI046j/tJsPuN6Ygb52G
txxhCf4NPY0KFc1W2JtTWoVjQoJeENu9jT3g1qMG2eRNpnceHYT3FjHI1E/imruZMLYeMxc1
NRgdtzT2NOOpO3Y9hRgb0xFJ3mumj59RzFkabqZ2Ndq3E7expH3IpbCNPvTkXHTQoJtM7ji9
hPqN6Ygb52L/AMxcYrCSietJOlNCjI1/cuM0kVsoFq+f4Nd6IVX934413pM3EPkZpPDaq6Uv
SKzVdCVS5AunA+pYg9uKCCLfFLl696xWdyKRS9NNZ349JHAly4GxLkWpPSq6UuNmlcuBLkJc
uBs08DY1/BrvRCq/u/HHpJbPDJZmb11djS43g14OrOqZEKyLx7UVlzPF1MW8Mn/Yfpj2NWLd
Cd5LqBdzXjga4tOL9KQWVh9zTBpvDa4NOL9KQWVh9zTBpvDaILWRZmTT1G5IZGkcPHA1Rt7D
7F6aoeBt7DZCLMyaeo3JDI0jh3Qr3ZLxwasW6VS5GnsMvzotPyauhN81fesV6s96PsSsUV7s
a6UWfgUTgb/BLdhaeZEmeBqjb2H2LnvRCq/u/HHpIv7HTBYm80sxzujTGEzV1FGEP/SNvcs3
RTNiGPtAluNjV79DwuiZq60sy5KFwXYlex1HzdJ5iV7dDTm1bsSvY6j5uk8xK9uhpzYfN0tS
/sX5ifI8SNUTelmXJQhJUy4JUmpqbiSMtdiYLUv7F+YnyPEjOrsaXyGmWpkavfoXwS6Lmhq9
+hDnJOywSas/uIZLksSt6RJLpbB0IZLk3iCEZNDeyL7j5CSFzQ0QxPZCZ7OlmXJQhJUy4E1O
aIVX93449JKrgmSyILolz8GKYZuhvxMsqYpgmCyLNou3SZdulV1F1JJVcEyWRBdEufgxTDMD
dLIiLkC61uRNXcsRSyLKlzBZcGKWIY0YdbkTV3LEUsiypcwWXBiljBimKYMGDFIgvWJLUbJm
tyYMMtTBME1U86IVX93449I45ntcUH6k4GlzMSL2GaOxoawjXHI1dh/ceHkafCa+xfBp08j9
ScFuZCzPBqsyFSTS9oNVmOOZ7XFB+pOBpczEi9hmjsaGsI1xyNXYf3Hh5H6bH2IhyOxpe0Uu
WQxPmddQ+xEOTB+pODT4RxzOvhIhruLsafDS5p0fJrtB11GJpLxJ+pNLlkMT5nXUPsRDkwfq
Tg0+Ecczr4SIa7i7Gnw0uadHya7QddQ0sj5waZzJ+oxSn3GlzP8AqaU8yfqTg0NYRrjkIfDD
yeHkNLmYHs4EtXMb2P03sOE87Gmxcb2NVmPQP+xotF6IVX93441wT5FjDVcUvkc+fPMmOC6L
IsqSS1SyZEF0YJhlky6pME3JMF0zDMEFi6Zh0si/HELzIrMcV6Osw6WRglrJgsjFbKvIlqmH
TB6WLoWVLmDBainnRcD+78caL4LmIMbGl7bjcbitkiIuakljgdHq9kPs667YFaZJjc6RJNvk
xsK0zSDTzY8Sh6vZE9RW5DsaT3rp7n6iNMch33H9ovuNT0vuj9P2NV4/cf8AU06Zm5+pJpc/
y4qjUfp+w9PPUL7SxoNKTi1bGg0dhzzLT8H83ujxcyB6mO2wnG8GvoWUsnqY/lkTjeDUkog0
qMmqdhWHaitMniibnSJE4NNkaiYm5YRrtg66aTXR2VH2NOmZufqSaYcOigSXpppjlXTedMn6
kn6fsZj9xq6IRqu57H83/wCp4UamuRp3/ca7mjmcrnV6TR3ohVf3fjj0kEoxFGpyR1JJg2vw
TAhLlTCJhDsrkRJHUkxFIiTCJViR2VxLkQSYRHhRGaycpMJkUXQwkbWIr3E+R4qbfJhTzOxB
4qRCFixNvk2pEIUpWIhQYo1Vvoch2VzCIG3yFshxubWH1pikRJGSSBdCPCiLe5JI+vFhTzNv
k2p3MKSYHCPCbfJhM2+TY5Hc2sQJ8jCPSqRCJRyO4sWOZLNNEKr+78caG+vBpUZWaXFp/mNS
SwaF4cjheK4/EosdZov2yuZ4mpuP7ZNP3Gq0QKVMjfhm56S6G/CuhpUZ3JibwW4kmS8QZQ5W
xgfes4IrpUZMSyKrluPT4TEUVzuciJLOTKJeESQTlCjkK6uPoZRA7qwp32IGtJzNrE+InYgV
7MVxszBDQ+9Mo5Doo5HczBDplUnCIquW47fzRwLluarfzQe1Vy3NcaZhmIpm4p32OSIFuhxs
ZRyIq34VYmyRBp70Qqv7vxxoamDM10ucLFJYtX8yNTTyJJ7ETFzVfYXOifi9iMXk6RBpU7ya
k3bYV4gamLmzMJCSNLnGxExeS3Emav7Gn90LkPrSU81jrwaXOB6puZmtnaxO1VfYV0o6DuSs
Epl3LEvdkasMbYlMsV8GhmrsZJk19TS28De4+woveTU08kTFyPwOXtAkK+w/3K5mGSiU80+B
rrODVfYfcV8CulHQd4c5JnYnfcu5Zk8MxctWztYd/wCaeCztY1Q86uCztY19XW7k0tvBHXkO
X/KJTvJqacyaf3QuQ7jjDIleyFc1Id4udIg06Ve9EKr+78cazxbfHBPBt8Visz5CfPjnitwT
PBHFPHFfVbyE+fHPlTPBHFM/xi70R7Vf3fjj08DW1Lj7WE3mmXkmWnOxMMTmTTd4FpuvyeLk
X3NOg15tzH3LZkXtTTJ+mtoLcyDofqTg0JYZqh7DbzAsu+WfqGXmnY0v/Jp7UXuJvPhNOXfL
PZj7k3TnYm+DS/8AJq8PO4tN1+aPnAm80y8ky052JhicyabvAtN1+Txci+5p0GvNuY+5bMi9
qaZP01tBbmQdD9ScGhLDNUPYbeYFl3yz9Qy807Gl/wCTT2ovcTefCacu+WezH3JunOxN8Gl/
5NXh53FpuvzW9PB8HNNwLmWw/wCJXeiFV/d+OPTwRPBelmWpcibESRXLLM3+Saep0s+DNJM0
syzZM3LsibcGaWZYkyZImt6WZalyJsRJFcsszf5Jp6nSz4M0kzSzLNkzcuyJtwZpZliTJkia
3dMmXSP4ld6IXar+78cekUyd1YT3dJim/vSytzNPMmG+xDnEia5muMoXUe/RG5MNd6arserV
OTpEkqllJLPYVmu5qSmxoT3Q5IEoa7js7UcOL8zsrkr6aXeiFV/d+OPSI09DlxWQnF0Q1YfY
UKw4WROLouhvmWQrDXMvzJjoQsUxchomBQjVCyK10Q1JMCjYxcwRSFj6aXeiPYdH93449NGl
RVjTR8uBCjdDZPUjgfbijitI1eeOxFG3tW40KjZfyVGWaepcUbonrx9hNYG1NvIjhikiXOka
hqk0tRt7F8Eojem1YoqPtSK2I1DVWyN6zb5pG5p70Qu1X93449I9XwPsLTvJpxbqfpj1fFNP
Pc/Ur0JE+SHi/UalZF0J2k1ucmhzgfXgwYmnSTV6ekGhyfzezLzdRcTsNyo4cGDT7mf5YNPe
TXdXNLXhtzN/Zk39x9TTi3U/TH3LCZruab4GuDB1k2xYWJ6CfJDXWqcGu9MSPqhaepCiO/Dg
0OcURO0jjw3F4ogfY2FGehHInfSbT1p4tpNdxdybD7GnozXdXI5j7kT/ACxIluJ9DS14bcx9
xPsbXNOLdTT6Y3HRbHszS14bcxd2aex4tpHHhuafTG4+5ZoXPpSOpFs7mxp59KIVX93449Pl
24IX8LPkz/WI/i13oiOlX93440PsfuE7ewtPuzTq23PE/wDFGuprsrCspk2H2NPeDXYb52G4
3Jj+WYFq3kWMcjTjqPuKBmlmlPfoauzotzCwzTjqK03ZpGuo1boaU9+g5xJ+5QJ29qaFGeDJ
7jYjCNT54NChXNS6Db5Ce/0Wu9ET0GqP7vxx6SxNJI2pcuPqQWpFF0I6k70ikUuRb4Mk0nhv
TPAly8iaJLCFHIsT9GLvRCq/u/HHpH2L01Q8E3yS3Yj3E1g09iavuaYFe7Hzks6pTdjbwQiz
rp2NK6Cf+Uaex78Dvir6IWqNxtpdOCVik3yS3YgyKJwJt5IHFhPmTf4Pcls8MmTTAr3ZLdFp
+Rw8CvdjktgUOw74Jvmqf+Uae1MmbRIodnYye5LwQIbxyE280uRpHDuhNvI55EIsdWaepv7I
gaXMd8Etn/lFG5rvMDb2JbInqJzYUTgUu7JbIZY0wb/A10okZFLuzIuo0uY4d0b/AAPnJCYo
50Qu1X93449NMuCVJqam5DIZ0iCELmjrWeYle3Q0vkOMli2KadTmw0zoWpEjQ3tECSFzRDrJ
qzelmX3Fp2LT2ilmOdyFSGRLXYyxf5FzRv2HzYmKMI1ZuQyL+xPKiV7dDS+RD5niprjLE3lD
nctIrt9zX1IZLk3EkLmiJELtAr6nHM9mQyJa7G+BJDn2N+1fEjOrsb9qbi/yzoRvsQyUeJc5
NWbiRLkfYXRmqJuJIvzOkQQhc0K+pRyI6iZKkSvboaW5tSwm7nsxX1KOQhdDxLuZ1djS3Nhx
zJujT/miPar+78carfguNEwYpgwYMfWK70Qu1X93449JCHzgSea3o5xI3sLuPTzHHKwk8yaX
tBoawvrFd6IXar+78cenitS5dVt/Sb0mK3+hl3ohVf3fjj0ilCttImhvMv4Fi/UfZ10+51p7
CQ8KOok4uPmjGKa4WDSms0c7I0mkmLyeLrzOkSYFZYNKjJqnYiBc3RovgvuyEtzUksGlRk1W
2LIjZFlbmK0yap5EQaebNSSiD0rPCr3pYWndCXL6FXeiPar+78cap7QRyH1MJlzmYQkiK4gw
hWViTmTCH1E3FqpQrEeFEEZRKMQRBtYfUzBNYJptc2tSYpEJERI+pmCRxuRE1whGFJzJMR9D
LvRCq/u/HHpL8iKbWO45ZmypqxY70viJJiKZVIMofQV1ccuqaVPTJajcRBqtisGUZQ+ckVnx
E7EGUK/0ou9ELtV/d+OPSPsKSTU08mlzgc7jWTM3k1XyaXOBd2L7YImaXduUD0sV6Lm8mht4
Q53ql4lYyZimbcyE1BrLkiZ7M0/uhchxzHGGiJXsqRMXI/B6v7C5ivt9KLvRCq/u/HHp4I4L
ukyZ+tV3oj2q/u/HHpF7if8AtNL/AMmrw87mnMds8GvNuY+4+1FBrzbmfA+/1gu9ELtV/d+O
PTXJkzwZZZ0vTLM/WK70Qqv7vxx6RTIom6Ext74FZ3H2ZNNJmj7CnVJqibGNyYb7CXMsaTSr
3JZCINcGoc7FpE4a7kXkxuSxLZm5q6Umnh5G+BJ5ZL5wLdDg66ibvsNsS2NzV0NObmqVsWLm
mnqgdG9XsNc/oRd6IjpV/d+ONCMbQJRg1WyXR7UwaVJitkzV1IaIeBOKRDt1NL5EP/NXbJEO
/UfWlkTFyGiGrC1cqLTWaq10Q7kkxSYuQ8CcUWk02lpUtSIfyYLqmLGH8/Qq70RPSr+78cek
sRRxhUudCwmuOaRwWExE0jem1LUmjpGniXOtq3Jt80uWpF6XE1uL6FXeiFV/d+OPSafcWPSL
EzsPoaWvDbmPs6TY0+47+1PYTcfI48NzT6Y3HpbGTY/UNDmj6o0qTTi3UXci2dy8Yi1E+hoc
4Nfanh5Ver4ET1NbnJoc4H1RckbcT0NN8GrtRaeRrvkjqYmk2Eer9u5yMwbR3+hl3ohdqv7v
xx6azW1bshf0afpBd6I9qv7vxxqkFsIWMcjTjqP+0mw+43piBvnYfYbcYNp6DemINs8qXFi/
IemEKymRrcdsIWreRYxyo+fU1TyE/qRd6IXar+78ceklVis1XQsTwepFnWCdz2pBFJIpH1Eu
9ELtV/d+OPSWUueQ45CfMd8Cvd1UXkd8Uc8i2CURNyb5G/rBd6IVX93449JHUnmriS2Zr6ml
8iXI+wujNWb1tJlvuRd9yGZa7E/V670R7Vf3fjjX/AC70Qqv7vxx6S9LVvS1b0tW/wBYLvRC
7Vf3fjj08GCfMt5eKWRYiC6MGPp1d6IXar+78cemqNdzVVL+5rhYNKjIoLr+WROIppe25No6
lh9zX0Fi/UeGzlxabypP1DTHIfVjnkKLmp6X3Rphwy/04u9ELtV/d+OPTwdyIVUuQ+ptYaG+
ZFGiMkkjsrmEzCJoiK8h4uYTpMIwkYSMKSfpxd6IXar+78cemsGq2BKPeq6m1iZgfQs0SO6s
T4qRTaw24Jwjw02sK6vSKtuKYGlzNrcS/bK5k9Tp4ZLKBqPc0xomw3EmPYxBp+j13ohdqv7v
xx6ayar5LalLzRzuaYcwxw1foK8QauwhJYRrvkiYvRNkjhq/QaI/Am3gkcNX6GjoNDIleyo0
S2czxJzeRw1foZLuKWc0T8XsRi8nSILORufY0/uWD1QzPuJTIr/R670Qu1X93449PB2MqeO1
ZrPHNc0mfIV1cfQylSJRZyZRlEfSS70Qu1X93449NUa7GPcuPtYWXfLP1DT4TV2L72NOn5P1
JwZeS4+1jR4uZqV/jBp8Jq7F97GnT8n6k4MvJcsO5pkfcm6c7cVlJp1YufqGmOQ+jH2FCg1W
hoS1L3Of0ku9ELtV/d+OPTwZImuaWdLk0s63Zks6XJpZ8HqZZluO5ksyxMl2zJn6TXeiF2q/
u/HHpqjV/wDQdWiyLnhvk1RNiXI28FpJhruYJckw32IEoa7mqJsaVzHOx0EkOzsTd9uKzhmu
f9JpX+4a25GmOQ7xcvqnqLxXQ4co1e30wu9ELtV/d+OPTwO2TLr4hwskEPBixZUgh4MCjYcL
IrYH1pZQYuTFy6mllArUujG0CSsYuKVMENGLCSVhws/TK70Qu1X93449PA42E4b4H0rAuvBF
V1pHDG9V1pFVypG9V1pHG1eTSuY28FsFpGofyKZueJlhr6GXeiF2q/u/HHpqmar9hObGC0Cj
PQnfULxRA+w5jBp9KuezMG3uWxRdid9I+4ugzBpa8NuY+57UXYnfSPuLoMwaHKsRbO5eMRai
7E76R9xdBiJ4H4mnyNDlWGuskTlCuh/ut3F+5eE/a4LD/H0Mu9ELtV/d+OPT5El/JvToi2OK
x3H0OhBB/wC1twQR9LrvRC7Vf3fjj01Xc1/3NCjKMj3hGjuNW6Gm2TVbYvFzStzWoVjbPIzF
I6mrp0NQ+z49LWJP1DT2PcfYUIbVmJOzwX+nF3ohdqv7vxx6eO3Dc8Q+XBNIt8E0liXIiluG
T/ysr6cXeiF2q/u/HHpqkardi8QulZTsTf4E28jZkTV0aoeCWzf2R4Sw4d1SXgidpFezNXTi
XhSfM9ztpkSsNQoNMeHHQtHiHKguoNP0yu9ELtV/d+OPTwONyOZZjnkJLnJqzc37GWuxqfQS
XOTX1EiGTdGnpuzOrsRJEtdh5dhI67nUvS2KJ3IfOTpEFpG7yLNuheS+CELP0yu9EKr+78ce
ngd8Cvd1uYMFqQ7UwYpcxWFPwQLqY4pbHfCJ6mbilxJLZZ2FDMjfL6YXeiPar+78cemqNX/0
mmPTvRxyNK1Wua7QKU+41E9jVD2NKeZP1BdzEuT2NOezNVnfrT2LDsaXtBpaTcdS1IYnzpZS
uQ0t9JpnnI3tzNMchwpudRW8OofjXuavphd6IVX93441D4MExxY/hLVmCyLIiC5j6ZXeiFdH
qR6kf9vxxq9Ua7mi5Yc7Cdu0k88GhRk1dnVqDUO21dSSiBJxc1TsYNPVmNiyl8XhdjVP+k0/
cajTHIc86JzKNT0vujV9MLvRGT1HqLvj08Hcwu9cIfU0xsiTCMGFPMjwrgcbisrD60VlamFw
KmEyTkYU8zCZEJmEcjCX0yu9F5ekvyIptY7jlmbKmrFjvS+IkmIplUgyh9BXVxy6ppU9MlqN
xEGq2KwZRlD5yRWfETsQZQr/AEou9F5ekfYUkmpp5NLnA53GsmZvJqvk0ucC7sX2wRM0u7co
HpYr0XN5NDbwhzvVLxKxkzFM25kJqDWXJEz2Zp/dC5DjmOMNESvZUiYuR+D1f2FzFfb6UXei
8vTwRwXdJkz9arvReXpF7if+00v/ACavDzuacx2zwa825j7j7UUGvNuZ8D7/AFgu9F5emuTJ
ngyyzpemWZ+sV3ovL0imRRN0Jjb3wKzuPsyaaTNH2FOqTVE2Mbkw32EuZY0mlXuSyEQa4NQ5
2LSJw13IvJjcliWzNzV0pNPDyN8CTyyXzgW6HB11E3fYbYlsbmroac3NUrYsXNNPVA6N6vYa
5/Qi70Xl6RGNoEowarZLo9qYNKkxWyZq6kNEPAnFIh26ml8iH/mrtkiHfqPrSyJi5DRDVhau
VFprNVa6IdySYpMXIeBOKLSabS0qWpEP5MF1TFjD+foVd6Ly9JYijjCpc6FhNcc0jgsJiJpG
9NqWpNHSNPEudbVuTb5pctSL0uJrcX0Ku9F5ek0+4sekWJnYfQ0teG3MfZ0mxp9x39qewm4+
Rx4bmn0xuPS2Mmx+oaHNH1RpUmnFuou5Fs7l4xFqJ9DQ5wa+1PDyq9XwInqa3OTQ5wPqi5I2
4noab4NXai08jXfJHUxNJsI9X7dzkZg2jv8AQy70Xl6azW1bshf0afpBd6Ly9NILYQsY5GnH
Uf8AaTYfcb0xA3zsPsNuMG09BvTEG2eVLixfkPTCFZTI1uO2ELVvIsY5UfPqap5Cf1Iu9F5e
klVis1XQsTwepFnWCdz2pBFJIpH1Eu9F5ekspc8hxyE+Y74Fe7qovI74o55FsEoibk3yN/WC
70Xl6SOpPNXElszX1NL5EuR9hdGas3raTLfci77kMy12J+r13ovL0/8AAC70Xl6S9LVvS1b0
tW/1gu9F5engwT5lvLxSyLEQXRgx9OrvReXpqjXc1VS/ua4WDSoyKC6/lkTiKaXtuTaOpYfc
19BYv1Hhs5cWm8qT9Q0xyH1Y55Ci5qel90aYcMv9OLvReXp4O5EKqXIfU2sNDfMijRGSSR2V
zCZhE0RFeQ8XMJ0mEYSMJGFJP04u9F5emsGq2BKPeq6m1iZgfQs0SO6sT4qRTaw24Jwjw02s
K6vSKtuKYGlzNrcS/bK5k9Tp4ZLKBqPc0xomw3EmPYxBp+j13ovL01k1XyW1KXmjnc0w5hjh
q/QV4g1dhCSwjXfJExeibJHDV+g0R+BNvBI4av0NHQaGRK9lRols5niTm8jhq/QyXcUs5on4
vYjF5OkQWcjc+xp/csHqhmfcSmRX+j13ovL08HYyp47Vms8c1zSZ8hXVx9DKVIlFnJlGUR9J
LvReXpqjXYx7lx9rCy75Z+oafCauxfexp0/J+pODLyXH2saPFzNSv8YNPhNXYvvY06fk/UnB
l5Llh3NMj7k3TnbispNOrFz9Q0xyH0Y+woUGq0NCWpe5z+kl3ovL08GSJrmlnS5NLOt2ZLOl
yaWfB6mWZbjuZLMsTJdsyZ+k13ovL01Rq/8AoOrRZFzw3yaomxLkbeC0kw13MEuSYb7ECUNd
zVE2NK5jnY6CSHZ2Ju+3FZwzXP8ApNK/3DW3I0xyHeLl9U9ReK6HDlGr2+mF3ovL08Dtky6+
IcLJBDwYsWVIIeDAo2HCyK2B9aWUGLkxcuppZQK1LoxtAkrGLilTBDRiwklYcLP0yu9F5eng
cbCcN8D6VgXXgiq60jhjeq60iq5Ujeq60jybVuTb54NSU2rFLijkW444LcFiOB/0pd6Ly9NU
zVfsJzYwWgUZ6E76heKIH2HMYNPpVz2Zg29y2KLsTvpH3F0GYNLXhtzH3Pai7E76R9xdBmDQ
5ViLZ3LxiLUXYnfSPuLoMRPA24noab4NXai08jXfJHUzFdXI0+mNx49z9pp59DXfJ+ma+xcV
1M7Dbiehpa8NudZsNuJ6Umw+xp7j1SaHODX2ET1HHhuab4H2/pS70Xl6awyfzX/2ib8uCPJg
jyYI8yfotd6Ly9Jqk6I0v2NBo7Dnmao/0i7mlcvrdd6Ly9JFII/Bt8H/AIf+Fzt9brvReXpM
i6iG8chS7sjHDeunsJxg1d9kQ+QluOHdDf4P/KNLmOHdElkWo+aNVuBROBS7sbe1LGmjxM7k
W9jJkV7se0FqaXH0eu9F5ekR7QJIc+wr6lHIvPkaex0HnMk9BP8AmRnV2GiXJY8S7mdXY6m8
nQ8Wka/A5m5fFVzQr6lHIy0SSjTSGJ1TeUautUr26fR670Xl6aWMGDBYgmZGzBgjBKxTBYgx
TDLF6JzS7Io2ngb5cGGYG6XpMFqYMfSi70Xl6R9jT3L8zXOGaGsI1dhyfux4j9STQ1hCjmxd
dJdQ5xRSn3Glk0zSf9R+m9jVHIuWFZkkpTSNyIfVms9TuZNPc9mabe5qlbjm8qxENd6W5kQ3
fYwLPZml7R9KLvReXpLceIpMGPJXTyo+ol3ovL0ilCttImhvMv4Fi/XgeJR7j7OkDxKMchr6
wXei8vTT2gjkPqYT4HZXIzwOyvSfrBd6Ly9JsZOg+R3L8qWNLgmmJsenwjurE+InY8JlCFdX
JwRTViw3SxzMqeRPiJwjwmUPpS+KJb7mUdzkQzJL9jKpBlD6Curjl1TSp6ZLUbiIHz+hF3ov
L0i9xdhfulj/ALCulHQfZnIlM0maX5CujX1ImLkfgTbxRfuVjR0I60TNV8j/AHK5q7Hcyn2Q
3JExc8MxcT2VFzea3JPY0ucEO15F0LPJbCLu3KB6WK9FzeTQ28Ic71S8SsZMxTNuZCaj6FXe
i8vTwRwQJ8/MtSfMbpHEnz45rFMqeBPn9CrvReXpF7if+00v/Jq8PO5pzHbI+zrp9x296ewp
NSv8YNKvcekttT9Q0JYo+cGmTTIo5jcuZ2PYuabvBoSwzXHIvvYWn5r4uQu5DxJrnCNCWGao
e1Og3L7GnwmrsX3sadPyfqTgy8l+DHuWIElhfQy70Xl6a5MmaWsXbEuVbF2zJl0sXbp/7XJ6
nS1LsibGaXJrFcmaZpks6XJpZ1u3SJpYu/oZd6Ly9NVp5CtsKzuPeNkXRY37j1chyti0kw13
N+5jekGGu5F5Jcja2I5ITWBW2o9+iH2E19SLvReXpLqSaYuXRdEkwNJZElS2CyGkskNFkz9y
F0Ji5BOw2+RCwYuYLob5kUx9RLvReXpJc5IXDbhis2+frFd6Ly9JtkmfUjTfc/UP0ybD7Gno
zXej7DmMEW9htxPQjqbe5bH1eu9F5en/AIAXei8vSZimZMmTMUzJkyZimZMmTMfWC70Xl6f+
AF3ovL01SNVuxqtVLcd8CvdiM7SJqmnqb+yIGupq6Cl3Y29uK5plGsVlzPF1MLAvFHsOyjmh
eFJ8/p1d6Ly9PA43HM3LMkU5Rr6ibyh8x8ogSMkb7EMlEo1Z/cK+pRyMtElsCOtLiS2cmqJu
KZsQ8G8QbscTcTuX/t9OLvReXp4HfBE3rJgsqYpgmK4ME3+C1MGDDLUvSb/FLjRjiUvJPUjp
JZyZuKW79CW7GbFmJ8/o9d6Ly9NUav8A6TxQ5eC4+1jR4uZqs79TT4TX2L4NOnkfqTgtzLi7
l+Zqs79TV3Ihu+xpsX5mqzv1P0zUlkc5giGu9NXcwXJeJNVnfqSQqQ6KVOnmQr3I/wBsCbG9
uZphTbkWU9D9vIVoZp+j13ovL08GCY8iSfOxSY8jFLIsRBdGDH0mu9F5emqNdxXvRzsLHya4
WBWmTVPIiDTzZqSUQelZo52NG1x4UdRWmTVPIiDTzZqSUQelZpzHY0nuT+S3FpvKk/UNMch9
WOeQouanpfdGmHDL/SS70Xlrg7mFNcIfUiJH1MwSONyImq2gwiIkfUzBI43IiayR4URkjaqI
ryHi5hOkwjCRhIwpJ+kl3pp8tVg1WwX9qwjaxMqB9CKzKg6EHM2sJcx9CFczJtYyuODMmULq
TKIZkT50mJucrHMyjKJlDT5UyjKORFW+BCur0imUTKg6EGUK/wDW13pp8tVk1XyXSxXxdTU0
8iXUeljIleyol1I/B6v7Gl7o1NPJobeDV1onMjhq/Qu7coLuKWcivTMHQzJ7E8sDvFxdCUxX
o4d5L/Il4pZdyy7tygd4uf8AWBI9jT+6FyHccYZEr2VH+5XMlsUX7lY0dBofVC0q57CXUj8F
+UGZFfb+trvTT5aJmCFchkyhdSZgyqJ8/rdd6afLRqsTiDS5nY0GjsO03NX2i7mn63Xemny1
wZZlmWTL+uV3pp8tCmRRN0Jjb3wKzuQ3FVFLlqaewn/pNXcjoLTuOzsN3+aWGuo7OxkjSWo0
tmai7iqtsKzuPeNkXQ4NNHeLiTcljfAk8s1TsWpp+j13pp8tCMbQJRg1WyXRdT5Gm+xI5W8k
xsLmtzFxomCxKszFzA7HQlWY1LGoz1LqaWR6NUn7ldF0STBpU0hoTSqrXQ+tYh/P0eu9NPlo
uW4pG3tSxfuJqtiKPoY4E1S8kUbU2HzVdXamrv8ATq700+Wh9hE9TW5yaHOB9UMmZ/dJrurm
hzgXdi+2CG5czReKIGhUnfUaHOEPrTECx8klnHuWIlEKI7msvv1JNXamrv8ATq700+WizRlG
UZRlGUZR/KZRlGUZRlGUZRlGUZRdoyjKMoyjKMoyjKMoyiPEoMoyhzFz/wBG7GUZRlGUZRlG
UZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZ
RlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRlGUZRN
jC+RY8v/xAAtEAEAAgIBAwMDBQEBAQEBAQABABEhMUFRYXEQocGB8PEgMGCRseHRUEBwkP/a
AAgBAQABPyH/AO//AKH++niaVNfqen+uV03gVwSq1X+0OH7Lo/Z6isbnIoWUkXh5sQJbsuAy
rNP9gHQrBiCmHEIiKw1zL288OKjVbyqoN6hCsrBOdV/2mBt47xRZSzh16CrtjnDrObPNTmUH
uIp2rjlnskSbC5gDVTH7+J1PT/GDLnKVto4qVmLnmFZKuvE305izdpUu8rRsdQypd5WgKrN9
n8A3/SW6P7lunvLdH9xbH+p91f8AYWTCd8hCxL8zT7uf2eH7Lo/Z5wDQEq0P6lEdAfJKMY1r
0NQHglLui+spd0X1gAUQJsF+JS7ouLbH9TFVK6VNamObRoaUBluCsEcz2vUnsepAjdglZnPZ
lSqEWjluIjTOJycVLM5N+nLz6KK5prcRS8QBVeus8n1jZdkDQImwAXA0CAaH9TuJ3E7idxO4
ncTuJ3E7idxO4ncTuJ3E7idxO4ncTuJ3E7idxO4ncTuJ3E7idxO4ncTuJ3E7idxO4ncTuJ3E
7idxO4ncTuJ3E7idxO4ncTuJ3E7idxO4ncTuJ3E7idxO4ncTuJ3E7iMC0839Tzf1PN/U839T
zf1PN/U839Tzf1ADudpnaZ2mdpnaZ2mdpnaZi0ztM7TO0ztM7TO0ztM7TO0ztM7TO0ztM7TO
0ztM7TOEZ3E7idxO4ncTuJ3E7idxO4ncTuJ3E7idxO4ncTuJ3k7UdqO1Hai/nAShE2I+kdqE
LVc76D0gTtQo2/5hrInaj7IQ0nO4ncTuJ3n/APhrTrBS7/XE++k++k++k++k++k++k++k++k
++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k
++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k
++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k
++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k
++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k++k
DtA6ynWU6ynU/YyN1FnI4LxDN4aOT/kzXUlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSp
UqVKlSpUqF1BtVahnCwXBbzoudz2Ymxk0i6VbpGWQA13mAgOFZiO3ZElF1vEusZC8yosyl4J
gHKPQjjUS8qEWqie32ifPeYOTZeCUuK8rU3HHEK1wkwret4nc9pTQtq5hG0uVAoel3KrLEat
3rEwrfdiJqLk3iIb7q9RGsTMVWYlnIO8wHrLlA4ZlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpU
qVKlSpUqVKlSpUqcWrfiX8Gf+QW8nhfOrlvxf+QW8nhfOrne9kVkvov6TPVvOK/yY7I1EQqO
Lcy94l6usQykpWnv+t974ZkSgD/YTYVSiVX9EqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpU
qVKlSpUqVKlRWGsZYpiC0VxLd6VVCzTEgiKikSWyWUhyTB1Gt1BCFBa4xStajc4iAHGIVGJ1
F1MlTe5eGiujFx8BlxRmmYboepFUpqjcYszzktuXUHB2mcAVZULbQAjFawAjdgvJcACqGes7
MXhGXnpMJyLAtxQVtcqQ708Rq5kDMwEQ2Qdwh4USG+zMrFuOeJTLEGXm4JGnzqVKlSpUqVKl
SpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSputDl+jA79vn/wBgmesb+noQmesb+k/pbbNn
eX9Jyvym9wuIStE7czLH+v2KrSvfJ2YMGcv7VL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2X
xL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2X
xL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2X
xL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2X
xL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2X
xL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2X
xL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2X
xL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2X
xL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxL+y+Jf2XxEkKGGHtM0NejLN/2vQQ6145lcfrBR69OzPb
JuBNR01mkpdWX09S7jA1eIeiXZiOwN1v1A32nsLmzDHeUzkx6tKf5QDi89J2n9zVhnvL3aY7
zFdK8zbB9WlP8ppE/uCWTsgHSPotC9JWoUurL6TC4GagiWN/x7fy+GezIfswThl6u+Ge2QzF
9sy2MdcyU3WXHqgr5WIaq7t/WYNdfqroYQq0xdIjy1WagtKZfUFbpcAhv+kFVWnMXWGVsiuu
0gCdBMeLmt16hW6XBatjepWOHVAjVUDn0NsOkwxuxzmZKbrLiBAx1QtpKt1/Ht/L4Z7Mh+zB
9z4Yv6EuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLmJcuXLly5cuXLly5cuXLly5cuXL
ly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly
5cuXLly5cuXLi/s+GezIEr9iD7nwz2L+An/32e8+Ge3Iemn6w+58M9i9UG0lFoS5TqYgmSd6
IaZLrUpdKXKGrLmzJiBeE5zM4Z6QHklmknaf3FAtSogLgmklFoS4JpJRasv/AOPZ+g9FDbU0
YZ7yg0pcGVsk7UOswXZUHJBmIbSWNWSl6aurl+m62uMxBtCIbH9yw5jUtmIAsbnRMWuL9Bi0
j0v/AOLeZv0Z7z4Z7Mh6afrD7nwz2L15O0TGq6omNV1QEsGAtodKalQloTGr6oqYb1LVrTSA
kWlH9xMsapUVoMZEU3ppDOrVJUb46QZ6GYFw1WbiY1XVAuGqzccyv+n/AMdFb/Qen0hmBy6u
kwtX1RWNeUot7d9kslXKWDheIo3NX9IMwdUwY4yuVd4rPHMra1EtZT4ShZtpjiG6bharpSWB
2EBQ3TjEbq2qqjdP+GENbesyzKNf/FFw16M958M9mS6LgFr9iD7nwz2L/wDHr01/8w//AAbl
FVWP/nM958M9mSrKgBv9iFS3jSDG6nM/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/
IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/
IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/IT8hPyE/ISosfWeU+U+U+U+U
+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U
+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U+U56YvKVPe/DPZkP2YUom0+zLcbKbnB+ET
b/YG760TR3ZTc8d5LlgdySls3AMnvALDHdlrS6mRxovcGtWFqBtNbzBufbo9EVBbE29mAZPe
BrD/ALMOx6EvLX6JF1jz+g+sFvpo7spueO8lywO5JS2bgGT3h9ILZUm7BTMC1Y+rDNoXzGcM
GAWGO7BlDB3nB+Epb5iZacXuAWGO7MV8lxLVwXLaMXUSLrHn0XT3anF+EzhWVrcQLTHn0ta4
7y1LsFlJZvUSLrHmCHJzBsANVBsZAz3lj+h6BsHv+jcVWZlMGOtxNweUS1NfR9dHdlNzStTF
rlidY3jczCu6CA8tZ3HtkKOsuqy9mUt8/wDzfavT3fwz2ZD9mD7nwzUA5Us2nDI6YypL7FZH
gdYzdS6OWocUgOrBQBazc2E2YbqU7J1bmgBSkWo6y7iqeOZUfT95R6HIC+8yQl5Za9G2ifWd
IOVNkp2Tq3KtCwNqqEVMhxarlzsK95S0EvKRQz0TCnpirDuwMumWM65jRLG+DibqXRy1DikB
1YKALWbmwmzDdSnZOrcwOWb44jB21aJfqPCdQizTK20WCmaAFKRalQsO9gDLHk4uLGhLvK47
qbwmgBSkWocbAOrUwsK5pvEpuXuSKGeiYU9K2rf/AElhpXKLMvlAVyek2kzHhVDMNlf1LpLn
fiKGeiYUmafhMIjoHmk1P+kmCUbLhuo0Sxvg4jCiORq7jthh1cQuB4TAk0OYuK+WIyhatGYl
qx9H0QlVO+ZupdHLUo2wbHPM3qYesWT3gYu79JWWABee8Lo0auZ8C6XcrYjZcOv/AJvtXp7v
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
PLCaWS9y+cV3g2DZ4b1ARVvI1Ow9lwyB8kzlL5uNRPKELUOl+iFIvaDRoFXE4F0bqIcnhqN1
coRC7zHQWS79AJiLeGoLhQ3Sxyy2NVgIAs30tyk50r1SDi19j+H+1TbD/T/jND9r/T/kBsqB
cQMI24mwINaee0DWEe2Qo6wShQrK3cxi67lS5jKdYGsIPYv6xccQLV0h5unFPoJaseZpWpi1
yxOsbxuZhXdBAeWs7j2yFHWJamvo+grzK79OiXiXlrhvOpja7uYh58ksKGjmozBvXSfbdz09
8/jvtU2w/wBP+M0P2v8AX/k9x/yMHcFwoFnaNYB4094I1QEvPSF07AuChaapxnE2I4KXGk3c
M7zBGqAl56TlQ/8ACGJZn6UwgJZXogFp5vJKWINjnmb1MPWLJ7wMXd+krLAAvPeF0aNXK2U/
WIXA8JibsLeELKxjichr6I1q7veU5juOIcn1GmZ7A/2auyB7ITAS+s+27np75/HfavRP9P8A
jND9r/T/AJErE9lizb/ZPys/Kz8rPysEWE+ZtH6MfE/Kz8rPys/Kz8rPys/Kz8rPyvpq9wtS
8JRPys/Kz8rPys/Kz8rPys/Kz8rPbBbPys/KzeAFYf8Ak8Pv9JfzNvc/Kz8rPys/Kz8rPys/
Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/
Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/
Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/Kz8rPys/
Kz8rPys/Kz8rCtsW9z7l/wCTMIAzh7TR+1//2gAMAwEAAgADAAAAEAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAABL/mG4AAAAAAAAAAAABABJJBIIIYBSL5rpJH5BJAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAqoJIAAAAAAAAAAAAABJIBAIAJBADRgqDBAEAIJAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAABJJJJIAAABAAAAIAAAAAAAAAAAAAJJJI7JBBJABI22222222222222222222222
222222222222222222222222222222222222222222222232222222222222222222222222
222222222222222222222222222222222222222222222222222222222222222222222222
22222222222222222222222222222222222222222222/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ALbbbff/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/
AP8A/wD/AP8A/wD/AP8A/wD7b7bbAkAAAAAAAAAAAAAAAAAAAAEEkkAkEAEgAEAAgEkAAAAA
AAAAAAAAAAAAAAAAAAgkf4KHbbcAgAAAAAAAAAAAAAAAAAAAAgAgkkEEEAggEEAAEkAAAAAA
AAAAAAAAAAAAAAAAAAmimcbbbAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkgFDbbckAAAEEEAAgggAEAEAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAgfbbkEgAggAkAEkEgEEgkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAED7bYAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkEAgfbbkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAkgD7bYkn/Tf/AG33/wD/AMkkkkkkkkkkkkkkkkkkgkgAkggkEAkEgEgAAAAA
AAAAAAAAAAAAEgEkAfbbEkf2z6WyyaebkkkkkkkkkkkkkkkkkkkEkAEkEAEkkgAEEAAAAAAA
AAAAAAAAAAAAAkkD7bYkkkkkkkkkhhkkkkkkkkkkkkkkkkkkkkkgAAAAAAAEEAAAAAAAAAAA
AAAAAAAAAAAEkAfbbkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxJJJJJJJJJJJJJJJJJJJJJ
JJJJJJJJJuAED7bcggEgkEgAEggEAAAkEAkkgAkAggEAAkkgAAkkAEAkAAAAAAAAAAAAAAAA
AAAAAAAEkAgfbbgEgkkEkkEEkEAgkEkgAAAggEgEEgAggkkkAkggEEEgAAAAAAAAAAAAAAAA
AAAAAAkkEj7bYAAAAAgkEggAAAAgAAAAEAEAEEgEkAAAAAAAAAAEggAAAAAAAAAgAEEgAAAA
AAAAEkAgfbbEEAgkkEkAAkkgEgEAkkAgkAAkAEEEkEAgEAAEgEgAEEkkEEkgAAEgAgAAAAAA
AAAkgED7bYEEgkAAkAAEAEAkAAAggAAAkgEgAkEkAEEAgAkAAAAkgggEkkAgAkAgAAAAAAAA
AEkAgfbbEAAEEEEAAEEkgAAAAgEEAAgEEEgkgAAAEkAkgkgAAAAAgggAgAAgkgAEkkkgAAEk
kgED7bYAAAkkAAEAEEEAEgEEgkAkEgkAkgEAAAkAEgEgEAkEEkEEEAEgEgAEAgggAgAAkAAk
EAfbbEAkAkkAEkkAEEAgkAkAkkAgkAAEEkgkgkkkgEAAgkkEkEkkkAAkgkkgAgkkEAgkgEkE
D7bfEEkAEggAkggEkkAkEkAEgggEAAkAAggAEAAAkAEgAEEAAgAAgAAEkAEggkkkgkEgkbgf
bbgkAAAAAEgkAAAkAgEkAEkAgEEEAgEEkgkgAgAAAAgAAgEgAAgAAAkkggEgAkkgkEkmUD7b
YgAAEAAgAgggAEkAgAAkAAgEAkAEgkgEkkkEkgEgkkEAEAgkAAgAEgkAEEAkEEAEAkKgfbbk
kkggAAkgkEkgEEkkEAEgggAAAkgAAAgAgEEkkkEgEAEkAAEAAEgAgAgAAEkEkEEEhUD7bbAA
kAEAAEEkEkggAAkkEAgAkgEgAEAEAkAEkgAkAAkgkAgEAEgEEAgAEAEgAkkggkkOgfbbgAkk
AgAEkAkgEEAAggkgggkkEkAgAggEkAAggEEkAkggEEEEkEggkEEkAEkAAEgkkkkD7bcAAEgA
AkAgEAAAgAAAAAgAAgAgAAAAAEAgAAEAAAAAEAAEAEAAAgAAAAAAAgAAAEEkkgfbbgkgEAkk
EgEEAAAEkkkAggkAgAkAEkgkAggAAAkkkgEEEgEAEkgAkAAAAAAAAAAAAkgkD7bcAEAgEAEg
EAEEAEEggggAEgAEEkAgAkAgAggAgkEEEAAkAAgkAEEAAAAAAAAAAAAEkAgfbbEgEAEAEAAA
AAAEEEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgkD7bckAEAAgEEkkA
AgkAAEkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkEgfbbkAkkkAEkggAAA
AEgggAAAggAEkAkgAAAgAEAEAAAAEEAgAAkEEEAggkAAgEAEkAAEkkD7bYAkEggggkEAEAgA
EAgAAkEEkkgEAAgEEAAgAAAAAgkkkkkkAkkgAEgAkAkgAkEggEkkgfbbEAAAgAAAAEAAAAAg
EAAAAAAAAEAgAAAAAAEAAAAAAAAAAAAgAAAAAAAAAAAAAAAAkgkD7bYggkEggAAEEkAkkEkk
gkAgEAgEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgfbbgkAEAEAggAggkkAkAEk
kAAAgggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkD7bYkAEEEAEAkAAAAEEAkAgg
EAEggAkkEggEkAgkgEAEkAAgAEkkEgAEgEgAkkAAAgkEkkgfbbAEgAAgkEEgAkEEgAkAEkAg
AkgAAAEgkAEkAEkEkgEgAAEAAAkgEEggAEEEggAkkAkkkD7bcAAAkkkkgAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkEgfbbkAAEEkgEgAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgED7bcAEAkAkAAEAAkAAAAAggAAgAAAA
ggggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgfbbAggkggkAkkgkEgAkAEkggkggEgkA
AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkD7bckgkAEAgEkAEgkkkEgEkEEAAgkEEkg
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkEgfbbgAEkEkAAkAEgAAkgkEggkAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgED7bYkAkgkgAEEEgAgAkAAAEEAkAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkEgfbbgAgAgkAAAEgAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgkD7bcAAkAgEkkAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgfbbAEEAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAkkkD7bYkgAEkAkkEEkEAEEEkAEkggEkggEEkgAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAEkEgfbbEAAAEgEEAkkkkgAkkgAEkEkAkAgkEAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAkkkD7bcEEEEEEAAAEAkkggEAEAAEEgkAEgAgAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEkkgfbbAEEEAgAkkEggkkkEkAEgEAgkkgAgAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAkkkD7bYAEAgAgAgAEAEAAAAgAAAAAAEgAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAEkkgfbbgAEkkEEkAEEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAkgkD7bcgAgAgAEEkgEAkAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAEkAgfbbgggAEAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAkkkD7bYkggEAEAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAEkkgfbbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAkgkD7bcEEggkEEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEkAgfbbAAgEAAAAAAAAAAgggkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAkkkD7bYAAAEkgkAkAkAAgAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAEkkgfbbAAAAggEEEkgkkEAkkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAkkkD7bYAEAEAgkggEAAEkEAAAAAEEgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAEkkgfbbAAggAAkkEAggAAkgkEggkgAkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAkkkD7bYAAgAAAAAEAAAAEEAAAgEkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AEkkgfbbAAAgkAkkEEAkkEgEEkAkAgEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
kkkD7bYAEgEEgggkkgggEgEkggkEEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk
kgfbbAAgEAAggEAkAgAAAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkk
D7bYAgAAEAggAAgkkEgggAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgf
bbAEEAEgAgEAAEAgAAEEEAAEAAAgAkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkD7b
YAkEAkgkgEkAkgkkAkAkkAkkEAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgfbbA
AkAkAAEAAEAAAggAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkD7bYAk
AEgggggAAAAAEgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgfbbAAgA
ggkgAEkEkEAgAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkD7bYAkAEg
gkEEAgAAAAggEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgfbbgEEAAAg
AgEkAEggEAkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkD7bcAgggkAAk
ggkAgAAgAAgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkAgfbbgAkEgEkEkA
gEAgkEggEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgkDbbYAEggAkggAAA
AAAAAkggkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkAbbbAAEkgAgAgkAEg
AAAkgEggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkXfbbcAAAkgAEAggAEkE
gkkkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkb/bbbgAEkEkAAkAEgAAkg
kEggkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYkAkgkgAEEEgAgAkAA
AEEAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAAgAgkAAAEgAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAAkAgEkkAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAEEAAEgAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYkgAEkAkkEEkEAEEEkAEkggE
kggEEkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbEAAAEgEEAkkkkgAkkgAEkEkAk
AgkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYEEEEEEAAAEAkkggEAEAAEEgkAE
gAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAEEEAgAkkEggkkkEkAEgEAgkkgAg
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAEAgAgAgAEAEAAAAgAAAAAAEgAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAAEkkEEkAEEEAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYgAgAgAEEkgEAkAEAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAggAEAAAkAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYkggEAEAEgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYEEggkEEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAAgEAAAAAAAAAAgggkgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAAAEkgkAkAkAAgAEAgAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEk/bbbbAAAAggEEEkgkkEAkkggAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAkn7bbbYAEAEAgkggEAAEkEAAAAAEEgkAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAEk/bbbbAAggAAkkEAggAAkgkEggkgAkkAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAkn7bbbYAAgAAAAAEAAAAEEAAAgEkEAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAEk/bbbbAAAgkAkkEEAkkEgEEkAkAgEgAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAkn7bbbYAEgEEgggkkgggEgEkggkEEkAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAEk/bbbbAAgEAAggEAkAgAAAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAkn7bbbYAgAAEAggAAgkkEgggAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEk/bbbbAEEAEgAgEAAEAgAAEEEAAEAAEgkAgAAgEAEAkgkEAAEEAAAAAAAAAAA
AAAAAAAAAkn7bbbYAkEAkgkgEkAkgkkAkAkkAkkAgkkkAEkkAEkgEEggkEEgAAAAAAAAAAAA
AAAAAAAEk/bbbbEgAggAAAAAgAAAAgAAAAgAAAAAEgAAAAgAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAkn7bbbYkEkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAEk/bbbbAEEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAkn7bbbYgAAAkEAgkEAggAAgEAEAAkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AEk/bbbbEAAAAAAAkEEkkEkAAAkAEkEgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
kn7bbbYkEkEkgAkEgkEAEAkgkAAEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk
/bbbbAEkAkkAAEAgAkgAEAEAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7
bbbYgEAEEgAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bb
bbAggggAgEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbb
YkggEkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbE
AgAEgkkggEAgggkAAAggAgkAEgAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYkE
AEkEAggAEkAAEkgAAkgEEEEgAgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAAgA
EAAAAAAEAAAAAkEAAAAAEggEEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAAkEE
EEgkggAAkEEgkgkgkAkkAkAkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAEEAEgA
gAAAkkEEkEAEEkAkggggkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAEEAgEkg
EAgEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbEAgAAEAEkg
ggkEggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYEgkggAEAgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbEggkgEEkEAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAAAAgAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAgkEEggkAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAEgEkggEggAgAAgEAAg
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAgEEEEEEgAgkggAAgEAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAEEEEkkgEEkgggAgkgAAkE
EkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAEkgAEkAgAgAEAgggkEEAEk
gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbbAAkAAAEAAgAAAAkgAAAgggkgA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbYAAEkggEgAAgEggAEAAgAEAgAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEk/bbbb4AEEgAgkEgAgkAAkEkEAkkggAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkn7bbbaAEAAEEggEEEAAAAgAAAgggEEEkgEg
AkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA/bbbbwAkkAkEkAAkkAgkAEggkAkAkkAEAkAA
kkAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH7bbbeAgAgAAAAAAAAAAAAAEAAAAEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA/bbbb0gkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH7bbbekkgEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEA/bbbb0kAgEEgggEEkkggkAggkAkkgEAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAgH7bbbegAEAAAEgkkkkkkEAAgEgAkkAgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAEA/bbbb0AAAkAkEgEgggAgEEEAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAgH7bbbfEgEEgEgggggAkAAkggAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEkfbbbbcEkgEkkkkgkkkkkEgAkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkED7bbbf/8QAJREAAwEAAQMDBAMAAAAAAAAAAAFhETEQIXAgMGBB
UJCgUYDQ/9oACAEDAQE/EPm55UmmuiXY5HDrz9KQ1nwnfThn3BJErPQ+/VfSnngZ4zF+VBNe
GBMedEt8EnxmLne53PouDM3fBmmv8IGGGGMwS0wwwwSGjDH0wwwwz51vYbGz6mifAmJ8CZ2O
BM03sahj5Gxjf9RWa4IECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBA
gQIECBAgQIECBAgQIEBm+f0dNT8B6jH8+yvfwHy9pPBpeA+XtMT8Bt2zXsrXg1LP90jbX7B/
/8QAIxEAAwEAAAUEAwAAAAAAAAAAAAFhERAhMDFwIFBgoEGQ0P/aAAgBAgEBPxD4AmpozOTG
a/dTwN8GJh2+Y/KN4dvpXyGT4S0fdenTfcNGuKN58X9ODGZnwjDDDDDDDDPdVqNdHP2js5i4
74IfBfS1U+5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLl
y5cuXLly5cuKXb6OmPwHjMfR7fAfZ0m8Gn4NIfgNKkZ6Lx4Nev7pGg+b+wf/AP/EACwQAQAC
AQIEBgIDAQEBAQAAAAEAESExQVFhcaEQgZHR8PGxwSBg4TBQQHD/2gAIAQEAAT8Q/wDf1/hh
BpGKuUVzjKWtmj8Mnh8blCTdEdTTzm+WVkdoatxv+f8Ai9x/X/Hsf2/8TZ6tOTXMugKIm7ri
QzR/k4p/MoB30BSVp6xQ4oI1kwmeZTIUv4sLTyB6QVTI2c1+UGQUMGxdcbuLKlPCbPrcAWhO
JBchZQVxiSi0RTQ53/UsujKANXSECoJTL6iwL0U6Z0OU1QerEhZxU4IFRPEGPS0hp6P6mVbR
WtOnAeMD0w6jrXGfJcIxMvvMAHJmiul58kNxjz8Br5vySoer+Yqfk/RPw1OWl+cvkLgUfqPk
GzC8WWON2Nv8i0GlmprhyigUEuJnjEkZ2tGE6bSkGYrRhP1EjVtaMJ02gaOC8j6U/wBAtYai
u5PiPacn89J8R7Q3RyN5aM5UrCULLQDJ1Z8l7wCeNJQsNjgnX/ie4/r/AI9j+3/jl6Ze5zWi
rhao2U0JkGiwoa0jg0elDAsB0NOkQREsdSNW1yCK39KzPw9ZhoKDSU2+IFwFklqhlgwLDQRi
Wl09KKIAAABoEwkHRNGaZMhrptGZoNT8+XDT0f1LCrVQPK58pqZ6D0OfKGHQCcGo6l8wnVes
GwDBbnnpzgKxgAPKv1EQImzDR0hWochfpCnUCEXnBFoTrZELVsw7HhcSMDDdr8RqrvWu+Rr0
iMjSqniWzthopa7zMVXW/WDYC6oVcw3NFCDYC6oVctKN60J8cnxyfHJ8cnxyfHJ8cnxyfHJ8
cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8
cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyfHJR
1vfE+ce8+ce8+ce8+ce8+ce8+ce8+ce8+ce8DKdo6HvPpSfSk+lJ9KT6Un0pPpSfSkxjRb0J
9KT6Un0pPpSfSk+lJ9KT6Ui4GiVoT6Un0pPpSfSk+lJ9KT6Un0pL7PfSfHJ8cnxyfHJ8cnxy
fHJ8cnxyfHJ8cnxyfHJ8cnxyfHJ8cnxyLt0+k+UT5RPlE+ER1jdQlSVwKhFejTS2uZPhEWur
Vsn205VsxPlEsxXS0gyjuABFCmrynNwuqF8KJ8cnxyfHJ8slSpUqVKlSpUqVKlSpUqVKlSpU
qVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqV
KlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSvCpUqV
KlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKl
SpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSp
UqVKlSpUqVKlSv8A8QuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly
5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5c
uXLly5cuXLly5cuXLly5cuXLly5cv/jyHrBAqeIXotz5/enz+9Pn96fP70+f3p8/vT5/enz+
9Pn96fP70+f3p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn
96fP70+f3p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn96f
P70+f3p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn96fP70
+f3p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn96fP70+f3
p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn96fP70+f3p8/vT5/enz+9Pn96fP70+f3p8/
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
VLRcUnXQF/cDEjNVYp1NorphsReo284dujaFlvQ1YKwyOQLXJe8IAGgAHlrFG+kKvZ0riYgL
VAgBpsKeEO3RtCy3oasx2lQwtTXEcsgohvk2hc0lJaJz8/AYRbSwL0NWMOSlqoB1WDAswAJn
ziAQKAUu+fDzgwMguelQSYG8FjkbwVhkcgWuS946ok4Cep4JHjHDavfw4wXgYe8MGgrLrkuA
QKrZeE2MFbjRa8o5wgI0ptDSv3LtTlonIadYNIsNtNsnlOw+F8Fxf678pxn4H4mmY7KH/H4n
NPjeKIoAVVoMwsCFnPMbocIbFsNpt5yrOgtE6N7ib0NkUW6TMITiLBzp1lCVIhZQu2vSBJia
hXA6SrOgtE6N7lBOY0ugioRUrrXhWpfaIuCKhDAGmNvCisE0fL39GKx2C1ALxfnCYPFUwM8Y
jctU3KHaE8N3q58pQe4BogJwbxNqE9lFukcMVahYfMZagK0tXdYxc1AM01W8wt45OW+BCXaB
1K84iUhCjA0y+s4nAfsJljOSZfS7rlPkuCIq0SqGq100wdZauKor/U7D4XwXF/rvynGDLnDW
crsiH/HuPyTmIoT+IgTVtVZ7T7B7T7B7T7B7T7B7Q6aaIvaVej4P0j7B7T7B7T7B7T7B7T7B
7T7B7T7B7T7B7T7B7QNHR4r7QgmhRSgHICHF28OD0n2D2n2D2n2D2n2D2n2D2n2D2n2D2n2D
2n2D2gLILLhPlU+we0+we0rCuC0TI8XDwustdS2Lek+we0+we0+we0+we0+we0+we0+we0+w
e0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+w
e0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+w
e0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+w
e0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+w
e0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0+we0sVVUtmvKK6v1ULIpVauo4H
Gdgf8v/Z
--------------zrBOJYaJz93t7xlyjJQgFkV8
Content-Type: image/jpeg; name="NoXen.jpg"
Content-Disposition: inline; filename="NoXen.jpg"
Content-Id: <part2.NgKR56BV.L0sFOgVl@gmail.com>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEASABIAAD/4QCuRXhpZgAASUkqAAgAAAAHABIBAwABAAAAAQAAABoB
BQABAAAAYgAAABsBBQABAAAAagAAACgBAwABAAAAAgAAADEBAgANAAAAcgAAADIBAgAUAAAA
gAAAAGmHBAABAAAAlAAAAAAAAABIAAAAAQAAAEgAAAABAAAAR0lNUCAyLjEwLjM2AAAyMDIz
OjEyOjE3IDE2OjI1OjI5AAEAAaADAAEAAAABAAAAAAAAAP/hDM9odHRwOi8vbnMuYWRvYmUu
Y29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVT
ek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1w
dGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUv
UmVzb3VyY2VFdmVudCMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMv
MS4xLyIgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIiB4bWxuczp4bXA9
Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6
ZG9jaWQ6Z2ltcDphZTUxNWRlZi05MDIzLTQ4NDEtOTk0OS1iMmYxNjYzNzkwMTMiIHhtcE1N
Okluc3RhbmNlSUQ9InhtcC5paWQ6NDQ0YjVlNzYtM2QyOC00MzdkLTllNzUtMWU1MmYzYmQy
YzhlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NzRmNmIyMDEtMGU3NS00
ZDg3LWIxOWEtMWQzMDc5ZjIyYjJlIiBkYzpGb3JtYXQ9ImltYWdlL2pwZWciIEdJTVA6QVBJ
PSIyLjAiIEdJTVA6UGxhdGZvcm09IkxpbnV4IiBHSU1QOlRpbWVTdGFtcD0iMTcwMjg1MTk0
NjU4NzMzNCIgR0lNUDpWZXJzaW9uPSIyLjEwLjM2IiB4bXA6Q3JlYXRvclRvb2w9IkdJTVAg
Mi4xMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMzoxMjoxN1QxNjoyNToyOS0wNjowMCIgeG1w
Ok1vZGlmeURhdGU9IjIwMjM6MTI6MTdUMTY6MjU6MjktMDY6MDAiPiA8eG1wTU06SGlzdG9y
eT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6Y2hhbmdl
ZD0iLyIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MGIwMmU1MS0yMmJmLTQ0YmMtYTcw
YS03Y2IyMjgyZGY3YWYiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgp
IiBzdEV2dDp3aGVuPSIyMDIzLTEyLTE3VDE2OjI1OjQ2LTA2OjAwIi8+IDwvcmRmOlNlcT4g
PC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/+ICsElDQ19QUk9GSUxFAAEBAAACoGxjbXMEQAAAbW50
clJHQiBYWVogB+cADAARABYAGAAwYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
APbWAAEAAAAA0y1sY21zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAANZGVzYwAAASAAAABAY3BydAAAAWAAAAA2d3RwdAAAAZgAAAAUY2hhZAAAAawA
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
AAAAAAAAAAAAAAAAAAAAAAAB6z1FnzTiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAek9RzPIQDQYAaDADQYDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1n
qLPmnEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9J6jmeMgGgwAAAAA0
GAAAAso5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9Z6iz5pxAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSeog8RAPWcTmWUUQUaQQWDDSgYQQACwQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAD1nqLPmnEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAA9J7DkeIgHQwkGmgGkklmGmFkmAAEnQo4gAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAA9h6ijDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQdTAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/xAAqEAABBAEEAQQCAwEBAQAA
AAABAAIREiEDEDEyIiAzQVBCYBMwQyNAcP/aAAgBAQABBQL/AOHv49AGICAUBD/1t4/vJjZr
rD/4u/j0N4Tf/b+MomECj2cnccEPlAztOAUZR4PVzi5PMpvuImUzAJgWVlaFb/4g/j0N4Tf/
AGjiqqvkiVGSJEKFG0KFCqvh2nCc1My5FoKDl2ZVFuKqFdqu1XartV2q7Vdqu1XartV2q7Vd
qu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1Xart
V2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdq
u1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV
2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2q7Vdqu1XartV2pzmkSF
IUhSFKspVkCFYKwVgrBWCsFYKwVgrBWCsFYKwVgrBWCsFYKwVgrBWCsFYKwQe1XartV2q7Vd
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
UWFxEJEggaHB8PFQYLEw0eFAcP/aAAgBAQABPyH/APh+vz8INn/Z5veE5XvrPN7zATv/AMXR
/wAXf/6QBa0RagWE5ihthTph/wDxTX5/4gOfP2P+Lo/4u/8AiXblCo5XyVMrGqiKiUksZMPE
saVrQRI03Lblh6wEaz3iZVh9BCLcNzdpcWLgVmqi0Y1jvEjeam0RPLxHS6WTmM3CEAZonpLA
ZmFjlFA3kd45KV855/8A8Qdfn/iA58/Y/wCLo/4u/wDibmmbVXmUzatyoWhsVND0mAhnaq94
V5a6QqULt2nFQreVvdwryvB2jjByKUrUS3bZUY3kR89TPaYrpgnMWtIHGOhD3JTNq3zMjatS
mbVuXl2M/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k
/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k
/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k
/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95OxnZz95P3k/
eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/eT95P3k/
eT95P3k/eT95P3k/eT95P3k/eTGN3WfsJ+wn7CfsIVKPTJS+dv0NLN19Z+2n7aftp+2n7aft
p+2n7aOH/aftp+2n7aftp+2n7aftp+2j/wDWn7aftp+2n7aftp+2n7aftoQz70/eT95P3k/e
T95P3k/eT95P3k/eT95P3k/eT95P3k/eT9tAlBE/dT91K4g+cqwe8/eT95P3k/eSkBvr1nye
8JUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqOEOss6+lSpfeGZfn2lSpU5qVKhkuVKlenF36OJUr
0G+ZXrUqV6816GY4hmVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKmZ8nvMup8nvL/GX390vpLekI
iYVMw0AJ8nvDMqVKlSpUqVKlSpUqVKlSpUqVKlSpUqaXDMqVHEvFxxDMqV61NIdZUqVK+Azf
aVKi16fOVKlelSpUr0cb9Lz6GZUqVKlSpUqVKlSpUqVKlSpUqVKlSpUzMheJmZC4/L5y/HvL
bxLbr0GTzO1rxAz5SpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUwnTjTlljZeJe8kJeHEFhWpm+U
t7YlnXxO1mPS8RV6ihw4gNdOuPQg9Hyh083iW4VidhxmBQxXWCs/9iujdxLwe0XhnEvYDiFk
w4IYKxA15xFGBfymRszc6DM31ENqMVA1oXzcPA+0+TAzcuInQcyiKlSpUqVKlSpUqVKlSpUq
VKlSpUqVKlRMviOXdwwfIg3CvoIWFDA14JkYj9f/AFE+iGyqvEGPnKlSpUqVKlSpUqVKlSpU
qVKlSpUqVKgXR1ilJ0luB6pxxAOaMqjfLBl4lq6JvfJMuPiYacTNLIpyfRE3HmJwqWBjmZNY
rEtwvENBxKcxVHS5aqDuJVBqPS8REbpjAszW5yJ5mXHxMNMQNgxWY4D9pTZTFQvYTRg4oZuU
OGeIHffaGjDAo3ucOHEO12ypUqVKlSpUqVKlSpUqVKlSpUqVKlSomKdYKxNXhc8RbyDHMF7M
X9pQuh1DedOVLarV0Gdn2QBx707Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787X
vzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O
1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787XvwHXuZ2vfna9+dr352vfna9
+dr352vfna9+dr35Zx706YeU7Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvz
te/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O17
8X496dn2R2/enZ9kdv3p2fZCv/qi9HtYigXjgrmK8YdFOz7IA496dr352vfna9+dr352vfna
9+dr352vfna9+dr352vfna9+dr352vfna9+dr352vfna9+dr352vfna9+dr352vfna9+dr35
2vfna9+dr352vfna9+dr352vfna9+dr352vfna9+dr352vfna9+dr352vfna9+dr352vfiu/
czte/O1787Xvzte/O1787Xvzte/O178sNe9ACq96dr352vfna9+B6PegJQe9O1787Xvzte/O
1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xvzte/O1787Xv
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
QTgf0nT5Ib/s32Qz8fmJQbFBnK79Auh3IBRruQJu9xFbBKf8mCr+kUngQVWbIt4HsVNh/kwV
f0i6cwDJ+UibCva4JTrsTQvHiWtwYRV4ziUDqWwClgXQ7kS1OymJpMG2SW7D6JanZT/R9Pkh
v+zfZDPx+ZSq4Bi+YG2D5IZr6aiBdIvUMEbVqU2tNauHT7YO4ppxKW6RaV6Ei8CarfUqJtYr
eIBLyS9RDps7S/lgzqUHDf8AVNPkhv8As32Qz8fmGPN9yBwOp3iL3G8yts6w+kT3Rl7dhd6g
abF3qA6xRhSqJfyelF0QQtfOJiJAUsrKtqEWFdERoOiSue1W8/1TT5Ib/s32Qz8fmfUv7Jp8
kN/2b7IZ+PzKZxS2o1eNToE8tzsPdc6BfDCryKdo1eNToE8tzsPdc6BfDCryKdo1eNToE8tz
sPdc6BfDCryKdo1eNf1TT5Ib/s32Qz8fmfUvXkFdYJ0LXoFtH/IFaC2Iqkp/4ikLSGGHdFr8
V/SdPkhv+zfZDPx+Z9S9ULHRXhUbY4tAtrHzYKHsgk5WG8epd9pUUAdQVvtDAZVcRIpTUtwV
5nU7JBHAr1ZYODibfB/kyaYy+kAoJ1UhX2IcnDNh8IfQfefQv6Tp8kN/2b7PQ/D5n1L1waLq
uqZODfWOXVSiHEvbgt+Je+N1UQBRTV8QJfzTglxa/Bb9MIrMpJQjwxq2GCsSnkL6y3S1VcKW
AOLhldHtHeeMEwMBRWJ0Ru75mRgbKz6EAXDXzhldTj+k/aleiq1nxP0s/Sz9DP0M/Qz9DP0M
/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M
/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M
/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M
/Qz9DP0M/Qz9DP0M/Qz9DP0M/Qz9DP0M/UQAoMNeZdl9ifpZ+ln6GfoZ+hn6GfoZ+hn6GfoZ
+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ
+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ
+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6GfoZ
+hn6GfoZ+hn6GfoZ+hn6GfoZ+hn6Gf/aAAwDAQACAAMAAAAQkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkg22GGkkkkkkkkkkkkkgkkkkkk
kkEAgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkg223nEkkkkkkkkkkkkgkkAAkkgkAAKAAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkg223nEkkkkkkkkkkkkkEkkkAAkgkEKEAEkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAkkkkkkkkkkkkkkkkkkkk22E
kkkkkgkkkkEkkkkkkkkkkkkgAkkkggAAAAAAAAAAAAAgAAgAgAAAgAAAAAAAAkAAAAAAAAAA
AAAgAkukEAAAAAAAAAAAAEgEkgAAAAAgAAEAEAAEAEAAAAAAAAAAAAAAEFskEkkkkkkkkkkk
kkAgEgAggkkkAAgEggAgAkkkkkkkkkkkkkgAE3AgkkkkkkkkkkkkkkAEAggAEgggEAgggkEg
EkkkkkkkkkkkkgAAG4AgAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAgglAEA
AAAAAAAAAAAAAAAAAAAAAgAAAEgAAAAAAAAAAAAAAAAAEEEEIgEkEEkkkgEkkEAEkkEkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkgEAkgEkkkkEkkkggkkgkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkgkEAEgEkggEkkEgkkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkgEgkgEEkkkEgAA
ggEgkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkEkkkkkkkkkkkkkkkkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAE
gkkgAEEEAEEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkkgAkEgAAAAEkkAgggEEk
AAkkAkkAAAAAAAAAAAAAAAAAAAAAAgAAgEAgkkEggEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAEgkEAAgAEEAgAkAAgAgEkEkgEEkgEkgAAAAAAAAAAAAAAAAAAAAAAEgAgkAgEgEAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAkAkAAAEAAAAAAkEAAgAAAAggEgAAA
AAAAAAAAAAAAAAAAAAAkEkkgggAkkEEkAgggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgE
gkgAgEAkAkAEAgAAAkAgAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAkAEEgkEAkkAgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEkAAkgAAkkkAgAAggEAgEEgggAEgAEAAAAAAAAAAAAAA
AAAAAAAAAAAEAgAAgAEkAAAgkEkkEgAkgEkgggEgAEkEAAkEgkEAAAkAkAEEgAkAgAgAgEAA
gEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkEggkgAgAgEEEkEEgAAAAAggkEkkAgk
AkEkgkAEEEgAkgAgAkkgkkEkkkgkgkAgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk
gEkEkAAgEAEgAgEAEkEgAAgAAAAAAAAAgAAAAAAAAAAAAAAAAEgAAEAEAEAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgggkkgEkgEEEkkkEgAkEAAAgkAAAAAAAAAAAAAAAAA
AAAAAAAAEgEkAEAkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAkgAEgAkk
EgkAAkggAgkEAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgAAEkggAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAkEkEkgggEAkEkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEg
EAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkgEEgAAkEkAkkggAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAkEAkAEAkAAEEEggAAgAkggkkAkggkAEEEgkEgkgkAAgEAAgAAkEgAkEEEkEkkg
AAEkAEEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAkAEAEkEgAgAgAkEkEkkEEgAkAkkEA
AEgkAEEgkkEAkEEkAkkEgAggkAEAgEggAEkkAEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gEgAAAkAAAAAAAAAAAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAAAAEgAAggAAAAAkAAAAkkAAAg
kAgkAAAAAAAAAAAAAAAAAAAAAAAAAAAkgAAgggAkEggAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAEgAkkEgAEkEggkgAkAgAAEAgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAgkgAEEkgEg
EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAgAgEgkAkgEgggAAAAAEAkkAAAAAA
AAAAAAAAAAAAAAAAAAAAAkAgkAggkAEAAAAEkggAEggkkEgAEAAAAAAAAAAAAAAAAAAAAAAE
gAkAgkAEgEkAEgkAgAAAkEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAgAEgkgAgAAkAAAAAgE
AAEgAAAkAAAAAAAAAAAAAAAAAAAAAAEgAgEgEEEkAEEEgEgAAEgAEkgAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAEgEgAggEAEkgkEAggEEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAggEgEEgk
EkkAAAEkkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggEkAAAgEAAEgAAAggEAkkAAAAAAAA
AAAAAAAAAAAAAAAAAAAAEgAkgEkAEgkAgAgAAAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AkAAAkAgAAEAAAAAAEgAAAEkAgAAAAAAAAAAAAAAAAAAAAAAAAAEgAkgAAAAAAAAAAAAAEgA
AAAAEEEEAAAAAAAAAAAAAAAAAAAAAAAAkEkkgggAkkEAkAgAgAAggEAAkAAAAAAAAAAAAAAA
AAAAAAAAAAEgAgEAEkgAAAAAkAAAAkAAAAAEgkkEgAAAAAAAAAAAAAAAAAAAAAAAEAAAkAEE
gkEEAAkEAAAEAEgkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAEAkkgkgEAAkgEAEggEAAAAgggEg
AAAAAAAAAAAAAAAAAAAAAAkEAkgAAgAgAAEAEkEkgEkEAAAAAAAAAAAAAAAAAAAAAAAAAAAA
EgAkEgAgAgEEAAAgAkgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkgggkgAEkEEEgkkEkA
AEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkAkgAAggkgAEgAkEAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgAAEAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAgAAEgA
AAAAAAEAkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkEgAkkEEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAEgAkkEEAgEgEAgkAkEAkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAkAAEAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgEggEgEgAgAkAAEkA
gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkggEAEAEEEkEkAEggEAAAAgkAEgkAAAAAAAAA
AAAAAAAAAAAEgAkgggEEEEEEkgAAgAkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgAkgAEA
EkgAAkEgkAEkggEEgAEEgEAAAAAAAAAAAAAAAAAAAAEgAgEEEAEAgAgkgAAkkkggAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEAEAAgEkgkkEEgAAgAAAEAAgAgAggAAAAAAAAAAAAAAAAAAA
AEgAgEkkgkkEgkkgAEEAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgEkEAAgEAgEgkEkAE
EgkkEgkkggAAAAAAAAAAAAAAAAAAAAAAEgAgEEAAAkkAAAgAEkkEgAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAggEggkAAAAAAAgAEgAAAAAAkgAAAAAAAAAAAAAAAAAAAAAAAAAEgAgAAkAA
AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAgEAAAAggAgAEAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEgAEgEAkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAgkAEAgAkkkkkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEggkgAggEAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAkEggEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAEkAAkAAkEgkkgEEgkEAggkEEgAkgEEkAAAAAAAAAAAAAAAAAAAAAAgkgAEAA
EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkgAkAAEEEEgAkkkgAgAAkAAggkgA
EgAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEkkkkgAkkAgkkEgggAEEkEkkkgAAAEgAAAAAAAAAAAAAAAAAAAAAAEAggEEAggAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgkEAAgkEggAkEgEggAAEEEEAEEAAAAAAAAAAAA
AAAAAAAAAAAAAAgEgkAAAAkAAAAEkEEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAgAkA
AAAgAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEgAAEAAgkAAAkgEAAgAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAEgAAEEggkkAEgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAEggAAEkgEAAkEAgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEggAAEkkkkEEAAgAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAkkEkAgAAkAggAEggAEAkgEAAAAAAAAAAAAA
AAAAAAAAAAAAAEgAAkAAgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAA
gkkEEgggEAgkgAkkgggAAAAAAAAAAAAAAAAAAAAAAAAAEgEAEgEkgkAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAgAEAAEAgAAAAgAgAAAkgAgkAAAAAAAAAAAAAAAAAAAAAAAA
AAAEgAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEkAAAkEkEAkEkgk
AAkEEAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEgEAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAgEkAgEAAAAEAAAAkAAggEAkAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEAkkAgAEkgAgAAEkAEgAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEgAgEAgkAAAgAAAkAgggAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAgAAEgEgkAkAAEgAgAkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgAgAEEEggAAEkk
EAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAgEEAAgkAEgEEAEgEEAEgAAEAkEEAAAAAAA
AAAAAAAAAAAAAAEgAggAAEkkAEgAAgEEAAAggAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAgEggA
EAAEgAAkEgAAEkgAAEggkEEgAAAAAAAAAAAAAAAAAAAAAEgAkEkgAkkEEggAAEggAAkAkkgA
AAAAAAAAAAAAAAAAAAAAAAAAAAgAAEAAAAAAgAAggEAAgAgAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAEgAEgAAAgAgAAAAEgAAAkAEEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAEEggEkEkAAgg
gEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkEEgAEkEgAEkgEAAEgkEAkAAAAAAAAAAAA
AAAAAAAAAAAAAAAAgAAkAEEgEggAAgAEkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAkk
gEggAgEggkggAAgAEgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEgEkEkggEgkgAAgAAEgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAEgAgAkEEAgkAAggAAkkEAgAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAgAEEAAkkkAAEEgEEkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkgAEEAkAEAEgA
AEAEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAkgEEEEkgEEkAAkAkEkAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAEgAgkkgkgAgAkEggAkAggAkAAEAAAkgAAAAAAAAAAAAAAAAAAAAAAgEAA
AkEEAEEEggAgkAgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkgkAkggAgkEAAgkAAAgkAAA
gAkgAAAAAAAAAAAAAAAAAAAAAAAgEkEAgAAAAAAAAAkEAEgAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAEgAkgEAAAAgEAAEkkkkkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEgEEEAAAEkggA
AggkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkggkAkkgAAAAEgkkgAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAgAEgEAEkggAgAgAgEEkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAEE
EEEEgAggAEEAkAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkEAkgAAgAgAAEAEkEkgEkEAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEgAggEEAggAEAgAAEggAgAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAkkgggkgAEkEEEgkkEkAAEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgEAkgEkkAEAA
AkgkEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAEAkAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAEgAEAAAAAAAAEAAAEggggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkEg
AkkEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkkEEAgEgAkEEAAEEggAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEAkAAEAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEgAkkggEgEgEEkEAAEkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkggEAEAEEEk
EkAEggEAAAAgkAEgkAAAAAAAAAAAAAAAAAAAAEgAkkAgkgEkEAEgAAgAkkAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAkgAkgAEAEkgAAkEgkAEkggEEgAEEgEAAAAAAAAAAAAAAAAAAAAEgAk
AkkAAEAkEAAAAkkkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAgEkgkkEEgAAgAAAEA
AgAgAggAAAAAAAAAAAAAAAAAAAAEkkkgAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAEgEkEAAgEAgEgkEkAEEgkkEgkkggAAAAAAAAAAAAAAAAAAAAAAEgEkgEgkkAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggEggkAAAAAAAgAEgAAAAAAkgAAAAAAAA
AAAAAAAAAAAAAAAAAEgAgkAAkAAEAAkAAAAAEgAEAAAAgEgkAAAAAAAAAAAAAAAAAAAAAAgA
gEAAAAggAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAEkAAEkEAkggkAgAgAgAEE
AAkAEEkAAAAAAAAAAAAAAAAAAAAAAgkAEAgAkkkkkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAEggkEAAkgEEgAgEkAgAAkgEEAkEgAggAAAAAAAAAAAAAAAAAAAAAAEAAkEggEAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkAAkAAAgAAgAggAEAEEkkEAgAEgAAgAAA
AAAAAAAAAAAAAAAAAAAgkgAEAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkg
AkAAAAkgggggAAEAAgAAgEgAgAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEgEEEkgkkkkkkAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAEAggEEAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgEkAkEgkgggA
gkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEgkAAAAkAAAAEkEEkAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEggAkAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg
EgAAEAAgkAAAkgEAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgEgkEAgkgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEggAAEkgEAAkEAgAgAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAEgkggAEkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAkkEkAgAAk
AggAEggAEAkgEAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAgAAAAAgkkEEgggEAgkgAkkgggAAAAAAAAAAAAAAAAAAAAAAAAAEg
EAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAEAgAAAAgAgAAAkgA
gkAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAEgAAAAAAAAEgAkAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAgEkAAAkEkEAkEkgkAAkEEAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgEEAAEEAg
AAEkgkEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEkAgEAAAAEAAAAkAAggEAkAAAAAAAA
AAAAAAAAAAAAAAAAAAAEgAgEEggAAggAAEkgkAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gEAkkAgAEkgAgAAEkAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgEkAAgkEkgkAAgAgAAE
AEEgAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAEgEgkAkAAEgAgAkkgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAEgAkgggEAkAgAAggkkAAAEAkAkAAAAAAAAAAAAAAAAAAAAAAAAAAAgAgEEAAgkA
EgEEAEgEEAEgAAEAkEEAAAAAAAAAAAAAAAAAAAAAEgAkkkAEkgAAEkgkEgAEkAEEkAAAAAAA
AAAAAAAAAAAAAAAAAAAAAgEggAEAAEgAAkEgAAEkgAAEggkEEgAAAAAAAAAAAAAAAAAAAAAE
gAgkEgAkkkgAkgEgAAEkkAEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAEAAAAAAgAAggEAAgA
gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAgAAAgAAAAgAAEEAAggAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAgAAEEggEkEkAAgggEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkkkkAEkk
AgggAEgkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAkAEEgEggAAgAEkggAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAEgAAggkEEggkkEgAAkAEkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AgEgEkEkggEgkgAAgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgEgAAgEEEgAAEEgAAE
EgAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAgAEEAAkkkAAEEgEEkAgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEgAkEEgAAkAggAgAggAgAggAAEkAkkAAAAAAAAAAAAAAAAAAAAAAAgAkgEEEEk
gEEkAAkAkEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkkkgAEgAEAAAgkEggAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAgEAAAkEEAEEEggAgkAgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
EgAkAgAgkgEggAEkAgEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEkEAgAAAAAAAAAkEAE
gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkAAAAgAAAAAAAgEkggAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgEgEEEAAAEkggAAggkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkEAEggg
AAgAAAgkAkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEgEAEkggAgAgAgEEkEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAEgAAEAgggkEAggAAEAkEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAkEAkgAAgAgAAEAEkEkgEkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgAEEAggAEEkAAEAgk
kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkgggkgAEkEEEgkkEkAAEkAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEgAgkAkgEkkAkkAAEggkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAEAkAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAEAAAEEgAAAAAAEggggAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAkEgAkkEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AEgAgAkAEEEkEEgEAAEEggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAkAAEAkAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkEEkEkEAkgkkAAEkAgAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAkkggEAEAEEEkEkAEggEAAAAgkAEgkAAAAAAAAAAAAAAAAAAAAEkkEgAkkE
gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgAkgAEAEkgAAkEgkAEkggEEgAEE
gEAAAAAAAAAAAAAAAAAAAAEkEkgEEgkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAEAEAAgEkgkkEEgAAgAAAEAAgAgAggAAAAAAAAAAAAAAAAAAAAEkkkkAAEkEEAAkkkggg
gEkggAkkgEkkAAAAAAAAAAAAAAAAAAAAAAEgEkEAAgEAgEgkEkAEEgkkEgkkggAAAAAAAAAA
AAAAAAAAAAAAEgEkAAggkEEAAAAAkAAAAggkAEkgAkAAAAAAAAAAAAAAAAAAAAAAAggEggkA
AAAAAAgAEgAAAAAAkgAAAAAAAAAAAAAAAAAAAAAAAAAEgAgAEAEAAgEkgAAAAEEAEgAAAEAA
EgAAAAAAAAAAAAAAAAAAAAAAgAgEAAAAggAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEgAEkAAgkEkkAEgAAAEAggEEEgEAgAgAAAAAAAAAAAAAAAAAAAAAAgkAEAgAkkkkkAgAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEggkEAAEAkEEAkgkEEAAgEkkAkEAAkAAAAAAAAA
AAAAAAAAAAAAAAEAAkEggEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgEAgAkE
EkgEAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgkgAEAAEgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAEggAkAEEEgEAkAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkgAEgAkkkAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAggEEAggAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAEgkEgkEgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEgkAA
AAkAAAAEkEEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAgEgAAEAAgkAAAkgEAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAEgEAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEggAAEkgEAAkEA
gAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAgAkkEkAgAAkAggAEggAEAkgEAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgAAk
gAAEgAAAgAkgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAgkkEEgggEAgkgAkkgggA
AAAAAAAAAAAAAAAAAAAAAAAAEgAkkggkEEkggAEgAkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAgAEAAEAgAAAAgAgAAAkgAgkAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAEAAAAEAAEAAAAE
gAAAEAkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAgEkAAAkEkEAkEkgkAAkEEAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAEgAgAgAAkkggEEggggAkAkEAkgAAAAAAAAAAAAAAAAAAAAAAAAAAAgEkAg
EAAAAEAAAAkAAggEAkAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkkAgEAkgAEAAgEkAkAAEkAgA
AAAAAAAAAAAAAAAAAAAAAAAAAAgEAkkAgAEkgAgAAEkAEgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAEgAkkAAAgkkAAgkAkAAAkAgggAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAEgEgkAkAAEgA
gAkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAggggEAgggEAggEgAEkkEAkAAAAAAAAAAAA
AAAAAAAAAAAAAAAAgAgEEAAgkAEgEEAEgEEAEgAAEAkEEAAAAAAAAAAAAAAAAAAAAAEgAgAg
kEEgAkEEgAEEAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEggAEAAEgAAkEgAAEkgAAEgg
kEEgAAAAAAAAAAAAAAAAAAAAAEgAkgEkAEkkAAggAEkkEgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAgAAEAAAAAAgAAggEAAgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAgAAAAAAAAAAA
AAEAAAAAAAkEkEgAAAAAAAAAAAAAAAAAAAAAAgAAEEggEkEkAAgggEAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAEgAgkkAEAAEkgEkEkgAgEkgAAAgggEAAAAAAAAAAAAAAAAAAAAAAAgAAk
AEEgEggAAgAEkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAkgkEAkkAkEEkAkAgkAkAAE
gEgkgAAAAAAAAAAAAAAAAAAAAAAgEgEkEkggEgkgAAgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAEgAkgEkAEgkgAAAAkEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEEAAkkkAAEEg
EEkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkEAEEEgEggAEgAEkgAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAgAkgEEEEkgEEkAAkAkEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkg
ggkkgkAkgAAEAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEAAAkEEAEEEggAgkAgkAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEgAkEEAAEkgEkAAAggEggAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAgEkEAgAAAAAAAAAkEAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkgAAAAAAEggA
AAgkEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEgEEEAAAEkggAAggkEAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAEgAgkAEgggAEEAgAAgEgEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAE
gEAEkggAgAgAgkkkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAEkAgggkEEEggAAggkAgAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAkEAkgAAgAgAAEAEkggAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEgAgkAEkgEAggAgAEAgkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkgggkgAEkEEE
gkkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAgAgAEEEgAEkgAEggkggAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAgAAEAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAA
AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAEggEgEEkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAkgAAgAgAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAEkkEkEAAAEAkAAkEAAAgEkggAEEgEkkAAAAAAAAAAAAAAAAAAAAAAgA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkEkEkAkAAAAAAAgEAgAkkkE
AgEkAkgAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAEkkkkAAEEAEAAkgkAEEgEkgkEkAgAEgAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgEkAAgAgEEAEkgAEAAkgEkEkgEgAEAAAA
AAAAAAAAAAAAAAAAAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgE
AgEkAAAAkAAEAAAAAAgAAEAAAAAAAAAAAAAAAAAAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEgkEAAAAEkggkAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgkkEgAEAkkgE
gkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEkkEggEEEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAg
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkAEkEEEEEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgEAAgAEAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEg
AkEgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAA
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
+Q/jPP8A1/hyuaeR/jP/AGf4c/Yfxn2LDgA9XJpNgXWDS+LxA9XBEpswCHgS78aWXeUs/wAV
kAfNwAqE8vG7niAJ18FkAfNwAqE8sAqdv8KRaa58I8yX/hHN6/Ln6nux4geriQvT/BdEHzcB
FwFynXXr40svGUXX+KbEHzcESiJ5eN3PBYK9MGl8E2IPm4IlETywKnRn+FJaTv4AVO3/AAv2
LCtKDvkxtK5TQWEThlzeZ4wAHgnBOrlMb4azRq+98ODt59MKJw0cvVDoVx6YgtsdfMcqby78
OXHFQ80fbrjdq6NR8sNLQ07xnZeHLChVjXyy8OHkpz7bw5cmppPN8Yg3B1I+WabtVNDx7eM0
klemJoLCJwyu1d9Ri5B1yf8Ag3N6/Ln6nux6gPMXrjZbwn4xxUPNH26+L5HMMlAzReSZuWsE
65EVTvb4Lg8k/jAXbo3zcSo76K+OmSLX8n7MCAWzw+Fl6odCuPTG22aG+N4mzoCm8Vte/LZt
Cl3hUjqnqzg9PD4WOqa4JXxgxhdEvnikWqvX8eMjsnaeeOKh5o+3XGgqjTj2x7iMd7v/AIRH
L0YU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7m
U7mU7mU7mU7mU7mU7mU7mU7mU7mU7mMQXnWCBLlO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5l
O5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5l
O5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5lO5l
O5lO5lO5lO5lO5lO5iO+c3r8uI5v7WU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7m
U7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mQIuU7mU7mU7mU7m
U7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7m
U7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7m
U7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mU7mDzRH2MVMqljd9XJRVlUYpZPI
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
8/PA1p4UFvXZrKtFJQ0e2CcnoDfl5awtofxHFlvg9UPAHOu91neLDU+7l8iwqJeH0yxUgOG/
PNKScVN9N7wYkHTspe2DYh3SP/KfaflnB6+Hxvg/6T7l8ng5PX5cZo8HtpYJKXnkHHvl5SNA
NF1z546VTRN3TERNQ+8/jFNamAV364pVFCBPvgpWE7av84kXPVmyTT19PA2ii2GN8ZzFdu7l
gEXhaPu3JS/CIe/6ZOQBsVI3jGqC8m/S/nDIuguTzP8Ayn2n5Zwevh8b4P8ApPuXyeDk9flz
9Z3/AOk+0/LOD18PjfB/0n3L5PByevy4z04Cjz6OJNKdi1+sxOefQ/Ay6vbM+k/OIj5NE/Dj
Pogo/DiTSnYtfrMTnn0PwMur2zPpPziI+TRPw4z6IKPw4k0p2LX6zE559D8DLq9sz6T84iPk
0T8OM+iCj8ONKU6Ba/8AKfaflnB6+Hxvg/6T7l8ng5PX5c/Wd/H4gtfXC1MFULPBABV0B1x0
x/8AiaUnAFccKDkSP/x15QAHI+T2yDKVTqv/ABL7T8s4PXw+N8H/AEn3L5PByevy5+s7+PQN
WrQLG+ubkduXXGPIh8gPq4jEpwInPcwMAasOueDGxslSjt9MKgm2qQGanXKuNqPV3+mULCbP
Br5uWrT5LRHnz1nWPKm/S3AYI/qdj8/TAb10tDtxtzSSV5S1NXefqezHopkV53+cazBs5Bmt
mFSceAnmmNHYLBp6j/j+97Y/ed/+J+0/LOD18PjfB/0n3L5MdudZz+vy5+s7+KiNusbHbOCc
EWuHppxCIA9Cw+uMMFYlyzweQ6vLOGU0TUkxUmVi7ZaApRPnl3kIGtPrgUpAu+r/AD4ADixp
x5nnvG1R7wM9M1MEgJrHDWATahrvMD3Z3Y1JO+MAY0Vr6ORaE9Rr7YAQAIHAZYtc0S+b55wc
PgfRe2QHtgs8zz8EUtYL0wQmCKvW/wDidj9OuEvPg8UOVK5/Rc/ouf0nP6Tn9Jz+k5/Sc/pO
f0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/S
c/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+
k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn
9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0n
P6Tj/wCbzeh3gLpihRXap3n9Fz+i5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/p
Of0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/
Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz
+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6T
n9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn9Jz+k5/Sc/pOf0nP6Tn//2Q==

--------------zrBOJYaJz93t7xlyjJQgFkV8--

--------------sa3NGJFpO5XqPGY7IAZF0VJV--


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:35:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:35:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656161.1024178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFeP-00016O-4i; Mon, 18 Dec 2023 15:35:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656161.1024178; Mon, 18 Dec 2023 15:35:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFeP-00016H-25; Mon, 18 Dec 2023 15:35:25 +0000
Received: by outflank-mailman (input) for mailman id 656161;
 Mon, 18 Dec 2023 15:35: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=iZ/e=H5=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFFeO-00016B-AB
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:35:24 +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 0e857379-9dbb-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 16:35:23 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-139-m3kEV4ygO-CxGpJECnICkg-1; Mon, 18 Dec 2023 10:35:15 -0500
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com
 [10.11.54.3])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5611B101A555;
 Mon, 18 Dec 2023 15:35:14 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.189])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id AE2A21121313;
 Mon, 18 Dec 2023 15:35:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e857379-9dbb-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702913722;
	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=PDubdz9qL49hAN39OYCPIe6uR/1A8jW1md3mHWy8lFM=;
	b=FgMdLNJu4vbLoJXd+gXjbS2gKvya7IG3X83a7eibMIID6OwP5hu0foT6y+PKJKhTnddXNL
	5Q8awOcsohUm16dGHk2zA+WVGvLTd6DTYtIUJnsT0BZBXN8CjsLOP+6v7zf68Otkl5x0fY
	8udS5MpujNwwuFU9l9WKzl+7Ulwm9DQ=
X-MC-Unique: m3kEV4ygO-CxGpJECnICkg-1
Date: Mon, 18 Dec 2023 16:35:08 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 02/14] scsi: assert that callbacks run in the correct
 AioContext
Message-ID: <ZYBmrC6NB1thDiRA@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-3-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205182011.1976568-3-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3

Am 05.12.2023 um 19:19 hat Stefan Hajnoczi geschrieben:
> Since the removal of AioContext locking, the correctness of the code
> relies on running requests from a single AioContext at any given time.
> 
> Add assertions that verify that callbacks are invoked in the correct
> AioContext.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:35:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:35:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656162.1024189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFee-0001Qd-CM; Mon, 18 Dec 2023 15:35:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656162.1024189; Mon, 18 Dec 2023 15:35:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFee-0001QU-9Q; Mon, 18 Dec 2023 15:35:40 +0000
Received: by outflank-mailman (input) for mailman id 656162;
 Mon, 18 Dec 2023 15:35:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=iZ/e=H5=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFFed-0001Py-7s
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:35:39 +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 16c6ef76-9dbb-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:35:37 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-646-Z6mJD_OXNHGJP7Uu4lO-AA-1; Mon, 18 Dec 2023 10:35:32 -0500
Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com
 [10.11.54.6])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 422C0845E38;
 Mon, 18 Dec 2023 15:35:31 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.189])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 130142166B31;
 Mon, 18 Dec 2023 15:35: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: 16c6ef76-9dbb-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702913736;
	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=zgWkI9GAtyASOU/mBRpzeMpBDbcuSNrKPkr2ApgRSj0=;
	b=gR+2UQEUpc3GxVZjGKIlRNovy0wdvMsTFkfMNk1IUYXe/g4E/HGi1kuDuR41eMV+KtWHMr
	VvQ6LX1+aTojyTw1jcs2weYlIvzKC1DOFHjmAl5bOYLPAK7aw2CeIxTRm7rrLsJe3pGYxE
	XEBWMUnaLFuAwgumKFEdhJGIWEomsb4=
X-MC-Unique: Z6mJD_OXNHGJP7Uu4lO-AA-1
Date: Mon, 18 Dec 2023 16:35:25 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 07/14] block: remove bdrv_co_lock()
Message-ID: <ZYBmvd88icCxOEBz@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-8-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205182011.1976568-8-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6

Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> The bdrv_co_lock() and bdrv_co_unlock() functions are already no-ops.
> Remove them.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:35:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:35:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656165.1024198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFeu-0001yf-Jf; Mon, 18 Dec 2023 15:35:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656165.1024198; Mon, 18 Dec 2023 15: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 1rFFeu-0001yX-Gl; Mon, 18 Dec 2023 15:35:56 +0000
Received: by outflank-mailman (input) for mailman id 656165;
 Mon, 18 Dec 2023 15:35: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=iZ/e=H5=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFFes-0001Py-O2
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:35:54 +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 2061497d-9dbb-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:35:53 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-258-s1dv_ctpMQWXja38g4Rh-A-1; Mon, 18 Dec 2023 10:35:49 -0500
Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com
 [10.11.54.8])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 847C98350E5;
 Mon, 18 Dec 2023 15:35:48 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.189])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 5FEFCC15968;
 Mon, 18 Dec 2023 15:35: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: 2061497d-9dbb-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702913752;
	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=F/7GeNjlIOe+iJkXh5tIFarvSyFRtMjWqaNDVwtlcfM=;
	b=BuOlU8ABSzMUzTxN3T7uEpEg68NjnKWfyr6Rc++Ju4pPZkkj6r2CdTfiXWZvVhcYJHztr/
	I9raENlMQEMFN3d/8Iv7YPHCXHasyDxs+lcp/Js6JhX7nSKAT6/6P45iwrTo1s8Jov3F0F
	W3Bx19BpefHmXmeoaIAGpHo2y0AjXIQ=
X-MC-Unique: s1dv_ctpMQWXja38g4Rh-A-1
Date: Mon, 18 Dec 2023 16:35:42 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 08/14] scsi: remove AioContext locking
Message-ID: <ZYBmzsnD-coIBWqs@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-9-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205182011.1976568-9-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8

Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> The AioContext lock no longer has any effect. Remove it.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:36:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:36:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656166.1024209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFfC-0002Sk-SP; Mon, 18 Dec 2023 15:36:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656166.1024209; Mon, 18 Dec 2023 15:36:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFfC-0002Sd-Oe; Mon, 18 Dec 2023 15:36:14 +0000
Received: by outflank-mailman (input) for mailman id 656166;
 Mon, 18 Dec 2023 15:36: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=iZ/e=H5=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFFfA-0001Py-NQ
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:36:12 +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 2b033eaf-9dbb-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:36:11 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-696-eE71WITNP2Ch2_m0B0DdKA-1; Mon, 18 Dec 2023 10:36:04 -0500
Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com
 [10.11.54.6])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0112D8F7778;
 Mon, 18 Dec 2023 15:36:03 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.189])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id DA9A52166B31;
 Mon, 18 Dec 2023 15:35:58 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b033eaf-9dbb-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702913769;
	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=OfX4u1RD785N6An+qKqIxwNJZ89+Fc/HoH1RtiqPDvM=;
	b=LDAB2XzXDYvnRzows5LVYOMKRUE9eqwSwFmn+ByhufeFt0TC+qdIw67luTazHwHDjhrCqV
	FKVBYerAe8OoPFTcxgNH58Q81gp4UMDvRrgtkJTi/vrJP/BNxA6L7IhgLH9y4KUbpdMa8P
	OvU0fZlU7nCCUok0NUMhNKfLe0k+jZc=
X-MC-Unique: eE71WITNP2Ch2_m0B0DdKA-1
Date: Mon, 18 Dec 2023 16:35:57 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 09/14] aio-wait: draw equivalence between
 AIO_WAIT_WHILE() and AIO_WAIT_WHILE_UNLOCKED()
Message-ID: <ZYBm3fgtzkh2ke-D@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-10-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205182011.1976568-10-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6

Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> Now that the AioContext lock no longer exists, AIO_WAIT_WHILE() and
> AIO_WAIT_WHILE_UNLOCKED() are equivalent.
> 
> A future patch will get rid of AIO_WAIT_WHILE_UNLOCKED().
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:36:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:36:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656169.1024219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFfb-0003CR-4P; Mon, 18 Dec 2023 15:36:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656169.1024219; Mon, 18 Dec 2023 15: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 1rFFfb-0003CK-1f; Mon, 18 Dec 2023 15:36:39 +0000
Received: by outflank-mailman (input) for mailman id 656169;
 Mon, 18 Dec 2023 15: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=iZ/e=H5=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFFfa-0001Py-Eq
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:36:38 +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 3a527a49-9dbb-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:36:36 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-214-YrA_eJyzOHe5pX8xUfYcgw-1; Mon, 18 Dec 2023 10:36:30 -0500
Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com
 [10.11.54.6])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 284978F7763;
 Mon, 18 Dec 2023 15:36:29 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.189])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 136572166B31;
 Mon, 18 Dec 2023 15:36:24 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a527a49-9dbb-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702913795;
	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=4bvx/ZML+G395CK8q8MutVS+t0ZGfK/ntYAEwj/TaGY=;
	b=EtyuHMQVi/9Gv4dQhyNK/gEtncD4b9ZYCSEjMgRjUIlrKl/QiBF8E1o+vMEIk6e7Bj75zv
	JbI8Pfwt51p2tjBrVS6i2+uMcu45j/b2Qir/0ZuvKFs1pqBLB6vFT3JO4GgklAH43hAKWi
	o/NYrbae5XwyKyjzDXv7JIjked5GYYY=
X-MC-Unique: YrA_eJyzOHe5pX8xUfYcgw-1
Date: Mon, 18 Dec 2023 16:36:23 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 10/14] aio: remove
 aio_context_acquire()/aio_context_release() API
Message-ID: <ZYBm9_Qpyt1-of30@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-11-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205182011.1976568-11-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6

Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> Delete these functions because nothing calls these functions anymore.
> 
> I introduced these APIs in commit 98563fc3ec44 ("aio: add
> aio_context_acquire() and aio_context_release()") in 2014. It's with a
> sigh of relief that I delete these APIs almost 10 years later.
> 
> Thanks to Paolo Bonzini's vision for multi-queue QEMU, we got an
> understanding of where the code needed to go in order to remove the
> limitations that the original dataplane and the IOThread/AioContext
> approach that followed it.
> 
> Emanuele Giuseppe Esposito had the splendid determination to convert
> large parts of the codebase so that they no longer needed the AioContext
> lock. This was a painstaking process, both in the actual code changes
> required and the iterations of code review that Emanuele eked out of
> Kevin and me over many months.
> 
> Kevin Wolf tackled multitudes of graph locking conversions to protect
> in-flight I/O from run-time changes to the block graph as well as the
> clang Thread Safety Analysis annotations that allow the compiler to
> check whether the graph lock is being used correctly.
> 
> And me, well, I'm just here to add some pizzazz to the QEMU multi-queue
> block layer :). Thank you to everyone who helped with this effort,
> including Eric Blake, code reviewer extraordinaire, and others who I've
> forgotten to mention.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:40:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:40:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656177.1024230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFiz-0005RF-LD; Mon, 18 Dec 2023 15:40:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656177.1024230; Mon, 18 Dec 2023 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 1rFFiz-0005R8-Gh; Mon, 18 Dec 2023 15:40:09 +0000
Received: by outflank-mailman (input) for mailman id 656177;
 Mon, 18 Dec 2023 15:40: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=W5ff=H5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFFiy-0005Qz-R1
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:40:08 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b89e97d1-9dbb-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 16:40:07 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c339d2b88so35431475e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 07:40:07 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 p3-20020a05600c1d8300b0040d1450ca7esm8574913wms.7.2023.12.18.07.40.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 07:40:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b89e97d1-9dbb-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702914007; x=1703518807; 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=NmHPd+tai59XXrMio5amhviGiwqVEKpnXfd4MyFocSU=;
        b=PsV00VppNX++sLqRV95u/TAOwYbE0Xrac61jIqlSL5EPnxQSlzEZpk0sygqzooViSe
         1GzHsTlWQrF9orrRaWtS7NnByj8l2r8HOTj3H2tRueHhBRehvsXA7puD4X9eEfDUkver
         kl9+9nIa2sFtVlDcygMIaQTZKzfKV80+UKfzo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702914007; x=1703518807;
        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=NmHPd+tai59XXrMio5amhviGiwqVEKpnXfd4MyFocSU=;
        b=w8U9hAPw4ct0Lj58QjiMvN9uK9LK5AWO0krl+4l7GkS/fSMoymJfoZfsIIr6yvvYUv
         3zbmBCjyJrWdoRbWvFtpLcQGtM/lyVpaqssjAdYF6/2UNAohYOrrHBYExS0n3auOXJ+w
         QYGDQ4xgkH1D2hhR0kIQiWR3k1dbStrv41qqf3EY3xfu0dqZH6av0QZjPeNTgd1SEcO/
         +06P8ESZabAv2mtG347YyDEK1pZMb0f+ZR+RUVooR3iMHMoaA9guQ5I6r7bQeVHWNM0m
         fLxJzfR/HEUnF0yMeByqSpF9UIxKHCRGvMISaS8wGkXQ/fzWaCGeM9ieJjJn6yMoV68k
         vJow==
X-Gm-Message-State: AOJu0Yx3Nz4mJ4RomouM3HG25uCKpb7wKs2OO2mL2zgMtERPqvesMy4k
	eY7cO1cMb/rJe56JQSSCvBVzvQ==
X-Google-Smtp-Source: AGHT+IFyWtDq7geiU3M+yUNRhJH3i1yqL1jIMPXh4w9LNIWhObo1neWIguICihjSem1OTOafQpDQ1Q==
X-Received: by 2002:a05:600c:3556:b0:40b:5e1c:af2f with SMTP id i22-20020a05600c355600b0040b5e1caf2fmr8568853wmq.53.1702914007186;
        Mon, 18 Dec 2023 07:40:07 -0800 (PST)
Date: Mon, 18 Dec 2023 16:40:05 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 1/4] x86/spec-ctrl: add logic to issue IBPB on exit to
 guest
Message-ID: <ZYBn1XW0nbyqQoxq@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <31da79de-bd6b-af95-793a-c16516992bc7@suse.com>
 <ZYA3Db53Z3fvBlwn@macbook>
 <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com>

On Mon, Dec 18, 2023 at 02:46:37PM +0100, Jan Beulich wrote:
> On 18.12.2023 13:11, Roger Pau MonnÃ© wrote:
> > Hello,
> > 
> > I'm not as expert as Andrew in all the speculation stuff, but I will
> > try to provide some feedback.
> > 
> > On Tue, Feb 14, 2023 at 05:10:42PM +0100, Jan Beulich wrote:
> >> In order to be able to defer the context switch IBPB to the last
> >> possible point, add logic to the exit-to-guest paths to issue the
> >> barrier there, including the "IBPB doesn't flush the RSB/RAS"
> >> workaround. Since alternatives, for now at least, can't nest, emit JMP
> >> to skip past both constructs where both are needed. This may be more
> >> efficient anyway, as the sequence of NOPs is pretty long.
> > 
> > Could you elaborate on the reason why deferring the IBPB to the exit
> > to guest path is helpful?  So far it just seem to make the logic more
> > complex without nay justification (at least in the changelog).
> 
> I've added "(to leave behind as little as possible)" ahead of the 1st
> comma - is that sufficient, do you think?

Please bear with me, but I'm still uncertain.

Even if IBRS is not enabled, and such indirect branch predictions are
at the same predictor mode, how would that be of any use to a guest?
My understanding was that the attacker is the one that has to control
the indirect branch predictor contents in order to attack the
hypervisor or other guests.

> >> ---
> >> I have to admit that I'm not really certain about the placement of the
> >> IBPB wrt the MSR_SPEC_CTRL writes. For now I've simply used "opposite of
> >> entry".
> > 
> > Maybe it would easier to just add the MSR_PRED_CMD PRED_CMD_IBPB write
> > to the vmcs MSR load list?
> > 
> > It's a one-time only AFAICT, as you would only want to do this for
> > context-switch AFAICT.
> 
> That would be a back and forth of adding and removing the MSR to/from
> that list then, which I'm not convinced is helpful. With these special
> MSRs I would further be uncertain as to their effect when used via one
> of these lists.

Hm, we do seem to already use MSR_PRED_CMD with such lists, so I would
assume they work just fine.

Anyway, was mostly a recommendation towards clarity, because I think
the return to guest context assembly is getting rather convoluted, and
it's IMO critical for it to be easy to follow.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:40:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:40:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656184.1024239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFjn-0006Fe-0Y; Mon, 18 Dec 2023 15:40:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656184.1024239; Mon, 18 Dec 2023 15: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 1rFFjm-0006FX-TR; Mon, 18 Dec 2023 15:40:58 +0000
Received: by outflank-mailman (input) for mailman id 656184;
 Mon, 18 Dec 2023 15:40:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=De97=H5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFFjm-0005ry-5i
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:40:58 +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 d5b3d333-9dbb-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:40:56 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-50e24e92432so2695808e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 07:40:56 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 l10-20020a056902000a00b00da02a2ef6afsm7693663ybh.30.2023.12.18.07.40.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 07:40:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5b3d333-9dbb-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702914056; x=1703518856; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:cc:autocrypt:from:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=b6fLVb/vulkuNQXxodn4pu2ol4A2t+yKrYSWudKFm7c=;
        b=gq99cwD/YM0g5K1dW2SllJPkzkBc59ziKtrk6p/IsC8xs4fv6G45rVkNPTL1btxhWU
         OR1MKOK1jZzVeuGV3mX14wtq9ZTBPeC3SAiJeUl/n8IC+JEAgM0QOdMosSgRp807kij9
         zcvFwhaxiFOEYXsrVU+P5Cu4/I1lr8ikqQtZ4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702914056; x=1703518856;
        h=content-transfer-encoding:in-reply-to:cc:autocrypt:from:references
         :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=b6fLVb/vulkuNQXxodn4pu2ol4A2t+yKrYSWudKFm7c=;
        b=No4bnYWvfEad1n8GOkB+DW3bd638OGEIUw6Llr4mJFYbqGfPik2Nh+6EswCM8GUalP
         8Qku/qJzhvA/y7lQDRYG3YsmHm9uBY/+PEcutTJzv73fm2IW2HobmOSB12305b2yHf+u
         8ShS1DlvVRKKOWIDnlRflrIMfsLwYttFIxWl2W9qQedWyrMCCxP8oz4xlDei9moBcfvH
         kSDP6jcLwXIFdsDmqTVv5lOP4YnzxFDOaoK0cvZwe6sCD5MBnSrji331MN9WIpymBTcW
         GJ67r5afm1gHjClbjLBZEunMYrcdICBrnZHTYaq6lH7h/CojEXnd0yb1u7+Enk1m32PH
         //oA==
X-Gm-Message-State: AOJu0YzwXIttxAL5OsmkJeHFFGBevQBR2ii9mzEDOFlxg9jbONc9wSbv
	YU6T6pDXT1es7+GTyWR1q1X1GA==
X-Google-Smtp-Source: AGHT+IF5AdRVsLm7L0S4j7YEnjOZCu3M8n9lk9JZ8ch07/ouI41VBWT0pu4RYmyM4wjQydWR4li5LA==
X-Received: by 2002:a2e:b602:0:b0:2cc:7472:80c6 with SMTP id r2-20020a2eb602000000b002cc747280c6mr694019ljn.35.1702914055749;
        Mon, 18 Dec 2023 07:40:55 -0800 (PST)
Message-ID: <9cc86706-5791-4967-802c-3e665bc97804@citrix.com>
Date: Mon, 18 Dec 2023 15:40:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Possible bug in Xen
Content-Language: en-GB
To: Joe Tretter <j.tretter@gmail.com>, xen-devel@lists.xenproject.org
References: <de8b87e2-a4a2-4e49-80f5-97c745f46500@gmail.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
In-Reply-To: <de8b87e2-a4a2-4e49-80f5-97c745f46500@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/12/2023 3:34 pm, Joe Tretter wrote:
> Hello,
>
> I discussed the below problem with the QubesOS team on Github
> (https://github.com/QubesOS/qubes-issues/issues/4493) and they suggest
> that this seems to be a problem with Xen, and suggested that I post it
> to this e-mail address.
>
> I have problems restoring backups in QubesOS release 4.1.2 on one of
> my machines.
> Other users reported the issue too, but no QubesOS developer seemed to
> be able to reproduce it, therefore nothing happened for a while and
> the assumption has been that it's some sort of hardware problem.
>
> I analyzed the problem down to the "scrypt" toolÂ 
> (https://www.tarsnap.com/scrypt.html) falsely complaining that the
> password would be wrong.
> I proceeded and re-compiled the "scrypt" tool in it's latest version
> and found that the self-tests show intermittent erratic behavior.
>
> This issue only happens with QubesOS/Xen Kernel, if I boot into a
> kernel without Xen, the problem can't be observed.
> The problem can only be observed on one of my machines which is a Dell
> Inspiron 5675 with an AMD Ryzen 7 1700 Eight-Core Processor.
>
> I hope you can help with this issue.

So the issue is specific to your AMD Zen1 system, and only when Xen is
in the mix.

Can you try booting Xen with spec-ctrl=eager-fpu and see if that changes
the behaviour ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 15:43:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 15:43:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656193.1024249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFlx-0007OV-C6; Mon, 18 Dec 2023 15:43:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656193.1024249; Mon, 18 Dec 2023 15:43:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFFlx-0007OO-9I; Mon, 18 Dec 2023 15:43:13 +0000
Received: by outflank-mailman (input) for mailman id 656193;
 Mon, 18 Dec 2023 15:43: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=W5ff=H5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFFlw-0007E9-4j
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 15:43:12 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2573a54c-9dbc-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 16:43:10 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c2bb872e2so37361935e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 07:43:10 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 t11-20020a05600c450b00b0040c495b1c90sm31865042wmo.11.2023.12.18.07.43.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 07:43:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2573a54c-9dbc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702914190; x=1703518990; 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=4r2A/h8diWCfKxEqoaJYQKuno0t/DfyVZzjLiv/hWkE=;
        b=JEZ5DwoPSBgIXj9NTGj3w6FSKDOQIKPEAcfdlWfm4MiLFRyWwSRpKJxmPG+cUNf3OP
         Schn8LUJTZ6DfSrYFBJT+ifnRN3OlwcdBNzcL782/n+HFnYX36Meb6GcRSZ/e3IY0q5r
         cg1SyJcOpCVZ0cF5u4VqdpSpcayy1eUadwMHs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702914190; x=1703518990;
        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=4r2A/h8diWCfKxEqoaJYQKuno0t/DfyVZzjLiv/hWkE=;
        b=darLJEyc9z/rUUPXxLXnngvOsugvL62Gw2XkUt1pnnEOWKeA1ELMZQPvUWOCXeXjyu
         6g93X8FFY1Q9zw3H1RYChHIn5uOIOAVNk8W91Ty0XBW8Y1Y/LPLznCPfrP4DOYzdeM5g
         AGQ+at6OMJg51l3ft0nbm0ipDYw8cJzETZZb/NW039pengrfNJnUGbCEfoDnM6aL4e7A
         1ziXk8eu/lT0xu1bIxPIQNGbCrU4fpfLLFEIWNTe21tZNdPIhYzJH5xjkWdp4m6fW9QT
         Dt6aEMyHd1zL+ChjpU1hO2GudMQi0Jr/qZ697GHg3H6k6qsWprB7XSyzoIfhEwWrRMkh
         POjA==
X-Gm-Message-State: AOJu0Yw3UJrIKcPgyKluxHqm1eDeadbDHu6weajuo9JSiHSDvmCE7T+J
	C0ikXR1xjQPiXjcVOdHl/gBQ+5CUqGx4E6USMJ0=
X-Google-Smtp-Source: AGHT+IGRgl+CQLeClcV0xYW5BSkzEXxEpRHgtuehgliY4Q34thBPZOroQhcqy/AMx3BGoghwd5pzWQ==
X-Received: by 2002:a7b:c40d:0:b0:40c:31f1:144c with SMTP id k13-20020a7bc40d000000b0040c31f1144cmr4137247wmi.87.1702914189694;
        Mon, 18 Dec 2023 07:43:09 -0800 (PST)
Date: Mon, 18 Dec 2023 16:43:08 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 1/4] x86/spec-ctrl: add logic to issue IBPB on exit to
 guest
Message-ID: <ZYBojHyqUeB9FWmh@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <31da79de-bd6b-af95-793a-c16516992bc7@suse.com>
 <ZYA3Db53Z3fvBlwn@macbook>
 <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com>
 <2f6367bd-d63d-435f-8d6e-553d5e129eb5@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2f6367bd-d63d-435f-8d6e-553d5e129eb5@suse.com>

On Mon, Dec 18, 2023 at 02:50:27PM +0100, Jan Beulich wrote:
> On 18.12.2023 14:46, Jan Beulich wrote:
> > On 18.12.2023 13:11, Roger Pau MonnÃ© wrote:
> >> Hello,
> >>
> >> I'm not as expert as Andrew in all the speculation stuff, but I will
> >> try to provide some feedback.
> >>
> >> On Tue, Feb 14, 2023 at 05:10:42PM +0100, Jan Beulich wrote:
> >>> In order to be able to defer the context switch IBPB to the last
> >>> possible point, add logic to the exit-to-guest paths to issue the
> >>> barrier there, including the "IBPB doesn't flush the RSB/RAS"
> >>> workaround. Since alternatives, for now at least, can't nest, emit JMP
> >>> to skip past both constructs where both are needed. This may be more
> >>> efficient anyway, as the sequence of NOPs is pretty long.
> >>
> >> Could you elaborate on the reason why deferring the IBPB to the exit
> >> to guest path is helpful?  So far it just seem to make the logic more
> >> complex without nay justification (at least in the changelog).
> > 
> > I've added "(to leave behind as little as possible)" ahead of the 1st
> > comma - is that sufficient, do you think?
> 
> Actually, the next patch supplies better context, i.e. is more / also
> about avoiding to clobber Xen's own predictions.

Right, that I got from next patch, but given context switch is already
a quite heavy operation, does avoiding the cleaning of the branch
predictor make that much of a difference?

IMO it needs good justification given it's a change that makes the
logic harder to follow, so if it turns out there's no difference I
would rather leave the IBPB at context switch.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 16:00:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 16:00:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656203.1024259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFG2i-00073y-QL; Mon, 18 Dec 2023 16:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656203.1024259; Mon, 18 Dec 2023 16: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 1rFG2i-00073r-MI; Mon, 18 Dec 2023 16:00:32 +0000
Received: by outflank-mailman (input) for mailman id 656203;
 Mon, 18 Dec 2023 16:00:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFG2g-00073l-LK
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 16:00:30 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90a96da2-9dbe-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 17:00:29 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c580ba223so41076645e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 08:00:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 h12-20020a05600c314c00b0040c45cabc34sm33764727wmo.17.2023.12.18.08.00.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 08:00:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90a96da2-9dbe-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702915229; x=1703520029; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=IzLaWn0KMf/YidDLAgHkGSt4AxBYyErWqcPEZ4LOS+8=;
        b=KaT+60Jx6j4iD5llQ6XrUh2b6iAQr6hem14UKieP2c8oV6Jx54PfOBfJQ9+ZdZhVsQ
         ga51yjSQr6JM38ElwL+1Sah+sHy80PMYh6124T1NVYCH0C2NVxfWDcwQEofSp2NWWA7L
         EfRPoXzmGT5EhXziryl/xREqxgZtviS4nOYdSud2nX4XApqklnHT3+m3mV0w7CUI0+H7
         v65nK6V/PgNcesJMjRSusuYB//EVJofxgMEAnuF/qNC30sA8jUrMelkE5OaOkUKzsqcJ
         oeJDv4XYZT75c1AcrHvlslwuM8e3u0IYrG8Ofah8eYJtV8nigAY8gU7F6nwCedmTb+jB
         jEwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702915229; x=1703520029;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=IzLaWn0KMf/YidDLAgHkGSt4AxBYyErWqcPEZ4LOS+8=;
        b=aXbFBeqStQkech4mJEW6Y9xviicXmq/FkASyNMALUDuoAKnjYs2qV0YF/HCtgaqN6z
         iga9fCYY9ncctDX+1DcWltA76GYoIktaCQTFpMNavFIGRaAaoKEYZxczhJTw3kn8j/0j
         KXJErhIysV4BLQ6ThDuvbsWXaZ2LcFTBl4/WNeN5aes9cTQ5eEqsDyZMBRttoyEBQ9bA
         8VClhdYY9IH/DERsipd1b95gnH8dXWbY0Zn6J9QRAB3nZUyzzKgasEicmM1DJUuVW4ZJ
         dzlMnmkop2GAh9OSmzkAKznk4t/Mees6PCizILRDVVoKqiB9lu+tmNYlzIwK5//itYOC
         VuWQ==
X-Gm-Message-State: AOJu0Yxsu6wxtkCMNXb7iOPrg+NkY2hf/0dLONWw/ivU/OyWo5CsnDEP
	YVq5D4T3bwVkqlS29WKMBZbM
X-Google-Smtp-Source: AGHT+IE/Lz+OtO8Xz8HKLM7oB8B88u1CvsMuwX2sABB8JlI+kIoORlCPvmAD/w3eThQJ0RcAYhFwFA==
X-Received: by 2002:a05:600c:3781:b0:40c:35c4:a128 with SMTP id o1-20020a05600c378100b0040c35c4a128mr9586078wmr.121.1702915228767;
        Mon, 18 Dec 2023 08:00:28 -0800 (PST)
Message-ID: <e9a0612d-e2f7-4612-95e1-3defdf289db1@suse.com>
Date: Mon, 18 Dec 2023 17:00:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86/spec-ctrl: add logic to issue IBPB on exit to
 guest
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <31da79de-bd6b-af95-793a-c16516992bc7@suse.com> <ZYA3Db53Z3fvBlwn@macbook>
 <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com> <ZYBn1XW0nbyqQoxq@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYBn1XW0nbyqQoxq@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 16:40, Roger Pau MonnÃ© wrote:
> On Mon, Dec 18, 2023 at 02:46:37PM +0100, Jan Beulich wrote:
>> On 18.12.2023 13:11, Roger Pau MonnÃ© wrote:
>>> Hello,
>>>
>>> I'm not as expert as Andrew in all the speculation stuff, but I will
>>> try to provide some feedback.
>>>
>>> On Tue, Feb 14, 2023 at 05:10:42PM +0100, Jan Beulich wrote:
>>>> In order to be able to defer the context switch IBPB to the last
>>>> possible point, add logic to the exit-to-guest paths to issue the
>>>> barrier there, including the "IBPB doesn't flush the RSB/RAS"
>>>> workaround. Since alternatives, for now at least, can't nest, emit JMP
>>>> to skip past both constructs where both are needed. This may be more
>>>> efficient anyway, as the sequence of NOPs is pretty long.
>>>
>>> Could you elaborate on the reason why deferring the IBPB to the exit
>>> to guest path is helpful?  So far it just seem to make the logic more
>>> complex without nay justification (at least in the changelog).
>>
>> I've added "(to leave behind as little as possible)" ahead of the 1st
>> comma - is that sufficient, do you think?
> 
> Please bear with me, but I'm still uncertain.
> 
> Even if IBRS is not enabled, and such indirect branch predictions are
> at the same predictor mode, how would that be of any use to a guest?
> My understanding was that the attacker is the one that has to control
> the indirect branch predictor contents in order to attack the
> hypervisor or other guests.

Right; see my later reply.

>>>> ---
>>>> I have to admit that I'm not really certain about the placement of the
>>>> IBPB wrt the MSR_SPEC_CTRL writes. For now I've simply used "opposite of
>>>> entry".
>>>
>>> Maybe it would easier to just add the MSR_PRED_CMD PRED_CMD_IBPB write
>>> to the vmcs MSR load list?
>>>
>>> It's a one-time only AFAICT, as you would only want to do this for
>>> context-switch AFAICT.
>>
>> That would be a back and forth of adding and removing the MSR to/from
>> that list then, which I'm not convinced is helpful. With these special
>> MSRs I would further be uncertain as to their effect when used via one
>> of these lists.
> 
> Hm, we do seem to already use MSR_PRED_CMD with such lists, so I would
> assume they work just fine.

Ah, yes, I forgot about that. Still it would be a back and forth if we
wanted the MSR on the list only after a context switch, but not anymore
for later VM entry. Also iirc these lists are VMX-only?

Jan

> Anyway, was mostly a recommendation towards clarity, because I think
> the return to guest context assembly is getting rather convoluted, and
> it's IMO critical for it to be easy to follow.
> 
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 16:02:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 16:02:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656205.1024268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFG4X-0007p7-4r; Mon, 18 Dec 2023 16:02:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656205.1024268; Mon, 18 Dec 2023 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 1rFG4X-0007p0-1x; Mon, 18 Dec 2023 16:02:25 +0000
Received: by outflank-mailman (input) for mailman id 656205;
 Mon, 18 Dec 2023 16:02: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFG4W-0007ou-Gr
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 16:02:24 +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 d4cf915e-9dbe-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 17:02:23 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c2308faedso39468445e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 08:02:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 i9-20020a05600c354900b003fee6e170f9sm42184380wmq.45.2023.12.18.08.02.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 08:02:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4cf915e-9dbe-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702915343; x=1703520143; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=2TZlu5h+Nh07tQDng1rzsJ0XRDBzB8VLNymSGIfzHIY=;
        b=JNMLqwcQ7pIpHYp+Nd96o3uWK2/Ok+x9/+++dzV9JZtbnsqDA94+whq6oY7Ms91UVr
         TChfvK3EqodZdQ1ZoQ/JrQSYQAxGm6tKccS5fqCo9Ri+zTCvuwwTBJH2dypZK1CdyQc6
         bMXZFtyhS5zzSQVxFlRy/REQNo6d3HhSTxMCoQWAMD9c264nCUop1fZNAS0jx0pu7VC4
         uIeByXIALKJ4e4fbw73TiuEZTkd61Z5Ku9eaUQHV/WrbPaUCOCc+zk/QFGNRQZe2yC6u
         78CB2xbwQX7HLVUjzPWn3utnlJ3xWjeTH4QHn03irMmWLkYU9B0WKKaKkN/C/yyT3zNK
         pFUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702915343; x=1703520143;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=2TZlu5h+Nh07tQDng1rzsJ0XRDBzB8VLNymSGIfzHIY=;
        b=nSEHOMfGwpIfXSqoBLXiPl3gqHR0VczJ2rd9OzkNpJciFl3AooZwNi/n+xF6QGrMaL
         X+pCbKA9z1mxk+UtKgVbYZ5U4JIcs262iuSimwAeWvs1b4EIoJOwhhmvTYvkWP7HaH/l
         cylqEKyQYxRILlwGPGIgYhYSLP41W38y7RZAVz/Hrei4f2rOY5Wrz0DuMNgY4zL0ihl6
         yrkFBOALgZ+Z4J74reu8JE9d8wkTp0AUlgHcAn4bWS+lWxu5dmjrv6UFKTXIkqzesfUj
         dYnglAgaNKCP4CVZGZJSffJoaHMwMU/AHcuRWjApdaG1Q7bf0+L7eQMnbOfJwxkE00kB
         toeg==
X-Gm-Message-State: AOJu0YyEg/8steagHRCVo/mZ90rRXVWYyLAoqSgxraHEZhseUkaxm0zi
	3Ll34rqG+8snNovwHAEkchltrJP3WUMxVcbsFo3h
X-Google-Smtp-Source: AGHT+IEHH4otcAiOqsUdflH/WdtaI4Gzbfn+PmF/MUTCADO+Gciqywi9Bl9Iy5/hb1/0wrBRI8SASA==
X-Received: by 2002:a05:600c:319b:b0:40b:5e59:c57f with SMTP id s27-20020a05600c319b00b0040b5e59c57fmr8435574wmp.169.1702915341807;
        Mon, 18 Dec 2023 08:02:21 -0800 (PST)
Message-ID: <740f7915-b705-4fe5-990b-ca5de38004a4@suse.com>
Date: Mon, 18 Dec 2023 17:02:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86/spec-ctrl: add logic to issue IBPB on exit to
 guest
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <31da79de-bd6b-af95-793a-c16516992bc7@suse.com> <ZYA3Db53Z3fvBlwn@macbook>
 <1c00c3ba-4d10-4cdc-ae2e-ca2fb2157be6@suse.com>
 <2f6367bd-d63d-435f-8d6e-553d5e129eb5@suse.com> <ZYBojHyqUeB9FWmh@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYBojHyqUeB9FWmh@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 16:43, Roger Pau MonnÃ© wrote:
> On Mon, Dec 18, 2023 at 02:50:27PM +0100, Jan Beulich wrote:
>> On 18.12.2023 14:46, Jan Beulich wrote:
>>> On 18.12.2023 13:11, Roger Pau MonnÃ© wrote:
>>>> Hello,
>>>>
>>>> I'm not as expert as Andrew in all the speculation stuff, but I will
>>>> try to provide some feedback.
>>>>
>>>> On Tue, Feb 14, 2023 at 05:10:42PM +0100, Jan Beulich wrote:
>>>>> In order to be able to defer the context switch IBPB to the last
>>>>> possible point, add logic to the exit-to-guest paths to issue the
>>>>> barrier there, including the "IBPB doesn't flush the RSB/RAS"
>>>>> workaround. Since alternatives, for now at least, can't nest, emit JMP
>>>>> to skip past both constructs where both are needed. This may be more
>>>>> efficient anyway, as the sequence of NOPs is pretty long.
>>>>
>>>> Could you elaborate on the reason why deferring the IBPB to the exit
>>>> to guest path is helpful?  So far it just seem to make the logic more
>>>> complex without nay justification (at least in the changelog).
>>>
>>> I've added "(to leave behind as little as possible)" ahead of the 1st
>>> comma - is that sufficient, do you think?
>>
>> Actually, the next patch supplies better context, i.e. is more / also
>> about avoiding to clobber Xen's own predictions.
> 
> Right, that I got from next patch, but given context switch is already
> a quite heavy operation, does avoiding the cleaning of the branch
> predictor make that much of a difference?
> 
> IMO it needs good justification given it's a change that makes the
> logic harder to follow, so if it turns out there's no difference I
> would rather leave the IBPB at context switch.

As per another reply, I guess we want to discuss this with Andrew, so
maybe a good thing to try to remember to put up on the next x86 meeting
we're going to have.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 16:07:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 16:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656212.1024279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFG9P-0000Mt-QM; Mon, 18 Dec 2023 16:07:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656212.1024279; Mon, 18 Dec 2023 16: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 1rFG9P-0000Mm-Np; Mon, 18 Dec 2023 16:07:27 +0000
Received: by outflank-mailman (input) for mailman id 656212;
 Mon, 18 Dec 2023 16:07: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=De97=H5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFG9O-0000Mg-Rc
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 16:07:26 +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 8889bef4-9dbf-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 17:07:25 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c29f7b068so36778145e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 08:07:25 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 n19-20020a05600c3b9300b0040b4b66110csm43056584wms.22.2023.12.18.08.07.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 08:07:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8889bef4-9dbf-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702915644; x=1703520444; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ju/xDinfhcKy+MgLeA+RTPkDetkQgP8SoqAsacng96U=;
        b=ufqd9isy4V/h43TlPTXhwzR/i5gjRrI4pl07M/U677nBiedD9fsXRbszh4vxbswOGR
         AznHaHS1KOj9FwORmcezk8v5TN6/8ABvfL86vsrspB+foM1ZGKLP9ADvIJc8rRwPTME/
         1BHbvC7rHzDqfR73SxvPqWLOZKDsVTznTSPMg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702915644; x=1703520444;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ju/xDinfhcKy+MgLeA+RTPkDetkQgP8SoqAsacng96U=;
        b=GozsmTMXrHUS5BTP3Y9fiBawjfxD3G13Wvyq/uuuQuzvvq+Kn3m4EZdtWTHq4h9sII
         aevBMoGGSSzT9FZ5pjDmNWRfvU+PSa5Oz9HjsuicFxCa/6VVWa5fmJwxhcRK0+inttCU
         TKG+nts/2nVVZ4Fspd0HuggSlL/NqjAxn5pmstxoENRNyzHzjhKONyel157LFkMcfuxR
         61cK7L9tV4Whc9XHasIMj07iqkapxE0eP4I+MIqCjJ45NMjMrnc1s1Y4/RbmbqPUqjUB
         0Y3FQMiketpq84Zj96vQLzLoN0iNrtlj3OOivGC4MdrRS2y6hPYSXSgUVPx0GUf5Lfpk
         twLQ==
X-Gm-Message-State: AOJu0YwomkQmJUzsSgVUXjUa2iT0p0e4nWlXgWIreDrJXFpakvNMhMpa
	hV1cMSsVaKqeOK/MzDr9+nWehA==
X-Google-Smtp-Source: AGHT+IHSLrfm0jzPHHVGnxEp/osWsrS193CdpHjOCVBQO6lpi9exy2AAnBkkIWSS7aMnD9iKbucZlA==
X-Received: by 2002:a05:600c:4e8d:b0:40c:348a:1f8 with SMTP id f13-20020a05600c4e8d00b0040c348a01f8mr8397525wmq.17.1702915644565;
        Mon, 18 Dec 2023 08:07:24 -0800 (PST)
Message-ID: <95d3e8e9-66d3-4097-b2ed-c808369a08ac@citrix.com>
Date: Mon, 18 Dec 2023 16:07:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG for
 randconfig
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org, Anthony PERARD <anthony.perard@citrix.com>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>
 <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
 <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
 <7ec81395-298d-4d50-89af-d54f756ef657@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <7ec81395-298d-4d50-89af-d54f756ef657@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/12/2023 3:56 pm, Jan Beulich wrote:
> On 07.12.2023 21:17, Andrew Cooper wrote:
>> On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
>>> ARCH_FIXED_CONFIG is required in the case of randconfig
>>> and CI for configs that aren't ready or are not
>>> supposed to be implemented for specific architecture.
>>> These configs should always be disabled to prevent randconfig
>>> related tests from failing.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>>  xen/Makefile | 5 ++++-
>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/Makefile b/xen/Makefile
>>> index ca571103c8..8ae8fe1480 100644
>>> --- a/xen/Makefile
>>> +++ b/xen/Makefile
>>> @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
>>>  # *config targets only - make sure prerequisites are updated, and descend
>>>  # in tools/kconfig to make the *config target
>>>  
>>> +ARCH_FORCED_CONFIG := $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
>>> +
>>>  # Create a file for KCONFIG_ALLCONFIG which depends on the environment.
>>>  # This will be use by kconfig targets allyesconfig/allmodconfig/allnoconfig/randconfig
>>>  filechk_kconfig_allconfig = \
>>>      $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo 'CONFIG_XSM_FLASK_POLICY=n';) \
>>> -    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
>>> +    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
>>> +    $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat $(ARCH_FORCED_CONFIG);) ) \
>>>      :
>>>  
>>>  .allconfig.tmp: FORCE
>> We already have infrastructure for this.Â  What's wrong with
>> EXTRA_FIXED_RANDCONFIG?
> What I don't understand here is why dealing with the issue would want
> limiting to gitlab-CI. Anyone could run randconfig on their own, and
> imo it would be helpful if the same issue(s) could be prevented there,
> too. Hence my earlier suggestion to have a snippet which can be used
> by "interested" parties. And once dealt with in e.g. the makefile
> there should not be a need for any overrides in the CI config anymore.

This is trying to find a solution to a problem which doesn't exist.

RISC-V and PPC are experimental in Xen.Â  Noone else is going to come and
randconfig them until they're rather more production ready, and a
prerequisite of that is removing this list of exclusions.

Until you can actually find an interested party to comment, I think this
is just churn for no useful improvement.Â  If nothing else, calling it
randomforced.config isn't appropriate given the explanation of what this
target is used for...

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 16:10:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 16:10:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656214.1024289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGBs-00014g-8I; Mon, 18 Dec 2023 16:10:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656214.1024289; Mon, 18 Dec 2023 16: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 1rFGBs-00014Z-4R; Mon, 18 Dec 2023 16:10:00 +0000
Received: by outflank-mailman (input) for mailman id 656214;
 Mon, 18 Dec 2023 16:09:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFGBq-00013E-Pg
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 16:09:58 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2d35f74-9dbf-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 17:09:56 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c29f7b068so36859015e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 08:09:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o9-20020a05600c4fc900b004094d4292aesm42281231wmq.18.2023.12.18.08.09.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 08:09:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e2d35f74-9dbf-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702915796; x=1703520596; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=WGvpzE47+XxTh03qndxYZP4lk++VDW0OY6mUvrKO8aY=;
        b=SQTyv3zjsjBu3LGzuKoJi1mqVz1QTS5XpxgxwKZKaz3vtux09OXH3HikL+maOIj86A
         TUMYg0JbxAvmxYXEQGgB0YQPwkW/F3oEktuEzAu8aXZXzjbaqgEYsT02r3hZaXR0zxCV
         iE5lwOw92d/HzhI9n4Gb5r0t1uoS0/Ev26hVwjvPYgjvilyQWa+vdeo6nJh8/N0law8e
         mQGp1/skRxZVHlycVhOsJFu+3EQE01DIf8eHdCzgyTwqn0czHcSqzd44WZUYx9hQYeFQ
         sAarg43j2vatFKNptFy+iuPKLJ/xPjgqDHI1DUCXwzvt5+96rySKCXq2jQkFJwtUHu2G
         f5aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702915796; x=1703520596;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=WGvpzE47+XxTh03qndxYZP4lk++VDW0OY6mUvrKO8aY=;
        b=GkbaL1JsT05yPv8/jdL8sbL0MT308HxeDNM63S7J6MQ4RTJ10S6ymG43Itt3cDaVV2
         yVpVtHHDIiJ0Kk96Kw177T+KyTLVX91yH2ELrdKrvEoIYdB3r0FRU9DsDlpCqPn9AeXo
         inTS2kaRZjhAFnjWS83uW0tmlEHjiD3bF1C9/AkEkmMwSaIhkQRO9vVBVUCYy2AFtvgC
         spizs/MxHfFMuNKNmwfJ1dlRQw6StI9YOJhUwtvxWHlhUBo+1ISUj0IAS0dflkHXW/ek
         Alb95BeGGdxFyboSqwiWBZ3mnWIVLS10CndtqTVlFstvyw0ZTe2b1nQ4sDquWba/P/ZO
         hVAA==
X-Gm-Message-State: AOJu0Yz34Vzd2lQS/3/Y5Mb18YXkaaG92sogkKZv3BNMwm5omfvnxt90
	J6HJFbvZooUzR6ujZQPmAJ0Bi4LG1tRLrzDmGAHA
X-Google-Smtp-Source: AGHT+IEHWsqM2shrJrTn0BmxevD3a6X/A4eKe9burTeXaKPkHYGAf+e65SqSzCF4ItAwi3mtqP9RTw==
X-Received: by 2002:a05:600c:198b:b0:40c:4be1:ae11 with SMTP id t11-20020a05600c198b00b0040c4be1ae11mr6923476wmq.188.1702915796123;
        Mon, 18 Dec 2023 08:09:56 -0800 (PST)
Message-ID: <4e4408de-6362-4f4d-bd8b-fed5956a9472@suse.com>
Date: Mon, 18 Dec 2023 17:09:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/4] x86: limit issuing of IBPB during context switch
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <29e2b527-16b8-e72d-f625-781aedf21bc4@suse.com> <ZYBi83-LWEwywUuD@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYBi83-LWEwywUuD@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 16:19, Roger Pau MonnÃ© wrote:
> On Tue, Feb 14, 2023 at 05:11:40PM +0100, Jan Beulich wrote:
>> When the outgoing vCPU had IBPB issued and RSB overwritten upon entering
>> Xen, then there's no need for a 2nd barrier during context switch.
>>
>> Note that SCF_entry_ibpb is always clear for the idle domain, so no
>> explicit idle domain check is needed to augment the feature check
>> (which is simply inapplicable to "idle").
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks. However, aiui the plan still is for Andrew to pick up this series
and integrate it with other work he has in progress (or he is planning to
do).

>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -2005,17 +2005,26 @@ void context_switch(struct vcpu *prev, s
>>      }
>>      else
>>      {
>> +        unsigned int feat_sc_rsb = X86_FEATURE_SC_RSB_HVM;
>> +
>>          __context_switch();
>>  
>>          /* Re-enable interrupts before restoring state which may fault. */
>>          local_irq_enable();
>>  
>>          if ( is_pv_domain(nextd) )
>> +        {
>>              load_segments(next);
>>  
>> +            feat_sc_rsb = X86_FEATURE_SC_RSB_PV;
>> +        }
>> +
>>          ctxt_switch_levelling(next);
>>  
>> -        if ( opt_ibpb_ctxt_switch && !is_idle_domain(nextd) )
>> +        if ( opt_ibpb_ctxt_switch && !is_idle_domain(nextd) &&
>> +             (!(prevd->arch.spec_ctrl_flags & SCF_entry_ibpb) ||
>> +              /* is_idle_domain(prevd) || */
> 
> I would rather add a comment to note that the idle domain always has
> SCF_entry_ibpb clear, rather than leaving this commented check in the
> condition.

While I think I can see your point, I like it this way to match the
other !is_idle_domain() that's here.

>> +              !boot_cpu_has(feat_sc_rsb)) )
> 
> I do wonder if it would be more fail safe (and easier to expand going
> forward) if we introduce a new cpu_info field to track the CPU state:
> relevant here would be whether RSB has been overwritten and IBPB
> executed.  Such state would be cleared on each return from guest path.

To be honest - I'm not sure whether that would help or make things more
fragile. More state also means more things which can become incorrect /
inconsistent.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 16:12:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 16:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656217.1024298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGDr-0002pj-Hs; Mon, 18 Dec 2023 16:12:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656217.1024298; Mon, 18 Dec 2023 16: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 1rFGDr-0002pc-FO; Mon, 18 Dec 2023 16:12:03 +0000
Received: by outflank-mailman (input) for mailman id 656217;
 Mon, 18 Dec 2023 16:12:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFGDq-0002pP-92
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 16:12:02 +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 2c7f89d5-9dc0-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 17:12:00 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c48d7a7a7so32237125e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 08:12:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 l15-20020a05600c1d0f00b003feae747ff2sm45417784wms.35.2023.12.18.08.11.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 08:11:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c7f89d5-9dc0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702915920; x=1703520720; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=shGVjf43tMOH73NeyaHX2b3j/JcOM4HvLfHH0Zbub5s=;
        b=WoA9PYxUOR/l0TClR4DU01JwxNlshTDBbgc1FfIFOfpcMY3lJhaKfHXUgO//vZbPAm
         Xlv1nx5rJBnapb/7BxTQjk5CDe2HJrKyFJQYp09zOxdOr4QEEe7SnRTGdVoWJ++gy/h/
         +UWfChpKbdJx32vWN1ESjDPW528S0jFO5kVI1Hbip6leWDxZvznl3G8mcW5rH6zuq4T3
         9rnlCiXC6h1Q2D69qC3E85Z6BJQm/jiUXXR4sdYdFy+WpBAf+OqHaDpXBcNfq+43eV5f
         mUYUcrFAEuvIeadaWQb05DOcG5190iqgWK2fyXafgHwSYoETWM2wjR0B0t0muXdpO419
         FyHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702915920; x=1703520720;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=shGVjf43tMOH73NeyaHX2b3j/JcOM4HvLfHH0Zbub5s=;
        b=dMFYSPrGbKOSRMjWJA/kc/2zHiD2ukL5/Qt7zPMgN3Plj3FRmEn4UGvX6VsSQ3pdX8
         dlMEsBCcq4fN0WOFW6+BcWK5XzPpHHieccU60h4EB+WTVrAWvjB/f+2gQu4fd1ebgm4O
         rAHDa9+FBVcGoK4lYtxpK3LNQVXhT9+fzkXvhrvoB6QiEDm15xiIqv6Pl8/RYG8wW4iK
         eZC+Cb+09WOlERha2oXDoqPiKHoHtYBEKdzkkxaR9G/chS++fskb8E2Cmxn9zyizTdwv
         AA0ePn3lTu18xoqdz0XPC74LlQ1uejUhsKF05tPNirxpGYSU4vY4/fbPlv8axWgVbFao
         hibQ==
X-Gm-Message-State: AOJu0YzvLPP3/A34N87uHL80awH7cVWCf68DZbH880Ttv/gwwb1ZuwNr
	CoaevmYcBB0sV30d4NWMA2Kf
X-Google-Smtp-Source: AGHT+IEP3Ta/JZi0q9mB+NtoZBEpKWXWOpj3lGoXT9G8Rc7gku3gvnbpaeJDiGCW0CknACLHw4SbCg==
X-Received: by 2002:a7b:cb95:0:b0:40c:1946:be03 with SMTP id m21-20020a7bcb95000000b0040c1946be03mr9348616wmi.111.1702915919701;
        Mon, 18 Dec 2023 08:11:59 -0800 (PST)
Message-ID: <f7217f06-05e0-4091-8b9a-ee33adad69ff@suse.com>
Date: Mon, 18 Dec 2023 17:11:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/4] x86: limit issuing of IBPB during context switch
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <29e2b527-16b8-e72d-f625-781aedf21bc4@suse.com> <ZYBi83-LWEwywUuD@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYBi83-LWEwywUuD@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 16:19, Roger Pau MonnÃ© wrote:
> On Tue, Feb 14, 2023 at 05:11:40PM +0100, Jan Beulich wrote:
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -2005,17 +2005,26 @@ void context_switch(struct vcpu *prev, s
>>      }
>>      else
>>      {
>> +        unsigned int feat_sc_rsb = X86_FEATURE_SC_RSB_HVM;
>> +
>>          __context_switch();
>>  
>>          /* Re-enable interrupts before restoring state which may fault. */
>>          local_irq_enable();
>>  
>>          if ( is_pv_domain(nextd) )
>> +        {
>>              load_segments(next);
>>  
>> +            feat_sc_rsb = X86_FEATURE_SC_RSB_PV;
>> +        }
>> +
>>          ctxt_switch_levelling(next);
>>  
>> -        if ( opt_ibpb_ctxt_switch && !is_idle_domain(nextd) )
>> +        if ( opt_ibpb_ctxt_switch && !is_idle_domain(nextd) &&
>> +             (!(prevd->arch.spec_ctrl_flags & SCF_entry_ibpb) ||
>> +              /* is_idle_domain(prevd) || */
> 
> I would rather add a comment to note that the idle domain always has
> SCF_entry_ibpb clear, rather than leaving this commented check in the
> condition.
> 
>> +              !boot_cpu_has(feat_sc_rsb)) )

Oh, for completeness: For v5 I have this

@@ -2092,17 +2092,26 @@ void context_switch(struct vcpu *prev, s
     }
     else
     {
+        unsigned int feat_sc_rsb = X86_FEATURE_SC_RSB_HVM;
+
         __context_switch();
 
         /* Re-enable interrupts before restoring state which may fault. */
         local_irq_enable();
 
         if ( is_pv_domain(nextd) )
+        {
             load_segments(next);
 
+            feat_sc_rsb = X86_FEATURE_SC_RSB_PV;
+        }
+
         ctxt_switch_levelling(next);
 
-        if ( opt_ibpb_ctxt_switch && !is_idle_domain(nextd) )
+        if ( opt_ibpb_ctxt_switch && !is_idle_domain(nextd) &&
+             (!(prevd->arch.spec_ctrl_flags & SCF_entry_ibpb) ||
+              /* is_idle_domain(prevd) || */
+              (!cpu_has_auto_ibrs && !boot_cpu_has(feat_sc_rsb))) )
         {
             static DEFINE_PER_CPU(unsigned int, last);
             unsigned int *last_id = &this_cpu(last);

i.e. with the cpu_has_auto_ibrs check added.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 16:15:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 16:15:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656223.1024308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGHO-0004Ko-1e; Mon, 18 Dec 2023 16:15:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656223.1024308; Mon, 18 Dec 2023 16: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 1rFGHN-0004Kh-VL; Mon, 18 Dec 2023 16:15:41 +0000
Received: by outflank-mailman (input) for mailman id 656223;
 Mon, 18 Dec 2023 16: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFGHM-0004Kb-9r
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 16:15:40 +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 aedfad7a-9dc0-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 17:15:39 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-33668163949so1196643f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 08:15:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j17-20020a05600c1c1100b0040b48690c49sm43110390wms.6.2023.12.18.08.15.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 08:15:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aedfad7a-9dc0-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702916138; x=1703520938; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=YYUWCSAxZvREm2wsIVb0uzxLc9FlZQTameWd5CdpK8M=;
        b=B6W2Fn4Hj9ZAnCbt3838xeZVx1Aw/FSd0R2vWwaLn+kgNI2ReKDcWkGRKatFqYZotj
         1VYYFdPgyrSFJ3hHC+2Hs7HmYM6QFccVbPy6tCS4eC1zF9aHqUsI49fqJ9F05ScXlwiY
         WmjPgX0/1fxJLKxP3WY0R2nkg9tFUkovBdcgjvsA0RW0/h3AYs/IzDQDCkvSYVHobGbG
         GPIm4lNeqV2kt1FtoOvJpGwSSdAVijBrwWqMM0g7d5gdvX5wr9fPxfYngWHo7ehWVxfg
         XN+7MtV7gR7BP/gvkpwpVwKau517fvxVuXM+gpHQBOM8iaBO3PaFn3gHBuswAzikpTUi
         ZI1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702916138; x=1703520938;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=YYUWCSAxZvREm2wsIVb0uzxLc9FlZQTameWd5CdpK8M=;
        b=MTiFm68pbH3GZfYABU0nU8KWheJp3xOnSN6Mphdn6AXY8Wv/KCHOCIk2oMJ/+4zjm5
         UoL3+GFjf5HbbY849lL6YyCoamhxBRT6XcFpNSlH6Y+ukLOXJ6HaFjSHZVs3oTfx4e5l
         787xiaB1N1+lDuMi36BHrKaIVRx92yp5GHplClkeQgF+gdh4xrC409myXN1HTkXmtdRc
         1F1HSIXFSICkJ5iRXCPLNH/rKPrllRwXWKh9NV8/9lsDHQIuqnpy/zgVK1Yws+0vNPq4
         e88oYZZbc7Xbggh+rX5qMUBFrOgofjDY/GlDuWcrDnNv9n9VkOhKomhEYpxhWOWQ21sc
         PAiQ==
X-Gm-Message-State: AOJu0YzwZRXtOHzez6MxzzMEZo8xupb6s3gv3DTm7Cv2eUri9ZB77KIg
	tJTFLgPfNSLXOOnADAfNiD5W
X-Google-Smtp-Source: AGHT+IG8RosISx48Hwr6mUxxz/sbQDi/ZkfE/9FmTO7aa3bCJAyW+fBdVHvpV9XClgxHL26uCGnCRQ==
X-Received: by 2002:a7b:c8cf:0:b0:40c:66d6:cbcb with SMTP id f15-20020a7bc8cf000000b0040c66d6cbcbmr1764102wml.374.1702916138376;
        Mon, 18 Dec 2023 08:15:38 -0800 (PST)
Message-ID: <d56aa264-41f2-4cff-97dd-1a222750a389@suse.com>
Date: Mon, 18 Dec 2023 17:15:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG for
 randconfig
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org, Anthony PERARD <anthony.perard@citrix.com>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>
 <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
 <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
 <7ec81395-298d-4d50-89af-d54f756ef657@suse.com>
 <95d3e8e9-66d3-4097-b2ed-c808369a08ac@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <95d3e8e9-66d3-4097-b2ed-c808369a08ac@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 17:07, Andrew Cooper wrote:
> On 11/12/2023 3:56 pm, Jan Beulich wrote:
>> On 07.12.2023 21:17, Andrew Cooper wrote:
>>> On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
>>>> ARCH_FIXED_CONFIG is required in the case of randconfig
>>>> and CI for configs that aren't ready or are not
>>>> supposed to be implemented for specific architecture.
>>>> These configs should always be disabled to prevent randconfig
>>>> related tests from failing.
>>>>
>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>> ---
>>>>  xen/Makefile | 5 ++++-
>>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/xen/Makefile b/xen/Makefile
>>>> index ca571103c8..8ae8fe1480 100644
>>>> --- a/xen/Makefile
>>>> +++ b/xen/Makefile
>>>> @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
>>>>  # *config targets only - make sure prerequisites are updated, and descend
>>>>  # in tools/kconfig to make the *config target
>>>>  
>>>> +ARCH_FORCED_CONFIG := $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
>>>> +
>>>>  # Create a file for KCONFIG_ALLCONFIG which depends on the environment.
>>>>  # This will be use by kconfig targets allyesconfig/allmodconfig/allnoconfig/randconfig
>>>>  filechk_kconfig_allconfig = \
>>>>      $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo 'CONFIG_XSM_FLASK_POLICY=n';) \
>>>> -    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
>>>> +    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
>>>> +    $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat $(ARCH_FORCED_CONFIG);) ) \
>>>>      :
>>>>  
>>>>  .allconfig.tmp: FORCE
>>> We already have infrastructure for this.Â  What's wrong with
>>> EXTRA_FIXED_RANDCONFIG?
>> What I don't understand here is why dealing with the issue would want
>> limiting to gitlab-CI. Anyone could run randconfig on their own, and
>> imo it would be helpful if the same issue(s) could be prevented there,
>> too. Hence my earlier suggestion to have a snippet which can be used
>> by "interested" parties. And once dealt with in e.g. the makefile
>> there should not be a need for any overrides in the CI config anymore.
> 
> This is trying to find a solution to a problem which doesn't exist.
> 
> RISC-V and PPC are experimental in Xen.Â  Noone else is going to come and
> randconfig them until they're rather more production ready, and a
> prerequisite of that is removing this list of exclusions.
> 
> Until you can actually find an interested party to comment, I think this
> is just churn for no useful improvement.Â  If nothing else, calling it
> randomforced.config isn't appropriate given the explanation of what this
> target is used for...

"random" in the name can't possibly be right anyway. Such collection of
fixed settings would also be relevant to e.g. all{yes,no}config. Yet
that's still not the same as any kind of "default" config, which the
two architectures presently kind of abuse for the purpose of defining
required-fixed settings.

Jan



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 16:21:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 16:21:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656231.1024319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGNN-0000E1-QC; Mon, 18 Dec 2023 16:21:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656231.1024319; Mon, 18 Dec 2023 16:21:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGNN-0000Du-NZ; Mon, 18 Dec 2023 16:21:53 +0000
Received: by outflank-mailman (input) for mailman id 656231;
 Mon, 18 Dec 2023 16: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=av2Q=H5=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFGNM-0000Cc-P9
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 16:21:52 +0000
Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com
 [2607:f8b0:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8c7c54a9-9dc1-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 17:21:51 +0100 (CET)
Received: by mail-pl1-x62f.google.com with SMTP id
 d9443c01a7336-1d3ab37d0d1so6365935ad.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 08:21:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c7c54a9-9dc1-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702916510; x=1703521310; darn=lists.xenproject.org;
        h=content-transfer-encoding:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pO5BJ8Rl7yHjsHYoc6CitSVboRJSCi7v7qrAuhJAox4=;
        b=BM8uBR2pd0ywOLHb2VcJY2YsJD5K0I3u3oXuZkr+nf6lzqkOYfO5pynH0MyxJaUUtC
         VUB1U+ojyJvGi2iXzIy/Aqp/PhkVy3nL1QnpigbxiPEzYwn+Ztz8bSw2b96bePFj2NQG
         MJF497igK+eSB95XIZguRX6CEa9omhAS4dA7keDM+/upB/0fVbrfdOGi5kdvYPFdszTE
         ytyAh7VaGynwoAB+lpGyATHOMNEBrMURWDv/T6DfVeseyd7cMaZYjtqVTUVkN25yAKkW
         IyTPRm1waHFLkNsD5p54gBRvuffNkCwCFezFudWbfs/EBNTW35dKAioD2JclDklT9lm6
         rYbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702916510; x=1703521310;
        h=content-transfer-encoding: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=pO5BJ8Rl7yHjsHYoc6CitSVboRJSCi7v7qrAuhJAox4=;
        b=I5leSP3x+TD56BYWPIqwEWSa0tWDWpRCH0MEnbjjQKAJeP4b5f5lWNRo+K5A+Xn5e2
         AmI7vMNBt13ftu95d/YS+/nXOarKwXkwCp6VuHJrNsjU7arLfBiDhvNDFMj3jsAO8i5n
         PiJiewjSbRuvrDSGQyISmT1atDpbs4uuuc7IhzxvfWRQy1FiI9rpgyuH/bmhw0lpbKYb
         vRbCSwF6b1zigC9em5ZnB0pdciGPpKidxsKsLpRJpLNsveGvhXCKexDby+Vqeczw/kwX
         D2hzgigjn7I5ZRMfvTKIuPSbaP1W19xGG+F2NRTX8S1DY5UuOqQiiuSti1ZNe6+x+kMB
         vMlw==
X-Gm-Message-State: AOJu0Yy6NllSJz1z61GbOxeAqH8lCdlowSOBYa4LaIW15VlBgkxAnNB7
	q8gSVvJ+NzH10qsaYv1sJ10dlJ/ksqtvfErkLyF64Dh9kbqBCw==
X-Google-Smtp-Source: AGHT+IGHLLbJnYxaB3A9BVnhi39RbU3lyGeFn7r2KmJxrh12gUI0TEeuvN0ASp0Wo7oNNth3Iw/XYQzBatvetpTbmNo=
X-Received: by 2002:a17:902:704c:b0:1d0:6ffd:f222 with SMTP id
 h12-20020a170902704c00b001d06ffdf222mr8032883plt.120.1702916509627; Mon, 18
 Dec 2023 08:21:49 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com> <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
In-Reply-To: <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Mon, 18 Dec 2023 17:21:38 +0100
Message-ID: <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> >>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
> >>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up inter=
rupt
> >>>>
> >>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
> >>>> ioapic-edge and IRQ9 to ioapic-level ?
> >>>>
> >>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
> >>>> IR-IO-APIC    9-fasteoi   acpi
> >>>>
> >>>> to (xen 4.18.0)
> >>>>
> >>>> xen-pirq     -ioapic-edge  pinctrl_amd
> >>>> xen-pirq     -ioapic-level  acpi
> >>>>
> >>>> ?
> >

> > This look similar to
> > https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
> >
> > This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
> > (so level type) while in xen it  is mapped to oapic-edge  instead of
> > oapic-level
> > as the SSDT indicates :
> >
> >  Device (GPIO)
> >
> >      {
> >          Name (_HID, "AMDI0030")  // _HID: Hardware ID
> >          Name (_CID, "AMDI0030")  // _CID: Compatible ID
> >          Name (_UID, Zero)  // _UID: Unique ID
> >          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Set=
tings
> >          {
> >              Name (RBUF, ResourceTemplate ()
> >              {
> >                  Interrupt (ResourceConsumer, Level, ActiveLow, Shared,=
 ,, )
> >                  {
> >                      0x00000007,
> >            }
> > Any idea why ?
>
> Information coming from AML is required to be handed down by Dom0 to Xen.
> May want checking that (a) Dom0 properly does so and (b) Xen doesn't scre=
w
> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this is
> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7 is
> also the spurious vector. You may want to retry with the tip of the 4.17
> branch (soon to become 4.17.3) - while it doesn't look very likely to me
> that recent backports there were related, it may still be that they make
> a difference.
>

testing with 4.17.3:

Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  that
(XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: 1

but later on in dmesg I see :
[    1.747958] xen: registering gsi 7 triggering 0 polarity 1

So triggering is flipped from 1 to 0 (cannot find the definition for
those values).
Could this be the culprit ?


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 16:33:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 16:33:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656235.1024328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGYO-0006JM-Rg; Mon, 18 Dec 2023 16:33:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656235.1024328; Mon, 18 Dec 2023 16:33:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGYO-0006JF-Ox; Mon, 18 Dec 2023 16:33:16 +0000
Received: by outflank-mailman (input) for mailman id 656235;
 Mon, 18 Dec 2023 16: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=BN9V=H5=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rFGYN-0006J9-4D
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 16:33:15 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 232925c3-9dc3-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 17:33:13 +0100 (CET)
Received: from mg.gitlab.com (70.90.74.34.bc.googleusercontent.com
 [34.74.90.70]) by
 b62451f472e7 with SMTP id 65807447f399ce2fbf68a266 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Mon, 18 Dec 2023 16:33:11 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 232925c3-9dc3-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702917191; x=1702924391; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=YDVkZPzUSXME9utk5fdUMJsXNwgJYsVM/gzWYlPZbGQ=;
 b=dAECifVaSaAt2aWcSWFGoolvlX+hB1Jjlogx2Z7Su5ZWzxvT6c5sS8IbPQGGK+jUyO6r57xkLRYHB1NFlZp5ccqj0R9UMbkNii9wmKj02eQ/iaPVUvJtidSCcbmcGy2l+ZFA3dak6K/Tfu5vwJY9M66H0ysjRJlH8TOIX6asZMU=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Mon, 18 Dec 2023 16:33:11 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65807447821c0_2c27e287787159b2@gitlab-sidekiq-catchall-v2-5b75896b6c-6qbwg.mail>
Subject: xen | Successful pipeline for staging | 0cc74376
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6580744777b0b_2c27e28778715846";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1111343260
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6580744777b0b_2c27e28778715846
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1111343260 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 0cc74376 ( https://gitlab.com/xen-project/xen/-/commit/0cc74376d6823e0883f89556be2a267f2240a558 )
Commit Message: x86/hvm: address a violation of MISRA C:2012 Ru...
Commit Author: Maria Celeste Cesario
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1111343260 ( https://gitlab.com/xen-project/xen/-/pipelines/1111343260 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 0cc74376</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1111343260 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/0cc74376d6823e0883=
f89556be2a267f2240a558" style=3D"color: #3777b0; text-decoration: none;">=
0cc74376</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
x86/hvm: address a violation of MISRA C:2012 Ru...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/a8d562f849e08b360dc1d3b531862197?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Maria Celeste Cesario
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111134=
3260" style=3D"color: #3777b0; text-decoration: none;">#1111343260</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6580744777b0b_2c27e28778715846--


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 16:45:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 16:45:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656270.1024338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGjk-0000Vn-SK; Mon, 18 Dec 2023 16:45:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656270.1024338; Mon, 18 Dec 2023 16:45:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGjk-0000Vg-Ph; Mon, 18 Dec 2023 16:45:00 +0000
Received: by outflank-mailman (input) for mailman id 656270;
 Mon, 18 Dec 2023 16:44: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFGjj-0000Va-Od
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 16:44:59 +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 c710aebc-9dc4-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 17:44:57 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3366af69d4bso862607f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 08:44:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 q16-20020adff950000000b003366a9cb0d1sm2248798wrr.92.2023.12.18.08.44.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 08:44:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c710aebc-9dc4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702917897; x=1703522697; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ZG//uUwDrTrJn/B2uiCa2xylzgo2h6J0msGS9eCKbmY=;
        b=WAPQ+Vu8jkSXujfHpL/D+uLlRRsGt66KAAyfvsPubuu54qtZx+1Zkgxd/AAtGKn4dx
         9jukYfD2pgUXQI0jQlPLipf6OV3l42M7dVsFoT/mTheMUa67T8v3RBkqjYd75wy3jc9u
         QGQO8ZJknseZuImQphRO1gfA4l2dSAimqAEakx3gRRK9PPUsl1C3H59JKUU8xl+bTgu0
         y4CtZLJ5x+gBcMAOIS/uz2irgCbWNIIrK1vYrZlogbx8g7DtO8vMbF3+vzQW8+kfjtA/
         TO6uBVnvqVMGM9JTwjugW6pLA/oLWl25vBrXR2Z6Ww8hN1zxCQa9feFtO3oa8xkFWynv
         nNzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702917897; x=1703522697;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=ZG//uUwDrTrJn/B2uiCa2xylzgo2h6J0msGS9eCKbmY=;
        b=nbg+fs/kU1OyiARgUE3qVHsSx0294A3+6T9tCYnJJE9WL0bRDrZFFC4MOmYA8A//ip
         ObN4Og59pVdR7qXat+CVfHW0WxpU5P1IaLFAdKy95pxoY95RovQ0dQ2oelKrxsPGFspO
         GOqmP049/GJ0cUtekvCqdalYYZ2N8amAwAL7K7vJrtJtNLE1Pa1KI0LSGZLhKb5WcrA0
         rJfRXP+snaWzhvwGFBPZaHT5azslqgz967mnkuou6flgwxLjPwcosLvYUizlD6x9em/G
         qS400wRVD3+5kj3xZU0H9pCEieCwGkpzuLNE9Z74CFMoKQfltNlCWrExgIQ7XAIk8cIs
         7Taw==
X-Gm-Message-State: AOJu0YxOzJqpKcN2vurhHXdPWBNUFtd848S7lQu0ZGRznV6j39ChFdNg
	/WaQbXVf617X2C7GSaetUj4n
X-Google-Smtp-Source: AGHT+IH/8c2Ei+5RY2aR2gm5NTzcYFjQoMoeIjNci1GXDSd4VbLLoOg3fBZ+YjBg04Yy2MBvXkRXJQ==
X-Received: by 2002:a5d:6852:0:b0:336:6542:fc20 with SMTP id o18-20020a5d6852000000b003366542fc20mr1208550wrw.42.1702917897030;
        Mon, 18 Dec 2023 08:44:57 -0800 (PST)
Message-ID: <3aeb708d-a4fa-45b5-9d74-260ef2035b4a@suse.com>
Date: Mon, 18 Dec 2023 17:44:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
 <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
 <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
 <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
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: <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 17:21, SÃ©bastien Chaumat wrote:
>>>>> On 05.12.2023 21:31, SÃ©bastien Chaumat wrote:
>>> This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
>>> (so level type) while in xen it  is mapped to oapic-edge  instead of
>>> oapic-level
>>> as the SSDT indicates :
>>>
>>>  Device (GPIO)
>>>
>>>      {
>>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
>>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
>>>          Name (_UID, Zero)  // _UID: Unique ID
>>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
>>>          {
>>>              Name (RBUF, ResourceTemplate ()
>>>              {
>>>                  Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
>>>                  {
>>>                      0x00000007,
>>>            }
>>> Any idea why ?
>>
>> Information coming from AML is required to be handed down by Dom0 to Xen.
>> May want checking that (a) Dom0 properly does so and (b) Xen doesn't screw
>> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this is
>> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7 is
>> also the spurious vector. You may want to retry with the tip of the 4.17
>> branch (soon to become 4.17.3) - while it doesn't look very likely to me
>> that recent backports there were related, it may still be that they make
>> a difference.
>>
> 
> testing with 4.17.3:
> 
> Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  that
> (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: 1
> 
> but later on in dmesg I see :
> [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
> 
> So triggering is flipped from 1 to 0 (cannot find the definition for
> those values).
> Could this be the culprit ?

Possibly. Since it would be the kernel to invoke PHYSDEVOP_setup_gsi, it
looks as if the kernel was confused about which trigger mode to use. Have
you figured from where the kernel takes the two different values?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:01:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656280.1024349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGzH-0007aQ-Au; Mon, 18 Dec 2023 17:01:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656280.1024349; Mon, 18 Dec 2023 17:01:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFGzH-0007aJ-84; Mon, 18 Dec 2023 17:01:03 +0000
Received: by outflank-mailman (input) for mailman id 656280;
 Mon, 18 Dec 2023 17:01:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFGzG-0007aD-0b
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 17:01:02 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03355cc7-9dc7-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 18:00:57 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-33660cf2296so2180469f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 09:00:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 z1-20020a5d4d01000000b003365aa39d30sm8621816wrt.11.2023.12.18.09.00.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 09:00:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03355cc7-9dc7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702918857; x=1703523657; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=EB4vKva2re38fCTcPQNUzCEqrIaP3A1NndBf9laXjwY=;
        b=CafhR9b5a1ZIwdABFfnl4atx4YXPS23CiSEtpo2X8rHsyCIp/XAzetP9hpVq0m8NmU
         mJvKlyLeAV1yCVDJvKQlGg1GktiwXQ1qTOkqi4Fgb+7yswr3KAU4wasZ8d2i2i8zKUx4
         d1BYWA3UpNecUXwkYXNNPJjA2zfVZNFh46yt9Xs0zqD7un7FnajyEVwBy4OdgF+wA3aP
         M74qLoa5xZ5IaY6cYhkUmb6+VjzOWClcvM2IfDi1pIRavZzU/ISJUeCZtHykD9ACEuLJ
         VdGeO/B/x/qsCv+DEXDcYSzro+qvmlKzSm/NYrPFIasKR9USJdz6M4/YgP2W4K20xlPq
         Ar+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702918857; x=1703523657;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=EB4vKva2re38fCTcPQNUzCEqrIaP3A1NndBf9laXjwY=;
        b=faJj0w1dW4373ujGYsgxlFrclnA1kspjWumvVUE3kxHJw9ulOYs9xn6GG6F9cXU8Ll
         lmJHpBqEVDAHFJcTWAoJyQlzOkWo99XS+HGomDsiEZvA/HY470UJuyvGzpUnfTzfefGO
         mukN3TEpxs/BgJ6VjjuBD9TF9d/GvG2nbxx1hS4i6+SZ1U4vzpA5osjhPXd3TKETRusG
         XPwUKVDkzp1Dtk2PBVW4eF4mDVx3qZUtsG+vEH5Ts3y+jx4airk5Y7HYD4/+jmO4ctKE
         xw62B7t7AQhz7YO2AUrujibNrNwF6uR+LstEGEd6iPbTDCCqrEIkTq/zt3j48pKatTPD
         GcrQ==
X-Gm-Message-State: AOJu0Yw4WFY2cbatulajiqqBAIys8yBtWXmtmJ+NMUOgx5u5sJYbQ+7h
	RziMIenXQKEgbtqLOpupMBdS
X-Google-Smtp-Source: AGHT+IEUEv349ddJq8xTlqlK2uCmIcMtpfi2iV7qXoAqY7Aj7+ObD0i5zWFlqYdoK9D9Fq5oif9BbQ==
X-Received: by 2002:a5d:5382:0:b0:336:6045:3c37 with SMTP id d2-20020a5d5382000000b0033660453c37mr1986242wrv.92.1702918856838;
        Mon, 18 Dec 2023 09:00:56 -0800 (PST)
Message-ID: <f52b19eb-7633-48df-85b9-c6a545dc4232@suse.com>
Date: Mon, 18 Dec 2023 18:00:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 37/39] xen/rirscv: add minimal amount of stubs to build
 full Xen
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <091887466560fbd6b66239f7fee5193eb97570b9.1700761381.git.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: <091887466560fbd6b66239f7fee5193eb97570b9.1700761381.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2023 11:30, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -1,19 +1,23 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
>  
> +#include <xen/bug.h>
>  #include <xen/cache.h>
>  #include <xen/compiler.h>
>  #include <xen/init.h>
>  #include <xen/kernel.h>
>  #include <xen/macros.h>
> +#include <xen/mm.h>
>  #include <xen/pfn.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>
>  
> +unsigned long frametable_base_pdx __read_mostly;
> +unsigned long frametable_virt_end __read_mostly;

Nit (style):

unsigned long __read_mostly frametable_base_pdx;
unsigned long __read_mostly frametable_virt_end;

(i.e. attributes generally between type and identifier). Plus
__read_mostly or __ro_after_init?

> @@ -294,3 +298,49 @@ unsigned long __init calc_phys_offset(void)
>      phys_offset = load_start - XEN_VIRT_START;
>      return phys_offset;
>  }
> +
> +void put_page(struct page_info *page)
> +{
> +    assert_failed(__func__);
> +}
> +
> +unsigned long get_upper_mfn_bound(void)
> +{
> +    /* No memory hotplug yet, so current memory limit is the final one. */
> +    return max_page - 1;
> +}
> +
> +void arch_dump_shared_mem_info(void)
> +{
> +    WARN();
> +}
> +
> +int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
> +{
> +    assert_failed(__func__);
> +    return -1;
> +}

Whats the pattern between picking WARN(), assert_failed() (which I don't
think you should be using anyway; if an assertion, then ASSERT_UNREACHABLE())
and BUG() (as used earlier in stubs living in header files)?

> --- /dev/null
> +++ b/xen/arch/riscv/stubs.c
> @@ -0,0 +1,426 @@
> +/* 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/time.h>
> +#include <public/domctl.h>
> +#include <public/vm_event.h>

I think I can see why you need the former of these last two, but do you
really need the latter?

> +#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 __read_mostly cpu_khz;  /* CPU clock frequency in kHz. */
> +
> +s_time_t get_s_time(void)
> +{
> +    BUG();
> +}
> +
> +int reprogram_timer(s_time_t timeout)
> +{
> +    BUG();
> +}
> +
> +void send_timer_event(struct vcpu *v)
> +{
> +    BUG();
> +}
> +
> +void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
> +{
> +    BUG();
> +}
> +
> +/* shutdown.c */
> +
> +void machine_restart(unsigned int delay_millisecs)
> +{
> +    BUG();
> +}
> +
> +void machine_halt(void)
> +{
> +    BUG();
> +}
> +
> +/* vm_event.c */
> +
> +void vm_event_fill_regs(vm_event_request_t *req)
> +{
> +    BUG();
> +}
> +
> +void vm_event_set_registers(struct vcpu *v, vm_event_response_t *rsp)
> +{
> +    BUG();
> +}
> +
> +void vm_event_monitor_next_interrupt(struct vcpu *v)
> +{
> +    /* Not supported on RISCV. */
> +}
> +
> +void vm_event_reset_vmtrace(struct vcpu *v)
> +{
> +    /* Not supported on RISCV. */
> +}
> +
> +/* domctl.c */
> +
> +long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
> +                    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
> +{
> +    BUG();
> +}
> +
> +void arch_get_domain_info(const struct domain *d,
> +                          struct xen_domctl_getdomaininfo *info)
> +{
> +    BUG();
> +}
> +
> +void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
> +{
> +    BUG();
> +}
> +
> +/* monitor.c */
> +
> +int arch_monitor_domctl_event(struct domain *d,
> +                              struct xen_domctl_monitor_op *mop)
> +{
> +    BUG();
> +}
> +
> +/* smp.c */
> +
> +void arch_flush_tlb_mask(const cpumask_t *mask)
> +{
> +    BUG();
> +}
> +
> +void smp_send_event_check_mask(const cpumask_t *mask)
> +{
> +    BUG();
> +}
> +
> +void smp_send_call_function_mask(const cpumask_t *mask)
> +{
> +    BUG();
> +}
> +
> +/* irq.c */
> +
> +struct pirq *alloc_pirq_struct(struct domain *d)
> +{
> +    BUG();
> +}
> +
> +int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
> +{
> +    BUG();
> +}
> +
> +void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
> +{
> +    BUG();
> +}
> +
> +void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
> +{
> +    BUG();
> +}
> +
> +static void ack_none(struct irq_desc *irq)
> +{
> +    BUG();
> +}
> +
> +static void end_none(struct irq_desc *irq)
> +{
> +    BUG();
> +}

Much like I said for PPC - I don't think you need the two, as ...

> +hw_irq_controller no_irq_type = {
> +    .typename = "none",
> +    .startup = irq_startup_none,
> +    .shutdown = irq_shutdown_none,
> +    .enable = irq_enable_none,
> +    .disable = irq_disable_none,
> +    .ack = ack_none,
> +    .end = end_none

... there's nothing right now to invoke these hooks.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:03:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:03:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656283.1024358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFH1k-0008Kp-Ne; Mon, 18 Dec 2023 17:03:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656283.1024358; Mon, 18 Dec 2023 17:03:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFH1k-0008Ki-L6; Mon, 18 Dec 2023 17:03:36 +0000
Received: by outflank-mailman (input) for mailman id 656283;
 Mon, 18 Dec 2023 17:03:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFH1j-0008KY-PP
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 17:03:35 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ffc6a37-9dc7-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 18:03:33 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c55872d80so24327315e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 09:03:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 gw18-20020a05600c851200b004063c9f68f2sm41986948wmb.26.2023.12.18.09.03.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 09:03:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ffc6a37-9dc7-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702919012; x=1703523812; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=iwKFU4KjJzrnIZNg60vo8jRViBjBFoxUDzfmb9afjEQ=;
        b=ZUnKh+Z3E33N52lI14lEWTefifVA7kkEZZxkOUcOjauKjAGO75TGHDBwhktGkZWn5S
         5qD+UWU64bbEfWTPKZBk/AzR53Q5YKq51kmbTm2OWlVAHY4M+csAi/e7atkGAHp4URBi
         NBC8l0PPa2Q0mA2g+Aix4Y3tsi8e42SFXwkzffSqTmgIRpfqVZeYXwgzBXrkwTYeZBmH
         YjE4T7X+lLM/mH13sGTPiR2yEct6sAZASI/+lB0YaZSDt0q3ZNc3PXUqmunBX6LexLPg
         S8s07FX9CeSPlCn43k89Ju8X3/kR4o6heSChY1kd4iEUIQHx/9UORPKeCZ8DKs9+TnPM
         Hgqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702919012; x=1703523812;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=iwKFU4KjJzrnIZNg60vo8jRViBjBFoxUDzfmb9afjEQ=;
        b=nsSTPSKi+nBsrL6zupXB6NYPA2T1RKAcdVM9LBkXC4bgZo69ZzxKra6pZBxOIzEic+
         +qWBAJYqBTDq8UI/wHtfCJSX9+iJB4e5CK+HFil3/t1CJ+NgXJFsnYb/NKYmzqy4qb2j
         cLu/WRoMm5ou9EirRoSTSpqK6XXgVRXb0g53HGDApy60Vu9xL4cMlSFiDJ/Onx6hvozv
         iRYHonCEisGwRqn829omAGOCvuIqbwtsVrA1AJxmq1eyH9mvSBQ9FfMU7nkcp01W0LHx
         ykdft1HhakmPJrpJZ7cwYeKgbBozYwHbyJD/2cgyilhvRYzi3Toh3EPUIz8qKy+fuhg2
         /UBg==
X-Gm-Message-State: AOJu0YzkhxtdqUw9ySu0K4dyBc/adCbEwxhZeP1WI2Ah0/XUh8LXtM7I
	3VebFYYqEudoJN8MUprAkITv
X-Google-Smtp-Source: AGHT+IFflC4ROvSSyCSp77buc/eWj37Vh2bJjg3yLaIOMBySn5rdEmQbKO1vJO6GMpWXaET2Bqq8Xw==
X-Received: by 2002:a05:600c:81b:b0:40b:5e4a:235d with SMTP id k27-20020a05600c081b00b0040b5e4a235dmr8144322wmp.95.1702919012551;
        Mon, 18 Dec 2023 09:03:32 -0800 (PST)
Message-ID: <9920f138-d77b-4bb4-8ceb-b48b040937c4@suse.com>
Date: Mon, 18 Dec 2023 18:03:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/5] xen/hvm: use NULL as a null pointer constant
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@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>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
 <7c52d4b78785a56aee1ffc3661503bdd145595d9.1702553835.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312141329320.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312141329320.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 22:29, Stefano Stabellini wrote:
> On Thu, 14 Dec 2023, Nicola Vetrini wrote:
>> No functional change.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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

Yet it would have been really nice if style had been tidied of the lines
which are touched anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:04:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:04:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656285.1024368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFH2B-0000KN-Vx; Mon, 18 Dec 2023 17:04:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656285.1024368; Mon, 18 Dec 2023 17:04: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 1rFH2B-0000KG-Sv; Mon, 18 Dec 2023 17:04:03 +0000
Received: by outflank-mailman (input) for mailman id 656285;
 Mon, 18 Dec 2023 17:04: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFH2A-0008KY-UG
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 17:04:02 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 716de30f-9dc7-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 18:04:02 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c517d0de5so37772875e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 09:04:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 gw18-20020a05600c851200b004063c9f68f2sm41986948wmb.26.2023.12.18.09.04.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 09:04:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 716de30f-9dc7-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702919042; x=1703523842; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Q1JbI75M+ZXmGjjQUcIafal5xOGn1/ryxUMTL8QIsSo=;
        b=goB0TbIm3Jbat0HcWnxF7W9ysa5JcabDeZeGQbJn4YSbJP+6hZGmsMTjJKS4OhWc94
         5dtwQIwUGlM4EMm6MnOVsJ4zEBq+zhlEbqLAUnPd60mHOSSSdH4zAcjg++FUQYEpMp99
         fdD+YARFn70aTry74RCpJKIo2ChKPyvv7T9nK6AATPuHg4nzjNOfvsI7JcTx7lGoyvEV
         9sPUVV7lHYVdxdBwkN2HssLmWgF7odTQB+/OJ4nnMvCvsZnLSu8MuTKtV0BbmoF3ZodD
         yi+X9Uo7NuVfCKrjIuszeX6DvYhs3wPYc/6iu6DPoR6I/YQTXRTJYKSN/Wke7dBGO2K+
         33wQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702919042; x=1703523842;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Q1JbI75M+ZXmGjjQUcIafal5xOGn1/ryxUMTL8QIsSo=;
        b=rlvTKZE6iCXFrPSpEYjZjN7SsdE09mtliR1XZCV0XMbMqSW4kRb2WQjVejdcHiuDyY
         GgAwXH2L6ZF3F9RDxqILjbZGn8+zodQph02Zzf0a3m7q79kP/VqIec8Wrgn/pBAfr1E4
         2ChB7jvw0fnc5PH8HwMqAiPVQMAhHMrrVcdmsIkzy+24Ks7RZcsngT9V7IdG6FgRI+2K
         w40X7cK7pQj79vDA6PAkwjfjPns8KnIswkEaBxxGtJvsT3KwVAI6dKp6NCKxqp/xlWEc
         Me/bJzXijUwelbiqadxTypz/kiuNL3vG262xT9SXHJeqAoEZIC5mRjRmUFdWB6BrugDV
         8CXg==
X-Gm-Message-State: AOJu0YyXKtTSik4MyYCuZHqaG4AUEztudTD/UAApUqLwt1OzJiqG1lJS
	z6HmkjRDSYW39SsUFE+AZOM9
X-Google-Smtp-Source: AGHT+IF/CN5nVRHlxU76PBda4+e+7Ekh/yKJVpOkzC+TDLO5qB4Kzir9moQLl2IvgBNa3forcrR7Kg==
X-Received: by 2002:a05:600c:35cf:b0:40d:1c37:c521 with SMTP id r15-20020a05600c35cf00b0040d1c37c521mr471197wmq.145.1702919041854;
        Mon, 18 Dec 2023 09:04:01 -0800 (PST)
Message-ID: <32563f17-cd3a-4292-b8b0-cb2302859714@suse.com>
Date: Mon, 18 Dec 2023 18:04:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/5] x86/ioapic: use NULL as a null pointer constant
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
 <01968117d9fc3eee6d6eca0d340d9d2edd4d6dd4.1702553835.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312141330230.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312141330230.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 22:30, Stefano Stabellini wrote:
> On Thu, 14 Dec 2023, Nicola Vetrini wrote:
>> Resolves violations of MISRA C Rule 11.9.
>> No functional change.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:04:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:04:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656286.1024378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFH2W-0000nw-7B; Mon, 18 Dec 2023 17:04:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656286.1024378; Mon, 18 Dec 2023 17: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 1rFH2W-0000np-4R; Mon, 18 Dec 2023 17:04:24 +0000
Received: by outflank-mailman (input) for mailman id 656286;
 Mon, 18 Dec 2023 17:04: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=av2Q=H5=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFH2U-0008KY-I3
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 17:04:22 +0000
Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com
 [2607:f8b0:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c8f6a2d-9dc7-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 18:04:21 +0100 (CET)
Received: by mail-pf1-x430.google.com with SMTP id
 d2e1a72fcca58-6ceb2501f1bso3092508b3a.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 09:04:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c8f6a2d-9dc7-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702919060; x=1703523860; 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=o5J2BkPYCS9Tj3jNQgPrBfAfxlhHW2JowfCvo6TYts8=;
        b=YUjlcrwkHyGC2z3kzHP61wq/Jap2wVRFrqWhiY5fP4UauKBcW9VbW4C8Fv5nbLVhzT
         hKOcmkK4oYjXkaG3wzL2pWnpFvXJB3V7tkvA1bDO0/dFZ4y2OzNzIINhprWzLRPnLuBH
         16ra9hCz3jOztULVf8EntZ8gKTID98fQuRWO0mevx00VVEnMQc3rRmYl4pePOyvs8HPQ
         cXfiCqorQks5kLmlq/5IkTr7Vs50Ym1Zy3hHREJcPGJTIAJBFbsolaVtWdbJA8hJH2Je
         RcMoofsBejLVo9uxqHh0UfcRc98DgdZ5cMKOdfCJ6B8tnElAqGOzz6g+rEpqdg7d+x6j
         Qyyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702919060; x=1703523860;
        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=o5J2BkPYCS9Tj3jNQgPrBfAfxlhHW2JowfCvo6TYts8=;
        b=N6pvByx/CxnIyLTJOjqPkgSN9PbeLq5cezQmdgl0MMJE5sVNYxHckERXdxZpc4V6BW
         dqZvjXRE33QN/z2Zkqp7R3ddWiGbdDibbpqHykbIFResRPWGERBW7VwQ7PP01rQ+cUt+
         mckCpDXzsHf0iw+UOISI/YyMIDrcJqNolwCpZuD3UnDubhdmgVPnPIxHkFkCkJH3wPuG
         zyWamWT+KNGwIV/YwUTEdSnExXStTF12YPHGaMdODn9zDvgHiGcoQ65Gy2smoxO794xj
         yeH52XP6Lvpir0Myy48Vs/XCAbupCCsICMf8iDOxkC/hAYV99f/16Xj3Xqz87EOU7lgc
         dRVA==
X-Gm-Message-State: AOJu0YzKBf7i7/A37XBDdMlQwzJYLrQo+CJarNR+PS4Ch4Hf/stklkyf
	B9gLRi2h8FeAuyUJP9/7xFaFa0X0zQTfUhp957l8SAFidHo=
X-Google-Smtp-Source: AGHT+IENd4LOCEde99KU5WQ2XtKhymjZnYZCk3gnbPBqnmQ6pjqs5R2rW9gpAsQqoI1+fmZOaiOuPSKipo13PmJxcf0=
X-Received: by 2002:a05:6a20:e117:b0:194:87fc:cd56 with SMTP id
 kr23-20020a056a20e11700b0019487fccd56mr749027pzb.105.1702919060145; Mon, 18
 Dec 2023 09:04:20 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <3aeb708d-a4fa-45b5-9d74-260ef2035b4a@suse.com>
In-Reply-To: <3aeb708d-a4fa-45b5-9d74-260ef2035b4a@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Mon, 18 Dec 2023 18:04:09 +0100
Message-ID: <CAKm-UmbFkO5RCDMTEgWBtEYtfO_LH=TKTh5TP=FyFFpdnbto4w@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000a94910060ccbbd56"

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

Le lun. 18 d=C3=A9c. 2023, 17:44, Jan Beulich <jbeulich@suse.com> a =C3=A9c=
rit :

> On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:
> >>>>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
> >>> This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
> >>> (so level type) while in xen it  is mapped to oapic-edge  instead of
> >>> oapic-level
> >>> as the SSDT indicates :
> >>>
> >>>  Device (GPIO)
> >>>
> >>>      {
> >>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
> >>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
> >>>          Name (_UID, Zero)  // _UID: Unique ID
> >>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource
> Settings
> >>>          {
> >>>              Name (RBUF, ResourceTemplate ()
> >>>              {
> >>>                  Interrupt (ResourceConsumer, Level, ActiveLow,
> Shared, ,, )
> >>>                  {
> >>>                      0x00000007,
> >>>            }
> >>> Any idea why ?
> >>
> >> Information coming from AML is required to be handed down by Dom0 to
> Xen.
> >> May want checking that (a) Dom0 properly does so and (b) Xen doesn't
> screw
> >> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this i=
s
> >> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7
> is
> >> also the spurious vector. You may want to retry with the tip of the 4.=
17
> >> branch (soon to become 4.17.3) - while it doesn't look very likely to =
me
> >> that recent backports there were related, it may still be that they ma=
ke
> >> a difference.
> >>
> >
> > testing with 4.17.3:
> >
> > Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  that
> > (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: 1
> >
> > but later on in dmesg I see :
> > [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
> >
> > So triggering is flipped from 1 to 0 (cannot find the definition for
> > those values).
> > Could this be the culprit ?
>
> Possibly. Since it would be the kernel to invoke PHYSDEVOP_setup_gsi, it
> looks as if the kernel was confused about which trigger mode to use. Have
> you figured from where the kernel takes the two different values?
>

> Would you mind pointing me to the definition for those values first ? I
did not find what 0/1 means in this context.

Thanks

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

<div dir=3D"auto"><div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">Le lun. 18 d=C3=A9c. 2023, 17:44, Jan Beulich &lt;<a h=
ref=3D"mailto:jbeulich@suse.com">jbeulich@suse.com</a>&gt; a =C3=A9crit=C2=
=A0:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex">On 18.12.2023 17:21, S=C3=A9ba=
stien Chaumat wrote:<br>
&gt;&gt;&gt;&gt;&gt; On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:<br>
&gt;&gt;&gt; This issue seems that IRQ 7 (the GPIO controller) is natively =
fasteoi<br>
&gt;&gt;&gt; (so level type) while in xen it=C2=A0 is mapped to oapic-edge=
=C2=A0 instead of<br>
&gt;&gt;&gt; oapic-level<br>
&gt;&gt;&gt; as the SSDT indicates :<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;=C2=A0 Device (GPIO)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 {<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_HID, &quot;AMDI0030&q=
uot;)=C2=A0 // _HID: Hardware ID<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_CID, &quot;AMDI0030&q=
uot;)=C2=A0 // _CID: Compatible ID<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_UID, Zero)=C2=A0 // _=
UID: Unique ID<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Method (_CRS, 0, NotSerializ=
ed)=C2=A0 // _CRS: Current Resource Settings<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 =C2=A0 =C2=A0 Name (RBUF, Re=
sourceTemplate ()<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
{<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 0x00000007,<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;&gt;&gt; Any idea why ?<br>
&gt;&gt;<br>
&gt;&gt; Information coming from AML is required to be handed down by Dom0 =
to Xen.<br>
&gt;&gt; May want checking that (a) Dom0 properly does so and (b) Xen doesn=
&#39;t screw<br>
&gt;&gt; up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if th=
is is<br>
&gt;&gt; specific to it being IRQ7 which GPIO uses, as at the (master) PIC =
IRQ7 is<br>
&gt;&gt; also the spurious vector. You may want to retry with the tip of th=
e 4.17<br>
&gt;&gt; branch (soon to become 4.17.3) - while it doesn&#39;t look very li=
kely to me<br>
&gt;&gt; that recent backports there were related, it may still be that the=
y make<br>
&gt;&gt; a difference.<br>
&gt;&gt;<br>
&gt; <br>
&gt; testing with 4.17.3:<br>
&gt; <br>
&gt; Adding some printk in PHYSDEVOP_setup_gsi, I=C2=A0 see (in xl dmesg)=
=C2=A0 that<br>
&gt; (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: 1=
<br>
&gt; <br>
&gt; but later on in dmesg I see :<br>
&gt; [=C2=A0 =C2=A0 1.747958] xen: registering gsi 7 triggering 0 polarity =
1<br>
&gt; <br>
&gt; So triggering is flipped from 1 to 0 (cannot find the definition for<b=
r>
&gt; those values).<br>
&gt; Could this be the culprit ?<br>
<br>
Possibly. Since it would be the kernel to invoke PHYSDEVOP_setup_gsi, it<br=
>
looks as if the kernel was confused about which trigger mode to use. Have<b=
r>
you figured from where the kernel takes the two different values?<br></bloc=
kquote></div></div><div dir=3D"auto"><div class=3D"gmail_quote"><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex"></blockquote></div></div><div dir=3D"auto"><div class=
=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><br></blockquote></div></di=
v><div dir=3D"auto">Would you mind pointing me to the definition for those =
values first ? I did not find what 0/1 means in this context.</div><div dir=
=3D"auto"><br></div><div dir=3D"auto"><div class=3D"gmail_quote"><blockquot=
e class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc sol=
id;padding-left:1ex"></blockquote></div></div><div dir=3D"auto">Thanks</div=
></div>

--000000000000a94910060ccbbd56--


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:05:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:05:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656292.1024388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFH3P-0001dc-KM; Mon, 18 Dec 2023 17:05:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656292.1024388; Mon, 18 Dec 2023 17:05:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFH3P-0001dV-Hc; Mon, 18 Dec 2023 17:05:19 +0000
Received: by outflank-mailman (input) for mailman id 656292;
 Mon, 18 Dec 2023 17:05: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=h3b+=H5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFH3N-0001dA-Iw
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 17:05:17 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d0841a9-9dc7-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 18:05:15 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c2db2ee28so42903325e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 09:05:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 gw18-20020a05600c851200b004063c9f68f2sm41986948wmb.26.2023.12.18.09.05.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 09:05:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d0841a9-9dc7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702919115; x=1703523915; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=UlehL/GdsJp5srffS0ok+Z951DkDiuInnOD9B5bIgqY=;
        b=ExBkNB6Jee4aByI8cpD1b5LQuRjiKlGOwL30fBUM0BK83P9nPy84XtcfUDRjDKZDDr
         QRZzgGrC+cifPE1XsbbtiLNaTNxXvtCqsaoH52lclWFaXwy4zXeSG+eswOJG50sk2/mI
         aZsP1sycIulpNxtXbAWrhaXVuM5Firt6N4Boqr8ThbLu/FOUPPtJc51A4Bo4/OB62OZX
         34qUdpQuYpB5of4aU4FztFJXIVFj7bDb35+pqZYQ5IPYxjruHcL1L5Ag6k5+XG8fZNyR
         M/rdGqRGAe1gJ4zZdl7DmXAwixBR4+5oru70AShIQy2Lbk0nCw9NJfllmfikDPqxOtTj
         YQqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702919115; x=1703523915;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=UlehL/GdsJp5srffS0ok+Z951DkDiuInnOD9B5bIgqY=;
        b=fggqGoORytevtn8NKy22+geMFwXK3DttRW6zMX3SG/+oRYgG0bV9qFmaMPjhkhtmaB
         VCnzYm7Q5omYqOsNxs/5vE1E7kvV46KKvh7YXQZ2D2gshxjE98LPDzpCSV2qb1yAuV9C
         Cg234hHSsOnvG0yr5DoT72knlq8ewzo4DRBuB9AckwP8yGAsguKyhWHX42Pm9CMh3Rpo
         I+7A0uiu7JLiG269FI8wTrb39d5fyVE4igoPGoMhxG33afBwahbJ1ZfdlWVgRQ754aEo
         xnrda05DIcgqs3hivNKxndMwb/cgVeqbBvUGnnjyIbWH72xC651Y+vFCtu4b0uUJbyyN
         0xaQ==
X-Gm-Message-State: AOJu0YxoshtgZOF5eSD20UevkFRkat5OtPbzynZjbqdsWwZGMovCty8B
	AJ8k7I9K0jJ4lru/H+kX73b1
X-Google-Smtp-Source: AGHT+IEe755vqVzr7p1E5zy+jQp7OFRGeDPskqKa0kV12w5oc+rNvfxWsFLuuvFNeU4/Oj+sI9ujrQ==
X-Received: by 2002:a7b:c7d0:0:b0:40c:2c1f:8491 with SMTP id z16-20020a7bc7d0000000b0040c2c1f8491mr9666970wmk.46.1702919115022;
        Mon, 18 Dec 2023 09:05:15 -0800 (PST)
Message-ID: <80fec5de-ba29-4865-9062-490ffcf2fc60@suse.com>
Date: Mon, 18 Dec 2023 18:05:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 3/5] xen/acpi: Use NULL as a null pointer constant
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: consulting@bugseng.com, xen-devel@lists.xenproject.org
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
 <bb10a86a08eb36e9f9c6bda899cdc850afada403.1702553835.git.nicola.vetrini@bugseng.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: <bb10a86a08eb36e9f9c6bda899cdc850afada403.1702553835.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 12:44, Nicola Vetrini wrote:
> --- a/xen/include/acpi/acmacros.h
> +++ b/xen/include/acpi/acmacros.h
> @@ -111,7 +111,7 @@
>  
>  #define ACPI_TO_POINTER(i)              ACPI_ADD_PTR (void,(void *) NULL,(acpi_native_uint) i)
>  #define ACPI_TO_INTEGER(p)              ACPI_PTR_DIFF (p,(void *) NULL)
> -#define ACPI_OFFSET(d,f)                (acpi_size) ACPI_PTR_DIFF (&(((d *)0)->f),(void *) NULL)
> +#define ACPI_OFFSET(d,f)                (acpi_size) ACPI_PTR_DIFF (&(((d *)NULL)->f),(void *) NULL)
>  #define ACPI_PHYSADDR_TO_PTR(i)         ACPI_TO_POINTER(i)
>  #define ACPI_PTR_TO_PHYSADDR(i)         ACPI_TO_INTEGER(i)
>  

This again is an ACPI CA header, which I'm hesitant to see being changed.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:24:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:24:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656302.1024400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFHLv-0000Gi-7g; Mon, 18 Dec 2023 17:24:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656302.1024400; Mon, 18 Dec 2023 17:24: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 1rFHLv-0000Gb-2x; Mon, 18 Dec 2023 17:24:27 +0000
Received: by outflank-mailman (input) for mailman id 656302;
 Mon, 18 Dec 2023 17:24: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=W5ff=H5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFHLt-0000Dw-BC
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 17:24: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 48d30b09-9dca-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 18:24:22 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c236624edso38223795e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 09:24:22 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 o3-20020a05600c4fc300b004042dbb8925sm45500510wmq.38.2023.12.18.09.24.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 09:24:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48d30b09-9dca-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702920262; x=1703525062; 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=GkUgJtSdASl14duIMyhZhdeWufbjFzlNsgB4T/z/4lY=;
        b=iQarox94eP2gIw1O4Gf020mIyEQpgQIsDMjllLY1J1GPuSYJN7BQrGyXpYWcnP3BvP
         QdMRfC3k38VoV49CgWifaLmJo0NVhhyUPBIi/I8PpRXlsZPUsvxTSH/H8+bT7BnbOJ9S
         y6KwHtoRt0SGUgvnxdyu336OK7QDnxygsyOtM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702920262; x=1703525062;
        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=GkUgJtSdASl14duIMyhZhdeWufbjFzlNsgB4T/z/4lY=;
        b=CD0HAPYqTt7Ts0iO1QtYEGAx18E0egaLgzZKXsLAkmIFu1t641h/FKz25RiptIY0Gm
         yAwF6hjvI7QuhFlB0AmIs/ZGsTThEvUvg8jB2JvhWAxmHq2EjhGPFWiUy3/vvOEtEHIv
         f8N4+GKru5/B8eimUPXrVcTmsrwN08P/32xrwLFAUxapG0eVxOerxNbWCJu7IJ6ZAVek
         iP6ZXdXvpyrloG9Zart9Fq3vm3VqkmEb4Og6YIRGp1ehe4/FPUydwlZuol/xR/Y9HQ4X
         Hg6OMV6POsecuBOsDn+ZaX6ZOldwyAaXl5NtxhCzB5QzmRi+62wp0bVAPHWRf6kJUFyZ
         QfxQ==
X-Gm-Message-State: AOJu0YwPsPZWlRCpWoL4PHnEm+dK/yolL3LyHbe8QsKjwN45bWahsK+J
	0bhlTL5BnMf69E/e6NxfclT83w==
X-Google-Smtp-Source: AGHT+IHrBG0LfdiuccArYGZBvQSqun2Af1Ymz9sM1besHvAoOSioKbFDxzKVStkCbeQ1JvYd91MZGQ==
X-Received: by 2002:a05:600c:4f11:b0:40b:5e21:cc29 with SMTP id l17-20020a05600c4f1100b0040b5e21cc29mr8379455wmq.84.1702920262077;
        Mon, 18 Dec 2023 09:24:22 -0800 (PST)
Date: Mon, 18 Dec 2023 18:24:20 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 4/4] x86/PV: issue branch prediction barrier when
 switching 64-bit guest to kernel mode
Message-ID: <ZYCARJAxH9hBD0YQ@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <2863b0a9-ca7c-3cce-104d-0b6685b0b383@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <2863b0a9-ca7c-3cce-104d-0b6685b0b383@suse.com>

On Tue, Feb 14, 2023 at 05:12:08PM +0100, Jan Beulich wrote:
> Since both kernel and user mode run in ring 3, they run in the same
> "predictor mode".

That only true when IBRS is enabled, otherwise all CPU modes share the
same predictor mode?

> While the kernel could take care of this itself, doing
> so would be yet another item distinguishing PV from native. Additionally
> we're in a much better position to issue the barrier command, and we can
> save a #GP (for privileged instruction emulation) this way.
> 
> To allow to recover performance, introduce a new VM assist allowing the
> guest kernel to suppress this barrier. Make availability of the assist
> dependent upon the command line control, such that kernels have a way to
> know whether their request actually took any effect.
> 
> Note that because of its use in PV64_VM_ASSIST_MASK, the declaration of
> opt_ibpb_mode_switch can't live in asm/spec_ctrl.h.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Is the placement of the clearing of opt_ibpb_ctxt_switch correct in
> parse_spec_ctrl()? Shouldn't it live ahead of the "disable_common"
> label, as being about guest protection, not Xen's?
> 
> Adding setting of the variable to the "pv" sub-case in parse_spec_ctrl()
> didn't seem quite right to me, considering that we default it to the
> opposite of opt_ibpb_entry_pv.
> ---
> v4: Correct the print_details() change. Re-base in particular over
>     changes earlier in the series.
> v3: Leverage exit-IBPB. Introduce separate command line control.
> v2: Leverage entry-IBPB. Add VM assist. Re-base.
> 
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -2320,8 +2320,8 @@ By default SSBD will be mitigated at run
>  ### spec-ctrl (x86)
>  > `= List of [ <bool>, xen=<bool>, {pv,hvm}=<bool>,
>  >              {msr-sc,rsb,md-clear,ibpb-entry}=<bool>|{pv,hvm}=<bool>,
> ->              bti-thunk=retpoline|lfence|jmp, {ibrs,ibpb,ssbd,psfd,
> ->              eager-fpu,l1d-flush,branch-harden,srb-lock,
> +>              bti-thunk=retpoline|lfence|jmp, {ibrs,ibpb,ibpb-mode-switch,
> +>              ssbd,psfd,eager-fpu,l1d-flush,branch-harden,srb-lock,
>  >              unpriv-mmio}=<bool> ]`
>  
>  Controls for speculative execution sidechannel mitigations.  By default, Xen
> @@ -2403,7 +2403,10 @@ default.
>  
>  On hardware supporting IBPB (Indirect Branch Prediction Barrier), the `ibpb=`
>  option can be used to force (the default) or prevent Xen from issuing branch
> -prediction barriers on vcpu context switches.
> +prediction barriers on vcpu context switches.  On such hardware the
> +`ibpb-mode-switch` option can be used to control whether, by default, Xen
> +would issue branch prediction barriers when 64-bit PV guests switch from
> +user to kernel mode.  If enabled, guest kernels can op out of this behavior.
>  
>  On all hardware, the `eager-fpu=` option can be used to force or prevent Xen
>  from using fully eager FPU context switches.  This is currently implemented as
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -742,6 +742,8 @@ static inline void pv_inject_sw_interrup
>      pv_inject_event(&event);
>  }
>  
> +extern int8_t opt_ibpb_mode_switch;
> +
>  #define PV32_VM_ASSIST_MASK ((1UL << VMASST_TYPE_4gb_segments)        | \
>                               (1UL << VMASST_TYPE_4gb_segments_notify) | \
>                               (1UL << VMASST_TYPE_writable_pagetables) | \
> @@ -753,7 +755,9 @@ static inline void pv_inject_sw_interrup
>   * but we can't make such requests fail all of the sudden.
>   */
>  #define PV64_VM_ASSIST_MASK (PV32_VM_ASSIST_MASK                      | \
> -                             (1UL << VMASST_TYPE_m2p_strict))
> +                             (1UL << VMASST_TYPE_m2p_strict)          | \
> +                             ((opt_ibpb_mode_switch + 0UL) <<           \
> +                              VMASST_TYPE_mode_switch_no_ibpb))

I'm wondering that it's kind of weird to offer the option to PV domUs
if opt_ibpb_entry_pv is set, as then the guest mode switch will always
(implicitly) do a IBPB as requiring an hypercall and thus take an
entry point into Xen.

I guess it's worth having it just as a way to signal to Xen that the
hypervisor does perform an IBPB, even if the guest cannot disable it.

>  #define HVM_VM_ASSIST_MASK  (1UL << VMASST_TYPE_runstate_update_flag)
>  
>  #define arch_vm_assist_valid_mask(d) \
> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -455,6 +455,7 @@ static void _toggle_guest_pt(struct vcpu
>  void toggle_guest_mode(struct vcpu *v)
>  {
>      const struct domain *d = v->domain;
> +    struct cpu_info *cpu_info = get_cpu_info();
>      unsigned long gs_base;
>  
>      ASSERT(!is_pv_32bit_vcpu(v));
> @@ -467,15 +468,21 @@ void toggle_guest_mode(struct vcpu *v)
>      if ( v->arch.flags & TF_kernel_mode )
>          v->arch.pv.gs_base_kernel = gs_base;
>      else
> +    {
>          v->arch.pv.gs_base_user = gs_base;
> +
> +        if ( opt_ibpb_mode_switch &&
> +             !(d->arch.spec_ctrl_flags & SCF_entry_ibpb) &&
> +             !VM_ASSIST(d, mode_switch_no_ibpb) )
> +            cpu_info->spec_ctrl_flags |= SCF_new_pred_ctxt;

Likewise similar to the remarks I've made before, if doing an IBPB on
entry is enough to cover for the case here, it must also be fine to
issue the IBPB right here, instead of deferring to return to guest
context?

The only concern would be (as you mentioned before) to avoid clearing
valid Xen predictions, but I would rather see some figures about what
effect the delaying to return to guest has vs issuing it right here.

> +    }
> +
>      asm volatile ( "swapgs" );
>  
>      _toggle_guest_pt(v);
>  
>      if ( d->arch.pv.xpti )
>      {
> -        struct cpu_info *cpu_info = get_cpu_info();
> -
>          cpu_info->root_pgt_changed = true;
>          cpu_info->pv_cr3 = __pa(this_cpu(root_pgt)) |
>                             (d->arch.pv.pcid ? get_pcid_bits(v, true) : 0);
> --- a/xen/arch/x86/spec_ctrl.c
> +++ b/xen/arch/x86/spec_ctrl.c
> @@ -60,6 +60,7 @@ bool __ro_after_init opt_ssbd;
>  int8_t __initdata opt_psfd = -1;
>  
>  int8_t __ro_after_init opt_ibpb_ctxt_switch = -1;
> +int8_t __ro_after_init opt_ibpb_mode_switch = -1;
>  int8_t __read_mostly opt_eager_fpu = -1;
>  int8_t __read_mostly opt_l1d_flush = -1;
>  static bool __initdata opt_branch_harden = true;
> @@ -111,6 +112,8 @@ static int __init cf_check parse_spec_ct
>              if ( opt_pv_l1tf_domu < 0 )
>                  opt_pv_l1tf_domu = 0;
>  
> +            opt_ibpb_mode_switch = 0;
> +
>              if ( opt_tsx == -1 )
>                  opt_tsx = -3;
>  
> @@ -271,6 +274,8 @@ static int __init cf_check parse_spec_ct
>          /* Misc settings. */
>          else if ( (val = parse_boolean("ibpb", s, ss)) >= 0 )
>              opt_ibpb_ctxt_switch = val;
> +        else if ( (val = parse_boolean("ibpb-mode-switch", s, ss)) >= 0 )
> +            opt_ibpb_mode_switch = val;
>          else if ( (val = parse_boolean("eager-fpu", s, ss)) >= 0 )
>              opt_eager_fpu = val;
>          else if ( (val = parse_boolean("l1d-flush", s, ss)) >= 0 )
> @@ -527,16 +532,18 @@ static void __init print_details(enum in
>  
>  #endif
>  #ifdef CONFIG_PV
> -    printk("  Support for PV VMs:%s%s%s%s%s%s\n",
> +    printk("  Support for PV VMs:%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_eager_fpu || opt_md_clear_pv)        ? ""               : " None",
> +            opt_eager_fpu || opt_md_clear_pv ||
> +            opt_ibpb_mode_switch)                    ? ""               : " 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_md_clear_pv                           ? " MD_CLEAR"      : "",
> -           boot_cpu_has(X86_FEATURE_IBPB_ENTRY_PV)   ? " IBPB-entry"    : "");
> +           boot_cpu_has(X86_FEATURE_IBPB_ENTRY_PV)   ? " IBPB-entry"    : "",
> +           opt_ibpb_mode_switch                      ? " IBPB-mode-switch" : "");
>  
>      printk("  XPTI (64-bit PV only): Dom0 %s, DomU %s (with%s PCID)\n",
>             opt_xpti_hwdom ? "enabled" : "disabled",
> @@ -804,7 +811,8 @@ static void __init ibpb_calculations(voi
>      /* Check we have hardware IBPB support before using it... */
>      if ( !boot_cpu_has(X86_FEATURE_IBRSB) && !boot_cpu_has(X86_FEATURE_IBPB) )
>      {
> -        opt_ibpb_entry_hvm = opt_ibpb_entry_pv = opt_ibpb_ctxt_switch = 0;
> +        opt_ibpb_entry_hvm = opt_ibpb_entry_pv = 0;
> +        opt_ibpb_mode_switch = opt_ibpb_ctxt_switch = 0;
>          opt_ibpb_entry_dom0 = false;
>          return;
>      }
> @@ -859,6 +867,18 @@ static void __init ibpb_calculations(voi
>          setup_force_cpu_cap(X86_FEATURE_NEW_PRED_CTXT_PV);
>          setup_force_cpu_cap(X86_FEATURE_NEW_PRED_CTXT_HVM);
>      }
> +
> +#ifdef CONFIG_PV
> +    /*
> +     * If we're using IBPB-on-entry to protect against PV guests, then
> +     * there's no need to also issue IBPB on a guest user->kernel switch.
> +     */
> +    if ( opt_ibpb_mode_switch == -1 )
> +        opt_ibpb_mode_switch = !opt_ibpb_entry_pv ||
> +                               (!opt_ibpb_entry_dom0 && !opt_dom0_pvh);
> +    if ( opt_ibpb_mode_switch )
> +        setup_force_cpu_cap(X86_FEATURE_NEW_PRED_CTXT_PV);
> +#endif
>  }
>  
>  /* Calculate whether this CPU is vulnerable to L1TF. */
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -554,6 +554,16 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
>   */
>  #define VMASST_TYPE_m2p_strict           32
>  
> +/*
> + * x86-64 guests: Suppress IBPB on guest-user to guest-kernel mode switch.

I think this needs to be more vague, as it's not true that the IBPB
will be suppressed if Xen is unconditionally issuing one on all guest
entry points.

Maybe adding:

"Setting the assist signals Xen that the IBPB can be avoided from a
guest perspective, however Xen might still issue one for other
reasons."

> + *
> + * By default (on affected and capable hardware) as a safety measure Xen,
> + * to cover for the fact that guest-kernel and guest-user modes are both
> + * running in ring 3 (and hence share prediction context), would issue a
> + * barrier for user->kernel mode switches of PV guests.
> + */
> +#define VMASST_TYPE_mode_switch_no_ibpb  33

Would it be possible to define the assist as
VMASST_TYPE_mode_switch_ibpb and have it on when enabled?  So that the
guest would disable it if unneeded?  IMO negated options are in
general harder to understand.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:27:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:27:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656307.1024408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFHOm-0001OA-KW; Mon, 18 Dec 2023 17:27:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656307.1024408; Mon, 18 Dec 2023 17:27:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFHOm-0001O3-Hy; Mon, 18 Dec 2023 17:27:24 +0000
Received: by outflank-mailman (input) for mailman id 656307;
 Mon, 18 Dec 2023 17:27: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=W5ff=H5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFHOl-0001Nv-Ai
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 17:27:23 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b35a7820-9dca-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 18:27:21 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40b5155e154so43245665e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 09:27:21 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 h2-20020a05600c350200b0040c6b2c8fa9sm15922513wmq.41.2023.12.18.09.27.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Dec 2023 09:27:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b35a7820-9dca-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702920441; x=1703525241; 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=N97KJJh7YxnvzRwSNbzfg7j/XojNhy0O2qrEDAsjJiU=;
        b=JCqS1VAcz56pKgBwrgndZ1snEcYXy0vg9fQxv+0zzguV/RwZyUo9PUbzs5+TTtxpER
         2n9Cgq2pOoA0f3y/tWyAK7wtzawodV8MF7u3SV0p5Gpu2jPn8ZaBW/jhsvI1AuOdbQz1
         Pe8wgKbQtxFXaPX/4D4dA2AAfMbHmpGKJpdkw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702920441; x=1703525241;
        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=N97KJJh7YxnvzRwSNbzfg7j/XojNhy0O2qrEDAsjJiU=;
        b=oM6FDxnuVgUYXVjd4/muFfu/m9drh4zpmRg49jW6pIHgC1LF0pa4nhNlBbC5O0ZaSW
         QkkvIF+4fjpgeA7bNxUCCopUV2ENPdOXgFRXkloe2hsvdtIM8qEHc7Dlgtvd+e9ysjh+
         EPATP0wN3N/l17ohHciO3pAZOxFzuCJeTtr5hukGMz+E1u+61ry6NhuvKszaG0zPEXhw
         E8M8pyUbg5CUe9MFPhN2iCh6NIYe8AdWhgy49sICL0ngIua4DjibyOxp5/XwGKcsbnBg
         K71uup0gIz+FH4/42L4GudUxSQU693L01U3oSFdtZnSsFdvCv0BM6tJivl9lfT+M632j
         Hw1A==
X-Gm-Message-State: AOJu0YwMwLugt4ZCFQYsmdfYmEod6f0TVyaYyDG2WF7sL4MPIJwBI9sh
	SvX4sPy7yiQTB0jZMNxpYclB0nfJWIUPeP+vh44=
X-Google-Smtp-Source: AGHT+IElQYDurvYnkxm8JO7CLv5Q4tWhq1E5WyvyhZx5+ZlVmBbeHVOlTtL2T6kPKgE0WhD+OtXjug==
X-Received: by 2002:a05:600c:1913:b0:40b:5e4a:40c3 with SMTP id j19-20020a05600c191300b0040b5e4a40c3mr7627332wmq.227.1702920440898;
        Mon, 18 Dec 2023 09:27:20 -0800 (PST)
Date: Mon, 18 Dec 2023 18:27:19 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 2/4] x86/spec-ctrl: defer context-switch IBPB until
 guest entry
Message-ID: <ZYCA94DyU_IlPDyQ@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <83c2a504-bce4-d3e7-1d9a-76ac0ca17bab@suse.com>
 <ZYA9ap4dB5nnFCu3@macbook>
 <c618b09d-c9eb-4f2b-81bb-18c486ba6ea2@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c618b09d-c9eb-4f2b-81bb-18c486ba6ea2@suse.com>

On Mon, Dec 18, 2023 at 02:58:01PM +0100, Jan Beulich wrote:
> On 18.12.2023 13:39, Roger Pau MonnÃ© wrote:
> > On Tue, Feb 14, 2023 at 05:11:05PM +0100, Jan Beulich wrote:
> >> In order to avoid clobbering Xen's own predictions, defer the barrier as
> >> much as possible. Merely mark the CPU as needing a barrier issued the
> >> next time we're exiting to guest context.
> > 
> > While I understand that doing the flush in the middle of the guest
> > context might not be ideal, as it's my understanding we also
> 
> s/guest context/context switch/?

Indeed, sorry.

> > needlessly flush Xen predictions, I'm unsure whether this makes any
> > difference in practice, and IMO just makes the exit to guest paths
> > more complex.
> 
> I need to redirect this question to Andrew, who suggested that doing so
> can be expected to make a difference. When we were discussing this, I
> could easily see it might make a difference, but I cannot provide hard
> proof.

That's fine, but with the added complexity in the return to guests
paths I think we need some kind of justification for such a change.
If it was the other way around I could easily see it as a benefits if
just for code clarity reasons.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:29:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:29:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656314.1024419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFHQP-0002CC-VI; Mon, 18 Dec 2023 17:29:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656314.1024419; Mon, 18 Dec 2023 17:29:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFHQP-0002C5-SC; Mon, 18 Dec 2023 17:29:05 +0000
Received: by outflank-mailman (input) for mailman id 656314;
 Mon, 18 Dec 2023 17:29:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mejk=H5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFHQO-0002AT-TR
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 17:29:04 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f03ebf4e-9dca-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 18:29:03 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 26EBB4EE0742;
 Mon, 18 Dec 2023 18:29:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f03ebf4e-9dca-11ee-98eb-6d05b1d4d9a1
MIME-Version: 1.0
Date: Mon, 18 Dec 2023 18:29:03 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 3/5] xen/acpi: Use NULL as a null pointer constant
In-Reply-To: <80fec5de-ba29-4865-9062-490ffcf2fc60@suse.com>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
 <bb10a86a08eb36e9f9c6bda899cdc850afada403.1702553835.git.nicola.vetrini@bugseng.com>
 <80fec5de-ba29-4865-9062-490ffcf2fc60@suse.com>
Message-ID: <3f4be56f02b36567aed32bd556c3b8f7@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 2023-12-18 18:05, Jan Beulich wrote:
> On 14.12.2023 12:44, Nicola Vetrini wrote:
>> --- a/xen/include/acpi/acmacros.h
>> +++ b/xen/include/acpi/acmacros.h
>> @@ -111,7 +111,7 @@
>> 
>>  #define ACPI_TO_POINTER(i)              ACPI_ADD_PTR (void,(void *) 
>> NULL,(acpi_native_uint) i)
>>  #define ACPI_TO_INTEGER(p)              ACPI_PTR_DIFF (p,(void *) 
>> NULL)
>> -#define ACPI_OFFSET(d,f)                (acpi_size) ACPI_PTR_DIFF 
>> (&(((d *)0)->f),(void *) NULL)
>> +#define ACPI_OFFSET(d,f)                (acpi_size) ACPI_PTR_DIFF 
>> (&(((d *)NULL)->f),(void *) NULL)
>>  #define ACPI_PHYSADDR_TO_PTR(i)         ACPI_TO_POINTER(i)
>>  #define ACPI_PTR_TO_PHYSADDR(i)         ACPI_TO_INTEGER(i)
>> 
> 
> This again is an ACPI CA header, which I'm hesitant to see being 
> changed.
> 
> Jan

Yes, I sent this before the discussion on R11.8. I'm ok with adding all 
these files derived from ACPI CA to exclude-list.json, so in that case 
the patch can be ignored.
-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:29:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:29:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656315.1024428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFHQg-0002fY-5R; Mon, 18 Dec 2023 17:29:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656315.1024428; Mon, 18 Dec 2023 17: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 1rFHQg-0002fR-2h; Mon, 18 Dec 2023 17:29:22 +0000
Received: by outflank-mailman (input) for mailman id 656315;
 Mon, 18 Dec 2023 17:29: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=De97=H5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFHQe-0002AT-SH
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 17:29:20 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa2e7745-9dca-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 18:29:20 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c3f68b69aso33799255e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 09:29:20 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 w10-20020a05600c474a00b0040b2c195523sm44904363wmo.31.2023.12.18.09.29.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 09:29:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa2e7745-9dca-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702920560; x=1703525360; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=7X55kAfAxUQZhLkX+Yt6U3I8G1i8tlJBLVgXYGEuugE=;
        b=L20bFQy0hmePNAef4IGkaQklLf83HBAUBUa3YCncfflAoUWpSR0NuORu5mZzVsr+EP
         i3MTysVNbktWYRXfJMa3k+RRhfXovUJGmN87SdoaOeSpWIE04S5WtS5kuOx4XNZbJNP2
         la/FhQsFUU4X+L6N1jAkHBfz96mOluQF6I1hk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702920560; x=1703525360;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=7X55kAfAxUQZhLkX+Yt6U3I8G1i8tlJBLVgXYGEuugE=;
        b=lxDirfRWn1550IUKOhROMFGfWtsnYH4AL0NulMZdYWe4xZ2I28qhJUdoFljHJKfP8v
         DZVOD3CCpvH6uX4c2T8gnB2ixwjnZLbU+oNsvtQIF5omHdyOag8c4soBsL3mzSqJ2iQg
         JmSGKlqzRuN+m9YQ94YWZPRSMox1zHHW/mDCKga9JlscTPyRXhr/OKuDJ4RjrB89F/9B
         Bkl1hMIDxlR813YeX6CpHPhai788f8br2dK/JsbscOAFGpv43wgOtAw90goxPdB/8mJe
         J3mElPyAUDyz5QaBDdA0+vpUUHvDBKv2m6sHcHB94AMDKCe6Yu0XFC1HSwnWXfBLAtEE
         8mFA==
X-Gm-Message-State: AOJu0YwL1Mxb6wftaftS+I9w2kJshl7ESbQ3fAkHj05HTMhsZpjiGepo
	xC4jokF8rAYlJ1+anbfEKO8COw==
X-Google-Smtp-Source: AGHT+IEZIrdrFX/NSpfcbob4nBJeGXgNA1uTndBiAREw1lGHhQAMwuvj88P8Y3mlC9PzptF4z7gzZA==
X-Received: by 2002:a05:600c:4754:b0:40c:655a:29b1 with SMTP id w20-20020a05600c475400b0040c655a29b1mr4828857wmo.92.1702920559752;
        Mon, 18 Dec 2023 09:29:19 -0800 (PST)
Message-ID: <04992603-cb10-43ff-9eb3-b8f8f1dc765c@citrix.com>
Date: Mon, 18 Dec 2023 17:29:19 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/15] VMX: convert vmx_basic_msr
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Kevin Tian <kevin.tian@intel.com>,
 Jun Nakajima <jun.nakajima@intel.com>,
 George Dunlap <george.dunlap@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <b63b648f-02d0-4e52-a5e5-94ffd5666a14@suse.com>
 <d07fb86f-ef9c-4c2b-ba9a-f1e5c813d45d@suse.com>
 <e17d6e45-b03c-4906-9fb3-af4770aa3cf0@citrix.com>
 <beac1f7c-51cb-47a9-8e96-d09cb3ea6ab7@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <beac1f7c-51cb-47a9-8e96-d09cb3ea6ab7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27/11/2023 12:44 pm, Jan Beulich wrote:
> On 24.11.2023 23:41, Andrew Cooper wrote:
>> On 24/11/2023 8:41 am, Jan Beulich wrote:
>>> ... to a struct field, which is then going to be accompanied by other
>>> capability/control data presently living in individual variables. As
>>> this structure isn't supposed to be altered post-boot, put it in
>>> .data.ro_after_init right away.
>>>
>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> For (usable) nested virt, we're going to need the VMX MSRs, in their
>> architectural form, in struct cpu_policy.Â  And just like CPUID features,
>> I want it to end up with nice bitfields to use.
>>
>> Looking through the rest of this series, vmx_caps ends up almost in
>> architectural form.
>>
>> Could I talk you into having a "struct vmx_msrs" (or similar - 'caps'
>> doesn't feel quite right here) in the policy object, and also
>> instantiating one instance of it for this purpose here?
> I was actually wondering while doing the conversion. The main reason I
> didn't go that route right away was that I wasn't really certain whether
> what I'd put there would the really be the (largely) final shape it
> wants to take there. (One thing you've likely noticed I didn't convert
> is _vmx_misc_cap, which right now only exists as a local variable in
> vmx_init_vmcs_config().)
>
>> AFAICT, it would only be a minor deviation to the latter half of this
>> series, but it would be an excellent start to fixing nested virt - and
>> getting this data in the policy really is the first task in getting the
>> ball rolling on nested virt.
> How much of a further change it would end up being (or where that change
> would occur) depends on another aspect: When put in cpu-policy.h (and I
> take it you mean the lib/ instance, not the asm/ one), it would seem
> natural and perhaps even necessary to properly introduce bitfields for
> each of the MSRs right away. That'll lead to a "raw" field as well. In
> VMX code (mostly its cpu_has_* #define-s), I'd then either need to use
> .raw (perhaps a little ugly here and there) or go with using the
> individual bitfields right away (likely eliminating the need for many of
> the constant #define-s), which increases the risk of inadvertent mistakes
> (and their overlooking during review).
>
>> I don't mind about serialising/de-serialsing it - that still has a bit
>> of userspace complexity to work out, and depends on some of the cleanup
>> still needing a repost.
>>
>> If you don't want to take the added space in cpu_policy yet, how about
>> having the declaration there and just forgo instantiating the subobject
>> in the short term?
> There's quite a bit of effectively dead space in the struct already; I
> think I wouldn't mind instantiating the struct there right away. So long
> as you're convinced it's going to be used there in not too distant a
> future.
>
> But: If I go as far, why would I introduce a global instance of the new
> struct? Wouldn't it then make more sense to use host_cpu_policy right
> away? I probably would keep populating it in vmx_init_vmcs_config() to
> limit churn for now, but consumers of the flags could then right away
> use the host policy.

George has stated an intent to pick nested virt up imminently.Â  I'll
have to defer to him on when this will actually start.

But, sorting out this data in the policies is the next step, whenever
that occurs.


If you fancy going all the way to use the raw/host policy then great,
but I expect that would be a large amount of extra work, hence the
suggestion to just use the "inner" struct in the short term.

Conversion to bitfields would want to be separate patch anyway, at which
point an A/B compile can confirm whether there was no resulting change.

I'm happy if you want to do all of this, but it's a lot of work, and
simply having the data in plain architectural uint64_t in the host
policy is something that I thought would be a very minor change to your
current series, but with a useful step towards nested virt.

One open question, before we get too far into this, is still whether to
express half of these as MSR-features like ARCH_CAPS.Â  Linux does, and
there is a very complex set of dependencies between certain properties,
although I have a sneaking suspicion that the dependency logic will
needed at runtime as the L1 hypervisor changes the various controls.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 17:29:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 17:29:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656321.1024439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFHR3-0003fX-I4; Mon, 18 Dec 2023 17:29:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656321.1024439; Mon, 18 Dec 2023 17:29: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 1rFHR3-0003fQ-FP; Mon, 18 Dec 2023 17:29:45 +0000
Received: by outflank-mailman (input) for mailman id 656321;
 Mon, 18 Dec 2023 17:29: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 1rFHR1-0003dp-GP; Mon, 18 Dec 2023 17:29: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 1rFHR1-0002yn-9m; Mon, 18 Dec 2023 17:29: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 1rFHR0-0003ve-SR; Mon, 18 Dec 2023 17:29:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFHR0-0005vv-Rx; Mon, 18 Dec 2023 17:29: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=9Y/9aLfwSEBcT8CyWzLhQvWFgPHW1vjKutqcD6Ys5AA=; b=i9k16gaT6rMaq/R6t7E/PLE+EL
	RZbsxR9xP+uN8AednZAj5pwxwoh1XCV6vwfITWmTHp/tCtCTM5j7z6BiVb5pR+qo8SJxoHWZGG5j+
	g+n70M6Gg4NNu1Oj3SHe5CmLA46FzBDWdx5G56jszyudeAAtgfskDHB/Zs4jgEr6X0Dg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184168-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184168: 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=0cc74376d6823e0883f89556be2a267f2240a558
X-Osstest-Versions-That:
    xen=a60067f39882a4f40547fc0cd8177bac89cb01b7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 18 Dec 2023 17:29:42 +0000

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

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                  0cc74376d6823e0883f89556be2a267f2240a558
baseline version:
 xen                  a60067f39882a4f40547fc0cd8177bac89cb01b7

Last test of basis   184147  2023-12-15 22:03:52 Z    2 days
Testing same since   184168  2023-12-18 15:03:58 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.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>
  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                                          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
   a60067f398..0cc74376d6  0cc74376d6823e0883f89556be2a267f2240a558 -> smoke


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 18:21:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 18:21:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656333.1024449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFIFM-0002to-BL; Mon, 18 Dec 2023 18:21:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656333.1024449; Mon, 18 Dec 2023 18: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 1rFIFM-0002th-85; Mon, 18 Dec 2023 18:21:44 +0000
Received: by outflank-mailman (input) for mailman id 656333;
 Mon, 18 Dec 2023 18: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=BN9V=H5=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rFIFK-0002sO-FX
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 18:21:42 +0000
Received: from mail-183-236.mailgun.info (mail-183-236.mailgun.info
 [23.253.183.236]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 4983b983-9dd2-11ee-98eb-6d05b1d4d9a1;
 Mon, 18 Dec 2023 19:21:40 +0100 (CET)
Received: from mg.gitlab.com (24.226.74.34.bc.googleusercontent.com
 [34.74.226.24]) by
 fe29589a5638 with SMTP id 65808db2c8ad37dcc60ce7a9 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Mon, 18 Dec 2023 18:21:38 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 4983b983-9dd2-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702923698; x=1702930898; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=ah5Q0ggsT4Btdl7OoZeCWjqy1vj/YBodi6FVSAgcR7o=;
 b=iXPaDiC0uIYJ85fAY/SsqfLA6s1lssFjYNEZIhAPrHd//KoIdwkx4uYZ38se43+MmNJ5x97tyketvbjnDcj/DzL87Q6XbZzb9l6jj3gCgqozPW9jIApYYDdoxf35Rv0BE5vOF0p0h0PO3CV+WxppsYD/Mek7kcB/t1tk+XOG19k=
X-Mailgun-Sending-Ip: 23.253.183.236
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Mon, 18 Dec 2023 18:21:38 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65808db22006f_2b95650689aa@gitlab-sidekiq-catchall-v2-55fd7c7c59-9h7mr.mail>
Subject: xen | Successful pipeline for RELEASE-4.17.3 | 949a4aad
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65808db2183be_2b9565068847";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1111574461
X-GitLab-Pipeline-Ref: RELEASE-4.17.3
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65808db2183be_2b9565068847
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1111574461 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: RELEASE-4.17.3 ( https://gitlab.com/xen-project/xen/-/commits/RELEASE-4.17.3 )

Commit: 949a4aad ( https://gitlab.com/xen-project/xen/-/commit/949a4aad417621638231e4cf9f1b35e8e0328463 )
Commit Message: update Xen version to 4.17.3

Commit Author: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1111574461 ( https://gitlab.com/xen-project/xen/-/pipelines/1111574461 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 84 jobs in 2 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for RELEASE-4.17.3 | 949a4aad</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1111574461 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/R=
ELEASE-4.17.3" style=3D"color: #333333; text-decoration: none;">
RELEASE-4.17.3
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/949a4aad4176216382=
31e4cf9f1b35e8e0328463" style=3D"color: #3777b0; text-decoration: none;">=
949a4aad</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
update Xen version to 4.17.3

</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111157=
4461" style=3D"color: #3777b0; text-decoration: none;">#1111574461</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 84 jobs in 2 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65808db2183be_2b9565068847--


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 18:35:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 18:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656372.1024459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFISp-0006TJ-Ge; Mon, 18 Dec 2023 18:35:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656372.1024459; Mon, 18 Dec 2023 18:35:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFISp-0006TC-DD; Mon, 18 Dec 2023 18:35:39 +0000
Received: by outflank-mailman (input) for mailman id 656372;
 Mon, 18 Dec 2023 18:35:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=av2Q=H5=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFISo-0006T6-9Q
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 18:35:38 +0000
Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com
 [2607:f8b0:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b9203ad-9dd4-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 19:35:36 +0100 (CET)
Received: by mail-pg1-x52c.google.com with SMTP id
 41be03b00d2f7-5c701bd9a3cso1568047a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 10:35:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b9203ad-9dd4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702924534; x=1703529334; darn=lists.xenproject.org;
        h=content-transfer-encoding:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pn6B6hMOXJf+0B/gD33Bz73cB5lRhA4B3QCjiMT5Ksk=;
        b=JBvrLSpAVFFpCMhVSPFFHGRT8LsmKd6lvClPd4VFBOlSMdgGmxBxN7N3nu5+lnHlKn
         sru2WedJURvge7yNoNrSg4N/y5FF62pxWjFM4Kv7B3NX060BkTT5KDObCB9tdzQD73KW
         /MylhdQvDsPErUgNKRHzJS9m65TjP440mUzCCNLHScOsUJ7nYjfjLvSDBSZ7lg/wrVWG
         RjI2KyZgX3aGOYWIUEI9qeXAkfbFoI93dphRtGo9Wi7q1inklW4PfUj1XAMfF7QSFDk8
         /lvioQfWW9Uk0S0bOWTxzk+8E9jD0b+h/tmC1Z32gK3A89hmUfyzMc6njLoFm1loHWdS
         o5KQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702924534; x=1703529334;
        h=content-transfer-encoding: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=pn6B6hMOXJf+0B/gD33Bz73cB5lRhA4B3QCjiMT5Ksk=;
        b=Oitf2xrdy63p0IEhhFWRvurKridU0410YjasVYHwU54kFb/j/3NDcZl8Jf3evoRFOr
         7PPvqdI+7/rKz73+KEVs2tCNjmy8cLZZnOnqXAYtNCNgEjkU0boZPMb9qEz8lEzZreDS
         1dSplRDbnb1HGyH5x64bvS0ajPICKd5PtzZbLGeNH/C/N+M/Y9Du3aQYun8zhmXzXqsh
         gyryAgp3Ddd/UpRxeeU5AzG0qG3wfdJF+9dANZk9t0skulIz/Hp/4/qKyDZIYKvTAOEU
         +FR3WMMskiqjZQwLZdpGu+0gCCUC8Jbeb98ezfQ6CB3fbrzXeTBXJmDOhJU+misLF6E5
         B9tw==
X-Gm-Message-State: AOJu0YyKR0wHa33uH9WxJbVH53WSkdvJephX+i/fB7hDe72UjyzYmYgi
	LwcmMmU/MyKm451i1CHhYuuUCIYJZ61VmjVdDSQTk6zLinI=
X-Google-Smtp-Source: AGHT+IG2agZIAKSaKyK4W/Fg9Xpw2lWO2t5Ewjx6sMpmNvryVrdReEQqJ6AXty4AL4bzpSqzwPQy2cgxRFIO7WxJ74g=
X-Received: by 2002:a05:6a20:144d:b0:194:9121:7b9b with SMTP id
 a13-20020a056a20144d00b0019491217b9bmr426637pzi.75.1702924534355; Mon, 18 Dec
 2023 10:35:34 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <3aeb708d-a4fa-45b5-9d74-260ef2035b4a@suse.com> <CAKm-UmbFkO5RCDMTEgWBtEYtfO_LH=TKTh5TP=FyFFpdnbto4w@mail.gmail.com>
In-Reply-To: <CAKm-UmbFkO5RCDMTEgWBtEYtfO_LH=TKTh5TP=FyFFpdnbto4w@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Mon, 18 Dec 2023 19:35:23 +0100
Message-ID: <CAKm-Uma2concr2qJZNz4fbcRmHviC9dMGT0GpE+vuC+AiuTpdA@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Le lun. 18 d=C3=A9c. 2023 =C3=A0 18:04, S=C3=A9bastien Chaumat <euidzero@gm=
ail.com> a =C3=A9crit :
>
>
>
> Le lun. 18 d=C3=A9c. 2023, 17:44, Jan Beulich <jbeulich@suse.com> a =C3=
=A9crit :
>>
>> On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:
>> >>>>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
>> >>> This issue seems that IRQ 7 (the GPIO controller) is natively fasteo=
i
>> >>> (so level type) while in xen it  is mapped to oapic-edge  instead of
>> >>> oapic-level
>> >>> as the SSDT indicates :
>> >>>
>> >>>  Device (GPIO)
>> >>>
>> >>>      {
>> >>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
>> >>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
>> >>>          Name (_UID, Zero)  // _UID: Unique ID
>> >>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource =
Settings
>> >>>          {
>> >>>              Name (RBUF, ResourceTemplate ()
>> >>>              {
>> >>>                  Interrupt (ResourceConsumer, Level, ActiveLow, Shar=
ed, ,, )
>> >>>                  {
>> >>>                      0x00000007,
>> >>>            }
>> >>> Any idea why ?
>> >>
>> >> Information coming from AML is required to be handed down by Dom0 to =
Xen.
>> >> May want checking that (a) Dom0 properly does so and (b) Xen doesn't =
screw
>> >> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this =
is
>> >> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ=
7 is
>> >> also the spurious vector. You may want to retry with the tip of the 4=
.17
>> >> branch (soon to become 4.17.3) - while it doesn't look very likely to=
 me
>> >> that recent backports there were related, it may still be that they m=
ake
>> >> a difference.
>> >>
>> >
>> > testing with 4.17.3:
>> >
>> > Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  that
>> > (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: 1
>> >
>> > but later on in dmesg I see :
>> > [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
>> >
>> > So triggering is flipped from 1 to 0 (cannot find the definition for
>> > those values).
>> > Could this be the culprit ?
>>
>> Possibly. Since it would be the kernel to invoke PHYSDEVOP_setup_gsi, it
>> looks as if the kernel was confused about which trigger mode to use. Hav=
e
>> you figured from where the kernel takes the two different values?
>>
side note : dom0 is PV.


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 20:30:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 20:30:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656377.1024469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFKFm-0002SQ-IL; Mon, 18 Dec 2023 20:30:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656377.1024469; Mon, 18 Dec 2023 20:30: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 1rFKFm-0002SJ-F9; Mon, 18 Dec 2023 20:30:18 +0000
Received: by outflank-mailman (input) for mailman id 656377;
 Mon, 18 Dec 2023 20:30: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=3wqZ=H5=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1rFKFl-0002S4-Ef
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 20:30:17 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20601.outbound.protection.outlook.com
 [2a01:111:f400:7eae::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d6e390e-9de4-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 21:30:12 +0100 (CET)
Received: from SJ0PR05CA0134.namprd05.prod.outlook.com (2603:10b6:a03:33d::19)
 by BN9PR12MB5052.namprd12.prod.outlook.com (2603:10b6:408:135::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Mon, 18 Dec
 2023 20:30:06 +0000
Received: from CO1PEPF000042AC.namprd03.prod.outlook.com
 (2603:10b6:a03:33d:cafe::2) by SJ0PR05CA0134.outlook.office365.com
 (2603:10b6:a03:33d::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.17 via Frontend
 Transport; Mon, 18 Dec 2023 20:30:06 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000042AC.mail.protection.outlook.com (10.167.243.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Mon, 18 Dec 2023 20:30:05 +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.34; Mon, 18 Dec
 2023 14:30:04 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 18 Dec
 2023 14:30:04 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via
 Frontend Transport; Mon, 18 Dec 2023 14:30:03 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d6e390e-9de4-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=abkLoiVVAi2+4uQ+Gh0LnPG+R9vlzBw87FvpFORgrzNCfmLRJ5zXQAHzmQ0y3pxW/4rFKJVMAFToSFkhG92+KeXo7JxEIvvC/GDG21fWE4owc8XSbDdg2s4ItGYdSIYhM3V16axxr7B7d6qTPBmuzjqT9NDicF0gGz5YSb+mSzuleCvh0hDkkPyhXsNQcWhYUd4Za656x66gWkONp1IQGXxfKDdTVKryrwImZSSP9ZWCQgYwQ3MSlLBUIjaMYv77keLxse6OfQWZfQtcKANTa1zDb2YZPVGnE5parr/dt264CKNjnv1F1yfvSKI/5Ix3tI5vQ7ZmBHXaM4vNholdpA==
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=emm9AHUxGT2h2crnvTq5uuboYEI/mRi4yey+GWpR4Sc=;
 b=dQdN/+7Fqo7WEtP/I7QPoLYcWAAfebM9bVHHh8O47HzHxENBOdHpHVpL12ve4oyv8n7ZTDrurYLn4xVni/nGj7ZWtLv8Bl/kgLJnXmASNpogWacrJUJ49uFmnC+NO1pJuAtpZ+G+2Somjcd9U7s23fT59RH324ZYNFNFuGXPcEoqJ8a1SwyZJqKrpCYnRfoQj2V2A3dT9u9rZ04iNBcg0lfdJZlFWXm2/vcWeNTk4UFxPHsiTOIpWmnfAYezAosNlLiBRP3X8246kK9Xi/XiiYo89ZU0SutWIvX8vtz7EQcjJt+Ady6UDbFQ7kR29rcNOQHRT4wEPr7n6fBmMGh/yw==
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=emm9AHUxGT2h2crnvTq5uuboYEI/mRi4yey+GWpR4Sc=;
 b=sl3OuY+3JYNLjM/mIlfAaRr1WPpUd/Iy0sQyYxjioJjGQatSrEbSRaNhm9z9QTWfL/s4rZZbtOwG+U+Jm8LfHm7uylvLSvwNZrd/UAx1jJ+THpQSSUGFJUz730OVVc42mJZwOXKcjyYfyc7N5adafcGkTTaPvEAiX+V2xK7cr2A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <julien@xen.org>, <ayan.kumar.halder@amd.com>, <sstabellini@kernel.org>,
	<bertrand.marquis@arm.com>, <michal.orzel@amd.com>,
	<Volodymyr_Babchuk@epam.com>, <stefano.stabellini@amd.com>
CC: <xen-devel@lists.xenproject.org>
Subject: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer Registers
Date: Mon, 18 Dec 2023 20:29:56 +0000
Message-ID: <20231218202959.1390114-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000042AC:EE_|BN9PR12MB5052:EE_
X-MS-Office365-Filtering-Correlation-Id: a66869c7-fb15-428e-5f8f-08dc00081eb8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	RpwHl6g8GUrGe5J5oz3auIxrhINLIBKH87zblZX6R7L0PC27/pNi844qQUadc45BPQdkJlYKZhTODgPIt4u55RZBTW+jF9K8yetSmCjrYoFwYmMhM9y6+cG6r9xIE9pTqd6Kc3CnLEqCt9iqnnlV/a0sRjHR3LGo+KF3qOImc7YFgc3gif0cRvfv1np5weZuRXxX7B5/2ypO0zlF0ovFwv6lIMmMKyc+g89zTtrkipSzNCsRkT34ruth2R4zbp3ARLEbdPRpp6MfoAOwVhErgF1urGmYG8GB51NtUAitYyNrlsTuXOJgSSVZgA3i3l23C6fN94wLOqWOeqSEvE513tgQrpO94ECOcsujBssPDmQlMIiDk0ID3pSePaVXV9+1XQsxzy8vLiafIOo8NhjTB86DKQjdBMGS/difQMGMYezpqjSYCb++wJIIVBW+YKI5v01VuZluS0YVHnvLJ4SiDmj1nlIShO4GM+e3HYLrh/PzzXbdz4yuAB3ZCP2ALQw7NlWjNIAikBylpkgept7F9uRbMNTpSYQ4rZAMVlDagy1QLTFw+gwJ43SaYrxTvnC1jodqXytY69aiVwhCTz1g9RhcVKquCxlJoKYA8SiL4sCDWjL0qgdPUJ7ymkKFJ8/Vaqzit8OpaYq80RVA7vV1CF9OpmLovPKfwTalHkgzUFFfUFMfmOR8TiyvEPB7tGbPlAL+SWu4tSMD5/Slkon+dtGxkC6unejwhfM1tGL484YCnqnSvRYPfitqRjk+pJ59zQdyDUSYwu7X1ORKc5sRzsBVwa1jETpzKl6dD6b96/Q=
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:(13230031)(4636009)(346002)(39860400002)(396003)(376002)(136003)(230922051799003)(451199024)(64100799003)(186009)(1800799012)(82310400011)(46966006)(40470700004)(36840700001)(40480700001)(40460700003)(47076005)(336012)(2906002)(86362001)(103116003)(70586007)(426003)(81166007)(1076003)(2616005)(26005)(83380400001)(356005)(36860700001)(82740400003)(6666004)(5660300002)(316002)(110136005)(41300700001)(36756003)(6636002)(966005)(8936002)(8676002)(478600001)(70206006)(4326008)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2023 20:30:05.3343
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a66869c7-fb15-428e-5f8f-08dc00081eb8
X-MS-Exchange-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:
	CO1PEPF000042AC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5052

Hi,

Refer https://lore.kernel.org/all/alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop/T/
for the previous discussion on this issue.

Also, the linux earlycon hvc driver has been fixed.
See https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git/commit/?h=tty-next&id=0ec058ece2f933aed66b76bd5cb9b5e6764853c3

Changes from v1:-
1. Split the change across 3 patches as per the design consensus.

Ayan Kumar Halder (3):
  xen/arm: Add emulation of Debug Data Transfer Registers
  xen: arm: Introduce CONFIG_PARTIAL_EMULATION
  xen/arm: Introduce "partial-emulation" xen command line option

 docs/misc/xen-command-line.pandoc    |  7 +++++
 xen/arch/arm/Kconfig                 |  8 +++++
 xen/arch/arm/arm64/vsysreg.c         | 32 ++++++++++++++++---
 xen/arch/arm/include/asm/arm64/hsr.h |  3 ++
 xen/arch/arm/include/asm/cpregs.h    |  2 ++
 xen/arch/arm/include/asm/regs.h      |  6 ++++
 xen/arch/arm/include/asm/traps.h     |  4 +++
 xen/arch/arm/traps.c                 | 21 +++++++++++++
 xen/arch/arm/vcpreg.c                | 47 +++++++++++++++++++++++-----
 9 files changed, 117 insertions(+), 13 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 20:33:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 20:33:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656382.1024478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFKIe-0003DH-4x; Mon, 18 Dec 2023 20:33:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656382.1024478; Mon, 18 Dec 2023 20:33:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFKIe-0003DA-29; Mon, 18 Dec 2023 20:33:16 +0000
Received: by outflank-mailman (input) for mailman id 656382;
 Mon, 18 Dec 2023 20:33: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=V1dw=H5=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1rFKIc-0003D2-OC
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 20:33:14 +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 a8f06cb8-9de4-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 21:33:12 +0100 (CET)
Received: from CH5P221CA0023.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1f2::25)
 by IA0PR12MB8975.namprd12.prod.outlook.com (2603:10b6:208:48f::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Mon, 18 Dec
 2023 20:33:08 +0000
Received: from SA2PEPF000015CA.namprd03.prod.outlook.com
 (2603:10b6:610:1f2:cafe::ce) by CH5P221CA0023.outlook.office365.com
 (2603:10b6:610:1f2::25) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Mon, 18 Dec 2023 20:33:07 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015CA.mail.protection.outlook.com (10.167.241.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Mon, 18 Dec 2023 20:33:07 +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.34; Mon, 18 Dec
 2023 14:33:02 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via
 Frontend Transport; Mon, 18 Dec 2023 14:33:00 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8f06cb8-9de4-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MmIJNx2aAduUVu8CDplXRU1r9CSmC0j7pGsae0b+6i3urGy7dSefOQ8vKl6howTjF5/2Aui16LZCc0Qa3tB6ccMhc8NV/3iujkn3uchattY9OVvtyNNSIWFKbDyOP+EzpcBszyIzN6T52678QZKX1cP9YHBxRt2Vuo+xSkPq0jge0z+aPAaIMudEa1NvKgwTreOmr1Q35cnb2V2GREMzYYgk87T2YMCtg3HZvawxxdBWO4AMgVx+sdViFhGGv4EPjdBkN/t3qmDB8fng/c4D22geOILmjLVF+xJ18EIDz3SX1XTNLwreS7vvyK/lXW2TDvvJB2uipkEixqHOzaSmnw==
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=v534rtDojDtHFqs8XoTePK1ktvHssbuLWOgqwn7Byv0=;
 b=bXW6aHPO8Mfw7+E96n9bTpUOxcH1TNmWXpxO1AU5xxKLhYydl6dKtyJk7yYseLTVwB6Upjdr5+4NiB/4xfDgwvsF4IuPoC7TlOpiwuHGz8CGIL5vfvSCZ4NU/XnbuSn9TeBZsZoVrYDDSPAAwUs/Y2g6Feh59Zn6/rkPNKbLYQaJ16p5klaIGSuRl8XNEb+G/OhZoUZLS+B9VgYw2mhlyWHh2Z8LEZIbCUNWcRAQNtVEglqiNn48WTg2pHQKqgdCuYyhZROBwKDXorKJJd/AEjvB2UGYGlO0ly5/NqJ466Toc/6XM5KqwbDeLbw5uyrEZBwytCkny9rlLAf+50B1qQ==
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=v534rtDojDtHFqs8XoTePK1ktvHssbuLWOgqwn7Byv0=;
 b=LIDRe+mtJubJCY/Lr1mjj+5e2w66L+qalPnVa1OhxCPIg4cNHvjjgd/uQ1HspFLfA/V0isxEpn4Yr9OKxa8AwWKcwlfruSKA8joD3JNRGmMd9W0yltxzATpTDzhWaP2ScWlWZjYiMNxnLZBgxC7RQjkEt4RLbgy/3Xai7HcY32c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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@amd.com>
To: <julien@xen.org>, <ayan.kumar.halder@amd.com>, <sstabellini@kernel.org>,
	<bertrand.marquis@arm.com>, <michal.orzel@amd.com>,
	<Volodymyr_Babchuk@epam.com>, <stefano.stabellini@amd.com>
CC: <xen-devel@lists.xenproject.org>
Subject: [PATCH v2 1/3] xen/arm: Add emulation of Debug Data Transfer Registers
Date: Mon, 18 Dec 2023 20:32:42 +0000
Message-ID: <20231218203242.1393268-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CA:EE_|IA0PR12MB8975:EE_
X-MS-Office365-Filtering-Correlation-Id: a378d2f0-30fd-4c90-fcf1-08dc00088b0e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hWQLiPH0AXn4BXWtSTtUTM3rDtGYKYL7qWHOkJmWH/eqosq9h/F1DkqGXKHyx7qSHpxaAGBTjsTHeFF4rtwd2pvee4SebTUrWkHRn0BCZSZyTJEWjP+fMIHZGoiF1r4Tkg8DAYslJL0XO2ZNOxdQiaFSE02mreODBrnLCoxCMM2uVkyz5jPJdfj7sLlroESrtMCqTB4eMrakLpZQU/eItZCNUdKZ2O7JY3ATy64rFTE5PLpPe1H7pMf/bVXMvh4dJI/hH7HVHV8sjJtgNdoO5TxAXE83okI2T2CxkTE4AazlcHNRFLPH1M47+f1Y7Yq2dZadiulKcMm9fEf+zEiO2PkbcTX2iaDDO3AYjmNtczhf/cxBDdxPnjDIWxMle8Hu/gm92CYzhfQYm1OowtzOTMDJQmoerci/NiYV0TD44WEBUHJHsSVkPUZ78HN/zUuf3ODTR9X5txzvpgsosyF1EL8nnfRduOqAJ4sYHr5dXd0NdWgefuze+KoT/EQuaY0N0F2UcoOrhyXKvm32ZIUNjxDhfAuFXCbJU2FavkmBL/jVcklpY1sAn8F0H1UAV4dvr4MhjdIK5H2SClnGblR/oJmKtsfFXcytBB7KJhj4XVW6M5JykWoxw3QKW/eSlBvxJZvUSLSx3up0mYW+7OjIP8CRziT/49wTt+C2KrYV5XiAm3mNpioxcGUZ7FsVQ88A/GVsmzJYU5S1A+IshWULREzTohmd6bTMjwTUVOZyfO4FuQspSh+8kMPiEcdGtnBnV/KeNJWouVArgNhRUbd/I8FQWmH3xBfzVLZQI9ADw4KaOS8Rptk7J3F43xA5OzBX
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(376002)(136003)(346002)(396003)(230922051799003)(230173577357003)(230273577357003)(186009)(64100799003)(82310400011)(451199024)(1800799012)(46966006)(36840700001)(40470700004)(40480700001)(1076003)(426003)(2616005)(336012)(26005)(40460700003)(356005)(82740400003)(81166007)(47076005)(36756003)(86362001)(5660300002)(36860700001)(8936002)(83380400001)(4326008)(70206006)(316002)(110136005)(6636002)(2876002)(8676002)(70586007)(2906002)(41300700001)(478600001)(6666004)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2023 20:33:07.0177
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a378d2f0-30fd-4c90-fcf1-08dc00088b0e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8975

From: Michal Orzel <michal.orzel@amd.com>

Currently if user enables HVC_DCC config option in Linux, it invokes
access to debug data transfer registers (ie MDCCSR_EL0 on arm64,
DBGDTRTXINT on arm32). As these registers are not emulated, Xen injects
an undefined exception to the guest. And Linux crashes.

We wish to avoid this crash by adding a "partial" emulation. DBGDTR_EL0
is emulated as TXfull.
Refer ARM DDI 0487I.a ID081822, D17.3.8, DBGDTRTX_EL0
"If TXfull is set to 1, set DTRRX and DTRTX to UNKNOWN"

Thus, any OS is expected to read DBGDTR_EL0 and check for TXfull
before using DBGDTRTX_EL0. Linux does it via hvc_dcc_init() --->
hvc_dcc_check() , it returns -ENODEV. In this way, we are preventing
the guest to be aborted.

We also emulate DBGDTRTX_EL0 as RAZ/WI.

We have added emulation for AArch32 variant of these registers as well.

Also in the case of AArch32, DBGOSLSR is emulated in the same way as
its AArch64 variant (ie OSLSR_EL1). This is to ensure that
DBGOSLSR.OSLK is 0, thus MDSCR_EL1.TXfull is treated as UNK/SBZP.
Thus only MDCCSR_EL0 can be emulated (which is DBGDTRTXINT on arm32).
So, DBGDTR[TR]XINT is emulated as RAZ/WI.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from 

v1 :- 1. DBGDTR_EL0 does not emulate RXfull. This is to avoid giving the OS any
indication that the RX buffer is full and is waiting to be read.

2. In Arm32, DBGOSLSR is emulated. Also DBGDTRTXINT is emulated at EL0 only.

3. Fixed the commit message and inline code comments.

 xen/arch/arm/arm64/vsysreg.c         | 26 +++++++++++++++----
 xen/arch/arm/include/asm/arm64/hsr.h |  3 +++
 xen/arch/arm/include/asm/cpregs.h    |  2 ++
 xen/arch/arm/include/asm/traps.h     |  4 +++
 xen/arch/arm/traps.c                 | 18 +++++++++++++
 xen/arch/arm/vcpreg.c                | 38 +++++++++++++++++++++++-----
 6 files changed, 79 insertions(+), 12 deletions(-)

diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
index b5d54c569b..ebeb83dd65 100644
--- a/xen/arch/arm/arm64/vsysreg.c
+++ b/xen/arch/arm/arm64/vsysreg.c
@@ -159,9 +159,6 @@ void do_sysreg(struct cpu_user_regs *regs,
      *
      * Unhandled:
      *    MDCCINT_EL1
-     *    DBGDTR_EL0
-     *    DBGDTRRX_EL0
-     *    DBGDTRTX_EL0
      *    OSDTRRX_EL1
      *    OSDTRTX_EL1
      *    OSECCR_EL1
@@ -172,11 +169,29 @@ void do_sysreg(struct cpu_user_regs *regs,
     case HSR_SYSREG_MDSCR_EL1:
         return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
     case HSR_SYSREG_MDCCSR_EL0:
+    {
         /*
+         * Xen doesn't expose a real (or emulated) Debug Communications Channel
+         * (DCC) to a domain. Yet the Arm ARM implies this is not an optional
+         * feature. So some domains may start to probe it. For instance, the
+         * HVC_DCC driver in Linux (since f377775dc083 and at least up to v6.7),
+         * will try to write some characters and check if the transmit buffer
+         * has emptied. By setting TX status bit to indicate the transmit buffer
+         * is full. This we would hint the OS that the DCC is probably not
+         * working.
+         *
+         * Bit 29: TX full
+         *
          * Accessible at EL0 only if MDSCR_EL1.TDCC is set to 0. We emulate that
          * register as RAZ/WI above. So RO at both EL0 and EL1.
          */
-        return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
+        return handle_ro_read_val(regs, regidx, hsr.sysreg.read, hsr, 0,
+                                  1U << 29);
+    }
+    case HSR_SYSREG_DBGDTR_EL0:
+    /* DBGDTR[TR]X_EL0 share the same encoding */
+    case HSR_SYSREG_DBGDTRTX_EL0:
+        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 0);
     HSR_SYSREG_DBG_CASES(DBGBVR):
     HSR_SYSREG_DBG_CASES(DBGBCR):
     HSR_SYSREG_DBG_CASES(DBGWVR):
@@ -393,7 +408,8 @@ void do_sysreg(struct cpu_user_regs *regs,
      *
      * And all other unknown registers.
      */
-    default:
+    default: goto fail;
+    fail:
         {
             const struct hsr_sysreg sysreg = hsr.sysreg;
 
diff --git a/xen/arch/arm/include/asm/arm64/hsr.h b/xen/arch/arm/include/asm/arm64/hsr.h
index e691d41c17..1495ccddea 100644
--- a/xen/arch/arm/include/asm/arm64/hsr.h
+++ b/xen/arch/arm/include/asm/arm64/hsr.h
@@ -47,6 +47,9 @@
 #define HSR_SYSREG_OSDLR_EL1      HSR_SYSREG(2,0,c1,c3,4)
 #define HSR_SYSREG_DBGPRCR_EL1    HSR_SYSREG(2,0,c1,c4,4)
 #define HSR_SYSREG_MDCCSR_EL0     HSR_SYSREG(2,3,c0,c1,0)
+#define HSR_SYSREG_DBGDTR_EL0     HSR_SYSREG(2,3,c0,c4,0)
+#define HSR_SYSREG_DBGDTRTX_EL0   HSR_SYSREG(2,3,c0,c5,0)
+#define HSR_SYSREG_DBGDTRRX_EL0   HSR_SYSREG(2,3,c0,c5,0)
 
 #define HSR_SYSREG_DBGBVRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,4)
 #define HSR_SYSREG_DBGBCRn_EL1(n) HSR_SYSREG(2,0,c0,c##n,5)
diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
index 6b083de204..aec9e8f329 100644
--- a/xen/arch/arm/include/asm/cpregs.h
+++ b/xen/arch/arm/include/asm/cpregs.h
@@ -75,6 +75,8 @@
 #define DBGDIDR         p14,0,c0,c0,0   /* Debug ID Register */
 #define DBGDSCRINT      p14,0,c0,c1,0   /* Debug Status and Control Internal */
 #define DBGDSCREXT      p14,0,c0,c2,2   /* Debug Status and Control External */
+#define DBGDTRRXINT     p14,0,c0,c5,0   /* Debug Data Transfer Register, Receive */
+#define DBGDTRTXINT     p14,0,c0,c5,0   /* Debug Data Transfer Register, Transmit */
 #define DBGVCR          p14,0,c0,c7,0   /* Vector Catch */
 #define DBGBVR0         p14,0,c0,c0,4   /* Breakpoint Value 0 */
 #define DBGBCR0         p14,0,c0,c0,5   /* Breakpoint Control 0 */
diff --git a/xen/arch/arm/include/asm/traps.h b/xen/arch/arm/include/asm/traps.h
index 883dae368e..a2692722d5 100644
--- a/xen/arch/arm/include/asm/traps.h
+++ b/xen/arch/arm/include/asm/traps.h
@@ -56,6 +56,10 @@ void handle_ro_raz(struct cpu_user_regs *regs, int regidx, bool read,
 void handle_ro_read_val(struct cpu_user_regs *regs, int regidx, bool read,
                         const union hsr hsr, int min_el, register_t val);
 
+/* Read only as value provided with 'val' argument, write ignore */
+void handle_read_val_wi(struct cpu_user_regs *regs, int regidx,
+                        const union hsr hsr, int min_el, register_t val);
+
 /* Co-processor registers emulation (see arch/arm/vcpreg.c). */
 void do_cp15_32(struct cpu_user_regs *regs, const union hsr hsr);
 void do_cp15_64(struct cpu_user_regs *regs, const union hsr hsr);
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 3784e8276e..f5ab555b19 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1676,6 +1676,24 @@ void handle_ro_read_val(struct cpu_user_regs *regs,
     advance_pc(regs, hsr);
 }
 
+/* Read as value provided with 'val' argument of this function, write ignore */
+void handle_read_val_wi(struct cpu_user_regs *regs,
+                        int regidx,
+                        const union hsr hsr,
+                        int min_el,
+                        register_t val)
+{
+    ASSERT((min_el == 0) || (min_el == 1));
+
+    if ( min_el > 0 && regs_mode_is_user(regs) )
+        return inject_undef_exception(regs, hsr);
+
+    set_user_reg(regs, regidx, val);
+
+    advance_pc(regs, hsr);
+}
+
+
 /* Read only as read as zero */
 void handle_ro_raz(struct cpu_user_regs *regs,
                    int regidx,
diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
index 39aeda9dab..5087125111 100644
--- a/xen/arch/arm/vcpreg.c
+++ b/xen/arch/arm/vcpreg.c
@@ -549,18 +549,41 @@ void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
     }
 
     case HSR_CPREG32(DBGDSCRINT):
+    {
         /*
-         * Read-only register. Accessible by EL0 if DBGDSCRext.UDCCdis
-         * is set to 0, which we emulated below.
+         * Xen doesn't expose a real (or emulated) Debug Communications Channel
+         * (DCC) to a domain. Yet the Arm ARM implies this is not an optional
+         * feature. So some domains may start to probe it. For instance, the
+         * HVC_DCC driver in Linux (since f377775dc083 and at least up to v6.7),
+         * will try to write some characters and check if the transmit buffer
+         * has emptied. By setting TX status bit to indicate the transmit buffer
+         * is full. This we would hint the OS that the DCC is probably not
+         * working.
+         *
+         * Bit 29: TX full
+         *
+         * Accessible by EL0 if DBGDSCRext.UDCCdis is set to 0, which we emulate
+         * as RAZ/WI in the next case.
          */
-        return handle_ro_raz(regs, regidx, cp32.read, hsr, 1);
+
+        return handle_ro_read_val(regs, regidx, cp32.read, hsr, 0, 1 << 29);
+    }
 
     case HSR_CPREG32(DBGDSCREXT):
+        return handle_raz_wi(regs, regidx, cp32.read, hsr, 1);
+
+    case HSR_CPREG32(DBGOSLSR):
+         return handle_ro_read_val(regs, regidx, cp32.read, hsr, 1, 1 << 3);
+
+    case HSR_CPREG32(DBGDTRTXINT):
+    {
         /*
-         * Implement debug status and control register as RAZ/WI.
-         * The OS won't use Hardware debug if MDBGen not set.
+         * As DBGDSCRINT is emulated which is architecturally mapped to AArch64
+         * register MDCCSR_EL0. MDSCR_EL1 is not emulated. So DBGDTR[TR]XINT can
+         * only be accessed as EL0 level.
          */
-        return handle_raz_wi(regs, regidx, cp32.read, hsr, 1);
+        return handle_raz_wi(regs, regidx, cp32.read, hsr, 0);
+    }
 
     case HSR_CPREG32(DBGVCR):
     case HSR_CPREG32(DBGBVR0):
@@ -590,7 +613,8 @@ void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
      *
      * And all other unknown registers.
      */
-    default:
+    default: goto fail;
+    fail:
         gdprintk(XENLOG_ERR,
                  "%s p14, %d, r%d, cr%d, cr%d, %d @ 0x%"PRIregister"\n",
                   cp32.read ? "mrc" : "mcr",
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 20:33:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 20:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656385.1024488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFKJ2-0003cY-Co; Mon, 18 Dec 2023 20:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656385.1024488; Mon, 18 Dec 2023 20:33:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFKJ2-0003cR-9v; Mon, 18 Dec 2023 20:33:40 +0000
Received: by outflank-mailman (input) for mailman id 656385;
 Mon, 18 Dec 2023 20:33:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3wqZ=H5=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1rFKJ1-0003D2-Az
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 20:33:39 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20630.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7d7a636-9de4-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 21:33:36 +0100 (CET)
Received: from CH5P221CA0020.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1f2::11)
 by DS0PR12MB7873.namprd12.prod.outlook.com (2603:10b6:8:142::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Mon, 18 Dec
 2023 20:33:32 +0000
Received: from SA2PEPF000015CA.namprd03.prod.outlook.com
 (2603:10b6:610:1f2:cafe::71) by CH5P221CA0020.outlook.office365.com
 (2603:10b6:610:1f2::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Mon, 18 Dec 2023 20:33:32 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015CA.mail.protection.outlook.com (10.167.241.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Mon, 18 Dec 2023 20:33:31 +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.34; Mon, 18 Dec
 2023 14:33:31 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via
 Frontend Transport; Mon, 18 Dec 2023 14:33:30 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7d7a636-9de4-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dKv8LiDJ809zUxHmJa9JVfopZvvnCKfFlFgOuhQldaTb93TpVIHwiBL+sjGdrQPwhxsQQWak5xcWXgUhvRHcoETYc7OMaLCfXIS9taaLLwlN/qSgFexrrNc3Ksxe2FYWTk7sbCjAnOTmVIRiI5IzMvuF/BzWOm632FOcBMV4L2dSehctCyRisrHWfpDt1IcBHO6921BH9IcoCd4b4vQoYcAsBNhe1V9h/guR1iPgugpjWjC7PMEgIXjYJ73TrnY8QBsQy3m09PcwUvY4tEC5DDXVy7zKs7roxXtNmA+W1DmBJutObRxsZBkJz095LdfF6Kp2HMuLOBJ9eJ47nBK/Ew==
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=idvMLh7ay3HgFa0HUlYc6KaMzvjAv1vhicqtRD33Dco=;
 b=KyMQJl+0WIazzpnt+Z8Ac49uw2OxI6/JJ+nNdKpR/n42R7auMxGL6i4YzjUXg1an+nE8+mhYWt7dKo0a7dD8/iJre/X1deWzLvKoleq8Fm7evUPsbSjhA4vYoXbhJNe4r/9t7qwWX1QA2VBcAnEt/aCwxbkfN8pgJzX1z7IEQ7UcEw8LDpKJvuBrs+JdqXDk+qmZa+ZtGfbkSrYlO8/Xr7RjlNpDShyQGyiPFiWJhIS/yc+jPCrecLwm3cJRxXXJJ0DSrvnvLdss5SCd/Fu0Ws0k6t7sbVhLd/F5O7KAoE38FTsm8WlfNoMwTT+PEynXlDYdnitYjKlLllaYCK7Uwg==
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=idvMLh7ay3HgFa0HUlYc6KaMzvjAv1vhicqtRD33Dco=;
 b=QKFWbe7aP1wIYykiADgU/Lh5ORtCe4glZejNFtIXPh4e20vrq3dHHjh4TWGaTr7nQIWH96Hb7DPSSrjtY+38V8lx32hS3idg23NBbwrWXhXWgh9OHuy9B37oLOpWBp4MCB+cgWI0GFKGcAVTCmlR2wxy3Z2QFo/sHz0iLl9f99o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <julien@xen.org>, <ayan.kumar.halder@amd.com>, <sstabellini@kernel.org>,
	<bertrand.marquis@arm.com>, <michal.orzel@amd.com>,
	<Volodymyr_Babchuk@epam.com>, <stefano.stabellini@amd.com>
CC: <xen-devel@lists.xenproject.org>
Subject: [PATCH v2 2/3] xen: arm: Introduce CONFIG_PARTIAL_EMULATION
Date: Mon, 18 Dec 2023 20:33:22 +0000
Message-ID: <20231218203322.1394097-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CA:EE_|DS0PR12MB7873:EE_
X-MS-Office365-Filtering-Correlation-Id: 023e7c54-eeb8-4d7d-7a7b-08dc000899db
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	N8Mx+MHNnKjeu6Zp74UYCkwWdisVn+xJLwGb0kafpnPcwRljrIa2OwS+jLky4wIf2DsZN+0jBEkXcO79izp3GzPy4ms57ocsxMtzb8r2kNwKQj9wysZ4D8mdH/V2q5BZQ1HLfzgMOB/p8YVtj18/SugOWAqnfUWg+LuaaFVlD+0oct5ueaishIyUZWEft1a+3Vn0kubrXz+pOZ6SFdQKQ4IAfyzHlDs2A+fzlgmZcvpGbI3DrM5MOn4GU9b669nGfN577T1ptRmbSLyueyUQr+r8JRATsLSdXPPOgFQVlojgMv6wHGJ7557QNfibPSTgZ6O6R8d/M59ZgVPvL0LzTGMSyFHnL+tRh21OxvFMoqdBzL2ddTTKIMv1Om6vWIw0iqwWTJXaJG7uK7nisWuyEv06Ut2xAz9bmB+HvNnleIJ7rcnByIwyqesDeAtTjo0v07Us9KCztnXRpaVAakYB8pv3rDvKuJtaRUJ/C5GEfgCLZhc1KfcXxq3tOdI4mxb5wQH0/xSjNYgiiqVDexsqf6oCf7xVK3P62WsCltztZgp3I+NNSVMkcz3sbuvm2GLQUWUwPgJ6H3/ZzPmogTbpKFDikmidDsRFdEReMGiej7sTZQlvNKbg4ukFAOe7N+u6dqc/BrXbXD1VOxobU1Ei9dYvystiprt7z/6JbNvNHVM1yoOMay8eqA2Xw7WjfjYpfir0J+UpILHqrwRuyVa3kIM3NZexcpmhnU9mWdUULjoLcy35LpUrvAdPMcfXsj79h7c1CPiZ5TpBsfX0PcI7/g==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(346002)(396003)(136003)(39860400002)(230922051799003)(451199024)(1800799012)(64100799003)(82310400011)(186009)(46966006)(40470700004)(36840700001)(26005)(336012)(83380400001)(426003)(2616005)(36860700001)(6636002)(1076003)(47076005)(4326008)(5660300002)(41300700001)(110136005)(2906002)(478600001)(8676002)(316002)(8936002)(6666004)(70586007)(70206006)(103116003)(86362001)(36756003)(82740400003)(356005)(81166007)(40480700001)(40460700003)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2023 20:33:31.9553
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 023e7c54-eeb8-4d7d-7a7b-08dc000899db
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7873

There are can be situations when the registers cannot be emulated to its full
functionality. This can be due to the complexity involved. In such cases, we can
emulate those registers as RAZ/WI.
A suitable example of this is DBGDTRTX_EL0 (on Arm64) and DBGDTRTXINT(on Arm32).
As this register is not optional, guests may try to access this. Currently, this
would result in a crash. With this patch, Xen will emulated this as RAZ/WI and
the crash will be avoided.
Such partial emulations will be enclosed within CONFIG_PARTIAL_EMULATION.

Also "CONFIG_PARTIAL_EMULATION" is default to y, so that Xen does not need to be
rebuilt in order to prevent guest from crashing while accessing registers like
DBGDTRTX_EL0.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from v1:-

1. New patch introduced in v2.

 xen/arch/arm/Kconfig         | 8 ++++++++
 xen/arch/arm/arm64/vsysreg.c | 3 +++
 xen/arch/arm/vcpreg.c        | 2 ++
 3 files changed, 13 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 50e9bfae1a..8f25d9cba0 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -225,6 +225,14 @@ config STATIC_EVTCHN
 	  This option enables establishing static event channel communication
 	  between domains on a dom0less system (domU-domU as well as domU-dom0).
 
+config PARTIAL_EMULATION
+    bool "Enable partial emulation for registers"
+    default y
+    help
+      This option enabled partial emulation for registers to avoid guests
+      crashing when accessing registers which are not optional but has not been
+      emulated to its complete functionality.
+
 endmenu
 
 menu "ARM errata workaround via the alternative framework"
diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
index ebeb83dd65..0fa8716884 100644
--- a/xen/arch/arm/arm64/vsysreg.c
+++ b/xen/arch/arm/arm64/vsysreg.c
@@ -188,10 +188,13 @@ void do_sysreg(struct cpu_user_regs *regs,
         return handle_ro_read_val(regs, regidx, hsr.sysreg.read, hsr, 0,
                                   1U << 29);
     }
+#ifdef CONFIG_PARTIAL_EMULATION
     case HSR_SYSREG_DBGDTR_EL0:
     /* DBGDTR[TR]X_EL0 share the same encoding */
     case HSR_SYSREG_DBGDTRTX_EL0:
         return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 0);
+#endif
+
     HSR_SYSREG_DBG_CASES(DBGBVR):
     HSR_SYSREG_DBG_CASES(DBGBCR):
     HSR_SYSREG_DBG_CASES(DBGWVR):
diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
index 5087125111..52a8732423 100644
--- a/xen/arch/arm/vcpreg.c
+++ b/xen/arch/arm/vcpreg.c
@@ -575,6 +575,7 @@ void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
     case HSR_CPREG32(DBGOSLSR):
          return handle_ro_read_val(regs, regidx, cp32.read, hsr, 1, 1 << 3);
 
+#ifdef CONFIG_PARTIAL_EMULATION
     case HSR_CPREG32(DBGDTRTXINT):
     {
         /*
@@ -584,6 +585,7 @@ void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
          */
         return handle_raz_wi(regs, regidx, cp32.read, hsr, 0);
     }
+#endif
 
     case HSR_CPREG32(DBGVCR):
     case HSR_CPREG32(DBGBVR0):
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 20:33:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 20:33:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656386.1024499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFKJE-00040n-L9; Mon, 18 Dec 2023 20:33:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656386.1024499; Mon, 18 Dec 2023 20:33: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 1rFKJE-00040g-IR; Mon, 18 Dec 2023 20:33:52 +0000
Received: by outflank-mailman (input) for mailman id 656386;
 Mon, 18 Dec 2023 20:33:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3wqZ=H5=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1rFKJC-0003D2-Mt
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 20:33:50 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2009::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf0886fe-9de4-11ee-9b0f-b553b5be7939;
 Mon, 18 Dec 2023 21:33:49 +0100 (CET)
Received: from SA9PR10CA0013.namprd10.prod.outlook.com (2603:10b6:806:a7::18)
 by DM6PR12MB4076.namprd12.prod.outlook.com (2603:10b6:5:213::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Mon, 18 Dec
 2023 20:33:43 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:806:a7:cafe::73) by SA9PR10CA0013.outlook.office365.com
 (2603:10b6:806:a7::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Mon, 18 Dec 2023 20:33:43 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015CC.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Mon, 18 Dec 2023 20:33:43 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 18 Dec
 2023 14:33:42 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 18 Dec
 2023 14:33:42 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via
 Frontend Transport; Mon, 18 Dec 2023 14:33:41 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf0886fe-9de4-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Opqnm9EEJLhIvYbZ6SjsVqI1E4aLl8pBcSV1nXmSYi+pq8JY6edpR/gea5HFEaqfUFcHGZto7GlJppkWrD853/P1AxMqtSOd0avS+ayemYYS4V/w3tWndkrkQsV49OTL+3n6tXkBdTsk2WCksz8esSqHxBNlRDC3jjDjBk+oHaWN4GPZLgAEoBVgwL5aGCNpRIUlx6PulmT0aOeyYFAfRyPCabRZRCEx/g1tHu1SZb/D6pJeVvH2qT/yi9aandeqn6ZT3R6sn7ohLzBVRTPpM7tNodE/Eb997e1Rfz8lWNk1jHBPf4NrxvNJmrbPFdTrjgmzWQq2pEQjCsK4SyY/Tg==
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=smYuQZK3qvIyePU2wMqadUuqF2Ed1vqa9lCU8cNIDlI=;
 b=DyjMtWF6HTUAcHOTky9EuuSAtxBHqVS3K1HzAsgaG7cMR1um3XBfAtZw2afL5M/iWI6VfnaR/eC7bT86OnVPun8vjHjUYQvcf1Lan2tmPpw/qlbqBGvarCNjw6462B78OgLRLtagBsVnLdBWCN3XbzKSwdNB3X9FyIzDW6Vg/s3HApowFBDMFAE9wbmyoKEeZZsv9ngOahMQTlQE+Ako6aC7GFuzFgJM2viKuM7JEOsc4gbsWLXUTS9PqO5Aq5NvvGxIIeqiz885BcLOFqkDnhR5tz+HDaNJMQjisqFS5fm7erwIrf6DKME89luPHvAdwP7hJEPt5HKSXyF/x996ow==
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=smYuQZK3qvIyePU2wMqadUuqF2Ed1vqa9lCU8cNIDlI=;
 b=j048MfKM6lNd5D1smEapVQnh8heSRVPLJes3syCQtpeu5X2rXoiMJdWObH4gZ6kYJVl+/hYUeZChSZj/2h7ACFUqsY5PRdJCBB6Z4+N8y/htfiN8igsX7frGrah1GRM1NfmBEr2eGKuDCjCur3QPbMRUUj42lLTPanXXW2Ygfes=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <julien@xen.org>, <ayan.kumar.halder@amd.com>, <sstabellini@kernel.org>,
	<bertrand.marquis@arm.com>, <michal.orzel@amd.com>,
	<Volodymyr_Babchuk@epam.com>, <stefano.stabellini@amd.com>
CC: <xen-devel@lists.xenproject.org>
Subject: [PATCH v2 3/3] xen/arm: Introduce "partial-emulation" xen command line option
Date: Mon, 18 Dec 2023 20:33:39 +0000
Message-ID: <20231218203339.1394354-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CC:EE_|DM6PR12MB4076:EE_
X-MS-Office365-Filtering-Correlation-Id: 9867b0e7-f1eb-47d0-9712-08dc0008a07d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	JY3NktIUuNsKzBEX39wHwjMBe8O9RLkM491/2atcuUloDS3L2Uo5XWp451nMvDNb7brQSg548/xGWjFFaSgSLoJoFROIM+TucTjdTCmzYjNyO9jWHXqHo3xDAyL68LRDShQ4ILbFpbmNhIdqv1ytHfsmVaNfSmbleDwzc0awkzN3vpM3nOnQMyhM14OgJ2DWzn2ewTQlxMK8yt+IY2BOnMmz0o1i8nKvIeYGD/NDesu+O0SJsKt/sCZP7r/DF9HsGf3ZdyMr1wWUxazrfxhLRCabPurlw0YlWQtpGvJhSJdCQhpTTCv6GICdjMf9AYBzBknJ1268tkoq1J7cZNZOqadf3oKGqow5+YX/6Jnq9y4zYui0nPR9O8us6h3Bc7oovxxR6AgWwmXOPYshK3RNI0ZI4cFSAQbORweBHGu+/2X+1wmuNP2AtzOV8MEVavmuWVM1TYdj0RRFT0ralFYx9W3PfqGWSWz2O7z5GFROYU98wNJkyteJUPmsEnhr15U7sgunzVhBzvIyF0RNp+jWxiCGqXbCD41sLLneu/OakgsBXUiQ7ecV/fSLLgh9WieKeSV1enKApUxPBalScrGPU80YfsW0vEmcYgGXlOZDyXD8TtBRRAyRXmdNNYOoRoUgcjbFq80kYkjB/w5kRC5ANoctPgvOqUi+hV7PrPtW9QITAyD1mPJJz59Bf9jWJFNthHBeL678jJHtnC05Cb3MDXwkfM7kWP7UCLGeb/BYNqbtdM77B+rgH6z43BU5bjKqMn5GTgSMPSwrDgQocwIIfQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(376002)(346002)(39860400002)(230922051799003)(1800799012)(64100799003)(82310400011)(451199024)(186009)(46966006)(40470700004)(36840700001)(36756003)(316002)(6636002)(83380400001)(336012)(426003)(110136005)(70586007)(70206006)(40480700001)(8676002)(47076005)(2906002)(8936002)(5660300002)(36860700001)(4326008)(26005)(478600001)(1076003)(2616005)(86362001)(81166007)(41300700001)(40460700003)(356005)(82740400003)(103116003)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2023 20:33:43.1153
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9867b0e7-f1eb-47d0-9712-08dc0008a07d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4076

This option is used to enable/disable partial emulation of registers at runtime.
While CONFIG_PARTIAL_EMULATION enables support for partial emulation at compile
time (ie adds code for partial emulation), this option may be enabled or
disabled by Yocto or other build systems.
However, customers can use scripts like Imagebuilder to generate uboot script
for booting Xen. These scripts can use "partial-emulation=true" to support this
at runtime.

This option is set to false by default so that customers are fully aware when
they enable partial emulation. They can also disable it without the need to
rebuild Xen.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from v1:-

1. New patch introduced in v2.

 docs/misc/xen-command-line.pandoc |  7 +++++++
 xen/arch/arm/arm64/vsysreg.c      |  5 ++++-
 xen/arch/arm/include/asm/regs.h   |  6 ++++++
 xen/arch/arm/traps.c              |  3 +++
 xen/arch/arm/vcpreg.c             | 17 +++++++++++------
 5 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 8e65f8bd18..dd2a76fb19 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1949,6 +1949,13 @@ This option is ignored in **pv-shim** mode.
 
 > Default: `on`
 
+### partial-emulation (arm)
+> `= <boolean>`
+
+> Default: `false`
+
+Flag to enable or disable partial emulation of registers
+
 ### pci
     = List of [ serr=<bool>, perr=<bool> ]
 
diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
index 0fa8716884..02497c9fef 100644
--- a/xen/arch/arm/arm64/vsysreg.c
+++ b/xen/arch/arm/arm64/vsysreg.c
@@ -192,7 +192,10 @@ void do_sysreg(struct cpu_user_regs *regs,
     case HSR_SYSREG_DBGDTR_EL0:
     /* DBGDTR[TR]X_EL0 share the same encoding */
     case HSR_SYSREG_DBGDTRTX_EL0:
-        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 0);
+        if ( opt_partial_emulation )
+            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 0);
+        else
+            goto fail;
 #endif
 
     HSR_SYSREG_DBG_CASES(DBGBVR):
diff --git a/xen/arch/arm/include/asm/regs.h b/xen/arch/arm/include/asm/regs.h
index f998aedff5..b71fa20f91 100644
--- a/xen/arch/arm/include/asm/regs.h
+++ b/xen/arch/arm/include/asm/regs.h
@@ -13,6 +13,12 @@
 
 #define psr_mode(psr,m) (((psr) & PSR_MODE_MASK) == (m))
 
+/*
+ * opt_partial_emulation: If true, partial emulation for registers will be
+ * enabled.
+ */
+extern bool opt_partial_emulation;
+
 static inline bool regs_mode_is_32bit(const struct cpu_user_regs *regs)
 {
 #ifdef CONFIG_ARM_32
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index f5ab555b19..c8c00d2dd5 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -42,6 +42,9 @@
 #include <asm/vgic.h>
 #include <asm/vtimer.h>
 
+bool opt_partial_emulation = false;
+boolean_param("partial-emulation", opt_partial_emulation);
+
 /* The base of the stack must always be double-word aligned, which means
  * that both the kernel half of struct cpu_user_regs (which is pushed in
  * entry.S) and struct cpu_info (which lives at the bottom of a Xen
diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
index 52a8732423..6bf417487a 100644
--- a/xen/arch/arm/vcpreg.c
+++ b/xen/arch/arm/vcpreg.c
@@ -578,12 +578,17 @@ void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
 #ifdef CONFIG_PARTIAL_EMULATION
     case HSR_CPREG32(DBGDTRTXINT):
     {
-        /*
-         * As DBGDSCRINT is emulated which is architecturally mapped to AArch64
-         * register MDCCSR_EL0. MDSCR_EL1 is not emulated. So DBGDTR[TR]XINT can
-         * only be accessed as EL0 level.
-         */
-        return handle_raz_wi(regs, regidx, cp32.read, hsr, 0);
+        if ( opt_partial_emulation )
+        {
+            /*
+             * As DBGDSCRINT is emulated which is architecturally mapped to
+             * AArch64 register MDCCSR_EL0. MDSCR_EL1 is not emulated. So
+             * DBGDTR[TR]XINT can only be accessed as EL0 level.
+             */
+            return handle_raz_wi(regs, regidx, cp32.read, hsr, 0);
+        }
+        else
+            goto fail;
     }
 #endif
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Dec 18 21:21:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 21:21:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656401.1024509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFL3C-0004eQ-67; Mon, 18 Dec 2023 21:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656401.1024509; Mon, 18 Dec 2023 21:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFL3C-0004eJ-30; Mon, 18 Dec 2023 21:21:22 +0000
Received: by outflank-mailman (input) for mailman id 656401;
 Mon, 18 Dec 2023 21:21: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 1rFL3B-0004e9-1t; Mon, 18 Dec 2023 21:21: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 1rFL3A-0007FF-N7; Mon, 18 Dec 2023 21:21: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 1rFL3A-0001se-8y; Mon, 18 Dec 2023 21:21:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFL3A-0006nH-8X; Mon, 18 Dec 2023 21:21: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=BDy5uVChqGqE4U6+NChstTvanshN/tD0N3uuy5qn6nk=; b=yJUfcBqaTLT2buFQpaslC0sSvN
	qXaBjpmU7fQF+FU3X0o9olFpkJrhnw1HY4cYoCN1xQD7MLYbH+GKQsezWpSOWrQqz9iAc5DPUP5Ll
	+cfayHTv+ckDDojL/reIs0OSaYf4eDrt+GWznUbyYyRXvNoxtLPZZE/JkYmFFO2/8NRw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184165-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-4.17-testing test] 184165: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-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-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-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-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-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-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-i386-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-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-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-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:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    xen-4.17-testing:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-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-vhd: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-multivcpu: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: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-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-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt: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-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-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-amd64-i386-libvirt-raw: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-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-4.17-testing:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=949a4aad417621638231e4cf9f1b35e8e0328463
X-Osstest-Versions-That:
    xen=958706fd2e178ffe8e5597b05b694b494e24258b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 18 Dec 2023 21:21:20 +0000

flight 184165 xen-4.17-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/184165/

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184109
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184109
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184109
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184109
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184109
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184109
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184109
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184109
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184109
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184109
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184109
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184109
 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-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-vhd 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-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-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-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 xen                  949a4aad417621638231e4cf9f1b35e8e0328463
baseline version:
 xen                  958706fd2e178ffe8e5597b05b694b494e24258b

Last test of basis   184109  2023-12-12 14:07:07 Z    6 days
Testing same since   184165  2023-12-18 12:38:50 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   958706fd2e..949a4aad41  949a4aad417621638231e4cf9f1b35e8e0328463 -> stable-4.17


From xen-devel-bounces@lists.xenproject.org Mon Dec 18 23:43:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Dec 2023 23:43:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656412.1024523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFNGo-0005yK-Ug; Mon, 18 Dec 2023 23:43:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656412.1024523; Mon, 18 Dec 2023 23:43:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFNGo-0005yD-Rw; Mon, 18 Dec 2023 23:43:34 +0000
Received: by outflank-mailman (input) for mailman id 656412;
 Mon, 18 Dec 2023 23:43: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=De97=H5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFNGn-0005y6-IX
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 23:43:33 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40968e02-9dff-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 00:43:32 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-336668a5a8dso2255862f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 15:43:32 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-110-223.as13285.net. [92.26.110.223])
 by smtp.gmail.com with ESMTPSA id
 d5-20020a5d5385000000b0033662cf5e51sm5889553wrv.93.2023.12.18.15.43.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 15:43:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 40968e02-9dff-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702943011; x=1703547811; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Tl6o6e62opWh0JJ9gYs898h/HxcAzmGplKT6yA9erew=;
        b=kPG5vsfR1Hw+jIZrBsDDaDw5vN5V3LvuqJ2lwYuWWpjW37HrGi56V+l3re69R8G67P
         CTH8RU8vE+iVgBqbmeZvVWH2+D7zK9F0vCBxGXjEsqCNg46QmfBldIuMwQK8Z2gGoODy
         NT/nN9zOwNIKJid7Mhlxmpq+CWdr9ZFaidCAU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702943011; x=1703547811;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Tl6o6e62opWh0JJ9gYs898h/HxcAzmGplKT6yA9erew=;
        b=G9Ffhlm/6hC+kmh6VnLI05V8YonzMMJnAXpED77Qd2KfIwOeu2RdlE1ngl/67AFJUo
         k7kHNxGVEqEOY1yhYz3uQfj9v6MAESc2nFMJPI7/3oiU89tiY/PdymEBS3b1JLkRsf4r
         WGkBbn1B3rwnfba9XGk5fD9i7eRy5mxc67+c1B5qA/1oPdAiE2UQ4tu45OQt0AmtJwVE
         kMAFtBJRNyM6vWdtjqYjg/4qj967ban7ZQ4aUQEtFZYpF9CJah/2UfPd0U7qZlUqGryW
         1schscjxDGA1f5av56td8+xQPIKgOohDzz4y+5Q2KJryc7u3dRruu5U8yghvXM6R+9Zb
         RRBQ==
X-Gm-Message-State: AOJu0YwW2Ct+sAGVpAGCUihd7coGNvCGmZDrGZIOtrm+to5zk5xzxV3o
	Rd4mw+13I6NEGV/f6nXTUftxRg==
X-Google-Smtp-Source: AGHT+IESlvbXd3aAb8Cm7D4l+YqsB+/dwnYaCtsm9DA3WuA8Ja/Jf8De/IEe45hjoQrOmlwIWXMtDA==
X-Received: by 2002:adf:e282:0:b0:333:2fd2:5d1f with SMTP id v2-20020adfe282000000b003332fd25d1fmr8782575wri.81.1702943011510;
        Mon, 18 Dec 2023 15:43:31 -0800 (PST)
Message-ID: <cd153225-5cef-4ff5-97e3-44e485c12305@citrix.com>
Date: Mon, 18 Dec 2023 23:43:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Possible bug in Xen
Content-Language: en-GB
To: Joe Tretter <j.tretter@gmail.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <de8b87e2-a4a2-4e49-80f5-97c745f46500@gmail.com>
 <9cc86706-5791-4967-802c-3e665bc97804@citrix.com>
 <a0aa0326-398f-44a1-a5df-fde3e7fea138@gmail.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <a0aa0326-398f-44a1-a5df-fde3e7fea138@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/12/2023 11:36 pm, Joe Tretter wrote:
> Hi Andrew,
>
> I have tried it with your suggested command line, and it "feels" like
> it makes the issue occur less often (but one never knows with sparse
> intermittent issues).
> The first time I ran my test, it took 23 minutes before the error
> occurred.
> However, I picked that when running two processes simultaneously, the
> issue occurs reasonably fast.

Do you mean running the unit tests twice simultaneously?Â  Or something else.

>
> I have, however, not been able to verify during runtime that the
> parameter really arrived in Xen because /proc/cmdline didn't show the
> Xen parameters. But I have taken a screen shot of what I have done to
> submit the parameter.
>
> If you tell me how I can view the boot options in a running system to
> be certain the option has is effective, I'm happy to run the test again.
>
> Side remark: To make reasonably sure the issue really only happens
> with Xen, I have re-verified that without Xen the issue does not
> exist, even with two instances for more than 1.5 hours.

Running `xl info` in dom0 will tell you various things, one of which is
xen_cmdline.Â  This is the command line that Xen is currently booted with.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 00:30:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 00:30:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656419.1024533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFO0F-0004Er-KL; Tue, 19 Dec 2023 00:30:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656419.1024533; Tue, 19 Dec 2023 00: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 1rFO0F-0004Ek-Gi; Tue, 19 Dec 2023 00:30:31 +0000
Received: by outflank-mailman (input) for mailman id 656419;
 Tue, 19 Dec 2023 00: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=sjQj=H6=gmail.com=j.tretter@srs-se1.protection.inumbo.net>)
 id 1rFO0D-0004Ee-85
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 00:30:30 +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 cdfe8ab1-9e05-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 01:30:27 +0100 (CET)
Received: by mail-oa1-x36.google.com with SMTP id
 586e51a60fabf-1f5bd86ceb3so2661008fac.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 16:30:27 -0800 (PST)
Received: from ?IPV6:2603:8080:a900:257c::1000?
 (2603-8080-a900-257c-0000-0000-0000-1000.res6.spectrum.com.
 [2603:8080:a900:257c::1000]) by smtp.gmail.com with ESMTPSA id
 t16-20020a0568301e3000b006ce2c31dd9bsm4852114otr.20.2023.12.18.16.30.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 16:30:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: cdfe8ab1-9e05-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702945826; x=1703550626; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:sender:from:to:cc:subject
         :date:message-id:reply-to;
        bh=sbTgthDnhwyfedqqahJ9Jy2LsJwtZE1EF7SkkkE35Ro=;
        b=EoAHgwOXLhAqrGDRaqnBEuDgTmriKEMXPFqhuGMgdbdefuFJ8C6Vxpn4EXZJ0nfR2u
         TFXOgezrElBbw28LWolXiH2synyBEEYaKVhAPh+7u3rxizqTHWu5ZsCZfCVKpxUxNEsr
         Gt/A3pLe1B5irsi8tF21UhegIkwcgSBP1WWHlnSGthDFhKdraUzp4qwwNLZmrhGBAQhA
         q7YRqZhJNwUf/7UkY0HZh/sodvocVpvvaGmHD8zqHf5dNGt4G2CqAmvhROnyHdpd31lD
         uvFWl4y0uxD+PhhpQDKcpOup6H6CrnjcVtYBaueIeTjArm2UnUvmZIZKkXDf4EDkxe3X
         9Qvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702945826; x=1703550626;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:sender:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=sbTgthDnhwyfedqqahJ9Jy2LsJwtZE1EF7SkkkE35Ro=;
        b=u/w6iizfH4wQE5qQDkrx7mejPlv0mpl7Atkx4pLSgSZ4RHeTndi/VZqtrof74PjfWR
         toEpUuA1hKtTpwr8Kff6B2TZWfNM4pjD0zk+VVcGZ3ZQtlkB4Pd1tLtzfeCa0Ornh2NY
         RsFAmhqlbckzOSso2cza0kZlJupeSxTtEs3LMSwzfrEmIh4gpy+bFcal93ZJvA7LQ72j
         Su1s4JX6BBihrCJa25poiOiITsochn3UVUAxjuEi1r4oTAB2jf3uyr/sOIonY69Kcjnk
         XbZbWEOrvw9JPh92REH6dTJ9Zza7tODxK1Ikf/6P9gNqVwlldjDTirCa/4n1Mr4QZysj
         XJHg==
X-Gm-Message-State: AOJu0YyrImkfIwoYyGe//YbdgCiXp4vnQSJiJlu4o/xeY37Rb7lS0XkI
	iLyuYU+J/5KoLTAaE0Sfb/s=
X-Google-Smtp-Source: AGHT+IE/JR17NkC/PY9RLv0+2GVAvslmLpP1gwKy5DfRidsYgExPXE9lwWv20MVW5ehJq6sXm9+q1w==
X-Received: by 2002:a05:6870:14d3:b0:203:1c85:21fc with SMTP id l19-20020a05687014d300b002031c8521fcmr11989687oab.57.1702945825542;
        Mon, 18 Dec 2023 16:30:25 -0800 (PST)
Sender: Joe Tretter <joerg.tretter@gmail.com>
Content-Type: multipart/alternative;
 boundary="------------0CYipZHyGBdYHQkz9fbLo60c"
Message-ID: <e787b9ba-7a30-4804-b64e-ef56c71f5ed3@gmail.com>
Date: Mon, 18 Dec 2023 18:32:26 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Possible bug in Xen
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <de8b87e2-a4a2-4e49-80f5-97c745f46500@gmail.com>
 <9cc86706-5791-4967-802c-3e665bc97804@citrix.com>
 <a0aa0326-398f-44a1-a5df-fde3e7fea138@gmail.com>
 <cd153225-5cef-4ff5-97e3-44e485c12305@citrix.com>
Content-Language: en-US
From: Joe Tretter <j.tretter@gmail.com>
In-Reply-To: <cd153225-5cef-4ff5-97e3-44e485c12305@citrix.com>

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

Hi Andrew.

Yes, running the scrypt unit test twice simultaneously made the error 
occur faster.
This time, this wasn't required because it failed straight away - the 
boot parameter is present:



Regards

~Joe

On 12/18/23 17:43, Andrew Cooper wrote:
> On 18/12/2023 11:36 pm, Joe Tretter wrote:
>> Hi Andrew,
>>
>> I have tried it with your suggested command line, and it "feels" like
>> it makes the issue occur less often (but one never knows with sparse
>> intermittent issues).
>> The first time I ran my test, it took 23 minutes before the error
>> occurred.
>> However, I picked that when running two processes simultaneously, the
>> issue occurs reasonably fast.
> Do you mean running the unit tests twice simultaneously?Â  Or something else.
>
>> I have, however, not been able to verify during runtime that the
>> parameter really arrived in Xen because /proc/cmdline didn't show the
>> Xen parameters. But I have taken a screen shot of what I have done to
>> submit the parameter.
>>
>> If you tell me how I can view the boot options in a running system to
>> be certain the option has is effective, I'm happy to run the test again.
>>
>> Side remark: To make reasonably sure the issue really only happens
>> with Xen, I have re-verified that without Xen the issue does not
>> exist, even with two instances for more than 1.5 hours.
> Running `xl info` in dom0 will tell you various things, one of which is
> xen_cmdline.Â  This is the command line that Xen is currently booted with.
>
> ~Andrew

--------------0CYipZHyGBdYHQkz9fbLo60c
Content-Type: multipart/related;
 boundary="------------rgXMd0Rm20d0rois2k2wiqB9"

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

<!DOCTYPE html>
<html data-lt-installed="true">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    Hi Andrew.<br>
    <br>
    Yes, running the scrypt unit test twice simultaneously made the
    error occur faster. <br>
    This time, this wasn't required because it failed straight away -
    the boot parameter is present:<br>
    <br>
    <img src="cid:part1.amGjn5Iv.aw0VgPV0@gmail.com" alt=""><br>
    <br>
    Regards<br>
    <br>
    ~Joe<br>
    <br>
    <div class="moz-cite-prefix">On 12/18/23 17:43, Andrew Cooper wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:cd153225-5cef-4ff5-97e3-44e485c12305@citrix.com">
      <pre class="moz-quote-pre" wrap="">On 18/12/2023 11:36 pm, Joe Tretter wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Hi Andrew,

I have tried it with your suggested command line, and it "feels" like
it makes the issue occur less often (but one never knows with sparse
intermittent issues).
The first time I ran my test, it took 23 minutes before the error
occurred.
However, I picked that when running two processes simultaneously, the
issue occurs reasonably fast.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Do you mean running the unit tests twice simultaneously?Â  Or something else.

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">
I have, however, not been able to verify during runtime that the
parameter really arrived in Xen because /proc/cmdline didn't show the
Xen parameters. But I have taken a screen shot of what I have done to
submit the parameter.

If you tell me how I can view the boot options in a running system to
be certain the option has is effective, I'm happy to run the test again.

Side remark: To make reasonably sure the issue really only happens
with Xen, I have re-verified that without Xen the issue does not
exist, even with two instances for more than 1.5 hours.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Running `xl info` in dom0 will tell you various things, one of which is
xen_cmdline.Â  This is the command line that Xen is currently booted with.

~Andrew
</pre>
    </blockquote>
    <br>
  </body>
  <lt-container></lt-container>
</html>
--------------rgXMd0Rm20d0rois2k2wiqB9
Content-Type: image/png; name="faiPsvewyn1Hdy0D.png"
Content-Disposition: inline; filename="faiPsvewyn1Hdy0D.png"
Content-Id: <part1.amGjn5Iv.aw0VgPV0@gmail.com>
Content-Transfer-Encoding: base64

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
yuAvIpVdkP5316oEhkJn3R9/yIkTJ/SeOEodJXXr1dVlOAvYQ6ZK5UpSTFmLzZk3X1nPnFfu
92rpPWi8eT+5y+/uvUAFjbOrwTgSIAESIAESIAESIAESIAESIAESIAESIAESIIFkI/CuUnJ8
+sWX0v2Jp/TeGNWUKzS41EpomKdclo0c85Ete7W6DfT3RfNmCxQ0H41+Tz776n/SRbkDi1aT
1FBCjBwxzK1ly8/K0gQfuA/LppQqZUuXlnFff6E2RS9mq2foG0Pk+x8m6g3GsXdKwQKh8rja
9wUT3whvv/W6dgH10quDJEK5CmtQv57079NQnzt99pyUCwuzleX4xVOb6tetI+9//KnaL2Ob
Vg5179xZOnVo51iMPr55M0Ipjn7S3zupPYJMQNtWL1mkD9u0eETGfDpWDh46rCapA6VOrZry
dK9etrT3+6VJgwaSWV2LGbNn24rCdQcX7MOCAKUA3Kt5G4488YQt6QhYziglxL1dTNQpR3dp
jsceKoJy4o99RWTt3sJaqeH6Y1H7WJQaPnJNWc9cuHBBYrIpaxWlLIhvuKmUE7cuH5O0OTwr
EN2VDXmhTIQVWRrlJtBxP5nwq1d0duMuzL4sSO3oks5VXS3UPjD4OAYoU6AUuhSxTl/jCuXL
SdTOihJ+fovs3rBW8tf4Te76l4ojF8oxFjS5crh396ZUNrpapK9ctYqUKaPKU8xx7dwpl9q2
bqX2cBonB9V+S3ny5JWP3h+tlTMI3ryf3OV3916ggkYjZiABEiABEiABEiABEiABEiABEiAB
EngYCLw5+tOHQUzKSAL/eQJjP3zfJQNYi6xY+Fus89myZlVWJm+5zDP5++9inYM7MXdWOa1b
thB8XIWCBQrIp2NGuzodJ95de+wTw7oErtzwcRbSp08vA1/urz+OYZtSrHwyxjU3T20KCsol
n3wwyrFY23FPpSjCByFdurRu+SFNjerV9MfbgI3VTbilNnefNXe+bVLdvoywsNJ6E/aunTup
vX9+V5YlFnd2vr6+Uq9OLflz8xZbvtKlSmqFWnzCUXuXZkoBE2mf2eH4ruN5DxVhgv/oiXNa
qecqYBP7nNkyaiXDaGUtlUUpt6DwyJs2RGJuJXw/nduR1yStq0q9jLe4OFMWNErhE6CUcY7B
mQtCkwYWN3DZ5k7J4Vie4/G1a+FaCRuSJ5cUKpRfuT+zuBuDciak5q8y5stFsvfvr2Wq2gsq
ndXyy5SBfalef+s1bfkDttinyHyH0sey9YxFEYP4AGUZt0XdS+eUa0F9Tv2vQSOLotZRLhwX
LJBf+jzzlLNTSiHr/v3kKb+79wIVNE6RM5IESIAESIAESIAESIAESIAESIAESCAlEmjT2LV7
kpQoL2UiARIgAW8JTJ00wdukKTJdn2efjiVXtSqVZfAbQyVKWTLYhypq03Z8EK5csVhs4Hsb
pVCD67lh7460Ja8ZDwWRzuSocFET9Tdtpak5enXe/hgWNrGO7dI6+wrlRIz6vNujoLPTOu7N
yYetSoy7UjVbFQnNmd+y95KyDIu5nXAFTbx9sTmR0KKgSaX2dsolMdHKKkcp0rwJN27cUIqy
LB73oHFXFur+Ztx4yaeUMwUKhCgrnnC5fv26YIeh4Cpz5EOlnMmcJVCCcmSRr78bpyzo+say
5OnR9TGLOzZTiZ0h0ocffyCtWrZTVmgndR4omtIEBEjevPkkUCnI3Cme3MmcHOeooEkOyqyD
BEiABEiABEiABEiABEiABEiABEiABEiABEiABP5DBKpVqSIfjHxXBr3xlkRFRbltOTaXf6b3
E7J+40bZsXOXThugJthbNm/mNl+ck04sZGIpYNT56/aZHI/jFBg7wliP1Or5heuUkx/RLrUQ
UiuLE3yMgiDyZpTaR8bigst1AYlzxtF9GUqF/FBgpM+QQSma1P4zly/pv+7CxYsXJUJZ3OQP
LWSxXFFlJCTA5disOfOkY7tHtAywjMqg5AipMVfmLjkiwcFButgSJYrKjFnz5IVnn5E0ygrG
BDD0dbEHT1BwbqmolH4nTmWXFStWWrir/Wmwj4yAvypE713jxO1aQtqSmHmooElMmiyLBEiA
BEiABEiABEiABEiABEiABEiABEiABEiABEhAE6iqNl3/5IPR8uqQIWrfm1jOxvR54+6sQ7s2
Atdg7390z41l+zattGup+IQ4LsscFTBKuXDPZsdSsuOxu/qio90rM0zemBilxLibSrZs3ytH
0p3Tm9cjpEqdSpo96trNlru643su/MqlOFmw/w32eNLKDrUfTNr0GWSjUorlUQoO7DNkwu3b
tyU8PFygZsocmFWKB5t9X+BCLP576KBcuCGDazhYzSxd9YdERtySK9ci5MKZU7Jj39/6OE1a
f2lUt6a2UkJ6bwPkhdLHz89Pmjdvru4ltRONUtCkVn8t+wCl1kU5U1oh3tGForf1mnT3k58K
mvjSZnoSIAESIAESIAESIAESIAESIAESIAESIAESIAESIAGvCFQoV1Y+Gj1aBrz2Wpz09u7O
Jv40Rc6o/UIQAjNlkh5dH42T3lNEwRkzpJdKNEF98Pft2bNjZXl77lx9bDtvPY6VyMVB9y6d
ZdrMX/Qkf70mj7hIZYm+pBQPuYNySK0a5SRL1sxaIRKSr4BMnzFd2j0Td2+k9Gn85Ebkbbdl
xufkyaOH5eZlC0v7fJAdig8/P4sVT7p06aVKlapyWSlzUqf2lWvXrsqJEyfU8VUpWbKUhITk
F3+135MJUM64UnJ4K9+lS5e0Mmb7po1StnJVKVYoX6xjnI9vgHUOQiqlpFm6ZJlFKeOTWitq
WrZoKamVsgbXAHvTpLRABU1KuyKUhwRIgARIgARIgARIgARIgARIgARIgARIgARIgAT+RQTK
lw2T5Qt+d9ui27csCgpMpL8+6NV4W88MU8qHYdYazF9XFTo77yzOPn+/Ps/Js089qa1KXIU3
h74hTRo3lTnz5mibmaJFi8i2HTt08i6dusqMmdOdZv3htbby7fwtsmzrkftSgNy4Fi77d22V
Cvn85Y0hbePUdefuHVm+bJU0bdbY5nYNbsbwQcih9qYpWKhonHyIgGLm+LETgjISGmDNEh5+
TWfftW+b/mvcv5ljWO4gXXzCLeWCTZelPk2aNlbWM77KQghWNEr9AYsh67+7MB9KYYEKmhR2
QSgOCZAACZAACZAACZAACZAACZAACZAACZAACZAACfzXCBh3Z3ny5Ja6tWulyObbW5M4EzBv
3jySS1nOPPpoJ2UFlFmyZskqdevUV3unWKbhb9y44Syb5MicXt54rI60r1NCvpyzSXYfOec0
navIqKgIpZjZJvnSRcjIxypIvhyZnCaFBcmo0e9LJrX/S44cWeSPP9Zqt2Bol+Wjvvvhu5/4
Ic763ZyfNm2uUuAYd2dOq3AZCUVM2VIlZfvuPbHS7Dt4LNbxnr+PSljJEjbFjcsC7U4YC5pc
OdzLplQ23hSXrGmooElW3KyMBEiABEiABEiABEiABEiABEiABEiABEiABEiABEjAkYC9uzPH
c66OI246V3i4Sp9U8efOnZOrV8O1UmHBggVqv52b6hNh/XtT7dtyz+rk8OEjEqz2fEmTJk0c
cUrkzyFf9H9ElitLmm9/3SJnL12Pk8Y+IkbtsXNw/07xjzwrA1qUl9KjbwAPAAAgAElEQVQF
crhNf/r0GTl9+oT06/eSREf6xdtap2RYQcmQMWEqhYCAAHm5fz/Zu2evfDl+vHR/7FmlKMoo
vXt0l/GTf7Idv9C7t5RQChqk9zbkyZNHXn/rNe3CDJY+d9TH9t3mls2yfw7ieyXAfZ63ssQ3
XcJoxrcWpicBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiCBfzGB5k3i7i+TkOY2qFBA
apYJkekrd8nUpbskIir2/jRQQBw/vF+unTkkvZqUktphZb2qplHDhnLi+DGJSaCXMn+1d039
+g28qssxkY9yOVaoYEHJHxIiTZs2iXW6TevWtmMouWBxhPTehh5dH1N760Tfcz/nzg+dKvTg
3p3eFp3k6aigSXLErIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESCCxCezdsTWxi0zy
8qJVDUf+vuxVPZVyiVTqXsKaFjk338sXpr6GqQRyQfbuuOBVeVAGPNWrp1dpXSa6c1vV9/Bx
d9meB3yCCpoHfAFYPQmQAAmQAAmQAAmQAAmQAAmQAAn8lwg83X/gf6m5bCsJkAAJkEASESgR
ViGJSmaxJJB8BFLNmznFg8FP8gnDmkiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiA
BEjgv0AglWokFTT/hSvNNpIACZAACZAACZAACZDAQ0ygRFhFEYxe1P9SqSHMXdtfS8ye7Xbu
Hh7idlJ0EiABEiABEiABEiABEiCBfy+BCtXq6MalTp1a/V+NbTZs2EAFzb/3erNlJEACJEAC
JEACJEACJPCvIFCtWjXdjpJlK91bYqYUNkYxs2jRIj3Iwaai5q/jdxzjg2D//V8BiI0gARIg
ARIgARIgARIgARJIVgKOYwszxnAcl+DYfIoVK6ZlrFSjnvq/Gp9s2bLl7uFjh5NVcFZGAiRA
AiRAAiRAAiRAAiRAAt4SKBhS0Ja0YsWKFiWNioFyZvHixTalzM3Im5I6lVLSpL6npFFDIbU8
zaKQ0eegoMF/dsoab+VgOhIgARIgARIgARIgARIgARKwJwD7fjO2iPNXjUsQZxQ2gRkDbYqa
0NBQqVyzvqT6+LOPaUHDe4oESIAESIAESIAESIAESCBFE2hYt6GWLyomSqpUqKK/w2rm7t27
ciX8itLBWBQxPj4+WkljlDCOChszgDLnU3SjKRwJkAAJkAAJkAAJkAAJkECKJWC/6Et/t1PW
YLwRy7LfulgsT3AeHX/n7h3JH5JffNOmSZtiG0jBSIAESIAESIAESIAESIAESAAE1m1cJ3Vr
1ZU7qe/YgEAZc+nSJfH18Y1lOeOT2kcraGyuBeysapBZx2sNDdmSAAmQAAmQAAmQAAmQAAmQ
QMIIaOt8FeIoaqzW+lphY7WiMZY05y+cl+DcwZLqriWvr3+Avy6k9+O94yXF+Inj45WeiUmA
BEiABEiABEiABEiABO6fwP322x/m/H5+flpB8/P0n6VL5y5a0eLjqyxmfNRfpZTBoOe3eb/d
GyAZV2Z2K9kcB1Edu3S8/4vCEkiABEiABEiABEiABEiABOJFYObPM+OV3rHfntLym3EGGmU/
5jDHj/Z41GbpbxaM7du/T3zTBKSR7o92lyNHjsjZc2e1iwBbUF/vqn8mmO+XLl6SVi1byU/T
fooXRCYmARKIH4HHezwu0dHROlOVKlWk/yv941dAMqY++s9Ref211201duvRTVq0bJGMEsSv
qse6PSZ37tyRz7/6XLJmzRq/zC5SJ0WZLqpKMdHTpk6T+XPnS+OmjaXXE71SjFwUhARIgAT+
rQTut9+eEvJvmTRJMm3Zokz670qM+i2GPQz+xigTf/w2x6h4fU4dX46IklZqIZkZd/j6+kpM
qhiB5QyCVtDApRn+KgUNfpOeeuapWPE2Kxq7jTlN3jNnz8gv03+RLt26/FtvGbaLBB4KAj9P
/Vnu3rHMPeQLySc1a9dMsXJfvnRZFi1YZJOvXPlyUrxk8RQr789TFFv1Tm3drrWkS5cuUeRM
ijITRbAkLGT7X9tl7569UrhoYalUuVIS1nT/Rf8Xr8/9U2MJJEACyU0A76oXX3rR62pPnzkd
q9+eEvL3rV5Vy29TxlhbY6xp9F/r+bOXL8n0KdOlx+M9dHqMYeDiDGMV3wD/AJ314qWLsmP3
Du0eAKvQbH9TW4/VYAgZEb94yWKdx+S11s0/JEACSURgys9TxN/PYu32zNPPCJSkCJikyJw5
sxQrXkxat20thQoWSiIJLMVGRkbKxB8myvoN6yUqMkoKFyksvZ7spestWrSozJw1Uyb/OFnm
zJ6j3xeO74iej/WUmzduupTxq2++kpw5c7o8nxQnwNVRzvutJynKvF+ZPOXftm2b/Dr/V/n7
778lJjpG8uTJI3Xr15VmzZvpCS9XwZzD38TmaF+nu3vPlWzxib969ao83ftpefvdt6V48ZQ7
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
uXbtmh7M4jp6kjWp7j3zo+fuvrNHj3vZ/JZB5q1btsrQ4UNl957d8uOkHwX3AazUYBEC118V
KlWQ7Nmzy6BBg+TY0WPS98W+0uyRZrJ502bZ9/c+qVCxgq14+2uH81DQLF68WDo92knfO3/+
+af+Ma7fsH6sZwRKoL79+8oXY7/Q911glkB55rlnxN31c3c7GUsgc23cpTXnwGLp0qX6sHDh
wpIvfz4bJ3f5jx07ZjsdmDXQ5bPvrgyeIwES8J6Afb8dyhkozk3Ad7zfHu2i3ASpfryzfrt9
fsd+vuOxu/yeJMbYwll+9RJUFjQ+8ufAV6X6xxbZf1prsQAyZR4b+pb4Q8FkVdCYPoVWvty1
KGOQFsoXtEcPxqwTvHoABqWNan/X7l0tfRIMiqzjGpy3jW1UeXgnu1ox7amNPE8CJJA4BDCR
cjfVXf2cmkkOPKt4PvWza7VqKFi4oGxYt0ErD65cvSLZsmbT+8GgT968RXPJlDmTzJ89XxYv
XCxtO7bVi6pMP7FUmVJSvkJ5mTFthly/fl1y584trXq2kqULl+r+3cFDB6VkqZJyJfyKbhTG
GubdkyFjBl0OJv+NLJBTT7CgH+zC6gITTaZ+pMEHcZAv/Gq4NGvRTNczb/Y8WfjbQt1fhGLI
5EHfuU79OnquBiG+bbHPY+o3ZRQtVlSq1aym24/JfSigjPLpsSce0/VBVrBZtniZHq+1aGPZ
Y9SxTTpxPIOzNqKv7O56ZsqYye35zt06y5xf5siF8xekSfMmEpI/xCbVjm07pGqNqpIxU0bZ
vHGzdtObMTCj3Im+I6EFQ/U53DtQDqDdaDNc7MHyCd4icA4LH8319iRrUt17qN/xvoMsGPs3
bNxQ32OernFSyO7Nfe1KTsxfVK9VXdavXa/HrGnTpZXKVSvrsZO7+8GescsyvHje4nnrMjkJ
kEAiEcC7Cr+lUFjgNx/vEezRYt5h+N71sa4SmClQK1rM7675zXXMjzT6/Yj+g9Utmh4j4OMh
v6nTVdMgo9P6Vdl+atxxYeECCWrZSmcPadvO1gaUe13NsfiZPgPGKapfY2THZpx6bIKV+Qg+
qSwuzlDZI00fcSrP9p3b9WDGCG3yOk3MSBIggUQjAIsM0ynHCi6EAN8AMc9gnqB7K9wjbkbI
X5v/klMnT+lVZrVr1dbpGzZqKNN/ni4Lfl2gJ55NaN+uveQOyq1Noffv3y/NH2kuObPn1HtP
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
DgGvFDRxclkjsOIeK4Fat2zhNMnNmxHyzfjxsnrNH3Lt+nUpG1ZGBimLkaCgXE7TJ3bkhYsX
ZeSYj2T7tu2SM2cO6dCuXawq7OV/c8Q7sm//3/LuqA/0BwOk+7XeqFalslpNllkWLFoinTrc
q3uO8tNbumRJKVyooJbHkaM7bitWrZGvv/tOpk+epPN+O/4H+X7Sj/LL1MmSJzhYdu/ZKy8O
GCiLf52rB55JFdzJiDqxx0qt6tVkx65diut+GTJwoEz8aYpUrlhe9uzbJ38fOCRB6pq8+dpg
2b5zp0ydPlNu3rwpjRo0kMEDXrINlh3ZoNw6ajCFPPv27Zds2bMpBdiLUrVyJd3UV157Xdat
36BXwgXlyiWtWjSXJx7roY+TM3gjx5EjR+XZfi/KQcUiT9688qpS5IWVKa3FnD5zlkydMVMu
X7kixYoWllf69VN/iyRnE9T1iN/zi2tTs1pV2bZzh9M2JavwrIwESIAESIAESIAE4kEAK+6L
Fyms+ltFnea6fTtaNv+1VY4ePaYtzdHPRL/HfhGW04yJFHlT7Tmz5o91clYpQ9IrC/0SJUrE
Ktle/uWrVgnGQavX/qE/OXLkuG/LFlgapQkIkAOHDksppeQyYb/q5+fMmVOyZsmioxw5uuP2
zz9HZZNi2sk6Rtvy1za1iG27dO7QXjJlzCjnzp+XhcpCokfXR5NUkeZORrQJe6yEqL762XNn
Ndda1dVYRI1xgnMHyYULF+TipcuSIV06qV2rpkpzTnbu3iPRt29LgQIF9HjIjEMc2aDc/Pny
yVll1YVy0qZPpxRdVSWvGtMhLFq6TI6fOKG/Z1SL/Yqq+7N82eS3CPFGjiuXr8ivCxbIpYuX
JGOmTFJDtSNXrpxadoxPd+3ZIxGRkZI9W1athMyWLZs+l1zB0zV2lENfc3XPn1HX3FmbHNPz
mARIgARIgARIgATuh8B9KWg8VTxi5Gi5pQYwX439WDIFBsr3EybJoDeHyoRvv07STraR680R
b2sFycypP8kNNfn/llLCuArvDntLTpw8maguzrAir7VSEMz59Vebgua26qz/tmiR9H3+WVei
iDtulSqUV3Ke0u4ZMDD8c8sWyZc3j2zaslUraHBcoXy5JFXOQHB3MpqViPN/XyCj3hmhlV0+
igUUNCtXr5VRbw+XEDUY+fizz+XFV16VRg0byk8TxsvVq+HyXL/+UqVSRWlYv65LPr8vWiwj
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
SQI9nnxaenTtLM3UgIyBBEiABEiABEiABJKCQLr0GbRlwbr166RmjZqyVClMGjVqJBvUMfZC
8VV7gPj6qL++lj1BoABAPP6mVh8ftXAKi6f0sfV7cruvSgouLJMESCDxCMyaN1/CSpfSe4Ey
kAAJkAAJkAAJkEBSEDDjmvMXzkuSuThLCsFZJgmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQ
AAmQAAmQAAn8GwhQQfNvuIpsAwmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQwENF
IHmdvz5UaCgsCZBAfAhM/v67+CRnWhIgARIgARIgARIgARIgARJIcQTaq71CGUiABEiABEiA
BEgguQjQgia5SLMeEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABErASoIKGtwIJ
kAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJJDMBKmiSGTirIwESIAESIAESIAES
IAESIAESIAESIAESIAESIAESIAESIAHfM2fOkAIJkAAJkAAJkAAJkAAJkAAJPLQELly4KL6+
Purzf/bOBN6qqf3jD6VUplQkGcpc5syZxzQoCYVIA/FWMr3I6++NiDRKiBCSZHhDxgZDyiyF
NKhMFQ0yJ0P7v36Pd513n3322Wftc/e599zb7/l8zufes/faa/jutfdZz3rW86zK+qlUCf9v
ZP5uKJXwfUPz1xzb0PzFB/9vsMEG+j/+UkiABEiABEiABEiABEiABEigLAhUbrjTzmVRLssk
ARIgARIgARIgARIgARJYTwl88MEHiba8ZStu6p0oUGZGAiRAAiRAAiRAAiRAAiSQk8DqVStz
psmVgCHOchHieRIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARJImAANNAkDZXYk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkkItA5VwJeJ4ESIAESIAESIAESIAE
SIAECklgzW+/yUcffyIrVqzQYmrXqS2N99hDNqlRo5DFMm8SIAESIAESIAESIAESIAESSIzA
n3/+Kd+t/l5+/W2N5llt441ly5o1ZSOzL2Y2SfOg6dSpk3iep5/vv/8+2zUV8njLli213Tvv
XNg9eXbffXeZNGmS/PLLL/LNN9/IwIEDpWrVqgVnattn7y82T40S9IXu3btHJSmKc6V134qi
sawECZAACZAACZAACVRAAmvWrJFXXntdli5bJn8YhQafZcu+kdffmC44l4+0a9dOlixZouPt
RYsW5ZNFub2mtMbH1GuS7SKldd+SrTVzIwESIAESIAESIAESsAT++usvWWL0j1/W/Jqysfxq
9Jml5hjOZZPQEGc1jVVniy22yHZNUR/fbLPN5JZbbpEFCxaoQoe/119/vVSpUqXM6426TZ48
WX788UepX7++NG/eXDp27ChDhgwpeN0mTpwoG2ywgfTs2dO5rA03DO0eztczIQmQAAmQAAmQ
AAmQAAnkIvDRJ3Pk999/z0iGYx/P+TTjeJwDu+22mzRs2DDOJUWTlnpN+K2gXhPOhUdJgARI
gARIgARIgATKlsCq71bLunXrMiqBY6tWr844bg9UqBn4rbbaSt5++23ZYYcdpG3btgJD05ln
nimtWrUqFSNIVsr/PdGlSxepW7eu9OjRQ1abm/LBBx/IrbfeKt26ddPjxSBHH320vPbaazJi
xAgZMGCAPPPMM3L44YcXQ9VYBxIgARIgARIgARIggQpIYPl/w5qFNe3b5cvDDlf4Y9RrSn6L
qdeUnCFzIAESIAESIAESIAEScCdgw5qFXQFPmmwSy0DTr18/DX3Wq1cv+frrr9VDZerUqYKV
aUE5/vjj1ViCNKtWrZIxY8YIFA2/xMmvUaNG8vTTT8sPP/yg4cGee+65jNVw9957r7z77rvS
oUMH+eijj+Q3E8saRpD27dtruK7q1auniu/cubMsXLhQ1q5dK++8847st99+wSbo91ztQEg0
hA0bN26cGl2mT58uF110kSxdulTDKfjzPemkk+STTz4xIRuWpcqCRw3CjR133HGh5ZfmwcaN
G8tLL70kzz77rFxxxRXqeQRDzTXXXJN3NZo2bSqvvvqq9hu0e/To0bLtttum5Xf11VfrvfIL
jELgesghh6QdT+q+xW1Q0u2IWz7TkwAJkAAJkAAJkEBFJYA4zdkk6ly2a1yO9+3bV3UU6jX/
08+o10T3nKT1Aeo10bx5lgRIgARIgARIgATKGwHMZWeTqHOxDDQoAK725557rmBFEgbxUJqe
f/55NTJYadKkibzwwgtqoNluu+3kqKOOUkMF0gXDZrnkt+uuu8qMGTPUmLLnnnvKTjvtpGHC
Xn75Zdloo4202L333ltOOOEEufTSS/U7PGe++uor3WgUBpNff/01tb8MjC733XefDB8+XLbe
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
wQikGWg6deoknufp5/vvvy9YocWYccuWLbXdhXZ93n333WXSpEnyyy+/yDfffCMDBw6UqlWr
FhyJbZ+9v5UrF3d0u9K6HwUHX2QFHHLIITJy5EjBBpfoCzvuuGPeNdxyyy2lT58+Mnv2bO3P
8+bNk+uvv16qV6+eV5477LCDDB8+XObPn6/5ffzxx9KrVy+pVKlSXvnxIhIgARIgARIggfWX
QLt27WTJkiU63l60aNF6BaK0xtFlpdeU1c0sZn3q1VdfTenxGOMnKch7woQJiWXZunVrmTNn
jvz+++9a5zZt2iSWNzMiARIgARIgARIggfJIINSDpmbNmrLFFlsUXXvGjBkj7733XmS9Ntts
M7nllltkwYIFsmbNGv2LSeMqVapEXlcaJ1G3yZMny48//ij169eX5s2bS8eOHWXIkCEFL37i
xImywQYbSM+ePXOWtfnmm8uff/4pBxxwgKZdvHixwHhHKRsCLv3epWa1atWSoUOHCjblHTx4
sMslkWlsXzrzzDOlTp06csEFF8jFF18sY8eOjbwu20kYjpo2bSpdunSRrbbaSq6++mq5+eab
ZcSIEdku4XESIAESIAESIAESiCSw2267ScOGDSPTlMVJl/Ed9ZqyuDPZyyxmferoo49WXe/S
Sy/N3oAiOINFguj7L7zwgmyyySZa5ySNP0XQRFaBBEiABEiABEiABGITCDXQxM6lSC7ApO7b
b78tWInftm1bgaEJk8etWrUqFSNILgyYeK5bt6706NFDVq9erRPlt956q3Tr1k2PF4scc8wx
6mGB+sGjCF4WMCxRyjeBVatWid+DpqSt6du3rxpQPv30U/n111/ltddek7vuukuwKg4Gm7iC
PgYDzbRp09SDBkrwqFGj9PmAcYlCAiRAAiRAAiRAAusLAeo15ftOVyR9CsafpLxcsEgRhhl4
5cCDhkICJEACJEACJEACJCAS20Cz5557qisyXLz79++vYQPwQagjvxx//PFqLIEXCyaGsVIG
ikZQXNL99ttvWubZZ58tTZo0SXPf9nv63HvvvfLuu+9Khw4d5KOPPhJcByND+/btpXv37mmh
lzp37iwLFy6UtWvXyjvvvCP77bdfsGr6PVf9YMBA3caNG6dGl+nTp8tFF10kS5cu1XAK/nxP
Oukk+eSTT2TZsmWpsjApjZVExx13XGj5ZXHwhBNOkClTpsi6desE/2MC/uuvv867KhdeeKF8
+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
6lPFd19YIxIgARIgARIgARIo7wTSDDSjR4/WEEP4lMfV/XDjxmo5TJAjbBjCN61du1b3vqlW
rVp5v1clqv/EiRNT9xb3l94zJcIZejFCfCGUQuPGjXUTTzIOxcSDJEACJEACJEACJFBwAtjX
D/v81a1bV/cWKW9Cvab47hj1qeK7J6wRCZAACZAACZAACVQEAmkhzipCg9gGEiABEiABEiAB
EiABEiCB4iZQ6BBnxd161o4ESIAESIAESIAESIAESKAiEChYiLOKAIdtIAESIAESIAESIAES
IAESIAESIAESIAESIAESIAESIAESIIFiJRC6B02xVpb1IgESIAESIAESIAESIAESIAESIAES
IAESIAESIAESIAESIIGKQIAGmopwF9kGEiABEiABEiABEiABEiABEiABEiABEiABEiABEiAB
EiCBckUgzUDTqVMn8TxPP99//325akhJK9uyZUtt984771zSrCKv33333WXSpEnyyy+/yDff
fCMDBw6UqlWrRl7Dk/EJHHLIITJy5Ej54Ycf9L7uuOOO8TP57xVbbrml9OnTR2bPnq33bd68
eXL99ddL9erV88pzhx12kOHDh8v8+fM1v48//lh69eollSpVysjP9kv7XFauXDkjTTEcePXV
V2XChAnFUJXYdbj66qvlt99+i3VdVHtxzt4v/KWUHoHSeo8n2SL8JqCftGvXLslsmVcWAq7j
HNd0WYoJPYw8u3fvHnoOB9F/p0yZIitXrtTP448/Ltttt13W9OX9RNLjIdffS9d0rnwPOugg
eeONN/T3HM8yftPDxDVd2LXBY//617/k559/Dh4umu9l/V674IILZM6cOUXDgxUhARIoHQKl
NQ5M+verdOiwFBIgARIgARIggWImEOpBU7NmTdliiy2Krt5jxoyR9957L7Jem222mdxyyy2y
YMECWbNmjf7FZHqVKlUiryuNk6jb5MmT5ccff5T69etL8+bNpWPHjjJkyJDSKL7oy3C5vy6N
qFWrlgwdOlSw+ezgwYNdLolM07NnTz1/5plnSp06dQSK/8UXXyxjx46NvC7bSRiOmjZtKl26
dJGtttpKYCC4+eabZcSIERmXTJw4UTbYYAOxdchI4Duw+eaby59//ikHHHCAHl28eLFgQjBf
Sep+5Ft+eb3u6KOP1nt26aWXlkkTeN/KBHu5LbSs+ktZlWtvlOs4xzWdawfYcMPQYZdsvfXW
+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
AiRAAiRAAqVNYPWqlakiF3/5ZWTxDcy2JFZq1vo7wsyKlSsk1IMG3ibl0UCDEF7Lli3TlfLY
ewOeKpTCEED4KUywYmU4wndQCkMA/RiTEDDOUEigIhDA5tlr165NebdVhDaxDYUjUKj+4jrO
cU3nSiDbXm2u1zNddgKuv5eu6bKXxDMkQAIkQAIkQAIkQAIkQAIkQAIkkByBNAPN6NGjNfQS
PuXR6wFhHbBXBQwHCCGCsFaYCMTeN4gHTkmGAEJ8IXQZYuhjjwR6dCTDNSyXiRMnpp5JPJdk
HUaJx8oTAUy447cmn323ylM7WddkCCTdX1zHOa7p4rQSeSJ8HaUwBFx/L13TFaaWzJUESIAE
SIAESIAESIAESIAESIAE0gmkhTgjHBIgARIgARIgARIgARIgARIoNAGGOCs0YeZPAiRAAiRA
AiRAAiRAAiRQaAIFC3FW6IozfxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARJY
nwmE7kGzPgNh20mABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEig0ARooCk0YeZP
AiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAgECZWqgefXVV8XzvNSnItydTp06
Sffu3Z2acv/998tjjz2WM61rupwZmQRR9fv8889T92Lt2rUyd+5c6d+/v2y66aahWbdo0ULT
L1++XDbcMLMrYRNwnG/evHna9b/99psMHDgwdWzlypWa7s8//5Rvv/1WJkyYINgYOkwOOeQQ
eeONN+TXX3+VFStWyD333CObb755Kmm7du00L+RZqVKl1PEzzjhDj//8889h2WY9VrVqVbn3
3nvl+++/l48//liOOuqorGnjnEA7Ro4cKT/88IPWa8cddwy9fPfdd5dJkybJL7/8opuqgxvq
lK/UqlVLyzzmmGMis3BNF5lJAidbtmypfHbeeecEcmMWJEACJEACJEACJBCPQEXUV+IRYGoS
KE4C1atXl1tuuUW++OILgX45bdo02WefffKurKt+5lqAS/122GEHGT58uMyfP1/1PeibvXr1
StNjXcuz6ZJuR9zyo9L/61//iq2PR+VXyHOtW7eWOXPmyO+//676aJs2bWIXt+WWW0qfPn1k
9uzZen/nzZsn119/vaBv+KUQ/cC1sqeddpq8++678tNPP8myZctk/Pjx0rBhw4zLXfpzxkUR
B+LmV7lyZfnwww/zvhcRVeEpEiABEigKApmz6qVYraOPPlo22GADufTSS0ux1MIXFWasCJa6
//77y7nnnqs/0FHimi4qj+C5qPo999xzek9g9Lj88svloosuEhwLE0yeY7K/Tp06cvDBB4cl
0WMXXnhh1nP2BAxVMDwgHwxgXnnlFTnrrLPSrttpp53UWIGBa926deXII48U9KFx48Zl5I+8
/MaUtm3b5jUYBIPtt99eBylXXnmlPP7447LJJptklBfnAIwfQ4cOFWyOO3jw4KyXbrbZZjJ5
8mT58ccfpX79+mro6tixowwZMiTrNblOrFq1SsvGJ6ofuKbLVR7PkwAJkAAJkAAJkEB5JlBR
9ZXyfE9YdxKAvopFfccff7yceuqpAr0Jehv063zEVT9zzdu1fliw17RpU+nSpYtstdVWcvXV
V8vNN98sI0aMcC0qLV3S7cirEhXgIhgDxowZIy+88ILq/vZ+xm1az5499ZIzzzxT50wuuOAC
ufjii2Xs2LFpWSXdD1zr2axZM53fePHFF2XbbbfVvrjddtvpHESNGjVS2bj2Z9dy88kPc4aY
l6GQAAmQQEUm4JnGlemnd+/eZlGCWZZQxvUoSflGefNee+01z6yM8IyXhvfMM894xgska5uM
QcKbOnVq1vO2Lq7pctXdpX7Gg8abOHFiWp1uvPFGvTdNmjTJqKtZreQNGzbMM5P53k033ZRx
3nh8eGaViGc8Y7x69eqlzpsVTp7xBEl9N94unjGypF1vBime8VrxzIAoddwMVD1jEPI23njj
1DEz2NH6HXTQQXrMeNDodzPQ8MxqJD1mjDWeMXJ4ZjWI3ptcrPznzcDfO/vss1PXGK+iUBZx
8vSntX3feNBk1MsMQpTdNttskzp32WWXeX/88YdnDFQZ6V3rYAZf3l9//eUZA1tkHq7pXMvN
Jx3qCDEeNJF1zSdvXlO2733yJ3/2AfYB9oH1uw+YhSqe/fxf3xu8qI8/LfoNZPqM6To2MBNJ
pTJGqAj6Cp+59fuZq0j3HzrfmjVrPOgrSbcrSj9zLcu1fldccYVXrVq1tDaYhXSqqxljS4na
lkQ7XNvrms540MTWx13zTjIddHNIq1atSnQPwur073//W/M2BptU3oXsB2F1sMceeOABnScx
BpNUXYynkNbv2GOPTR1z7c9RZfnPxc0P98N4+HiYC4Ggjq5lMR1/99gH2AdKow+sXrXSs58P
ZhodJ+LjT4u6QZavWO4VzIMG1neEBEBoKLhKjh49Wq3y+UqjRo3k6aefVo8NuIfCqyPM9dIl
Xb9+/bRecB/++uuvxQzuxBhLZLfddsureo0bN5aXXnpJnn32WTE/ruoVg1Uv11xzTWh+tWvX
1pU+wZUTwcSu6YLXBb/HrZ//erjhQrCSwi9wH8cKBqyuMIYpgTdNmMDVfMGCBboqKI7AKwZe
PP58TzjhBHW/hQu7lddff13/PfHEE9Oyf+qpp9QNGaszcN1XX32lruNx5b333lNPnpo1awpW
mGBVkj+fKM+huGUF05900knyySef6PNjBbyxoue4444LJnf+vmTJEg0BgBU8UeKaLiqPuOc6
d+4sCxcuFITYe+edd2S//fYLzQKr5d5++219duHtgxVOWHXmF6xAQ19BH4LXFdLOnDlTjDEv
I0+X90bGRTxAAiRAAiRAAiRQlAR23XVXQehejBeuvfZa+fTTTzW0DMbpfsHvP1bh59IvXBvp
Mp6oUqWKdOvWTcc50GkwjnnyyScFdQ6Kqz7lUm4wb34ngfJMAOGrob9DXylGca0fwldDR/EL
5icQ6cAscCyKpp1yyika6gv6GSJdwFPJzCVpJAsrVu/yVxghy5EOIdeCgqgQX375pepq0Of3
3HPPYBJxfa+5viczCgg5gHagzosXL9azZtGtfscnLMQZIoUg7Bbu4aJFi9T7ySwmDcn5f4eQ
V1CS7AeY/3j55Zf1XvnrgugjxvCX5mVmFn5q2/xiv+OcFdf+HGxXtu9x88PcGjx9EIGEQgIk
QAIVlUCagQY/jHghY1K6JIJYmzCgzJo1S40oe++9t4am6tq1a17ZQmGZMWOGDgpQR4S6Qtgn
/PBstNFGqTxd0+ECuEHDBRoDC+xvgf1Pnn/+eZ38jisnn3yyxia1P6xQtmCwwR4tYWJWI2i9
rXEhLA2OuabLdr09Hrd+/vzMagX9iti+fsGkN37g0QYMjnGPg0Ycmx57uMBAExVSKy1z8wX7
30D23Xdf/Yv9ZNCXMJDzC/ZlweAhqNS+9dZbWt6BBx4oCG/2n//8J+061y+4p9gXB0o+QovB
PRnxWcEURg64LZdkT5ioeqBNdnBo09nvwfZG5RN2Dvv4oH/l6u8u6ZJ6b2AS5b777tM4zFtv
vbXGlA4zchpvLnU3h4EGfQ6h7GDIwfMb7GN4zi655BI10jRo0EAnQh555JG0dHHeG2EseYwE
SIAESIAESKA4CZgV5FoxLGzB/ntY/GPHbbvssouO5XLpF64tcx1PoC4IYYxFKVgAhP9htJky
ZUramNJVn3It17UdTEcChSSQlN4AHRGLuqCfwciJMT7mBjCpXwxSkvphIh3vpaAeWBbt2mOP
PdSAjIWyJqqD4J2KPVVKIth7BOGqoPthXgd7yyLEll+ndn2vub4nXesL/RMGDvw+QIwHjX4P
C3F22223yaBBg8REFNGFyJhXwtzEYYcdFlocjCVYOIr5g4cfflj3042SfPsB5vMwzwV9+tZb
b9UitthiCy0Ti2AfeuihVLGoO+Z0sDcQ9h2GvvzPf/5Tf48wD2ClJP05rI1x8oMxByyw2IJC
AiRAAhWdQMo90AyYzPvc84yBpkQug+bHSfM54IADnPLJFTIAoanMSpK00FZGwfLMj7lnNr1P
leGaznjQaP3Miz51rfGe0WMImWVueKzPeeed561bt84zRgqtT/fu3SOvHzBggLpk5yrHNV2u
fFzr5w9xZhRFz0x8e8Y4oeHagmW8+eabnvFm0eNmIKzszH41aekQ4mzUqFHqno2wZsaooedd
QpyZgZvmietxDe43xIYt89cHodBsHW2IM7jBIiSaGTh5CKFmlF8P9z1uiLNgu+HmPH36dM8Y
EjwzoMzgEkyf63uU6/nq1as9M5BS92f0f8sCfe32228vUdmnn3668txrr70i83FJl9R7wyhV
nllNmlYfcIb4Q5yBifEq8oxxKZXWeDdpOjPoTR0zK6D0mPH2Sh0zAzw9ZjZiTB1zfW/kupc8
H++9SV7kxT7APsA+sH73gUKGODOTex7GtWZRRtZxzqOPPuohXK8/dG6YfmH7aVL6Sli/NxN6
Oj459NBDU/V11ac4jlm/n6Ow/lTMx5LSGxBiGzogwloj9DN0PxO9wzOL+dKe6XxYROlnrvnl
W78jjjhC5xXuuOOOrO8u1zok0Q6z0FL1ULMILlUfGwId7yhbF+hd0PH9dUO4d4jxoEkdR4gz
iD98FnRqyPnnnx9bP3N9T7oys+mge0KyhQSHLokwdGYxodN9wryIFRP5IU2PDatbEv0Acy+o
I/Rk/N4Zg6ZnFiln1Bf3AvMlVvAcGcNXWrp8+3NY23DMNT/8Ji9dutQzxhmtj73fDHHG371s
fYvH2TfKqg8kHuIMYYCwOsAYVkyb8pfPPvtMvRqwqgAbm2O1WkkEKw2wIsYf2gqhCBBqCqvO
rLims+nhZWEFYQ8Q9ixbSKWo+psfPA3zhRX9cIuFZwJcerMJVjN899132U6njrumy5VRnPrB
68f8OOuqHYSow7WnnXZaWhEIvYYwUfCcgcDlGatFsoU5w6omhBzLFVLLX4gZmIY2C3ULk7Dj
KLNHjx66oqok7rB4JhCSzhil1HOmQ4cO6hGEVVuFFrQLXiHwIMIHgvqEtTdOXcwgTJMbhSby
Mpd0Sb03sJLG/0yiYvCcCwr6HtLB680KVsBCgiHn0I8QJs6KDRfnD4cW970RrA+/kwAJkAAJ
kAAJFCcBrMrOJvBkgYd/Lv0i2/XB467jCYzrEGYZkQbglY0xnVn8o9lhBbMVV33Ktdxgffmd
BMqCQFJ6A54jeJ5Bv4QeimgH8JqHdz1W3Je15FM/6NjwcsCzHxZFoCzahLkWhGP06+ZBfS2f
evnzgE4NndNGzkB+ru811/dkPnWMugYembjH8CxyEejcNWrU0LkxzBVhjiWbJNUPEHHCLOqU
J554QswiVg3bjig0fkFIdaSDpw28bBBZBr9JiJJi9gJOJc2nP2drH4675gePJswrwlOJQgIk
QAIVnUBB9qBB3FSElTIb3um+LMYTQCe38zF+YFIaPxZmRYX+WPg/2AfF7mvjms7eULjSIiyZ
X1BPGEXiCvLBDy3ikiLGNeKswi0UP2wIpRYU1wl213TB/IPf49QPoelQLgYQcHWFgQMhpPwC
Iw5+VF955ZXUYRhrwAAuy2Fyzz33qAEHrtEugnsOsQYC4/mi7rf+gYLNB2XCYBcUGM1gnMk3
vBnyg5sv+i4YwFB18cUXi/EU0nphBjSLnQAAIABJREFUMAnDTaEEBkP0H4RYAzc8A1Zxx7mS
CO4xJJehxzVdSeqCa9GfMBjFM+iX4Hecg8E3aODEfcbgzfYbmweO+Q05tr3W2BX3vVHSdvJ6
EiABEiABEiCB0iOAidswsb//xvNdJx6z6Rdh14YdizOeQJgWTDphrwJMJmOsZRecYTxkxUWf
ilNuWL15jATKKwHofpic9+sKWJSF53n33Xcv82bFrR+MTVhcCF0XOjOMt0HBHIP/XYX2F1ow
NxLUx4Lf49YBcxOYi/EL8rQL6OK811zek3Hr55Ie+9JCoKe7CtoMY4jZ6F4NJsE5FuTj0g9c
y0O6Bx54QOd1PvroI93LNyg33HCD7tGKhdXos5jfwL462MMYv49W4vbnYDnB7y75IfwdDLBX
XXVV2kKKYF78TgIkQAIVhUBBDDSAM3HiRDVUYIIZP0AwpGBjr7iCSXm8wE24r1T8Tygy9mO9
O1zT2fIxqY8fQL8gDvTy5cvjVlHTY7CEfWewigIKF+LrwiAFj5qgQFnEZLSd/A6et99d02W7
3n88Tv1wHQYQN910kxphRo4cmcbKespggGEHiViRgbiq2TavhzcOfvARb9tFEO8WgtWFENxf
bLy3/fbbp12O1SjYZwTeVEHBxDw42/jjwfMu3+FxgY0RkYdxr9WVJyeeeKKY0GDqSQPDU7BO
Lvm6pIFXFwxEfrHfw9rrkqdN4zqodE0Xp+ywtFCmEIcXz6Bfgt9xDu8DxBv2Cwae6AdxDVdx
3xthdecxEiABEiABEiCB4iTgX6Thr6H9/cekFIwift0C/we9x3O1Ls54AmPJBx98UB577LHU
uKV+/fqhReTSp+KUG1oAD5JAOSUQFckg1wK00mhy3PphH05EMcGeJ9n0PHid+N9V8HYotGBu
JKiPBb+jDtDlgnMb2RZuYg4meA55WmNH3PdarvdkIRghQggkVzSKsLJhLIHY+Q5/Gpd+EJZn
2DHs6YPfGvQbE84/dF4Ke+0EDX34jmcI11iJ25/D6uM/5pIf+gR+n+FtZOec7AJhLMCF1xyF
BEiABCoSgYIZaCwkrGzHahATR1Unsu3KdT9EuwrD79bvPw9vFLiRBn/0gzfCNZ29DgYkK9iI
DqvvP/zww2C2eX1fsGCBGiTCFC6zx49ugpdro3fXdPlUMKp+/vyuv/56adiwYcqwgklwGChG
jx6dNkDEIMvsq5M1zBnyNHuoSNeuXXPeR6Q1ewGpCy4GXFYmT54sBx54oBqCrJj4rPovQuAV
QhD2wm+0Q3gt9GcYbuDuDQNSSUMCZqs3DH5YveL3OsJmihi0oq+XROB9hmcTHl9R4pouKg/X
cwhDFwxRFrbJIlb/4Nk1e9Cksrb9APckrsR9b8TNn+lJgARIgARIgASKjwAmelz0C1vzpPQV
LCrBGMwvuTyyo/QpjmOKr2+xRoUngOcXBgq/sQB6EyZ0c+k3ha+d6CJH1/r17dtXF/5B/0Xk
hmISzI1A//Z79/nnUGxdoS/D8OK/H9Ajs4k/D3hKYFElPDms5PNei3pPZqtHvsex+BRGqVzv
7rD8sdATAu8fvyTdDwYOHKjzb1hwAK8d5B/Urc2eTQIjjV9wPzDv5vcOitOfw9ocPOaSH+bC
gosn8JsNAfcdd9wxmC2/kwAJkEC5JpBmoMEPI6zTwR+LuC3Eyo+77rpLmjRpoqsjsDoAq8Uw
wY7J5aAg7jJWuCF0lH/S1aa77rrrNA94csBYAMUGA4W7775bvXPipkN6tHPw4ME6cIJ3D+Jz
wgqPGJ1x5fLLL1evGXjMwHgA4wsGWBgkhnkNIRwYQi/ZSeVs5bmmy3a9PR63fv78sAfIG2+8
oSsuYJw58sgj1SsqGNMbxhkMVBD+LJvAqFOvXr0MzyWbHgM/DCIweIAhB+HV/O7dQ4YMUQPf
0KFDtQ5Y1dGvXz/1XMpnYj5bPaOOv//++zogwGoZGGtwz62XT9R1+Zy7//77NaYyjJsY7KIs
uPjCaydbyA7XcnAf0b+yrSy1+bikS+q9gVWsYIq47AhjhjCJUFaCMmzYMKlTp44+vygb3mqI
S4tBfT6GK9f3S7Ae/E4CJEACJEACJFB+CWAREkIhQZ+I0i9sC5PSV+CBfvbZZ2tYMywO+8c/
/qHe2kFx1ac4jgmS4/diJoBxO/RwTL6WRKAPIeID/kIvgw4JXXHx4sWh+ndS5do658rPtX4I
I4VnuFu3bhoavrQlVzugY2Gx4I033qj6KCbIEfI7KAjtjnmePn36aEhuGAIwt5NNYDyAYQBz
A5iH+eqrr9L2ZXF9r7m+J13vW7b6Bo9j3gg6KfYKQoQQRHfAwly0GWHfreB9jz2RcA7h67Cf
Ldo+e/ZsncOwErcf5LpvrVu31rkUhAhDFBDMoyGU/dixY9OMaJhngP595ZVXqv6NaB133nmn
LpR96KGHUvVz7c9BTtm+J51ftnJ4nARIgATKGwHsuq4fE/fTjJc8z/zgpI7Zc3H+mtUTXvfu
3T0z8PLMSgbP/OB6RvnxTLikrPmee+65nglh5ZmVCFoHM/GaltYYO7wnn3zSM+6kmqeZkPfM
D6BnjCGx05lJfc+EQvJM2CpvyZIlnvGS8IwV3zNKWtb6RbXf/Jh5ZuJc62QGivoxrqSeWa2Q
Nb9x48Z5ZoI863lbnmu6JOqH+248VjLqZEKa6T0xRhPPTIp7ZvDlmUFIRrqePXtqOmNI0HPG
iOAZr5m0dMZFVdOYgUnquNnPRY8hX7P6xnvmmWc8E5M1I3/kaQZ7nlGQPWMQ0r5w7733euBv
228MdpqXWVGRcT3uu9nLJuN4FLvgObOKQ+uOsr/44guvffv2eeVnjKBaz6D4uaBs9Elj2NQ+
BTZmkJzR54N1zPXdxDtX1rivUWld0yX13kBdzD47+h5Yu3atPk9mcK6IjCE1ra5mQ0M9j2fX
rGj1HnnkEc/ESE5LY4yKet7fxsMPP1zzM6u20o67vl+iePHc378j5EAO7APsA+wD7AMufcB4
znr28399b/CiPv60yBsyfcZ0/S3HOClYnvFSV33GTCZmnPOnbdSokWcWZ+XUL+w1SegrZpGR
Z/YF8DD+NQuRPDNp5plJRm1Ts2bNUvWNo09xHMNnLvgMFOt3M7GsfR3zBCWt49577+1NmjRJ
9Tt88CyZSf/QfF3KddXPUG+X/FzqZzxUlEeY+N8HcVgl3Q6zz65nvJJUPzOGBc94Y2h1jz76
6DTWxsik+jH0dLyXoddB/HqX2eNW75UxTHuoJ3Q1s2+sh3dYsI0u77U470nX+4Z00D0hUfoy
5gWMsUqZoB3GOOj9+9//TtPVMS/y8MMPq34Lfd6EMPdM6H7PGOfT2hu3H0T1P2MM0t80s9gz
rQzMrxljjc6p+Vmfd955+luM3yMTJcQz0UI8szg643649OfgPYz6nk9+6HMQ9MmovHmOv4ns
A+wDpd0HVq9a6dnPBzONjhPx8adFPSHLVyz3sFM4Xm4qsPZjBTr2e8FK/Yoq8LrAioLghuJJ
tBerH+A1hJUHUYJVc/D6gItrlBu2a7qosvznXOvnmh/TlT8CWAGFVTX77ruvumZnE9d068t7
IxsnHicBEiABEiABEohPAKFNrUx49n8hbcNyatOqZeowxsZGj5EZb86Qpoc1VQ99hIClkAAJ
kAAJFJ4Awnsj5DS8aRBBg0ICJEACJEAC6zsBY3RJIVhswkdGSQPf3uo1a/0dyWzFyhWSFuLM
rC4XszJC3YMp+ROImvS2uUIphdsownlFiWu6qDyC51zqF7yG3ysGAePFJpdccol+ovqBazpQ
4XujYvQNtoIESIAESIAESIAESIAESIAESIAESIAESIAESKB0Cfxvl21TLiZasU9ISfe3KN0m
FFdp4OcqiFfqIq7pXPKKUz+X/JimfBEw7s66f08ucU2HfPjeyEWT50mABEiABEiABEiABEiA
BEiABEiABEiABEiABEggk0CagebEE0/MTFEBj5jYp4IPhQRIoOQE1pf3RslJMQcSIAESIAES
IAESIAESIAESKL8EzP5BYvZfKb8NYM0LQgChR3OJ2TdWzjnnnFzJeJ4ESIAE1ksCaQaa9ZIA
G00CJEACJEACJEACJEACJEACJEACJEACJEACJBCbAI12sZHxAhIgARJII5C2Bw3ZkAAJkAAJ
kAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJFJ4ADTSFZ8wSSIAESIAESIAESIAESIAE
SIAESIAESIAESIAESIAESIAESCCNQEEMNLvvvrsgBmW7du3KNe5XX31V22E/2Rrjmi7b9TxO
AiRAAiRAAiRAAiRAAiSwfhGADjFhwoT1q9FsLQmUMoFDDjlERo4cKT/88IPq9TvuuGOJanD8
8cfLa6+9JqtXr5alS5fKuHHjZP/990/liTkQlLNy5UqpVKlS6vgZZ5yhx3/++efUsSuuuCJt
vmHVqlUyY8YMOe200/Kqo2t+n3/+earctWvXyty5c6V///6y6aabppUbzM8/N3L11VdnbUdY
uqS5jB49Oo2dv0z7P+5VHME9w7V//vmnfPvtt/p+Pvzww9Oy6NGjh6YJHkei++67T+9vvXr1
9JpvvvlG0zZv3jwtj99++00GDhyYUbUWLVpo+uXLl8uGG6ZP1cXhZ+sYxmSTTTbJKLdLly7y
wQcfyK+//iqLFy+WW265RWrUqJGRLupAIe5HVHn5nIt7P/Ipo6TXxH1fVa5cWT788EPtN23a
tMm7eMzhTpo0SX755Rftt+ifVatWTcvP8gvrV//4xz/yKtu1va7pXCqx5ZZbSp8+fWT27Nna
3nnz5sn1118v1atXT7vcNZ1Lmf40uZ43l/duIZ63HXbYQYYPHy7z589XLh9//LH06tUr7XfM
tsOlv7jmVyjOce9LMaQviIGmGBqWRB2OPvpo3QDv0ksvjczONV1kJjxJAiRAAiRAAiRAAiRA
AiRAAiRAAiTgRGDzzTfXyfQDDjhA02NyuVOnTqlra9WqJUOHDtXJ58GDBzvlGZUIhpOXX35Z
nn/+edl5553VMINJ/eeeey7jMkxuHnXUUanjbdu2TTPO+C9o0KCBzjs0btxYJw2feOIJOf/8
8zPydD3gkh/qjDLB8PLLL5eLLrootB0o0+aH9PaDSfyguKRLigvus78+MDQ9+OCDaccmT54c
rGLO74899phOTB988MF6L1555RU566yzUtfdfffdatC69dZb0/LaY4895LzzzpMBAwao4c4v
F154Yc5ykaBly5ZqSKxTp46WHyYu/O64444Uh7/++ksNR5aV30CI/NEOPBu4n7Vr19ZJ/hNP
PFE6dOgQVnzWY4W6H1kLLMEJ1/tRgiLyujSf9xXmKrfffvu8yrMXbbbZZoJn5ccff5T69eur
QbFjx44yZMiQtHzr1q2b9nyhT910002a5sUXX4xdB9f2uqZzrUDPnj016ZlnnqnP2gUXXCAX
X3yxjB07Ni0L13Su5SJdnOct6n1aiOcNCxmaNm0qMCBttdVWAiP8zTffLCNGjEhromt/cc2v
EJzj3JNiS+uZCiX6MdY0Y1T1PGPlTzTfpOvpml/v3r21PbnSu6bLlQ/PJ9sfyZM82QfYB9gH
2AfYB9gH2AeKqw+YCVPPfv6v7w1e1MefFvcRMn3GdB2bm0mFnGN03vviuve8H7wfSfUBM5ns
Ga8Tz3gbeMZgou8GM8EY+k6wurrxoAk971KnN9980zOrzDOuN6vHU8cwBwJ5/PHHPbMaWY+b
SXXPTH5648eP98wEeSqtWSmtaf11MivivWXLlnnvvvtuRjm56uian/Gg8SZOnJiW/4033qh1
adKkSWT9wuoQVm4wXaG5GK8Uz6wqj83MX09jbPOMR1RaHmaS0fv+++8943mSOm4MKcqqdevW
qWPG28b7+uuvPbMKP3XMeBx4ZnW+Z4yInvGqSR1HXY2HQkZdv/jiC2/YsGHap83Ed9r5OPz8
bULZo0aNyigLaYyB0Vu3bp1nJmTTzpsV7V6zZs1Crwne12zfk7gf2fLO93jc+5FvOUlc5/K+
wnvjp59+8i677DLtj3gf5lO2MfJoH91mm21S1yPPP/74wzNGmax5GgONh3fJG2+8kTWNa31c
2ou8XNO5lmvT/fvf/1aGxmAT2RbXdGHluz5vLu/TYP5JPG8ot1q1amntNwscPGPk9YyRLHXc
tb+45hdsC76XhHNYfqVxbPWqlZ79fDDT6DgRH39a1A2yfMVyb0Os/DD/q2su3HSnT5+uqydg
9V+0aJHst99+Jv3fUqVKFenWrZu888476vIEF9wnn3xSdt1111SabP/ASm0ecDnnnHPSkjRq
1EiefvppXSmAPLGSo2HDhtmySeR4SdqRSAVyZOJSvzj3LUdxPE0CJEACJEACJEACJEAC5Z4A
VoIjJEPnzp0z2jJt2rSM1ZHQQxDCJpcesueee6q+hNXNCAOEMB/4IESGX7DyEGHLzGSemAlW
QQiKbbfdNqMuyMt+okKcITzP22+/LWvWrFG9a8yYMbqq0S9Y4YhwOagb2o60M2fOlIMOOiij
XB4ggYpG4IQTTpApU6aImWSW/2fvTMBtqt4//halkkqkkUIhpEFKhIp+JZSiEQ3SoCRKQtRD
SoMxSYpS0UBKoSQZc5WZpJC5QS4pmqfz39/3/9vnt88+e++z9rnn3HvOvd/3ec5z79577TV8
1t7nrLXe9b4v/v/iiy/EWiRPWzOPPPJIdX3lFvcOY1x/66231BoBu8xRt23btqnrmEQCiyCs
w2C3eirEND+4+YGUL18+FcX65pEpXHwr6LqAdTL8tuA71hZLuaUWB9hdDjd255xzjljKGunZ
s6e6CXMKfnvWr1+vu9KD5NRTT1VLCOQLF3rO8pz3JcvPq2xYaf3555/y2muvxVz+4YcfkrKI
8CrD65z9u+W8Bpdx+F2EKyunpHq90LQ/Ev3+wi0T2FmKjLgmwuXY22+/HXc+1SfwvWMpgtVC
MC9y0UUXyeeff67jFlvwHMJ9WuPGjX2zhichuLF6+eWXfdNkywU8eyZims4rr4J637zq4nUO
bu0whnQKfk/hbtF224hrps+LaX5edckLZ6/8suVc1MUZBvLWbgk1D+7QoYOa12KQjx8ZW/By
wowXk57SpUvr/1AmYFDk9k/oBABzMfiyu/7663ViYQsUO/CxCnNUTHwqV66sZnUwG95vv/3S
xjDZdqStQq6Mw9TPpN/yq94shwRIgARIgARIgARIgAQKigAULdZOToEff6dg8xfmGthYZstJ
J50kWKgJMw/p3bu33o75Ej6HHXZYdA6ExRpsNFu5cqVuNqtVq5b6c8e8yi22qxkswvkJ5mXv
v/++KmiwYApXSdg4B9dK7tgEmDfdfffduqAHlxjY9DZ+/Pi4dH5l8TwJ5BcBW9m5ZMmSpIuE
GyZbwYl1hiuvvFKPn3nmGYGbKfxvWQwknX/QjUuXLlX3P1hMTySffPKJvoN16tQRuDczXbDF
oii+Q6CkSYWY5mftxtfiLCuOVBTrm0emcPGtoOsC3JlBTjvttJgrcAuHOAxwawa3RXimnWtd
zsTPP/+8Kmjc393ONPj+hjuyefPmyaxZs/Q3xEtZliw/r/bCjRqUR26lklfagjiXrvXCRP1h
8vsLJRbWLRFbyikYW+D7AYq9dArKbdiwoTzwwAN5Lgac4R7SKfZx0GZ8rO9ig4hlGehZh1R8
33tmnOBkmHIPOOAAVaDDzdYrr7wiubm5nrmbpvO8+b8nM/1986o7njGMk53PR7LPC/L3ys9Z
bio4e7UjW85FFTRQsmAQAPCYrMCaBhOCqlWrRtuCSQKsa6C4gbYYP97YRQY/hc7AeM7GI0AZ
/L7Cb6dbM9+/f3/1w4oXGztKsBPt9ttvV+1cmzZt0sYwmXakrTIeGYepn0m/eRTBUyRAAiRA
AiRAAiRAAiRQ6AhASYLFEaflyuWXX64LUFBu2NKvXz+dh2BxzXQeAssYbF7DjkJ8unfvrhNX
CBbTsMsaE3ws3GCSDyVJ3759k2JsufHQ2BbYnYu/mH9hQRALR+4drVj0Q1BZBP7GfOqpp57S
+Bhei3tJVYY3kUAGEcD7ACWn/XzjWcc7gI2eWOTGNS/FaCqagHcQ7xk2ScLzCOKN+MUKgaII
FnJQIF166aVqUZNIYKGD+CGwnhk5cmSi5Amvm+SHDbdQAGOBcsqUKdo2t2CNyFaK2X9h8eAW
k3SZwMVd76BjKP4hUAw6BfFpXnzxRbFckkmDBg00brHfrm/ExkGfYue5n+DZBXuUBwUNxMuK
Jhl+fmXi+cDvVaZKutYLE/WH6e8v1jfx/sOKxBbENcEmCbxL6RKMNbDGirhBTquXZMvD5nvL
VZrGY8HYBgpuHONZwzUvsVz5ieV2T9599121Gs5GwXgJFiNQtCGGjpf1Ndplmi4Rg7Dvm8n3
aaIy83Id32v4DsLz4Ixdlczzgnr45WfXMVWc89Lmgr43qqCxgePLxP4fExnL12a0jhj4dO7c
WXeG2S8sBiaQUqVKxbUFwZZgOYOJCgLduQWaSrwM0Lragh8kmP76KXzceSRzHLYdyZSRl3vC
1M+k3/JSF95LAiRAAiRAAiRAAiRAAtlCAJuXMLdwWtHAzRA2QDldN0DJAQuXMPOQIHdkX331
lbpzfvLJJ3WHPRZQ8iJwUYad0nBPZAs20UHcC8Jw7wT3JLbYCzZud2h5qQ/vJYFUEICiEQoU
WKDlVeBWCsqaDRs2qOUMAhdjg2k6ZevWrVr3888/X91QYTcw3lOsd6BdboFSBhtWscYS5IbI
XoiDtQYsNRCgPS878E3yw3ckFmChZIZrRiw2t2rVyt0EPfYKVg1rRbeYpisoLu76mhzj+9VP
YFVZsmRJ/X3x4mHfBxeVaDPWx7wEyh9859uKmTVr1uiisJeCBveb8vMqy33OT6nkTlcQx+la
L0zUH6a/vwjVgHEFlLC2QEEDpUU6rZKgmMF4Y9CgQSnrFjwHWIeEyz58IPhO83s+YBWIteIg
92ap/L4P01DTcqE0xfuLMdsFF1wQZ1Bgl2mazqSOfjy97jX9PvW6N6/n8J2E3zWMbZ1etex8
wz4vifJDvqnknNf2F9T9UQWNE7Tzf/vlxDmYz+HLAL42sWMFL6ytSPEy14SGDD8esJBx+0FG
vnALAD986Fznx73rLdVwwrYjleXDp6azrXjg3ZJM/ZwvOv539ps7fx6TAAmQAAmQAAmQAAmQ
QGEkgEWR2bNnRxU02F2PxVvnZjF7HnLjjTdq7ArTecg333zjiwy7TrFgYQVY1Z2z8EZgBRSP
iefpe7PHBSh43DubsciLRRnMoZyCc05Fjj0v4HzAAyxPFRoCUFRCOQLB/5hXQ2GTbsF3BpQz
iEGFuT3WMxBn10u5gXR4bxO5N7MX4rAzGXnmRTmD9pvkB2tDrOdggRKKBiiSYEmTH1JQXJJp
m/196/VsQYmC5wHxmxPJc889pwoXKxB7XFIoy7Ceht8uW6CswaIxLBXcYsrPfZ/7eMeOHWIF
/3afzojjdK8XBvWH6e8vNksjHpHt5gwu7+Bey+05KJVAERYCir77778/ZoNJXsqABQwU3Iiv
hecT32n2Bnw/6xhYHyP9Bx98kJeiC/xejBmhYIW1MiyC/L4DTdMFNSiT3zdnvWFViXV8KODw
nQXjDKeEfV4S5efMOxWcg/og06/FKWiCKgw3ZTAHfOONN6JmbHBv5icw84QGGbtFYOKPH39b
4F8T1jIwC7b9MDv/eg1w/MoJez5sO8LmH5Qeg0hnOzFpdEtB1s9dFx6TAAmQAAmQAAmQAAmQ
QDYRwIIJNnxhQxmsZ5wuY9AOex4CaxcsirnnIn7zEChCggTlYnEVCx2Y6MPNGgL4JiOoM+La
OAVzKcSb8VswSaYc3kMC2UYAykgoIeFuDItH+P+FF15Qt374H+9hfgrWR2CJ52UVhLpi5zBc
JmWqYEHskUceUeXAqFGjNMZwuiUbuNgMoOCHwItMXgRWSrD28nKjZFvKYKHY3jCANSHEY3C7
tEQdUsVv8eLFgpgp2FiQnwKlltvizK2ISvd6YVB/hPn9hTIVcaZOsGI4Ye0Tv8/pVFpAiYtx
C5RA9rNiK/agCIYLxrCydu1aVeo6xT6GdyO3YGwD5eGrr74asznEnS6bjj/77DOtrv2++9Xd
NJ3X/QX1vnnVJejcmDFj9PesRYsW6t3KLWGfl0T5ufPHcV44e+WXLedCKWgwKcAOEKfAp7Of
YJcBfjywowSaWPhDdgpcEMA82P3l7Jdfqs6HbQd2wEG83Lg562SaLlE7wtYvUX68TgIkQAIk
QAIkQAIkQAJFhQAWXrCzFZNLxH6ARQviZzoFCxrpmodgvoTdh4glUaFChaQs2zGRh7IHAb5t
gXcCyKJFi4pKV7KdJBBHAO+EvUkUi8vYaQ+XRViXwLqCn1uouIySOIFd624FBiwsSpQooTFw
slkeeughqVSpkqcCIZvblde6Y9EdfZsKxR9iOSA+knP9C0r3//znPzJ27NiYzQJQWMB9Vjqf
Z7inwrN7zTXXxGDC5oCLL744r+h874clAd4jZ3wTbKpwS7rXC736A3UI8/uL2HZ4PmBFg8+k
SZPixhvuduXleMmSJXGbSjCWgeA7EIqisAKFUo0aNWKsu5o0aaKbWdAHbmnXrp0qiaCcLixy
yimnaFNgDR0kpum88iio982rLn7nEDcRLjbxvQcrcC8J87yY5OdVRl44e+WXLedCKWig0W/T
po26NcNA5M4779RJTyJZv369Bq7EbgHnjrQ+ffqohhI7NTAYgGIC2udnn31Wd52lS8K2A3F2
oGjq2LFjzCTJXT/TdO773Mdh6+e+n8ckQAIkQAIkQAIkQAIkUFQJIKYCJpC33HKLVKlSxdO9
EBYj4Y4E845UzEOgDEJQ79q1a6tLGsxxsAN65syZusgRVhB4GgF7Bw8erDvw4TYF/uYRRNpr
wSRs/kxPAgVBAM8xdn1jkTG9KtUwAAAgAElEQVQvgtgU2CkOt2b22oTTPVRe8g66F+85Yo2c
e+65at1QtWpVGTdunG5iTadbo6A6pepaTk6Otq1Hjx5qqVeUBYvPUK5jcREKFbh/c7v5SYYP
lDDHHHNMjJIPcYxgdYkg5U6BcgabDZzx1JIpM+geeHfBRoIhQ4bo+hssaWrVqqVxooM85QTl
aXJt3rx5+rsIN4HYBF2vXj1da3NLutcLvfoDdQjz+wvrOcSng5Vc9erV8+ye0M0gP45hgQh3
fXgWoDQ7/fTT1YUa3MDhvFugoFm1alVCq7JUfd+7y090nKhcrLdCmYZnHG68mjZtKgMHDtQ2
Oa2fTNMlqo99vaDeN9P6we0v3jmMnbGxyU9MnxfT/FLN2a/e2XA+lILmvvvu0x8OfGFv27ZN
gynBP6GJYPIDP6d4yWESB0HwM+wMg99LaKmhSR8xYoS+6EEPhEl5QWnCtgMDv5tvvlluv/12
1YZjUImJkltM07nvcx+HrZ/7fh6TAAmQAAmQAAmQAAmQQFEmgCC95cqVk9zcXM/gzV988YUu
CqVqHoJJPeYw2HiGMjFfwmQcCxlOwY5d2y0JfJ1fdtll0WPE+rQFcyMszGGuhB2d8+fPlxUr
VuhCQjIKn6L8LLDthY8AFDQffvihNgz/w6oMbom8BO8P3jksQkM2bdqkx1iQCyt4n7Gr+Pnn
n9c4U6gDlDPnnHOO5pvt8vjjj8vxxx8viC/hFJuZ/d2Fv/guc4tpOvd9mXSMneNwZwklIhaq
4WIMwbJTIfAwA+tKp+B7Hi6/7OfZeQ0Ll1g7Qz3CCBRKdl/BwgxrWfYxFqSd0rlzZw0CjoVZ
xD3Dbyc2AaRT4bhx40ZVyGCRHGuA/fr1k4cffjiuieleL/TqD1Qi7O8vWMFjEGKy5FVRnMrv
qzigPifw3QmLGcTeQaw9jGegeEbICrdgQz0UUbAGSYWYttc0nUmdoBiEsh2KQjx/Q4cOVXdt
GJM5XdmapjMp004T5n3L7+9TKBlh3QcFjPO7Hv87LepMnxfT/NLBOUyfZFLafazKRDKpQqwL
CZAACZAACZAACZAACZBA4SaAGJW2TJ4SHDOiZYvm0bTYLY/JYs7CHKlfr75aqGBhgUICJEAC
JEACJEACJEACJEAC+U1g966d0SI3bd0aWHxFy0LTltJlyuq8JndnroSyoAksgRdJgARIgARI
gARIgARIgARIgARIgARIgARIgARIgARIgARIgASMCFBBY4SJiUiABEiABEiABEiABEiABEiA
BEiABEiABEiABEiABEiABEggdQSooEkdS+ZEAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSQAQTc
sRS8jhFvg0ICJEACJEACBUmgeEEWzrJJgARIgARIgARIgARIgARIgARIgARIgARIINUEEPSa
QgIkQAIkQAKZToAWNJneQ6wfCZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZBAoSNA
BU2h61I2iARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIINMJpEVBU61aNYFvz9at
W6e0/TfeeKPmi8+PP/7omXfdunVl1KhR8tNPP2m6E044wTNd8+bNo3khXfHi6ff21q1bt5gy
nf5Pe/To4VnPTD85Z84cmTx5cqZXU+z+PvHEEz3rmi3t8Kx8Fp3cvHmz9O7d27jGTZs21Xem
du3axvdkYsLC0o78Ymv6PW5Sn8MPP1x69eolq1atkl9++UXWrl0rDz30kBx00EEmt8elOf74
42X48OGybt06zW/16tXSuXNnKVasWFxa+0TY5943I14gARIgARLIWAIYy//++++h6sfxZyhc
TEwCSRFo1aqVLF68WPbu3SvfffedTJgwQSpVqhSXF8aGjz32mGzZskXf5fnz58upp54al870
RNj8sB6xYsUKnfu0bNnStBimIwESIAESIAESKAQE0qKgSTeX0qVLy2GHHRZXTJkyZWTo0KGy
bNkyGTx4cNx154mpU6cK/JHeddddgenScbFixYpatvODwWCygqB2S5YsSfZ23pfhBIpy//bs
2VM+/PBDWbp0acb0UjL9kYntSDXQZLh41SHM97jX/e5z9nf81VdfLUcccYTceuutcscdd8ir
r77qTmp0jA0A9evXl5tvvlnKlSsnWJB79NFHZcSIEUb3MxEJkAAJkAAJkAAJkED+ELj44otl
4sSJMn36dDn22GN1DFe+fHmZOXOmlCxZMloJzMux6bBJkyZy+eWXyyGHHCL33nuvXH/99UlV
NJn8unbtKhUqVEiqPN5EAiRAAiRAAiSQ3QTSbzaSj3x27dol2HkN6dKlSz6WXHSLOu+88wpF
4wtLOwpFZ/y3EZhANWjQQC644IKsblZhaUd+dUKqv8f79u0bU/W5c+fKyJEj1YoGCpvc3NxQ
TcOEHsqY3377Te+Dsn/06NGq7H/ggQcE9aeQAAmQAAmQgAkBjj9NKDENCSRPABt0fv75Z3nw
wQfVMmXPnj3y+OOPy9tvvy1nn322zJo1SzOHlQ3mHfC28M033+i5RYsW6ScZCZsfvH6gjhif
Dho0KJkieQ8JkAAJkAAJkEAWE9gXgxAMVl5//XXZvXu3LFiwQDp27CjffvutbNy4UU4//fRo
8/bff3+55ZZbdKAC1y5YiJo0aZJUqVIlIYLbbrtN/vrrL2nbtm1M2urVq8s777yjLsmQ57Rp
0zxNjhMWUIgS2C4S4JYL7nOwELh8+XI566yzYloJ02v0XZs2bdQFlNNlmtvCyJRzzZo1NR+U
PWDAANm+fbt+4CLIKc6y/FycmbYD+bZr1042bNig5uQLFy7UXekow88lWaLubt++veb3xx9/
6PPqfI7DtgPpTbmYckaeeCdgxo7+xbuGXfgHHHBAtHph+he7vT799FPNC+8lrBmwu98tidqB
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
4MKhRo0aGnz177//LrIs2HASIAESIAESIAESIAESIAESIAESIAESIAESIAESIIGiQYAKmkLe
z7bP6KC/iOlSkALf1cWKFZNatWrJ0qVLfavSu3dvujfzpcMLJEACJEACJEACJEACBUEgaJxt
Xws73k7luDcd9SsIziyTBEiABEiABEiABEiABAojAWMXZ4Wx8UWhTfvsgzBDFBIgARIgARIg
ARIgARIggXQQyPTxdqbXLx19wjxJgARIgARIgARIgARIIFsI0IImW3qK9SQBEiABEiABEiAB
EiABEiABEiABEiABEiABEiABEiABEig0BKigKTRdyYaQAAmQAAmQAAmQAAmQAAmQAAmQAAmQ
AAmQAAmQAAmQAAlkCwFV0GzevFls38R//PGHfPnllzJgwAApVapUxrVjzpw5Mnny5IyrFytE
AiRAAiRAAiRAAiRAAiRAAuki0Lx5c52znXjiiekqgvmSQNYQqFu3rowaNUp++uknfS9OOOGE
rKk7K0oCJEACJEACJEACTgJRC5pp06YJ/BMfeuihcu+990rHjh0F5yjmBBD8c8mSJeY3pChl
QZWbouozGxIgARIgARIgARIgARIgARIgARIwIlCmTBkZOnSoLFu2TAYPHmx0DxORAAmQAAmQ
AAmQQKYSiHNx9vvvv6tiZvjw4dKgQQOpXbt2RtX9vPPOk5YtW2ZUnVgZEiABEiABEiABEiAB
EiABEiABEiCB9BPYtWuXOC1o0l8iSyABEiABEiABEiCB9BGIU9DYRa1du1b/LV++fLT0Hj16
CBQ4Tjn33HPVpBgDJFvsdDDDX716tfz222+yfPlyOeuss2LuNU2Hm2wXbPjr5+IsTH7t2rWT
DRs2aHsWLlwouDdZlwHIA/e2adNGFVrOuh522GExba5evbq88847aor9yy+/qDKsUqVKMWlw
UL9+fYE7tx9//FG+++47GTt2rBx77LEx6cKUa5JfXCV4ggRIgARIgARIgARIgASyiMCtt94q
a9askcaNG8usWbNky5YtOqb22nRWo0YN+ffffwVzFrh33r59u3569eoVusVh5iFNmjSRTz/9
VOdIWGiGNXy5cuXiymzfvr3OV+CCetGiRXL66afHpcGJVM4vPAvgSRIgARIgARIgARIgARIg
gbQR8FXQ2D5cMalJRvbbbz+5++67dcJTsWJFVUaMHz9e9t03tkjTdHC/hs/cuXMDq2OSX8OG
DeWll15Sn7VHH320PProo/LAAw8E5ht08YADDtC6oX1Lly7V/+0PFCy2VKlSRXJycnSSVbNm
TalcubLs2bNHZsyYIai3LYcffrgqblauXKnKm1q1asmHH34oHTp0iKmGabmm+QW1kddIgARI
gARIgARIgARIIBsIFC9eXG666Sa54YYbpE6dOjoPee655+LmIXZbevfurf+eeeaZ+sEGqxIl
SoRuqsk8BIqi999/XxU02AjXqFEjVby89957MfWDEmfMmDHq1eDII4+Uxx57THr27BlXp1TP
L+IK4AkSSCEBzIGxmbEg3IKnsBnMigRIgARIgARIgARSSiBOQbP//vvrROGuu+6SKVOmqOVL
MgJFTLdu3WTz5s26E+2pp57SgJZOixzka5rOtA4m+d1///3arieeeEJ2796t7Xz99ddNi0g6
Xf/+/eXnn3+W66+/XrZt26Zcbr/9djnmmGPU+sYWKGQQC+iVV16RH374QXJzc1X507dv36TK
TnV+SVWCN5EACZAACZAACZAACZBAPhDAfOCRRx7R8faOHTvk+eef101Pbmt0uyrYUAXlx9df
f62f7t2764aqxERU5wAAIABJREFUsGIyD+nSpYvs3LlT7rnnHv0LbwOI/wnFDax+bEEdFi9e
rHE2UL+33npLXnvttbgqFdT8Iq4iPEECJEACJEACJEACJEACJJAUgaiCplmzZrqbBZMRuAHA
BKBVq1ZJZYqb4C7g888/j94PN10Qt/m+aTrTipjkh51xCxYsiMkSbs7SLRdeeKFayzjdxMHV
2bp16+SMM86IFv/VV1/JX3/9JU8++aRccsklqqzJi6Q6v7zUhfeSAAmQAAmQAAmQAAmQQDoJ
YD6wfv36aBHYFAU54ogjPIv1c5/smTjgpMk8BC6fP/nkE/n777+jOc2fP1//P/vss6PnTjvt
NE3nFFjiu6Wg5hfuevCYBEwIQCEJTxOYj1NIgARIgARIgARIgAT+n0BUQQOXWhgslSxZUmDm
36lTJ7WkSVagYHBOPKD8gRQrViwmS9N0pvVIlB92tmFyBssZp7iPTcszTYd2w10C3C04Y9Tg
/1NPPTVmRx927l1xxRVy4IEHqnUP6gYFkp/f6UR1SHV+icrjdRIgARIgARIgARIgARIoKAKY
gzjnIXY93PMQ+/w333yTkqommoegEGy8goW8U+CCDffasSsxXylbtmzC+UpBzi9SAoyZkAAJ
kAAJkAAJkAAJkAAJSJyLs19//VVdAsyePVtjtMDlmS3YFQYljlMOOuigrMKINsBlGOKyOMV9
nOpG/fPPPwJrGbhVc8aosf93WytNnTpV6tatK4cccoi0bt1aFTgTJ05Mulqpzi/pivBGEiAB
EiABEiABEiABEsggAlCO5JdgPuCed2CDHOLX2LEr7flK6dKlY6rlPi7o+UV+MWM5JEACJEAC
JEACJEACJFCYCcQpaOzGPvTQQ+qruX379tH2w4czFDbOyQGsP7JNEJSwXr16MdU+55xz8twM
xJeB1YuffPTRR3L++efHKbn80uM8dtTB5/TTTz8tFSpUiLNAQppE5TrzN8kvqD68RgIkQAIk
QAIkQAIkQAIkkBwBxJXBJqzixYtHM2jQoIH+v2jRoui5ZcuWxbg8wwX3/AXn0jW/iFaE/5AA
CZAACZAACZAACZAACaSVgK+CBj6OP/74Y+nRo4fu6ILMmzdPsFOrV69eUqpUKZ0kdOzYMa0V
TEfmiO2CmC8IvglXAs2bN89TvB27jqtWrZIqVapIw4YNPRUpffr0kZNPPlktk6D8wm65OnXq
yLPPPqtWMra0aNFCRo4cqcFCYaGEe6677jqZOXOm8ndLonLD5ufOn8ckQAIkQAIkQAIkQAIk
QAJ5JzBs2DB1tzx48GB1Y1azZk0ZNGiQLF++XJUttmC+gng1nTt3VrdocH987bXXxlUgXfOL
uIJ4ggRSQADPO1x8Y8MkhQRIgARIgARIgARI4P8J+CpocPnxxx+X448/Xm644QZNvXHjRlXI
XHXVVQJrmn79+snDDz+cdpajR4+Oxm1BXJzLLrssevzYY4+FLn/OnDkaCwZtQdDQnj17qls3
yJ9//hk6P/uGMWPGyMsvvywTJkxQP9IYfNq+pJFmzZo1umOuTJkygt1zYDhixAhZuXKlxpqx
5YMPPtBzUOTAHduMGTM0SGi7du0865ao3LD5eRbCkyRAAiRAAiRAAiRAAiRAAnkigDlAs2bN
dE6AOJHz58+XFStWSNOmTWM2Ys2aNUs9GXTp0kXnDNg0N2DAgLiy0zW/iCuIJ0ggwwjg/cF8
e8iQIVqzTZs26fHAgQMzrKasDgmQAAmQAAmQAAkEE0BAmUhwkqJxtVOnTjqYg1WLl5VK0aDA
VpIACZAACZAACZAACZBA+gnAhZctk6dMDSywZYvm0euwgscibM7CHKlfr75amDdp0iTwfl4k
ARIgARIgARIgARIgARIggXQQ2L1rZzTbTVu3BhZR0QpfYkvpMmV1XpO7M1cCLWgCc8zii3AT
8MYbb6jbALgQO/PMM6Vr167y4osvUjmTxf3KqpMACZAACZAACZAACZAACZAACZAACZAACZAA
CZAACZBAthD4X3TKbKlxCur5008/ycSJE9W9WPXq1eW7776T119/Xfr375+C3JkFCZAACZAA
CZAACZAACZAACZAACZAACZAACZAACZAACZAACQQTKJIKGiB588039UMhARIgARIgARIgARIg
ARIgATcBuBxIJOPHj5e2bdsmSsbrJEACJEACJEACJEACJEACJOBJoMgqaDxp8CQJkAAJkAAJ
kAAJkAAJkAAJWAT22QfhOikkQAIkQAIkQAIkQAIkQAIkkD4CRTIGTfpwMmcSIAESIAESIAES
IAESIAESIAESIAESIAESIAESIAESIAESSEyACprEjJiCBEiABEiABEiABEiABEiABEiABEiA
BEiABEiABEiABEiABFJKgAqalOJkZiRAAiRAAiRAAiRAAiRAAiRAAgVJoFq1aoIYQq1bty7I
arDsNBJo1aqVLF68WPbu3SvfffedTJgwQSpVqpTGEpk1CZAACZAACZAACaSHABU06eHKXEmA
BEiABEiABEiABEiABEiABAoRgXHjxsmSJUsKUYuysykXX3yxTJw4UaZPny7HHnus1K9fX8qX
Ly8zZ86UkiVLZmejWGsSIAESIAESIIEiS4AKmiLb9Ww4CZAACZAACZAACZAACZAACZAACWQX
gauvvlp+/vlnefDBB2XPnj2yceNGefzxx6VixYpy9tlnZ1djWFsSIAESIAESIIEiT4AKmiL/
CBAACZAACZAACZAACZAACRQuAtddd518+OGHsmXLFlm6dKku5B5wwAExjWzcuLF88skn8ttv
v8muXbsE1hHlypWLA1GzZk11l9W8eXMZMGCAbN++XT+9evWKSVu9enV555135KeffpJffvlF
pk2b5ulyCbv958yZIz/++KO6Zho7dqxaASQj/fv313w6d+4sX3/9tbZl1qxZUrVq1bjsTOtn
2t64AnxOmLa3SZMm8umnnybsDxRz2223yYoVKzQtFucfffTRuP51Vwf3/PXXX9K2bduYSyZc
fv/9d30G2rRpI7Vr19b/7c9hhx3mLorHaSaAfgR/p9jHuEYhARIgARIgARIggWwiQAVNNvUW
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
we6yyy5LCjOXLyC9ODvnySefND7D58yZY4wzJ554oqnXVmBQ69ixozrvvPPUF198YYw6yDcM
Xe6dNtDHoBwDUAwKYfDD7iwYB/3nDEn1EKZ9x9xnA40ZMyaRPmk+pHq5XGZMGwmQAAmQAAmQ
QNEkANe+kyZNMv0yLIJB3wxjk2yJtN8r7ZfPmzfPGCCwCAt96H79+qlBgwYlJT8b/Wj0RzF2
w7mK69atMzu6Mf5xuwCT5jcpwTFcwCIncASbTZs2mTEazsdxn/0pHcdJk1OQ+ZWmsbjpZXse
objxZH5JgARIgARIgAQKjsAeOmqn4KJnzCRAAiRAAiRAAiRAAiRAAsWNAFx4WZk6bXpo9jt1
aJ+4jx3hWGSycNFC1aJ5C7PjGgvDKPEQGDBggHHVjF33FBIgARIgARIgARIgARIggXACO7Zv
Syhs0Avxw6SWPs7DSvkKFc24Zuu2rSorO2jCEsJ7JEACJEACJEACJEACJEACJEACJEACJEAC
JEACJEACJEACJFDcCdBAU9xrAPNPAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSQ
7wRooMl35IyQBEiABEiABEiABEiABEiABPKHgPvcwVT/48wZSP/+/fPdvVmqNLmv2/TlDzHG
QgIkQAIkQAIkQAIkQAL5R6Bk/kXFmEiABEiABEiABEiABEiABEiABPKTwB574NjR3JVcT1/u
kmPKSIAESIAESIAESIAEigIB7qApCqXIPJAACZAACZAACZAACZAACZAACZAACZAACZAACZAA
CZAACRQqAjTQFKriYmJJgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgASKAoGsGWjq
1q2r5syZo37++We1efNmNWTIEFW6dGkPs0MPPVQ9+uijau3atUbvww8/VL169VIlSpSIjW37
9u0V/BcffvjhsYXJgKIT6Nixo1qzZo367bffTHl06tQpeiDF+Akpv/nz56upU6cGksI9ty/v
QKUidrFt27bqrbfeUjt27FCbNm1SL730kjruuOM8ufz444/V3LlzPdcOPvhgwwp+2P3StWtX
tXz5cvXLL7+oDRs2qPvvv1/tu+++fjWVTq9v376e8nCXTb9+/TzhSfKBB6R6NvBff/1VjR07
NintvEACJEACJEACJFCwBNAXwO80hQRIIJlAlHmEbt26KfT3MQ796quv1KBBg1SpUqWSApXq
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
bveCLouv1atXT73yyitmqzO2r86YMSNpazLcEWHbLbbTYnur7kyoFStWKL3KIzAevTLHbGuE
nl5FowYOHKj23ntvj26DBg3MtkeEiW1g2A6MD1y4QeBSSXf6zLN+mTZtmnHzZkWvSlHff/+9
2XaLbWWId968eapOnTqeR5EHxHnJJZeoxo0bm//tR6+W8Ecj+n7llVeqdevWqd27d6vFixer
Y489NvA5CWf7YHHhh3oF/nCjBXn11VcT5eF3ceYuq1QuzgLBp7gYpTxSBFHglw866CCld9Al
pWPkyJFJ1yQXrrjiCrM188UXX/So6xUwSq82SFyT6knihI40H1I9abzUIwESIAESIAES+B8B
jDnQf4a7HbiURV/Zymeffab0SvmUuL788svAPnvKB1w30vV74Sqie/fupp+Nscr27duV9jqg
jqAM/a8AACAASURBVDzySE/w0vEAHmrRooXJI8YPGH/BHaqeKJUklzokUKwI6BXBCm5hnn32
WU++9QSUGbe5xX7HPb9cdtll6osvvjBzCm+//bbCXIBboowL/WH704H70vCkev44pd9T8dPe
Ckx7+/XXX6cNSjLfELU83JEG8YO7fcypuAXzLHvuuac65JBDEpejzmOlqwdpYfxXQZo+qMc5
7pfmV6onLTdpeFK9bHBGmJiHmDhxonGXHibp9PKSj6D6HJSWID1peyDVC4o36Jo0v8VNL27O
0nZDyhnuyNzz0ihbuP3EPL72dpVU1On6u9J4kwJOcUHaf46ajxTRJS7HnY+w+LJioMEAw05S
28jtd//gw96HweO0005TejuVeu6555TeShWW7sB7CFtby4xxAZ0kvW3ZGEX0dlu11157eZ7B
9+uvv94YVGrVqmUGSOPGjTM/0m558MEHld6aq4YPH24GOuiUwPDSvHnzwDTYMzCOP/54hQ8M
JTh7B+GPHz9eXXrppZ44tCVSocCfeuopT3h6O5i6/PLLTXw4/0XvSFIzZ840L4cVMNOrWEy6
ly1bZv63HwzQogrOw0A64J8Vk8fwUXrrrbcmBROFc3HiB17gf8QRRxhmegdNojz8RhhbTjhv
Ja8SpTzyGlc2n0cdPvPMM0W+iiXpaNq0qfr000/N2TNhItULC8N9T5oPqZ40XuqRAAmQAAmQ
AAn8hwD6y1iA8fe//12dcMIJph8+evToRB9cu0Yy/fQgwbl21apVM2OKqCLp98JwhPP1MEmp
XUGb/zHofOONN5LO65SMB+CLHgvSVq1aZRalNWzY0JwDCv/bFBLINQJ2UaN2hVUgScP4GkYV
nC/jFoz19W4Kc57lfvvtZ+YHbr75ZvNe6t02Hl2ctaJXBpuzJDHfgLEGFn+5z9uNMi60gYfN
h0jDk+rZOKOWRyp+xxxzjFnk+fDDDxujM9pczMHAmOAW6XxDlPKQ8PMk4r9fWrZsaeaN3PNW
UeaxJPUgU854LlX6pPNdCANnPGPBIsrmjjvu8Mwl4b40v1I9ablJw5Pqxc0Z4cHoiDK4/fbb
bfCBfyV6UfOBiMLaA3dCwvSk7YFUT8pZmt/iphc356AKmardkM7PBxn6EI//THJJf1davkH5
CLoWpf8szQfiSfc7GHc+gvJmr2XFQIPBBg7X027KzA6QMWPGmO+AhHt+gcEDKxrwI47ODQYs
mQhWmuHQPnQcsPIN4fbo0cOsisAuE7fAEINDv/UWZ6P3yCOPmEpXvXr1hBpW1+jtjOq+++5T
erumwsp7rJSBLlaIBAkMIzBqIN/4oGOHH34IOCD8U089NfHohRdeaLhoN1ue4DCBj7ixwg8r
UWC4wqALh65lS5BWWEj1dl+zAu/ll19O2n2AuKWcixu/bJVLunCl5ZEunIK+36dPH/M+Yjfb
ggUL1ODBgxWMJ5kKjIx4Z9OJVM+Ggx83vLPuz0knnZSIRpoPqZ47/ViVhE42hQRIgARIgARI
IDUB9PPRf8d4YMuWLerJJ580/Wi7qwQGGuyoQX/bLzDoQLSbB/+t0O/Sfu9rr72mrrnmGrOL
H7/p2OGD3fcwCsFY4xbJeAAGGe0r3CxwQ78Hi9yweOuee+4JTS9vkkBxI4AJde2Ky3g58C9m
hPcP3MMCTizwhNcM9Lsx+eqf6MF7iXkEHDiPcbp2x2zalosvvjhjpHHNh2ScAMGDYfy0mzAz
B4N2rH79+uYDwzPmdtyeR6TzDVHKA0mPyk+fRWMW6mJ+BvNHVqLMY2WjHth0pEqfdNyPPGlX
QQqGM5QJFuDeeeedSp+54ylpaX6letJyk4Yn1RNU30CVVJzxm4o5MUyou70C+QOR6kXNh7Q+
S/X86c72d2l+i5tetrmnqs9SzvooAbPIxy22T4y6bkXa35XGK+Ui7T9L8yGNN+58hMWbFQMN
IkRHBoOjEiVKmA8EP2L+Dg6uY6UaXIBh9bz28RpoFAjLhL2HHTgw8mBVjBW4OkPnyT/g0WdT
GDdsVmzDW7ly5cQ1GFKQB7hMk4p/p4T7uffff98MxtB5sYIdNQgfK038gsGjFax+QEcylcsx
/7OZfMcPuDtOhBG0elDKubjxy4R5HM9IyyOOuLIZBoyfWM2KeoOdRbD+oz5iwiFoAkWSlqD2
Jug5qR6exYo6uwPK/nWvrJPmQ6rnTi/aM3woJEACJEACJEACqQmgn49dtFYwiQHB4jEIjC/Y
5Y7FWRinoB+OyRgIBqPodwf1zY1CCpH2ezG2gBtj7HixC9iwMAWClft+STcewGIuTCRjNSPG
Uu5BtD8sfieBgiaAsTD6z6l2sGUzfeecc44qW7ZsknszxAmPFpj8eeCBBxJtA8YHcF+GZ/zi
fi+xO2Hbtm1mMjxTiWs+JGr8UcojjB/aNRhkrrrqKmMswaI7GLuwOBVGLivS+Yao5RGFHzyY
YHyJtjPIW0iUeSxpPYjCOSx90nH/pEmTjAcYzHFhkQJ+3x5//HGzEBqTq26R5leiF6XcJOEh
nVI96MbFGYYZ/K7Ck06YSPWi5kNan6V6YXnI5J6Es7TcipteFN4Szja8sHZDWv9Q30888UR1
7bXXKuzghlsztOPYcIB+tRVpf1car5SJtP8szYeNV8JZWk+leUmllxUDDQwJKFCcJ1GlShXj
YsAOOPyrVWzCsDUYnSLsGsHqFb+Pu2bNmnlWrOMH1S0YXGGghbgAz/1p1KhRkh9mNLhwG2YF
+hBrTML/WAkCCToXw9wIkHR+V+FCDLtgYJDCoBA7BPzuzRAsePhXyu/YscO4HstE0vFDZcdL
jTjc4v8ehXNx4pdJmcTxTJTyiCO+bIeBhh/GGZzdhDqL9xlGTPfOMfePgz897nvojNo66Ndz
f5fqhYXhvyfJB56R6tnw0X6makP9aeB3EiABEiABEiiuBNDHd/fzLQfbz4dxBH1tTBKjLw5D
CYwbEBhorMEkCj9pvxfuUjCpg3MpMXmJyWq7kAz9cbdIxgPYsY+JU30AtsK5lui7wwCVzUVd
UbhQlwRyhQBcHmJcP3v27KQk3XvvvWYXPwydWAwFowv862MniD5w3aOPMbrfhTLeO/dCz6QI
BBfSzYcIgsiqShg/MMP8jHvuAIthMdbBeQAQ6XwDdKOUh820hB+MSPASAqMbdtCg7XdLlHms
bNSDsPTlddwPd33u3xvkW5pfqZ603KThSfU8hSj4EsYZbgthaLzllls8C7/9wUr1onB2xyGp
z9CX6vnTn83v0nIrbnrZYh5Wn6PUP5yHCOMM5uSx6ABGXez4hvtPfLci7e9Ky1fKRdp/luZD
Gm/c+QiLNysGGqw6wypzt9jv2M0SJh988IG5fdRRR3nUsDrBvWrd7wMPlQYdA7hF8q9ux/dM
XIPZlXOwTEsl6BBB97NYrQG/2EgPDpWD6wX4ifYLthDjRXMLtlZhMjkTSccPnSe4REAc/jjd
36NwLk78MimTOJ6JUh5xxJffYTzzzDOmY+ReZYfveKfdYr+7D3+Euz6cB4QJizCR6oWFke5e
UD6CnkmnB/+YcNlCIQESIAESIAESyJwAjDc4AwP9i3bt2hm3L+gLo9+Aa0E7yNPFJu33wg0S
fu9xNiUGfRC4oAkS6Xhg+vTpZmELFshhoRvcLeFgYwoJkMB/COCdgKeOF154IdB4i3ffvwAU
37GIs06dOh6MGKPj3XQLxtBRFnWGlUuq+ZCwZ7J9Lx0/GLRSiV0IK51vQDhRysMfbxg/LIxF
G4+zYoPmpaLMY2WjHoSlL6/jflsObl7S/Er1pOUmDU+q568D6b6Hcca7DGPiiy++mFj0/eab
b5ogp0yZYnaHQaR60M1LPsLqs0nIf0Wq534mW/9L81vc9LLFO6w+I04pZ+jCKIO5drRvOEMM
9Qq/d6tXr04kX9rfjRKvhE2U/rMkH5I4o/KThplKLysGGqxKwWoT7J6xggPh8KMCy32YHH30
0eY2VoNFFYSN7Vb+yduo4Vj9+fPnm8Ha2WefnWkQSc+hMsMNGtycYWcAzrZxr/p3P4CBlhUc
TIQdQitXrkwKEz5G001CJz0UcGH58uVJZ340b948SVPKubjxSwIV0wW7EinI7QWikJZHTMnJ
WjBYpeI3SqLO48BN+IK2AqOmf2cMdn9B3O3Gs88+a57FOU9uwWG6mIyxItXzBBLyRZoPqV5I
VLxFAiRAAiRAAiSQIQHsMmnSpIk644wzzM4TnEvRs2dPs6M8EwONtN+LXfQ4QNstYWMN6XgA
4SFcrA4fMWKEqlGjhsczQIaY+BgJFAkCWBiJSVcYR4MErocxuewWrJDHvEKQ4cX9XkIP7QZ2
4MQheZkPiSP+oDDS8cMENib13Is9MR8E5v/+978TQUrnG6KWhzvNqfjhXK6LLrpIXXDBBSnP
GIs6jxVnPZCkLy/jfniogZFm2bJlCVzS/Er1pOUmDU+qF1RnU11LxxmLN/wLvu0Z0vitrlmz
pglaqgfdvOQjVX3250+q538uG9+l+S1uetlgna4+57X+oe2H20q4+7Qi7e9Ky1fKJWr/2R1u
UD6k8cadj3TxwrdXrB/t+9jRE6WO3lrk6B9pR2+xd3THxnnsscc88WiXZo72SeroVWOO3mbq
6AGSeU67HXD22muvyGnSFj5Hb1N1Ro8e7eiDQB1dgI52U+DoVXGOXk2WCK9fv36OXoXvCV8f
8q1/rxxH/8h6rg8dOtTRgx1H++t09MSuSave5uXoFTgePb2y3TyvJ37Tplsbq4yuNsw4uoFP
0teHv5l7utF3dEfH0StWHH3AnqMPJw/korehOXrnjqPP7HD01tek8KTlizxBtF9sB2Wo3SU4
esukuYZ02HCknKFfnPhZPmAF0dum05aFbtwcbbAL1UN4KF99qKKjd18l6UYpD6TR1lXUr7C6
EbdeWFy4p89xcRYvXuzgXdSHSTp6tZozY8YM807rHXiJtHbq1Mm8H3369DHtix4UOXPnznW0
j11Hrxz15EkfiOjo1anm/ddGTEcfembeq27dukXW04eBmnINemfdeZPmQ6rnDhvt1tixY0PL
LR1n3o/39448yZN1gHWAdSCzOqAn6hz7ufOee52wj1sXvCELFi4wv4foA7jLQLsmcdasWeO5
hv69XvBixgVW96yzzjJ9fL1K3lzTh6s6eieuoxdTOXpyJqPfWkm/d9SoUabPot2aOXohiqMP
GHe06wiTJ/c4Qjoe0CvBHb1S0GncuLGjVzk62guBoxd0OTNnzswoD6zPmdVncpNxk44vovDU
h6Gb9yesj67dbZk5hlThYmwAuemmm8w4GGMP7eXC0R46HG3sTDzXv39/o4c2SRt0nEMOOcSM
V/TEtKMXmiWFn25cGHU+JF14Nn9SPWl5pOOn3buZdkzv3HO09xHDbN68ec769esdvWAuwUU6
3yAtDyk/7abOjB+1++ykMnLXCek8VtR6kI6zNH3Scb8+g8bBmFm7x3f0wkanR48eZv4LvxWZ
5FfKRVpu0vCkejZPcXH2txOnnHKKee/B1H/P/T2VnjQf0vos1YvaHsTVbkjzW9z0opZHXPVZ
yhm/adoFr6Pd7zp6cbiZM0O7oY3aSfVe0t+Vxut+h8J+z6X95yj5QNzpOEvzsWP7Nsd+lq/Q
Y5yQj1sXaYBs2boFnGWdqah62teoGTBhgl+75XL0QT2eH2eEB8ONdvllfrihp7dAOdpFmRms
RI3P6uuVGsYwhMEVBl2Y8IVBxd0xiGKgwQANBhC9pctUThhJ7r777qS82EKVGGgQJgZm6PQF
5RMDMkwqo3LqM21MvHpVigOmQfrIm97W5mjLpul4QDJliE4LykMfBGXY3XHHHSY8t4EGaZBw
hl5x44c8p/thGzNmjGEaJGgQg8pY77gy5WLLV6/S8uhJywNhp2uAbPxx6wXly30NAyF9mKGj
V1mZCRIMdCZMmGDS638WkxHabZ8x3uBd0luQPUYcq4/6h/cfAzKEqbckO/rwT2O8dYcp0bMG
mqByQ5na8KT5kOq500kDTXZ+r/z1i9/JmXWAdYB1IPt1oKANNFh4hQUw6HugvLHISbv7NZOt
mZa/pN+LxSR6B72ZzEQ/BvGhXwPxG2gk4wFMCmPyDQtQMPbRO43N4jRMymWaDz6X/fpfXBlL
xxcSPljYGSRDhgzx1H0YZiFY3BUWrj5jxRhe7PhC70YzBk/3M5iY194rjGEV8aNvrs/PNGPj
oLDTjQujzoekC8+mQaonKQ8pPyyEw/wG+OCDtg0TZX4u0vkGSXlI+cFonUr88zeSeayo9SAd
5yjpk4z79e5QR+8MdTZt2mTmdbBoAfVf72hKKg9JflGGUj1JuUUJTxovwoyTs7vepjK8+Ot2
mJ4kH9L6LNWL2h7E2W5I8puNepDr8SLPcXGO0m5IuKB9wBy0nZ/HfNvf/va3pDYDeZD0d6OU
r+T3XNp/jpIPSbshzUccBhoc5ADglHwkgANB4bsSrpeC/ENrA41xsQD3TpRkAuSXzIRXSIAE
SIAESIAESKAwEYCrGytTp00PTXqnDu0T9/XOE+OmZeGihapF8xZKLwhTcKVc1ITjgaJWoswP
CZAACZAACZAACZBAUSSgDTSJbG3QblPDpJZ2Q2ylfIWKZlyzddtWlZUzaMISUtzvwW+e3iWk
cI4GDhmjRCNAftF4UZsESIAESIAESIAESIAESIAESIAESIAESIAESIAESCA3CdBAk4/lMmzY
MHPYOQ7M69y5s/rjjz/yMfbCHxX5Ff4yZA5IgARIgARIgARIgARIgARIgARIgARIgARIgARI
gAT+Q4AuzlgTSIAESIAESIAESIAESIAE8pVAYXBxBpcD6WTcuHHq0ksvTafG+yRAAiRAAiRA
AiRAAiRAAkWQQBwuzkoWQS7MEgmQAAmQAAmQAAmQAAmQAAnkiYA+BDVPz/NhEiABEiABEiAB
EiABEiABEkhHgC7O0hHifRIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARKImQAN
NDEDZXAkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkkI5A1gw0devWVXPmzFE/
//yz2rx5sxoyZIgqXbp0yvSULFlSrVy5UsHXc6dOnVLqSW907NhRrVmzRv3222+xhSmNm3ok
QAKFh0Dfvn1NG2E/27dvVwsXLlSdO3cuPJnQKe3Xr5/69ddfC1Wa40rs/Pnz1dSpU+MKThxO
QcUrTiAVSYAESKCYEjjssMPU888/rz777DP1wQcfqHvvvTdwHILxyuuvv552vCId1+S6nrQ6
5Ho+JOnr0qWLp39n+3n3339/EgZJeHhIqpcUAS+QAAmQAAmQAAmQAAmQQAiBrJxBU65cOTV3
7lz1/vvvq2rVqqlatWqp1157TZUpU0Zde+21gcm54YYbVI0aNQLvRb0IYw8GZaNHj1a33nqr
MdJQSIAECgcBvLsYAB9//PH5mmC0Uxs3blQHH3ywuvvuu9WkSZPUlVdeqZ5++ul8TQcjI4Hi
QKCg3vPiwJZ5JIHiTqBs2bLq2WefNYaZxo0bm/HFxIkT1b777qv69OmTwIPxyuzZs9WSJUtC
xyvScU2u60nrRa7nQ5o+m9/y5cur77//PmX2peFJ9VJGxBskQAIkQAIkQAIkQAIkEELA0fdi
/Whji/PHH384VapUSYR74403Or///rujJz+T4qpZs6bz448/OtCB6B00STpR0ojwIB06dMhT
OFHipG68dYg8iy9PPXHrLF26NN/eXb2DxrQXaDdsvdNGXuebb75x9KRNvqUjr3Ve76Bx9A6a
QpPevOaXzxfuNiK/33PWl8JdX1h+RbP8li9f7tjPnffc64R93LqoD5AFCxeY3zy9KMzz26d3
TjiffPKJU7ly5cR1vUDM2bp1q3PQQQclrl1//fXO7t27045XpOOaXNeTvke5ng9p+lAPIAcc
cEBo30ganlRPypl6RbNdY7myXFkHWAdYB1gHWAeKXx3YsX2bYz/LV+gxTsjHrYu6AtmydYuT
FRdnp59+uvroo4+UnuDUcf1HsKMGO1vatGmTuGb/GTlypFnZpgdfSfeiXICLH50vtWHDBvPY
q6++mtja7neb1rZtW7PDZ9euXQoujbCaVw/kkqJr0KCBCaN9+/Zq0KBBxl0bPrfddluS7tVX
X23ctCHM9evXq4EDB6q9997bo1evXj31yiuvqB9++MG4U5gxY4aqXbt2UljSC9L0SeNt0aKF
gtserDRD+Y0dO1ZVrVo1KTkSfkEul0466STDs1mzZp4wpfnAQ3FyluY3CUCOXYiSDwm/dOWB
Vag7d+40ddwv06ZNU6tXr05cHjBggKlPvXr1Ul999ZV5P+bNm6fq1KnjeRTuuVA3LrnkErPi
Ff/bjx5c+6PJ6ndtYDbvMHbTWClVqpTq3r27Wrx4sXl30W5MnjxZHXnkkUlpkZaHRE/KzyYC
bdWHH35oOK9YsUI1adIkKX3pyhcPZCO/0nYoKcEpLrjrSJiLMwnnFFEEXpbEa9s/SXkgEsl7
KWl3EZakfKPoRSm3dPnIpfc8sHB5kQRIoNATQF/z008/VVu2bEnk5a233jLjkFatWiWunXba
acYdcrrxinRck+t60oLN9XxI01dQ+ZXGSz0SIAESIAESIAESIAESsASyYqDBhKU1ktiI7Hf/
ZOb555+vWrZsqW6//fY8lwp8Cu+xxx7qiCOOMGHpHTTmOz7uyTtM/sLlGgw01atXN4O1Y489
Vs2cOVPtuWcwkv79+5sw4XYJH0wYu8/UefDBB9VDDz2khg8fbgwap5xyijHkNG/ePJEv5B1n
W+jVemYCDf6xMckN39d77bVXnvIflj5pvAceeKAxGK1atcoYjRo2bGjOEerWrZsnbZnwk2Yu
LB8II07O0vxK015QelHyIeHnzkeq8oCBYvz48erSSy/1vDMVK1ZUGDg/9dRTHhxwC3H55Zeb
9+Lwww9XMIDgfcNkiRUYM/Gujhs3Ti1btizx7uJakGsKOwmtd9vEjh7pwjsAI40VGJePO+44
4/YM7jLwP4wYb7zxhqctkJaHVA/xS/hBD+2IXhFsDMpw2YZyAs9M2rW48ytth6IUpm3fMfGW
SqJwThWG/7ok3ijlIXkvM2l3U72//vyE6UUpN0k+or7n/rTyOwmQAAmkI6B3xJoFIW75/PPP
zVf0QaxIxytFRc/mO13/qajlV++mMu6u161bp+644w5P3xNM4s5vooLxHxIgARIgARIgARIg
ARKIQCB027cOJ/L9HTt2OM8995xTqVIlRw+QnDFjxpgw/vrrL+eRRx5JhLf//vs7mzZtcrRx
xlzTk7d6YXLeXZzpwZcJR09SBqYdaYP7Irgxsvlr166deUavpvM8owcx5vqsWbMCw8Lzhx56
qPPnn386+ryblDrQmzBhguGhJ6g8DH755RcH2/AzYS1JnzRey18boELTIuUX5HJJr2o0PPUO
mgLnLM1vJuWSn89I8yGtp0i7pF41bdrUlKWeyE+UZc+ePY27kAoVKiSu6R0gRk8bYhPX9O4Z
c+2CCy5IqmtS10c2jXl1h+Z3cQb3J0888YRJ34UXXpiUPnfZagOs0TvxxBMTetLykOpJ+eF9
gzRq1CiRFm0AN9dQ9u50S8o3qA7nJb/Sdigo3nTX9K4/RxvhA8tKyjldHEH3w+KVlof0vZS2
u9L3V6onLTdpPixH6XsexJ3XovfLyIzMcrEOZMvFmd7p6uhFU4420Dt6wYczdOhQ8/vw3Xff
OdqQnPit0DtsnGeeeSbteEU6rsl1PVsH0vWfcj0f0vSde+65DtzYweU23N317t3buNu241LL
QxqeVC8X3zWmib8BrAOsA6wDrAOsA6wDrAPZqwM56+JMF7pxTYRV2yVKlDAfCFYd47oV7HjR
HWWz8yQ/BS5/3nvvPbOK38o777xj/tWTzoFJCXOfc+qpp5q8wnVZmMCVAnbLwMWLFbg6W7t2
rVmNnxcJS5803s8++8yUB1ZBn3nmmUob0AKTlAm/wIACLoblI27O0vwGJDOnLknzIeXnzlxY
eWAHGlxpYWeMFeyowXsA919+wTtnBasZsSsGO9cyFcSNNgU72uIQ7PJD+/Txxx+rY445Rl10
0UXqpZdeSgSNdxxu2rDDTJ+ZZXQXLFhg7u+3334JPWl5SPVswBJ+2ghu3EtasW5bgtw3Qies
fOPOr7QdSiQ+pn+ico4pWhOMpDyk72Um7W5Y+brzGaYnLTdpPuLky7BIgARIIBUBOw6xYxHo
+cchuCYZrxQlPeRF0n8qClwmTZpkPBugLwR3d8OGDVOPP/642QmtFxV4qk7c+fUEzi8kQAIk
QAIkQAIkQAIkkIZAsD+vNA+lu42JV7jk+fbbb5VetaSuuOKKxASmdVUE915XXXWVuuWWWzwG
i1Rh48wSdJ7tB5NumQoMD3oVnedxuAKCcSLVWRdff/11yuj0bgFzD/lNJTBSIWywcOcD/+sV
70nnvETNb6r0RYkX7iDOOecctc8++yicI6JXiqlFixYlTaJnwi8VF//1VPmAXtycpfn1pzHX
vkvzIeHnz1tYeUAXrsw6d+6scCYN3IbAwOl3bwY9vUvMuJdwC+qX3q3ij7LAvsMlGCZv4L4M
75/bOINEwQ0jjMo4dweuEaFrDatuF2LS8pDqReGHNsxteEb7ArFGcj/csPKNM79R2iF/GvP6
PQrnvMblf15SHtL3MpN2N6x83WlNpRel3KT58DPidxIgARKImwAWUZQtW1Zt27bN9GHh+hPf
IW6XqVgklW68Yp8pCnpSzpJxXGHgEpRfuKV199+ykY+geHmNBEiABEiABEiABEiABMIIZMVA
g9XxmOx0i/2O3SIQTIJiUvPFF19MGCzefPNNc2/KlClq48aN7sfNjhfr9x9/3T6kPYqCLxiQ
4VwCt2CCGec3BJ11AT1MtKUSu1vAfaC4X1e7QFOId/DgwZ582DxhktstUfObKn1R450+M7mo
qgAAIABJREFUfbqZnMZAVLsGMIajiRMnetIm5YfV48ifW8qUKeNH4/meKh9QygZnSX5DE5wj
NyX5kPDzZyesPKCr3S4ZX96ov5dddpn68ssvzblFfkG547wWt6ANcB/g638m175ffPHFSrtC
MWfv2HaiWrVqgcmUlAcelOpli19Y+caZ36jtUCDUPFyUcs5DFBk/Kn0vpe2uOyFh5SvRi1Ju
0nxkDIoPkgAJkICQAHbE+n+f7Y4J9wIvyXgFURYVPSG+Ip1fu3DFzSLu8pVyph4JkAAJkAAJ
kAAJkAAJWAJZMdDMnj1b1a9f3+yesdK2bVuFyR6sXILgYG+3wQX/w0UK5Oyzz1Y19QGf2ZIl
S5YYI4T7gPKTTz7ZRKf9VkeOVp9DYFzZIN1hgrwjj36jRdgzcdzLJF7sKHr55ZfViBEjVI0a
NTwr8KX8MPmOSXlMxFvBbqFMJZucw/KbaXoL4rmwfEj5RUk3JmXhHgluzuDe7OmnnzbvQpDg
nbOCA1mxo2zlypVJqj/99JPZxZVrAiMu+Lol3TsfVh7ucCR6Un5xcYs7v5m0Q3HlxYYj4Rx3
nOnCk76X0nY3XXxR70vLTZoPG3+uvudR+VCfBEgg9wi8++676ogjjlBu956tWrUy45C33nor
kWAsKKlXr17oeAXKknFNYdCTllRRzi/qAYw0+myiBI648yvlTD0SIAESIAESIAESIAEScBMI
PFhZK2R8XbticbRbGWfy5MmOnpx3tHsBR7v/ch577LHQMO1hzp06dQrVS5c2vbtG970dp337
9oHhnHDCCY52A+Q88sgjTsWKFc2B6PrcBgeHlWqXLp5n7EGa7dq1CwzLpgUHkOrJP0f7NTaH
kuqVe84111zjtG7dOvGcHgQ62u2CM3r0aKd27dqOngB1kBYcSI6DLNPlK+i+JH3SeDt06OBo
38xO48aNHb1i3znqqKMcPYHuzJw505M2KT/kEZxxIKs+o8PBAePr1683ZaMnmwucszS/lnu6
Q1WzpRdU7u5rUfIhqacIW1KvbBq08dWUqTbMONqwmlSPccg97mmjrIN3U+/KcmbNmuXoFa6O
3rWWpH/ttdeaQ1xbtmyZ9D668y0tj3T8+vbta9IflHb3s6NGjXK0H3NHuzVztHHJue666xzt
PsU8624fpOUh1ZPyw6H0+nwrD8+TTjrJpC+T9y3u/ErboXTlFXRfGwccbShMqkvQlXIOCjfd
tbB4o5SH5L2UtrtIs/T9lehFKTdJPixT6Xuergx4P/O+GtmRXUHXAfS77efOe+51wj5uXaQb
smDhAtPuz50719P+o8+pz4gz/WuMSY4++mhHny/n6DMvPXq49/nnnzv6rJLQ8Yp0XJPrera8
0/Wfcj0f0vShXDGm1O50He2G0+nRo4fpJ2Gs46770vCkegX9XjF+tu2sA6wDrAOsA6wDrAOs
A/lbB3Zs3+bYz/IVeowT8nHropwgW7ZuQf80O4muW7euGTDpsyccvZPCDIpKly4dOIFm05Bf
BhrEd/rppzt6t4zpqOuzMJxx48aZDryfh2QCC8/oXTEOJpxWr15twsTk8913352UZ72zyBiu
9M4DY9BBGmDIScfGny77XZo+Sbx6t4sZvGAiHWnT7qrM4BaDGn/8Un7du3c3g99du3aZ+qDP
4DGVL5MJ47g5R8kv4k43oPWXCTj6ubm/S8MLCwP3ouRDWk+l9cqWCQwXeiVqYH5hYNAuwZze
vXs7+qwL835od4YO2oigvOFd0OfYOJs3bzaGHQgMIn7duPhJDTTa7Z+jdwgZowwMrTNmzDCT
/xC3gUZaHlI9Kb8oBgFJ+cadX5SfpB3yl3Oq72PGjDHsg0SfFZSoL1LOqeLxX5fGG6U8pO+l
tN2VlC/yJdWTlps0H4hb+p77+fN7dvps5EquBVEHsmWgQV70WZemb79u3TqzCOvee+8N7Guj
L4L+S7rxinRck+t67rY/rJ+a6/mQpK9JkyaOPlPT2bRpk7N7925nzZo1Tp8+fRztYjupTykJ
D+ykegXxPjFOtuOsA6wDrAOsA6wDrAOsAwVTB+Iw0OCAEHRSKSRAAiSQEYHq1aubM6MuvPDC
pPOKEKA2MKiePXsal2aU6ATILzozPkECJEACJJD7BLSBJpHIqdOmhya4U4f2ift6J6txU7Vw
0ULVonkLpRcAKbhSppAACZAACZAACZAACZAACZBAfhPQBppElBu++CI0+lr6GBEr5StUNOOa
rdu2qqycQROaEt4kARIoMgRwTsngwYOV3m2lpkyZUmTyxYyQAAmQAAmQAAmQAAmQAAmQAAmQ
AAmQAAmQAAmQQLYJ0ECTbcIMnwSKKIFhw4apnTt3Ku3+SHXu3Fnp84aKaE6ZLRIgARIgARIg
ARIgARIgARIgARIgARIgARIgARKInwANNPEzZYgkUCwI6DNlVIkSJVTDhg3VsmXLUua5f//+
dG+Wkk76G+SXnhE1SIAESIAESIAESIAESIAESIAESIAESIAESKAwEqCBpjCWGtNMAiRAAiRA
AiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRQqAnQQFOoi4+JJwESIAESIAESIAESIAESIAES
IAESIAESIAESIAESIAESKIwEaKApjKXGNJMACZAACZAACZAACZAACZAACZAACZAACZAACZAA
CZAACRRqAsZA06BBA+U4TuBn6tSpSRk866yzjO6WLVvUnnsm23h69uwZGBaeKVu2bCK8Tp06
Gb22bdsmxeG+0Ldv35Th9evXL6G6bds2o4fDyr/99luFtJ900kmhYf/6669q7NixoTq8SQIk
QAIkQAIkQAIkQAIkUDQJzJ8/34wbKCRAAiQQRgBzD5g/yFXJ9fQFcWvfvr2Zwzn88MODbqui
0j4XlXwEFlLIRZZvCJwMbxXG9zzDrPIxEihWBDzWlWuuuUbtscceng+MKH5BI/vDDz+oSpUq
qaZNm/pvqxEjRiTC+PPPP9VTTz2V+P7TTz8l6Usv1KpVKyl9999/v+fx8ePHq9KlS5t0rV69
Wr355pvq4osvlkZBPRIgARIgARIgARIgARIgARLIiMDzzz+vli5dmtGzfIgESIAESKDwEGB7
X3jKKpOUsnwzocZnSIAEMiVQMpMHzzzzTPXMM8+oSy+9VMFYs2jRokyCydozMApt3LhR3Xnn
neqggw5Sjz32mHr11VdVXoxDWUssAyYBEiABEiABEiABEiABEigwAqecckqBxc2ISYAESIAE
UhMoKu1zUclH6pLK7E5R4VJU8pFZKfIpEiCBOAgk+ydLE2qjRo1UjRo11Ny5c9Vbb71lDDS5
LC+99JLaf//9cz6ducyQaSMBEiABEiABEiABEiCBXCeAPv+HH36orrzyyqSkvvPOO+qFF17w
XIdb5L/++su41wlzcWbdQWPcM2jQILV582bzue222xLhwe0RwrnkkktU48aNPe6ZDzjggKT0
SC9cffXVauXKlWrXrl1q/fr1auDAgWrvvfdOPF6qVCnVvXt3tXjxYvXzzz+r7du3q8mTJ6sj
jzzSE8WAAQPU999/r3r16qW++uorE968efNUnTp1kpLSokUL41YI+t98841xB121atUkPV4g
gYIiIKnPBx54oPrtt9/UjTfemJRMvFNTpkxJui69gLYAbQ3eoxUrVqgmTZokHpXGC5deaDMw
X7Fjxw61YMECBY8mmzZtMu/6scceK01Okl4upw/t87p169Tu3btNu5Uqn2BjP3ltnwGoXr16
6pVXXjGeYNBWzpgxQ9WuXTuJHS6ka3ejtPfSfMDt//vvv2/qFNpx7N6oXLlyYPrSXSzI94Pl
G1w6cZavjSHsPYdONvoHwbnjVRIggTgIRDbQoBHADpW3337bdOobNmyoqlevHkdashLGxx9/
bMI95phjshI+AyUBEiABEiABEiABEiABEih4Aph4e/fddxXOy3QLJuFgZIHhwi0lS5Y052li
0ZlE+vfvb9SOP/5484HhBa6VITCawFX0uHHj1LJlyzxumWHoyEQefPBB9dBDD6nhw4cbAwlW
6MIw1Lx580Rwbdq0Uccdd5wxSpUvX978j0mZN954I5E2q1yuXDl1+eWXm3AwOQwD1cyZMxU4
WMHkMiYuV61aZSYvMdabM2eO6tatWyZZ4DMk4CFgjZ1xuAFMV5+/++479frrr6vzzz/fk4Yj
jjhCYdEpDCOZyF577aWuv/56swAULtgx2Y/33p7NGzVeGHhg1EWbgvesfv36xvhz6623ZpI8
lcvpwyQ13N8/+uijxtMJ3NWnyqd1vR9H+wyD9cKFC41RCHXwsMMOUzt37jT1A7zcIml3o7T3
knyg/F977TVjoMHcWqtWrYzhCu1z0JnPkopREO8Hyze4ZLJRvunec6Qk7v5BcO54lQRIIE4C
jv6R0ob9YNEdBUdHlvhod2bOkiVLzHe9CsE8pFd6eHTc+rrj74wZMybwvj7fxjyvG/LA+zac
vn37BidOXz3ppJMSz27bts3RHS1PWGXKlDHPpkrDjz/+6IwePTo0fnd++P//6gJZkAXrAOsA
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
zEmKDS8+Ovn2gEkYRKwLNAxMunbtmvgedNgdwrT69u/mzZuT4tmwYUOS3pgxYzx62DGD7a3o
9CE9cL323HPPJYXFCyRAAiRAAiRAAiRAAiRAAkWTAA4Bx6HdcKnz7rvvJmUSE3U4RwLjm1at
WqmOHTsmxhk40yVTeeqpp9Szzz6rJkyYYMYkGNtkeoZAnz591E033WQmljdt2qRwaDTOi1mw
YEEiebiPBXQ4APvLL79UZ555pjlrIUiwi+D5559Xb731llq3bp0qXbq0OuOMM0w6rcCwBdfQ
4AN2CBcHTV922WVBQfIaCRQYAUl9tonDmTNVqlQxZzq5z9PNduILKl5pvvI7fXA1CYMz2jS4
VuzXr58aNGhQUnIxx2PnheJon9esWWN2qOCMGexmQNwjR440bR12WLpF0u5a/XTtvTQfSBPm
25BGnAOGth47G9E+Z2oYL4j3g+Ub3I/IRvkmvTQBF+LuHwREwUskQAIxEsAez/+cahdjoAyK
BEiABEiABEiABEiABEiABFIRgCsUK1Onhbsi7tShfUIXO0Uwcbdw0ULVonkLs7Ojbdu2qaLh
9f8SGDBggPEqkKmxiCBJIJcIsD7nUmkwLblGgO9HrpVIbqeH9SW3y4epKxwEdmzflkjohi++
CE10Le3xy0r5ChXNuGbrtq1KvIMmNHTeJAESIAESIAESIAESIAESIAESIAESIAESIAESIAES
IAESIAESEBOggUaMiookQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkEA8BGmji
4chQSIAESIAESIAESIAESIAESCAlAf+Zm0HfcUZMNqR///50b5YNsAyzQAiwPhcI9sBIg9ox
/7VstWuBCeJFFef74S/LoO8s38Jd6eKsL4WbBFNPAgVLoGTBRs/YSYAESIAESIAESIAESIAE
SKDoE9hjDxz/SSEBEiCBokOA7VrRKcugnLB8g6jwGgmQAAnET4A7aOJnyhBJgARIgARIgARI
gARIgARIgARIgARIgARIgARIgARIgARIIJQADTSheHiTBEiABEiABEiABEiABEiABEiABEiA
BEiABEiABEiABEiABOInkBUDTd26dRV8U5577rnxpzjmEMeOHavatm2bNtS49dJGqBW6dOli
OOLz/fffex4BW1zftm2bKlGiROLe+eefb67/9NNPkig8Otkst44dO6o1a9ao3377zaSvU6dO
gembP3++mjp1asp7bp+ngUpZuHjooYeqRx99VK1du1b9/PPP6sMPP1S9evXycLfRNmvWTI0a
NUr98MMPJp81a9YMTVHJkiXVypUrUzKJGl5oZEXoZvv27RPvBjiDY6bSt29fT1juOtavX79M
g83p51ivcrp4mDgSIAESIIEiTAB93YLozxZhpMxaMSRw4IEHqttuu02tXr3ajM8++eQTdddd
d6kyZcp4aEQZx+HZ+++/X33++efq119/Ve+8845q1KhREl2pHvvbSeh4gQRIgARIgARIIAWB
rBhoUsTFyxkSKF++fMpDPUuXLq1atWqVCPmcc87JyDiTYdJEj2HyHAfHvfbaa6ps2bIKfkxT
GWHCAjzllFPMszfccEOYWuz3YHBp0aKF6tq1q6pcubLCpP3AgQPVyJEjPXFVqFBBDRs2TC1f
vlwNHTpUlA7kpUaNGoG6mYQXGFCGF1FmS5cuzfDpzB+TxDt9+nRTF/7xj39kHpHvyVq1apkw
3R8M0oqaFHS9Kmo8mR8SIAESIIHcJIA+GfqecYmkfyKJq6D6s5K0UYcECgsBOwa44IILVKVK
ldRVV12lrr32WvXCCy94siAdx9nxKRZunn322apcuXKqT58+6vLLL/eEJ9Vjf7uw1CSmkwRI
gARIgARyg0CxNND07NlTjR49WlWtWjVRCm3atFFY0Va9evXEtbj1slHks2bNMp1ICIw1Z555
ZqyD0TjSXK1aNWOYAV/soAkTDFpT7a4Jey6b9+bOnWsMNFhFhRVaMA6MGTNGde/eXaHzbWX7
9u3KvVIqXZqwu+bOO+9UAwYMCFSNGl5gILxIAj4CrFesEiRAAiRAAiRAAiRAAoWZwD333GMW
zP373/9Wv/zyi3rrrbfU448/ruC1AQYbK9JxXOfOndXJJ59snsdiO4xZFy9ebIw0bpHqsb9d
mGsX004CJEACJEAC+U9gz8MPP9xss3/ppZfUjh071IIFC9Q111yjNm3apNavX6+OPfbYRKpK
lSplJqXRWcFENToekydPVkceeWTalF999dXq999/V5deeqlHt169euqVV14xLqEQ5owZM1Tt
2rXThpcXhREjRqhx48Yp/IVhZvDgweqMM85QF198sfryyy8TQcetl5c0p3r25ZdfNgYNrOY5
7bTTTPrhisstBVVu2GmCurVhwwaTnFdffTXh0sFvhHG7eshkd42fT5z1asiQIWrXrl2eKL76
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
AAJBBZSrLCPozuyHAAIIIIAAAggggAACCGRXQKmq/DJn7ryE1bW+pmXoc80WUYBj5bsrrXGj
xm7GtR6UovyfQPfu3d1DU8p2kJ0f+zHNfwLly5d3gZkbb7yR9Tzz39dHixFAAAEEEEAgHwrs
3bM71OotX32VsAeVvOU8/FKqdBk3rtm1e5clNYMm4Rn4EAEEEEAAAQQQQAABBBBAINcENIN/
+vTpLu2XUgXXrVvXzeJXeiuCM7n2NeSJEykgN2zYMJfBYvbs2XmiTTQCAQQQQAABBBBAIGsB
AjRZG7EHAggggAACCCCAAAIIIJDnBJTqaebMmS7ttFIFT5s2zb169eqV59pKg3JOQKmu9+3b
ZzVq1HBrEGl9VwoCCCCAAAIIIIBA/hAgQJM/vidaiQACCCCAAAIIIIAAAghkEpg1a5bVq1fP
pTQ755xzbMCAAXbgwIHQftFrWsZ6r/UzC0qJ1b/obQWpv/retCZPkSJF7Pzzz7cPPvigoHyV
9AMBBBBAAAEEECgUAkULRS/pJAIIIIAAAggggAACCCBQCAWOOkrLjhaeUtj6W3i+WXqKAAII
IIAAAggUTAFm0BTM75VeIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAQB4WIECTh78cmoYA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIFU4AATZq+12rVqtmbb75pP//8s3377bc2fPhw
K168eMq1N2jQwMaNG2da+FM5kytWrBizLi0CuXr1atu/f7998803NmPGDKtcuXLMfbPaqHZH
52f23999990Rhyd73qJFi9r69etd/a1bt86qKXyOAAIIIIAAAggggECOCfTu3dvdtx/JsnTp
UpszZ86RbEKePnfLli3d2EHr6lAQiBZI9/g7un7eI4AAAggggAACuSVAgCYN0ieddJItXrzY
9u3bZ2eeeaa1aNHCOnbsaCNHjkyp9tKlS9uoUaNs7dq1NmLEiLh1XHnllTZz5kxbuHChlStX
zho3bmzly5d3bdEiocmW008/3ZSzOfz16KOPump0Dr+kct6ePXtahQoVkm0S+yOAAAIIIIAA
AggggAACCCAQEkj3+BtaBBBAAAEEEEDgSAoQoEmD/u23324KbnTv3t327t3rAiuPP/643XHH
HW57smXPnj0WPoMm3vE33HCD/fTTT/bQQw+54NCXX37pzlupUiW76KKL4h0WeLsCNTfffLOt
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
xC4IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQDoFCNCkSbNatWr25ptv2s8//2zffvut
DR8+3IoXL55S7aeccor179/fNm7c6Or77LPP7OGHH7YSJUqkVF+nTp0sVs7moUOHZqqvS5cu
9umnn9qhQ4ds+/btNmTIECtWrFim/bRI5erVq23//v32zTff2IwZM6xy5cqZ9mMDAggggAAC
CCCAAAII5D2Bli1bujGC1q2JVZYuXWpz5syJ9VGe36a2h49/0tng/OySTocjXVc6x99Hui+c
HwEEEEAAAQQKtwABmjR8/yeddJItXrzY9u3bZ2eeeaa1aNHCOnbsaCNHjkyp9r///e/uuBtu
uMFOPfVU69q1q91111320ksvpVSff1CpUqVMuZv9V9++fSPqa926tf3rX/+yMWPGuPPefPPN
poDNiBEjIva78sorbebMmbZw4UIrV66cNW7c2MqXL+8MtDgpBQEEEEAAAQQQQACBgiSgxefX
rFmTti6lu760NayAVHTJJZe4MU/Pnj0LSI/oRrhAusff6CKAAAIIIIAAAkdSgABNGvRvv/12
O/3006179+62d+9eW7t2rT3++ON2xx13uO3JlkceecQee+wx++STT+yXX36xZcuW2dixY61V
q1YucJJTpXfv3vbee+/Z008/bT/++KPp6TD1429/+5uVKVMmdFoFjn766Sd76KGHXFDqyy+/
dPtVqlTJLrroopxqHvUigAACCCCAAAIIIIBALgkoyKEHuCiRArgc+Ssi3ePvI98jWoAAAggg
gAAChVkgFKDRLAj9IP/DDz+4lFWTJk1ysyP8opkR+jFegYPoMnfuXJeOK7xkVV90Hfn5/RVX
XGGbNm1ybn7RbJKiRYtas2bN3CalDtA0+2nTprkgzooVK6xbt262Y8cOF+C48MILExLo2Jwu
miYe/T0qjZn60bRp09Dpf/vtN9eX8OK/12fhpTBdBzn9/VA/AggggAACCCCAQNYCuv987bXX
3D22Uvc+++yzmR5y0oNJSiUcXv7yl7+4e9wGDRqENv/6669uW4cOHaxOnToRabNOPvnkiOOD
3PcGrU8phvWw16pVq1w79+zZY6+88opVrVo14pyaEa86la7so48+sgMHDti6deusfv36maA6
d+5sX3zxhR08eNDVG2/8EZ4aLF6Ks2TOq8wCOq/a+e6775qO1TnipVbL1PAYG/QA2fr1611/
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
w4cPh6rRjCQVBaDCSzr9stNmjj3yAgrkaXaWZnhlpygwo+v5ySefzE41SR+b7vMqeKmAjP43
SsFfBYE1W0/B3+iZdkk3lgMQQAABBBBAIN8IEKDJN18VDUUAAQQQQAABBBBAAIEgAjNmzLAS
JUrYJ5984taMCS9FihRx6b86depkCh6Er7miVGPR67Loh+DwQIT2V1E9yRbNipk3b17ox9dq
1aq5FGvh6df89t12220RbdN5Y7XPb0OidSw0o+a6666z4447zs3U2bt3r7377rsuLVkqRQEe
zcQJL5oFJCvZhpd0+qXSVo4pWAJKR6iARp8+fSICmDndy5w4r4LCCp7q36NfFAzW/y7pfxso
CCCAAAIIIFA4BAjQFI7vmV4igAACCCCAAAIIIFAoBPRE+ogRI9zC4UpFpifSw4tSnumHUc0m
0RPs/por/n/btm2bo05aa6ZevXpWsWJF0+wZpSZ74403Quf02zds2LBMbVMb47VPgZBERYGh
Bg0a2EknnWTXX3+9C0RpgfVUivy0rk14Of744936PeoPBYGcEihVqpT7d6ugph9cffvtt93p
Zs+e7Wah5ETJifNq/Zl4xQ8Ex/uc7QgggAACCCBQcAQI0BSc75KeIIAAAggggAACCCBQ6AW0
DovWkunSpYs9/PDD7kl7peQKL/pBV2vUKOCR2+X111+3ffv2uVk0er3yyit26P+xdy5gV43p
/78RUU4dUEqUJOkvOg1FOeQfTalkcqXJkGOjSTESMX5MFDoI/SqTkBoRCVFSKf06TCXVELp0
cOiggyipkP1f32f+a//26d17rf3u9+09fO7r2lfvWutZz+Gz7udp7+de933//HNcN2bNmlVg
/ZOny+TJk+3pp5+2GjVqZOUJtGTJEmfsKVOmTLTfF1xwgft78eLFhY2U9koRgaVLlyYZLjWX
JR07dnSGz4KQgmhX65CMyDL++KI8NDJAyfsPgQAEIAABCECgdBDAQFM6njOjhAAEIAABCEAA
AhCAQIknoNwy3bp1Mxlpvv32Wxs3bpzLNTNmzJi40Fsy3CiE0KhRo6xWrVom7w95tehY3iUF
Kcoro3wxvXv3tnr16pk8ahLl/vvvtzPOOMNGjx6dk/61a9fORo4caY0aNXKh31T3NddcYzNn
zjR57ISV4cOH23HHHec8lSpXruzCtCkfiMLJybiEQCAVAemJPENk7ChMKartKk+Wck/p3ypV
qjiD6bBhw2zdunVZe7cVJlfaggAEIAABCEAgNwQw0OSGI7VAAAIQgAAEIAABCEAAAgeQwAkn
nGCPPPKIvfrqqzZt2rRoT2QIUdgzeYz4orfTmzVrZpUqVTJ5g2zZssVGjBhhK1ascDlaCloU
nqlq1arOiOSHZ4ptc9WqVc5DJVf9Uwg1jU0Gn61bt9qMGTNs0aJFzpgVKzJk+WGjWrZsae3b
t48eK0G6L2L2+9//3vVR+W3mzZtny5cvt8svvzwrg09B86Z+CGQiID2W7stAIpGRRMeDBw/O
dGvW17XuXHzxxc54rFw0mvd79uyx1q1b2759+7KulxshAAEIQAACECheBOTT/58sl8Wr3/QW
AhCAAAQgAAEIQAACECimBJQfxpcpb01NO4oO7dpGrzds2NBtmi5YuMCaN2vuPEBatWqV9n4u
QgACEIAABCAAAQhAAAIQKAgCO7Zvi1a77quv0jZR0/OW9aVCpcrud83WbVsND5q02LgIAQhA
AAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABHJPAANN7plSIwQgAAEIQAACEIAABCAAAQhA
AAIQgAAEIAABCEAAAhBISwADTVo8XIQABCAAAQhAAAIQgAAEIJA3AT9nS7p/x48fn3cFXIEA
BCAAAQhAAAIQgAAESi2BMqV25AwcAhCAAAQgAAEIQAACEIBAPgkcdJDSeiIQgAAEIAABCEAA
AhCAAATCE8CDJjwz7oAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAAC+SKAgSZf+LgZ
AhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCIQngIEmPDPugAAEIAABCEAAAhCAAAQg
AAEIQAACSQQqVqxo9957r61cudJ2795tn3/+uT3wwANWrly5pLJBT9StW9fee+89V9/mzZtt
8ODBVrZs2aC3Z12uU6dOtmTJEtu1a5dt2rTJXnnlFatVq1ZSfRrboEGD7Msvv7S9e/favHnz
rEGDBknlgp4IW1+ZMmVs+fLlplxgHTp0CNpMXLl+/fq5vhdVQa/yp1dB+Z188sn21FNP2erV
q918+/jjj61Xr152yCGHZKUa6FXJXq8OlF4FVUb0r/D0L+gzyascBpq8yHAeAhCAAAQgAAEI
QAACEIAABCAAAQiEIPCXv/zFlb766qvtuOOOs5tvvtn+/Oc/2z//+c8Qtfxv0aOPPtpmzpxp
O3futOrVq1ubNm2sW7duNmzYsKzqC3rTZZddZpMmTbLp06dbtWrVrHnz5nbSSSe5vpQvXz5a
jfJwTZkyxVq1amUdO3Y09ffOO++0a6+9NmhTceWyqa9Pnz5Wo0aNrNorLjehV/nTq6D8Ro8e
7XT9hhtusOOPP960wf3II4/YiBEjiouqhOpnUC5BKy1t61VQfqVNr4LqS1B+Qes7UPoXtH+Z
ykW8AnxggA6gA+gAOoAOoAPoADqADqADhaIDy5Yti/ifvz34UCTdJ7asfrdI5i+Y7/rpbRQW
Sn/5vcTvRXQAHciPDvzXf/2XW7s8g03oNcszPkR+/fXXSNWqVaP33nHHHZFffvklUqVKldD1
BR3Hc889F/GMQhHPYBJtw/NOceO4+OKLo+euuuqqyJ49eyKeEScnfQlb3ymnnBLxPHwiYiJR
H4OOMbactxEf8Txosro3m/ZycQ96lb91KRW/v/71r5EjjjgiTg+eeOKJyP79+yOVKlUKrR/o
lbm5WVLXq1TzuDD0KlW7qc6hf4Wjfzu2b4v4n2Ufeb9x0nxiy+qZSbZs3RLBg8ajgUAAAhCA
AAQgAAEIQAACxZuA3roeO3asvf3223Ghf8477zzbvn27denSJW6A9erVc299//DDDy6Mie5L
DN3jh4Zo27atC3PibULaRx99ZE2bNs0XrFtuucWF41F9a9eudW/nHn744dE6DzvsMLvpppts
8eLFrm/q/2uvvWZ16tSJa3fAgAH2/fffu/Ar33zzjatv9uzZdvrppyf1T28Ez5kzx5VXqKLn
n3/evRWPQKA4EdA8nzFjhgsfFjtnWrRoYd4GapLXhub5G2+8cUDmeSxXb/8la8ytW7e2Tz75
xM1bX+TForBel1xySah6w/DzNlRdyLBU49A1Xzp37uzWnQ0bNoTqS16Fw9YnzwZ5+njG/Lyq
DHU+3XqvcEY///yzeRvOSXVqTX/99dfd+dq1azt2EydOtB07dtj8+fOtR48etnHjRrfmn3PO
OUn3Z3Mi8fmEqaO06VUqNqn4KXyg/i+NFf3/evDBB9uJJ56YqppA59CrkrlepXr4+dGrMN/r
UrWd1zn0r2D1Ly/uYc5joAlDi7IQgAAEIAABCEAAAhCAQJEkoB/Effv2tcqVK7uQJJJjjjnG
Ro4caZMnT7aXXnop2u/TTjvN5UjYt2+f1a9f30499em3hZwAACAASURBVFQXPkgbv4ceemjc
+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
X6aO5bq+2Pb0nCdPnuzeaq9Ro0bWnkWZxsD13BB45513XMgredHo89prryV5dOWmpeRacjXP
w+pfpnYLan6kazdMiDMZ0M4888yo94zG36pVK9u/f78pZ1SsyDNK81A5rZTrSnmhmjVrlvww
ivCZr776ymSkiRX9fyRPPXkR+RKUC+VS68uB4lKEVY+uQQACxZAABppi+NDoMgQgAAEIQAAC
EIAABCCQmoDeTr7//vvdm/UKozNw4EDTRpnyViSK8sn4yadjjSF+OeUP6Nq1qzVs2NAZH267
7Ta74oorEquJHssIJENFixYt8rXBP3z4cJdIe+jQoVa5cmUXvmnIkCEuXE7iRmaenSngC+Ks
/imvgrxOlC9i/fr1LmdEtvwydTns88hUX7t27VwC8kaNGpk8gs444wyX62LmzJlu0xjJLQHp
sfRm6dKl+a547969JuOAQmDVq1fP5FFTWJKreR5W/zK1m+v54fPM1G5Q7mPHjrXNmzc7I6i8
7WRIv/vuu+2ZZ55x531p37699ezZ026++WbbuHGjjR492t5++2375z//6e4rLqJxKp/YXXfd
5V4SkLfQf//3fzvD4rhx46LDCMqFcqn15UBxKS56SD8hAIHiQQADTfF4TvQSAhCAAAQgAAEI
QAACEAhAQG97v/76684bQvlEFCpHoatShfJRuJkbbrjBbr31Vvf2vTaPZRDxRRtr06dPtxkz
ZtjXX3/tEskrH01e8uyzz7qNt1deecW1p/ryyhmTVx06Lw+a3//+986LRnkq5s2b5zxTLr/8
8iJjONAm4/jx423u3Lm2Zs0ax1n9i+Ucll86JrqW6/r05vWKFSvcBrBC4Ok5K6RSt27dMnWF
60WAwEsvveSMsPJGeP/995N6NGbMGDcH9WnZsqVp498/HjRoUFL5oCdyNc/D6l+mdnM9P3we
mdoNyk2hG+UxI2OFct9o/FpD+vTpE61CISS14a78M/KK8uXGG290IRX1TIuLqK/KNdOlSxe3
ji9YsMB27drl1nW9NOBLEC4qS7lkfTmQXIqLHtJPCECgeBA4yOtmpHh0lV5CAAIQgAAEIAAB
CEAAAiWBwLJly6LDmPLW1LRD6tCubfS6PFm0wbpg4QJr3qy583TQhp8vepv+T3/6k3szGyk4
AgMGDHBvuGdjfCq4XlEzBCAAAQhAAAIQgAAECpfAju3bog2uizHAp+pFTS98py8VKlV2v2u2
bttqeNCkosU5CEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIFCABDDQFCBcqoYABCAA
AQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACqQhgoElFhXMQgAAEIAABCEAAAhCAQLEj8MQT
TxDeLMun5ufmSPev8kVI7rvvPsKbZcmZ20o2gXTzx7/mz6OSTYLRQQACEIAABCAQlECZoAUp
BwEIQAACEIAABCAAAQhAAAIlk8BBByk9KQIBCOSHAPMoP/S4FwIQgAAEIFA6CeBBUzqfO6OG
AAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEDgABLAQHMA4dM0BCAAAQhAAAIQgAAEIAAB
CEAAAhCAAAQgAAEIQAACpZMABprS+dwZNQQgAAEIQAACEIAABCBQRAn069fP9u7dW0R7R7cg
AAEIQAACEIAABCAAgVwRwECTK5LUAwEIQAACEIAABCAAAQhAAAIFTkBJ1pcuXVrg7dAABCAA
AQhAAAIQgAAECpoABpqCJkz9EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCCBAAYa
VAICEIAABCAAAQhAAAIQKPYEDjroIBs7dqy9/fbbVrZs2eh4zjvvPNu+fbt16dIlboz16tWz
KVOm2A8//GC7d+9299WqVSuujB9qrG3btvbxxx/bnj177KOPPrKmTZvmi9ctt9xiy5cvd/Wt
XbvWHnnkETv88MOT6szU7mGHHWY33XSTLV682I1B43zttdesTp06WY+jW7dutmbNGhdibeHC
hSYGkUjEateuncTvjTfeSMtPNzRv3tzmzJlj33//vW3atMmef/55q1atWtJY9Twy1ac+qS9d
u3a1Ro0aub/9z7HHHptUJycgAAEIQAACEIAABCBQ1AlgoCnqT4j+QQACEIAABCAAAQhAAAIZ
CWijvm/fvla5cmVnVJAcc8wxNnLkSJs8ebK99NJL0TpOO+00mzdvnu3bt8/q169vp556qu3c
udNmzJhhhx56aFxbOr799ttNxpKaNWs6Q8iECRPs4IOz+yn1+OOP25AhQ2z48OHOUHHhhRfa
5s2brVmzZqHbveSSS6xhw4bWvXt3q1ChgvtbRptZs2bFGalUcZBxtGjRwl544QUbPXq0Va1a
1RmO+vfvH9cvHcgAtGDBgoz8Klas6AxfK1ascMavs846y9577z278cYb4+oMWp+MWDLEif+H
H37o/vY/MgAhRZuA5prmKeHpivZzoncQgAAEIAABCBQugex+VRRuH2kNAhCAAAQgAAEIQAAC
EIBARgLbtm1zRpo//elPdtFFF9mjjz5q+/fvtzvuuCPu3oceesh+/PFHV+7rr792BpJbb73V
TjzxROedESsyxPz1r3+19evXu3JPPvmk8yY56aSTMvYnscDJJ5/s+vLwww/bc889Z9999519
9dVXrs7Zs2eHbnfatGnWo0cP593z888/25dffmkDBw606tWrO2NN2HHcfffdzkPosccesx07
dthbb71lEydOTByGDRgwwPG79tpr0/KTQUZGshdffNGNdevWrc648uCDD8bVGbS+pI5wAgIQ
gAAEIAABCEAAAsWcAAaaYv4A6T4EIAABCEAAAhCAAAQg8L8E5s6d68JoPfPMM87r5eabb7Zd
u3bFIZLniTw5FDLLF4U6W716dZJh47fffrNPPvkkWk5huiTHH398XJ1BDmQ0ksFHobwySZB2
VVevXr2ch4rGKO+E+fPnu6qPOuqouCaC1Ne4cePo/f7NCnOWKJdeeqnzNsrE74svvrBffvnF
5DXUpk0bZ6xJJUHrS3Uv54oPARkS5fEkPUMgAAEIQAACEIAABP5DAAMNmgABCEAAAhCAAAQg
AAEIlCgCr7zyipUrV84+/fRT5xESK4cccogpX8l1111nMlrE5jFp0KBBUn4UGRh+/fXXaBUq
L1E9YaVSpUrulm+//TbjrUHaVfixQYMGuVBk8ujR5rfvOZMYgi1TfSp/3HHHOc+ZWEk89vld
f/31cezEJZHfN998Y1deeaUdccQRzhtHdcngc84550SbCFNfRmgUgAAEIAABCEAAAhCAQDEj
gIGmmD0wugsBCEAAAhCAAAQgAAEI5E1AOViGDh1qy5Ytc6HIlD8mVhTyTN4y8uqQUSI2j4n+
7tSpU96V5/PK9u3bXQ1VqlTJZ03/uf2aa65xOWNefvll83OwKLxZNiJjlUKQKW9MrCQe+/wU
Bi2RXSp+U6dOtXPPPdeOPvpou+qqq5x7RUM2AAAgAElEQVQBbNKkSdEmwtaXzdi4BwIQgAAE
IAABCEAAAkWVAAaaovpk6BcEIAABCEAAAhCAAAQgEJrAPffc43LJKBH9Aw88YMqr0rRp07h6
3n//fZejRgaFwpQ5c+Y4r52OHTvmpNny5cvb7t274+rKT91K3t6sWbO4+s4777ykvs6aNSs0
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
KIZUH+RJoZAACZAACZAACZAACZAACaQmUDh1EZYgARIgARIgARIgARIgARIggdwmcPrpp+e2
gvuIdv/4B9KYUkiABEiABEiABEiABEiABDJBgB40maDINkiABEiABEiABEiABEiABEiABEiA
BEiABEiABEiABEiABEggAgEaaCLAYlESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAES
IAESyAQBGmgyQZFtkAAJkAAJkAAJkAAJkAAJkMBeQGD27NkyadKkQE1xzZtfJrAQT5IACUQi
gNxXL730UmCdEiVKyKBBg2T16tWya9cuQS6tzp07S6FChRLK33jjjbJo0SL57bfftPyjjz4q
xYoVS6tcqVKlZPv27VKvXr2E+umcqFmzpowePVrbxDPkpJNOCmymYsWK8s4778ivv/6qOcIG
Dx4sRYoUCSyb6uQRRxwhd999tyxbtkzbW758udx3331StGjRVFWTXrcdR9IGPBdOPPFEGTly
pHzzzTeq3+effy6333574L214RKlPdtx2PTrHWvhwoVlyZIleo+bNGkSh8FWP9tyNoyDyiRb
b8hN536/7d69W3PW9e/fX7AGMyWNGjXSPk455ZTITSJf3oQJE+LqgTfaGzZsWOT2slEhW/Mq
TNdcX+fQ3ZZLpp+7Ydx4be8jQAPN3nfPqDEJkAAJkAAJkAAJkAAJkAAJZJzARRddJMgx07Vr
14y3zQZJYH8kcPbZZ0vbtm3VcOCXgw8+WN577z355z//Kf/617+kZMmS0qVLF7nrrrvk/PPP
jys+YMAAGTp0qBplSpcurZvjqNeyZcu0ym3dulU3ffE54IC8bQth0xHtwHgEHZPJoYceKjNn
zpQdO3ZImTJlpGHDhtKmZg/aPAAAIABJREFUTRt57LHHklUJPX/bbbfp9WuuuUaOPPJIuemm
m6RTp07ywgsvhNZLdtF2HMnq+8/DYFW7dm2BYe2oo46SXr16ySOPPCKjRo2KK2rLxbY923HY
9utVFt8NZcuW9Q9Vj231sy0X2EmKk2HrDVWnTp2q33GHHXaYdO/eXTp27Kjn9mUZP368LFy4
MM9DzOa8ClMu19e5LReMMZPP3TBmvLb3EnCM6vyQAecA5wDnAOcA5wDnAOcA5wDnAOdAvswB
s5HnuJ97H3jQCft4y+L/Fsi8+fNUT7PZly/67m//L5lNYuW8v42b4+W+QKbngPGccWbNmhW4
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
DxIgARIgARIgARIgARJIiwANNGlhYyUSIAESIAESIAESIAESIAESIIH8JDBs2DBBSLcqVapo
zg/kyaGQAAmQAAmQAAmQAAmQwN5MgAaavfnuUXcSIAESIAESIAESIAESIIGsEHBztoT9RO6X
gpQ+ffrkbHizMG7utaj8kDOjUKFCcsYZZ8inn35akOjZNwmQAAmQAAmQAAmQAAlkhEDhjLTC
RkiABEiABEiABEiABEiABEhgHyLwj38gXSclXQLkly451iMBEiABEiABEiABEtifCNCDZn+6
2xwrCZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZBAThCggSYnbgOVIAESIAESIAES
IAESIAESIAESIAESIAESIAESIAESIAES2J8I0ECzP91tjpUESIAESIAESIAESIAESGC/JjB7
9myZNGlSIANc8+aOCSyUTycbNWqkupxyyin51KNdN2H87FpgqUwRuP7662Pz9eeff85Us0nb
qVixovbXvHnzpGX2lgvu+nLXe+HCjH6/t9w76kkCJEACJLDvEaCBZt+7pxwRCZAACZAACZAA
CZAACZAACUQmcNFFFwlyx3Tt2jVyXVYggYIiULJkSTn88MMLqvu9st8pU6boWr/tttv2Sv2p
NAmQAAmQAAnsSwT4msS+dDc5FhIgARIgARIgARIgARIgARIIIQAjDCV9AuSXPjvWJAESIAES
IAESIAESSCRAD5pEJjxDAiRAAiRAAiRAAiRAAiSwFxNo1aqVvPPOO7JmzRr59NNP5d5775WD
Dz44YUQ333yzLFmmqnxBAAAgAElEQVSyRHbt2iWrVq2SRx55JLBcQsUkJ2zaq1+/vnz88cfa
59atW2X8+PFy1FFHxVpESC+EHZowYYJs27ZN5s2bJx07dpSNGzeqjmeddVasbL9+/QShnW6/
/XZZv369tjlr1iw57bTTEjT0hi5LFuIsoVLIicqVK8sbb7wh27dvl19//VWmTp0q5cuXD6kR
fqldu3aycuVK2b17tyxYsCBunN6ameR30EEHSYcOHbQ/jAH349VXX5UKFSokKGvDr1evXvL7
778Lwkd9/vnnej8WL14s5557bkJ7PJF9Au798PZ0wQUX6PqqWbNm7HRe7hvW/J9//inXXXdd
Wu2lms/r1q3T51Iy8V7PyziStc/zJEACJEACJEAC2SdAA032GbMHEiABEiABEiABEiABEiCB
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
1651wRQ9oD/99NPt008/tZUrV9pxxx0XczG9v+GGG9wD/DZt2rgH74899pgde+y3v0opGDB/
/nybOXOmNW3a1O666y6bOHFi+Y1OcsS9995r06ZNsxkzZtgpp5xiylRR4KBbt27Rs/RwX9OQ
KUBz6qmnWs+ePV3A4Jlnnolpn04I0w+1W4Eu+agMGDDAvS9rijN/+5o1axL2okePHvanP/3J
5syZY82bN3cBpltvvTXh8eXtCNu+VFz8a06aNMn92KlTJ/dSoCQY6FNgTvVq34gRI6xDhw4u
aBcc5z59+th5551nCtY1aNDA/aygzXPPPRdTl4Js8tN99Prrr0eNte2TTz4pjyFj9/vBsMqY
1u3HP/6x6f46kvspYyFpOAIIIIAAAgjUKAECNDVqOOkMAggggAACCCCAAALZK7B7924XpPnZ
z35mvXv3trvvvtsOHz5sN954YwzK73//e9u/f787bvPmzS7wMXLkSGvRooXLaggWBWJ+85vf
2AcffOCOu//++11WhQIiftE1X331VbvvvvvcA/b4gFCqI3Laaae5Nt9xxx22YMEC+/jjj+3D
Dz901y4sLIxWN2bMGFOfdaz+VcBg3LhxLpCgYEGq/Ui1neUdf/PNN7uMo3vuucdlnxQUFLhM
lKouqbj4bdG4KdiyZcsW99KYKoDnFwVZlDGj7CIF99QfBcbOPPPM6DEKlim7RuOgqeH++9//
uqwcTcmmYA2lcgQUeNVnTQG77du3V06l1IIAAggggAACCFSTAAGaaoLnsggggAACCCCAAAII
IFD5AsroeOSRR2zu3Lku6+UXv/iFffbZZzEXUvBi1apVbtotv2iqs3fffbfUg/RvvvnG3n77
7ehx/gPh4DRi5557rr388ssx1ygqKqpw5xRcUmDo6aefTlqHplrTdb/++uvocQoeqFxwwQUx
54bpR9KLVWCnsk00JViwaJqzqi6puPhtSTZNm45RQE9FGVT+z1988YVbq8cvGrPRo0fbG2+8
4e45ZXX5/T/xxBOjx2XrDwpcKUtI98WRFAVmvvrqK5dhRkEAAQQQQAABBDJdgABNpo8g7UcA
AQQQQAABBBBAAIEYgSeffNJyc3PtnXfecRkcwVKrVi03fdXVV19tCloE11I555xz3HRiwaIH
wcEAiI5XUT0qeiivadWUUREs8e9jdpbzplGjRu6Ijz76KOmRyiRQdk2wKICgNsevZVJeP5Je
qAI75dKkSZNKdQnbjFRc/Dq3bt0aqnp//HWwfvbvA73XdFsKHmgqN2VYKRjhZ84Ep8QLdSEO
KlNA0xEq6KrsrGCAtcyD2YgAAggggAACCGSAAAGaDBgkmogAAggggAACCCCAAALhBLTmx/Tp
093C4ZqKTOvHBIumPFO2jNZ40UNzfy0V/98rrrgi3IX+/ygFeXbt2uXWHAmW+PepVKrF5VWa
NWuW9DT1o2HDhjHH1KtXz603U91rmfgu8e2Lf5+0gxXcWREXBbCOtPz0pz91a+488cQTUX9N
b0apPAF9rvS51ZpSfnD1+eefdxf429/+5qYipCCAAAIIIIAAApkkQIAmk0aLtiKAAAIIIIAA
AggggEBSAa0jorVktJD77bff7v7SXlNeBYse6GoaMQVlKqMoGBQ/pVi3bt0qXPULL7zgsnsu
v/zypHVo3ZsLL7zQcnJyosdddNFF7ufi4uKk5x6NnVoMPt6ha9euVX7p6nJRcEwZTMGSbAw1
VVrdunWr3KMmXUD3VHxQVZ9lFVm3bt26JnWXviCAAAIIIIBAFggQoMmCQaaLCCCAAAIIIIAA
Aghkg4DWlhk2bJhb7F3Tgz366KNurZl58+bFTPmlwM1ZZ51ls2fPtry8PNOD9c6dO7v3gwcP
TplK2TgKAmn9EU2vNWjQIBsyZEjK9fgnKAtgxowZrh/Dhw93WTLKxNAC9N/73vei9eoYTSOm
jCFNs5afn+/W5dC0blrUvrqLXDTF1/jx452/1gRKNUOpIn2oLpcVK1bY0KFDXZ/V3+uvv94u
vfTShF148803rV27dtajR4+YqdISnpDhO3R/KutFQRYKAggggAACCCCAwP8ECNBwJyCAAAII
IIAAAggggEDGCzRt2tSt/fHUU0+ZHpT7ZcyYMaZpzx544IHoNq1No8wOrfWibIudO3farFmz
3OLuBQUFKVsUFha6QIqupbomTJhgU6ZMSbme4Anjxo2zm266ydW5bds2W7t2ramP/qLzOlZt
v+SSS1wWzZYtW9wxGzZssH79+pmmcquqooCXP71Uz5497bLLLou+1xosflEm0DXXXOMCSzt2
7HABpzvuuMPtPnToUFU1r9pcNF7PPvusrVy50jZv3mwXX3yx63+iMn/+fBdE1JpJmmJNpvFr
ByU6l+0IIIAAAggggAACNUNAOf3/W+WyZvSHXiCAAAIIIIAAAggggECaC2hKML8sLViWtLUD
B/SP7ldmgh5iF71UZN27dbfVq1db3759k57PzvQSGDVqlE2dOtVlLVVlECm9ek1rEEAAAQQQ
QAABBGqiwN49u6PdKvnww6RdbNOqVXR/g0aN3e81u3bvMjJokrKxEwEEEEAAAQQQQAABBBBA
oCICmu7tiSeecNO/5ebmWqdOnWzs2LG2YMECgjMVAeUcBBBAAAEEEEAAgRon8O1qkjWua3QI
AQQQQAABBBBAAAEEEECgugT27dtnixcvdtPHtW/f3rZv326LFi2yyZMnV1eTuC4CCCCAAAII
IIAAAmklQAZNWg0HjUEAAQQQQAABBBBAAIGaKOCv2ZLs34ULF9a4rmtNoM6dO7spzdq2bWu3
3nqrHThwINrPZB7+vprokmygw5gEj0lWF/sQQAABBBBAAAEE0luADJr0Hh9ahwACCCCAAAII
IIAAAjVA4JhjtPwnJV4Al3iR/70P66JADQUBBBBAAAEEEEAgcwXIoMncsaPlCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAgggkKECBGgydOBoNgIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CGSuAAGazB07Wo4AAggggAACCCCAAAJlCAwePNi2bt1qO3bssE2bNpVxRM3d1L9/f9O0V1rv
pSrLWWedZatWrbLPP//cOU+dOtVq165dlZes1rp9V3/tl5wcZguv1gHh4ggggAACCCCAQA0R
IEBTQwaSbiCAAAIIIIAAAggggECswJlnnml5eXlpx6JF71977bWk7frOd75jd911l7333nt2
4MAB9+/tt99uxx9/fNLzjsZOtW316tX26aefWsuWLe3iiy+2YcOG2R/+8IejcflqucayZctM
68L8+te/Lvf69evXt6+//to6derkji0pKbGrr7663PM4AAEEEEAAAQQQQCD7BAjQZN+Y02ME
EEAAAQQQQAABBBBIY4GTTz7ZXnnlFTvttNNs0KBB1qBBA7vyyittwIABaREE+fnPf27NmjWz
UaNG2d69e23dunV2991327XXXuu2Z3vp3bu37du3z7kok6l169YuoEVBAAEEEEAAAQQQQCBe
gABNvAjvEUAAAQQQQAABBBBAoMYLdOjQwb755hvT1FVTpkxx03Tpdcstt8T0vW/fvi5YoiyW
PXv2mLJfFECJL2GO+/LLL930Y0OHDrXzzz/f/ey/TjrppGiVf/zjH+3VV1+1IUOG2D//+U/T
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
gg==

--------------rgXMd0Rm20d0rois2k2wiqB9--

--------------0CYipZHyGBdYHQkz9fbLo60c--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:24:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:24:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656426.1024543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFOps-0000Vd-QO; Tue, 19 Dec 2023 01:23:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656426.1024543; Tue, 19 Dec 2023 01:23:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFOps-0000VW-NJ; Tue, 19 Dec 2023 01:23:52 +0000
Received: by outflank-mailman (input) for mailman id 656426;
 Tue, 19 Dec 2023 01:23:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFOpr-0000VO-87
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:23:51 +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 41b311ac-9e0d-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 02:23:47 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4E8AA611D4;
 Tue, 19 Dec 2023 01:23:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE451C433C7;
 Tue, 19 Dec 2023 01:23: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: 41b311ac-9e0d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702949026;
	bh=5q0vwXeffhtFtWVVfWFx5CjJVYbLKLn97bmsyXhxKgE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=f6FEhJ/1QcPPZRa0lFdEFL4QTM4F9HKsBiDnY8NskcCwq7NmwuBHxw5CiCaul2F7X
	 ASXyLP8uSjo5tgLSF5AgKD8KPyNMwkyiipBc8RHAHbvPCjcc0yZkmhYbhBTlpmCxgv
	 K+RYyz1DQS1z7ip5l6MzcliTgrANyLuR0UXnYM1XSaj4YO2CyLrlXRJ2H1llIoU0nO
	 Jr9d0q4ZXrLB1NnOUAenk1PpNtMBTN+dlx9vLPeRYRe8/TDq23EhzW9F+4BLfhcp7f
	 cRFAWDHNDP7DMICbIhVswlITiMP9D9CGuOHDXWrdHjYVMTPE2kIIAyYfyIcLYTpZ2C
	 3QpqBEHSfkKig==
Date: Mon, 18 Dec 2023 17:23:43 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, 
    Wei Liu <wl@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH 9/9] xen: add SAF deviation for safe cast removal.
In-Reply-To: <a9db3cb0-f085-47c2-bcaa-aa4f7351d586@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312181723360.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702555386.git.maria.celeste.cesario@bugseng.com> <36e996b864853dba26a9c9fb9c9c674e92cc935e.1702555387.git.maria.celeste.cesario@bugseng.com> <b93417c7-1375-4bf4-ace2-d36bd63c8b0b@suse.com> <alpine.DEB.2.22.394.2312141355391.3175268@ubuntu-linux-20-04-desktop>
 <698cb944-3e91-498c-99ba-ff0849723285@suse.com> <alpine.DEB.2.22.394.2312151127450.3175268@ubuntu-linux-20-04-desktop> <a9db3cb0-f085-47c2-bcaa-aa4f7351d586@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, 18 Dec 2023, Jan Beulich wrote:
> On 15.12.2023 22:02, Stefano Stabellini wrote:
> > On Fri, 15 Dec 2023, Jan Beulich wrote:
> >> On 14.12.2023 23:04, Stefano Stabellini wrote:
> >>> On Thu, 14 Dec 2023, Jan Beulich wrote:
> >>>> On 14.12.2023 13:07, Simone Ballarin wrote:
> >>>>> --- a/docs/misra/safe.json
> >>>>> +++ b/docs/misra/safe.json
> >>>>> @@ -28,6 +28,14 @@
> >>>>>          },
> >>>>>          {
> >>>>>              "id": "SAF-3-safe",
> >>>>> +            "analyser": {
> >>>>> +                "eclair": "MC3R1.R11.8"
> >>>>> +            },
> >>>>> +            "name": "MC3R1.R11.8: removal of const qualifier to comply with function signature",
> >>>>> +            "text": "It is safe to cast away const qualifiers to comply with function signature if the function does not modify the pointee."
> >>>>
> >>>> I'm not happy with this description, as it invites for all sorts of abuse.
> >>>> Yet I'm also puzzled that ...
> >>>
> >>> We can improve the language but the concept would still be the same. For
> >>> instance:
> >>>
> >>> A single function might or might not modify the pointee depending on
> >>> other function parameters (for instance a single function that could
> >>> either read or write depending on how it is called). It is safe to cast
> >>> away const qualifiers when passing a parameter to a function of this
> >>> type when the other parameters are triggering a read-only operation.
> >>
> >> Right, but I think the next here needs to be setting as tight boundaries
> >> as possible: It should cover only this one specific pattern. Anything
> >> else would better get its own deviation, imo.
> > 
> > OK. What about:
> > 
> > A single function might or might not modify the pointee depending on
> > other function parameters, for instance a common pattern is to implement
> > one function that could either read or write depending on how it is
> > called. It is safe to cast away const qualifiers when passing a
> > parameter to a function following this pattern when the other parameters
> > are triggering a read-only operation.
> > 
> > Feel free to suggest a better wording.
> 
> Well, my point was to get rid of "for instance" and "common pattern" (and
> anything alike). E.g.:
> 
> "A single function could either read or write through a passed in pointer,
>  depending on how it is called. It is deemed safe to cast away a const
>  qualifier when passing a pointer to such a function, when the other
>  parameters guarantee read-only operation."

That's fine by me


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:25:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:25:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656428.1024552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFOr7-000117-3Y; Tue, 19 Dec 2023 01:25:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656428.1024552; Tue, 19 Dec 2023 01: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 1rFOr7-000110-10; Tue, 19 Dec 2023 01:25:09 +0000
Received: by outflank-mailman (input) for mailman id 656428;
 Tue, 19 Dec 2023 01:25: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFOr5-00010l-S5
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:25:07 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70e88053-9e0d-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 02:25:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id A3D1BB81205;
 Tue, 19 Dec 2023 01:25:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B040BC433C8;
 Tue, 19 Dec 2023 01:25: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: 70e88053-9e0d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702949105;
	bh=YAmB8bi0iGaHHzeRiLxhKZkDXUQHzDKjLaPb47kX1uE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=orYZr8g7cJ7K7lr0+JA2506+RquybbOwiFLkZEn+3bUVXlGMpwy6aMh7exv8t2sN9
	 hHXOV658IdqmowO6dewDII9VevIurpyllnEz5Em4WaOoMbe295y/5C51HCrZZ3mgNk
	 Jgu3YpcFpNTEKmxMe4x2lHk0GlISZmS11Tz3lTwcr1PvolgJ24wvPY5HNSshvZ8+sP
	 bI8ezoIafkuvcQXoQNS0SFB38glz2hgeQM7gshLuJNXHx8YvMqEvWHC5rS4RpSxKhD
	 b1elGgZmzPfxPq9Tfg1KmCH50ftL0PqmSxrbuFZAUh3cJuJz9UukzO4jIfyEt4jC7+
	 XDGWY4OPg0NOQ==
Date: Mon, 18 Dec 2023 17:25:01 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH v2] automation/eclair: update configuration of MISRA
 C:2012 Rule 5.6
In-Reply-To: <1d0448b5ef2d3c84f5df77b78c832836826bc9fe.1702890135.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181724530.3175268@ubuntu-linux-20-04-desktop>
References: <1d0448b5ef2d3c84f5df77b78c832836826bc9fe.1702890135.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, 18 Dec 2023, Federico Serafini wrote:
> Deviate typedef names that are delberately defined multiple times.
> 
> Update docs/misra/deviations.rst accordingly.
> 
> Tag Rule 5.6 as clean.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:27:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:27:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656430.1024563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFOt2-0001cj-Fk; Tue, 19 Dec 2023 01:27:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656430.1024563; Tue, 19 Dec 2023 01:27:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFOt2-0001cc-DC; Tue, 19 Dec 2023 01:27:08 +0000
Received: by outflank-mailman (input) for mailman id 656430;
 Tue, 19 Dec 2023 01:27: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFOt0-0001cW-BH
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:27:06 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7565379-9e0d-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 02:27:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id EE019611EC;
 Tue, 19 Dec 2023 01:27:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5BA6DC433C7;
 Tue, 19 Dec 2023 01:27: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: b7565379-9e0d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702949223;
	bh=7KhVpe6G3aakIxLXIlQLeNh7sADxuXkb+h+rRI1ufe8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=CGPxC0iu4MVj7yojxRtDE/aEhFNH5gfToWs/3xKACK25UVEy13I62JElt95FNarUC
	 1XLul+GL6wRaNYxQbiXMnwQiSGq1p983ARXyvLt8bvz98ShK+Z9wvNNcyNYl3pEMi1
	 R6ts7lXafueaiEHoZqdZTqXJtfZLbb/YkXwjSDtd+f9bJWedgy4Vc05FAi+wUigVol
	 1Dvqd687eDsfffdRMyxtsl+PmAcUjHZqYWQondnR3Thmo2Xqu/R3+abNnaBPyrkuEz
	 vQbAx2LNYQNq9di5Vgmfs0ENmC4v6M5XKT1O9ei73gE5jGXXqNwV3F6U4RSgIo4hRy
	 BBMpcLjoLDpoA==
Date: Mon, 18 Dec 2023 17:27:00 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH v3] automation/eclair: add deviations for MISRA C:2012
 Rule 16.3
In-Reply-To: <23f4bf337883f1d6b67f7bd8466a9c299713e9d4.1702889534.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181726531.3175268@ubuntu-linux-20-04-desktop>
References: <23f4bf337883f1d6b67f7bd8466a9c299713e9d4.1702889534.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, 18 Dec 2023, Federico Serafini wrote:
> MISRA C:2012 Rule 16.3 states that an unconditional break statement
> shall terminate every switch-clause.
> 
> Update ECLAIR configuration to take into account:
>   - continue, goto, return statements;
>   - functions with attribute noreturn;
>   - pseudo-keyword fallthrough;
>   - macro BUG();
>   - comments.
> 
> Update docs/misra/deviations.rst accordingly.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:32:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656438.1024572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFOxq-0003WM-1r; Tue, 19 Dec 2023 01:32:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656438.1024572; Tue, 19 Dec 2023 01:32: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 1rFOxp-0003WF-VN; Tue, 19 Dec 2023 01:32:05 +0000
Received: by outflank-mailman (input) for mailman id 656438;
 Tue, 19 Dec 2023 01: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFOxp-0003Vo-0q
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:32:05 +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 686e36fa-9e0e-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 02:32:03 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 902EFCE14E9;
 Tue, 19 Dec 2023 01:31:57 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73BAEC433C7;
 Tue, 19 Dec 2023 01:31: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: 686e36fa-9e0e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702949516;
	bh=4Bn7ju/YLZbPQDLb71q6Dam14BGYJRM+M61ZFuOR57w=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=hFxnXKWo4Ptg0cT9Oo6mDwrNtyC7/RErpPJUzbSCRxb71IB2gUp5GT+srpnLO+i62
	 yIYU97tRHvF45SHKnicaQljKKJlF03p7GnnehDDCI2vowjJOs6fibCNFDbWHxldcvW
	 JVaz1D4Up2A7xSRlATtRoyRXCNStGyq9aZkyR3xXfP6w0OCDFW9Jmr37pUYwjvlBHm
	 vdpiLXNqZJFdO53faCE7299JdkdUXCYsFrY72cIGwyutbwi/a+5f8UPgzLmY7TraKm
	 ykKPmUKmrCOKR7kPN357eQC01ySTEeLdY2tVn2VGhS3d1PKoIOedY7U3kRcDN+4nD+
	 VyV2ItlXfm40w==
Date: Mon, 18 Dec 2023 17:31:53 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH v2 1/7] xen/shutdown: address MISRA C:2012 Rule 2.1
In-Reply-To: <22881ed8e7e28d66a730deb8812b6a4b7becc750.1702891792.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181731470.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com> <22881ed8e7e28d66a730deb8812b6a4b7becc750.1702891792.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 Mon, 18 Dec 2023, Nicola Vetrini wrote:
> Given that 'hwdom_shutdown' is a noreturn function, unreachable
> breaks can be eliminated to resolve violations of Rule 2.1.
> 
> The rename s/maybe_reboot/reboot_or_halt/ is done to clarify
> that the function is noreturn.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>


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


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:33:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:33:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656440.1024583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFOzA-00043c-Dr; Tue, 19 Dec 2023 01:33:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656440.1024583; Tue, 19 Dec 2023 01: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 1rFOzA-00043V-9g; Tue, 19 Dec 2023 01:33:28 +0000
Received: by outflank-mailman (input) for mailman id 656440;
 Tue, 19 Dec 2023 01:33: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFOz9-00043P-Hp
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:33:27 +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 9a0fe68c-9e0e-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 02:33:26 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id C0992CE14E9;
 Tue, 19 Dec 2023 01:33:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3335EC433C7;
 Tue, 19 Dec 2023 01:33: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: 9a0fe68c-9e0e-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702949603;
	bh=oZF0E4klQNuyKCi6ek28LjIulmGND7/XZb1qWirxeUw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Slzq9eODMZV5FGBmr+Y2IyZl9ABFZPoiOCiYpicPyueaUFtkrQd4X3XJ7R4M7IRmS
	 vmckVFWK6JVagKLWCBgcZScnDpX9T2mOqK7voY7gXAL/YZCKGjLnj7LlXHh1GK6bW5
	 P/D7br+bX1Xf9c3sZOk2cNBvBbn+jKVCKDQSo4smxyt6IhBpthMx1h6bcaXKjnrt7g
	 hrm3EbTwI7gDfIxnq2Dtp95mdY44akpSyBXVj/rn52cJJLqXl/poIXlXKyyahPgc/d
	 JAWfssDaDyV9ETGQM7uDPhyzG/SV5bXlfavvDcKU7TqL4fSpXxtAGY39rgzYfB3AWQ
	 QfOz7S4LBJ6+w==
Date: Mon, 18 Dec 2023 17:33:20 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH v2 2/7] x86/mm: address MISRA C:2012 Rule 2.1
In-Reply-To: <1cd82cf19a613a122a770bf6670e681ca7fccd44.1702891792.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181733090.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com> <1cd82cf19a613a122a770bf6670e681ca7fccd44.1702891792.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 Mon, 18 Dec 2023, Nicola Vetrini wrote:
> The "return 0" after the swich statement in 'xen/arch/x86/mm.c'
> is unreachable because all switch clauses end with returns, and
> can thus be dropped.
> 
> No functional changes.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:35:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:35:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656443.1024593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP13-0004cr-Oh; Tue, 19 Dec 2023 01:35:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656443.1024593; Tue, 19 Dec 2023 01:35:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP13-0004ck-M0; Tue, 19 Dec 2023 01:35:25 +0000
Received: by outflank-mailman (input) for mailman id 656443;
 Tue, 19 Dec 2023 01:35: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFP12-0004ce-U2
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:35:24 +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 df849f7d-9e0e-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 02:35:22 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 903F7CE14EB;
 Tue, 19 Dec 2023 01:35:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CCA6EC433C7;
 Tue, 19 Dec 2023 01:35: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: df849f7d-9e0e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702949719;
	bh=VFBZ6bkMAzfRpwKxx4rCVgmj/POtlqViYGmRS8wGqrU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=QIOaaWTS22wya+KuQFl3C/yKIk8XGlrgAFzGrUdCf5rdA6aUPuvzk+/+Z78mHnGE/
	 WmAbg0foVzSLgqrV7MJNb3s3BLz+WWoWrdP0ztTrbHCjdhEKWEtA04tFz6LK8zI8pL
	 XkydeM+xaJc170z1BbasT5a8RMjBIFVfTSUQ8usK0ejR1IYa5yTntDMWJdhnifvoqj
	 PWNGpl3eEd9HtJ4QmJG4gdYqlMyXQIUCaSc408rWaX0Giv0ftGI7BP5zroy/w7cUEW
	 SFPuBig2Pq2xlqNNZis/XNUJTSDVn8qBZFLEqh2m1nJLxMFc9gKoXUym1cNBVRqXSI
	 xkNe+E0SLqtdg==
Date: Mon, 18 Dec 2023 17:35:17 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@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: [XEN PATCH v2 3/7] xen/arm: address MISRA C:2012 Rule 2.1
In-Reply-To: <06857c133d1db8ab3a2eec5e0363be4358a0ec81.1702891792.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181734390.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com> <06857c133d1db8ab3a2eec5e0363be4358a0ec81.1702891792.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 Mon, 18 Dec 2023, Nicola Vetrini wrote:

> There are no paths that can reach the last return statement
> of function 'vgic_v3_its_mmio_write' in 'vcig-v3-its.c' and
> 'arch_memory_op' in 'arch/arm/mm.c', thus violating
> MISRA C:2012 Rule 2.1:
> "A project shall not contain unreachable code".
> 
> Therefore, an ASSERT_UNREACHABLE() is inserted to remove the unreachable
> return statement and protect against possible mistakes.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


> ---
> Changes in v2:
> - Changed resolution strategy to have an ASSERT_UNREACHABLE() before
>   the return.
> ---
>  xen/arch/arm/mm.c          | 1 +
>  xen/arch/arm/vgic-v3-its.c | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
> index eeb65ca6bb79..b15a18a49412 100644
> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -283,6 +283,7 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
>          return -ENOSYS;
>      }
>  
> +    ASSERT_UNREACHABLE();
>      return 0;
>  }
>  
> diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
> index 05429030b539..70b5aeb82219 100644
> --- a/xen/arch/arm/vgic-v3-its.c
> +++ b/xen/arch/arm/vgic-v3-its.c
> @@ -1409,6 +1409,7 @@ static int vgic_v3_its_mmio_write(struct vcpu *v, mmio_info_t *info,
>          return 0;
>      }
>  
> +    ASSERT_UNREACHABLE();
>      return 1;
>  
>  write_ignore_64:
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:36:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:36:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656446.1024602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP1p-00059g-1q; Tue, 19 Dec 2023 01:36:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656446.1024602; Tue, 19 Dec 2023 01:36: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 1rFP1o-00059Z-VZ; Tue, 19 Dec 2023 01:36:12 +0000
Received: by outflank-mailman (input) for mailman id 656446;
 Tue, 19 Dec 2023 01:36: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFP1n-00059K-JS
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:36:11 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc50f519-9e0e-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 02:36:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 1D99BB81229;
 Tue, 19 Dec 2023 01:36:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69F30C433C8;
 Tue, 19 Dec 2023 01:36:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc50f519-9e0e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702949768;
	bh=0J96ySdbbzl4ZsgquTQftGIDZeBgzpJgnGcLARnBKww=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ZuVmERx09sYlVRs5NG/Uwk8ynpw0u36kFjgIC4DinvFs6ZrLZvGCrca3CA1hUIR61
	 xKVLYl3uQP1mpDDfbxY4dlITyHnTjHC78bXvF9qTS+jfSEzoS8uNKjzy1qmi+gf2gj
	 jP9nFkkLVPAmV1JTpBvfOBna0bHEZ48d6VycmUpKmy1KUXpqZzZw9lOkAVfVhhyXMv
	 08ps7xr81hWQ3N8vD6LnlOt28Lf5TE9zECoWs+TZBOigkvyHD3xOxSZBZaEnnvfTVU
	 n0xZmeCgSH144hUDGCyRzpE1sFDAnINyX4ZJHp1w7zED/xdF2OeB3pwWPE688U2x8k
	 ejguis22ST6yw==
Date: Mon, 18 Dec 2023 17:36:05 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@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: [XEN PATCH v2 4/7] xen/arm: traps: add ASSERT_UNREACHABLE()
 where needed
In-Reply-To: <02070d1bb4bfc0e88d548a529bef8bedab5b3488.1702891792.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181735550.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com> <02070d1bb4bfc0e88d548a529bef8bedab5b3488.1702891792.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 Mon, 18 Dec 2023, Nicola Vetrini wrote:
> The statements after a call to the noreturn function 'do_unexpected_trap'
> can't be reached, thus violating MISRA C:2012 Rule 2.1
> ("A project shall not contain unreachable code.").
> ASSERT_UNREACHABLE() is used to signal that the unreachable break-s are used as
> a defensive coding measure to prevent inadvertent fallthrough.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


> ---
> Changes in v2:
> - Use ASSERT_UNREACHABLE() to prevent mistakes.
> ---
>  xen/arch/arm/traps.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 3784e8276ef6..77220ba0927a 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -2152,6 +2152,7 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs)
>      case HSR_EC_SVE:
>          /* An SVE exception is a bug somewhere in hypervisor code */
>          do_unexpected_trap("SVE trap at EL2", regs);
> +        ASSERT_UNREACHABLE();
>          break;
>  #endif
>      case HSR_EC_DATA_ABORT_CURR_EL:
> @@ -2171,7 +2172,7 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs)
>              dump_hyp_walk(get_hfar(is_data));
>  
>          do_unexpected_trap(fault, regs);
> -
> +        ASSERT_UNREACHABLE();
>          break;
>      }
>      default:
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:37:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:37:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656449.1024612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP2y-0005js-Bx; Tue, 19 Dec 2023 01:37:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656449.1024612; Tue, 19 Dec 2023 01:37:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP2y-0005jl-9U; Tue, 19 Dec 2023 01:37:24 +0000
Received: by outflank-mailman (input) for mailman id 656449;
 Tue, 19 Dec 2023 01:37:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFP2w-0005jb-Ry
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:37:22 +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 2614ef7b-9e0f-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 02:37:21 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 7E21FCE14E9;
 Tue, 19 Dec 2023 01:37:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1F1DC433C8;
 Tue, 19 Dec 2023 01:37: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: 2614ef7b-9e0f-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702949837;
	bh=5CqPYV/NQa8r1/ZMeF5vcsOlmD+EktOqX8lOW8jr4V8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KF0pHljl1te4JMI8aoVeIeBsGElap77QSaHBPcDAwNOA7JWE2VxpJJGmUkQnaBXr5
	 bvPRxTsEH4L9/Xaj8gLIo14w6ewm2vm/apbF5zxkI9eVHi2WcMTFLBOHOcyHBT2OWo
	 dnL5znkZMDdNeTpFezA4YaavX8Q/qKQ4zC+fxN4uSzRaz/Hh/HjFBKcm7+/9FFwSef
	 vAin4a/niH6/91BbM5DVh/V6wR0qC9qUWVWhfQoLR2CPCL27FHsGRFAxEHsMRDmcpI
	 2ptu9+I2zeDsNyIAJ2Us05H+BnRbi9lPVOcyDzHszAHyjvC0er12/d6JJwvYhe7rvc
	 dp2KBiZAeL2PA==
Date: Mon, 18 Dec 2023 17:37:15 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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>, 
    Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH v2 5/7] x86/platform: removed break to address MISRA
 C:2012 Rule 2.1
In-Reply-To: <a6b3f8d44888d7c8b1d72803111dc331fafd4b02.1702891792.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181737090.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com> <a6b3f8d44888d7c8b1d72803111dc331fafd4b02.1702891792.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 Mon, 18 Dec 2023, Nicola Vetrini wrote:
> The break statement is redundant, hence it can be removed.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:39:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:39:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656455.1024622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP4w-0006Po-SN; Tue, 19 Dec 2023 01:39:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656455.1024622; Tue, 19 Dec 2023 01:39:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP4w-0006Ph-Pl; Tue, 19 Dec 2023 01:39:26 +0000
Received: by outflank-mailman (input) for mailman id 656455;
 Tue, 19 Dec 2023 01:39:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFP4v-0006Pb-Fx
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:39:25 +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 6eb8e5df-9e0f-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 02:39:23 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 7E5D0CE09CC;
 Tue, 19 Dec 2023 01:39:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA04CC433C7;
 Tue, 19 Dec 2023 01:39: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: 6eb8e5df-9e0f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702949957;
	bh=vcPrlmnZ88ug1sjYKjBcxlpuXLKMPT2n/EEagmcdmBg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=QmfRCp7vnDujWl57ZA99auKXwWzo/sXMt2nzraCV9Kn6+nVC2joxemf3WcZWTtbZ5
	 mPmOchE8dmGAge2BUZj7umV8E3lRQQPkF7bXtze6G6cGBrR0mNAnXLCjfrCJ4CXCua
	 mfQ6ob2BiLmrfauEIQ7yGgdvq6R6mwvl8X9IQ0Ipi/6WdsDCFAIq8BCs3XE820rV9W
	 3tjitm32vl0VERi8u6oDYjbVbST3t6mlFGOlenKKE9Qwh4tKhd0+ICGRzlSWrzIUzl
	 udccSiwmY3L6VkDvzYlpPXyzLAqU1feXIboQ1+DxbiDfZvlNdpL+yFgMmlZfLUkAfI
	 VUSWUYWah1+dQ==
Date: Mon, 18 Dec 2023 17:39:14 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@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: [XEN PATCH v2 6/7] xen/arm: vcpreg: address violation of MISRA
 C Rule 2.1
In-Reply-To: <9816362a11aeb7b9618500dea9bbf32e4b5483a9.1702891792.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181739060.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com> <9816362a11aeb7b9618500dea9bbf32e4b5483a9.1702891792.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 Mon, 18 Dec 2023, Nicola Vetrini wrote:
> There is no path that reaches the call to 'advance_pc', thus violating MISRA C
> Rule 2.1.
> A call to ASSERT_UNREACHABLE() is added after the switch, despite this being
> useful to detect errors only in debug builds; if that marker is ever reached,
> a domain crash is triggered, as a defensive coding measure.
> 
> No functional change.
> 
> Signed-off-by: Julien Grall <julien@xen.org>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


> ---
> The code changes (including the comment) were made by Julien in [1]; I added the
> commit text and all other informations.
> 
> All the switch clauses, when expanded, end with a return statement
> and the default clause has an unconditional return, therefore
> advance_pc() is never reached.
> 
> However, it has been deemed safer to crash the domain if the switch is ever
> exited.
> 
> [1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2312151232580.3175268@ubuntu-linux-20-04-desktop/T/#maa91d8025532455a6317119a1e4affa00a99e1ce
> ---
>  xen/arch/arm/vcpreg.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
> index 39aeda9dab62..a2d050070473 100644
> --- a/xen/arch/arm/vcpreg.c
> +++ b/xen/arch/arm/vcpreg.c
> @@ -707,8 +707,14 @@ void do_cp10(struct cpu_user_regs *regs, const union hsr hsr)
>          inject_undef_exception(regs, hsr);
>          return;
>      }
> -
> -    advance_pc(regs, hsr);
> +    
> +    /*
> +     * All the cases in the switch should return. If this is not the
> +     * case, then something went wrong and it is best to crash the
> +     * domain.
> +     */
> +    ASSERT_UNREACHABLE();
> +    domain_crash(current->domain);
>  }
>  
>  void do_cp(struct cpu_user_regs *regs, const union hsr hsr)
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:40:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:40:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656457.1024632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP5d-0007lL-4F; Tue, 19 Dec 2023 01:40:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656457.1024632; Tue, 19 Dec 2023 01: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 1rFP5d-0007lE-1h; Tue, 19 Dec 2023 01:40:09 +0000
Received: by outflank-mailman (input) for mailman id 656457;
 Tue, 19 Dec 2023 01:40: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFP5b-0006pu-Kl
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:40:07 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89de5b60-9e0f-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 02:40:07 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id BC829B81189;
 Tue, 19 Dec 2023 01:40:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA3C1C433C7;
 Tue, 19 Dec 2023 01:40: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: 89de5b60-9e0f-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702950005;
	bh=qyFUzdj3GrvgqqzNOzZYulseNYrCJQV3S1jdwLNn3dY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Q19liPsgPBXU1ieXwxvqOkfWfttyBxo0raDauj16fbDNuMbc2N3pWafg5YZ76togW
	 o4AnnAFtDdsNXsMQ5a81X9rjI9gF2suU/93wz+NPjisG7aD/MSBI2gyu0afANi56RC
	 Gr712OZIXs7BOBRkvDsN4BInIN331yy8Yvn1ASU6xCijTDM713ydzqDu9YHWBwQAc6
	 J9C3oZswhetWsoeDmgj/l8ArTXbmHHloq2wYvQT4UE05PVvoenHehvNMYhQ+h0PPX9
	 QNI+b7wSfB74rhQrCrCJsJolSNZc/5SOk8P2ZFMZX4uGsny91Oon9x6ha6C/7bBMKu
	 8GQTNNaBRYkpg==
Date: Mon, 18 Dec 2023 17:40:03 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 7/7] automation/eclair_analysis: avoid violation
 of MISRA Rule 2.1
In-Reply-To: <6bf425b3d01dc16297ef45e58c03b3ffd803b9e0.1702891792.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181739560.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com> <6bf425b3d01dc16297ef45e58c03b3ffd803b9e0.1702891792.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 Mon, 18 Dec 2023, Nicola Vetrini wrote:
> The presence of an unlinked object file triggers a violation
> of MISRA C Rule 2.1, which is deviated, as it's not part of
> the final Xen binary.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


> ---
>  automation/eclair_analysis/ECLAIR/deviations.ecl | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 85741a2c01a9..e3de0fb2adf8 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -28,6 +28,11 @@ not executable, and therefore it is safe for them to be unreachable."
>  -config=MC3R1.R2.1,ignored_stmts+={"any()", "pure_decl()"}
>  -doc_end
>  
> ++-doc_begin="The following autogenerated file is not linked deliberately."
> ++-file_tag+={C_runtime_failures,"^automation/eclair_analysis/C-runtime-failures\\.rst\\.c$"}
> ++-config=MC3R1.R2.1,reports+={deliberate, "any_area(any_loc(file(C_runtime_failures)))"}
> ++-doc_end
> +
>  -doc_begin="Proving compliance with respect to Rule 2.2 is generally impossible:
>  see https://arxiv.org/abs/2212.13933 for details. Moreover, peer review gives us
>  confidence that no evidence of errors in the program's logic has been missed due
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:43:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:43:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656467.1024643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP8n-0000W1-Iq; Tue, 19 Dec 2023 01:43:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656467.1024643; Tue, 19 Dec 2023 01:43:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP8n-0000Vu-G4; Tue, 19 Dec 2023 01:43:25 +0000
Received: by outflank-mailman (input) for mailman id 656467;
 Tue, 19 Dec 2023 01:43: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFP8m-0000Vo-AU
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:43:24 +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 fcf59113-9e0f-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 02:43:21 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id C4425CE13BB;
 Tue, 19 Dec 2023 01:43:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6CBBC433C8;
 Tue, 19 Dec 2023 01:43: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: fcf59113-9e0f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702950197;
	bh=43gdyIJ4tENk0Ke/rpTkH5mqD3mQiS82ccvL663kAos=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=uuApYyjN926e9gBeDq+0OLxEMAPOpiVp2PZv44SDizqy3nzAqg2VZgUwM1XGU+hrv
	 sw5iey2ZPJERRPJ2I0uwp0d6QJGWQdbvdWmjPHCWcYtXNlK0M83uYXlqUBwOqXwIGi
	 02lXYikcishNisOY5xDF/oEAh5DF4XI2oBmqyxMO6d1/fLkwpbF4mxQFjx5UT2EF4d
	 iez2RXzZB6NIyZmLpuyugtBttfsI86oV6juK8Dzc7MSO1g7JrG1lEF7aNeytgGWWIO
	 kCfIHxUn/5je6ofBA1iWCJ53RiLpxRi8IjfKRLroSAS5kUx5zd7+P6GVfLazAqPlOl
	 jRCR8MLOABxlA==
Date: Mon, 18 Dec 2023 17:43:13 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH] docs/misra: add entries to exclude-list
In-Reply-To: <5df2a8c3c6daa0bec1b38f440fcd8fa3a380a1f6.1702900114.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181743050.3175268@ubuntu-linux-20-04-desktop>
References: <5df2a8c3c6daa0bec1b38f440fcd8fa3a380a1f6.1702900114.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, 18 Dec 2023, Federico Serafini wrote:
> Exclude efibind.h for all the architectures: it is used to build the
> efi stub, which is a separate entry point for Xen when booted from EFI
> firmware.
> Remove redundant entries from out_of_scope.ecl.
> 
> Exclude common/coverage: it is code to support gcov, hence it is part
> of the testing machinery.
> 
> Exclude decompress.h: file ported from Linux that defines a unique and
> documented interface towards all the (adopted) decompress functions.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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


> ---
>  .../eclair_analysis/ECLAIR/out_of_scope.ecl      |  5 -----
>  docs/misra/exclude-list.json                     | 16 ++++++++++++++++
>  2 files changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
> index fd870716cf..9bcec4c69d 100644
> --- a/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
> +++ b/automation/eclair_analysis/ECLAIR/out_of_scope.ecl
> @@ -17,11 +17,6 @@
>  -file_tag+={out_of_scope,"^xen/arch/x86/include/asm/intel-family\\.h$"}
>  -doc_end
>  
> --doc_begin="Files imported from the gnu-efi package"
> --file_tag+={adopted,"^xen/include/efi/.*$"}
> --file_tag+={adopted,"^xen/arch/x86/include/asm/x86_64/efibind\\.h$"}
> --doc_end
> -
>  -doc_begin="Build tools are out of scope."
>  -file_tag+={out_of_scope_tools,"^xen/tools/.*$"}
>  -file_tag+={out_of_scope_tools,"^xen/arch/x86/efi/mkreloc\\.c$"}
> diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
> index 48f671c548..83fae0b4a4 100644
> --- a/docs/misra/exclude-list.json
> +++ b/docs/misra/exclude-list.json
> @@ -1,6 +1,10 @@
>  {
>      "version": "1.0",
>      "content": [
> +        {
> +            "rel_path": "arch/*/include/asm/*/efibind.h",
> +            "comment": "Imported from gnu-efi package, ignore for now"
> +        },
>          {
>              "rel_path": "arch/arm/arm64/cpufeature.c",
>              "comment": "Imported from Linux, ignore for now"
> @@ -97,6 +101,10 @@
>              "rel_path": "arch/x86/efi/check.c",
>              "comment": "The resulting code is not included in the final Xen binary, ignore for now"
>          },
> +        {
> +            "rel_path": "common/coverage/*",
> +            "comment": "Files to support gcov, ignore for now"
> +        },
>          {
>              "rel_path": "common/bitmap.c",
>              "comment": "Imported from Linux, ignore for now"
> @@ -213,6 +221,14 @@
>              "rel_path": "include/xen/acpi.h",
>              "comment": "Imported from Linux, ignore for now"
>          },
> +        {
> +            "rel_path": "include/efi/*",
> +            "comment": "Imported from gnu-efi package, ignore for now"
> +        },
> +        {
> +            "rel_path": "include/xen/decompress.h",
> +            "comment": "Imported from Linux, ignore for now"
> +        },
>          {
>              "rel_path": "lib/list-sort.c",
>              "comment": "Imported from Linux, ignore for now"
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:43:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:43:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656470.1024652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFP9K-0001Bh-QZ; Tue, 19 Dec 2023 01:43:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656470.1024652; Tue, 19 Dec 2023 01:43: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 1rFP9K-0001Ba-O1; Tue, 19 Dec 2023 01:43:58 +0000
Received: by outflank-mailman (input) for mailman id 656470;
 Tue, 19 Dec 2023 01:43: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFP9J-0000Vo-9U
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:43:57 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 122bcfa6-9e10-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 02:43:55 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 3469CB81205;
 Tue, 19 Dec 2023 01:43:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BCDFFC433C7;
 Tue, 19 Dec 2023 01:43:53 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 122bcfa6-9e10-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702950234;
	bh=oWiM59z27pgbt0dbNzQrpyziAjjCdM8kfodYqoPeZJU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=DXxCuKkPYdUCRYon2hdzyzP8SQ6VnURFp6rJHhTpLZbz4MsI8c0wcvODOm3YG9syM
	 GWMOc+ss8G+ecmsmp1pIqKcDYA3ICqJO1z+9FzbFXfGqe67PmH4TcutdEh0WSNn2bj
	 3kyIxqKYxKW5w/h8+oLmSolTnw8lWqifL7+WmEyYuKNY+U3EMWlOWk6Q+JVqIsYP6S
	 eMxEOwr5am+Uim1zeiVxeonasIFSRriVvK885YkcIb7bHms1OAjvxNZhOWYWtE5y6U
	 3WpzXhyO4cF0cBuicDunuT11gE+CToUmfal9aX5fjB0y1JibTdsw4d0yV6hQiBwP13
	 toN0M3BxpRyzw==
Date: Mon, 18 Dec 2023 17:43:52 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH v2 7/7] automation/eclair_analysis: avoid violation
 of MISRA Rule 2.1
In-Reply-To: <alpine.DEB.2.22.394.2312181739560.3175268@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2312181743250.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com> <6bf425b3d01dc16297ef45e58c03b3ffd803b9e0.1702891792.git.nicola.vetrini@bugseng.com> <alpine.DEB.2.22.394.2312181739560.3175268@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 18 Dec 2023, Stefano Stabellini wrote:
> On Mon, 18 Dec 2023, Nicola Vetrini wrote:
> > The presence of an unlinked object file triggers a violation
> > of MISRA C Rule 2.1, which is deviated, as it's not part of
> > the final Xen binary.
> > 
> > No functional change.
> > 
> > Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> 
> > ---
> >  automation/eclair_analysis/ECLAIR/deviations.ecl | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> > index 85741a2c01a9..e3de0fb2adf8 100644
> > --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> > +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> > @@ -28,6 +28,11 @@ not executable, and therefore it is safe for them to be unreachable."
> >  -config=MC3R1.R2.1,ignored_stmts+={"any()", "pure_decl()"}
> >  -doc_end
> >  
> > ++-doc_begin="The following autogenerated file is not linked deliberately."
> > ++-file_tag+={C_runtime_failures,"^automation/eclair_analysis/C-runtime-failures\\.rst\\.c$"}
> > ++-config=MC3R1.R2.1,reports+={deliberate, "any_area(any_loc(file(C_runtime_failures)))"}
> > ++-doc_end

Would it make sense to add it to exclude-list instead?


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 01:49:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 01:49:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656474.1024662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFPEA-0001zu-D7; Tue, 19 Dec 2023 01:48:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656474.1024662; Tue, 19 Dec 2023 01: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 1rFPEA-0001zn-9v; Tue, 19 Dec 2023 01:48:58 +0000
Received: by outflank-mailman (input) for mailman id 656474;
 Tue, 19 Dec 2023 01:48: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFPE9-0001zh-O5
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 01:48:57 +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 c4dd252c-9e10-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 02:48:56 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D1A47611E3;
 Tue, 19 Dec 2023 01:48:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA2E4C433C7;
 Tue, 19 Dec 2023 01:48: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: c4dd252c-9e10-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702950534;
	bh=f3H2YPGB4mkSnGr6Two/tlsKnnMGlZ1oySH+a1+wNLo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dmT/tFuzsOnL5CRGA9atylKG60YzCnFqd+0JiIjZJ33aHtp8vUwQtfnzIqGUpP32M
	 sBJyB03wR8cOjowuuu4jDPvsr++IsljQz8P81rEQJxdcgRh7qJle5DuznYI6oOeVXq
	 tPmtmSdeLiLAHtWKmXtuAnRds+4JtDJQrRbJobeEsy0t5vOm1XvgdEylmwK004RMWD
	 lWET5ct/qomVyGWDDlQIAJtCh1yzYCbWzRAqmIGfUWS9/lGso9ZZ3MWf3Gc+04H8XI
	 XpkyPYOJduTloQZXr8mbImkRh6f35SQZdOzxnMl4OcC7XVSDQF+kjEDdAsiOVkS+lA
	 I3ZXZt4sa6fkg==
Date: Mon, 18 Dec 2023 17:48:51 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: Re: [XEN PATCH v2] xen: move declaration of first_valid_mfn to
 xen/numa.h
In-Reply-To: <ad7ee70bd00c0de4b6dad48c91281929e98ef95c.1702911455.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312181748430.3175268@ubuntu-linux-20-04-desktop>
References: <ad7ee70bd00c0de4b6dad48c91281929e98ef95c.1702911455.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 Mon, 18 Dec 2023, Nicola Vetrini wrote:
> Such declaration is moved in order to provide it for Arm and PPC,
> whilst not violating MISRA C:2012 Rule 8.4 in common/page_alloc.c:
> "A compatible declaration shall be visible when an object or
> function with external linkage is defined".
> 
> Signed-off-by: Julien Grall <julien@xen.org>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


> ---
> Changes in v2:
> This patch is a rework of a previous one appeared in this series [1], of which
> patches 1 and 2 have been committed already.
> 
> The updated patch was provided by Julien in this thread [2]. I added the commit
> message and the rest of the information.
> 
> [1] https://lore.kernel.org/xen-devel/cover.1702285639.git.nicola.vetrini@bugseng.com/T/#mee6def855787d932fe2f10d5648d437dcb6f046c
> [2] https://lore.kernel.org/xen-devel/cover.1702285639.git.nicola.vetrini@bugseng.com/T/#m3c5b141b806530b5920bb5e9dd53631195560317
> ---
>  xen/arch/arm/include/asm/numa.h | 6 ------
>  xen/arch/ppc/include/asm/numa.h | 6 ------
>  xen/common/page_alloc.c         | 6 ++++--
>  xen/include/xen/numa.h          | 2 ++
>  4 files changed, 6 insertions(+), 14 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/numa.h
> index e2bee2bd8223..a2c1da4a82f7 100644
> --- a/xen/arch/arm/include/asm/numa.h
> +++ b/xen/arch/arm/include/asm/numa.h
> @@ -11,12 +11,6 @@ typedef u8 nodeid_t;
>  #define cpu_to_node(cpu) 0
>  #define node_to_cpumask(node)   (cpu_online_map)
>  
> -/*
> - * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
> - * is required because the dummy helpers are using it.
> - */
> -extern mfn_t first_valid_mfn;
> -
>  /* XXX: implement NUMA support */
>  #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
>  #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> diff --git a/xen/arch/ppc/include/asm/numa.h b/xen/arch/ppc/include/asm/numa.h
> index 7fdf66c3da74..204180ad5b98 100644
> --- a/xen/arch/ppc/include/asm/numa.h
> +++ b/xen/arch/ppc/include/asm/numa.h
> @@ -10,12 +10,6 @@ typedef uint8_t nodeid_t;
>  #define cpu_to_node(cpu) 0
>  #define node_to_cpumask(node)   (cpu_online_map)
>  
> -/*
> - * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
> - * is required because the dummy helpers are using it.
> - */
> -extern mfn_t first_valid_mfn;
> -
>  /* XXX: implement NUMA support */
>  #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
>  #define node_start_pfn(nid) (mfn_x(first_valid_mfn))
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 9b5df74fddab..d874525916ea 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -255,8 +255,10 @@ static PAGE_LIST_HEAD(page_broken_list);
>   */
>  
>  /*
> - * first_valid_mfn is exported because it is use in ARM specific NUMA
> - * helpers. See comment in arch/arm/include/asm/numa.h.
> + * first_valid_mfn is exported because it is used when !CONFIG_NUMA.
> + *
> + * TODO: Consider if we can conditionally export first_valid_mfn based
> + * on whether NUMA is selected.
>   */
>  mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
>  
> diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h
> index 287e81ff6666..a10d4b1778a0 100644
> --- a/xen/include/xen/numa.h
> +++ b/xen/include/xen/numa.h
> @@ -108,6 +108,8 @@ extern void numa_set_processor_nodes_parsed(nodeid_t node);
>  
>  #else
>  
> +extern mfn_t first_valid_mfn;
> +
>  static inline nodeid_t mfn_to_nid(mfn_t mfn)
>  {
>      return 0;
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 02:03:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 02:03:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656480.1024672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFPRx-0006Z6-Gf; Tue, 19 Dec 2023 02:03:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656480.1024672; Tue, 19 Dec 2023 02: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 1rFPRx-0006Yz-E5; Tue, 19 Dec 2023 02:03:13 +0000
Received: by outflank-mailman (input) for mailman id 656480;
 Tue, 19 Dec 2023 02: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=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFPRw-0006Yt-Fx
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 02:03:12 +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 c0fbea79-9e12-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 03:03:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 6CF30CE1410;
 Tue, 19 Dec 2023 02:03:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C181C433C7;
 Tue, 19 Dec 2023 02:03: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: c0fbea79-9e12-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1702951384;
	bh=dpgWT01fU4hhboUDI1MXZ5wydri4P15xWeYtybGoqss=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=X9MkZ5U3ga9Grza6T1S4GM6kuF4OvzR5sHeKsLKWMOhA/b/Mamy16JUmrkjcONSOQ
	 IKt2jkKgdIl1W7Mg8k50OHE7efBJVj4wGOqJoy/nwpn7J7UeDWzkns9Amh3xryrD/W
	 RZ4uuAYebQsSXZ2sEpUglJMYOK25p53f0HIJxxkNcyU/MbXRBvcC0Uc0StIxmvweIa
	 k7ezK+5WCprX1b/XJWlcBUG5LF2cVtxBBfwCaIFJLIgjf3C+dUOE2B4pgqT338uzBN
	 5Zi2Rzg/QqDx2k0944A6whBNSzOoEVuNDxi88nSEAVlGDserzoDJz3+R6qi7jaXUSh
	 nAeZYrsphX1vA==
Date: Mon, 18 Dec 2023 18:03:01 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    xen-devel@lists.xenproject.org, Anthony PERARD <anthony.perard@citrix.com>
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG
 for randconfig
In-Reply-To: <d56aa264-41f2-4cff-97dd-1a222750a389@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312181753160.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com> <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com> <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com> <7ec81395-298d-4d50-89af-d54f756ef657@suse.com>
 <95d3e8e9-66d3-4097-b2ed-c808369a08ac@citrix.com> <d56aa264-41f2-4cff-97dd-1a222750a389@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-655612109-1702950853=:3175268"
Content-ID: <alpine.DEB.2.22.394.2312181754260.3175268@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-655612109-1702950853=:3175268
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312181754261.3175268@ubuntu-linux-20-04-desktop>

On Mon, 18 Dec 2023, Jan Beulich wrote:
> On 18.12.2023 17:07, Andrew Cooper wrote:
> > On 11/12/2023 3:56 pm, Jan Beulich wrote:
> >> On 07.12.2023 21:17, Andrew Cooper wrote:
> >>> On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
> >>>> ARCH_FIXED_CONFIG is required in the case of randconfig
> >>>> and CI for configs that aren't ready or are not
> >>>> supposed to be implemented for specific architecture.
> >>>> These configs should always be disabled to prevent randconfig
> >>>> related tests from failing.
> >>>>
> >>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> >>>> ---
> >>>>  xen/Makefile | 5 ++++-
> >>>>  1 file changed, 4 insertions(+), 1 deletion(-)
> >>>>
> >>>> diff --git a/xen/Makefile b/xen/Makefile
> >>>> index ca571103c8..8ae8fe1480 100644
> >>>> --- a/xen/Makefile
> >>>> +++ b/xen/Makefile
> >>>> @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
> >>>>  # *config targets only - make sure prerequisites are updated, and descend
> >>>>  # in tools/kconfig to make the *config target
> >>>>  
> >>>> +ARCH_FORCED_CONFIG := $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
> >>>> +
> >>>>  # Create a file for KCONFIG_ALLCONFIG which depends on the environment.
> >>>>  # This will be use by kconfig targets allyesconfig/allmodconfig/allnoconfig/randconfig
> >>>>  filechk_kconfig_allconfig = \
> >>>>      $(if $(findstring n,$(XEN_HAS_CHECKPOLICY)), echo 'CONFIG_XSM_FLASK_POLICY=n';) \
> >>>> -    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG);) \
> >>>> +    $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_ALLCONFIG); \
> >>>> +    $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat $(ARCH_FORCED_CONFIG);) ) \
> >>>>      :
> >>>>  
> >>>>  .allconfig.tmp: FORCE
> >>> We already have infrastructure for this.Â  What's wrong with
> >>> EXTRA_FIXED_RANDCONFIG?
> >> What I don't understand here is why dealing with the issue would want
> >> limiting to gitlab-CI. Anyone could run randconfig on their own, and
> >> imo it would be helpful if the same issue(s) could be prevented there,
> >> too. Hence my earlier suggestion to have a snippet which can be used
> >> by "interested" parties. And once dealt with in e.g. the makefile
> >> there should not be a need for any overrides in the CI config anymore.
> > 
> > This is trying to find a solution to a problem which doesn't exist.
> > 
> > RISC-V and PPC are experimental in Xen.Â  Noone else is going to come and
> > randconfig them until they're rather more production ready, and a
> > prerequisite of that is removing this list of exclusions.
> > 
> > Until you can actually find an interested party to comment, I think this
> > is just churn for no useful improvement.Â  If nothing else, calling it
> > randomforced.config isn't appropriate given the explanation of what this
> > target is used for...
> 
> "random" in the name can't possibly be right anyway. Such collection of
> fixed settings would also be relevant to e.g. all{yes,no}config. Yet
> that's still not the same as any kind of "default" config, which the
> two architectures presently kind of abuse for the purpose of defining
> required-fixed settings.

One thing for sure, I don't think it would be a good idea to add extra
temporary Kconfig changes like these:

[1] https://lore.kernel.org/xen-devel/cdc20255540a66ba0b6946ac6d48c11029cd3385.1701453087.git.oleksii.kurochko@gmail.com/
[2] https://lore.kernel.org/xen-devel/d42a34866edc70a12736b5c6976aa1b44b4ebd8a.1701453087.git.oleksii.kurochko@gmail.com/


I agree with Andrew that RISC-V and PPC are experimental so whatever
works to enable them to make progress on this issue with a small effort
is sufficient. I would be happy with a quick respin of this series
following the gitlab-ci approach. This is good enough.

And I think that having some sort of fixed seed (seed.config?) for
randconfig would also be fine and potentially more reusable.

But I think Oleksii should go forward with whatever approach he prefers
and he is more comfortable with, as long as it is not [1] and [2].
--8323329-655612109-1702950853=:3175268--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 04:38:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 04:38:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656486.1024683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFRs2-0008PB-1n; Tue, 19 Dec 2023 04:38:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656486.1024683; Tue, 19 Dec 2023 04:38:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFRs1-0008P4-Ux; Tue, 19 Dec 2023 04:38:17 +0000
Received: by outflank-mailman (input) for mailman id 656486;
 Tue, 19 Dec 2023 04:38: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 1rFRs0-0008Ot-Ku; Tue, 19 Dec 2023 04:38: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 1rFRs0-0006zG-Dq; Tue, 19 Dec 2023 04:38: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 1rFRrz-0002Ir-Vb; Tue, 19 Dec 2023 04:38:16 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFRrz-0001IS-V8; Tue, 19 Dec 2023 04:38: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=seQFHm+f77mbUQTjLaT+TC2zjraMrONHnEyXa08d5ps=; b=f9ixpVyDD/iyrAaoYqsUP5/DZk
	H0qLrhmNOxQTTTlRy3aq01fR+riNIgiQhl4dGpMCr8VW6CZpQMzfxtkjeyEJODEHzpcTnWBGA2cbg
	kKz6l1BAxhWY9nUEbi6mf6U1sbgpG4LI6g/N6+lD0YPtV6He3MsIn5cgJjBdPDyS0wuI=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184169-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184169: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-credit1:guest-start.2:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-qcow2:guest-start:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-libvirt: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-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-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=0cc74376d6823e0883f89556be2a267f2240a558
X-Osstest-Versions-That:
    xen=a60067f39882a4f40547fc0cd8177bac89cb01b7
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 19 Dec 2023 04:38:15 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit1  19 guest-start.2       fail pass in 184171-retest
 test-armhf-armhf-libvirt-qcow2 13 guest-start       fail pass in 184171-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail in 184171 like 184161
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check fail in 184171 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184161
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184161
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184161
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184161
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184161
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184161
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184161
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184161
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184161
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184161
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184161
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-amd64-i386-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-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-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  0cc74376d6823e0883f89556be2a267f2240a558
baseline version:
 xen                  a60067f39882a4f40547fc0cd8177bac89cb01b7

Last test of basis   184161  2023-12-18 01:52:13 Z    1 days
Testing same since   184169  2023-12-18 17:38:51 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.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>
  Simone Ballarin  <simone.ballarin@bugseng.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   a60067f398..0cc74376d6  0cc74376d6823e0883f89556be2a267f2240a558 -> master


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 05:37:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 05:37:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656410.1024729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFSnA-0008LR-87; Tue, 19 Dec 2023 05:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656410.1024729; Tue, 19 Dec 2023 05: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 1rFSn9-0008LK-RK; Tue, 19 Dec 2023 05:37:19 +0000
Received: by outflank-mailman (input) for mailman id 656410;
 Mon, 18 Dec 2023 23:34: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=vkXa=H5=gmail.com=j.tretter@srs-se1.protection.inumbo.net>)
 id 1rFN7x-0004ry-5X
 for xen-devel@lists.xenproject.org; Mon, 18 Dec 2023 23:34:27 +0000
Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com
 [2607:f8b0:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f8647da6-9dfd-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 00:34:22 +0100 (CET)
Received: by mail-ot1-x331.google.com with SMTP id
 46e09a7af769-6d9dc789f23so2862108a34.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Dec 2023 15:34:22 -0800 (PST)
Received: from ?IPV6:2603:8080:a900:257c::1000?
 (2603-8080-a900-257c-0000-0000-0000-1000.res6.spectrum.com.
 [2603:8080:a900:257c::1000]) by smtp.gmail.com with ESMTPSA id
 y7-20020a056830108700b006d811e1d91dsm4769882oto.72.2023.12.18.15.34.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Dec 2023 15:34:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: f8647da6-9dfd-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702942461; x=1703547261; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:sender:from:to:cc:subject
         :date:message-id:reply-to;
        bh=SO6Sl5ifYWsL2JO/YPTPRaJsoTvv2mbEklUpphNlq+0=;
        b=X9VQPkR5RpKqdq2f15lAKcBKugTs/Qxjx31JoMwP1XIfSTVVKOeVBvIKKrLMdotADg
         x/YLMY4eTziZluGE1kMSlk5ztR4dXQOebMYsfMjiOz/LeOOWUHG/ZKp1IiBoLI+NZ6FZ
         moPhSvXm8iYxINKZnfN/DjlutVqfaOujdwh2M4f7v68Pej5uNFj/Xo+NcNTpjxlyAikl
         sdNouv1O6J6Gdalr1+7VRYyGZ5aYOPYCE0L/i9hWtuTXpOcpd3ABFuyNzm4khsU1VA+7
         AMkZs0cBdSzEXp5qI4u00I/vYf/HS67JGRptjeW6/daTCCP0RtVgfDwkMS93GqW3fM4j
         5xfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702942461; x=1703547261;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:sender:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SO6Sl5ifYWsL2JO/YPTPRaJsoTvv2mbEklUpphNlq+0=;
        b=skN8UyLgbwFDR8eQryuuxrYv6umfvS8dc0OoLD2SCZZxIBB3xY7fCYx8UW+bYj7w5d
         4314we9ncMeAacb4JaPfSrdsZoEaQPGKw0AYpK+xLxLmJgpEaj3RKNVsE1xnm+fuFKM0
         zHkaq4urR3gRldklQBLNPGLt3dG2vbzhUOxv9pz0JB/MOSpyCGgH07jo6rHkP7PVgVCW
         4dYlRcNVPFOA75e4yDx5jKV2PVUMJCH55YtG5o4ex+erHII4+Hvau0YGdSw7NiOVTEwH
         UJQPdRfdj1S2fCvCDaCdGNKcdO4+rJAk2NhvKaIr/CmpnSpeMPVUY30NhxIBJokPKith
         j2nw==
X-Gm-Message-State: AOJu0YxtDuFmpVO8l80jo5XpZwWj7pki8gVbVotbF2oW+s3GF848xw+l
	hj3BIuJQBX6Am0yCQ583vyw=
X-Google-Smtp-Source: AGHT+IHtl68WqNw3gARXdgolwOVVxXKievEZu0PMHQbeTq7c2erBOSl54UnOgXUltqQakkFVfQmYfw==
X-Received: by 2002:a9d:7a94:0:b0:6d8:74e2:6f32 with SMTP id l20-20020a9d7a94000000b006d874e26f32mr12705763otn.46.1702942460213;
        Mon, 18 Dec 2023 15:34:20 -0800 (PST)
Sender: Joe Tretter <joerg.tretter@gmail.com>
Content-Type: multipart/alternative;
 boundary="------------hCk0kKugjlmdNsdGGrRNGFWF"
Message-ID: <a0aa0326-398f-44a1-a5df-fde3e7fea138@gmail.com>
Date: Mon, 18 Dec 2023 17:36:18 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Possible bug in Xen
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <de8b87e2-a4a2-4e49-80f5-97c745f46500@gmail.com>
 <9cc86706-5791-4967-802c-3e665bc97804@citrix.com>
Content-Language: en-US
From: Joe Tretter <j.tretter@gmail.com>
In-Reply-To: <9cc86706-5791-4967-802c-3e665bc97804@citrix.com>

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

Hi Andrew,

I have tried it with your suggested command line, and it "feels" like it 
makes the issue occur less often (but one never knows with sparse 
intermittent issues).
The first time I ran my test, it took 23 minutes before the error occurred.
However, I picked that when running two processes simultaneously, the 
issue occurs reasonably fast.

I have, however, not been able to verify during runtime that the 
parameter really arrived in Xen because /proc/cmdline didn't show the 
Xen parameters. But I have taken a screen shot of what I have done to 
submit the parameter.

If you tell me how I can view the boot options in a running system to be 
certain the option has is effective, I'm happy to run the test again.

Side remark: To make reasonably sure the issue really only happens with 
Xen, I have re-verified that without Xen the issue does not exist, even 
with two instances for more than 1.5 hours.


Regards

~Joe


On 12/18/23 09:40, Andrew Cooper wrote:
> On 18/12/2023 3:34 pm, Joe Tretter wrote:
>> Hello,
>>
>> I discussed the below problem with the QubesOS team on Github
>> (https://github.com/QubesOS/qubes-issues/issues/4493) and they suggest
>> that this seems to be a problem with Xen, and suggested that I post it
>> to this e-mail address.
>>
>> I have problems restoring backups in QubesOS release 4.1.2 on one of
>> my machines.
>> Other users reported the issue too, but no QubesOS developer seemed to
>> be able to reproduce it, therefore nothing happened for a while and
>> the assumption has been that it's some sort of hardware problem.
>>
>> I analyzed the problem down to the "scrypt" tool
>> (https://www.tarsnap.com/scrypt.html) falsely complaining that the
>> password would be wrong.
>> I proceeded and re-compiled the "scrypt" tool in it's latest version
>> and found that the self-tests show intermittent erratic behavior.
>>
>> This issue only happens with QubesOS/Xen Kernel, if I boot into a
>> kernel without Xen, the problem can't be observed.
>> The problem can only be observed on one of my machines which is a Dell
>> Inspiron 5675 with an AMD Ryzen 7 1700 Eight-Core Processor.
>>
>> I hope you can help with this issue.
> So the issue is specific to your AMD Zen1 system, and only when Xen is
> in the mix.
>
> Can you try booting Xen with spec-ctrl=eager-fpu and see if that changes
> the behaviour ?
>
> ~Andrew

--------------hCk0kKugjlmdNsdGGrRNGFWF
Content-Type: multipart/related;
 boundary="------------4zUybrlZy0Fs0mOGaMsg50Ia"

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

<!DOCTYPE html>
<html data-lt-installed="true">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    Hi Andrew,<br>
    <br>
    I have tried it with your suggested command line, and it "feels"
    like it makes the issue occur less often (but one never knows with
    sparse intermittent issues). <br>
    The first time I ran my test, it took 23 minutes before the error
    occurred.<br>
    However, I picked that when running two processes simultaneously,
    the issue occurs reasonably fast.<br>
    <br>
    I have, however, not been able to verify during runtime that the
    parameter really arrived in Xen because /proc/cmdline didn't show
    the Xen parameters. But I have taken a screen shot of what I have
    done to submit the parameter.<br>
    <img src="cid:part1.hXfpvhA2.0A0RW1eF@gmail.com" alt="" width="1090"
      height="460"><br>
    If you tell me how I can view the boot options in a running system
    to be certain the option has is effective, I'm happy to run the test
    again.<br>
    <br>
    Side remark: To make reasonably sure the issue really only happens
    with Xen, I have re-verified that without Xen the issue does not
    exist, even with two instances for more than 1.5 hours.<br>
    <br>
    <br>
    Regards<br>
    <br>
    ~Joe<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 12/18/23 09:40, Andrew Cooper wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:9cc86706-5791-4967-802c-3e665bc97804@citrix.com">
      <pre class="moz-quote-pre" wrap="">On 18/12/2023 3:34 pm, Joe Tretter wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Hello,

I discussed the below problem with the QubesOS team on Github
(<a class="moz-txt-link-freetext" href="https://github.com/QubesOS/qubes-issues/issues/4493">https://github.com/QubesOS/qubes-issues/issues/4493</a>) and they suggest
that this seems to be a problem with Xen, and suggested that I post it
to this e-mail address.

I have problems restoring backups in QubesOS release 4.1.2 on one of
my machines.
Other users reported the issue too, but no QubesOS developer seemed to
be able to reproduce it, therefore nothing happened for a while and
the assumption has been that it's some sort of hardware problem.

I analyzed the problem down to the "scrypt" toolÂ 
(<a class="moz-txt-link-freetext" href="https://www.tarsnap.com/scrypt.html">https://www.tarsnap.com/scrypt.html</a>) falsely complaining that the
password would be wrong.
I proceeded and re-compiled the "scrypt" tool in it's latest version
and found that the self-tests show intermittent erratic behavior.

This issue only happens with QubesOS/Xen Kernel, if I boot into a
kernel without Xen, the problem can't be observed.
The problem can only be observed on one of my machines which is a Dell
Inspiron 5675 with an AMD Ryzen 7 1700 Eight-Core Processor.

I hope you can help with this issue.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
So the issue is specific to your AMD Zen1 system, and only when Xen is
in the mix.

Can you try booting Xen with spec-ctrl=eager-fpu and see if that changes
the behaviour ?

~Andrew
</pre>
    </blockquote>
    <br>
  </body>
  <lt-container></lt-container>
</html>
--------------4zUybrlZy0Fs0mOGaMsg50Ia
Content-Type: image/png; name="JXG087DrETiEigtZ.png"
Content-Disposition: inline; filename="JXG087DrETiEigtZ.png"
Content-Id: <part1.hXfpvhA2.0A0RW1eF@gmail.com>
Content-Transfer-Encoding: base64

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
RBZDcFfCc6vg0cCHGpTMcKaQJtNSx44exuvr6wmZWiX62cmpB8XvEtEul0s1IFWI69+KqJpd
pQjROzd5Bn1mLYN6LRvMmKYJxNY6Oedz22cNYhN5CT8iru5RCaUUy+LUjBcmStR2JTG1BBEJ
qnMNfE+VIc2EGoZ0qspTZY1KK5kTz7PPFCb+UWHRvRGmrIggs+BLA5YkUGUGhAXQsih5P66R
7WOVyGOMtTuEMh4NFNPxQrxY11bxzx81JsrRlIjr9VoZB/fKUQ6llOqo1rO9Xq81Q//t7e1E
71XJjT86jPmMlKw1jSpZZNpKP3xpko3eh7Amv2L2JP9XQwIwg4odQggzpaFeqWbbM/I7roXB
XGXkKpyUL1GoKX8gzhKXuS/+3xt8imOquHOdOgJEg2WV/wC14k0FBnFEn8P1kyddLhfknDFf
L6dRHExeUWO4hwv3V9dUWkBUnY8qPPmdfd+rgkBeqQlYNcgdzo5TVRD0THphqUrqcRyne+u6
SSe9Mn5WOvMJZ1UJ4TpVWVOHiCpFqnSp0qSOUP6oUUReelaqW2arOspJ0z1/U2NIkyFUOVe8
pj7A33POp5Ekqsjxc92HGhGtBf95lv1X9+EZEb5ch8Km/37O3ezTcnbY2+iC1mabOKnzDxWn
dU8qE1XO8sXzVNnGc+iVu955pUaQrbXBW404vqdZs6pA9rRNxx9fvdNc5XmvzHJPTEIk7Wmm
OkKb1cYzVX6nnX/0fYWXJs4RJylLeuWbL9VF9QwoJ9SA12C08r+vKjrVUaJ/9/JLZYfBpAXu
+D19nuJP74CoFRW5GTGa/KO8UmWlyrxeP++/q/BXHOG1GrhQvFejR/FDdcPeOdL0tHMSGz/X
+6qB3PZ0PpOe7nTv/XnwejpzVUarg0TXoTL4K2OPdKR4UEqx9rXCi1WP6g1/XftXcOydE8RP
DTJRNlEu2zpgFY/bDpsXbm2EgxfVWOvEH/em+AecHXT6uSb2cR0KP5PJ25dOZHXg674UP8kj
jr1VUOpoKfJS8oIzr/9x1qvyVX1fdT6Fp8pkdepr8KW/pzpsvqKT3tmjZ45gznCeJc+YjkTK
DYWvPkdlgepR6mAgv1ac46t3dup99WwV16h369r0+p7GdF09TitMyJ/1mbofc2T86DA++Rsk
WZf30H3rualuRhvjb8FJ4dzbRH9r/yo3eppVfAaavNWCA8VVwor/67N1rfyurpcBPt2Lwl/3
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
xBH3u/1eXRcbE0KWKesydW2rxXKhEKS6aZUr9J3vyHS00eqPPVBWKGs7FXmm66sLXVye62Mf
+yZ9/L/8uELIVXdSI6ksZyqLmX7mZ/6F/tyf+bOalaWeeOJW0odTe45+KctSeRZtdt20ms1n
2u62apta9169q+eeelLf82e/T8+//UVlean/61//a/3p7/0zeu+73qWbN29GmWykuj6o7Rp1
XaayyLXbbHX/1QdaznP9Nz/4N/X0M2/VN3/zN6uq4zj6vCj7IsXYBVjVB+13exVFrrKcqanj
79qmVZHHYxgoxsDeSMOUNbczU15Gz3oMP9iDobHEQV9iZX4f9U6V4lRPPDmg7/G4J0v4k85X
T4K6L+p75SCnNB4D6/4IgKWDqp26OKEjy2I3UBWPLAwh6hF1w5Qrn8zGc5iWSceq+zmedCUx
Bu2h5ZTG/N2TUL52T+R7LIYvxNF5rNWLvVmzx2Twxna7TZgZz2Of/ehJT9RNz+wFs/AiKBIr
jp+x5+hc8DliQnw2308AfedXfF7wImI5jx3wsxwXgD/hGccJoRtr8IQR/DTCI4yO+/0+HUHX
tjGxDc4F79Dd7c0KHh87v3pDkxcosOeeXLy4uEh+c13XOj8/1wsvvKD5fK7Pf/7zqVgVH919
H96D2Gq9XuvRo0cpoUARwJNPPpnodegLZZA/T9big+InQheezx4OsdrQcetJKJdf1j7FAeL9
dwnbSPFgPzFnuVoqaHw2s/usXpzNUQvwnxcH+JGbyKF30/O7lPTqp1d5TAK9SWDTtcn1FKMQ
D5Cc9A5JnsF+8efNmzfTvdDh6F6Pjdgr3v/evXspNvJGI89BOK35OO+S0MMWYHeYKoVucnsK
n4AfgF9N9SLyOJ/PdXx8PCo2o5ns+Pg43cPjMOQIW4QOnzYuuq3z2JG9pPAjHfGgYfoZe8Vn
NovHvyAzu90uyb4/k+8yVWM+n6eYEjlBX9V11cei294PAK9oRQMDcj2Ni+Jexvg/ymTVP3cn
iaOQh9jasTb4B96nwen8/FzSkHyGF7geHgIrcswYfQymyJEWXdtKoetzJdJsPlM8EgkcIBZb
ZpYUdvw3y3PduXNHr7/+erKRTntJqVHK9Tk8zXt6IZLjMEzC4H7oU3QShRA0FVLw4thYtBG7
fg/iRMaIQYU+bmY6Kw2rQwI/YsCHXtZ2yrIY4xRFGfH13U5lOUxecT72D/Ysy4aie+wmuoX9
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
1dSN6j4wR2/D/6kgoxi6kB0AclAY/kRHcq7jFCTkWiYHPXz48A3JYfgOPiW4wEeAnp5UZc/d
UfafebEA9tELOIbnD/4EcjEUYQ2AlndOAQz5xJCUdDXb4OeGokM80HEAiZ95RxrrxgHHjymK
4SgY13voBudR19UOSndd10+Q6EZFENDKi3fYa+Tfjz1omkb37t1L92C/oHFd16mQi/VyBAn6
r23b1AFBkSA6ANuI/GELfC0Omrs/5zYAevooP57l7+ZyTuCBH+Q+H79z8PP/D/Dwn7MOlzE+
zqskZZznkRN8du7LO2IT43OH/YPWbm9dRziv8Tv22O2HgwDwlvv/PAfZoFAD+nvcM/VDXMc4
X0/5nDUgwwA1Hvs4sIaMAewiy/CBJ554F+eHqqoUMooRep2SxaPK8jyoLAtdXV7p4vxCyyzX
o/1DdV2r9375A1VNrdBJRRZ02O/VtrEDIS8yhS7omTtP6rv/8B/Qj/ydv6PtYZfADSl26xwO
+1gsnQ1H52RZpjLLtLk403JRmM3g/YeiKyaOxb0MaupWh6pS1jTKs6CslnJlWs4WOlquVc5K
Xd27r7/9w39LRddqUWaazTLtqkp/4S/9Fd15/lTzxVI3b97SLJ8p6+I6PvnJX9UnPvHnNCsy
laU0L2daLpf6ob/232o1X+qd73iHylxS2yiLOV4VZa7VeqXZrFCWdZrPC83msQAp6ydEVEy9
qGrt95X+7v/4I3r11Ve1mpcqi1zHx2s99fQz+tjv/DapazWfx6Ts/nBQWRTqsqCiKEWxXDwg
a9wN4BM44AMHQDp1qnofJoSg+WKuqq706qtf1G/8iq/Qf/3H/6R+8if/uX707/19Pf3EExHw
2wY9uPea3vLsc/rzP/AD+vEf/3H96I/+qJ5+stPZ2SPdu/eafv8f+Lieevop7ao6dqW30nq1
1qIs9Sf+qz+m5Xyu2TzTw8eP9eGPfL2++qu/Vj/83/9thSB9+3d8q3b7vaq20cnpib70xbv6
J//on2i1PFIWgq6vrnXv9de0rw/61m//du0OlTbXGynE7vrj42P9m1/4RX3uC1/QSy++qP2h
Umj7buvdRo/Pz3Tzqdt6/eFD3X76WT14+FCdgqqmjRNIisiH15dXevT4oU5u3NDzz79VZxeX
CiGXglSWhZ57y3P6V//nv9LpcaWnn3lKVbVX3R70NR/6Gn3hlbv6tV/7D3rfe3+dWnVquk6N
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
kxvXyasSbzRlXpDXnuPslMyIjet9N67xD3/o7/PL7/tVfv/3fpuhXfONX/e1vO7Vr2R2NKfI
Aqv1hi954xvI8hKlDFlUxX3D276Wn/nZn+Xf/PTPcO/ePZRtKbynmhS89Rvfyvf/nb9LXtQ4
H2Km6oBHBt2ubXnX93wvH/jAf+a+69e489wz/G9//3/mu//236YdetrOEhDl7a3nnue9P/Fe
3vr2r+OLXvda8jxjGBS/+7v/mb/39/4XHnnoIcrM8Mxzn+Wbv/kdfPu3fStPf/ozYt8yWK6W
K5abDZfrLZ999jn+yx98gOPjBZNJTtO0LBYLLi/Px5x7sT+Rjf/8/JyyLEf7k3RI01rje2lK
Ntsd06qka1rs0OO1xnklOcMmZ1JPuLp3SaGhqjO63ZrzZs17f+LHePmr/jzFZMLVasvZ2Q1R
VsVzpbfS2HjHO/4Sjzz6CP/H//7DPPu5Z7l+7RrHJ0cYrajrkvV2hx0Ggg/M5jOKsozFiMO7
DmslX94YxcW9e0IuUJouwNHimCc/+jFu3Dxlt1txcXHJ8dER89lU2IXOYftBDpcxwDs1F+pq
iu0GCpMx+EC364T5aBD2XSy4r9qVWNtqw263ZTqpUSjs4Fh26wh8idOBtYM0Lr2LlojSVCwj
CHKYjZ6ApNS0TMq8BMynw8BqtaKOiukEaqYGfALwxRZdyBx5nmN0xmYrTDznAllmogtC4BCo
TarivZOA9PfazY6iMNy7c5uv+4Zv4Pt/8AcJKP75j/8Uv/Qf/gMPPziPFtiKoe1GW/a1FbDN
Oc+2abBu4PT0FD3EXGWj5WAUCQd37t7hbd/4drpu4A8+8AGqoaYqS1Gy1QXJOj0zRli4TkDb
lCv9hYrCPGYxF3kR782Ik4VVkbGKsF+tNO5CCLjQCUErqoi32x3VdIJWij4W5abI6duWspRn
K/mfZrSZTwVmepdJlZkXubASFRR5QVYI6OOtEHuS4je9+3RoaJom2qnLoS6phhOAKe4EUU0V
M5dD8Lh+wAfJiV9v1wTrxsI1HToTOFmWJeHg0JiU8YdEgTG39EDFLU2XvYL0EOw/ZASm8ZsO
BwmYS8B/Uvg3TTM27/cb8wszexJj8pCNn37vviETRrClKIoRoDqMiFCxkZAOVum5JxJfuu+r
qyuMUSOJL2XHJ2V/lgnBY7veUB7YAafrd86N15BA4HQ/+8/Ixu9NBJ5D1QEI+zIB2unvDgkZ
6e/TzxqtsV1PXZQMbRefpYCcJkvRJTLuEohmlKbI83jQH9g1LfPjBefn58IgTsSECEyncZ7G
ShpTaVym60vkg0RqSeNhGIbxc5LbQ2q0WWvHNU0s4BQp9zkEJJYgAux5psfnsdsJoauqRGl7
eXlJXddUVcV2sx1VugngFOszi8n8C95FeleJ0AnSBHR+GMdgAt+98wyWcU1PpJYU8ZLGXiJr
JPKGOpg/6d2mZtMhASatqYlEsd1ux7U7XctqtYp21Joir+KzGYRlXNQUeUGz65jMZnRdiycw
P5JDio+NuKzIUQi4cXx8PM69pmmxg6MsxYnkarl3DMiLAuK87rqOzXaHyTLQUqdZ2437VFkI
CW/wokhXSolrTrRAqyqJ6KjqCSnLuus65nWFC34Ey5IKVBsjsS4A3mEKGUOFKSJALSQCNwwU
xYRd01AUBqUVzntQGZhoWagQkJxANziyLMc7R5HXBGVpe3GssF7+zka17B7oUwRtWG93L9gH
tHSUGKLV4DBYsqxg20kEyzI6Xng0bhCLce89zW4XCSiK9bZh23ScnJzQtS15UQkhb7VBA9PJ
DB+t96p6ivNQTKZobei7nsxojo6OWK2WdJ24jOUxSijLS3GuyER9lcCnsqyYLY4jsGxRJiPL
yngAE2WPznJaO1DkBYNX5PUMR0Y5EeKfqTXWxmuylouLS7JMyKVCalhEIHom8xZxRBgjFGy/
j0NSCmuJQFBGbwODlcauNjmZhq7vxLnAgxvkgGiMxlvwfoiEFI3tU5NVngPaRNG5RHcM3hIG
ARnarif4Lq6pBhXJsiOcGdfDLDM024HLi7vSbEYcwEKKCYn7qjEZ26ZhGCR7b7vdorTiUl3F
fUEiQbQ2Y62YyOT7JlygKEpWq+XY9EoZ3iB2iAmTlbirkrbtGHrL8ckC7wNBq7FeDASaXfOC
Pf2hhx7g4vxiVAdZ70fbzLSXTOpyVPqNa6e3kXChI8jImIN9SFz0JBWlAg/O+gjWZ7jgCTrE
Qz1COAqSWa1Q+BDjWJzFDl4O7Ek5NOZIyziuiiKCLRE4iYhaihsTsCmIkpWAUkKwmM/nUndp
w2RSi0MeEluhjWE+mzGpJ0K+UYG8zMc1vOvaWGcXe9AAAaOE7JmzXC25cXY9KoP9CMiL/S/i
3qCEHLJarRnswOxoLme81RXz2Zx6UrNar3GD5ezsBlerlThpeYsdBmazOUPf4Z2iLAsul1ds
NmtUrHOqsqRppQYXUk8dVcECUiTV+dBLNGBZZJhMGiRD3zObifpFGwHbtDHs2l2sWQR4CewV
kSEISSPVrEqp6MAiMRlKa1GgO8+QmjRlETFZOdMIkULmSFHs67qUx+6cReMp8pw8/qyQHwSc
S8CydwJmJVKAcMocSgWqSY0iYzqdoAg0zU4aSUZsJ/u2J8tyIfE1O5KLg3Ox6agU2iSF5whH
xQhFM47BEGT+6SxjUk9GdZd3Fm2MEA6Uinbjeqxd46wBJYSgRIBJsRMvOFcGT5bnDHaAEGS9
OwDmVARhfQSUTWYgSOxU33UC9I15ClHpG0RtOptOR8KZD4G6qnDAdDKV6z3IWu/aju1ui1aa
OpLL+77fuxzlGZPoxCbA137NUBFkD2NWu4nRK/KPANxSEygjal+Z6gKQj+brSgu0HQHZMe8+
BEh51Iza83GtSt/zQgIG43tNuJ/YPPu4Jsb3NGLkOmK3anyGI/AqL3Mf00EkK4Sk3o750wqy
uDcQAcQ9IB/XONToopBwZwE/ouI33lPXtqO1bhoLh3cVgsM7H/sg0heQ75DcVVnP/NjjLPKC
ZCccvNjPBmfRmcSpbDcbuq6nKEryvKC3jsHZ/VoR9jbs0tyV56S1Js9yqTmc7EGDHfDOE+Ie
DkLgK8oiOnAO7HY7hugqmRdF3J80bdtho7uRvPY9acvHmLTMZGR5Np4rjZb4oqIoaZtmD9AS
CEEsbuUsJKRCO0i/CUysY63sd+k8F4hueYFJXbPZNICmjore2WzGvfNzjDYYo1ivVySCoYn9
DxAyuhDT9Li3hTE7XWIJk/o7RIvwvu8iwUXmho5jUnLvhRgxntnj+uOcY+h72qYb50VaZ4ZB
1rC+F+trvADNWTpna0039LgQODo5FVcyLY4RKTt6GCxgKPIShUTUee8pC8l1HgYBQ9u25ZEX
P8wnPvEJjo+OuLpY0vVtFIsUnF0/pYg2ycvlkj7WWH1v2Ww2zKcz7t65Q57nksMc3bECiovz
c2wkPrStCKnKSDBNQGeIe1YgoLSJ4o098C5cjTCqE1PMp9Q70aEIJfnn3o/9DnlXdqyhxIFn
3zPxTtxGRQks/Y6u77g4v2A+nzGdzsjznHv37o3ghlKwa3ZxXdESeaUVbnDUtSguextjQp0o
ytu2wYfAtWtncr6wA9W0ljPsQb/E6EjkNxnbzYamkfo0NzmLo4WM1xAoi5zSaMqiIGhNNzgc
sN3t+O3f+h3KouAjf/oR6kr6e+urZawRMvKy4MlPfErOfdZSTz9LCIEnP/oJqbWbhvVW7NDn
8yNcFK84Z6PTYeDpp57h8vKSqqpGIaZBiLbBBz74x38qPdW6Zh1dECeTmpQrbq2QEaqqZnG0
YDab8pE/++jowJLcbKqiJIsuctvNlrbvsM7yh3/0J8zne4Xwertlebni/vvv4+pyTV1X3Hef
APyfevrTgBAGRUwRWH32c3GOST9q6AcBxhF3iSIqiM3VEpMZuq6n61uMNkxnM569fQ9CkDqW
jFt3/6v08jMTyTYyv9vlmutnZ3gydn0jQqWyRpeyylXGxGxtzdCJonZ2tBj7I7Yfxn5lZ3uu
33+/gP5I/1/mT+D+Bx/iarVienTCAy+qRxJB6mU4J4RyQuBFDz3E448/zvvf/35e/NhjPPro
oxRFwbPPPjuuy23TghI3Yhv3Eq11FKt1ow3/dCGYR1WWUtcMQ6yjl3ilyExGGSMM27blaLGQ
Wn4YWJQiANS5kNhxlm3bYL3jarXCes/x8TGLqhTxirPkZTEKZ4q6ZD6bsb5aMQwD169fZ7E4
QinN+cUFJhLWs1DgCBJXnWXMsgX90LNtGoxWXFxecv/99xM0NENHNZtEAdKAGnSMR5XP8C45
tCrqSSVui9Na6u2iZH50RNM2tG1HWVfsmh2ZMbRdy2w+w4dAkWesNmt5NmUFyqAyIW7vuh0m
05xfnaMyQ++GeD4UR4z58dHYf6MzLNdrJpMaXSiWmysW8yNAUU3Faa6aCOaQV6X0B4ceO1iO
rx2PTpkX6wsCgWo+5WK1lB5bWbJYLMb+ZzOePeDs5pmMJRUwuebiaoVHejdHR0e84hWvIARx
MxUXUMESFsdH0mONEcm73VaEOs5yduMG9bSW88kw8NKXvpS2bcaxmz7vUESXaoUk0kpirCzL
mE6n0a1bxBBJmCURwrJepfX89PSUshTRT+q7nl9cMpnU3IwOjNevXxfeoPN0dmC9XopDvWLs
NfgYd9m1DcfHxyM54Pz8nCSac85RVhVdJ6SFxWIeRQhCLk3nXDfIWVXwEkdZ5gxR8GEHiUBJ
WEX6rNTDHPGvWAsXRcF6vaKqpP+uA9iuR09E7V8Uxd6tMVbhEo09sN1smExOaTrZ7513bLdb
ZtMZ3icitRrFd4LtbKUHqzXei1uqBVo7oDNN76RmttaTPfDATe5Woj5q2xWLWU3XNcIam0wg
bvRJxZkApBACs+kUrWDoe3QOpVJUkwm7bodSGSEkKzPAh6j8sDjXgHJyqNQTyumUa2c3QElO
5nK54bOf+Tx3b63ZbFqqrOTjH/kkr3vjq3j9l38lz3zmFh/72Kd47ulP85L77ufayYIsUxRV
zWq94xd/4Ve5Ot+gBs20qiGseMOXvJK3v/3r8W6gHVqu37yJevmreMtbvooir9A5cvAtHY0b
WK1XKJNjck2hcx586JR3vvN/5Bd//udZff5p2u2O1eUFJteoKudafRMdMj7+8U/yU//8J2jW
Ddv1BdVM8zf/p7/FY0+8nG/6pr/Ckx99it/4T7/Gl3zZl/Pa130xpsj51Kc/zyeefJqyEBbY
YjEhNwHvOl7y2GN8wzd8PW9+y1fwrnd9Fx//yH/lZLYgCxYTLG943WtZ71q6buD2nUsefvRR
yjLn8uqCgOc7v+PbeNOb3sQPfN97uP3Ms7zhda/lR370hwlasd41HBUTYeD6QAiSl9IPLeD5
/ve8m6rK+a33/yduHF3ji175KjIjeUCVKYECo3MyrfmyN72RBx4449r1hVjFO/iLX/tVvPl9
X8rv//bv8sDZDf7cy17CO97xNh59yX28+PH70aZAqwwfYHAwBM2di0u+/Vu/nWefeZZHHn4x
zno2m3XMReml+RakKS3qvXpc4BIwdcia69pW2JHesV6tOJ3PcEqjTIHxntlkzv03b3J59x4m
OIJz6OB54xv+Ag88dD9ZVUJW8d6f+L/4+MeepO9ajAqUJicPge/9we/jDW/5ct7w+tfz7u95
N+9+17uxfc/xtWM2myueu9WSFSXXr13HWc/F5RVnp6cMfce22bG6uhT2XV7irWW1Xkt2blZg
lGFzdcVqeU5mHFWV0bcNt3ZbslxUX9O6RvJ3LXlRxsyfgfV6Q9d0NG1DP3SSsxOLEa0y2qYj
z+Tgu95eMZuJ5fLpyQn37t5lMVuglaGzou6ezY4oq5q2kwJQYxEbUGkU+cAICqUFMBV4Ccg+
tHVPytmu616gbD5UO6fGUAIGxUYLhl7+fj5b4JzFRdalOVCkbbfbccNJTeqyKMhMRj9YJlWF
sz3zesIXvfqVnJzMyYqaV77qNbzvfb+CtaJgI7K2iIen02vX2W42o83wnbt3ZRM7PsG2Ldpk
7JqGaVWxXi557Wtewz/4B/8reVXxc//u5/nx9/4kSmmK3MTDZY+zDScnp3L4RFhp6Xn0fc9s
NhvdENK/67qSjCYXovotp+t20gy9vEQFRT2psc4JGN0PGOOx0YIsVwbnHS5I4aODxC4MvSU4
T5YX0T4mHyMd0vzK83zMg21jdn3QirZr0YEI+sjmlp5TAnYTGUCpvfp/t9tRVdW4x4xjwBix
d40box0sVVny/PO3uHP3NnlV8JJHHuXevXsjGHl6eiqbZwQWU+snjYv0XJOq+3B8jYCDF7so
H8IIZCaGeirC0tfSM0nW5+ke0vqT7nU3KlnrEThO6vJ02Egs4zQPOLj2dIA+JBqkIuwFrPiD
azyMC5D35+KcIjZF9Ag8b7dyoE62UN0gOU6JNNI2TSyyi/GzOTjIp0Ix/b50nbCP+fARaElu
EulzvvCekqpWGkN2ZFXneXSb6IUQIEoUUEochTIj+05yEsjznHbXUJTZCPaZLKNttngVXnAA
TaB8IpAkIDu920NSUXIDSPZjh2SQ9MxTYZy+dkgcgKRQrl7we9I9pz9pzh1GIqTndnx8LPcX
2abGZOP4M0bLYfmAEJDW07ZtqapqrOWSY4hkVqlxzfEe8iyPSqi9O8XhM0hrUfq8VICm+JZ0
T4kIcUgIS8BfYuam95/Wmul0OirqxRZ+N+4HacykPV8pYbiLW4Ji6CyZlqaFt4F2143vIBGo
5B6ExatNickUVTEZFQFtBDLFcajGWUtmRGUqRD5QCAhswyB57Sh0Lk1ipdU4H5Jd52a1JoT9
fB26febb2BCLKh2lFJPJZCRWJJB0s9nE9UDTdwPegVEa5aXZqRE7dmsdSovdvTEa75XUWi4I
EHKwniRSZSIKeSdqdaOlfrfWkmdC1jOZoe9bfHBxXgrxUJRGexVFUVTjYTEvKrGxs47ZbDGO
A4DpdE4IokrznpHhT4DtrmUynZKVYq+LTibsniFYvMt47vYdqqogL0u00dEFSAAVbQxo0MEQ
gjRSBh8kjscFiqLGRuX7YAcBaDDkZUXoG7zKGKwnL2rarhdQTWmcEut/7x15kZOX+Ug6kia+
pawlb00bidWwIeCjStEUNb0LBJ3HiCHo+zgP0HjEVrXpBlGKuUAZXY9MJg4bxmi6SE7SSuMH
WbfysozromLoB7xS4ANDbK6ZPMd6DSpDZ0YUgQLtyJgwuayTSkvTx0JeTChrIsUA+sFFRzZN
UU+l+W8yqskU3ffoLGM6n8s+adS4PgYPw2Bp2gHvHFU9Rank8mPYNS29dVw7uzHak643GyGu
pTgeFNb1zI6P6AfLrCoZBodXUEwK+kHq0rws4u83475fFiW3794jz2L8TlWjvSOPJEsB9gQ8
9dbR24HjoxM22w3G5OPvV0aTaWkqBSSj0wQhzJuorLTOUeQFGhlf3vkISImithtkPSFE22ov
7ni7rbh0Ba/2suEoSDba4Adpxmy6LVopOWtFoEkpTWaSqn8YwVO5f9k/7tx6HpMJGEsCQSIA
N8YSZXm0yJVxJ7V1UviJqkEIWSpm+EoeZJZJDE1SgNbnk+X4AAAgAElEQVRVAcgZoSgKMqPY
bncM/UDXiIpImwzrRbGrtabtOgZrWSwWo3BXG80w9DK3vWdS18ymU66W6/iMZOwWZbG3dUVF
5ZW4CjgneZvOirtKXdUReJQ6dbQmjvvZ0PfRBtbjIlCc4sWUTnEdsuc2TUNelGSZGeMBNCqu
KRplxD0puNRQEjt9E919qrqk7wes3Su/ZQyEuJZbnLXkhaiWgheFWN93mCwRZl0k10hNZCMA
IrULDEMn1rqlNMEmdRXtcmXPX6+3Y72vjDm4f6lhlFKYLCpR3DACmFkma3zwjl0jgNVsOsUY
efZt29A0UnOkz9FaR0caIXM6J4BEcgvROsbPRGJLAqey+PsTWVbiijTugGjprCMgDifGGNq+
EwBbxfxfD9N6ymQ6icrYnqOjI5x3NLtmLx6IIN5kMqF3yfEOLi8vmdQ1KsB2s2E2mwtBIcWh
x/uTOBOJHBBylZJrC6JA9N7jrCXgJPbF+fFnk9tRAPLUb0NUzS7Vp7mQ3CQySck7SeCnUmJp
HohEUCJoC0V8x94nUDiRdolNRBeB6X2tGrxieXXFYnFEHZVOxLrBu+j85S1ZZsZ6XQWZVylW
sO2FjJmekZw19m5jbSP1gRBwe6qqFKtea+m7IV5zPFOEBBIVUp/EOtsFcSBMdW3XtST3HAgU
MYg6y2TMSW9CsmOnsylKaXE3imQr6yRXWIj08pK1EYJC13U0zY7T0xPyLMdkOduNNKEF4Iz2
5Sics2S5GeuaRAq5urykLKVO2mwlti4zmTiMKLUnBXnPbieffXp6KmfMoadrOq6ulsxmc0Td
Kfm2IYQRpF5vNhijmU1ntF3HZrPh6uoquo7BfL6Qz3Ziid61nTj76OguMgL6UvukM0/wjqbZ
4r24mc2mQtRsm3Z0EoB8HF9d144EAevcmBcN0i9oW3mezlqqskIhIK8L4lRCOptYsQIPRJL1
INEeAamDQzybaaNjDrenLIt4TTFH2YtqD4Sk1XdC8lgczUdl3nQ6jS5kst7joztLUuQHUbVa
7+itRHd4Z3E+KfgzyqKOcXcOkHcrvY1h7JtkmWG9WUtMaZwbKojjjQKMQaKnAqDEja/re+ww
RPdD6ZmrOCbHaDpj4rp/4NAZI5UEmN87uGit6bs9oeLQ7ULUj+KyItcjueOb1ZoyWkxrrSiq
ivXVkkQbsja5JWqG3tJ3Nu5ZLVVZ4OJ7mk2nXNw75/LyUsZWXpDlBVfnS1ZXaxLp03tPP/RY
O0gucwisNhuyumS53lEWJbbpcJstymTU1QRjZC5UkxnOw6bp4uvLuDxfUZTFCLgXCdhs23if
GVYFbN9SlYrn7twmzwwKxabdUkaSpQW6KCJxseYzec5q13CxWsn3xDU7BE/YKqqJjIuirNhe
Lbn9/POcnByTIlIE8IXBRucrL9GWu+ZSehRDz2Kx4Nbt55kMs8iXEjHS0ItL3nQ+wzpLNZ/R
7hoGB4vja0I2so5FIpn5wK7tKcopIYiDX9u2IlBSOooMKurZlBuL+9g2O9q2o6oEyN9ttzz0
4MO85MUFm+2Oo5NI/MwyionCFHkcozoS44axh1Fm0rObzBe0bTcCatvdliF4dJ7TO49XUNZC
BNnstpj4rrTWEhM2LQhBj0R8CNRlzbyuef7ePYmHq0ryshQ3u2GgjyB6lmUMIUBuKCPQHUCI
Zplhtdsym89o24Z7l5fRKTUSF4tc1jFgOp+R5wXNbt8nS7X01WqJUoqqLqlnE85u3uDRx17M
arXiU08/BWrv9lhXE9ooBkh9s/SnqipmRwvatpV9a7thMp2y62QtUd6x3m5EFQygFcenJ1xc
XOCCWKRf3Vsyn87Gc9V0NsfHaO9oAYXShkyJIMAOokiuJhJHayJBrx1kL3HBY7sWfGC92Uld
pUAZuFxeMJvNaLbS/3eNvPejo6PYg/Q89NBDXF1dkecZi6mQ5p2TKNYQn6tSBu8Ctu/EtU4W
SiZRPHZ+fo6JcQZD7KsdEhzLshzPFYnsmvofNvYKRRhQxrOSo64nsSdYMQxynk9Rv8npRP5u
oKxKjo/qSNAQQWsSBhljmExmlGU99jfTedd7z2Qi+evee6pKsuelJ95EV6IQXYBlz9huNrI2
x7W6jn3z1CtNTiOpB5ruqdkJ4TUEWMym9G03kpyvrq6Y1BN51+wBfRBHYxFi6dijSNGyGUUh
a2ffW46OTji/OGc6mzMOAIT8fHrtDGtF4d+2Hc5Zmqbl2rVrNI1gzfKcKlCaQkl0SNNIzeAj
PpBlBueln+S8EKKNziEmUHnr6IZBCKNBsVlvsYMjMzl2kHN4H3tuqc7fv49sL3SMccVaSWTR
MESSapCzSN/1qEqPTh1N0zKfLehaiT7p49lJQHhDXU/IswyjNE67F/Rai6rEGKlHhbwrJHql
Ytyos2McVp4VVJVi03RMJxP8wdpw2DuX/awkREc3habvLLNJjo2Rfn3Xk7nOok1FVS+4uPUk
mTE413N67TpDL0zTZBOcDjVpoIoqaq/eMIWwuI4nM3ReEFxIBNbIgJXNYrfbUoZAPZtxb7PD
Ak8/c4uHX/VKgg982Ze+nqPZCcHlfP6Zu/ziL/wym+Ulf/zBD/On3/N3sN5xfuceWbfh8eMZ
29UVs2mNnuQYA2984+s4v72k3TQE24ObMqlymu2WI84gaBYnZ1zd2fIrv/Y7rNdbAj1GWx55
/AFe/cbXU1bHfPhPnuTOrXvYtmN5teL3fve3sEPDIw8/BM2SPCsYoi1l23b82Yc/woc/9P/x
gT/4E/rVhqvLz/Pq1zzB0WyCRNVa2sFy7cb9vOjRJ5hM59GxruAjH3mS9/3S+9ls1+QGCu15
7LGH+Df/9qfJipxqPuXVX/xann3qU2zXG/quJ+97yqqGbMJ/+YMP8iu/9uvcuvUsyvXcd3aN
7/iu7+CRx57gxY8+ymte/Wo+3Fu+5mv+Io8//jI6b/nwf/sYv/e7P4vJCuqyYrfboJRDK8/b
/vtv5OUv/3P8yI/8IzKrufXUU0yKCQpDMIHnb93jM08/gxscTzz+Et761q9FF5rPfu5znN+7
hx0sL3v5K/jH/+RH+bVf+VWe+uhH+YF3v4vFyZx2kEzdKhd1kg6ggkO5wLXTY/7vn/oX/Lt/
+3P83M/9fLRgz9A6xCJKwM5DNtIhMJEmgTB5cobGC5iZZWRlxezkOv/xN36TP/vMZ/nIxz/G
7dt32ay2FGWG6wbAy6QKjt52BK0xeU3vMm7fWXF+W57v6WxBncMjD9xPkRl66xm6gfl0xtHR
jB/78X/G2dkZn/jk07zre7+fO7fPuf++GyymNXefe47Bdvylb/rLfONffju/9Tu/z7/8yX9B
mWkB9YuCUBZY1/PQQzd4/Rf/VZwf6F2H0grrPB/60If41FNP8fiLH5ONqpcG0Xa7ZL1dMZ3O
WW+u6IaBwXXs7mxHpZHCcHZ2RtYPeO+47+ZN1qslfdvSBE/fNjxzcQFKNvvpZMJ6s2a763jg
gQep6jICNV3MTpNmWwJ5EpCTQM0vVDkn9eeherhtGogLsTFmVL2nBfpQOR104Orqciwik9NB
Osi0bct0KlZGq9VqBF3bpsEbD0HIEnjJn6xLIV5QBBZHMx599BH84Oi6HVoz5hdOJjXLy0vu
PP88//T//Me87vWv56Mfe5If/uEfAYjK04L5bIFB0Wx2fNVXvIUsk8bRW77yK/j3//4XuLx3
gTZixzlbzLB9UkNLsydZoKYm12FWtnzdMvRR9WykgAmDJQTPrVvPUeQZZVVz+85tptNZVBwG
tA4EK7ZXn33uWTxwfHzCww8/IptgqyQGwQeU9axWqxE4TOrmRMJJDdYRFI/AcXaQlSoNUylE
67pms9mMoGPapPbMZjeOn8Ov6bhhq9gUu7q65GUvfYLXvO61/Ppv/BZPPfUUZ2dnzGYzNpsN
6/V6XA9S40QfjMX0JxXVybI9/XcaUyM4ne1t9NP3pO9Pe2G65gRcpmIsFVKpAEvPIo3/9HPJ
kSCBYofq2jQO0n+nIuXQySDdQ2IHJ+D1kLzh/d7qbwQlwz7mID2rLM8pq4rBxfv1gWDCKPVJ
15v+hBD2DYd4ven3CxCgR8KDNLF2I1Ce5vUheJ6KovQnxRUcAoZBi+JQqTCqsJx1oijRsRmc
56gAVVVitKG3FhcPUHlVCmgTx4YdBjJtMIUimH0kRLrGNF7SuD0EsNP3jUrIOPbSM04FWWL6
pp+XhobFe7mPEDxlmbNex4NiVY1EhkSGSI3VNJYkOkSL9XxkpkpTKWM2m6G0ZrttJM/v4J2l
n5drTXPU03V2vLfU6LOx+Z/GW2pOp/sZhoEsPqd0bT6++zSO62oSi2w3slIJWgp3BNTqeysN
AlOgMOy2cqAlaLp2TxQ4BP+T+qDrOoo8JzPZyDJO95tIQIlgcLg2yIEvxzkByF0cI4dEoEMn
EoUoWZPSqcgyDJHIoPaAwTBItuIYYdEP1FUNeY4yxX599PsYknFfjECVBgZnRY0dLcryPMcO
feyvidOFVjKWVLw3sXwX21k3RBvkAG6wcQxLXT5Ey+bBOcq8oCrKkTUsYIMjz0q8k4ZhZ8XS
XxRUJYPt4/UbnEukjgOltBZ7bescOgRMVFen++iTO0bMX1dmb7UqEUMDVVnROy9RCGrfdDXG
yJoa1T1pvZHxEZ0v9N6q12QG7wO5LpHIIAWRDIASFXmZ53R9BwG6tpOGQzzkS/M+gXZpXcow
RpMVeWwqiPpysF4IA3mOCwLKVVMhVnb9QLCOLDMQ3WwwBTZ4VKYZQkB7sauW6AWF1jnGKJRO
US6KoAxtJxaTVVVGZZ6Mvd5ZZrMpg7U4ZciSG5I28rNaSZM8BLwXVZfWmj4CekOQRrUxOcbk
0qQNAmRKxIWAjEopcpODVmyaDZkX8LmeziNA2EkPwAHBRBzboPOMvJQMdiGetCiTE7RmMp1H
QM6xc12MJNBsmh2j202WoVRg03URuDSoPCfg2fUdKmjyosJGe0/vYTYXBwYXoCgrijKnUKJA
qKI7XSIeeZFUU06m5CGw7XpMtDUNUb3V9S19EKvSLI9kqABD36GVZjY/YrXaEMjISlH9eYbY
5LFUeY4yvYwDp0a3FoXMF1nfZMxmkUxofcA2KSbJoNCYPGOwA10/iFpcBYYhEp2sWGRnucFa
H5XpBmKdXhTVqJBSsdF5cXHBZDIRgk0kBYQAXT+gogo5hIDzlr5LKkAh3ykl7jk6rkUXF+cS
FxHrPhTivqOEKGC0Eca38tR1xWq5wURQyfvA5cVSGuFWolVQnqoq0XnO+cWKu/eWaC3RMYnQ
1bVDVInaMfMzObigFE2zlmt2ns1q+0JCZVr/naPZipvPYCV+a7dtokp02DtojbVBjL6x4vjQ
t21cf4W0oCJYmOrlRLIqijyuRfv6wlk5p+waIYpWVTnWRQKCO3Y7ASrSXpZqQlGzauxg9/aQ
3qMQ0HuwA8fHR9y7cyFkB5/Ul6LAFuWjKC9TTJjUjlYAg0iUUJGYLMRc/QJSYT/0kRQkANDo
pBTJgGLDLLFEh84aSjES90Sor0aCpQ+ipg0+jE21ZKepYjyF0nsnJtlP1J60EF3kTWboetkr
qqIWtaHd1zuHe3ER3WOarqUoq7GH5Zwlj89JBQEbk9PGdiv2uCEolsslVS0uL13fj3bLogQX
0E1cTnKUDvR9hz4gfPgQ5EwXEpjvI6FemnlZZsgycSAMEJ11cow2ozVyImmaLKMoZO/yzmO9
i7Wy5B0rpSMp1lBkspfpcY8gknwCWVSpJxeJsqxIee9d36OUnA2cE9txYzK8k5q5rEp2jcT0
OB/iPmYiecaJYjVGUzlvoxLLjyRNUBHojfbGIZBFFa08NOitzH2NjHWjDbPZbHzHcj7r8c5G
lX5G33Vx7EQygHUEFeOBrKjCi6IQIpGRd73Z7eT5GEOWZ7QRDJB+lDTF094m54h4BowEYq2i
QjcIgf/q8lLAqeh01XUdqFSDE79vH2MnZC2xxy3LijIvuVqKU453nqqeRsKglbo6jr2iLOj6
HqOlbgzREcAYw3w+H9V441lMS4Qg8XxXRmvc3XYX57zC2YF6UnP7+XOScj6PBDDvA1le0HV9
JLUzumol5aG4m+W0bWxWJ6A5XNF1LcbkI/k0ECJhumB5tYkqPBtJddlYkyVy0P7M6KXv4zxl
VXF1uZK1LirO15sGOwy0ZhAnRys14cXlVSQ65ALESKALRmek+KL1cgVaCbivxIEhMznLzY7g
PFWZCIvihtZ3QpotiyKCQYhrRF4BKvar1iOBq6wKmq6h8S2r9ZbZ7IiqqmlaK6r4LKNrO4YQ
HdTyjLwqhLSSlzhnqSbTkXRUVDUQBLyt60iWdfS95Ml3kcyYZZFw5oNEARAwBiFyeI0HimpK
F0nQealp+wEXxDVluVrj/UDm5GeKahrFIp6gNWWMbeu6/5+rNw++NDvv+j5ne7d7f0t3T/eM
RjMjaTQysmRbi0fWyJYsy2AgxEtsSNkGAwFsApFjoBIIEAsKqiAQb8FATGGosKfAkZ1A2AxV
sY2xJEvIliVZlrWMrNGMNJru/i13ebez5I/nnPfeoatUknqm+3fvu5zznOf5fj/fkSkkQtKc
33xABHxFoFPVL+orzNNE5Rx1txLKRYw88MCDjONMuxZz4jiNxEwH2Oz3Qi7cXWdxjJBDRIQh
g6lxmEmVYrvrOXUV9y+uGeeJ1arDkjBVjU+JsYjqq5p+6DGu4mrYs9lsuX37DlW3Elf2MKFM
5Gq3JYnibDmzjtPEyYlQ/SIK7Sp2+d24+cCdfPbTVNZx2pyL0HuzFVEWkaQU19sdzRxwVtNf
b7n1wG1CfibDPLO5uma9ltx013T4oUfpgK4qoTllYRc2s2FioK7qJde99Dcccj9P1h23H35Y
zkUKNuOIcRUOja2O7lOI7K6uCAnO2pZxmujHER9kfSAqJu+Z8nqjlZxVisApKUNARC7OVdjZ
Y62s866uZM1IYvRTRrPZbtlPQx5YZ7FKStSdiPSnecLUNXM/ihC5qSlRJ3MmjqkjY0ox6IzT
LHsZMnTu+55mtQZjwTi6dZWpf1kMiAgU+75f1spjI8c8z3jnuXPnzkK0/dyzz/Ibn/1sru8a
qizqLp9nzg775SyvDtGPwzTSzA3GWuZMYpqDZz8OVEl6E65ymPxulb5hl93/1lr5LFsRem63
W3a73TLUlh5LQBv5PIXuqnKPo849+ZQSTjumceb87CyLRzc8ePuWXFujmMeDaa1Qfku/crfb
SW3uHBdXl5yenUJK7PuBYRwJ+z3n5+f4ECWfPknUGhM5utcufccYJRqwmK9EuCyD4FW3YrXq
pNcQAm3XMY6DuKG9X0g7dVUxjSMyJi1rREW/G5jnnfQpuxV93h+6rmPX7/E+cHJywjxPEns4
jhTB7cF05bNpMS59c9ljX2z8IffcdtsdNptxA2HZ56x1OBszpUb61icnJ5ysT2UtnSeurq6W
fuTJycmLZgdp8vg5UVeWzUZiLlWS9bYY1kREJnTR0oMvPWLpM/e5lw0x+hzxOLHbbbFWc3p2
QozSB1c6YSuT+2JCVRr7HqstTSNkBOnnauq6pckic9mLakBiQFMKJGvwIeKqGjgY3lIKS5+7
XNclrjH3XIuhruw3xhqMLqLKtIgT+37I/esJqx1aK/b7fqH37nY7vJe6V0hCmpQyVbeql/69
9Clq2TtDFpZE2G53rDuhWvR9T/QTTduKaFspiQnI8UMheLnnWiLV6lyH+JCNVVrMPUYdoheL
+KO8Z9YYMJq+n0CLKQ4MddVQOSdUFz8GnFsRleHW7TsM4xc4O1sxZ+V4QTOXwr7guMXNELJD
tsLnG+eQZu5+uxPkYEpolUhhRlNRaYPVlq45xXmNMZruxi3+xb/6d3zm2Wd5/NWv5Df/lt/M
l77qlcSomWeN99f8v//yX3F5ueHzn/0i3XrN7ZsPYLcanSb67VaaHFPP2976Jt74xjcw7mbJ
Tg8z0c9YBzdu3xT1u+uo3An9CB/45Y/ywQ98AKc9D94+5Q/9d3+QcR/wwfMrH/kM/+wf/QTP
P/NZpmmL9yN3ztfcvHlGV1d4H/Gzoh8jv/6J3+BP/5m/xDNPf4bbZ2c0KXBjveJ01dBUCmsi
rrJ0J2vqds17fuF9/OJ7fp4v3n2e2w++jM89+wIPveQ2J93Lubj3ArVJnJ+eMU8zVduwVwP9
MKGV5eryCqUtUVmud56f/4X/xEc/8nHe//5fYdpvGbcX3HjLm3jg7IYgarSiqlsee9nj3Di/
wTyNfOzXP857fv49vO+97+VDv/wRyQw1CmMSr/uK1/K7/utvE9WJNpyf3eK5+DTj4AX7l+CT
T3+GP/Un/zTrtuEH/ur/wpuf+iqu9jt++t/+DL/0ng/w8MMP8CVPvIqudTz5la/nxqrm5q2b
hJR4/wc+zN/8W38XpQyr7oTzkzV1ZTBW8We+/8/w8pc9ynd/9x/iU596mqc//Rnm2dM0bhlA
SMPFLg3+0sQpD34IgbHvCTFitaWqaq6uLxmmiWeff56P/tqvY37h/Tmz12GNECJWq5b99RVV
VTP2E/Po0VjQDld39P3ESx95BOtHGAesntEmLg2GEGY2V/d56smv4HWvfTWurnjoJQ/zDb/1
t/D+932QMM+Y1BCHHa//0lfzu3/nt/CyV7+Kx594gosX7vKP/8Hf4/7lBUYrApG2tjz5Va/j
93znd1I10gQOUTbELz7/Au9615/nZ37mZ/lNj38J6/WaZ5/5DFfXd/kDf+gP8E3f8i1cX++l
Ma2lUeJcjbWO9/zCe/nBH/ph6loOA+Nuj4mRq/v3+Jbf/118yat/E194/nnmOXJ9dS0qeD/z
wr0LPvZrn+DevRckP8cIgrsMQZfs+qOmyvFBrGwopaiQA5u4eruuY5eHVCWT+dgNKwOxmv2+
FwcIgWefe4bKVbzyiSd45rOf4/adWxTseilsuq7j4uIi4/Iy2jpB4yrG3Z5pEORUCAXD1TBO
PeNeFMpt26B0oh8GhmlmHnre+IYv4+u/7mtYn57x6GOP8ZM/+X/zgff9Ig8+cAtUxGrD7vKa
ddMSxwE/iMq3ritB0bxwD58iOgp605oaHwuO0GOcNCT7vl8aGOXgb3ITd57GpRDT2rHZbGgb
cXT8yT/1P/HkV72Zf/vT/54f/Wt/A+dEKTuNA85pnn3+OX7oh3+Qx1/5BD/8wz/CB3/pQ9y+
fZu2bkqfMSvp5b0q6PqSJ7NaSTNiGkdpHuWmXpU33rZt2fktCiEvFLzcarWSRjAcCg5zQEmX
hkmVcYbZOEGIXlwfKaENfO87/yhf9Zan+Lqvezt/+Hv+yIJcPz8/X4odrUUJrI82yOPB/vGA
fSFD5GKpXOfyZ8pnn6aJ7Xb7osE8HGHssnhlvV6z2Ww4PT0lRsGHlnWpCCiOndDHg8CynpXB
YRE4HURNLAKAcRw5PT1lv98va2P52aXJXD6TDG5ZDgTy3eJSnBdEUwiBF154gf3Q061W3Dy/
wfX1taD50sE1XRpFC0LSHDD55ecVYVahcJRGe/lsx0P9Y1pBUcQeZ8uXYl+uhfxveySwOB5o
l8+kFGgleK6IZLN96jeeRhvDyx97mSB0rc2xKbl5GQ9Y+vLOHdS3h2ZEKSaLu7n8Ks9YaVIa
a5dBJ/m9KsOIlBvb5TBZfl5ZE4csnjhG4R8OPdJwFGFHWhSn5fpeXl7K4dI5VNcQYmQaR05O
TtAq12SIo2CeS77nYR8NXtCoibgIscrPPR6mFxEeShwaITcxfBYGhBBo6nhwlSRBCrpa1pKu
7djvd/jZ54OU3IsiRtlut3Sd4P2L6KDQYsqzVtc1Vb5m5fuXA0I5+BpTqAcVMRZ6h1kOAce0
hnINyq9y747FG0pJXjIxZiWvRWlpCMQwYWuX/16LczKAMtbkhptf1o0ytD5+Zo4RxyAilXKo
cbZaBGIxJmlGTF7IKDEQU2LuyxomkRLyfpg8qA/Mc8zXMmdtanEOO1diH9IitptyY1/WLMV2
u8XlGIIiJigHrxi9oPLnMQ/cD+9SjOK8PUa+le8ZgjgMjt/dgqIuDl7UgRpRrlsCnDN4P+Vn
ssr/XIaSWuuMILWCCp/nPHiJaJMFyct9mFl1Hft9v9xnrTV+ntBKhGiuksiEeZ5zlGxiHqTp
6nPzpXwHHwJJqcVpVhTnxXGaSptBayY/Ls92eQaGLKrWShEQgUJKCQI5xz1xdn4uDsTs/Gi6
hhTCIuIAGKeA0oYm35e+HzMfQi/OwhBkmBJCkPsW5J0ojhQ5IItTVaNE0KEUaFl3qq6RP+/F
tVPue3lm+z5nAyrB6vvZE0J55sUh6oPgRpsqu8mUQjub3eGGqhZXr6xVmlXXMc8TIQiJo2kc
1lSMwyTDD4WQDSpHUoo641Fd08i9SZFpCqzXIkwac5TMOE0Y55immIesWdyltRC5QqSqs5jN
B6ZZ3gNjTY4Sg+e/eJ+bN26QEvjcxPMp4ouDfp6ZZs84z0IzykL6si96n6haRxhFBKOVwVaW
YeiFXpXd1jLwstSNRNrIPmJJaGkqxpibrPK59+OIVnI9A4oprxvaGBrrMFVDMo7r3Q7nHKuu
k8Z3VQuiOggJJXlxYp6cnLLb7rPrTYgLJaLkJY88Sr/v0RrObtwUwU153qcJL1xEwVC6gGs7
wSj7uLgTSYnKWNBQNy3T7Ok32+yuE3qRrWumYWQOSdZZEhjyOjSTlJCMqsqRgvxMl5uRkBst
IUCOcEMrpjkyTCNV5djtR8BkN7EgI4fRZwe1IMGnaWacZQioEvJ2GS3ip9FjK4ePiWns81m2
YcwEh3LW8WNgfXpGipF2dYoisdluFvRziJ5xGmWgNocsKDYMs0fNWSzrZxnIzuIYlHXOZorK
jqvr64wOllrgQFcz+ZmAKQ/2h2HEenEDlygAn4frNme9jtPI5DO23VqckqFa2SPHccBq2Uun
WchrrhahS1KR6GcgYZRhN4h4pK4aKl0G/D4PUJs7vyIAACAASURBVEpTrc37vBBNjDnUIILl
zE1zL/9ujFIHdF3L7GfqyjJOI4OStcc4dxBpqKMop0kw7k27Zp5zoz8lGicDu2mW2ixFWJ+I
2Gnfj4z+PiHIM/X8vft0bSt59EoTojini1nGzzPD7NEqRy4Gz+n6ZLnPzWpNCD7H/yTqeoXW
SjJuo1pwwFVVo23F7CP7uQcS2lbIo54Ic8BHqTNjSCgtQ/N+L2jhFAMJBdEwR0WI8lnrVcd2
s0Xy66HPIoaqdkzjwK6fhVyi9BIdJsLgmqEfqGvJOp9DZD/sCLnOSkhU3FzeNwX3L65lTUMQ
8K4qNYsIqZ2t8CFJBrXWMrhWQq4sdXCKKYsTE8M4Y21iurxaiDw+CL41Jdju9yJmCIc4Kjic
aayxVHVNVQteeZdpLHXTcD+jqNu2Y6Uds4dp9EgW7Qrvg4iI8r5pjGG1OmGbz0DKWnyQHGpt
LCEpjKtR2rLd7nDOyl4XZDgxTzO7fsQYR9u1TEOPqax8j8sr6bvYLHBCcbXdiEDHH8hq3g+w
35MQ8kOdMr5ey/509/79pWltjKEfRAA0+pQHFI7tXs7YHqFskYRSEpCanySUu3JWBsW420hT
f+ilqdBLdNY4zAz9gLIGazPVavJLj0EbgzKCb9ea7LCcqNosuq9k0BOV5vzmTTbXG8G3BznP
1E3LbrenbuosQOhJSrGdJtCWtlsxzTOXGxnIJWOYYoQsMKrrGmyFcjVBa+YoRAFnLdo67l5f
4axb4o6UlfWkH0bqytGuzplH2ZOEACFUHxmEOJLSXG62C73OGoNxhqQNNrtWI5F+8rimI4bA
A6tT+n7iejfQtaegDJv9nrqSz7HZblHGERKEqPHjDCrhESLIfidUSOccuqrZTbMI5aOIgrbD
RoR/MbLb9Tlv3eben6cfRmKcabtuiZ2om0YGWxSyTofSFd3qFGMU19cbibcpZ6voiWiudznv
fZRr3aw6+n2fhduHfamc5eS8rRl8JI49zsrZ4PJqK6YTIKYZbfM+FiS+ZhxH1uuzTNbYoV0l
w7+6RmtL5axE8thazkR1S0RLpG2YaeqaVbPm8uoy54F7Tk7P2ey2eAwPP/oydvs9F3cvWK06
1qdn+DCz30ukZQKaWt7NqBWjDxJ3dr3BaEM/iLiozjFoMSleuH8/x3M4ri/u89jLXsY4zVxd
XeHqBrRmP0hMhZlkqDkMV4LUPlnT556J9hMxRba7Lbdu3qIfpHY4prJ6opxjkhjKxll6U/0g
5AuJbpP3cRxF2CoCKhHytzkvPaaYRQTyHMQcddW1K64uL1mvTkhKjC6xtEqyaWO777FuRilx
FmsdaVrJCyfJnjGMA1pZklaZOqqpctzo+kR6kdvNllW3AmCdRcJCeQoMi3NY1tW27Zbzt2C7
rdwDpKYYp4lxnEQ0q0FbKzEv+RwQUiIWKtAwEkLEWri8uOL8xvnSjyxGoEIC3e12rNcyRD42
KUzTtJzZTk5OD2LWLCxb5m1ZbD8MMsAu9NKTk5ODSLTQPrKIsd/3Sy29Xq24e/cuTd0sffJi
JCoiCBHrNRhr8LNfSIg6m7vaphG6jrNYY9httsyz4MVfeOGLQkWzNpO+7dKHKfVB13WLEELl
s0AxkUjMbwckttteSC3W5j6NmNv2+4HKWmJMQjPIPzslReVE9K1MjsWLkauLC8Z5psrxPkK4
PiKchESfZ5rl79psNoAIcEt/o3zGcoZZ5bVyvz8QhkuvVcwihS4JMcwkIsXUI78v9YHEUE1i
BlIhx/tJjeasxed+Q6lznBNx3bFYsNDCqqpazHm73W7pu0qNUOMqEWYbJc+TcZb9Tug9zkl9
Udz28+zZ73uaWkxI0zzl8xXLwN1mwoTL5AKLZcwEGaF0RTEHXF8DyHOX+4jybhxiMUQIXSh1
RRQtfbvtdk+76ujHAYKcV4RuKGQ2bVQmrqXl7zs2CQHLf0+jUECMNjkCITvwbRGasvTdnJNe
Yd8PUk/UPovk5KzStkLD2G63Sw96miYeuH2bzW4PKcpcVRvOTs/ws/SpalcxeulTVE7ETQnZ
U1N5RjOh7GTdMc09Qz8QEcpglemShdBTesKL8SYUo58QwPppkvU5SKycNRaNwm43e1KShsFm
t+O0q/Nf5HBaDoRlsSmN/7JQ+FnUeIK/tKgQccbw3HPP8eVf+kpUSCQfUESIM0aDQUPUjGOg
zkXs3bv3uby84LnPfY4/8or/FqvAMBOTZz/s+a7f/1/xbd/+O5gnxfs/+BF+4Id+hGHYcm7h
bL1Gp4BNHm0NldPMTuNOG0Cwi9poWawqC8pxuqpYdSdMXlDijYIUPDF4uroV5w0W7w3jaHFm
BW7mxmlHYxK77Yb9uGMcBHkx6wrvDd3qFg/cnlm5gN/c5fSkQuOxNmIM2Iw0un9xwSc/9iHi
tOHJJ1/Hn/5TfwJlKxKarm5QCZIfMSZy5+E76EqTvCJExTQG5imQlCXohs994XP82T//l3nm
6c9y59ZtVpWlMjXrtpODujK0TcfLH3+CT3/i0/zrf/lv+Ml3v5tnPv8cb3jDV/LQ7Qe48fa3
Mgw75nlkHgZunZ1y74UvcPPOA4xjpB9GLi6vpSFoNSoJMnw/7Dg/XbFedaAUdXPCdhP5+f/v
F/mOb/8mKq3wKTDNg+BhgizYw+j58Ed+jatNTwrQWMdpW/O7fuc30VUt4zjR9z2veuIJnv/C
F8Xt7ge6rs1DOxn8FxdpGXwtLpa8GIcYmCfP9bU4Ppr1mhTg/IE7GFdRVZZx3GE0+TA+4n3A
2pp5ChgsKhkUcoAz1jKOPcSJSkViHIkqSE5cSmijsAbaWqOSJyWFq1pWJ2sq5whDT/IzD5ys
Oa0td85O0Ih44OatW5LFOgyQItO455GXvoT6696GcpCU4CpjisQQuHHzjO/7vu9lHCfe/95f
pLWWm2cn/ME/+Pv4Hf/lN/DYy1/KNOVKy6Zc2Iib6xWPv4IPfPA/8XM/9/O0dct19LSV5WUv
fZhv/eZv5Ete+6VYV+Gc4KSNzguSMvyd/+Pv8f3vehdJJ07XgpS6ceMGPh7yscsaUTbKUsiX
IWbbtosAYME/G7MUMMe47BBC3oxh1YnTaru55qmn3kQCPvrRj/HM5z67DJmLAuv0VIqoT37i
Ezz+yscZx4nN7po7D95mGieGneQbKa35pV/+Far1GtPUPPPMM1S1RSMigUNGfI02jovnn+P2
jVOsjpiMHL9x4xanZzeYZo/SiW7l2KcEPki+C6BIGamZ3aF+kEMhispWrE/OqZyTgvxokKqU
4vT0dCkEReEvTVtjLCE3dmTAknjDG17HO77+62hPTvjGb/5G/t1P/3s+/rGP0zQ1dV1x/+4X
+Yovfw1f89VPcXJ2g3d+7zv5nj/8R9hcb5gbcUA6Y6myE/L6+lpQlzmX7TBQkRzjMsTbDcOi
0r93917OB2UpcPf7PV3XLQOB43d1UW26Q6ZQ2dRilIxirQ3Xl1e8+ck38MY3vh6jFa9//et5
+csF+391dfWiQelc8vXaVg7tRwVcyeVekFq5AOjzkH7OQ8QyiFGwPK9dziEqyPW2bZdi43gw
WMgF5f+XgfjxkPcYO1QKh/K+FBFEKWaO36UyhC2Y+uMh+pJfn4v/8i5JkRNfRFUof2YYhkWw
0zY1Dz30EOc3b/CRj36Upz/zNI+//BUUp3v5PuVaeO/Z9z3OHhDyxwSA2Xt8zkUqQ79jYUWh
exQxRhFBHA9Ej7OUpnla8mcjkkuXkmIeR/w0YTP+npgIWRnqnOUrXv96Xv2a13DzgZv88i9/
iH/8D/8hjzz8Uk7u3BG3CeKyOS4Uy3cAFoHIMbr/WKxRfpXnoAgJSlFenvkiJkkpYWzOVM8u
ueWd0EqyZrtWXKNHQ9RSmJZDk9Za1iF9LFjxizK4NLXL5yzo+KoSQVCKKjvsAmTHkjFGvKqZ
JpLcgXAhg7JxeX7KOl3EKmXIWw4n0zQJ5jO/29N8aBSXnNNStB4ro8u7cnJyIs4DzfIMlGFZ
eYZKFp7WgrwvOGWUuKtVfveLuGGexRU1jvJZBCstNazLVA+T3RrlMFz+/MGtqDDaLp9/nCbw
YK3BGMkIk4OXuP1CEFQtUQSzKbG4hlVKIqDKA+Ty3cr3PSaGVE6w7H6OjNOIWq2yQztRQk6O
Dz6yFh0TeOLynCzOi7xulHezXP++F2rEarWSLNG+PwwqRxm2lGy5qhLkdnGJxvkQ8XMsBCzv
/DHN5LhGKJ87pcP727XNsv6mKMMS6yzy+ilSLJjrF8c+EaGpJJJiHsY83LbL4NlaQ1Jkp6HK
0SeyrxY0mwALFFVThGGQVAItKFYRPCuMskzzKCIPJX+2bVrGfgRiXqcSKjvkVVbY+VkQ+D4V
/Ko02aqcxa6Et/siceXQ9zkbsMm0DGl6TtNEym6etu0Yp5mYomTIR8nnlTWzEnGEKrEvgeCl
FiF/Dk0RyZU830TwQhqyuT6J3pNMcdoGmpxzLlFCgiL1PgghQx/2o6gjVkkDb1lPohxmfQzM
Qe6lM5YQo6j1rWH2gaqSQYBEvbj8bKUsMNAIGQyUls+plDTly/M2TfOCQo9BDv3z7NFJYgkq
Wy/RSEM/U9c5PiTOWexlUVaaafKzNdo55uBZrddEHwRFrC2b/ZaIuG+Vq0AJDamyjsZW0iRx
Pg++xMFVfvkQUUbjrFkaU66SYcZ+vychmZ5Ga4l18B5xS1TM87S4UazRhLzmaK1EqJLP6drV
DOOEs5Y5akzVkrSh6k5kmDOHLNoqaHbJRzS1NP1HH4RsoBR4mIPEL/TTCM5hmxqnDdM8E5OI
O0JKYC3dqmUaR8ZxZJORr65uSVoIFLYWBCsxoknsdwPWOlbdydL4s5UWjGvOI076sM/FTC5q
6gZlDbthWtzluxw5kGKgbmoUQjxyVp63cRzBB+aQlngrcVlA3UqOpo+BMbtEPSJOSFGEvyZT
YKZxop+2+MlTtzXdyWmmZ8i96vueba6bbVVxtdnKoMsLga5bn0jvIq/JMTfyquwMU1pwnPK8
JExu7k/TjLWaOSQsIty6uWrZbjdEremHkapqqHJ+6zzNmCxMbZocG1LX2KqSGLxc1yttJM4r
CX6+alZHgnzB4DN5tBLikmu6ZTCcQsRnZOY8i1hGojQiQSm0cyLeQuNjIkWFc00W1WQqDooQ
QWlxbkYlw2VpEFtGL6ItlRLDKI1m6yLXmy1NXdOPA3MI2CRkHq1EYDxPcg6Mgzi0ffTEKZCy
+3y/2xG9x2mDq2XPq+qGfpy4d7mlazt01THMEkdVtx26avJemjJhSjOFgKkka7pK2ZU8jdSN
Zb/dMPpEwmDbNZt+IiZF07RyvgOCgu70Ro4VkmHK6PNg0RiadbvUZUuMTUrMIRKjJmEwSkgg
yrXL3pzIwrxxIilN3+/BeFwrObnOirNUO/AJXNtJLRGlp2C1Aa2xWXTnOicxOQoqY0BbrBMC
RUzlnQrsR49CXKoxQlLS2EVr6q5dEPG66vD7PWEKoIOM+0Igac11rk8gMXqh9RXnflXX2NpC
SsQ4CDEnu/kxgiSXIYfUonV7QsHr+hzrtOv3RKXph54aqNZrqV3bjuudiHnapqFydhm0+5io
mlbuvVJMMTF6IWeYFLj24jJ74fKKbrWCGNlNE7ppiErRz7LO1t2KqoXgEzHCfphQyhKDiMxs
3eZ6RUSJSitMElFjd1pJ/a4UDZphGGUIkgUtm80WoxWr1Vp6CJVjigmVIvtppls5cevuZWhc
VTI88SmArYQgoGVdRZX89obkPf0kZpOIrM0hREJ+N6cgQ8harzNhJL/XJFwnxKIyrBNqgWaM
4uiMfoYooqHiUry4Foe+0DhkKDcFT7KKoDP5K+XIgNlz88Yt+nHEaEsymsHPVM6CFhFvbd2C
+b/a9dR1g61acdnOM3MUfPo0T2grYhRloKoctqozXUOBzlm+iDgxRs+Yv49D0Z6ciMlomBjm
mTgLbartWulHeM84ezSGYZ7prEVbaIzGONkb29Ua7ye2Q4+PkTDlYUZUVNbk6AzFNE6cnNWQ
SQMqSd8qJpX3ggplLQHLFGYwNbvBZ+GCnEFc08rZobIkLfSckEr0m9wL7z3DNNMPPV3bUreN
DDlmIcFAyqY1cUwbV6GMZZhmhnlGW6HqkJIIkpQSsm0+ywl9RuPjzPrklGGSs5efRORVV60M
om3NNAys1rL/+DFIDZ3PDZMXgsuUKSnCNlAiJPViPFh1K4Z+YJ79MqDZbHfshhFlDJVruH/v
EmMMN2/cYhpHtpttnpPI2dXPM0o7xiGfXZLCacvZyTl+mmnqViJFEhBhP+xyn1YGZydn58yz
iHNPz24gsThSd8oQbcZax507ZwzDmI2ZWWwgpRPr1Vow3lVNCIKKKcSiGIWKG3L8y5j7WmUv
b5tWBrTzLILhjLBO+c8ZpalXjZxbU6GuTszjjLGapu0YnEQ8LLFa+sUkVz3PnJ2ds98PxBiY
5pm6krXLWkPwAaUMyoiI04dA14mAsWsdu81e6h3n2O72OGvp94MIxRRUtaNpa1IClfKelUVZ
MUUhAIVA9D1N2xCi9ItQigJLtEaiZYzWRB+pXYXrnIjCYuKkkzroJEcVliHtycnJi8wx0kuS
NVciO1QWDjhOT0+lLjJmiS0t/ae2bRfTRRnkG60Z+4G+F5NOiHl4GGMWdjtSSDmiQLPZXDMO
I0ZrUpWWAXIR8bdty3q9phAlw16oq9YIoSf6LPiOMnwcx9JPkefFOceJswzTkGsw6UXUdbv0
iWQ9kZpIaS2xajdvZFJcxDrpLXddx+nZOfssXDBGYTScn5+x2exQaOZ5pOkaYhDTwtXlFV3b
0jQNu+1GohaVwlUVoe+JrlAx3dJbCfk7FXd3oWs2bcPpqZgFdvtBzlXZbFr6tkXgUYb5u90u
u+0bNputiGczhcRauzxXSiExYc7mPrqhaztABvlGC23PZMKzUgaURNYoI9Se0/Mz6XlNUzZJ
HEwRRURRviMIBWDYyxlLG8PF/fu4qmKlO2xVEWchbMlza7OgQS/9uRgSTSuO/2P6aLkGxRxU
vo/OYswS7VV65iDUOKU0TV2z3+/k7OMqptxfc9bmqFGpb32QeJ0DbVgvz5YxGqMktDDknoHJ
hMTSLyvXpfSVhEglM5MlCoyYe3QRY1TuSxSTlazb5f2Vda2hqZslrrhck9Ifvry6zCK0LELI
Z5h5npnHia7tuLx/hauFPuQq6R8kJf0XYx1+DOy2e2Cmn3acnp1kAZKI9q3RS69Aa730mBfz
VggYwE8TKopYbp4DRjv5zilhu9Ys+fYnZzdozYZ797/AzZstKFl8Li4ulsFdubCCiWvEpZwH
kjLgaWlXgvkZpwFMbl6lIHl9VS0qzXHPZuo5axzEyEsfeQhnHR/50Mf42K9+kv24p6k1X/uO
t/KGNz/JS9o7oCoeffylfPLpX+Wf/pN/zOeuLmh4gLZZoZNGu5q7F3f5T7/4a9w4vY0zmqqC
eu2IKjLNgV3vubwa+PznPkdrFTs1sd1dcN5a4jyQ5hGtICpNVbeAoW7W1GHgZF3RX9+njxNV
nJl9EPy2rlCImhmtGOeBmzfW7Lb32PWSW0RUVM7inKR6nqwbfvs3/DaefPMbWJ91tKuz5Sa2
Tc26q3GVFKVTggbL5mLDvctrJkJGg8tB+IE7DzHsI2dthUkTlW652gy8572/Qu8973n/L/L0
05/i7gvPs//iXba7DV//W9/BX/3Bv0JUkTkE+nFkt9uz2+6Yhj2PPPIQbeOYZ1ng5+AZxh6t
pGnYnqxwjeP6+kIUv0nh6pbzG7ewxgnKf5oxq4pmvWLwiaANYQq8/BWP8T3f89/w7HNf5N4L
l3z4lz8Kk+e97/0Q3/Y7v4v9vOfq6kKQ86s1cY5EIkYASEQvKuGyYB+7Zso1nKZRsj5MYtf3
rE/W8u+PU14gFVpF9rstbdeStMoqRoDI9faKQJRYAmO5cfMmzarG7wd2/YCuHS43OsU9Bu26
IxLZbveE4CUjTM84YyRbVimmYY8OHqeMNLa0NC+btgOtFnyQM4qH7pxy66zhuWe/yE/803cT
55nzsxOquuJNb3mKV73qcf73H/vr/Mk//j/yvp/9Wb7r238X3/c/fC+TTty9f80zn/0Cxli6
lTizxmEAFXn4sYf50R/9Id797n/OX/uRv8a02/Dd7/zvecc7vp6XPvIIGkOlLBaNUtKwjj4y
xIHf8g3vwDV/hR/54R9lu91z54HbGAXDMBF9xBlx6YVleCmqY3NEBSgu6zIAWlzN2ekWYRkU
dl3HvYsLVitRWd17/vM8+ujD/IW/+P3cfPBB3vveD/Kd3/57eOwlLyXmBpbPBW2/3/KqV76M
v/13/hZTSvz43/m7/NS7f4pVVaNjJMwz3/+u/5nmdIUHfEq87z3v4dOf/CR3bt+RDJ6m4v7F
5fKMqZTYbzaEYcCeyQDAGs0w7GkryZaZGmkM7vY7tFZoJYO+fr/n5o0bvPWrn2KeB0KcSSiG
ceKDH/wVzk/PMAo6BVpDVUnm5n4vqmbr5FDgZ1FrG404P6OIHb74hWd56k2v4/z0BGUdlbU8
+rJH+divfZyh7zlZdSgijz72KOtVBcw88tgjvPa1X8Yzn/ksN89vMo2DRDxstzRNzf2LC8HT
5MOv0SK4Ior6b5x6hnlmmmeuri9o6pp5mCApKeTrLatVh9bqkPtHxFgRlyhgnoV6EN2Lh0VK
KWavaepGMk+14mTVUDkjquN+ol11qAtFYyumeWSeRqqmksaxkgxCqpYQJ8n504mqluJIij8g
D0+dlZxIZyuaupXB9TQIAmsYOD8/XwgSUnBLU087zdX1JUprVm1HZSv6OGRkamTVNXgvLr8Q
05I1J85qSApQIhxByzCy3/c0VY2KidZVJC25vfv9QFM3FNdyGX4WRW1EhmaucszRE5AD+ziN
GCUqzZCbjla7rKKN1E1FUop21fLt3/kdfNVTb+HTn/kMf+z7/hjDOLBqW1brFf3Q01YtPshB
bZhGyfPMTm2SZBVpawiI69G4KituBW9VnO0xJVIIWMTdHOdZitko98U4GVYO8wgRIdMoKYq1
c4TZMys5UEq2uRVnkzGQMnzWGK7uX3G92fHgQy/hscce4W1f+zbuPHibH/ubP4Y2WhoVlcsF
mmQTGnXA/h9TS44JEi9ygfsDkr7UR00jQ8u6qnKumTtSaCcRKOTm9YvEFblRUvKqi1ikrJNF
fNJ2HSB4tpgFK66qqFyDqwU9NWe6hsLkPG8pkJ2tGAdxWWkDMbvrjp3V0n+R9ckaC3mdV0ot
zRiF5NSrPHwtGYfWWkHDKvMisUspVst7Xg65xhqqjKIr/3ycRpIiD48SxaG95MzXFXkuuWRU
F7d0TAmV/3/wnnGcqeuKy0uJMqmq4v5EGgw6F9U2O+RjzAcDaZxKE0Cex9LEQIngL6ZEJOb7
eRCFSM9KLdhflzO8Usa6q3SgfxAFPyv0AL0QDqo6q5RjlMw0P+VmiqapW4ZRMuP/cyqFPGJp
OdwfDj/y3fw8Z1d6fJHj3ocAKbHdCk2kblpQkrUmGP9EnCeclWaiNQg5x0cq18jBMR/SUgwZ
S2myyxCsrTKaNYKRtlvKi6BWgsMvAk8QgcPAlL+DoPbFLa6WHGOhErgsmJOaJcYobpMoqPYp
N8p88Chj8nNbBIZFaX4Q2oRQxC4IMneYqZw0S4JPROQZdapEEyWca5bccYWiH3JzMsqARgHz
KBECwQemeaLNYgql1HKYbleHhski+svPKcA8zYLx7AVL11SZ7OFDdsxGdrv98t7FGBkXh04n
S0/0UGkR4ygE4xmjxKmgGGef1+oaay2bzUack0ozx8huHLOS3y7r5JwbX9JaVOK69p4YPUqJ
o1aGfnLNSvNWZWoACVQS3LA4Ayo0cgjvd4Lq9DkfvAg16roBHCHIPSiDQCGS+HweaJb3QK6p
J0Yh2+32ma5SOeYQ8V4GgAeRk+TPex/yeqYWx4bRkp2bIeeyTiRQ1nK92xLVQXBVN+KSKm7A
0shT2uDz5yYdiEQxFtGgDN0PtBBQSjDoUi5InWUzLSqSJAd+nmRYjMLYipSf7eDFIb/d7dHG
0q7EaTNOOStyjMtaP3m/iH6k8eFQSJNEKc31Vpqt5GfbVYIaVtoyTwFXacZZhsYm1/R1XWOd
IwZBPp6d3pC89b5nt9ln0Rhs89+tcxNMijSDMhZFgCCeP+8T1uWBtT7QmJwxKG252mxYrU9J
SBzEPM8yNJm9OI1nabAJYnSWBqW2aKuz8NAyTQcH15w8hbeesu9Qmv06115Sz6XZM3pP3Ulj
TytZZ8ZRYprmSeIM6rrKAr/AHDw2HmJmIipHDohYoKqcnMWzMJhcO4vQU8RFRsvwp64alJrz
UKY4WsUQsFrLfQoRqkrWdwBjI8YJVjakmWkOWWAciWjQcs/KcEZpcVleXV3TNA2rVaGUeRKG
afbMPjf6XS31DGDr5aVZ3P2CoZdn21hNyDSmmEBbR/JB6gxjiSqwWtWM4yQNriBYcNfI4EPc
fBqfBIWubc0UoFufUlU119fXEtMgJH6srSiRMSEqrGsIQZCy19cb2qbBrdZyfp8mXNuitaHR
IqKNyBABlGDzsxjLh5DdpyfSCMyEgXESPGwhhkQUru2YUyYXxkDddHmQIHhRiZeUGkaumzy3
upAFfGAkSb3lPc6tCDlKxFVyfqnrWs5kjQwTpnkWQYcXcZP3Eju0PrtFjEGc387S+4CxDo1b
7n0AxnnEBA9KM/Yj1lS5wW1wmRajncu5wZl0k91iKSmUld5S5Rx9JuMYLY3ycfI4axkmj097
nLNZeL4n+JkmGwhu3nxA9oqM8Te2EkGP0stejlJYVxPRuLZj3w9oLw3g3VbiqZwPy9BG2Yp+
GgWdHZKIupJQUEU8XjNPM5MPMlwA9uMkonFjqJuWfp6zmDjRz32O/pHBiYt+ceVt93tsrneL
kCZkkXNMh++gtQjgqqpiGEc0GoslkkghDgFHqQAAIABJREFUYZSIniPyM0IAZSwpKfppJGnF
+uyUKQ+xqqal6zr6vpfhGpo5CDnE2AqtHcQg9NYogsZ9v88CQYVW0ohu25WcFVyJcTvUA03l
cJVjGpVEfOVByDzNzJOnboXEkHLdOs8z5+c3MFpzeXVFZUWgGZMMJ0H2s6bpqFzFfreDPJxw
VqIMBLkbaDJxCaWwWdDbnolwrGmaRSDlvdS1gskvObuREIVoW8godV3Rdqscu9KijcuRuOL+
3+32KFVicRPaWHZ5wBYSVK7OtVTZB8RoZIwM/KdJL6I+Ywy2cqzXp1kALDQgpR1Gy33a73u0
0WglvYv1+lTISJOYmJRq0D7kiAxxCjonz6aQlWQ/a5uO7DeUJTkL4YUaJthmEZ5afPDLMNpZ
xzCOpAiGQuYL+XOfLANzxmFxrgo9KKKSQqFp64rLq0ussbT5cxlrmTMJTCNnfgRChdWGkBK2
XjNM80JAisykPFQT56snJEVIGm0rEaLGI9FnPtNrpWhakx3hYXFDT9OM99cYI/Wx0SIyrLKL
P+QzeJOdnykljLPcPFkzjCPjuM+xaha/nxjGgaoS882+33OykkFOiJG6lciHlDL6XanFiTuN
E9fbTSYD6ExeSmKCi5Htfk+tNFdXG6HDVfXScxAxvCEEGDMJRWI6NTHJ328RkVaJVqyT1BAF
+23ywDTm30sxLnSPEAIpiAHFVjYTT+R5Czkeb/Qz1lVLrFYRphVyZTFGXF1eEbPw3VqzuNGN
kaFViAlj8+AuX3u57hyd/0Sgaozl5EQom9aJ0L8M1Xf9VkhiWs5+2hgiWSyuJXIoBDnHWJNF
qzFKfZevXfCBKQtJr6+vOTs9JSIEFTJpsjj1iyu4nPFLLwfEOHNMOSx9oONzehlGl6G1tVZ6
ApkWUCgrRbA/zXkPrWw+gx4MLU0nJigZHk6LwUop2ddKH7GYkcrvLWYlIznsPgbJMK8riZ6u
HDZHWIUYSAGJN0slylaufXGsyxlXKJExBIzSRBWFwqESbVORUsDPI1rJe+rnRNQq170wzQNn
N0559NFH+exnn0ErxenpGq01+2FP0jCME+vVGltVnN04lxi8/PyV50diFKVG7kc5e6sc2zRN
E91KMO2FWCR9UnHW7/OZSAgRQrg8OzvLlNuQI7uMGHHmIZ8lmqU+rnN0VzE5zFMWezhL7YTI
XO6d1oeI5BADwyhkx3LmK2fJYzpBeY7KNa8aiewTrL5g5MdpkLOeZpnfFiGvxJIF2SMJeH+I
dz8WFxST2bFpq8QeFEPOi3pLgELqpipT7KT3OYKybPdbmqZ5Ub/TGkNdSd8ICik2E3dzH/GY
mKmMRiuJFkyZHmKVWuI0hGghPalCmYpJyOyQmLyXOshZVH5PWtuiIMdcmzzUF6qrrZz0l/J7
F+aEClr694gAcUqRcRhZtx0xBpSRWZ+1DuMc49TLuTFCnCOTF5pcnTRN1zDNHpsNQxLTZhcz
TTFPlbWx3P+UIxecrSFZmtVaiHV1wzhP2Fu3zmjXK0LdkKZEu25om466rrm8+wKnpyu6rlsa
icciAJ0PMkoLRqpddTIoqJ0U6cHnDU1Lsa8UVSVuhbppsCmCTpJ3YBL3L+7x9//J/wm65YEb
t3j0oTt89VNvx/eRabhm14/UTcMf/u7fx9d+zZv5S9//5xiudlxtBhlyaMVzn7/HT/zET7O9
P9EPG6b5Cl0ljAqEmHj28/e43o6supabJw3OzLSnHTrIwuIqg7GQjAgWpkly5vGCDb65XqPm
nrCbCMljdKCycnh1VprDVVUxTnv6fkQrx9jPaAxdU3G26nj++c/x5a99nHf+8e/l1u1bbHYz
H/noJ1m1K5q25sbZCqMEF/XwI3do1ydUaJx2nKzO2PejNJxjIKkkTrumoaotp13H7vqKj3/q
0/zcn/1z9POMrQwxDBAmHrjzMH/hL76LBx95iIgMKX1M+JBAGbrVigfv3OLsRAZWVmuappbB
+TwKlUDJAn/r1g3Gq80yrIkkmqbi5q1zpnFA5cbr+fkDPPv5u7z7J/85jzx0mze95Sm+953f
Q123THPkz7/rL/KT//Sn+NTTWzbjnvObp3RtRd3VbDZXcrDPG56zopQ6Rs3v99IIPD095f79
+4uq0BhRPRXn8WYjaCtxcCVUxtnu93tR/WpxQ15uL9n1W3EOGkSB2jZcXW9YNwbTtkx+RutI
P/SUCUTd1LmQgxSkkIlG1EwpQd026DBSVfWy4aMOKDylNP12h1GKumkY/cxzzz3H/Xsb/sPP
/gc+++nPcHH/i7zqVY/zjne8nWkaaVcrHn/Fy3nh6c/wFa99jbiak+fXP/FL/OBf/VGe/Y3n
sJWm1oZ11/DWr30z7/wTf5Sua/nWb/1m3v1//QT3Pu/5mrd9Na941eMkbfnJn/oXvPfn30dl
rTxT6zWudrzxqTfy5FNP8a3f+q1sNz1//X/7G9JMcJK3HEMkai0osrwpLUVcElRUGSyVTJZS
PJfcKXOUK102swcffJC6qthe3qe1jq9/+9t5+KEHmRS85stfwxOveoJP/Oqv8trXvobf83u/
iw99+CP87M/8DOerlt/7u7+dxx55iJ2PfNfv/X38Pz/1z+nalu3VJV/9ljfz2/+L30a9rvFJ
EZTl1vktPv6rH18OQfvdHq3h+uqC8/NztHNcXG3YXm959PEVm/2MwrPbXnN/GEBLo6tqRVAy
+wljNdYZtrtr3va2r+HbvumbOT3psJXJGC/P3/v7/5Af+F9/gAdvP8iu71l1HV3Xcf/+BXOY
OTk9xc+eyjoqVzFEcSGKorCGBF3TQUiYKIer9arjLV/zFB/+8Ie5vn/J/Xs7nnjilbz1bW+V
g6MxnKzXrFYdde3wfuS55z7HE1/yBFX9UuZp4vaDtwkxobRBK8WnPvVJrq4ueejBO7jKMUwj
17stVV3zwt0v0tQ1J+tTNpsNwyAK4PRCwjnDSx56kNP1WhpilWR7F6wch5lVbg7JYXL2gbZp
2e7lPROs0GFYFUkM80xtHf24x/sZtZV37vT0lKn3RCvrxBwmNputNAfqdkGaTtMgDaxpZJhH
EpqUXZ4xJfw4E8LMdrel7wWXee/iAqXg4vKKs/NTmm7FPE1cXW+xekChqFzNPOzZjYK5C0ly
54ZpJvR7cZzm4aCQQmSoVJms3k7i9I0hcPfeBdoYzm+cs9vvaWq3FFtaa+7fv5+xWfVCBBj6
EZUHEH721E7euT4XZc5ZrHVcXN7ndL1iGkae/Mqv5MmvfCPOGV7/ui/n697+dt7zH/8jq67F
+3lRJnvvcXWN0przGzcEf65MRr8HxnmQJqg10ujXiurI3V2G3c65pfmjlOBMQwpYrfHZMeBD
lCGA1zTO0bhKHEF5SCpFoKKqJX/O+wkVE7oSrKu4mHfUznK6FurDd3zHd/Djf/vH8TmXafYF
RW4Oh/GjAyvwoiFqGWYfRw6UQ9iYSQelEC+fsdAamOfsbs0DmexAV1mlfez0PkZYFVdzUSAX
J4AcBNzymcsBO+Xh/AFHbpcDps/Iq3Ec8jC8WlTDx+9giLk7l78zSkmG19Evm6+T1lmwM885
0sOJozPXjMe0i3LALfuBUmqJlCru4GOhRRlql8FhCIG+H5b/76p8AB5HOTyUoru49+uGFA8o
1JiHu6E4pqzOKl/ytT+OAvCLurlc3+JEd05yrGNkcYuXOJPyTMvfIcpnESMcRG/HkThFTV3q
mqZpl1q7PBvlkFP+M88z19fXGWsobsbjX8eZZ+UZDHmYXP75cRRIzM/YQlE4akIUHGcR+lRV
JQ6gEJf7UZ7Btm0P65M9OD7Knl6ujc01sww7DznQxliccRnnRnZKHKgaIkST/73fDxTCzPJM
2iOKTJJ1ROdmnhCfRMSS8nWRe5uWZ7j8nJjSEiVTnlsZviLu44VwlJZ38hhnJ9h4tdQ4Jfah
ICFL3VM+w+HPHXDKx0QcYwxkJGTXdVxfX+NcJf/JLgxpcIblmpfGU5OvYfl7gRfHUCgRwHkv
KHQ5TJLpNlEoB45l2Ki05ELLz5Eh2JSR2XVuIKIOsTvTPFKpajm0HtM75DmblwG+HG7jUtsf
vytlGFLu0Xa7o22lYXJMlDisMSz3ZaFCoJY6E1hcCzELkoobJoTA/fsXS9RREWNorcGwrAdl
zSiUCJ/dZeXXlNf4OouOylp3vEaUdfA41kWey7h8VvnnIy43HnQMaGeIGeFd3i1tDEbLeg3k
fEYhnpxmVHk/jdgo1zDFSJsJJ8t1ztelvHeH75oRoK3N18iz3+/ye+kP1zVvHSXfvTQt5f2U
LMvr8Xr5++t1vdw7n0V4RTyjc12BP8Q2eU9+Hw/Pgso42ZTIjeAzaZzlWkWaUtOCcQ4+YJ1g
wcteUz7fcW6qsRadzy3TJNjTsi6TBTcSSWaXtUgEaFBwlPPsUV7Wj+K60krcTinJQOWYgjMf
IY/lOVUSA5Hfa8GW6yx8KHupCDPGUWoPVFrqrBhg8tOy/zunGcdDzFXbdLmJPy3fqwyoYjw4
fsommWJ8USwZkBGs0qDr+355d49rmpJrL793HD8imG+llIjqlYIYl7VIKYWxSlDe05zLElkL
lBLBwzAOQi+xgjjVefgn4qSA1gHrquUzlnW1RJrN2U1VvjeA0nqJK7PWMuyGZd0QscpheBvz
gKTk3Ja4HK1tpjJMy8+z1uRh0yR7BAlfREG5jopZhFjXFd4XkZmDlMVZeXBlqvIeJ4zJzfiQ
B8ckmqbNe6aRoVQYFyGuqWrmacJavRChdrsdicg0+eX5KWtVyo39ErMDQkxxuS4tde52syHq
uAysyz4j9CBZl0OITCos7/QxRc1Yy2ptl/pZ1pWKutbLvzNNUk90nVtisbQ2R5+11JBCYfJB
hAwq0xSqtlCdcvxcruGFxgKr1ZqhH2SYld18ddUwjVIrlzi3kDPVYxLSgvQ8pT5ImcZxXM+u
1yekBMPQM44zq87lQTs447IwNEJSIrxQCu2EUFRXGR2c/66UElFLI3weBpx1aGNlYJFkjbGV
uDdD8Cjkn/V5sFdIPiSpB47PM03dUOf8dZXXfZUOERkHLDvL+l7i3iKS4xxCoG0bhmEkqYQy
jqRCXt9MHkSJI/f66nrZA2U/mZaB7JSpDUppptnLUD2LnsqeHTJhUb5rwLmKcRQy2FoLCciX
CCUOcXXFued9ESdbjFH57w1LLZtS4vr6esFuyzUodYvKBC1Zq8ue5Jd9JTHOxxGOlpAS49Dj
9EHARZI4yCa73mNIBCUI8jK8kl6jnC0lfsMQUxBEuReK0pDP+bIGy7NWhE5NLcNEbVSuacrZ
lmXdI8nzI2eaebnOQvmaCT4enI9VhbFx2buGYaTEdlSuXoaL0rc9UAfbpl1q6MkLJU5pTdtI
BEXIe2yKkTmIiHqz2WHyOb3sOcdkMXGNW0oeq1ZQVbJPFvJZGaIe114FR75er5dzivce5dwi
QNf5s5T+c4xxIaJdXl3Rti2r9Tq7ezOxKcduyrMia0WpLU6s5GQX0busJxGQaxpTYpc/l+xR
IePj18ueZa0l5l7DMAx0XUcI1SLaXEgE+fmVGqWQKg/nwuPzbbkuhQJGOiLe5XN71TSytg/D
MuhbrVZMWTQgfe1q2ctKbVfWjcPPFNGvOiLrlX5EEWQV3H3ZU8v6UPbZ7XabRbpiuAkxErNo
s3xn3RU3sSf5tAzUdXV0Ns17NLkPXa5p+fzV0R730EMPcXFxgVKZWBgiXf5zx7GY5VlISdD/
pfYr62TKZ8yyx5a+UaHZlve8POMlDvM/PxeWzzvPInQZhgFtpK9prURJhBBAjtSEEJZ5SImw
LO9GWbvKXrDdbpmmidPTUwphzbpDD2LOhj6tzXK2BZYoxvJ75T0o+2DZP44poN57iZ8qvZEo
9IcyWO46ES8+99yz1PVh/jNPM8ZIrQTg6upAjVIHcmb5nt57Zn+IXZtnoUDcuHkzmy8mtD5E
lZb7Wt7d9XqNtYa7d19YYmHlPh1iK8s7VMT95Vksz0HpF0EZ7Eb6fr88/0U4ASzD+bqul7Wp
nDfK83GogeRsvVqt2O12S28zzZG2lTU7xYipcp0ByztQnu/jM/DxufpYPFF+tuwxalnzZKZm
lrqu/L5SahnuX11dicGyrpfn6HjWXNaaGCPzeCCElrNkeTdEaKPLliU1rzmiZ2qVjSo2m86i
zE6SCFZ8OFBlSw+9DNJLbVCez5iESNj3PfuhX+5FVdeEIPEn1jmmeZI4iVzHGiNxyGGaF6GP
qyrp15VnU24C282GlMUIrnLE5PPMzGTaQCuGyXyNjv/7WPA6ZoNdXVdMo3zXsr/FpsVGJTix
cZpI+y13pyvatuHy4jIroQLn5+eU/NZyQZumIYZACIZpnqi7FfM40NW1qAaNqM6UspLvlzeO
lODs9Ixh43G6ojKBp5/5JDx0hze+6Um+7M0NP/cfP8Bm0/OF5+/zj/7BP+Nf/+t/w3a/4c5L
bvON3/yNvPrLv4w3PfkkX/u1X8+H3vdBonMEHfFxwge4d2/L1d0RVM9zX/gsbaVwJtHUDhUC
N288gDUGaxNWR9ZNxe7yLuMwkNT/z9Z7x1l2VXe+371PurliZ7VaOSMJgSRAIDKyDQgBAyaY
8PxsMGAw6YEJtkmeGY/9GEywAdvjMcbjeePnNwaDMeAAEsYEAwIsQKlRarW6u6q6qm4695yz
935/7LPO3VVwPx991N1V94S9117ht35rLUccKZyGRBIBVjMe5wwWUwwR21sjUlOglCOLwcXQ
a2s6LcV4dJqSktWunyvkJx5UKGeJtSKKIE0iLnvYJeg0olIR06Lik5/8G37477eTJYpuC2aT
LQ7sW+G3f+fdXHjZpSgHvU6fKEoxlWeYuWZ2rfLMbQOnt0ZgDZPZFB0rVheWKGdTFnoDHrj/
KI+4+nKe8JTH4eKEExtb/P3n/4nBYIlBr0ccWbSzRLrinHMOsbrvoA8ma7LGJJ9i8SCXVhqN
IqvbcUXKobDEyhIndekyXlksL+/hB9+/k//5rb/iIx96Pwu9Rf87yqBUyfOefyNXPOwStrbG
3PyVr/K1b3yNvXtWUAoGgxazuvpWKSgKX40zm5U7DEa/32/mHIfgQ5hsEmWrlGdvtloZVVn6
eU5FiY41xTRnNp2gtZ+7qJSvsG63W3S6PaaTLaZbm6z2OzilKfIpvsGZIVaKbqtNO06JUKRJ
CnGLTrvrkzDOt+fMtCafzbB4ZjLKg8flLMdWJamKUE5jSseHPvwxvvLlr3J6fZ0LjpzNcr/N
yuIAa0oUHuyZFTPWN05TzCqUTsjihH5/4I32eIgdGtpJzHjTUkzGtGrWaTHL0ZFi74EDLK+u
knUyDBHHT5zi//ubT5MQ024lDBZ6OCyPfPS1uMphqDj/nHPZs2eFWZ5jqgpbVfS6XXQ0b/8S
dgmxQLfb2gEIiRM3D+yTJsEVMsmiKKKcFVA5OmmbhIhYRRD5ysMkUeT5mDe/5Y086jGPIUlb
vPpXXsVXv/RPrC4vkaUJNvJBbqfXZf30JlmkOeuss5lOJuhU0RkMsMTs3X+Aw0fOYu3kKfKJ
r3gebW1x1pHDvO+338vJE6c4efI4Ks2I0hg1K/iZn30qj3vsdVjr+F//7//mG9/4FueccRin
fWujOIlqAoDmwovOI0k1WlsSHddtYBUvfMHzOHr0bj772c/Rbbcxzs+L7vV6FJUfXZFlGe26
/ZouvXHLZ1MWWx2OH3uIg/v2k48rvv2NWzlw5n4OnHGQ59x0I3tW9vBrr30dxWTIr73uv3DV
tY8kTVvc+8CDbGxu0UoTet2M9VOncJS86tWv4MqrrmI6meDqtjcCEtx22w94xzvfwXRWoKOY
tY3T3HDDU/mVV/8KN998C3/4sY/y6le9hkMHz2BrcwvnHFmW8cMf/ZD/8clPkrUy37a0qkBF
OKcbMog1luFou3EOAJbrmX44z+6nBqVREvhGXHD+eT5xNps1bbN/+MMfMp0VHNx3kEj5KmKc
o91pceLUKRYGiwx6fd/m21a0Wx22RyNA88DxY5Sl4dDBA3WrK3jo5Em6vS7WWSbTMboG2OIo
oVKgrGP//n0Upa80m81yX+WoNSdPnfLrpf38VWsMaeYBnX6/x2DQp8i9czWdztgYnWZpaQnr
/DzGNPHMwulkhHEW5RxZtshoPKHf63L69OkmWTcaj33wV/ozCb6N/OLCAmVZMhoPabVbdSDv
f47SbGwNwVjfji5JaWUJWZLQankiX7LXj8tQtTNbVhWTPKfd69ZthGM21jcA5dusYUm1L62K
Yz9bKtGdxnkU51S6AAhobPEzYGM9T9DaaY5SvkW3AU8MyH2VTzErSdMEHSmixLeuo26Br7Rv
dQQWrZxnE2vIUj+rtNvtsbS0xHQ8rza31hHV+dPQ+ZTgQRx6+bMkaMRxFsa3JIDBJ1Ak2JHA
TgK/sFpxnuyZj4YIfybPJEl0V7ODQ3ZtLqMrakdbbKF8N47jJqEjQKk49wJoyLtZa4mTtEnu
SqAh7yufOVgwXwv/HtGO+4fBijxbmPyShLYEMtLKar43831QSjXzi/3154GWJ/fNk47ed52D
G02CzbiatWw8iG7nzynXajoTRPPxFCK3sk/hR95R1kuCB3lv+btcO0y2CaARdo8IGfr1Yjdr
ImBVv99v1kTWo/FzzDwJLP8mrepk30UWw+cPk8RSTSIBsNhkX/mUNTIfgqhCghFwUN5JZKsh
+9Q/k+v1er0mySrJ/BB0lEA/TVNMQKoJ9yIkjPh1001ALjIQtvCToF3kUXwXX3kyByjmskYD
Osm+yZ/lnnIdXRsreaYQjJL1ln8DmqBT9lKeRb4Tdh1RStWjPTzIOZlMkKrh8P3D9xZAUORP
1s771X5fer1eA0qI3Ms8WNn/ELSRxB3YeRV0vf9az7tZxEm7WUM5A3JOBLgKSTACfDSV0IEM
h+dF/HqRv5DwEOrVcP1DMpUAq9K+b7d+loReq9WiV7d9Fr0g6ySgi8is6LAwyShnbzqd0u/3
G0BcOmGFOiskOsi7hmdoVneJiepzJ3scBYBZHHkfIwQLUbA9Gvl3rQkyoeyFayb+uLyPyLnI
VxInjMdT4si3GdVakSQ+xgffccU6s+M8huvRJPrrfQztlqy/J5rU+sdUvq289rPCfWWzIkn0
T4BhYTK2qpP/Zb1mWvtKPj+SwctBks7lUb4vOkUAPwGmmuRI/REZkbMyT7ion9CrDTgT6N95
AsoD4X596nVvCihcM2pCrhHeS8BmSQzIHob6QghrIveiZ+RaSqkmUSXP2oxbcXOSnrRKLcvy
J8BGqWiWdQmrhARAlzbA8i6hLhE52O37yHkVWReAu6rmfo6tSY5xNCeqGGMaoDXsOudUPbIl
9l1gpLsXeMKvqomraSvDOEuUzHVU2vJEEu1odGRaVzLtns8qs33FfolPI3KR53mTyN4tG1IJ
rtR8frAxZod/MykmjV8X6n7xsUUmRUdNJhOYzepqahkZUeEUpK0Wzlk2Njcb3Zsk8TzBZENy
XrQjxvfx23ym76SeYSzrI7oxtDuSPJW1kr2WvQsTJ6HfIespvodU5E/rtSzrdWtsVeADubr6
XNiPWmtUXJPgyp06bjab7fBxoiiiNMbP/LYWh2u6njU+VShjbt4xrEm+Wetb5qN9t4Lcd38z
ztEbDDxQb+czn52j7l4xHzcmLbsrY+oEoa1bBUd15XPZzLNtMDLncbssTn2MFQDzQpqKojm5
UrqQiV0UeRXiijHz8TwYajKRf+a28n9XNZEyzVJPNLAWZbzsdLqdOv6kkXffZaXaQY7xhFk/
mkh0SZ5PETLHtCzq8T61HmMnGC4AvsQ9Snm8VOyrfEQ/iy4qy7IhUCnl/RHZS0kUz/VVvCOR
I0RruX6YMFT4Csg49iPxGt/V+ephrX1b+0grnKlwlrqNt7c54lNL3AzssP9KeUKrJDDENxMf
2rmaVGRqf7L+nq273omMCVGoqkyz91mWNWSlyWTCYDDg3HPP5e677258PZkbHhIZq6pqRoeV
lU+iF2VJZWX0W9W0+7Z2TpQo6rMl88u18X5uUusG8fdCInaYaJYiBfmIDgv3XGRdKdX4vbLX
EmOOx2PKsmxIAaJL5lWyabP3QgiS2DS0f3Ecs7Cw4LsBZhmz2awZwefJlO0dybNQfgaDAXk9
pkC+WxRFg5XJcw6Hw+ae8v3QVxU5FWw81AMwjzllfcUe7/RTkubPYcJJ9G3ov4W+ZZiokjhR
yAriP4i8xoG+E8xYdOpubEPeX5KSsofheRZSvT/PaoevVpZlk5iVvRDbIPshCfrQN5T4W/ZZ
zsZoNGrkUGyyXFuwIYkfJeku35U9EqKDrHWWZayvrzc2UWyn2MywgCPUCTKXXH4vjCMl5hZS
Q2hnBSMK/TSR8/F4Ql6P6gp9AyE3hmdC5C3cf39/u+MsydndHfMIWUAKOQRPnk6njMfjZuSg
JKqLomhIDc55otTm5iYrKys75Fg+YRwakthkn2pIyNtoa6GOxVutFpXxY/Ekltve3t6BC4S6
RnwwkR05P+I3iH8YxkNylkS+RRbkXIivHd4n1LvyET8tfFfxZyQ2lHORJEmjN8V/C8mf8hGM
Zvc5kmvJc+6OqaRLh8QpcRw3sbXoNdHV4XeF4BXqEuk4IHsmsbTIbPgsu/1y0QthbCH+0ng8
buQstBlNnKPwhJooIk18Ar+VZrVLWRfQlH78WbsZWeC7nhXGgIqY5Z7wmyS+w6WKfMGwMZbR
eEIc+24A/vl1s1dRHDOZTqEuppdPuN8So/l9N6A1eTEhVdDutmi3ErZNQVyVjtJ4haqNYXnf
CqdPr2Mt7Nu7h+H2Jtvb280Gy8EUp1ja7SVJQtxqU81yxvmM8ThnOs1ReIYvyjtRvo2Qo5gV
rK0fY3UhY6HT5jnPuZFffvWvYOIWX/7y1/n4H/wJt9/2Q770L0fJIkVpCh716Gvod9vECoZF
wWhSMqtgZGaU2rPEe/0O6JJJvsZIAMyXAAAgAElEQVRouEG3HWOKIdZZnvvil/Dwax/D2qbh
ox/9M+7/8R2cc8YKVTFrWjhOxr4NFtbQ77QY9NpsTXMWF5cp7ZiiMgwWFim3CqpiSoJvb7jY
j3jYpeeyuX6CU8ePo6OMXm+Z2cy3KHTW4pQlS/1ml1XBrCrpKuWJExWsndrCVVN6maGTOoaZ
Jh9PsI56blWENfUMSwdzBnZcz89ydFptqiInzVIcE5JYo0wEVcWhPXu56KJzydoxMxcxmcJf
//UXue+e+9nePEmkcmJlOeesg7znPW9jaWkF5doUZcGJUyeYVSWVs1TOEScpeT6jHI08O9P5
BHgrS1haXqSkosKiraPd6TLorbC6cgaf/dt/5l9u/leSBNJ2zOOffD2XXHoxF19yIdZG3PQf
buK33vUuvvylL4ODAwcO0O8NWD+9xmDQRylq5pVrlLkcWgkg8zxvFLIYDlFSAirHsfaVv4mv
Luv32kxGYzppysrKiq/WV77tSRxDlsSYskCjOLB3LxQ54+GmP+TOoDEoHGnk5/fF9YF1NXMs
0hF5PqWtXT27qKKsSoyTBI5XlLM8R9m6oWTUYmtzyvZwTJr6lsiunGFmU7SrPPnD+VlV4/GU
rdNDnPOA1vkXnMvb3/EWymmJw0BZYospUWRQzhDrlJWlZbqdHmU+JYrSuuVuxSMe+TCe9/yb
cAbuPnoXt956Kwf2HeADH/ggnW4HFcWcOrUGzs+U0loxHm4zmU5YWFhoZDKKxJA5LKphUIZJ
/tApkb0MQciGPVdXWSnq7pPWtzfK0oTt4SZoPzOorErSVosrr3wYX/r8Zzh9ep0k8rPMHI5Z
UdLpdUnQfPtb3+Zr//oVnv+i5/Oc5z2PpN2nW7f68UY3op21KPIZ1z7ykZx91hEOn3U2K8vL
ZImiqAqyVsLjrr+O8XiG0hFnnHU2z3nO8zl56iTtTscHdcaf0wvOP5+y9NVsx+6/h1h7fdjq
dFjet5/3vvddPPLaa/nNd7wTgG2CuXxi1I2lnM3wVby+HfN4PGRldRlTGm6/7Ue8/GUv4yUv
fxFvfcdb0Upx3nnncuDgfjZPKVZXV4jQOB3zO7/7f3PLl2/h4P595OMhj7jqcp7788/n6msf
TV7ktOuZSjhFrH0ry8dd/1he/4bX86EPfZgHHzpBu5XwzBufzoUXnMeevasYV/G46x/L4sJS
TZ7xlU6Pf+L1PHj8OP/0j//IQrfHnqUlirICbJP0KyufBO50OmxubhLHSSMz7U4bTMl4NPYO
glKU5YyDB/bzS7/8S5x97jl+PYw/T1/4whd529vexvrGBt1Wi62tTV76spfwvBf8PF//5jd5
45vezPLKsp/paCxrp9axWF7z2tewtLLCxz72x9xxx+20WxlPe+rTeMx11/Hnf/EJ7rvvHl77
utdQlBXDyRSlNesn1/mnf/gH7n/gGP1eH4Nl/fQGqyvLFEXOw6+6ktHEjwFQrq6StIbNzdMc
f/A41loGPe+sttIWehBxcm2NWTFjsT9gOsrJ8wIda06cfAgH5GXBnj17mE5zut0O48mYYw8e
oyxL9u7ZR6/bpdfxc6vyYsbW5jbTomAyHbGvlfnKt6hmNMYJeVmSj8fcdtsPGA6HtHotZCTJ
3n17fFss44lsWbtFu9PC5TNOPHQC6son7XzHkmoyBW2ZFgX9fo+qNLQ7XWbFjFkxq1nCvmp4
OPYJq+3R2AfOmZfryiiSKKGqSj8OJPbjCsazgki5emanQkcxOopROCbjMaYyOKUwtgSt6LQ7
nDxxgqyVojV+9EGkcXUbzbIsaHc6pKnX07OZH1kh7dBFN4UJS/F3BJiUIFMCj3a7vSNZHQK6
oW4LE/9hIkoCaglS5J7y83mSF+btye0OfWqMaUDw0GkOq36V8sQzV7dCFJAvDNAJ3l2AnN3J
Kb8u3h8JA3dbR04hi1yeT+4hwa88e2jPw+AlTAYIWBGSxJydV5zKMyRJ0rTd00rj6gDWVzHp
xj55JrvvMhImzCUwkEBHMQdV5N1lHQS02J20kKBu93vLOobyIwG2XFv8lzDhGemd1dJhgkcC
LBuQ7iTp0vzM2oZpHEXzLh6yLmEwHiY/wz0QsGA4HDaBl7xLuDZy/TDJGwIRcl0J2trtdgNe
iLzK/aXiQdazLEs/31AHbeXqYFnOqYA2VVWS1DN5fRLINMxxCbjDYFECZZEvWZsw8A6TNkJ8
CCsXmgRPPd9Y1kWSMiEAE/o58ufdSRABBOTsydr6e/p2z7IuIelFgu3w7Pv9jXYQPapq3o1p
Y2OjAYPC78neC9lD5FJklHouqKz9jrV0DlvOK0kE3JGgVcBsSbqEyZ6w6kD0ZLg2ootFL4aA
Zhjwh76l/FcUBePxuOnsESbZBfjsdrvNu8ozy9rJmskZlKSA3MtaP/Mw1LlNFYGdV/SHxJnw
fIRyEL5TYz+Yk1Ma/So/s5Y8AErH43Hze35GtK47Jsx1lciyJLBCG9hUudaAOS3AaSp8JUWe
z5q2/dOJVDvNCWuiV3YnrOXcD4fDRreI/ipLPwqI2o9Ms/Qn1kdAWaDRdSH5riUVVG5OCBH9
5PdqThgS8nhIXBY5Fh0tOkYALzmTMps13MdQJ4b6P0yYS3WNf/45eGpxzGYlaeqTYM4FHZJ2
EZJC/yHUoWKfpBpd7i+y69ycJO+cI06S5vnlfIXVRVWtX6RluE9Quh22KpT1sJJIAEdlTNN5
RuQ4tNlyPkJimpxFsV/a+gprB0QIMQ5v13WEinwLfuusb1Fb23mto7rFq++sZYyhVduvxl/T
fl5zmqWo+rnTyFe/ZVnWjBOy5XwPhOApaxp29hD5EV0sAKesaZhMF5kXm6wj3z3OmLpbmfUj
MLwumK+1rK/oInmuUN7Fjjmtmvngcpa9751hKk8cKqsSYw1FOR+nIYC4yEPod4g9lASV7Kvs
YxzHdWK6aGyf2MOQYBkmoUQnhclzWUPxHUX/AqhI1+2xDbOy8Lgj3vezOIi83quqiiTydsaD
yjSNz9PEr5HskbSwbVphS3eZSKN1TYioKmZ14qZJjAfPHZ4jayxYmE5nxHFFlma+WltHFKXv
ThpHMotW/Pa6A1o9msDYCuoKbWONx7DqMy/30JEmqrHZqJYBj2nRELhFLp3zhHpJCrbb7Ua/
iA6T5NgOIF3Nz28U12NQtKo7S8k4J4cpC19VFyegfEW6Xw/fHUZ0rPhGooONbxzUyIuvaK5t
D7XerOVJbIlVEDEn6qaprxoW/yJN/Wg/kbHQB1Z1lxQ5k+KrWktj/yThGvphVSUkgZ3nUWS5
qqq63bhvJY7yHf+MDYgX2lfmVlUBWLTzHVaqynf/c9a3lpckn+hroNHvSerbk7saa0vTlEjI
ZFb0p7ctWoltlS4+barKNHrMy0LexKMhCVXITtZa7rnnnibZ2Wq1aLfbjMfjxu4J+beJqepz
FiaKjTH0+/36+tDrtTGVwVRlQ5ZQ2mCqijieJ57FroRktk7Hdy0WuyHnNvS/hcgq79Ptdnfo
EbHJw+GwqUaVJJ2QyMT2h8TTkAAtdlV8zFY9Skp0hDyjrJ28R0g8l2cRwhf4dvFVVTEcDpsZ
7aE/EAV2SnSYXE/0tKyF+Lphol6eEeZE3HD9xA7LJ6zoLoqiKfwSvd/4cOJ3BjgFsKO9fOgH
hPeWuCokeohcttvtBiOUpLisW2g/QtsqOQBJfotMi80JCY3yEf0t/2aMaUjxsi4y2lF8gN0+
X9i+X55Dnk+KF+XdxMaKXE6n06azgey37EOIFVhrGzsbxmbiE8tzy35JbCTyF8aYcj05J+12
uz5P48bXDbscyRqGJA25v+hMsdnj8ZRWy5+dyWSyg/gSxt/zGHce00syOCQLh1iHxBPiV8i9
hRASkl5CXzfU1w1xI8l2nke/4Citm1F4K8vLNV4d74gLRA5CuRHbIL8n51bGQIT4iehY8c9l
H+XZBHcRGdgdF8i7hH8O/RKxu6GfJgl9YAfG2e/3GyJriJeEejXEGsWPFwKs7IO1dgdxKTzD
8iy7CwtEN4kMgCc+tNvteszC3NaGsXuIeYVEIPmIDylJfpF/+YR/DolDYmtT6S5pPKnPVFWD
lyY1tjjLPdEW5/EqpXQ9GszfL0s9sVE5i3JQzMrG7jR61/qxR2maoSNdk92rRl5Ckr6sl3R7
UUpjbMmsKohTH9uliUYbS9zvDmoWguHImWeysXY7VVUymxmGwxFbdSsbOewC1imlPLO/NlhF
MUMZQzdOqKYTksg7XVra8OFnmkZayACKdqfD9tYG5x/Zz6H9+3DKYMoJkSp5xo03cOmlF3Lr
N7/J9uYGcaTRMYwn47r1aYKxsLyyl9wUGOedvm63TbtlSdMC60aMRxPaHcXy6jKPuPbhXHPd
1eh0D1/7xm3ce/QuP1ss1cS1AXNO+Xn11hJpSxKD1obRaBurStppB11ZrDWMhttEztFOIs44
sJc3vOFXecSVD+e1r3ktgzRDmyn79g0oGqfdOyPdXrdhoikc2vuCrKwsM95aoyo26S8vcOUV
lzHN/Wwn8II5nea1EvItROfgT4xvD+m9ewW0Oy3yfIIyBnREHCmqKkdHEKuEdquHIyWfGoq8
ZKGbkI83wVZE2oH1Sf0oith/6ADtXgeD9dWnUQ3SxNJq1mGdpdXOyNoZFkfpKlLnW971+wOS
tM2/fPXfeOjBH4MrOHzkAE+94Wm00ozSepZruxvzkpe8iLvuvIM7br+rURpyUL2CM01LXPkI
OCOOlRgIYX51u93GsIqxLwpfKdzO2oxHE59Iyep5PUmEn00eEUXepR5vb5Fow8xGTLe3MLMR
1awC69sva+XlM0kTwM9w8tUl/v3HWyVZEmGmI69MnB+H4XCgfDu+cuZnB6J8tXiSZPR6A/LJ
kK2tTbqpnwml8HN/nfMJsCyrjTmgnGNxaYFHP/oan+CjJLYWWxaUxRgizcxo0rRNt92FpAVW
YyvLdDbmMdddzRMe/1i0irn7x/fwcz/zTB48cYKjD9yDcYZ9e/YxmUw5cOAQcb9PmmYUAeDl
WxBHVJUKHLi4cRzFyRIDEgKuYsyFFScOUKQjCudwlbDSrZ+z3LSKmjt8rm6oEOkIjWdBOadQ
NVvc4Oh1Wjx04iT33XsXz3z2M/CtyOrr4cGfdpIRxwmrK6tcdullZGmLSPtZO7F2zKyvXo/T
mK6KqaxjeWWFs44c4eQDxxh02syKAj9T2M/HU6rk+9/9Lu//vd/F5jOyJOHRj7mOV73u14jj
lCc+/nrOP/98jt1/jJkq/OzSqKAsPQtyMpmAtSRxzeiceZCjKksWB8vMHBzYs5/VxUWyJKln
L3kdPZn6BLSr5WswWODggQO4suDBY8f4T7/9Xp7wxCcxKUpauoVNHVivD8UptsALX/gCslab
t7z5TQwGLQ4dOkC73WJFL3LDDU9jdXUvON8pIKori0tjecUrf5m7776bH995N8uLSzWLvdM4
SNvDLWTmVwj2DxYGOOvbBhd12xzfT9VyycUXc2D/PqTqGHyrxBtuuIFPfepT/N1n/o6zzjgD
ayuuv/56Dh8+zMqePbzjnb/BaDxGWUeiY7a3hhw8Yz9PfuITOXDmYdY2NvmP730fzjlu+Jmn
cd1116Fjx6c//Sme//zn0Wq3QfmeH8o69u/bx399//vp9wc1CAKTyQjrKt7+9reysLTCeDSl
Km1NUnLcddddvPvd72Z97RQaS5Z6Rv9LX/4yhqMRv//B3+fyK6/gogsvYuP0JuPJiPW1dTZP
b/L97/87nW6XbqdNpKDVbrH/4EF+8MMfce9993Lk8BFUT4N19Lo9tra3aXe7FFXBHXfeyQXn
nefBFwDtK5y2HEzyKceOH2PPgT0euKkqWu0WWmlm0wKcr1gYTcYsLq+wsbnJ1uaWB27jhI3N
TZI0IWvFNSlN4wxUhSc7tbsdiuGQk6fWMMawtbXVJEi63S6LS4t0uy3AMRyN/PiIoiBrt+pq
rQJjKtI4xRrH3tVVrB+3hq0MnXaHCusrFpxPkFtrKWZ+PIkAYQo/M1xrTb/X890casczTTLf
Ni5I6IosCgggDqUAnbsTAmGCR/SaBIGhLyVBUpi8EbsWOtg/7WdVWZHUbaTDBEsD+irqOXrz
5GT4PqI3VTRvGRfqZq01s8LPRBMQI3TA5Rr+d6MmiS7PHSZiQ0BA1i9M7EqgKmsRrrGsc5hA
Drss+AWZr5MABWGQFUVRPXO3Xld8y3K/T36t4jhuwJUQoBfgMEwOh0lxAbckuSIATAhkhqCZ
vKsE1kVR0O12Gx9mR6WY20m0MB6JbPY5rBgMAyR5VgEo5XfC9RZAPqxoCIOeMLkra9Bqtdje
3m72MySjhMQRqZYbDoeNzQ+DqJB9L88iYJrsW0hwCAPpMEkQnj1Zr90BXrhXSZIwHk9IkrQh
EuwOoCSoas5ZAArKRwCf8DzKzyXBE1Yzhs8TJnBlD0U+xBcSHRK+t3xE3sS/9Yl7vcOPErkI
qw1kfzw4Y5pE+2AwwNqdCST5XkialWeQfZE1mych5zohBPq8757vADl2y0tY5SD7K0lRkdlQ
94S6UPZrMBigtW4qhUK9Ks+0m0gg+xXqMokjwkresPuFVN1IPBKCbPJ/ASoFCJYzOJlMmE6n
O7qWhPoxPPPybNLxYkeisN5fn3ipk1AIsSNpkv/y/SiKWF9fn+sfa2ml6Y59DXWIAIgCzoR6
T/YnSRIm47xucT8nXYS2rNvp1ImgnR0GQh0q6yjfFdkTHRwFsh+SJGTtBVwLdbHcR54jjuad
ALSeV1qLvg0T2CHwOU/wVE3iUnSNnG8BVsM5rnI+QvBXzktY8SNxrX8W2+jaOI7rESVzMpjM
vg51ueydVCaKDZHrSNIqTNyFFfshYU0ILaKbRBZEByVJQl63OE6SZAdILv+FQKzoTVlT0UNa
+/E1oczJs8p+heCf2BjBnqIooqrlVymFskJQjDCV7wbhGTCKWPuzMM23WVhc9efIzNt4J3HS
JAMkyanVHDSV8x8CkQ0JLKrHXAUJdNmXsMpM/i7J1aqqmkRmqMdkn3d0AyqrejSLJ9j4M+Yr
i/2a+BnGkrQME4PhLFZjTEPqQs3PdyjD0jlxYWGByWTSxOLGWlS99qIHRGdLYqVVE14VNImF
yhg/qzued5oRmRO5EJBbriXrHvpMojdF3qSTgxAOxE5orWnVfy6KoukMpJN5Fw9v//z8avDx
BKqulKplVCp9YZ6ckiSxxY9oDJNxm5ub5Hm+w68P7Vqoy40xaKWbPVJKUVpDuy0+rR95Qz1j
Wil2JL2cc342rHPNGCsVJKTAd0SJnHQdmn+UUoynk4bQEPqt0/EExWxH0k5sQ+hDNv+PPeFa
dJ3IhPh94FvGlwEu55Mpcd2RrSa4JOkOm+ncTjKT2OV5i/15RaK181hGzp1U3IfJSmnbL76M
7IecY/m/UvMWy97G7RzHJLpKSCOSTAGLMfMKXF+EMG9b7H/Hr5boenk3GcdjrB8RJdiAKQtK
W6J1QlUZjDWkdceC7e3tJv6ZJ9nbDalX5MRaQwTU7Rt95X1Z+zxKSByOOJaYgR2yK9cP4wSR
806nw2w2a3wt0TdhQiL0lyaTiY+J6lGHog9En0iF8nQ6wVRVQ56qjBChK6Z5Tqs1rwAP929j
Y4OFhYUdNlfWQvxAkZ8wnhDbJL8n15SzKUkjIScIyVTkcjQaNSPXRDZFN4gdlfMmNkH8cmrd
KAQJkSfxk+U6ktQWmyW6Tt5Bzn4URQ2RQfzJMAEW6tQd45eqObE59IvEl5RnksSu6E3xK+Te
jc2qqp12kp3xkVwzHFvQ+Dj12szH4dAkuRsdX/tOMspXfIbdSWitNYPBoOnaJORX6c4QJkNF
z4VJ9DBxK36p2HgZ9SBxmlxLfG3Ze7HHIu+hDynXlPUWvDvsliP2LvQX5TwKdiTP2RC5lGpI
L5IcFRmTeCCshA4TsXK+wxg79GGFrCRxZNhdI4qihuic53lDfpH3CpPGnU67WXNJDofklzD2
l/eWcyFrKwQaeS+RbUlgyzPKdRqSYG2XZV9gntwX2ZYzIWsbFqnIukWRz2+KvxbiB3KO5OyI
fZPzHOI0YS5E9EZIeJCzLjIm7yfYUhgPyLvJO4l/JXpOzoGcbdHT8pxhdyap+u/3+835l3cM
MYvdcYTImjxLqEtC3Ef2SOKiUJ7DDlla64bMJusosi5yLNeTWEGeqSFtBLFMqAvlE+K31toG
v5P3FPmSTxzHGGt8vCFxs1JNVx9rDVndDSCKE8q6Y12aJIxmI5J69LecU4Uf62lM7Y9GdcdE
rRmOtul0usSxf7/ReOK7+gUxUvieXu4KojQjy1pM8sI/q/X+uIrruLnb7rEwWGJze8i23aKV
ZHQ7KVHSJh+NOXLkCBsbGwBsbW3R7/cbJWuNdwJbUV3N4KxnM1YVUZwwGU9x9eL42VOKXrdP
K+tQZh1a8RJHLjgLm4/59je/x2hrRNTNuOKaa7ji4Q9DEaP1K30LJOsB5so4vvOdf+fLt3yd
reGY9a1tjt59H8fvP82pUyc4eNZh/vuf/VcPfCiwtqQ0BafWN4ijlO1xzubx4xw+82yuuPJK
KLeYbp4iz0viLGV7O8fMLGW1xaOuOp/Vt76cWV4xHo95/wc+yPH77uPisw6Sl5teiMoSU8zQ
WcbyYptrr72c97znbdx9++3YYkK7HfPg2joHS4eNHYtLK+xZ3YtymlTFxMqi3ZT9+zI211PG
3Q62NFz/+Mfyyle+gsU9S5TGoCJYXV2h0+4wKwvQfj5pt9OhnWZEeOdtMpuicUzyCf1Bj253
GSpDlU8wuZ8BoXFgC/LZFokuaGWgem3yfINXvuL/4Jdf8WKMnRDHirIyuMixtrXBiY1TFLak
LJ0PsC0UZcWsKP04APyhHU4n5GZGgR914EzFdLbN0mqbJK0oqr04U7G4tI8//qNPkKQwm41Z
XOzz4l/4Ba684mL+9m//N+9572/zxS/8M8ZasqRVt/5OSbptnJ0rOFFs4pxKGzgx5IPBgHa7
3QBoHhjxnRKUUhgs6DqIMYbRdIIlpyhmpLFGO8dstMlzn/tzXHX5JfQ6LdZPnOLzn/k0dx09
ymOe/ESiyhNSojhmOssZT3N6gEVRlhXTyRStNJUpSLT2LeGNnzFmHH4uoVOUlfUz46yltIrx
1ANj/X6fForZ6DTWGvJpTtZ39bziGJyvCKeqMMY7oJPtnCSOiTPI4pg4gqjdhlgTl5rZ1OIq
y7Gjx3jS457Mnn3L/I//9ecsL/ZxLqcwisNnH+Tj/+3jHL37XvJ8yic+8QlGoxGHzzyCqSpG
wy2Um1ewlaWvpPJOngcmQuUqYJcoKwGpxLEQZSj7KsmY0WREkmgiIqZ5Pc6hnVBZ36axrCyY
Cq180rnbGZDGGdtbQ5xTng0AtFstYh2hdISj4tChQxSFb+/nkowkiWi3UxaXFnHG8dCJh+h1
O/zZn/05f/PpT5PPpnTbLd765jdwyZWXo9OEv/vs5/nCF/6R8TjHlIblxQVSZ9lcW6eYWayN
qaqI0Tjn43/0R/z46N102otsjU5y/7H7eeqTWix2O5SRYpZ7csbqnlVsWYGxaKCV+fYyaSsD
B1mrxSzP6ba75LMcWxrW1k4QoShNfTYcxA72rizyZ3/6x5iqYmlhkTjtgI5ot7oY4+i02zzi
iiu44vKH0Ur96Id3/vpb+PSnPkUWp/S7XSKtOevsI/zhxz5OpzfgSU98Atdccw0PHbuXCM9s
a7czzjv3HCbTnD/66Ed56IEHiLXmgvMv4BnPfhYXXnAef/jxj/Gm17+JEw8cY3lxwSfVtGJz
awOtNEmcMR4Jy9WDOKNyTCvLKAsPnJjKYJ0ha6X8h+c+hySJ2Tq9Tr/XJY1TRsMxWafDhz74
+7zohS/il37x5Vx2ycU84hFXAo6s1eJnn/5z3PzPX2J1aYmYmL0rK7z4+T/PGYcOUpqKiy44
l3aW8YiHPYyHX34pxs549GOu4YILzwVbQTHz3VaMobKWl7/0BVx80QV8+EMfYTwcom3Js555
I8969k3s2bPKrJjRTlU9SywiTlOuvvoqPvaxj/Cud7+H23/wI8ZqzBve8Hpe/AsvJM5SDpyx
j5XlVS69+BKsNaAgifwMvU9/5nP85m/+Ft1eh7PPPMRLX/QL3PisZ6PjmHe/5738wxf/iV5/
QGkKtta3OfPss3jzW9/CxZdcxF133c4v/+IvMdE5sfaB4GAw4BnPfDovecmLGU+G3H7nnayt
r/P1b/wbGk2n3aGYeYewshWLS4tcdNF5/O7v/WdWVvYS18m0fDpla3ubhx46zoc//GFOnVpn
ZXmFfDKlKnL279/PC1/0Ivbu3YufO+edxzzPuf/++7n5lpu59XvfZmVpDwuDBa44/zzOO+8c
HnzoON+69bucd+EFPPraR7G9uU1RlDxw/33ccfvtrK+d4qwzzyROM0xd6euJN45Op8fx48fJ
shZJknqSlXX1vKaKre1tkkRY4PNxEmESJgSBJBiQAGE3QzV03OW7EqgI+C+O6+5ku4DdYXAg
CZIQ4A0B8zBxErL4tVJYNWdLh8nKJvlYz78KgzthT1tr63b484p++ewOVoypgHmbUx+8Jc3P
5X7iuIfJ4zC5KgGCOO8SnMpaiP2WoELWytmdbbZDooBSClNJNVINYBpfQRfHsW/5W3cTCmd6
h0m5MOAIEyRhsLIT1Mua95FgStZ4d1JSGNYSOIk8haCjrIWOdlbgy/OEa0MQ2IgsAg2YJN0D
JOkmAXvYAk5asQkoL9UVAizAHGyRQC8MEMXGh5U/uxP5EpALKTAEgMJEdijTIbASViCGCTYB
jebfz5rfkcA3HD0i+xiCzWGFvtwv/Mi9Q6BQriPVWf6enhQanu9QTsP3kd+ZA+FzkoCcKwE0
qqpie3u7fpZ5oln0Q7gnHkxSJElEFKUYU1EUVX1v2Noa7gALpcVeqNPCdZBnDsEma+fyGCaJ
5wmGtAFmQqBFQFF5R9lPgFiMU9cAACAASURBVI2Njea+InMCVIl/H5I2Njc3m7MnzyK/GxJr
nHNNy06lVBMvhAlSAT4E8JMOIpIcEnJAKHeiL+S9xHcNq9QE8A7byAvYF4LuMktV3jkEJ6qq
Qgkpoqp8ZbyTuDvG7SJLSDVnv99vbFeTjIl/shWuyLWAVSHpS97D6wQBxLw/Jvvu5dzL8+nN
SaOLBbgUWQ8BY7GRISlDdKOcTdk/Ab+aP2u94x3CPcjzHGt8pbmsq6x5SBIQO7QbJJf3Dc98
CJqK3tVaN51QwgTn7iSEPLfWuklwQF3xYkufGDMVpamayl0HNP1H64/oBrELEv/CnLAmey2y
IyNT5Lsyl1N0VqfToawqXDXv8KNr29gkVKBpuSqyItcMATtJ+oSAq1zDBr5UqOPENsr5ED0h
zyL3GI1GdDrdpu1rksSMRiPiuI3SkM+mvtpGQDSlSKKY0fY2Smsy6SAQx7h6JrrsV5ZlOD1P
QkiSPNSrTbLCOapqZ2t3uU4oh3KmQ30UnvXdYGWoH51TVKUf4VGZejyRqcG9SDqdzWVVZEr+
HMcxhcSDSUxpDbFzWGV9K/iyauRzd5GFJNUd8y49ITmz8Utw5EG1v+iJrO11dl4UmLLa0Z5d
/ATx98ROhT8LwXT5t90Af0jMdCiGw2Gjn0TfhDoryzKKfNZ0AbHW1iNKDWVRYKKSfr/f6Ac5
W8Ph0McpUsVe253t7e0mgReSHORcSJJ4B8HSOXwXipoIoxxlWTRrUDoLiR/34HWSb4nvpEOX
Nc1+C1FVKYVyngDtyTGG0lS+8KGsSSs6apIt+WTqiRla00pSkoXYzxZPEkproD63YgtFnpu4
wfrK/9BXlfcWvWBEJTuNoi4EKH31WxJnOGuIIo+P+f1JSVNpkxtjbcV0mtPrdRtbLHbLy0NF
FMVMZnUhlVae5FUn5LutNsZZkvZ8dvZ0aul0ujX5Qnwcj6UqVeGcrK3DOb9HosskcSe2QvZY
qbg5N/7ZIIqEUFUQxxGzfApK0anjKhRUpY+ZokgTqQiHkCHFZsyJ1ZZ5oln86jBx5j9+xEIc
SQt15zsuWd/xstzepiz9+7VbHe+nZgnj8ZjJpPKdRcw8ORxFmlnhW+CX1bzltrx7mKguiqKJ
idvtdmMzwm5TrVbLnzXr9ZyQ1YCmIt0aSz6dkaZZbZd81yjRBUVZNPFpGK9Kp9fTp0/v8M2l
IlfWTXRXGLfJDG+xR+LDiqylacrW1lbjW85ms8bfFn9FcGeRTfFVRG7E5xSsQ9bNGMOpU6ea
8yz+QEiQWlhYaM6X2HzxWUNMIiQvyhqJHgvJHMaYJr4XvS/vHOpgIdyExJlQ7kU/ig4IYzbR
17s7/4T2/KeRBMLvhok6iR+BJom/208WuZWfhWdye3t7h68l6yuxr1KqqTIPk5py76Iomq4W
sndra2vN9YRQEL5zURQsLi42hHYhNIRxVJP8q+NqaTku97fWNnsVtlkPYzORafFL5CwlSdK8
3+5YNySZ5nneEL3kHeQzGo2aMzDHuTyhCmh8IvGL5N6ytnLmJAaTZ02SeYdLeS850+JDhPGl
+CMST0VRtGN8pciskDlEpwipczqdsmfPHpaWlnjggQd2JJzl7IQ2TM52UT+3+GvyHCIbEtOF
ekN+LiScUKbDRG14LuVci8yH/8nvy373+/3m/UNcQe4jvo8kzeXfwjMa+kUy5kB0gZArp9Np
M+pEfOBQ94ekCCGPCDnqwgsv5Pjx42xvbzfkcW9/5+Mk5P297z6P88V2yD6LLpVzK3YYoNfr
NZ0eQuJIiN0JXig4Vuhzy56LnpN9DLtshDGgfKcoCmIdNfjWrCiItB+9C75bjYy1iZ1uyKbi
p2Adpo51/LsaiDTTfMr6+hplWRBHnmAg5AuldB13+XgAaM6MjI8JsUB/Vgw6iun3emRZC7Sm
slA6S1w6gwXKsmJt4zQXnbvI6a0T5DOLqVsiihCHAc50OiVLM6rKtw5KIs9GqkYjnHWc3tgk
STLPd6wDLF+eB2tra5TFhE5iOHb8BCafYGYlDxy9l6sf/xgOH/LzsrWOUVEMys89shYip7j3
vmP81V/9NaaCh192Od/+t+/wrnf8Fv1Bj3f9x98iTTWe4OiIVAKV4tChw+BivvLV7/Hhj/wl
d/zwKOeevZdqso3SisHKKkmiefDEOjf/878wyoc84SlP5ZprLyeOU5RLmUxnvO/dv82xYw9x
YKmN01BWJXpWMi0nrJ8+Qb834KUvexERJUp5lhRoCqMoZoaTJ9d9cWrpSFyMtpBE8PMvuAml
NGms2VxfY7E/wCiNVX4OsaqTdCrSGOtbG8dJQhJr0iTGViVWQRwrsiShnaUU9SFa6HRZHw2Z
TKaUhaUoDTqJ0RTsWe3y47tzspZmaWGVhz/yShaWluh09zItDZGKSbKYKI259/57vfD6IWVM
x7l35vFtq1SU1NWZedPOPlIasOzZs8jrX/dq9q6u8q3v3MYb3vBG7jp6lO9871t02ymT8RZX
XHEZb37TW2ilKZXVdLt94jih0+myvnaKLEtRKqKscj/H3e5sYRiCwWKExWjLrKwo8lV5VWVq
0Kg2LlpRuYrSKFrtNjquMFVFEvkRENVswk03/gwXXHA2vW4HTcQjH3k5X/vaV3zrtTTzyQ6l
GE/zenZiXZ0RJZxeO02qDa3FFjrWpJ0WpzbW2aPOoW4mUwdFvl2+1YB1vi1InbCsJlO2h0NW
l/tY43wyA+kiVjf8cg4c3HPPfXzqrz+LmZWs7Flk//49DPp9UI7CVJSV5sTxNba2h7Q7LQ4f
OoP9B/Zy7J4HOfHQg6AdnX6fS6+4iic88Qk88Qm+UvKaa67hpmffRKQj9u7ZQ1WWFMUMUDhn
64S/bqoZyzrAkSBda90Y8RDsF4MtBk8cma2tLSaTCWmS0FsaUJUFRVF5EosEX2jPaMIHs77a
3KJUTFHPbaMOppSqgRKtMc6xvb2Nq2VAUyfslGfPT0a+HdHy8jJra6fY3N5ke3uLThajKkM5
LWhnHW699VY+93efo93qstDrc++993LRuefTyvz8W61jIGI8GfF3n/t7bvve9zhj3z4OLC+z
tLAI1u+bQtiR9TzOytCrA1WtlNejOmjjKQmT+ntpJ6WY5iwsLXLHnXfxmb/9DPsOH+Sqqx/J
3n0rVMZQ5IYHjp/i1u9+l6IoOHLkCGY2xRZjrDXESYSuDDg/AmW73ObUqVPgHN1+p26jV5M8
RkO6nbavvDHOjzHQEeVsxldu/gq3//ttDDe3uOGGJ/K8n38eaSth795VDh46wNbGaYyZM4x7
vV7dgQYWFhZqxy0jSROqPMdah3F+9qGz/p3Ten1ns5yP/eFHWRj0WV1axjm44WefTrvf58hZ
Z7K6Zw9VMSOJIsStTZKE5aUlxqMRC91FRsNtcJY48rqgLGa0s5Q00igsWZKQtZd8wJYXuHqN
qEqqIidrtXnqU57M0aM/5vf+83/ijH17eNUrXkHWbXvwyxqS2HdBUTomTv05v+CC8/jQh36f
17/29dx15+1cdtll9PpdWp0WV1/9SCIV0+u0iWp2fqy8g/KMp/8cd9xxJ5/45H+n1TqbJzz+
eqK628UFF1zI5z77efLZjCSOSdKUyy67jKWlJYpixiWXXMrK6irbG1ssLCxQlr613cOvvIKV
lWXOOfcsrPadMm7+8lf5+8/+PeneDGv9uBesHx9x4MB+lpcWWVlaIMkylI6xpvI278orMMby
yle+CmMs07E/w/1+n/379vKoRz/K62vqRBgOZx3PuumZvPBFL2Y68S3Szj7nbC666AKe/dyb
uPnmW9g4vcUNT3mqt4XKkwKHo23e97738v3v30bW6aCVwpSltyNVRa/bbVji4jRaa4jimIX+
gOHWFjBP/O0OcsO/ixMo3WXEyZQW4iEhQJxjAWqk7ZuAAWHCTYJYCfokYBK7BvP5sg3TOo6I
o7hpZ+ZtSNi2fl69LT9rHNDm39gRAMnZaAJ5NW9ZK0GdACMhYF4UM6JIN2CuVCrJ2oWJb3F4
5e+yhhLEyM8kWJa1DJmuYYATRRH5dNaspTj2YcUHqJ2BklKYytRBi2lacoVAhHxXAljFfE5z
yBIOk7phwCaBqryPBORi62QvwiBUnPaQOCB7FyaSJPCUZKYEPVEUNcSVENASGQuTOvLvYdJL
Al95D5FHpTwBsanGjXZW38v9ZT8keSK/K2sSssdFjgRkCqtM5J0loP5pyfPdyRY5I2EQ56/n
O1MJyUBkLdy/3Qz9kJAin/As7X7/EBQN19zLkdrRIWT3/0OyibyvBMPyf/m9EHQVAEMp8J03
gspau5vAMicciFwL+CT3C2Vo97qGhB1ZG3k+8bvTJGNWzHWR6BSl/Ny6UMZDMFCeS+7/00C6
cN+FUCB/F90g4IYAbyIPYWeNEDCVZ5DkiTzDnLwUNQCWVPuFgJOsbwi+hAk9T3rIGlA17AQh
50u+I0QTSciGoKcANPIJQQ2llCfzyLVkD7VGMycj7AZcrXOkQZVjWKEh35FzKXsQyuwcGPGz
MOf2rK5AsPP2uUI2kH0L47RQX8u7yv3mhIi6k1cgL7rRh76rVqi3Q51srSVLU4zxxQdh5Rz4
Z5fZy3N5VTueUxK2YqPl+iHoGMYx8k6hPRV7EAKAoodE/4dyME94S2cBnwiR9ZekRXgtWcPQ
RoRVjfJvYeJEfIoGmDbzkRW7wXel1I5Kd1mfUBbDpLaAuqEOgzn5TEC0UOZkPcK9lPUVkD/L
MqypfHyFnwFuTEVZJ2VdOSdVmbo1vz8n0bwytY6dHDS+jKyFVhFa+RFzcRRRBXsiQHKaps21
f9onlGl5L0k2CSlF9lr2S/ZEbPqcGKFwDj+6yHkCo5wJa+cJgt32VuxdURaNXZtOpwy6vUb3
GOMrgpzIRqtNnHgCUSV76kxToR3KfTgyB4odcuireKeN/Ml5DXWjvJ+QIsJ2zKKrRGbl3aQi
VinV6CdZw8JUjZyH3YYauaoMFfOW3dKVwFhLUZWNHZF7if6WsxtFEa2oVWMJ9XWVrmOMnu9s
VmMbYTtpIWS0221MVWFshXMWVFT73xZjfHLer4/G+ytVbdvnfoRSGrR0AZn7K9YYj8vhu5oZ
VY87qMkN1DZRW+8fZnVbWEn8uGA9natbzdZ6TM5HSChMosh3AK116g4/XmkqU2GtI4piH4PG
8+pekYc49WPdnHPs37+ftbX1JkEUYnvhnsZx3CQilPKt9GEeo8g5kn9rdzuMJ5OGaJfnfs56
v9/foV+8vZ/bIpEZkc+QqC3rLnIY2nU5D2J7vP3cSQiezYra//T6dDqdEqUe+3NoqrJAR744
YzzyclTUPt/umLDVajXxX+PDBYQr6xwW0LVt1nqeHAAoip3tyUUGrLXk+ZRur9u8b1EUGDUn
ykleQHSnVGaKPgptrTx7lsTYak6cbtryWxnvWbfBRZEkKWVRNp0umo5Gga8o+yM6L/QtxNaF
cUVINgxJleFH1jGKoh3zn6tqPgtdbJrE9ysrKzuquEUeJKkqtmU38VvIiKHMiwyGzyV2IezI
Fcqq/L7ImMisYA7iP4pchjiF7K+QicX/lXuGWIfYNPGVQjsizyK6IIxDRD7DdQh9pTD+krM3
t3/zT5hs9XhWEZzfiIWFBdbX15uE2XQ6Jc/zhmgRPpPsdRjrhPYkJBnL90JSwOLiYtMKPfTf
RBZF54gvFybrRUblHpubmywuLgLURSnzimYhkEgcorVuzprcW+RISMVie8Xmi24OY7efRnSQ
fZB9FjkT8vVc9kxDFpT3E30o+yz3EHmT1vG+u4DHXcAncLMsa7okeL1UNH6ErKE8u4xiky5K
ouuVUk3XgjzP6fV6jY8iROFTp041OQjZ67Cro+y1JPAp54UJolfLOkkdRRHWVE13Q9l/ka3x
eNz4v2ECWvZM1iU852HsH+INsj9yNsNzESb+w1gzjN1k3eQjNnV3tzLR2UIcFR9ICEPim4dy
IjIS2qa1tbUdGGCoB6qqaohSu/GGcJRkqANEDsJYNPwvlGH5hPGZtPcPsZ3Qlsh3QzkI7cZu
G6GYF5QqrVB1gWlZVZ7UGMc44//uOznRYKNxnOBcPe4niojQ4DyGY431/rjzXZK63S6z2YSi
KEnTpMZZ0iZGCDE+0S9NQRTeF1BJzHics2B8oYBDY7Ui3phsoqKY/mCRrt3kwQeP0+llLCwM
OPnQ8Ub5SYuPMBA7sP8ARVGwPdwiijRVWdHOWmRas7m5RVVWKFvhbIWtnbSFpUWKoq5eUwVb
4ymtKOL09pREDTh5/2k+/qE/Jet3OXjGYdAJ47yiKgrW1k9x9OhRvnvr97DWsn//Pm6/6wdo
Yzh+7CHOOvIo7r3rAYb5jKTVJmu3yRqHBE6cXOfW79yGVpaVlR7D4QYLvYiyjMiNYVpW/M//
52+YzSb82ht/lU67y2xWUJaGjY1TLK6scMlll7Nx373ksxOMpmMmZY6rDCe3TvP1b3yLZz7z
6VgKtHaoCFARlpivfe0b/F9vfjujrRH7V1Y5du8xXv+aX+PcC8/mLe98G+eecyZ5MaUyhsFS
nzTucOy+B/nRnUd50pOegK4MWkUcOuMw11x7Lc5ZklQzGPTYu3eFo6mmMjNMUZDU877AC8Jo
OqHXH7C4sMTp0zPuuvMYP773bi685FJ+73ffC6i6tdyM2XTCsVMbxBuw/+CZOAWHD59Nr7dA
mraxlSVymkGrzeriMsPSUJV1ohsoypI4ihluj5jNCpQDbQxn7N9Pr53hXMH5F57B29/xJsbD
IafX1sgnQ6hKOv0OJ04+xNmLF5AlGUuLSwwGCyilOHToIHnuD0FVVSwuDJpKBmttw/gOHVlh
thnj20sLC0xr337DVCVRHewZLFEWY+pq44U0pZW0wRi0LrjhyY/FmIKtzVOcOJmTJDH7z9rD
VfoqZtYQxz2SuEuadAFNJ2mjrAbnFcPK0hLjzXUeOnGCs87YyxlnHWFalajI0W21SVLfkno2
y6nKnHbkq7L3711kc2udtbWS5d6AweIKo2nBKJ/Rt44I6LS7POyyh7F//wGwjjyvULT42le/
w4P3PsBsMqTX6TCZjnDa8dD6SWbG0O30Weh1WRksUNmKr3/zm9z8wltIkphup8vznvtcHn7p
1STaM3/zsuS8c87hL//iL/mT//Yn3HLLLZx15DDKzg2dnzUyI0s7xFGb0XCLdruFqQyj0QiY
t9LrdruN4d3t/AnI1u/3fdIhz5lMcpTxwKVzClMHNpFS1HAuOlIoDQuDBfbu2UOeT/EMaoNS
Fms8wcNQ0EkTut1+M3/S4UlGVeUrXHSqUXHE6eEmTiuUi7CVJeulVGXBZDrFph3ipM3+A4eo
8hyN46Lzz8eVJZPJiK3N0w1IqbXi7CNnkg836WYtJpMxVLO6U4IHdXSkybKUiVbzSlWtiLUm
qxm6frSEr4DpdrtMxhNQDhW30S1/3r9z6/f48pe/zMv+z5fxiKuvRCuNjhxJO+L2u2+v281v
sG/PXtLIsbrYpTIzwJIlmt/4jd/g7b/+TtIkJYoURTllNNqm1Wn5VaodQhM5KgvGOAyGP/3T
P+d973svF59/PmccPBO1d8ahvQfoZSlxmuGIyFLfhaLX76Lq5KJ3aqMmyPTOiwdl27UTrZX2
M3QEUIs0P/zRHXz+i1/kBz/8EWsnHmJrfYMbnnYDNz7r2d4pBXr9HkVVYG1F0uqAUyz0BpRF
weLSEpPhmDRLiCKF1mA1JGlEWUwpixJtHbFW6CQljjK+9K//yBtf+zqcrcinU1720hfxq699
PZGKeOYzbuSjH/h9fvGlL2Xf6iqjouDkqeO88U1vJEvbpGlGq52xsNjnCY+/nmc+8xksL/Z4
9nNu4u2//uvcf+89xPo6rDVcfPGF5OOc733nO3zj61/jyKFDZGnKeedfxIEzjvDe97yLbifl
q7f8M5PhNquLS2jl5xz2FzzRpyxmTMdj8smIbitBOV8ZPFgYMNoccvr0acpyxrFj93Lq+IPY
omA6GqHTDB2nrKzsxTqIdEK7FVHZisc96jpuvPHnOHRgH8v9HmnkiDRYKrAFlfFtEJ/2lKfw
F5/4JL/zO/+F3pEOj33sY3jEwy9n//69tFONFj5g7QRaHEuDPh/9gz/gAx/4IDffcgtPeeqT
uPCC8zj3yGEOv+D5fP7vv4CbjWn12346ilJ0uyt85CMf5Hd/7/185jOf5eC+fbSylKoqavKR
Z6T+wUf/kDOPHCba2CAvK8ajMYNOrwlQ0jTFWYcxc2c6DEBCR1GClDAYFudcHHdhxc5mM7a3
t5vqhBDwF+dN9F8YlIvTLQzmhYWFHe1CXf09ASbC5F5cV4CGgakAMzs/qgYg57PchUXrg675
XEMJqiRIDNnDvv0sTfWHBxnmc6tCJnsIAIcfCXzk+2EAGwLOYXJi3mUm2ZEwEABHnHxrPXjq
3M52637v5hXmst9hAkqe24/amVc/SfAgwKCALxLQSMAjzP/d1cdhklqCZmnxKABHmAyRgE7a
FofPKSCUkBRCUEau0XR0CEAV2Wch94YytPsZw2p4CWYF7ICd7Yvl3eX+EvhIQCqBsuy5nCEB
pwQUlE+YxIR5xUGYKPiJAE3N26g6Z5uEQFGUDYgi4MXuREHYbSD8hAlLeVd5rjBRJs/irPUj
yaKd1S2hLgnPSLhucl05ezCvWAoJMVEUk+ezBozsdDo7wDe/7vPkXxRFO0DCsPpbzlZIOBC9
EAJZsu5y/nq9fv0MDh0pqkrO/jxRaoyMB9lZFSQ6St5Lgm45p81aBs8qoI3IznA4bBJCsrch
yKm1bhKcsjbyf6l2EGCrKApPOK3jhUmdPAj3Xp4pjDlETiWxJ0kTAWskGRom58LP7soF0esh
cCtnUmtNGtckHWPqeM+PeYm0rxIIQY6qrv7tdrvMBKhnJ8FJQER5XiHLNXqnmlc9N/JgBMTd
BdTGNImZcBzKbrBaZE7sZdimU7oKmPoMJDUBksiPdzJVhVbzamNZN9EFoocj7ccfOWOZzPIG
2DOSkA7OeHidbrfL1tZWM193tx4OZSFs/RnKl6xlmDgLZUU+URShdN023viRcDhXz4H2hMow
qSRnIdQpMCfuhfcIAVqt59VAYccNOTM6ms+9FZkTWRVfRtr+hySI3TYrPNehXgGwxmCda+J3
kSm5V3jeQ70pttUn8n2cMBpNyVoZcRJRVoUf35NElPW4oiSO/ZjIeq2TOCYSu1mflbLWI5lU
zmiNKSucsb5K3FrfaS/LwFhaiZ+tndRyLc8a6twmibrrvUK/UeQi9FVCPSjxtB9JB8Z4HRLX
HfXiOKIo5zN+5TvijzTtplXaJFHDCmY5Y7GLm2euigIXJHqjyI/OC5MRYndktnev12MQ92td
FNjA+mwlUUzlaMj68gltXBzHjQyFFV+7/b6QeCp6qKlkjJMdMh3av6qqcNYS6wi0QtUdIZxW
WONII09ElvMqiU2JRyUmFbuYJH5evXOWREcMt7aIov+frjePtvy66js/5/zGO7yh3ntVpbFk
SZYHYgYPBBG7GQLG2A6xGRzobkKy6NAEB0wmi+CVdCDpTjBJ8Mrq1QSarLhJSAKZDQQCBmOb
ychYtiVbsgZbtiWVpBreeIffdM7pP85v/+6+V8VbVetVvXfv756zz9777P3dU8L15ZK0r4QT
OshM2VW3kYDNUrBgUktpY4CGAFkS5bfDQz9KMzjf430ZbdsQpOF+IAbxAYfvu3jFpBXTv0DL
XZFF2khyqMhZ0zQkWYo1q+4z1q4SyvTZb+oWAOMDZbbq+hFC/D/9fNs0id0OqsVyzTbK8oy8
iPt98sknmUymOOfXAqxRTqKNnqZJL0txzJEOJkqgbT6fk2erudqnp2f44IcAYOQjmdccdZy0
us6yVZVg1Of5oNtEfkVmRU51oFcwx5jssWrnXlUVo3IcEz9cR56m+ODp2haXWIo8A+9YzJar
QINNmC+XpEVGmmakRT50OtGV6sasOncRfNR7xFEQUR/0d4QxeN/1flqCIeqirordZvI8p3Md
RRL9r/F4zHRrMnxG1B3lKlm/1x3CH3Jvy79hdS/rjjfi04UQSG0SE6iIiVkARRq78bWNJMnp
hMMWF+ELJLFJ20Mi62K/yxokSCj6UCfKyxq13yn6I4Qw3HXHx8eDTaYT2UQfyjgn0Q3a3pG7
ExjWLHy0GcTTto/Yqvo1Ij+iJzU2oQNsIp87OzvDXnWgSIK18r48z4cKWvHLtE8iCbKyd0mK
2kx8BAZekHtGdMJyuRwCcTrBD1a+tyRc6OfJ+mWdOtAt+lp+dnx8POxD7hQ53yERza6KOcQ+
l/8LHwh/Ce/q/YiNr30+4Tv5LjZo0zRrHVHE9hR+FHyn62IQWXd8kz2IXSW8JjTVSRjz+Xyw
t8SWq+t66IYmexCbUcuiJOhK8p3QRezcyWRCCLHzSIwDxmI/SaKSPelxZhKI10FmnVx8eHhI
WcaA//b2duxU3Cc+C+2EDpvnX9c1h4eHA7+LP6ttVcEqhkRNFQi31g7dNnRnCpEZiXVG+vZ+
klklmjdNw7JP6MvHoxiz6VZt6GW9khzxJwVpRc6FLiLLwkOyP5ETnUAdQhgS2vU9tIl7aSxD
dwETHEqSkzQeqTEsnXQhvCp2lxSyGGOGJJjRaERVVTzzzDNryVoiC5JEMJvNBp7UekQXmIvt
p3Wu7EXrSz1+T2gvv9c+m+4mJrTR95Ocy3Q6HbqIy5lo28Y73yfqBaom+vR1F4tM8izHGwjG
UE7GnJ2d0XQtSWpJEstyuYidz7KU8WTU64CY4AuGLjgWywU2sTR1w9nZGWW5ShiJ/LdeVCQY
oy5Acc7R1A1Jaqibhr2dc/guFjjNlg2LuiU9ayrSImf73D5FfZXnv3hCmm2RFyXb020SC/N2
TrWshhYmbduxs7PLYr6gqpZkaUZZlFRnZ1w7O+G2nR3Ondvl7Owkzn1yLs7+DXD+4HwM/nUz
mqbh4Pwey9mMxsNRPSaMlAAAIABJREFU3fLf/vv7mWxNIc9Y1g02KZjXsU2XC32VC4Ess5yc
HuFCw4W9A3amW/zm+z/E7//hg7jE4oPB48mzjKpekmc5z1+5yulszv7eAXmekaUGjyMYTxsC
ZVFSlhP2y5v44Af/iAc/9TjzaomxKY9+5gkee+JzfMlLX05RJpzNa+q6w4dYiT8eTTk5WvDz
7/2PWGM4ONhla3uCd4FPPPgQn//CF9nZ2SUhoaoW+CrEFm5dxuWnr5EVBY4Y0PLeU1dnfPyB
h3jll30ZTz99lZPjEy5eOI9zLVevHXF2tmReX+bkdEGRGbLM9BlfjrqqSEYjxuMJbRcrsytv
yLOUD374D/m133w/f+E738b/9DXfiE2TWD2eWnwYM57u8vEHPsb1a1f4+gt3YkzKbbfdTlmU
zJY1wUNqDaNyxE3nL8KihmAG5t3amvbVXCVp7xAkJmVna4/f/o3fYTzN+eY3fSPf8a1vwqZx
bljoosPp8fg04dOPPMrvfugjfPT+j5Emlrat6dqKEHogOU+HNj6isCTTVF+qIvij0Wi4oKoq
OvFBHD8fKz/SPCNNUrqmwdY5wae4OkDTEVJ40aWbWdY1v/RL/54HPvlxwPN93/+XeM1XfiVV
l1JVjizPScscFzyLZsk5Al1Xs7e3RZoGbAJFUfKn7/0zvP0db2fv5vNkk5JF0zEajSnLEafH
J9TVkpFvSUzgR+77W3z1vffyd//e3+P08Jg2TVhWgWrZYIzFYCjSkqefukwwsaWHCw7nWoyN
FVc+GK5cu8bWZMTh0TXe8Ppv4LY77+T3f/8PeeKzTzAqM6rFkm960xvwwP0fuZ+uqvnIH9zP
33j7XyfJopx8xatfzZvf8q28+tWvYmtni4cffphnn32Og/19jIHlfIlxMWu8bhtOzk6pFjVJ
knLx4nnKrCTN+ywx7/sxDI6y7A20/jL2zpEXBQYiLye6PajpjT6P8RHstBIY6B0fDORlyenp
jLZuwDlMCNhgGY2m1FXF1mSbxdkpZ/M59aImwQ5tCUOIbQyttXS+A2z8E2JXgeOjE6o6GkDG
QCAwny+YFCXbWxMWyzlN01BVcYZfrKro+vQYMCS0XQch0HUR2PHO44lgTzQiGoz3HB8eDu1a
nVRnOYdrG8bjWO0xmU6YzeYEHy/lrk248uwVvvu7v4uv+drX0dQ1JjGYNKVtO156zz285Vvf
wr/5+V9gNCpplrGlbcxsDKRZysHBHp0DG2LVpLFjzl84IEksTecpRyVbW1s89eRz8aINBkhI
soKLF29mMZtjW0PqA6ED07fQy4qMJE3w3jGbneGdHxyJumooy5yqjkGE0ajkbHbGcjlnOp7G
jgxNAz7g246maflX7/3/+I3f+E1GWcI9d9+NW7Y0bQR6SOPM+dGooJo1VHXF1nhCaqJjvjWe
0LUNy2pBnliatoEQNVmWZj2g4KmrirqJYMDP/ezP8Ud/+Ae86K67WJ6dceXK8+zv7sXWR33W
aVGWfOELnyfJExKTYdLYFeX5a9djcATPzs6Ur//ar4nGfJ6SZlnUw8bSdHGkQds6Lj93md/7
vd/jV/7Lf6XIcqaTMe/55/93BBYgtjB1noAj4lqBxBqWiwVllhPajs411NUC30VH2xhDYqKR
OxmPOZudceX6VX7hF/4tl595hm9727dz6x2XGE0seZEymYxp2yYaJ3XLl7z85dx6862c292m
qmp+6T/8J05mM/YPDtg/t8N0usWFmy5y6Y47+TOvu5fXf+LP8qmHHuKr7v1KXvHylwKB5XLB
0eH1aCCamOhSFAXT6RYvuecufvzH/j7f/h3fweHzz5MEz97uLo3r+JqvfW2sarQmdr7wsYrb
Y3nXj/4dXvrSl/Lef/kvmU7GdJ0nTROCh5su3sTh9WN+6Id+GJumOA+729uURYExMDs7pa6a
2F2GMMxPFINeDMTNriVy/4jBJQatgJSS/TqZTAZDU4xObbyJc6ezTHUQUAxsAQdEX1ZdTduu
qlec80NLNSOzlgkQDD5I9VDsbuF7A9saMwSEu64jL4pYDRlW4OF4PGaxWAwOlqxPOzO+H80k
yQBg1oB9/R5xLlfggGT1rzK5BVyUoJk4Z7q6YxVAMb0+XlWjxsBOn9RlV2eVJElfiRTvx86t
5jeH0LcBNXEkQmyvFaINa1YBOB3o2czC1XsVZ3ET1JfXaWdfDHdxAGFVRSGfmeU5Rr0unnOc
rd00DV0PWAk/aQdo4Cezqr4ySTLMCh8qNowhy/N437QtoXcqkyQZ2qfqRAdxzMTp2gyMBe+h
/+yubTF2NXNddwTS6xRHWRyvTR4S/pCWoGIDyOeZnqcHZzDE9rKxCit20xKe17Kog97y3M2g
vU4ykPfJv4Xm8sy4dr/2OlnTJoiuA1/yJYCH8ILOYpfPiY5gdCBXyQ59MmHf9SCE1VxDr1qI
C21lbTqDXn6uk1vknOSvtKRcLhcxiJLnGFYzggXAdS7KlQbL5Xnyb6muXktwCi+ssNc813Vd
nF/fJ75o8FJ4VoIC+pkC8gnvSYtvDZJJsEDkQicm6CCJADK6ykUH1QWYpJcjneCheU9XbQgw
JMDk0IZSAGHnCd4rnnOk6SrBxpgVb9V1TZrHZ52cnMT7tr83RWfJWjVwKeenQTZ9rrKWPM8H
IHG1H/sCWdK8rgP/Q8Cobx0pv4+fE/pKCeHRyMuRPyFJVrM1hUdFN8s5xurHfm50kLtqRTuz
kTwgOl38SQEDpUOSll2tp/R+NGgn/KqTH3QwfpA57+l6fS6dGXTV16Y+jHc7fRvx9UpAY8wa
mKt5R86pqmtc11H2vrG/ga6Vs5A16qQK+Xzv/QAMY2KgyViLV4G+Qe/1+lmSbrTOkWCzTurS
a9HVTLK8siiirZH2dA4xAG2MHc5Q9hxCiDPIVeJU2n+e8GrdrObASsBwqKhVtphOeNOBQaG/
0EhkX0Bh0emSfKVBTtEB+v+hD/oPus51JIklSfu2573MzmYzptPp8Nly/l3XkZdFHE/WtozK
0ZAceKMgmJZT0ZFCP22LwKpqTFohCygcAw89oOkDrVvRVN8tOhijZUl0jNBWkmh1AqHoHW0r
RT3Td6xwMbhqjCE431eie+quYjyZDJ0IYNU5Rc5VOmpIIhmwplO0nSDyIDbXpChourY/75hs
ao3F951HkuE5Uc82fTRTaOH7AgChedPGsXjOdXSLjjSLBSqpTvxKYmW/1r/B+6Eji7Gm7xoR
8VCRodZ1PXQXbSWnkne8DxhidzHvYpt66Z7l+tFZmDiX1mA4m8/Zmm7hQwzORpzCk6YZnbov
iyInTTOaVmziiIlBtBEkaSXaxtGHiCrF4r10QpA7apU81zRtxJGsxflA6DroddBkOsWYVXth
0YkSGBIbtG1F1606guoAkchKCKtkJ51sI7whwe84nqPr7c3YjUf0EN3qbp5Opxxev97bmn31
to/0zvOCEPyQ4LJYLAabS1eBt02Ld13UvSH6PRgTC7AMfeJj/HnTtCQ26W2TrB8p19E2LV27
qgQXX6x/2KrTpuJ7SZSQrgxCS9GpohcH/W/UCDO70tErW8et+dHG9N0AiP7KYrGg6O8NscPE
ZpRn6/tR9Jz2O7WOvJH9L3pI1ik2mfbNxCctioLFYjHsRe4t0R+LxeIFibZyH6x0/AoHgFUC
vU7u2wzQaZtMB4KBtQpj59xaMr/oUXm2rtoWvb/pc4kOFJxOBy91AFoSA40xa9XUQm8JSOug
oOxb7n15hk7uFpoI7bXvK3sSeoidI2coSQ1in0iATNuxwMBDEh/QtqD4QF0Xq3VjxW7UTfEz
JUGiIQQ/yP9sNsMYMySdCB/JnSrJC9KZQduGWo9obCjqkyiP0Y8zvb51g26Nsimd2laJIJGG
DHIdel1dVXXvz5eDvyb0Fd7Stl9Malp1QBSdGvVwM/CQtlt9j/fLWWfZuE8IaGnbjhDo8aNV
0rAx653oosyllOVoSJgQnSJjCGTfsRNSS97PVl8uqw0/WuginUAjFi+JAtauEsHo7+22T+Sw
PX7kQ6BuVgHlwd/w62PEtJ2lE4dW/q2M2PC9vK66jEb9FhPAus5R19Lpwg/nJnIR9W4clSz6
J3a+qPHe0blYcW9tQlEWg18jY51EN4ntIbKtk3gkUUP2oBM9NKaj/Rbp8iFJJoIbWBuT8Pb2
9gaZHEY4beAqWmY17URO5Q4SORF8SnSbTqiA1ShJscslUUj0jPC1TjRY+apeenUP+mHQ1YY+
0aCiaRvyLOtHpDuapsUmKcv5nDT15NkO0/G4Ty6JsTwTYsFecIEsTWjrlvG4ZLk8iXxkbRzz
HRuqr90PIl9yxzVNQ1GOKJKUW26/xNWzisl42vtonjSkCeVoxLW6oTk94/zBATs7I5ouGqiu
a5nPF5T7e/3/XT+rKF4ck/GEgGc2O8OEwMH58xxfu8ri3DaL+YLOBVwIsW1/CCyrJQTD7OyM
1LScnJ5SFjmudRxVC7ZvOo81CbP5jNl8gU1bbJqRFyXT6Zi6rnCuxvuOcpTjnQXruHpySO0C
Seeplg3LusK5Du868iwjyzOKPOPiwTny3GCto26WQJxpi7H9PKLA8ckZJydzrt7/AG3XMRqP
2dnZ4dzuNifHV7HNnDxJ6VqDSWMlaZZlXH7mKvd/9CEOD09wbUO9jBWlZ/NjHC233HYzeZHh
TSCxKePJlAcf+gw/ct/fJwDXj08oiozZfBYrTpOMV/ypV/D8lee4evUK8/mc3e0tHvjYJ/j8
Fz/Pk099nqefeQbnApduv5MssXTWEjBxrpKL8+JCMNg0oXExu3Q6HvPs5Wt8/IFP03Q1u3t7
eAJn8xmPPfo5jo+PuPvuO/mN//E7fOpTDzObLUjSjKOjGV946nlCCDz1hadjN4FzB5zNlly+
fIV5V2ONoW5appMpi6rh2tUTDv2Sa9eO+bVffh/f9tY/x9ZoC5NbEGDUAFmfYRoMn//cM/yb
n//3hOAZjTPirNKELCvouqggq7paa0MrmTBlWTKbzQbhFkEQQ2wwcIiAUJZl2CSh8Y7QXxzb
O+fYKUYcHc157LHPsn1ui5tuuYm8KHjTm97CN/zZb6JaLrj50j5t61nWDU8/8xyHJ4dcunQb
9eKUzz/1RewkpxhP+HN//pu4/fabaZc1wXXcffcdjM/tEpIUF8B42N7aJk1zfBcIjQPnCI2j
SFK+9nWv5Z1/8x389vvfT1tVtE3DfLmkKDLyNOXCwXm2d3Y4mc1pO09no4EwnhR0vsUZx2g6
IiSBu++5i7/zo/dx02238Vff/gO85a3fyrNPPcV3fud3ct+P/gjBGP7Hr/869/2Nv8XJyRGP
P/oYIXTUoeKel92D9zV1mzGZTtg5t0tiY3WFDTA7OqGzcN/f+RFe9OI7OTw55fDaEb/1/g/w
4Q/9Aed2t3Gtw9gYtHQ+kCSrKoHgY0ZV17YxGaRXwvTO1rJt6FzXG1mxciMQsKklAg1RiVpr
mW5NqZqa5bIi+AA+BnTbpma5WDLNRnFEQJLRNQ4bTJyxmSSxKsBa6rohS+PYhzxNcF1Dbg3V
siYY2wOscezFZDSmSDMOT49omppROmarn1vviRVwIYSY4WxT6rYhs5Y0LweHOTGWshhjTEJd
t4zzgnyUYW1KMKuZzONyRNc1Q7V8kmTsbO9S10tmp2c0TcXtly7x7W/7Nm659SKzZcXv3/9R
FvOKl7z05Vy46VZ+8Af/Go8+8igfu/+PGWWWbmeM6+IcbDDMFzPOTmeU+ah3wj1pGumzWFac
HB1z84WLfOHxz8R3GEswCXk5wtro5I/KksXJCcFbQrAEY/HB47oITGQ2tjYMIcOYBJsY2q4h
S1Oc85ycHJMXGecmO71BFPCuw4bQV5jA3t45br35Fsp+bl6c7xxfiwmURcZoVDA/vq6Aco81
0WAmBLa2tzCtW2UkJ2k/OxcWi2XMWAwe6wMfuf9+Pv3ww4yzlLTPWDc92JlmCTaB0XRM3VaQ
xOz28+f3+af/5J9RlGUMzLqO+ekJk8koAjQ93zXVyjg3zvHpRx7hvr/+Tk6vHbI73iJ4x9ls
Ge+qNIn8m6YcHR1HA6MP9Hz5l30pr33tvXzigY8zKUbcdutd3HXXHQTnY5KBl+prWC4XBAx7
BxfxwfLkk18cAmUFnoAnL/N4LiahqZbU8wV5lpPmJcum47d+50N89I8/ytlsxmQ8Ymtryrve
9aPc9eK7MRbuevEdfOrTn2BrWjCaTmhbx+OPfIa/+Y53sDOZkGcZSZbypje/kTe84fXcfMvt
TCYj7r7zDurFDN80GKKTf/GWmzg6OuIX/92/5fj6dW69+SZe+cpX8aK7X0Je5nz5V3wZ48mU
PC/xvp8/Zi2z2Zxz5/YGh1CclKPDw+ho5X2lcVgFmTT4I5WfYpxqp1CMf5kRKEazAJS6jagY
azobWYItEnRYAdyrQLN+vjyjcx0yNzQ6SuL0A0Twru3bmYa+CggTAb2260iyBDpHq6oSE1UR
FucYTmMlxkaVgQTWNDAmQJ04XHLX6qpH2ZPQLzqWYG1sESo/y/PVvOA8L5Aqpk3AXByBtJ/r
DiuwSAfjTRJtjaFq05oeINUt76Pj670f7h5rI4hnzcrhGAA82fVGwEecNl2FKfsVB0aDGFIV
I+/RLUbFaZH92BDWKuikNauumhee1NnUskcBhrquAxXMk+x2eQ9hle1MiBWShEBZFNj+TDeD
ARo0yvt9SMWldlK1M6UDSdpx0xXaGizTQTXZj5zBAAr1ny97FttQAGvfB61kbeLgGrX/ocqZ
FfiiAbrN4K3ex/qaolxoPpG1Ch104EsHEjV4KvKkQT6v9Lh0r0gSg1TKxddLpZ4dgv5JLwvy
DKGlfN8MYsmedQs8WZvI9kr3ddiwGnER95sMTrauyNLyI6/fpKd8ljj/SV+ZKwkCkqBkrB1m
icuatbxqsFTAe2nHrJOaZD/yc51MIK8R+ZfX6up8OR8NCGk+0WCa/qt1gPCGPEv4QydOdE7R
w0QHKoQQW+RK4lKa4oInL4vh/GStcr6yPuEpoasAj5JMLdWY8h65s+R8siwffh5BvPXKfjlL
oYGW7VVgqBgCb+u8p0crrJILTG/DrYIV7SAT+qvtg/hdf9fK3grVUUF3SRDZlmoqPTdT32Wb
wVIdeNAglcjH5oibuq5p25b9/f2hTXjX637hAQ3KS7JSICa3Dc+3dtBTcjPoIKrIc1EUdM4N
AXsg2oOKD7XtI3y3CdI752hUdbbwoVdyK8EqY8ywNu99TMLeOHetE/UaZA86KU6D/L7nhfk8
BsS6dmV3ZflqpIUxZmib7cN6UpEPMdHTKT0o+9RdKGTNQnPNZ7Im4R9NM62DNI/pc9Hv1/fp
igarObmi1yNoYof7Xs8O1nZj13WYEH3frmmZnZ0NgWrRU2ILa7tEwF/R65tnpJMZZK06SCB/
dcBNvnQCiZY/4UGdGLMZqNJJOdpu6A+PxFiC8yTGoMdkZL1+q6pqCPz7zg3FCI71e154Qex0
fS4i95uBzSEw10VswhhIk3SNdwjxZ8FHTFTulhDWE++MNX3Hij7py0U+sCYhz3rb0a8S4SKm
tUrilMQWbSeTJNHfBEwaq/FljId8DXapCcP9GgwYq+xVExNnAzHokqYRy3Rh1Z4+z3N8suqU
5btuKK6waUJmpAI6JndJZxPRjyu9KvZAq847nm2aZrSto+t8H1yqSPpEsapP5svylKQfSTub
zamqmrpuKMtyCPLpM48+TELTLCmKWPU9m83WeFNorKto5TnCl6sEhT5ZJMRRhfTJDo3p8Zsk
pXOeYjReyWCfaBODVstBBsU32KxGHBJyTX/H9ol/Q4ViCDT1KsE2+DC8RqoOszQjS1ej1Jxz
fRLVetKj6IYQwhAA18kUugOM9nd1oqUOwkl7cO0/RZ92lYQnNok1liIv1qrJdZW71gVa/8oe
5LvcJ1rO5d86KC1jfoZEsf5zdfBLEnFFNoRHRH/qQLdO/Nc8IzTVCYyCN0hiqci47noiyRbC
k8J7ukuXfNYmdiD2nB7nF/nhhR2NZGa33FG6K4GWAT0iRXfik3tcgqObvo/QZmU/rnhBfDM9
DkZeq/WV8NNmwprQTY8Q3NTp+uy0PS4dvFb+STHoLPn5yn6RluarFuqSDCJVx977QQa0n69x
A/352mcW2z3aJmmfSJD3yW5RF8b1xk4puhhC7Jk8Z0iCsNYyGsVuKfH+T3sbuqEoJmt+j1SH
r9PcDnItQUfZg9B4he+Ewe8QHVKWo/5+Nmq0eDqseWW/hiHwHXk8JmC0bTd8hh6pJ0lx1qYk
SejvlajjynLU2x0r/03OMk2zAYtqmq6X6SQWIfY+gPiokhDgnSOxZghui66QvQp/iD4QWdBY
h/g0XSdB6VzZhRET6zpP18VA//nzF7h+/Xp/XiufPgSwNmVrK3ZVLoqy79gQfbrRZDQkLjgX
ixrqpiHrE7etWeEZulOF6Hr5neg+4U2RH/EhRXbl3HVClJyT8IjWMc6tOmBIApHGW2A14kbO
WuMS2iYX/XN2djZ0BILVaEaRJVmX4K3SuUWSWXXSvejGeL8aknQ1IiFNU6T8OevlsOgx0BAC
eZZTLZe40A2yn9j4jN2tbRIsgUCa2jjOu3M01ZKd3W260OC62DHEeU+W5xHnD+uJJLoDhOi+
vIhFzZ231HXbd8zufQwCaZIaRn1m0ng8op1f5dq1OVs753pBC0wmI0LwVFV0EtJsBZqZPmOz
LEfMT09p2jjj/trh9b7O1ZMaizWBOFM5zpG1fSAoBEtV1QRi5s28WjIalxTTkt0iIRiolkuy
ImNZn2IMjMc5bddnw3YtiyZmn4bEk5YW3zakWWA0KWnqmul40h+2iZ0K8ozFIrYDJxIB5wOt
6/Ct6wOMNdu7W6RpVAAnR0fs7+/SVhVFNoHGsmyg8Tllvk2ajCi3xly9frVvy9Vy7mCXEByT
7YuYxGNTQ1c3bG/HA79+fEzdxLk8O7u7scq4DbECtTeCHvzUJxmNSrZ3tpluT6mrJc9ee44n
n3kSHwKjcsze3j5tU+OaGu/innAB7zucC4NyCcB0ZwcTDH/4Rw/wqYefoG07zmYzWu/AQF3V
hOC49dZbmM8XXLlyLbZ7Mh584Hu/9/vwIRrapvXcfvFm/u0v/SLv+dmf5nh+Rr2s2Z1s88Uv
XuYn//E/4/LlK8xOlpTZmJ3plIcffoyf+qn/Jwb+0x7YdnHmUwBO5jOuXj3k4sWLVNWSQMdi
MSOEOEdqZ+ccOzs7LBaLQWg10KgzY0XoY2brqmVPBFACvvN0riXNMqajgtbF8RJ15znuHD/x
T36KvLT8g//rxzm45TZMlrJ7cB4fOrLEEmxH3XqOjk755fe9j4c+/hBd8Hgs//D/fDcvvudO
/ve3fz/3vOxP8U1v/CayJCW4lrpecnR2wh9+9H5e/ZpXUxZjLhxc4GD/PKPxFpgMVxuqpePR
Rz7DeGvMd3z7t/LWt7wJfK9EbULjA5/7/OdofU1Ly3NXnufJJ5/EjFP29/Z4xzveznOXr+Bx
FHlGXS+ZTEbsnNvF+ziz6FVf8Ur+aDbjz7/5zexMJiyaBa9+zZdz37v+NsvZkm7Z4rqG+XJG
MS5oXUtGDEAUaU5jU1zrolGepHz91309b/3zf46QGEKSYJOcW2+/xB985H46PCmG1CZ9VtIY
781wmQZlCIthK+13hsyuIqPv8Y8NHuuicjU24fr1w35Wo2d7a4zNDPNmGat9AGMNk+kYEzyT
cc61qydU9YJFtYjBMWIixnK25PT4hK2tbYwEgtKUtmsYj0p8V8VqIUyfQJJik1gV2fqO0XiE
7WLWuXMN9E50mmZMp1sx8zqEviIjJq/ICJk8z2ISgjF98K4jzTKsWRmMwUCS51TLGte0ZFls
rWiNJS0K8B133fUi9vfPk5cTzo5P+Nmf/Vc88sij/NzP/RwXbrqV6XjEl7/yy/ncZz8LXUOe
FRR5ObQy/Df/+hf4j//hP3Kwd8D2dIs8S0jSOMPm+tExzzzzPF3bUo7KFehipG2PxYVA28bm
hcbKHDeGWTnGGKZbU1znqKp6uEiTJCHJIuAbDeAkVvp3jrIYxUoXY2KcGw+mBxyzjNOTExJj
wMeq57SvDt/e2mZ2fEicLxhbqtZdx1PPXebi+QNwnuNr12jbBh86LJbxeIRJlLPcVxDnWcb+
/h7N/IxqNgfvCM5hTcCa3uEkRFDee/I049zWlO3RGC+gMZDcfgtJYmm9wzcdiY1V+8F3uNbR
Vi3z0zld07K3s4tv3QDufubhz1B3jjbEBImqqbl8+Xkmky129/Z42ctfwn0/8k5++B0/zOz4
mNe97l7+wnd8O+OtnRjcxGGsI9AxGW8xWyxikosLFHkRad5HEbKspK0aLh4csDibcXR4lSc/
9zhFZrHGMxoV/PA7fogr16/z4EMP8vPv/XmefvoyP/3TP8NHP/YAeVZy5bnnKU1C6vsMdqRa
sGK7nMTOCD5lOt4mT3OyJCXL4ky3URmri1zTYccZx8cnPPSJB/mD3/sDnv7iF3jRpUvc85KX
9XZJRpbHLOS2awdna2s6JU3iHNf5YoE1dsgsFyNPHBMxTsX4FBBGt/MSg1Ebhhpg0Ea+vE4b
avJ7saG0ISpgiAbA5f06+3UIUijnVX+JISxBA/kyxmCChCMZnq8BwPXKC7PWvlK33RIQVjv0
wNrsWe3Mi8OgHeq4JtZ+r9v9CQC7aiO+DupoQEBXIWg6yTmOx6M1YGoTrF51CeiBpF6HScCo
rqvhuRq4EadADHv5kgCPDuB579da1Ineg1VLSHGyddBFaKUDy3LOAuAIKCPr02uRvUq1paxZ
7la5c4Wf9ZxE7dy1bUvKytkQ4EueKTQXkEP4/kYVmHJ2myCM936QTzkfAa8GHlZr0mcg69CJ
H5uOt8iGD2GontY8uQIeIhCrz0IHxmQtGjSSc5dnOu8wrIJHm/pB/q9/rvcIbFRMrBJKdDKO
foYGzyNtPMYPgn87AAAgAElEQVSsJyhsBps08CTP0DpFBzp0woJU6ekqNNmHrsDRCQsaSNXJ
B8K3ZVkOciw0l9cIKKX19+b5b5637EMH7oV3NHio+VX+igylaTpUBQk/C4004PMnBTS1DGpA
TtYhQIO0x5TP1DTXgKUGLuS1mg+0PtdAhuYbeaZOipDPEF6T+0+AE1glgcj5yb5krbqqQva6
KTP6u3zp9o3Cq5o/NbAkFcYC/on+Xat+VTKmwWfhbwGwBbjWwXuhn4BXOilAfwkvyO/ls9YS
z9R5b8rULbfcQtvGma/7+/sDP0hiioD0zsWOLQIEyx407w9BwA1Aey0Ioe5j4Rtd2agDDTeq
NhTe1sCXfJ7IwBCsUfTSdJO1Ca03gTidZKH1rpZjeaYE6WV/snYBFeU9OmgsPLApV1reZG86
aC9rlLVoedb7k0Cd2Exy1lr3arnV+kLbiToBQsuPAJjyXvmdtNzWZy/6S4BNfafLPSL73bRl
tX7QQSF9nvIesQU27Sp9D8netGzo58h4K23bbT5DV2rpDjHye3mWfq7Wl5tjAfSdqW1LkWdd
UawBZ6GxTgYCBvtL035TF22C5pu2gaaN2OY62LQKjCfDOWm7RtsFovu1PRxCiD4t61Wl8nrR
jVpP6H1EHnRkWb5278gexI4UPtiUES3vurvNph0Wqzml5XZLURhkbFAMPpnBv9BdJLz3A597
7zk5ORl0k267Ljwma9Z2o/DXpqzroMdmApzQStup8l3zvwQ5dLWsfobwuVQMax0qzxJ7a6gw
dZ4kW++kIXemvj+NMcPnCu1EFxQbgS5JfhI6xmraZpBBsf1kv+LvrIL468nQolNFrkQuu27V
Dl1eA6tOL6IXRH/LyA7hd20X6aCznK+ePy5+vvYFNn0QLYda3wmfytokSK+TuuRctV+n9azw
jDxT00DjCcMYHvFNWfcN5O4Tmoi8yeulxb6WX528IV+yTu1La92zaQ/JZ2v9IrSTALecvZYJ
WZ/Ivu7GoANXYsNpmmt5El6Sc95MetByrc/XWrtWAKjlGBiSVmS9EoCE6H/F8Q/FcI9qXhGa
LhZxfKucn/CcdBUTW1rujE075UZ+sJbbSM9kSAjSfCTP0rIoe9OdK6VgUj7fez/sta7rIdFj
s5Bl804PgaELpqxB3y/yOtHN8n6pNpfEV7EZhB+0ryc6TORaaCEFnzrRavMshF9F104mkyGh
Q/SYDlZrv/5GOldkfsAORG+61VgvodkQYwrrY0A3aSlnKlXyWqeJnao7ZWRZxnw+XxsHJ4Fq
fZfJzyRpWZ6nxz3Jfob3hXU9pX2WIYHPr7fel+cJ/cQuFf9M25Hyb8G+9J2yXC7Z2toa+HbT
zpS1SOKBtsc273GhuU5Wh9h5VUb5yX0nvCbyKjpE2+mbd8SmnSC0El7UuhbEjqjX7qZYmxXI
0pSyyPCxNXLcfxrHL1VNzYVRSeJi8krTtKRZ9EecX8ejtY2epukwesHaWMTjfMfh0XXycwck
aUrnA85DmlqL6xqaqiIsTvHVgun2iGANi2rB+f1za06eXGwQ+pY2Ocb0rZ6c4+R0xk3bU1xo
ycuc4BwJAdvDzXt758izHBc6tsYj8iS25CqKkqZrwUDZtykLzgGe8TTDWk/XtwcxNoPgOTmZ
kySWm26+mWcvP0sbHK2rcaHpZ9g32AQwnrxIaJoam3iSBIoitsDuWsdka8LZ2SmxNVOKTRMK
G9st2cRS1TMm4xxDR6DDpgVZtsWVwxlPP3tMuYDPPfUUzz3/LPkoJiWkI4vzC9quYzIZ07QN
NhiyLKV1HfO6pepi4HlvOqHpWspRQZyxm1P281KykJIklvlyzsGF8/jgaOoleVGyv7/P2dlZ
DC66jqwYkRVJHxy2zPtAeNIzRpamfYZYbFl+7fox3kPneyDMWvKtjKpacHZ6GistL1yIAp4Y
jo6O6HzL+fMXgBMSYzlZzLl87QpV13Bu/wDjE5rOcXh4wpXnr3F2tuC2W2+nntecnp3yyKOP
8Tu/+7uU4wkOw9nZGXmWMR2NaLoW5x3YGATN+5lg0spYFJiA3NKiQ4zl2NJklZ0oykuMHgG/
4kVoMT0/e++pFguqvhVZWzcc7Jyj7aBMR3zyoUf5+Kcf4+DCRS5euEiaWRIDbbPEG8PtL7qT
t33bt/LWb/kWTDA8/NBD/ODb307bOtKQcXj1EG8sEEhMbNF5fHxKYnIWp0tO2jOSYLn91tvx
3tH6hBAygnNUi4aLFy+SZzllGWXNh0DnDJ95/Ane+c538uwzlymC5Zd//Vd5/wffz6vvfQ1v
f8c7uOfFL+bOu+6i881glEi7r0988kF+7b//Ok889jj75/b577/yq/zxRz/Cq7/y1bzsS1/O
d/0v34kJlsRYEkxMjAixQ8YHP/g7dK2H4DEBXNfhk5SLFy5wsLPL1cvPkU8Kxrs7OB/Y2dth
sjNlMZtRFjmhjRnJ1hjqtsPYPljVXyJy6cnlFULg7OyM7ekWaZZzNp/R1DVFNyYj8G3f8hZe
86Vfwf7B+Wiodi1JEvjT976aW+64ldPlnKQYU45Kzl844NGrzzNPE2665QKTnYLGd3TeYRMD
eLYmEybjMbOzOU1Vcfutt5KnfWu45QJpS9RHoBmNSi5ffpoESxca9vb2KK2NMyghtloPhjSJ
wf8iz0mChxDr7IPzfSuWmN2fpynbW1tMyhFH1w+x1jKbz2OSgVz0aUI5ipn3XeMwNiW1lqOj
Q+64dAvf8I1fTzkeYdKckOQYW7JY1BgseIcl4e677mQ0HnF09YzZbI5zARy0znF0dMzx8SnV
vCG3CVU159q15xlPJowmE5586jLOddxz5yWadpVJXWQpSWpxweMNZHlO3dSxaimsAgsil9bE
FkbWJiwWC6bTOIPddW1MrugCTR0TQBLbd2awZmhVlGU5aZaCMVT1kiJJe76M1axJYpmMx+yd
O8D1FRlNu+QVX/oKbr/jEs9evkwK3HbpNvYPztF1Dfm4oByVMWvO+b4zg4BvgeAdBkPbxJbY
0jIyXsZwdHwUK2ltQgiG1BpOTg/JiiJW/+c5WZYAhi7EiKMPHRdvirq2c47UG1KT4dqORVtF
nkks8/mCd7/7J2i843S5IEks0+1tfvpnfoYX33kn3/8D38+tkzs4d26XL/mSL+HjH7ufe7/6
XrZ3d0jyER//5Cf4D//pl7hy5fm+mrkHZ4gVZGJQYGJlUZ7msVpi2VBVS3b3tnnoU5/k0cc+
w+23X2Jrd5d7Xnw3d734xbzmK1/D9taU973vfRwfnfCf/9N/xRL1xzd87ddgQm+kOY/3UBYj
srTk9HRBmqeMR1OsicBODPCULKua4EM8Oxf48Id+j7/3rnfxottvJ0tyHv3M4zz+2BO88lWv
IU3jfF9j+0pQ5SSmaRqrIPqKHB0sEJBOV6VuAmwidwKSiF7aDGhsOnHyeg3caGdWHDf5DB2c
0sGKGwFJzrlhRq+sW68nypcZ2ravGYv03zdAVg2kCLDkXDO0ddRgonZutMOnA2oazNaA/jqY
vG7sizOx7rw2a0C13NvaSdT7l/XInsXJFltWV8cP50ZMENFgizGG4KFrX+jIaudJnBlxIsQ5
kmCI2B43AlM1QKUBK1mbOGU3Ap81MC9AkPCCvE4DPEIfea4ET/QZ6soV7ZAKaCAVtLqCeHMt
Rtlewks6YLgpN/IZGhzXtBZZ3DxnDQBJMFfLoLxWnqV5UNNJ1q6ddc0H4gRqh1A+SzvH+owH
QF+9VwdZtDwLDTRvaKdSV8VrcFLLgrxPf0b8d2wRKfTVa98MBGowV5+F3puWVS1HAt7J+zWg
op1mrQM1P2pASt4nvC+yoCt7BMheA+Y3zkHrVtEBmu6yXp0oo9cjMiVr0PTV4LNur/5C+q9X
BcuzhR6b8it00GCMvF/rAZFVzS9CM7kfdDBXfCB91hqU1nSR4IesX4AeHbiTNRizavOqgz46
ICPv2Qwo6YAHrIJwEojQMqErHiX4Kc/fDKxqsE30qQZJ9Hno9sGSZLwJSAtdtK6X/Wpe0oEi
/Rp9N8pzpSLs+eefZ3t7+wXjbfTevO8r/m9gi8j5e+/xZj3QJOegZVner20MrRO1LSPP2bQ/
NpMA5W7Un7mpM/R7NM9qXaCT97R9NSRjqXtI5jHL5wvgrgM8GoBM03QATjdHImzaHVon63tf
03UzIK73cqN7WNNU86o+D3mtvrs0T+ln6TtFy7iWNw10dl3HdDodwHPhSx1glrVv8rk+O7F9
ZL0vuPvVXrU+12uXxCKpnA0hDLPL9XM3A8jaltMBJq13biSL+kz13aB5cNM+EqxIPlffnYP/
2n92kiRro0+EH7WdqnWi/hyhiwaU5Xy0HxLCap6z2JPyOn1ny/M1v2hdBgwFEZpHxS7WOkue
KzIpz4ujfFZBQ7lv5Hm6elDTOoRVgrMA7aKbxf7SzwSLc7ECMvrg4CNw3beLXlUXalBeWs+L
TEjgX5+ZllnhIwmU6bttNBoNc8gFAxd6it35J1U067PetJ/krpF9D8UdSm60vakT1LTOsDYW
otxIZnX7ddFjei06cCPJ3dJFRPOX5kXNm/JMbQsJ/+gkQ1jpRF09Kt+lylqek6bpEMCRfQpf
aJkR+st9LWcja9NBSfFZxuMxx8fHg9+rA6ebPqXYD9JNVgcb5XO0DpfnaB0uvpyWWdE7Qjvh
BV3VrgOKWl9ofapb8ot/q2VOaCA6S85FaKd1odan2lbQsqx1oCSSy7k2TSxslDb7YqNpe0js
T1m/vpvEjtbxphvZV9K5RugmxQlax2z6FfJ7WbPsQfYk+k/fmdoXlv1pu2lTt+p7UsuotqNg
fcybTsgQPtm084Vf4nmuRo7o5Awt29rG0neXHkMpny1rFT6P52GQDkNyZwmvr7Ci+H9JXErT
dDiXtm0HGV/p8RWthBd1RwFtM+q7W9aqfTlthwuPaGxqM5FMB3UlMCw6ZrCbe94Uftd2gayv
aRpGo9Ggm4qioG08oT8/4RmhgeZHsff/JBtDup7JZ4guSNM0jkl37gXt9rUdJuvN85zpdDok
qQj/yu+ER7TfmOd5HI/c86bwluYrnTyrba1NPpU7TNYoPC06Us5FeEK3+Zc9Ce00DST5XmMu
m76Z1vOSmCIJB5v+tvCj3KnCM/p+1Ykt+u7Re8nzfBjHOh6Ph3tM29NplpFn+SohIUBqUxLb
3wl4II4T6JsDkSQZVdWQZpaui+eBMSwWywHnsDZ9ga1gjBlkvKkbMpOxWNaYNKU8sNjU4o0h
kJAWeRRY1znq2ZJbLuxhE9dnj0QlMBqVOOeHDI3FYs58PmNnZye28TcwLkpskrA9mVBkCRmW
Zb0khA4TAvgAJgrS2XyG97H8bD6fs7O7Q9N1BALOOxaVo6ljC3lp8xNbFVsICSFAIGFruoMx
hvm8pqo7RqMSH1wcI+BWl54xUNdLuq4hy1YCb0xshzANJiYfNA1dr9C6rmN/f5csT4HA6fEx
iU+wScLZfM6oKDg8m/GPf/I9nC1rjk6OadqWixcvsljU1PWCJEnZ2dkhYCntiGo5xxtLsLEa
djyZkGUpVbUEHMbGgGGaxWB7mebDYaap5fjoemy9OhrTtS1VVZPYZGiB0rQ1dDa2aO27GnRd
izOxAikQqJolxsS22lVbkyQZe/u7dK6JM22dwyUQfEvbxNkn89mMyWSMxZPZjMPrR3Supexb
UEy2pti6hhBnVPngaZ0nTXOmWwmdd7jEUY5KTman5GXBwfl9qqaNwf22Y2t7m8PDa0ymY+aL
+aCYu66N5+p93/43Gjzz+XzI6JrP54OCFMWqW/bIrB/dUlIMK+f9MGO+857JdMLZ6SneQDkZ
cXh2yk//7L+k6TzGpBgD5ahgVOQ01YI3vfEN/MBfezn5JMcmsVW4d46vfu3ruHL5WX78x/4R
nffULirXrA9sL5YVd1y6gzQ1PP744zRNR57k7J3b5Wf+1XtJbMp8XpMkhp3dLZIiJS9S9vf3
KcqSp556hmefu0Ka5GzvbEPrqF2Hmzt2t8+xOFtwNlv2ldd9UCGNiRTee5566mk+/MEPsVws
2dvd5f2/+dskSeBVr3wl43KMx5AkfRW6TXEh4INnvpjxK7/yq9z/kfvJTMq5rd3Yvt9aEh/4
0G9/gN//8Af55m95I3/x+/43grHUTUUwsL27TZGl+DbOFjs+PiIrchKTIG2+RGFqI3A8HnN6
chZbvDUts/mSxx59nGJccseL7uIvf8/34JwntXBydMzs6ad5yUvu5t3/7Cco84xyMuHa0QmH
x4fcesvNfPwjH+Evftf/zP/6l76bebWgWS4pJiOshe2tEe9851/HpjlPP3WZf/Evfoanv/gU
uzu72CSj8WBsik0ywNK1Ha981Vfwgz/0dlzr+MAHP8CnP/Vpbr14M0WR0zR1pI1NCVkPWKUp
xrk4v76fCxd8AGuwIbaOWS6XVPMFRZZTluUQQB+VBXVT0bk4esV1DgN0bQPe45uWt77lLbzx
zd9MWuQcz2Y8c/k5trfP8aJLd1Ivllx97jkuXjjPG77xG7jl4i38zR/+YY6OTlguKryPLUWz
LLY9qqqGWV1TLxcslw1vfPO38L1/5a/wgQ9+mPf88/cMeja25Q59ckkSz9h3hLaNiQD9xSYJ
AJ2LbeWwFoLBGBtb2/TdXIw1jEZxHk7nU6plhSHEOdSuw/t4WV+4eBNXrl3l5v2DmO3fSLWP
xxh6I6LEdYGjwxOaxnHu/Hm+9nVfzaVbb+F7/tJf5vjkhLe99S286Y3fTFHESzYrcgJQtTXO
K+fdGOazJRfO7dEtG6rlkqrvxkCISW5d15EmGd4FutBx9dp1fuzH/g+yLGdvb4+tyYQsz6jq
lnndcnI656GHPsnu7m5v5KYDHZ1zjIssJsNh2N7eIc9zZssl+WjE6fyUJEs5PDomvCgw6WcI
GWMpRxMWy5oki3oryXJOz8743Q//Hr5t2d3eAQzWJKRJTudaFot5nJvan1dexoS0clSAncIC
Hn/is9x333287Tvexvd9/18lLxJMkoA1fPd3fzdvfvObOTw85t/9u1/kv/zn/8bB+f1YNW11
cAa6ztM5T1XXZMHhLYQVJIVNUryrV86Vj/va3d2nbjpcF5idzfnVX/5V7rrrbqq25cEHH8IS
5Uj0/nw+X7VKt4ZgzHA/SFa2BGp1JY8GLMVhKIqCsiyH+0cD8PJ64RUxGDXYpEETDahuAsga
8NgMJg2vV0Af8AInbcjyVc6nGNiShCHPWDl+fs2R0UavdmI3gV55rQbBxNDWgMzm58hrpdJR
7mbtVGiHcNOwFvrpQJB2WuRcQ590p417XSEVSRjW9qiBXgEdxDkUR06DZ7J/DZzo4MmNghqy
fwlEyOdrYE7OXCdwaMdLkqaMMUwmk7UMbHEMtJOtRzVoQELvXf6vv7RcpGn6gvaSGqQxrBw7
eZ6ADUMiTv9cHbjQQY/NQIz+naavPhtNaw3warnWtDcwOJvipOrzlXbQmv4aMJA16zWug7BE
vRfWEwb0XjadXwFfNV20btjUMWL3alBJvovzX5YrHSXgu3xpx1H/1Z+jZVecXu10Cg/p71o3
bAJAGpzRwTXdgUXz09BuEdZkTAfAnItzrXUARq9P3iO8uFm1qAE0bYvCOriq17Z5HrJf/V5d
oaJBpZV/atb0oga5NgMHGiTTQbJNwG+z7aoOhOgkDU07WXvXdRwfHw901/KjX6eBVq2fNf30
PaEBvRvpFgFrZP/6d/IefceI/EnQSvOz1idCV/0evX4NJmreEgBMeF7ref0MDUxuJhfJOmQ/
shbNBxJU0NUjqyIL1p61qXPWgOUQ1misk30078uX5v9NftY8o2kvtJUvAR9XiYIrwFafQ1EU
g2xL8H6TB/TZadnV56Tppc9c2ySbelV4XSrmtCzq9+ggi+ZtYO1sN2mrg1b6vVqub6SPZN3a
FtL2maaJtv/0/rRtqqua9WcIDTS4ru+MzcCElmMdwNB8rN8jdNQAtOYfvSatt0VPaUBX858+
O/0l5yX70ZWs+m7Wd6c+Rx0Ik59t2hbC08Lf+j7UAUWhmXzXr91M3JV1bNpeckdreRD9sxn4
0zayPiO9l4iVrTpwyGt0u2tpdyz7lUKazc8UuojdK++J61jxkT4XHUDZtCOttYO/5Zzj7Oxs
oIkOnMnztG0i65Tf60Cp3qesT85Z7kpjIv4i9q9+v/CLTnDTe5PgrNBLgk3W2hfM2pWfa1tz
U170d3mPrEvrHgmS6TtUAm7yJVi2lkH5KyN75HWaFrIGLe/S3chaO3QtybJsKMhxzg0dCfSd
IcEpbbtrnar3LDTX8qN1ppy9toe0TSkJ73L3y89FP8ldpGmr7T6tl7RPJOe6TtcXBpY0P24m
5Wr/uetWLay1jSDBPqHhcrkceF8CkNJ9QfS9tl/k8ze7q2kbWrCNTburaZq1znzyV2wcnaSu
ZcQ5N3TUlftMdxeQCmX5OxqNhjVu6mu9JmvtkCxgrWU6nQ5dfbUuEPlaLpdDlwjZs7aZ5Uy1
ryYyJHvTz9b2rfCt0MQYM3SdiDbyKnAt95vwXtSNK/mUJEPNj/I5m4lzQp9N30vW7Zxje3u7
Hw0FabqeHCw8oBNFNvlV7Bctd1oPiNyvfIFVR4TN+0z0jfxe+ErbtZvdG7XtIMUGWldv2tbA
ICfyDNmHTmCWvUrLfeF94SGRv8ViMdC5rmvG4/Fa8oG2OeVM9ZfWHdpG0XS/kc8ir5ffi1zo
pP66XnWzk9+Jf5okyTAWQfhs82y1rprP50MSschEVVWU41UXF6GRbrOfZhnLvsOFpo1gIXpf
uqpd43EaDxD9I4F7nUQpem4YV9OfyY3sIojxPs3H8n59J2p7T+gtvNW27ZC8p/0vfV9q+0jf
DWLDy/2sO27J2uU1gjXKa+TzEmtxgYEeTdOyPdkmTbNYDOsdtu+cXC3rvkvpOL4+K2k76ehl
gV4n2hW+KuvUCVM++MHW6oJh3jgwgbTMCAEClnRrNCVLM0bjMc18wpUrX+Tue27D+YpquehB
7jhnYzQaM5/HtimTyaQX6C62sTY9M5rIVK1fUndNf+jgOoc1nrprwSb4EEEx8pyu7Tg+PmI8
mcSq0c4xKsex0j8WGJOleaz+M7bPjgiAJc0yTk9OmUwmlEVB2zQk1sQZ33kGhtjO2UtrEQFZ
wHWBLMuZLxakaUKaxsyosp/NDDHTwgDlaIT3MBqPqZuGqu2YVw2zp54myTK2JpNI+OBILfjE
khcZ27vbXL16ndRaRsWYxXKJQTLQG7quAeMYjQu6zpHnGWmS9czjIMSq9zTNqKtlnBluIjhQ
VzLHKXYoMDbObMnHsVVyXkh7jphdnaSW1Oa4LuAdbO9sYQzM5kc0TcXOzlZkomwlCCE4stwS
QpyTm6YZWZ5R1xWjss+kTVImvXGY2ITJ1pij41PyLGd7Oo5n5QK1W1JOS9Ik5Znnn6brOm67
9TZmsxnL6ozROCdJYTwpybO0n2mcENt/rS7WnZ2doQWKOCTz+XwAgDfbDosRIj+zNvINxEB9
03XYNCW1CcF5xqPYyulkdkLnHFXdUBZjMAlNXdNWsQ11aGo+8+nH+MVf+EWSzOIJzJc1R0cn
HJ6cMqtqHnnsCZI0wbkOHxxd27BYVOzvnedjVz5OkhiSxDBbzNne3uH4qVOe+PxnqRYVk9EW
XdvFQJw12KQH/5KUZVXRdB3nDnYpxxnFZEozr8AFfuv9H+ADH/xd6q7BGchsnAmZZBlN28as
zLphMhqzPd3CGMvewQGJMfzy+36Nj37sE5gsJU1y0jQjEKvB267hdHbGlStXuXBwnkk5xrWO
qq5YLhYUWEzXsjicc3JyEoO7aeizsBqKdBQDaEnC3C2YTiexQjBLsdJBoFfsYvTIRVYUJbFC
NHD9+IS/8bf+Ni9/+ct590/+JHs758AavO/44hc/z/XrV7n90u1sTackiSVg+Pe/+Eu8973/
miLJyJOCN7z+9dx80000viN4R55lYAJFkfLie+6kbjyXLt3BfDnnXT/6dxlNJyTAZGuX4Dse
efSzfPKRz/D1r/9GvuRlL+Ol99xDYi2vf8M38PYf+EGee/oyN+8fUNVyAVqCtySJja3JTc7R
bM6oyOiCx4UoI5Kc4TvHZDSOhstyGWfKq8vOeUeeFZBAmmdsjSccX7/OwcEBX/VVX0WwsavC
+3/rt3n3T/4UzbLh4u453v2PfoKyTPkn7/4J9m+6hVe/8lV86Su+jAcfeIBq2cRkGO952Utf
ytd93ddhArR1g+ta6qbme/7y93Lpjjv5C991M3/8sT/mkw98lKbriHdh7FzQtR1FkhC8IS/y
GOgXB9D3oJxzGJtEfZK5ft4c1HXVG/hjXNdiSfqW7cQRM8H3NAp4AuOtKUmWgTWkWUZbVXFS
fZCAaE6aFTz33BXue+ePMJ2M+Zn/92dJCdx5x+38wx//cY4PD/mae/80N990E0mW0gLGxESv
tu2TdrJ44X/Vvffy8EMP8+hjj7O3tU3beU5nfSDYxe4EW5MtqmVDcFC3DaezGQ88+CnmZzNS
Y0ltnCV+Ol+wd3CBa4fHXH7mMhf29jidzaMh0M+DzIuM6dYY3zhms3k/Kqef7eocOE8xyWMC
QuhHUGAhOELwVHXF889fwb8iVlhbm7I12eLs5ATXeZZVQ9d5kiSlqReQwHw551yIraL3zu0w
3Zpw/fpVptvbkObs7J/n+vEx//V9v8zZvGJvf59bbr+VP/Pa1zKajNnd3WVnd4/v/4G/yhNP
fI5HHv4082qJ89EBiYkMYZi93XYtSZH07Y96UMTAaFTg6g7nO0KQ7N+cIisIAcpyzMWLN3Ny
eMJ7/ul7aLuun2+1NRjQhj74Fq1K6rYd5oGL8a2DZRrI1Q6JAB5JkgyBETFUxVjcDHQImKDn
p4nBKM6AGMpiiOrXaABbjFpxojZBOg3kDYEPYrKNBB8jy6h2Wb1B7/16FvgLgeN1oEQMW9m/
3rMGxMi2eiEAACAASURBVOS1GpSRPev9bNJEt5OUZ3RdO5yJzO+TQPcmSL8JWHvvh8CIAHga
rIvGf6zw13uB1RzBNE0JuLXP0XQQu0KD9vo8dEBT002f8Y2AQnm2poc4K/Kc0Wg00F23A9QA
iwafNkF4Aazku/CrPtO2bYfqVNmT5ne9L+9XXXykGkDzqTybATRZ53VNO00H2ZfOsNeg/Sb4
qd+nwYZNMF5nuQtIJZ/jFTCqaaeDJpoOGsSPvBBnMN7ovLX8akBUg0qax/T5y9pXMrpeIaWz
1TV9hA/EqdeAhdYd2lHXwVUdeNZAmAb1gMGG0wC37GmTBn9Slc/AS/0eYpb86ksnWcjeBDDR
oJsGToWOsk9d6Si6RNNDB2CFnnqf+n1Cd/mdBibltfrMtG7UPLnZnlXTS+st2YvIlKalPE/z
psiagPlaX8vZbMqABhb1moXmGgCTlsByXjr5ZzPIoHlY35Wb4JqcjeYPORMNPOvnaRBK1qiB
Z32/y7+F5je6PzbPRZ//5vP0njb1leZlOTsNLosekj1vJoAI/+l7S+RS6K9fp+9PkZNU6bpN
8EzLqP63rFvvCVaBSPmdrqzVekTOaz6fr8mV8NgmcL9Je813eoyOBEhEVkRPLRaLNWBS35d6
38LfGjDcDDZpfpR9br5fy74+Mw3Maxpv8rTmN53AuUkDoY88Q34Wk6bXK6v0Z4tPrRPKBBvR
z5ZkSSmM0Ppn0+7Q+7nR/S3gtr7j5LVw47EBwstat8p3eZ6mi06okfXLs4VuWv9qHSI01veN
fOkAsDFmrY2sfp3mA31Pik0BK8BX00nfc7Luzb3KM4V+eo8i3zqpTOiiecR7PwQZ5TmbPKzv
SnmP0Eroou8E+XnsZlWs0VueJ/pY30nyOpFvLZsiW9qGkeo1rctlfZpfN+1PfTfoBAhtg2+u
Sz5T9LReh/DPeDxe0xPyGRJckJbCcs9sBpK0nyd02ryr5R7VicS6TbnI8KZcxfXG6n9NZ20n
yOdv6gb5XEmWkDvF+9XoBH1f6MCH96sxq/I7rb9FFrRtqO1KbZN774dqTd2hTb9PBwe1XbeZ
rK7bt2tZEx0pSQpCg01+lHOR4LokfmjdXJYls9lskDGRd63XdAKK/E7wTNmD3GdCTwnO3UgW
9X2xGVTWnVC0f6T1juYFrRO177OJUchZa17dDOZJkpTwg7Qdl2CpHjOh7Q2d1CIyITTXOln7
IdKWXtsXOiFN5HWwdzb02mYyq+YvoavWq3K3GmPI82ztuUKz+Xze+90G793aGD7hA+mqIUkB
co76XtvED3THiLquWS6X7OzsEkeuZGtBRjlLoZfcGZq+8rmiP3QCk06KSdOErlsFn4Xn123K
uGY97k3biZt8q/W8PEvWLvpZy47wl9b9em9ad8iedPKwJHlt2grCy9KNccAieKFPkqbpCrfu
1y40Ef4NYdWCXY/t0DYGMCRWyO+EjwDG4/HQNUgSr/RXkiTDqAKt47Rto58pCSYiI3q0jiRz
LJfLgYbee1y36uSoz0boKp8rle46iVZ0hujt8Xj8Al9B+8A3skM1pqnlQtvZ8jx974pu1mes
sSnv/QuKO7QtI2ckSSbyDPmZ7L1t27UuF1o3Cn1FJ6dputZdwrvYKXg8Hvf6p6LrYtdVY0IM
cPdfy7pmuazonCPLU4w1Q0csaxOMlXtzNRpCFzII3Zu6GXihbTusTanamsl0GnVSkpCWRULX
1HExNqMNhtlsTpYV1Euo6wYwJNYyKsdD64nt7W3m8xmjcsR4NKGqaoq8ZLlYUi1P2R5ZbGJZ
/v98vXnwZdldH/Y5y13f8lt61YyEZkYSIyQkBEKhYkVIWELGJiQ2sRNciZxKHDtVgSQVEdup
EJTkDwg2orCDHQMqu+IqQxkkCApxmYpUDkISigwjEglpJM2iGc3SPT29/N5+t3NO/jj3c+/3
3Wnyqrq6+727nPM9333d74CiQFAqBrj6AESez9DUF9AqEtnZ6SmatkVm0xgQ1BrOOLRN37o2
eCitUDejwPC+w+HQQgWP1Kax8tIAwXsUeQrvPIIGjFFoW6kAxjmYaZbBu37eg46dC8YsHo8Q
NPa7AxbzEgHMPKthrEFbNzBJguVyibZrobVHU1doQqygT2wKrQ1u33kZzndQ3sB5DWviDIim
OWA2myEEhTzJY2cEAHmWIrFZz7g8vO+dEQFITAJrDZq+JTaRqycvGGsGxkYmCIzza+q6xmw2
g1cNtFHwoYVrHbzvMJ/P0LUtoAygYyB7Xx16pFJoqgO0NnG2uI5BTIXYVrvtYpA+7Ymgqqve
6evhgsNut0WSGHT9XKp9tcN8WSI4h3sXt5GmfRtlH2d4l2WOqmr6vScAFMqyGBjWrVu3jpzv
Wken97StChUzAK8wSCKRqDibu2ciPhzPH7LawCqFPFdIEoM0zVBkFt7FgLzJC/zxF7+Mxx77
AmxisN5t0dccY3lyivl8hrOTOdqmQV3toVSCZDnH+WUN74HEJUiTBMoo6MSiaVucnJ9ht92i
nM2jYDAzaGhoZbDd7jCfz2OWXl7AB48kj8xl3x6w3+1RJhnu3r2AtgZex+BjahN0FH49E09M
ZBZ13QIaKPMC29Uan/39z+Pe6gImTWB0FCBQGjqxaLsa2ijMigJ5msD5qLwqa2CsxX63x+7i
Av/JX/uP8JbvehvqrkOaFZjPFjhdLOCdQ10d0IQAm1g0TQdrDFzXwfk4A4WGpRT2MXuqn3WL
2PXDpgW0SvDx3/rncOigrMF+t8N+vcGb3/xt+NxnP4+0iArA0994BjdevIlrl6+h3VU4e+gR
WGNx+9YtOABaaVhrYAwQAhAU0HQBVb3B+aVzfPc7vgsvvvgiFBTyLMd2tcaHf+7ncXb5DO96
z/chNRbBRkH1yMOP4N3vfjc++TufAEyEi7UJtFJIrMbJYh5puKoxX85htYaDglNx/rDzAacn
J+jaFq1pkGQpkjRFZjLUdYOmbaLxYjS8GbNHN5tNzOKbF33Vegwgd100KJNg0dUtXvzmc3jt
I69BlqQwvbl4dn4ZSZpjtdvhxRdfxPz8BO959/fiXe98J7SJrbCDD2i7FkmaYbffo64bPPro
o3jyicfRdLHyPba/j90tyjzHvt5DWQPlA1zb9vOVAdUrQ2mSYLfdIyZ1ULAzqOPRtA3KvERd
VSjyAqGf++0Q4AKAEJCmCebzObIsRV3V8AF9JwWFAAWjY+W/STPcuXsBeIevf/VxbPdbvPmt
b8MPvP/7AWVguhq3X3oZJ5dOoRdzIABaq6HDQl4UgDX44X/nL+D85BQf+omfxPqwx3a/wWq7
QdXWyJsaSsd37vcHeAS4/kybzuP23RVSY6F8wMnJAg+99hH8p//Zj2I2W+Af/fJH8C8/+Ymo
CCgMvBUKWG3WKNIcRVGgbRyatoX3Dj54ZGmKs5NTPL/eYLPdwigLqxSsBq5evYRH3/iteOnl
W2i7Don3gA8ILmA+mwN9G36v4hifDgHr3Ra7wz4qJtBI0wzaGMzKAnUbx8kkWYbLV67iYrPG
P/zFX0SeF3jwNa/G5cuX8YZHH4UPHp33uHLtMv7uL/xd/ONf/gj++I8ei3zX+SHJxyMgGIWs
KIDA1v4udgpSwHw5x92ba7guji1RfU+k6PAsYRDbJ+V5hqapoRD1kq4LUD4MzouuV/ic97Bp
At+5V1T7y4x/qaBS6ZUGjjRyqADez+lL2pTOcSqNMgjA66SBPzV+eY8MNBhjYsKJMJxo0IUQ
UDfNMLOc7vzhvSEASsELA0UaitJZQFl6P2e63AP3RoNfVjRJ5xPfxWztmPQYg9asBKICPQ2I
MBucyj7hPf3wneP9Gs6NrfykA+X4GeN4D2st2m6kNaXGAKCElwy6yQAtcYPXyvfwPsKQ90rD
hecln8f7JJ7xGjqs5P2yLbJ0+BGe3I90GEh85L8ZoJLvlvQxvZ6wldVVU6dEEPhDfKExKJ/F
e/mRFRxThz/3I6uo5G+kkRBCr28eV/ZIOlNKxcSz3uCTz+TZSEcQYSAdFhwJM3WISBqW9DfF
DVnBJOlsGiSTzmZJA8QNOlU5o1TyCT6HcOPaiTfUrfleGUzk84ln3MO0Anq6LolDEqdk0E3C
Y6j4m/CoKT9lxwnJw+mY5fWE959Ei9Q/pYNYVpYwoENbQTrsuDbpaJdnRryRji6ulU4N3iOr
LojH0lkleTAdjFIOEQ/le/nMKRxkgIf0JANYbCHMZzHQq+5DP+RLxCWZYCFHhUzxdhqUIJxk
IGDahls+WwY0payZ0pCUQTK4JXk0z0HyNXmmUxwkfko+Jh1chKesPKGMk4lXxBW+T9IG9RXC
je8nLtqJjiJlNvcr+aHssiH3KmlWBoi4d/5+vyCTxCfJp6aBDO5VBhWm8o0fGYyVjj7qU7I6
rewLH+S9kufKfd1PJkt5y+9lAEnSs4SpxCu+V9I88XDqqOezCKf7JfYQnjJYKWE9TcjiNVwP
4Smdu/I+Xi/lh6wqk3x4CivJx3i/lPlcE3+X+CRhOg1+8FrpaCW9y8QO4rtMCpgGt+Q581lT
PWiqv0z1DvJGrnNaRcqzkgEFyqE0TQddVtLj4Gey9ggmdGxLXV/yHvJUvptwYcBbylIG1Ph8
6nHajEmBcka5TPigDJbyYwy6Hss2mTDJawlT6RQnH3TODY576e+RtoJ0sPPf7OQWE9j6LrBh
DE7dT/ZJfir5naQVqcNLuSTPTOpwu90OZ2dnePjhh/HEE0/AWovtdjvcz05BpDOp8/A7wou/
M0gawjj2hjDjnqZwor2lVOhH5o0dFAh77oHnL5ML+R1hKCu/JewoE/lsJmcwoNH1ife0rwhf
wlLyAJnwK+UBv0/TNFar9h2wpD2c5zmCGmc082zKshz4gLTtSIdSp2dCMpMVmdgvdUapdxBH
CavtdnvkOwDGGe8S9tIOIQz4O/FQBvukXcozIC1NE8uI72zlTr1cBpaljJO2jbQdpzyWtCZ5
k7xW+hlkQjAr9ymXic9c13a7jbEHwSuMMVitVijLcsBziQMSl4j/MqFH4vbUfqC+Sj5KmBOH
JZ+X8JFtwKnHkUewAEXKMdJJhN1xkJy/T3UNwlX6lKg/ympp4hUTEGJQ9VhWE49lIgj3wvdK
2SHXxftl8BNgkusrEw7HBKkx8M/zlLYIcXUqVwmn+/m9eK+UO7xO2u9Sr5rqv/zIJABZzc1z
nOoRU31T8nnJM7mWI11DxWSJqT7D+5mIIDsAKKWGMyX9UF7IWfVSnxmKmXqezvtl0k9VVSjL
8uisqbfsq92QpEM7kWfSNA0SM+qWDFxL3sB1M6H7fnqU/JuBeSZKMbFLdodJ0xRZlmG/3w9x
ZUnPPFPCRvobZCJECGHoXME1yOQoOd6LcUCZxENeJnVZwl/is0wKozyUuEMZQtziWrQ2aJtm
8L3keYbQAUZpNFUNrZcAPDzYmSXG2Tw82rZGgEeS9PLTdX0M5DhpSNI6k6Ln8yWcV1BQSJNI
B/NZCaMClPewWQKkmUWSZgg2QaNtDLinFienJ+iaGggagMZ6vYXWQNs57PcxY907D6Ujgi/S
AqHaY7O5gDExW3a736PoZ7NVbUBWlEP7cZUoBAQoo1FmM+TOIXiPpm3R+g7GxvnRMQgeiSTP
ElRNDSAGoNM0gQ4BAR6HQ4W263CyWAAB8IhtqEMIQ3v4SPAGzrXQSsMrhyyNc6JdF2JjATUq
O2VRIDEp6q5FdTggyRJYq9Eoj6zI0Lk4lyHLUoTg+qrCgERp7OsKznVI0wQKGiEAXddCG854
qRBnXVfD/LpY0R+FVOcCmuaALI1KkFExCSOxCbTRMEqhqmIlYwATJKLg42w3Eiur5Vb3LpD2
iqVWCrAKeVFit41VqWkWq2irqkZRzCLROtd3GTBouy52EDBxBkea5QCODQWtEyhFRS8qI6en
56iqA5SKmcFZksBphaZt4H0MPmlt4L3DdrNGkma9oG/hnEfbOiRJht1uMxgNwJi1SuEus9sk
45LMNE1TNHUFr/vgh3eYn5wcMXwFhbYXqmWZ9m1jYmVzQEDb1FCmQLFcQlV7WGMxm5/ABQ+d
aByqCsoE7KodEpNgtljA+djSfH/YITEpFDSquoJXQAge8/kCTduh6zySzMLBoW2reN6hgzIB
TVtBmRigtkka8VgHlLOyrwYOyJMCSZqiahu4EDCbx0SCAOBQVXBtO8z3LooSXoeYeFPOMFue
IClmcD4y7bZrkdgEdVPj8pVz1PUhvtPEjhpBKSRpCqUVDk2Nt3zX2/AXf+RHUJ4u4BOL3/jN
/w1PPPE09rs98iQByCxtdP7TQMpFZpxUeoezg4drG7S+hU8SuK7Dl77yNfzep38fDr5vT97B
QuP89BRBBcCY2KWjrrA/VHjV9es4KeZYr+7hb/6t/wZVW8GmGeCBPMuQplEZmy8W2DcNbtx8
qd+fxWxeoKkbHPpkh9PTc8zyOT72ax9DuSjR9ZXWTePw7DPfxMnpGeAd2q7DP/v1X0fdtWja
Fs88801kqUVb7WOVeeux3u/w/I2b0EmCQ9Xg9PQUV69eRVs32O53MWHDKbiuA3ys3onJOyEm
VAUP13aANUjyDNokSGyOQ9MhS3KUeQGYgJnNUBmFxXyJNC9i0kaS4PqDD2B5foaf+pmfwXxe
4Kf/9k/j9a9/XRReOnZOgFJ9AonC41/7Kn7iv/2JodtGmqZ9hSTiDHFtcNhXkU5VX5nhPVzn
EAJiS3vEhAJrLTab7SuyE7uuhU0sWt9iV+1gEzo4Aed8n5EZ+aHvOrjWoW06wCO22+880lhG
Pgj4RGs8+fTT+Ot//a/hz/zZH8Bbv+vtsDaBUQbBdfjqlx/Hm77jLViUc4QQ7/U+yreAAK08
lssZ3vmuP4X/7r//CXRtA6WB03kOZRQ610IhVuIwmciHgLws8EM/9G+iaz1m5Rx5lqFpKlw6
P8d3vu1tKPISP/xv/3l84nf+BeZ50bftB6yxMMYiOI/EWnRNHE/iXACUhkIcQ+DbmCR39+4K
d27fRZIlyPIE73//e/D2t38H0iSDh8duvxmUqFlRRuUheLhtg3urC3Rtjc3uBHfu3IMxCbSK
zp4Xb9zEqsigjMblK1fx5je9Gd/3fe/GQw8/jN/6zd/CP/lf/wm+8vhX8OMf/K/x9ne8Aw+8
+jq+8+1vx3d/z7+Ga9eu4H3f/1586bE/jF0lugbBdWibBoeqwpNPPQXnPPI8w917F302bV+t
lxi44OC8Q0zliNmPVMJ1kgBawwFQxsA1Dm0Xz4uKYZIkOFQVvPfIrUViLBo/BmlpPIcQhorz
qaOFyjflg1TcaWTy33TGSKejDNhIx7f3/ihQRacE75cOVRocR0kHagx6yUxX6UhVmpXvHlpp
3M+w4P3SaJBONKXGoP400CmdDfLZVOKn7T9lNrrM9B2MEBEgYbVFvGd0JNPROTVApg4leX6u
G50wVNalo1PrmGijlAgWaw1j+iQDH47OTz5LnrF0GgJjEFM6V+Q75dnJgJnURfhe6ZiU5y0d
PxLPpkF36YziefA9/H0acOK1NPwol1U4bo87dZj73glEQ4nPIs5AHXcLuJ9Tlv+XNDgNeh+d
n8ABNXk+z0LirTEGCsdt7+VzkySJ8k/sVeK5pE/p3JHvhtYIfnRMS9phRrdsSSjPgrgg9yTx
aOoolPfK66LTfgwk8FnSeSedipJuaChLBxB/k3g6dRTxPdNkFv4tA0/S2Jf4dD/6gjijaXDL
GDMkW/APz2jKpyX9kZ5oU/BeeWaEg0xQkTjA6+SZ0DE1nWso1yZxl7DktbJiyhgzOCYlnspk
GflcnpNMwpCyi3uZ8i7un2siv5B4QlgQHziuiHNepcN+GvCW75C2Gc+R+EpYyECf5FvyHbxP
2nmEi3yWDOhz7bLSknxhKuu4Jq53Gljkfri2qdNT4hodkhK2ku7yPB8cVFN8YjWP/Ei61Eod
7Y3r4D6NMUNHLOfckHgg+dYURyX9Ts9KOvroeKODXTpTpR0n8Yg4yI90nE7pT95PnJLrImxl
ooMMnMpzlzQj30t6kAEMSQv3kyvkjfyNcJcOcX7He+SZW2uHlsTAK7uDSP7F4EDbtkPr42k1
sMRX8pCp7iF5uKRlnuuQSDXRVyQv5l54D/FG4gvpX+LCFL+o80meOYWvhLlMqpFwIh5Lpy/f
RTpjEhu7G8hEJ6lXEDZ0EE9pTvJfGUCTATG5XuKD5LW8V8pySetyz1LPkOfA2b7Uh2VQi+dC
/UvKijRN0foxSCor4qWskHoBME3IO+5EJPFiDBKNVfQy8UVeL5O3CMeRtgGA5xH9m13nMJsV
MIZJesdV+uQN0kaYBkH5t8Qt0j8DcuRpIYwdKaZnwWBGnudYrVZH8nl6xlMamPI6wpzwkP7U
qQ7Gyk5p62ltoNXYGp2ttWVgjPTB71mhPZvNBpqgjJFrkbxTJhdL2Sz1EgbcZAcxSReSr/Cd
Uo8l3skkOvJkm9jBnpd8mUF82gkSF4FRLslgGfcgg7G8J/p9y2GN0n6lXcPgFXUeGeym3Uuc
IeyJEzxfGVCS+oZcK4N1srsAYUi8IM1JvwSfJZPnJL8nbJmYJPcp5S1xRvIrnhsAHA6HAWZa
jx0q+C7GI+S5F0WBe/fuDQExqVMBGHwy0pbmOUpakrAnP5cJRYT9NPhIeUB9S8KU65C2V9z/
8fx659zQuYlr4hqmOodsqU9ZQZxg3EfyA+KHTLiJdNSAlf/3S7Ti/cRFJunItfAaYEyyk0kP
0RdTD/Jj1ne1Xq1WmM/nfbA7PqssyyOddaqDSb3gfjKMeFRV1aDTSDnJ50n5cjgchiC31AOJ
57S3+JnqMtPzkWcvdS7yVr6f/kHpo2GHQ7luPpP6GUcQsHCTuirXfzgcBp41TaInzpAGWbTE
a9jhgPq3tRbzPt7DgLrWeugAxDUppY66OMr9S91KdnKjPGCnAtIHZTt5H32a9OmlaYqiKLDZ
bI78A0xacs4dFfRQXtR1PSQH0D9KnZFyhHxJ+m7ZYYO4J/U46klVVR3puSGEAaco00k7lA3c
68gPxkQgypF9PzpB2jcSflHWJNDoE+1D7H6rlEEAsN/vhg7CfFdepP2z3MAbtDYo8uJopI+0
kbWJsUVtMmgYdD4gNQZZapFaC7hD7H4eg5oWtXdYLBc4O5vDdcDNl17EYjYDgo/z5Y0F7YT9
foe6qmL7f63QtR7WA6gqLE6WONRrvHT7Fpq2QdJ1SI2BbwPm80Vs820tlDGYFQts9zu4toMx
GqZvc9B1QOfGDEESdtd1yLM8GrFBwWgLhYD1Zo08K2FMgrZ1aAOQJAaHuoZWGm3bDQzcuTg/
3gcHYxRMkqI6HGBsP6fZxUCe62LXgSzPUG96hFZ01BdoO4fWtYCyaLsOQQU0bYST1pEQEpsg
OA+bWJjMwnaxpYoxCl3n4byD1gZ11SL4DgddYT6bo+urO4usAKDQNC3SougrSfssVB0TALyP
rUUDAjSOM1xJ/FFIehibIDEp9vUBs3IG39U944zz3T1ilVyaR+LpvEOW5+hcwGF/GBRj51ok
xqLtPDoX0LUdyrJAklhoncCHgLatelgXWK02SIxBkmrkedxHVVVIhmxqMvnYkcHaBG07zk0K
fSIHACRpOjAgIj4Jm1k+dV0PigIZ0Succy7EeeTeY78/oO47FpAx5GnMyqyrOia5qBgMdW0L
a1M0XYss1bh8/Sou7t5DMSux3W5iG/msNwRDiIFJrRBUZKyz2Qxt65DaFFohznP3vfFjMhTF
DEYF1FWDzscA46yIWZNJalG3LTwCDoctUmsxK2fYbNYwNoV3HQ5tA69oMAUc6jq21jYaWZqh
dtE4SmyG9XaD1rWYzWdomgppSNHBQxkNh5jI0LkGSWrRtS1m5QyHwxYhKKw2G6RpgaZtcXFx
F8tihje++c1IyxmazqPtavzKr/wqnnvuBZyWJUwaG1x0nYe2HnmWoaprWBMzQM9OT6G0jqMY
2hauVwzSNMVms0GWZtBBw1gTncAOeM1DD0fGF2IXgtRYtHULKB27qQSDs9PLSLMdAAUHD5tl
WO93cMHDdoB3HpvVFkoFpEmCGzdfRl4WOOwPgFYwpkRT11AKcMrDIWAxn2O93eLjv/VxNK7F
9rCD8x5ZVkBB4cEHHoQPHrfvXeAXfuHvY1cdoLXCfL7A+dl5FM51De8CPv8Hf4gPfOCvwIVY
3+zqDlevXI3GXPA4VIc4lsAHZGkGNAGNj5U+eVEguL4Fkfdo2g6/9msfRVoWuHnzFp74xtNI
bQqbGCQw6Loct27fw6997KNQSQYHi4uLFbKixMW927CZwc2XbgK+w2w+Q1nOEZSCj8wEL798
G0899QTSxGLdNPCIiTLr1RoBCnVfNW6SBOk8geoi33HOo64qbA51DORqjcPhgKbphpZ6uh8t
E5WJAGs1gIAsz7Dd7ZBqg6AUmq6LwW8V29doBJRFBnQtqi4mzwQo6MAgTZ+84B1msxLeOzz9
jWfwT//pr8IkGVRQcPst2t0Ob/rOt8E5j+CjTGzbFlV1QFvX0LB46smncOXyVfzQv/WDsWuF
d/BdDZMYHA573LlzB1maopgVcfSFNTg7XeI//7EfRZbnUMoAAWiaFm1bI7UJ6l0Fq4BXXbkc
xxuE2LcBsb8LoCx2uwpQsfVY49qYAKISHKo9qkOF09Nz3Lj5En72wz+Ht7/9LfhLf/kv4tve
+Dq0XYDrgM1mi1/8xX+Ax//4y2iqA4peGYRSeNUDr8L7vv99KGc57t69g9V6DaVit5HLl67i
ve99L6w1+OQn/0/cuf0yTk+/B29967fjwQdfjfO/+lex21V4/oUX0LY1Hv/q4/jC//MYLl+5
hHd8zzugjUKWJvDeQUPFzMW2jTw0SXCyPAMArNYrfPP5F3FvvcZrEKBU7ARSNTWUiXIJiB0h
tIkjGQDAK8ADMGmGWV6gbg6DIlbX9VEAmQ5yhLHa4KiVU4hJUIkdq2JlG1sqx1OHpAwi0RiT
I+tO2wAAIABJREFURpZ0/kqn4tTQkcaSNHb4bJm1DwCROnAUYGXQvG1bqN5hFmdOBag+M51B
Aunk6boOAXGkjDTebY8jdApR0eeaZABGOkVpmMos/xBitwHCUak4m0ohOhM653B6coLdbocQ
AhaLBeqmQRABKKVjdS+DtkCcAYkwBg+pfPM9I4wx6DraxO4HIcTOUNQjpIEqnebSeJR6xNSJ
xD1Lx7R08kg4SWNROmjv5xSUxjplonSEMCFyasjK97A6RQYYvB/nwstrZWCWvw9GsfiNn6mz
je8jLchArdYxw9b2wSg6AajjZ2k6dLSQyTGyopDwIU5yP/L9zrmYECnwko426oPsNiTpUSaO
um5soUnDn8Yz7+P7ZMBxoA+lEASuxHXFe6hnHsEFo/MnOr1iK8kBb3rcV0oNc934fqUUnMBZ
730/cmocmzXSqKw+jeOGoNRghMuWicBY0XfsDBuTfvj7NIAyddJKI5XfScchz0cpNSSo0riG
YqX3cYt76vPUt+MaIqtpmibONOyDbJL+ZIDCGBttPtJ0z2WMGavOJD1JXs018p3x2r7SvmkR
wqiLxwTImOhMuEh+IZ3zU94jHQ+0w6Y0LAMydB7KdfM3aTMRdyXt8xykc+h+gTziMXFAOqil
c4W0ej/+KnmnUn13H5Bnj8EDXksHjnTsyACSdBjKwKYM1AI4or1pEgDPe3q9dMxJOpA8hL/x
PGQQg+uQZzs4bO4jU+XzIM5EngH1l/6Lo+CGPFvnHKpeJ5JOL6XUwFPYjYV6i4Sf5HfT6mR+
ZABSBsHID8iXJe0DOKp6nfJjqT9FW31/pFfwIwN9xNmpE1j6Afid3J/Uo2SS5jRxSn4v9R9Z
hS8do1Kmy/UAOHIqy0CYDAZJXCO/kEE9iQ8StvK95KvUe0d6Pg7edp1DVPsi/+PepN4n1z9N
bItrTACMHSB49vJ6OtSljk16STNR+SlwUkUlbniOxBf5XQghjhbzftAPKQfpZOcajCGcvaCd
ca3WxkImyQvbrou2RP9p2xbO+5jkTpxmNzrvY4fJ/roB1wQsmjZ2xmOCDhPZhipI2pqC19d9
wNC5nmdoDe98TNIPIRZPyfPqnyllJ3Uunh3xVp6RlCVj8CNWPEZ8Oe50QjhJvJU0Bowyb9o2
Wgbax3frAZfIJzmP3nt/FAiS65U6i6RRiYf0KU/nZU/lGPckq/q891itVthsNoOtyfcRxtba
wU8ZbS8NrcaECClnCJ8sy4b9yfnYPBNrbexqC9k9KfpHiXuyvTxp3do4RkAGbWez2VAp6L0f
Egckj+ZefIgFHAwmAWOXJdJ513XD+2SwiZXNMpjP36SdFUI4qgLlxxiDpu3HCBv9iuptad9w
zay45ZlLucBzIs4Q96WuNfUBSPqnrcl7GaR1bhxZwQ/3J3m/xBP+4fNJ3wzktW07FC52E3tk
ajMSpzl2T8pb8mDqlkwoq/pkCtI7ny/tAJ4nbTDum/uTgTnScZQjum/Vrwb7u2ka1HU9JL1J
vUrKkizLkGXZ4MuXe5A8S+p+3nvsdrsjHY7PlXyG5yE7qEj7S8K4V70QwsgPKEMvLi5w9erV
no92iKOjq5HHhz+5kwnlDumFOpXUuUhnoz7yysQiJptIHWm73QKIuoWk46lNMe2SFPW+44RM
0gN5CHFIFrvwLI6Tt16ZoC11efI2qXPJvUo+QV1UvkMmNkq9iDKM/Ii8QvIe2hAywUn6Rihn
XG/Dk09JOTmfz9HUseK8cw5t0wAqFtU2TYOiKFAUxRHP5ZnJ5A7nxs55lD3EAcpn8gMJW5ms
LumWa5VBaKmHGWNh9JikVJZl9M2Ka5iUwrOg/2WxWBzplcRt2aWOMhXAMK6A+hMw2ghVVQ3X
yY5pxAcmV1HGEw7SZ+ucGwq76QOTdtZU1rObDNcu38nxHcaYodOf7DJC/JF4xnOgD5UJLEc8
XzQ/jHq7Q1fXSLMM2iYxTqUCAI26buA9+vhjis43cK4bOtsAsWA+SdjxJfoarDVwfuTPTdOg
rmrMlyW6rgYMeYmGsdH3aU1iYIzH5mKFFIAB8ORTT+Dy1QfgXEDVKxFBedg0MvLD4YDNZoNy
NkeSpDEArmNAZ9/WuHS2xHa1Q93W0DogzxL47oA8XcC7LgZvdHT8pmkG11k0IRrgBL50IkWl
l8ZdrOwk4jZdha71UDCDUetczH5s+yCntZFpGZvBs21KAJyLrd+dd0jyAl3bQWmDeVEOrS/K
soS2GZxfIQCo6j7jL82B0PSGQItAOPXB87o6DIhWty3qukW7bYf9Nc04BxBADK52PRPwLXaH
XWyH0zOFYlagFq0uOtehc6PyoxCdgYlOBgbKZ4+Gm8JiOcd2u8V8XkJrhbrxUMogSTNBLGP1
0OFwwHa7jYisASiP5ckJqqrCer0eiEdpBWig6VocDmuEgOGdSkemXzVdbPUcGCDwKJdRudE0
Qlyswq7rGj54FLN8ZOKpRVZEhqatQZrHLCjXORht0fkxs85Y27cZH5VDaTQHjMr3YraM12TR
eEptL3DbOLZAQyO1KcqsRNt1yGyGi4sVilk5dFfw3uPQHJCVscNC3jMhrl2pmNjS1A2SREOF
mJASFYkUnMvhXIv1OmbYleUMdc3qtBjkanvGlacZvPMw2qCuO8znJwg+oEGDTnVIirgOVq4p
KHgXUFV17KqQRzza7/ZRwWz6MRPBAfCwNkHT1NExoYGiLLFarXrHvYUHoGwa24CnKa5evY7c
pvjc738en/vcv8LFdoX1bgePgAeuXsN2vQaUQaykDOiaDvk8j/NQlMKVK1dw+84dLBYLhBBQ
9tnIdV0jNA3SPIfzHnlfueRDC6WBXbUbjOOT05M4nz646DTUGmgD0tTC2ohnrY8jAmzIoZzD
9evXcXFxAdUzVYQ4m7Io54AycU6lU9htd9BKIc/jfOWLzQoIQDabQTUNTs/OASg0XYu6abDZ
bmC1QVnOYZMMJ94hK3LUVeRXXedjAhETVKBR1xVCAE6WS6xWK3RdrIK3SgO+5w2ug7EJdO1h
lAZ8TJiBCkjzFPc2G/z2v/gd1E2Doiix2+0wm82QzTPUbYsqBGw3O/zSL/8jwCRQJkHbeczm
c2SJRV15/NT/+D9ht10Pyjc0sN3tofusawC4en4ZV87Ocef2HfyND/7N6FiIzAZlWSIrSxin
oF2Grz/1Dfydn/k5NMHh05//PK6+6iqKeYGucnA9Dxvbn8aKfgQDpXRMJlIWXvfB4wB8+fGv
4dbqHr7+9BP40pe/jNOzGYKOnTHyIkOSFqhaD11VqLYN2q6B1QpZUuBkNsczzz6Df/mpz+KT
/9fvAYidZWZ5ih94//vQqYCuawHE7gJ126J2bRxRoTSeefp5PHD5QcySAtrGhB4fcngH/M8/
//P46K//BhaLBb745a/ig3/jb+Fd734n/sIP/3mczmZQxg70mCUWzhfY7Xb42Q9/GF/6gz/A
9WvXcPv2y7BKQauANDHIigKhS7HfbGGM7hMpRiXYpgXqpkWSZCgLjxdeeB5vfOPrMCtKpMZA
a6AzFtWte/jMpz6DPM9x5co1ZFmObzzzLJbLJR556PX4M+99P171msvY79YwKkGWKFir8Oij
b8CHPvQh2CTBu7/33fjx/+q/wNNf+zrOZ0tYr3Hp7BJ+9Md+DBfbLbxrEVyL2y/fQppZWGVh
YWBMgvV6jRdeeB4PveEhKBXwwKuu48N/52dx6dLlmKS33+HGiy9gf6jhlYLVCkWeYTabIc1L
eBXlG52RSZLAu+P55U3bom09uvY4KxUhIOuTwphhLx0/WutBtkZZphFE8IKKKg0p6cyUTlPZ
kUYaOpwdJQM6vFcq0HwOn8HnSKeXDFjxndIAkJ/Ejs4TpY/bWXEcQECAsiZ2FNGxRVTX8ySb
xA5NUacZgwGyBbysnuff/Dd/azqHupd1ATGoR0Omc34wwrI8x3a/h7Gxq9C91Wo07PkOOjR8
n8jpfVSuw/Gs3sEBPJwPA4KEu468dHA2jAYBjT8aity7NLakI1w6SWjYSWeDDEYRf6bnK517
8hoawdLpQYOJa/N+bN0pAxi8Vxr81B+ls4BGvMzYl/dKZ6dSsdtKI6rG+ZFBAmgNK9ui0ThF
74Sms4oBO62hlYKlQS9gwP3LNmt8r8w6l/ouA/+S3rz38L1Rq1XEQ7lnwpjVTSEizFFGtWw7
TVqURrMMgqjhHR7GJAhwUFojtf09AYAHtEmG+5yPDrO4+L7FXRcTo5mwopRC35gG0Bx/0dN7
8Oj6RGD0yaqx606LPO876liNOFKLcHExWTKEIaBAOUXYKN2PChEfmYwxDYpJp9zwfei7t4iA
3eBkZiALgBFBL6U1uraFVWyjLHm3R1WNrdBJu+RTShsobeE80LkAY1PAuZjk7cdq/jjSjca6
gaETEApaWUD5frSbAYIWfEW29zR9UnbkMVpruC52INJaw+h+1rpGTCy0Fl0bHVNd6+FdH5zU
GloFeN8d0a7kITLoJZNRJL1IJ4qspCM/ZPDJ+dhpj/zDd+O8aX7ocJK0R1qRDlS5BlkVyDOR
fGQIugYF1wUYPe5BqdjlSiHalFOZQzlImpQOPelEmtKirAjmd5zFymcT1rxGXi/hKz908tDW
k4F8CXN5LrS1ZRBbBhMkXQFRJ9DGxLFIIpAwlbsDH1SxM5jtn0tel4sW+TxbGciRFC71DMkD
R5tWDbrY/eT//TotSDjKvY10dJzMRNjJZA/pMCS+sNJPdqeQzlr5HemewQzSD9fEYIQMMPFZ
MklJBsikHCdNyEpEKfsl/kkdkHqiTMQh3crkQeIG4auUOmqDLYNBkhYGmgOOngdo4XCOI/Ck
LGNilHSSOzfORE3TrPf3AMZYKBXgPYPygNbx/hDG8+CeGeRpXRd1PK2QZQVYCBI0ndfHyQ8u
BGhrhnavDJTHEX6xUEFrjXwWi1jqugZ8gDGRxyvFiuEG1ipRARqQJFl/3vH3PNdQygDQMGnk
IVErHukEiAnKug+I13UN5Qxs1hcu9LZ00MTp6He0NhYODcGFXufwCAgK6PqOXSH06c9KwaQJ
2j6w1vX2YGoMmq5PhNIcYxidwCaJZ131lXQegJskdpEfycRmfifphsGFEMbRMFNakElV1JFI
C1JH0FoPPlKpa05tmfh8D61tr5+1MIZ+zjEwO9h7Ar8l75V8j/Qv+ba0JafBQFYL8lomrbz0
0kuvoDk+nx06mEiolbDTgoI10bcbg6RjYIFwbdsW+/0+rssDXRuLpLQysUgLfXK2eB9loDzX
oiiGfcoK5MViccSHjbVQwcfupXYMyNq0h3Xrj/gKeaLkadKWZeWmlA1SPpJ2eF/slugRFGAS
i7odk3RpOyg9JiHK4D2AofpfVqXKADDhJP3u7IgrcUN2oZT/J94SH+Q9Em+OAj8Y9QPZyUsm
dkldijjAfd2+ffso8PgnfShbi6IYAlfyPOS7eP5yf9KWJw5G/jh20KDux78JkzwvBTzLnocY
JAmvC0OiIPmHUsBstoAxBrvdFlofj+UBMCTVyPVNbS1gHGcl9dJpUFfyFPIo2noMiIZwnKQe
fQajDOQ5EoYAcH5+PugLcS22l4NjlxUAqCriGEcj9L6VENuCh6DQtjHOxWBwCAHb7b7vVtMh
hONkSsJLVnhLXka8kPKfayLPZvCSCQjSn0C9gzgy+qVeaUswmJ4kCVar1RCsJr3J4LD0mdEX
J5N/pe+B75TXSH7GPTFQm+f5wHNkQH36CSEcJS5J343U34b4XN8xiHvVWg+jLtD2vkITk/Wj
jyOBDwr7QzUEsaUPiHslrZB2qcuST3IEiuQrUxsihDDYMdIG43XeewTf65hJPtoaHjDKIjjA
YewYQrnM/RIXZBIO8ZCwkuMVZOKtXCNlEZPhlsvl4PeX9iGv4+gA2mnTZBEmmrHTgVyX7PLH
v/k84jfPW9plLMggPgFj0r3UbSjfFosFyrLEyy+/PJyNUoBzHbwLKPISXdega+N4eqs12tYB
xiBJcwQTYzrB9sVfUFA6Qd10SDKDLE8B5dD5BkVWYrPdIc2LPgkvRq0610KZBICHsRpd1yBN
kihD6wOCUijms9gNO9HY1R2CUbBJlsFmCXZVhdTETPuynMEYg+XJCVQYZ6uNDM7g5OQEWZ/x
kNoERufwXQzmb7Zb+K7DrCyRmgCrFerWQeUB0EBZzrC7uA2ktleqMTBiCsgsy+6bASOV07Is
Y4Zk8EeIQSVHKTVkVQOjcz4SYDQEolHTt701bMcW29BvtxtkWYrV6jC0DCPy7/cHLJdLAOjb
WcjKMjsELiXxnJycHCEv902i5vwkaWCSCTE7c5rlJ41Ztn2Sgm9ahUaik+2btB7nkkkHbl3X
AxMg05VZPGwXxew9Kp1k9my1QyKlYjKbzYbsfWkUS8I9chD1H56jc26ALzN/pKMSQJznitFR
TzhK4+DIMSmUOmbrekTnGNdyEO+8ev3akBRxv3acPDsKL2a+WpsgTbNhj2R6FGLE3WiwNsO6
9vs9jDHD+7MsQyFmV63X6yHTjPAmLRVFMdDXtPXpYrFAnucxmaenJ6k00fHHwP92ux1mZJ0s
YxLIfr9HmiRo2gb37tyJjmIdDZOMrXz6s5B4LOmZ1Z7McB1HdBx3sZACWCqnbdehzLOYnew9
tAYSbVAUOTjrmXxlvV4PCtxmsxkE69A+L43BSvIOow2880j6pBQq76T1uq5hbdKfSw4ohf12
B1uWwzlDKRwOFQ77AzKRhU3j1zmPs9MzVFV1VDEphSMFqVRYqEixrc/Ao5rokL18+TLu3bs3
ZHkvltHgy7MUeRk7pWz3/Zn7Duv1BteuXUFiE6zWa6y392KGY+NwvjhBU8UgnfMBdVPj/MoV
1HWF7X6H5XIJ1zlst1ts1htoZXA6W6AoZ/j0Zz8bux+kCb7++NdwdnaC5fx0wFfJu+M+YgcI
ZzSarq+I6Ry2uz3+3t//B9juN3jhpZtI0xTf+vqHULsABI0sK/CVx7+O/+ADfwVNV6NpOszK
Ga6cn8O3LS7W9/Du93wv/v3/8AN48eYNdJ3DdrNDc9hhsZihQwyeROMkxyaJVesICloluHHj
Jn77t/93zIocaWagrYZ3Adv1Dk898SSuXb2CzXqNxWyO3/vdT+HRR1+P/WaLPEmhezwI0FBQ
UN7jsNniya9/HTdv3oR3Di+9dDuevfPwXQergF19gLUGXedg7ZgNPJvNBgXUewdtYwDi9u07
0bBwAVpbWGNRzkpcunQJ9+5c9EqPx2I+R9d1KIscr3vkYSSlwaXLZ8iSDGVeQiuPs/M5styi
cx3+9J9+D65cuYYvffFL+I2PfQxv++63441v/nZcu34Zl9xZ5FXe49ve8Lp+ZI/Fv/rc/40v
PPYF1HWNT3/2M3jjW96INCvw4APX8S2veW2sVukTjr79rW9CcB20MTgcNvDBwTuHcj7rRy94
KBN54dWrV1EdDkPLuug46CuIe+VNOq34oUxpmgbaGHR9cF73xoU0QuiUolEjDQ6pYPN6OYpG
GroyAEJ5S54ms95lljfvIV1LozfLskFWS4NXVk8zE1U61kMIR47oruti5yFjoi7XNLGrCmLs
Me5rdBZwvTLQSkWaclnqD9RDjBlb4Um+LR3Ico/kw9QHZDCdTgvKqNEA1UNgVzojZXIC9Y2p
IyC+10GLamgahny+ETgls4C5L+mo5308R/42DcbzDORzp84q4ouEKZ8xOML7+9hijWsmHGSm
8jRQKnUm6bTlnomHcg2E5XSslIQz7yP+S2eRUgrZfUYCUEcbDEfvj/TJafCG18lgnXTg8l1y
3dw/k4CoB8g1G2NwOBxii/QJnUsZJfGdf+RZEs/k+UsnjMRxyU8Ie74vScaZ4NLpMtXrpX1G
HjXQnHtlNxGeNYDodBW4TjzmPsgTZOWz5H1Sj+fnFd8JnKaDWz5LtiiWjnBZ8TTFUTnjmDxI
ron8xQtcSpJYySl5Ns/SGIvWjeMtZJCZH7m2+9EI90DbCMBgS9GZw/OXeHLkFDPRQcrvpjyY
+5XJZtJJK2WQ5P9TPngUtA/hCM7co2zNzf3TsU+eJ3+XuMV10YGbpnGEGu8JPnbz4X2Sv8T1
dVHuq7EqTNIpcYD3Svks/y9hJh1wPFeeB3GBdCkdpfe7n7yfFaxTeSsDtJLOiSvS/qPNTJtB
BhSUisH8qeyQCWMSX8lnJB+Q58FnT52a0QF1XJUveR6AI5kjYSHlVhC4JOlRnjPl4VQO8d+S
lgg34o30m3DtMilGJklOYS/PnVU7MrAgz13Sg/fjmKYBVuE4sYTynD4RabNy7wxWEH5DkK2n
S9436k/HiW1TmJCXktfIgKvsDkK4SB4QebAGWwkTL6a2Jo9GwpP4FztZJsP75Ixc4pe145nL
ClnyL2vtURcgzjqW+COdw1KGEpZTecJreM5dM8rOkd9HPOAZTfmIDF7y3ZKeJQ+gfjatROdc
b9LRVFfnOU7pARjbRXMfhL9slz0NaHo/tneXfJ4OdQkDvpcwlnKOPJvvpbyL98cijhDC4COU
wXQ+d6onE79kYIL8gmuQznZ+JP+S9EfYkC65Fq6dfk4+W9IRMCZPk35J+6Q94h+TuPm9PH9J
j1wbdRkWJ+l+NC7lOHGFHwkn+W5e0zYx+VD6GqVOTfyXcKYdxX1prYfqRvIMQOiNSUzYJ5xZ
bSl5FHlGxLNj+c7r5Pukv0zeQ7yRHRyMMX2C/yhn+Jkm+1EHkWdE3SJJkqOOBqzIlAlrEt4M
Ekock2dMGEs7gfCfdt2TfuupLiyTHqb+Yr5X2rfTM+XfUztAwlTeK21x8knapFOdPYSA7XY7
8Ai+j9XD9ANLGyPer470lbIskWUZVqvVEBzjel796lfDOYevfe1rODk5GVqBx3GHI+wkr5N6
BvfBdZPOJC+Q5yl5iKQ16cuRuoG16cBPeUY8O75bwpYyXvJf+jTIR+hD5/3U7yQvJX4TB7l+
4rvkwxKfCKspP5JFsNKnlSTJIDeIq1J/lLxR4onkn3FNFsCIb1wPgIGeiW8somUAnHZ3CGGw
iZRSA94xGZXrYyIPYUJY8+ypT/C8t9vtK5IbCCeembQViQPEeak3y30RznmeY7/fw/vYYeLk
5GRI0prP54PMITyVoBXyAD6XzyY8iBfSl0R+K/UO8lWOCZX6AM98qu9zv20b2+mXZTl0Son6
SRwpwWu4RuLMzZs3Bx+PtJuZcEWaYuKC/FCeJUkydOWQuK+UwuFwGJ5PGUleWxTFsFbpLyN/
GmzJXuZlWYbFYjHEKpVSR+MvmMgn7S4mtyilhhEUtOu895jNZgN+k3YZM+X4HNkJQymFJE2G
7lN5UcAYBd95tF0cc+2dA0IscFBaoett8OB8Pz7eAy5A6YAsS7Hb7dB1DrrrkGU5qt0OneNZ
9x15+vuqQxMLlfMCOrPYVgdkOEXou8TbJINVymJxOsfJ2Sns4RZu3bqN17/hQTgPKB+QZ+Mc
WudiOxkyZmMtlFaom5jdUtX7WGWXZdjtfWxB71to9G0mEaBNzDDM8xLoNqgP1cAwych5+NJZ
OXUscA4EACzmJ8P3DBpK5wwJjIqQZHg0TJwbDZk0tdAaiLOHHZxrsd/Xffua0QCTzqqpoJk6
K2TmiWTe0hFDJZbZS5wjxYArCVtWLrItDmdjSCetVMioSJHwifRkMJx9TEZDhux9bCFDIyiE
MctIBtBlgHa/36MoiqNWijQMjTGD84dryrIMu90OWZYNTInOJ66P+2UiRFVVOBxiAgafTbjz
w6oyGTzl+yh8pOFDA/BwOMCHgCSN2TNJzwRa10EZDa2AzW6Lus9GIsNi1ql0vHHtRVEMDnMy
z7quoa3Bvr+HysTusB/OiHhE44YCiMyMWXs0CpgkQAdJ143zzwAMCSvS4UH8owCcGr8MsBFX
KUh5NsSToiyxWCxwcecuFqcnfQZxVJAX8/mAp3R+0gnhnMN6vca8z0Rmm6srV64MZymd0hSE
NCDSNDLGzWYz0NWUyRO/NpvNoGAwsEYBQSOdik/XxXYr1losFgtorQfBT6FDWA2Cu6fN5XKJ
zXodk6SyLI7rCB5Xr17B+mI14LJsvUUaknTONUkngXTuM1Flt9vh7OzsyKin8sluCl3Xxbb0
/b6rqoE1gG+7OL5FpSjyHJvNFnUVz/z69Qew2+2wXJxgu9nDmhTBAdWhgYdC2zkobXF+dhnW
Wtxa3cJyuRzg2rgOeZJC6QjDk7NT+BCw3++x3WyRJvlRa3ZpiDkf4JoWrXeoqxaZTZCVBbxz
uHTpOkyaI08z5NkcTXWI41oQWxPtmz0KU+D8tESZltjvNpjPZ9jubuB73/O9eP0bXodXf8uD
iC0FNRQCUmuR5FlfpapwfnYCV9XQagzIfOOpJ/HPfvVXcOn8FEoF+NDBO8DVDmW5xCOPvA65
TeG6FteuXsPHf/Pj+PTvfgrlrIDRBkUxQzmbwdoEdVPjxo1b2G93eMO3vhG3bt3CY489hh//
4Adxb7XGvYsLHA6HPmBQD3KGeExHBx1nSilok+KJJ7+BO7fvoShLBNMHbeoGvot4lZkMViWo
qzV2+w2effYZFFmKclbAwyMxMXtRKY/EaszKDF1noEPA9WvX8fxzz+B/+aVfwr978Zfw1u94
K9KibyMbi01jq2wAJknwt3/6p/Dcc8/hZD7Hpz79u7hY38WP/Ht/Gf/6n/o3YgeSLEOAj5U/
vfL2+5/7HD7ykY/gyaeewGseeBBpmkMZ21dWOiiDWI3Z1kjTWFXUdS2ajkarOXK4yr+JZ87H
SpokTeFDgHcOwfdtun2snqFiKw0IPkcaW5Tn5FPkjeTJUt+gPkADQ/JAaWQxqEHeQv5NB44x
cfSBDNSFEAZ8kYFFaeBSpyKfDQCsNtBKoRPOiNCfY6ySUkdOVvlMKtzSmTA1cnwY21gTNjKo
C4wVGDLpQbb6k8EIPks6KYI/nhdKGNBwp77GvchAQfw9VpVQ9+H6ZNBHttKU+MRnyAB6wXnK
AAAgAElEQVQjP1L/GJ2z/hWORO5zGtSQBtJUf5Efyi/p7J0GSqWDWBqHlDl0iElHHWFBZ/xw
j9Rh9PFMbu6HcKbeI2mRSZU8T8pnqUtLA5xwJu4Qx+4XTBtoFMdJpfLZrNwiTcvn0oksYSwd
vdPglQzKTh1W0sHGj9yPdABKPVeeQwg4OhviJPUx3i8do5JmZLBEBkiOYTUmmVCvmc6NJLfj
uqS+PXXQTZ1V04/ETann09FFfJVOD66VupHEdZnYLW0gyW+pQ/PMZQBI6rNcl3yvDHiSx/A3
rlnCVTpqpk4owonXy+rjgd/4AGMmozLE/v//Ei8k/CUvlokbWuuh7fSg83bjzHPyZimf+Fza
F3w318f/T2lAPo88mLZOiHM5jhyQEtaqr3rlbzLZQfJG6fyW+CWr+KQ9Jc9H4ptMSpOOeInj
U7kv75d0OST+TvCdPJK4wH9PndbSEUl85ju5b+KO1PuZBMZ/E6+stbE1af+RMnSQr4J3Sz+D
DApyjUwulM+T65M8WxY08PmkCxkIlfrFFMbSmU6bVgax5drkv6WzUNKe5LmEN+eo06bmvinn
6I8ivOjX4Xc8iykfkXCR76Q/RbaonuqBkpdO5Rn5Bc9f0qUMOvBZMgg26hrHrfgpQ2RxxpAY
3/uUpoEL+eHvrKKKsBvbl5PGKD+ttWi7NrbM1WNLYal7kefxD+EjgyhTOBO/Br5kIoyYdCB9
WsRDfrgOBsySJM7utalFURaD7OD5kj8Tr6dBKSmrpYySdgLxn/slH5J+pNFOTodrZYJlvLeF
98dBD4mHko9PR7ZIXJrySIkjSmlYOxYJkafzWVJe8UNbhXuQ+pJM/JR0w0AWgMHHKXUwJtNJ
+qAvmXrcdKY398V1ez8mbUg/I+Eu7QziSFmWA27wmXGc5/Gsd9KrDBpTBslZ65JPSzpkYKVL
4ihE6mKyqlXaG0qpwS8tqx5ZtSnPWMrmGHiPthoTdhjUoD1mtEGtqsHnwDOXQTvuj8Ve01Fj
0+CXlGFRDz3md1O+InVdBsDkb8RBOfZV2tdyvIPUWel3J95P7T+ZyDKV5YTP4LcSdMz/T/VH
ycf5HBnYkpXy08Q0mQwraUUmMw9+IT8mOJDOJJ+UzyI+kBakP1LGKviJz49dOaQso3yW47bq
uh78qfO+6IQyNcr09khXJx1LepEwkLQidSzuXdqOSo1FoHL/0r6VdMOzIH5LnwLtPdKWfI7U
PynX5NnJGecSZ+VZcF/ECRnklgkcMmlTroF4JnFMds1ie/RB/w7HXRkiHvghnjGFccSXFoA+
ghvXSl5M+Ub+TdwivXHv5BNS9ko/C+EjRxZJGSr1Rd5DW1AmXxN/+D7iCPGNhY9Sr5UykDTC
4kjG6GRnDMbFpC5qjIYTslyePc+a98nzJv+hbqiUGpJzpvz04uLiqIuLhLOMm/L8iddyLV03
2mtN0wzw4PNlYRJ1OMKeBYuUu8STpmmGwlznYgHp+fn5QIPEKeraDKbzDEiHhAdhIdfID/G9
rmusVis89NBDwzkvl8sBp8YOw68cW8h18r2Er0wuJ+1LuU/8Y9Jg0zSAjmNZvffIinzgjUZb
ZHkGoxRs0ttUPkBBwyiD0MUug3VdIytmSDKNzWaFLM1ivMYm2O8PiKNLzZCwYRMLH0b7WqnY
ZXV/qBDSHFAGzvfy0CSotltYbRI8f+sFdBqodnsYY/HiizfxwAMPovEem83miKFIYGzWa9RN
hbZrccgOSGGRGo26aoYWjwYeKsREAGiFssxw+coSd248i2p3QKKA2bw4yrxdLpdDRSOBRmFA
BmmMGZQtVg1T4JDI6bxKswTr9aoPLufY7cfsR5vE1tJkJmSwMhOFSmYIYUA+KhMjkxqZpFRq
GNgik6GRxyC2VBiGgFnT4NKlS8MaT09PAWBQxojs04pz7p3XkBCZScXzY4D48uXLuHv3Luq6
xna7HRgCq+qp2GVZhvl8fiSApVLE9zOYThhdXFwMSvHhcBgYhjGvzIKVyQmEHwmM/ybTIfHG
gKUalHten2UZXBsZLmdY8b0UVjK4QqbPwHSs+HLwPZx1iC2Qh4psFefOlbMZsjTFarUaMk0l
c5DChY4gwj/iXoTvYrEYFHSlFK5duzbAyxr9igwlaajKOSVkZDLjaapE0eCgEcFkBeI6YUDG
vl6vB/zZbDaDEkjlmwwy75NVlFKwicV6uwEQxxTM5/MBv0i3+/1+SERpmgbn5+eo++DP4XDA
lStXjgQu90G4EgeoaFprkdrRQUU4UyCcnp5Ca43VajXgHjtXUKEgXpOJSyNiPp8PSSuXLl0a
rjXGDEZOhEkVk5vSbEi06LoO2hr41uPGjRsosnxQTmTGOXltUcR28ExcYNIRlQoqH+TJVA4O
h8MQ6GenEsKBvIgZbDZN0VQV6iZmViI4bLY7aBPbNSdZjsQmcB7wQaGuW6jQO3hdwGK5xKHa
DzS8Wq1QFAVOTk7QNA222y2arkVqYgvGoAClDO7evYiBReeQZ8WwPvJI8ngAsZLXpvAujnUI
WsUAfwjQPuD85BJUAFZ3NzBWIc1ypEmGqurHVfgOcB6bzQpWaVzcu4ez01P84J/7QTRdg5KG
I2KbZfLNj330o/jQT34Ixnlcv3IN8OOIhYcffhgPPPgAzs9OcNjvsDhZ4PbN27DzBEmS4bnn
nkOR5+jaFmmaYzbLUdcHcMTHSy/d7uWcGYz5PC9wd7VGuVyi6Ry++rUn0HQt8jyFUgFGAWVR
oHNjIJgZnFQW5/M5WueQpQkuVhf4wAf+4xjMDKHPqnUoihKniyXaxsFoE0eLzHI8/eST+ME/
92dRzkskNrY9ThMLaw1MYgGlsV5t8PLLdzFfnuFbXvsw7t67g49+7Dfx6c98BteuXcP52SnO
lieYzxaYlQUuLi7w+Fcexzwv8NoHX41DvYeDwWN/9EVUVYcbN15CWZYoihzKaCirkNgUu0OF
my+9hJs3byLRCZ5/9jn889/+P/DOd70LF9st/vAPHkPJbiLCWL18+TKgFW7fvo00SxF8OAp2
0UFLhZcK8ZBx/QoD55XZs+Q9MrgiHRXk9+RV0jinLKVOQx4mk+JIz1MHrHyOdJpi4liUzmhp
wNDopeOaSVJZlsG4PvFBqcGBwY9N+pnj7TTbfzTu+OG7uQ4ZoALGQCG/n/JaKvmnp6dDIpSU
9zKwxLOXiaGsVqS+Na2epCzk39JRboyBdw5dN1b1Ub8hn5V7lwYs+Th1V66TBg5nvvE3rp8O
cBlYkroj1y2dTTR+iRsSPkzQ5HV8rkzwk4FIvof7mSahck0yiEbclEawDIYQz6VeLB39Umfs
ROCYziZp1MuOS1yzdC7LtVPfknAxxgzBau6fejzXJJ3aMsDGdxKvZGBt6hDnnvmbXBthKPFP
4og0gHkP75cOBzrbZcBBBoVkAqvEFz5f65iYJR1TUz5otcVeVFlQ9+HvWqyZMJfGsuTH0iEj
9+wF/ZBuZZWHnP/M/UveG//gaN3k/7R9iI808qUtRtnJpEraApKWu7ZDIvgN+Snfw2CnPCfJ
G/l/wkU6Zumg4JmRLqQtNPCjcDyrlo5Ja+1RtwIZYJqeAddFe1M6PbyPs7CPnH5aH52ldLZx
7dL5Jm1a2ovSbpMOOukMlU5whOO5oNKGjt/HkQD8TeIt/027SCYtTWlOyg1Jb9MAI/cicVzC
TPIdyYsknZPOJG+UgVhpO7FiR/XyN3YRHPmRpCcjeCjhKW12rlm2/uXauS/Sm8RhqbdwJAv1
Iok/lK28nzQldRQp06T8ZRBomnAucVzaYdNqN3mf5D2kARmokLKaFT2kc9LXlIdwnev1evBx
yWCdTPTiOwAMNrtcD/W/aZBb8kW5//Pz86ErH3kvz0fS8hEvFc5+KbMkX5rqrfSLyb3E71oU
RTncL4MQUU8aeY4s8hhpCsN3Up+jfT2bzeBcd0RD1Fv4DGvtYNtJ3VH6PaYJB4SLxB3+XwYO
yAcRgODGwB71MMmTiGuygo12Vp7nMIk5Olept0n9lOuX+hb3I2mDeObcWOHG36nPyYSO+Jyx
UyJ5jHxHXIcZ9smPTKYlHhVFMfgweObStpnqy/LDc6FzXXbFIGylvcOzmdoKAAZ5zLMiXGnn
hnDcklfqRkOHxp5ud7vdAHfaVny25DeyYyhxipWmkhfJFsFFP3aS66ZeSp8xnyeDXkxqJt3x
rMj7qXfYZLQHee4savI+wBp7lFDOs+a/pa9TrpFJO/TP0mcgcSGEmLmvcNwdhLZQ27boMHZN
lbYlcffk5AQhhMG+JB+RHUe5XpnkJnUOYzTgR9kk9Q/ez72ygy0Th6c+XWCsXKeNRpwkzZPe
poE5aePx7KX+I30AwOhrl7YMeQfPgHJKymoZVJJ6nNSbiGPkSaR9SVPcm0x+I55wrbILFumA
dGStxXK5HHgv4yfSTpK2Dr9LEoMss0d8tKoqLJfLI36otcaNGzcGXYQFDJRx0r5USg2Vu/SF
Sv7KRA3ugbxK2oryHAddU6ybcJOwH/Qsc5zoyN+knrLZbAa4k0YII2MMzs7OsN/vB595mqZD
MaRz7qjKWdqsxEFpS0s+xPgEA8bE57IsB1++5KnkoaRH6smStxNWI72PtqhMqKAcinw4Gfgu
n0cfjyz65EfujbErqTPyt2lQmjYhaYP6iVw37UgWvvAdi8ViOHe+n8ko0i5IkmSAHfmH1Osk
z5K8j/KTBdHkA4QB8YjJDexKQpokPiplht+kvk88kP4j6eOjvJEJ0RKPuDfSC2OO5Es8/xh8
H5NYeQ/P++zsDKvVatgbYVpVseh7sVgMvHRaDMtYotYa8/l84EHUoVgUW5ZxRDELaIvexyvP
n2fDwk25l5OTk6GT8mw2w7179wYbaLPZYL1e4/z8/IgfyaQVaSsyhkF4y5gk4xOyow2fw3uy
PIuj4ON0nyHOm2UpEmOx3eyRmQSzosB8MYPScYQpoLHbHaBDn7DTOXT7BmU56zvNn8AHINQV
NpstjAbCIOPGBN3WOfjgkRVxJHDrPZQJMFohSwzQ+5PM+/7Ln/wfbn7jZXz183+IuT5gt3oB
p8sZjLXQSqGqxkyMsiyHw2+aBt45WBuDofPZHFZrlGmGw2qF+SzDo4++Dm/6tkcwW56jCRpI
5vjmjZfx1a99Hc88+QRO5ymMdoAalVYqSxQEeZ5juVweHRoJbzB8VAwodl13lClDIRjnesUD
rpsxYEli894hzzPUTRVb/8MjzzNYa+C9Q5JaAGO2IRnrkYC1Y/CVBEjDhdm7ZOQU+mQAdP4Q
uYl0zE6WzEUSOBm2VFKoVJPJkCmTUdAoJYOjIsJAOplGmqZDe3cSCgXLdrsd1kOEo1ClcOMa
5DWs7CdcpGOFe6FBIY1D/ptMjcFQwlYagjQMnHPI0mxggHKNdAbwUxTFoBxT4BF/qOzZHt5a
KBz3a6XKd8znczgXA9lyXsngeNMa1hi03cgEeUaEdZwXduxQlUo1BcHU6cXzowOFyREUYADG
xJjeocPMK+IE4S3bqvI6CmHCraoq3L59G+eXLuH09BR1U48OXDr8zVhtKQ0u4gDPkh/ugXgk
nY6kb+mcSdMUbVMP+yPMpNJNAUs8HgJ/QukjvLTWR7QnlUp51jTUBseYc0iTZJjbBxXn86ZJ
iuD62cZaY7FYDAKOigwTIaRQlL+Trvb7/VF24HSv0tlLOJGWhj1othuKc2hCCFA6zr42fft4
oxVc1yJNE8EHAxA8mjoa4sHH1kZMKnDODf/P0gxGaxilhy4acZIWAKVi9ppwiJGvksfGnjgB
iR0rIAMCyqyAVgpZkqKta5jEQuvo8NdGAyoghB7ffZyNs1jEbOOup4Onn34azzz9DJ55+ht4
9tln8fxzz+Opp76Bx77wR/jM730a1y9fgfIBi/kcr33oYewPO3zx//0jfOITn+xnLwOriw00
NBLD+V3o+ahG5+J7O+cwm8+x31coZ3McDjXazsHaFHmaR3AGADaB0gab3R7Lk0WPox5ZlmJ/
OKBpx3Z6NEY2m80gw4g7u/0WSisslidQQeF0eRqVmbaB1gYqKKCfY9b5KPsun59BKcAoDRUU
UmuhQswe1DDoGoem6nB+dgmt96ibFsYmyIsSWmnsNjscdgfcfPFFPPvss3j88a/izu3b2P5/
fL15ky3Ldd23MqvqjN333vceHgYOkAVCpEAABEBCFG2FZFkK27IUDn0QW57CAx122PBnksOi
TQsCgwRBEARIgwMCBC0pRGEi3sOduvsMNaT/yPplrcrb9Ino6O5z6lRl7tzD2kPufH2nh4ez
NtvNvP6dnr94qb4f9Yff/EP9we//gX7rt35TX/vq7+q3v/zb+spXfke/8aXf0O99/Rv60Ac+
pOE8qFHUn/3Zd/Q7v/M7+tKXvqR/+93v6u1nuXr0MicgS5BhtmsxNkrT2jaic3ASCKRvNpui
292mQmOXJ/RvnaTwAHqdaECveFILLAAIlpa2b1k0wspeeQKJe+ZgzaKPPBhcz8Ff7sCDPzw4
5nqZyv62XVql1bs+4EccNg9M8fc4LbuWsN1uY93BojIZHQs9oJljBfR4ShnYekDMgxoeBPQx
g2vyOKNiXMbjO44YK/LnGAxbzjg9UMta1IFr/57bbg86OB+4k+a60pNtji98TTxA4XbLA1ge
2HXerZO63CuEUJLiXMN9CWZ4YIXvH4/H4nRCo3qOBBpjyOfMc63T2e8PNvCjcrh33/dzF5e4
khvvAAEtwZgEKsHsntR1fO9r6bzp8sY1jyWd+Nxp6GP3oHLbvanH+O0BN18/1yUh5G4mPN+D
bOWZCqsknuOG+YErecB59/F4Ut3ngS5QWIoTPAhHkZaPzTGZB+Pbdim0eOxz+M+7n7hP5hjJ
W1SWYOam02iJT/Q993L58yRtHbDxQk0P6npg0vFjofP8yuu3JI3RP44F/YdnOW0cszqfFd0r
FfymlDTOgbzYNKUzDkVxLguMgf/dZ3J+R0Zdz+ObLXMO4nxwDxaXnY0pHwvgPOXJXvwUD5TD
D/6/j8vXk8Cw0w4/0wOH8PljyTHuBV+5DDEu90Ncf7v+JLnFdb6jfxjmbkVpvauUe3tROPbL
8SLBTT+3urYT2DxspY9NWpL9dWFdnRSsbaLrSuZOrINnOh0dZ7mNQsewDl4I4zaE57pOcJmt
x+o8UnfxqO/puga+Yz2wRcQkwI10j4PWXmzg8sqaOibi/n9ZsVHN126/SRAwPteDbm+6bmlL
7zbU6RVjo1ywzNnrjXJXjqUQ1Lt60MZ3iWetd+5DC+fjYXxzh6ljES8IZX1d76IfXf/AR7nQ
SIphfSQT8uz0ZtzwGrv5Qgga01J85NjAdZwnJ+DhOmHhAXr/DmOr8eVjvgD8V9Mqy0W3oonj
wJpG3NNfLmtOQ3R4pv2iz3hPktnqZSc/egyfwJPPvsasR11kQhEP4/fYB2vhmIdx8IxaPtym
ghXRucRI4Qe+R4Eb61rrOZ7pz0gpKc27ox0LEeukC0XTLjsQPRnKmjVNo02XdV3ZuGbzc0xX
43VeyJbHvBhvxuVadQMCK7v+buKShHI7in+CziFh5UlRfBRsDXNxfoeP3Id03myapmzWQjax
m/Aqc/X/6zgzY2LtfD0df8Jf3JMx9n1fCmZc9l23euGJyxtrSjLO1wk949iQOAXz4BrG5J3g
SJiztiSvzuez7u/vS1t0t/vMGf3qcul+I3PyOD87/10WYszHw7rvTXzUix7hrcNhv7JLPn9o
wNr7b0+U83J94c+6v78verz2QZCXtl0XWTlucBzjvp7bMxLayBPy67v06SaELnQ/qY4beREO
48GuOjZz/e/xfefvuj16iX1Vsa7ML+dCf/ct3NfJ9n/xrdy/YVwely42WEtRLP/jP3i7fte9
bkMpooBOyIUfH8JvaAQf1Hb5MZvHenH97e2tXrx4UeZBnhE+pxONlPNIFEQseihoGJaNHk4n
ePHu7r7YHZ7tc4FX9/u93nnnnVLwxM53xuoxONaG9vX4EDEux6ThX6Ar+v5aEu/M/TQfrQqe
xS7udruSJPeiAffffX0pPnbMAe+5T1vHU2r/jh/v0sD6s0bkJ+Hnw+FQckaM0fVAjXuxXYxx
yROvN5gQd3nrrbdKzjp3vb8vR6nma9HvSV3bqb/02natfv4TP6e/8fnPaUxXddu9klp985vf
0rf++Nu69hcpTuq6Vrv9bqZVzJsI2ybnRFI+DqCJcclnBs05kCDFoDFJ/SSNqdHNs6f67Of/
hvZvvauX92c1/8l//b984fd++w/03r/8N9qn19o1F93ebOcE/0Vtu4BurzrMjNpqu+nUzotz
PZ+VhlGbKCn1+vSnP6FP/OzHdHzrXV0VpPaof/3n39O3v/1t/cX3vqtdGxRDrix2oOkBQzc4
DvQBYtkpyACXyhIU7RLoiOrajV6/vtMwjNp0W/X9oHGYNA7rljEY11It1c3jmtZVuyivJYEY
1HXtKvHGvTDwrtxdAeOoUwXK2L36Hgc+hKUdPwFPr+hjLq7YYsxVN14pxrUkwj2p7jvXURgo
C2haJyLcSKKcUQqsG8LHbncqFf1e0uI8oES5B6CY5Cw7hr39EwHcNC6AkvcINrhT7AqAdePV
Nm0OjoWgGHOysYn5vO40rdujeecE6EVlFOAM5YkRa9t2TrguhhEajmNu4d/aWsIfJEg8YMLL
A7yPtc+JcakSpAMBjjXHSwDSHYwhayR/uIYuA03TaHfY6zIrQc4s2c0t78/zNTg77oikNLcR
nvkYJ893RwKWGIc7rYCraVwqkx0UURXmQMXb2DiodIDgjqYHH7zABT1EMAHdsNvvNYxDMSZK
0t7Oz3r16lUxkux4ZWx1wAyegJ9xhPmuO7eZjx+v7kSGm6bJR1jMMqYkdV2r/THzxeF4o8vl
rJCWRAk6Psaoy/WqGKI27UbXaz7vsYmNTg+50q5tOg39oBDn1stKatpWfY/O2Wm7zVWBMSxz
Rt8VZyxl45dBSlAMs5FLKcvhBPgd5nE0yu6rtV8fex1uj7q7e52LYFLSV7/2Nf3zX/+ifvcr
v6uvfOUr+p3f+aq+/Fu/rS9+8Yv6ype/rJc/fq771/d6cnOry7nXr//fv67//Z/+U/2zf/Zr
ev/9H2u7zUn7aUza74/qL1cNw6g4t+I5nc9qN502252GadSLly91vva6vz+pH0cdjjcKcbZb
SZpC1DAN+UgDJU3DpJyMnIsImlbDMCpNy5nt7txSLDGOubrwcDioCY2mMbeAvFwuGsZBUsi7
uadFP9zcHmfgvVXbbZZrQtTl2msYk+7uT3ry5JnGIF2HXlOQNtt9rnAfc6v8oDnxlfLuzGlK
SorabXYKMSeXxpT0gQ98UH0/6uF81Ttvv62uaXNBx/6g/jIoNp1Skq6XsewKvL29VdN1atuN
guauNpdLKbBC1sdpBo/j9EbwBB3Z9712s50rlc3D+hwpTxC7Y+5BitqRd55Db9QBSL8HdrJ2
8h5LgtX2nGscH6W07DL3gLo7gK7PGZM76L4zSJKGaVQIUdO44B0Psrnz7HarDl4qxBUecAxS
ByDBQg76/Tluz7xNHwVCHlgHX3mCzB0jfuc1iwphnbhw7OPBdw8QeGDUnQTHn3zua+D048Vz
oeU0LR153B5xH0+KgGsoJPX18ACF34uxEojhPW/dhlMJJitHC8R1opvn1fjQE2PQtm3bsiu/
li9Pyj0W4PCAA9d7kMGv2djOGn+W/3jAih0B/lzXH+5/FJ1TBQd5+Q5i5uw6gDXw+7uT6xgg
xPVYwSIuxwT80Af4HsWnseQCcgDWzffOCV/nPR+D0pvnHDMGl0kPcOSvWTDWfKCafrWO4z6u
U/I1SwcDdIXjpnq3TK1fPGmA7mNOhd5az8l5ivHW/In/hR7n5UEstxMEJd1Hct8hhlzoWAch
nTbIEwEJ/DPmW/O+2yEvjCmFErYmYD5o6EEif8/1KDaLz+vddIzD13ucppKQ4zoPkDVNVDJM
x8sDhayhJ/IYl9+3DjrVdszp611UWGtsJEE61gz6e3FWve51MNWLxHhhpzw54c9XpXddjrxb
QT1unv8YBvD3i34IS0tsx0W1Dqx53AtmoKvziPMgfxf/T1rJFnT152PzsevM3cfjNHCec3vt
cgi9PSnmn8GrjgvquXMNL3SB09p1L/5pHdNy+0ci0uUFTMR1rudd33sxBzqxjqe4jqCFvNsy
5kFQOsw8UdPbxy6pxHRc3xZ90jYrGqAnodNuv1slcKE3zyaBgY4lqOx4p9alrsfHcVQMcbVW
jKVO0nmQl/sV31zr5EY9Xu4hrWNp8Avy6EVvyIJvgHDc9Riueky3ZZ7JZ8D6c+s4Rk0XL6qB
/912kNQAT2ZaL513eAYJAcaFviT54MlNnl8/Gxn2z+Art5HuO7lOw4+CplzvL2QDvez86PeB
pshsXdzF/65j681IaVofSwJ9iWeN41gwXo1L/YVdPJ1O5XhU51lfa9e5rv8cvzH3gslt/M7D
2IGUls1P8IzH5YiFscmmTu7UPgifOSYj7uPrht4nibvZbPT06dMSB6XbpW+aYm7M2/0Dt3s1
PWqcXdOM77tu8GIK14c1Bq5trvMNPOnXYv/Y0VrLjxeRoK+8Cwbj2u12OhwOZUNYHRtxXfQY
RnLc4HTCLgzD0rV4mqbSydY3CsC/8BpzzDLRi1bzdTzB7V+tz5xuzuvYTmR4hW3suev55EI2
PvPOAtwLXqxxWf1+kZX4ZhGq279pmkoOgzWBz5Af37jIOrif6HqC+UNfzymg5x3ngkf9fkuM
vymFBv4s9CCdZaZp2SzncuDxCXa+N83SJRdbSgcFj/uy3r5WPkfsi3cfgW7gDXSNrx204/4e
x4O/fQMuXYycPhR1QIfdbrc6tskLUsqzTJ9gZyhayPNfzotHp3I/NuGmlPT8+fOCe9AlzKP2
FxiLd4iATuhsxzT5ecsOe+4Bbdq2LUUB/LgeZNw8n/fZKU8nEfdXeQZFUI4vmIdePMMAACAA
SURBVJMX/3iRseeB0GnIF7yGHLOhkDV2GYBvHEMSc+MedAOChxi/tN6syHjGMbfhjyHOxXIz
Vuj73E15GLXbbPTJn/85ff6XP6d+uCi2naax1e99/Q/0ta9/Q/1w1fG4z2cHKKm/9iXuNqVJ
A7mocR07DgoapknjNG/mVNDlOmkKjT700z+pz37+b6i9earTtVfzj//7/+0L3/7DP9MPv/Ov
NLz4njbhLKWLNtuNxmHQ9XIp7ZHYGQxDSEn9nFhIadLN4ShNk+I4aLeJ+vBPvKvPffrntX/2
AfUpKLV7/cV7P9Y3/+iP9N73f6jUD2qapHEaikLoutxGisXlByPOC0bJDLcIz/39vfb7fWnP
5BVBLB6VnYvjNRu8plOMjcZhDhrlkzBFZZuPAwHd7Xba7/d6ffdKuWrqsjICVNIAfv18E4w9
TIYhZzEPh0NxHqR8XjvMResLQI4bIZwlCgu4P0Ho3IZtEXwM5m63U4yxtNlBkBFib5fvCn6a
lqrOruvKLmBPFIQQSjtfT+CjYHHioE+MsbTuJMHvzso05bb/OBwAlmIYLLnvSgpFzXp663oc
CQ/WpJQTjUoLeHFwhZLGafMKXIwaAATHa6U4Q9DQD9puNlJKmuZkWhMbbTdbsevFq7RQou7A
ObBwoA+PYTThe+aCwaU1jAeomQMK2ZM/XdeVdlvDMJQjDE7ncwnmxbBU9zvNXYZZt3Ec9fru
rsiIAzOfgzu9DjCaplm1pkUGoAu6xcFFHZiiessNidPB1xG6YZihqbcZezg9lPFtt1sFqQAq
+Bq673Y7vX79uowTw+/GCgeHMfA3Bgze3Gw6DcOyc8mDbIDOZPdUiOqHQeOYnb6h7zX016KD
MbY4GzHGfD6ccqo9xKBpJFAQZ37dFDARQtAwUqUHoA9q45K44Xwep3GMQePY63w+SSnocDgU
vXU4bBWU9HDKDuB2s9FuLooKIek6g4bd4aDLpddmu1PbtTpfrrq5udVHPvwTeuvZ24pNq1FJ
T54+1dOnz6SUtN/t9M7b7+hyuirEVrc3t3r67C29++4H9WTeRX++9Doeb9S1G50e7pW7xCQ1
XaekWfa2W7148VJPnz3Tze2tNtvdCqDs9we1TZPbBPVDOcM9jdNcXNTofDmp22yENSIw4pWe
x+NRm00+L2kac/vA+/sHdW3mo6Zt1W026jY5uX/pLxrTqKZrdZmLd8Zp0mXslULSNEkhtkqK
Ck2nlILO14uGcdTh5ka7/WEuRpA6Ot40uVigazZqNxuNU1DfjxrGXB0emkYpBA3XQbu5cOBy
uer1w73attPl0ksKuStCt1OMraYUtNvtNUxJr2YnIYOxs6aRXa9JXZdt3Pl8zTSMUdP0ZvV+
0+Sq0KZZzi4dh0z3oe+VtDhl6FW3X/w4+GM9+UF23cHFLvq1deCF9z3ghh5Ev/E8bFyISyET
43Zn0INwC9ZZEuDTNOmw3+t8OmUamb5PQYo4YFoHSbzQ0HUk8+Q67jWldRKYl4/VHYh6Hp44
xabikJSitMt5ZR+yHlzOI+aedZvU4uDEKC8ccmfd7bnvDKwTI9KC6bCNHvDygAzjQSc7D/n9
PCDKte74ESigTdtjgTbWwfGeB0Y9EcoalKCk2VTsraSyC5X3uI718hawrJFfx99gIsblmITu
Au5ss15emOCYwBPGSkty0At6ahsOfzifQUNknbWDph78g1drXcD/dTDReZlnIFPwBvfL/1e7
+NNyvqcHmByr+LOaJhc4+XyhSeEtk3He8zVxjOxBMcdP0ND9NMdqnsT3Zzg9nY518iOv7/IM
1t7X1p/pOg++BEM5bl7pm5QUw6K70DPSUgzkRQPQnvecph7AQs587dBjdfAthKDYrJN+LmvM
mXF5Fzq/N2NyOjhv+m4ygiwe8GYVfWyOJctY43pXZy2rLkO1DQgKYlekB3j5P8ZGCuskscud
8wbjRp587Ky386rPgWJsAorOm/7dOpDvvqXHK9yOOa/xOWvn8gH/sHbuu7ZtW+woMoz9czzC
evrzGLvrCfjYYxrgetbP+cHjAbz4e1mr9f8pLe3+feMAsusy4fOCLnUQ2/W+F2K7rLuNdNzn
uI77M17oVRfWevyDuNFjLbydxrX9JejqgWefI3YSOris+howHmkJgvo93UZDNw/mO02RCU/2
+LidF/FlXRacbo6LoQNzqIOiTbPEexxbxBg1pknXeU1X2HFa2rmP41i68hDfwgfGzwaDO45A
b3dtp2lcHwlSY0TnnxBC2bhTdGm7JEBcn/ByOeB+Nc9Ba8drzut1bMp5mXjn3D9vJVPLPEaR
/A9hCWbjO/jZ5ikt55Vzje/QQ5f55qRMiyW57UleT0gvRyFeVsl19JnHrNz2Fx/EsLHrTdbN
z0p2e4t+cZzuiSlpKZCkkIidg85T0NvXzPV9reNd3zJ+fg/DUvTl+oDru25dMOjym+m0xHGI
MYF/iSd5ksd1Oi+fB3PjJ9M1JwzgY7dNcY6B8gyXx6bJST2KPFgjj//WPoLLjK93jLH4tdB4
GHILbzAn97+/v1/hHGjCywsIkB+KJmrfzmniCTb0pONr1gj6+2+e6zrb7Qhj5Nnuk/nYGR/z
ZbPGknBffHCO7nCeqbEgG73cd4R3/Cgg7GAd43A/AJ5afND8bHxrugN5HMR52+00tOq6daFI
TSuPWTgOdpuDL+mb8HiGx8vgafTIYjeWjgj4pOgIl3nnYx8Lts1jP/jSKS1HATpu2e12JZ5f
jw/bzSYH/mb9Hec7H/FM5kYXBnjEaeZFSczLjxBgXl5AOI6LD+n+rndbg79YSy8IhK93u90q
icv3HGPBM9hx1qTWv27vXQ+TmyGBi4w7H/u6ul1ErpgHRS3e9p+kNvfBl4K2Oaa+zguQ7Mb2
bDZL56Wbmxudz+eS++KeXMt8PG6w8qccq8R18XGNT91XCyHTA6zghdzgR6c1HaIdg8YYS5Ee
Pin4ljWHxjc3N6t4gfNSHVNxfVBjOnjL/8fnYP3xbb14VFp3WXG6gE+dr/gOuVbG1DTNqlCj
bfOG4aHPPLPpch5903VqYlQacyegtmn0qU//dX32c5/R6XyvptuoH4J+//e/qW9969tqmrzh
uB8vSpqLOkJQ0zU6nU+zn5Y3RU7TpAYsHfLmzEuf+S6FKMVO+8MTHW5v9Pm/+Svq263G2Kj5
x//t//qFP/rGt3X6wXO1l/fVTA/a73KLgibE3Ma77CxcziqZuUFtbNRtsiBfTmcNl6u2TdDQ
n/RTP/1h/dLnfkGHZx9Qn6Li5qDrIH3pS7+p18/v1KSgcTxrs10qOkIIev/998uis5AO/B1Y
9n2vD7zzbjEQJJZZ5Fw5k888DiHOfxPAapVSPhYAYUbZAATdseVz2uGjjDwYwhxQKDAnoAmh
RbGhwKhaRJiGYSiCA1jhf/7mTHPuWwcuoAnnbkBHpzVK2B0hB3cOKqnsRMARaJ4HaGA3eAhh
dUYWimZptbuuWPJqwWmaSlUVn7kDwTgpZDidTuW8xGy8rwpazkECNMcYy1kg3Bej7M61B134
G/pBQ+6H0qzPkvEgjhss6MwawdPsoIf+GegtTiTKludwDwfWbduWVjSAAl9zV8DSctYayjrG
WMbBGrpixiHGcDCm29tb7fb57JHz+axpnLSduxRsScpqAbWu0FNKpd2Yjxel7KChBo7w3el0
0mG/K8Ez1nhd5LPwPZVx3N+NpK8bPMmaekAO/nXQwRpfr1dttltr7T/qermuWsc5iH54eCjd
IxxEuLPDeAEz7hSzTtkINiu+5eVdUXKL67xDO2hpA9v3S4HPbndYnJIUdH/3UJK+4zRpTJNC
26hp8hnOsWnK8Q5RQZqT8HmcHpRe5Iv15Aww5GCaJk1pVApJm26jJjYahjG3tFHStb9mvZ3m
YwFS1DgOSsoJgmlK2my35W/0a9ttdDqd9XA6a9PlzgVJ0uU8f95EjdOou9evlRS13R11vVzV
xFbX/qqH81k3N7dqmzYX6sSoaRzzCQUK87ylpu30/P3nevr0mU7nk5oY1HYzSEvw86SgNBde
5IT/0PeaxlFNyM52Mwda0rRO7ngAT8rteY+Hg169epnP+5nluomNTteLklIu2EhZDjO/zs55
iGpiKzVRN7e3mkZpSknna68Q2QWebVi33ep6HXR3d6fr5aIgaRguGtOklCZtuq0UG/XDpKZp
tWk3CjGqn+U6TZNevnqpoZ9K0UkJ0jStut1B/TBmoJQmtdvt3JI6A522CQohV1Wi57JN6dXP
Nik2+bzvxxxVD0RLS0KIXQ+1Ayatd/JgExy0olOkBSCjo1x3uT1Bxi6Xy6ogjHs9FnTifexs
0hJo92BJrVtDWM5e93u5PnNwHsx5aptW47Ak4XiOt+BkzP48dJKkVRKpdqh9PCUQPC47h70i
nnt4wAVdu9/vS7LXA6Jua3z8XFN2zW06TZ44rtbB9avjRHei3SnxwDD84wGMurWy2yYPXjiu
5JmO8TzR5M696wrnK3eAcV54DuvCNT5PxjlNUykK8etqu+48D75azaly7MGKOGxt20phSSh4
0IVxgZMdW3LPtm1nHZJWayCpBHb85cEmaMnausxCu3o9kCOni/O3O7TgRg90IC9+j+JD2JEU
7tBzf/BLXQDE2JSkzhJ9zgdLIGqN85A9x13Q3O/NPFxmWMNQrZ+q50Iz10WuR/1Zi0ytd/u2
bbs6J5kx+NEOYFTno1pHlXULoeBUeMLvxXigketd5xmfI/MiuYg+8+s92Jix2JJY5H7c0wtO
Pbnn9sYTLc6PnlxGdmo6sIYcUVUHYop8NUuLRfcroBuBe+5RY/h8L5Vgoq/hYm8GNU0sOpG1
I1lD+13nR18Xf5YHe5fgXNal7icyTudp7un3gsfpBFDvtGJ9PFCPP13rDH+u69KCv21tFgz/
+M76x7oKEEwERyL30KuOR7gv5L6N8yG2ynEH43C6wWv+XTAP17sN8cCvryl0dSwnLUkHH78H
TmvdxfPo5HA8HvXkyZOSIAFbeHzD8RvjqO2Q6zPmi5wwNy8GSGk58x28znXuA0IT5kY8yX1X
16HwE7rBcUTZ0NCsdzBlX3B9nBXr6u+xfjXPsaY1bnHedblyPZjHOxZcgT1Bz0B71x3IgbcN
Z0xe1OjyNA5LES3jQe68wIH7ItvEa8ZxVD/2RrN1IR//kwRl/L4uTi/4gnX19ffNUNx3mqbS
thtdztpw77yuS6I5pVT8JPjUMURdxII8efKE61iLzOtLu2/G4HLuMVPm7Lv4fP09ieOy5TJe
sGdc2o87LR27oFe8q47rErdn0N+TULyHnWSsXOdzcNzpMUKPOcUQS4G638vpFOOyo9UxUbHL
KR+94RjBN3QQI0a/kCDysTJG1txl0nXBkhBaeKLYhbhskgIboyMul4sul4sOh0OhA7J8OBze
+I7Lc/FB0rrgwOOmbgdCCKXttct8jgUsnWzdD/PvOhbxH48rMg73UXiP2Cf6zfG76wWnH8/m
b49tgmn8Grc9TiN/lss/Mu8y7lj19vZWIeROpL6GtV71eKi0JIZdBzCGRRcssQXWjGs8JlKv
Udu22u12evXqlUIIq9yKxwfho9on9Xisv3xe8I7HMOA/xpBS3rjkfjPjrzdhuu6l/bgfFYMt
AV9AN9fx2JYYo169erXiOWgEHmUdvCgrxiWPwZhcnhlHjLF0heOezAu/ifHxP77mNE3FV/U1
lJI2m+0bz+OF3K/0l5bNrS4Tjj9reffrwJrwMp+ht0nyuu50fVjjEMeoHjPjb7DMte8Lr7LO
niB2/8/HCK1zt9buDXt1Op203W7nM+7PK93LMyj+8+cMQ968SwcUp4/rH+jz5MmTVUcy8re1
nyHljjLQxPOP4zgW3vN143nQ3gv6XC7dDtV4kmJE6F/7Dr7hGJuCbLImzpv4eMgfx8ZjWz12
w/cd1/rma8csYHQvuuB5foQRa9h1rYZ+1HDttdtu86azkH3dGKKCpM9+9lP61Gc+pfvTndp2
o/M16Rvf+H/0rW/9qfr+qidPb7TZbtQ0Cy8NQ6+kuZPQlNQ0c4xhGJXGSQpBKQa1m402+43u
7096/XDV/vhMb737jn75b/17usZWg6Ka//S/+Z+/8PVv/LGe/6sfKj28p04PasOgw26jl69e
KwXperkWQFsMUIxq2059nwc1TpOGy6D9ZqOQBo3XB/3iZz+pj3/sY3ry7ruaYpTarYYp6jd+
48v6wff+QnevXyhNVx2O+xXDeOuNaZpK1c7hcCiCTjVSNvBLi6nNZlPOQl4AIK0XWHASANN8
j53aNirEoNhE5fOio5SShrHXnNlRjEGXkkiZlDRJKel0PklKJYHqLY+cZgg4QowCceCC0ZTW
7UHHMVejAXj4n5YXtfN9e3urcRxLOw1oCXjd7/e5nXLT6Pnz5+W5XHs6nfT222+vGB1H1pUL
YMOVzmJQlx1wbvgYA84tBgYaefUzyqUOjpDURZHBD7zHPRWCmq5VCMqJrxi0ndvLpTmx3nRz
27cY1bStLperrv1VEgADoLoEuxknSo91BCQ5oHIHnfH6mmGQMX7H47FU+/X9tRhreJ95egCH
973C2RW0G0TWmbVA+fGb1jzQFGNI0JGxrgITw6C+H7RpOwlwGNfnI05pbuAJIAih7NBuZ5lx
BxU+Op/PCpK2FJpIOlMZJ5VzS1OSLperpKDNJre/axraPiXls0Vj+XEHPAOE3HJ8mkY1Ta6E
TnOCfOXMxaWIA/6MMZaOIoXXQ1B/7bWdr6MNsQPnOjDknUHcOee5vpa0YEaO1oUzW43joBBk
unAoei+f4WjnVW7a+Z47NY1XDuYd6JfLRVPKidXYZN1PW9hm3r1VdljMgOzh4UFpUt7hHhv1
16vapi1n4fSzYd/tdmXcH/zgB4tR3u12upwvmibpcLiZW9VmZzqzjzmoISfKSyHEzA+acgcK
Jc4knlthtq0Upcv1qk3XqZvBb9dt9TM/83Fd+0GXa6/QZD6dNGlMudpuHMZyHAhdUhSiYtPk
YgdJp4cHPXvrmYahV3/NCf2gvLOKI2TatitFEcjFcta1tNluFGOjaVyqPnHCPUgZQtD5dNbh
eNQ4TtputtpsckFXaHJL/2lKCikXA+SddrnCPk3T3HXhoq7NLQov5/OcUN3Oej9fh9N2PZ8U
UtJ+u5E0nwk/pdxqKESd5/MD89lDmgsysjMbm2ZuxbQpICnGXLjWzLsu0pTUtrMNHEeFlMrZ
wwRB2mZ9PjVAepr1MDanDiRRzOP60ZM6bZPb67qec+fAu3E8lmT1AIV/hm3ged5ODcDo+oWX
62/XPW2bk/KjpHFKGsekQuwplaNpGis+a9tu1uc4n3v1wygpKDbIzlxUMvN5SOtEN05wGVMI
Ck3euRVC5m8F5W5Qc8EJLS3nw6WLXoqNt2Jc74x3Jy8nQEPBXUGS5krlYZzPRE9TbpMt5bas
TaOkbF8mJTVxwRK1Y8LcODZCYdn1Oo3jPKcgifWKatpu3v2e5bUfBinkzhUc6dG2na5zoWk/
B7dL4G/mvzTTtjFZHsb17pOBoMc8rrZbumL1Qz4LmmS6wpu7azzogiPpTm/NY45Z699SbmO3
2Nx592LIbcLDrGubGI3v2oIJ2mYpzKmDHfUuySktQXIPvDHecRxLgh/9Mg5DHhsBwxAKbRVC
aW0/mV6gwMlxSZFXm7cHWJag7Xrn+GMBOj7H3rMGRdbDjM9nfBqCFCL6I82+y3pXDPdz2ayD
eKxbiFn2UpLGaSz/N23u3gYfo4PeDAy8eb79aEHuKaVcsNasd+G4/iu0Zu3neUzjqA1dWMbc
raEEAOC1sr65A06+Zi46CXF+Tyu610HCaPepeYr1ISDWdW1pr94PWb+03VKclY9DUeGNEIJi
25T29NM0alLS+XzJRUUp661pyphmGMfZn8w8mottozRX8WcZVt6lqpwYS9KsB5qZPycNM+bq
2o1CbHS99vM8lXXPtVfTtOqHsQTrFHK75s1mO+MMdteTqMm7SjO/pVlPtcW+xyZf27TZbkth
Ltxt59nnexScH6LCfD541v5SE9ul08Q816ZpFJtG45Q7BbVdmxkgZGw5jpNSyt1ohjHjc81H
FA3jqClJSfB+M48zy69CUNPmjkDo2xDnonoLNjnfeFAPPX21DiXTNJVOTf0wZJwyP2sYcjch
96s8iOdy4YGrpFxUiw7l7zTTbR1c6kqAzmXTbbMnYDzZHPHN8P2wd7Pst00zd7tL0uy34EPM
Eyp6CN8P2YbHvCDFcQM6zHdn+045XtDMfWePjSC3HucpNqFZ71ZGV3pwlPFDOzYZkDD3IGGt
W912uc5zPMqchjTNrTqT0qwzaN2pEGaen5bC3NhkPaCUcUuXi+Bi2xSZSznylOeZJsW5+1aa
7zcMcxvxmI9z6VqOSAizPzzv8g1BKQVlf3mzwrtg3b7vc/wkZiwfYtCUksY0SZr/nkb149z+
vM28Fdssy0DSEEM+eizkuTVNns+kmS4hf9cD/47LobdvpPEuTJ7oKjaqSvY2TaOm6zJ/DhkX
puxQaLvbZhlrorrtRv2Qi4mbtlU/9Fn3okuaVrmzHUWHWb+hdyk4X7BlmK1ZKNdmf9n0svF/
32f/93g86nA4ahgyds/xmK38mAb0iCfGliRx9sdYezqsZHkYlYuuclwgxqbEOjKuIBGW/VRk
OYtvUJrtmeMb53+3qa5P8YVcThmT4w7ijXS0Ame5nt5utxr6nHykW08TG8Ww3hABNmwtPuBx
Sv52v5DNZU3TaOgzdu/a+fi9pNy6d7cv+nCYsSjtsLuWoqgl+QG2rf2+rEPHsnYxxLmLpebi
+nH2e9adL+F59Bw6i9iib8ziBU1dTkrCql0S3fhJ9UavccpSo7DEX6Y0xwb6pWOCx3SJJyOD
nthzjMn4FJZ4AX78OI76yEc+or7vSzEL1/gxFtzfu4VSxAHt4AnPM3iS31/wHzQkTuX+mSep
veOZJ6i8IM+/wzhXR9hVMQrG8ezZs6L/sFfckzXyOC88cnt7q+v1qrffflsf/ehHy9yzvm6V
grTf73S+XNS0jXb7vU7nuVgwZJ02jGP2o2Zsm1LSMGO1pmkLJgmz7cc2exGUb6Ja+1CL/XZ9
77zucu9xFucfj6OyVu7zco2vMfyRd9DmvE/mzaSmyet0Pp9mHiM31Cil7AN0XatpGle+E/d1
vYX+804lWdevj5JKaRTJ99w5lcKTpOPxUDbJKWTsO45jPjorxoIlmjkOiY9WYu/zTzMXgTp2
YZ3y3MEE2zlHle3AkndoZmg4+45Sie0PllAt2G22m/jcSdI4x0u8aAQcRDFC2zbqOrob5hxO
Pp4xzF1f2rn4YtJbbz0zngpzwpTEbc7h9f1Vi4ufZjpPRXfGGKQZbRf8Ng7abjrtdls1LT7k
fAx5ExWj8vtTRmzjvElKIWOLtmuKzz3NWJC1ik32L2nhnjFXKzrwNg2FaZuV7+8xHHKhLhvo
JzZp9n1fiqW9QzXxlmw/lk2S2EXXcRyl4mvL8xasthTckTvJ2JyC4mWn/eVyzbHtKWMQj4+6
baMjsCf+69yf4w4KzSStjopiQyvP8KNR3UZ6vsX1y8Ija58l89e4GjNxhOxnLh0E8U+7Tae2
ifrsZz6lT/zCJ3U+ndU2G93dnfR7X/sDffs731E+dmM7+5VB2+1u9rejpmGOP8zbDacpY4O2
zd3hLn2vfpzUxk5tu9UYOjXtVh/9mY/pF3/lV/R6GNUrqvlH/9X/9IWvf+Nb+vG//IEur76n
Znyt4fqgcRh08+RWbZdbZZ3mc3y6OVGSUtLQDzqfL4pN1H6/UxdbjderhstJN5tGf+Wnf0I/
93M/q6cf/pBC7DQ1G/WD9Gu/9i/0/McvNVwvupzudDjm9hqn00k3Nzc6Ho8lqUp7+7ZdWvLV
DHI+X0prqfP5XFoELYGodSVysrOk+/6qfug1TlSaLdU37jyHkJlpv9+XRAwANAPhdVUqoA7H
83g8Fsbynd8wEcFPB8ZUleRE0bIbnqqgXDV0ErvaSdSGEEoVO9VlVNgBliTp5uZGT58+1fPn
z8sY3Plq21b39/erjgX8TeCRgCbKABDDaz/v+uaZ9ZzdqXMA5uMAIPnuSN+9TzscALwLNS24
u67TdXYYh2GYg3FLoJkdmFKufPYAIwLdtuuWjA4mPTCMMmB8nvinxVqtMKDNm+8t77OOKHTW
gLHUO0g9OeiKjPc8aMyLBJ8XMPj4uQZwh4JGVqB/adFeAS1/IZ+98RIAqQSAZ365Xq8arfCB
YJNXVHrRjSf2POAGn9BuyXfELjR682xLDJUbQFr5MA/Ob5KWoLUktU1TjkAAnMJ3fN/BMwBR
WircvRDAjQzOCZ/D36e5lTc8mgujupVsI3MOvFlDqs0cdHubnDSNOTg9Zh3VmBM5DIMeTid5
UMnb0YUQShviGGPpMLHdbvWZz3xGH/vYx/TixQudzxdtNls1zQJCoGEMsTiKMtCDPLRtW3by
Ml9Jenh4mPl3ae3ltuXm5ka3t090vfa6f7ifA7+p8IvrK+ePMAO6zTbzFOdCIoceDPGCm2ma
dHd/L9pJEXgA5E9TLn6jpZDvhOFYl5RysPx8Pq9auA2mYwjm8d3rXPRAwUrXZXp515e8dkvA
Nc4B4SZGdTM4p2paCjrsDyVIXfQQca9ZlnFaa4BFG/H8fk4ODbOc4Ajke0RtZjDsgCylpH62
Pb5OblNc1rzgLoQg10xuB9FzzMd1Za3P/H0PSmLbvS0i98EBXuufdRWyBxHWwbZcyNG1uaCm
bVv1wzAniwiELkFJD47XgVNoW/7W2qZ5MNYDcZ6YIBgjowv633HSyvYoF2WxJoutXezcZQ5K
LM7rzAtxnSzAyVUIxQmFfkEq51WyRq7LpdyJg5cHNBf7l48z4TtgAWhXdFPMyVFwHrhscea6
1XxJFJU5mKPDbjiSVp5YZS2wJzXugJbuVHnAD/sDfvj/C674DoS64MV3ZOD+UwAAIABJREFU
CjmW8TE1c0Kpxhr1ePkuvOMJI3/FEMoxP8g44ytzyOCpfB+6OVZy+XPd7sU4PlYPyHliyn/Q
99Cf9ed97G1Kacbn0DJ3T4mFTuvWoDwL/YGe5eVy5WPkvZwMerMdcr5/LAUyjhn9txerSioF
FtCnbZYdER5443kebJ+Zy+aaC22KPg7LLubCP3Niq+jLtPBnSrnAB76RVHwf7uXBDsfEzI3x
EVxA1xacNtO5yM1crDEZn05pwcq13acIapyWXUfco052LbIbVwHWPPclEdqZLSQAgw2cUl3E
sfgR/bxjy3mG7y68lPWav+B/2hjnZGmvj3/844ox6vnzFyVxQAcq6DtNubVqUtXSePbRQlzv
Vnf7zLMcm09THjNJOJJVru9mc6CUluPF4Pu2zUnNpLUfUeu32hZIy5E42IHtHGRCZ2c71a6C
n8FkdLG5lhAwmS5zqHRyCMuucmiETiEmAL09+VP71UU/VPOLYW03eIaU8ZgHyhw3uU9PoNlj
MHzP1xPd5PbO1x95BIPxnmMWguduP912PabfJRXsDMYrvqgluxgvn3vhgWMLt5F8loPDzbyZ
ZLHrBXNo8VM2m42ufe4U5/fg/ugk7ot8DxXN/G8SASEGhbQkiNwuMS7fxeQ+IzsBZYVOvv4U
XFJ46MUDax2WdR66sdDB1mRK0woruC9X5GNaum5BRy9GhbdYb/4n4E3gHd272+20mXf2j3YP
vusFXyHm4tNSkDks7WNdnuHZZS3CarcjusXlINNsKRhY4idTOdccfVfwpSVNoJnjT5eVrtsY
ZlgKj12fMSa/9zSlckxh123U98vu975feAZ7yGul0wwjeXtkeC+EpSsZ79edbLxjADvc0eVN
bPPeLDDjOM06YY4XGP6BtsQbwOB1AQJ8VsZpSYraJ+BItK7tVmvrMaVaxxS7l5ZYYYndTejL
JRbFc2rauT5ZsIFKLKGO36Cj3L6s7d0aTzoWQ4Y8zt3M+u16vWpENpt1S3v4gw4axId9Hp6I
z7Wda9vBd2g17bxGMtz5zem0YI91DNPlNuOZpejcj5dcOneu15Yx49OzcYf1dtwJv6AbkFPi
PW3b6unTpyue8M56vpsY+fDChfoHGfQ48jDkbqjvv/9+8f+zrZntwiN6xItbk5L6oS9+6JSW
OEGaljbuyDI86P5+0ywtslkjkpDQgTF7vKWWJb4L1kGWwQLkOdDTfO7fPxxyV1PsK9cu2Iiu
AEtxYN9fZ322bLx0HOu6zzGW4xHHa8j9ekPFmi/BJMj3te/VWR4MzOg6F7rxPN9klrvyLvzJ
56x98e1mmWfDWKaNFTKlJU5T4yvu03ZdKax3X7hg4oo23g3qfDopBOJd48p36/trOVqaIq1M
06X4yO0zeh554yjlZUzr7kyONYjjTmnS+XzW8Xgo8ug5nPUarAsW3faA6RlXtmEcZ7IcS0rc
dZpGDcPSnc1zbdiSOnbG/JumKR0C/EgO8rj44nkNl/uBE2ubyDPwVeFZbMo4Lhssl7zpwr9Z
RnOukqLlZUPtInOOjYjR+yZUdMvity7FNsgxOoXNz8fjcaULHEt6LITOzO7DS0uHCcbgtpHN
i9kXvq74qOu6XAAwzJv2pikfwdtE/cKnPqlPfPrndT6dtWk2ev7yTl/72u/rT7/zHR0PB53P
D7P9yvjx9et74Ze3bavYNPNxy7moNKUpb4SSdLn2iiFqGCaFdqdhkn7i3/mr+twv/7Iepkn3
117NP/ovfvULf/iHf6bXf/6+wuk9bcNFT54edTje6MWLl+r7LFzbTW5LxjlLOLexaXQ6P2ga
Jw3nXvvNRvu20fnVC/3kRz6oz372s3r2wQ8rxUZT7HQdo/7Fl76sH/3wubabTjc3W7Xt4nQd
j0e9evVqZSwg6M3NTTFMXv3iO1UfEzoUEsofwAAjoGDqQBrC6S8MGkrycDisqvTcsLtxobiB
ggZXssXxjku1Nd/FwMGAl8ulnBcCc7pjgTAwTwwxxpJzg/q+1+vXr1cOnys1hAzQgJLHcFHV
5wkpP7Mb+uOgoegdOHoCwquMXPk6TVFODvIwFl744LsKmBuf+TECTjM3XFIOLo+zEuR+XjnN
uKEzhsWDNx50dmPsBtP/R0l6YGOaMp/7WWpSbuPYdV0BqjiYDjyc3k5/dw6hpzv9DlygEbR3
p5M1AtB5dwA+d57yteM9d17r9eP62khyX09OScsZ13Xwmp8Yl1afyDAJc3i3BLpm2UFW3Gli
bHWLmMeMM5974qw2sg6QnSZc77zmsooT4E64g1Hox9/cb5gDv4yNZ3pwy6tRna7wQBPzjjvX
MQRU0FXMCeCG/izgcJZ5Orpcr1d985vf1KtXr0rRF8cbuG6GHzMfrc/tgha1swZIQWewNhhu
+OjVq1f67ne/W/iU77re475exOHzocCKuZ3P57JO2DN4EjojQ4wROrr98gIqnkvHB8bAfN/Y
oa2luAbaQHNsFLrseDyW+fkOAF/LEHLXAy8wcnnkOfCFAyZvy8SYcBoBU777imNOPAjE8zxp
yX3cxnCtr7HbFnjUZc0DD9AOXnD9UQexPJhR66c6WOP6yYOezKskhm0M/oxljOuioKZp1LSN
Dsdj2UGObnQnl+c6yIXX27YtINj1Ctc7gL72fd7tZYEV9ITvuHgjaBSXJHZK6+5GbrsJ1OGc
OG857dwJYCyOpziOBL73osU8trUN9PkswZvFnnvLR9YFTOG61HnC5+64z7Gg4wu+72s+TVOp
6Hb+YdyuJ/0FX/FsdAM/PNudO8cszKGWcWTD6cA8vcCGtUNnutMPb0HrQv+KFlzPZ97C2sfh
c052Ty9gcAzo82Ls/jxfG5dFp78/07GO8xH6y+1yfm+9U5+XFwlxL+dZ/5v5c1/mVbCT6Qxf
4zKXedcf4/N71rRlTWpZGYf1+YO+Ls6bznMeTAUL+1n08Az4mwS/62y/Fwlu6OJJfXjfCztc
J8Hj8Cs84skb7KEnOxmP39f9GMdkzMm7d/F3Sqng/Bp/c3+nKTzDD/ziiZTavjBmD15wH//b
AyXIssuL62H889evXxe+rf2rv0xfMV73vxxLcw8PMHqQk3m4rnHZWOzngq3rM26dv9F16CUv
1PfrGV+NIfzaOvCttE4uum71ubk+dV7yABiygnzDo8QIuN7tJGvhut/HXOv0aZpKsq0UNti4
/W9eTh/H4b7GTutU0cR5Gt3ggXvWFh53XxGaOC+7/nU/1OXcfQeXlXqX3mN6z/nSZSvfIxb7
4wlX1sbxuNOHF/ODXk4L6MpYmZ/TjXuQHHWs6mtJQNiTZO5TKixFKD4/1yG8anywFNUsslrb
c/wBx3U1z9R85fJX6wfWDgzNutKplOsdkzgGcJzLPFhv4jxgW7d/jlsZY40rnH5OJ09A8z+7
x0q81XCT8xTjdL+2jkEwL+wcn3HchNOAxPFjAX6XK2xD7RO5XyYtMToC8TwD+nhxta81Y6fD
ofP+y5cvZ1yf8cJ57lbnOjmEsDpqEv8cGnu3EL7D3JE7+MZf7s95LMttUb2uPj/nP3Q4ehx7
w9rj46NzGJ/zLzziGI81ZU6+O971FX/79/jhWX694xr/LnOgSMGxrtOJzRcu+/DMMAyKTSyJ
aEklJlIwpskJ93TdU+sWT+o7foa/uI71GoahdN9knTw5ilwNw6Db29uSdIZX3Ed7DCPWdCN+
RpIOXe4FqKyjY1lowf1Zr9qfg66eN7ler6XVPPLndtexGfd3PLXyN5S7bcBvjo/BjX5PYky3
t7cW58gJde7tMlX7y45n4Q2uZd7oH/iG2JHrP/RV7Uv5BjSPw4SwHO90OBxK7MtpnDcHrhPC
zkduTxyrOgbpurUeRG7bttWrV6/Utp12u32Ze31ft5O1Tpum3AViGIYSg3Qb6fba8WKtlyWV
dvjwoSfCa/xaeCWEFR+GEApWXXaMU1SVO21zLy/CYX0YU+1/X6/XkpPBPrldlVTi2jWe4Tf6
eGvFtDFGvXjxojzLc1bQwvmTe9X4efFn5xym8qY0eBpbQfcUeIDjjV0mpOVIL19zt+PwGYUS
tUwz5t1uV8bhhTjubx0OB8UYV5vRpmmajw5PqznX9s3lofbfFry37nxKfBz7zTzreJSkle/M
+9v56GX4MsZY1gr7z/c8Nl+OVk3LsZ51NzOnkcsANMPPbJqmbKyIMWocBh0Pe33m05/Uz33i
r+WcbLfVez9+oa989ev6N3/+5+raVtM0aL/f5a5Z/aD94SAv/G9ikzsGpaSo3HnzcrkohdyJ
bxxGJQUNoVUInT700Z/U537ll3U/jHrx8KDmH/6X/+MX/vhP/rV+9J0f6P6H/6+a9KD+/KC7
h1Pezd+2unt9J3akHA4HvXz1Uof5fO9MuFSSQdu2U5tGxf6iD33gmT73+c/r6bvvakxBane6
9kG/+Vu/qx98/z3dv36p0/0L7fbLuVooinzmdD4LhiT1NE06HA7F4C6CtgZXzlgEb5wp3jBk
KbeiJaDr50tIeYc8BCcRASO+evWqMDxMzdkQCOrNzY3u7+91d3c3C8mSvHQnsgb4CCTjqCti
UWIYNQQAJeLMWAN5BPZyuawCPX5+BYoDeuz3+5XD4zvEa6NZgzDOnfGuCKU1hgkzSpb/oQ3v
Mz74BMPIrmsqVP1+CCNjZZweAGBNOW88V0ctwp3Xdl0pTZCLghjf3exG04N7GHRebmTdgHL/
EJbEH7Tq5h27fJ/34At4gO9BT3dUAUHQqQ78+DUlCKB1twZ34LjHzc3NG3LiSS03ArXTxXph
tKHrNE1K0/q8RTdkDlqRfRJw6IjayeC8bebgytyTHx5Ay89YggzufDsQg3Yk0NBXHnB3/eLg
zPm6Xi94iPWsdZo7aA5s66BC5pkFKPrvh4eHwk8PDw8rZ8kDSEq5u8F+vy+GEVnkO+4AONCo
aX13d6eu6/SjH/1It7e3uru7K8UkLrsOoqFTjAt9fK7oFK6j2nEcl24orC9BCRzopmnK0Rfw
NE6L79q/ublZFYa47kZfcm90K7qUbiWABD/vz3U190KeWBvWkXPivIDI7YHrSvQ8POl0cmDs
esSDn76mTdMU2+TFXczB5+vnWrOerL2viesbxkWhnAfepCW44DrFA0ToGAA+9GQMHuxCNuBN
14GeTPUghAdfuN4dT69i5h4exPHrJa1slQNnxlcnRbL+yLS8v7/XNPNykkSXUQf2zlv87ePl
hUxQeOOA2TFOsRFtW3ZuelAFOjFXbL7Pt8hqjErTcl6qF/SBP7x7BPd1nY/uYXxcW3RzyMni
2jZ7oMQdHXSKB0BSyk4oNhNZ8O94cMaxC8+Q1vzi613rb14evHK8yL25dtHNaSVn/j3sjH/G
/biHvxyLIg/+nn/Xg/XwvQdmnB+c/3ytVvO04IiPq6xJWKq9pfXZlCkt54eiF5x3eNXBCsbn
vFw/29ec+fNeHYzxe9XB+yVo9GbxrgfLnF8cdzNX/Jt6zZymvGrZKEGjaX0uKS/HFU4Df0a5
t/EH+L7eocR3ajl1PYr+xGYsAbKpHPkD/fHDpLlr0dCveAjd47zFT21jPYnqWIexuK11uar5
0tegxiweBHKMgg/lurimGfenDaLLlCfC3OdhrZAJ11XuL9c6u070eIASHQffbbdbvXjxYhWo
dGwKLZpmvTPCba8HrdxXWvDq4mfUvqUH8Bw/uUzW+oegJ/LpY35sHetdw64HwbhF79icuUdN
Q5e9EqCz9fKx8/1VQlfrrkZgKQpU4TW3DY/ZZ/+8thkuM45JaxlibPgAqZqzy0K9HvB7re+8
M41fT2FiHbzkRaLGMaSvPYHE9S4/le9g06GTr6XrdJcL1tBlNIS8W5LuNW73at3nAVCew9/o
epK09bicVx3neZymCWvaum7z57req+0aRyKRdHCd6mNy2qwLEVNJTvm61xjFX85r7sshR/iH
jo9cV9Q69XrtJYXVvD1R4NfXdHD6+Lo/xqNOa7f3NSZ2eWDs0NixsM/R51XrPNeXvhva7+04
FZ/Xed/phZyxu9ntCbzpvOufMUZpaQHvfqfzqaSVH43sU5TysY99rJxTzjjeeuut3JXg2pfr
vOMbPou8hfNMV9ba19BjUfi9+P+7bT42D1/Vaeo84EkfaArvwqvswiTOgj4idgi2YG3gZf/M
5c3HwXU1v3pcZBiG4lM7jgkhlCM7nM+Ox6NSSqWYhnG5veD6cczHF6CXsQfci3vc3NyUsZLc
KbFkqfiujI/YcR2D5J6857bKsVDt+3vL59qH97iKr41jEugI32J/HXcQz3C5ZZxOS7AZ/MnL
40we86hl3uNz0NT5gc+3220pvIBGXdcpNGu+qWlSzxsa88x+6Asmr2Mmrh+gGXqIeFaW9bwb
G1qE8GZ3I3Qb8nO9XldYx+flmMgLasi9eG7BsRLrhe1yOwKf5jbzCw6QFhvuNOSoBZ4xjmOJ
HWB3+H04HGzD55vFbO5XP3n6tGz+9BgTc/IxsG6+kZPjN/yYZDaYEqfz2GBdYOL6yDGqx/bc
5jmWcb52vnAbWug1TQqyLkPG467r4Pe33nqrYDDiksSc4Lnr9brSPdg16Oy7zKHltV8KBDy2
Az+6vfG51vjNYxMux5fLRdOYd6bX/v8iPwtP3d3dFTzott6xLGMnRou/6JgwpVRi0FmvLvia
+8AXnpslDo4sY3vze8sm1cPh8EbxpdMAGrq/v91u1HXtyk475myaXABxf39fxuJ8hd3mGdCF
zxzPsXYe03dfxG0F/qLbFvfLQgjFXqDfPT44jdNqbRSC9rudfuHTn9DH//rP5iN3u53+4i/e
15e/8rv6/ve+Px9bnY8ViTHo5atXOhyOuru7m3llnDsbRzUxFxRst1td+37uZrXVNI0KTavT
adTmeKsP/fRP6ZO/+DmdU9BlmtT8x//Z//CF95/3+tOv/rHiw3vq0mtpHHR7e6NN2+ru7rWO
c8Id5Xk47HW55DMkuraTlNS1nW72R03DoIeXz9VMV/2Vj/6kPvNLn9ezD35IKUaFzU6XPuiL
X/pt/fj9lwrToK4LmqalXTmVJzc3NyUhAgiGgVyhZZC3tHrBaMQYyzkVCJVXoEheXZeTSHUQ
wUEBC+/C7eAZAXFnxo2qO5wO6hFamA/hAUA8PDw8mujAYMHMBKgYN8zviS7Gxa5SKmJI0lCs
4AEUr6C6u7srgsYZRAgQRRkezECYvLKQgKALk6+P09bPT+I3SW/GyM5s31EGXV25oABRmjgH
rKfv4i7OvGi7Oc2AOe/E77p2XpN1hwnGgKHy6iH40g0fvOEJZujlDrYrZk9oo8RijKUii7EC
BtyRdaXniSZ45jFnAxkkGesAiTUkyVY7BXwPJeqdDVgXB1nQg0puNzQhBO3mtXbg4KDaAy/w
EkYEsOg0hC8wLF6953LvRpmWQf7j863BsoMC+JRnuDFxp5Kd4IsDuz5b0gE9htLliLFDX/Qq
vOagHHDM+sOztP2Hj+hwwti7rsvnKc98z7g9yYtRHMfcTt8Bk/MmTvvbb7+9ohn6lTWuZa3r
8tlKBCkcnPJCV0IbHG8MMTqWwAQ7jZ2enCHEnAhO4CQ64PXEvHepcMAgLWfJwZvoC3ivtg8A
SBwQ5sq1zhfc05NNyISDMdYBsMi8sVNetFQHVx5zgDyw5PotpaUKknv7fWoHzoswvHKc73gC
M6VcIZvbsvUr58J1resraFo7KbWdR/6gA3LouroG/K5rXX/4+55ogGfcmfLAaP0cTw5JUtdm
2xwU1A9DObv3cr3mc5PTurVr7Zy4/nXHvy62QS+7jk0p5ftbUMrBtc+FOfgLWkzTssPQwTYy
lr+3DpKyFk5rbJY7zGVdlYuV4E9/9sIvbwZAPFAQwhLk5z6+tj538KqvcwjrXc9uN9xuOq9A
Uw9gwct8hmwxdl5ljYxWbtvQebUDy3g8mAUecb7257mcuT1z+tR6ws/T5Bl+bTfjALfn8JMH
zLzzVm1zeeZjY/eg72PyyrOcH5hrve4+Pw9QOF2wW9i+hR5v7piEt7iH8/hjGN2dUf8O9tXl
wRMp/IQQy1Ef/rnrTfeN6t881ws9XLZ83X0nFfP0oIjbJa7L889tcGvfjJ++73OrbeNL12/O
l9DB8TTPwh4RDHO97sUm6ADX0a4H3A9xerHu/Hbd7OP173hglWvr8eG3cD3BEl9DH0uNF+u5
Oh09kON61/+v7Rb8g2/lPOU2t7Yd9TjdHrs/gyxyH17MawkOrY9i8Lm5PwNmAhO7rr/OGNfp
g29c+x6+9mVcpoexDY5tY4yrFq6sR41joK0nYZ1XPEECz8MT8G6N4VaYIC1JBccqjMl9Cg84
gp13u13uylLpRQ+agfGgYW0PWU/G7rjJ8eBjfqDLMmNkHRy/eAzF6eJ+Wy1ztT/CdV6g4rKt
mDGZ2zbXHe4rossfmydBVl7wjvOJJ4IYe6Gj1v4U82bsrE9ty4uMtO1qNy6088C6J+KZA/TP
ev3Nzpwer3GdXmMJt3l+D09cu/2v19T1qrTeffjYWvv3at3pQWxowJozLtd9jJH36p1vdXyw
9g3cPkBr1t/tsuND/67rNdbbC0n8/HfXHx4ncRo7LkLG3PawTi4fl8tlJYd8j9+OtxwjMZ7D
4aCHhwddLhc9PDys4h0xrjvI4Et4oTuyWccaebYnfeAVkgXX61VPnzxbxROhh8cKa/6lEAta
1tgSeoN56hgHPqdjVMbuvOk20ZNTpaDM/GTmw852no8sjtNU4qS+ntLSfpl7u98FPVJKapul
g1yND7nOY23IEDwrqbSUr30ixuUb/1JKq5i5X+eJHT8ec8G8S8IP2dhsNqVFtK+z+/yu91Na
EkTwOPrrdDqVYzskFazg8Tfo5zTzwkTXMcS+27ZdHTHKd5mH2yi3N37UacFRWuyP843jZOjg
/IesNk2jNC3Yx/1E75RJ3B/ZW+ur3NnPfVH/7XNzWjh/IweM1+Pt0NRlnWd5QS9jI/5c6ybG
44k9l+Oaz72QcBgGXS6XslnUk5OO8Yi78lzv/DwMg25ub8umMnjRcw7wo282Q7aIryRJm1m/
OJ0cl/n6OI1Z29gsnZFqPMn6IJvkj9BZnlx3vAptkS9iPk6fx+wjeMk7dkjrIxU8f4XccU90
resE1g/Uw/iJmUAnx31FHowO7hs5vTxmsZt5GVlmndADXizEfdArrD/0Q36hyfl81gc+8IGC
/cpmyvm+bOidpqFs9mHMdZ6sxhqOPzNPL/rV4z+sr/MZ3Qo8NpHlaulgydqg69z3YQ24Bnlg
fd1nRM6Rx+PxOB/hcCz3knIHBbp7IM/uIzvfHA6Hwk/SEsN1TObFJ+7XdF2nTdfpV/7m5/VX
f+av6nI5a7vZ6wfvPdfXv/4H+t73vq8QpBDzpvQp5U3gQ595fBxGjUVu81FHx5ujzqeT2nkc
d/cPyscvSO3mqNRu9JG/8tP6+c9+RmclnfpRzT/4J7/6hb94/6w/+/If6u3doDi+1M2u1e6w
0+nhXg8P92pi1G631f39vXa7fHYrQjJcB203G+13O13OVykkdTHo4dVzHQ87/a2/83f0zoc+
pNi2Cu1Glz7q//z1L+nF89fqzycN/b22u8w07Fj2QBCL4IEihLppGm26jTgTmsQIILkGzQhX
DdQUlt3ZvTn5AGWu8yAGi+0BPoSfZ5AMo9W+J55d2UlLa2MS8zArRQUPDw+6vb1dBR26rtPt
7e0bLbvcCXNBQqGFEIpAORj2uU/TkkT2pA9gEWAIOEewUZyuAEg4AjxpWQ8teTa0gDYYMXda
PSjjyWl3WOEX1p9nOKDzqjk3Sm5ghn5YGbfr9SJpMZI+Dk+s8TwcGXf8Xfnyqp031jGvx3LN
OGYlcHd3V/iLZNrlclk5G24EHQB60tVfPBPlT5Anxlh4ER73YDM84cGpddJmcWYcQGOwuJcb
yNrJl6Tj8aj+ei1jcfrCp8iGB+PO53OpBHSH0h0FV8zeXgi6O1jhDCiMkM8F2vt3a16EzjjE
rAkyxLXsGkf+a2cVGYPWdRDCwVwNIggenE6nYgiZEzxEUY23rkGOL5eLbm9upKQi14yTIpEQ
QikYgI/qQgbn6xpIuWx4QMJpKuXKOAfnrvv+MmfN1xp5g6YxxjJ3Dwix/l5c9uLFi6KzmZMD
TkklEc/6ue0CIHtgwHWWA2Z3wgD4tb6rgwN85vYPHnFn22nOs9wRQ9a8Wt0BeZ0cQmewa8Ad
HOwJoO96vZajQtCDnjx1etdBD7dVbt89IOK0q+XUeat+ubPLHF3Huw7nffiP8XIPp7nPgbVC
zhijv2p5rn9PUyq775umKcH7GEI5g5sxhhBKwZ/rXtdjjNMddy9G82Bl+U5cAriM2Wn9mAPt
gerc5G3hQdbTK6Q5f9Xtk9sH5z0vLMSeBKnsUKhlJYP/9Mb3cSrg0xBioR94Ex6tacI43WnB
ofX1d134mFPqPI2ecjo6fT3gCG/Tns1bxy3O2rLLwoNxjA294frW8a7zId9jDr7GzltLwGdd
HIp+xRkdxzGfW2y6yzHTNE1qq/u73Dq2dnte3wdaMS/u4cfpYDs8yFrrTA9G1PqYH58L2C37
HwtPMJdaZ7mPwRxcdmuZcv6Gf/BnHGcXGgQvRnizGAg58iIMv6ZpGnXtUtHP+277/DO/Dzzr
fPZYEGXoe7Xtekcj8wXD1LLBffmO0w+fy4Os9RrzXT+vGN/H8ayvn9t0L0Ktx+06zu2frw1j
dn7w56FjsCOsVW0/wYkUyfNe0zSl4BH87DrIca7jIZcjT0q5fXOfxtfTecFxGc/xdav1DHT1
9x/DjWudK6HfHR9iH/b7vZ1BuRRVuJ5ou3VAnftSVOxnGdd8V9uC0+m0CoaDf6T17j/HOjUu
dJl0X4D1cH507OHJiZpWyLDrB9+xim/sa+68+5ie5Pm+9qy1rznv8wy/l3fFYi6OQ4lr8CxP
WrLO/GBrkGf3CetAn/O960JeXO9dkZy2fZ/PSPYAtOsfxwb4ZP5o0dolAAAgAElEQVSMWlY8
nlL7BI/Z5BijmtgohgULOLao5RVau4xJuetFM4+V8RM/8cQY/OAF0IsPsd4447rbaVxjIq6v
5d5lGdrW93QdtvBD88a1LrPwbM1LjrVcL7l8edAc3V/TmOfhU3mrbu9y5nIMb3u8DnmE5u5D
Mk6P8xBDc/1S4wDGV2/QqDFcLRPus3mcto7nOM8ufLHe6cv6w1vn81nvvffeav2x3fleS1zN
E3iOXeN8fvLhcCjHCMLDzJ97u5+3rM1aP4H/ibNhx13PXS6XoteRBehKQQzYHN/a9eY0TWVj
iuNCdB2fE1+odbr7n/CFJ6xYH5e/cRyksBTfgwWI6UBblznWrPCKFSCAM3zN2XzhuNIx65SS
QlxwDeOt9Ra0r7sYeDGZy68n1YhZuR8HLmZ93LYyltrm8Qx0ofMHvLDb7Ypv7/rGMWDtf/OM
ugjM6VHHO+jU53yCfDdN3gHsmwhZj6bJuv2x+KEfQew49A39nULRX46V6xgwc3ecm+eRj132
4iC3387T7i/45kDuteygX29+g3cYNwlN9I/7iiRB+Rx5QKZdrnysUlglQOGzWu/d3NwU+ji9
M30XP9U/Q1e+evlKm03mJ3x5xxE13dzulM9MT9TFwtCSXA2+sOt5ilRd9vnbsYvfl/kSQ3a6
wUfweNZ5ebOE+45ul/yZ3B8derlctN/vy1rxfe9gg0zCN2AfxyDjOCrEpRC/LrjkffiEI5hd
Rn0N8RGIf0oqydyUUum0+/bbb+tyueju7m7mzSWpnFIqxz66TDoPOc4Aw0Nz7+6ALbm/v9cw
ZJki/8j3vOjL1wIdiPxk+V4S966X+WG9Xr9+rePxqMPhUHRwvn+mOTkYciQk5OE1t7voT8dt
8B5xO3A1hT7wCPaBHJ3Lk+MReJTffIf15DvH47Hcm+LszNtBaVqK0Tebjbq21d/+2/+ufvKj
P6nr+aLd/qAfvfdCv/d7v68f/vAHik1U27V68vRJpl1KmsZJ07jk3iUpNFGxyTlsunOd51jl
5XJR027Uj1Fxt9c7H/6gPvlLn1Mfou4vVzX/8J/86hf++E/+rb7/J9/V9vy+xtN7auKo3Xaj
6/WiTbdRPwdwbm9vdf9wPxvMjdqm1e3NUX3f6+F0r+1mo8vlqjZK6XLSbtvq7/79v693Pvxh
xbZRihud+6D/49e+qJcv7vT65XPttlHdJgs9FU1Ueno7FIiGMkPIQggah5yofvXqVTGEMOE0
TSX5hwGAgYpgKrfzrh0PD6J5ENSVP4IPAACUPjw8FGbwthmMxYEdCgFw3ve9njx5sgJGnpx3
5t/v90WxPXnypIBKV/opLRWeXdcV5di2rV6/fl2uQZj8mQBghJJ7emHE5XIpoLoG9bVxwwh5
wgOB8h03rB9KfZomnU6nN5w5D1TVjiDOh1e3sqM6xliOcyAAB7AEEE6zsaKlh7SuhmqavD7H
47EoEwycVyKtzv6woGEdUKgNZg4OL0E036HtQN+dtGla2v67gXvseYzHQZe3wncD4c4PThIy
6E4pdA8hrCqM3XFkzChfxu1VupIKvxWn1eSPeWCIAQA+X9533q8NFjJZO5dOL99JwDwJ3LO2
JFcABfwN0OB/T6hhXNq2LV03kA3W1J0f55HtdrvqplCvqwcjoK20tO05Hm+KHnFDuhi75Xlc
h3FMKSlNk4Z+WK0jOs2r4HBuvTqb8dQ84YEQnu38VQPbDESXNmLuWPFdTwpAF4otfM1rgOud
XNgpgT5EbzM/dLA7dNDd58xaQiPmQnUj7+FwwGfwE/rwer2+4VDyDOTA548c1QE1dJknWXk+
17LuFLA5cHdn0O0B93P7WTt+OBXwK/qHOaHnXGe6fXFHxXmD9/mf8dY7tryowNfJsQW08ISr
2xeXtzqoVTtj0MDnB5/yPWQR/vJ5cQ3fy3w6KTbrZBfrvt1sNFmQh2fh2Poaov8oOmLd0f2e
VEJ+uF8J2DxCf19/153185fCqvaN56A/rtd1Sy9o4YlseJn1Zh7lldYBY7db05QUwroVKTgN
vX1zc6sQ1jtuaywJ/d0+OY80zZIkcdzlgRrWET6FBsi509rpxsuDch7UqPkVPoPOdQCT73ng
qQ56OA7zNfWgj48fXO/87rvjvJjCAzishz8vaL1LyscKD7icua7k/Zo36yCfz8v1h3/fsRGf
u9/AmL3wszhvMYiOEz5GD2rwv8sdtPJghesuD+x7MMD1tQfO/Fp4yrEPNCd46kF9+N+DMp4s
93WrdSJ6Zpqm4rc1j+g0Ke8IS9O6eKe2CTE25RgSPoemzl9gEHaluNPPnL1gtV5TaFn7jM6f
3I+5MY7aR8GvqfUCY6g7Nzgvum31HSzSsqvZ14DdIDWWxy+CHo6Ta9vL2vucPQDrugx97ecx
1sFvl3+uKS3k0/oMc7Cq65fab6rtapbnNe+7DF4vlzJX17GsW4xRYxUHYH14BmvFePAhuddm
s1HbrBNj0nKEAwkhxzw8x/GZF+8wD/jKE43uJ/mawPduN52GvQXFvYiOe4BHvaiFtT6dTpnW
lS12vnW7g2w777hc+/oWv8Nw1WNYy3Gsz9f1jeuGx77jeo3/kV/mw+fwgSfF0Bmb7VaxWdqX
u//heLKea31Ula+786D7XvjNXugeY8wFj2mxX2Ca+jgW17vb7XblH/XDoGFckpysFXOBH3hG
3e4ZPdr3S1zHMTYv5zuXQV9j9yd8vWrcAp71BCaP4xqKntyur33gBa96cszxk9tm3vMOkI9h
D2IitT8EzdxuOW08llIfAVrjf080e8KF53Cv+mxbH4/jwTrG42vH315Az1gKD1W6wHEvuAI5
4jqet9/vi8yAHbFrTZNlkA5R+PGOS9CrL168WPmN8LHHvxw7F/qO00rnwtPwKfECsKcnc70w
3u0n/rLTYbvdruwkOoXkB/Yc3vD7+/Pqrn9OB2977TgwxljOt+YerKXLheMof7EeSuvj8eAd
L0b0luOsNXyrlHLHOi34BfoS79rtdnr9+nXRK8RxfUd0XYiCrPpYWMfT6bSyseM4liNx3bbi
B0N/t6PQhHVyWWEMMcbCy4zVYzsux4yRtUoplTHVdHP97diZsbKxiDV13p0vLs+pC41qG1EX
/43jqGlc62QfNzRHFxFDijHq7bff1sPDg87nk3a77aO+rONOvn9zc7MqIHGZcwxdeEpLsZrr
bMYFrx0Oh7LmyDM4BvkhFoZu8+51JP79WDbu4fqN9WedeOW1XIqSmD9jzc/fKiWtdNZfFpPj
vcvlUvgt5CBHoZP7HsgWmzM9DrWKo4R1F1EfJ/4KNpHneofd2l9+rBCxazsNw7L72uUNHOKx
OT+m43w+l0Q8doE4qG8OZozokby5ebeiYfbPl+NhPc7s64Y+I5HMsxjz8Xgs9wAvxZgT0pdz
Xp/j8VhicfDcfr/XZrN9A6d4HBoZddtM4cnTp09XseEVjbuuYCR0EHoUOfVuHdCcTYlvYvF1
d3QvbMcGo9ORI1r1cx1FQBTGwTd+Lz73uXvRj2MQYvf8/+TJk7IGrJn7fS7fYCNp2XQMv1JI
QJED16CnxnEsthb6MYY0Jd0ej/q7//7f0rsffEd9P2q73en991/py7/9Vb3//nvabjtttxud
zydttxvFkI9/SIkj0aIu14uattUwjuqvvUIMKl3JQ1TXbTWMk07XUdrt9JGf+in9tc98Sn2I
ugxJzT/4z/+7L3znT3+oH/zRv1X//r/R5e4HevutW4WYd83GEKSUd9nc3b3Ws2dPFWPQ9XIV
Z1Ve+4tCjDrdnxQVpLHXdLrXW09v9B/8h/+R3v2JD2sKk6bQ6jq1+r/++W/qxz9+qYe7V9pu
gvrhUhLeh8OhLI63Z14UbFuMWVZKo/a7fVmkp0+flkR0DQBgUs5bWhTk0u6xaZriaAEmffeq
JwKkdTtVdxoIGsBELrwOPvxzjIuDSRL1rgA9IHc6nXS9XnU6nfTixQsdDoeVI+eVkIASXvf3
96UIwJ2kruv0zjvvFEVKBRJrwf1REB4UROhDCCtwi2NEQhhaoljd0UIRudOA4vGqd+biDr4D
bOeDvu+LwX39+rWeP39e+EiSXr58WY4uKOOIS2V2Ht8iyAs9F0OKkXMnvgZ1jLF25Bk/Bhiw
5MrVjQ7P4LcrOdbeW1p5wImX09tBJPzniTPo7HIjLQ6zB5Mx7vf39yVwgiJ1hxD+RLYA2O6M
Ah6Gft1anu9gIDCyPkbWyAtr3In2M8mggwfceTkAb5r1mVkO9qAdRoSEPnLDCz52fuCZGP5a
Jh2QAirc4WC+vosafekBjaUKL5RCIPQc31uCj0vwwlv3lVZUaR2AhI8c8JNMdOAC37MWVCXD
8zzfAxGsF/cvxTbTsFoz5ysHpqwVtIKvTqfTyiGAX5xP+XHQ786161gPHtSBOfiwDvgBqJ48
eVJo4hXXrCH/wwtOHy8AIQiA/mCNPEDNPaSl6AL+cGBeB0ZxwJw/4WG/lmd5Is/BmgNS1t2D
T+6MuwOEjLmj6WtPpb0H2QGSriPqwKMHKZm/20pfV3jJ5d2DHc4H6EZPzmHjWTfncb7PfHzN
XZYzHy+tgh2vSMsxNvXY/B4kfBb7thSneHCaa/jc5XgYBm1mfnCeubm5KXzs6+PXQd+zBW0o
1nOdmCtaF9mmwBJd5k6+v5wGUevkgF+/BOjWR1U48M/6JurHP/6xDodDcap4efIIWiVbG2Sy
69bBEw/c8X+tG9B3yITbPre/0NCL2VijGGNZDw+wOq6Dd9AR/A2WgRaeiPQAoc/d+Ze5eKKA
awloweMUEJ3nNa4TjT5ufrCH0JFxeTCENSL45kE7XtzD58g1vjZrh3cZE/Oo+Yzve/DQ6RzC
ehweDOR6T+RCO8bjyT1sHM+ARz1o4X7IItP1Dsn1mXaO2RgP8kwQbByW1oSe4IE3PYAsrVv2
P4YPXQ+WhFZoVvOo10VxvUvJg1Rc5/6LY6eafqskWoxv2BrnBee32hd0HeH84DKEfuDenqTk
Pk47x5NeIOjvoSP4PvYPnew+iNMd3ndsDI8vtme964nnOH14n4BYHXxy/OQ6ofZXfN7c32Wc
ebBzh0TtYv+kaVqKoOCNoitS0jQu3THAbfwfY5RCWK2b+0w+X7efzofJEhDMt8ZZ+Mse2OWe
Hv+AZvBrjb2YJ+te2zzWlf+df4PWxYxgQzquOaZ4TFd4obMXxbmsuE3EfnmywK9lDIzbedzv
XfsXwdYLnxx+dH6GLs6Xbotdvj3WwzrWugiaZ34OGsZlk4rjKvjWfSYCsdgJH6f7AI4X3bd1
OnvyqG1aO9t1Lcc133gypIwh5PPA0dPwaG3reXkyZpHf9U75GmMz3tru+vpgQ6EZRZhcU8fl
oJP7grV/5hjM9RDv1Z2Uan/H44v+bE+iwUPoaZ7PfXwHmWM/p4HbYo/HwKt1DMx9QwqRiJWk
tGxIgAY82/XRYzim1m/Ics1PblPqRBHvw/fobdaXBBQ6kWfgb/oGp3FcMJIH6+Gjfhh0vV7e
iLmwPq67sI+ME15LaU0P38zFXN3Pc1ta61IvEHM7No5jKeqniIf1CyG80fGLe7j99rV3Hq4x
MXzraxdCbgFf23v8eGST59aFUcUXjutiM7eLxJrv7+8L3nH/P2QgXHSN2wTu4TzuMWOOx4UP
Pd7Hq7ZX8Jv/zzXEU/FJwDFSxu3skIVWjinYueq6tW3bR+O6yIdjzlrvkTTGL3F/q8bQ7lt4
kh+57/t+FcPhOCPecx0Ifd0Oum5GZwcthTa+Nr45BnvANfiz+MQsk8f/fO1dD3vXJL8vPO12
0Hn3Mf3pvqzTDryDXiWmdHNzU5LjLus5fpk7kbh/wPigZV1QyXWLv7d0XIYHoOHlclG32SrG
pugTT2JCP8cO8JR325TpcvgbneY4x8eHnLjdcN/M9Tfv8T5z22w2up2PLfA1Ysc7tE8pb8hN
xn/E5pA1eKH2E0gyEyuGFsfjsRQMefG3y1nT5ALWJ0+eFD67ub0puJa5oMdSyvELdJr7cuA5
zymC76AzvLCdi5qwaSTfiQvD76yz+8qed3Hdzbj2+305IgCdfHNzU+QvpTRvDlvirG+99ZZO
p1OJSePfe+7NMXmm6ShpeUa9Vl6s8OzZs7JzPoSw6piw2y3drNF7yC1HW0Mr1u0xbM4Y6DQO
n0M3ZDrGXIBBHoJYkvum8DV6uo5dcz0FAfAqmG+z3aqJ1jk+SU9un+jv/b2/rbfeeUt9f9V2
c9CP3n+hr371a/r+978/6+9Wp9O9UtK80eX/o+vNf61Jzvu+b1V3n3Pu8i4zw2UsUiIpy7BE
kZJIU5Itk/ACBAFsOPE/klgx4DiIgoD/VzY7tmRIjEJLUETLFjeNRHKo2d733nvW7q78UP2p
+nbdO2fwzt3Oqa566lm+z1JPqcwpLEVCIVp3o74W1e8POW+sEBX6jcLuSj/zuZ/T3/ziL2kM
nU6XSd0/+e3/6Zt//ucf6Ed/+kONH76j291F0/Sgw/mo7SYrvOPhoJfPX2joOh1OB03jpDh0
Op7OOiFkc9Jmd6VpGrUJQVdd0K7v9A//8T/W2z/7GV3CrNQPmrXVt//jd/Tnf/4Dbbqo3VWn
q91W0zzp7u51aZkwDENpIQSYdqVWGelFUWLTNOlw3CspC+U4jhqn3Do9xqDLWI338XjQdpdP
x2WmkS7jqLu7O13GsTj7l/NZsevKfbGx67Td7TRPk8bJKrhi1Hi5CCuGgM7zXIoZMAAOODCE
XuWIszKOo169erVqv+PVUyT6ONnpzhHKt3WoESqMPcFWlM3NzY02m43u7+9LwspBr1d1I6Ru
rBCoFsh4NREKYlUNY4LsgTYUrlfeu6CFEFagvwXGrJX7jlJKurm50YsXL3R1daX7+/si+F61
PU2T0qI87u/vlwRSBdHTNGuz2Ral5g4Nwu/GzwFAO1fWxN7y/DzfdeW7GzVo64YeeqKkWicN
3iQY4O233TFtE+XMkX32IKkDRIybJ2aOx+PqPhn2mXG8OtqDARhIEsPzPGucJikEJTOgwzDk
uxXjuviAcRzIQFvm6w7FtMgzpyfcAcfIpjSr74di6C6X0fbhcesleJB1wRfsN3vmp6pxHtxR
A5gg96ydebfOef6dlJK3Qosahk2pMEcmu64rBhAakSzwfR2GzbL/QeOYjeE057VcXV9pTrT/
63I18VQ7IrjsIjPop6ccC9YF6PeKfgc5eaxJm2GRw1X74qVC/1JPF3RdL6Xa2rzrenVx4QmF
3FIr4WxQzbhuZ+9Ofutgt2DYHXjXbx7Au1wupVIUkIVjBd96W254isKrm5ub4ty5fuEEjydB
eS7f+9geBHJHEn3gRWzwLWuFnqzTr2OB55ED1/HQjWIZwB5z41n+zwMqbeAdXsUuo0e9wtX3
x/elDWZ6gKjKfw2isHd932d+t/33Obpj72DWHWx4G4A5z/lU/zjNCjGfykjTrHmuJ39iXHRp
yve6Sim3EJtndTHmVvc2D6choBXdj65EdtpguttyD9xstpslwHYuNmQcx2JXOUHmCQfGcoA/
TbO0JGlSmktRwziOUli3GXfZYy3sr/99laRIsyTWvy5q2W43mudRuYVorq7Na0UvRcVYK/hZ
w8PDwwqnOG87/iMY3g+9jqejxinbrHEal8pylbsXp3ldxS32ItTTo34iy4MX8LzjAfYVPewy
Ps1zwbp9UzzJZ5Gh7XZb5tI1c/D99YBNjPnELIm1EPL9wUppJSPImicc+r7PrYZNf+62WyWb
W4w5Kdd1XbnHEMeee4o9SS3VtnduS5hb2/kgP3fBbfwHXUJST9A15OTGbrvVdrvR5XLWsnUK
EZwxarfbKkQSOVHDZllfWifiWhlxHOdyiDxBCw+Se2AKzIvNhW89GFYKuQJFMJOmaRR3UMYu
0jl9pTu9HezQr9vuEmi8vr5+hEdbPOAOuwemHLtnzNqvdNJTAUqlRQYys2hpDpx1bsgV8/hU
Dw8PRXd5kMYDSz435pdbHM6LQ57sd0neyYGX+2YEF/P4NegXY7dgyKh5Xp+ORGfN85T1Ucgn
eLScBIgh6nJerk5L61NA8MjDw8PK54LuTkfWR2EoY/T9oGmqXUjYe/BvCPhxme8db8ATbn/Q
MWBY9wGwk/AH408T9JoWPuA6qK74iBknHxWjn2pEr6ei3yUw+mIrFsx6uYyaFjubUsX0c4NB
JN5LsKsmwNwmlb+bDvSYhidhuObEdbAnISQpuX1QlUeF9eltx0VuE+Y5aRhq4izzelA+QTuX
FsBof5LXMt0DPSabU5LUIZfz+hoN2TzRrR7PcR3mvjs08AA3vOqfJ8jHM6EXmADdg45jnPY0
v/uJzKtNyrjf6HR1WjPvec42wws9PCHFWK77iR+8/fbb+uVf/uVyzVr7eU8Y8Tv3O8HB2d4s
SaA+32E7L7t7Pp8VovG2Fl0Zoi4TPmOObc1p3X4bzO5763zrAfnq68yr9fqeo8ORB49XeGzI
ae86zp8n1eInL3gGE5akVahXS3rCy/mPzzjebGMvPOcpbOqFVh4bavmF9XgRKV+ldfILnwZ+
4PABL3jf/Rl4qHSDTNI8zUWu83qzXmN70KHuIzEHPhtjWD6TD8tw/3cMUcdDtnFcO5HxY1qS
T7FgK+IvyGctNFpO0S17uRk2Ze5KynomrQ9TEPd0vum7TkpadNzSReFyWX7X5ZjS8nyl7DNl
PRDLWuCZ8j7be0nFVpJUQeZ5L78D00Bzj4OQJPW4Duvg/U/5YgXPm06CF5kT+pP5OXYvWFz1
OkRiRF4I60lZlw9wXowZIzo/eiGQ+yhgLZ9vpmX1gbxYcpqmEnvhd8+ePSsxsXxCtsYnPPmC
/eBg3MPDg47HY9kTx7PwuPOjyxExd+QJeSeRxZrd90R2SYYjmy0Gd95ijc5fXsTmGAwdyD4w
Z2J4xImIGxLrzjpHOh5P4iBnDFGXSy7kDSSylWVnGiclJcUQFGLU+XTW0FNQk9T3ncbxonnm
5H/NNbAWv9q5xnrzKe+V36t1tzrH0sgN3YNzHHury2Vc4iNR2+1O4ziVXMvNTT7Yx0FG5uP6
2vej6zo9PDyU+AUFK24bPPHadd3ir6ZiTyWVwpgYI2pLXWPfwFMKQeM0arMZsk+onPWbU44F
7ff5sGbsovaH/cIDGXvGLirhv4W6rq7rSjKbjl9KKeexllzN5XIpMud0rgnZ3SqHgY/pthhb
RKzNY1+e4yl6MM356lglbbYZn5zOp+xH73Yal5h/CKEU2vAsiqOgHfuADUcG2r9j39Gz7mPP
cz1t79hqv98vsp3vVr9cLgrK8U3mOKfacRC58i625/O5XNVM3PZ8PpeT4eM4amPxXGw7fIM8
ZP1RC6vyurJv4z6/6xw/SHM6HYtvn33PWHw1sNBms9FHH3202jv0pxcc+36GEJaOPDU+Cv3b
mC9053sONmeZi0sudCqHNKp9qjEFDu0xP8bsuq7sLXLvRWApJd3f35ciAmwtn+dQo8e3sPvO
X/M8rwpYPEdKQdNuty180i8+5pxyQcvxeNTf+NSn9Y1vfF0vXj7T5TJqu7nWj9/9a/3u7/4H
ffjhRxqGTjEGbTcLXlTbQT3H7JLwnWPG8nO2nzmf0esyzjrPnXbPX+jtz31Wv/ClL+o4JykM
6v7rf/Gvv/nOD1/pJ3/2jsb3/0KX03uK3agUMpgb+l7Pbm6VplmH/V4k4FIImuZZ22Gjvos6
nc66nC+6ub5SL6kbL9qGoG/8o3+gz3zhczqHSVPsNGurf/tvf19/9c5PdDodtN+/VtKkq+1G
19dXurm5KYGbkJa2CtNYDCcKCGO72eTWCJfLubTomOdZd3evC3j1Deq6qHEaldKszWbQEisq
DO0tzzGmm81GSRkUYkwRUAx31+W7bzHERYmGoMPhUBgOoW2dB0AVIMYTte7Qo2A8KJVSKomj
NsDL3z2pIkkvX75cOcislfkxR56HYpdUBLYtBGhBUJssYf8ALvxtVTlqQX7mztcakK0nY1gr
82M+tHtBYSCcOEv+GV7Mh8T11lp95PV1Op9zwGtYHBHnQ4SToCFKlQBpC/Sgf4yxGIeXL1+W
VieZVo9bI+No8hz2CP6APuy7J3Jvb29X912xbuhMEM1PmmAAPPABT5agsdangEg68jNrhter
8arG2p/jMsHJ3WiOTNd1JSCB3OG1+ji+Nvgb2qPs4T3uOcJwuNPrQSv+DogmgJjnuj51RzW3
yx68x2eQC9cL0Abe8gB0G4BowQ4OLgG+EOJSsJA/T7tDP+XQBiQyT03abLaa52TPpaBCGjYV
bIzTReM05fva+k6H40F99/g+P/bH1+EJUQK//I3gjQfemF8eQxp6aJ7XPi9r5ueUkoZ+0Pl8
KVcV8LcSmFgS/UGZZtvNVl3X6+FhL06t0FqKQgwSF8iA6zSXQ9d3TwWsXK9x8pnft1/hh6cS
fK1OSCmVa11wwtxuwA/u1JOcYM9ijKu7KF2e4D13jrlmwYPgbuPceWdO3nrSgboHCt0xcf3q
cgNIdR3sAQSAOPq9XVNLZ8bgK/uC85m0FLvZ3+aUyv2oOBReIOZg0vfW5Y/nTbOk5R65lJLS
nHk7hqhpzMUqmeGTulhPY3gwmCR6G2yk24bbanjT+Rfa+x6s+Vgl2O+VyfB0e5rG5ZqfhyE7
uxTX5WR/XIIH9YQJ8gK/tkFjd0qKw836lZ1k9AJrmedJ43hZcEBO8ue/dcXhwKlhDR6s8u5G
PA9ecbnOQcZxKXCYi7PPv7gksLPDn4vbtBSkolcJznkBi8sIX0ezX8xhhQuN75AR1x8l6UlA
LNU7mnH4uDcQ3eYvHJ3Z9EQyPhqXgoNoOt/HKPvouMIczYhs9uvTW9M0LXeGrjtLQBtwLRjf
aefy6E5W0qzY2QnfGKS6baKgJBeIJc2JgoFp+Vzm5Wkaa4HH8j2FLtCQdbQ6lnn6SRRv7eon
2lod5jIBTvDTXNl/Oub1xOwfTfOkEJY7+OYcYIgxlsA+OjYXYOcAACAASURBVNV1w8KuheZt
EoVACs67rxMb6ev1fX327JlevHih99//QF2s2NFxEXy5xMuWNnkhF6ov/NMvPP3pT39an//8
5/X2228Xf4vgKgFKnu3z9DVPBWNUzFXxzFo3eUFsTQbVLhdtsYHvn9M385m1Lp3Tgloq3WII
y8/ray3450WU/veW98FIFD5l27oRuMmTIRQw1MDJWOYqVd3hOt8xQcVfKs/MNMqtume7L5H3
kJyAHlxTlW1XLU7LdiTvFXgRHV/xfdI4Trm4oO+XeYcylxAzfg6BgjIv6ujLeNAE3eEFO26H
3SdeB7jWXSNCCCWp1HVdTfzPc6FW2bM5B4jBX61eq753XRt7MQybhX+XQGCs2GGZSN7bvleI
mR7uMwSzc+4rwfe+78i7F3jAC60dabGJJ9tcB3mcgef45/m+xTM+lu8b+Kf1qxz7+LPdljge
oajL9x2fq43f+LNJcr377rslLtDiMfS5+x4uW46N46L3cuF8EaFyPQNYI8RcrBe7BafOufCU
5CjzfUovEfhsC0grBlsnxpxfHKfxeorujuugh8eM3Ocfx3HltzD/XNizvsLDC0mQY9/bNm7g
vofHL/g9e9LiaH+1+t2/d17kmR77K92RlgIy1+P4HPgYHoRfH9bIRVCOidKcSlEAyTheHs8C
o0/jrDSDs0nkb3S55EJadEvx9ee0YIh8By44tI2vlL1Z3l/3J3+WZACJf4+rMA4xVNYaQi5Y
YL5d169sW/ZHl9OvU77SkJcn4X3f2UOP33ingooH+pLoIfleEobdulgEGris+YlFdAvP8Lnw
HtcvYAX3y6EXhS9V9oKmeVrFe11+XG5avii6bF7fT81XjzHgpxODRIY9luY6gK8f5zPj10gq
CSWp2ojNZlNOTqNPOL0LrYpfE9fXVD31XPbVsRRrdRznHYMZ13Wd877brhYPQ2f4ga/MF7o6
TxYfznTAfr8vfAh95qnqB2Jj0zSp7/qyJ0FLhwIwiPKhyE3RJ/lea4/1pHIQqHZfZu2us3lv
8THSujCc96C7HDN44cb5fFEIJLhVaCkFPXv2fEnKXUpS0XWtx6N5Bn6xx7CJ9fO9FzaAI5Pq
ocbEHEy253kuRQBnTjCbjgkxLDHUvthu4mPDMCjEoNMp+2vDZlBO5GY/ksMTMVR8W/Yw1CQ4
a52WuZADCcQdUo3D7XY73d/fr3yTEmcYx9W6eCaJUTopu/6E7l0Mxbd89eqVdrutpqXwYbfL
2F6GF10+0WfwG/iSLq5+9ZF3QZTWbdrJLbiuJbGMnfX4YdflfCi5yKDaCQDfscalU+kSwRzR
g+gjrovuYo2ZeQdc9IkXrV4u55XMZDma1Pc1yQ7vsg/jOOp0yldrcLCwFmLO4nCb6z/mXPSB
4W1klPlV3KWiS9jzcpAp1ryP2xFolu1izqvlzyQdDly37YWHNabhMSu/rpR9nKapFLBxoh8+
QsbRM97hDD8M++Q4EP7yfB+ygj3NnUyCQpKud7t8ECtGpaCMZ2LUpz/5CX3j61/X85fPdT5f
1HWDfvrX7+nf/7vf009++lO9YR32Y6DbwrAUoCyF8os+jovcTuOk3XaX+bLrNY6zZgWNYdCz
tz6hn/n85/SFX/zbOoyTjudR3X/7L3/nmz/9yb1++Mff1wsdtetO2myyYkrzrNvra6W5btT1
Ta6e64dBm2HQhHKMOfm922x0fH2n6bjXJ998ob/79d/SZ37+czrrrBQ3Smmn/+P//D2999ev
dP/6lXbboL4PiqG2CY8xql8CCgRLHfAg1DCpA3kEVspJ6jbgAGO40e9iDlai6GFQWkMUZTnV
6kNPPt/d3a2MLwzt80Pp8GxP1FfgU0/u+Bw8eSzVk9uc3mUeHoAGMLhCaB2XcRxLktwBKOCP
tZDAwOBiFFkXc+WZLnxOF0+4QJe2et2DAK7sET7/DGMjkFXRnco+lqTMXNumA6gBJYzL/pTP
ni/lbiFvwzUMQwkgt86jV3liVDy46+vGYPB3xqlBtW4xiDXB6KDSA4vQx4NLjFsMblfvXmc/
HbyQpMZRcHmjjTN76srQZYy92u/3TzrrzNl500GfOzvMlzEwJA6ecWozSK1ONM/zghPmCP92
Xa7uZH4YZudvaNsmcDEsyC6vTOtUHEGe6UaRucOX7ry4I+HJC/7GMzyAj6NWT3ivO2r4uMyj
3S9JK1pRYIF+gDd4fr6jKzvWOUnGifZUgsEk/wEjXp1fAXMFRp7U8OAiMs7LHS0PxHlbNd9v
5zV34H085uW8XfZsHgtAQba5G8p1GnvbVmFCU2QX8NjOw51MD1h54It5edDHnWovWkNft8kW
6NfqDJcTD6S4noVPvKiBV9/3Rcc6rT0wyXxdn/u6AM/Qx3ne+bW1Nw5Y/TM4Dr5GAgFe4OBA
kuK+p2wrupNKad/3ldNtsuInPlzXOe+5nq5jre8Ynqd1QZMHQL0NHnMmqNs61P485wlJK73n
uMGDHDy7YAvjMV4eMG2DnLzPMQ+yz/pdL/B5/vF3t/OtLMF/ZY1zPvlfT34yF0+er/Wv21Ef
32WXffUgGnvgNpY9jV29osftfSuDHvTwFpNpzklMdInrFWiTLFDo9HUaoisco/BqA03uPGds
3j1qxexyLqkW5pn+a3nAnwONfE7Ot8zfn+n3xbk+QR48aAi9273zv7c6Na+p8hT768EAPs/v
wP2e3CrymNZJPw8O8jenO+O5PQDHOk+5bXSZZQynb9flwpQvfelLevHiRdHj2HnH5h6gjGF9
XZPrDt8vxxI8D5q4znDae5DSaYwMPDw8LCdvooa+Xp2Dc+484LiK37m9uCyFzu+9957ef//9
R/jL5cLlf80r644RfO974MEwaFWDno8LSfmbB2sdb7p+kHIOb2N+UPu+EHKxkOMk+KDVN+34
1eeqvO984b8LIazaNpcgpvGHlFZy0eLplFSKQtaYNGPpnLB+nAhkri6D7pNkfssBYOcNfzl+
IuDHHvR9X06hum3nc86D+efp0T7VxNKQ4wxzvT8aG+e+ouNlL+Lr+14x1IC/r8f1rtPPeb/y
QT0pA91KMDPkYKDLsttunuVFkO7X8Q96+lzhaccs8zyXYJvv4VPP93X4XNz2OF/5/NgH93t8
PJcHeN8PJLicfBxec1tX35M706DjXH5SSiu847aNOfi1e44NLpdL4ctW37V8nZKKfnc+ZizH
f07ftjul85Tre8eF0Bne9XVnOa4HNZxv3X62fOw/Iy8eT2n3nzU49qrB53pyyzGW75lU2ym7
L+n213nB59L68O6fuqy6jnZebpOOzitt4sVfPpbHQ9FhLhcFI40Vn3tMotDE9sZfrD8thfPO
+26zXW5irAclVmuW8+n6kE+hldY+Cpj44+gMvuv7vjyTsdu4oWNv1ub2iTlUe1h1UZu0dr3Y
JjncRjM3xxcev/HnwYNSjWO6j42/5/vGuJ6A97jwU3E4cNnV9VWxR0/52o4lWA/Jqq7rSgE6
P3MKE7put9tV4cOTOHrOhdFuJ50fiMm3sUvWUw/5Vf/IadjqHudp5sTznFbQlrl7fM+7ppJY
8pgQOtv5+BFWS2kVj+AzbhdctvnKXDwp3toalwl+R0y51R/wHD6nyyYHr+A1lyNpHfOOsRbg
ZF2wvtqOOTzlU/j68f1aXejzzXTKsUfiotCBqw1JmLuvjlwwLmv2QmCe64VtHp/y+QbF0v3R
/T3oyLOgMe3OoUHf5xPxuXtC9Utcj7qO8WtQ4fvNUqBLlwh4l7hju2bHAMiQ22X2oI3HpVS7
UvE9fje08iv2+Cw2fFoOXcCndBegHTxdWRyXtFjHdTIHbMHkfd8XDMcLXeRdrp+y2X5wA12I
jkLvE+9yDMnP6AW/HgJf33MG6LChHwqN4Y/dbqeXL1+uOia3WKXSZincMqzCe5lLjLlTCn9j
HsgdX+kG3Mqc62mei36iqwqFlegjx1jYWucP50F0h+cBweFO37ZIiDUztuuF1h/FdrjPgw05
n88rzIsOobsI+pn9b30PfsfYBdNn9zN3iT/ngpZN3+vFs+f6xjf+np6/vNXpdFDfb/TuT9/X
f/gPv6/33vtAn37700qlg8pceFwKurm5UdfnYl5oR1FKzbvmgyjjHDR1g569+ab+1i9/UW9/
7md1uCQp9IoxBO22Qz4x0PXq+kFd1y8nPut903OqLcwklURbrhRd7vqJUZs+J0a3u602S9WG
pBKIUKCN0kYhRG02Ww19r/1+X5LR05Tby3R9VyrT2FSStigsnAkHtzANAg7TeiIRQZZUThC5
IXaD5gErQBn/UF4wjxszD3JdLEDHeorRMKfSDbU7hT6WG3+CHASToAEtXjabTVHMgDYC7e6I
8UI4WgDsitjbD/kLWjBP5urrdGF0Y8gzXKHzPgdKPh4vfo+RYZ9wABzA+DP4rPOXn6p3vvL5
uKJ2h9qBmvQ4mdcCP4xUjFHX19clKeXvQX68Cot5+z/nKwcLLb/5SQGUM84yxh9F589yw8p4
LhP+Qh4Ym7Gc7i4/Tg+nnzut8Jevr3Wu2JOWL5xnfAzm77LkQV2fr8+hDWA5EPaKed/zFgQ5
kGmdAnjX1+k86PPDyEK3/L56wqLtHOIBE3+egynnGXjA96Fd28ftWStb7uy4XMGXrn8lPdpP
p4U77e40tPL5cUDceYR9cXCDo4hewdljz92h9jW6/nI5dl2HLPgaHNh5tbiP2epc38fWCWNN
8KrTiefw1YGvO44O8nDqnxoLersNcofSgyHO29DWkwdPAdJWDhmfZF4bmHEeRd+5jmAt7b5B
B+bO51r6u05xHejv9f1ogxgO0H3/fB2t7V/bhLWz0tqgVladJ54av6WZ28un+Bq+8fc4jdyZ
5b181nnfeaTlwY/DF9CzBiHT6u9Od9+/1o677vNxfD/c6Wz1pOu4ljaOcXif63B4x3V3S2vX
gbzP98l5pl2D6w2+ut5pdbfbYtbmn0VWmYdXTft82u+f0hUt/3gizGWQebrObufV4pjWTvo+
hxCKT+DB7lZ3tHrE8aTPu5XFFvP539vgqe99q//9s6z54/beMRjP8QJNly+eAfb/2Z/9WX3x
i1/U5z//eX32s5/9WP1S9iysZaNdo8/d6eV0lKpN971ynnxKH8O/LnPtHj2FXxjHbQYnHu7u
7vTee+/pJz/5iX70ox+VQIYH9pwG/npK5lvM40FGgile7OH2BRo4D7Wy5djI5cCD274HsvFd
NtxH8v1pednn9JSudczq/NniKMZ+Sp7zGqBZ7p6Ruyy57lwXlrhdcfzjNPAApsuvY39+7zbd
adHSx5/vn3Vc3+oPD9x2cY0HfAzW5H4EfqifynL+am1a13Xqu67oOE90S3q0dt+DNe54XKjX
rtl9RtdbvgeO8/wzjOf+jeMEX6vPoeXvNiDs8vGUTvG1t3bSA3e+R6yHfXF+8Fc7XhlLa4zh
cSTH2I4TSF54oVpbrO3YF+zXzrHq10qzlka+Xz6PNsbSYgxPOvE7H/spG9naQueT9uV2sv2d
y6knr1r6t3bH58FYbcGG09Gf0crIao+Nbm3y/qnkxcfxrBcbtDqttQeenH3KL3c6+H6iF10u
n+L3dhxeTsuU1j5iSw+XLUkrzNjaffelW3vb4mMfA9vkMT2Xkdb+uN1kPY45WpzW0tX32vXX
UzyGPvckT8sX/ln2mb/7Ot3+MhYJqNb+uw5r98efhX2Sase2tlgLzOV+tqRVDNExYVjslsec
HH8QH3+qCKnYzbhuHe376EUTHs92unu8xnnc/bY2jvmUjmr1Mv9an9ILWl1mvdiM9zEe+8QY
/Gt53+fvWAX973rBZcoLpDxRmVLtnuYFfP6MNobgRePtczx30Nq+pzCg86fT2mMpklZFA74f
LR5vbQR0cbwyz7nA0PNLrdx7/sFl34sivWikxcVlfYu6cPnwuba6z+fvBU2SSvyc752fmRPy
hGzk4oEq7+ghSaviE7d5rayxFg6T+AGDYgc/xv9jbjyfRL7LUqGj6vz4Pd0UWn6Bn/1gkesC
3ud4iPe5njydToWntls/BV9toNsJMEJKaXW4hudBe67dpliztUldVzuDXi75QGmr2+a5FjbC
634IkiR+220CWrUJac9jMN9xHMuVf95NwPUwce82tuov3xN4z/nR5+f6BfoxR95zuVy02+3K
mG18lMNsFFV5Z1znUZddeNp/D62w3eyX6xSnG/vg9tt1Czzi8gP/Q4vT5azTIr/zZHFc1cx4
/v/SNTIGDZtNOe3f0p454Tfzd9ZUY0DLIeulI4iCSiEU6+3++W//r9883p/03T96R69+9D1N
p/cUw6gYpU035Jb+3AcdQ7ljR8pK6Wq7Vd93Gi+5PUwXo8bzSUNICvOor/+jf6DP/MLP6Zwu
mtVrThv9yZ98Xz/8wY/14QcfaOhnxbjcCxrynctUp+e7l9ZtwhF8ryyGgagSgTlCCOVu+Nvb
W7311lu6u7srf6e9R1yMM21KYFJaA3klBwoIpxxm7rqutJ5gToB0Kk68nbs7H85MfB7gxQZT
JUdwj6oxTij6Cf6U0qqlOUphv98XIMD7aOHfdbXds58s8qBVq6SpDvJEkxcU9H2/ak/agvvW
UfJ9m6ZJz549W4FdN0iuYOiEcH9/L0nL/SNhpcTc4ckVNLkYxIWYvS4KIdVqYTcEIYTVvamX
y0W3t7elFY0nDhnLlaErDNbtRSxSFtR8L8x1OaXqDijGogBvMwRtUKsqjPyi6hOej/HpykBO
wtB9whOg0NmdXlewGC5fuxsZZMANrdMYurks+fuQLU8m9YvBd2OAznCeZH6vX7/Ws2fPVmCT
9TjgZJ48j/fxgu/99Cs0dYffC0vgBQI9yI87J67bAG8eCIKP0S3rqtx1stuBtDt14ziWcdyp
bYGOA8O1bOX7aykWy+tadKBq8MSLSZh/jPlEADbFHY+uq6dZcUKgP3Nyp7gFX60D7906nPb+
eXe23ZgOm3py0QH1PK9PH7NXzN11KT8Dcua5nuB0x8ZPwLVBZdaMDPopbwcofjIAPmKdvjav
avXxkWeADHODX5BZ15cULbnTAs2wlb5frHW73ZaKa97TOuauX9ymoWvhB776OvzZyMF+v18l
MtEfrXOJvDr4LIGHuE6KOl+O4/gIvLUgznWTBwPRVXldoQDFlFJ2mGJumRli1MXssjtZhc5z
Bn4toEY+2mB+66CDLXx+zL1glhB0mWpFbDS6uAPsz+DZ2D54la/wVOtAQzP+5s4J+tXbA/re
xBg0F/1Tnf58OoWgVO3643Lpc4HHHXt6MZjLqlfNz3O+232a6/1ybh9a/vHKY3RHCEGbhSfd
DvJ+SeX0zar6WLXIyceH1lQ2e0Eo+4sMgQ19LGS1LSqQckGtJ7Scf2KMUloHJdtEHuOiL/10
zfF4VGjwghePIbfM3dfd2gifkyczYowLm6z1nvOH87K32JNUdLTjPb6WvWz0YhsAhA6uD6V6
CqwN/HlgxGUNHea66D//5/+sP/uzP9Nf/uVflmfCM47l/QT1ZtissAg0Lc9ZxkBvMD/GhWfa
wDa0ZU88oOp6CdmlM5XTH8znuJf99ECslK8p2Ww22u12urm5KcEb+ESq3W3wYUrgy3ws/j1O
/IRi92Ksd23WFpQ5sINv6nLvuhV+5nluy6dxLPrM1+bBi65f+118FvloMR2874VizuutPnE9
Dv7y03d5bD+hUrvu+ee4pxUZzvydu7S4PEKTUrTf+eldgrJBw5CvrMprXxeHOgZl/u4buY/q
ehaf7qniida/5Hnus0wLn2OjCOiBcVNKOi181soEuhqbjBzxOccZBJ18HvBXnns9QMHesv66
z7UzjOsb9t/552xzhpYuby7TdW8fX0fguNz53PEMMsK4Uk0AP8XHLV5xm+iy5fLFXrsdf+pz
7fduw30dwfazLcRt1z1NtZuc22vW6b48NPeYiWO6dbHuOsHK19U8jZcc8/ue8QJz8DzX0+g0
eLzqkbofHjj2vYXXsGXt4QsP/jodnuInaLeWTZWWqfCY09l5z30rH481OZ0cx7YY2PGv86vr
HPiMF8U77n/R6RP5Yzze4wVR/hX7g809nU4Zl4X1AQdwqr+cp3yPY4zl8461XQ+4nkem3J+X
pDk97kDjNnae8/Wv8KoH7aGBYxZPtPM+1w/Ii/unrB081sq2pJI0Yn8dq7u8s47z+azD4aDN
ZqPb29sV7nGs5rKHvgWfMj7PQ2fzXk/mIRfOa+yb6ydog/y29kRK2i/XGXp3JalifvbBE4LM
63A46LDPJ1WJ6WAH4FM+19qo6mslKawPtji9OWTn/gJ0dB+FbrX8Hd7wpBa0bXUx/NomoNkj
fk8SjzVtt9uC+eCZzWZTrm6Rauw1hNoeHTq4zF4ul3IFqcsFfMr1Ea5v6Fjo+MA7FxMDc1+J
5xGPur6+1jAMq/HZvzYOwM/esbP1c8BmLuc8C3voMTSeDV877XkOMTB4Ou/7Ol7KnIm95cLS
WPIiXBvl3R3xI1r7SbyIMdFl0LpgwGFQSuuCF7cr4ziW50m1iAt+Sikpaa0/29wJOBs+Rr4o
bpjn3B0QPZFSKvR1PvNDkS7D7B16qOu6ktcgJzFNkxTWRbh8nvHYq2Dvg2ey/rkUPebvQcb6
oc/Xt8Wam/C5+nvZT65ldXzBi1jCbrfT3d1doZXvLbQiX+c5uMPhoN1up6urK11f5+7n9/f3
UgjaH/aFV5yPGHOec1t6CnPJuZT4QMjf39/fr3DU3d1d2RP3CfEt4ZPMP7XgAhq5bqS1P+/v
+74UP8Dr+Cc3Nzc6n88lp8hnvNOJ50BPp5P2+722290jXm3H8FwLcaXT6aSbm5tV/oI9cXnJ
mKi26aebOs+kIxY6GP7yg7Ou85Et4vLYVO+iXDsnVJzkegyeRD/mfQ/qu/WeKSwJ/5R0vdnp
U299Ur/1W7+pZ8+vdZlOSjHqRz/+qf7N//V/66c//elyTcNOXCeJ3u/7IV+fuNiQw+GQO+qM
9drzUiDS9xp2W42pU3e10Vd+4zf0/BOf0uv9WX2/UffPf/t3vrnfz/r27/6J5vufKh3fUwgn
dV1QH4PisgH5fpF8n2XXdaUF7dDne/26GLU/HDVNo06HB22jdDnt9Xe//vf187/4CzqmSUm9
pJ3++I//XN/97jvaP9ypixddXw3KzkG+k6/r+nL3CMRrHRJX7myMB5Rd4WAA2FTG8rayx8Xg
EKjhc27MHRThpHk7fE/ueRIHhx+lxFc3bp6wcaevNbR+5zQvnkUSoG2ng5KBZsfjsQi+K+zW
gXcHzRkdoOOOGjRAebqjy5wwWrzXAy8e7JC0KjJx552fnwp8SrnIA4PVKkBPRHrCoQWgxfBr
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
LoJ42BOizBlfFF3qfOu+QlmWEd8h0ejj8O84xgRe6XiQJyO9CwG2hO+hK/I8j3odHb9araLf
zP3ISJaFo2iZHzLAumE7wL7xx+Z2CppAczaoOX7nBU+OWUEHeH673UYehZdZX9bbdSm2C53C
HFgfjxXnvgxJZi+S8WQoPDXPX6BriIPdf3d/Brmmy4HHw6wD69a2bZSd8/kcbdlut5t0H8BP
g2bwJePywjDWMUnGI8eJO4ndkySJXU3zfNyMQGwJP8+xBU+oM4YkSXR9fT05EmWOEbouTNN0
yHVl2mw2z8TVrLcXCeB30rnI7S3yiX5wHw8+ZO09j0DBCh0N+T7jRy94i/rFYqG7uzt1XRf1
Jj6Dx0qM8/9v00Oe59psQq6WgiPeDR5+OBwmxRB0wnXfs6oq3dzcqOu6mCMcC4mDDC8Wi6hX
wQShCbyDfoSPLy8vg/6sa1VlFfkH+iIH6AEv0PCccOApKRk2XPV9p6KsdDoexbalvCgExlsU
pXb7g9ZFpab1otPQ3exwgCfDMRq9WhVlNbHZ0LhpGr322muRF46Ho4qyUFPX6rtOSkP3k7TT
0AG+D0eLt52KrFCjXsfjXklW6tz1yptOCum+cAbz5eWlyqpS2udK+lzH407rm5tB4XexVUlZ
lpOqmsubG52PJx1OZxVZMNARbCEgbhr1SaIsHc7USsIu9rqpta5yVVWuLM21PxxVLRbqe+nm
wY2admxb5AlDT4B44DlPKmCMEFyY3CvBHACNQWo7PeOdIBJlgVBgqNyooyzdWeAf48VwLZdL
PX36ND6b1tBU8qGAcCDX67Xu7+9jIOjnH46Bdx2NBfMNAjka7OVyqfv7+7izf7/fq+27WEkZ
QR4LUjz4Qkmh9DlTpWu7CFY0zSnsMO865Vmu3d2d+q7RSy+9qHe/59165T0v69yeVCwzvfIV
71SSSFmSKslT5UWlv/z039Vrr31Jb7zxZeVJr4vlQk+ak4r1Wt/4oa/T9aOHQai66Zmqi+pC
r7zyLv3wj/ywXvvSF3Vz9UBlkmq/udN+d6dDkenVL72mbyq/XVWWq2s7nU5n7Q97LdNKVReq
9zgnq2maeKaIz9sNOnQ/n896/PixzseD1quF3vXKy/rpn/5p/fZv/7Z+/ud/Ti++9JL+/Pd+
Qvv/j673jrYtq8tEvznnSjuccEPVpai6lZAqJUhWWgqUoKggSREfr8d42MOB0g9Dt4q2w9GY
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
Zch+r6Hv0+c4QtAHBY6ydnBg/lsKYfk8rvfgEpCOc9Pruk7n8jTrtaqy0ti2attOZVEqShpj
ofef3+on/+7/qnffek/t6aSrzUZ1qFQo6mtvfVV9iFpvN1qvSo2rWquq0TCOKstC97udNs1K
p/2tTqd2qrKWdLFaaXe70/qsFO5299qsVxr7Tu++964+/em/o+Op0+F+ryePb/STn/5bulit
zyBEUNPU+ruf/kn9wi/8gn7ir/9Xut42isLxD/q//sHP6tN/+9OKfa+mnHaqxCjd3e3VjdJY
Rl1ebycJG0c9evRI8azkD/2ypTa8yA5jFJGfbe7rkQc07jyzLs6L8KkrVg9Y+r43xTbLC0EL
YC3jwgCHEBIQ5wrZx1cUU3EQPIFCzgM4EtIeAIxxrmh0R9HBshxoQx95wswDFq6FBkUxBazu
hLtzTyLBE+aePAwhqKnqRUtBkgEEAXwPeuGU8MNzXG+4E+w6DlnbbrepDb+DyRRGcH0e2Hng
h2PTdZ2urq50e3eXxkalpPOhd1+Ahh5ouo71pBP3wYGBxm74PLnNuhH0uA4lCYIe8oCcAAIn
S1JK9sLL/Gas0tR2ivN+cPDoRsE4HaBwB9JBEJw4ZCcHWJgrziIylJ/H6IAXNIN3HMBlTA4m
scasrY+P51PUdTqdNGpZmet05L5eqc96+k4/nHpvEeXOHfRnLtgJvg+NPEnrTlgIU7W0J1/r
emoRdjqdEs+6ffXkPfqLAAzb5Oe65Y4+7f2gH9e47vQCCe7r8gVdPdhGLhyc9sDf6eG6Dt9k
CRLPfOFFQR50e8KA+zt47rI1jsvW/9KcXIXurtcB6+AXZJXxehCdfy8fhyc/3EHnXiRqSX6H
EKQipADT7UDSP5p8TO4Nnfu+T0fQuM5wmubJCa5z2XMgEV3CMxgHz3vnnXfSvHwXB2tAxTzz
9t9uh7EtBCMOYsDvHsjyG7+MxBbAogO3Dnz6OqD/PLGX6114xYt38KXRGV4t7oUz2BIHlhx0
57mM24/+cHvk8uq+Ev4Jc/YiGgf90V2+A8QToICM+Ntc790guq5Luz9zO8n4cr/NgTl4yNfE
18kDVw9mPdB3n62qqgTEwa9uX7kHa+rJUu7tNsafV5aVxjimojjWyvnW4yFkIQf5PHZycFpa
ttHnh2e5Psl9QT4//yX+dH556OU+gPvD0Am9DY+4fYDml5eXC7/JdW9O45y/GYOPP+lRzUlU
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
cz7Kj8pD9J11pxfpT5+YvhH9E+4SHvvAfKf6AtSPei/9Ff6duljP/uYYeaQnn0/QWvWmzn88
dk006Dg1WaPyF0KANb3fp6C6ygDjUrWP/bGEvf+gx93pLlTOkWutsSPXW+02/SYmBDgH3kN5
1ISHxjo6R/L6dDrNCTQttuWzxjRjfKCJDLXN6ssrbqmJBvVR6CPwM/KI7qDkT+99Tj6qzadM
Kx9SX1GeyAt8J+fGZyp91E/gWk6nU0xnKbm22+0y7TXGol/Fi93x2C765s2bOJ/P3bGQzQDT
UrknfqcxFOlIfuLzyT/sfqIJMPIVv386nVISaLS7WP1vHYt2MCD+ythmvBFgv98PCg8Yz1Ou
OQ71s5msVt5dLpeP3GlLH1vjQrXfqjvP53OWQ2LkHAtpbq3FarXCapU2TjFRyWdQZ6gt1XiI
8qvFhGN8gWPj+5mg45zH6zmZTLBYLPK58+Nko/KCxm3UJ3wn11Hbt+vf1abThjCfoHGBtrw3
xmTMC+g3P5LXNE4nZqT+Pd+hupKyo4UHGnOEkLrzXlxcoKoqXF9f50IB3XxE+8QNnZTPW7du
YT6f5wQuCzU0PqPuORwO2R5UVZUT6fv9Pse9mpTkmLXYggUNnJ92iaPO1lwJeZXf5TqSNxQb
BZDpTxyW/EjbtN1uYa3FdrsdYC7sCMH1rqoq4Wy+3ySh6059qr6s2jGu22w2Sx1yXN9FknJC
nn0UTqIJZxY2kg9U13McZVni+vo66zt25aZOqesa9+/fz9+lbmLHUPVpyrLMcZ73Hjdv3sRT
Tz2F2WyWMSXKgXbXMMZk/Jy8qbEbfQVdG/U99vs9zucz1ut15hEm9ek3cI1nsxnatsV+v89x
+OXlZZ6z4oGUB/pOTZO628zn8+wz8R7aZK4F58M1ZhFU0zR48OBBvpdHG9BnI3ZvTMr/rbqu
0mrbgf7I4jH+QTklXanT6EtQl7AwS/WdFn2qXSGmp/4SMSzaLuaMuKEdAMrSIYaAqixRVozd
Y/ovesAY2A7vz+Pu7HTy0Xo/VGMpynzbNunY6Q5HdIWDbz0KV6BwDtYYTDtcMsSINngc6wY+
AK47sgPWYH86oW6bQSzlvQdMhPuWH/yRd7L9hu/atdmiQOHSDtOytIDtzzY+7Wt8+v/7JPyD
+7i5KGBtagOvCut0OmIyIfBdImYgN2K5XKGpz7AWaOoTYttiOZ9hNnV4/Ru+Aa944gn4NiLa
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
1Ho5V6oWOmy32u/26i8uNJ/NddgfBjqWruuHw0HPbm/19tMnurhca7fZqKpqhZBVp0rHfens
jb/OGuKDopfudxu1ba/FYq26D9rs96pmczVd1uX1lbpdq/VyrfVqrbZp1bRZbY5SNVfTt1rO
FwqS9vuSA2+bVjGVDrNdDqpCkPq2JNiqVGmIDZVSVNdmLeYLtfkopaQcohbzhVbLC/Vtr9l6
qZA63d3f6XK9GnexLZbLctZZ32m+WKhvO/Vdr3o+U1Ut1HXNQNBWdT1Tu9tqfziUarheQzvL
U6V53/Waz2fqD/txYY/HRofjXvPh7Ex3EKcBHoL64MGD0UHHYUJ5cI8Hux7sweAIGgbZ29NQ
qUw1D+dt/Zpf82v0xS9+8R0JFpwqDLw7/65U3SH1sbmxRpF7ayOUFM90oJxnewU9gjUNQggM
cGBQ0DgavjMUgNbHSpDqgZ2DmPwO8BGG519cXIyOyTRQYd44Ohg3Ag5oQMDrCTOe4wrZx8Y8
KQ7x65xOBJteBck6Mt56NlPN2uwPmqWqFMaEpLu7Z/qNv/HX6Q/9d39InbKebnb65D/+uL7/
B35QP/2TP6UXry/1xmuvaxYrXT18qG/5lt+qX/tr/xV97CMf1luf+7yO+4O6prTVv7q80GpZ
KSlqv98phKgu9Pql/+LX63f+rn9PIQb96Ff/Qr32iX+q46FR0FDZP4w/pUoppNLOPlQ6Np2y
SuvHEKVZXevll18eqpg7HY9lR9xuu9fleq2ua4duBVstlgt1Xav1cql2PlOvoKqeK1WzUuHe
F/1yd3enKialGLXZblRXMy3my7HN5PpiqaquhtY2QZfrtQ6HUjGfcz90jDidXaZhh0lRoge9
/fbbiiFoOV/q7u5edV2pHfimaVvN6uIc1rNKVYpSkF7/3Bu6vb/X1dWFrq8u9N3f+edU1TNV
Va2oXjkH1dVwFt6x0ac//Zp2261yfqiQe8UqqD22urt9pgfXl/pLf+mHFEPpgrKYzxVicQze
//736xMf+5gulmtdrNe63+3U5aBPf+az+pW/4lfo7vZOX//1v0xf/8t/uapqpq4L+rb/4Y/p
7/7dD2h9sR4c0aDHb76txXKmf/93/rsDgKnSPlBBOUelaqbPf/EL+vZv/zP6zGc/q8PhoJ/4
1m89A5Mo6nHgq57Vao6NXnrpJa3X69FxpZLOdUqMcXR0vO2cA3EOIBJIHpum7IYcg09sz0mv
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
2J5y37Axpu8UU9LMsJsQ3L/plbOGYv4S1zddOaqbY9RiSoqpHL/ZD0dpHpuD5ou5dvudpKz5
rFYMSXWsS4I+95rVtVqLozzOLDzRSTFpPpvr9n6nVM9VxajlcqG2aRRDySlcra9UxaDDsVU9
q3XYbRX6vuT9QjnOuus61akUz9SzWof7jUITVJV22YMjFpPq5XxMvceUdGyGikgFhSxVs7qc
Sd510qAIu7ZVWMy0ud9oNluoTkldVxL55VylS3VNq7ZttD/stVqvdHl1pcN2OzJPzlk5lLPl
QiqVDUlSVaVx91rTd0rS0Pql13a7G42/JzhgPBgchsBhnoKMMKYzFwoN5nJgjWouEl7MgXfi
dGKUP/rRj46M74oOxuc62sVQ8YcgeuDvQgSwxHUOeHnFvhtWT2IxBgdB/e985w6WK0CUCM9G
mXgVIfes12sdj8exBS40puihqqrRUO12O1UpnQWkDnzhjFKx6AUJU3C/67rxOncCUBCeWHCw
2oMn5o4y8yDNq2D93r4v58CuhuBjPptpXs/UD8q2a3CWO8WqVqzmevjgkebVUrN6ruV8pTSr
dfv0qZpjOf8txaQXXnikd7/nPXrrC1/Sj//E39WHPvwR/Ybf9Bv0q7/hVykvy25whSCFSm0u
u/j+4T/8sP7QH/zD+sxrn9EiJW13ezVdK9WVgrJ29/fqukZ916quK6W60ma/V5eDcpCattH1
1aU+8/qn9W99y7foF/+SX6JQJc3nS83mtR5cXujqciXFAqLNFwst5kvNqrnu7u/1/vf/mF7/
zBv6DdVMh/1Rb37hTaUYtdvvVMWhE8VyphyCnt0+03q1Uj2r1OZOm91mPN/9wx/8kN780luq
UtBhVypvf+Yf/Iw++tGPqmlaHQ+dqnquV1/9tD74wX+gP/yH/6C+9l/42qIbigYbDFppfRID
564mVVWt47HV3/k7P6E//ie+Td/4r/16/fbf9i3q26w+d+qaodqv77Xd7PTDP/zD+s7v/M5y
Zl+qyhmsKgn3Y9frS2891u3dRrN5rf1eSjHq8duP9Vf/2l/TX3jf+1RXteazuS7XF6e2NQr6
P/7yX9H9s6f6xt/0Tbq936iXdHd3r7/8v/8V/fiP/7gePnhBx8NOXd/pe773L+ibv/mbdXtz
PyYTc19G0eVen33jDX3Xd/15feLjH9e73/UuHY9Dx5K6Utue2o05qIJc0kYJpwhdh/Plzj5y
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
RefHCuZp57tjOu6fSDpLpHuCv67rqWOw44ZLH4bNER5bk9z2RPr19fVZBxjG4gWD7vtAT0m6
vLzUixcvJnz26upqGpNjUeBf8NSyYOOTTz6Z4hEvyiDe8EIyxun4mHI5QriuKnVtq+1mo6au
1Z5OGvpem7HDgLcfB6eGHlVV6ebm5jMxFn+zPmygcR2yxEaWmCiyAL6PLqDgwuMY/DnsHJgJ
r3MfEuPg2fDnqW1L8dCIySiEKTFcj8WC0BX6EdNhc7x7ALv84b/NZqP33ntPX/ziF0UCmWNv
34UboBs5wsBp4nGk7xjn/xxZut1u9eLFi0nOWUPoAE+C9XshHvei4MWx+5xL0QqFSKzjdrud
ZP/29lZv375VSmkqBkAGiY0fHkquiM4aHjt4ZwXH1uAV5kyugjwO/o1jVXzm/v5eq1U5BgF8
4TTmc1frtbKk4+k0rT1dJvwIWPd1GRPz2Ww2evv2rZ49ezb5EfjoXhDlifrT6TTxM/5L0zRn
RZ/kTH1Tndtw35zpftcU88Sg1Xqt3e5Sq6ZgnrGqymaOEHX78KB6vVYzrmWIZfMi69t1vY5t
p+PppJxT6To+ysnkH4xY0alti588DKqbRrGKOhwPZSNIn0e/XNquN0Wuqkq5z2pipe16rb5t
1XWthpT0+PikU9erazut6kZlz0vSqTvqcDoohLLREb6ou56zxgflPKiKI9jStSWRmrKeDk/a
rKNyVanPszN1enrUxSbq+fNnqqukzWat0/Gouo7KuVJdR13uL4sC6+ddD3UVVcfC+I/399pu
Nlqdeh2OR52OJ4UclIZeQVl1VWu9WetwOGqVSxvn/X4nWqNTUXZ3d6ebm5uJuCg6Wi+/fPly
coipxkJwvMKXH5QBu25daUE8DIQnPjFWvE/C2ysc3YjjQPMclC5/UwmJseWsFweNcKopMPCd
zG7gMaooJBSWK0TOAaHVOEqU5zw+Pk7tSbxaquu6ydFCaXrl0Ol0msYeY3GC276XqqgmrlQ3
lU4x6+nwqJw7rZqgkAeFnPV0f1J3OGqzWiuG0flXpTwWh7R9r+///h/U3/u7f1vvv3ihZ9dX
Gvpe+91eh7s79f2gw8ODpKwhZQ2Smmalx8ejHu/vdbHf6ur6mQ7Ho37kR/6+/sGP/UNVYaPV
plZ76vQN3/AN+i2/5bfqP//P/kjZ0VVV+qs//Nf0h37/v6f7p3ttulYpR0lR/bHXz/78R/qB
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
EhM49oG+HtAnsZFs9OOj7KBjiU9DCKnFeHxcUOQYa9ExCy09gOb8CE5mfrSjdnumQiYYL7Lk
z2WNGL/zmNPe9fjaZi+F4dh5eHk7F72yO8b9Aw/yoYOgC3ZIIeTAju8qdN5zPeo6xn01sHu5
bm6fGBM8s7YJcfVct3XOWyU29fG43JbJgqqqVFf1qjMcr3I8Lise2+B9cDQ7JH1OjLe0c6XP
UCYfPEDsOgKauMxjp4mNIO+PdUqV9Tp87r6Zj8fH7RsQPC7h2IjfzsOOT7uuUxUe62V42XU5
43bZ4f6O+1x2ndauC0tZ9sJ1frywirVwm+rxN6dZiUNZN6eB43XwVdMucuFd8UrfBb51mauq
Kp3JGpeCVMfU4BjXITzLdXeZ6Cr5k/kxJrdZTlfnL+bDy693G+L059nu6/E/+oE282WBNPrI
i0cci0PLkv99Dm4D+f44Lq2IS/5G1sB7Tiu3K6w3ayhphRE8aec42PkYPeP2rkzElXrR163E
vNO44HVoLKW4yfPnz9M1s931Thde4FBVdS44wGdhXdPapE0q2FKOumUOzp++OcOxKbzsWMBl
yeNy0LqMSVGI6fdFpyQ9WeeYtheHggNiXPiDubvvUlXJRnl83dfRdYQ/1+MA6Gm+S3Lw5uYm
J5jYPOU41nW223Ro5v57qd993ZumUX9eeDLGKMW0uWjRn+uNjmBy5KGq1ju6q2rZhe7y7s+f
pikXN3ii1/W2+3LuMzMfYszcf7/fr/w3x6EeS/L8B7HPtm0z7V0fuI3z9SzxGXNyTEscmzEx
T+9AxFohH9/93d+tm5sbvfXWW7nLXbadha/nfo/TZJqWDrrwrPs6nt/hB/lDZp2OzAU7w/VO
K8YHHd555528vi9evHgUl+EeYB5yNugZNh9gG3OhivlC4DCeSxLb7YHLo3/fX8QsiNm6vwad
0XPTNOXiUcZNTBk+KTsh8kzHY64zmqZRP/Sqm3UXKC/s8ByBb9gFc5byAm34zd/eMcLxH7as
qpYNdi4npSyyTqUf63Fb/O37+3tdXFzk+KDrq7KIkHV75ZVXJCkfU8D3zudz3hDl+AO6oJMc
D8EDHvP296A1/hK5Ey/WhLecRxyzjmPqmInP07Rtwmdzp8W26zT0k4Ki2rrShz74fn3yE9+j
1z/8YQ1DVN1t9NU3/0i/8At/V6+//npKyue5jaqqJX6cfL5Z71SLLw/tcrFdVelwPKmXdPns
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
vjQWWWtzewSpULq7u+Niv88mSZEYVoGQ9rs8n89cXV1hTHZGOB34+Jf/Gr71W79lvbybGdds
pPWOs/TjiI1HHj16IhXouSK3rhwQ8V7At6Z2GCI+TFxdXXFzM3Du+8UKVi5i1bLmp2ntlaix
raobQsgqc2twzrDdZDW991SNw9m05CXOWcZpECKqa0lerMttgtpZ2qbCzwO73Q4/jVxeXuKD
Z9t1DOeephZiaxx7KmeZ+vMiQun7E8Y6rh9dc3c4U7UNLW0W5jW0bcc//Wf/L//gH/4cj/YX
fOwjH6VuN4Ch61ruTgNmGEkp4rDMfpa5CYHKGl7dHrm82HEz9ViTiPNEjE2uPjWkGLi82PPy
xUuOaeb2cEeMAVdJf97Hj18jxIAlsd20tF3L8xfvY6ioK8vL5+/TtjLPwc80tWUazkyzp8lW
xhLP6kzCGOY53NtvDy9lZR6juWMJki55o5EyOJtFFzEGLvc7bm9uePnyRa6m0f6DcrG9vb2l
7Vreeust9vutENCzx/uZ9997Fz8PNE3L49de4/r6ETElfulf/Qum3SW77QXXl5cc7m545513
iCFwffWY2Q+czyeuri6Xc+725iVX14958uQ1NpuO/uWZ4/HAs/c/wzyehaA+H/ExZktni3Ut
Tz/QUXUiRDkeX/GZz7zDcOoRPXh2T0gJ60T4cep7Pvz5X5DzFnFpuNhfcrx7xf/1N/5Pvu0b
v0l6IScIKJA60jvLbr/FGvDzyDicOR1uSVnQ0lQ1x7uXBCzRVISEiA0uL5jHgbauIHhsslgi
k48EJkzynM5HsX+bPRUtNy+es9+3XFw8Zsr9xHc7qTZNVu6AyRj+5S/9Kz7y0Y+xaVpOhyMx
zBxub3nj9SdcXV8utv3WOe7OZ7rtnnfe+YyQvcZwd7jl8eNHnE5HYpz40Ic+yNtvPmUae87j
yL/8pU9wsd/y6U9/irefPsUYy+M3XiP4kdceP+GDH/w8uXN4T13VHIeBf/JP/zm//N4zut2e
2tZ5PU3gUq4crpczD1Y3LuvkzNvtt7z3mXd4/fEVv+X7fhtvvvlUXDmMVO6+uL3jE594hz/1
p/8sVxdXxGni67/ua/mGb/zX+Omf/n/4hV/4//i3vuu7ePPNN/PaCrx4+ZI/9af/LM+fvy/2
+23F8fCKx4+v+YF/79/nzTffWio3p9kzzp6/9Fd+nE9+8pNyX7Dg55lN1/A7fvdv5/XXnmTR
rJO2F37i+c2B/+Ev/EUOp34RCWsMVfDz9vaWJ4+f4EwmxbqttJk5Hrm6vOD68oLpfOI7v+Pb
+NJf/WUYJ64qfhK3ub/39/8Bf/fv/TSTn9nutpwOR7ra0nWN2MjnvucpJfa7DXH2mKZi7gfa
uqauHF/yxR/jm7/tWziejvzMT/8MX/+1X8dusxGwsNvyz/75L/J//MRfZ7vZUDlxy7GuwlSO
KXgCIvxPKS3nlwhJR3adiKo2mxZjEtMUBD/wHksi5Op6cT8J4vARLRNntl3F6W5i29VUriKm
yByC2CbOI7d3B54+fUtil6vxU8/x9pahP9I2Ff3pVvZ5VRN84O54R0gRyyOa2uGnicoa3nv3
nWX9OecYTjPb7YZf//Vfz8e/8iuJxvLxr/wqfuZnfpZEIEXP3c0zDrcOQiT4RNN2TFGEBsYa
Li4vMClxOtzJP/2ANQLabeoKHyZmZxjHSNM+5+lbb9NuWoahp7KOGFdcQ3O9svplAaebGqJU
7m1qy363wzqHs4ZPfvrT/Ad/4D/kfB6Y58CHPvgWTx5fcT4dePHifaw13OTKk6ZpePb+eyTg
fL6grhuurx9DTNIGJ3k+8+5nMK7i8tEjrq6uCfNEXVWkGDifTxzvXlHVDY8evy45c9eyv7yg
P604SwmYal4fZk/tWiFM+yP92ONsRVNVHI93HO9ueeM1OUNDmEnkitl5pmkqhv4EBDZtx+3d
Dc7C0AvJ1G12QCKGSNdJm4XzMBBjEBHsODD7QNe2dF3DPI+cT0e2+0s22w3Hu1sOt6+YhhPf
8i3fxNtvv81rr73GG68/pWtavuhLvoRv/Ju/nv/+z/8FPvLRj1FV3XIvK0F/uUfI2Z2StMpJ
XtqTzNNM1zUQEmd1lqs3glOMghmMw1ncgHC4xnE8HpmmkbZpqayFfCd32WLewHInF+cJET6A
oVZHjGmAFLh99ZJ52i7xSQDWlfR6SAhKbpQJQHUotBY/j5mwy7bCtcMQqCsRJZ/7tQe0ATBl
sYYjTgPzcOC1qz1XF1ti8pACH/+qr+HDH/koty9ucpuWXHnsR+ZRCPW6slRO3jGEIPutJDWN
tg/tlvuutdm5pyBJ9P4vgqyBtm3oxzNhGvnA0yf8wi/8PLfnM67q6IeZN55+Hvv9hjffeJ2X
L57hs1jYz57z6cDz5++TYmScPCEaHj95zKNHjyELT4yBisA4zty8ekE/rHjE6XQmhEi3v+Dq
8hFVVdM0HcejCMmtha5rIRkskdPpjq6p8STatpF9XTvCDIfzUe6eweBsw+xz4VQS0YGfBmY/
M04jj197jZQMFxdXOGM49ye0PWKZZ5bjpeOs4p2qqth0HTUVp3ji9vYVF9stv/zOO2I7nyyj
D5yGkQ+99TbB3MfapmlacDkVvpRYh95DSvzIe0/drm5YISiOFzIxaqlrcZwbx5EYAlUt4iCt
2IS10l33g5JEJS5T4jSlMEExOsUNSgxdf15/KTZUkqKK7+ie0/u/rs8SE9Hx0rNLx0sLx7Q1
bllhqiRK+Xzln5XiF/1VYsmKAyofYK3FYKkrcYHRZxbsBaZpJU7GcVwq9gEuLy/vYSg6p6Uw
Usn8shjr3XffFWIni+EUsy8rmWOMXF5e3ivkUtxMMfn9fn/vTNU5KkVbJbFaYlKlAEa/s/zn
4fo8nU80bU2Ins1mK262BbapGKyul9LtU8fhfD4v4gtj0kKyC67pc6GFu/dZ5X4tCbuHbRqU
4N5ut2gRlY674l+rJX1aC6yMubduyoK00h5d113pIFlyTOXP6b+ttVxeXnJ7e7vgceXaLR2W
tYBPcTjFCXUsdN4Ei9ksmJ+OiWKkikGX4oQSHy1FOIrxlC6TijXqGlfiW+/cJearbUH12ZRz
0bnQ1ma6xnTMSkdXxdMfFnnq3OlZond/5TlK0lWFBPq+Jc6uz6bu1iWWWs5XSmmJC0pSlzxe
KSQpOQfFn41ZSeLSWaaqKo7H4yLY0fdRjkRjh7oC6JyWRLiOR0lmxygFvfpM6uZdFuGVuL/O
pUlr4VvZmkA5GGmxujoml3fbck5gJdhLrF7f72HcKeOvxNhVvFCeRTo2OiYlf7Suu9WtRs+J
UrDz/7N13uGaVeXZ/+21+9tOL9OYzvRGGWRAihDFHhQEAwqCGsUgZSKIKKKipii2DwGNJoot
EjWJMcGCxhZDEEWNFAdGyjDMmTn1rbuu9f2x9nrPHr7vXBeXA75z3l3Wetbz3Pf93I+5LhMX
y+dHmd8xPGD5PZZH8GZZctTvMM+gLCQw79jEJROLniviiqKoLxApxyYKN0xH2LiOg42lG2ks
C8/sE8oN2HrERCUMGKgNMjs3i1es1bIzSZmr7Z+hlhYO9noxtXodZdlEUQ+lEmJbYAmNfXq+
R5Y1kV1JvVFH5jm24xSul8VeR+F6HpZSxL0YyyoaA6TGqB1HuycmqT4nHFcIrarONcnuFOrQ
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
vPMdtMOA7VsfJe4vsTgfmrjDcUx1dVGR5katRrsBynFxQh9cRVWmHL7uIP72FS+jPTrOjp27
uO6661ha6uK6gZFF1tq0gqUijMJhIqIoClM9XJZ0uz1Q1FK7OXmakMZ9Dlm7iu98+xscdcSR
TEyMMdJs4QUOWZ6QV6avWqPZxPMDur0+3c4SY+02l17yc1zXI/AClIZK1VWiOWzd+ii7du/j
qKPWoxyfvFCEYYNHH3ucHTt2cNoLX0jl+ywtdcmKXaxbdxjf+Po3ufKq33LFr67A9z1mZ/ca
UoVSaFWRZX0j2+YoimyA41bkeUIYGTCYpD40KwWuC9qjqBRZXkBR0et0aTZbJLHZW3FcHN/0
Fy4rU61R1gmtoiwo05JG1KLdbtPpLOF6PklSsnvvLNN7dvOUJz+Fww491PjVEooyJ05S5uZm
aI6OgusxMzvPyPgUQbNNWkDZT9i1Yw/rDjqEQnsUeKRZxezsIq2RcSrPZ2kwII5zrr/5ZhpB
wDOf+QxGoxaOtxy3gkk2bXz4Md7y1n+gP4i55ppr2PDgAxz7lCfzjGeehNcIjc6JrgF87YLy
uPXWOznrrHcy2m4xMT5uDjDKsNoNscSp+84aZR/f83G0kRwrq4owCkAp4v6ARhgaMlIa4ro+
jhuBCphf6PCfl16Oq11c5dBstti7b4b3vv8cznjtGbzrHe+owWlIej0uuOACfvrTixgfn8IP
jGz14tI8J5x4DCtWrSZOM6paMl5pzcyuWb7+1W/y17/ezeTElOlNF/f4P//4GZ73/Ofy9a9/
DcN7Kqjift3HWbE0v8jlv7yCG2+61fQQU6BcQ+bwHL1fAi/LMnzHNcxiz1SLG+Y5tEdG+cuf
b+C3V14DSnP2O87mBS8acO99G/jpT3/GDdfdQGdxiYnJScraP/u+h3JcZueXuOe+DSwtzvPU
E0+k1Wobu9ZGTjHNjdzdgw8/wrojNnLD9Tfy26t+R6vVpDfokeYZJbDhoUfwgwZXX/N7brzx
Ztoj4+ydmae1Yxd33Xs/WivCqIGuoeP+IOaO2+/gsssuY9WataRJwq7pGf74p+vZsWMXl1z6
i1pi3cX3XZqtER59bBP/edkv2fbEDn5+8SVAyUte/CLWHnSwGVvMfipSv4YDUFJWJvbWSuMG
TTZv/j1f+Pw/c/2NN7F33z7abSNf6HveUHJeki9Rc4R779/I57/4L8zNznHddTcYUl9V8KlP
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
WTIcrjCbzGhdg458y4YkjllbXeXwwYMMu3UURZreoE/TtqRJSlO3TPbGWGtZHw1JYk1VFFjl
iV860kxnM1Zj0wX7mWfjFRVt06CTlL29Heqy9LI3tV9rk8nEr5nYkKgEW1U+OV5VlPkMpaHM
PRMv1hoTwetf/xquu/7RHD12jDe8/o0d8aaY21wU+YpyYwx74x2SNMVLFcW07ZSm0ayvr3No
Y8NXbLYtKMgG/XlFjutAYtWRgISBHx4OkjhlNsvZObPN7d/5NsPRgDO7Ez75yX/u1CR8wFIW
OXVdcu45Z3P++eezt7fHyRMnueGGF3L2kbMxcUS/s/N//dfP87//9u8xRjMZTzm4vs5Lf/Gl
9Ecjbvna1/nwX3+ELO1h64bxzi5ra0N+9VdeyoWXPJQHTp3krW99O71+xpt//01cetml7I0n
/OyLX+ITIjpia3MToxwveMEP86pX/w7DtTX+9m8/xqv+y6s5cuTc+fvVdbUI2JTyJBalKKqS
um7YOXOG0XDI//1/vYQX/th/ZmVlFaUTvv4f/8Hb3/EObr/9DqazKZPxmLqpWF874P1rmlDk
1TwgFda993n7k1Mhc78oCkbDET/zop9l/eAGtXWcOnOG277zba58+CNYTQeglJdes/6Ql+c5
g8HA94IsqnmFkFS+y4GiaRvKqqBpSl74gh/hWU9/OkVesHpgnfH2Fn/w1j/gM5/5VOc3fEWX
0prx2McMw5WRxx3RKBfxr/92Mzd+6tNoBePpLnWTM5tNiLRUAGqKWYF2kJrIJ4qtJZ9OMCbx
MpZ1RRx5GcTxdEJVe+JhVbW84AUv5BFXP4rt3QnjM9uceuBe1tKUtm6IrE9I1k3N6mh1HkRr
rZnlOcPhCHBo62V6lfLEobjb06BlNhvzhMc9hp/98Z/g0IEDKBUxLQs2N3c4deIkR++4neuv
eySHDx3Cti3OWooix0SaYjZBKefJSDgsDuV8BXNiDFWRe2BOQZSYzg+mnf+31I3l1OY2N974
L2xtnkS1LY+84gqG/T4qjtjcPMUTHvdYnv7UpzLsD6ic44Mf+Sif+vSnGI/HOFtz1toqP/GC
F7IyGFBHGufguc99Lldd9fA5ifBDH/own/3cTb7KsG25/rrr+NH//KPoSHPi/gf4xMc/znA4
pG0aSHwrFd0xdReJda/QMgeRoojrrs2lK70AACAASURBVLueOMmY5AXjkyehaTn7yBF/8Gi9
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
0A+8isnWFud3ZuR5RpKlNG3DdD5lvDni27/z2xmNB3RdTZwoPD2ZxdkOhWU2mxPHiW+7REes
U9qWXs91VFVJPZ+xWMyIqh5s0bRoFdE6S5LmnDxxKWW16CvNV5UzYnMZYzwtVRrRzOecPH6c
nQvn2d+5wLVXPYn/+l9/gSdfdRWWmIfPnPFVUs5RzmecPn2aIs950pVXcs0113DV1Vfz9Kuu
JEs8bWBZV9xz78Mo5VuynDtzmnvvuoPHnDzGDS97CRf2drniCVfwxCuetLQNdeQBb1XpWaie
9tRredzjLqPrmuUe3D6yyeMf9ziM9UCG3YMpd91zP9tbW0TKcde9d7Gzc57rn/0sz04FnpbT
ngHlAWfj8XgJDvW9iVfB/zzPaeqSvQtnufJJl/N7v/3rPPO5z6brOuqFp8D72Cc+wY0v+WZe
+tJvweGTOjfffBNPueopaK3Zu3COn/iJH+WFL3pxH9h0tG3jKyWVrz54ypOv4LnPfgb/9E8f
4sde8yO85MYbmJcLrn3atTztqU9jmGferrEOdMzGeMib3/xHvO/d7+XTt9zMT7z2xymGBYvS
+HY3bcu4GHHm9KN804tfzMu/57sYFjmt8/3tutb3cvfVM96eTfoeffLsKnCUvH2lcN2KLtrb
un5Prgfkw2QGSDJxtcfDhMsqSLiieA6BuRIYleuvrreyxcX5DRPh8r5cM0z0iI4Kbe1Q1yx7
VQcJYUkcSYJE/INVwsX3r5ezUpISMjfhfMgzr6PoQz8kdODCpKbMWTi34qyGCUkJrgoyXgDR
IehCvi9zfShpCYfWIgQihL6LjNHaVcWl+FiR8slmqapdfdYSUjCCJP71MtgrVa7BtH1NQi+s
fA3HGsqfPI9USwDLdjOyDnIdY8xyXcNkaLhO4ZyF8hsCCERWwuptX63Hcl3CCju5X1iRLveV
AI/cI0yAhQkcGZtcX3xQWQvw4JEkS5drLc++nKsALCHBJgm+rSe+xIcOgfsy13K9FWXimr9r
VlTsOpB1lHesdM+UtmIA4mvmW+Q8lMH1pHYoG2Gls8hOHCVfo2uWgJb+pwnHehGQh7wXjvHQ
+mhfOSnjUpFnb5PPmrY7FDMIE+CS7NccZltY0kwbgwBQfMXx4epxaW8R6tX1WEeYeJfvhusb
rvMKyMMhfST2fTiP4GlQRT7Wk82iY+QlzxwCd0IwRbiu61Ws8j3RM3KtUA/KHlu/X7im8ixh
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
m1rXGddmTeHVw+Gg8/lckvmsj3faY07Pz8/lc8bjGwjR495xhRzB7XbTp59+quPxqMfHx7L2
fLeu64IjO/bLfPf7ve7v7wsv0CWGsYGnIU8u7y7P6G/Gj28GD7FOw7zxsN21UkjqupzLrseg
p7HW7nAs63V31+ja92qUix6Dqhlz7ZTxaGxgUgg578648poSw6JT67xJ3NYWOSg6ZxG+pGmg
RcxVVVVr1+TztR309TN7xnFUbPK5BSklxTA7GJKmSTrsdwrpolgPquKkKijvSo0ZXNq1u8Kk
EJyWOwwSh+J6veh2u5Z2O9OU1HV9WQyuBxhBELLwpJLo94DEGR0D8vT0VIQNw+EvV5QwUNM0
udX2sDCEV5DzPU9oVFVVhJvdrlUVy7nXXgWFkR+GLiPYkuqm0f50kjTqcDrq6XpRCtI4jDrs
o37nv/UtqsOkF/f3atuoWEvtsdWLhwcdj3d6++a9/sH//ff1T3/lH+krv/Yv9Qe/8zv0/vFR
r14d9ef+7J/S3d2dXr66Vx2labjpcDpqmCpdnyf92q9+Vb/+61/Xy+NeP/f//IJ+z7/7exVi
rT/+x/9zHQ4n1XUW3jpIXXfWmJI+f/OoH/8bP6If++s/okNb6+640zR2ul0vqu283mkaVAWV
3SVF0GaH73q56HK96nbr9Pr1l9R1o773T/5pfdd3f5f+/H/9FzRVQUOf9Pj+rL/zd/+e9vuD
Qph0/3DS5++e9b//4A/rX/7mb+rL3/bvqO9GdWMODC7XXlMKulx7/R9/7Qf12de/mJ046bjP
/NU28xkxMep6uylNo+7v77Vr9/m87LpV0za63q6q6qjf/PrXddrt9eVv/R362Z/9Bf3sP/h5
TZPUD1k5vH98Vmxa7dpWP/zDP6bL5aoXLx40TL1Ctcutd2Orf/LPvqKvf+MzNfVe9ZzsaZsM
3o3DpOu1VzU7memLSc/nZ+32e7XtXq8+OWgcRimNGvqcGBjGpJeHo5KSpnHQ9fyspolq9jv1
fafj8V6nuzsl5db1L1+/Vhp7Pd+uSmlSFYOOx4OSJvVd0q7da3fY6/x0VtNE1U2tbriqboKU
ouq21vPzk/IxHzkp8+7x7ax4K8WqzjQLddYNt6tePDxoSuNMbxRdyJWNyh0aDvtj3oFb5S4l
VVXpcsljGIde1+uyC1FTzrbhROJEAPLcbjeFqlLb5E4Gt+4mpWXn5um41/XW6bCfz0mnrWLi
2JM5oTbGrPRVrQI9Bx/rupI0KRcxUPFNG7xRsQpq5opBKe+8H4ZeXd+pbWq9e/tWTbtT3Swt
pm7lfO1aMVYrHeLGbHF+KlUKqm1XYZzn2syBQd02miTFtlGIcxXf3M75crsqpAXocaDgY6A3
+pkdAF6tjLHEmPs1OFjulG3BLjfgFA7hNO7anW52bjz3WcCIaabxOtD2lv4Osrgd8KDQjx9w
MIDPPCh2MIWgkDl50IzNdQeQ+2JPHDD2Haa+A5eXFw9gm3CUQwiqY1Q1O4Ak6LDHPJ9EM3Qi
2CkgTViSKT5WX2cqInHceB8ncAsgsTYepEK3bdX31pHHqSMIX8D15Vwp5ysHtB3MZF1IlqSw
8IuPE4dxmUP5qLznAY0XxGzBSnfU+R7j4cWcHMzYgpTb5F6MS8J+mqZVVTDP9fGyJugzd9R5
hvsrLmP5JyfVSnJiShoH2mrmJFK73xX5zfPheACtgq8tcAMt6hilNHfuiQvP5DlHJS3t09GT
vr7MBb7yn4Vv10c1uXy5/tsGUR4sbnUltPJA0H87z+SxLbSlFV5KGdz//PPPdTqd9PT0WHxG
B0O2Qd82kC56KC1FRw7G+7i8ItsDPWhT6UPw35Mk+Mkuew4Ou9wjf8yhzEXr5IevVwjZV3BQ
3O0StNj+7UEyz/Zdsx8+o1KIYcWX3sUH2pD890JlL15wMGwLGqUpqYnrFo+egMuB4Hrnhb8K
8Gr62G2kv7A1zANgOCpqSsvOZ1+nsKGz2xzeG8dRbb2003adt9judXKK7hR+7y0oyDqxLp60
dJAOW8cOQMa/1VfTNCnpw10eXMv3fJzQjXhumnWO05j7sAN3mpKSpllnBYVY5eOdlIP/aZw+
+K7zqe8uZDwAPcin6yf8HdcBFFYxfmiw3TXhIJ/z5TAOSnIX61AAACAASURBVGkNvDkfS+sE
CjTEXru9+1iiZcu7AHEOsOT5rwuNig6an6UQMl3NVlE8AZjK2KEpPIJe804jbhsYp3eLIUHu
YL7LjK+rJ7YA+LiP85z7BVu/g/s4nV234luhNyh63p536uuG78lxGdzPz/B1QMxtMvdjbA6Y
eTGW0/xj4KvLnusstz3ut3ws+QBNnP/dLuE/O50ZwziOBY/BFrKmPj5fV/cRtslF13OshSf6
/Pkuc/63FxDzXLdb07S00d7SB9oRi6Cv8FmdVu7TeZLKdaCvmc/N+dp9RE8Oux6AP7dy6fEP
77muBxvb6gdkiO8Qa9I91NfE+cvX0HnNC5IpREeuQwirz4nJnMfxAeFRlzOe58WM213YHuf4
3Dz28VgB35NrXVcgO65D3Z/d6rat/+T3dNr5pivnZZcJL7qAr91Gu22q69zBYJwW/xP6egzr
vus4juV4M+dBeIoY3XXSdh0ct0WPs97ejt6L4lxOwC3drm7lgTG7LME/7utCr+w751gJed3i
Bh+TR8crnM+2nT0cc+B7bhukpWgSO+o22vUFcgwu7ryMrJMkdJwEvgIPp3AZum3Xvq5rHY/H
QnOST4zV5YH1Q6f42jmv+g7qre9GbgFZ226gQPeANTw/P5f7wYPMzX0Y6OObSZxu7gu7zoE/
uK/nMLgG/e76wefKhkqXefQPskHsj1x6TPQxXez+6DYJvNV9W/7ZJvjdx+Pz2+2mw+Gg3W6n
N2/erIoWyNnwvBKjbfwALxJjow44l8sPc44x77Kmuww8hd6iGPr+/r6s6zjmrm0cqeP+BfOs
67p0l6DQA/3ouoVYLD9zVBWW1t/u00/TpDA/B5vkupM583L8zrub3m43HfaHdUfZqtI0jZpS
yp1iqyUHhgyyUZfCCl/LrV9JfMIakNz12I1CbLd9fs+t/Ud2+r5fFfT4mrh9dx52f3xb+AGP
o3+YQ4y5EP/x8VEhhJL09/whPIg+4Bx599ddN7n/x9zQg+638pzL5aK2afT2zZuyMTnj5yq4
g9sV6EDOEczYO7kR97utvN5uquplc3UIoRSYQHf0CvrZ8VLk1+2BJL148ULv378vm5Wgy+12
K7LD3Ln309PTB/kEdD8dBe7v71e85Yl+7/xMB03Wn2vgDT+CF9uC7MCL6Exw86wzc24nVEGh
yvTL948axlGnu3u9ePFK/YwFXMdOfZ87iKc5l5yadeH0NOUCnN0OvT9oGOD9dce2cVxvenFs
gHWp3WF0QchGvlIKk+pYlxtMaVKCQEOfd7VV1Zykk3b7vaYpKaSkpm50ub3TMJ4V99LUTZqU
dO2ucwIzJzMQem/tz+KcTidVVdD5nHc4PT8/rwBVBOt8PpdqtmEYyrUAcQQ3KA4ULMoVp8SV
DUYA4X/58mVRjs/PzwUkiTF3PXAn3YU3pZycdAO8SrrMC9PM9MCp4XzVu7s7tW2jp6fH+Uz5
SVNKuvad+qFT//Soz95+oVG5WvZLn77Q9/6Xf1TH3SlXpKRBKUxKgfbDjapqp//+v/sf9NXf
/Ff6hz//j/RtX/6y3r97q3/vO/6A/tB3/P5M25h3VYzDKIVaj+9v+m//m7+of/yPf1kPd5/q
uK/1l//H/0nf+jt+u/7IH/sj+vK3/ptSqFThyCZpd7hTCFF/9X/9a/orf/mvqoqtKiV1l7N2
+yafU3LNbfKfn5+VplG7dlecbdauu930LKlS0P5w0Pvniw73R3X9pMtzp3/2K7+qv/QX/5K6
FNT1k77y//2afvZn/6GOx6Pu7vbqlTSp0rWf9HO/8Ev6o//F9+py7XTrLtq1raqq1u3W69YN
unU31U2tV69eSbJz/majcH5+1v5wUKWo2/WWz/gMQfvdbhbmSTE2GlOn29gr1rWGMWnofZdE
pcPxTqf7e10vF7VVUB1b7Y87vX286PHpvXZtq+P9g/rrTXcvXuh2znJyPBwlTer6q86Xi/a7
o06nrPBjHXU4HtW0jaq60pu3b/Ty7kHjMCmkJIWg0+mopEr9NGh/2Ku7XnQ47PR0flbdNApR
2u3n898PJ1W19Nzd1A03He/u1PedHp+fdDoe87EAUz6zVMrK7no9Swqq66i6aXS7XXXYZyB3
v5srLqdcONSPg4ZhBrRi1K7ZaRwn3YZet+6q0/Go9++ftWsaHQ9zUrppFSNt7CvFWhrHSZfL
WdMkTcNcQRkqDX2vWLcaxkF1XJKvBGko9CWgz62/T8dDKQTCKdvvlt3vaZpUx2WXc0qT6jrq
ek2z09EU/XI+X1YJ7CDaZOW5TtNiTI7Ho4Y+B6td3yvGOVjpJzWz09q0jZ4v5wzg9TOQs89V
a3WM6ub5tG2rp6enFTDhDs40j8/P0SkVoX2net6hm6aky5xQ3u/3aupaj+/f63Q4rpJCGEH0
Wtfdyhk75/N5ZUAzzXNXA/SmB0QYX5yCbPzWZ4tO0+LIYzMoJsMetDEXDblD7sFvCLnwwgMQ
9LTvTuIzr9B1wBxgAHtGsAYQ5w4edo7AAWfPHV//ITBwUAl64PTgwGPDt6BhCEHDuJwlhT13
ZxIbxfowXpxFnDt3ntxOjmbbrtdr4QkHKpxXHEDCB/Eqbne83XZ6MLO9n4MFBJwppdKt5e7u
TjF6IUKlcRxmx4rgMycUoDGBoK/TMK2Tl+6ASlITY26/HqOmKWmScmCmkH9PSxDuvgk0Yf1u
t9sKnMGJ53MHVqCDA34eUOPUbhOcziPw1japxDN97TlHzefvbRtxRPtN0M8LHmvbnW63GRAM
QV3PudW1qshYlu86yFj0zrhUNUNDB8WS1q0yPZhDFtA76Af4DX7iu053nrWVV5d31mS7C2Eb
GDsA5UlLQEgpF8DRrYTxStLbt2/14sULUTzhPqwnIeAV39mCfDofOVDiepdx+vse5BYZn5Zd
q9zbgWpPBjpQ6jvC0DvQH57xBDj2t/BUP8x0quYja9ZthR348/Gyni4TPAu5oYKe+Q7DoBAr
jcNSVOMyNwzD6nxe+ILCPK538GKbHMsguCSzrU5/xtE0S0LMQULu4braQV14wUERruH7Xdep
3eXOQ5JW+h2gjfXCLiIT6OGqqsRZkfAAz0L/eWKI+7mNcFu1lRvXV1sQh+8AhEAzeGFrx4LR
x21fSqnMbwvEUlwWY8wFIQYmbOfKurltRDXSTaauFh5yHTOO46rtKT4A/OM79tA/ro+ctknr
5JzLIUlf13PQHICormsFreNavw80gE9W+EIIK5vmds3XjPs4P7ImRa+2i0/DGjLmuq41Tssu
Yi9m4P5x7trmY5mmqexokXLcubWtTjdP2MNTzuvoEteBTlP/PjrHk4HuZ7vt83s4/R0Iyr74
0pnK/XTuie5AhlgPeBYdsk0WOL3c1+DF2MBlKEJw38eTAszHgd6tb+TPwq9Hd6IXvYiUcbgf
5baW93e7XdFrxBXbjhQ+363N8LXgc/e3fU7wpq+h70r1ufN9eGh7dJP7/NM0lVjTdbPLGPN+
9+7dKkHDvT05wm/nWecj5rW1IY7hbRMV0N71fUqp7FT09UX/MW58UF8/T1Q5DaGTjwm9w3iX
rnbrQltsgxcjAEC7/vUEis/H5+j3cPlyniVGdrAfedweTYMvBw954sZ9VOTcu4Qw7618uj/h
doICPNbZdTvj4DkeS/gYSAYXm2F86/4O/FrkfBMv4Dt5rOM4K3F+SknH47EU+iGv+Bk813Us
90dGt0WEHl8yb2Iz1gxsgYSiy8w2lvC/81wWGfHiTddt0rIrH5lj3IwR/t/ai+wX9EVOvJjN
W4izwcD9O59Lmj48VsF5ejsveLbEXKZXwULQ1yRqeB76032RcRx1vVwKXgVtSLb5EXPu1yEn
TlvskV/DWCSVRCYJrm1s6D4o97ler7rdbjqdTgVvYk7wi+tiaAcdHGcJIZRY4beK8cdxnHMk
S0G1x1bbmNPzHY6jcA27tCmo4N7Q1H0Pus7BU17s4HTxeUMH3+EewlKIs21Jv43nxxmHhL+h
LfoEzIfxIkPun0Njvu/FRHQxQHc4P3gRH7/5LjLEWCiwBF+FFugLSaVABj99G3MzBwphxjG3
Dk9KpbDAMcmUkpSSur4rsux6dcHhpGlax/Je6LsUJeTuwBlzmAsoq0rjvA7TNK261Wx9I4+7
iCmwydtnMp8Qcj7vdDophPXRLJJWsun6iR/Xx4wJPsP2bH11x/hYby9OAGOpqqroInjs+fm5
fBdsDDlDb/Dctm11Op10u9309PRUYinW2vmaRDK+nOc1iS3wXWIddTwe567K83Elwxoj4KhE
z2e6zHvBKGMgf9D3/ZwXWh+Zw3xLLGu8jK/hRUzeWQa+JCGNvUH+eD738BicAuYYY4nHvVu7
Y/in06nYY5cx9/O3xRHItq8L68D/HMXuBU/gdFkm87HPdb3EDXXdzD7qpDTkjcNTUu7I2+dN
cd210+lwUKpS3mA2acb7gqpKGsdez+du3jAN7VXwn7oG28udVuFFciLIxTRNit/7x//ED6Sk
ApQpVSVxlpX4pGEcdOsumqZRdVsrhHz2gFLIIEWS6irv4B2nSaoaTaHRVz+76Gd+5qcVpkFh
HDQMN8UqqJrbUu/bvbq+WwkBAcNutyvv4dQ3zbplMwoVp4HF8CCDar3j8TR/nncrjGOusghh
aVmSFy0DAdkQUcGxBLPPz88F1KPt9DSNOhyOhfGoiNmCWYybRMn5clFKU04Apqm02QbEQfHF
GPXuXW7Fn1LSpOwA9t1NISRdL2e9eLjTf/Sf/afa3Z+02x90d3fSYb9T09Sq6yrvyI5BMSif
cT9V+qv/y/+md5+/0/P7R/3oD/2QPn31Qt/93d8ppZxAnYakoZvUd5Nu10m/8A//sf7KX/6f
dTrca9fu9OLuTt/4xtd0uV716vWnev/4rK9+7ev6uZ/9Bf3Kr/wL/f2///P6xV/8Jf343/hJ
/eAP/pBCFfXixUulNKiaW7jXTaNY14pVLjiJYQnqMRDQbUq55UwKUjcOOhx2Gm6dLpebYqz1
i7/4S/oXv/ob+n9/6Z/qa1//uu4f7nU47jRqUFLSbr/Xi1evNY5SFVt1/ahbN+hy67Tfn7Tb
HdTudtrt9mrbRlUI+fz4FIoylnLyfZwr8EgkoTzGKbcuHqfcziPNRqPd79S0rbphyLumY6V+
7HW5XVRV0v64Vz90kpLu7+/LWSxDP+gyJ1lOp6Mul7NiXamK0jiNevHiQeOUz46PddR+v9P+
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
LZ9pzE5u5loPF91Ls2WIUFlV5f39nebJ0M+/X6/49PLpAxZSx7n8HMYYbJmsVtd/uDZU5O+r
RkWOvY/HI06nE97f/waXy6Vg0nXzJiklYs93cr2Oaz3khb6rbtX1P34GwrlCieHrWJ/vbP5s
IQS+fv2KtuvKZ8UY0bX7z8/zCq0dhqGDNhqmbXG93sq41N3rnKvvDcy7MhyvP54TVsThnMIY
U6wSp2nC+XzGPM874TnXoepiOcdT9/u9ih2o1sn55el0Kjn593VHjuH5+ZhwX3fq83dN01SK
yjy2dTGcc/IaX6j/vSaj87vw3cproL5v+blYOaKuu/Hz8Zzx/F6v1xKX18TVHWfaa7G8Vhm3
4HfZG26agsnwe31fcGfsICU6oJuspjutDn/65St+8+d/iX6gJskExk1AcXqOTZMgpS9r16xw
Z7FtZOvY9322Usg4FgijBlDGG9jrp8MwYMt587dv36AzkZOfeV1XiP/0v/5fEwEHPUIgNiVP
vFDkTcibibwLaTGnIsHNsus58A0epmmgmw4heYydQPAC/90//b/w3/8X/xWacMOpvUPJO5SK
OJ8ueD6omNh1HZ7PZ9lsh8Mhb6IdJOECO09C3XmwdzmlD6wWIUkqhVkrfd+XzbVkDy/2OawT
E17UvGB5Y3GiwAuwZn/wYVeDaxRY7qxzXuA1G4cXaJ1E1+ANXawf5dI4aeHNxYuXNw0XyPl3
6+SWC931M/Bz8Lsx4cAYg+dzL/hyEZv9VphsQUzn4QOjmg+b+nCo56zve0p087yUrpTq4OKF
zYcWs7d4fDnxZvAJQAYQ1Id35+/ldcBALR867A3Dhy4fCHVCWf8+H+a8XmqGUIwk26a0KhcP
Xwp8cRMguhNG6rnlQ0cUP0NXvk9rktPnd2VgqGazMQDHHS58ATPJg/fG169fcT6filzL5XIB
csDJBzyDRXUwUoPA3lPSxXPKlyHbcxDBJqFtu9wxQF2GtNfoM2L6qDjRNA3WbaOivKDun7Zt
iny+EFSURT5/tCa5LD7UrbU4nY+FfQcgy4VKGE2e4NP0yM/UZpke+vsYIsksSQkfcndxzHKs
McJuKw6HY9mvq60vVFJCcNZCamJ19S11JolEnd9JUveX99RFPYxUlN6so4uj04gpFn/58+mC
FBOWdclyMrJ8Xww+A1Er/LZBImYwKE+OEEAGOiiCJxkqOrGp80MCiBCAFMhG45Bdi+5wQNd2
GIYep+MJl/MZwzhm6VJASACSOkmGccDl5QWXyws+ffqMw2HED7/9EYdhgJIKUUh4IeCSQFQK
gEBSgFQCEhJaEjiSADjrERPgkkAyLYQ2cDECoPeWEECkNWe9I/86UBEteI+QqLtSawK/YgxQ
khQOpGmgmxbPeYVPiQAyI+FyFy0BhiIXdUg2arYeShsas0TjOwzjzkIUCsN4wLKsUFpj8xY+
BBizF1zsun1gxg59jzl39cREajjH4xHrMoP907wnj84YyW/qcrng8Xxg6HvysItUwBwOB1zf
rzBNg0uWjp/mCeM4FDAcKcFuHkYppEhygz4GTMsCoQTtraSIxQ6SOxQCkApYNwupDLq2Q9e1
eM5PhNxdHF0AMqDR9S0g2N8sQAsFu6yQWgFS4va443g4Zh9lSkr6pisJhfe0/lNekcu2omkN
hn6A2zZs60Z2Am2XzwiTEw2Xz0GNeZoRRELfNzj2A6x12KzDcDggxABnSX5pmmaMA3mSzxOB
bZRIeHjvsHkHLWTx8YqC5dI7NNqQhKbW6NoWm/XYrKXuA2OgpCL7EEUy720mC83zBCEklJR4
Pp+QpkFCRGfoTEyCSFdAJCsipUgZocQLCdM843wZ8fnziF/++A4fFKSiLvQQNqzbhuP4iq4z
ePv2jWIfZqh6hxA8xsMJMVBnnsyd08fjEdbZbNkR9jggEKhZE8+macpdiwQwKrUT06SUeH9/
L7YvHD/R8/lyl2pNMpr3xwOHwwHGEKgipcKybBjHjora2uBwOOD9TvexEhKNybLcUiClAKMN
mrbDskyZuNdgnjdYy4CxgbOU5LQddcGNB7rXmNlNcq171xjFQKHcp+u6IcSYwU2SBCSG8AaA
CEVdr+H8hsf9id/85rcZIL7n5IkkTduGJIaHsYf3JM2uFRVofe42TIk7/blDTmUvW+Qiiofd
SIrYGI2UAp0lGcSV2AusUpIUL5Nz6d24c2AGy9SmRMQ1ZAB4GAb4QDHB6XjMHfsexpCyjXVr
iTs5lnBu99ubpgmn0wlCCDwej6IaxUUtfhbulAMijGkLc3+eZ5zPB9zvUynkESg+lC4ojv/G
scOyfOxM4GeJKWJesr92jNhWBswFQiL/xO9JuTXJU4iUiYR7AZfPfaUUtFKl85aVqgDsuYWU
GIYGKQnscsq6vGu93mrGPMfgdfG8JlXyu9LfOxxPPd7e3vHlyxnrmnB9v+Lz5y+ZXEmKDpzf
cIGTiZdMNNi7MzSEUGUcazCD4znuKGQrgDpn4bi/SF/mPCmk3RqE42DOp57PZy5iUqcWg1dc
wOE4luND/h4GL2rSNT9rXRjiuJdzRM4jnXMfcrq2a0u8rZTG9HwSMM55IIDjeYD3EfO8K5rx
+3ddl7teSBGEz0Vaj+RBjZRgGoWUZAGkalJ6XajnvILPXs7pjNZZHjqVYnP9vgxC8fzyXvtQ
wBb7PEipSmzDClRAglaUB5PnuELbNnh7f8dwOJCKVla+qHMxlrzn9VZ3bvDc8ZrieeM4iQEb
VtVjVZUQqUPTZNW3LXt5B+exOYvPny/wHqUAWBfzGbzitVHjBwyA8bjzXQvs3ckAsG0rhJAl
r6b1R2pU9M5EmJqmpcxbrY53fz7KXSyEQN+QPG079GSP13Voc5PD90AWk/iZzOICYRolr80x
MfmvLx/2AeWwZGlC6wsln+OO7LoQW+9hnleWtmTitdZNOScBIg3yPZlSgg2swEJ5R/I7AEtn
TkSMocSmNYDLZ87lcsT1+ihzx80IPH/P+YnX19dsS+cyRpN9kWPuJq7wnLrBAAD5Zof44e98
3LGSEAL6waDretxv1NXWdhrX6w0CuzQo/5P/xxgKj53IRVtkuwT6ecB0Go/HBKkM2RutM7pG
AklDaI1pmTFvC47jERIK3rksTZ73W5b5TYk6FDlfloI6p5VUZR2KfE7O84zX1wtiTPjTn37B
jz/+gHXdyhnI80v7r0EIOwmuFMfVbolBd2+Dx2MlsvHQkVpQJPWxrh3wxz/9EcfjCJWl8b/f
c7wf2ralO8BotK3GlmW3L5cTYgz405++4dOnV1jrcvw55qI6sK62FMoJWG/h/U6u4m4wPpP4
PuX9w/fttm2QmuxMUwR1xBoFHx2aVsNHgcf7DeMwwJgG1lJ8Re+zk2DJf3m3bNkJJeQHK+SO
AWmtEZwvmFKMkXKzivBVN9gwaM8NRVyYZ2IMQDiHs0SiIvKmw5Bj4sv5BO+p+Nz3Yz7bNrIk
yfENgIKBSCkhFOEpy7qSL31jKO8LCTGSSqzJTSxTlq4VUsJzx2WmEqdsWZWEgAsOQ9sjeIcE
HqMIJdmPV2Jenhj6HhAJ07IAoOaMFEn5TDcGrWky0S1SbpfPiZAApQ15oAfyeB+GoTSEzfOS
ZbSJXK3Nru50GAbESNDJ5hgXyopLMWbgg5Q9hqFHig4hk5do3ALatoMPZJNGdkcBpmCyLCye
cDi0eH+fSAVPUd44DBreJ4zjEd5HLNsGJRS21eF0PsL6LRO5ToghoDE6N7H0WDeHeV7xeDzx
5fMrtCT/5bbRVC1GhADh6P3QYV02sh7QBjG4TCKmnKjtO/iQiWBI0JLwmtt9gmk7tK2GSMAy
L4g+oGkM1u2BcTggRpXzHY2uV7g9Hnj98hlv396RInA6njFPM7q2yfGegfdbtqEJaLuGFH+Q
SlzqrIcxCgKsuuugDf033TRIIcAHD5kEhr7Dti1I8KUBK0bgdrtjHA/5nqG6h1JkLYEUSfWv
Mdn+UmBdNjRGQSRg6HukiJxHLOh7InR4v0BIQEGjb0hdw4dAMvBZqcg62sfn0xHPJ9Uc+rHF
9JzQt11pjiKiHu2zRiXYbYKQqthI6YbUK1jVrms6CCUxzUSs7foWrZF4TiuUBI59C7tZBOeh
hIBWEgIJyuQOVakQQRagkAkmF9u8DUAEWknWOsu8QQIQMaFRpL6pRMYHMo5YMBxwrkLx6vvb
N0zTE4/bHb/88gtu1xse9zuWeckkwEz6kEB0lHO6FLBtFl9/eYO1a27cspiWFd5ZIGzU3BQS
hqEDKZIESCUJl+kOGNqRVDemGUlE/PjTb7BZi24Y8PLykvc/0DYtlJTZ/scjpIimbahpxDQY
+56UNkXAND2hlCYbEq0yqc8R/iOJNPycngiB7NAaY+A85RK047PygiYFDWctur4npVcpIOJu
s8QxEeP9TdPg8XjgfLmUPJlrbvM0U3xsDILz5T7ne85ai8PhQMTXriu5m9IKzlOcfD6f8f7+
DqU0lueM8XDIxK4NbddRPpDl/zdLednpdML1ei33+piVJL8nz3JssStjyULWDoG6mRkn4Bi+
JizUuTXV5ui+4BiX60Z8t1PcS015jE0cj0cIscv8c/zG9ay+7/N+3jvltSJltr7vkbJSjmk0
3TfO5juTSBS/+fFHvL290Xeb3c4uVTUdjuc5LxFCwPla5XwvbHPjCedNTDBg5XKuJ3Jux+sF
QIk5eCw4v+TP4jWhtcYPP/yAEAK+fv1aiAk8XxxzM8mQ70H+97reWceINSbAeTqTBXh8+Xf5
uUrMXNXruNhfz2tN5KzXVf37nLMw2Zyflce5JkrX+6TE11UsXKuu83Pw/2dciNdtCAFCSjye
E+U+QiGIDsdPP+I//I/+Mf71f/ffwT//0xsiCNNr2h4xkvIjWZ+SlajMODrFyDuesa5LxuU1
EnZSS/1eHHe2laoFk2sYK1BKQfxn/+R/TwzG8kuXiYzEqOeueZOByxgjyXvl4oYQAjFkqTpJ
UshCKEAAl2MDRIH/9p/+H/hv/vP/EnBXnMwN4+AgZYRIJFXMspF8UPDGF7nrrS7w18z2esFz
caXeaMzOEtl/IeakhaXD+fcbs8tA1WBFvQhqOX0ewDp55k0H7MVaPvzqgjYv1FotoWbKcEJS
y5ZxcsCbiw89Xuj1ZmTAkDc5P0/NogJQ/At5I/D81xucN04NevLG4zHhueOxZKCMAQgGEJkl
z53xzHKqC9N1RwZ/N49BPd48L3xJMGOZ/8kHfS3XyoAFExH4Dx+2DDAUD5jTqfxu3QXB41qP
Wz3ODGqESH7T/Ps8FrxW13WDUaaw7nlO6zXc9kSw+MhokwWMYZ8ZIQQVOhNJ1Qgpc9dqKKyf
JRes2pa6Djn5BoBpmnEYx+IjJIUoIGDXtoh57yF/517E0ST/gz2p50v/cDgUZrkxuydvzQjk
AIa9ppGBF+ccxgMF6Y/nA1JISIEy30xGiDkAoPedgHxRAYDS9Hf8XK1pIKXA4zHBNAbruuDl
5ZUKxiEUDbuYEja3+8KkREVWks+jBCnECO6mJc2u3PWfi/8CgjrdszTetqxQMrOGBUklBusg
QXPucwGVzgibwR0Aktj1SAJQIn8VHfxKE1DUNgZt2+FwGPHy6RXjeKDOcQGk3OkphYQ2LYbz
GV9++IKffviC8+WE8+UF5/OZJBoFC+EDVhkITR07QlBATUowOxmGPJEoiQoxwWTgnLuzXKSu
eAgBH4HFOmw+0GcICUh65/lJxddlJWLDOB6IVZoStkgyhpAaz3nGMs8k3yUVjFZA0ug6YpmH
mIkAMkFpSj4RiRAgBSkCeB+I5CCzfJ0Q6Pvdj1KCQDpeCxACNhCQ0LUNtnWDEADyOR1jhNIU
fHVc7BDkE5wCddwnpNJJXwow1oLkPCWss+gPVJh43AlcInlWYjTO0xNCZe9WIYjYIBW6pkGX
O5f+9ve/x/nlFdZuOUmNlJAqBWu3DJC25I9qLTa7YTiMWLYNLji8Xl5ImjIljEOP2/s7zpcz
1nWGbggIHMYhk+kE5nVG13bw1iOGCN2oLPtJgKQPFqfDET533SwbzWeb7wtrNyquagOASUNZ
/tOH7OFOqiUpkuUGWaRs2ScSH7pYDwfyLNy2DSElKCnR8t5dN0qatQZ18Qc47zD0I6SQxfPU
e4eubaG0wrytOFbSY6uzBeBulMacQWytyFNeSAnnA/k5Kw2tBJbsixi8Iy80a9HlIHrdsm+m
Ji/Ptm2xbLv3avQWUpOSQ6yK/9579EOD46HB9fqAQEvemJKIPfM8ZVuWHMdlIK3RGvPzAec8
TpcLnPfU0aF3b+O6e4gLb+fzKcus7d62XcderiSx2/dDSaoYwOz7DtY6UjNpTTnTef3zmew9
dS5773LnssHh0GGeSSY0hAClCSCiQqDGYRywLFR4S5F8D5fVQilRCl3X6w3c/UdCn5kAACAA
SURBVC8EEFzI5AyJBJXvsES+rhEQQueOV0rmSwEgF7O3bYNPgYCadYHMBChAwDtSA2k7g81u
uN1u+N3vfotpomIvFYCYiMgqAU1OFiyOxzOEUDnRI4l+uiNdjgVbpEQedlpnifI130N5jzjv
cDgOWOYVAjthhCX4+a5mGTlOrOp4dI+TEoxpICXwfN5LIWezDkZ3dBerrCYhSZFmXS2ahopf
xOp/x+vrBdb60g3N3cBcJOWkHECx6CKlH4nb7Q729hOCPLIfmSQMfJSc38F85IR/K8m+dQ4+
OJxOR3hH/sbWWuqQqr3Dc+yXEoqsGn3e7ileE2YpDjFIMcK7vfvh8XgU5jWveSFFjn881oU8
4Tj3aNuWOsrznbrH2hRfqEyUq2NVzo/4+w6HAULEIj+YUsLj8cQ4EAC0rhu6XDjiXIJjaCZ6
18RjjpW5s3AvJjuOxj/kOxwH13ZYvN7quNbHjzHn98XYuqDNn113c/DPU0fO8qHLov4fsBej
+VwjohB9J+dS49jhen2UBLp8n94L7fWz8Gf2fV+Ku3VexWvJx4C2yUQcsedlw9Dj/dsVx8Mh
W5DsEod1PMz5EhOA65yU8w0lZZah3ckRPHf8c5wD8ntxzsr5SsTHgiWRfnoMw0ik7hCQEgHS
JsuUMjmgyfZW0e8Kdzzu3wOOMcaSU9VS/Bw/8bzVql2c/9iNVFaKD2eXPckXUrKj+Aqwzn7Y
G/wsvK9rJQWeU55DLrLXYA6fUd8XPoutw3f5Wp3TEKBI527J26quYGMMkNUGQyZb9cOA6Ch+
5TuS36VWrhiGFs9phciqbW3bEgHJ7Xu6xkf4vOXxbhqVVVhI6p9IIOSlmxLhJDXJqMYVaO0J
jOOhvD9LzNIa86T4cj6V9aS1BsJOYgIAHxjXQLkXIajgGFMEUkKfu22/J4zweCzrivEw0N0t
BRW9kQoxOiWSJq/vtRpUdM6V4mbZ95kwEGOCNgpKRzyfG2JAPs8dkS9Plw/xTL3mGbvhc4Y6
krcS66e0K4wpJeA9EWxSsOgaAecUhFBwkSwMTJZZ11J9WK9J1ABlys9NdkgxhExKo7Jr01FT
xbIsuFwuxW6Hi89MpqvPMibw1Gc0rwmAcJ/H44HzecDzuUEJkosnjMhCGwlAYlupi7XtB4SQ
Pox/TWRjkJfBTvJeF+Uunue5ANDOWTRNW5qFuHjAe7UmzXnvy2c8n0+8vl4QQiodj9/jZ6vb
0CiDpukQHFmepLwnkpCQycFlNTkgEyyFRALNAxOp6jORi5clnpR7IxFAvuP1n36gLi/CeBi0
/v/JepclyZEsS+zoE4CZuXtEZlWXzLBJrlqEX8YNl/xekruZ7unKjHA3MwD65uLcC1jkeElI
ZmVE2ANQqN577nl0ktBK4YAvTvj580vODNYLr2euc3T/Gb2ilQIf2PeRPNpRRIyh50wbJ8Eg
5zOTVjGrIZOrgQEfA0brCJbE0xgi1vVBq9p8Op+MJp95cF+evLgaBQ8rRINey0F2b63DO+Iy
PgTMUyARu5B4cL3egEFixDRfUButso2xMOLQFAXHziVL7E6RoacSKIlp9z6wbSvmyPqnDcUu
C6IPx77kYxQHLhJUUy4w1sFaknDnmVbrITiMDvTejvs/QEcOdcnw3iOnDOesRGKc1szOGPRR
0DtxrtoZEZYKa1DDtEqEyaNURjd451ELM8StoxOCMexDSfCdMMeIr69PfHu7IUxB4td4Vlxv
M+5fCS6w7jAy0GKCuEHtdDjorWIW0nGcRMlfOywgNvZ0D+t94OvrTlGJDQAaYphQC/eDhoFS
M/Je8Nv337GtD8agVSBGxsfBDpRccRFbfr2PZhhRUgeUsuMyz9j2Db0NEpIteyAfKdCJ3mP0
hnV9IE4BYSKe7q2Dc9ynpnnCvmkfK5nRK9fe2xud5rbnhpJ3eOtwvV7w5x9/4uPtDWmvuFyv
2LaVZLcYMcXIvn/deDYvVDAP0I31fr/j7f0Nj/VJ4WQfVGFbS/fj5SLDYio7Lxc+LyTrRkYU
OCeYL1DyDqDD+wnDWLTeMc0zWq3YU8LoHddlYqSHsRhtoObEHHNr0UZFdAHOW4TokUsCnIGz
HqnS4Tk6i+Acvr3fsK0JLVc40HEgOsV62P+OMY54OBIlRckue8k80YUIRgeiMmMwpMJ4x9/r
TTBFiXTNaQcKnUlbNzBmYLQCOyrunz/x9fMnfn7dcb8/8PPnT/zxxx/484+fqKli9AZP6JT1
eq24Px74+vpEEsHPaJ2OsL3ChwjrLUKMdHprHW6wrijbhjaEIGwYK2mtw7/84x+Y5gn//u//
De/vH/h4f8e+7TyTakUIEQCFRYwgdPj58wdxzOCPumZPO2L0WOS81tr+dr2xPurEm+MUkcR9
c8jempLEtnoPK061FC9EhHBmmudS8Pb+wfPWGL6WkLTmmefUZbki519t4XU2R0IhDsIA77E7
lMm1Cpk5pcOZSutudUVifUrirJ69enadNZrWzwYamThNE0V+2wrn7PEZtU7WWc8YqmTnUFUj
v/RzvPagudAJWPEoY9hPBO8BY3CJAW0A98cDQxzPpzmKAzrjiKyck176rdbaEZ+Gl7pJP6vW
jdpbU+x09m6v/YbWMjp7eo3zUlGuzkyV1K91hgpvec22X8QLeg20TtVBuV4nrcsUl/kraVJf
Q7GDV+KF9iCv/bN+r9fZ2Ss5Qfs/7an0WujfVcxCe/VXYvlrj6M/ei9fezRde6/r5bXX0drn
9b0BHPdLrx3JJ+HoafUaax07Lwv2lNE70IZDGQ5uecf/+X//X/hf/o9/w79/bcjNSL/i0Dvd
a72ng1GtRbCKgRBOMoc6lbZWYawDzDkHHmP8Ml8eY6DLNdOYesV39Zr5s7FiEaaKJmUSO+vQ
zPkX+zhZFt5yaDeHiGENem9HAcaF+UTZDWYfMVk2VNZEtDHQa8d8Y47g7XY7NiBV2h1NMgjq
6UXWG6kPsarylaXy2ojpjdJGh0ABM+cMZCE6Q8shWfiaXaEPoF6o1yZSF5qCKdrMvAJ4WvDr
Z30FefTPKDijACiAXx4Q/XPKTnp9GPT39aGZpumwVHlVv7y+r/7zlf2hP7o5awOg6iv9/6+f
T4f9yuR5Pp+/EDa0KX19X1X266aiP3rAKRFCf16vu35vBRSURQSwEVAQWR/KV4eFV+BMN8hX
EJTWwZfj4dH3erWX06iD14fsdrsd3+XVPkYtb3qnTb7eN1WN6ma37zuCD1jEDvr5fB73Wu9/
aw1fn58Hi0w3fP3O3nt4AaNaa2jyHZ0MdJjpLlZy+w7rHHyMKPJdNs2dhUGIEblqTACfb+s8
Sm2AycfmTkJDwSUEWDkoAfyiXnp/fz+u5e0m9lydDNGUmGVojGVRN05G9bRc0MdAHx3P9YlU
EofrAOIUMNARAhmLY4hbhbEYBsxLAmSzZCbg9e2GEE67z94acq3oBvj+t7/j+XziP//4A9M8
oaaEbV0BM5BrRZwnZCmgDczB3uutE4uX97tcb2SL9obRGgbEywUGsGyirAuwYYJ1Hsvtgt++
f0cIfB4u1ysLDedhvIXzDtfbgtvbG37729/w+9++42/ff8NyWXC93uCjRxvAsI4Fv3Ew1sPH
CO88laku4rE1bCUjzmS/W4hNHiyMt5j9mc1basEqRTwVVgLsu4CC01KxD8Bbf7DbDIyQCjxz
a+47cqN6mzEJtChnfhKd/6dpRmsZwVoMS8t1F674z2fF/ZkQQ8BjZIxOC77hLNK6wXmPLRV4
P2MW2842gHXd8Sgr3m9veKwbYuSz8nhuiNOElAtiXAAB4odj8fZcV/Q+0NCRWkbJGZdpZrEG
Emkge6wXZnZOVApzLzkHMWgcZLf1ycxI8rQxxYjoPIJ1WHPC5eMDX/c7jFiuXm+RNkCFeVIc
xkTmnwnT2xm6RMzzDCPFbO4DzgfkUjGQsKcd7x8fgKy9KkOmOEXY3tE7YLzHnjMSaCHqfGDR
aSycDWIhNEQNBvz9739H68zp+3qucDZykLdvkgPsaCfamFuOZgDjEaMn414eg9v1hj3tuF1v
WFOGdSySmzUASFYqtSAI237dqegb1WIMAeT2Hd/fPwjkWCePH/eW1hpabailHc1Kr3xmlazy
3Haq1VpD9BF7T8IUpxKutw7rqCifIgt73qOOMRpyZhYYrWcL3O1KgDITNK8lk6RjHVotsH1g
25sAXAMuTphiJPGiFExxRikdbQA11wNwVyB2ntjMb/sGAwsjLgtt9EMBnlJDDAt659B9mWdc
LjPW5wM5F1wvC1IuyLmgVWCUiinOwMh0WlLGqHPqCXI6IDl7AFVZ4ky0uTTmVDfx7EvH0FZr
oleVHc89ZgAf54qlC8CyRHx+MZ7AOYfnk3aVX1+7DOETeh+4+YjrbcHnjz9IDEq0iTTcwBB8
wLPzLHt7uwEwAuxazDProhgDn63ekDKH6M4N3D/pAFFKRbD2cJHQs12bI57NDnveUWvDZZkO
oqOzXOzOBcRoMcUiyrVzj9i2J22rOwFI7y3dDXLFjx+f+Ph4Rx8DyxQgb/dLo9ra6QZkrTnq
0FOtarCuSYgIAWonPQaElbwfik/gJDBq/fl6b/Z9g3PiRiH73O9/f8d//Md/wNohQOhAa3qN
tHHFYS3G+mUcA5y/1ps6uNKaTZtD1vf1OLePM6rUo6HVeuOVOc4aqMM5njmMZnDYc0KME378
+DyUk8qKpy0+awZ+Nh0Cm4M8k3M7mjv9Xq+s8ZLOHoDrjxE5Sqy1zh4D02mKcNUjTmzOUt6x
uAgUXRNnPIG1zJUFNOKqH72J1ptaZ/KzMs+0VZKanSX5jYDNqULUdf06pNfhoja0Wlsr2KPE
5aPm9KcT1ishV4GJc+B+9kree/Q6jp7tr0oNfT0jZEhdE1qj67nO/Y/npDFnk6591V8HvNp/
FTkfdDD3115RyTDOOcAYlFrQ+qm45/CZhEztaZQIAPwaIdA69/YxgCm+uNW1gUXuobXmAMP0
PVTlwfVbzp67n4RnfR7gPKz/FTT6qyoBwHFdqaCj9fHxGgawzrLGbqfd5q5ueOJYs6Vdag1m
Mvcx0FtF9AH1ZdCmffYY41Amvj6vByjRT3c5/e+vlvavrgDEGxZmoMv3ez4eJAM6i5oZv6RK
J72Guo6V4OKcOwaMeq1Ula9rWAkluq/o2tG1rLXIa4+m612BKe3/tq0dBP5aK4LYW+szMSnh
ZAp4PiViBCeopmCP3it1ReC50o/zdNs2lJwxhXgQ51/BKu3JqO6+vDwjQYbPFbVmdAGimFWb
j7NN75cOUNVCnc8+I2f2PSGEflwDDKojow+IU0SRZ03VqWWlI14Vh4x1pT32tMyHvemstdxf
hsW6z85xwhJJAmq5oBsLY4CGcThVZLn2GsOiIKqedZ2bJgbEASZlOIn3KLkgLh7eB2x5l/PU
HcS63nneKHlKn9FX+1Su9w5rJtkTB0qWPU9cBjA6LCyaMdhzgjXcT6Y4Y8s7GrgnlloOF4wx
+Bw6fwofOIDuMAMI3mKZI5ydkYpE9gWPnC2cA6w14tzi8Hyu2Pcse2w89hvdO849/zybdP8k
/uPR24ppVhcYgvreTTDGAhOdy3Iu0CzUV6KQYmCv9vUapaLfVQFZRqDZl6jAdJwPev1f9z39
0fXD9zS/nLV6NgEQB4UAb8QlRYggQ9yxhnGwo2OaHB6PFctygXcRfTQh7ZhfPsNx7r0QYQbA
QRNOkh1xz6vYsW+0kI6TRAKe4pTROtbnil2IT6N3cT8UUB6gAt151MHYQu8c4Bx7NOPRmkPO
xDdeawD3Mgzgew4qwf3pFHoQJWAQ5xmt1SNyg+9HkkCqfMbskOshbhx9cL9PpWCS6wJjkIUg
aZyDDQ6uS8SLMTDWY54DLee9Q68DxlDtaoxBsAZtDNTaRUABeHcKrryj04YPE3qvML8o2TVK
wSDGhcSobSAqIaAN1C2J+yXJ3jzrm8Q3GGx7QvQeORVQPc8eeks7rPciwIA8F8DbjVF3vYrK
3nTYMbA+7yTcOpIk2xBSk5X11AcY+1ZhHAkjLk6i3nTEeBzAnhqoLM65p3iP0gfKuqG18fKc
AWEKdPGKFt4GrOsTYxh8/+03wVs89o2zgd4bvr6ezLsfA8DAcl2Q9g17GgAcrDiReR+47nKH
E7GOdw6lDbSe0fqAD7O4UnakUkgaoLQe65P4aRsN62NDDDPev3/D47Fi3Sve3iMu1kkUkxci
/YzH9kB0Dq2p0M1jmq5IeQdgsSzXw5G0pIyaMwe9txvGoGgxJRKoa6YK0xmH4HltLhfiV8v1
Ch8DUCyc8xjO4pF36aUN/LxguS74+vyCzpHiNOG57TDWoZuBOE1ohVFA8zzBWIMtM7Kpd2BP
DtM8IZcEYyjQrK2jFDo00bXU4+uxozaSSpLEXw0w9vQyL9hzhXOBrgbLBb1WpFpQysBbCBJH
YfHYBjo6nLeoteNyveKZEnrdsFfL+JOJKvgpOCDTSdF5izhIduFZKHtHYB0wx4CcN6R9PxwY
jSHmTBzcoueM5TLDOYPgiDcMAKMBc7zBxYEWB+rgdfMwmBzw+7859NpgxUETGOgGeK4JphvM
zmL2HIT1oYIdEvfQxSk0898xGvro2PYNPz4/8eeff+Lrxw98/vEDZU9YHw+SZ2rh69VGF4iS
8OP+xKNb/Od//x/Y/5//F13cDIxzmNRB2tHFb5kXROvgjKEYDNwHnfeAwWHb/v7xAR8CViH9
p5Rxu15xfyghZEaIJIXMlyg58qzd9/sdznvspeDn/Qu9d/zjH/+AERz38Xzib7//LjOvBc/n
4zgj95TkfFs4A3SOUcDSWzVxsI2z1M8+INcK6z16FfLzPOHnz5/H2a7n3RmH5+B9OOoxrZe0
ztM6+pXYn3MSYSEwhjtq/WOYKaR7rYFLqaiVOMP3798PEv9rL2914Os0husUvG7bhrw+cbnc
RJA1jlqvCbmi1IJlDlLT9eP7WOCICZ5f7NY1Wu+XvlfqLOfcLxbuWmvp90opHZFA2uvon5sl
rkAJ6VpfKVl0WZaXXhBHPaLX78S4/FHDaE+sdaB+h1eShv6eYjxaz+jrAfjlvvL8rEfd9jqT
e3UseyWb6n17rfNeP69eA/1RArnO3JTgqHW59qcqilUnAiWP6D3U99JZ4KtISvuq189baxVB
D+OSWut4bhuGW/D+xtnMGB3OE6NexcmSdbGXCGEVd1uEYIXkko+1QcENZzlOejT97npvjrUl
11qJP681sXMOvraKGAJab8glwxQ5NA0zaQACBHEigNtqxWinJcMYDSl1XC9X7HvF8/HAt2/f
MVrF9/c35LJiGIPgPBAdbB14u16RHl9wrlEZ0M7GSZksCiZw0zgHwLqBKHBQCgcHvdIC3BoZ
2ox+2EFrs/c6ZH9ldvTOJk4bDv2lZIBXtb0yoF6ZIK8Agj4gwGlH/nw+T4uvF0KCEh4UhDDG
AAaHujbGiCyMdFUTWzuk4FPgwR12+d++fTs+j/5Tm1HdgDdprluX72QNrLN4Pp7wAk5ziCSM
+z7QQeuX6+0mFj+QRkzUnlLYKDjWR4cZhr8slY05ZzX/4sCrEwyY5vlgJgME2XrjIdxz53Bb
Zqm0KvQIIYoNkhUgcnAwGWgbGgJzuUohQ1tVVH10BOekcLpg234Ahmz+gUELLwDWOwwB+bzz
omxuhzXUwMD9/nUM2udpwsA4XCZqa2gYzE7vg8DtJIwt72lPZGlLU0pFKSQTUEWdMc8TchGb
3zAdA1qAdphWsou2bYV1/rRqko1AD3Rrz3w+aznU0UHNAHhvasU8LcdB3BrN4A+mdGtY1w3L
ZUGtTXKFZ2jGWS0F8xTRYDCMwZCmwwcv7EBa5i8T70mcJjhHezQbLJ7rEyF4zMsV67pjyIY/
X65CSIpUOqYEWIOf//wnWm3iInFu0MwVY9PcOpmcn193MqS9E7aUHFi54Mef/+Se0M4MwiGq
dxsC0AvcbYGztHS/LFd8fPvGBq/Tms+I5f317Q3/8o9/wW+/f8f/+q//FW9vb1Q4xQg4h249
4D1gLXyMmOYF3gXMMSL4iODFHsxS4J9LQxcnAa7vBvRB8KhkuN6pjm7Cng0RzVpsOWOCQ94L
UnOIlw88SoLpbBofD64X7wlipER18RiDSjTZZ/qgHfi2fQKgCrQIw9G7AQOHnjutzNDh7Jl/
U3rjfj9N2ErCKB25dhhDZnzZM95vNxgQZKZityBMM27v32hP3wimhCA2hIMD2uAcYggwwv4n
6BhRS0VudBXoBhh5YNt2bJmF6Pfpgo5GtfIY2JOquC2uU8SeNtjIInbIde6wMMZhSyts3eCc
JTFmYu63dQ6wELBzoFUOT51lxExKGbUUmNZRjNraNUxhkggaFoY6VFH1RZGChRm7LMSNpWWh
L2SEGxlSxingvm3wwaOZAW/IJKZqqiLlCus4lI4xoraVCuW4wABUFxnDQS7MkQO2pw25ECRz
3sIYC+O4Fi/zAuMuqLI35rQBg2dWlj3Kh4jaO2ofSKWitgFrxGrXMAuytY4YSWAgq3lI3rBH
EkZvbbRY9DGiiDVgH/0o0pPEbbTRYIehK4OVXFDZr7d9k2FORfB0TzDGobeOeIlIGy3NahHQ
rJJElVKBNaqcDCitwTsOw3JpSKUCHXDBYrpekQqHRfM8ozfa9L4vV9RKFU0uDXvaj6ikfd/h
4yS1jDTM44wbajXDCkcuBg5tsjQ03z7eQQcDDlaj97BmoJQn9v2JKTJ3nqp5FpwdJFWVWvD7
779h3zOyrUcEiireWstigcf8+pSL2GSuMmwDaqVtW61UzbtwMnW1LlPy47LMB8hI0kKCcyxq
fXCotcA62t/H2WHbn3COFo0hTAT5HNA61V3OByzLjMd95TpwFiEGZrU5i9YIku27ZLgHnntj
dKScD6Y2hkHaiqjqOcDOORNUl0au1ooBguckZNDt6l6eBGWUHGYYQfOUgS8H29+wbU8YmtmQ
4d86rAsykOCwOecOYx2MdZgvC4JnbcPGj0Pd1nkmk23eYMDGoDdDB1IMAbHobDXPUZR+O6aJ
Cs8+BlUDArgwm3E+GuXWBEhuHPgH75DLAAYZ6utzh7MB3lMB/uoQESNrzMfjcRB5FQDXXFkd
Ilh71iCHErRWeH82bb3roJuRLayl+UzO84L9UD2cCl799crm3jaSRCCD6eA9ijS2VKuEU1ms
KucBKmONPeyUtdFl093ForMdwKuz5zBcnwGt32traL0KENGOZtc5BwyL0S2CWNda26FWhs5Z
qeu5N+gAU0mhp9qWUUYk6BSM0QgkGgeNnaHqzB5/V/sC7UUul+UXYsarAqILIGatO2wl6Ro1
sMRZrFe9MNbb/0T61ca0tcZzqjU0OSe7oTZ3kjXp3Rlbpj2ekkQ0+1gHOa1RYaKWzgcBQ4bq
2kOpA1AT1wG+tj+AC2MMUmaMwYDYPOvwMgbUQhtQ9qd0b6i1Hop+JToreJFLoTUxBprhnqvX
wlratrbe4XDeSwUwtKes7TWP+lR1GHGM4rlMK1g6cNBKWh2XIPuRgqvWsnZposoptfDM6xw4
15TgrT/IH4zA8nz+Bs/dXMsRuRGmmWTbcTqy6bXQHkR73Fdw6XWofwyKdW1I76lDZ/0+EKKk
WnPepje8v78h7xkA72t86X+UmPPaA/feRYEsLmadasySCTq1IXaxf4kc0DPNe48ue7IRUqh+
31cyAXOoWQ97seJclgnTPPHvy5pblgXWKDn/jKdIOVM9BCH+Sy/d5NrNy4yUkzjUCFgM4P39
Q7Ld6zGYN9aKRTV78w7WvVZs/2Mc4qjAmlJjQfTZ4t7L5yGlfMS1YEi0gmUNCwFQBzdiGGuP
rMnWGh5fd4R54u9bgyKYjIFMxQZEgdwAcIBGQng/zj/vDQDuMaoYK5kZ2MT7OViLgXFM1jhR
ZrO2VWJa2vcDT1BiVJUaPAZ/AMPnmslwNiD4iLTnY4DHQS9dSpx1qIPD7UmA+D6obDzuh8Qf
WEtyRa3lIAn5ELAsDl9fDd5fUHLHPNPCPgYSVpXcaRyvtb6mtXStcsYKKUP2+FrxfG6opaB2
kur1p3cFabmXqGOWYmQUaoTj+THGSO1gsUs2cpQzgEqnQpczACEaOBewbRW1kQBJouDpXqNn
oz43+qwexKVaWcdI/fV2u8CYBT9+/pT7fyoEjYHgAMRo9EeHFApGG3MO2pUYo7XGK6lKh9Sl
ZxIXjMG6PbFcFowh8RmFJIw4RVjH/jCEIJjjwEVcHFX5Tet34O39hnXdOVi0Ts4SjaJ0uD9W
Ymregxb84tAp1tkh0AZ9mmdGxq0rey0hZigeyz2PRAHrBJccHehgDyeuEXp/j+/u1ImrHnte
K3TuG6BiFBg8QzpJR5CZNBX+VPW2StHJvm8ILgqITqWy9R59AJOQ1mqrQkUdMG1gihFJcEIO
MdSKu3CfnM5Y0tob5okK3Mf9C5frFRA8dAxxe/OyLkOEsRbbc+Pe7Ajm6z0z1sJYDktbG3g+
V5LFMeBcRGmFYLtzcIPkAgye7SQtWNjuBIMqdKYzBrUUhCmiGYO873zWesUwA3vaMcUJITI7
24dZ9lBiL61xT64t0TbcOnQ0RBvQ+gCG1gdeiB0U1HlvEVxAajvergvujxVxmsX5QciMBqhp
R8obxuCeV3JB7gW1stbck4rGKrxzoKtagI/yfFmDknbcnxQ8tFyltshwnjWOMQa1VYzR0GpF
nGZcpoB97Qje4LFV7t1W4oKDhzMBGB3LHLCtT0ze4/I2o7SOx/2BPuiite+Vw9o2sMwRWUhO
U5jgrcbgiStjKYAlYWHdG2o3aBtrPmM99j3DWs8eXzDZbeP6AcQ19O2K8ujwghcZdPSS0YZB
HwYxBPIzjOUzYA0ezw0uRmzbjnXLgLhPKRENHbAuYHIRsBarEBbDxDlD7SSfGOdQx4AZg2vF
e2yPJ/rwMI5KcN+5N7Jupsupu3iUDgoN+oZ92/FmZNBnKIQsVbA1AKXx5sOasQAAIABJREFU
8729X1ELUBIJAhYOsAEhGvzx807nDPA5WMuAN8C2vQgYB4gRDka4/PPHT7y/3bC8zWij48/P
L+L9a0acInojOeXxlVFrxjxHOoPK+f35tSMGizYsHmmHfWZ8e//A+uMTBo0YhBPiIjoFJsHD
DIP8tcL0dtj6ExsCSutY5htG7MBCF4vJcTD/BuC/eBFCGMChAaOjl44xgG452B1S60EiR3LO
WJ9PxmAUYrYl79ieT9zvd/zzP/+J9f7E8/HE/fMT6/OBx9cXck4kATqLuu94PO54fv2J/+/f
/50lV28YjfMsI7XlMs90kTSO9VcfghdRZNsbyY/vb+94e3/H1/2OHw+KNMMomK5vWHNFyQk2
F7TasWfmi9+3DR+//Y6ciC3CGKQtY92Id4QQsFznw6137JnEjstFbMwHpjjhslzxx59/4Pnn
D3z79o01WM4yK7LEw7yDsXSXeK6rkKcseofUS8SNnMRn8Pw0WOZZMNXTafn+eADWct8NAX4Y
7GlHmCI+vz6hYohSywtBcyLRbLB+bWNgtApnGePlnEUdHfvjSaJFH8SjB+B8xOwklnowbocz
ySaY+OleV0rB5XrFNImjSS7wYYjwSAj1g9G+IYQj1usQaAjBk+dhEzd2ERCDhMIBw3gGazGs
gTMOi+P1WNcnvA8wUnYriTunhHnivSylYF5mOpIYSOzqBBs8bCdhjhCRul3bozc93NxUMA1i
usYKcVVqy9aqtE+nA2HKjOTDGCLOIa6iUU7OeyGcnaROrQG1D8NLLz0Gib1B3LdLlQjILu4b
QjZ4FSm9igheHdrU9eKYb7wQ6/Xnr7iKj15ceBwu1wn3tR5CXOM8es+8hoZrJEa6aaaWEDwd
HbP0fDCMlVAiyTSJM77MZJZZnkOcTnoA53dtKBFV3Qkc1IEIAPw0BdghN6MDDRxiqOqwjwaY
gdoKTKdlifZtzlC9x8N4RykyzO3MB9y2J4ztcCEwC3cOGA+yrK7XC1p5oqSEEKdfWN76TwUK
Xn/URkRVME6GuVq8qnqWSmg2NWoFpYyiVwaKNiOvbJm/WiQsy3IM/ZUFog2GAp1KDNDmWz/n
q4JFwaZXlvjrAhqGRXiuhcxRYXdro+VdQNrT0TDojf78/DwsUXTIr5n3qhZTwNBZLbzZpBKc
5Gcx8r9tpz188JEHj9yD+/2OMAWsaTsYXUOag1LLAfBCgMPSK0wFvKUF/C7ZYjGw2HHWYc9F
rLtoaxuC5ebVB9wUqSC1/FzeOSrbgkNpHNb0ThWiCyzS3TQBvXNAYR1SrrSOEjt2COOOn4Vs
4yhDiCT54UPWwRIi+QyGoEUbUljEAAMB5ltDN1T1tEHyw+39HZ+PO9adKtsYJ1rlYqDk056y
lDtioL2U8x7PO4fV6f5FleoUYQbXjJfGKJUCZwDvLW7Xd9zXJx6PLwTnYZyFt7Ro77XQ0rjJ
xiT3hcxGPXQBGyQ/pXX0waYwl4xaLUYj6cP6AOcCxqhis8gp9b5ntJzweDzRjcH1siA4i2dK
2Dfau6VcuM6KDjN4r1sTUKsVtEFCkQ77AMDKkNMYUVuNLrn0tDzdaoKz4RiGGmOxzAvC5YqP
jw8slwuWaUKInvbn3ssglH/u7eMN//W//AN/+/vvuH18wMo9AAYqDJrzsD4iTgtiXDCsxXK7
wcIjlYK9NQxjEeJMgoIzgOkY6FwLjWB/qeXYm5xz6AZYxwA68EwDsQ30LWMvBRW0jN+TDkpE
/SSAuHMepgPzFGBEibKXBpsHjCUjeO4D65aQysClkixgjMG0TFjbAGrBzUoWXgBSHcil4+oC
7DB4Pp4EbAwwDAk9uXI41rthgeM9jPMY1qKUhGEYv+BDgDd8pjs6vJsRwoT7/SlNJtV6uVbc
v76ojI4EBnMtcGNIMafvT5vMGCYqc2pBayyouwBFRogmJCCp7WTH5Xo7AaZS0UdFmAKZ77DI
rcJ0DnpL4YAo5SSKYI8OZpV2WV8dHE77EQDj4X1EKVlAxIjagNwqukTYeE+r7G4sgd6aUCrV
nB5OMso3IQFFGOdgukVYDFyI2NcNrnXU1pBqwz+/Hi/DnEZgtzQ4IToNUSJ5YbsDBvNykaiD
KioSg9EA9M5cYhmKOucQnEMpGbmdFphBbLdz3gAYukzAEAh1Dn5yBOQsY39arXCyT3kX0IdB
qY1M9wNIxDGkqY3M6OBY7AMO6AYsV4DbdRGL2CG5fZNkrzNHUrhyPC+cQZwCc16dEXB2SPbp
AEQhMmSgaNSW31IdgQGUreDj/R01Cyv2pQC3Ukhdrxd8fn7BWsf3M1xfEDA1ZwK+YZ6xZ8ZY
jNGRU0XrQAjuGDTYg/0LKkkkN+7xfAK9YwrzsWf2zgxOZ4wMLAMgVrc+Olhv8Hg+AGuw3CLS
NtA792nrPFone9w6EiEYWwJs2w7nZRgveW7WGeRCkpsXRqqC+VS4EHCgAt0dtdsrE1gZt7rf
AwalEARndJSB2YFaGkKwqM2iVVDB4AO06rPOYs8ZvVsM4zGMRe28n0rEukvOMgDkUtnkWEYh
PB5PxMnDGtrzOxdkDe94f78gpULSqGOtNaQmmqYJLni0RqC+dgIEXVyo7o8nbR4DG4W0Z8zO
wrmBeQl4PndYi6Ph4OezVNAOg9LUWvpDztyK++MLH+8fUPcO/X7H4N4yp7hX2jY+1x2XyyLg
tkGvPHtSUoU/1+5z2yTCa+GgyzskiSPiOneANXCGIDpBMc64rKhoWnPw7koikAFa2w82+b6n
o2ZWot5rncs82jcSXHr/RUWmf27f+zHQVWCag5IuYPSE1ui8MQYE7D8V0a+sdLUNvl6vsNYe
ytIQ/EG4paWthV+ogFxXDrTGYHNvrYGRTHZt4HtnXV/keZimicSelE93MRmgWWtxv98BAHGe
jsFu7x3O0M3D2TMWyFqHMfg8Kfs+53o0dcp+19e4XC6g24RDCE4UXRBb1Fd1LgdhyljXBlft
ujkwckdWuP65ITTf2rqA41xPrTNOJuVK8gIG1m0D+ml/9/qjhAW9rsyOP3OF2Ujy3+e3iJQM
nusqPeZpYe4F1IwhQrMK/+pIkHOmZb8xqL3BBb1v/A7TPCOlHR0NpWZY4w+SA4yTYYlF2jJM
Z38bpkglXmvMExZysnGnO5euP1XbjcEhiUw2uI9Ze1jaGmNJHpO+z4yTKG6tRekcoBjrsG07
5kWIMGL9TJUnicJeiAylKonAAIbW2bWR/NdGx7zM2LadJE8hQvkYjnsS53j0GTpY43CG5PCR
G1XFstfDmON5fnXIU5WorkHte7Wm0Hul69Mae9rAyzMCQzWo84xq6rJmjTX4+vzC5bKgj46U
G2rvoqj4n23JdU8yGLhdLzIYLUgpY54loqk1WYJnlnn5CzikpFZrLUprkpF8un6wRi4IMQLW
INdKy1gD1D7QSjqGstfrFbVWPPYd397eseUEL0Po5XrBqA0lZwQbBXilWjlGDicg9choHc/0
pMtbJ3HJAHSbGyRurDvryw6I60xnrWSY4+1CgOnEPkpriDLEtZZ/n6QiKwQUtdCkAKQZWaPO
AtbAekelfSmYg64hcXXpQ0jYQjQ2Fvo/Z+RsdezhDuLRGHDOYtt4RsA07CljnngGTdOEaYpy
HqgTkWe81zB0gurAaOMECgPP7tGB6COm6PEsJPI42Xd1raaU8Pb2JkQfCEZAUDeIih8D2Lck
zzDtkgEcRAkfA2CGDPE67DiJVa0J2NgH9kSrbus8s5hHk3xuYPSTVBSFVKQRF9xbcdiz81kc
GMIiny/vqLVw+MuyX/Cg+Th79z0dhB3da7dtx7KYg8iotrv6eUjGbtIvkzQ8MKRvHfAhwJgB
53k+KItV+zG9Bpr5q3sE91UhP3UOHSkI4P7Pc/e0k/3ttw/8+PF1iHcA/BIVoT+q2NY/o3Vq
CBZfX89jH3bOwcEBTmIuWpcYHSDnHXQ74l6/XEioeK4F0xwB0L0yTtNB1uyCm6mbTOsNLkxg
h9OP69k6SUzrtmFPCZd5Jngt4qZSOVTYpa7Sa6l76RgDX19fuN1uRy0+T3SdqCWLCEpJWAmt
VVg7HcS8UgpC77Byn7XedELWCxLVUmsVog9/P5WMKDWqgcUUA9a6wwzD2ITW2FuBz10fVBFG
wVCNYTZ7qyRnmT4QLUnkzsr71yYkm/P76v7eewe8w/V6g7EW8ySRBbIfDUt2Qq5Z+lyPLuu4
itpOz52UJdPcGBjpM7Y9IUTa88ZpQq8NvVZME4Uy1hgYTxKUDgtMF3dJwXot2APHZUERAYNz
HvPHhHXNHNKNgVkEbEevLJF4tIAfvBZ7gzGOQpA6sIq7YW2VwyvHnnXURkLQXo9epxWPPjoj
RsZAHwbODlwuN+RScb1csT13jMnAzxP/rHVwFqgAPr84/DIGqDljWEt3AjlLPIDgA7Y90a3H
W/TaSZYwfKasZQyFd3rOu6NOuV5I4nk8d1jnsWU5TzGEMG/QZO6whAkWBtNMFf+6MzL2clkw
RY/Pry98+/aGLr3+5bAL37HtCcYOxEC3gCDxWSSBOLQhjgO9odSO4HS+kWBdwJYbYCNqoyIz
RI/H1yeVm7mgD4j4DJjnBY/nCviI3AfsAHobsLZLjU1CxZ4L4uTRrcMuxCzYiGnm+9ZGsmeu
FXvOWHzAdLlhjIE9sVZvVV1uSRqzMsjs3cK4gBgEEzEUuTQRM/Rh0OGw54wtFZKeC9dM7Rw4
e++wbkn2eoeOjm4saq+wno4o2pPtacf1smCgI+8rco3YakX++ckYijliulD8NMZgzMeWSP6I
ASZYPFPBEh3G6BitYM8Ji5lhg8PwE+Ac7mlH6gPbM+F2e4M3BqN2uBAphMicD9j5inUr8Mbh
mRtspcCk1oFHV+dR1sRua8DjgTGMnLceuWx4f78ibxsMAkKcGNVU6WJpzcAyebQyEMKC8e0C
dx2YXRACsoH39ogGZJ/XAQuM1lBzIXkgJWA0TLCM9WiZz3WraLVg1AY0DloxOh4/f+LHnz+w
rhs+P+8oOWHfnlifdzzXja41jeLEnDNG7fhvP7+w3R90eC0VvTVcrtejxgAM0n//H/DBY/rj
J3pKsBjE2xqjvi2Ay3JBnCbkVmGDY59tAtatIEZIfG0hFuknLLcJcB55T4ghwvuAz8eDZLmF
OGj0EdO0oJWGWjOW5YJ//viBtj4pEM7EQuM0S/9jhZwDGAw4qznujYREI46IFrg/PuW8YaSS
wUBpmS4jBbA2nDNNzz2DcxqQ2Gg63OQwzIAJrJ+HGYz5tIZxL9bIf6ewoIOu4uu60v1VFObr
uhF38B7GkDBmGvtw60jYzbXAWkZ5GQCus4+5XC/IuXAG5DzmiVEsTfaMYSwwHHycUXtlXJFE
slrYYz5ZO+NovHVUj3f2Vi44wLC/H5bOb1kI3AYNb9cLSm6/zC9Jyl7B9s7CSe1P3IUEwTjP
QgA0rK+k16WgKcOFAFgSenWGtqWE2sW5R9agJJvyPJDazhiLDiHyYSCXCmtPl8xSC1/7IDqS
9Gykf1WhN5/LgVc3Qa0rz3ld+aUG0Rr21SHucI5zHmM4ccZtjJF2Dr3Tmcc5YIJH2QuqEbfG
g0B+xr1r1K/3jnNHQyJe74Oxyy/K/6O2rRUQLEEJF3R0416uNaS/LRe02vBYnxymKpvCmEOB
7TyLsJoz/HIBcRyyU9HJRt4eD1yv1yNrLOUd3lqMzoHEZQoYvaLDocNi3RPebxf0Pg6bBVUH
aAOm+SLa6LxmMyp4MMZAEyDFyw1gjiYHQzEEWqoL4+5gxr8U0a+2ZocdiLW4Xq+4XC54Pp8w
xuB+vx/2Ia+KFm1yXy3NDnYfgNvtJqDhmbfw6mRwAKXmfP9XMEOtO4KPh02FgkXO0Q5N33/b
d6R9h3Nk3an9yQAbZKotT+uTLhs1LfomFs7WAPL+xlv8/PkTl9sF989PvIX34/vpZ1Fg8tUu
RNU7tRLEiary4PSYQyEZBPVy5scY4zAsxKKHhT86gZMxGCkxCu0gIXm9fXQYAblaaTIUEkVG
cLjOt3NdyeL/+fXJDDEFGaWZYJZqQMlZFMgceBhrYb1FThUx0BlDh3a5drQqrFphHfNaRxbf
lfldZgzMU8TeG8H94DmAMwa5VVT5viHOkqfekFKGsxyQ5S2j2II5anZ1lew1EhpKLsT+RkcU
NlfvA7UP9JTEQqMjOI/gHb7uX7jd3rDu27H+6JjAwYN3DmUAyBmpVMZmdM05d3iuT9TK/D0Y
i3/+8WRupaWNrZkCRpMcxkGQGUbUC8bATQHzdENcojD4A0zg4MaLDWGMAfNlxvfffsP/9q//
ive/fcft2wd8mEDbcneoSoIPmEWhH+KEiyhshgEaOouYTnXdNHHAAWGJ7bXCGWbQpdawl8ZC
3gUY65BKQSnMkhsGqCAw1p87xtiB3tAGcxq9C6itYopkUFs7ZBgusR+1wg7Jc6wcIKde0HrD
vCzwIWJPDd5x0NKbQesOTljFbnZ4fH3Bh1mGSbzv1hp83v/Ex8c32F5oC1uoEKLyXix3q6pV
aU+v+dNsfB1KHei9sqhyHtZxaMt86YjSO5XchtfdWJJOnHN43lcs1xtqH3g8nzCG9mS0Ejb4
+fMTj4eAKjACNtqXA7geeY/eBRgZGuSUsKX9APG9OZVuejDrOaEDB2WNNiEKUbFJ+zQFzoqA
Hd57WJyqkSYHNvOaA8ZohzOMnhMhROS8y1CTwLbGXFyvV/z8+RPv7+9UAb2oW3RPt0Ja6YPW
nsE7EoasRjBwPW+JamxnCLTlNBC9p/peCWK1oUiT2E2Hl9ge6+wxkAhTRMsFpVXkmpH2Cucd
gg2HulEVeMfQW/bz2/WGtO2whpn267Ye568OYSYZBh42mqVgEWtvACgCxrtIcFBBOIK3QYak
Ds64gxxQCosbqg73AzycxC0nlSKKM1rpjeEORZ8150B3NHr8M/LA4vHMLKw1i90axGlGH13U
IiQCKWHKGCqvNce3tIZmlaYAAcM0qohr4XK7oKSE3jl0Hn1gmQOHARjH9f6rAirnzPtbT+Ld
K/HwFRzn8Hwik3QEBE81MUyVfXkgFUatJLFOZu77A9ZSqTOLu0wX+3AdILYmw/8mA/8YsW8J
XQJAVaH5V/bsa13UZb+1lg2wsQaXhTE7pZLEEENAbw55T2i1wS9eHGQgQ00japtOMtwYwOCZ
q0ofa2ihF4JnNpsZCM5huAAzmoDtBmqZHxGw76oYdsf+2YmTootrDe092Xjw3hTEQOt2CxwE
IC/s7SLZyzp45fOhz1OHc/0g59XaXnLuPSYfUIUcSJt0uYaNyutSxDrQ8dlfllkUewM/7nfc
ru9QdwZjAOcMxjgz8M6M4i4EX1VYVljDobk1tAS83W4wRiOqxnEPVRnY+xkdpbXb7XZFzqdq
W63vqc4ux2BNibs558PuV9eK1s9j4Ki7uf/+Gh2g61+dJtSGje9xEnqnaXqxxzttz3hf2Et8
fd3lO2mMgPRAGEJwxeHY4Zxn9qr3dK96cUA4mi85h9Ser43zmeV9UZeN8yzRwe+rNaE+Q8uy
HKrm18ZUSTbblo8Bzjw73O+/2gVrnwFAXB8Mns9VrgQbSX0/VeinlABjDrJwKQQonXVovR69
TusEha6XC2jJnH7pBfT7/aKQfulv9HWMMfi6P7BcFqrpRPltvUOYPLYtoeQsVrmn05CeP3oW
1cJaHTgt//Wava4R1uqG69o7+ex0dTDgPTKyjxtnJVNa1o8VwuE4VaMcEnKQ3wdraR1+Hy5u
qWDUjjAJ4GJOErqSxPXMzTmTqBMsSmMt10tH7ey3jGSjj3HGu2lNo3//el0OsstrLr3eD4I6
3Btc4IBxqErAeeTa0JT4EAK8d8d+pUR6K0pC59l7Tk5z3duhUP9r5IfWFtwnJSPbne4xBmDu
cqDav4N9XCoZ8zKjNNY6k7Nw5nxOlBijKmaA96C3M5/9GOhrXTBIetbrp+tVa7lXEQBv/RmZ
kQ1gnD3Wuz7P1tpTKS/rbZKh4EGWOIgSAc91k+sCPNfnASB1ULWCMbBMM7qQbwgAn9dRXR5q
5eCJe+kpbFDipa433S9f1d36K8aJmI0M+3RtvroadrCOKq2iiVLXeY95nrADRya4vgbkWTj3
uzPmyDlHQF6USPo8qdr5uC7PFXEKsm76QfJV4ol+Vn3eX++nurToPkq8iaoiPXeqqDV53vdf
8BzuyRZv7zP+4z++kKxHjPNxf+f5tA7Vs1xrkiyD29dr/cuzMAy8ZSybGTjUOTVn5E6XCD3D
9Gw81GCiQq/ltDVVUNlaI1ERHpeFzj3qbGOMOc5/wGCWOJzXe6zPyeXCuKljmCnPfe8d3kj9
A9quH7VrDMQPvDmei7+6UeZ8ukkoQcQaEn2YE40zck+GzXyeT2v9fT/t8/naBhrz8IpDbVs6
6oHXPZbOBGfMB0BSwy+kX9lTRmetrmtYHVW03tdrV9XedpznnhPRipU+GcZgCKZlwO95WWbZ
H4g5ORAjee4cnueUEV5sXvX75Jd6Ue/Z6cJFUhBrXoLttNuNR02qa7ZJ73i7XLGnHeiDOJx8
XyM1kfck0gKG0SvWYgiJb7yQW3QffT2nQ2CutboWbduGWSNIrTsUycYYIQOZY4/Q66v3T888
JZz2Pg51odehvrHoph84YwhU4Tvv4Y86k65ndainqToUdMSFBAYj3/uxblgiCZ8hBKz7DmcZ
f4sxuIalx2xoUNV8NgYt07UKfYgbKFWR2vd1cScFqOJ1zpFUK/VHkz+n+4Bx9oz3NBLxIlbu
3jm4QLce6xxQidEES9zQgM+QjxFbqVifG0KcSQAOrCFyyujOYYpO+taZ52QhOcU7hzXt3Jw7
3RO8sZinibEWYxBPw+AsYQyxt87wbkLO/XTSkP0cBui9IrcqhwQV2/N8koiquNd4Q/FFrbT9
t8YhCxlvDIPHM6HDMP4wTMjpCQPGobROzAed166PgVYKyVdCFLOOwzfODzlAGTKLMM7ShU2c
H6Z5hpF1E6zDlhKWeRaBlaMgK5Dc0QzfJxW6UFrrDxWvt1ZcISv2lHG5zLKPV2CaYKwVQhoF
FTkltBeSmIFmyGcs0wwEfzjt9I7D2U33PJ5FHnFyVMobd7xOzhnGOZKuckKRfHvaUQc5pyks
oHujg/MBs7WsRRojfeg+6bFc+CzdV+5npRcK3Ibi4xZFHKCX5YJW60FWM8YjpQrXeT8/Pj7w
+fkDl2XCv/zL3/F8big79/a0Z8wLhTcmWFSwRnYhCIHDwnZGkCpRKD9XTDHANCUwB9TBeI91
TQjzgmE8au5IvXKQZ1nz1pKxbR2jV8BQ4AFDIhKQ8XX/PKKsda8MwcM4Q/Ku85yTNYPgJ3yl
jD4slvkDYQrwBsegPvoovZrD7xj4N8dYJQwgRgszGsleA7BS21pLzLiVjLzvyGnHvnEPzrkc
A81aG37+/MTX/Qs//vgDj58/0PYd+7bh6+uOPfOZRq3IOeHPdcWedrRWYH98cg1m9ik2eD63
0ySxD4y3eDyeCN5jjhPCPAPO4McXcah9/RPv7x8wY2Ddnnh7f8d8vcLihrwnzPOEZSaGxUhU
ugnteQV6w75nGMH2ejd43Ffc3m50MfNG+nd7YCqjiVgnZXjPNQ8DdEOXo+6AAfZbJRWJOg1w
PsAZnoetNZgmZ21jvEkZHRUU6TCKeMB4koooUAtwlg6mrJXo2mkMUDsFktMS6NoYZwypB3rv
eG4rh+DOYd1XtBHpGGG4t/dOm39jhZhjOPKprWOIu9PoHdYCZlDIBcEkepVZV6vwLpD0jgZn
HPqgG+S+16NuqLUh5xVOI3YGCwBv3REd3FpDDHTeTiljuSyC0Z559E3mw2nfGG89NE6N7tZu
ecFBnYOV51LxgROjdhidrn4GFIlP00TMwLP+onjAH7UI3cYUO6AYiq9lDixEawQAx1n9qvwf
Yxzxa9ozrvcVLtL94rE+4LzHcpk4W2sNOScs8w29A6OLY6P0cVVEHEq2dtIXwRiUnAFHF/HH
40HCsz2d8LUOjUJi1l7fyZmi2IvWUp5AM62Uc8kIceJD0H7Nc4jBKxn5UMmrxacOMnSjuV2v
2NY7rKWFujPA7TITKDYWfVh0UaTlmlCE0WoM1eRaWGszU2s+Gjo9eF4VF/qj8QE1Fw5cGq39
VC2iDYze1GmasK7roWDXi9I78/9ut9sBkuiN//r6QgjhUPa/spk1t/BVQeO9x48fP7AsC+0E
RYmLcdofauFjpInVZlEbPQUGX4kBuRQ4Z9AyszNgDNZNbO2sZrtTLa2MXh/FslWsUjTrtTVu
cmPvB0BxWeYDIFguF/QB3L59OxhiB5HiAB74WkVA3iCM4FcLNkC+Y28YRuwwqzC3HG2m40RV
fpZGDWPAWU/LeLHNoJ0hCQRDmsS6k4Wo93eW/O77/S6s0IsAeLz3PgQ81g3OEcyWPhilMM+y
NbKjIABkbw3B8zAbA2RFDj5QqRRcZlF95UwFeKtUzgwe8sN7WBg8yiY5VRYhLJJTdrKPgveH
cwVzSskcBopYkRL8SrkigBanvTZpkgnmO+uQ/viJMToulyu2PXPdEW2gmsc6lLLj6/PBAh5i
X+YsWgeGpWrVOAIJDlQGerG5ny8zfg9kjk1igRemgMvtihA9brcb/uV//1e8//Ydc1Q7Ywur
TghOlHcxIM4z/LxgOIcOMs6CMMio/BkwaIiSeUY1oEXrQwCxho6BmgpS7/gcDi01+Lqf7K7R
0S3JJ+u6Y54mTHPA8/5AnGZuurCYQ0CDxV4IfE4xwpiG2oHn9sBlFuXO9sT1coUXS5Z5mrHv
K9UmaoGWOgYiemkwzmOvZGybBgTnkWpDzRIbEmd4M/BYd7gguk0XMCqtQVvrGIW2ZKkN1GGp
oLOMUJgn5sHMxnAw28dhPZRyFtWAQwxsttuwVKcXWkodVjdxwl4KvDQtrXdEH7GuXwSWnIfx
bA6HMZIn1+ElryxMswys6gGE6aCHBxqbcO+ZN9+F1a/727JckNL18mw0AAAgAElEQVSOlBL2
PXEgJhlTAIcux4HvnFjdhwNIegX/dBBDC/JdlJkcol0vF3x+fRIIEAb4YQEq4HGMUQp8qkx1
bymlHQOsE8jGkf+rZ+RhGf0CyECeUVXI9d5Rcsb1MqNjIPqIeV5otZoKnA+obeD9OvNMK8xz
fz4etD3kQ89zanTcnyvW54rr7QZTuN+q8tHINcuVxcY0T2RltobSTnW3KukUzLOiHrDCijSW
6pzJuUOtZ4xBlf0+v1hHvrr44AW4UTWL6Z3WpcK8fD5XfP/2wWHhGIAoqgzU5nOGcw2qzgK4
vo21GA20QYYFjER4mBeLpgEB54BWC3779oFaG8mBMHh7u0osgA7oOnR4CkMr9NoyrANabqgA
5usihCjAObESCwHBeyFyeYwGIZiQje2NwRwjvraEAnD/tGpBeqpl//rrVaE1z9PhHLE+d5Kn
/AJrGu73lWdm30lwkhzWWjvZ13Gilf/+5y+gvIGuUxyFaR0VMAM5J7y/z2i9YnIclDqnqpcz
90rXza9gpJMhrgAvnTeDhIaOfW8IfpahfUDJFTAcvpGgUFFrgTW008Wg6jV4Kv20vgmexJQ+
JIoEJDFBimcnZColCWiBrwqgMVSqy8a55IR5jrAW2PcNH283bK1wcFMyfJzgjMHb+xX35wpn
nQy6guwRF4xx7n0cIhH0a/I618sM5wOK2JqHwH+fIhv92iouy0L3HAFua+3IOWGWjGRrLT4+
PkiE7Cfw2hptm0OwRy3nnEPW6Cp4AqMwB7hoAMzTBGPGUbtZ27HvJFddLheSQ4HDFo3DF80d
wy91tF5jzZHXmlb/m3PMwbtclmOI45w5BvjLwnNN89hf+4Ix2tH0AGf2HXPXdI/GYR3/6i52
2MN1zTU+Y72mSfLxakMr3GusgJyjdYJuMmRw9rTKfs2s0/MnxICyn8Ny9ig47oU+28/n88jt
A1ShGY9nSoeQmqmu2YkpJby/v72cQ/0YDugQ6jUbWc8dDvriOWwTkFm2yQNAV3JUSgkxOCFI
OBJvgkdLiYodIzmd47R0f3VZe+3TTmcHdyj2eabzbH48HrheL8c1zFnY7XJddRj7Smw4BpNy
raz7tX+qQsrxziOXHVOMwOA5psM/rSu0Qda9UQcNqtbtY6BhYNtWTBI9ZY093oMOU2JLY4yo
79JBhC9CUDgIEgLalFpx+W3GKPVo2OkgxD2p9/M5CC5QLSmfWQdefH5wOHDogEpJALo+i2Ss
7ivrJrVH7L0TjLTteFa0ntKzUSMejJHaXHqgjoFhDboBSqswjQOBXweT5gAiWmsYfWBe2J+r
o4OeJcE5FB2+DXN8RyWWa1/prZX6QAmfJ7mhNaogq/TYPk7oOaE25s5vWyIRtZvjM6rLnz6T
PBsNCQP9dLl7XYNaa76S+7WHD+J8qAQRWZhSJ5525QAJcd+/v2PbEnqjQtM7j+e64/Z2Q5wm
fH1+woeAORIrUXDISj6krnt58DgAksGkOke8DmP5OSSvs7Hn1b1Zr6FiGQN0uIvivqd13UGw
KZkENZykQD1VfyH9GCt2qySSQwdErcFZOvEUAeyci1Raj/M50Lo6xHiAo8xtbQfpvgk5yRpD
63ZxqtB9Wl2VlNhCFxG1YrfHkFIHykoctvalZjJUz+v11GtlLfcAHdK/1nA8J50AlIzTUwVR
CDIUkPftvWPft6NXeHXWGHI9dF/X/faot+W+5rKDVtABrRbUnOCsRdo3WEvrZ43ved1blTQH
I/EvnWr/LgAyXdocAWhLoU6tDfuesCynRTuAg1ymz8orAagIHjJkHddKUYMBxTskfzq5FsSR
1OlSh+/sMX9177TWSk7qOTTWe6MKLv0M+oyPPjD66eypNfn1Mh3EHyUYKUnv2K8Co90OksAL
sC5WACShl4ySE/FFY/H5RVVscA7VUTHdeydhwJCQY4SorutLr6leR91Pubapnmyt4f3jBgOL
nOm6ZSQiQqOE9Px0zsEMA7SOyQU0ISc76zjY7/0QH3R5bzcMRmkwfcheyr794+Md+54O3O2I
o2z1JJ0Zkhq13qVziZCFR4eFRUmqFPVHfq8+k0rk+f/ZetPmSI4kS/DZ6e4RADKTrKqeme1d
mf//t3Zljm6SmQAi/LBzPzxVcwd3IUIpFpkEEO52qOq7NLJK66vgpK5vdITxxiK3PHqRjo7t
OMYsW9doCGEoVq3vdPordNhyxo6MYJ13pkygwTpGLDhDcr61jg4CAujVXBCdg/GBs0PQaec4
6LwzasBKAKnZk2jjnKOTHQy2lfnAITjsO+22Qwh0l+odL2+vVMb6wDtZI4aE+BRDQBvEJ7rK
tA5x9yh4bhkGPCsV0Oit0qkIoEq2cVZTa4WDuBrIntOZeO10qIuiLq+tAo2EC+cd0CfkSveu
3jtC9Hhbbnh/f4exATF69FSYI554/2U5N0rO2PcNt7dXzPOEx4OuHfMcsW197FXnaLF8JLpN
sr5rsKYheovuLD4+H/j28kqbaudQO5BKwSz1dzoOuqkCUneIs1Ot8DGgVYqkcmYdUTrJDK1S
MNMBPJ8k0H4+nrjd7nK3MlJnWW7IOZHQOM+YF7o9HscBHyOC1IR6brHeoOvOvh+I84JpnhGj
w7ZudK2yFs6RoJVERWt9GOebtXbMqPQcmeOEz89PAZG88J75GXItWJaJIrsOxDjh+XyiSy/C
WtANR0MChAdqaZiXSXpBcH7nPI7tgDrw5pSpMEaX+S7P3zBFOquuG53lABjL2bkR4YkBMIUJ
NTd8lgcAkkV7h9z3BE8dSDJzPuDz4wkYi1o6AM4gbje+A+cYneFFSLanTPIuDJpxMD7iQwDu
xXt0w4ihlA/UyviDbiJV3eJa+Ll+4sdvP7BXg5uNWEuCMx33aUaqrH/X1NBbwjxNiHHGr48P
vL2+4fPzA9m7EZ/UGp0jX14Yj5Q/N1gYxNgQHGuOaabIAb1xHmsMvDVovfDsdhZx+Q67AO6W
cEfHtzDhyBnTTCFW8H5EfATD2pFElIJcKlqpmLyFqQXH8RC374SaEo59Q0+ck7J3Lvj1/gt/
/PEHfv75F7bHEzVxvrofB3KtMjtKnHV8fOJ//PmXODRm/M9f/89wZNLaFY09pyNLCD7OCN6h
loxWC1o3uL++kZjdOp7lHbdlxr4ntFoYk1srvv/4QSeX2lDagSO3Ed0M4wDr0E2Gi8Q8l4lu
5ujaFwagNYQwwcrMaM8FgMFjXRGmiCkEHPsqDmMFj8cTyzRLpPOBXhteX17hvMNff/6JOFH8
3ACszxXGShRmjAguILWDAqlCUngMJKE1YMzEWm84DjrFFZmN3m4zrA9olo4CDgSUu9TntTdY
4xHmCbO12NcNVsmf6CKGUlcUKuOLkK/pUGMw2SB9YxTXAssZgsQ3qRs4SQEaG8a+6bYsQ7yd
jwMwHVZE34yTpFhmYL4QsaFzjDKVs2iaJiHRVDpPAdieT2JjzlFwaa30ABWPx/PLTF7vXJ2Z
6BxpXVe6uMleWJZlnJ0DRBeCInC6yaMUPNKH1IskisH2EaGYUkargPcUv8A4tF6kTj4F8F3q
WcidXKRPZlRaGTW+1sDah+h/z69TJKn9MwD42jv2dNqxBx9QS8HkPRI63DwNZucUmeE0RVpw
lZyZlRs9lnlGr7z4n48H5hgQPGADQYnbfaE9mJ9Q6w7ASI6UgbKrtRC6FuzAqULUhkYfvDYU
14ZK/9eNZmEXBXEc/51+afGuChodkF7ZyR8fH6PRmud5NF9aOB/HMZqBEMIoSpVhrv+u9451
3y5KKTK29He3w8puGjal+t/rBVBbPYcFvSMfBcsyI8ti8cHj/f1dbKf9l4ZLWcm1ZPTaERZ1
QeCwNYiq40jaQPKCM4aAMKzBkWlTFSJZpYdkp8QQMM0T7YmcDsLIFIvTBOMc1ueTuZGvL6IY
tOhN80HORrDVDO+owPMuCGPaYF7uKJUqQs0hs87BCPiljGQDFj+QYaA2NrSv82PDvr6+4vPz
A85YRM9ireSM2gqe245JwHyYTov0blFTBZqVgo2q8pwqegVqM7KhRQEwBfmZET5OHBo1Wrny
oOko64bjoDNCbw37thGs0GfRSG5g7EEHeoV9GhixTLFbYOnUdU2TVW5rhY0T97IxmF4j/vnb
D7x++4ZlWcZAx/og9s3A69sb/o///n/hX//1v8JNE5plJAIswVrnPGKIiHHC27fvmJcbxIif
2fbWwXhmzfROi0MSTMgqbL3jSMxDc5Y5NevzgVQSmovY4VBqx+12x//+409MyyzW7hwq+uDh
DCmb3gbUZrCnDBs80IWsYgyq7TgqBzLG0HqoCFGomgbrAz6PAsQFZe/IzaMViyNVzFMAmkMD
rc6O3LDnHR0dIQaUbvHz84n7/QXdeMRpgbcOj79+Yl5eYN1E94la4HFeLNZxr5VeePh7Wib1
3tGdw7RM8MEjpR3GEaRSUJ5Emwne9wEytAbMtxcOtzovt3Xb8O3tFelgKW2dAYyDcUZynAlo
PZ4PXrzGARA1SgdKZp69jxHROnhrGPnRGu135gkxBDJoD6qxANBCLCfkwmZb1Rt7PuCsR63n
7327vcJKMZdSZkN2GTBySM/mKAaxnpsCWsY4m/UsTcfBoaOARwo26KBB74qTJMZBq3OMFvj4
/BigbjcEkGutgHVIpQoA7FCanoeS/TZNAPIJ7oRwPse/gQY62Co5f1F4azanDiCHQkqKh0Ei
cwEfn3xf99uE9bGhA0jbziGH2kJ5j1KogF/mGV5spadpooqhUoVQciG7XIqEVMrZyLWOIDnJ
V+KEDsCc4+A7eMZeTNOEZZ5w7McArHAZdmvDqoWGkva8E5W1oxVq8B5udoLPMn+6Vu4THRAQ
6E+A2F8ZY9FKxzQF5NZxZHl3qrpkvUPrVMPv+/b2RpcGAVmZv1jR0eCENLYfQiDxbjTe+qWF
lFqVOsNYJKp/yW4fwF/OmEIQu3zL9WQdz9O/gWEK2LUmebkHWc5o5xCoX+4yLe4ejyda61iW
Cdu6ETh3zHP2jvZy1jETujRa4HofEe5BAOkD1rHhU5IQBAxt9WS6eokEUMv02+2GGAUYdB6l
rEN9Xuv5O1+H42QL0zlBh+HOUdm0bRuCn+Hvgexp58YQ1ljaG9+WBQAbQa0XlmmWAWmGKWYQ
T1UFQ5JbHwP+OAk7GbT9IjHuNhrY3jvuyw3Ou3FezVNE9A6Px4p8JNTbqWbRGqy1hs/Ppzhn
tFFX/vjxbTQsWnPGMGHbnrBG6hXHdwlt3kqFn2Y0W7Fv+1BtHo1NoLcOz+cTtIZ3sm6E8GqA
Zb5hPx5wLgxVCveew76TBMWzjAqRE7xqQjolO/7x2Ibd8pkpj3GeqkL+mp+rqn4FdBVAm+cZ
P3/+FCcBM87AK8CiA0kl8wBWgIg61JnAmW97bWy0d9CBvq45VTTUavDt29v4Wfp+lC1uLdU0
OszSBvBKEjhBmH3U+drw/R1s0XtMh3bHfnwBH65gWxbVE/eSG/2L3ht/JxKQeGFHz6HnLH9e
kefeRuOqd6UOknWArkCF/twRz4FTlWpl7ekzVoeMUpjf6mXIboUkpfeunpV/Jy1dG+3rXXkl
N6j71jLPuN0mlMzBtSrqajkBLj2fNF5Ev5gV2oY9YCusx7R3K4WRdK21QXDwcn8GiUVJiQBo
kb6qCJAzL/dz3dUmUS9f8//0fGY/cq5RBT6anEmObvFQpUEpBdNMlQQVvU1UH0WPGniJbPGS
maykJf0ZV8KdNvxXwEvXE8+EgCq9XukNrp/qUSN9lP5+1yHDVVFgrEUtWQg6/Yszn67N1s+o
O92b17shTOGLInf0ga1hfa4kCQrJ0QgRzDuP3BLJb/K7Xgky57sup4K7n+phJZ50cRSIMeK5
bqK2PPMd9e/19wtugea5K8iueYv9sld1n+vz0rWfc8bkgzjobAA6ohe7cH12McJ5EtfGYMla
WDEzSCkNS3AjANAA10oZkTXQPd47Wi5j0A9nv9SmesbpXdBBd7dpIiige2yQQQtj3FZ5XjFE
RmnUitw7IOALRIlrHUH+rHMOIbtUce7RzwNLoDcISKWEj1FPlIaUd8zzAmMqXPTIKjiodFyb
ZpIhshCdWqXrgAJ5XX6OcVZU5ac6mf0iey/G5pxkBb13jiMPcKm1U9Hcex9ApxJuhqjj8vV3
ANx7z5mZETC8Y/xlYUZcJV0JCuZ5wvNZBpmAa/nrAHL0HEKw8Z4CDdZVJ/ntOA7MSxBnrYZl
mb+c09ezwgmZA9axj3FdlK/qXuVRcxUCnRUXT71jz++nohb9/7g8/9FrGAM0IMyRJLtaQRdH
YD+Yia3fY9u24YqpvaGu7et5rGfO1/PxrOn1d1Dt9/V+0T3GWRwz3NmTsIbKEvM2atpgsW+s
fW63BasAem9vb+Ou9dYgG4BWuA0WkmVsuPdMB0zrtDYPkYd/JxhVO3BszDHW803PZp15lqJq
/ob1uREUq13cGDyMadi2NNaCEwC7t4ZDCEpGIhJ13+vP0HNa98+Yy0rEKomG9QtoOVw3m5AJ
ZD+21rCu4mjR6b6ZlEgZApW0tY56R+OklAB3PWev71sJeL11dDDOpHYVBFTMcs8aHYYLWQCd
oqAuJGjfSSayzkmvU9AMZM7pcOyJMSBSFw2Cp+ydr6REIXM4R2fP3nGUA8HSvVWJb9575mKH
wP3+eAIGeFluPJeMOO3uG5ZlFvJEQjkySQjRjrpN++8pRsQQUVqCd+q8xD6ve8aAxBCxrk/Y
IOIqEOixlngwyX4n0Q2OLjghBETv8VhXLHHCHKIQGbP0Y0qoaUitIYm1fEoHtm1D7w33+79g
LJWeMUSgVHx7fcHTOBR1kEkke//jtx84tg3PRx/7bl3VZUea2E7XzKOp6wXPhv3YgJwR5hlv
b99hAOQjIQSCLHrfezk3jdQKqRCoJmBt5Dy2chbU4Rai80rnw3CzMIbxUXNUi2b2wh/vH/j2
4w0hGrz/+kTwloKgpg61pzPvvNxof90KUtkxL8voi7Y18Y4Xh4/WQSfZVnG/3dHB/aJ3vbqx
jT6ksNa04mC0bzsMSECbb3RmjnHCtq1ypjPvPAlB1XWJUywZMcwkh4E28QBnw2XLyJkkPsVP
5nkBSeRUBXtZNwTo6ORYGwVZtXWJqKJit9YOZzxKJ3nUeY9uJJ6zZhxHQQd72aB55lVJFwse
jwf3Z/CYvEOXOORetUYFYIEQJhzuwM+fn3DWM0L4QUJcrg1ximgl47EleB9gvDjOOM6GnbdC
sulohVGbiw/oxqCUhm3nHK1buge7uCA3wIYZpVvsqcn7dNhSQvlkzJ+bKUh6HAUW7KWeib1C
7w0+UHDbWpX6uoClTxOyRkYpGf/4/Y6PY8PU5X5vCYZ5BKxBO/BciYW01lFywj16WDR0E3D/
/RtnAyKoqKVSnOMdZnG6oiJbnBGt4FC1wYJzD2s70p6xbwcen58Uj5aMfVuxPR+opSDvCc/H
Bz4+3vH58yfWx5MRHomRCNv6RNo2VAD7ceDn+kRrFemPJ2ce1sH0Jufkgf/1J0UvMB0uEvMs
fxXk48Db66u8H64ttALjHCqAZbmj14qaGQ86xThmVo91w6v3ODL//LrusN1g2w9YA9zmu8w+
OtLBCLl9z2g9oTbLSNhKwqoXEUutFSUXFFDYWkoeJBslB6gA1wWDtCfOytRpqzVosh5tetVx
itEGPjKuqHVxh+4duQGQM8qJdcC+JzjviKuZChh12zkJh6VkiesRAF7wuOGcYy0eHx+4v9zh
jJU40Yx9ZQS1sw7eAa1nRj7pPmxNIvYYlKTOdEmIpzrn0FrmSmq21g6SqNYNrPEDWuN5eCVL
a92otSWAUW9qraV36rXGdM5hEqfqz89P/i6d9yPjZCii6iIGoDsLsbojHXSfadKrtDZm4c5p
5Dvk3mXPrT2unuFX4QkAzBeiMHs7fnaSi08ymG/yckIImCKZRS5GdDRm97hI9hW4ILRpnadZ
LjgzLFpzKTANeLnfUEuGAy8iO98RFwfvLST2FWjcYEHsZPXlqZpNmwGyP+yXxuY6JPs78/6q
ltGXolkXOpS72sHpi9WBrxZt+mcBgijXbEktEmKMeD6fY3Gptap+/7e3Nzyfz1EUXpUqV8tT
HZ7pkEUHxjpQXZZl2GTpCz0HiWcDU+uZp/r5+YnX11dM04T39w/knMRafcL9zjyw3mlBNU3q
ZMBcyu+//UDaD7EOEXs5+RnWMwv6kAbHOod9pcXG4/EQBaJH8AuH2lpUWeD2+kJGkKdFbjWM
aiiFwzFm5Fi0lNAr87ZLqzC9Iz8fomA4HR7UgihJrtg00V3ChyDgCJXSb99+gBaBZTDHjWOO
9ZESnuuKWhvgHEKYUYrH489PWKeNjR2sb5IvCj4/dyRRU5OI8EHmbi28fINlYaVDLVHbG8fc
GXQDYwqM6TCVNt33Hz9wf3vFcrsx38NahOBgLe3uXPBUfLy84vXHb/j9n//Ejx+/SXSABaxl
dr2LiNOMebnBgtbib99+UJXTyOAM00TACh3GVBUpobQ27M41G9p55t200lBax8/aEWFhDZue
9uBa4WFVUGqG7cAyUaWWO2CcxedjhbEWMU5YpoifH5v0tQnGBtTSMR8bjmyx94oijVduFS9h
xnEktFIwTw7vn0/AGvy4v2Jfnyi54/2xwQWPx+MD1ljclgXOGDlrCta847d/veDNkLXcxPYe
nXtuzwmPB91PponMUudoiWUNhyfGO/gQURvweDxxn2dMkWqcbizVMBDFdamYpoic0sgw497w
2I+GJCAqwOLJ9IYfb2/4/DwHkV6H9HpOSKPKgYay1RxC8NjWFSVnxCkiVcYcXIH1efbY9h21
F5hmUSsHeQbAvNzgHPN2G4CM0xZy2w8hQEz4+HyglEKnCxjUXJnvJ5aj0BLDMHeSAw/ao6sd
u2aUQpi/Bua0Or0Mqq2z+FyfX1Rd+jVHWns9Rfmqf+nQ6zoc0LP3Ckx++/aNF3wDmmF8CC9y
OzJKW6uYlwlAh6pdryoeNmddConzbN+2bZC39IwnUKcDbjsIAL3XL/eCDjOMMYDrmOYZOSU8
d+YZtySASz9BWrWQb7WhO6A7M55flsFJ7zznj+OgTaE09TUR+NdC7XqXKrByKq0ky1IGl9tO
BYVGRpTWMMcoWXN8oC8vL0MRxb3kMC8LAdWcYA0dKmrNHIRJ0XsFvKkGc2ysHc/D8x2QvKYD
Z74/8G4QW0FjmP3+cr/h2HYcwrDVwaUCmAoIpZxEwfJN9uY23rfaLqq6oJSClAtmTxupaYqA
4boIziMfCVOcsQlZZU8HbO8gqScieIfeWRSVWsXOyWKOAb27URvomlYAkkO7c4BaWxbrZFG6
lgoYsTUGEHyENRbbc5X3yuy43qowepkbnkvC1HnmWKf7N8MYMvZPpZEd8Ry6Z2OMw7VJ6yAd
giuob4VoEGX/TtMNxlgcBxU9t9sNSmTctx21FuTixMmgYZ4X7Ps+1gibbUcFjty10KbDXM8N
I0o1P1QqSjittZ7NluZcW4vjyEiJA/Er47e0+sVGv9aKKU5CkmsSCwUwk/4EvAhkGtjIKBkq
nU9AUx1/rkDpFQyrTdXSjPTwXq3CIXa8HKy44Ej4ArNC2djTEcvJIJNKuTT2+pUUCwCvrzfs
Oz/ft283PB4J67rKYJzPed/3cc6Noas9FX/fv78hpTJAxSswdmVPX0FsrY1r5UBF185VVamA
/zSdzjLXPkDPeq2llYCi6zFqzuew3u/yM067/SvxSf+6Am76XhR0U2KFNoj65ZyDaRyAvrxG
vOeC2htc8DCJkU8KHCoxQpVoep/p57s2tnom8M+fmXSDaS/ngqpWFfjQz6IDwZNoTbBNz91S
TzChyuCslIYQIj5//oX77Y7gSQjdhFSxLMsgWOgwW//7KxCkX/r8tCF11sIbh7U+qazwHq/3
F1GxJ4SF74axJWe0gdY3CqaFyJqqVPYO3jrJRC2skWUgVXoZe6v3LgClRakEGl5e7oxBawYl
F2R7usc19BHx01qT/Os+7Pxz5pDbuhMA8J6uJDkXTGFG2thHQjIgS6NqtoEko24Y9aQKGWMs
ljgD6KjlqhjHl/Vfa5HB/QlC6pqOMY4BsGYnGpzW9XJg0WY/HYNApI4TBBYFYBObSnV8uBID
RlQFzDgndY1fz4Dxni5n3ZVQ03uHg8RAaC8i71TvHO2x9fzR2u9at5RS4CKBlWYN/xJHLefs
OGOuAxV1BORdyD6vivrZOcYcXB0cVNV/vXfG+V0rZnEfAagGTvuB+XaCmQqmPj53xmmI+qp3
2kW6y176uwuIql31rL1azeszzTnDGT/O6HmO0FglvRebYd6pnsd6/urzhdxnpnfMgfWPM3RM
SyXh5X5Hlp+/yywnwsB2VqoOBkX2SWtyDjYqZ4PzY0DnXUBFld+hiTK3yB0XsK77cLTQ561r
WGMZrT1V2lf3AimaoRy+UzxyEnmMAZZlEsC/IwSLdauDYFKFmK37WmvEq6Wy9x4tty9DxatA
pfcOZ9xFJBKQS4cT0N9aRhlybbZRf+l9O8/su3T96ZkeAgkm/HMarVIJxtnTTv3lvuDnr0+Z
vzGCQ9VNVwJXzhn7sVFV7D1tvo06K5H0aLrhwNtacbJy4y7X9Xa9j/S5D/W+9FLWM38dXcQd
Quzp6OPP6h5QIOnvZALdc3r2Xfu1KwlK/6z+Gc4b4zjnruenusudtVwehNjr7M+ak2ywrtuX
z6/PPedj1JxNP4OheMQ6S9fMUrELyF1rgZU7Ik6RkSrX81HWoK4ZHuNG4pYOztRaxf0+YdsO
GHuC0/rM9F1qL6TOoloDaN2k50GrtGRXwrK1VoQofVjgusA7zXonAhbpOWujM8jlHeScEZwf
YK2zjNrJcrcMZb+ca9pba32k4Po18oWfkbbZsIxC0eF/b2Jj7TxMb5D4aFhrsO8bgqMK1uIk
8On60WeWMx305iUAweO5PuHFQWCeJniJVTvSwZ5BHBy2Y/p2KMkAACAASURBVIc3hsGRQvSg
Y1GFaH8GIcwYErQhM+nW6bKgv8dxHOO5BudQDg74S2OutxIUrRD5og8wtqN3S2dBG5D2hCDE
EHQC6LRtN4ghMtLUcAapa+44Ds6EDdDdGfPXW0EHMEUV+RH8FrM3GHTE6GEMieu9d4L3XWJU
OzAHj5IqDDr2Y8VsZgJi3ooD34TbbcHHxydVq9GNMzxED8DDoWOZIx7PHfueELyDsR5HbVg/
PhFDFG2AGb3/y8vLeMcGImRcH/j+/TtaA7zcd0oOCyGIs6vcxSBAs8SI9fFgb98avr+9kMgp
kU1vb2+cua8bHTqFmDsJEFnl/tG9v287Xt/eUCuB02C7uFkemKaAGCkYTKmwhte5nbg667mg
ZBx1GNP5v3OMVA4+kDvRGdVJBxGtNU/StvcBMXJ+Cdmv6B3HsQ7Bn/YnTSIceutYlhnruuM4
GG12uy1Cvq+wlkK3nHkWT9OCbdv5zwG0nobzmjGJEQ0uIESJNjYNOe3o3WKaI1AbUutwxqD0
jtqNWJIzVhfo+PXrF+73O2AMUiloudARDEoQ56w+hIhlmtD6NvoIr45u1iNEzn3nyFnhUQqC
Dfj8fCAGj/35hAXERUoVzJyD+xAwLzM+3h9wzuH5eJKg4wy8DfCO/VUHY1rfP97x+vYCWIvH
+sCP7z+Y6+7poPZ8vOPH/EahRG9wPuCPn/+J5XaHgUHZEpqhvXj5+UE79mpwbDumEOEVGJ6o
gE/NYN8LCRbdoaWG+23Gtjc8PncAXCt7Bmq1mKxDeib4QFHZHFkLPPePUWMH53GbPfsQTxfL
FC3q3WP+HrHME+hC2VFSQYfBskw8f2T2oKB2yQklHRSLSG30fHyg5gTUipoyas4SnUCyQEdH
rhm/fr1jfT7x+PjAx693bI8n0razx6kVJVPMaV1EqgXruuL9r7+QjgN//PpFkpVEi1pr8XLs
SOmAeTxhaoeHge0UmxFrYMwHZwt+YKjT7YYZxO1SOeDR8NiemELANKnrNPvv1gpjM9HhXZBZ
cCEYHgJaZ0zkFG8kfVSD53rAGOAmLgTbtqO2in97+45137DvK3zwyMcKbxzdA2KEgYWzjMD0
3qJIRPHZW1BQ9qhnDNFtooi6SDzqPE9Ix4FSMm7LDG8NjHe43xf8+ecO48AImAA4S0ePXMqY
ZR5HwnFsQLeYFwrI932XmQnw+vryN9xYnaYojiHp0QtuZwZuomfZVchBh84+5hE6i1FAX3Fg
JZTrl85otca731+QS0GMM9pRkHKji0QMKLXi+dwoHg0LTCdpKVon7hYkfRpPl1LnLYnLRch4
sGgGI0ZTe+Axe730QQBG9Nd1BqcRnn72cahrS6V9tnNOFHJBrH55EVYZDFhh9/baYEIDDNVU
1szYnhtaywjOwloZxqMyLzIEoHb4OcLHG1pfkRJVkdqwfHx8fGGaGmEwXQF9fcj6wn0Iw6rY
e4+Pjw8yLGX4NJTz9Zq9qRl3cTwUtU/TBaANhTbT+t+rY4AWxArgaROii+g6xGu94ci0er1+
vhAjWmM8gb407z3++OMPvL29jSIvZ27uECOqqEPneRmqHc1VnSIZJSVnPB8rciKoHsWestQG
iBIAOvBrFrf7G7Z9w+u3hRdN72QgWxaJL69vBNqcwa/3T4JhhvYVKdNyhdYVzNPJJQnLrMqA
xML7iHVbmT2VCCzDWuQOdEMA+/ncaWEUFtTWUQ1ZgDlnRAvE4NFQsK8J1gPNNXTLNXFIU15b
Z0YNDOq24tfnyoFmzmjSLLx/PgmOtCq2IxUuToA5huUcmoVpnYpWQ6ViB2C8h59n/PbPf8KL
Vb53fthpQQDjuAR8+/0Hfvzrn/jtH//C29s3zBMz3a13sKKo994j+oB5ueH17RvibYb1HrU3
+GDHpaFAAoErHg4pH8glMS/JkDlmwAFnSWU4IFQAqTYc+YDdO+q2wXiHdTvIKvcB1mLsc+vI
hl2PDS+vd7TaZPjvyErdC6y4LJCgVRGDJYjUOv766xd++xYR5hl/PT7gY8DzKLjf7ijN4vO5
wzraZ01hwZ4ZkxDDBG9YwNZ9Q5a91EtDnBZkm1DBtVZbw5+/PgkQNYPSwWJtmUl6sFYiIlhM
xxBRjwJIlMIyBTi5DKyxYn9vYFpDy7S8SjnzYqwJxgE9d6zbystjWbAfCcayEVj3HbfbDdtz
RS8F317feEaBZIM5RGQBC4O4auSU0KxDR4U1VKcbo+x1T9v3UrDuBzoaltuCaZqZfWROhePt
tqA0qscISOs7NOOS0hxN7x2W6YbP5xNHzrTVQce2MyYBYjlLKySMXFO117vf70BtKMeB3CqO
koGuw4QO0xqAhhgXGQw4GNOEZczGJcQAF6jaZ6fev6iwnRSzFQS2nD2tGp1h/rcOofSsXpZl
2GDrpeycE4WYxbqteHl5YUGSjjEgRjuz16m4o/UtAJhGgpC1GMVCa+cQCTI+1/tFlaFXdcJQ
SpgrSUGdbmjVlnPGtOggWJRA1qAdGa1X/Hr/hWVeaM0GwHTmBKq9b4gT6n6QYWvoTlITnQ3o
9NBJ2W4dPkoBOizxmYmltqv62RTA0eFQKWx2YGg/Z52o2cd3kUxIKTr0LlXArtaK3hzW54bW
6aSjQ6Q9Zyz3OwGHzu5XbeXXdcXvv/3GPMGSkdIO5zxqzoChdZTzXiJXROXVGtC95N1aPJ8E
/28LCY7bkVFyQ/BsUAvasO0c4JEUiAqYKDjpfRhZXHxPAmTIWeitw3Nbscw3tNppKecjM50a
4C2tHzs6bAVIAMFQ7GiTrsWqsleHdWXXRufAvncs88L3CzrjmIl7qaQCH+m0kIXQ4K2yY3nm
E/SWfSWW7cwEbdi2Fb1zX+V8gBm8Hdt2AGiD8AJcyRinPZbml9OJyKHVM+ImJWaS1dJgFtAK
tRas+87hvjBvby+v8N7ir79+Mbf3fh/KvRBp9ZdLpktInGA9bWJrK0LY4TC0yplI29Mk5AM6
gsgHGIr+LO4cVlQMytgthU1/S32cQ70zgqkcO+I0ybOxMhzm76f5wM4FhDDJWrFoMMi1YPKi
yO912KaFKQpoJ+C4s2i5i2NU/wIw7/tOtYqToaQMYff9AGBwl9xgPT8Bg/0Q0NK64RR11rcN
j8c2gH4SNk574VoLQjiVhvrudVjOAdmBfU9fFOxXAuy1rr46hPCfsdbxnr+Lqr6ugJaesUrU
HWc58KVH0O+5LLTyfz6fF7Wcgh2zkLFO5TMbxoqU8zhj/656DsHD1JNcpwNhdQfRnkL/2bal
AfANEMgyvuq6f66A9JWQfM3pVuCU33saAJQ2pkoW0LPk/48gcbvdxj9b1xXddOSWxeL/fL76
u4VIy81v377BGot928TKFaM/0vWgQ3hdN3oXPp/Psd6Uta/vTvsqRhqwHyKgFQeIp59Hz2N9
l/q5YIDSGXMDS6UkeofpDUaei/dUmZlLJAxtv8UK2poBXo2hcjhjDIwxmCP30xRZ05W/RXfV
coIjrTcqxC37B41EU4CZIDR7b1oLVzixMe3dQLPPCTQp8cPLgPJ0x9F1by2Vt3ouH8cxCC8A
BqkvSQQcjDkzta0loePYMc3ziM/btg3fv38be5u9TkBPx3gH27bh5X5HB+83YzRr86sDyhXg
T4WAWW9trFkOhm/imCQDJCGO6lBDAa/rOXj93vrOOJgGjmPHdJvp4oCTeEKwiiCFniVXJ0Fd
xxW0o2ylDFW9gmU6dOxSH+rQSEUN+mUtwQt1sugdI+fWWmY4W2vRrcUUA7Y9CZHDDPtsAIMQ
fBwHWqlwQdwKzSUeqNCZMYSAo2Tc7/cBSqqt5HGctuUqNDDyjNd1Heezc+o4Y8dcZRchgn7+
deMd1FG/7Bs9f7W+TinR2nTnWuG7kpmKc/CWRHO9S+bZj+/hLK3pt20XECOidQIsgLgMNCsO
jLxzd3FeqY1gK6t1DOD/CgpzjZ6ERiVDsRbmvbSuogr2p+27vuure+XoJS5nvd5xGhmWUkKY
HIIlka72TotwI/EzPsLBjrtv34+TgCh3y/Xu0/pQ1zdrSX5Ynjdt1LAA8PnY4X1Ayucdo89C
z7pSCpx3iHFCl4F48HFkXmcBeYMNY5A6CGRSb2j9rwNiJTdfAeskIHrvJxG3947X+x1bOlBy
wX1exnmmgNXHx8fIVFbig67n6QJC6f2gd4o+/yuxpXe1wTUIMYwzbBAycc73eBedsQJ6nmtP
SsFMH/dJKUUihSY0EIAulSr91g2WeYG1nsCwA/wk6ysG9CwD5k7XyyiCpmmavpDrrr3BIA3I
u2yt4+PjCWuBXEjY1/2ow28XAyPeREyTSx5uWyQnsQ673+9UCwpR1scgwhIOyF9e7ljXDV2c
lK7k5XQkIYhMSDmhtTp+BkExDJD72HbUXL6sKf28SoT+fD54toEbu+M81/m5wlDCL/M8yAqD
dGo549P1qnV7TbSZfnt9xV+/PlCq2AlfeuQraaMLAbDLet6OHaYR+DaGLppGXEdgSeZapIZw
3WFeZuzidDHfJzw/t3FXQeaOTfZ2KxVToAOvCqluLwtWqdmXhS6sSaL1emWvmjMBaGNpqRyc
Q6sZpSS0ykjT/aCQKziPKu4tpdVBvmutIYaIXiu2fSNwMU2I0wQHQ+V6Zc9O8JcW5LaDRC9r
hVRi8fPnL3gfMM8eOW9oDQQ9rGEMLRg/5bxHygdSYU87h2U4tej9oy4Aes6t60pgzhpMU8Dz
+YDzETHO2NOB4KI4zFQkuQezrBu+MwtYCvi47wX78A6h23HHGnCuqOdEa3TsVMc5YzgjZSQP
XRL1rIshIJWKY89ojnba+77CiHMfqriuOCr20c/YGdahvMv2bUMuGdM08501OgeUUseMR/cm
78Rd6nIKAnLJjEzpWldRXUxBl0XJXQiSZ8RZ7ZxJA8yaJ/i0jfkHbEc6EpZlInHC672tAhOt
MapEUp6kci9zGOfOHrNBCcTirtE78p4xGapjazngQwQ65+MuSHaqpUByXui6h4Lx7Jzlc21N
+pd+OsL0Aqwi9IiRc2D0LjGwFE+yB00wRmJQnMX75ztg6XRkrYWRqKjo6eBUWocxXmo6rtmf
f72DLkd0RtlzQukN1kXsObH3T41E+6Pj2BI6DGKc8XisMOhY5pnCu9axboeA7hb7c0dtZtQr
07TAWLpcttLh4GFhZVZV8dhWvNxvsHCCDbE+s7Do4D1d0iect2iVMWA+NDy3HcYEwAOpAE3A
4ffHJ2uxbmBdxHP7hEFBrjN+fTA27ZYpXDiOCnskTKnBoMF7i1opanXbAdMb5iWK04flbKu3
MeHWXvn2j38hWMv92Q284Z+bvIezQK505whCUvSOTqneduTUsB0bis6wLaf3+3Fge644Hg9s
jyfWdUVuFb0XlHTANFru//XrFz4/PvDrz5/4+OMn9s8PbNsTx5HO+qx3lFzx2DekVPDHugoO
5GCDw/H5id45g55uN0ZklwxnGHGwTDNxFLnfrWGMVowTHo93tA68vn4T3MPAhQWtVfz5/kmB
ig1Y7q/YckXpFGQ3NMzzCyOpDZ0ojpbpNl47fGf9U0QsARjUamBMgIEZTr410uk4HwnT5JEy
e2JjxYWuAqU2PJ4rjCfB5PHxjtvthqCipQ4Yw31nrMM0c7ZwlISWSLi23uG5b/A1w8EOAcW1
zguX2cKVzE33hHNWpPMn9iwNtZ4zhSuxU3uaK9lUa079e2OM9BZGZpOMSXLe012+MUYGhnPK
ECaKWmuX38kMkUCpBRV6hzAGzRpzce8R5yLpN3vvcFKj6O95xc31WWjf4GklnzHfFjJLahOW
Nh/iUQovQ5y2CEfKQH/A9oYYLHxwcvhFpJ0DCrX7qznBzg1v9xlh8ujO47ntmGNF6xmTP60a
dNh0VYyxyZu+vMC/q0lab7R+A+B649CnVdwmqsi252mjD2A0U+oKoI2ALg4t8K+N3NVaSgkD
qnC4Av6Q4lWLblVAHCmhGTUm6uOlZrH/tt6h5jLYJff7/YtSylqLx/oEDGMRZmtgQOVQqRXr
voszQMOPHz9YeIuFuXMWDRxg5NpgvMHjueG3799hW4UNEUc6ULtH3gr244nbQveGe1ww3zxS
7WjwgJvhTMfj8cCedsAYeH9D6R25NJQOpGOlhaYqLgIbwF8//wPp2GGNk2z5Ihc0i2bUipIT
jHHwyw0NBG+NBXqtsLah18SiLszopaM/WTygNvTCoTqMg4kRbppxnyYB/JhhGGKkcsMCgXNw
uBAwfXvDj3/7F37841+I08QhnoswLgDOwfmA23LjgC563O53zLcXxCnCOyvMdaos4QKKMdA4
hWHnUVVhdw6oVHVec0H3Ab9gYI+CXth8hcgs0VwqejMcHKpFsKOl9NG4/mn1LMoYWGFcMo+6
j8KJKigA8M3hqBaP7YnbYhCDx/rc8PLygl/vH3AxAMbh568ngnNwls+lVeb9HfuKZZ7gPS+A
khv2dODlfsf3H/9A7xbPPaMVCxMjtucngjdInRZ6U/RwPuJowC6DzPfPX7CGimHjVClmsJWM
YoBy7JiCxzQxk8oaCz/fkDNB5iQxA94CBZIZ6EiGac3i42NFtxZotGuepojegee24+XlTla4
4QBOm/8kubbL5LH2AxD3BGstcuK/c46gLVpHtA7LvGB7PAFnsdxu+Jl+IrWCbknYCCYiFxaO
xltGXJQM+ACbTztFZaSFGLhYLJX4zhghCugQxcB5Wlv7ELDnjM7um24F3iMfvFBSpbqH8Z4G
qTS0nEA29kygy9UBSrTWWAzWjnIU7HXHFL3EbghJyBB/7J2WlUYYxMxGO7AsC449AVIol5yx
p1MlfB2S6cXlg8ck5Ad1p+lCTLkOChjh8Tka+m3bxkBo2+jqMS0T3sLbaGC5/2gh3vo5nPoy
OMpnhAABqVMpovmS3MtnhrEqE69MQKo8nBQEZ/YOB1xshIJkeefGAaxzFs704fxh7STgsDZz
BLWZhcuIDOccuoAf08w4mJxpVTdATpxxN3oGDbDMcg3VWmGcJcvyOGA9VW53AbOdnDNOGlm9
n1QFp7nLGmEzQEJrkXKS/Cgg5QzbO2xn5mpHuzTLToaLzCYOMeCvP5gJ5uMZtdAt0BqzxBwM
4GRYZ+iIIfrnocxl8efx8fnEXazI9R2XUnDkBFvYDHTb4Sfay+ZU4V2Uv0heU/JfB595bRU+
LGMQVHqDkaY+ThOyZK1SzWFRGlBroRLCOvRe8PLyCmM6eiscEF4GZwr46V5ZlgXrc5W1R2Y4
vxjVokr70uuoSZoAZ8sSYU1AzyTp6EC4lBXeG6xrwf3+QtuxUjlEawA615Lauz4fJO9oDXdV
FF2VBrS1Ou3Gmzjt9N4xRR1S07bwSAVRCm4q72e8vLwxm9Bohj0tFLlvTwU8CRtGvhfJGCUz
t8w5P9RwBNArYqBygoOZKDXdTeq7ihCiDKaURAo2waXB9Dps5XLOyOVkQF9JL/oXzzqSIlnT
1pNM0hsejxXfvn0jc1oGdlpHfrF3tRwkTkKGaa3BCEjDwUgbw/ErQK81fZbMQVWw5lIktkCU
TeZit1wbfv3azsGfgGE6cNNzT0F/HSS/vb0NIH/bTveHK8Cgz+Rqrc8zmGvB2hNYv9/v49nq
Z7mC2xzcpvEzrqCtAll0vjqfCYGJLuuegy6uYTeG/SEE7MfBnEfpQxgJQuVLK18jEPTz6T7Q
5lKJROqwcsig9zjSOBOue12f8ZUwoUBTFsegU1F9Om0o4KjvQwlrV6KFnvnXZ+6cG/0PVcR1
EFBop0mCMmtMRii01pBTHspq/R30+14HjmPtutO1TX/XqzNba4wCusb86Du9Kjb136kTiq6l
IxO8s4LuNbCpHjb2uLrETeMe577J6N1jmpYxSHbuvJdipP2zcVTkppIxuVPN7S6qTyoyqI7v
nXE5vUq+cNRImDA+k7WWRGJr8fhccZuXC22TX0qoOt+3ul5g9J46wNCeVvse7Vd1rap7jJU1
Za2Ft45W27bikL2k+dU5Z7y/fwxyI89wqnvSttMZJWXcfp+Zp+jYZ+w9j8+na0/fZQgBpvFN
lXSSXbTvd5Zg0efnY5xtV6B23/fh8qL3+7Zt4mJ3UYoaVXWT3NsaFWZohgPsfsrAde2OWYcA
Rc2cThpqA67vfajcFADECSrr582FoEiWPxvmCdEHlFYH+eLYWZOry0atWep+YD82OFhmGYuI
QGvJEAM2cdzRM0/3G4ABguo69zKIupJ1hhLdupHjfCU2aP1grEUWQr9m1zZr4KwfWcNNVIuD
OITTVUqfzSI1sgLAzpF82o3arfPPak2hUSbP58o1EDxcdMitwVgBcMEZR0PHqhEyAggGceCq
lXmlDmYQTvRe0bPSGDNEKJOAsMeRMC9B7g877psreenl5Y7jSOediK8DOD3f1nXFy8t9rBE9
J5WAo+BrbaRuX0nEemYowazVhteXl3H+jb3ZTqWSMYCxHsY1dEMA4sgFt0Cysa34cg5p/aJ3
Wa10RouRpHO66AQ4QxfI0jg3VNBb7zIF5K7rMUZVbucv5xJdFPxQzyota5f9h8tzvJL69M7S
NWyMGXejfib9XfTPasSn3kO61nsnWbrKPuiydlLJMI4gp65VdQK9kq5aa7ASyWI966ucM9CA
YioFDZL5aj0jNJyQuRrohhHFSli/r7pcxWkioaeckUm6ZvU56xphb0jAUp/vuFtFFNJdH99H
v2dVcpYxI2LFyX9H8yjab6eShaB2rkt1u1NnGGMMUk5f6q0uEXfqPKPPn/nyFGDAMHvdGEP1
uD1rIe179I7wwWO5LaPWbU2steeFsYA4VXlaI+Qjg7GIvJ/LcaDVOlxUjmPHfVkwT8w3r6Xi
vtywHjtg6c5FZ0Bxxqt0cAmeIDXs6XQD0DK9topWLtEscoc0Q3FVAxCMxRwi1p1gnfEOBRRi
bIm2y1qP6D2ybQemaeK5uO4SddDwuW6wwWOZ6JqSU6Lj0bjrgaMcoualw8kcPdZWKSjwnmCn
OR07OixJAM6itILoOf+xnr1IKyqYaiQOSG2goCpdmBqs6aiVcXTLMksfp6A2AGsZ0dBIimng
Ok0754PzvCDYs47lbIzra98PEbYs2I9dFKQEs7+9veI//vgTP+bfscQZx54QxfGH911AOvZx
dvRLz5xLgTEOu8T23u93tCrPagpSp9HlwTneg8wP5/33+XiIKpfzsW3nfL93EWN4j7e3F6zi
YBRCRAcz20mQlPXuvhJ81Hk3lzIIORpdoue37m+1pdZ+6tp7ULl9kGQi56HuMRN5519JwBpJ
1AwdOnqpMhMwwzmgi+unzihVyOD92evkXOB9gDoUOsv4kWoK5wN6f9YmJJOAdGyYpgWlddS6
o7eM6ByKCRTFWalXrJAVSmUk6cR10eQldOlle+uolSQT0+uYx5XMGc4gxosaPNcLQQAdrQPe
WNQOPPcN03wj4Nd55yYhVDrDiKjSKQLqxjHqqfGMpRCMLpaAQS4dWdZbEHytN40Z7diPPEgL
tnd5huxXl/sdOSWkbYezDiGQgOGcQ0PFJmeFAdBbQXAz0DvW/cA///Gb1LxUHXd07NuGkjNu
y4Sw0Im01EahngVSrgAY+bttO3GKaOFcxCNvMK4wBtg11NwQYkRKFbUYzN9eAGvw+HwiBs4x
t5wQvce+FlSJSnYOCJPH+rmhGzomvlgKjWANcu1Yt8K9kDqm6GF4gaOlA6UkTM5hniOMBUrb
YcwO7xlDY7TvLA1HKqiGbubf7y8E2eFx+/EP3L7/Ay/pQG2N699beEtxmrUG1gfUDrTcEC0d
TnKTebvMsU3vaJVkwGNdsT4eSDnh+Xyg1UocQEgCx7bjf/6P/xvvv35ifT5QU0F6rmitj3ug
Ss8CP6EU4OPxxH/+x58wBsj7CpSM5e2FzrCJIp7p5YbH+zteX19hncP68UlC+5ElDo929bAG
YV7w8z9+8o5sHbkcmEJBbbzT5oVODc4FFHg6Mk43RjY0ult1Y/C5MrYJZkIMEWn9Bectvn3/
Dc/nA+t64OX+ynu7VuS600nV0g2p5wPGe6R0oOZ0EvaE1NoFy44xMn5aapZeCp7bJg6oHsdT
nJf8Gc9LxyGglIbey5c6WuvNK+asWLXWN2qrT4xxQowz1vUgMdAHvLy+IsSIPXdMccZzS/Be
BR+VOGP92jfV9DVK6HbjM22Xvk1/J8VGWmujN9QvxcxViOEFU/G1E7Cz3uE238XWpCI6iyoK
cO/DUF6WwsHsFCegZsToqDzOCSHUwV7Y9w21WiyLQ00H3l5+QysFfppgmidIeAtwFkhHEsXq
aSnBIpuWGh1U8xlgKGrUItZaK3aJLJLVsmxYwsGwcK6ne4AOPlRBpA1xLlS3GvnZbPp22rNI
k7rtG4fIOaNUsfuEFIUdcqC3UZxQAbWzGRhkAlpfkc1fRcno4H3A9+8/BrP5169fZCCJ9aP3
EhNQaZXknWfGigsyzJrRu0EWK+6UeeB09JE/ZJzF69t3HLnjz1+feHw+8fb9xxjy1QbkZHBs
K1rv+PnzT5RScXu5o9SGX+9/8eBpDSYwm6SVfWRTOu+R94MDlSrKWGHa9dbx/R//xLau2PcV
3QD2NuO3f/sv8M7j5X7HfVlw/+13xG/fkQsXckkZ+fmBun0CLWN5veP13/8b/vFf/g3fvr+R
DBEnTJ7ArQ0Bfr7BTzPmecHr68uITqBxTEehNxKiZJmU3lDFCaCVBgda+ZTahJVJtqExjCJ4
rju2BuTe4DXTuBdUGKzrgU2UPx5mvHNjDGo/2bPGGORGIN8Zg9kEvH+8wwWP9Ui4v77g8b8f
+Pb6Sjv+42DmvXOYQpRik+QEKlY9ereyT3Y6X1SDo1TkwmY3hgDT2Dgpc2+eZngXqOqFQ28W
y/KKBpIZSu3ozcG6gOgCUktoOWOeJrzeX/B8PjHf7tgTGYk5FdRUsKcEN004WsU3UdflI+Hl
vqA3g1oyASvDuIB//vN3/PzjP+Xzih2yfLaaEo5tgBFREAAAGa5JREFUxzJFDkkcsJcEC4uQ
K2wPMKZjCgHOe+zrruJwxGmC8R51O+A8BwAvr69AK8P22nqPOM1w1qAkxkP0TkvQ1hrKdsBY
S3IKHILzouBh41kyh5X3+4z/+HiHjx5b2rAsC57bA81SVbfMC2rNaCVj8hElJzgwO8sH5hw6
a9Ab8Hw8MM0Ti0dLy35XC+Y4ozZeTEGaSx2glNZoo+kdSmuw3cIaycN2DjEueK4rwhzRcyFL
zBpYOHhvUGUfl9pxXFxZ0sHMNT1bWbhLvqPGcEgmjWkdwRJEhjnt7EPwSKni+aTrRpwCaskw
AgqmdIyzX1W6zjra41mLQ4ZSGVRJw2Co0vQi1HtAwRWCD8xe/v333/F4PtC7AnEFNTeeCA4k
PVQ2o04a31poD0xlqGZMs4DSbEsFxbTR0jvqfr/zd4Nm79ISkSDUCbhbiQAoMsCD6YxR6LTj
hwByOvi4AkVDCSOqgywqq13yoEprPFvmGfvzyTM68P7S6AujQ4h+WnATfDsHW0YGQk2Y2q1V
bPuOSRSfh2S3WkN2vKpKZrl7AYjNnuTed7VNtYwJahXrQSCnZtYRHUayW4FdHEqso7MIFacs
kNVhxgcPbx2cVcupGfu24/O5whjLmI4lSJ65xW254fl80h5Lhl7M8+sw0kh57/F4PEZdocx3
1hIa18O9ZQyzaXulfWc3kAK0AuIc0Woj01hcU3TK2ZvGXfCzsxE1o8BVQENrGG2MlTHfu0cp
XPOlMte6QxTKNqA3GaRDh/qWGWt7wcvLyxfC5fOZoGo8tYSOMcA7h+dzhfeMYzpzRL86ALTx
WRQwZ+Zcx6lCbmKLDziUBlgfkLbjVHAASKXCVA6snbPwMeIp6ubaT2WdNXQK2fdDSDMOuTY4
S3Cn9ErmeqNTBocUBjltMtDg5+hgw7CL7XGuFV4cdSD2uTpQao2Zoa1xMLtLc6fg8P1+l/V9
2g23XuEiwe7H9uQeqRVWBiTGBTy29SRQWI0d6swa7QXBTaLMPUbhf7+zbg8hMLalcwilwGlK
WQCHFwGuSRg6jh10IPEcyFkLZjP6MaicLqDJOUSPUhfHL2fvlfihNXoIJ5itgzRr/r/W/7p2
mBsr9ur2jOrS82QMQAVo06an1jpsO69ErtboXKFgyZVkpvnYGrvBc0qjpBLvzGXC7XbD+/v7
UL8SJDDD+aPq0HkhYFvbqU679jTagPEeFcK0KOdbJ+ARQsDz+RzP4jro1+Gdfp4QAj4/PwFo
bj2HR1f7foLbp7WoNo0KjvQuFq+d6n+9M1V9pz0Mz8IgCrLMnseJmq3x3tTfGfI5jnQMCz9n
3Hg35/Av4+3tbRCnrXOovWHbN/z48QPScRMcln1nJJJH1eE6nNuPg8QycazKrVIRbM78Ymj9
Lm5HOYvLhNFcbT6vj88dIURYqwx/Vfv5AVJu+8Y8wnQOBqYLcJMb63+LrwBfLWddq2e4lVoj
54RlWfhen6vU907svYsMXkniZQYsyYMpsyf33qEUCBkKgxx1Jct0kEQAeUY65I0+iOORg1Oy
aM6A4xpYlmV8Hx1QXP9eQTdVWu87Y1z03Wq/rqp4/V+qIgi0NcgwXOywc0kw1uJ+Z82aa4Hx
DsEyosYLkKj9thKJNKJF77RUCFQBIBBTG44Dw+J7XiIez22cQ7r+U0oojdmfRR3sgJG7aAXc
6KXCeH+CjlKXXJ0i0Og8QbFCl2HrRjWppe3sFdzTe3xyM4rUvUok7K0BXkAG00j6b/St8RCS
ihBtajsdnEKg01nrfaifFahSNTp6H/nFPgSo6yIsRQbLNKEk7qtt3xEi7YK94+Deh8DPdXEU
cJ4EC609GjpS5rkYY6S1t5yZGkmk7+Kq4oWhul8zl4+j4vF4DqIv+4Z2kiIuCnJdkwoAd6mF
uDdP5a/WqjpbWtcNHRqrYcfgLOf25W50cp7UWnlv2zNygTnFZZBo6BKQpW7IUmdz3qBgJZWo
BdGHL4QyvWdfX+9Y1x3r8znItnqHXh1iBqHjQppTwri6iBhzEnL0mWsNdxXYFDnLTyU8z83S
KqbL78mhKr+X3tmnU0aHMWf0jN7R/H2EYCOzBSqRD8R5guvnZ9B9ewWur72QKr+UeHYlGmrm
s/57/R73+23kz1trx/l1Bdfprnkq5Rlx0/Ht2/cvbgbXKArt2fRsIvmSdrS8ewgYlEInDuMc
5hgGQRMi8oEBwhTp6CbWtlcyJXCS63JOAM51xPogSC1gYMwJJN9u7IFqq5d1zshHZ884FL2r
tNetrWHdNkxy/+Z6xodc95Gu11orjCRuqOuPD1S/5cys8bfXV1lTJHWZxlmsfl+9y0akhThv
hSkMZxiSbvq4v9Kxj33urEV3HQ0W3fQxv81bRT4S4jwhWY/nc8X9fhv3lRFb+0Hu6h0Olncd
xMGukyCx7zv7dYnCyLWAejSLlA9M8ww/SSxTY8+pZwrvUWATh1UXLPbtkPktI0RIPbZwIOCk
PWADYxWP45DfOw9OWwcJRRXAc33i5eUGWAt1mlOr+F4bfvv+nXPjWmEco9LCRBv1boBt3djT
G96/vXesEqEWfMAyz3Cuo1UCv810gh6PB0pi5GBrFW9vr4AzSIkqec5SElLOjDDtlMmZDkwh
wH97w7buWOJCG2jT0Xqh5X+u8scNrKHaFMaTFLeteOKJ2zJzrpgyrPPDnWme6G4MYBCE0n5g
SxShfXx8wFqLl5c75nlCzgm1npFOwXpUcSkAHzeFEY6xiGgNNWfMy4LSKtZ1J6m+kITR0HHk
jFwZ2zOiIcFzMWX+vpwLMR5vmSTmorE3La2jpwLvOeNXIZLeQbr/1PVMlf+8152QQPqIkBif
ROs972StiZCsAb3RjcJ6YgY1Fzhx/j22NMC1IHOCUpQknDFNkZEemedR62rVHRgxcAGunLU0
rDS0w07HgXmaYdBRSsIyB1Fz90F+0DXGmArGE8bgCX42CmpySni73dBaxyNtcDHASN9bK9cS
Onda3tOYlcN0WOPw+vqK57ri+VzhJhL5TQf3bEkwUoO31rDME6YY8fh44PbygtpIBNhzwr6v
+D///d/pPmUMXO8I3cPHCR+fz0HATfsGEwM6WDc6R8EEwX1GM3YAxjEekzPpBucijOtIuSJG
LzGYDq0wVi1EzoZjnLgOLJBbo1Cleca/BQpxUuXM91CXM09B2LzMiL0D1iNYj8/PT2xPAqjL
FJF2jau24gTRBL+KiH7GH3/8gdaAvVIkBmOx50IzS+tgI2dIwUfE6LEdCcex4nWOoNOwzMKn
G/7fqs5lOW4kvcJfXgFUkZL6Eu0I2zELL/wIDvv9n8S9GM/0qCmRrCoAefXiJEDNUlIEVQQK
if9yznd8UF1wv604H2SCMmDczF4Lad01v0iFVEXMtRbyGZFh6Mc8tha+PzLrtuGt430tXA4B
vbPcthVoeANfnp8kfDCG0vX+jGEB+jBwiiRjugThk3fYOTIvM7/+5V9HLS/GwrrtxBiI3hO9
zEXWOqxRtOthzsIoprmVRquJkgr7trNvicf7nfS4U9LOvq2DOlp5ff3OP/74g+/fXri/vuqd
se2k2zt1VXxC77BvG491Zd8zS4D31NnMiHl7rPT8RmuiiBnKOYNTr2/xIZ7iJGcVwdybZR3G
iRAzf3595edffsKGwOX6hXVLlK6aZsuaS6555+3tG9erKIXvtzc+ffqEs3pfhRCoplCH0W1e
ZtVwzo/YTonkvY84rwiN4AM+qN43XeShx7oOs6UfsS4f9dtjfYi+Z7qudzuMPR+C8ZSO+Uwj
7ZluRu3vZHh33ksYsg/KX62Eeaa1TvBB8/PWifP0T1FSj20d11WCUz/6lFOkhvzTR+2ecz4J
dML7cxLyZcJq5/nvQ5B6xltHypteNtYwmcjk7UCIFlq3/PTTZ16/f2eeJ0Lw3O876ZGJXi7K
ZZrxxlFSYnl+xjrIbQXbCR5itNTSeb4u5NWzbW/8+uULa670Umh8ZEtO85GfsrGnhDdSqNWq
F751VihuLLUabPBUOltOdDr7tjFPUc4LIwe8dSrKOnoQYgikrAsRYqT1Tqo7U4h8+vRE2hO8
Vy4XLSu7gZYK8+VCHYPsAgRnhdvpnS0XamnD2V7Z1o0pRpblwtvb6+ko9TawPnZ9Md3IQGvw
x9cX8qZhW24dYwMvr8KDHOg85xyv3xPOdaZJLr9tSx9DtbF46l3oGvuDy7OWzuub1OetVmy8
8o/XPJDnjppWNJnXPWUsZ9/+fIy/GuWBsfTSSWkbFWYDH2hhwj5/AmOZrhd++fkXfvv1Z2Gm
QuC//ue/eXl54W9//yvNWMIy8/TlCz//+i/827//BWMs1kfwckPartypy3UmhpHb03X4avEh
jFXOaTyMam661dLMGEsF3kexbYGyj6xza2hrOZ2b3UDepRr0w+HejTBd25aGOaSDtaQi7PLz
8zOvbzcwsG4bn56eyQ0sjmW+8v72/tGs2A8lvdyelsssJNW0zNzuKzhPRzECzhielwVnLNbr
d2kd0p5peQyYu6FshfmykGrDtq6sHzeWGVZa0KP5vj5feNzu1OEKL+iljRHefJknTG9MwZ/D
2DIck857tpSkhPcB4xx/vt54enoixInHnsgNyrozxwkbxgLXaOHnvCeVnZI912Vm2yC1jImO
yS3cbw9KM2ypssxhCFgKpsnBb+LAVqIlQrRyt05xwqICMzjDPC/C6Tcd1n1EmEzzR1YcNLaB
oMu1kHJm3eXkmOf4gW11lrpnEQQapCKnRW+FYD1+HoPKLBTr/S51mrEaFBnrpHZ0yjNrufD5
6TP3+4Nc8omnXdPOdV5oWWQOFycu1muxTqMO1f40BArBRy4XuWFal2iFrsVhLmoMQtRQQY+F
cGbC4utlZGolWEsejXpOKtgtQG18fnoeDXRiGoukYxFpjAEjF0xw/hysHc1yrWkcFf1c0HsX
8CO76Mg2rKUSw8Tz8yfu99uJBXajoT2GY71kFd1joU5tysra75T8gVg1WC7LwIkOXLX3Wg6v
24azw/1rJHSYlgk3mvt934Wva8pLl1K2ExDi8RCUxaCXaNozR5+qQugYpC68vr4NIYKczx0t
9Y11XJ+fWNf7cOR3YgyUXPFjSOW8xwTlHWnIKQdFqx2cOvqSKwZL6fWMdgnucIvorHLWq/io
lZx2OVqGUjHnOhYQ416MhZe1XnlCRcv5ZVm43+/0DmGa+fPl71rY7Gowgo+0umu50wpb2riE
C3EMa0opLNNM74OW4NQgOmeJ3lJzIRedibVIHOG8Y56Din8s+/6ge890mc9lCa0Sx5Bx3Xem
acbHiZJ25Rt2RiHbdZ67SEmZOkX2lDTISA/C7Plp+sL9fsdbS7xe6V3Z784ZnDfEyZ/FlR9o
qo4jOCtxhdcZMAWdHfdboubMNF9G02gGTsuCPRDHfgxZCq0N1bA9HPMWZ3WGbNtGnAIuytVb
14qPgS2lE+trnWNePOltJ8wSRnVGPExD73C6hhADU1pKI21p1DIHwt/o+xFFcvn2+s51uTDF
SDfwSLvQ2d4AmRBmxfyUjjFtLGg1uH96etJAJUyUuhPmiZLlGArOY6xiXLakYW3JWeKQcb9M
78xxuNkHEsthRw6ncJr0jrcebyTgo1WmywJIxFGrrsI0vvNlkFY0aNMyAQ4NiX6ecxrGPR6K
a3FGDgwNNJUB2nojuCNTLNGaRIRaisvZ38YyPe2ZadbZ6TAc+bgty01ynRfsWPKveSP668hb
1LNTy0DKl05NjWyUS947Y5FuB76+8fp2I0avSA6roZjOJNGNSqt6RtZ9DEePBZgUzyGEE3Hm
Qzjz1Rxe9Kbhquyt0RhIdSt0Gx0OBOy+Z2pXT/H6/sCFeA5QMQ0fo9CQ7BzklFwKIQZy7ZRq
PpYLrRJ+WIwYY+iDmIB1NDQ8N86fCG2Qey+GkXNWOyZnjDN0Kq1XrPO00kWfAuZ5ovfGeltx
IeLjRK4rhzun14afPLXrM1k7cqlrHQN8fRbzgxp98kGIXx+Ik9y5rTesadzfh5PMGd4fq1zj
TouxHx36Byr+WGz86OK73W6nkCelxJ4yz85RUtVA0EhulXMhRodzWirEkRcqp2HADFFMrQWy
XI77EMAcS6cYFDdxiIQZQuJ0usE02NjSjjO6X1ghRT2GWjPeO2X+jZ/rYxBpxSlCoFtw4XDx
dXIWmn6eBno9J8wIB4zLrIWsOVC6qmXtuF+K6DoisvrAOqoO7c6xDedpGCLY1grWZ/zkiGaC
Bs54Ws+UJsHGlnZlxY6FkOMDheusJQ9ksPJA19PlbZ2IN55IpTPN6gFP6oL39FL4dP0kV6Tz
pFowDqw3YISgdFiid3IT+UDpHT/ucemj97Xqn/Ku+JHW0EAj53Mg3K3eCXGKHG722hul9YFd
Nx80DplnzkWTsO0frra0plOw8qMLl9FzHOQN4x1mROx0K4yhahQznHWGME0YtDA01uLCwK+P
Z6nsiWCdnGaD8taacNR1uA4vl8u5ZJX+vJ39V+zKUbVOaNneG2tN5LYQp4nHphgKPynmJ4SA
bYa9Jvz4DsYQFEdwOmKNSECDBHI68zgWafyTWMgi8UAZIk0J4RohOJ4+f+LbyzfVc2EQUJqh
jyHT4fI7zgNjLaU3vPGnyxzv2GvBekceVEM/6AFxnvj69SsxxPP/PkSLByWgg1yn7YgF/KBF
9N4orfDYRtxiVE/5WB98ev4EI6MzxqiooG2nW3uefZpfVEpSZFx0Xpmsg37gnCO3SpwX8mHy
CBp4b7mAC+xZTmbnJbqal+WfzqrDlf1jbKN6myRBbx7uq+EoPmJYWlNcYCrpFJUty8I+sONY
x54rpQ56Uc3jmankVnikDeNFBBFtUULQ1hhzCQk7jRFO1xiRHhjL+V4qwYmIhbF6d7QmIg+K
PmulnhFl7+939pxo1rCXkfOdKqYrBrMfojqjGjql4z03n9fJOT965EKwQvt6K6LUugk77oJE
AnEskHrvQyCpGVUMgUg4RQeHeO/HM+BHWovO9Xou6+FDbHAIRpY4KarM6bxuQ5BihyD1RxH0
jyLC0jo+qnaK84VSdH3P6I5SuN/uej/nTLcGV/VzU8p463hs6xlvdFyvY5F8uOg1mPXM82de
Xr5xu91OYSV8EDcOscH9fj8FCYcQQlFfcVzTirXD+dzbEE7YIfSbyTmN2tXy/PysnmmIDY4I
lh/JSoqzsVir6CLNnSQCPMgHgER/1oiOZjhz7nse2bPenkL2Q2ABGjRbY/BmiNtqY47T+Xtf
r1e2bWO7bTw9P9MHlXPyqi0nPxDb45ysVZShdWDRD0HnSSNxH7X1PM/nQra1YdLZMv0QRRl7
0pistTQ7yEsjdD6XSpwlnBOJLusdMfq6YwEcnKi1zUlQZ5zFG8OWk36PquVU9F79JJ1A0ALJ
mNN0pRq2YKzeExaDt15RQac4o+l3t5r7pW3Fh5mOIcRIPugdQ2Mt85LEsdt91T+Mz9KysstP
woQ1OAw5bfg4M4WJtAkRbyzn3Ph+30YcEcQw07vFeIsd71/nFPkUfNAS1WmxkYfxoFh7zjPu
q86BNSdmP1Oz/hy853q58v37d3ofwjADvWTCPJNLE2mtitynJUXlsT2opbHlhC0THVH9goE5
Bi3ZreJWp/nCvj0kjKwd2w1TWNQLlSEK2ZNMPb2SyiDojgjcnCrL9UJtuoe//fYb9/tKLTrH
nRWhMQ6jzn3bTnJytxIUNCT0sbXgoscsM9bJICSqhs5+Y0Sx3NPGtk3sm4wFSter47lvhMkM
86AhNn/OPPf3d1plRKeG0zQRYyRlLdmOJdL9fh9nvxlOas0TLpeFlJTxfSyrrZNhsxaJsLZU
yUamF83XLZKhdsquyKQ2etI+HMPLPA/Dj8xbYNn2FQz4Di1nBOCr2oe4gItetVYIGCuBpHea
GWPaoKPIFOBDIM4TOMe2J2oXfSgGz/JDfR3mibf32ynsBVjihd663OdN4tB8v7FMQXukXpgW
zc9z2bBTpDcwRr01Hv74+hUfInGayVU96jxFnA84l4mTxztLazL+bas+Y82dUkVSrbWS1kTe
C/uayKWS0s7luvDpsrBvitAGhw+RPat3pGumntLKT58/63t4U41da4E4oY6h082I3MsZbydy
3QnO8bevX/nP//gL77eVvRTujxXj7DDGOFovLHEheIlC39/fKbkyTZFlvpBHXFetlfuaeb/v
TJPFX4QlDzGypQTGEOaZ2RlsEHG3d5lE95TZcyUuC9s2Zp1ZJkY3Io+2XXuHNARzpYjaZV3g
sSZSVhRjGPFpEpdqLlFKJb8/xoxaJmFv1SutqbJuO9YpIqqbRipHLJIoHxIkNeZpASx7ytzv
71yvM5f5wusfLzTbcbaTWoNmaFism3D+QlwWbo+V9SEqac5VhsxceVtXOhJg/DkE02EYuDqW
qRroCWe0lA5BxJ00SDUSp7phWFKNeJmv+PmJ2Vp+caLyWtOhF5l6hznPe4c3EsNVDHuurOuu
nqpo93e73fn27Tuvf/5JLZmXlxfStopgk1bSpj1hLUlxvr2zbw9+//13/vF/f+f97Z38/iYD
8BmZMks41DvTvDBfn/jfP260v75wvcynIeyo28PbSior1sAt95Ma8PX7Ts+InmcT1+tlRJck
7g/Fe2m3o3tpjKIKH+vG2/eNeTZcn2btwNqIw94NT9eJWiCXxu2+8vz8pH3QZZJhkyxhxJ7x
Y/cBomjl2rHNARJMp33DWqc5bjc4F1FUdca6iLHtjNtqTfNa6yVsaa2Ps6MPWonIWgcN9Ufh
/VFnnq5/DoNikmCwNaz9IDPJ2KMz4f8BF0PMg5sUQaoAAAAASUVORK5CYII=

--------------4zUybrlZy0Fs0mOGaMsg50Ia--

--------------hCk0kKugjlmdNsdGGrRNGFWF--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 06:05:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 06:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656507.1024739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFTDm-00041T-Fk; Tue, 19 Dec 2023 06:04:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656507.1024739; Tue, 19 Dec 2023 06:04: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 1rFTDm-00041M-B0; Tue, 19 Dec 2023 06:04:50 +0000
Received: by outflank-mailman (input) for mailman id 656507;
 Tue, 19 Dec 2023 06:04: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 1rFTDl-00041C-Is; Tue, 19 Dec 2023 06:04: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 1rFTDl-0000lz-D3; Tue, 19 Dec 2023 06:04: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 1rFTDk-0004Vp-Up; Tue, 19 Dec 2023 06:04:49 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFTDk-0007ZL-UM; Tue, 19 Dec 2023 06:04: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=kC7vJ2jXvQRLIboD2ddHvZcAp5FipurMLi/BU4KlFCU=; b=6AG0TDyhOGU2ZGQAY3BpB7d6nj
	XVEi3eVzq8yZDcaM4LRfCwHqGZerCGBfLSOLBxCXw9jGA/TNxAKYavQqcTMkc7CoJjTb7hAaeEHeH
	AEcuFhsa2Nnt/jbW6x7GuZBP2lIfvIUwTrYqcbCSfhLMf0uJ7MNt+XFkCv8QyvkSanlg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184170-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184170: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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: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-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-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-arm64-arm64-xl-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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-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-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-amd64-amd64-libvirt-raw: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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=2cf4f94d8e8646803f8fb0facf134b0cd7fb691a
X-Osstest-Versions-That:
    linux=ceb6a6f023fd3e8b07761ed900352ef574010bcb
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 19 Dec 2023 06:04:48 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt   16 saverestore-support-check fail blocked in 184162
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184162
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184162
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184162
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184162
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184162
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184162
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184162
 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-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-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-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-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-arndale  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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                2cf4f94d8e8646803f8fb0facf134b0cd7fb691a
baseline version:
 linux                ceb6a6f023fd3e8b07761ed900352ef574010bcb

Last test of basis   184162  2023-12-18 02:29:46 Z    1 days
Testing same since   184170  2023-12-18 19:42:38 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Benjamin Bigler <benjamin@bigler.one>
  Linus Torvalds <torvalds@linux-foundation.org>
  Louis Chauvet <louis.chauvet@bootlin.com>
  Manish Pandey <quic_mapa@quicinc.com>
  Mark Brown <broonie@kernel.org>
  Martin K. Petersen <martin.petersen@oracle.com>
  Miquel Raynal <miquel.raynal@bootlin.com>
  Nam Cao <namcao@linutronix.de>
  Nitin Rawat <quic_nitirawa@quicinc.com>
  Ronald Wahl <ronald.wahl@raritan.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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   ceb6a6f023fd..2cf4f94d8e86  2cf4f94d8e8646803f8fb0facf134b0cd7fb691a -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:54:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656515.1024769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUvm-0000M8-0R; Tue, 19 Dec 2023 07:54:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656515.1024769; Tue, 19 Dec 2023 07: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 1rFUvl-0000Lz-TY; Tue, 19 Dec 2023 07:54:21 +0000
Received: by outflank-mailman (input) for mailman id 656515;
 Tue, 19 Dec 2023 07:54: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=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUvk-0008Dp-Ln
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:54:20 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2009::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d072f3d2-9e43-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 08:54:20 +0100 (CET)
Received: from MW4PR04CA0336.namprd04.prod.outlook.com (2603:10b6:303:8a::11)
 by DM4PR12MB5246.namprd12.prod.outlook.com (2603:10b6:5:399::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:54:16 +0000
Received: from CO1PEPF000044FC.namprd21.prod.outlook.com
 (2603:10b6:303:8a:cafe::cc) by MW4PR04CA0336.outlook.office365.com
 (2603:10b6:303:8a::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:54:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FC.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.7 via Frontend Transport; Tue, 19 Dec 2023 07:54:16 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:54:08 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d072f3d2-9e43-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UGyQ9QcxwY3n6K6IakXpeu/21Qd6UvDxX/XAV7DlEn04T5HpycRMmtha8TOtj8qZYMacUB8OWQhj5tiHg3VIec/fsGbCulTcldVxfvhcL5mwN6H9WLix7+rQiDp9cFX+svvl3NDZX4tRXXqybG2gDLnOD2aitJ+axaGRvDn69ULZ/vpLdQw7jfViT0CjP0eiMhfPTDUjsu/pjHGaSTGSQeTrloPzXRwBvz6vXgmtBYhSSFwAIqyX3nCK1iAFIjFXRU822n0wzR9bz6T3Q4kHFyaxA8YVt2BLXJeqwrd7MESzhoPbqbE5jSGOGBIlgM4r489qEkU1kpXiIETSmlVkhw==
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=IXNMgYaYEEec9PYZqBz9D0HOmK6yHA694MJAAoZ2Ylc=;
 b=V02d+HLMsjM+vnBkQx3fKPZY3ELoqlHc8+VA1loIOC3xIFkrT8PXN5IChNNuCvQbJL91hpZcZDTL1nZG+vc0rdM5ssKvMcjmF8MApdN/aowjrqaVWYcBYahq2rgzE1BZoun+aBHZY2asbAXPlCfKQk4o+R8QjkZhFBlu/bhvsiNtFHUZS3zKLX635rnZ2171ishaLM5nQ1EAyKmUXuiN6wjad+fQp7nYzC7We7BoHtk0eBLPGpDTH1nbqlVtruCO+GujxiIBlA75KW3E32FhIZMWSrZOKjOETxKc1bWIf8hiw8SLW+IDhg/tSV/xSA0G53FXcz9HHYskRXJkk4jMRQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=IXNMgYaYEEec9PYZqBz9D0HOmK6yHA694MJAAoZ2Ylc=;
 b=hAUEG551Vm2MmavyONaJ7qpWk4rlocXpb8n3mQjBsvie+h8+/SKs9OqUKdTdK3Z0t8ICCqQzaU0RX+cXXChHUq7hcTFn8JVECkiiSK+FUjcRH+BQF6L5FFK4MLSht6p8eKuSP26enqCoZBEbo4AiqsLKvqikfG8WPKxfvCjXJ7I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>, Antonio
 Caggiano <antonio.caggiano@collabora.com>
Subject: [PATCH v6 02/11] virtio-gpu: Configure new feature flag context_create_with_flags for virglrenderer
Date: Tue, 19 Dec 2023 15:53:11 +0800
Message-ID: <20231219075320.165227-3-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044FC:EE_|DM4PR12MB5246:EE_
X-MS-Office365-Filtering-Correlation-Id: 4bd061f2-5763-46b9-9e98-08dc0067b2da
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	hEi40K5Yj/cvEb/bX2mxWH5rzyndN5KtrQlgR+KcM7ih2hhb0a3c5rIPkUWGT3S7Lod6I0ERn+f/WjXDDfq3VWU9HHPD2lPx3RzC8ACM1pLR+JVjNl3wxV8oRS2DQNLraKZpniznBHhw+/D9nQ47q90DEADVWs5RUu0vHtIBMfsx7gtNChnoP0DyOr3M2UkqjZ5td6nneqdXwZU7LCYeh+1HMekUdQO9LAS/2a47rMfQWKD/TADofAgXwfEVoQwtvTFOYk1lqkiNN+6Qbe1ezlFgyrEph4nWyaJfUPoZJ4T4G6xNMZMLqRjpiJ3hPROHZKNlb8W0gSOKKBg2Pd+SRAIg8WaCOkNtCHVPuGiq8ajMApHP/5t/mGhBGPKpV68GjOoj5y4uWHzu9B88uQ8aY0jFIZOaQcd38/KPrqKiDzELpbM0kZCbfuRUuEfol8JR29Ei5Ynf/fuuFf71f0DC3n3aOB86dN8Q1Uh7QeQosVDOfb3lC8vtjnTjdPoSPniM4ce9VvV5kEytT7p23egfEIICxklf2jvfyCxDqegNdOxqBfdvwKbQEOZ+CT+gkSRMG9AdpQJRJDUn+ORiF3TftFocMIdSJUB6I+egQp1+Kb4NYf2M9/WhAMMuqotAeAPxaE8vdgQRXbOcLs3ky+3QgKxy9Zq6K4HC62ELOybwXwP1pSHcfZAg6CopGjqj+1Qj5TeniPc4ewMa83foJ/1r0hU8ILwMH3JU/3+f9EmZ2OXARdwMUgNN0/Cfbmm9XshRSvYvJuamsJB5QJ/iULegMeFmBdmM0MGTn48pdbzJ3Zo=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(346002)(396003)(376002)(136003)(230922051799003)(82310400011)(64100799003)(186009)(451199024)(1800799012)(36840700001)(46966006)(40470700004)(40480700001)(86362001)(81166007)(356005)(36756003)(82740400003)(40460700003)(7696005)(6666004)(478600001)(41300700001)(70586007)(54906003)(70206006)(921008)(16526019)(336012)(26005)(1076003)(2616005)(47076005)(426003)(4744005)(2906002)(7416002)(110136005)(36860700001)(5660300002)(316002)(8936002)(8676002)(4326008)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:54:16.0664
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4bd061f2-5763-46b9-9e98-08dc0067b2da
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FC.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5246

Configure a new feature flag (context_create_with_flags) for
virglrenderer.

Originally-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
---

Changes in v6:
- Move macros configurations under virgl.found() and rename
  HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS.

 meson.build | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/meson.build b/meson.build
index ec01f8b138..ea52ef1b9c 100644
--- a/meson.build
+++ b/meson.build
@@ -1050,6 +1050,10 @@ if not get_option('virglrenderer').auto() or have_system or have_vhost_user_gpu
                          cc.has_member('struct virgl_renderer_resource_info_ext', 'd3d_tex2d',
                                        prefix: '#include <virglrenderer.h>',
                                        dependencies: virgl))
+    config_host_data.set('HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS',
+                         cc.has_function('virgl_renderer_context_create_with_flags',
+                                         prefix: '#include <virglrenderer.h>',
+                                         dependencies: virgl))
   endif
 endif
 rutabaga = not_found
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:54:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656514.1024759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUvf-0008Ti-OB; Tue, 19 Dec 2023 07:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656514.1024759; Tue, 19 Dec 2023 07:54:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUvf-0008Tb-LP; Tue, 19 Dec 2023 07:54:15 +0000
Received: by outflank-mailman (input) for mailman id 656514;
 Tue, 19 Dec 2023 07:54:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUvd-0008Dp-Of
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:54:13 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20611.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cc22c014-9e43-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 08:54:13 +0100 (CET)
Received: from MW3PR06CA0030.namprd06.prod.outlook.com (2603:10b6:303:2a::35)
 by DM6PR12MB4124.namprd12.prod.outlook.com (2603:10b6:5:221::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:54:09 +0000
Received: from CO1PEPF000044FB.namprd21.prod.outlook.com
 (2603:10b6:303:2a:cafe::19) by MW3PR06CA0030.outlook.office365.com
 (2603:10b6:303:2a::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:54:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FB.mail.protection.outlook.com (10.167.241.201) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.8 via Frontend Transport; Tue, 19 Dec 2023 07:54:08 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:54:01 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc22c014-9e43-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hrtz9fQhePsxYWraFD3LLEotbMqfkg2dX/pzH4mMK8OdE4gQ2+SECpEfbwK/Pz/pHnv5QgIFJCPG9Nh0L3onYmA5ru27Pu0GXMBXOfyqPHbFEcNiDKZ2z66EtNPfSKH/HU/hO8toNhJviHs94BgqLy+4tyHitpBRjko8rS1SJelDloQ+7GIr7zhcsuGHFP/UxPJkGOLzzjZ6EspkgM+s8XRsbPUaom9+F7RR6lZPmrpZPP+zKbllXBbaQhAL1JR1bwfewPHVzXdqIPzIyNlK7585CpGuypZovyBHn17Fd6Z+Dry9ZR6EzSNY1AUntqsXRVRPp1BvQatf4vBlkz+iHQ==
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=o80xoaBmG8h2A9FAJS+hScUpb9r7tnLzxTs/uXia+bM=;
 b=QdTYMSvAl3S2d7qpecga+eqTHZN+OWTL01t6cpJH5m39ZMJwMgcZheyXHXMM/QJNDznc5E0tb67wJzmhQPj8C0yyYmEGUKN48CuxkpjW62nGyo9k8jIr33ulmPod0S9p9UpR5J/SAkoAxeF9ImFGLwo/aJ9ukwQpbYY/Fw4HElpWFwpd/4iW9qaJtpyDo68mzNth1hXnAa/auf1rUqk8HGZ9BnO7jC6gnhwTouWbT28aegIyIPhrT2P+cfDOWLGsmr9dWDY3TzeNa8EQjSohhtC0/hgvIaedeaT0ZmzvFxYN1YeoFV5hcCRJxsZ62qwlbcMcRGrU3yPILcrv7fC8sA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=o80xoaBmG8h2A9FAJS+hScUpb9r7tnLzxTs/uXia+bM=;
 b=nur+1iy5MOOdFGQs8aEbhlTUfyz3/plUmfgqQ6QUqqGIOqnjuZyd9xczLAdM1hnKKoIZ2O/HZBYrKcIeToyR54+UUELi6ts3rLB1RoNERpQfxxJhWWSK0IyTFwOfgQGt5pA5HMxmQDGeFuVUPCL9JWCAkqP5FP1pvyaslS9WT2U=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 01/11] linux-headers: Update to kernel headers to add venus capset
Date: Tue, 19 Dec 2023 15:53:10 +0800
Message-ID: <20231219075320.165227-2-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044FB:EE_|DM6PR12MB4124:EE_
X-MS-Office365-Filtering-Correlation-Id: c04be24b-ffbd-412e-7046-08dc0067ae63
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	lPAv71mITwNdRFsgYvx1taLgdviAJdQxigc2aP/N/dB/Vq+19jLqfe5pJqNJA+4LWcNsHEpHs96xowkUi6hbxgITUwsBf+uxMbr0W4XNHXdbb7iB0OgD2zdj/C9Fxlx2frdkCS1rUDWhCkYII2RmFJCPW+Y+CSPwAF5kcVIoCfPWPg1Uw67/2sTu4EyGmVcMGKXviUS4APov20dKENmfBIidgaz7FXee2LV5NKa48PoEKk6k79EwWWjt5ubcjfnt9ZmBUT6CmCM4hQmZwWt7PAQIjbXYtTvF0nMaZK3/a2JZf7H3Vi7y2x7btbacS3nA5R3h2auvlqNJfShBXMeP3+UqczJJ2cNK9Mx2l/Kj9FttOFy0WH8JgI2igLkvUFXskoDdtKp5tuCIwMqJqAv4+QCUu+4wvOrzcxOdFUQdg25j35/UAwwa3STFanReMSJkCV11vaT3RSXCcOZoYLSbeAMu2PoyqQAdPfPlruoOEsGvU+Gs/HJfoVP5K+q7NNSAupkh7/Ph6OWqc+aRKRNdQv7wYNHRTqqUMevZyRP9Rj/3kRv1HLu+hd33fIi3WvZ6RpHniGHzAPj3TTMN1OhqXl5xonc4/nU2sAI8e/lInSFxlhv/poir1PU5GBbc8fOnH9ArtRtRhpqYEthZiFw1bN8sc1w3XWjgdGrggdopNN8AJCjjQVL0uZVJVJEBjmAcDFVpSjiwjE8sOBkQcOGnR6tpuA/b6uqBRZRj1veDmdqgdg5Mc4gs7idGHZX+FzroGyW6Qvm6Df1D3/Z8DR45ww==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(376002)(39860400002)(346002)(230922051799003)(451199024)(1800799012)(64100799003)(82310400011)(186009)(46966006)(36840700001)(40470700004)(26005)(336012)(83380400001)(426003)(7696005)(47076005)(2616005)(36860700001)(1076003)(478600001)(4744005)(5660300002)(4326008)(16526019)(41300700001)(15650500001)(7416002)(6666004)(2906002)(8676002)(110136005)(966005)(316002)(40460700003)(8936002)(54906003)(70586007)(70206006)(86362001)(36756003)(81166007)(356005)(82740400003)(40480700001)(921008)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:54:08.5432
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c04be24b-ffbd-412e-7046-08dc0067ae63
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FB.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4124

Sync up kernel headers to update venus macro till they are merged into
mainline.

Signed-off-by: Huang Rui <ray.huang@amd.com>
---

Changes in v6:
- Venus capset is applied in kernel, so update it in qemu for future use.

https://lore.kernel.org/lkml/b79dcf75-c9e8-490e-644f-3b97d95f7397@collabora.com/
https://cgit.freedesktop.org/drm-misc/commit/?id=216d86b9a430f3280e5b631c51e6fd1a7774cfa0

 include/standard-headers/linux/virtio_gpu.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/standard-headers/linux/virtio_gpu.h b/include/standard-headers/linux/virtio_gpu.h
index 2da48d3d4c..2db643ed8f 100644
--- a/include/standard-headers/linux/virtio_gpu.h
+++ b/include/standard-headers/linux/virtio_gpu.h
@@ -309,6 +309,8 @@ struct virtio_gpu_cmd_submit {
 
 #define VIRTIO_GPU_CAPSET_VIRGL 1
 #define VIRTIO_GPU_CAPSET_VIRGL2 2
+/* 3 is reserved for gfxstream */
+#define VIRTIO_GPU_CAPSET_VENUS 4
 
 /* VIRTIO_GPU_CMD_GET_CAPSET_INFO */
 struct virtio_gpu_get_capset_info {
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:54:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656513.1024749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUvb-0008E2-CG; Tue, 19 Dec 2023 07:54:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656513.1024749; Tue, 19 Dec 2023 07: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 1rFUvb-0008Dv-8g; Tue, 19 Dec 2023 07:54:11 +0000
Received: by outflank-mailman (input) for mailman id 656513;
 Tue, 19 Dec 2023 07:54:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUva-0008Dp-Co
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:54:10 +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 c8f92fd2-9e43-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 08:54:07 +0100 (CET)
Received: from MW3PR06CA0016.namprd06.prod.outlook.com (2603:10b6:303:2a::21)
 by SJ0PR12MB8165.namprd12.prod.outlook.com (2603:10b6:a03:4e4::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Tue, 19 Dec
 2023 07:54:03 +0000
Received: from CO1PEPF000044FB.namprd21.prod.outlook.com
 (2603:10b6:303:2a:cafe::66) by MW3PR06CA0016.outlook.office365.com
 (2603:10b6:303:2a::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:54:03 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FB.mail.protection.outlook.com (10.167.241.201) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.8 via Frontend Transport; Tue, 19 Dec 2023 07:54:03 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:53:41 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8f92fd2-9e43-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=m4jjzSp5CORZxOiLFa7sgcHfUSZ00JRpONjH1wadXk1rvsAb6MWHPAIOAqeB8TBXzoYElRkDzaeORhs9Fx7/XanQcP56h426YlK0fp8iFACHbxh810sCaMBhAC0oPbEU3qWTJGNHM9YK4Uk+oYooKDEQn8C10EKVoXhxoDDI00RoL9Jm3MPK3v7azCU+mlzSZm6HE+Py/+DPopk/eMc0D8elbrhUDuUpbovTNtzHS6YyOVU3EpPcGZr/LP4LCjU93yWPJtPutMIT0Nsccemkquj7t1S25Rva0/ydSMgv6ndI2j8UXWibxUVs+PK0hlZkzmFJ/1Knu/TxvZVk4ES1ig==
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=ZEpDTPDC3Kfcz8yPuGr2A70VZPsz3Bi/fF3kLhNqez4=;
 b=CZoYqZxtADrWs/Vw3l8LPo07M5OmxIlRLmKCD3pn4hsnj3M5f3vbCBmi2Jz7PfDNuYJor4RI1AVIZF5cFSWyZqKY3dn7VcBegW1zyK3031SJt2464r8ZPiGz4tEBcHtB7CSFj9nTgTLVqsmWqFgiWbb05FQcMEnML3Gf4FY9wFYOV2ihlBzrLZbYsz+8jS4TEdQ6xUhRm+1QOWyVJpmwcU8t7poM7GhAmsPtX0hX5DARfatJ/a9XFUMZiwi1eszEOT4sTRDRR0RJJdWD426TcOvoARTWTWOkKnuj1moEtt09Oq6P7qxZfBoFy6wFppmnb6YFtByh3FW1ASR//m7WKQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=ZEpDTPDC3Kfcz8yPuGr2A70VZPsz3Bi/fF3kLhNqez4=;
 b=eO3aka846iI8bYCGSmvBBWS8vWJaColZ5xgN352HWxtRJTMXasKSudbTAeyZKsSel+Cx8SUmrJ6sjuLmIsc1OGSlETRHgxFuhJfuMzMYQPJl4Zwu4tlwO65328Du6sVgILSxHlI7phv67wWeS+TdiHNosZ1xC1rAs6UHfGShvFc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 00/11] Support blob memory and venus on qemu
Date: Tue, 19 Dec 2023 15:53:09 +0800
Message-ID: <20231219075320.165227-1-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.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: CO1PEPF000044FB:EE_|SJ0PR12MB8165:EE_
X-MS-Office365-Filtering-Correlation-Id: b58abd96-5405-4ae2-2027-08dc0067ab28
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Twi+h+gqFA9D1QnLqZxF9JvJ1kGp5fzvryg/sTF1XZlkQ1DUggu3WnkkrEIiL+YnKABEC/aI4nYfk/pUYcswGmO4P4b9T8ST/fPPWHcXb4c2mvvNrE6Yb/B/+1s8uXp95XMi2fH7K7Lmk56A9FKB1GfVUd9imSPZe6vxLlAzQp/5IVc+I1ylQ28anKALEcGsDfHPB7KVgInFUFxqhj5++oSz9byn5eYR7exYn+2+Kv2XC9No+WtVflEjxk8zPXABMOcVT24BIe+M6MW4b4VYEo9wfWbXi2vHNxgX3l7XFrePG+Zd/dH0/hIWOoGg3E8gTldQNQ8KmSQYASg0ZvpcZUQN+66lIbm3QahJJ5gFvOGnd/XCDqXX5EHFUVBzUFf6/219eEZaNlTsBiKcDAYyS4u0N9Fzxx+XXM6TE7wKahyHKwzQmfrFzxQ/gIPct0Hfoz3YZ7GqYd+EmlZqvT9aY6347d3+TNLe96RMl1mw+V272PDG5hRlxp1wKuFi/p2pOSIXn+Pb14H0KR29VMZSbQN12PXRna7G4P8fF/Zc4nfP89WelzZVTzJ6vwKXq0A+pMVDMRTI8eEiLy1/q26eRd9CnfYWDgme1YZIkOlZvFZXps1ubZPNpRWs1OvrkgzfL34NluUFlZY86rapy16uO5L5mR2I1XkGqEY3PXOpvJnOzy5SJcISRNSWXgzFsu58TXuQZCTEfCl7W2+M67nVuGJa9QbprHTcm8wbIGrnKi8AMbeNjUPnqpOC6biZTRncYHo2gx3N/n1tg8aFi09UgLxZhHfBp40qqQICrWmrs/i1d+i8+cgVzq+RgsJ1Zebb
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(346002)(136003)(39860400002)(396003)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(82310400011)(46966006)(36840700001)(40470700004)(40480700001)(966005)(70206006)(478600001)(2616005)(1076003)(54906003)(426003)(336012)(6666004)(83380400001)(316002)(70586007)(110136005)(5660300002)(8676002)(7696005)(47076005)(8936002)(4326008)(26005)(36860700001)(16526019)(40460700003)(81166007)(66899024)(2906002)(356005)(7416002)(82740400003)(921008)(86362001)(41300700001)(36756003)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:54:03.1370
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b58abd96-5405-4ae2-2027-08dc0067ab28
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FB.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB8165

Hi all,

Sorry to late for V6, I was occupied by other stuff last two months, and
right now resume the submission.

Antonio Caggiano made the venus with QEMU on KVM platform last
September[1]. This series are inherited from his original work to support
the features of context init, hostmem, resource uuid, and blob resources
for venus.
At March of this year, we sent out the V1 version[2] for the review. But
those series are included both xen and virtio gpu. Right now, we would like
to divide into two parts, one is to continue the Antonio's work to upstream
virtio-gpu support for blob memory and venus, and another is to upstream
xen specific patches. This series is focusing on virtio-gpu, so we are
marking as V4 version here to continue Antonio's patches[1]. And we will
send xen specific patches separately, because they are hypervisor specific.
Besides of QEMU, these supports also included virglrenderer[3][4] and
mesa[5][6] as well. Right now, virglrenderer and mesa parts are all
accepted by upstream. In this qemu version, we try to address the concerns
around not proper cleanup during blob resource unmap and unref. Appreciate
it if you have any commments.

[1] https://lore.kernel.org/qemu-devel/20220926142422.22325-1-antonio.caggiano@collabora.com/
[2] V1: https://lore.kernel.org/qemu-devel/20230312092244.451465-1-ray.huang@amd.com
[3] https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1068
[4] https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1180
[5] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22108
[6] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23680

Please note the first 4 patches 1 -> 4 are inlcuded in these series because
the series depends on them and not because we want them to be reviewed
since they are already in the process of review through the "rutabaga_gfx +
gfxstream" series.
- https://lore.kernel.org/qemu-devel/20230829003629.410-1-gurchetansingh@chromium.org/

V4: https://lore.kernel.org/qemu-devel/20230831093252.2461282-1-ray.huang@amd.com
V5: https://lore.kernel.org/qemu-devel/20230915111130.24064-1-ray.huang@amd.com

Changes from V5 to V6

- Move macros configurations under virgl.found() and rename
  HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS.

- Handle the case while context_init is disabled.

- Enable context_init by default.

- Move virtio_gpu_virgl_resource_unmap() into
  virgl_cmd_resource_unmap_blob().

- Introduce new struct virgl_gpu_resource to store virgl specific members.

- Remove erro handling of g_new0, because glib will abort() on OOM.

- Set resource uuid as option.

- Implement optional subsection of vmstate_virtio_gpu_resource_uuid_state
  for virtio live migration.

- Use g_int_hash/g_int_equal instead of the default

- Add scanout_blob function for virtio-gpu-virgl

- Resolve the memory leak on virtio-gpu-virgl

- Remove the unstable API flags check because virglrenderer is already 1.0

- Squash the render server flag support into "Initialize Venus"

Changes from V4 (virtio gpu V4) to V5

- Inverted patch 5 and 6 because we should configure
  HAVE_VIRGL_CONTEXT_INIT firstly.

- Validate owner of memory region to avoid slowing down DMA.

- Use memory_region_init_ram_ptr() instead of
  memory_region_init_ram_device_ptr().

- Adjust sequence to allocate gpu resource before virglrender resource
  creation

- Add virtio migration handling for uuid.

- Send kernel patch to define VIRTIO_GPU_CAPSET_VENUS.
  https://lore.kernel.org/lkml/20230915105918.3763061-1-ray.huang@amd.com/

- Add meson check to make sure unstable APIs defined from 0.9.0.

Changes from V1 to V2 (virtio gpu V4)

- Remove unused #include "hw/virtio/virtio-iommu.h"

- Add a local function, called virgl_resource_destroy(), that is used
  to release a vgpu resource on error paths and in resource_unref.

- Remove virtio_gpu_virgl_resource_unmap from
  virtio_gpu_cleanup_mapping(),
  since this function won't be called on blob resources and also because
  blob resources are unmapped via virgl_cmd_resource_unmap_blob().

- In virgl_cmd_resource_create_blob(), do proper cleanup in error paths
  and move QTAILQ_INSERT_HEAD(&g->reslist, res, next) after the resource
  has been fully initialized.

- Memory region has a different life-cycle from virtio gpu resources
  i.e. cannot be released synchronously along with the vgpu resource.
  So, here the field "region" was changed to a pointer and is allocated
  dynamically when the blob is mapped.
  Also, since the pointer can be used to indicate whether the blob
  is mapped, the explicite field "mapped" was removed.

- In virgl_cmd_resource_map_blob(), add check on the value of
  res->region, to prevent beeing called twice on the same resource.

- Add a patch to enable automatic deallocation of memory regions to resolve
  use-after-free memory corruption with a reference.

References

Demo with Venus:
- https://static.sched.com/hosted_files/xen2023/3f/xen_summit_2023_virtgpu_demo.mp4
QEMU repository:
- https://gitlab.freedesktop.org/rui/qemu-xen/-/commits/upstream-for-virtio-gpu

Thanks,
Ray

Antonio Caggiano (4):
  virtio-gpu: Handle resource blob commands
  virtio-gpu: Resource UUID
  virtio-gpu: Support Venus capset
  virtio-gpu: Initialize Venus

Dmitry Osipenko (1):
  virtio-gpu: Don't require udmabuf when blobs and virgl are enabled

Huang Rui (4):
  linux-headers: Update to kernel headers to add venus capset
  virtio-gpu: Configure new feature flag context_create_with_flags for
    virglrenderer
  virtio-gpu: Support context init feature with virglrenderer
  virtio-gpu: Introduce virgl_gpu_resource structure

Robert Beckett (1):
  virtio-gpu: make blob scanout use dmabuf fd

Xenia Ragiadakou (1):
  softmmu/memory: enable automatic deallocation of memory regions

 hw/display/trace-events                     |   1 +
 hw/display/virtio-gpu-base.c                |   4 +
 hw/display/virtio-gpu-virgl.c               | 495 ++++++++++++++++++--
 hw/display/virtio-gpu.c                     | 132 +++++-
 include/hw/virtio/virtio-gpu.h              |  13 +
 include/standard-headers/linux/virtio_gpu.h |   2 +
 meson.build                                 |   8 +
 system/memory.c                             |   2 +
 8 files changed, 627 insertions(+), 30 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:54:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:54:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656519.1024779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUw4-00010O-AA; Tue, 19 Dec 2023 07:54:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656519.1024779; Tue, 19 Dec 2023 07: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 1rFUw4-00010C-6b; Tue, 19 Dec 2023 07:54:40 +0000
Received: by outflank-mailman (input) for mailman id 656519;
 Tue, 19 Dec 2023 07:54: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=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUw2-0000yA-Sp
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:54:38 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060d.outbound.protection.outlook.com
 [2a01:111:f400:fe5b::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id da0600ba-9e43-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 08:54:36 +0100 (CET)
Received: from MW3PR06CA0017.namprd06.prod.outlook.com (2603:10b6:303:2a::22)
 by CH3PR12MB7716.namprd12.prod.outlook.com (2603:10b6:610:145::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:54:32 +0000
Received: from CO1PEPF000044FB.namprd21.prod.outlook.com
 (2603:10b6:303:2a:cafe::55) by MW3PR06CA0017.outlook.office365.com
 (2603:10b6:303:2a::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:54:32 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FB.mail.protection.outlook.com (10.167.241.201) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.8 via Frontend Transport; Tue, 19 Dec 2023 07:54:32 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:54:15 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da0600ba-9e43-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=k8o7/GpuVDxi0X+dQ9kLesyUpRE5JoLTG9AYgCeeY49Yhu1WmvyNGjIJONPCAldGG57B3d5dZrH1hoaOfStwCBx+DQGac45NJVBVml+XeEz4JhK1xjvcxgyH39A00pzWq6CsKxkZn9qmGBsSB3RFSXWsPAgO/v9esk3PFC3YeWb1OMqD41pkJnwJZbV7uBBhwWngP7hiYFBvxT01NXYpslCcJ0fOO9hfpRVYd6Id9RG2l6ryJG4aHKne/c7Ldo2FNK/5ibSpRhSOGALUv6J5Pv5Ftf900X8vDdi7b41zZMX/DgJSLCwWt8HlX8uP3RZPENsE1ZhJ44zW+8lnH08+VA==
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=mKmMnMCdCaydrQlgeL0qolLO6nUxwbJNYBpgWhWfXsU=;
 b=MWGkXHInlpavH+xN4sP4QlXnU7GxLnN+OeVLNZKmBP7Ul6PoiXJSOtFdMdBaYopfdg0BfvKxo1TE577nwsC3+8mIUXuoi8CuaHxxjT1NIqWmUQQhnsCAHkxzukw7xh9DIN59Y0HulReraGmLLTKHmF47XP9wpkJFzh5YWcvlIhLKUGqUHf2lzTMZAI8lG6khJsXoAVWalSywrsGOgC/vJo0YbSAAe0eUi5GIsceqLAmrPjgcZcw1/DhxND9V6m52nB3FCTF5X5eIs0vkb9NAxH/WvDJhfvqMLS18Afi5y3hR6HUXAujZN3YxrSs6zR1Enc4yIReSgDSoXoXD9VSMXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=mKmMnMCdCaydrQlgeL0qolLO6nUxwbJNYBpgWhWfXsU=;
 b=4u0JsdR2HdG+p2NSusJjlhnAjVC1uk6Ytl45tMeFxyKGaTId/V1oixOEkjai18dDk2T9DGjLNqnDwJjOQQZx2w6JF8XTTEQnz9PWSLzQv+d1MAiuZ03QLL5XTG+HuRqiCGSI72/Vf/j1MaJRPT96dof5lWgzjkSclTKAbGQx3MM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>, Antonio
 Caggiano <antonio.caggiano@collabora.com>
Subject: [PATCH v6 03/11] virtio-gpu: Support context init feature with virglrenderer
Date: Tue, 19 Dec 2023 15:53:12 +0800
Message-ID: <20231219075320.165227-4-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044FB:EE_|CH3PR12MB7716:EE_
X-MS-Office365-Filtering-Correlation-Id: 1bc82c44-91f7-4633-1956-08dc0067bc7d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/cm2gXc1/JNXdY36bfebsljXl4vJij1lTwjsnsIvZV8LKN0BMKNpfbG+fB65x0qK4PsV114l5DID2nEbVeTh9xMB9EUeKYxFtxFuTi/qk0pfCnVnr5IlsqAR/oE/58yDIezonCGqLuC7y9cGy24/LlPyCthh6oNBMZNUyKOD6csHJr6ih+ga7oVKiIGuYA4pNfaLeu+mbU/I9IFiA2vI0CqeJfm33URdNEK8+/LVOWTHoZ7NKYdPIpdRbx9tjhVZKbVIT3l7cYLzDXkLg409Vgy8Xh+WLOXJD4KlgsOwlp0kuJ6ItyPSY/OcB+u9BzWkxmusiHWagAYa+xuNSgZ/mbpRtwUA/fWQuwIyTfnz/toGUv29fgvbQZREg0WqG4A1kgwYxKFfEZeVu9ll0KiGgJC8f6pJiztVvbscyZRNNYPZlCBCM9HmaB9fdGHpn5AIIL+ZH4EboQtXRtYZ6az0vLq7ceU7YZB2oXItJFuiobx9jkAqYUrq4mhnhRUy6bUO+U+9uwF9bZshe2cW/89DQFyKqeQkTTran6zX0ZRvMQw/o/xomJPhlSRqnminqo7rRWGHgUUWTFeofLaWcQbMdLt9oGoN7BBtrSLM/c71PK/mthNo7QP2yf2Ri48IgQ5SgxXemYYMhNhHB7fLZelegDWoDol7lNCHcyolK/fTfhmF1QRcsxiOfPvtl7S9R/kxol5++vgX4/ynBNFTE+Sn0quuc71IqjaBhz63hKvlfyg1XXRX9FeXpm2qHgS43ooCcsKXVaeEMq1ZgRUk70NoctUdFKn7XbfRINUhAVDSliM=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(346002)(396003)(376002)(136003)(230922051799003)(82310400011)(64100799003)(186009)(451199024)(1800799012)(36840700001)(46966006)(40470700004)(40480700001)(86362001)(81166007)(356005)(36756003)(82740400003)(40460700003)(7696005)(6666004)(478600001)(41300700001)(70586007)(54906003)(70206006)(921008)(16526019)(336012)(26005)(1076003)(2616005)(47076005)(83380400001)(426003)(2906002)(7416002)(110136005)(36860700001)(5660300002)(316002)(8936002)(8676002)(4326008)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:54:32.1995
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1bc82c44-91f7-4633-1956-08dc0067bc7d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FB.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7716

Patch "virtio-gpu: CONTEXT_INIT feature" has added the context_init
feature flags.
We would like to enable the feature with virglrenderer, so add to create
virgl renderer context with flags using context_id when valid.

Originally-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
---

Changes in v6:
- Handle the case while context_init is disabled.
- Enable context_init by default.

 hw/display/virtio-gpu-virgl.c | 13 +++++++++++--
 hw/display/virtio-gpu.c       |  4 ++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index 8bb7a2c21f..5bbc8071b2 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -106,8 +106,17 @@ static void virgl_cmd_context_create(VirtIOGPU *g,
     trace_virtio_gpu_cmd_ctx_create(cc.hdr.ctx_id,
                                     cc.debug_name);
 
-    virgl_renderer_context_create(cc.hdr.ctx_id, cc.nlen,
-                                  cc.debug_name);
+#ifdef HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS
+    if (cc.context_init && virtio_gpu_context_init_enabled(g->parent_obj.conf)) {
+        virgl_renderer_context_create_with_flags(cc.hdr.ctx_id,
+                                                 cc.context_init,
+                                                 cc.nlen,
+                                                 cc.debug_name);
+        return;
+    }
+#endif
+
+    virgl_renderer_context_create(cc.hdr.ctx_id, cc.nlen, cc.debug_name);
 }
 
 static void virgl_cmd_context_destroy(VirtIOGPU *g,
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index b016d3bac8..8b2f4c6be3 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1619,6 +1619,10 @@ static Property virtio_gpu_properties[] = {
     DEFINE_PROP_BIT("blob", VirtIOGPU, parent_obj.conf.flags,
                     VIRTIO_GPU_FLAG_BLOB_ENABLED, false),
     DEFINE_PROP_SIZE("hostmem", VirtIOGPU, parent_obj.conf.hostmem, 0),
+#ifdef HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS
+    DEFINE_PROP_BIT("context_init", VirtIOGPU, parent_obj.conf.flags,
+                    VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED, true),
+#endif
     DEFINE_PROP_END_OF_LIST(),
 };
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:54:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:54:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656525.1024789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUwB-0001Xs-M7; Tue, 19 Dec 2023 07:54:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656525.1024789; Tue, 19 Dec 2023 07:54: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 1rFUwB-0001Xl-Iw; Tue, 19 Dec 2023 07:54:47 +0000
Received: by outflank-mailman (input) for mailman id 656525;
 Tue, 19 Dec 2023 07:54: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=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUwA-0008Dp-4x
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:54:46 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20628.outbound.protection.outlook.com
 [2a01:111:f400:7e83::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df7cae0d-9e43-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 08:54:45 +0100 (CET)
Received: from MW4PR04CA0277.namprd04.prod.outlook.com (2603:10b6:303:89::12)
 by DM6PR12MB4863.namprd12.prod.outlook.com (2603:10b6:5:1b9::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:54:40 +0000
Received: from CO1PEPF000044F6.namprd21.prod.outlook.com
 (2603:10b6:303:89:cafe::11) by MW4PR04CA0277.outlook.office365.com
 (2603:10b6:303:89::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:54:40 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044F6.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.7113.7 via Frontend Transport; Tue, 19 Dec 2023 07:54:40 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:54:32 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df7cae0d-9e43-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DYxKGRR61qBPr4krhR53/x2i+/tRdouf51DP+SRNEIseb5IHDT7N39VmJM4E+sGkWNxKHCqESA1gp2/xwc9tooj2pJhtPNnrZ42pl9ba/iAaGTy49CDcHn5wGpSJ7ypZEfvmrdvYXh/LkGfI4noApFYqI3rPL4ztHKbm0Nl3kw408AMFNC05C7Ur8eSb0tmBXowy8kmmxZ4sLpgus3wC1iwxtSWfus4pcnAu18BHuhYitiKQMANoju9GUZCck6vnPXsQcT44E59vua3YfRa6vQcEgdisIBb/WjbzRKESCmWq9h2ZU1y/M6P8V3VSnBGARG4edMoDNISg1UlsGBETUg==
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=vm+x9hO2OZqrH2JAMynkQ88/E+kT5I5SP0gGi9uxqpU=;
 b=TZ3N7g9XWZfSCzENO8Wrvdd+pUFVbD3v/Dw+Z7UmAOsI/SPEeDkujKo44r0TFnM+S3aCn3aIdcvxAOJoqjVD5O74TPp4iLBuyEc8hOdcx2R8b9XSTW3lsHMRjbCZg8JjPE+MP/pvgf/vWYN+JegTBqy5xFYqjtZTkTSVNRkFrGa7X90q7bxnAS8/Q2NMkJLpY1Z4SasufV8CBdrgKWkvZZOjEXuocCEV7UKNvbe35y5B8ub30hg43XLRwUPv/j2480MFDf/Aa1ggFcLJP9zWtEb4ffCuOmSEn+4s7DapljrPXmRAs4ZSMyKorq+4SzTeHJCThpzaQ18hC9AlXahCDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=vm+x9hO2OZqrH2JAMynkQ88/E+kT5I5SP0gGi9uxqpU=;
 b=CedPQ5+Xsn8ZrqsTWCtCVX3RxSO7RCqcvn8sEW3VJC842gwh1dD68N1r/2Wb7ndP/6O2SSt4lOIpJ/MeO3qBy7C2dfeviBvZacDZbmnHg4SvKd/UayhzbTakt45S7w3pwkiV8Reh4mQn8BF+h+3EWwNUHPP5JUNBeqYSs/wDUC4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Antonio Caggiano
	<antonio.caggiano@collabora.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 04/11] virtio-gpu: Don't require udmabuf when blobs and virgl are enabled
Date: Tue, 19 Dec 2023 15:53:13 +0800
Message-ID: <20231219075320.165227-5-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044F6:EE_|DM6PR12MB4863:EE_
X-MS-Office365-Filtering-Correlation-Id: 934086c8-b3fa-421f-7fbf-08dc0067c166
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	q7GUOj+mSDtBeSW5AvfsXsKaqOMSxKAk0Ex7s4rCG458gMmUtzCsoyQ2e6nHG/8PW5qjuG0rfWqxVAA+avaO9z2XnaSGA1fZYgOwC21f4uej2c13aRSabTjToLB+6gBIZcjaQuet/n5pwXA4ylMYEpgdvFtGNg7ZnK7mvx2rAhkOe9IxZig255nWyvzU7T4Pwpb2OyCU4ncYt1YgmXcsPBIOrWdGizXlKXUA6rMniPqNaWZ3J0xa7JioBZVNz0otDgLtFouomMOmlbx8pz/voWRX47fUlcZ5b+djAcNil4+kzX+cOwQJKGf7yoORY581xZs7GBgxj0dhOSKQnHVJjR1EtGSTRRGkvyepPG0kKXrxH3rEHps7YnUEuYOzeGR5sy9GzPBiv3p6JoTC480FfP7LZPptBuRfcA+TA7+h15nfuZvORornSFQSwDNztapJuQUP7Z8FYz3CYncHF9hq1kRnsLCJS/2GqggkZxU6FJxVdWocAbU+dJ1fVtoo47/dWgaYHAFGSyxnhq4+TyxSX063lskdTkzQKQgR48HQBXdxF8Hww0GlvH6AsTEVWaL6Eb+hLrruXolllN9130cV8LY72sabwvnsGu4LOIcA5kVn76QUmeS1mYP786s15PNlirKSttaUL4ube5pEgdBNOzEdPBgfPEfM8Th90mpQuD00vVqPGG2WDdptPfx5X6UeMFoEo9zVw/6vULopEWE7KOX6fjQfyHI/rh5rdmJccfSq8ZY/FFHKnKO47MyQoqATwpBnZTyEPxJteZEEoM6g7nBhWLbjBIYU64iGUm2rUA0=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(396003)(136003)(346002)(39860400002)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(82310400011)(36840700001)(46966006)(40470700004)(36860700001)(356005)(40480700001)(47076005)(40460700003)(336012)(426003)(26005)(1076003)(83380400001)(16526019)(2616005)(36756003)(86362001)(921008)(82740400003)(81166007)(478600001)(7696005)(6666004)(316002)(54906003)(110136005)(70206006)(70586007)(4326008)(8676002)(8936002)(7416002)(2906002)(5660300002)(41300700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:54:40.4556
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 934086c8-b3fa-421f-7fbf-08dc0067c166
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F6.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4863

From: Dmitry Osipenko <dmitry.osipenko@collabora.com>

The udmabuf usage is mandatory when virgl is disabled and blobs feature
enabled in the Qemu machine configuration. If virgl and blobs are enabled,
then udmabuf requirement is optional. Since udmabuf isn't widely supported
by a popular Linux distros today, let's relax the udmabuf requirement for
blobs=on,virgl=on. Now, a full-featured virtio-gpu acceleration is
available to Qemu users without a need to have udmabuf available in the
system.

Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
---

No change in v6.

 hw/display/virtio-gpu.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 8b2f4c6be3..4c3ec9d0ea 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1443,6 +1443,7 @@ void virtio_gpu_device_realize(DeviceState *qdev, Error **errp)
 
     if (virtio_gpu_blob_enabled(g->parent_obj.conf)) {
         if (!virtio_gpu_rutabaga_enabled(g->parent_obj.conf) &&
+            !virtio_gpu_virgl_enabled(g->parent_obj.conf) &&
             !virtio_gpu_have_udmabuf()) {
             error_setg(errp, "need rutabaga or udmabuf for blob resources");
             return;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:54:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:54:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656527.1024798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUwK-00022y-UE; Tue, 19 Dec 2023 07:54:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656527.1024798; Tue, 19 Dec 2023 07:54:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUwK-00022r-RU; Tue, 19 Dec 2023 07:54:56 +0000
Received: by outflank-mailman (input) for mailman id 656527;
 Tue, 19 Dec 2023 07:54:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUwJ-0008Dp-EY
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:54:55 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20620.outbound.protection.outlook.com
 [2a01:111:f400:fe59::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4f70a64-9e43-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 08:54:54 +0100 (CET)
Received: from MW2PR16CA0011.namprd16.prod.outlook.com (2603:10b6:907::24) by
 CH3PR12MB7689.namprd12.prod.outlook.com (2603:10b6:610:14d::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:54:47 +0000
Received: from CO1PEPF000044F7.namprd21.prod.outlook.com
 (2603:10b6:907:0:cafe::7) by MW2PR16CA0011.outlook.office365.com
 (2603:10b6:907::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:54:46 +0000
Received: from SATLEXMB04.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.7113.8 via Frontend Transport; Tue, 19 Dec 2023 07:54:46 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:54:39 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4f70a64-9e43-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=FGmax1MMDMZaZkGrKK3BKhXgX8wXJBI+AiEiSSKAaP0EPo4b02z+lQPa0yOpWKHRAAEN2j37nQhg7XCYToNtCYpIxxWTy0LGZdbWGw51C5VcVDHTnliHO0kPrzwFNsnPC5055nfpYYxSB5Qz9X4xE5oCQ4xS7hJdUnQlui2TPnBd+QfDaSziYkQFJ7idXYW4o7WzvPMkCT61H1jIsvhggHrCqz/y++UKWXzLv2VRg6CGKz8mI4kEq9pwWmDq5YmOV050S4nTOW8IUlgJhcTDSo/X7OIxL7D2FMpL6hTXoNh5pLi1mI2QI3ZfrrNFdKHnE7Mg0VYp+nGbgE7qMEWReg==
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=5gjQXkZmdUlI5mi+HNsQt6K/uSUkTS4zo4/9zOqeuPo=;
 b=QozNBOIoMul1LU8Uu2SNcQeUPBNVTqQzusWejVPegsmKSihHehn9Jm7flbxrXS9Bxnek2kjqna70bQjho5oaCuM9EnNckyjyrSsoGSkvqzSc52B/RgPfCktchm+Q5ibZ4pHPRcMsFKATlSR1I97oRE4D9GSKwlhxONdjkVuZ8AKXcKQVhky2YSSBWQSZAv7q7eol+vKIkCItkDCLksEmffmltgeEq85deG7uAC/oJ6IYePTD4LI+QcZOgRAMz6d21MZIn252j+01Lf1sU620D3cIVWOrv4nJ2mVCtw3R/j32We+c2sA+06BKO1nFINluPlUG4jTiouQPYwIUvrELjg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=5gjQXkZmdUlI5mi+HNsQt6K/uSUkTS4zo4/9zOqeuPo=;
 b=kLQb6M+9jDxrgyIYoH1Zuafj2Wnmnupf3SOlaIW5fpgi+yYtrxOwjqbXT8mWO6DHunwBKZaVa+mshdI6f5oSO8mds4AKIapIYcWXEQHwAsydy4hrDfsPjuRgOf/i+jVus/1Z8NxnrOJfCT+VHdbXsR7x69jNC+oMopsSGrKmZhw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 05/11] virtio-gpu: Introduce virgl_gpu_resource structure
Date: Tue, 19 Dec 2023 15:53:14 +0800
Message-ID: <20231219075320.165227-6-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044F7:EE_|CH3PR12MB7689:EE_
X-MS-Office365-Filtering-Correlation-Id: 7db3e0b3-32b2-47c1-1214-08dc0067c528
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	lAtoYfukDt1MoY3K87nkoXbs8OUr8IJKcEtYvVh7Ak/2MI9XmWnnr+scICo+UjOK69CmSgW9o0azfHo7I5CbxVO43ZvVa6xXHsLAH3ERDuumER+j4vrTcRBG6oBqmsIQWzegDKm10fSjJWUcQp2wr1hFxK0ofkgmDIxNizQTfgSNfstMgsT7wzPNXaeRK87dNT/oeJ4XQg7g5PfuSfQSrTps8uJ0uE4KdvqQRxuDz90xVMXONK6EtV6njRkcvG+/PJaE6jAbonL2IIQUm8WTUiCZYEyN+DDlPKZGCUAKHpUMWHCuIVPKCgOjh/VTkdvaopwqVZHaYBJ5GyqepowMql6+ktSn0ufMWlXwK/civTnM8IpzlJvUfHTq/c/bnwj6S0Mn1C52FNjw0cd4hl4J94hujTNstW0oMspJudR68otJxf12/ORbaW7syjZIWJh+z0e4Vfpz8ZKHx7IZvHhu825a0YEl9ntakKVKcTWlz7y+Uu6bDtZmsNaHVpGpxQqPT03r7SKxBDdvrb+yqoDaMER/7LOEl+Ja9aLol4XsN+uIhzA2Twqr2nAvF7I80ujkzI5mSDBRyhah6XLquXArSrjL9Ssugv2nPQy+Et/lONl3Cylnl8H0S/OPA58MTewSVsj0dDdaVkrOTk3wbP8/AvrXxUGQZXhAlcbMjIDBsUtJdyPCaZWSszyYgqYAZCy8uGbW2ycXOT+81/Evn5VYZ9dR45/yVr0ockhulz8VUlDwsj9ABYC/VCVMeOtIrN8tD689harnnlKAsXUdA0+4K2PdLYiCppLm5s6qV2kLpH4=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(376002)(39860400002)(136003)(396003)(230922051799003)(64100799003)(82310400011)(186009)(1800799012)(451199024)(36840700001)(46966006)(40470700004)(40480700001)(6666004)(1076003)(2616005)(426003)(16526019)(336012)(26005)(40460700003)(356005)(81166007)(82740400003)(921008)(36756003)(86362001)(47076005)(83380400001)(5660300002)(7696005)(36860700001)(8936002)(8676002)(4326008)(316002)(70586007)(70206006)(54906003)(110136005)(7416002)(2906002)(41300700001)(478600001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:54:46.7574
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7db3e0b3-32b2-47c1-1214-08dc0067c528
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.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: CH3PR12MB7689

Introduce a new virgl_gpu_resource data structure and helper functions
for virgl. It's used to add new member which is specific for virgl in
following patches of blob memory support.

Signed-off-by: Huang Rui <ray.huang@amd.com>
---

New patch:
- Introduce new struct virgl_gpu_resource to store virgl specific members.
- Move resource initialization from path "virtio-gpu: Resource UUID" here.
- Remove error handling of g_new0, because glib will abort() on OOM.
- Set iov and iov_cnt in struct virtio_gpu_simple_resource for all types
  of resources.

 hw/display/virtio-gpu-virgl.c | 84 ++++++++++++++++++++++++++---------
 1 file changed, 64 insertions(+), 20 deletions(-)

diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index 5bbc8071b2..faab374336 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -22,6 +22,23 @@
 
 #include <virglrenderer.h>
 
+struct virgl_gpu_resource {
+    struct virtio_gpu_simple_resource res;
+};
+
+static struct virgl_gpu_resource *
+virgl_gpu_find_resource(VirtIOGPU *g, uint32_t resource_id)
+{
+    struct virtio_gpu_simple_resource *res;
+
+    res = virtio_gpu_find_resource(g, resource_id);
+    if (!res) {
+        return NULL;
+    }
+
+    return container_of(res, struct virgl_gpu_resource, res);
+}
+
 #if VIRGL_RENDERER_CALLBACKS_VERSION >= 4
 static void *
 virgl_get_egl_display(G_GNUC_UNUSED void *cookie)
@@ -35,11 +52,19 @@ static void virgl_cmd_create_resource_2d(VirtIOGPU *g,
 {
     struct virtio_gpu_resource_create_2d c2d;
     struct virgl_renderer_resource_create_args args;
+    struct virgl_gpu_resource *vres;
 
     VIRTIO_GPU_FILL_CMD(c2d);
     trace_virtio_gpu_cmd_res_create_2d(c2d.resource_id, c2d.format,
                                        c2d.width, c2d.height);
 
+    vres = g_new0(struct virgl_gpu_resource, 1);
+    vres->res.width = c2d.width;
+    vres->res.height = c2d.height;
+    vres->res.format = c2d.format;
+    vres->res.resource_id = c2d.resource_id;
+    QTAILQ_INSERT_HEAD(&g->reslist, &vres->res, next);
+
     args.handle = c2d.resource_id;
     args.target = 2;
     args.format = c2d.format;
@@ -59,11 +84,19 @@ static void virgl_cmd_create_resource_3d(VirtIOGPU *g,
 {
     struct virtio_gpu_resource_create_3d c3d;
     struct virgl_renderer_resource_create_args args;
+    struct virgl_gpu_resource *vres;
 
     VIRTIO_GPU_FILL_CMD(c3d);
     trace_virtio_gpu_cmd_res_create_3d(c3d.resource_id, c3d.format,
                                        c3d.width, c3d.height, c3d.depth);
 
+    vres = g_new0(struct virgl_gpu_resource, 1);
+    vres->res.width = c3d.width;
+    vres->res.height = c3d.height;
+    vres->res.format = c3d.format;
+    vres->res.resource_id = c3d.resource_id;
+    QTAILQ_INSERT_HEAD(&g->reslist, &vres->res, next);
+
     args.handle = c3d.resource_id;
     args.target = c3d.target;
     args.format = c3d.format;
@@ -82,19 +115,23 @@ static void virgl_cmd_resource_unref(VirtIOGPU *g,
                                      struct virtio_gpu_ctrl_command *cmd)
 {
     struct virtio_gpu_resource_unref unref;
-    struct iovec *res_iovs = NULL;
-    int num_iovs = 0;
+    struct virgl_gpu_resource *vres;
 
     VIRTIO_GPU_FILL_CMD(unref);
     trace_virtio_gpu_cmd_res_unref(unref.resource_id);
 
-    virgl_renderer_resource_detach_iov(unref.resource_id,
-                                       &res_iovs,
-                                       &num_iovs);
-    if (res_iovs != NULL && num_iovs != 0) {
-        virtio_gpu_cleanup_mapping_iov(g, res_iovs, num_iovs);
+    vres = virgl_gpu_find_resource(g, unref.resource_id);
+    if (!vres) {
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
     }
+
+    virgl_renderer_resource_detach_iov(unref.resource_id, NULL, NULL);
     virgl_renderer_resource_unref(unref.resource_id);
+
+    QTAILQ_REMOVE(&g->reslist, &vres->res, next);
+    virtio_gpu_cleanup_mapping(g, &vres->res);
+    g_free(vres);
 }
 
 static void virgl_cmd_context_create(VirtIOGPU *g,
@@ -310,44 +347,51 @@ static void virgl_resource_attach_backing(VirtIOGPU *g,
                                           struct virtio_gpu_ctrl_command *cmd)
 {
     struct virtio_gpu_resource_attach_backing att_rb;
-    struct iovec *res_iovs;
-    uint32_t res_niov;
+    struct virgl_gpu_resource *vres;
     int ret;
 
     VIRTIO_GPU_FILL_CMD(att_rb);
     trace_virtio_gpu_cmd_res_back_attach(att_rb.resource_id);
 
+    vres = virgl_gpu_find_resource(g, att_rb.resource_id);
+    if (!vres) {
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
     ret = virtio_gpu_create_mapping_iov(g, att_rb.nr_entries, sizeof(att_rb),
-                                        cmd, NULL, &res_iovs, &res_niov);
+                                        cmd, NULL, &vres->res.iov,
+                                        &vres->res.iov_cnt);
     if (ret != 0) {
         cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
         return;
     }
 
     ret = virgl_renderer_resource_attach_iov(att_rb.resource_id,
-                                             res_iovs, res_niov);
+                                             vres->res.iov, vres->res.iov_cnt);
 
-    if (ret != 0)
-        virtio_gpu_cleanup_mapping_iov(g, res_iovs, res_niov);
+    if (ret != 0) {
+        virtio_gpu_cleanup_mapping(g, &vres->res);
+    }
 }
 
 static void virgl_resource_detach_backing(VirtIOGPU *g,
                                           struct virtio_gpu_ctrl_command *cmd)
 {
     struct virtio_gpu_resource_detach_backing detach_rb;
-    struct iovec *res_iovs = NULL;
-    int num_iovs = 0;
+    struct virgl_gpu_resource *vres;
 
     VIRTIO_GPU_FILL_CMD(detach_rb);
     trace_virtio_gpu_cmd_res_back_detach(detach_rb.resource_id);
 
-    virgl_renderer_resource_detach_iov(detach_rb.resource_id,
-                                       &res_iovs,
-                                       &num_iovs);
-    if (res_iovs == NULL || num_iovs == 0) {
+    vres = virgl_gpu_find_resource(g, detach_rb.resource_id);
+    if (!vres) {
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
         return;
     }
-    virtio_gpu_cleanup_mapping_iov(g, res_iovs, num_iovs);
+
+    virgl_renderer_resource_detach_iov(detach_rb.resource_id, NULL, NULL);
+    virtio_gpu_cleanup_mapping(g, &vres->res);
 }
 
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:55:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:55:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656529.1024809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUwO-0002LJ-5x; Tue, 19 Dec 2023 07:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656529.1024809; Tue, 19 Dec 2023 07:55:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUwO-0002LC-2i; Tue, 19 Dec 2023 07:55:00 +0000
Received: by outflank-mailman (input) for mailman id 656529;
 Tue, 19 Dec 2023 07:54:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUwM-0008Dp-Qk
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:54:58 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2009::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e73fc5c6-9e43-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 08:54:58 +0100 (CET)
Received: from MW3PR06CA0016.namprd06.prod.outlook.com (2603:10b6:303:2a::21)
 by PH8PR12MB6915.namprd12.prod.outlook.com (2603:10b6:510:1bc::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:54:54 +0000
Received: from CO1PEPF000044FB.namprd21.prod.outlook.com
 (2603:10b6:303:2a:cafe::88) by MW3PR06CA0016.outlook.office365.com
 (2603:10b6:303:2a::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:54:54 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FB.mail.protection.outlook.com (10.167.241.201) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.8 via Frontend Transport; Tue, 19 Dec 2023 07:54:54 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:54:46 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e73fc5c6-9e43-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NMG88yncB1UafCmWWVyd8M+0DNS/il0n75vxYFCuq31dim6bjZFIt6Ws3zFSRLNPstEFC3I20/3PH3cr5pZllsVw1BG04pSLJfjjTjQUI6YaS6hteDAeJbtauWE6Ijbi4p+6ensjcpf62GQiC34S4Bt1+hObaaTZ+YjC4YBkSOIwY0ee5SOGm0XDxcLLKAe9qHx1V8XaR2tvx+Q0bvFzSfID5yrHh78DulYNX9AKeDk78+WHPZFCNfRTEH7Uq+Imkfy8Ev3Wi+nyWQtaDWgw2R60xfKf63yLwAKuW2R75yUyhLOz8EHpvswZgVQu3nMK4AxtkrRgx4F2DEBmK2Ja4Q==
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=NHthmq3LNlURxrALGteQJH0pznfSph2Flea36JzSsgY=;
 b=MLvBuO3yxMd70JoCsgTbVfSZBMJhGSXFNuanCaxBiUQxEnCNwfxJADmLqievZxMUMU0bcaYLM2TScroFogx4rr4eabiGs0oTuga9+jtG0r3or5RP2nwb2ZKgA/MzUBNkT5aTI4bk7ejBNEH8nRmPh7EyuygCilfSaL+hfTxMsvyS6ln450n6WM57tunUqTzpn34j8iCAnW5ZbR0xPpuzGhZeEja8UOPu0raIPk609XW3SFMcgrWH99M/YuEvfo56Vcm6959rkqSjCXz2mim6mg+JsZbDk5YwlkhXE07psLjfGEWCwtrNWjukyhaYhdzpPIveHRvg89pP6kP6dv4iaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=NHthmq3LNlURxrALGteQJH0pznfSph2Flea36JzSsgY=;
 b=l0hbwTtsjmSZC/F/x9efoSXDKK17UB42jxjdjRcXiW5teYaWuZjGuBCXRA/k8snnLPloHp308N+7QGggb4FUnl2Lm+g+q+AZPQWjRkPmvBZGBxrpZwkoPxd1D4i4ac59zdoMY8acgTJvecN5qLJGb0vNz32WIvWF/qceraC/sb8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 06/11] softmmu/memory: enable automatic deallocation of memory regions
Date: Tue, 19 Dec 2023 15:53:15 +0800
Message-ID: <20231219075320.165227-7-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044FB:EE_|PH8PR12MB6915:EE_
X-MS-Office365-Filtering-Correlation-Id: 8161af65-0cbb-42e1-1c1a-08dc0067c9ad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	LToTb6P6nsFg7OaWjSV02cosNDTZAB+ZJ01LIJwa9HgJ5YvoNgwdcHV62Q71NTJW+MxJbUiMQyEYjuixuvlxH2rJif+mBBxiPonm9mC32VUrzclNNayJbxFxoREe/aTDaF2lrcPY9ZsahMBmvOfOmHl37B2R7SV0cBQaybFw3Egf3tFUDEWmyiDTxwKkEPOuYD6wLdmw7oqkpapNoTWfHB7GuhK6byiPOJhkY0hmjgke1cs4KBAhw+vsijDxum8SDmfOCCrm/XycllwuoZj9E2xBhtKVg0kK1KyMY+ivWcZV/CxYaJTXKKK3Yz6DTCYhq1UQHtSzGvW9wEpifyv8UF+i518deHgVd+aejScheUi+ZZn62dajqboHcH0o8MG2sZ0LR2AzV4yJQcjphH3E3Pf4x0g22CJThUeyCP4NdDPyGA0h9xPHmnXNWJsRlvIY8tAPbipvMxhYLVN13k1qq54k3WVvULhqB969ACAlsSQTpEkAeF8iz5ATT0NPinsqZwlmSLM4GzrYfmiUSb3hKwuLSzD4jQwIsh/b2NxharkaXBVq+TkPTZ/i2QFL8vKuWH5EWfffUs3370u3KWWbezL/DOaUQva+viYwf6kr4qG3G5FJKtlDHAHkzxg8CrwIwdYjOHuv3w5tAAPIvoqe10pCLp3Ad3HN9sjhbSPnjR4LIgiH04PFmK1M1yRpk0MaHkPGbVndON+VkWFIk6B8zjRkDbv8fAEKSlgNMkUedSrgr0lkgfEc7SAtA9/U8P/2KFIO+p9wdF6828ip7BUHGyrJvAGWMys+DIs3/VotZEI=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(136003)(346002)(39860400002)(396003)(230922051799003)(451199024)(186009)(64100799003)(82310400011)(1800799012)(40470700004)(46966006)(36840700001)(5660300002)(82740400003)(356005)(66899024)(81166007)(7416002)(40460700003)(2906002)(36756003)(921008)(41300700001)(86362001)(316002)(7696005)(1076003)(8676002)(8936002)(4326008)(6666004)(40480700001)(336012)(426003)(70206006)(70586007)(54906003)(83380400001)(110136005)(36860700001)(478600001)(26005)(16526019)(2616005)(47076005)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:54:54.3089
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8161af65-0cbb-42e1-1c1a-08dc0067c9ad
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FB.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6915

From: Xenia Ragiadakou <xenia.ragiadakou@amd.com>

When the memory region has a different life-cycle from that of her parent,
could be automatically released, once has been unparent and once all of her
references have gone away, via the object's free callback.

However, currently, the address space subsystem keeps references to the
memory region without first incrementing its object's reference count.
As a result, the automatic deallocation of the object, not taking into
account those references, results in use-after-free memory corruption.

More specifically, reference to the memory region is kept in flatview
ranges. If the reference count of the memory region is not incremented,
flatview_destroy(), that is asynchronous, may be called after memory
region's destruction. If the reference count of the memory region is
incremented, memory region's destruction will take place after
flatview_destroy() has released its references.

This patch increases the reference count of an owned memory region object
on each memory_region_ref() and decreases it on each memory_region_unref().

Signed-off-by: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
---

Changes in v6:
- remove in-code comment because it is confusing and explain the issue,
  that the patch attempts to fix, with more details in commit message

 system/memory.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/system/memory.c b/system/memory.c
index 304fa843ea..4d5e7e7a4c 100644
--- a/system/memory.c
+++ b/system/memory.c
@@ -1824,6 +1824,7 @@ void memory_region_ref(MemoryRegion *mr)
      * we do not ref/unref them because it slows down DMA sensibly.
      */
     if (mr && mr->owner) {
+        object_ref(OBJECT(mr));
         object_ref(mr->owner);
     }
 }
@@ -1832,6 +1833,7 @@ void memory_region_unref(MemoryRegion *mr)
 {
     if (mr && mr->owner) {
         object_unref(mr->owner);
+        object_unref(OBJECT(mr));
     }
 }
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:55:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:55:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656538.1024819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUwr-0003RB-NM; Tue, 19 Dec 2023 07:55:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656538.1024819; Tue, 19 Dec 2023 07:55: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 1rFUwr-0003Qy-JA; Tue, 19 Dec 2023 07:55:29 +0000
Received: by outflank-mailman (input) for mailman id 656538;
 Tue, 19 Dec 2023 07:55: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=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUwq-0000yA-HZ
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:55:28 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2061d.outbound.protection.outlook.com
 [2a01:111:f400:7e83::61d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f7f6b487-9e43-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 08:55:26 +0100 (CET)
Received: from MW4PR04CA0356.namprd04.prod.outlook.com (2603:10b6:303:8a::31)
 by DS7PR12MB5912.namprd12.prod.outlook.com (2603:10b6:8:7d::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Tue, 19 Dec
 2023 07:55:22 +0000
Received: from CO1PEPF000044FC.namprd21.prod.outlook.com
 (2603:10b6:303:8a:cafe::de) by MW4PR04CA0356.outlook.office365.com
 (2603:10b6:303:8a::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:55:22 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FC.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.7 via Frontend Transport; Tue, 19 Dec 2023 07:55:22 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:55:14 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7f6b487-9e43-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hmvHz913hB1TWlEMQDyYE9+o+MZMifSYI/AEtM4RH4BMiczRjzOeeE6HYRBbSjYMXTU+8dYzA+jjZf7/obPrstkTWqB64DPM9o22gXm9aicPYtp0hv0PAUzgDNwrjKFCF9OesiHLndyZsauqdrlYi4SgTel6MiLhkmjZpB9XEcMJke+xjS+xvFt9IXsYWe/dl5LllkiNniyTck7SEN8rGdDrpmL+7oNlNyzl75JIOSDbDfvTD6R5U1TKB7FI0tRSisZ3Lto4VlQ2MUn5LgAWEXLzje+LvK5jWhinJREnQevYqWlaP2E5zT90DD0zHYYS2pbVs31ZNX8xdKOhfPnDbg==
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=r6wM7XdDLz/vD6HCFSkY/1aVRVdBt1QQMsmUBQSoj30=;
 b=d7e3gb/sOMg46ymeLKqB1gD4I3zELp4uEGKjGwhlwarQDp2pVOYpt8jGdZQLY8Y+776bAPyiiH7K7f9WrEYBiRHOppCHmU8SMKbbM29RP8MM4gf5khkkPwX0Os/MrYm9eKp2OY26oibvYq+ruCODALj+DsO9DvQERJ2BbUboZQeAzKIQk5lyUaWr1Tmxr0UBPddokJ+IeIuz63yuk0r8bPMwei4XCKs2o3UtjJOx459dYU1qYdpPxmz44OLsf1dJkg0JvzLhvw8+8dYZlyPmuG7ttG16yLZDj4q5+IL38YZgISrQD5f2YlY1029A/ceMp/zUbbzN4e/TMNn3i2GAOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=r6wM7XdDLz/vD6HCFSkY/1aVRVdBt1QQMsmUBQSoj30=;
 b=Dz5NnppdXVdZQ2D1d7fl/G5vqoMtjL90QOK1v9ZFa3RnLAtvks43CMG2TYBmB/Gwq0bijuxC0V/fZ4IDRdVErGEKG7MCITqenYgk7L+EgL2OKbreah3bPBl5gn0FYutBPLEXUGVRqNO12Y4R9uZ3aZN+Di5G035xAp2WJnR4os4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Antonio Caggiano
	<antonio.caggiano@collabora.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 08/11] virtio-gpu: Resource UUID
Date: Tue, 19 Dec 2023 15:53:17 +0800
Message-ID: <20231219075320.165227-9-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044FC:EE_|DS7PR12MB5912:EE_
X-MS-Office365-Filtering-Correlation-Id: a8e63952-2d9e-4901-9f1a-08dc0067da7d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	7F1yjdWR/CEy1ib18kKEI3rMswtuQLXbhP4gS/VvxwJBvxJqXcx4On8o4e0m9VSvV2v2cFOAtA1/ARBXZI/ZW4xma3O+fNEm/mAC9puLPzJB5OK4Vqyr0yJ3a/q7VrqIc/GURtIsgt7nm2T5rECDEJIHaOuoiNnzj27OnwZN1Xz4/2P6FpuG5eLZfOikadv2M+tbFGo2Tn0/XPrgaultecVuKGdCJzPab5Gu10SrT/LcKFWVS91fqyFXgx42yp7/DjZ++MY34o0d1oTLgfww+8FJn+rFsSAsC5seeiYhcZB6tsLIXdYiqoBg51cVx+e/jumejZorHXT0Z/FJ0gjJQP3gvJ/OMQulxBJ0ldVRNdWtHl8VB/F/Uk/dvVYsuvLlKY5ghg48weiehPQGYtNVNy49TkMUECdSVdWjAxyx3lVbnFOUjWUptEkkicOctnhyiCR+CeucSoXlYWYQXR/GBJeYqr6+JQQAH4itScQoFNxHM//uJDsjtMKaXKw+VoBg4T0AwZgsPq93zrLPsM1zrLkRmLnKSzp/Kx6PXijWINdizA7SpMLp9vbc3Qg1KRhzTpjw+OZdVPhz0yDoSKpSplb29ARBBmbOGMwhVidfBT9M9hlGCeygQqXzxSb5AEWaRewEP2inN5CvHlO03nAHetlwhlO6AiWAhiMbFri8mW7M8Fwjp7wjyRNsyrtlMAi9J22RcURm3ViWqtlMyklGvNyos8G6qt/dmkFiY1I2WOMI1AwtbdGQsbIRkL/vGs6lPHmauyueDN4GCWOApXStJVjMx9oCOJqYPHlRrDxyn/A=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(376002)(396003)(39860400002)(136003)(230922051799003)(1800799012)(82310400011)(186009)(64100799003)(451199024)(36840700001)(40470700004)(46966006)(40480700001)(40460700003)(921008)(70206006)(70586007)(81166007)(356005)(82740400003)(36756003)(86362001)(16526019)(36860700001)(1076003)(426003)(336012)(26005)(83380400001)(2616005)(7696005)(2906002)(8936002)(316002)(8676002)(110136005)(54906003)(478600001)(7416002)(4326008)(5660300002)(41300700001)(47076005)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:55:22.5658
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a8e63952-2d9e-4901-9f1a-08dc0067da7d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FC.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5912

From: Antonio Caggiano <antonio.caggiano@collabora.com>

Enable resource UUID feature and implement command resource assign UUID.
This is done by introducing a hash table to map resource IDs to their
UUIDs.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
---

Changes in v6:
- Set resource uuid as option.
- Implement optional subsection of vmstate_virtio_gpu_resource_uuid_state
  or virtio live migration.
- Use g_int_hash/g_int_equal instead of the default.
- Move virtio_vgpu_simple_resource initialization in the earlier new patch
  "virtio-gpu: Introduce virgl_gpu_resource structure"

 hw/display/trace-events        |   1 +
 hw/display/virtio-gpu-base.c   |   4 ++
 hw/display/virtio-gpu-virgl.c  |   3 +
 hw/display/virtio-gpu.c        | 119 +++++++++++++++++++++++++++++++++
 include/hw/virtio/virtio-gpu.h |   7 ++
 5 files changed, 134 insertions(+)

diff --git a/hw/display/trace-events b/hw/display/trace-events
index 2336a0ca15..54d6894c59 100644
--- a/hw/display/trace-events
+++ b/hw/display/trace-events
@@ -41,6 +41,7 @@ virtio_gpu_cmd_res_create_blob(uint32_t res, uint64_t size) "res 0x%x, size %" P
 virtio_gpu_cmd_res_unref(uint32_t res) "res 0x%x"
 virtio_gpu_cmd_res_back_attach(uint32_t res) "res 0x%x"
 virtio_gpu_cmd_res_back_detach(uint32_t res) "res 0x%x"
+virtio_gpu_cmd_res_assign_uuid(uint32_t res) "res 0x%x"
 virtio_gpu_cmd_res_xfer_toh_2d(uint32_t res) "res 0x%x"
 virtio_gpu_cmd_res_xfer_toh_3d(uint32_t res) "res 0x%x"
 virtio_gpu_cmd_res_xfer_fromh_3d(uint32_t res) "res 0x%x"
diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
index 37af256219..6bcee3882f 100644
--- a/hw/display/virtio-gpu-base.c
+++ b/hw/display/virtio-gpu-base.c
@@ -236,6 +236,10 @@ virtio_gpu_base_get_features(VirtIODevice *vdev, uint64_t features,
         features |= (1 << VIRTIO_GPU_F_CONTEXT_INIT);
     }
 
+    if (virtio_gpu_resource_uuid_enabled(g->conf)) {
+        features |= (1 << VIRTIO_GPU_F_RESOURCE_UUID);
+    }
+
     return features;
 }
 
diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index 5a3a292f79..be9da6e780 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -777,6 +777,9 @@ void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
         /* TODO add security */
         virgl_cmd_ctx_detach_resource(g, cmd);
         break;
+    case VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID:
+        virtio_gpu_resource_assign_uuid(g, cmd);
+        break;
     case VIRTIO_GPU_CMD_GET_CAPSET_INFO:
         virgl_cmd_get_capset_info(g, cmd);
         break;
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 8189c392dc..466debb256 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -958,6 +958,37 @@ virtio_gpu_resource_detach_backing(VirtIOGPU *g,
     virtio_gpu_cleanup_mapping(g, res);
 }
 
+void virtio_gpu_resource_assign_uuid(VirtIOGPU *g,
+                                     struct virtio_gpu_ctrl_command *cmd)
+{
+    struct virtio_gpu_simple_resource *res;
+    struct virtio_gpu_resource_assign_uuid assign;
+    struct virtio_gpu_resp_resource_uuid resp;
+    QemuUUID *uuid;
+
+    VIRTIO_GPU_FILL_CMD(assign);
+    virtio_gpu_bswap_32(&assign, sizeof(assign));
+    trace_virtio_gpu_cmd_res_assign_uuid(assign.resource_id);
+
+    res = virtio_gpu_find_check_resource(g, assign.resource_id, false, __func__, &cmd->error);
+    if (!res) {
+        return;
+    }
+
+    memset(&resp, 0, sizeof(resp));
+    resp.hdr.type = VIRTIO_GPU_RESP_OK_RESOURCE_UUID;
+
+    uuid = g_hash_table_lookup(g->resource_uuids, &assign.resource_id);
+    if (!uuid) {
+        uuid = g_new(QemuUUID, 1);
+        qemu_uuid_generate(uuid);
+        g_hash_table_insert(g->resource_uuids, &assign.resource_id, uuid);
+    }
+
+    memcpy(resp.uuid, uuid, sizeof(QemuUUID));
+    virtio_gpu_ctrl_response(g, cmd, &resp.hdr, sizeof(resp));
+}
+
 void virtio_gpu_simple_process_cmd(VirtIOGPU *g,
                                    struct virtio_gpu_ctrl_command *cmd)
 {
@@ -1006,6 +1037,9 @@ void virtio_gpu_simple_process_cmd(VirtIOGPU *g,
     case VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING:
         virtio_gpu_resource_detach_backing(g, cmd);
         break;
+    case VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID:
+        virtio_gpu_resource_assign_uuid(g, cmd);
+        break;
     default:
         cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
         break;
@@ -1400,6 +1434,57 @@ static int virtio_gpu_blob_load(QEMUFile *f, void *opaque, size_t size,
     return 0;
 }
 
+static int virtio_gpu_resource_uuid_save(QEMUFile *f, void *opaque, size_t size,
+                                         const VMStateField *field,
+                                         JSONWriter *vmdesc)
+{
+    VirtIOGPU *g = opaque;
+    struct virtio_gpu_simple_resource *res;
+    QemuUUID *uuid;
+
+    /* in 2d mode we should never find unprocessed commands here */
+    assert(QTAILQ_EMPTY(&g->cmdq));
+
+    QTAILQ_FOREACH(res, &g->reslist, next) {
+        qemu_put_be32(f, res->resource_id);
+        uuid = g_hash_table_lookup(g->resource_uuids, &res->resource_id);
+        qemu_put_buffer(f, (void *)uuid, sizeof(QemuUUID));
+    }
+    qemu_put_be32(f, 0); /* end of list */
+
+    g_hash_table_destroy(g->resource_uuids);
+
+    return 0;
+}
+
+static int virtio_gpu_resource_uuid_load(QEMUFile *f, void *opaque, size_t size,
+                                         const VMStateField *field)
+{
+    VirtIOGPU *g = opaque;
+    struct virtio_gpu_simple_resource *res;
+    uint32_t resource_id;
+    QemuUUID *uuid = NULL;
+
+    g->resource_uuids = g_hash_table_new_full(g_int_hash, g_int_equal, NULL, g_free);
+    resource_id = qemu_get_be32(f);
+    while (resource_id != 0) {
+        res = virtio_gpu_find_resource(g, resource_id);
+        if (res) {
+            return -EINVAL;
+        }
+
+        res = g_new0(struct virtio_gpu_simple_resource, 1);
+        res->resource_id = resource_id;
+
+        qemu_get_buffer(f, (void *)uuid, sizeof(QemuUUID));
+        g_hash_table_insert(g->resource_uuids, &res->resource_id, uuid);
+
+        resource_id = qemu_get_be32(f);
+    }
+
+    return 0;
+}
+
 static int virtio_gpu_post_load(void *opaque, int version_id)
 {
     VirtIOGPU *g = opaque;
@@ -1475,12 +1560,15 @@ void virtio_gpu_device_realize(DeviceState *qdev, Error **errp)
     QTAILQ_INIT(&g->reslist);
     QTAILQ_INIT(&g->cmdq);
     QTAILQ_INIT(&g->fenceq);
+
+    g->resource_uuids = g_hash_table_new_full(g_int_hash, g_int_equal, NULL, g_free);
 }
 
 static void virtio_gpu_device_unrealize(DeviceState *qdev)
 {
     VirtIOGPU *g = VIRTIO_GPU(qdev);
 
+    g_hash_table_destroy(g->resource_uuids);
     g_clear_pointer(&g->ctrl_bh, qemu_bh_delete);
     g_clear_pointer(&g->cursor_bh, qemu_bh_delete);
     g_clear_pointer(&g->reset_bh, qemu_bh_delete);
@@ -1534,6 +1622,8 @@ void virtio_gpu_reset(VirtIODevice *vdev)
         g_free(cmd);
     }
 
+    g_hash_table_remove_all(g->resource_uuids);
+
     virtio_gpu_base_reset(VIRTIO_GPU_BASE(vdev));
 }
 
@@ -1583,6 +1673,32 @@ const VMStateDescription vmstate_virtio_gpu_blob_state = {
     },
 };
 
+static bool virtio_gpu_resource_uuid_state_needed(void *opaque)
+{
+    VirtIOGPU *g = VIRTIO_GPU(opaque);
+
+    return virtio_gpu_resource_uuid_enabled(g->parent_obj.conf);
+}
+
+const VMStateDescription vmstate_virtio_gpu_resource_uuid_state = {
+    .name = "virtio-gpu/resource_uuid",
+    .minimum_version_id = VIRTIO_GPU_VM_VERSION,
+    .version_id = VIRTIO_GPU_VM_VERSION,
+    .needed = virtio_gpu_resource_uuid_state_needed,
+    .fields = (const VMStateField[]){
+        {
+            .name = "virtio-gpu/resource_uuid",
+            .info = &(const VMStateInfo) {
+                .name = "resource_uuid",
+                .get = virtio_gpu_resource_uuid_load,
+                .put = virtio_gpu_resource_uuid_save,
+            },
+            .flags = VMS_SINGLE,
+        } /* device */,
+        VMSTATE_END_OF_LIST()
+    },
+};
+
 /*
  * For historical reasons virtio_gpu does not adhere to virtio migration
  * scheme as described in doc/virtio-migration.txt, in a sense that no
@@ -1610,6 +1726,7 @@ static const VMStateDescription vmstate_virtio_gpu = {
     },
     .subsections = (const VMStateDescription * []) {
         &vmstate_virtio_gpu_blob_state,
+        &vmstate_virtio_gpu_resource_uuid_state,
         NULL
     },
     .post_load = virtio_gpu_post_load,
@@ -1622,6 +1739,8 @@ static Property virtio_gpu_properties[] = {
     DEFINE_PROP_BIT("blob", VirtIOGPU, parent_obj.conf.flags,
                     VIRTIO_GPU_FLAG_BLOB_ENABLED, false),
     DEFINE_PROP_SIZE("hostmem", VirtIOGPU, parent_obj.conf.hostmem, 0),
+    DEFINE_PROP_BIT("resource_uuid", VirtIOGPU, parent_obj.conf.flags,
+                    VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED, false),
 #ifdef HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS
     DEFINE_PROP_BIT("context_init", VirtIOGPU, parent_obj.conf.flags,
                     VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED, true),
diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
index 584ba2ed73..76b410fe91 100644
--- a/include/hw/virtio/virtio-gpu.h
+++ b/include/hw/virtio/virtio-gpu.h
@@ -98,6 +98,7 @@ enum virtio_gpu_base_conf_flags {
     VIRTIO_GPU_FLAG_BLOB_ENABLED,
     VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED,
     VIRTIO_GPU_FLAG_RUTABAGA_ENABLED,
+    VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED,
 };
 
 #define virtio_gpu_virgl_enabled(_cfg) \
@@ -114,6 +115,8 @@ enum virtio_gpu_base_conf_flags {
     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED))
 #define virtio_gpu_rutabaga_enabled(_cfg) \
     (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RUTABAGA_ENABLED))
+#define virtio_gpu_resource_uuid_enabled(_cfg) \
+    (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED))
 #define virtio_gpu_hostmem_enabled(_cfg) \
     (_cfg.hostmem > 0)
 
@@ -209,6 +212,8 @@ struct VirtIOGPU {
         QTAILQ_HEAD(, VGPUDMABuf) bufs;
         VGPUDMABuf *primary[VIRTIO_GPU_MAX_SCANOUTS];
     } dmabuf;
+
+    GHashTable *resource_uuids;
 };
 
 struct VirtIOGPUClass {
@@ -307,6 +312,8 @@ void virtio_gpu_cleanup_mapping_iov(VirtIOGPU *g,
                                     struct iovec *iov, uint32_t count);
 void virtio_gpu_cleanup_mapping(VirtIOGPU *g,
                                 struct virtio_gpu_simple_resource *res);
+void virtio_gpu_resource_assign_uuid(VirtIOGPU *g,
+                                     struct virtio_gpu_ctrl_command *cmd);
 void virtio_gpu_process_cmdq(VirtIOGPU *g);
 void virtio_gpu_device_realize(DeviceState *qdev, Error **errp);
 void virtio_gpu_reset(VirtIODevice *vdev);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:55:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:55:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656541.1024829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUwz-0003rp-Tq; Tue, 19 Dec 2023 07:55:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656541.1024829; Tue, 19 Dec 2023 07:55:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFUwz-0003rb-R2; Tue, 19 Dec 2023 07:55:37 +0000
Received: by outflank-mailman (input) for mailman id 656541;
 Tue, 19 Dec 2023 07:55: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=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUwy-0000yA-57
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:55:36 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20600.outbound.protection.outlook.com
 [2a01:111:f403:2409::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fca6294c-9e43-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 08:55:34 +0100 (CET)
Received: from MW4PR03CA0098.namprd03.prod.outlook.com (2603:10b6:303:b7::13)
 by SA1PR12MB5616.namprd12.prod.outlook.com (2603:10b6:806:22a::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:55:31 +0000
Received: from CO1PEPF000044F6.namprd21.prod.outlook.com
 (2603:10b6:303:b7:cafe::fc) by MW4PR03CA0098.outlook.office365.com
 (2603:10b6:303:b7::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37 via Frontend
 Transport; Tue, 19 Dec 2023 07:55:30 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044F6.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.7113.7 via Frontend Transport; Tue, 19 Dec 2023 07:55:30 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:55:22 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fca6294c-9e43-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SGpXb9WNKnyy32pg34uiRsoHJWBvV3QAY7Rr/9iZDbvy663viLBzA1vmc2KhCfBBC36mkYz0b7T/XLbDyB1M8H+f492dRQ1WVzd2cSGO6RofeuVAcVwEUuedHjtZOUIcfgy0sK+R23g5qRvtiOlZHvViwdvOJGXSzy5Kjmc+YlR32bmXqnqrDuRYoC4MtqM7Yv/F+AvkJWzcRGvHMp5kSQ5dWBcLk7tYLOoSEqhDloqqkI43WYZzGlCwnJ/tQLNzJSUQmuG1ecJpXqlE5lCQIJecJ96Vv9ypQacM/M3bAnb6mNWmXV/jRZra4kV71+/tQQDjzq0tWs5CPg2XaCZQlw==
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=i6N6SmqJS+VsWTRghGUSLDTGZ0Y9NcE2iDhrRgcr16I=;
 b=J9zaYIWr4/fawB1kXUxWtcYzg4cKVY7NDe3Rl3fAu2moXNTf+ziLrv98d7OW42bYoTkXAiN+/aUeih7QU8i81tMNjURrIkgpVpRwUPpn00zbOm3BZf9Q5ZC+nvjVT7+3tPKPxZyx1dJWQw3sFyIzzwHJcIKrm1UVQ+LX8djQC3zOzoot/GzqB525YpronzJIwj/2QUf3PSWlnMjp/1ke2AeTHqAtCxpB+oq22js0tAC1Rr9ZOtwJRp89z9ledMyDO7p1Z9iVJGoJ+bnA2a7imUxvp8HREMhr15b1pF0rnBzFlWPtXbpJ/EoFNL7gLcijnOCpdZnv+h695G5CXLRSrw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=i6N6SmqJS+VsWTRghGUSLDTGZ0Y9NcE2iDhrRgcr16I=;
 b=FG6kzGosQA11GdpP7BNY/6NRTmaJG6yWmGC8JRHmc4HHaFUftnzzspUz8lRolNwwX6tnPvwKYqzjSVGh7vP6fiemn/51ZNcdbKdakFRAnNcm1CuiMMI3AbdJyKvIwAJTubOk3BH+t7HKOSpfBhr6iWJnzmkAyqbJU4kq4FoQXzY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Antonio Caggiano
	<antonio.caggiano@collabora.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 09/11] virtio-gpu: Support Venus capset
Date: Tue, 19 Dec 2023 15:53:18 +0800
Message-ID: <20231219075320.165227-10-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044F6:EE_|SA1PR12MB5616:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f96fe8b-e27a-486e-071e-08dc0067df5a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	wiXeoCvFzXOBNreRPBZnE+Uoo6BSfyiR7/rR8Cx0T4kw3fGduISpoV6LiNLpxMDMf4Vj7CkTl6wjT72VSKw9+pKIvKguxL9Q690S6rLJGe1Jyp27q6cKk4qb97Q8d2f8qy8ijjT6GmQdif0IzcrMsmlk+ruAKPSMox47lJHqZqV720SuUV7w5i3LP+OlFz9GGLXVz8ECa7/Up6l2hAlU48jl0roEXLYpHN7KQrVee9mwF1UbWTz6T6ra87jucPS8AdhRGSzRaZ2KGzKF7sDOBtT8jsivxA47xPpcSLs7FXr2FB5L6azA6pLXWfd84ah8E6TySMYt5H/HZHBmJwpmz+g1QuUDStQDKoauPYRqakuAwUiADL2tjM7vqeZiuyuLU8AmiruemuyOuy/F+3LFm0X6mzaO5YUYBifHSeG/G2puI8Nob9aUtjiAo2DacJ/31445r81X+bOL9dNFs2gDw8YDQEstwY47uiziXuMo8/jQDuXyCq5g8USMg+BAmbIaSmJnf1UDgEc5Cny8qVFpEL0b6d+G8LmZXBlGAPD53bPGbbr2XTDWEcG8BVeAUy4gM2bXtr7gWCscQcsdCe75zrbOLTUBWP8ia3AQfWX7V0cp5oz1ZVE3Ano7GKL9VkOFAkKMa86JMsim/VC411Evv9oCEJC0C8SHdmcauENMi5ou6+I++wH1BfHLFjdt4983fBay3/ZqlutuGqmh+p99nt3xV4fEoUl+2DxcXfRvuwQDQyGynGbzaCx6VtZas0kQwjpavieTFM5AJLFG2XJx/56mqUqZqSYUS8IXcXyQdpI=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(376002)(39860400002)(346002)(136003)(230922051799003)(451199024)(82310400011)(186009)(1800799012)(64100799003)(46966006)(40470700004)(36840700001)(40460700003)(40480700001)(426003)(16526019)(336012)(2616005)(1076003)(6666004)(7696005)(26005)(82740400003)(921008)(356005)(81166007)(36756003)(86362001)(8936002)(8676002)(4326008)(478600001)(110136005)(36860700001)(5660300002)(7416002)(2906002)(47076005)(83380400001)(41300700001)(70206006)(70586007)(54906003)(316002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:55:30.7212
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f96fe8b-e27a-486e-071e-08dc0067df5a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F6.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB5616

From: Antonio Caggiano <antonio.caggiano@collabora.com>

Add support for the Venus capset, which enables Vulkan support through
the Venus Vulkan driver for virtio-gpu.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
---

No change in v6.

 hw/display/virtio-gpu-virgl.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index be9da6e780..f35a751824 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -506,6 +506,11 @@ static void virgl_cmd_get_capset_info(VirtIOGPU *g,
         virgl_renderer_get_cap_set(resp.capset_id,
                                    &resp.capset_max_version,
                                    &resp.capset_max_size);
+    } else if (info.capset_index == 2) {
+        resp.capset_id = VIRTIO_GPU_CAPSET_VENUS;
+        virgl_renderer_get_cap_set(resp.capset_id,
+                                   &resp.capset_max_version,
+                                   &resp.capset_max_size);
     } else {
         resp.capset_max_version = 0;
         resp.capset_max_size = 0;
@@ -978,10 +983,18 @@ int virtio_gpu_virgl_init(VirtIOGPU *g)
 
 int virtio_gpu_virgl_get_num_capsets(VirtIOGPU *g)
 {
-    uint32_t capset2_max_ver, capset2_max_size;
+    uint32_t capset2_max_ver, capset2_max_size, num_capsets;
+    num_capsets = 1;
+
     virgl_renderer_get_cap_set(VIRTIO_GPU_CAPSET_VIRGL2,
-                              &capset2_max_ver,
-                              &capset2_max_size);
+                               &capset2_max_ver,
+                               &capset2_max_size);
+    num_capsets += capset2_max_ver ? 1 : 0;
+
+    virgl_renderer_get_cap_set(VIRTIO_GPU_CAPSET_VENUS,
+                               &capset2_max_ver,
+                               &capset2_max_size);
+    num_capsets += capset2_max_size ? 1 : 0;
 
-    return capset2_max_ver ? 2 : 1;
+    return num_capsets;
 }
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:59:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656556.1024839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFV0n-0005b0-Ij; Tue, 19 Dec 2023 07:59:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656556.1024839; Tue, 19 Dec 2023 07:59:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFV0n-0005at-FZ; Tue, 19 Dec 2023 07:59:33 +0000
Received: by outflank-mailman (input) for mailman id 656556;
 Tue, 19 Dec 2023 07:59: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=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUxE-0000yA-Fl
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:55:52 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20631.outbound.protection.outlook.com
 [2a01:111:f400:fe59::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 063eb7e9-9e44-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 08:55:50 +0100 (CET)
Received: from MW4PR04CA0344.namprd04.prod.outlook.com (2603:10b6:303:8a::19)
 by SA1PR12MB8141.namprd12.prod.outlook.com (2603:10b6:806:339::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:55:46 +0000
Received: from CO1PEPF000044FC.namprd21.prod.outlook.com
 (2603:10b6:303:8a:cafe::81) by MW4PR04CA0344.outlook.office365.com
 (2603:10b6:303:8a::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:55:46 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044FC.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.7 via Frontend Transport; Tue, 19 Dec 2023 07:55:45 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:55:38 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 063eb7e9-9e44-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lxH248a8VlMQAguQtWmaf/Oc/jwXb6GLZ6zDi8VFzT5Bq1aHQWymtG500mUtv44zW9X6VqOlQ+wg1ACYIW4QO7V9dFN+2l/n9sraBx+niuFgO3ur2jhbdvZiJdB/HcWoN2/qikcr9B31zrPPnwvLDLeCO38p5PwrWUZwPVzNbXBcwY4rWlQrLTDp0nVrdTmCjZCfNGoIetDRyMVifnvepTc8breZK/8i2DvJV4XaDv7qqRhJxEdnUR+bnrauU8wX9QYCRtQgO9Rd7hOHgOsnHua/TJ7c1563QlrPQq1mY0yYDE/6wKcvJVMC6tJcZ+GI5zIxu7jgQaOwGtXURwFdkQ==
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=6bw1GHQ80hwkCkmkiyxUbfkBX9AiWfFOviT+2UNp4k4=;
 b=T83rQaw46Mg11PJZKYR736WaF5G57oeZ8ojfsbJUUHhEGMBT+QkDCKLKfaKWfgzehOfq1qRQAQAEjnKyVmyKnILih2Z8FIkupNJBSk8zV06MBKm5y18Usqo6BVi7LAtwP+kV276cMvlPEvYcvP1e30LtNPIIf4o3OJMbuwqhrs5o/wImYo9UKwV8el8yMddsI7ndbBXGJXtqIXU2E9wsk08aKvnKVzHMianr8oxlqQhDVa0OdgCx4jX+Qxxn8k/OTlwKFyv4+raUL4MxlYq6C/8f4ZzKDNZun+GnyHuG3bYfuHGciwbejGBw/PZ99y5Y0mNs+sApw+RfXApvFR4AQA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=6bw1GHQ80hwkCkmkiyxUbfkBX9AiWfFOviT+2UNp4k4=;
 b=ogWVAZA1GUrvbiA1SpiHDqETImkkK1VQYA+vKjmm7rCxoiWNbazdWdfaLV7UKX+AC0Qu/lLzMEVzZKORwMb+28RX/vT+fEn+ry1y55vGjGoj23b4R4j72sUvDKIwelq9HdtqjDODLwfQ7RMskJeVjewvoEHvuQJzYMeeNojA+tA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 11/11] virtio-gpu: make blob scanout use dmabuf fd
Date: Tue, 19 Dec 2023 15:53:20 +0800
Message-ID: <20231219075320.165227-12-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044FC:EE_|SA1PR12MB8141:EE_
X-MS-Office365-Filtering-Correlation-Id: d7b6ddd3-053f-4938-68f5-08dc0067e860
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	2ju7LSNow33RojR281hoe4o+6CoqX1jc20JLHbzOSWR5Ld1uJF691cmiR3/wZzY3guM7PdtTTBw+oScGhpdpWPtOFgNDwKmxf2vNZ9ic6ua8G+cqF8AoyOKNaFtDZ4jIh+FNpMoMXJWez2kFGog+T2TatW+wKdLNGlnWReqwoOfXdaDnSFODRsGD8aR4yUTl45W7hWoldylopexd0kc7KLVtol8CeazsjzXupaS4ySVJgJYvJhlguXve3ORcXtV0iUey8NksmZDnTkPKHRE/11/VUKxAiFLXTAmYzLDzTWhied1m+uyeqArnrmk7t4/7g4v7VK3b0CwDiwpUSLwvbtYBLRIJwvpf2AEYjjsFuCc4/rHKKScus8fSmh13B71G7a8IaWL055wjJ3tvxChVUHOB1e4SoBEhmnwLtMV8yh606h7eWO6nbtHmKx3yhTafe1FGTaoMfo3dLDVRbmfNuPMeRH0BZ+OaoTZ2Dg1hjkUsa99uOT2od5d1V+c4ouHTppDuqlweybOxRs+uwpqv47sx/vgGdgxnfLf1nzo09iUHgfDUYJOSZTk2dngx5t4l9kNifdAS7IgLWSEuyHe5dY3TflcHzYJKgpUUaxDtPNaWO7nndqq9krUokgzkUD64WDmGJFhwBiADUOgzPk+Xeit+Fq2jdNr4xNVEmtYQvEM15ISM2+H/Whef7Ovadc/IqfiiHjcS40EpNFzkhzCwSOVvKOCYop6pxaOs7fvxqV0gEE9BR6TsoO6c0E1ulnRty80eW39oldDuFL9QXKgjOw+g5m6a9QJPRZqfN2o7Hj8=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(376002)(346002)(39860400002)(230922051799003)(1800799012)(82310400011)(451199024)(186009)(64100799003)(46966006)(36840700001)(40470700004)(40480700001)(478600001)(2616005)(1076003)(70586007)(336012)(426003)(6666004)(83380400001)(316002)(54906003)(110136005)(5660300002)(7696005)(47076005)(8676002)(8936002)(4326008)(26005)(36860700001)(70206006)(16526019)(7416002)(2906002)(40460700003)(81166007)(356005)(82740400003)(41300700001)(921008)(86362001)(36756003)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:55:45.8312
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d7b6ddd3-053f-4938-68f5-08dc0067e860
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044FC.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8141

From: Robert Beckett <bob.beckett@collabora.com>

This relies on a virglrenderer change to include the dmabuf fd when
returning resource info.

Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
---

Changes in v6:
- Add scanout_blob function for virtio-gpu-virgl.
- Update for new virgl_gpu_resource.

 hw/display/virtio-gpu-virgl.c  | 104 +++++++++++++++++++++++++++++++++
 hw/display/virtio-gpu.c        |   4 +-
 include/hw/virtio/virtio-gpu.h |   6 ++
 3 files changed, 112 insertions(+), 2 deletions(-)

diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index c523a6717a..c384225a98 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -18,6 +18,7 @@
 #include "hw/virtio/virtio.h"
 #include "hw/virtio/virtio-gpu.h"
 #include "hw/virtio/virtio-gpu-bswap.h"
+#include "hw/virtio/virtio-gpu-pixman.h"
 
 #include "ui/egl-helpers.h"
 
@@ -726,6 +727,106 @@ static void virgl_cmd_resource_unmap_blob(VirtIOGPU *g,
     object_unparent(OBJECT(mr));
 }
 
+static void virgl_cmd_set_scanout_blob(VirtIOGPU *g,
+                                       struct virtio_gpu_ctrl_command *cmd)
+{
+    struct virgl_gpu_resource *vres;
+    struct virtio_gpu_framebuffer fb = { 0 };
+    struct virtio_gpu_set_scanout_blob ss;
+    struct virgl_renderer_resource_info info;
+    uint64_t fbend;
+
+    VIRTIO_GPU_FILL_CMD(ss);
+    virtio_gpu_scanout_blob_bswap(&ss);
+    trace_virtio_gpu_cmd_set_scanout_blob(ss.scanout_id, ss.resource_id,
+                                          ss.r.width, ss.r.height, ss.r.x,
+                                          ss.r.y);
+
+    if (ss.scanout_id >= g->parent_obj.conf.max_outputs) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: illegal scanout id specified %d",
+                      __func__, ss.scanout_id);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID;
+        return;
+    }
+
+    if (ss.resource_id == 0) {
+        virtio_gpu_disable_scanout(g, ss.scanout_id);
+        return;
+    }
+
+    if (ss.width < 16 ||
+        ss.height < 16 ||
+        ss.r.x + ss.r.width > ss.width ||
+        ss.r.y + ss.r.height > ss.height) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: illegal scanout %d bounds for"
+                      " resource %d, rect (%d,%d)+%d,%d, fb %d %d\n",
+                      __func__, ss.scanout_id, ss.resource_id,
+                      ss.r.x, ss.r.y, ss.r.width, ss.r.height,
+                      ss.width, ss.height);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER;
+        return;
+    }
+
+    if (!console_has_gl(g->parent_obj.scanout[ss.scanout_id].con)) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: unable to scanout blot without GL!\n", __func__);
+        return;
+    }
+
+    vres = virgl_gpu_find_resource(g, ss.resource_id);
+    if (!vres) {
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "%s: illegal resource specified %d\n",
+                      __func__, ss.resource_id);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+    if (virgl_renderer_resource_get_info(ss.resource_id, &info)) {
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "%s: illegal virgl resource specified %d\n",
+                      __func__, ss.resource_id);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+    if (!vres->res.dmabuf_fd && info.fd)
+        vres->res.dmabuf_fd = info.fd;
+
+    fb.format = virtio_gpu_get_pixman_format(ss.format);
+    if (!fb.format) {
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "%s: host couldn't handle guest format %d\n",
+                      __func__, ss.format);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER;
+        return;
+    }
+
+    fb.bytes_pp = DIV_ROUND_UP(PIXMAN_FORMAT_BPP(fb.format), 8);
+    fb.width = ss.width;
+    fb.height = ss.height;
+    fb.stride = ss.strides[0];
+    fb.offset = ss.offsets[0] + ss.r.x * fb.bytes_pp + ss.r.y * fb.stride;
+
+    fbend = fb.offset;
+    fbend += fb.stride * (ss.r.height - 1);
+    fbend += fb.bytes_pp * ss.r.width;
+    if (fbend > vres->res.blob_size) {
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "%s: fb end out of range\n",
+                      __func__);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER;
+        return;
+    }
+
+    g->parent_obj.enable = 1;
+    if (virtio_gpu_update_dmabuf(g, ss.scanout_id, &vres->res,
+                                 &fb, &ss.r)) {
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "%s: failed to update dmabuf\n", __func__);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER;
+        return;
+    }
+    virtio_gpu_update_scanout(g, ss.scanout_id, &vres->res, &ss.r);
+}
+
 #endif /* HAVE_VIRGL_RESOURCE_BLOB */
 
 void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
@@ -807,6 +908,9 @@ void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
     case VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB:
         virgl_cmd_resource_unmap_blob(g, cmd);
         break;
+    case VIRTIO_GPU_CMD_SET_SCANOUT_BLOB:
+        virgl_cmd_set_scanout_blob(g, cmd);
+        break;
 #endif /* HAVE_VIRGL_RESOURCE_BLOB */
     default:
         cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 466debb256..492f578b4b 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -380,7 +380,7 @@ static void virtio_gpu_resource_create_blob(VirtIOGPU *g,
     QTAILQ_INSERT_HEAD(&g->reslist, res, next);
 }
 
-static void virtio_gpu_disable_scanout(VirtIOGPU *g, int scanout_id)
+void virtio_gpu_disable_scanout(VirtIOGPU *g, int scanout_id)
 {
     struct virtio_gpu_scanout *scanout = &g->parent_obj.scanout[scanout_id];
     struct virtio_gpu_simple_resource *res;
@@ -592,7 +592,7 @@ static void virtio_unref_resource(pixman_image_t *image, void *data)
     pixman_image_unref(data);
 }
 
-static void virtio_gpu_update_scanout(VirtIOGPU *g,
+void virtio_gpu_update_scanout(VirtIOGPU *g,
                                       uint32_t scanout_id,
                                       struct virtio_gpu_simple_resource *res,
                                       struct virtio_gpu_rect *r)
diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
index 76b410fe91..ac2adfb607 100644
--- a/include/hw/virtio/virtio-gpu.h
+++ b/include/hw/virtio/virtio-gpu.h
@@ -332,6 +332,12 @@ int virtio_gpu_update_dmabuf(VirtIOGPU *g,
                              struct virtio_gpu_framebuffer *fb,
                              struct virtio_gpu_rect *r);
 
+void virtio_gpu_update_scanout(VirtIOGPU *g,
+                               uint32_t scanout_id,
+                               struct virtio_gpu_simple_resource *res,
+                               struct virtio_gpu_rect *r);
+void virtio_gpu_disable_scanout(VirtIOGPU *g, int scanout_id);
+
 /* virtio-gpu-3d.c */
 void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
                                   struct virtio_gpu_ctrl_command *cmd);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 07:59:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 07:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656557.1024849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFV0o-0005pq-QG; Tue, 19 Dec 2023 07:59:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656557.1024849; Tue, 19 Dec 2023 07:59: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 1rFV0o-0005pd-NG; Tue, 19 Dec 2023 07:59:34 +0000
Received: by outflank-mailman (input) for mailman id 656557;
 Tue, 19 Dec 2023 07:59:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUwq-0008Dp-IU
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:55:28 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062d.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f86c8e70-9e43-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 08:55:27 +0100 (CET)
Received: from MW4PR04CA0289.namprd04.prod.outlook.com (2603:10b6:303:89::24)
 by CH2PR12MB4970.namprd12.prod.outlook.com (2603:10b6:610:67::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:55:17 +0000
Received: from CO1PEPF000044F6.namprd21.prod.outlook.com
 (2603:10b6:303:89:cafe::91) by MW4PR04CA0289.outlook.office365.com
 (2603:10b6:303:89::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:55:17 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044F6.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.7113.7 via Frontend Transport; Tue, 19 Dec 2023 07:55:17 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:54:53 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f86c8e70-9e43-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iS4S9wtvL36H86vZCnZXd7S2c0lyWt0TmPi2VaBBbi5+F6xv4up57642NZbbSL0sdo9LdQ+HqX1q4OtzBn4ZOISSlwS+IbpfrBbbDTvbtjWmGymmNT7ma/VGodvEjQxrlJfaiM/97E6NqwU/3DfruQedGZjGn6GfsomIt77LcLdLjDWMrThAKTAK8WX2kcFu1hAk2BvOYOwNEx+jWGczFyVt2PXVwzZml9k1+/nv/A7zbbDQ2iSuF2QaCxBnC/89WAdSUip9onZxYFwa1TwjYRpvqJCJ86OsyQEkcFC0WiwM8wPxprFxN42yQQTM1o3McZVxdoDK4pStEssS8hNkYw==
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=vt3tmGHLqM9+7n0/5+P62gCua8Pm5kQUTyV4m0KDXS4=;
 b=ZX/qGxA4ed5TNIvLK0N3qHsYF7l2EbuqqgotqPpDwVKSbRXau8dvXV8PWTLvnoJHYAJSPwC50uGtiG0dqfP+EfOK2P9qKAXpdNwj3L9Nh+wgpxrjtWDzIgPQ7seIcQV8fj6Z2nH+Iij3egkiSbgNfKki2icwM/vEaRx54VdHWaszKAgSUoUtg8vnr+N94sWGRqtCAw5oPbqzWYvwbHX/3Dxeldeo9iN0/H8mio+lZWCwP6tAFEuXuAFFZIEYoqt8Ex85/wJPisCv48h1LoVnT1jOhw34ckUYeqFKeHrdqXuL8DMFb4SAd7PpCICnvjae53y3izwYk9Xfvyx94IzvYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=vt3tmGHLqM9+7n0/5+P62gCua8Pm5kQUTyV4m0KDXS4=;
 b=oDjL93dgjASP5ycrNb21J5ykX9i5CioglHti533n/DHdiCyc2DFxh8Mt2law6cZA56Y+yqPjAQHu17GdKCwQA2MV7StzWZpY3kpGK+YkQ2lw43udBfaUhHlVQSg3LsGfvvPQfuTZ8Dq3C6BFHIvU/ncSD+2tjbG0DFVT1dRIIJQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Antonio Caggiano
	<antonio.caggiano@collabora.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 07/11] virtio-gpu: Handle resource blob commands
Date: Tue, 19 Dec 2023 15:53:16 +0800
Message-ID: <20231219075320.165227-8-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044F6:EE_|CH2PR12MB4970:EE_
X-MS-Office365-Filtering-Correlation-Id: e62565d8-1199-4361-53ca-08dc0067d749
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	S7nIgxtub/IUXQ9SHuEq3QXmj+SF/FEwnP9Ov1Qhz2bXljfpmKJIbYesXimedsgG1l0DP6AAhHZ4yCt9Whwnyh1vMa3CIw4TxeGybefyZ1RPBhLu08QLqHG4gR+Jm2+lG5KaN5RDJa2BdGoucHHJDtukpGE+gZwFcPXQbs+BUHDB67lOMZ5oYU1DYs03PP7ZgwPFX7DQO3iTC4ZfJJr4WTMmZVsM3iTD7u77IjNR7L45jn2URBjRutoUSO054RRNMsS5pZTfnBl+7Y5l68sZ2Veel8B3mm0KFvNcqXertK1owSjESObgQ4Gy4HhVwMXSpcw8g7HtV3xvBx6ofsJLeh6fy5yn9hUYQP1vkfc78cjlpG40JObWaL85IeuQyc8X4dMyWxNz/0muaYhQ+v/FfMvzxq32cN1vr4m9we4oOtcNRnZetghfK467gqqnl4fxOn9BOcWlU2joscZux4LNL2+PJHMiWt1ImydfovKp7DaBC9tWAVKB5Sm2wuv2WMYa+O5yhJB2dYN1ZNhWfhZvAKbOjgkq0aUFVlX8qOaE9/dJ/6hScqdmxi4esJK4uksOqSg2V66lQaQgNbCLxXOuWtzxNsCidhU+4qKzaUZ1txeSxD+9V2uu/4hWcqk08eyooy0Ld7/b0Me0VBI/S4vFi4jIJv08NFbSQc/hLsMCyu0q6wxA9V50x0ZUUWxKxgsSu+3dWgKdxy0/xUN/EJnuLyfAG9QU6yLpvgkjD2y7bd9HxC9Kx3Vrm0VjuT5sgjLa0T5suigm/8okILM/icJ4fEuz/uF1B1M46wHUDNm69w4=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(396003)(346002)(376002)(39860400002)(230922051799003)(82310400011)(1800799012)(451199024)(186009)(64100799003)(46966006)(36840700001)(40470700004)(7696005)(36756003)(921008)(83380400001)(316002)(7416002)(426003)(336012)(110136005)(70206006)(40480700001)(30864003)(54906003)(70586007)(8676002)(4326008)(47076005)(8936002)(5660300002)(36860700001)(2906002)(6666004)(26005)(86362001)(16526019)(1076003)(478600001)(2616005)(41300700001)(82740400003)(40460700003)(81166007)(356005)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:55:17.1431
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e62565d8-1199-4361-53ca-08dc0067d749
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F6.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4970

From: Antonio Caggiano <antonio.caggiano@collabora.com>

Support BLOB resources creation, mapping and unmapping by calling the
new stable virglrenderer 0.10 interface. Only enabled when available and
via the blob config. E.g. -device virtio-vga-gl,blob=true

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
---

Changes in v6:
- Use new struct virgl_gpu_resource.
- Unmap, unref and destroy the resource only after the memory region
  has been completely removed.
- In unref check whether the resource is still mapped.
- In unmap_blob check whether the resource has been already unmapped.
- Fix coding style

 hw/display/virtio-gpu-virgl.c | 274 +++++++++++++++++++++++++++++++++-
 hw/display/virtio-gpu.c       |   4 +-
 meson.build                   |   4 +
 3 files changed, 276 insertions(+), 6 deletions(-)

diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index faab374336..5a3a292f79 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -17,6 +17,7 @@
 #include "trace.h"
 #include "hw/virtio/virtio.h"
 #include "hw/virtio/virtio-gpu.h"
+#include "hw/virtio/virtio-gpu-bswap.h"
 
 #include "ui/egl-helpers.h"
 
@@ -24,8 +25,62 @@
 
 struct virgl_gpu_resource {
     struct virtio_gpu_simple_resource res;
+    uint32_t ref;
+    VirtIOGPU *g;
+
+#ifdef HAVE_VIRGL_RESOURCE_BLOB
+    /* only blob resource needs this region to be mapped as guest mmio */
+    MemoryRegion *region;
+#endif
 };
 
+static void vres_get_ref(struct virgl_gpu_resource *vres)
+{
+    uint32_t ref;
+
+    ref = qatomic_fetch_inc(&vres->ref);
+    g_assert(ref < INT_MAX);
+}
+
+static void virgl_resource_destroy(struct virgl_gpu_resource *vres)
+{
+    struct virtio_gpu_simple_resource *res;
+    VirtIOGPU *g;
+
+    if (!vres) {
+        return;
+    }
+
+    g = vres->g;
+    res = &vres->res;
+    QTAILQ_REMOVE(&g->reslist, res, next);
+    virtio_gpu_cleanup_mapping(g, res);
+    g_free(vres);
+}
+
+static void virgl_resource_unref(struct virgl_gpu_resource *vres)
+{
+    struct virtio_gpu_simple_resource *res;
+
+    if (!vres) {
+        return;
+    }
+
+    res = &vres->res;
+    virgl_renderer_resource_detach_iov(res->resource_id, NULL, NULL);
+    virgl_renderer_resource_unref(res->resource_id);
+}
+
+static void vres_put_ref(struct virgl_gpu_resource *vres)
+{
+    g_assert(vres->ref > 0);
+
+    if (qatomic_fetch_dec(&vres->ref) == 1) {
+        virgl_resource_unref(vres);
+        virgl_resource_destroy(vres);
+    }
+}
+
 static struct virgl_gpu_resource *
 virgl_gpu_find_resource(VirtIOGPU *g, uint32_t resource_id)
 {
@@ -59,6 +114,8 @@ static void virgl_cmd_create_resource_2d(VirtIOGPU *g,
                                        c2d.width, c2d.height);
 
     vres = g_new0(struct virgl_gpu_resource, 1);
+    vres_get_ref(vres);
+    vres->g = g;
     vres->res.width = c2d.width;
     vres->res.height = c2d.height;
     vres->res.format = c2d.format;
@@ -91,6 +148,8 @@ static void virgl_cmd_create_resource_3d(VirtIOGPU *g,
                                        c3d.width, c3d.height, c3d.depth);
 
     vres = g_new0(struct virgl_gpu_resource, 1);
+    vres_get_ref(vres);
+    vres->g = g;
     vres->res.width = c3d.width;
     vres->res.height = c3d.height;
     vres->res.format = c3d.format;
@@ -126,12 +185,21 @@ static void virgl_cmd_resource_unref(VirtIOGPU *g,
         return;
     }
 
-    virgl_renderer_resource_detach_iov(unref.resource_id, NULL, NULL);
-    virgl_renderer_resource_unref(unref.resource_id);
+#ifdef HAVE_VIRGL_RESOURCE_BLOB
+    if (vres->region) {
+        VirtIOGPUBase *b = VIRTIO_GPU_BASE(g);
+        MemoryRegion *mr = vres->region;
+
+        warn_report("%s: blob resource %d not unmapped",
+                    __func__, unref.resource_id);
+        vres->region = NULL;
+        memory_region_set_enabled(mr, false);
+        memory_region_del_subregion(&b->hostmem, mr);
+        object_unparent(OBJECT(mr));
+    }
+#endif /* HAVE_VIRGL_RESOURCE_BLOB */
 
-    QTAILQ_REMOVE(&g->reslist, &vres->res, next);
-    virtio_gpu_cleanup_mapping(g, &vres->res);
-    g_free(vres);
+    vres_put_ref(vres);
 }
 
 static void virgl_cmd_context_create(VirtIOGPU *g,
@@ -470,6 +538,191 @@ static void virgl_cmd_get_capset(VirtIOGPU *g,
     g_free(resp);
 }
 
+#ifdef HAVE_VIRGL_RESOURCE_BLOB
+
+static void virgl_resource_unmap(struct virgl_gpu_resource *vres)
+{
+    if (!vres) {
+        return;
+    }
+
+    virgl_renderer_resource_unmap(vres->res.resource_id);
+
+    vres_put_ref(vres);
+}
+
+static void virgl_resource_blob_async_unmap(void *obj)
+{
+    MemoryRegion *mr = MEMORY_REGION(obj);
+    struct virgl_gpu_resource *vres = mr->opaque;
+
+    virgl_resource_unmap(vres);
+
+    g_free(obj);
+}
+
+static void virgl_cmd_resource_create_blob(VirtIOGPU *g,
+                                           struct virtio_gpu_ctrl_command *cmd)
+{
+    struct virgl_gpu_resource *vres;
+    struct virtio_gpu_resource_create_blob cblob;
+    struct virgl_renderer_resource_create_blob_args virgl_args = { 0 };
+    int ret;
+
+    VIRTIO_GPU_FILL_CMD(cblob);
+    virtio_gpu_create_blob_bswap(&cblob);
+    trace_virtio_gpu_cmd_res_create_blob(cblob.resource_id, cblob.size);
+
+    if (cblob.resource_id == 0) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource id 0 is not allowed\n",
+                      __func__);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
+    vres = virgl_gpu_find_resource(g, cblob.resource_id);
+    if (vres) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource already exists %d\n",
+                      __func__, cblob.resource_id);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
+    vres = g_new0(struct virgl_gpu_resource, 1);
+    vres_get_ref(vres);
+    vres->g = g;
+    vres->res.resource_id = cblob.resource_id;
+    vres->res.blob_size = cblob.size;
+
+    if (cblob.blob_mem != VIRTIO_GPU_BLOB_MEM_HOST3D) {
+        ret = virtio_gpu_create_mapping_iov(g, cblob.nr_entries, sizeof(cblob),
+                                            cmd, &vres->res.addrs,
+                                            &vres->res.iov, &vres->res.iov_cnt);
+        if (!ret) {
+            g_free(vres);
+            cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
+            return;
+        }
+    }
+
+    QTAILQ_INSERT_HEAD(&g->reslist, &vres->res, next);
+
+    virgl_args.res_handle = cblob.resource_id;
+    virgl_args.ctx_id = cblob.hdr.ctx_id;
+    virgl_args.blob_mem = cblob.blob_mem;
+    virgl_args.blob_id = cblob.blob_id;
+    virgl_args.blob_flags = cblob.blob_flags;
+    virgl_args.size = cblob.size;
+    virgl_args.iovecs = vres->res.iov;
+    virgl_args.num_iovs = vres->res.iov_cnt;
+
+    ret = virgl_renderer_resource_create_blob(&virgl_args);
+    if (ret) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: virgl blob create error: %s\n",
+                      __func__, strerror(-ret));
+        cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
+    }
+}
+
+static void virgl_cmd_resource_map_blob(VirtIOGPU *g,
+                                        struct virtio_gpu_ctrl_command *cmd)
+{
+    struct virgl_gpu_resource *vres;
+    struct virtio_gpu_resource_map_blob mblob;
+    int ret;
+    void *data;
+    uint64_t size;
+    struct virtio_gpu_resp_map_info resp;
+    VirtIOGPUBase *b = VIRTIO_GPU_BASE(g);
+
+    VIRTIO_GPU_FILL_CMD(mblob);
+    virtio_gpu_map_blob_bswap(&mblob);
+
+    if (mblob.resource_id == 0) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource id 0 is not allowed\n",
+                      __func__);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
+    vres = virgl_gpu_find_resource(g, mblob.resource_id);
+    if (!vres) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource does not exist %d\n",
+                      __func__, mblob.resource_id);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+    if (vres->region) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource already mapped %d\n",
+                      __func__, mblob.resource_id);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
+    ret = virgl_renderer_resource_map(vres->res.resource_id, &data, &size);
+    if (ret) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource map error: %s\n",
+                      __func__, strerror(-ret));
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
+    vres_get_ref(vres);
+    vres->region = g_new0(MemoryRegion, 1);
+    memory_region_init_ram_ptr(vres->region, OBJECT(g), NULL, size, data);
+    vres->region->opaque = vres;
+    OBJECT(vres->region)->free = virgl_resource_blob_async_unmap;
+    memory_region_add_subregion(&b->hostmem, mblob.offset, vres->region);
+    memory_region_set_enabled(vres->region, true);
+
+    memset(&resp, 0, sizeof(resp));
+    resp.hdr.type = VIRTIO_GPU_RESP_OK_MAP_INFO;
+    virgl_renderer_resource_get_map_info(mblob.resource_id, &resp.map_info);
+    virtio_gpu_ctrl_response(g, cmd, &resp.hdr, sizeof(resp));
+}
+
+static void virgl_cmd_resource_unmap_blob(VirtIOGPU *g,
+                                          struct virtio_gpu_ctrl_command *cmd)
+{
+    struct virgl_gpu_resource *vres;
+    struct virtio_gpu_resource_unmap_blob ublob;
+    VirtIOGPUBase *b = VIRTIO_GPU_BASE(g);
+    MemoryRegion *mr;
+
+    VIRTIO_GPU_FILL_CMD(ublob);
+    virtio_gpu_unmap_blob_bswap(&ublob);
+
+    if (ublob.resource_id == 0) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource id 0 is not allowed\n",
+                      __func__);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
+    vres = virgl_gpu_find_resource(g, ublob.resource_id);
+    if (!vres) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource does not exist %d\n",
+                      __func__, ublob.resource_id);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
+    if (!vres->region) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource already unmapped %d\n",
+                      __func__, ublob.resource_id);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
+    mr = vres->region;
+    vres->region = NULL;
+    memory_region_set_enabled(mr, false);
+    memory_region_del_subregion(&b->hostmem, mr);
+    object_unparent(OBJECT(mr));
+}
+
+#endif /* HAVE_VIRGL_RESOURCE_BLOB */
+
 void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
                                       struct virtio_gpu_ctrl_command *cmd)
 {
@@ -536,6 +789,17 @@ void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
     case VIRTIO_GPU_CMD_GET_EDID:
         virtio_gpu_get_edid(g, cmd);
         break;
+#ifdef HAVE_VIRGL_RESOURCE_BLOB
+    case VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB:
+        virgl_cmd_resource_create_blob(g, cmd);
+        break;
+    case VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB:
+        virgl_cmd_resource_map_blob(g, cmd);
+        break;
+    case VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB:
+        virgl_cmd_resource_unmap_blob(g, cmd);
+        break;
+#endif /* HAVE_VIRGL_RESOURCE_BLOB */
     default:
         cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
         break;
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 4c3ec9d0ea..8189c392dc 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1449,10 +1449,12 @@ void virtio_gpu_device_realize(DeviceState *qdev, Error **errp)
             return;
         }
 
+#ifndef HAVE_VIRGL_RESOURCE_BLOB
         if (virtio_gpu_virgl_enabled(g->parent_obj.conf)) {
-            error_setg(errp, "blobs and virgl are not compatible (yet)");
+            error_setg(errp, "Linked virglrenderer does not support blob resources");
             return;
         }
+#endif
     }
 
     if (!virtio_gpu_base_device_realize(qdev,
diff --git a/meson.build b/meson.build
index ea52ef1b9c..629407128e 100644
--- a/meson.build
+++ b/meson.build
@@ -1054,6 +1054,10 @@ if not get_option('virglrenderer').auto() or have_system or have_vhost_user_gpu
                          cc.has_function('virgl_renderer_context_create_with_flags',
                                          prefix: '#include <virglrenderer.h>',
                                          dependencies: virgl))
+    config_host_data.set('HAVE_VIRGL_RESOURCE_BLOB',
+                         cc.has_function('virgl_renderer_resource_create_blob',
+                                         prefix: '#include <virglrenderer.h>',
+                                         dependencies: virgl))
   endif
 endif
 rutabaga = not_found
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 08:00:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 08:00:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656564.1024858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFV1G-00077A-Ax; Tue, 19 Dec 2023 08:00:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656564.1024858; Tue, 19 Dec 2023 08:00: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 1rFV1G-00076K-6p; Tue, 19 Dec 2023 08:00:02 +0000
Received: by outflank-mailman (input) for mailman id 656564;
 Tue, 19 Dec 2023 08:00: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=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFUx4-0008Dp-BI
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 07:55:42 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2062e.outbound.protection.outlook.com
 [2a01:111:f400:7e83::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 010427a1-9e44-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 08:55:41 +0100 (CET)
Received: from MW4PR03CA0245.namprd03.prod.outlook.com (2603:10b6:303:b4::10)
 by CY8PR12MB7609.namprd12.prod.outlook.com (2603:10b6:930:99::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 07:55:38 +0000
Received: from CO1PEPF000044F9.namprd21.prod.outlook.com
 (2603:10b6:303:b4:cafe::69) by MW4PR03CA0245.outlook.office365.com
 (2603:10b6:303:b4::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 07:55:38 +0000
Received: from SATLEXMB04.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.7113.8 via Frontend Transport; Tue, 19 Dec 2023 07:55:38 +0000
Received: from hr-amd.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.34; Tue, 19 Dec
 2023 01:55:30 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 010427a1-9e44-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=b50qcdpOymzRlZCBYZZ06eMcPdqcfMoBSGjOqfsR9yFu2sxZRo1erO3xhRaHTOgaQb8KWEb074Jx2zpjG/Rp3PxVerllEpHQ5FgOulGx3rHN17vpz5hGb/e3YsAgY+8Rq9Ysu4cCQYTfkOVxCJaLGbMJ2aCkhKnnST/WdM922Lx7ngfu+rSqo9Az+1i/pWcPMuz2B1i2nUR/kgaB0REdJNauP6FYRvRNolz/y3whNXbGIHpwDPBnWMnaXQ410I72Xk/5Tj+ec/L2yJ4uoKnZgVvebMvxNn8OMSsJ+8L9+sWFiXennDphISsOdT34+DYRMl7GIatFua7VyTezvpu2Sg==
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=AvgusWKUlI0uMUDyWkUtYn1Wm+NitcLGw9FDbxFSIOA=;
 b=G7edWXkLeEbP9v6OmHRb/qvshgCg3EfjzZ838KSHTi21nWWLVnvMX9KZ+ua9GhAcMbSTstmChQ3N/7Kmn8VaSA0elcXvCVizYun6e9cYhWaVdxvJtpdYvCqebvQjWfMf95guEwrprVR+x8yVCM0c8mrQdh+UtQ3cVpwj+Zj14Kk1VGejQrPEm1NX61zuXQTIl9pgEffOJKbS6D8s+e5H75+mpzgS7OaMFl+oUpCs2vwkErGARRITWTQpiw1WFxyoUMI4uWJV3MheAFq+KAkiDjFWfEcbLngBxMorH2SyX9f08F9TsaW6amDIuNTA9EbQpz/FkKtVTVVMu6w0EQF1cQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=AvgusWKUlI0uMUDyWkUtYn1Wm+NitcLGw9FDbxFSIOA=;
 b=QSBVrwa4OPNsqr+LNeuzja4/IP3G8KCgWTtW1aIjNmhxxM/Ij5xf9JnuV5fuRa6TE2iwyOdixQFclBk2aDNqRVf08TatYjHqY8d+tvli+/Q7Ar/cY4bKdBTzV5imKji5+eTgII3Kgg+6SMhFHDo4eJGeXcTUsPTYPBNnMEbQW0Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?q?Alex=20Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alex Deucher <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>, "Honglei
 Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>, "Chen
 Jiqian" <Jiqian.Chen@amd.com>, Antonio Caggiano
	<antonio.caggiano@collabora.com>, Huang Rui <ray.huang@amd.com>
Subject: [PATCH v6 10/11] virtio-gpu: Initialize Venus
Date: Tue, 19 Dec 2023 15:53:19 +0800
Message-ID: <20231219075320.165227-11-ray.huang@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20231219075320.165227-1-ray.huang@amd.com>
References: <20231219075320.165227-1-ray.huang@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: CO1PEPF000044F9:EE_|CY8PR12MB7609:EE_
X-MS-Office365-Filtering-Correlation-Id: 4612d029-dba4-4586-d194-08dc0067e3fb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	xCLb+vKXrvOzJsJcYukuVIz0BQ+QbCuOItwXMTGhoJBEoahC3U7nTIzUz1mDNezKoY0L0QWTlCPp+WXkCxEEv0nRH0Q4tUR61MmiakDnU0HNyGMk7WgDfXgJBBXUhOag8qsFDwWSpVXevH8wxRdoPpkZhORNX9TFSAJFJOrE5ZNTPhRoQg+RA7Tsy/yAV5nG7nxiGBN68DuiqIYYBslU5zfVoCR/EzvwbH7+8lngqR481tl+t/8mn4ylM+SfmdeTWBSz5sd8JiGSoxwk7LO6xQqKh0pqld2BHCfclGlmPSBimwJthkCHpXE31GGZRt4unZETkGOskKfHz2lb5sT2OWuxgULRL3WFSfjdTeGxNbsepCGaOMMYSOMsCYBMV5Y3zlHREFH/6o8Wef/I245x1JH22wbntj3I56f8Yx5Xu+p/U7qlY+qd49PHlhIwyowq9/cZXTePdfh+vWjjf4ftD8RJBFbrGvOa4UhlRaP5aSa4p5b1hq5d04incxqSkuORiqLg3y10PB27HLeN90wZ4CjMniN66yox2Go1NlXXP4h+ceJ+03ewgQplO79Y1mYFQTUi9Jx03oDzjlXQX6wNXzpT1GMuNwfdT1LJpRb5KD48xIT4Zc9ZO4jpI1uYiDGWlI1j5Jkjd0jZO1xIopGBNPpG2guqfroaJEZzq8tTfmZBdvUtz4ksVrS9TJo+giAmVqF38Iqw9yS0MaqKYe7vENcq316I/tf2JmocGfA8l6onb6NIQx6euRDh2K4EMARUet90zc5WMBlm/ebirIxyCsRD1dn9zDKa2Mt1SQJ8JtY=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(39860400002)(346002)(396003)(376002)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(82310400011)(40470700004)(46966006)(36840700001)(40460700003)(1076003)(2616005)(336012)(426003)(26005)(16526019)(7696005)(36860700001)(83380400001)(5660300002)(7416002)(41300700001)(2906002)(4744005)(6666004)(478600001)(316002)(4326008)(8676002)(70206006)(70586007)(54906003)(110136005)(8936002)(82740400003)(86362001)(81166007)(356005)(36756003)(47076005)(921008)(40480700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 07:55:38.4768
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4612d029-dba4-4586-d194-08dc0067e3fb
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.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: CY8PR12MB7609

From: Antonio Caggiano <antonio.caggiano@collabora.com>

Request Venus when initializing VirGL.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
---

Changes in v6:
- Remove the unstable API flags check because virglrenderer is already 1.0.
- Squash the render server flag support into "Initialize Venus".

 hw/display/virtio-gpu-virgl.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index f35a751824..c523a6717a 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -964,6 +964,10 @@ int virtio_gpu_virgl_init(VirtIOGPU *g)
     }
 #endif
 
+#ifdef VIRGL_RENDERER_VENUS
+    flags |= VIRGL_RENDERER_VENUS | VIRGL_RENDERER_RENDER_SERVER;
+#endif
+
     ret = virgl_renderer_init(g, flags, &virtio_gpu_3d_cbs);
     if (ret != 0) {
         error_report("virgl could not be initialized: %d", ret);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 08:00:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 08:00:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656572.1024868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFV1h-0000R1-Vu; Tue, 19 Dec 2023 08:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656572.1024868; Tue, 19 Dec 2023 08: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 1rFV1h-0000Qu-T4; Tue, 19 Dec 2023 08:00:29 +0000
Received: by outflank-mailman (input) for mailman id 656572;
 Tue, 19 Dec 2023 08: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=aNFb=H6=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFV1g-0006W2-Aj
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 08:00:28 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id abdca79b-9e44-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 09:00:27 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 065DE4EE0738;
 Tue, 19 Dec 2023 09:00:27 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abdca79b-9e44-11ee-98eb-6d05b1d4d9a1
MIME-Version: 1.0
Date: Tue, 19 Dec 2023 09:00:27 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Simone Ballarin
 <simone.ballarin@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH v2 7/7] automation/eclair_analysis: avoid violation of
 MISRA Rule 2.1
In-Reply-To: <alpine.DEB.2.22.394.2312181743250.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702891792.git.nicola.vetrini@bugseng.com>
 <6bf425b3d01dc16297ef45e58c03b3ffd803b9e0.1702891792.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312181739560.3175268@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2312181743250.3175268@ubuntu-linux-20-04-desktop>
Message-ID: <8707dd8023b0e05efaf46e7afb3b85cb@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 2023-12-19 02:43, Stefano Stabellini wrote:
> On Mon, 18 Dec 2023, Stefano Stabellini wrote:
>> On Mon, 18 Dec 2023, Nicola Vetrini wrote:
>> > The presence of an unlinked object file triggers a violation
>> > of MISRA C Rule 2.1, which is deviated, as it's not part of
>> > the final Xen binary.
>> >
>> > No functional change.
>> >
>> > Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> 
>> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
>> 
>> 
>> > ---
>> >  automation/eclair_analysis/ECLAIR/deviations.ecl | 5 +++++
>> >  1 file changed, 5 insertions(+)
>> >
>> > diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> > index 85741a2c01a9..e3de0fb2adf8 100644
>> > --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> > +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> > @@ -28,6 +28,11 @@ not executable, and therefore it is safe for them to be unreachable."
>> >  -config=MC3R1.R2.1,ignored_stmts+={"any()", "pure_decl()"}
>> >  -doc_end
>> >
>> > ++-doc_begin="The following autogenerated file is not linked deliberately."
>> > ++-file_tag+={C_runtime_failures,"^automation/eclair_analysis/C-runtime-failures\\.rst\\.c$"}
>> > ++-config=MC3R1.R2.1,reports+={deliberate, "any_area(any_loc(file(C_runtime_failures)))"}
>> > ++-doc_end
> 
> Would it make sense to add it to exclude-list instead?

I don't think so, because if some documentation about runtime error that 
is supposed to be here is missing it won't be obvious that the file that 
needs to be fixed is this. Moreover, you'd need to put the path of the 
generated .c file there, which I'm not sure how well it would behave 
w.r.t. other tooling.

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 08:50:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 08:50:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656604.1024887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFVnX-0002OI-Ne; Tue, 19 Dec 2023 08:49:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656604.1024887; Tue, 19 Dec 2023 08:49: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 1rFVnX-0002OB-Ju; Tue, 19 Dec 2023 08:49:55 +0000
Received: by outflank-mailman (input) for mailman id 656604;
 Tue, 19 Dec 2023 08:49: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=mFOm=H6=intel.com=oliver.sang@srs-se1.protection.inumbo.net>)
 id 1rFVnV-0002Mr-S1
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 08:49:54 +0000
Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9083ac90-9e4b-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 09:49:51 +0100 (CET)
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 19 Dec 2023 00:49:42 -0800
Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83])
 by fmsmga002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 19 Dec 2023 00:49:38 -0800
Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.35; Tue, 19 Dec 2023 00:49:37 -0800
Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by
 fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35; Tue, 19 Dec 2023 00:49:36 -0800
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.35 via Frontend Transport; Tue, 19 Dec 2023 00:49:36 -0800
Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.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.35; Tue, 19 Dec 2023 00:49:36 -0800
Received: from LV3PR11MB8603.namprd11.prod.outlook.com (2603:10b6:408:1b6::9)
 by IA0PR11MB8419.namprd11.prod.outlook.com (2603:10b6:208:48b::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 08:49:23 +0000
Received: from LV3PR11MB8603.namprd11.prod.outlook.com
 ([fe80::1236:9a2e:5acd:a7f]) by LV3PR11MB8603.namprd11.prod.outlook.com
 ([fe80::1236:9a2e:5acd:a7f%3]) with mapi id 15.20.7091.034; Tue, 19 Dec 2023
 08:49:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9083ac90-9e4b-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1702975791; x=1734511791;
  h=date:from:to:cc:subject:message-id:mime-version;
  bh=sjp5EFzcj+qSu/mBTY2KvC15jZx4d080M1MfE1sHJHo=;
  b=bsAJU3uUwzJNbjvcZviHWfqu1cgCboALZesyj01bYzf5xiBuMnPiGdMR
   mJEhsCAgcWmzokocwgd48SHa4f5dTKrJ3UV8Gbyz+/wGdzYWa10FgAnU5
   0VXytIZulbSz6QEdJxxm9s9QTclIuT5P2SOU6U6kG4K6nMxoavnqRegNF
   tV7X8tVqPwirEmWoMSwtXrOhtwLQstPnRaVwoHRV0OMr44+D2qV4u4Y6Q
   Z5t5qEBJ4x6E9qZ/fVr62dp6a+f4lPVb87tDrpeyQRQkz+79OE10j3JjT
   qXz23WlV+1A7K2kzwjwN+5X9p4MCXS0who5x8Hg4EKeRKdZAVHPB3dC79
   Q==;
X-IronPort-AV: E=McAfee;i="6600,9927,10928"; a="380610337"
X-IronPort-AV: E=Sophos;i="6.04,287,1695711600"; 
   d="scan'208";a="380610337"
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10928"; a="894209583"
X-IronPort-AV: E=Sophos;i="6.04,287,1695711600"; 
   d="scan'208";a="894209583"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NDIfoNREHVyCYm0+qWFUcm5fO7T6WbHrz+6m0gG4XEpYShGwgdlCtuflpRgUFgOmZOIe+6LFPPZSrS9HlJIFfn1E2MZCEDB+W9aTI9xCZtJmMga+nNFwZ3RFjDMKZodPKWZvU33YqMoidpTJ6gc7jxe3O69BY8PtQa9kN/3a+cngZ4CHcM6XWu6AgeFzWB1DthXoXRpL2u1aNbeVMhKo8OHdA4V4Za8rxgWVF0vhG1u2JLD+g4VzSGINQGFdcevoRJOYpeuQFry+m5MQU6X063+IVPKlQZls9BxuatyPh0td5M2Lwv5N9kvkYdY9Fg6IihikVsYZuie/5e3xq5Yn/A==
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=uOXdzrJ6+1UHBG42aTYWmbfLvMzz57z2ASVhoKtIVOI=;
 b=Tf2F4zn00rKcMACL7EdBxyfF1Ty9pGBEmbUI3p7hR2FlBjcEnmS0FIhmAwCt/4YGNh75fMpM4QayJQAniNvEnRGmAKCLSodyDdlIS8wpGdr0Q8v0FIH7Q66Ig7s5ObALgSj++qEUeRoZzLXHyrKJH6jyKfYDgPzuKqv4ZsGAbqT+tihe7lcXZAfHaCyoxt+xT3TmgXak7M0or27LIrmL8gPeb/itCTycNpUSWgsBUytvEKFURFDNh7/7QgB7jlLL81c0mHgHC3b9NxhuNSLleFSB7t1BVFubvH3NGCcRYwblTQtlTRjJVsDNIBkHyHMexjsqwOcRx/xkhc4qS1ym3w==
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: Tue, 19 Dec 2023 16:49:14 +0800
From: kernel test robot <oliver.sang@intel.com>
To: Thomas Gleixner <tglx@linutronix.de>
CC: <oe-lkp@lists.linux.dev>, <lkp@intel.com>, <linux-kernel@vger.kernel.org>,
	Dave Hansen <dave.hansen@linux.intel.com>, Linus Torvalds
	<torvalds@linuxfoundation.org>, "Kirill A. Shutemov"
	<kirill.shutemov@linux.intel.com>, Borislav Petkov <bp@alien8.de>,
	<xen-devel@lists.xenproject.org>, <oliver.sang@intel.com>
Subject: [linus:master] [x86/entry]  be5341eb0d:
 WARNING:CPU:#PID:#at_int80_emulation
Message-ID: <202312191507.348721d2-oliver.sang@intel.com>
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
X-ClientProxiedBy: SI1PR02CA0042.apcprd02.prod.outlook.com
 (2603:1096:4:1f6::17) To LV3PR11MB8603.namprd11.prod.outlook.com
 (2603:10b6:408:1b6::9)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV3PR11MB8603:EE_|IA0PR11MB8419:EE_
X-MS-Office365-Filtering-Correlation-Id: db540eb1-6877-498c-b44b-08dc006f65ad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: +8Jq4Bl9NX7NXrxmk2o9VTeByu4flTIhwFgXQ62VtnyZ0G5r9nbDZy71yiEsuxUj6fF06DTe6/X9HkKxOB7I16PB7AX6uXHF+T0yeXRkZiOIp2UQtfrWMDa/asrjmLVoZxdDsN043eu+bX4/Sa6Q89/Yfl6IH1rDZQTbtAvSAWngHd8sqY4VEM6sYKr3UGwn67SOuMJXUsi8x2Vko0+9OJDvVRmmpILdxDAh7u5soIbuPcEiYgfZhxlXKsTy4/dhymCq0uhNygmpXCJnXgczIfhIjZyqy082cuN9p0D4ZZoO7VftmErqh66UMmfvlboP1FpqTgMfhluiwu2NMuhZj0pPoxcR6fsXvIoHfWyqGuF4RZYd+kF+FljzzHm/OU05/W8YWLqHXLVkpwwVG/GGjUSGxiWmPdgorVRuhbWn449UaL17OKjpXAVRQ97rhodSZc7DYrCucFzv+Ri4HF4tuY8Q+ehh6VISb+P+NN6KwkXHnLTWgTVVWwRzxDROzERRU0wmZZWIbomq9+iMxf86i0hTioI5l6yZe8CzC3+YCt/JTH8z6+UCB0vcBjhP/hmp/8T90MWiI/+FKNhMgq8pPAxvTE13mFqxWTucIxjExhUQ8OYyo8AHw2RMZjakaomAePA3uT8PvtUVzSvgtTRGyBvOYLQ3piNKeSiET6+tYRXOc+H5yI4v24ZFj6YPm9li
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:(13230031)(346002)(396003)(366004)(376002)(39860400002)(136003)(230922051799003)(230173577357003)(230273577357003)(186009)(1800799012)(451199024)(64100799003)(83380400001)(66946007)(2616005)(478600001)(6916009)(66476007)(316002)(54906003)(66556008)(38100700002)(6486002)(966005)(26005)(1076003)(8936002)(8676002)(4326008)(6506007)(45080400002)(6512007)(6666004)(5660300002)(2906002)(86362001)(82960400001)(36756003)(41300700001)(568244002);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?c/jYsxpGEkGq/A/w5KRYNzFUlSVD7co9epmlUh2ZiffI6IjkbzZq9t0NZb+c?=
 =?us-ascii?Q?h1OjtbmNyUuKbBFs/Z0/st107+4ULdVNyAw8Zlg3k0WQ6SSNyCH+H+oJ9cI/?=
 =?us-ascii?Q?ilZTJ0ZzJ98zIx5wsPcc/zD57tc1CEEd8onC17pR0egJ50HZDZXwRfqGJbFp?=
 =?us-ascii?Q?B6mHEjOlPdXpy3AzyjtUOP2Kwn5T3IkUuwZgEZW3rOlCuNPmvNIMmCtuYdol?=
 =?us-ascii?Q?LnczYgMt7/Qo3lhNyPfv1+vos8T7RnQJIMMI0UyVWAcryiXpouEWhCnj+SD5?=
 =?us-ascii?Q?HnEJEDU+qYqc0Wgx8GeaPFe+dGH0IL5Xt3kaF25M3qaQLHK5Q04gGWzM5exc?=
 =?us-ascii?Q?Ql/MRlU/pBUxzqL6c6XXcdneIcdwDY+If1EjobTKAjct3xm9Nixgk+ineFN+?=
 =?us-ascii?Q?xmvQCG+W40B8brLEQ+kmlKzZeB6Pma0g8JXfx2gqsdWAECN2mTCc+jaSj/8I?=
 =?us-ascii?Q?Djsa9F067lXoEu3laUoS07ETjPH35mgt6/tTFoGArwIhPU1Hiu4GO0xSG+tZ?=
 =?us-ascii?Q?jnm3RPlouEzsiHsw4WVzJD70giHP/oWr/JiQon0HMdfgl+8YqjOTxdQuvVjT?=
 =?us-ascii?Q?4p0Jm8raH0yMaNsjX11WWK/IKc1K0xYwsrD5CRv/bytw4ROvjUrI7pwl644O?=
 =?us-ascii?Q?7HQO3Oy5CTXPwdbE8lNtv54DHcLjPkmDg9pk0eq8470lWFDuTRJdr+Y8Cvxl?=
 =?us-ascii?Q?a0Ey5b4pY9dc7u3lKK/h5LSlEhI3yLUq75cf/hPz+pGwO5e9hjKeiT7GUzcq?=
 =?us-ascii?Q?KF4TdGuBzfgY1mv99XIkTF3/vs8A+cDCZxYiNHJOG2ZSZu9YxRDPlMuQA2BN?=
 =?us-ascii?Q?XDmJYLW6o/e1zjYMB+qGjCj6GnjknoQQKUIAK92sE+vOqDgEyTazMXbiKh+X?=
 =?us-ascii?Q?x2H29LcULcpfc7TSCWSkpSiDEz52pKlIiAu970xm6TNr+4nYNifaC2ecYUo8?=
 =?us-ascii?Q?ByzZ3COuTqORuxj/id7FXImh+utgxewTw0UoxiWeShpO87iTTxxoUl9YGC9c?=
 =?us-ascii?Q?CDrxooe9qnu+f3OT04dk+4zoZ+Mfa1kCnWTg+2RgNjhB+qJOArTi+mLw0+CI?=
 =?us-ascii?Q?LDtQzZ1oQBFKYMZoL1Ptpvl6PbO6vZr3Vfzjfo09BViqL0dWaV8GTO3Ps1xV?=
 =?us-ascii?Q?g9UawnoFLYJSXdIvHNwzu0np7s8smfKcII4skBjW4KJl2Z6LfR8aFwaXlq9r?=
 =?us-ascii?Q?RiHLgC9Ia9MTLSrgbaxmhj5iHAUA5YMjGCkiPUU1HiRNvbHHI+ufw++c+k3T?=
 =?us-ascii?Q?uLLqBlQG1UG7o2LV0c1IZIuovfYzdxcD13/OL4RaeY6G08BOhfrLjN9LVTSK?=
 =?us-ascii?Q?w9kZALYveX9QamzYDkXzrmYx2V3I+B5e5aoX1tI337SzO3KURb1umYN9pUdt?=
 =?us-ascii?Q?45aw+fvf9vXSAPEoc0SG+FuuT6DLReDof771ZXX+q4KYTk4ORnCV1xL95/iw?=
 =?us-ascii?Q?Z/17+XZMIdJsZVIpf6qBkolDIF9vxSkupkodl7FkxZwrobM8KRZTh+S/IXh9?=
 =?us-ascii?Q?fKvNvpf9B6cdNn1Lw3DtqmuEybg5VxtLrCRAsww9rbd2PpGyQptyXULMJ7xc?=
 =?us-ascii?Q?b/V+RLUJnmmsVPg4xbDZVaawexJGHPeJdaIhqdS2NglRYsbUEbwuOigaOc0c?=
 =?us-ascii?Q?xg=3D=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: db540eb1-6877-498c-b44b-08dc006f65ad
X-MS-Exchange-CrossTenant-AuthSource: LV3PR11MB8603.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 08:49:22.8645
 (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: WvQwqgSVDhd5t48a5beSP05HV2vTB4IanM/mezdq5ge4sTzycp80CJ9MKFky+ydvJ+4FBPLbOJEWz1OfS1gAjw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR11MB8419
X-OriginatorOrg: intel.com


hi, Thomas Gleixner,

as we understand, this commit be5341eb0d doesn't introduce new WARNING, it just
converts the WARING in another type.


b82a8dbd3d2f4563 be5341eb0d43b1e754799498bd2
---------------- ---------------------------
       fail:runs  %reproduction    fail:runs
           |             |             |
          9:9         -100%            :9     dmesg.WARNING:CPU:#PID:#at_do_int80_syscall_32
           :9          100%           9:9     dmesg.WARNING:CPU:#PID:#at_int80_emulation


however, we failed to bisect dmesg.WARNING:CPU:#PID:#at_do_int80_syscall_32.
at the same time, we are not sure enough if this WARNING worth to care? or it's
just due to our test config (we used a randconfig in this test which could be
got from below link).

so we just report to you what we observed in our tests, in case it's still
expose some potential problems, and maybe you could find correct owner to make
some code fix.


Hello,

kernel test robot noticed "WARNING:CPU:#PID:#at_int80_emulation" on:

commit: be5341eb0d43b1e754799498bd2e8756cc167a41 ("x86/entry: Convert INT 0x80 emulation to IDTENTRY")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master

[test failed on linux-next/master 11651f8cb2e88372d4ed523d909514dc9a613ea3]

in testcase: boot

compiler: clang-16
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G

(please refer to attached dmesg/kmsg for entire log/backtrace)



[ 13.481107][ T48] WARNING: CPU: 0 PID: 48 at int80_emulation (arch/x86/entry/common.c:164) 
[   13.481454][   T48] Modules linked in:
[   13.481655][   T48] CPU: 0 PID: 48 Comm: init Tainted: G                 N 6.7.0-rc4-00002-gbe5341eb0d43 #1
[ 13.482162][ T48] RIP: 0010:int80_emulation (arch/x86/entry/common.c:164) 
[ 13.482437][ T48] Code: 01 00 00 77 43 89 c1 48 81 f9 c9 01 00 00 48 19 c9 21 c1 48 89 df 4c 8b 1c cd 90 12 20 9a 41 ba 27 cb d4 4f 45 03 53 fc 74 02 <0f> 0b 41 ff d3 48 89 c1 48 89 4b 50 90 48 89 df 5b 41 5e 31 c0 31
All code
========
   0:	01 00                	add    %eax,(%rax)
   2:	00 77 43             	add    %dh,0x43(%rdi)
   5:	89 c1                	mov    %eax,%ecx
   7:	48 81 f9 c9 01 00 00 	cmp    $0x1c9,%rcx
   e:	48 19 c9             	sbb    %rcx,%rcx
  11:	21 c1                	and    %eax,%ecx
  13:	48 89 df             	mov    %rbx,%rdi
  16:	4c 8b 1c cd 90 12 20 	mov    -0x65dfed70(,%rcx,8),%r11
  1d:	9a 
  1e:	41 ba 27 cb d4 4f    	mov    $0x4fd4cb27,%r10d
  24:	45 03 53 fc          	add    -0x4(%r11),%r10d
  28:	74 02                	je     0x2c
  2a:*	0f 0b                	ud2		<-- trapping instruction
  2c:	41 ff d3             	call   *%r11
  2f:	48 89 c1             	mov    %rax,%rcx
  32:	48 89 4b 50          	mov    %rcx,0x50(%rbx)
  36:	90                   	nop
  37:	48 89 df             	mov    %rbx,%rdi
  3a:	5b                   	pop    %rbx
  3b:	41 5e                	pop    %r14
  3d:	31 c0                	xor    %eax,%eax
  3f:	31                   	.byte 0x31

Code starting with the faulting instruction
===========================================
   0:	0f 0b                	ud2
   2:	41 ff d3             	call   *%r11
   5:	48 89 c1             	mov    %rax,%rcx
   8:	48 89 4b 50          	mov    %rcx,0x50(%rbx)
   c:	90                   	nop
   d:	48 89 df             	mov    %rbx,%rdi
  10:	5b                   	pop    %rbx
  11:	41 5e                	pop    %r14
  13:	31 c0                	xor    %eax,%eax
  15:	31                   	.byte 0x31
[   13.483405][   T48] RSP: 0000:ffff9d1ffbbd7f40 EFLAGS: 00010a92
[   13.483713][   T48] RAX: 000000000000001b RBX: ffff9d1ffbbd7f58 RCX: 000000000000001b
[   13.484112][   T48] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff9d1ffbbd7f58
[   13.484510][   T48] RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000000002b
[   13.484910][   T48] R10: 00000000c26707b6 R11: ffffffff993719d0 R12: 0000000000000000
[   13.485314][   T48] R13: 0000000000000000 R14: 000000000000001b R15: 0000000000000000
[   13.485715][   T48] FS:  0000000000000000(0000) GS:ffffffff9a85c000(0063) knlGS:00000000f7fc7040
[   13.486168][   T48] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
[   13.486500][   T48] CR2: 00000000f7fc2204 CR3: 000000013b76a000 CR4: 00000000000406f0
[   13.486901][   T48] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   13.487299][   T48] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   13.487697][   T48] Call Trace:
[   13.487867][   T48]  <TASK>
[ 13.488018][ T48] ? __warn (kernel/panic.c:236 kernel/panic.c:677) 
[ 13.488229][ T48] ? int80_emulation (arch/x86/entry/common.c:164) 
[ 13.488474][ T48] ? report_cfi_failure (kernel/cfi.c:22) 
[ 13.488731][ T48] ? handle_cfi_failure (arch/x86/kernel/cfi.c:80) 
[ 13.488997][ T48] ? __cfi_sys_ni_posix_timers (kernel/time/posix-stubs.c:27) 
[ 13.489294][ T48] ? handle_bug (arch/x86/kernel/traps.c:238) 
[ 13.489514][ T48] ? exc_invalid_op (arch/x86/kernel/traps.c:258) 
[ 13.489753][ T48] ? asm_exc_invalid_op (arch/x86/include/asm/idtentry.h:568) 
[ 13.490017][ T48] ? __cfi_sys_ni_posix_timers (kernel/time/posix-stubs.c:27) 
[ 13.490306][ T48] ? int80_emulation (arch/x86/entry/common.c:164) 
[ 13.490552][ T48] asm_int80_emulation (arch/x86/include/asm/idtentry.h:573) 
[   13.490804][   T48] RIP: 0023:0xf7ed84cd
[ 13.491012][ T48] Code: eb bb 8d 76 00 83 c4 1c 5b 5e 5f 5d e9 0c f3 f6 ff e8 07 f3 f6 ff eb d4 66 90 66 90 90 89 da 8b 5c 24 04 b8 1b 00 00 00 cd 80 <89> d3 3d 01 f0 ff ff 0f 83 e6 f2 f6 ff c3 66 90 66 90 90 55 e8 4a
All code
========
   0:	eb bb                	jmp    0xffffffffffffffbd
   2:	8d 76 00             	lea    0x0(%rsi),%esi
   5:	83 c4 1c             	add    $0x1c,%esp
   8:	5b                   	pop    %rbx
   9:	5e                   	pop    %rsi
   a:	5f                   	pop    %rdi
   b:	5d                   	pop    %rbp
   c:	e9 0c f3 f6 ff       	jmp    0xfffffffffff6f31d
  11:	e8 07 f3 f6 ff       	call   0xfffffffffff6f31d
  16:	eb d4                	jmp    0xffffffffffffffec
  18:	66 90                	xchg   %ax,%ax
  1a:	66 90                	xchg   %ax,%ax
  1c:	90                   	nop
  1d:	89 da                	mov    %ebx,%edx
  1f:	8b 5c 24 04          	mov    0x4(%rsp),%ebx
  23:	b8 1b 00 00 00       	mov    $0x1b,%eax
  28:	cd 80                	int    $0x80
  2a:*	89 d3                	mov    %edx,%ebx		<-- trapping instruction
  2c:	3d 01 f0 ff ff       	cmp    $0xfffff001,%eax
  31:	0f 83 e6 f2 f6 ff    	jae    0xfffffffffff6f31d
  37:	c3                   	ret
  38:	66 90                	xchg   %ax,%ax
  3a:	66 90                	xchg   %ax,%ax
  3c:	90                   	nop
  3d:	55                   	push   %rbp
  3e:	e8                   	.byte 0xe8
  3f:	4a                   	rex.WX

Code starting with the faulting instruction
===========================================
   0:	89 d3                	mov    %edx,%ebx
   2:	3d 01 f0 ff ff       	cmp    $0xfffff001,%eax
   7:	0f 83 e6 f2 f6 ff    	jae    0xfffffffffff6f2f3
   d:	c3                   	ret
   e:	66 90                	xchg   %ax,%ax
  10:	66 90                	xchg   %ax,%ax
  12:	90                   	nop
  13:	55                   	push   %rbp
  14:	e8                   	.byte 0xe8
  15:	4a                   	rex.WX
[   13.491980][   T48] RSP: 002b:00000000fff098ac EFLAGS: 00000286 ORIG_RAX: 000000000000001b
[   13.492402][   T48] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000fff09ad4
[   13.492800][   T48] RDX: 00000000f7fc1e64 RSI: 00000000fff09b60 RDI: 00000000fff09d4c
[   13.493204][   T48] RBP: 00000000fff09ad4 R08: 0000000000000000 R09: 0000000000000000
[   13.493607][   T48] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[   13.494011][   T48] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[   13.494418][   T48]  </TASK>
[   13.494576][   T48] irq event stamp: 1181
[ 13.494786][ T48] hardirqs last enabled at (1191): console_unlock (arch/x86/include/asm/irqflags.h:19 arch/x86/include/asm/irqflags.h:67 arch/x86/include/asm/irqflags.h:127 kernel/printk/printk.c:341 kernel/printk/printk.c:2706 kernel/printk/printk.c:3038) 
[ 13.495252][ T48] hardirqs last disabled at (1200): console_unlock (kernel/printk/printk.c:339) 
[ 13.495715][ T48] softirqs last enabled at (808): __irq_exit_rcu (include/linux/sched.h:2463 kernel/softirq.c:615 kernel/softirq.c:634) 
[ 13.496172][ T48] softirqs last disabled at (797): __irq_exit_rcu (include/linux/sched.h:2463 kernel/softirq.c:615 kernel/softirq.c:634) 
[   13.496626][   T48] ---[ end trace 0000000000000000 ]---
[   13.496901][   T48] process 48 (init) attempted a POSIX timer syscall while CONFIG_POSIX_TIMERS is not set
[ 13.517868][ T48] CFI failure at int80_emulation+0x67/0xb0 (target: sys_ni_posix_timers+0x0/0x70; expected type: 0xb02b34d9 


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20231219/202312191507.348721d2-oliver.sang@intel.com



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 09:02:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 09:02:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656610.1024897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFVzy-0006yj-Uz; Tue, 19 Dec 2023 09:02:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656610.1024897; Tue, 19 Dec 2023 09:02:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFVzy-0006yc-SP; Tue, 19 Dec 2023 09:02:46 +0000
Received: by outflank-mailman (input) for mailman id 656610;
 Tue, 19 Dec 2023 09:02:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aNFb=H6=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFVzx-0006xB-H1
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 09:02:45 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f420b7a-9e4d-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 10:02:44 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id BCB4A4EE0738;
 Tue, 19 Dec 2023 10:02:42 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f420b7a-9e4d-11ee-98eb-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.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>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH] xen: add acmacros.h to exclude-list.json
Date: Tue, 19 Dec 2023 10:02:39 +0100
Message-Id: <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The file was inherited from Linux and ACPI CA, therefore it's
not subject to MISRA compliance at the moment.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 docs/misra/exclude-list.json | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
index 48f671c548b6..36cca71fae2d 100644
--- a/docs/misra/exclude-list.json
+++ b/docs/misra/exclude-list.json
@@ -209,6 +209,10 @@
           "rel_path": "include/acpi/acglobal.h",
           "comment": "Imported from Linux, ignore for now"
         },
+        {
+          "rel_path": "include/acpi/acmacros.h",
+          "comment": "Imported from Linux, ignore for now"
+        },
         {
             "rel_path": "include/xen/acpi.h",
             "comment": "Imported from Linux, ignore for now"
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 09:10:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 09:10:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656615.1024906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFW7E-0000aD-M8; Tue, 19 Dec 2023 09:10:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656615.1024906; Tue, 19 Dec 2023 09: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 1rFW7E-0000a6-JB; Tue, 19 Dec 2023 09:10:16 +0000
Received: by outflank-mailman (input) for mailman id 656615;
 Tue, 19 Dec 2023 09: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=Dsdm=H6=quicinc.com=quic_acaggian@srs-se1.protection.inumbo.net>)
 id 1rFW7D-0000Zk-5O
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 09:10:15 +0000
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
 [205.220.168.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a0975c5-9e4e-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 10:10:13 +0100 (CET)
Received: from pps.filterd (m0279865.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BJ6YluC012920; Tue, 19 Dec 2023 09:09:57 GMT
Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com
 [129.46.96.20])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3v360ygdcw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 19 Dec 2023 09:09:57 +0000 (GMT)
Received: from nalasex01c.na.qualcomm.com (nalasex01c.na.qualcomm.com
 [10.47.97.35])
 by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3BJ99ukN014060
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 19 Dec 2023 09:09:56 GMT
Received: from [10.110.16.10] (10.80.80.8) by nalasex01c.na.qualcomm.com
 (10.47.97.35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Tue, 19 Dec
 2023 01:09:49 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a0975c5-9e4e-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=
	message-id:date:mime-version:subject:to:cc:references:from
	:in-reply-to:content-type:content-transfer-encoding; s=
	qcppdkim1; bh=DfapB36I7rlWJic239LlbVizH1OKeq54QKe8ntTwzD4=; b=gv
	4wpIxQQ/mEQLayMcgcGVNwSjWWmi4LsPCLBomJ1/t1iesmLOYqnprgEH01dtrH7p
	JAQEIiqSPwv6t8DCvd3l6q3AkRiKSC3pEp/QMLFCuDcum7tHLRTACGwJ+NZzzvDL
	E6l2C3PCqglW1CEOC95eIrJxhGXkS+qed3Lj/XtDhluuq8ABRh18A9gptkIy8JAF
	cPy3i3gaGy8IFyp2A4O2u5Qn3iBd0U+WG/ayT7Ti6noSRjkYhZooJsLDFQp4RCxW
	96nua9micnYksl2yAmZPvGnx63PYb7Ct7cwAN+cHSMGmTqAUwUunXuUKQVMbJF9z
	Fmhydsh6h9ciP7fiBomw==
Message-ID: <dbb37337-1552-410e-8231-7619aacbf887@quicinc.com>
Date: Tue, 19 Dec 2023 10:09:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 02/11] virtio-gpu: Configure new feature flag
 context_create_with_flags for virglrenderer
Content-Language: en-US
To: Huang Rui <ray.huang@amd.com>, Akihiko Odaki <akihiko.odaki@daynix.com>,
        =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
        =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
        Gerd Hoffmann
	<kraxel@redhat.com>,
        "Michael S . Tsirkin" <mst@redhat.com>,
        Stefano
 Stabellini <sstabellini@kernel.org>,
        Anthony PERARD
	<anthony.perard@citrix.com>,
        "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
        Robert Beckett <bob.beckett@collabora.com>,
        Dmitry Osipenko
	<dmitry.osipenko@collabora.com>,
        Gert Wollny <gert.wollny@collabora.com>,
        =?UTF-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
        <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>,
        Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>,
        Alyssa Ross
	<hi@alyssa.is>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
        Alex
 Deucher <alexander.deucher@amd.com>,
        Stefano Stabellini
	<stefano.stabellini@amd.com>,
        =?UTF-8?Q?Christian_K=C3=B6nig?=
	<christian.koenig@amd.com>,
        Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
        Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
        Honglei
 Huang <honglei1.huang@amd.com>,
        Julia Zhang <julia.zhang@amd.com>, Chen
 Jiqian <Jiqian.Chen@amd.com>,
        Antonio Caggiano
	<antonio.caggiano@collabora.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-3-ray.huang@amd.com>
From: Antonio Caggiano <quic_acaggian@quicinc.com>
In-Reply-To: <20231219075320.165227-3-ray.huang@amd.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.80.80.8]
X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To
 nalasex01c.na.qualcomm.com (10.47.97.35)
X-QCInternal: smtphost
X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085
X-Proofpoint-GUID: lCdra24B1r8SqRQXtG29GWOoez15d2dY
X-Proofpoint-ORIG-GUID: lCdra24B1r8SqRQXtG29GWOoez15d2dY
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_01,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 suspectscore=0 priorityscore=1501 spamscore=0 mlxlogscore=999 adultscore=0
 bulkscore=0 clxscore=1011 mlxscore=0 malwarescore=0 phishscore=0
 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2311290000 definitions=main-2312190067

Hi Huang Rui,

Thank you for this new version.

All patches which I did not sign off are reviewed by me :)

Cheers,
Antonio Caggiano

On 19/12/2023 08:53, Huang Rui wrote:
> Configure a new feature flag (context_create_with_flags) for
> virglrenderer.
> 
> Originally-by: Antonio Caggiano <antonio.caggiano@collabora.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> ---
> 
> Changes in v6:
> - Move macros configurations under virgl.found() and rename
>    HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS.
> 
>   meson.build | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/meson.build b/meson.build
> index ec01f8b138..ea52ef1b9c 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1050,6 +1050,10 @@ if not get_option('virglrenderer').auto() or have_system or have_vhost_user_gpu
>                            cc.has_member('struct virgl_renderer_resource_info_ext', 'd3d_tex2d',
>                                          prefix: '#include <virglrenderer.h>',
>                                          dependencies: virgl))
> +    config_host_data.set('HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS',
> +                         cc.has_function('virgl_renderer_context_create_with_flags',
> +                                         prefix: '#include <virglrenderer.h>',
> +                                         dependencies: virgl))
>     endif
>   endif
>   rutabaga = not_found


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 09:38:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 09:38:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656619.1024916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFWYH-00065T-Pw; Tue, 19 Dec 2023 09:38:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656619.1024916; Tue, 19 Dec 2023 09:38:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFWYH-00065M-ND; Tue, 19 Dec 2023 09:38:13 +0000
Received: by outflank-mailman (input) for mailman id 656619;
 Tue, 19 Dec 2023 09:38:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFWYF-00065G-LU
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 09:38:11 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 525d3f7f-9e52-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 10:38:10 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c29f7b068so47679635e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 01:38:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bd7-20020a05600c1f0700b0040c420eda48sm2063141wmb.22.2023.12.19.01.38.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 01:38:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 525d3f7f-9e52-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702978689; x=1703583489; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=OmfLi6aAdjrEP8MwG7sWu6/S141J4AiA1n8U6hsxt/w=;
        b=bTcjRZEpOlpsPa8KaFuclsORokbBp+TLDxUnFj7jGH7Kp/H8L//4KZ3sIfGMccKjSo
         OanqXl2fhTJxYmedjwB3X26dpgm6BHIsZ8381yd2XTwEBnNl2D56qabZtxLobhQKJ/gV
         Jxnsj1pC70DsZTLZDpVLJIm0Dpmj2Uh3+0v/L8t8yCLJV0P7/P0PYTK6iMVyEscfBmkf
         JVE1AXzN4PYkKMSmW7sqmFfiJntGRTtdFULtfth+wjIiMZirhbgOYcx1wrS947plOf4H
         dbLO8lFM9xkiyJJWcW4mjtrFvFT2bjMkSr/sUroV9+UEVmhESDr27p/p+GBBndJlUuFD
         RQKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702978689; x=1703583489;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=OmfLi6aAdjrEP8MwG7sWu6/S141J4AiA1n8U6hsxt/w=;
        b=InOV2ZM1uvBnizoYzlYq3viEdLGk29IcIkrmB80bVCjOKSi7Foma4VJ5fP35C05USL
         QcyMA2TOKiKSF3eMZYTPe176gkZp663NjfifiSGycCDoGjVXJarluWngYk1tj8t9/LUL
         wepGiTOBQg1Gs21nIOeoWMFwn0XXhdzL84//eedggzPO/YMl7/oSHgK8a3ykWbpDSw3w
         SSDu0QCGGyjkXQ633fglXYo8PmdX4Wj8w9KWRty93KzY/Ej3xT0jusWFf1WtJeP8moFI
         yqrIBHIzcpDK8qUyvyttlArTBqoYTA6uE3WXbGx1u/IbPODPelQT/06mmf1ynEGP6Byj
         f1RA==
X-Gm-Message-State: AOJu0YxLAuUbqk+Wc7UQsxnMXzUCf8BbhDVlvLiuMTLujPvB22buzHTd
	2KOEoVK85eFbeYaszx1Oqb1X
X-Google-Smtp-Source: AGHT+IGt7S4c4IqySOqaBnhhRq4uQtr6f4Na09NnAbN0O09zTM45NdjxfIpLERtJTJuq76z8G9VEsQ==
X-Received: by 2002:a05:600c:6020:b0:40c:7a1:b2c8 with SMTP id az32-20020a05600c602000b0040c07a1b2c8mr8988206wmb.163.1702978689700;
        Tue, 19 Dec 2023 01:38:09 -0800 (PST)
Message-ID: <84920973-8322-4da6-bdbc-165a065a69ba@suse.com>
Date: Tue, 19 Dec 2023 10:38:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
 <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
 <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <3aeb708d-a4fa-45b5-9d74-260ef2035b4a@suse.com>
 <CAKm-UmbFkO5RCDMTEgWBtEYtfO_LH=TKTh5TP=FyFFpdnbto4w@mail.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: <CAKm-UmbFkO5RCDMTEgWBtEYtfO_LH=TKTh5TP=FyFFpdnbto4w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 18:04, SÃ©bastien Chaumat wrote:
> Le lun. 18 dÃ©c. 2023, 17:44, Jan Beulich <jbeulich@suse.com> a Ã©crit :
> 
>> On 18.12.2023 17:21, SÃ©bastien Chaumat wrote:
>>>>>>> On 05.12.2023 21:31, SÃ©bastien Chaumat wrote:
>>>>> This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
>>>>> (so level type) while in xen it  is mapped to oapic-edge  instead of
>>>>> oapic-level
>>>>> as the SSDT indicates :
>>>>>
>>>>>  Device (GPIO)
>>>>>
>>>>>      {
>>>>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
>>>>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
>>>>>          Name (_UID, Zero)  // _UID: Unique ID
>>>>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource
>> Settings
>>>>>          {
>>>>>              Name (RBUF, ResourceTemplate ()
>>>>>              {
>>>>>                  Interrupt (ResourceConsumer, Level, ActiveLow,
>> Shared, ,, )
>>>>>                  {
>>>>>                      0x00000007,
>>>>>            }
>>>>> Any idea why ?
>>>>
>>>> Information coming from AML is required to be handed down by Dom0 to
>> Xen.
>>>> May want checking that (a) Dom0 properly does so and (b) Xen doesn't
>> screw
>>>> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this is
>>>> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7
>> is
>>>> also the spurious vector. You may want to retry with the tip of the 4.17
>>>> branch (soon to become 4.17.3) - while it doesn't look very likely to me
>>>> that recent backports there were related, it may still be that they make
>>>> a difference.
>>>>
>>>
>>> testing with 4.17.3:
>>>
>>> Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  that
>>> (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: 1
>>>
>>> but later on in dmesg I see :
>>> [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
>>>
>>> So triggering is flipped from 1 to 0 (cannot find the definition for
>>> those values).
>>> Could this be the culprit ?
>>
>> Possibly. Since it would be the kernel to invoke PHYSDEVOP_setup_gsi, it
>> looks as if the kernel was confused about which trigger mode to use. Have
>> you figured from where the kernel takes the two different values?
>>
> 
>> Would you mind pointing me to the definition for those values first ? I
> did not find what 0/1 means in this context.

See e.g. the IO-APIC spec, or Xen's io_apic.h:

struct IO_APIC_route_entry {
    ...
            unsigned int polarity:1;      /* 0: low, 1: high */
    ...
            unsigned int trigger:1;       /* 0: edge, 1: level */

(Sadly the comment may be the wrong way round for polarity, but then I
may also be missing something, as msi.h and apicdef.h suggest things
are as the comment above says.)

In any event the PHYSDEVOP_setup_gsi invocation looks fishy, at least
if this was a PCI IRQ. Just to mention it - according to the hypervisor
log you sent earlier there's also no source override for IRQ 7 (in the
log lines starting "ACPI: INT_SRC_OVR ").

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 09:56:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 09:56:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656629.1024931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFWpp-0002Me-9Z; Tue, 19 Dec 2023 09:56:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656629.1024931; Tue, 19 Dec 2023 09:56:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFWpp-0002MX-6m; Tue, 19 Dec 2023 09:56:21 +0000
Received: by outflank-mailman (input) for mailman id 656629;
 Tue, 19 Dec 2023 09:56:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFWpn-0002MR-R8
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 09:56:19 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dae24674-9e54-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 10:56:18 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3366827ca79so1885218f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 01:56:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o8-20020a5d6708000000b00336765e9babsm43412wru.83.2023.12.19.01.56.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 01:56:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dae24674-9e54-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702979778; x=1703584578; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=rNcNVVMU/BvkIRVUs5jjfQ4xAWyi0abxBQcnUigCHVM=;
        b=Aso9p4nwn7sHqxcF4PzLw6jqt0Wpj8xHPbEbEsXzGqC6viAsLBJp6Hs41Ld1O54Tee
         EyK3lXHzo7/hRTa9Dn6F//+mx6Bku82aEyafFnWTRBZ8R7ym6TCnBPxFInVqvxRky+mi
         zYbEmvEo4SDZZg+6y+hmdF12t5UGAdyTyij3lp6fa5w61U/Pn1Bffn/mBKLmCyn7t1Ni
         p+esLP7kKZIA2+gI/1d4Yt5PPyx7hG7+W+9cpoFMryeqV3WfvfVEbECrCJwEx//0ts4N
         ubX2oHdq8L5e/gaxlXJsF7gBRlZrJGOjWaZ+6j2GKHd8SfSCgq5O6nScuJQZfysvsJTR
         nXew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702979778; x=1703584578;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=rNcNVVMU/BvkIRVUs5jjfQ4xAWyi0abxBQcnUigCHVM=;
        b=l5jBd3+wJbc0RjV1SYAyKCIuT3qb3r8sVkwgBCyD3GsGz//fgeHpdbip0pZZS7Sd9z
         xBfxbCaoiftO1eFh7MZJq5kY8k1VyczwKuHiVch4GTEBrBAp22fDbFhLeJBtVoTxI2Dn
         CPooGVuuN3ak1FkYXsCBX22KrT6gm5xNtb0N6dKux1dkDYVZsh/0g2apLskTlCnE/tKq
         4sKaigUiMPkUgUHvioyL4GGf0AspRn8Q95xLBjr6CgfRDlQdssJluK7bEy5K0R5kTvc2
         Ue47nKMCiUsvZk4eBXK2XCcSvVpIbaX1hoNO/EF9z4YcrSDG8gTJaCHWa9qUfe36byeE
         0KSQ==
X-Gm-Message-State: AOJu0Yw8HzA3kUA0etvr8Ovye9fp/1xE8pajCzdP9YjvDRhi91eb5L2Q
	U0o3lwjUOYC1bV8aVkGGb6f/
X-Google-Smtp-Source: AGHT+IHbEE+xRk3ouSurXD43KKZHiGBwcA0Mrx0S9uZCr2EzYznk9fq9Mqym81QaOkzi4pemfiJJFw==
X-Received: by 2002:adf:e3c9:0:b0:336:5f4f:4ae1 with SMTP id k9-20020adfe3c9000000b003365f4f4ae1mr2919757wrm.119.1702979777772;
        Tue, 19 Dec 2023 01:56:17 -0800 (PST)
Message-ID: <6e022af1-d383-48be-ab54-6ec254aa1502@suse.com>
Date: Tue, 19 Dec 2023 10:56:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/4] x86/PV: issue branch prediction barrier when
 switching 64-bit guest to kernel mode
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <2863b0a9-ca7c-3cce-104d-0b6685b0b383@suse.com> <ZYCARJAxH9hBD0YQ@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYCARJAxH9hBD0YQ@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 18:24, Roger Pau MonnÃ© wrote:
> On Tue, Feb 14, 2023 at 05:12:08PM +0100, Jan Beulich wrote:
>> Since both kernel and user mode run in ring 3, they run in the same
>> "predictor mode".
> 
> That only true when IBRS is enabled, otherwise all CPU modes share the
> same predictor mode?

But here we only care about ring 3 anyway?

>> @@ -753,7 +755,9 @@ static inline void pv_inject_sw_interrup
>>   * but we can't make such requests fail all of the sudden.
>>   */
>>  #define PV64_VM_ASSIST_MASK (PV32_VM_ASSIST_MASK                      | \
>> -                             (1UL << VMASST_TYPE_m2p_strict))
>> +                             (1UL << VMASST_TYPE_m2p_strict)          | \
>> +                             ((opt_ibpb_mode_switch + 0UL) <<           \
>> +                              VMASST_TYPE_mode_switch_no_ibpb))
> 
> I'm wondering that it's kind of weird to offer the option to PV domUs
> if opt_ibpb_entry_pv is set, as then the guest mode switch will always
> (implicitly) do a IBPB as requiring an hypercall and thus take an
> entry point into Xen.
> 
> I guess it's worth having it just as a way to signal to Xen that the
> hypervisor does perform an IBPB, even if the guest cannot disable it.

I'm afraid I'm confused by your reply. Not only, but also because the
latter sentence looks partly backwards / non-logical to me.

>> --- a/xen/arch/x86/pv/domain.c
>> +++ b/xen/arch/x86/pv/domain.c
>> @@ -455,6 +455,7 @@ static void _toggle_guest_pt(struct vcpu
>>  void toggle_guest_mode(struct vcpu *v)
>>  {
>>      const struct domain *d = v->domain;
>> +    struct cpu_info *cpu_info = get_cpu_info();
>>      unsigned long gs_base;
>>  
>>      ASSERT(!is_pv_32bit_vcpu(v));
>> @@ -467,15 +468,21 @@ void toggle_guest_mode(struct vcpu *v)
>>      if ( v->arch.flags & TF_kernel_mode )
>>          v->arch.pv.gs_base_kernel = gs_base;
>>      else
>> +    {
>>          v->arch.pv.gs_base_user = gs_base;
>> +
>> +        if ( opt_ibpb_mode_switch &&
>> +             !(d->arch.spec_ctrl_flags & SCF_entry_ibpb) &&
>> +             !VM_ASSIST(d, mode_switch_no_ibpb) )
>> +            cpu_info->spec_ctrl_flags |= SCF_new_pred_ctxt;
> 
> Likewise similar to the remarks I've made before, if doing an IBPB on
> entry is enough to cover for the case here, it must also be fine to
> issue the IBPB right here, instead of deferring to return to guest
> context?
> 
> The only concern would be (as you mentioned before) to avoid clearing
> valid Xen predictions, but I would rather see some figures about what
> effect the delaying to return to guest has vs issuing it right here.

Part of the reason (aiui) to do things on the exit path was to
consolidate the context switch induced one and the user->kernel switch
one into the same place and mechanism.

>> --- a/xen/include/public/xen.h
>> +++ b/xen/include/public/xen.h
>> @@ -554,6 +554,16 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
>>   */
>>  #define VMASST_TYPE_m2p_strict           32
>>  
>> +/*
>> + * x86-64 guests: Suppress IBPB on guest-user to guest-kernel mode switch.
> 
> I think this needs to be more vague, as it's not true that the IBPB
> will be suppressed if Xen is unconditionally issuing one on all guest
> entry points.
> 
> Maybe adding:
> 
> "Setting the assist signals Xen that the IBPB can be avoided from a
> guest perspective, however Xen might still issue one for other
> reasons."

I've done s/Suppress/Permit skipping/. I wouldn't want to go further,
as that then becomes related to implementation details imo. IOW of
course Xen may issue IBPB whenever it thinks there's a possible need.

>> + *
>> + * By default (on affected and capable hardware) as a safety measure Xen,
>> + * to cover for the fact that guest-kernel and guest-user modes are both
>> + * running in ring 3 (and hence share prediction context), would issue a
>> + * barrier for user->kernel mode switches of PV guests.
>> + */
>> +#define VMASST_TYPE_mode_switch_no_ibpb  33
> 
> Would it be possible to define the assist as
> VMASST_TYPE_mode_switch_ibpb and have it on when enabled?  So that the
> guest would disable it if unneeded?  IMO negated options are in
> general harder to understand.

Negative options aren't nice, yes, but VM assists start out as all
clear. The guest needs to change a "false" to a "true", and thus it
cannot be a positive option here, as we want the default (off) to be
safe/secure.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 09:58:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 09:58:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656631.1024941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFWsA-0002uz-NP; Tue, 19 Dec 2023 09:58:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656631.1024941; Tue, 19 Dec 2023 09: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 1rFWsA-0002us-Jb; Tue, 19 Dec 2023 09:58:46 +0000
Received: by outflank-mailman (input) for mailman id 656631;
 Tue, 19 Dec 2023 09: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=Nbmq=H6=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1rFWs9-0002um-CB
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 09:58:45 +0000
Received: from mail.alien8.de (mail.alien8.de [2a01:4f9:3051:3f93::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3135c196-9e55-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 10:58:43 +0100 (CET)
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id F1E9D40E00CD; 
 Tue, 19 Dec 2023 09:58:40 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id nodqOZyKC-fR; Tue, 19 Dec 2023 09:58:38 +0000 (UTC)
Received: from zn.tnic (pd95304da.dip0.t-ipconnect.de [217.83.4.218])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest
 SHA256) (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 52F0440E00C9;
 Tue, 19 Dec 2023 09:58: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: 3135c196-9e55-11ee-9b0f-b553b5be7939
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key)
	reason="fail (body has been altered)" header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1702979917; bh=S3JFK1fju4B6xZ8eBdvZm+1HPPTszSQfGOo5AjwDssQ=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=bD6HE4bsbc2OQkFhBB+xvJpvtivUcbd5wsY25h5phYM5J0eGRJUdNjmLwiAj6o7KK
	 gx3zGOLBwaZx5irPCWSX12wRoLv0IAl+XUNK4E8HxoZ13p5mWNyp7yOwWULdywRjH6
	 5gcskawHSQTCP5ivxwfiClK6fMubzKPAFW/U/3aJr+7UCIMSODR6bs3edM6SJn5czn
	 OACfG3Zv8y47kzDmIxIJBxWYXwYmvrBX5dI8WxQDRb81xltEcbxECtWtaEmO25zyvM
	 gtmYY37HJsGk/je25y3mVFSnMcvmYnQ+bbLsWxcMqP3vb2HvCE+542GrIWJDvJ5bRj
	 7m/8UuT8KN8+aGySZnllMiqnK+PtqnftUlpKm2CMmD+Y/20l0XG7C44Ii+8UbsuYHo
	 LBb5YUD34PfChNkUKqSH16PxRKNYvEx5lYTfDNBscw4HdZQHBfVAZl97LSdeWyJRiv
	 TMNVslgsF7WUUOnfafwU4plYk5Z34hf8X+u+TqQw2K7mebiWcIapQ95JrjyNCh0vTr
	 l7rDMR+1oW20WEJrPQouBQ49B75bWuGLMQiKJ9i+UkxYjGUKqjgH4diOo/GzmaOIxt
	 gKgbNwYUU3zVG7Y+Hk5s7Wda4a8TTj75z9yFOYxO/5ZEkj/SL6tOK54uo4eMq0YXp5
	 tqSoCzkE/3DJJCyAfh/NHjzw=
Date: Tue, 19 Dec 2023 10:58:21 +0100
From: Borislav Petkov <bp@alien8.de>
To: kernel test robot <oliver.sang@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>, oe-lkp@lists.linux.dev,
	lkp@intel.com, linux-kernel@vger.kernel.org,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Linus Torvalds <torvalds@linuxfoundation.org>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [linus:master] [x86/entry]  be5341eb0d:
 WARNING:CPU:#PID:#at_int80_emulation
Message-ID: <20231219095821.GAZYFpPUSKexZAcl05@fat_crate.local>
References: <202312191507.348721d2-oliver.sang@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <202312191507.348721d2-oliver.sang@intel.com>
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 19, 2023 at 04:49:14PM +0800, kernel test robot wrote:
> [ 13.481107][ T48] WARNING: CPU: 0 PID: 48 at int80_emulation (arch/x86=
/entry/common.c:164)=20
> [   13.481454][   T48] Modules linked in:
> [   13.481655][   T48] CPU: 0 PID: 48 Comm: init Tainted: G            =
     N 6.7.0-rc4-00002-gbe5341eb0d43 #1
> [ 13.482162][ T48] RIP: 0010:int80_emulation (arch/x86/entry/common.c:1=
64)=20

Looking at the dmesg, I think you missed the most important part - the
preceding line:

[   13.480504][   T48] CFI failure at int80_emulation+0x67/0xb0 (target: =
sys_ni_posix_timers+0x0/0x70; expected type: 0xb02b34d9)
			^^^^^^^^^^^

[   13.481107][   T48] WARNING: CPU: 0 PID: 48 at int80_emulation+0x67/0x=
b0
[   13.481454][   T48] Modules linked in:
[   13.481655][   T48] CPU: 0 PID: 48 Comm: init Tainted: G              =
   N 6.7.0-rc4-00002-gbe5341eb0d43 #1

The CFI bla is also in the stack trace.

Now, decode_cfi_insn() has a comment there which says what the compiler
generates about indirect call checks:

         * =C2=A0 movl    -<id>, %r10d       ; 6 bytes
         *   addl    -4(%reg), %r10d    ; 4 bytes
         *   je      .Ltmp1             ; 2 bytes
         *   ud2                        ; <- regs->ip
         *   .Ltmp1:


and the opcodes you decoded...

> [ 13.482437][ T48] Code: 01 00 00 77 43 89 c1 48 81 f9 c9 01 00 00 48 1=
9 c9 21 c1 48 89 df 4c 8b 1c cd 90 12 20 9a 41 ba 27 cb d4 4f 45 03 53 fc=
 74 02 <0f> 0b 41 ff d3 48 89 c1 48 89 4b 50 90 48 89 df 5b 41 5e 31 c0 3=
1
> All code
> =3D=3D=3D=3D=3D=3D=3D=3D
>    0:	01 00                	add    %eax,(%rax)
>    2:	00 77 43             	add    %dh,0x43(%rdi)
>    5:	89 c1                	mov    %eax,%ecx
>    7:	48 81 f9 c9 01 00 00 	cmp    $0x1c9,%rcx
>    e:	48 19 c9             	sbb    %rcx,%rcx
>   11:	21 c1                	and    %eax,%ecx
>   13:	48 89 df             	mov    %rbx,%rdi
>   16:	4c 8b 1c cd 90 12 20 	mov    -0x65dfed70(,%rcx,8),%r11
>   1d:	9a=20
>   1e:	41 ba 27 cb d4 4f    	mov    $0x4fd4cb27,%r10d
>   24:	45 03 53 fc          	add    -0x4(%r11),%r10d
>   28:	74 02                	je     0x2c
>   2a:*	0f 0b                	ud2		<-- trapping instruction

... these guys here, look exactly like what the compiler did issue.

This is the first time I'm looking at this CFI bla but it sounds like it
is trying to compare the syscall target's address of
sys_ni_posix_timers with something it is expecting to call and the
comparison doesn't work out (%r10 is not 0).

There's that special symbol __cfi_sys_ni_posix_timers which also gets
generated...

Someone would need to dig into that whole CFI gunk to figure out why
this is not happy.

Oh well.

--=20
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 10:38:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 10:38:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656640.1024950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXU5-0002sV-Mz; Tue, 19 Dec 2023 10:37:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656640.1024950; Tue, 19 Dec 2023 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 1rFXU5-0002sO-KU; Tue, 19 Dec 2023 10:37:57 +0000
Received: by outflank-mailman (input) for mailman id 656640;
 Tue, 19 Dec 2023 10:37:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFXU4-0002sG-2J
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 10:37:56 +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 aa5becd2-9e5a-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 11:37:53 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3367601a301so172676f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 02:37:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o13-20020a5d4a8d000000b0033674e10462sm806999wrq.113.2023.12.19.02.37.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 02:37:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa5becd2-9e5a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702982273; x=1703587073; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=wNSZZCMl3Lz6Z81lcXJlMGDN+6K/tnaMRz8SIdw2LJI=;
        b=K7SbO44PkOqucPVgHM0HQ1JO4S9MDT1nueHLcbruig8ZyX7mqLZfNE/zyKX+PB4eCC
         DvRfGxSjOqHBlRoC2x4hNidsYMeOUq3e+HyUvFS/9nEwZj66aKCwgVKIbOVz93LTBOJm
         TBbbOTin7wavz5gKOvsr9P/Bl99O2QUjJN5KJCa7fghVZMMTiCrDE5rizRRBgDDsxHlH
         0ez/J0xTpPBrklYVA5BNzwkpyF7EWjdqKHXLYGks+IbiJ0ReANHrC8UM09ce4XrcnITs
         oOljMRSiwQne0WCrd/11PMg0SYy2tZtc0RT2gms1HhEbCW76Pnu1UxbNocw3ycUtu44z
         DZUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702982273; x=1703587073;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=wNSZZCMl3Lz6Z81lcXJlMGDN+6K/tnaMRz8SIdw2LJI=;
        b=IxuGyDljZoiWeOE3An13UpoUgRtmroIflAwc2vOHJh593Kjhnpg3AxBRv3HcRiKVdM
         US///rJ8+s73pG5GQecE/C0/znsN8ktlfDzFwTv/ctfoIvY8ZztqGfBlelHolNMNFVxV
         2yKvavkh1OHMKC8AP10vWIC9mQkygD0ozIYLtSLF/VLDZgbJQr9ZRYXdX0eDJ5pf/X0J
         pPUQtQTsOm6/zrmSlV38u6Dig4GDmIPzU1f4kxVUWKh74d+4oOI6zur5KtmZ5onhTvXr
         z57KxATIVH5Hq/bJ+k08ikydQoh4BdTJ9uydqj4rDzHLnLIlFMwt5R38Qd+4mUo6vg0f
         ht3w==
X-Gm-Message-State: AOJu0YzudCoe8JzYJDuIpCo9/q5+0rcR5yOCbgw7+CTc0u3+1IZX6cQk
	MaqByzN8/JYZ3A2glx2NRfkf
X-Google-Smtp-Source: AGHT+IGz/bWZkLonRKVWBjY9u59cD4myANLl29eY4B/w+zfYGg119fvYXAX5y1pBry8tZodsDhM+dQ==
X-Received: by 2002:a5d:56ce:0:b0:336:73eb:fe8c with SMTP id m14-20020a5d56ce000000b0033673ebfe8cmr257296wrw.8.1702982273314;
        Tue, 19 Dec 2023 02:37:53 -0800 (PST)
Message-ID: <055b6cf3-4f29-4f1d-b650-26c6d9be8832@suse.com>
Date: Tue, 19 Dec 2023 11:37:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen: add acmacros.h to exclude-list.json
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.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: <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 10:02, Nicola Vetrini wrote:
> --- a/docs/misra/exclude-list.json
> +++ b/docs/misra/exclude-list.json
> @@ -209,6 +209,10 @@
>            "rel_path": "include/acpi/acglobal.h",
>            "comment": "Imported from Linux, ignore for now"
>          },
> +        {
> +          "rel_path": "include/acpi/acmacros.h",
> +          "comment": "Imported from Linux, ignore for now"
> +        },

Together with what's already there (in context), wouldn't it better be
the entire directory then which is excluded, or at least all
include/acpi/ac*.h collectively (and perhaps also
include/acpi/platform/ac*.h)?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 10:44:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 10:44:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656645.1024960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXap-0005G9-EO; Tue, 19 Dec 2023 10:44:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656645.1024960; Tue, 19 Dec 2023 10: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 1rFXap-0005G2-Bw; Tue, 19 Dec 2023 10:44:55 +0000
Received: by outflank-mailman (input) for mailman id 656645;
 Tue, 19 Dec 2023 10:44:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFXan-0005Fw-Sb
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 10:44:53 +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 a389f759-9e5b-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 11:44:52 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c2bb872e2so50039155e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 02:44:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 n35-20020a05600c3ba300b004064e3b94afsm2296448wms.4.2023.12.19.02.44.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 02:44:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a389f759-9e5b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702982691; x=1703587491; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xVZT3gW+xzUGhAySh7dzcSMVZ/RcXnsavSY+i3y0IbQ=;
        b=LVhQV2jBjsJj2UDtrHpF6ubtZbtdGHBaOqvK5TuaawZq7zoXEC7GPQsuyE8VOigwG7
         eZjbrHMzEHNuIqU/5uAFjb/IMQ/37Y6ryg+LMowvs9O8jz5ZW1CVgrfXXndUq8X/A0oI
         nVRjglFU6VWMOZQjFguFnpmMI0ZLbln7FuUHijSM488zP66ifItsn1/9vE99YwS0HCZn
         oqTPyJK9dTKY1gGiDfJjfzobEhCyhBi89ux/hrZ7QoNSdEEg1SGfPgZJrCfYUF2FZSp6
         yOkiz1MhHBYLTaWtkKDtfYGxz2KkzewKuZI6vRlw2W5ZHa4Te5Pcqkaq7rdW/sYVWgfu
         c7Xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702982691; x=1703587491;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=xVZT3gW+xzUGhAySh7dzcSMVZ/RcXnsavSY+i3y0IbQ=;
        b=qEMzfa2LP3luamaVTvl8ShLwYN/UhE3BZmaABO/RR8OYs34dTII6EIG8iy4HGe135f
         iVuiCerMKX+JGJLK3/ILMXCvruv7IwMf2tLPXjVaPWBJLZ03ArbbXlK+w4bqUyG12yfn
         ulmKVFMoAhYiH7ERfPNPUEFkOjzEvJNeOvrBTrvpc5YcFih+c71uuQMgP2lmlmmFhab9
         wYoGtP/CQ5B78PnIb54sRm7cbR4X2JKu4O0J65WySTxAbpz+4ItlAwatAdtnCBYmdahq
         9cBLp9+EqWxvYEnYW4S5RbAat/SCRGrkvDsZDORSh8Cxb8P4yRQamByECwOrQosbdg05
         o1CQ==
X-Gm-Message-State: AOJu0Ywn77XHl7F8aR2fcAuNTpEr/0VnOpt+JKDRuxA9Et/a0zDTrm2L
	SqColxm/5gJdtHURM+3m9hLS
X-Google-Smtp-Source: AGHT+IFy3bqR2cPK4Z+8vN1tFlQ8fuYHH7PglETp5XUtbdH7+XDtZ12cKOaR4CcsrbpKdxzm7szVPw==
X-Received: by 2002:a05:600c:1e1a:b0:40d:2e2b:6e76 with SMTP id ay26-20020a05600c1e1a00b0040d2e2b6e76mr13805wmb.146.1702982691446;
        Tue, 19 Dec 2023 02:44:51 -0800 (PST)
Message-ID: <c4705dba-ce9f-4b4d-9962-8f9d420047f7@suse.com>
Date: Tue, 19 Dec 2023 11:44:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 4/5] x86/hvm: dom0: use helper to get sizeof struct
 field
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@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>, Wei Liu
 <wl@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
 <17b01f14b89a5dba6935bbd8019ddf431d595890.1702553835.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312141332470.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312141332470.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 22:32, Stefano Stabellini wrote:
> On Thu, 14 Dec 2023, Nicola Vetrini wrote:
>> Use of the proper helper macro also resolves a violation
>> of MISRA C Rule 11.9.
>> No functional change.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 10:48:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 10:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656649.1024970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXeB-0005sP-TA; Tue, 19 Dec 2023 10:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656649.1024970; Tue, 19 Dec 2023 10: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 1rFXeB-0005sI-Qg; Tue, 19 Dec 2023 10:48:23 +0000
Received: by outflank-mailman (input) for mailman id 656649;
 Tue, 19 Dec 2023 10: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFXeA-0005sC-NT
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 10:48:22 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 205f6c7e-9e5c-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 11:48:21 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-336672406f0so1911562f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 02:48:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v18-20020a5d5912000000b003365e7f35f4sm8883594wrd.46.2023.12.19.02.48.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 02:48:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 205f6c7e-9e5c-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702982901; x=1703587701; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=2q4xN6y8OUPTcH9aKJaNvWJwQ77oIP2jYturtuqyKCg=;
        b=g+jA8znhSoXvil30Bhh0AARe+2Cg+AflZEUIY89vmL1R8qiZf8JUOYlpAkbpV+Mfml
         WhTi3njpZd2lD895IYFV1D//EHqy498rEt+jGZnLyxv1ipZhrvtqvvAPvemoMM9Kmpc3
         z/mzxcfoeROHLA35GtZXr/SN/V13l1F5tClFA8WO5JAjoynCLy8+7Ht4IxeF8UmIXua7
         MLf9aHJ7QJumP8fRhQslt5Wa6kNk3zvUEteQUHI0emCcnmCNbzmqbatyTo4+J6yPnG0G
         Dq9dUfs7fab8gwxKxDekfMxsRYLSxABdV7x41vjwrf/cGhA6UibXdhJ+WDNkHYZYDtth
         RwWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702982901; x=1703587701;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=2q4xN6y8OUPTcH9aKJaNvWJwQ77oIP2jYturtuqyKCg=;
        b=pRtUvf4SLJhHOzqjgfs+DvublXyeM57vx3ryZpWkkseGgojPDCztOinTAfaePLTYZj
         Sn4xqjxY2k0AY5AmqTiJ0KwaD805ilGKys6VVCqUe70ei9tJfH7gdCe2AYmNdIOxRXIF
         RTUyO+Dy0LoqemkG0OpDVD85B0w2/lhvnhq/rEeadl3NYUGGq+LdnqQhY9ELd5PrUyoM
         RVJlOcKO6a8yfRePxF3qtlMO7WMmMTBfd0T4p7Db3U8Ibfv4mQcnJNNGbrNRGQtMOSW3
         t0E9o3dEQRoW8R7eR144i+QFv1pn60zqQ/g42RR/mVb/730eLM0+zOPZPKcSJI3EGF0r
         yldg==
X-Gm-Message-State: AOJu0YwCl0zXxarFl8CagCn3EcaCAtfnYa1GqVXK5rRmkspQpms1XSUW
	qV2tPhWI5iM4ydfXy7n9CRCq
X-Google-Smtp-Source: AGHT+IHrMEWLad+X4b7RyX4o43WZfFSzFm/SNztrSBGBGEo78iWt8SjgOYlcVQVr68b7mhYItB6DHA==
X-Received: by 2002:a5d:6707:0:b0:336:6426:4e1d with SMTP id o7-20020a5d6707000000b0033664264e1dmr2513626wru.17.1702982900883;
        Tue, 19 Dec 2023 02:48:20 -0800 (PST)
Message-ID: <09b8c0e5-b0d0-428b-8e72-d66b4ccf8c9c@suse.com>
Date: Tue, 19 Dec 2023 11:48:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/5] xen/wait: address violations of MISRA C Rule 11.9
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1702553835.git.nicola.vetrini@bugseng.com>
 <a4e13ba24ab54895454d8df1c956865f7cf7f0b5.1702553835.git.nicola.vetrini@bugseng.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: <a4e13ba24ab54895454d8df1c956865f7cf7f0b5.1702553835.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.12.2023 12:44, Nicola Vetrini wrote:
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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

Nevertheless, imo ...

> --- a/xen/common/wait.c
> +++ b/xen/common/wait.c
> @@ -125,7 +125,7 @@ static void __prepare_to_wait(struct waitqueue_vcpu *wqv)
>      struct vcpu *curr = current;
>      unsigned long dummy;
>  
> -    ASSERT(wqv->esp == 0);
> +    ASSERT(wqv->esp == NULL);
>  
>      /* Save current VCPU affinity; force wakeup on *this* CPU only. */
>      if ( vcpu_temporary_affinity(curr, smp_processor_id(), VCPU_AFFINITY_WAIT) )
> @@ -171,7 +171,7 @@ static void __prepare_to_wait(struct waitqueue_vcpu *wqv)
>            [sz] "i" (PAGE_SIZE)
>          : "memory", "rax", "rdx", "r8", "r9", "r10", "r11" );
>  
> -    if ( unlikely(wqv->esp == 0) )
> +    if ( unlikely(wqv->esp == NULL) )
>      {
>          gdprintk(XENLOG_ERR, "Stack too large in %s\n", __func__);
>          domain_crash(curr->domain);

... in both cases the better change (more in line with what we do elsewhere,
even if not liked by Misra and hence being deviated by us) would have been
to use ! in place of == NULL.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 10:51:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 10:51:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656652.1024980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXhI-0008Dk-Ba; Tue, 19 Dec 2023 10:51:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656652.1024980; Tue, 19 Dec 2023 10: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 1rFXhI-0008Dd-93; Tue, 19 Dec 2023 10:51:36 +0000
Received: by outflank-mailman (input) for mailman id 656652;
 Tue, 19 Dec 2023 10:51: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=aNFb=H6=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFXhH-0008C8-6M
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 10:51:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9335c970-9e5c-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 11:51:34 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 89CE74EE0738;
 Tue, 19 Dec 2023 11:51:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9335c970-9e5c-11ee-98eb-6d05b1d4d9a1
MIME-Version: 1.0
Date: Tue, 19 Dec 2023 11:51:33 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org, Luca Fancellu <Luca.Fancellu@arm.com>
Subject: Re: [XEN PATCH] xen: add acmacros.h to exclude-list.json
In-Reply-To: <055b6cf3-4f29-4f1d-b650-26c6d9be8832@suse.com>
References: <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.com>
 <055b6cf3-4f29-4f1d-b650-26c6d9be8832@suse.com>
Message-ID: <2fd03776043811a8ceae9ae41de5f0fa@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 2023-12-19 11:37, Jan Beulich wrote:
> On 19.12.2023 10:02, Nicola Vetrini wrote:
>> --- a/docs/misra/exclude-list.json
>> +++ b/docs/misra/exclude-list.json
>> @@ -209,6 +209,10 @@
>>            "rel_path": "include/acpi/acglobal.h",
>>            "comment": "Imported from Linux, ignore for now"
>>          },
>> +        {
>> +          "rel_path": "include/acpi/acmacros.h",
>> +          "comment": "Imported from Linux, ignore for now"
>> +        },
> 
> Together with what's already there (in context), wouldn't it better be
> the entire directory then which is excluded, or at least all
> include/acpi/ac*.h collectively (and perhaps also
> include/acpi/platform/ac*.h)?
> 
> Jan

+Cc Luca Fancellu

Sure. I wasn't certain which files are imported from ACPI CA and which 
aren't.
I'm also not sure whether "include/acpi/ac*.h" would be properly 
recognized by other tooling that uses exclude-list.json (only cppcheck I 
think). I Cc-ed Luca Fancellu on this.

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 10:56:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 10:56:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656657.1024990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXlh-0000a4-St; Tue, 19 Dec 2023 10:56:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656657.1024990; Tue, 19 Dec 2023 10: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 1rFXlh-0000Zx-Q0; Tue, 19 Dec 2023 10:56:09 +0000
Received: by outflank-mailman (input) for mailman id 656657;
 Tue, 19 Dec 2023 10: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFXlg-0000Zr-S4
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 10:56:08 +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 35d986a7-9e5d-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 11:56:06 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40c6e2a47f6so45088265e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 02:56:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v8-20020a05600c444800b0040d2e37c06dsm115080wmn.20.2023.12.19.02.56.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 02:56:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35d986a7-9e5d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702983366; x=1703588166; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8P0LbAGXmgn2QmUozUT+jsEZFbsokZnnQ66xwGEyQfc=;
        b=OD4L80/zD5YSIV7gLIaNT14aBu6nInfbEl4u46+Bc5x7NvdI8O9BgcKcNiXZnBzxuD
         aID+IZ5zTPwQHg5AMDqZyyncOsqm+biuVSPWPlZLlrMu7B74nZTp3SVAHUl1/sIqi91j
         r+Td7E3Z72IECKWvrZJIfSOA49jHwS8AYlx9HsnkMvZzVkbPdAUdUBG+5rVaIX47zWt5
         VyX8gyL8fEE6Jcg+yvS3buHmw5HIJVtMw+ZS+CLQQnaHAGj9JthRT0qc0CFB/e16u6UA
         p4Udq8hsa2Z44y80lwOY2dE+J+BZO230n2t1mJCHwTioq3tuFDPJ5mhKmtYcuBUJ8rI0
         rSnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702983366; x=1703588166;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=8P0LbAGXmgn2QmUozUT+jsEZFbsokZnnQ66xwGEyQfc=;
        b=D6xAMYSfBYaXpfCn4pUXF5xLhWtOYgiwnbZtRjnwEaMUQLxttaJtaD3RdDn3ufU0Lr
         inMMLky8D9DHJ5DS9rkauByYNhlvJtwYUKwoYfg9tVK0MAfrdkEadQp2s06Shp70l1Cx
         FtkC16Us/EuE0ZffI0TOy8QwMrbFVpPEPLTcsDmH8F3W4GVcnIAYUSUsHWZOg6o83P1l
         xJXcABWfG7xhC5tHbDyBI8mwfoP7f1QA4fLcpNGMmCuZRMmMuTciZ5/vXlPc2NE/RgKQ
         SGPJBe3IY6Uxka/Hc1cRiSAPdYG8B+zA/InFpg8YA9umP+XEt5olUAv3k/LcQiwl0wm1
         l67g==
X-Gm-Message-State: AOJu0YzYYR11BVZWlEh2obJIxaLxMMmwurrOrUAFkYKFetEBRO9bBkFm
	J8v+rZWHiLVSiPtcMhxWahXS
X-Google-Smtp-Source: AGHT+IFZ+rcC27FHgh6fetvkrbne6swDSH114IRlBMbPRaFw2AAggOIAgL/5ZUF2AIjfWhSKp9ovMQ==
X-Received: by 2002:a05:600c:1c0d:b0:40d:258e:fe9f with SMTP id j13-20020a05600c1c0d00b0040d258efe9fmr208994wms.90.1702983366409;
        Tue, 19 Dec 2023 02:56:06 -0800 (PST)
Message-ID: <000ee2b2-9010-4c43-94de-1c8ea2bd8a61@suse.com>
Date: Tue, 19 Dec 2023 11:56:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 2/7] x86/mm: address MISRA C:2012 Rule 2.1
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: consulting@bugseng.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.1702891792.git.nicola.vetrini@bugseng.com>
 <1cd82cf19a613a122a770bf6670e681ca7fccd44.1702891792.git.nicola.vetrini@bugseng.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: <1cd82cf19a613a122a770bf6670e681ca7fccd44.1702891792.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.12.2023 11:17, Nicola Vetrini wrote:
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -4887,8 +4887,6 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>      default:
>          return subarch_memory_op(cmd, arg);
>      }
> -
> -    return 0;
>  }

When a function is small and it's easy to see that all paths return by
other means, omitting such a final "return <value>" is imo okay. Here,
however, this isn't easy to see, and hence omitting the return is
confusing in a different way from having the return. I guess I'll make
an alternative change (as iirc I had outlined before), for other x86
maintainers to at least consider. The other alternative (causing less
code churn) would imo be to pull out the default case from the switch().

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:05:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:05:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656665.1025001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXv6-0003I3-TM; Tue, 19 Dec 2023 11:05:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656665.1025001; Tue, 19 Dec 2023 11:05:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXv6-0003Hw-Q5; Tue, 19 Dec 2023 11:05:52 +0000
Received: by outflank-mailman (input) for mailman id 656665;
 Tue, 19 Dec 2023 11:05:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aNFb=H6=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFXv5-0003Hq-95
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:05:51 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 911ef441-9e5e-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:05:49 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 524684EE0738;
 Tue, 19 Dec 2023 12:05:49 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 911ef441-9e5e-11ee-98eb-6d05b1d4d9a1
MIME-Version: 1.0
Date: Tue, 19 Dec 2023 12:05:49 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.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>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org, Luca Fancellu <Luca.Fancellu@arm.com>
Subject: Re: [XEN PATCH] xen: add acmacros.h to exclude-list.json
In-Reply-To: <2fd03776043811a8ceae9ae41de5f0fa@bugseng.com>
References: <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.com>
 <055b6cf3-4f29-4f1d-b650-26c6d9be8832@suse.com>
 <2fd03776043811a8ceae9ae41de5f0fa@bugseng.com>
Message-ID: <2c64af71dcb3984f1753ef115868cb7b@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 2023-12-19 11:51, Nicola Vetrini wrote:
> On 2023-12-19 11:37, Jan Beulich wrote:
>> On 19.12.2023 10:02, Nicola Vetrini wrote:
>>> --- a/docs/misra/exclude-list.json
>>> +++ b/docs/misra/exclude-list.json
>>> @@ -209,6 +209,10 @@
>>>            "rel_path": "include/acpi/acglobal.h",
>>>            "comment": "Imported from Linux, ignore for now"
>>>          },
>>> +        {
>>> +          "rel_path": "include/acpi/acmacros.h",
>>> +          "comment": "Imported from Linux, ignore for now"
>>> +        },
>> 
>> Together with what's already there (in context), wouldn't it better be
>> the entire directory then which is excluded, or at least all
>> include/acpi/ac*.h collectively (and perhaps also
>> include/acpi/platform/ac*.h)?
>> 
>> Jan
> 
> +Cc Luca Fancellu
> 
> Sure. I wasn't certain which files are imported from ACPI CA and which 
> aren't.
> I'm also not sure whether "include/acpi/ac*.h" would be properly 
> recognized by other tooling that uses exclude-list.json (only cppcheck 
> I think). I Cc-ed Luca Fancellu on this.

It occurred to me that it's surely ok to use "include/acpi/ac*" and 
"include/acpi/platform/ac*".

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:06:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:06:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656666.1025011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvP-0003fT-5U; Tue, 19 Dec 2023 11:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656666.1025011; Tue, 19 Dec 2023 11:06:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvP-0003fM-2C; Tue, 19 Dec 2023 11:06:11 +0000
Received: by outflank-mailman (input) for mailman id 656666;
 Tue, 19 Dec 2023 11:06: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=Div9=H6=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFXvN-0003Hq-L3
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:06:09 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b2514f9-9e5e-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:06:06 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 98B174EE0738;
 Tue, 19 Dec 2023 12:06:05 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b2514f9-9e5e-11ee-98eb-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 0/6] xen: address violations of MISRA C:2012 Rule 11.8
Date: Tue, 19 Dec 2023 12:05:08 +0100
Message-Id: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic
qualification from the type pointed to by a pointer".

This patch amends or drops casts that unnecessarily
drop const qualifiers.

Example:

int device_tree_for_each_node(const void *fdt);

size_t __init boot_fdt_info(const void *fdt)
{
  int ret = device_tree_for_each_node((void *)fdt); /* Non-compliant */
  int ret = device_tree_for_each_node(fdt);         /* Compliant, proposed change */
}

In this example, the const qualifier is unnecessarily cast away
from the original object, therefore making it non-compliant.

Deviate the following violations:

- removal of const qualifier to comply with function signatures
   A single function could either read or write through a passed in pointer,
   depending on how it is called. It is deemed safe to cast away a const
   qualifier when passing a pointer to such a function, when the other
   parameters guarantee read-only operation.
   A SAF-3-safe comment was added to deviate these violations.

- violations in macro container_of
   Violations caused by this macro are due to pointer arithmetic operations
   with the provided offset. The resulting pointer is then immediately cast back to its
   original type, which preserves the qualifier. This use is deemed safe.

Changes in v2:
- reword SAF-3-safe text;
- merge comments on __hvm_copy;
- add SAF-3-safe comment in x86/hvm.c:3433;
- add SAF-3-safe comment on arm/guestcopy.c raw_copy_to_guest and
  raw_copy_to_guest_flush_dcache;
- remove deviation for function ERR_CAST;
- remove function ERR_CAST;
- move common/version.c to patch xen/common;
- change cast type from const void* to uintptr_t in common/version.c;
- drop redundant cast on fdt.


Maria Celeste Cesario (6):
  xen/arm: address violations of MISRA C:2012 Rule 11.8
  xen/ppc: address violations of MISRA C:2012 Rule 11.8.
  xen: add deviations for Rule 11.8
  xen: add SAF deviation for safe cast removal
  xen: remove unused function ERR_CAST
  xen/common: address violations of MISRA C:2012 Rule 11.8

 automation/eclair_analysis/ECLAIR/deviations.ecl |  7 +++++++
 docs/misra/deviations.rst                        |  7 +++++++
 docs/misra/safe.json                             |  8 ++++++++
 xen/arch/arm/bootfdt.c                           |  6 +++---
 xen/arch/arm/guestcopy.c                         |  2 ++
 xen/arch/arm/include/asm/alternative.h           |  2 +-
 xen/arch/ppc/include/asm/atomic.h                |  2 +-
 xen/arch/x86/hvm/hvm.c                           |  6 ++++--
 xen/common/version.c                             |  2 +-
 xen/include/xen/err.h                            | 13 -------------
 10 files changed, 34 insertions(+), 21 deletions(-)

-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:06:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:06:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656667.1025016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvP-0003in-Er; Tue, 19 Dec 2023 11:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656667.1025016; Tue, 19 Dec 2023 11:06:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvP-0003hs-A9; Tue, 19 Dec 2023 11:06:11 +0000
Received: by outflank-mailman (input) for mailman id 656667;
 Tue, 19 Dec 2023 11:06:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Div9=H6=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFXvO-0003cc-CD
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:06:10 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c46a156-9e5e-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 12:06:08 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 806C34EE0C98;
 Tue, 19 Dec 2023 12:06:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c46a156-9e5e-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2 3/6] xen: add deviations for Rule 11.8
Date: Tue, 19 Dec 2023 12:05:11 +0100
Message-Id: <04cdbf21db915634acd49108edab7d6331df35eb.1702982442.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

The macro 'container_of' violates the Rule because it casts away any
qualifier to do pointer arithmetic, but making the macro definition compliant
would add additional complexity, therefore a deviation is introduced.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
Changes in v2:
- remove deviation for function ERR_CAST;

container_of: Fixing this violation would require the declaration of a new
 macro taking advantage of the return value of the ternary operator ?: :
 its return value preserves qualifiers present on both expression, hence
 returning void* or qualified void* depending on pointer type, like in this macro:
 '#define same_constness_void_ptr(ptr) ((typeof((false ? (void*) 1 : (ptr)))) (ptr))'
 The result could then be used with a Generic to avoid the cast.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
 docs/misra/deviations.rst                        | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 683f2bbfe8..1515378ff1 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -292,6 +292,13 @@ constant expressions are required.\""
 # Series 11
 #
 
+-doc_begin="Violations caused by container_of are due to pointer arithmetic operations
+with the provided offset. The resulting pointer is then immediately cast back to its
+original type, which preserves the qualifier. This use is deemed safe.
+Fixing this violation would require to increase code complexity and lower readability."
+-config=MC3R1.R11.8,reports+={safe,"any_area(any_loc(any_exp(macro(^container_of$))))"}
+-doc_end
+
 -doc_begin="This construct is used to check if the type is scalar, and for this purpose the use of 0 as a null pointer constant is deliberate."
 -config=MC3R1.R11.9,reports+={deliberate, "any_area(any_loc(any_exp(macro(^__ACCESS_ONCE$))))"
 }
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index eda3c8100c..ccf6e90e87 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -248,6 +248,13 @@ Deviations related to MISRA C:2012 Rules:
        If no bits are set, 0 is returned.
      - Tagged as `safe` for ECLAIR.
 
+   * - R11.8
+     - Violations caused by container_of are due to pointer arithmetic operations
+       with the provided offset. The resulting pointer is then immediately cast back to its
+       original type, which preserves the qualifier. This use is deemed safe.
+       Fixing this violation would require to increase code complexity and lower readability.
+     - Tagged as `safe` for ECLAIR.
+    
    * - R11.9
      - __ACCESS_ONCE uses an integer, which happens to be zero, as a
        compile time check. The typecheck uses a cast. The usage of zero or other
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:06:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:06:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656668.1025023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvP-0003pf-Sj; Tue, 19 Dec 2023 11:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656668.1025023; Tue, 19 Dec 2023 11:06:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvP-0003ou-KG; Tue, 19 Dec 2023 11:06:11 +0000
Received: by outflank-mailman (input) for mailman id 656668;
 Tue, 19 Dec 2023 11:06:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Div9=H6=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFXvO-0003Hq-LH
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:06:10 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b79e041-9e5e-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:06:06 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 8DD474EE0C8D;
 Tue, 19 Dec 2023 12:06:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b79e041-9e5e-11ee-98eb-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@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>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH v2 1/6] xen/arm: address violations of MISRA C:2012 Rule 11.8
Date: Tue, 19 Dec 2023 12:05:09 +0100
Message-Id: <cb398c5819310d2dc3413c4ceee685ed23ec7cf3.1702982442.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Add missing const qualifiers in casts.
The variables are originally const-qualified.
There's no reason to drop the qualifiers.

Drop redundant cast to preserve const qualifier.

No functional change.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
Changes in v2:
- drop redundant cast on fdt
---
 xen/arch/arm/bootfdt.c                 | 6 +++---
 xen/arch/arm/include/asm/alternative.h | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
index f496a8cf94..1cbac3cb2a 100644
--- a/xen/arch/arm/bootfdt.c
+++ b/xen/arch/arm/bootfdt.c
@@ -377,7 +377,7 @@ static int __init process_chosen_node(const void *fdt, int node,
         printk("linux,initrd-start property has invalid length %d\n", len);
         return -EINVAL;
     }
-    start = dt_read_paddr((void *)&prop->data, dt_size_to_cells(len));
+    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 )
@@ -390,7 +390,7 @@ static int __init process_chosen_node(const void *fdt, int node,
         printk("linux,initrd-end property has invalid length %d\n", len);
         return -EINVAL;
     }
-    end = dt_read_paddr((void *)&prop->data, dt_size_to_cells(len));
+    end = dt_read_paddr((const void *)&prop->data, dt_size_to_cells(len));
 
     if ( start >= end )
     {
@@ -541,7 +541,7 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
 
     add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
 
-    ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
+    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
     if ( ret )
         panic("Early FDT parsing failed (%d)\n", ret);
 
diff --git a/xen/arch/arm/include/asm/alternative.h b/xen/arch/arm/include/asm/alternative.h
index d3210e82f9..c7632668b6 100644
--- a/xen/arch/arm/include/asm/alternative.h
+++ b/xen/arch/arm/include/asm/alternative.h
@@ -20,7 +20,7 @@ struct alt_instr {
 };
 
 /* Xen: helpers used by common code. */
-#define __ALT_PTR(a,f)		((void *)&(a)->f + (a)->f)
+#define __ALT_PTR(a,f)		((const void *)&(a)->f + (a)->f)
 #define ALT_ORIG_PTR(a)		__ALT_PTR(a, orig_offset)
 #define ALT_REPL_PTR(a)		__ALT_PTR(a, repl_offset)
 
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:06:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:06:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656669.1025039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvR-0004Ln-2B; Tue, 19 Dec 2023 11:06:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656669.1025039; Tue, 19 Dec 2023 11: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 1rFXvQ-0004KT-Tc; Tue, 19 Dec 2023 11:06:12 +0000
Received: by outflank-mailman (input) for mailman id 656669;
 Tue, 19 Dec 2023 11:06:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Div9=H6=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFXvP-0003cc-4X
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:06:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d234269-9e5e-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 12:06:09 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id DBB564EE0C96;
 Tue, 19 Dec 2023 12:06:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d234269-9e5e-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH v2 5/6] xen: remove unused function ERR_CAST
Date: Tue, 19 Dec 2023 12:05:13 +0100
Message-Id: <e6152a631d3bb6ad4c798fe9d795b360100d63f5.1702982442.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

Function ERR_CAST contains a violation of MISRA C:2012 Rule 11.8,
whose headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Since the function has no users, it is appropriate to remove it.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
Commit introduced in v2.
---
 xen/include/xen/err.h | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/xen/include/xen/err.h b/xen/include/xen/err.h
index 2f29b57d28..cbdd1bf7f8 100644
--- a/xen/include/xen/err.h
+++ b/xen/include/xen/err.h
@@ -36,19 +36,6 @@ static inline long __must_check IS_ERR_OR_NULL(const void *ptr)
 	return !ptr || IS_ERR_VALUE((unsigned long)ptr);
 }
 
-/**
- * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type
- * @ptr: The pointer to cast.
- *
- * Explicitly cast an error-valued pointer to another pointer type in such a
- * way as to make it clear that's what's going on.
- */
-static inline void * __must_check ERR_CAST(const void *ptr)
-{
-	/* cast away the const */
-	return (void *)ptr;
-}
-
 static inline int __must_check PTR_RET(const void *ptr)
 {
 	return IS_ERR(ptr) ? PTR_ERR(ptr) : 0;
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:06:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:06:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656670.1025044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvR-0004RP-Cy; Tue, 19 Dec 2023 11:06:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656670.1025044; Tue, 19 Dec 2023 11: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 1rFXvR-0004OG-7T; Tue, 19 Dec 2023 11:06:13 +0000
Received: by outflank-mailman (input) for mailman id 656670;
 Tue, 19 Dec 2023 11:06: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=Div9=H6=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFXvP-0003Hq-Lb
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:06:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9bb7bc45-9e5e-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:06:07 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 1B7B04EE0C92;
 Tue, 19 Dec 2023 12:06:07 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9bb7bc45-9e5e-11ee-98eb-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/6] xen/ppc: address violations of MISRA C:2012 Rule 11.8.
Date: Tue, 19 Dec 2023 12:05:10 +0100
Message-Id: <9270a4fe1712cff6a99e60c7862de1c1b2dde3d6.1702982442.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Fix violation by adding missing const qualifier in cast.

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>
---
Adaptation requested by the community to make the code more consistent.
---
 xen/arch/ppc/include/asm/atomic.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/ppc/include/asm/atomic.h b/xen/arch/ppc/include/asm/atomic.h
index 64168aa3f1..fe778579fb 100644
--- a/xen/arch/ppc/include/asm/atomic.h
+++ b/xen/arch/ppc/include/asm/atomic.h
@@ -16,7 +16,7 @@
 
 static inline int atomic_read(const atomic_t *v)
 {
-    return *(volatile int *)&v->counter;
+    return *(const volatile int *)&v->counter;
 }
 
 static inline int _atomic_read(atomic_t v)
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:06:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:06:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656671.1025053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvS-0004bW-4m; Tue, 19 Dec 2023 11:06:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656671.1025053; Tue, 19 Dec 2023 11: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 1rFXvR-0004a0-RM; Tue, 19 Dec 2023 11:06:13 +0000
Received: by outflank-mailman (input) for mailman id 656671;
 Tue, 19 Dec 2023 11:06: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=Div9=H6=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFXvQ-0003cc-2G
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:06:12 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d6cbe10-9e5e-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 12:06:10 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 7A4024EE0C9B;
 Tue, 19 Dec 2023 12:06:09 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d6cbe10-9e5e-11ee-9b0f-b553b5be7939
From: Simone Ballarin <simone.ballarin@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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH v2 6/6] xen/common: address violations of MISRA C:2012 Rule 11.8
Date: Tue, 19 Dec 2023 12:05:14 +0100
Message-Id: <df682e995b726b5f7ba8af0f69bb888c398eac96.1702982442.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Change cast type from void* to uintptr_t.
void* type cast resulted in violation of the Rule, a cast to type uintptr_t
is more appropriate type-wise.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
Commit introduced in v2
---
 xen/common/version.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/version.c b/xen/common/version.c
index d320135208..e807ef4de0 100644
--- a/xen/common/version.c
+++ b/xen/common/version.c
@@ -178,7 +178,7 @@ void __init xen_build_init(void)
     if ( &n[1] >= __note_gnu_build_id_end )
         return;
 
-    sz = (void *)__note_gnu_build_id_end - (void *)n;
+    sz = (uintptr_t)__note_gnu_build_id_end - (uintptr_t)n;
 
     rc = xen_build_id_check(n, sz, &build_id_p, &build_id_len);
 
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:06:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:06:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656672.1025059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXvS-0004kk-K8; Tue, 19 Dec 2023 11:06:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656672.1025059; Tue, 19 Dec 2023 11: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 1rFXvS-0004jU-Cn; Tue, 19 Dec 2023 11:06:14 +0000
Received: by outflank-mailman (input) for mailman id 656672;
 Tue, 19 Dec 2023 11: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=Div9=H6=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1rFXvQ-0003Hq-Lu
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:06:12 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c871784-9e5e-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:06:08 +0100 (CET)
Received: from beta.station (net-37-182-35-120.cust.vodafonedsl.it
 [37.182.35.120])
 by support.bugseng.com (Postfix) with ESMTPSA id 26ABC4EE0C9A;
 Tue, 19 Dec 2023 12:06:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c871784-9e5e-11ee-98eb-6d05b1d4d9a1
From: Simone Ballarin <simone.ballarin@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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>
Subject: [PATCH v2 4/6] xen: add SAF deviation for safe cast removal
Date: Tue, 19 Dec 2023 12:05:12 +0100
Message-Id: <dff9e788e04aa04970cfbb70d09f4d1baf725506.1702982442.git.maria.celeste.cesario@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
headline states:
"A conversion shall not remove any const, volatile or _Atomic qualification
from the type pointed to by a pointer".

Add SAF-3-safe deviation: removal of const qualifier to comply with function signature.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>
---
Changes in v2:
- reword SAF-3-safe text;
- merge comments on __hvm_copy;
- add SAF-3-safe comment in x86/hvm.c:3433;
- add SAF-3-safe comment on arm/guestcopy.c raw_copy_to_guest and
  raw_copy_to_guest_flush_dcache.
---
 docs/misra/safe.json     | 8 ++++++++
 xen/arch/arm/guestcopy.c | 2 ++
 xen/arch/x86/hvm/hvm.c   | 6 ++++--
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 952324f85c..96b964293a 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -28,6 +28,14 @@
         },
         {
             "id": "SAF-3-safe",
+            "analyser": {
+                "eclair": "MC3R1.R11.8"
+            },
+            "name": "MC3R1.R11.8: removal of const qualifier to comply with function signature",
+            "text": "A single function could either read or write through a passed in pointer, depending on how it is called. It is deemed safe to cast away a const qualifier when passing a pointer to such a function, when the other parameters guarantee read-only operation."
+        },
+        {
+            "id": "SAF-4-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/arch/arm/guestcopy.c b/xen/arch/arm/guestcopy.c
index 6716b03561..cf80ac46b1 100644
--- a/xen/arch/arm/guestcopy.c
+++ b/xen/arch/arm/guestcopy.c
@@ -109,6 +109,7 @@ static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
 
 unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
 {
+    /* SAF-3-safe COPY_to_guest doesn't modify from */
     return copy_guest((void *)from, (vaddr_t)to, len,
                       GVA_INFO(current), COPY_to_guest | COPY_linear);
 }
@@ -116,6 +117,7 @@ unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
 unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
                                              unsigned int len)
 {
+    /* SAF-3-safe COPY_to_guest doesn't modify from */
     return copy_guest((void *)from, (vaddr_t)to, len, GVA_INFO(current),
                       COPY_to_guest | COPY_flush_dcache | COPY_linear);
 }
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 523e0df57c..324893fbcc 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3413,7 +3413,8 @@ static enum hvm_translation_result __hvm_copy(
 enum hvm_translation_result hvm_copy_to_guest_phys(
     paddr_t paddr, const void *buf, unsigned int size, struct vcpu *v)
 {
-    return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */,
+    /* SAF-3-safe HVMCOPY_to_guest doesn't modify buf */
+    return __hvm_copy((void *)buf,
                       paddr, size, v,
                       HVMCOPY_to_guest | HVMCOPY_phys, 0, NULL);
 }
@@ -3429,7 +3430,8 @@ enum hvm_translation_result hvm_copy_to_guest_linear(
     unsigned long addr, const void *buf, unsigned int size, uint32_t pfec,
     pagefault_info_t *pfinfo)
 {
-    return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */,
+    /* SAF-3-safe HVMCOPY_to_guest doesn't modify buf */
+    return __hvm_copy((void *)buf,
                       addr, size, current, HVMCOPY_to_guest | HVMCOPY_linear,
                       PFEC_page_present | PFEC_write_access | pfec, pfinfo);
 }
-- 
2.40.0



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:10:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:10:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656696.1025080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXzR-0000QJ-DU; Tue, 19 Dec 2023 11:10:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656696.1025080; Tue, 19 Dec 2023 11:10:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFXzR-0000QC-Ae; Tue, 19 Dec 2023 11:10:21 +0000
Received: by outflank-mailman (input) for mailman id 656696;
 Tue, 19 Dec 2023 11:10:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1vMc=H6=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rFXzP-0000Q6-Qc
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:10:19 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20600.outbound.protection.outlook.com
 [2a01:111:f403:2612::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 30d2239a-9e5f-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:10:17 +0100 (CET)
Received: from DU2P251CA0026.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:230::28)
 by DBBPR08MB6169.eurprd08.prod.outlook.com (2603:10a6:10:205::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 11:10:08 +0000
Received: from DU6PEPF0000A7E3.eurprd02.prod.outlook.com
 (2603:10a6:10:230:cafe::5c) by DU2P251CA0026.outlook.office365.com
 (2603:10a6:10:230::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Tue, 19 Dec 2023 11:10:08 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000A7E3.mail.protection.outlook.com (10.167.8.41) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7113.14 via Frontend Transport; Tue, 19 Dec 2023 11:10:07 +0000
Received: ("Tessian outbound 385ad2f98d71:v228");
 Tue, 19 Dec 2023 11:10:07 +0000
Received: from 6efb34b4c112.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 C54F7031-8D3E-4716-9A19-B5870E9C936C.1; 
 Tue, 19 Dec 2023 11:10:02 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6efb34b4c112.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Tue, 19 Dec 2023 11:10:01 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com (2603:10a6:20b:8f::22)
 by DB3PR08MB9060.eurprd08.prod.outlook.com (2603:10a6:10:433::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.37; Tue, 19 Dec
 2023 11:09:56 +0000
Received: from AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838]) by AM6PR08MB3749.eurprd08.prod.outlook.com
 ([fe80::8da:b5c2:b334:838%7]) with mapi id 15.20.7091.034; Tue, 19 Dec 2023
 11:09: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: 30d2239a-9e5f-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=lVNsqCxUgnENJgzA9fYR/xZMVDWpY41FvQPtO/UqEA0/ysIvuYZQ2Tfa2Idq2T+vSfAOB8Xm+cjtOnwBYwDhLxM/A5Luju5Z5riu9MU9NrZSuKgMubNulp+XY+wNURO5GtUtTeYpIA9ziQGbTp98QkD40P4hX45lf/ulk3oeXSPixczat5hqzZsYMSuaVUdsPLNmtyJ+QB6NpCeC3CClVG07bS1+XEZhYexOOTFQCcgWKmaf3If81hJ41kXPmuGKi98HZDub2ISiL082NZV9cMwAuMvHYQpX6fa8d8zj0ygts3lAi3BBLrJw6guJkk8pY9OXSVgCmOangUJ12QkdgQ==
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=tlrBFriPsXkB3qHDYp25yU4rCzS8l4pf0tcegfHsrJw=;
 b=QYIq0Q7I7y0AvL2GjQalA7tCn3bhBsQqezJJXNrzH2YNo0wuUz06pIUHQcK8uC0AxhJZNH5pkSBXzpDymiRgA7ssRj07hcEhXbBXwR8dOxp2h56tdA/dm9QLi3HROmJKvsf82Kf0++t4u1j/nXcZW6HwARa1yvr8Bcz/PRf4/EKXRENcfh4Q5M2XeOn2P+2G9qouncbm1J7ngqj5xV4Kc84Vx4fVxPVK1leNdDuR8/e3Fl6CyfqjlM5uQftZGyJ+dQhYFIcW2hqdOMC0YL/DwzMTAzodNkNzBmM34cbbBu60O4loeI0N/G43PmiPYJDPWztUPr6tlT5J3T8ovQsajg==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tlrBFriPsXkB3qHDYp25yU4rCzS8l4pf0tcegfHsrJw=;
 b=iW6yPqhEMvQYLM7l3hiEQBACrYQzxwcMfKc75rwDgqLo7yu22uoCjesS/VXLVueAbtyqA7rpRnNq1UuSBz4/QT5X27Q281B4t54fqUtyXA5s75OMuYq2LqY28n/zmthFnh5Em6lzxq/wAtV5pLZ6JMJVtdSQavz6tx6rT3GPWko=
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=armh.onmicrosoft.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: bd87a25f8bb1bc0e
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TtOVbTWEjRVcVGz9XDEgj5NYVy4dDMPWnIpeEIjIGvoYjZ4BUQXrLXvkxbJDRamIQYJ6TjAQ5SnGsjM8KOVhBhbW3pY6wV79f7xdfBXNNDbWn09E3UUiEyDkFKV3PrjLasSn977ZD2kvzWE0rATsVLQ49jliODtZFyfZiraxA9aIlTbBj/q4N5SL746JFxm0ZmkuHUhSGtVsuc0zm/tR0+puKPRJelQ7KNtNE1PbO454pKZDL7rm1wVBcFwb218XqfpC0oxnTtBFgDGm4wrk6Duxyy02BrpoOQK+uSmScAipOJAHXyHKdsuXv0e75jBl+/GApRWZQE6Mo2Hw2qjWtw==
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=tlrBFriPsXkB3qHDYp25yU4rCzS8l4pf0tcegfHsrJw=;
 b=gU0KIDN6tojn4Iz9aBJfrqgEPbJc/81k8vf6whtog5YX0WCw9gulfqT6vGTQ8RLCzs19GqQP6RKdPv89DvAy5ZvkA1OWJuw1Cy+Po1tpPdxjz/8YbKobrDa8wsiV0GIlUTfJ56nNLjc4viGF3bggVZNUeesCVLrmblBljxsyIHnNhdhhC1YqoVxiz/ZWYH9BQOH5Oy2XZl+mcVbDQr5thpMsIYggKxqCu99Lb366nHzc28HWCY0k4VhBK8DRznSSzmjjCJIbViH66bJ76jLTVdlplQMP7/S51Jik4kjcg7dteOgdXW5/9EG3+EO1CQ4eg1I0MrFwYqUPEf4sWg0tSQ==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tlrBFriPsXkB3qHDYp25yU4rCzS8l4pf0tcegfHsrJw=;
 b=iW6yPqhEMvQYLM7l3hiEQBACrYQzxwcMfKc75rwDgqLo7yu22uoCjesS/VXLVueAbtyqA7rpRnNq1UuSBz4/QT5X27Q281B4t54fqUtyXA5s75OMuYq2LqY28n/zmthFnh5Em6lzxq/wAtV5pLZ6JMJVtdSQavz6tx6rT3GPWko=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: Jan Beulich <jbeulich@suse.com>, "consulting@bugseng.com"
	<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>, Wei Liu <wl@xen.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen: add acmacros.h to exclude-list.json
Thread-Topic: [XEN PATCH] xen: add acmacros.h to exclude-list.json
Thread-Index: AQHaMmldSNcDtDpNs0m0RNrxIeAVZrCwcdKAgAABGYA=
Date: Tue, 19 Dec 2023 11:09:56 +0000
Message-ID: <2F345562-4049-4A50-9793-D0002B239C43@arm.com>
References:
 <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.com>
 <055b6cf3-4f29-4f1d-b650-26c6d9be8832@suse.com>
 <2fd03776043811a8ceae9ae41de5f0fa@bugseng.com>
 <2c64af71dcb3984f1753ef115868cb7b@bugseng.com>
In-Reply-To: <2c64af71dcb3984f1753ef115868cb7b@bugseng.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.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM6PR08MB3749:EE_|DB3PR08MB9060:EE_|DU6PEPF0000A7E3:EE_|DBBPR08MB6169:EE_
X-MS-Office365-Filtering-Correlation-Id: b194fb0b-bebe-4390-d36a-08dc00830f43
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 GsSA4UYlvC3w93iNvlFlfMjeyO+hBz7befidqkypHfSS+c+836UBt/YwWiq7vGgYh+pQxomIEN16t1nmZE79TEvhp4r2ICiqyYI2Y7ZNNVEkP3K9MElWnesvpsgEkzm0LOWpXxqh/JdPU86pJv0U944FoMsBAK/aAXwtg+MeeQJcZsilHETE5tDZ7M0iXu16BU1Zy+v+o1DbCoozfnBXn90DqzMJO7QZgm2mFwKEgF56jlbSV+43OljeFHmuOGEJ7pTU/YUkNu3jQ4KZFiKJTvOoymSwaIkQOC539LWVhFb+S1sQocQqcZV+NzoYVA7kcWUC5NzIKxg55GwLcw1eYSKcLa12/ZGurQ9GaCkh61FqAy2tTRW/2MwbmvJdGfw+oXAPG3PZOy8l5Xvzejg0FJKGHTk/RweJkbGenVVvM4JTFaev/kU8gkkxaiQGLlFMPbseoN9gc2r/pWCdIxEGo7uOOlp0u6okeHFbg/40QjhRlpgEmK99Yd9+s8cRvNe50LZyFLJDSqG1mXYDCFSUn9Bc2hjvYYsQNxAmZdLnIVm9Qs3KnaoEDiJdxChkq8g4UPjfVcqMFBwN717kxhia0+N5vnxOhK9cXtenUtVQcRrs+I4F3UNJDOLjVBY6wMcX536taCxR0O65jgrFLohcRQ==
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:(13230031)(366004)(346002)(136003)(376002)(39850400004)(396003)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38070700009)(76116006)(36756003)(86362001)(33656002)(91956017)(38100700002)(122000001)(66946007)(83380400001)(26005)(2616005)(53546011)(71200400001)(2906002)(478600001)(6916009)(66556008)(54906003)(64756008)(6486002)(316002)(66476007)(4001150100001)(66446008)(6512007)(6506007)(8676002)(8936002)(41300700001)(4326008)(5660300002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <12E40BE0EAE8334F82A6FA5744464AD9@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB9060
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:
 DU6PEPF0000A7E3.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1588c6bb-5bf1-4277-594c-08dc00830884
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	U+i5+cL35jabtPqBdj6G6v99Gynl/RVltWuAfYH5p3CLU1rZTJClmbBQY/D5gn+9dbpn/pSlAyujWPnsaE9aSBAIrM5WFXTBKz8fN1YB/pw4J0Uaf986stQcqtCbQnHiIwkcPI784ZAlC9mphfcfbcMOGEzRyffYtL2q149uI9QmMhEZoxptJlSC6m7wE7FAV54W4/wbp9KJt8ffQr9dLmt0HYaRwaKwA5iQWTKx0Z9Asb0/956WG3gSD/BxtRZYU+xi8El9bzhbIGJtkhEc0pQ9CqGERTsW9jKtkQePr2jn5h3CtL2b3mby/xuAPbZKK3X3S65qhkqIVMqFNh1YyUj50lF9NK/i7p3kCYgGV6wxMEBK/uRPZcByPsQx+pPc2Ig6CKZpUiKZUcQMt1rnLP7ATbM2N7ZYugMc4Nnjswfzj4tvkVKw27AJBgenrVxbMCaYxY9bg47LEOiw93cFFu3b4bRT1rTMWyClPuqldz2Pj/dJ6VJQOjCfT8hhRmLRf1GztSajm83pB291FXyx4LixpQf9ho1VDcY3qSCjhA3ZnJ8FZvEq9Sgr0a0BioW0TGav4Mn1YFA7a7TRfZOoqSyu8B39uqsGS8zUcKhiHyyEdrMMN7uo+12tVMNSE+h1H/i7mMjPzVI7rUpnJXIjp6j6fDL76Hw+CukdR8lrvi3zqoTJnnH1I8VXmwIINtKr2Vrjf3PsQI4M+fAM/OtM114+TuQwEny5v4RYPvD649Q=
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:(13230031)(4636009)(39860400002)(136003)(346002)(396003)(376002)(230922051799003)(451199024)(82310400011)(1800799012)(186009)(64100799003)(36840700001)(40470700004)(46966006)(26005)(2616005)(336012)(53546011)(6506007)(6512007)(36860700001)(5660300002)(47076005)(83380400001)(478600001)(2906002)(8676002)(6862004)(4326008)(4001150100001)(8936002)(41300700001)(70586007)(70206006)(54906003)(6486002)(316002)(356005)(81166007)(82740400003)(33656002)(36756003)(86362001)(40460700003)(40480700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 11:10:07.6586
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b194fb0b-bebe-4390-d36a-08dc00830f43
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:
	DU6PEPF0000A7E3.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6169

SGkhDQoNCj4gT24gMTkgRGVjIDIwMjMsIGF0IDExOjA1LCBOaWNvbGEgVmV0cmluaSA8bmljb2xh
LnZldHJpbmlAYnVnc2VuZy5jb20+IHdyb3RlOg0KPiANCj4gT24gMjAyMy0xMi0xOSAxMTo1MSwg
Tmljb2xhIFZldHJpbmkgd3JvdGU6DQo+PiBPbiAyMDIzLTEyLTE5IDExOjM3LCBKYW4gQmV1bGlj
aCB3cm90ZToNCj4+PiBPbiAxOS4xMi4yMDIzIDEwOjAyLCBOaWNvbGEgVmV0cmluaSB3cm90ZToN
Cj4+Pj4gLS0tIGEvZG9jcy9taXNyYS9leGNsdWRlLWxpc3QuanNvbg0KPj4+PiArKysgYi9kb2Nz
L21pc3JhL2V4Y2x1ZGUtbGlzdC5qc29uDQo+Pj4+IEBAIC0yMDksNiArMjA5LDEwIEBADQo+Pj4+
ICAgICAgICAgICAicmVsX3BhdGgiOiAiaW5jbHVkZS9hY3BpL2FjZ2xvYmFsLmgiLA0KPj4+PiAg
ICAgICAgICAgImNvbW1lbnQiOiAiSW1wb3J0ZWQgZnJvbSBMaW51eCwgaWdub3JlIGZvciBub3ci
DQo+Pj4+ICAgICAgICAgfSwNCj4+Pj4gKyAgICAgICAgew0KPj4+PiArICAgICAgICAgICJyZWxf
cGF0aCI6ICJpbmNsdWRlL2FjcGkvYWNtYWNyb3MuaCIsDQo+Pj4+ICsgICAgICAgICAgImNvbW1l
bnQiOiAiSW1wb3J0ZWQgZnJvbSBMaW51eCwgaWdub3JlIGZvciBub3ciDQo+Pj4+ICsgICAgICAg
IH0sDQo+Pj4gVG9nZXRoZXIgd2l0aCB3aGF0J3MgYWxyZWFkeSB0aGVyZSAoaW4gY29udGV4dCks
IHdvdWxkbid0IGl0IGJldHRlciBiZQ0KPj4+IHRoZSBlbnRpcmUgZGlyZWN0b3J5IHRoZW4gd2hp
Y2ggaXMgZXhjbHVkZWQsIG9yIGF0IGxlYXN0IGFsbA0KPj4+IGluY2x1ZGUvYWNwaS9hYyouaCBj
b2xsZWN0aXZlbHkgKGFuZCBwZXJoYXBzIGFsc28NCj4+PiBpbmNsdWRlL2FjcGkvcGxhdGZvcm0v
YWMqLmgpPw0KPj4+IEphbg0KPj4gK0NjIEx1Y2EgRmFuY2VsbHUNCj4+IFN1cmUuIEkgd2Fzbid0
IGNlcnRhaW4gd2hpY2ggZmlsZXMgYXJlIGltcG9ydGVkIGZyb20gQUNQSSBDQSBhbmQgd2hpY2gg
YXJlbid0Lg0KPj4gSSdtIGFsc28gbm90IHN1cmUgd2hldGhlciAiaW5jbHVkZS9hY3BpL2FjKi5o
IiB3b3VsZCBiZSBwcm9wZXJseSByZWNvZ25pemVkIGJ5IG90aGVyIHRvb2xpbmcgdGhhdCB1c2Vz
IGV4Y2x1ZGUtbGlzdC5qc29uIChvbmx5IGNwcGNoZWNrIEkgdGhpbmspLiBJIENjLWVkIEx1Y2Eg
RmFuY2VsbHUgb24gdGhpcy4NCj4gDQo+IEl0IG9jY3VycmVkIHRvIG1lIHRoYXQgaXQncyBzdXJl
bHkgb2sgdG8gdXNlICJpbmNsdWRlL2FjcGkvYWMqIiBhbmQgImluY2x1ZGUvYWNwaS9wbGF0Zm9y
bS9hYyoiLg0KDQpZZXMgSSB0aGluayBpdOKAmXMgZmluZSwgaXQganVzdCBjb21lIHRvIG15IG1p
bmQgbm93IHRoYXQgdGhpcyBjb3VsZCBoYXZlIHRoZSByaXNrIHRoYXQgaWYNCmFub3RoZXIgZmls
ZSBpcyBhZGRlZCB3aXRoIOKAmGFjJyBwcmVmaXgsIGV2ZW4gaWYgaXQgY291bGQgYmUgc3ViamVj
dCB0byBNSVNSQSBjb21wbGlhbmNlLA0KaXQgd2lsbCBiZSBleGNsdWRlZC4NCg0KSWYgdGhhdCBy
aXNrIGlzIG5lZ2xpZ2libGUgZm9yIHRoZSBtYWludGFpbmVyIG9mIHRoYXQgcGFydCwgdGhlbiBp
dOKAmXMgZmluZS4NCg0KDQo+IA0KPiAtLSANCj4gTmljb2xhIFZldHJpbmksIEJTYw0KPiBTb2Z0
d2FyZSBFbmdpbmVlciwgQlVHU0VORyBzcmwgKGh0dHBzOi8vYnVnc2VuZy5jb20pDQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:20:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:20:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656711.1025091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFY8m-00026a-AT; Tue, 19 Dec 2023 11:20:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656711.1025091; Tue, 19 Dec 2023 11:20:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFY8m-00026T-7B; Tue, 19 Dec 2023 11:20:00 +0000
Received: by outflank-mailman (input) for mailman id 656711;
 Tue, 19 Dec 2023 11:19: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFY8l-000258-4d
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:19:59 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8aa04c7c-9e60-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:19:57 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c3fe6c08fso50811365e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 03:19:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d14-20020a05600c34ce00b0040c6b667ce3sm2421164wmq.1.2023.12.19.03.19.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 03:19:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8aa04c7c-9e60-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702984797; x=1703589597; 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=l+TBfPNEvQr569JsrAXlagEv7wqY4vXl9AQjzAh+6Bs=;
        b=SqK0v3tgeYJlyVSqmpB2ELRt1YLMJF9pqSUgy8qqCC/j3l8emHBCZs1+z5B0b+1nsS
         AET/QNCyZewy67X6/Ue0mJweIuGm9d/lGefeh+vzJgoZa3ybRa6cuJEpO+LcqtF6XtvX
         6CdK16Okbm1f/RjKtjkQeEoP679LyN8Wwb0KxTNQ0c2wzGI6M+kYzva4n3AoXSciszUX
         9pVz4UEtxpvbH4DdVy9qqQM/uWTbYZ2dQvgU/mRjW2CuL90YCaa6U9XJGyPTlNqduG6e
         QJQHGueim0cRKsC0J3cszde/AV1WaGbmIabaeAIGaDq0eAwHAQip1nwbn5cFkvP5SUXB
         QJ7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702984797; x=1703589597;
        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=l+TBfPNEvQr569JsrAXlagEv7wqY4vXl9AQjzAh+6Bs=;
        b=lPVXQI6zdmkJbEHUASfCllabVXG8G4ZJFkPYzN+Th/5RNGn2MM1ROuWAWUO4vvpO3s
         ffL8VS8pxuJ+revp+bbcMfcUkIoXny8t05vaOPHZgcvISEd568FeZWA+mKfuV6Uk6lp6
         uyqIcyP3Sp+8pxJvNFCdp6mFBUPHDibsDbvYOBq2HG35dOuQIPIhSwhKJKrBzDWSympW
         vMEYpgofApX46AzLuWPW9myubIuKtLFiYxAcB2SwKtacAVhg7Cf1m7KkQvwT6G9uHYxe
         dJnLINdBE7cnnim+b1ZTcI/spWn9XfJHfQIhLqzTq3EP4KZnFuTe6YuB9stUuynSRlx3
         kzUg==
X-Gm-Message-State: AOJu0Yw7XcWTJJr4awM5IDlLVU/3Yn6xbKlZlmlbVo6/HzNtqXPFdOsw
	7ned6UTgjA7qQojyY77RgODq9/ry3I6qPubdslJI
X-Google-Smtp-Source: AGHT+IHYA64qaks9I+/AAoYGhrcVOS9NpRS7vyNAdLAE/OuiPI3eBzl7IIep0Pds9xFeru9DPdbSLw==
X-Received: by 2002:a05:600c:3151:b0:40d:190c:160f with SMTP id h17-20020a05600c315100b0040d190c160fmr1002428wmo.110.1702984797431;
        Tue, 19 Dec 2023 03:19:57 -0800 (PST)
Message-ID: <e944cc4f-354c-4752-8794-03e6a7517372@suse.com>
Date: Tue, 19 Dec 2023 12:19:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/mm: use "break" in arch_memory_op()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The final return statement is unreachable and hence disliked by Misra
C:2012 (rule 2.1). Convert those case-specific (main) return statements
which already use "rc", or in one case when it can be used without
further adding of code, to break.

No functional change intended.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This is an alternative proposal to
https://lists.xen.org/archives/html/xen-devel/2023-12/msg01537.html.
Yet another option would be to simply pull the default case out of the
switch() statement.

--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4724,7 +4724,7 @@ long arch_memory_op(unsigned long cmd, X
         spin_unlock(&d->arch.e820_lock);
 
         rcu_unlock_domain(d);
-        return rc;
+        break;
     }
 
     case XENMEM_memory_map:
@@ -4818,7 +4818,7 @@ long arch_memory_op(unsigned long cmd, X
         if ( __copy_to_guest(arg, &ctxt.map, 1) )
             return -EFAULT;
 
-        return 0;
+        break;
     }
 
     case XENMEM_machphys_mapping:
@@ -4880,7 +4880,7 @@ long arch_memory_op(unsigned long cmd, X
         }
 
         rcu_unlock_domain(d);
-        return rc;
+        break;
     }
 #endif
 
@@ -4888,7 +4888,7 @@ long arch_memory_op(unsigned long cmd, X
         return subarch_memory_op(cmd, arg);
     }
 
-    return 0;
+    return rc;
 }
 
 int cf_check mmio_ro_emulated_write(


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:22:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:22:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656713.1025100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYAe-0003kW-LZ; Tue, 19 Dec 2023 11:21:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656713.1025100; Tue, 19 Dec 2023 11:21:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYAe-0003kP-It; Tue, 19 Dec 2023 11:21:56 +0000
Received: by outflank-mailman (input) for mailman id 656713;
 Tue, 19 Dec 2023 11:21:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFYAd-0003kI-K8
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:21:55 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d069affd-9e60-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:21:54 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c580ba223so55517305e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 03:21:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v4-20020a05600c470400b0040b37f107c4sm2379432wmo.16.2023.12.19.03.21.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 03:21:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d069affd-9e60-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702984914; x=1703589714; 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=8iDeP7+nBkAeHmXEmwC1SKL4tNpSnffZ5LhiRrqQEUo=;
        b=dEhlPcGVMTr3wjWBtGiP47lWY6hGvJ/l4cpzmWOae+yguOzXZ3gikjryH3skw67lHu
         tepRAXmMtPbA6FbPjVXfcHlDM/xuHCF/77et9+G43Jb76bUypKO8wWEMRe1IbRBhipsZ
         hPYB6mYWMeEoSagx/c8AeM+RjflRSTUkMcIHAs55DHKF8HU1C7vA0OnsC+L0FdWvo6c/
         hdLQAZ++071d1PCtGN8/xmuvE01FBAwCopaPdWe5CiMgSuiuQr/WYpOEYSicV04r7EL8
         N/Taw/paBBlh9r+mO4Jn0bCKFh3IFbLD7ymmxnzCzg/eW/NEf7IAOlzq6FrK6mSIC8nR
         /ccw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702984914; x=1703589714;
        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=8iDeP7+nBkAeHmXEmwC1SKL4tNpSnffZ5LhiRrqQEUo=;
        b=FxKRHTviUO9llp1MDX7jNuhZZjCZxCXZrzSHQzvIUpNrQcRbACYAjdW+D3hQlif/T/
         rHw+waFtkaW6YaHfXRYfNGKugYquuhgPTZoA6pEFxotQNEstNP2EpOHokHkYHq6HeTCe
         h+mOp7fqBKFiBbTjvXEc0BfCtBdRqRCPv6ZWOmYeGGasw6RoSzfOz2J6Kk3xxJNyKncJ
         SjHa7PrIUUgBVX/N/OiDfB2q0hkLEY/l5xWyuIt0U9Kv6hCuqaoCs1TPvLuCgtM/tTcR
         dN/FB9WavKE7ZCmzfgpEd7sTHSTj7K8bt3QuAOiI7RyAkUfN9Ie3gLjhAsoKPVxcTmgE
         Uplw==
X-Gm-Message-State: AOJu0YxiKNDxd4J7afk+eBbTsW1nov0FgXn7CxWFmxlFZUlz37b0Adh/
	+idCzECKqj1/v/ctzwKJ9A/3EoL8YMZthyGnvP5+
X-Google-Smtp-Source: AGHT+IGTEkYe16KgOiOHm7twoKF1IJYOJ7yup+LsqoJmx4kv02ujMM6b3otNlkkHYcXQ5HIXr1DkcQ==
X-Received: by 2002:a05:600c:470e:b0:40c:5f0b:d638 with SMTP id v14-20020a05600c470e00b0040c5f0bd638mr5793047wmo.182.1702984914484;
        Tue, 19 Dec 2023 03:21:54 -0800 (PST)
Message-ID: <c12f20a3-407c-4914-b6a0-1690962fd72c@suse.com>
Date: Tue, 19 Dec 2023 12:21:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/platform: tidy do_platform_op() a little
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.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

The function has a few stray scopes and inconsistent use (indentation)
of break statements. Drop the stray braces and bring all the break-s in
line with one another. This in particular means dropping a redundant
break from XENPF_cpu_offline handling, pleasing Misra C:2012 rule 2.1.

No functional change intended.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This is an alternative proposal to
https://lists.xen.org/archives/html/xen-devel/2023-12/msg01540.html.

A few more scopes could be eliminated if the various "cpu" variables
were consolidated to switch() of function scope.

--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -258,7 +258,6 @@ ret_t do_platform_op(
         break;
 
     case XENPF_add_memtype:
-    {
         ret = mtrr_add_page(
             op->u.add_memtype.mfn,
             op->u.add_memtype.nr_mfns,
@@ -273,11 +272,9 @@ ret_t do_platform_op(
             if ( ret != 0 )
                 mtrr_del_page(ret, 0, 0);
         }
-    }
-    break;
+        break;
 
     case XENPF_del_memtype:
-    {
         if (op->u.del_memtype.handle == 0
             /* mtrr/main.c otherwise does a lookup */
             && (int)op->u.del_memtype.reg >= 0)
@@ -288,8 +285,7 @@ ret_t do_platform_op(
         }
         else
             ret = -EINVAL;
-    }
-    break;
+        break;
 
     case XENPF_read_memtype:
     {
@@ -306,8 +302,8 @@ ret_t do_platform_op(
             ret = __copy_field_to_guest(u_xenpf_op, op, u.read_memtype)
                   ? -EFAULT : 0;
         }
+        break;
     }
-    break;
 
     case XENPF_microcode_update:
     {
@@ -316,8 +312,8 @@ ret_t do_platform_op(
         guest_from_compat_handle(data, op->u.microcode.data);
 
         ret = microcode_update(data, op->u.microcode.length);
+        break;
     }
-    break;
 
     case XENPF_platform_quirk:
     {
@@ -340,8 +336,8 @@ ret_t do_platform_op(
             ret = -EINVAL;
             break;
         }
+        break;
     }
-    break;
 
     case XENPF_firmware_info:
         switch ( op->u.firmware_info.type )
@@ -521,8 +517,8 @@ ret_t do_platform_op(
 
         if ( ret == 0 && __copy_field_to_guest(u_xenpf_op, op, u.getidletime) )
             ret = -EFAULT;
+        break;
     }
-    break;
 
     case XENPF_set_processor_pminfo:
         switch ( op->u.set_pminfo.type )
@@ -601,8 +597,8 @@ ret_t do_platform_op(
         put_cpu_maps();
 
         ret = __copy_field_to_guest(u_xenpf_op, op, u.pcpu_info) ? -EFAULT : 0;
+        break;
     }
-    break;
 
     case XENPF_get_cpu_version:
     {
@@ -637,8 +633,8 @@ ret_t do_platform_op(
 
         if ( __copy_field_to_guest(u_xenpf_op, op, u.pcpu_version) )
             ret = -EFAULT;
+        break;
     }
-    break;
 
     case XENPF_get_ucode_revision:
     {
@@ -666,8 +662,8 @@ ret_t do_platform_op(
 
         if ( __copy_field_to_guest(u_xenpf_op, op, u.ucode_revision) )
             ret = -EFAULT;
+        break;
     }
-    break;
 
     case XENPF_cpu_online:
     {
@@ -725,7 +721,6 @@ ret_t do_platform_op(
             0, cpu_down_helper, (void *)(unsigned long)cpu);
         break;
     }
-    break;
 
     case XENPF_cpu_hotadd:
         ret = xsm_resource_plug_core(XSM_HOOK);
@@ -735,7 +730,7 @@ ret_t do_platform_op(
         ret = cpu_add(op->u.cpu_add.apic_id,
                       op->u.cpu_add.acpi_id,
                       op->u.cpu_add.pxm);
-    break;
+        break;
 
     case XENPF_mem_hotadd:
         ret = xsm_resource_plug_core(XSM_HOOK);
@@ -775,8 +770,8 @@ ret_t do_platform_op(
             ret = -EINVAL;
             break;
         }
+        break;
     }
-    break;
 
     case XENPF_resource_op:
     {
@@ -842,8 +837,8 @@ ret_t do_platform_op(
             ret = ra.nr_done;
 
         xfree(ra.entries);
+        break;
     }
-    break;
 
     case XENPF_get_symbol:
     {
@@ -870,8 +865,8 @@ ret_t do_platform_op(
             ret = -EFAULT;
         if ( !ret && __copy_field_to_guest(u_xenpf_op, op, u.symdata) )
             ret = -EFAULT;
+        break;
     }
-    break;
 
 #ifdef CONFIG_VIDEO
     case XENPF_get_dom0_console:


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:22:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:22:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656643.1025111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYBI-0004Jy-29; Tue, 19 Dec 2023 11:22:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656643.1025111; Tue, 19 Dec 2023 11:22:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYBH-0004Jr-Vs; Tue, 19 Dec 2023 11:22:35 +0000
Received: by outflank-mailman (input) for mailman id 656643;
 Tue, 19 Dec 2023 10:42: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=pd1e=H6=damsy.net=pierre-eric@srs-se1.protection.inumbo.net>)
 id 1rFXY8-0005Cg-I9
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 10:42:09 +0000
Received: from mail.damsy.net (mail.damsy.net [85.90.245.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 40a0d39b-9e5b-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 11:42:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 40a0d39b-9e5b-11ee-9b0f-b553b5be7939
Message-ID: <31891dcd-d72a-4d81-8bb1-579c6a8e6365@damsy.net>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=damsy.net; s=201803;
	t=1702982523;
	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=3575rjkDpAj2qDIT9c9EXnf7PqaPnB51hWsSon8Voos=;
	b=bJd2yQAW9oaHXk5iTSIzLjsmuhJZxrxpEUIMh345UF3XZS3+xAsl1GPXy8Y6NAfwp1Pm7i
	YD4yTTxMEaDPJwhl4b5oSt7E6MR9zQUqhBaAaAWGLv8D6v65dtEdOMVt+LT9z0ER164xMq
	Pl5gqgbDRJxvJkBYmBNkbjZ3ZpvIKYJJAa6kZYU87GWTaUuYumbX/no+X5NWmd08+T1z07
	SLrCdWIBMP6sJRPVRt4CXgTsyN1lDL0Dz1jzkjcSt0Jae8eYQRB1zIeRkH7ORn7DrgQ9r4
	HdZq8cHOIX+y60mDkvkNCzmnzRGIl/800IOb1seWgdhqpeod75eXqE0jykUwiA==
Date: Tue, 19 Dec 2023 11:42:02 +0100
MIME-Version: 1.0
Subject: Re: [PATCH v6 09/11] virtio-gpu: Support Venus capset
To: Huang Rui <ray.huang@amd.com>, Akihiko Odaki <akihiko.odaki@daynix.com>,
 =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: xen-devel@lists.xenproject.org,
 Gurchetan Singh <gurchetansingh@chromium.org>, ernunes@redhat.com,
 Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alex Deucher <alexander.deucher@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
 Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>,
 Antonio Caggiano <antonio.caggiano@collabora.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-10-ray.huang@amd.com>
Content-Language: fr
From: Pierre-Eric Pelloux-Prayer <pierre-eric@damsy.net>
In-Reply-To: <20231219075320.165227-10-ray.huang@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Ray, Antonio,


Le 19/12/2023 Ã  08:53, Huang Rui a Ã©critÂ :
> From: Antonio Caggiano <antonio.caggiano@collabora.com>
> 
> Add support for the Venus capset, which enables Vulkan support through
> the Venus Vulkan driver for virtio-gpu.
> 
> Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> ---
> 
> No change in v6.
> 
>   hw/display/virtio-gpu-virgl.c | 21 +++++++++++++++++----
>   1 file changed, 17 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
> index be9da6e780..f35a751824 100644
> --- a/hw/display/virtio-gpu-virgl.c
> +++ b/hw/display/virtio-gpu-virgl.c
> @@ -506,6 +506,11 @@ static void virgl_cmd_get_capset_info(VirtIOGPU *g,
>           virgl_renderer_get_cap_set(resp.capset_id,
>                                      &resp.capset_max_version,
>                                      &resp.capset_max_size);
> +    } else if (info.capset_index == 2) {
> +        resp.capset_id = VIRTIO_GPU_CAPSET_VENUS;
> +        virgl_renderer_get_cap_set(resp.capset_id,
> +                                   &resp.capset_max_version,
> +                                   &resp.capset_max_size);
>       } else {
>           resp.capset_max_version = 0;
>           resp.capset_max_size = 0;
> @@ -978,10 +983,18 @@ int virtio_gpu_virgl_init(VirtIOGPU *g)
>   
>   int virtio_gpu_virgl_get_num_capsets(VirtIOGPU *g)
>   {
> -    uint32_t capset2_max_ver, capset2_max_size;
> +    uint32_t capset2_max_ver, capset2_max_size, num_capsets;
> +    num_capsets = 1;
> +
>       virgl_renderer_get_cap_set(VIRTIO_GPU_CAPSET_VIRGL2,
> -                              &capset2_max_ver,
> -                              &capset2_max_size);
> +                               &capset2_max_ver,
> +                               &capset2_max_size);
> +    num_capsets += capset2_max_ver ? 1 : 0;
> +
> +    virgl_renderer_get_cap_set(VIRTIO_GPU_CAPSET_VENUS,
> +                               &capset2_max_ver,
> +                               &capset2_max_size);
> +    num_capsets += capset2_max_size ? 1 : 0;

IMHO the logic here doesn't work.

The kernel will use num_capset like this:

	for (i = 0; i < num_capsets; i++) {
		virtio_gpu_cmd_get_capset_info(vgdev, i);

So if num_capset = 2, it will query the capset info of index 0 and 1.
Capset 0 is alway VIRGL so it's fine. But since VIRL2 support is optional,
QEMU has no way to know if index 1 is VIRGL2 (if it's supported)
or VENUS (if VIRGL2 support is missing).
And it'll get worse when we will want to support CAPSET_DRM.

Ray: we have a patch internally for this (virtio-gpu: fix capset query), you
may want to add it to this series, before this patch.

Regards,
Pierre-Eric



>   
> -    return capset2_max_ver ? 2 : 1;
> +    return num_capsets;
>   }


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:24:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:24:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656719.1025121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYCm-00052V-DX; Tue, 19 Dec 2023 11:24:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656719.1025121; Tue, 19 Dec 2023 11:24:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYCm-00052O-Ah; Tue, 19 Dec 2023 11:24:08 +0000
Received: by outflank-mailman (input) for mailman id 656719;
 Tue, 19 Dec 2023 11:24:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFYCl-00052G-Cq
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:24:07 +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 1eb749c1-9e61-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:24:06 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3363aa2bbfbso4674080f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 03:24:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 m16-20020a056000009000b003366811fd6bsm5223870wrx.14.2023.12.19.03.24.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 03:24:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1eb749c1-9e61-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702985046; x=1703589846; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=UsZeXOPv9S3nK/XDAcTKyrqtAr0C7riCX+yn9Di+91I=;
        b=AFpDdnVS6nEbkMkrv/LGJg4BEyLkzVfVRmpwjI5/nibq+BEU73IwokyGOqiOyFAxf3
         /CGtJeWiy0Pt24aozys7NN581l8lp22M6BNQSrY1KezQJVaEjPDUW9POseMLw4WtghAL
         Qk/mRtrEuyPxQE9Td2P/rubiB6Hz1Ij/LfxxGRkhbelerWwiZATxgAPPqF2Xfa17CW4M
         7b7Csvv+F17C7FKKw9FrFeIqRU/O5YGThHXt5RmevHIfRvBSZ8urSYMEZgBReT0NJld4
         GFAv8vdZBgEWxkwa05yC92JYRL7e3F8onxMZb92dH+guD8R2j0ilA4H0UrgOUYcPVHWT
         5vzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702985046; x=1703589846;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=UsZeXOPv9S3nK/XDAcTKyrqtAr0C7riCX+yn9Di+91I=;
        b=Gavdb2qGc9ESrnbY5iQ2V+pkrId3MN8L693qrNapXS91QTzin9iUAilCtOBpS8ZsWP
         fHslAx6kzcUXyiGhRz6iI5u6gyNOj2oXphn34Bj7/XOExK9rdmL4I0Wgi66lejtksnTZ
         1MKmRUZOEpAqcRRMAUOYCrIH1Ap2l3VWEzB2VofnKd8vhWlry/HAERy+reyn5edSs/Na
         08LfrsW1wwI3skBieLMgJkY7Ws/UTpVr7NmJPMdkbe9DM2YZ/kYKAB7mmSkh0XVaYPBv
         Upx9Z0z60Hj4p6MNkyggO9iZPjnPwZWUG1aXDV1mRE6rIVy0ju3/j4278a+m9r6a1iJt
         Xd8Q==
X-Gm-Message-State: AOJu0YxCfanxhL841Tf4qv4BYWxMoNYKPdHdG3cMTbyjyx8E2gdvpg87
	PSI0suZzEnPqShQrMDAbTbTi
X-Google-Smtp-Source: AGHT+IEjzxxtdRggSagjRMlahhUxaJQIysTPEYnDGpG2fUiK9TYRlNTYPHeU+LWI8KTNhPIjm8IXsQ==
X-Received: by 2002:a5d:6992:0:b0:336:5637:4239 with SMTP id g18-20020a5d6992000000b0033656374239mr3863891wru.120.1702985045912;
        Tue, 19 Dec 2023 03:24:05 -0800 (PST)
Message-ID: <dd920868-11ea-46cc-b300-c332e74e2f1b@suse.com>
Date: Tue, 19 Dec 2023 12:24:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/6] xen: remove unused function ERR_CAST
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>
Cc: consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 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>,
 xen-devel@lists.xenproject.org
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
 <e6152a631d3bb6ad4c798fe9d795b360100d63f5.1702982442.git.maria.celeste.cesario@bugseng.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: <e6152a631d3bb6ad4c798fe9d795b360100d63f5.1702982442.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 12:05, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Function ERR_CAST contains a violation of MISRA C:2012 Rule 11.8,
> whose headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Since the function has no users, it is appropriate to remove it.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:28:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:28:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656728.1025130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYGy-00066L-U7; Tue, 19 Dec 2023 11:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656728.1025130; Tue, 19 Dec 2023 11: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 1rFYGy-00066E-RH; Tue, 19 Dec 2023 11:28:28 +0000
Received: by outflank-mailman (input) for mailman id 656728;
 Tue, 19 Dec 2023 11: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFYGx-000668-FI
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:28:27 +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 b953abf1-9e61-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 12:28:25 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40b5155e154so55603705e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 03:28:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c18-20020a7bc2b2000000b0040c6b667dccsm2246433wmk.25.2023.12.19.03.28.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 03:28:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b953abf1-9e61-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702985305; x=1703590105; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=w4vkev5ePDjJ3sP0GYjEAbyknHJR5uF/0E3wpKOXc3o=;
        b=OThY2M+yHiyhA/XtU+YODDcrypX0LndFdWh9pkXsDiq86sEcU59tdCF/vxXfkxNAzS
         A5urt4dUnQCsnNKu60BkgkZNLvxHrBeJ/WKMHIQIHcKUaYipoNsdFXB7JgaJqlkJzG6v
         NTP/GiEfOl9hI1B0ThLbygJ7gt2BphRiqqlHQkkenEl9Yt2VSVIxr9+udGrqH17rBMcb
         CwTSKZAxw8V18GQA+k36xRwifRhp2IBKxgDtlzBXQq7fdYfB6rBM1RrLRQ8FZvAWe2dh
         EZ3ZbCMY4BFmhVpKLkno+s7QMrcKtwInjFcW9+lYOkAh5q8F2FTtKeFnXFJYnFVZKmzx
         NZVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702985305; x=1703590105;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=w4vkev5ePDjJ3sP0GYjEAbyknHJR5uF/0E3wpKOXc3o=;
        b=G8wsZq9D2hM92DQv3S8Qh4yf8hVQRlUtF0NGqUGl6Lzj9ieThRcx34o64dGsGd2zDQ
         +wkqxE1vdV4B5I0DyodBXLy961pPGDdhhEP3oPt20OIn6KcFvjsGwANPL4d4JfSKfZ9Q
         w70nOFwn9c+2x0K9qWFPBCOZmBo+emB+kS01Ot3CLiWj5KFaTo2WCGqet09s8g3U3OF0
         iEfF0VXIP3S6dnrq2o82v2N09GdAlED66UfhvPJk2ePmK/vSSOKuWejMDuDGFTIohK/U
         equakfBha1zHiG/Kw9iwUYlBvQhe4B5/pbs8sGrLLyLWto60HnLggpURh6lsMp824ZFB
         Uv6Q==
X-Gm-Message-State: AOJu0Ywk7kfiaVywut7ZiUGOtf553C9L2ExmroM/xcOQY7yvaqDU7Ak1
	7ltRiwi0t37btpRfh5TFmMMq
X-Google-Smtp-Source: AGHT+IEZc1VWB47AqbyIet+by6LHvXIvsaqMWiovOOQ7QBLajSfQj2z2Dc1g8PPcSTD45wYXhoueaA==
X-Received: by 2002:a05:600c:502a:b0:40d:2df9:cf9f with SMTP id n42-20020a05600c502a00b0040d2df9cf9fmr85058wmr.219.1702985304983;
        Tue, 19 Dec 2023 03:28:24 -0800 (PST)
Message-ID: <7dfb364e-e144-4a92-825a-71394610b931@suse.com>
Date: Tue, 19 Dec 2023 12:28:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] xen: add SAF deviation for safe cast removal
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>
Cc: consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 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>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
 <dff9e788e04aa04970cfbb70d09f4d1baf725506.1702982442.git.maria.celeste.cesario@bugseng.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: <dff9e788e04aa04970cfbb70d09f4d1baf725506.1702982442.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 12:05, Simone Ballarin wrote:
> --- a/xen/arch/arm/guestcopy.c
> +++ b/xen/arch/arm/guestcopy.c
> @@ -109,6 +109,7 @@ static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
>  
>  unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
>  {
> +    /* SAF-3-safe COPY_to_guest doesn't modify from */
>      return copy_guest((void *)from, (vaddr_t)to, len,
>                        GVA_INFO(current), COPY_to_guest | COPY_linear);
>  }
> @@ -116,6 +117,7 @@ unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
>  unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
>                                               unsigned int len)
>  {
> +    /* SAF-3-safe COPY_to_guest doesn't modify from */
>      return copy_guest((void *)from, (vaddr_t)to, len, GVA_INFO(current),
>                        COPY_to_guest | COPY_flush_dcache | COPY_linear);
>  }

Unlike below for x86, here in both cases the comment cover more than
just the one function argument they are intended to cover. I think we
want to limit the scope of such comments as much as possible (and
hence have as little as possible on the immediately following line).

Jan

> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -3413,7 +3413,8 @@ static enum hvm_translation_result __hvm_copy(
>  enum hvm_translation_result hvm_copy_to_guest_phys(
>      paddr_t paddr, const void *buf, unsigned int size, struct vcpu *v)
>  {
> -    return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */,
> +    /* SAF-3-safe HVMCOPY_to_guest doesn't modify buf */
> +    return __hvm_copy((void *)buf,
>                        paddr, size, v,
>                        HVMCOPY_to_guest | HVMCOPY_phys, 0, NULL);
>  }
> @@ -3429,7 +3430,8 @@ enum hvm_translation_result hvm_copy_to_guest_linear(
>      unsigned long addr, const void *buf, unsigned int size, uint32_t pfec,
>      pagefault_info_t *pfinfo)
>  {
> -    return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */,
> +    /* SAF-3-safe HVMCOPY_to_guest doesn't modify buf */
> +    return __hvm_copy((void *)buf,
>                        addr, size, current, HVMCOPY_to_guest | HVMCOPY_linear,
>                        PFEC_page_present | PFEC_write_access | pfec, pfinfo);
>  }



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:41:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:41:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656732.1025141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYTo-0002A4-1I; Tue, 19 Dec 2023 11:41:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656732.1025141; Tue, 19 Dec 2023 11:41:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYTn-00029x-UG; Tue, 19 Dec 2023 11:41:43 +0000
Received: by outflank-mailman (input) for mailman id 656732;
 Tue, 19 Dec 2023 11:41:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFYTm-00029r-MK
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:41:42 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20601.outbound.protection.outlook.com
 [2a01:111:f403:2412::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92c37444-9e63-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 12:41:41 +0100 (CET)
Received: from SJ2PR12MB8690.namprd12.prod.outlook.com (2603:10b6:a03:540::10)
 by MN0PR12MB5833.namprd12.prod.outlook.com (2603:10b6:208:378::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 11:41:36 +0000
Received: from SJ2PR12MB8690.namprd12.prod.outlook.com
 ([fe80::87d4:680b:51ef:181]) by SJ2PR12MB8690.namprd12.prod.outlook.com
 ([fe80::87d4:680b:51ef:181%7]) with mapi id 15.20.7091.034; Tue, 19 Dec 2023
 11:41: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: 92c37444-9e63-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gwG9zx/Hycxz0pvU1GzzS8pZrNyCkZ7vJ6c3JymcINy03Lvu5zAprLDR46QR1y3HDs0NO1XpP58RhesHhGRgGmRs+Mv8FbJi9wwnuxMOCAfMpBFtwm84srTvicMKAfwuUsvuzeKtvY7dAesb6vZJIMmSNUOPSzANMwzwmtoghORDIGmOgu4oSnjj4TOAvpnWcBDhbDE2URAhDSsWuCLbxpKMKqUs6r2E2iICvGtUktCa/ZYd0kM9zigh/fOQ+c9no1tOc3U0qsb5ySOPLDawXd3ofv+I/IW/4NJVlnA7kRQDZgh9eSHY0jTJ0FnoD1N+WnjGt+Awaludxs8IkpNdKg==
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=U77njlRnreXjZvF3+32EEl747QWWVKdmYWzGOSPb/f8=;
 b=XE4GBrmcOgHqii+H61xALw0PYwk1g3P5bzOOpGwXICrNyEpZ6ZZxxJcuN9DtcZf0BoQZkezFU1eA5s9FA+eA61alwRPwlvojDGSjTGplqNlY94pwr+DTmYhFcSGulrqebXsPFnY3jQepVpW4M8HvJIJ1grJGYh+5qiUR+lLvZ0tpJjqBRtvsRfkEHP424dStxJbEJrAZKeGyyrA0TxjgimTvU+dZY3vX6mbGBomhMJTH047wmurha/rt1G7Ssp25uySUwPBtvw0SxBoLy0NbNcTBT8eoWyzyMdWHIlkLjfvWOIUBaPwggUBt0RpwHfQUzapb5HwQvF+d2QNTUpSTAQ==
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=U77njlRnreXjZvF3+32EEl747QWWVKdmYWzGOSPb/f8=;
 b=XSpa6a8t0dB6Z3Xk3msSm2hD83Lb9drdyZTm6RNvragi3a74Rx9b8yw/CE/o4PJV0rgq25lZ+6yVZenaUZojOmkWV7ICEnPnrRfUFYcL7+G0JlaR3XXwHht5O3PyaxXC69lG8V6bhuk+FZbpZi+C+bK/JzOl887t5UJnfFY4guU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Date: Tue, 19 Dec 2023 19:41:08 +0800
From: Huang Rui <ray.huang@amd.com>
To: Antonio Caggiano <quic_acaggian@quicinc.com>
Cc: Akihiko Odaki <akihiko.odaki@daynix.com>,
	=?iso-8859-1?Q?Marc-Andr=E9?= Lureau <marcandre.lureau@gmail.com>,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Gerd Hoffmann <kraxel@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
	Robert Beckett <bob.beckett@collabora.com>,
	Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>,
	Alex =?iso-8859-1?Q?Benn=E9e?= <alex.bennee@linaro.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Gurchetan Singh <gurchetansingh@chromium.org>,
	"ernunes@redhat.com" <ernunes@redhat.com>,
	Alyssa Ross <hi@alyssa.is>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Pelloux-Prayer, Pierre-Eric" <Pierre-eric.Pelloux-prayer@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>,
	Antonio Caggiano <antonio.caggiano@collabora.com>
Subject: Re: [PATCH v6 02/11] virtio-gpu: Configure new feature flag
 context_create_with_flags for virglrenderer
Message-ID: <ZYGBVM7DNRuwQEDh@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-3-ray.huang@amd.com>
 <dbb37337-1552-410e-8231-7619aacbf887@quicinc.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <dbb37337-1552-410e-8231-7619aacbf887@quicinc.com>
X-ClientProxiedBy: SG2PR02CA0099.apcprd02.prod.outlook.com
 (2603:1096:4:92::15) To SJ2PR12MB8690.namprd12.prod.outlook.com
 (2603:10b6:a03:540::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8690:EE_|MN0PR12MB5833:EE_
X-MS-Office365-Filtering-Correlation-Id: ec05e7d6-5847-4117-b5e3-08dc0087745c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	yvsrAdUU3ubx+Yw+JvfqszeZjRdzE0Zgzc19AflHYHKSmAowx/gL/DmKUFfK93sK2LNG0RJaxKSARb3q3yy6RuBdGmsYQkirRCNMM9IeE1kCDVmZVSs5gjIoaaYbf64bEkVDIfid0va3QOmZ4U8aN7sdZnjzTYvrTTVLqYlSXinM0+USbX4m3WTnUGD+AFe3FIyE7c8q0ohdRg449YfukVSeN84VR4EJPFK2CS/CD1PkTUKGxz9zt8lfmK/UJnCheuY5CSjtwGUlYiDVjyM9c1ALK5j7Q5LhL4Rmrll45y1Vaiu8ZNecuulpXVGhvlnzEuUxWatYg80OxC6GT1cVD81TUmC6FHE9yLwnyQVddRbuT8Xysmx/i0PdOzFLDSMTFe6Dtev4DeX7d9pZqdLix844g3pfpzvRPEDp4JPOFOazxMPRxb7QIT4nwaOUrrdz/yTeq57G2zurpZ3kAR3t25GE4n3e9I+mMh5KJbT15+uH97SZ7Lulsr16NxD1N3fgBhDCm1owHQ4KV+EcOzU1qVqDELXMgvGBRXv7b2KvokGD9i2hiAYVIz+YGONpBSlI
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR12MB8690.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(39860400002)(396003)(136003)(230922051799003)(186009)(451199024)(1800799012)(64100799003)(53546011)(2616005)(26005)(38100700002)(4326008)(5660300002)(41300700001)(7416002)(8936002)(2906002)(478600001)(66556008)(6486002)(66476007)(6506007)(6512007)(6666004)(54906003)(66946007)(8676002)(316002)(6916009)(36756003)(86362001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xev2fzVNP+Vreoeq+zPjW2Ig2crhSo6kheo4ErG6gz0fX+G/jrxJEuqOfXp0?=
 =?us-ascii?Q?zcKq92lJ32mvKXLxs2xouYBnrAf2V2OF8oqmeeG11f+9CM8waoWkYS8qiPHK?=
 =?us-ascii?Q?G3SXLBzVmf97BRnEXoBW9l1sdLVN3f0YBxWR3VRKpTSXejIzEu6dnHngD0Jf?=
 =?us-ascii?Q?JChuj8ACQNoedObtROXEq7qw/YMdypq4qKpI9isHTJ2CaYDi+o3MYhoV/1De?=
 =?us-ascii?Q?3T7oxqY+2bj0NFIhjHlXz/VQe4jbMxYgrdwf71ddoYk5uwM1qQr/NdFfAZTv?=
 =?us-ascii?Q?0hVq+gbHHKXWOLkeuaZ26fQYzCpuGDeqFk4XFwtxmsXeL85BsfeEmgPHSg9S?=
 =?us-ascii?Q?Eo8JRxJ2hVE8JzX2O3Z6doPIq6DMl3z7RASiUmYZ7/KFMYtSTEImZi21gUpq?=
 =?us-ascii?Q?uCLt2CGrJpPCGunn8f7bqsUrBHC3pMeDjZs4SMWoIQpTgN+dCWCO1mBUUGYv?=
 =?us-ascii?Q?mPGIta7bXANAlSBN1hObjmxAlldyG8T9tboHdCDMTqZES27sc5z8HBhRojEs?=
 =?us-ascii?Q?uo5YpKSpTQn88ydq57M4hOK6OkpBIIKNSNiShuTIvB0zHPuN5KWwYavEG8oN?=
 =?us-ascii?Q?8rPirA+NwFqdqIzGsXvu+sPkEcfBsPYzcBU7lcvYJxXs9KJSj3lEUhQliP8f?=
 =?us-ascii?Q?MJh6/zqY0E7bozIn/298QC/EAobieSsffkdKVgAvZBlX0m8DfICTF2TLrhm7?=
 =?us-ascii?Q?IitBujNeXwqJsLYt6qHV293WvleREAk0+9HqT4AzJoAV13ekLnUVqOVAgUxE?=
 =?us-ascii?Q?+2d7olf+EqKupogcfNnj7WJycrLSfwx9Ee7smtwJeihdy5kxtVP6GxxU6PSu?=
 =?us-ascii?Q?4XD9jIoeLMNzpyZfSX8j26HzbTwuX3jqajPd02s//CYu3A4kut8uAIr1nK0y?=
 =?us-ascii?Q?5s5KotqoZODsZlsF5ZdiMoin+ZW+1Ll1vaIAPtbf+x2cXXJHIQAXj+DMDoXi?=
 =?us-ascii?Q?7hKppOaeXXIpSGAgfg5pksXrWx8ODUKnrIf6KttP1OxovAYLal49dkBskCjK?=
 =?us-ascii?Q?ZzGQXfy6gWHsbPuvc3y9DQ9i74tD/iLV7T40YWjV2BrWs9HhcHBodo0OT62U?=
 =?us-ascii?Q?cFFyVRn/zT72UmudC7wDR3JvCl+zwxBdnKRX2/NKJBS1SSpS5OTpgDGFMIUL?=
 =?us-ascii?Q?rbuLLiAXfOwQgqmz3bQNg+WLkRtb7zyvQ1GNNupn675NodQOMwNBWitM2Cg2?=
 =?us-ascii?Q?8NAyeeKZXcxJUChfr5fvw8DfGfdd2p35t0uFhdfWoT6MBAQMJXQjMY0rWDNP?=
 =?us-ascii?Q?gAbMZd3GN59hJad4Ir3E+1LaUP4yux+9R40WpWgcB+ZKEX4zhO34QSjTTWzG?=
 =?us-ascii?Q?Rr5cYl/8j2BHvvG/iC2AnHOlolWZzFIwg69wHVo7K1pJNGdJ+9gos2j+ynSu?=
 =?us-ascii?Q?LZ62DiPxSPqSA1fu9sHCxvXqzhp0qgS5xPZAfrh4unZI66Py+p0E0aZOEcab?=
 =?us-ascii?Q?uiLl3cxgi75v4P33C2XSuaX8TF1bKMqty+hlIdubY+vy0X6LqTRXboRJ3tse?=
 =?us-ascii?Q?UaSM1wAKYJ/BMYObcf/Ba9eGHasBHk//2F6kQc/X48/oE/Lrh0VXo11aaanb?=
 =?us-ascii?Q?DbVGt1dEjBQXzpkl+kR8xMd1mDXbR3V559H163+e?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ec05e7d6-5847-4117-b5e3-08dc0087745c
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8690.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 11:41:35.6013
 (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: A37/ug81Jsdfkgd7tdzem530iaGXTiEkxEmkzrXWp+80Ai1lwuybMRgSJr4DnfgAb3v2LslRNU/rJV6RiOeQtQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5833

On Tue, Dec 19, 2023 at 05:09:27PM +0800, Antonio Caggiano wrote:
> Hi Huang Rui,
> 
> Thank you for this new version.
> 
> All patches which I did not sign off are reviewed by me :)

Thanks Antonio! May I have your RB in next version?

Best Regards,
Ray

> 
> Cheers,
> Antonio Caggiano
> 
> On 19/12/2023 08:53, Huang Rui wrote:
> > Configure a new feature flag (context_create_with_flags) for
> > virglrenderer.
> > 
> > Originally-by: Antonio Caggiano <antonio.caggiano@collabora.com>
> > Signed-off-by: Huang Rui <ray.huang@amd.com>
> > ---
> > 
> > Changes in v6:
> > - Move macros configurations under virgl.found() and rename
> >    HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS.
> > 
> >   meson.build | 4 ++++
> >   1 file changed, 4 insertions(+)
> > 
> > diff --git a/meson.build b/meson.build
> > index ec01f8b138..ea52ef1b9c 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -1050,6 +1050,10 @@ if not get_option('virglrenderer').auto() or have_system or have_vhost_user_gpu
> >                            cc.has_member('struct virgl_renderer_resource_info_ext', 'd3d_tex2d',
> >                                          prefix: '#include <virglrenderer.h>',
> >                                          dependencies: virgl))
> > +    config_host_data.set('HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS',
> > +                         cc.has_function('virgl_renderer_context_create_with_flags',
> > +                                         prefix: '#include <virglrenderer.h>',
> > +                                         dependencies: virgl))
> >     endif
> >   endif
> >   rutabaga = not_found


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 11:48:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 11:48:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656739.1025150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYZx-0003Yp-Sn; Tue, 19 Dec 2023 11:48:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656739.1025150; Tue, 19 Dec 2023 11: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 1rFYZx-0003Yi-PO; Tue, 19 Dec 2023 11:48:05 +0000
Received: by outflank-mailman (input) for mailman id 656739;
 Tue, 19 Dec 2023 11: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=rom3=H6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFYZv-0003Yc-Vr
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 11:48:03 +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 768a5127-9e64-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 12:48:01 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-50e3845abdaso2991123e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 03:48:01 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 j8-20020a05600c190800b0040c11fbe581sm2480647wmq.27.2023.12.19.03.48.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Dec 2023 03:48:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 768a5127-9e64-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702986481; x=1703591281; 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=3qbonqnvg7zUldYIjudgCtR/x7N2u9KaUvDTkLAuP6Q=;
        b=jodo0OSfSXruBa9Hf++FcPqokTSedlSPQ/qor6mW9Dqj8czVyjgkngFGUee0KTO87p
         RVzdxLOXsFWkMCYzSMRDmQbDU7ED6GIEgrDF14P5r1eYCokbTZ4jrgnOTXsqbtuVc2Bz
         1BoQI9fbu+SOXLWnyJdJ3n9ZjJIA1o3XGy0UA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702986481; x=1703591281;
        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=3qbonqnvg7zUldYIjudgCtR/x7N2u9KaUvDTkLAuP6Q=;
        b=GDjk2mzirxurovjCnQ3FmBzt6VOtNDli7fw+5w/P8DKj73W/x5OSGTPvj3UPG5T4ga
         IQmikZAlZ27LjxtQ+EcGYhonBpu7UcnZ+9SLmY/HKEcnNtP4U5ePYLhiMtxEcvfwhEAb
         uMtrfif8CyXj7JjaJYHKCH01eVTjzuaR8u3D2m0ofk8tPt0GfTkxyhla7sbNjg58Vli3
         Olj0E0Amfxjd7RJUYBdeHS42MKEmjsQbnqsCBjMR3zsDd63p9O3kutdx0lITrlzQT+st
         R5mekY/ytFb4/dDChLyVyucGZF5N6vlxF8VjPPEV/RadcIAPppq20ocnSGZdECDAPTAH
         LveQ==
X-Gm-Message-State: AOJu0Yxwqh5CBQRMJb3EqdBa9f2aJ5kWh7UdHW4Hu6Ogi2zozHSVFNyd
	fYZYiixZkAik3CIv/7Aj01lu0g==
X-Google-Smtp-Source: AGHT+IE5hM3jAYEshvl23mUJUnKrhWSPh3DhjijhSGtfSLNzaQ1wfVzv+N5ARDRrUOSONwrAMg9JRA==
X-Received: by 2002:a05:6512:1095:b0:50e:4b94:61b0 with SMTP id j21-20020a056512109500b0050e4b9461b0mr397353lfg.56.1702986481247;
        Tue, 19 Dec 2023 03:48:01 -0800 (PST)
Date: Tue, 19 Dec 2023 12:48:00 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 4/4] x86/PV: issue branch prediction barrier when
 switching 64-bit guest to kernel mode
Message-ID: <ZYGC8JaJ45tkbqQC@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <2863b0a9-ca7c-3cce-104d-0b6685b0b383@suse.com>
 <ZYCARJAxH9hBD0YQ@macbook>
 <6e022af1-d383-48be-ab54-6ec254aa1502@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6e022af1-d383-48be-ab54-6ec254aa1502@suse.com>

On Tue, Dec 19, 2023 at 10:56:16AM +0100, Jan Beulich wrote:
> On 18.12.2023 18:24, Roger Pau MonnÃ© wrote:
> > On Tue, Feb 14, 2023 at 05:12:08PM +0100, Jan Beulich wrote:
> >> Since both kernel and user mode run in ring 3, they run in the same
> >> "predictor mode".
> > 
> > That only true when IBRS is enabled, otherwise all CPU modes share the
> > same predictor mode?
> 
> But here we only care about ring 3 anyway?

Hm, yes, what I wanted to say is that this is not exclusive to 64bit
PV, as with IBRS disabled ring 3 and ring 0 share the same predictor
mode.  Anyway, not relevant.

> 
> >> @@ -753,7 +755,9 @@ static inline void pv_inject_sw_interrup
> >>   * but we can't make such requests fail all of the sudden.
> >>   */
> >>  #define PV64_VM_ASSIST_MASK (PV32_VM_ASSIST_MASK                      | \
> >> -                             (1UL << VMASST_TYPE_m2p_strict))
> >> +                             (1UL << VMASST_TYPE_m2p_strict)          | \
> >> +                             ((opt_ibpb_mode_switch + 0UL) <<           \
> >> +                              VMASST_TYPE_mode_switch_no_ibpb))
> > 
> > I'm wondering that it's kind of weird to offer the option to PV domUs
> > if opt_ibpb_entry_pv is set, as then the guest mode switch will always
> > (implicitly) do a IBPB as requiring an hypercall and thus take an
> > entry point into Xen.
> > 
> > I guess it's worth having it just as a way to signal to Xen that the
> > hypervisor does perform an IBPB, even if the guest cannot disable it.
> 
> I'm afraid I'm confused by your reply. Not only, but also because the
> latter sentence looks partly backwards / non-logical to me.

Sorry, I think I didn't word that very well.  The remark is tied to
the one below about the vmassist 'possibly' allowing the guest to
disable IBPB on guest user -> kernel context switches, but Xen might
unconditionally do additional IBPBs that the guest cannot disable.

> >> --- a/xen/arch/x86/pv/domain.c
> >> +++ b/xen/arch/x86/pv/domain.c
> >> @@ -455,6 +455,7 @@ static void _toggle_guest_pt(struct vcpu
> >>  void toggle_guest_mode(struct vcpu *v)
> >>  {
> >>      const struct domain *d = v->domain;
> >> +    struct cpu_info *cpu_info = get_cpu_info();
> >>      unsigned long gs_base;
> >>  
> >>      ASSERT(!is_pv_32bit_vcpu(v));
> >> @@ -467,15 +468,21 @@ void toggle_guest_mode(struct vcpu *v)
> >>      if ( v->arch.flags & TF_kernel_mode )
> >>          v->arch.pv.gs_base_kernel = gs_base;
> >>      else
> >> +    {
> >>          v->arch.pv.gs_base_user = gs_base;
> >> +
> >> +        if ( opt_ibpb_mode_switch &&
> >> +             !(d->arch.spec_ctrl_flags & SCF_entry_ibpb) &&
> >> +             !VM_ASSIST(d, mode_switch_no_ibpb) )
> >> +            cpu_info->spec_ctrl_flags |= SCF_new_pred_ctxt;
> > 
> > Likewise similar to the remarks I've made before, if doing an IBPB on
> > entry is enough to cover for the case here, it must also be fine to
> > issue the IBPB right here, instead of deferring to return to guest
> > context?
> > 
> > The only concern would be (as you mentioned before) to avoid clearing
> > valid Xen predictions, but I would rather see some figures about what
> > effect the delaying to return to guest has vs issuing it right here.
> 
> Part of the reason (aiui) to do things on the exit path was to
> consolidate the context switch induced one and the user->kernel switch
> one into the same place and mechanism.

Isn't it kind of a very specific case that we end up doing a
user->kernel switch as part of a context switch?  IOW: would require
the vCPU to be scheduled out at that very specific point.

> >> + *
> >> + * By default (on affected and capable hardware) as a safety measure Xen,
> >> + * to cover for the fact that guest-kernel and guest-user modes are both
> >> + * running in ring 3 (and hence share prediction context), would issue a
> >> + * barrier for user->kernel mode switches of PV guests.
> >> + */
> >> +#define VMASST_TYPE_mode_switch_no_ibpb  33
> > 
> > Would it be possible to define the assist as
> > VMASST_TYPE_mode_switch_ibpb and have it on when enabled?  So that the
> > guest would disable it if unneeded?  IMO negated options are in
> > general harder to understand.
> 
> Negative options aren't nice, yes, but VM assists start out as all
> clear.

Are you sure?  I see VMASST_TYPE_pae_extended_cr3 getting set in
dom0_construct_pv() and that makes me wonder whether other bits
couldn't start set also.

Maybe there's some restriction I'm missing, but I don't see any
wording in the description of the interface that states that all
assists are supposed to start disabled.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 12:09:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 12:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656753.1025160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYuu-0000d7-Vt; Tue, 19 Dec 2023 12:09:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656753.1025160; Tue, 19 Dec 2023 12: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 1rFYuu-0000d0-TE; Tue, 19 Dec 2023 12:09:44 +0000
Received: by outflank-mailman (input) for mailman id 656753;
 Tue, 19 Dec 2023 12:09: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 1rFYut-0000cq-F8; Tue, 19 Dec 2023 12:09: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 1rFYut-0008Tu-6Y; Tue, 19 Dec 2023 12:09: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 1rFYus-0003s4-KM; Tue, 19 Dec 2023 12:09:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFYus-0001ta-Ja; Tue, 19 Dec 2023 12: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=mscjoXJqh9qqNUpRPHRkLqe5LeRm4FOgBGo3k4JATsc=; b=HMzWz2R2h4i3jErSz2jvS/QqUr
	+liG5B3pMUpOY18sNB05Eqa0FgaDvFMwtwwPi4N0iHHo7RrobABlfIjwz78DJ8ebh9S2n+LGjf110
	W4csxrsU1PIHLPkpOdIHn5bkyiJHfvTZvZPkuenWgcKKBiJYdgpyIEKJ0Wzr4piWfRYA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184172-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184172: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-credit1:guest-start.2:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-qcow2:guest-start:fail:heisenbug
    xen-unstable:test-amd64-coresched-i386-xl:debian-fixup:fail:heisenbug
    xen-unstable:test-armhf-armhf-libvirt-qcow2: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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2: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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-libvirt: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-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-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=0cc74376d6823e0883f89556be2a267f2240a558
X-Osstest-Versions-That:
    xen=0cc74376d6823e0883f89556be2a267f2240a558
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 19 Dec 2023 12:09:42 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit1  19 guest-start.2    fail in 184169 pass in 184172
 test-armhf-armhf-libvirt-qcow2 13 guest-start    fail in 184169 pass in 184172
 test-amd64-coresched-i386-xl 13 debian-fixup               fail pass in 184169

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail blocked in 184169
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184169
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184169
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184169
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184169
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184169
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184169
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184169
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184169
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184169
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184169
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184169
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-amd64-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  0cc74376d6823e0883f89556be2a267f2240a558
baseline version:
 xen                  0cc74376d6823e0883f89556be2a267f2240a558

Last test of basis   184172  2023-12-19 04:41:18 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 19 12:11:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 12:11:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656757.1025171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYwZ-00027T-Aq; Tue, 19 Dec 2023 12:11:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656757.1025171; Tue, 19 Dec 2023 12:11:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFYwZ-00027M-86; Tue, 19 Dec 2023 12:11:27 +0000
Received: by outflank-mailman (input) for mailman id 656757;
 Tue, 19 Dec 2023 12:11:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Dspo=H6=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFYwY-00027E-9H
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 12:11:26 +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 b8e410be-9e67-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 13:11:22 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-10-ToXj3wYvNs6LWgQVbZTQgw-1; Tue, 19 Dec 2023 07:11:17 -0500
Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com
 [10.11.54.7])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id CB07485A58C;
 Tue, 19 Dec 2023 12:11:16 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.175])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 1A9161C060AF;
 Tue, 19 Dec 2023 12:11: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: b8e410be-9e67-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702987881;
	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=uFGTvwjTibbXIkFU0K/fvsttgEJQFViTyB28RDyjN+I=;
	b=PG69qkEfGT/wGtimPGowunTaS9dvqwGB7de2NyE++1Jk1e2hzMsWCo3/7ILduDUBaaM124
	VfU6G0gJPH/WdV8mwNSXsWVKp7Ze2IJBvL9mxmCIFclvkv8d6gaGqNkcP4OdsFgI0xc8dC
	fh85KslCgzXUVaxI29nAjK/HdyVn3yc=
X-MC-Unique: ToXj3wYvNs6LWgQVbZTQgw-1
Date: Tue, 19 Dec 2023 13:11:10 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 14/14] block: remove outdated AioContext locking
 comments
Message-ID: <ZYGIXhUVKjSqDeZT@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-15-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205182011.1976568-15-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7

Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> The AioContext lock no longer exists.
> 
> There is one noteworthy change:
> 
>   - * More specifically, these functions use BDRV_POLL_WHILE(bs), which
>   - * requires the caller to be either in the main thread and hold
>   - * the BlockdriverState (bs) AioContext lock, or directly in the
>   - * home thread that runs the bs AioContext. Calling them from
>   - * another thread in another AioContext would cause deadlocks.
>   + * More specifically, these functions use BDRV_POLL_WHILE(bs), which requires
>   + * the caller to be either in the main thread or directly in the home thread
>   + * that runs the bs AioContext. Calling them from another thread in another
>   + * AioContext would cause deadlocks.
> 
> I am not sure whether deadlocks are still possible. Maybe they have just
> moved to the fine-grained locks that have replaced the AioContext. Since
> I am not sure if the deadlocks are gone, I have kept the substance
> unchanged and just removed mention of the AioContext.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>

I think the deadlock the comment refers to is that AIO_WAIT_WHILE() sits
in a blocking aio_poll() and nobody wakes it up because aio_wait_kick()
only wakes up the main thread. This deadlock still exists after removing
the AioContext lock, so the comment after your change looks right to me.

Reviewed-by: Kevin Wolf <kwolf@redhat.com>



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 12:20:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 12:20:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656763.1025180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZ5P-0004gy-1C; Tue, 19 Dec 2023 12:20:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656763.1025180; Tue, 19 Dec 2023 12:20:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZ5O-0004gr-Uq; Tue, 19 Dec 2023 12:20:34 +0000
Received: by outflank-mailman (input) for mailman id 656763;
 Tue, 19 Dec 2023 12:20:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=16KD=H6=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rFZ5N-0004gl-3h
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 12:20:33 +0000
Received: from mail-io1-xd2d.google.com (mail-io1-xd2d.google.com
 [2607:f8b0:4864:20::d2d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff95efef-9e68-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 13:20:30 +0100 (CET)
Received: by mail-io1-xd2d.google.com with SMTP id
 ca18e2360f4ac-7b7f93eb935so6894039f.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 04:20:30 -0800 (PST)
Received: from [157.82.205.15] ([157.82.205.15])
 by smtp.gmail.com with ESMTPSA id
 b31-20020a631b5f000000b005bdf59618f9sm19014375pgm.69.2023.12.19.04.20.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 04:20:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff95efef-9e68-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1702988429; x=1703593229; 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=wQA0RlwSqqyN9Wcw543mwNNgu5OHdx84OKgHRedGrS8=;
        b=zqK/lBI0KgkiafLqyR/09cKqkMQb7xP65rEv5wpGHIlxTk2xqHPa+ZTdsZ+2B39Eze
         DHD09JBZ2FjhC1NXRRaqrN0OB9S6q1RLBiH34ZPQd2qvPTMK68IVEfFUDO3xkAZpt2Lq
         vopUmc6MBYR19KtIbked7bbx9yR8vjqERH8diCArzKf2L+pga+yr9qmCi+sbBKeoxm51
         MSU9/ONTZSey4jYLNki9GD6M+QlYAVoVK3A8Elz3x4qiF0zvhKLX5Nci8UARqNsuYmvA
         Ig7AacS2PmXrR77jlIVfvXDdmeHw8CW9y8CpWMCJu/DEEDUPrxmSl0Huur85Lq4Mms06
         gbpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702988429; x=1703593229;
        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=wQA0RlwSqqyN9Wcw543mwNNgu5OHdx84OKgHRedGrS8=;
        b=UpLQwW6F5niOr38xceYaHIXXcmXa2hhOfBWY1zLoLqdwqw579T66brzhAd6kXYc1DK
         7EoFJLiDoptcspieGf0MOFFHlMRw/yh9WNhpQMT2+wWdkr+Mm/gIbE3e5pZ/bRQ7U9z7
         9gw6IMdflp0TezdXrAJGdCzYiCCVzq1sgalWiYkL14mCyqnTR6LX+RuolC8Ti8CHQqUS
         5KjYlCaTb4EEqqjQTk+ox8m3rlggPbGYHl61lergAiMINqOoKhsmu5irNi0kAwsNLXE0
         fhoyV6uPQ53sqkySh8OefgJ2uXZkOqbePyQh1ndtfzXqMkP7FodiEXK7NcuaNWtvUchT
         cCeQ==
X-Gm-Message-State: AOJu0YxDLGeBGtHeOJpFnCcQsOc0pJgzEO2srIyKaDOROIFLxEpF8NgT
	D3mow0MRHj66CHNCowqdt9jePg==
X-Google-Smtp-Source: AGHT+IFKfEaAOkSPqk6IsZ6SDxRqyf21egeIRYzz8LW68SmNcxq3Kf4hF2brQKO78npgJtIpDnKX/Q==
X-Received: by 2002:a6b:6105:0:b0:7b6:fc48:46d1 with SMTP id v5-20020a6b6105000000b007b6fc4846d1mr21755028iob.12.1702988429230;
        Tue, 19 Dec 2023 04:20:29 -0800 (PST)
Message-ID: <6adff6d2-7c58-4c78-93a5-5a4594a60d27@daynix.com>
Date: Tue, 19 Dec 2023 21:20:22 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 01/11] linux-headers: Update to kernel headers to add
 venus capset
Content-Language: en-US
To: Huang Rui <ray.huang@amd.com>,
 =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: xen-devel@lists.xenproject.org,
 Gurchetan Singh <gurchetansingh@chromium.org>, ernunes@redhat.com,
 Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alex Deucher <alexander.deucher@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
 Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-2-ray.huang@amd.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <20231219075320.165227-2-ray.huang@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/19 16:53, Huang Rui wrote:
> Sync up kernel headers to update venus macro till they are merged into
> mainline.

Thanks for sorting things out with the kernel and spec.

> 
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> ---
> 
> Changes in v6:
> - Venus capset is applied in kernel, so update it in qemu for future use.
> 
> https://lore.kernel.org/lkml/b79dcf75-c9e8-490e-644f-3b97d95f7397@collabora.com/
> https://cgit.freedesktop.org/drm-misc/commit/?id=216d86b9a430f3280e5b631c51e6fd1a7774cfa0
Please include the link to the upstream commit in the commit message.


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 12:29:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 12:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656769.1025191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZDy-0006Yz-19; Tue, 19 Dec 2023 12:29:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656769.1025191; Tue, 19 Dec 2023 12:29:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZDx-0006Ys-TM; Tue, 19 Dec 2023 12:29:25 +0000
Received: by outflank-mailman (input) for mailman id 656769;
 Tue, 19 Dec 2023 12:29: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 1rFZDw-0006Yi-9t; Tue, 19 Dec 2023 12:29: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 1rFZDw-0000R0-44; Tue, 19 Dec 2023 12:29: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 1rFZDv-0004N8-LJ; Tue, 19 Dec 2023 12:29:23 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFZDv-0000vr-Kj; Tue, 19 Dec 2023 12:29: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=q8Bgrk6dNDvcBdMEpzDDUnT8lUndcWHSBUsmwfD5Qtg=; b=HZdUk76FEuK1p3rVzqMtolgW63
	4I+fEFZdKdeyp7HxwtThYetVvhA+s6kY8Ek2lvAJT4J0wH1g4yR7UTCyGKnbU4ibUOHzFVL1yDOMJ
	iEcJ+5gHwE9DbJDV6hEQ3p5bID1Dq85CkA9efIDCtpVYFyVL1fFmWnGPvIsHIgSq83aA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184173-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184173: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=3c66390e4a514dcce4c8cc82f489d653d55ee3fa
X-Osstest-Versions-That:
    ovmf=74daeded0cabe87d26546f07f9a3911cb60ec0e1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 19 Dec 2023 12:29:23 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 3c66390e4a514dcce4c8cc82f489d653d55ee3fa
baseline version:
 ovmf                 74daeded0cabe87d26546f07f9a3911cb60ec0e1

Last test of basis   184163  2023-12-18 06:42:51 Z    1 days
Testing same since   184173  2023-12-19 09:44:28 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    
 test-amd64-i386-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
   74daeded0c..3c66390e4a  3c66390e4a514dcce4c8cc82f489d653d55ee3fa -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 12:35:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 12:35:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656774.1025201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZJy-0000k9-Lm; Tue, 19 Dec 2023 12:35:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656774.1025201; Tue, 19 Dec 2023 12:35:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZJy-0000k2-Ir; Tue, 19 Dec 2023 12:35:38 +0000
Received: by outflank-mailman (input) for mailman id 656774;
 Tue, 19 Dec 2023 12:35: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=16KD=H6=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rFZJx-0000hL-1m
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 12:35:37 +0000
Received: from mail-pg1-x52d.google.com (mail-pg1-x52d.google.com
 [2607:f8b0:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ab44b4a-9e6b-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 13:35:35 +0100 (CET)
Received: by mail-pg1-x52d.google.com with SMTP id
 41be03b00d2f7-5bcfc508d14so3451761a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 04:35:35 -0800 (PST)
Received: from [157.82.205.15] ([157.82.205.15])
 by smtp.gmail.com with ESMTPSA id
 w13-20020a170902a70d00b001c726147a46sm20886137plq.234.2023.12.19.04.35.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 04:35:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ab44b4a-9e6b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1702989333; x=1703594133; 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=F9Gwzcym5HWFUBbV1xeReg3XbhM69FpFbd3YyCmCWDg=;
        b=xDoDBH7J0Pm//zAv1hhPn2+CzWFKu9Cl4vlSfoiP7Yx6Z/u+4NnhmLWCdSfX3b0Mys
         6ucCUq/ZNu7brbVlW9WSgdk0/m/mS5F8tzZb+hvc4nhAG8EfyxblzCOO5wsvZNq1jIGT
         BtBqBhPrjHktOR5ofj0OHVELH+Ka10xP5SuDiXwQgv55zs1ydR/LIJO/YYpDCOftuhCd
         AjA207GZJD0fOrPIKwYLvDjlMtwuwJSrQU8q/9nAlsEv/sH85JhYpVKyLq5JyvR6Wfl6
         YrvsZFOdyIsImu2qYgSfVUj/dntQwPpZ830Vyfd2VORDA+37Ymc9oxR/tERXc2Lpzx+Z
         hXxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702989333; x=1703594133;
        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=F9Gwzcym5HWFUBbV1xeReg3XbhM69FpFbd3YyCmCWDg=;
        b=Jp9eJruy99NY9TGAnG/VuZpe2DG1725DKkla4f3s5/d7iV/ieAqC2b0A9IbhCEdRyH
         dr8FY+NpvF6pqmfI//CJBKZhFQn05HvK3kDA6ESaQLNUZ3KS42h6H3upZD45vl8YU3TB
         Fmjr8G8sNqL2+RTQzeUQsUK3oKL0U0rZCo701k6QRA9gBwIZUV0vk1CIrU51EryKKL6L
         HC5n2OXl1lbBSvPHtnKs5py/9jZu7TOB0ADL8nz+u7ZNqYvCLzPwwnxPoN5Gs8o8bA5h
         7wmp9SOBOJubXLnTK7R9Oytstj1/0rK0I9PG00bJF/p+yZ+MmV6QyHkEhntoHWT9eFUj
         Ak3g==
X-Gm-Message-State: AOJu0YxtJ+CMy3V9HeJG3YXBQgUUNhAy0wVPSra5Me8y/g8J7Ew4o3In
	0cNl6etmNjFpSab4gDmqOMM+0g==
X-Google-Smtp-Source: AGHT+IHN7Cl1wf8+157FVO5wvi6ZF4ur84TuS3bmZwf9yzuEaKx9Eu+LO6bRYmp+TqjQ1Ol0YKDzIg==
X-Received: by 2002:a05:6a20:3d85:b0:191:bc5f:e803 with SMTP id s5-20020a056a203d8500b00191bc5fe803mr13369989pzi.72.1702989333634;
        Tue, 19 Dec 2023 04:35:33 -0800 (PST)
Message-ID: <3105531c-bfc4-4421-a197-4ab8ddb9f4a5@daynix.com>
Date: Tue, 19 Dec 2023 21:35:27 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 05/11] virtio-gpu: Introduce virgl_gpu_resource
 structure
Content-Language: en-US
To: Huang Rui <ray.huang@amd.com>,
 =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: xen-devel@lists.xenproject.org,
 Gurchetan Singh <gurchetansingh@chromium.org>, ernunes@redhat.com,
 Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alex Deucher <alexander.deucher@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
 Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-6-ray.huang@amd.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <20231219075320.165227-6-ray.huang@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/19 16:53, Huang Rui wrote:
> Introduce a new virgl_gpu_resource data structure and helper functions
> for virgl. It's used to add new member which is specific for virgl in
> following patches of blob memory support.

The name is ambigious. It should tell that it's specific for virgl.


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:03:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:03:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656779.1025211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZl1-0007Is-R5; Tue, 19 Dec 2023 13:03:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656779.1025211; Tue, 19 Dec 2023 13:03: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 1rFZl1-0007Il-Nb; Tue, 19 Dec 2023 13:03:35 +0000
Received: by outflank-mailman (input) for mailman id 656779;
 Tue, 19 Dec 2023 13:03:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Dspo=H6=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFZkz-0007If-LP
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:03:33 +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 01c668e1-9e6f-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 14:03:31 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-593-xVlPGfygOLSN3BRIuhYcfg-1; Tue,
 19 Dec 2023 08:03:27 -0500
Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com
 [10.11.54.4])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id EE52F1C0513E;
 Tue, 19 Dec 2023 13:03:26 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.175])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 3EF6E2026D66;
 Tue, 19 Dec 2023 13:03: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: 01c668e1-9e6f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702991010;
	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=4gjbsB35Qsptzv4ZyuMpQVHa+Sm/T5dLDnMD7DOxn/Q=;
	b=QPQCSsiZmhvzLzhjqCAopx5ZbKpP+V4hpApJ88m7jpp6U7j/IGwYasgUaJg8SyBQIo6kZ3
	5zHKOh0b4CYcPuFwu1LO3iuRTvAbzdggV1S6lotNiVJDe6RGxvjU+T506v2FDHfbD6AvCA
	zfcSC9knDJBHl2EqtQKlqAmu9PD6iK0=
X-MC-Unique: xVlPGfygOLSN3BRIuhYcfg-1
Date: Tue, 19 Dec 2023 14:03:21 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 00/14] aio: remove AioContext lock
Message-ID: <ZYGUmYOqEceAa9TY@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205182011.1976568-1-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.4

Am 05.12.2023 um 19:19 hat Stefan Hajnoczi geschrieben:
> v2:
> - Add Patch 2 "scsi: assert that callbacks run in the correct AioContext" [Kevin]
> - Add Patch 7 "block: remove bdrv_co_lock()" [Eric and Kevin]
> - Remove stray goto label in Patch 8 [Kevin]
> - Fix "eeked" -> "eked" typo in Patch 10 [Eric]
> 
> This series removes the AioContext locking APIs from QEMU.
> aio_context_acquire() and aio_context_release() are currently only needed to
> support the locking discipline required by AIO_POLL_WHILE() (except for a stray
> user that I converted in Patch 1). AIO_POLL_WHILE() doesn't really need the
> AioContext lock anymore, so it's possible to remove the API. This is a nice
> simplification because the AioContext locking rules were sometimes tricky or
> underspecified, leading to many bugs of the years.
> 
> This patch series removes these APIs across the codebase and cleans up the
> documentation/comments that refers to them.
> 
> Patch 1 is a AioContext lock user I forgot to convert in my earlier SCSI
> conversion series.
> 
> Patch 2 adds an assertion to the SCSI code to ensure that callbacks are invoked
> in the correct AioContext.
> 
> Patch 3 removes tests for the AioContext lock because they will no longer be
> needed when the lock is gone.
> 
> Patches 4-10 remove the AioContext lock. These can be reviewed by categorizing
> the call sites into 1. places that take the lock because they call an API that
> requires the lock (ultimately AIO_POLL_WHILE()) and 2. places that take the
> lock to protect state. There should be no instances of case 2 left. If you see
> one, you've found a bug in this patch series!
> 
> Patches 11-14 remove comments.

Thanks, applied to the block branch.

Kevin



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:12:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:12:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656786.1025225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZt9-0001Wt-Nq; Tue, 19 Dec 2023 13:11:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656786.1025225; Tue, 19 Dec 2023 13:11:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZt9-0001Wm-KJ; Tue, 19 Dec 2023 13:11:59 +0000
Received: by outflank-mailman (input) for mailman id 656786;
 Tue, 19 Dec 2023 13:11:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CCte=H6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFZt8-0001WR-4e
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:11:58 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e676a42-9e70-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 14:11:54 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40c31f18274so57318895e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 05:11:54 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 sn24-20020a170906629800b00a2310f34d0asm6577542ejc.196.2023.12.19.05.11.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Dec 2023 05:11:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e676a42-9e70-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702991514; x=1703596314; 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=227KkKLBKUhS2GPLm/NtVtU/wkkIdDICY68h27QE3So=;
        b=bf5xLDujI600Dd+HhkkImiaLNFpe2cSjeyWOV5jp7nxla5yo8Wzk/PlyaeFVTYiRvr
         fwGttc8+/YD7jMjz+a0zQJV1c4z5YAa0L3quumpQ2AVJboheEwVFuXv8S4sUUV5fZDZq
         WZLu42AUyyVZ5FJyf9rZkBVYXzNzT+41BTp9iWSX1MZnhhEK1La56CZ7pUZG/RUXkugD
         Ezhgp/lsovw477tI1RL8C1BlwOTqERac5sKhF8GYlP5yIPpfVtPXEuLItn2TAVnWNyKv
         YvWtQoyojGnbfi2F8bDh2JbzJALQtRb3rjoW8eCHY5KJT6qnTUIwD1dunIM/gRQsu+e8
         Qtng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702991514; x=1703596314;
        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=227KkKLBKUhS2GPLm/NtVtU/wkkIdDICY68h27QE3So=;
        b=uOQyLPNHh0F2BQfvmxdGf7NthD7VTI3Rf1R0TPPpVFQ0KxjJfRq4i1+JYACXUD76OI
         C6H+u6blJpNHkgSy7Tp/nxHncz6xKBNFsAfNDh0B9qF6rqeC8ctMXeSeYuXAB0Lkz6yN
         Q+fXGlYC5avj2A1XajPWqb48xwmLz9eKp63CVvZG9D2N7pwZX4+Uyq6+mTtZoX3AFkhX
         LdKRkVS1HdjkkXUNvXIbLIPG5lxSTieEVe0HgPrhA+BteBsryenyfL33rj60wl50GRYF
         Z1KvJL1uuF3jc0l7tXqLXyX2MGcT0RswNlQa9NM77OzizBhSR8cB+OLGXoj/Q2oarkNq
         oiEg==
X-Gm-Message-State: AOJu0Yz0Jxm4EKzUqN6WcfOyzxTcSwBxATZ92Aq9pYIvq8lmgWxw4ziD
	qTH2oCfcBGg7NW4h4zkD778=
X-Google-Smtp-Source: AGHT+IEWMN8AvKLceqU+lF0BQpp+UX3qE/kW8zUvI6xAp6iXeO3rccYTEtaJUu+Nv/DWVYIRSsDD/w==
X-Received: by 2002:a05:600c:4981:b0:40c:1dd1:295c with SMTP id h1-20020a05600c498100b0040c1dd1295cmr8755713wmp.199.1702991514154;
        Tue, 19 Dec 2023 05:11:54 -0800 (PST)
Message-ID: <a9a0ab135147fb55b124db3b00f714df2758fbca.camel@gmail.com>
Subject: Re: [RFC PATCH v1 1/1] xen/Makefile: introduce ARCH_FIXED_CONFIG
 for randconfig
From: Oleksii <oleksii.kurochko@gmail.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich
 <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
 <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, Wei Liu
 <wl@xen.org>,  Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, Anthony PERARD <anthony.perard@citrix.com>
Date: Tue, 19 Dec 2023 15:11:52 +0200
In-Reply-To: <alpine.DEB.2.22.394.2312181753160.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1701966261.git.oleksii.kurochko@gmail.com>
	 <c95959adca794a90465abd10f579dc9159a7697f.1701966261.git.oleksii.kurochko@gmail.com>
	 <f9ceb8f7-a664-452b-8b38-f74b36386e33@citrix.com>
	 <7ec81395-298d-4d50-89af-d54f756ef657@suse.com>
	 <95d3e8e9-66d3-4097-b2ed-c808369a08ac@citrix.com>
	 <d56aa264-41f2-4cff-97dd-1a222750a389@suse.com>
	 <alpine.DEB.2.22.394.2312181753160.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-18 at 18:03 -0800, Stefano Stabellini wrote:
> On Mon, 18 Dec 2023, Jan Beulich wrote:
> > On 18.12.2023 17:07, Andrew Cooper wrote:
> > > On 11/12/2023 3:56 pm, Jan Beulich wrote:
> > > > On 07.12.2023 21:17, Andrew Cooper wrote:
> > > > > On 07/12/2023 5:03 pm, Oleksii Kurochko wrote:
> > > > > > ARCH_FIXED_CONFIG is required in the case of randconfig
> > > > > > and CI for configs that aren't ready or are not
> > > > > > supposed to be implemented for specific architecture.
> > > > > > These configs should always be disabled to prevent
> > > > > > randconfig
> > > > > > related tests from failing.
> > > > > >=20
> > > > > > Signed-off-by: Oleksii Kurochko
> > > > > > <oleksii.kurochko@gmail.com>
> > > > > > ---
> > > > > > =C2=A0xen/Makefile | 5 ++++-
> > > > > > =C2=A01 file changed, 4 insertions(+), 1 deletion(-)
> > > > > >=20
> > > > > > diff --git a/xen/Makefile b/xen/Makefile
> > > > > > index ca571103c8..8ae8fe1480 100644
> > > > > > --- a/xen/Makefile
> > > > > > +++ b/xen/Makefile
> > > > > > @@ -336,11 +336,14 @@ ifeq ($(config-build),y)
> > > > > > =C2=A0# *config targets only - make sure prerequisites are
> > > > > > updated, and descend
> > > > > > =C2=A0# in tools/kconfig to make the *config target
> > > > > > =C2=A0
> > > > > > +ARCH_FORCED_CONFIG :=3D
> > > > > > $(srctree)/arch/$(SRCARCH)/configs/randomforced.config
> > > > > > +
> > > > > > =C2=A0# Create a file for KCONFIG_ALLCONFIG which depends on th=
e
> > > > > > environment.
> > > > > > =C2=A0# This will be use by kconfig targets
> > > > > > allyesconfig/allmodconfig/allnoconfig/randconfig
> > > > > > =C2=A0filechk_kconfig_allconfig =3D \
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 $(if $(findstring n,$(XEN_HAS_CHECKPOL=
ICY)), echo
> > > > > > 'CONFIG_XSM_FLASK_POLICY=3Dn';) \
> > > > > > -=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_AL=
LCONFIG);)
> > > > > > \
> > > > > > +=C2=A0=C2=A0=C2=A0 $(if $(KCONFIG_ALLCONFIG), cat $(KCONFIG_AL=
LCONFIG); \
> > > > > > +=C2=A0=C2=A0=C2=A0 $(if $(wildcard $(ARCH_FORCED_CONFIG)), cat
> > > > > > $(ARCH_FORCED_CONFIG);) ) \
> > > > > > =C2=A0=C2=A0=C2=A0=C2=A0 :
> > > > > > =C2=A0
> > > > > > =C2=A0.allconfig.tmp: FORCE
> > > > > We already have infrastructure for this.=C2=A0 What's wrong with
> > > > > EXTRA_FIXED_RANDCONFIG?
> > > > What I don't understand here is why dealing with the issue
> > > > would want
> > > > limiting to gitlab-CI. Anyone could run randconfig on their
> > > > own, and
> > > > imo it would be helpful if the same issue(s) could be prevented
> > > > there,
> > > > too. Hence my earlier suggestion to have a snippet which can be
> > > > used
> > > > by "interested" parties. And once dealt with in e.g. the
> > > > makefile
> > > > there should not be a need for any overrides in the CI config
> > > > anymore.
> > >=20
> > > This is trying to find a solution to a problem which doesn't
> > > exist.
> > >=20
> > > RISC-V and PPC are experimental in Xen.=C2=A0 Noone else is going to
> > > come and
> > > randconfig them until they're rather more production ready, and a
> > > prerequisite of that is removing this list of exclusions.
> > >=20
> > > Until you can actually find an interested party to comment, I
> > > think this
> > > is just churn for no useful improvement.=C2=A0 If nothing else,
> > > calling it
> > > randomforced.config isn't appropriate given the explanation of
> > > what this
> > > target is used for...
> >=20
> > "random" in the name can't possibly be right anyway. Such
> > collection of
> > fixed settings would also be relevant to e.g. all{yes,no}config.
> > Yet
> > that's still not the same as any kind of "default" config, which
> > the
> > two architectures presently kind of abuse for the purpose of
> > defining
> > required-fixed settings.
>=20
> One thing for sure, I don't think it would be a good idea to add
> extra
> temporary Kconfig changes like these:
>=20
> [1]
> https://lore.kernel.org/xen-devel/cdc20255540a66ba0b6946ac6d48c11029cd338=
5.1701453087.git.oleksii.kurochko@gmail.com/
> [2]
> https://lore.kernel.org/xen-devel/d42a34866edc70a12736b5c6976aa1b44b4ebd8=
a.1701453087.git.oleksii.kurochko@gmail.com/
>=20
>=20
> I agree with Andrew that RISC-V and PPC are experimental so whatever
> works to enable them to make progress on this issue with a small
> effort
> is sufficient. I would be happy with a quick respin of this series
> following the gitlab-ci approach. This is good enough.
>=20
> And I think that having some sort of fixed seed (seed.config?) for
> randconfig would also be fine and potentially more reusable.
>=20
> But I think Oleksii should go forward with whatever approach he
> prefers
> and he is more comfortable with, as long as it is not [1] and [2].
Despite the fact that I am still comfortable with both approaches,
let's stick to the approach that requires minimal effort. For the time
being, let's update patch series [1] with the GitLab CI approach and
revert to the current patch if there are more cases where these changes
are required. Thank you, everyone, for your feedback.

[1]
https://lore.kernel.org/xen-devel/cover.1701453087.git.oleksii.kurochko@gma=
il.com/



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:15:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:15:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656798.1025236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFZwe-0002d1-5b; Tue, 19 Dec 2023 13:15:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656798.1025236; Tue, 19 Dec 2023 13: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 1rFZwe-0002cu-2d; Tue, 19 Dec 2023 13:15:36 +0000
Received: by outflank-mailman (input) for mailman id 656798;
 Tue, 19 Dec 2023 13:15:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFZwd-0002co-1t
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:15:35 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b03071e4-9e70-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 14:15:32 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c60dfa5bfso54130505e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 05:15:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 az1-20020a05600c600100b0040b5517ae31sm2843959wmb.6.2023.12.19.05.15.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 05:15:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b03071e4-9e70-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702991732; x=1703596532; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=VBizbzK46ciCCkt/oMCczQc2eIfqrFih45fwnP5KcFI=;
        b=GPF9/F5B6goxBqVa8W7l8pcBAAaGCmehYUzqiEJQX1bRNOtFkyrVlwh6wE3ZYr1aFN
         7cJNLqaQrY5pZ18kzXsOgNyNI8Mh0Ccpo4wdsB1gAwt4669iKibRkbvK/KYFnrC+POPO
         3d2MStJWu0hHgdxCe4rayV/mBhwd6t0z5t6kSTUSAHbtD0/TAtGs22cE+PWxBZKjKhIo
         oL/93sf6h02WENukK6sywMNZul3iqLRH4QcdoQaNEAqbbY8+8ENZdG+f8T5sAhLWb5Mj
         kxAV5w+VW1T+Dj6uKG/wPXGPRSwfd21RjIWYTh6Kffy0evetdrZxTZYIKjaHI29xP2hq
         Tn9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702991732; x=1703596532;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=VBizbzK46ciCCkt/oMCczQc2eIfqrFih45fwnP5KcFI=;
        b=ELVe/3LefPQXtTIZnpD2UZRPyKDDP08a39O+ZLA8IgcrDIKPP88mjspZzeiVzSGyUh
         p3IajN7d0NukAeQi8dxwRcAREDX5+80JvKN7RwbZ2vyMJRn+9BuhJ+w5BNpCNLvI5yAF
         gd6SWYAa0ZktR1Oe3AL/frihcrP/7hUmJCAR1H1GLIGqZ9rC65/vklwSRwhDKEGINouL
         teXUNJrky2QfFCbvgZGeRPgs6fjl0qdfOvD6RodeAPkvvEHyi95a+plWFTMJT26gBTq2
         AtdbwFltfpxbl1JzephgYB5SqYiR31UOrGaPAfyrJVAuCoC+25OrcyG+dWQ0+DxgUJCM
         0L2Q==
X-Gm-Message-State: AOJu0Yx8O/Vo3nnf6tcigTtsIYUVD3E22hFE97NvkxZK7oyybA/E8QJD
	w47btbsj6i5FnGGf6p97NNvlE7pkDZr4cAZqu2Fm
X-Google-Smtp-Source: AGHT+IF6FsqEUpNNPfLbYz4cieu46o69QTKx++0RqbOR1ha8XYFEVncPCncBdTnvpvtcg8uNwquchQ==
X-Received: by 2002:a05:600c:2147:b0:40c:23ca:1444 with SMTP id v7-20020a05600c214700b0040c23ca1444mr9471818wml.80.1702991732054;
        Tue, 19 Dec 2023 05:15:32 -0800 (PST)
Message-ID: <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
Date: Tue, 19 Dec 2023 14:15:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
 <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
 <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
 <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
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: <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.12.2023 17:21, SÃ©bastien Chaumat wrote:
>>>>> On 05.12.2023 21:31, SÃ©bastien Chaumat wrote:
>>>>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
>>>>>>
>>>>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
>>>>>> ioapic-edge and IRQ9 to ioapic-level ?
>>>>>>
>>>>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
>>>>>> IR-IO-APIC    9-fasteoi   acpi
>>>>>>
>>>>>> to (xen 4.18.0)
>>>>>>
>>>>>> xen-pirq     -ioapic-edge  pinctrl_amd
>>>>>> xen-pirq     -ioapic-level  acpi
>>>>>>
>>>>>> ?
>>>
> 
>>> This look similar to
>>> https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
>>>
>>> This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
>>> (so level type) while in xen it  is mapped to oapic-edge  instead of
>>> oapic-level
>>> as the SSDT indicates :
>>>
>>>  Device (GPIO)
>>>
>>>      {
>>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
>>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
>>>          Name (_UID, Zero)  // _UID: Unique ID
>>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
>>>          {
>>>              Name (RBUF, ResourceTemplate ()
>>>              {
>>>                  Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
>>>                  {
>>>                      0x00000007,
>>>            }
>>> Any idea why ?
>>
>> Information coming from AML is required to be handed down by Dom0 to Xen.
>> May want checking that (a) Dom0 properly does so and (b) Xen doesn't screw
>> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this is
>> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7 is
>> also the spurious vector. You may want to retry with the tip of the 4.17
>> branch (soon to become 4.17.3) - while it doesn't look very likely to me
>> that recent backports there were related, it may still be that they make
>> a difference.
>>
> 
> testing with 4.17.3:
> 
> Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  that
> (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: 1
> 
> but later on in dmesg I see :
> [    1.747958] xen: registering gsi 7 triggering 0 polarity 1

Linux has exactly one place where this message is logged from, and that's
ahead of it calling PHYSDEVOP_setup_gsi. Since you said "later", can you
confirm that actually you see two instances of the Xen message and two
instances of the Linux one (each of them with respectively matching
trigger and polarity values)? Or are we indeed observing what would look
to be corruption of a hypercall argument?

If there were two calls, it would be important to realize that Xen will
respect only the first one.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:25:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:25:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656811.1025245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFa5v-00053i-3X; Tue, 19 Dec 2023 13:25:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656811.1025245; Tue, 19 Dec 2023 13: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 1rFa5v-00053b-12; Tue, 19 Dec 2023 13:25:11 +0000
Received: by outflank-mailman (input) for mailman id 656811;
 Tue, 19 Dec 2023 13:25:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFa5t-00053V-OR
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:25:09 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 06fc7067-9e72-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 14:25:07 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3365b5d6f0eso2837590f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 05:25:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c3-20020adffb43000000b00336673a4153sm6058902wrs.80.2023.12.19.05.25.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 05:25:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06fc7067-9e72-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702992307; x=1703597107; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1aX/eAbQktTTfUR0s+jl8RGurNZaLtb87o6G/+YS1AY=;
        b=ZTdQh4XF4wH3SmGqeJA28oYr0unvzUWlKKFD6NfwrVGObC35jKx1qy4dlS1ku0/UnH
         10atfI7xaAYzlALJow5oA54JW8fWcTliQFCInjhuInYeBWqSEfj5Kw6Wo97f7pzPlmO5
         2AwNaOx586nkZA5rtoyDkBmWKqt74G2dvdA/cswYP+lhIdm5RlYsBH5WGuRbv4JsX0KF
         0m5ozGyvzRy9hb9ALDd/QCRAN5kHe9+kfEqwJwNGabGYJwg6Tg8yyNRGvfdLaOOPZzNE
         G7+mHuOW+dcbNAGiYNRKFKXi64HCxHx8l5bFtOzc9pKA7TvHVDK0sUGgHAHGdv/CiWT0
         ybsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702992307; x=1703597107;
        h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to
         :from:content-language:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=1aX/eAbQktTTfUR0s+jl8RGurNZaLtb87o6G/+YS1AY=;
        b=GZtylHUqjP2lUM2C+cvds41Atws6/D/ILgUfn4+M7pxPxXwgbHh99NPlzrZVoYWIbV
         Sn9vaWs2Q01HzT9LcUC1jQDde3vvSLfiFLLT9pEo66fQYEp8L4gkVbMjftGHaFt7ywx/
         PyFaKi6DFvivtIL77radnWQ/sNsUT58gK6kpNVhRBcRQab7L6YfCXzO5FEWgp1tsXcET
         fHcXW6C2bIR3saBHbkmu4R+wKbGGnU6T+XyqDKnnA/6mdzYUFEdArKitt5mCTZjy1dVQ
         Wd/FvJ3N/Yu//DxiIWug27lsZunVeJKocRhGHYQi2+XFMg7jr5y4KJPEBNhDULtKS7av
         POSw==
X-Gm-Message-State: AOJu0YxrX9HsxQJoP6VaVEr7Ksvs0UtGKDkMgigpuM5I+ygynqTxl4sR
	TGmKpR9ZejTK+W6BOCDZWhrh
X-Google-Smtp-Source: AGHT+IGFlL3kVYJEWvNPfLnvY7BgA9/RXxWAiws8/Zx9zwqXfL14URTZELewc8QyJdlgIBkqGGtxRQ==
X-Received: by 2002:a05:6000:82:b0:336:7045:6918 with SMTP id m2-20020a056000008200b0033670456918mr784247wrx.134.1702992307214;
        Tue, 19 Dec 2023 05:25:07 -0800 (PST)
Message-ID: <bc6b30b7-8fbe-4596-8f23-b0cde12e6e56@suse.com>
Date: Tue, 19 Dec 2023 14:25:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
 <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
 <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
 <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.12.2023 14:15, Jan Beulich wrote:
> On 18.12.2023 17:21, SÃ©bastien Chaumat wrote:
>>>>>> On 05.12.2023 21:31, SÃ©bastien Chaumat wrote:
>>>>>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
>>>>>>>
>>>>>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
>>>>>>> ioapic-edge and IRQ9 to ioapic-level ?
>>>>>>>
>>>>>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
>>>>>>> IR-IO-APIC    9-fasteoi   acpi
>>>>>>>
>>>>>>> to (xen 4.18.0)
>>>>>>>
>>>>>>> xen-pirq     -ioapic-edge  pinctrl_amd
>>>>>>> xen-pirq     -ioapic-level  acpi
>>>>>>>
>>>>>>> ?
>>>>
>>
>>>> This look similar to
>>>> https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
>>>>
>>>> This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
>>>> (so level type) while in xen it  is mapped to oapic-edge  instead of
>>>> oapic-level
>>>> as the SSDT indicates :
>>>>
>>>>  Device (GPIO)
>>>>
>>>>      {
>>>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
>>>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
>>>>          Name (_UID, Zero)  // _UID: Unique ID
>>>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
>>>>          {
>>>>              Name (RBUF, ResourceTemplate ()
>>>>              {
>>>>                  Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
>>>>                  {
>>>>                      0x00000007,
>>>>            }
>>>> Any idea why ?
>>>
>>> Information coming from AML is required to be handed down by Dom0 to Xen.
>>> May want checking that (a) Dom0 properly does so and (b) Xen doesn't screw
>>> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this is
>>> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7 is
>>> also the spurious vector. You may want to retry with the tip of the 4.17
>>> branch (soon to become 4.17.3) - while it doesn't look very likely to me
>>> that recent backports there were related, it may still be that they make
>>> a difference.
>>>
>>
>> testing with 4.17.3:
>>
>> Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  that
>> (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: 1
>>
>> but later on in dmesg I see :
>> [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
> 
> Linux has exactly one place where this message is logged from, and that's
> ahead of it calling PHYSDEVOP_setup_gsi. Since you said "later", can you
> confirm that actually you see two instances of the Xen message and two
> instances of the Linux one (each of them with respectively matching
> trigger and polarity values)? Or are we indeed observing what would look
> to be corruption of a hypercall argument?

Oh, no - what Linux logs are still the ACPI values (level: 0, edge: 1).
What Xen logs are the IO-APIC values (level: 1, edge: 0). So all consistent
here, and presumably indeed only a single call occurring.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:28:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:28:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656815.1025256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFa96-00061j-IO; Tue, 19 Dec 2023 13:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656815.1025256; Tue, 19 Dec 2023 13:28:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFa96-00061c-Ew; Tue, 19 Dec 2023 13:28:28 +0000
Received: by outflank-mailman (input) for mailman id 656815;
 Tue, 19 Dec 2023 13:28:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFa94-00061W-L7
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:28:26 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20602.outbound.protection.outlook.com
 [2a01:111:f400:7e88::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b36b73d-9e72-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 14:28:24 +0100 (CET)
Received: from SJ2PR12MB8690.namprd12.prod.outlook.com (2603:10b6:a03:540::10)
 by SA1PR12MB6822.namprd12.prod.outlook.com (2603:10b6:806:25d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Tue, 19 Dec
 2023 13:28:19 +0000
Received: from SJ2PR12MB8690.namprd12.prod.outlook.com
 ([fe80::87d4:680b:51ef:181]) by SJ2PR12MB8690.namprd12.prod.outlook.com
 ([fe80::87d4:680b:51ef:181%7]) with mapi id 15.20.7091.034; Tue, 19 Dec 2023
 13:28: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: 7b36b73d-9e72-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=H+x5Tz5uDdQAJKkLmZmdnn6kJif37yO5jVERjo9Jl5v6aKskm16IekAyW6IWykO8EJ397cw+qvHgWEjjq3VHwkeDorUwxcP6D3LHVrCbeWjU2aZeNQNcFycZpzbTAwAgDhppD2HWQnmPS8/uoJwU5Jn/I0CrJO5MxGRIex5635fhpP3RxJ5rOFrGsX24wiYxpIOn8jF6saQWpqNJJIms7zFPdwlbECPLP8JI55erwZkLH5kU2I0pIJsxSpI4W7KWdQ8nZj/J+EhFWw9bV7rxqtTWeGtQGD4gNUhAmhtzuEDkIcuxyYZimeeLKglNNgDOfa8/ZMT0U4JkP4Q2UWaK3w==
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=tA9V2cry6lNUc0fzumPIn+mZFn1DBsHLjuOq5S9jt7A=;
 b=OieaD3sXWdqVZietc/scLOXtQErgStvb3a0GKKglvTPy6d9KFtAKEV2FB7YlThCITdopoRPBwQdkJ7bUXq9LbkgqK+Hn9/JteVHLMPwW0suyIKRz9zlcFb4lpBIydJ6bbYvQ8aOa0ZdDYtjsx1u7CGm18aIyxBDKU9zG9ihhyKrV6/NfkFZqKcMIHlNvmqcdmCBDDpcqlQqLIAP73S3YTylNEHWv9XMoZ92xfQTjqsTXbgX9IGYyeRtaJGqsZ44gsPh38mNjkeGbxfW6WEUn4lpEJ5dWVG6Rp8LYc68Q11BNGRe48JdyOeyOdUA+8HhYUSNg7E1p40aHIkdGI3ZKBA==
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=tA9V2cry6lNUc0fzumPIn+mZFn1DBsHLjuOq5S9jt7A=;
 b=jLctgIgsS684GIoCKUYxwi2focCkbgZtFNAD4kKX2Xd3eD76rGmpmZwP5qZhqBfzePNHpBApjZnNdRhn1DDxCwCUAJOnp4ZquBqmLxeLq0OfkWkVLw2vOLczLlJkvHKxJ+1oeZPzTSEGxtRR7T+ACvYSIqCLCnzKs65iEdzP89s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Date: Tue, 19 Dec 2023 21:27:54 +0800
From: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>
Cc: =?iso-8859-1?Q?Marc-Andr=E9?= Lureau <marcandre.lureau@gmail.com>,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Gerd Hoffmann <kraxel@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
	Robert Beckett <bob.beckett@collabora.com>,
	Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>,
	Alex =?iso-8859-1?Q?Benn=E9e?= <alex.bennee@linaro.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Gurchetan Singh <gurchetansingh@chromium.org>,
	"ernunes@redhat.com" <ernunes@redhat.com>,
	Alyssa Ross <hi@alyssa.is>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Pelloux-Prayer, Pierre-Eric" <Pierre-eric.Pelloux-prayer@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v6 05/11] virtio-gpu: Introduce virgl_gpu_resource
 structure
Message-ID: <ZYGaWs6OmZpaMH46@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-6-ray.huang@amd.com>
 <3105531c-bfc4-4421-a197-4ab8ddb9f4a5@daynix.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3105531c-bfc4-4421-a197-4ab8ddb9f4a5@daynix.com>
X-ClientProxiedBy: SI2PR02CA0016.apcprd02.prod.outlook.com
 (2603:1096:4:194::9) To SJ2PR12MB8690.namprd12.prod.outlook.com
 (2603:10b6:a03:540::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8690:EE_|SA1PR12MB6822:EE_
X-MS-Office365-Filtering-Correlation-Id: 85cf398d-8981-4541-5c3b-08dc00965d97
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	xg8o2Zio9Fxsu2AAIh7FuHAxuiGYX81ko0W2Ij8+JiHmbRA3XkcZ2EZEV5NhNuv4RW62tqeK2knwmtAJ0aGVyl9Jw18BbmxG6YXFSlz6CfZBdZX770fcjaOmeYS6c04nMdnY9pQyJPD4V1xrPpr9cdJv9oXm9MYQZAs2ZZuUhw3l4EUM59Bg1FPKwMmdOoVqIX0GvLB5mRqbZaw1fA9qu7RnwN4cVouKTXIl51Wms7NjRw7eMFHo8lq2yqujpcWhhUMRuIDMDQeZq/Yx/ig/BNWA3L+SVQpb1mMMsgp9BnzxJPz1HYYQPXXlqBdDr1Bg9PWOZTQrW8ZG58VjNNqFnJG/2MMxFOA3H17MjNliGSjF8T5AzEXdz30kPr+c/+7GKCtSfTrqHaj+k242wjNuJC3QNwn9owbh9Wf7jIWHZxB8XaoCvixX65u7m+R1un6jQ03uPeKccD8TdYnXfqgmzsDTpZAY4SH8NihViVObqShZSpQsxHJdNzyQDUA+YTbubNMlSDL7mCHFo7Yht/jYbGrOdbxuA1bwVBkRLgK2/6YG9MYRZqgQfBrpoU8zenIZ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR12MB8690.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(396003)(366004)(136003)(376002)(346002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(41300700001)(86362001)(8676002)(8936002)(66476007)(66556008)(7416002)(2906002)(4744005)(6916009)(316002)(54906003)(66946007)(6486002)(4326008)(36756003)(5660300002)(478600001)(53546011)(38100700002)(6666004)(6512007)(6506007)(2616005)(26005);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?3A8mODSCOA9MsXwokylT+60WJIzzB86CugdotAVJAoMG9p2lI0K9itu21W3n?=
 =?us-ascii?Q?u+G0b1+SV/qYHaJeJ7OP3flPYyuUtoFG17Q74qE1uIkC+Cgt9mghFwJf2obz?=
 =?us-ascii?Q?zWaP4IVJ3rqaVHg33EbiG6oFkq2ebZZGwA/TjixDXu8KDVPfxq0qOxu7X33K?=
 =?us-ascii?Q?eDJABFBWfEew6KDIucp4WUcp48o5UraFUJc2xNSSGcYa8Au76L7o08FdjHLo?=
 =?us-ascii?Q?1um71el7vmeRm50Oovgxk3Qs+NXTSbpzjSqXS9mLQWsxBEYP9IUA+Iq7Jhn9?=
 =?us-ascii?Q?C2mhEEwMAxznjYikb+JBWErIW1/5j6ts1DMqTICM5rqMS/DxaqASAauE7E+x?=
 =?us-ascii?Q?WiFj2GurUqcX2UrpRKN0FdS9eLdGpgJ66wixM+K3rU5847bfIQE/N9UGR4NG?=
 =?us-ascii?Q?mDn0J3ZjOM8SvPNAAazNx8xHMNlQts96EdCS7lFQKl9cbdCg7dwn32XKWF8Z?=
 =?us-ascii?Q?enSlw/qWnqmmemKQ1yhaGUm4GbRiFf6iPLKAnPOomoSR41nCY82HNfvJizgY?=
 =?us-ascii?Q?ZYYiPlH8w+SdIb2zP2dI95+MwwJIC+/uM6YbFZzsXY6cGntFDWtT6wwE6Lr1?=
 =?us-ascii?Q?QUqn2gKX2j46FdPDXcNuAvvnSrIzyrn+DVEx9bAfiAq2idyFjYX7CIovVt24?=
 =?us-ascii?Q?vWxnF0D0JT+ULuNjKU4fYMI5Q4ZX5fINpkUcy6EL4/3iFwD8JD0eOCxZ5JrF?=
 =?us-ascii?Q?3oQr405xdtbcvZxcjUXWy9EV1Fav1fVPUeBRh+jQms2ZhJ6ubM+e5wGh3jj2?=
 =?us-ascii?Q?d37FTu+7ZWwcG+qOruZM/6LB3q/mqgodPxdkhE2orngYWURJ8X/LGs7FfJ7d?=
 =?us-ascii?Q?FY4UByW904NOYEvxBMa+y55U7wQjlCbPTzTM7h5sZLUiaPNSAGtTjtfkagtn?=
 =?us-ascii?Q?XfkY7WaUV0vBBHvqYOAPeYQZszacEedgKTuOS+pq/MuPgQIwekscZLASCKhx?=
 =?us-ascii?Q?1kKdjMs551MwHd6e6tz3O53/ieFqJ+jEngBIZ1U7N5cgVVpJoxughngFI0BA?=
 =?us-ascii?Q?ZrxXL0372/2vqa1PobTNbbR0hDejcBXeIsgxx6TOpa747B1j9yoCvWeBdDM9?=
 =?us-ascii?Q?s9CbMhkbhSx+NuAY2sMiDmv40R0EQ28aaGq7uF0iPPBXcDWgY/CLjRWtB/Vt?=
 =?us-ascii?Q?amYuzdwcsP7X8gl0Pdxu9S2TzfPzaK4ckBiTo+Ow3ysVJMAlmrztzGkET4dh?=
 =?us-ascii?Q?6tntANCbPjUllCNAk3A99TJfFrbTIwfdT9LEk05YoupgZb51Zw6EfSoMvHfg?=
 =?us-ascii?Q?6WE6aliMKmN1mvTGmAP2/mp9Z82GMOJ+zOpDDjm/bOB0iSDCR7b718mN9R59?=
 =?us-ascii?Q?h97ltN4t/7hVPfQly5aTq5YU+T7ZAWs6Nmdv7gRmcdRkERdAMXkJQ5yZ3xfb?=
 =?us-ascii?Q?FywSzO+t0Dscf7oaK6UygAtjTefKQnDQKnu7Sy/5pJkYEUIaiaTQE8BqKAUT?=
 =?us-ascii?Q?FmQ98LqmbmnuxkSpZS6rdDTM2MGxD8ajHPj8eRymk+SaSVgWDIuAVkwlNXwc?=
 =?us-ascii?Q?jPH2Erp0nLF3VBcHIX53O3IUEONvfL5dnqFywKcw574pF1nOzLmQLrNJluw0?=
 =?us-ascii?Q?cypfOCVDh87VJeVdaEvE7UyLC7da19RS9ZRcx4MC?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 85cf398d-8981-4541-5c3b-08dc00965d97
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8690.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 13:28:19.6406
 (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: LojIp1/lrqHWxw/WuDmbix+FRuhDwqKHCoITXlp+1YqXJeDghyJ56gYijiarm5IpubUlV68iWerTX1NgYdZp6g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6822

On Tue, Dec 19, 2023 at 08:35:27PM +0800, Akihiko Odaki wrote:
> On 2023/12/19 16:53, Huang Rui wrote:
> > Introduce a new virgl_gpu_resource data structure and helper functions
> > for virgl. It's used to add new member which is specific for virgl in
> > following patches of blob memory support.
> 
> The name is ambigious. It should tell that it's specific for virgl.

How about "virgl_resource" which inherits virtio_gpu_simple_resource? But
this name is exactly same with the name in virglrenderer.

Thanks,
Ray


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:33:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:33:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656819.1025265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFaDw-000083-3w; Tue, 19 Dec 2023 13:33:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656819.1025265; Tue, 19 Dec 2023 13: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 1rFaDw-00007w-1L; Tue, 19 Dec 2023 13:33:28 +0000
Received: by outflank-mailman (input) for mailman id 656819;
 Tue, 19 Dec 2023 13: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFaDu-00007q-3b
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:33:26 +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 2ec1f271-9e73-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 14:33:23 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40d2e5e8d1dso1996705e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 05:33:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d14-20020a05600c34ce00b0040c6b667ce3sm2920578wmq.1.2023.12.19.05.33.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 05:33:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ec1f271-9e73-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702992803; x=1703597603; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=NjEgUJtn2D73N6AcD4RWcQ+YXEdr7iUoPA3JnkfBb9Y=;
        b=dY1/YXYNyeNhP7jNa/zAyxLACKy7E4aEH5ic+8/HN374n9mPFoBP6bYrvMRBwC9+4q
         CNdOlWml83rAM2cnc5jjduGjQpHrK1gFIB41byJbcSAtrkhff9VVbWbzewDsI7fPPrFG
         ytQh+pkQCN42OgDucezMHJafdqe21EIXYTeDp4dzRn60sgquTzOQ1+SKdFTpQWgjIFZT
         HD+9QeC7b1cLL7rDlIs2VSvzYIRN79DUgA7VFOduPnke/RDMjzE9OtHOYHk+aHQLoVY2
         QZ1uIrNCkFtUTF3puQAOlBCwn5pq6w9yPkAbm1YDkni3BfuDtgRK2G/AUCR1kVCGRx8e
         awzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702992803; x=1703597603;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=NjEgUJtn2D73N6AcD4RWcQ+YXEdr7iUoPA3JnkfBb9Y=;
        b=JHRmlD+jkc59Ax/5sttGm1+GJNbFihMmIJ3VT1ZOFGhbBAvEbMB7HtHh3MU0AeNLDF
         TalN/DU9j2SsRzRLiVezQqnJlNy5wPiBusOW9ijbuwwrN0sBN7zfDNPxpFzWeDX5ORSj
         Izi1rEMDAtKmSUHINN70eFnRK0J4iWz3LT0kt8WMJ4LakFviNDK4yqaxy7IccaM9GXxN
         uEFJg8iExH8dwXJKDA7FAjTmHrPXoqlWW/L/i+whi3qbetCKTrWILHdtSn2/okyMCfmL
         n0mtMkTUV6uff9J0wxUNA3ikaEypbU0dSOSZ2Kdt2e5NzhOX9Gt7Bvi2PPpBqVyQ38eV
         4adg==
X-Gm-Message-State: AOJu0YwC+Resiz1lpthCRmZDzHHHRYpog0rBf67bUgHJQW1jjZE8lgxt
	G2f6xF/sDrulQA3edEMMhqhC
X-Google-Smtp-Source: AGHT+IGehdA0dxdIdVE5fLEeeLZfiYZshsg+tEyd2jn9ro5mXdk9fK/aopr75sKTqpLRfOfbammTFw==
X-Received: by 2002:a05:600c:614b:b0:40c:6c8d:fb90 with SMTP id ed11-20020a05600c614b00b0040c6c8dfb90mr2759702wmb.51.1702992803484;
        Tue, 19 Dec 2023 05:33:23 -0800 (PST)
Message-ID: <629d9e79-e7be-4bf2-9052-42e653c5513c@suse.com>
Date: Tue, 19 Dec 2023 14:33:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com>
 <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com>
 <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com>
 <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.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: <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.12.2023 21:31, SÃ©bastien Chaumat wrote:
>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up interrupt
> 
> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
> ioapic-edge and IRQ9 to ioapic-level ?
> 
> IR-IO-APIC    7-fasteoi   pinctrl_amd
> IR-IO-APIC    9-fasteoi   acpi
> 
> to (xen 4.18.0)
> 
> xen-pirq     -ioapic-edge  pinctrl_amd
> xen-pirq     -ioapic-level  acpi
> 
> ?

So we need to come back to here: If the IRQ is indeed treated as level
triggered in the native kernel, it needs sorting where that information
is coming from there, and why different information is used under Xen.
Clearly xen_register_gsi() is passed ACPI_EDGE_SENSITIVE (and
ACPI_ACTIVE_LOW), supposedly coming from ACPI.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:47:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:47:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656824.1025276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFaRl-0003EU-AX; Tue, 19 Dec 2023 13:47:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656824.1025276; Tue, 19 Dec 2023 13: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 1rFaRl-0003EN-7l; Tue, 19 Dec 2023 13:47:45 +0000
Received: by outflank-mailman (input) for mailman id 656824;
 Tue, 19 Dec 2023 13:47:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oURO=H6=amd.com=Ray.Huang@srs-se1.protection.inumbo.net>)
 id 1rFaRk-0003EH-MV
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:47:44 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2412::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2e3669b1-9e75-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 14:47:43 +0100 (CET)
Received: from SJ2PR12MB8690.namprd12.prod.outlook.com (2603:10b6:a03:540::10)
 by DS7PR12MB6286.namprd12.prod.outlook.com (2603:10b6:8:95::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 13:47:37 +0000
Received: from SJ2PR12MB8690.namprd12.prod.outlook.com
 ([fe80::87d4:680b:51ef:181]) by SJ2PR12MB8690.namprd12.prod.outlook.com
 ([fe80::87d4:680b:51ef:181%7]) with mapi id 15.20.7091.034; Tue, 19 Dec 2023
 13:47:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e3669b1-9e75-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CSssbbDFK/RcCK+wIKzd9DL8Jf1/ShKy1lmnwo7dKsTbYjeiJPx4nGqQOnNhzqQEhDGO8ZR6wDQSX+4vT1yfUCJm2/eHwtVMOOJFjYcgydoIJLRJqaIVMb2YjXF2INyp8rkfancyc/d/zdN7YvkGbVqD4gzw7AnDqFXYsJx7li/mR3+BNn9ThaNS7Ld9FNKPF+hOiUkDMCj9LfyZQ1+AgiWmmFtB05DedBrmJgiZscnnF25zI083F5GOLAqyVeNpm8uQg3f2+GgX69dl80w90Nl8dYIwHfJ0FnisAD30dqwvJAH9vXtwb2aaTEYnSYCqWqvDdS5Q0F86PxbhYmtCZQ==
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=uu9qE1fckvSHFFmwWket4wpttfMg/+RXOEm8NUjf+/A=;
 b=Fe6Jf1oEHb227n3/VRIK2aLh5F8qSXXzQ1/BHD8qOw+vnA5xKRb8lpQcl+w7C9S8lWZqLXc+i8pGthac1dWrzSzBskGL5e93mnfy7TAVaC0jpfgHAiomKPO85/pt6bJdEZJk9gVzP8CM15m5c87g+6qVNIbYW7rVFrAhb35La6/66eIW1Vk/YiicTRajSYzZSx6Z8SfS0HwCBW+m4fRLKq0D5XYt99h7XzNmBIpqKsOSRdm6WcpiMlmVRdHkNd+C+6ovZllMN+xLJ+4Coiuwj2vWcp8S+dU0MlKaEqOPgyOk/2XXurCkqgSaincWqDst5H8BdQZ3wGOqnWFUwIiEJA==
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=uu9qE1fckvSHFFmwWket4wpttfMg/+RXOEm8NUjf+/A=;
 b=TcoxYuUJQ1bfr9vxj202x0M9M5DnmR1mknmhlWi/hJInhwxj6xPNSsy2KKw0EukqHT/tIq+f32t25EJmd8ht7Ry+NPRTKuZC+dkLDrhHMaI0P1bQbenE3HS+NkaelwNBUDo7U5aFWFQmJ4zuTHbYcWnyEAB2C7PrqCw2Obp2aOQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Date: Tue, 19 Dec 2023 21:47:12 +0800
From: Huang Rui <ray.huang@amd.com>
To: Akihiko Odaki <akihiko.odaki@daynix.com>
Cc: =?iso-8859-1?Q?Marc-Andr=E9?= Lureau <marcandre.lureau@gmail.com>,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Gerd Hoffmann <kraxel@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
	Robert Beckett <bob.beckett@collabora.com>,
	Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>,
	Alex =?iso-8859-1?Q?Benn=E9e?= <alex.bennee@linaro.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Gurchetan Singh <gurchetansingh@chromium.org>,
	"ernunes@redhat.com" <ernunes@redhat.com>,
	Alyssa Ross <hi@alyssa.is>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	"Pelloux-Prayer, Pierre-Eric" <Pierre-eric.Pelloux-prayer@amd.com>,
	"Huang, Honglei1" <Honglei1.Huang@amd.com>,
	"Zhang, Julia" <Julia.Zhang@amd.com>,
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v6 01/11] linux-headers: Update to kernel headers to add
 venus capset
Message-ID: <ZYGe4GcFPt0k5PTM@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-2-ray.huang@amd.com>
 <6adff6d2-7c58-4c78-93a5-5a4594a60d27@daynix.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <6adff6d2-7c58-4c78-93a5-5a4594a60d27@daynix.com>
X-ClientProxiedBy: SGXP274CA0018.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b8::30)
 To SJ2PR12MB8690.namprd12.prod.outlook.com (2603:10b6:a03:540::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8690:EE_|DS7PR12MB6286:EE_
X-MS-Office365-Filtering-Correlation-Id: 37c1e39c-24e5-4b3f-74b9-08dc00990fc1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	SgZuP7XyijEisodHE6/WXOtJGKsMicbbyh8+yzbelB5P0m2sax+TP+f/oKWDjZ6Eiu9we2pZYd3FZGp2YNv8nl+aJUe/uOd67dwK122Bz6upIhJiiffmte4ImZXRGyd7nwNV4yFDiCzNz07hQw16RKlwMuOASMVY3KqBbLs5UA9V8jv5Kj8pMBOinw2eSA0KcPeU3jQY8AEo8x1A2phwwhqNlqXABHwsxG57UK5jdSH3W79fPZTJcnjbFJSL0kntRMV1tcQJlbrfSyebZUN6IuOhCHIi8hR3PCU+JxC+AqRH62kL7BDWw1KyTi8FoqpsYmqqzJ+roxDkssgCAqJEZDYHHrsYlslORkpyj8W5Z/fWILU/O+UbvkX8ZfsfpJqUIa+kxjF+fp3ZDnIGfXM7C9eDWF/E7eiuOBza8PHhwsSLmjDnP8+jsOjddOUXEg03td6Nvqap44WG5Ken/Nh5Iy1mbwcVnMt8yFjTvoTS2fJxVP2Gs3LtNz2RI6YaQsWAmdR76ohX4orL/iS0ZC1Oh2q7ZgoJ5CZs4gh4QpdCINY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR12MB8690.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(376002)(39860400002)(136003)(396003)(346002)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(66556008)(83380400001)(2616005)(6916009)(54906003)(66476007)(316002)(478600001)(38100700002)(966005)(6486002)(26005)(66946007)(4326008)(8936002)(8676002)(6506007)(53546011)(6666004)(6512007)(7416002)(5660300002)(15650500001)(4744005)(2906002)(86362001)(36756003)(41300700001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?YIBPlg5agvbhdMzPKay9nnA5BhmcTutkEadnJEv88GWTFAphN1o0EKYcIUDO?=
 =?us-ascii?Q?MKU7WlLWm2evSnjy/8liOj/CABCCylLIbevVNnP5SP3DtMtMGN4hnqNUC5Gw?=
 =?us-ascii?Q?FRDEPp7LsgI7vuYp930KN/ArCliZTHqOL6RLtYufPpdU7CqgF18QfIA/1MNy?=
 =?us-ascii?Q?MDkUOcIJc1UTYhUYNoxwfmHaPIuT0paFE6IvWGRfcRI7e4IC233N3qD6pPXu?=
 =?us-ascii?Q?eRDHGZYEWJ4vy7hY9egMQHcTi3O/maq2nfX5l27VPR0SkNJwnsGtpZg+tWiQ?=
 =?us-ascii?Q?m16B8TjCg9S3m1GmDf5dnfr3Z1pLZKxhbvrUEQSWfL3LhDEW71rCE3ZmJNVv?=
 =?us-ascii?Q?/huNzKS40SUtdqkYvortzz1ueJPj9uSkqvcAuFrLeWw9Ci/RD4mAQ3iwRkN3?=
 =?us-ascii?Q?pO3JIc/2Pqc5ysfTyJtD2h4K6oDSpmTLN0fh2+R4Ctw9KoVMVFCDel0+7xKp?=
 =?us-ascii?Q?ErFtRV+Eyi6+16KF614f8qTGBkU5ejBN673v9Y4niGBtVCpbQBQQfP19z9P9?=
 =?us-ascii?Q?Wey75c7VyfQkcnH7nzCEhv65zE81PbANF3oMO+jyDc41YRzlu595CGVH4NoR?=
 =?us-ascii?Q?w4tNItEZ0SzzHvm30jXTM2C1y6fyEKnx/h9G0Rf1m3lnXpIEAHP4TXZDh81A?=
 =?us-ascii?Q?ZRHWMULLJrDDTPGI2QYv6ILZyfuhxN63bdDkrgc0Up9gP2nNBLASOYq2huCl?=
 =?us-ascii?Q?RJ/2eUeyWy1zTlx5VqdJoeW42KU74ehlvofSKIO4qgBYuTnrG4a8d1aXXEGT?=
 =?us-ascii?Q?qJTSLRPq6371wtmh3j3QjB3RgJga+QKr5jLibulkKfROC4tyQbVY3XTQghDa?=
 =?us-ascii?Q?9KBhl1LlE93uSejmoFtBUUlAa/5HNsXwkNOUr2/M82HO7DJAVaF29AcBEsEB?=
 =?us-ascii?Q?cAAiha5ozssQtNWgKBGklHQRCJN6E97hULYfu2km4faT+JuMNl9iPlxFJbmk?=
 =?us-ascii?Q?7qnrsdwNAYGrPysnJbIZirQCcmuA+7klWzMcAWSPIwFHc5eKDyzDe5hgqkZf?=
 =?us-ascii?Q?EOrodiIRm50bO3R2WGQeIkKKRHj4eYJh+w1o5NPCSCJASn6K+NUb8/WfjDRP?=
 =?us-ascii?Q?sgw8yrm8ObHbBUB4fAsLg3Z/pt8srUkN7XiMkbMCU55NTOE/64k3C7j4nPwz?=
 =?us-ascii?Q?HZ/PTB94j2gOVdczdCd/h22zLFV3QMzp57mgyWkpkIMev+6hVKmszlOuun1Q?=
 =?us-ascii?Q?6cZn84ih4vlqTgawdQWi5BXAkXSaJc4rKd50hgpL2zSpWlBnINM2JCFRX/Gj?=
 =?us-ascii?Q?zqaiiaZ8u/OMP0rCGpMeiGLVe92Bp2xfwomELrpc/c4fcJqbtEuOFCgbAVVk?=
 =?us-ascii?Q?+CNIrQtsZ0UYZvNnMCHC+TI9kgFKjJO65ssZzEz81jmohFxzxUHc0EZfduHv?=
 =?us-ascii?Q?s80fk+ihXwHqfl6JtrIA+Sf60mk3JoxBjsR+f4sgbcVhuqqH7SLrrtJXoq9k?=
 =?us-ascii?Q?1j07IskCps4vySxRsV4BJHBqtPoNIbjYy2vRBniNXmydiBWWFbMoAkrxDqvg?=
 =?us-ascii?Q?qcs1uCUZ+0i3fBwyn0PoKEgiP8DgszfWdwUYv78vfAb4dCFRzfm5spphdpXe?=
 =?us-ascii?Q?d+C4YfJAfoRAQTrx/Yckx5IWhZiQCnGufgoPdMkw?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37c1e39c-24e5-4b3f-74b9-08dc00990fc1
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8690.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 13:47:37.5381
 (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: uNKWHTpzH+Kg7oGuW9VkLkNBxiWSNnBU/DcmrPZbQ9Yg0fQdtTAUkfyr9nY1JYOLCBU985iLJMIUYKgfNNpaOA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6286

On Tue, Dec 19, 2023 at 08:20:22PM +0800, Akihiko Odaki wrote:
> On 2023/12/19 16:53, Huang Rui wrote:
> > Sync up kernel headers to update venus macro till they are merged into
> > mainline.
> 
> Thanks for sorting things out with the kernel and spec.
> 
> > 
> > Signed-off-by: Huang Rui <ray.huang@amd.com>
> > ---
> > 
> > Changes in v6:
> > - Venus capset is applied in kernel, so update it in qemu for future use.
> > 
> > https://lore.kernel.org/lkml/b79dcf75-c9e8-490e-644f-3b97d95f7397@collabora.com/
> > https://cgit.freedesktop.org/drm-misc/commit/?id=216d86b9a430f3280e5b631c51e6fd1a7774cfa0
> Please include the link to the upstream commit in the commit message.

So far, it's in drm maintainers' branch not in kernel mainline yet. Do I
need to wait it to be merged into kernel mainline?

Thanks,
Ray


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:49:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:49:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656830.1025286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFaTE-0003qO-Nq; Tue, 19 Dec 2023 13:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656830.1025286; Tue, 19 Dec 2023 13:49:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFaTE-0003qH-L1; Tue, 19 Dec 2023 13:49:16 +0000
Received: by outflank-mailman (input) for mailman id 656830;
 Tue, 19 Dec 2023 13: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=dUif=H6=epam.com=prvs=6717fc9f42=mykyta_poturai@srs-se1.protection.inumbo.net>)
 id 1rFaTD-0003q9-N0
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13: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 63c86e7c-9e75-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 14:49:13 +0100 (CET)
Received: from pps.filterd (m0174676.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BJCqlo0006134; Tue, 19 Dec 2023 13:48:59 GMT
Received: from eur02-am0-obe.outbound.protection.outlook.com
 (mail-am0eur02lp2232.outbound.protection.outlook.com [104.47.11.232])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3v2nus4efd-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 19 Dec 2023 13:48:59 +0000 (GMT)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB7328.eurprd03.prod.outlook.com
 (2603:10a6:102:109::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 13:48:55 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::3776:9f2d:8305:b645]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::3776:9f2d:8305:b645%6]) with mapi id 15.20.7091.028; Tue, 19 Dec 2023
 13:48:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63c86e7c-9e75-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=foTd+PCEqtexpJ5Pxg+zlJOBP0TcXfvWnK+LpYyrJh7m6SgmYBNXhTqRDD4L+QJoSIFGsuWleDZE7uBXNPzsX+UXOwK0l/ygY8adhVZqNUUtuJq05w+fTkFiHLuAir3L2C/HYD2b4nX2LCDKdx8CzpJ9UpILRTZiW/+LkeE1WTIJRcNAZ33ZyEXlpgBJys9gqKPX/WVZqUJgovBUMO0QOfUgiYHjMDe4POvHF0Bi8FmV6yhh5EC22VOd7BKv1P8kgW/SuwM95lieA880kl/plFw325zdvH48t5/HkQYbjWQrgwAeU5WYRtqlZbdkjftm3NnczSeKhjAvOF97HN9qNw==
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=QQUx5CAm0avy2+p0DgAFA5Au4J5PpEX0kulG5SVNslA=;
 b=k5LvdGcGVm91s94ieljCMSavrHkAvgbnxeSqZP8fg5JX/QRux9s6bQstIs2HRJcuD5f3LZgQa6g3qXOCC+OlmSR6GAnXJ9jqVVenDYgwH79CU6/15OlsuCLMJNwxbp0MTM8PJ9pUrRwmggi/J2/VwSCrvglux8wZCNOwyNzfqAIfyYp8QdeBgsANTyzp1znXKRjFfBDRgQ+WdbJ3nJzHQL5zXf1y0oTBUnhB5v7y3osvWtlggZ8XC6Os355D8iP3reUuMuitMAhFI4J1CKmWRoeSTcyBPtBDOdRoyRSHZ60Rbx176SIwX6yWGVXYxV5pSavjuc+7mU9GIdvvBo3OhQ==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QQUx5CAm0avy2+p0DgAFA5Au4J5PpEX0kulG5SVNslA=;
 b=PUwezdhJlLduD6JrUKiB4/FOteejIzseyqzd3xrCOtP3AshiFdyQGXqmoWEvwQBt+Uvbq8ahQtlPhl1Ia/B1DYIWg1BcdFl1Ix2j6YUUdf4gi0HIJVlSv+rMg32HRY3CuE/vrBxmPv5duprF18BUdadjETb/omqt8LPbksu3wla7Y+IqNVGh1/VY1N22RPHTtD0xj5AL7q9K+suQ8qehIngPWQf5NJBVs7aX8jqz8WgrinzvXU5kv44RCsBa9LSW/UEpxjIojb4SQCL4JH5Jb1oM/KCo2DmRkyxaOOaQfsSDXi9T2ug7tV9uY31j6G9SWqlij7W/wEhXTy1RFum5BA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Wei Liu <wl@xen.org>,
        Anthony
 PERARD <anthony.perard@citrix.com>,
        Juergen Gross <jgross@suse.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>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Thread-Topic: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Thread-Index: AQHaMoIbfIb6LpTMIEGFPPk7JAqgfQ==
Date: Tue, 19 Dec 2023 13:48:55 +0000
Message-ID: 
 <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB7328:EE_
x-ms-office365-filtering-correlation-id: ef262839-5c18-44d4-e8b3-08dc00993e73
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 sAmeg+vC04nalkgRrQoGxLf0j5oqs1fdDk2mthvXZOTYqvkUpgHNaefgbjFYgXe+VADxrbu0GDFYDz4ZMhCFfNpUT5jhVO2JWtelcwwnqm5Qr0X7Cs7ORAsu6tTuFGIJwGAQOO5ArjAGGaLRzlAVGV2hFI49iNom9fGIMzRZZ492WqLXcl8wWvdZcoLWGBAvh5FEjDX2tFgC7wLNEDx6lzLO8yBQEA2e3e7cnfTwFVKDWaqSSSAaeohsfePvQ1EFHhBlNOjJTKGtl5PMAqPtq/1NnGXVxgJfScyRpUXwT0R4KC79uAxVWIJZGVUcfjjzYQnIVcP5LLVAOUr/ccQC2u8rslFDuOicphRzwnxZUM+p4wYXhaNlBn5YJ5635HNWB6EvcHfs9dK/jEZadKNqPcroHK2vxLk8UvURkWFW4tSoAzFZSlHXAiimI1sDKsINhExVHr7150+g7HxktH62iM6GAJirqXIWH/t5S50TPB0qqZSGlOxxHoSG3L28bfSQWeczZdp8Kh1pifi6yb729QaCdLPzNEV8BsW3oOLx6osJqYgzaY+mJJpNNm8hnbOVgSjheNLWshHMZrl6T8TjPPy+tJa/VJ9R97EunGtm4ms=
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(376002)(136003)(366004)(346002)(39860400002)(230922051799003)(64100799003)(1800799012)(186009)(451199024)(86362001)(36756003)(66476007)(91956017)(71200400001)(478600001)(76116006)(6916009)(6506007)(66946007)(64756008)(54906003)(66446008)(66556008)(41300700001)(38070700009)(26005)(107886003)(6512007)(38100700002)(122000001)(83380400001)(2616005)(7416002)(2906002)(966005)(6486002)(5660300002)(316002)(8936002)(4326008)(8676002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?fqsXQb/rqx65118SaXyAwI8rKaHKZNB7wU5eiIq6ww0xH6D507JsH0lemy?=
 =?iso-8859-1?Q?wWElaOVFNlR3k86bZlaN/s4eCzdCyyB3frdbgDW0fLriDPC9ghCN4tYEXW?=
 =?iso-8859-1?Q?mW9qN2CptZ0gCUhG5AypplzPT3XC8Z+QBaN5VXmYHfaCR8LlwTv9Lu3BC2?=
 =?iso-8859-1?Q?r7OA45+pKv5Bg2ow5GImr69Kyp02NSGL+4uHZC7cnFt21N+yX/gXWb39j0?=
 =?iso-8859-1?Q?mOYjObr33t0jrMVcWZB/m1uu2ROJ3A4ydraaCRmaJM3/wivRGU7A+HprGZ?=
 =?iso-8859-1?Q?SUA8PFE/lxHHdlcjmZQeBPdmGO8sibU2hsgL1kI7wudm9fsWQCvdZOE4Vs?=
 =?iso-8859-1?Q?wyftEpROO6b6UssVhWWHsNyD6pfyGGJRWPV1idSsjknvACYQzBUSs12qgc?=
 =?iso-8859-1?Q?g9EZLCkNcRoah2Xt1iSdux/qVaMsPhzMes522lOwCwywjy+fwgeIYbAZWk?=
 =?iso-8859-1?Q?iYeCZZRtwx4S6AL22LbLVtWgoE4xIULdKC5fb1X+1iSLQbPJWDBe4qrFUb?=
 =?iso-8859-1?Q?8L9QY9Mz7+xyM/lL3jBVf3m5VbMR/VqpDgcJHfyKWLH5VZP+x8kMYAzBb7?=
 =?iso-8859-1?Q?9RvN+dmV9w4dtWNbP2Y3yG0yMcBMfQ3o4WqVvuOeI5Q0v9Zvyx+H89rj36?=
 =?iso-8859-1?Q?nZVF9LV1xDhiUp1ZrrfJ5hPczBp+KYTmGJa6xwcOl2YtIwbz2WjKEEk/BX?=
 =?iso-8859-1?Q?Q6bkdZ44Wv1SUbhJDri/7EcB5hEYVBhpV4hbK7sD3ncwqFsKEeo4129GDs?=
 =?iso-8859-1?Q?kjDxPF3Bqlsbf+GtBkaM+aV1L1lVEc1sNpZ5JtKLUpYH8OemZ2zVjlyHOG?=
 =?iso-8859-1?Q?Wru2EQklSxqAkNH4HTzH9txyQYIBN9Gskh+3wDQ0tQ7xu/L2FquR3jzdki?=
 =?iso-8859-1?Q?Io0yf7jFxr8NSGJTUpJIpworKELuhnj8jj0DbR85DBmpTWy/0UlsduIY1N?=
 =?iso-8859-1?Q?dtKS2d+50hhYT9tY0cAv3yxrlVF/hiyBEdCJ2hARm2bvnDscHuP2mpynhb?=
 =?iso-8859-1?Q?+hqyzenUgSJzLqNXqxQfNRdJ7qSjKGibmcz7Q3DW4MrR5q0UnyeXNix3kf?=
 =?iso-8859-1?Q?d6+t9wY1liBNPqNR7t9gyaGEY18AY4nvM51zTLPoxf5NbzJ5BezfAes3al?=
 =?iso-8859-1?Q?rDvP+k8OzoWJRgBPqxlJ0eCEhNBgb0Vo/RADtu3+jNrGamFMMruKqfkykr?=
 =?iso-8859-1?Q?nkGmT8gQidbUFO0WiuSRGlhXwApZv1SIMT6csOV1PGmMJtNtvKPTvhCK1W?=
 =?iso-8859-1?Q?fLnIYzr3bPrBURVE59WrI9M+XLhR7JuicfmU80m+DC/a2R/QMHylX/tvbv?=
 =?iso-8859-1?Q?b234KreB6rrpGAZgHCsFlNO0QnvaRWmAbW49f8wQ/uvRlv8EY3jj7yKBD4?=
 =?iso-8859-1?Q?93dqADBfQDpE55AKBhHIYJW1eBrKKKGQQo+opz56J2aJXPgpKZNzSQghru?=
 =?iso-8859-1?Q?Sb5Jf5G5PBScbeKFnpX4XYcTaIBE3cRTcyQn4WO9Eb7BPkjpu+CfJbQhuy?=
 =?iso-8859-1?Q?aam/3ASYwA8Q4WeZ/dzcP5YJdRog5aUUoADMkRzZwSOWvIoTuZd6Uvi2Xs?=
 =?iso-8859-1?Q?c9XFidbhlHi5gnvC1t0KuC+7HeRh9E4odDXoNaGN9Lls0Drwn/Z1LDk6l3?=
 =?iso-8859-1?Q?QUj9hfFUqum5VzOcPLXqFWvam7NsREiUmL0Eyr40IXBna1jlG5bJr7iw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ef262839-5c18-44d4-e8b3-08dc00993e73
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2023 13:48:55.7477
 (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: NEmthT0DP8vLFPdZOuIE/ki4TCxrpu41YlMJIH8feBeQxugHSQ+511X6v9qOvP6PCu/6iSBiIKPiz2uKKMtOmw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7328
X-Proofpoint-GUID: LnYZzPKakv_FuVdGfy9X6s-yeTftP5d8
X-Proofpoint-ORIG-GUID: LnYZzPKakv_FuVdGfy9X6s-yeTftP5d8
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1011 bulkscore=0
 impostorscore=0 malwarescore=0 suspectscore=0 phishscore=0 adultscore=0
 lowpriorityscore=0 mlxlogscore=731 mlxscore=0 spamscore=0
 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2311290000 definitions=main-2312190102

This patch adds the ability for the device emulator to inject MSI
interrupts into guests. This is done by adding a new DM op to the device
model library.

It is not possible to reuse already existing inject_msi DM op, because
it does not have a devid parameter, which is required for translation of
MSIs to interrupt numbers on ARM.

This approach was successfully tested on a virtio-pci setup with QEMU
backend emulating block devices with following changes from the mainline
Xen:

This branch was taken as a base for virtio-pci:
https://github.com/xen-troops/xen/tree/xen-4.18-xt0.2

With added new VGICv3 from here:
https://github.com/Deedone/xen/tree/new_vgic_v2
(although it should also work with the current VGIC)

And patches from this branch to allow for proper ITS emulation in guests:
https://github.com/stewdk/xen/commits/pcie-passthrough-arm-vpci-v11

The main purpose of this RFC is to get some feedback on the addition of
the new DM op. Is it the right approach or should we somehow modify the
existing inject_msi DM op to be compatible with ARM?

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 tools/include/xendevicemodel.h               |  4 ++++
 tools/libs/devicemodel/core.c                | 19 +++++++++++++++++++
 tools/libs/devicemodel/libxendevicemodel.map |  5 +++++
 xen/arch/arm/dm.c                            | 15 +++++++++++++++
 xen/arch/arm/include/asm/new_vgic.h          |  2 ++
 xen/arch/arm/vgic/vgic-its.c                 |  2 +-
 xen/include/public/hvm/dm_op.h               | 10 ++++++++++
 7 files changed, 56 insertions(+), 1 deletion(-)

diff --git a/tools/include/xendevicemodel.h b/tools/include/xendevicemodel.=
h
index 797e0c6b29..e28710a6a5 100644
--- a/tools/include/xendevicemodel.h
+++ b/tools/include/xendevicemodel.h
@@ -236,6 +236,10 @@ int xendevicemodel_inject_msi(
     xendevicemodel_handle *dmod, domid_t domid, uint64_t msi_addr,
     uint32_t msi_data);
=20
+int xendevicemodel_arm_inject_msi(
+    xendevicemodel_handle *dmod, domid_t domid, uint64_t msi_addr, uint32_=
t devid,
+    uint32_t data);
+
 /**
  * This function enables tracking of changes in the VRAM area.
  *
diff --git a/tools/libs/devicemodel/core.c b/tools/libs/devicemodel/core.c
index 8e619eeb0a..d15ffa46fb 100644
--- a/tools/libs/devicemodel/core.c
+++ b/tools/libs/devicemodel/core.c
@@ -448,6 +448,25 @@ int xendevicemodel_set_irq_level(
     return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
 }
=20
+int xendevicemodel_arm_inject_msi(
+    xendevicemodel_handle *dmod, domid_t domid, uint64_t msi_addr, uint32_=
t msi_data,
+    uint32_t devid)
+{
+    struct xen_dm_op op;
+    struct xen_dm_op_arm_inject_msi *data;
+
+    memset(&op, 0, sizeof(op));
+
+    op.op =3D XEN_DMOP_arm_inject_msi;
+    data =3D &op.u.arm_inject_msi;
+
+    data->addr =3D msi_addr;
+    data->devid =3D devid;
+    data->data =3D msi_data;
+
+    return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
+}
+
 int xendevicemodel_set_pci_link_route(
     xendevicemodel_handle *dmod, domid_t domid, uint8_t link, uint8_t irq)
 {
diff --git a/tools/libs/devicemodel/libxendevicemodel.map b/tools/libs/devi=
cemodel/libxendevicemodel.map
index f7f9e3d932..8dceba5056 100644
--- a/tools/libs/devicemodel/libxendevicemodel.map
+++ b/tools/libs/devicemodel/libxendevicemodel.map
@@ -44,3 +44,8 @@ VERS_1.4 {
 		xendevicemodel_set_irq_level;
 		xendevicemodel_nr_vcpus;
 } VERS_1.3;
+
+VERS_1.5 {
+	global:
+		xendevicemodel_arm_inject_msi;
+} VERS_1.4;
diff --git a/xen/arch/arm/dm.c b/xen/arch/arm/dm.c
index 5569efa121..b42f11e569 100644
--- a/xen/arch/arm/dm.c
+++ b/xen/arch/arm/dm.c
@@ -27,6 +27,7 @@ int dm_op(const struct dmop_args *op_args)
         [XEN_DMOP_set_ioreq_server_state]           =3D sizeof(struct xen_=
dm_op_set_ioreq_server_state),
         [XEN_DMOP_destroy_ioreq_server]             =3D sizeof(struct xen_=
dm_op_destroy_ioreq_server),
         [XEN_DMOP_set_irq_level]                    =3D sizeof(struct xen_=
dm_op_set_irq_level),
+        [XEN_DMOP_arm_inject_msi]                   =3D sizeof(struct xen_=
dm_op_arm_inject_msi),
         [XEN_DMOP_nr_vcpus]                         =3D sizeof(struct xen_=
dm_op_nr_vcpus),
     };
=20
@@ -112,6 +113,20 @@ int dm_op(const struct dmop_args *op_args)
         break;
     }
=20
+    case XEN_DMOP_arm_inject_msi:
+    {
+        const struct xen_dm_op_arm_inject_msi *data =3D
+            &op.u.arm_inject_msi;
+
+        if ( d->arch.vgic.its =3D=3D NULL )
+        {
+            rc =3D -EINVAL;
+            break;
+        }
+        vgic_its_trigger_msi(d, d->arch.vgic.its, data->devid, data->data)=
;
+        break;
+
+    }
     case XEN_DMOP_nr_vcpus:
     {
         struct xen_dm_op_nr_vcpus *data =3D &op.u.nr_vcpus;
diff --git a/xen/arch/arm/include/asm/new_vgic.h b/xen/arch/arm/include/asm=
/new_vgic.h
index dfc434ab41..dedc294ce9 100644
--- a/xen/arch/arm/include/asm/new_vgic.h
+++ b/xen/arch/arm/include/asm/new_vgic.h
@@ -275,6 +275,8 @@ int vgic_its_add_device(struct domain *d, struct vgic_i=
ts_device *its_dev);
 void vgic_its_delete_device(struct domain *d, struct vgic_its_device *its_=
dev);
 struct vgic_its_device* vgic_its_get_device(struct domain *d, paddr_t vdoo=
rbell,
                                          uint32_t vdevid);
+int vgic_its_trigger_msi(struct domain *d, struct vgic_its *its,
+                                u32 devid, u32 eventid);
 #else
 static inline void vgic_enable_lpis(struct vcpu *vcpu)
 {
diff --git a/xen/arch/arm/vgic/vgic-its.c b/xen/arch/arm/vgic/vgic-its.c
index fd5aaf4a70..706987d93a 100644
--- a/xen/arch/arm/vgic/vgic-its.c
+++ b/xen/arch/arm/vgic/vgic-its.c
@@ -608,7 +608,7 @@ int vgic_its_inject_cached_translation(struct domain *d=
, struct vgic_its *its, u
  * Returns 0 on success, a positive error value for any ITS mapping
  * related errors and negative error values for generic errors.
  */
-static int vgic_its_trigger_msi(struct domain *d, struct vgic_its *its,
+int vgic_its_trigger_msi(struct domain *d, struct vgic_its *its,
                                 u32 devid, u32 eventid)
 {
     struct vgic_irq *irq =3D NULL;
diff --git a/xen/include/public/hvm/dm_op.h b/xen/include/public/hvm/dm_op.=
h
index fa98551914..a7d72e4389 100644
--- a/xen/include/public/hvm/dm_op.h
+++ b/xen/include/public/hvm/dm_op.h
@@ -444,6 +444,15 @@ struct xen_dm_op_nr_vcpus {
 };
 typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
=20
+#define XEN_DMOP_arm_inject_msi 21
+
+struct xen_dm_op_arm_inject_msi {
+    uint64_t addr;
+    uint32_t data;
+    uint32_t devid;
+};
+typedef struct xen_dm_op_arm_inject_msi xen_dm_op_arm_inject_msi_t;
+
 struct xen_dm_op {
     uint32_t op;
     uint32_t pad;
@@ -463,6 +472,7 @@ struct xen_dm_op {
         xen_dm_op_set_mem_type_t set_mem_type;
         xen_dm_op_inject_event_t inject_event;
         xen_dm_op_inject_msi_t inject_msi;
+        xen_dm_op_arm_inject_msi_t arm_inject_msi;
         xen_dm_op_map_mem_type_to_ioreq_server_t map_mem_type_to_ioreq_ser=
ver;
         xen_dm_op_remote_shutdown_t remote_shutdown;
         xen_dm_op_relocate_memory_t relocate_memory;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:49:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:49:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656832.1025295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFaTt-0004Ue-1C; Tue, 19 Dec 2023 13:49:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656832.1025295; Tue, 19 Dec 2023 13:49: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 1rFaTs-0004UX-UU; Tue, 19 Dec 2023 13:49:56 +0000
Received: by outflank-mailman (input) for mailman id 656832;
 Tue, 19 Dec 2023 13:49: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFaTr-0004UP-Tk
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:49:55 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d31aa89-9e75-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 14:49:54 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3333b46f26aso3790201f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 05:49:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 z8-20020adfec88000000b0033661255299sm8121682wrn.34.2023.12.19.05.49.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 05:49:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d31aa89-9e75-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702993794; x=1703598594; 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=vJ/x5r7S1V8t1jZNdx2JKpMDf32cYcP7sIFLL4ti1n0=;
        b=VQmDCK7cu8pBOwcDeYZNTOHq+0ccZmndGR/YuIRf/YIpkOgsiCwNMgRUMTTg76OlO/
         MhMnMxHYEBdsaT40D3gvTCgIUw1ZKI1U8X5/TL4NdNjM/Hg4t5iFotN8j2lGywyNV5Ux
         D1NMAkrVhncyeMvaKM0wnmmX/yHMzApJH7vMfWt8cA9h4TjJr9ET7LWqBoz1R4CbVI3T
         8OGk4admKH3+ofM35qmOw3jCKfFU5hIhFg/IxorVGIAdXQwRHXQw0JbygESMlSO88oE+
         kHhVbcNhme1HEXh8pyUXx1MWikp0Nzx0vGz5fg0lGmjCsmFcr7ouG9BB4rK7Jwt88oSX
         9Oyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702993794; x=1703598594;
        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=vJ/x5r7S1V8t1jZNdx2JKpMDf32cYcP7sIFLL4ti1n0=;
        b=L1qacfw5e1MRpoJo9GFwX6aMQnqPzw27zYM7sTNvc96BpJ8wU1VTgovo5N9aRJLoMV
         WMG6N3zYh/TZ/YyIaZ0P3w9x6p1e31jh9ZaBfIRhR6H5F2WG79YupWg3TWygEngFVq+u
         GC03sTzZJlJ2bIaL78jJtZ2RJPBzFI7+5L4qBZ3x5UFMGWVU0tL1Lpp+osFvMbbq3pCN
         QeNJbzW0yQatbHCpNrV8+t9Z59eBoyGFoDfRMnloT9EgxGSHegLb9mB0N9oz5MX+fGN9
         kqLtNno7ps0V+XPGKB/0fxe8R8DwIdd4cZDnjNJtPlMEg5AzTG7aIh7Etz9rxHXQT9+j
         31Rw==
X-Gm-Message-State: AOJu0Yxw8Hjh5sMvDIj6wDa1zNp9f+cZqsMzFnl+v9kEfXi/yo+02mL3
	tMhpqSdH6doRi9zc31UzLzNrGKV0wywPb72/Snic
X-Google-Smtp-Source: AGHT+IHv3EGRWzLQMLXNO4tKJYOA3T+YgRyNEz+/pzAaLllgGs2lxnQZviIluTwSNzUZFqa7V2ADog==
X-Received: by 2002:adf:f3d0:0:b0:336:768f:f840 with SMTP id g16-20020adff3d0000000b00336768ff840mr210376wrp.83.1702993794025;
        Tue, 19 Dec 2023 05:49:54 -0800 (PST)
Message-ID: <072a4e90-78dd-47ff-9890-ba377e0a2b66@suse.com>
Date: Tue, 19 Dec 2023 14:49:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/IO-APIC: correct RET polarity comment
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The comment there was the wrong way round, documentation clearly states
that 0 is high and 1 is low.

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

--- a/xen/arch/x86/include/asm/io_apic.h
+++ b/xen/arch/x86/include/asm/io_apic.h
@@ -101,7 +101,7 @@ struct IO_APIC_route_entry {
                                            */
             unsigned int dest_mode:1;     /* 0: physical, 1: logical */
             unsigned int delivery_status:1;
-            unsigned int polarity:1;      /* 0: low, 1: high */
+            unsigned int polarity:1;      /* 0: high, 1: low */
             unsigned int irr:1;
             unsigned int trigger:1;       /* 0: edge, 1: level */
             unsigned int mask:1;          /* 0: enabled, 1: disabled */


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:51:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:51:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656835.1025306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFaV4-0006G4-Bc; Tue, 19 Dec 2023 13:51:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656835.1025306; Tue, 19 Dec 2023 13: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 1rFaV4-0006Fx-85; Tue, 19 Dec 2023 13:51:10 +0000
Received: by outflank-mailman (input) for mailman id 656835;
 Tue, 19 Dec 2023 13:51:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFaV2-0006Fn-7A
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:51:08 +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 a8952cef-9e75-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 14:51:07 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c3f68b69aso43512045e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 05:51:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 n7-20020a05600c4f8700b0040d1774b4e4sm2928502wmq.42.2023.12.19.05.51.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 05:51:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8952cef-9e75-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702993867; x=1703598667; 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=TOHHMwlJZXQmOowtGx0LvnLVKv8QMMGltuDx0qqkC3A=;
        b=I7b4eyeB82+lWXrqP0tbAepTCdiiAmcRlotNh3Aexn/5V7ifwgrvP6f0LL3cRGQyvV
         +K6z2lBDhIdVV5DkrrtNsJQybsBp4365U/Er7HpJavB6iuS8Oci3tNQZ/137OuCx3OVA
         JnElXxe5h+JsbFjyU2x49z2k44xpGNPzXdYV0ua0vko4lidWaAnlyCDdVz/awqwoWbPA
         Zo0UT0KYtm++a1+tleBzEEDtSmuumk1/q/motbcpHm6G3uUdGnZC1ydhwYnZoDm2H7xH
         aDHbZk6Te1bFEpKGOBPo8MrPvFe1Q+K/FmncZ0RuGe39A+Fx9s/WDW7QS9IeegQLr/NM
         2uNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702993867; x=1703598667;
        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=TOHHMwlJZXQmOowtGx0LvnLVKv8QMMGltuDx0qqkC3A=;
        b=IhAyXo5Uyz/lsvayuyxJ/LskJibdcxwqPEV0j1VOT44Yxq1fLJgQVh88P9JgSzoX1U
         sUmvJBG3z9SJ1P2xx+ND7wcmw+jh5mWaPm822uOi07SGgx83MMvV4X+uhALyCzAKbArZ
         H2TJ77c74ZfDwHsUD/OTi2GWoqU3PvMG8Y9XQGTdSkAHXirQkdUJkVUqxXRWHkAJobji
         wO+MbZ0jrUlTnzYqXCVt2//0epLtdKQ/GD2Ablsi59vAFg2mJ5ystEoLUDZrExO29Hmo
         45LZt2F13McHcign/YfarlC9KfAT24XLlkKrJx0yElAvr1sz8Pg0ZsNRgNeZdTWvXd0s
         HqDA==
X-Gm-Message-State: AOJu0YzEnn5OZf2N6wndupg9SAS0sAql4qC8DfbEJcEW456EmnAv9tVu
	tx21c0H+BFXeclQuOzohxx+eP5SdTIObayzo58Vk
X-Google-Smtp-Source: AGHT+IGKIOKxhwi6NUGfRbRZUPV7hGiS16dNcWE/8tlA9n9bMH+buHlGUq5FWCWxIIpd1df58edY6Q==
X-Received: by 2002:a05:600c:4f81:b0:40c:3e43:418c with SMTP id n1-20020a05600c4f8100b0040c3e43418cmr10168619wmq.33.1702993866789;
        Tue, 19 Dec 2023 05:51:06 -0800 (PST)
Message-ID: <1b99cbab-0598-4277-87ca-0d1712d5471e@suse.com>
Date: Tue, 19 Dec 2023 14:51:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/IO-APIC: correct RET polarity comment
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <072a4e90-78dd-47ff-9890-ba377e0a2b66@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: <072a4e90-78dd-47ff-9890-ba377e0a2b66@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 14:49, Jan Beulich wrote:
> The comment there was the wrong way round, documentation clearly states
> that 0 is high and 1 is low.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

And of course in the title s/RET/RTE/.

Jan

> --- a/xen/arch/x86/include/asm/io_apic.h
> +++ b/xen/arch/x86/include/asm/io_apic.h
> @@ -101,7 +101,7 @@ struct IO_APIC_route_entry {
>                                             */
>              unsigned int dest_mode:1;     /* 0: physical, 1: logical */
>              unsigned int delivery_status:1;
> -            unsigned int polarity:1;      /* 0: low, 1: high */
> +            unsigned int polarity:1;      /* 0: high, 1: low */
>              unsigned int irr:1;
>              unsigned int trigger:1;       /* 0: edge, 1: level */
>              unsigned int mask:1;          /* 0: enabled, 1: disabled */



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 13:58:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 13:58:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656845.1025316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFabj-0007ub-6B; Tue, 19 Dec 2023 13:58:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656845.1025316; Tue, 19 Dec 2023 13: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 1rFabj-0007uU-3J; Tue, 19 Dec 2023 13:58:03 +0000
Received: by outflank-mailman (input) for mailman id 656845;
 Tue, 19 Dec 2023 13:58: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFabi-0007uO-BQ
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 13:58:02 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9eaeb1d5-9e76-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 14:58:00 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40d05ebe642so15860345e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 05:58:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 z5-20020a05600c0a0500b0040c2963e5f3sm2982525wmp.38.2023.12.19.05.57.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 05:57:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9eaeb1d5-9e76-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702994280; x=1703599080; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=qEsa6AhNdiOL934DM2czeICXaJmOeM/0Jtv2odSg8bs=;
        b=K54JPRUhVzvYHJtqpXuEXakBQESLUz9LGT1wdqU84dVU+v3ebDcO0knAtduza0te69
         pE6jH4iNR+pxeXwSACzFr2uYWBfuJODfXyCn4JjAUVsxFAHYQMlnFxmhl3pRAHw3zgS/
         lm8OUqHytxgxTrJcv6XoGb/7QkIhn4af577d45xbhbOFRP7KZEdrdQzgJ6lEEbAmaeEI
         7p2P0LBOHFjUzKI/MyYUGGeP0WgDsjMPvVGXLy3q5csBH4+AiYF/WktD/iNsE10ntoqO
         0SCyDOXs4lTI+r6Wk4MojTBIQtsnA+n4aG42dPWzlQElH3YIdbCRm3se/T+d+qJlNtZk
         Ynsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702994280; x=1703599080;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=qEsa6AhNdiOL934DM2czeICXaJmOeM/0Jtv2odSg8bs=;
        b=cMIVn7rNFG70W53qqJ/rjobPkabFw4DkOk9QKxhp3f3dDicnu26I52eZLUDBCmd5VE
         4S295wzHP2FctSES8d8dksluB5erZXj32bweHZfzn4rT6Ylb9cJYzjRZQ6x6cWMkpxTa
         Lgobspns5Od/rzDm/O8WzmOQhuRjekVTYSEJLgURlSjgl8YHSYhLge+8uRoKmz6cOBF9
         ooa/+4RjvrKwrksX/5d6XHQn+SpfOGfhEwXureoH9vXJ1kvrZAUGV9zmy1ZHG5UPvXRD
         9DSDjvn97Ehurr/CMc5LqUg3K+npn/lDFjMP4LEO+xYq5GQYN9zvZgPZkFgI4HDKWR+Q
         WZrA==
X-Gm-Message-State: AOJu0YwCMnRrWZNykW/s4kJg7XAsEfEcnNpIb3msNpGFBs0SqHEJZnPk
	O+nO8qkvO6lp31j5QWAfSpVH
X-Google-Smtp-Source: AGHT+IEmed++1U6FUG7wUwv0BJvGsSQrwfKmaRW43LqIW8MEMai4azyaDTEcFYT9//wpWFE9WZIZiw==
X-Received: by 2002:a05:600c:245:b0:40c:3984:4985 with SMTP id 5-20020a05600c024500b0040c39844985mr533207wmj.79.1702994279716;
        Tue, 19 Dec 2023 05:57:59 -0800 (PST)
Message-ID: <7a149ad7-0363-4f4a-9de5-76be382e774c@suse.com>
Date: Tue, 19 Dec 2023 14:57:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-US
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 14:48, Mykyta Poturai wrote:
> This patch adds the ability for the device emulator to inject MSI
> interrupts into guests. This is done by adding a new DM op to the device
> model library.
> 
> It is not possible to reuse already existing inject_msi DM op, because
> it does not have a devid parameter, which is required for translation of
> MSIs to interrupt numbers on ARM.

Yet then ...

> @@ -112,6 +113,20 @@ int dm_op(const struct dmop_args *op_args)
>          break;
>      }
>  
> +    case XEN_DMOP_arm_inject_msi:
> +    {
> +        const struct xen_dm_op_arm_inject_msi *data =
> +            &op.u.arm_inject_msi;
> +
> +        if ( d->arch.vgic.its == NULL )
> +        {
> +            rc = -EINVAL;
> +            break;
> +        }
> +        vgic_its_trigger_msi(d, d->arch.vgic.its, data->devid, data->data);
> +        break;
> +
> +    }

... you're not using the addr field at all, which therefore could likely
hold the devid data (encoded to really represent some form of address,
or stored directly - much depends on what purpose the address serves on
Arm for MSI).

> --- a/xen/include/public/hvm/dm_op.h
> +++ b/xen/include/public/hvm/dm_op.h
> @@ -444,6 +444,15 @@ struct xen_dm_op_nr_vcpus {
>  };
>  typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
>  
> +#define XEN_DMOP_arm_inject_msi 21
> +
> +struct xen_dm_op_arm_inject_msi {
> +    uint64_t addr;
> +    uint32_t data;
> +    uint32_t devid;
> +};

Additionally xen_dm_op_inject_msi has a padding field, which is likely
possible to use as well (perhaps by simply renaming it).

Also note how the addr field there is using uint64_aligned_t.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:02:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:02:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656848.1025326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFafY-0001R6-MH; Tue, 19 Dec 2023 14:02:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656848.1025326; Tue, 19 Dec 2023 14: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 1rFafY-0001Qz-J8; Tue, 19 Dec 2023 14:02:00 +0000
Received: by outflank-mailman (input) for mailman id 656848;
 Tue, 19 Dec 2023 14:01: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=rImv=H6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFafX-0001Qt-7H
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:01:59 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2beb2467-9e77-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 15:01:57 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40d22d3e751so4609565e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:01:57 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 m34-20020a05600c3b2200b004042dbb8925sm2963959wms.38.2023.12.19.06.01.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 06:01:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2beb2467-9e77-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702994517; x=1703599317; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=btud86EVWyrzJnNRRunP+B5008omd4DTx6/h/mm/v3M=;
        b=WSNsxKFHQ2nyWKiQtkII9sEiY6+J55fS7cyk1AMJHd3VAKrR2s+IKVgEjullOMAjmK
         tZjZTt3BQd6335JsWL7lljc6Tl+X5MFaHNBmYjLRVP7LoguspCxGntLAzFpxQGdgFO6a
         pWr4Fmu9hsRC7nQTMtTOaQ3EcPXgWF2y5VtDo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702994517; x=1703599317;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=btud86EVWyrzJnNRRunP+B5008omd4DTx6/h/mm/v3M=;
        b=gUIs8w/ArXy0VGTDDdcHEqEZbb43c0HwwgOkbIXRFDOsmveRYeEEsiI9L5ta34Z8e1
         szmQGtYWSXWo+OVA2YzB5fwNs66A4lCP2huAHAeLl5UtO19VDqW9WFF0nA//i+vpxJt/
         8mGACWbEit+nQ0enE0v82IKJh198pny8+gY1ljsp05OuQI27eYj3mD6Cbr6ksHDiK/M1
         r/CZ0yMabL1vYUuXIlYOh7QwjbYTMm5su0mBmLKUloVLIJQE5FFrgTu7cLRcTPA8+vCV
         XwQQfN9wPEjkRL9pWRIbJKaUuOoYCgo0AGDDoz88HEA4RIPsTHdgBcqauZyqosmg0kzm
         L62g==
X-Gm-Message-State: AOJu0YwsYXNjdKd/HZodOAJa5aeHhfQvvYkzG4I2nOIo2l3S/j2DILvG
	isoDJi1XC/YcjO6j67f7QY1QTw==
X-Google-Smtp-Source: AGHT+IHFvcL4znpsFR4xLXJvYynUTB3ExTR2m2ReVeR02lwC2Yu7zROeVI/u7bDCccrli9FOxlxWvA==
X-Received: by 2002:a05:600c:b49:b0:40d:1d1c:ffaa with SMTP id k9-20020a05600c0b4900b0040d1d1cffaamr636976wmr.169.1702994516721;
        Tue, 19 Dec 2023 06:01:56 -0800 (PST)
Message-ID: <8b683cbd-b1a9-41cd-81ff-eca79695ebb8@citrix.com>
Date: Tue, 19 Dec 2023 14:01:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/IO-APIC: correct RET polarity comment
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <072a4e90-78dd-47ff-9890-ba377e0a2b66@suse.com>
 <1b99cbab-0598-4277-87ca-0d1712d5471e@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <1b99cbab-0598-4277-87ca-0d1712d5471e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19/12/2023 1:51 pm, Jan Beulich wrote:
> On 19.12.2023 14:49, Jan Beulich wrote:
>> The comment there was the wrong way round, documentation clearly states
>> that 0 is high and 1 is low.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> And of course in the title s/RET/RTE/.

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:04:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:04:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656851.1025335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFahY-00026D-1S; Tue, 19 Dec 2023 14:04:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656851.1025335; Tue, 19 Dec 2023 14:04:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFahX-000266-V7; Tue, 19 Dec 2023 14:04:03 +0000
Received: by outflank-mailman (input) for mailman id 656851;
 Tue, 19 Dec 2023 14:04: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 1rFahW-00025y-Gs
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:04: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 1rFahW-0002JI-3v; Tue, 19 Dec 2023 14:04:02 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFahV-0008Hv-RQ; Tue, 19 Dec 2023 14:04:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=rhAICFUYxBXPZOabKzdQecwSLC2ytoX7XLuXKW6+n3Q=; b=fGy45oU6cnbKVSjxw+Mq09d5Zg
	4IDa9S0cYDytM9qWjVdKtlCzuPwE7tj1vR2rr4U1vyUO1qsiWdl4ZcRYONmKFnvKo0yed9ukq5uRQ
	vESca9tnQpWABoSp62bLbthcrj5PrqvGp3NdrtSaMNCC1gnLense7dfeaJlRD+LigMcg=;
Message-ID: <58554af1-4554-4b9c-b563-c0da8404af73@xen.org>
Date: Tue, 19 Dec 2023 14:03:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 19/12/2023 13:48, Mykyta Poturai wrote:
> This patch adds the ability for the device emulator to inject MSI
> interrupts into guests. This is done by adding a new DM op to the device
> model library.
> 
> It is not possible to reuse already existing inject_msi DM op, because
> it does not have a devid parameter, which is required for translation of
> MSIs to interrupt numbers on ARM.

 From the code below, it is not 100% clear what is the devid. It seems 
to be the device ID from the ITS PoV. However, the ID space is per ITS 
and I don't think it would be a good idea to design the DM OP interface 
with just one ITS in mind.

It is also not clear how QEMU would be able to know the device ID. So I 
think the operation should take an SBDF.

> 
> This approach was successfully tested on a virtio-pci setup with QEMU
> backend emulating block devices with following changes from the mainline
> Xen:
> 
> This branch was taken as a base for virtio-pci:
> https://github.com/xen-troops/xen/tree/xen-4.18-xt0.2
> 
> With added new VGICv3 from here:
> https://github.com/Deedone/xen/tree/new_vgic_v2
> (although it should also work with the current VGIC)
> 
> And patches from this branch to allow for proper ITS emulation in guests:
> https://github.com/stewdk/xen/commits/pcie-passthrough-arm-vpci-v11
> 
> The main purpose of this RFC is to get some feedback on the addition of
> the new DM op. Is it the right approach or should we somehow modify the
> existing inject_msi DM op to be compatible with ARM?

In general the DM op interface is stable. So modification needs to be 
done with care.

> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>   tools/include/xendevicemodel.h               |  4 ++++
>   tools/libs/devicemodel/core.c                | 19 +++++++++++++++++++
>   tools/libs/devicemodel/libxendevicemodel.map |  5 +++++
>   xen/arch/arm/dm.c                            | 15 +++++++++++++++
>   xen/arch/arm/include/asm/new_vgic.h          |  2 ++
>   xen/arch/arm/vgic/vgic-its.c                 |  2 +-
>   xen/include/public/hvm/dm_op.h               | 10 ++++++++++
>   7 files changed, 56 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/include/xendevicemodel.h b/tools/include/xendevicemodel.h
> index 797e0c6b29..e28710a6a5 100644
> --- a/tools/include/xendevicemodel.h
> +++ b/tools/include/xendevicemodel.h
> @@ -236,6 +236,10 @@ int xendevicemodel_inject_msi(
>       xendevicemodel_handle *dmod, domid_t domid, uint64_t msi_addr,
>       uint32_t msi_data);
>   
> +int xendevicemodel_arm_inject_msi(
> +    xendevicemodel_handle *dmod, domid_t domid, uint64_t msi_addr, uint32_t devid,

In your new proposal, msi_addr is not used. As Jan just suggested, can 
we use it? If not, can you explain why?

> +    uint32_t data);
> +
>   /**
>    * This function enables tracking of changes in the VRAM area.
>    *
> diff --git a/tools/libs/devicemodel/core.c b/tools/libs/devicemodel/core.c
> index 8e619eeb0a..d15ffa46fb 100644
> --- a/tools/libs/devicemodel/core.c
> +++ b/tools/libs/devicemodel/core.c
> @@ -448,6 +448,25 @@ int xendevicemodel_set_irq_level(
>       return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
>   }
>   
> +int xendevicemodel_arm_inject_msi(
> +    xendevicemodel_handle *dmod, domid_t domid, uint64_t msi_addr, uint32_t msi_data,
> +    uint32_t devid)
> +{
> +    struct xen_dm_op op;
> +    struct xen_dm_op_arm_inject_msi *data;
> +
> +    memset(&op, 0, sizeof(op));
> +
> +    op.op = XEN_DMOP_arm_inject_msi;
> +    data = &op.u.arm_inject_msi;
> +
> +    data->addr = msi_addr;
> +    data->devid = devid;
> +    data->data = msi_data;
> +
> +    return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
> +}
> +
>   int xendevicemodel_set_pci_link_route(
>       xendevicemodel_handle *dmod, domid_t domid, uint8_t link, uint8_t irq)
>   {
> diff --git a/tools/libs/devicemodel/libxendevicemodel.map b/tools/libs/devicemodel/libxendevicemodel.map
> index f7f9e3d932..8dceba5056 100644
> --- a/tools/libs/devicemodel/libxendevicemodel.map
> +++ b/tools/libs/devicemodel/libxendevicemodel.map
> @@ -44,3 +44,8 @@ VERS_1.4 {
>   		xendevicemodel_set_irq_level;
>   		xendevicemodel_nr_vcpus;
>   } VERS_1.3;
> +
> +VERS_1.5 {
> +	global:
> +		xendevicemodel_arm_inject_msi;
> +} VERS_1.4;
> diff --git a/xen/arch/arm/dm.c b/xen/arch/arm/dm.c
> index 5569efa121..b42f11e569 100644
> --- a/xen/arch/arm/dm.c
> +++ b/xen/arch/arm/dm.c
> @@ -27,6 +27,7 @@ int dm_op(const struct dmop_args *op_args)
>           [XEN_DMOP_set_ioreq_server_state]           = sizeof(struct xen_dm_op_set_ioreq_server_state),
>           [XEN_DMOP_destroy_ioreq_server]             = sizeof(struct xen_dm_op_destroy_ioreq_server),
>           [XEN_DMOP_set_irq_level]                    = sizeof(struct xen_dm_op_set_irq_level),
> +        [XEN_DMOP_arm_inject_msi]                   = sizeof(struct xen_dm_op_arm_inject_msi),
>           [XEN_DMOP_nr_vcpus]                         = sizeof(struct xen_dm_op_nr_vcpus),
>       };
>   
> @@ -112,6 +113,20 @@ int dm_op(const struct dmop_args *op_args)
>           break;
>       }
>   
> +    case XEN_DMOP_arm_inject_msi:
> +    {
> +        const struct xen_dm_op_arm_inject_msi *data =
> +            &op.u.arm_inject_msi;
> +
> +        if ( d->arch.vgic.its == NULL )
> +        {
> +            rc = -EINVAL;
> +            break;
> +        }
> +        vgic_its_trigger_msi(d, d->arch.vgic.its, data->devid, data->data);

vgic_its_trigger_msi() returns a value. So surely we want to propagate 
(possibly after translating the value).

> +        break;
> +
> +    }
>       case XEN_DMOP_nr_vcpus:
>       {
>           struct xen_dm_op_nr_vcpus *data = &op.u.nr_vcpus;
> diff --git a/xen/arch/arm/include/asm/new_vgic.h b/xen/arch/arm/include/asm/new_vgic.h
> index dfc434ab41..dedc294ce9 100644
> --- a/xen/arch/arm/include/asm/new_vgic.h
> +++ b/xen/arch/arm/include/asm/new_vgic.h
> @@ -275,6 +275,8 @@ int vgic_its_add_device(struct domain *d, struct vgic_its_device *its_dev);
>   void vgic_its_delete_device(struct domain *d, struct vgic_its_device *its_dev);
>   struct vgic_its_device* vgic_its_get_device(struct domain *d, paddr_t vdoorbell,
>                                            uint32_t vdevid);
> +int vgic_its_trigger_msi(struct domain *d, struct vgic_its *its,
> +                                u32 devid, u32 eventid);
>   #else
>   static inline void vgic_enable_lpis(struct vcpu *vcpu)
>   {
> diff --git a/xen/arch/arm/vgic/vgic-its.c b/xen/arch/arm/vgic/vgic-its.c
> index fd5aaf4a70..706987d93a 100644
> --- a/xen/arch/arm/vgic/vgic-its.c
> +++ b/xen/arch/arm/vgic/vgic-its.c
> @@ -608,7 +608,7 @@ int vgic_its_inject_cached_translation(struct domain *d, struct vgic_its *its, u
>    * Returns 0 on success, a positive error value for any ITS mapping
>    * related errors and negative error values for generic errors.
>    */
> -static int vgic_its_trigger_msi(struct domain *d, struct vgic_its *its,
> +int vgic_its_trigger_msi(struct domain *d, struct vgic_its *its,
>                                   u32 devid, u32 eventid)
>   {
>       struct vgic_irq *irq = NULL;
> diff --git a/xen/include/public/hvm/dm_op.h b/xen/include/public/hvm/dm_op.h
> index fa98551914..a7d72e4389 100644
> --- a/xen/include/public/hvm/dm_op.h
> +++ b/xen/include/public/hvm/dm_op.h
> @@ -444,6 +444,15 @@ struct xen_dm_op_nr_vcpus {
>   };
>   typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
>   
> +#define XEN_DMOP_arm_inject_msi 21
> +
> +struct xen_dm_op_arm_inject_msi {
> +    uint64_t addr;
> +    uint32_t data;
> +    uint32_t devid;
> +};
> +typedef struct xen_dm_op_arm_inject_msi xen_dm_op_arm_inject_msi_t;
> +
>   struct xen_dm_op {
>       uint32_t op;
>       uint32_t pad;
> @@ -463,6 +472,7 @@ struct xen_dm_op {
>           xen_dm_op_set_mem_type_t set_mem_type;
>           xen_dm_op_inject_event_t inject_event;
>           xen_dm_op_inject_msi_t inject_msi;
> +        xen_dm_op_arm_inject_msi_t arm_inject_msi;
>           xen_dm_op_map_mem_type_to_ioreq_server_t map_mem_type_to_ioreq_server;
>           xen_dm_op_remote_shutdown_t remote_shutdown;
>           xen_dm_op_relocate_memory_t relocate_memory;

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:06:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656856.1025345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFakJ-0002kO-El; Tue, 19 Dec 2023 14:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656856.1025345; Tue, 19 Dec 2023 14: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 1rFakJ-0002kH-CB; Tue, 19 Dec 2023 14:06:55 +0000
Received: by outflank-mailman (input) for mailman id 656856;
 Tue, 19 Dec 2023 14:06:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFakI-0002jq-1k
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:06:54 +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 dbce36eb-9e77-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 15:06:52 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c3ceded81so45797325e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:06:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 f6-20020adff446000000b0033657514fcfsm11288001wrp.88.2023.12.19.06.06.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 06:06:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbce36eb-9e77-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702994812; x=1703599612; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gK8drYoHMPNTbT5vrrr+5foWIJYg2kqBWEQ3CCTVyaE=;
        b=VJgn6F/GSa/Wih/yhpvFqUNOUPlsMCZoWwwRnIRAlAz10JclCouzcsyVGZvM2OxyA7
         cNgA22SPbqTfgsfsCe0iCpaXKHP/VlkC5wvmHHApNLYhDuWdQhYKfK8vb6NKRVQJe6f1
         kRlPTRTOuGgikAMB8HGoqGtAEVaAF/xXvIFXd7yFIVItOQTDXc8qNtHcaVyDNQWuiqra
         Sejo5ekGOHEAyN93z1Q4Dr8pZ9TEVdiW6St4t2v14GJdXhgWMhfQQxsEU1/CekoYK3po
         eDqfpIUUTLeto50H6OZczCcs560or573pK8h2bczfa10AiIVI/IOT6IScLwOp925FN56
         05HQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702994812; x=1703599612;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=gK8drYoHMPNTbT5vrrr+5foWIJYg2kqBWEQ3CCTVyaE=;
        b=MRwdFAkwNTShXMSDn2C7N0bocC1LKigs336SIIMez4BjmZJY1F/mtusmNLFAO8FC3Y
         lndrlqCW6LuHNHnUMLBAikhzHkPIn7Su/Z1Hwo+T/dS7W1NG7mdyrsK8D1zrZagCFVJj
         fDtUlqmie+S+SWpQLWwe86yPNK223Utj1Bve0BmsFL2wO/j1ITJx/qcnX5Gso7e4nYXj
         MX9v95j1Ss4O45BsoeJSBkwD0Vu/zmUEZyfujTGbqg8xzq0KwzYA53yYjLw+Va5mRHKP
         XEXyHEvmiM+uRV2FkvmiJ3Tay6v7o/yn6bjR39RXlebxt8D6HPyKpwqqP61YOfhNzNOS
         wBcQ==
X-Gm-Message-State: AOJu0YxjXjA22MwSz3ZaNd/R87LwY7/Hhn+YJPeb+zmPUpSd5+lkZSP4
	fU8VMMEo4h08vM4rh8bp8hpf
X-Google-Smtp-Source: AGHT+IGiHvZO42NOE7TqiiLT8Zdy9PoccWPQ5nfzYPjmA23n8frl0tvrps97wPdTcBYfKXzf2YcFVQ==
X-Received: by 2002:a05:600c:468d:b0:40c:31f1:1468 with SMTP id p13-20020a05600c468d00b0040c31f11468mr10329331wmo.165.1702994811656;
        Tue, 19 Dec 2023 06:06:51 -0800 (PST)
Message-ID: <aacaa220-3e95-4dff-9572-79f9e79faeae@suse.com>
Date: Tue, 19 Dec 2023 15:06:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/4] x86/PV: issue branch prediction barrier when
 switching 64-bit guest to kernel mode
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <2863b0a9-ca7c-3cce-104d-0b6685b0b383@suse.com> <ZYCARJAxH9hBD0YQ@macbook>
 <6e022af1-d383-48be-ab54-6ec254aa1502@suse.com> <ZYGC8JaJ45tkbqQC@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYGC8JaJ45tkbqQC@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.12.2023 12:48, Roger Pau MonnÃ© wrote:
> On Tue, Dec 19, 2023 at 10:56:16AM +0100, Jan Beulich wrote:
>> On 18.12.2023 18:24, Roger Pau MonnÃ© wrote:
>>> On Tue, Feb 14, 2023 at 05:12:08PM +0100, Jan Beulich wrote:
>>>> --- a/xen/arch/x86/pv/domain.c
>>>> +++ b/xen/arch/x86/pv/domain.c
>>>> @@ -455,6 +455,7 @@ static void _toggle_guest_pt(struct vcpu
>>>>  void toggle_guest_mode(struct vcpu *v)
>>>>  {
>>>>      const struct domain *d = v->domain;
>>>> +    struct cpu_info *cpu_info = get_cpu_info();
>>>>      unsigned long gs_base;
>>>>  
>>>>      ASSERT(!is_pv_32bit_vcpu(v));
>>>> @@ -467,15 +468,21 @@ void toggle_guest_mode(struct vcpu *v)
>>>>      if ( v->arch.flags & TF_kernel_mode )
>>>>          v->arch.pv.gs_base_kernel = gs_base;
>>>>      else
>>>> +    {
>>>>          v->arch.pv.gs_base_user = gs_base;
>>>> +
>>>> +        if ( opt_ibpb_mode_switch &&
>>>> +             !(d->arch.spec_ctrl_flags & SCF_entry_ibpb) &&
>>>> +             !VM_ASSIST(d, mode_switch_no_ibpb) )
>>>> +            cpu_info->spec_ctrl_flags |= SCF_new_pred_ctxt;
>>>
>>> Likewise similar to the remarks I've made before, if doing an IBPB on
>>> entry is enough to cover for the case here, it must also be fine to
>>> issue the IBPB right here, instead of deferring to return to guest
>>> context?
>>>
>>> The only concern would be (as you mentioned before) to avoid clearing
>>> valid Xen predictions, but I would rather see some figures about what
>>> effect the delaying to return to guest has vs issuing it right here.
>>
>> Part of the reason (aiui) to do things on the exit path was to
>> consolidate the context switch induced one and the user->kernel switch
>> one into the same place and mechanism.
> 
> Isn't it kind of a very specific case that we end up doing a
> user->kernel switch as part of a context switch?  IOW: would require
> the vCPU to be scheduled out at that very specific point.

No, there's no user->kernel switch at the same time as context switch.
What I was trying to explain is that with the actual IBPB being issued
on exit to guest, both the context switch path and the user->kernel
mode switch path set the same indicator, for the exit path to consume.

>>>> + *
>>>> + * By default (on affected and capable hardware) as a safety measure Xen,
>>>> + * to cover for the fact that guest-kernel and guest-user modes are both
>>>> + * running in ring 3 (and hence share prediction context), would issue a
>>>> + * barrier for user->kernel mode switches of PV guests.
>>>> + */
>>>> +#define VMASST_TYPE_mode_switch_no_ibpb  33
>>>
>>> Would it be possible to define the assist as
>>> VMASST_TYPE_mode_switch_ibpb and have it on when enabled?  So that the
>>> guest would disable it if unneeded?  IMO negated options are in
>>> general harder to understand.
>>
>> Negative options aren't nice, yes, but VM assists start out as all
>> clear.
> 
> Are you sure?  I see VMASST_TYPE_pae_extended_cr3 getting set in
> dom0_construct_pv() and that makes me wonder whether other bits
> couldn't start set also.
> 
> Maybe there's some restriction I'm missing, but I don't see any
> wording in the description of the interface that states that all
> assists are supposed to start disabled.

Well, that setting of pae_extended_cr3 is in response to the kernel's
notes section having a respective indicator. So we still only set the
bit in response to what the kernel's asking us to do, just that here
we carry out the request ahead of launching the kernel.

Also consider what would happen during migration if there was a
default-on assist: At the destination we can't know whether the
source simply didn't know of the bit, or whether the guest elected to
clear it.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:12:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:12:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656863.1025356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFapW-0004cH-9C; Tue, 19 Dec 2023 14:12:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656863.1025356; Tue, 19 Dec 2023 14:12:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFapW-0004cA-6X; Tue, 19 Dec 2023 14:12:18 +0000
Received: by outflank-mailman (input) for mailman id 656863;
 Tue, 19 Dec 2023 14:12:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFapV-0004bz-6J
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:12:17 +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 1rFapR-0002U3-G9; Tue, 19 Dec 2023 14:12:13 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFapR-0000R8-AU; Tue, 19 Dec 2023 14:12:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=5/aYn7f0tgM9L/G0Ss1EykobyOsngjASwlLsoeZwwZU=; b=K1oSAmmanfYx6eG+I+jKiYxeGo
	Kiyabfnze6CMtOxdGnzxPpnynbRMK/RnF74H143+TtG87hZc0nw8tBT3pL/6jMusGcR3g6pW6If9i
	YIrQ+E5YHS9LDp4YV4C90HXAgZ8n2BtG4wfDviZaIQNyQ6SWU/6Oj8Fc+Gvyx36oCW0c=;
Message-ID: <ea17d6e0-9980-4bcc-9d3a-60273d6386a9@xen.org>
Date: Tue, 19 Dec 2023 14:12:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
 <7a149ad7-0363-4f4a-9de5-76be382e774c@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7a149ad7-0363-4f4a-9de5-76be382e774c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 19/12/2023 13:57, Jan Beulich wrote:
> On 19.12.2023 14:48, Mykyta Poturai wrote:
>> This patch adds the ability for the device emulator to inject MSI
>> interrupts into guests. This is done by adding a new DM op to the device
>> model library.
>>
>> It is not possible to reuse already existing inject_msi DM op, because
>> it does not have a devid parameter, which is required for translation of
>> MSIs to interrupt numbers on ARM.
> 
> Yet then ...
> 
>> @@ -112,6 +113,20 @@ int dm_op(const struct dmop_args *op_args)
>>           break;
>>       }
>>   
>> +    case XEN_DMOP_arm_inject_msi:
>> +    {
>> +        const struct xen_dm_op_arm_inject_msi *data =
>> +            &op.u.arm_inject_msi;
>> +
>> +        if ( d->arch.vgic.its == NULL )
>> +        {
>> +            rc = -EINVAL;
>> +            break;
>> +        }
>> +        vgic_its_trigger_msi(d, d->arch.vgic.its, data->devid, data->data);
>> +        break;
>> +
>> +    }
> 
> ... you're not using the addr field at all, which therefore could likely
> hold the devid data (encoded to really represent some form of address,
> or stored directly - much depends on what purpose the address serves on
> Arm for MSI).

For real HW, the address would point to an ITS doorbell. All access will 
be tagged by the HW with the DeviceID. This is then used with the data 
(an event ID) to look up the associated interrupt.

I think for Xen on Arm, we want 'addr' to be the SBDF. This could then 
be used to find the associated vITS and device ID.

Ideally, this is an interface that will be agnostic to the MSI 
controller (someone need to check if the model I suggested above works 
with the GICv2m).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:14:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:14:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656865.1025365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFarr-0005Z5-Ly; Tue, 19 Dec 2023 14:14:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656865.1025365; Tue, 19 Dec 2023 14:14:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFarr-0005Yy-Iv; Tue, 19 Dec 2023 14:14:43 +0000
Received: by outflank-mailman (input) for mailman id 656865;
 Tue, 19 Dec 2023 14:14:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AzmM=H6=linaro.org=peter.maydell@srs-se1.protection.inumbo.net>)
 id 1rFarq-0005Ys-J8
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:14: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 f30a621e-9e78-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 15:14:40 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-553a45208ffso801207a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:14:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f30a621e-9e78-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1702995280; x=1703600080; 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=TZrVQU/xjd9KQVh7NuWIHyvOYXWE/j1hmbmx4pHhV9I=;
        b=tI39A8Z8vVcz/87YRc2sWjAHA5EbpCNlO7eDaBJ5QsbbZjCq90om8sm4ngPnw5KoSv
         PWcZdhY2xgQZ2nfZMztx6mX50IJzimsZRkMpkA3riujv1VBQMFgltVwdvqB9mywMMGpu
         +qFusZswmw2cWhot2FxtRp8ovqTXnq6OpoMhOT4tOUosjZAhIuSDoYv5GI1ti0dxfGn/
         S+G3SsNPowwqZikoexHFisQtTLzEiY0vCbqbuCYob753tmBeP2zi3RsCdN9PxaAkmb5P
         jEAt1y7vGoRxhdjW423ms0MZj8bvg5VnqXUDaEM1eKinI6LwQTxlKGIhgACvQCIbqHIV
         bIrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702995280; x=1703600080;
        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=TZrVQU/xjd9KQVh7NuWIHyvOYXWE/j1hmbmx4pHhV9I=;
        b=BUQRmrWS1rO0YevWSkVxCTlWNt/nZme2vNWK0L8js/CW5BLQEHaoegpcr9GHq48y1a
         eifxLH7e9b1ng6/U5PAX7x2UmkeFsGKoKxABtg4oC6fPins9s2djPF/DEqEDJ44WuPXF
         nYvQerabjzseBqGgCOw035ljrbxMpaDF7qDbCzTrBjitjf06QV9evnt9+7VXCw/zxxD9
         PSaHRb+3hPZhjeBv7K2966osA5xjvl/wA+SdvuscqWv1fT436NxxnpWnDiLvd/bJJiUu
         JtcslJ8G3+7Ya40fldOL0qTD44URnCLiB1Orr1iNrUveTPMGbPPmZeXYB+C/7Ge3SmdK
         Ybcg==
X-Gm-Message-State: AOJu0YzxerC7fQclBRoviDBoE84yzMchwl5+KoL3IdZumEi9ztbRlk5s
	lE0/HoWmJDTh85LGeCBzrkJsai9kgQFhrc6Q/uOuOw==
X-Google-Smtp-Source: AGHT+IFoIAEbqofqhy4721zESdE0+CFNnJQliL+b/I13sftgzhzrNkoJ6Q+Mhi/PaWdAQPcN0Xxyu+UY1l2GSHt5eBE=
X-Received: by 2002:a50:c082:0:b0:552:e74b:6412 with SMTP id
 k2-20020a50c082000000b00552e74b6412mr1850187edf.10.1702995280123; Tue, 19 Dec
 2023 06:14:40 -0800 (PST)
MIME-Version: 1.0
References: <20231219075320.165227-1-ray.huang@amd.com> <20231219075320.165227-2-ray.huang@amd.com>
 <6adff6d2-7c58-4c78-93a5-5a4594a60d27@daynix.com> <ZYGe4GcFPt0k5PTM@amd.com>
In-Reply-To: <ZYGe4GcFPt0k5PTM@amd.com>
From: Peter Maydell <peter.maydell@linaro.org>
Date: Tue, 19 Dec 2023 14:14:28 +0000
Message-ID: <CAFEAcA_=iedJw4BbNHrDALC4mL4g3ZEihsDbLkEzsy-1zAWFWw@mail.gmail.com>
Subject: Re: [PATCH v6 01/11] linux-headers: Update to kernel headers to add
 venus capset
To: Huang Rui <ray.huang@amd.com>
Cc: Akihiko Odaki <akihiko.odaki@daynix.com>, 
	=?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= <marcandre.lureau@gmail.com>, 
	=?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= <philmd@linaro.org>, 
	Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@citrix.com>, 
	Antonio Caggiano <quic_acaggian@quicinc.com>, "Dr . David Alan Gilbert" <dgilbert@redhat.com>, 
	Robert Beckett <bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>, 
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?B?QWxleCBCZW5uw6ll?= <alex.bennee@linaro.org>, 
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Gurchetan Singh <gurchetansingh@chromium.org>, "ernunes@redhat.com" <ernunes@redhat.com>, 
	Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	"Deucher, Alexander" <Alexander.Deucher@amd.com>, 
	"Stabellini, Stefano" <stefano.stabellini@amd.com>, "Koenig, Christian" <Christian.Koenig@amd.com>, 
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, 
	"Pelloux-Prayer, Pierre-Eric" <Pierre-eric.Pelloux-prayer@amd.com>, 
	"Huang, Honglei1" <Honglei1.Huang@amd.com>, "Zhang, Julia" <Julia.Zhang@amd.com>, 
	"Chen, Jiqian" <Jiqian.Chen@amd.com>
Content-Type: text/plain; charset="UTF-8"

On Tue, 19 Dec 2023 at 13:49, Huang Rui <ray.huang@amd.com> wrote:
>
> On Tue, Dec 19, 2023 at 08:20:22PM +0800, Akihiko Odaki wrote:
> > On 2023/12/19 16:53, Huang Rui wrote:
> > > Sync up kernel headers to update venus macro till they are merged into
> > > mainline.
> >
> > Thanks for sorting things out with the kernel and spec.
> >
> > >
> > > Signed-off-by: Huang Rui <ray.huang@amd.com>
> > > ---
> > >
> > > Changes in v6:
> > > - Venus capset is applied in kernel, so update it in qemu for future use.
> > >
> > > https://lore.kernel.org/lkml/b79dcf75-c9e8-490e-644f-3b97d95f7397@collabora.com/
> > > https://cgit.freedesktop.org/drm-misc/commit/?id=216d86b9a430f3280e5b631c51e6fd1a7774cfa0
> > Please include the link to the upstream commit in the commit message.
>
> So far, it's in drm maintainers' branch not in kernel mainline yet. Do I
> need to wait it to be merged into kernel mainline?

For an RFC patchset, no. For patches to be merged into QEMU
the headers change must be in the kernel mainline, and the
QEMU commit that updates our copy of the headers must be a
full-sync done with scripts/update-linux-headers.sh, not a
manual edit.

thanks
-- PMM


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:17:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:17:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656870.1025375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFaud-0006bU-3W; Tue, 19 Dec 2023 14:17:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656870.1025375; Tue, 19 Dec 2023 14: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 1rFaud-0006bN-0x; Tue, 19 Dec 2023 14:17:35 +0000
Received: by outflank-mailman (input) for mailman id 656870;
 Tue, 19 Dec 2023 14:17: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFaub-0006bH-O0
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:17:33 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5991a6b7-9e79-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 15:17:32 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40c48d7a7a7so43606385e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:17:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 hg24-20020a05600c539800b0040d18ffbeeasm2970538wmb.31.2023.12.19.06.17.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 06:17:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5991a6b7-9e79-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702995452; x=1703600252; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=d8sdKo8Jeddbx74WvIuEJKUkyf/fLSmUc0SMpiKulnM=;
        b=XnlqvLOy4rBMuE+5/iEOFNoExhMumlDBcc6TAcjWZ6WqJKssOlgRLcqyVofu3PrnE/
         kp9w1Ga1JplLUEA6z/f9TUjQTSI81YVbTR0RZ8o2XBRJ9SyNBn0LsqvDuQAkAdYUV6zL
         9rzLM+5tWMnPm5K1rvztHjwQutjvm381bzb5bb9Ci32PX1hveWLE0uo7ttF8RKc+e3PX
         y5QRWuPEzrVNGOFGuZFODvPXHSnvexqjNeIY0OU8hF8vDItKVzFErYe1ZV5wlYSOyTmH
         q7TLBE/YkEC0+HNRIKtybYiH5luGv38aHoaggI20hyvTfTPGaZ8LnFDIkKaveTePzf0V
         OcdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702995452; x=1703600252;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=d8sdKo8Jeddbx74WvIuEJKUkyf/fLSmUc0SMpiKulnM=;
        b=W8J8tsreVvLyc8CrKf6yqSrCsxESd5BSqJh3RNkXJJJOKmJSKcRxLOmPja9r1xMhY6
         LUc5bIkstfI4X8Eedfv7o2ipE5byQeptRjXttoF3wCdbleumasbc6ZZUiYLoWpJGmYYs
         s+UK7W1vKCmvMHcxzShnX2u/7N8YNaWys3UL5c7Oy/OMJqrP45BnCGj+JBEU1dSWf5JF
         np7B+G10By+vs9MwkR8ZywHmfSBNnBcMxkHEmqjX0KhI2LLTd7vCsJUzNm3L1/26ssPb
         QSYnVGtaZpTeHvSrMSsqvNpEVkQ6rzI6/UbJ1RXM7mS0Zz2KT1Hfgc4zdW99OTrYjysj
         H7xQ==
X-Gm-Message-State: AOJu0Yw2+NDVrIYajgGuXksy38rYTYg/eBmODpppvixoOqKBYhXoSrYG
	9qRFSls7b+8RltZxnJ7vCY3i
X-Google-Smtp-Source: AGHT+IHMx8Mj7OsY8rnRgpFBdiRvIWO3qvdY9znjy5K9bO2NAJCnlS0TzLzTN6HoeYvewUlp+WHCVQ==
X-Received: by 2002:a05:600c:3411:b0:404:4b6f:d70d with SMTP id y17-20020a05600c341100b004044b6fd70dmr10757597wmp.17.1702995452214;
        Tue, 19 Dec 2023 06:17:32 -0800 (PST)
Message-ID: <0172d743-643b-45da-b69b-7bcabc256d60@suse.com>
Date: Tue, 19 Dec 2023 15:17:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-US
To: Julien Grall <julien@xen.org>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
 <7a149ad7-0363-4f4a-9de5-76be382e774c@suse.com>
 <ea17d6e0-9980-4bcc-9d3a-60273d6386a9@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ea17d6e0-9980-4bcc-9d3a-60273d6386a9@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 15:12, Julien Grall wrote:
> On 19/12/2023 13:57, Jan Beulich wrote:
>> On 19.12.2023 14:48, Mykyta Poturai wrote:
>>> This patch adds the ability for the device emulator to inject MSI
>>> interrupts into guests. This is done by adding a new DM op to the device
>>> model library.
>>>
>>> It is not possible to reuse already existing inject_msi DM op, because
>>> it does not have a devid parameter, which is required for translation of
>>> MSIs to interrupt numbers on ARM.
>>
>> Yet then ...
>>
>>> @@ -112,6 +113,20 @@ int dm_op(const struct dmop_args *op_args)
>>>           break;
>>>       }
>>>   
>>> +    case XEN_DMOP_arm_inject_msi:
>>> +    {
>>> +        const struct xen_dm_op_arm_inject_msi *data =
>>> +            &op.u.arm_inject_msi;
>>> +
>>> +        if ( d->arch.vgic.its == NULL )
>>> +        {
>>> +            rc = -EINVAL;
>>> +            break;
>>> +        }
>>> +        vgic_its_trigger_msi(d, d->arch.vgic.its, data->devid, data->data);
>>> +        break;
>>> +
>>> +    }
>>
>> ... you're not using the addr field at all, which therefore could likely
>> hold the devid data (encoded to really represent some form of address,
>> or stored directly - much depends on what purpose the address serves on
>> Arm for MSI).
> 
> For real HW, the address would point to an ITS doorbell. All access will 
> be tagged by the HW with the DeviceID. This is then used with the data 
> (an event ID) to look up the associated interrupt.

So no properties of the destination are encoded in the address (besides
it being an ITS specific address of course)?

> I think for Xen on Arm, we want 'addr' to be the SBDF. This could then 
> be used to find the associated vITS and device ID.

FTAOD, the vSBDF you mean then?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:18:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:18:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656873.1025386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFavM-00075a-Cf; Tue, 19 Dec 2023 14:18:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656873.1025386; Tue, 19 Dec 2023 14: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 1rFavM-00075T-A0; Tue, 19 Dec 2023 14:18:20 +0000
Received: by outflank-mailman (input) for mailman id 656873;
 Tue, 19 Dec 2023 14: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=dUif=H6=epam.com=prvs=6717fc9f42=mykyta_poturai@srs-se1.protection.inumbo.net>)
 id 1rFavK-00073F-Vy
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:18:18 +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 73e94e81-9e79-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 15:18:17 +0100 (CET)
Received: from pps.filterd (m0174678.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BJCoWRs003525; Tue, 19 Dec 2023 14:18:11 GMT
Received: from eur01-he1-obe.outbound.protection.outlook.com
 (mail-he1eur01lp2050.outbound.protection.outlook.com [104.47.0.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3v37dpsgtn-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 19 Dec 2023 14:18:10 +0000 (GMT)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by VI1PR0301MB6685.eurprd03.prod.outlook.com
 (2603:10a6:800:17c::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 14:18:07 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::3776:9f2d:8305:b645]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::3776:9f2d:8305:b645%6]) with mapi id 15.20.7091.028; Tue, 19 Dec 2023
 14:18: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: 73e94e81-9e79-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eQ0VBP6xZk7qQmwl5fVwu5bWnfmqSfaCU8hql55+X/vP/QHKYtHa7jd4wZU/3FRYadmzafgvxiTSIMv0Q0Dmo4RF8ULkljUSaWuRZ5o0odTr9VMJRP8PYcCn3R6YLwts0YUYxmYOL06/4qnziPMBtsluikibwL7TmscZivCaCusAkr0pkmkVdLFgVgDnjYiyFrFWZSU7gkTur+oF1G2TWGYVNvl6+/K+vRGS7fcVo9JH8YrE0yzrErQuLMOGGFMLDrlor3AOZMXlShnzRGnCBHubERitBhHg3Tw0y15DEeFSgU3mIcXG1++FgroXLEN2pSqtoOB5YxI6Uz+ieXbftQ==
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=sTp9nMWw/NCphTutyRqbZiIZBqiytq4Yue6d9PCrxlA=;
 b=HeeNDk5vrCxayd8jqsj78gplyyLh1KF4MZHiqljeKIHnQmhpi9VxCZNnc153DmZ2k8pGbNAIwzKeLFGU2dF4hIxu1FVmDtIDnHTvgLYSbPkRXvbHyBK/l13Sfng235my2Csx1iE5zGiAzHMQELLZuKPNyf/b8S0YvPKnMYR1eRbt+aR9US7DgP2l2MoG7+dNggrTW5i6xu1wgn8tAoTOVbN1Lumqqy96vbtW+HqfNUyExxfBtSxsDtufQzoAC0rjafUY1Tm8gxa3omRLt3tddGKzifasIBIkkp95j3rjaXfNGOCTSwEMZCWkltaa5agEGNfkQaa+FhZMA/QHlqzL3w==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sTp9nMWw/NCphTutyRqbZiIZBqiytq4Yue6d9PCrxlA=;
 b=Kg+939uIH2bML7B/F2PlaQk90gyOFkpYVP/EoxpnGon2GISjHu+TcNY80wFTnjd6Zg66aDoX/ju/wWsVEJQj7tLN6OF39iEk1xldhBBISj8Eg0CR9vHzD8ZHem7J5FmlvZIn5qTAtioh4zeaHQbSoiTf2S1AbAC9GEYqOje4Ad3g4B2wb/QT+W0zEpcsEyvivMCfWtok/30FxltFDZaz1t+GBVb8msA+ExnO4wd3vZeEd9gpXqhk4m9xveu80kuoyGCccrmlH0ehMEYyKOuEBgQzzMxA2NdRDi0bvv0NKp2VE3m59YTrENlRaHUt31ghL+63fORbKCCBMhJKHy0V5A==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
        Juergen
 Gross <jgross@suse.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>,
        Bertrand
 Marquis <bertrand.marquis@arm.com>,
        Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Thread-Topic: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Thread-Index: AQHaMoIbfIb6LpTMIEGFPPk7JAqgfbCwp1oA
Date: Tue, 19 Dec 2023 14:18:07 +0000
Message-ID: <cacbff18-f37d-42dc-ab8c-79409aa1d237@epam.com>
References: 
 <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
In-Reply-To: 
 <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|VI1PR0301MB6685:EE_
x-ms-office365-filtering-correlation-id: d314fe71-b4f7-4376-f98f-08dc009d5260
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 8wORjhmeGQ8OC3YmmQmFGBnQOcFD6KNB5+IiXD4RpQ8FwmxmgDHeCmdD+f72stLier1DVRwCOqd3cdDAMQuFtQ3EaujrLS8Dtpmk77hy7Xq9FHMt9J+UerHUTR6XGlPnCWCPZm+jJMggNmuEcxvuLiGauFHiRM3iyojGrcPj+DcF2cf4g/GeHC4R2ndOBImRdif+s5bywugHhnzVHyxT0apne47bjQPQP+ynH/a1jeQqOTL94d5S6Ssgittt1ooxAom2WcCCXT+MeUt1A5GMtHsgsRMSGYqalTur4zxTSTXMJFp68g7Bif3/2lLOBkL8EcMCGNan9BtyLhiBOsLk8eKhYDqCaKAHZh5cQa06Br6wI0x6qecRRSmzswtO2gUU/s4GSu9XPvOsRqmlsclh2WEs+afBLyrHaInRpT/G6gzNBjZ4xoIPOceqHiGhkmNcWhu7rzOs3S6rOYAaek8tjOv32e7k6iJ9YUhNs6br7FL467n3rDtez/hOeb3MMVcC+G6jo52ne2blOoe1P7ksUjOFWY0QcSSJx5my9IzCo5Id010xiU8pH7ijW/TSfTKpEYWXLZYK9Zhax6Ii3O25/vdZlQ9+FYr0vuCqzOkXy5P77UPy4A4/Z5NhVy+0rhwemVhppXUs62RaX1e8vD2eiw==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(346002)(39860400002)(376002)(366004)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(2616005)(91956017)(6916009)(54906003)(86362001)(8676002)(8936002)(4326008)(316002)(31696002)(966005)(41300700001)(6486002)(66446008)(478600001)(76116006)(66946007)(66556008)(64756008)(66476007)(38070700009)(7416002)(2906002)(36756003)(5660300002)(558084003)(122000001)(71200400001)(26005)(6512007)(38100700002)(107886003)(6506007)(31686004)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?Y0FsV1dNaG5XbG5kODMvSnJqVVFhQ3lodUk5bnpGL24yek9DK0l1WER6QkVP?=
 =?utf-8?B?eUFramhtZzJqdVphbmdvQmxGMlVPM0JLd3Y2ZGZ6MEo1TDRaUzVidnBlZ1ph?=
 =?utf-8?B?UnBrTTA5WVRIbUlOK3RYcFUwZXdIeVdiZEFVYlByZ2JnWkpOWXl6WmkyR0tV?=
 =?utf-8?B?ZGlmRHhlZTFTUis0VW1sNXl0WUFrMFg4T3RWUFFLaDdFaDVFOEhaZy8xZnhu?=
 =?utf-8?B?d3ZqSkg4NE1nQmVIUWtCNElocWJ1SWFNcFVOd1pBSTRvWUZrVzE2TTMyUExu?=
 =?utf-8?B?MDlmM002N2tkWFlDcnY2NmsvdFRKQXpib0RVRkN6WWtubEJBRDVrVFlyUE9i?=
 =?utf-8?B?WnpMY0ZIaVlnaWhDZkVEL04rMWdFeVArUUFzdzZNR2ZPaFVaVUptQXFpVGsr?=
 =?utf-8?B?NktFRnU1L2wwc2FTaGZJZFhCWXNUbkF4WVBTZGVvbTlrejNOS3ZHNmNEK2VJ?=
 =?utf-8?B?Ty9aYVptSXhzNFpaQXg4YzladGdHdTdFUFJWYnNXOEM4aWhHS29EMVdCVDRD?=
 =?utf-8?B?US9jOTNmcWxSVHRwUm5ob2hwM0FsMFZwLzJ5LzZmVGFUSDRRM2FXOE9UUE8x?=
 =?utf-8?B?andReFJIL2QwcHliNnRCZUFHYytSMU5ZQzVEOHdhYlFBQURoeGxmUUQvRjFE?=
 =?utf-8?B?N0hZQWhOMDcyb0E1ZkJyb2FOVVd3UlZicUR2QmhDdU5HeTNGRkVoZG5INk1J?=
 =?utf-8?B?Zm9SRjBJQTZNbktZZTVVMDA3NHlXM1E5UDRKZVkwVDg4cHBXa2VGbSswZFpm?=
 =?utf-8?B?SDZqUzVEczRpdi8yNTVVSUVBaDZtSkYxR3FRY3lBaGFBK3JxV04vTzhjWDJN?=
 =?utf-8?B?aForRmY5K1VMYzFCYXpHRFRZUFBJMTNFUHROdERVRTVDdEI4ZlN2MkxqeTVv?=
 =?utf-8?B?ZElrZThENG9aVDJxVGNkaXZZSkJVcVBaeXlueWtYY1JkeUlnNjI5UXRSeXJn?=
 =?utf-8?B?Y09pNSt4YjJDZzRaYnVOd1QyZVF5WnpERDl2TnF2aDBWMm1sUlQ3eGJUbnNy?=
 =?utf-8?B?VFdUNzVocWFCNHhiNlZHU0ZoWWE1TDY3U2EwZmdhTm5ENFlaT1I1Z2U3RG9Z?=
 =?utf-8?B?UytSekJvUGFQVDFZSWVzc0lmV0FHZjYvTFpraE5KQ2hKSnZod1ZJQVorVGdW?=
 =?utf-8?B?YXhUdmdncnc1MDN2S3BtcndXZmxaQXloRzc4U1ZHMGkrMXVkWG1UUzFISWxK?=
 =?utf-8?B?NjFMZG1Gc1JxT1RzaExlWXZkRTQxcmVLUmFqbzZQaUtKLzJBUGZBM1BVNXZT?=
 =?utf-8?B?UWtUdmtjK1lhcUJpRHY5bkRMOE9PZWtNVUFXcTYxcllNWFF0N0s4SXhaTVFw?=
 =?utf-8?B?N2VCL2RKaFkzVi9mZFhYdTdnb3R2VnhBRGZDY080VnZyc3g0RG9qYkcwdFNT?=
 =?utf-8?B?aHpKbnJlamJwZFZqeWVVK1Z2a0JLa1ordWhPNEFGaFoyVlFRYlZSMlRiVDEv?=
 =?utf-8?B?VEQrTU1NbHRiYzhUOC84bjdkamtaMm4yMkFrZEQrSWFqVEVpd0VIdVk4eDNB?=
 =?utf-8?B?bXZHUVhZZkF2UnJIM1IzQWdZMjcvMG5qRGpUd3VOUlhGaTJ4VXRITWZYUmsx?=
 =?utf-8?B?L0tXMUQ4MWxLazE2YTdhbjdlZklpdTdpYTgzbmFhZ1pDdFN0emE0RVZUVE05?=
 =?utf-8?B?UEkxVmJUMFNlbFFDRmovQU5kZ0xCa1NCVUNxVERMQzZVNmgxUTd2NnlydW1w?=
 =?utf-8?B?QW9ZejVtRjE3MkNuQ3htMlpmb2Q2UWluQzBIbDRhaFVFbEJlRDhwakl3Ym1q?=
 =?utf-8?B?WmRlTlZXeHJEVEE4bEJaRzJZNEFBU2pYbm5pVE8vM0JrV0ZLTWFUcDhSYlUx?=
 =?utf-8?B?dEJ3Y0syckFaU3FkSll3WnZiRGpJbDFaVnJZdi80MTFDVGRTZ05CZGswOE9D?=
 =?utf-8?B?cEpBRGFxMXYvNWlmcXRyNjJJWnFoNTlDNVJSQ3BMMGhkTVJhZEJGdnQ1ZDkr?=
 =?utf-8?B?N2xLVEJUWXUwMkhTRFpXTUVoTkpBajhqbklsUlNUWUhUbE50d3c5MUZvbHc5?=
 =?utf-8?B?YXdIbUJYdnFhRXJBMk1pbTdlMjUxaHYzbEFoc3d5Qkh0amlqVmFkSkdLK1d6?=
 =?utf-8?B?VGhPbjhKUG8vSnJYeEY4SnVZWElIVTd0eWJNYm9VT2JNeTFUcDZBU1JMcDRs?=
 =?utf-8?B?VWY1L2dHelB3YWQ3ZHhYaTU5SGNPQVZxQXJEQlhGVG5mM1NvdjlBY3JkZThk?=
 =?utf-8?B?b1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <26C0D66F738B134A9227DCD00B619566@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d314fe71-b4f7-4376-f98f-08dc009d5260
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2023 14:18:07.1127
 (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: n48eCpvvprqqZqYp04V7YRjmAEHSvJpP9QcN7hgOGaMLRXqA2MCTBoX4jTbXSKSdh4f48BlRlBpV0+iqroOlbg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0301MB6685
X-Proofpoint-GUID: qiHPhBZpnfVaZjZ__disvIudHMvcOSgi
X-Proofpoint-ORIG-GUID: qiHPhBZpnfVaZjZ__disvIudHMvcOSgi
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=416 mlxscore=0
 phishscore=0 malwarescore=0 suspectscore=0 priorityscore=1501
 lowpriorityscore=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2311290000 definitions=main-2312190106

Rm9sbG93aW5nIHVwIHdpdGggcmVsZXZhbnQgUUVNVSBwYXRjaCBsaW5rLg0KDQpodHRwczovL3Bh
dGNod29yay5rZXJuZWwub3JnL3Byb2plY3QvcWVtdS1kZXZlbC9wYXRjaC9jN2ExODBhNTg3NGYw
MzZjMjQ2ZmMzOWY5MjFlZWZhZmVjYmM4Yzc2LjE3MDI5OTQ2NDkuZ2l0Lm15a3l0YV9wb3R1cmFp
QGVwYW0uY29tLw0K


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:19:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:19:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656876.1025396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFawR-0007u0-NR; Tue, 19 Dec 2023 14:19:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656876.1025396; Tue, 19 Dec 2023 14:19: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 1rFawR-0007tt-Jx; Tue, 19 Dec 2023 14:19:27 +0000
Received: by outflank-mailman (input) for mailman id 656876;
 Tue, 19 Dec 2023 14:19:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rImv=H6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFawQ-0007tj-CS
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:19:26 +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 9c239a07-9e79-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 15:19:24 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-33671384e50so903056f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:19:24 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 d15-20020adff2cf000000b0033664b4df9esm7023837wrp.60.2023.12.19.06.19.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 06:19:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c239a07-9e79-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702995564; x=1703600364; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=mxBUal30WtF0Ldz19W/hCK/kduurzXU1DUdTbtulPYo=;
        b=ORJAFdv1OP1gXRoLJLrIaQKoOI8f9EX16DJOA3QbU7QlYAtd5h/yXYJcKHaMIDGodU
         0KfKyRrKYLXE2/yXn5TBSkiKCxKRijMKWgPtI9Pst3aZpgwMmSTPCnQJAQGAVrsV4mpH
         /v6anYr+QplYIkuNahscp81ncaxle+8pCBYRY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702995564; x=1703600364;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=mxBUal30WtF0Ldz19W/hCK/kduurzXU1DUdTbtulPYo=;
        b=aIYI0J57iwN1QR5rWKII/bShZrHRolZ1T0dptCfwD1ZC9LGIGoEteyJqDAFhKFVoJw
         aBwMtz0IL5mLoHzASNPP6CA/+AGoM+RHHYsHWylvCcmde5tOndoFeUfMt1dEVTJMauHM
         DBnQGTsWIdD6UMZX0uHp4n78g7FFJII7dWNLwTQFg+FuMLcpmHWmmq/vDiUetn6iin/x
         ByBxpkB+y0s2O2jufSiFweNYPuNzDL3SfCEDgZMh88w+v1urNMAhifWowWxyQfAXh9jO
         1lx/FyQumshyjWPlVecyBaq+SdxCLOwwsvhWCZHW/3Pj5lsEOktUD83LLV5ebWe5cdQR
         Vdqg==
X-Gm-Message-State: AOJu0YzfRFy7uwe8r2CmW2po/lxWPNOekm4mEl4WOP5oAO/sfhngEbZw
	jBVACc5yxDUEd7tt6wEbiUizTQ==
X-Google-Smtp-Source: AGHT+IE08Uxnep65nwSSA277wj5PFDaLELR/UDFoI4oG+oXj39zNyCG9TZzy7HzfKpAX2cql/lhMHA==
X-Received: by 2002:adf:e642:0:b0:336:5c5d:2a97 with SMTP id b2-20020adfe642000000b003365c5d2a97mr3307752wrn.74.1702995563935;
        Tue, 19 Dec 2023 06:19:23 -0800 (PST)
Message-ID: <6dbce90b-69c8-4899-9b69-da3b50c17b40@citrix.com>
Date: Tue, 19 Dec 2023 14:19:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <george.dunlap@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19/12/2023 1:48 pm, Mykyta Poturai wrote:
> This patch adds the ability for the device emulator to inject MSI
> interrupts into guests. This is done by adding a new DM op to the device
> model library.
>
> It is not possible to reuse already existing inject_msi DM op, because
> it does not have a devid parameter, which is required for translation of
> MSIs to interrupt numbers on ARM.

Ok, so the original hypercall is broken.

But the new hypercall isn't ARM specific. It's just better form of
inject_msi, and needed for all architectures.

So, name it DMOP_inject_msi2 and get rid of the ARM infix.

> This approach was successfully tested on a virtio-pci setup with QEMU
> backend emulating block devices with following changes from the mainline
> Xen:
>
> This branch was taken as a base for virtio-pci:
> https://github.com/xen-troops/xen/tree/xen-4.18-xt0.2
>
> With added new VGICv3 from here:
> https://github.com/Deedone/xen/tree/new_vgic_v2
> (although it should also work with the current VGIC)
>
> And patches from this branch to allow for proper ITS emulation in guests:
> https://github.com/stewdk/xen/commits/pcie-passthrough-arm-vpci-v11
>
> The main purpose of this RFC is to get some feedback on the addition of
> the new DM op. Is it the right approach or should we somehow modify the
> existing inject_msi DM op to be compatible with ARM?

The DM_OP ABI does allow you to extend the structure behind
DMOP_inject_msi, as long as 0 is meaningful.

However, the semantics of zero-extending are wrong in this case, because
it would mean that users of DMOP_inject_msi on an updated Xen would be
sending interrupts with an implicit source id of host bridge.

So you need a new DMOP_inject_msi2 that has better semantics.

> diff --git a/xen/include/public/hvm/dm_op.h b/xen/include/public/hvm/dm_op.h
> index fa98551914..a7d72e4389 100644
> --- a/xen/include/public/hvm/dm_op.h
> +++ b/xen/include/public/hvm/dm_op.h
> @@ -444,6 +444,15 @@ struct xen_dm_op_nr_vcpus {
>  };
>  typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
>  
> +#define XEN_DMOP_arm_inject_msi 21
> +
> +struct xen_dm_op_arm_inject_msi {
> +    uint64_t addr;
> +    uint32_t data;
> +    uint32_t devid;

uint32_t source_id; /* PCI SBDF */

Technically the PCI spec calls it the Requester ID, but Source ID is the
more common name.

It is important not to use "devid" because that implies it's only a 3
bit number, and it isn't.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:23:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:23:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656882.1025406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFazw-00026m-Be; Tue, 19 Dec 2023 14:23:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656882.1025406; Tue, 19 Dec 2023 14:23: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 1rFazw-00026f-83; Tue, 19 Dec 2023 14:23:04 +0000
Received: by outflank-mailman (input) for mailman id 656882;
 Tue, 19 Dec 2023 14:23: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 1rFazu-00026V-T9
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:23: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 1rFazr-0002hy-Jc; Tue, 19 Dec 2023 14:22:59 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFazr-0000m5-Ad; Tue, 19 Dec 2023 14:22: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=sHN8ZiZkx11J09TakPmudvbEhcaLVmTxbz2FZbYdrYE=; b=yaQZhXvpltbmtG6w6i1TO6QtGX
	MiO6iAPQO1RU9IvLoPHHjxMBG5xoyv+ilkabJkkXax6rEb7mXJvmEQyAGzSG/pgjvWeF4shsTR2OC
	hRsidOwMmH4g3l7WfgXMfEq9Uxulgxcn/CUUJ7VwP22pGKSPqR+2fror27WeW5pFKEr4=;
Message-ID: <47813f62-166f-41a4-9ed1-4a0ecd1fbe46@xen.org>
Date: Tue, 19 Dec 2023 14:22:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
 <7a149ad7-0363-4f4a-9de5-76be382e774c@suse.com>
 <ea17d6e0-9980-4bcc-9d3a-60273d6386a9@xen.org>
 <0172d743-643b-45da-b69b-7bcabc256d60@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0172d743-643b-45da-b69b-7bcabc256d60@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 19/12/2023 14:17, Jan Beulich wrote:
> On 19.12.2023 15:12, Julien Grall wrote:
>> On 19/12/2023 13:57, Jan Beulich wrote:
>>> On 19.12.2023 14:48, Mykyta Poturai wrote:
>>>> This patch adds the ability for the device emulator to inject MSI
>>>> interrupts into guests. This is done by adding a new DM op to the device
>>>> model library.
>>>>
>>>> It is not possible to reuse already existing inject_msi DM op, because
>>>> it does not have a devid parameter, which is required for translation of
>>>> MSIs to interrupt numbers on ARM.
>>>
>>> Yet then ...
>>>
>>>> @@ -112,6 +113,20 @@ int dm_op(const struct dmop_args *op_args)
>>>>            break;
>>>>        }
>>>>    
>>>> +    case XEN_DMOP_arm_inject_msi:
>>>> +    {
>>>> +        const struct xen_dm_op_arm_inject_msi *data =
>>>> +            &op.u.arm_inject_msi;
>>>> +
>>>> +        if ( d->arch.vgic.its == NULL )
>>>> +        {
>>>> +            rc = -EINVAL;
>>>> +            break;
>>>> +        }
>>>> +        vgic_its_trigger_msi(d, d->arch.vgic.its, data->devid, data->data);
>>>> +        break;
>>>> +
>>>> +    }
>>>
>>> ... you're not using the addr field at all, which therefore could likely
>>> hold the devid data (encoded to really represent some form of address,
>>> or stored directly - much depends on what purpose the address serves on
>>> Arm for MSI).
>>
>> For real HW, the address would point to an ITS doorbell. All access will
>> be tagged by the HW with the DeviceID. This is then used with the data
>> (an event ID) to look up the associated interrupt.
> 
> So no properties of the destination are encoded in the address (besides
> it being an ITS specific address of course)?

 From my understanding, for the ITS yes. This could be different for 
other MSI controller.

> 
>> I think for Xen on Arm, we want 'addr' to be the SBDF. This could then
>> be used to find the associated vITS and device ID.
> 
> FTAOD, the vSBDF you mean then?

Indeed.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:24:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:24:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656885.1025415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFb1Z-00038n-MB; Tue, 19 Dec 2023 14:24:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656885.1025415; Tue, 19 Dec 2023 14: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 1rFb1Z-00038g-JL; Tue, 19 Dec 2023 14:24:45 +0000
Received: by outflank-mailman (input) for mailman id 656885;
 Tue, 19 Dec 2023 14: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=l5PP=H6=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rFb1Y-00038Y-Aj
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:24:44 +0000
Received: from m202-219.mailgun.net (m202-219.mailgun.net [161.38.202.219])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 59514e2a-9e7a-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 15:24:43 +0100 (CET)
Received: from mg.gitlab.com (29.226.74.34.bc.googleusercontent.com
 [34.74.226.29]) by
 4eb74098151d with SMTP id 6581a7a878bd86f02cf43895 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 19 Dec 2023 14:24:40 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 59514e2a-9e7a-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1702995880; x=1703003080; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=j1t9/DsggIpT1VqQcX64W8cFPcAoSKkTN7DZNuW0ahA=;
 b=fKaAjSkU9DZ4PGaf/ZjTZDav/Jjknvsanuq4mM0EXiTwWWfBV65A43iAlE4tT+swarhCxjwoR+zqyuXTdEmXc9+DhL0rosz4ebntCUJZI2tjSk88oDs2+llpYZXyRVf8Kpt2aJj5UnJjGs8OnIirUWeE0To4Fdt2GzSh7ciT8Eo=
X-Mailgun-Sending-Ip: 161.38.202.219
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 19 Dec 2023 14:24:40 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6581a7a81821_2c95934670f0@gitlab-sidekiq-catchall-v2-5ff67bb79c-spvlg.mail>
Subject: xen | Successful pipeline for staging | 05b6368b
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6581a7a7e8fe7_2c9593466910";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1112742505
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6581a7a7e8fe7_2c9593466910
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1112742505 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 05b6368b ( https://gitlab.com/xen-project/xen/-/commit/05b6368ba01e07aa3b2b1f1856d77332971a7bdf )
Commit Message: x86: don't open-code max_page calculation nor p...
Commit Author: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1112742505 ( https://gitlab.com/xen-project/xen/-/pipelines/1112742505 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 05b6368b</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1112742505 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/05b6368ba01e07aa3b=
2b1f1856d77332971a7bdf" style=3D"color: #3777b0; text-decoration: none;">=
05b6368b</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
x86: don't open-code max_page calculation nor p...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111274=
2505" style=3D"color: #3777b0; text-decoration: none;">#1112742505</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6581a7a7e8fe7_2c9593466910--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:25:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:25:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656902.1025426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFb21-0003kA-Up; Tue, 19 Dec 2023 14:25:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656902.1025426; Tue, 19 Dec 2023 14:25: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 1rFb21-0003k3-Rl; Tue, 19 Dec 2023 14:25:13 +0000
Received: by outflank-mailman (input) for mailman id 656902;
 Tue, 19 Dec 2023 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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFb20-00038Y-LG
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:25:12 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b435830-9e7a-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 15:25:12 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c41b43e1eso58381135e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:25:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 k36-20020a05600c1ca400b0040b38292253sm3091637wms.30.2023.12.19.06.25.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 06:25:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b435830-9e7a-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702995911; x=1703600711; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GGwCbA26uMMGJ8VzvVQ8U/cXzAyZkv/6Wdme4zHnVgs=;
        b=DNNAvWVqeSV9/qIFVK5fgjx4+VG1CAxSQumO1LtbJjeasNV8bK2xHsGvrxziI3urbI
         eZJ0TOUg8vMIM9vEr+zqYWus355OLd3I/uArhNr8KxURRwD0RmttgJyuLLpUxC1heKaJ
         GnP9N3BMwuOPl4NsbMnmgigH9UGVxsGuVxI8lepSGa9SZ+4ETwKkj+ZIk1Fbpha+/SeU
         KZ+Ief8PueAePchYvF6LLWjPJGEmp8KCIJnRlHzwN9Fk3IpVKWNVKGqctx1EapKFz0AP
         rRcfwwHIjYVu0J5BVraceCI65Ndr5IpKvs3t34NBCLdfplNer3M8oao0gggqPMFsGRU+
         0Upg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702995911; x=1703600711;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=GGwCbA26uMMGJ8VzvVQ8U/cXzAyZkv/6Wdme4zHnVgs=;
        b=Pw4f5SAHw/Y/WrP2GejeCv9snTOqU5FG7G9avksXlLeXLYsuphzSW9jHDsFesv7nwR
         eCBr8XVhlKa51NYgNCF4uWHgtPj0CZeJdUpwd6S0qugo4PX1njB3hhJrE+o0tnCstPI9
         S+b9FIBf+TJAhUN58MZ9QNipDVFG9e0EWca8GnGb76TfhT1NtFWRqRKRgQRThHxcK138
         pYINhzx+hcmKdJMPGj+3ZoUBA9wMj9UX5sDys9h6HqUAgQYS95V+F3BhNeDS07E6lvWv
         9ZbFWZ6N+1IPAI12YpcnP5DJ7006Ytzfz0AD8yY7HlNzs6lg9U1UVe8c92AU196GQ/Wq
         pjmw==
X-Gm-Message-State: AOJu0Yymz3ifwva55BeE0C5IEFnnF7v7X5J3+YDLTJVKCHfroHbbBY9U
	kjNM1GkkaiCNxcuhlLq8e+es
X-Google-Smtp-Source: AGHT+IFW2t9A7arW7vKcZN+RrppPjvh0sXiQEFE3EfH/nPyUfG9WyiOlpXVPJKAXM1ySx0td94xmHQ==
X-Received: by 2002:a05:600c:4da5:b0:40c:7a7:d00e with SMTP id v37-20020a05600c4da500b0040c07a7d00emr9616618wmp.49.1702995911392;
        Tue, 19 Dec 2023 06:25:11 -0800 (PST)
Message-ID: <c45d2f87-0670-4975-84e0-a3b462b8e4a7@suse.com>
Date: Tue, 19 Dec 2023 15:25:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
 <6dbce90b-69c8-4899-9b69-da3b50c17b40@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6dbce90b-69c8-4899-9b69-da3b50c17b40@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 15:19, Andrew Cooper wrote:
> On 19/12/2023 1:48 pm, Mykyta Poturai wrote:
>> This patch adds the ability for the device emulator to inject MSI
>> interrupts into guests. This is done by adding a new DM op to the device
>> model library.
>>
>> It is not possible to reuse already existing inject_msi DM op, because
>> it does not have a devid parameter, which is required for translation of
>> MSIs to interrupt numbers on ARM.
> 
> Ok, so the original hypercall is broken.
> 
> But the new hypercall isn't ARM specific. It's just better form of
> inject_msi, and needed for all architectures.
> 
> So, name it DMOP_inject_msi2 and get rid of the ARM infix.
> 
>> This approach was successfully tested on a virtio-pci setup with QEMU
>> backend emulating block devices with following changes from the mainline
>> Xen:
>>
>> This branch was taken as a base for virtio-pci:
>> https://github.com/xen-troops/xen/tree/xen-4.18-xt0.2
>>
>> With added new VGICv3 from here:
>> https://github.com/Deedone/xen/tree/new_vgic_v2
>> (although it should also work with the current VGIC)
>>
>> And patches from this branch to allow for proper ITS emulation in guests:
>> https://github.com/stewdk/xen/commits/pcie-passthrough-arm-vpci-v11
>>
>> The main purpose of this RFC is to get some feedback on the addition of
>> the new DM op. Is it the right approach or should we somehow modify the
>> existing inject_msi DM op to be compatible with ARM?
> 
> The DM_OP ABI does allow you to extend the structure behind
> DMOP_inject_msi, as long as 0 is meaningful.
> 
> However, the semantics of zero-extending are wrong in this case, because
> it would mean that users of DMOP_inject_msi on an updated Xen would be
> sending interrupts with an implicit source id of host bridge.
> 
> So you need a new DMOP_inject_msi2 that has better semantics.

As said in another reply, the existing structure has a 32-bit padding
field, which could be used here. In the handler it's properly being
checked to be zero right now; whether that would want to remain this
way, or whether we'd expect source ID to also be passed on x86 I don't
know (yet).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:32:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:32:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656929.1025435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFb8u-0007hf-KE; Tue, 19 Dec 2023 14:32:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656929.1025435; Tue, 19 Dec 2023 14:32:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFb8u-0007hY-Hb; Tue, 19 Dec 2023 14:32:20 +0000
Received: by outflank-mailman (input) for mailman id 656929;
 Tue, 19 Dec 2023 14:32:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFb8s-0007hC-LO
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:32:18 +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 1rFb8s-0002sr-2k; Tue, 19 Dec 2023 14:32:18 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFb8r-0000wP-TL; Tue, 19 Dec 2023 14:32:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=U+MRPhwtPdJ13wp9CITdkqfdE115Nz/U/22r1f2xmHk=; b=dgSuixFKwPM6+TmIR0St/zfzqw
	7AkJPbTEG6Q5eEizrrVKe7hv/ds3+8cPn0Eys1/cnq9WrCDr/oPzhs3An16aheukXAEdIlMMoNtJW
	cWuwSQc4TWqiESbw1RD8CPMdG80NLB90nUdF0dfrqZblW+0boyYoLhGpQEhBvkf6bj2M=;
Message-ID: <13b218b5-2d37-48de-9baa-cf2b99211bde@xen.org>
Date: Tue, 19 Dec 2023 14:32:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
 <cacbff18-f37d-42dc-ab8c-79409aa1d237@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <cacbff18-f37d-42dc-ab8c-79409aa1d237@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 19/12/2023 14:18, Mykyta Poturai wrote:
> Following up with relevant QEMU patch link.
> 
> https://patchwork.kernel.org/project/qemu-devel/patch/c7a180a5874f036c246fc39f921eefafecbc8c76.1702994649.git.mykyta_poturai@epam.com/

I don't seem to have the patch in my inbox. I guess you didn't CC xen-devel?

Anyway, I will reply here. I think this is a mistake for QEMU to assume 
that Xen will expose a GICv3 ITS to the guest (we may decide to 
implement another MSI controller).

But QEMU should really not need to implement a full ITS. What it needs 
is a way to forward the MSI to Xen. That's it.

Stefano, do you have any suggestion how to do this in QEMU?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:33:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:33:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656935.1025445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFb9d-0008LB-1T; Tue, 19 Dec 2023 14:33:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656935.1025445; Tue, 19 Dec 2023 14: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 1rFb9c-0008L4-UQ; Tue, 19 Dec 2023 14:33:04 +0000
Received: by outflank-mailman (input) for mailman id 656935;
 Tue, 19 Dec 2023 14:33:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rImv=H6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFb9c-0008FG-9y
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:33:04 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8488d992-9e7b-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 15:33:03 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c6a71e88cso58276915e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:33:03 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 m5-20020a05600c4f4500b0040c57e4ea28sm3159894wmq.17.2023.12.19.06.33.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 06:33:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8488d992-9e7b-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702996383; x=1703601183; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=7wyqcXbaJebRgtmhIg2N+UyZFqChSG4v2RS+bAgX2Qg=;
        b=l58BRkz2ou7PnbSwwUrxegnPkMr5c0We6Cr00yIiQnjLkxeU7nGxXdAsgeG9bm1/XX
         CKrNVgGEbRyUdQdNR+JtCUZc/M5RGNQEE6wkJkh9jMwbTS3NwPiK5+CLJJjeJEFIyZl6
         z6jMmTF5vPhLLt35vYjHwLHIfsTdSLqmXsSFs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702996383; x=1703601183;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=7wyqcXbaJebRgtmhIg2N+UyZFqChSG4v2RS+bAgX2Qg=;
        b=J+tNotulVxiWsmg1LBUPlwJVRFgUISWEK4OaVywBCOGji/ooFguQJVMF5iEkU22yyx
         CJGGlOviBRHE7/VVYVhQ1Qb6Rwmjn3E6pspvun5k4l/9+3Q86ZrGQO9PsgZs7MwvrDZr
         8cRNaE+9Zmyt5u1nWuFlFnSeXK0qqtux4F6QoF3JFnHh1mBmg6KXN07H6tsy60Xob/N7
         Hrza6b/6RLM39D+YaIRsjttZsEztHNFtQXxIcS6Nbi9fLMOaWRR0yFP2oy9Y5iIF0QNl
         prUAWPIjXtJqVX1dfvoBCkKAkxnDnoqYG4UVcA94ScOSRL/CmUl5TqGe4uMJcBjskd2/
         iJNg==
X-Gm-Message-State: AOJu0YxoiJKG9KxZw5uxAYkfMvPCnAW+/O9/besCkcO6RY9I1IylLkck
	Jt8YpjzLF/rSt3wk1xhYT67ePw==
X-Google-Smtp-Source: AGHT+IEjoxBbaaj28/8BmwCu1CEthCiM3cw716YfGipvt0XSedVh7UzkjsWbvCa62HtqJfvvqm1Jmg==
X-Received: by 2002:a05:600c:4f4d:b0:40b:5e21:dd34 with SMTP id m13-20020a05600c4f4d00b0040b5e21dd34mr10891702wmq.98.1702996383175;
        Tue, 19 Dec 2023 06:33:03 -0800 (PST)
Message-ID: <5beee36e-781e-4a95-8401-8af7657b8dce@citrix.com>
Date: Tue, 19 Dec 2023 14:33:02 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
 <6dbce90b-69c8-4899-9b69-da3b50c17b40@citrix.com>
 <c45d2f87-0670-4975-84e0-a3b462b8e4a7@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <c45d2f87-0670-4975-84e0-a3b462b8e4a7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19/12/2023 2:25 pm, Jan Beulich wrote:
> On 19.12.2023 15:19, Andrew Cooper wrote:
>> On 19/12/2023 1:48 pm, Mykyta Poturai wrote:
>>> This patch adds the ability for the device emulator to inject MSI
>>> interrupts into guests. This is done by adding a new DM op to the device
>>> model library.
>>>
>>> It is not possible to reuse already existing inject_msi DM op, because
>>> it does not have a devid parameter, which is required for translation of
>>> MSIs to interrupt numbers on ARM.
>> Ok, so the original hypercall is broken.
>>
>> But the new hypercall isn't ARM specific. It's just better form of
>> inject_msi, and needed for all architectures.
>>
>> So, name it DMOP_inject_msi2 and get rid of the ARM infix.
>>
>>> This approach was successfully tested on a virtio-pci setup with QEMU
>>> backend emulating block devices with following changes from the mainline
>>> Xen:
>>>
>>> This branch was taken as a base for virtio-pci:
>>> https://github.com/xen-troops/xen/tree/xen-4.18-xt0.2
>>>
>>> With added new VGICv3 from here:
>>> https://github.com/Deedone/xen/tree/new_vgic_v2
>>> (although it should also work with the current VGIC)
>>>
>>> And patches from this branch to allow for proper ITS emulation in guests:
>>> https://github.com/stewdk/xen/commits/pcie-passthrough-arm-vpci-v11
>>>
>>> The main purpose of this RFC is to get some feedback on the addition of
>>> the new DM op. Is it the right approach or should we somehow modify the
>>> existing inject_msi DM op to be compatible with ARM?
>> The DM_OP ABI does allow you to extend the structure behind
>> DMOP_inject_msi, as long as 0 is meaningful.
>>
>> However, the semantics of zero-extending are wrong in this case, because
>> it would mean that users of DMOP_inject_msi on an updated Xen would be
>> sending interrupts with an implicit source id of host bridge.
>>
>> So you need a new DMOP_inject_msi2 that has better semantics.
> As said in another reply, the existing structure has a 32-bit padding
> field, which could be used here. In the handler it's properly being
> checked to be zero right now;

It's still not safe to reuse this zero for a source ID semantic behind
the back of older userspace.

>  whether that would want to remain this
> way, or whether we'd expect source ID to also be passed on x86 I don't
> know (yet).

We do need the source ID in x86, as soon as the guest has vIOMMU for any
reason.

It's a design error that it wasn't added originally, but I suppose you
can say the same of x86 platforms in general, having to retrofit an
OS-visible Source ID to HPETs/IO-APICs to make them compatible with IOMMUs.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:36:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:36:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656939.1025457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbD0-0000sH-IR; Tue, 19 Dec 2023 14:36:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656939.1025457; Tue, 19 Dec 2023 14: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 1rFbD0-0000sA-EN; Tue, 19 Dec 2023 14:36:34 +0000
Received: by outflank-mailman (input) for mailman id 656939;
 Tue, 19 Dec 2023 14: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=rom3=H6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFbCz-0000s4-4P
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:36:33 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 00568f2d-9e7c-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 15:36:31 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40c69403b3eso46053605e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:36:31 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 l10-20020a05600c1d0a00b0040b2c195523sm3190224wms.31.2023.12.19.06.36.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Dec 2023 06:36:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00568f2d-9e7c-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702996591; x=1703601391; 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=anXg9CkCt6HhsjP2ZpH/+wE3wlYgtRTKnc+IhcVU5k4=;
        b=OXYGNRy5dU3y4jBW7Lgow8iPNNvaY3rXAN1hk4GVXOYsDfIQ3DCH4XTfwQfp9Y7VDw
         G0tXUxz7rUlmUAJPjifMm1aJZ3V10nDyZBcwleBDeLHF7oAfhMzdSN4bkYFTwIW8zgbZ
         HOallCpMmOwKnKmwX3bhgLiorxu9LYvIBt94U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702996591; x=1703601391;
        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=anXg9CkCt6HhsjP2ZpH/+wE3wlYgtRTKnc+IhcVU5k4=;
        b=MENtLU8a1VzooDjIBTwsUXq6LZFoAmlPDLkSPQdVJ41ig5dmvrcXcB8mjaDNYWXpsd
         OAJb3lfXhDQ03aMSoPqMZsPQngAxVn3PC0BRhOLdddlIZb/HPkbyuxD3jOtyfuwLVsk7
         OWJHarax51Azj9GdWlasyhXV+Q82Mf8MgPp0HIgLOz+VKBuJE2XNq/ZlkEZztPE3M1E4
         QfSY+izu+y3DzdlI4pZFzZGqXKWn4Qoa5L8PY1j27Hz1c4CY7vinROrEOionGACTNcVx
         LvI835/78o5vkMA2nmijtZyFFlFG/biRDhS5W4aP/qbnEVkRcAD+n25lvac5LdDHAV32
         p3nw==
X-Gm-Message-State: AOJu0YyZ6mYPCf4StZAXmDkCIYZg5rFHZtIFldWKtnFtjOZ1OO4ILqlO
	YEmOi1Q2yV96Dn6cBoQQjnNB0g==
X-Google-Smtp-Source: AGHT+IEBwrY/5wFFgMueTIfFvFUL4+skp0wIGAEY2UfiSnoasF5cjB5BIkoQ0JfbdFxDtAplTAtR/g==
X-Received: by 2002:a05:600c:3ba6:b0:40b:5e1c:5c1d with SMTP id n38-20020a05600c3ba600b0040b5e1c5c1dmr9068982wms.50.1702996590957;
        Tue, 19 Dec 2023 06:36:30 -0800 (PST)
Date: Tue, 19 Dec 2023 15:36:29 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 1/5] x86/HVM: split restore state checking from state
 loading
Message-ID: <ZYGqbboWvjVOGZkb@macbook>
References: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
 <05e69eea-79cc-4b3c-861b-855fa67c878a@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <05e69eea-79cc-4b3c-861b-855fa67c878a@suse.com>

On Mon, Dec 18, 2023 at 03:39:55PM +0100, Jan Beulich wrote:
> ..., at least as reasonably feasible without making a check hook
> mandatory (in particular strict vs relaxed/zero-extend length checking
> can't be done early this way).
> 
> Note that only one of the two uses of "real" hvm_load() is accompanied
> with a "checking" one. The other directly consumes hvm_save() output,
> which ought to be well-formed. This means that while input data related
> checks don't need repeating in the "load" function when already done by
> the "check" one (albeit assertions to this effect may be desirable),
> domain state related checks (e.g. has_xyz(d)) will be required in both
> places.
> 
> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Now that this re-arranges hvm_load() anyway, wouldn't it be better to
> down the vCPU-s ahead of calling arch_hvm_load() (which is now easy to
> arrange for)?

Seems OK to me.

> Do we really need all the copying involved in use of _hvm_read_entry()
> (backing hvm_load_entry()? Zero-extending loads are likely easier to
> handle that way, but for strict loads all we gain is a reduced risk of
> unaligned accesses (compared to simply pointing into h->data[]).

I do feel it's safer to copy the data so the checks are done against
what's loaded.  Albeit hvm_load() is already using hvm_get_entry().

> ---
> v4: Fold hvm_check() into hvm_load().
> v2: New.
> 
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -379,8 +379,12 @@ long arch_do_domctl(
>          if ( copy_from_guest(c.data, domctl->u.hvmcontext.buffer, c.size) != 0 )
>              goto sethvmcontext_out;
>  
> +        ret = hvm_load(d, false, &c);
> +        if ( ret )
> +            goto sethvmcontext_out;
> +
>          domain_pause(d);
> -        ret = hvm_load(d, &c);
> +        ret = hvm_load(d, true, &c);

Now that the check has been done ahead, do we want to somehow assert
that this cannot fail?  AIUI that's the expectation.

>          domain_unpause(d);
>  
>      sethvmcontext_out:
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -5397,7 +5397,7 @@ int hvm_copy_context_and_params(struct d
>      }
>  
>      c.cur = 0;
> -    rc = hvm_load(dst, &c);
> +    rc = hvm_load(dst, true, &c);
>  
>   out:
>      vfree(c.data);
> --- a/xen/arch/x86/hvm/save.c
> +++ b/xen/arch/x86/hvm/save.c
> @@ -30,7 +30,8 @@ static void arch_hvm_save(struct domain
>      d->arch.hvm.sync_tsc = rdtsc();
>  }
>  
> -static int arch_hvm_load(struct domain *d, const struct hvm_save_header *hdr)
> +static int arch_hvm_check(const struct domain *d,
> +                          const struct hvm_save_header *hdr)
>  {
>      uint32_t eax, ebx, ecx, edx;
>  
> @@ -55,6 +56,11 @@ static int arch_hvm_load(struct domain *
>                 "(%#"PRIx32") and restored on another (%#"PRIx32").\n",
>                 d->domain_id, hdr->cpuid, eax);
>  
> +    return 0;
> +}
> +
> +static void arch_hvm_load(struct domain *d, const struct hvm_save_header *hdr)
> +{
>      /* Restore guest's preferred TSC frequency. */
>      if ( hdr->gtsc_khz )
>          d->arch.tsc_khz = hdr->gtsc_khz;
> @@ -66,13 +72,12 @@ static int arch_hvm_load(struct domain *
>  
>      /* VGA state is not saved/restored, so we nobble the cache. */
>      d->arch.hvm.stdvga.cache = STDVGA_CACHE_DISABLED;
> -
> -    return 0;
>  }
>  
>  /* List of handlers for various HVM save and restore types */
>  static struct {
>      hvm_save_handler save;
> +    hvm_check_handler check;
>      hvm_load_handler load;
>      const char *name;
>      size_t size;
> @@ -88,6 +93,7 @@ void __init hvm_register_savevm(uint16_t
>  {
>      ASSERT(typecode <= HVM_SAVE_CODE_MAX);
>      ASSERT(hvm_sr_handlers[typecode].save == NULL);
> +    ASSERT(hvm_sr_handlers[typecode].check == NULL);
>      ASSERT(hvm_sr_handlers[typecode].load == NULL);
>      hvm_sr_handlers[typecode].save = save_state;
>      hvm_sr_handlers[typecode].load = load_state;
> @@ -275,12 +281,10 @@ int hvm_save(struct domain *d, hvm_domai
>      return 0;
>  }
>  
> -int hvm_load(struct domain *d, hvm_domain_context_t *h)
> +int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h)

Maybe the 'real' parameter should instead be an enum:

enum hvm_load_action {
    CHECK,
    LOAD,
};
int hvm_load(struct domain *d, enum hvm_load_action action,
             hvm_domain_context_t *h);

Otherwise a comment might be warranted about how 'real' affects the
logic in the function.

>  {
>      const struct hvm_save_header *hdr;
>      struct hvm_save_descriptor *desc;
> -    hvm_load_handler handler;
> -    struct vcpu *v;
>      int rc;
>  
>      if ( d->is_dying )
> @@ -291,50 +295,91 @@ int hvm_load(struct domain *d, hvm_domai
>      if ( !hdr )
>          return -ENODATA;
>  
> -    rc = arch_hvm_load(d, hdr);
> -    if ( rc )
> -        return rc;
> +    rc = arch_hvm_check(d, hdr);

Shouldn't this _check function only be called when real == false?

> +    if ( real )
> +    {
> +        struct vcpu *v;
> +
> +        ASSERT(!rc);
> +        arch_hvm_load(d, hdr);
>  
> -    /* Down all the vcpus: we only re-enable the ones that had state saved. */
> -    for_each_vcpu(d, v)
> -        if ( !test_and_set_bit(_VPF_down, &v->pause_flags) )
> -            vcpu_sleep_nosync(v);
> +        /*
> +         * Down all the vcpus: we only re-enable the ones that had state
> +         * saved.
> +         */
> +        for_each_vcpu(d, v)
> +            if ( !test_and_set_bit(_VPF_down, &v->pause_flags) )
> +                vcpu_sleep_nosync(v);
> +    }
> +    else if ( rc )
> +        return rc;
>  
>      for ( ; ; )
>      {
> +        const char *name;
> +        hvm_load_handler load;
> +
>          if ( h->size - h->cur < sizeof(struct hvm_save_descriptor) )
>          {
>              /* Run out of data */
>              printk(XENLOG_G_ERR
>                     "HVM%d restore: save did not end with a null entry\n",
>                     d->domain_id);
> +            ASSERT(!real);
>              return -ENODATA;
>          }
>  
>          /* Read the typecode of the next entry  and check for the end-marker */
>          desc = (struct hvm_save_descriptor *)(&h->data[h->cur]);
> -        if ( desc->typecode == 0 )
> +        if ( desc->typecode == HVM_SAVE_CODE(END) )
> +        {
> +            /* Reset cursor for hvm_load(, true, ). */
> +            if ( !real )
> +                h->cur = 0;
>              return 0;
> +        }
>  
>          /* Find the handler for this entry */
> -        if ( (desc->typecode > HVM_SAVE_CODE_MAX) ||
> -             ((handler = hvm_sr_handlers[desc->typecode].load) == NULL) )
> +        if ( desc->typecode >= ARRAY_SIZE(hvm_sr_handlers) ||
> +             !(name = hvm_sr_handlers[desc->typecode].name) ||
> +             !(load = hvm_sr_handlers[desc->typecode].load) )
>          {
>              printk(XENLOG_G_ERR "HVM%d restore: unknown entry typecode %u\n",
>                     d->domain_id, desc->typecode);

The message is not very accurate here, it does fail when the typecode
is unknown, but also fails when such typecode has no name or load
function setup.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:50:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:50:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656946.1025466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbQ4-0005kA-IL; Tue, 19 Dec 2023 14:50:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656946.1025466; Tue, 19 Dec 2023 14: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 1rFbQ4-0005jH-EJ; Tue, 19 Dec 2023 14:50:04 +0000
Received: by outflank-mailman (input) for mailman id 656946;
 Tue, 19 Dec 2023 14:50:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rom3=H6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFbQ3-0005W9-OK
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:50:03 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3e4d16e-9e7d-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 15:50:02 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c38de1ee4so46437645e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:50:02 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 q19-20020a05600c46d300b0040b632f31d2sm3201751wmo.5.2023.12.19.06.50.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Dec 2023 06:50:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3e4d16e-9e7d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702997402; x=1703602202; 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=hzcasnjhECI3FsdZeVfpSAapMv8A6JjNUaAhCeMOcNc=;
        b=O6K25CAGzGNS8TuPUIwiN+mOLFPzT1YyWLYayIt7PySuqqWdZjHGnEZ5dn5aV1P2Hn
         EdFr7tzF9nsHGTHcB4xR2GwXJF0CkSQIjmvaUNCpmwk68euQq/7AzRt+qyBZ2SwvcmUO
         KOooOnmPV1wY6wiHlHR51jBYqGXiAhUtNZVfs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702997402; x=1703602202;
        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=hzcasnjhECI3FsdZeVfpSAapMv8A6JjNUaAhCeMOcNc=;
        b=wTF1+FosHxrh9G+uIkdLmBjE0tDYCeeDpF/yKVcLKdUtvbR4SndJZz76c9CRW/79N1
         SXYBHH6JcyK3TF4aazuukghfKz57fgLE4XH2wKO6PswE8FX4VUMQlYYbhi1uVUXOP56W
         iBucuqKAYId23HvIQX3z2hIxknInm/vNm3C/8KNLxJ4p8wW/YdtbBN7iwphm6ZUhcJAv
         YSyEookq253PQXqODepWboHyVIc0P9TgGv+LnIWEwyXWnvvrHh6HBYf+mq7MfT6lQYMH
         pNGkpmwMv/7JDo8XjIqk33JLLMYOpy/Kd4I84NHDRKc6rXGF8yx/15rqqxd4zognaNm1
         H2GQ==
X-Gm-Message-State: AOJu0Yx2EU9tI45Sxi2V295g8/PhAHS0zRYBsbmh4WMzXKFU6p8xmhfb
	AK2CkQtzNIDK0puID8qMK5QAVw==
X-Google-Smtp-Source: AGHT+IFYJTqWAiZDufM2oaJl7xFjr5SI6+MzCn39fw7sTZ3WB10Vbp6Q5j81SthV+90BUA3PuimHPw==
X-Received: by 2002:a05:600c:319b:b0:40c:38a5:3465 with SMTP id s27-20020a05600c319b00b0040c38a53465mr9154525wmp.133.1702997402243;
        Tue, 19 Dec 2023 06:50:02 -0800 (PST)
Date: Tue, 19 Dec 2023 15:50:00 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 5/5] x86/vIRQ: split PCI link load state checking from
 actual loading
Message-ID: <ZYGtmGQPlrz8ZnKa@macbook>
References: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
 <3bd1a8b8-1ed5-4d3a-8f5a-e193fdab7e1d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3bd1a8b8-1ed5-4d3a-8f5a-e193fdab7e1d@suse.com>

On Mon, Dec 18, 2023 at 03:41:14PM +0100, Jan Beulich wrote:
> Move the checking into a check hook, and add checking of the padding
> fields as well.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

Thanks.


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 14:53:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 14:53:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656949.1025476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbTU-0007YQ-0C; Tue, 19 Dec 2023 14:53:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656949.1025476; Tue, 19 Dec 2023 14: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 1rFbTT-0007YJ-TE; Tue, 19 Dec 2023 14:53:35 +0000
Received: by outflank-mailman (input) for mailman id 656949;
 Tue, 19 Dec 2023 14:53:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFbTS-0007YD-Na
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 14:53:34 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6172d9a2-9e7e-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 15:53:33 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3365f1326e4so3337551f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 06:53:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bl2-20020adfe242000000b0033668ac65ddsm5358373wrb.25.2023.12.19.06.53.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 06:53:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6172d9a2-9e7e-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702997613; x=1703602413; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0GyI7qlSUFegVz1/Sgk7VevbZXaMk3OP8IfNCB2YCQA=;
        b=I05iiZ8bq5oVEdZwhcDkA3hYMFz1wYJGbIfmKCeIkiHkdOajwEtRCcN2u8xabEvnV2
         rKQtcMGL6wGw3BGQ/jppANPxCcS1C+3OkL2Wskt/USYVhWPZNgiCTEZv/YXVTzPzLaw0
         wCHrRzkbBU9aSpiitCwh75cg76sILsNC1EuOi933qRELeNa0PWJpzXlGwNaUzrNxaGM/
         AA6WCMoLLFkh3LXdgZnmMrhgzMGS+qBCGLHwqlpRVJEyH7xjRh0JBAtdU/wOu5kFxJ+t
         n45G+ci8L3xY1pXqhx20IVqP74WTpb7ymZ6Y+HjSGqi+pPyzHmyD8PeEtYvUNzkCIxaN
         OKiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702997613; x=1703602413;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=0GyI7qlSUFegVz1/Sgk7VevbZXaMk3OP8IfNCB2YCQA=;
        b=Xsz8NYHZNTrSM8IAiSjpNpjgLzGuuZAa6AEQBCuhEGzg5Xs1F/OJ2+Oxd7ZKiItiHx
         n5CZnF1RLxp2lDE42GQVRfLXnBw6wCA84lE6GBsCnBGZjRMSh9PXE+LWO8zMTJqfoRhV
         jI5BzjHM/bpPhkSBg0fzWBO7+BARxronPmnBA0h4zweHUJXYYmClepSy6/vDvnF++dxR
         n0RGJ7jJgfLxKd3Kbr7tUYNnrdIbOPH9R4Fd+1XHxF0k4SPNZ0+ZO+5Emu7cXWBqrOPD
         +KJcAQwP8bMqTQPOCIy/sax331s8KHqdbR9jwsYVpO8QlzbqsLIuy9TSySo6csf2HDw3
         5dQw==
X-Gm-Message-State: AOJu0YzmuMLgIPQ8d3j7dglw2S7Q1bUWeQXlc7kbgX5u0rZWu750XfTX
	8wdVgT02W5MCOrqZNEJERAka
X-Google-Smtp-Source: AGHT+IG6pC9wdygtwybVPOUQHwecI4cy6/vg1RTIxsV8KKvshIedxfmbkDhC8O+RMQOkrfFmoQOgLA==
X-Received: by 2002:adf:e610:0:b0:336:5c03:c594 with SMTP id p16-20020adfe610000000b003365c03c594mr3157882wrm.36.1702997612867;
        Tue, 19 Dec 2023 06:53:32 -0800 (PST)
Message-ID: <2e29597d-8686-459d-81fb-932941c72fa7@suse.com>
Date: Tue, 19 Dec 2023 15:53:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
 <6dbce90b-69c8-4899-9b69-da3b50c17b40@citrix.com>
 <c45d2f87-0670-4975-84e0-a3b462b8e4a7@suse.com>
 <5beee36e-781e-4a95-8401-8af7657b8dce@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5beee36e-781e-4a95-8401-8af7657b8dce@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 15:33, Andrew Cooper wrote:
> On 19/12/2023 2:25 pm, Jan Beulich wrote:
>> On 19.12.2023 15:19, Andrew Cooper wrote:
>>> On 19/12/2023 1:48 pm, Mykyta Poturai wrote:
>>>> This patch adds the ability for the device emulator to inject MSI
>>>> interrupts into guests. This is done by adding a new DM op to the device
>>>> model library.
>>>>
>>>> It is not possible to reuse already existing inject_msi DM op, because
>>>> it does not have a devid parameter, which is required for translation of
>>>> MSIs to interrupt numbers on ARM.
>>> Ok, so the original hypercall is broken.
>>>
>>> But the new hypercall isn't ARM specific. It's just better form of
>>> inject_msi, and needed for all architectures.
>>>
>>> So, name it DMOP_inject_msi2 and get rid of the ARM infix.
>>>
>>>> This approach was successfully tested on a virtio-pci setup with QEMU
>>>> backend emulating block devices with following changes from the mainline
>>>> Xen:
>>>>
>>>> This branch was taken as a base for virtio-pci:
>>>> https://github.com/xen-troops/xen/tree/xen-4.18-xt0.2
>>>>
>>>> With added new VGICv3 from here:
>>>> https://github.com/Deedone/xen/tree/new_vgic_v2
>>>> (although it should also work with the current VGIC)
>>>>
>>>> And patches from this branch to allow for proper ITS emulation in guests:
>>>> https://github.com/stewdk/xen/commits/pcie-passthrough-arm-vpci-v11
>>>>
>>>> The main purpose of this RFC is to get some feedback on the addition of
>>>> the new DM op. Is it the right approach or should we somehow modify the
>>>> existing inject_msi DM op to be compatible with ARM?
>>> The DM_OP ABI does allow you to extend the structure behind
>>> DMOP_inject_msi, as long as 0 is meaningful.
>>>
>>> However, the semantics of zero-extending are wrong in this case, because
>>> it would mean that users of DMOP_inject_msi on an updated Xen would be
>>> sending interrupts with an implicit source id of host bridge.
>>>
>>> So you need a new DMOP_inject_msi2 that has better semantics.
>> As said in another reply, the existing structure has a 32-bit padding
>> field, which could be used here. In the handler it's properly being
>> checked to be zero right now;
> 
> It's still not safe to reuse this zero for a source ID semantic behind
> the back of older userspace.

As long as we simply ignore that field's value, I don't see anything
wrong there (not very different from Arm ignoring the address, as the
intent looks to be). And ...

>>  whether that would want to remain this
>> way, or whether we'd expect source ID to also be passed on x86 I don't
>> know (yet).
> 
> We do need the source ID in x86, as soon as the guest has vIOMMU for any
> reason.

... I wonder whether I'll still be around when Xen actually gets there.

Jan

> It's a design error that it wasn't added originally, but I suppose you
> can say the same of x86 platforms in general, having to retrofit an
> OS-visible Source ID to HPETs/IO-APICs to make them compatible with IOMMUs.
> 
> ~Andrew
> 



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:03:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:03:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656958.1025491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbd6-0003FU-2g; Tue, 19 Dec 2023 15:03:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656958.1025491; Tue, 19 Dec 2023 15: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 1rFbd5-0003FN-Vm; Tue, 19 Dec 2023 15:03:31 +0000
Received: by outflank-mailman (input) for mailman id 656958;
 Tue, 19 Dec 2023 15: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=aNFb=H6=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFbd4-0003F8-Eb
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 15:03:30 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3f05767-9e7f-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 16:03:28 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id A27AB4EE0738;
 Tue, 19 Dec 2023 16:03:27 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3f05767-9e7f-11ee-9b0f-b553b5be7939
MIME-Version: 1.0
Date: Tue, 19 Dec 2023 16:03:27 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Simone Ballarin <simone.ballarin@bugseng.com>, consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 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>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 4/6] xen: add SAF deviation for safe cast removal
In-Reply-To: <7dfb364e-e144-4a92-825a-71394610b931@suse.com>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
 <dff9e788e04aa04970cfbb70d09f4d1baf725506.1702982442.git.maria.celeste.cesario@bugseng.com>
 <7dfb364e-e144-4a92-825a-71394610b931@suse.com>
Message-ID: <8251c32b9af3da9e69538285d0e1c25c@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 2023-12-19 12:28, Jan Beulich wrote:
> On 19.12.2023 12:05, Simone Ballarin wrote:
>> --- a/xen/arch/arm/guestcopy.c
>> +++ b/xen/arch/arm/guestcopy.c
>> @@ -109,6 +109,7 @@ static unsigned long copy_guest(void *buf, 
>> uint64_t addr, unsigned int len,
>> 
>>  unsigned long raw_copy_to_guest(void *to, const void *from, unsigned 
>> int len)
>>  {
>> +    /* SAF-3-safe COPY_to_guest doesn't modify from */
>>      return copy_guest((void *)from, (vaddr_t)to, len,
>>                        GVA_INFO(current), COPY_to_guest | 
>> COPY_linear);
>>  }
>> @@ -116,6 +117,7 @@ unsigned long raw_copy_to_guest(void *to, const 
>> void *from, unsigned int len)
>>  unsigned long raw_copy_to_guest_flush_dcache(void *to, const void 
>> *from,
>>                                               unsigned int len)
>>  {
>> +    /* SAF-3-safe COPY_to_guest doesn't modify from */
>>      return copy_guest((void *)from, (vaddr_t)to, len, 
>> GVA_INFO(current),
>>                        COPY_to_guest | COPY_flush_dcache | 
>> COPY_linear);
>>  }
> 
> Unlike below for x86, here in both cases the comment cover more than
> just the one function argument they are intended to cover. I think we
> want to limit the scope of such comments as much as possible (and
> hence have as little as possible on the immediately following line).
> 
> Jan

Ok, noted for v3.

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


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:11:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656965.1025500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbkY-0005Ba-Pz; Tue, 19 Dec 2023 15:11:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656965.1025500; Tue, 19 Dec 2023 15:11:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbkY-0005BT-NR; Tue, 19 Dec 2023 15:11:14 +0000
Received: by outflank-mailman (input) for mailman id 656965;
 Tue, 19 Dec 2023 15: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=rom3=H6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFbkY-0005BN-3v
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 15:11:14 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8339617-9e80-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 16:11:11 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40d2764c0f2so9758955e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 07:11:11 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 h18-20020a05600c351200b0040c43be2e52sm3246453wmq.40.2023.12.19.07.11.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Dec 2023 07:11:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8339617-9e80-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1702998671; x=1703603471; 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=M9kZ73Jj9MXExN8tID4w0xAcGXtyE2ikEwytN5Bhmxs=;
        b=S/IiSAwaHjfQm31SdndgmV2DBR8fkoBqY1Ered+HELzk5dhpXsuJYWdCDvUi2pkJMC
         zmp2SqC2F3fQl3sOkrxJVRvwCUvrAnqDZlO8NsCyDN+rehhX8m+qNXnEzc3NZ2bNiVLN
         tx5nCJCntwgOs7dRrUsibTCOYPZl9Pp905oS8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702998671; x=1703603471;
        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=M9kZ73Jj9MXExN8tID4w0xAcGXtyE2ikEwytN5Bhmxs=;
        b=P/cdIT3TzKVpcSg/h3S3PSnaIR9iIQc1mNJizdoGmC7Loiqx7vtuTIY4ipJ61NLl1r
         Muj3t0wAXjANWU+KesvxqNYVSoruRctwM3PwirmpfVeZHtWRnwOwhrQWn8pBvkPdxd5A
         rCS2HgYI11WkOqKKPLM4pqEJIAOjIbeUAMUmx8Lot1Lx9HDFxdeREFVosx/ep5fnimT9
         5Gs6bR2n1a+w5ypURJ+iaP9ppCFPDcXPMMlQdJM0L26/yPNojqFdMEKAVEX4JE5M9e+9
         ivBgdxQSThs1Q5mOk9YIr6ZDZTAOFP6BLx8BCvd1d6aJEuhRzfFm9Dguu4EOOob94Rjc
         gz+w==
X-Gm-Message-State: AOJu0YwLLZy2vC0A51/HvZe4h7F5hgr93m7oKPvlNMSlr2fLY58MuFXo
	dnyg0vDcL5QJ3JiY0RBQCHPubg==
X-Google-Smtp-Source: AGHT+IFA/bkWOrG6lCzDApoRXN24aVFF7+48ZrnldxtZrd3lUIjSL16CUL3gi4+ki+PuUaFs9N1ahw==
X-Received: by 2002:a05:600c:1d19:b0:40b:5e21:bdc0 with SMTP id l25-20020a05600c1d1900b0040b5e21bdc0mr8890642wms.79.1702998671243;
        Tue, 19 Dec 2023 07:11:11 -0800 (PST)
Date: Tue, 19 Dec 2023 16:11:09 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 4/4] x86/PV: issue branch prediction barrier when
 switching 64-bit guest to kernel mode
Message-ID: <ZYGyjQiAomxh0QnI@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <2863b0a9-ca7c-3cce-104d-0b6685b0b383@suse.com>
 <ZYCARJAxH9hBD0YQ@macbook>
 <6e022af1-d383-48be-ab54-6ec254aa1502@suse.com>
 <ZYGC8JaJ45tkbqQC@macbook>
 <aacaa220-3e95-4dff-9572-79f9e79faeae@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aacaa220-3e95-4dff-9572-79f9e79faeae@suse.com>

On Tue, Dec 19, 2023 at 03:06:50PM +0100, Jan Beulich wrote:
> On 19.12.2023 12:48, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 19, 2023 at 10:56:16AM +0100, Jan Beulich wrote:
> >> On 18.12.2023 18:24, Roger Pau MonnÃ© wrote:
> >>> On Tue, Feb 14, 2023 at 05:12:08PM +0100, Jan Beulich wrote:
> >>>> --- a/xen/arch/x86/pv/domain.c
> >>>> +++ b/xen/arch/x86/pv/domain.c
> >>>> @@ -455,6 +455,7 @@ static void _toggle_guest_pt(struct vcpu
> >>>>  void toggle_guest_mode(struct vcpu *v)
> >>>>  {
> >>>>      const struct domain *d = v->domain;
> >>>> +    struct cpu_info *cpu_info = get_cpu_info();
> >>>>      unsigned long gs_base;
> >>>>  
> >>>>      ASSERT(!is_pv_32bit_vcpu(v));
> >>>> @@ -467,15 +468,21 @@ void toggle_guest_mode(struct vcpu *v)
> >>>>      if ( v->arch.flags & TF_kernel_mode )
> >>>>          v->arch.pv.gs_base_kernel = gs_base;
> >>>>      else
> >>>> +    {
> >>>>          v->arch.pv.gs_base_user = gs_base;
> >>>> +
> >>>> +        if ( opt_ibpb_mode_switch &&
> >>>> +             !(d->arch.spec_ctrl_flags & SCF_entry_ibpb) &&
> >>>> +             !VM_ASSIST(d, mode_switch_no_ibpb) )
> >>>> +            cpu_info->spec_ctrl_flags |= SCF_new_pred_ctxt;
> >>>
> >>> Likewise similar to the remarks I've made before, if doing an IBPB on
> >>> entry is enough to cover for the case here, it must also be fine to
> >>> issue the IBPB right here, instead of deferring to return to guest
> >>> context?
> >>>
> >>> The only concern would be (as you mentioned before) to avoid clearing
> >>> valid Xen predictions, but I would rather see some figures about what
> >>> effect the delaying to return to guest has vs issuing it right here.
> >>
> >> Part of the reason (aiui) to do things on the exit path was to
> >> consolidate the context switch induced one and the user->kernel switch
> >> one into the same place and mechanism.
> > 
> > Isn't it kind of a very specific case that we end up doing a
> > user->kernel switch as part of a context switch?  IOW: would require
> > the vCPU to be scheduled out at that very specific point.
> 
> No, there's no user->kernel switch at the same time as context switch.
> What I was trying to explain is that with the actual IBPB being issued
> on exit to guest, both the context switch path and the user->kernel
> mode switch path set the same indicator, for the exit path to consume.

Deferring to exit to guest path could be OK, but unless strictly
needed, which I don't think it's the case, I would request for IBPB to
be executed in C context rather than assembly one.

> >>>> + *
> >>>> + * By default (on affected and capable hardware) as a safety measure Xen,
> >>>> + * to cover for the fact that guest-kernel and guest-user modes are both
> >>>> + * running in ring 3 (and hence share prediction context), would issue a
> >>>> + * barrier for user->kernel mode switches of PV guests.
> >>>> + */
> >>>> +#define VMASST_TYPE_mode_switch_no_ibpb  33
> >>>
> >>> Would it be possible to define the assist as
> >>> VMASST_TYPE_mode_switch_ibpb and have it on when enabled?  So that the
> >>> guest would disable it if unneeded?  IMO negated options are in
> >>> general harder to understand.
> >>
> >> Negative options aren't nice, yes, but VM assists start out as all
> >> clear.
> > 
> > Are you sure?  I see VMASST_TYPE_pae_extended_cr3 getting set in
> > dom0_construct_pv() and that makes me wonder whether other bits
> > couldn't start set also.
> > 
> > Maybe there's some restriction I'm missing, but I don't see any
> > wording in the description of the interface that states that all
> > assists are supposed to start disabled.
> 
> Well, that setting of pae_extended_cr3 is in response to the kernel's
> notes section having a respective indicator. So we still only set the
> bit in response to what the kernel's asking us to do, just that here
> we carry out the request ahead of launching the kernel.
> 
> Also consider what would happen during migration if there was a
> default-on assist: At the destination we can't know whether the
> source simply didn't know of the bit, or whether the guest elected to
> clear it.

Hm, I see, so I was indeed missing that aspect.  VM assist is passed
as a plain bitmap, and there's no signal on which assists the VM had
available on the source side if not enabled.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:12:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:12:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656967.1025511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbm5-0005uR-5o; Tue, 19 Dec 2023 15:12:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656967.1025511; Tue, 19 Dec 2023 15:12:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbm5-0005uK-1K; Tue, 19 Dec 2023 15:12:49 +0000
Received: by outflank-mailman (input) for mailman id 656967;
 Tue, 19 Dec 2023 15:12: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 1rFbm3-0005uA-Ky; Tue, 19 Dec 2023 15:12: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 1rFbm3-0003hU-DI; Tue, 19 Dec 2023 15:12: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 1rFbm3-0008FL-3n; Tue, 19 Dec 2023 15:12:47 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFbm3-0005oc-3I; Tue, 19 Dec 2023 15:12: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=w37YUUod1JvJ3PsVbsAJmOcroo3kgldvLgb3JgwsFSA=; b=KYyeteV+EWLBW9Ygndxa/s/NSD
	2mQMJFoe7VPoK559dSt7rzx6rne7J/UToI8JVFBRnKJJ3awXLpAg3VUNQoBRjaEC9sBLBcuiGNS1V
	MIQ+vA07exVbNqMT74JAYmu/Fku0irOfxwEPSRcmljNDu25ENygGcx6wCs/FApnzbrks=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184175-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184175: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=b1f33cbf8113bb07526c9f6946c250c7d9db44f9
X-Osstest-Versions-That:
    ovmf=3c66390e4a514dcce4c8cc82f489d653d55ee3fa
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 19 Dec 2023 15:12:47 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 b1f33cbf8113bb07526c9f6946c250c7d9db44f9
baseline version:
 ovmf                 3c66390e4a514dcce4c8cc82f489d653d55ee3fa

Last test of basis   184173  2023-12-19 09:44:28 Z    0 days
Testing same since   184175  2023-12-19 13:11:00 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Dhaval <dhaval@rivosinc.com>
  Dhaval Sharma <dhaval@rivosinc.com>
  Laszlo Ersek <lersek@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-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-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
   3c66390e4a..b1f33cbf81  b1f33cbf8113bb07526c9f6946c250c7d9db44f9 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:16:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:16:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656973.1025520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbpQ-0006xe-LV; Tue, 19 Dec 2023 15:16:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656973.1025520; Tue, 19 Dec 2023 15:16: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 1rFbpQ-0006xX-HX; Tue, 19 Dec 2023 15:16:16 +0000
Received: by outflank-mailman (input) for mailman id 656973;
 Tue, 19 Dec 2023 15: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=+gux=H6=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFbpP-0006wg-J2
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 15:16:15 +0000
Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com
 [2607:f8b0:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a67b503-9e81-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 16:16:11 +0100 (CET)
Received: by mail-pf1-x42c.google.com with SMTP id
 d2e1a72fcca58-6d93278bfbeso549547b3a.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 07:16:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a67b503-9e81-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1702998970; x=1703603770; 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=lJbi/NwTRoo2zXs/3L/UP4VYUSrnHOMtCXpuBqmbNH4=;
        b=nENH5XAwg8HzEEVnu9sZseKiSjtXWjFvr7shjcu4ySRqjpjkFMcyeMF+mejxXwUfmd
         jD42qh33oWI7O7LFOoH1Axzu79/Z4Yi1dJCqVSBgABcE/XX1dsdv5WNa6Uysag74r1jd
         JrhUtXhGvb3nH9Ag8Ljdr/DfSOY843m9k11Df/sYgtOLiZ4jZGbrtAnvMVfPHLyDWTcw
         ZC7YTEkAyFilly7/bNqeSGlFxr+coTpOqAsCrz0xZwMiYih8jt+wG0Bfy75ugASRHqN8
         IZtjvOVXfTfpyJBT/OJIKCxbaUgYYqSV4cSgQzgrCVE96Qd1UtIEXoifEd6+SXuHUxjy
         xBqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702998970; x=1703603770;
        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=lJbi/NwTRoo2zXs/3L/UP4VYUSrnHOMtCXpuBqmbNH4=;
        b=PIbZ6PnM/BsTKvDtzDt5jW5tOKBo21fFcpxRgzJgp1falYIJkjFvFnJ6F25uQu0PaX
         WymnKDrvpk4HC3/+8mbwQ9KTmWJ4XPpphlST+zvZifM2Zq8QcREGEYM6TKuL19VOlqx5
         bPDQUaeZCQduFwH8kcu3UjPhG9HPoz309m3ry9ZIJuTRngS8V2MkBgWL1aG0uAQtkAYm
         Jc4mjS9hDga7qavE/XgDr+rrcNcUqp6MHNZbFtz91SWM9HiaSxnORu9vx+xnSye4d7Ka
         bOxWnr9PwveTxrpR7K8I5ylyCz/4sWc14YxMtFLy7MLNI2JHdL12/scszaVtO7nEhB+v
         Z4sw==
X-Gm-Message-State: AOJu0YwIUkbg/2j5vTGZiwCpO1jJnFnqspC/gx9dbgPhY6slDI7IndMO
	AHnDJ60WwUMW2OClsZXAMTRb0rj0B0fPpxm62IqgILyUzt7MTQ==
X-Google-Smtp-Source: AGHT+IFaZdM8c6udFnHk8dySLcfBrJGmwiJRqMHxfs4tbeQCJaL4iMUcZM9buxlAiKETkn0EAsYKbRWbSMPjNUMD44Y=
X-Received: by 2002:a05:6a21:a58b:b0:194:b4e1:45c0 with SMTP id
 gd11-20020a056a21a58b00b00194b4e145c0mr552908pzc.52.1702998969669; Tue, 19
 Dec 2023 07:16:09 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
In-Reply-To: <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Tue, 19 Dec 2023 16:15:58 +0100
Message-ID: <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I did add an extra printk in PHYSDEVOP_setup_gsi
so the "first one" is my printk (available in xl dmesg)
the second message is from xen_register_gsi (from linux kernel)

Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich <jbeulich@suse.com> a =
=C3=A9crit :
>
> On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:
> >>>>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
> >>>>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up int=
errupt
> >>>>>>
> >>>>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
> >>>>>> ioapic-edge and IRQ9 to ioapic-level ?
> >>>>>>
> >>>>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
> >>>>>> IR-IO-APIC    9-fasteoi   acpi
> >>>>>>
> >>>>>> to (xen 4.18.0)
> >>>>>>
> >>>>>> xen-pirq     -ioapic-edge  pinctrl_amd
> >>>>>> xen-pirq     -ioapic-level  acpi
> >>>>>>
> >>>>>> ?
> >>>
> >
> >>> This look similar to
> >>> https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
> >>>
> >>> This issue seems that IRQ 7 (the GPIO controller) is natively fasteoi
> >>> (so level type) while in xen it  is mapped to oapic-edge  instead of
> >>> oapic-level
> >>> as the SSDT indicates :
> >>>
> >>>  Device (GPIO)
> >>>
> >>>      {
> >>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
> >>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
> >>>          Name (_UID, Zero)  // _UID: Unique ID
> >>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource S=
ettings
> >>>          {
> >>>              Name (RBUF, ResourceTemplate ()
> >>>              {
> >>>                  Interrupt (ResourceConsumer, Level, ActiveLow, Share=
d, ,, )
> >>>                  {
> >>>                      0x00000007,
> >>>            }
> >>> Any idea why ?
> >>
> >> Information coming from AML is required to be handed down by Dom0 to X=
en.
> >> May want checking that (a) Dom0 properly does so and (b) Xen doesn't s=
crew
> >> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this i=
s
> >> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IRQ7=
 is
> >> also the spurious vector. You may want to retry with the tip of the 4.=
17
> >> branch (soon to become 4.17.3) - while it doesn't look very likely to =
me
> >> that recent backports there were related, it may still be that they ma=
ke
> >> a difference.
> >>
> >
> > testing with 4.17.3:
> >
> > Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  that
> > (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: 1
> >
> > but later on in dmesg I see :
> > [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
>
> Linux has exactly one place where this message is logged from, and that's
> ahead of it calling PHYSDEVOP_setup_gsi. Since you said "later", can you
> confirm that actually you see two instances of the Xen message and two
> instances of the Linux one (each of them with respectively matching
> trigger and polarity values)? Or are we indeed observing what would look
> to be corruption of a hypercall argument?
>
> If there were two calls, it would be important to realize that Xen will
> respect only the first one.
>
> Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:24:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:24:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656978.1025531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFbx1-0004A1-Dm; Tue, 19 Dec 2023 15:24:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656978.1025531; Tue, 19 Dec 2023 15: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 1rFbx1-00049u-B1; Tue, 19 Dec 2023 15:24:07 +0000
Received: by outflank-mailman (input) for mailman id 656978;
 Tue, 19 Dec 2023 15: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFbx0-00047E-KS
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 15:24:06 +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 a483381c-9e82-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 16:24:04 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40d190df5d0so29518145e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 07:24:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 jg7-20020a05600ca00700b0040c46719966sm3253226wmb.25.2023.12.19.07.24.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 07:24:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a483381c-9e82-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1702999443; x=1703604243; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=KdMIBMvBlTdGic19aTTRMv+1IVxeZiLUMSPfYu7F/bg=;
        b=FNJyGJaMXyoFFdWuu+2TTuNUJnqckIfyAdGN5YRp1bHNS2G4gkLTsCy50uoSIAb2Ev
         U06WNsYO+cqvKZMWDEJFj6BiZ7YOVpumyVbDRZFnrxGksueIRprAVwxJ2hBzRe27GVAG
         NUCFZOv/vSqsWuLZtTFNQZLDYX9RtFZrdalGirt3nAEAI66V+TBpWd/Of9Uqp5DlV2RA
         3Nj4ZEJqBMgy2n0w/nPtf6pYvt9QMUpW5k2dfrj/Tkhvy+C29iRVIZeVqe1UMJna5WeM
         g3LXzX099lwEY5sP5yuqPBZWOAdy3mqHmPCph+6mOl/21iCNNtmNAiKvLxtV/VHSso8o
         7/kA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1702999443; x=1703604243;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=KdMIBMvBlTdGic19aTTRMv+1IVxeZiLUMSPfYu7F/bg=;
        b=OnHvozvc49V8I3r2Ueipt17qhdZG6SnLVuPQ67iJSR0O/NJaEdWqAg5D/i478YevtN
         eV/ubEIK2DuGFocZuddua4yTLIzdykPCAxWYZr8uMyP//jZakweNV5Vu35y+pIwYmue8
         eT0VzYLmeFfYHDsLP3vKK9NqEVZZQQY9LrLngKQniqckUMiFFVpGMYLUv0resaVjSsvd
         +YGC/omlafeBXc5e/BFWhXoMD8cT1mfqwP+opT5asFk3OrvPIBLxDvPndy65HaESZFrt
         +MygSTte+PP9ismxtb5/eOwG8exzGduEkmsPYo8yusjyV+ZhJ2Ai/sYXQcKr1Tir2sml
         A0UQ==
X-Gm-Message-State: AOJu0Yx8BVCzMXjpc7W28kGBufs2B6twxaBlPpdK+p+Wy1R35i9z85lh
	MIBqZARIhtTx9mM49z8Tc0MS
X-Google-Smtp-Source: AGHT+IGf0pZ1IQDifizuzyIQ7y4EvCYGH+j2PnbGoXuZCjx27DpXdVcocPAo5/PRrV8gYnCd77rVAA==
X-Received: by 2002:a05:600c:4fd5:b0:40c:34e1:72ef with SMTP id o21-20020a05600c4fd500b0040c34e172efmr9453720wmq.84.1702999443513;
        Tue, 19 Dec 2023 07:24:03 -0800 (PST)
Message-ID: <48b5a33e-19c8-49fd-9682-17056e0acb00@suse.com>
Date: Tue, 19 Dec 2023 16:24:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] x86/HVM: split restore state checking from state
 loading
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <1e855575-8c0f-4222-80ba-e64305ea714b@suse.com>
 <05e69eea-79cc-4b3c-861b-855fa67c878a@suse.com> <ZYGqbboWvjVOGZkb@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYGqbboWvjVOGZkb@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.12.2023 15:36, Roger Pau MonnÃ© wrote:
> On Mon, Dec 18, 2023 at 03:39:55PM +0100, Jan Beulich wrote:
>> ..., at least as reasonably feasible without making a check hook
>> mandatory (in particular strict vs relaxed/zero-extend length checking
>> can't be done early this way).
>>
>> Note that only one of the two uses of "real" hvm_load() is accompanied
>> with a "checking" one. The other directly consumes hvm_save() output,
>> which ought to be well-formed. This means that while input data related
>> checks don't need repeating in the "load" function when already done by
>> the "check" one (albeit assertions to this effect may be desirable),
>> domain state related checks (e.g. has_xyz(d)) will be required in both
>> places.
>>
>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Now that this re-arranges hvm_load() anyway, wouldn't it be better to
>> down the vCPU-s ahead of calling arch_hvm_load() (which is now easy to
>> arrange for)?
> 
> Seems OK to me.

As is, or with the suggested adjustment, or either way?

>> Do we really need all the copying involved in use of _hvm_read_entry()
>> (backing hvm_load_entry()? Zero-extending loads are likely easier to
>> handle that way, but for strict loads all we gain is a reduced risk of
>> unaligned accesses (compared to simply pointing into h->data[]).
> 
> I do feel it's safer to copy the data so the checks are done against
> what's loaded.  Albeit hvm_load() is already using hvm_get_entry().

The comment is about individual handlers, not hvm_load() itself. In some
cases - when copying directly into guest state structures - the copying
makes sense. In other cases, where there is separate copying anyway,
things could be done with less duplication of data (see hpet_load(),
which was already converted; along those lines hvm_load() itself also
was already switched away from the original copying).

Checking in any event can't be done against what _is_ loaded (as during
checking we want to avoid altering guest state); it'll always be only
against what is going to be loaded. The difference would be whether we
check data in the incoming buffer or in a copy of that data in a local
variable on the stack. But that applies to checking done in the load
hooks only anyway; the cases with split off check handlers should never
need to do any copying.

>> --- a/xen/arch/x86/domctl.c
>> +++ b/xen/arch/x86/domctl.c
>> @@ -379,8 +379,12 @@ long arch_do_domctl(
>>          if ( copy_from_guest(c.data, domctl->u.hvmcontext.buffer, c.size) != 0 )
>>              goto sethvmcontext_out;
>>  
>> +        ret = hvm_load(d, false, &c);
>> +        if ( ret )
>> +            goto sethvmcontext_out;
>> +
>>          domain_pause(d);
>> -        ret = hvm_load(d, &c);
>> +        ret = hvm_load(d, true, &c);
> 
> Now that the check has been done ahead, do we want to somehow assert
> that this cannot fail?  AIUI that's the expectation.

We certainly can't until all checking was moved out of the load handlers.
And even then I think there are still cases where load might produce an
error. (In fact I would have refused a little more strongly to folding
the prior hvm_check() into hvm_load() if indeed a separate hvm_load()
could have ended up returning void in the long run.)

>> @@ -275,12 +281,10 @@ int hvm_save(struct domain *d, hvm_domai
>>      return 0;
>>  }
>>  
>> -int hvm_load(struct domain *d, hvm_domain_context_t *h)
>> +int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h)
> 
> Maybe the 'real' parameter should instead be an enum:
> 
> enum hvm_load_action {
>     CHECK,
>     LOAD,
> };
> int hvm_load(struct domain *d, enum hvm_load_action action,
>              hvm_domain_context_t *h);

Hmm, yes, it could. I'm not a fan of enums for boolean-like things,
though.

> Otherwise a comment might be warranted about how 'real' affects the
> logic in the function.

I can certainly add a comment immediately ahead of the function:

/*
 * @real = false requests checking of the incoming state, while @real = true
 * requests actual loading, which will then assume that checking was already
 * done or is unnecessary.
 */

>> @@ -291,50 +295,91 @@ int hvm_load(struct domain *d, hvm_domai
>>      if ( !hdr )
>>          return -ENODATA;
>>  
>> -    rc = arch_hvm_load(d, hdr);
>> -    if ( rc )
>> -        return rc;
>> +    rc = arch_hvm_check(d, hdr);
> 
> Shouldn't this _check function only be called when real == false?

Possibly. In v4 I directly transformed what I had in v3:

    ASSERT(!arch_hvm_check(d, hdr));

I.e. it is now the call above plus ...

>> +    if ( real )
>> +    {
>> +        struct vcpu *v;
>> +
>> +        ASSERT(!rc);

... this assertion. Really the little brother of the call site assertion
you're asking for (see above).

>> +        arch_hvm_load(d, hdr);
>>  
>> -    /* Down all the vcpus: we only re-enable the ones that had state saved. */
>> -    for_each_vcpu(d, v)
>> -        if ( !test_and_set_bit(_VPF_down, &v->pause_flags) )
>> -            vcpu_sleep_nosync(v);
>> +        /*
>> +         * Down all the vcpus: we only re-enable the ones that had state
>> +         * saved.
>> +         */
>> +        for_each_vcpu(d, v)
>> +            if ( !test_and_set_bit(_VPF_down, &v->pause_flags) )
>> +                vcpu_sleep_nosync(v);
>> +    }
>> +    else if ( rc )
>> +        return rc;
>>  
>>      for ( ; ; )
>>      {
>> +        const char *name;
>> +        hvm_load_handler load;
>> +
>>          if ( h->size - h->cur < sizeof(struct hvm_save_descriptor) )
>>          {
>>              /* Run out of data */
>>              printk(XENLOG_G_ERR
>>                     "HVM%d restore: save did not end with a null entry\n",
>>                     d->domain_id);
>> +            ASSERT(!real);
>>              return -ENODATA;
>>          }
>>  
>>          /* Read the typecode of the next entry  and check for the end-marker */
>>          desc = (struct hvm_save_descriptor *)(&h->data[h->cur]);
>> -        if ( desc->typecode == 0 )
>> +        if ( desc->typecode == HVM_SAVE_CODE(END) )
>> +        {
>> +            /* Reset cursor for hvm_load(, true, ). */
>> +            if ( !real )
>> +                h->cur = 0;
>>              return 0;
>> +        }
>>  
>>          /* Find the handler for this entry */
>> -        if ( (desc->typecode > HVM_SAVE_CODE_MAX) ||
>> -             ((handler = hvm_sr_handlers[desc->typecode].load) == NULL) )
>> +        if ( desc->typecode >= ARRAY_SIZE(hvm_sr_handlers) ||
>> +             !(name = hvm_sr_handlers[desc->typecode].name) ||
>> +             !(load = hvm_sr_handlers[desc->typecode].load) )
>>          {
>>              printk(XENLOG_G_ERR "HVM%d restore: unknown entry typecode %u\n",
>>                     d->domain_id, desc->typecode);
> 
> The message is not very accurate here, it does fail when the typecode
> is unknown, but also fails when such typecode has no name or load
> function setup.

Yes and no, and it's not changing in this patch. Are you suggesting I should
change it despite being unrelated? If so, there not being a name (which is
the new check I'm adding) still suggests the code is unknown. There not being
a load handler really indicates a bug in Xen (yet no reason to e.g. BUG() in
that case, the failed loading will hopefully be noticeable enough).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:27:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:27:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656985.1025540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFc0E-0005bA-1h; Tue, 19 Dec 2023 15:27:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656985.1025540; Tue, 19 Dec 2023 15:27:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFc0D-0005b3-Up; Tue, 19 Dec 2023 15:27:25 +0000
Received: by outflank-mailman (input) for mailman id 656985;
 Tue, 19 Dec 2023 15:27: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 1rFc0C-0005at-Vx; Tue, 19 Dec 2023 15:27: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 1rFc0C-0003xT-Mo; Tue, 19 Dec 2023 15:27: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 1rFc0C-00008c-AJ; Tue, 19 Dec 2023 15:27:24 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFc0C-0001j2-9m; Tue, 19 Dec 2023 15:27: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=82G3lE3ylzQLa1CNao+X/hopa3sQ48lwUUNQPIk3yZg=; b=bS2i6b4BMLO5HWk8QwrC4hTpn2
	2DDdpAR7Uk3VDp4dwVL5VyzirAf8N0dc6r1gXFnjLsxcxHcFfmpPEk9a36LqLfKsnvBz11GN288nB
	fuXklLjxCu90ESOaSd3KIKqaoHhMFrGeVFgolUePzwrwYXGO/sDvOx1xU6UDEuU+oyPE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184174-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184174: 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=05b6368ba01e07aa3b2b1f1856d77332971a7bdf
X-Osstest-Versions-That:
    xen=0cc74376d6823e0883f89556be2a267f2240a558
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 19 Dec 2023 15:27:24 +0000

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

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                  05b6368ba01e07aa3b2b1f1856d77332971a7bdf
baseline version:
 xen                  0cc74376d6823e0883f89556be2a267f2240a558

Last test of basis   184168  2023-12-18 15:03:58 Z    1 days
Testing same since   184174  2023-12-19 13:02:03 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Roger Pau MonnÃ© <roger.pau@citrix.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
   0cc74376d6..05b6368ba0  05b6368ba01e07aa3b2b1f1856d77332971a7bdf -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:28:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:28:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656989.1025550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFc1S-00068s-Bm; Tue, 19 Dec 2023 15:28:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656989.1025550; Tue, 19 Dec 2023 15: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 1rFc1S-00068l-93; Tue, 19 Dec 2023 15:28:42 +0000
Received: by outflank-mailman (input) for mailman id 656989;
 Tue, 19 Dec 2023 15: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=Dspo=H6=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFc1R-00068d-8L
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 15:28:41 +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 48924455-9e83-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 16:28:40 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-74-6mtZLgXrPG-ASdwrw9encw-1; Tue,
 19 Dec 2023 10:28:32 -0500
Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com
 [10.11.54.9])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 05769383A0A1;
 Tue, 19 Dec 2023 15:28:31 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.175])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 3201F492BC6;
 Tue, 19 Dec 2023 15:28: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: 48924455-9e83-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1702999718;
	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=Nh0cR65sPswywtceyI2IIIl2ItyyUhcWzRQaZepOBXU=;
	b=CcA56sIoWzeFL528blg5CscoaV0BtqfxWMt/0ijrtICsQfpmkYPjyW1/H3/y6w0NVOwARM
	B5Ne7b9KCfCIMOTQu6hbrlmllU3IO5FyT20rN0USzkEdmYHS82yRZGZlR6VBhiz6dMrlUj
	VlxCtXtadM6tDqZ7pLk8G05XaVjh/GY=
X-MC-Unique: 6mtZLgXrPG-ASdwrw9encw-1
Date: Tue, 19 Dec 2023 16:28:25 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 04/14] aio: make
 aio_context_acquire()/aio_context_release() a no-op
Message-ID: <ZYG2mSe1JWnC0tq_@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-5-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205182011.1976568-5-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.9

Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> aio_context_acquire()/aio_context_release() has been replaced by
> fine-grained locking to protect state shared by multiple threads. The
> AioContext lock still plays the role of balancing locking in
> AIO_WAIT_WHILE() and many functions in QEMU either require that the
> AioContext lock is held or not held for this reason. In other words, the
> AioContext lock is purely there for consistency with itself and serves
> no real purpose anymore.
> 
> Stop actually acquiring/releasing the lock in
> aio_context_acquire()/aio_context_release() so that subsequent patches
> can remove callers across the codebase incrementally.
> 
> I have performed "make check" and qemu-iotests stress tests across
> x86-64, ppc64le, and aarch64 to confirm that there are no failures as a
> result of eliminating the lock.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> Acked-by: Kevin Wolf <kwolf@redhat.com>

I knew why I wasn't confident enough to give a R-b... This crashes
qemu-storage-daemon in the qemu-iotests case graph-changes-while-io.

qemu-storage-daemon: ../nbd/server.c:2542: nbd_co_receive_request: Assertion `client->recv_coroutine == qemu_coroutine_self()' failed.

(gdb) bt
#0  0x00007fdb00529884 in __pthread_kill_implementation () from /lib64/libc.so.6
#1  0x00007fdb004d8afe in raise () from /lib64/libc.so.6
#2  0x00007fdb004c187f in abort () from /lib64/libc.so.6
#3  0x00007fdb004c179b in __assert_fail_base.cold () from /lib64/libc.so.6
#4  0x00007fdb004d1187 in __assert_fail () from /lib64/libc.so.6
#5  0x0000557f9f9534eb in nbd_co_receive_request (errp=0x7fdafc25eec0, request=0x7fdafc25ef10, req=0x7fdaf00159c0) at ../nbd/server.c:2542
#6  nbd_trip (opaque=0x557fa0b33fa0) at ../nbd/server.c:2962
#7  0x0000557f9faa416b in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at ../util/coroutine-ucontext.c:177
#8  0x00007fdb004efe90 in ?? () from /lib64/libc.so.6
#9  0x00007fdafc35f680 in ?? ()
#10 0x0000000000000000 in ?? ()
(gdb) p *client
$2 = {refcount = 4, close_fn = 0x557f9f95dc40 <nbd_blockdev_client_closed>, exp = 0x557fa0b30590, tlscreds = 0x0, tlsauthz = 0x0, sioc = 0x557fa0b33d90, ioc = 0x557fa0b33d90,
  recv_coroutine = 0x7fdaf0015eb0, send_lock = {locked = 0, ctx = 0x0, from_push = {slh_first = 0x0}, to_pop = {slh_first = 0x0}, handoff = 0, sequence = 0, holder = 0x0},
  send_coroutine = 0x0, read_yielding = false, quiescing = false, next = {tqe_next = 0x0, tqe_circ = {tql_next = 0x0, tql_prev = 0x557fa0b305e8}}, nb_requests = 1, closing = false,
  check_align = 1, mode = NBD_MODE_EXTENDED, contexts = {exp = 0x557fa0b30590, count = 1, base_allocation = true, allocation_depth = false, bitmaps = 0x0}, opt = 7, optlen = 0}
(gdb) p co_tls_current
$3 = (Coroutine *) 0x7fdaf00061d0

Kevin



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:38:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:38:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656995.1025561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcBJ-0001YG-9L; Tue, 19 Dec 2023 15:38:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656995.1025561; Tue, 19 Dec 2023 15:38: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 1rFcBJ-0001Y9-6Q; Tue, 19 Dec 2023 15:38:53 +0000
Received: by outflank-mailman (input) for mailman id 656995;
 Tue, 19 Dec 2023 15:38: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFcBI-0001Y3-82
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 15:38:52 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4af5119-9e84-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 16:38:50 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c38de1ee4so47068395e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 07:38:50 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 l2-20020a05600c1d0200b004063c9f68f2sm3396999wms.26.2023.12.19.07.38.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 07:38:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4af5119-9e84-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703000329; x=1703605129; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jJBMoGAsqhK2/WPein48jJAqiU5oO52MY0HQDKyEDrY=;
        b=LDz9APnFDsoy4bJ3rF60QjLGKmoQioKQf/RN555c3ae93/Wy3jQ2al5Nx0fIEYx3LS
         DyBOyxhxnT4K0YjdETgQEjkJgcjA06ayjPGiaamZ7hmurfAso7UZ2u4/UM25181gMeIN
         wsXWh7ckd/XlZOmhKiIXWVOTvui2rQE59si0nLYyv4hJtGmnSLdl+xVhgSBpyNdZJi3n
         h/zj7oPtyPjynisUXpkNwsN6DMddoTR4mPavIi65PF1eZL7xMGj57vtmNKCvLwV1vTsZ
         QIJmQ+oGwOnLVI6R1Mx7UjBKKXRvJbu7sfMTVuPucOb4kzoDtUy/WpYc7xj+s5GOh8Cl
         2QpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703000329; x=1703605129;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=jJBMoGAsqhK2/WPein48jJAqiU5oO52MY0HQDKyEDrY=;
        b=NRSZRkNb07s+09EpfiAQMza3yMKG2jrOhaLptx8/4A7k1WLTsetST3751nZ3qRtwxa
         zsyjXcOsgbOt/oSifCJ8LxM2/D4nBGP24lylaKbIc0wkoShaiQ4ELaoxZeBFvM6fECbX
         fZaPTfBvGgi3Kev3Z+pOcMiDqhZ95mlkuhmoPoJARlBDTh8DkxP1q5B5mnIKQFljVMOF
         0aWjS/xQIqtPoLU1olyNZffcjnC6EP5YOkXRdvMWlpEJU+W576jx437rrykvZEH/jqpv
         WN/rGxFQSlTa28WmXPyJoOqz+wnvS/dSr6TbMlYLmwyH0XWoF4EIwwnc2MOB1A0E2nrx
         RpUw==
X-Gm-Message-State: AOJu0YxT7iY+n7xDEVQrIPygDjiLrpVdnIRmGbQDszRqWP5wsZ9gqjw6
	ttxb1wJly9Gr85aswwbzwuaa
X-Google-Smtp-Source: AGHT+IFZhjf2bmXru39VYNBguPdFEpCual8qGzuI/m/J3YAcmhpy5rKL5/dbDMjj9YS3OSuz2vfWsQ==
X-Received: by 2002:a05:600c:518a:b0:405:4776:735a with SMTP id fa10-20020a05600c518a00b004054776735amr9613970wmb.2.1703000329621;
        Tue, 19 Dec 2023 07:38:49 -0800 (PST)
Message-ID: <b97e28eb-6de5-48f0-91c1-bb9da72e24ae@suse.com>
Date: Tue, 19 Dec 2023 16:38:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] x86/p2m: move and rename paging_max_paddr_bits()
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-3-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231215141832.9492-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2023 15:18, Roger Pau Monne wrote:
> The function also supports non-paging domains, and hence it being placed in
> p2m.h and named with the paging_ prefix is misleading.
> 
> Move to x86 domain.c and rename to domain_max_paddr_bits().  Moving to a
> different header is non trivial, as the function depends on helpers declared in
> p2m.h.  There's no performance reason for the function being inline.
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

However, for using it in the next patch either here or there I think the
description wants to clarify that ...

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -2552,6 +2552,27 @@ static int __init cf_check init_vcpu_kick_softirq(void)
>  }
>  __initcall(init_vcpu_kick_softirq);
>  
> +unsigned int domain_max_paddr_bits(const struct domain *d)
> +{
> +    unsigned int bits = paging_mode_hap(d) ? hap_paddr_bits : paddr_bits;

... this and ...

> +
> +    if ( paging_mode_external(d) )

... this just so happen to be okay to use with system domains (i.e.
DomIO in particular).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:40:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:40:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.656997.1025571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcDD-0003dD-KM; Tue, 19 Dec 2023 15:40:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 656997.1025571; Tue, 19 Dec 2023 15:40:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcDD-0003d6-Hd; Tue, 19 Dec 2023 15:40:51 +0000
Received: by outflank-mailman (input) for mailman id 656997;
 Tue, 19 Dec 2023 15:40:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFcDC-0003d0-Ey
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 15:40:50 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fbca60fc-9e84-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 16:40:49 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c41b43e1eso59492195e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 07:40:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bh20-20020a05600c3d1400b0040d15dcb77asm3380700wmb.23.2023.12.19.07.40.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 07:40:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbca60fc-9e84-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703000449; x=1703605249; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jqtB18T4KE/8QXGng0/tODVYnlMMa4/tiATQTZ7APxE=;
        b=ROxi3mnGvYwVtnS24prC/UkBPtfEPf/c2E03WUgkUfSXqrek/WgkBspeGCpDtiuo6i
         V+fmrivi0E7K3stihxc/Ey/NLKNFWWxW3qfT4DGNboid0y302GMM6tVllea0N0IY6Kdz
         05iWcaldyfRRX4quiRHFiSoiyBeQI//Ki4dltRVi5j5H4Ds1q2H7WahZdNBwMlkxT23z
         j/9c9nKXieaPk06jGqWpxC/jg8JVY0GwgwziE6u2pqObs7eXBJ82KQEElZkl0Lak/CD7
         6QNiB0qJ2xDpSLniEQivcJ5FHNbMWhJnRffQQnaUzvLQozCqNcQLgWoK+3AfpwZQ2xXG
         SJhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703000449; x=1703605249;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=jqtB18T4KE/8QXGng0/tODVYnlMMa4/tiATQTZ7APxE=;
        b=SXUftrJSdroyq2MNN+ULRUZu8dgb5jIGiE5RkZLoqvH31VRFWYZPHLgmmjX3PmAggG
         jaQNYO94ARF9VPvkKH+jy7mGpf/1Kpk3PA7cM2WhXeIZ8ORW9vfSs89rhja1twN5uqcY
         1dHpPygp6WDe0hfKP5L0UvwKBYrc5Wzohv7+aSCDoZmenYp5MlVOBAITY/S6bxBtIwYy
         Qg1cKbuxxFe80O4AWmzPXDHq0xdODsyUqgiubYkSeyPj+jONYt8ndTMPQQgDF8wa6Dei
         XBc4ckBiihyDAtdINOYNX7wdWZdXTfVGE6QpChMwnr/AoTtXjw6ukPAIKg7M1xycbufl
         oymA==
X-Gm-Message-State: AOJu0YxVnc9DKDi6KyZXIA5j7T/bHoebuRWOxgGF+bz062PHC5sbKrA+
	Is7MkVtSE0YLJsnj5PLGX4xZ
X-Google-Smtp-Source: AGHT+IF3ZLbiop0DdkbdfU1hI59rYo3RlJfAiv65ioF7MLXzfhQDDvGKDrVckmoYSqmfmnU7I5FA4w==
X-Received: by 2002:a7b:c388:0:b0:40b:5e1f:6fd5 with SMTP id s8-20020a7bc388000000b0040b5e1f6fd5mr8205954wmj.42.1703000448847;
        Tue, 19 Dec 2023 07:40:48 -0800 (PST)
Message-ID: <79f986b3-9803-4ebd-a30c-ba10e6e88e85@suse.com>
Date: Tue, 19 Dec 2023 16:40:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] amd-vi: set IOMMU page table levels based on guest
 reported paddr width
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-4-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231215141832.9492-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2023 15:18, Roger Pau Monne wrote:
> However take into account the minimum number of levels required by unity maps
> when setting the page table levels.
> 
> The previous setting of the page table levels for PV guests based on the
> highest RAM address was bogus, as there can be other non-RAM regions past the
> highest RAM address that need to be mapped, for example device MMIO.
> 
> For HVM we also take amd_iommu_min_paging_mode into account, however if unity
> maps require more than 4 levels attempting to add those will currently fail at
> the p2m level, as 4 levels is the maximum supported.
> 
> Fixes: 0700c962ac2d ('Add AMD IOMMU support into hypervisor')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

> --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
> +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
> @@ -359,21 +359,17 @@ int __read_mostly amd_iommu_min_paging_mode = 1;
>  static int cf_check amd_iommu_domain_init(struct domain *d)
>  {
>      struct domain_iommu *hd = dom_iommu(d);
> +    int pglvl = amd_iommu_get_paging_mode(
> +                PFN_DOWN(1UL << domain_max_paddr_bits(d)));

This would feel safer as

1UL << (domain_max_paddr_bits(d) - PAGE_SHIFT)

as then not being prone to UB should the function ever become capable
of returning 64.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 15:58:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 15:58:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657003.1025580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcUX-0000O0-2O; Tue, 19 Dec 2023 15:58:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657003.1025580; Tue, 19 Dec 2023 15:58:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcUW-0000Nt-W2; Tue, 19 Dec 2023 15:58:44 +0000
Received: by outflank-mailman (input) for mailman id 657003;
 Tue, 19 Dec 2023 15:58: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=Dspo=H6=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFcUV-0000Nn-6U
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 15:58:43 +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 7a8fa805-9e87-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 16:58:42 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-300-cHhYhpcWNo24o_j-pPdaXw-1; Tue,
 19 Dec 2023 10:58:34 -0500
Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com
 [10.11.54.10])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 14BC63833354;
 Tue, 19 Dec 2023 15:58:33 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.175])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 68C43492BF0;
 Tue, 19 Dec 2023 15:58: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: 7a8fa805-9e87-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1703001520;
	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=SPIlk2eJxTfq//Ywc/9wCHLMmNMOKaq1o79CCvNfbmo=;
	b=iKTE6veYpRJpaj7UAJL15KDupEwO/9VaeNUKzv6bL2/PKFNJzBbq+X88UJtDRa4kaU68iL
	N0TXt8a8lLIQnYqRIQfZSlch2l70KUz0H+Hj0r9J+I6O47JEykOqVnyETkYJ2wo3e+kmVU
	27oTkvRdVdRinwAG32Rxm40RlmdxGlU=
X-MC-Unique: cHhYhpcWNo24o_j-pPdaXw-1
Date: Tue, 19 Dec 2023 16:58:26 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 06/14] block: remove AioContext locking
Message-ID: <ZYG9orsog3Pm675J@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-7-stefanha@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231205182011.1976568-7-stefanha@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10

Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> This is the big patch that removes
> aio_context_acquire()/aio_context_release() from the block layer and
> affected block layer users.
> 
> There isn't a clean way to split this patch and the reviewers are likely
> the same group of people, so I decided to do it in one patch.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> Reviewed-by: Kevin Wolf <kwolf@redhat.com>
> Reviewed-by: Paul Durrant <paul@xen.org>

> diff --git a/migration/block.c b/migration/block.c
> index a15f9bddcb..2bcfcbfdf6 100644
> --- a/migration/block.c
> +++ b/migration/block.c
> @@ -313,22 +311,10 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
>      block_mig_state.submitted++;
>      blk_mig_unlock();
>  
> -    /* We do not know if bs is under the main thread (and thus does
> -     * not acquire the AioContext when doing AIO) or rather under
> -     * dataplane.  Thus acquire both the iothread mutex and the
> -     * AioContext.
> -     *
> -     * This is ugly and will disappear when we make bdrv_* thread-safe,
> -     * without the need to acquire the AioContext.
> -     */
> -    qemu_mutex_lock_iothread();
> -    aio_context_acquire(blk_get_aio_context(bmds->blk));
>      bdrv_reset_dirty_bitmap(bmds->dirty_bitmap, cur_sector * BDRV_SECTOR_SIZE,
>                              nr_sectors * BDRV_SECTOR_SIZE);
>      blk->aiocb = blk_aio_preadv(bb, cur_sector * BDRV_SECTOR_SIZE, &blk->qiov,
>                                  0, blk_mig_read_cb, blk);
> -    aio_context_release(blk_get_aio_context(bmds->blk));
> -    qemu_mutex_unlock_iothread();
>  
>      bmds->cur_sector = cur_sector + nr_sectors;
>      return (bmds->cur_sector >= total_sectors);

With this hunk applied, qemu-iotests 183 fails:

(gdb) bt
#0  0x000055aaa7d47c09 in bdrv_graph_co_rdlock () at ../block/graph-lock.c:176
#1  0x000055aaa7d3de2e in graph_lockable_auto_lock (x=<optimized out>) at /home/kwolf/source/qemu/include/block/graph-lock.h:215
#2  blk_co_do_preadv_part (blk=0x7f38a4000f30, offset=0, bytes=1048576, qiov=0x7f38a40250f0, qiov_offset=qiov_offset@entry=0, flags=0) at ../block/block-backend.c:1340
#3  0x000055aaa7d3e006 in blk_aio_read_entry (opaque=0x7f38a4025140) at ../block/block-backend.c:1620
#4  0x000055aaa7e7aa5b in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at ../util/coroutine-ucontext.c:177
#5  0x00007f38d14dbe90 in __start_context () at /lib64/libc.so.6
#6  0x00007f38b3dfa060 in  ()
#7  0x0000000000000000 in  ()

qemu_get_current_aio_context() returns NULL now. I don't completely
understand why it depends on the BQL, but adding the BQL locking back
fixes it.

Kevin



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 16:05:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:05:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657008.1025591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcbK-0003D1-Uc; Tue, 19 Dec 2023 16:05:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657008.1025591; Tue, 19 Dec 2023 16: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 1rFcbK-0003Cu-Rv; Tue, 19 Dec 2023 16:05:46 +0000
Received: by outflank-mailman (input) for mailman id 657008;
 Tue, 19 Dec 2023 16: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=rImv=H6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFcbJ-0003Co-Bg
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:05:45 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7617fce5-9e88-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 17:05:43 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40d12ade25dso33753245e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:05:43 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 hg12-20020a05600c538c00b0040c41846923sm3370070wmb.26.2023.12.19.08.05.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:05:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7617fce5-9e88-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703001942; x=1703606742; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=y/kSj0FPle71j9+QgIZBI/rTtsRZdkZJUMFrjuLr1lY=;
        b=MVCqRF1jp5MbkNMPThF/Yqa74t3UtlMAdaGD+zhp/sCOBVs8vXxYVONzOVZQWgUAIK
         Ws6t8+Z0CgsrjzAogoFoH8b9O0fQIbVExTNa9rrNhYdVIKVZ0CUtBPnZRx/+kA65arH3
         SIrmscVsduKMqCUbQs2Ga/ST31s8SQYPZizvU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703001942; x=1703606742;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=y/kSj0FPle71j9+QgIZBI/rTtsRZdkZJUMFrjuLr1lY=;
        b=sGBJHgBT/tzOsarPVJcZJWxSkejDx6/Hnad9VFbrj0wkl7MDwmEQWpASdfA9I/97i/
         TzFt0j27fyd7Z6eUeqV6irAhVUuM5WFb0bMP1dbMqBdHPQmBM21yovEPYxXph+WUwZ2c
         e7C7Mk3oWl//xGTC9tENX3zrfZiuaa6D37aZEFrtHfnFs+veWmBWPUIe8inDprDfmSwV
         BL9wTZSLvKPgMRWs3774MuF5fTyRauBkmTSygwEne0RdfvRWGp04WjOMD7cm229YI/Ip
         UlwMWVNOiw0eyq5jdUBx74SHk5kLp9PrzRc7nTo7L0Obh1smVFZ8MArY1QYNiLyp0DVs
         RaAA==
X-Gm-Message-State: AOJu0Yyb7AXjmVzsxxOjJBHi2iikMHGbSC70zjm5PpA3saWmVwWL1oW6
	CxI1pMRjE4RiPz/Nd7mXjie0tA==
X-Google-Smtp-Source: AGHT+IFt1F1hm0GN/Z+NeHU04Hl2N/UjDWfBl1ALsrg56lwJgEkTwxmGWPAR5Rni3JBi/NQVExA+rQ==
X-Received: by 2002:a05:600c:35d4:b0:40d:2372:749a with SMTP id r20-20020a05600c35d400b0040d2372749amr698195wmq.95.1703001942633;
        Tue, 19 Dec 2023 08:05:42 -0800 (PST)
Message-ID: <caf76de4-89f5-4ce4-b1e3-1de7a21325dc@citrix.com>
Date: Tue, 19 Dec 2023 16:05:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Possible bug in Xen
Content-Language: en-GB
To: Joe Tretter <j.tretter@gmail.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <de8b87e2-a4a2-4e49-80f5-97c745f46500@gmail.com>
 <9cc86706-5791-4967-802c-3e665bc97804@citrix.com>
 <a0aa0326-398f-44a1-a5df-fde3e7fea138@gmail.com>
 <cd153225-5cef-4ff5-97e3-44e485c12305@citrix.com>
 <e787b9ba-7a30-4804-b64e-ef56c71f5ed3@gmail.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <e787b9ba-7a30-4804-b64e-ef56c71f5ed3@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/12/2023 12:32 am, Joe Tretter wrote:
> Hi Andrew.
>
> Yes, running the scrypt unit test twice simultaneously made the error
> occur faster.
> This time, this wasn't required because it failed straight away - the
> boot parameter is present:

Is it always the same test which fails, or is it random?

Looking at https://github.com/Tarsnap/scrypt it's only a trivial piece
of userspace crypto.

The fact that running multiple instances makes it fail more easily
points towards some kind of register handling issue, but the fact that
it repros only under Xen, and even with eager-fpu (which isn't the
default on AMD, sadly), is weird.

Looking at the scrypt source, it has alternative routines for the AESNI
and SHANI instruction groups.Â  However, because it's a Zen1, we don't
have a useful way of filtering visible for PV dom0 userspace.


First of all, can you get the exact CPU model and microcode version.Â 
`head /proc/cpuinfo` will be enough.Â  But while you're at it, can you
include `xl dmesg` too just in case there's something obvious showing up
there too.

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 16:06:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:06:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657010.1025601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcc8-0003fM-7i; Tue, 19 Dec 2023 16:06:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657010.1025601; Tue, 19 Dec 2023 16:06:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcc8-0003fF-3w; Tue, 19 Dec 2023 16:06:36 +0000
Received: by outflank-mailman (input) for mailman id 657010;
 Tue, 19 Dec 2023 16:06:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFcc6-0003f7-VD
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:06:34 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 94579cd2-9e88-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 17:06:33 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40d2e5e8d1dso4003375e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:06:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p6-20020a05600c358600b0040d2d33312csm1834107wmq.2.2023.12.19.08.06.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:06:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94579cd2-9e88-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703001993; x=1703606793; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=hcryKmz36kIW6BYIztc7wshL7qYd2Cg0gQ5SMuE1uss=;
        b=adduQ5+4Qtz61lxfQPRuNJfXPQhfC/Vpggh9bRIWST5jZuyAbY6+fp/QIufiFUAEHg
         OtZD+txXeGMxE0In+uvkiXbjLnsfAe9Ez/wVL5aXLd1AzrumJnHsxM9KJ1ZQiuKqggA+
         BG6Nyck7fyXsurPY8UCiD8flYHI2JNLWiU/tCVWNPBSKZt5AtvhKDVUyIxlcWtmv4f7a
         ECy/GgdudM34g98ryYzB2NI2FMKze2X1zLfn08f1StoyxEaGshDLE4sTjM90sZiaqIxb
         KD+ofEEnx2J39XxYlL4yo/UnrumWxVylLZEHVLhLomsCCa8fuTd8f3ICfPcpTNOVMvPP
         qmiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703001993; x=1703606793;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=hcryKmz36kIW6BYIztc7wshL7qYd2Cg0gQ5SMuE1uss=;
        b=uJJARHYknq2C4dOYk7V8EE5ibBK8YaQYzLE8bD+jMivS3hqQeRFrxdQdtOi7EksJCb
         Qc6hZjW+jNhYZwlLnT/0dZbEgXiMdzAco1hSFjTQFNVWTG4feSgBOzf0TnTyw6T62m/J
         +Yq8qUphJ4veev/2pIVerQKj6wp1Toj75CG0bd7btI+iFYziCSMXPHCzoj6JmAepsHMD
         BckeLc4PQdSSmCLrnmGQS+3kVo4sk4CSBzhf1iRcAPxIAxmfQ2KDhRJz48FxLVo8Wvg8
         4UU65PwoJDjP2RvuXcwPxBYL0sxJqSlT2f7EJCzAx5QjNCrNjsZJHZiuAAZZ9NDBZ1O8
         EKOg==
X-Gm-Message-State: AOJu0Yz3qz0PNrAm3mxGw7kRC56uvy6kfUOjW8RUfz378WQqdPErgMnf
	XA9rT3QiExxBBYTvhwDVimIBuEyykHpOI8JQRON+
X-Google-Smtp-Source: AGHT+IHP94TOJDh37TCJdxzytTao7Im6Ux24L2B+g0bThxa53USO8ZFtgqh3PBTeCy7Y8U6YLJnP/g==
X-Received: by 2002:a05:600c:474e:b0:40c:4b4e:95a6 with SMTP id w14-20020a05600c474e00b0040c4b4e95a6mr5646529wmo.94.1703001993073;
        Tue, 19 Dec 2023 08:06:33 -0800 (PST)
Message-ID: <454027bf-b07e-49cf-97de-009d431e5f4b@suse.com>
Date: Tue, 19 Dec 2023 17:06:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/7] x86/iommu: introduce a rangeset to perform hwdom
 IOMMU setup
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-5-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231215141832.9492-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 15:18, Roger Pau Monne wrote:
> --- a/xen/drivers/passthrough/x86/iommu.c
> +++ b/xen/drivers/passthrough/x86/iommu.c
> @@ -370,10 +370,88 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
>      return perms;
>  }
>  
> +struct map_data {
> +    struct domain *d;
> +    unsigned int flush_flags;
> +    bool mmio_ro;
> +};
> +
> +static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
> +                                              void *data)
> +{
> +    struct map_data *info = data;
> +    struct domain *d = info->d;
> +    long rc;
> +
> +    if ( iommu_verbose )
> +        printk(XENLOG_INFO " [%010lx, %010lx] R%c\n",
> +               s, e, info->mmio_ro ? 'O' : 'W');
> +
> +    if ( paging_mode_translate(d) )
> +    {
> +        if ( info->mmio_ro )
> +        {
> +            ASSERT_UNREACHABLE();
> +            return 0;

Is this meant to be in line with the main return statement's comment?
I'm inclined to ask for an actual error code (-EOPNOTSUPP?) here.

> +        }
> +        while ( (rc = map_mmio_regions(d, _gfn(s), e - s + 1, _mfn(s))) > 0 )
> +        {
> +            s += rc;
> +            process_pending_softirqs();
> +        }
> +    }
> +    else
> +    {
> +        const unsigned int perms = IOMMUF_readable | IOMMUF_preempt |
> +                                   (info->mmio_ro ? 0 : IOMMUF_writable);
> +
> +        /*
> +         * Read-only ranges are only created based on the contents of mmio
> +         * read-only rangeset, and hence need the additional iomem permissions
> +         * check.
> +         */
> +        while( info->mmio_ro && s <= e && !iomem_access_permitted(d, s, e) )

Nit: Missing blank after "while".

> +        {
> +            /*
> +             * Consume a frame per iteration until the reminder is accessible

Nit: remainder?

> +             * or there's nothing left to map.
> +             */
> +            if ( iomem_access_permitted(d, s, s) )
> +            {
> +                rc = iommu_map(d, _dfn(s), _mfn(s), 1, perms,
> +                               &info->flush_flags);
> +                if ( rc < 0 )
> +                    break;
> +                /* Must map a frame at least, which is what we request for. */
> +                ASSERT(rc == 1);
> +                process_pending_softirqs();
> +            }
> +            s++;
> +        }
> +        while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
> +                                perms, &info->flush_flags)) > 0 )
> +        {
> +            s += rc;
> +            process_pending_softirqs();
> +        }
> +    }
> +    ASSERT(rc <= 0);
> +    if ( rc )
> +        printk(XENLOG_WARNING
> +               "IOMMU identity mapping of [%lx, %lx] failed: %ld\n",
> +               s, e, rc);
> +
> +    /* Ignore errors and attempt to map the remaining regions. */
> +    return 0;
> +}
> +
>  void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>  {
>      unsigned long i, top, max_pfn, start, count;
>      unsigned int flush_flags = 0, start_perms = 0;
> +    struct rangeset *map;
> +    struct map_data map_data = { .d = d };
> +    int rc;
>  
>      BUG_ON(!is_hardware_domain(d));
>  
> @@ -397,6 +475,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>      if ( iommu_hwdom_passthrough )
>          return;
>  
> +    map = rangeset_new(NULL, NULL, 0);
> +    if ( !map )
> +        panic("IOMMU init: unable to allocate rangeset\n");
> +
>      max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
>      top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
>  
> @@ -451,8 +533,26 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>              goto commit;
>      }
>  
> +    if ( iommu_verbose )
> +        printk(XENLOG_INFO "%pd: identity mappings for IOMMU:\n", d);
> +
> +    rc = rangeset_report_ranges(map, 0, ~0UL, identity_map, &map_data);
> +    if ( rc )
> +        panic("IOMMU unable to create mappings: %d\n", rc);
> +    rangeset_destroy(map);
> +
> +    if ( is_pv_domain(d) )
> +    {
> +        map_data.mmio_ro = true;
> +        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, identity_map,
> +                                    &map_data);
> +        if ( rc )
> +            panic("IOMMU unable to create read-only mappings: %d\n", rc);
> +    }

As it stands identity_map() deliberately returns no error. Yet here
you panic() in case of receiving an error, despite that being impossible?

Also if we want/need to panic() here, can we avoid having two instances
of almost the same string literal in .rodata? Along the lines of

    rc = rangeset_report_ranges(map, 0, ~0UL, identity_map, &map_data);
    rangeset_destroy(map);
    if ( !rc && is_pv_domain(d) )
    {
        map_data.mmio_ro = true;
        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, identity_map,
                                    &map_data);
    }
    if ( rc )
        panic("IOMMU unable to create %smappings: %d\n",
              map_data.mmio_ro ? "read-only " : "", rc);

?

> +    map_data.flush_flags |= flush_flags;

So you decided to still keep the standalone "flush_flags" around. Is
there a particular reason?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 16:18:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:18:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657017.1025611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcnu-0007XT-8d; Tue, 19 Dec 2023 16:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657017.1025611; Tue, 19 Dec 2023 16: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 1rFcnu-0007XM-5G; Tue, 19 Dec 2023 16:18:46 +0000
Received: by outflank-mailman (input) for mailman id 657017;
 Tue, 19 Dec 2023 16:18:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFcns-0007X7-M4
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:18:44 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4589832f-9e8a-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 17:18:40 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40d3102a2d9so302175e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:18:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p41-20020a05600c1da900b0040b360cc65csm3603004wms.0.2023.12.19.08.18.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:18:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4589832f-9e8a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703002720; x=1703607520; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vPPqqJrUaQkmPcAAtrY5I8vHm8c1EopnsBiEuX5FNJ0=;
        b=efh/6MN77PsCeovm849k56ZlftEUDQVgVw6/nHufbYyIm5jikKA1swIcjuTlptk7vm
         QybfXyw+0itt/hDuYf3YQo+UdJ9y2NZGeoqc/PsRaQMPjLN9MsCwC3c7ueloXMDWv2CP
         SejoeYKY7vNMlhNck0hB//AaBlwphTAXOIB/EeOGprw/UTszt1EFP51JysXC+fEm5TSj
         C1Jy8aLhlBOpC9BGVbYfGUaktbaTyDOx7UJh7Yf3TXMPkU/emFkQabvQIFBN2+yNVHBW
         Xk2VV5SkLYJHSvS6R20alf2RHlSrfU0DcVXk77H9oJtrG/EWOf2K1tayDpPRC7lgLVAJ
         WXRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703002720; x=1703607520;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=vPPqqJrUaQkmPcAAtrY5I8vHm8c1EopnsBiEuX5FNJ0=;
        b=PcC8DMEW3A/DSyKeKUuaH32XR8UQ+alNO3WdwKd6i/JZaNx68eNkszHZIXltP0DPhR
         SQAfZqHuC76Bp2hxxlsfrE53eYHE1AdzfLels7IJVQBMtpWuwwAvSfzQwHFRmmK1O9wW
         k/Y+O4dzNp4UOpxpiaFSN9L7EyUiCKXRbdxYQ8/dJAFj3FeAamdcXb2dQxeSuCDVG+z2
         HFqVkqXZXnwMFvCgQC07IFgu44DTHPmrT4YER3QOMwOUvQo9VIBz+7/AhqaBEtoUNALx
         GdYXdkxnsSMOcuCug6FKZCl0QWbaQxknDVTxj0C7o5gytBH7eOAmkFvMJrqdgQMf+l7e
         8Pjw==
X-Gm-Message-State: AOJu0Yxlu1JNwjeujr3HXqSWOJZxMB5V2ErGOoN+vuqOBlyz9HITWk3d
	jfkyBCRHsNLGowD74fo8uhKi
X-Google-Smtp-Source: AGHT+IGst+B2/ZkiybTVkARVlsNNXcjdRaiz8Ir3iTNW/5UC3Y13whrLXCN1MxKAj4TZ7LvCnXFaHg==
X-Received: by 2002:a05:600c:3ba6:b0:40b:5e21:e27a with SMTP id n38-20020a05600c3ba600b0040b5e21e27amr9764379wms.103.1703002720155;
        Tue, 19 Dec 2023 08:18:40 -0800 (PST)
Message-ID: <2966f31a-8390-46fd-84c5-c424382dff29@suse.com>
Date: Tue, 19 Dec 2023 17:18:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] x86/iommu: remove regions not to be mapped
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-6-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231215141832.9492-6-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2023 15:18, Roger Pau Monne wrote:
> Introduce the code to remove regions not to be mapped from the rangeset
> that will be used to setup the IOMMU page tables for the hardware domain.
> 
> This change also introduces two new functions: remove_xen_ranges() and
> vpci_subtract_mmcfg() that copy the logic in xen_in_range() and
> vpci_is_mmcfg_address() respectively and remove the ranges that would otherwise
> be intercepted by the original functions.
> 
> Note that the rangeset is still not populated.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

> @@ -533,6 +541,62 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>              goto commit;
>      }
>  
> +    /* Remove any areas in-use by Xen. */
> +    rc = remove_xen_ranges(map);
> +    if ( rc )
> +        panic("IOMMU failed to remove Xen ranges: %d\n", rc);
> +
> +    /* Remove any overlap with the Interrupt Address Range. */
> +    rc = rangeset_remove_range(map, 0xfee00, 0xfeeff);
> +    if ( rc )
> +        panic("IOMMU failed to remove Interrupt Address Range: %d\n",
> +              rc);
> +
> +    /* If emulating IO-APIC(s) make sure the base address is unmapped. */
> +    if ( has_vioapic(d) )
> +    {
> +        for ( i = 0; i < d->arch.hvm.nr_vioapics; i++ )
> +        {
> +            rc = rangeset_remove_singleton(map,
> +                PFN_DOWN(domain_vioapic(d, i)->base_address));
> +            if ( rc )
> +                panic("IOMMU failed to remove IO-APIC: %d\n",
> +                      rc);
> +        }
> +    }
> +
> +    if ( is_pv_domain(d) )
> +    {
> +        /*
> +         * Be consistent with CPU mappings: Dom0 is permitted to establish r/o
> +         * ones there (also for e.g. HPET in certain cases), so it should also
> +         * have such established for IOMMUs.  Remove any read-only ranges here,
> +         * since ranges in mmio_ro_ranges are already explicitly mapped below
> +         * in read-only mode.
> +         */
> +        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, map_subtract, map);

I find it a little odd that you iterate over mmio_ro_ranges twice (once
here, once in what the earlier patch added), but I guess overall it's
easier this way.

Also, nit: Either this line is too long, or ...

> +        if ( rc )
> +            panic("IOMMU failed to remove read-only regions: %d\n",
> +                  rc);

... there's no need to wrap lines here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 16:21:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:21:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657019.1025621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcqq-0002N1-NC; Tue, 19 Dec 2023 16:21:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657019.1025621; Tue, 19 Dec 2023 16:21: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 1rFcqq-0002Mu-Js; Tue, 19 Dec 2023 16:21:48 +0000
Received: by outflank-mailman (input) for mailman id 657019;
 Tue, 19 Dec 2023 16:21: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFcqo-0002KD-Rf
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:21:46 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b33ebe51-9e8a-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 17:21:44 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c39ef63d9so52074955e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:21:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 az33-20020a05600c602100b0040c4620b9fasm3730457wmb.11.2023.12.19.08.21.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:21:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b33ebe51-9e8a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703002904; x=1703607704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=yn8zb5C4LxdnsOqV1h6YXY+UhNcLJCQJ+hVkRFyiQkw=;
        b=aaZB3YnL3Qu1ytIPvdUSVKfjsmg9uTHEFG957tSjT9X04miJof+C3sPVmxJh434Fuy
         TnYY6j7AOWi8GPMPvcZ4Enn+guNJETI4bFXGTZ1HZ4pPiB2ejwbhJfrQTOAYDLvm/lF7
         /KDkR6qSVjh4uNo4gNUgJXdCFXvoNHARSJ8iCqXGZfdCRVO2xlOEPt/HLtEXOHLWwxCG
         K/Stnik2QVQgJ8YmqBjouw4LfA114OVPokyUCHmbmtWL5+0nSt3oPf9zpW6h55w0pbqm
         c/KXwgEm3Z78RF6REby9NwfOGmwqmsnKSYqwWs9T92yRX2/RVnnxu60L/iKz5khD9OXN
         RvWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703002904; x=1703607704;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=yn8zb5C4LxdnsOqV1h6YXY+UhNcLJCQJ+hVkRFyiQkw=;
        b=JlYJH75C2Ozttm9R+Zkif8oFpljqfSevByZcDYRcAeTr/loFHphMsqXpSUz7Y6Nc3p
         NffVlhZFWQQTZcKRN949re/L6BCToa2iq8+GR33QY6lIvJSkK2Gjx++YlVOXhPhtCybY
         CfXMePYpuBj3GV6HxMtVbp2+vEplzhLpER3jIn66cY8ryxfAunTJ5hkVYv5g8vKvf6EJ
         +LyKhnb4JxG9tmqtsSo07gl8vEhY+g9vUEsm2rn2GEV0LxkfCAZEjZynFisa/mrRGS0d
         LR1Y+xhjtMxo0+ZrW6zOW6NtkjdJLo9RyHdEfiGPSloBIrOQhoU8BFL5QEpnD/deI1HF
         kxJg==
X-Gm-Message-State: AOJu0YxBySNPLrJt9/E++f/4zddJcGFMWv4ZaaH4GKZa92FdQG/SzG/F
	2cL2QFEN+6F4lG/5MjCffd8D
X-Google-Smtp-Source: AGHT+IHJnK3W83jNQCXw9DSd8L1bAQT9Mss8NDfFL9XDCEjoAvNjV1uxxReDe/fEat9DPXw4WGJTtw==
X-Received: by 2002:a05:600c:500a:b0:40d:1744:6eed with SMTP id n10-20020a05600c500a00b0040d17446eedmr2333454wmr.103.1703002904240;
        Tue, 19 Dec 2023 08:21:44 -0800 (PST)
Message-ID: <595ffb2b-0676-4988-b1c2-d8fb67359330@suse.com>
Date: Tue, 19 Dec 2023 17:21:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/7] x86/iommu: switch hwdom IOMMU to use a rangeset
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-7-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231215141832.9492-7-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2023 15:18, Roger Pau Monne wrote:
> The current loop that iterates from 0 to the maximum RAM address in order to
> setup the IOMMU mappings is highly inefficient, and it will get worse as the
> amount of RAM increases.  It's also not accounting for any reserved regions
> past the last RAM address.
> 
> Instead of iterating over memory addresses, iterate over the memory map regions
> and use a rangeset in order to keep track of which ranges need to be identity
> mapped in the hardware domain physical address space.
> 
> On an AMD EPYC 7452 with 512GiB of RAM, the time to execute
> arch_iommu_hwdom_init() in nanoseconds is:
> 
> x old
> + new
>     N           Min           Max        Median           Avg        Stddev
> x   5 2.2364154e+10  2.338244e+10 2.2474685e+10 2.2622409e+10 4.2949869e+08
> +   5       1025012       1033036       1026188     1028276.2     3623.1194
> Difference at 95.0% confidence
>         -2.26214e+10 +/- 4.42931e+08
>         -99.9955% +/- 9.05152e-05%
>         (Student's t, pooled s = 3.03701e+08)
> 
> Execution time of arch_iommu_hwdom_init() goes down from ~22s to ~0.001s.
> 
> Note there's a change for HVM domains (ie: PVH dom0) that get switched to
> create the p2m mappings using map_mmio_regions() instead of
> p2m_add_identity_entry(), so that ranges can be mapped with a single function
> call if possible.  Note that the interface of map_mmio_regions() doesn't
> allow creating read-only mappings, but so far there are no such mappings
> created for PVH dom0 in arch_iommu_hwdom_init().
> 
> No change intended in the resulting mappings that a hardware domain gets.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

> @@ -487,58 +416,45 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>      if ( !map )
>          panic("IOMMU init: unable to allocate rangeset\n");
>  
> -    max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
> -    top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
> +    if ( iommu_hwdom_inclusive )
> +    {
> +        /* Add the whole range below 4GB, UNUSABLE regions will be removed. */
> +        rc = rangeset_add_range(map, 0, PFN_DOWN(GB(4)) - 1);
> +        if ( rc )
> +            panic("IOMMU inclusive mappings can't be added: %d\n",
> +                  rc);

As in the earlier patch, perhaps no need to wrap lines here (and again
further down)?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 16:24:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:24:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657024.1025631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcsz-0003sh-7H; Tue, 19 Dec 2023 16:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657024.1025631; Tue, 19 Dec 2023 16: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 1rFcsz-0003sa-4B; Tue, 19 Dec 2023 16:24:01 +0000
Received: by outflank-mailman (input) for mailman id 657024;
 Tue, 19 Dec 2023 16: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFcsx-0003sU-Tu
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:23:59 +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 033ccad4-9e8b-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 17:23:58 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3367632ce7bso435495f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:23:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 z3-20020adfec83000000b0033676f9e4cbsm625678wrn.36.2023.12.19.08.23.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:23:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 033ccad4-9e8b-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703003038; x=1703607838; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zoj6+varfKGT2kHc4ZbbguG1N80tdkubtxBSA/xNDS8=;
        b=T9/1g96h0QcTpypaRgyokL5IENw5QhM56b7uVTGsTVNdvUgv76pNcpWyrjYhdMOw1z
         hU3qStiSXGdar92cwnHdSdBdon62yDI9ekIqOr4jyG1MjnXt3zVbUX6lYLX66ilepf5t
         qMpoCvCSc3Y//fwKCjq4nEtUwhXJYFXRdOqxvD0dvcdD4/L8Bt0Nr5XmlmlMjUgW6bkE
         V9xIh1P2fGuaJW07x3/OEcSYXwCGn77ez6vAqb592WIb3GQnuZDdKVSuWds1fCuhV4Le
         ncyhSffYC4sXJKP4oLlfSi7GZjUMUE9BfcemIWCFPDkXFDCA2UTO/oUedPiRHtXFQTq5
         TAUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703003038; x=1703607838;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=zoj6+varfKGT2kHc4ZbbguG1N80tdkubtxBSA/xNDS8=;
        b=VSjCaLThLQ3BM2Y/5Z4d6fmg0QYZ2ZDdKRBTc1VVf98YoH6cPlz9VolAaXADla438e
         p2s9w7sPOsB679ufrvXe72dU8zNUCUVz22B8+L3fNCZd4kz/XEC6FuZdcNF4NusolGZf
         3fNkGDwEoFKK2RujZ6oc1kuzMXBiJFmUVI92vZUB6GIKRQuDZcYaIABC8cGqES2gL6cM
         ssOkLiM4OT8nNyzJd3QmM252d2YQaM548EIzSNjLdPkyfp2/byR7fHG8qwVtfoCd6qix
         b37kSLVVpwTIaJqU9R784uK/+KFoiIXG17v6d7QroHwUCWSjq/Nhnf85fblooc/NRGmh
         Id+Q==
X-Gm-Message-State: AOJu0Yzc8Jworzxcklt8EZWWQnYy+2YKea4AuSmy4ksIxxWw54ZUKDV3
	1El3+hh6fsdFbOpGpD8MSrTO
X-Google-Smtp-Source: AGHT+IFvFelU4q0InQyzPAbbQPJ7Flb+BD/6jQvaioOm6WoJD4Mc3mF74Sl8xLuTLP+uxSkpU4ZNCg==
X-Received: by 2002:a05:6000:1d97:b0:333:2fd2:8163 with SMTP id bk23-20020a0560001d9700b003332fd28163mr10399768wrb.128.1703003038305;
        Tue, 19 Dec 2023 08:23:58 -0800 (PST)
Message-ID: <02a8e90e-dc4b-4fda-a2a7-50c12d356c63@suse.com>
Date: Tue, 19 Dec 2023 17:23:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] x86/iommu: cleanup unused functions
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Liu <wl@xen.org>, Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 xen-devel@lists.xenproject.org
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-8-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231215141832.9492-8-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2023 15:18, Roger Pau Monne wrote:
> Remove xen_in_range() and vpci_is_mmcfg_address() now that hey are unused.
> 
> Adjust comments to point to the new functions that replace the existing ones.

And because of this affecting what was done earlier in the series, perhaps
best if patches 5-7 would be committed together.

> No functional change.
> 
> 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 Dec 19 16:25:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:25:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657027.1025641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcue-0004R9-Id; Tue, 19 Dec 2023 16:25:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657027.1025641; Tue, 19 Dec 2023 16:25:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcue-0004R2-Eu; Tue, 19 Dec 2023 16:25:44 +0000
Received: by outflank-mailman (input) for mailman id 657027;
 Tue, 19 Dec 2023 16:25: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFcud-0004Qw-7B
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:25:43 +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 40e4f26f-9e8b-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 17:25:42 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3365f1326e4so3432620f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:25:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 f10-20020adff8ca000000b003365951cef9sm11406140wrq.55.2023.12.19.08.25.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:25:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 40e4f26f-9e8b-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703003142; x=1703607942; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=3tdhlgde800NZLfZzsrYjg63B35CFCzShpO3xhfVbq0=;
        b=HUU67EdCaG3A8Up4CxAeJ6oRPiXq7TQkZ3GKg1SqHs3YrWeGxeiZyEbIbds68ceKBL
         ohFUxjfYl3M+s84KIyoC2eMEijCJ5//hkKXK3LFBOR9As++ptmB2lIbxpDgV0d42FsDH
         NbirrpPg+3GPbPv/Wt98qJ/XKwJU1G8oT/LrXfenwv3NsIWPAK4O3V37YcQfiJndsFZq
         6es6cmDTjgA5upSGx2JUpXEtM5BW4YzVW6Uvo/gklGNcU4rLTBgxQcRQRdZV4oKN1q8C
         RtiHFUwyGCWSX9Wd99vCvIy9M5gYGjOvTdAtUdPaJFWkUuM6Dv+6COa3dzXcd7r9nH3N
         ezzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703003142; x=1703607942;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=3tdhlgde800NZLfZzsrYjg63B35CFCzShpO3xhfVbq0=;
        b=lGv/yc9xsSNeExXQedeYyP9Li+t8IMhHhDcxme6D6M4Kykt1QWVSVFTuIJhV6QA+Lp
         /wzqkhHIRmiQMVCytl98zBDcXw/MdkpIHISCF2JqdbIXXErybqaQ3jH6lfA3KorqXBs7
         cPdTxP2suKKBHlLvxk5ZTZ/q3Hnno95KvUTcsyezRcgD1nq34Axosg3mYiDxZnMaO0yK
         93W1Adn9wfzo89WjNs/H+fk701JC/gxqj7NJeFWbRHmexifhNtZ0yPbl9Mm6gDGPB4vx
         hSQHRRabmw0dejoF3J/YCD57UDxYkBk8+uCp1PP1bc1g8tWPSf/WdffAiHW67FzmZX5Q
         cIrQ==
X-Gm-Message-State: AOJu0YxYvoB3qYhaSiIaBFuYi6jYBNJ0em8CB3WrhJ46NI6vJ1tplUjS
	/AftivFOZGOQ2VqbGknDxANK
X-Google-Smtp-Source: AGHT+IHlnzcpoS7Qs5ZumHvRrWQJ5MoPu5VSeI92nYQk+5Hh3xj1qRW/c2NSsVkNlL6FyU8j8BPvZw==
X-Received: by 2002:adf:fa45:0:b0:336:6690:6d0 with SMTP id y5-20020adffa45000000b00336669006d0mr2139318wrr.76.1703003141757;
        Tue, 19 Dec 2023 08:25:41 -0800 (PST)
Message-ID: <8005ecca-0ffc-4933-8d8f-03829fc67a3a@suse.com>
Date: Tue, 19 Dec 2023 17:25:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] xen/common: address violations of MISRA C:2012
 Rule 11.8
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>
Cc: consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 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>,
 xen-devel@lists.xenproject.org
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
 <df682e995b726b5f7ba8af0f69bb888c398eac96.1702982442.git.maria.celeste.cesario@bugseng.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: <df682e995b726b5f7ba8af0f69bb888c398eac96.1702982442.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 12:05, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Change cast type from void* to uintptr_t.
> void* type cast resulted in violation of the Rule, a cast to type uintptr_t
> is more appropriate type-wise.
> 
> Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
> Signed-off-by: Simone Ballarin  <simone.ballarin@bugseng.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 19 16:26:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:26:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657030.1025651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFcvR-0004zf-TB; Tue, 19 Dec 2023 16:26:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657030.1025651; Tue, 19 Dec 2023 16: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 1rFcvR-0004zP-PA; Tue, 19 Dec 2023 16:26:33 +0000
Received: by outflank-mailman (input) for mailman id 657030;
 Tue, 19 Dec 2023 16:26: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=sjQj=H6=gmail.com=j.tretter@srs-se1.protection.inumbo.net>)
 id 1rFcvP-0004Qw-RI
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:26:32 +0000
Received: from mail-oa1-x2a.google.com (mail-oa1-x2a.google.com
 [2001:4860:4864:20::2a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5cf8313f-9e8b-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 17:26:30 +0100 (CET)
Received: by mail-oa1-x2a.google.com with SMTP id
 586e51a60fabf-20403a18a51so5802fac.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:26:30 -0800 (PST)
Received: from ?IPV6:2603:8080:a900:257c::1000?
 (2603-8080-a900-257c-0000-0000-0000-1000.res6.spectrum.com.
 [2603:8080:a900:257c::1000]) by smtp.gmail.com with ESMTPSA id
 sk9-20020a056871800900b001fb238f7e08sm7089336oab.38.2023.12.19.08.26.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:26:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 5cf8313f-9e8b-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703003189; x=1703607989; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:sender:from:to:cc:subject
         :date:message-id:reply-to;
        bh=tkzFFfkTjtf6y9YzcEGZO/Z4rCSZgPmshpySPtLiriY=;
        b=GZbEIFS0ewZXDu+GTkf/G/Q9wtZsD5Bv1Br2DvqaAqRPOx5Qz/XrvzE9o03fQjGYsc
         nxAfvRwNUEc/JmFteJmYbBK4EC/AVH3LMp5e5UePkeddK1o3KzuOeWkrAACuuCu2xn9p
         aO+XkIw5RnyC3SE42ZjyCwir7Z7mZlxuwZ4FfuFL8jD3naSuLbKPY16A7ILZLwwfluzC
         8wlKMQRbA9xFRYfUDXsDM9Tio++75GS5k88ej9ErXo5Wo646GS+VZNgWVR8TqXI4YwNT
         Ly9b5Aw23BBDC7yuDXTi6jorpoSENsgRzhZLIFBmhXc5t+LnyME6h1qkg6NG+WtSfc7R
         Ciww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703003189; x=1703607989;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:sender:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=tkzFFfkTjtf6y9YzcEGZO/Z4rCSZgPmshpySPtLiriY=;
        b=KxGpegNZi+neDnpz7XalQje3xCytaohbIO422bBkpxIkVS5mGAJdW+oUdTBxRiIrcg
         7r+VzJ37un8OZZLAE2Qho0FiXFb3cVzK1rOPw8kMSChhyZ+gXIGCyqP/p0/1Xlp/KkDq
         gKMWcXXAS63GrsTFCgJBtpwZwuqYUZdUbO3BPecC4wWunPKEwn08OmJC4Hwv5TCoOoR0
         0Tkd06cao4n58XpDFo9PaSmETjOyVs1QNut9oFhyVLlbTwWVKHoFbgT0fgQjWGjwBxSF
         9H3a4Y7Ow28iy2rLFKJkq7kIg6fzOq/BuhsnNhPPNCr2MERJcTsDaeODCJ+V/PQdpiw2
         J9aw==
X-Gm-Message-State: AOJu0YxvwZeUUbFiVrGsf2ln4bDF6cAd5WUTJBKp67giZQaa9jnRbdIV
	bW0a0xTWwGiIQrpK9zftqeM=
X-Google-Smtp-Source: AGHT+IFJXQopCeFuVjH/jG7mDcLya0YB/Z+QCmdaRGyF+oDrVYR4yUmhgDQYwYVfQmKWMBYE46n+3Q==
X-Received: by 2002:a05:6870:e85:b0:203:94eb:8395 with SMTP id mm5-20020a0568700e8500b0020394eb8395mr7313170oab.2.1703003188468;
        Tue, 19 Dec 2023 08:26:28 -0800 (PST)
Sender: Joe Tretter <joerg.tretter@gmail.com>
Content-Type: multipart/mixed; boundary="------------8ToMn0Vzatl0AxxtnjtAzgPi"
Message-ID: <15ece71b-d1d1-49d8-b937-f697b50fac39@gmail.com>
Date: Tue, 19 Dec 2023 10:28:30 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Joe Tretter <j.tretter@gmail.com>
Subject: Re: Possible bug in Xen
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <de8b87e2-a4a2-4e49-80f5-97c745f46500@gmail.com>
 <9cc86706-5791-4967-802c-3e665bc97804@citrix.com>
 <a0aa0326-398f-44a1-a5df-fde3e7fea138@gmail.com>
 <cd153225-5cef-4ff5-97e3-44e485c12305@citrix.com>
 <e787b9ba-7a30-4804-b64e-ef56c71f5ed3@gmail.com>
 <caf76de4-89f5-4ce4-b1e3-1de7a21325dc@citrix.com>
Content-Language: en-US
In-Reply-To: <caf76de4-89f5-4ce4-b1e3-1de7a21325dc@citrix.com>

This is a multi-part message in MIME format.
--------------8ToMn0Vzatl0AxxtnjtAzgPi
Content-Type: multipart/alternative;
 boundary="------------5hULTipFeDydNsKVxaAtOYNC"

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

On 12/19/23 10:05, Andrew Cooper wrote:
> Is it always the same test which fails, or is it random?
Which test fails seems to be random (see attached screenshot).
> Looking athttps://github.com/Tarsnap/scrypt  it's only a trivial piece
> of userspace crypto.
>
> The fact that running multiple instances makes it fail more easily
> points towards some kind of register handling issue, but the fact that
> it repros only under Xen, and even with eager-fpu (which isn't the
> default on AMD, sadly), is weird.
>
> Looking at the scrypt source, it has alternative routines for the AESNI
> and SHANI instruction groups.Â  However, because it's a Zen1, we don't
> have a useful way of filtering visible for PV dom0 userspace.
>
> First of all, can you get the exact CPU model and microcode version.
> `head /proc/cpuinfo` will be enough.Â  But while you're at it, can you
> include `xl dmesg` too just in case there's something obvious showing up
> there too.
>
I have attachted text files with the (full) cpuinfo and the dmesg.

Thanks

~Joe
--------------5hULTipFeDydNsKVxaAtOYNC
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html data-lt-installed="true">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    On 12/19/23 10:05, Andrew Cooper wrote:<br>
    <blockquote type="cite"
      cite="mid:caf76de4-89f5-4ce4-b1e3-1de7a21325dc@citrix.com"><span
      style="white-space: pre-wrap">
</span>
      <pre class="moz-quote-pre" wrap="">Is it always the same test which fails, or is it random?</pre>
    </blockquote>
    Which test fails seems to be random (see attached screenshot).<br>
    <blockquote type="cite"
      cite="mid:caf76de4-89f5-4ce4-b1e3-1de7a21325dc@citrix.com">
      <pre class="moz-quote-pre" wrap="">Looking at <a
      class="moz-txt-link-freetext"
      href="https://github.com/Tarsnap/scrypt">https://github.com/Tarsnap/scrypt</a> it's only a trivial piece
of userspace crypto.

The fact that running multiple instances makes it fail more easily
points towards some kind of register handling issue, but the fact that
it repros only under Xen, and even with eager-fpu (which isn't the
default on AMD, sadly), is weird.

Looking at the scrypt source, it has alternative routines for the AESNI
and SHANI instruction groups.Â  However, because it's a Zen1, we don't
have a useful way of filtering visible for PV dom0 userspace.

First of all, can you get the exact CPU model and microcode version.Â 
`head /proc/cpuinfo` will be enough.Â  But while you're at it, can you
include `xl dmesg` too just in case there's something obvious showing up
there too.

</pre>
    </blockquote>
    <blockquote type="cite"
      cite="mid:caf76de4-89f5-4ce4-b1e3-1de7a21325dc@citrix.com"> </blockquote>
    I have attachted text files with the (full) cpuinfo and the dmesg.<br>
    <br>
    Thanks<br>
    <br>
    ~Joe<br>
    <lt-container></lt-container>
  </body>
</html>

--------------5hULTipFeDydNsKVxaAtOYNC--
--------------8ToMn0Vzatl0AxxtnjtAzgPi
Content-Type: text/plain; charset=UTF-8; name="cpuinfo.txt"
Content-Disposition: attachment; filename="cpuinfo.txt"
Content-Transfer-Encoding: base64

cHJvY2Vzc29yCTogMAp2ZW5kb3JfaWQJOiBBdXRoZW50aWNBTUQKY3B1IGZhbWlseQk6IDIz
Cm1vZGVsCQk6IDEKbW9kZWwgbmFtZQk6IEFNRCBSeXplbiA3IDE3MDAgRWlnaHQtQ29yZSBQ
cm9jZXNzb3IKc3RlcHBpbmcJOiAxCm1pY3JvY29kZQk6IDB4ODAwMTEyOQpjcHUgTUh6CQk6
IDI5OTQuNDA4CmNhY2hlIHNpemUJOiA1MTIgS0IKcGh5c2ljYWwgaWQJOiAwCnNpYmxpbmdz
CTogOApjb3JlIGlkCQk6IDAKY3B1IGNvcmVzCTogOAphcGljaWQJCTogMAppbml0aWFsIGFw
aWNpZAk6IDAKZnB1CQk6IHllcwpmcHVfZXhjZXB0aW9uCTogeWVzCmNwdWlkIGxldmVsCTog
MTMKd3AJCTogeWVzCmZsYWdzCQk6IGZwdSBkZSB0c2MgbXNyIHBhZSBtY2UgY3g4IGFwaWMg
bWNhIGNtb3YgcGF0IGNsZmx1c2ggbW14IGZ4c3Igc3NlIHNzZTIgaHQgc3lzY2FsbCBueCBt
bXhleHQgZnhzcl9vcHQgcmR0c2NwIGxtIGNvbnN0YW50X3RzYyByZXBfZ29vZCBub3BsIG5v
bnN0b3BfdHNjIGNwdWlkIGV4dGRfYXBpY2lkIHRzY19rbm93bl9mcmVxIHBuaSBwY2xtdWxx
ZHEgc3NzZTMgZm1hIGN4MTYgc3NlNF8xIHNzZTRfMiBtb3ZiZSBwb3BjbnQgYWVzIHhzYXZl
IGF2eCBmMTZjIHJkcmFuZCBoeXBlcnZpc29yIGxhaGZfbG0gY21wX2xlZ2FjeSBhYm0gc3Nl
NGEgbWlzYWxpZ25zc2UgM2Rub3dwcmVmZXRjaCBicGV4dCBzc2JkIHZtbWNhbGwgZnNnc2Jh
c2UgYm1pMSBhdngyIGJtaTIgcmRzZWVkIGFkeCBjbGZsdXNob3B0IHNoYV9uaSB4c2F2ZW9w
dCB4c2F2ZWMgeGdldGJ2MSBjbHplcm8geHNhdmVlcnB0ciBhcmF0CmJ1Z3MJCTogbnVsbF9z
ZWcgc3BlY3RyZV92MSBzcGVjdHJlX3YyIHNwZWNfc3RvcmVfYnlwYXNzIHJldGJsZWVkIHNt
dF9yc2Igc3JzbyBkaXYwCmJvZ29taXBzCTogNTk4OC43NApUTEIgc2l6ZQk6IDI1NjAgNEsg
cGFnZXMKY2xmbHVzaCBzaXplCTogNjQKY2FjaGVfYWxpZ25tZW50CTogNjQKYWRkcmVzcyBz
aXplcwk6IDQzIGJpdHMgcGh5c2ljYWwsIDQ4IGJpdHMgdmlydHVhbApwb3dlciBtYW5hZ2Vt
ZW50OgoKcHJvY2Vzc29yCTogMQp2ZW5kb3JfaWQJOiBBdXRoZW50aWNBTUQKY3B1IGZhbWls
eQk6IDIzCm1vZGVsCQk6IDEKbW9kZWwgbmFtZQk6IEFNRCBSeXplbiA3IDE3MDAgRWlnaHQt
Q29yZSBQcm9jZXNzb3IKc3RlcHBpbmcJOiAxCm1pY3JvY29kZQk6IDB4ODAwMTEyOQpjcHUg
TUh6CQk6IDI5OTQuNDA4CmNhY2hlIHNpemUJOiA1MTIgS0IKcGh5c2ljYWwgaWQJOiAwCnNp
YmxpbmdzCTogOApjb3JlIGlkCQk6IDAKY3B1IGNvcmVzCTogOAphcGljaWQJCTogMAppbml0
aWFsIGFwaWNpZAk6IDAKZnB1CQk6IHllcwpmcHVfZXhjZXB0aW9uCTogeWVzCmNwdWlkIGxl
dmVsCTogMTMKd3AJCTogeWVzCmZsYWdzCQk6IGZwdSBkZSB0c2MgbXNyIHBhZSBtY2UgY3g4
IGFwaWMgbWNhIGNtb3YgcGF0IGNsZmx1c2ggbW14IGZ4c3Igc3NlIHNzZTIgaHQgc3lzY2Fs
bCBueCBtbXhleHQgZnhzcl9vcHQgcmR0c2NwIGxtIGNvbnN0YW50X3RzYyByZXBfZ29vZCBu
b3BsIG5vbnN0b3BfdHNjIGNwdWlkIGV4dGRfYXBpY2lkIHRzY19rbm93bl9mcmVxIHBuaSBw
Y2xtdWxxZHEgc3NzZTMgZm1hIGN4MTYgc3NlNF8xIHNzZTRfMiBtb3ZiZSBwb3BjbnQgYWVz
IHhzYXZlIGF2eCBmMTZjIHJkcmFuZCBoeXBlcnZpc29yIGxhaGZfbG0gY21wX2xlZ2FjeSBh
Ym0gc3NlNGEgbWlzYWxpZ25zc2UgM2Rub3dwcmVmZXRjaCBicGV4dCBzc2JkIHZtbWNhbGwg
ZnNnc2Jhc2UgYm1pMSBhdngyIGJtaTIgcmRzZWVkIGFkeCBjbGZsdXNob3B0IHNoYV9uaSB4
c2F2ZW9wdCB4c2F2ZWMgeGdldGJ2MSBjbHplcm8geHNhdmVlcnB0ciBhcmF0CmJ1Z3MJCTog
bnVsbF9zZWcgc3BlY3RyZV92MSBzcGVjdHJlX3YyIHNwZWNfc3RvcmVfYnlwYXNzIHJldGJs
ZWVkIHNtdF9yc2Igc3JzbyBkaXYwCmJvZ29taXBzCTogNTk4OC43NApUTEIgc2l6ZQk6IDI1
NjAgNEsgcGFnZXMKY2xmbHVzaCBzaXplCTogNjQKY2FjaGVfYWxpZ25tZW50CTogNjQKYWRk
cmVzcyBzaXplcwk6IDQzIGJpdHMgcGh5c2ljYWwsIDQ4IGJpdHMgdmlydHVhbApwb3dlciBt
YW5hZ2VtZW50OgoKcHJvY2Vzc29yCTogMgp2ZW5kb3JfaWQJOiBBdXRoZW50aWNBTUQKY3B1
IGZhbWlseQk6IDIzCm1vZGVsCQk6IDEKbW9kZWwgbmFtZQk6IEFNRCBSeXplbiA3IDE3MDAg
RWlnaHQtQ29yZSBQcm9jZXNzb3IKc3RlcHBpbmcJOiAxCm1pY3JvY29kZQk6IDB4ODAwMTEy
OQpjcHUgTUh6CQk6IDI5OTQuNDA4CmNhY2hlIHNpemUJOiA1MTIgS0IKcGh5c2ljYWwgaWQJ
OiAwCnNpYmxpbmdzCTogOApjb3JlIGlkCQk6IDAKY3B1IGNvcmVzCTogOAphcGljaWQJCTog
MAppbml0aWFsIGFwaWNpZAk6IDAKZnB1CQk6IHllcwpmcHVfZXhjZXB0aW9uCTogeWVzCmNw
dWlkIGxldmVsCTogMTMKd3AJCTogeWVzCmZsYWdzCQk6IGZwdSBkZSB0c2MgbXNyIHBhZSBt
Y2UgY3g4IGFwaWMgbWNhIGNtb3YgcGF0IGNsZmx1c2ggbW14IGZ4c3Igc3NlIHNzZTIgaHQg
c3lzY2FsbCBueCBtbXhleHQgZnhzcl9vcHQgcmR0c2NwIGxtIGNvbnN0YW50X3RzYyByZXBf
Z29vZCBub3BsIG5vbnN0b3BfdHNjIGNwdWlkIGV4dGRfYXBpY2lkIHRzY19rbm93bl9mcmVx
IHBuaSBwY2xtdWxxZHEgc3NzZTMgZm1hIGN4MTYgc3NlNF8xIHNzZTRfMiBtb3ZiZSBwb3Bj
bnQgYWVzIHhzYXZlIGF2eCBmMTZjIHJkcmFuZCBoeXBlcnZpc29yIGxhaGZfbG0gY21wX2xl
Z2FjeSBhYm0gc3NlNGEgbWlzYWxpZ25zc2UgM2Rub3dwcmVmZXRjaCBicGV4dCBzc2JkIHZt
bWNhbGwgZnNnc2Jhc2UgYm1pMSBhdngyIGJtaTIgcmRzZWVkIGFkeCBjbGZsdXNob3B0IHNo
YV9uaSB4c2F2ZW9wdCB4c2F2ZWMgeGdldGJ2MSBjbHplcm8geHNhdmVlcnB0ciBhcmF0CmJ1
Z3MJCTogbnVsbF9zZWcgc3BlY3RyZV92MSBzcGVjdHJlX3YyIHNwZWNfc3RvcmVfYnlwYXNz
IHJldGJsZWVkIHNtdF9yc2Igc3JzbyBkaXYwCmJvZ29taXBzCTogNTk4OC43NApUTEIgc2l6
ZQk6IDI1NjAgNEsgcGFnZXMKY2xmbHVzaCBzaXplCTogNjQKY2FjaGVfYWxpZ25tZW50CTog
NjQKYWRkcmVzcyBzaXplcwk6IDQzIGJpdHMgcGh5c2ljYWwsIDQ4IGJpdHMgdmlydHVhbApw
b3dlciBtYW5hZ2VtZW50OgoKcHJvY2Vzc29yCTogMwp2ZW5kb3JfaWQJOiBBdXRoZW50aWNB
TUQKY3B1IGZhbWlseQk6IDIzCm1vZGVsCQk6IDEKbW9kZWwgbmFtZQk6IEFNRCBSeXplbiA3
IDE3MDAgRWlnaHQtQ29yZSBQcm9jZXNzb3IKc3RlcHBpbmcJOiAxCm1pY3JvY29kZQk6IDB4
ODAwMTEyOQpjcHUgTUh6CQk6IDI5OTQuNDA4CmNhY2hlIHNpemUJOiA1MTIgS0IKcGh5c2lj
YWwgaWQJOiAwCnNpYmxpbmdzCTogOApjb3JlIGlkCQk6IDAKY3B1IGNvcmVzCTogOAphcGlj
aWQJCTogMAppbml0aWFsIGFwaWNpZAk6IDAKZnB1CQk6IHllcwpmcHVfZXhjZXB0aW9uCTog
eWVzCmNwdWlkIGxldmVsCTogMTMKd3AJCTogeWVzCmZsYWdzCQk6IGZwdSBkZSB0c2MgbXNy
IHBhZSBtY2UgY3g4IGFwaWMgbWNhIGNtb3YgcGF0IGNsZmx1c2ggbW14IGZ4c3Igc3NlIHNz
ZTIgaHQgc3lzY2FsbCBueCBtbXhleHQgZnhzcl9vcHQgcmR0c2NwIGxtIGNvbnN0YW50X3Rz
YyByZXBfZ29vZCBub3BsIG5vbnN0b3BfdHNjIGNwdWlkIGV4dGRfYXBpY2lkIHRzY19rbm93
bl9mcmVxIHBuaSBwY2xtdWxxZHEgc3NzZTMgZm1hIGN4MTYgc3NlNF8xIHNzZTRfMiBtb3Zi
ZSBwb3BjbnQgYWVzIHhzYXZlIGF2eCBmMTZjIHJkcmFuZCBoeXBlcnZpc29yIGxhaGZfbG0g
Y21wX2xlZ2FjeSBhYm0gc3NlNGEgbWlzYWxpZ25zc2UgM2Rub3dwcmVmZXRjaCBicGV4dCBz
c2JkIHZtbWNhbGwgZnNnc2Jhc2UgYm1pMSBhdngyIGJtaTIgcmRzZWVkIGFkeCBjbGZsdXNo
b3B0IHNoYV9uaSB4c2F2ZW9wdCB4c2F2ZWMgeGdldGJ2MSBjbHplcm8geHNhdmVlcnB0ciBh
cmF0CmJ1Z3MJCTogbnVsbF9zZWcgc3BlY3RyZV92MSBzcGVjdHJlX3YyIHNwZWNfc3RvcmVf
YnlwYXNzIHJldGJsZWVkIHNtdF9yc2Igc3JzbyBkaXYwCmJvZ29taXBzCTogNTk4OC43NApU
TEIgc2l6ZQk6IDI1NjAgNEsgcGFnZXMKY2xmbHVzaCBzaXplCTogNjQKY2FjaGVfYWxpZ25t
ZW50CTogNjQKYWRkcmVzcyBzaXplcwk6IDQzIGJpdHMgcGh5c2ljYWwsIDQ4IGJpdHMgdmly
dHVhbApwb3dlciBtYW5hZ2VtZW50OgoKcHJvY2Vzc29yCTogNAp2ZW5kb3JfaWQJOiBBdXRo
ZW50aWNBTUQKY3B1IGZhbWlseQk6IDIzCm1vZGVsCQk6IDEKbW9kZWwgbmFtZQk6IEFNRCBS
eXplbiA3IDE3MDAgRWlnaHQtQ29yZSBQcm9jZXNzb3IKc3RlcHBpbmcJOiAxCm1pY3JvY29k
ZQk6IDB4ODAwMTEyOQpjcHUgTUh6CQk6IDI5OTQuNDA4CmNhY2hlIHNpemUJOiA1MTIgS0IK
cGh5c2ljYWwgaWQJOiAwCnNpYmxpbmdzCTogOApjb3JlIGlkCQk6IDAKY3B1IGNvcmVzCTog
OAphcGljaWQJCTogMAppbml0aWFsIGFwaWNpZAk6IDAKZnB1CQk6IHllcwpmcHVfZXhjZXB0
aW9uCTogeWVzCmNwdWlkIGxldmVsCTogMTMKd3AJCTogeWVzCmZsYWdzCQk6IGZwdSBkZSB0
c2MgbXNyIHBhZSBtY2UgY3g4IGFwaWMgbWNhIGNtb3YgcGF0IGNsZmx1c2ggbW14IGZ4c3Ig
c3NlIHNzZTIgaHQgc3lzY2FsbCBueCBtbXhleHQgZnhzcl9vcHQgcmR0c2NwIGxtIGNvbnN0
YW50X3RzYyByZXBfZ29vZCBub3BsIG5vbnN0b3BfdHNjIGNwdWlkIGV4dGRfYXBpY2lkIHRz
Y19rbm93bl9mcmVxIHBuaSBwY2xtdWxxZHEgc3NzZTMgZm1hIGN4MTYgc3NlNF8xIHNzZTRf
MiBtb3ZiZSBwb3BjbnQgYWVzIHhzYXZlIGF2eCBmMTZjIHJkcmFuZCBoeXBlcnZpc29yIGxh
aGZfbG0gY21wX2xlZ2FjeSBhYm0gc3NlNGEgbWlzYWxpZ25zc2UgM2Rub3dwcmVmZXRjaCBi
cGV4dCBzc2JkIHZtbWNhbGwgZnNnc2Jhc2UgYm1pMSBhdngyIGJtaTIgcmRzZWVkIGFkeCBj
bGZsdXNob3B0IHNoYV9uaSB4c2F2ZW9wdCB4c2F2ZWMgeGdldGJ2MSBjbHplcm8geHNhdmVl
cnB0ciBhcmF0CmJ1Z3MJCTogbnVsbF9zZWcgc3BlY3RyZV92MSBzcGVjdHJlX3YyIHNwZWNf
c3RvcmVfYnlwYXNzIHJldGJsZWVkIHNtdF9yc2Igc3JzbyBkaXYwCmJvZ29taXBzCTogNTk4
OC43NApUTEIgc2l6ZQk6IDI1NjAgNEsgcGFnZXMKY2xmbHVzaCBzaXplCTogNjQKY2FjaGVf
YWxpZ25tZW50CTogNjQKYWRkcmVzcyBzaXplcwk6IDQzIGJpdHMgcGh5c2ljYWwsIDQ4IGJp
dHMgdmlydHVhbApwb3dlciBtYW5hZ2VtZW50OgoKcHJvY2Vzc29yCTogNQp2ZW5kb3JfaWQJ
OiBBdXRoZW50aWNBTUQKY3B1IGZhbWlseQk6IDIzCm1vZGVsCQk6IDEKbW9kZWwgbmFtZQk6
IEFNRCBSeXplbiA3IDE3MDAgRWlnaHQtQ29yZSBQcm9jZXNzb3IKc3RlcHBpbmcJOiAxCm1p
Y3JvY29kZQk6IDB4ODAwMTEyOQpjcHUgTUh6CQk6IDI5OTQuNDA4CmNhY2hlIHNpemUJOiA1
MTIgS0IKcGh5c2ljYWwgaWQJOiAwCnNpYmxpbmdzCTogOApjb3JlIGlkCQk6IDAKY3B1IGNv
cmVzCTogOAphcGljaWQJCTogMAppbml0aWFsIGFwaWNpZAk6IDAKZnB1CQk6IHllcwpmcHVf
ZXhjZXB0aW9uCTogeWVzCmNwdWlkIGxldmVsCTogMTMKd3AJCTogeWVzCmZsYWdzCQk6IGZw
dSBkZSB0c2MgbXNyIHBhZSBtY2UgY3g4IGFwaWMgbWNhIGNtb3YgcGF0IGNsZmx1c2ggbW14
IGZ4c3Igc3NlIHNzZTIgaHQgc3lzY2FsbCBueCBtbXhleHQgZnhzcl9vcHQgcmR0c2NwIGxt
IGNvbnN0YW50X3RzYyByZXBfZ29vZCBub3BsIG5vbnN0b3BfdHNjIGNwdWlkIGV4dGRfYXBp
Y2lkIHRzY19rbm93bl9mcmVxIHBuaSBwY2xtdWxxZHEgc3NzZTMgZm1hIGN4MTYgc3NlNF8x
IHNzZTRfMiBtb3ZiZSBwb3BjbnQgYWVzIHhzYXZlIGF2eCBmMTZjIHJkcmFuZCBoeXBlcnZp
c29yIGxhaGZfbG0gY21wX2xlZ2FjeSBhYm0gc3NlNGEgbWlzYWxpZ25zc2UgM2Rub3dwcmVm
ZXRjaCBicGV4dCBzc2JkIHZtbWNhbGwgZnNnc2Jhc2UgYm1pMSBhdngyIGJtaTIgcmRzZWVk
IGFkeCBjbGZsdXNob3B0IHNoYV9uaSB4c2F2ZW9wdCB4c2F2ZWMgeGdldGJ2MSBjbHplcm8g
eHNhdmVlcnB0ciBhcmF0CmJ1Z3MJCTogbnVsbF9zZWcgc3BlY3RyZV92MSBzcGVjdHJlX3Yy
IHNwZWNfc3RvcmVfYnlwYXNzIHJldGJsZWVkIHNtdF9yc2Igc3JzbyBkaXYwCmJvZ29taXBz
CTogNTk4OC43NApUTEIgc2l6ZQk6IDI1NjAgNEsgcGFnZXMKY2xmbHVzaCBzaXplCTogNjQK
Y2FjaGVfYWxpZ25tZW50CTogNjQKYWRkcmVzcyBzaXplcwk6IDQzIGJpdHMgcGh5c2ljYWws
IDQ4IGJpdHMgdmlydHVhbApwb3dlciBtYW5hZ2VtZW50OgoKcHJvY2Vzc29yCTogNgp2ZW5k
b3JfaWQJOiBBdXRoZW50aWNBTUQKY3B1IGZhbWlseQk6IDIzCm1vZGVsCQk6IDEKbW9kZWwg
bmFtZQk6IEFNRCBSeXplbiA3IDE3MDAgRWlnaHQtQ29yZSBQcm9jZXNzb3IKc3RlcHBpbmcJ
OiAxCm1pY3JvY29kZQk6IDB4ODAwMTEyOQpjcHUgTUh6CQk6IDI5OTQuNDA4CmNhY2hlIHNp
emUJOiA1MTIgS0IKcGh5c2ljYWwgaWQJOiAwCnNpYmxpbmdzCTogOApjb3JlIGlkCQk6IDAK
Y3B1IGNvcmVzCTogOAphcGljaWQJCTogMAppbml0aWFsIGFwaWNpZAk6IDAKZnB1CQk6IHll
cwpmcHVfZXhjZXB0aW9uCTogeWVzCmNwdWlkIGxldmVsCTogMTMKd3AJCTogeWVzCmZsYWdz
CQk6IGZwdSBkZSB0c2MgbXNyIHBhZSBtY2UgY3g4IGFwaWMgbWNhIGNtb3YgcGF0IGNsZmx1
c2ggbW14IGZ4c3Igc3NlIHNzZTIgaHQgc3lzY2FsbCBueCBtbXhleHQgZnhzcl9vcHQgcmR0
c2NwIGxtIGNvbnN0YW50X3RzYyByZXBfZ29vZCBub3BsIG5vbnN0b3BfdHNjIGNwdWlkIGV4
dGRfYXBpY2lkIHRzY19rbm93bl9mcmVxIHBuaSBwY2xtdWxxZHEgc3NzZTMgZm1hIGN4MTYg
c3NlNF8xIHNzZTRfMiBtb3ZiZSBwb3BjbnQgYWVzIHhzYXZlIGF2eCBmMTZjIHJkcmFuZCBo
eXBlcnZpc29yIGxhaGZfbG0gY21wX2xlZ2FjeSBhYm0gc3NlNGEgbWlzYWxpZ25zc2UgM2Ru
b3dwcmVmZXRjaCBicGV4dCBzc2JkIHZtbWNhbGwgZnNnc2Jhc2UgYm1pMSBhdngyIGJtaTIg
cmRzZWVkIGFkeCBjbGZsdXNob3B0IHNoYV9uaSB4c2F2ZW9wdCB4c2F2ZWMgeGdldGJ2MSBj
bHplcm8geHNhdmVlcnB0ciBhcmF0CmJ1Z3MJCTogbnVsbF9zZWcgc3BlY3RyZV92MSBzcGVj
dHJlX3YyIHNwZWNfc3RvcmVfYnlwYXNzIHJldGJsZWVkIHNtdF9yc2Igc3JzbyBkaXYwCmJv
Z29taXBzCTogNTk4OC43NApUTEIgc2l6ZQk6IDI1NjAgNEsgcGFnZXMKY2xmbHVzaCBzaXpl
CTogNjQKY2FjaGVfYWxpZ25tZW50CTogNjQKYWRkcmVzcyBzaXplcwk6IDQzIGJpdHMgcGh5
c2ljYWwsIDQ4IGJpdHMgdmlydHVhbApwb3dlciBtYW5hZ2VtZW50OgoKcHJvY2Vzc29yCTog
Nwp2ZW5kb3JfaWQJOiBBdXRoZW50aWNBTUQKY3B1IGZhbWlseQk6IDIzCm1vZGVsCQk6IDEK
bW9kZWwgbmFtZQk6IEFNRCBSeXplbiA3IDE3MDAgRWlnaHQtQ29yZSBQcm9jZXNzb3IKc3Rl
cHBpbmcJOiAxCm1pY3JvY29kZQk6IDB4ODAwMTEyOQpjcHUgTUh6CQk6IDI5OTQuNDA4CmNh
Y2hlIHNpemUJOiA1MTIgS0IKcGh5c2ljYWwgaWQJOiAwCnNpYmxpbmdzCTogOApjb3JlIGlk
CQk6IDAKY3B1IGNvcmVzCTogOAphcGljaWQJCTogMAppbml0aWFsIGFwaWNpZAk6IDAKZnB1
CQk6IHllcwpmcHVfZXhjZXB0aW9uCTogeWVzCmNwdWlkIGxldmVsCTogMTMKd3AJCTogeWVz
CmZsYWdzCQk6IGZwdSBkZSB0c2MgbXNyIHBhZSBtY2UgY3g4IGFwaWMgbWNhIGNtb3YgcGF0
IGNsZmx1c2ggbW14IGZ4c3Igc3NlIHNzZTIgaHQgc3lzY2FsbCBueCBtbXhleHQgZnhzcl9v
cHQgcmR0c2NwIGxtIGNvbnN0YW50X3RzYyByZXBfZ29vZCBub3BsIG5vbnN0b3BfdHNjIGNw
dWlkIGV4dGRfYXBpY2lkIHRzY19rbm93bl9mcmVxIHBuaSBwY2xtdWxxZHEgc3NzZTMgZm1h
IGN4MTYgc3NlNF8xIHNzZTRfMiBtb3ZiZSBwb3BjbnQgYWVzIHhzYXZlIGF2eCBmMTZjIHJk
cmFuZCBoeXBlcnZpc29yIGxhaGZfbG0gY21wX2xlZ2FjeSBhYm0gc3NlNGEgbWlzYWxpZ25z
c2UgM2Rub3dwcmVmZXRjaCBicGV4dCBzc2JkIHZtbWNhbGwgZnNnc2Jhc2UgYm1pMSBhdngy
IGJtaTIgcmRzZWVkIGFkeCBjbGZsdXNob3B0IHNoYV9uaSB4c2F2ZW9wdCB4c2F2ZWMgeGdl
dGJ2MSBjbHplcm8geHNhdmVlcnB0ciBhcmF0CmJ1Z3MJCTogbnVsbF9zZWcgc3BlY3RyZV92
MSBzcGVjdHJlX3YyIHNwZWNfc3RvcmVfYnlwYXNzIHJldGJsZWVkIHNtdF9yc2Igc3JzbyBk
aXYwCmJvZ29taXBzCTogNTk4OC43NApUTEIgc2l6ZQk6IDI1NjAgNEsgcGFnZXMKY2xmbHVz
aCBzaXplCTogNjQKY2FjaGVfYWxpZ25tZW50CTogNjQKYWRkcmVzcyBzaXplcwk6IDQzIGJp
dHMgcGh5c2ljYWwsIDQ4IGJpdHMgdmlydHVhbApwb3dlciBtYW5hZ2VtZW50OgoK
--------------8ToMn0Vzatl0AxxtnjtAzgPi
Content-Type: text/plain; charset=UTF-8; name="xl dmesg.txt"
Content-Disposition: attachment; filename="xl dmesg.txt"
Content-Transfer-Encoding: base64

KFhFTikgQnVpbHQtaW4gY29tbWFuZCBsaW5lOiBlcHQ9ZXhlYy1zcCBzcGVjLWN0cmw9dW5w
cml2LW1taW8KKFhFTikgcGFyYW1ldGVyICJuby1yZWFsLW1vZGUiIHVua25vd24hCiBYZW4g
NC4xNC42CihYRU4pIFhlbiB2ZXJzaW9uIDQuMTQuNiAobW9ja2J1aWxkQFt1bmtub3duXSkg
KGdjYyAoR0NDKSAxMC4zLjEgMjAyMTA0MjIgKFJlZCBIYXQgMTAuMy4xLTEpKSBkZWJ1Zz1u
ICBUdWUgTm92IDE0IDAwOjAwOjAwIFVUQyAyMDIzCihYRU4pIExhdGVzdCBDaGFuZ2VTZXQ6
IAooWEVOKSBCb290bG9hZGVyOiBHUlVCIDIuMDQKKFhFTikgQ29tbWFuZCBsaW5lOiBwbGFj
ZWhvbGRlciBjb25zb2xlPW5vbmUgZG9tMF9tZW09bWluOjEwMjRNIGRvbTBfbWVtPW1heDo0
MDk2TSB1Y29kZT1zY2FuIHNtdD1vZmYgZ250dGFiX21heF9mcmFtZXM9MjA0OCBnbnR0YWJf
bWF4X21hcHRyYWNrX2ZyYW1lcz00MDk2IG5vLXJlYWwtbW9kZSBlZGQ9b2ZmCihYRU4pIFhl
biBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzczogMHhkYWMwMDAwMAooWEVOKSBWaWRlbyBpbmZv
cm1hdGlvbjoKKFhFTikgIFZHQSBpcyBncmFwaGljcyBtb2RlIDM0NDB4MTQ0MCwgMzIgYnBw
CihYRU4pIERpc2MgaW5mb3JtYXRpb246CihYRU4pICBGb3VuZCAwIE1CUiBzaWduYXR1cmVz
CihYRU4pICBGb3VuZCAxIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzCihYRU4pIEVGSSBS
QU0gbWFwOgooWEVOKSAgWzAwMDAwMDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAwODZmZmZdICh1
c2FibGUpCihYRU4pICBbMDAwMDAwMDAwMDA4NzAwMCwgMDAwMDAwMDAwMDBiZmZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwMDAxMDAwMDAsIDAwMDAwMDAwMDljZmZmZmZdICh1
c2FibGUpCihYRU4pICBbMDAwMDAwMDAwOWQwMDAwMCwgMDAwMDAwMDAwOWZmZmZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwMGEwMDAwMDAsIDAwMDAwMDAwYmM2NzhmZmZdICh1
c2FibGUpCihYRU4pICBbMDAwMDAwMDBiYzY3OTAwMCwgMDAwMDAwMDBiZDc3OGZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwYmQ3NzkwMDAsIDAwMDAwMDAwZGI5OGVmZmZdICh1
c2FibGUpCihYRU4pICBbMDAwMDAwMDBkYjk4ZjAwMCwgMDAwMDAwMDBkZGI4ZWZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZGRiOGYwMDAsIDAwMDAwMDAwZGZiOGVmZmZdIChB
Q1BJIE5WUykKKFhFTikgIFswMDAwMDAwMGRmYjhmMDAwLCAwMDAwMDAwMGRmYmZlZmZmXSAo
QUNQSSBkYXRhKQooWEVOKSAgWzAwMDAwMDAwZGZiZmYwMDAsIDAwMDAwMDAwZGZiZmZmZmZd
ICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDBkZmMwMDAwMCwgMDAwMDAwMDBkZmZmZmZmZl0g
KHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZjgwMDAwMDAsIDAwMDAwMDAwZmJmZmZmZmZd
IChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlYzAwMDAwLCAwMDAwMDAwMGZlYzAwZmZm
XSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWMxMDAwMCwgMDAwMDAwMDBmZWMxMGZm
Zl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVkODAwMDAsIDAwMDAwMDAwZmVkODBm
ZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZTAwMDAwLCAwMDAwMDAwMGZlZTAw
ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZjAwMDAwMCwgMDAwMDAwMDBmZmZm
ZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAxMDAwMDAwMDAsIDAwMDAwMDA4MWVm
ZmZmZmZdICh1c2FibGUpCihYRU4pIEFDUEk6IFJTRFAgREZCRkUwMTQsIDAwMjQgKHIyIERF
TEwgICkKKFhFTikgQUNQSTogWFNEVCBERkJEQjE4OCwgMDExNCAocjEgREVMTCAgICBXTjA5
ICAgICAgICAgICAxICAgICAgIDEwMDAwMTMpCihYRU4pIEFDUEk6IEZBQ1AgREZCRTIwMDAs
IDAxMEMgKHI1IERFTEwgICAgV04wOSAgICAgICAgICAgMSBBU0wgICAgIDQwMDAwKQooWEVO
KSBBQ1BJOiBEU0RUIERGQkRBMDAwLCAwM0I5IChyMSBERUxMICAgIFdOMDkgICAgICAgNDAw
MDAgQVNMICAgICA0MDAwMCkKKFhFTikgQUNQSTogRkFDUyBERjZFMjAwMCwgMDA0MAooWEVO
KSBBQ1BJOiBTU0RUIERGQkY1MDAwLCA4QzRDIChyMiBERUxMICAgIFdOMDkgICAgICAgICAg
IDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogVUVGSSBERkJGNDAwMCwgMDIzNiAocjEg
REVMTCAgICBXTjA5ICAgICAgICAgICAxIEFTTCAgICAgNDAwMDApCihYRU4pIEFDUEk6IFVF
RkkgREZCRjMwMDAsIDAwNDIgKHIxIERFTEwgICAgV04wOSAgICAgICAgICAgMCBBU0wgICAg
IDQwMDAwKQooWEVOKSBBQ1BJOiBNU0RNIERGQkYyMDAwLCAwMDU1IChyMyBERUxMICAgIFdO
MDkgICAgICAgICAgIDEgQVNMICAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCBERkJGMTAw
MCwgMDBGQyAocjEgREVMTCAgICBXTjA5ICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihY
RU4pIEFDUEk6IFNTRFQgREZCRUIwMDAsIDBENzUgKHIxIERFTEwgICAgV04wOSAgICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIERGQkVBMDAwLCAwMDI0IChy
MSBERUxMICAgIFdOMDkgICAgICAgIDEwMDAgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTog
U1NEVCBERkJFNzAwMCwgMjBFNCAocjEgREVMTCAgICBXTjA5ICAgICAgICAgICAxIEFDUEkg
ICAgNDAwMDApCihYRU4pIEFDUEk6IENSQVQgREZCRTYwMDAsIDBGNTAgKHIxIERFTEwgICAg
V04wOSAgICAgICAgICAgMSBBU0wgICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBDRElUIERGQkU1
MDAwLCAwMDI5IChyMSBERUxMICAgIFdOMDkgICAgICAgICAgIDEgQVNMICAgICA0MDAwMCkK
KFhFTikgQUNQSTogQVNGISBERkJFNDAwMCwgMDBBNSAocjMyIERFTEwgICAgV04wOSAgICAg
ICAgICAgMSBBU0wgICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBCT09UIERGQkUzMDAwLCAwMDI4
IChyMSBERUxMICAgIFdOMDkgICAgICAgICAgIDEgQVNMICAgICA0MDAwMCkKKFhFTikgQUNQ
STogSFBFVCBERkJFMTAwMCwgMDAzOCAocjEgREVMTCAgICBXTjA5ICAgICAgICAgICAxIEFT
TCAgICAgNDAwMDApCihYRU4pIEFDUEk6IEFQSUMgREZCRTAwMDAsIDAxMzggKHIzIERFTEwg
ICAgV04wOSAgICAgICAgICAgMSBBU0wgICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBNQ0ZHIERG
QkRGMDAwLCAwMDNDIChyMSBERUxMICAgIFdOMDkgICAgICAgICAgIDEgQVNMICAgICA0MDAw
MCkKKFhFTikgQUNQSTogV0RBVCBERkJERTAwMCwgMDE3QyAocjEgREVMTCAgICBXTjA5ICAg
ICAgICAgICAxIEFTTCAgICAgNDAwMDApCihYRU4pIEFDUEk6IFdEUlQgREZCREQwMDAsIDAw
NDcgKHIxIERFTEwgICAgV04wOSAgICAgICAgICAgMCBBU0wgICAgIDQwMDAwKQooWEVOKSBB
Q1BJOiBXU01UIERGQkRDMDAwLCAwMDI4IChyMSBERUxMICAgIFdOMDkgICAgICAgICAgIDEg
QVNMICAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCBERkJFQzAwMCwgNEIzQSAocjEgREVM
TCAgICBXTjA5ICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQg
REZCRDkwMDAsIDA0NkQgKHIxIERFTEwgICAgV04wOSAgICAgICAgMTAwMCBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBUUE0yIERGQkQ4MDAwLCAwMDM0IChyMyBERUxMICAgIFdOMDkg
ICAgICAgICAgIDIgQVNMICAgICA0MDAwMCkKKFhFTikgQUNQSTogSVZSUyBERkJENzAwMCwg
MDBEMCAocjIgREVMTCAgICBXTjA5ICAgICAgICAgICAxIEFTTCAgICAgNDAwMDApCihYRU4p
IEFDUEk6IFNTRFQgREZCRDYwMDAsIDAwRjggKHIxIERFTEwgICAgV04wOSAgICAgICAgMTAw
MCBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIERGQkQ1MDAwLCAwMkUyIChyMSBE
RUxMICAgIFdOMDkgICAgICAgIDEwMDAgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBERkJENDAwMCwgMEI2QyAocjEgREVMTCAgICBXTjA5ICAgICAgICAgICAxIEFDUEkgICAg
NDAwMDApCihYRU4pIEFDUEk6IFNTRFQgREZCRDMwMDAsIDAxNTkgKHIxIERFTEwgICAgV04w
OSAgICAgICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIERGQkQxMDAw
LCAxNjY0IChyMSBERUxMICAgIFdOMDkgICAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhF
TikgQUNQSTogRlBEVCBERkJEMDAwMCwgMDA0NCAocjEgREVMTCAgICBXTjA5ICAgICAgICAg
ICAyIEFTTCAgICAgNDAwMDApCihYRU4pIEFDUEk6IEJHUlQgREZCQ0YwMDAsIDAwMzggKHIx
IERFTEwgICAgV04wOSAgICAgICAgICAgMSBBU0wgICAgIDQwMDAwKQooWEVOKSBTeXN0ZW0g
UkFNOiAzMjY2MU1CICgzMzQ0NDk1NmtCKQooWEVOKSBEb21haW4gaGVhcCBpbml0aWFsaXNl
ZAooWEVOKSBBQ1BJOiAzMi82NFggRkFDUyBhZGRyZXNzIG1pc21hdGNoIGluIEZBRFQgLSBk
ZjZlMjAwMC8wMDAwMDAwMDAwMDAwMDAwLCB1c2luZyAzMgooWEVOKSBJT0FQSUNbMF06IGFw
aWNfaWQgMzIsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMKKFhF
TikgSU9BUElDWzFdOiBhcGljX2lkIDMzLCB2ZXJzaW9uIDMzLCBhZGRyZXNzIDB4ZmVjMDEw
MDAsIEdTSSAyNC01NQooWEVOKSBFbmFibGluZyBBUElDIG1vZGU6ICBQaHlzLiAgVXNpbmcg
MiBJL08gQVBJQ3MKKFhFTikgQ1BVMDogMTU1MCAuLi4gMzAwMCBNSHoKKFhFTikgeHN0YXRl
OiBzaXplOiAweDM0MCBhbmQgc3RhdGVzOiAweDcKKFhFTikgU3BlY3VsYXRpdmUgbWl0aWdh
dGlvbiBmYWNpbGl0aWVzOgooWEVOKSAgIEhhcmR3YXJlIGhpbnRzOgooWEVOKSAgIEhhcmR3
YXJlIGZlYXR1cmVzOgooWEVOKSAgIENvbXBpbGVkLWluIHN1cHBvcnQ6IElORElSRUNUX1RI
VU5LCihYRU4pICAgWGVuIHNldHRpbmdzOiBCVEktVGh1bmsgUkVUUE9MSU5FLCBTUEVDX0NU
Ukw6IE5vLCBPdGhlcjogRElWIEJSQU5DSF9IQVJERU4KKFhFTikgICBTdXBwb3J0IGZvciBI
Vk0gVk1zOiBSU0IKKFhFTikgICBTdXBwb3J0IGZvciBQViBWTXM6IE5vbmUKKFhFTikgICBY
UFRJICg2NC1iaXQgUFYgb25seSk6IERvbTAgZGlzYWJsZWQsIERvbVUgZGlzYWJsZWQgKHdp
dGhvdXQgUENJRCkKKFhFTikgICBQViBMMVRGIHNoYWRvd2luZzogRG9tMCBkaXNhYmxlZCwg
RG9tVSBkaXNhYmxlZAooWEVOKSBVc2luZyBzY2hlZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1
bGVyIHJldjIgKGNyZWRpdDIpCihYRU4pIEluaXRpYWxpemluZyBDcmVkaXQyIHNjaGVkdWxl
cgooWEVOKSBQbGF0Zm9ybSB0aW1lciBpcyAxNC4zMThNSHogSFBFVAooWEVOKSBEZXRlY3Rl
ZCAyOTk0LjM3NCBNSHogcHJvY2Vzc29yLgooWEVOKSBVbmtub3duIGNhY2hhYmlsaXR5IGZv
ciBNRk5zIDB4YTAtMHhiZgooWEVOKSBVbmtub3duIGNhY2hhYmlsaXR5IGZvciBNRk5zIDB4
ZGZjMDAtMHhkZmZmZgooWEVOKSBBTUQtVmk6IElPTU1VIEV4dGVuZGVkIEZlYXR1cmVzOgoo
WEVOKSAtIFBlcmlwaGVyYWwgUGFnZSBTZXJ2aWNlIFJlcXVlc3QKKFhFTikgLSBOWCBiaXQK
KFhFTikgLSBJbnZhbGlkYXRlIEFsbCBDb21tYW5kCihYRU4pIC0gR3Vlc3QgQVBJQwooWEVO
KSAtIFBlcmZvcm1hbmNlIENvdW50ZXJzCihYRU4pIC0gSG9zdCBBZGRyZXNzIFRyYW5zbGF0
aW9uIFNpemU6IDB4MgooWEVOKSAtIEd1ZXN0IEFkZHJlc3MgVHJhbnNsYXRpb24gU2l6ZTog
MAooWEVOKSAtIEd1ZXN0IENSMyBSb290IFRhYmxlIExldmVsOiAweDEKKFhFTikgLSBNYXhp
bXVtIFBBU0lEOiAweGYKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyOiAweDEKKFhFTikg
LSBTTUkgRmlsdGVyIFJlZ2lzdGVyIENvdW50OiAweDIKKFhFTikgLSBHdWVzdCBWaXJ0dWFs
IEFQSUMgTW9kZXM6IDB4MQooWEVOKSAtIER1YWwgUFBSIExvZzogMHgyCihYRU4pIC0gRHVh
bCBFdmVudCBMb2c6IDB4MgooWEVOKSAtIFVzZXIgLyBTdXBlcnZpc29yIFBhZ2UgUHJvdGVj
dGlvbgooWEVOKSAtIERldmljZSBUYWJsZSBTZWdtZW50YXRpb246IDB4MwooWEVOKSAtIFBQ
UiBMb2cgT3ZlcmZsb3cgRWFybHkgV2FybmluZwooWEVOKSAtIFBQUiBBdXRvbWF0aWMgUmVz
cG9uc2UKKFhFTikgLSBNZW1vcnkgQWNjZXNzIFJvdXRpbmcgYW5kIENvbnRyb2w6IDB4MQoo
WEVOKSAtIEJsb2NrIFN0b3BNYXJrIE1lc3NhZ2UKKFhFTikgLSBQZXJmb3JtYW5jZSBPcHRp
bWl6YXRpb24KKFhFTikgLSBNU0kgQ2FwYWJpbGl0eSBNTUlPIEFjY2VzcwooWEVOKSAtIEd1
ZXN0IEkvTyBQcm90ZWN0aW9uCihYRU4pIC0gSG9zdCBBY2Nlc3MKKFhFTikgLSBFbmhhbmNl
ZCBQUFIgSGFuZGxpbmcKKFhFTikgLSBBdHRyaWJ1dGUgRm9yd2FyZAooWEVOKSAtIFZNIFRh
YmxlIFNpemU6IDAKKFhFTikgQU1ELVZpOiBJT01NVSAwIEVuYWJsZWQuCihYRU4pIEkvTyB2
aXJ0dWFsaXNhdGlvbiBlbmFibGVkCihYRU4pICAtIERvbTAgbW9kZTogUmVsYXhlZAooWEVO
KSBJbnRlcnJ1cHQgcmVtYXBwaW5nIGVuYWJsZWQKKFhFTikgRU5BQkxJTkcgSU8tQVBJQyBJ
UlFzCihYRU4pICAtPiBVc2luZyBuZXcgQUNLIG1ldGhvZAooWEVOKSBBbGxvY2F0ZWQgY29u
c29sZSByaW5nIG9mIDMyIEtpQi4KKFhFTikgSFZNOiBBU0lEcyBlbmFibGVkLgooWEVOKSBT
Vk06IFN1cHBvcnRlZCBhZHZhbmNlZCBmZWF0dXJlczoKKFhFTikgIC0gTmVzdGVkIFBhZ2Ug
VGFibGVzIChOUFQpCihYRU4pICAtIExhc3QgQnJhbmNoIFJlY29yZCAoTEJSKSBWaXJ0dWFs
aXNhdGlvbgooWEVOKSAgLSBOZXh0LVJJUCBTYXZlZCBvbiAjVk1FWElUCihYRU4pICAtIFZN
Q0IgQ2xlYW4gQml0cwooWEVOKSAgLSBEZWNvZGVBc3Npc3RzCihYRU4pICAtIFZpcnR1YWwg
Vk1MT0FEL1ZNU0FWRQooWEVOKSAgLSBWaXJ0dWFsIEdJRgooWEVOKSAgLSBQYXVzZS1JbnRl
cmNlcHQgRmlsdGVyCihYRU4pICAtIFBhdXNlLUludGVyY2VwdCBGaWx0ZXIgVGhyZXNob2xk
CihYRU4pICAtIFRTQyBSYXRlIE1TUgooWEVOKSBIVk06IFNWTSBlbmFibGVkCihYRU4pIEhW
TTogSGFyZHdhcmUgQXNzaXN0ZWQgUGFnaW5nIChIQVApIGRldGVjdGVkCihYRU4pIEhWTTog
SEFQIHBhZ2Ugc2l6ZXM6IDRrQiwgMk1CLCAxR0IKKFhFTikgQnJvdWdodCB1cCA4IENQVXMK
KFhFTikgU2NoZWR1bGluZyBncmFudWxhcml0eTogY3B1LCAxIENQVSBwZXIgc2NoZWQtcmVz
b3VyY2UKKFhFTikgeGVub3Byb2Y6IEluaXRpYWxpemF0aW9uIGZhaWxlZC4gQU1EIHByb2Nl
c3NvciBmYW1pbHkgMjMgaXMgbm90IHN1cHBvcnRlZAooWEVOKSBEb20wIGhhcyBtYXhpbXVt
IDEwOTYgUElSUXMKKFhFTikgIFhlbiAga2VybmVsOiA2NC1iaXQsIGxzYiwgY29tcGF0MzIK
KFhFTikgIERvbTAga2VybmVsOiA2NC1iaXQsIFBBRSwgbHNiLCBwYWRkciAweDEwMDAwMDAg
LT4gMHg1MDAwMDAwCihYRU4pIFBIWVNJQ0FMIE1FTU9SWSBBUlJBTkdFTUVOVDoKKFhFTikg
IERvbTAgYWxsb2MuOiAgIDAwMDAwMDA1MzgwMDAwMDAtPjAwMDAwMDA1NDAwMDAwMDAgKDEw
MDc0MTIgcGFnZXMgdG8gYmUgYWxsb2NhdGVkKQooWEVOKSAgSW5pdC4gcmFtZGlzazogMDAw
MDAwMDgxY2YzNDAwMC0+MDAwMDAwMDgxZWZmZjEyNwooWEVOKSBWSVJUVUFMIE1FTU9SWSBB
UlJBTkdFTUVOVDoKKFhFTikgIExvYWRlZCBrZXJuZWw6IGZmZmZmZmZmODEwMDAwMDAtPmZm
ZmZmZmZmODUwMDAwMDAKKFhFTikgIEluaXQuIHJhbWRpc2s6IDAwMDAwMDAwMDAwMDAwMDAt
PjAwMDAwMDAwMDAwMDAwMDAKKFhFTikgIFBoeXMtTWFjaCBtYXA6IDAwMDAwMDgwMDAwMDAw
MDAtPjAwMDAwMDgwMDA4MDAwMDAKKFhFTikgIFN0YXJ0IGluZm86ICAgIGZmZmZmZmZmODUw
MDAwMDAtPmZmZmZmZmZmODUwMDA0YjgKKFhFTikgIFhlbnN0b3JlIHJpbmc6IDAwMDAwMDAw
MDAwMDAwMDAtPjAwMDAwMDAwMDAwMDAwMDAKKFhFTikgIENvbnNvbGUgcmluZzogIDAwMDAw
MDAwMDAwMDAwMDAtPjAwMDAwMDAwMDAwMDAwMDAKKFhFTikgIFBhZ2UgdGFibGVzOiAgIGZm
ZmZmZmZmODUwMDEwMDAtPmZmZmZmZmZmODUwMmUwMDAKKFhFTikgIEJvb3Qgc3RhY2s6ICAg
IGZmZmZmZmZmODUwMmUwMDAtPmZmZmZmZmZmODUwMmYwMDAKKFhFTikgIFRPVEFMOiAgICAg
ICAgIGZmZmZmZmZmODAwMDAwMDAtPmZmZmZmZmZmODU0MDAwMDAKKFhFTikgIEVOVFJZIEFE
RFJFU1M6IGZmZmZmZmZmODM1NDExYzAKKFhFTikgRG9tMCBoYXMgbWF4aW11bSA4IFZDUFVz
CihYRU4pIEluaXRpYWwgbG93IG1lbW9yeSB2aXJxIHRocmVzaG9sZCBzZXQgYXQgMHg0MDAw
IHBhZ2VzLgooWEVOKSBTY3J1YmJpbmcgRnJlZSBSQU0gaW4gYmFja2dyb3VuZAooWEVOKSBT
dGQuIExvZ2xldmVsOiBFcnJvcnMgYW5kIHdhcm5pbmdzCihYRU4pIEd1ZXN0IExvZ2xldmVs
OiBOb3RoaW5nIChSYXRlLWxpbWl0ZWQ6IEVycm9ycyBhbmQgd2FybmluZ3MpCihYRU4pICoq
KiBTZXJpYWwgaW5wdXQgdG8gRE9NMCAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBz
d2l0Y2ggaW5wdXQpCihYRU4pIEZyZWVkIDU5NmtCIGluaXQgbWVtb3J5Cg==
--------------8ToMn0Vzatl0AxxtnjtAzgPi
Content-Type: image/jpeg; name="RandomFail.jpg"
Content-Disposition: attachment; filename="RandomFail.jpg"
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoM
DAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsN
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAAR
CAPlAswDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9If8AhENB/wCgJp3/AICR/wCFH/CIaD/0
BNO/8BI/8K16Km5VjI/4RDQf+gJp3/gJH/hR/wAIhoP/AEBNO/8AASP/AArXoouFjI/4RDQf
+gJp3/gJH/hR/wAIhoP/AEBNO/8AASP/AArXoouFjI/4RDQf+gJp3/gJH/hR/wAIhoP/AEBN
O/8AASP/AArXoouFjI/4RDQf+gJp3/gJH/hR/wAIhoP/AEBNO/8AASP/AArXoouFjI/4RDQf
+gJp3/gJH/hR/wAIhoP/AEBNO/8AASP/AArXoouFjI/4RDQf+gJp3/gJH/hR/wAIhoP/AEBN
O/8AASP/AArXoouFjI/4RDQf+gJp3/gJH/hR/wAIhoP/AEBNO/8AASP/AArXoouFjI/4RDQf
+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
I8IeFJ4NRvzNFF4j1NLOK2tTIAIoTJMm58MMBS7nHCnBoA8Vor33Uv2f9M8U/GP4o6ZoN1fa
P4V8JebeOH0+W5vRAJkiCpbnY7EM45YrhRk14r4l0y00fWrm0sNQ/tS0jI8u6MDQM4xn5kbl
SOhGTyOCetAGZRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV+n3/BL/8A5IFr/wD2M1x/
6S2lfmDX6ff8Ev8A/kgWv/8AYzXH/pLaUAfMv7UtwLP4Ufs6zldwi0zVX25xnGrTnFeS+Ofj
Pc+IP2htU+KmjWp0u9m8Qf2/Z28ziUwSCYSorHA3YIHYZr3r4zfD3U/iv4a/Zf8AB+jSW0Wq
azZaraWz3jlIg7arPgsQCQPoDXzLD8NtXuPh/F4wia3fTZdUGkJCHPnmcpvHy4xtweuc57U3
uJbHpHxi/aLHxOsdTEV74zSXVLn7VPp2p+JJbvTYCW3lIoSPug/dDE4AFdL4m/ap8M69F8SN
SXwhqC+JvHGjJplzczakr21iVaJv3EezIjPlfdJOOADxXlHxQ+DV98J76403VNf0K91uznNr
qGk6fcSNcWUw6o++NVfBBBMTOoI61s+Iv2avE3hnR9VnudR0aXW9Hso9S1Xw1Bcu2pWFs+zE
kq7BHx5iblV2dNw3KOcIZQ0n4l6LP8HJvAuv6XfXDWt/Nqml3un3KR+XPJEIysqsjb0yiHjB
6815rXqOl/s/apefD3RvGl/4k8OeH9E1iWe3sW1S7lSSaaIgNHtSJtucj5mwgz8zLXl1ABRR
RQAV3fwb+Jo+F3iW/urmwOq6Pq2l3Wi6pYrJ5bTWs6bXCvg7WUhHU4PKCuEr1D9nv4a6d8R/
FOuyazHcXGjeHdCvNeu7SzbbNdCFVWOBGwdpeWSJScZAJxzQB1MX7SGm6Pe6JY6NoF1B4X0X
w7q+i2dpcXavcPLf200T3EjhApIaYHAUcJj3pfF37Rmi+N9DXRdT8N3Z02XVdHvbpYrxVd4b
OzktpI1Ozgv5mQ38OOhrW8V/swP4ivPB83h2z/4Qp9a0/VLi/wBM8RzSqumzaesklyrMUaTH
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
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAK/T7/gl/wD8kC1//sZrj/0ltK/MGv0+/wCCX/8AyQLX/wDsZrj/ANJb
SgD5e/az/wCSNfs+/wDYI1f/ANOs9fMVfT/7WEjRfB79nt0Yo66Tq5VlOCD/AGtPzXgHjD4h
eJ/iFdW9z4n8Q6n4huLdDHDLqd29w0ak5IUuTgZpvcS2OforofEnxF8U+MdN0/T9d8RaprNj
pyhLO2vrt5o7dQAoCKxIUYAHHYUaj8RfFOr+FrTw1feItUu/D1mwa30qe7d7aEjOCsZO0feP
QdzSGc9RXQxfEXxTD4Rl8Kx+ItUTwzK299HW7cWrNuDZMWdpOQD06gUui/EXxT4c8P6joWle
ItU07RdRVlvNPtbt44LgMu1hIgOGyODkdKAOdorofCfxF8U+A0vE8N+ItU0FbxQlyNOu3gEy
jOA+0jcOT19ai8I+OvEXgDUJL/w1ruo6BeyRmF7jTbl4JGQkEqWUgkZAOPagDDora0Xxr4g8
OeJD4g0rWr/TtdLyOdStbl47jc+Q58wHdltxzzzk0jeNfED+Kh4mbWr9vEQnFyNVNy/2nzR0
fzM7t3HXOaAMaitnX/GviDxVr41zWdav9V1kbSNQvLl5Z/l+787EnjtzxUvi7x94l8f6hDfe
Jdf1LX72FPKjuNSunndEznaGYkgZJOPegDBorofFPxE8U+OLawt/EPiLU9ct9PQpaRahdvMt
upABCBidowq9PQUax8RfFPiDw3Y+HtT8RapqGhWDB7TTbm7eS3gIBUFIycKQGYcDoTQBz1Fd
C3xF8Uv4Q/4RRvEWqHwzuD/2Obt/sm4NuB8rO3O7np1rnqACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACv0+/4Jf/APJAtf8A+xmuP/SW0r8wa/T7/gl//wAkC1//ALGa
4/8ASW0oA+Xv2s/+SNfs+/8AYI1f/wBOs9fMVfTv7Wf/ACRr9n3/ALBGr/8Ap1nr5ipvcS2F
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
nBOPUGt/SPjJ4m0n4vR/Ev7VHeeK11JtVa4uo96POzFiSoI4yTwMYHFcRRQA6WVppXkb7zsW
OPU02iigAooooAKKKKACiiigDpPA3j/Vfh7d6vcaT5HmappN5o1x56bx9nuYmil28jDbWOD2
Nc3RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABX6ff8ABL//AJIF
r/8A2M1x/wCktpX5g1+n3/BL/wD5IFr/AP2M1x/6S2lAHzP+1Dqd5o3wr/Z0v9Pu57G+ttM1
WaC6tpDHLE66tOVZWUgqQeQRyK+aNO8Qapo+sxavYald2WrRSGaO/tp2jnSTu4kBDBuTznNf
cWueH9H8S2H7PFrrumQ6xp0PhLxXeNZzswSR4Zr6WPJUg8Oinr2rk/if8I/DHinwfpS+F/B+
naNr15L4ZEP2WaVVmm1G3JkjJdm2p5gGO65PJpvcS2Pkex1vUdMhvYbO/urSG9j8m6jgmZFu
I8htkgB+ZcgHByMgGuy8W/Ev4pppbeGPE/ivxeNOlt4SdG1fUbryXgIV4j5MjYKEbGXjGNpH
avcfih8MvAlx8FvHmpaPb2g17wfrNrpz3elabPa253tIkkZklmczHKAhtiHvjmuv/at8AeHr
TwLP4u02G38WeJH0XQbTU42LqfD0DWEPly7BjeZCpXzOVXgdTSGfK+lfHT4k6FpEGlaZ8QvF
WnaXAnlRWVprVzFDGn91UVwoHJ4AqLw98afiF4R0mPS9C8d+JtF0yMkpZadrFxbwrnrhEcAZ
+lfSuqfC34S+CtK8PaDr2r+F7O21TwlHqdxqU66lJrCXs9q0sTReXA0HlrKUQru5AbJBr5a0
O68OxeE/EUOpaRfXmuyiD+y7+3uQkFoQ+ZfNTad+5eByMHnmgCe0+KvjbT9Eu9GtfGGv22kX
bvJcafDqc6W8zPy7PGG2sW7kjnvWV4ZudbtNYjm8PS38OqrHLsk0xnWcJ5bebgp823y9+7tt
3Z4zWXXsv7NXxT8M/DLxJdTeJdGttXt5ra5VDdqdkTG1lQYKDzMuWCYB24ckjjIAPILKyuNS
vILS0glurqdxHFBChd5HJwFVRySTwAKYYJBOYTG4mDbPL2nduzjGPXNez/Cj4ueGPDPxvi8S
6pocMuiTXlu4s54kEVsqyKS/7tNw2AEjZgnA3bsnNGX4reG2+Mv/AAk48OQ/2GMp/Y4jj8hh
npnZu2993+s/2qAPKb6xudMu5rS8t5bS6hYpJBOhR0YdQynkH2NQ16n+0b8RNB+JPxFvtT8O
6ZDpmn+bLtW3XEcuXJEgJUOc5yd5JHbA4ryygDo9S+G3i7RrfRbjUPC2tWMGt/8AILludPmj
W/6f6glQJfvL93P3h60rfDTxel/rti3hXW1vdBha41e2OnTeZp0S43PcLtzEoyMl8AZr3r4i
f8nC/Bf/ALA/h7/0FK+hPEXxV8OeIbz442el3TSeL9Z8P+IT4liMTL5a2MUkNt8xGG8zzZHO
CeUTPIoA/N2rt7oepadYWN9d6fdWtlfqz2lzNCyR3CqxVjGxGHAYEEjOCMV9c+FPgl4OudD1
zwdrtjY/8JXZ+DrjxBu0ywnaW1dbfz43lu2mCHOVBQREfNgNnmtfQvh94e8UfsxfD3WbiODx
L4s0fw7q1zpXg6Uun21Vv386csuN/lIxcRKdzbGPReQD4iq9oegan4n1W30zRtOu9W1K4bbD
Z2MDTTSn0VFBJP0FfTnw6+Hvw/0D4MeBvFXiGfwqbrxPqd8t+PEn9oEwW0EqR+Vai1hcLJhi
5LnPzJgY5pP2bNb0Hwb8aPiLYeHbDS/EmixaLrc2napf283nGFLSXao+ZCFZeGBUE+1AHzfc
+CvENl4nPhu40HU4PEQlEH9kS2ci3fmHonkkb93tjNTeFvh94p8c6zNpHhvw1q/iDVoVZ5bD
S7CW5nRVIDFo0UsACQDkcE16Z+zdr1nrP7R/hv7T4d0kW2r38dsbSETRJaBmHzwFZQ6OMcHc
epqn8GUS1/as8LIDtjj8UxqC7E8C4xyTyfxoA8kubaWzuJbe4ieCeJykkUilWRgcEEHkEHtU
de+/CT4c6L8TP2o9c0bxJKkGlQ3Gq38qTM6rKYBLKsbFFZwGKgHapOM4FZ/xxsfAEngrQtQ0
DUPDf/CWDULi3vbDwrHfi0a02I0MpN1EhEgbzFIUnI2njmgDxNVLsFUFmJwAOproPEfw58We
DrC0vtf8MazodleDNtc6lp8tvHP3+RnUBvwqfxRquhxah4fuvCmmahoc1rYW5unvLkTNNfKx
Lzx/KNiH5cLzjB5Ne0eJ9Tvvhl+z3r+j+MtQuNS8dfES6s9V/su7lMkunWkTM6XU+TlZpt2F
U/MI+TgMBQB4Td+CPEdh4ZtvEdzoGqW/h65l8iDVpbORbSWTBOxZSuxmwCcA5wKh0XwrrXiS
HUJdI0e/1WLT4DdXj2Vs8y20IIBkkKg7EyQNxwOa9rOq3uq/sR6ib28nvDB44s4IjPKz+XGu
nyhUXJ4UDgAcCvePgH4L/wCEf+E2teHPDOteFtQXXPBl5quu3sfifTUlN1Ig8i0eJrgSRJAh
+YuqjzHbJwqmgD4i0jwR4i8QaPqOraXoGqalpWmp5l7fWdnJLBarx80rqpVByOWI61i19A/s
0ajfL4W+MGlyXkz2MPhC9kW1ExaFZDJEGdVB25IUDcOoAryDwRdeHbS9v28SaRfaxbtYzJbR
2FyIGiuCv7uRjtOUU8leMjuKAOdpVUuwCgsT0ApK92/Yi12PRv2lPBcb6Xp+pG7vVhV76Nma
A4Y7o9rDDduc9elAHhNFfQnwZ8PeHfjd8cdRHiDStG8P6Vpek32oNZWaTw2tw8Cs6iTb5kmC
SC2wE7V4FL42sPhM198PtQmv9GmdtWMPiOw8GRXwgNgHQiRPtUSESbTIpCk5wDxQB89UrKVx
kEZGRkdRXvfx38I6bollovjPw1Y+ENU8HS6nJbWt3oRuVWQphxb3cE5Dq+3GSOCM4Na/7Xfj
aHV7H4bWSeGNC083HgvSbkXlnBIs0Q2yfukJkIEY9CCfegDwjVfAfibQvDum6/qXh3VtP0LU
yRY6pdWMsVrdkdRFKyhXx/sk1h17XqX/ACZxov8A2Olx/wCka14pQB2/hr4GfEjxno8Wr+H/
AIfeKdd0qUssd9pui3NxA5BwQHRCpx35ri7i3ltJ5IJ43hmiYo8cilWRgcEEHkEHtX054zk8
FJ+zP8Ff+Erg16abZqnkHR54I1C/aFzu8xGyc+lcl8GNL8K23wd+KPirWfDdv4h1DR5dOTS0
vZHCRtLJIG3hGG5Sq8j1A6UAeG0V7z8C7Pwl4u1D4q+INe8J2dxZ6T4Xm1Sy0qGWRIYblZrd
FKndu2kscgk8MR6Gn/DW28N+K9A+J3j688H6W83hjSrR7TQYTKLJpprlYTM6795VVP3d2MkU
AeB0V9TWHws8I6r+0N8AlfQorPRPG/8AZt1qvh4SP5ce+5MUiLk7lR1XcBnIDda8R+KXiTRd
X1i4sNF8LWHh60sLuaKGS1aRppog2F80sxDMMZyAOtAHDgFiABknoBWz4i8E+IvCEdhJr2g6
nokd/F59m2o2cluLmPON8ZdRvXPGRkVjxyNE6ujFHU5VlOCD6ivfP2g9Ru9W+DHwPvL66mvb
ubSr55bi4kMkjsbx8lmPJP1oA8CooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
K/T7/gl//wAkC1//ALGa4/8ASW0r8wa/T7/gl/8A8kC1/wD7Ga4/9JbSgD5y/aP8T6p4Q+Fv
7P2oaPePY3p0HXbYzRgE+XLqNzFIvIPDI7L+NfPl78WvF+oaetlPr101sgtAqLtUr9lUrbYI
AIMYOAQa9v8A2s/+SNfs+/8AYI1f/wBOs9fMVN7iWx6H4q/aC+IPjbQb7RdZ8STXelX8qXF3
arBFElxKpJEj7EG58k5c8nPJNZzfGLxk+pajftr1w91qOlrot2zKhE9msaxrCy7cEBUUA4yN
oIOea42ikM7ez+NfjWw8MR+H4ddk/suKJreFHhieWGJs7kjlZTJGpyflVgOTWNo3jzX/AA/4
Y17w7p+pS2ui66IRqVmgUrciJ98e4kZG1ueCKwaKACiiigAooooAKKKKAPSPH3xnm8aXnhDV
LXSY9E17w9ZW9kuo29w8hnECqIW2N8qsu3PHXNc1a/EXxHZazr2rQarLHqOu29za6lcBV3XM
Vx/rlbjADd8Y9sVzlFAHpFr+0b8R7LRTpUHim5jsmsm01wIovMltWQoYXk2b3TaSArMQOCME
CsLTPir4t0abwzLY65c20nhrf/ZDR7QbTe5dwvHILMSQ2euOlcpRQB23h740+M/C1tfW2m6y
YrW8uGvJbaW2hmiE56yojoyxv23IAeB6CsbSPHOvaDrF/qtjqc0Go30E9tc3PDPLHMpWVTkH
7ysQfrWFRQB1Xw9+KHiT4Wao+peGb2DT79tpFxJZQXDoVJIKGVG2HnquDVfxH8QNd8VeJo/E
F/dxjWI2V0ubO1htCGU5DbYUVd2ed2M+9c7RQB1+sfFzxbrvi2y8UXOrsniCzA8nUbSCK2ly
CW3MYlXexLHLNknPJNV/GnxM8SfEH7ONd1BbqOAs0cUNtFbxhmxuYpEqqWOBliMn1rmKKAOk
8RfEfxJ4sv8AQr3V9Vkv7nQ7ODT9OeVE/wBHt4SWijAAwQpY9c9ec1u+Ofj543+JNvdxeJNS
s9Ta7KtPcNpNnHcSEYwTMkQk7D+KvPqKAPQYfj142t/Av/CGx6laDw1gA2J0qzIJC7A5cxbi
4Ukbyd3PWuW8N+L9Y8IPfto9/JYtf2kljcmMA+bA/Docg8HHaseigDuvAPxu8Y/DDS77TvDe
pW1haX24XKyaba3DTKwUFGaWJmKHaPlzt4zisrw58SPEnhHWNU1TRdTbTL7U7ae0u5LeJFEk
MwIlTbt2qGBIwAMdsVzVFABV3RNbv/DesWWq6Xdy2Go2cqz29zA214nU5VgfUGqVFAHXX3xa
8V3/AIwtPFR1X7J4gtQBFfWFtDaMOvJESKGJ3NkkEkHBzR4g+LPivxNqen6hfasRdWD+bam0
gitkifOSwSJVXcccnGT3rkaKAOq8ZfFLxP4/tbO11zVDdWlozPBbRQRW8KO2Nz7IlVSxwMsR
k+tJqnxQ8Ta34QsfDGoait7o1ioS1jntoWlgQEsESYp5gQFmO0NjnpXLUUAd7rXxTj1L4QaL
4CtdDhsILHUZNUnvxcPJJczNH5fKnhAFA4FcFRRQB6DoXx78b+HfDVh4ftdTtJdIsC5tba+0
mzuxBvOX2GaJiMnk81zMPjXWrfSNa0uG+aHTtZljnv7aNEVJnRmZDgDjBZsBcDmsSigDW0Lx
Zq/hm21a30u+ks4dWtDYXqIARPAWVyhyOm5FPHPFWfBfj3X/AIeapLqHh7UpNOuZYWt5sIsk
c0TfeSSNwVdTgfKwI4FYFFAHW3PxY8XXfjyx8aTa5cP4msZYprW/IXMDRY8vYuNqhcDCgYHp
XK3E8l1PJNKxeWRi7se5JyTTKKAFRzG6suMqcjIzXfeMvjx418f+G7bQdd1K0u9JtcC3t49K
tIPIG7dhGjiVkBPJAIB75rgKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
r9Pv+CX/APyQLX/+xmuP/SW0r8wa/T7/AIJf/wDJAtf/AOxmuP8A0ltKAPl79rP/AJI1+z7/
ANgjV/8A06z18xV9S/tSW4u/hT+zpAxKrLpmqoSOoB1acVy3xY+Bng/w78brn4TeDtT1nVvF
CeIo9ChvtQESWkrSSiIAhRuUqzKC2SDzgDim9xLY8Dor6V+MH7J0fgLwh4s1WwsvFli3he8j
tZrzxHp4trXVUaQxma1+UEAMAdpLEqwOR0pmpfsrWkHwy8T6xvvtG8QeHtJh1eay1XVNOaW4
jZ41ZTYxyG5g4lDBpAQQOcZFIZ820V7r431B9d/ZM8D315BZtfW/iO9sUuobOKGUwJbwlUZ0
UFwCSfmJPNeFUAFFFFABRRXtv7KPhzT9X8VeMtXvrezu5fDXhPUNasodQUNb/al8uKJ5FPDK
jTeZg8fJzxQB4lRX2R4o+C2gfEGTwHqHiDULAXM2k+In1bU/B4i8i/bTIZZo5YsIEIcIFJCj
OPWuI+LPwR8K/CHQrTxf4cur/Wxpuq6dHcWOuxxtDMt1aNdRqQgGdvlsjf3sgjHSgD5uor6c
8aRJ4m+Anhi+8b2Gmaf4x8QeJ4m0JLGyitJhpHluk7usaj90ZTGIywydrEEgGvSfir4A0q8s
/jT4XMfhldI8LaNLqGg2+mrGNR0ySyvLS3b7QQobE6XEhG9m3YBGMUAfDVFFfTv7Lnj3VrLR
fGGua4mmXvgvwV4flm+x3ekWki3F3N+4s4DIYi5JkffknOImoA+YqK+j/wBkLxZrN549jtr6
WwPgrw/bXXiDWY7nSrSYG3iUyMjO8RbDuUQDPG8YrN+AHivxL47+N1roulNp+l6XrmrvqN/G
dKtZkt7cZkmI8yNtqLGh4XA46UAeBUV9F6T4S0b9p342/EnVra3kt7WBJtQ0zw54fWC3ub9R
MkaQ26sNmQjbyApJCnANeK+P/Di+EvF2o6Utjqum/ZnCmz1uDybuE4BKyL6j1wM9cCgDnqKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACv0+/4Jf8A/JAtf/7Ga4/9JbSvzBr9Pv8Agl//
AMkC1/8A7Ga4/wDSW0oA+ZP2qLg2nwl/Z3nUBmi0vVnAPQkatOa8R8a/FjV/GHxg1T4jIsek
67e6u2tILQnbbz+Z5ilM5PytjGfSvpz4m/DZ/jBp/wCyr4Kiv10uTXLXVLJbx4vNEJbVrj5i
mRn6ZFfM1v8AC+a5+FMPjVNQjCy62NFFk0eMMY9/mGTOAOcYx75pvcS2LfxC+KunePHvr1PB
ekaNreoXBurzUbOSUmSQsWYpGzFY9zEkhRXb63+1pfazYeOM+D9Fg1rxppy2GtawjSmaYho2
8xFLbYyTGMgDBz9K5z44/A+2+C2sXGhy67d6hrtncfZrqGbR5LW3dscvbTF2E0eejEISMEAi
un8X/smXnhSw8S2R12S58Y+GdNXVNX0f+y5I7aKL5DKkV2WxJJGJFLLsUcNtZsUhnn2i/FUW
fwzu/BGq6Faa3ppuZL6xmlmkilsbl4/LMilCAwwFO1sgla4KvX7T4IaBZfCnw3438R+OBo0G
vz3Vta2NvpTXUqSQsoLPiRcRncMsMsOytXkFABRRRQAV1vww+JN/8LfEz6tZW8F9DcWdxp17
YXYJhu7WeMxyxPgg4IPUHIIBHSuSr2D9mPwJpnjPxX4nvtWsI9WtfDXhu+11NNmfbHdzx7I4
I3OR8nmzRs3IyFI70AJL+0jqcWsadNp2h6fpukaZoWoaDYaRE8jRQRXkEsU0m4tuaT98zZJ6
gdqfrv7Sd/4msItP1Tw7pl5p41LS9RmtmaQLN9itnt1ibDfddZCWxznpivUPGH7Ndn4qvvBk
15FZfD2/vdN1uTXIdOiF3bwzaZHJK7RIkm0h0QD5Xxnn2rz74w/s5Wnwo8NJ4gsfFCeKLWC+
s7a5gawa02i5tjcwHPmNnKI4YcbSOCwOaAMT4x/HGz+LurPrJ8I22h64ZIyl5a6hcyrDEgws
McTsURBxgAcYq34x/aV1Txb4f8Q2i6Hpumax4mit7fXtbtjJ5+oRwsrKpUsVTc6Rs20DcUGa
2/jf4b0LUvDXwXv9F0Cw8Nz+I9MkN2lgG2u/2ySJWO4kkhQBnviuy/aJ+Bsfg218Z6B4bsPC
F1H4MWBtRisZpn1y1jLpGbmdiojdWd1DLGz7PMXIXrQB84v4nsW8Ap4fHh6wXUV1H7adfBf7
W0fllPsx52+Xn5+mcjritO3+KF9Z/CG8+H9tZ29vY32sR6ve3qFvPuWjiaOKJucbE3uwGPvN
muMr6Q/Zm1PSNbt/Edx4o8GeGNQ8J+EfD9zqV/czadi5uJMCK2j83d995pIx7gN6UAeReE/i
hfeDfAPjPwxYWluP+EpS2gu9RJbz47eGQyGFOcbXcIWz18taX4a/FC++GCeJn02zt5b3WtIm
0gXkpbzLOOUr5jxYP3yoKZPZzXp37Kl1ZeLfiBp+g6v4U8MX3huzW51bV72/07zJo7OJWllH
mbhjgbV9yBWn8KrnwJ4i8J+L3iXwLoXi3UfE9v8A2Na+Lra4lgSwaOffFH5ccgQ7zbjc+1eD
8woA8L8F+JdO8NX00up+H7TxFbyIAIbmWSExsDkMjxsGBq78VviZqXxb8aXPiPVY4oLiWKG3
SGHJWOKKNY41yxJOFVRknJru9A/Z51nxR8QfH2leIP8Aim5/CkD3up2mk2P22UDzUjCW0Cuo
cZkBzvChQTmvK/FGlWmia7dWVjfPqNrE2EuJbZrZ2GOjRtkqw6EZIyOCRzQBlUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFfp9/wS/8A+SBa/wD9jNcf+ktpX5g1+n3/AAS//wCSBa//
ANjNcf8ApLaUAeF/Fr4h3fwm0f8AZW8ZWVvHd3Wh2+pXyW8pIWXZq85KEjoCMjPvXi3jX4w+
E9R+Ftt4H8MeEb3SNPi1xtZefUNTFzJIGj2eUdsSYAHQjnHXJ5r1T9oPwnqfjzwN+zL4b0aA
XOratZ6lY2kLMFDyyaxMqgseAMkcnpXg/iD4TpoPivTNCTxl4a1KS7vVsJru1luVhspC4QmY
SwI4Rc5LojDAOCab3EtjrfHf7QVt4i+FCeBtNsNY+xnUItQE2vat/aBtDGjKIrb92pjjO7kE
sTgc8VqfFP8Aaln+Ktlqt5qB8Uw+INVt1ivI08SS/wBlM+0K8i2u3I3YJKFyuSeO1cJq/wAC
/Enh+28fTao1np48GXyabfrPI4M9y0jII4MKQ5+Rn52jaM9wKd48+CV/8OdItrjWPEGhJq01
pb3zaDHNN9tihmRXjYlohExKspKpIzDPIGDhDKXij4kp4j+GHg3wkLBoH8PyXcjXZl3CfznV
sBcDbjbjqc+1cPRRQAUUUUAFdz8Hvicfhb4lvryfTxq2karpl1o2qaf5vlG4tZ02uFfB2sDt
dWwcMg4PSuGr1L9nj4bab8RfFOvS6zDcXej+HNBvNeurG1cpLeeSFWOBWHK75ZIlJHIBOOcU
AdJH+0lY6TfaLaaP4cntfDGi+HtW0SysZ74STmS/t5opLiSQRgMwaYNgKAQgHHWqXxJ/aFt/
iF4LvPD7aFLZLc32lXbTi7DELZ2clsVA2Dl/M3A9sYwetdZ4s/ZfbxJe+D5tAs4vAcus6fqs
+o6Z4gnn8vTZtOSSS5XdseTBjTIBBOTjOOa4r4k/s46t8H9Mttc1nVdF8Q6Qt7b21zHod3L5
iCaHz4STJCoAkiDEEZIwQwU8UAWPif8AGLwd4u8E+CdI0Dw7r+kal4TtzbWV5f6tBcxyIZ2m
Yui2yHdlsDDAccg1qeL/ANpjTNdtPHWp6d4Xn0/xn430+PTda1KbUBLbeUJIpZTBD5YKNI0E
eSztgZwBml+KPwq0fSfgRpvjWXwpdeAtZutYjsrDT5ruSddTsmgeR7jEmWUowjGRhW8zgcV4
FQB0D6p4dPgFNPXQ7geKxqPntrX20+SbTyyPI8jbjdvw2/d04xXQab8U00b4Haz4CsdNaC71
vWLfUNS1Xzs+fbwRsIbYJt4AkkaQnJyQvAxXrPxJ+EGkWHw8ivvBngvSdegt9AtNQ1PWbbxC
1xf2UropmeSzWfKIrnGWi2jPWpLH9mttP+FnhS/g8IDxXrXibSpNXWaTW47OaKPLbUs7YuGu
GVV3Odrj5sYGKAPIvAPxTTwD8PvH2iWmms+s+KbW304ar52PstmsvmTxBNvJlKxAnIwFIwc1
U+H3iDwVohWXxR4b1LWriC4WeB9P1NbVWAx+7kDRPlcjOV2nk89MevfDL4TaJ4l+DOhX2k+E
tI8Z+OL/AFPULe506/8AEJsrlIYkgMHkW4njaVmLzZChj8g49fL/AAd8GNT8ZaT4l1y41HS/
CWiaFdQ2l5d601wEjuJjJ5cAWKKWQtiKTJK4G35iMigDZl+Oq+IPi9r3jvXbTVLW71KTzIT4
b1Q2E9njAVUkKuCu0BSGBzXPfG34ov8AGP4i6h4pksBpxuY4YhFv8x2EcSxh5HwN8jbdzNgZ
JJrjdSsTpuoXFqZ4LryXKedbSb43x3Vu4NVqACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAr9Pv+CX//ACQLX/8AsZrj/wBJbSvzBr9Pv+CX/wDyQLX/APsZrj/0ltKAPnL9ozUo9H+H
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
0g80yGJSkqxOuWYfvI2IDHBHBAB6Nr3wJ0K3+DNl4m8PWeqeKZ/7KTUNS1fTtTt3h02UnDRT
WWzzVReAZC+Oc4r5/r0bSPjfqPh7wpqWj6ToGgaXe6npz6Te63a20i3k9o+N8RHmeSNwABdY
g5Gfm5Nec0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFfp9/wS//AOSB
a/8A9jNcf+ktpX5g1+n3/BL/AP5IFr//AGM1x/6S2lAHzB+1gjSfB39ntEUs7aRq4CqMkn+1
Z+K+evFHgfxH4HuIbfxHoGqeH551LxRapZSWzSKDglQ6gke4r6E/azOPg3+z6R1/sjV//TrP
XzNcXc92waeaSYjgGRy2PzpvcS2NfXvAniXwrYWN9rXh7VdHsr5Q9pc39lLBHcLgHMbOoDDB
B4zwRRfeBPEumeHbXX7zw9qtpoN0QsGqT2UqWsxOcBJSu1uh6HsayJrye4RElnklRPuq7khf
pmh7yeSBYWnkaFfuxlyVH0FIZrx+BPEsvhiTxInh7VX8OxtsfV1spTaK2QuDNt2A5IHXqRRp
XgTxLr2iX2s6Z4e1XUdIsQzXeoWllLLb24A3MZJFUqgA5OSOKyBeTi3MAnkEB5Me87fy6UR3
k8MTxRzyJE/3kVyFb6jvQBr+GvAniXxml03h/wAParrq2ihrg6bZS3AhBzgvsU7RwevpUXhn
wdr/AI1vZLPw9oepa9eRoZXt9MtJLmRUBALFUBIGSOfes2C8ntd3kzyQ7uG8tyufrikt7qa1
cvBK8LEYLRsVOPwoA0dJ8Ja5r2vHQ9M0XUNR1oM6f2baWsktzuTO8eWoLZXByMcYOaG8Ja4n
iMeH20bUBr5lFuNKNq/2oyHonlY3bvbGazo7maGbzY5XSXk71YhuevNH2mYz+d5r+dnd5m47
s+uaANHWvCWueHNaGj6to2oaXqx2j7Be2rwz/N9392wDc9uOak8TeCvEPgq9is/EOg6noN3K
nmR2+p2cltI65xuCuASMgjNZUtzNPL5skrySf33Yk/nS3F1NduGnmkmYDAaRixH50Aa3iLwL
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
9S4jXSXuY5RNKHUqyyL0A5yK5Twp4+0jw38IPiT4Uae4mvdcurBrKVIsJJHBJIWL8/LkMpA5
oAq+D/gV4g8eeI/Eej6HeaRetoNg2p3d6L0La/ZlKBpFkIGQBICc4IAbuMUukfA3WNf13VLL
T9X0O607SrIahfa6l6fsFtCWCAu5XcCWIULt3EkYBqT4PfELTPAuh/Em11Bp1n1/w1LpNmYE
3Dzmngf5jkYXbG3NW/gx4+0DQvC/j7wh4lmurDS/FdjbwjU7OHzntZoJxLGTHkbkPzKQDnkH
tQBQk+AfipPij4b8BqtlNq3iOS2TSrqK43Wl0s7BYpFkx90k4JIyMHIrH8ffDS8+HcscF/qu
kXt4JXguLTTrvzpbWVPvJIMAA/QkcEZyK9etfjt4V0n44/BjUrQ30vhH4fmxga8kgAublI7g
zSyCPPHLMFXPQDmvANcvV1LWtQu0LMlxcSSgt1IZieffmgCpFs8xPM3eXkbtvXHfFevfHDwB
4T8M+Cfhv4g8K2+pW0fiKwuLi4j1K4WZt8c7RgjaoC5Azjn615AgVnUM21SeWxnAr3T4z+J/
AWv/AAm+H+i+H/FN5qWreF7Sa0khn0hrdLjzZ2kLK5kONoboRzigDwqiiigAooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAr9Pv+CX/APyQLX/+xmuP/SW0r8wa/T7/AIJf/wDJAtf/
AOxmuP8A0ltKAPl79rP/AJI1+z7/ANgjV/8A06z18xV9O/tZ/wDJGv2ff+wRq/8A6dZ6+Yqb
3EtgooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACv0+/4Jf/8AJAtf/wCxmuP/AEltK/MGv0+/4Jf/APJAtf8A+xmuP/SW
0oA+YP2sEaT4O/s9oilnbSNXAVRkk/2rPxXgfiD4aeL/AAnYG+1zwrrejWQuGtDc6hp00EYm
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
AZq74E/aG1v4b/CHUvB/h9pdPv73XrfWH1JWR0McdvLF5JiZCDlpFcNngoOM8jyeigDetPH3
iKw8Yf8ACVwaxdp4j883J1LzMymQ9WJPXOTnNVvFHinUvGWszarq86XF9KFDyRwRwg4AA+VF
Veg9KyqKALmj6vdaBqlrqNi6xXds4kid41kAYdMqwKn6EGun+IXxi8X/ABV+y/8ACVav/azW
oCwu9tDG6qFCqu5EUkBQAATgAcVxlFAHQeI/iB4i8XXWjXOr6vcX1xo1lDp+nySEBra3iJMU
akAYCliR35rS8TfGLxl4w0P+xtW16e50syLK9qqJEkrr91pNijeRngtk1xtFAG5N441648F2
3hGTU5n8N216+pQ6cceWly6BGkHGclVA69q6lP2hfH6eGtP8Ptrqz6Rp1qbK0trixtpfIg5+
RGeMsBkk8HqSetedUUAd54B+Kv8AwgPhbxjpcGh2t7e+JLBtNfUp5pA9tCzKzBEUhSSVHLA1
j6D8R/EvhjTF0/StYuLGyWSWYQxYADyRGJ26dTGSv0Jrm6KACvuf/gm/+3B4B/ZG0LxzZeM9
P1++l1y5tJrY6LawzKqxLKG3+ZLHg/OMYz3r4YooA+9/+CjP7d/w9/a18BeE9F8G6b4hsrvS
tTe8nbWbWGFGQxFAFMczknJ7gV8EUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABX6ff8ABL//AJIFr/8A2M1x/wCktpX5g1+n
3/BL/wD5IFr/AP2M1x/6S2lAHy9+1n/yRr9n3/sEav8A+nWevmKvp39rP/kjX7Pv/YI1f/06
z18xU3uJbBRRRSGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFfp9/wS//AOSBa/8A9jNcf+ktpX5g1+n3/BL/AP5IFr//AGM1
x/6S2lAHy9+1n/yRr9n3/sEav/6dZ6+YqKKb3EtgooopDCiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACv0+/4Jf/8AJAtf/wCx
muP/AEltKKKAP//Z

--------------8ToMn0Vzatl0AxxtnjtAzgPi--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 16:31:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:31:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657040.1025660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFczs-0006xG-K2; Tue, 19 Dec 2023 16:31:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657040.1025660; Tue, 19 Dec 2023 16:31:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFczs-0006x9-HW; Tue, 19 Dec 2023 16:31:08 +0000
Received: by outflank-mailman (input) for mailman id 657040;
 Tue, 19 Dec 2023 16:31:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFczr-0006x3-74
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:31:07 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 01fdd684-9e8c-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 17:31:06 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-33664b6d6d5so2250530f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:31:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 z14-20020a5d440e000000b00336768f52fesm802039wrq.63.2023.12.19.08.31.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:31:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01fdd684-9e8c-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703003466; x=1703608266; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=H+zjVeCUsFo3PKPzAzmrXas7XesFFLYcmb23UddppXc=;
        b=BCHtnZXjYw/2W71ygeVitz0dLPbnDdEVqzAoxeyZ5mHyxdm0gPKmeLDolcMgdyYJw9
         APfzhaEkFYN784QvUVdjAS+8jpyUTJkIp3TwyyFGvrh0Us1oMyQtQXJkg0Z6rr7bfKwV
         7M2tBoX0rWXiO++YRZ3XGEW4BlVQCeD9yCmLe1ye8CuNZPwHUG1Dm9NVNXGRHZTnFYcy
         VPEMo1f+XEFE8TJBAN1KrG7Xjz9/FZLxWtbqyon6BY0mzylQy+FIHr2WIkAvavkZ260m
         mZNmTh30JRTykhUqa2SWRqfSYZNxBSgIOWqtUObiCcPTjqm10lSX1HvO5I7LvKT7o20H
         E3OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703003466; x=1703608266;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=H+zjVeCUsFo3PKPzAzmrXas7XesFFLYcmb23UddppXc=;
        b=tsm0KTYWQIEcGEKxAuLdP+wOf9D+cBN/BXMAS7A241u7cqS6Zrw1mAOMje6rwfs5s5
         jDxdNqJOZwN8+CFApc435vEKA69l2rfa5JGFDiAiMADFFVcP362CsBwvarFN01fsIkkT
         5+GOkBZ64Ap9SjM8OWqxMfa6YNMFWzU4cW66HzB3YZrfo85T/Mogg1/adVwME3DZoi52
         xTqVWEDb9LUC+wSmVg6yf+/+sJb0B0MsFsu13lziVWaPvLbXlvP5Z6TTZlpzcUfYtiBf
         y8fzhdwYXpURvjwKV+/kpBpiqjkXCcQ8c8IHMCSDKRmxtDUGrQ1VKar/akzRQh/gPpnY
         s7/g==
X-Gm-Message-State: AOJu0YziW0MuMAEcKQn8ocqDQjrXSUrCflOoO9GilGH78u7S0g9UbXAZ
	DixXcFHG2cU92k8bmiSTE58d
X-Google-Smtp-Source: AGHT+IH2fjwQa75yNRn2Ap9aFQweKHyj/8mCaujMt7o2vvVkeAEi+EL3JjJBZEQCbxFFJbH9AHB6IA==
X-Received: by 2002:a5d:5287:0:b0:332:fefa:61e9 with SMTP id c7-20020a5d5287000000b00332fefa61e9mr9708343wrv.48.1703003465700;
        Tue, 19 Dec 2023 08:31:05 -0800 (PST)
Message-ID: <4cad003f-dda0-4e22-a770-5a5ff56f4d35@suse.com>
Date: Tue, 19 Dec 2023 17:31:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: 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>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-2-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231215111842.8009-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2023 12:18, Roger Pau Monne wrote:
> The minimal function size requirements for livepatch are either 5 bytes (for
> jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  Ensure
> that distance between functions entry points is always at least of the minimal
> required size for livepatch instruction replacement to be successful.
> 
> Add an additional align directive to the linker script, in order to ensure that
> the next section placed after the .text.* (per-function sections) is also
> aligned to the required boundary, so that the distance of the last function
> entry point with the next symbol is also of minimal size.
> 
> Note that it's possible for the compiler to end up using a higher function
> alignment regardless of the passed value, so this change just make sure that
> the minimum required for livepatch to work is present.  Different compilers
> handle the option differently, as clang will ignore -falign-functions value
> if it's smaller than the one that would be set by the optimization level, while
> gcc seems to always honor the function alignment passed in -falign-functions.
> In order to cope with this behavior and avoid that setting -falign-functions
> results in an alignment inferior to what the optimization level would have
> selected force x86 release builds to use a function alignment of 16 bytes.
> 
> The compiler option -falign-functions is not available on at least clang 3.8,
> so introduce a Kconfig check for it and make the livepatch option depend on the
> compiler supporting the option.
> 
> The naming of the option(s) CONFIG_FUNCTION_ALIGNMENT is explicitly not
> mentioning CC in preparation for the option also being used by assembly code.
> 
> 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 Dec 19 16:36:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:36:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657043.1025670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFd4a-0008Q7-5w; Tue, 19 Dec 2023 16:36:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657043.1025670; Tue, 19 Dec 2023 16:36: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 1rFd4a-0008Q0-3P; Tue, 19 Dec 2023 16:36:00 +0000
Received: by outflank-mailman (input) for mailman id 657043;
 Tue, 19 Dec 2023 16:35: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=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFd4Z-0008Oc-Ck
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:35:59 +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 b02e817d-9e8c-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 17:35:58 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3367632ce7bso446076f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:35:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 h3-20020a5d6883000000b00336755f15b0sm1505163wru.68.2023.12.19.08.35.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:35:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b02e817d-9e8c-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703003758; x=1703608558; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=j9hJKF7RRuBSejCOh++IK5x52P/Eji436fOwdpI2cfA=;
        b=VvJCrTC9YX5gz7kr6GichRnoEskvI0kHSvnRMoxOsAgy8aLwJyfHPjd/GY/wDcLscf
         kloIRlBDEbd4AWTMJt6MmhGXMQd3gbQ4bc+UWKALrZZiCQZ7qouELbBlkz2JDGkprICc
         lY6EuCmr4QlwTMS3SLJIcwZy6dc7UVQFNovoeLf+r4Dwo/0VzhpDXhKeE6FUorjgt5z6
         pBEvWOGrozGupp6jbN+vuuxTt6U30Gj0XoXWNs13Fmi59RVIOuVn9Ytx3A7H5m9wEDLG
         LRlh8uIlOXDE3BBAqFlew/vrjfBN7/H4948mv3/W5SCRg1AUU6CN5g/FtO6Y+c8foh/y
         p1ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703003758; x=1703608558;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=j9hJKF7RRuBSejCOh++IK5x52P/Eji436fOwdpI2cfA=;
        b=AnIliW4eE51s24uJV6MjuYRaYfxXe4YsiLxf+9QhagfrGlpLfqbALhnvhp49MTxJzB
         I7co7SWc1ny4La67qrfe8YpiDT2vj3qzUl2F7jVQfiPPOpSjX+ofzImJu1GYeT1zCM16
         5WpVS+VVnuzOIel9kP6nC5EKncqFRlucvWZH4rS9PxSAfO/jhaRCFVUAZmJk/Lq8eyJY
         PeKlW4GpiVURoRCmJz+qTAZkTJOlGozEJz1IZOgf5QcGjwKxBohKUrp9XZuyDDN8eraB
         vK+Fxr3OZDOTSh0W7Jmh8lcz99WMflqjXSB2+uiL2M8R7OGxgmirUEJRTWI5HaoMeSn3
         dA2g==
X-Gm-Message-State: AOJu0YzXCEPg7hYpeJj2YCSYbqYj4idoHQSfSv6X++8c6WeQkLndT+1C
	cfb+OiYii9+XOQtEbokG/SZ0
X-Google-Smtp-Source: AGHT+IE88lp1v5YkDqE9DSdZM2tJSZjDJIgm63EytiwTouDSoM34/RqHkkU1qK4fGMnubsPa6QWjiw==
X-Received: by 2002:adf:e2cf:0:b0:333:32d8:e0f2 with SMTP id d15-20020adfe2cf000000b0033332d8e0f2mr10168376wrj.102.1703003757990;
        Tue, 19 Dec 2023 08:35:57 -0800 (PST)
Message-ID: <8a236600-7fa3-48da-a692-8286e5931f21@suse.com>
Date: Tue, 19 Dec 2023 17:35:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xen/x86: introduce self modifying code test
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.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: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-3-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231215111842.8009-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.12.2023 12:18, Roger Pau Monne wrote:
> Introduce a helper to perform checks related to self modifying code, and start
> by creating a simple test to check that alternatives have been applied.
> 
> Such test is hooked into the boot process and called just after alternatives
> have been applied.  In case of failure a message is printed, and the hypervisor
> is tainted as not having passed the tests, this does require introducing a new
> taint bit (printed as 'T').
> 
> A new sysctl is also introduced to run the tests on demand.  While there are no
> current users introduced here, further changes will introduce those, and it's
> helpful to have the interface defined in the sysctl header from the start.
> 
> Note the sysctl visibility is not limited to x86, albeit the only
> implementation is for x86.  It's expected that other architectures can reuse
> the same sysctl and structure, with possibly different tests.  Leave adjusting
> those to when support for a different architecture is introduced, as the
> sysctl interface is not stable anyway.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Dec 19 16:57:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 16:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657049.1025681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFdPf-0007KQ-UU; Tue, 19 Dec 2023 16:57:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657049.1025681; Tue, 19 Dec 2023 16:57:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFdPf-0007KJ-Q9; Tue, 19 Dec 2023 16:57:47 +0000
Received: by outflank-mailman (input) for mailman id 657049;
 Tue, 19 Dec 2023 16:57:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFdPf-0007KC-14
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 16:57:47 +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 baa21a57-9e8f-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 17:57:44 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c6ea99429so48460225e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 08:57:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bv17-20020a0560001f1100b003363aa2b3cfsm18200380wrb.98.2023.12.19.08.57.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 08:57:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: baa21a57-9e8f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703005064; x=1703609864; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Z2ol6tnnYxZ21JLW0C7LiJU6cTtE6rDym4fyNBxXUfs=;
        b=KUbr8OXpA7yFkA34x7dCsBUppXKLYUCJSZfhbVMCp1hsMGgpGp9qX8rrwuT+AjDt+I
         n0wd5lqpx5320VcmVcR/fCjGlYjDMP4n9T5gR2yhFeaepQ10wL+BYpLZPgoyYoNw7q7s
         OPjlQk6Z0QFnvm6ZgEcHWQETWzytIQ7hCUdcSwpkllN/2sb6P8IuGFc4Z6d8hT+iD1xW
         Y4fvXnaXuHV7kJ1WGVA76xbqA5ePZA1X0vstQey8GFTmkl/tqzlZtYXECXq/0vr7ERfu
         VDiA+BTKFV/87VtJQ7oxMM+J/EaCksE+bNlo3Z7r6dCWFEbWTxSuNtVhMOKUBAkOpX6g
         QMWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703005064; x=1703609864;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc:references
         :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=Z2ol6tnnYxZ21JLW0C7LiJU6cTtE6rDym4fyNBxXUfs=;
        b=jwxz4QUGlMiprr9KVhk1rndNtLgVLfYckMb4THshTbZunSCAQPWPsbqIIwwGqUZIHp
         ZWa9lRXYkIAAPlfeCfKK80h9co/KxMKKtuTlnRyxLzQwkvgSjzrxPpcOdh3SFQ+b5D85
         qX+eVypJwEHKbHlA2Bf297b5ufonkMk51SFUrASGk48QGSRqQong9dvXLLEZ8fdUkJ10
         f4EM/Yk4F3XdQ2bxGqgsJrTx2uqkECmfDypTz/0/e+qz0LqGv88hCFvkOoWIXZq0swYw
         BHcGH9ReUHmLD6gG/3zOWc87pUyKJw7wt6N4PPQRZcTaELJR8opw8UZjyvdorqygzpqJ
         NEyw==
X-Gm-Message-State: AOJu0YzUfRoeQDPk9Wgx30QnAi5agIr2x5Uu/NRfL1kb2iLPWLGX+/OU
	1GtQ7+UkotrknrR/r4JpHFJ9itE5B4uK1zlJjX33
X-Google-Smtp-Source: AGHT+IGGDVUSEFfGfeMCicOX72QVQeeht7XFzY4mjtcRdQILwUSPyfChDh5y0peoWiBiY2cBIt5yfg==
X-Received: by 2002:a05:600c:492f:b0:40c:31bb:6703 with SMTP id f47-20020a05600c492f00b0040c31bb6703mr6186182wmp.75.1703005063938;
        Tue, 19 Dec 2023 08:57:43 -0800 (PST)
Message-ID: <217649a9-8399-48d3-ba49-ae22cacf0d4b@suse.com>
Date: Tue, 19 Dec 2023 17:57:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: hvmloader - allow_memory_relocate overlaps
Content-Language: en-US
To: Neowutran <xen@neowutran.ovh>
References: <7oe275z3eap7rhdwmrm4mvqnjnhrpag5cjwnfvwsf7rchhkyjv@pd3abzwdhg6v>
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: <7oe275z3eap7rhdwmrm4mvqnjnhrpag5cjwnfvwsf7rchhkyjv@pd3abzwdhg6v>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.12.2023 08:01, Neowutran wrote:
> I am wondering if the variable "allow_memory_relocate" is still
> relevant today and if its default value is still relevant. 
> Should it be defined to 0 by default instead of 1 (it seems to be a
> workaround for qemu-traditional, so maybe an outdated default value ? ) ? 

So are you saying you use qemu-trad? Otherwise isn't libxl suppressing
this behavior anyway? Or did that code go stale?

> Code extract: 
> 
> tools/firmware/hvmloader/pci.c 
> "
>    /*
>      * Do we allow hvmloader to relocate guest memory in order to
>      * increase the size of the lowmem MMIO hole?  Defaulting to 1
>      * here will
>  mean that non-libxl toolstacks (including xend and
>      * home-grown ones) means that those using qemu-xen will still
>      * experience the memory relocation bug described below; but it
>      * also means that those using q 
> emu-traditional will *not*
>      * experience any change; and it also means that there is a
>      * work-around for those using qemu-xen, namely switching to
>      * qemu-traditional.
>      *
>      * If we defaulted to 0, and failing to resize the hole caused any
>      * problems with qemu-traditional, then there is no work-around.
>      *
>      * Since xend can only use qemu-traditional, I think this is the
>      * option that will have the least impact.
>      */
>     bool allow_memory_relocate = 1;
> "
> 
> "
>         /*
>          * At the moment qemu-xen can't deal with relocated memory regions.
>          * It's too close to the release to make a proper fix; for now,
>          * only allow t
> he MMIO hole to grow large enough to move guest memory
>          * if we're running qemu-traditional.  Items that don't fit will be
>          * relocated into the 64-bit address space.
>          *
>          * This loop now does the following:
>          * - If allow_memory_relocate, increase the MMIO hole until it's
>          *   big enough, or  
> until it's 2GiB
>          * - If !allow_memory_relocate, increase the MMIO hole until it's
>          *   big enough, or until it's 2GiB, or until it overlaps guest
>          *   memory
>          */
>         while ( (mmio_total > (pci_mem_end - pci_mem_start))
>                 && ((pci_mem_start << 1) != 0)
>                 && (allow_memory_relocate
>                     || (((pci_mem_start << 1) >> PAGE_SHIFT)
>                         >= hvm_info->low_mem_pgend)) )
>             pci_mem_start <<= 1;
> "
> 
> The issue it cause is documented in the source code: guest memory can
> be trashed by the hvmloader. 
> 
> Due to this issue, it is impossible to passthrough a large PCI device to a HVM with a lot of ram.
> (https://github.com/QubesOS/qubes-issues/issues/4321). 
> 
> (Forcing "allow_memory_relocate" to be 0 seems to solve the issue
> linked)

What I don't understand here (and what I also can't find helpful logs for)
is: The code in hvmloader is in principle intended to work in both cases.
If there's suspected guest memory corruption, can we get to see the actual
results of the MMIO hole creation and its using for device ranges? If there
indeed is an overlap with guest RAM, that's a bug which wants fixing. I
don't see why we would want to drop allow_memory_relocate in the way you
suggest; quite the other way around, if upstream qemu still can't tolerate
hvmloader doing this, then it wants fixing there such that RAM relocation
can be enabled unconditionally. Then the variable will indeed not be needed
anymore.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 17:00:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 17:00:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657051.1025690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFdSE-0000X4-9J; Tue, 19 Dec 2023 17:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657051.1025690; Tue, 19 Dec 2023 17:00:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFdSE-0000Wx-6h; Tue, 19 Dec 2023 17:00:26 +0000
Received: by outflank-mailman (input) for mailman id 657051;
 Tue, 19 Dec 2023 17:00: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=rImv=H6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFdSC-0000Wr-RV
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 17:00:24 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 195ecc8d-9e90-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 18:00:23 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40d22d3e751so5933345e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 09:00:23 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 f5-20020adff8c5000000b00336485a4cdbsm15554489wrq.70.2023.12.19.09.00.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 09:00:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 195ecc8d-9e90-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703005223; x=1703610023; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:references:cc:to:content-language
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=rV09zXCDKt8jWh7yHzuSrv+XwGyKg1eYYqRr6qulHQI=;
        b=mD/83/ZODWQJ8WhtP3y6UQ77nQqhCWvgiaOvKZjQXzlswMhKe60SAJsQFD74I/+TX2
         pXdeXW+jijTyMFw4ALHToxx6sY0PYIAf23xRlwPxOKRVl1gcVA1gf9sBtyYquC0R6gtL
         957uKt1/xPcCj6nc1dTOxxgmrmkqyzbzLIrsQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703005223; x=1703610023;
        h=in-reply-to:autocrypt: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=rV09zXCDKt8jWh7yHzuSrv+XwGyKg1eYYqRr6qulHQI=;
        b=CRKR5gy7CPIP66WH0lwXpddWcUqUgInrF4WX6Xn6VgnuxwZ0h06Ex2kX2SAedU4Hv2
         muFG/GPiWv01RVAdwunVfG7FbM3swJaS2cbK7KErCfl3p1QURkj5T95NsEd4qINeOaue
         Y2JNUm+5j5ivGc4P0694uLJJsUdYydK6yMgwVBzvDOrVYeVMJg2nEWAGWt1X1AaBs8+4
         J7bSTrPRtVsn4//8csXYpVhBeyxtectcxCOSM1m1mlQBDss3UlDptXyTEJmbXo0CiAQf
         oRKI9Qg0dQ6n4kFaBCv8xnnvHQXnpf9LltWJzoauSSaX3H24XAdZk9JjGt37M3weYLF/
         ATrw==
X-Gm-Message-State: AOJu0Yz0d9E/TSrS77PoskSdRgTlJfoBguDpbdvhCwNGNhImSsDZTAN7
	N1/AtiZPTgNt1VQ01sbR19uaJk/Oc6N4rw==
X-Google-Smtp-Source: AGHT+IEO1m/JB1LTvXCXN7kK7Xmf8H9m1+WyOFushswcCcE5b4DuuzrectS24UiD7AfOH9krLm3JoQ==
X-Received: by 2002:a05:600c:4712:b0:405:2d29:1648 with SMTP id v18-20020a05600c471200b004052d291648mr786466wmo.19.1703005222840;
        Tue, 19 Dec 2023 09:00:22 -0800 (PST)
Content-Type: multipart/mixed; boundary="------------OM0l3WQ0ZAOJy0m1xUrCLxJV"
Message-ID: <1b1116d0-bbda-4fa3-ae41-321e69626641@citrix.com>
Date: Tue, 19 Dec 2023 17:00:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Possible bug in Xen
Content-Language: en-GB
To: Joe Tretter <j.tretter@gmail.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <de8b87e2-a4a2-4e49-80f5-97c745f46500@gmail.com>
 <9cc86706-5791-4967-802c-3e665bc97804@citrix.com>
 <a0aa0326-398f-44a1-a5df-fde3e7fea138@gmail.com>
 <cd153225-5cef-4ff5-97e3-44e485c12305@citrix.com>
 <e787b9ba-7a30-4804-b64e-ef56c71f5ed3@gmail.com>
 <caf76de4-89f5-4ce4-b1e3-1de7a21325dc@citrix.com>
 <15ece71b-d1d1-49d8-b937-f697b50fac39@gmail.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <15ece71b-d1d1-49d8-b937-f697b50fac39@gmail.com>

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

On 19/12/2023 4:28 pm, Joe Tretter wrote:
> On 12/19/23 10:05, Andrew Cooper wrote:
>> Is it always the same test which fails, or is it random?
> Which test fails seems to be random (see attached screenshot).
>> Looking at https://github.com/Tarsnap/scrypt it's only a trivial piece
>> of userspace crypto.
>>
>> The fact that running multiple instances makes it fail more easily
>> points towards some kind of register handling issue, but the fact that
>> it repros only under Xen, and even with eager-fpu (which isn't the
>> default on AMD, sadly), is weird.
>>
>> Looking at the scrypt source, it has alternative routines for the AESNI
>> and SHANI instruction groups.Â  However, because it's a Zen1, we don't
>> have a useful way of filtering visible for PV dom0 userspace.
>>
>> First of all, can you get the exact CPU model and microcode version.Â 
>> `head /proc/cpuinfo` will be enough.Â  But while you're at it, can you
>> include `xl dmesg` too just in case there's something obvious showing up
>> there too.
>>
> I have attachted text files with the (full) cpuinfo and the dmesg.

microcodeÂ Â Â  : 0x8001129

That's 0x08001129 when not rendered brokenly, and the up-to-date version
is 0x08001138 (which itself dates from 2019).

If you can, get a firmware update.Â  Given that it's a Dell, there's a
good chance it's already on LFVS/fwupd.Â  This is definitely the
preferred option.

If not, and you're willing to experiment in definitely unsupported
territory, then move /lib/firmware/amd-ucode/microcode_amd_fam17h.bin
sideways in dom0, and replace it with the attached SummitRidge-08001138
file (it's important to still be named microcode_amd_fam17h.bin in the
end), then rebuild the initrd and reboot.

You already have ucode=scan on Xen's command line, so after the reboot
you should see some messages about updating microcode too.

Irritatingly, AMD don't put client microcode into linux-firmware, but
there are various collections of blobs found in the wild online.Â  I've
picked the one which I think is right for your CPU, and packaged it it
appropriately for Xen.


Anyway, I'm not sure if this will fix anything, but life is too short to
be debugging stuff like this on out-of-date firmware/ucode.

~Andrew
--------------OM0l3WQ0ZAOJy0m1xUrCLxJV
Content-Type: application/octet-stream; name="SummitRidge-08001138"
Content-Disposition: attachment; filename="SummitRidge-08001138"
Content-Transfer-Encoding: base64

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
AAAAAACcfwBWDBIA

--------------OM0l3WQ0ZAOJy0m1xUrCLxJV--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 17:03:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 17:03:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657057.1025701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFdV2-0001G7-Ri; Tue, 19 Dec 2023 17:03:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657057.1025701; Tue, 19 Dec 2023 17:03: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 1rFdV2-0001G0-Nd; Tue, 19 Dec 2023 17:03:20 +0000
Received: by outflank-mailman (input) for mailman id 657057;
 Tue, 19 Dec 2023 17:03:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFdV1-0001FR-Iz
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 17:03:19 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 814953f7-9e90-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 18:03:17 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c39ef63d9so52508765e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 09:03:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o2-20020a5d6842000000b003367147831csm2326730wrw.108.2023.12.19.09.03.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 09:03:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 814953f7-9e90-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703005397; x=1703610197; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=RHYMrshFYG8j7X/tY401lflfVLA/pbGCMTFvTiPbRK0=;
        b=Kc1QTCsW7Ydg7TOlOlBjXGT2U6s+W/bnVtTQ+DquRA0V+1kDmq2txJUbmV5S5hJo7w
         /a1N0Tso60HUDqhGsDqPiEW2zcdbQ/cTmI8wUQsa0QZHbBgSWdF74E1GvcnKaCEdKFej
         peVS4kGUG/HN3g6uLF0h6Uvhg8gbg/dHxN9uhWTIcYVjjehMGVVtc/b6QGj8PA13dirU
         NA7qmYehfr68zxSSc1AHSJLs7dlyLJkH2sDFxzMzkhWvdM2vlv7x1m+Euo1i1Z6NOw1c
         jgfkfMN5e72pAbEDYTzMJQsuURmyFpLS5KRdeGDSjKDK1lUgtZiLTrXtNRyo0/6nnDJy
         jVng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703005397; x=1703610197;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=RHYMrshFYG8j7X/tY401lflfVLA/pbGCMTFvTiPbRK0=;
        b=ON39LAXdGWu/P37FmT3dX53t/N7ie9kogYDjuaIbstR7DkkxcJHQ/Lyc0S1fmwDf2l
         tPaXntmVYBCuh3mEc0jFCtdp4mq1coqGXPMtEC/nldsYQ1BYTtyDwOtmCF2CllJOsuSU
         zpe/8UF3ZsjPfNqjMSpZNpy4IJGAFsKtX4VzSkNyZ3af2u3rw9uIywtdeWxJEY/aiiPZ
         xJVwXQWEzAjuIyhxu94O7pdKOBWFkgEucVAp1wlTAeWlzuA4hIQNdn87v3NWzaFs/Ouw
         0h2hHrpj90ZcZ3Okl0a3ye84YhzB4iguOyEsgQv+CqgY6UTyY/fsyN3KxhhhKhKAuROM
         0Z2A==
X-Gm-Message-State: AOJu0YwtPIn974+/ISNnqNEpAdgZqtWlbRWrexq0lp2Bm8/8V5CMdMbt
	wO5mNEUWNYuni6C4J3LfZjRv
X-Google-Smtp-Source: AGHT+IH3ESTA3zmGaiNkYli0dVlpahFcpWdAsyI+ag5e09M0YvALCMXcBUiyJs8o+Mu9iCtEmFaUkA==
X-Received: by 2002:a05:600c:4ece:b0:40c:6ff4:8edf with SMTP id g14-20020a05600c4ece00b0040c6ff48edfmr3172587wmq.107.1703005397248;
        Tue, 19 Dec 2023 09:03:17 -0800 (PST)
Message-ID: <3546ec55-3e0c-4fdc-9697-0105d20bacfd@suse.com>
Date: Tue, 19 Dec 2023 18:03:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common
Content-Language: en-US
To: Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.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: <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 03:43, Shawn Anastasio wrote:
> Move Arm's bootfdt.c to xen/common so that it can be used by other
> device tree architectures like PPC and RISCV. Only a minor change to
> conditionalize a call to a function only available on EFI-supporting
> targets was made to the code itself.
> 
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> ---
>  xen/arch/arm/Makefile                          |  1 -
>  xen/common/Makefile                            |  1 +
>  xen/common/device-tree/Makefile                |  1 +
>  xen/{arch/arm => common/device-tree}/bootfdt.c | 15 +++++++++------
>  4 files changed, 11 insertions(+), 7 deletions(-)
>  create mode 100644 xen/common/device-tree/Makefile
>  rename xen/{arch/arm => common/device-tree}/bootfdt.c (98%)

I think this wants to come with an update to ./MAINTAINERS, such that
the file doesn't change maintainership.

> --- a/xen/arch/arm/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -431,12 +431,15 @@ static int __init early_scan_node(const void *fdt,
>  {
>      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") )
> +    if ( device_tree_node_matches(fdt, node, "memory") )
> +#if defined(CONFIG_ARM_EFI)
> +        /*
> +         * If Xen has been booted via UEFI, the memory banks are
> +         * populated. So we should skip the parsing.
> +         */
> +        if ( efi_enabled(EFI_BOOT) )
> +            return rc;
> +#endif

I'm not a DT maintainer, but I don't like this kind of #ifdef, the more
that maybe PPC and quite likely RISC-V are likely to also want to support
EFI boot. But of course there may be something inherently Arm-specific
here that I'm unaware of.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 17:07:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 17:07:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657062.1025711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFdZ6-0002L5-BU; Tue, 19 Dec 2023 17:07:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657062.1025711; Tue, 19 Dec 2023 17:07:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFdZ6-0002Ky-8h; Tue, 19 Dec 2023 17:07:32 +0000
Received: by outflank-mailman (input) for mailman id 657062;
 Tue, 19 Dec 2023 17:07:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rom3=H6=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFdZ4-0002Kn-CR
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 17:07:30 +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 173a285c-9e91-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 18:07:29 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-336755f1688so619648f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 09:07:29 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 u9-20020a05600c19c900b0040d18fdfe96sm3708741wmq.44.2023.12.19.09.07.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Dec 2023 09:07:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 173a285c-9e91-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703005649; x=1703610449; 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=GBQ8AHEZ1nE0Ff/rqbZrhyTISpcUQQu3s0Kbjtwe8Qw=;
        b=jNXnkjr3dDA/QeSrY5KNaTO1UBvUwjgLx/J22hDn5aHM0+sc4ERnbcoHq5V29kke8W
         WC+DC5YMZGRJUwMhPMDTQYhyw4Hat4Kgh17F4TzIZXNi4BBHrxi0Aq4pkXzXwH869qbK
         dSzfvm7vyhpsluh3Bj61wmTT5PKJSj0zkdQLI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703005649; x=1703610449;
        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=GBQ8AHEZ1nE0Ff/rqbZrhyTISpcUQQu3s0Kbjtwe8Qw=;
        b=AkjT0Oiiqt/iwX8SF9B1HSM5NvtNcLSdFTrsLDMJns4Oso7fY31ZCIdZ74EI4JAJlA
         6Vid4MEd3W1b4RJCLy9kLuc5Uhh4vzcwriSoTsHxMw2JtJ6mBlwXgCZnJiO0zbwtyqTJ
         F9ku9jViaU9K65MgTeatEYnTNkzcBquv2YZ2KWWb7kyAMZJz2YTo10Qosl6Mr/YNunXL
         iQYHWByDBJQa/ziYb0r0berUP28LmVmTDgjS9Yv6dkEs0HkvU3ZqyBRw5Xh50ynqKYxE
         FVKlsD8ReVuGfhT3WXIN3XX28LVw6hlImiyzYCq7MvhB+h3eNyLoLcKk0TMHmwnNRKb7
         1pnQ==
X-Gm-Message-State: AOJu0Yw+2qhDo3Nz8jpf2PopqQusV0+C6G9nQYIhwd7ov26NbpP9hv0z
	GKnzRzLF5hZW2pbHz/KgSqHbFW6cKQZjAJj754k=
X-Google-Smtp-Source: AGHT+IEDCK+PdKJmnKBWE4qhZG1HusO8eyM02PvVD99cCLAezPeLNhJR+SNEONI7Hj0ujw+bj9/TrA==
X-Received: by 2002:a05:600c:2048:b0:40c:692f:3413 with SMTP id p8-20020a05600c204800b0040c692f3413mr4315829wmg.77.1703005648740;
        Tue, 19 Dec 2023 09:07:28 -0800 (PST)
Date: Tue, 19 Dec 2023 18:07:26 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 4/4] x86/PV: issue branch prediction barrier when
 switching 64-bit guest to kernel mode
Message-ID: <ZYHNzo8UFzOkt0pv@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <2863b0a9-ca7c-3cce-104d-0b6685b0b383@suse.com>
 <ZYCARJAxH9hBD0YQ@macbook>
 <6e022af1-d383-48be-ab54-6ec254aa1502@suse.com>
 <ZYGC8JaJ45tkbqQC@macbook>
 <aacaa220-3e95-4dff-9572-79f9e79faeae@suse.com>
 <ZYGyjQiAomxh0QnI@macbook>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ZYGyjQiAomxh0QnI@macbook>

On Tue, Dec 19, 2023 at 04:11:09PM +0100, Roger Pau MonnÃ© wrote:
> On Tue, Dec 19, 2023 at 03:06:50PM +0100, Jan Beulich wrote:
> > On 19.12.2023 12:48, Roger Pau MonnÃ© wrote:
> > > On Tue, Dec 19, 2023 at 10:56:16AM +0100, Jan Beulich wrote:
> > >> On 18.12.2023 18:24, Roger Pau MonnÃ© wrote:
> > >>> On Tue, Feb 14, 2023 at 05:12:08PM +0100, Jan Beulich wrote:
> > >>>> --- a/xen/arch/x86/pv/domain.c
> > >>>> +++ b/xen/arch/x86/pv/domain.c
> > >>>> @@ -455,6 +455,7 @@ static void _toggle_guest_pt(struct vcpu
> > >>>>  void toggle_guest_mode(struct vcpu *v)
> > >>>>  {
> > >>>>      const struct domain *d = v->domain;
> > >>>> +    struct cpu_info *cpu_info = get_cpu_info();
> > >>>>      unsigned long gs_base;
> > >>>>  
> > >>>>      ASSERT(!is_pv_32bit_vcpu(v));
> > >>>> @@ -467,15 +468,21 @@ void toggle_guest_mode(struct vcpu *v)
> > >>>>      if ( v->arch.flags & TF_kernel_mode )
> > >>>>          v->arch.pv.gs_base_kernel = gs_base;
> > >>>>      else
> > >>>> +    {
> > >>>>          v->arch.pv.gs_base_user = gs_base;
> > >>>> +
> > >>>> +        if ( opt_ibpb_mode_switch &&
> > >>>> +             !(d->arch.spec_ctrl_flags & SCF_entry_ibpb) &&
> > >>>> +             !VM_ASSIST(d, mode_switch_no_ibpb) )
> > >>>> +            cpu_info->spec_ctrl_flags |= SCF_new_pred_ctxt;
> > >>>
> > >>> Likewise similar to the remarks I've made before, if doing an IBPB on
> > >>> entry is enough to cover for the case here, it must also be fine to
> > >>> issue the IBPB right here, instead of deferring to return to guest
> > >>> context?
> > >>>
> > >>> The only concern would be (as you mentioned before) to avoid clearing
> > >>> valid Xen predictions, but I would rather see some figures about what
> > >>> effect the delaying to return to guest has vs issuing it right here.
> > >>
> > >> Part of the reason (aiui) to do things on the exit path was to
> > >> consolidate the context switch induced one and the user->kernel switch
> > >> one into the same place and mechanism.
> > > 
> > > Isn't it kind of a very specific case that we end up doing a
> > > user->kernel switch as part of a context switch?  IOW: would require
> > > the vCPU to be scheduled out at that very specific point.
> > 
> > No, there's no user->kernel switch at the same time as context switch.
> > What I was trying to explain is that with the actual IBPB being issued
> > on exit to guest, both the context switch path and the user->kernel
> > mode switch path set the same indicator, for the exit path to consume.
> 
> Deferring to exit to guest path could be OK, but unless strictly
> needed, which I don't think it's the case, I would request for IBPB to
> be executed in C context rather than assembly one.
> 
> > >>>> + *
> > >>>> + * By default (on affected and capable hardware) as a safety measure Xen,
> > >>>> + * to cover for the fact that guest-kernel and guest-user modes are both
> > >>>> + * running in ring 3 (and hence share prediction context), would issue a
> > >>>> + * barrier for user->kernel mode switches of PV guests.
> > >>>> + */
> > >>>> +#define VMASST_TYPE_mode_switch_no_ibpb  33
> > >>>
> > >>> Would it be possible to define the assist as
> > >>> VMASST_TYPE_mode_switch_ibpb and have it on when enabled?  So that the
> > >>> guest would disable it if unneeded?  IMO negated options are in
> > >>> general harder to understand.
> > >>
> > >> Negative options aren't nice, yes, but VM assists start out as all
> > >> clear.
> > > 
> > > Are you sure?  I see VMASST_TYPE_pae_extended_cr3 getting set in
> > > dom0_construct_pv() and that makes me wonder whether other bits
> > > couldn't start set also.
> > > 
> > > Maybe there's some restriction I'm missing, but I don't see any
> > > wording in the description of the interface that states that all
> > > assists are supposed to start disabled.
> > 
> > Well, that setting of pae_extended_cr3 is in response to the kernel's
> > notes section having a respective indicator. So we still only set the
> > bit in response to what the kernel's asking us to do, just that here
> > we carry out the request ahead of launching the kernel.
> > 
> > Also consider what would happen during migration if there was a
> > default-on assist: At the destination we can't know whether the
> > source simply didn't know of the bit, or whether the guest elected to
> > clear it.
> 
> Hm, I see, so I was indeed missing that aspect.  VM assist is passed
> as a plain bitmap, and there's no signal on which assists the VM had
> available on the source side if not enabled.

Sorry, please bear with me, as I've been further thinking about this.

Why does the assist needs to be default-on?  It's my understanding
that the guest can execute the IBPB itself by writing to the MSR, but
that's suboptimal in the user -> kernel context switch as it then
involves two traps into Xen, but the guest is not left insecure, it
just needs to write the MSR itself like on native.

In fact, if we add an IBPB by default as part of amd64 PV user ->
kernel guest context switch, we are likely doing a double IBPB on
guests not aware of the assist.

IOW: I don't know why doing the assist as guest opt-in would be
insecure, in fact I think it's the best approach (again I might be
missing something).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 17:07:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 17:07:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657063.1025716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFdZ6-0002OS-LD; Tue, 19 Dec 2023 17:07:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657063.1025716; Tue, 19 Dec 2023 17:07:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFdZ6-0002NJ-Ff; Tue, 19 Dec 2023 17:07:32 +0000
Received: by outflank-mailman (input) for mailman id 657063;
 Tue, 19 Dec 2023 17:07:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z0wA=H6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFdZ5-0002Kn-1K
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 17:07:31 +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 17a9c9b1-9e91-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 18:07:30 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3367632ce7bso472143f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 09:07:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g16-20020adfa490000000b00336781b4915sm156557wrb.43.2023.12.19.09.07.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 09:07:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17a9c9b1-9e91-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703005649; x=1703610449; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SxS7tCfJ+1Cxjb1/uT78QsL4rUltdTWWWPBpZVxHDTY=;
        b=J+MQ7zAabT3Bn4n+E6nWsvBpNikzjiZIwmMRZFhtI+3SVi4jDKLg3ky8i9QSVdmhJl
         5EbRGNhWxeyHGyTrHM78wKb0Z7VMCEGWtgw1a0mbkhcOd82zX/vhc3XR63bEZ5n0V56U
         FPE/G4oQZLXZXRDb4ZuEdBR78lBh8fKFihu0cHLVK3IKHxapsQQW6ybDyvbtOPClebEj
         YaahU2sQRGw5SOiu4gx9dnjGdKvkx8ErVxrapzp1aMKcWP28sorG8SFjsHBIV3WQYB0e
         TwA/q5s4pXrFQZKML2hYn7p696DQtp8FjGF0myA9oyGnMNWBnKjp4nzpPFbWVsQgHsOj
         ujmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703005649; x=1703610449;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=SxS7tCfJ+1Cxjb1/uT78QsL4rUltdTWWWPBpZVxHDTY=;
        b=UPtjL+j1w86lgzccYInOFF4HcmcTq5ZEMCsgUm6a4puWvG8SXQwIh329e7Cu31rSqJ
         NyYJqKnrJ11d8SnFI68rIOjIDZQocWL6X+h9EqweU1tTSP+SFqwxJxnkxYMafEnKBwyp
         CDo7UKBoowZ0A283huNsRarKphkLSqkdaWRZ+cEfHrHy2b2yO9DZf8l/QPiw9xJSLlIL
         8iQrV2fJU1SHsWuGiggmaivbweG96RgzuvTV5T/gWf7Qa0U3Tt/AIBTVgEE0Y58M58gb
         F48ccGEFe+UmRwoWSdSHrYFQDxQVV6xr8Oje42V+BR4h9mV51UzW/9R4NJ31n11yaB9t
         0jHA==
X-Gm-Message-State: AOJu0Yw+53Pg9bpo2car5tVlRJ3Df9586sqpp8vIk1g8SJcuKJnY+DXy
	lNsVYjjzKTSdbkP+wAGKvKcGrMKnl8KUDye+ayvZ
X-Google-Smtp-Source: AGHT+IHVOX+tq25z6o8s8eKkRi2A9qI/FKJBd+hqG/0LfdLkCA9/VPjYq/YGlI6bFpertfI+mLsvcA==
X-Received: by 2002:adf:ec8a:0:b0:336:62f7:2304 with SMTP id z10-20020adfec8a000000b0033662f72304mr3280641wrn.49.1703005649604;
        Tue, 19 Dec 2023 09:07:29 -0800 (PST)
Message-ID: <5c43ff2a-567d-4aad-8406-99adaf07332d@suse.com>
Date: Tue, 19 Dec 2023 18:07:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/7] xen/asm-generic: Introduce generic static-shmem.h
Content-Language: en-US
To: Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <ea548f9c6cefff54dadf83446d4f5c721281f247.1702607884.git.sanastasio@raptorengineering.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: <ea548f9c6cefff54dadf83446d4f5c721281f247.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 03:43, Shawn Anastasio wrote:
> --- /dev/null
> +++ b/xen/include/asm-generic/static-shmem.h
> @@ -0,0 +1,12 @@
> +/* SPDX-License-Identifier:  GPL-2.0-only */
> +
> +#ifndef __ASM_GENERIC_STATIC_SHMEM_H__
> +#define __ASM_GENERIC_STATIC_SHMEM_H__
> +
> +static inline int process_shm_node(const void *fdt, int node,
> +                                   uint32_t address_cells, uint32_t size_cells)
> +{
> +    return -EINVAL;
> +}

This talking of fdt and cells doesn't look very generic to me, I'm
afraid. Plus if such a header was introduced, I'd kind of expect it
to also be used by Arm's !CONFIG_STATIC_SHM section - no need to
duplicate anything.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 18:20:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 18:20:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657071.1025731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFehM-0006ln-U4; Tue, 19 Dec 2023 18:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657071.1025731; Tue, 19 Dec 2023 18:20:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFehM-0006lg-RI; Tue, 19 Dec 2023 18:20:08 +0000
Received: by outflank-mailman (input) for mailman id 657071;
 Tue, 19 Dec 2023 18:20:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Dspo=H6=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFehL-0006cR-CJ
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 18:20:07 +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 39f8db44-9e9b-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 19:20:03 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-557-ng6tSX5TO9q6N0AkdP052Q-1; Tue, 19 Dec 2023 13:19:54 -0500
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com
 [10.11.54.3])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9391184B04B;
 Tue, 19 Dec 2023 18:19:53 +0000 (UTC)
Received: from redhat.com (unknown [10.39.194.175])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 81F601121306;
 Tue, 19 Dec 2023 18:19:48 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39f8db44-9e9b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1703010002;
	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=kdHrCBh+aFwerdanskMZMdWR+mM1k+MIbCkQXlcqavA=;
	b=YUzEEySBxcELbNg2caIEBGbXo1YJnCd4+VMKq/hxIgtYu/AO5v1qTcQUzzyeo6WM89UuYQ
	68rHFSIGHAtjX7SF3uC/yzLJArla9GFtWnpPYx2KMP6QWHadUmWQKN3qxWWLd6DY2fbtEb
	f3DNBL9RSzQtmLo9s8iuPGAWf7/deyw=
X-MC-Unique: ng6tSX5TO9q6N0AkdP052Q-1
Date: Tue, 19 Dec 2023 19:19:47 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 04/14] aio: make
 aio_context_acquire()/aio_context_release() a no-op
Message-ID: <ZYHew2poxuJJRyhC@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-5-stefanha@redhat.com>
 <ZYG2mSe1JWnC0tq_@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ZYG2mSe1JWnC0tq_@redhat.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3

Am 19.12.2023 um 16:28 hat Kevin Wolf geschrieben:
> Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> > aio_context_acquire()/aio_context_release() has been replaced by
> > fine-grained locking to protect state shared by multiple threads. The
> > AioContext lock still plays the role of balancing locking in
> > AIO_WAIT_WHILE() and many functions in QEMU either require that the
> > AioContext lock is held or not held for this reason. In other words, the
> > AioContext lock is purely there for consistency with itself and serves
> > no real purpose anymore.
> > 
> > Stop actually acquiring/releasing the lock in
> > aio_context_acquire()/aio_context_release() so that subsequent patches
> > can remove callers across the codebase incrementally.
> > 
> > I have performed "make check" and qemu-iotests stress tests across
> > x86-64, ppc64le, and aarch64 to confirm that there are no failures as a
> > result of eliminating the lock.
> > 
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > Reviewed-by: Eric Blake <eblake@redhat.com>
> > Acked-by: Kevin Wolf <kwolf@redhat.com>
> 
> I knew why I wasn't confident enough to give a R-b... This crashes
> qemu-storage-daemon in the qemu-iotests case graph-changes-while-io.
> 
> qemu-storage-daemon: ../nbd/server.c:2542: nbd_co_receive_request: Assertion `client->recv_coroutine == qemu_coroutine_self()' failed.
> 
> (gdb) bt
> #0  0x00007fdb00529884 in __pthread_kill_implementation () from /lib64/libc.so.6
> #1  0x00007fdb004d8afe in raise () from /lib64/libc.so.6
> #2  0x00007fdb004c187f in abort () from /lib64/libc.so.6
> #3  0x00007fdb004c179b in __assert_fail_base.cold () from /lib64/libc.so.6
> #4  0x00007fdb004d1187 in __assert_fail () from /lib64/libc.so.6
> #5  0x0000557f9f9534eb in nbd_co_receive_request (errp=0x7fdafc25eec0, request=0x7fdafc25ef10, req=0x7fdaf00159c0) at ../nbd/server.c:2542
> #6  nbd_trip (opaque=0x557fa0b33fa0) at ../nbd/server.c:2962
> #7  0x0000557f9faa416b in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at ../util/coroutine-ucontext.c:177
> #8  0x00007fdb004efe90 in ?? () from /lib64/libc.so.6
> #9  0x00007fdafc35f680 in ?? ()
> #10 0x0000000000000000 in ?? ()
> (gdb) p *client
> $2 = {refcount = 4, close_fn = 0x557f9f95dc40 <nbd_blockdev_client_closed>, exp = 0x557fa0b30590, tlscreds = 0x0, tlsauthz = 0x0, sioc = 0x557fa0b33d90, ioc = 0x557fa0b33d90,
>   recv_coroutine = 0x7fdaf0015eb0, send_lock = {locked = 0, ctx = 0x0, from_push = {slh_first = 0x0}, to_pop = {slh_first = 0x0}, handoff = 0, sequence = 0, holder = 0x0},
>   send_coroutine = 0x0, read_yielding = false, quiescing = false, next = {tqe_next = 0x0, tqe_circ = {tql_next = 0x0, tql_prev = 0x557fa0b305e8}}, nb_requests = 1, closing = false,
>   check_align = 1, mode = NBD_MODE_EXTENDED, contexts = {exp = 0x557fa0b30590, count = 1, base_allocation = true, allocation_depth = false, bitmaps = 0x0}, opt = 7, optlen = 0}
> (gdb) p co_tls_current
> $3 = (Coroutine *) 0x7fdaf00061d0

This one isn't easy to debug...

The first problem here is that two nbd_trip() coroutines are scheduled
in the same iothread, and creating the second one overwrites
client->recv_coroutine, which triggers the assertion in the first one.

This can be fixed by introducing a new mutex in NBDClient and taking it
in nbd_client_receive_next_request() so that there is no race between
checking client->recv_coroutine != NULL and setting it to a new
coroutine. (Not entirely sure why two different threads are doing this,
maybe the main thread reentering in drained_end and the iothread waiting
for the next request?)

However, I'm seeing new assertion failures when I do that:
client->quiescing isn't set in the -EAGAIN case in nbd_trip(). I haven't
really figured out yet where this comes from. Taking the new NBDClient
lock in the drain functions and in nbd_trip() doesn't seem to be enough
to fix it anyway. Or maybe I didn't quite find the right places to take
it.

I'm not sure if the list of NBD clients needs a lock, too, or if it is
only ever accessed in the main thread, but that should be unrelated to
the assertion failures I'm seeing.

Kevin



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 18:22:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 18:22:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657075.1025741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFejC-0007ai-F0; Tue, 19 Dec 2023 18:22:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657075.1025741; Tue, 19 Dec 2023 18:22:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFejC-0007ab-BX; Tue, 19 Dec 2023 18:22:02 +0000
Received: by outflank-mailman (input) for mailman id 657075;
 Tue, 19 Dec 2023 18:21: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=XNVD=H6=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1rFeiW-0007Qs-Ea
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 18:21:20 +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 67240f62-9e9b-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 19:21:18 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5534dcfdd61so5406547a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 10:21:18 -0800 (PST)
Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com.
 [209.85.208.42]) by smtp.gmail.com with ESMTPSA id
 g6-20020a056402090600b0054c9211021csm11700034edz.69.2023.12.19.10.21.16
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 10:21:16 -0800 (PST)
Received: by mail-ed1-f42.google.com with SMTP id
 4fb4d7f45d1cf-552ff8d681aso7034642a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 10:21:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67240f62-9e9b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linuxfoundation.org; s=google; t=1703010078; x=1703614878; 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=MEyPrJfFY8wsnlnRqNTI0PF/m1A8xGUMS6bKe4vqiaM=;
        b=ch0SqNIsLR3LuNhBzaFC/jSfT7fctrYHPfgfAfuGz+WJR8ZKyCBQMV/GukN8CVIeQC
         PV+zt8X4peZuz8maMIGVqrSYOKj/nSPi9c5wh/D47gazLXZCQBo53MsCAxAvchhlykKA
         oK4FM4Mf/D1dPinGATs7Y9Qj9do/Abco4bNcM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703010078; x=1703614878;
        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=MEyPrJfFY8wsnlnRqNTI0PF/m1A8xGUMS6bKe4vqiaM=;
        b=WZbLx47waVexbxVXzraPRryd7dBsSpTOTslRApi8G3xtjiElpp9CMAgaVAG58jb2CL
         iYDA0ahy2KhkEt/ikHX6CaHHPGUTEGD3Fyw0VWWPmYA8wkIGpMR/T4kNT93wa0ST44hL
         wF/wBlR7g2vI3YdRiEA7yYaGEhOi18a4Do0L8zW5vdCSxFXgRJvMbbyfHkrWgdpV9oC+
         zI0DOmmMdWA5yaaNso2rCaPPxuOAamxsQqRrMUM2N3qgIbO7nwRo8Q0jHS/OTheV3KNj
         wdYTA07lZ8K8yPVGg8KOTqKtTyB+v8U6X/yUHWisdMsgpRJQuYfX7af9UicDF9pVSdGG
         V39g==
X-Gm-Message-State: AOJu0YzRiuJ67SqdCWllptTmkWBtwWp7sMGIK2gQewzgzUOCWpdv/mhe
	h1M+AG1I8Yq7PvNYIXJOe62s9+qYNgB1J+Ux74tvVSla
X-Google-Smtp-Source: AGHT+IHvYryxwr7PzuQHFHdlwYJa58t2PuhUS/x9Dws3Q+sO/+WSaHADlSewvvnK1zelWgxFFAZFKg==
X-Received: by 2002:a50:a6de:0:b0:552:f57d:ac8c with SMTP id f30-20020a50a6de000000b00552f57dac8cmr1660142edc.12.1703010077828;
        Tue, 19 Dec 2023 10:21:17 -0800 (PST)
X-Received: by 2002:a17:907:76f9:b0:a23:48d2:8314 with SMTP id
 kg25-20020a17090776f900b00a2348d28314mr1593362ejc.42.1703010076267; Tue, 19
 Dec 2023 10:21:16 -0800 (PST)
MIME-Version: 1.0
References: <202312191507.348721d2-oliver.sang@intel.com> <20231219095821.GAZYFpPUSKexZAcl05@fat_crate.local>
In-Reply-To: <20231219095821.GAZYFpPUSKexZAcl05@fat_crate.local>
From: Linus Torvalds <torvalds@linuxfoundation.org>
Date: Tue, 19 Dec 2023 10:20:58 -0800
X-Gmail-Original-Message-ID: <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com>
Message-ID: <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com>
Subject: Re: [linus:master] [x86/entry] be5341eb0d: WARNING:CPU:#PID:#at_int80_emulation
To: Borislav Petkov <bp@alien8.de>
Cc: kernel test robot <oliver.sang@intel.com>, Thomas Gleixner <tglx@linutronix.de>, oe-lkp@lists.linux.dev, 
	lkp@intel.com, linux-kernel@vger.kernel.org, 
	Dave Hansen <dave.hansen@linux.intel.com>, 
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Tue, 19 Dec 2023 at 01:58, Borislav Petkov <bp@alien8.de> wrote:
>
> Looking at the dmesg, I think you missed the most important part - the
> preceding line:
>
> [   13.480504][   T48] CFI failure at int80_emulation+0x67/0xb0 (target: sys_ni_posix_timers+0x0/0x70; expected type: 0xb02b34d9)
>                         ^^^^^^^^^^^

So I think the issue here is that sys_ni_posix_timers is just linker
alias that is used for any non-implemented posix timer system call.

See:

  #define __SYS_NI(abi, name)                                             \
        SYSCALL_ALIAS(__##abi##_##name, sys_ni_posix_timers);

and this all worked fine when the actual call to this was done in
assembly code that happily just called that function directly and
didn't care about any argument types.

But commit be5341eb0d43 ("x86/entry: Convert INT 0x80 emulation to
IDTENTRY") moved that call from assembly into C, and in the process
ended up enabling CFI for it all, and now the compiler will check that
the function types match. Which they don't, because we use that dummy
function (I don't think they do in general).

I don't know what the best fix is. Either CFI should be turned off for
that call, or we should make sure to generate those NI system calls
with the proper types.

The asm didn't care - as long as the function put -ENOSYS in %rax, it
did the right thing - but the kCFI stuff means that the C code now
cares (and checks) that prototypes etc really match.

Maybe we should just get rid of SYS_NI() _entirely_.

I think the only user is the posix-timers stuff, and everything else
uses COND_SYSCALL(), which actually *generates* all the proper weak
functions with all the proper function signatures, instead of playing
around with linker aliases that don't have them.

Afaik, the only reason the posix timers do that odd alias is because
they want to have that

        pr_err_once("process %d (%s) attempted a POSIX timer syscall "
                    "while CONFIG_POSIX_TIMERS is not set\n",
                    current->pid, current->comm);

which I don't think is really worth it. It goes back to 2016 when the
posix timers subsystem became configurable, and I doubt it is worth it
any more (and it was probably of dubious use even at the time).

But I've not had anything to do with the low-level kCFI stuff, and
I'll leave it to Thomas whether that SYS_NI() mess should just be
removed.

I do like the notion of just removing SYS_NI entirely, replacing it
with the standard COND_SYSCALL() thing (and same for the COMPAT
variables, of course).

Thomas?

               Linus


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 18:29:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 18:29:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657082.1025751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFeqj-0000ca-6S; Tue, 19 Dec 2023 18:29:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657082.1025751; Tue, 19 Dec 2023 18:29:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFeqj-0000cT-3N; Tue, 19 Dec 2023 18:29:49 +0000
Received: by outflank-mailman (input) for mailman id 657082;
 Tue, 19 Dec 2023 18:29: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 1rFeqi-0000cN-CU
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 18:29: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 1rFeqg-0008Pb-Tn; Tue, 19 Dec 2023 18:29:46 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.3.234]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFeqg-0001dQ-O8; Tue, 19 Dec 2023 18:29:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=SPY4PwFThbClqhYOuZY7E7Am+IhOnNEU8YBVomMQ4Eg=; b=AzAWo5DFm9nstm5R4y2jy2ihIl
	Vs6KIN5Y/ZIFPa4rBfgV8XyZ/G1ZdJxr8wTC54Lc7AvF78eQv6DSqJuk/Ba3LD9xSQ/nc2mUrybdv
	9lcqXm8sK21BLNU1Owi7WnmZx089rj2biP2u7jdKBGL3SFQrYo5Z2fFqM+notXso8gxg=;
Message-ID: <5fc9ad7a-1281-46da-abff-0aa2d2beca14@xen.org>
Date: Tue, 19 Dec 2023 18:29:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com>
 <3546ec55-3e0c-4fdc-9697-0105d20bacfd@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3546ec55-3e0c-4fdc-9697-0105d20bacfd@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 19/12/2023 17:03, Jan Beulich wrote:
> On 15.12.2023 03:43, Shawn Anastasio wrote:
>> Move Arm's bootfdt.c to xen/common so that it can be used by other
>> device tree architectures like PPC and RISCV. Only a minor change to
>> conditionalize a call to a function only available on EFI-supporting
>> targets was made to the code itself.
>>
>> Suggested-by: Julien Grall <julien@xen.org>
>> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>> ---
>>   xen/arch/arm/Makefile                          |  1 -
>>   xen/common/Makefile                            |  1 +
>>   xen/common/device-tree/Makefile                |  1 +
>>   xen/{arch/arm => common/device-tree}/bootfdt.c | 15 +++++++++------
>>   4 files changed, 11 insertions(+), 7 deletions(-)
>>   create mode 100644 xen/common/device-tree/Makefile
>>   rename xen/{arch/arm => common/device-tree}/bootfdt.c (98%)
> 
> I think this wants to come with an update to ./MAINTAINERS, such that
> the file doesn't change maintainership.
> 
>> --- a/xen/arch/arm/bootfdt.c
>> +++ b/xen/common/device-tree/bootfdt.c
>> @@ -431,12 +431,15 @@ static int __init early_scan_node(const void *fdt,
>>   {
>>       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") )
>> +    if ( device_tree_node_matches(fdt, node, "memory") )
>> +#if defined(CONFIG_ARM_EFI)
>> +        /*
>> +         * If Xen has been booted via UEFI, the memory banks are
>> +         * populated. So we should skip the parsing.
>> +         */
>> +        if ( efi_enabled(EFI_BOOT) )
>> +            return rc;
>> +#endif
> 
> I'm not a DT maintainer, but I don't like this kind of #ifdef, the more
> that maybe PPC and quite likely RISC-V are likely to also want to support
> EFI boot. But of course there may be something inherently Arm-specific
> here that I'm unaware of.

Right now, I can't think how this is Arm specific. If you are using 
UEFI, then you are expected to use the UEFI memory map rather than the 
content of the device-tree.

However, we don't have a CONFIG_EFI option. It would be nice to 
introduce one but I am not sure I would introduce it just for this #ifdef.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 18:36:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 18:36:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657086.1025762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFewa-00038r-Ru; Tue, 19 Dec 2023 18:35:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657086.1025762; Tue, 19 Dec 2023 18:35:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFewa-00038k-N7; Tue, 19 Dec 2023 18:35:52 +0000
Received: by outflank-mailman (input) for mailman id 657086;
 Tue, 19 Dec 2023 18:35:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFewZ-00038e-NE
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 18:35:51 +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 1rFewZ-0008W9-8t; Tue, 19 Dec 2023 18:35:51 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.3.234]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFewZ-0001y5-1g; Tue, 19 Dec 2023 18:35:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=FYbAyzkqvFiTw5GWoZjdB+7DSNxMG9waUewCjzSHIow=; b=T2KqbSh0hRV6VlXYjMx2pQLl1z
	xnX/P1g1dIS7H3noau6B4fgxMrA/PHpeLX3jBXGGUamKReiKMIvE4p2dZuBo9359TdZAMusohA6GC
	C9sAVGmYZkML7rubJLeZqpGJ+NAd47Ek7c8wiGz3QVjVsazaYp+RtG4URHh7G930cZdo=;
Message-ID: <90c9b993-5c3b-4be3-b273-8c3bba842e94@xen.org>
Date: Tue, 19 Dec 2023 18:35:49 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen/arm: ffa: return fpi size from
 FFA_PARTITION_INFO_GET
Content-Language: en-GB
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Jens Wiklander <jens.wiklander@linaro.org>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 "patches@linaro.org" <patches@linaro.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20231213103135.2346238-1-jens.wiklander@linaro.org>
 <62A3B41A-0362-411A-89D3-64787DDC1AE1@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <62A3B41A-0362-411A-89D3-64787DDC1AE1@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 18/12/2023 14:33, Bertrand Marquis wrote:
> Hi Jens,
> 
>> On 13 Dec 2023, at 11:31, Jens Wiklander <jens.wiklander@linaro.org> wrote:
>>
>> Until now has FFA_PARTITION_INFO_GET always returned zero in w3, but
>> FF-A v1.1 requires FFA_PARTITION_INFO_GET to return the size of each
>> partition information descriptor returned if
>> FFA_PARTITION_INFO_GET_COUNT_FLAG isn't set.
>>
> 
> Good finding.
> 
>> The SPMC queried with FFA_PARTITION_INFO_GET must also return the each
>> partition information descriptor returned so fix this by passing along
>> the same value.
>>
>> Fixes: caf6491e95a9 ("xen/arm: ffa: support guest FFA_PARTITION_INFO_GET")
>> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
> 
> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

It is now committed.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 18:39:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 18:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657090.1025770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFf0G-0003rI-9p; Tue, 19 Dec 2023 18:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657090.1025770; Tue, 19 Dec 2023 18:39:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFf0G-0003rB-79; Tue, 19 Dec 2023 18:39:40 +0000
Received: by outflank-mailman (input) for mailman id 657090;
 Tue, 19 Dec 2023 18:39:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFf0F-0003po-5c
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 18:39:39 +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 1rFf0E-00009h-MK; Tue, 19 Dec 2023 18:39:38 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.3.234]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFf0E-0002C0-GL; Tue, 19 Dec 2023 18:39: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=Ksz/ketnprKdw4UGq9ZBWd7cTMfB8j14aqTnUmBh6IY=; b=BnEH/ThZz4qch8n3om0u/ZiCOu
	DEgT08LxR3NreNLOvBsrxt7q+iq6mvP0AkLnyOdZOIPirjf91NmIisbY28lvxpOeKjb1YOhglS8yo
	4d12icDmbEZZ39VkRZJ4oLLAo/SGhIJ/OGH7TBlqCpUH6rwbrDokZNCcjN69z5CuL0iM=;
Message-ID: <ce925557-a030-44a2-b991-661d6f64d05e@xen.org>
Date: Tue, 19 Dec 2023 18:39:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] docs/misra/rules.rst: add Rule 17.1
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
 jbeulich@suse.com, george.dunlap@citrix.com, bertrand.marquis@arm.com,
 roger.pau@citrix.com, roberto.bagnara@bugseng.com,
 federico.serafini@bugseng.com
References: <alpine.DEB.2.22.394.2312081738100.1703076@ubuntu-linux-20-04-desktop>
 <d7b880b2-10ec-4c3d-bf12-1c29995857d6@xen.org>
 <alpine.DEB.2.22.394.2312151251450.3175268@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312151251450.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 15/12/2023 21:02, Stefano Stabellini wrote:
> On Fri, 15 Dec 2023, Julien Grall wrote:
>> Hi Stefano,
>>
>> On 09/12/2023 01:39, Stefano Stabellini wrote:
>>>
>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>> ---
>>> Changes in v2:
>>> - separated 17.1 in its own patch
>>> - add a comment
>>>
>>> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
>>> index 8a659d8d47..f29b4c3d9a 100644
>>> --- a/docs/misra/rules.rst
>>> +++ b/docs/misra/rules.rst
>>> @@ -189,6 +189,12 @@ existing codebase are work-in-progress.
>>>         - A switch-expression shall not have essentially Boolean type
>>>         -
>>>    +   * - `Rule 17.1
>>> <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
>>> +     - Required
>>> +     - The features of <stdarg.h> shall not be used
>>> +     - It is understood that in some limited circumstances <stdarg.h> is
>>> +       appropriate to use, such as the implementation of printk.
>>
>> The last bullet point is unclear to me. You don't define what "appropriate"
>> means here. So who is going to decide? Also, how is this going to be deviated?
>>
>> Possibly the solution here is to remove the last bullet point and have a
>> paragraph in deviations.rst explaining why we are using va_args.
> 
> Actually, I agree with you. I added the last bullet to address Jan's
> concern:
> https://marc.info/?l=xen-devel&m=170191695511513
> https://marc.info/?l=xen-devel&m=170193528120968
> 
> This was my original reply:
> 
> "We agreed that in certain situations stdarg.h is OK to use and in those
> cases we would add a deviation. Would you like me to add something to
> that effect here? I could do that but it would sound a bit vague.  Also
> if we want to specify a project-wide deviation it would be better
> documented in docs/misra/deviations.rst. I would leave Rule 17.1 without
> a note."
> 
> My preference is still to remove the last bullet (because too generic)
> and add any specific information to deviations.rst as usual.
> 
> Julien, would you be OK with this patch if I remove the last bullet and
> leave it blank?

I would be fine with that:

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 18:56:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 18:56:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657094.1025781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfFv-0000AQ-KW; Tue, 19 Dec 2023 18:55:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657094.1025781; Tue, 19 Dec 2023 18:55:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfFv-0000AD-GK; Tue, 19 Dec 2023 18:55:51 +0000
Received: by outflank-mailman (input) for mailman id 657094;
 Tue, 19 Dec 2023 18:55:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JZnh=H6=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rFfFu-0000A4-6y
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 18:55:50 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20601.outbound.protection.outlook.com
 [2a01:111:f403:2009::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 384feedf-9ea0-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 19:55:48 +0100 (CET)
Received: from CH0PR13CA0052.namprd13.prod.outlook.com (2603:10b6:610:b2::27)
 by CYYPR12MB8961.namprd12.prod.outlook.com (2603:10b6:930:bf::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Tue, 19 Dec
 2023 18:55:43 +0000
Received: from DS2PEPF0000343B.namprd02.prod.outlook.com
 (2603:10b6:610:b2:cafe::fa) by CH0PR13CA0052.outlook.office365.com
 (2603:10b6:610:b2::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.17 via Frontend
 Transport; Tue, 19 Dec 2023 18:55:42 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS2PEPF0000343B.mail.protection.outlook.com (10.167.18.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Tue, 19 Dec 2023 18:55:42 +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.34; Tue, 19 Dec
 2023 12:55:41 -0600
Received: from [192.168.153.23] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Tue, 19 Dec 2023 12:55:39 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 384feedf-9ea0-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=kCAaoQPz7UyOU+NdpaciepGIJYXYJMWA4ROLEutlAN2+se6M1JMujf80z6j2r2S43/mgfGjGysJEkFta8TR/GBFXtQMo7uXgTV1UvEikjiQNH9PLda1TO5aCzl5lYlIJRmKGIdMzq5SOUwGtyWPoEFAPxpcIygwNERKIzmi3IbC8RIuYwenU9yUsP4/qixZmkEXFPd8SKBOsSYS32I1HkpBrWc8yV9Px9JL1NASzGfInhVH6LMHYChEqFAN7ifU04F/y7zCTgzXLBthAPi0WAMgU1WOd6HdWd5/7e3Ycgp/QM4ty2mn51puQaUSxg0FmYCFGyR3ItZ7o5ecdethqHw==
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=z+T3dFiMzKE7MzhHJDKXbZ6gUKXuEOHFt5pbdWoq2TE=;
 b=IwKi+kjfTEO1Ct1jeJyV6YIJcvMs6CyLWHenumFewVXXgKO1JL0ETiLAh8D6a9GcA3AJiqjsC+7ubNVwIUzfSBxi9CP9vfp4UERWF0IO0QFykUOryoKwYTmLa6akjJkzqhU3fAoLGMR6IaMRaNEva5yl1D6feiNnJwSK2hSICLOkpoQ3S6jROsp++ypBrOvS6HsvZJEEsm6xq8l9Gm2ltN2Ut66Ms1bEM7WZjpENBCwomkn2GSwe83234XiXuz4ykd0K32g/oyqenNroxnTxYyTXCvEempXwOEV9qb/vflWByiwZtke38KWdigpBNB2mOu9X51yQ9xGffoff79BCdQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=z+T3dFiMzKE7MzhHJDKXbZ6gUKXuEOHFt5pbdWoq2TE=;
 b=EfU25fBgOUowgojEOQevmaN4xtQdo72yCkCsb/fQFWqdfv7wzM1vLY0GlHoE9kY+x9tBcHeAkXmdi/Y4pH67In/pEssM27pxx/6/HvpjYTw31DoctIh8p+jN3Saz9tzzdJbwAQa9m84D/RTouWv3uHQ2KkKySFIB8LUMd0pxq1g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <d9241e4b-ccae-45e6-a515-8a6f005a43e4@amd.com>
Date: Tue, 19 Dec 2023 13:55:39 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/5] xen/vpci: move xen_domctl_createdomain vPCI flag
 to common
Content-Language: en-US
To: Rahul Singh <Rahul.Singh@arm.com>
CC: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>,
	"Julien Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>, David Scott
	<dave@recoil.org>, =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Oleksandr Andrushchenko
	<oleksandr_andrushchenko@epam.com>, Christian Lindig
	<christian.lindig@cloud.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
References: <20231113222118.825758-1-stewart.hildebrand@amd.com>
 <20231113222118.825758-3-stewart.hildebrand@amd.com>
 <da9eb6fe-3eaf-de9a-2790-79165ecfd917@suse.com>
 <e6019342-8e46-48c9-8211-26105c61fa52@amd.com>
 <3BA22E6C-F2AE-487D-AF2C-F9AE67E429D7@arm.com>
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <3BA22E6C-F2AE-487D-AF2C-F9AE67E429D7@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF0000343B:EE_|CYYPR12MB8961:EE_
X-MS-Office365-Filtering-Correlation-Id: e399e7b6-fa90-48de-4eab-08dc00c419b8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	XYDWC3XtgPAB+K9cvUcUSiGaYGTdHxesVAY11lVkPbtgo16Ou+pdEnBAoiCZtL0vkPrfftq6T3Mao25Wt1Pgf6gi3CKK4tbIamqWEOMYfyGIJv68ShsyIRaDFFdHjuxToMIgxRLbTkcf3ZoZWrFQBuP6BWa5PkvLUVNjM3L+PbVAhxnJ5QslxW5Jns4P3OwYw4SSj1rde9AkHNYat32ifRsom0L1FoueNd3jSfJVISSct3lJ5kQt7e8S1wLr9iS7Rv3a1uB+7CTLcRPU1UEsOofNOWuZKcT1d32774faPtH+17uWjbEXDtemeiYBpLYmSKZf/vzNFJteqtGB5YRwkzuocrBjuhoTJcp8wij3ktxmyrJmy2KvtufUQjZcQGYyZFndKXotJxet0cW+bWvnLsKuJbL0oDy325dZhFvHA9FOVSrvc/4GDCNXY07qjumn3pICus6p/2Zj+eWV2YzsG2PidEqeM0+74XuDc0pen7nzly2SXKKxq9qDF0HPcGuOHZ+VoIPa6+hANHql9hIO7BPRlc+u9OMUyGFnR2KEDVq11vWG3MilNcozE0U92oXQIgb36mlbwehlGgUYQM/UsUcrEP4hllgRkdC2/oSWBm7HJM8zRN0zZiShbwmhz+99csaALxYZ80m0/H06Gx3fGLYGEuSecBYcuVPKysFR7jD/zx261LkCSkvUo9mGXSOYHUTtqBilrOFU2dxrpdVmrrMFvzOlelbRUIe0B/68hCwaaKFiMKiuxDpKF4RnlaLEiQRmqpYcgTVf2NJFGIlnUg8zAsY2nf8dnd1qcSYc5Jo=
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:(13230031)(4636009)(136003)(396003)(346002)(39860400002)(376002)(230922051799003)(451199024)(64100799003)(82310400011)(186009)(1800799012)(40470700004)(46966006)(36840700001)(2906002)(5660300002)(7416002)(41300700001)(31696002)(356005)(36756003)(81166007)(82740400003)(86362001)(426003)(336012)(966005)(40480700001)(26005)(2616005)(36860700001)(16576012)(70206006)(70586007)(54906003)(316002)(83380400001)(6916009)(478600001)(53546011)(31686004)(47076005)(40460700003)(44832011)(8676002)(8936002)(4326008)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2023 18:55:42.4085
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e399e7b6-fa90-48de-4eab-08dc00c419b8
X-MS-Exchange-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:
	DS2PEPF0000343B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8961

On 12/15/23 04:36, Rahul Singh wrote:
> Hi Stewart,
> 
>> On 29 Nov 2023, at 9:25â€¯pm, Stewart Hildebrand <Stewart.Hildebrand@amd.com> wrote:
>>
>> On 11/14/23 04:11, Jan Beulich wrote:
>>> On 13.11.2023 23:21, Stewart Hildebrand wrote:
>>>> @@ -709,10 +710,17 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>>>>         return -EINVAL;
>>>>     }
>>>>
>>>> +    if ( vpci && !hvm )
>>>> +    {
>>>> +        dprintk(XENLOG_INFO, "vPCI requested for non-HVM guest\n");
>>>> +        return -EINVAL;
>>>> +    }
>>>> +
>>>>     return 0;
>>>> }
>>>
>>> As said on the v5 thread, I think my comment was misguided (I'm sorry)
>>> and this wants keeping in common code as you had it.
>>
>> I'll move it back to xen/common/domain.c. No worries.
> 
> I tested this patch and observed build failure when compiling the "x86_64â€ arch with
> "CONFIG_HVM=nâ€œ option.
> 
> x86_64-linux-gnu-ld    -melf_x86_64  -T arch/x86/xen.lds -N prelink.o --build-id=sha1 \
>     ./common/symbols-dummy.o -o ./.xen-syms.0 
> x86_64-linux-gnu-ld: prelink.o: in function `arch_iommu_hwdom_initâ€™:
> (.init.text+0x2192b): undefined reference to `vpci_is_mmcfg_addressâ€™
> (.init.text+0x2192b): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `vpci_is_mmcfg_address'
> x86_64-linux-gnu-ld: (.init.text+0x21947): undefined reference to `vpci_is_mmcfg_address'
> (.init.text+0x21947): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `vpci_is_mmcfg_address'
> x86_64-linux-gnu-ld: prelink.o: in function `do_physdev_opâ€™: 
> (.text.do_physdev_op+0x6db): undefined reference to `register_vpci_mmcfg_handler'
> (.text.do_physdev_op+0x6db): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `register_vpci_mmcfg_handler'
> x86_64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `vpci_is_mmcfg_address' isn't defined
> x86_64-linux-gnu-ld: final link failed: bad value                

Ah, good catch. Before moving it, the flag was defined in xen/arch/x86/include/asm/domain.h:

#ifdef CONFIG_HVM
#define X86_EMU_VPCI     XEN_X86_EMU_VPCI
#else
#define X86_EMU_VPCI     0
#endif

#define has_vpci(d)        (!!((d)->arch.emulation_flags & X86_EMU_VPCI))


With CONFIG_HVM not set, in xen/drivers/passthrough/x86/iommu.c, the compiler optimized out the call to vpci_is_mmcfg_address():

    if ( has_vpci(d) && vpci_is_mmcfg_address(d, pfn_to_paddr(pfn)) )

After moving the flag, there are a couple of options to make the issue go away. I don't think #defining XEN_DOMCTL_CDF_vpci 0 in the !HVM case would be a good idea since that's a flag shared with the toolstack. We could change the definition of has_vpci():

#define has_vpci(d) (((d)->options & XEN_DOMCTL_CDF_vpci) && \
                     IS_ENABLED(CONFIG_HVM))

Or we could provide empty static inline definitions of vpci_is_mmcfg_address() and register_vpci_mmcfg_handler():

#ifdef CONFIG_HVM
bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr);
#else
static inline bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr)
{
    return false;
}
#endif

I don't have a strong preference for which way, but changing has_vpci() has a smaller diffstat, so I'll go with that for now. This is assuming that we still want to go with this approach. Given recent related discussions [1], it's possible we may not need a vPCI flag in struct xen_domctl_createdomain, but instead a flag internal to the hypervisor somewhere in struct domain.

[1] https://lists.xenproject.org/archives/html/xen-devel/2023-12/msg00212.html


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:04:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:04:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657100.1025791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfNs-0002Y7-KQ; Tue, 19 Dec 2023 19:04:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657100.1025791; Tue, 19 Dec 2023 19:04:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfNs-0002Xz-Hc; Tue, 19 Dec 2023 19:04:04 +0000
Received: by outflank-mailman (input) for mailman id 657100;
 Tue, 19 Dec 2023 19:04:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+gux=H6=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFfNr-0002Xr-GU
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:04:03 +0000
Received: from mail-pg1-x535.google.com (mail-pg1-x535.google.com
 [2607:f8b0:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ee94286-9ea1-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 20:04:02 +0100 (CET)
Received: by mail-pg1-x535.google.com with SMTP id
 41be03b00d2f7-5cd51c0e8ebso1986212a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 11:04:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ee94286-9ea1-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703012641; x=1703617441; 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=SGKpQXs3Zn/mF3/sQ3VghiSbjAohQpUpjF7KF5QizK4=;
        b=VWbOIFMM2U7zLkg/ZzyAqI36EKefJX21B8TnJmNKrYNZGPIEoLo14dfAih38R2mSY4
         cBuuh0wtnlCdR94bdxjMe9Cyq84iF1IvSTEnKedtq0lqaNbWFZVRCDvr8k1Lfz44aJeB
         G/4cMTKjCvj48+/rpd2oU8C7tB0j4haqUS1zzFpddJs0xos9vCKeLXCOEa8FtQSkd1vz
         foTumQ/qHjLm4WT7ndWzvTjDuAyTYRMAPrKDXUVXToNCxyfs8QLJLdM5gw0aSpMsIZGh
         z83xmvip7ggGiYzsWtIu3GfLyJBzTmY2sI6aZ5p+ELnPajHhIfG7EBSSpPlMf8eKRods
         OwgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703012641; x=1703617441;
        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=SGKpQXs3Zn/mF3/sQ3VghiSbjAohQpUpjF7KF5QizK4=;
        b=rHh5wDlqq4vh8+3SFpDUkfx0V6jZuI8OfC0iPSDn11wyeG1Bc7WdoqtW0TwAPDZaC2
         dXdLMqKCiR3mfUEFF8E9o9Igdrrrd2km5vq+rQfm70VhtvK4p/1TIty8m1K9X6ZKhM4T
         u7awyGrrGfiLSew4gM+3RZ5exGS13iNxVHyMXDCWNvXCGRYccH8YYWj3ZiJaqx48AMVc
         /ykf2YDtXNK3/u9JWwzuh4r6MwjhK36utphAJ2eo7NDTM8IVGciY5cI9G+smePKZi5pz
         MQOggpjuLhfTCsTYOyxelq60Mfgk//6EhFgJB3m7x2SI7vhlzcuN35sMVSd3x/TefGSs
         l1Ag==
X-Gm-Message-State: AOJu0YxzAH5ZCOk6bNEQlto6LlzP8Iaiufr4eKDwtWW+PJ0NmuBOED/x
	GxQpxzsB0GVXv3nI2eqlXuBOJpoYhodZ/F6BSFk=
X-Google-Smtp-Source: AGHT+IEXjkXQFodB99YoeGyjivJlGqqzgZichx1o3iosNpcS+MzIoTy6YOd64ZAcJNOhrjhEw8QnwneWdTzIEJGJ/DA=
X-Received: by 2002:a17:90a:ab0a:b0:28a:9748:d7e6 with SMTP id
 m10-20020a17090aab0a00b0028a9748d7e6mr7481826pjq.23.1703012640714; Tue, 19
 Dec 2023 11:04:00 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
In-Reply-To: <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Tue, 19 Dec 2023 20:03:49 +0100
Message-ID: <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Le mar. 19 d=C3=A9c. 2023 =C3=A0 16:15, S=C3=A9bastien Chaumat <euidzero@gm=
ail.com> a =C3=A9crit :
>
> I did add an extra printk in PHYSDEVOP_setup_gsi
> so the "first one" is my printk (available in xl dmesg)
> the second message is from xen_register_gsi (from linux kernel)
>
> Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich <jbeulich@suse.com> a=
 =C3=A9crit :
> >
> > On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:
> > >>>>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
> > >>>>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up i=
nterrupt
> > >>>>>>
> > >>>>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
> > >>>>>> ioapic-edge and IRQ9 to ioapic-level ?
> > >>>>>>
> > >>>>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
> > >>>>>> IR-IO-APIC    9-fasteoi   acpi
> > >>>>>>
> > >>>>>> to (xen 4.18.0)
> > >>>>>>
> > >>>>>> xen-pirq     -ioapic-edge  pinctrl_amd
> > >>>>>> xen-pirq     -ioapic-level  acpi
> > >>>>>>
> > >>>>>> ?
> > >>>
> > >
> > >>> This look similar to
> > >>> https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
> > >>>
> > >>> This issue seems that IRQ 7 (the GPIO controller) is natively faste=
oi
> > >>> (so level type) while in xen it  is mapped to oapic-edge  instead o=
f
> > >>> oapic-level
> > >>> as the SSDT indicates :
> > >>>
> > >>>  Device (GPIO)
> > >>>
> > >>>      {
> > >>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
> > >>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
> > >>>          Name (_UID, Zero)  // _UID: Unique ID
> > >>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource=
 Settings
> > >>>          {
> > >>>              Name (RBUF, ResourceTemplate ()
> > >>>              {
> > >>>                  Interrupt (ResourceConsumer, Level, ActiveLow, Sha=
red, ,, )
> > >>>                  {
> > >>>                      0x00000007,
> > >>>            }
> > >>> Any idea why ?
> > >>
> > >> Information coming from AML is required to be handed down by Dom0 to=
 Xen.
> > >> May want checking that (a) Dom0 properly does so and (b) Xen doesn't=
 screw
> > >> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if this=
 is
> > >> specific to it being IRQ7 which GPIO uses, as at the (master) PIC IR=
Q7 is
> > >> also the spurious vector. You may want to retry with the tip of the =
4.17
> > >> branch (soon to become 4.17.3) - while it doesn't look very likely t=
o me
> > >> that recent backports there were related, it may still be that they =
make
> > >> a difference.
> > >>
> > >
> > > testing with 4.17.3:
> > >
> > > Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  that
> > > (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity: =
1
> > >
> > > but later on in dmesg I see :
> > > [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
> >
> > Linux has exactly one place where this message is logged from, and that=
's
> > ahead of it calling PHYSDEVOP_setup_gsi. Since you said "later", can yo=
u
> > confirm that actually you see two instances of the Xen message and two
> > instances of the Linux one (each of them with respectively matching
> > trigger and polarity values)? Or are we indeed observing what would loo=
k
> > to be corruption of a hypercall argument?
> >
> > If there were two calls, it would be important to realize that Xen will
> > respect only the first one.
> >
> > Jan

Adding a printk to catch the gsi immediately before the hypercall in
linux/arch/x86/pci/xen.c

#ifdef CONFIG_XEN_PV_DOM0
static int xen_register_gsi(u32 gsi, int triggering, int polarity)
{
int rc, irq;
struct physdev_setup_gsi setup_gsi;

if (!xen_pv_domain())
return -1;

printk(KERN_DEBUG "xen: registering gsi %u triggering %d polarity %d\n",
gsi, triggering, polarity);

irq =3D xen_register_pirq(gsi, triggering, true);

setup_gsi.gsi =3D gsi;
setup_gsi.triggering =3D (triggering =3D=3D ACPI_EDGE_SENSITIVE ? 0 : 1);
setup_gsi.polarity =3D (polarity =3D=3D ACPI_ACTIVE_HIGH ? 0 : 1);

printk(KERN_INFO "Before PHYSDEVOP_setup_gsi gsi: %d,triggering: %u,
polarity: %u\n", setup_gsi.gsi, setup_gsi.triggering,
setup_gsi.polarity);
rc =3D HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
if (rc =3D=3D -EEXIST)
  printk(KERN_INFO "Already setup the GSI :%d\n", gsi);
else if (rc) {
   printk(KERN_ERR "Failed to setup GSI :%d, err_code:%d\n",
gsi, rc);
}

return irq;
}

I got the following :
[    1.848051] xen: registering gsi 7 triggering 0 polarity 1
[    1.848056] Before PHYSDEVOP_setup_gsi  gsi: 7,triggering: 1, polarity: =
1

So the reversal occurs
there

irq =3D xen_register_pirq(gsi, triggering, true);

Or there :

setup_gsi.gsi =3D gsi;
setup_gsi.triggering =3D (triggering =3D=3D ACPI_EDGE_SENSITIVE ? 0 : 1);
setup_gsi.polarity =3D (polarity =3D=3D ACPI_ACTIVE_HIGH ? 0 : 1);


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:15:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:15:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657104.1025801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfZ1-0005oj-MW; Tue, 19 Dec 2023 19:15:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657104.1025801; Tue, 19 Dec 2023 19: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 1rFfZ1-0005oc-Iu; Tue, 19 Dec 2023 19:15:35 +0000
Received: by outflank-mailman (input) for mailman id 657104;
 Tue, 19 Dec 2023 19:15: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=rImv=H6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFfZ0-0005oU-2A
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:15:34 +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 fafa8a81-9ea2-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 20:15:32 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c256ffdbcso58171265e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 11:15:32 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 bh12-20020a05600c3d0c00b003fee6e170f9sm4286929wmb.45.2023.12.19.11.15.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 11:15:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fafa8a81-9ea2-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703013332; x=1703618132; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GdCxlFtHvZGSYIdMb4RLBri/z4TEnZEwsssQH8uZiBs=;
        b=qU/Ho3bEyQsdlb3auwgAMer8exi5KcMqA1hsQA3PyEcUWdLiapHQdfye2IJuWtmpSu
         o6lX6BLalBjzNSVuSvDFnAmd1fvw4O3dvaU5Clz92iI8hTLmLAToDTKL5oPKAr8+fRGR
         /ERvSkdvueTJE2A3DfR3bfFJvzJud1TShX/V4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703013332; x=1703618132;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=GdCxlFtHvZGSYIdMb4RLBri/z4TEnZEwsssQH8uZiBs=;
        b=ZObPvikA51TGxZllmkXY+c+vtuZ6vmt0WAaThfG4G8Sk65CeaVql6Ja+4corSzY5CE
         ra0Lx7Tr3dvqcr67du77CtSaXhmWszVO51878Buq9cO27PsEC7xaf+UIoX5y5Pz8rD57
         /O2Xb0jwV4yaEMzOAsvfrU8kY+js8rdst0zSZkPKpH1joLX9LjlKSxUowJbGQjbjmrgN
         Ar50oR2hZlHlhynoVljY6qwfGI5SQOF7wZlnM/QNE6vMdStxN7HmO5XkiCicTgVl/DpK
         Wd6CloSiXcxC0/0Jw8tFoXZxtO91a3evm2cAE+EWVByo95mK9EtrjdQLLil1X5QBkAbo
         h/ag==
X-Gm-Message-State: AOJu0Yx/WykcfMYmzyLnp3amDsqA5DOdFhUJI34Qh7XEUKF98rngd23z
	cGzCLz6YWt+MtYO1foVhB1szHg==
X-Google-Smtp-Source: AGHT+IEKnbx9zbyQ3x2Gc8lwVVnhtw0pe85zIssFNeWkRw5m4N3/eAu2iA2Bs/n6nxdwtkB1CYFWVQ==
X-Received: by 2002:a05:600c:548d:b0:40d:2df3:fdf with SMTP id iv13-20020a05600c548d00b0040d2df30fdfmr486112wmb.21.1703013332378;
        Tue, 19 Dec 2023 11:15:32 -0800 (PST)
Message-ID: <87013f74-5828-4bef-848b-ffedde8e86f5@citrix.com>
Date: Tue, 19 Dec 2023 19:15:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [linus:master] [x86/entry] be5341eb0d:
 WARNING:CPU:#PID:#at_int80_emulation
Content-Language: en-GB
To: Linus Torvalds <torvalds@linuxfoundation.org>,
 Borislav Petkov <bp@alien8.de>
Cc: kernel test robot <oliver.sang@intel.com>,
 Thomas Gleixner <tglx@linutronix.de>, oe-lkp@lists.linux.dev, lkp@intel.com,
 linux-kernel@vger.kernel.org, Dave Hansen <dave.hansen@linux.intel.com>,
 "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
 xen-devel@lists.xenproject.org
References: <202312191507.348721d2-oliver.sang@intel.com>
 <20231219095821.GAZYFpPUSKexZAcl05@fat_crate.local>
 <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/12/2023 6:20 pm, Linus Torvalds wrote:
> On Tue, 19 Dec 2023 at 01:58, Borislav Petkov <bp@alien8.de> wrote:
>> Looking at the dmesg, I think you missed the most important part - the
>> preceding line:
>>
>> [   13.480504][   T48] CFI failure at int80_emulation+0x67/0xb0 (target: sys_ni_posix_timers+0x0/0x70; expected type: 0xb02b34d9)
>>                         ^^^^^^^^^^^
> So I think the issue here is that sys_ni_posix_timers is just linker
> alias that is used for any non-implemented posix timer system call.

My reading of the original report is that there used to be:

Â Â Â  dmesg.WARNING:CPU:#PID:#at_do_int80_syscall_32

and now there's:

Â Â Â  dmesg.WARNING:CPU:#PID:#at_int80_emulation


i.e. kCFI was broken before, and all we did with be5341eb0d43 was change
the inlining, and therefore how the error was rendered.


> See:
>
>   #define __SYS_NI(abi, name)                                             \
>         SYSCALL_ALIAS(__##abi##_##name, sys_ni_posix_timers);

AFAICT, this is the problem, but it was preexiting too.

This is stuffing a function of type void into an array of function
pointers wanting pt_regs * which is indeed a kCFI violation.

Isn't the fix simply this?

~Andrew

diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index fd9d12de7e92..12195164d5a4 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -1171,7 +1171,7 @@ asmlinkage long sys_ni_syscall(void);
Â 
Â #endif /* CONFIG_ARCH_HAS_SYSCALL_WRAPPER */
Â 
-asmlinkage long sys_ni_posix_timers(void);
+asmlinkage long sys_ni_posix_timers(const struct pt_regs *regs);
Â 
Â /*
Â  * Kernel code should not call syscalls (i.e., sys_xyzyyz()) directly.
diff --git a/kernel/time/posix-stubs.c b/kernel/time/posix-stubs.c
index 828aeecbd1e8..29692354a908 100644
--- a/kernel/time/posix-stubs.c
+++ b/kernel/time/posix-stubs.c
@@ -22,7 +22,7 @@
Â #include <asm/syscall_wrapper.h>
Â #endif
Â 
-asmlinkage long sys_ni_posix_timers(void)
+asmlinkage long sys_ni_posix_timers(const struct pt_regs *regs)
Â {
Â Â Â Â Â Â Â  pr_err_once("process %d (%s) attempted a POSIX timer syscall "
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "while CONFIG_POSIX_TIMERS is not set\n",



From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:23:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657107.1025812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfgX-0000E3-Id; Tue, 19 Dec 2023 19:23:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657107.1025812; Tue, 19 Dec 2023 19:23:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfgX-0000Dw-Dt; Tue, 19 Dec 2023 19:23:21 +0000
Received: by outflank-mailman (input) for mailman id 657107;
 Tue, 19 Dec 2023 19:18: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=hvN/=H6=google.com=samitolvanen@srs-se1.protection.inumbo.net>)
 id 1rFfc3-0006RU-Po
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:18:43 +0000
Received: from mail-yb1-xb2e.google.com (mail-yb1-xb2e.google.com
 [2607:f8b0:4864:20::b2e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6aa50da4-9ea3-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 20:18:40 +0100 (CET)
Received: by mail-yb1-xb2e.google.com with SMTP id
 3f1490d57ef6-db538b07865so4027589276.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 11:18:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6aa50da4-9ea3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1703013520; x=1703618320; 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=vk2WOblYJMsl3hzTJZL7x+a3eKwopbV7abftu0jaO3o=;
        b=rxMVh0fwbuxkgPJgXeK7OdgskOb8ajIkS09qt2nLalEVuAocpF3k5I7iWbN8av29Kk
         1y8t7HW+91SuLIC4egbADgea+AKbTxIH35aWV78vsvLHJfhsQ62QbS68+t2pTDj1Aeme
         mD/wrfDys5DM2JHCt0KXqvTzbr4e5yPb/67D6ZfxNvTqxKl5ToGlgVcWgpxGU5TfX9/e
         SXDpcVl1NsPxDory5c6PhaVZhmS/Q7tQtGu0+BStzHJScUXtsR+bCcCVvelvF6tR1nrw
         qt9pj8tbVsns+G1dT9v+/82b7fvb3+nGAo+6nfH2R5cvgvvS1uaEv3vspxgBz+S69YQi
         P8zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703013520; x=1703618320;
        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=vk2WOblYJMsl3hzTJZL7x+a3eKwopbV7abftu0jaO3o=;
        b=gVb69KwdCLbUg1HYe7ZezwflcRKTMGUqduQTN02TZCcl18IvAMxjgQAw0G7iOV1Y30
         6SLvmtDN480hfVtGaBMikKWNgZ5QibdZUFLiMZ4tuq7yasKzl77txxq398JEAyGu+lcu
         61B9Jolptal1dvI/1IjM4eJkPNZVyzVP7RP26FaaVG9XVEvPP8mGsZM0DzFT8dzZlXgf
         Jd75WEicINTdUL1siyYU4o6GyNNi+4v9Q4Y01gpmjcPmaRxir77uoE1fxPULHx3K+qe6
         L6p4oF2fYY2bEKA86+XWyqlzFmZ+acfozBFEgOJbfxym5vDPSIcm6cnkt+N8C/Zr/wYA
         6LnA==
X-Gm-Message-State: AOJu0YwmC90kpmeGbPQtLC6JnEgF8BwaKlvVOXPIU9ma5QYTDhU/GcY1
	CIYP+3sk+7CJIa8EEuXO5dP7nuzzMB5Zh5vJRq/Ibw==
X-Google-Smtp-Source: AGHT+IEQnJH2FyDceXOzOBMy4ilQPUAbQxXDL6OLSAh4zACKDqdNbLqCjwWUh4R2wa3Q2YxVRYIHrhk3t3bA+xnDWvc=
X-Received: by 2002:a25:fc20:0:b0:dbc:dea7:19a8 with SMTP id
 v32-20020a25fc20000000b00dbcdea719a8mr6143146ybd.121.1703013520291; Tue, 19
 Dec 2023 11:18:40 -0800 (PST)
MIME-Version: 1.0
References: <202312191507.348721d2-oliver.sang@intel.com> <20231219095821.GAZYFpPUSKexZAcl05@fat_crate.local>
 <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com>
In-Reply-To: <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com>
From: Sami Tolvanen <samitolvanen@google.com>
Date: Tue, 19 Dec 2023 11:18:02 -0800
Message-ID: <CABCJKufi2_BcSwc+j=L9VMwGVteSFX509RO6QCC3g-ZtRo5cGQ@mail.gmail.com>
Subject: Re: [linus:master] [x86/entry] be5341eb0d: WARNING:CPU:#PID:#at_int80_emulation
To: Linus Torvalds <torvalds@linuxfoundation.org>
Cc: Borislav Petkov <bp@alien8.de>, kernel test robot <oliver.sang@intel.com>, 
	Thomas Gleixner <tglx@linutronix.de>, oe-lkp@lists.linux.dev, lkp@intel.com, 
	linux-kernel@vger.kernel.org, Dave Hansen <dave.hansen@linux.intel.com>, 
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, xen-devel@lists.xenproject.org, 
	Kees Cook <keescook@chromium.org>, Peter Zijlstra <peterz@infradead.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 19, 2023 at 10:21=E2=80=AFAM Linus Torvalds
<torvalds@linuxfoundation.org> wrote:
>
> On Tue, 19 Dec 2023 at 01:58, Borislav Petkov <bp@alien8.de> wrote:
> >
> > Looking at the dmesg, I think you missed the most important part - the
> > preceding line:
> >
> > [   13.480504][   T48] CFI failure at int80_emulation+0x67/0xb0 (target=
: sys_ni_posix_timers+0x0/0x70; expected type: 0xb02b34d9)
> >                         ^^^^^^^^^^^
>
> So I think the issue here is that sys_ni_posix_timers is just linker
> alias that is used for any non-implemented posix timer system call.
>
> See:
>
>   #define __SYS_NI(abi, name)                                            =
 \
>         SYSCALL_ALIAS(__##abi##_##name, sys_ni_posix_timers);
>
> and this all worked fine when the actual call to this was done in
> assembly code that happily just called that function directly and
> didn't care about any argument types.

Yes, that's exactly the issue.

> But commit be5341eb0d43 ("x86/entry: Convert INT 0x80 emulation to
> IDTENTRY") moved that call from assembly into C, and in the process
> ended up enabling CFI for it all, and now the compiler will check that
> the function types match. Which they don't, because we use that dummy
> function (I don't think they do in general).
>
> I don't know what the best fix is. Either CFI should be turned off for
> that call, or we should make sure to generate those NI system calls
> with the proper types.

Probably the easiest fix would be to use SYSCALL_DEFINE0 for
sys_ni_posix_timers, and for architectures that implement syscall
wrappers, change sys_ni_posix_timers references to
__<abi>_sys_ni_posix_timers.

Something like this should fix the issue for x86, but it looks like
arm64, riscv, and s390 would need similar syscall wrapper changes:

diff --git a/arch/x86/include/asm/syscall_wrapper.h
b/arch/x86/include/asm/syscall_wrapper.h
index fd2669b1cb2d..ed38265cad27 100644
--- a/arch/x86/include/asm/syscall_wrapper.h
+++ b/arch/x86/include/asm/syscall_wrapper.h
@@ -87,7 +87,7 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs *r=
egs);
        }

 #define __SYS_NI(abi, name)                                            \
-       SYSCALL_ALIAS(__##abi##_##name, sys_ni_posix_timers);
+       SYSCALL_ALIAS(__##abi##_##name, __##abi##_sys_ni_posix_timers);

 #ifdef CONFIG_X86_64
 #define __X64_SYS_STUB0(name)                                          \
diff --git a/kernel/time/posix-stubs.c b/kernel/time/posix-stubs.c
index 828aeecbd1e8..d58f976ec926 100644
--- a/kernel/time/posix-stubs.c
+++ b/kernel/time/posix-stubs.c
@@ -22,7 +22,7 @@
 #include <asm/syscall_wrapper.h>
 #endif

-asmlinkage long sys_ni_posix_timers(void)
+SYSCALL_DEFINE0(ni_posix_timers)
 {
        pr_err_once("process %d (%s) attempted a POSIX timer syscall "
                    "while CONFIG_POSIX_TIMERS is not set\n",

Sami


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:25:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:25:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657111.1025821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfim-0000nG-V0; Tue, 19 Dec 2023 19:25:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657111.1025821; Tue, 19 Dec 2023 19: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 1rFfim-0000n9-Qb; Tue, 19 Dec 2023 19:25:40 +0000
Received: by outflank-mailman (input) for mailman id 657111;
 Tue, 19 Dec 2023 19:25:38 +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 1rFfik-0000n1-Tp
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:25:38 +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 1rFfik-0000y3-An; Tue, 19 Dec 2023 19:25:38 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.3.234]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFfij-0004K6-Vj; Tue, 19 Dec 2023 19:25:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=kM37ZU/xQB6q4WgQWCg4wzFAFLTp8//OUWyKrWXg/Mo=; b=iltjb7B9iIkKv2CrmLwKmVVpfe
	I4MJE/xyupg4bkjrm1EHF7a50KosIXQECUYvURVrFS70ytfygGntcM28qeoyOmYPsS6nzMrL5JyYX
	xxQQL/TlVz0wBkrigWlL2YZsKaMBHQ0HeqVYbXnUrJzidO6OB5l9NqQDSW/SkefGAMv4=;
Message-ID: <673e0acc-98e0-4e26-887c-0ef6109bc595@xen.org>
Date: Tue, 19 Dec 2023 19:25:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 5/9] xen/arm: smmuv2: Add PCI devices support for
 SMMUv2
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20231109182716.367119-1-stewart.hildebrand@amd.com>
 <20231109182716.367119-6-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231109182716.367119-6-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stewart,

On 09/11/2023 18:27, Stewart Hildebrand wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

In general, we should avoid blank commit. In this case, I think some 
details would be useful about the implementation. Some of the details I 
am interested in is how the logic works and why we don't handle the same 
quarantine options as x86?

> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> v5->v6:
> * check for hardware_domain == NULL (dom0less test case)
> * locking: assign pdev->domain before list_add()
> 
> v4->v5:
> * assign device to pdev->domain (usually dom0) by default in add_device() hook
> * deassign from hwdom
> * rebase on top of ("dynamic node programming using overlay dtbo") series
> * remove TODO in comment about device prints
> * add TODO regarding locking
> * fixup after dropping ("xen/arm: Move is_protected flag to struct device")
> 
> v3->v4:
> * add new device_is_protected check in add_device hook to match SMMUv3 and
>    IPMMU-VMSA drivers
> 
> v2->v3:
> * invoke iommu_add_pci_sideband_ids() from add_device hook
> 
> v1->v2:
> * ignore add_device/assign_device/reassign_device calls for phantom functions
>    (i.e. devfn != pdev->devfn)
> 
> downstream->v1:
> * wrap unused function in #ifdef 0
> * remove the remove_device() stub since it was submitted separately to the list
>    [XEN][PATCH v6 12/19] xen/smmu: Add remove_device callback for smmu_iommu ops
>    https://lists.xenproject.org/archives/html/xen-devel/2023-05/msg00204.html
> * arm_smmu_(de)assign_dev: return error instead of crashing system
> * update condition in arm_smmu_reassign_dev
> * style fixup
> * add && !is_hardware_domain(d) into condition in arm_smmu_assign_dev()
> 
> (cherry picked from commit 0c11a7f65f044c26d87d1e27ac6283ef1f9cfb7a from
>   the downstream branch spider-master from
>   https://github.com/xen-troops/xen.git)
> ---
>   xen/drivers/passthrough/arm/smmu.c | 199 ++++++++++++++++++++++++-----
>   1 file changed, 169 insertions(+), 30 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
> index 11fc1d22ef0a..24d1c0353025 100644
> --- a/xen/drivers/passthrough/arm/smmu.c
> +++ b/xen/drivers/passthrough/arm/smmu.c
> @@ -131,11 +131,21 @@ enum irqreturn {
>   
>   typedef enum irqreturn irqreturn_t;
>   
> -/* Device logger functions
> - * TODO: Handle PCI
> - */
> -#define dev_print(dev, lvl, fmt, ...)						\
> -	 printk(lvl "smmu: %s: " fmt, dt_node_full_name(dev_to_dt(dev)), ## __VA_ARGS__)
> +/* Device logger functions */
> +#ifndef CONFIG_HAS_PCI
> +#define dev_print(dev, lvl, fmt, ...)    \
> +    printk(lvl "smmu: %s: " fmt, dev_name(dev), ## __VA_ARGS__)
> +#else
> +#define dev_print(dev, lvl, fmt, ...) ({                                \
> +    if ( !dev_is_pci((dev)) )                                           \
> +        printk(lvl "smmu: %s: " fmt, dev_name((dev)), ## __VA_ARGS__);  \
> +    else                                                                \
> +    {                                                                   \
> +        struct pci_dev *pdev = dev_to_pci((dev));                       \
> +        printk(lvl "smmu: %pp: " fmt, &pdev->sbdf, ## __VA_ARGS__);     \
> +    }                                                                   \
> +})
> +#endif
>   
>   #define dev_dbg(dev, fmt, ...) dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
>   #define dev_notice(dev, fmt, ...) dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
> @@ -187,6 +197,7 @@ static void __iomem *devm_ioremap_resource(struct device *dev,
>    * Xen: PCI functions
>    * TODO: It should be implemented when PCI will be supported
>    */
> +#if 0 /* unused */
>   #define to_pci_dev(dev)	(NULL)
>   static inline int pci_for_each_dma_alias(struct pci_dev *pdev,
>   					 int (*fn) (struct pci_dev *pdev,
> @@ -196,6 +207,7 @@ static inline int pci_for_each_dma_alias(struct pci_dev *pdev,
>   	BUG();
>   	return 0;
>   }
> +#endif
>   
>   /* Xen: misc */
>   #define PHYS_MASK_SHIFT		PADDR_BITS
> @@ -631,7 +643,7 @@ struct arm_smmu_master_cfg {
>   	for (i = 0; idx = cfg->smendx[i], i < num; ++i)
>   
>   struct arm_smmu_master {
> -	struct device_node		*of_node;
> +	struct device			*dev;
>   	struct rb_node			node;
>   	struct arm_smmu_master_cfg	cfg;
>   };
> @@ -723,7 +735,7 @@ arm_smmu_get_fwspec(struct arm_smmu_master_cfg *cfg)
>   {
>   	struct arm_smmu_master *master = container_of(cfg,
>   			                                      struct arm_smmu_master, cfg);
> -	return dev_iommu_fwspec_get(&master->of_node->dev);
> +	return dev_iommu_fwspec_get(master->dev);
>   }
>   
>   static void parse_driver_options(struct arm_smmu_device *smmu)
> @@ -756,7 +768,7 @@ static struct device_node *dev_get_dev_node(struct device *dev)
>   }
>   
>   static struct arm_smmu_master *find_smmu_master(struct arm_smmu_device *smmu,
> -						struct device_node *dev_node)
> +						struct device *dev)
>   {
>   	struct rb_node *node = smmu->masters.rb_node;
>   
> @@ -765,9 +777,9 @@ static struct arm_smmu_master *find_smmu_master(struct arm_smmu_device *smmu,
>   
>   		master = container_of(node, struct arm_smmu_master, node);
>   
> -		if (dev_node < master->of_node)
> +		if (dev < master->dev)
>   			node = node->rb_left;
> -		else if (dev_node > master->of_node)
> +		else if (dev > master->dev)
>   			node = node->rb_right;
>   		else
>   			return master;
> @@ -802,9 +814,9 @@ static int insert_smmu_master(struct arm_smmu_device *smmu,
>   			= container_of(*new, struct arm_smmu_master, node);
>   
>   		parent = *new;
> -		if (master->of_node < this->of_node)
> +		if (master->dev < this->dev)
>   			new = &((*new)->rb_left);
> -		else if (master->of_node > this->of_node)
> +		else if (master->dev > this->dev)
>   			new = &((*new)->rb_right);
>   		else
>   			return -EEXIST;
> @@ -836,28 +848,37 @@ static int arm_smmu_dt_add_device_legacy(struct arm_smmu_device *smmu,
>   	struct arm_smmu_master *master;
>   	struct device_node *dev_node = dev_get_dev_node(dev);

Looking at this call, there is a Todo "Add support of PCI". If this 
function is now only meant to be used for platform device, then should 
we remove the TODO in it?

>   
> -	master = find_smmu_master(smmu, dev_node);
> +	master = find_smmu_master(smmu, dev);
>   	if (master) {
>   		dev_err(dev,
>   			"rejecting multiple registrations for master device %s\n",
> -			dev_node->name);
> +			dev_node ? dev_node->name : "");

Printing "" looks a bit odd. But I wonder if this is actually redundant 
with the content printed by dev_err()?

>   		return -EBUSY;
>   	}
>   
>   	master = devm_kzalloc(dev, sizeof(*master), GFP_KERNEL);
>   	if (!master)
>   		return -ENOMEM;
> -	master->of_node = dev_node;
> +	master->dev = dev;
>   
> -	/* Xen: Let Xen know that the device is protected by an SMMU */
> -	dt_device_set_protected(dev_node);
> +	if ( !dev_is_pci(dev) )

I think a comment should stay to explain how someone known that the PCI 
device will be protected by an IOMMU.

> +	{
> +		if ( dt_device_is_protected(dev_node) )
> +		{
> +			dev_err(dev, "Already added to SMMU\n");
> +			return -EEXIST;
> +		}

This checks seems to be unrelated with the rest of the patch. Can you 
explain?

> +
> +		/* Xen: Let Xen know that the device is protected by an SMMU */
> +		dt_device_set_protected(dev_node);
> +	}
>   
>   	for (i = 0; i < fwspec->num_ids; ++i) {
>   		if (!(smmu->features & ARM_SMMU_FEAT_STREAM_MATCH) &&
>   		     (fwspec->ids[i] >= smmu->num_mapping_groups)) {
>   			dev_err(dev,
>   				"stream ID for master device %s greater than maximum allowed (%d)\n",
> -				dev_node->name, smmu->num_mapping_groups);
> +				dev_node ? dev_node->name : "", smmu->num_mapping_groups);

Same remark as above for "".

>   			return -ERANGE;
>   		}
>   		master->cfg.smendx[i] = INVALID_SMENDX;
> @@ -872,7 +893,7 @@ static int arm_smmu_dt_remove_device_legacy(struct arm_smmu_device *smmu,
>   	struct device_node *dev_node = dev_get_dev_node(dev);
>   	int ret;
>   
> -	master = find_smmu_master(smmu, dev_node);
> +	master = find_smmu_master(smmu, dev);
>   	if (master == NULL) {
>   		dev_err(dev,
>   			"No registrations found for master device %s\n",
> @@ -884,8 +905,9 @@ static int arm_smmu_dt_remove_device_legacy(struct arm_smmu_device *smmu,
>   	if (ret)
>   		return ret;
>   
> -	/* Protected by dt_host_lock and dtdevs_lock as caller holds these locks. */
> -	dev_node->is_protected = false;
> +	if ( !dev_is_pci(dev) )
> +		/* Protected by dt_host_lock and dtdevs_lock as caller holds these locks. */
> +		dev_node->is_protected = false;
>   
>   	kfree(master);
>   	return 0;
> @@ -914,6 +936,12 @@ static int register_smmu_master(struct arm_smmu_device *smmu,
>   					     fwspec);
>   }
>   
> +/* Forward declaration */
> +static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
> +			       struct device *dev, u32 flag);
> +static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
> +				 struct device *dev);
> +
>   /*
>    * The driver which supports generic IOMMU DT bindings must have this
>    * callback implemented.
> @@ -938,6 +966,22 @@ static int arm_smmu_dt_add_device_generic(u8 devfn, struct device *dev)
>   {
>   	struct arm_smmu_device *smmu;
>   	struct iommu_fwspec *fwspec;
> +	int ret;
> +
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +		int ret;
> +
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		ret = iommu_add_pci_sideband_ids(pdev);
> +		if ( ret < 0 )
> +			iommu_fwspec_free(dev);
> +	}
> +#endif
>   
>   	fwspec = dev_iommu_fwspec_get(dev);
>   	if (fwspec == NULL)
> @@ -947,7 +991,24 @@ static int arm_smmu_dt_add_device_generic(u8 devfn, struct device *dev)
>   	if (smmu == NULL)
>   		return -ENXIO;
>   
> -	return arm_smmu_dt_add_device_legacy(smmu, dev, fwspec);
> +	ret = arm_smmu_dt_add_device_legacy(smmu, dev, fwspec);
> +	if ( ret )
axc> +		return ret;
> +
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/*
> +		 * During PHYSDEVOP_pci_device_add, Xen does not assign the
> +		 * device, so we must do it here.
> +		 */

In the context of dom0less, the hardware domain may not exist at all. 
And even if it exists, you will first assign the device to the hardware 
domain and then re-assign to the guest just after.

This looks wrong.

> +		ret = arm_smmu_assign_dev(pdev->domain, devfn, dev, 0);
> +	}
> +#endif
> +
> +	return ret;
>   }
>   
>   static int arm_smmu_dt_xlate_generic(struct device *dev,
> @@ -970,11 +1031,10 @@ static struct arm_smmu_device *find_smmu_for_device(struct device *dev)
>   {
>   	struct arm_smmu_device *smmu;
>   	struct arm_smmu_master *master = NULL;
> -	struct device_node *dev_node = dev_get_dev_node(dev);
>   
>   	spin_lock(&arm_smmu_devices_lock);
>   	list_for_each_entry(smmu, &arm_smmu_devices, list) {
> -		master = find_smmu_master(smmu, dev_node);
> +		master = find_smmu_master(smmu, dev);
>   		if (master)
>   			break;
>   	}
> @@ -2066,6 +2126,7 @@ static bool arm_smmu_capable(enum iommu_cap cap)
>   }
>   #endif
>   
> +#if 0 /* Not used */
>   static int __arm_smmu_get_pci_sid(struct pci_dev *pdev, u16 alias, void *data)
>   {
>   	*((u16 *)data) = alias;
> @@ -2076,6 +2137,7 @@ static void __arm_smmu_release_pci_iommudata(void *data)
>   {
>   	kfree(data);
>   }
> +#endif
>   
>   static int arm_smmu_add_device(struct device *dev)
>   {
> @@ -2083,12 +2145,13 @@ static int arm_smmu_add_device(struct device *dev)
>   	struct arm_smmu_master_cfg *cfg;
>   	struct iommu_group *group;
>   	void (*releasefn)(void *data) = NULL;
> -	int ret;
>   
>   	smmu = find_smmu_for_device(dev);
>   	if (!smmu)
>   		return -ENODEV;
>   
> +	/* There is no need to distinguish here, thanks to PCI-IOMMU DT bindings */
> +#if 0
>   	if (dev_is_pci(dev)) {
>   		struct pci_dev *pdev = to_pci_dev(dev);
>   		struct iommu_fwspec *fwspec;
> @@ -2113,10 +2176,12 @@ static int arm_smmu_add_device(struct device *dev)
>   				       &fwspec->ids[0]);
>   		releasefn = __arm_smmu_release_pci_iommudata;
>   		cfg->smmu = smmu;
> -	} else {
> +	} else
> +#endif
> +	{
>   		struct arm_smmu_master *master;
>   
> -		master = find_smmu_master(smmu, dev->of_node);
> +		master = find_smmu_master(smmu, dev);
>   		if (!master) {
>   			return -ENODEV;
>   		}
> @@ -2784,6 +2849,61 @@ static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
>   			return -ENOMEM;
>   	}
>   
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) && !is_hardware_domain(d) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		printk(XENLOG_INFO "Assigning device %04x:%02x:%02x.%u to dom%d\n",
> +		       pdev->seg, pdev->bus, PCI_SLOT(devfn), PCI_FUNC(devfn),
> +		       d->domain_id);

Is this a left-over debug? If not, shouldn't this happen in a caller 
instead because this is quite generic?

> +
> +		if ( devfn != pdev->devfn || pdev->domain == d )
> +			return 0;
> +
> +		ASSERT(pcidevs_locked());
> +
> +		/* TODO: acquire pci_lock */

What's the plan for this TODO? (The commit message is blank).

> +#if 0
> +		write_lock(&pdev->domain->pci_lock);
> +#endif
> +		list_del(&pdev->domain_list);
> +#if 0
> +		write_unlock(&pdev->domain->pci_lock);
> +#endif
> +
> +		pdev->domain = d;
> +
> +#if 0
> +		write_lock(&d->pci_lock);
> +#endif
> +		list_add(&pdev->domain_list, &d->pdev_list);
> +#if 0
> +		write_unlock(&d->pci_lock);
> +#endif
> +
> +		if ( hardware_domain )
> +		{
> +			domain = dev_iommu_domain(dev);
> +
> +			/*
> +			 * Xen may not deassign the device from hwdom before
> +			 * assigning it elsewhere.
> +			 */

This comment leave more question than it really answer. Why can't Xen 
call reassign? IOW, it feels wrong to reimplement re-assign within 
assign. At mimimum, this should be consolidated.

> +			if ( domain && is_hardware_domain(domain->priv->cfg.domain) )
> +			{
> +				ret = arm_smmu_deassign_dev(hardware_domain, devfn, dev);
> +				if ( ret )
> +					return ret;
> +			}
> +		}
> +
> +		/* dom_io is used as a sentinel for quarantined devices */
> +		if ( d == dom_io )
> +			return 0;
> +	}
> +#endif
> +
>   	if (!dev_iommu_group(dev)) {
>   		ret = arm_smmu_add_device(dev);
>   		if (ret)
> @@ -2833,11 +2953,30 @@ out:
>   	return ret;
>   }
>   
> -static int arm_smmu_deassign_dev(struct domain *d, struct device *dev)
> +static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
> +				 struct device *dev)
>   {
>   	struct iommu_domain *domain = dev_iommu_domain(dev);
>   	struct arm_smmu_xen_domain *xen_domain;
>   
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		printk(XENLOG_INFO "Deassigning device %04x:%02x:%02x.%u from dom%d\n",
> +		       pdev->seg, pdev->bus, PCI_SLOT(devfn), PCI_FUNC(devfn),
> +		       d->domain_id);

Same questions as above for the printk.

> +
> +		if ( devfn != pdev->devfn )
> +			return 0;

I don't understand this check. Are you sanity checking pdev->devfn, and 
if so shouldn't not this return an error?

> +
> +		/* dom_io is used as a sentinel for quarantined devices */
> +		if ( d == dom_io )
> +			return 0;
> +	}
> +#endif
> +
>   	xen_domain = dom_iommu(d)->arch.priv;
>   
>   	if (!domain || domain->priv->cfg.domain != d) {
> @@ -2865,13 +3004,13 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
>   	int ret = 0;
>   
>   	/* Don't allow remapping on other domain than hwdom */

This comment now ...

> -	if ( t && !is_hardware_domain(t) )
> +	if ( t && !is_hardware_domain(t) && t != dom_io )

... now doesn't match the check. You are also relaxing for everyone but 
don't really explain why.

>   		return -EPERM;
>   
>   	if (t == s)
>   		return 0;
>   
> -	ret = arm_smmu_deassign_dev(s, dev);
> +	ret = arm_smmu_deassign_dev(s, devfn, dev);
>   	if (ret)
>   		return ret;
>   

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:27:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:27:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657116.1025831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfkP-0001RA-Cq; Tue, 19 Dec 2023 19:27:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657116.1025831; Tue, 19 Dec 2023 19:27:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfkP-0001R3-9T; Tue, 19 Dec 2023 19:27:21 +0000
Received: by outflank-mailman (input) for mailman id 657116;
 Tue, 19 Dec 2023 19:27:20 +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 1rFfkO-0001Qx-Tg
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:27:20 +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 1rFfkO-00011H-Kt; Tue, 19 Dec 2023 19:27:20 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.3.234]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFfkO-0004NV-D4; Tue, 19 Dec 2023 19:27:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=jv9TBTilkSC0NXTOS0qpaiCCocWxJlApespuF4YlU90=; b=nRaJH5i2BkoQ48/ZGQMc+RM68L
	5n66pcPg5vvfmiIrFHBuTP+wLqzQ/o5WaRVkdhJDRnasKeWwMSj0zV8cmxxQfYpN+iZi3tjuwilqt
	SCXPx8c0vSrX5y7IhhKL4cuV1qsoSb4vY2a5w6UELJAFSa4NaHpw0rTCZPU5H7gQK3PQ=;
Message-ID: <479bbc75-453f-488e-bf6c-3a99d550b7d4@xen.org>
Date: Tue, 19 Dec 2023 19:27:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 6/9] xen/arm: smmuv3: Add PCI devices support for
 SMMUv3
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Rahul Singh <rahul.singh@arm.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231109182716.367119-1-stewart.hildebrand@amd.com>
 <20231109182716.367119-7-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231109182716.367119-7-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 09/11/2023 18:27, Stewart Hildebrand wrote:
> From: Rahul Singh <rahul.singh@arm.com>
> 

Looking at the code, most of my comments on SMMUv2 apply here too. So I 
will not repeat them.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:31:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:31:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657120.1025840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfoB-0003TS-Rx; Tue, 19 Dec 2023 19:31:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657120.1025840; Tue, 19 Dec 2023 19: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 1rFfoB-0003TL-PK; Tue, 19 Dec 2023 19:31:15 +0000
Received: by outflank-mailman (input) for mailman id 657120;
 Tue, 19 Dec 2023 19:31: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 1rFfoA-0003TF-M9
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:31: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 1rFfoA-00014Q-3J; Tue, 19 Dec 2023 19:31:14 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.3.234]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFfo9-0004Sx-U4; Tue, 19 Dec 2023 19:31: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=AiKEAlVH4OP0omHtbllp9NWwsX+He4XFKQ0xZl+Vfo0=; b=4lqyoDs4Te0HsZ9X+LTTjv3ETo
	PEF6t5Xi90T0UHlTdm4leEnQBJQEFOHZa8O0kBsLOnSi6SwnZKvVVAaqNeUs+U2vlmDU5TariuQi2
	znB1DLT8d+BuPNrY/bGiJnEYkamPoIoM8iY2nY5wIVFkMnGiuFVugItwZFfEzwPW9nnM=;
Message-ID: <cd8936ed-e5f1-4333-b776-a99af648c390@xen.org>
Date: Tue, 19 Dec 2023 19:31:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 7/9] xen/arm: Fix mapping for PCI bridge mmio region
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231109182716.367119-1-stewart.hildebrand@amd.com>
 <20231109182716.367119-8-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231109182716.367119-8-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stewart,

On 09/11/2023 18:27, Stewart Hildebrand wrote:
> From: Rahul Singh <rahul.singh@arm.com>
> 
> Current code skip the mapping for PCI bridge MMIO region to dom0 when
> pci_passthrough_enabled flag is set. Mapping should be skip when
> has_vpci(d) is enabled for the domain, as we need to skip the mapping
> only when VPCI handler are registered for ECAM.
> 
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:33:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:33:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657126.1025851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfqm-0004aC-AH; Tue, 19 Dec 2023 19:33:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657126.1025851; Tue, 19 Dec 2023 19:33:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFfqm-0004a5-6N; Tue, 19 Dec 2023 19:33:56 +0000
Received: by outflank-mailman (input) for mailman id 657126;
 Tue, 19 Dec 2023 19:33:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ry3N=H6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFfql-0004VV-5s
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:33:55 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b2d1243-9ea5-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 20:33:53 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id E5B78B81A64;
 Tue, 19 Dec 2023 19:33:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43A74C433D9;
 Tue, 19 Dec 2023 19:33: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: 8b2d1243-9ea5-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703014432;
	bh=PBFP/RZISp0giWU77c5bE4d8fXD2agvL1Nj6YyxtZCg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=aKqdIAMed+vdHVDDKBicH1oUNBfNMeEHL+P3nbxqTc/Rt0TL0i5Oh+Pb9OjNWDFkg
	 xkay7oSzkaOiJkKJfyw3TvFU1zcfigGFhp48bgjKheOqSXrwxROXgILJJiLYPsHH5c
	 8h+aUyAYPKMf+7eCDspLOcB2zetzVi2mcJkVR7iFE3gHybI6Ou+cWKZNxknKegPgD4
	 whfJWMPGKkpcR5Am15zer0401vDUb1BA7HXwly/dGGEFJClcWXTmO79uxKSMAIo4D4
	 KlSzGH9vE2WsN6CgkGQAE8u9DectPL+kcb5vNZMnzNATLvmWS6MISr0ymiahfr7cgT
	 LZVRsIUeaFLEQ==
Date: Tue, 19 Dec 2023 11:33:49 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mario Marietto <marietto2008@gmail.com>
cc: Stanislav Silnicki <stanislav.silnicki@mailgate.us>, 
    Stefano Stabellini <sstabellini@kernel.org>, freebsd-arm@freebsd.org, 
    Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, 
    Artem_Mygaiev@epam.com
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my
 ARM Chromebook
In-Reply-To: <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
Message-ID: <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com> <97aa980b9b44.6eb7f9d5c54e7@mailgate.us> <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com> <da024d1687f3a.2f0c601bba502@mailgate.us>
 <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com> <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com> <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-783589732-1703014064=:3175268"
Content-ID: <alpine.DEB.2.22.394.2312191127540.3175268@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-783589732-1703014064=:3175268
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312191127541.3175268@ubuntu-linux-20-04-desktop>

+Michal

Hi Mario,

I am not sure about booting FreeBSD, but I am certain that u-boot works
fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config
file:
 
name="test"
kernel="u-boot.bin"
extra = "console=hvc0"
memory=256
vcpus=1
disk = [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]

I don't know for sure if you can boot FreeBSD but you should definitely
be able to see the u-boot command line prompt. The fact that you are
getting this message:

xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: Invalid kernel

Means that something is not right in the u-boot configuration or u-boot
build. Michal and Artem (CCed) might know more. From what I recall,
there was nothing special required to get u-boot.bin to boot as domU
kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.

Cheers,

Stefano


On Tue, 19 Dec 2023, Mario Marietto wrote:
> ....I see that some other interesting files have been produced by u-boot when I have compiled it :
> 
> u-boot
> u-boot.lds
> u-boot.bin
> u-boot.map
> u-boot-nodtb.bin
> u-boot.dtb
> u-boot.srec
> u-boot-dtb.bin
> u-boot.sym
> 
> So,maybe I should use a different u-boot* file for booting FreeBSD ?
> 
> 
> On Tue, Dec 19, 2023 at 4:28â€¯PM Mario Marietto <marietto2008@gmail.com> wrote:
>       Hello to everyone.
> 
> I have compiled the needed u-boot.bin from scratch using this procedure :
> 
> # git clone https://github.com/u-boot/u-boot.git
> # cd u-boot
> # ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make snow_defconfig : this line generates the file .config
> # nano .config and I've added these parameters :
> 
> CONFIG_ARMV7_NONSEC=n
> CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> 
> the uboot-bin file is generated with this command :
> 
> # ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make
> 
> At this point,I took a look inside the .config file and I saw that the parameter "CONFIG_ARMV7_NONSEC=n" has been removed. So,for
> some reason,it is not accepted and this could be a problem....
> 
> These are the xen config files that I've used :
> 
> nano freebsd.cfg
> 
> name="test"
> kernel="u-boot.bin"
> extra = "console=hvc0"
> memory=256
> vcpus=1
> disk = [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
> 
> nano start-freebsd
> 
> xl create freebsd.cfg
> xl console freebsd
> 
> This is what happens when I launch the vm :
> 
> # ./start-freebsd
> Â 
> Parsing config from freebsd.cfg
> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: Invalid kernel
> libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
> libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:cannot (re-)build domain: -3
> libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-existent domain
> libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Unable to destroy guest
> libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruction of domain failed
> freebsd is an invalid domain identifier (rc=-6)
> 
> 
> On Mon, Dec 18, 2023 at 12:39â€¯PM Mario Marietto <marietto2008@gmail.com> wrote:
>       So,ok,I should have said "the second u-boot" ; since the first u-boot binary is the "u-boot binary located in the RO
>       memory" of the Chromebook". Sorry for the confusion.
> 
> On Mon, Dec 18, 2023 at 12:35â€¯PM Mario Marietto <marietto2008@gmail.com> wrote:
>       ---> There are no specific options in u-boot devoted to FreeBSD
> 
> This is an important factor. So,what about if,instead of compiling a new version of u-boot on the partition 2,I will
> recompile the u-boot customized version created by the virtual open system in 2014,that should be installed on the first
> partition ? It could work if there are no differences between the u-boot that should boot Linux and the u-boot that
> should boot FreeBSD.
> 
> Can you give a look at the u-boot source code created by virtual open systems ? You can find it on my google drive :
> 
> https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?usp=sharing
> 
> I need to understand if I can recompile it without problem so that it can satisfy my needs (the ability of the file
> u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano Stabellini,the xen developer that suggested to me
> what I could do to have FreeBSD virtualized under Xen on my Arm Chromebook) ; otherwise the risk is to find later
> problems that will make me troubles and that I will not able to fix.
> 
> I gave a look at the virtual open system u-boot and I didn't see any arndale_defconfig inside. So,If I have understood
> correctly,I should put that file inside the root of the u-boot source code,let's say here :
> 
> marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls
> Â 
> .checkpatch.conf Â Â Â Â Â Â Â README Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â doc Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â net
> .git Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â api Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â drivers Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â onenand_ipl
> .gitignore Â Â Â Â Â Â Â Â Â Â Â Â Â arch Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â dts Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â post
> COPYING Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â board Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â examples Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â rules.mk
> CREDITS Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â boards.cfg Â Â Â Â Â Â Â Â Â Â Â Â Â fs Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â scripts
> MAINTAINERS Â Â Â Â Â Â Â Â Â Â Â Â common Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â include Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â snapshot.commit
> MAKEALL Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â config.mk Â Â Â Â Â Â Â Â Â Â Â Â Â Â lib Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â spl
> Makefile Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â cros Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â mkconfig Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â test
> PRESUBMIT.cfg Â Â Â Â Â Â Â Â Â Â disk Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â nand_spl Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â tools
> 
> and I should do : make and make install ? and the file I need,u-boot.bin will be generated ?Â 
> 
> I didn't find any pre made configuration file inside :
> 
> u-boot-vos # find . -type f -name "exynos*"Â 
> 
> ./include/exynos-fb.h
> ./include/configs/exynos5-common.h
> ./doc/device-tree-bindings/spi/exynos-spi.txt
> ./doc/device-tree-bindings/usb/exynos-usb.txt
> ./drivers/power/exynos-tmu.c
> ./drivers/power/exynos-cpufreq.c
> ./drivers/video/exynos-fb.c
> ./drivers/spi/exynos_spi.c
> ./board/samsung/dts/exynos5250-spring.dts
> ./board/samsung/dts/exynos5250-smdk5250.dts
> ./board/samsung/dts/exynos5250-snow.dts
> ./board/samsung/dts/exynos5250-daisy.dts
> ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h
> ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h
> ./arch/arm/dts/exynos5250.dtsi
> ./arch/arm/dts/exynos-periph-id.dtsi
> ./arch/arm/cpu/armv7/exynos5/exynos_cache.cÂ 
> 
> u-boot-vos # find . -type f -name "arndale*"
> 
> For sure I can't use a newer version of u-boot because otherwise the patches needed to bypass the bootloader protections
> of the Arm Chromebook (such as a lot of different patches needed to boot correctly Linux) will be broken ; anyway,since
> it works,I don't need to use an updated version of u-boot.
> 
> ----> As per my experience, you have to respect these two options, compiling u-boot for
> FreeBSD:Â https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-master/files/FreeBSD_Fragment
> 
> It says that I should use these parameters :
> 
> CONFIG_ARMV7_NONSEC=n
> CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> 
> These are the parameters used to configure a Linux kernel. I don't understand what's the relation between the compilation
> of a linux kernel and u-boot. In the past I tried to recompile u-boot,but I didn't have the need to set up those
> parameters,so I don't know how to do it (but I know how to recompile a Linux kernel).
> 
> ---> I'm not sure that I'm getting you right, as I don't understand what you mean under "the first u-boot".
> 
> 
> I'm talking about first u-boot because the whole procedure to boot Linux on the ARM Chromebook,that's explained here :
> 
> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
> 
> 
> at some point they say :
> 
> 
> To be able to run KVM on ARM platforms, the kernel has to be booted in hypervisor mode. Because of this relatively recent
> requirement (due to the introduction of the virtualization extensions), up until now all booting methods would boot the
> kernel in the standard Supervisor mode.
> 
> For the ARM Chromebook the default boot procedure doesn't allow us to boot in hypervisor mode. Although the laptop's boot
> mechanism is based on the frequently used u-boot, the binary is located in RO memory. Fortunately, a chained u-boot
> mechanism can be used (i.e. starting another u-boot after the original). We can then enter hypervisor mode from our
> custom iteration of u-boot and subsequently load our kernel and userspace.
> 
> So,the first u-boot is the u-boot provided by virtual open systems,that's able to chainload the "u-boot binary located in
> RO memory" , that does not boot Chrome OS in hypervisor mode. We don't need it if we want to boot Linux with kvm or xen
> enabled.
> 
> 
> On Sun, Dec 17, 2023 at 1:28â€¯AM Stanislav Silnicki <stanislav.silnicki@mailgate.us> wrote:
>       I'm not an expert in the topic, I only know, that ARM has divided hardware into two worlds - Secure and
>       Not-So, strictly limiting any software, running in non-secure world with access to functions and
>       resources.Â https://developer.arm.com/documentation/den0013/d/Security/TrustZone-hardware-architecture?lang=en
> 
> I'm not sure, that I'm getting you right, as I don't understand what you mean under "the first u-boot".
> 
> As I understand, virtualization (HYP) is running in non-secure world(https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/The-Virtualization-Extens
> ions), so my guess (only guess!!!), virtualization software has to prepare (configure) HW platform in the way,
> that FreeBSD kernel will not lack any resources, required to configure MPU, VA, etc.
> So, if you lucky to boot virtualizer, which is aware of target OS, that maybe you can boot the kernel. Although, I
> doubt, that you need to boot 'second' u-boot to boot the kernel - there is simply ubldr, which you can hook somehow
> from virtualizer....
> 
> Stan
> 
> 
> 
> Mario Marietto wrote:
> 
> 
>       ---> As I understand, it makes sure that u-boot keeps in secure mode during boot and passes control to
>       ubldr, which boots FreeBSD kernel, in that mode.
> 
> Can you elaborate your sentence more ? I know that the bootloader secure mode is bypassed by the virtual open
> systems u-boot. Are you saying that when the control passes to the second u-boot,it will happen in secure
> mode,so that the bypass that happened loading the first u-boot,is annulled ? If this is true,maybe can I boot
> FreeBSD using the virtual-open-system custom u-boot ? Is this compatible with FreeBSD ? Where can I find the
> u-boot.bin that the xen developer talked about ? thanks bro'.
> 
> 
> 
> On Sun, Dec 17, 2023 at 12:35â€¯AM Stanislav Silnicki <stanislav.silnicki@mailgate.us> wrote:
>       Hi Mario,
> 
> U-BootÂ  beast is hiding in this den: https://source.denx.de/u-boot/u-boot.git
> I took a brief look at your post and it seems to me, that optionÂ CONFIG_CMO_BY_VA_ONLYÂ is irrelevant to
> your target armv7 32 bit
> platform:Â https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/cpu/armv8/Kconfig?ref_type=heads#L3
> 
> As for compiling the u-boot, it is a doable task, given that you understand what you are doing. There
> are no specific options in u-boot devoted to FreeBSD. It is a boot loader, whose mission to make basic
> hardware initialization, read you kernel file from some media into RAM and then pass it control.
> 
> Basically, you can grab some defconfig, prepared for any other Exynos5250 based boardÂ  (say, this one:
> https://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defconfig?ref_type=heads) and adopt
> it somehow.
> 
> As per my experience, you have to respect these two options, compiling u-boot for
> FreeBSD:Â https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-master/files/FreeBSD_Fragment
> 
> As I understand, it makes sure, that u-boot keeps in secure mode during boot and passes control to
> ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot of surprises you may realize.
> 
> Hope, this will help to progress you tasks
> Stan
> 
> Mario Marietto wrote:
> 
> 
>       Hello.
> 
>       I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM Chromebook. Basically there are
>       two ways to accomplish this task :
> 
>       1) to write a patch that allows the FreeBSD kernel to boot as a zImage file. This could be
>       accomplished applying this patch to a specific file that's on the source code of FreeBSD :
> 
> 
>       https://xenbits.xen.org/gitweb/?p=p...8;hb=0782e25d98cc1391472717035f986c979edef0c9
> 
> 
>       This patch was written by Julien Grall a lot of time ago and now it does not work anymore.
>       This is the reason :
> 
> 
>             It appears FreeBSD-CURRENT removed the last step converting the kernel file to
>             kernel.bin. The patch can be readily rebased, but without kernel.bin that
>             doesn't do too much.
> 
> 
> 
> So,without a rebase of that patch the first option is not applicable. And I'm not able to fix it.
> 
> 2) booting FreeBSD using U-Boot,as explained to me by a xen developer :
> 
> 
>       I was trying to explain why and how Julien's patch works so that you could be the one
>       to re-do something similar or fix the patch on the FreeBSD kernel that you are
>       working with. I am happy to help review and write patches but I don't work with the
>       FreeBSD kernel so I wouldn't be able to help you quickly. However, I might have a
>       suggestion. Do you know if FreeBSD can be booted by U-Boot ? Because U-Boot
>       definitely boots as Xen on ARM guest firmware/bootloader. You should be able to build
>       U-Boot and use the U-Boot binary as Xen guest kernel, then U-Boot could load FreeBSD
>       from disk or network and start it. For instance as domU config file:
> 
>       kernel="/home/petalinux/u-boot.bin"
>       disk = [ '/home/petalinux/test.img,raw,xvda' ]
> 
>       I know it is important to build u-boot with the following config to make it work on
>       Xen.
> 
>       CONFIG_CMO_BY_VA_ONLY=y
> 
> 
> 
> This option seems more doable to me according to my knowledge. But I need to understand how to do
> it.
> 
> Well,let's say that on the ARM Chromebook I'm forced to use and install a customized version of
> u-boot,created by virtual open systems,because it is the only one that allows bypassing its
> bootloader protection. You can find more information here :
> 
> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/?vos=tech
> 
> This is the relevant section to read :
> 
> 
>       Bootloader :
> 
>       If you wish to skip this chapter you can download a pre-compiled binary of the
>       bootloader:
> 
> 
>       $ wget
>       http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-boot-snow.kpart
> 
> 
>       To be able to run KVM on ARM platforms, the kernel has to be booted in hypervisor
>       mode. Because of this relatively recent requirement (due to the introduction of the
>       virtualization extensions), up until now all booting methods would boot the kernel in
>       the standard Supervisor mode. For the ARM Chromebook the default boot procedure
>       doesn't allow us to boot in hypervisor mode. Although the laptop's boot mechanism is
>       based on the frequently used u-boot, the binary is located in RO memory. Fortunately,
>       a chained u-boot mechanism can be used (i.e. starting another u-boot after the
>       original). We can then enter hypervisor mode from our custom iteration of u-boot and
>       subsequently load our kernel and userspace.
> 
>       Checkout the needed u-boot code :
> 
> 
>       $ git clone git://github.com/virtualopensystems/u-boot.git$ cd u-boot$
>       ./scripts/build.sh
> 
> 
>       If successful, a message about how to copy the bootloader on the USB flash disk or SD
>       card will appear. We will use it later when preparing the boot medium to start our
>       system. If you have followed the Setting up the boot medium chapter and you have a
>       prepared boot device, then you can update u-boot by running :
> 
> 
>       $ sudo dd if=nv_uboot-snow.kpart of=/dev/sdX1
> 
> 
> 
> so,the needed u-boot that we must use should be installed on the first partition of the sd card.
> 
> There is another relevant section to read :
> 
> 
>       Setting up the boot medium
> 
>       Now it is time to copy all the relevant files that we created in the previous
>       chapters,and use them to boot Chromebook with a different kernel and OS. In all these
>       examples the device /dev/sdX is used. Take extra care to change the examples to the
>       device that you have attached. Insert the boot medium on your workstation and
>       carefully execute the following step. First we need to properly format the boot
>       medium.
> 
>       In the uboot source directory :
> 
> 
>       $ sudo ./scripts/sdcard.sh /dev/sdX
> 
> 
>       This will erase all data and create 4 partitions in the medium, along with copying
>       the u-boot binary to the first partition:
> 
> 
>       Partition 1 = ChromeOS signed binary (V.O.S chained u-boot)
>       Partition 2 = not used
>       Partition 3 = EXT2 partition for u-boot files (uImage and exynos5250-snow.dtb)
>       Partition 4 = EXT4 partition for userspace files
> 
> 
>       With u-boot being copied, next is the kernel image and DTB file. From the kernel
>       source execute :
> 
> 
>       $ mkdir ../mnt/
>       $ sudo mount /dev/sdX3 ../mnt/
>       $ sudo cp arch/arm/boot/uImage ../mnt/
>       $ sudo cp arch/arm/boot/dts/exynos5250-snow.dtb ../mnt/
>       $ sudo umount /dev/sdX3
> 
> 
>       Finally, we have to copy the Ubuntu userspace filesystem that we created earlier:
> 
> 
>       $ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./precise/* mnt/$ sudo umount /dev/sdX4
> 
> 
> 
> Now,my idea is to chainload the already chain loaded u-boot created by V.O.S to the new u-boot
> that we need for booting FreeBSD and that can be installed in the partition n.2,as shown in this
> scheme,because it is not used :
> 
> 
> Partition 1 = ChromeOS signed binary (V.O.S chained u-boot)
> Partition 2 = not used (maybe we can install the u-boot for arm 32 bit,compatible with FreeBSD on
> this partition)
> Partition 3 = EXT2 partition for u-boot files (uImage and exynos5250-snow.dtb)
> Partition 4 = EXT4 partition for userspace files
> 
> 
> Take in consideration that default boot string is hardcoded here,in the snow.h file of the custom
> u-boot created by VOS :
> 
> 
> https://github.com/virtualopensyste...18a39b6c177dff58a/include/configs/snow.h#L101
> 
> 
> and it needs to be recompiled because it should point to the partition n.2,where I will install
> the u-boot files as explained here :
> 
> 
> https://wiki.freebsd.org/arm/Chromebook
> 
> 
> I have some questions to ask before I start working on this.
> 
> 1) The xen developer said :
> 
> 
>       You should be able to build U-Boot and use the U-Boot binary as Xen guest kernel...
> 
> 
> 
> where is the u-boot binary,according to this document ?
> 
> https://wiki.freebsd.org/arm/Chromebook
> 
> I don't see it.
> 
> 
> 2) where is the source code of the file that I can get here :
> 
> http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/nv_uboot-snow-simplefb.kpart.bz2
> 
> I need the source code if I want to recompile u-boot so that it can point to the partition 4.
> 
> Maybe it can be found on this link :
> 
> http://linux-exynos.org/dist/chromebook/nv_uboot/
> 
> but it can't be opened....
> 
> 
> 3) in this specific scenario the source code of u-boot should run on arm 32 bit,not on arm
> 64,because I have the Samsung Chromebook "SNOW" model XE303C12,that's powered by a Samsung Exynos
> 5250 (ARMv7 32 bit Cortex A15) Soc.
> 
> 
> 4) I'm not sure if I can chainload the customized u-boot created by V.O.S that should be
> installed on the first partition with the u-boot tailored for booting FreeBSD that should be
> installed on the partition 2....
> 
> 
> 5) the xen developer said that u-boot should be compiled enabling this option :
> 
> 
> Code:
> 
> CONFIG_CMO_BY_VA_ONLY=y
> 
> 
> Well,can you provide some good source that can help me to understand how I can recompile u-boot
> for FreeBSD ? thanks.
> 
> --
> Mario.
> 
> 
> 
> --
> Mario.
> 
> 
> 
> --
> Mario.
> 
> 
> 
> --
> Mario.
> 
> 
> 
> --
> Mario.
> 
> 
> 
> --
> Mario.
> 
> 
--8323329-783589732-1703014064=:3175268--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:36:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:36:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657133.1025861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFftG-0005YI-Or; Tue, 19 Dec 2023 19:36:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657133.1025861; Tue, 19 Dec 2023 19: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 1rFftG-0005YB-MG; Tue, 19 Dec 2023 19:36:30 +0000
Received: by outflank-mailman (input) for mailman id 657133;
 Tue, 19 Dec 2023 19:36:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFftF-0005Y5-Ad
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:36:29 +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 1rFftE-0001Bn-Qz; Tue, 19 Dec 2023 19:36:28 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=[192.168.3.234]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFftE-0004o5-Hw; Tue, 19 Dec 2023 19:36:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=QtdIDwp3mCiyvhKBetvG6anKSmXwoSMdZPJ9RleON/8=; b=tKpa1ttUVnLLpE9nNfDeys3WE6
	JiImrHH02oXWr496vuf3csCHQiBHlAOttFnmwEA598H6pgKx1hBGF6W0m58s/fGWxN/9C6fmLHad8
	wHuRw07+S8k4C3Y6mnc6O0F7Fj9rATZ541IO3kPgSwIG/DElkUwFC0cSVfaJHNUv0PvI=;
Message-ID: <915a8f2c-9e6e-435a-89fe-5966edea88a3@xen.org>
Date: Tue, 19 Dec 2023 19:36:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 8/9] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>
References: <20231109182716.367119-1-stewart.hildebrand@amd.com>
 <20231109182716.367119-9-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231109182716.367119-9-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stewart,

On 09/11/2023 18:27, Stewart Hildebrand wrote:
> Enable the use of IOMMU + PCI in dom0 without having to specify
> "pci-passthrough=yes". We rely on dom0 to initialize the PCI controller
> and perform a PHYSDEVOP_pci_device_add call to add each device to SMMU.
> 
> Enable pci_init() for initializing Xen's internal PCI subsystem, and
> allow PHYSDEVOP_pci_device_add when pci-passthrough is disabled.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> v5->v6:
> * new patch - this effectively replaces
>    ("Revert "xen/arm: Add cmdline boot option "pci-passthrough = <boolean>""")
> ---
>   xen/arch/arm/pci/pci.c    | 3 ++-
>   xen/drivers/pci/physdev.c | 6 ------
>   2 files changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
> index 78b97beaef12..ba72fbaf1dfc 100644
> --- a/xen/arch/arm/pci/pci.c
> +++ b/xen/arch/arm/pci/pci.c
> @@ -16,6 +16,7 @@
>   #include <xen/device_tree.h>
>   #include <xen/errno.h>
>   #include <xen/init.h>
> +#include <xen/iommu.h>
>   #include <xen/param.h>
>   #include <xen/pci.h>
>   
> @@ -85,7 +86,7 @@ static int __init pci_init(void)
>        * Enable PCI passthrough when has been enabled explicitly
>        * (pci-passthrough=on).
>        */

The comment needs to be updated after ...
> -    if ( !pci_passthrough_enabled )
> +    if ( !is_pci_passthrough_enabled() && !iommu_enabled )

... this change.

>           return 0;
>   
>       pci_segments_init();
> diff --git a/xen/drivers/pci/physdev.c b/xen/drivers/pci/physdev.c
> index 42db3e6d133c..4f3e1a96c0fd 100644
> --- a/xen/drivers/pci/physdev.c
> +++ b/xen/drivers/pci/physdev.c
> @@ -18,9 +18,6 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>           struct pci_dev_info pdev_info;
>           nodeid_t node = NUMA_NO_NODE;
>   
> -        if ( !is_pci_passthrough_enabled() )
> -            return -EOPNOTSUPP;
> -

AFAIU, this means that pci_add_device() can now be reached even if 
pci_segments_init() is not called (this can happen when iommu=false). 
What error will now be returned and how dom0 will behave?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:46:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:46:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657140.1025871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFg2e-00007z-Lc; Tue, 19 Dec 2023 19:46:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657140.1025871; Tue, 19 Dec 2023 19: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 1rFg2e-00007s-ID; Tue, 19 Dec 2023 19:46:12 +0000
Received: by outflank-mailman (input) for mailman id 657140;
 Tue, 19 Dec 2023 19:46: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 1rFg2d-00007i-EE; Tue, 19 Dec 2023 19:46: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 1rFg2d-0001Kr-90; Tue, 19 Dec 2023 19:46: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 1rFg2c-0003Ir-Qw; Tue, 19 Dec 2023 19:46:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFg2c-0007jw-QR; Tue, 19 Dec 2023 19:46: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=azKmmoQwPcwr5V6Sob3eeKkXanW7nF9qNpXpM4THRQA=; b=qI1l7nvaLsHWm5l3tPTPKkUTX8
	SQxu9THRLP0JWd6YpE7otOOQ/1yMVp21Rne8pPAm9WNdEqqCyG1p9+o+Ig2e9xcETVLvUxU5j7mJ5
	FncE3GfY5OJchuR6A8yWMEkdISdTN0Z+6M+tn7f6YOzVh5GobHut/cGyOlkU7dUXXSxM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184177-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184177: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=8c1e9f9c6fa7b5137003b0cfa6d54a6bada16d8e
X-Osstest-Versions-That:
    ovmf=b1f33cbf8113bb07526c9f6946c250c7d9db44f9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 19 Dec 2023 19:46:10 +0000

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

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

Last test of basis   184175  2023-12-19 13:11:00 Z    0 days
Testing same since   184177  2023-12-19 15:41:43 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Neal Gompa <ngompa@fedoraproject.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    
 test-amd64-i386-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
   b1f33cbf81..8c1e9f9c6f  8c1e9f9c6fa7b5137003b0cfa6d54a6bada16d8e -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:46:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:46:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657142.1025880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFg2h-0000OT-TQ; Tue, 19 Dec 2023 19:46:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657142.1025880; Tue, 19 Dec 2023 19:46:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFg2h-0000OK-QK; Tue, 19 Dec 2023 19:46:15 +0000
Received: by outflank-mailman (input) for mailman id 657142;
 Tue, 19 Dec 2023 19:46:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rImv=H6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFg2g-0000Nc-Fb
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:46:14 +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 43d69984-9ea7-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 20:46:13 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c6e2a47f6so51306085e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 11:46:13 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 q15-20020a05600c46cf00b0040b349c91acsm4271606wmo.16.2023.12.19.11.46.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 11:46:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43d69984-9ea7-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703015172; x=1703619972; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Jcd2XJQM+ZtYKETBRoesO0wZeFNPdSWt2MRxloxb6pQ=;
        b=kOEixsj5dJNOHJEBJn5krnxYFEpRWXmq8qWIZX3/sxmk9qv/aO9ZkcVf3iLp1F0rNe
         vHg2NnUXVOuH2MpDVKb1XuLHB5KPAESLFlQ5o0hzJFZgfehY8ttUrN5wmjaawl1bdlaV
         G3rnHQ2BtUrRDyfbVALZnIDPFIBWkU3+sh6aQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703015172; x=1703619972;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Jcd2XJQM+ZtYKETBRoesO0wZeFNPdSWt2MRxloxb6pQ=;
        b=mIg5/fHrxDPWfUdyJTtOfhEkcw6D3qd3zMpfEc18cJyTh7LHSkSlzsKKkt6TkxgLov
         usYQqvuN6VVlMDaNSoeSvYvqFQbQVs3Ay5KlnUcn9HAFtnWFlku7L+ngzyBynWEWYHJ2
         aYxujYIaJg8FoDKd+jak5QM4EELIdKK4b4z10femY4bYOkcTkQzx9XpQ8ekDHK6suCki
         nTsaQuPfoM4sQLSK+jbuUHiYpKIt7+C9J5jM/eMNR3qzs16+YyZ4dbHO3/F9hQV4bNED
         y7HUlsK7NsKgJcdWtJT5+lmNukK+cPGsekezJAvH95UDWMXUgilhPnmjkYec/Bm7wXto
         1Nyw==
X-Gm-Message-State: AOJu0YwrwbYJys9VGXFH+f1ZNT6H2KLAchpoDpdMAGhJs1Xt8YEFHlLT
	3lgVcxflpUoYocBwLQizTqRoUw==
X-Google-Smtp-Source: AGHT+IGfOdL4znXMeH/n5fAvWHzRyW79vW1tpBHrkleTn8GvIiioaGPmDWEpQc1n7zWAzEUicN7JGw==
X-Received: by 2002:a05:600c:2207:b0:40c:35cb:f9b6 with SMTP id z7-20020a05600c220700b0040c35cbf9b6mr4917470wml.131.1703015172603;
        Tue, 19 Dec 2023 11:46:12 -0800 (PST)
Message-ID: <bc08ed7e-766d-4f0e-a7ef-994d09d1dbe2@citrix.com>
Date: Tue, 19 Dec 2023 19:46:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: George Dunlap <george.dunlap@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-2-roger.pau@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231215111842.8009-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/12/2023 11:18 am, Roger Pau Monne wrote:
> The minimal function size requirements for livepatch are either 5 bytes (for

"for an x86 livepatch", seeing as we're touching multiple architectures
worth of files.

I know it's at the end of the sentence, but it wants to be earlier to be
clearer.

> jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  Ensure
> that distance between functions entry points is always at least of the minimal
> required size for livepatch instruction replacement to be successful.
>
> Add an additional align directive to the linker script, in order to ensure that
> the next section placed after the .text.* (per-function sections) is also
> aligned to the required boundary, so that the distance of the last function
> entry point with the next symbol is also of minimal size.
>
> Note that it's possible for the compiler to end up using a higher function
> alignment regardless of the passed value, so this change just make sure that
> the minimum required for livepatch to work is present.  Different compilers
> handle the option differently, as clang will ignore -falign-functions value
> if it's smaller than the one that would be set by the optimization level, while
> gcc seems to always honor the function alignment passed in -falign-functions.
> In order to cope with this behavior and avoid that setting -falign-functions
> results in an alignment inferior to what the optimization level would have
> selected force x86 release builds to use a function alignment of 16 bytes.

Yuck :(

The same will be true for all other architectures too?

What happens on ARM, which also picks up an explicit choice in livepatch
builds?

>
> The compiler option -falign-functions is not available on at least clang 3.8,
> so introduce a Kconfig check for it and make the livepatch option depend on the
> compiler supporting the option.
>
> The naming of the option(s) CONFIG_FUNCTION_ALIGNMENT is explicitly not
> mentioning CC in preparation for the option also being used by assembly code.
>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
> Changes since v3:
>  - Test for compiler option with -falign-functions.
>  - Make FUNCTION_ALIGNMENT depend on CC_HAS_FUNCTION_ALIGNMENT.
>  - Set 16byte function alignment for x86 release builds.
>
> Changes since v2:
>  - Add Arm side.
>  - Align end of section in the linker script to ensure enough padding for the
>    last function.
>  - Expand commit message and subject.
>  - Rework Kconfig options.
>  - Check that the compiler supports the option.
>
> Changes since v1:
>  - New in this version.
> ---
>  xen/Kconfig              | 19 +++++++++++++++++++
>  xen/Makefile             |  3 +++
>  xen/arch/arm/livepatch.c |  2 ++
>  xen/arch/arm/xen.lds.S   |  4 ++++
>  xen/arch/x86/Kconfig     |  1 +
>  xen/arch/x86/livepatch.c |  4 ++++
>  xen/arch/x86/xen.lds.S   |  4 ++++
>  xen/common/Kconfig       |  5 ++++-
>  8 files changed, 41 insertions(+), 1 deletion(-)

xen$ git ls-files | grep xen.lds.S
arch/arm/xen.lds.S
arch/ppc/xen.lds.S
arch/riscv/xen.lds.S
arch/x86/xen.lds.S

RISC-V and PPC have the same pattern that you're patching for x86 and ARM.


> diff --git a/xen/Kconfig b/xen/Kconfig
> index 134e6e68ad84..c2cc3fe165eb 100644
> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -37,6 +37,25 @@ config CC_HAS_VISIBILITY_ATTRIBUTE
>  config CC_SPLIT_SECTIONS
>  	bool
>  
> +# Set function alignment.
> +#
> +# Allow setting on a boolean basis, and then convert such selection to an
> +# integer for the build system and code to consume more easily.

# Clang >= 6.0

> +config CC_HAS_FUNCTION_ALIGNMENT
> +	def_bool $(cc-option,-falign-functions)
> +config FUNCTION_ALIGNMENT_4B
> +	bool
> +config FUNCTION_ALIGNMENT_8B
> +	bool
> +config FUNCTION_ALIGNMENT_16B
> +	bool
> +config FUNCTION_ALIGNMENT
> +	int
> +	depends on CC_HAS_FUNCTION_ALIGNMENT
> +	default 16 if FUNCTION_ALIGNMENT_16B
> +	default  8 if  FUNCTION_ALIGNMENT_8B
> +	default  4 if  FUNCTION_ALIGNMENT_4B

What value do we get here for RISCV/PPC?Â  Do we need another override
for them?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:47:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:47:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657148.1025891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFg3m-0001Dv-7o; Tue, 19 Dec 2023 19:47:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657148.1025891; Tue, 19 Dec 2023 19:47:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFg3m-0001Do-4N; Tue, 19 Dec 2023 19:47:22 +0000
Received: by outflank-mailman (input) for mailman id 657148;
 Tue, 19 Dec 2023 19:47:20 +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 1rFg3k-0001Db-0s
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:47:20 +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 1rFg3j-0001NN-KX; Tue, 19 Dec 2023 19:47:19 +0000
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=[192.168.3.234]) by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFg3j-0005JD-DM; Tue, 19 Dec 2023 19:47:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Dwfy+DMrUQkECSY70q0X+k07FrLQKGdgbRHDEYB8Z3g=; b=DJjWkVqO8FLpF3Wj8hHe1eu/0c
	XpTkEhYPRiiDeQnVBS6d8MLX5lNM+10qUmyMK/b4zYE6mCBmEpS6hCU6SyRhH7EPIY1aE7OuIq0cK
	OrXTCZM7Pinnlbs52AaiZb+NkoP3RDNyeogCKzmJwA1/uNitpLIJ4ia73LD3B4KPjbEg=;
Message-ID: <f3fac780-2ab2-4d8d-83c6-62b697135064@xen.org>
Date: Tue, 19 Dec 2023 19:47:17 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 9/9] xen/arm: Map ITS doorbell register to IOMMU page
 tables
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231109182716.367119-1-stewart.hildebrand@amd.com>
 <20231109182716.367119-10-stewart.hildebrand@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231109182716.367119-10-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 09/11/2023 18:27, Stewart Hildebrand wrote:
> From: Rahul Singh <rahul.singh@arm.com>
> 
> When ITS is enabled and PCI devices that are behind an SMMU generate an
> MSI interrupt, SMMU fault will be observed as there is currently no
> mapping in p2m table for the ITS translation register (GITS_TRANSLATER).
> 
> A mapping is required in the p2m page tables so that the device can

Not quite. The mapping is required in the device page-table. But not the 
P2M. So this needs to be updated to match what the code is (correctly) 
doing.

> generate the MSI interrupt writing to the GITS_TRANSLATER register.
> 
> The GITS_TRANSLATER register is a 32-bit register, so map a single page.

and there is nothing else critical in the page.

> 
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> This patch was originally picked up from [1], and commit description
> loosely borrowed from [2].
> 
> Example SMMUv3 fault (qemu-system-aarch64 virt model), ITS base 0x8080000:
> 
> (XEN) SMMUv3: /smmuv3@9050000: event 0x10 received:
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000000800000010
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000008000000000
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000000008090040
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000000000000000
> 
> Example SMMUv2 fault (AMD/Xilinx Versal), ITS base 0xf9020000:
> 
> (XEN) smmu: /axi/smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0xf9030040, fsynr=0x12, cb=0
> 
> v5->v6:
> * switch to iommu_map() interface
> * fix page_count argument
> * style fixup
> * use gprintk instead of printk
> * add my Signed-off-by
> * move to vgic_v3_its_init_virtual()
> 
> v4->v5:
> * new patch
> 
> [1] https://lists.xenproject.org/archives/html/xen-devel/2023-07/msg00483.html
> [2] https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc/-/commit/6232a0d53377009bb7fbc3c3ab81d0153734be6b
> ---
>   xen/arch/arm/vgic-v3-its.c | 15 +++++++++++++++
>   1 file changed, 15 insertions(+)
> 
> diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
> index 05429030b539..c35d5f9eb53e 100644
> --- a/xen/arch/arm/vgic-v3-its.c
> +++ b/xen/arch/arm/vgic-v3-its.c
> @@ -1477,6 +1477,21 @@ static int vgic_v3_its_init_virtual(struct domain *d, paddr_t guest_addr,
>   
>       register_mmio_handler(d, &vgic_its_mmio_handler, guest_addr, SZ_64K, its);
>   
> +    if ( is_iommu_enabled(its->d) )
> +    {
> +        mfn_t mfn = maddr_to_mfn(its->doorbell_address);
> +        unsigned int flush_flags = 0;
> +        int ret = iommu_map(its->d, _dfn(mfn_x(mfn)), mfn, 1, IOMMUF_writable,
> +                            &flush_flags);


 From a generic perspective, iommu_map() can set flush_flags. Yet you 
are not doing anything with it. Should not we call iommu_iotlb_flush_all()?

Also, coding style: Newline.

> +        if ( ret < 0 )
> +        {
> +            gprintk(XENLOG_ERR,

NIT: gprintk() will print the current domain (e.g. toolstack domain). I 
would consider to use XENLOG_G_ERR instead to avoid unnecessary information.

> +                    "GICv3: Map ITS translation register %pd failed.\n",

Did you miss "for" before "%pd"?

> +                    its->d);
> +            return ret;
> +        }
> +    }
> +
>       /* Register the virtual ITS to be able to clean it up later. */
>       list_add_tail(&its->vits_list, &d->arch.vgic.vits_list);
>   

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 19:58:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 19:58:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657157.1025900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFgEt-0004QT-4M; Tue, 19 Dec 2023 19:58:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657157.1025900; Tue, 19 Dec 2023 19: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 1rFgEt-0004QM-1q; Tue, 19 Dec 2023 19:58:51 +0000
Received: by outflank-mailman (input) for mailman id 657157;
 Tue, 19 Dec 2023 19:58: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=l5PP=H6=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rFgEr-0004QG-QG
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 19:58:49 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 05b2fad3-9ea9-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 20:58:48 +0100 (CET)
Received: from mg.gitlab.com (26.226.74.34.bc.googleusercontent.com
 [34.74.226.26]) by
 012d5b193e2f with SMTP id 6581f5f605a232c0ebb444be (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Tue, 19 Dec 2023 19:58:46 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 05b2fad3-9ea9-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1703015926; x=1703023126; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=Cw0D3gDDCn6qq0hpGReJk6cpD+wnzdfQvKmpX8KiSKE=;
 b=SjcVEk2546BkgpSVQw/TmlHiGnfw+Cal01KghJ2tVFfYcJfQsfYNygiu63v9mIRAIOt7lm1M3wjCYk3m8Re0pLCj2Z7IL36hnV3LHlhjwPAoaOp/Z15eYAbZjfoEamcXsDfdcyosd+geSp4WRSZcKZQvHa5aA1KLe6f0EO03Ru4=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Tue, 19 Dec 2023 19:58:46 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6581f5f6ce2c5_2d12dc89095314@gitlab-sidekiq-catchall-v2-54fcfbf95-nkkkt.mail>
Subject: xen | Successful pipeline for staging | 1b42304f
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6581f5f6c5f83_2d12dc8909527";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1113302155
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6581f5f6c5f83_2d12dc8909527
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1113302155 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 1b42304f ( https://gitlab.com/xen-project/xen/-/commit/1b42304fd1d84adcf7caf8c12c33ec66347b6dcc )
Commit Message: xen/arm: ffa: return fpi size from FFA_PARTITIO...
Commit Author: Jens Wiklander ( https://gitlab.com/jenswi-linaro )
Committed by: Julien Grall



Pipeline #1113302155 ( https://gitlab.com/xen-project/xen/-/pipelines/1113302155 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 1b42304f</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1113302155 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/1b42304fd1d84adcf7=
caf8c12c33ec66347b6dcc" style=3D"color: #3777b0; text-decoration: none;">=
1b42304f</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: ffa: return fpi size from FFA_PARTITIO...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/5623521386d89fdd40c4a2677bfa2288?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jenswi-linaro" style=3D"col=
or: #333333; text-decoration: none;">
Jens Wiklander
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/51553d20dbeb50c199767049bd40c57b?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Julien Grall
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111330=
2155" style=3D"color: #3777b0; text-decoration: none;">#1113302155</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6581f5f6c5f83_2d12dc8909527--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 20:04:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 20:04:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657193.1025910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFgK9-0006v4-S0; Tue, 19 Dec 2023 20:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657193.1025910; Tue, 19 Dec 2023 20: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 1rFgK9-0006ux-PK; Tue, 19 Dec 2023 20:04:17 +0000
Received: by outflank-mailman (input) for mailman id 657193;
 Tue, 19 Dec 2023 20:04:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x6WA=H6=gmail.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rFgK8-0006ur-9q
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 20:04:16 +0000
Received: from mail-oo1-xc2a.google.com (mail-oo1-xc2a.google.com
 [2607:f8b0:4864:20::c2a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7d77a87-9ea9-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 21:04:14 +0100 (CET)
Received: by mail-oo1-xc2a.google.com with SMTP id
 006d021491bc7-591c3dc7265so2380913eaf.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 12:04:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7d77a87-9ea9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703016253; x=1703621053; 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=DXg9cDW3JjUVqUpK7rz7cijjR5jU7WBvRbwK6otXN60=;
        b=MRfKh+PVDfpyHjOJFvl/YAApGl54TY7/DtfAD8pcsJNySBaXuyKCv6NfJF9MG0obdF
         B2G4Icnfm5al2mI83E4nWh5A1RrtGieXe0bv4N2/UQWsfbjMvQE/n3rWuvINVunwCDhX
         /5WMcN7wdKMDHjNRtfvKHg3LwPc/pFLTWc9Xo2WiYkI0d83MpS3Dcw56jm4a6u2UGWHD
         rGgzCEgJ5qPgDjQ20IJCnNoLYdE90vhWNai1/CANBn+wi966J30Yq1iN8I63cnO44lQq
         ZW1FuF+4GmecJNuM+ucvCREoPagVggkKZm6TGXqCDs9yIfTiQB3dnjBaOmZBVkMgx/XF
         ESbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703016253; x=1703621053;
        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=DXg9cDW3JjUVqUpK7rz7cijjR5jU7WBvRbwK6otXN60=;
        b=jH3A3ak6ySROLk02pO//ZgY7Ji9AYj04AlyEZj0Be7P2qp9jH0xZ2VfvvpAZdkdHmR
         IsoMry6wFsXQAUzftulAi5POF3+V9zGuXrFbMkGzv6mi0Ebyd+MsaFCIwsFmDyMK/V6c
         XtmH130dzOBvFoGfS68Jjj6BmowciejyC2RZTwHJaNke0AFtZOpvv1rN/iuSAPUwqxe5
         q2uRQ3sdn5c+hSf/45wYwsSfHi9kZ02wE8sqqgGjoxUgEqJUTpBUJEsb5gtL0+2731sa
         cOG+TxC3MnHp6ZfrCRYjAH5jysxX7VQuZwtsHOjwsp4XMowVSGZO2EzxbWx5THlw0fp5
         dy/Q==
X-Gm-Message-State: AOJu0YyuKuuqdqE4Llh8LNRwFc4aWR3k6MoiOyCM37fCfKSGBZe4THMv
	0ShQWkb4OkiUen5teAfY7KqPFcimHwxRmA6JAfU=
X-Google-Smtp-Source: AGHT+IH0W7Lk4qYidn6qC1RIdBZwtv+70PgF1WA79AneRN/vlKbN6zwwagcHggVHwfD6j079x6f4wqmuhwuohs/5W6Q=
X-Received: by 2002:a05:6820:1c97:b0:58d:ca8b:7a83 with SMTP id
 ct23-20020a0568201c9700b0058dca8b7a83mr14112463oob.5.1703016252874; Tue, 19
 Dec 2023 12:04:12 -0800 (PST)
MIME-Version: 1.0
References: <20231205182011.1976568-1-stefanha@redhat.com> <20231205182011.1976568-7-stefanha@redhat.com>
 <ZYG9orsog3Pm675J@redhat.com>
In-Reply-To: <ZYG9orsog3Pm675J@redhat.com>
From: Stefan Hajnoczi <stefanha@gmail.com>
Date: Tue, 19 Dec 2023 15:04:01 -0500
Message-ID: <CAJSP0QV1MD-U5f1NkgL13CEm6-rCcGGPNhRyE2jwTKz+22rrzA@mail.gmail.com>
Subject: Re: [PATCH v2 06/14] block: remove AioContext locking
To: Kevin Wolf <kwolf@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org, 
	=?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= <philmd@linaro.org>, 
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, Cleber Rosa <crosa@redhat.com>, 
	Xie Changlong <xiechanglong.d@gmail.com>, Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>, 
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>, John Snow <jsnow@redhat.com>, 
	Eduardo Habkost <eduardo@habkost.net>, Wen Congyang <wencongyang2@huawei.com>, 
	Alberto Garcia <berto@igalia.com>, Anthony Perard <anthony.perard@citrix.com>, 
	"Michael S. Tsirkin" <mst@redhat.com>, Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org, 
	Juan Quintela <quintela@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>, 
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>, Zhang Chen <chen.zhang@intel.com>, 
	=?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, Peter Xu <peterx@redhat.com>, 
	Emanuele Giuseppe Esposito <eesposit@redhat.com>, Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>, 
	David Hildenbrand <david@redhat.com>, Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Tue, 19 Dec 2023 at 10:59, Kevin Wolf <kwolf@redhat.com> wrote:
>
> Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> > This is the big patch that removes
> > aio_context_acquire()/aio_context_release() from the block layer and
> > affected block layer users.
> >
> > There isn't a clean way to split this patch and the reviewers are likely
> > the same group of people, so I decided to do it in one patch.
> >
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > Reviewed-by: Eric Blake <eblake@redhat.com>
> > Reviewed-by: Kevin Wolf <kwolf@redhat.com>
> > Reviewed-by: Paul Durrant <paul@xen.org>
>
> > diff --git a/migration/block.c b/migration/block.c
> > index a15f9bddcb..2bcfcbfdf6 100644
> > --- a/migration/block.c
> > +++ b/migration/block.c
> > @@ -313,22 +311,10 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
> >      block_mig_state.submitted++;
> >      blk_mig_unlock();
> >
> > -    /* We do not know if bs is under the main thread (and thus does
> > -     * not acquire the AioContext when doing AIO) or rather under
> > -     * dataplane.  Thus acquire both the iothread mutex and the
> > -     * AioContext.
> > -     *
> > -     * This is ugly and will disappear when we make bdrv_* thread-safe,
> > -     * without the need to acquire the AioContext.
> > -     */
> > -    qemu_mutex_lock_iothread();
> > -    aio_context_acquire(blk_get_aio_context(bmds->blk));
> >      bdrv_reset_dirty_bitmap(bmds->dirty_bitmap, cur_sector * BDRV_SECTOR_SIZE,
> >                              nr_sectors * BDRV_SECTOR_SIZE);
> >      blk->aiocb = blk_aio_preadv(bb, cur_sector * BDRV_SECTOR_SIZE, &blk->qiov,
> >                                  0, blk_mig_read_cb, blk);
> > -    aio_context_release(blk_get_aio_context(bmds->blk));
> > -    qemu_mutex_unlock_iothread();
> >
> >      bmds->cur_sector = cur_sector + nr_sectors;
> >      return (bmds->cur_sector >= total_sectors);
>
> With this hunk applied, qemu-iotests 183 fails:
>
> (gdb) bt
> #0  0x000055aaa7d47c09 in bdrv_graph_co_rdlock () at ../block/graph-lock.c:176
> #1  0x000055aaa7d3de2e in graph_lockable_auto_lock (x=<optimized out>) at /home/kwolf/source/qemu/include/block/graph-lock.h:215
> #2  blk_co_do_preadv_part (blk=0x7f38a4000f30, offset=0, bytes=1048576, qiov=0x7f38a40250f0, qiov_offset=qiov_offset@entry=0, flags=0) at ../block/block-backend.c:1340
> #3  0x000055aaa7d3e006 in blk_aio_read_entry (opaque=0x7f38a4025140) at ../block/block-backend.c:1620
> #4  0x000055aaa7e7aa5b in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at ../util/coroutine-ucontext.c:177
> #5  0x00007f38d14dbe90 in __start_context () at /lib64/libc.so.6
> #6  0x00007f38b3dfa060 in  ()
> #7  0x0000000000000000 in  ()
>
> qemu_get_current_aio_context() returns NULL now. I don't completely
> understand why it depends on the BQL, but adding the BQL locking back
> fixes it.

Thanks for letting me know. I have reviewed migration/block.c and
agree that taking the BQL is correct.

I have inlined the fix below and will resend this patch.

Stefan
---
diff --git a/migration/block.c b/migration/block.c
index 2bcfcbfdf6..6ec6a1d6e6 100644
--- a/migration/block.c
+++ b/migration/block.c
@@ -311,10 +311,17 @@ static int mig_save_device_bulk(QEMUFile *f,
BlkMigDevState *bmds)
     block_mig_state.submitted++;
     blk_mig_unlock();

+    /*
+     * The migration thread does not have an AioContext. Lock the BQL so that
+     * I/O runs in the main loop AioContext (see
+     * qemu_get_current_aio_context()).
+     */
+    qemu_mutex_lock_iothread();
     bdrv_reset_dirty_bitmap(bmds->dirty_bitmap, cur_sector * BDRV_SECTOR_SIZE,
                             nr_sectors * BDRV_SECTOR_SIZE);
     blk->aiocb = blk_aio_preadv(bb, cur_sector * BDRV_SECTOR_SIZE, &blk->qiov,
                                 0, blk_mig_read_cb, blk);
+    qemu_mutex_unlock_iothread();

     bmds->cur_sector = cur_sector + nr_sectors;
     return (bmds->cur_sector >= total_sectors);


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 20:18:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 20:18:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657202.1025920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFgXT-0002In-2D; Tue, 19 Dec 2023 20:18:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657202.1025920; Tue, 19 Dec 2023 20: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 1rFgXS-0002Ig-Vx; Tue, 19 Dec 2023 20:18:02 +0000
Received: by outflank-mailman (input) for mailman id 657202;
 Tue, 19 Dec 2023 20:18: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=XNVD=H6=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1rFgXR-0002Ia-8k
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 20:18:01 +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 b4552933-9eab-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 21:17:59 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-55372c1338bso2923730a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 12:17:59 -0800 (PST)
Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com.
 [209.85.218.42]) by smtp.gmail.com with ESMTPSA id
 vx12-20020a170907a78c00b00a1ddb5a2f7esm15912080ejc.60.2023.12.19.12.17.58
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 12:17:58 -0800 (PST)
Received: by mail-ej1-f42.google.com with SMTP id
 a640c23a62f3a-a2331caab22so407121766b.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 12:17:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4552933-9eab-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linuxfoundation.org; s=google; t=1703017079; x=1703621879; 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=2YQISh9f/hMVihywyg7rkbccdS6kJ5BjuKERfau1fMo=;
        b=Gfopgk2OPF0t1jhqGQfVn+qC7NuOnvfag4ynoduMwrcOm9ilXI48XFDH2cjnoVDj2S
         hw6tFSMlxc4lmQjv0O/IjOFs/FnQCbBE8M0xcH3cCaZOYX3S/lntPdZsFdGJ/SYJaxf/
         xHWxPBhMW776xqbg0NuIUs8+z3Wn4HXDH0Ils=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703017079; x=1703621879;
        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=2YQISh9f/hMVihywyg7rkbccdS6kJ5BjuKERfau1fMo=;
        b=q9SIbL/hATcmtlOWUiW9pGDVhc47xD4FtrI3ksUlq6rPvpP6gmRaYF1TY8DYY3jByD
         RHm1XhbD2cokfiTLkk776tOWlzR/Dm334nHz39yOhfv8Jt4fQnQMEAag6MqHms0AJ5Q+
         j00LqccwBSgZZAN0K7ar3M4WJU/y3W4xL/Izp8s7l8hn49iL7tg+dnIdHyA8az1bn0kS
         8eYbIlNwGEV4U9TSJL6y5rmeUXj17l6JW4ku+rWTdP0yeFppqJqqlXhB206eRqEKmeT5
         hLWIjA6zx/8SG2F8BYFCTITB2aeMG31AFAY6JTMWRA55aENHorM658ZqOPxAUd2U8iec
         Xdbw==
X-Gm-Message-State: AOJu0Yy6CbIfdE1GwPQOrlTLuJ9iP1nrLUhl3mktBqBni3Rfps1u5lnY
	eulgoEpQRtHTWEoIpzGUX3E1ijpEzFFNC+n1o6KIYn9y
X-Google-Smtp-Source: AGHT+IF73DDNUHFj8PsHIimgsDvk5b3sVHsVAsPzO+R/FBjBf2L0p3d82NWCzcm5T2R7c8QrrAe1Xw==
X-Received: by 2002:a17:906:74c2:b0:a23:2e46:84cc with SMTP id z2-20020a17090674c200b00a232e4684ccmr2305318ejl.153.1703017079254;
        Tue, 19 Dec 2023 12:17:59 -0800 (PST)
X-Received: by 2002:a17:906:aed8:b0:a23:7576:3551 with SMTP id
 me24-20020a170906aed800b00a2375763551mr696466ejb.109.1703017078207; Tue, 19
 Dec 2023 12:17:58 -0800 (PST)
MIME-Version: 1.0
References: <202312191507.348721d2-oliver.sang@intel.com> <20231219095821.GAZYFpPUSKexZAcl05@fat_crate.local>
 <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com> <87013f74-5828-4bef-848b-ffedde8e86f5@citrix.com>
In-Reply-To: <87013f74-5828-4bef-848b-ffedde8e86f5@citrix.com>
From: Linus Torvalds <torvalds@linuxfoundation.org>
Date: Tue, 19 Dec 2023 12:17:40 -0800
X-Gmail-Original-Message-ID: <CAHk-=wh=z-aXw6o8Hi9SiC5-vwP403-ZpDHUOXdXmLbaG93dvQ@mail.gmail.com>
Message-ID: <CAHk-=wh=z-aXw6o8Hi9SiC5-vwP403-ZpDHUOXdXmLbaG93dvQ@mail.gmail.com>
Subject: Re: [linus:master] [x86/entry] be5341eb0d: WARNING:CPU:#PID:#at_int80_emulation
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Borislav Petkov <bp@alien8.de>, kernel test robot <oliver.sang@intel.com>, 
	Thomas Gleixner <tglx@linutronix.de>, oe-lkp@lists.linux.dev, lkp@intel.com, 
	linux-kernel@vger.kernel.org, Dave Hansen <dave.hansen@linux.intel.com>, 
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Tue, 19 Dec 2023 at 11:15, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> -asmlinkage long sys_ni_posix_timers(void);
> +asmlinkage long sys_ni_posix_timers(const struct pt_regs *regs);

I don't think it should be asmlinkage. That means "use legacy asm
calling conventions", and for x86-32 that means pass on stack. Which I
don't think these actually are.

I think it's an old artefect, and it doesn't matter for something that
doesn't take any arguments, but when you add an argument it's actively
wrong.

Of course, that argument isn't _used_, so it still doesn't matter, but
if the point is to use the right prototype, I think we should just
make it be

    long sys_ni_posix_timers(const struct pt_regs *regs);

although I think Sami's suggestion is probably nicer.

That said, I still think that just getting rid of this horrid special
case for posix timers is the right thing, and we should just remove
that SYS_NI() alias thing entirely.

          Linus


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 20:31:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 20:31:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657207.1025930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFgkY-00077F-6s; Tue, 19 Dec 2023 20:31:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657207.1025930; Tue, 19 Dec 2023 20: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 1rFgkY-000778-4E; Tue, 19 Dec 2023 20:31:34 +0000
Received: by outflank-mailman (input) for mailman id 657207;
 Tue, 19 Dec 2023 20:31:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rImv=H6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFgkW-000770-5p
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 20:31:32 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97da72d3-9ead-11ee-98eb-6d05b1d4d9a1;
 Tue, 19 Dec 2023 21:31:31 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40c580ba223so62595585e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 12:31:31 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 i7-20020a05600c354700b0040d2805d158sm3955116wmq.48.2023.12.19.12.31.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 12:31:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97da72d3-9ead-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703017890; x=1703622690; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=t7H1biO2frl0j4xW5wz01J98LEq7QGR0cPkaPVr0Zeg=;
        b=FQW6eSiAAmxSp8BlvtmnRXAOzxoDYHaj+g/ZecpuHWtpNAh4Yq0G2xowRhmEXL3rpb
         gbju6yoJW2Ipa8V5P8JqxXELfYVF3KaFvBVIoB+/UZRvVkvmKj7OQMnn9N7JEJC9fhJy
         uSCIRiMbPaa6KqcnPo1C948Yvf4D+nZWo+GBU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703017890; x=1703622690;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=t7H1biO2frl0j4xW5wz01J98LEq7QGR0cPkaPVr0Zeg=;
        b=gK6o7t/JNZkT85Me7yNv5OqHUnN2q5ubhwzBKBdt7q2Hm8LVwFDCKKsMZWr+Otta/e
         FIhfh27ermzJ1kQ47JNnYoAP0bKncoQ7Ot7m4iGjQlaoPu01a0dk0Ap9pXRrDyEHQkhP
         bQYpsDRGgMvNnV5k9XkACEVfGUyTcBUwlLwYzikJYyFPKhp/S95IERe0Tgbt1KdohVrG
         2MWv9Uy+pe4ATHaccmGWEbuBVVjEbYeADjLTXPSfPPq3/3NFORcsxliRekU9DxBIjgZK
         sWmV87pM4HxjAeXxinS0kGNZ+tbetvyRWXtpz/bcTsZ1LOpbJm+gOsY63xkv4cyWtQZp
         UsDg==
X-Gm-Message-State: AOJu0YzCwr7CdL4yKDjHePiHUUx5bpxOut09uUxRLTI58yPcf2QEK9fA
	f79rbigZfVAGMCbqDVYXEx484w==
X-Google-Smtp-Source: AGHT+IHCa/GuS4fsgPV3f1p2shLupt4oPuP8hQDzfm5l6p4CRjfEu4A7QDzh2/lvHH2W8oYAEBkpvA==
X-Received: by 2002:a05:600c:4981:b0:40c:3d91:152 with SMTP id h1-20020a05600c498100b0040c3d910152mr10162723wmp.79.1703017890394;
        Tue, 19 Dec 2023 12:31:30 -0800 (PST)
Message-ID: <32d6d42f-2736-42ed-bad3-a6bdaedf588c@citrix.com>
Date: Tue, 19 Dec 2023 20:31:29 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xen/x86: introduce self modifying code test
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <george.dunlap@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-3-roger.pau@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231215111842.8009-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/12/2023 11:18 am, Roger Pau Monne wrote:
> Introduce a helper to perform checks related to self modifying code, and start
> by creating a simple test to check that alternatives have been applied.
>
> Such test is hooked into the boot process and called just after alternatives
> have been applied.  In case of failure a message is printed, and the hypervisor
> is tainted as not having passed the tests, this does require introducing a new
> taint bit (printed as 'T').

We've got stub_selftest() in extable.c which currently does an ah-hoc
form of this taint via warning_add().

Nothing else comes to mind, but I would suggest breaking out the new
taint into an earlier patch, as this one is complicated enough anyway.

> diff --git a/xen/arch/x86/include/asm/test.h b/xen/arch/x86/include/asm/test.h
> new file mode 100644
> index 000000000000..e96e709c6a52
> --- /dev/null
> +++ b/xen/arch/x86/include/asm/test.h
> @@ -0,0 +1,30 @@
> +#ifndef _ASM_X86_TEST_H_
> +#define _ASM_X86_TEST_H_
> +
> +#include <xen/types.h>
> +
> +int test_smoc(uint32_t selection, uint32_t *results);
> +
> +static inline void execute_selftests(void)

IMO run_selftests() would be better, but this is already not all of our
selftests, and this particular function really doesn't warrant being
static inline.

But I'm also not sure what this is liable to contain other than
test_smoc() so I'm not sure why we want it.

> diff --git a/xen/arch/x86/test/smoc.c b/xen/arch/x86/test/smoc.c
> new file mode 100644
> index 000000000000..09db5cee9ae2
> --- /dev/null
> +++ b/xen/arch/x86/test/smoc.c
> @@ -0,0 +1,66 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#include <xen/errno.h>
> +
> +#include <asm/alternative.h>
> +#include <asm/cpufeature.h>
> +#include <asm/test.h>
> +
> +static bool cf_check test_insn_replacement(void)
> +{
> +#define EXPECTED_VALUE 2
> +    unsigned int r = ~EXPECTED_VALUE;
> +
> +    alternative_io("", "mov %1, %0", X86_FEATURE_ALWAYS,
> +                   "+r" (r), "i" (EXPECTED_VALUE));
> +
> +    return r == EXPECTED_VALUE;
> +#undef EXPECTED_VALUE
> +}
> +
> +int test_smoc(uint32_t selection, uint32_t *results)
> +{
> +    struct {
> +        unsigned int mask;
> +        bool (*test)(void);
> +        const char *name;
> +    } static const tests[] = {
> +        { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
> +          "alternative instruction replacement" },
> +    };

Ah.Â  I realise I said "like XTF", but I meant "checking one thing at a
time".

While this pattern for tests[] is very convenient in XTF, it has one
major downside in Xen, and that's the proliferation of ENDBR's in the
running binary.

Also (see below), returning bool isn't ok.Â  In the case of a failure, we
need:

printk(XENLOG_ERR "%s() Failure: Expected $FOO, got $BAR\n");

because that's what a human needs to know in order to fix the issue, not
a generic "something failed".

> +    unsigned int i;
> +
> +    if ( selection & ~XEN_SYSCTL_TEST_SMOC_ALL )
> +        return -EINVAL;

I'm not sure this is sensible.Â  It's a testing hypercall, so why
shouldn't I be able to pass ~0 to mean "test everything the hypervisor
knows about" ?

> +
> +    if ( results )
> +        *results = 0;
> +
> +    for ( i = 0; i < ARRAY_SIZE(tests); i++ )
> +    {
> +        if ( !(selection & tests[i].mask) )
> +            continue;
> +
> +        if ( tests[i].test() )
> +        {
> +            if ( results )
> +                *results |= tests[i].mask;

How is results supposed to be used?

XEN_SYSCTL_TEST_SMOC_INSN_REPL covers about 15 things we want to test,
making this output mask useless.


The selftests, like the exception fixup ones, are supposed to be
guarantee pass.Â  Failure is an exceptional case, and is only expected to
be found with new compilers and new SMC development.

I can kind of see how an input mask might be useful, although I wouldn't
have had one myself.Â  With correct diagnostics, running the hypercall
multiple times isn't useful to debugging, and without correct
diagnostics, the feedback provided by this is useless.

So honestly, I think this "results" output is overengineered and doesn't
help the cases where it is actually going to matter.


Remember most of all that self-modifying code which are going to cause
failures here have a high chance of crashing Xen outright.Â  And we're
deliberately trying to make this happen in CI and before a breaking
change gets out into releases.

> +            continue;
> +        }
> +
> +        if ( system_state < SYS_STATE_active )
> +            printk(XENLOG_ERR "%s test failed\n", tests[i].name);

This is a test hypercall, for the purpose of running testing, in
combination with test livepatches.Â  Eliding the diagnostics isn't ok.

Logspam concerns aren't an issue.Â  If the user runs `while :; do
xen-test-smc; done` in dom0 then they get to have a full dmesg ring.

Don't let that get in the way of having a sensible time figuring out
what went wrong.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 21:23:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 21:23:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657212.1025942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFhZ2-000221-2c; Tue, 19 Dec 2023 21:23:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657212.1025942; Tue, 19 Dec 2023 21: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 1rFhZ1-00021u-Tu; Tue, 19 Dec 2023 21:23:43 +0000
Received: by outflank-mailman (input) for mailman id 657212;
 Tue, 19 Dec 2023 21: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=x6WA=H6=gmail.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rFhYz-00021o-O8
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 21:23:41 +0000
Received: from mail-oo1-xc2c.google.com (mail-oo1-xc2c.google.com
 [2607:f8b0:4864:20::c2c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dfb06910-9eb4-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 22:23:39 +0100 (CET)
Received: by mail-oo1-xc2c.google.com with SMTP id
 006d021491bc7-58d1b767b2bso3169887eaf.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 13:23:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dfb06910-9eb4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703021017; x=1703625817; 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=nICuEkfj3PLAPb4crBPZRGpg1B1vpuOWK3zadnS8iKQ=;
        b=WFySQjuwwy3PVXrtea+IBOzz2ag5ujhj+qO3vB8JZ2w62lXmKKzexSv16YrzQq6Zdh
         VVW33uGZPz0T6tpJ8p8LcgjtXTNpEshn0/vzRL27pgW7O24N2ZtTA5uZI3ciPX2EJDP3
         hgEIx+0zf59Zc1jQySeoNL5ll0+DBXkBO19kBBr3ZLSBtuU8GsdVYdSdsBpzjw2x5h74
         KIpOOAEOVgc1AbyH0EFlfkOFOh/w8JM0Kn+GziPrm5RzYMqfvzmIyr2UfdtQfcnnpBSv
         Qe3YVlZG92+ezDvH1v6tuRcDsRD1aftHmf4aWvFpSqUnvrQnMDHMaFYB+gWjZyu1MSgP
         uXRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703021017; x=1703625817;
        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=nICuEkfj3PLAPb4crBPZRGpg1B1vpuOWK3zadnS8iKQ=;
        b=qKiSS2v8XjlkN/iUWFGEzsMdcUQx9AMva/toUVMAXAIZ4Nl+N+AG1/UPzmoXem3kM3
         EA9g+DVQp2qPPvEEitp0HeKzbgCPmrgCZAwPtJD9KxRC1i3++h+4GE66/BDCsxX9iI3a
         qu9T5XF0t1rRhkWet1M5qsXJRDcuiu+LWns+6t0EXL1a9NuX8vZ15aSBauf5O7o9ZN4u
         H2bAU3l1e2WH/iG09FCZ8SD3Y637T1pj9GjfWsUFX3e8iOAyfnJSX2ExwPYhUqtW9VtV
         3wOZXlIXzUXasnE7wd5vxQG1ab/W1CatZhSt3+XM2gmyqZHFkPIKV4UtjDLuloqu0acH
         O4Ng==
X-Gm-Message-State: AOJu0YxpZkII7RgWb5PYosrW/8SEynrhRYVCs7yZiSR71NMS/1DDPscv
	bP34UcgosV9ZG7/5bM7z4003ZpadmKmRDQU717E=
X-Google-Smtp-Source: AGHT+IHVIv/bhibWf/9XrrtIyC0FAx9t0SjtZNCD+Hdo7m5wJu+F4HtlpD8Eqdypy7Sair+AhRUzUIcHjZxF9HQZERU=
X-Received: by 2002:a4a:aac4:0:b0:593:f907:68ec with SMTP id
 e4-20020a4aaac4000000b00593f90768ecmr686837oon.14.1703021017426; Tue, 19 Dec
 2023 13:23:37 -0800 (PST)
MIME-Version: 1.0
References: <20231205182011.1976568-1-stefanha@redhat.com> <20231205182011.1976568-5-stefanha@redhat.com>
 <ZYG2mSe1JWnC0tq_@redhat.com> <ZYHew2poxuJJRyhC@redhat.com>
In-Reply-To: <ZYHew2poxuJJRyhC@redhat.com>
From: Stefan Hajnoczi <stefanha@gmail.com>
Date: Tue, 19 Dec 2023 16:23:25 -0500
Message-ID: <CAJSP0QX0fg0TGWuveJz6+QbF9EmY=vPiU-c99fHZMN=1jAnXkw@mail.gmail.com>
Subject: Re: [PATCH v2 04/14] aio: make aio_context_acquire()/aio_context_release()
 a no-op
To: Kevin Wolf <kwolf@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org, 
	=?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= <philmd@linaro.org>, 
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, Cleber Rosa <crosa@redhat.com>, 
	Xie Changlong <xiechanglong.d@gmail.com>, Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>, 
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>, John Snow <jsnow@redhat.com>, 
	Eduardo Habkost <eduardo@habkost.net>, Wen Congyang <wencongyang2@huawei.com>, 
	Alberto Garcia <berto@igalia.com>, Anthony Perard <anthony.perard@citrix.com>, 
	"Michael S. Tsirkin" <mst@redhat.com>, Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org, 
	Juan Quintela <quintela@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>, 
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>, Zhang Chen <chen.zhang@intel.com>, 
	=?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, Peter Xu <peterx@redhat.com>, 
	Emanuele Giuseppe Esposito <eesposit@redhat.com>, Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>, 
	David Hildenbrand <david@redhat.com>, Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

The following hack makes the test pass but there are larger safety
issues that I'll need to look at on Wednesday:

diff --git a/nbd/server.c b/nbd/server.c
index 895cf0a752..cf4b7d5c6d 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -1617,7 +1617,7 @@ static void nbd_drained_begin(void *opaque)
     }
 }

-static void nbd_drained_end(void *opaque)
+static void nbd_resume_clients(void *opaque)
 {
     NBDExport *exp = opaque;
     NBDClient *client;
@@ -1628,6 +1628,15 @@ static void nbd_drained_end(void *opaque)
     }
 }

+static void nbd_drained_end(void *opaque)
+{
+    NBDExport *exp = opaque;
+
+    /* TODO how to make sure exp doesn't go away? */
+    /* TODO what if AioContext changes before this runs? */
+    aio_bh_schedule_oneshot(nbd_export_aio_context(exp),
nbd_resume_clients, exp);
+}
+
 static bool nbd_drained_poll(void *opaque)
 {
     NBDExport *exp = opaque;


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 21:28:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 21:28:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657219.1025951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFhdI-0002gu-MW; Tue, 19 Dec 2023 21:28:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657219.1025951; Tue, 19 Dec 2023 21: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 1rFhdI-0002gn-Jk; Tue, 19 Dec 2023 21:28:08 +0000
Received: by outflank-mailman (input) for mailman id 657219;
 Tue, 19 Dec 2023 21:28: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 1rFhdH-0002gd-P4; Tue, 19 Dec 2023 21:28: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 1rFhdH-0003H9-KK; Tue, 19 Dec 2023 21:28: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 1rFhdH-0007Nv-6e; Tue, 19 Dec 2023 21:28:07 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFhdH-00030v-69; Tue, 19 Dec 2023 21:28: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=rbfHa8hfkgiNaqJin2nKflRZDNjVHP+FRdX0hgtxsAI=; b=jF+fl1JaPgXP99Dsl42uc8/s+/
	9eB7uDV8RqXCaFfSC+fSJ19lNeeCCTIxr/MrpJ08Qzu6+oq8nc5hUr2KoLRnprYgrbsyUW0N/BV61
	6ewn02pkRl/WtpNv+hcb/52eKn4TSN+K+/FwZ2P9VY/iF5+Ou0HFTWwNmmpSnJUAHTeU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184178-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184178: 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=1b42304fd1d84adcf7caf8c12c33ec66347b6dcc
X-Osstest-Versions-That:
    xen=05b6368ba01e07aa3b2b1f1856d77332971a7bdf
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 19 Dec 2023 21:28:07 +0000

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

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                  1b42304fd1d84adcf7caf8c12c33ec66347b6dcc
baseline version:
 xen                  05b6368ba01e07aa3b2b1f1856d77332971a7bdf

Last test of basis   184174  2023-12-19 13:02:03 Z    0 days
Testing same since   184178  2023-12-19 19:02:13 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jens Wiklander <jens.wiklander@linaro.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
   05b6368ba0..1b42304fd1  1b42304fd1d84adcf7caf8c12c33ec66347b6dcc -> smoke


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 22:25:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 22:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657226.1025961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFiWJ-0004rM-RY; Tue, 19 Dec 2023 22:24:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657226.1025961; Tue, 19 Dec 2023 22:24:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFiWJ-0004rF-Of; Tue, 19 Dec 2023 22:24:59 +0000
Received: by outflank-mailman (input) for mailman id 657226;
 Tue, 19 Dec 2023 22:24:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Tc1R=H6=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rFiWI-0004r7-MX
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 22:24:59 +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 6ea6b5ea-9ebd-11ee-9b0f-b553b5be7939;
 Tue, 19 Dec 2023 23:24:53 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a233a60f8feso397286766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 14:24:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ea6b5ea-9ebd-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703024693; x=1703629493; 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=0eOzDCsyfuMSa6M6LrXPX8dBBvwfNWLujpYs2rzQWH4=;
        b=IRnumfCV8XeETr3iRxmCAM7STt4ri109Ce7WYqIbw+kSw/I88jO1z1itZiK3o+NFZG
         RkOLIlC8j3T1yN3UGTNylzq6MXIP7E7HoNo69V8SWdXNneQKQw4If1xeujiKDJ1cFxjl
         8zo9TJyFAz3iZfjc2AbrFjBM6aLKVMieCqVtfU6l71OlU3rdg5JGPHIaSkrjQoOli2il
         MArc/l0U49D/LTZJZ8u0WbDBqoLr79s9lpya4/zcl6VCqmHTcnXBpy2YZ+7mZNouwQdY
         2aa1l6wF/ZQmqEHQksC5OveM83Jhnq1d4UwmfNSYw666seqoYoYPVy62bF4EFsx72CrI
         SCxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703024693; x=1703629493;
        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=0eOzDCsyfuMSa6M6LrXPX8dBBvwfNWLujpYs2rzQWH4=;
        b=uoGEcXAKH49Jhyryq0Dj3e+PCEZf5E60uzMjADvhYKx42EGmFn2ulfEvXoIOGZN6xT
         QZA5QQraFnruzAd0nq6F+F0oshxPPzl7gpAhdesPCDnHTAzF+awwlWWA5xIU5QFd4hxU
         wVlG1wTMaNVFgh8vyr/5YwNfbXdXir2X8sBKPIrm4lNOLAcdKHJ+YwAo71dpv3xragP4
         oR2asjmHvEDDgOYuKkh7uF5dA6zdZJqPabYpjPqCsvKfvJ1N+uWkX7VDPZ5p8CHXoX5h
         ExG77qFAUv6VENjmwChLrcPl/4GY+sjpZpddBTZLhj3Aj0ffDIgIcHIte2b0CEbr1U7O
         Blcg==
X-Gm-Message-State: AOJu0Yxvn78SzbhwUr8efsI/A82RPxyBYXYDI1ogyDVAelpJHJhXlW5h
	A+RHEmpzNljQG32wnGcx9/VmOPV4o4nz2ArQAhY=
X-Google-Smtp-Source: AGHT+IEUvErGAJWXxWFGKHszFTZRzmVDbF5bYa8nT2DFia8es+NuQhgNVljrkFC4ZcGfIwP4QKnAq8BzTq5krof+N70=
X-Received: by 2002:a17:906:30ca:b0:a1e:997a:574f with SMTP id
 b10-20020a17090630ca00b00a1e997a574fmr7830411ejb.122.1703024692828; Tue, 19
 Dec 2023 14:24:52 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us> <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us> <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com> <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
From: Mario Marietto <marietto2008@gmail.com>
Date: Tue, 19 Dec 2023 23:24:16 +0100
Message-ID: <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com>
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM Chromebook
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stanislav Silnicki <stanislav.silnicki@mailgate.us>, freebsd-arm@freebsd.org, 
	Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
Content-Type: multipart/alternative; boundary="000000000000dc1fa1060ce45558"

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

I've asked some help on the channel #arm on Reddit and someone replied :

https://www.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_arm32=
_bit_as_domu_with/

Maybe his answer can be useful to understand why it does not work.

On Tue, Dec 19, 2023 at 8:33=E2=80=AFPM Stefano Stabellini <sstabellini@ker=
nel.org>
wrote:

> +Michal
>
> Hi Mario,
>
> I am not sure about booting FreeBSD, but I am certain that u-boot works
> fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config
> file:
>
> name=3D"test"
> kernel=3D"u-boot.bin"
> extra =3D "console=3Dhvc0"
> memory=3D256
> vcpus=3D1
> disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>
> I don't know for sure if you can boot FreeBSD but you should definitely
> be able to see the u-boot command line prompt. The fact that you are
> getting this message:
>
> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found:
> Invalid kernel
>
> Means that something is not right in the u-boot configuration or u-boot
> build. Michal and Artem (CCed) might know more. From what I recall,
> there was nothing special required to get u-boot.bin to boot as domU
> kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.
>
> Cheers,
>
> Stefano
>
>
> On Tue, 19 Dec 2023, Mario Marietto wrote:
> > ....I see that some other interesting files have been produced by u-boo=
t
> when I have compiled it :
> >
> > u-boot
> > u-boot.lds
> > u-boot.bin
> > u-boot.map
> > u-boot-nodtb.bin
> > u-boot.dtb
> > u-boot.srec
> > u-boot-dtb.bin
> > u-boot.sym
> >
> > So,maybe I should use a different u-boot* file for booting FreeBSD ?
> >
> >
> > On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto <marietto2008@gm=
ail.com>
> wrote:
> >       Hello to everyone.
> >
> > I have compiled the needed u-boot.bin from scratch using this procedure=
 :
> >
> > # git clone https://github.com/u-boot/u-boot.git
> > # cd u-boot
> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig :=
 this
> line generates the file .config
> > # nano .config and I've added these parameters :
> >
> > CONFIG_ARMV7_NONSEC=3Dn
> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
> >
> > the uboot-bin file is generated with this command :
> >
> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make
> >
> > At this point,I took a look inside the .config file and I saw that the
> parameter "CONFIG_ARMV7_NONSEC=3Dn" has been removed. So,for
> > some reason,it is not accepted and this could be a problem....
> >
> > These are the xen config files that I've used :
> >
> > nano freebsd.cfg
> >
> > name=3D"test"
> > kernel=3D"u-boot.bin"
> > extra =3D "console=3Dhvc0"
> > memory=3D256
> > vcpus=3D1
> > disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
> >
> > nano start-freebsd
> >
> > xl create freebsd.cfg
> > xl console freebsd
> >
> > This is what happens when I launch the vm :
> >
> > # ./start-freebsd
> >
> > Parsing config from freebsd.cfg
> > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader
> found: Invalid kernel
> > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fail=
ed
> > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
> 1:cannot (re-)build domain: -3
> > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
> 1:Non-existent domain
> > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
> 1:Unable to destroy guest
> > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
> 1:Destruction of domain failed
> > freebsd is an invalid domain identifier (rc=3D-6)
> >
> >
> > On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto <marietto2008@g=
mail.com>
> wrote:
> >       So,ok,I should have said "the second u-boot" ; since the first
> u-boot binary is the "u-boot binary located in the RO
> >       memory" of the Chromebook". Sorry for the confusion.
> >
> > On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto <marietto2008@g=
mail.com>
> wrote:
> >       ---> There are no specific options in u-boot devoted to FreeBSD
> >
> > This is an important factor. So,what about if,instead of compiling a ne=
w
> version of u-boot on the partition 2,I will
> > recompile the u-boot customized version created by the virtual open
> system in 2014,that should be installed on the first
> > partition ? It could work if there are no differences between the u-boo=
t
> that should boot Linux and the u-boot that
> > should boot FreeBSD.
> >
> > Can you give a look at the u-boot source code created by virtual open
> systems ? You can find it on my google drive :
> >
> >
> https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?us=
p=3Dsharing
> >
> > I need to understand if I can recompile it without problem so that it
> can satisfy my needs (the ability of the file
> > u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano
> Stabellini,the xen developer that suggested to me
> > what I could do to have FreeBSD virtualized under Xen on my Arm
> Chromebook) ; otherwise the risk is to find later
> > problems that will make me troubles and that I will not able to fix.
> >
> > I gave a look at the virtual open system u-boot and I didn't see any
> arndale_defconfig inside. So,If I have understood
> > correctly,I should put that file inside the root of the u-boot source
> code,let's say here :
> >
> > marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls
> >
> > .checkpatch.conf        README                  doc
>                     net
> > .git                    api                     drivers
>                 onenand_ipl
> > .gitignore              arch                    dts
>                     post
> > COPYING                 board                   examples
> rules.mk
> > CREDITS                 boards.cfg              fs
>                      scripts
> > MAINTAINERS             common                  include
>                 snapshot.commit
> > MAKEALL                 config.mk               lib
>                     spl
> > Makefile                cros                    mkconfig
>                test
> > PRESUBMIT.cfg           disk                    nand_spl
>                tools
> >
> > and I should do : make and make install ? and the file I need,u-boot.bi=
n
> will be generated ?
> >
> > I didn't find any pre made configuration file inside :
> >
> > u-boot-vos # find . -type f -name "exynos*"
> >
> > ./include/exynos-fb.h
> > ./include/configs/exynos5-common.h
> > ./doc/device-tree-bindings/spi/exynos-spi.txt
> > ./doc/device-tree-bindings/usb/exynos-usb.txt
> > ./drivers/power/exynos-tmu.c
> > ./drivers/power/exynos-cpufreq.c
> > ./drivers/video/exynos-fb.c
> > ./drivers/spi/exynos_spi.c
> > ./board/samsung/dts/exynos5250-spring.dts
> > ./board/samsung/dts/exynos5250-smdk5250.dts
> > ./board/samsung/dts/exynos5250-snow.dts
> > ./board/samsung/dts/exynos5250-daisy.dts
> > ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h
> > ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h
> > ./arch/arm/dts/exynos5250.dtsi
> > ./arch/arm/dts/exynos-periph-id.dtsi
> > ./arch/arm/cpu/armv7/exynos5/exynos_cache.c
> >
> > u-boot-vos # find . -type f -name "arndale*"
> >
> > For sure I can't use a newer version of u-boot because otherwise the
> patches needed to bypass the bootloader protections
> > of the Arm Chromebook (such as a lot of different patches needed to boo=
t
> correctly Linux) will be broken ; anyway,since
> > it works,I don't need to use an updated version of u-boot.
> >
> > ----> As per my experience, you have to respect these two options,
> compiling u-boot for
> > FreeBSD:
> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-master=
/files/FreeBSD_Fragment
> >
> > It says that I should use these parameters :
> >
> > CONFIG_ARMV7_NONSEC=3Dn
> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
> >
> > These are the parameters used to configure a Linux kernel. I don't
> understand what's the relation between the compilation
> > of a linux kernel and u-boot. In the past I tried to recompile
> u-boot,but I didn't have the need to set up those
> > parameters,so I don't know how to do it (but I know how to recompile a
> Linux kernel).
> >
> > ---> I'm not sure that I'm getting you right, as I don't understand wha=
t
> you mean under "the first u-boot".
> >
> >
> > I'm talking about first u-boot because the whole procedure to boot Linu=
x
> on the ARM Chromebook,that's explained here :
> >
> > http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook=
/
> >
> >
> > at some point they say :
> >
> >
> > To be able to run KVM on ARM platforms, the kernel has to be booted in
> hypervisor mode. Because of this relatively recent
> > requirement (due to the introduction of the virtualization extensions),
> up until now all booting methods would boot the
> > kernel in the standard Supervisor mode.
> >
> > For the ARM Chromebook the default boot procedure doesn't allow us to
> boot in hypervisor mode. Although the laptop's boot
> > mechanism is based on the frequently used u-boot, the binary is located
> in RO memory. Fortunately, a chained u-boot
> > mechanism can be used (i.e. starting another u-boot after the original)=
.
> We can then enter hypervisor mode from our
> > custom iteration of u-boot and subsequently load our kernel and
> userspace.
> >
> > So,the first u-boot is the u-boot provided by virtual open
> systems,that's able to chainload the "u-boot binary located in
> > RO memory" , that does not boot Chrome OS in hypervisor mode. We don't
> need it if we want to boot Linux with kvm or xen
> > enabled.
> >
> >
> > On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki <
> stanislav.silnicki@mailgate.us> wrote:
> >       I'm not an expert in the topic, I only know, that ARM has divided
> hardware into two worlds - Secure and
> >       Not-So, strictly limiting any software, running in non-secure
> world with access to functions and
> >       resources.
> https://developer.arm.com/documentation/den0013/d/Security/TrustZone-hard=
ware-architecture?lang=3Den
> >
> > I'm not sure, that I'm getting you right, as I don't understand what yo=
u
> mean under "the first u-boot".
> >
> > As I understand, virtualization (HYP) is running in non-secure world(
> https://developer.arm.com/documentation/ddi0406/c/System-Level-Architectu=
re/The-System-Level-Programmers--Model/The-Virtualization-Extens
> > ions), so my guess (only guess!!!), virtualization software has to
> prepare (configure) HW platform in the way,
> > that FreeBSD kernel will not lack any resources, required to configure
> MPU, VA, etc.
> > So, if you lucky to boot virtualizer, which is aware of target OS, that
> maybe you can boot the kernel. Although, I
> > doubt, that you need to boot 'second' u-boot to boot the kernel - there
> is simply ubldr, which you can hook somehow
> > from virtualizer....
> >
> > Stan
> >
> >
> >
> > Mario Marietto wrote:
> >
> >
> >       ---> As I understand, it makes sure that u-boot keeps in secure
> mode during boot and passes control to
> >       ubldr, which boots FreeBSD kernel, in that mode.
> >
> > Can you elaborate your sentence more ? I know that the bootloader secur=
e
> mode is bypassed by the virtual open
> > systems u-boot. Are you saying that when the control passes to the
> second u-boot,it will happen in secure
> > mode,so that the bypass that happened loading the first u-boot,is
> annulled ? If this is true,maybe can I boot
> > FreeBSD using the virtual-open-system custom u-boot ? Is this compatibl=
e
> with FreeBSD ? Where can I find the
> > u-boot.bin that the xen developer talked about ? thanks bro'.
> >
> >
> >
> > On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki <
> stanislav.silnicki@mailgate.us> wrote:
> >       Hi Mario,
> >
> > U-Boot  beast is hiding in this den:
> https://source.denx.de/u-boot/u-boot.git
> > I took a brief look at your post and it seems to me, that
> option CONFIG_CMO_BY_VA_ONLY is irrelevant to
> > your target armv7 32 bit
> > platform:
> https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/cpu/armv8/Kco=
nfig?ref_type=3Dheads#L3
> >
> > As for compiling the u-boot, it is a doable task, given that you
> understand what you are doing. There
> > are no specific options in u-boot devoted to FreeBSD. It is a boot
> loader, whose mission to make basic
> > hardware initialization, read you kernel file from some media into RAM
> and then pass it control.
> >
> > Basically, you can grab some defconfig, prepared for any other
> Exynos5250 based board  (say, this one:
> >
> https://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defcon=
fig?ref_type=3Dheads)
> and adopt
> > it somehow.
> >
> > As per my experience, you have to respect these two options, compiling
> u-boot for
> > FreeBSD:
> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-master=
/files/FreeBSD_Fragment
> >
> > As I understand, it makes sure, that u-boot keeps in secure mode during
> boot and passes control to
> > ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot
> of surprises you may realize.
> >
> > Hope, this will help to progress you tasks
> > Stan
> >
> > Mario Marietto wrote:
> >
> >
> >       Hello.
> >
> >       I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM
> Chromebook. Basically there are
> >       two ways to accomplish this task :
> >
> >       1) to write a patch that allows the FreeBSD kernel to boot as a
> zImage file. This could be
> >       accomplished applying this patch to a specific file that's on the
> source code of FreeBSD :
> >
> >
> >
> https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98cc1391472717035f=
986c979edef0c9
> >
> >
> >       This patch was written by Julien Grall a lot of time ago and now
> it does not work anymore.
> >       This is the reason :
> >
> >
> >             It appears FreeBSD-CURRENT removed the last step converting
> the kernel file to
> >             kernel.bin. The patch can be readily rebased, but without
> kernel.bin that
> >             doesn't do too much.
> >
> >
> >
> > So,without a rebase of that patch the first option is not applicable.
> And I'm not able to fix it.
> >
> > 2) booting FreeBSD using U-Boot,as explained to me by a xen developer :
> >
> >
> >       I was trying to explain why and how Julien's patch works so that
> you could be the one
> >       to re-do something similar or fix the patch on the FreeBSD kernel
> that you are
> >       working with. I am happy to help review and write patches but I
> don't work with the
> >       FreeBSD kernel so I wouldn't be able to help you quickly. However=
,
> I might have a
> >       suggestion. Do you know if FreeBSD can be booted by U-Boot ?
> Because U-Boot
> >       definitely boots as Xen on ARM guest firmware/bootloader. You
> should be able to build
> >       U-Boot and use the U-Boot binary as Xen guest kernel, then U-Boot
> could load FreeBSD
> >       from disk or network and start it. For instance as domU config
> file:
> >
> >       kernel=3D"/home/petalinux/u-boot.bin"
> >       disk =3D [ '/home/petalinux/test.img,raw,xvda' ]
> >
> >       I know it is important to build u-boot with the following config
> to make it work on
> >       Xen.
> >
> >       CONFIG_CMO_BY_VA_ONLY=3Dy
> >
> >
> >
> > This option seems more doable to me according to my knowledge. But I
> need to understand how to do
> > it.
> >
> > Well,let's say that on the ARM Chromebook I'm forced to use and install
> a customized version of
> > u-boot,created by virtual open systems,because it is the only one that
> allows bypassing its
> > bootloader protection. You can find more information here :
> >
> >
> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/?=
vos=3Dtech
> >
> > This is the relevant section to read :
> >
> >
> >       Bootloader :
> >
> >       If you wish to skip this chapter you can download a pre-compiled
> binary of the
> >       bootloader:
> >
> >
> >       $ wget
> >
> http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u=
-boot-snow.kpart
> >
> >
> >       To be able to run KVM on ARM platforms, the kernel has to be
> booted in hypervisor
> >       mode. Because of this relatively recent requirement (due to the
> introduction of the
> >       virtualization extensions), up until now all booting methods woul=
d
> boot the kernel in
> >       the standard Supervisor mode. For the ARM Chromebook the default
> boot procedure
> >       doesn't allow us to boot in hypervisor mode. Although the laptop'=
s
> boot mechanism is
> >       based on the frequently used u-boot, the binary is located in RO
> memory. Fortunately,
> >       a chained u-boot mechanism can be used (i.e. starting another
> u-boot after the
> >       original). We can then enter hypervisor mode from our custom
> iteration of u-boot and
> >       subsequently load our kernel and userspace.
> >
> >       Checkout the needed u-boot code :
> >
> >
> >       $ git clone git://github.com/virtualopensystems/u-boot.git$ cd
> u-boot$
> >       ./scripts/build.sh
> >
> >
> >       If successful, a message about how to copy the bootloader on the
> USB flash disk or SD
> >       card will appear. We will use it later when preparing the boot
> medium to start our
> >       system. If you have followed the Setting up the boot medium
> chapter and you have a
> >       prepared boot device, then you can update u-boot by running :
> >
> >
> >       $ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev/sdX1
> >
> >
> >
> > so,the needed u-boot that we must use should be installed on the first
> partition of the sd card.
> >
> > There is another relevant section to read :
> >
> >
> >       Setting up the boot medium
> >
> >       Now it is time to copy all the relevant files that we created in
> the previous
> >       chapters,and use them to boot Chromebook with a different kernel
> and OS. In all these
> >       examples the device /dev/sdX is used. Take extra care to change
> the examples to the
> >       device that you have attached. Insert the boot medium on your
> workstation and
> >       carefully execute the following step. First we need to properly
> format the boot
> >       medium.
> >
> >       In the uboot source directory :
> >
> >
> >       $ sudo ./scripts/sdcard.sh /dev/sdX
> >
> >
> >       This will erase all data and create 4 partitions in the medium,
> along with copying
> >       the u-boot binary to the first partition:
> >
> >
> >       Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
> >       Partition 2 =3D not used
> >       Partition 3 =3D EXT2 partition for u-boot files (uImage and
> exynos5250-snow.dtb)
> >       Partition 4 =3D EXT4 partition for userspace files
> >
> >
> >       With u-boot being copied, next is the kernel image and DTB file.
> From the kernel
> >       source execute :
> >
> >
> >       $ mkdir ../mnt/
> >       $ sudo mount /dev/sdX3 ../mnt/
> >       $ sudo cp arch/arm/boot/uImage ../mnt/
> >       $ sudo cp arch/arm/boot/dts/exynos5250-snow.dtb ../mnt/
> >       $ sudo umount /dev/sdX3
> >
> >
> >       Finally, we have to copy the Ubuntu userspace filesystem that we
> created earlier:
> >
> >
> >       $ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./precise/* mnt/$ sudo
> umount /dev/sdX4
> >
> >
> >
> > Now,my idea is to chainload the already chain loaded u-boot created by
> V.O.S to the new u-boot
> > that we need for booting FreeBSD and that can be installed in the
> partition n.2,as shown in this
> > scheme,because it is not used :
> >
> >
> > Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
> > Partition 2 =3D not used (maybe we can install the u-boot for arm 32
> bit,compatible with FreeBSD on
> > this partition)
> > Partition 3 =3D EXT2 partition for u-boot files (uImage and
> exynos5250-snow.dtb)
> > Partition 4 =3D EXT4 partition for userspace files
> >
> >
> > Take in consideration that default boot string is hardcoded here,in the
> snow.h file of the custom
> > u-boot created by VOS :
> >
> >
> >
> https://github.com/virtualopensyste...18a39b6c177dff58a/include/configs/s=
now.h#L101
> >
> >
> > and it needs to be recompiled because it should point to the partition
> n.2,where I will install
> > the u-boot files as explained here :
> >
> >
> > https://wiki.freebsd.org/arm/Chromebook
> >
> >
> > I have some questions to ask before I start working on this.
> >
> > 1) The xen developer said :
> >
> >
> >       You should be able to build U-Boot and use the U-Boot binary as
> Xen guest kernel...
> >
> >
> >
> > where is the u-boot binary,according to this document ?
> >
> > https://wiki.freebsd.org/arm/Chromebook
> >
> > I don't see it.
> >
> >
> > 2) where is the source code of the file that I can get here :
> >
> >
> http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/nv=
_uboot-snow-simplefb.kpart.bz2
> >
> > I need the source code if I want to recompile u-boot so that it can
> point to the partition 4.
> >
> > Maybe it can be found on this link :
> >
> > http://linux-exynos.org/dist/chromebook/nv_uboot/
> >
> > but it can't be opened....
> >
> >
> > 3) in this specific scenario the source code of u-boot should run on ar=
m
> 32 bit,not on arm
> > 64,because I have the Samsung Chromebook "SNOW" model XE303C12,that's
> powered by a Samsung Exynos
> > 5250 (ARMv7 32 bit Cortex A15) Soc.
> >
> >
> > 4) I'm not sure if I can chainload the customized u-boot created by
> V.O.S that should be
> > installed on the first partition with the u-boot tailored for booting
> FreeBSD that should be
> > installed on the partition 2....
> >
> >
> > 5) the xen developer said that u-boot should be compiled enabling this
> option :
> >
> >
> > Code:
> >
> > CONFIG_CMO_BY_VA_ONLY=3Dy
> >
> >
> > Well,can you provide some good source that can help me to understand ho=
w
> I can recompile u-boot
> > for FreeBSD ? thanks.
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >



--=20
Mario.

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

<div dir=3D"ltr"><div>I&#39;ve asked some help on the channel #arm on Reddi=
t and someone replied :</div><div><br></div><div><a href=3D"https://www.red=
dit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_arm32_bit_as_domu_wi=
th/">https://www.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_=
arm32_bit_as_domu_with/</a></div><div><br></div><div>Maybe his answer can b=
e useful to understand why it does not work. <br></div></div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Dec 19, 2023=
 at 8:33=E2=80=AFPM Stefano Stabellini &lt;<a href=3D"mailto:sstabellini@ke=
rnel.org">sstabellini@kernel.org</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex">+Michal<br>
<br>
Hi Mario,<br>
<br>
I am not sure about booting FreeBSD, but I am certain that u-boot works<br>
fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config<br>
file:<br>
<br>
name=3D&quot;test&quot;<br>
kernel=3D&quot;u-boot.bin&quot;<br>
extra =3D &quot;console=3Dhvc0&quot;<br>
memory=3D256<br>
vcpus=3D1<br>
disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
<br>
I don&#39;t know for sure if you can boot FreeBSD but you should definitely=
<br>
be able to see the u-boot command line prompt. The fact that you are<br>
getting this message:<br>
<br>
xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: I=
nvalid kernel<br>
<br>
Means that something is not right in the u-boot configuration or u-boot<br>
build. Michal and Artem (CCed) might know more. From what I recall,<br>
there was nothing special required to get u-boot.bin to boot as domU<br>
kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.<br>
<br>
Cheers,<br>
<br>
Stefano<br>
<br>
<br>
On Tue, 19 Dec 2023, Mario Marietto wrote:<br>
&gt; ....I see that some other interesting files have been produced by u-bo=
ot when I have compiled it :<br>
&gt; <br>
&gt; u-boot<br>
&gt; u-boot.lds<br>
&gt; u-boot.bin<br>
&gt; u-boot.map<br>
&gt; u-boot-nodtb.bin<br>
&gt; u-boot.dtb<br>
&gt; u-boot.srec<br>
&gt; u-boot-dtb.bin<br>
&gt; u-boot.sym<br>
&gt; <br>
&gt; So,maybe I should use a different u-boot* file for booting FreeBSD ?<b=
r>
&gt; <br>
&gt; <br>
&gt; On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto &lt;<a href=3D"=
mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a>=
&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello to everyone.<br>
&gt; <br>
&gt; I have compiled the needed u-boot.bin from scratch using this procedur=
e :<br>
&gt; <br>
&gt; # git clone <a href=3D"https://github.com/u-boot/u-boot.git" rel=3D"no=
referrer" target=3D"_blank">https://github.com/u-boot/u-boot.git</a><br>
&gt; # cd u-boot<br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig =
: this line generates the file .config<br>
&gt; # nano .config and I&#39;ve added these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; the uboot-bin file is generated with this command :<br>
&gt; <br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make<br>
&gt; <br>
&gt; At this point,I took a look inside the .config file and I saw that the=
 parameter &quot;CONFIG_ARMV7_NONSEC=3Dn&quot; has been removed. So,for<br>
&gt; some reason,it is not accepted and this could be a problem....<br>
&gt; <br>
&gt; These are the xen config files that I&#39;ve used :<br>
&gt; <br>
&gt; nano freebsd.cfg<br>
&gt; <br>
&gt; name=3D&quot;test&quot;<br>
&gt; kernel=3D&quot;u-boot.bin&quot;<br>
&gt; extra =3D &quot;console=3Dhvc0&quot;<br>
&gt; memory=3D256<br>
&gt; vcpus=3D1<br>
&gt; disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
&gt; <br>
&gt; nano start-freebsd<br>
&gt; <br>
&gt; xl create freebsd.cfg<br>
&gt; xl console freebsd<br>
&gt; <br>
&gt; This is what happens when I launch the vm :<br>
&gt; <br>
&gt; # ./start-freebsd<br>
&gt; =C2=A0<br>
&gt; Parsing config from freebsd.cfg<br>
&gt; xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader fou=
nd: Invalid kernel<br>
&gt; libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fai=
led<br>
&gt; libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:can=
not (re-)build domain: -3<br>
&gt; libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-e=
xistent domain<br>
&gt; libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Un=
able to destroy guest<br>
&gt; libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruct=
ion of domain failed<br>
&gt; freebsd is an invalid domain identifier (rc=3D-6)<br>
&gt; <br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0So,ok,I should have said &quot;the second u-=
boot&quot; ; since the first u-boot binary is the &quot;u-boot binary locat=
ed in the RO<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0memory&quot; of the Chromebook&quot;. Sorry =
for the confusion.<br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; There are no specific options in u-b=
oot devoted to FreeBSD<br>
&gt; <br>
&gt; This is an important factor. So,what about if,instead of compiling a n=
ew version of u-boot on the partition 2,I will<br>
&gt; recompile the u-boot customized version created by the virtual open sy=
stem in 2014,that should be installed on the first<br>
&gt; partition ? It could work if there are no differences between the u-bo=
ot that should boot Linux and the u-boot that<br>
&gt; should boot FreeBSD.<br>
&gt; <br>
&gt; Can you give a look at the u-boot source code created by virtual open =
systems ? You can find it on my google drive :<br>
&gt; <br>
&gt; <a href=3D"https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzz=
O09BRm/view?usp=3Dsharing" rel=3D"noreferrer" target=3D"_blank">https://dri=
ve.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?usp=3Dsharing</=
a><br>
&gt; <br>
&gt; I need to understand if I can recompile it without problem so that it =
can satisfy my needs (the ability of the file<br>
&gt; u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano S=
tabellini,the xen developer that suggested to me<br>
&gt; what I could do to have FreeBSD virtualized under Xen on my Arm Chrome=
book) ; otherwise the risk is to find later<br>
&gt; problems that will make me troubles and that I will not able to fix.<b=
r>
&gt; <br>
&gt; I gave a look at the virtual open system u-boot and I didn&#39;t see a=
ny arndale_defconfig inside. So,If I have understood<br>
&gt; correctly,I should put that file inside the root of the u-boot source =
code,let&#39;s say here :<br>
&gt; <br>
&gt; marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls<b=
r>
&gt; =C2=A0<br>
&gt; .checkpatch.conf =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0README =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0doc =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
net<br>
&gt; .git =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0api =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0drivers =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0onenand_ipl<br>
&gt; .gitignore =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0arch =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0dts =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0post<br>
&gt; COPYING =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0board =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
examples =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://rules.mk" rel=3D"noreferrer" targ=
et=3D"_blank">rules.mk</a><br>
&gt; CREDITS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0boards.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0fs =C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0scripts<br>
&gt; MAINTAINERS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0common =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0include =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0snapshot.commit<br>
&gt; MAKEALL =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://config.mk" rel=3D"nor=
eferrer" target=3D"_blank">config.mk</a> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0lib =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0spl<br>
&gt; 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=A0cros =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
mkconfig =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0test<br>
&gt; PRESUBMIT.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0disk =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0nand_spl =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
tools<br>
&gt; <br>
&gt; and I should do : make and make install ? and the file I need,u-boot.b=
in will be generated ?=C2=A0<br>
&gt; <br>
&gt; I didn&#39;t find any pre made configuration file inside :<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;exynos*&quot;=C2=A0<br>
&gt; <br>
&gt; ./include/exynos-fb.h<br>
&gt; ./include/configs/exynos5-common.h<br>
&gt; ./doc/device-tree-bindings/spi/exynos-spi.txt<br>
&gt; ./doc/device-tree-bindings/usb/exynos-usb.txt<br>
&gt; ./drivers/power/exynos-tmu.c<br>
&gt; ./drivers/power/exynos-cpufreq.c<br>
&gt; ./drivers/video/exynos-fb.c<br>
&gt; ./drivers/spi/exynos_spi.c<br>
&gt; ./board/samsung/dts/exynos5250-spring.dts<br>
&gt; ./board/samsung/dts/exynos5250-smdk5250.dts<br>
&gt; ./board/samsung/dts/exynos5250-snow.dts<br>
&gt; ./board/samsung/dts/exynos5250-daisy.dts<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h<br>
&gt; ./arch/arm/dts/exynos5250.dtsi<br>
&gt; ./arch/arm/dts/exynos-periph-id.dtsi<br>
&gt; ./arch/arm/cpu/armv7/exynos5/exynos_cache.c=C2=A0<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;arndale*&quot;<br>
&gt; <br>
&gt; For sure I can&#39;t use a newer version of u-boot because otherwise t=
he patches needed to bypass the bootloader protections<br>
&gt; of the Arm Chromebook (such as a lot of different patches needed to bo=
ot correctly Linux) will be broken ; anyway,since<br>
&gt; it works,I don&#39;t need to use an updated version of u-boot.<br>
&gt; <br>
&gt; ----&gt; As per my experience, you have to respect these two options, =
compiling u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; It says that I should use these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; These are the parameters used to configure a Linux kernel. I don&#39;t=
 understand what&#39;s the relation between the compilation<br>
&gt; of a linux kernel and u-boot. In the past I tried to recompile u-boot,=
but I didn&#39;t have the need to set up those<br>
&gt; parameters,so I don&#39;t know how to do it (but I know how to recompi=
le a Linux kernel).<br>
&gt; <br>
&gt; ---&gt; I&#39;m not sure that I&#39;m getting you right, as I don&#39;=
t understand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; <br>
&gt; I&#39;m talking about first u-boot because the whole procedure to boot=
 Linux on the ARM Chromebook,that&#39;s explained here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/" rel=3D"noreferrer" target=3D"_blank">http://www.virtualopens=
ystems.com/en/solutions/guides/kvm-on-chromebook/</a><br>
&gt; <br>
&gt; <br>
&gt; at some point they say :<br>
&gt; <br>
&gt; <br>
&gt; To be able to run KVM on ARM platforms, the kernel has to be booted in=
 hypervisor mode. Because of this relatively recent<br>
&gt; requirement (due to the introduction of the virtualization extensions)=
, up until now all booting methods would boot the<br>
&gt; kernel in the standard Supervisor mode.<br>
&gt; <br>
&gt; For the ARM Chromebook the default boot procedure doesn&#39;t allow us=
 to boot in hypervisor mode. Although the laptop&#39;s boot<br>
&gt; mechanism is based on the frequently used u-boot, the binary is locate=
d in RO memory. Fortunately, a chained u-boot<br>
&gt; mechanism can be used (i.e. starting another u-boot after the original=
). We can then enter hypervisor mode from our<br>
&gt; custom iteration of u-boot and subsequently load our kernel and usersp=
ace.<br>
&gt; <br>
&gt; So,the first u-boot is the u-boot provided by virtual open systems,tha=
t&#39;s able to chainload the &quot;u-boot binary located in<br>
&gt; RO memory&quot; , that does not boot Chrome OS in hypervisor mode. We =
don&#39;t need it if we want to boot Linux with kvm or xen<br>
&gt; enabled.<br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki &lt;<a href=
=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.siln=
icki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m not an expert in the topic, I only k=
now, that ARM has divided hardware into two worlds - Secure and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Not-So, strictly limiting any software, runn=
ing in non-secure world with access to functions and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0resources.=C2=A0<a href=3D"https://developer=
.arm.com/documentation/den0013/d/Security/TrustZone-hardware-architecture?l=
ang=3Den" rel=3D"noreferrer" target=3D"_blank">https://developer.arm.com/do=
cumentation/den0013/d/Security/TrustZone-hardware-architecture?lang=3Den</a=
><br>
&gt; <br>
&gt; I&#39;m not sure, that I&#39;m getting you right, as I don&#39;t under=
stand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; As I understand, virtualization (HYP) is running in non-secure world(<=
a href=3D"https://developer.arm.com/documentation/ddi0406/c/System-Level-Ar=
chitecture/The-System-Level-Programmers--Model/The-Virtualization-Extens" r=
el=3D"noreferrer" target=3D"_blank">https://developer.arm.com/documentation=
/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/Th=
e-Virtualization-Extens</a><br>
&gt; ions), so my guess (only guess!!!), virtualization software has to pre=
pare (configure) HW platform in the way,<br>
&gt; that FreeBSD kernel will not lack any resources, required to configure=
 MPU, VA, etc.<br>
&gt; So, if you lucky to boot virtualizer, which is aware of target OS, tha=
t maybe you can boot the kernel. Although, I<br>
&gt; doubt, that you need to boot &#39;second&#39; u-boot to boot the kerne=
l - there is simply ubldr, which you can hook somehow<br>
&gt; from virtualizer....<br>
&gt; <br>
&gt; Stan<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; As I understand, it makes sure that =
u-boot keeps in secure mode during boot and passes control to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ubldr, which boots FreeBSD kernel, in that m=
ode.<br>
&gt; <br>
&gt; Can you elaborate your sentence more ? I know that the bootloader secu=
re mode is bypassed by the virtual open<br>
&gt; systems u-boot. Are you saying that when the control passes to the sec=
ond u-boot,it will happen in secure<br>
&gt; mode,so that the bypass that happened loading the first u-boot,is annu=
lled ? If this is true,maybe can I boot<br>
&gt; FreeBSD using the virtual-open-system custom u-boot ? Is this compatib=
le with FreeBSD ? Where can I find the<br>
&gt; u-boot.bin that the xen developer talked about ? thanks bro&#39;.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki &lt;<a hre=
f=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.sil=
nicki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hi Mario,<br>
&gt; <br>
&gt; U-Boot=C2=A0 beast is hiding in this den: <a href=3D"https://source.de=
nx.de/u-boot/u-boot.git" rel=3D"noreferrer" target=3D"_blank">https://sourc=
e.denx.de/u-boot/u-boot.git</a><br>
&gt; I took a brief look at your post and it seems to me, that option=C2=A0=
CONFIG_CMO_BY_VA_ONLY=C2=A0is irrelevant to<br>
&gt; your target armv7 32 bit<br>
&gt; platform:=C2=A0<a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/=
master/arch/arm/cpu/armv8/Kconfig?ref_type=3Dheads#L3" rel=3D"noreferrer" t=
arget=3D"_blank">https://source.denx.de/u-boot/u-boot/-/blob/master/arch/ar=
m/cpu/armv8/Kconfig?ref_type=3Dheads#L3</a><br>
&gt; <br>
&gt; As for compiling the u-boot, it is a doable task, given that you under=
stand what you are doing. There<br>
&gt; are no specific options in u-boot devoted to FreeBSD. It is a boot loa=
der, whose mission to make basic<br>
&gt; hardware initialization, read you kernel file from some media into RAM=
 and then pass it control.<br>
&gt; <br>
&gt; Basically, you can grab some defconfig, prepared for any other Exynos5=
250 based board=C2=A0 (say, this one:<br>
&gt; <a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/master/configs/=
arndale_defconfig?ref_type=3Dheads" rel=3D"noreferrer" target=3D"_blank">ht=
tps://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defconfig?=
ref_type=3Dheads</a>) and adopt<br>
&gt; it somehow.<br>
&gt; <br>
&gt; As per my experience, you have to respect these two options, compiling=
 u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; As I understand, it makes sure, that u-boot keeps in secure mode durin=
g boot and passes control to<br>
&gt; ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot=
 of surprises you may realize.<br>
&gt; <br>
&gt; Hope, this will help to progress you tasks<br>
&gt; Stan<br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m trying to boot FreeBSD for arm32 bit=
 as DomU on my ARM Chromebook. Basically there are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0two ways to accomplish this task :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A01) to write a patch that allows the FreeBSD =
kernel to boot as a zImage file. This could be<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0accomplished applying this patch to a specif=
ic file that&#39;s on the source code of FreeBSD :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://xenbits.xen.org/gitweb/?p=
=3Dp...8;hb=3D0782e25d98cc1391472717035f986c979edef0c9" rel=3D"noreferrer" =
target=3D"_blank">https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98=
cc1391472717035f986c979edef0c9</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This patch was written by Julien Grall a lot=
 of time ago and now it does not work anymore.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This is the reason :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0It appears FreeBSD-CURR=
ENT removed the last step converting the kernel file to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0kernel.bin. The patch c=
an be readily rebased, but without kernel.bin that<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t do too much=
.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; So,without a rebase of that patch the first option is not applicable. =
And I&#39;m not able to fix it.<br>
&gt; <br>
&gt; 2) booting FreeBSD using U-Boot,as explained to me by a xen developer =
:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I was trying to explain why and how Julien&#=
39;s patch works so that you could be the one<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to re-do something similar or fix the patch =
on the FreeBSD kernel that you are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0working with. I am happy to help review and =
write patches but I don&#39;t work with the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0FreeBSD kernel so I wouldn&#39;t be able to =
help you quickly. However, I might have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0suggestion. Do you know if FreeBSD can be bo=
oted by U-Boot ? Because U-Boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0definitely boots as Xen on ARM guest firmwar=
e/bootloader. You should be able to build<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0U-Boot and use the U-Boot binary as Xen gues=
t kernel, then U-Boot could load FreeBSD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0from disk or network and start it. For insta=
nce as domU config file:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0kernel=3D&quot;/home/petalinux/u-boot.bin&qu=
ot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0disk =3D [ &#39;/home/petalinux/test.img,raw=
,xvda&#39; ]<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I know it is important to build u-boot with =
the following config to make it work on<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Xen.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; This option seems more doable to me according to my knowledge. But I n=
eed to understand how to do<br>
&gt; it.<br>
&gt; <br>
&gt; Well,let&#39;s say that on the ARM Chromebook I&#39;m forced to use an=
d install a customized version of<br>
&gt; u-boot,created by virtual open systems,because it is the only one that=
 allows bypassing its<br>
&gt; bootloader protection. You can find more information here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/?vos=3Dtech" rel=3D"noreferrer" target=3D"_blank">http://www.v=
irtualopensystems.com/en/solutions/guides/kvm-on-chromebook/?vos=3Dtech</a>=
<br>
&gt; <br>
&gt; This is the relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Bootloader :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If you wish to skip this chapter you can dow=
nload a pre-compiled binary of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0bootloader:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ wget<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"http://www.virtualopensystems.com=
/downloads/guides/kvm_on_chromebook/nv_u-boot-snow.kpart" rel=3D"noreferrer=
" target=3D"_blank">http://www.virtualopensystems.com/downloads/guides/kvm_=
on_chromebook/nv_u-boot-snow.kpart</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0To be able to run KVM on ARM platforms, the =
kernel has to be booted in hypervisor<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0mode. Because of this relatively recent requ=
irement (due to the introduction of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0virtualization extensions), up until now all=
 booting methods would boot the kernel in<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the standard Supervisor mode. For the ARM Ch=
romebook the default boot procedure<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t allow us to boot in hypervisor m=
ode. Although the laptop&#39;s boot mechanism is<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0based on the frequently used u-boot, the bin=
ary is located in RO memory. Fortunately,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0a chained u-boot mechanism can be used (i.e.=
 starting another u-boot after the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0original). We can then enter hypervisor mode=
 from our custom iteration of u-boot and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0subsequently load our kernel and userspace.<=
br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Checkout the needed u-boot code :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ git clone git://<a href=3D"http://github.c=
om/virtualopensystems/u-boot.git$" rel=3D"noreferrer" target=3D"_blank">git=
hub.com/virtualopensystems/u-boot.git$</a> cd u-boot$<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0./scripts/build.sh<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If successful, a message about how to copy t=
he bootloader on the USB flash disk or SD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0card will appear. We will use it later when =
preparing the boot medium to start our<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0system. If you have followed the Setting up =
the boot medium chapter and you have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0prepared boot device, then you can update u-=
boot by running :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev=
/sdX1<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; so,the needed u-boot that we must use should be installed on the first=
 partition of the sd card.<br>
&gt; <br>
&gt; There is another relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Setting up the boot medium<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Now it is time to copy all the relevant file=
s that we created in the previous<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0chapters,and use them to boot Chromebook wit=
h a different kernel and OS. In all these<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0examples the device /dev/sdX is used. Take e=
xtra care to change the examples to the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0device that you have attached. Insert the bo=
ot medium on your workstation and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0carefully execute the following step. First =
we need to properly format the boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0medium.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0In the uboot source directory :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo ./scripts/sdcard.sh /dev/sdX<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This will erase all data and create 4 partit=
ions in the medium, along with copying<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the u-boot binary to the first partition:<br=
>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 1 =3D ChromeOS signed binary (V.O.=
S chained u-boot)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 2 =3D not used<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 3 =3D EXT2 partition for u-boot fi=
les (uImage and exynos5250-snow.dtb)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 4 =3D EXT4 partition for userspace=
 files<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0With u-boot being copied, next is the kernel=
 image and DTB file. From the kernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0source execute :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ mkdir ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX3 ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/uImage ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/dts/exynos5250-snow.=
dtb ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo umount /dev/sdX3<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Finally, we have to copy the Ubuntu userspac=
e filesystem that we created earlier:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./pr=
ecise/* mnt/$ sudo umount /dev/sdX4<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Now,my idea is to chainload the already chain loaded u-boot created by=
 V.O.S to the new u-boot<br>
&gt; that we need for booting FreeBSD and that can be installed in the part=
ition n.2,as shown in this<br>
&gt; scheme,because it is not used :<br>
&gt; <br>
&gt; <br>
&gt; Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)<br>
&gt; Partition 2 =3D not used (maybe we can install the u-boot for arm 32 b=
it,compatible with FreeBSD on<br>
&gt; this partition)<br>
&gt; Partition 3 =3D EXT2 partition for u-boot files (uImage and exynos5250=
-snow.dtb)<br>
&gt; Partition 4 =3D EXT4 partition for userspace files<br>
&gt; <br>
&gt; <br>
&gt; Take in consideration that default boot string is hardcoded here,in th=
e snow.h file of the custom<br>
&gt; u-boot created by VOS :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://github.com/virtualopensyste...18a39b6c177dff58a/inc=
lude/configs/snow.h#L101" rel=3D"noreferrer" target=3D"_blank">https://gith=
ub.com/virtualopensyste...18a39b6c177dff58a/include/configs/snow.h#L101</a>=
<br>
&gt; <br>
&gt; <br>
&gt; and it needs to be recompiled because it should point to the partition=
 n.2,where I will install<br>
&gt; the u-boot files as explained here :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; <br>
&gt; I have some questions to ask before I start working on this.<br>
&gt; <br>
&gt; 1) The xen developer said :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0You should be able to build U-Boot and use t=
he U-Boot binary as Xen guest kernel...<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; where is the u-boot binary,according to this document ?<br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; I don&#39;t see it.<br>
&gt; <br>
&gt; <br>
&gt; 2) where is the source code of the file that I can get here :<br>
&gt; <br>
&gt; <a href=3D"http://commondatastorage.googleapis.com/chromeos-localmirro=
r/distfiles/nv_uboot-snow-simplefb.kpart.bz2" rel=3D"noreferrer" target=3D"=
_blank">http://commondatastorage.googleapis.com/chromeos-localmirror/distfi=
les/nv_uboot-snow-simplefb.kpart.bz2</a><br>
&gt; <br>
&gt; I need the source code if I want to recompile u-boot so that it can po=
int to the partition 4.<br>
&gt; <br>
&gt; Maybe it can be found on this link :<br>
&gt; <br>
&gt; <a href=3D"http://linux-exynos.org/dist/chromebook/nv_uboot/" rel=3D"n=
oreferrer" target=3D"_blank">http://linux-exynos.org/dist/chromebook/nv_ubo=
ot/</a><br>
&gt; <br>
&gt; but it can&#39;t be opened....<br>
&gt; <br>
&gt; <br>
&gt; 3) in this specific scenario the source code of u-boot should run on a=
rm 32 bit,not on arm<br>
&gt; 64,because I have the Samsung Chromebook &quot;SNOW&quot; model XE303C=
12,that&#39;s powered by a Samsung Exynos<br>
&gt; 5250 (ARMv7 32 bit Cortex A15) Soc.<br>
&gt; <br>
&gt; <br>
&gt; 4) I&#39;m not sure if I can chainload the customized u-boot created b=
y V.O.S that should be<br>
&gt; installed on the first partition with the u-boot tailored for booting =
FreeBSD that should be<br>
&gt; installed on the partition 2....<br>
&gt; <br>
&gt; <br>
&gt; 5) the xen developer said that u-boot should be compiled enabling this=
 option :<br>
&gt; <br>
&gt; <br>
&gt; Code:<br>
&gt; <br>
&gt; CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; Well,can you provide some good source that can help me to understand h=
ow I can recompile u-boot<br>
&gt; for FreeBSD ? thanks.<br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signatur=
e_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<b=
r></div>

--000000000000dc1fa1060ce45558--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 23:06:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 23:06:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657233.1025971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFjAK-0002va-30; Tue, 19 Dec 2023 23:06:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657233.1025971; Tue, 19 Dec 2023 23:06:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFjAK-0002vT-0E; Tue, 19 Dec 2023 23:06:20 +0000
Received: by outflank-mailman (input) for mailman id 657233;
 Tue, 19 Dec 2023 23:06: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=+gux=H6=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFjAI-0002vN-DD
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 23:06:18 +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 360a105c-9ec3-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 00:06:16 +0100 (CET)
Received: by mail-oo1-xc29.google.com with SMTP id
 006d021491bc7-593f6fb21a5so491597eaf.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 15:06:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 360a105c-9ec3-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703027175; x=1703631975; 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=WH+5s345QeiFqJZmAKTyvnSUZLMLWqKaBS8wnuNj0Dw=;
        b=ij2hu82D86cLxWlZWsBrmOBzcVWWIY9ADnbDK/vhynvv8NM37cuy6TjKX2M+qHVOqG
         hdcZasogx7QSyRwR3uVNhnf0MalU91grnijqRpU2T0p8yBkItZPfmSWabXKubanu2ic3
         8mt/7Bjw4mAlzcB9xPwqPkOFhN4867XkchyT3ZBuhkWvDEg3pfYFDdXjWjL7PZ8EWDm/
         KjChHQsHrSFxA/KZF5YmlNLg6RiojNQitLfhHJ5j2nyrzIMhhqniil+RAQy0mIDqB0ec
         +hjgdPQSe4Ss/P+fVjdkT9D7uBWS9Yw0oY80KEId7pw4JrFj9uUJ7AjUMhuKY5OB2BCA
         ouPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703027175; x=1703631975;
        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=WH+5s345QeiFqJZmAKTyvnSUZLMLWqKaBS8wnuNj0Dw=;
        b=CqeL8T1xEjIGkfn0WYNg94OAkAM4Rdnk1x1+aggf0I0jTs2VqrYYqTP8ot+ljpzcIK
         dYduFZFDYty1rboFBe4lXcHFjXNo5odRtVzaIIc3oTos6iPO8KPBFT5g0qMNBHV34bmp
         xETJeBD5Am2zDcoSGU55EyvAzHlYIeWhfEsIKIktCBnFcuiQknNtldrfiuGULV6QYMbs
         8GvjGWI/quvAxrxT1fABeV/oAR4sq2L9/mCJa2dyx+To9DIAK4KWx60SMux2m//pkGnn
         Tw2CNEt4u9OHmTEoSi6ob6HMArA+D21092mZFQXfNyv7fiNSFrjdQ53DHv4VX78MVb0b
         Y2Ow==
X-Gm-Message-State: AOJu0Yzn2seSwcivaB3ikpeHUTNMAh5yi9TnTCHdgoKhHXee/MnTQeBp
	B9zG41Qop6AuWiaW09UXFi8c5Zv2OE7wBGd5S1g=
X-Google-Smtp-Source: AGHT+IGWrf5F70pTxj6PgD+twfZ79jmXbMdLAg6ly5N/M8gzxYPP3agMuVQJ52SbcWfXHEqVwRm9smfM2iaLGjNIJ54=
X-Received: by 2002:a05:6358:8824:b0:170:160f:4400 with SMTP id
 hv36-20020a056358882400b00170160f4400mr22236233rwb.17.1703027174918; Tue, 19
 Dec 2023 15:06:14 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
In-Reply-To: <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Wed, 20 Dec 2023 00:06:03 +0100
Message-ID: <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000cdcf1e060ce4e9a3"

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

Le mar. 19 d=C3=A9c. 2023 =C3=A0 20:03, S=C3=A9bastien Chaumat <euidzero@gm=
ail.com> a
=C3=A9crit :

> Le mar. 19 d=C3=A9c. 2023 =C3=A0 16:15, S=C3=A9bastien Chaumat <euidzero@=
gmail.com> a
> =C3=A9crit :
> >
> > I did add an extra printk in PHYSDEVOP_setup_gsi
> > so the "first one" is my printk (available in xl dmesg)
> > the second message is from xen_register_gsi (from linux kernel)
> >
> > Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich <jbeulich@suse.com>=
 a =C3=A9crit :
> > >
> > > On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:
> > > >>>>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
> > > >>>>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-up
> interrupt
> > > >>>>>>
> > > >>>>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
> > > >>>>>> ioapic-edge and IRQ9 to ioapic-level ?
> > > >>>>>>
> > > >>>>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
> > > >>>>>> IR-IO-APIC    9-fasteoi   acpi
> > > >>>>>>
> > > >>>>>> to (xen 4.18.0)
> > > >>>>>>
> > > >>>>>> xen-pirq     -ioapic-edge  pinctrl_amd
> > > >>>>>> xen-pirq     -ioapic-level  acpi
> > > >>>>>>
> > > >>>>>> ?
> > > >>>
> > > >
> > > >>> This look similar to
> > > >>> https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
> > > >>>
> > > >>> This issue seems that IRQ 7 (the GPIO controller) is natively
> fasteoi
> > > >>> (so level type) while in xen it  is mapped to oapic-edge  instead
> of
> > > >>> oapic-level
> > > >>> as the SSDT indicates :
> > > >>>
> > > >>>  Device (GPIO)
> > > >>>
> > > >>>      {
> > > >>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
> > > >>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
> > > >>>          Name (_UID, Zero)  // _UID: Unique ID
> > > >>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current
> Resource Settings
> > > >>>          {
> > > >>>              Name (RBUF, ResourceTemplate ()
> > > >>>              {
> > > >>>                  Interrupt (ResourceConsumer, Level, ActiveLow,
> Shared, ,, )
> > > >>>                  {
> > > >>>                      0x00000007,
> > > >>>            }
> > > >>> Any idea why ?
> > > >>
> > > >> Information coming from AML is required to be handed down by Dom0
> to Xen.
> > > >> May want checking that (a) Dom0 properly does so and (b) Xen
> doesn't screw
> > > >> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if
> this is
> > > >> specific to it being IRQ7 which GPIO uses, as at the (master) PIC
> IRQ7 is
> > > >> also the spurious vector. You may want to retry with the tip of th=
e
> 4.17
> > > >> branch (soon to become 4.17.3) - while it doesn't look very likely
> to me
> > > >> that recent backports there were related, it may still be that the=
y
> make
> > > >> a difference.
> > > >>
> > > >
> > > > testing with 4.17.3:
> > > >
> > > > Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)  th=
at
> > > > (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 polarity=
:
> 1
> > > >
> > > > but later on in dmesg I see :
> > > > [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
> > >
> > > Linux has exactly one place where this message is logged from, and
> that's
> > > ahead of it calling PHYSDEVOP_setup_gsi. Since you said "later", can
> you
> > > confirm that actually you see two instances of the Xen message and tw=
o
> > > instances of the Linux one (each of them with respectively matching
> > > trigger and polarity values)? Or are we indeed observing what would
> look
> > > to be corruption of a hypercall argument?
> > >
> > > If there were two calls, it would be important to realize that Xen wi=
ll
> > > respect only the first one.
> > >
> > > Jan
>
> Adding a printk to catch the gsi immediately before the hypercall in
> linux/arch/x86/pci/xen.c
>
> #ifdef CONFIG_XEN_PV_DOM0
> static int xen_register_gsi(u32 gsi, int triggering, int polarity)
> {
> int rc, irq;
> struct physdev_setup_gsi setup_gsi;
>
> if (!xen_pv_domain())
> return -1;
>
> printk(KERN_DEBUG "xen: registering gsi %u triggering %d polarity %d\n",
> gsi, triggering, polarity);
>

there we have :
  [    1.848051] xen: registering gsi 7 triggering 0 polarity 1

then in the next call :

irq =3D xen_register_pirq(gsi, triggering, true);


 I added a printk at the very beginning  :

  static int xen_register_pirq(u32 gsi, int triggering, bool set_pirq)
  {
    int rc, pirq =3D -1, irq;
    struct physdev_map_pirq map_irq;
    int shareable =3D 0;
    char *name;

    printk(KERN_DEBUG "xen_register_pirq start gsi %u triggering %d
set_pirq %d\n", gsi, triggering, set_pirq)

And I get  in this printk result for IRQ7 : triggering=3D1 while it was
passed with value 0 in the call !?

Any idea ?

--000000000000cdcf1e060ce4e9a3
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">Le=C2=A0mar. 19 d=C3=A9c. 2023 =C3=A0=
=C2=A020:03, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidzero@gmail.co=
m">euidzero@gmail.com</a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex">Le mar. 19 d=C3=A9c. 2023 =C3=A0 16:15, S=
=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidzero@gmail.com" target=3D"_=
blank">euidzero@gmail.com</a>&gt; a =C3=A9crit :<br>
&gt;<br>
&gt; I did add an extra printk in PHYSDEVOP_setup_gsi<br>
&gt; so the &quot;first one&quot; is my printk (available in xl dmesg)<br>
&gt; the second message is from xen_register_gsi (from linux kernel)<br>
&gt;<br>
&gt; Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich &lt;<a href=3D"mai=
lto:jbeulich@suse.com" target=3D"_blank">jbeulich@suse.com</a>&gt; a =C3=A9=
crit :<br>
&gt; &gt;<br>
&gt; &gt; On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; On 05.12.2023 21:31, S=C3=A9bastien Chaumat =
wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; [=C2=A0 =C2=A0 2.464598] amd_gpio AM=
DI0030:00: failed to enable wake-up interrupt<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; Is it expected that IRQ7 goes from faste=
oi (kernel 6.6.4 ) to<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; ioapic-edge and IRQ9 to ioapic-level ?<b=
r>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; IR-IO-APIC=C2=A0 =C2=A0 7-fasteoi=C2=A0 =
=C2=A0pinctrl_amd<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; IR-IO-APIC=C2=A0 =C2=A0 9-fasteoi=C2=A0 =
=C2=A0acpi<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; to (xen 4.18.0)<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; xen-pirq=C2=A0 =C2=A0 =C2=A0-ioapic-edge=
=C2=A0 pinctrl_amd<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; xen-pirq=C2=A0 =C2=A0 =C2=A0-ioapic-leve=
l=C2=A0 acpi<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; ?<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;&gt;&gt; This look similar to<br>
&gt; &gt; &gt;&gt;&gt; <a href=3D"https://yhbt.net/lore/all/20201006044941.=
fdjsp346kc5thyzy@Rk/t/" rel=3D"noreferrer" target=3D"_blank">https://yhbt.n=
et/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/</a><br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt; This issue seems that IRQ 7 (the GPIO controller) is=
 natively fasteoi<br>
&gt; &gt; &gt;&gt;&gt; (so level type) while in xen it=C2=A0 is mapped to o=
apic-edge=C2=A0 instead of<br>
&gt; &gt; &gt;&gt;&gt; oapic-level<br>
&gt; &gt; &gt;&gt;&gt; as the SSDT indicates :<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 Device (GPIO)<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_HID, &quot;=
AMDI0030&quot;)=C2=A0 // _HID: Hardware ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_CID, &quot;=
AMDI0030&quot;)=C2=A0 // _CID: Compatible ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_UID, Zero)=
=C2=A0 // _UID: Unique ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Method (_CRS, 0, N=
otSerialized)=C2=A0 // _CRS: Current Resource Settings<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name=
 (RBUF, ResourceTemplate ()<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br=
>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 0x00000007,<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt; &gt; &gt;&gt;&gt; Any idea why ?<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Information coming from AML is required to be handed dow=
n by Dom0 to Xen.<br>
&gt; &gt; &gt;&gt; May want checking that (a) Dom0 properly does so and (b)=
 Xen doesn&#39;t screw<br>
&gt; &gt; &gt;&gt; up in consuming that data. See PHYSDEVOP_setup_gsi. I wo=
nder if this is<br>
&gt; &gt; &gt;&gt; specific to it being IRQ7 which GPIO uses, as at the (ma=
ster) PIC IRQ7 is<br>
&gt; &gt; &gt;&gt; also the spurious vector. You may want to retry with the=
 tip of the 4.17<br>
&gt; &gt; &gt;&gt; branch (soon to become 4.17.3) - while it doesn&#39;t lo=
ok very likely to me<br>
&gt; &gt; &gt;&gt; that recent backports there were related, it may still b=
e that they make<br>
&gt; &gt; &gt;&gt; a difference.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; testing with 4.17.3:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Adding some printk in PHYSDEVOP_setup_gsi, I=C2=A0 see (in x=
l dmesg)=C2=A0 that<br>
&gt; &gt; &gt; (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 p=
olarity: 1<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; but later on in dmesg I see :<br>
&gt; &gt; &gt; [=C2=A0 =C2=A0 1.747958] xen: registering gsi 7 triggering 0=
 polarity 1<br>
&gt; &gt;<br>
&gt; &gt; Linux has exactly one place where this message is logged from, an=
d that&#39;s<br>
&gt; &gt; ahead of it calling PHYSDEVOP_setup_gsi. Since you said &quot;lat=
er&quot;, can you<br>
&gt; &gt; confirm that actually you see two instances of the Xen message an=
d two<br>
&gt; &gt; instances of the Linux one (each of them with respectively matchi=
ng<br>
&gt; &gt; trigger and polarity values)? Or are we indeed observing what wou=
ld look<br>
&gt; &gt; to be corruption of a hypercall argument?<br>
&gt; &gt;<br>
&gt; &gt; If there were two calls, it would be important to realize that Xe=
n will<br>
&gt; &gt; respect only the first one.<br>
&gt; &gt;<br>
&gt; &gt; Jan<br>
<br>
Adding a printk to catch the gsi immediately before the hypercall in<br>
linux/arch/x86/pci/xen.c<br>
<br>
#ifdef CONFIG_XEN_PV_DOM0<br>
static int xen_register_gsi(u32 gsi, int triggering, int polarity)<br>
{<br>
int rc, irq;<br>
struct physdev_setup_gsi setup_gsi;<br>
<br>
if (!xen_pv_domain())<br>
return -1;<br>
<br>
printk(KERN_DEBUG &quot;xen: registering gsi %u triggering %d polarity %d\n=
&quot;,<br>
gsi, triggering, polarity);<br></blockquote><div><br></div><div>there we ha=
ve :<br></div><div>=C2=A0
[=C2=A0 =C2=A0 1.848051] xen: registering gsi 7 triggering 0 polarity 1</di=
v><div><br></div><div>then in the next call :</div><div><br></div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex">
irq =3D xen_register_pirq(gsi, triggering, true);</blockquote><div><br></di=
v><div>=C2=A0I added a printk at the very beginning=C2=A0 :</div><div><br><=
/div><div>=C2=A0 static int xen_register_pirq(u32 gsi, int triggering, bool=
 set_pirq)<br>=C2=A0 {<br>=C2=A0=C2=A0=C2=A0 int rc, pirq =3D -1, irq;<br>=
=C2=A0=C2=A0=C2=A0 struct physdev_map_pirq map_irq;<br>=C2=A0=C2=A0=C2=A0 i=
nt shareable =3D 0;<br>=C2=A0=C2=A0=C2=A0 char *name;</div><div><br>=C2=A0=
=C2=A0=C2=A0 printk(KERN_DEBUG &quot;xen_register_pirq start gsi %u trigger=
ing %d set_pirq %d\n&quot;, gsi, triggering, set_pirq)<br></div><div><br></=
div><div>And I get=C2=A0 in this printk result for IRQ7 : triggering=3D1 wh=
ile it was passed with value 0 in the call !?</div><div><br></div><div>Any =
idea ?<br></div></div></div>

--000000000000cdcf1e060ce4e9a3--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 23:12:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 23:12:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657237.1025981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFjFl-0004tY-Nh; Tue, 19 Dec 2023 23:11:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657237.1025981; Tue, 19 Dec 2023 23:11:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFjFl-0004tR-Kk; Tue, 19 Dec 2023 23:11:57 +0000
Received: by outflank-mailman (input) for mailman id 657237;
 Tue, 19 Dec 2023 23: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=+gux=H6=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFjFj-0004t5-Uv
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 23:11:56 +0000
Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com
 [2607:f8b0:4864:20::102c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ffb728cd-9ec3-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 00:11:55 +0100 (CET)
Received: by mail-pj1-x102c.google.com with SMTP id
 98e67ed59e1d1-28b4d49293fso2137470a91.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 15:11:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffb728cd-9ec3-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703027513; x=1703632313; 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=0U0OxG9EDyooSEOLJleYkspEujfyXsoV/rMVLdKPC8Y=;
        b=MLXZJPPnQy4k3DZVTE1DBRS7Py2wbsJJ8oebPvXOEY3rAZ+QCQDYUTF5+YLzyMgZ8e
         vYx3Xg0xxv+PobWBCQRa3xQMo6vtC1J3BK0hRO+5bMrEZQxMkjHXc18lb70lGr1w28IJ
         yj1d9H/Bxx3Nr50PW07Z1C3VR6xcRV4jXBqHvw551Trpf5uR7pzxkPUuJcULSprQt/8l
         8w7mKqvr5/whprP72agVVzYIbUu+HsbWNRR63XrF5RK+Im31dsEcbPJbq1R2mJofDhQs
         seT4S+It1SJUwmDP30KR5YsLoAh7e2xMOPcMOiUWGVAbfcEKqaxNMFmNUUNaW4LEvEhC
         LTzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703027513; x=1703632313;
        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=0U0OxG9EDyooSEOLJleYkspEujfyXsoV/rMVLdKPC8Y=;
        b=MRUH3GcL0Pdjx790tvv26S55RqBhzIW1ChW1H4jK8+miDux658cfLZTdfkFGlFoi9l
         owpz5Tp/cmOq+pcNvHybI5tgqOXELO2ihX8RzscXD5bTPNyAbGydiqsx076Smqx90dso
         n171A5VnLvdmk8rdvzFQ+14CZxacyqIPIoVPhRdFP2XGqgpiNueKYLGEmrWxSnB46jpv
         9yrJ9YNF52qDe6znMjnMpBvCENyazOqWRJ6NXIUrWMfJMVjSn+blV3VRcmw//4707Qbq
         3k337cOZAeL3/xlIFPOzvt2ZRgcX/uW4ScP2IrAc2Yhugsi50VOIIsrrxyI67RUTTMwE
         fK8Q==
X-Gm-Message-State: AOJu0YwiaGTD5/FPkWHk6hgHSbC1Gzg9v26HV82x3DjnjRpY13N5I2od
	+lvd0gOrDd7UlkavBBB0dmMlb+9x83nPsKhKvH9drx7cIBs=
X-Google-Smtp-Source: AGHT+IETrYf6kfnRe1af3Am0ByfQ/y4pnNqKg1uCJnllk/TVRgDFDaXHRHfXVxn+e2oKIjeiDePSPBNAIf7VUWmW5Bw=
X-Received: by 2002:a17:90a:dd43:b0:28b:9811:c298 with SMTP id
 u3-20020a17090add4300b0028b9811c298mr1809810pjv.55.1703027513243; Tue, 19 Dec
 2023 15:11:53 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com> <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
In-Reply-To: <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Wed, 20 Dec 2023 00:11:41 +0100
Message-ID: <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000f83f50060ce4fd72"

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

Le mer. 20 d=C3=A9c. 2023 =C3=A0 00:06, S=C3=A9bastien Chaumat <euidzero@gm=
ail.com> a
=C3=A9crit :

>
>
> Le mar. 19 d=C3=A9c. 2023 =C3=A0 20:03, S=C3=A9bastien Chaumat <euidzero@=
gmail.com> a
> =C3=A9crit :
>
>> Le mar. 19 d=C3=A9c. 2023 =C3=A0 16:15, S=C3=A9bastien Chaumat <euidzero=
@gmail.com> a
>> =C3=A9crit :
>> >
>> > I did add an extra printk in PHYSDEVOP_setup_gsi
>> > so the "first one" is my printk (available in xl dmesg)
>> > the second message is from xen_register_gsi (from linux kernel)
>> >
>> > Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich <jbeulich@suse.com=
> a =C3=A9crit :
>> > >
>> > > On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:
>> > > >>>>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
>> > > >>>>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable wake-u=
p
>> interrupt
>> > > >>>>>>
>> > > >>>>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) to
>> > > >>>>>> ioapic-edge and IRQ9 to ioapic-level ?
>> > > >>>>>>
>> > > >>>>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
>> > > >>>>>> IR-IO-APIC    9-fasteoi   acpi
>> > > >>>>>>
>> > > >>>>>> to (xen 4.18.0)
>> > > >>>>>>
>> > > >>>>>> xen-pirq     -ioapic-edge  pinctrl_amd
>> > > >>>>>> xen-pirq     -ioapic-level  acpi
>> > > >>>>>>
>> > > >>>>>> ?
>> > > >>>
>> > > >
>> > > >>> This look similar to
>> > > >>> https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
>> > > >>>
>> > > >>> This issue seems that IRQ 7 (the GPIO controller) is natively
>> fasteoi
>> > > >>> (so level type) while in xen it  is mapped to oapic-edge  instea=
d
>> of
>> > > >>> oapic-level
>> > > >>> as the SSDT indicates :
>> > > >>>
>> > > >>>  Device (GPIO)
>> > > >>>
>> > > >>>      {
>> > > >>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
>> > > >>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
>> > > >>>          Name (_UID, Zero)  // _UID: Unique ID
>> > > >>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current
>> Resource Settings
>> > > >>>          {
>> > > >>>              Name (RBUF, ResourceTemplate ()
>> > > >>>              {
>> > > >>>                  Interrupt (ResourceConsumer, Level, ActiveLow,
>> Shared, ,, )
>> > > >>>                  {
>> > > >>>                      0x00000007,
>> > > >>>            }
>> > > >>> Any idea why ?
>> > > >>
>> > > >> Information coming from AML is required to be handed down by Dom0
>> to Xen.
>> > > >> May want checking that (a) Dom0 properly does so and (b) Xen
>> doesn't screw
>> > > >> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if
>> this is
>> > > >> specific to it being IRQ7 which GPIO uses, as at the (master) PIC
>> IRQ7 is
>> > > >> also the spurious vector. You may want to retry with the tip of
>> the 4.17
>> > > >> branch (soon to become 4.17.3) - while it doesn't look very likel=
y
>> to me
>> > > >> that recent backports there were related, it may still be that
>> they make
>> > > >> a difference.
>> > > >>
>> > > >
>> > > > testing with 4.17.3:
>> > > >
>> > > > Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)
>> that
>> > > > (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1
>> polarity: 1
>> > > >
>> > > > but later on in dmesg I see :
>> > > > [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
>> > >
>> > > Linux has exactly one place where this message is logged from, and
>> that's
>> > > ahead of it calling PHYSDEVOP_setup_gsi. Since you said "later", can
>> you
>> > > confirm that actually you see two instances of the Xen message and t=
wo
>> > > instances of the Linux one (each of them with respectively matching
>> > > trigger and polarity values)? Or are we indeed observing what would
>> look
>> > > to be corruption of a hypercall argument?
>> > >
>> > > If there were two calls, it would be important to realize that Xen
>> will
>> > > respect only the first one.
>> > >
>> > > Jan
>>
>> Adding a printk to catch the gsi immediately before the hypercall in
>> linux/arch/x86/pci/xen.c
>>
>> #ifdef CONFIG_XEN_PV_DOM0
>> static int xen_register_gsi(u32 gsi, int triggering, int polarity)
>> {
>> int rc, irq;
>> struct physdev_setup_gsi setup_gsi;
>>
>> if (!xen_pv_domain())
>> return -1;
>>
>> printk(KERN_DEBUG "xen: registering gsi %u triggering %d polarity %d\n",
>> gsi, triggering, polarity);
>>
>
> there we have :
>   [    1.848051] xen: registering gsi 7 triggering 0 polarity 1
>
> then in the next call :
>
> irq =3D xen_register_pirq(gsi, triggering, true);
>
>
>  I added a printk at the very beginning  :
>
>   static int xen_register_pirq(u32 gsi, int triggering, bool set_pirq)
>   {
>     int rc, pirq =3D -1, irq;
>     struct physdev_map_pirq map_irq;
>     int shareable =3D 0;
>     char *name;
>
>     printk(KERN_DEBUG "xen_register_pirq start gsi %u triggering %d
> set_pirq %d\n", gsi, triggering, set_pirq)
>
> And I get  in this printk result for IRQ7 : triggering=3D1 while it was
> passed with value 0 in the call !?
>

Sorry bad format %d instead of %i for triggering ...

--000000000000f83f50060ce4fd72
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">Le=C2=A0mer. 20 d=C3=A9c. 2023 =C3=A0=
=C2=A000:06, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidzero@gmail.co=
m">euidzero@gmail.com</a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><br></d=
iv><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Le=
=C2=A0mar. 19 d=C3=A9c. 2023 =C3=A0=C2=A020:03, S=C3=A9bastien Chaumat &lt;=
<a href=3D"mailto:euidzero@gmail.com" target=3D"_blank">euidzero@gmail.com<=
/a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">Le mar. 19 d=C3=A9c. 2023 =C3=A0 16:15, S=C3=A9bastien Chaumat =
&lt;<a href=3D"mailto:euidzero@gmail.com" target=3D"_blank">euidzero@gmail.=
com</a>&gt; a =C3=A9crit :<br>
&gt;<br>
&gt; I did add an extra printk in PHYSDEVOP_setup_gsi<br>
&gt; so the &quot;first one&quot; is my printk (available in xl dmesg)<br>
&gt; the second message is from xen_register_gsi (from linux kernel)<br>
&gt;<br>
&gt; Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich &lt;<a href=3D"mai=
lto:jbeulich@suse.com" target=3D"_blank">jbeulich@suse.com</a>&gt; a =C3=A9=
crit :<br>
&gt; &gt;<br>
&gt; &gt; On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; On 05.12.2023 21:31, S=C3=A9bastien Chaumat =
wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; [=C2=A0 =C2=A0 2.464598] amd_gpio AM=
DI0030:00: failed to enable wake-up interrupt<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; Is it expected that IRQ7 goes from faste=
oi (kernel 6.6.4 ) to<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; ioapic-edge and IRQ9 to ioapic-level ?<b=
r>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; IR-IO-APIC=C2=A0 =C2=A0 7-fasteoi=C2=A0 =
=C2=A0pinctrl_amd<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; IR-IO-APIC=C2=A0 =C2=A0 9-fasteoi=C2=A0 =
=C2=A0acpi<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; to (xen 4.18.0)<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; xen-pirq=C2=A0 =C2=A0 =C2=A0-ioapic-edge=
=C2=A0 pinctrl_amd<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; xen-pirq=C2=A0 =C2=A0 =C2=A0-ioapic-leve=
l=C2=A0 acpi<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; ?<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;&gt;&gt; This look similar to<br>
&gt; &gt; &gt;&gt;&gt; <a href=3D"https://yhbt.net/lore/all/20201006044941.=
fdjsp346kc5thyzy@Rk/t/" rel=3D"noreferrer" target=3D"_blank">https://yhbt.n=
et/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/</a><br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt; This issue seems that IRQ 7 (the GPIO controller) is=
 natively fasteoi<br>
&gt; &gt; &gt;&gt;&gt; (so level type) while in xen it=C2=A0 is mapped to o=
apic-edge=C2=A0 instead of<br>
&gt; &gt; &gt;&gt;&gt; oapic-level<br>
&gt; &gt; &gt;&gt;&gt; as the SSDT indicates :<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 Device (GPIO)<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_HID, &quot;=
AMDI0030&quot;)=C2=A0 // _HID: Hardware ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_CID, &quot;=
AMDI0030&quot;)=C2=A0 // _CID: Compatible ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_UID, Zero)=
=C2=A0 // _UID: Unique ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Method (_CRS, 0, N=
otSerialized)=C2=A0 // _CRS: Current Resource Settings<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name=
 (RBUF, ResourceTemplate ()<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br=
>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 0x00000007,<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt; &gt; &gt;&gt;&gt; Any idea why ?<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Information coming from AML is required to be handed dow=
n by Dom0 to Xen.<br>
&gt; &gt; &gt;&gt; May want checking that (a) Dom0 properly does so and (b)=
 Xen doesn&#39;t screw<br>
&gt; &gt; &gt;&gt; up in consuming that data. See PHYSDEVOP_setup_gsi. I wo=
nder if this is<br>
&gt; &gt; &gt;&gt; specific to it being IRQ7 which GPIO uses, as at the (ma=
ster) PIC IRQ7 is<br>
&gt; &gt; &gt;&gt; also the spurious vector. You may want to retry with the=
 tip of the 4.17<br>
&gt; &gt; &gt;&gt; branch (soon to become 4.17.3) - while it doesn&#39;t lo=
ok very likely to me<br>
&gt; &gt; &gt;&gt; that recent backports there were related, it may still b=
e that they make<br>
&gt; &gt; &gt;&gt; a difference.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; testing with 4.17.3:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Adding some printk in PHYSDEVOP_setup_gsi, I=C2=A0 see (in x=
l dmesg)=C2=A0 that<br>
&gt; &gt; &gt; (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 p=
olarity: 1<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; but later on in dmesg I see :<br>
&gt; &gt; &gt; [=C2=A0 =C2=A0 1.747958] xen: registering gsi 7 triggering 0=
 polarity 1<br>
&gt; &gt;<br>
&gt; &gt; Linux has exactly one place where this message is logged from, an=
d that&#39;s<br>
&gt; &gt; ahead of it calling PHYSDEVOP_setup_gsi. Since you said &quot;lat=
er&quot;, can you<br>
&gt; &gt; confirm that actually you see two instances of the Xen message an=
d two<br>
&gt; &gt; instances of the Linux one (each of them with respectively matchi=
ng<br>
&gt; &gt; trigger and polarity values)? Or are we indeed observing what wou=
ld look<br>
&gt; &gt; to be corruption of a hypercall argument?<br>
&gt; &gt;<br>
&gt; &gt; If there were two calls, it would be important to realize that Xe=
n will<br>
&gt; &gt; respect only the first one.<br>
&gt; &gt;<br>
&gt; &gt; Jan<br>
<br>
Adding a printk to catch the gsi immediately before the hypercall in<br>
linux/arch/x86/pci/xen.c<br>
<br>
#ifdef CONFIG_XEN_PV_DOM0<br>
static int xen_register_gsi(u32 gsi, int triggering, int polarity)<br>
{<br>
int rc, irq;<br>
struct physdev_setup_gsi setup_gsi;<br>
<br>
if (!xen_pv_domain())<br>
return -1;<br>
<br>
printk(KERN_DEBUG &quot;xen: registering gsi %u triggering %d polarity %d\n=
&quot;,<br>
gsi, triggering, polarity);<br></blockquote><div><br></div><div>there we ha=
ve :<br></div><div>=C2=A0
[=C2=A0 =C2=A0 1.848051] xen: registering gsi 7 triggering 0 polarity 1</di=
v><div><br></div><div>then in the next call :</div><div><br></div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex">
irq =3D xen_register_pirq(gsi, triggering, true);</blockquote><div><br></di=
v><div>=C2=A0I added a printk at the very beginning=C2=A0 :</div><div><br><=
/div><div>=C2=A0 static int xen_register_pirq(u32 gsi, int triggering, bool=
 set_pirq)<br>=C2=A0 {<br>=C2=A0=C2=A0=C2=A0 int rc, pirq =3D -1, irq;<br>=
=C2=A0=C2=A0=C2=A0 struct physdev_map_pirq map_irq;<br>=C2=A0=C2=A0=C2=A0 i=
nt shareable =3D 0;<br>=C2=A0=C2=A0=C2=A0 char *name;</div><div><br>=C2=A0=
=C2=A0=C2=A0 printk(KERN_DEBUG &quot;xen_register_pirq start gsi %u trigger=
ing %d set_pirq %d\n&quot;, gsi, triggering, set_pirq)<br></div><div><br></=
div><div>And I get=C2=A0 in this printk result for IRQ7 : triggering=3D1 wh=
ile it was passed with value 0 in the call !?</div></div></div></blockquote=
><div><br></div><div>Sorry bad format %d instead of %i for triggering ...<b=
r></div></div></div>

--000000000000f83f50060ce4fd72--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 23:15:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 23:15:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657244.1025990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFjJD-0005YV-Dt; Tue, 19 Dec 2023 23:15:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657244.1025990; Tue, 19 Dec 2023 23: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 1rFjJD-0005YO-Am; Tue, 19 Dec 2023 23:15:31 +0000
Received: by outflank-mailman (input) for mailman id 657244;
 Tue, 19 Dec 2023 23:15: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=XNVD=H6=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1rFjJC-0005YG-74
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 23:15:30 +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 7f0342fb-9ec4-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 00:15:27 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-50e3cdcf010so3099269e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 15:15:27 -0800 (PST)
Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com.
 [209.85.167.54]) by smtp.gmail.com with ESMTPSA id
 br21-20020a056512401500b0050bfcae9637sm3333767lfb.12.2023.12.19.15.15.25
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 15:15:25 -0800 (PST)
Received: by mail-lf1-f54.google.com with SMTP id
 2adb3069b0e04-50e3cdcf010so3099252e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 15:15:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f0342fb-9ec4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linuxfoundation.org; s=google; t=1703027727; x=1703632527; 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=kj0NIbQMmR0b4KeLA6ZKjhMtfUEM3mGSEfitKIyAxUE=;
        b=cH3TOM48CSfDDpw+acaoZsI+6vDCSzOzn9ygmH0sKuX7rkn5Sr5DfFEoLw9e7Vajkp
         kWV+q8odvzzS9pwZoz3HWtWQWmy+NEx3a/SQTdD0soEOqfL7jgA2H4x5VRYbjMjoFcSn
         7MetJinohD5ZSXOhPzN0fzz+JaYlDzFbEvqV8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703027727; x=1703632527;
        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=kj0NIbQMmR0b4KeLA6ZKjhMtfUEM3mGSEfitKIyAxUE=;
        b=PD2FvLI85ghNoa6vdIAoBp/yz92Uf27dHh3YGb/RM4Hii83k1Aeo3WdzMTf+Yv7JBg
         OCKP5fwPyqjt7x+mI4EWukia4miT1xiWO4pUIgew7V0F8PQjTp108Fi1sTipvydh6gQG
         lrmkSyIq+lRk5por1gxhM73p4UZ+h4Pgl6p55ITkES7bPbYCoOsA6YdA/4zGRY11zJwP
         93LL1gZPHc4f+fP315dElpnRoWkJoSM9vg4P7t8LQGoOtxLZbcHK/InNAHEdTkYDtCMa
         g5N/SnLXFlZyCT28fbEtm3BvdvTEoUqUi+X+tyiXD6SebfIKeEe8djPM60Sy367Ixni5
         iFRg==
X-Gm-Message-State: AOJu0YzIuVFwMTYmbXYrwdPGy5c01WbkOBj6XtnXxjw95IH3SKCHbAJ0
	RAofduWbRSAVjnWNejFyK0T3YI8BIcH5knYx2W1kmDh6
X-Google-Smtp-Source: AGHT+IHcF4XvtapOg2maTE4y2VBTJC7x3ZdiD1aHlnGUzY9ReuVNK9cABJQIHHFAgUwjZk0mMGeA2w==
X-Received: by 2002:a05:6512:31d5:b0:50e:4ea7:f2c3 with SMTP id j21-20020a05651231d500b0050e4ea7f2c3mr240098lfe.121.1703027726911;
        Tue, 19 Dec 2023 15:15:26 -0800 (PST)
X-Received: by 2002:ac2:5fe3:0:b0:50b:f34b:8779 with SMTP id
 s3-20020ac25fe3000000b0050bf34b8779mr4408890lfg.139.1703027725444; Tue, 19
 Dec 2023 15:15:25 -0800 (PST)
MIME-Version: 1.0
References: <202312191507.348721d2-oliver.sang@intel.com> <20231219095821.GAZYFpPUSKexZAcl05@fat_crate.local>
 <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com>
 <87013f74-5828-4bef-848b-ffedde8e86f5@citrix.com> <CAHk-=wh=z-aXw6o8Hi9SiC5-vwP403-ZpDHUOXdXmLbaG93dvQ@mail.gmail.com>
In-Reply-To: <CAHk-=wh=z-aXw6o8Hi9SiC5-vwP403-ZpDHUOXdXmLbaG93dvQ@mail.gmail.com>
From: Linus Torvalds <torvalds@linuxfoundation.org>
Date: Tue, 19 Dec 2023 15:15:07 -0800
X-Gmail-Original-Message-ID: <CAHk-=whfpRxuucUL1oguRivq0e7JSxNWC2p_6gvKriNTHmr0UQ@mail.gmail.com>
Message-ID: <CAHk-=whfpRxuucUL1oguRivq0e7JSxNWC2p_6gvKriNTHmr0UQ@mail.gmail.com>
Subject: Re: [linus:master] [x86/entry] be5341eb0d: WARNING:CPU:#PID:#at_int80_emulation
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Borislav Petkov <bp@alien8.de>, kernel test robot <oliver.sang@intel.com>, 
	Thomas Gleixner <tglx@linutronix.de>, oe-lkp@lists.linux.dev, lkp@intel.com, 
	linux-kernel@vger.kernel.org, Dave Hansen <dave.hansen@linux.intel.com>, 
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, xen-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary="0000000000009efc6c060ce50a83"

--0000000000009efc6c060ce50a83
Content-Type: text/plain; charset="UTF-8"

On Tue, 19 Dec 2023 at 12:17, Linus Torvalds
<torvalds@linuxfoundation.org> wrote:
>
> That said, I still think that just getting rid of this horrid special
> case for posix timers is the right thing, and we should just remove
> that SYS_NI() alias thing entirely.

IOW, something like the attached patch.

It's not extensively tested, but hey, the diffstat looks nice:

  arch/arm64/include/asm/syscall_wrapper.h |  4 ---
  arch/riscv/include/asm/syscall_wrapper.h |  5 ----
  arch/s390/include/asm/syscall_wrapper.h  | 13 +--------
  arch/x86/include/asm/syscall_wrapper.h   | 34 +++---------------------
  kernel/sys_ni.c                          | 14 ++++++++++
  kernel/time/posix-stubs.c                | 45 --------------------------------
  6 files changed, 19 insertions(+), 96 deletions(-)

and it builds in at least a *couple* of configurations, including with
CONFIG_POSIX_TIMERS disabled.

I did *not* check whether it might fix the warning, since I doubt my
user space would even boot without that posix timer support (actually,
honestly, because I'm just lazy and "it _looks_ fine to me" was the
main real thing).

But that SYS_NI() thing really does deserve to die, as it was purely
used as a hack for some random timer system calls.

Comments?

            Linus

--0000000000009efc6c060ce50a83
Content-Type: text/x-patch; charset="US-ASCII"; name="patch.diff"
Content-Disposition: attachment; filename="patch.diff"
Content-Transfer-Encoding: base64
Content-ID: <f_lqcyiw9s0>
X-Attachment-Id: f_lqcyiw9s0

IGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vc3lzY2FsbF93cmFwcGVyLmggfCAgNCAtLS0KIGFyY2gv
cmlzY3YvaW5jbHVkZS9hc20vc3lzY2FsbF93cmFwcGVyLmggfCAgNSAtLS0tCiBhcmNoL3MzOTAv
aW5jbHVkZS9hc20vc3lzY2FsbF93cmFwcGVyLmggIHwgMTMgKy0tLS0tLS0tCiBhcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zeXNjYWxsX3dyYXBwZXIuaCAgIHwgMzQgKysrLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiBrZXJuZWwvc3lzX25pLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysr
KysrKwoga2VybmVsL3RpbWUvcG9zaXgtc3R1YnMuYyAgICAgICAgICAgICAgICB8IDQ1IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlv
bnMoKyksIDk2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9h
c20vc3lzY2FsbF93cmFwcGVyLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3Jh
cHBlci5oCmluZGV4IGQ5Nzc3MTNlYzBiYS4uYWJiNTdiYzU0MzA1IDEwMDY0NAotLS0gYS9hcmNo
L2FybTY0L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5oCisrKyBiL2FyY2gvYXJtNjQvaW5j
bHVkZS9hc20vc3lzY2FsbF93cmFwcGVyLmgKQEAgLTQ0LDkgKzQ0LDYgQEAKIAkJcmV0dXJuIHN5
c19uaV9zeXNjYWxsKCk7CQkJCQkJXAogCX0KIAotI2RlZmluZSBDT01QQVRfU1lTX05JKG5hbWUp
IFwKLQlTWVNDQUxMX0FMSUFTKF9fYXJtNjRfY29tcGF0X3N5c18jI25hbWUsIHN5c19uaV9wb3Np
eF90aW1lcnMpOwotCiAjZW5kaWYgLyogQ09ORklHX0NPTVBBVCAqLwogCiAjZGVmaW5lIF9fU1lT
Q0FMTF9ERUZJTkV4KHgsIG5hbWUsIC4uLikJCQkJCQlcCkBAIC04MSw2ICs3OCw1IEBACiAJfQog
CiBhc21saW5rYWdlIGxvbmcgX19hcm02NF9zeXNfbmlfc3lzY2FsbChjb25zdCBzdHJ1Y3QgcHRf
cmVncyAqX191bnVzZWQpOwotI2RlZmluZSBTWVNfTkkobmFtZSkgU1lTQ0FMTF9BTElBUyhfX2Fy
bTY0X3N5c18jI25hbWUsIHN5c19uaV9wb3NpeF90aW1lcnMpOwogCiAjZW5kaWYgLyogX19BU01f
U1lTQ0FMTF9XUkFQUEVSX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20v
c3lzY2FsbF93cmFwcGVyLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBl
ci5oCmluZGV4IDFkNzk0MmM4YTZjYi4uZWVlYzA0YjdkYWU2IDEwMDY0NAotLS0gYS9hcmNoL3Jp
c2N2L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVk
ZS9hc20vc3lzY2FsbF93cmFwcGVyLmgKQEAgLTQ2LDkgKzQ2LDYgQEAgYXNtbGlua2FnZSBsb25n
IF9fcmlzY3Zfc3lzX25pX3N5c2NhbGwoY29uc3Qgc3RydWN0IHB0X3JlZ3MgKik7CiAJCXJldHVy
biBzeXNfbmlfc3lzY2FsbCgpOwkJCQkJCVwKIAl9CiAKLSNkZWZpbmUgQ09NUEFUX1NZU19OSShu
YW1lKSBcCi0JU1lTQ0FMTF9BTElBUyhfX3Jpc2N2X2NvbXBhdF9zeXNfIyNuYW1lLCBzeXNfbmlf
cG9zaXhfdGltZXJzKTsKLQogI2VuZGlmIC8qIENPTkZJR19DT01QQVQgKi8KIAogI2RlZmluZSBf
X1NZU0NBTExfREVGSU5FeCh4LCBuYW1lLCAuLi4pCQkJCQkJXApAQCAtODIsNiArNzksNCBAQCBh
c21saW5rYWdlIGxvbmcgX19yaXNjdl9zeXNfbmlfc3lzY2FsbChjb25zdCBzdHJ1Y3QgcHRfcmVn
cyAqKTsKIAkJcmV0dXJuIHN5c19uaV9zeXNjYWxsKCk7CQkJCQlcCiAJfQogCi0jZGVmaW5lIFNZ
U19OSShuYW1lKSBTWVNDQUxMX0FMSUFTKF9fcmlzY3Zfc3lzXyMjbmFtZSwgc3lzX25pX3Bvc2l4
X3RpbWVycyk7Ci0KICNlbmRpZiAvKiBfX0FTTV9TWVNDQUxMX1dSQVBQRVJfSCAqLwpkaWZmIC0t
Z2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5oIGIvYXJjaC9zMzkw
L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5oCmluZGV4IDkyODY0MzBmZTcyOS4uMzVjMWQx
Yjg2MGQ4IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vc3lzY2FsbF93cmFwcGVy
LmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5oCkBAIC02Mywx
MCArNjMsNiBAQAogCWNvbmRfc3lzY2FsbChfX3MzOTB4X3N5c18jI25hbWUpOwkJCQlcCiAJY29u
ZF9zeXNjYWxsKF9fczM5MF9zeXNfIyNuYW1lKQogCi0jZGVmaW5lIFNZU19OSShuYW1lKQkJCQkJ
CQlcCi0JU1lTQ0FMTF9BTElBUyhfX3MzOTB4X3N5c18jI25hbWUsIHN5c19uaV9wb3NpeF90aW1l
cnMpOwkJXAotCVNZU0NBTExfQUxJQVMoX19zMzkwX3N5c18jI25hbWUsIHN5c19uaV9wb3NpeF90
aW1lcnMpCi0KICNkZWZpbmUgQ09NUEFUX1NZU0NBTExfREVGSU5FeCh4LCBuYW1lLCAuLi4pCQkJ
CQkJXAogCWxvbmcgX19zMzkwX2NvbXBhdF9zeXMjI25hbWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp
OwkJCQlcCiAJQUxMT1dfRVJST1JfSU5KRUNUSU9OKF9fczM5MF9jb21wYXRfc3lzIyNuYW1lLCBF
UlJOTyk7CQkJCVwKQEAgLTg1LDE1ICs4MSwxMSBAQAogCiAvKgogICogQXMgc29tZSBjb21wYXQg
c3lzY2FsbHMgbWF5IG5vdCBiZSBpbXBsZW1lbnRlZCwgd2UgbmVlZCB0byBleHBhbmQKLSAqIENP
TkRfU1lTQ0FMTF9DT01QQVQgaW4ga2VybmVsL3N5c19uaS5jIGFuZCBDT01QQVRfU1lTX05JIGlu
Ci0gKiBrZXJuZWwvdGltZS9wb3NpeC1zdHVicy5jIHRvIGNvdmVyIHRoaXMgY2FzZSBhcyB3ZWxs
LgorICogQ09ORF9TWVNDQUxMX0NPTVBBVCBpbiBrZXJuZWwvc3lzX25pLmMgdG8gY292ZXIgdGhp
cyBjYXNlIGFzIHdlbGwuCiAgKi8KICNkZWZpbmUgQ09ORF9TWVNDQUxMX0NPTVBBVChuYW1lKQkJ
CQkJXAogCWNvbmRfc3lzY2FsbChfX3MzOTBfY29tcGF0X3N5c18jI25hbWUpCiAKLSNkZWZpbmUg
Q09NUEFUX1NZU19OSShuYW1lKQkJCQkJCVwKLQlTWVNDQUxMX0FMSUFTKF9fczM5MF9jb21wYXRf
c3lzXyMjbmFtZSwgc3lzX25pX3Bvc2l4X3RpbWVycykKLQogI2RlZmluZSBfX1MzOTBfU1lTX1NU
VUJ4KHgsIG5hbWUsIC4uLikJCQkJCQlcCiAJbG9uZyBfX3MzOTBfc3lzIyNuYW1lKHN0cnVjdCBw
dF9yZWdzICpyZWdzKTsJCQkJXAogCUFMTE9XX0VSUk9SX0lOSkVDVElPTihfX3MzOTBfc3lzIyNu
YW1lLCBFUlJOTyk7CQkJCVwKQEAgLTEyNCw5ICsxMTYsNiBAQAogI2RlZmluZSBDT05EX1NZU0NB
TEwobmFtZSkJCQkJCQlcCiAJY29uZF9zeXNjYWxsKF9fczM5MHhfc3lzXyMjbmFtZSkKIAotI2Rl
ZmluZSBTWVNfTkkobmFtZSkJCQkJCQkJXAotCVNZU0NBTExfQUxJQVMoX19zMzkweF9zeXNfIyNu
YW1lLCBzeXNfbmlfcG9zaXhfdGltZXJzKQotCiAjZGVmaW5lIF9fUzM5MF9TWVNfU1RVQngoeCwg
ZnVsbG5hbWUsIG5hbWUsIC4uLikKIAogI2VuZGlmIC8qIENPTkZJR19DT01QQVQgKi8KZGlmZiAt
LWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5oIGIvYXJjaC94ODYv
aW5jbHVkZS9hc20vc3lzY2FsbF93cmFwcGVyLmgKaW5kZXggZmQyNjY5YjFjYjJkLi4yMWY5NDA3
YmU1ZDMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5o
CisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N5c2NhbGxfd3JhcHBlci5oCkBAIC04Niw5ICs4
Niw2IEBAIGV4dGVybiBsb25nIF9faWEzMl9zeXNfbmlfc3lzY2FsbChjb25zdCBzdHJ1Y3QgcHRf
cmVncyAqcmVncyk7CiAJCXJldHVybiBzeXNfbmlfc3lzY2FsbCgpOwkJCQlcCiAJfQogCi0jZGVm
aW5lIF9fU1lTX05JKGFiaSwgbmFtZSkJCQkJCQlcCi0JU1lTQ0FMTF9BTElBUyhfXyMjYWJpIyNf
IyNuYW1lLCBzeXNfbmlfcG9zaXhfdGltZXJzKTsKLQogI2lmZGVmIENPTkZJR19YODZfNjQKICNk
ZWZpbmUgX19YNjRfU1lTX1NUVUIwKG5hbWUpCQkJCQkJXAogCV9fU1lTX1NUVUIwKHg2NCwgc3lz
XyMjbmFtZSkKQEAgLTEwMCwxMyArOTcsMTAgQEAgZXh0ZXJuIGxvbmcgX19pYTMyX3N5c19uaV9z
eXNjYWxsKGNvbnN0IHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKICNkZWZpbmUgX19YNjRfQ09ORF9T
WVNDQUxMKG5hbWUpCQkJCQlcCiAJX19DT05EX1NZU0NBTEwoeDY0LCBzeXNfIyNuYW1lKQogCi0j
ZGVmaW5lIF9fWDY0X1NZU19OSShuYW1lKQkJCQkJCVwKLQlfX1NZU19OSSh4NjQsIHN5c18jI25h
bWUpCiAjZWxzZSAvKiBDT05GSUdfWDg2XzY0ICovCiAjZGVmaW5lIF9fWDY0X1NZU19TVFVCMChu
YW1lKQogI2RlZmluZSBfX1g2NF9TWVNfU1RVQngoeCwgbmFtZSwgLi4uKQogI2RlZmluZSBfX1g2
NF9DT05EX1NZU0NBTEwobmFtZSkKLSNkZWZpbmUgX19YNjRfU1lTX05JKG5hbWUpCiAjZW5kaWYg
LyogQ09ORklHX1g4Nl82NCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfWDg2XzMyKSB8fCBkZWZp
bmVkKENPTkZJR19JQTMyX0VNVUxBVElPTikKQEAgLTEyMCwxMyArMTE0LDEwIEBAIGV4dGVybiBs
b25nIF9faWEzMl9zeXNfbmlfc3lzY2FsbChjb25zdCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CiAj
ZGVmaW5lIF9fSUEzMl9DT05EX1NZU0NBTEwobmFtZSkJCQkJCVwKIAlfX0NPTkRfU1lTQ0FMTChp
YTMyLCBzeXNfIyNuYW1lKQogCi0jZGVmaW5lIF9fSUEzMl9TWVNfTkkobmFtZSkJCQkJCQlcCi0J
X19TWVNfTkkoaWEzMiwgc3lzXyMjbmFtZSkKICNlbHNlIC8qIENPTkZJR19YODZfMzIgfHwgQ09O
RklHX0lBMzJfRU1VTEFUSU9OICovCiAjZGVmaW5lIF9fSUEzMl9TWVNfU1RVQjAobmFtZSkKICNk
ZWZpbmUgX19JQTMyX1NZU19TVFVCeCh4LCBuYW1lLCAuLi4pCiAjZGVmaW5lIF9fSUEzMl9DT05E
X1NZU0NBTEwobmFtZSkKLSNkZWZpbmUgX19JQTMyX1NZU19OSShuYW1lKQogI2VuZGlmIC8qIENP
TkZJR19YODZfMzIgfHwgQ09ORklHX0lBMzJfRU1VTEFUSU9OICovCiAKICNpZmRlZiBDT05GSUdf
SUEzMl9FTVVMQVRJT04KQEAgLTEzNSw4ICsxMjYsNyBAQCBleHRlcm4gbG9uZyBfX2lhMzJfc3lz
X25pX3N5c2NhbGwoY29uc3Qgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwogICogYWRkaXRpb25hbCB3
cmFwcGVycyAoYXB0bHkgbmFtZWQgX19pYTMyX3N5c194eXp6eSkgd2hpY2ggZGVjb2RlIHRoZQog
ICogaWEzMiByZWdzIGluIHRoZSBwcm9wZXIgb3JkZXIgZm9yIHNoYXJlZCBvciAiY29tbW9uIiBz
eXNjYWxscy4gQXMgc29tZQogICogc3lzY2FsbHMgbWF5IG5vdCBiZSBpbXBsZW1lbnRlZCwgd2Ug
bmVlZCB0byBleHBhbmQgQ09ORF9TWVNDQUxMIGluCi0gKiBrZXJuZWwvc3lzX25pLmMgYW5kIFNZ
U19OSSBpbiBrZXJuZWwvdGltZS9wb3NpeC1zdHVicy5jIHRvIGNvdmVyIHRoaXMKLSAqIGNhc2Ug
YXMgd2VsbC4KKyAqIGtlcm5lbC9zeXNfbmkuYyB0byBjb3ZlciB0aGlzIGNhc2UgYXMgd2VsbC4K
ICAqLwogI2RlZmluZSBfX0lBMzJfQ09NUEFUX1NZU19TVFVCMChuYW1lKQkJCQkJXAogCV9fU1lT
X1NUVUIwKGlhMzIsIGNvbXBhdF9zeXNfIyNuYW1lKQpAQCAtMTQ4LDE0ICsxMzgsMTAgQEAgZXh0
ZXJuIGxvbmcgX19pYTMyX3N5c19uaV9zeXNjYWxsKGNvbnN0IHN0cnVjdCBwdF9yZWdzICpyZWdz
KTsKICNkZWZpbmUgX19JQTMyX0NPTVBBVF9DT05EX1NZU0NBTEwobmFtZSkJCQkJXAogCV9fQ09O
RF9TWVNDQUxMKGlhMzIsIGNvbXBhdF9zeXNfIyNuYW1lKQogCi0jZGVmaW5lIF9fSUEzMl9DT01Q
QVRfU1lTX05JKG5hbWUpCQkJCQlcCi0JX19TWVNfTkkoaWEzMiwgY29tcGF0X3N5c18jI25hbWUp
Ci0KICNlbHNlIC8qIENPTkZJR19JQTMyX0VNVUxBVElPTiAqLwogI2RlZmluZSBfX0lBMzJfQ09N
UEFUX1NZU19TVFVCMChuYW1lKQogI2RlZmluZSBfX0lBMzJfQ09NUEFUX1NZU19TVFVCeCh4LCBu
YW1lLCAuLi4pCiAjZGVmaW5lIF9fSUEzMl9DT01QQVRfQ09ORF9TWVNDQUxMKG5hbWUpCi0jZGVm
aW5lIF9fSUEzMl9DT01QQVRfU1lTX05JKG5hbWUpCiAjZW5kaWYgLyogQ09ORklHX0lBMzJfRU1V
TEFUSU9OICovCiAKIApAQCAtMTc1LDEzICsxNjEsMTAgQEAgZXh0ZXJuIGxvbmcgX19pYTMyX3N5
c19uaV9zeXNjYWxsKGNvbnN0IHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKICNkZWZpbmUgX19YMzJf
Q09NUEFUX0NPTkRfU1lTQ0FMTChuYW1lKQkJCQkJXAogCV9fQ09ORF9TWVNDQUxMKHg2NCwgY29t
cGF0X3N5c18jI25hbWUpCiAKLSNkZWZpbmUgX19YMzJfQ09NUEFUX1NZU19OSShuYW1lKQkJCQkJ
XAotCV9fU1lTX05JKHg2NCwgY29tcGF0X3N5c18jI25hbWUpCiAjZWxzZSAvKiBDT05GSUdfWDg2
X1gzMl9BQkkgKi8KICNkZWZpbmUgX19YMzJfQ09NUEFUX1NZU19TVFVCMChuYW1lKQogI2RlZmlu
ZSBfX1gzMl9DT01QQVRfU1lTX1NUVUJ4KHgsIG5hbWUsIC4uLikKICNkZWZpbmUgX19YMzJfQ09N
UEFUX0NPTkRfU1lTQ0FMTChuYW1lKQotI2RlZmluZSBfX1gzMl9DT01QQVRfU1lTX05JKG5hbWUp
CiAjZW5kaWYgLyogQ09ORklHX1g4Nl9YMzJfQUJJICovCiAKIApAQCAtMjEyLDE3ICsxOTUsMTIg
QEAgZXh0ZXJuIGxvbmcgX19pYTMyX3N5c19uaV9zeXNjYWxsKGNvbnN0IHN0cnVjdCBwdF9yZWdz
ICpyZWdzKTsKIAogLyoKICAqIEFzIHNvbWUgY29tcGF0IHN5c2NhbGxzIG1heSBub3QgYmUgaW1w
bGVtZW50ZWQsIHdlIG5lZWQgdG8gZXhwYW5kCi0gKiBDT05EX1NZU0NBTExfQ09NUEFUIGluIGtl
cm5lbC9zeXNfbmkuYyBhbmQgQ09NUEFUX1NZU19OSSBpbgotICoga2VybmVsL3RpbWUvcG9zaXgt
c3R1YnMuYyB0byBjb3ZlciB0aGlzIGNhc2UgYXMgd2VsbC4KKyAqIENPTkRfU1lTQ0FMTF9DT01Q
QVQgaW4ga2VybmVsL3N5c19uaS5jIHRvIGNvdmVyIHRoaXMgY2FzZSBhcyB3ZWxsLgogICovCiAj
ZGVmaW5lIENPTkRfU1lTQ0FMTF9DT01QQVQobmFtZSkgCQkJCQlcCiAJX19JQTMyX0NPTVBBVF9D
T05EX1NZU0NBTEwobmFtZSkJCQkJXAogCV9fWDMyX0NPTVBBVF9DT05EX1NZU0NBTEwobmFtZSkK
IAotI2RlZmluZSBDT01QQVRfU1lTX05JKG5hbWUpCQkJCQkJXAotCV9fSUEzMl9DT01QQVRfU1lT
X05JKG5hbWUpCQkJCQlcCi0JX19YMzJfQ09NUEFUX1NZU19OSShuYW1lKQotCiAjZW5kaWYgLyog
Q09ORklHX0NPTVBBVCAqLwogCiAjZGVmaW5lIF9fU1lTQ0FMTF9ERUZJTkV4KHgsIG5hbWUsIC4u
LikJCQkJCVwKQEAgLTI0Myw4ICsyMjEsOCBAQCBleHRlcm4gbG9uZyBfX2lhMzJfc3lzX25pX3N5
c2NhbGwoY29uc3Qgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwogICogQXMgdGhlIGdlbmVyaWMgU1lT
Q0FMTF9ERUZJTkUwKCkgbWFjcm8gZG9lcyBub3QgZGVjb2RlIGFueSBwYXJhbWV0ZXJzIGZvcgog
ICogb2J2aW91cyByZWFzb25zLCBhbmQgcGFzc2luZyBzdHJ1Y3QgcHRfcmVncyAqcmVncyB0byBp
dCBpbiAlcmRpIGRvZXMgbm90CiAgKiBodXJ0LCB3ZSBvbmx5IG5lZWQgdG8gcmUtZGVmaW5lIGl0
IGhlcmUgdG8ga2VlcCB0aGUgbmFtaW5nIGNvbmdydWVudCB0bwotICogU1lTQ0FMTF9ERUZJTkV4
KCkgLS0gd2hpY2ggaXMgZXNzZW50aWFsIGZvciB0aGUgQ09ORF9TWVNDQUxMKCkgYW5kIFNZU19O
SSgpCi0gKiBtYWNyb3MgdG8gd29yayBjb3JyZWN0bHkuCisgKiBTWVNDQUxMX0RFRklORXgoKSAt
LSB3aGljaCBpcyBlc3NlbnRpYWwgZm9yIHRoZSBDT05EX1NZU0NBTEwoKSBtYWNybworICogdG8g
d29yayBjb3JyZWN0bHkuCiAgKi8KICNkZWZpbmUgU1lTQ0FMTF9ERUZJTkUwKHNuYW1lKQkJCQkJ
CVwKIAlTWVNDQUxMX01FVEFEQVRBKF8jI3NuYW1lLCAwKTsJCQkJCVwKQEAgLTI1NywxMCArMjM1
LDYgQEAgZXh0ZXJuIGxvbmcgX19pYTMyX3N5c19uaV9zeXNjYWxsKGNvbnN0IHN0cnVjdCBwdF9y
ZWdzICpyZWdzKTsKIAlfX1g2NF9DT05EX1NZU0NBTEwobmFtZSkJCQkJCVwKIAlfX0lBMzJfQ09O
RF9TWVNDQUxMKG5hbWUpCiAKLSNkZWZpbmUgU1lTX05JKG5hbWUpCQkJCQkJCVwKLQlfX1g2NF9T
WVNfTkkobmFtZSkJCQkJCQlcCi0JX19JQTMyX1NZU19OSShuYW1lKQotCiAKIC8qCiAgKiBGb3Ig
VlNZU0NBTExTLCB3ZSBuZWVkIHRvIGRlY2xhcmUgdGhlc2UgdGhyZWUgc3lzY2FsbHMgd2l0aCB0
aGUgbmV3CmRpZmYgLS1naXQgYS9rZXJuZWwvc3lzX25pLmMgYi9rZXJuZWwvc3lzX25pLmMKaW5k
ZXggZTFhNmUzYzY3NWMwLi45YTg0NjQzOWIzNmEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zeXNfbmku
YworKysgYi9rZXJuZWwvc3lzX25pLmMKQEAgLTIwMSw2ICsyMDEsMjAgQEAgQ09ORF9TWVNDQUxM
KHJlY3ZtbXNnX3RpbWUzMik7CiBDT05EX1NZU0NBTExfQ09NUEFUKHJlY3ZtbXNnX3RpbWUzMik7
CiBDT05EX1NZU0NBTExfQ09NUEFUKHJlY3ZtbXNnX3RpbWU2NCk7CiAKKy8qIFBvc2l4IHRpbWVy
IHN5c2NhbGxzIG1heSBiZSBjb25maWd1cmVkIG91dCAqLworQ09ORF9TWVNDQUxMKHRpbWVyX2Ny
ZWF0ZSk7CitDT05EX1NZU0NBTEwodGltZXJfZ2V0dGltZSk7CitDT05EX1NZU0NBTEwodGltZXJf
Z2V0b3ZlcnJ1bik7CitDT05EX1NZU0NBTEwodGltZXJfc2V0dGltZSk7CitDT05EX1NZU0NBTEwo
dGltZXJfZGVsZXRlKTsKK0NPTkRfU1lTQ0FMTChjbG9ja19hZGp0aW1lKTsKK0NPTkRfU1lTQ0FM
TChnZXRpdGltZXIpOworQ09ORF9TWVNDQUxMKHNldGl0aW1lcik7CitDT05EX1NZU0NBTEwoYWxh
cm0pOworQ09ORF9TWVNDQUxMX0NPTVBBVCh0aW1lcl9jcmVhdGUpOworQ09ORF9TWVNDQUxMX0NP
TVBBVChnZXRpdGltZXIpOworQ09ORF9TWVNDQUxMX0NPTVBBVChzZXRpdGltZXIpOworCiAvKgog
ICogQXJjaGl0ZWN0dXJlIHNwZWNpZmljIHN5c2NhbGxzOiBzZWUgZnVydGhlciBiZWxvdwogICov
CmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS9wb3NpeC1zdHVicy5jIGIva2VybmVsL3RpbWUvcG9z
aXgtc3R1YnMuYwppbmRleCA4MjhhZWVjYmQxZTguLjliNmZjYjhkODVlNyAxMDA2NDQKLS0tIGEv
a2VybmVsL3RpbWUvcG9zaXgtc3R1YnMuYworKysgYi9rZXJuZWwvdGltZS9wb3NpeC1zdHVicy5j
CkBAIC0xNyw0MCArMTcsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWVfbmFtZXNwYWNlLmg+CiAj
aW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CiAKLSNpZmRlZiBDT05GSUdfQVJDSF9IQVNfU1lTQ0FM
TF9XUkFQUEVSCi0vKiBBcmNoaXRlY3R1cmVzIG1heSBvdmVycmlkZSBTWVNfTkkgYW5kIENPTVBB
VF9TWVNfTkkgKi8KLSNpbmNsdWRlIDxhc20vc3lzY2FsbF93cmFwcGVyLmg+Ci0jZW5kaWYKLQot
YXNtbGlua2FnZSBsb25nIHN5c19uaV9wb3NpeF90aW1lcnModm9pZCkKLXsKLQlwcl9lcnJfb25j
ZSgicHJvY2VzcyAlZCAoJXMpIGF0dGVtcHRlZCBhIFBPU0lYIHRpbWVyIHN5c2NhbGwgIgotCQkg
ICAgIndoaWxlIENPTkZJR19QT1NJWF9USU1FUlMgaXMgbm90IHNldFxuIiwKLQkJICAgIGN1cnJl
bnQtPnBpZCwgY3VycmVudC0+Y29tbSk7Ci0JcmV0dXJuIC1FTk9TWVM7Ci19Ci0KLSNpZm5kZWYg
U1lTX05JCi0jZGVmaW5lIFNZU19OSShuYW1lKSAgU1lTQ0FMTF9BTElBUyhzeXNfIyNuYW1lLCBz
eXNfbmlfcG9zaXhfdGltZXJzKQotI2VuZGlmCi0KLSNpZm5kZWYgQ09NUEFUX1NZU19OSQotI2Rl
ZmluZSBDT01QQVRfU1lTX05JKG5hbWUpICBTWVNDQUxMX0FMSUFTKGNvbXBhdF9zeXNfIyNuYW1l
LCBzeXNfbmlfcG9zaXhfdGltZXJzKQotI2VuZGlmCi0KLVNZU19OSSh0aW1lcl9jcmVhdGUpOwot
U1lTX05JKHRpbWVyX2dldHRpbWUpOwotU1lTX05JKHRpbWVyX2dldG92ZXJydW4pOwotU1lTX05J
KHRpbWVyX3NldHRpbWUpOwotU1lTX05JKHRpbWVyX2RlbGV0ZSk7Ci1TWVNfTkkoY2xvY2tfYWRq
dGltZSk7Ci1TWVNfTkkoZ2V0aXRpbWVyKTsKLVNZU19OSShzZXRpdGltZXIpOwotU1lTX05JKGNs
b2NrX2FkanRpbWUzMik7Ci0jaWZkZWYgX19BUkNIX1dBTlRfU1lTX0FMQVJNCi1TWVNfTkkoYWxh
cm0pOwotI2VuZGlmCi0KIC8qCiAgKiBXZSBwcmVzZXJ2ZSBtaW5pbWFsIHN1cHBvcnQgZm9yIENM
T0NLX1JFQUxUSU1FIGFuZCBDTE9DS19NT05PVE9OSUMKICAqIGFzIGl0IGlzIGVhc3kgdG8gcmVt
YWluIGNvbXBhdGlibGUgd2l0aCBsaXR0bGUgY29kZS4gQ0xPQ0tfQk9PVFRJTUUKQEAgLTE1OCwx
OCArMTI0LDcgQEAgU1lTQ0FMTF9ERUZJTkU0KGNsb2NrX25hbm9zbGVlcCwgY29uc3QgY2xvY2tp
ZF90LCB3aGljaF9jbG9jaywgaW50LCBmbGFncywKIAkJCQkgd2hpY2hfY2xvY2spOwogfQogCi0j
aWZkZWYgQ09ORklHX0NPTVBBVAotQ09NUEFUX1NZU19OSSh0aW1lcl9jcmVhdGUpOwotI2VuZGlm
Ci0KLSNpZiBkZWZpbmVkKENPTkZJR19DT01QQVQpIHx8IGRlZmluZWQoQ09ORklHX0FMUEhBKQot
Q09NUEFUX1NZU19OSShnZXRpdGltZXIpOwotQ09NUEFUX1NZU19OSShzZXRpdGltZXIpOwotI2Vu
ZGlmCi0KICNpZmRlZiBDT05GSUdfQ09NUEFUXzMyQklUX1RJTUUKLVNZU19OSSh0aW1lcl9zZXR0
aW1lMzIpOwotU1lTX05JKHRpbWVyX2dldHRpbWUzMik7CiAKIFNZU0NBTExfREVGSU5FMihjbG9j
a19zZXR0aW1lMzIsIGNvbnN0IGNsb2NraWRfdCwgd2hpY2hfY2xvY2ssCiAJCXN0cnVjdCBvbGRf
dGltZXNwZWMzMiBfX3VzZXIgKiwgdHApCg==
--0000000000009efc6c060ce50a83--


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 23:17:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 23:17:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657249.1026001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFjKj-000690-OZ; Tue, 19 Dec 2023 23:17:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657249.1026001; Tue, 19 Dec 2023 23:17:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFjKj-00068r-Lt; Tue, 19 Dec 2023 23:17:05 +0000
Received: by outflank-mailman (input) for mailman id 657249;
 Tue, 19 Dec 2023 23:17: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 1rFjKi-00068g-6Q; Tue, 19 Dec 2023 23:17: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 1rFjKh-0005JF-Tu; Tue, 19 Dec 2023 23:17: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 1rFjKh-00035b-DP; Tue, 19 Dec 2023 23:17:03 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFjKh-0006V0-Ct; Tue, 19 Dec 2023 23: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=05omdgItCXf/z409Ob/As+JjygJ574A702+WhPVwTV4=; b=lwGh6whJzpx+UJRCpPteRQXXoa
	z88S/aJE18Gm1fexjw8wrl4iLKStsVU0nPphYpRN8YmRlbZk0SNDLMYcxnUB8XF0iQhgxm7D8+k9+
	I4KZ4BTKgfYerytGnDaMYQ7CM7tpYU/h1bwXlkSGs2V1vj2YOFypfrVcIZvOTtz9tPho=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184176-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184176: regressions - FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-i386-qemut-rhel6hvm-intel:redhat-install:fail:regression
    xen-unstable:test-amd64-i386-xl-qemut-debianhvm-i386-xsm:debian-hvm-install:fail:regression
    xen-unstable:build-arm64-pvops:kernel-build:fail:regression
    xen-unstable:test-arm64-arm64-examine:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-raw:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-libvirt-xsm:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-xl:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit1:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-xl-thunderx:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-xl-vhd:build-check(1):blocked:nonblocking
    xen-unstable:test-arm64-arm64-xl-xsm:build-check(1):blocked: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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-libvirt: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-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-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=05b6368ba01e07aa3b2b1f1856d77332971a7bdf
X-Osstest-Versions-That:
    xen=0cc74376d6823e0883f89556be2a267f2240a558
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 19 Dec 2023 23:17:03 +0000

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

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-qemut-rhel6hvm-intel 12 redhat-install   fail REGR. vs. 184172
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail REGR. vs. 184172
 build-arm64-pvops             6 kernel-build             fail REGR. vs. 184172

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-examine      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     16 saverestore-support-check    fail  like 184172
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184172
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184172
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184172
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184172
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184172
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184172
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184172
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184172
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184172
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184172
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184172
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-amd64-i386-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  05b6368ba01e07aa3b2b1f1856d77332971a7bdf
baseline version:
 xen                  0cc74376d6823e0883f89556be2a267f2240a558

Last test of basis   184172  2023-12-19 04:41:18 Z    0 days
Testing same since   184176  2023-12-19 15:38:48 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Roger Pau MonnÃ© <roger.pau@citrix.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                                            fail    
 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                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  fail    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      blocked 
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-examine-bios                                 pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  blocked 
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  blocked 
 test-armhf-armhf-xl-credit2                                  pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     blocked 
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         fail    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 blocked 
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 blocked 
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      blocked 
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 05b6368ba01e07aa3b2b1f1856d77332971a7bdf
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Dec 19 13:51:40 2023 +0100

    x86: don't open-code max_page calculation nor pfn_to_paddr()
    
    As observed by Roger while reviewing a somewhat related change, there's
    no need here either to open-code the (largely, i.e. once setup_max_pdx()
    was called) fixed relationship between max_pdx and max_page. Further we
    can avoid open-coding pfn_to_paddr() here.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

commit 11126964d82f41e70fd1d09e00d06dd1795c54d0
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Mon Dec 18 11:17:33 2023 +0100

    automation/eclair_analysis: avoid violation of MISRA Rule 2.1
    
    The presence of an unlinked object file triggers a violation
    of MISRA C Rule 2.1, which is deviated, as it's not part of
    the final Xen binary.
    
    No functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Acked-by: Stefano Stabellini <sstabellini@kernel.org>

commit bfd52e979d14ae42a8c3c9bf8c0f2fdd5ea154db
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Mon Dec 18 11:17:27 2023 +0100

    xen/shutdown: address MISRA C:2012 Rule 2.1
    
    Given that 'hwdom_shutdown' is a noreturn function, unreachable
    breaks can be eliminated to resolve violations of Rule 2.1.
    
    The rename s/maybe_reboot/reboot_or_halt/ is done to clarify
    that the function is noreturn.
    
    No functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

commit 36a05926b0bc6de7b21759d15325eb86cd188d98
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Thu Dec 14 12:44:10 2023 +0100

    xen/wait: address violations of MISRA C Rule 11.9
    
    No functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit e66237eb1a0e8a99424080370373816c7a53cf7d
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Thu Dec 14 12:44:09 2023 +0100

    x86/hvm: dom0: use helper to get sizeof struct field
    
    Use of the proper helper macro also resolves a violation
    of MISRA C Rule 11.9.
    No functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit 985fe473c04a077f6d9fd14db3b68df5044bd6ac
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Thu Dec 14 12:44:07 2023 +0100

    x86/ioapic: use NULL as a null pointer constant
    
    Resolves violations of MISRA C Rule 11.9.
    No functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit 0940d342911788af72a870c6375ce5f1532036d0
Author: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date:   Thu Dec 14 12:44:06 2023 +0100

    xen/hvm: use NULL as a null pointer constant
    
    No functional change.
    
    Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Acked-by: Jan Beulich <jbeulich@suse.com>

commit 3af0a4f9228c64ebbb342bc333c7c8a765ceb8d2
Author: Roger Pau MonnÃ© <roger.pau@citrix.com>
Date:   Tue Dec 19 13:48:09 2023 +0100

    iommu/vt-d: do not assume page table levels for quarantine domain
    
    Like XSA-445, do not assume IOMMU page table levels on VT-d are always set
    based on DEFAULT_DOMAIN_ADDRESS_WIDTH and instead fetch the value set by
    intel_iommu_domain_init() from the domain iommu structure.  This prevents
    changes to intel_iommu_domain_init() possibly getting the levels out of sync
    with what intel_iommu_quarantine_init() expects.
    
    No functional change, since on Intel domains are hardcoded to use
    DEFAULT_DOMAIN_ADDRESS_WIDTH.
    
    Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit 64d32b75e6e3b093828623d5ce30b4826bb6b1df
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Dec 19 13:47:38 2023 +0100

    x86: allow non-BIGMEM configs to boot on >= 16Tb systems
    
    While frame table setup, directmap init, and boot allocator population
    respect all intended bounds, the logic passing memory to the heap
    allocator which wasn't passed to the boot allocator fails to respect
    max_{pdx,pfn}. This then typically triggers the BUG() in
    free_heap_pages() after checking page state, because of hitting a struct
    page_info instance which was set to all ~0.
    
    Of course all the memory above the 16Tb boundary is still going to
    remain unused; using it requires BIGMEM=y. And of course this fix
    similarly ought to help BIGMEM=y configurations on >= 123Tb systems
    (where all the memory beyond that boundary continues to be unused).
    
    Fixes: bac2000063ba ("x86-64: reduce range spanned by 1:1 mapping and frame table indexes")
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
(qemu changes not included)


From xen-devel-bounces@lists.xenproject.org Tue Dec 19 23:51:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Dec 2023 23:51:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657260.1026013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFjri-0004dL-EC; Tue, 19 Dec 2023 23:51:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657260.1026013; Tue, 19 Dec 2023 23: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 1rFjri-0004dE-BT; Tue, 19 Dec 2023 23:51:10 +0000
Received: by outflank-mailman (input) for mailman id 657260;
 Tue, 19 Dec 2023 23:51: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=+gux=H6=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFjrh-0004d6-0P
 for xen-devel@lists.xenproject.org; Tue, 19 Dec 2023 23:51:09 +0000
Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com
 [2607:f8b0:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78b0bce3-9ec9-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 00:51:05 +0100 (CET)
Received: by mail-pf1-x436.google.com with SMTP id
 d2e1a72fcca58-6d9389583edso912563b3a.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 15:51:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78b0bce3-9ec9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703029864; x=1703634664; 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=GOlV3lmtsyvKskwvu5YDdc6Es9aNmbU8373E0Pmw0Cc=;
        b=Ch1DCSPAO+LkcxuwTYwUKgU/J6Nxc4KmmZx+EMSpJTEyzjVh5FboL7eoUAnZLtIf43
         1EJju76UlSKiEcSCueX31bdzmv+3gurGZvBdiUfEwtz4NmTsncyChRlvTZv66d0OH5qc
         dh3kn6vzAhyWmYfIJkBKddH2qiSgczVpihZn7iLM9KeIPNFMhuQ+/8dsb5QNdJunhpxG
         DUcrXZ0GRhW/01T+c5IHaANYKXvsWq/R++koOmn9WuhJ2qgLVTq0NAw7rTTYC844T406
         w564INY1JsZgolo3PDYZfGZQgzwDhgcNLkKYknVlm0yYB30gKCJCXBOs40gxWKooekLK
         E73A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703029864; x=1703634664;
        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=GOlV3lmtsyvKskwvu5YDdc6Es9aNmbU8373E0Pmw0Cc=;
        b=C5WQAsxjMzPJTPjCcLv62cd99+Z+euQ44ZYfUIMkaEfOUpHLSSHc4ZhUWUqeySKDY1
         lYlp6joaLOsHiVNcz2cFAsrP4TQSBJY4Af5lNbwLzU1Ze5tToNyn231T2yvu5jtOf5wH
         ej3xu9fqjZG6bjPKVZXxh7/ap7/fSjpqDKBhbqqEySt+AfKmnkmvC0uZdmmx8/xUQNUE
         ogqBQ4Cik4mwesJacHZqu9vcbh0CcCtM8aXLcUReYre1dPUETXD0M4Lbn5JExezi/tsj
         RKDQ2lW2i0BS9Ve4xxjNpbberld0b9F87sFzLPJO5GUH7Be3GJAXFEUpXfNGOorWXTeE
         fa/w==
X-Gm-Message-State: AOJu0YwTJ8hjusnWGKs0YkZDj0t0S/Cop5mgLkFtrcxexoW/aHAfL3mo
	dnQRAfJzPwDSUly950lGd+z1s/SfErGffGh0uqBS4sufccZYHw==
X-Google-Smtp-Source: AGHT+IEPUXXEIOtKz2UcerOjHXKcyRT6hMXhSLM6KkwyBRGKwQ/udEfkoKpf6vXHaWjzmKRY3ydlrG7BlLQULGvtIKM=
X-Received: by 2002:aa7:870f:0:b0:6d7:631d:df16 with SMTP id
 b15-20020aa7870f000000b006d7631ddf16mr5113437pfo.17.1703029863836; Tue, 19
 Dec 2023 15:51:03 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com> <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
In-Reply-To: <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Wed, 20 Dec 2023 00:50:52 +0100
Message-ID: <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000136f92060ce58a47"

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

Le mer. 20 d=C3=A9c. 2023 =C3=A0 00:11, S=C3=A9bastien Chaumat <euidzero@gm=
ail.com> a
=C3=A9crit :

>
>
> Le mer. 20 d=C3=A9c. 2023 =C3=A0 00:06, S=C3=A9bastien Chaumat <euidzero@=
gmail.com> a
> =C3=A9crit :
>
>>
>>
>> Le mar. 19 d=C3=A9c. 2023 =C3=A0 20:03, S=C3=A9bastien Chaumat <euidzero=
@gmail.com> a
>> =C3=A9crit :
>>
>>> Le mar. 19 d=C3=A9c. 2023 =C3=A0 16:15, S=C3=A9bastien Chaumat <euidzer=
o@gmail.com> a
>>> =C3=A9crit :
>>> >
>>> > I did add an extra printk in PHYSDEVOP_setup_gsi
>>> > so the "first one" is my printk (available in xl dmesg)
>>> > the second message is from xen_register_gsi (from linux kernel)
>>> >
>>> > Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich <jbeulich@suse.co=
m> a =C3=A9crit
>>> :
>>> > >
>>> > > On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:
>>> > > >>>>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
>>> > > >>>>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable
>>> wake-up interrupt
>>> > > >>>>>>
>>> > > >>>>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) t=
o
>>> > > >>>>>> ioapic-edge and IRQ9 to ioapic-level ?
>>> > > >>>>>>
>>> > > >>>>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
>>> > > >>>>>> IR-IO-APIC    9-fasteoi   acpi
>>> > > >>>>>>
>>> > > >>>>>> to (xen 4.18.0)
>>> > > >>>>>>
>>> > > >>>>>> xen-pirq     -ioapic-edge  pinctrl_amd
>>> > > >>>>>> xen-pirq     -ioapic-level  acpi
>>> > > >>>>>>
>>> > > >>>>>> ?
>>> > > >>>
>>> > > >
>>> > > >>> This look similar to
>>> > > >>> https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/
>>> > > >>>
>>> > > >>> This issue seems that IRQ 7 (the GPIO controller) is natively
>>> fasteoi
>>> > > >>> (so level type) while in xen it  is mapped to oapic-edge
>>> instead of
>>> > > >>> oapic-level
>>> > > >>> as the SSDT indicates :
>>> > > >>>
>>> > > >>>  Device (GPIO)
>>> > > >>>
>>> > > >>>      {
>>> > > >>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
>>> > > >>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
>>> > > >>>          Name (_UID, Zero)  // _UID: Unique ID
>>> > > >>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current
>>> Resource Settings
>>> > > >>>          {
>>> > > >>>              Name (RBUF, ResourceTemplate ()
>>> > > >>>              {
>>> > > >>>                  Interrupt (ResourceConsumer, Level, ActiveLow,
>>> Shared, ,, )
>>> > > >>>                  {
>>> > > >>>                      0x00000007,
>>> > > >>>            }
>>> > > >>> Any idea why ?
>>> > > >>
>>> > > >> Information coming from AML is required to be handed down by Dom=
0
>>> to Xen.
>>> > > >> May want checking that (a) Dom0 properly does so and (b) Xen
>>> doesn't screw
>>> > > >> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if
>>> this is
>>> > > >> specific to it being IRQ7 which GPIO uses, as at the (master) PI=
C
>>> IRQ7 is
>>> > > >> also the spurious vector. You may want to retry with the tip of
>>> the 4.17
>>> > > >> branch (soon to become 4.17.3) - while it doesn't look very
>>> likely to me
>>> > > >> that recent backports there were related, it may still be that
>>> they make
>>> > > >> a difference.
>>> > > >>
>>> > > >
>>> > > > testing with 4.17.3:
>>> > > >
>>> > > > Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)
>>> that
>>> > > > (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1
>>> polarity: 1
>>> > > >
>>> > > > but later on in dmesg I see :
>>> > > > [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
>>> > >
>>> > > Linux has exactly one place where this message is logged from, and
>>> that's
>>> > > ahead of it calling PHYSDEVOP_setup_gsi. Since you said "later", ca=
n
>>> you
>>> > > confirm that actually you see two instances of the Xen message and
>>> two
>>> > > instances of the Linux one (each of them with respectively matching
>>> > > trigger and polarity values)? Or are we indeed observing what would
>>> look
>>> > > to be corruption of a hypercall argument?
>>> > >
>>> > > If there were two calls, it would be important to realize that Xen
>>> will
>>> > > respect only the first one.
>>> > >
>>> > > Jan
>>>
>>> Adding a printk to catch the gsi immediately before the hypercall in
>>> linux/arch/x86/pci/xen.c
>>>
>>> #ifdef CONFIG_XEN_PV_DOM0
>>> static int xen_register_gsi(u32 gsi, int triggering, int polarity)
>>> {
>>> int rc, irq;
>>> struct physdev_setup_gsi setup_gsi;
>>>
>>> if (!xen_pv_domain())
>>> return -1;
>>>
>>> printk(KERN_DEBUG "xen: registering gsi %u triggering %d polarity %d\n"=
,
>>> gsi, triggering, polarity);
>>>
>>
>> there we have :
>>   [    1.848051] xen: registering gsi 7 triggering 0 polarity 1
>>
>> then in the next call :
>>
>> irq =3D xen_register_pirq(gsi, triggering, true);
>>
>>
>>  I added a printk at the very beginning  :
>>
>>   static int xen_register_pirq(u32 gsi, int triggering, bool set_pirq)
>>   {
>>     int rc, pirq =3D -1, irq;
>>     struct physdev_map_pirq map_irq;
>>     int shareable =3D 0;
>>     char *name;
>>
>>     printk(KERN_DEBUG "xen_register_pirq start gsi %u triggering %d
>> set_pirq %d\n", gsi, triggering, set_pirq)
>>
>> And I get  in this printk result for IRQ7 : triggering=3D1 while it was
>> passed with value 0 in the call !?
>>
>
> Sorry bad format %d instead of %i for triggering ...
>

So I replaced the format with %i and suprise :

There are 2 calls to  xen_register_pirq as I  can see 2 messages per IRQ

 the first call is  right after the message "NR_IRQS: ..."from
early_irq_init()   ( kernel/irq/irqdec.c )

 I see :
xen_register_pirq start gsi 7 triggering 1 set_pirq 1   ... so in
xen_register_pirq()
Then I get the message "Before PHYSDEVOPS_setup_gsi) proving we are called
by xen_register_gsi()

Then right after the message "ACPI: 26 ACPI AML tables successfully
acquired and loaded"

I get again, but with reversed triggering :
xen: registering gsi 7 triggering 0 polarity 1
xen_register_pirq start gsi 7 triggering 0 set_pirq 1
Before PHYSDEVOPS_setup_gsi ...

So once again a call to  xen_register_gsi()

--000000000000136f92060ce58a47
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">Le=C2=A0mer. 20 d=C3=A9c. 2023 =C3=A0=
=C2=A000:11, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidzero@gmail.co=
m">euidzero@gmail.com</a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><br></d=
iv><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Le=
=C2=A0mer. 20 d=C3=A9c. 2023 =C3=A0=C2=A000:06, S=C3=A9bastien Chaumat &lt;=
<a href=3D"mailto:euidzero@gmail.com" target=3D"_blank">euidzero@gmail.com<=
/a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Le=C2=A0mar. 19 d=C3=A9c.=
 2023 =C3=A0=C2=A020:03, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidz=
ero@gmail.com" target=3D"_blank">euidzero@gmail.com</a>&gt; a =C3=A9crit=C2=
=A0:<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">Le mar. 19 =
d=C3=A9c. 2023 =C3=A0 16:15, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:e=
uidzero@gmail.com" target=3D"_blank">euidzero@gmail.com</a>&gt; a =C3=A9cri=
t :<br>
&gt;<br>
&gt; I did add an extra printk in PHYSDEVOP_setup_gsi<br>
&gt; so the &quot;first one&quot; is my printk (available in xl dmesg)<br>
&gt; the second message is from xen_register_gsi (from linux kernel)<br>
&gt;<br>
&gt; Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich &lt;<a href=3D"mai=
lto:jbeulich@suse.com" target=3D"_blank">jbeulich@suse.com</a>&gt; a =C3=A9=
crit :<br>
&gt; &gt;<br>
&gt; &gt; On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; On 05.12.2023 21:31, S=C3=A9bastien Chaumat =
wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; [=C2=A0 =C2=A0 2.464598] amd_gpio AM=
DI0030:00: failed to enable wake-up interrupt<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; Is it expected that IRQ7 goes from faste=
oi (kernel 6.6.4 ) to<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; ioapic-edge and IRQ9 to ioapic-level ?<b=
r>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; IR-IO-APIC=C2=A0 =C2=A0 7-fasteoi=C2=A0 =
=C2=A0pinctrl_amd<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; IR-IO-APIC=C2=A0 =C2=A0 9-fasteoi=C2=A0 =
=C2=A0acpi<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; to (xen 4.18.0)<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; xen-pirq=C2=A0 =C2=A0 =C2=A0-ioapic-edge=
=C2=A0 pinctrl_amd<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; xen-pirq=C2=A0 =C2=A0 =C2=A0-ioapic-leve=
l=C2=A0 acpi<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; ?<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;&gt;&gt; This look similar to<br>
&gt; &gt; &gt;&gt;&gt; <a href=3D"https://yhbt.net/lore/all/20201006044941.=
fdjsp346kc5thyzy@Rk/t/" rel=3D"noreferrer" target=3D"_blank">https://yhbt.n=
et/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/</a><br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt; This issue seems that IRQ 7 (the GPIO controller) is=
 natively fasteoi<br>
&gt; &gt; &gt;&gt;&gt; (so level type) while in xen it=C2=A0 is mapped to o=
apic-edge=C2=A0 instead of<br>
&gt; &gt; &gt;&gt;&gt; oapic-level<br>
&gt; &gt; &gt;&gt;&gt; as the SSDT indicates :<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 Device (GPIO)<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_HID, &quot;=
AMDI0030&quot;)=C2=A0 // _HID: Hardware ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_CID, &quot;=
AMDI0030&quot;)=C2=A0 // _CID: Compatible ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_UID, Zero)=
=C2=A0 // _UID: Unique ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Method (_CRS, 0, N=
otSerialized)=C2=A0 // _CRS: Current Resource Settings<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name=
 (RBUF, ResourceTemplate ()<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br=
>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 0x00000007,<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt; &gt; &gt;&gt;&gt; Any idea why ?<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Information coming from AML is required to be handed dow=
n by Dom0 to Xen.<br>
&gt; &gt; &gt;&gt; May want checking that (a) Dom0 properly does so and (b)=
 Xen doesn&#39;t screw<br>
&gt; &gt; &gt;&gt; up in consuming that data. See PHYSDEVOP_setup_gsi. I wo=
nder if this is<br>
&gt; &gt; &gt;&gt; specific to it being IRQ7 which GPIO uses, as at the (ma=
ster) PIC IRQ7 is<br>
&gt; &gt; &gt;&gt; also the spurious vector. You may want to retry with the=
 tip of the 4.17<br>
&gt; &gt; &gt;&gt; branch (soon to become 4.17.3) - while it doesn&#39;t lo=
ok very likely to me<br>
&gt; &gt; &gt;&gt; that recent backports there were related, it may still b=
e that they make<br>
&gt; &gt; &gt;&gt; a difference.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; testing with 4.17.3:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Adding some printk in PHYSDEVOP_setup_gsi, I=C2=A0 see (in x=
l dmesg)=C2=A0 that<br>
&gt; &gt; &gt; (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 p=
olarity: 1<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; but later on in dmesg I see :<br>
&gt; &gt; &gt; [=C2=A0 =C2=A0 1.747958] xen: registering gsi 7 triggering 0=
 polarity 1<br>
&gt; &gt;<br>
&gt; &gt; Linux has exactly one place where this message is logged from, an=
d that&#39;s<br>
&gt; &gt; ahead of it calling PHYSDEVOP_setup_gsi. Since you said &quot;lat=
er&quot;, can you<br>
&gt; &gt; confirm that actually you see two instances of the Xen message an=
d two<br>
&gt; &gt; instances of the Linux one (each of them with respectively matchi=
ng<br>
&gt; &gt; trigger and polarity values)? Or are we indeed observing what wou=
ld look<br>
&gt; &gt; to be corruption of a hypercall argument?<br>
&gt; &gt;<br>
&gt; &gt; If there were two calls, it would be important to realize that Xe=
n will<br>
&gt; &gt; respect only the first one.<br>
&gt; &gt;<br>
&gt; &gt; Jan<br>
<br>
Adding a printk to catch the gsi immediately before the hypercall in<br>
linux/arch/x86/pci/xen.c<br>
<br>
#ifdef CONFIG_XEN_PV_DOM0<br>
static int xen_register_gsi(u32 gsi, int triggering, int polarity)<br>
{<br>
int rc, irq;<br>
struct physdev_setup_gsi setup_gsi;<br>
<br>
if (!xen_pv_domain())<br>
return -1;<br>
<br>
printk(KERN_DEBUG &quot;xen: registering gsi %u triggering %d polarity %d\n=
&quot;,<br>
gsi, triggering, polarity);<br></blockquote><div><br></div><div>there we ha=
ve :<br></div><div>=C2=A0
[=C2=A0 =C2=A0 1.848051] xen: registering gsi 7 triggering 0 polarity 1</di=
v><div><br></div><div>then in the next call :</div><div><br></div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex">
irq =3D xen_register_pirq(gsi, triggering, true);</blockquote><div><br></di=
v><div>=C2=A0I added a printk at the very beginning=C2=A0 :</div><div><br><=
/div><div>=C2=A0 static int xen_register_pirq(u32 gsi, int triggering, bool=
 set_pirq)<br>=C2=A0 {<br>=C2=A0=C2=A0=C2=A0 int rc, pirq =3D -1, irq;<br>=
=C2=A0=C2=A0=C2=A0 struct physdev_map_pirq map_irq;<br>=C2=A0=C2=A0=C2=A0 i=
nt shareable =3D 0;<br>=C2=A0=C2=A0=C2=A0 char *name;</div><div><br>=C2=A0=
=C2=A0=C2=A0 printk(KERN_DEBUG &quot;xen_register_pirq start gsi %u trigger=
ing %d set_pirq %d\n&quot;, gsi, triggering, set_pirq)<br></div><div><br></=
div><div>And I get=C2=A0 in this printk result for IRQ7 : triggering=3D1 wh=
ile it was passed with value 0 in the call !?</div></div></div></blockquote=
><div><br></div><div>Sorry bad format %d instead of %i for triggering ...<b=
r></div></div></div></blockquote><div>=C2=A0</div><div>So I replaced the fo=
rmat with %i and suprise :</div><div><br></div><div>There are 2 calls to=C2=
=A0 xen_register_pirq as I=C2=A0 can see 2 messages per IRQ=C2=A0</div><div=
><br></div><div>=C2=A0the first call is=C2=A0 right after the message &quot=
;NR_IRQS: ...&quot;from=C2=A0 early_irq_init()=C2=A0=C2=A0 ( kernel/irq/irq=
dec.c )</div><div><br></div><div>=C2=A0I see : <br></div><div>xen_register_=
pirq start gsi 7 triggering 1 set_pirq 1=C2=A0=C2=A0 ... so in xen_register=
_pirq()</div><div>Then I get the message &quot;Before PHYSDEVOPS_setup_gsi)=
 proving we are called by xen_register_gsi()</div><div><br></div><div>Then =
right after the message &quot;ACPI: 26 ACPI AML tables successfully acquire=
d and loaded&quot; <br></div><div><br></div><div>I get again, but with reve=
rsed triggering :</div><div> xen: registering gsi 7 triggering 0 polarity 1=
</div><div><div>xen_register_pirq start gsi 7 triggering 0 set_pirq 1</div>=
<div>Before PHYSDEVOPS_setup_gsi ...<br></div><div><br></div><div>So once a=
gain a call to=C2=A0 xen_register_gsi()<div><br></div><div><br></div></div>=
</div><div>=C2=A0<br></div><div><br></div></div></div>

--000000000000136f92060ce58a47--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 00:17:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 00:17:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657266.1026027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkGw-0000WG-4x; Wed, 20 Dec 2023 00:17:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657266.1026027; Wed, 20 Dec 2023 00:17:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkGw-0000W8-0r; Wed, 20 Dec 2023 00:17:14 +0000
Received: by outflank-mailman (input) for mailman id 657266;
 Wed, 20 Dec 2023 00: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=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFkGu-0000W2-4J
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 00:17:12 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d297859-9ecd-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 01:17:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 60F9AB81A38;
 Wed, 20 Dec 2023 00:17:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A396C433C8;
 Wed, 20 Dec 2023 00:17:05 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d297859-9ecd-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703031426;
	bh=LX5gplFP3Y5qAHC9iaIrXZXOrJXSk6MQ0/YfFhBWOv4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Ib78rCd+Nbiwr2rRg9aRmyUXgQE+LWqFq/965j6VnCbfLenpf/S7XlkoxWWbCg3+K
	 eB83gg/hkJqN8YS19SmpKDvO+h2b4Hv883ctbGtrsjNt1sSpiQyAnynA8nNjwncnqL
	 oTpxWZD8Cs9zDt3ghmzuDd8ZDV2NV1s8VFgsQEcKdxhRSagxv0Mhq/iK7cD1zSHaGW
	 JuE/eXcO1r8Atmiu76ams1YdshhIGiNc4HUocQS1S3c2L3Hk9JqIbKRXl6bYFSIUs9
	 AN9FjWeeEVzhCWdAEu2RClR/kvmalTBjwE2SjuKLEazKsbrDeVmOCsTzMwAEagvi/n
	 P67Ih27TbC10Q==
Date: Tue, 19 Dec 2023 16:17:03 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <Luca.Fancellu@arm.com>
cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Jan Beulich <jbeulich@suse.com>, 
    "consulting@bugseng.com" <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>, Wei Liu <wl@xen.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen: add acmacros.h to exclude-list.json
In-Reply-To: <2F345562-4049-4A50-9793-D0002B239C43@arm.com>
Message-ID: <alpine.DEB.2.22.394.2312191616400.3175268@ubuntu-linux-20-04-desktop>
References: <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.com> <055b6cf3-4f29-4f1d-b650-26c6d9be8832@suse.com> <2fd03776043811a8ceae9ae41de5f0fa@bugseng.com> <2c64af71dcb3984f1753ef115868cb7b@bugseng.com>
 <2F345562-4049-4A50-9793-D0002B239C43@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-2058828051-1703031426=:3175268"

  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-2058828051-1703031426=:3175268
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 19 Dec 2023, Luca Fancellu wrote:
> Hi!
> 
> > On 19 Dec 2023, at 11:05, Nicola Vetrini <nicola.vetrini@bugseng.com> wrote:
> > 
> > On 2023-12-19 11:51, Nicola Vetrini wrote:
> >> On 2023-12-19 11:37, Jan Beulich wrote:
> >>> On 19.12.2023 10:02, Nicola Vetrini wrote:
> >>>> --- a/docs/misra/exclude-list.json
> >>>> +++ b/docs/misra/exclude-list.json
> >>>> @@ -209,6 +209,10 @@
> >>>>           "rel_path": "include/acpi/acglobal.h",
> >>>>           "comment": "Imported from Linux, ignore for now"
> >>>>         },
> >>>> +        {
> >>>> +          "rel_path": "include/acpi/acmacros.h",
> >>>> +          "comment": "Imported from Linux, ignore for now"
> >>>> +        },
> >>> Together with what's already there (in context), wouldn't it better be
> >>> the entire directory then which is excluded, or at least all
> >>> include/acpi/ac*.h collectively (and perhaps also
> >>> include/acpi/platform/ac*.h)?
> >>> Jan
> >> +Cc Luca Fancellu
> >> Sure. I wasn't certain which files are imported from ACPI CA and which aren't.
> >> I'm also not sure whether "include/acpi/ac*.h" would be properly recognized by other tooling that uses exclude-list.json (only cppcheck I think). I Cc-ed Luca Fancellu on this.
> > 
> > It occurred to me that it's surely ok to use "include/acpi/ac*" and "include/acpi/platform/ac*".
> 
> Yes I think itâ€™s fine, it just come to my mind now that this could have the risk that if
> another file is added with â€˜ac' prefix, even if it could be subject to MISRA compliance,
> it will be excluded.
> 
> If that risk is negligible for the maintainer of that part, then itâ€™s fine.

I think it is OK either way, I'll let Jan pick his preference.
--8323329-2058828051-1703031426=:3175268--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 00:22:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 00:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657270.1026036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkMO-0002aL-Mv; Wed, 20 Dec 2023 00:22:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657270.1026036; Wed, 20 Dec 2023 00:22:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkMO-0002aE-KT; Wed, 20 Dec 2023 00:22:52 +0000
Received: by outflank-mailman (input) for mailman id 657270;
 Wed, 20 Dec 2023 00:22:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFkMN-0002a8-NU
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 00:22:51 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e8e630a0-9ecd-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 01:22:50 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 43D02B81A38;
 Wed, 20 Dec 2023 00:22:50 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A97A5C433C8;
 Wed, 20 Dec 2023 00:22:48 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8e630a0-9ecd-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703031769;
	bh=YRNcQyLcUY96uoC7qORwMB2Uuc3WL9dDhu+/F4/Wi00=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Fc9WJqSLg7RL59rz/0fSndmwaEzIyo5PWf1xyQ0MIl7IUOGSdwAOOen1B0VsgA7v+
	 DC1uN9BGz0JL7UjVLHGPCcNt0d45j0rlBVFjA+MB8UU8HSGPRKPTNoec7bdNtwgdce
	 9ugg3Pzwg0E8zlgWmkEL/gghOmrEzO9GeEF4GEUaQlGEwE2sJyjU3/8Wzt92+oRcLs
	 s5Jw1sJSsbR4+XdiB+kE3fRA8Iixxta6ckSTlC6uosWNdKperEoZyXHy+Zjhj2cVKX
	 s/qKzfQAnZVpvsZ3N7NDOjrT3InfCyyqmxGu2rFsNcMDWEsqZ2uprP/oLovJlpzb78
	 nADj9cCOZUKUg==
Date: Tue, 19 Dec 2023 16:22:47 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] x86/mm: use "break" in arch_memory_op()
In-Reply-To: <e944cc4f-354c-4752-8794-03e6a7517372@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312191620000.3175268@ubuntu-linux-20-04-desktop>
References: <e944cc4f-354c-4752-8794-03e6a7517372@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, 19 Dec 2023, Jan Beulich wrote:
> The final return statement is unreachable and hence disliked by Misra
> C:2012 (rule 2.1). Convert those case-specific (main) return statements
> which already use "rc", or in one case when it can be used without
> further adding of code, to break.
> 
> No functional change intended.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> This is an alternative proposal to
> https://lists.xen.org/archives/html/xen-devel/2023-12/msg01537.html.
> Yet another option would be to simply pull the default case out of the
> switch() statement.
> 
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -4724,7 +4724,7 @@ long arch_memory_op(unsigned long cmd, X
>          spin_unlock(&d->arch.e820_lock);
>  
>          rcu_unlock_domain(d);
> -        return rc;
> +        break;
>      }
>  
>      case XENMEM_memory_map:
> @@ -4818,7 +4818,7 @@ long arch_memory_op(unsigned long cmd, X
>          if ( __copy_to_guest(arg, &ctxt.map, 1) )
>              return -EFAULT;
>  
> -        return 0;
> +        break;
>      }

There are also two other return 0; under case XENMEM_memory_map and
XENMEM_machphys_mapping. I would be consistent and either leave this
return 0 alone, or change all the return 0.

Either way, this patch is correct, so:

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


>      case XENMEM_machphys_mapping:
> @@ -4880,7 +4880,7 @@ long arch_memory_op(unsigned long cmd, X
>          }
>  
>          rcu_unlock_domain(d);
> -        return rc;
> +        break;
>      }
>  #endif
>  
> @@ -4888,7 +4888,7 @@ long arch_memory_op(unsigned long cmd, X
>          return subarch_memory_op(cmd, arg);
>      }
>  
> -    return 0;
> +    return rc;
>  }
>  
>  int cf_check mmio_ro_emulated_write(
> 


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 00:23:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 00:23:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657275.1026047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkMq-00036X-3V; Wed, 20 Dec 2023 00:23:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657275.1026047; Wed, 20 Dec 2023 00: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 1rFkMq-00036Q-09; Wed, 20 Dec 2023 00:23:20 +0000
Received: by outflank-mailman (input) for mailman id 657275;
 Wed, 20 Dec 2023 00: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=nu9I=H7=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFkMp-0002a8-42
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 00:23:19 +0000
Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com
 [2607:f8b0:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f89f306f-9ecd-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 01:23:18 +0100 (CET)
Received: by mail-pg1-x536.google.com with SMTP id
 41be03b00d2f7-5cdaa16ada8so1284453a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 16:23:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f89f306f-9ecd-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703031796; x=1703636596; 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=5EscYcSLan+NyAv+9xT/5eLp8n58UYFhWStvGcmI0Y0=;
        b=N2f82NkwbDc8sZoh+HnWZETAm57wxlc2t6pza8SC+7gLNY6x8mm4rHp+q8uulY49tL
         hhtcNCbYCm3PE8GEl/GFilPCNU2VQYJzTHKS68vnvoe4fXX/TzJ7anWyOXhIvCr4PmIO
         EAXlsB6dATNMF4USiROqObFhVmDs1QNYF+YwitewdYoDwTF/48jPMoOgwn7dbDR3w9Hp
         ySf4YhYr5PEpWvSqnsIuY++yWFpvvEeI6dg9TDmWW9fWfHDFdcKfZHOMu2TMzBrhG5BX
         tDOmmxHVYFsRC2N5p2QXHRbPO+p3gK7T6KvekIXFc5+kz9Fn/rhMOAfkvHMxzcV9m1Fu
         xUSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703031796; x=1703636596;
        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=5EscYcSLan+NyAv+9xT/5eLp8n58UYFhWStvGcmI0Y0=;
        b=LY5Xn2J1k+75arLUI890odMCWPZYroPQ4vJtrkp7rHk+75zBP9pdUQh6E4nA05O0IC
         YnWlGpJGymp90ovB3bSdOs8efEgLJDAxDu5RsvorrEvxQ1bO0nCDCu2efSExAHAVqkFV
         f7HSJmV6m2eIW+t1dOQWJwB2sfNGqh4GtXO5Wgx+zja7YNPF9XKYZ327B+2eW+u2+xl8
         EjqDAQhyZzhRvhn0ZQbyLC7mpeEOTL8rCO+wfHeOVsNHE2k47Ok9u5nIRIx2d1kbvzBH
         sSrNyt06eh68Me6Bfaf+/ah1MhA+1XyiZo8pVVAduWWbfYuvMiCb1A1gEzybDXAtkAFu
         hxWw==
X-Gm-Message-State: AOJu0YxhyD52N0HWB94NYclNj3FTQcvnc8mxFXjB8xUnVbKIZaGFwfJD
	VJFsuOVdf44C2KZHwibMMfxaMthBrg93OVy1FwI=
X-Google-Smtp-Source: AGHT+IGM3a/T1cpFox9GXPdFQrEdjDqR38S5fc6i4pooaf8M6gBkVqzXxSRt/lBG5yGXDQ3RY0rDtHOFO0P0dmy/x/8=
X-Received: by 2002:a17:90a:f190:b0:28b:6a8a:188 with SMTP id
 bv16-20020a17090af19000b0028b6a8a0188mr2346797pjb.95.1703031796377; Tue, 19
 Dec 2023 16:23:16 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <7f34d258-97fa-43e8-8d67-ac9dc93213af@suse.com> <CAKm-UmYGTLY0fTh4zvj-xrA3Tp+Oj+ES61pncG7ze0QnP4o=FQ@mail.gmail.com>
 <52bd8702-cf7d-4f5b-883d-be6214ba31c0@suse.com> <CAKm-UmadRsc7GEYDqMDTBaoozT5Bj3nwK+=uDs1LkTZVG8tgdQ@mail.gmail.com>
 <CAKm-UmZnPtH_Fxou3OV0BbpP+tBpSe1z8Qet4Q5=zDD7UGZy6Q@mail.gmail.com>
 <CAKm-UmbaHoXymP8CcBVBLSVG7T9zCE2fbFQB33SMnY8pwXOU1Q@mail.gmail.com>
 <435d159f-96d5-49af-82ec-bce6961e3391@suse.com> <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com> <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
In-Reply-To: <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Wed, 20 Dec 2023 01:23:04 +0100
Message-ID: <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000043b092060ce5fd8e"

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

Le mer. 20 d=C3=A9c. 2023 =C3=A0 00:50, S=C3=A9bastien Chaumat <euidzero@gm=
ail.com> a
=C3=A9crit :

>
>
> Le mer. 20 d=C3=A9c. 2023 =C3=A0 00:11, S=C3=A9bastien Chaumat <euidzero@=
gmail.com> a
> =C3=A9crit :
>
>>
>>
>> Le mer. 20 d=C3=A9c. 2023 =C3=A0 00:06, S=C3=A9bastien Chaumat <euidzero=
@gmail.com> a
>> =C3=A9crit :
>>
>>>
>>>
>>> Le mar. 19 d=C3=A9c. 2023 =C3=A0 20:03, S=C3=A9bastien Chaumat <euidzer=
o@gmail.com> a
>>> =C3=A9crit :
>>>
>>>> Le mar. 19 d=C3=A9c. 2023 =C3=A0 16:15, S=C3=A9bastien Chaumat <euidze=
ro@gmail.com> a
>>>> =C3=A9crit :
>>>> >
>>>> > I did add an extra printk in PHYSDEVOP_setup_gsi
>>>> > so the "first one" is my printk (available in xl dmesg)
>>>> > the second message is from xen_register_gsi (from linux kernel)
>>>> >
>>>> > Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich <jbeulich@suse.c=
om> a
>>>> =C3=A9crit :
>>>> > >
>>>> > > On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:
>>>> > > >>>>> On 05.12.2023 21:31, S=C3=A9bastien Chaumat wrote:
>>>> > > >>>>>>> [    2.464598] amd_gpio AMDI0030:00: failed to enable
>>>> wake-up interrupt
>>>> > > >>>>>>
>>>> > > >>>>>> Is it expected that IRQ7 goes from fasteoi (kernel 6.6.4 ) =
to
>>>> > > >>>>>> ioapic-edge and IRQ9 to ioapic-level ?
>>>> > > >>>>>>
>>>> > > >>>>>> IR-IO-APIC    7-fasteoi   pinctrl_amd
>>>> > > >>>>>> IR-IO-APIC    9-fasteoi   acpi
>>>> > > >>>>>>
>>>> > > >>>>>> to (xen 4.18.0)
>>>> > > >>>>>>
>>>> > > >>>>>> xen-pirq     -ioapic-edge  pinctrl_amd
>>>> > > >>>>>> xen-pirq     -ioapic-level  acpi
>>>> > > >>>>>>
>>>> > > >>>>>> ?
>>>> > > >>>
>>>> > > >
>>>> > > >>> This look similar to
>>>> > > >>> https://yhbt.net/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t=
/
>>>> > > >>>
>>>> > > >>> This issue seems that IRQ 7 (the GPIO controller) is natively
>>>> fasteoi
>>>> > > >>> (so level type) while in xen it  is mapped to oapic-edge
>>>> instead of
>>>> > > >>> oapic-level
>>>> > > >>> as the SSDT indicates :
>>>> > > >>>
>>>> > > >>>  Device (GPIO)
>>>> > > >>>
>>>> > > >>>      {
>>>> > > >>>          Name (_HID, "AMDI0030")  // _HID: Hardware ID
>>>> > > >>>          Name (_CID, "AMDI0030")  // _CID: Compatible ID
>>>> > > >>>          Name (_UID, Zero)  // _UID: Unique ID
>>>> > > >>>          Method (_CRS, 0, NotSerialized)  // _CRS: Current
>>>> Resource Settings
>>>> > > >>>          {
>>>> > > >>>              Name (RBUF, ResourceTemplate ()
>>>> > > >>>              {
>>>> > > >>>                  Interrupt (ResourceConsumer, Level, ActiveLow=
,
>>>> Shared, ,, )
>>>> > > >>>                  {
>>>> > > >>>                      0x00000007,
>>>> > > >>>            }
>>>> > > >>> Any idea why ?
>>>> > > >>
>>>> > > >> Information coming from AML is required to be handed down by
>>>> Dom0 to Xen.
>>>> > > >> May want checking that (a) Dom0 properly does so and (b) Xen
>>>> doesn't screw
>>>> > > >> up in consuming that data. See PHYSDEVOP_setup_gsi. I wonder if
>>>> this is
>>>> > > >> specific to it being IRQ7 which GPIO uses, as at the (master)
>>>> PIC IRQ7 is
>>>> > > >> also the spurious vector. You may want to retry with the tip of
>>>> the 4.17
>>>> > > >> branch (soon to become 4.17.3) - while it doesn't look very
>>>> likely to me
>>>> > > >> that recent backports there were related, it may still be that
>>>> they make
>>>> > > >> a difference.
>>>> > > >>
>>>> > > >
>>>> > > > testing with 4.17.3:
>>>> > > >
>>>> > > > Adding some printk in PHYSDEVOP_setup_gsi, I  see (in xl dmesg)
>>>> that
>>>> > > > (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1
>>>> polarity: 1
>>>> > > >
>>>> > > > but later on in dmesg I see :
>>>> > > > [    1.747958] xen: registering gsi 7 triggering 0 polarity 1
>>>> > >
>>>> > > Linux has exactly one place where this message is logged from, and
>>>> that's
>>>> > > ahead of it calling PHYSDEVOP_setup_gsi. Since you said "later",
>>>> can you
>>>> > > confirm that actually you see two instances of the Xen message and
>>>> two
>>>> > > instances of the Linux one (each of them with respectively matchin=
g
>>>> > > trigger and polarity values)? Or are we indeed observing what woul=
d
>>>> look
>>>> > > to be corruption of a hypercall argument?
>>>> > >
>>>> > > If there were two calls, it would be important to realize that Xen
>>>> will
>>>> > > respect only the first one.
>>>> > >
>>>> > > Jan
>>>>
>>>> Adding a printk to catch the gsi immediately before the hypercall in
>>>> linux/arch/x86/pci/xen.c
>>>>
>>>> #ifdef CONFIG_XEN_PV_DOM0
>>>> static int xen_register_gsi(u32 gsi, int triggering, int polarity)
>>>> {
>>>> int rc, irq;
>>>> struct physdev_setup_gsi setup_gsi;
>>>>
>>>> if (!xen_pv_domain())
>>>> return -1;
>>>>
>>>> printk(KERN_DEBUG "xen: registering gsi %u triggering %d polarity %d\n=
",
>>>> gsi, triggering, polarity);
>>>>
>>>
>>> there we have :
>>>   [    1.848051] xen: registering gsi 7 triggering 0 polarity 1
>>>
>>> then in the next call :
>>>
>>> irq =3D xen_register_pirq(gsi, triggering, true);
>>>
>>>
>>>  I added a printk at the very beginning  :
>>>
>>>   static int xen_register_pirq(u32 gsi, int triggering, bool set_pirq)
>>>   {
>>>     int rc, pirq =3D -1, irq;
>>>     struct physdev_map_pirq map_irq;
>>>     int shareable =3D 0;
>>>     char *name;
>>>
>>>     printk(KERN_DEBUG "xen_register_pirq start gsi %u triggering %d
>>> set_pirq %d\n", gsi, triggering, set_pirq)
>>>
>>> And I get  in this printk result for IRQ7 : triggering=3D1 while it was
>>> passed with value 0 in the call !?
>>>
>>
>> Sorry bad format %d instead of %i for triggering ...
>>
>
> So I replaced the format with %i and suprise :
>
> There are 2 calls to  xen_register_pirq as I  can see 2 messages per IRQ
>
>  the first call is  right after the message "NR_IRQS: ..."from
> early_irq_init()   ( kernel/irq/irqdec.c )
>
>  I see :
> xen_register_pirq start gsi 7 triggering 1 set_pirq 1   ... so in
> xen_register_pirq()
> Then I get the message "Before PHYSDEVOPS_setup_gsi) proving we are calle=
d
> by xen_register_gsi()
>
> Then right after the message "ACPI: 26 ACPI AML tables successfully
> acquired and loaded"
>
> I get again, but with reversed triggering :
> xen: registering gsi 7 triggering 0 polarity 1
> xen_register_pirq start gsi 7 triggering 0 set_pirq 1
> Before PHYSDEVOPS_setup_gsi ...
>
> So once again a call to  xen_register_gsi()
>

I had to triple check:

The first call is from xen_register_pirq()  and seem to originate from
early_irq_init()  : triggering is 1
in this first call the HYPERVISOR_physdev_ops is called with triggering 1
shareable 0

The second call is from xen_register_pirq() called from xen_register_gsi() =
:
  trigger=3D0 polarity 1 at the start of  xen_register_pirq()
but then trigger=3D1 polarity=3D1 just before the call to PHYSDEVOPS_setup_=
gsi

--00000000000043b092060ce5fd8e
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">Le=C2=A0mer. 20 d=C3=A9c. 2023 =C3=A0=
=C2=A000:50, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidzero@gmail.co=
m">euidzero@gmail.com</a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><br></d=
iv><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Le=
=C2=A0mer. 20 d=C3=A9c. 2023 =C3=A0=C2=A000:11, S=C3=A9bastien Chaumat &lt;=
<a href=3D"mailto:euidzero@gmail.com" target=3D"_blank">euidzero@gmail.com<=
/a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Le=C2=A0mer. 20 d=C3=A9c.=
 2023 =C3=A0=C2=A000:06, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidz=
ero@gmail.com" target=3D"_blank">euidzero@gmail.com</a>&gt; a =C3=A9crit=C2=
=A0:<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"><div dir=3D=
"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote"><div dir=3D=
"ltr" class=3D"gmail_attr">Le=C2=A0mar. 19 d=C3=A9c. 2023 =C3=A0=C2=A020:03=
, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidzero@gmail.com" target=
=3D"_blank">euidzero@gmail.com</a>&gt; a =C3=A9crit=C2=A0:<br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex">Le mar. 19 d=C3=A9c. 2023 =C3=A0=
 16:15, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidzero@gmail.com" ta=
rget=3D"_blank">euidzero@gmail.com</a>&gt; a =C3=A9crit :<br>
&gt;<br>
&gt; I did add an extra printk in PHYSDEVOP_setup_gsi<br>
&gt; so the &quot;first one&quot; is my printk (available in xl dmesg)<br>
&gt; the second message is from xen_register_gsi (from linux kernel)<br>
&gt;<br>
&gt; Le mar. 19 d=C3=A9c. 2023 =C3=A0 14:15, Jan Beulich &lt;<a href=3D"mai=
lto:jbeulich@suse.com" target=3D"_blank">jbeulich@suse.com</a>&gt; a =C3=A9=
crit :<br>
&gt; &gt;<br>
&gt; &gt; On 18.12.2023 17:21, S=C3=A9bastien Chaumat wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt; On 05.12.2023 21:31, S=C3=A9bastien Chaumat =
wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; [=C2=A0 =C2=A0 2.464598] amd_gpio AM=
DI0030:00: failed to enable wake-up interrupt<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; Is it expected that IRQ7 goes from faste=
oi (kernel 6.6.4 ) to<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; ioapic-edge and IRQ9 to ioapic-level ?<b=
r>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; IR-IO-APIC=C2=A0 =C2=A0 7-fasteoi=C2=A0 =
=C2=A0pinctrl_amd<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; IR-IO-APIC=C2=A0 =C2=A0 9-fasteoi=C2=A0 =
=C2=A0acpi<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; to (xen 4.18.0)<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; xen-pirq=C2=A0 =C2=A0 =C2=A0-ioapic-edge=
=C2=A0 pinctrl_amd<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; xen-pirq=C2=A0 =C2=A0 =C2=A0-ioapic-leve=
l=C2=A0 acpi<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; ?<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;&gt;&gt; This look similar to<br>
&gt; &gt; &gt;&gt;&gt; <a href=3D"https://yhbt.net/lore/all/20201006044941.=
fdjsp346kc5thyzy@Rk/t/" rel=3D"noreferrer" target=3D"_blank">https://yhbt.n=
et/lore/all/20201006044941.fdjsp346kc5thyzy@Rk/t/</a><br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt; This issue seems that IRQ 7 (the GPIO controller) is=
 natively fasteoi<br>
&gt; &gt; &gt;&gt;&gt; (so level type) while in xen it=C2=A0 is mapped to o=
apic-edge=C2=A0 instead of<br>
&gt; &gt; &gt;&gt;&gt; oapic-level<br>
&gt; &gt; &gt;&gt;&gt; as the SSDT indicates :<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 Device (GPIO)<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_HID, &quot;=
AMDI0030&quot;)=C2=A0 // _HID: Hardware ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_CID, &quot;=
AMDI0030&quot;)=C2=A0 // _CID: Compatible ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name (_UID, Zero)=
=C2=A0 // _UID: Unique ID<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Method (_CRS, 0, N=
otSerialized)=C2=A0 // _CRS: Current Resource Settings<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name=
 (RBUF, ResourceTemplate ()<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br=
>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 {<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 0x00000007,<br>
&gt; &gt; &gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt; &gt; &gt;&gt;&gt; Any idea why ?<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Information coming from AML is required to be handed dow=
n by Dom0 to Xen.<br>
&gt; &gt; &gt;&gt; May want checking that (a) Dom0 properly does so and (b)=
 Xen doesn&#39;t screw<br>
&gt; &gt; &gt;&gt; up in consuming that data. See PHYSDEVOP_setup_gsi. I wo=
nder if this is<br>
&gt; &gt; &gt;&gt; specific to it being IRQ7 which GPIO uses, as at the (ma=
ster) PIC IRQ7 is<br>
&gt; &gt; &gt;&gt; also the spurious vector. You may want to retry with the=
 tip of the 4.17<br>
&gt; &gt; &gt;&gt; branch (soon to become 4.17.3) - while it doesn&#39;t lo=
ok very likely to me<br>
&gt; &gt; &gt;&gt; that recent backports there were related, it may still b=
e that they make<br>
&gt; &gt; &gt;&gt; a difference.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; testing with 4.17.3:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Adding some printk in PHYSDEVOP_setup_gsi, I=C2=A0 see (in x=
l dmesg)=C2=A0 that<br>
&gt; &gt; &gt; (XEN) PHYSDEVOP_setup_gsi setup_gsi : gsi: 7 triggering: 1 p=
olarity: 1<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; but later on in dmesg I see :<br>
&gt; &gt; &gt; [=C2=A0 =C2=A0 1.747958] xen: registering gsi 7 triggering 0=
 polarity 1<br>
&gt; &gt;<br>
&gt; &gt; Linux has exactly one place where this message is logged from, an=
d that&#39;s<br>
&gt; &gt; ahead of it calling PHYSDEVOP_setup_gsi. Since you said &quot;lat=
er&quot;, can you<br>
&gt; &gt; confirm that actually you see two instances of the Xen message an=
d two<br>
&gt; &gt; instances of the Linux one (each of them with respectively matchi=
ng<br>
&gt; &gt; trigger and polarity values)? Or are we indeed observing what wou=
ld look<br>
&gt; &gt; to be corruption of a hypercall argument?<br>
&gt; &gt;<br>
&gt; &gt; If there were two calls, it would be important to realize that Xe=
n will<br>
&gt; &gt; respect only the first one.<br>
&gt; &gt;<br>
&gt; &gt; Jan<br>
<br>
Adding a printk to catch the gsi immediately before the hypercall in<br>
linux/arch/x86/pci/xen.c<br>
<br>
#ifdef CONFIG_XEN_PV_DOM0<br>
static int xen_register_gsi(u32 gsi, int triggering, int polarity)<br>
{<br>
int rc, irq;<br>
struct physdev_setup_gsi setup_gsi;<br>
<br>
if (!xen_pv_domain())<br>
return -1;<br>
<br>
printk(KERN_DEBUG &quot;xen: registering gsi %u triggering %d polarity %d\n=
&quot;,<br>
gsi, triggering, polarity);<br></blockquote><div><br></div><div>there we ha=
ve :<br></div><div>=C2=A0
[=C2=A0 =C2=A0 1.848051] xen: registering gsi 7 triggering 0 polarity 1</di=
v><div><br></div><div>then in the next call :</div><div><br></div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex">
irq =3D xen_register_pirq(gsi, triggering, true);</blockquote><div><br></di=
v><div>=C2=A0I added a printk at the very beginning=C2=A0 :</div><div><br><=
/div><div>=C2=A0 static int xen_register_pirq(u32 gsi, int triggering, bool=
 set_pirq)<br>=C2=A0 {<br>=C2=A0=C2=A0=C2=A0 int rc, pirq =3D -1, irq;<br>=
=C2=A0=C2=A0=C2=A0 struct physdev_map_pirq map_irq;<br>=C2=A0=C2=A0=C2=A0 i=
nt shareable =3D 0;<br>=C2=A0=C2=A0=C2=A0 char *name;</div><div><br>=C2=A0=
=C2=A0=C2=A0 printk(KERN_DEBUG &quot;xen_register_pirq start gsi %u trigger=
ing %d set_pirq %d\n&quot;, gsi, triggering, set_pirq)<br></div><div><br></=
div><div>And I get=C2=A0 in this printk result for IRQ7 : triggering=3D1 wh=
ile it was passed with value 0 in the call !?</div></div></div></blockquote=
><div><br></div><div>Sorry bad format %d instead of %i for triggering ...<b=
r></div></div></div></blockquote><div>=C2=A0</div><div>So I replaced the fo=
rmat with %i and suprise :</div><div><br></div><div>There are 2 calls to=C2=
=A0 xen_register_pirq as I=C2=A0 can see 2 messages per IRQ=C2=A0</div><div=
><br></div><div>=C2=A0the first call is=C2=A0 right after the message &quot=
;NR_IRQS: ...&quot;from=C2=A0 early_irq_init()=C2=A0=C2=A0 ( kernel/irq/irq=
dec.c )</div><div><br></div><div>=C2=A0I see : <br></div><div>xen_register_=
pirq start gsi 7 triggering 1 set_pirq 1=C2=A0=C2=A0 ... so in xen_register=
_pirq()</div><div>Then I get the message &quot;Before PHYSDEVOPS_setup_gsi)=
 proving we are called by xen_register_gsi()</div><div><br></div><div>Then =
right after the message &quot;ACPI: 26 ACPI AML tables successfully acquire=
d and loaded&quot; <br></div><div><br></div><div>I get again, but with reve=
rsed triggering :</div><div> xen: registering gsi 7 triggering 0 polarity 1=
</div><div><div>xen_register_pirq start gsi 7 triggering 0 set_pirq 1</div>=
<div>Before PHYSDEVOPS_setup_gsi ...<br></div><div><br></div><div>So once a=
gain a call to=C2=A0 xen_register_gsi()</div></div></div></div></blockquote=
><div><br></div><div>I had to triple check:</div><div><br></div><div>The fi=
rst call is from xen_register_pirq()=C2=A0 and seem to originate from early=
_irq_init()=C2=A0 : triggering is 1</div><div>in this first call the HYPERV=
ISOR_physdev_ops is called with triggering 1 shareable 0<br></div><div><br>=
</div><div>The second call is from xen_register_pirq() called from xen_regi=
ster_gsi() :</div><div>=C2=A0 trigger=3D0 polarity 1 at the start of=C2=A0 =
xen_register_pirq()</div><div>but then  trigger=3D1 polarity=3D1 just befor=
e the call to PHYSDEVOPS_setup_gsi <br></div><div><br></div><br></div></div=
>

--00000000000043b092060ce5fd8e--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 00:30:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 00:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657283.1026057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkTV-0004pQ-RL; Wed, 20 Dec 2023 00:30:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657283.1026057; Wed, 20 Dec 2023 00: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 1rFkTV-0004pJ-NE; Wed, 20 Dec 2023 00:30:13 +0000
Received: by outflank-mailman (input) for mailman id 657283;
 Wed, 20 Dec 2023 00: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=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFkTU-0004pA-A2
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 00:30:12 +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 ee1b8c42-9ece-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 01:30:10 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 1ED70CE018A;
 Wed, 20 Dec 2023 00:30:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73AB0C433CA;
 Wed, 20 Dec 2023 00:30: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: ee1b8c42-9ece-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703032205;
	bh=U6G+TyOuRTgq+x+mpDFA04GwlwYt/r+iNQONpaGNCP8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=t6FBzF4emoCB3FOwFnji/B2OmoRZlacFAc8pbbwPrfrA5LLZ/c1rCZm1JBue6Asy7
	 7T36sI8E0NaLfmHkDQQzDcnivBnwdgTJ7TCYolNU/z7N4Z+sHiGpiSngOJsNlgkpxn
	 RGqwiaNaMU9Tq+UoiRDWsAJtcbqjoiUvmowzhX2Iy+ZJOSwkxklYvsmeMAiCW5DJRI
	 4TT2v6yC5Hx8H3QRWNLebOPJCjLLEh8wqTPyurC/phP+DcOmyZM20BMECFWUOM6imC
	 o9XkeDUqfafo5G6zaEXLs6/MH2fGw4i0lImzoMj4GVg/cO2B77koQVqK/1CuYVV3ur
	 nvh5xC92edd/A==
Date: Tue, 19 Dec 2023 16:30:03 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] x86/platform: tidy do_platform_op() a little
In-Reply-To: <c12f20a3-407c-4914-b6a0-1690962fd72c@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312191626530.3175268@ubuntu-linux-20-04-desktop>
References: <c12f20a3-407c-4914-b6a0-1690962fd72c@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, 19 Dec 2023, Jan Beulich wrote:
> The function has a few stray scopes and inconsistent use (indentation)
> of break statements. Drop the stray braces and bring all the break-s in
> line with one another. This in particular means dropping a redundant
> break from XENPF_cpu_offline handling, pleasing Misra C:2012 rule 2.1.
> 
> No functional change intended.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> This is an alternative proposal to
> https://lists.xen.org/archives/html/xen-devel/2023-12/msg01540.html.
> 
> A few more scopes could be eliminated if the various "cpu" variables
> were consolidated to switch() of function scope.
> 
> --- a/xen/arch/x86/platform_hypercall.c
> +++ b/xen/arch/x86/platform_hypercall.c
> @@ -258,7 +258,6 @@ ret_t do_platform_op(
>          break;
>  
>      case XENPF_add_memtype:
> -    {
>          ret = mtrr_add_page(
>              op->u.add_memtype.mfn,
>              op->u.add_memtype.nr_mfns,
> @@ -273,11 +272,9 @@ ret_t do_platform_op(
>              if ( ret != 0 )
>                  mtrr_del_page(ret, 0, 0);
>          }
> -    }
> -    break;
> +        break;
>  
>      case XENPF_del_memtype:
> -    {
>          if (op->u.del_memtype.handle == 0
>              /* mtrr/main.c otherwise does a lookup */
>              && (int)op->u.del_memtype.reg >= 0)
> @@ -288,8 +285,7 @@ ret_t do_platform_op(
>          }
>          else
>              ret = -EINVAL;
> -    }
> -    break;
> +        break;
>  
>      case XENPF_read_memtype:
>      {
> @@ -306,8 +302,8 @@ ret_t do_platform_op(
>              ret = __copy_field_to_guest(u_xenpf_op, op, u.read_memtype)
>                    ? -EFAULT : 0;
>          }
> +        break;
>      }
> -    break;
>  
>      case XENPF_microcode_update:
>      {
> @@ -316,8 +312,8 @@ ret_t do_platform_op(
>          guest_from_compat_handle(data, op->u.microcode.data);
>  
>          ret = microcode_update(data, op->u.microcode.length);
> +        break;
>      }
> -    break;
>  
>      case XENPF_platform_quirk:
>      {
> @@ -340,8 +336,8 @@ ret_t do_platform_op(
>              ret = -EINVAL;
>              break;
>          }
> +        break;
>      }
> -    break;

I think you should be able to remove this break completely?
And also in XENPF_set_processor_pminfo. That's because the is a switch
with a default label and a break.

Everything else checks out. Given that this is already a good
improvement as it is:

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



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 00:34:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 00:34:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657288.1026067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkXU-0005w7-Al; Wed, 20 Dec 2023 00:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657288.1026067; Wed, 20 Dec 2023 00: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 1rFkXU-0005w0-6v; Wed, 20 Dec 2023 00:34:20 +0000
Received: by outflank-mailman (input) for mailman id 657288;
 Wed, 20 Dec 2023 00:34:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFkXS-0005vu-7r
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 00:34:18 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81344075-9ecf-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 01:34:15 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 3C6FDB81B1A;
 Wed, 20 Dec 2023 00:34:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57DCDC433C7;
 Wed, 20 Dec 2023 00:34:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81344075-9ecf-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703032454;
	bh=4I4nhIDNR01PUo48rAP+hn6eMcKwhOS+OonrP6FV/Ns=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=YP6+h4u75JO8YbLfxdiqLp9kupVIh/siT4X2TtUE+mllH+gRKIpsazsZt9qPSYRdJ
	 zNJjBlkE9pyauKYoeK2kSQEiwlhfnVqTyyM3Bt2HzzPYGmnoqRnIHCGmd1jpa6EN3a
	 doeizC3gtsXdI8F9PSAyKfCpOlpcMewy86KrKo2gcOJksh2bgc4CxhmmBGXPeL8IQz
	 lzBLazq5LRU4f5LkJnH3w0TTRgOVKYyM/J8lcq3vLBTRbb/kpoMjk73FO0nNAcClfc
	 FZThU3F/rjHwFsQq0rjI3JS2dZSa/K5St1EaE59Fiax7VbiDaCQM/Jrq1JyZFfErjK
	 pHSPe+xe1ODcA==
Date: Tue, 19 Dec 2023 16:34:11 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    jbeulich@suse.com, george.dunlap@citrix.com, bertrand.marquis@arm.com, 
    roger.pau@citrix.com, roberto.bagnara@bugseng.com, 
    federico.serafini@bugseng.com
Subject: Re: [PATCH v2] docs/misra/rules.rst: add Rule 17.1
In-Reply-To: <ce925557-a030-44a2-b991-661d6f64d05e@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312191633410.3175268@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2312081738100.1703076@ubuntu-linux-20-04-desktop> <d7b880b2-10ec-4c3d-bf12-1c29995857d6@xen.org> <alpine.DEB.2.22.394.2312151251450.3175268@ubuntu-linux-20-04-desktop> <ce925557-a030-44a2-b991-661d6f64d05e@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 19 Dec 2023, Julien Grall wrote:
> Hi Stefano,
> 
> On 15/12/2023 21:02, Stefano Stabellini wrote:
> > On Fri, 15 Dec 2023, Julien Grall wrote:
> > > Hi Stefano,
> > > 
> > > On 09/12/2023 01:39, Stefano Stabellini wrote:
> > > > 
> > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > > > ---
> > > > Changes in v2:
> > > > - separated 17.1 in its own patch
> > > > - add a comment
> > > > 
> > > > diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> > > > index 8a659d8d47..f29b4c3d9a 100644
> > > > --- a/docs/misra/rules.rst
> > > > +++ b/docs/misra/rules.rst
> > > > @@ -189,6 +189,12 @@ existing codebase are work-in-progress.
> > > >         - A switch-expression shall not have essentially Boolean type
> > > >         -
> > > >    +   * - `Rule 17.1
> > > > <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_01.c>`_
> > > > +     - Required
> > > > +     - The features of <stdarg.h> shall not be used
> > > > +     - It is understood that in some limited circumstances <stdarg.h>
> > > > is
> > > > +       appropriate to use, such as the implementation of printk.
> > > 
> > > The last bullet point is unclear to me. You don't define what
> > > "appropriate"
> > > means here. So who is going to decide? Also, how is this going to be
> > > deviated?
> > > 
> > > Possibly the solution here is to remove the last bullet point and have a
> > > paragraph in deviations.rst explaining why we are using va_args.
> > 
> > Actually, I agree with you. I added the last bullet to address Jan's
> > concern:
> > https://marc.info/?l=xen-devel&m=170191695511513
> > https://marc.info/?l=xen-devel&m=170193528120968
> > 
> > This was my original reply:
> > 
> > "We agreed that in certain situations stdarg.h is OK to use and in those
> > cases we would add a deviation. Would you like me to add something to
> > that effect here? I could do that but it would sound a bit vague.  Also
> > if we want to specify a project-wide deviation it would be better
> > documented in docs/misra/deviations.rst. I would leave Rule 17.1 without
> > a note."
> > 
> > My preference is still to remove the last bullet (because too generic)
> > and add any specific information to deviations.rst as usual.
> > 
> > Julien, would you be OK with this patch if I remove the last bullet and
> > leave it blank?
> 
> I would be fine with that:
> 
> Acked-by: Julien Grall <jgrall@amazon.com>

I plan to commit that one of the next few days unless someone speaks up


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 00:42:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 00:42:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657295.1026077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkfa-0008J8-AO; Wed, 20 Dec 2023 00:42:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657295.1026077; Wed, 20 Dec 2023 00:42:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkfa-0008J1-6d; Wed, 20 Dec 2023 00:42:42 +0000
Received: by outflank-mailman (input) for mailman id 657295;
 Wed, 20 Dec 2023 00:42: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=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFkfY-0008Iv-P3
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 00:42:40 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id acc593fc-9ed0-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 01:42:38 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id E1899B81A38;
 Wed, 20 Dec 2023 00:42:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC840C433C8;
 Wed, 20 Dec 2023 00:42:34 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: acc593fc-9ed0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703032956;
	bh=3khB5p/C8TaTy0SXYCHaF4/KzV+W+IFObzykCL1ptyM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WQLgHRnAPo+F4/gjMuLa8Dxkoe1V3uVqLjDuElLMnNQacrWUtvg2PFmycxHcfa8Nz
	 XQp3tDZNvsA+jaqRR61wZPfkgPUyvYzRZmn/AIxPOiR/kTsoW6+HpkCsAx2bRLg5q8
	 K51CF9jKsK7lv5NlXn+rTEUwi4zF+fuZGrGOLEjz8Q+qp/QdVMmu488r+XkNxqZMl4
	 6t0l30QaMlSQfhfDXYFuZFfjoYllJKWogVjoFlX6Fdt5NsMrTdP1w75vv4MTKpwv/y
	 E+0EMkvXlJVm6nRc6m1jUtKAd6Es/VUyxxbzQYWzCRk+Os7dCae2AYJliErW0FAQ7o
	 bk1R5vOUnzRkA==
Date: Tue, 19 Dec 2023 16:42:33 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Mykyta Poturai <Mykyta_Poturai@epam.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>, 
    Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
In-Reply-To: <13b218b5-2d37-48de-9baa-cf2b99211bde@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312191641140.3175268@ubuntu-linux-20-04-desktop>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com> <cacbff18-f37d-42dc-ab8c-79409aa1d237@epam.com> <13b218b5-2d37-48de-9baa-cf2b99211bde@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 19 Dec 2023, Julien Grall wrote:
> Hi,
> 
> On 19/12/2023 14:18, Mykyta Poturai wrote:
> > Following up with relevant QEMU patch link.
> > 
> > https://patchwork.kernel.org/project/qemu-devel/patch/c7a180a5874f036c246fc39f921eefafecbc8c76.1702994649.git.mykyta_poturai@epam.com/
> 
> I don't seem to have the patch in my inbox. I guess you didn't CC xen-devel?
> 
> Anyway, I will reply here. I think this is a mistake for QEMU to assume that
> Xen will expose a GICv3 ITS to the guest (we may decide to implement another
> MSI controller).
> 
> But QEMU should really not need to implement a full ITS. What it needs is a
> way to forward the MSI to Xen. That's it.

I fully agree with Julien


> Stefano, do you have any suggestion how to do this in QEMU?

Yes, we just need something like hw/i386/xen/xen_apic.c but for ARM


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 01:03:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 01:03:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657300.1026088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkz3-0001n0-UJ; Wed, 20 Dec 2023 01:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657300.1026088; Wed, 20 Dec 2023 01:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFkz3-0001mt-PO; Wed, 20 Dec 2023 01:02:49 +0000
Received: by outflank-mailman (input) for mailman id 657300;
 Wed, 20 Dec 2023 01: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=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFkz2-0001mj-A7
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 01:02:48 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7bffbfe0-9ed3-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 02:02:45 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 6B50BB81A3E;
 Wed, 20 Dec 2023 01:02:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F05DC433C8;
 Wed, 20 Dec 2023 01:02: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: 7bffbfe0-9ed3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703034163;
	bh=BMCpIOUeP+9CO1CYEpPLCLdR+JBcmHOLaPvHsGjgVZs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=aWeM4TCg5F9C7W3JfV6SNWBgjN6NLg7gIMGDQLiStTS13RCdbM/KM7qudk1+uMB0S
	 7SYXRw1aF8eN+QDaC/4ZS5W5dss4kB5iXqPihrS0ujOymMMZLnsZGJmJ+9zr6VQjsM
	 JO/eirSNM30FuQerrm8Wvhu+ngV8wX1x3jSQyZg1ne0f8sVCMjPnJyfQleNEiza926
	 iuoXICwc07Dby3tIv/+ALjbHvHOAyp8MQVlH7YY/fzwL84F3XNyCiqu40mnqsUxeyW
	 5tWRoNUWc5MMnnnLO/dmBtNPL3c33Hff2LI9uaRw+8pk/XlzrnWH9mpq/6ic5JvjtI
	 bNVo+1nkjazkQ==
Date: Tue, 19 Dec 2023 17:02:41 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, 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 v2 1/6] xen/arm: address violations of MISRA C:2012 Rule
 11.8
In-Reply-To: <cb398c5819310d2dc3413c4ceee685ed23ec7cf3.1702982442.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312191702330.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com> <cb398c5819310d2dc3413c4ceee685ed23ec7cf3.1702982442.git.maria.celeste.cesario@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, 19 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Add missing const qualifiers in casts.
> The variables are originally const-qualified.
> There's no reason to drop the qualifiers.
> 
> Drop redundant cast to preserve const qualifier.
> 
> 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>


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 01:04:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 01:04:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657303.1026096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFl16-0002fz-7e; Wed, 20 Dec 2023 01:04:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657303.1026096; Wed, 20 Dec 2023 01:04:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFl16-0002fs-5A; Wed, 20 Dec 2023 01:04:56 +0000
Received: by outflank-mailman (input) for mailman id 657303;
 Wed, 20 Dec 2023 01:04:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFl14-0002fk-UQ
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 01:04:54 +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 c7ada677-9ed3-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 02:04:53 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 1149ECE173B;
 Wed, 20 Dec 2023 01:04:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB94DC433C7;
 Wed, 20 Dec 2023 01:04: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: c7ada677-9ed3-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703034288;
	bh=ZARb1ie99bVjEed3N8JeJZyrEwjxFxxRkjCnJUE2XfQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=etX/IXPTz/k+y6xdfid+4mauYCoktkwRJ2iy34zJvJzHMXRbbthoaWJkSJaNh95QN
	 Jd723ptA6TCcUW06ivnIPudnOOuI5wKDlQVa6jbNC8Zc9uob9zl0S6q8b6OxkCh1UU
	 p22mIM3dmKp1Hd8jfmZYdC56evxZSzjYYM8fYF14NOpW8irKkxEFHL43VjnNz8EZQ5
	 iB5BEqriOkYCSRMMcpeFbtxwPieSByMJcwmOUbwIaY+pfWKzvwcnb0CyQEl8a8uVxE
	 X9NNVT0rd47cIcFStNC/+rZi46KvwRzd5cSPJ18KYsYM+fTEkR/AiPFcv8RFo4bxMv
	 HtiEhxJ29hOBA==
Date: Tue, 19 Dec 2023 17:04:45 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v2 3/6] xen: add deviations for Rule 11.8
In-Reply-To: <04cdbf21db915634acd49108edab7d6331df35eb.1702982442.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312191704370.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com> <04cdbf21db915634acd49108edab7d6331df35eb.1702982442.git.maria.celeste.cesario@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, 19 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> The xen sources contain violations of MISRA C:2012 Rule 11.8 whose
> headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> The macro 'container_of' violates the Rule because it casts away any
> qualifier to do pointer arithmetic, but making the macro definition compliant
> would add additional complexity, therefore a deviation is introduced.
> 
> 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>


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 01:07:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 01:07:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657309.1026106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFl3U-0003TB-LE; Wed, 20 Dec 2023 01:07:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657309.1026106; Wed, 20 Dec 2023 01: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 1rFl3U-0003T4-Ik; Wed, 20 Dec 2023 01:07:24 +0000
Received: by outflank-mailman (input) for mailman id 657309;
 Wed, 20 Dec 2023 01:07:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFl3S-0003Sw-Ul
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 01:07:22 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2054f51f-9ed4-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 02:07:20 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 629CDB81823;
 Wed, 20 Dec 2023 01:07:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 725B2C433C7;
 Wed, 20 Dec 2023 01:07: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: 2054f51f-9ed4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703034439;
	bh=BFQ60CIQPWiVjWX2SD1LFpqoYvO24hZSDp4WpL9h8AU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dzwXFqHIKdGitzn0uY65gs5XAbT9cZlBJs4dEwM+mJdLMHluGKCsbypZgaWy7Hhri
	 oWnSlW2TdQY/yzHOX3/56XGfUIOyR2WkZHzatZ6yhWS8AHYbzkPZUwlcx9c09tZH53
	 NhNlDM07YhM2XqNYmwYdwwpB4JkWxVloBboOMdw071gq+XeTvc0Q7MTC0SqLRUXezd
	 N5uGnVg3/y/v9vid9h39TC2jeL63oaVUhATO9tTmPXALI2FB3DLVt/XLTJfjCGl+6N
	 4nq5SsBJ9fJMIycoF2VfWuNOLFwz9KDK0iYLTYjjj4iVepfajLbqetw1knCv6plwvk
	 KtKU6uqsOrtKg==
Date: Tue, 19 Dec 2023 17:07:16 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Simone Ballarin <simone.ballarin@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>, 
    George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Wei Liu <wl@xen.org>
Subject: Re: [PATCH v2 5/6] xen: remove unused function ERR_CAST
In-Reply-To: <e6152a631d3bb6ad4c798fe9d795b360100d63f5.1702982442.git.maria.celeste.cesario@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312191707100.3175268@ubuntu-linux-20-04-desktop>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com> <e6152a631d3bb6ad4c798fe9d795b360100d63f5.1702982442.git.maria.celeste.cesario@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, 19 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
> 
> Function ERR_CAST contains a violation of MISRA C:2012 Rule 11.8,
> whose headline states:
> "A conversion shall not remove any const, volatile or _Atomic qualification
> from the type pointed to by a pointer".
> 
> Since the function has no users, it is appropriate to remove it.
> 
> 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>


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 02:11:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 02:11:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657317.1026122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFm2m-0000L1-5j; Wed, 20 Dec 2023 02:10:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657317.1026122; Wed, 20 Dec 2023 02: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 1rFm2m-0000Ku-2Q; Wed, 20 Dec 2023 02:10:44 +0000
Received: by outflank-mailman (input) for mailman id 657317;
 Wed, 20 Dec 2023 02:10: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=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFm2k-0000IC-EQ
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 02:10: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 f856da79-9edc-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 03:10:40 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id BDEAB614D4;
 Wed, 20 Dec 2023 02:10:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2C962C433C8;
 Wed, 20 Dec 2023 02:10:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f856da79-9edc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703038238;
	bh=ER7BcoQkaH144AE6yTsMgJ2rFW80agKDieErSk2bdnQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=flbZAEX3P/77Y3tkqzZE311d8ZiiB3j65bPtgDXHyCE7J595pGJAxCjsWX+8qOa5i
	 jjCvyC36My+Zm/+m1XmaVyNw+uejga8BAGvdW9PGt2xN/QTpK12UyMu+r1I2s2GC/5
	 oMYUNU6+KGVYB0fI+d29Qn8TeY/5qVBaYe5DnOqf9omtQ4KDd/y3PThfxp1l9N5ZGj
	 NkpvYiM6hAqdEVIYJeaWptPspsTDeDerAlQP9+PdOh3im1t8oaPTvvcsA4i2uXHF/v
	 zoPU+xgC286NayuocE5smcq65ple5xevY9Jcdcy4HOYjhly+ywV5iQoP0OZjq4TlX+
	 8gixlHEnLdZXA==
Date: Tue, 19 Dec 2023 18:10:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Wei Liu <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v11 01/17] pci: msi: pass pdev to pci_enable_msi()
 function
In-Reply-To: <20231202012556.2012281-2-volodymyr_babchuk@epam.com>
Message-ID: <alpine.DEB.2.22.394.2312191806520.3175268@ubuntu-linux-20-04-desktop>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com> <20231202012556.2012281-2-volodymyr_babchuk@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 2 Dec 2023, Volodymyr Babchuk wrote:
> Previously pci_enable_msi() function obtained pdev pointer by itself,
> but taking into account upcoming changes to PCI locking, it is better
> when caller passes already acquired pdev pointer to the function,
> because caller knows better how to obtain the pointer and which locks
> are needed to be used. Also, in most cases caller already has pointer
> to pdev, so we can avoid an extra list walk.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> ---
> In v11:
>  - Made pdev parameter very first in pci_enable_msi() and friends.
>  - Extended the commit message
>  - Added check for pdev into ns16550 driver
>  - Replaced hard tabs with spaces
> 
> Changes in v10:
> 
>  - New in v10. This is the result of discussion in "vpci: add initial
>  support for virtual PCI bus topology"
> ---
>  xen/arch/x86/include/asm/msi.h |  5 +++--
>  xen/arch/x86/irq.c             |  2 +-
>  xen/arch/x86/msi.c             | 19 ++++++++++---------
>  xen/drivers/char/ns16550.c     | 28 ++++++++++++++++++----------
>  4 files changed, 32 insertions(+), 22 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
> index c1ece2786e..07b3ee55e9 100644
> --- a/xen/arch/x86/include/asm/msi.h
> +++ b/xen/arch/x86/include/asm/msi.h
> @@ -81,8 +81,9 @@ struct irq_desc;
>  struct hw_interrupt_type;
>  struct msi_desc;
>  /* Helper functions */
> -extern int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc);
> -extern void pci_disable_msi(struct msi_desc *msi_desc);
> +extern int pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
> +                          struct msi_desc **desc);
> +extern void pci_disable_msi(struct msi_desc *desc);

As the parameters name should match between declaration and definition,
you should also rename msi_desc to desc in the implementation of
pci_disable_msi. Or keep the parameter called "msi_desc" for
pci_disable_msi here. That change could be done on commit and everything
else looks OK:

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



>  extern int pci_prepare_msix(u16 seg, u8 bus, u8 devfn, bool off);
>  extern void pci_cleanup_msi(struct pci_dev *pdev);
>  extern int setup_msi_irq(struct irq_desc *desc, struct msi_desc *msidesc);
> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 6e668b1b4f..50e49e1a4b 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -2176,7 +2176,7 @@ int map_domain_pirq(
>          if ( !pdev )
>              goto done;
>  
> -        ret = pci_enable_msi(msi, &msi_desc);
> +        ret = pci_enable_msi(pdev, msi, &msi_desc);
>          if ( ret )
>          {
>              if ( ret > 0 )
> diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
> index 7f8e794254..335c0868a2 100644
> --- a/xen/arch/x86/msi.c
> +++ b/xen/arch/x86/msi.c
> @@ -983,13 +983,13 @@ static int msix_capability_init(struct pci_dev *dev,
>   * irq or non-zero for otherwise.
>   **/
>  
> -static int __pci_enable_msi(struct msi_info *msi, struct msi_desc **desc)
> +static int __pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
> +                            struct msi_desc **desc)
>  {
> -    struct pci_dev *pdev;
>      struct msi_desc *old_desc;
>  
>      ASSERT(pcidevs_locked());
> -    pdev = pci_get_pdev(NULL, msi->sbdf);
> +
>      if ( !pdev )
>          return -ENODEV;
>  
> @@ -1038,13 +1038,13 @@ static void __pci_disable_msi(struct msi_desc *entry)
>   * of irqs available. Driver should use the returned value to re-send
>   * its request.
>   **/
> -static int __pci_enable_msix(struct msi_info *msi, struct msi_desc **desc)
> +static int __pci_enable_msix(struct pci_dev *pdev, struct msi_info *msi,
> +                             struct msi_desc **desc)
>  {
> -    struct pci_dev *pdev;
>      struct msi_desc *old_desc;
>  
>      ASSERT(pcidevs_locked());
> -    pdev = pci_get_pdev(NULL, msi->sbdf);
> +
>      if ( !pdev || !pdev->msix )
>          return -ENODEV;
>  
> @@ -1151,15 +1151,16 @@ int pci_prepare_msix(u16 seg, u8 bus, u8 devfn, bool off)
>   * Notice: only construct the msi_desc
>   * no change to irq_desc here, and the interrupt is masked
>   */
> -int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc)
> +int pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
> +                   struct msi_desc **desc)
>  {
>      ASSERT(pcidevs_locked());
>  
>      if ( !use_msi )
>          return -EPERM;
>  
> -    return msi->table_base ? __pci_enable_msix(msi, desc) :
> -                             __pci_enable_msi(msi, desc);
> +    return msi->table_base ? __pci_enable_msix(pdev, msi, desc) :
> +                             __pci_enable_msi(pdev, msi, desc);
>  }
>  
>  /*
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index ddf2a48be6..cfe9ff8d2a 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -452,21 +452,29 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
>              if ( rc > 0 )
>              {
>                  struct msi_desc *msi_desc = NULL;
> +                struct pci_dev *pdev;
>  
>                  pcidevs_lock();
>  
> -                rc = pci_enable_msi(&msi, &msi_desc);
> -                if ( !rc )
> +                pdev = pci_get_pdev(NULL, msi.sbdf);
> +                if ( pdev )
>                  {
> -                    struct irq_desc *desc = irq_to_desc(msi.irq);
> -                    unsigned long flags;
> -
> -                    spin_lock_irqsave(&desc->lock, flags);
> -                    rc = setup_msi_irq(desc, msi_desc);
> -                    spin_unlock_irqrestore(&desc->lock, flags);
> -                    if ( rc )
> -                        pci_disable_msi(msi_desc);
> +                    rc = pci_enable_msi(pdev, &msi, &msi_desc);
> +
> +                    if ( !rc )
> +                    {
> +                        struct irq_desc *desc = irq_to_desc(msi.irq);
> +                        unsigned long flags;
> +
> +                        spin_lock_irqsave(&desc->lock, flags);
> +                        rc = setup_msi_irq(desc, msi_desc);
> +                        spin_unlock_irqrestore(&desc->lock, flags);
> +                        if ( rc )
> +                            pci_disable_msi(msi_desc);
> +                    }
>                  }
> +                else
> +                    rc = -ENODEV;
>  
>                  pcidevs_unlock();
>  
> -- 
> 2.42.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 02:12:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 02:12:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657320.1026132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFm3x-000146-Fq; Wed, 20 Dec 2023 02:11:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657320.1026132; Wed, 20 Dec 2023 02:11:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFm3x-00013z-Cf; Wed, 20 Dec 2023 02:11:57 +0000
Received: by outflank-mailman (input) for mailman id 657320;
 Wed, 20 Dec 2023 02:11: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=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rFm3w-00013p-Tl
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 02:11:56 +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 2460cc37-9edd-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 03:11:54 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id A7F32CE1B27;
 Wed, 20 Dec 2023 02:11:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7161DC433C7;
 Wed, 20 Dec 2023 02:11:47 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2460cc37-9edd-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703038308;
	bh=CDAoeTZ2V4Z1F0/BwOXViUT5SJWB2/1q3/PUmSYvTa4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Rd/b19bEA2baZeGS9sK7YB98+DJqyKs0Ui5Ur2J1YgnXZqtwev4Fu689pABCzAZWQ
	 ZEuhjj8DjZMJQW8h6T5B5gr0KYRPZHja01oG19wIbbiYyiZc5Qp5l6Lu5EYYhvfQrQ
	 EqFrW0fHOAh2zzrkq2UoDJT96CLPsoUvr/PjVgYG6JKmTvpjKsHQdfWq+kywsuBkI8
	 epPT1fLzz+Y0YfVB0oSLN6UyB99WeY9YaB4XnVXJvH2BAYY91CwEay6hyW+6NARpIy
	 okyoPT58Ug6TrwhlyqSh09Dxv06ZfR2GwcA3+sFXTp7sg3iuEW6ijvizKve5r9kDuO
	 XknAXxjgDieYg==
Date: Tue, 19 Dec 2023 18:11:45 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stewart Hildebrand <stewart.hildebrand@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>, 
    Wei Liu <wl@xen.org>, Paul Durrant <paul@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Kevin Tian <kevin.tian@intel.com>
Subject: Re: [PATCH v11 02/17] pci: introduce per-domain PCI rwlock
In-Reply-To: <20231202012556.2012281-3-volodymyr_babchuk@epam.com>
Message-ID: <alpine.DEB.2.22.394.2312191811370.3175268@ubuntu-linux-20-04-desktop>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com> <20231202012556.2012281-3-volodymyr_babchuk@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1668302398-1703038308=:3175268"

  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-1668302398-1703038308=:3175268
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Sat, 2 Dec 2023, Volodymyr Babchuk wrote:
> Add per-domain d->pci_lock that protects access to
> d->pdev_list. Purpose of this lock is to give guarantees to VPCI code
> that underlying pdev will not disappear under feet. This is a rw-lock,
> but this patch adds only write_lock()s. There will be read_lock()
> users in the next patches.
> 
> This lock should be taken in write mode every time d->pdev_list is
> altered. All write accesses also should be protected by pcidevs_lock()
> as well. Idea is that any user that wants read access to the list or
> to the devices stored in the list should use either this new
> d->pci_lock or old pcidevs_lock(). Usage of any of this two locks will
> ensure only that pdev of interest will not disappear from under feet
> and that the pdev still will be assigned to the same domain. Of
> course, any new users should use pcidevs_lock() when it is
> appropriate (e.g. when accessing any other state that is protected by
> the said lock). In case both the newly introduced per-domain rwlock
> and the pcidevs lock is taken, the latter must be acquired first.
> 
> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-1668302398-1703038308=:3175268--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 02:39:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 02:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657330.1026142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFmUN-0005CT-MU; Wed, 20 Dec 2023 02:39:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657330.1026142; Wed, 20 Dec 2023 02:39:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFmUN-0005CM-Js; Wed, 20 Dec 2023 02:39:15 +0000
Received: by outflank-mailman (input) for mailman id 657330;
 Wed, 20 Dec 2023 02:39: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=GUkk=H7=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rFmUL-0005CC-WF
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 02:39:14 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id f4f78f24-9ee0-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 03:39:12 +0100 (CET)
Received: from mg.gitlab.com (31.226.74.34.bc.googleusercontent.com
 [34.74.226.31]) by
 c2d8f6b49f66 with SMTP id 658253cb946e3bfb3ed50fb5 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 20 Dec 2023 02:39:07 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: f4f78f24-9ee0-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1703039950; x=1703047150; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=Rh9f7A5HBOSEBLlezB1tljAx2+dbVWtySzWObIgU3c0=;
 b=NCGu13IWZSR+ziAxf0ECH4Ml61Ap8tOTuruosZVAnI2Ad7BsIMbWWHmScLJRNduCmiIwaVcUkTkolAmfpMOH0wSDBaNHo4rZFTHlrfnftlvaJj3skjLZb6JzhP0cbsjLfvjJ9O0XWHAjgBli3Yulbo1BldP12q/3lEE0PV9OSQA=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 20 Dec 2023 02:39:07 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <658253cb45a5_2c1e3926076850@gitlab-sidekiq-catchall-v2-57965f9787-cxb7j.mail>
Subject: xen | Successful pipeline for staging | 725acf8e
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_658253caef185_2c1e39260767b9";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1113609566
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_658253caef185_2c1e39260767b9
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1113609566 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 725acf8e ( https://gitlab.com/xen-project/xen/-/commit/725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3 )
Commit Message: xen/arm: vcpreg: address violation of MISRA C R...
Commit Author: Nicola Vetrini
Committed by: Stefano Stabellini



Pipeline #1113609566 ( https://gitlab.com/xen-project/xen/-/pipelines/1113609566 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 725acf8e</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1113609566 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/725acf8e4d406bf0a2=
4441ac1738eb6f4f6ef0c3" style=3D"color: #3777b0; text-decoration: none;">=
725acf8e</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: vcpreg: address violation of MISRA C R...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/23d68b797e165570c641942285dfe06e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Nicola Vetrini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/50b82a64e2a9f930cabefa3948871101?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Stefano Stabellini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111360=
9566" style=3D"color: #3777b0; text-decoration: none;">#1113609566</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_658253caef185_2c1e39260767b9--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 04:53:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 04:53:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657370.1026158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFoZb-0008Em-Bg; Wed, 20 Dec 2023 04:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657370.1026158; Wed, 20 Dec 2023 04:52:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFoZb-0008Ef-8a; Wed, 20 Dec 2023 04:52:47 +0000
Received: by outflank-mailman (input) for mailman id 657370;
 Wed, 20 Dec 2023 04:52:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jyle=H7=bsdimp.com=wlosh@srs-se1.protection.inumbo.net>)
 id 1rFoZZ-0008EY-1V
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 04:52:45 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 999b7b2e-9ef3-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 05:52:38 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c2db2ee28so66017935e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 20:52:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 999b7b2e-9ef3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=bsdimp-com.20230601.gappssmtp.com; s=20230601; t=1703047958; x=1703652758; 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=1LOxcSw/tF1sThy3cUFmTPJVJmSuupEt4AGIlZzVRh0=;
        b=GXlMoxBGHFblDCmOVD4ibxcHdK2RZZRkUUap/ZV+5MIScf5T04Ue6BZFfGS7eDNpUF
         j1GWcNsYSop9p7EsB2o6dHTMGykS1hl5wLrggEs5on/fCe3caEY/2oL7iw+aW8I9COXo
         blbb9GIeBIetBneR5aPTUkuMde65R6GCjMvLGoBORaazgtlQ07BOYADgIUWhNiUUH/xZ
         cdSXj06YmGJ0sfvFjox0CgQD9Oq0l17Uy2c5tE/oW/TX617nyivjkx3Y15OLQB+4fjqL
         53QvoLVwe/1mg1xl4djQ5jvb8RAddwg1D7P/3p9i8ZL28nhO4fXd7nZ3voH7sGnBVoLl
         vAGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703047958; x=1703652758;
        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=1LOxcSw/tF1sThy3cUFmTPJVJmSuupEt4AGIlZzVRh0=;
        b=Ryc48WGD/qxc+7qkwsinbNROWzEqEejGzmKqC3eOYSxkMpKqEyZBRdlBvPe++lVSVl
         A6RK7yhzM8kg7PG2uJompodbpk1E1Vp5hyC0VyiTgFdNtgGGCwdYB9OOpc2wMcg2HPYe
         oopSF0htKbMZOf+RU3UiE5KXvvxAhTuT5P0dzSvOFJy4DH8uN6aIrLSdc64Tz+SApO6q
         XwFYmsP/KdnoPWwbtwq33IAq692hBZ8A/zfXqdEWx3aDl3XI0/XyCaxy3E61oIQfdTcC
         I6h7qX/8CNo6ReUJaSnLD9pZRh8E24zOFTrgnmumR7DFw8WCvpoYG3NGG5fb/Mncaerj
         H++A==
X-Gm-Message-State: AOJu0Yz6rlNMi2lgS0t+7LchgMIp3pWyIN2UrjJo+E3I2QpTAO2R+Pod
	wi7+tEdJNg55BsY+v5GS4qbNuh57Au5tEcv2gVyQzEt/NDqtkS5ootA=
X-Google-Smtp-Source: AGHT+IEbbi40CPslNsrPaZHmFoH0hxmo048S+DdFkhUNhkMzdD6/L9qjT78ibdS8TyMOvFe3UxMKw1yCFVvBUeT5Olk=
X-Received: by 2002:a7b:c3c6:0:b0:40b:5e1d:83a3 with SMTP id
 t6-20020a7bc3c6000000b0040b5e1d83a3mr10805496wmj.55.1703047958061; Tue, 19
 Dec 2023 20:52:38 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us> <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us> <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
 <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop> <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com>
In-Reply-To: <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com>
From: Warner Losh <imp@bsdimp.com>
Date: Tue, 19 Dec 2023 21:52:30 -0700
Message-ID: <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com>
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM Chromebook
To: Mario Marietto <marietto2008@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, 
	Stanislav Silnicki <stanislav.silnicki@mailgate.us>, freebsd-arm@freebsd.org, 
	Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
Content-Type: multipart/alternative; boundary="000000000000937df7060ce9c0b0"

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

I'd think you'd need the right virtualization loader. I'm not entirely sure
the u-boot.bin you've been creating is for a dom-u..
If I misunderstood, then the below isn't good advice. Chain booting the
u-boot, the first u-boot initializes things so you want
to start with stage after the SPL. But the different error messages suggest
that it's trying to reboot with kexec, which
isn't supported on armv7 at the moment.

If you could boot in kvm, I think that the following would work....  Though
I'm not entirely sure how to
specify the two .fd files in your setup. The use of qemu is to have an easy
env to debug things... I don't
have a chromebook to try...

My first instinct would be to try qemu on x86 (this is the first step of
many to get to your destination).

If you could boot the GENERIC_SD image that we produce using qemu +
edk2-arm-code.fd that would
be a huge first step. This will give you the boot loader, I believe, to
boot in the VM that you need better
than going via the u-boot route. Since you are booting in a virtualized
environment, I think it wouldn't
matter which one :).

So, I did the following to boot the virtualized armv7 FreeBSD environment,
following a post on the forums I found and knew to have the right recipe:
https://forums.freebsd.org/threads/run-boot-freebsd-arm-32bit-image-in-qemu=
.80765/

1. pkg install qemu
2. mkdir qemu-armv7-env
3. cd qemu-armv7-env
4. fetch
https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/14.0/FreeBSD-14.=
0-RELEASE-arm-armv7-GENERICSD.img.xz
5. xz -d -T 0 FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz
6. dd if=3D/dev/zero of=3Dpflash0.img bs=3D1m count=3D64
7. dd if=3D/dev/zero of=3Dpflash1.img bs=3D1m count=3D64
8. dd if=3D/usr/local/share/qemu/edk2-arm-code.fd of=3Dpflash0.img conv=3Dn=
otrunc
9. dd if=3D/usr/local/share/qemu/edk2-arm-vars.fd of=3Dpflash1.img conv=3Dn=
otrunc
10. cat > start-freebsd-arm.sh
#!/bin/sh
qemu-system-arm \
  -M virt \
  -m 1024 \
  -drive file=3Dpflash0.img,format=3Draw,if=3Dpflash,readonly=3Don \
  -drive file=3Dpflash1.img,format=3Draw,if=3Dpflash \
  -drive file=3D$1.img,if=3Dvirtio,cache=3Dwritethrough \
  -nographic \
  -serial mon:stdio
^D
11. chmod +x start-freebsd-arm.sh
12. ./start-freebsd-arm.sh FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD

But I hit a snag with this on qemu 8.1.2 and 8.1.3 with both 13.2 and 14.0:

Starting devd.
Starting dhclient.
DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 7
Fatal kernel mode data abort: 'Alignment Fault' on read
trapframe: 0xc4b36a60
FSR=3D00000001, FAR=3Ddd96701a, spsr=3D20000013
r0 =3D00000000, r1 =3D00000001, r2 =3D00000001, r3 =3Dc4b36b4c
r4 =3D00000014, r5 =3Dd6618800, r6 =3Ddd96702e, r7 =3D0000022c
r8 =3D00000000, r9 =3D0000022c, r10=3Ddd96701a, r11=3Dc4b36b90
r12=3D4300ffff, ssp=3Dc4b36af0, slr=3Dc04a9728, pc =3Dc04a9750

panic: Fatal abort
cpuid =3D 0
time =3D 1680843057
KDB: stack backtrace:
#0 0xc035786c at kdb_backtrace+0x48
#1 0xc02fdd20 at vpanic+0x140
#2 0xc02fdbe0 at vpanic+0
#3 0xc06304ac at abort_align+0
#4 0xc063052c at abort_align+0x80
#5 0xc063017c at abort_handler+0x480
#6 0xc060f480 at exception_exit+0
#7 0xc04a9750 at udp_input+0x288
#8 0xc0473f54 at ip_input+0x1e0
#9 0xc04447c0 at netisr_dispatch_src+0xf8
#10 0xc043bf2c at ether_demux+0x1a4
#11 0xc043d5e4 at ether_nh_input+0x480
#12 0xc04447c0 at netisr_dispatch_src+0xf8
#13 0xc043c404 at ether_input+0x50
#14 0xc01c0838 at vtnet_rx_vq_process+0x880
#15 0xc01b70d0 at vtpci_intx_intr+0xac
#16 0xc02b87f0 at ithread_loop+0x2ec
#17 0xc02b465c at fork_exit+0xc0
Uptime: 19s

I don't know if this is a problem with qemu or FreeBSD's kernel...

Warner

On Tue, Dec 19, 2023 at 3:25=E2=80=AFPM Mario Marietto <marietto2008@gmail.=
com>
wrote:

> I've asked some help on the channel #arm on Reddit and someone replied :
>
>
> https://www.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_arm=
32_bit_as_domu_with/
>
> Maybe his answer can be useful to understand why it does not work.
>
> On Tue, Dec 19, 2023 at 8:33=E2=80=AFPM Stefano Stabellini <sstabellini@k=
ernel.org>
> wrote:
>
>> +Michal
>>
>> Hi Mario,
>>
>> I am not sure about booting FreeBSD, but I am certain that u-boot works
>> fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config
>> file:
>>
>> name=3D"test"
>> kernel=3D"u-boot.bin"
>> extra =3D "console=3Dhvc0"
>> memory=3D256
>> vcpus=3D1
>> disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>>
>> I don't know for sure if you can boot FreeBSD but you should definitely
>> be able to see the u-boot command line prompt. The fact that you are
>> getting this message:
>>
>> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found=
:
>> Invalid kernel
>>
>> Means that something is not right in the u-boot configuration or u-boot
>> build. Michal and Artem (CCed) might know more. From what I recall,
>> there was nothing special required to get u-boot.bin to boot as domU
>> kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.
>>
>> Cheers,
>>
>> Stefano
>>
>>
>> On Tue, 19 Dec 2023, Mario Marietto wrote:
>> > ....I see that some other interesting files have been produced by
>> u-boot when I have compiled it :
>> >
>> > u-boot
>> > u-boot.lds
>> > u-boot.bin
>> > u-boot.map
>> > u-boot-nodtb.bin
>> > u-boot.dtb
>> > u-boot.srec
>> > u-boot-dtb.bin
>> > u-boot.sym
>> >
>> > So,maybe I should use a different u-boot* file for booting FreeBSD ?
>> >
>> >
>> > On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto <marietto2008@g=
mail.com>
>> wrote:
>> >       Hello to everyone.
>> >
>> > I have compiled the needed u-boot.bin from scratch using this procedur=
e
>> :
>> >
>> > # git clone https://github.com/u-boot/u-boot.git
>> > # cd u-boot
>> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig =
:
>> this line generates the file .config
>> > # nano .config and I've added these parameters :
>> >
>> > CONFIG_ARMV7_NONSEC=3Dn
>> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
>> >
>> > the uboot-bin file is generated with this command :
>> >
>> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make
>> >
>> > At this point,I took a look inside the .config file and I saw that the
>> parameter "CONFIG_ARMV7_NONSEC=3Dn" has been removed. So,for
>> > some reason,it is not accepted and this could be a problem....
>> >
>> > These are the xen config files that I've used :
>> >
>> > nano freebsd.cfg
>> >
>> > name=3D"test"
>> > kernel=3D"u-boot.bin"
>> > extra =3D "console=3Dhvc0"
>> > memory=3D256
>> > vcpus=3D1
>> > disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>> >
>> > nano start-freebsd
>> >
>> > xl create freebsd.cfg
>> > xl console freebsd
>> >
>> > This is what happens when I launch the vm :
>> >
>> > # ./start-freebsd
>> >
>> > Parsing config from freebsd.cfg
>> > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader
>> found: Invalid kernel
>> > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image
>> failed
>> > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
>> 1:cannot (re-)build domain: -3
>> > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
>> 1:Non-existent domain
>> > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
>> 1:Unable to destroy guest
>> > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
>> 1:Destruction of domain failed
>> > freebsd is an invalid domain identifier (rc=3D-6)
>> >
>> >
>> > On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto <marietto2008@=
gmail.com>
>> wrote:
>> >       So,ok,I should have said "the second u-boot" ; since the first
>> u-boot binary is the "u-boot binary located in the RO
>> >       memory" of the Chromebook". Sorry for the confusion.
>> >
>> > On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto <marietto2008@=
gmail.com>
>> wrote:
>> >       ---> There are no specific options in u-boot devoted to FreeBSD
>> >
>> > This is an important factor. So,what about if,instead of compiling a
>> new version of u-boot on the partition 2,I will
>> > recompile the u-boot customized version created by the virtual open
>> system in 2014,that should be installed on the first
>> > partition ? It could work if there are no differences between the
>> u-boot that should boot Linux and the u-boot that
>> > should boot FreeBSD.
>> >
>> > Can you give a look at the u-boot source code created by virtual open
>> systems ? You can find it on my google drive :
>> >
>> >
>> https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?u=
sp=3Dsharing
>> >
>> > I need to understand if I can recompile it without problem so that it
>> can satisfy my needs (the ability of the file
>> > u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano
>> Stabellini,the xen developer that suggested to me
>> > what I could do to have FreeBSD virtualized under Xen on my Arm
>> Chromebook) ; otherwise the risk is to find later
>> > problems that will make me troubles and that I will not able to fix.
>> >
>> > I gave a look at the virtual open system u-boot and I didn't see any
>> arndale_defconfig inside. So,If I have understood
>> > correctly,I should put that file inside the root of the u-boot source
>> code,let's say here :
>> >
>> > marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls
>> >
>> > .checkpatch.conf        README                  doc
>>                     net
>> > .git                    api                     drivers
>>                 onenand_ipl
>> > .gitignore              arch                    dts
>>                     post
>> > COPYING                 board                   examples
>> rules.mk
>> > CREDITS                 boards.cfg              fs
>>                      scripts
>> > MAINTAINERS             common                  include
>>                 snapshot.commit
>> > MAKEALL                 config.mk               lib
>>                     spl
>> > Makefile                cros                    mkconfig
>>                test
>> > PRESUBMIT.cfg           disk                    nand_spl
>>                tools
>> >
>> > and I should do : make and make install ? and the file I
>> need,u-boot.bin will be generated ?
>> >
>> > I didn't find any pre made configuration file inside :
>> >
>> > u-boot-vos # find . -type f -name "exynos*"
>> >
>> > ./include/exynos-fb.h
>> > ./include/configs/exynos5-common.h
>> > ./doc/device-tree-bindings/spi/exynos-spi.txt
>> > ./doc/device-tree-bindings/usb/exynos-usb.txt
>> > ./drivers/power/exynos-tmu.c
>> > ./drivers/power/exynos-cpufreq.c
>> > ./drivers/video/exynos-fb.c
>> > ./drivers/spi/exynos_spi.c
>> > ./board/samsung/dts/exynos5250-spring.dts
>> > ./board/samsung/dts/exynos5250-smdk5250.dts
>> > ./board/samsung/dts/exynos5250-snow.dts
>> > ./board/samsung/dts/exynos5250-daisy.dts
>> > ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h
>> > ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h
>> > ./arch/arm/dts/exynos5250.dtsi
>> > ./arch/arm/dts/exynos-periph-id.dtsi
>> > ./arch/arm/cpu/armv7/exynos5/exynos_cache.c
>> >
>> > u-boot-vos # find . -type f -name "arndale*"
>> >
>> > For sure I can't use a newer version of u-boot because otherwise the
>> patches needed to bypass the bootloader protections
>> > of the Arm Chromebook (such as a lot of different patches needed to
>> boot correctly Linux) will be broken ; anyway,since
>> > it works,I don't need to use an updated version of u-boot.
>> >
>> > ----> As per my experience, you have to respect these two options,
>> compiling u-boot for
>> > FreeBSD:
>> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-maste=
r/files/FreeBSD_Fragment
>> >
>> > It says that I should use these parameters :
>> >
>> > CONFIG_ARMV7_NONSEC=3Dn
>> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
>> >
>> > These are the parameters used to configure a Linux kernel. I don't
>> understand what's the relation between the compilation
>> > of a linux kernel and u-boot. In the past I tried to recompile
>> u-boot,but I didn't have the need to set up those
>> > parameters,so I don't know how to do it (but I know how to recompile a
>> Linux kernel).
>> >
>> > ---> I'm not sure that I'm getting you right, as I don't understand
>> what you mean under "the first u-boot".
>> >
>> >
>> > I'm talking about first u-boot because the whole procedure to boot
>> Linux on the ARM Chromebook,that's explained here :
>> >
>> >
>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
>> >
>> >
>> > at some point they say :
>> >
>> >
>> > To be able to run KVM on ARM platforms, the kernel has to be booted in
>> hypervisor mode. Because of this relatively recent
>> > requirement (due to the introduction of the virtualization extensions)=
,
>> up until now all booting methods would boot the
>> > kernel in the standard Supervisor mode.
>> >
>> > For the ARM Chromebook the default boot procedure doesn't allow us to
>> boot in hypervisor mode. Although the laptop's boot
>> > mechanism is based on the frequently used u-boot, the binary is locate=
d
>> in RO memory. Fortunately, a chained u-boot
>> > mechanism can be used (i.e. starting another u-boot after the
>> original). We can then enter hypervisor mode from our
>> > custom iteration of u-boot and subsequently load our kernel and
>> userspace.
>> >
>> > So,the first u-boot is the u-boot provided by virtual open
>> systems,that's able to chainload the "u-boot binary located in
>> > RO memory" , that does not boot Chrome OS in hypervisor mode. We don't
>> need it if we want to boot Linux with kvm or xen
>> > enabled.
>> >
>> >
>> > On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki <
>> stanislav.silnicki@mailgate.us> wrote:
>> >       I'm not an expert in the topic, I only know, that ARM has divide=
d
>> hardware into two worlds - Secure and
>> >       Not-So, strictly limiting any software, running in non-secure
>> world with access to functions and
>> >       resources.
>> https://developer.arm.com/documentation/den0013/d/Security/TrustZone-har=
dware-architecture?lang=3Den
>> <https://developerarm.com/documentation/den0013/d/Security/TrustZone-har=
dware-architecture?lang=3Den>
>> >
>> > I'm not sure, that I'm getting you right, as I don't understand what
>> you mean under "the first u-boot".
>> >
>> > As I understand, virtualization (HYP) is running in non-secure world(
>> https://developer.arm.com/documentation/ddi0406/c/System-Level-Architect=
ure/The-System-Level-Programmers--Model/The-Virtualization-Extens
>> > ions), so my guess (only guess!!!), virtualization software has to
>> prepare (configure) HW platform in the way,
>> > that FreeBSD kernel will not lack any resources, required to configure
>> MPU, VA, etc.
>> > So, if you lucky to boot virtualizer, which is aware of target OS, tha=
t
>> maybe you can boot the kernel. Although, I
>> > doubt, that you need to boot 'second' u-boot to boot the kernel - ther=
e
>> is simply ubldr, which you can hook somehow
>> > from virtualizer....
>> >
>> > Stan
>> >
>> >
>> >
>> > Mario Marietto wrote:
>> >
>> >
>> >       ---> As I understand, it makes sure that u-boot keeps in secure
>> mode during boot and passes control to
>> >       ubldr, which boots FreeBSD kernel, in that mode.
>> >
>> > Can you elaborate your sentence more ? I know that the bootloader
>> secure mode is bypassed by the virtual open
>> > systems u-boot. Are you saying that when the control passes to the
>> second u-boot,it will happen in secure
>> > mode,so that the bypass that happened loading the first u-boot,is
>> annulled ? If this is true,maybe can I boot
>> > FreeBSD using the virtual-open-system custom u-boot ? Is this
>> compatible with FreeBSD ? Where can I find the
>> > u-boot.bin that the xen developer talked about ? thanks bro'.
>> >
>> >
>> >
>> > On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki <
>> stanislav.silnicki@mailgate.us> wrote:
>> >       Hi Mario,
>> >
>> > U-Boot  beast is hiding in this den:
>> https://source.denx.de/u-boot/u-boot.git
>> > I took a brief look at your post and it seems to me, that
>> option CONFIG_CMO_BY_VA_ONLY is irrelevant to
>> > your target armv7 32 bit
>> > platform:
>> https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/cpu/armv8/Kc=
onfig?ref_type=3Dheads#L3
>> >
>> > As for compiling the u-boot, it is a doable task, given that you
>> understand what you are doing. There
>> > are no specific options in u-boot devoted to FreeBSD. It is a boot
>> loader, whose mission to make basic
>> > hardware initialization, read you kernel file from some media into RAM
>> and then pass it control.
>> >
>> > Basically, you can grab some defconfig, prepared for any other
>> Exynos5250 based board  (say, this one:
>> >
>> https://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defco=
nfig?ref_type=3Dheads)
>> and adopt
>> > it somehow.
>> >
>> > As per my experience, you have to respect these two options, compiling
>> u-boot for
>> > FreeBSD:
>> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-maste=
r/files/FreeBSD_Fragment
>> >
>> > As I understand, it makes sure, that u-boot keeps in secure mode durin=
g
>> boot and passes control to
>> > ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot
>> of surprises you may realize.
>> >
>> > Hope, this will help to progress you tasks
>> > Stan
>> >
>> > Mario Marietto wrote:
>> >
>> >
>> >       Hello.
>> >
>> >       I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM
>> Chromebook. Basically there are
>> >       two ways to accomplish this task :
>> >
>> >       1) to write a patch that allows the FreeBSD kernel to boot as a
>> zImage file. This could be
>> >       accomplished applying this patch to a specific file that's on th=
e
>> source code of FreeBSD :
>> >
>> >
>> >
>> https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98cc1391472717035=
f986c979edef0c9
>> >
>> >
>> >       This patch was written by Julien Grall a lot of time ago and now
>> it does not work anymore.
>> >       This is the reason :
>> >
>> >
>> >             It appears FreeBSD-CURRENT removed the last step convertin=
g
>> the kernel file to
>> >             kernel.bin. The patch can be readily rebased, but without
>> kernel.bin that
>> >             doesn't do too much
>> >
>> >
>> >
>> > So,without a rebase of that patch the first option is not applicable.
>> And I'm not able to fix it.
>> >
>> > 2) booting FreeBSD using U-Boot,as explained to me by a xen developer =
:
>> >
>> >
>> >       I was trying to explain why and how Julien's patch works so that
>> you could be the one
>> >       to re-do something similar or fix the patch on the FreeBSD kerne=
l
>> that you are
>> >       working with. I am happy to help review and write patches but I
>> don't work with the
>> >       FreeBSD kernel so I wouldn't be able to help you quickly.
>> However, I might have a
>> >       suggestion. Do you know if FreeBSD can be booted by U-Boot ?
>> Because U-Boot
>> >       definitely boots as Xen on ARM guest firmware/bootloader. You
>> should be able to build
>> >       U-Boot and use the U-Boot binary as Xen guest kernel, then U-Boo=
t
>> could load FreeBSD
>> >       from disk or network and start it. For instance as domU config
>> file:
>> >
>> >       kernel=3D"/home/petalinux/u-boot.bin"
>> >       disk =3D [ '/home/petalinux/test.img,raw,xvda' ]
>> >
>> >       I know it is important to build u-boot with the following config
>> to make it work on
>> >       Xen.
>> >
>> >       CONFIG_CMO_BY_VA_ONLY=3Dy
>> >
>> >
>> >
>> > This option seems more doable to me according to my knowledge. But I
>> need to understand how to do
>> > it.
>> >
>> > Well,let's say that on the ARM Chromebook I'm forced to use and instal=
l
>> a customized version of
>> > u-boot,created by virtual open systems,because it is the only one that
>> allows bypassing its
>> > bootloader protection. You can find more information here :
>> >
>> >
>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/=
?vos=3Dtech
>> >
>> > This is the relevant section to read :
>> >
>> >
>> >       Bootloader :
>> >
>> >       If you wish to skip this chapter you can download a pre-compiled
>> binary of the
>> >       bootloader:
>> >
>> >
>> >       $ wget
>> >
>> http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_=
u-boot-snow.kpart
>> >
>> >
>> >       To be able to run KVM on ARM platforms, the kernel has to be
>> booted in hypervisor
>> >       mode. Because of this relatively recent requirement (due to the
>> introduction of the
>> >       virtualization extensions), up until now all booting methods
>> would boot the kernel in
>> >       the standard Supervisor mode. For the ARM Chromebook the default
>> boot procedure
>> >       doesn't allow us to boot in hypervisor mode. Although the
>> laptop's boot mechanism is
>> >       based on the frequently used u-boot, the binary is located in RO
>> memory. Fortunately,
>> >       a chained u-boot mechanism can be used (i.e. starting another
>> u-boot after the
>> >       original). We can then enter hypervisor mode from our custom
>> iteration of u-boot and
>> >       subsequently load our kernel and userspace.
>> >
>> >       Checkout the needed u-boot code :
>> >
>> >
>> >       $ git clone git://github.com/virtualopensystems/u-boot.git$ cd
>> u-boot$
>> >       ./scripts/build.sh
>> >
>> >
>> >       If successful, a message about how to copy the bootloader on the
>> USB flash disk or SD
>> >       card will appear. We will use it later when preparing the boot
>> medium to start our
>> >       system. If you have followed the Setting up the boot medium
>> chapter and you have a
>> >       prepared boot device, then you can update u-boot by running :
>> >
>> >
>> >       $ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev/sdX1
>> >
>> >
>> >
>> > so,the needed u-boot that we must use should be installed on the first
>> partition of the sd card.
>> >
>> > There is another relevant section to read :
>> >
>> >
>> >       Setting up the boot medium
>> >
>> >       Now it is time to copy all the relevant files that we created in
>> the previous
>> >       chapters,and use them to boot Chromebook with a different kernel
>> and OS. In all these
>> >       examples the device /dev/sdX is used. Take extra care to change
>> the examples to the
>> >       device that you have attached. Insert the boot medium on your
>> workstation and
>> >       carefully execute the following step. First we need to properly
>> format the boot
>> >       medium.
>> >
>> >       In the uboot source directory :
>> >
>> >
>> >       $ sudo ./scripts/sdcard.sh /dev/sdX
>> >
>> >
>> >       This will erase all data and create 4 partitions in the medium,
>> along with copying
>> >       the u-boot binary to the first partition:
>> >
>> >
>> >       Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
>> >       Partition 2 =3D not used
>> >       Partition 3 =3D EXT2 partition for u-boot files (uImage and
>> exynos5250-snow.dtb)
>> >       Partition 4 =3D EXT4 partition for userspace files
>> >
>> >
>> >       With u-boot being copied, next is the kernel image and DTB file.
>> From the kernel
>> >       source execute :
>> >
>> >
>> >       $ mkdir ../mnt/
>> >       $ sudo mount /dev/sdX3 ../mnt/
>> >       $ sudo cp arch/arm/boot/uImage ../mnt/
>> >       $ sudo cp arch/arm/boot/dts/exynos5250-snow.dtb ../mnt/
>> >       $ sudo umount /dev/sdX3
>> >
>> >
>> >       Finally, we have to copy the Ubuntu userspace filesystem that we
>> created earlier:
>> >
>> >
>> >       $ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./precise/* mnt/$ sudo
>> umount /dev/sdX4
>> >
>> >
>> >
>> > Now,my idea is to chainload the already chain loaded u-boot created by
>> V.O.S to the new u-boot
>> > that we need for booting FreeBSD and that can be installed in the
>> partition n.2,as shown in this
>> > scheme,because it is not used :
>> >
>> >
>> > Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
>> > Partition 2 =3D not used (maybe we can install the u-boot for arm 32
>> bit,compatible with FreeBSD on
>> > this partition)
>> > Partition 3 =3D EXT2 partition for u-boot files (uImage and
>> exynos5250-snow.dtb)
>> > Partition 4 =3D EXT4 partition for userspace files
>> >
>> >
>> > Take in consideration that default boot string is hardcoded here,in th=
e
>> snow.h file of the custom
>> > u-boot created by VOS :
>> >
>> >
>> >
>> https://github.com/virtualopensyste...18a39b6c177dff58a/include/configs/=
snow.h#L101
>> >
>> >
>> > and it needs to be recompiled because it should point to the partition
>> n.2,where I will install
>> > the u-boot files as explained here :
>> >
>> >
>> > https://wiki.freebsd.org/arm/Chromebook
>> >
>> >
>> > I have some questions to ask before I start working on this.
>> >
>> > 1) The xen developer said :
>> >
>> >
>> >       You should be able to build U-Boot and use the U-Boot binary as
>> Xen guest kernel...
>> >
>> >
>> >
>> > where is the u-boot binary,according to this document ?
>> >
>> > https://wiki.freebsd.org/arm/Chromebook
>> >
>> > I don't see it.
>> >
>> >
>> > 2) where is the source code of the file that I can get here :
>> >
>> >
>> http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/n=
v_uboot-snow-simplefb.kpart.bz2
>> >
>> > I need the source code if I want to recompile u-boot so that it can
>> point to the partition 4.
>> >
>> > Maybe it can be found on this link :
>> >
>> > http://linux-exynos.org/dist/chromebook/nv_uboot/
>> >
>> > but it can't be opened....
>> >
>> >
>> > 3) in this specific scenario the source code of u-boot should run on
>> arm 32 bit,not on arm
>> > 64,because I have the Samsung Chromebook "SNOW" model XE303C12,that's
>> powered by a Samsung Exynos
>> > 5250 (ARMv7 32 bit Cortex A15) Soc.
>> >
>> >
>> > 4) I'm not sure if I can chainload the customized u-boot created by
>> V.O.S that should be
>> > installed on the first partition with the u-boot tailored for booting
>> FreeBSD that should be
>> > installed on the partition 2....
>> >
>> >
>> > 5) the xen developer said that u-boot should be compiled enabling this
>> option :
>> >
>> >
>> > Code:
>> >
>> > CONFIG_CMO_BY_VA_ONLY=3Dy
>> >
>> >
>> > Well,can you provide some good source that can help me to understand
>> how I can recompile u-boot
>> > for FreeBSD ? thanks.
>> >
>> > --
>> > Mario.
>> >
>> >
>> >
>> > --
>> > Mario.
>> >
>> >
>> >
>> > --
>> > Mario.
>> >
>> >
>> >
>> > --
>> > Mario.
>> >
>> >
>> >
>> > --
>> > Mario.
>> >
>> >
>> >
>> > --
>> > Mario.
>> >
>> >
>
>
>
> --
> Mario.
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><div>I&#39;d think you&#39;d need the rig=
ht virtualization loader. I&#39;m not entirely sure the u-boot.bin you&#39;=
ve been creating is for a dom-u..=C2=A0</div><div>If I misunderstood, then =
the below isn&#39;t good advice. Chain booting the u-boot, the first u-boot=
 initializes things so you want</div><div>to start with stage after the SPL=
. But the different error messages suggest that it&#39;s trying to reboot w=
ith kexec, which</div><div>isn&#39;t supported on armv7 at the moment.<br><=
/div><div><br></div><div>If you could boot in kvm, I think that the followi=
ng would work....=C2=A0 Though I&#39;m not entirely sure how to</div><div>s=
pecify the two .fd files in your setup. The use of qemu is to have an easy =
env to debug things... I don&#39;t</div><div>have a chromebook to try...<br=
></div><div><br></div><div>My first instinct would be to try qemu on x86 (t=
his is the first step of many to get to your destination).</div><div><br></=
div><div>If you could boot the GENERIC_SD image that we produce using qemu =
+ edk2-arm-code.fd that would</div><div>be a huge first step. This will giv=
e you the boot loader, I believe, to boot in the VM that you need better</d=
iv><div>than going via the u-boot route. Since you are booting in a virtual=
ized environment, I think it wouldn&#39;t</div><div>matter which one :).</d=
iv><div><br></div><div>So, I did the following to boot the virtualized armv=
7 FreeBSD environment, following a post on the forums I found and knew to h=
ave the right recipe:</div><div><a href=3D"https://forums.freebsd.org/threa=
ds/run-boot-freebsd-arm-32bit-image-in-qemu.80765/">https://forums.freebsd.=
org/threads/run-boot-freebsd-arm-32bit-image-in-qemu.80765/</a></div><div><=
br></div><div>1. pkg install qemu</div><div>2. mkdir qemu-armv7-env</div><d=
iv>3. cd qemu-armv7-env</div><div>4. fetch <a href=3D"https://download.free=
bsd.org/releases/arm/armv7/ISO-IMAGES/14.0/FreeBSD-14.0-RELEASE-arm-armv7-G=
ENERICSD.img.xz">https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES=
/14.0/FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz</a></div><div>5. xz -=
d -T 0 FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz</div><div>6. dd if=
=3D/dev/zero of=3Dpflash0.img bs=3D1m count=3D64<br>7. dd if=3D/dev/zero of=
=3Dpflash1.img bs=3D1m count=3D64<br>8. dd if=3D/usr/local/share/qemu/edk2-=
arm-code.fd of=3Dpflash0.img conv=3Dnotrunc<br>9. dd if=3D/usr/local/share/=
qemu/edk2-arm-vars.fd of=3Dpflash1.img conv=3Dnotrunc</div><div>10. cat &gt=
; start-freebsd-arm.sh</div><div>#!/bin/sh<br>qemu-system-arm \<br>=C2=A0 -=
M virt \<br>=C2=A0 -m 1024 \<br>=C2=A0 -drive file=3Dpflash0.img,format=3Dr=
aw,if=3Dpflash,readonly=3Don \<br>=C2=A0 -drive file=3Dpflash1.img,format=
=3Draw,if=3Dpflash \<br>=C2=A0 -drive file=3D$1.img,if=3Dvirtio,cache=3Dwri=
tethrough \<br>=C2=A0 -nographic \<br>=C2=A0 -serial mon:stdio</div><div>^D=
</div><div>11. chmod +x start-freebsd-arm.sh</div><div>12. ./start-freebsd-=
arm.sh  FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD</div><div><br></div><div>B=
ut I hit a snag with this on qemu 8.1.2 and 8.1.3 with both 13.2 and 14.0:<=
/div><div><br></div><div>Starting devd.<br>Starting dhclient.<br>DHCPDISCOV=
ER on vtnet0 to 255.255.255.255 port 67 interval 7<br>Fatal kernel mode dat=
a abort: &#39;Alignment Fault&#39; on read<br>trapframe: 0xc4b36a60<br>FSR=
=3D00000001, FAR=3Ddd96701a, spsr=3D20000013<br>r0 =3D00000000, r1 =3D00000=
001, r2 =3D00000001, r3 =3Dc4b36b4c<br>r4 =3D00000014, r5 =3Dd6618800, r6 =
=3Ddd96702e, r7 =3D0000022c<br>r8 =3D00000000, r9 =3D0000022c, r10=3Ddd9670=
1a, r11=3Dc4b36b90<br>r12=3D4300ffff, ssp=3Dc4b36af0, slr=3Dc04a9728, pc =
=3Dc04a9750<br><br>panic: Fatal abort<br>cpuid =3D 0<br>time =3D 1680843057=
<br>KDB: stack backtrace:<br>#0 0xc035786c at kdb_backtrace+0x48<br>#1 0xc0=
2fdd20 at vpanic+0x140<br>#2 0xc02fdbe0 at vpanic+0<br>#3 0xc06304ac at abo=
rt_align+0<br>#4 0xc063052c at abort_align+0x80<br>#5 0xc063017c at abort_h=
andler+0x480<br>#6 0xc060f480 at exception_exit+0<br>#7 0xc04a9750 at udp_i=
nput+0x288<br>#8 0xc0473f54 at ip_input+0x1e0<br>#9 0xc04447c0 at netisr_di=
spatch_src+0xf8<br>#10 0xc043bf2c at ether_demux+0x1a4<br>#11 0xc043d5e4 at=
 ether_nh_input+0x480<br>#12 0xc04447c0 at netisr_dispatch_src+0xf8<br>#13 =
0xc043c404 at ether_input+0x50<br>#14 0xc01c0838 at vtnet_rx_vq_process+0x8=
80<br>#15 0xc01b70d0 at vtpci_intx_intr+0xac<br>#16 0xc02b87f0 at ithread_l=
oop+0x2ec<br>#17 0xc02b465c at fork_exit+0xc0<br>Uptime: 19s</div><div><br>=
</div><div>I don&#39;t know if this is a problem with qemu or FreeBSD&#39;s=
 kernel...</div><div><br></div><div>Warner<br></div></div><br><div class=3D=
"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Dec 19, 2023 at=
 3:25=E2=80=AFPM Mario Marietto &lt;<a href=3D"mailto:marietto2008@gmail.co=
m" target=3D"_blank">marietto2008@gmail.com</a>&gt; wrote:<br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>I&#39;ve a=
sked some help on the channel #arm on Reddit and someone replied :</div><di=
v><br></div><div><a href=3D"https://www.reddit.com/r/arm/comments/18mcir8/i=
_cant_boot_freebsd_for_arm32_bit_as_domu_with/" target=3D"_blank">https://w=
ww.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_arm32_bit_as_d=
omu_with/</a></div><div><br></div><div>Maybe his answer can be useful to un=
derstand why it does not work. <br></div></div><br><div class=3D"gmail_quot=
e"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Dec 19, 2023 at 8:33=E2=80=
=AFPM Stefano Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org" targ=
et=3D"_blank">sstabellini@kernel.org</a>&gt; wrote:<br></div><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">+Michal<br>
<br>
Hi Mario,<br>
<br>
I am not sure about booting FreeBSD, but I am certain that u-boot works<br>
fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config<br>
file:<br>
<br>
name=3D&quot;test&quot;<br>
kernel=3D&quot;u-boot.bin&quot;<br>
extra =3D &quot;console=3Dhvc0&quot;<br>
memory=3D256<br>
vcpus=3D1<br>
disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
<br>
I don&#39;t know for sure if you can boot FreeBSD but you should definitely=
<br>
be able to see the u-boot command line prompt. The fact that you are<br>
getting this message:<br>
<br>
xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: I=
nvalid kernel<br>
<br>
Means that something is not right in the u-boot configuration or u-boot<br>
build. Michal and Artem (CCed) might know more. From what I recall,<br>
there was nothing special required to get u-boot.bin to boot as domU<br>
kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.<br>
<br>
Cheers,<br>
<br>
Stefano<br>
<br>
<br>
On Tue, 19 Dec 2023, Mario Marietto wrote:<br>
&gt; ....I see that some other interesting files have been produced by u-bo=
ot when I have compiled it :<br>
&gt; <br>
&gt; u-boot<br>
&gt; u-boot.lds<br>
&gt; u-boot.bin<br>
&gt; u-boot.map<br>
&gt; u-boot-nodtb.bin<br>
&gt; u-boot.dtb<br>
&gt; u-boot.srec<br>
&gt; u-boot-dtb.bin<br>
&gt; u-boot.sym<br>
&gt; <br>
&gt; So,maybe I should use a different u-boot* file for booting FreeBSD ?<b=
r>
&gt; <br>
&gt; <br>
&gt; On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto &lt;<a href=3D"=
mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a>=
&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello to everyone.<br>
&gt; <br>
&gt; I have compiled the needed u-boot.bin from scratch using this procedur=
e :<br>
&gt; <br>
&gt; # git clone <a href=3D"https://github.com/u-boot/u-boot.git" rel=3D"no=
referrer" target=3D"_blank">https://github.com/u-boot/u-boot.git</a><br>
&gt; # cd u-boot<br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig =
: this line generates the file .config<br>
&gt; # nano .config and I&#39;ve added these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; the uboot-bin file is generated with this command :<br>
&gt; <br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make<br>
&gt; <br>
&gt; At this point,I took a look inside the .config file and I saw that the=
 parameter &quot;CONFIG_ARMV7_NONSEC=3Dn&quot; has been removed. So,for<br>
&gt; some reason,it is not accepted and this could be a problem....<br>
&gt; <br>
&gt; These are the xen config files that I&#39;ve used :<br>
&gt; <br>
&gt; nano freebsd.cfg<br>
&gt; <br>
&gt; name=3D&quot;test&quot;<br>
&gt; kernel=3D&quot;u-boot.bin&quot;<br>
&gt; extra =3D &quot;console=3Dhvc0&quot;<br>
&gt; memory=3D256<br>
&gt; vcpus=3D1<br>
&gt; disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
&gt; <br>
&gt; nano start-freebsd<br>
&gt; <br>
&gt; xl create freebsd.cfg<br>
&gt; xl console freebsd<br>
&gt; <br>
&gt; This is what happens when I launch the vm :<br>
&gt; <br>
&gt; # ./start-freebsd<br>
&gt; =C2=A0<br>
&gt; Parsing config from freebsd.cfg<br>
&gt; xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader fou=
nd: Invalid kernel<br>
&gt; libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fai=
led<br>
&gt; libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:can=
not (re-)build domain: -3<br>
&gt; libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-e=
xistent domain<br>
&gt; libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Un=
able to destroy guest<br>
&gt; libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruct=
ion of domain failed<br>
&gt; freebsd is an invalid domain identifier (rc=3D-6)<br>
&gt; <br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0So,ok,I should have said &quot;the second u-=
boot&quot; ; since the first u-boot binary is the &quot;u-boot binary locat=
ed in the RO<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0memory&quot; of the Chromebook&quot;. Sorry =
for the confusion.<br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; There are no specific options in u-b=
oot devoted to FreeBSD<br>
&gt; <br>
&gt; This is an important factor. So,what about if,instead of compiling a n=
ew version of u-boot on the partition 2,I will<br>
&gt; recompile the u-boot customized version created by the virtual open sy=
stem in 2014,that should be installed on the first<br>
&gt; partition ? It could work if there are no differences between the u-bo=
ot that should boot Linux and the u-boot that<br>
&gt; should boot FreeBSD.<br>
&gt; <br>
&gt; Can you give a look at the u-boot source code created by virtual open =
systems ? You can find it on my google drive :<br>
&gt; <br>
&gt; <a href=3D"https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzz=
O09BRm/view?usp=3Dsharing" rel=3D"noreferrer" target=3D"_blank">https://dri=
ve.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?usp=3Dsharing</=
a><br>
&gt; <br>
&gt; I need to understand if I can recompile it without problem so that it =
can satisfy my needs (the ability of the file<br>
&gt; u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano S=
tabellini,the xen developer that suggested to me<br>
&gt; what I could do to have FreeBSD virtualized under Xen on my Arm Chrome=
book) ; otherwise the risk is to find later<br>
&gt; problems that will make me troubles and that I will not able to fix.<b=
r>
&gt; <br>
&gt; I gave a look at the virtual open system u-boot and I didn&#39;t see a=
ny arndale_defconfig inside. So,If I have understood<br>
&gt; correctly,I should put that file inside the root of the u-boot source =
code,let&#39;s say here :<br>
&gt; <br>
&gt; marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls<b=
r>
&gt; =C2=A0<br>
&gt; .checkpatch.conf =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0README =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0doc =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
net<br>
&gt; .git =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0api =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0drivers =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0onenand_ipl<br>
&gt; .gitignore =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0arch =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0dts =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0post<br>
&gt; COPYING =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0board =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
examples =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://rules.mk" rel=3D"noreferrer" targ=
et=3D"_blank">rules.mk</a><br>
&gt; CREDITS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0boards.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0fs =C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0scripts<br>
&gt; MAINTAINERS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0common =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0include =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0snapshot.commit<br>
&gt; MAKEALL =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://config.mk" rel=3D"nor=
eferrer" target=3D"_blank">config.mk</a> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0lib =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0spl<br>
&gt; 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=A0cros =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
mkconfig =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0test<br>
&gt; PRESUBMIT.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0disk =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0nand_spl =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
tools<br>
&gt; <br>
&gt; and I should do : make and make install ? and the file I need,u-boot.b=
in will be generated ?=C2=A0<br>
&gt; <br>
&gt; I didn&#39;t find any pre made configuration file inside :<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;exynos*&quot;=C2=A0<br>
&gt; <br>
&gt; ./include/exynos-fb.h<br>
&gt; ./include/configs/exynos5-common.h<br>
&gt; ./doc/device-tree-bindings/spi/exynos-spi.txt<br>
&gt; ./doc/device-tree-bindings/usb/exynos-usb.txt<br>
&gt; ./drivers/power/exynos-tmu.c<br>
&gt; ./drivers/power/exynos-cpufreq.c<br>
&gt; ./drivers/video/exynos-fb.c<br>
&gt; ./drivers/spi/exynos_spi.c<br>
&gt; ./board/samsung/dts/exynos5250-spring.dts<br>
&gt; ./board/samsung/dts/exynos5250-smdk5250.dts<br>
&gt; ./board/samsung/dts/exynos5250-snow.dts<br>
&gt; ./board/samsung/dts/exynos5250-daisy.dts<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h<br>
&gt; ./arch/arm/dts/exynos5250.dtsi<br>
&gt; ./arch/arm/dts/exynos-periph-id.dtsi<br>
&gt; ./arch/arm/cpu/armv7/exynos5/exynos_cache.c=C2=A0<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;arndale*&quot;<br>
&gt; <br>
&gt; For sure I can&#39;t use a newer version of u-boot because otherwise t=
he patches needed to bypass the bootloader protections<br>
&gt; of the Arm Chromebook (such as a lot of different patches needed to bo=
ot correctly Linux) will be broken ; anyway,since<br>
&gt; it works,I don&#39;t need to use an updated version of u-boot.<br>
&gt; <br>
&gt; ----&gt; As per my experience, you have to respect these two options, =
compiling u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; It says that I should use these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; These are the parameters used to configure a Linux kernel. I don&#39;t=
 understand what&#39;s the relation between the compilation<br>
&gt; of a linux kernel and u-boot. In the past I tried to recompile u-boot,=
but I didn&#39;t have the need to set up those<br>
&gt; parameters,so I don&#39;t know how to do it (but I know how to recompi=
le a Linux kernel).<br>
&gt; <br>
&gt; ---&gt; I&#39;m not sure that I&#39;m getting you right, as I don&#39;=
t understand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; <br>
&gt; I&#39;m talking about first u-boot because the whole procedure to boot=
 Linux on the ARM Chromebook,that&#39;s explained here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/" rel=3D"noreferrer" target=3D"_blank">http://www.virtualopens=
ystems.com/en/solutions/guides/kvm-on-chromebook/</a><br>
&gt; <br>
&gt; <br>
&gt; at some point they say :<br>
&gt; <br>
&gt; <br>
&gt; To be able to run KVM on ARM platforms, the kernel has to be booted in=
 hypervisor mode. Because of this relatively recent<br>
&gt; requirement (due to the introduction of the virtualization extensions)=
, up until now all booting methods would boot the<br>
&gt; kernel in the standard Supervisor mode.<br>
&gt; <br>
&gt; For the ARM Chromebook the default boot procedure doesn&#39;t allow us=
 to boot in hypervisor mode. Although the laptop&#39;s boot<br>
&gt; mechanism is based on the frequently used u-boot, the binary is locate=
d in RO memory. Fortunately, a chained u-boot<br>
&gt; mechanism can be used (i.e. starting another u-boot after the original=
). We can then enter hypervisor mode from our<br>
&gt; custom iteration of u-boot and subsequently load our kernel and usersp=
ace.<br>
&gt; <br>
&gt; So,the first u-boot is the u-boot provided by virtual open systems,tha=
t&#39;s able to chainload the &quot;u-boot binary located in<br>
&gt; RO memory&quot; , that does not boot Chrome OS in hypervisor mode. We =
don&#39;t need it if we want to boot Linux with kvm or xen<br>
&gt; enabled.<br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki &lt;<a href=
=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.siln=
icki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m not an expert in the topic, I only k=
now, that ARM has divided hardware into two worlds - Secure and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Not-So, strictly limiting any software, runn=
ing in non-secure world with access to functions and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0resources.=C2=A0<a href=3D"https://developer=
arm.com/documentation/den0013/d/Security/TrustZone-hardware-architecture?la=
ng=3Den" rel=3D"noreferrer" target=3D"_blank">https://developer.arm.com/doc=
umentation/den0013/d/Security/TrustZone-hardware-architecture?lang=3Den</a>=
<br>
&gt; <br>
&gt; I&#39;m not sure, that I&#39;m getting you right, as I don&#39;t under=
stand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; As I understand, virtualization (HYP) is running in non-secure world(<=
a href=3D"https://developer.arm.com/documentation/ddi0406/c/System-Level-Ar=
chitecture/The-System-Level-Programmers--Model/The-Virtualization-Extens" r=
el=3D"noreferrer" target=3D"_blank">https://developer.arm.com/documentation=
/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/Th=
e-Virtualization-Extens</a><br>
&gt; ions), so my guess (only guess!!!), virtualization software has to pre=
pare (configure) HW platform in the way,<br>
&gt; that FreeBSD kernel will not lack any resources, required to configure=
 MPU, VA, etc.<br>
&gt; So, if you lucky to boot virtualizer, which is aware of target OS, tha=
t maybe you can boot the kernel. Although, I<br>
&gt; doubt, that you need to boot &#39;second&#39; u-boot to boot the kerne=
l - there is simply ubldr, which you can hook somehow<br>
&gt; from virtualizer....<br>
&gt; <br>
&gt; Stan<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; As I understand, it makes sure that =
u-boot keeps in secure mode during boot and passes control to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ubldr, which boots FreeBSD kernel, in that m=
ode.<br>
&gt; <br>
&gt; Can you elaborate your sentence more ? I know that the bootloader secu=
re mode is bypassed by the virtual open<br>
&gt; systems u-boot. Are you saying that when the control passes to the sec=
ond u-boot,it will happen in secure<br>
&gt; mode,so that the bypass that happened loading the first u-boot,is annu=
lled ? If this is true,maybe can I boot<br>
&gt; FreeBSD using the virtual-open-system custom u-boot ? Is this compatib=
le with FreeBSD ? Where can I find the<br>
&gt; u-boot.bin that the xen developer talked about ? thanks bro&#39;.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki &lt;<a hre=
f=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.sil=
nicki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hi Mario,<br>
&gt; <br>
&gt; U-Boot=C2=A0 beast is hiding in this den: <a href=3D"https://source.de=
nx.de/u-boot/u-boot.git" rel=3D"noreferrer" target=3D"_blank">https://sourc=
e.denx.de/u-boot/u-boot.git</a><br>
&gt; I took a brief look at your post and it seems to me, that option=C2=A0=
CONFIG_CMO_BY_VA_ONLY=C2=A0is irrelevant to<br>
&gt; your target armv7 32 bit<br>
&gt; platform:=C2=A0<a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/=
master/arch/arm/cpu/armv8/Kconfig?ref_type=3Dheads#L3" rel=3D"noreferrer" t=
arget=3D"_blank">https://source.denx.de/u-boot/u-boot/-/blob/master/arch/ar=
m/cpu/armv8/Kconfig?ref_type=3Dheads#L3</a><br>
&gt; <br>
&gt; As for compiling the u-boot, it is a doable task, given that you under=
stand what you are doing. There<br>
&gt; are no specific options in u-boot devoted to FreeBSD. It is a boot loa=
der, whose mission to make basic<br>
&gt; hardware initialization, read you kernel file from some media into RAM=
 and then pass it control.<br>
&gt; <br>
&gt; Basically, you can grab some defconfig, prepared for any other Exynos5=
250 based board=C2=A0 (say, this one:<br>
&gt; <a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/master/configs/=
arndale_defconfig?ref_type=3Dheads" rel=3D"noreferrer" target=3D"_blank">ht=
tps://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defconfig?=
ref_type=3Dheads</a>) and adopt<br>
&gt; it somehow.<br>
&gt; <br>
&gt; As per my experience, you have to respect these two options, compiling=
 u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; As I understand, it makes sure, that u-boot keeps in secure mode durin=
g boot and passes control to<br>
&gt; ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot=
 of surprises you may realize.<br>
&gt; <br>
&gt; Hope, this will help to progress you tasks<br>
&gt; Stan<br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m trying to boot FreeBSD for arm32 bit=
 as DomU on my ARM Chromebook. Basically there are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0two ways to accomplish this task :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A01) to write a patch that allows the FreeBSD =
kernel to boot as a zImage file. This could be<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0accomplished applying this patch to a specif=
ic file that&#39;s on the source code of FreeBSD :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://xenbits.xen.org/gitweb/?p=
=3Dp...8;hb=3D0782e25d98cc1391472717035f986c979edef0c9" rel=3D"noreferrer" =
target=3D"_blank">https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98=
cc1391472717035f986c979edef0c9</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This patch was written by Julien Grall a lot=
 of time ago and now it does not work anymore.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This is the reason :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0It appears FreeBSD-CURR=
ENT removed the last step converting the kernel file to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0kernel.bin. The patch c=
an be readily rebased, but without kernel.bin that<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t do too much=
<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; So,without a rebase of that patch the first option is not applicable. =
And I&#39;m not able to fix it.<br>
&gt; <br>
&gt; 2) booting FreeBSD using U-Boot,as explained to me by a xen developer =
:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I was trying to explain why and how Julien&#=
39;s patch works so that you could be the one<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to re-do something similar or fix the patch =
on the FreeBSD kernel that you are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0working with. I am happy to help review and =
write patches but I don&#39;t work with the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0FreeBSD kernel so I wouldn&#39;t be able to =
help you quickly. However, I might have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0suggestion. Do you know if FreeBSD can be bo=
oted by U-Boot ? Because U-Boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0definitely boots as Xen on ARM guest firmwar=
e/bootloader. You should be able to build<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0U-Boot and use the U-Boot binary as Xen gues=
t kernel, then U-Boot could load FreeBSD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0from disk or network and start it. For insta=
nce as domU config file:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0kernel=3D&quot;/home/petalinux/u-boot.bin&qu=
ot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0disk =3D [ &#39;/home/petalinux/test.img,raw=
,xvda&#39; ]<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I know it is important to build u-boot with =
the following config to make it work on<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Xen.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; This option seems more doable to me according to my knowledge. But I n=
eed to understand how to do<br>
&gt; it.<br>
&gt; <br>
&gt; Well,let&#39;s say that on the ARM Chromebook I&#39;m forced to use an=
d install a customized version of<br>
&gt; u-boot,created by virtual open systems,because it is the only one that=
 allows bypassing its<br>
&gt; bootloader protection. You can find more information here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/?vos=3Dtech" rel=3D"noreferrer" target=3D"_blank">http://www.v=
irtualopensystems.com/en/solutions/guides/kvm-on-chromebook/?vos=3Dtech</a>=
<br>
&gt; <br>
&gt; This is the relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Bootloader :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If you wish to skip this chapter you can dow=
nload a pre-compiled binary of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0bootloader:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ wget<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"http://www.virtualopensystems.com=
/downloads/guides/kvm_on_chromebook/nv_u-boot-snow.kpart" rel=3D"noreferrer=
" target=3D"_blank">http://www.virtualopensystems.com/downloads/guides/kvm_=
on_chromebook/nv_u-boot-snow.kpart</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0To be able to run KVM on ARM platforms, the =
kernel has to be booted in hypervisor<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0mode. Because of this relatively recent requ=
irement (due to the introduction of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0virtualization extensions), up until now all=
 booting methods would boot the kernel in<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the standard Supervisor mode. For the ARM Ch=
romebook the default boot procedure<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t allow us to boot in hypervisor m=
ode. Although the laptop&#39;s boot mechanism is<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0based on the frequently used u-boot, the bin=
ary is located in RO memory. Fortunately,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0a chained u-boot mechanism can be used (i.e.=
 starting another u-boot after the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0original). We can then enter hypervisor mode=
 from our custom iteration of u-boot and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0subsequently load our kernel and userspace.<=
br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Checkout the needed u-boot code :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ git clone git://<a href=3D"http://github.c=
om/virtualopensystems/u-boot.git$" rel=3D"noreferrer" target=3D"_blank">git=
hub.com/virtualopensystems/u-boot.git$</a> cd u-boot$<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0./scripts/build.sh<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If successful, a message about how to copy t=
he bootloader on the USB flash disk or SD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0card will appear. We will use it later when =
preparing the boot medium to start our<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0system. If you have followed the Setting up =
the boot medium chapter and you have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0prepared boot device, then you can update u-=
boot by running :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev=
/sdX1<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; so,the needed u-boot that we must use should be installed on the first=
 partition of the sd card.<br>
&gt; <br>
&gt; There is another relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Setting up the boot medium<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Now it is time to copy all the relevant file=
s that we created in the previous<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0chapters,and use them to boot Chromebook wit=
h a different kernel and OS. In all these<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0examples the device /dev/sdX is used. Take e=
xtra care to change the examples to the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0device that you have attached. Insert the bo=
ot medium on your workstation and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0carefully execute the following step. First =
we need to properly format the boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0medium.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0In the uboot source directory :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo ./scripts/sdcard.sh /dev/sdX<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This will erase all data and create 4 partit=
ions in the medium, along with copying<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the u-boot binary to the first partition:<br=
>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 1 =3D ChromeOS signed binary (V.O.=
S chained u-boot)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 2 =3D not used<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 3 =3D EXT2 partition for u-boot fi=
les (uImage and exynos5250-snow.dtb)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 4 =3D EXT4 partition for userspace=
 files<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0With u-boot being copied, next is the kernel=
 image and DTB file. From the kernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0source execute :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ mkdir ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX3 ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/uImage ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/dts/exynos5250-snow.=
dtb ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo umount /dev/sdX3<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Finally, we have to copy the Ubuntu userspac=
e filesystem that we created earlier:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./pr=
ecise/* mnt/$ sudo umount /dev/sdX4<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Now,my idea is to chainload the already chain loaded u-boot created by=
 V.O.S to the new u-boot<br>
&gt; that we need for booting FreeBSD and that can be installed in the part=
ition n.2,as shown in this<br>
&gt; scheme,because it is not used :<br>
&gt; <br>
&gt; <br>
&gt; Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)<br>
&gt; Partition 2 =3D not used (maybe we can install the u-boot for arm 32 b=
it,compatible with FreeBSD on<br>
&gt; this partition)<br>
&gt; Partition 3 =3D EXT2 partition for u-boot files (uImage and exynos5250=
-snow.dtb)<br>
&gt; Partition 4 =3D EXT4 partition for userspace files<br>
&gt; <br>
&gt; <br>
&gt; Take in consideration that default boot string is hardcoded here,in th=
e snow.h file of the custom<br>
&gt; u-boot created by VOS :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://github.com/virtualopensyste...18a39b6c177dff58a/inc=
lude/configs/snow.h#L101" rel=3D"noreferrer" target=3D"_blank">https://gith=
ub.com/virtualopensyste...18a39b6c177dff58a/include/configs/snow.h#L101</a>=
<br>
&gt; <br>
&gt; <br>
&gt; and it needs to be recompiled because it should point to the partition=
 n.2,where I will install<br>
&gt; the u-boot files as explained here :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; <br>
&gt; I have some questions to ask before I start working on this.<br>
&gt; <br>
&gt; 1) The xen developer said :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0You should be able to build U-Boot and use t=
he U-Boot binary as Xen guest kernel...<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; where is the u-boot binary,according to this document ?<br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; I don&#39;t see it.<br>
&gt; <br>
&gt; <br>
&gt; 2) where is the source code of the file that I can get here :<br>
&gt; <br>
&gt; <a href=3D"http://commondatastorage.googleapis.com/chromeos-localmirro=
r/distfiles/nv_uboot-snow-simplefb.kpart.bz2" rel=3D"noreferrer" target=3D"=
_blank">http://commondatastorage.googleapis.com/chromeos-localmirror/distfi=
les/nv_uboot-snow-simplefb.kpart.bz2</a><br>
&gt; <br>
&gt; I need the source code if I want to recompile u-boot so that it can po=
int to the partition 4.<br>
&gt; <br>
&gt; Maybe it can be found on this link :<br>
&gt; <br>
&gt; <a href=3D"http://linux-exynos.org/dist/chromebook/nv_uboot/" rel=3D"n=
oreferrer" target=3D"_blank">http://linux-exynos.org/dist/chromebook/nv_ubo=
ot/</a><br>
&gt; <br>
&gt; but it can&#39;t be opened....<br>
&gt; <br>
&gt; <br>
&gt; 3) in this specific scenario the source code of u-boot should run on a=
rm 32 bit,not on arm<br>
&gt; 64,because I have the Samsung Chromebook &quot;SNOW&quot; model XE303C=
12,that&#39;s powered by a Samsung Exynos<br>
&gt; 5250 (ARMv7 32 bit Cortex A15) Soc.<br>
&gt; <br>
&gt; <br>
&gt; 4) I&#39;m not sure if I can chainload the customized u-boot created b=
y V.O.S that should be<br>
&gt; installed on the first partition with the u-boot tailored for booting =
FreeBSD that should be<br>
&gt; installed on the partition 2....<br>
&gt; <br>
&gt; <br>
&gt; 5) the xen developer said that u-boot should be compiled enabling this=
 option :<br>
&gt; <br>
&gt; <br>
&gt; Code:<br>
&gt; <br>
&gt; CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; Well,can you provide some good source that can help me to understand h=
ow I can recompile u-boot<br>
&gt; for FreeBSD ? thanks.<br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signatur=
e_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<b=
r></div>
</blockquote></div>
</div>

--000000000000937df7060ce9c0b0--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 05:15:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 05:15:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657377.1026169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFov2-0003Gz-8z; Wed, 20 Dec 2023 05:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657377.1026169; Wed, 20 Dec 2023 05: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 1rFov2-0003Gs-68; Wed, 20 Dec 2023 05:14:56 +0000
Received: by outflank-mailman (input) for mailman id 657377;
 Wed, 20 Dec 2023 05:14: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 1rFov0-0003Gi-UZ; Wed, 20 Dec 2023 05: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 1rFov0-0003Ug-L2; Wed, 20 Dec 2023 05: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 1rFov0-0003Lx-Ay; Wed, 20 Dec 2023 05:14:54 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFov0-0006f3-AW; Wed, 20 Dec 2023 05:14: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=5mU0Yhyqb1eqNtBr2x3UZiOutybB3lVhei/AmTmUxY8=; b=nes95RAl3fVrV23SsKvfwHYb11
	8FUvJIblsV/88HzwsoscAHIPwSr4hzb6kTCYw9Ghkf1y3fLTyE0lV3QqKsCVqJ1fbLzVjkfdFBbFF
	OPbhIjmNjbzmf26MImvHZUfj4YrRNWDl/UCzyqKra/VK7MXV3Z6ptJBWKpdi4jeercGQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184185-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184185: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=a83d953dc2741f650cc273f39fe803ae406b0fad
X-Osstest-Versions-That:
    ovmf=8c1e9f9c6fa7b5137003b0cfa6d54a6bada16d8e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 20 Dec 2023 05:14:54 +0000

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

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

Last test of basis   184177  2023-12-19 15:41:43 Z    0 days
Testing same since   184185  2023-12-20 02:43:17 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    
 test-amd64-i386-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
   8c1e9f9c6f..a83d953dc2  a83d953dc2741f650cc273f39fe803ae406b0fad -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 05:22:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 05:22:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657384.1026180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFp1y-00052S-3f; Wed, 20 Dec 2023 05:22:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657384.1026180; Wed, 20 Dec 2023 05:22: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 1rFp1x-00052L-Ut; Wed, 20 Dec 2023 05:22:05 +0000
Received: by outflank-mailman (input) for mailman id 657384;
 Wed, 20 Dec 2023 05:22: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 1rFp1x-00052B-94; Wed, 20 Dec 2023 05:22: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 1rFp1w-0003cu-VF; Wed, 20 Dec 2023 05:22: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 1rFp1w-0003rm-LV; Wed, 20 Dec 2023 05:22:04 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFp1w-00005P-Kw; Wed, 20 Dec 2023 05: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=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=Y/Tm5XMuWr/wfUaVI3QD9RUC5ZYeYvxUoKlwA+kQgjo=; b=hKVEs1We/5GXf68op0vVB+xf0N
	jLarfRnXnN8npClWYxyCRQU/jtoUTcg80m9rE8NSCjKQs+xu4J5zoO80zYN+pGbJqvEi9P33g5ypH
	l/xIWOUYPBHGywUoGKfjDsDH/T55qY2PI0MWHHk959qcwY+EYBhrEyjXyyasS0i1+ZXY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184184-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184184: 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=725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3
X-Osstest-Versions-That:
    xen=1b42304fd1d84adcf7caf8c12c33ec66347b6dcc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 20 Dec 2023 05:22:04 +0000

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

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                  725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3
baseline version:
 xen                  1b42304fd1d84adcf7caf8c12c33ec66347b6dcc

Last test of basis   184178  2023-12-19 19:02:13 Z    0 days
Testing same since   184184  2023-12-20 02:00:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Federico Serafini <federico.serafini@bugseng.com>
  Julien Grall <julien@xen.org>
  Nicola Vetrini <nicola.vetrini@bugseng.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
   1b42304fd1..725acf8e4d  725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 07:16:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 07:16:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657391.1026189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFqoK-0001RV-3D; Wed, 20 Dec 2023 07:16:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657391.1026189; Wed, 20 Dec 2023 07:16: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 1rFqoJ-0001RO-Vs; Wed, 20 Dec 2023 07:16:07 +0000
Received: by outflank-mailman (input) for mailman id 657391;
 Wed, 20 Dec 2023 07:16: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 1rFqoI-0001RE-PG; Wed, 20 Dec 2023 07:16: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 1rFqoI-0005rd-Kr; Wed, 20 Dec 2023 07:16: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 1rFqoI-0007fT-7T; Wed, 20 Dec 2023 07:16:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFqoI-0007cj-74; Wed, 20 Dec 2023 07:16: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=r8LAf24dNZwYabWTDyQKabfZyNp6+D3D8x40OKMdn9M=; b=fG2oasMwesHDvRly8MilPw0ufD
	BEb0EsNU/EQaPq1MKk/vxlEiNGEuWTOOhH2WhjDOjHa+qzvOUFnneOUi+21jNz5jgpS5TDl75uteB
	ewu271aUQlLi1ju2lC/RqH+seZu9NtZSGDAL+ZxwCRsksPGl2zZH2He1xhmiJOzBaPCw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184179-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184179: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-amd64-amd64-freebsd11-amd64:guest-start.2: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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-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-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-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-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1: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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw: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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=55cb5f43689d7a9ea5bf35ef050f12334f197347
X-Osstest-Versions-That:
    linux=2cf4f94d8e8646803f8fb0facf134b0cd7fb691a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 20 Dec 2023 07:16:06 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-freebsd11-amd64 22 guest-start.2   fail pass in 184188-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184170
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184170
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184170
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184170
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184170
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184170
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184170
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184170
 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-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-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-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-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-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-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-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                55cb5f43689d7a9ea5bf35ef050f12334f197347
baseline version:
 linux                2cf4f94d8e8646803f8fb0facf134b0cd7fb691a

Last test of basis   184170  2023-12-18 19:42:38 Z    1 days
Testing same since   184179  2023-12-19 21:12:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Guilherme G. Piccoli <gpiccoli@igalia.com>
  Jiri Kosina <jkosina@suse.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Pavel Kozlov <pavel.kozlov@synopsys.com>
  Ryan McClelland <rymcclel@gmail.com>
  Sam Lantinga <slouken@libsdl.org>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Vineet Gupta <vgupta@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-freebsd11-amd64                             fail    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   2cf4f94d8e86..55cb5f43689d  55cb5f43689d7a9ea5bf35ef050f12334f197347 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 07:23:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 07:23:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657397.1026198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFqvl-00032o-RU; Wed, 20 Dec 2023 07:23:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657397.1026198; Wed, 20 Dec 2023 07: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 1rFqvl-00032h-Os; Wed, 20 Dec 2023 07:23:49 +0000
Received: by outflank-mailman (input) for mailman id 657397;
 Wed, 20 Dec 2023 07:23:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFqvl-00032b-13
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 07:23:49 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5943959-9f08-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 08:23:47 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3365d38dce2so4240491f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Dec 2023 23:23:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g17-20020a5d5551000000b003333521a1cesm6660172wrw.57.2023.12.19.23.23.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Dec 2023 23:23:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5943959-9f08-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703057025; x=1703661825; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=u5XVZet7T2QTrOPi3oToIQti5iFLZ2zJAIFsd1nyI8A=;
        b=DIvMwxWjSYvJqmCwIq6MKnrNIDPftkkfE3k21EeazwibZqCG8TI1uWyYZXlnZTlEFZ
         x6dDmOKpfG0tlTdHo8X2879nekspx9aHQwMVtmnH2WwuZP5S198wP8drzHjIqpQsAzNp
         U/jKQIexVTqtCWMKhCRynSdsujn6SPU55occHD4lb4p/c7d8WYykgKjngtGU4mn4wFJc
         MQ1OnuvwhzXGe3kV1OdaCHlQRw1MTZGHtfImUWyxXp1Ih80U6We4FhCZxScZj7hVXaLf
         9BdLfbjZienm0sVU5iJAaSmV0MMii3S5P2p3mDs2ed6CAiiQNWsu3yP4/QgOKRj7aDWO
         Nupw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703057025; x=1703661825;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=u5XVZet7T2QTrOPi3oToIQti5iFLZ2zJAIFsd1nyI8A=;
        b=rbBZsgWSrFkmRpKSgQ3Jjhg7rkNjoZdjHq1MmrbvRMj6L66GGYrK7sZyICpaBSVeMP
         Y2bg9Q4nrUpfoWY4Rmvt5j+E4KUm3qmAqERmO6t+3d7h8++Ab11cXbCYl+sVqQrjMfrx
         dUWvNxqlP/qpNsCQQNeLWhUpfJvgP42/VXhQJJ5UtcZYNxtkm+YTlF52oGuO9jnMJI23
         GvBJ65BStEU+RNl2282R7Hj8Hg1J5Sf4IhTkHK0TgT634Vc4oG4KzQLrHzYUhSNlKx0Y
         Pe718ZMIvQOMEut2/iE/SBQ1if3RmcxjxXX9NSDd0A8WWHCNxa+yG9RJBp4psOR81nHP
         oa2w==
X-Gm-Message-State: AOJu0YyFPy/WpGInV46yvtorUbRKMnC09Mb47XBHQmo6sp2w7H5HzlKx
	YZ0qOK1oib0614+UJq/twUrP7lxewtwTmH3Ud13h
X-Google-Smtp-Source: AGHT+IGVvF/US2wfnHrPrWhk/wfybsms9up+K65bDEhZGWFwivkLBWqdoQePOl5kTTYCbdwUB/O60Q==
X-Received: by 2002:a5d:6a01:0:b0:333:46fe:d933 with SMTP id m1-20020a5d6a01000000b0033346fed933mr6451302wru.201.1703057024736;
        Tue, 19 Dec 2023 23:23:44 -0800 (PST)
Message-ID: <29518ae7-2511-4db9-91ec-c3490839d6c3@suse.com>
Date: Wed, 20 Dec 2023 08:23:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] xen/asm-generic: Introduce generic setup.h
Content-Language: en-US
To: Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <1e4f48d753871bf61de3af97a3009e069d25d01e.1702607884.git.sanastasio@raptorengineering.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: <1e4f48d753871bf61de3af97a3009e069d25d01e.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 03:43, Shawn Anastasio wrote:
> Introduce setup.h to asm-generic based off of ARM's to define all
> stubs necessary to compile bootfdt.c

And - I'm sorry to ask - how's that "generic"? I'm also not convinced at
all that a generic header can validly use BUG() in the way you propose.
Some of these go far beyond what presently we have in e.g. altp2m_vcpu_idx().

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 08:10:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 08:10:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657412.1026208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFreO-0000aZ-UU; Wed, 20 Dec 2023 08:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657412.1026208; Wed, 20 Dec 2023 08: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 1rFreO-0000aS-RL; Wed, 20 Dec 2023 08:09:56 +0000
Received: by outflank-mailman (input) for mailman id 657412;
 Wed, 20 Dec 2023 08: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFreN-0000aC-KS
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 08:09:55 +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 2760900f-9f0f-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 09:09:53 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3367601a301so1189006f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 00:09:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 g18-20020a05600c311200b0040d2524270asm6212348wmo.8.2023.12.20.00.09.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 00:09:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2760900f-9f0f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703059792; x=1703664592; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=h7167CD9+DlpsTqr3/feLcbfa2I53LXhs+HmHgFcvLA=;
        b=XTfqkqoaG+ZT+QmUfq6eK4CxY1Ah6/02l27VKIdfy6/u2JnCA44ASber1+0ydVwuPq
         r0mmWZYPccnrA/dbU8YPWg35sOccWhw0jMXWw7nyQAvV/GOSebQLecuCX7OVNvdYTa8I
         Hg+0fo5nZXvNchDdGLtI/sXUsNTKhezLJ75laomy58Qoiu4iCn/Ba95/zyIMM3uXnzN9
         wscQRAu2GM7S1blHIybJxF6ibDHzDG1KCqsuVT9szJ99lObMW3v+s72Aihh328E5Jqwg
         HyWnvLtUM5HPCS3YYDQu3dncccDxw4vv1//QKPG7nvGmrg82hWb/tm47q5SybGbNKU87
         g5iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703059792; x=1703664592;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=h7167CD9+DlpsTqr3/feLcbfa2I53LXhs+HmHgFcvLA=;
        b=UcS/vcOTg2NyBUrw2zwv3vPD7m0urmbLI86uWzBHJvEiG8aqYWCokq1DeYOpPalYFs
         /fSfVtezD8IeyT7Lc8fiPg1z+wT/LjacnPFBKs/XyBTSAo5XAiDjfvEhc7XUipMw2jXy
         pRChRHW8TQA0wJNYXY/1vFoQWQ7UZ/eyyQ40b+UmP/my84d8Ll+BZpgL9uXqyB+5+z6S
         1W+rFEdmn5EyE89EKpdTGkRK/ZagLZ9GrH6Xcyv5aLazUDYoGcRQ6U0g5A05SgD8WyO0
         mD8cvZAXOihRxP8/28QMfLcH1gs2/buMvaj5fZuM2t2j3RbJrXrYejwmHcOm9Pf1TsBB
         l8sA==
X-Gm-Message-State: AOJu0Yy3g3vbCMbVhX2wTkUAGFV5ect8CTDX3a1mngE8Gd8Ft2PUtP+R
	RXbTsNIlsm+ophH/XQQElN1J
X-Google-Smtp-Source: AGHT+IEKOx65rDuDmGPN078pq/z+vtriuEGrj9STsNrVgsz9iElfuYnhHh1p3C4UlniU7URgO7vyOQ==
X-Received: by 2002:a05:600c:520d:b0:40d:3376:d87c with SMTP id fb13-20020a05600c520d00b0040d3376d87cmr257682wmb.119.1703059792412;
        Wed, 20 Dec 2023 00:09:52 -0800 (PST)
Message-ID: <69c5afde-3a24-4792-b4e5-3ce17cb1602d@suse.com>
Date: Wed, 20 Dec 2023 09:09:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common
Content-Language: en-US
To: Julien Grall <julien@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com>
 <3546ec55-3e0c-4fdc-9697-0105d20bacfd@suse.com>
 <5fc9ad7a-1281-46da-abff-0aa2d2beca14@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5fc9ad7a-1281-46da-abff-0aa2d2beca14@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 19:29, Julien Grall wrote:
> On 19/12/2023 17:03, Jan Beulich wrote:
>> On 15.12.2023 03:43, Shawn Anastasio wrote:
>>> --- a/xen/arch/arm/bootfdt.c
>>> +++ b/xen/common/device-tree/bootfdt.c
>>> @@ -431,12 +431,15 @@ static int __init early_scan_node(const void *fdt,
>>>   {
>>>       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") )
>>> +    if ( device_tree_node_matches(fdt, node, "memory") )
>>> +#if defined(CONFIG_ARM_EFI)
>>> +        /*
>>> +         * If Xen has been booted via UEFI, the memory banks are
>>> +         * populated. So we should skip the parsing.
>>> +         */
>>> +        if ( efi_enabled(EFI_BOOT) )
>>> +            return rc;
>>> +#endif
>>
>> I'm not a DT maintainer, but I don't like this kind of #ifdef, the more
>> that maybe PPC and quite likely RISC-V are likely to also want to support
>> EFI boot. But of course there may be something inherently Arm-specific
>> here that I'm unaware of.
> 
> Right now, I can't think how this is Arm specific. If you are using 
> UEFI, then you are expected to use the UEFI memory map rather than the 
> content of the device-tree.
> 
> However, we don't have a CONFIG_EFI option. It would be nice to 
> introduce one but I am not sure I would introduce it just for this #ifdef.

Right, hence why I also wasn't suggesting to go that route right away.
efi/common-stub.c already has a stub for efi_enabled(). Using that file
may be too involved to arrange for in PPC, but supplying such a stub
elsewhere for the time being looks like it wouldn't too much effort
(and would eliminate the need for any #ifdef here afaict). Shawn?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 08:13:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 08:13:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657417.1026219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFrhk-0002CP-De; Wed, 20 Dec 2023 08:13:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657417.1026219; Wed, 20 Dec 2023 08:13:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFrhk-0002CI-Ar; Wed, 20 Dec 2023 08:13:24 +0000
Received: by outflank-mailman (input) for mailman id 657417;
 Wed, 20 Dec 2023 08:13:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFrhk-0002CC-2H
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 08:13:24 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4861321-9f0f-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 09:13:23 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c2db2ee28so67296695e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 00:13:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 q15-20020a05600c46cf00b0040b349c91acsm6252004wmo.16.2023.12.20.00.13.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 00:13:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4861321-9f0f-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703060002; x=1703664802; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=iR+eQK4WZMqlV50/1Et7qOFHCdZg/bDzP5iTizcJb/M=;
        b=SRetfITuSo/PRcaV7LSupsBtrMd1UgMzLdWhUuqHRrjgA2PVmcgJuNotabMrzuDqti
         as+arSuHSpDxyDESbzDASHiGOfLbje3yIbNxPdx75mLJoUZxMVmw043NMV3wQezGXt1g
         x+c1Q7BOhsHjrFauKYL7RfqkdhhUVGIRNB0dYbFsLzXAYWeVIf2qQanMlsrmYkDM7Z/l
         Nl+zrHY8bILMdfX40ADyukId64Cqz8yIUud+4oPf7za7/ImLkLr6ZzPINHhOMCBSpy7C
         HEk/kCQbTa2q4UOt4d37hPhCxf3OTjDv4jazVJ/TKfajVxsmG4TJDtFdZksltI12tahl
         IJkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703060002; x=1703664802;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=iR+eQK4WZMqlV50/1Et7qOFHCdZg/bDzP5iTizcJb/M=;
        b=aIzVQTSmIO64ooyK9OrilerUVAMIA0ciB+LowF5vAbJVX8cJaeV3dz2fpiok97LB1d
         bt7FgnD54Qz/l2Zp8PKgvsADOrm2hZBIDlcwfk8kdo8tvrrI5oV58B6gGeEeD3F7WStI
         OvZvEi6ZcBDJ/ZRWRlvmV5EoFbTQ8jCK4q5k2l8hhZ0vUvFehpGLyG8NOM2Gbf08ckLm
         ZSkL1PF/Ue+bWNsdgj8M8Lgjxlpd3mydZHRpqs5xtyuK+7fcHFcC3e4MkaFh+Csxeq2Y
         3VeneEHXgFweH/Sroz1kvmdpQuxUsq8QsnmixxXBYIwh5Q5O9EO2h1xiV2KUuxKJrN6F
         eY2Q==
X-Gm-Message-State: AOJu0Yx9RnmAyE/lV/w2vmgSQlGyywpHD+2qzFXzgPbcxvXFe0h7aFsP
	9GY/DdY23ctCBmg5Xf7ymxln
X-Google-Smtp-Source: AGHT+IHIkQET8msiEY3DLcNh64dG0YtsdRAKRjjHX0IldSfzJY0Q9Zrih4BDmz+rthgXdNJMdGe0Yg==
X-Received: by 2002:a05:600c:538e:b0:40d:2f2a:5709 with SMTP id hg14-20020a05600c538e00b0040d2f2a5709mr839651wmb.47.1703060002520;
        Wed, 20 Dec 2023 00:13:22 -0800 (PST)
Message-ID: <92f14f0d-bd7f-480e-b8a1-57e32f84d5c7@suse.com>
Date: Wed, 20 Dec 2023 09:13:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mm: use "break" in arch_memory_op()
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <e944cc4f-354c-4752-8794-03e6a7517372@suse.com>
 <alpine.DEB.2.22.394.2312191620000.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312191620000.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 01:22, Stefano Stabellini wrote:
> On Tue, 19 Dec 2023, Jan Beulich wrote:
>> The final return statement is unreachable and hence disliked by Misra
>> C:2012 (rule 2.1). Convert those case-specific (main) return statements
>> which already use "rc", or in one case when it can be used without
>> further adding of code, to break.
>>
>> No functional change intended.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> This is an alternative proposal to
>> https://lists.xen.org/archives/html/xen-devel/2023-12/msg01537.html.
>> Yet another option would be to simply pull the default case out of the
>> switch() statement.
>>
>> --- a/xen/arch/x86/mm.c
>> +++ b/xen/arch/x86/mm.c
>> @@ -4724,7 +4724,7 @@ long arch_memory_op(unsigned long cmd, X
>>          spin_unlock(&d->arch.e820_lock);
>>  
>>          rcu_unlock_domain(d);
>> -        return rc;
>> +        break;
>>      }
>>  
>>      case XENMEM_memory_map:
>> @@ -4818,7 +4818,7 @@ long arch_memory_op(unsigned long cmd, X
>>          if ( __copy_to_guest(arg, &ctxt.map, 1) )
>>              return -EFAULT;
>>  
>> -        return 0;
>> +        break;
>>      }
> 
> There are also two other return 0; under case XENMEM_memory_map and
> XENMEM_machphys_mapping. I would be consistent and either leave this
> return 0 alone, or change all the return 0.

Yes, that would have been another possible pattern to follow. Due to
the multiple possible approaches I had specifically outlined (in the
description) the pattern I decided to follow.

> Either way, this patch is correct, so:
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 08:20:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 08:20:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657423.1026229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFroD-0003m9-3G; Wed, 20 Dec 2023 08:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657423.1026229; Wed, 20 Dec 2023 08: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 1rFroD-0003lZ-05; Wed, 20 Dec 2023 08:20:05 +0000
Received: by outflank-mailman (input) for mailman id 657423;
 Wed, 20 Dec 2023 08:20: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFroC-0003aq-9d
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 08:20:04 +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 92e34b9a-9f10-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 09:20:02 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-33677fb38a3so747831f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 00:20:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d1-20020adff841000000b003367e35abd4sm208000wrq.71.2023.12.20.00.20.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 00:20:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92e34b9a-9f10-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703060402; x=1703665202; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=f5kcUoFOCl/7HUBCzY35pY/7e6551efSmfsmRlZ8820=;
        b=FcbBhKxQwuB9VO2DD54sAy3PuQW1Si7wlfgQA1ICia4+ftKKCvCIv6K1T3QiS2VYCz
         lONyHf7RaznZULsuBr+kXRdn3WxadGhzyN1zQbZhLJO4zhDdLsstCWIRUjjx39fesRJB
         DoA3oLQsqBKfuj2bRiX/jMWEHZZ2ETrjtc0tZajVqPu86D+4abDpCtgXpBeNb2RlqQY6
         WC6reWHeRJLMoS28ofgGqTWl9WCmQzCAQJ2O+Z6fax7F7yVVVHWXReBJ3tlqQQdgXX+0
         puP2VrmBCqqvU/1BE/MNQhA4R3IS9zeJ2nym91wrEOIt/zvuyM09n1PMwPOcQhwb8HVR
         zaHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703060402; x=1703665202;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=f5kcUoFOCl/7HUBCzY35pY/7e6551efSmfsmRlZ8820=;
        b=DOhEEyuZK3GPRpc8WDnNgDelmZ/1pW61fkysvriJyMcFv5ifSF48tLmIpnZBxcpSI1
         VCqVNgl4wUnB+gC/pkOgZ9FO8wmCcsQfd9AX6XJoOJNx/d2ItqnlOAY/brs8kwzVWEqe
         R2xJs8ENOeKTNh6eulBrZOcbqHL3PBhYfLExuwl+FBACzLG3aAwhmpIRuqnXUj1ONOsG
         8dg9z2PbYjr8vjv9Xs1xcgTKoF03mnz08WfBkeh9LiJ0uQVUqnFW1KXVdvhZzytywNLx
         kaBbKbylf4p/r14AsVV8M8M/x9dzCyXicSUqy5q6Eot8SBQF3duqkb+4XyLIw93Xj+uo
         zRNA==
X-Gm-Message-State: AOJu0YxXbiv2GxW1Uxm1O3HFpmOTTKZHyrMshIzhV3KVB1+vhh26Dj2+
	iOOemevx8vLrE81UUJNZVyNa
X-Google-Smtp-Source: AGHT+IGu7XmWcQrL7lXirknx+xj2CBcUkpRykSPdP5hKQoWk7r0myCmqbxBMbR2U6cCLnStg+KQX4Q==
X-Received: by 2002:adf:e7d2:0:b0:336:774d:a8b2 with SMTP id e18-20020adfe7d2000000b00336774da8b2mr785287wrn.135.1703060402272;
        Wed, 20 Dec 2023 00:20:02 -0800 (PST)
Message-ID: <67805b7a-b597-41ba-9d90-2aec573d2dea@suse.com>
Date: Wed, 20 Dec 2023 09:20:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/platform: tidy do_platform_op() a little
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <c12f20a3-407c-4914-b6a0-1690962fd72c@suse.com>
 <alpine.DEB.2.22.394.2312191626530.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312191626530.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 01:30, Stefano Stabellini wrote:
> On Tue, 19 Dec 2023, Jan Beulich wrote:
>> The function has a few stray scopes and inconsistent use (indentation)
>> of break statements. Drop the stray braces and bring all the break-s in
>> line with one another. This in particular means dropping a redundant
>> break from XENPF_cpu_offline handling, pleasing Misra C:2012 rule 2.1.
>>
>> No functional change intended.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> This is an alternative proposal to
>> https://lists.xen.org/archives/html/xen-devel/2023-12/msg01540.html.
>>
>> A few more scopes could be eliminated if the various "cpu" variables
>> were consolidated to switch() of function scope.
>>
>> --- a/xen/arch/x86/platform_hypercall.c
>> +++ b/xen/arch/x86/platform_hypercall.c
>> @@ -258,7 +258,6 @@ ret_t do_platform_op(
>>          break;
>>  
>>      case XENPF_add_memtype:
>> -    {
>>          ret = mtrr_add_page(
>>              op->u.add_memtype.mfn,
>>              op->u.add_memtype.nr_mfns,
>> @@ -273,11 +272,9 @@ ret_t do_platform_op(
>>              if ( ret != 0 )
>>                  mtrr_del_page(ret, 0, 0);
>>          }
>> -    }
>> -    break;
>> +        break;
>>  
>>      case XENPF_del_memtype:
>> -    {
>>          if (op->u.del_memtype.handle == 0
>>              /* mtrr/main.c otherwise does a lookup */
>>              && (int)op->u.del_memtype.reg >= 0)
>> @@ -288,8 +285,7 @@ ret_t do_platform_op(
>>          }
>>          else
>>              ret = -EINVAL;
>> -    }
>> -    break;
>> +        break;
>>  
>>      case XENPF_read_memtype:
>>      {
>> @@ -306,8 +302,8 @@ ret_t do_platform_op(
>>              ret = __copy_field_to_guest(u_xenpf_op, op, u.read_memtype)
>>                    ? -EFAULT : 0;
>>          }
>> +        break;
>>      }
>> -    break;
>>  
>>      case XENPF_microcode_update:
>>      {
>> @@ -316,8 +312,8 @@ ret_t do_platform_op(
>>          guest_from_compat_handle(data, op->u.microcode.data);
>>  
>>          ret = microcode_update(data, op->u.microcode.length);
>> +        break;
>>      }
>> -    break;
>>  
>>      case XENPF_platform_quirk:
>>      {
>> @@ -340,8 +336,8 @@ ret_t do_platform_op(
>>              ret = -EINVAL;
>>              break;
>>          }
>> +        break;
>>      }
>> -    break;
> 
> I think you should be able to remove this break completely?
> And also in XENPF_set_processor_pminfo. That's because the is a switch
> with a default label and a break.

Not really, no - those would then end up falling through to
XENPF_firmware_info (here) or XENPF_get_cpuinfo (there), as the break-s
I'm moving are for the outer switch(), sitting past the inner switch()'s
body's final brace.

I notice though that I missed at least one inconsistent break in an
inner switch(), so I guess I'll make a v2.

> Everything else checks out. Given that this is already a good
> improvement as it is:
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks, but as said, I think a v2 is warranted.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 08:32:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 08:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657429.1026239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFs0K-00066M-6U; Wed, 20 Dec 2023 08:32:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657429.1026239; Wed, 20 Dec 2023 08:32:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFs0K-00066F-3o; Wed, 20 Dec 2023 08:32:36 +0000
Received: by outflank-mailman (input) for mailman id 657429;
 Wed, 20 Dec 2023 08: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFs0I-000667-Nk
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 08:32:34 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 52361d1f-9f12-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 09:32:33 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c69403b3eso54274435e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 00:32:33 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 g19-20020a05600c4ed300b0040b30be6244sm6504565wmq.24.2023.12.20.00.32.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 00:32:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52361d1f-9f12-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703061153; x=1703665953; 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=KKmh1INZfKUACcuBbyrdc6mJ4hc4DA0TnGmi+6UpUZY=;
        b=Fzvq2Jeptcgef7KEXXjbevJFUNzpn3E1KycNe5F/jbmPRwp5rZwxtc+T9+vmxFre88
         imN4ZKcC6yhFzRXwpSNCdmG+ncynaLd3TYoLMTTl1/GKsA7Csc3i5yy+jG1osT5GMBQS
         vjLhFIZPR3cYhoK54ihsUdsTBF/QNxyISMjvc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703061153; x=1703665953;
        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=KKmh1INZfKUACcuBbyrdc6mJ4hc4DA0TnGmi+6UpUZY=;
        b=R4V30SVpgyymxXGAmTcnOCnCb+Fr5vefyBW/cU4xx39s4S1jiSuu296bN9NVt7QRCO
         0qvYNCXTJja7heFYKJogDlJW0Ga1VI46lE47sRAcTqtF8DWqsR4as8D8fL3+p04juAyt
         Cw/LNWv3e8we/cK5oS/JBYLrbcWW2coO9NOAy4dkH2jRVW43biiI1Ua4SWPd8oldR/7h
         LLStVoJo0tLZtBYRM8dIdDzzw9Ws9P3s4P0vOBU9DurmFydNnoMCGkXvncnLD8aolACh
         qaCIWC2HgtJgWngcpZKPCbWOm0CfaOeG+iLLbCi4GDLFma8+GiIsTs1ap+gfLPmECx6j
         epeA==
X-Gm-Message-State: AOJu0YwUeU85TMYfgDFwAZvtqGFqo6znsDNH5kAP2x703h6aFBPYMd6H
	EKAqXCRjdODESj+XJ6l6BkLXmA==
X-Google-Smtp-Source: AGHT+IE6fmPR58OqtyhWZ5hipLtSfYxJl+ZHlLUGkBC6MARRpsUbc9LbuyLXrKgaC+8njN2+ETpMKQ==
X-Received: by 2002:a05:600c:45cc:b0:40c:48d6:64cb with SMTP id s12-20020a05600c45cc00b0040c48d664cbmr8311548wmo.134.1703061152830;
        Wed, 20 Dec 2023 00:32:32 -0800 (PST)
Date: Wed, 20 Dec 2023 09:32:31 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Message-ID: <ZYKmn-lvKQpauL6Z@macbook>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-2-roger.pau@citrix.com>
 <bc08ed7e-766d-4f0e-a7ef-994d09d1dbe2@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bc08ed7e-766d-4f0e-a7ef-994d09d1dbe2@citrix.com>

On Tue, Dec 19, 2023 at 07:46:11PM +0000, Andrew Cooper wrote:
> On 15/12/2023 11:18 am, Roger Pau Monne wrote:
> > The minimal function size requirements for livepatch are either 5 bytes (for
> 
> "for an x86 livepatch", seeing as we're touching multiple architectures
> worth of files.
> 
> I know it's at the end of the sentence, but it wants to be earlier to be
> clearer.
> 
> > jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  Ensure
> > that distance between functions entry points is always at least of the minimal
> > required size for livepatch instruction replacement to be successful.
> >
> > Add an additional align directive to the linker script, in order to ensure that
> > the next section placed after the .text.* (per-function sections) is also
> > aligned to the required boundary, so that the distance of the last function
> > entry point with the next symbol is also of minimal size.
> >
> > Note that it's possible for the compiler to end up using a higher function
> > alignment regardless of the passed value, so this change just make sure that
> > the minimum required for livepatch to work is present.  Different compilers
> > handle the option differently, as clang will ignore -falign-functions value
> > if it's smaller than the one that would be set by the optimization level, while
> > gcc seems to always honor the function alignment passed in -falign-functions.
> > In order to cope with this behavior and avoid that setting -falign-functions
> > results in an alignment inferior to what the optimization level would have
> > selected force x86 release builds to use a function alignment of 16 bytes.
> 
> Yuck :(
> 
> The same will be true for all other architectures too?

I would expect that for gcc I guess.

> What happens on ARM, which also picks up an explicit choice in livepatch
> builds?

Arm AFAICT seems to use a 4 byte function alignment with -O2 (both gcc
and clang), so that matches what we need to enforce for livepatch.  If
we ever need a higher alignment for livepatch reasons it would be a
multiple of the minimum one set by the compiler, so that should be
fine.

> >
> > The compiler option -falign-functions is not available on at least clang 3.8,
> > so introduce a Kconfig check for it and make the livepatch option depend on the
> > compiler supporting the option.
> >
> > The naming of the option(s) CONFIG_FUNCTION_ALIGNMENT is explicitly not
> > mentioning CC in preparation for the option also being used by assembly code.
> >
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> > Changes since v3:
> >  - Test for compiler option with -falign-functions.
> >  - Make FUNCTION_ALIGNMENT depend on CC_HAS_FUNCTION_ALIGNMENT.
> >  - Set 16byte function alignment for x86 release builds.
> >
> > Changes since v2:
> >  - Add Arm side.
> >  - Align end of section in the linker script to ensure enough padding for the
> >    last function.
> >  - Expand commit message and subject.
> >  - Rework Kconfig options.
> >  - Check that the compiler supports the option.
> >
> > Changes since v1:
> >  - New in this version.
> > ---
> >  xen/Kconfig              | 19 +++++++++++++++++++
> >  xen/Makefile             |  3 +++
> >  xen/arch/arm/livepatch.c |  2 ++
> >  xen/arch/arm/xen.lds.S   |  4 ++++
> >  xen/arch/x86/Kconfig     |  1 +
> >  xen/arch/x86/livepatch.c |  4 ++++
> >  xen/arch/x86/xen.lds.S   |  4 ++++
> >  xen/common/Kconfig       |  5 ++++-
> >  8 files changed, 41 insertions(+), 1 deletion(-)
> 
> xen$ git ls-files | grep xen.lds.S
> arch/arm/xen.lds.S
> arch/ppc/xen.lds.S
> arch/riscv/xen.lds.S
> arch/x86/xen.lds.S
> 
> RISC-V and PPC have the same pattern that you're patching for x86 and ARM.

I've avoided touching those because there's no livepatch support there
(yet), and I didn't want to give the impression that the option is
supported or tested for those architectures.  I have no idea what
function alignments would be sensible for riscv or ppc.

> > diff --git a/xen/Kconfig b/xen/Kconfig
> > index 134e6e68ad84..c2cc3fe165eb 100644
> > --- a/xen/Kconfig
> > +++ b/xen/Kconfig
> > @@ -37,6 +37,25 @@ config CC_HAS_VISIBILITY_ATTRIBUTE
> >  config CC_SPLIT_SECTIONS
> >  	bool
> >  
> > +# Set function alignment.
> > +#
> > +# Allow setting on a boolean basis, and then convert such selection to an
> > +# integer for the build system and code to consume more easily.
> 
> # Clang >= 6.0
> 
> > +config CC_HAS_FUNCTION_ALIGNMENT
> > +	def_bool $(cc-option,-falign-functions)
> > +config FUNCTION_ALIGNMENT_4B
> > +	bool
> > +config FUNCTION_ALIGNMENT_8B
> > +	bool
> > +config FUNCTION_ALIGNMENT_16B
> > +	bool
> > +config FUNCTION_ALIGNMENT
> > +	int
> > +	depends on CC_HAS_FUNCTION_ALIGNMENT
> > +	default 16 if FUNCTION_ALIGNMENT_16B
> > +	default  8 if  FUNCTION_ALIGNMENT_8B
> > +	default  4 if  FUNCTION_ALIGNMENT_4B
> 
> What value do we get here for RISCV/PPC?Â  Do we need another override
> for them?

Hm, I wasn't planning on adding support for PPC/RISCV here, if those
arches want to use a specific function alignment they might need to
adjust the options here, I think that's a reasonable compromise, as I
don't see a need for this to be blocked on also agreeing values for
ppc or riscv.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 08:42:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 08:42:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657436.1026248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFs9S-0008FP-4t; Wed, 20 Dec 2023 08:42:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657436.1026248; Wed, 20 Dec 2023 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 1rFs9S-0008FI-2H; Wed, 20 Dec 2023 08:42:02 +0000
Received: by outflank-mailman (input) for mailman id 657436;
 Wed, 20 Dec 2023 08: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFs9Q-0008FB-Dw
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 08:42:00 +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 a3553ed8-9f13-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 09:41:59 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-33621d443a7so5573912f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 00:41:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 n6-20020a05600c500600b0040c1d2c6331sm6436870wmr.32.2023.12.20.00.41.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 00:41:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3553ed8-9f13-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703061718; x=1703666518; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=dZKeXvxpoq9mdMW4swaLCDNC7gJ1Lo/uSGJXoUku94A=;
        b=Li7QtFCnjT/q1Z8JH9UEuRrjd0mUBJq38b6q3GYRbz3fzxtBD3IWYT/MC+Apz0acJ4
         SD/XR3NgAnjaUVSmWUAs54Ls0Yg1vP6PYLNnqGYNIC9YfxrYBF58XFsJrzWunUG7Invh
         HKI3MtoPJLLyq8zJycv1sKtoU0BLiQ5Ye2f3ahHpANs3crl4+/Om25cTLPbDgYx1Iu/V
         87H1F1zBbSJypJ7rLpy2IqtADscDuU67FqAIVTh0GO2DtQ1mgiDJIuDGAWnIrAwZJwEq
         9/UaQNZeocpcSGLKqL7AO33pyU6irsh5MrUyASw5mdoAJ3bo8lz94JKmkbNdRmgckPR1
         nXvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703061718; x=1703666518;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=dZKeXvxpoq9mdMW4swaLCDNC7gJ1Lo/uSGJXoUku94A=;
        b=tBEYdS6AoZH6a+xinvVlNqLERWQJOPrvYGMNAzFL6DlsnREx7qVksauyIr1xvW5WBV
         JHT/NOMYp/I9L7k7LS35xZfYbyLMiV/eqLeTDrhAykSTxaUKU1wk21JTrmE5CS81DPpz
         SOuQva8HXXpFfqyvXq+XjpucjJjJ9PgZD7TPRFhE2vpYsQlEvrM/DNFGHsK85URhZous
         FAQVl7D7YZ1wweMzpChF8ldEPMhP15ayYsWODSHcC7UiYeN0X8Aqkk6MMkkvL3sMe97g
         gkq76vyRhBlTf17ICyXSSt3UI0w95Qowacf8w7ptzyG0Bceog11jMBD9QXDDR3CHBMMj
         U/BA==
X-Gm-Message-State: AOJu0Yxv1RENFgG/zOKWPrB72ka1K58na9v6y7mvsxdtmD7g+uXxWh/b
	B60wlyWyEIlmFbBpax+wbtpu
X-Google-Smtp-Source: AGHT+IERGa0Em4CritFvPjoVaaDQVKABscY+BGG1GuYfTPRlAEIsRWaUIfqUyiN+RQcXZC5wa+Brcg==
X-Received: by 2002:a05:600c:538a:b0:40d:3084:e6d6 with SMTP id hg10-20020a05600c538a00b0040d3084e6d6mr600034wmb.235.1703061718483;
        Wed, 20 Dec 2023 00:41:58 -0800 (PST)
Message-ID: <70b0b556-d103-46dd-a69c-004e9adf27bf@suse.com>
Date: Wed, 20 Dec 2023 09:41:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen: add acmacros.h to exclude-list.json
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: "consulting@bugseng.com" <consulting@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Luca Fancellu <Luca.Fancellu@arm.com>
References: <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.com>
 <055b6cf3-4f29-4f1d-b650-26c6d9be8832@suse.com>
 <2fd03776043811a8ceae9ae41de5f0fa@bugseng.com>
 <2c64af71dcb3984f1753ef115868cb7b@bugseng.com>
 <2F345562-4049-4A50-9793-D0002B239C43@arm.com>
 <alpine.DEB.2.22.394.2312191616400.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312191616400.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 01:17, Stefano Stabellini wrote:
> On Tue, 19 Dec 2023, Luca Fancellu wrote:
>>> On 19 Dec 2023, at 11:05, Nicola Vetrini <nicola.vetrini@bugseng.com> wrote:
>>> On 2023-12-19 11:51, Nicola Vetrini wrote:
>>>> On 2023-12-19 11:37, Jan Beulich wrote:
>>>>> On 19.12.2023 10:02, Nicola Vetrini wrote:
>>>>>> --- a/docs/misra/exclude-list.json
>>>>>> +++ b/docs/misra/exclude-list.json
>>>>>> @@ -209,6 +209,10 @@
>>>>>>           "rel_path": "include/acpi/acglobal.h",
>>>>>>           "comment": "Imported from Linux, ignore for now"
>>>>>>         },
>>>>>> +        {
>>>>>> +          "rel_path": "include/acpi/acmacros.h",
>>>>>> +          "comment": "Imported from Linux, ignore for now"
>>>>>> +        },
>>>>> Together with what's already there (in context), wouldn't it better be
>>>>> the entire directory then which is excluded, or at least all
>>>>> include/acpi/ac*.h collectively (and perhaps also
>>>>> include/acpi/platform/ac*.h)?
>>>>> Jan
>>>> +Cc Luca Fancellu
>>>> Sure. I wasn't certain which files are imported from ACPI CA and which aren't.
>>>> I'm also not sure whether "include/acpi/ac*.h" would be properly recognized by other tooling that uses exclude-list.json (only cppcheck I think). I Cc-ed Luca Fancellu on this.
>>>
>>> It occurred to me that it's surely ok to use "include/acpi/ac*" and "include/acpi/platform/ac*".
>>
>> Yes I think itâ€™s fine, it just come to my mind now that this could have the risk that if
>> another file is added with â€˜ac' prefix, even if it could be subject to MISRA compliance,
>> it will be excluded.
>>
>> If that risk is negligible for the maintainer of that part, then itâ€™s fine.
> 
> I think it is OK either way, I'll let Jan pick his preference.

It hasn't become clear to me what the benefit would be of omitting the
trailing .h.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 08:49:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 08:49:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657441.1026258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsGq-0000cp-TN; Wed, 20 Dec 2023 08:49:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657441.1026258; Wed, 20 Dec 2023 08:49:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsGq-0000ci-QM; Wed, 20 Dec 2023 08:49:40 +0000
Received: by outflank-mailman (input) for mailman id 657441;
 Wed, 20 Dec 2023 08:49: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFsGo-0000bG-U4
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 08:49:38 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b451a1e5-9f14-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 09:49:37 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c256ffdbcso63495205e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 00:49:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r19-20020a05600c459300b0040d128e9c62sm6491754wmo.18.2023.12.20.00.49.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 00:49:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b451a1e5-9f14-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703062176; x=1703666976; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ZVuzNK/rMseYy3xrhpPQnSdzuGfzzh0rZL1bAVfK8oo=;
        b=e5CklXed5q8d0KxE1LdrBTEWL1pa2o+68UdqCTiA6tXBdxCkX2ZiWZ7680xXwwLSTt
         3ZwvsuPHMNkG0gOzmQlo6xRTxl1nPboLrgSK/k6dAbo30yIRg7OSCayY2z7uXi2PBSXP
         G+X+l3CZV6KKv72/FODc3lQ9ipP13fj+T5qR+F7GIRvb/bwhlErrJfosJvh3VbajrvIY
         +lbmz4wJS+J95pyGo1xkChy0vXjAJsSCcG9kWe390RW1xQj8s6m66N2iUi29SltZog5n
         Vk2LqxHts1paj+z1Q4omSId9xTEBK3Ezo6fTQzFNT7i2sJ5QZ7rur2WGSLGWctd5WGys
         jwXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703062176; x=1703666976;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ZVuzNK/rMseYy3xrhpPQnSdzuGfzzh0rZL1bAVfK8oo=;
        b=BPJbjqbURCk79gd96bZpBCF/BBkiUXQhHyLSWMEuAqRDk5TnFCPi7WAlKUlcaWuRRE
         rDsHcRg5eTSfTaTzbqOdQbhSl79CLMZt9LdUhZvsItmF78xA0zgwE9XZeAmUhk8UYqrf
         NMK+5POoKDJmvuWEqC7RfTCsYMB40gCvEfPlN0JjcD1IQC0U1CaaqY1SqqixAKx9pgAa
         /jQLX6Qbn9VsXA3ryI0FYmK1xSPUnpEWQtua/zhGlUmjpr4ZYIMdemol/a3DDNm2HU25
         Cn+EjjOM8DPLROEU0tsqaBkphiKqN79D80Mk0mPINsYhjeiGToFcFxex3pUlKpvfBV2m
         //Ig==
X-Gm-Message-State: AOJu0Yycg2ORKHBefbV+957JFZ7Zu2USM3tVAfsa5fumzcrxnr4H8Gz5
	nr/8jO9M8GejnHDYFeALP40R
X-Google-Smtp-Source: AGHT+IHwq/F+6iftapzKOZW5Z6lhPW4LPdNd3Ef4QsDYHJcLWrSSTRI3YvzT+if1CBSjyzXYSlESdA==
X-Received: by 2002:a05:600c:21c7:b0:40b:5e59:c56d with SMTP id x7-20020a05600c21c700b0040b5e59c56dmr9819457wmj.151.1703062176405;
        Wed, 20 Dec 2023 00:49:36 -0800 (PST)
Message-ID: <b2ed0853-1d16-4d94-825f-fc120cd11ce8@suse.com>
Date: Wed, 20 Dec 2023 09:49:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 01/17] pci: msi: pass pdev to pci_enable_msi()
 function
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.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>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-2-volodymyr_babchuk@epam.com>
 <alpine.DEB.2.22.394.2312191806520.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312191806520.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 03:10, Stefano Stabellini wrote:
> On Sat, 2 Dec 2023, Volodymyr Babchuk wrote:
>> --- a/xen/arch/x86/include/asm/msi.h
>> +++ b/xen/arch/x86/include/asm/msi.h
>> @@ -81,8 +81,9 @@ struct irq_desc;
>>  struct hw_interrupt_type;
>>  struct msi_desc;
>>  /* Helper functions */
>> -extern int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc);
>> -extern void pci_disable_msi(struct msi_desc *msi_desc);
>> +extern int pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
>> +                          struct msi_desc **desc);
>> +extern void pci_disable_msi(struct msi_desc *desc);
> 
> As the parameters name should match between declaration and definition,
> you should also rename msi_desc to desc in the implementation of
> pci_disable_msi. Or keep the parameter called "msi_desc" for
> pci_disable_msi here.

It's not clear at all why pci_disable_msi() is touched here; the description
says nothing in this regard.

> That change could be done on commit and everything
> else looks OK:
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 08:50:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 08:50:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657444.1026268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsHr-0002FB-5I; Wed, 20 Dec 2023 08:50:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657444.1026268; Wed, 20 Dec 2023 08:50:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsHr-0002F4-2n; Wed, 20 Dec 2023 08:50:43 +0000
Received: by outflank-mailman (input) for mailman id 657444;
 Wed, 20 Dec 2023 08:50:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KgnP=H7=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rFsHp-0002CP-Cx
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 08:50:41 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20600.outbound.protection.outlook.com
 [2a01:111:f403:2612::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8efd24b-9f14-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 09:50:38 +0100 (CET)
Received: from AM0PR01CA0080.eurprd01.prod.exchangelabs.com
 (2603:10a6:208:10e::21) by AS8PR08MB9387.eurprd08.prod.outlook.com
 (2603:10a6:20b:5aa::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Wed, 20 Dec
 2023 08:50:35 +0000
Received: from AM2PEPF0001C70A.eurprd05.prod.outlook.com
 (2603:10a6:208:10e:cafe::c3) by AM0PR01CA0080.outlook.office365.com
 (2603:10a6:208:10e::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Wed, 20 Dec 2023 08:50:35 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM2PEPF0001C70A.mail.protection.outlook.com (10.167.16.198) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7113.14 via Frontend Transport; Wed, 20 Dec 2023 08:50:35 +0000
Received: ("Tessian outbound 385ad2f98d71:v228");
 Wed, 20 Dec 2023 08:50:34 +0000
Received: from fb82170e7f03.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 D7258F83-BE66-4211-98EC-8956D2DCC43F.1; 
 Wed, 20 Dec 2023 08:50:28 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id fb82170e7f03.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 20 Dec 2023 08:50:28 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com (2603:10a6:208:ff::27)
 by DBBPR08MB10589.eurprd08.prod.outlook.com (2603:10a6:10:538::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Wed, 20 Dec
 2023 08:50:25 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e]) by AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e%3]) with mapi id 15.20.7113.016; Wed, 20 Dec 2023
 08:50:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8efd24b-9f14-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=eAkkoEGHJ1OndEerbldrDJ3yufWfxMcKPSS6OTIY35xTh3DgJJKoIKUCfAkQGH4awfkGz2Uc9RtWFzOT1PvMglMVX1QN7EyP/FMhd7m9W//evrv/fw2J1O1jd3femJA7gimdLsR6C/UD6WRjUfkobzJZhhdmA1uCxlWAgT3LDDBahHLo+g79/TJDXz7456Ser+1nlpQ+IFOSq7tudptGEsH+eHxQSFfFDQmlQedD5sIx/7pvMe6gyl9WL4C0GMxWNXm2VCn34vPqTTphUdKAFM6RAHqjq2RunP6yA5DdtuV7nYQs5z6UhUC77gjBkiUVhuyg1lcHnUROF85bRX0LzA==
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=bXWKnpdT2bKUIYWndABCqXCuVJIlf9WMCBRypwQQKAA=;
 b=UPw7GoLXfJbgowVtqjMj2hViIARXGwHIBSV/6E4p+iAc9sQl+RIAoE6+NEWr1+0rCvvfOkXK1pWB/WOJgj8PTaREokil2AZn+kKZtD2wvZkoJw0TpwSNMFAAxDREAEk0UFqiFMpg2XOt3hZjFjOpgSNHRjH6WC9iMx0b+BsJeZJa+9Lw84SqSfjy5A0beeGkAn1zoqZ4QK5KFSUjKZNwEJpLyJivo5OQJg/jIO2JF8v4umYA8Eoi99D1i4AlF2cTGVLcJpjxFDW3t7kqSg3jGcNrFdyaDZoNLnea3k9psl6vnoCsW6ngwryr7Gen8NcM+NFgFvrxbEjBHcnKYWBHyg==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bXWKnpdT2bKUIYWndABCqXCuVJIlf9WMCBRypwQQKAA=;
 b=mxy/zNWMgRPZFAJ4D8ndxUe+NXQXSuhL8uPUapuB+4vAFA5uhQ/D+guqrfXEIklYHXS/fB3wOxfMMEa4wvAuUMOhQ5+ztkZpI1CLTNSizKTMYTDDyFz9+Eu6Z87GHYYmUmPyt2NS5cyHtHyvhrp9IZYGy0Vhmn3L0JBbbRjIJQ8=
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=armh.onmicrosoft.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: 633862a56bc1b416
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=iGr2usywVFMI7oYK0/ggQ+kipuxLLdXvdIqaYlq97TTkpwCQjni+UCJUQpnHfKZ3cBJsQgEBgvtzLbo0ibOl75ESaw1UvkeW1XceaGIH2vkmRm7LXVkVeJwHwJsEzuddILzzgtDA1Q0X68lp8Pwg7UTuFVfsUqUFp5Tb4MuUQgpia5NqsB3vo35pFr+yk4LwduwGw4VRLpEFi4CojWOadN8qGXdIcELb0WLfrS8omusUo4U7ebuKNru8iTVfe53bgx1Z0VbZ6sigcJ4ue3ELorrBhFP+9iT2FknL7i41B6U0fY0UNyKXiJjtDXpQJnY8gwwXdSBanJdaybkRUI07SA==
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=bXWKnpdT2bKUIYWndABCqXCuVJIlf9WMCBRypwQQKAA=;
 b=ifocj3bRFQZzC4Ae5HNWLXHFplEO5mNLHw2q6QV/aExxdWwu+JraTMlttzSPekf1JhctedT48at2ElDz5hBomEk6HBgKcEsy+EzsegHZgdfoQ0gFQmpj1wEHGnskrPkI/lGV1SnAxVWZ1ut2yEzp8YZ0wkbxUNUlrVVrWY4ByJ7ciRBuPVVZEXfsQCJ3W7h6bZ1syHJB8GpOjWKEezmiZv7ZM/E23yENnZIfWY9EMPK9rnwqLrbq7c88yz3b2b4e6YiudYPB+OfG10zzerplokbc+u6Cuy2Z5/QOjeAv3EUTm+4I4hqqBxg8PUwZ7A8PV+NEumBkyQkOsyvTQPll5g==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bXWKnpdT2bKUIYWndABCqXCuVJIlf9WMCBRypwQQKAA=;
 b=mxy/zNWMgRPZFAJ4D8ndxUe+NXQXSuhL8uPUapuB+4vAFA5uhQ/D+guqrfXEIklYHXS/fB3wOxfMMEa4wvAuUMOhQ5+ztkZpI1CLTNSizKTMYTDDyFz9+Eu6Z87GHYYmUmPyt2NS5cyHtHyvhrp9IZYGy0Vhmn3L0JBbbRjIJQ8=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, "consulting@bugseng.com"
	<consulting@bugseng.com>, Andrew Cooper <andrew.cooper3@citrix.com>, George
 Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, Wei Liu
	<wl@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [XEN PATCH] xen: add acmacros.h to exclude-list.json
Thread-Topic: [XEN PATCH] xen: add acmacros.h to exclude-list.json
Thread-Index: AQHaMmldSNcDtDpNs0m0RNrxIeAVZrCwcdKAgAABGYCAANv4gIAAjRKAgAACT4A=
Date: Wed, 20 Dec 2023 08:50:25 +0000
Message-ID: <D2BDB22D-419D-4D4E-B242-C8FD70D23E5E@arm.com>
References:
 <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.com>
 <055b6cf3-4f29-4f1d-b650-26c6d9be8832@suse.com>
 <2fd03776043811a8ceae9ae41de5f0fa@bugseng.com>
 <2c64af71dcb3984f1753ef115868cb7b@bugseng.com>
 <2F345562-4049-4A50-9793-D0002B239C43@arm.com>
 <alpine.DEB.2.22.394.2312191616400.3175268@ubuntu-linux-20-04-desktop>
 <70b0b556-d103-46dd-a69c-004e9adf27bf@suse.com>
In-Reply-To: <70b0b556-d103-46dd-a69c-004e9adf27bf@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM0PR08MB3745:EE_|DBBPR08MB10589:EE_|AM2PEPF0001C70A:EE_|AS8PR08MB9387:EE_
X-MS-Office365-Filtering-Correlation-Id: 3bb9c675-c11d-4111-ec45-08dc0138bb41
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 fsx1L3okW9L0On1AuMooBXDPAA8TsvPWSvxUrQd2WR68XxqxwbhgCedtuJv6okjWzNgOCvyRobEMGZkFMwdUaJe7Ml8QO8m8pkL9CKp74hfphrryfzG5ktp5HUEZsS2qRB6+uavgYVdgGc/nY9c+r6/TNKurwUngT6/smiKC9uEbasCdSh5BC9zW0dOnTf1bf96ECgm4i3shvBu46FNvZp47WF/T1inMk/kXj1exftYISMV8Mqw1g0tKUNBsluv5hF556z/NGHaduSfW7RRKeF06EbCO62bhqA8Q0sOhGknGXXVPrpeT87SNdHhBYfAHSpxUv7Hc7D6Qae3b+C/gPy+3WGTkaTVuEqoPh1Bjug7KjPGu/qtlT/pRkb3XeagRgCj07JQHQk8+6w59lDCefZJ1YXNZv0lV22LpygF5orE1mDAEq+ygLGnMrtb0i0j60inm/Vl7ofeLP+rssojmnD75x635+d0Tn9Yi5e0JGl20VmZRxv0w9Nsq6Iwutt58EwoQupmVSgXBQ/Tu+H6AWQcD8u5ZL8g93ZjV80ISLqiBfTEZ3IAXpml+grt+CW+aqZuE6yjzkg3+4haOpqZ33WS5uQ/NmEIoZWZCTa9IlknbkwGqrejB06WVhctMnG1naDNnLunKXdJU5VfJ5aJa6g==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(136003)(396003)(376002)(39860400002)(346002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(478600001)(54906003)(316002)(66946007)(76116006)(91956017)(66556008)(66476007)(66446008)(6916009)(64756008)(38100700002)(71200400001)(38070700009)(41300700001)(86362001)(53546011)(6512007)(6506007)(36756003)(33656002)(26005)(5660300002)(4326008)(83380400001)(4001150100001)(122000001)(2616005)(8936002)(8676002)(2906002)(6486002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <986801E64D23E349BB5EF4A2B050FDD0@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10589
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:
 AM2PEPF0001C70A.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2cc12622-d094-44eb-4f3b-08dc0138b5bf
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	pAdc3qB3xv+EVuP+RGsUzH4+8qbOayeIEoW4UX8CLPlg+ahy/ptkrzc2AjwspHYgv9MPp0M4wzaGol8hKFee5znqMi7NtXfLAPs02Ci7Qf8W7grR+RRkqz3Mh14YTqz/rvffqUrbrG5L7WgWtXaMEnzmONUWNaCOSVx3m7wea5TkWqKngRKM07zyZ7BzKNh0LzhDXyYzMpcFoUQBg0kR1b765OTCjIwlhRZECwFjmsbqsj3iKIsE5j0Grj9GcMSzK0CgZDwDtwPmC5pqYekFb2k/LeWCAa7s+cR2qRnU2vJrN5Db7dmle5wDmoACfrRnsxC25rl4IFbv/oT5pi+4xs+Sseobic2Im6gPOYSEBtLgsNeZewLM91IROSW4NxVcRgBip5cuFtS4HGfJuGNsLegwhCMhFUTiWr3SIgy4pQRa3Jlk2tPDyzN8BGmzytwzNI0nNJG6tkgSKaiz4B2c3ISDyPSXfxAT1BUI1GKpOlhWw789bUrm+pKVA2xLO4lfv+5UNHUOKpu1n7fv/nxEKIWbfXG1KwULLjmnOVEORDUsV4LH6dmLyUAU8/6sDjMvHGxIpv40QQB+0AHQoeVDot9MNYFp498JPw9LUPkj+SzKSazRAiCLTCedk57cQrZDxSaebyt1PcirXj5rc+EWFbEHFHrBJhYxgRQbz5uhz5GeNDbAPs8gGzEarIJTDIMLWTc8m7pdGA7poR/YuEcEFvrpQ0cmKUhbjr9OVfIuxUkn0Pz5E/uKXYfHS3/FXhyM
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:(13230031)(4636009)(376002)(346002)(136003)(396003)(39860400002)(230922051799003)(64100799003)(451199024)(1800799012)(82310400011)(186009)(46966006)(36840700001)(40470700004)(36860700001)(2906002)(47076005)(4001150100001)(41300700001)(86362001)(33656002)(81166007)(36756003)(82740400003)(356005)(316002)(478600001)(54906003)(6506007)(6512007)(8936002)(8676002)(6486002)(70586007)(70206006)(336012)(5660300002)(26005)(6862004)(4326008)(83380400001)(53546011)(2616005)(107886003)(40480700001)(40460700003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 08:50:35.0753
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3bb9c675-c11d-4111-ec45-08dc0138bb41
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:
	AM2PEPF0001C70A.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9387

DQoNCj4gT24gMjAgRGVjIDIwMjMsIGF0IDA4OjQxLCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMjAuMTIuMjAyMyAwMToxNywgU3RlZmFubyBTdGFiZWxs
aW5pIHdyb3RlOg0KPj4gT24gVHVlLCAxOSBEZWMgMjAyMywgTHVjYSBGYW5jZWxsdSB3cm90ZToN
Cj4+Pj4gT24gMTkgRGVjIDIwMjMsIGF0IDExOjA1LCBOaWNvbGEgVmV0cmluaSA8bmljb2xhLnZl
dHJpbmlAYnVnc2VuZy5jb20+IHdyb3RlOg0KPj4+PiBPbiAyMDIzLTEyLTE5IDExOjUxLCBOaWNv
bGEgVmV0cmluaSB3cm90ZToNCj4+Pj4+IE9uIDIwMjMtMTItMTkgMTE6MzcsIEphbiBCZXVsaWNo
IHdyb3RlOg0KPj4+Pj4+IE9uIDE5LjEyLjIwMjMgMTA6MDIsIE5pY29sYSBWZXRyaW5pIHdyb3Rl
Og0KPj4+Pj4+PiAtLS0gYS9kb2NzL21pc3JhL2V4Y2x1ZGUtbGlzdC5qc29uDQo+Pj4+Pj4+ICsr
KyBiL2RvY3MvbWlzcmEvZXhjbHVkZS1saXN0Lmpzb24NCj4+Pj4+Pj4gQEAgLTIwOSw2ICsyMDks
MTAgQEANCj4+Pj4+Pj4gICAgICAgICAgInJlbF9wYXRoIjogImluY2x1ZGUvYWNwaS9hY2dsb2Jh
bC5oIiwNCj4+Pj4+Pj4gICAgICAgICAgImNvbW1lbnQiOiAiSW1wb3J0ZWQgZnJvbSBMaW51eCwg
aWdub3JlIGZvciBub3ciDQo+Pj4+Pj4+ICAgICAgICB9LA0KPj4+Pj4+PiArICAgICAgICB7DQo+
Pj4+Pj4+ICsgICAgICAgICAgInJlbF9wYXRoIjogImluY2x1ZGUvYWNwaS9hY21hY3Jvcy5oIiwN
Cj4+Pj4+Pj4gKyAgICAgICAgICAiY29tbWVudCI6ICJJbXBvcnRlZCBmcm9tIExpbnV4LCBpZ25v
cmUgZm9yIG5vdyINCj4+Pj4+Pj4gKyAgICAgICAgfSwNCj4+Pj4+PiBUb2dldGhlciB3aXRoIHdo
YXQncyBhbHJlYWR5IHRoZXJlIChpbiBjb250ZXh0KSwgd291bGRuJ3QgaXQgYmV0dGVyIGJlDQo+
Pj4+Pj4gdGhlIGVudGlyZSBkaXJlY3RvcnkgdGhlbiB3aGljaCBpcyBleGNsdWRlZCwgb3IgYXQg
bGVhc3QgYWxsDQo+Pj4+Pj4gaW5jbHVkZS9hY3BpL2FjKi5oIGNvbGxlY3RpdmVseSAoYW5kIHBl
cmhhcHMgYWxzbw0KPj4+Pj4+IGluY2x1ZGUvYWNwaS9wbGF0Zm9ybS9hYyouaCk/DQo+Pj4+Pj4g
SmFuDQo+Pj4+PiArQ2MgTHVjYSBGYW5jZWxsdQ0KPj4+Pj4gU3VyZS4gSSB3YXNuJ3QgY2VydGFp
biB3aGljaCBmaWxlcyBhcmUgaW1wb3J0ZWQgZnJvbSBBQ1BJIENBIGFuZCB3aGljaCBhcmVuJ3Qu
DQo+Pj4+PiBJJ20gYWxzbyBub3Qgc3VyZSB3aGV0aGVyICJpbmNsdWRlL2FjcGkvYWMqLmgiIHdv
dWxkIGJlIHByb3Blcmx5IHJlY29nbml6ZWQgYnkgb3RoZXIgdG9vbGluZyB0aGF0IHVzZXMgZXhj
bHVkZS1saXN0Lmpzb24gKG9ubHkgY3BwY2hlY2sgSSB0aGluaykuIEkgQ2MtZWQgTHVjYSBGYW5j
ZWxsdSBvbiB0aGlzLg0KPj4+PiANCj4+Pj4gSXQgb2NjdXJyZWQgdG8gbWUgdGhhdCBpdCdzIHN1
cmVseSBvayB0byB1c2UgImluY2x1ZGUvYWNwaS9hYyoiIGFuZCAiaW5jbHVkZS9hY3BpL3BsYXRm
b3JtL2FjKiIuDQo+Pj4gDQo+Pj4gWWVzIEkgdGhpbmsgaXTigJlzIGZpbmUsIGl0IGp1c3QgY29t
ZSB0byBteSBtaW5kIG5vdyB0aGF0IHRoaXMgY291bGQgaGF2ZSB0aGUgcmlzayB0aGF0IGlmDQo+
Pj4gYW5vdGhlciBmaWxlIGlzIGFkZGVkIHdpdGgg4oCYYWMnIHByZWZpeCwgZXZlbiBpZiBpdCBj
b3VsZCBiZSBzdWJqZWN0IHRvIE1JU1JBIGNvbXBsaWFuY2UsDQo+Pj4gaXQgd2lsbCBiZSBleGNs
dWRlZC4NCj4+PiANCj4+PiBJZiB0aGF0IHJpc2sgaXMgbmVnbGlnaWJsZSBmb3IgdGhlIG1haW50
YWluZXIgb2YgdGhhdCBwYXJ0LCB0aGVuIGl04oCZcyBmaW5lLg0KPj4gDQo+PiBJIHRoaW5rIGl0
IGlzIE9LIGVpdGhlciB3YXksIEknbGwgbGV0IEphbiBwaWNrIGhpcyBwcmVmZXJlbmNlLg0KPiAN
Cj4gSXQgaGFzbid0IGJlY29tZSBjbGVhciB0byBtZSB3aGF0IHRoZSBiZW5lZml0IHdvdWxkIGJl
IG9mIG9taXR0aW5nIHRoZQ0KPiB0cmFpbGluZyAuaC4NCg0KWWVzLCB3aXRoIHRoZSBleHRlbnNp
b24gaXMgYmV0dGVyLCB0aGUgc2FtZSBhcyB3ZSBhbHJlYWR5IGRvIGhlcmU6DQoNClsuLi5dDQp7
DQogICAgInJlbF9wYXRoIjogImNvbW1vbi91biouY+KAnSwNCiAgICAiY29tbWVudCI6ICJ1bmx6
NC5jIGltcGxlbWVudGF0aW9uIGJ5IFlhbm4gQ29sbGV0LCB0aGUgb3RoZXJzIHVuKiBhcmUgZnJv
bSBMaW51eCwgaWdub3JlIGZvciBub3ciDQp9LA0KWy4uLl0NCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 08:53:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 08:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657451.1026281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsKG-0003B4-NN; Wed, 20 Dec 2023 08:53:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657451.1026281; Wed, 20 Dec 2023 08:53:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsKG-0003Ax-Kb; Wed, 20 Dec 2023 08:53:12 +0000
Received: by outflank-mailman (input) for mailman id 657451;
 Wed, 20 Dec 2023 08:53:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFsKF-0003Ao-CO
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 08:53:11 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2457f3a9-9f15-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 09:52:44 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40c256ffdbcso63522605e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 00:52:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c10-20020a056000104a00b00336787ccc92sm1634026wrx.114.2023.12.20.00.52.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 00:52:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2457f3a9-9f15-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703062364; x=1703667164; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ROU0AEBFYd3KnAl6fIcmKX1GoZ/DRJ6fdlH15aA/zvk=;
        b=a6i1fLT6T+Kh3riU/7pk0p4YiUvP0P2bZtjakwcoYAz1FgG8yiQ+m9xZwOxdVYfkK1
         HJkq4525NmLr3IlGvQSZ6YqhX7K0Mf0qWrMWUnJXrHzqpRpNfF0ON7KuU3WBtU+R2bnF
         pluWVHJz8OmqOgiVJuhUedv2pVwUHkswPnzWBnj8HAryh6h7qgCq+HGZ0BIigotnU9Pk
         lDsi49JCwwULlIjohS49SFAOrm3O++MO1QCNivWchpbD4fJBoaN8qlkWEZ/CQxgqpiwG
         sSjbykTGkp34gBLJ7aUxU0rNM1vDrPZgCdovydQfx4DoQkdnQchA24Re8UleEAmxFKJz
         /TyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703062364; x=1703667164;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=ROU0AEBFYd3KnAl6fIcmKX1GoZ/DRJ6fdlH15aA/zvk=;
        b=NbCpuNGyiATPDaFuSWG5eBts6/EFkDxFENilDOtdTwNninCYJTJQitrqHLUGq0z1JR
         hTy9s0pP7d5/Zl48Z6jUVKVAHIMMiGogL8i/bxoOGhPoOOoUTzIAsD+Vd7etMQ/FlAoc
         ePTPWcUA4dimK8Q/k4khh4XMlEfMbtlO0ffxtxuWirfG8tcT/h7HcDp+HAo2y9WyhSQo
         PxuWorrauY8Kd2tQuGHf55x/rNS80I5nUM7jz6BN5BUqihWlPwmm3hLKSvjO2jvjn585
         JXs4MaPB5RL+tK0rQzc94JjZEwS81YeEMLAUEo0GWcJlN32i8ycrnxwYdR6AesA7efkf
         r86w==
X-Gm-Message-State: AOJu0YwpTxvy/1o2xefAs5Dg7AIdNd+YcOnM4qVCaqZPtRcG3wEpgJ8d
	MFU4BdLdY5GkoSN+nO0fCiQrp15xZn/z3i/gq9tk
X-Google-Smtp-Source: AGHT+IFJkAgctcsEQG8iQZ2j+ZOLOfSg2sAGsVk7rLJuc70FR5XSp/O0nvhLikQLrCC9RnUDxmHLiw==
X-Received: by 2002:a05:600c:43c5:b0:405:1c19:b747 with SMTP id f5-20020a05600c43c500b004051c19b747mr10783109wmn.15.1703062364399;
        Wed, 20 Dec 2023 00:52:44 -0800 (PST)
Message-ID: <dfb8321b-f9ed-48ec-b646-830caba2c4a1@suse.com>
Date: Wed, 20 Dec 2023 09:52:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 01/17] pci: msi: pass pdev to pci_enable_msi()
 function
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.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>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-2-volodymyr_babchuk@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231202012556.2012281-2-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.12.2023 02:27, Volodymyr Babchuk wrote:
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -452,21 +452,29 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
>              if ( rc > 0 )
>              {
>                  struct msi_desc *msi_desc = NULL;
> +                struct pci_dev *pdev;
>  
>                  pcidevs_lock();
>  
> -                rc = pci_enable_msi(&msi, &msi_desc);
> -                if ( !rc )
> +                pdev = pci_get_pdev(NULL, msi.sbdf);
> +                if ( pdev )
>                  {
> -                    struct irq_desc *desc = irq_to_desc(msi.irq);
> -                    unsigned long flags;
> -
> -                    spin_lock_irqsave(&desc->lock, flags);
> -                    rc = setup_msi_irq(desc, msi_desc);
> -                    spin_unlock_irqrestore(&desc->lock, flags);
> -                    if ( rc )
> -                        pci_disable_msi(msi_desc);
> +                    rc = pci_enable_msi(pdev, &msi, &msi_desc);
> +
> +                    if ( !rc )
> +                    {
> +                        struct irq_desc *desc = irq_to_desc(msi.irq);
> +                        unsigned long flags;
> +
> +                        spin_lock_irqsave(&desc->lock, flags);
> +                        rc = setup_msi_irq(desc, msi_desc);
> +                        spin_unlock_irqrestore(&desc->lock, flags);
> +                        if ( rc )
> +                            pci_disable_msi(msi_desc);
> +                    }
>                  }
> +                else
> +                    rc = -ENODEV;
>  
>                  pcidevs_unlock();

When mere re-indenting is needed, and even more so when indentation gets
this deep, I think it is necessary to consider alternatives: With

                pdev = pci_get_pdev(NULL, msi.sbdf);
                rc = pdev ? pci_enable_msi(pdev, &msi, &msi_desc) : -ENODEV;

I think all of the other code churn could be avoided.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:04:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:04:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657460.1026291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsUe-0005dF-Nf; Wed, 20 Dec 2023 09:03:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657460.1026291; Wed, 20 Dec 2023 09:03:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsUe-0005d8-L9; Wed, 20 Dec 2023 09:03:56 +0000
Received: by outflank-mailman (input) for mailman id 657460;
 Wed, 20 Dec 2023 09:03:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFsUd-0005d2-Rm
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:03:55 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2e3e019-9f16-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:03:53 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40d3352b525so6159255e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:03:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v8-20020a05600c444800b0040d2e37c06dsm4365776wmn.20.2023.12.20.01.03.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 01:03:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2e3e019-9f16-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703063033; x=1703667833; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jbpTp+bhvBXZXu2uiBzL+/2Efsmokikw5ozC+4yechU=;
        b=AAC2B13fAhHMJh+UoriZ+hO2HRflbNN6XEJN88xBuJ9jGhRzzPklqJKQInbucNZ611
         8jbreDvvkBtymhF4C4Ja+c2D6bTqNPSgJrgzeo7aAHRFk9uVJFLFEPP5KkP/VK/XI65O
         Xs6RwsYYL8t1lYRkv9QgiRzi2qju5lJrDssQvGzHmNL5oKJfc4AWnM4x85U83jF6GWQi
         UYOlokldoWnxyxolBwkGycA1Mfu0UW0Hqgd6g35RMc/i/KWRspgElSpgd7vc11ZQvRW/
         4+gDSgaqd2jyaTTyE1Oe5ThycYaT8t8B3vGnTrh7WCtxChJU9mBRggWKn6l1PmwzRBh9
         ZBKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703063033; x=1703667833;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=jbpTp+bhvBXZXu2uiBzL+/2Efsmokikw5ozC+4yechU=;
        b=tIptlOiZWSxRQSfYs1FbsgwA7RNikQWTpQnpH9r5Ktw/lf4GNoSIWs/fnuab8O72mG
         MBocyctmfvWILOPlwsu9aox1NwU87OsCrmDgF0MQ/1nmZdRrtXFDaJE0T02SeamGgDZk
         ZwYDKuT3gfrp+z0ztlPDCgrwnS61NS3tp3d04VQUpk4KQojSV91JZvsPqeksM1hsXEi+
         1KsM5PzgPmtobITXcuBLoiSO6/MqOQH+TDaSDup9PyMUuiUiP356yfwjZbfMaDSWHn7o
         ou+vizDQNl9rTNGGkRg7eZ1SrdGX1adBJ2+J8hG/33CpTzRdm2an9Yq7y7npPCqB/QfY
         XOEA==
X-Gm-Message-State: AOJu0YwrD1akC5Cx3GUPAfRS1vAI9sri8c8npJPSOzRFnhAIyLtQRWNS
	DX9wYSi0iO9hgL1SCju8I4Ps
X-Google-Smtp-Source: AGHT+IFNG6d80U6pJZt57Ee+su+SJtkdz6ZZGMEsiIsMw4yMEGLAo547IBqyl206gDJW0AclaFAOGA==
X-Received: by 2002:a05:600c:538c:b0:40d:3076:1f25 with SMTP id hg12-20020a05600c538c00b0040d30761f25mr622462wmb.151.1703063032963;
        Wed, 20 Dec 2023 01:03:52 -0800 (PST)
Message-ID: <87e185ab-6129-41ea-8424-9484659840d1@suse.com>
Date: Wed, 20 Dec 2023 10:03:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-2-roger.pau@citrix.com>
 <bc08ed7e-766d-4f0e-a7ef-994d09d1dbe2@citrix.com> <ZYKmn-lvKQpauL6Z@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYKmn-lvKQpauL6Z@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 09:32, Roger Pau MonnÃ© wrote:
> On Tue, Dec 19, 2023 at 07:46:11PM +0000, Andrew Cooper wrote:
>> On 15/12/2023 11:18 am, Roger Pau Monne wrote:
>>> The minimal function size requirements for livepatch are either 5 bytes (for
>>
>> "for an x86 livepatch", seeing as we're touching multiple architectures
>> worth of files.
>>
>> I know it's at the end of the sentence, but it wants to be earlier to be
>> clearer.
>>
>>> jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  Ensure
>>> that distance between functions entry points is always at least of the minimal
>>> required size for livepatch instruction replacement to be successful.
>>>
>>> Add an additional align directive to the linker script, in order to ensure that
>>> the next section placed after the .text.* (per-function sections) is also
>>> aligned to the required boundary, so that the distance of the last function
>>> entry point with the next symbol is also of minimal size.
>>>
>>> Note that it's possible for the compiler to end up using a higher function
>>> alignment regardless of the passed value, so this change just make sure that
>>> the minimum required for livepatch to work is present.  Different compilers
>>> handle the option differently, as clang will ignore -falign-functions value
>>> if it's smaller than the one that would be set by the optimization level, while
>>> gcc seems to always honor the function alignment passed in -falign-functions.
>>> In order to cope with this behavior and avoid that setting -falign-functions
>>> results in an alignment inferior to what the optimization level would have
>>> selected force x86 release builds to use a function alignment of 16 bytes.
>>
>> Yuck :(
>>
>> The same will be true for all other architectures too?
> 
> I would expect that for gcc I guess.
> 
>> What happens on ARM, which also picks up an explicit choice in livepatch
>> builds?
> 
> Arm AFAICT seems to use a 4 byte function alignment with -O2 (both gcc
> and clang), so that matches what we need to enforce for livepatch.  If
> we ever need a higher alignment for livepatch reasons it would be a
> multiple of the minimum one set by the compiler, so that should be
> fine.

Thinking of it: The forcing of 16-byte alignment in release builds of x86
is based on observations with certain compiler versions, iirc. What if
future versions decide to go lower/higher for, perhaps, very good reasons?
We don't really mean to override the compiler's choice, so maybe further
probing is actually necessary?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:08:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:08:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657465.1026301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsZH-0006Fz-9z; Wed, 20 Dec 2023 09:08:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657465.1026301; Wed, 20 Dec 2023 09: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 1rFsZH-0006Fs-7R; Wed, 20 Dec 2023 09:08:43 +0000
Received: by outflank-mailman (input) for mailman id 657465;
 Wed, 20 Dec 2023 09:08: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFsZF-0006Fm-Vn
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:08: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 5d49ff13-9f17-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:08:39 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-33664b6d6d5so2805112f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:08:39 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 t18-20020a5d42d2000000b0033678e0c99bsm1482496wrr.96.2023.12.20.01.08.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 01:08:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d49ff13-9f17-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703063319; x=1703668119; 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=L7SvkQI6kkO/NNrGzSJNZidwZDKmGcYc0nKLS+XLB6M=;
        b=oscQkP1N1+tFh62yGhB/litprriEzDW0/uUMbYEhvaPU6cLkbTnZ4wlS8JU1D9xcbk
         ifD7RGroabLk7I9slquMuUhh/K/9wc2NZwJKKrHGaruQb1r2m0aIr/z/Q0DEJL+dlxHs
         m21qTZtrcyLU26UyemFCcmzL+o+t3NPvERGGo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703063319; x=1703668119;
        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=L7SvkQI6kkO/NNrGzSJNZidwZDKmGcYc0nKLS+XLB6M=;
        b=Ze2hlu92oJAhVkZ9e1C4lRQWufurPiwFFsq2qpDASm6oWpV4Bp38vtM4n7REPQbaqu
         aI+zav8/kiudUVxKUure/wjskzkkuDBxPaqcDpglRLs0xHPGebebaDXN5ON6OxzcMF5N
         9Woxi6RY8RuR+qUce184DEX4mlKB69KeJfDvJUJy3qpm2gkopaig9e6yeR6mqa/vxW6+
         bs7cTBlYXbjPHcYGdxUxZ/SatviFgPajns1cFw1+VHkEcDkf+nB97/A5G/8IRjOWWNzP
         ekgVtder6FKibSqej2V6RezPt1yBMneBC+vKo2vuTFGF59OrG2mm441Fg9HJjFvk2Cfb
         WQ0g==
X-Gm-Message-State: AOJu0YyQdZe9gSSMyRFq/KDboCcGmXbKnEWYfHSq4m96DYpIzwnHcWes
	09/AxhqeDgnaX0kiZornF11LuQ==
X-Google-Smtp-Source: AGHT+IEIYBNKpLR3cMAF9mAj5TkrrRbh64Na3ZoFGC9AXvo0D8/r9tgtQhczQ4tyIQWbIVwHviuKNQ==
X-Received: by 2002:adf:f68c:0:b0:336:64cd:3fc3 with SMTP id v12-20020adff68c000000b0033664cd3fc3mr2982679wrp.59.1703063318819;
        Wed, 20 Dec 2023 01:08:38 -0800 (PST)
Date: Wed, 20 Dec 2023 10:08:37 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.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 v4 2/4] xen/x86: introduce self modifying code test
Message-ID: <ZYKvFUICQ4pKwH0S@macbook>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-3-roger.pau@citrix.com>
 <32d6d42f-2736-42ed-bad3-a6bdaedf588c@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <32d6d42f-2736-42ed-bad3-a6bdaedf588c@citrix.com>

On Tue, Dec 19, 2023 at 08:31:29PM +0000, Andrew Cooper wrote:
> On 15/12/2023 11:18 am, Roger Pau Monne wrote:
> > Introduce a helper to perform checks related to self modifying code, and start
> > by creating a simple test to check that alternatives have been applied.
> >
> > Such test is hooked into the boot process and called just after alternatives
> > have been applied.  In case of failure a message is printed, and the hypervisor
> > is tainted as not having passed the tests, this does require introducing a new
> > taint bit (printed as 'T').
> 
> We've got stub_selftest() in extable.c which currently does an ah-hoc
> form of this taint via warning_add().
> 
> Nothing else comes to mind, but I would suggest breaking out the new
> taint into an earlier patch, as this one is complicated enough anyway.

I see, so introduce the taint in a previous patch and use it in
stub_selftest() failure,

> > diff --git a/xen/arch/x86/include/asm/test.h b/xen/arch/x86/include/asm/test.h
> > new file mode 100644
> > index 000000000000..e96e709c6a52
> > --- /dev/null
> > +++ b/xen/arch/x86/include/asm/test.h
> > @@ -0,0 +1,30 @@
> > +#ifndef _ASM_X86_TEST_H_
> > +#define _ASM_X86_TEST_H_
> > +
> > +#include <xen/types.h>
> > +
> > +int test_smoc(uint32_t selection, uint32_t *results);
> > +
> > +static inline void execute_selftests(void)
> 
> IMO run_selftests() would be better, but this is already not all of our
> selftests, and this particular function really doesn't warrant being
> static inline.
> 
> But I'm also not sure what this is liable to contain other than
> test_smoc() so I'm not sure why we want it.

This was requested by Jan, he was concerned that more of such tests
would appear.  It's new in v4 IIRC.

> > diff --git a/xen/arch/x86/test/smoc.c b/xen/arch/x86/test/smoc.c
> > new file mode 100644
> > index 000000000000..09db5cee9ae2
> > --- /dev/null
> > +++ b/xen/arch/x86/test/smoc.c
> > @@ -0,0 +1,66 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +
> > +#include <xen/errno.h>
> > +
> > +#include <asm/alternative.h>
> > +#include <asm/cpufeature.h>
> > +#include <asm/test.h>
> > +
> > +static bool cf_check test_insn_replacement(void)
> > +{
> > +#define EXPECTED_VALUE 2
> > +    unsigned int r = ~EXPECTED_VALUE;
> > +
> > +    alternative_io("", "mov %1, %0", X86_FEATURE_ALWAYS,
> > +                   "+r" (r), "i" (EXPECTED_VALUE));
> > +
> > +    return r == EXPECTED_VALUE;
> > +#undef EXPECTED_VALUE
> > +}
> > +
> > +int test_smoc(uint32_t selection, uint32_t *results)
> > +{
> > +    struct {
> > +        unsigned int mask;
> > +        bool (*test)(void);
> > +        const char *name;
> > +    } static const tests[] = {
> > +        { XEN_SYSCTL_TEST_SMOC_INSN_REPL, &test_insn_replacement,
> > +          "alternative instruction replacement" },
> > +    };
> 
> Ah.Â  I realise I said "like XTF", but I meant "checking one thing at a
> time".
> 
> While this pattern for tests[] is very convenient in XTF, it has one
> major downside in Xen, and that's the proliferation of ENDBR's in the
> running binary.

But for the livepatch case for example it's interesting to patch
functions that have the ENDBR prefix.

I do like having all the tests in an array, as then adding new ones is
trivial.

> Also (see below), returning bool isn't ok.Â  In the case of a failure, we
> need:
> 
> printk(XENLOG_ERR "%s() Failure: Expected $FOO, got $BAR\n");

There's already a message printed below, that's currently limited
to system_state < SYS_STATE_active, but I would be fine with printing
unconditionally that prints which test failed in a human readable
form:

printk(XENLOG_ERR "%s test failed\n", tests[i].name);

So that would print:

"alternative instruction replacement test failed"

on the Xen dmesg.

On one of the first versions test functions did return a value, but I
ended up switching to this boolean version because I didn't see much
value in returning anything that's not success or failure from the
tests.

I can switch back to returning a value, and then the array of tests
will also store the expected returned value.

> because that's what a human needs to know in order to fix the issue, not
> a generic "something failed".
> 
> > +    unsigned int i;
> > +
> > +    if ( selection & ~XEN_SYSCTL_TEST_SMOC_ALL )
> > +        return -EINVAL;
> 
> I'm not sure this is sensible.Â  It's a testing hypercall, so why
> shouldn't I be able to pass ~0 to mean "test everything the hypervisor
> knows about" ?

Well, for one livepatch tests will fail if the livepatch hasn't been
applied yet.

> > +
> > +    if ( results )
> > +        *results = 0;
> > +
> > +    for ( i = 0; i < ARRAY_SIZE(tests); i++ )
> > +    {
> > +        if ( !(selection & tests[i].mask) )
> > +            continue;
> > +
> > +        if ( tests[i].test() )
> > +        {
> > +            if ( results )
> > +                *results |= tests[i].mask;
> 
> How is results supposed to be used?
> 
> XEN_SYSCTL_TEST_SMOC_INSN_REPL covers about 15 things we want to test,
> making this output mask useless.

The output mask just maps the input tests into output results.

For example given the case you want to execute all tests (~0), and the
livepatch replacements haven't been applied yet, the altinstructions
test will succeed, but the livepatch ones will fail (as expected), we
need a way to report this back to the caller.

> 
> The selftests, like the exception fixup ones, are supposed to be
> guarantee pass.Â  Failure is an exceptional case, and is only expected to
> be found with new compilers and new SMC development.

Livepatch tests (at least the one I have implemented in patch 3) is
expected to fail until a livepatch is applied to make it succeed.  We
do care about checking that it first fails, then we upload the
livepatch and it succeeds, and that reverting the livepatch makes it
fail again.

> I can kind of see how an input mask might be useful, although I wouldn't
> have had one myself.Â  With correct diagnostics, running the hypercall
> multiple times isn't useful to debugging, and without correct
> diagnostics, the feedback provided by this is useless.
> 
> So honestly, I think this "results" output is overengineered and doesn't
> help the cases where it is actually going to matter.

So for altinstructions it's true that the expectation is for them to
always succeed, that's not the case for livepatch ones, where it's
useful to explicitly test for failure, hence we need a fine grained
way to report failure of specific tests.

> 
> Remember most of all that self-modifying code which are going to cause
> failures here have a high chance of crashing Xen outright.Â  And we're
> deliberately trying to make this happen in CI and before a breaking
> change gets out into releases.
> 
> > +            continue;
> > +        }
> > +
> > +        if ( system_state < SYS_STATE_active )
> > +            printk(XENLOG_ERR "%s test failed\n", tests[i].name);
> 
> This is a test hypercall, for the purpose of running testing, in
> combination with test livepatches.Â  Eliding the diagnostics isn't ok.
> 
> Logspam concerns aren't an issue.Â  If the user runs `while :; do
> xen-test-smc; done` in dom0 then they get to have a full dmesg ring.
> 
> Don't let that get in the way of having a sensible time figuring out
> what went wrong.

This was requested by Jan, and indeed my original intention was to
unconditionally print the messages, as I think they are helpful.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:09:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:09:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657468.1026312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsZo-0006ke-JT; Wed, 20 Dec 2023 09:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657468.1026312; Wed, 20 Dec 2023 09: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 1rFsZo-0006kX-Fd; Wed, 20 Dec 2023 09:09:16 +0000
Received: by outflank-mailman (input) for mailman id 657468;
 Wed, 20 Dec 2023 09:09: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFsZm-0006g4-VA
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:09:14 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71f43dc9-9f17-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 10:09:14 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-33621d443a7so5600825f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:09:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 b18-20020adfee92000000b003367b7a5581sm972668wro.28.2023.12.20.01.09.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 01:09:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71f43dc9-9f17-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703063353; x=1703668153; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0fsfGXH05XhN0MsOyTIC7XkedC1qMWuTISrgLmFdKjw=;
        b=SLKdgMJ5asP07Nuihw3hADPBFb0EHf+LgpP/gVC8ABA/EIOs5HhFr5n/Zlynmgo+EG
         znFKfbzvzi/YWAgadDijJMR21PY3ffn5dtogB08lR7seS9fFFmh4G8yoUDKHPfTPlwnF
         uRkDrSfqoFp38dy7l0BwwpeSlxpB8LfZTRL3i6YJ+yP7Ndnz3G3rEMQjvYnNuFhCiYG+
         XqnXWj68+T265n4bzHXikzvSD0OiY2UPBcRlQXFzCOjBu1n0xqhiHUCajM7YCpLvOUP3
         owkkgYNl8kiy11fK/bWDkW05Jchaq9ItL4ww2uwhq7zLuz7BSVFO7q4KkltBxIopkwfY
         aZ0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703063353; x=1703668153;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=0fsfGXH05XhN0MsOyTIC7XkedC1qMWuTISrgLmFdKjw=;
        b=mDbf3FOvK5zxis98Mf8Pdn16Vn+ogXYYOUH0Q/xkm1EWWzpOBSz9bneiIwZUTInHwK
         T24csX4exLVnQoWyqALvZ1Reew7bxCrl9BDR9CGNV+p5asxAWR/EyBZsxMrX56V/sRfh
         dFcOB4mGuC2Y16Zo3JUjV+sVXQ+AQ/6T+iIbo6KsXD9I6PGfQVFHllrBassOsa8bJlCF
         NPZ9N1dUh+5shPWFDsx1TGXrIcTZaw4aYeNFfWAdJG5ilKgjHk+yvEOXypC6onzV57XF
         w8ooPpjNgNEEzrD1jnhh4CRXIs08QIIr7HlU7/bvAeZk/Wv2SZwJ/ou7ImP0FwtDRFO2
         +DTQ==
X-Gm-Message-State: AOJu0YzrR6PDemX60yeNi65TvkXH216uLQXKzOKaQqiaSs/djLkk7Q3j
	UI3RQf0kSh2OPfaG711uYzwj
X-Google-Smtp-Source: AGHT+IHddzYxE6S168oT3Spmr7CPML3O/nr3jhsDVw3J/heIFTWUFfSVaUGQNGVVjw1QNPTaCaiHpQ==
X-Received: by 2002:a5d:6e89:0:b0:333:2fd2:2f05 with SMTP id k9-20020a5d6e89000000b003332fd22f05mr8321549wrz.126.1703063353640;
        Wed, 20 Dec 2023 01:09:13 -0800 (PST)
Message-ID: <3957ab63-9f77-4342-a470-62a0c077bb55@suse.com>
Date: Wed, 20 Dec 2023 10:09:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xen/x86: introduce self modifying code test
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Roger Pau Monne <roger.pau@citrix.com>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-3-roger.pau@citrix.com>
 <32d6d42f-2736-42ed-bad3-a6bdaedf588c@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <32d6d42f-2736-42ed-bad3-a6bdaedf588c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.12.2023 21:31, Andrew Cooper wrote:
> On 15/12/2023 11:18 am, Roger Pau Monne wrote:
>> +        if ( system_state < SYS_STATE_active )
>> +            printk(XENLOG_ERR "%s test failed\n", tests[i].name);
> 
> This is a test hypercall, for the purpose of running testing, in
> combination with test livepatches.Â  Eliding the diagnostics isn't ok.
> 
> Logspam concerns aren't an issue.Â  If the user runs `while :; do
> xen-test-smc; done` in dom0 then they get to have a full dmesg ring.
> 
> Don't let that get in the way of having a sensible time figuring out
> what went wrong.

Since it was me who asked to suppress this when invoked through sysctl:
I can live with an unconditional printk() here, but I think this goes
against the "what can be done in user space should be done there"
principle: If enough information is propagated back, user space should
be able to provide all necessary output without even a need for the
observer to run "xl dmesg".

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:10:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:10:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657473.1026322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsap-0008Vi-0y; Wed, 20 Dec 2023 09:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657473.1026322; Wed, 20 Dec 2023 09:10:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsao-0008Vb-U2; Wed, 20 Dec 2023 09:10:18 +0000
Received: by outflank-mailman (input) for mailman id 657473;
 Wed, 20 Dec 2023 09:10:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TKvH=H7=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFsan-0008VT-Hx
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:10:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 96e29373-9f17-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 10:10:16 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id C32AB4EE0C91;
 Wed, 20 Dec 2023 10:10:15 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96e29373-9f17-11ee-98eb-6d05b1d4d9a1
MIME-Version: 1.0
Date: Wed, 20 Dec 2023 10:10:15 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, consulting@bugseng.com,
 Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
 <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org, Jan Beulich
 <jbeulich@suse.com>
Subject: Re: [XEN PATCH] xen: add acmacros.h to exclude-list.json
In-Reply-To: <D2BDB22D-419D-4D4E-B242-C8FD70D23E5E@arm.com>
References: <664ddc412905546d44d3e311a743ba5217a6243b.1702976486.git.nicola.vetrini@bugseng.com>
 <055b6cf3-4f29-4f1d-b650-26c6d9be8832@suse.com>
 <2fd03776043811a8ceae9ae41de5f0fa@bugseng.com>
 <2c64af71dcb3984f1753ef115868cb7b@bugseng.com>
 <2F345562-4049-4A50-9793-D0002B239C43@arm.com>
 <alpine.DEB.2.22.394.2312191616400.3175268@ubuntu-linux-20-04-desktop>
 <70b0b556-d103-46dd-a69c-004e9adf27bf@suse.com>
 <D2BDB22D-419D-4D4E-B242-C8FD70D23E5E@arm.com>
Message-ID: <d9caa2707adda6e7eb550ee762c5fa42@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2023-12-20 09:50, Luca Fancellu wrote:
>> On 20 Dec 2023, at 08:41, Jan Beulich <jbeulich@suse.com> wrote:
>> 
>> On 20.12.2023 01:17, Stefano Stabellini wrote:
>>> On Tue, 19 Dec 2023, Luca Fancellu wrote:
>>>>> On 19 Dec 2023, at 11:05, Nicola Vetrini 
>>>>> <nicola.vetrini@bugseng.com> wrote:
>>>>> On 2023-12-19 11:51, Nicola Vetrini wrote:
>>>>>> On 2023-12-19 11:37, Jan Beulich wrote:
>>>>>>> On 19.12.2023 10:02, Nicola Vetrini wrote:
>>>>>>>> --- a/docs/misra/exclude-list.json
>>>>>>>> +++ b/docs/misra/exclude-list.json
>>>>>>>> @@ -209,6 +209,10 @@
>>>>>>>>          "rel_path": "include/acpi/acglobal.h",
>>>>>>>>          "comment": "Imported from Linux, ignore for now"
>>>>>>>>        },
>>>>>>>> +        {
>>>>>>>> +          "rel_path": "include/acpi/acmacros.h",
>>>>>>>> +          "comment": "Imported from Linux, ignore for now"
>>>>>>>> +        },
>>>>>>> Together with what's already there (in context), wouldn't it 
>>>>>>> better be
>>>>>>> the entire directory then which is excluded, or at least all
>>>>>>> include/acpi/ac*.h collectively (and perhaps also
>>>>>>> include/acpi/platform/ac*.h)?
>>>>>>> Jan
>>>>>> +Cc Luca Fancellu
>>>>>> Sure. I wasn't certain which files are imported from ACPI CA and 
>>>>>> which aren't.
>>>>>> I'm also not sure whether "include/acpi/ac*.h" would be properly 
>>>>>> recognized by other tooling that uses exclude-list.json (only 
>>>>>> cppcheck I think). I Cc-ed Luca Fancellu on this.
>>>>> 
>>>>> It occurred to me that it's surely ok to use "include/acpi/ac*" and 
>>>>> "include/acpi/platform/ac*".
>>>> 
>>>> Yes I think itâ€™s fine, it just come to my mind now that this could 
>>>> have the risk that if
>>>> another file is added with â€˜ac' prefix, even if it could be subject 
>>>> to MISRA compliance,
>>>> it will be excluded.
>>>> 
>>>> If that risk is negligible for the maintainer of that part, then 
>>>> itâ€™s fine.
>>> 
>>> I think it is OK either way, I'll let Jan pick his preference.
>> 
>> It hasn't become clear to me what the benefit would be of omitting the
>> trailing .h.
> 
> Yes, with the extension is better, the same as we already do here:
> 
> [...]
> {
>     "rel_path": "common/un*.câ€,
>     "comment": "unlz4.c implementation by Yann Collet, the others un* 
> are from Linux, ignore for now"
> },
> [...]

Ok, I'll send a v2

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:12:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:12:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657480.1026332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFscm-0001HJ-C7; Wed, 20 Dec 2023 09:12:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657480.1026332; Wed, 20 Dec 2023 09: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 1rFscm-0001HA-8U; Wed, 20 Dec 2023 09:12:20 +0000
Received: by outflank-mailman (input) for mailman id 657480;
 Wed, 20 Dec 2023 09: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFscl-0001Fj-3c
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:12:19 +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 dec9f6c8-9f17-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:12:16 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-336746c7b6dso1160015f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:12:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v16-20020adfe4d0000000b0033672cfca96sm3688137wrm.89.2023.12.20.01.12.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 01:12:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dec9f6c8-9f17-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703063536; x=1703668336; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=6jgx9GA5nZJf/nT5tpbTu+moTg4PDeDJ6prelIKvopk=;
        b=aqY2oB676wt4skp7hBKyqEp1z+va+gRS/75xi5+ki0NjwwkeDbC4h/hn0pJYSv0Nod
         mmRM5V56DEFirQH0w2chayB2aUdeVfGYHvyi+823vyIbJtkg2lvCN+zJkSUMOAvku76a
         G0QrY/5Uzs3N6rHfMxvto97j7nQbZs2XXSX+lmkPAPsg7i6Kss1b4fAFKcgk8y+b+dt2
         y3IHEVNvxzx7v6nS5+GwEfDTrcZbYs7dYDSXKjI+ml9ruPPj9jAskyLYvUOy5zeo7+rF
         5B0uxJ9lRgz6R3IELkjH1lmQN21hYurSpMqohHHYybfNXsrhA7QLfG6UNGltnzos5RBh
         U22A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703063536; x=1703668336;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=6jgx9GA5nZJf/nT5tpbTu+moTg4PDeDJ6prelIKvopk=;
        b=wfzhRW7QFpmcStls58NObcxcxqIoVXGIXaGlWwUVyopf5zXnv5S1SmrQaS/WNQj9EV
         Gowtftqe8PUhiLrKtmCNGZ7o1qwFmqQYtbArzscI8rHe2Jxncuwmi84+FCbYu6D1sDAG
         R+Xn77RHbmtkfQGPKW4pjri3uUw957TM83lhHPo3+6xSb8C/u5W/Lrsz2qQymJg/BPuh
         c19bi66TxJPFIGMLeX+tk4MQotvE9Ab/nbbqwP/tvhv6qKOvWdxzLKVni1S+gc5RxRr4
         M3RlikfHLGNMGbQqaVMR8YNyTHPgm81JzX6ZZKSJMX3/oIinHiQtpX2XYuv6ACFcmQ7w
         UL8w==
X-Gm-Message-State: AOJu0YxHxWmhCQTYrisUsPiLURdWhbUWTTyuXqAY0zESSAXk4sWZBE5k
	oHVbXuyXn6tMroxsHUV/OnNC
X-Google-Smtp-Source: AGHT+IEE98TwBcoK2AumvYoOt/N6Zfa+BjTtOZDkFVJ8poapTcJVFeb1HYiBYaKgl4Sicqan13JcOA==
X-Received: by 2002:adf:a4c2:0:b0:336:77fb:8cec with SMTP id h2-20020adfa4c2000000b0033677fb8cecmr535768wrb.11.1703063536227;
        Wed, 20 Dec 2023 01:12:16 -0800 (PST)
Message-ID: <91390df2-57f7-41b7-a1cc-a050d89e5219@suse.com>
Date: Wed, 20 Dec 2023 10:12:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xen/x86: introduce self modifying code test
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-3-roger.pau@citrix.com>
 <32d6d42f-2736-42ed-bad3-a6bdaedf588c@citrix.com> <ZYKvFUICQ4pKwH0S@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYKvFUICQ4pKwH0S@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 10:08, Roger Pau MonnÃ© wrote:
> On Tue, Dec 19, 2023 at 08:31:29PM +0000, Andrew Cooper wrote:
>> On 15/12/2023 11:18 am, Roger Pau Monne wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/x86/include/asm/test.h
>>> @@ -0,0 +1,30 @@
>>> +#ifndef _ASM_X86_TEST_H_
>>> +#define _ASM_X86_TEST_H_
>>> +
>>> +#include <xen/types.h>
>>> +
>>> +int test_smoc(uint32_t selection, uint32_t *results);
>>> +
>>> +static inline void execute_selftests(void)
>>
>> IMO run_selftests() would be better, but this is already not all of our
>> selftests, and this particular function really doesn't warrant being
>> static inline.
>>
>> But I'm also not sure what this is liable to contain other than
>> test_smoc() so I'm not sure why we want it.
> 
> This was requested by Jan, he was concerned that more of such tests
> would appear.  It's new in v4 IIRC.

If the two of you want it without such a wrapper, so be it. I will admit
I was a little puzzled to find it implemented as inline function, but I
didn't see a strong need to comment on that.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:13:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:13:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657484.1026342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsdt-00020d-Ky; Wed, 20 Dec 2023 09:13:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657484.1026342; Wed, 20 Dec 2023 09:13: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 1rFsdt-00020W-IA; Wed, 20 Dec 2023 09:13:29 +0000
Received: by outflank-mailman (input) for mailman id 657484;
 Wed, 20 Dec 2023 09:13: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=peO6=H7=epam.com=prvs=6718298c4d=mykyta_poturai@srs-se1.protection.inumbo.net>)
 id 1rFsdr-00020Q-Vt
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:13:28 +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 07c01238-9f18-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 10:13:26 +0100 (CET)
Received: from pps.filterd (m0174679.ppops.net [127.0.0.1])
 by mx0a-0039f301.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 3BK0jDs7001734; Wed, 20 Dec 2023 09:13:19 GMT
Received: from eur04-he1-obe.outbound.protection.outlook.com
 (mail-he1eur04lp2050.outbound.protection.outlook.com [104.47.13.50])
 by mx0a-0039f301.pphosted.com (PPS) with ESMTPS id 3v37kem8r6-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 20 Dec 2023 09:13:19 +0000 (GMT)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AM7PR03MB6610.eurprd03.prod.outlook.com
 (2603:10a6:20b:1b2::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Wed, 20 Dec
 2023 09:13:15 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::3776:9f2d:8305:b645]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::3776:9f2d:8305:b645%6]) with mapi id 15.20.7113.016; Wed, 20 Dec 2023
 09:13: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: 07c01238-9f18-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RvZLEOoJFxOz18FiBY/HtGUXW3TbnNU9jQ0wHOND/ywGAB8GFJTTzM88qevIW8soZG3bygUlTi3GfP8IrJ+jPvT1OeCWiIo/+hyF1WLQI+CimBmECXhKB9jzH7uXXyl+AtcIupyvC/2fxHS8v1aVrCEWhT9juF8AE5uHVB1tITLDtOfBnX/o5REFzqbhlKtNVjO89cW4+khD7jMvsUopvgEjO+hyWExORTzxctxNG9v9BLxHAw69W8yEh3Rq/anfex3YpULB2y1wkziIHqbi1P+9v9DD8+Hp/eYk6quApqYpGuAtYWFc24f8EFp16+6X/UKg4qCRWLx5DWmI+mPoow==
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=0nYCVnAYq1EfaHbpEnR7bK599CgxUfso7hCZ5+cKRcc=;
 b=QQ+KgTFXGuJVbqcB9oXCf+t4jsS2MlOY+bqYaqiBvuNVPfSCzlTscmCJ0yxttbzlsxPDPVJYJ2G0ZaP2QRKNCNJgFephm0FtPyrjhBJ+8CPQvHJQ8uFMM0R9j1PGatL9Q+ggyMb107gaFQlwIVck9PDnakfsw4mqaoWUZEoFblE3HF3jcRkB+RTdM7xmyHcabbL56lu9jQBq4tTTSNKb2S5r/oNiXaCMIyi+ejAyy97LkSHhxQPUqJYFKvbv51X7lqkQWPMWVVcNLbyFseoIccUzaBtzpqdRuQIqLgPV9XLLwjKCxVNgnbzISP3ffr4bZ9RnKsCPlrtJLzYGmDKa1A==
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=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0nYCVnAYq1EfaHbpEnR7bK599CgxUfso7hCZ5+cKRcc=;
 b=rXwa5Sj6smXLyZZV01P0DtYWr1A0u7NYChfHAG+13YDFSybtWYxd3oCWKgk5rgJuhT2ZWbzRq6xqGrETxoDFyvu2w18aQZqTnMWsmz+aTNNCeSp0j2G/Ud2NOA7AKZVMbFoxIT6QfnPuVu0k7FphsVaCvXarZ3fIJEYFldIU+Nix9vyNCdtAshf2NMHGQUUTNysRh61rFtthxz94ZjB2uUHZdGOLS1dkDZ8TvCbpG5VtzZ2IhGM/lAFbtb1XHHavDM2t6st1A1uapbzLDRQ665ZSjiLWxTFEUO8v3ZUGvkBltYMq324gbXIHIIse9ktUPMWgvSNQfOw5EvIhvgmM5g==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Wei Liu
	<wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
        Juergen Gross
	<jgross@suse.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        George Dunlap
	<george.dunlap@citrix.com>,
        Jan Beulich <jbeulich@suse.com>,
        Bertrand Marquis
	<bertrand.marquis@arm.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Thread-Topic: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Thread-Index: AQHaMoIbfIb6LpTMIEGFPPk7JAqgfbCwp1oAgAAD9ICAAKqEgIAAjq6A
Date: Wed, 20 Dec 2023 09:13:15 +0000
Message-ID: <3a5df135-1bcf-41d7-b489-c5fd938b10d6@epam.com>
References: 
 <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
 <cacbff18-f37d-42dc-ab8c-79409aa1d237@epam.com>
 <13b218b5-2d37-48de-9baa-cf2b99211bde@xen.org>
 <alpine.DEB.2.22.394.2312191641140.3175268@ubuntu-linux-20-04-desktop>
In-Reply-To: 
 <alpine.DEB.2.22.394.2312191641140.3175268@ubuntu-linux-20-04-desktop>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|AM7PR03MB6610:EE_
x-ms-office365-filtering-correlation-id: 63935f35-41c7-4a90-b8aa-08dc013be609
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 
 5SzdsAwsPdLkoLkMPDNCCeonK7nnqBvmPL/R+gHJqM8BEZ8Bxa5tNuoXaS8IV9w4u1Afew9wkJU68GRw795ZrEY4gKAtePdcPn1biec2Ok3WbsNr8uAVUpfe1AjcvusyqZmPG/otwp/oVows3wgD6e2wZLVzTwGpqG7nttIfcDrZ1oiMmLFFXlQUdHUmLTRSuQPvnUx9enu5TCePtecnhlQsIf07oI2IpuXBVIjq35/6bW9Dq0F7f2gOwMYLuiqFWwec9kLjJw/k2Vvv+0eMVYbdlsY68u7hI8kpkYWcS8Vt9gv7vbuMBHo3uKTAvkUUz77p3jXnvroP/tKkuB837B1rZWpJdnGmjW8GNTUvLvJpX4xNYi64xVj9+2WZb0Qt0d4obiEogH7ZT8KsCP3Qw59FzQB0gjn4F3s8EKXifl9iEnF3iDxgs/+jvcIsXw31qspd0fKBzWSDpEbczmcEtZdUbPazU8+9EejNrS0sxJuoPhQNaYDQuxlP/sl3+5x/RAIZJcUzToBjro13M2QBJyTYVWxEkj/WrkOeqAHK4tdGLAVw6eQ2foGsMFIh0uWVPIxf2Sd1qv9fUJk5yABBcw7nTl20+jADW3BvnaqSFV/HbYkmc9HgnsZ7zpUQg30DAgosQC01D0cJQbhO1fROsw==
x-forefront-antispam-report: 
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(346002)(136003)(396003)(366004)(39860400002)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(2906002)(31696002)(41300700001)(86362001)(36756003)(38100700002)(122000001)(71200400001)(316002)(478600001)(54906003)(110136005)(6506007)(6512007)(66476007)(8936002)(8676002)(6486002)(66446008)(76116006)(66946007)(66556008)(64756008)(91956017)(4744005)(7416002)(5660300002)(26005)(4326008)(83380400001)(53546011)(2616005)(107886003)(38070700009)(31686004)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?utf-8?B?MXRNWXY0REFPSy9xSzdKRHRFR1FRMUJJcmlzeG9nOXZYRnhtSUlBV3hReFVT?=
 =?utf-8?B?dU9kQVB2bEhDMURlWU92TmwzaVdrZ1A4YUZUMDhPNi9DR2N1WjFDUjZnMEQx?=
 =?utf-8?B?dFRsakEwbGRUZm44bnFIZ3UrMXFQazNIc3h5L25LRkRybjhhb1MwMTArOE0r?=
 =?utf-8?B?MElXYW4rRjVXaUNLc1hCN3hhSk8wazVqVUZWbU1GSmRYRVZEWjd4Z1pXVmdw?=
 =?utf-8?B?VnRnMWNoeEFrQ1VtazFpYmt2MzJuVlJWbjlIQmRqa25sNnBCZ0F1ZlM4cHJX?=
 =?utf-8?B?eUZQWUVlbUNSS2V4WTJiYXJTWUlJdHQvdVQ1SXVoNjBiZkFzLzBESlY1cVdQ?=
 =?utf-8?B?U25Iam1sRkxqblcvQ2lpQVpRVlZRbGRKNTd5dWQzSnozT0hHczVEZnRrQ2I0?=
 =?utf-8?B?WW8rT2wwdkNON2RNclBwaHc2Qk4wcG5ZMS9GRGptVnJZSW0wTThyVkNubHpx?=
 =?utf-8?B?TzR6MkpqYmhoQkJSWlZIYThyOWoycGpwZ3NaUDgxWm53VjV3eng3WFZ3aUk1?=
 =?utf-8?B?NnZodGo0L3V1bDM3R0lKSHJ5L2l3a20weERjMHBMM0R4czBnbHlPME5aOUVX?=
 =?utf-8?B?Y2V5QmlBbTl6UEx0MGlSc2p0TERITEhEZlN5YWcyS0N6d2NDZkEyQzlLanJG?=
 =?utf-8?B?OWRNbjQ2UnFYcEU0RDZpdStXdk4rdkFhTDNTNjBuK0M2QldaQWRvejB6VDlV?=
 =?utf-8?B?L25GRTE0bmtPeC95YWxMUGUvRlNRcnUzaGt0TzdZN0ZyOG04a1BzQ2sybFNq?=
 =?utf-8?B?bWRKVm56TkkvQXdTZSsrRW1BbEtRK0dkS3phSXZ5Tld6a3YvcFUrQVB5NjZj?=
 =?utf-8?B?K05XbldiMytyTGRiajlaMDZlcmhPTE0wanVMeU9vWGdsUEpreGs0d0NCaUow?=
 =?utf-8?B?UHk3bUJOQTRRWlpxeVZLczdPRXA2YmtOOG9DazVxS0dpbUJVQmNBeDJKVDFh?=
 =?utf-8?B?b1d6STk3clZHZTgvRFdNS3dSdlFNcXVhWUp3QUs2NlR5WFJQSUV6S0t3UTVG?=
 =?utf-8?B?VDRQOFNlQThQMzdYNGJWdGJNenR1TER1aE5XZDBXRXJNcExTaGY1aG5PUURP?=
 =?utf-8?B?Z3FFWDJackk2VlROVnZYdXJIQWtTRkFhaVVGUUJXMDJuQjQ5NE1NNktGNHEr?=
 =?utf-8?B?anZ0eEVmMW1lc2FCWG9Xb2lIMkpsT09DbERxZ21Ea1UrYjJoK3F0dllYQ0cv?=
 =?utf-8?B?dUp2U0FIUXFSVW1yRmt2bXZGWStNenVGaTlIVDk1U1B6WTF2MGx6Z3FlU0oz?=
 =?utf-8?B?emN0MzNoL3NaZjMzbnZDaHUwNGJOQXBDOUZnQlBCMU96TVRUUUtjQzhxWXF6?=
 =?utf-8?B?a0NLM21SK1dBMTBZYml5WWVJbzNEWFJ4UkVXTmdQSVpJODNoSlpFaHlqRGYx?=
 =?utf-8?B?NXlESnpNZENrbk1NVGlndkxxV2puZkdRbjBJTzgzd1RaM3p5bm1Jd1pMYy9y?=
 =?utf-8?B?b2c1SUNTY011U053WVlxQVNTVjJDNGM5Z25lMDNnaGFmcDdFREVZNWlFNEFy?=
 =?utf-8?B?SDlmcXVURk5xOU9UYkFyYVFJOVIvQVl4T3RRM09OTDBmYmVuSnE5RmpTU2ZZ?=
 =?utf-8?B?TlAxRXFiendockNYdjhsWFl3Sm0vRTkvT2FnMjlnbjNWbUJIbXU0V00xRHNM?=
 =?utf-8?B?QVBwTGY5aWhvdEtybVkzSVV4Mmdlam56U3BaYjNGWDR0U3dpT0Z3eDYxQW1V?=
 =?utf-8?B?WDUwODNYeEZXQnhjK1BQNHR0KzRMaExucFR0UGRYemk3K2NoUlZlZTZ3Tjdz?=
 =?utf-8?B?KzI2WEdSQ2J6SlpteWRGeGY1a3RjT09aVU9xVE15VFBwZjJQbE5VQk4zTWVL?=
 =?utf-8?B?QVJSaFJ6NThCQTc5WU9VK0NLTU5aT1RibDJJQThOQ1VEOVpPZ3pudWxBbTVa?=
 =?utf-8?B?YXB2eVROWFJXMlVHMGsrazVNMWxVNGZxTGdBTEc0ZnluazE1OWoxZHNKYzdC?=
 =?utf-8?B?b0NlaVZnZ0F3ajgrQjhFM0pXeTN4ZzcyVGZhUUdaUnBBNFltZHZzbndEb25Y?=
 =?utf-8?B?ZTZRZjkzYnVNa1RESmg5cWVacU9CcWswV2VTZWV4SjRmbkRrc2NpVkZOeHJC?=
 =?utf-8?B?TFpPcWNVUjUxL3Z5dDFqZjFOcW0zRE1LdFVvekZOK3dFdlFFNEduK2NYZENq?=
 =?utf-8?B?aUNpODR2L3I1cklINjRENGgyN3QrMnpid0hFYWZjQmp0MUtyekgyU0Y5QUlU?=
 =?utf-8?B?c3c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DF3CE581893F314890C06B473F8D56C2@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 63935f35-41c7-4a90-b8aa-08dc013be609
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Dec 2023 09:13:15.3828
 (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: r4spW1RoDY0l++HDO3j/CdgKhCjHQIDqx2GbSXQbjPHmQrbVEEF6bMUqQSuP1LepkzuKcFWiBcqxjHGWteiL2w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6610
X-Proofpoint-GUID: _ajNP7Kh__kWJaJp7Tjd5kfVgHsaTd6g
X-Proofpoint-ORIG-GUID: _ajNP7Kh__kWJaJp7Tjd5kfVgHsaTd6g
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxscore=0
 adultscore=0 spamscore=0 priorityscore=1501 suspectscore=0 phishscore=0
 lowpriorityscore=0 mlxlogscore=823 impostorscore=0 malwarescore=0
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2311290000 definitions=main-2312200064

DQpIaSwNCg0KT24gMjAuMTIuMjMgMDI6NDIsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4g
T24gVHVlLCAxOSBEZWMgMjAyMywgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4NCj4+IEJ1dCBRRU1V
IHNob3VsZCByZWFsbHkgbm90IG5lZWQgdG8gaW1wbGVtZW50IGEgZnVsbCBJVFMuIFdoYXQgaXQg
bmVlZHMgaXMgYQ0KPj4gd2F5IHRvIGZvcndhcmQgdGhlIE1TSSB0byBYZW4uIFRoYXQncyBpdC4N
Cj4gDQo+IEkgZnVsbHkgYWdyZWUgd2l0aCBKdWxpZW4NCj4gDQo+IA0KPj4gU3RlZmFubywgZG8g
eW91IGhhdmUgYW55IHN1Z2dlc3Rpb24gaG93IHRvIGRvIHRoaXMgaW4gUUVNVT8NCj4gDQo+IFll
cywgd2UganVzdCBuZWVkIHNvbWV0aGluZyBsaWtlIGh3L2kzODYveGVuL3hlbl9hcGljLmMgYnV0
IGZvciBBUk0NCg0KSXQgaXMgZXhhY3RseSBsaWtlIHhlbl9hcGljLmMuIEFsbCB0aGlzIGltcGxl
bWVudGF0aW9uIGRvZXMgaXMgZ2V0dGluZyANCnRoZSBNU0kgbWVzc2FnZXMgYW5kIGZvcndhcmRp
bmcgdGhlbSB0byBYZW4gdXNpbmcgdGhlIERNIG9wIGZyb20gdGhpcyBwYXRjaC4=


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:18:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:18:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657493.1026352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsid-0002eX-5q; Wed, 20 Dec 2023 09:18:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657493.1026352; Wed, 20 Dec 2023 09: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 1rFsid-0002eQ-35; Wed, 20 Dec 2023 09:18:23 +0000
Received: by outflank-mailman (input) for mailman id 657493;
 Wed, 20 Dec 2023 09:18: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFsib-0002eK-LS
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:18:21 +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 b7a1a47b-9f18-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 10:18:20 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c3fe6c1b5so59313875e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:18:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bg5-20020a05600c3c8500b0040c4c9c52a3sm6588727wmb.12.2023.12.20.01.18.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 01:18:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7a1a47b-9f18-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703063900; x=1703668700; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=wY6zpPMEJxP/sYRaRsIa6ez9ybWY8t3xykZwJPXugWA=;
        b=SovBDYwETNMcUMWZyGso0DXM+uoAZ5pl/LKPTDTDB/KOBSVlPy5Kj4L8jdWORi985n
         4UDy5nIyo+v1MSpjsFFanRMgKZScOdmqhzqK70NMvj0uZk3gDG2gX3CDmmxdCQ4vkYhu
         dRd6Vntz7mwR1OqOnzmUqUYbF3+XaCTXmN9yqE4uAoxPmvgsKUsiAiLdT9m1/yOQcLL/
         W7ACGRG0ZOSCLBT5IWW+LZIXu+aANOy1ifDFBBOHejgTwin8UA54EgaYvVNqqfZCstJZ
         rcXhap2HY3Lt7qsnL2wITF3UD7ZFqwp3Bg7kMW8EgTC7zQ8iZcxKafGfjzUbfEEJ5ZGM
         TRFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703063900; x=1703668700;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=wY6zpPMEJxP/sYRaRsIa6ez9ybWY8t3xykZwJPXugWA=;
        b=HpLu3kMxM0Qdzu6k7cMq42Yw+3ZZs3EqHVma5U3rZzAqLnqqJ647/X0Nm0ZOMyeKGG
         6su3eQ+vI+4rw83FTECPmr2vsVKS6P8eehNpJLHmRCWtZT7Mf2e0McZUmK2VTKpKNHH+
         1EWLeIup3Yqr69o9Gj58qJkYB1Qc5zAyTkbB4sfTeCzVFp+rJHos20laVfP2o024cesS
         r3eN2n6QrBWFfYTgASPuiiEzfSC31RHkAa4SgNE/q0I0vjT+eErUEuPKiBEGYB+p4Pj0
         ArzEKb2CeHjwATEJXBQBmghk5bAYq1DbZOF2tseajroyN+c5wOy0on8ctYWCIrcFJcK7
         Qbfg==
X-Gm-Message-State: AOJu0Ywa/+a2TTpw7kLA3Rn223tsenEFdZ4SpQTaY7rYNijqpNtQyrxr
	EcEJPv2pGxNpr5iZTbrG7ISw
X-Google-Smtp-Source: AGHT+IHdeN59V1krgUwUIzpuFnWaV4Pm4LCCFdzwrbukE37G51ZBA84luBsjLHsm7psV2UNJnGaiZg==
X-Received: by 2002:a05:600c:224b:b0:40c:35fd:be17 with SMTP id a11-20020a05600c224b00b0040c35fdbe17mr9625277wmm.23.1703063899903;
        Wed, 20 Dec 2023 01:18:19 -0800 (PST)
Message-ID: <83a14a83-e186-4c91-936b-58743f1e136d@suse.com>
Date: Wed, 20 Dec 2023 10:18:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2] xen: move declaration of first_valid_mfn to
 xen/numa.h
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <ad7ee70bd00c0de4b6dad48c91281929e98ef95c.1702911455.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2312181748430.3175268@ubuntu-linux-20-04-desktop>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.2312181748430.3175268@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 02:48, Stefano Stabellini wrote:
> On Mon, 18 Dec 2023, Nicola Vetrini wrote:
>> Such declaration is moved in order to provide it for Arm and PPC,
>> whilst not violating MISRA C:2012 Rule 8.4 in common/page_alloc.c:
>> "A compatible declaration shall be visible when an object or
>> function with external linkage is defined".
>>
>> Signed-off-by: Julien Grall <julien@xen.org>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

I was about to submit my replacement, just to find that this was committed
during my night. I have to admit that I absolutely do not understand the
need for rushing here; I thought I said quite clearly that I will come
forward with a patch dealing with two issues in one go. Now I need to go
and re-base my change, because all of what this patch touches is also
touched by my change, as the 2nd issue (the pointless presence of
asm/numa.h and the need for RISC-V to introduce a 3rd instance if nothing
is done up front) is still there.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:19:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:19:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657498.1026362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsjZ-0003TR-HS; Wed, 20 Dec 2023 09:19:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657498.1026362; Wed, 20 Dec 2023 09:19:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsjZ-0003TK-Ef; Wed, 20 Dec 2023 09:19:21 +0000
Received: by outflank-mailman (input) for mailman id 657498;
 Wed, 20 Dec 2023 09:19: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=1nAz=H7=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFsjX-0003PP-HW
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:19:19 +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 d8cfc01c-9f18-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:19:17 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com
 [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-437-rhgm_6Z8O4KoMdp8y2-Fxg-1; Wed, 20 Dec 2023 04:19:12 -0500
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com
 [10.11.54.3])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7DB0C85A588;
 Wed, 20 Dec 2023 09:19:11 +0000 (UTC)
Received: from redhat.com (unknown [10.39.193.255])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 5C6801121313;
 Wed, 20 Dec 2023 09:19:05 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8cfc01c-9f18-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1703063955;
	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=UngDFToyqNF/6MoK7OZO0S5i3zyyTqX7vjrNH0WFOzo=;
	b=IMx6QrQm8C2L1XrUYWKcrbIcboadb69qht1XPPWbU1vz7QXHaGJLL0rGPuG6Gdp6heR/iF
	CU/JBKXbzZSsrVhGZEkBBg7lTOSR6oTzJq4No+8QAAo3vfaxEII4SMIUsp6rgO8gZJ8/hO
	VwSzAtQO9fJJlOolt44pMzk4R7ua/DU=
X-MC-Unique: rhgm_6Z8O4KoMdp8y2-Fxg-1
Date: Wed, 20 Dec 2023 10:19:04 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 06/14] block: remove AioContext locking
Message-ID: <ZYKxiP1S-HSkyjj6@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-7-stefanha@redhat.com>
 <ZYG9orsog3Pm675J@redhat.com>
 <CAJSP0QV1MD-U5f1NkgL13CEm6-rCcGGPNhRyE2jwTKz+22rrzA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAJSP0QV1MD-U5f1NkgL13CEm6-rCcGGPNhRyE2jwTKz+22rrzA@mail.gmail.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3

Am 19.12.2023 um 21:04 hat Stefan Hajnoczi geschrieben:
> On Tue, 19 Dec 2023 at 10:59, Kevin Wolf <kwolf@redhat.com> wrote:
> >
> > Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> > > This is the big patch that removes
> > > aio_context_acquire()/aio_context_release() from the block layer and
> > > affected block layer users.
> > >
> > > There isn't a clean way to split this patch and the reviewers are likely
> > > the same group of people, so I decided to do it in one patch.
> > >
> > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > > Reviewed-by: Eric Blake <eblake@redhat.com>
> > > Reviewed-by: Kevin Wolf <kwolf@redhat.com>
> > > Reviewed-by: Paul Durrant <paul@xen.org>
> >
> > > diff --git a/migration/block.c b/migration/block.c
> > > index a15f9bddcb..2bcfcbfdf6 100644
> > > --- a/migration/block.c
> > > +++ b/migration/block.c
> > > @@ -313,22 +311,10 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
> > >      block_mig_state.submitted++;
> > >      blk_mig_unlock();
> > >
> > > -    /* We do not know if bs is under the main thread (and thus does
> > > -     * not acquire the AioContext when doing AIO) or rather under
> > > -     * dataplane.  Thus acquire both the iothread mutex and the
> > > -     * AioContext.
> > > -     *
> > > -     * This is ugly and will disappear when we make bdrv_* thread-safe,
> > > -     * without the need to acquire the AioContext.
> > > -     */
> > > -    qemu_mutex_lock_iothread();
> > > -    aio_context_acquire(blk_get_aio_context(bmds->blk));
> > >      bdrv_reset_dirty_bitmap(bmds->dirty_bitmap, cur_sector * BDRV_SECTOR_SIZE,
> > >                              nr_sectors * BDRV_SECTOR_SIZE);
> > >      blk->aiocb = blk_aio_preadv(bb, cur_sector * BDRV_SECTOR_SIZE, &blk->qiov,
> > >                                  0, blk_mig_read_cb, blk);
> > > -    aio_context_release(blk_get_aio_context(bmds->blk));
> > > -    qemu_mutex_unlock_iothread();
> > >
> > >      bmds->cur_sector = cur_sector + nr_sectors;
> > >      return (bmds->cur_sector >= total_sectors);
> >
> > With this hunk applied, qemu-iotests 183 fails:
> >
> > (gdb) bt
> > #0  0x000055aaa7d47c09 in bdrv_graph_co_rdlock () at ../block/graph-lock.c:176
> > #1  0x000055aaa7d3de2e in graph_lockable_auto_lock (x=<optimized out>) at /home/kwolf/source/qemu/include/block/graph-lock.h:215
> > #2  blk_co_do_preadv_part (blk=0x7f38a4000f30, offset=0, bytes=1048576, qiov=0x7f38a40250f0, qiov_offset=qiov_offset@entry=0, flags=0) at ../block/block-backend.c:1340
> > #3  0x000055aaa7d3e006 in blk_aio_read_entry (opaque=0x7f38a4025140) at ../block/block-backend.c:1620
> > #4  0x000055aaa7e7aa5b in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at ../util/coroutine-ucontext.c:177
> > #5  0x00007f38d14dbe90 in __start_context () at /lib64/libc.so.6
> > #6  0x00007f38b3dfa060 in  ()
> > #7  0x0000000000000000 in  ()
> >
> > qemu_get_current_aio_context() returns NULL now. I don't completely
> > understand why it depends on the BQL, but adding the BQL locking back
> > fixes it.
> 
> Thanks for letting me know. I have reviewed migration/block.c and
> agree that taking the BQL is correct.
> 
> I have inlined the fix below and will resend this patch.

Thanks, I'll squash this into the queued patch. No need to resend, as
far as I am concerned.

Kevin



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:19:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:19:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657499.1026372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsjo-000458-RN; Wed, 20 Dec 2023 09:19:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657499.1026372; Wed, 20 Dec 2023 09: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 1rFsjo-00044y-Op; Wed, 20 Dec 2023 09:19:36 +0000
Received: by outflank-mailman (input) for mailman id 657499;
 Wed, 20 Dec 2023 09: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFsjn-0003PP-GI
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:19:35 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e3343231-9f18-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:19:33 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c39ef63d9so59296915e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:19:33 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 bd8-20020a05600c1f0800b0040c44b4a282sm6601137wmb.43.2023.12.20.01.19.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 01:19:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3343231-9f18-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703063973; x=1703668773; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=c/Laim6OxH3l6g9LnE7PaxHVhjpomMuhc0L9ZfiA7Q4=;
        b=ZaX1C+OPMTLzviHB6wgLaZmKocfIahA2SSqGfCbIR4mhRh3kPXXmFQwcfqmdHruCJ5
         ubphsNyGLWtOZUb57jVcbVBbe6nWUARQZtKFDd4q7nugT/gyf8ktl7vo3H8ZW0J3qQjC
         fW5F4VxQT3iOJ0u9Snx2l3ht5DBdodWHpUJec=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703063973; x=1703668773;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=c/Laim6OxH3l6g9LnE7PaxHVhjpomMuhc0L9ZfiA7Q4=;
        b=AFcCJEX6VN5+GZ9VrcMVCERt/DqoG48mQ3c7o7c0RZCZoYMusmmtlYAS9FAxGr+RHV
         mwb3DC3ufZoNOJPgrdbGf8flxEFle6pFPPnBpKcCb+KGqo4qmiP38GxQIxj09YprBrTM
         EydTwPFT7V8CJPLJ3bThJO/vUOFdM96ys5qH92HihHGqMJRioKDqrE7Ocu6TgZA+tU46
         myAnZgTWk+OGddGJKnzRRq+N8Ejc3Dru2rUn4RGyZMCGxKm2FXlohi24UWtgVYpJ1YIv
         F7zj8R+5B6JddPrPxosQ2z/vjuZ5TBb5hJSbOlBoPgivvd0lNAMTB2FuAAZaOJdgATPf
         gDLQ==
X-Gm-Message-State: AOJu0YzN0GeRDnVrXtXoNWAqRkr1MdFd/QVbmKLoHuEMGly9tqjIvgyd
	N1xSn/oDDQVyKxj/HRxXiBr2mQ==
X-Google-Smtp-Source: AGHT+IGk3+M85VTK2ERaNenJ8Q64Jyve113QG/m7lMtzWkcVtJakwbhUlAZZe4wPMM6ENkQFi+SmfA==
X-Received: by 2002:a7b:cb92:0:b0:40c:3308:3b02 with SMTP id m18-20020a7bcb92000000b0040c33083b02mr10649170wmi.99.1703063973107;
        Wed, 20 Dec 2023 01:19:33 -0800 (PST)
Date: Wed, 20 Dec 2023 10:19:32 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 1/4] x86/livepatch: align functions to ensure minimal
 distance between entry points
Message-ID: <ZYKxpFugdO-CUZam@macbook>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-2-roger.pau@citrix.com>
 <bc08ed7e-766d-4f0e-a7ef-994d09d1dbe2@citrix.com>
 <ZYKmn-lvKQpauL6Z@macbook>
 <87e185ab-6129-41ea-8424-9484659840d1@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <87e185ab-6129-41ea-8424-9484659840d1@suse.com>

On Wed, Dec 20, 2023 at 10:03:51AM +0100, Jan Beulich wrote:
> On 20.12.2023 09:32, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 19, 2023 at 07:46:11PM +0000, Andrew Cooper wrote:
> >> On 15/12/2023 11:18 am, Roger Pau Monne wrote:
> >>> The minimal function size requirements for livepatch are either 5 bytes (for
> >>
> >> "for an x86 livepatch", seeing as we're touching multiple architectures
> >> worth of files.
> >>
> >> I know it's at the end of the sentence, but it wants to be earlier to be
> >> clearer.
> >>
> >>> jmp) or 9 bytes (for endbr + jmp) on x86, and always 4 bytes on Arm.  Ensure
> >>> that distance between functions entry points is always at least of the minimal
> >>> required size for livepatch instruction replacement to be successful.
> >>>
> >>> Add an additional align directive to the linker script, in order to ensure that
> >>> the next section placed after the .text.* (per-function sections) is also
> >>> aligned to the required boundary, so that the distance of the last function
> >>> entry point with the next symbol is also of minimal size.
> >>>
> >>> Note that it's possible for the compiler to end up using a higher function
> >>> alignment regardless of the passed value, so this change just make sure that
> >>> the minimum required for livepatch to work is present.  Different compilers
> >>> handle the option differently, as clang will ignore -falign-functions value
> >>> if it's smaller than the one that would be set by the optimization level, while
> >>> gcc seems to always honor the function alignment passed in -falign-functions.
> >>> In order to cope with this behavior and avoid that setting -falign-functions
> >>> results in an alignment inferior to what the optimization level would have
> >>> selected force x86 release builds to use a function alignment of 16 bytes.
> >>
> >> Yuck :(
> >>
> >> The same will be true for all other architectures too?
> > 
> > I would expect that for gcc I guess.
> > 
> >> What happens on ARM, which also picks up an explicit choice in livepatch
> >> builds?
> > 
> > Arm AFAICT seems to use a 4 byte function alignment with -O2 (both gcc
> > and clang), so that matches what we need to enforce for livepatch.  If
> > we ever need a higher alignment for livepatch reasons it would be a
> > multiple of the minimum one set by the compiler, so that should be
> > fine.
> 
> Thinking of it: The forcing of 16-byte alignment in release builds of x86
> is based on observations with certain compiler versions, iirc. What if
> future versions decide to go lower/higher for, perhaps, very good reasons?
> We don't really mean to override the compiler's choice, so maybe further
> probing is actually necessary?

We do override the default (on gcc) when using livepatch anyway, so we
might as well be consistent and attempt to provide a value that's
reasonable?

Linux currently uses 16-byte also on x86 and set in Kconfig, and all
compiler versions I've tested use 16-bytes with -O2, so I think it's
unlikely to change overnight (and a lot of software will still use 16
anyway).

If a more suitable value is needed in the future we can always adjust,
that's the whole point of having it in Kconfig.  We can also select a
better value even in compilers that might not know about it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:26:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:26:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657508.1026382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsq1-0006k9-IK; Wed, 20 Dec 2023 09:26:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657508.1026382; Wed, 20 Dec 2023 09:26:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsq1-0006k2-E2; Wed, 20 Dec 2023 09:26:01 +0000
Received: by outflank-mailman (input) for mailman id 657508;
 Wed, 20 Dec 2023 09:26:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFsq0-0006jv-9b
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:26:00 +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 c8fe9897-9f19-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 10:25:59 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3367632ce7bso1009396f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:25:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 be8-20020a05600c1e8800b0040b397787d3sm6924381wmb.24.2023.12.20.01.25.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 01:25:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8fe9897-9f19-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703064358; x=1703669158; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=VXttWcstDT+d8GLd5dJ9HAv7Qf+YsetdGSBmieF77V0=;
        b=BOf5o1pNFA96VuOIzRfGxQVL1GKywRIcJpR1G9Wb1rzlSBjZxua29swVSkwTrR7vyo
         Oz1A4KgNnmrds7QcbjgElayRO+esDKb4lFzflBOXSyFlo8WZ7xVjD8F1BpuMzNughMPG
         YDnERP67XTXMtSt+xo94eZlUcd9dfCAQ7SfHMKZHBAGZJrS95SE/UZrrsgecThHe79F7
         FM1OJ/ZbS3+GBLiW+4WZlxv1/i2j844+U56Bm6Kxojnim+OuOSmbCeRIpWaUSfMY7nPN
         AuD3tQP2ckZP51HHGzZMbSzGK2j07RusPwzG9mIHcmef4kmsSgp6MaQJ2UHdWQC87iKL
         IFAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703064358; x=1703669158;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=VXttWcstDT+d8GLd5dJ9HAv7Qf+YsetdGSBmieF77V0=;
        b=MUFVZGgKWijqfK2fwh9x15o2YzJIOtPV/ndm1BhK8xAPaddH7eSTil/je6OOBmb5oa
         yjDQvEcA2deQkFWS967TJsygzbrzWIEFbBA2xMw7pNTdKdy318hWy9PoMnnS6Lr3nYgF
         J5ngFzK/vYzJ3AwTSDqvxlT5yHxiCm8fSM0iWSi3+/AmQeR0pGPI4GURsYJrqYTfxKJ0
         xIm0G/mXrl+SxSOumEVRhzr8UZqnX2ZqWnJsO+BhcrefiM545xvHQdVw8GLrki9rbk6X
         wAqIfHcp1rWYzz83b/kG5tyo602Oojz4B+aLg28Gj1K4k865LREB1QQfc5aohl3sCSWj
         bk3g==
X-Gm-Message-State: AOJu0YwyHnakOeP7UXtz2Is2YvFfts3ks9heOumAHPyza5IzRl8NYiGP
	QGF9m3ptBuXnftXZG7FF5UmV
X-Google-Smtp-Source: AGHT+IG8MKCgpmbYt+E1geVldr3xej0VRm15K1FhTQ0NqKl/XaG9XQcxUAl6wA9qTFWu4aBszSDwYg==
X-Received: by 2002:a7b:c388:0:b0:40c:36b4:a7aa with SMTP id s8-20020a7bc388000000b0040c36b4a7aamr11390604wmj.26.1703064358544;
        Wed, 20 Dec 2023 01:25:58 -0800 (PST)
Message-ID: <13b34047-1137-44dd-ad74-27ec5b5fb8d3@suse.com>
Date: Wed, 20 Dec 2023 10:25:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/4] x86/PV: issue branch prediction barrier when
 switching 64-bit guest to kernel mode
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <2863b0a9-ca7c-3cce-104d-0b6685b0b383@suse.com> <ZYCARJAxH9hBD0YQ@macbook>
 <6e022af1-d383-48be-ab54-6ec254aa1502@suse.com> <ZYGC8JaJ45tkbqQC@macbook>
 <aacaa220-3e95-4dff-9572-79f9e79faeae@suse.com> <ZYGyjQiAomxh0QnI@macbook>
 <ZYHNzo8UFzOkt0pv@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYHNzo8UFzOkt0pv@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.12.2023 18:07, Roger Pau MonnÃ© wrote:
> On Tue, Dec 19, 2023 at 04:11:09PM +0100, Roger Pau MonnÃ© wrote:
>> On Tue, Dec 19, 2023 at 03:06:50PM +0100, Jan Beulich wrote:
>>> On 19.12.2023 12:48, Roger Pau MonnÃ© wrote:
>>>> On Tue, Dec 19, 2023 at 10:56:16AM +0100, Jan Beulich wrote:
>>>>> On 18.12.2023 18:24, Roger Pau MonnÃ© wrote:
>>>>>> On Tue, Feb 14, 2023 at 05:12:08PM +0100, Jan Beulich wrote:
>>>>>>> --- a/xen/arch/x86/pv/domain.c
>>>>>>> +++ b/xen/arch/x86/pv/domain.c
>>>>>>> @@ -455,6 +455,7 @@ static void _toggle_guest_pt(struct vcpu
>>>>>>>  void toggle_guest_mode(struct vcpu *v)
>>>>>>>  {
>>>>>>>      const struct domain *d = v->domain;
>>>>>>> +    struct cpu_info *cpu_info = get_cpu_info();
>>>>>>>      unsigned long gs_base;
>>>>>>>  
>>>>>>>      ASSERT(!is_pv_32bit_vcpu(v));
>>>>>>> @@ -467,15 +468,21 @@ void toggle_guest_mode(struct vcpu *v)
>>>>>>>      if ( v->arch.flags & TF_kernel_mode )
>>>>>>>          v->arch.pv.gs_base_kernel = gs_base;
>>>>>>>      else
>>>>>>> +    {
>>>>>>>          v->arch.pv.gs_base_user = gs_base;
>>>>>>> +
>>>>>>> +        if ( opt_ibpb_mode_switch &&
>>>>>>> +             !(d->arch.spec_ctrl_flags & SCF_entry_ibpb) &&
>>>>>>> +             !VM_ASSIST(d, mode_switch_no_ibpb) )
>>>>>>> +            cpu_info->spec_ctrl_flags |= SCF_new_pred_ctxt;
>>>>>>
>>>>>> Likewise similar to the remarks I've made before, if doing an IBPB on
>>>>>> entry is enough to cover for the case here, it must also be fine to
>>>>>> issue the IBPB right here, instead of deferring to return to guest
>>>>>> context?
>>>>>>
>>>>>> The only concern would be (as you mentioned before) to avoid clearing
>>>>>> valid Xen predictions, but I would rather see some figures about what
>>>>>> effect the delaying to return to guest has vs issuing it right here.
>>>>>
>>>>> Part of the reason (aiui) to do things on the exit path was to
>>>>> consolidate the context switch induced one and the user->kernel switch
>>>>> one into the same place and mechanism.
>>>>
>>>> Isn't it kind of a very specific case that we end up doing a
>>>> user->kernel switch as part of a context switch?  IOW: would require
>>>> the vCPU to be scheduled out at that very specific point.
>>>
>>> No, there's no user->kernel switch at the same time as context switch.
>>> What I was trying to explain is that with the actual IBPB being issued
>>> on exit to guest, both the context switch path and the user->kernel
>>> mode switch path set the same indicator, for the exit path to consume.
>>
>> Deferring to exit to guest path could be OK, but unless strictly
>> needed, which I don't think it's the case, I would request for IBPB to
>> be executed in C context rather than assembly one.
>>
>>>>>>> + *
>>>>>>> + * By default (on affected and capable hardware) as a safety measure Xen,
>>>>>>> + * to cover for the fact that guest-kernel and guest-user modes are both
>>>>>>> + * running in ring 3 (and hence share prediction context), would issue a
>>>>>>> + * barrier for user->kernel mode switches of PV guests.
>>>>>>> + */
>>>>>>> +#define VMASST_TYPE_mode_switch_no_ibpb  33
>>>>>>
>>>>>> Would it be possible to define the assist as
>>>>>> VMASST_TYPE_mode_switch_ibpb and have it on when enabled?  So that the
>>>>>> guest would disable it if unneeded?  IMO negated options are in
>>>>>> general harder to understand.
>>>>>
>>>>> Negative options aren't nice, yes, but VM assists start out as all
>>>>> clear.
>>>>
>>>> Are you sure?  I see VMASST_TYPE_pae_extended_cr3 getting set in
>>>> dom0_construct_pv() and that makes me wonder whether other bits
>>>> couldn't start set also.
>>>>
>>>> Maybe there's some restriction I'm missing, but I don't see any
>>>> wording in the description of the interface that states that all
>>>> assists are supposed to start disabled.
>>>
>>> Well, that setting of pae_extended_cr3 is in response to the kernel's
>>> notes section having a respective indicator. So we still only set the
>>> bit in response to what the kernel's asking us to do, just that here
>>> we carry out the request ahead of launching the kernel.
>>>
>>> Also consider what would happen during migration if there was a
>>> default-on assist: At the destination we can't know whether the
>>> source simply didn't know of the bit, or whether the guest elected to
>>> clear it.
>>
>> Hm, I see, so I was indeed missing that aspect.  VM assist is passed
>> as a plain bitmap, and there's no signal on which assists the VM had
>> available on the source side if not enabled.
> 
> Sorry, please bear with me, as I've been further thinking about this.
> 
> Why does the assist needs to be default-on?  It's my understanding
> that the guest can execute the IBPB itself by writing to the MSR, but
> that's suboptimal in the user -> kernel context switch as it then
> involves two traps into Xen, but the guest is not left insecure, it
> just needs to write the MSR itself like on native.
> 
> In fact, if we add an IBPB by default as part of amd64 PV user ->
> kernel guest context switch, we are likely doing a double IBPB on
> guests not aware of the assist.
> 
> IOW: I don't know why doing the assist as guest opt-in would be
> insecure, in fact I think it's the best approach (again I might be
> missing something).

By issuing IBPB by default we can make guests safe (in this regard)
irrespective of their awareness of IBPB, and in particular their
awareness of IBPB being needed explicitly on the user->kernel mode
transition (where on native, with IBRS enabled, sufficient separation
exists iirc). IOW we're trying to cater for a 64-bit-PV special aspect
by default. (Andrew, please correct me if there's anything wrong in
here.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:26:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:26:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657509.1026392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsq3-0006yn-O4; Wed, 20 Dec 2023 09:26:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657509.1026392; Wed, 20 Dec 2023 09:26:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsq3-0006yg-L4; Wed, 20 Dec 2023 09:26:03 +0000
Received: by outflank-mailman (input) for mailman id 657509;
 Wed, 20 Dec 2023 09:26:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFsq2-0006k1-B6
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:26:02 +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 c8e7aaab-9f19-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:25:59 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3366827ca79so2905359f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:25:59 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 w1-20020adfcd01000000b0033651e6a74dsm962178wrm.27.2023.12.20.01.25.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 01:25:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8e7aaab-9f19-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703064358; x=1703669158; 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=/n9fVzun9HV4qvz9ociuNgnncThnUDGYOkmdgR5Mi9A=;
        b=KX8VIIhI5So8HVrZwDCHstmLRh9+OEsN1nj09FQv8IfCQvh9Htd+/yk8fHf1IdPGm+
         yykTwJdMXnnrS5up21GnatVzJtq8GsW5FodkH4ffnsU6vuglGwOFsQkCmQrrj/DnY18U
         onMIvfvTYvy2UG1SGhmhK5Ne1ase4GD4BbkfI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703064358; x=1703669158;
        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=/n9fVzun9HV4qvz9ociuNgnncThnUDGYOkmdgR5Mi9A=;
        b=gilYXFFOuQtJmrkRrCPhH1I0svTYr8yRFCMZd4lJYsttP323sGUosxq1gp9StIzN4b
         D/E5aD8N31pgbLLnCv8QCXbGBRgYGVHdfm8lf6u898LzOTcWiTR7Tc75uQ80yF2aisqX
         BgDOEMK8l1eYw+0q1Lihz7QmZp04DadGI4f0FNF6kgmUPyO+21XxxGOD1aDRJlbsXu5Y
         D/Zo6I+oIp1xatGeq/0Xx4tqiMcVguRM5/WoBvh99uCw9XYG68xmvC/q7tczGfx4+fiF
         8IbWyieKPU+TrfbZfa8BKfsqjbrhVJ1RVdaouev5omuFxYAsQbmRn1cjsBj+Hl854923
         S3vw==
X-Gm-Message-State: AOJu0YxaJRsZD983NHGEnnisU4gbQvQ9kcwVQMGra1bNgu6M//aMl6yU
	VgYNfoHKXUM148KQfOyDpm/x4g==
X-Google-Smtp-Source: AGHT+IE+v2Cr3irVtSnRxZdkNy09PArWCn+qlzKXIA95UN/PSowkdNe09nT/FvJ1F9Lx2//QsOFptQ==
X-Received: by 2002:adf:f00a:0:b0:336:4216:d998 with SMTP id j10-20020adff00a000000b003364216d998mr5887010wro.23.1703064358451;
        Wed, 20 Dec 2023 01:25:58 -0800 (PST)
Date: Wed, 20 Dec 2023 10:25:57 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v4 2/4] xen/x86: introduce self modifying code test
Message-ID: <ZYKzJeiOLOW5mcF_@macbook>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-3-roger.pau@citrix.com>
 <32d6d42f-2736-42ed-bad3-a6bdaedf588c@citrix.com>
 <ZYKvFUICQ4pKwH0S@macbook>
 <91390df2-57f7-41b7-a1cc-a050d89e5219@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <91390df2-57f7-41b7-a1cc-a050d89e5219@suse.com>

On Wed, Dec 20, 2023 at 10:12:15AM +0100, Jan Beulich wrote:
> On 20.12.2023 10:08, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 19, 2023 at 08:31:29PM +0000, Andrew Cooper wrote:
> >> On 15/12/2023 11:18 am, Roger Pau Monne wrote:
> >>> --- /dev/null
> >>> +++ b/xen/arch/x86/include/asm/test.h
> >>> @@ -0,0 +1,30 @@
> >>> +#ifndef _ASM_X86_TEST_H_
> >>> +#define _ASM_X86_TEST_H_
> >>> +
> >>> +#include <xen/types.h>
> >>> +
> >>> +int test_smoc(uint32_t selection, uint32_t *results);
> >>> +
> >>> +static inline void execute_selftests(void)
> >>
> >> IMO run_selftests() would be better, but this is already not all of our
> >> selftests, and this particular function really doesn't warrant being
> >> static inline.
> >>
> >> But I'm also not sure what this is liable to contain other than
> >> test_smoc() so I'm not sure why we want it.
> > 
> > This was requested by Jan, he was concerned that more of such tests
> > would appear.  It's new in v4 IIRC.
> 
> If the two of you want it without such a wrapper, so be it. I will admit
> I was a little puzzled to find it implemented as inline function, but I
> didn't see a strong need to comment on that.

It felt a bit misplaced to put such generic selftest function in a
smoc.c file, and I didn't feel like introducing a new test.c file just
for that.  I don't have a strong opinion however, if you think it's
better to go in smoc.c I'm happy with that.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:27:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:27:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657517.1026401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsrD-0007s6-5K; Wed, 20 Dec 2023 09:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657517.1026401; Wed, 20 Dec 2023 09:27:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsrD-0007rz-2n; Wed, 20 Dec 2023 09:27:15 +0000
Received: by outflank-mailman (input) for mailman id 657517;
 Wed, 20 Dec 2023 09:27:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFsrB-0007rq-RV
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:27:13 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f4d3e130-9f19-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 10:27:12 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-40c69403b3eso54750325e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:27:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 be8-20020a05600c1e8800b0040b397787d3sm6924381wmb.24.2023.12.20.01.27.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 01:27:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4d3e130-9f19-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703064432; x=1703669232; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Mfmr6IYxkrkStctDq36+a6nwbA62yc61JVfqmS8QJ4s=;
        b=fVkSnGKg5VoP8zJUo95uX2JfnC9l/7M4RITerM8w/0oHpaR8vWf00MvPKQLRQFvLZx
         ywuAH1/U6ZigIpoZF6YGKb4A7XwNPESUxrsQDh0rN0Doptq/oUfedBR1lb8XOTaBC1vH
         xtU6vBOYzO2NyCrww7cbuncp6JTJIDCQ2R3vKlGyKlzzNfwt2mVf3rHQBXt7lOmDAw6C
         RL76yqdg4ziKPVg/tntYqZREdAw2zqRRXCozYjvI5kBUQXN/gQ8lSq4n+KT8STUWXTKM
         hMDbjFKwVDsrV8EM16dYMzRf7xmxnTM1qO/NjZE+8W3MOg+S9WYqwoSLAwRIHe/opWKm
         CVdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703064432; x=1703669232;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Mfmr6IYxkrkStctDq36+a6nwbA62yc61JVfqmS8QJ4s=;
        b=gFXdiHpcu0KUXxYNZNSR3j/u1gyz+X3+68nrz3eioN65xxpDwa9TU0fAEobxWX/irG
         /hL4IO5SJ73a8B9JUqo+Gzo+KIdh/WJJ+zMkstHcrDB8IfJdRGeiN3C+RjWATjhQXtyn
         DsxRzOa6Yt4s5AfTQvPZv2HIUfPBuKlPPqo8ZsmNgf17oi8f1WYMP5CHDeJsZTcXs9jM
         kSuBt5qyh1PjAs9cyD5JPBqJwyBPdRUelnjVMQsKJ21xmC97lMjm541eGX1XR9O90tbZ
         8lMEqpFM8MkquUd2K0KC4vNz9YtvzhXkHR0h77CYe6CU4cAXSP1Rv0UaYKt7kPWv8Tw4
         b2cg==
X-Gm-Message-State: AOJu0YwxuTfsopzRW6K1C9uI5IU5CNbGlNu1wZp2+mfCMNV7HGRmvFeE
	WywtS+AixlEWHChRToglZj7j
X-Google-Smtp-Source: AGHT+IHBH5fektALSzlEV7JYSw6W87umQaeB+QQl09CpeA6D8PCFKQ1kQEA1sFkKIRc6JHksA55oNA==
X-Received: by 2002:a05:600c:458e:b0:40c:6b61:56b6 with SMTP id r14-20020a05600c458e00b0040c6b6156b6mr4222881wmo.40.1703064432171;
        Wed, 20 Dec 2023 01:27:12 -0800 (PST)
Message-ID: <923ddcfc-2dfd-4639-9e5c-7ad250fa1a21@suse.com>
Date: Wed, 20 Dec 2023 10:27:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] xen/x86: introduce self modifying code test
Content-Language: en-US
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, Wei Liu <wl@xen.org>,
 Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-3-roger.pau@citrix.com>
 <32d6d42f-2736-42ed-bad3-a6bdaedf588c@citrix.com> <ZYKvFUICQ4pKwH0S@macbook>
 <91390df2-57f7-41b7-a1cc-a050d89e5219@suse.com> <ZYKzJeiOLOW5mcF_@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYKzJeiOLOW5mcF_@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 10:25, Roger Pau MonnÃ© wrote:
> On Wed, Dec 20, 2023 at 10:12:15AM +0100, Jan Beulich wrote:
>> On 20.12.2023 10:08, Roger Pau MonnÃ© wrote:
>>> On Tue, Dec 19, 2023 at 08:31:29PM +0000, Andrew Cooper wrote:
>>>> On 15/12/2023 11:18 am, Roger Pau Monne wrote:
>>>>> --- /dev/null
>>>>> +++ b/xen/arch/x86/include/asm/test.h
>>>>> @@ -0,0 +1,30 @@
>>>>> +#ifndef _ASM_X86_TEST_H_
>>>>> +#define _ASM_X86_TEST_H_
>>>>> +
>>>>> +#include <xen/types.h>
>>>>> +
>>>>> +int test_smoc(uint32_t selection, uint32_t *results);
>>>>> +
>>>>> +static inline void execute_selftests(void)
>>>>
>>>> IMO run_selftests() would be better, but this is already not all of our
>>>> selftests, and this particular function really doesn't warrant being
>>>> static inline.
>>>>
>>>> But I'm also not sure what this is liable to contain other than
>>>> test_smoc() so I'm not sure why we want it.
>>>
>>> This was requested by Jan, he was concerned that more of such tests
>>> would appear.  It's new in v4 IIRC.
>>
>> If the two of you want it without such a wrapper, so be it. I will admit
>> I was a little puzzled to find it implemented as inline function, but I
>> didn't see a strong need to comment on that.
> 
> It felt a bit misplaced to put such generic selftest function in a
> smoc.c file, and I didn't feel like introducing a new test.c file just
> for that.  I don't have a strong opinion however, if you think it's
> better to go in smoc.c I'm happy with that.

My view: smoc.c would be wrong. Then it's better to have no wrapper (for
now).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:28:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:28:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657521.1026411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFssO-0008Re-GZ; Wed, 20 Dec 2023 09:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657521.1026411; Wed, 20 Dec 2023 09: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 1rFssO-0008RX-DT; Wed, 20 Dec 2023 09:28:28 +0000
Received: by outflank-mailman (input) for mailman id 657521;
 Wed, 20 Dec 2023 09: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFssN-0008RF-5h
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:28:27 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 205dc89e-9f1a-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 10:28:25 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3365d38dce2so4339520f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:28:25 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 s8-20020a5d5108000000b003366fb71297sm4478971wrt.81.2023.12.20.01.28.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 01:28:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 205dc89e-9f1a-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703064505; x=1703669305; 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=PrEvX6/yVQgGwfF8heu5Y7DVN16yqcwz9KXea8MHDJo=;
        b=Rc5UJsnu7v1XxYAYCnOp5vRN4xmmQWZSMbnjbmpSkm7J7ZbVrFAyebNtMg3TI5uCeE
         DGZ2nv/aK+KlQToInmO8WARe4nzq7GrDVwUpmYFS6RJtaR80+oiOhHpP4kMjOSfd1Qmz
         ZhfnU0HXC+UX89MQNph2YlC93V9fJsomaI/wE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703064505; x=1703669305;
        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=PrEvX6/yVQgGwfF8heu5Y7DVN16yqcwz9KXea8MHDJo=;
        b=QjxKCyp3QtAuTZKWiR92KOdSWnkvAOTQmHvQPQ1Qswo4HcftXZUYGiQ8TNb2ITDfQp
         BAjY9f/WsrtlYKU/5uZC4hVu7OAAvVARppwwRx3fTJ5bIETM3wwtnmbexJeXUBbKZevl
         D5YIUXS9qn8Lzq7lVg+9qDLpiuXiZG36WtzcnNuUhOv4nTxfumUnZ8dsO6cPZSHJNktW
         WYLV1IpIoHK/nx6E5JLNl18ztfW6R8GMqSgOL4+ULJ2qAwKFafwQ/xz7U2svrykE0YrE
         Diiyx57borIQ5QpWl4jALmQnWoRvG3W8Ce3T9g4bQIqvPAzDyEXG7Xam7+0/v2K+bKk6
         /gYw==
X-Gm-Message-State: AOJu0Yy65R8yPhONt7YbSobN6RT61ALtPeZufq6PSJKGclS/Yuz8Y1Xf
	FZQlLhcONWoKTGBH+kBY0X+9zg==
X-Google-Smtp-Source: AGHT+IE8XZFd/kUnvO2yd/DMdwicdEdzY2XpHHGkNhU1sFdDlQJZUjEcS5PAU+JoCL2m3wkjXQA6Bg==
X-Received: by 2002:a05:600c:244:b0:40c:2b4c:623f with SMTP id 4-20020a05600c024400b0040c2b4c623fmr6611652wmj.82.1703064505268;
        Wed, 20 Dec 2023 01:28:25 -0800 (PST)
Date: Wed, 20 Dec 2023 10:28:24 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 2/4] xen/x86: introduce self modifying code test
Message-ID: <ZYKzuJVnoE312Xdi@macbook>
References: <20231215111842.8009-1-roger.pau@citrix.com>
 <20231215111842.8009-3-roger.pau@citrix.com>
 <32d6d42f-2736-42ed-bad3-a6bdaedf588c@citrix.com>
 <3957ab63-9f77-4342-a470-62a0c077bb55@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3957ab63-9f77-4342-a470-62a0c077bb55@suse.com>

On Wed, Dec 20, 2023 at 10:09:12AM +0100, Jan Beulich wrote:
> On 19.12.2023 21:31, Andrew Cooper wrote:
> > On 15/12/2023 11:18 am, Roger Pau Monne wrote:
> >> +        if ( system_state < SYS_STATE_active )
> >> +            printk(XENLOG_ERR "%s test failed\n", tests[i].name);
> > 
> > This is a test hypercall, for the purpose of running testing, in
> > combination with test livepatches.Â  Eliding the diagnostics isn't ok.
> > 
> > Logspam concerns aren't an issue.Â  If the user runs `while :; do
> > xen-test-smc; done` in dom0 then they get to have a full dmesg ring.
> > 
> > Don't let that get in the way of having a sensible time figuring out
> > what went wrong.
> 
> Since it was me who asked to suppress this when invoked through sysctl:
> I can live with an unconditional printk() here, but I think this goes
> against the "what can be done in user space should be done there"
> principle: If enough information is propagated back, user space should
> be able to provide all necessary output without even a need for the
> observer to run "xl dmesg".

But propagating such information to user-space is also not trivial,
and involves more logic in the hypervisor.

I think the point of "what can be done in user space should be done
there" is to avoid adding unnecessary code to Xen, but in this case
printing such detailed information in user-space would require adding
more code to Xen in order to propagate it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:30:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:30:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657527.1026421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFsuA-0001q5-Rl; Wed, 20 Dec 2023 09:30:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657527.1026421; Wed, 20 Dec 2023 09:30: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 1rFsuA-0001py-P7; Wed, 20 Dec 2023 09:30:18 +0000
Received: by outflank-mailman (input) for mailman id 657527;
 Wed, 20 Dec 2023 09:30: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=KgnP=H7=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rFsu9-0001pq-W6
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:30:18 +0000
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01on0617.outbound.protection.outlook.com
 [2a01:111:f400:fe1f::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 619db1fe-9f1a-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:30:15 +0100 (CET)
Received: from AS9PR06CA0246.eurprd06.prod.outlook.com (2603:10a6:20b:45f::12)
 by PAWPR08MB10307.eurprd08.prod.outlook.com (2603:10a6:102:366::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Wed, 20 Dec
 2023 09:30:12 +0000
Received: from AMS0EPF000001A9.eurprd05.prod.outlook.com
 (2603:10a6:20b:45f:cafe::75) by AS9PR06CA0246.outlook.office365.com
 (2603:10a6:20b:45f::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38 via Frontend
 Transport; Wed, 20 Dec 2023 09:30:12 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF000001A9.mail.protection.outlook.com (10.167.16.149) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7113.14 via Frontend Transport; Wed, 20 Dec 2023 09:30:11 +0000
Received: ("Tessian outbound e243565b0037:v228");
 Wed, 20 Dec 2023 09:30:11 +0000
Received: from 34d8a92643b6.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 934F9109-80C2-4F14-AA8E-87D2891B15BF.1; 
 Wed, 20 Dec 2023 09:30:05 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 34d8a92643b6.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 20 Dec 2023 09:30:05 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com (2603:10a6:208:ff::27)
 by DB9PR08MB7819.eurprd08.prod.outlook.com (2603:10a6:10:39b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Wed, 20 Dec
 2023 09:30:00 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e]) by AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e%3]) with mapi id 15.20.7113.016; Wed, 20 Dec 2023
 09:30: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: 619db1fe-9f1a-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=RhuKT13MnyVRvlf/61hbiy0WVDSpGRP7os5GSiAMSK2fxZgEE3rpe4RP2aeEt8wiNJ2doxEJ8s/AvkgcFCMYWbZcym+XmkP28q3sQrMKBw8vfOOqQG3YUiqPq839p4av+cWYWSUk+RGO+XK9pz0ZCNRBejr2gNL51UAd8jgpVPljokM8hDVELbXXvn62QILYnGo/LKZVfOs2piCUo/sY+61Njmr/n+ErThzyu98eNbZfmfXvOhMk/M3jjhT840qpXJzG2rLrfIIeeZg5Syxzh0/eXfSkSdR4eshGKCEzae2QY3IEtswtxjt1O/SElJDBhkpiDsbiiFDSL+tDQmFRKA==
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=zvV4NR333hxmhIldWvS3gLq5krbNLgCsA1APYtzXxig=;
 b=cwSpyW2Wu6wWXqJF+lNpyCjyE16UiuOQz4zkbCwRy6z4EPCcnf6f39G9kOpgm+m5s1b0pvS/S0w9Ks+bK4GnWK/911jxlQZLkTZTmhLzvhIgPWD0cQEB5Sky3GghtgYrJVXiKS4ceuZ4ljlaL8WbYkAl/T/459wYtvDeg4o8U12cjcFQXJjEY+W000VoY/Wem/qXX+JelVmFTESGNbLZ3RLnkw51u3a2raFZfcWl8XwbmO3AGE1+HGTQwR41Aos+R1pPvq1qyZZhS3+iVt/tDXD9HlOLlUxtSaVxCv3ZECdvFJ4U1jqMPxWOF7iKKCZ13sfNxVkl2kycuvC21StK6w==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zvV4NR333hxmhIldWvS3gLq5krbNLgCsA1APYtzXxig=;
 b=Beu8XpTfXk+GbfB801MHLSsxskz94h198iw81ZpKxzodcxyrCbMBlyk0U2g9xyuT0Waox+t0cCqevarQMZNTVaQIVqu8ELVEstVEr8mn74IkXdbg+DWmDTPVnpDT7LJvrLvFHQm+MUtJkEj/nKrayr+gfM3cWfDXd/AkBo/d5M8=
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=armh.onmicrosoft.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: f74e53e72a87c82e
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=T+OXxPoYFtEGIzfl0r49pj/hsc5XMNwy7jLAdCMB/v91+Ta9dnLZUHmas4352AlmQlI8N+aBAUQotxwEni8h6H2LvPMF56kNhkWXYnzOHMroqipn9AZ1VcnxS20MnlyTF2/eKnHAvpgFLgtQlSsr3vzDo6pbLSOm+aYx3MUAKOdxVRuDXnm7iO75NZMQRIcRXxAdLZKUiv9d3NgTD5pxUsOz/cX5fBh6ymzCGG952ctfk1xk4L8fsrZ0PAuQtx76bBcVRFQsgSJ2UiqkMCbiClXG/rTCgfvNdEfSYNu9h6I+S334L3M2guOIpK3TMSWHVmJX/sfweM915d2/R7mn9w==
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=zvV4NR333hxmhIldWvS3gLq5krbNLgCsA1APYtzXxig=;
 b=EeZyyFypCQiXrDA0QBuU1V5ssCk7VS6WUnts2oW/7N6WLikwC3vf6eYeNA2VTe+Lya7CyMoArCZAYrLbBGsWBsOhaRA5GuEkhEmhiyFJ6ux3ruvi4VdsjKIOgtICiPXpjJrUEsPhxLbZZhSKdfrBIxgD5y3BmHP6TqMhvaOJWp8xFjyVDcBfrhckfZtg1ABRtT4MI44gI9CrbP2DbFo0OCzcmcvoJwBvoqAnubf6hnIfXtuBfuGRpy9LtCH6A4UkYsSzQ49im1qT0+Tv7x0HjMo3m1EJw8FAgxibCiHSM407jLlcjilWRYpjXJFUPcruErPISYHlJV1LlawIewfo2w==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zvV4NR333hxmhIldWvS3gLq5krbNLgCsA1APYtzXxig=;
 b=Beu8XpTfXk+GbfB801MHLSsxskz94h198iw81ZpKxzodcxyrCbMBlyk0U2g9xyuT0Waox+t0cCqevarQMZNTVaQIVqu8ELVEstVEr8mn74IkXdbg+DWmDTPVnpDT7LJvrLvFHQm+MUtJkEj/nKrayr+gfM3cWfDXd/AkBo/d5M8=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
CC: Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	"michal.orzel@amd.com" <michal.orzel@amd.com>, "Volodymyr_Babchuk@epam.com"
	<Volodymyr_Babchuk@epam.com>, "stefano.stabellini@amd.com"
	<stefano.stabellini@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Topic: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Index: AQHaMfEa7o9h58xZgUaSJIw5Lcks+LCx6kEA
Date: Wed, 20 Dec 2023 09:29:57 +0000
Message-ID: <F1A640BE-0CDC-4026-BBB3-637ABE7D996C@arm.com>
References: <20231218202959.1390114-1-ayan.kumar.halder@amd.com>
In-Reply-To: <20231218202959.1390114-1-ayan.kumar.halder@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM0PR08MB3745:EE_|DB9PR08MB7819:EE_|AMS0EPF000001A9:EE_|PAWPR08MB10307:EE_
X-MS-Office365-Filtering-Correlation-Id: d1257269-98fc-4f28-f28d-08dc013e43f4
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 WhTehkskOCBOoqc80enxlIZIDAdylq36vjUzrzPLXOXTtYnyVa7xTkFYRi+EbB0nABwZy0lwJgMUrGSlHt3uO3O+DCykDWYkOO6lv5NbTeUtG129DNvy0/KG4+3fY0Iu4UFz0qCbHoaTq9Pkmg3qDUddmMcWbSjkx1W0tt083ZE78PyTeU+EC8LHKJp+Cjx2/xaJAIJGKnJrijN1XVQpuzNu+2TehrCJf0k3SA6HVTEblRWVcMlMNugeELgkfJ88w6Cw3pRjiA47LWUWkKt6bFhzt2/Qhiw+90GXn/WHNpwKfmuiIz+UeG4C/Mj+LtJdhkO1Yf62BBKMXrs4YOU9s4pX8ZCSfzuVaCYiQS72dVB69GkZaCQ5F2zWUW7L2KpmxCDBtkiEOW8brhmHQx1VVjfwkwwOJP4fQV/BmG47oBfez4NV3u0C9bgDlCQp+aQ8QTl2uowrEKU7dracJABmvvhFj25hVrLbcQNXmg0oNYOm2/zy4Je5TctZ+NqXwjGyBPGYebFGmhj1JRp1Y5s9ptJ8DgJEPUAG5Em49cxsJztoYy3BcJKW0N75gEu/yiZRNC71h74HVq0Q9QwPF8TltZeWIouQfoqFKJLEgVTttNtmwK4gP5glUZGm2qoYPBBdh62/NXHUhUlg6upU/tpS9Q==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(136003)(396003)(376002)(366004)(39860400002)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(38070700009)(316002)(83380400001)(91956017)(54906003)(66556008)(66946007)(76116006)(64756008)(66446008)(6916009)(5660300002)(66476007)(2906002)(4326008)(8676002)(8936002)(53546011)(6506007)(6512007)(71200400001)(6666004)(26005)(6486002)(478600001)(966005)(33656002)(86362001)(41300700001)(122000001)(2616005)(38100700002)(36756003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <0E30D80FC459384AA4C37EDA892AB4F9@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7819
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:
 AMS0EPF000001A9.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	97e72e36-15e5-47a9-0055-08dc013e3b30
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	PUfSwdF+CA6iLDEUzzRIjW5ctV1PNd9rYXrLkxpgtaTae1VZJSMauLPOiRuOjV0acmiVCNxPgrbaqJOB5Fyk/xTAWkkQ1Iccuq/Wd5eHXH1sMfzIu1Yhl/TITh+gBOs9crn14/Pf/L+waJR+ZYZETZ4QYHzkJDZUCZgP68Bwojs5BixkaRfRfT1FqyEM3OHgnwGAnCyp6zo054rpdvtl0x9ckeAnn77pIQ2kFjI3Cc3IEjDhYDeWnW/KwmLTqfyP8Xez4ur6/X5PHNi1mCJOOdMhRLWah1NC4BoiTPhBWnN29muawfgYyiW3La8klXk7XpjySj/Ey02XesrX3KRxDE6/DgeNUyjbTIuvflhcqUKaSAso4LPjUpTExDQgwyPkm50ax/S6YHMt/ED12Q4XYLKItRgld72SJ6At02XvCMdYgrBdLE512aCoEk1OzKRuk9QNlqnrS12/smxxsJsMFnHGQJ7OGsMrdfRomzuk1WKuWYJS4+Bbpmu7DGt19XuuTnNSI0+2pkpfPonsWWxcOJDlZLV4DOsLzorEX/GMp44IQ2QLtVFl/mlKc1JjIUkFcSZIdMsUlrcLNeKZbOPnaBwTGyOW2iwv+7mCqGyQAVGvJSxgxNvcTA9Er2ToYYx/azZA2eBRCp9vVEkwx7jP3dHOsX6RpraCQHKKUuXGGEWUY6K9ENRmXH/Ws0gCSVEVIdPdoT1svzPKFt7yKKkZnKfT0rTpsxFa34esCCutOrk=
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:(13230031)(4636009)(136003)(39860400002)(376002)(346002)(396003)(230922051799003)(1800799012)(82310400011)(64100799003)(451199024)(186009)(40470700004)(46966006)(36840700001)(2906002)(47076005)(4326008)(8676002)(8936002)(6862004)(36860700001)(6666004)(6512007)(53546011)(6506007)(83380400001)(336012)(5660300002)(40480700001)(33656002)(316002)(54906003)(70206006)(70586007)(40460700003)(81166007)(82740400003)(356005)(478600001)(26005)(41300700001)(966005)(2616005)(6486002)(36756003)(86362001);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 09:30:11.9025
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d1257269-98fc-4f28-f28d-08dc013e43f4
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:
	AMS0EPF000001A9.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10307

SGkgQXlhbiwNCg0KPiBPbiAxOCBEZWMgMjAyMywgYXQgMjA6MjksIEF5YW4gS3VtYXIgSGFsZGVy
IDxheWFuLmt1bWFyLmhhbGRlckBhbWQuY29tPiB3cm90ZToNCj4gDQo+IEhpLA0KPiANCj4gUmVm
ZXIgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvYWxsL2FscGluZS5ERUIuMi4yMi4zOTQuMjMxMjA3
MTM0MTU0MC4xMjY1OTc2QHVidW50dS1saW51eC0yMC0wNC1kZXNrdG9wL1QvDQo+IGZvciB0aGUg
cHJldmlvdXMgZGlzY3Vzc2lvbiBvbiB0aGlzIGlzc3VlLg0KPiANCj4gQWxzbywgdGhlIGxpbnV4
IGVhcmx5Y29uIGh2YyBkcml2ZXIgaGFzIGJlZW4gZml4ZWQuDQo+IFNlZSBodHRwczovL2dpdC5r
ZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9ncmVna2gvdHR5LmdpdC9jb21taXQv
P2g9dHR5LW5leHQmaWQ9MGVjMDU4ZWNlMmY5MzNhZWQ2NmI3NmJkNWNiOWI1ZTY3NjQ4NTNjMw0K
PiANCj4gQ2hhbmdlcyBmcm9tIHYxOi0NCj4gMS4gU3BsaXQgdGhlIGNoYW5nZSBhY3Jvc3MgMyBw
YXRjaGVzIGFzIHBlciB0aGUgZGVzaWduIGNvbnNlbnN1cy4NCj4gDQo+IEF5YW4gS3VtYXIgSGFs
ZGVyICgzKToNCj4gIHhlbi9hcm06IEFkZCBlbXVsYXRpb24gb2YgRGVidWcgRGF0YSBUcmFuc2Zl
ciBSZWdpc3RlcnMNCj4gIHhlbjogYXJtOiBJbnRyb2R1Y2UgQ09ORklHX1BBUlRJQUxfRU1VTEFU
SU9ODQo+ICB4ZW4vYXJtOiBJbnRyb2R1Y2UgInBhcnRpYWwtZW11bGF0aW9uIiB4ZW4gY29tbWFu
ZCBsaW5lIG9wdGlvbg0KDQpJ4oCZbSBhIGJpdCBwdXp6bGVkIGFib3V0IHRoZSBvcmRlciBvZiB0
aGVzZSBjaGFuZ2VzLCB3b3VsZG7igJl0IGJlIGJldHRlciB0bw0KSW50cm9kdWNlIHRoZSBwYXJ0
aWFsIGVtdWxhdGlvbiBLY29uZmlnIGFuZCBjb21tYW5kIGxpbmUgYXJncyBpbiB0aGUgc2FtZQ0K
cGF0Y2ggdG9nZXRoZXIgd2l0aCBzb21ldGhpbmcgdGhhdCB1c2VzIGl0Pw0KDQpJIHRoaW5rIGhl
cmUgeW91IHdhbnRlZCB0byBrZWVwIE1pY2hhbCBwYXRjaCB1bnRvdWNoZWQsIGJ1dCBJIGZlZWwg
dGhhdCBhDQpjb3JyZWN0IHNwbGl0IGZvciB0aGlzIHNlcmllIHdvdWxkIGJlIG1heWJlIGludHJv
ZHVjaW5nIEtjb25maWcsIGJvb3QgYXJncyBhbmQNCm9uZSBvZiB0aGUgYXJtNjQvYXJtMzIgZW11
bGF0aW9uLCBhbmQgb24gYSBzZWNvbmQgcGF0Y2ggdGhlIG90aGVyIG9uZQ0KKE9yIHZpY2UtdmVy
c2EpPw0KDQpJZiB0aGVyZSBpcyBzb21ldGhpbmcgdGhhdCBJ4oCZbSBtaXNzaW5nIGxldCBtZSBr
bm93Lg0KDQo+IA0KPiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5wYW5kb2MgICAgfCAgNyAr
KysrKw0KPiB4ZW4vYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgfCAgOCArKysrKw0K
PiB4ZW4vYXJjaC9hcm0vYXJtNjQvdnN5c3JlZy5jICAgICAgICAgfCAzMiArKysrKysrKysrKysr
KysrLS0tDQo+IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm02NC9oc3IuaCB8ICAzICsrDQo+
IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9jcHJlZ3MuaCAgICB8ICAyICsrDQo+IHhlbi9hcmNo
L2FybS9pbmNsdWRlL2FzbS9yZWdzLmggICAgICB8ICA2ICsrKysNCj4geGVuL2FyY2gvYXJtL2lu
Y2x1ZGUvYXNtL3RyYXBzLmggICAgIHwgIDQgKysrDQo+IHhlbi9hcmNoL2FybS90cmFwcy5jICAg
ICAgICAgICAgICAgICB8IDIxICsrKysrKysrKysrKysNCj4geGVuL2FyY2gvYXJtL3ZjcHJlZy5j
ICAgICAgICAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPiA5IGZp
bGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkNCj4gDQo+IC0t
IA0KPiAyLjI1LjENCj4gDQo+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:32:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657531.1026432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFswS-00035Z-84; Wed, 20 Dec 2023 09:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657531.1026432; Wed, 20 Dec 2023 09:32:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFswS-00035S-5F; Wed, 20 Dec 2023 09:32:40 +0000
Received: by outflank-mailman (input) for mailman id 657531;
 Wed, 20 Dec 2023 09:32:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=1nAz=H7=redhat.com=kwolf@srs-se1.protection.inumbo.net>)
 id 1rFswR-00035M-Ah
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:32:39 +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 b5dc52d7-9f1a-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:32:37 +0100 (CET)
Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])
 by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-179-n_RmENl5NdCMHivcy7hjVQ-1; Wed,
 20 Dec 2023 04:32:31 -0500
Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com
 [10.11.54.5])
 (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8C4651C0515D;
 Wed, 20 Dec 2023 09:32:30 +0000 (UTC)
Received: from redhat.com (unknown [10.39.193.255])
 by smtp.corp.redhat.com (Postfix) with ESMTPS id 91B0B51D5;
 Wed, 20 Dec 2023 09:32: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: b5dc52d7-9f1a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1703064756;
	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=2Qcrw39oMMwhNCMv0Cz5DsDKDZMtBJxelltXBxM9QUo=;
	b=djblddOF4rMbd38noC9ROdML8/R2wDmrDtcXeNFQQXC5gV1xjyWLFnF04SFWDFGli9XDNe
	6eHxmXgCg9TEgvQvnwc9ELp3YLu0kVppLExrtRppmP8ropVKzSif12ULoc6r7lJpbcyuiF
	TEOwmkuVACltUk6ry7XtfrVcymFHDTc=
X-MC-Unique: n_RmENl5NdCMHivcy7hjVQ-1
Date: Wed, 20 Dec 2023 10:32:21 +0100
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org,
	Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,
	Cleber Rosa <crosa@redhat.com>,
	Xie Changlong <xiechanglong.d@gmail.com>,
	Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>,
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>,
	John Snow <jsnow@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,
	Wen Congyang <wencongyang2@huawei.com>,
	Alberto Garcia <berto@igalia.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>,
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>,
	Zhang Chen <chen.zhang@intel.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>,
	Peter Xu <peterx@redhat.com>,
	Emanuele Giuseppe Esposito <eesposit@redhat.com>,
	Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>,
	David Hildenbrand <david@redhat.com>,
	Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 04/14] aio: make
 aio_context_acquire()/aio_context_release() a no-op
Message-ID: <ZYK0pUSPFQiU4Qs_@redhat.com>
References: <20231205182011.1976568-1-stefanha@redhat.com>
 <20231205182011.1976568-5-stefanha@redhat.com>
 <ZYG2mSe1JWnC0tq_@redhat.com>
 <ZYHew2poxuJJRyhC@redhat.com>
 <CAJSP0QX0fg0TGWuveJz6+QbF9EmY=vPiU-c99fHZMN=1jAnXkw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAJSP0QX0fg0TGWuveJz6+QbF9EmY=vPiU-c99fHZMN=1jAnXkw@mail.gmail.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5

Am 19.12.2023 um 22:23 hat Stefan Hajnoczi geschrieben:
> The following hack makes the test pass but there are larger safety
> issues that I'll need to look at on Wednesday:

I see, you're taking the same approach as in the SCSI layer: Don't make
things thread-safe, but just always access them from the same thread.

In theory this should be okay, but I'm almost sure that at least
nbd_drained_poll() must then run in the same AioContext, too.

> diff --git a/nbd/server.c b/nbd/server.c
> index 895cf0a752..cf4b7d5c6d 100644
> --- a/nbd/server.c
> +++ b/nbd/server.c
> @@ -1617,7 +1617,7 @@ static void nbd_drained_begin(void *opaque)
>      }
>  }
> 
> -static void nbd_drained_end(void *opaque)
> +static void nbd_resume_clients(void *opaque)
>  {
>      NBDExport *exp = opaque;
>      NBDClient *client;
> @@ -1628,6 +1628,15 @@ static void nbd_drained_end(void *opaque)
>      }
>  }
> 
> +static void nbd_drained_end(void *opaque)
> +{
> +    NBDExport *exp = opaque;
> +
> +    /* TODO how to make sure exp doesn't go away? */

blk_exp_ref()?

> +    /* TODO what if AioContext changes before this runs? */
> +    aio_bh_schedule_oneshot(nbd_export_aio_context(exp),
> nbd_resume_clients, exp);

We could increase client->nb_requests if we change it to be accessed
atomically. Then nbd_drained_poll() will make any AioContext change wait
for the BH.

Or maybe aio_wait_bh_oneshot() would already solve both problems?

> +}
> +

Kevin



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:32:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:32:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657534.1026441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFswj-0003eS-Iz; Wed, 20 Dec 2023 09:32:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657534.1026441; Wed, 20 Dec 2023 09:32: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 1rFswj-0003eG-GG; Wed, 20 Dec 2023 09:32:57 +0000
Received: by outflank-mailman (input) for mailman id 657534;
 Wed, 20 Dec 2023 09:32: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=KgnP=H7=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rFswh-00035M-VM
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:32:56 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on20600.outbound.protection.outlook.com
 [2a01:111:f403:260e::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c03d02a1-9f1a-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:32:54 +0100 (CET)
Received: from DU2PR04CA0235.eurprd04.prod.outlook.com (2603:10a6:10:2b1::30)
 by AS8PR08MB9290.eurprd08.prod.outlook.com (2603:10a6:20b:5a5::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Wed, 20 Dec
 2023 09:32:51 +0000
Received: from DU6PEPF0000B61F.eurprd02.prod.outlook.com
 (2603:10a6:10:2b1:cafe::dd) by DU2PR04CA0235.outlook.office365.com
 (2603:10a6:10:2b1::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18 via Frontend
 Transport; Wed, 20 Dec 2023 09:32:51 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000B61F.mail.protection.outlook.com (10.167.8.134) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7113.14 via Frontend Transport; Wed, 20 Dec 2023 09:32:49 +0000
Received: ("Tessian outbound 7671e7ddc218:v228");
 Wed, 20 Dec 2023 09:32:49 +0000
Received: from 97a87bccd791.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 07200E70-55A2-4209-9FE8-DFC2FC68F926.1; 
 Wed, 20 Dec 2023 09:32:37 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 97a87bccd791.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 20 Dec 2023 09:32:37 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com (2603:10a6:208:ff::27)
 by DBAPR08MB5592.eurprd08.prod.outlook.com (2603:10a6:10:1a8::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Wed, 20 Dec
 2023 09:32:34 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e]) by AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e%3]) with mapi id 15.20.7113.016; Wed, 20 Dec 2023
 09: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: c03d02a1-9f1a-11ee-9b0f-b553b5be7939
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=aNlswKfaxfNpSKO+MQuTEqMVL0DK3i7UKdWMOidMupMArmD2NYjnBeZgxDYwud/L58e3TFdrfdikWoqm1lDrVjnoBxy9EiR9nto66Fdqjy13q2mRP10ViIv/mSPfNkSddT/g+HTds1D+S+DmlendQhsKWSdLGZYzcxFOxRyp/Osy8kxx4H0R7lopVeZBy08sh5/gNQAnAAauFV4CscoTG2TNGU2qnrssiHGmI7SzYcgGWqOvnMH9sjPB+H4VyYIejlpWQ2qOkiU9F61jROK5cboO23H1tYN1MSmqW6eBaM1kuwCin6yiY9cpeuuHdH9gTSdL0cZ6b/D1e7/Go60Apg==
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=yKL7a8X1f1osYgWOH+UsyDnfjCtV0QxjjE4HAKpiykI=;
 b=MHg23f8M9Nvz1ZqQ04vSgrvULWZnoJ7EUHRGLL4rvSXu7yZFIRqx34my18WxM56v+kpQYyP1KHlAnsHxcPLNYDRygta35/7hkbKMo/2Zxk6/0SQfdLe+bvCxmCvqp7NxJbwu/LBp8j5u/RZBP6ACdovcs8zeK3cvbuEwku2BCtJliBr+NH6mKxURqy5MkFEUwW/rkgKJfjJPHuq5z/I1Uug+1CIx19Ve3qennkqa8YY1dAqKhAtzw9Vxpn5KbovOhzC3qy6zWkolFpNynxD0/aBAPJmkziQ449bNwwpaT3+QQOtZkUn3gBNlu70c3P9CBgglvHxBFdVaVx04pDPWfw==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yKL7a8X1f1osYgWOH+UsyDnfjCtV0QxjjE4HAKpiykI=;
 b=zIFSI25YDhFvIsH8LzUNCYHpRkqvK0UIjcWO1meHx+QaAUVJwG68bX7R7vnbAsXuAkPGFLXOEUDagTUaQ047hmQTcKnDcZE3uu0nM5pmRu1VYWDM5FYAKIQKa6X+clHq6jdJflvoVM1pwGWQePBvn5oofo/NqducswbnRvHvw1I=
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=armh.onmicrosoft.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: 154f65746910835b
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=CCsCR9s/xtz/ZZG7FUki+RRlGA3J3Rgq8WQGg7fwxvtQPapyA36QbR5lGRBNaejzOH1yvKGleBVvmmMGUQYj7UGGTc2bSMqh95Nyd5qyqXiHzrOgvHmrMusP7avJFrZ+g3AxlJ1XtBgmopeXZ6hJfxiPtNU5a8kXOFj97A9BhCUgAdHmls4rwho+nT79yFv8Ruk4upYvFnQwhSSxZ2X6Q9cJTDH5iHSBP/ClrZY3H3w40jCVbIAYFx87ufxMLQJaMf+lfzwAmfF7nmBNeA+iSkEicOSkSjhlDZvg+s7ZtilVRnOuIcC8bpyLCUQ9TiKXFUpdaV/sJ54MKb8Rsdoz0Q==
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=yKL7a8X1f1osYgWOH+UsyDnfjCtV0QxjjE4HAKpiykI=;
 b=MsvJfoymkZ7qz+vXkdwZZOaK+GT1Uvs6UYZJmHEob/Z7Os6/wATEur6i2T4079+iANVpgDkjoQ7QClgY/ayB1+EDAxM+qzGGV9II/AJAaqvRT90J4lK+H2scndeS4t4FXCYoMFtJkUVnf72YZnrj+SZhakhWzbbRzqqv4aknFsHGidmGWgvLPvKpRmC9NQMZ4n25QWam29Q5UtOH58AhcN1qrQNMMYGPfdwJJ5Kw81I2YWHqbsHsCoaJ4C/FJOL/BrQ2PCnddOjz8kriKvLQ1EohmIPWWJS2tal8mrD+B+VczpuL6e/V0K/JopORFvqLuKUFGF92vf4f/n9iIAcsgA==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yKL7a8X1f1osYgWOH+UsyDnfjCtV0QxjjE4HAKpiykI=;
 b=zIFSI25YDhFvIsH8LzUNCYHpRkqvK0UIjcWO1meHx+QaAUVJwG68bX7R7vnbAsXuAkPGFLXOEUDagTUaQ047hmQTcKnDcZE3uu0nM5pmRu1VYWDM5FYAKIQKa6X+clHq6jdJflvoVM1pwGWQePBvn5oofo/NqducswbnRvHvw1I=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
CC: Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, Xen-devel <xen-devel@lists.xenproject.org>,
	Michal Orzel <Michal.Orzel@amd.com>
Subject: Re: [PATCH v2 1/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Topic: [PATCH v2 1/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Index: AQHaMfGFODWW6iH8o0mTxwbTISU3yLCx6v0A
Date: Wed, 20 Dec 2023 09:32:34 +0000
Message-ID: <3222B486-0D0E-4D04-BD81-CF5162ED164F@arm.com>
References: <20231218203242.1393268-1-michal.orzel@amd.com>
In-Reply-To: <20231218203242.1393268-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.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM0PR08MB3745:EE_|DBAPR08MB5592:EE_|DU6PEPF0000B61F:EE_|AS8PR08MB9290:EE_
X-MS-Office365-Filtering-Correlation-Id: bd34f1f4-e3a2-4442-fb7e-08dc013ea1cf
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 t8kgQy9DjAh473m4RLHa/riHLYLqt5CGkVKajFph9OHAUMwryZxmDajQqqp4twGOfmgcy73G5CxSlOf0+dHJCMkT/SI56SUIVzzdfv2C3WHd9hO3TAr/O9ZCsBDqQloWe3hql4HE9KjP4wUUkkBh1C/qaTz5hS+TiS7aBVz9ihhcHBzWIKNzk36noGThDaFFpEvwv20nahiLwPzRobJl3WD2u73D+tC791NT1c27+SqvBMaM7eRkHA/gy6D2b2X2kteJk5j/2Ni+rHtUlPNtXyRUE9HISlWkSuftnSPRTOFieLovLeiR8GSgqJXCNNQW6sFUYXL8zdreyTz3K6RXFxoTwq/H7MRzPy/uftraGAOOaHTrcPSr893vr6Sk2rydRAQBloIAR2QBxs+zr8es3uXDMTu0PSMtENZaBIud9FVOit5P8W3kwl0EuGXTDGWOA1jDHyBCm6206qX6epvdIQMgjKFnylA5BP0VGHZB2M2hc+Ulwq8+vYGkPZAS+RLTaJ8lWRzBXlRJwN+0HKLWMieUx/uaEqh1KBid5Gwpy77J8PBnanUeU3EXOVZFoTpwXWHHDR1jqX1cqcs4NhT5pDeHt/cpkAd5uz4zJI+SMwcr7mbjChqKaGyhRLemkZQlxiyG2dM68EyxV3IA/rI5x4xnC/5TRCddBnP36dcTPA+X0lG9vDRugTO7+ZSyJpkV
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(39850400004)(136003)(366004)(346002)(376002)(230922051799003)(230273577357003)(230173577357003)(1800799012)(64100799003)(451199024)(186009)(38100700002)(38070700009)(71200400001)(8676002)(5660300002)(4326008)(8936002)(2906002)(2616005)(26005)(6486002)(53546011)(54906003)(64756008)(66446008)(6916009)(66476007)(316002)(66556008)(76116006)(66946007)(91956017)(6506007)(6512007)(122000001)(478600001)(83380400001)(41300700001)(33656002)(86362001)(36756003)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <066057B95671F544AF46B4F03DA544C6@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5592
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:
 DU6PEPF0000B61F.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	e428ee8a-c5ea-4000-701e-08dc013e9928
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	O9UHvBC4rOSux/cOR/qpQ381wdSpoS+S36bgbj5d+8Ac0IOFUt/7BsHqgSSkcskx1od0sI76zkp9xgWKgQ4OL+bfoPwc1rd3mlRVAexaQ0FuOHxK6bBuYUiq72SJHi4lVGZ1yY8uLfyy3ul8+Era9w4sEn+aV+/Z3Yy0Awn/4EPDGp6wlDtPt0w8ndSmSJGv/ecK37OILcS4vSUWCGjFBlyFIqSWxGS+QzZspYV9bFW32ukS2MZBrp/eHL3gxcL1mWhrmdZk/Mxez5z9YSTs7hPq30nidPkxGVXlIDg/ME5MjpGA/QYxSdCllHZ1biDSrPZV78QnLYoH5YsfaTjjTPJRY20DmdyCiZarEOHtcUfReo4qVAQ52yUGvZ5xndGaX1BAbD8LtehELlUHpfX2X1zUdtEfahqPWfD78q5cXdjMlxpgv/TMsJH0bpbpSUPyaMGYEp3LsFUwFIT0EPX2XKvbzhrhsO44XH1qj+EyXkquTuxEno1bVxFo9YJlloNoGjuDFDExywHm2HPZH61aQVHIoGYeGwQdvO2SVOnX6Uym4ir4nS/9kgr58DpfktysbtrwbTBBYh4iP5TY8FzPeMQ+llYcfZvIaKBuB53n0Py9kOjoSEGdQId5KcEOfeoN2xZISWwmNGjS0EvjimyXr3sNmxP8lwfH+BSppzwMligTCWXhgHrfpS1IiTMCIOYdKgA2muKj2a58vbLauIVN4inZDcfz1fYYjNmdSUMNj1vErUGQcouuBnNbrHJZe/IQortcClhdFHXGgfz594BE/XK9Wy/OaLmnznJAPBF56+w=
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:(13230031)(4636009)(396003)(376002)(346002)(39860400002)(136003)(230273577357003)(230173577357003)(230922051799003)(186009)(451199024)(64100799003)(1800799012)(82310400011)(36840700001)(46966006)(40470700004)(316002)(83380400001)(70206006)(336012)(70586007)(53546011)(54906003)(5660300002)(8676002)(47076005)(4326008)(6862004)(8936002)(36860700001)(2906002)(6512007)(6506007)(40480700001)(26005)(6486002)(478600001)(2616005)(33656002)(86362001)(41300700001)(82740400003)(356005)(81166007)(40460700003)(36756003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 09:32:49.4130
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bd34f1f4-e3a2-4442-fb7e-08dc013ea1cf
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:
	DU6PEPF0000B61F.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9290

DQoNCj4gT24gMTggRGVjIDIwMjMsIGF0IDIwOjMyLCBNaWNoYWwuT3J6ZWxAYW1kLmNvbSB3cm90
ZToNCj4gDQo+IEZyb206IE1pY2hhbCBPcnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+DQo+IA0K
PiBDdXJyZW50bHkgaWYgdXNlciBlbmFibGVzIEhWQ19EQ0MgY29uZmlnIG9wdGlvbiBpbiBMaW51
eCwgaXQgaW52b2tlcw0KPiBhY2Nlc3MgdG8gZGVidWcgZGF0YSB0cmFuc2ZlciByZWdpc3RlcnMg
KGllIE1EQ0NTUl9FTDAgb24gYXJtNjQsDQo+IERCR0RUUlRYSU5UIG9uIGFybTMyKS4gQXMgdGhl
c2UgcmVnaXN0ZXJzIGFyZSBub3QgZW11bGF0ZWQsIFhlbiBpbmplY3RzDQo+IGFuIHVuZGVmaW5l
ZCBleGNlcHRpb24gdG8gdGhlIGd1ZXN0LiBBbmQgTGludXggY3Jhc2hlcy4NCj4gDQo+IFdlIHdp
c2ggdG8gYXZvaWQgdGhpcyBjcmFzaCBieSBhZGRpbmcgYSAicGFydGlhbCIgZW11bGF0aW9uLiBE
QkdEVFJfRUwwDQo+IGlzIGVtdWxhdGVkIGFzIFRYZnVsbC4NCj4gUmVmZXIgQVJNIERESSAwNDg3
SS5hIElEMDgxODIyLCBEMTcuMy44LCBEQkdEVFJUWF9FTDANCj4gIklmIFRYZnVsbCBpcyBzZXQg
dG8gMSwgc2V0IERUUlJYIGFuZCBEVFJUWCB0byBVTktOT1dOIg0KPiANCj4gVGh1cywgYW55IE9T
IGlzIGV4cGVjdGVkIHRvIHJlYWQgREJHRFRSX0VMMCBhbmQgY2hlY2sgZm9yIFRYZnVsbA0KPiBi
ZWZvcmUgdXNpbmcgREJHRFRSVFhfRUwwLiBMaW51eCBkb2VzIGl0IHZpYSBodmNfZGNjX2luaXQo
KSAtLS0+DQo+IGh2Y19kY2NfY2hlY2soKSAsIGl0IHJldHVybnMgLUVOT0RFVi4gSW4gdGhpcyB3
YXksIHdlIGFyZSBwcmV2ZW50aW5nDQo+IHRoZSBndWVzdCB0byBiZSBhYm9ydGVkLg0KPiANCj4g
V2UgYWxzbyBlbXVsYXRlIERCR0RUUlRYX0VMMCBhcyBSQVovV0kuDQo+IA0KPiBXZSBoYXZlIGFk
ZGVkIGVtdWxhdGlvbiBmb3IgQUFyY2gzMiB2YXJpYW50IG9mIHRoZXNlIHJlZ2lzdGVycyBhcyB3
ZWxsLg0KPiANCj4gQWxzbyBpbiB0aGUgY2FzZSBvZiBBQXJjaDMyLCBEQkdPU0xTUiBpcyBlbXVs
YXRlZCBpbiB0aGUgc2FtZSB3YXkgYXMNCj4gaXRzIEFBcmNoNjQgdmFyaWFudCAoaWUgT1NMU1Jf
RUwxKS4gVGhpcyBpcyB0byBlbnN1cmUgdGhhdA0KPiBEQkdPU0xTUi5PU0xLIGlzIDAsIHRodXMg
TURTQ1JfRUwxLlRYZnVsbCBpcyB0cmVhdGVkIGFzIFVOSy9TQlpQLg0KPiBUaHVzIG9ubHkgTURD
Q1NSX0VMMCBjYW4gYmUgZW11bGF0ZWQgKHdoaWNoIGlzIERCR0RUUlRYSU5UIG9uIGFybTMyKS4N
Cj4gU28sIERCR0RUUltUUl1YSU5UIGlzIGVtdWxhdGVkIGFzIFJBWi9XSS4NCj4gDQo+IFNpZ25l
ZC1vZmYtYnk6IE1pY2hhbCBPcnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+DQo+IFNpZ25lZC1v
ZmYtYnk6IEF5YW4gS3VtYXIgSGFsZGVyIDxheWFuLmt1bWFyLmhhbGRlckBhbWQuY29tPg0KPiAt
LS0NCj4gQ2hhbmdlcyBmcm9tIA0KPiANCj4gdjEgOi0gMS4gREJHRFRSX0VMMCBkb2VzIG5vdCBl
bXVsYXRlIFJYZnVsbC4gVGhpcyBpcyB0byBhdm9pZCBnaXZpbmcgdGhlIE9TIGFueQ0KPiBpbmRp
Y2F0aW9uIHRoYXQgdGhlIFJYIGJ1ZmZlciBpcyBmdWxsIGFuZCBpcyB3YWl0aW5nIHRvIGJlIHJl
YWQuDQo+IA0KPiAyLiBJbiBBcm0zMiwgREJHT1NMU1IgaXMgZW11bGF0ZWQuIEFsc28gREJHRFRS
VFhJTlQgaXMgZW11bGF0ZWQgYXQgRUwwIG9ubHkuDQo+IA0KPiAzLiBGaXhlZCB0aGUgY29tbWl0
IG1lc3NhZ2UgYW5kIGlubGluZSBjb2RlIGNvbW1lbnRzLg0KPiANCj4geGVuL2FyY2gvYXJtL2Fy
bTY0L3ZzeXNyZWcuYyAgICAgICAgIHwgMjYgKysrKysrKysrKysrKysrLS0tLQ0KPiB4ZW4vYXJj
aC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvaHNyLmggfCAgMyArKysNCj4geGVuL2FyY2gvYXJtL2lu
Y2x1ZGUvYXNtL2NwcmVncy5oICAgIHwgIDIgKysNCj4geGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNt
L3RyYXBzLmggICAgIHwgIDQgKysrDQo+IHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAgICAg
ICAgICB8IDE4ICsrKysrKysrKysrKysNCj4geGVuL2FyY2gvYXJtL3ZjcHJlZy5jICAgICAgICAg
ICAgICAgIHwgMzggKysrKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPiA2IGZpbGVzIGNoYW5n
ZWQsIDc5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL2FybS9hcm02NC92c3lzcmVnLmMgYi94ZW4vYXJjaC9hcm0vYXJtNjQvdnN5c3Jl
Zy5jDQo+IGluZGV4IGI1ZDU0YzU2OWIuLmViZWI4M2RkNjUgMTAwNjQ0DQo+IC0tLSBhL3hlbi9h
cmNoL2FybS9hcm02NC92c3lzcmVnLmMNCj4gKysrIGIveGVuL2FyY2gvYXJtL2FybTY0L3ZzeXNy
ZWcuYw0KPiBAQCAtMTU5LDkgKzE1OSw2IEBAIHZvaWQgZG9fc3lzcmVnKHN0cnVjdCBjcHVfdXNl
cl9yZWdzICpyZWdzLA0KPiAgICAgICoNCj4gICAgICAqIFVuaGFuZGxlZDoNCj4gICAgICAqICAg
IE1EQ0NJTlRfRUwxDQo+IC0gICAgICogICAgREJHRFRSX0VMMA0KPiAtICAgICAqICAgIERCR0RU
UlJYX0VMMA0KPiAtICAgICAqICAgIERCR0RUUlRYX0VMMA0KPiAgICAgICogICAgT1NEVFJSWF9F
TDENCj4gICAgICAqICAgIE9TRFRSVFhfRUwxDQo+ICAgICAgKiAgICBPU0VDQ1JfRUwxDQo+IEBA
IC0xNzIsMTEgKzE2OSwyOSBAQCB2b2lkIGRvX3N5c3JlZyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq
cmVncywNCj4gICAgIGNhc2UgSFNSX1NZU1JFR19NRFNDUl9FTDE6DQo+ICAgICAgICAgcmV0dXJu
IGhhbmRsZV9yYXpfd2kocmVncywgcmVnaWR4LCBoc3Iuc3lzcmVnLnJlYWQsIGhzciwgMSk7DQo+
ICAgICBjYXNlIEhTUl9TWVNSRUdfTURDQ1NSX0VMMDoNCj4gKyAgICB7DQo+ICAgICAgICAgLyoN
Cj4gKyAgICAgICAgICogWGVuIGRvZXNuJ3QgZXhwb3NlIGEgcmVhbCAob3IgZW11bGF0ZWQpIERl
YnVnIENvbW11bmljYXRpb25zIENoYW5uZWwNCj4gKyAgICAgICAgICogKERDQykgdG8gYSBkb21h
aW4uIFlldCB0aGUgQXJtIEFSTSBpbXBsaWVzIHRoaXMgaXMgbm90IGFuIG9wdGlvbmFsDQo+ICsg
ICAgICAgICAqIGZlYXR1cmUuIFNvIHNvbWUgZG9tYWlucyBtYXkgc3RhcnQgdG8gcHJvYmUgaXQu
IEZvciBpbnN0YW5jZSwgdGhlDQo+ICsgICAgICAgICAqIEhWQ19EQ0MgZHJpdmVyIGluIExpbnV4
IChzaW5jZSBmMzc3Nzc1ZGMwODMgYW5kIGF0IGxlYXN0IHVwIHRvIHY2LjcpLA0KPiArICAgICAg
ICAgKiB3aWxsIHRyeSB0byB3cml0ZSBzb21lIGNoYXJhY3RlcnMgYW5kIGNoZWNrIGlmIHRoZSB0
cmFuc21pdCBidWZmZXINCj4gKyAgICAgICAgICogaGFzIGVtcHRpZWQuIEJ5IHNldHRpbmcgVFgg
c3RhdHVzIGJpdCB0byBpbmRpY2F0ZSB0aGUgdHJhbnNtaXQgYnVmZmVyDQo+ICsgICAgICAgICAq
IGlzIGZ1bGwuIFRoaXMgd2Ugd291bGQgaGludCB0aGUgT1MgdGhhdCB0aGUgRENDIGlzIHByb2Jh
Ymx5IG5vdA0KPiArICAgICAgICAgKiB3b3JraW5nLg0KPiArICAgICAgICAgKg0KPiArICAgICAg
ICAgKiBCaXQgMjk6IFRYIGZ1bGwNCj4gKyAgICAgICAgICoNCj4gICAgICAgICAgKiBBY2Nlc3Np
YmxlIGF0IEVMMCBvbmx5IGlmIE1EU0NSX0VMMS5URENDIGlzIHNldCB0byAwLiBXZSBlbXVsYXRl
IHRoYXQNCj4gICAgICAgICAgKiByZWdpc3RlciBhcyBSQVovV0kgYWJvdmUuIFNvIFJPIGF0IGJv
dGggRUwwIGFuZCBFTDEuDQo+ICAgICAgICAgICovDQo+IC0gICAgICAgIHJldHVybiBoYW5kbGVf
cm9fcmF6KHJlZ3MsIHJlZ2lkeCwgaHNyLnN5c3JlZy5yZWFkLCBoc3IsIDApOw0KPiArICAgICAg
ICByZXR1cm4gaGFuZGxlX3JvX3JlYWRfdmFsKHJlZ3MsIHJlZ2lkeCwgaHNyLnN5c3JlZy5yZWFk
LCBoc3IsIDAsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMVUgPDwgMjkp
Ow0KPiArICAgIH0NCj4gKyAgICBjYXNlIEhTUl9TWVNSRUdfREJHRFRSX0VMMDoNCj4gKyAgICAv
KiBEQkdEVFJbVFJdWF9FTDAgc2hhcmUgdGhlIHNhbWUgZW5jb2RpbmcgKi8NCj4gKyAgICBjYXNl
IEhTUl9TWVNSRUdfREJHRFRSVFhfRUwwOg0KPiArICAgICAgICByZXR1cm4gaGFuZGxlX3Jhel93
aShyZWdzLCByZWdpZHgsIGhzci5zeXNyZWcucmVhZCwgaHNyLCAwKTsNCj4gICAgIEhTUl9TWVNS
RUdfREJHX0NBU0VTKERCR0JWUik6DQo+ICAgICBIU1JfU1lTUkVHX0RCR19DQVNFUyhEQkdCQ1Ip
Og0KPiAgICAgSFNSX1NZU1JFR19EQkdfQ0FTRVMoREJHV1ZSKToNCj4gQEAgLTM5Myw3ICs0MDgs
OCBAQCB2b2lkIGRvX3N5c3JlZyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywNCj4gICAgICAq
DQo+ICAgICAgKiBBbmQgYWxsIG90aGVyIHVua25vd24gcmVnaXN0ZXJzLg0KPiAgICAgICovDQo+
IC0gICAgZGVmYXVsdDoNCj4gKyAgICBkZWZhdWx0OiBnb3RvIGZhaWw7DQo+ICsgICAgZmFpbDoN
Cj4gICAgICAgICB7DQo+ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBoc3Jfc3lzcmVnIHN5c3Jl
ZyA9IGhzci5zeXNyZWc7DQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUv
YXNtL2FybTY0L2hzci5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0L2hzci5oDQo+
IGluZGV4IGU2OTFkNDFjMTcuLjE0OTVjY2RkZWEgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9hcm02NC9oc3IuaA0KPiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vYXJtNjQvaHNyLmgNCj4gQEAgLTQ3LDYgKzQ3LDkgQEANCj4gI2RlZmluZSBIU1JfU1lTUkVH
X09TRExSX0VMMSAgICAgIEhTUl9TWVNSRUcoMiwwLGMxLGMzLDQpDQo+ICNkZWZpbmUgSFNSX1NZ
U1JFR19EQkdQUkNSX0VMMSAgICBIU1JfU1lTUkVHKDIsMCxjMSxjNCw0KQ0KPiAjZGVmaW5lIEhT
Ul9TWVNSRUdfTURDQ1NSX0VMMCAgICAgSFNSX1NZU1JFRygyLDMsYzAsYzEsMCkNCj4gKyNkZWZp
bmUgSFNSX1NZU1JFR19EQkdEVFJfRUwwICAgICBIU1JfU1lTUkVHKDIsMyxjMCxjNCwwKQ0KPiAr
I2RlZmluZSBIU1JfU1lTUkVHX0RCR0RUUlRYX0VMMCAgIEhTUl9TWVNSRUcoMiwzLGMwLGM1LDAp
DQo+ICsjZGVmaW5lIEhTUl9TWVNSRUdfREJHRFRSUlhfRUwwICAgSFNSX1NZU1JFRygyLDMsYzAs
YzUsMCkNCj4gDQo+ICNkZWZpbmUgSFNSX1NZU1JFR19EQkdCVlJuX0VMMShuKSBIU1JfU1lTUkVH
KDIsMCxjMCxjIyNuLDQpDQo+ICNkZWZpbmUgSFNSX1NZU1JFR19EQkdCQ1JuX0VMMShuKSBIU1Jf
U1lTUkVHKDIsMCxjMCxjIyNuLDUpDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVk
ZS9hc20vY3ByZWdzLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vY3ByZWdzLmgNCj4gaW5k
ZXggNmIwODNkZTIwNC4uYWVjOWU4ZjMyOSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL2lu
Y2x1ZGUvYXNtL2NwcmVncy5oDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9jcHJl
Z3MuaA0KPiBAQCAtNzUsNiArNzUsOCBAQA0KPiAjZGVmaW5lIERCR0RJRFIgICAgICAgICBwMTQs
MCxjMCxjMCwwICAgLyogRGVidWcgSUQgUmVnaXN0ZXIgKi8NCj4gI2RlZmluZSBEQkdEU0NSSU5U
ICAgICAgcDE0LDAsYzAsYzEsMCAgIC8qIERlYnVnIFN0YXR1cyBhbmQgQ29udHJvbCBJbnRlcm5h
bCAqLw0KPiAjZGVmaW5lIERCR0RTQ1JFWFQgICAgICBwMTQsMCxjMCxjMiwyICAgLyogRGVidWcg
U3RhdHVzIGFuZCBDb250cm9sIEV4dGVybmFsICovDQo+ICsjZGVmaW5lIERCR0RUUlJYSU5UICAg
ICBwMTQsMCxjMCxjNSwwICAgLyogRGVidWcgRGF0YSBUcmFuc2ZlciBSZWdpc3RlciwgUmVjZWl2
ZSAqLw0KPiArI2RlZmluZSBEQkdEVFJUWElOVCAgICAgcDE0LDAsYzAsYzUsMCAgIC8qIERlYnVn
IERhdGEgVHJhbnNmZXIgUmVnaXN0ZXIsIFRyYW5zbWl0ICovDQo+ICNkZWZpbmUgREJHVkNSICAg
ICAgICAgIHAxNCwwLGMwLGM3LDAgICAvKiBWZWN0b3IgQ2F0Y2ggKi8NCj4gI2RlZmluZSBEQkdC
VlIwICAgICAgICAgcDE0LDAsYzAsYzAsNCAgIC8qIEJyZWFrcG9pbnQgVmFsdWUgMCAqLw0KPiAj
ZGVmaW5lIERCR0JDUjAgICAgICAgICBwMTQsMCxjMCxjMCw1ICAgLyogQnJlYWtwb2ludCBDb250
cm9sIDAgKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS90cmFwcy5o
IGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3RyYXBzLmgNCj4gaW5kZXggODgzZGFlMzY4ZS4u
YTI2OTI3MjJkNSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3RyYXBz
LmgNCj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3RyYXBzLmgNCj4gQEAgLTU2LDYg
KzU2LDEwIEBAIHZvaWQgaGFuZGxlX3JvX3JheihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywg
aW50IHJlZ2lkeCwgYm9vbCByZWFkLA0KPiB2b2lkIGhhbmRsZV9yb19yZWFkX3ZhbChzdHJ1Y3Qg
Y3B1X3VzZXJfcmVncyAqcmVncywgaW50IHJlZ2lkeCwgYm9vbCByZWFkLA0KPiAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCB1bmlvbiBoc3IgaHNyLCBpbnQgbWluX2VsLCByZWdpc3Rlcl90
IHZhbCk7DQo+IA0KPiArLyogUmVhZCBvbmx5IGFzIHZhbHVlIHByb3ZpZGVkIHdpdGggJ3ZhbCcg
YXJndW1lbnQsIHdyaXRlIGlnbm9yZSAqLw0KPiArdm9pZCBoYW5kbGVfcmVhZF92YWxfd2koc3Ry
dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGludCByZWdpZHgsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCB1bmlvbiBoc3IgaHNyLCBpbnQgbWluX2VsLCByZWdpc3Rlcl90IHZhbCk7
DQo+ICsNCj4gLyogQ28tcHJvY2Vzc29yIHJlZ2lzdGVycyBlbXVsYXRpb24gKHNlZSBhcmNoL2Fy
bS92Y3ByZWcuYykuICovDQo+IHZvaWQgZG9fY3AxNV8zMihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq
cmVncywgY29uc3QgdW5pb24gaHNyIGhzcik7DQo+IHZvaWQgZG9fY3AxNV82NChzdHJ1Y3QgY3B1
X3VzZXJfcmVncyAqcmVncywgY29uc3QgdW5pb24gaHNyIGhzcik7DQo+IGRpZmYgLS1naXQgYS94
ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90cmFwcy5jDQo+IGluZGV4IDM3ODRl
ODI3NmUuLmY1YWI1NTViMTkgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS90cmFwcy5jDQo+
ICsrKyBiL3hlbi9hcmNoL2FybS90cmFwcy5jDQo+IEBAIC0xNjc2LDYgKzE2NzYsMjQgQEAgdm9p
ZCBoYW5kbGVfcm9fcmVhZF92YWwoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsDQo+ICAgICBh
ZHZhbmNlX3BjKHJlZ3MsIGhzcik7DQo+IH0NCj4gDQo+ICsvKiBSZWFkIGFzIHZhbHVlIHByb3Zp
ZGVkIHdpdGggJ3ZhbCcgYXJndW1lbnQgb2YgdGhpcyBmdW5jdGlvbiwgd3JpdGUgaWdub3JlICov
DQo+ICt2b2lkIGhhbmRsZV9yZWFkX3ZhbF93aShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywN
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdpZHgsDQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCB1bmlvbiBoc3IgaHNyLA0KPiArICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IG1pbl9lbCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3QgdmFs
KQ0KPiArew0KPiArICAgIEFTU0VSVCgobWluX2VsID09IDApIHx8IChtaW5fZWwgPT0gMSkpOw0K
PiArDQo+ICsgICAgaWYgKCBtaW5fZWwgPiAwICYmIHJlZ3NfbW9kZV9pc191c2VyKHJlZ3MpICkN
Cj4gKyAgICAgICAgcmV0dXJuIGluamVjdF91bmRlZl9leGNlcHRpb24ocmVncywgaHNyKTsNCj4g
Kw0KPiArICAgIHNldF91c2VyX3JlZyhyZWdzLCByZWdpZHgsIHZhbCk7DQo+ICsNCj4gKyAgICBh
ZHZhbmNlX3BjKHJlZ3MsIGhzcik7DQo+ICt9DQo+ICsNCj4gKw0KPiAvKiBSZWFkIG9ubHkgYXMg
cmVhZCBhcyB6ZXJvICovDQo+IHZvaWQgaGFuZGxlX3JvX3JheihzdHJ1Y3QgY3B1X3VzZXJfcmVn
cyAqcmVncywNCj4gICAgICAgICAgICAgICAgICAgIGludCByZWdpZHgsDQo+IGRpZmYgLS1naXQg
YS94ZW4vYXJjaC9hcm0vdmNwcmVnLmMgYi94ZW4vYXJjaC9hcm0vdmNwcmVnLmMNCj4gaW5kZXgg
MzlhZWRhOWRhYi4uNTA4NzEyNTExMSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZjcHJl
Zy5jDQo+ICsrKyBiL3hlbi9hcmNoL2FybS92Y3ByZWcuYw0KPiBAQCAtNTQ5LDE4ICs1NDksNDEg
QEAgdm9pZCBkb19jcDE0XzMyKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCBjb25zdCB1bmlv
biBoc3IgaHNyKQ0KPiAgICAgfQ0KPiANCj4gICAgIGNhc2UgSFNSX0NQUkVHMzIoREJHRFNDUklO
VCk6DQo+ICsgICAgew0KPiAgICAgICAgIC8qDQo+IC0gICAgICAgICAqIFJlYWQtb25seSByZWdp
c3Rlci4gQWNjZXNzaWJsZSBieSBFTDAgaWYgREJHRFNDUmV4dC5VRENDZGlzDQo+IC0gICAgICAg
ICAqIGlzIHNldCB0byAwLCB3aGljaCB3ZSBlbXVsYXRlZCBiZWxvdy4NCj4gKyAgICAgICAgICog
WGVuIGRvZXNuJ3QgZXhwb3NlIGEgcmVhbCAob3IgZW11bGF0ZWQpIERlYnVnIENvbW11bmljYXRp
b25zIENoYW5uZWwNCj4gKyAgICAgICAgICogKERDQykgdG8gYSBkb21haW4uIFlldCB0aGUgQXJt
IEFSTSBpbXBsaWVzIHRoaXMgaXMgbm90IGFuIG9wdGlvbmFsDQo+ICsgICAgICAgICAqIGZlYXR1
cmUuIFNvIHNvbWUgZG9tYWlucyBtYXkgc3RhcnQgdG8gcHJvYmUgaXQuIEZvciBpbnN0YW5jZSwg
dGhlDQo+ICsgICAgICAgICAqIEhWQ19EQ0MgZHJpdmVyIGluIExpbnV4IChzaW5jZSBmMzc3Nzc1
ZGMwODMgYW5kIGF0IGxlYXN0IHVwIHRvIHY2LjcpLA0KPiArICAgICAgICAgKiB3aWxsIHRyeSB0
byB3cml0ZSBzb21lIGNoYXJhY3RlcnMgYW5kIGNoZWNrIGlmIHRoZSB0cmFuc21pdCBidWZmZXIN
Cj4gKyAgICAgICAgICogaGFzIGVtcHRpZWQuIEJ5IHNldHRpbmcgVFggc3RhdHVzIGJpdCB0byBp
bmRpY2F0ZSB0aGUgdHJhbnNtaXQgYnVmZmVyDQo+ICsgICAgICAgICAqIGlzIGZ1bGwuIFRoaXMg
d2Ugd291bGQgaGludCB0aGUgT1MgdGhhdCB0aGUgRENDIGlzIHByb2JhYmx5IG5vdA0KPiArICAg
ICAgICAgKiB3b3JraW5nLg0KPiArICAgICAgICAgKg0KPiArICAgICAgICAgKiBCaXQgMjk6IFRY
IGZ1bGwNCj4gKyAgICAgICAgICoNCj4gKyAgICAgICAgICogQWNjZXNzaWJsZSBieSBFTDAgaWYg
REJHRFNDUmV4dC5VRENDZGlzIGlzIHNldCB0byAwLCB3aGljaCB3ZSBlbXVsYXRlDQo+ICsgICAg
ICAgICAqIGFzIFJBWi9XSSBpbiB0aGUgbmV4dCBjYXNlLg0KPiAgICAgICAgICAqLw0KPiAtICAg
ICAgICByZXR1cm4gaGFuZGxlX3JvX3JheihyZWdzLCByZWdpZHgsIGNwMzIucmVhZCwgaHNyLCAx
KTsNCj4gKw0KPiArICAgICAgICByZXR1cm4gaGFuZGxlX3JvX3JlYWRfdmFsKHJlZ3MsIHJlZ2lk
eCwgY3AzMi5yZWFkLCBoc3IsIDAsIDEgPDwgMjkpOw0KPiArICAgIH0NCj4gDQo+ICAgICBjYXNl
IEhTUl9DUFJFRzMyKERCR0RTQ1JFWFQpOg0KPiArICAgICAgICByZXR1cm4gaGFuZGxlX3Jhel93
aShyZWdzLCByZWdpZHgsIGNwMzIucmVhZCwgaHNyLCAxKTsNCj4gKw0KPiArICAgIGNhc2UgSFNS
X0NQUkVHMzIoREJHT1NMU1IpOg0KPiArICAgICAgICAgcmV0dXJuIGhhbmRsZV9yb19yZWFkX3Zh
bChyZWdzLCByZWdpZHgsIGNwMzIucmVhZCwgaHNyLCAxLCAxIDw8IDMpOw0KPiArDQo+ICsgICAg
Y2FzZSBIU1JfQ1BSRUczMihEQkdEVFJUWElOVCk6DQo+ICsgICAgew0KPiAgICAgICAgIC8qDQo+
IC0gICAgICAgICAqIEltcGxlbWVudCBkZWJ1ZyBzdGF0dXMgYW5kIGNvbnRyb2wgcmVnaXN0ZXIg
YXMgUkFaL1dJLg0KPiAtICAgICAgICAgKiBUaGUgT1Mgd29uJ3QgdXNlIEhhcmR3YXJlIGRlYnVn
IGlmIE1EQkdlbiBub3Qgc2V0Lg0KPiArICAgICAgICAgKiBBcyBEQkdEU0NSSU5UIGlzIGVtdWxh
dGVkIHdoaWNoIGlzIGFyY2hpdGVjdHVyYWxseSBtYXBwZWQgdG8gQUFyY2g2NA0KPiArICAgICAg
ICAgKiByZWdpc3RlciBNRENDU1JfRUwwLiBNRFNDUl9FTDEgaXMgbm90IGVtdWxhdGVkLiBTbyBE
QkdEVFJbVFJdWElOVCBjYW4NCj4gKyAgICAgICAgICogb25seSBiZSBhY2Nlc3NlZCBhcyBFTDAg
bGV2ZWwuDQo+ICAgICAgICAgICovDQo+IC0gICAgICAgIHJldHVybiBoYW5kbGVfcmF6X3dpKHJl
Z3MsIHJlZ2lkeCwgY3AzMi5yZWFkLCBoc3IsIDEpOw0KPiArICAgICAgICByZXR1cm4gaGFuZGxl
X3Jhel93aShyZWdzLCByZWdpZHgsIGNwMzIucmVhZCwgaHNyLCAwKTsNCj4gKyAgICB9DQo+IA0K
PiAgICAgY2FzZSBIU1JfQ1BSRUczMihEQkdWQ1IpOg0KPiAgICAgY2FzZSBIU1JfQ1BSRUczMihE
QkdCVlIwKToNCj4gQEAgLTU5MCw3ICs2MTMsOCBAQCB2b2lkIGRvX2NwMTRfMzIoc3RydWN0IGNw
dV91c2VyX3JlZ3MgKnJlZ3MsIGNvbnN0IHVuaW9uIGhzciBoc3IpDQo+ICAgICAgKg0KPiAgICAg
ICogQW5kIGFsbCBvdGhlciB1bmtub3duIHJlZ2lzdGVycy4NCj4gICAgICAqLw0KPiAtICAgIGRl
ZmF1bHQ6DQo+ICsgICAgZGVmYXVsdDogZ290byBmYWlsOw0KDQpJIHRoaW5rIHRoaXMgbGFiZWwg
ZG9lc27igJl0IGJlbG9uZyBoZXJlLCBpdCBpcyB1c2VkIG9ubHkgaW4gcGF0Y2ggMy4NCg0KPiAr
ICAgIGZhaWw6DQo+ICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwNCj4gICAgICAgICAgICAg
ICAgICAiJXMgcDE0LCAlZCwgciVkLCBjciVkLCBjciVkLCAlZCBAIDB4JSJQUklyZWdpc3RlciJc
biIsDQo+ICAgICAgICAgICAgICAgICAgIGNwMzIucmVhZCA/ICJtcmMiIDogIm1jciIsDQo+IC0t
IA0KPiAyLjI1LjENCj4gDQo+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:35:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657541.1026451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFszF-0004vd-Vy; Wed, 20 Dec 2023 09:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657541.1026451; Wed, 20 Dec 2023 09:35:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFszF-0004vW-TO; Wed, 20 Dec 2023 09:35:33 +0000
Received: by outflank-mailman (input) for mailman id 657541;
 Wed, 20 Dec 2023 09:35:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFszE-0004vQ-FP
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:35:32 +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 1e03c3af-9f1b-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 10:35:31 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3363aa1b7d2so5239803f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:35:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 q18-20020adff952000000b0033609b71825sm31080360wrr.35.2023.12.20.01.35.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 01:35:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e03c3af-9f1b-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703064931; x=1703669731; 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=0+4DyYHpqxtRBRAGmbnBXM2G0azwXeKsGEMYSWsqjks=;
        b=Dehr8miOWSnhx+LHGK2Cn5Ukp+YGtwB+CP4XTTcll92u37PQnfaqtnAZuLlEJSyU0/
         ydZGjgloC2K4y4TFZUyec0ek/HzPyGExQVTvslTRXE7nQBOI+wj0PvdZDd7+HR8zxwcA
         Q5uVxz75n8pqQ0AIKcvFtIBYatZofbuFp//Bklgna42Q4VS/SFfWPhM+Is4RAH18AnEO
         3U1tlC6suhrAo88vMviJQgL0KRArCe1cC3KguV5Ku4W6bmQIy0o9FaZ5lB4sD2fcKH+F
         6beeG+nyO/bG+Pus3Ur5g+82YXpMVyZqd/UnNf5tECcqmJ9HA76I4wcPj/1hr9zXoAtE
         pJ4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703064931; x=1703669731;
        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=0+4DyYHpqxtRBRAGmbnBXM2G0azwXeKsGEMYSWsqjks=;
        b=Jz9R5ZX085pNwvJtJQLIlTIRj/0b+CW9wQDa/ay27iVddM+PQfe7T/q7VHTH8gEdON
         V0gnThoG+vzsNTaGynnwBd8O5JmzgTC5mHpRsOxCSz77t6lA1+yXp5mvGj7DmyJW44Jx
         bDYM9cFVdTCHVL8oAjNsLXmDMlzGDKNoEPOKCzuUSqjiKtW4NVFVSxcAAD2DyDblrNH/
         77nxPFvuKxXikgUXEdPta5qm6sAgGi1B6VFZf92Z6kPQwbq/ctMS9tKkY8uOYVgif/yN
         b1FO8WS+n/lTq3BcMYZ4undn1GS8WPkzYCu7ujMyUR7KpuM66nd4YLw9QZrKrsNJCoTW
         zSpg==
X-Gm-Message-State: AOJu0Yxr6kDZE9RUg2UToWtlBKm1C+9tUMGKHRz3uuCT0vUrQzMa46QP
	hvPC033g50A6wBlOGd3BmicAx/8OoLxwgosBG3Em
X-Google-Smtp-Source: AGHT+IHmD7HrN2nZBA8GEzH1zlOBCI4gQO/vf7O3w03hPRJJahJ9Ntbh4mNvNXOXJVGxd0XKGUIYLA==
X-Received: by 2002:a05:600c:4747:b0:40c:3e56:6cb6 with SMTP id w7-20020a05600c474700b0040c3e566cb6mr6601720wmo.179.1703064930789;
        Wed, 20 Dec 2023 01:35:30 -0800 (PST)
Message-ID: <bd72ab26-2258-4a11-9b8d-b69c60ee5b8c@suse.com>
Date: Wed, 20 Dec 2023 10:35:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] x86/platform: tidy do_platform_op() a little
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.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

The function has a few stray scopes and inconsistent use (indentation)
of break statements. Drop the stray braces and bring all the break-s in
line with one another. This in particular means dropping a redundant
break from XENPF_cpu_offline handling, pleasing Misra C:2012 rule 2.1.

No functional change intended.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This is an alternative proposal to
https://lists.xen.org/archives/html/xen-devel/2023-12/msg01540.html.

A few more scopes could be eliminated if the various "cpu" variables
were consolidated to switch() of function scope.
---
v2: Also move an inconsistently indented break of an inner switch() (in
    XENPF_set_processor_pminfo handling).

--- unstable.orig/xen/arch/x86/platform_hypercall.c	2023-12-20 10:27:41.690558632 +0100
+++ unstable/xen/arch/x86/platform_hypercall.c	2023-12-20 10:30:48.234533379 +0100
@@ -258,7 +258,6 @@ ret_t do_platform_op(
         break;
 
     case XENPF_add_memtype:
-    {
         ret = mtrr_add_page(
             op->u.add_memtype.mfn,
             op->u.add_memtype.nr_mfns,
@@ -273,11 +272,9 @@ ret_t do_platform_op(
             if ( ret != 0 )
                 mtrr_del_page(ret, 0, 0);
         }
-    }
-    break;
+        break;
 
     case XENPF_del_memtype:
-    {
         if (op->u.del_memtype.handle == 0
             /* mtrr/main.c otherwise does a lookup */
             && (int)op->u.del_memtype.reg >= 0)
@@ -288,8 +285,7 @@ ret_t do_platform_op(
         }
         else
             ret = -EINVAL;
-    }
-    break;
+        break;
 
     case XENPF_read_memtype:
     {
@@ -306,8 +302,8 @@ ret_t do_platform_op(
             ret = __copy_field_to_guest(u_xenpf_op, op, u.read_memtype)
                   ? -EFAULT : 0;
         }
+        break;
     }
-    break;
 
     case XENPF_microcode_update:
     {
@@ -316,8 +312,8 @@ ret_t do_platform_op(
         guest_from_compat_handle(data, op->u.microcode.data);
 
         ret = microcode_update(data, op->u.microcode.length);
+        break;
     }
-    break;
 
     case XENPF_platform_quirk:
     {
@@ -340,8 +336,8 @@ ret_t do_platform_op(
             ret = -EINVAL;
             break;
         }
+        break;
     }
-    break;
 
     case XENPF_firmware_info:
         switch ( op->u.firmware_info.type )
@@ -521,8 +517,8 @@ ret_t do_platform_op(
 
         if ( ret == 0 && __copy_field_to_guest(u_xenpf_op, op, u.getidletime) )
             ret = -EFAULT;
+        break;
     }
-    break;
 
     case XENPF_set_processor_pminfo:
         switch ( op->u.set_pminfo.type )
@@ -560,8 +556,8 @@ ret_t do_platform_op(
 
             guest_from_compat_handle(pdc, op->u.set_pminfo.u.pdc);
             ret = acpi_set_pdc_bits(op->u.set_pminfo.id, pdc);
+            break;
         }
-        break;
 
         default:
             ret = -EINVAL;
@@ -601,8 +597,8 @@ ret_t do_platform_op(
         put_cpu_maps();
 
         ret = __copy_field_to_guest(u_xenpf_op, op, u.pcpu_info) ? -EFAULT : 0;
+        break;
     }
-    break;
 
     case XENPF_get_cpu_version:
     {
@@ -637,8 +633,8 @@ ret_t do_platform_op(
 
         if ( __copy_field_to_guest(u_xenpf_op, op, u.pcpu_version) )
             ret = -EFAULT;
+        break;
     }
-    break;
 
     case XENPF_get_ucode_revision:
     {
@@ -666,8 +662,8 @@ ret_t do_platform_op(
 
         if ( __copy_field_to_guest(u_xenpf_op, op, u.ucode_revision) )
             ret = -EFAULT;
+        break;
     }
-    break;
 
     case XENPF_cpu_online:
     {
@@ -725,7 +721,6 @@ ret_t do_platform_op(
             0, cpu_down_helper, (void *)(unsigned long)cpu);
         break;
     }
-    break;
 
     case XENPF_cpu_hotadd:
         ret = xsm_resource_plug_core(XSM_HOOK);
@@ -735,7 +730,7 @@ ret_t do_platform_op(
         ret = cpu_add(op->u.cpu_add.apic_id,
                       op->u.cpu_add.acpi_id,
                       op->u.cpu_add.pxm);
-    break;
+        break;
 
     case XENPF_mem_hotadd:
         ret = xsm_resource_plug_core(XSM_HOOK);
@@ -775,8 +770,8 @@ ret_t do_platform_op(
             ret = -EINVAL;
             break;
         }
+        break;
     }
-    break;
 
     case XENPF_resource_op:
     {
@@ -842,8 +837,8 @@ ret_t do_platform_op(
             ret = ra.nr_done;
 
         xfree(ra.entries);
+        break;
     }
-    break;
 
     case XENPF_get_symbol:
     {
@@ -870,8 +865,8 @@ ret_t do_platform_op(
             ret = -EFAULT;
         if ( !ret && __copy_field_to_guest(u_xenpf_op, op, u.symdata) )
             ret = -EFAULT;
+        break;
     }
-    break;
 
 #ifdef CONFIG_VIDEO
     case XENPF_get_dom0_console:


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:43:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:43:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657556.1026461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFt70-0008Iz-S6; Wed, 20 Dec 2023 09:43:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657556.1026461; Wed, 20 Dec 2023 09:43:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFt70-0008Is-PD; Wed, 20 Dec 2023 09:43:34 +0000
Received: by outflank-mailman (input) for mailman id 657556;
 Wed, 20 Dec 2023 09:43: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 1rFt70-0008Ii-4E; Wed, 20 Dec 2023 09:43: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 1rFt6z-0000rX-PZ; Wed, 20 Dec 2023 09:43: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 1rFt6z-0003b2-B5; Wed, 20 Dec 2023 09:43:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFt6z-0002M3-Ad; Wed, 20 Dec 2023 09:43: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=8iWBJVV8NeKKx/sd5MguOT0X5VNHE3qFazBk/RxYn68=; b=wvr2M9ztFSijHXQacXeqaCC/W5
	EGRTHc1DxcrS0iMxM08TZCLoR2tk2Ew+ufTpZnMNcRQ0k5IvwtIh8LlcWwg9Jy4QlM03JsAd1d2Se
	fbUqESrfW+vUIHMroezjvUp8v3o/dnMQXP192KRU1oeE34Ul8zb1+7refNuTxa/cJapg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184181-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184181: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2: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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-libvirt: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-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-xl-arndale:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=1b42304fd1d84adcf7caf8c12c33ec66347b6dcc
X-Osstest-Versions-That:
    xen=0cc74376d6823e0883f89556be2a267f2240a558
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 20 Dec 2023 09:43:33 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184172
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184172
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184172
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184172
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184172
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184172
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184172
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184172
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184172
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184172
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184172
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184172
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-amd64-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  1b42304fd1d84adcf7caf8c12c33ec66347b6dcc
baseline version:
 xen                  0cc74376d6823e0883f89556be2a267f2240a558

Last test of basis   184172  2023-12-19 04:41:18 Z    1 days
Failing since        184176  2023-12-19 15:38:48 Z    0 days    2 attempts
Testing same since   184181  2023-12-19 23:39:39 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Jens Wiklander <jens.wiklander@linaro.org>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Roger Pau MonnÃ© <roger.pau@citrix.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   0cc74376d6..1b42304fd1  1b42304fd1d84adcf7caf8c12c33ec66347b6dcc -> master


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:44:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:44:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657562.1026476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFt7Z-0000bq-6N; Wed, 20 Dec 2023 09:44:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657562.1026476; Wed, 20 Dec 2023 09: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 1rFt7Z-0000bj-2n; Wed, 20 Dec 2023 09:44:09 +0000
Received: by outflank-mailman (input) for mailman id 657562;
 Wed, 20 Dec 2023 09:44: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=KgnP=H7=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rFt7Y-0000Ss-Gc
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:44:08 +0000
Received: from EUR04-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur04on0603.outbound.protection.outlook.com
 [2a01:111:f400:fe0e::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51b12c8b-9f1c-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 10:44:07 +0100 (CET)
Received: from DU2PR04CA0332.eurprd04.prod.outlook.com (2603:10a6:10:2b4::20)
 by PAVPR08MB8822.eurprd08.prod.outlook.com (2603:10a6:102:2ff::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Wed, 20 Dec
 2023 09:44:04 +0000
Received: from DU6PEPF0000B61C.eurprd02.prod.outlook.com
 (2603:10a6:10:2b4:cafe::2e) by DU2PR04CA0332.outlook.office365.com
 (2603:10a6:10:2b4::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18 via Frontend
 Transport; Wed, 20 Dec 2023 09:44:04 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000B61C.mail.protection.outlook.com (10.167.8.135) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7113.14 via Frontend Transport; Wed, 20 Dec 2023 09:44:04 +0000
Received: ("Tessian outbound 385ad2f98d71:v228");
 Wed, 20 Dec 2023 09:44:03 +0000
Received: from 4ef01deac82f.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F9205073-64A4-4A65-BA05-C0D3A85BAAD6.1; 
 Wed, 20 Dec 2023 09:43:53 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4ef01deac82f.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 20 Dec 2023 09:43:53 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com (2603:10a6:208:ff::27)
 by DU5PR08MB10657.eurprd08.prod.outlook.com (2603:10a6:10:51f::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Wed, 20 Dec
 2023 09:43:50 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e]) by AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e%3]) with mapi id 15.20.7113.016; Wed, 20 Dec 2023
 09:43: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: 51b12c8b-9f1c-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=eIsiqRQyjHxn6VvOmQHv/cMURrYHMCubejA4X+4WvpKltkLlXf1Ckkm88QLAllRnB7jnKJpwj5k4z5ZYMuzu1XnJAc8cECQxgFdjpDusjGtF+4YYDOPNVt3HGCu1gR+mcFzG2WRabXxvbrs/6g0SZ02GLrVIqyXih0gdnGk5iOnw+iVtdJmLGyCDV3DlHDsa/m1KgwRv+lmxGTo6nepiEh7QEG98URJ/TuQvBqJ2HldKrwM/nJk3HSsYKOwKOXnYnrLnem+UBfG1txo5bOqSWGKCMhQ96+a+BODgfHZvXjOQo3kKxZtG6eMCj7bYe4MozP5UmLLpYfIIrKYDR7TFBQ==
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=j1R1e2KVCZufzrdc9uuRCntOMeYjLt63btfagz1c7mA=;
 b=QSnrphnOZoxYfCsiEzmTUSyTi3ZeAZISiWpo0V7pXB3bz8xB/e+2DCU5I4hfvQ2vAxi14bNG9AeyF4kWKcdCdFfterfQmmF65k17bIORjSxbk84NTaS/f5aXKcCDQna6PGJxd7pFXSrC/juPLTBniri+/xRPJfBIeAFNKwzojba/1SE5/LW/FDm4ZZp+U5vy5mhbsv0J4rIySomUVEVAYAznhj6GmEzKMs/YLtiNsa3WOgdd/LQ5e9fdC+GZQmaNxAXUSEm9DoifbTmJvc7RKe4aKKejH3IHUT0F8wRQqkYOaVEYeGsnU3pPMrmZ8dU5ASZsDKYxz1jKr5vwfcf1+A==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=j1R1e2KVCZufzrdc9uuRCntOMeYjLt63btfagz1c7mA=;
 b=KJt3cdPXMJIQ3Wthq4k/6kZhDiEOf9YswqwctpJZBHsvG7620/hYcDPlqq4z6dS142LWPv404b2VHKBGC21ZATzOU2WvZp9t4lOjtslnRXczcPTmL89cjCG3W5zI0FgW9Q3qarwc2W8V7flpaHzPu4JCshzSL+uGr4bLztkDW5M=
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=armh.onmicrosoft.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: a391aa585ffd153e
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GWhFPLvltNNX6Pomj3dBRa2JIH29n/NjQtd21gt2dKu+5ywj8NwVQHz0tkxKRxHVm9GYpgec2n06NawRJCFS0brFzGc0etG3oumXou4ac3qZ1cOE4H9kzrM0BRpV4xZOHZgJW8GJGR33QoOzTd2E5BI7Rw0OKEaGmPGFIj3YJ3jD//2L3PyyV4f//T3OjfoAzz2SEesnuSzQZxVFD/Uo20qH2VM7WzJhkaABFyzF8TJOTSi+mUdqBQUCqhMbNkK1B+GZLRU/JPY35/g1UNYSjT2RxIBkDCsEFEwKhPhqaANrQLlEqBEqtyqwa82p4CLC71XtWwAVs0hLSktaTUnA8Q==
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=j1R1e2KVCZufzrdc9uuRCntOMeYjLt63btfagz1c7mA=;
 b=ADKub6jVF/SBZEXmE+c0xi8aotddKJmKtt70B1cgioL81XpinGsOyG2p6KpuD209luownRj2dv9dx0+cYY+U7pSzVV2G0c5luz9WG9cjL0mpfX/kqFFQ8t+3+E2EMR2D/HFoLmYjy86Z2UYK8atxjMX1vYEyxchhC64yp9p89bVzEOuOymXtAQuM2WVrSN0vb2sabLPepT/IjvL3jYyNaDriNfPBi3EK+h4JBet/IiYsf+i0CPO6jq+ulg+romR6jOrFVCodz6p0O9z3E4EzrvfBBYoEMJRaNrL/eMXuQz5LpBP+3VZqKnzkMSiVpMlDnA//LmtxBrPyLpPyPBE4bw==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=j1R1e2KVCZufzrdc9uuRCntOMeYjLt63btfagz1c7mA=;
 b=KJt3cdPXMJIQ3Wthq4k/6kZhDiEOf9YswqwctpJZBHsvG7620/hYcDPlqq4z6dS142LWPv404b2VHKBGC21ZATzOU2WvZp9t4lOjtslnRXczcPTmL89cjCG3W5zI0FgW9Q3qarwc2W8V7flpaHzPu4JCshzSL+uGr4bLztkDW5M=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
CC: Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	"michal.orzel@amd.com" <michal.orzel@amd.com>, "Volodymyr_Babchuk@epam.com"
	<Volodymyr_Babchuk@epam.com>, "stefano.stabellini@amd.com"
	<stefano.stabellini@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Topic: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Index: AQHaMfEa7o9h58xZgUaSJIw5Lcks+LCx6kEAgAAD4AA=
Date: Wed, 20 Dec 2023 09:43:49 +0000
Message-ID: <5E9E5368-8AD3-490E-8034-78F5BAF23006@arm.com>
References: <20231218202959.1390114-1-ayan.kumar.halder@amd.com>
 <F1A640BE-0CDC-4026-BBB3-637ABE7D996C@arm.com>
In-Reply-To: <F1A640BE-0CDC-4026-BBB3-637ABE7D996C@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM0PR08MB3745:EE_|DU5PR08MB10657:EE_|DU6PEPF0000B61C:EE_|PAVPR08MB8822:EE_
X-MS-Office365-Filtering-Correlation-Id: f84140fe-7b33-457b-478e-08dc014033ea
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 B+lAbNgfasiKiTIYZsiBgYtFxTqRlruwnoH3V6m+Vb7SoyyailtRk3fPhbtl2ahO5fI58YAvd77UddC7shT5NBBS+DCNuSE4Ynr0QzXABBwaLPyP4XfXFjx8ocHmD4HLLdnlkstD9nrt/9EPbEKSKFX2w6bTqO5jzRVXcypBQ1zqX4CNqbeQRB6JlADuk+SxxcaWmYEht41ekrIP6IUyG9+/Y0aau4vbiGUSTF7hy0assjL3VmJkEoRLqdXsa8a3EFjSkFiNgh3I4LkQnHl/hP25UotILTeAXrIWVsSLFkI6z05XV+Ip0neXEkugsPetMSE+V7vHOsRYBFXDcICx4dZcheqvvVWD2A+SZl396yuJQt3Ae8JXhzZYSmPFWrxyrh9z+zMpZ6I2WagM8KmlwwFS9Xn7IiBigUZMJV6wdjsCkg3KRX7mSeQn3yU9un77VJYs2D0xPYRi1PIz/sFLpREcQIG4EWS/YStCFKgD9DlNXrsF44v6yO1JjihqT5LicSxl36MHX10C70cq5vJFkOe3MJX4/j9Nz+GseDv17DM878Mex8qwyutTsm5La/9H9jXF34BALUsk1FBTE+DRB1fPLrxHw/vM7pXEU7ebfdHDXmJdzUPU8bm4ul6+5DBF6v4sBgQp2snJ/Gl99brLYg==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(136003)(39860400002)(346002)(376002)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(316002)(54906003)(66556008)(6916009)(64756008)(66446008)(91956017)(66946007)(76116006)(8936002)(8676002)(66476007)(4326008)(6506007)(6512007)(53546011)(71200400001)(6486002)(478600001)(966005)(41300700001)(38070700009)(36756003)(2906002)(5660300002)(122000001)(38100700002)(83380400001)(86362001)(26005)(2616005)(33656002)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <55932FE8D474384583348F9C1DBB9BDA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10657
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:
 DU6PEPF0000B61C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	44ff356b-017d-45d1-f31b-08dc01402b8e
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	gEcZV7JXA1OFjYxZBFnPINnsQXYUJg6CxxcBlnHrJNkzcr8p/JzqKaR+5jbVLNpamyimG/jzI154IBqhaDBiu9MoyllNZHoFSmr1tG7dVUJrwCjn8pdvPNLc7U5wyjBF2zfTqIIx7ea0kvkD8FIxxodUCtmamb4HrCEUyrUQ2vQs+XW2sXsUus3k6yUY/u7Icfg+jzILDnrVrWFqe7o2/PjOOoTPgOsMnrJbwjYSvUzZaEibv+HQqvLcd58JWJNDLcFNKgLxrB08jqcUOyrabw+sF0xX6hTAA5xnVWxr5Qwufy1YtxM3V5D5qqjLdbIOvyDrecvOsCHVlmplhuB7EoN/+5IsJhK5ybZ29B51gI5IjF5nirZTZLntNh+QdDUS+e7jGK1/lBNU/eaHKXYy5n44RwLalUwlj5oRbfd0g+QW1ABL6Aps6ds3yIxNhC1IUCMVSeAq8Qr1IpHMa0+9Eh7B5yJdqM+iNPZKgO/hWZWbVztHutbK1Ukv3IfnFk66GAw+xHzXzlk3Sd5MJfx5OkjcTWGCIAXez6UF8bLDr/22hM71KBpB3WHfyEg7LjDsCxuVUSTzLpWIJKrIb3LMMJqscvzXqoFx2r2kUmGEfN8Zq76wRTJ8vYmCeeh5luyRsPaBFLjb1W2al9qSDDWqS87L+8iB78K9kiH/NVF8H1X/ssZjYt1UwT48zVUQ+d9EFMP7qsZ2bKlXWAHh4630Mcmb9Qos7gSMGJLP8fMqN0Y=
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:(13230031)(4636009)(136003)(396003)(376002)(346002)(39860400002)(230922051799003)(451199024)(82310400011)(64100799003)(186009)(1800799012)(46966006)(40470700004)(36840700001)(2906002)(5660300002)(41300700001)(86362001)(33656002)(36756003)(82740400003)(81166007)(356005)(336012)(478600001)(26005)(966005)(6486002)(40480700001)(2616005)(83380400001)(36860700001)(70586007)(70206006)(54906003)(316002)(53546011)(6506007)(6512007)(40460700003)(6862004)(4326008)(47076005)(8676002)(8936002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 09:44:04.0294
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f84140fe-7b33-457b-478e-08dc014033ea
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:
	DU6PEPF0000B61C.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB8822

DQoNCj4gT24gMjAgRGVjIDIwMjMsIGF0IDA5OjI5LCBMdWNhIEZhbmNlbGx1IDxMdWNhLkZhbmNl
bGx1QGFybS5jb20+IHdyb3RlOg0KPiANCj4gSGkgQXlhbiwNCj4gDQo+PiBPbiAxOCBEZWMgMjAy
MywgYXQgMjA6MjksIEF5YW4gS3VtYXIgSGFsZGVyIDxheWFuLmt1bWFyLmhhbGRlckBhbWQuY29t
PiB3cm90ZToNCj4+IA0KPj4gSGksDQo+PiANCj4+IFJlZmVyIGh0dHBzOi8vbG9yZS5rZXJuZWwu
b3JnL2FsbC9hbHBpbmUuREVCLjIuMjIuMzk0LjIzMTIwNzEzNDE1NDAuMTI2NTk3NkB1YnVudHUt
bGludXgtMjAtMDQtZGVza3RvcC9ULw0KPj4gZm9yIHRoZSBwcmV2aW91cyBkaXNjdXNzaW9uIG9u
IHRoaXMgaXNzdWUuDQo+PiANCj4+IEFsc28sIHRoZSBsaW51eCBlYXJseWNvbiBodmMgZHJpdmVy
IGhhcyBiZWVuIGZpeGVkLg0KPj4gU2VlIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9s
aW51eC9rZXJuZWwvZ2l0L2dyZWdraC90dHkuZ2l0L2NvbW1pdC8/aD10dHktbmV4dCZpZD0wZWMw
NThlY2UyZjkzM2FlZDY2Yjc2YmQ1Y2I5YjVlNjc2NDg1M2MzDQo+PiANCj4+IENoYW5nZXMgZnJv
bSB2MTotDQo+PiAxLiBTcGxpdCB0aGUgY2hhbmdlIGFjcm9zcyAzIHBhdGNoZXMgYXMgcGVyIHRo
ZSBkZXNpZ24gY29uc2Vuc3VzLg0KPj4gDQo+PiBBeWFuIEt1bWFyIEhhbGRlciAoMyk6DQo+PiB4
ZW4vYXJtOiBBZGQgZW11bGF0aW9uIG9mIERlYnVnIERhdGEgVHJhbnNmZXIgUmVnaXN0ZXJzDQo+
PiB4ZW46IGFybTogSW50cm9kdWNlIENPTkZJR19QQVJUSUFMX0VNVUxBVElPTg0KPj4geGVuL2Fy
bTogSW50cm9kdWNlICJwYXJ0aWFsLWVtdWxhdGlvbiIgeGVuIGNvbW1hbmQgbGluZSBvcHRpb24N
Cj4gDQo+IEnigJltIGEgYml0IHB1enpsZWQgYWJvdXQgdGhlIG9yZGVyIG9mIHRoZXNlIGNoYW5n
ZXMsIHdvdWxkbuKAmXQgYmUgYmV0dGVyIHRvDQo+IEludHJvZHVjZSB0aGUgcGFydGlhbCBlbXVs
YXRpb24gS2NvbmZpZyBhbmQgY29tbWFuZCBsaW5lIGFyZ3MgaW4gdGhlIHNhbWUNCj4gcGF0Y2gg
dG9nZXRoZXIgd2l0aCBzb21ldGhpbmcgdGhhdCB1c2VzIGl0Pw0KPiANCj4gSSB0aGluayBoZXJl
IHlvdSB3YW50ZWQgdG8ga2VlcCBNaWNoYWwgcGF0Y2ggdW50b3VjaGVkLCBidXQgSSBmZWVsIHRo
YXQgYQ0KPiBjb3JyZWN0IHNwbGl0IGZvciB0aGlzIHNlcmllIHdvdWxkIGJlIG1heWJlIGludHJv
ZHVjaW5nIEtjb25maWcsIGJvb3QgYXJncyBhbmQNCj4gb25lIG9mIHRoZSBhcm02NC9hcm0zMiBl
bXVsYXRpb24sIGFuZCBvbiBhIHNlY29uZCBwYXRjaCB0aGUgb3RoZXIgb25lDQo+IChPciB2aWNl
LXZlcnNhKT8NCg0KIF5eXl5eXl4tLS0tLT4gZm9yIHRoZSB2aWNlLXZlcnNhLCBJIG1lYW50IDFz
dCBwYXRjaCBBcm02NCwgMm5kIEFybTMyDQogb3IgdmljZS12ZXJzYS4NCg0KPiANCj4gSWYgdGhl
cmUgaXMgc29tZXRoaW5nIHRoYXQgSeKAmW0gbWlzc2luZyBsZXQgbWUga25vdy4NCj4gDQo+PiAN
Cj4+IGRvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYyAgICB8ICA3ICsrKysrDQo+PiB4
ZW4vYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgfCAgOCArKysrKw0KPj4geGVuL2Fy
Y2gvYXJtL2FybTY0L3ZzeXNyZWcuYyAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKy0tLQ0K
Pj4geGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0L2hzci5oIHwgIDMgKysNCj4+IHhlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9jcHJlZ3MuaCAgICB8ICAyICsrDQo+PiB4ZW4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vcmVncy5oICAgICAgfCAgNiArKysrDQo+PiB4ZW4vYXJjaC9hcm0vaW5jbHVk
ZS9hc20vdHJhcHMuaCAgICAgfCAgNCArKysNCj4+IHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAg
ICAgICAgICAgICB8IDIxICsrKysrKysrKysrKysNCj4+IHhlbi9hcmNoL2FybS92Y3ByZWcuYyAg
ICAgICAgICAgICAgICB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0NCj4+IDkgZmls
ZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQ0KPj4gDQo+PiAt
LSANCj4+IDIuMjUuMQ0KPj4gDQo+PiANCj4gDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 09:52:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 09:52:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657580.1026523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFtFG-00040Y-G2; Wed, 20 Dec 2023 09:52:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657580.1026523; Wed, 20 Dec 2023 09:52:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFtFG-00040R-BM; Wed, 20 Dec 2023 09:52:06 +0000
Received: by outflank-mailman (input) for mailman id 657580;
 Wed, 20 Dec 2023 09:52:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFtFF-00040L-DJ
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:52:05 +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 6d2e72d7-9f1d-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:52:03 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40c3f68b69aso51097265e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:52:03 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 t18-20020adfa2d2000000b003364aa5cc13sm2226975wra.1.2023.12.20.01.52.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 01:52:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d2e72d7-9f1d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703065922; x=1703670722; 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=SnJKypEl/WD0+g/FIUAtukmBZWfKCXQm/bsKob1J2AA=;
        b=u4+Mv8ex9bUQXF4Swl0jHtlj7y3hWv4mQbCqI6UmcvtII8R6RV6GFt20uM74Jfpxfd
         6i+Q6C1XdQr9muAyVF4TlyjS35isG3SdT+YOfM+ARMNS0t/fihFQUkZZg5YgyieHl+pv
         56Gk5jciXxA+Z+YnbelIJjZs5qK/Vy5VZDkZ4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703065922; x=1703670722;
        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=SnJKypEl/WD0+g/FIUAtukmBZWfKCXQm/bsKob1J2AA=;
        b=Jmr/O1UOe6thWI3jNqOWsp71MIGhPbg8JZm7nuXjFII6pdB3cvueeyV8shOUdn+8l+
         fncKPG+QhK2KMW2PQ63BZB7d5XLna+Ra98t7ugEBYFSHH7dZuSQxM0jMuIWn5p5XkLqB
         MjU2zp4ho8XLL0WJl4iNYfuBpoS4PaRrscurp+GMv54m3G29IbSFCzmIe4elF/9Ln/GP
         nZyUeXh5285E1MCi6/xqJXCKo2Ch12KUxwdHP/ApYzJm8kVqQwHIVbH5WQ1XoeXn51Ef
         uqKLCudDXcE1v/P+RBbYKOLdhKqJFqngC24ku0rmuesyjBWh33u0clq8D3gL4K015U9Q
         K2Zw==
X-Gm-Message-State: AOJu0Yx9AUwNH/W+9gCclP+afebtf0kxxyVtySsrlfWcl62QTzc3OAfm
	4VGYCnSg5bqcBztpcylV/Q59fw==
X-Google-Smtp-Source: AGHT+IF2hYoBblevT/tpo0rtMSzBrmIYtFmy8l8JUuasAokpMmBEWrr/V8Hz8zq0ukAWV5gQJTiX7g==
X-Received: by 2002:a05:600c:3784:b0:40b:5e1b:54a8 with SMTP id o4-20020a05600c378400b0040b5e1b54a8mr10555472wmr.52.1703065922524;
        Wed, 20 Dec 2023 01:52:02 -0800 (PST)
Date: Wed, 20 Dec 2023 10:52:01 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 4/7] x86/iommu: introduce a rangeset to perform hwdom
 IOMMU setup
Message-ID: <ZYK5QXmbHhxKdS31@macbook>
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-5-roger.pau@citrix.com>
 <454027bf-b07e-49cf-97de-009d431e5f4b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <454027bf-b07e-49cf-97de-009d431e5f4b@suse.com>

On Tue, Dec 19, 2023 at 05:06:32PM +0100, Jan Beulich wrote:
> On 15.12.2023 15:18, Roger Pau Monne wrote:
> > --- a/xen/drivers/passthrough/x86/iommu.c
> > +++ b/xen/drivers/passthrough/x86/iommu.c
> > @@ -370,10 +370,88 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
> >      return perms;
> >  }
> >  
> > +struct map_data {
> > +    struct domain *d;
> > +    unsigned int flush_flags;
> > +    bool mmio_ro;
> > +};
> > +
> > +static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
> > +                                              void *data)
> > +{
> > +    struct map_data *info = data;
> > +    struct domain *d = info->d;
> > +    long rc;
> > +
> > +    if ( iommu_verbose )
> > +        printk(XENLOG_INFO " [%010lx, %010lx] R%c\n",
> > +               s, e, info->mmio_ro ? 'O' : 'W');
> > +
> > +    if ( paging_mode_translate(d) )
> > +    {
> > +        if ( info->mmio_ro )
> > +        {
> > +            ASSERT_UNREACHABLE();
> > +            return 0;
> 
> Is this meant to be in line with the main return statement's comment?
> I'm inclined to ask for an actual error code (-EOPNOTSUPP?) here.

Hm, yes, for that one it might make sense to return -EOPNOTSUPP, as
all attempts to map will end up failing anyway.

> > +        }
> > +        while ( (rc = map_mmio_regions(d, _gfn(s), e - s + 1, _mfn(s))) > 0 )
> > +        {
> > +            s += rc;
> > +            process_pending_softirqs();
> > +        }
> > +    }
> > +    else
> > +    {
> > +        const unsigned int perms = IOMMUF_readable | IOMMUF_preempt |
> > +                                   (info->mmio_ro ? 0 : IOMMUF_writable);
> > +
> > +        /*
> > +         * Read-only ranges are only created based on the contents of mmio
> > +         * read-only rangeset, and hence need the additional iomem permissions
> > +         * check.
> > +         */
> > +        while( info->mmio_ro && s <= e && !iomem_access_permitted(d, s, e) )
> 
> Nit: Missing blank after "while".
> 
> > +        {
> > +            /*
> > +             * Consume a frame per iteration until the reminder is accessible
> 
> Nit: remainder?
> 
> > +             * or there's nothing left to map.
> > +             */
> > +            if ( iomem_access_permitted(d, s, s) )
> > +            {
> > +                rc = iommu_map(d, _dfn(s), _mfn(s), 1, perms,
> > +                               &info->flush_flags);
> > +                if ( rc < 0 )
> > +                    break;
> > +                /* Must map a frame at least, which is what we request for. */
> > +                ASSERT(rc == 1);
> > +                process_pending_softirqs();
> > +            }
> > +            s++;
> > +        }
> > +        while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
> > +                                perms, &info->flush_flags)) > 0 )
> > +        {
> > +            s += rc;
> > +            process_pending_softirqs();
> > +        }
> > +    }
> > +    ASSERT(rc <= 0);
> > +    if ( rc )
> > +        printk(XENLOG_WARNING
> > +               "IOMMU identity mapping of [%lx, %lx] failed: %ld\n",
> > +               s, e, rc);
> > +
> > +    /* Ignore errors and attempt to map the remaining regions. */
> > +    return 0;
> > +}
> > +
> >  void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >  {
> >      unsigned long i, top, max_pfn, start, count;
> >      unsigned int flush_flags = 0, start_perms = 0;
> > +    struct rangeset *map;
> > +    struct map_data map_data = { .d = d };
> > +    int rc;
> >  
> >      BUG_ON(!is_hardware_domain(d));
> >  
> > @@ -397,6 +475,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >      if ( iommu_hwdom_passthrough )
> >          return;
> >  
> > +    map = rangeset_new(NULL, NULL, 0);
> > +    if ( !map )
> > +        panic("IOMMU init: unable to allocate rangeset\n");
> > +
> >      max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
> >      top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
> >  
> > @@ -451,8 +533,26 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >              goto commit;
> >      }
> >  
> > +    if ( iommu_verbose )
> > +        printk(XENLOG_INFO "%pd: identity mappings for IOMMU:\n", d);
> > +
> > +    rc = rangeset_report_ranges(map, 0, ~0UL, identity_map, &map_data);
> > +    if ( rc )
> > +        panic("IOMMU unable to create mappings: %d\n", rc);
> > +    rangeset_destroy(map);
> > +
> > +    if ( is_pv_domain(d) )
> > +    {
> > +        map_data.mmio_ro = true;
> > +        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, identity_map,
> > +                                    &map_data);
> > +        if ( rc )
> > +            panic("IOMMU unable to create read-only mappings: %d\n", rc);
> > +    }
> 
> As it stands identity_map() deliberately returns no error. Yet here
> you panic() in case of receiving an error, despite that being impossible?

I wasn't sure whether rangeset_report_ranges() itself could return an
error.  Thinking twice, we might want to print a message and attempt
to continue, as in the worst case dom0 might be missing maps.

> Also if we want/need to panic() here, can we avoid having two instances
> of almost the same string literal in .rodata? Along the lines of
> 
>     rc = rangeset_report_ranges(map, 0, ~0UL, identity_map, &map_data);
>     rangeset_destroy(map);
>     if ( !rc && is_pv_domain(d) )
>     {
>         map_data.mmio_ro = true;
>         rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, identity_map,
>                                     &map_data);
>     }
>     if ( rc )
>         panic("IOMMU unable to create %smappings: %d\n",
>               map_data.mmio_ro ? "read-only " : "", rc);
> 
> ?
> 
> > +    map_data.flush_flags |= flush_flags;
> 
> So you decided to still keep the standalone "flush_flags" around. Is
> there a particular reason?

Oh, git distracted with the other changes and forgot about this one.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 10:00:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 10:00:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657585.1026532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFtMq-0005vg-7v; Wed, 20 Dec 2023 09:59:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657585.1026532; Wed, 20 Dec 2023 09:59:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFtMq-0005vZ-3o; Wed, 20 Dec 2023 09:59:56 +0000
Received: by outflank-mailman (input) for mailman id 657585;
 Wed, 20 Dec 2023 09:59:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFtMo-0005vT-Uo
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 09:59:54 +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 8523810b-9f1e-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 10:59:52 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40b5155e154so68989355e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 01:59:52 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 a21-20020a05600c349500b0040c4be1af17sm6947367wmq.21.2023.12.20.01.59.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 01:59:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8523810b-9f1e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703066392; x=1703671192; 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=T7EJEoUlELxy7C4Er/aWnmXJLPfyYcR6Q1vIxUsiz1s=;
        b=te3cAFGAPN/BxpyWnVGTHTNO/SzvbrDyriduwrSr9Q/QglF3kahX+EXczNd1ngvJjX
         n3S9GZz81k/g6MSNnehbf1nB1f7jBHd0X3FSXjyiYdeZVciFj1faYrIS6wyNA7MrW4Hs
         AnSWxONzk5xahaiE6vY9xiYNy/FMd54P9+FcY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703066392; x=1703671192;
        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=T7EJEoUlELxy7C4Er/aWnmXJLPfyYcR6Q1vIxUsiz1s=;
        b=N++cGLAR5thCnFkrNE6sM8CUeAnjzIxlm820b3Hgx4mDs/I7A1gbF5TyJy0bHvkBdy
         Bl9OU8XKnLEkLd+FPLaWwtBiW1j3SQjRtpiuxi4JqoJJ3qg/nfYIWBxjr8ulXSWY6haz
         zO3CrDmrziavwYGXDzCyWFmkDJlxul6zK7CDXwYt7DXRXjPKJLB3SWr5Uwm6tlXwF29Y
         2wqVqWUnta2NbG+BHNDUhY9Z1xr2gBuxxlyUC7QSsysZRZ1e7wqcdq4vdRgpM0j3lOIl
         cdb8dFjAUE2HRe65TvYdUf664/X3vga4aMdBS7D/hBh9b4YlsVGUQmw9q/di0iE7m2Ll
         FXgQ==
X-Gm-Message-State: AOJu0YyUhhtgC9aD7ofkGp84vs+KMFqhWBDOEUX6h/060ucwnjTv6rii
	Q7m3UE6ALY0UFWnUPJ2mtM8qkg==
X-Google-Smtp-Source: AGHT+IH8wbiFutUhxGDhG5BSm2120K1kyrwkLTicqM/U4SIDpiT93LAVfTH/rHzW/HAragf7F4Vwig==
X-Received: by 2002:a05:600c:5403:b0:40d:1748:d0a7 with SMTP id he3-20020a05600c540300b0040d1748d0a7mr2690388wmb.21.1703066392187;
        Wed, 20 Dec 2023 01:59:52 -0800 (PST)
Date: Wed, 20 Dec 2023 10:59:51 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v4 4/4] x86/PV: issue branch prediction barrier when
 switching 64-bit guest to kernel mode
Message-ID: <ZYK7F_VJUIrZrzzV@macbook>
References: <06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com>
 <2863b0a9-ca7c-3cce-104d-0b6685b0b383@suse.com>
 <ZYCARJAxH9hBD0YQ@macbook>
 <6e022af1-d383-48be-ab54-6ec254aa1502@suse.com>
 <ZYGC8JaJ45tkbqQC@macbook>
 <aacaa220-3e95-4dff-9572-79f9e79faeae@suse.com>
 <ZYGyjQiAomxh0QnI@macbook>
 <ZYHNzo8UFzOkt0pv@macbook>
 <13b34047-1137-44dd-ad74-27ec5b5fb8d3@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <13b34047-1137-44dd-ad74-27ec5b5fb8d3@suse.com>

On Wed, Dec 20, 2023 at 10:25:57AM +0100, Jan Beulich wrote:
> On 19.12.2023 18:07, Roger Pau MonnÃ© wrote:
> > On Tue, Dec 19, 2023 at 04:11:09PM +0100, Roger Pau MonnÃ© wrote:
> >> On Tue, Dec 19, 2023 at 03:06:50PM +0100, Jan Beulich wrote:
> >>> On 19.12.2023 12:48, Roger Pau MonnÃ© wrote:
> >>>> On Tue, Dec 19, 2023 at 10:56:16AM +0100, Jan Beulich wrote:
> >>>>> On 18.12.2023 18:24, Roger Pau MonnÃ© wrote:
> >>>>>> On Tue, Feb 14, 2023 at 05:12:08PM +0100, Jan Beulich wrote:
> >>>>>>> --- a/xen/arch/x86/pv/domain.c
> >>>>>>> +++ b/xen/arch/x86/pv/domain.c
> >>>>>>> @@ -455,6 +455,7 @@ static void _toggle_guest_pt(struct vcpu
> >>>>>>>  void toggle_guest_mode(struct vcpu *v)
> >>>>>>>  {
> >>>>>>>      const struct domain *d = v->domain;
> >>>>>>> +    struct cpu_info *cpu_info = get_cpu_info();
> >>>>>>>      unsigned long gs_base;
> >>>>>>>  
> >>>>>>>      ASSERT(!is_pv_32bit_vcpu(v));
> >>>>>>> @@ -467,15 +468,21 @@ void toggle_guest_mode(struct vcpu *v)
> >>>>>>>      if ( v->arch.flags & TF_kernel_mode )
> >>>>>>>          v->arch.pv.gs_base_kernel = gs_base;
> >>>>>>>      else
> >>>>>>> +    {
> >>>>>>>          v->arch.pv.gs_base_user = gs_base;
> >>>>>>> +
> >>>>>>> +        if ( opt_ibpb_mode_switch &&
> >>>>>>> +             !(d->arch.spec_ctrl_flags & SCF_entry_ibpb) &&
> >>>>>>> +             !VM_ASSIST(d, mode_switch_no_ibpb) )
> >>>>>>> +            cpu_info->spec_ctrl_flags |= SCF_new_pred_ctxt;
> >>>>>>
> >>>>>> Likewise similar to the remarks I've made before, if doing an IBPB on
> >>>>>> entry is enough to cover for the case here, it must also be fine to
> >>>>>> issue the IBPB right here, instead of deferring to return to guest
> >>>>>> context?
> >>>>>>
> >>>>>> The only concern would be (as you mentioned before) to avoid clearing
> >>>>>> valid Xen predictions, but I would rather see some figures about what
> >>>>>> effect the delaying to return to guest has vs issuing it right here.
> >>>>>
> >>>>> Part of the reason (aiui) to do things on the exit path was to
> >>>>> consolidate the context switch induced one and the user->kernel switch
> >>>>> one into the same place and mechanism.
> >>>>
> >>>> Isn't it kind of a very specific case that we end up doing a
> >>>> user->kernel switch as part of a context switch?  IOW: would require
> >>>> the vCPU to be scheduled out at that very specific point.
> >>>
> >>> No, there's no user->kernel switch at the same time as context switch.
> >>> What I was trying to explain is that with the actual IBPB being issued
> >>> on exit to guest, both the context switch path and the user->kernel
> >>> mode switch path set the same indicator, for the exit path to consume.
> >>
> >> Deferring to exit to guest path could be OK, but unless strictly
> >> needed, which I don't think it's the case, I would request for IBPB to
> >> be executed in C context rather than assembly one.
> >>
> >>>>>>> + *
> >>>>>>> + * By default (on affected and capable hardware) as a safety measure Xen,
> >>>>>>> + * to cover for the fact that guest-kernel and guest-user modes are both
> >>>>>>> + * running in ring 3 (and hence share prediction context), would issue a
> >>>>>>> + * barrier for user->kernel mode switches of PV guests.
> >>>>>>> + */
> >>>>>>> +#define VMASST_TYPE_mode_switch_no_ibpb  33
> >>>>>>
> >>>>>> Would it be possible to define the assist as
> >>>>>> VMASST_TYPE_mode_switch_ibpb and have it on when enabled?  So that the
> >>>>>> guest would disable it if unneeded?  IMO negated options are in
> >>>>>> general harder to understand.
> >>>>>
> >>>>> Negative options aren't nice, yes, but VM assists start out as all
> >>>>> clear.
> >>>>
> >>>> Are you sure?  I see VMASST_TYPE_pae_extended_cr3 getting set in
> >>>> dom0_construct_pv() and that makes me wonder whether other bits
> >>>> couldn't start set also.
> >>>>
> >>>> Maybe there's some restriction I'm missing, but I don't see any
> >>>> wording in the description of the interface that states that all
> >>>> assists are supposed to start disabled.
> >>>
> >>> Well, that setting of pae_extended_cr3 is in response to the kernel's
> >>> notes section having a respective indicator. So we still only set the
> >>> bit in response to what the kernel's asking us to do, just that here
> >>> we carry out the request ahead of launching the kernel.
> >>>
> >>> Also consider what would happen during migration if there was a
> >>> default-on assist: At the destination we can't know whether the
> >>> source simply didn't know of the bit, or whether the guest elected to
> >>> clear it.
> >>
> >> Hm, I see, so I was indeed missing that aspect.  VM assist is passed
> >> as a plain bitmap, and there's no signal on which assists the VM had
> >> available on the source side if not enabled.
> > 
> > Sorry, please bear with me, as I've been further thinking about this.
> > 
> > Why does the assist needs to be default-on?  It's my understanding
> > that the guest can execute the IBPB itself by writing to the MSR, but
> > that's suboptimal in the user -> kernel context switch as it then
> > involves two traps into Xen, but the guest is not left insecure, it
> > just needs to write the MSR itself like on native.
> > 
> > In fact, if we add an IBPB by default as part of amd64 PV user ->
> > kernel guest context switch, we are likely doing a double IBPB on
> > guests not aware of the assist.
> > 
> > IOW: I don't know why doing the assist as guest opt-in would be
> > insecure, in fact I think it's the best approach (again I might be
> > missing something).
> 
> By issuing IBPB by default we can make guests safe (in this regard)
> irrespective of their awareness of IBPB, and in particular their
> awareness of IBPB being needed explicitly on the user->kernel mode
> transition (where on native, with IBRS enabled, sufficient separation
> exists iirc). IOW we're trying to cater for a 64-bit-PV special aspect
> by default. (Andrew, please correct me if there's anything wrong in
> here.)

Hm, maybe.  My point would be that PV is already specific enough that
OSes shouldn't expect things like IBRS to work as on native, and hence
should be aware of user and kernel running in the same privilege mode
and issue the IBPB themselves.

Setting that aside, would it make sense to tie the IBPB on guest user
-> kernel switches to the guest having enabled IBRS?  AFAICT IBRS on
64bit PV is useless, as from the predictor PoV both user and kernel
space share the same mode.  Hence a PV guest enabling IBRS could be
used as a signal for Xen to execute IBPB on user -> kernel guest
context switches?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 10:06:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 10:06:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657592.1026541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFtTa-0000Pq-TP; Wed, 20 Dec 2023 10:06:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657592.1026541; Wed, 20 Dec 2023 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 1rFtTa-0000Pj-Qr; Wed, 20 Dec 2023 10:06:54 +0000
Received: by outflank-mailman (input) for mailman id 657592;
 Wed, 20 Dec 2023 10:06:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFtTa-0000OJ-9R
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 10:06:54 +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 7f2e87bb-9f1f-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 11:06:52 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40b5155e154so69056655e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 02:06:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r19-20020a05600c459300b0040d128e9c62sm6761130wmo.18.2023.12.20.02.06.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 02:06:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f2e87bb-9f1f-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703066812; x=1703671612; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=aGL1vybcF2qZj64Irbe5qdy2a6Tb1z/WAMJzgQlnykI=;
        b=RZETiUq8HNtI0nRnJofgvEZ5LqVC81CD79PpP9JaLndK1aVXN1OL5nYIOt2qEd5xdF
         NsajUf6OkJ3/i2th5TDz+cQEzVBEsAARV/LWHhaeQpze23lI+oIsGU8n/KONmh4PE/JK
         7XQWd1e72dVSoxX7zXo+QfELtChk+/k0zCPfq/38/C1jh3DC+6x1l2MblovUG5vEuMKR
         Vn8wMbz1jJsYS+pI4O4VrSGqHwfbQ47BtWSjzR8lrApBp6z/t95otvrOb2qmhoKq07xB
         MCqMLUSPUx6nOmoTew9ESNA9/WRlh0F8GxdGIiDShzUKO+RRLcRMtS/lQ1PcGMj6/mcW
         LXOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703066812; x=1703671612;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=aGL1vybcF2qZj64Irbe5qdy2a6Tb1z/WAMJzgQlnykI=;
        b=NM8RAfIwAnCXEbUwoeZ+09sj4/cGJbW1KsnzGUAegM3m3K6WtPCR71lf++Ynjx6Tod
         G7TuU6Jb10eO1Iii6swjmwFyfXrg2F29DHaq1iEjbp137Z88Zy+Unhlfcwnke7RD73tJ
         8YhhbwFXPADn10pNjMPPK2p5/Inw376QnybfnHRUUgYsCeeuVRlgz6mavsTqGU23qG0C
         88z3t1xKbt8ZgvglC4WKhSonYxWIqOqyfwImBZDMGCUEDTsh1qL9RoE2VK0FRytb7PXW
         2+hTFgfsX3DqoYuAucPziJ+kj0zJMr9ASbuBBpXoOfiPp28bBFO2T1flOfTiCnBJ/wyK
         FIXg==
X-Gm-Message-State: AOJu0YwW/Sf1lJwBOZNMAJVhoZ38rNpVSc843UVTtzbniY97Sscdk95v
	G49wuRdj6ejZW3NHf+GXuV0N
X-Google-Smtp-Source: AGHT+IH8S8vlAa5rjcKA35k4+ObP5tOaXjKCTtQ/T+EAZZZdyNMtmJb0xixW4EiM6uLTaJqrfEKzRw==
X-Received: by 2002:a05:600c:19d3:b0:40d:123a:4f26 with SMTP id u19-20020a05600c19d300b0040d123a4f26mr3071146wmq.230.1703066811683;
        Wed, 20 Dec 2023 02:06:51 -0800 (PST)
Message-ID: <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com>
Date: Wed, 20 Dec 2023 11:06:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
 <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.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: <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 01:23, SÃ©bastien Chaumat wrote:
> I had to triple check:
> 
> The first call is from xen_register_pirq()  and seem to originate from
> early_irq_init()  : triggering is 1
> in this first call the HYPERVISOR_physdev_ops is called with triggering 1
> shareable 0
> 
> The second call is from xen_register_pirq() called from xen_register_gsi() :
>   trigger=0 polarity 1 at the start of  xen_register_pirq()
> but then trigger=1 polarity=1 just before the call to PHYSDEVOPS_setup_gsi

I'm sorry, but this is getting extremely confusing. Can you please supply
a complete kernel log, where also other potentially relevant messages
would be present (like those issued when PHYSDEVOP_setup_gsi has failed,
as ought to happen when invoked the 2nd time for the same GSI)? It's fine
if you want to leave your extra printk()s in place for this, but please
be sure (perhaps by way of also supplying the patch you use) to make clear
where exactly they live, so we can make sense of those extra log messages.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 10:22:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 10:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657599.1026551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFtih-0007R4-5G; Wed, 20 Dec 2023 10:22:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657599.1026551; Wed, 20 Dec 2023 10: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 1rFtih-0007Qx-2f; Wed, 20 Dec 2023 10:22:31 +0000
Received: by outflank-mailman (input) for mailman id 657599;
 Wed, 20 Dec 2023 10:22:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFtig-0007Qr-8c
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 10:22:30 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id acd7ffdc-9f21-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 11:22:28 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40d3748f345so3459465e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 02:22:27 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 j8-20020a05600c190800b0040c11fbe581sm6801609wmq.27.2023.12.20.02.22.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 02:22:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: acd7ffdc-9f21-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703067747; x=1703672547; 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=z3JfBbR0a4QYvbdHVn7Xh+Bpjd9UUuKh/RGcGzhdZ2g=;
        b=ED67wtNJVIuAlFBHhJWhnv4z7B1GIgXeIGJOrwYguEDei6bNT/Bk5w+hKilFwmNkff
         025slyZ9FShvtXsFvmqm5Xe0L38xxpR9yKXzhFgjfUO7ZR5Q9zGg0JKhLhylMylYJ9yU
         aezu2CBz+D1Erd/9/3npi6F146KFL3222/Eow=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703067747; x=1703672547;
        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=z3JfBbR0a4QYvbdHVn7Xh+Bpjd9UUuKh/RGcGzhdZ2g=;
        b=AndAxDeH8MZlWLQk3PGImgkPx64yuUd/T/NX1z++JUq/gZ4jSvW9O4IvKneUlgwivF
         KgteSEZBQzBrFLCDmhkRnqpT7VrBJmkr71omtD7A/5PfBxT4GkWexIq8z2qtBFsZo9HB
         G2EoGKK5ekk2e2uu5QZdWpTjmeTcUqdP8uoDd6N2/eSS9Ql6U9L2ZgctXI5M0Wyf4UkE
         h/8RpR6gPgbm/aVoUPAPMC8wiZs7jaC06yEy329GcdHfsNtSaG+eaUO/tNQekMKXzD+g
         +D461N82XF3g/ezWk/BANF3IVTNoQt+cN7c2pBkFOrNHIAQLheyWWIC6pF58ZuIZOLks
         /jFQ==
X-Gm-Message-State: AOJu0YwZFIRyuSjGCDLZvK3SUTcKCDChy9xR8sh6cjUpYejlUAXoHyWh
	NuD4KSOEmDJE15VToFMnszkRKQ==
X-Google-Smtp-Source: AGHT+IERCeEy7q1BOXR1MgKe6C9yPzAwr1XOztWvsqiGTvCJdqFjrdJE/pg6p6tR3PJwOyBFR1ZQRw==
X-Received: by 2002:a05:600c:3105:b0:40c:46eb:e6ad with SMTP id g5-20020a05600c310500b0040c46ebe6admr8502281wmo.175.1703067747331;
        Wed, 20 Dec 2023 02:22:27 -0800 (PST)
Date: Wed, 20 Dec 2023 11:22:26 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 5/7] x86/iommu: remove regions not to be mapped
Message-ID: <ZYLAYtenu3bWOfUU@macbook>
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-6-roger.pau@citrix.com>
 <2966f31a-8390-46fd-84c5-c424382dff29@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2966f31a-8390-46fd-84c5-c424382dff29@suse.com>

On Tue, Dec 19, 2023 at 05:18:39PM +0100, Jan Beulich wrote:
> On 15.12.2023 15:18, Roger Pau Monne wrote:
> > Introduce the code to remove regions not to be mapped from the rangeset
> > that will be used to setup the IOMMU page tables for the hardware domain.
> > 
> > This change also introduces two new functions: remove_xen_ranges() and
> > vpci_subtract_mmcfg() that copy the logic in xen_in_range() and
> > vpci_is_mmcfg_address() respectively and remove the ranges that would otherwise
> > be intercepted by the original functions.
> > 
> > Note that the rangeset is still not populated.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> > @@ -533,6 +541,62 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
> >              goto commit;
> >      }
> >  
> > +    /* Remove any areas in-use by Xen. */
> > +    rc = remove_xen_ranges(map);
> > +    if ( rc )
> > +        panic("IOMMU failed to remove Xen ranges: %d\n", rc);
> > +
> > +    /* Remove any overlap with the Interrupt Address Range. */
> > +    rc = rangeset_remove_range(map, 0xfee00, 0xfeeff);
> > +    if ( rc )
> > +        panic("IOMMU failed to remove Interrupt Address Range: %d\n",
> > +              rc);
> > +
> > +    /* If emulating IO-APIC(s) make sure the base address is unmapped. */
> > +    if ( has_vioapic(d) )
> > +    {
> > +        for ( i = 0; i < d->arch.hvm.nr_vioapics; i++ )
> > +        {
> > +            rc = rangeset_remove_singleton(map,
> > +                PFN_DOWN(domain_vioapic(d, i)->base_address));
> > +            if ( rc )
> > +                panic("IOMMU failed to remove IO-APIC: %d\n",
> > +                      rc);
> > +        }
> > +    }
> > +
> > +    if ( is_pv_domain(d) )
> > +    {
> > +        /*
> > +         * Be consistent with CPU mappings: Dom0 is permitted to establish r/o
> > +         * ones there (also for e.g. HPET in certain cases), so it should also
> > +         * have such established for IOMMUs.  Remove any read-only ranges here,
> > +         * since ranges in mmio_ro_ranges are already explicitly mapped below
> > +         * in read-only mode.
> > +         */
> > +        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, map_subtract, map);
> 
> I find it a little odd that you iterate over mmio_ro_ranges twice (once
> here, once in what the earlier patch added), but I guess overall it's
> easier this way.

Given the number of ranges in the MMIO RO rangeset, I'm not sure
there's much reason to attempt to optimize this at the cost of making
the code harder to read.

> Also, nit: Either this line is too long, or ...
> 
> > +        if ( rc )
> > +            panic("IOMMU failed to remove read-only regions: %d\n",
> > +                  rc);
> 
> ... there's no need to wrap lines here.

No need to wrap indeed.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 10:31:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 10:31:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657606.1026561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFtrb-0001nO-6P; Wed, 20 Dec 2023 10:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657606.1026561; Wed, 20 Dec 2023 10: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 1rFtrb-0001nH-3Q; Wed, 20 Dec 2023 10:31:43 +0000
Received: by outflank-mailman (input) for mailman id 657606;
 Wed, 20 Dec 2023 10:31: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFtra-0001nB-1l
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 10:31:42 +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 f65f4fe3-9f22-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 11:31:40 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-33668163949so3385499f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 02:31:40 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 n9-20020a5d4009000000b0033677a4e0d6sm2224452wrp.13.2023.12.20.02.31.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 02:31:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f65f4fe3-9f22-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703068300; x=1703673100; 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=DPHMfyIt0TH+QSHrLGV+1sxdHdwwCDHNWgRy3zDmDXs=;
        b=OztBI36u+mLBQcUxdH0TgDsVrvzO/SBnzQCLVN9oN1RR8e22gs0YEn4fzQfbB7FRwK
         cqdzPPCqg+6/UIBjJ8tR2RXAIDwTPVeumJX2RoycpUv2dwcpIFDh2kJc43iG6HHzv8VL
         5XX4vb7qbvH463mioEDlT2VL17ajKt62KvmY4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703068300; x=1703673100;
        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=DPHMfyIt0TH+QSHrLGV+1sxdHdwwCDHNWgRy3zDmDXs=;
        b=xQue3Om5EZmSiZd9THOFZKXmBVgCOCW/kuflhkZuMCmJBxss7YTrCA4NU1DqbV51Ic
         PJoUVl1JyHy1f6HFakkSzPnDpcwMT8H4doJjocdcJA407NCO1ZwNk3I68w1QL8/0vlGs
         VYa2dSPt4zg5+FVBHRXR071v/VWHQWPs8dZ5cI767tctwTyHJXP3lki0/yGUxJRrd4AE
         /aEtnWgDqRRXv4AKG1yBEE7/90VOANiOLiTnWZBbRefUYY8NpOc+bhstx1MsSPdgcjMh
         sGNfqmLzCp32SLDkD8vO8PdVTdSss3NBYcDsF20OaOkHK/kPtNdtnDPtyNd4zc2jtBPr
         Hjbw==
X-Gm-Message-State: AOJu0YyXSDmOs+cAqxDAeaZFAryjH0XSgXu//pXj1ysmwJzJKSK/wkcR
	gEl74KZ82WIgxdDLtus+Z3M/hw==
X-Google-Smtp-Source: AGHT+IEJPtlkpRfvXhGS3sEv9n2x4+sQVuayzSF5T5yiisTTntSGMU9J66O1FsG+atdDNxI1inyxZA==
X-Received: by 2002:adf:ef81:0:b0:336:7296:d8d0 with SMTP id d1-20020adfef81000000b003367296d8d0mr651870wro.66.1703068300248;
        Wed, 20 Dec 2023 02:31:40 -0800 (PST)
Date: Wed, 20 Dec 2023 11:31:38 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>, Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?utf-8?B?TcOzd2th?= <mateusz.mowka@intel.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 7/7] x86/iommu: cleanup unused functions
Message-ID: <ZYLCiq2XLgSP7ZMo@macbook>
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-8-roger.pau@citrix.com>
 <02a8e90e-dc4b-4fda-a2a7-50c12d356c63@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <02a8e90e-dc4b-4fda-a2a7-50c12d356c63@suse.com>

On Tue, Dec 19, 2023 at 05:23:57PM +0100, Jan Beulich wrote:
> On 15.12.2023 15:18, Roger Pau Monne wrote:
> > Remove xen_in_range() and vpci_is_mmcfg_address() now that hey are unused.
> > 
> > Adjust comments to point to the new functions that replace the existing ones.
> 
> And because of this affecting what was done earlier in the series, perhaps
> best if patches 5-7 would be committed together.

By committed together do you mean squashed?

I agree that it would be best if the series is committed in one go,
otherwise the comments in the tree can be inconsistent.

> > No functional change.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 10:36:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 10:36:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657610.1026572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFtvs-0003Ug-MY; Wed, 20 Dec 2023 10:36:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657610.1026572; Wed, 20 Dec 2023 10:36:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFtvs-0003UZ-Jf; Wed, 20 Dec 2023 10:36:08 +0000
Received: by outflank-mailman (input) for mailman id 657610;
 Wed, 20 Dec 2023 10:36: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFtvr-0003TI-4S
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 10:36:07 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 921a7d5e-9f23-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 11:36:02 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3367f8f8cb0so34695f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 02:36:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j29-20020a5d6e5d000000b003364e437577sm14944631wrz.84.2023.12.20.02.36.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 02:36:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 921a7d5e-9f23-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703068561; x=1703673361; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1Y9sEFJwb5zkOk6siITXqoNrfmMtJY9X+M6whwB7kQ0=;
        b=bgIh+g+naNZjf/WBEFMtJCnXMpZtLdC4JFITsqT1CTwJSyhD5IDvPmzeIxRf/IhEhy
         v9Ke03L5J2e+YF0Z1EgFiropMA3VEZim59mXFAyIDl9GOVC+76XZXGhP7QkEpyu47May
         4XNBSRRWUQtSnqnNRzD3N0yid23Helpznt3A1D5WGRGRg/JIKhg3oFgsQoHwnz17f1V9
         r/AAAOeCIi9TUF3ZwRlnjJjwqDR37bMWJt81e9Bhs7xUJm/NufsPvHGI6Ll7YkvZcpDL
         VfasbwPiSEcFVNWwpl+yof9Rast4Djei3SFbKIviom6tHTvMh6J6rYNJhVl0My4PUue5
         QKYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703068561; x=1703673361;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1Y9sEFJwb5zkOk6siITXqoNrfmMtJY9X+M6whwB7kQ0=;
        b=YrlB+9ukLUgEHo/h+u396db8gRbOo+GHxMkEO6J00k1Xmtu22JHgsscq7gS4CfyAym
         OAcjU56JLIdIEkxnqeIlWKtWHZL/VLo7m0QrZB94SUFTjp2cBu9QEUw444+x+pwWeWnR
         Wj5BcgdidAgSAFRj7XgHo1htfPdrWYEBS6vGu24yzTqm/qDMF3vAahmuq3Cvgj83hxep
         R6sQeCJxpQJua8YJOzmPwEo8o0VV3jcBGAW9prwS6qG6qP5S3nuNqaX9EiTLEH6Tka+D
         6SCb7efGYgJCbhsRU+UDcW+X+8dwI81bu7p+g7IeWoq2oDk9P1aJCO0ga2fB49bXOrku
         5CnA==
X-Gm-Message-State: AOJu0Yy2LIn7L0QTLnGR5SFiBuWKS72RpWbAd2G739adGmNIUW+CaMBJ
	+jkCtyBrryZIdR9yAdahnTum
X-Google-Smtp-Source: AGHT+IHsuk+klNmJeTCuNhZVCrrH21vq8gD/A11A3PNLBveCWo54L5KmrZvEZpP3iVwuovnTmf+3cQ==
X-Received: by 2002:adf:f5c6:0:b0:336:7197:56e6 with SMTP id k6-20020adff5c6000000b00336719756e6mr1710207wrp.136.1703068561548;
        Wed, 20 Dec 2023 02:36:01 -0800 (PST)
Message-ID: <f9207c2f-d28a-4bbf-a8cd-620952b4fa7f@suse.com>
Date: Wed, 20 Dec 2023 11:36:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] x86/iommu: cleanup unused functions
Content-Language: en-US
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Wei Liu <wl@xen.org>, Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 xen-devel@lists.xenproject.org
References: <20231215141832.9492-1-roger.pau@citrix.com>
 <20231215141832.9492-8-roger.pau@citrix.com>
 <02a8e90e-dc4b-4fda-a2a7-50c12d356c63@suse.com> <ZYLCiq2XLgSP7ZMo@macbook>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ZYLCiq2XLgSP7ZMo@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 11:31, Roger Pau MonnÃ© wrote:
> On Tue, Dec 19, 2023 at 05:23:57PM +0100, Jan Beulich wrote:
>> On 15.12.2023 15:18, Roger Pau Monne wrote:
>>> Remove xen_in_range() and vpci_is_mmcfg_address() now that hey are unused.
>>>
>>> Adjust comments to point to the new functions that replace the existing ones.
>>
>> And because of this affecting what was done earlier in the series, perhaps
>> best if patches 5-7 would be committed together.
> 
> By committed together do you mean squashed?

No. I mean only ...

> I agree that it would be best if the series is committed in one go,
> otherwise the comments in the tree can be inconsistent.

... this (and patches up to 4 can imo go in piecemeal, if we wanted to).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 10:44:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 10:44:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657616.1026581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFu41-0006Zz-GH; Wed, 20 Dec 2023 10:44:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657616.1026581; Wed, 20 Dec 2023 10:44: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 1rFu41-0006Zs-DR; Wed, 20 Dec 2023 10:44:33 +0000
Received: by outflank-mailman (input) for mailman id 657616;
 Wed, 20 Dec 2023 10: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=TKvH=H7=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFu3z-0006YF-E7
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 10:44:31 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0e856a1-9f24-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 11:44:30 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id DFE334EE0C91;
 Wed, 20 Dec 2023 11:44:28 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0e856a1-9f24-11ee-98eb-6d05b1d4d9a1
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: nicola.vetrini@bugseng.com,
	xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	michal.orzel@amd.com,
	xenia.ragiadakou@amd.com,
	ayan.kumar.halder@amd.com,
	consulting@bugseng.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [XEN PATCH] automation/eclair_analysis: fix typo in deviation.
Date: Wed, 20 Dec 2023 11:44:25 +0100
Message-Id: <d9ec973290747665905176939aef7749d5550734.1703068956.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Unwanted leading '+'-s cause the deviation not to work as expected,
leading to wrong analysis counts.

Fixes: 11126964d82f ("automation/eclair_analysis: avoid violation of MISRA Rule 2.1")
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 6806f0eea019..6d32ff016137 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -28,10 +28,10 @@ not executable, and therefore it is safe for them to be unreachable."
 -config=MC3R1.R2.1,ignored_stmts+={"any()", "pure_decl()"}
 -doc_end
 
-+-doc_begin="The following autogenerated file is not linked deliberately."
-+-file_tag+={C_runtime_failures,"^automation/eclair_analysis/C-runtime-failures\\.rst\\.c$"}
-+-config=MC3R1.R2.1,reports+={deliberate, "any_area(any_loc(file(C_runtime_failures)))"}
-+-doc_end
+-doc_begin="The following autogenerated file is not linked deliberately."
+-file_tag+={C_runtime_failures,"^automation/eclair_analysis/C-runtime-failures\\.rst\\.c$"}
+-config=MC3R1.R2.1,reports+={deliberate, "any_area(any_loc(file(C_runtime_failures)))"}
+-doc_end
 
 -doc_begin="Proving compliance with respect to Rule 2.2 is generally impossible:
 see https://arxiv.org/abs/2212.13933 for details. Moreover, peer review gives us
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 10:50:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 10:50:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657622.1026592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuA8-0000oo-5f; Wed, 20 Dec 2023 10:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657622.1026592; Wed, 20 Dec 2023 10:50:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuA8-0000oh-2P; Wed, 20 Dec 2023 10:50:52 +0000
Received: by outflank-mailman (input) for mailman id 657622;
 Wed, 20 Dec 2023 10:50:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFuA7-0000ob-9i
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 10:50:51 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2cb7442-9f25-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 11:50:49 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40d38f03712so1326195e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 02:50:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ay38-20020a05600c1e2600b0040d37e93cc5sm1352285wmb.27.2023.12.20.02.50.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 02:50:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2cb7442-9f25-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703069448; x=1703674248; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=IdeWQHDu4H895lhKeQa/FOBu65GthT+971dnLSSPxxI=;
        b=SToBmwHMxfUxWVljG2pTriwroZjC0e5GJ2pJ+QwGHGr6D9t8PSmTQvgQZZ2DJdlvtK
         +UWUtUp+v9onIHnBtW2nqz51E9N3QY8kOGbLyP5Dt9qLykqOcfVEG2aMLtTz2DKEg19/
         a7bteOtwxzot31cD/3rLhMar27ykJ2gB3ROW4vwkym2NsJF8OjilNy6SbdD55wyNYeLf
         4/KM6roTEZcMTjtX4xBcIEXxaYaYDZdzmiIP8YLF2vzRpu3mPm4lk9i3yfCW9EW/vT20
         yANTGoyd2sOStTXVFvKZPpDICLeqcX1SKdsQByXHPiOqSWnYDFGUmo+rqd8nj5GL4yva
         qF/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703069448; x=1703674248;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=IdeWQHDu4H895lhKeQa/FOBu65GthT+971dnLSSPxxI=;
        b=LRcb90IuPMHYK7tcJGyMRgqiZD+jScBSX3pJ6ji4R035gEIJZSkBoYA5N2hNqd3c3S
         p6W7lYm2Ks9K3BOrzJY5ve/eeN2iFgptBe1utUeKCLi//3KkmCaTidFTp61ZKxGkCfda
         jAZqMiELtlwQNz7NEErsh9pA40JqSMREQOiNJyO2ODqONYpYc/rHigE/hSYL6bAKLMOe
         muORA+VomVYyonPVgRFCHp+Nd5QJ6DFi2GJGe2NLU8Dynbdom6oyeXD5uc3yhIY8Vddb
         +ICQmwrUvd7bGMxPtSpM4Arkcw9jk6nX3o+ellzHUSz7ED5C0Yp40VJnr8otKlG/rSe5
         7tcA==
X-Gm-Message-State: AOJu0Yz3/tmSCw9Hz2cA7w8c4M4YJIQX+9d77eyFLnixX6aXwn2TxmfY
	QQoCOTBwRHVZ64EB99DA6Qwf
X-Google-Smtp-Source: AGHT+IG54WAjKvi2fa6Nm4691aUqg4ohmi1lw2Q/l5LOd0RTDySNIikF+u7t3xKqyf1Ju51Jracp4A==
X-Received: by 2002:a05:600c:4f07:b0:40c:6b55:d9c1 with SMTP id l7-20020a05600c4f0700b0040c6b55d9c1mr4633347wmq.30.1703069448460;
        Wed, 20 Dec 2023 02:50:48 -0800 (PST)
Message-ID: <73fe1d0e-c9f3-4941-9a15-0250c9bd34b4@suse.com>
Date: Wed, 20 Dec 2023 11:50:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/6] xen: add deviations for Rule 11.8
Content-Language: en-US
To: Simone Ballarin <simone.ballarin@bugseng.com>
Cc: consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
 <04cdbf21db915634acd49108edab7d6331df35eb.1702982442.git.maria.celeste.cesario@bugseng.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: <04cdbf21db915634acd49108edab7d6331df35eb.1702982442.git.maria.celeste.cesario@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.12.2023 12:05, Simone Ballarin wrote:
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -248,6 +248,13 @@ Deviations related to MISRA C:2012 Rules:
>         If no bits are set, 0 is returned.
>       - Tagged as `safe` for ECLAIR.
>  
> +   * - R11.8
> +     - Violations caused by container_of are due to pointer arithmetic operations
> +       with the provided offset. The resulting pointer is then immediately cast back to its
> +       original type, which preserves the qualifier. This use is deemed safe.
> +       Fixing this violation would require to increase code complexity and lower readability.
> +     - Tagged as `safe` for ECLAIR.
> +    

Going forward can you please avoid adding trailing whitespace. "git am"
doesn't really like that, and hence it requires extra steps to clean up.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 10:56:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 10:56:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657626.1026603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuFF-0002Zd-PS; Wed, 20 Dec 2023 10:56:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657626.1026603; Wed, 20 Dec 2023 10: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 1rFuFF-0002ZW-L0; Wed, 20 Dec 2023 10:56:09 +0000
Received: by outflank-mailman (input) for mailman id 657626;
 Wed, 20 Dec 2023 10:56:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFuFE-0002ZQ-7T
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 10:56:08 +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 1rFuFD-0002KQ-69; Wed, 20 Dec 2023 10:56:07 +0000
Received: from [15.248.2.232] (helo=[10.24.67.20])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFuFC-0007kx-VR; Wed, 20 Dec 2023 10:56: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=R1Td4gWLf0+H+wX7JRjsHV9k/DYi2k+ZphId3/XqEo8=; b=T8Vf/wDJjP2VFp3ZY+XbwXuJgW
	tncpqDjQEbXcM5o/YltAeorVbtJahQ5Te5FROdgmE9SK5mGhJXLdSN2O8a5MwcJrADwa1rUxi1LNg
	VECBkNqMXuBi0LLsQCtvqmE7EInDVAjHLLfES3/bFgjuDTLA1aKwMxY9okZhVOkaqRGU=;
Message-ID: <82d3c6d1-62a4-45c1-8f57-ecec6bb97e90@xen.org>
Date: Wed, 20 Dec 2023 10:56:04 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/dm: arm: Introudce arm_inject_msi DM op
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <6a631756a126e73390f95b9e86c69e3286c92f59.1702991909.git.mykyta_poturai@epam.com>
 <cacbff18-f37d-42dc-ab8c-79409aa1d237@epam.com>
 <13b218b5-2d37-48de-9baa-cf2b99211bde@xen.org>
 <alpine.DEB.2.22.394.2312191641140.3175268@ubuntu-linux-20-04-desktop>
 <3a5df135-1bcf-41d7-b489-c5fd938b10d6@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3a5df135-1bcf-41d7-b489-c5fd938b10d6@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 20/12/2023 09:13, Mykyta Poturai wrote:
> 
> Hi,
> 
> On 20.12.23 02:42, Stefano Stabellini wrote:
>> On Tue, 19 Dec 2023, Julien Grall wrote:
>>>
>>> But QEMU should really not need to implement a full ITS. What it needs is a
>>> way to forward the MSI to Xen. That's it.
>>
>> I fully agree with Julien
>>
>>
>>> Stefano, do you have any suggestion how to do this in QEMU?
>>
>> Yes, we just need something like hw/i386/xen/xen_apic.c but for ARM
> 
> It is exactly like xen_apic.c. All this implementation does is getting
> the MSI messages and forwarding them to Xen using the DM op from this patch.

If this implementation is only getting the MSI messages and forwarding 
them, then why is it built on top of the vGICv3 ITS structure?

Shouldn't instead be something that is agnostic to the interrupt 
controller (and even possibly arch agnostic)?

The point here is in Xen context, QEMU doesn't know which interrupt 
controller will be exposed to the guest. QEMU is just used for emulating 
devices and none of this should really be architecture specific. 
Instead, it should be a Xen specific way to inject MSI/IRQ.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:03:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:03:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657634.1026636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuME-0005OV-Ii; Wed, 20 Dec 2023 11:03:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657634.1026636; Wed, 20 Dec 2023 11:03: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 1rFuME-0005M8-DR; Wed, 20 Dec 2023 11:03:22 +0000
Received: by outflank-mailman (input) for mailman id 657634;
 Wed, 20 Dec 2023 11:03: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=xS+a=H7=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFuMD-0004rG-Au
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:03:21 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62dd09f4-9f27-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:03:20 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.161.218.228])
 by support.bugseng.com (Postfix) with ESMTPSA id 7FE1C4EE0C9B;
 Wed, 20 Dec 2023 12:03:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62dd09f4-9f27-11ee-98eb-6d05b1d4d9a1
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>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN PATCH 3/7] xen/arm: guest_walk: address violations of MISRA C:2012 Rule 16.3
Date: Wed, 20 Dec 2023 12:03:03 +0100
Message-Id: <98175f394c2c8078a864071aacef04b8d9e1cb6a.1703066935.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1703066935.git.federico.serafini@bugseng.com>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break statements to address violations of Rule 16.3
("An unconditional `break' statement shall terminate every
switch-clause").
No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/arm/guest_walk.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/arch/arm/guest_walk.c b/xen/arch/arm/guest_walk.c
index d99b411f3b..2f7d3a0da7 100644
--- a/xen/arch/arm/guest_walk.c
+++ b/xen/arch/arm/guest_walk.c
@@ -165,6 +165,8 @@ static bool guest_walk_sd(const struct vcpu *v,
             *perms |= GV2M_WRITE;
         if ( !pte.sec.xn )
             *perms |= GV2M_EXEC;
+
+        break;
     }
 
     return true;
@@ -260,6 +262,7 @@ static bool get_ttbr_and_gran_64bit(uint64_t *ttbr, unsigned int *gran,
              * fall back to 4K by default.
              */
             *gran = GRANULE_SIZE_INDEX_4K;
+            break;
         }
 
         /* Use TTBR0 for GVA to IPA translation. */
@@ -291,6 +294,7 @@ static bool get_ttbr_and_gran_64bit(uint64_t *ttbr, unsigned int *gran,
              * fall back to 4K by default.
              */
             *gran = GRANULE_SIZE_INDEX_4K;
+            break;
         }
 
         /* Use TTBR1 for GVA to IPA translation. */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:03:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:03:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657632.1026621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuMD-00058e-MF; Wed, 20 Dec 2023 11:03:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657632.1026621; Wed, 20 Dec 2023 11:03:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuMD-00057L-J2; Wed, 20 Dec 2023 11:03:21 +0000
Received: by outflank-mailman (input) for mailman id 657632;
 Wed, 20 Dec 2023 11:03: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=xS+a=H7=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFuMC-0004rG-59
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:03:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6227cee9-9f27-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:03:19 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.161.218.228])
 by support.bugseng.com (Postfix) with ESMTPSA id 8BE794EE0C9A;
 Wed, 20 Dec 2023 12:03:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6227cee9-9f27-11ee-98eb-6d05b1d4d9a1
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>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN PATCH 2/7] xen/arm: traps: address violations of MISRA C:2012 Rule 16.3
Date: Wed, 20 Dec 2023 12:03:02 +0100
Message-Id: <90c6cdb780ff7b75aada2a8a8a2df5d9e8b94b78.1703066935.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1703066935.git.federico.serafini@bugseng.com>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C:2012 Rule 16.3 states: "An unconditional `break' statement
shall terminate every switch-clause".

Add missing break statements to address violations of Rule 16.3.
Add pseudo-keyword "fallthrough" to make explicit the intended
behavior and satisfy the requirements to deviate Rule 16.3.
No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/arm/traps.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 77220ba092..9c10e8f78c 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1414,10 +1414,18 @@ static void do_trap_hypercall(struct cpu_user_regs *regs, register_t *nr,
     {
         /* Deliberately corrupt parameter regs used by this hypercall. */
         switch ( hypercall_args[*nr] ) {
-        case 5: HYPERCALL_ARG5(regs) = 0xDEADBEEFU;
-        case 4: HYPERCALL_ARG4(regs) = 0xDEADBEEFU;
-        case 3: HYPERCALL_ARG3(regs) = 0xDEADBEEFU;
-        case 2: HYPERCALL_ARG2(regs) = 0xDEADBEEFU;
+        case 5:
+            HYPERCALL_ARG5(regs) = 0xDEADBEEFU;
+            fallthrough;
+        case 4:
+            HYPERCALL_ARG4(regs) = 0xDEADBEEFU;
+            fallthrough;
+        case 3:
+            HYPERCALL_ARG3(regs) = 0xDEADBEEFU;
+            fallthrough;
+        case 2:
+            HYPERCALL_ARG2(regs) = 0xDEADBEEFU;
+            fallthrough;
         case 1: /* Don't clobber x0/r0 -- it's the return value */
         case 0: /* -ENOSYS case */
             break;
@@ -1929,6 +1937,7 @@ static void do_trap_stage2_abort_guest(struct cpu_user_regs *regs,
         gprintk(XENLOG_WARNING,
                 "Unsupported FSC: HSR=%#"PRIregister" DFSC=%#x\n",
                 hsr.bits, xabt.fsc);
+        break;
     }
 
 inject_abt:
@@ -2136,6 +2145,7 @@ void asmlinkage do_trap_guest_sync(struct cpu_user_regs *regs)
                 "Unknown Guest Trap. HSR=%#"PRIregister" EC=0x%x IL=%x Syndrome=0x%"PRIx32"\n",
                 hsr.bits, hsr.ec, hsr.len, hsr.iss);
         inject_undef_exception(regs, hsr);
+        break;
     }
 }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:03:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:03:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657631.1026611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuMB-0004rT-E5; Wed, 20 Dec 2023 11:03:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657631.1026611; Wed, 20 Dec 2023 11:03: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 1rFuMB-0004rM-BZ; Wed, 20 Dec 2023 11:03:19 +0000
Received: by outflank-mailman (input) for mailman id 657631;
 Wed, 20 Dec 2023 11:03: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=xS+a=H7=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFuMA-0004rG-9J
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:03:18 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60db389c-9f27-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:03:17 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.161.218.228])
 by support.bugseng.com (Postfix) with ESMTPSA id EA0924EE0C91;
 Wed, 20 Dec 2023 12:03:14 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60db389c-9f27-11ee-98eb-6d05b1d4d9a1
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>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>,
	Rahul Singh <rahul.singh@arm.com>
Subject: [XEN PATCH 0/7] xen/arm: address violations of MISRA C:2012 Rule 16.3
Date: Wed, 20 Dec 2023 12:03:00 +0100
Message-Id: <cover.1703066935.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series addresses violations of MISRA C:2012 Rule 16.3 on the Arm
code. No fucntional changes are introduced.

Federico Serafini (7):
  xen/arm: gic-v3: address violations of MISRA C:2012 Rule 16.3
  xen/arm: traps: address violations of MISRA C:2012 Rule 16.3
  xen/arm: guest_walk: address violations of MISRA C:2012 Rule 16.3
  xen/arm: mem_access: address violations of MISRA C:2012 Rule 16.3
  xen/arm: v{cp,sys}reg: address violations of MISRA C:2012 Rule 16.3
  xen/arm: mmu: address a violations of MISRA C:2012 Rule 16.3
  xen/arm: smmu-v3: address violations of MISRA C:2012 Rule 16.3

 xen/arch/arm/arm64/vsysreg.c          |  4 ++--
 xen/arch/arm/gic-v3.c                 | 30 +++++++++++++++++++++++++++
 xen/arch/arm/guest_walk.c             |  4 ++++
 xen/arch/arm/mem_access.c             | 12 +++++------
 xen/arch/arm/mmu/p2m.c                |  1 +
 xen/arch/arm/traps.c                  | 18 ++++++++++++----
 xen/arch/arm/vcpreg.c                 |  4 ++--
 xen/drivers/passthrough/arm/smmu-v3.c |  2 ++
 8 files changed, 61 insertions(+), 14 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:03:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:03:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657633.1026628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuME-0005CK-2j; Wed, 20 Dec 2023 11:03:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657633.1026628; Wed, 20 Dec 2023 11:03: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 1rFuMD-0005Ba-T5; Wed, 20 Dec 2023 11:03:21 +0000
Received: by outflank-mailman (input) for mailman id 657633;
 Wed, 20 Dec 2023 11:03:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xS+a=H7=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFuMC-00054g-JY
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:03:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61969488-9f27-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 12:03:18 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.161.218.228])
 by support.bugseng.com (Postfix) with ESMTPSA id 6169E4EE0C99;
 Wed, 20 Dec 2023 12:03:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61969488-9f27-11ee-9b0f-b553b5be7939
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>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN PATCH 1/7] xen/arm: gic-v3: address violations of MISRA C:2012 Rule 16.3
Date: Wed, 20 Dec 2023 12:03:01 +0100
Message-Id: <fe578951c716f7745c14b1fc2851ce9de4da90cb.1703066935.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1703066935.git.federico.serafini@bugseng.com>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add the pseudo-keyword fallthrough to meet the requirements to
deviate Rule 16.3 ("An unconditional `break' statement shall terminate
every switch-clause").
No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/arm/gic-v3.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 18289cd645..bf0e5c1b75 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -65,34 +65,49 @@ static inline void gicv3_save_lrs(struct vcpu *v)
     {
     case 16:
         v->arch.gic.v3.lr[15] = READ_SYSREG_LR(15);
+        fallthrough;
     case 15:
         v->arch.gic.v3.lr[14] = READ_SYSREG_LR(14);
+        fallthrough;
     case 14:
         v->arch.gic.v3.lr[13] = READ_SYSREG_LR(13);
+        fallthrough;
     case 13:
         v->arch.gic.v3.lr[12] = READ_SYSREG_LR(12);
+        fallthrough;
     case 12:
         v->arch.gic.v3.lr[11] = READ_SYSREG_LR(11);
+        fallthrough;
     case 11:
         v->arch.gic.v3.lr[10] = READ_SYSREG_LR(10);
+        fallthrough;
     case 10:
         v->arch.gic.v3.lr[9] = READ_SYSREG_LR(9);
+        fallthrough;
     case 9:
         v->arch.gic.v3.lr[8] = READ_SYSREG_LR(8);
+        fallthrough;
     case 8:
         v->arch.gic.v3.lr[7] = READ_SYSREG_LR(7);
+        fallthrough;
     case 7:
         v->arch.gic.v3.lr[6] = READ_SYSREG_LR(6);
+        fallthrough;
     case 6:
         v->arch.gic.v3.lr[5] = READ_SYSREG_LR(5);
+        fallthrough;
     case 5:
         v->arch.gic.v3.lr[4] = READ_SYSREG_LR(4);
+        fallthrough;
     case 4:
         v->arch.gic.v3.lr[3] = READ_SYSREG_LR(3);
+        fallthrough;
     case 3:
         v->arch.gic.v3.lr[2] = READ_SYSREG_LR(2);
+        fallthrough;
     case 2:
         v->arch.gic.v3.lr[1] = READ_SYSREG_LR(1);
+        fallthrough;
     case 1:
          v->arch.gic.v3.lr[0] = READ_SYSREG_LR(0);
          break;
@@ -112,34 +127,49 @@ static inline void gicv3_restore_lrs(const struct vcpu *v)
     {
     case 16:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[15], 15);
+        fallthrough;
     case 15:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[14], 14);
+        fallthrough;
     case 14:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[13], 13);
+        fallthrough;
     case 13:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[12], 12);
+        fallthrough;
     case 12:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[11], 11);
+        fallthrough;
     case 11:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[10], 10);
+        fallthrough;
     case 10:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[9], 9);
+        fallthrough;
     case 9:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[8], 8);
+        fallthrough;
     case 8:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[7], 7);
+        fallthrough;
     case 7:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[6], 6);
+        fallthrough;
     case 6:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[5], 5);
+        fallthrough;
     case 5:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[4], 4);
+        fallthrough;
     case 4:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[3], 3);
+        fallthrough;
     case 3:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[2], 2);
+        fallthrough;
     case 2:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[1], 1);
+        fallthrough;
     case 1:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[0], 0);
         break;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:03:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:03:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657635.1026652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuMG-0005ux-Qb; Wed, 20 Dec 2023 11:03:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657635.1026652; Wed, 20 Dec 2023 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 1rFuMG-0005uq-N0; Wed, 20 Dec 2023 11:03:24 +0000
Received: by outflank-mailman (input) for mailman id 657635;
 Wed, 20 Dec 2023 11:03:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xS+a=H7=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFuMF-0004rG-1F
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:03:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63ddd643-9f27-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:03:22 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.161.218.228])
 by support.bugseng.com (Postfix) with ESMTPSA id DD4674EE0C9C;
 Wed, 20 Dec 2023 12:03:20 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63ddd643-9f27-11ee-98eb-6d05b1d4d9a1
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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>
Subject: [XEN PATCH 4/7] xen/arm: mem_access: address violations of MISRA C:2012 Rule 16.3
Date: Wed, 20 Dec 2023 12:03:04 +0100
Message-Id: <d7a015aaa54fb4722d4970f0f40789efe4d994f9.1703066935.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1703066935.git.federico.serafini@bugseng.com>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Refactor of the code to have a break statement at the end of the
switch-clause. This addresses violations of Rule 16.3
("An unconditional `break' statement shall terminate every
switch-clause").
No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/arm/mem_access.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/mem_access.c b/xen/arch/arm/mem_access.c
index 31db846354..fbcb5471f7 100644
--- a/xen/arch/arm/mem_access.c
+++ b/xen/arch/arm/mem_access.c
@@ -168,10 +168,10 @@ p2m_mem_access_check_and_get_page(vaddr_t gva, unsigned long flag,
          * If this was a read then it was because of mem_access, but if it was
          * a write then the original get_page_from_gva fault was correct.
          */
-        if ( flag == GV2M_READ )
-            break;
-        else
+        if ( flag != GV2M_READ )
             goto err;
+
+        break;
     case XENMEM_access_rx2rw:
     case XENMEM_access_rx:
     case XENMEM_access_r:
@@ -179,10 +179,10 @@ p2m_mem_access_check_and_get_page(vaddr_t gva, unsigned long flag,
          * If this was a write then it was because of mem_access, but if it was
          * a read then the original get_page_from_gva fault was correct.
          */
-        if ( flag == GV2M_WRITE )
-            break;
-        else
+        if ( flag != GV2M_WRITE )
             goto err;
+
+        break;
     }
 
     /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:03:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:03:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657636.1026662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuMI-0006DE-63; Wed, 20 Dec 2023 11:03:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657636.1026662; Wed, 20 Dec 2023 11:03: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 1rFuMI-0006D3-1a; Wed, 20 Dec 2023 11:03:26 +0000
Received: by outflank-mailman (input) for mailman id 657636;
 Wed, 20 Dec 2023 11:03: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=xS+a=H7=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFuMG-0004rG-2S
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:03:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 647b579b-9f27-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:03:23 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.161.218.228])
 by support.bugseng.com (Postfix) with ESMTPSA id 75AB84EE0C92;
 Wed, 20 Dec 2023 12:03:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 647b579b-9f27-11ee-98eb-6d05b1d4d9a1
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>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of MISRA C:2012 Rule 16.3
Date: Wed, 20 Dec 2023 12:03:05 +0100
Message-Id: <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1703066935.git.federico.serafini@bugseng.com>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Refactor of the switch-clauses to have a return statement at the end.
This satisfies the requirements to deviate Rule 16.3 ("An unconditional
`break' statement shall terminate every switch-clause).
No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/arm/arm64/vsysreg.c | 4 ++--
 xen/arch/arm/vcpreg.c        | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
index b5d54c569b..247f08ad8d 100644
--- a/xen/arch/arm/arm64/vsysreg.c
+++ b/xen/arch/arm/arm64/vsysreg.c
@@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
         /* RO at EL0. RAZ/WI at EL1 */
         if ( regs_mode_is_user(regs) )
             return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
-        else
-            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
+
+        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
     case HSR_SYSREG_PMCR_EL0:
     case HSR_SYSREG_PMCNTENSET_EL0:
     case HSR_SYSREG_PMCNTENCLR_EL0:
diff --git a/xen/arch/arm/vcpreg.c b/xen/arch/arm/vcpreg.c
index a2d0500704..685609f825 100644
--- a/xen/arch/arm/vcpreg.c
+++ b/xen/arch/arm/vcpreg.c
@@ -289,8 +289,8 @@ void do_cp15_32(struct cpu_user_regs *regs, const union hsr hsr)
         /* RO at EL0. RAZ/WI at EL1 */
         if ( regs_mode_is_user(regs) )
             return handle_ro_raz(regs, regidx, cp32.read, hsr, 0);
-        else
-            return handle_raz_wi(regs, regidx, cp32.read, hsr, 1);
+
+        return handle_raz_wi(regs, regidx, cp32.read, hsr, 1);
     case HSR_CPREG32(PMINTENSET):
     case HSR_CPREG32(PMINTENCLR):
         /* EL1 only, however MDCR_EL2.TPM==1 means EL0 may trap here also. */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:03:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:03:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657637.1026667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuMI-0006Gb-Ky; Wed, 20 Dec 2023 11:03:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657637.1026667; Wed, 20 Dec 2023 11:03: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 1rFuMI-0006Fe-C5; Wed, 20 Dec 2023 11:03:26 +0000
Received: by outflank-mailman (input) for mailman id 657637;
 Wed, 20 Dec 2023 11:03: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=xS+a=H7=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFuMH-0004rG-42
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:03:25 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 651db1ee-9f27-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:03:24 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.161.218.228])
 by support.bugseng.com (Postfix) with ESMTPSA id 6ED4C4EE0C99;
 Wed, 20 Dec 2023 12:03:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 651db1ee-9f27-11ee-98eb-6d05b1d4d9a1
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>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN PATCH 6/7] xen/arm: mmu: address a violations of MISRA C:2012 Rule 16.3
Date: Wed, 20 Dec 2023 12:03:06 +0100
Message-Id: <92740a979c4d3a19d7c76ff69b90ab211049448e.1703066935.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1703066935.git.federico.serafini@bugseng.com>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add missing break at the end of the switch-clause to address a
violation of MISRA C:2012 Rule 16.3 ("An unconditional `break'
statement shall terminate every switch-clause").
No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/arm/mmu/p2m.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 6a5a080307..41fcca011c 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -657,6 +657,7 @@ static lpae_t mfn_to_p2m_entry(mfn_t mfn, p2m_type_t t, p2m_access_t a)
     default:
         e.p2m.mattr = MATTR_MEM;
         e.p2m.sh = LPAE_SH_INNER;
+        break;
     }
 
     p2m_set_permission(&e, t, a);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:03:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:03:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657638.1026680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuMJ-0006hE-TA; Wed, 20 Dec 2023 11:03:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657638.1026680; Wed, 20 Dec 2023 11: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 1rFuMJ-0006gg-P2; Wed, 20 Dec 2023 11:03:27 +0000
Received: by outflank-mailman (input) for mailman id 657638;
 Wed, 20 Dec 2023 11:03:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xS+a=H7=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFuMI-0004rG-92
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:03:26 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65d1acf7-9f27-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:03:25 +0100 (CET)
Received: from Dell.bugseng.com (unknown [37.161.218.228])
 by support.bugseng.com (Postfix) with ESMTPSA id 9D39F4EE0C9A;
 Wed, 20 Dec 2023 12:03:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65d1acf7-9f27-11ee-98eb-6d05b1d4d9a1
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Rahul Singh <rahul.singh@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [XEN PATCH 7/7] xen/arm: smmu-v3: address violations of MISRA C:2012 Rule 16.3
Date: Wed, 20 Dec 2023 12:03:07 +0100
Message-Id: <93d32bf20bb85b93618be5140edb1be527606b77.1703066935.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1703066935.git.federico.serafini@bugseng.com>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a break statement at the end of the switch-clauses to address
violations of MISRA C:2012 Rule 16.3 ("An unconditional `break'
statement shall terminate every switch-clause").
No funtional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index cdbb505134..bca5866b35 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -2200,6 +2200,7 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
 		fallthrough;
 	case IDR0_STALL_MODEL_STALL:
 		smmu->features |= ARM_SMMU_FEAT_STALLS;
+		break;
 	}
 
 	if (reg & IDR0_S2P)
@@ -2301,6 +2302,7 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
 		fallthrough;
 	case IDR5_OAS_48_BIT:
 		smmu->oas = 48;
+		break;
 	}
 
 	smmu->oas = min_t(unsigned long, PADDR_BITS, smmu->oas);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:04:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:04:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657660.1026692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuNQ-0000yz-AZ; Wed, 20 Dec 2023 11:04:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657660.1026692; Wed, 20 Dec 2023 11:04: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 1rFuNQ-0000ys-7z; Wed, 20 Dec 2023 11:04:36 +0000
Received: by outflank-mailman (input) for mailman id 657660;
 Wed, 20 Dec 2023 11:04:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFuNO-0000xC-7m
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:04:34 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8dfd17fd-9f27-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:04:33 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-33666946422so2822751f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 03:04:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o2-20020a5d6842000000b003367147831csm4231252wrw.108.2023.12.20.03.04.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 03:04:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8dfd17fd-9f27-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703070272; x=1703675072; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=MQnS+PQhiYETEAegc7IO7ncTiF5tuHX0c9UDTtNRI4s=;
        b=QBcPE1nUdk+1ny1ouM4qng8CGjxWfE3rXY5lXXOa8j6g6pzian+O4dCLrPAiugdPRW
         HmCpEb7snP1k7/JrujA+2oPA/offiR1Lk0Vvg/82vwZfaOecFwit/nTOCEnx9wmRYpkA
         IN+9wE9VNf6im9ZfoyFVw6O2PZHQpz74wybc4a8zZUD6wxgdvtFLx9minMeG5Bhxwqsy
         kwKSl5iaNuPMWQXE8/J7nS5m2Xu8e9npa4e6584ALYSlphn3qt7amC6MkKhNUrU1260/
         TKbkoI61xw4uj/uvJchn6WFUQkHqlmkwAs2C5rt2OYuqLO1ho4/d2Y+aX1QdmbaZqBFe
         Q/Tw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703070272; x=1703675072;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=MQnS+PQhiYETEAegc7IO7ncTiF5tuHX0c9UDTtNRI4s=;
        b=EFQPhP5LckJ7uPJ5I1z7Np1fIHuNki1kGyA10mgqVl5aUuBEPEvCLefO3LOgp9x4mr
         ee3V7JEUkOv4koJTeeZnWT5xzfoJNS4kjcWQc0Ri2DrYUaJTnMkKCU579j+lfj+t78tK
         Oa3rKYRcroUUrl+GGnTmKuJeea6Nq9rjfDF8p75TjgJ4+RszqBedZQb1JTT1OSmlGsBJ
         YnggH/6Ve2ryx0QSQ0ioGHu837CJF64Zc2a9qQgH7T7C9q7D5yq4hlud753/K6lGtgmS
         qNIDfRE14HnSiR29hnGc9shuLS0/zhSxr9U9Rj0yAd8cNOpHdTZ/uLRjJbnoqlT0gGMW
         r9XQ==
X-Gm-Message-State: AOJu0YzAcEEwjAa6aMe7Gd7mALuac2YyY29hyr1weIlm0lRd2MQ/Ew0s
	hqpJdXt5tZwy+I0wSrJbIRec
X-Google-Smtp-Source: AGHT+IE/T+z9J1ekyKXopye1o5baU/kR/xWcnjmMqS0es2BVdbQnm3/7zqyGnWKwf3IRB8hpZhuU8A==
X-Received: by 2002:a05:6000:18c1:b0:333:43b6:9a5a with SMTP id w1-20020a05600018c100b0033343b69a5amr11436141wrq.78.1703070272570;
        Wed, 20 Dec 2023 03:04:32 -0800 (PST)
Message-ID: <18ff4bdd-c109-431e-a548-4d988c2072fd@suse.com>
Date: Wed, 20 Dec 2023 12:04:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 02/17] pci: introduce per-domain PCI rwlock
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 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>,
 Paul Durrant <paul@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Kevin Tian <kevin.tian@intel.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-3-volodymyr_babchuk@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231202012556.2012281-3-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.12.2023 02:27, Volodymyr Babchuk wrote:
> Add per-domain d->pci_lock that protects access to
> d->pdev_list. Purpose of this lock is to give guarantees to VPCI code
> that underlying pdev will not disappear under feet. This is a rw-lock,
> but this patch adds only write_lock()s. There will be read_lock()
> users in the next patches.
> 
> This lock should be taken in write mode every time d->pdev_list is
> altered. All write accesses also should be protected by pcidevs_lock()
> as well. Idea is that any user that wants read access to the list or
> to the devices stored in the list should use either this new
> d->pci_lock or old pcidevs_lock(). Usage of any of this two locks will
> ensure only that pdev of interest will not disappear from under feet
> and that the pdev still will be assigned to the same domain. Of
> course, any new users should use pcidevs_lock() when it is
> appropriate (e.g. when accessing any other state that is protected by
> the said lock). In case both the newly introduced per-domain rwlock
> and the pcidevs lock is taken, the latter must be acquired first.

Shouldn't an abridged version of this also be put ...

> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -461,6 +461,7 @@ struct domain
>  
>  #ifdef CONFIG_HAS_PCI
>      struct list_head pdev_list;
> +    rwlock_t pci_lock;
>  #endif

... here, for easy future reference? As locking is going to become
more complicated, documenting lock nesting rules in code is imo pretty
important.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:09:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:09:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657684.1026702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuRx-0002TM-1I; Wed, 20 Dec 2023 11:09:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657684.1026702; Wed, 20 Dec 2023 11:09: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 1rFuRw-0002TF-U7; Wed, 20 Dec 2023 11:09:16 +0000
Received: by outflank-mailman (input) for mailman id 657684;
 Wed, 20 Dec 2023 11:09:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFuRv-0002T9-PJ
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:09:15 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 35332ab3-9f28-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 12:09:13 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3366ddd1eddso2835332f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 03:09:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 q18-20020adff952000000b0033609b71825sm31281099wrr.35.2023.12.20.03.09.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 03:09:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35332ab3-9f28-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703070553; x=1703675353; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=VZUB8qZCGPyGMZuEML8wcA4ZoiV5N2qqWfjAd/vcVuU=;
        b=OCcMAu1rr8XJroYEm2jNLZPwm+6tdBbe2fkZMbrzviBJX1Irp8En4j8QzyZ5e1v12C
         GW+sM9hc3SVkHFmDgSNMJDEvFWhKJ0BhU7cq/1RGDaRaxzORPS9brQsNyXMbXVG0iEhG
         YC4uoKVpBJDtHM7XBtnzllbROoc1JtcpELvLlpzmZAPbF0oqEmYmtm3a5a79IRT3MZDe
         d5bo96h36PTQdgdsESzmG1ERDblYNnodDe9PZ3R4xTWy+pARFnO3XGNqkSTbcKZwa+1U
         0XN+Csc4wMpY4grYEdC4RfVQth2H0DnDiovTkSg6jOC0438DvyW9KNXHAT6gDBcSYS+Z
         hNOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703070553; x=1703675353;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=VZUB8qZCGPyGMZuEML8wcA4ZoiV5N2qqWfjAd/vcVuU=;
        b=p7xy+4GKcTHUJkJ8uApBuWnGKDx/LhL5xnd4v62EDrhpCLGR0UVSLT/dwaRCWRGxn/
         5Jr4PhTIZMUkYjHvlrue/1Qwej4x8NCGw1xGkUNLQMEWljKMDyK0NrJ9Sxlx7Y3ZHqh6
         EQfgVblz1+rEiWSjb8SHB31W8F8HGSTlC4uVp3CucSKuzhR10P9NCyI8/pLTpuiqpsq+
         TBDEBFAJwUeW6B0NpM9ewG5PUfG7ILLsdis5wKbtoGqZY8Bm/GKoUNr9G1o9D7v7iMBG
         y6NjBqYhWxAaw5O6s4oKrSkkVF23h9byrdjGxGiT1e9/OZ2csPFtT8bG1u5wVSEtg8aZ
         y+8g==
X-Gm-Message-State: AOJu0YyT4YhBY1u502cWVyMW9bRUC118iN+jlC0WHCS5kb+/NhSU5LmY
	9v4LJTM/oS7PT6Iyg/2svI6fnBk+ZnAt+5VZQYD9
X-Google-Smtp-Source: AGHT+IHQ9KuPQPVxEjLaTylOvEnF8oERT1vmsQ8YSzYdRtDXrGR6QHpQbnapx6m0HZ0le2vJ3AnKYg==
X-Received: by 2002:a5d:4579:0:b0:336:8030:213b with SMTP id a25-20020a5d4579000000b003368030213bmr3065wrc.142.1703070553150;
        Wed, 20 Dec 2023 03:09:13 -0800 (PST)
Message-ID: <3fa1db69-adcc-4d1f-9e8a-e2300393210b@suse.com>
Date: Wed, 20 Dec 2023 12:09:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] xen/asm-generic: Introduce generic setup.h
Content-Language: en-US
To: Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <1e4f48d753871bf61de3af97a3009e069d25d01e.1702607884.git.sanastasio@raptorengineering.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: <1e4f48d753871bf61de3af97a3009e069d25d01e.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 03:43, Shawn Anastasio wrote:
> Introduce setup.h to asm-generic based off of ARM's to define all
> stubs necessary to compile bootfdt.c
> 
> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> ---
>  xen/arch/ppc/include/asm/Makefile |   1 +
>  xen/arch/ppc/include/asm/setup.h  |   6 --
>  xen/include/asm-generic/setup.h   | 148 ++++++++++++++++++++++++++++++
>  3 files changed, 149 insertions(+), 6 deletions(-)
>  delete mode 100644 xen/arch/ppc/include/asm/setup.h
>  create mode 100644 xen/include/asm-generic/setup.h
> 
> diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
> index a711cfa856..7167661f86 100644
> --- a/xen/arch/ppc/include/asm/Makefile
> +++ b/xen/arch/ppc/include/asm/Makefile
> @@ -6,5 +6,6 @@ generic-y += iocap.h
>  generic-y += paging.h
>  generic-y += percpu.h
>  generic-y += random.h
> +generic-y += setup.h
>  generic-y += static-shmem.h
>  generic-y += vm_event.h

Looking at patch 5, you undo this there. Why introduce it in the first place
then? And why leave a stale (unused) file around there?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:09:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:09:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657687.1026711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuSP-00030e-8e; Wed, 20 Dec 2023 11:09:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657687.1026711; Wed, 20 Dec 2023 11: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 1rFuSP-00030X-5o; Wed, 20 Dec 2023 11:09:45 +0000
Received: by outflank-mailman (input) for mailman id 657687;
 Wed, 20 Dec 2023 11:09:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFuSN-00030P-Vx
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:09:43 +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 1rFuSN-0002dr-7M; Wed, 20 Dec 2023 11:09:43 +0000
Received: from [15.248.2.232] (helo=[10.24.67.20])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFuSN-000099-0Z; Wed, 20 Dec 2023 11:09:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=l7CQyIO8CNZFvmsjGJ+z1l3Wj76DQIDYO7G6vZ61ezE=; b=sX2gO/Pu41ddKTfMKwdIB75yVf
	YiXeH7u7SEkKzElEvaBDsEMMzKYrVuOxsPnM80EqGvl3N1Gd1bIABn3Fr3gye6RKIGZowLjuvI8/B
	yE+M3lc4R3empL40m51Lpqw2ah8i44mNDZymKM31uKT4vfFZ3ahgyqIhEhHjEYlbfdYA=;
Message-ID: <210a5c06-8146-4e66-8d23-93f91f93600b@xen.org>
Date: Wed, 20 Dec 2023 11:09:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/7] xen/arm: gic-v3: address violations of MISRA
 C:2012 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.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.1703066935.git.federico.serafini@bugseng.com>
 <fe578951c716f7745c14b1fc2851ce9de4da90cb.1703066935.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <fe578951c716f7745c14b1fc2851ce9de4da90cb.1703066935.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 20/12/2023 11:03, Federico Serafini wrote:
> Add the pseudo-keyword fallthrough to meet the requirements to
> deviate Rule 16.3 ("An unconditional `break' statement shall terminate
> every switch-clause").
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:15:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:15:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657700.1026722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuY6-0006AN-Sn; Wed, 20 Dec 2023 11:15:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657700.1026722; Wed, 20 Dec 2023 11: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 1rFuY6-0006AG-Q0; Wed, 20 Dec 2023 11:15:38 +0000
Received: by outflank-mailman (input) for mailman id 657700;
 Wed, 20 Dec 2023 11:15:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFuY5-0006AA-Mv
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:15:37 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 197f0f5e-9f29-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:15:36 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40d38f03712so1570425e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 03:15:36 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 jg7-20020a05600ca00700b0040c46719966sm6876799wmb.25.2023.12.20.03.15.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 03:15:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 197f0f5e-9f29-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703070936; x=1703675736; 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=TUbHJtaRwhu3uDvDbFmA5A8L9noTZyKrw11OFe6cqlw=;
        b=flUL8UNYi/kId4Tka/6P9AVSiJl3Ux/0M2yKq4IxrvS0FvfvqdWKt8+pRNfhBiIcQM
         mbVmCAXtlaL/Ax6Y7hurA5GUePa7fXA+cdtLtOzCthhn4YhkjRxU3XjFeGC0L9KPLEu5
         v/YO2OZgcq3om8Q1GjwMKKdy4rT4vQH70G6WU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703070936; x=1703675736;
        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=TUbHJtaRwhu3uDvDbFmA5A8L9noTZyKrw11OFe6cqlw=;
        b=CxRH01hxhC/RkHFQ2u2KDIIARL+34qCPd6loBTnLpWBwUaziZZPOLGUpDSzk+qrkHW
         JypeBmLXyJkdwmh9PM5Txtr0UGQ+fy9oea9Uavb2GANF3QBPAIU8jVy6Xlc6qoR1Oimi
         p//6q07EoPzQQ+h34P8xkrbz3pDT4SfEdRFDXTlh/rw7mNunogptWXwenCL2zGNibqYi
         esiwFXkMRIFWtniNOCrqHuE9M9iN6LQFpx8mbR8E44nBjHgY0ynKMZeWIumR4RZ1PQmR
         GK3V6GJpqv5U6xxl7vt4pNG2aZjJmAkaXo4Ncaf6r+3hfFVowd0z5BCGwWw07JYskWVq
         RzLg==
X-Gm-Message-State: AOJu0YzD0xsT0dBtNSufyKXVLOB48pNRI8QC49WhxyXFJG5b+/RLP/k4
	y5HuKbinDFziUacukee8PQjeDQ==
X-Google-Smtp-Source: AGHT+IFcooR/43azGnRuGCfYBHPURu1Pmw4IpdfcNyfIlKaiwujVWqyHKe4UyxQQSVHvQ3Ner6atLA==
X-Received: by 2002:a05:600c:84ca:b0:40c:3cc0:8616 with SMTP id er10-20020a05600c84ca00b0040c3cc08616mr9231316wmb.73.1703070935859;
        Wed, 20 Dec 2023 03:15:35 -0800 (PST)
Date: Wed, 20 Dec 2023 12:15:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2] x86/platform: tidy do_platform_op() a little
Message-ID: <ZYLM1m_khwPd53Cj@macbook>
References: <bd72ab26-2258-4a11-9b8d-b69c60ee5b8c@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bd72ab26-2258-4a11-9b8d-b69c60ee5b8c@suse.com>

On Wed, Dec 20, 2023 at 10:35:29AM +0100, Jan Beulich wrote:
> The function has a few stray scopes and inconsistent use (indentation)
> of break statements. Drop the stray braces and bring all the break-s in
> line with one another. This in particular means dropping a redundant
> break from XENPF_cpu_offline handling, pleasing Misra C:2012 rule 2.1.
> 
> No functional change intended.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:40:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:40:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657707.1026733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuvb-0003wH-Tj; Wed, 20 Dec 2023 11:39:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657707.1026733; Wed, 20 Dec 2023 11:39:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuvb-0003wA-NN; Wed, 20 Dec 2023 11:39:55 +0000
Received: by outflank-mailman (input) for mailman id 657707;
 Wed, 20 Dec 2023 11:39: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=TKvH=H7=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFuva-0003w4-7z
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:39:54 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7dc5b78a-9f2c-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:39:53 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id D024D4EE0C91;
 Wed, 20 Dec 2023 12:39:52 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7dc5b78a-9f2c-11ee-98eb-6d05b1d4d9a1
MIME-Version: 1.0
Date: Wed, 20 Dec 2023 12:39:52 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Simone Ballarin <simone.ballarin@bugseng.com>, consulting@bugseng.com,
 Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>, Doug Goldstein
 <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, George Dunlap
 <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 3/6] xen: add deviations for Rule 11.8
In-Reply-To: <73fe1d0e-c9f3-4941-9a15-0250c9bd34b4@suse.com>
References: <cover.1702982442.git.maria.celeste.cesario@bugseng.com>
 <04cdbf21db915634acd49108edab7d6331df35eb.1702982442.git.maria.celeste.cesario@bugseng.com>
 <73fe1d0e-c9f3-4941-9a15-0250c9bd34b4@suse.com>
Message-ID: <b99d8c89879ffccaf2bdcf37a5a9a02b@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 2023-12-20 11:50, Jan Beulich wrote:
> On 19.12.2023 12:05, Simone Ballarin wrote:
>> --- a/docs/misra/deviations.rst
>> +++ b/docs/misra/deviations.rst
>> @@ -248,6 +248,13 @@ Deviations related to MISRA C:2012 Rules:
>>         If no bits are set, 0 is returned.
>>       - Tagged as `safe` for ECLAIR.
>> 
>> +   * - R11.8
>> +     - Violations caused by container_of are due to pointer 
>> arithmetic operations
>> +       with the provided offset. The resulting pointer is then 
>> immediately cast back to its
>> +       original type, which preserves the qualifier. This use is 
>> deemed safe.
>> +       Fixing this violation would require to increase code 
>> complexity and lower readability.
>> +     - Tagged as `safe` for ECLAIR.
>> +
> 
> Going forward can you please avoid adding trailing whitespace. "git am"
> doesn't really like that, and hence it requires extra steps to clean 
> up.
> 
> Jan

Noted, sorry for the inconvenience.

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:44:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:44:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657711.1026742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFuzf-0006US-BX; Wed, 20 Dec 2023 11:44:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657711.1026742; Wed, 20 Dec 2023 11:44: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 1rFuzf-0006UL-7i; Wed, 20 Dec 2023 11:44:07 +0000
Received: by outflank-mailman (input) for mailman id 657711;
 Wed, 20 Dec 2023 11:44:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFuzd-0006UD-CA
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:44:05 +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 1rFuzc-0003KD-C6; Wed, 20 Dec 2023 11:44:04 +0000
Received: from 82-132-247-3.dab.02.net ([82.132.247.3] helo=[172.20.10.6])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFuzc-0001wA-2t; Wed, 20 Dec 2023 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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=8cl2K5A44Wc2FBRQ6BGrUrkUFCrEqbaolUxhSbaeM3Y=; b=5ezQKJ2SrfcX1oyPgTAJ2SC9z8
	Py5wzTnZcmnP3qL/1LbHyMnm0ONatOKtViFYA02HPH4ycyAC9lXJgQmK8yuA+llLdw5kzSV7scEsy
	464T0VDHPChgnUSUqzCaUWZdQU0AcOAixoDXPeckiymaZcB5Ky4fvblp2BNqVn6cicTo=;
Message-ID: <b5d700d9-7e34-4ec4-9e8a-bdbd378da8ee@xen.org>
Date: Wed, 20 Dec 2023 11:44:00 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/7] xen/arm: traps: address violations of MISRA
 C:2012 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.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.1703066935.git.federico.serafini@bugseng.com>
 <90c6cdb780ff7b75aada2a8a8a2df5d9e8b94b78.1703066935.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <90c6cdb780ff7b75aada2a8a8a2df5d9e8b94b78.1703066935.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 20/12/2023 11:03, Federico Serafini wrote:
> MISRA C:2012 Rule 16.3 states: "An unconditional `break' statement
> shall terminate every switch-clause".
> 
> Add missing break statements to address violations of Rule 16.3.
> Add pseudo-keyword "fallthrough" to make explicit the intended
> behavior and satisfy the requirements to deviate Rule 16.3.
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:44:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:44:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657714.1026751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFv0E-00070C-It; Wed, 20 Dec 2023 11:44:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657714.1026751; Wed, 20 Dec 2023 11:44: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 1rFv0E-000705-GC; Wed, 20 Dec 2023 11:44:42 +0000
Received: by outflank-mailman (input) for mailman id 657714;
 Wed, 20 Dec 2023 11:44: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFv0D-0006w6-ND
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:44:41 +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 28ef5f52-9f2d-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:44:40 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-33621d443a7so5734390f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 03:44:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 o2-20020a5d62c2000000b003366796301csm8328279wrv.0.2023.12.20.03.44.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 03:44:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28ef5f52-9f2d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703072680; x=1703677480; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=riId0RVKY0qf9i0QvzWvHOjkhZWRMKLYHEGaZdhEmIo=;
        b=QHPZvqs+KLhGY+BDVkx6Q8EqM9n1M7bCUHLh9K7nHLRSQLeTYXs4epI7/Ux8ARIt1v
         70Tt67ZS7Q5Xe5tkdsp+oKBRKmzJEoZSO5Edl4RGc9AthsWDw/JKTzD8T2OLspW3AK5p
         6WmPGij8pzoA5u7AIXxdN1nsLcQBqUCNCNPlLhUukjEhWblUQF/nms52alTBrzyVhbNR
         hviOXxF/zB4gVKEcV8JFaTcLM4cfLrk0yNarPkt/eCJNik4/++WDfMo2UG/lgTCSWBve
         v6DXq+QL1ZED5nrbkwXQxvwUqJz0QDMIvd7y/mwm7hem22f2QdSbSt0dh5FfFw839NEE
         ZeJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703072680; x=1703677480;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=riId0RVKY0qf9i0QvzWvHOjkhZWRMKLYHEGaZdhEmIo=;
        b=UHKmfGdL7FFYnxcby5E6RrEfB2Qpev1pWWEWcz/Q2GYztysIBgZnHkNma3wu7VTGKK
         zenVJateFY/2Aq6WoDi7BEB7WR2/KRgV+F7MaudMZCBvSUOEwUyij9I+7rCT1lrkzzjA
         1zehQEzkzPgSAQZEOnu/tmg6QT5Q1+2FAS0IJTDgytUaw5kUxUk1/dk0aZJ5hriDWG7B
         J/H4U/qGMPwjpqeuDI0GI9jNJRblew+VftHEsHJwsI94NzQKkLXID/pcIEmTxyOYA5tT
         pWtx2nEmc2m6+o3S2OFVRdbqsWmepdnY4WNZnnIm0t2JgIx94Zbqon03qTD98E6RmdMn
         7Vtg==
X-Gm-Message-State: AOJu0YxzaoPJB+dRCXlaY3xACvzc8zseDlFoKviMAssHGDyhBTPX/KQZ
	4RNsB7Dg8YsXKCpxzUccE9IJkVmuDm6yZpx68+k9
X-Google-Smtp-Source: AGHT+IGcBRKU2dSB5D8sUGNOUoaSiSNKE7NlsPYyfuNQ1ERkHPkIslOcuxr1navTs2U0Of+A5dtY+Q==
X-Received: by 2002:a5d:6081:0:b0:336:7b79:3caa with SMTP id w1-20020a5d6081000000b003367b793caamr347586wrt.76.1703072679818;
        Wed, 20 Dec 2023 03:44:39 -0800 (PST)
Message-ID: <44d5b692-00af-4dc0-8bfb-a25296499a48@suse.com>
Date: Wed, 20 Dec 2023 12:44:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/7] xen/ppc: Enable bootfdt and boot allocator
Content-Language: en-US
To: Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <aa67a0dacab0e3f39dabeb30e31732d617cadde1.1702607884.git.sanastasio@raptorengineering.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: <aa67a0dacab0e3f39dabeb30e31732d617cadde1.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 03:44, Shawn Anastasio wrote:
> --- /dev/null
> +++ b/xen/arch/ppc/include/asm/setup.h
> @@ -0,0 +1,123 @@
> +#ifndef __ASM_PPC_SETUP_H__
> +#define __ASM_PPC_SETUP_H__
> +
> +#define max_init_domid (0)
> +
> +#include <public/version.h>
> +#include <asm/p2m.h>
> +#include <xen/device_tree.h>
> +
> +#define MIN_FDT_ALIGN 8
> +#define MAX_FDT_SIZE SZ_2M
> +
> +#define NR_MEM_BANKS 256
> +
> +#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,
> +};
> +
> +/* Indicates the maximum number of characters(\0 included) for shm_id */
> +#define MAX_SHM_ID_LENGTH 16
> +
> +struct membank {
> +    paddr_t start;
> +    paddr_t size;
> +    enum membank_type type;
> +};
> +
> +struct meminfo {
> +    unsigned int nr_banks;
> +    struct membank bank[NR_MEM_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

Why does this live here, rather than ...

> +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

... next to this?

> +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;
> +    struct meminfo reserved_mem;
> +    struct bootmodules modules;
> +    struct bootcmdlines cmdlines;
> +    bool static_heap;

Unused field?

> +};
> +
> +extern struct bootinfo bootinfo;
> +
> +/*
> + * setup.c
> + */
> +
> +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);
> +void add_boot_cmdline(const char *name, const char *cmdline,
> +                      bootmodule_kind kind, paddr_t start, bool domU);
> +const char *boot_module_kind_as_string(bootmodule_kind kind);
> +struct bootcmdline * __init boot_cmdline_find_by_kind(bootmodule_kind kind);

No __init please on declarations; section placement attributes make sense only
on definitions (with pretty narrow exceptions).

> --- a/xen/arch/ppc/setup.c
> +++ b/xen/arch/ppc/setup.c
> @@ -1,16 +1,296 @@
>  /* SPDX-License-Identifier: GPL-2.0-or-later */
>  #include <xen/init.h>
>  #include <xen/lib.h>
> +#include <xen/libfdt/libfdt.h>
>  #include <xen/mm.h>
>  #include <public/version.h>
>  #include <asm/boot.h>
>  #include <asm/early_printk.h>
>  #include <asm/mm.h>
>  #include <asm/processor.h>
> +#include <asm/setup.h>
>  
>  /* Xen stack for bringing up the first CPU. */
>  unsigned char __initdata cpu0_boot_stack[STACK_SIZE] __aligned(STACK_SIZE);
>  
> +struct bootinfo __initdata bootinfo;
> +
> +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);
> +}
> +
> +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;

What's the intention behind this (negative) accumulation of "domU"?

> +            return mod;
> +        }
> +    }

And what's the intention behind checking existing modules here (but not
existing command lines higher up in add_boot_cmdline())?

> +    mod = &mods->module[mods->nr_mods++];
> +    mod->kind = kind;
> +    mod->start = start;
> +    mod->size = size;
> +    mod->domU = domU;
> +
> +    return mod;
> +}
> +
> +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";
> +    default: BUG();
> +    }
> +}
> +
> +/*
> + * 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;

Pointless initializers? (The variables might benefit from moving into
the more narrow scope anyway.)

> +    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

I for one consider such an "else" misleading.

> +        {
> +            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with"
> +                   " mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n", region_start,
> +                   region_end, i, mod_start, mod_end);
> +            return true;
> +        }
> +    }
> +
> +    return false;
> +}
> +
> +/*
> + * 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(struct meminfo *meminfo,
> +                                         paddr_t region_start,
> +                                         paddr_t region_size)
> +{
> +    paddr_t bank_start = INVALID_PADDR, bank_end = 0;

As above: Pointless initializers? (The variables might benefit from moving
into the more narrow scope anyway.)

> +    paddr_t region_end = region_start + region_size;
> +    unsigned int i, bank_num = meminfo->nr_banks;
> +
> +    for ( i = 0; i < bank_num; i++ )
> +    {
> +        bank_start = meminfo->bank[i].start;
> +        bank_end = bank_start + meminfo->bank[i].size;
> +
> +        if ( 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);

I think this is confusing to read: When the format string already needs
wrapping, I don't think the next argument should be put on the same line.
I was almost going to complain that arguments don't fit the format string.

> +            return true;
> +        }
> +    }
> +
> +    return false;
> +}
> +
> +/*
> + * 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)
> +{
> +    /* Check if input region is overlapping with bootinfo.reserved_mem banks */
> +    if ( meminfo_overlap_check(&bootinfo.reserved_mem,
> +                               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;
> +}
> +
> +/*
> + * Return the end of the non-module region starting at s. In other
> + * words return s the start of the next modules after s.

Stray " s" after "return"?

> + * 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;

const?

> +    paddr_t lowest = ~(paddr_t)0;
> +    int i;

unsigned int?

> +    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;
> +}
> +
> +static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
> +                                         void (*cb)(paddr_t ps, paddr_t pe),
> +                                         unsigned int first)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0 ; i < bootinfo.reserved_mem.nr_banks; i++ )
> +    {
> +        paddr_t r_s = bootinfo.reserved_mem.bank[i].start;
> +        paddr_t r_e = r_s + bootinfo.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);

What's the reason for this recursion? Can there be overlapping regions?
If so, is there a guaranteed depth limit (seeing in particular that
you're not using the last function parameter)?

> +            return;
> +        }
> +    }
> +
> +    cb(s, e);
> +}
> +
> +/*
> + * 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)

This function looks to be unused?

> +{
> +    struct bootcmdlines *cmds = &bootinfo.cmdlines;
> +    struct bootcmdline *cmd;
> +    int i;

unsigned int?

> +    for ( i = 0 ; i < cmds->nr_mods ; i++ )
> +    {
> +        cmd = &cmds->cmdline[i];
> +        if ( cmd->kind == kind && !cmd->domU )
> +            return cmd;
> +    }
> +    return NULL;
> +}
> +
> +/*
> + * Populate the boot allocator. Based on arch/arm/setup.c's
> + * populate_boot_allocator.
> + * All RAM but the following regions will be added to the boot allocator:
> + *  - Modules (e.g., Xen, Kernel)
> + *  - Reserved regions
> + */
> +static void __init populate_boot_allocator(void)
> +{
> +    unsigned int i;
> +    const struct meminfo *banks = &bootinfo.mem;
> +    paddr_t s, e;
> +
> +    for ( i = 0; i < banks->nr_banks; i++ )
> +    {
> +        const struct membank *bank = &banks->bank[i];
> +        paddr_t bank_end = bank->start + bank->size;

Since you already make use of inner scope variables, and reason not
to put s here and ...

> +        s = bank->start;
> +        while ( s < bank_end )
> +        {
> +            paddr_t n = bank_end;

... e even here (each then gaining an initializer as well)?

> +            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.

Nit: "not"?

> +             */
> +            if ( e > bank_end )
> +                e = bank_end;
> +
> +            dt_unreserved_regions(s, e, init_boot_pages, 0);
> +
> +            s = n;
> +        }
> +    }
> +}
> +
>  void setup_exceptions(void)
>  {
>      unsigned long lpcr;
> @@ -24,6 +304,8 @@ void __init noreturn start_xen(unsigned long r3, unsigned long r4,
>                                 unsigned long r5, unsigned long r6,
>                                 unsigned long r7)
>  {
> +    void *boot_fdt;

const?

> @@ -32,11 +314,16 @@ void __init noreturn start_xen(unsigned long r3, unsigned long r4,
>      else
>      {
>          /* kexec boot protocol */
> -        boot_opal_init((void *)r3);
> +        boot_fdt = (void *)r3;

And then here as well, to avoid Misra complaints.

> +        boot_opal_init(boot_fdt);
>      }
>  
>      setup_exceptions();
>  
> +    boot_fdt_info(boot_fdt, r3);
> +
> +    populate_boot_allocator();
> +
>      setup_initial_pagetables();
>  
>      early_printk("Hello, ppc64le!\n");
> --- a/xen/common/device-tree/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -543,12 +543,33 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>      if ( ret < 0 )
>          panic("No valid device tree\n");
>  
> -    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
> -
>      ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
>      if ( ret )
>          panic("Early FDT parsing failed (%d)\n", ret);
>  
> +    /*
> +     * Add module for the FDT itself after the device tree has been parsed. This
> +     * is required on ppc64le where the device tree passed to Xen may have been
> +     * allocated by skiboot, in which case it will exist within a reserved
> +     * region and this call will fail. This is fine, however, since either way
> +     * the allocator will know not to step on the device tree.
> +     */
> +    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
> +
> +    /*
> +     * Xen relocates itself at the ppc64 entrypoint, so we need to manually mark
> +     * the kernel module.
> +     */
> +    if ( IS_ENABLED(CONFIG_PPC64) ) {

Nit (style): Brace placement.

> +        paddr_t xen_start, xen_end;
> +
> +        xen_start = __pa(_start);
> +        xen_end = PAGE_ALIGN(__pa(_end));
> +        if ( !add_boot_module(BOOTMOD_XEN, xen_start, xen_end, false) )
> +            panic("Xen overlaps reserved memory! %016lx - %016lx\n", xen_start,
> +                xen_end);
> +    }

I'll need to leave commenting on this to the DT maintainers.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:46:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:46:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657719.1026762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFv1V-0007cI-1H; Wed, 20 Dec 2023 11:46:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657719.1026762; Wed, 20 Dec 2023 11:46:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFv1U-0007cB-Ux; Wed, 20 Dec 2023 11:46:00 +0000
Received: by outflank-mailman (input) for mailman id 657719;
 Wed, 20 Dec 2023 11:45: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 1rFv1T-0007c5-RR
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:45: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 1rFv1T-0003MM-5g; Wed, 20 Dec 2023 11:45:59 +0000
Received: from 82-132-247-3.dab.02.net ([82.132.247.3] helo=[172.20.10.6])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFv1S-0001wA-SX; Wed, 20 Dec 2023 11:45: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=/MHrDg5DFDCvuvVG2F/x2y8OD7kkp7mtLuhQmgeqH8Y=; b=j7V19qZLlr/X1Xt3FeNKuD134x
	7A7rxByT+dLfsFahgiXsR1Wl1Meo9pAhUkdrsfHh81yHuvOnMVuen5C2pvxOGMMwRmOQQicGR7uqP
	/ohjx/vSCLz45tmprhKXKWumHqdzoJ26CH7q2Y+5wCzlQm1B9dWiBS/5ZtqfPMKMdArI=;
Message-ID: <346bd9a1-60c1-42e8-8b2d-2813884c2b21@xen.org>
Date: Wed, 20 Dec 2023 11:45:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 3/7] xen/arm: guest_walk: address violations of MISRA
 C:2012 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.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.1703066935.git.federico.serafini@bugseng.com>
 <98175f394c2c8078a864071aacef04b8d9e1cb6a.1703066935.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <98175f394c2c8078a864071aacef04b8d9e1cb6a.1703066935.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 20/12/2023 11:03, Federico Serafini wrote:
> Add missing break statements to address violations of Rule 16.3
> ("An unconditional `break' statement shall terminate every
> switch-clause").
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:48:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657727.1026772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFv3h-0008Dq-DR; Wed, 20 Dec 2023 11:48:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657727.1026772; Wed, 20 Dec 2023 11:48: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 1rFv3h-0008Dj-Ad; Wed, 20 Dec 2023 11:48:17 +0000
Received: by outflank-mailman (input) for mailman id 657727;
 Wed, 20 Dec 2023 11:48: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFv3g-0008Dd-9A
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:48:16 +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 a8f6d805-9f2d-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 12:48:15 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-336746c7b6dso1268867f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 03:48:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 v16-20020adfe4d0000000b0033672cfca96sm4028529wrm.89.2023.12.20.03.48.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 03:48:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8f6d805-9f2d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703072895; x=1703677695; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=YLs4UbTIIcuMMSSsC1n2hJNQp8t7X0M+7asw5mv30xU=;
        b=V0WByl6Cz26DHBxYv6xVVWBYxwjbFzF/3K7i4kwi5AezFmBLBaNsK8op3Uf7WjASBi
         RTRwqXV0QQIYpW/rC8K4gP6GiElRFCEvNt0jB72zNCaxdi9rvit+jlVTNj6i3NAnjs8P
         0R/MoPG0x44Ud6ZEMEK+rwlPnet2TdmoQaiyZmmD36XeLQ/CXsQWn0xNuH6dumgUSrux
         ixtjukZvTquAjB4qRWu80acEbdKJxPc1uaH44uIsfLUaNGgawfY9CKOoFqG8cBjwQbk2
         kA58uAvDXVvS+Ek4p5vudpJTVlwXdkEesa5vSBHvdkoUMwz9AjLm2ElLcCGeBZjVm38K
         Q53Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703072895; x=1703677695;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=YLs4UbTIIcuMMSSsC1n2hJNQp8t7X0M+7asw5mv30xU=;
        b=avI+MX0WWkSTE7xocmbwmjlvKL4SgR6bOZgatzV6S1ReC87XXzBxOLJ0vDI2WiHoJb
         qJtWzHc51vaQshzzMS1E0ZwdB8NDyoLz9Piu1TrhsGQ4HfoQStBenZZ1Y92M2mVrgc6l
         RCaPwVmFRit4i0xyKM4cE4ZZ1ROnKt2VYFrZAKv7NWbbxmOirqM6avhsL7YawpSqSws4
         m+xNPZpZRg4z5wLkmnvo84ZFQDEzsgkhqEE6Lcj3j/at2JFZ8DWKzEGOhV5J+xkhhg6y
         8hZQ0bCM4cyIWCZI9XipBOGB7nQOd5LfVrJXYoDTloTqQCugOdrS0JSY2hEJ2EAisyNv
         ax6w==
X-Gm-Message-State: AOJu0Yw4umnoB0ANlLkTzkcs2d3yrMvhVh99CAL1dLgx7TCEreX/v/qF
	tS1qq96ppGRx4kZf7A230aCUGMOLzmtiRvjleRUc
X-Google-Smtp-Source: AGHT+IE6cYKTdxMcfTC2wwDw8VyA2tKqlxihN5hzLzbyRryFFEMC3VTrvhK6uqMatm9ACcJingioRA==
X-Received: by 2002:a5d:63d2:0:b0:336:5a95:8f4 with SMTP id c18-20020a5d63d2000000b003365a9508f4mr1657417wrw.37.1703072894896;
        Wed, 20 Dec 2023 03:48:14 -0800 (PST)
Message-ID: <002559fc-e57c-48e2-b99d-db352c2fdf60@suse.com>
Date: Wed, 20 Dec 2023 12:48:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/7] xen/ppc: mm-radix: Replace debug printing code
 with printk
Content-Language: en-US
To: Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <a45e841068ef66cc8c1d836a2452910fd3effd50.1702607884.git.sanastasio@raptorengineering.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: <a45e841068ef66cc8c1d836a2452910fd3effd50.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 03:44, Shawn Anastasio wrote:
> Now that we have common code building, there's no need to keep the old
> itoa64+debug print function in mm-radix.c
> 
> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>

Looks okay, just one question:

> --- a/xen/arch/ppc/mm-radix.c
> +++ b/xen/arch/ppc/mm-radix.c
> @@ -15,6 +15,12 @@
>  
>  void enable_mmu(void);
>  
> +#ifdef NDEBUG
> +#define radix_dprintk(...)
> +#else
> +#define radix_dprintk(msg, ...) printk(XENLOG_DEBUG msg, ## __VA_ARGS__)
> +#endif

Do you really mean NDEBUG here, and not CONFIG_DEBUG? NDEBUG is generally
supposed to only control ASSERT() behavior.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:48:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:48:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657731.1026781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFv43-0000Dx-L2; Wed, 20 Dec 2023 11:48:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657731.1026781; Wed, 20 Dec 2023 11:48: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 1rFv43-0000Dq-IR; Wed, 20 Dec 2023 11:48:39 +0000
Received: by outflank-mailman (input) for mailman id 657731;
 Wed, 20 Dec 2023 11:48:38 +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 1rFv42-0000DU-EP
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:48:38 +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 1rFv41-0003QO-VG; Wed, 20 Dec 2023 11:48:37 +0000
Received: from 82-132-247-3.dab.02.net ([82.132.247.3] helo=[172.20.10.6])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFv41-0002By-Ni; Wed, 20 Dec 2023 11:48:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=pxCChW35No+rJfSSfjI+Wshm5ryTpscDxnxYa6d2I6A=; b=Xd23ur7cLnXXFXcg0EMk8QjT/n
	ytXmOeBm6C0yrA90wwC5YEGdv12ldQfc6yyv1iMGR2jpNLjjhesxDCy6PWtyhRLTFa7u937KUssgS
	VqfCzZOKFzO8+H85smEdjUlvbNInmRhhEQQEGLx/VPDW8a3YcGEZUeABT9zCNY5Ov54I=;
Message-ID: <0200354e-08b9-4136-b6e9-3220a51256af@xen.org>
Date: Wed, 20 Dec 2023 11:48:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.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.1703066935.git.federico.serafini@bugseng.com>
 <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Federico,

On 20/12/2023 11:03, Federico Serafini wrote:
> Refactor of the switch-clauses to have a return statement at the end.
> This satisfies the requirements to deviate Rule 16.3 ("An unconditional
> `break' statement shall terminate every switch-clause).
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>   xen/arch/arm/arm64/vsysreg.c | 4 ++--
>   xen/arch/arm/vcpreg.c        | 4 ++--
>   2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
> index b5d54c569b..247f08ad8d 100644
> --- a/xen/arch/arm/arm64/vsysreg.c
> +++ b/xen/arch/arm/arm64/vsysreg.c
> @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
>           /* RO at EL0. RAZ/WI at EL1 */
>           if ( regs_mode_is_user(regs) )
>               return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
> -        else
> -            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
> +
> +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);

I don't 100% like this change (mostly because I find if/else clearer 
here). But I have the feeling any other solution would probably be 
worse. So:

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:49:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:49:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657734.1026791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFv4X-0000pc-TN; Wed, 20 Dec 2023 11:49:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657734.1026791; Wed, 20 Dec 2023 11:49: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 1rFv4X-0000pV-Qg; Wed, 20 Dec 2023 11:49:09 +0000
Received: by outflank-mailman (input) for mailman id 657734;
 Wed, 20 Dec 2023 11:49:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFv4W-0000p6-8U
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:49:08 +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 1rFv4V-0003R3-Fg; Wed, 20 Dec 2023 11:49:07 +0000
Received: from 82-132-247-3.dab.02.net ([82.132.247.3] helo=[172.20.10.6])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFv4V-0002By-7O; Wed, 20 Dec 2023 11:49: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=4o35s/+1tpAvM3F16YfHO30B/qslnLTLpXwu3BgjKsU=; b=hEy4ErDdjI+Umhk8y1OK0N6teE
	I2Jw+YaZwCRvV7urgrZgBfF7/0OwpcbkwwvcFssxueAr7xAPITl1T0oSyqDWQSq5pFQCyrf0QXqJ7
	9acf7JY/JgOyGUBIkTpf5a8ON8+ctg0cDwQvXMds1piAvljWbuFOnjthjjY75Kba1H5s=;
Message-ID: <0b26cab9-8422-4f5f-ab96-b64a4afbdb24@xen.org>
Date: Wed, 20 Dec 2023 11:49:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 7/7] xen/arm: smmu-v3: address violations of MISRA
 C:2012 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <93d32bf20bb85b93618be5140edb1be527606b77.1703066935.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <93d32bf20bb85b93618be5140edb1be527606b77.1703066935.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Federico,

On 20/12/2023 11:03, Federico Serafini wrote:
> Add a break statement at the end of the switch-clauses to address
> violations of MISRA C:2012 Rule 16.3 ("An unconditional `break'
> statement shall terminate every switch-clause").
> No funtional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:49:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:49:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657738.1026802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFv4x-0001Wg-5u; Wed, 20 Dec 2023 11:49:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657738.1026802; Wed, 20 Dec 2023 11:49:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFv4x-0001WX-3I; Wed, 20 Dec 2023 11:49:35 +0000
Received: by outflank-mailman (input) for mailman id 657738;
 Wed, 20 Dec 2023 11:49: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 1rFv4w-0001WE-2j
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:49: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 1rFv4v-0003S9-GF; Wed, 20 Dec 2023 11:49:33 +0000
Received: from 82-132-247-3.dab.02.net ([82.132.247.3] helo=[172.20.10.6])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFv4v-0002By-7c; Wed, 20 Dec 2023 11:49:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=IN4CIVzThZOVZSDXbDlj6tvK/UKh6fNqP6Wui7mmzqA=; b=MqNkX7F0xb5HZKGWt7tDyYBVov
	74Yk7QPBmVe4uNml/vvtE5QZDLXOxLyMsQsjj2gm0ulyQyBntYhcyln2nXOhHiqs2zfyHMwzfmcoz
	aF82qHlNE2e+boU2i03CTx7FpcocDSxTdHrcvji+BEPM+ZgZw1I4C4I95+TyHdNTgeqg=;
Message-ID: <1d61edeb-e0e0-4223-9000-9aa5554fe4fb@xen.org>
Date: Wed, 20 Dec 2023 11:49:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 6/7] xen/arm: mmu: address a violations of MISRA
 C:2012 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.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.1703066935.git.federico.serafini@bugseng.com>
 <92740a979c4d3a19d7c76ff69b90ab211049448e.1703066935.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <92740a979c4d3a19d7c76ff69b90ab211049448e.1703066935.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Federico,

On 20/12/2023 11:03, Federico Serafini wrote:
> Add missing break at the end of the switch-clause to address a
> violation of MISRA C:2012 Rule 16.3 ("An unconditional `break'
> statement shall terminate every switch-clause").
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:53:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:53:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657747.1026811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFv8h-00047R-Ko; Wed, 20 Dec 2023 11:53:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657747.1026811; Wed, 20 Dec 2023 11:53: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 1rFv8h-00047K-IK; Wed, 20 Dec 2023 11:53:27 +0000
Received: by outflank-mailman (input) for mailman id 657747;
 Wed, 20 Dec 2023 11:53:26 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFv8g-00047E-79
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:53:26 +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 1rFv8f-0003Xm-FO; Wed, 20 Dec 2023 11:53:25 +0000
Received: from 82-132-247-3.dab.02.net ([82.132.247.3] helo=[172.20.10.6])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFv8f-0002L3-8T; Wed, 20 Dec 2023 11:53:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=0YP6kYRpZoc3bS+mdJ3p54xJAiVFhVSSQCkSJuUBLok=; b=v1tdwLkEt48eznNNhKifTiaaaT
	/8pkJ1MfAuoGepqWQtD6Sw2LMZ0tyFAy9vrxz5GV8MY5yIBvESguGWcjAz5sl5W8LcyjvMrFeDZum
	0bGiTvPEFIStUvRNPODQu9rM+IUIV0neaoIcB8LWp8S5p8J1FnaMyezta/e4Dm26PWcA=;
Message-ID: <929aea0c-722e-46fe-aee4-a5c87ad22bd4@xen.org>
Date: Wed, 20 Dec 2023 11:53:21 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 4/7] xen/arm: mem_access: address violations of MISRA
 C:2012 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.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.1703066935.git.federico.serafini@bugseng.com>
 <d7a015aaa54fb4722d4970f0f40789efe4d994f9.1703066935.git.federico.serafini@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <d7a015aaa54fb4722d4970f0f40789efe4d994f9.1703066935.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Federico,

On 20/12/2023 11:03, Federico Serafini wrote:
> Refactor of the code to have a break statement at the end of the
> switch-clause. This addresses violations of Rule 16.3
> ("An unconditional `break' statement shall terminate every
> switch-clause").
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>   xen/arch/arm/mem_access.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/arm/mem_access.c b/xen/arch/arm/mem_access.c
> index 31db846354..fbcb5471f7 100644
> --- a/xen/arch/arm/mem_access.c
> +++ b/xen/arch/arm/mem_access.c
> @@ -168,10 +168,10 @@ p2m_mem_access_check_and_get_page(vaddr_t gva, unsigned long flag,
>            * If this was a read then it was because of mem_access, but if it was
>            * a write then the original get_page_from_gva fault was correct.
>            */
> -        if ( flag == GV2M_READ )
> -            break;
> -        else
> +        if ( flag != GV2M_READ )
>               goto err;
> +
> +        break;

On both hunks, I find the original version better as it is easier to 
match with the comment. I also understand that it wouldn't be great to 
add a deviation for this construct. So maybe we should tweak a bit the 
comment?

Anyway, this code is maintained by Tamas, so I will let him confirm 
which version he prefers.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 11:55:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 11:55:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657750.1026823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFvAh-00054k-2d; Wed, 20 Dec 2023 11:55:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657750.1026823; Wed, 20 Dec 2023 11:55: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 1rFvAg-00054d-Tl; Wed, 20 Dec 2023 11:55:30 +0000
Received: by outflank-mailman (input) for mailman id 657750;
 Wed, 20 Dec 2023 11:55: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=m81q=H7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rFvAf-00054T-MH
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 11:55:29 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa5041f6-9f2e-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 12:55:27 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c6e2a47f6so57722705e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 03:55:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j8-20020a05600c190800b0040c11fbe581sm7139023wmq.27.2023.12.20.03.55.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 03:55:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa5041f6-9f2e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703073326; x=1703678126; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=FjYflLFl4JlqHisJ3gQLEdhkT8vvEyla0LhlslTZ4Go=;
        b=aUTUmSeRoZc1hgISAxR9yoln4lgO9G4eOtU9p67nEski7y8ufcqYdSp3rKxNZT4y5C
         A/WX0ZN9sIa3sYJFDQz1ia3wdDS//SV9GSSKqXeuvbFRubspBBQolqU0rF8GRHqG3nwL
         TdcBBHHl4YTYvP4FSeoXMGxR2yHu2qaPH+Q4Jf0q2QQfRvYeCzkQZW2WV+Unmn3krN/k
         Cb+aSq7XODj2W6SIwpvRwq+XouQuy2VkWMeHs0vZYz0XJoYybwnXNGT6r6SkssW3MO6l
         cHSsMQooitXz66H86Ir9xtoE5s4gfFiTpMVRiXA8lKpNhoRWvtwmTaBWlH36vbxLuR/3
         0hsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703073326; x=1703678126;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=FjYflLFl4JlqHisJ3gQLEdhkT8vvEyla0LhlslTZ4Go=;
        b=YusHSIz9sd8hKBbGohddHY1y1V8Z+jvNyaZFVpeXvRYwp6SInVNXf2WGPdbkgkyBH7
         aeg2URUuOtHMSkO6dSazjE1GT7XhkZzHywaa4aM6su7hMhRgtPPSOFyH0a/rlc0KNThN
         iNgD8cHiG86NDr72AAiN32gflxUWciVHkjFmukFSf6tbZ6YJLlaUxMTjRHr222GEYBf9
         4caWB50JJyxSKd2rCTpkfYxsnFV3BOdACjRxBKYABsDmvZNRACvQuDcVK5SU50E/PbfJ
         UE8GntBbOBXVAHsRYLqVKXVxvoGCGa3HXRWPygfIO+IL1djfDvIIaLTCgFNxTUJbjpLd
         o+CQ==
X-Gm-Message-State: AOJu0YxheIUCvdXOYqWjyrx0MYx5BS2LGQMu8sq39XcSEKL4UXv3In/d
	f9xATIJbHziQ5l+38swvtErS
X-Google-Smtp-Source: AGHT+IHLRsIA77xzW4f9n6d50qWHbigAh8ICDdEbqVsExtDU8XqbYVJtt6nOgwsnJL+HeeGPwFfnhw==
X-Received: by 2002:a05:600c:ccf:b0:40d:2f89:2e03 with SMTP id fk15-20020a05600c0ccf00b0040d2f892e03mr475433wmb.99.1703073326526;
        Wed, 20 Dec 2023 03:55:26 -0800 (PST)
Message-ID: <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
Date: Wed, 20 Dec 2023 12:55:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
Content-Language: en-US
To: Julien Grall <julien@xen.org>,
 Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com>
 <0200354e-08b9-4136-b6e9-3220a51256af@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0200354e-08b9-4136-b6e9-3220a51256af@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 12:48, Julien Grall wrote:
> On 20/12/2023 11:03, Federico Serafini wrote:
>> --- a/xen/arch/arm/arm64/vsysreg.c
>> +++ b/xen/arch/arm/arm64/vsysreg.c
>> @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
>>           /* RO at EL0. RAZ/WI at EL1 */
>>           if ( regs_mode_is_user(regs) )
>>               return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
>> -        else
>> -            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>> +
>> +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
> 
> I don't 100% like this change (mostly because I find if/else clearer 
> here).

While (it doesn't matter here) my view on this is different, I'm still
puzzled why the tool would complain / why a change here is necessary.
It is not _one_ return statement, but there's still (and obviously) no
way of falling through.

> But I have the feeling any other solution would probably be 
> worse.

Use the conditional operator?

Jan

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



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 12:15:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 12:15:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657764.1026832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFvTu-0002ZH-R1; Wed, 20 Dec 2023 12:15:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657764.1026832; Wed, 20 Dec 2023 12: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 1rFvTu-0002ZA-Nn; Wed, 20 Dec 2023 12:15:22 +0000
Received: by outflank-mailman (input) for mailman id 657764;
 Wed, 20 Dec 2023 12:15: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=xJf5=H7=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1rFvTs-0002Z4-Pl
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 12:15:20 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20607.outbound.protection.outlook.com
 [2a01:111:f400:fe59::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 707442fd-9f31-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 13:15:19 +0100 (CET)
Received: from SN6PR12MB2621.namprd12.prod.outlook.com (2603:10b6:805:73::15)
 by DM4PR12MB5865.namprd12.prod.outlook.com (2603:10b6:8:64::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Wed, 20 Dec
 2023 12:15:16 +0000
Received: from SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1]) by SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1%7]) with mapi id 15.20.7113.019; Wed, 20 Dec 2023
 12:15: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: 707442fd-9f31-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KpapZa+/whCzlLsZkQJ+CxuvjLURJO+mk46iub3bh6BOqADZf5QGz2mavLQmQ9FusFaloozMUXVIKjHhGY7s1Mb1OO7KyEtU+04fgy7xRpHJ5L+DxZkuLVQhNCXM5DRhqs6n0sflxZAHL+cCq3b0Zh8Q0w/CKfKCDGUYgErgb0AaB86qe2D5ODFknjMnzInr23M56YG92tKKWLBJ/4j4ytUWtROYSXhHkrzNAZxUyecqt1EkTZXtLZYP4gM45h/3t9XwgfN/f/oBY23EZ2GRffkpwxwbibaiyiIPYTdfvcN1vFBciWSg8mnzcWR2tzcwQmsy07u2eEbf/hDLX6kjnw==
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=bSPdmTySxMdDvCivwvw3SCHwQluQFzir4+IwY01BAgw=;
 b=lz8ZZAJxkHnUvm3DA2MrN8Axz//FIl0e6M3IJkOquWyLSIxGKCla077Y9CmiqcllXdqIipWiesGJdxMaT5rAjfBAj0+LH7T7M0Z6Bm55YTLQxf3kreHLyPWbQYbyR6iuI6NaWRRgqRnPO5zbnRRQNBY4eqrRQYf/0IINdTopi5ZWtfEA/lInO7Tavw1ujKLmehzhZquG0glyuMgiE4Cf9KLOyzF8eNGUpxdLgMQZoeZegU4rIHO8peElgF16fG+N2b7nGRo+CBHDZez7wImvTKHuse0kEN1Lya3uRPEuRNJtgpv4/QD8vf1f1aP4pz7rBwgAouKRHh5Yy9USZo87pw==
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=bSPdmTySxMdDvCivwvw3SCHwQluQFzir4+IwY01BAgw=;
 b=fMjhpbaln8PZ63hYABFfo6ybTR/4qH2fFt0dSUMja6w6GQZ3usqRbtxV7gLLwJDyzkFCfraPSXPY1ZcA+TiB7B2JNq6d/4JmsgJZCnYHK1Inp8+BsS/lMdvD9xYMQYtOrcG+U5kk6h0aHp9YwZoFWO0dgMB764WqL2oYqbzHCas=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <34f3342a-b86e-4e74-bfba-d55e0de55600@amd.com>
Date: Wed, 20 Dec 2023 12:15:10 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
 "michal.orzel@amd.com" <michal.orzel@amd.com>,
 "Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>,
 "stefano.stabellini@amd.com" <stefano.stabellini@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20231218202959.1390114-1-ayan.kumar.halder@amd.com>
 <F1A640BE-0CDC-4026-BBB3-637ABE7D996C@arm.com>
 <5E9E5368-8AD3-490E-8034-78F5BAF23006@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <5E9E5368-8AD3-490E-8034-78F5BAF23006@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0011.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:62::23) To SN6PR12MB2621.namprd12.prod.outlook.com
 (2603:10b6:805:73::15)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN6PR12MB2621:EE_|DM4PR12MB5865:EE_
X-MS-Office365-Filtering-Correlation-Id: 2b3e5af9-36ee-44e8-8cba-08dc015552d9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	bl8QheDsTLahIVpOxzu3yb4PbSFonlFVcwP2ep9CiieoNNZN9xZHQUpvE8PtrWsaKpv1z3Zj+lPID7D3rnNzUsrQ6q7Z6QEJh9YnK6/cNbphd5AO1rqJJlv4hm2E1yelXG4rObdIss83S/IaMFHTnn0u2/9DwAg7NUaoIWBpupyX8mMYLpL0OlEWZNRIqaXx8NMXfrFWpnf2x8vq48I+KuCVgySMsuGop7JPv3sDiaxeSdbbA1gZ8R2DzEQS2Bq0G9EkslQGYZJxnCMPMYNG3VMMqBir8ulu3aIg0BocKfx9NYbY0eig5P1Ii8E+7y0n1cMaPVlPlP/drwR6R/oIsiSjv5L/BwSXWHPOuVkRZO8LMmzxg2rKaCoblS0tTMnWwkyCvKSjIZ6E5iKM3P4vLjFOqqOkLS/Xa4Us1OmysPDEmakFwlUoDrgGd3cGk6GXL6NmifWdW6htDxmeKr8FwN8V0IEoVUeVTkaHKCBystz75Nub9gbi8SgzCE34tZn/w5n6dTx+e5XZZZTulsWfPVMYbuDqINdGi79iudiQEGi4rpwJti1G292Psmdo+s+WcR4EYA7SeVpSPNuHyJXW1GOEzGDrq0/TIsZ7me1nSeHi8e5NwRyd50QPgGaYE73jd8gfzRFT09C+whOjKi8Ctg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR12MB2621.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(136003)(366004)(376002)(396003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(31686004)(26005)(6512007)(83380400001)(2616005)(31696002)(36756003)(38100700002)(4326008)(5660300002)(53546011)(6506007)(6486002)(6666004)(2906002)(8676002)(8936002)(66556008)(6636002)(66946007)(66476007)(316002)(54906003)(110136005)(41300700001)(478600001)(966005)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VTFBVnZQRmwyaE8xbGNDRVByYlYySUV2S1djeGhSMWlONktSRkEyWlBwbHVy?=
 =?utf-8?B?eTZvTGhVdXd0TG1wcmVwYi90bFFJTkMvaXRBSXZNN2lUWDFEU25teEc1UUZO?=
 =?utf-8?B?QjNTQ2hLYjBHb2JXODhwQ21OTVpOOEpTdXhwOE5pYW05TzZsZlVIejVCNUQv?=
 =?utf-8?B?bTd4aU14ditCMUJLZHcxR0lhZ1I5QjhXYlF4WDNHemViMFNLQW1seDc2RFF2?=
 =?utf-8?B?SzQwc2FucXFGWklYRWl4aUc1NDJ2UWpsQkVobmZwQkVtUk5QNjVwZ1d6Q2c5?=
 =?utf-8?B?cGpQamdnVys2UUZmRElza1Z5OTJtRk9UZTJGanFjNE5lWUE4WFJNSWpQejZ0?=
 =?utf-8?B?NEpDYkQ4WklxTjE1Q0VpcFNldmhuZGJtSE1WVlBLajJ3bE5scnoyUjFRTGVx?=
 =?utf-8?B?QUYzWlRqUm8vbUp4WFNNZjBYbTIxZWFkVExlekV6VkE4b0h6OFdhd0h6bmtO?=
 =?utf-8?B?dndzTHBmU1pjQ1ZOK0xrTTJHYytDc3F3UHY0OFY3cU8ybFRONVYvNFVIdTI3?=
 =?utf-8?B?ZTdFeEZoQ3FtYitJSGJ6VVhoWDJWNVhkSFVpNXFYTFJqTlo0a1ZnQTlOZ3dQ?=
 =?utf-8?B?NDZKeVRMMlpOWEwyV0Y2MjV1WCtGcWowR1FpZlhza3FmRTVNVlBSbElHV3V4?=
 =?utf-8?B?SkcvWlhTZUFkUWFDS3dMdHQxRFBFeVowM0J0cHlyRVNzSVMxeWNGdVNvVzBP?=
 =?utf-8?B?RGcrT2NIYzN1djVpS3VwWlhjaC82ZTBHSm5vblErT2J5cVZ2SGFWUTc0cUtL?=
 =?utf-8?B?V256VlkyeFExSXQ4alhqTStYZ3ZYaXB5VzRoMTI3dXFtMm13UjNHSXd5L1FM?=
 =?utf-8?B?akVONXhJaFVLU05ROFBxcm5EL2ZyUzd6UjZkR0N6OW5xWDBielRPa0ZMQjh5?=
 =?utf-8?B?dmhBSXpxM0V0SDIrVFpvV1JMcGVzb3o2bEw1MzdBNTJPK0xPN3NKODRRb1Jk?=
 =?utf-8?B?UnVsa05LeS8vNEwyVFJQL3B4bzZPL2tCazQzUVRQd29KRVhHcjRzaTNLcTdh?=
 =?utf-8?B?Z0I2ZytySDFXRUgyV0xIWi9wVDhRMDhMOFM3NW9wRWJHN2RXdU8xdmJWK295?=
 =?utf-8?B?T25pR3Nxc1pPRE8wV21QazBEK2RqQldLdkNCNW1iNG0zL3hIYlMwNnRJVTFz?=
 =?utf-8?B?Lzd3Y09MQnI1cEozTFlJd2E3ZExHZHZZc2h5OHpnSHhCS1Zkejc1M1pPQVNx?=
 =?utf-8?B?T1FwVysxWTVVaS9NQ0E1OXFISXpTMXBlbHcwSzUrTVdKMC9SYkhxN0R1dXov?=
 =?utf-8?B?SFJSeVZna3dyMzB5elRPeUIrZisrcXVjRzNpN1BwVS9KMGJodWJZYmZWWmxn?=
 =?utf-8?B?ZlBPVG9TZDVPNUpBU3JIdFFUUzVPaXR4cythQ0hCL0pUQlJ3OEhPOXIrRDho?=
 =?utf-8?B?b2FRa29HcWd1aHV2NS9ueEdCd1lsNWtYUExSTG9hN2ZTZmJicnRhYjMzUHJH?=
 =?utf-8?B?MTZlVjNYSmFqQUt3WGNSMk5JMTFBZzNRRGNDUGtDQ1YzUVlJOFdHUjBoejRy?=
 =?utf-8?B?Z1YxTnI2UjRTT1JVR3hsRG9SRHFiaGRYZVQydkhqOW5PL3ZQd0JGbHIzTFAw?=
 =?utf-8?B?VEpWbGlLdmZ5elhGNjlTU0cyZGlNaE1hcm83dUdoNzBtYkhuOUZYQW1NM1d4?=
 =?utf-8?B?dWVyQlVkSmlwU1NaTDhhUDFYNVRvaTVoWjVpa0FFdmJBbGJraG9TNzRVWjcy?=
 =?utf-8?B?R21velR2dllSZWMwVGozZXpCSmlRc0dsZVk4ZisrSHE1bC9ZeGVEZEZGenZo?=
 =?utf-8?B?ZGtscndpQ0VKbzN1Q2N0YWlnTkt4RDEyRnRpeGFySGFzRVFvUkxQVCs5WExX?=
 =?utf-8?B?c0lYdHFCbG9IUE5oRTRrak5xb09za2UxbWZQcTZhemlmalpUWjR2bU80S1B2?=
 =?utf-8?B?eXNtTmYwdXlKUkpFcVlpOTNhdjBZajFFalByaXhEMXlTWWJqU1hoQUxBcjdJ?=
 =?utf-8?B?TmR6aENMMklUL2lIVEV4Vm9Fa3Z0RzNDejFCUHVIVWNtSlN6R05hZFpUV3pB?=
 =?utf-8?B?WHJLckI2d2tYSWxNUzYrWUYzT2s5L2F6bnZ6akhaSnkrRFRmUWI3U21qdjBt?=
 =?utf-8?B?bGJqUzYvQTk1OUFnenQ4dWRPSnJ3eWdpd1RkWnAxTXZmTUtGdnkwL0J0bkts?=
 =?utf-8?Q?YUekMGOqRTEFwNvKvVQ5AV+4Q?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2b3e5af9-36ee-44e8-8cba-08dc015552d9
X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2621.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 12:15:15.5778
 (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: HavIsQhFNO1TplZfG7KsPfR3qUVSAhx87DzY1fvPDtOEJntbZfQ0364cM+n+rtjMwEPZeKGNk6oSx+uOSPuSAw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5865


On 20/12/2023 09:43, Luca Fancellu wrote:
>
>> On 20 Dec 2023, at 09:29, Luca Fancellu <Luca.Fancellu@arm.com> wrote:
>>
>> Hi Ayan,

Hi Luca,

Thanks for looking into this.

>>
>>> On 18 Dec 2023, at 20:29, Ayan Kumar Halder <ayan.kumar.halder@amd.com> wrote:
>>>
>>> Hi,
>>>
>>> Refer https://lore.kernel.org/all/alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop/T/
>>> for the previous discussion on this issue.
>>>
>>> Also, the linux earlycon hvc driver has been fixed.
>>> See https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git/commit/?h=tty-next&id=0ec058ece2f933aed66b76bd5cb9b5e6764853c3
>>>
>>> Changes from v1:-
>>> 1. Split the change across 3 patches as per the design consensus.
>>>
>>> Ayan Kumar Halder (3):
>>> xen/arm: Add emulation of Debug Data Transfer Registers
>>> xen: arm: Introduce CONFIG_PARTIAL_EMULATION
>>> xen/arm: Introduce "partial-emulation" xen command line option
>> Iâ€™m a bit puzzled about the order of these changes, wouldnâ€™t be better to
>> Introduce the partial emulation Kconfig and command line args in the same
>> patch together with something that uses it?

You have read my mind. :) I wan't sure about how to do the split...

>>
>> I think here you wanted to keep Michal patch untouched, but I feel that a
>> correct split for this serie would be maybe introducing Kconfig, boot args and
>> one of the arm64/arm32 emulation, and on a second patch the other one
>> (Or vice-versa)?
>   ^^^^^^^-----> for the vice-versa, I meant 1st patch Arm64, 2nd Arm32
>   or vice-versa.

I wanted to keep Michal's change for the arm64 as it is. And introduce 
Kconfig and command line in separate patches.

But I agree, it does not look clean.


I am fine to follow your suggestion ie (Option 1)

Patch 1 ---> arm64 changes + Kconfig + cmd_line (authored by Michal)

Patch 2 ---> arm32 changes (which will use the Kconfig and cmd_line 
introduced before)


Alternatively, I am thinking like this (Option 2)

Patch 1 --> arm64 changes (authored by Michal)

Patch 2 --> arm32 changes

Patch 3 ---> Kconfig + cmd_line (which will touch patch 1 and 2).

Let me know what you (+ Stefano, Julien, Bertrand) think about the split.

I don't have a strong preference on how the split should be done.


- Ayan

>> If there is something that Iâ€™m missing let me know.
>>
>>> docs/misc/xen-command-line.pandoc    |  7 +++++
>>> xen/arch/arm/Kconfig                 |  8 +++++
>>> xen/arch/arm/arm64/vsysreg.c         | 32 ++++++++++++++++---
>>> xen/arch/arm/include/asm/arm64/hsr.h |  3 ++
>>> xen/arch/arm/include/asm/cpregs.h    |  2 ++
>>> xen/arch/arm/include/asm/regs.h      |  6 ++++
>>> xen/arch/arm/include/asm/traps.h     |  4 +++
>>> xen/arch/arm/traps.c                 | 21 +++++++++++++
>>> xen/arch/arm/vcpreg.c                | 47 +++++++++++++++++++++++-----
>>> 9 files changed, 117 insertions(+), 13 deletions(-)
>>>
>>> -- 
>>> 2.25.1
>>>
>>>


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 12:15:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 12:15:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657765.1026841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFvUD-0002uP-1v; Wed, 20 Dec 2023 12:15:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657765.1026841; Wed, 20 Dec 2023 12:15:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFvUC-0002uI-VM; Wed, 20 Dec 2023 12:15:40 +0000
Received: by outflank-mailman (input) for mailman id 657765;
 Wed, 20 Dec 2023 12:15:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xS+a=H7=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rFvUC-0002u9-L4
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 12:15:40 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c3c6cd8-9f31-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 13:15:38 +0100 (CET)
Received: from [192.168.1.229] (93-36-216-194.ip62.fastwebnet.it
 [93.36.216.194])
 by support.bugseng.com (Postfix) with ESMTPSA id 92AF24EE0C91;
 Wed, 20 Dec 2023 13:15:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c3c6cd8-9f31-11ee-9b0f-b553b5be7939
Message-ID: <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@bugseng.com>
Date: Wed, 20 Dec 2023 13:15:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>
Cc: consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com>
 <0200354e-08b9-4136-b6e9-3220a51256af@xen.org>
 <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 20/12/23 12:55, Jan Beulich wrote:
> On 20.12.2023 12:48, Julien Grall wrote:
>> On 20/12/2023 11:03, Federico Serafini wrote:
>>> --- a/xen/arch/arm/arm64/vsysreg.c
>>> +++ b/xen/arch/arm/arm64/vsysreg.c
>>> @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
>>>            /* RO at EL0. RAZ/WI at EL1 */
>>>            if ( regs_mode_is_user(regs) )
>>>                return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
>>> -        else
>>> -            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>>> +
>>> +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>>
>> I don't 100% like this change (mostly because I find if/else clearer
>> here).
> 
> While (it doesn't matter here) my view on this is different, I'm still
> puzzled why the tool would complain / why a change here is necessary.
> It is not _one_ return statement, but there's still (and obviously) no
> way of falling through.

The tool is configurable:
if you prefer deviate these cases instead of refactoring the code
I can update the configuration.


>> But I have the feeling any other solution would probably be
>> worse.
> 
> Use the conditional operator?
> 
> Jan
> 
>> So:
>>
>> Acked-by: Julien Grall <jgrall@amazon.com>
>>
>> Cheers,
>>
> 

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 12:27:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 12:27:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657776.1026853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFvfx-0007AY-6B; Wed, 20 Dec 2023 12:27:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657776.1026853; Wed, 20 Dec 2023 12: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 1rFvfx-0007AR-1Q; Wed, 20 Dec 2023 12:27:49 +0000
Received: by outflank-mailman (input) for mailman id 657776;
 Wed, 20 Dec 2023 12:27: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=KgnP=H7=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1rFvfw-0007AL-Be
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 12:27:48 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on20600.outbound.protection.outlook.com
 [2a01:111:f403:260e::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ddd907f-9f33-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 13:27:46 +0100 (CET)
Received: from AM5PR0601CA0073.eurprd06.prod.outlook.com (2603:10a6:206::38)
 by AS4PR08MB7656.eurprd08.prod.outlook.com (2603:10a6:20b:4f2::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Wed, 20 Dec
 2023 12:27:39 +0000
Received: from AM2PEPF0001C70E.eurprd05.prod.outlook.com
 (2603:10a6:206:0:cafe::2d) by AM5PR0601CA0073.outlook.office365.com
 (2603:10a6:206::38) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18 via Frontend
 Transport; Wed, 20 Dec 2023 12:27:39 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM2PEPF0001C70E.mail.protection.outlook.com (10.167.16.202) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7113.14 via Frontend Transport; Wed, 20 Dec 2023 12:27:38 +0000
Received: ("Tessian outbound 7671e7ddc218:v228");
 Wed, 20 Dec 2023 12:27:38 +0000
Received: from 827238329250.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 214473D2-7DFA-4654-8CBB-39EDCA127F24.1; 
 Wed, 20 Dec 2023 12:27:32 +0000
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 827238329250.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Wed, 20 Dec 2023 12:27:32 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com (2603:10a6:208:ff::27)
 by DB4PR08MB9312.eurprd08.prod.outlook.com (2603:10a6:10:3f4::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Wed, 20 Dec
 2023 12:27:29 +0000
Received: from AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e]) by AM0PR08MB3745.eurprd08.prod.outlook.com
 ([fe80::ab65:955d:ff82:80e%3]) with mapi id 15.20.7113.016; Wed, 20 Dec 2023
 12:27:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ddd907f-9f33-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=OAiJ7mVfASqbzvXolgHs6G7gmgWuEEnStMVprNXwuvjHrGyUEKdAvSUJOWLvBzRzyXMgKKaowwEtzJMbP1yLT4Nvv8UrcT/6v2eZ4GEQtGOlN/Ob7s7SFDy/Lf1IPnRJjOIYIlYqtrzKmQNTcnDFkh5H8NxMrB+xgv7fei3wkQjlnlmOzT9CryniRkUAtgirUZ/ZH+qwbOrYjEJ+cGtIVfoThb2hPcouXUXlBlUHYDLeGXIMgvPS1h4Sr33nanlSsDlQqJ18cJRHjcuOsqc6j6VXMJm6IiGpR6UhE2uBWLlOQKZ37c8g6IHLDrRJOEz62MtOn1OKq3BX+G7urjCaRw==
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=nGkhK85WRpALsvbvriQYc0W9/0wp6up+v/Jy1+/wY68=;
 b=dQnyWijAkIaP9957NGuqsJ3uwlGAqqLoY6gWZ6XHVrn692Jta4Hz39i9XE4VTKQxS9S/GeJiBoFOoW49q2MELeWgv5VT4ifLRoG61V8mYa4Ce5LfjJkoJd3qzIikEFsWp5wiPWKZ9gtCUkVJyajJuib4ytvZlKJM1ZBf/sjNgB2h6SUu0+VdB+0+VwqdzRRMQT1fYLVyX7Z1yDIMqPG+lsvjceyJTrNnkyvdcFLmSuQ1zQkso2SNFbcV0UITj96f3GqjvkoLDKM9wGX0b+Umwdhe8eaJZGuVCrX6XhwJBy+nsvl4BZrW24cSK6iPss222hOgAUguyFTIvf7Y1Z4mYg==
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=armh.onmicrosoft.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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nGkhK85WRpALsvbvriQYc0W9/0wp6up+v/Jy1+/wY68=;
 b=Bd0MBOR5waDRNMFJprLwe/rUmGBtfyza4fQwrqh5u86P+keM+vuC6tTE4kJD4e9Fl5GcExUcrZpJ3kmR/pxnkx+R4iFUtE/Q6bPodSTSh1yREIntTqYBKOtlZQ9ymSdCzLXwWYTBsDanfBFjiMI+zPspzmV0g6+Q/Z7zc9Jol6Y=
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=armh.onmicrosoft.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: d68be37f52610cd0
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=a1b3nHDClnjL7JUXou+hl4kQ/OTBhEeI6Fr/9aMh1KO9EIY7LbgPFoLWxNBsqD5Xzt0nGbRZTVue14TVmXLzgob0m9RnLdGesAIKLRwn3A9k/R2sb6GpMu1LN0ULb0I18kVz1/CKZeeLXc4cWBjU0RYjed8JHmsa2Z8MJ9eRO6ICfZ3L98vOetHBqVdiXsXZq0R9sgJgG50aFOBWRb5wkXt/CPVHHJdFeDu1vGHeLteaCOesygFl3Rxp1oPGGrLVgy1QW5SonOLGL4mCqtPtjDHbhh9c3k3OGTUe848WXkJplzUTpFSDdNKCxnaUAXuuV8NWgUtfETxzq3gKloZBSQ==
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=nGkhK85WRpALsvbvriQYc0W9/0wp6up+v/Jy1+/wY68=;
 b=Vs1T5hshrbyx/26Fn4SaB5ODjF4hG5WhAbU1yv07RArvRAjAChX7gFbL3sTRR+B5EHHSGLoLlXjMOPS28y1l5YsxLAqqEVUTPz6Yf1X+3o/tSJtyhTgt/+RSeWCRDVqu4//AhI5t9Ta1irXWlROwG1qt+kDd55jo0wyRNaQ9mqGJP+lCcxegcUtbAJGs5rUGC30SSb6WJcenjtONvcXvfU5/ll+9N7OIK7/xj1pUS0K7pZkIebGP9wfW9erF8omNKS+V32Hbb0modz7noodwpoyVECMvTRTR+58SM4AUU1vGPV01ZhsYm1ZAyHLAVYddU7ma4YKdg13RLWKC2v31sw==
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=armh.onmicrosoft.com;
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nGkhK85WRpALsvbvriQYc0W9/0wp6up+v/Jy1+/wY68=;
 b=Bd0MBOR5waDRNMFJprLwe/rUmGBtfyza4fQwrqh5u86P+keM+vuC6tTE4kJD4e9Fl5GcExUcrZpJ3kmR/pxnkx+R4iFUtE/Q6bPodSTSh1yREIntTqYBKOtlZQ9ymSdCzLXwWYTBsDanfBFjiMI+zPspzmV0g6+Q/Z7zc9Jol6Y=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@amd.com>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, "michal.orzel@amd.com"
	<michal.orzel@amd.com>, "Volodymyr_Babchuk@epam.com"
	<Volodymyr_Babchuk@epam.com>, "stefano.stabellini@amd.com"
	<stefano.stabellini@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Topic: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Thread-Index: AQHaMfEa7o9h58xZgUaSJIw5Lcks+LCx6kEAgAAD4ACAACpXAIAAA2CA
Date: Wed, 20 Dec 2023 12:27:26 +0000
Message-ID: <486E607F-37D1-4D75-864F-533ABEF31ECD@arm.com>
References: <20231218202959.1390114-1-ayan.kumar.halder@amd.com>
 <F1A640BE-0CDC-4026-BBB3-637ABE7D996C@arm.com>
 <5E9E5368-8AD3-490E-8034-78F5BAF23006@arm.com>
 <34f3342a-b86e-4e74-bfba-d55e0de55600@amd.com>
In-Reply-To: <34f3342a-b86e-4e74-bfba-d55e0de55600@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.200.91.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AM0PR08MB3745:EE_|DB4PR08MB9312:EE_|AM2PEPF0001C70E:EE_|AS4PR08MB7656:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b1dfe2d-4d95-4fd2-6509-08dc01570e0c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original:
 swRCw/8d9DvmyKW0rTzC4Pyd7bXVjud49gxLh+MAyc5AUPNBcT7OvITQrlguhHAztzU0V2bQ1zelvtz5FzfiIZs03+wQzsJsoKGiSLgJybGxaw8udrIJBIy4NrPAxK7X2GYRua/m5yN1b52tpyqhTBtb5SXlLhLP3IzJi1n9UkzDsO6tVFj3GWq8Ijbbzfhy6wRpj0yqPGK3+FNngibMmonOcSEB9tFo2pwGdK8p9xOkbyB4tOty2FIjpZi2eCCWhHuWX2PkxEDEL0E6AhOJ7Mdis5xuqJ5IAwjyerz/Cj6UdO9hY/1hWg7z8u9wKpGe/0UdYEeLcqF1UYa7jJ7AJ/7MQeNvEo7OwXEOZc87w6OSsjatQtbsV/xr6tSID1It1KIqdWz0xvwouWF27tOdjAsiIh3cP/x1aUx5bLy6YRlAYaDyhM08Z8Vq7JuiVU/76SaUmWMy9zzTbtA0DurRpu+kul+DCLieneI2LxHW5deSf21L7+g0d1WJlNeBAjq4UdBYBo7sJwBR/p6I5tU20XbjP58VV7APfSe1hEaTHSvQVC0ZT9kT/fGTOaxp+qGcbcHJNK8HW1yNB+pUcu6ihxiNHQtH+lxpYL0hraAjRWKm2K6prmwa4jAghSMxjAqSVmoMQ4brvpru7zIw+TbqVQ==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(39850400004)(366004)(376002)(136003)(396003)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(316002)(2906002)(6916009)(4326008)(8676002)(8936002)(478600001)(26005)(6486002)(54906003)(6666004)(71200400001)(76116006)(66946007)(66446008)(66556008)(66476007)(64756008)(91956017)(6506007)(5660300002)(6512007)(86362001)(38100700002)(122000001)(33656002)(36756003)(2616005)(38070700009)(41300700001)(45980500001);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <FDC69FBEFE60274C9453D4FC9A3AB34D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9312
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:
 AM2PEPF0001C70E.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6e057879-6a39-4a8c-1887-08dc0157068d
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	imSmFTuXJTscqEGEFj2DJn6dI3iZGqGoQH3DkLcPqwV44SmyMDgQz+J/9louZUeL4ps4KsOsQtrhi8xoJl0kMNuw+WGFLNqIwHB4wazIOs9P61oZbpyXGNtk8CpZMlEv9am9P1vm/fh2ny/a9Llw0f+OJBB7OTcTukDiZOILMSovyVpNH+CatW10tMFgNVCIvxoC6KIBxwaDn7LBNAJrJgZmFLeM/v4DC5vkCAlsiZcAv6pWcfNaGMrp25ObqI9Hn438vEy6OJexWmXl+qjdXMBOz40XXOpDKvElcaQl/JFlnk9w4cUCe+2NiuEZqJvOVDFMzDr7C/r3HJFnl4gAca0c9Ng1JtDJVWXiWAPaME2Gr9bkrGsK9bmM8Y/Wn8ybBS28b1/N1nPKfF5djsgzvydX5dD6vgbdBZPWXwOpjpoXjl99R8xU2mM4MtCdNqTkU803DO5gu7wuJYSTnEbdo3cX1tnQVoVU1YvR+9aNGkdVA7sI8B0QJY/Sue4eM5ULmc9rtPBX6WLzyPgxDlpb2jAIJwbkCHbOgid8rosqToiTH0v3Vez6V6fyn02Goi9Qttl7gDYIiuY+r0fAVC6zEoqI8HnYfJfiWA52rKjmijaeJrLLo8a6miBBhnrSdDfUs7V+GWIYKIapoTnP1Z3J4ePwi54A9R1i/LVgPZ+67T5VAJAfK3Mz0N/L5ehT5DcaqUKYf/pkSZCZWh0IS8/CX3BjNM5U5rz5NUz4e+u1Re/ntkUn6BrXq2hnMUCltpO3
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:(13230031)(4636009)(376002)(346002)(136003)(39860400002)(396003)(230922051799003)(82310400011)(64100799003)(1800799012)(451199024)(186009)(46966006)(40470700004)(36840700001)(40480700001)(40460700003)(36860700001)(82740400003)(336012)(47076005)(81166007)(356005)(8676002)(5660300002)(2906002)(33656002)(36756003)(6666004)(26005)(6506007)(6512007)(2616005)(478600001)(70586007)(6862004)(70206006)(41300700001)(54906003)(6486002)(86362001)(4326008)(316002)(8936002);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 12:27:38.8618
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b1dfe2d-4d95-4fd2-6509-08dc01570e0c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM2PEPF0001C70E.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7656

DQo+IA0KPiBJIHdhbnRlZCB0byBrZWVwIE1pY2hhbCdzIGNoYW5nZSBmb3IgdGhlIGFybTY0IGFz
IGl0IGlzLiBBbmQgaW50cm9kdWNlIEtjb25maWcgYW5kIGNvbW1hbmQgbGluZSBpbiBzZXBhcmF0
ZSBwYXRjaGVzLg0KPiANCj4gQnV0IEkgYWdyZWUsIGl0IGRvZXMgbm90IGxvb2sgY2xlYW4uDQo+
IA0KPiANCj4gSSBhbSBmaW5lIHRvIGZvbGxvdyB5b3VyIHN1Z2dlc3Rpb24gaWUgKE9wdGlvbiAx
KQ0KPiANCj4gUGF0Y2ggMSAtLS0+IGFybTY0IGNoYW5nZXMgKyBLY29uZmlnICsgY21kX2xpbmUg
KGF1dGhvcmVkIGJ5IE1pY2hhbCkNCj4gDQo+IFBhdGNoIDIgLS0tPiBhcm0zMiBjaGFuZ2VzICh3
aGljaCB3aWxsIHVzZSB0aGUgS2NvbmZpZyBhbmQgY21kX2xpbmUgaW50cm9kdWNlZCBiZWZvcmUp
DQo+IA0KPiANCj4gQWx0ZXJuYXRpdmVseSwgSSBhbSB0aGlua2luZyBsaWtlIHRoaXMgKE9wdGlv
biAyKQ0KPiANCj4gUGF0Y2ggMSAtLT4gYXJtNjQgY2hhbmdlcyAoYXV0aG9yZWQgYnkgTWljaGFs
KQ0KPiANCj4gUGF0Y2ggMiAtLT4gYXJtMzIgY2hhbmdlcw0KPiANCj4gUGF0Y2ggMyAtLS0+IEtj
b25maWcgKyBjbWRfbGluZSAod2hpY2ggd2lsbCB0b3VjaCBwYXRjaCAxIGFuZCAyKS4NCj4gDQo+
IExldCBtZSBrbm93IHdoYXQgeW91ICgrIFN0ZWZhbm8sIEp1bGllbiwgQmVydHJhbmQpIHRoaW5r
IGFib3V0IHRoZSBzcGxpdC4NCj4gDQo+IEkgZG9uJ3QgaGF2ZSBhIHN0cm9uZyBwcmVmZXJlbmNl
IG9uIGhvdyB0aGUgc3BsaXQgc2hvdWxkIGJlIGRvbmUuDQoNClRoZSBtYWludGFpbmVycyB3aWxs
IGRlY2lkZSwgYnV0IEkgZmVlbCB0aGF0IHdpdGggb3B0aW9uIDIsIHRoZXJlIHdpbGwgYmUsDQpp
biB0aGUgdHJlZSwgYSBzdGF0ZSB3aGVyZSB0aGUgZGVzaWduIGRlY2lzaW9uIHdvbuKAmXQgYmUg
ZnVsZmlsbGVkLCBzbw0Kd2l0aCBwYXRjaCAxIGFuZCAyIHdlIHdpbGwgaGF2ZSBwYXJ0aWFsIGVt
dWxhdGlvbiB1bmNvbmRpdGlvbmFsbHkuDQoNCkluc3RlYWQgd2l0aCBvcHRpb24gMSB3ZSB3aWxs
IGhhdmUgYWx3YXlzIGEgcHJvcGVyIHN0YXRlLCB3aGljaCB3aWxsDQpiZSBhcm02NCBjb25kaXRp
b25hbCBwYXJ0aWFsIGVtdWxhdGlvbiB3aXRoIHBhdGNoIDEgYW5kIGFybTMyIGNvbmRpdGlvbmFs
DQpwYXJ0aWFsIGVtdWxhdGlvbiB3aXRoIHBhdGNoIDIuDQoNCk1heWJlIG1haW50YWluZXJzIHdp
bGwgZGVjaWRlIGlmIHRoYXQgbWF0dGVycyBvciBub3QuDQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 12:56:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 12:56:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657783.1026861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFw7G-0007Ej-Co; Wed, 20 Dec 2023 12:56:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657783.1026861; Wed, 20 Dec 2023 12: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 1rFw7G-0007Ec-AH; Wed, 20 Dec 2023 12:56:02 +0000
Received: by outflank-mailman (input) for mailman id 657783;
 Wed, 20 Dec 2023 12: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=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFw7F-0007EW-BY
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 12:56:01 +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 1e032d85-9f37-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 13:55:57 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50e30b28c1aso5248483e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 04:55:57 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 5-20020ac25f45000000b0050e2e793e32sm1170166lfz.188.2023.12.20.04.55.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 04:55:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e032d85-9f37-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703076956; x=1703681756; 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=EL9H/SClswL/CAdJ5OzfqbaN5AMradeuQsVYTYk2zTs=;
        b=AuL/4VS8KD2axmIde0XQlbHgPpdattHE4xiK9XqJJzc07BX8bdeTwXcm9aNBMjzX4l
         e1Jq2/VK0fY/jC4ESLv5z6901UvXxw7ByQOVRKyWml2zB7xwfO0ueyQwKZ76lUORELnA
         yV7zpGSucGgwEV8DOt908nPRQx/8ckqG3I+NqvaXW7H4N9s5cNIEDv3eb5LLRX/4UY9M
         wN6suW9Z9XLJP1Jjm3FESpWa9GdE4pf22NlY8ZlsQSeK+slxO0S6tTRnmvKRKrDemKuK
         3daAxUHP/zIUR30RDvvqFiaPxu3t7CY+gqsATsl0YlLCRHKamnourDuRXwjBwqMzVmlF
         ur7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703076956; x=1703681756;
        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=EL9H/SClswL/CAdJ5OzfqbaN5AMradeuQsVYTYk2zTs=;
        b=s1wlJ3QtDcdATdfF5m5Yjl+LAHPu2zk8hrSNKhSnA3xOAS5TPfYZEOir5dIDpp/RiJ
         XE0UZwgOW7txNk5Y39GCkSZLNR8kGGfTdfaSXbWmxAGAIAhVURyUCJzPrt5pr/+3C6cu
         znkQOgKtf6mnEQ/XNTmD36X5DyAiM5bNmt3gZzVZJJAPU6s+nUwwg7Vccp5Ae218FVmq
         3Jlu+1TK9RwTqUBV22C4MUePMt/4j76Bggna78TvCD9IyEjjP8YedJC8byMjENj0MUQL
         spai/wE1P0ZdaC5aoNvinXols5f7/abrau0NH08UKQR8ALM4qUV3IxUL+US2RVPiugwq
         6Y1Q==
X-Gm-Message-State: AOJu0YxnMA6HW9HRbdmYccpmeZVFJ9k/v7ZeUY0JADVng8xW4FK1fq/Y
	vPJgUJsFywFFGJqbw5VvJXg=
X-Google-Smtp-Source: AGHT+IE+U5rqzDdrLaJjWRGn4zaAHN1n/qAEbH8g1DPnOFFgheQVsox3WidIWjfXmUdhdna+bdGGrg==
X-Received: by 2002:a05:6512:2211:b0:50b:e6e4:c6c9 with SMTP id h17-20020a056512221100b0050be6e4c6c9mr13291578lfu.85.1703076956233;
        Wed, 20 Dec 2023 04:55:56 -0800 (PST)
Message-ID: <3c34e22a4cf040845e734c3575512945a87465dd.camel@gmail.com>
Subject: Re: [PATCH v2 37/39] xen/rirscv: add minimal amount of stubs to
 build full Xen
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Wed, 20 Dec 2023 14:55:55 +0200
In-Reply-To: <f52b19eb-7633-48df-85b9-c6a545dc4232@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <091887466560fbd6b66239f7fee5193eb97570b9.1700761381.git.oleksii.kurochko@gmail.com>
	 <f52b19eb-7633-48df-85b9-c6a545dc4232@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-18 at 18:00 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- a/xen/arch/riscv/mm.c
> > +++ b/xen/arch/riscv/mm.c
> > @@ -1,19 +1,23 @@
> > =C2=A0/* SPDX-License-Identifier: GPL-2.0-only */
> > =C2=A0
> > +#include <xen/bug.h>
> > =C2=A0#include <xen/cache.h>
> > =C2=A0#include <xen/compiler.h>
> > =C2=A0#include <xen/init.h>
> > =C2=A0#include <xen/kernel.h>
> > =C2=A0#include <xen/macros.h>
> > +#include <xen/mm.h>
> > =C2=A0#include <xen/pfn.h>
> > =C2=A0
> > =C2=A0#include <asm/early_printk.h>
> > =C2=A0#include <asm/csr.h>
> > =C2=A0#include <asm/current.h>
> > -#include <asm/mm.h>
> > =C2=A0#include <asm/page.h>
> > =C2=A0#include <asm/processor.h>
> > =C2=A0
> > +unsigned long frametable_base_pdx __read_mostly;
> > +unsigned long frametable_virt_end __read_mostly;
>=20
> Nit (style):
>=20
> unsigned long __read_mostly frametable_base_pdx;
> unsigned long __read_mostly frametable_virt_end;
>=20
> (i.e. attributes generally between type and identifier). Plus
> __read_mostly or __ro_after_init?
I'll update the style.
I looked at code where this variables are used and they can be
__ro_after_init.
Thanks.
>=20
> > @@ -294,3 +298,49 @@ unsigned long __init calc_phys_offset(void)
> > =C2=A0=C2=A0=C2=A0=C2=A0 phys_offset =3D load_start - XEN_VIRT_START;
> > =C2=A0=C2=A0=C2=A0=C2=A0 return phys_offset;
> > =C2=A0}
> > +
> > +void put_page(struct page_info *page)
> > +{
> > +=C2=A0=C2=A0=C2=A0 assert_failed(__func__);
> > +}
> > +
> > +unsigned long get_upper_mfn_bound(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 /* No memory hotplug yet, so current memory limit i=
s the final
> > one. */
> > +=C2=A0=C2=A0=C2=A0 return max_page - 1;
> > +}
> > +
> > +void arch_dump_shared_mem_info(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 WARN();
> > +}
> > +
> > +int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
> > +{
> > +=C2=A0=C2=A0=C2=A0 assert_failed(__func__);
> > +=C2=A0=C2=A0=C2=A0 return -1;
> > +}
>=20
> Whats the pattern between picking WARN(), assert_failed() (which I
> don't
> think you should be using anyway; if an assertion, then
> ASSERT_UNREACHABLE())
> and BUG() (as used earlier in stubs living in header files)?
There is no specific pattern; initially, I used WARN() everywhere.
However, when the time came to implement this function, it became
challenging to identify the location of some WARN() occurrences.
Consequently, I started changing them to assert_failed(__func__) to
pinpoint the source.

I'll be switching to BUG()
>=20
> > --- /dev/null
> > +++ b/xen/arch/riscv/stubs.c
> > @@ -0,0 +1,426 @@
> > +/* 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/time.h>
> > +#include <public/domctl.h>
> > +#include <public/vm_event.h>
>=20
> I think I can see why you need the former of these last two, but do
> you
> really need the latter?
It is needed for vm_event_request_t and vm_event_response_t, but if use
a forward declaration that it won't be needed:

typedef struct vm_event_st vm_event_request_t;
typedef struct vm_event_st vm_event_response_t;
>=20
> > +#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 =3D { { [0] =3D 1UL } };
> > +
> > +/* time.c */
> > +
> > +unsigned long __read_mostly cpu_khz;=C2=A0 /* CPU clock frequency in
> > kHz. */
> > +
> > +s_time_t get_s_time(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +int reprogram_timer(s_time_t timeout)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void send_timer_event(struct vcpu *v)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void domain_set_time_offset(struct domain *d, int64_t
> > time_offset_seconds)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +/* shutdown.c */
> > +
> > +void machine_restart(unsigned int delay_millisecs)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void machine_halt(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +/* vm_event.c */
> > +
> > +void vm_event_fill_regs(vm_event_request_t *req)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void vm_event_set_registers(struct vcpu *v, vm_event_response_t
> > *rsp)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void vm_event_monitor_next_interrupt(struct vcpu *v)
> > +{
> > +=C2=A0=C2=A0=C2=A0 /* Not supported on RISCV. */
> > +}
> > +
> > +void vm_event_reset_vmtrace(struct vcpu *v)
> > +{
> > +=C2=A0=C2=A0=C2=A0 /* Not supported on RISCV. */
> > +}
> > +
> > +/* domctl.c */
> > +
> > +long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 XEN_GUEST_HANDLE_PARAM(xen_do=
mctl_t) u_domctl)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void arch_get_domain_info(const struct domain *d,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=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 xen_domctl_getdomaininfo *info)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +/* monitor.c */
> > +
> > +int arch_monitor_domctl_event(struct domain *d,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 xen_domctl_monitor_op *mop)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +/* smp.c */
> > +
> > +void arch_flush_tlb_mask(const cpumask_t *mask)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void smp_send_event_check_mask(const cpumask_t *mask)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void smp_send_call_function_mask(const cpumask_t *mask)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +/* irq.c */
> > +
> > +struct pirq *alloc_pirq_struct(struct domain *d)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int
> > will_share)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t
> > *mask)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +static void ack_none(struct irq_desc *irq)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
> > +
> > +static void end_none(struct irq_desc *irq)
> > +{
> > +=C2=A0=C2=A0=C2=A0 BUG();
> > +}
>=20
> Much like I said for PPC - I don't think you need the two, as ...
>=20
> > +hw_irq_controller no_irq_type =3D {
> > +=C2=A0=C2=A0=C2=A0 .typename =3D "none",
> > +=C2=A0=C2=A0=C2=A0 .startup =3D irq_startup_none,
> > +=C2=A0=C2=A0=C2=A0 .shutdown =3D irq_shutdown_none,
> > +=C2=A0=C2=A0=C2=A0 .enable =3D irq_enable_none,
> > +=C2=A0=C2=A0=C2=A0 .disable =3D irq_disable_none,
> > +=C2=A0=C2=A0=C2=A0 .ack =3D ack_none,
> > +=C2=A0=C2=A0=C2=A0 .end =3D end_none
>=20
> ... there's nothing right now to invoke these hooks.
They really can be dropped.
I'll take into account that.

Thanks.


~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:16:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:16:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657788.1026871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFwR0-00043U-V7; Wed, 20 Dec 2023 13:16:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657788.1026871; Wed, 20 Dec 2023 13:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFwR0-00043N-SH; Wed, 20 Dec 2023 13:16:26 +0000
Received: by outflank-mailman (input) for mailman id 657788;
 Wed, 20 Dec 2023 13:16:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFwQz-00043H-Mf
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:16:25 +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 1rFwQw-0005OQ-Ac; Wed, 20 Dec 2023 13:16:22 +0000
Received: from [15.248.2.151] (helo=[10.6.7.47])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFwQw-0006tv-43; Wed, 20 Dec 2023 13:16: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=QOoOv7H7j7XVI01FNeoGZYmGtO1OduUZJiBcLGGInMI=; b=xgt2O8Y39j+DzfkszFGccDPDZI
	eSBpepcn9IY0FB+9OJAV+IXzqAXnADCOlkOMh+KMcgkJ2UyP11cpVX5CE9JjkCPnuZqK1MMUJuc/y
	rTwBsPCvRIxJpF5kyAyGnmUMN2InFolKgHfmzek+ekQZtvEHLQfyNSUu5xec+XoRXYG0=;
Message-ID: <29076f96-3497-4b08-9f17-22577e3b90c1@xen.org>
Date: Wed, 20 Dec 2023 13:16:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Ayan Kumar Halder <ayankuma@amd.com>,
 Luca Fancellu <Luca.Fancellu@arm.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 "michal.orzel@amd.com" <michal.orzel@amd.com>,
 "Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>,
 "stefano.stabellini@amd.com" <stefano.stabellini@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20231218202959.1390114-1-ayan.kumar.halder@amd.com>
 <F1A640BE-0CDC-4026-BBB3-637ABE7D996C@arm.com>
 <5E9E5368-8AD3-490E-8034-78F5BAF23006@arm.com>
 <34f3342a-b86e-4e74-bfba-d55e0de55600@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <34f3342a-b86e-4e74-bfba-d55e0de55600@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 20/12/2023 12:15, Ayan Kumar Halder wrote:
> 
> On 20/12/2023 09:43, Luca Fancellu wrote:
>>
>>> On 20 Dec 2023, at 09:29, Luca Fancellu <Luca.Fancellu@arm.com> wrote:
>>>
>>> Hi Ayan,
> 
> Hi Luca,
> 
> Thanks for looking into this.
> 
>>>
>>>> On 18 Dec 2023, at 20:29, Ayan Kumar Halder 
>>>> <ayan.kumar.halder@amd.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> Refer 
>>>> https://lore.kernel.org/all/alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop/T/
>>>> for the previous discussion on this issue.
>>>>
>>>> Also, the linux earlycon hvc driver has been fixed.
>>>> See 
>>>> https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git/commit/?h=tty-next&id=0ec058ece2f933aed66b76bd5cb9b5e6764853c3
>>>>
>>>> Changes from v1:-
>>>> 1. Split the change across 3 patches as per the design consensus.
>>>>
>>>> Ayan Kumar Halder (3):
>>>> xen/arm: Add emulation of Debug Data Transfer Registers
>>>> xen: arm: Introduce CONFIG_PARTIAL_EMULATION
>>>> xen/arm: Introduce "partial-emulation" xen command line option
>>> Iâ€™m a bit puzzled about the order of these changes, wouldnâ€™t be 
>>> better to
>>> Introduce the partial emulation Kconfig and command line args in the 
>>> same
>>> patch together with something that uses it?
> 
> You have read my mind. :) I wan't sure about how to do the split...
> 
>>>
>>> I think here you wanted to keep Michal patch untouched, but I feel 
>>> that a
>>> correct split for this serie would be maybe introducing Kconfig, boot 
>>> args and
>>> one of the arm64/arm32 emulation, and on a second patch the other one
>>> (Or vice-versa)?
>> Â  ^^^^^^^-----> for the vice-versa, I meant 1st patch Arm64, 2nd Arm32
>> Â  or vice-versa.
> 
> I wanted to keep Michal's change for the arm64 as it is. And introduce 
> Kconfig and command line in separate patches.

I agree and the Kconfig/command line should be a separate patches. 
However, I think it should be introduced first rather than last (I don't 
want the code to be always enabled even temporiraly). So my preferred 
option would be...

> 
> But I agree, it does not look clean.
> 
> 
> I am fine to follow your suggestion ie (Option 1)
> 
> Patch 1 ---> arm64 changes + Kconfig + cmd_line (authored by Michal)
> 
> Patch 2 ---> arm32 changes (which will use the Kconfig and cmd_line 
> introduced before)
> 
> 
> Alternatively, I am thinking like this (Option 2)
> 
> Patch 1 --> arm64 changes (authored by Michal)
> 
> Patch 2 --> arm32 changes
> 
> Patch 3 ---> Kconfig + cmd_line (which will touch patch 1 and 2).


Option 3

Patch 1 -> Kconfig + cmd_line
Patch 2 -> Arm64 changes
Patch 3 -> Arm32 changes

I could also settle with option 1.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:23:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:23:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657792.1026881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFwY9-0006fA-LT; Wed, 20 Dec 2023 13:23:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657792.1026881; Wed, 20 Dec 2023 13:23:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFwY9-0006f3-Iz; Wed, 20 Dec 2023 13:23:49 +0000
Received: by outflank-mailman (input) for mailman id 657792;
 Wed, 20 Dec 2023 13:23:47 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFwY7-0006ex-J1
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:23:47 +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 1rFwY6-0005YK-Uv; Wed, 20 Dec 2023 13:23:46 +0000
Received: from [15.248.2.151] (helo=[10.6.7.47])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFwY6-0007Dp-OB; Wed, 20 Dec 2023 13:23: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=OJt4JJ49m9COGmKExgaop8U379fb+mfRbIigx9BXQIU=; b=poTAbAQiKxW5sxwFC/0yfEsN0X
	s2M7knIlqAUwNxo5YyLvhglXg9Xhg2T3P9ehoYeYoWTDup6zArTWknZvxggOcuTRCTKx6NtISkyd6
	anzOtthZy/euWEekSR0rmFbrLxpoC3kiYMjtkpj6jQnI6hDTJFlpsSVsA0mjJoAJI+tE=;
Message-ID: <4d5ebc23-f7f8-411f-8458-762a09bdf702@xen.org>
Date: Wed, 20 Dec 2023 13:23:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/7] xen/ppc: Enable bootfdt and boot allocator
Content-Language: en-GB
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 Jan Beulich <jbeulich@suse.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <aa67a0dacab0e3f39dabeb30e31732d617cadde1.1702607884.git.sanastasio@raptorengineering.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <aa67a0dacab0e3f39dabeb30e31732d617cadde1.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 15/12/2023 02:44, Shawn Anastasio wrote:
> Move PPC off the asm-generic setup.h and enable usage of bootfdt for
> populating the boot info struct from the firmware-provided device tree.
> Also enable the Xen boot page allocator.
> 
> Includes minor changes to bootfdt.c's boot_fdt_info() to tolerate the
> scenario in which the FDT overlaps a reserved memory region, as is the
> case on PPC when booted directly from skiboot. Also includes a minor
> change to record Xen's correct position on PPC where Xen relocates
> itself to at the entrypoint.
> 
> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> ---
>   xen/arch/ppc/include/asm/Makefile |   1 -
>   xen/arch/ppc/include/asm/setup.h  | 123 +++++++++++++
>   xen/arch/ppc/setup.c              | 289 +++++++++++++++++++++++++++++-

I might be missing something. But isn't most of the code you add is the 
same as Arm? And if so, shouldn't this be consolidated?

I would also expect RISC-V to need the same.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:40:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:40:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657798.1026891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFwo7-0002As-Uf; Wed, 20 Dec 2023 13:40:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657798.1026891; Wed, 20 Dec 2023 13:40:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFwo7-0002Al-S5; Wed, 20 Dec 2023 13:40:19 +0000
Received: by outflank-mailman (input) for mailman id 657798;
 Wed, 20 Dec 2023 13:40:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=265R=H7=gmail.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rFwo7-0002Af-AW
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:40:19 +0000
Received: from mail-oo1-xc2f.google.com (mail-oo1-xc2f.google.com
 [2607:f8b0:4864:20::c2f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4fbb9966-9f3d-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 14:40:18 +0100 (CET)
Received: by mail-oo1-xc2f.google.com with SMTP id
 006d021491bc7-58d06bfadf8so3997980eaf.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 05:40:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4fbb9966-9f3d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703079617; x=1703684417; 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=uMd4ADOFvkzah5me9T/+HHhJ6VCiXe+Wthd/vIvVj/o=;
        b=jJ6kALfM59GKxftGllmAALOADIkc3z0jXHySHOy3S9A108YwKO3kV8xVjxiC8B3anO
         +Ccj7wVhkvjgzO6uTa/Dy6zcABXoC9fi6YPMR1FKhzGQikePJV1Fxjvr5q39gB4tfVuY
         uO28a1tQBYYEEr6jnKvRBcVki4+NKE+hX4XNYNWUbLLQsV5tQgVvWBADBPEjtiCBU8Pb
         xAJ0nmehFaObZVl6caXiD1EtQIvO/dN/KlDoj53E1MoKEiIZW6Kldhd/L2zGiB11Vi8+
         VYReJTH41I96mlVcbQ1s3PNPMxBYd5xeAhvmBPFdiH8wfYqTZ56IwCTE+t1YkCDeW1O1
         jvKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703079617; x=1703684417;
        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=uMd4ADOFvkzah5me9T/+HHhJ6VCiXe+Wthd/vIvVj/o=;
        b=ibF880IloGRxdxK9u/PITZ+a38ns3mgj2IiHx6RHq3em1ebqs0c37K4hKqCk7G16ep
         6a7j7xf57K4Bk67CJBcPe176abnTpWFicwLRgPy95IEKdcGbXs7xwqiUy1wELGwVbK7A
         37Iv/gHRSaOrCYjBY6v/ZleqKBvaag0wUxJfV02x6TWk9pLRd42EMC7dG/ZDqQmmPsIa
         blzMfy1zbxIe7xkz0u49hBQcvjcqbUfrHrQ6NaVO24+pCgvYTp9mglEfesWVo644HHkS
         Y0xiJ7NpcOT/ckI5jOOLe4XBpa65cTOV3E0HVRwIAzzax0xHgA5A6E7ooBtEc5l1zmNN
         nhdQ==
X-Gm-Message-State: AOJu0YxtF3ldihPRZzWdghJHrhb/FEQITUJOpVSVuZE8aDX7aZwwAWnt
	irRN8VxmvKx+aLihTf8heDEgLe70LIJc2H3sbwg=
X-Google-Smtp-Source: AGHT+IG4wiFT4rUzLfQAVpvMwGvhbloaVAniWXFbzQNYl02YYRfoCtVhV2QvGtYv0LsqGi1jEHbDB4q4s7vK0gg2PG4=
X-Received: by 2002:a4a:8c26:0:b0:593:e06a:5ade with SMTP id
 u35-20020a4a8c26000000b00593e06a5ademr2000642ooj.14.1703079616936; Wed, 20
 Dec 2023 05:40:16 -0800 (PST)
MIME-Version: 1.0
References: <20231205182011.1976568-1-stefanha@redhat.com> <20231205182011.1976568-5-stefanha@redhat.com>
 <ZYG2mSe1JWnC0tq_@redhat.com> <ZYHew2poxuJJRyhC@redhat.com>
 <CAJSP0QX0fg0TGWuveJz6+QbF9EmY=vPiU-c99fHZMN=1jAnXkw@mail.gmail.com> <ZYK0pUSPFQiU4Qs_@redhat.com>
In-Reply-To: <ZYK0pUSPFQiU4Qs_@redhat.com>
From: Stefan Hajnoczi <stefanha@gmail.com>
Date: Wed, 20 Dec 2023 08:40:04 -0500
Message-ID: <CAJSP0QXc2RVDHC_-CxbB_rvKOR36Q_wz5wWgCgaFtYt37oE6XA@mail.gmail.com>
Subject: Re: [PATCH v2 04/14] aio: make aio_context_acquire()/aio_context_release()
 a no-op
To: Kevin Wolf <kwolf@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org, 
	=?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= <philmd@linaro.org>, 
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, Cleber Rosa <crosa@redhat.com>, 
	Xie Changlong <xiechanglong.d@gmail.com>, Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>, 
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>, John Snow <jsnow@redhat.com>, 
	Eduardo Habkost <eduardo@habkost.net>, Wen Congyang <wencongyang2@huawei.com>, 
	Alberto Garcia <berto@igalia.com>, Anthony Perard <anthony.perard@citrix.com>, 
	"Michael S. Tsirkin" <mst@redhat.com>, Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org, 
	Juan Quintela <quintela@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>, 
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>, Zhang Chen <chen.zhang@intel.com>, 
	=?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, Peter Xu <peterx@redhat.com>, 
	Emanuele Giuseppe Esposito <eesposit@redhat.com>, Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>, 
	David Hildenbrand <david@redhat.com>, Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Wed, 20 Dec 2023 at 04:32, Kevin Wolf <kwolf@redhat.com> wrote:
>
> Am 19.12.2023 um 22:23 hat Stefan Hajnoczi geschrieben:
> > The following hack makes the test pass but there are larger safety
> > issues that I'll need to look at on Wednesday:
>
> I see, you're taking the same approach as in the SCSI layer: Don't make
> things thread-safe, but just always access them from the same thread.

Yes, but it feels like a hack to me. You pointed out that other parts
also don't look thread-safe (e.g. the clients list) and I agree. I've
started annotating the code and will try to come up with a full fix
today.

Stefan


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:44:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657802.1026903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFws0-0003Gy-GN; Wed, 20 Dec 2023 13:44:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657802.1026903; Wed, 20 Dec 2023 13: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 1rFws0-0003Gr-Bt; Wed, 20 Dec 2023 13:44:20 +0000
Received: by outflank-mailman (input) for mailman id 657802;
 Wed, 20 Dec 2023 13:44: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFwrz-0003Gg-9C
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:44:19 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df29be89-9f3d-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 14:44:18 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c3ceded81so57303365e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 05:44:18 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 g19-20020a05600c4ed300b0040b30be6244sm7617770wmq.24.2023.12.20.05.44.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 05:44:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df29be89-9f3d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703079857; x=1703684657; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=/+CEnHbpAcV8NYSJjT10iuURnFtmtXH0mPtofeBBjZk=;
        b=krWCPOSvGQUNIkmD47MpGxYczUr45bMSmXfmCP9XbgfLc228JvhfrDY6tiMfyD42a6
         M1T0TV4y1nYp3c9qABr7BezMdHmxqc+0jpZJk6DqI50LFBA3JoeOUgRXiEzarhNldYtM
         H3PuXGz6j7o4gW0H/pD3aWYAf1p4JIbtBsJ5A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703079857; x=1703684657;
        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=/+CEnHbpAcV8NYSJjT10iuURnFtmtXH0mPtofeBBjZk=;
        b=CJy/meHcMg/yRzJLsAiBbFNbXzt1RLXah1S8GOkcVIDvnw/D3TdcR6jCyicV/JrzNn
         wOXBbXKrCtksoP/kfxo5tf2IktDs/6S0vDfgeV4uLwtpBT87ImKpZxUuUHhUkbQGWxI2
         9wF9mzaBg0mbTLOSLdWeV8UaSK+ralGlJHhAJMTTlxvoIwHKaMvztHvuzOPwt40S5saS
         nyGgi9G1HbnaZU+yy4oTbUq0FKNPJjV5N+7zVDW3VULG+io/tgaYtR5NPVptDrVPa3FE
         GWX6AZeF1A7oHCgVxbt2fAPm2qpUa5nyPabWoOWOJld8AMtCebj6/bSgz90gPwFsmFto
         y76A==
X-Gm-Message-State: AOJu0YzensqcyF+OT6m6mnV08dSMp5uXAOl2MT0LE9khm9qoyCmR6Iuk
	sQ/RPjtD0+YoH3DVHORhoZNxozE7cuC5sLKRvb0=
X-Google-Smtp-Source: AGHT+IGCCCPNAw7/j2KpI7cyigApeVJH3maQe07+ZNNzcsUKuOs4fQ0njHE3cueBGHHlBD5M60u7dQ==
X-Received: by 2002:a05:600c:1818:b0:40b:5e21:ec1f with SMTP id n24-20020a05600c181800b0040b5e21ec1fmr10286604wmp.81.1703079857353;
        Wed, 20 Dec 2023 05:44:17 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Subject: [PATCH v4 0/6] x86/iommu: improve setup time of hwdom IOMMU
Date: Wed, 20 Dec 2023 14:43:40 +0100
Message-ID: <20231220134346.22430-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The aim of the series is to reduce boot time setup of IOMMU page tables
for dom0.

First and second patches are a pre-req, as further patches can end up
attempting to create maps above the max RAM address, and hence without
properly setting the IOMMU page tables levels those attempts to map
would fail.

Last 4 patches rework the hardware domain IOMMU setup to use a rangeset
instead of iterating over all addresses up to the max RAM page.  See
patch 5/6 for performance figures.

Thanks, Roger.

Roger Pau Monne (6):
  x86/p2m: move and rename paging_max_paddr_bits()
  amd-vi: set IOMMU page table levels based on guest reported paddr
    width
  x86/iommu: introduce a rangeset to perform hwdom IOMMU setup
  x86/iommu: remove regions not to be mapped
  x86/iommu: switch hwdom IOMMU to use a rangeset
  x86/iommu: cleanup unused functions

 xen/arch/x86/cpu-policy.c                   |   2 +-
 xen/arch/x86/domain.c                       |  21 ++
 xen/arch/x86/hvm/io.c                       |  15 +-
 xen/arch/x86/include/asm/domain.h           |   3 +
 xen/arch/x86/include/asm/hvm/io.h           |   4 +-
 xen/arch/x86/include/asm/paging.h           |  22 --
 xen/arch/x86/include/asm/setup.h            |   2 +-
 xen/arch/x86/setup.c                        |  81 +++---
 xen/arch/x86/tboot.c                        |   2 +-
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  20 +-
 xen/drivers/passthrough/x86/iommu.c         | 271 +++++++++++++-------
 11 files changed, 262 insertions(+), 181 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:44:21 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657803.1026911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFws1-0003WF-QT; Wed, 20 Dec 2023 13:44:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657803.1026911; Wed, 20 Dec 2023 13:44:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFws1-0003W8-Ng; Wed, 20 Dec 2023 13:44:21 +0000
Received: by outflank-mailman (input) for mailman id 657803;
 Wed, 20 Dec 2023 13:44:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFws0-0003Gg-41
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:44:20 +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 dff00579-9f3d-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 14:44:19 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40c3f68b69aso52860885e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 05:44:19 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 j7-20020a05600c190700b0040c31bb66dcsm7358017wmq.20.2023.12.20.05.44.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 05:44:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dff00579-9f3d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703079859; x=1703684659; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Zpl/pvdAy8I8bWYC4wJLs2ijp/eL3QlGcKk+qyRQerA=;
        b=kDQlau0wZiiBYgVozWyESQ92D6TBhtDU8WSUeJI0QMfPNJEb7IMSN3HUmdwkBwIU+U
         SkeyR1Jermk4WppxRFWJDESdXbUFUs1jr1qLRaV+xcJ/OKf9c/p4zNGe5gkccZ5nB/Nw
         hd8JaSnPDtRbnidsPOVAtesmKze87YrXkqeJY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703079859; x=1703684659;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Zpl/pvdAy8I8bWYC4wJLs2ijp/eL3QlGcKk+qyRQerA=;
        b=n2Ax0z5gvdwBlTjUR8TSu8JIRcwAgnRpkjpy6ywLM8iXZFATOYzmPKuC8kMwi0818w
         47PTkVaTd3u18wMvWaZ05T3RUIB4p/i67o1ID4a9xGN59fQtXTYIUlfIv5DlUl147T1u
         +J1rm3U2M1TLC+1PC0C3/cS0quJLOTvDs9E8o3fzd1dqcHawbRnnUNbrKEdMm09kZ2pG
         jyD/aSX+n9OWh6pm6bwRVFVAS8avv8CrV3D+XHoz4EnG+3aXb9bKUnBCOYhjxaypbZLH
         47KRjlmxkQxhY7vD3e6k+CTOouaPAskXvuZC3DQLqDUwpnrqjmJ7taxC32qbzDOShdpq
         SfbQ==
X-Gm-Message-State: AOJu0YznZtIDAveDsfyzbNCxkpIddksl1bv3UZaOoTPzHVg1Frj06IB9
	P9+dAmMTFMR68uPw8N/JFvj2daf8czZGEwVXmno=
X-Google-Smtp-Source: AGHT+IGaL4PDOlk862SoqaXg6gAIMGnT4q/dB5L8eKzSmHI0ZJOyu/L0M49PPpwy3+Z2dV1dCBMSHw==
X-Received: by 2002:a05:600c:3411:b0:409:79df:7f9c with SMTP id y17-20020a05600c341100b0040979df7f9cmr13537926wmp.36.1703079858702;
        Wed, 20 Dec 2023 05:44:18 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v4 1/6] x86/p2m: move and rename paging_max_paddr_bits()
Date: Wed, 20 Dec 2023 14:43:41 +0100
Message-ID: <20231220134346.22430-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231220134346.22430-1-roger.pau@citrix.com>
References: <20231220134346.22430-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The function also supports non-paging domains, and hence it being placed in
p2m.h and named with the paging_ prefix is misleading.

Move to x86 domain.c and rename to domain_max_paddr_bits().  Moving to a
different header is non trivial, as the function depends on helpers declared in
p2m.h.  There's no performance reason for the function being inline.

Note the function is safe to use against PV or system domains, as it does check
whether the domain is using external paging, and if not the returned physical
address width is the host (native) value.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v3:
 - Expand changelog.

Changes since v2:
 - New in this version.
---
 xen/arch/x86/cpu-policy.c         |  2 +-
 xen/arch/x86/domain.c             | 21 +++++++++++++++++++++
 xen/arch/x86/include/asm/domain.h |  3 +++
 xen/arch/x86/include/asm/paging.h | 22 ----------------------
 4 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 423932bc13d6..76efb050edf7 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -864,7 +864,7 @@ void recalculate_cpuid_policy(struct domain *d)
 
     p->extd.maxphysaddr = min(p->extd.maxphysaddr, max->extd.maxphysaddr);
     p->extd.maxphysaddr = min_t(uint8_t, p->extd.maxphysaddr,
-                                paging_max_paddr_bits(d));
+                                domain_max_paddr_bits(d));
     p->extd.maxphysaddr = max_t(uint8_t, p->extd.maxphysaddr,
                                 (p->basic.pae || p->basic.pse36) ? 36 : 32);
 
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3712e36df930..8a31d18f6967 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2552,6 +2552,27 @@ static int __init cf_check init_vcpu_kick_softirq(void)
 }
 __initcall(init_vcpu_kick_softirq);
 
+unsigned int domain_max_paddr_bits(const struct domain *d)
+{
+    unsigned int bits = paging_mode_hap(d) ? hap_paddr_bits : paddr_bits;
+
+    if ( paging_mode_external(d) )
+    {
+        if ( !IS_ENABLED(CONFIG_BIGMEM) && paging_mode_shadow(d) )
+        {
+            /* Shadowed superpages store GFNs in 32-bit page_info fields. */
+            bits = min(bits, 32U + PAGE_SHIFT);
+        }
+        else
+        {
+            /* Both p2m-ept and p2m-pt only support 4-level page tables. */
+            bits = min(bits, 48U);
+        }
+    }
+
+    return bits;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 4b6b7ceab1ed..622d22bef255 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -777,6 +777,9 @@ static inline void pv_inject_sw_interrupt(unsigned int vector)
 struct arch_vcpu_io {
 };
 
+/* Maxphysaddr supportable by the paging infrastructure. */
+unsigned int domain_max_paddr_bits(const struct domain *d);
+
 #endif /* __ASM_DOMAIN_H__ */
 
 /*
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 76162a9429ce..8a2a0af40874 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -336,28 +336,6 @@ static inline bool gfn_valid(const struct domain *d, gfn_t gfn)
     return !(gfn_x(gfn) >> (d->arch.cpuid->extd.maxphysaddr - PAGE_SHIFT));
 }
 
-/* Maxphysaddr supportable by the paging infrastructure. */
-static always_inline unsigned int paging_max_paddr_bits(const struct domain *d)
-{
-    unsigned int bits = paging_mode_hap(d) ? hap_paddr_bits : paddr_bits;
-
-    if ( paging_mode_external(d) )
-    {
-        if ( !IS_ENABLED(CONFIG_BIGMEM) && paging_mode_shadow(d) )
-        {
-            /* Shadowed superpages store GFNs in 32-bit page_info fields. */
-            bits = min(bits, 32U + PAGE_SHIFT);
-        }
-        else
-        {
-            /* Both p2m-ept and p2m-pt only support 4-level page tables. */
-            bits = min(bits, 48U);
-        }
-    }
-
-    return bits;
-}
-
 #endif /* XEN_PAGING_H */
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:44:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:44:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657804.1026922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFws4-0003nN-5R; Wed, 20 Dec 2023 13:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657804.1026922; Wed, 20 Dec 2023 13:44:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFws4-0003nE-0d; Wed, 20 Dec 2023 13:44:24 +0000
Received: by outflank-mailman (input) for mailman id 657804;
 Wed, 20 Dec 2023 13:44:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFws2-0003i3-Qx
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:44:22 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e0ba08ec-9f3d-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 14:44:20 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c6ea99429so58016745e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 05:44:20 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 w20-20020a05600c475400b0040b4fca8620sm7448052wmo.37.2023.12.20.05.44.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 05:44:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0ba08ec-9f3d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703079860; x=1703684660; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sUEnh4ySfa83i4PpobooNYikWrP4B6C0g81JCycd+/A=;
        b=ZeDLtGY4YI/tDOV+sfLBFFXoOQ3bFeRAvnhAbVVhTbvDmWW/MMOLLaBFWHfJEKwX0T
         6L4WMnATH6sWDDi8wAk0ZrQ9VNZqhpSBZdiolgL47XnpWrhpLDBR7vRmcmDhzZNV+UWw
         H0qzUvjDtR4IfilaDjO9RWcLgIuFC13L5yTuo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703079860; x=1703684660;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=sUEnh4ySfa83i4PpobooNYikWrP4B6C0g81JCycd+/A=;
        b=sD6CAqghNmJ6Ot1DLrsbiPZB+F4+Lp6q6Pr1ibwPgHR/7JmzcE08K2KgAnEb1+TAqq
         PYg0MdnOcc/cZCpMNrs87Tc09ch2xaGgZq+b1P6JHXLyp3St9bypD6vMjLp2lE9r7Ox4
         bmzbfCqZP/bDXTmwEh/SDPBoBTRFIy3DDYKV7lvoR2YX5F38Mdl/di1ass4SvktglRLK
         f5OdeLNed2/XIucDZ6eW40UcxaEWVpm9RAX3VFN/Um6m8Ab+NcBcNkAkqaen6xeom0PP
         VrPtPwGrkcYkzjOeuhOSoXbym+JH53fPJmALpAXIyIEnFZdakszZzIuQp3Od5j8pPfxU
         /tNg==
X-Gm-Message-State: AOJu0YwygrjQyNTncQB8I18+jFYg3vTu3CzATs6ixfYirocGdFQVntL2
	Duvo8ps/Yl5bk/XxDtq2JCB89Dpi4H6MKHKR+8M=
X-Google-Smtp-Source: AGHT+IFgkqe7gQD+UyN1PxMXVqucq08UDnelSZ/xbqtJuMa2X3dBbXZzvpJzuUkoCZOVF0KuQN2Nqg==
X-Received: by 2002:a05:600c:3c8e:b0:40c:617b:16ae with SMTP id bg14-20020a05600c3c8e00b0040c617b16aemr3893367wmb.67.1703079860193;
        Wed, 20 Dec 2023 05:44:20 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v4 2/6] amd-vi: set IOMMU page table levels based on guest reported paddr width
Date: Wed, 20 Dec 2023 14:43:42 +0100
Message-ID: <20231220134346.22430-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231220134346.22430-1-roger.pau@citrix.com>
References: <20231220134346.22430-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

However take into account the minimum number of levels required by unity maps
when setting the page table levels.

The previous setting of the page table levels for PV guests based on the
highest RAM address was bogus, as there can be other non-RAM regions past the
highest RAM address that need to be mapped, for example device MMIO.

For HVM we also take amd_iommu_min_paging_mode into account, however if unity
maps require more than 4 levels attempting to add those will currently fail at
the p2m level, as 4 levels is the maximum supported.

Fixes: 0700c962ac2d ('Add AMD IOMMU support into hypervisor')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v3:
 - Avoid possible UB if domain_max_paddr_bits() ever returns 64.

Changes since v2:
 - Use the renamed domain_max_paddr_bits().

Changes since v1:
 - Use paging_max_paddr_bits() instead of hardcoding
   DEFAULT_DOMAIN_ADDRESS_WIDTH.
---
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 6bc73dc21052..146cf60084f4 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -359,21 +359,17 @@ int __read_mostly amd_iommu_min_paging_mode = 1;
 static int cf_check amd_iommu_domain_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    int pglvl = amd_iommu_get_paging_mode(
+                1UL << (domain_max_paddr_bits(d) - PAGE_SHIFT));
+
+    if ( pglvl < 0 )
+        return pglvl;
 
     /*
-     * Choose the number of levels for the IOMMU page tables.
-     * - PV needs 3 or 4, depending on whether there is RAM (including hotplug
-     *   RAM) above the 512G boundary.
-     * - HVM could in principle use 3 or 4 depending on how much guest
-     *   physical address space we give it, but this isn't known yet so use 4
-     *   unilaterally.
-     * - Unity maps may require an even higher number.
+     * Choose the number of levels for the IOMMU page tables, taking into
+     * account unity maps.
      */
-    hd->arch.amd.paging_mode = max(amd_iommu_get_paging_mode(
-            is_hvm_domain(d)
-            ? 1UL << (DEFAULT_DOMAIN_ADDRESS_WIDTH - PAGE_SHIFT)
-            : get_upper_mfn_bound() + 1),
-        amd_iommu_min_paging_mode);
+    hd->arch.amd.paging_mode = max(pglvl, amd_iommu_min_paging_mode);
 
     return 0;
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:44:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:44:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657805.1026932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFws5-00043u-Cv; Wed, 20 Dec 2023 13:44:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657805.1026932; Wed, 20 Dec 2023 13: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 1rFws5-00043g-8T; Wed, 20 Dec 2023 13:44:25 +0000
Received: by outflank-mailman (input) for mailman id 657805;
 Wed, 20 Dec 2023 13:44:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFws3-0003Gg-BD
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:44:23 +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 e1d27ec8-9f3d-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 14:44:22 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-40c3fe6c1b5so61762575e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 05:44:22 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 k2-20020a05600c1c8200b0040b3867a297sm7383756wms.36.2023.12.20.05.44.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 05:44:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1d27ec8-9f3d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703079861; x=1703684661; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kcflDR0c/PkDOoqkRYMUGNCU9Eem4zvQx0D8NuPEX+c=;
        b=AqR+YDNvx5ALTt95GNoLqdUanGate8CrmdrloXWjwtoGH8WcBVuG8/WZULNfjR2bWI
         aNHMjti4Wt39EjvEMFXljysD1LqcJ4QRZk6/ojMwEOetEL2gBdPOUrgXEezY9sNj1IWq
         Y38hkJMyZTkmwg1p/9lHuvewDHqXAjvtg3ub0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703079861; x=1703684661;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=kcflDR0c/PkDOoqkRYMUGNCU9Eem4zvQx0D8NuPEX+c=;
        b=juPe0K1oe1SXSjAWTQsQEONdpunJXn5uQLCLShn8RUu+Ma+MaXkVm1o0txbcZNY5Kn
         eaexihce8TMeQp0u4u2FC5MLJz/WQ59ery4plE3uGVrCluNiueOMgSqsDezQNkf80rAO
         qpVyJhRTHbYKj/RCQHC/9zUkaJ+ez3aAK9I9xTmcdx9jKkfh9fYQqWm1VpzCAGbQhhAn
         WJW84lRQ2hKzsrXbG/18K7sNxbrO9Pk/slyJpOOIAwP4Tka+KjpnsOJeupSf0EryFg6e
         aloR4qQvliPUTERUO9fdTT/emNIX18K6PLCHCeSpXABFJkfM2fCEpgEtthTxpqeHSDZ7
         B0RA==
X-Gm-Message-State: AOJu0YzZIFvJOcEbNp2e3JPRPdVMY5AYXzt9us0sqQyQg8wUJsr77Iz3
	XfmyNEna6a0OsH1OZqCAP6CdtUSaFXRS6NB0sGw=
X-Google-Smtp-Source: AGHT+IGlYhIcislbaDTsllDLbIkpsrmeutmcKq++WkDEcQ/sFfAlRnNhMNzM+7URPTflZl6Hc4VmMQ==
X-Received: by 2002:a05:600c:204b:b0:40c:38dc:f6c8 with SMTP id p11-20020a05600c204b00b0040c38dcf6c8mr10116139wmg.172.1703079861392;
        Wed, 20 Dec 2023 05:44:21 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v4 3/6] x86/iommu: introduce a rangeset to perform hwdom IOMMU setup
Date: Wed, 20 Dec 2023 14:43:43 +0100
Message-ID: <20231220134346.22430-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231220134346.22430-1-roger.pau@citrix.com>
References: <20231220134346.22430-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This change just introduces the boilerplate code in order to use a rangeset
when setting up the hardware domain IOMMU mappings.  The rangeset is never
populated in this patch, so it's a non-functional change as far as the mappings
the domain gets established.

Note there will be a change for HVM domains (ie: PVH dom0) when the code
introduced here gets used: the p2m mappings will be established using
map_mmio_regions() instead of p2m_add_identity_entry(), so that ranges can be
mapped with a single function call if possible.  Note that the interface of
map_mmio_regions() doesn't allow creating read-only mappings, but so far there
are no such mappings created for PVH dom0 in arch_iommu_hwdom_init().

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v3:
 - Fix one style issue and one typo in a comment.
 - Use map_data.flush_flags in replacement of flush_flags.
 - Return -EOPNOTSUPP on failure to create RO mappings for HVM.
 - Do not panic if mapping of ranges fails, print an error message.

Changes since v2:
 - Better deal with read-only regions.
 - Destroy rangeset earlier.
 - Switch to using map_data.flush_flags.
 - Reword commit message to clarify the change in behaviour for HVM will only
   take effect after later changes.

Changes since v1:
 - Split from bigger patch.
---
 xen/drivers/passthrough/x86/iommu.c | 103 +++++++++++++++++++++++++++-
 1 file changed, 100 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 857dccb6a465..59b0c7e980ca 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -370,10 +370,88 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
     return perms;
 }
 
+struct map_data {
+    struct domain *d;
+    unsigned int flush_flags;
+    bool mmio_ro;
+};
+
+static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
+                                              void *data)
+{
+    struct map_data *info = data;
+    struct domain *d = info->d;
+    long rc;
+
+    if ( iommu_verbose )
+        printk(XENLOG_INFO " [%010lx, %010lx] R%c\n",
+               s, e, info->mmio_ro ? 'O' : 'W');
+
+    if ( paging_mode_translate(d) )
+    {
+        if ( info->mmio_ro )
+        {
+            ASSERT_UNREACHABLE();
+            /* End the rangeset iteration, as other regions will also fail. */
+            return -EOPNOTSUPP;
+        }
+        while ( (rc = map_mmio_regions(d, _gfn(s), e - s + 1, _mfn(s))) > 0 )
+        {
+            s += rc;
+            process_pending_softirqs();
+        }
+    }
+    else
+    {
+        const unsigned int perms = IOMMUF_readable | IOMMUF_preempt |
+                                   (info->mmio_ro ? 0 : IOMMUF_writable);
+
+        /*
+         * Read-only ranges are strictly MMIO and need an additional iomem
+         * permissions check.
+         */
+        while ( info->mmio_ro && s <= e && !iomem_access_permitted(d, s, e) )
+        {
+            /*
+             * Consume a frame per iteration until the remainder is accessible
+             * or there's nothing left to map.
+             */
+            if ( iomem_access_permitted(d, s, s) )
+            {
+                rc = iommu_map(d, _dfn(s), _mfn(s), 1, perms,
+                               &info->flush_flags);
+                if ( rc < 0 )
+                    break;
+                /* Must map a frame at least, which is what we request for. */
+                ASSERT(rc == 1);
+                process_pending_softirqs();
+            }
+            s++;
+        }
+        while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
+                                perms, &info->flush_flags)) > 0 )
+        {
+            s += rc;
+            process_pending_softirqs();
+        }
+    }
+    ASSERT(rc <= 0);
+    if ( rc )
+        printk(XENLOG_WARNING
+               "IOMMU identity mapping of [%lx, %lx] failed: %ld\n",
+               s, e, rc);
+
+    /* Ignore errors and attempt to map the remaining regions. */
+    return 0;
+}
+
 void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 {
     unsigned long i, top, max_pfn, start, count;
-    unsigned int flush_flags = 0, start_perms = 0;
+    unsigned int start_perms = 0;
+    struct rangeset *map;
+    struct map_data map_data = { .d = d };
+    int rc;
 
     BUG_ON(!is_hardware_domain(d));
 
@@ -397,6 +475,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
     if ( iommu_hwdom_passthrough )
         return;
 
+    map = rangeset_new(NULL, NULL, 0);
+    if ( !map )
+        panic("IOMMU init: unable to allocate rangeset\n");
+
     max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
     top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
 
@@ -427,7 +509,7 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
         commit:
             while ( (rc = iommu_map(d, _dfn(start), _mfn(start), count,
                                     start_perms | IOMMUF_preempt,
-                                    &flush_flags)) > 0 )
+                                    &map_data.flush_flags)) > 0 )
             {
                 start += rc;
                 count -= rc;
@@ -451,8 +533,23 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
             goto commit;
     }
 
+    if ( iommu_verbose )
+        printk(XENLOG_INFO "%pd: identity mappings for IOMMU:\n", d);
+
+    rc = rangeset_report_ranges(map, 0, ~0UL, identity_map, &map_data);
+    rangeset_destroy(map);
+    if ( !rc && is_pv_domain(d) )
+    {
+        map_data.mmio_ro = true;
+        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, identity_map,
+                                    &map_data);
+    }
+    if ( rc )
+        printk(XENLOG_WARNING "IOMMU unable to create %smappings: %d\n",
+               map_data.mmio_ro ? "read-only " : "", rc);
+
     /* Use if to avoid compiler warning */
-    if ( iommu_iotlb_flush_all(d, flush_flags) )
+    if ( iommu_iotlb_flush_all(d, map_data.flush_flags) )
         return;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:44:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:44:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657806.1026938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFws5-00047w-Qe; Wed, 20 Dec 2023 13:44:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657806.1026938; Wed, 20 Dec 2023 13: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 1rFws5-00047E-J3; Wed, 20 Dec 2023 13:44:25 +0000
Received: by outflank-mailman (input) for mailman id 657806;
 Wed, 20 Dec 2023 13:44: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFws4-0003Gg-Lp
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:44:24 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e290390a-9f3d-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 14:44:24 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3367a304091so700416f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 05:44:23 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 c9-20020a056000104900b0033667867a66sm8611589wrx.101.2023.12.20.05.44.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 05:44:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e290390a-9f3d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703079863; x=1703684663; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EGH9gStiPjZ0prtaKEVJp5+Oj1/6oICv4rkdA08vqzg=;
        b=YO5GEIBNXeFD0JllQxx4+ekkmQh+fnjGzfKARLVY6vJYDUhyBaguX15+T63FMIflDm
         wGGnrvWOAB2Dukc4rL1P3m7+Rv6wCaPV+b1BU6MumOafgczQ+gDQ5LzzfuJu8JMCjJ3Y
         igQ0t2cKmZQ4UGuRigIKKCdo873W2j12aIVb0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703079863; x=1703684663;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=EGH9gStiPjZ0prtaKEVJp5+Oj1/6oICv4rkdA08vqzg=;
        b=AfAzZtR3JvEPoJU35ssb/MMnrjHEPmm5fPnXCOElYhPYPUsiQBUvAeD1jNnntcjvWj
         MV9cf2PNXoddOaVZQb5C5otKHhWb3mAH4W59lZgREolCMIxKm21kXxIGvLklud/ZPRvS
         t/WtTOi0B6G2LOED9ZJ2sRD9IQopgoFK5uVxuKzvv3eXJEgqZE5+2wX2RDq3dTFvb30k
         OeT38g+q1iYaPzwYadNVQ8LmktT3VtHVsFKae/7WPrFs+U3Y8eBGW/W5sg2ZycjJUEmx
         q1GYUfKZarN1yR+Mt5IPytKLkMlg+QiGSjtPfcfmgghsye8tZJB7qUqGUKRVSt5psAvX
         /yag==
X-Gm-Message-State: AOJu0YxP5SpyBE8qYyegi21CbeWpBRikXrneKaWR5ysoFbTv31KzRyyP
	+zZk8T3BJrxNYea0SSUg9hQ1tJXYrsggTWJ+7pk=
X-Google-Smtp-Source: AGHT+IFd3yeWJruQdo46zT5R+FKWKF/sJjnLVY0qeKLVTjg7W1H5izJcYpIKikXvJdlZp7WbuNsoBw==
X-Received: by 2002:a5d:404c:0:b0:336:74e3:63cc with SMTP id w12-20020a5d404c000000b0033674e363ccmr909790wrp.209.1703079862758;
        Wed, 20 Dec 2023 05:44:22 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v4 4/6] x86/iommu: remove regions not to be mapped
Date: Wed, 20 Dec 2023 14:43:44 +0100
Message-ID: <20231220134346.22430-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231220134346.22430-1-roger.pau@citrix.com>
References: <20231220134346.22430-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce the code to remove regions not to be mapped from the rangeset
that will be used to setup the IOMMU page tables for the hardware domain.

This change also introduces two new functions: remove_xen_ranges() and
vpci_subtract_mmcfg() that copy the logic in xen_in_range() and
vpci_is_mmcfg_address() respectively and remove the ranges that would otherwise
be intercepted by the original functions.

Note that the rangeset is still not populated.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v3:
 - Remove unnecessary line wrapping.

Changes since v1:
 - Split from bigger patch.
---
 xen/arch/x86/hvm/io.c               | 16 ++++++++
 xen/arch/x86/include/asm/hvm/io.h   |  3 ++
 xen/arch/x86/include/asm/setup.h    |  1 +
 xen/arch/x86/setup.c                | 48 +++++++++++++++++++++++
 xen/drivers/passthrough/x86/iommu.c | 61 +++++++++++++++++++++++++++++
 5 files changed, 129 insertions(+)

diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
index d75af83ad01f..a42854c52b65 100644
--- a/xen/arch/x86/hvm/io.c
+++ b/xen/arch/x86/hvm/io.c
@@ -369,6 +369,22 @@ bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr)
     return vpci_mmcfg_find(d, addr);
 }
 
+int __hwdom_init vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r)
+{
+    const struct hvm_mmcfg *mmcfg;
+
+    list_for_each_entry ( mmcfg, &d->arch.hvm.mmcfg_regions, next )
+    {
+        int rc = rangeset_remove_range(r, PFN_DOWN(mmcfg->addr),
+                                       PFN_DOWN(mmcfg->addr + mmcfg->size - 1));
+
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
 static unsigned int vpci_mmcfg_decode_addr(const struct hvm_mmcfg *mmcfg,
                                            paddr_t addr, pci_sbdf_t *sbdf)
 {
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index a97731657801..e1e5e6fe7491 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -156,6 +156,9 @@ void destroy_vpci_mmcfg(struct domain *d);
 /* Check if an address is between a MMCFG region for a domain. */
 bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr);
 
+/* Remove MMCFG regions from a given rangeset. */
+int vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r);
+
 #endif /* __ASM_X86_HVM_IO_H__ */
 
 
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 9a460e4db8f4..cd07d98101d8 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -37,6 +37,7 @@ void discard_initial_images(void);
 void *bootstrap_map(const module_t *mod);
 
 int xen_in_range(unsigned long mfn);
+int remove_xen_ranges(struct rangeset *r);
 
 extern uint8_t kbd_shift_flags;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 897b7e92082e..ba6fe9afe5e6 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2138,6 +2138,54 @@ int __hwdom_init xen_in_range(unsigned long mfn)
     return 0;
 }
 
+int __hwdom_init remove_xen_ranges(struct rangeset *r)
+{
+    paddr_t start, end;
+    int rc;
+
+    /* S3 resume code (and other real mode trampoline code) */
+    rc = rangeset_remove_range(r, PFN_DOWN(bootsym_phys(trampoline_start)),
+                               PFN_DOWN(bootsym_phys(trampoline_end)));
+    if ( rc )
+        return rc;
+
+    /*
+     * This needs to remain in sync with the uses of the same symbols in
+     * - __start_xen()
+     * - is_xen_fixed_mfn()
+     * - tboot_shutdown()
+     */
+    /* hypervisor .text + .rodata */
+    rc = rangeset_remove_range(r, PFN_DOWN(__pa(&_stext)),
+                               PFN_DOWN(__pa(&__2M_rodata_end)));
+    if ( rc )
+        return rc;
+
+    /* hypervisor .data + .bss */
+    if ( efi_boot_mem_unused(&start, &end) )
+    {
+        ASSERT(__pa(start) >= __pa(&__2M_rwdata_start));
+        rc = rangeset_remove_range(r, PFN_DOWN(__pa(&__2M_rwdata_start)),
+                                   PFN_DOWN(__pa(start)));
+        if ( rc )
+            return rc;
+        ASSERT(__pa(end) <= __pa(&__2M_rwdata_end));
+        rc = rangeset_remove_range(r, PFN_DOWN(__pa(end)),
+                                   PFN_DOWN(__pa(&__2M_rwdata_end)));
+        if ( rc )
+            return rc;
+    }
+    else
+    {
+        rc = rangeset_remove_range(r, PFN_DOWN(__pa(&__2M_rwdata_start)),
+                                   PFN_DOWN(__pa(&__2M_rwdata_end)));
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
 static int __hwdom_init cf_check io_bitmap_cb(
     unsigned long s, unsigned long e, void *ctx)
 {
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 59b0c7e980ca..fc5215a9dc40 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -370,6 +370,14 @@ static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
     return perms;
 }
 
+static int __hwdom_init cf_check map_subtract(unsigned long s, unsigned long e,
+                                              void *data)
+{
+    struct rangeset *map = data;
+
+    return rangeset_remove_range(map, s, e);
+}
+
 struct map_data {
     struct domain *d;
     unsigned int flush_flags;
@@ -533,6 +541,59 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
             goto commit;
     }
 
+    /* Remove any areas in-use by Xen. */
+    rc = remove_xen_ranges(map);
+    if ( rc )
+        panic("IOMMU failed to remove Xen ranges: %d\n", rc);
+
+    /* Remove any overlap with the Interrupt Address Range. */
+    rc = rangeset_remove_range(map, 0xfee00, 0xfeeff);
+    if ( rc )
+        panic("IOMMU failed to remove Interrupt Address Range: %d\n", rc);
+
+    /* If emulating IO-APIC(s) make sure the base address is unmapped. */
+    if ( has_vioapic(d) )
+    {
+        for ( i = 0; i < d->arch.hvm.nr_vioapics; i++ )
+        {
+            rc = rangeset_remove_singleton(map,
+                PFN_DOWN(domain_vioapic(d, i)->base_address));
+            if ( rc )
+                panic("IOMMU failed to remove IO-APIC: %d\n", rc);
+        }
+    }
+
+    if ( is_pv_domain(d) )
+    {
+        /*
+         * Be consistent with CPU mappings: Dom0 is permitted to establish r/o
+         * ones there (also for e.g. HPET in certain cases), so it should also
+         * have such established for IOMMUs.  Remove any read-only ranges here,
+         * since ranges in mmio_ro_ranges are already explicitly mapped below
+         * in read-only mode.
+         */
+        rc = rangeset_report_ranges(mmio_ro_ranges, 0, ~0UL, map_subtract, map);
+        if ( rc )
+            panic("IOMMU failed to remove read-only regions: %d\n", rc);
+    }
+
+    if ( has_vpci(d) )
+    {
+        /*
+         * TODO: runtime added MMCFG regions are not checked to make sure they
+         * don't overlap with already mapped regions, thus preventing trapping.
+         */
+        rc = vpci_subtract_mmcfg(d, map);
+        if ( rc )
+            panic("IOMMU unable to remove MMCFG areas: %d\n", rc);
+    }
+
+    /* Remove any regions past the last address addressable by the domain. */
+    rc = rangeset_remove_range(map, PFN_DOWN(1UL << domain_max_paddr_bits(d)),
+                               ~0UL);
+    if ( rc )
+        panic("IOMMU unable to remove unaddressable ranges: %d\n", rc);
+
     if ( iommu_verbose )
         printk(XENLOG_INFO "%pd: identity mappings for IOMMU:\n", d);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:44:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:44:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657807.1026952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFws7-0004bc-BM; Wed, 20 Dec 2023 13:44:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657807.1026952; Wed, 20 Dec 2023 13:44: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 1rFws7-0004bL-7r; Wed, 20 Dec 2023 13:44:27 +0000
Received: by outflank-mailman (input) for mailman id 657807;
 Wed, 20 Dec 2023 13: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFws5-0003Gg-OO
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:44:25 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e338167e-9f3d-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 14:44:25 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40d31116dbeso10164885e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 05:44:25 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 g3-20020a05600c310300b0040c6b2c8fa9sm7534047wmo.41.2023.12.20.05.44.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 05:44:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e338167e-9f3d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703079864; x=1703684664; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mWt46NsSUJyLU20AyZjHFmWq2XJnJH2+S6s1Ntby1hw=;
        b=qjhO1MG41VBsM7xXQGAX0V8GIxEmJhe1m2so9pgNWXOgsXP0YQg4Rgmq4XKIM6hdec
         AFXm+/XZSYQqo/fGbyTnrxgLq3HcyJb67wDmCRV/+23j05vHG47UexPwPuAPDXI0cDmH
         5dnJ0yKfYMHuRIKyHSUR0gffvPDJXcWdxCnvo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703079864; x=1703684664;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=mWt46NsSUJyLU20AyZjHFmWq2XJnJH2+S6s1Ntby1hw=;
        b=Te8GVtXP/dDkFYV8P4gw0hQmSfhjhfxS9vJSBNe+0jIXGn1cqCnyGRZrTKEOlNr+Za
         GpuxAiY4zBSpxqrBtQfm0De7SUvhzWfrCBmd8JgZSqYIn6IAOkIDyW3dhRBl/ojDTZ5J
         HlagFarrrr5PIHDXJyUyiU1/4TIzFn/P+7HMmJZEUgsDboyY0nYTvnBCgwyy3ti6FaOW
         OFwlK48rd/RvYvw4jMwNkAhXwaTzowPsbx+lv/Ve1SK9g8KTok01xYcUnfaf7oosjqGZ
         oZCmowjSF+2fDkRk7BfLe+09Ov5vrDtW6XgEVlBiccbvnQGVR6dzfVXGdElN3v6J/XA1
         Q/dg==
X-Gm-Message-State: AOJu0YwqaEI0N05vBSpdWLdWtsM5XZPn+2ueRi4hGyLbFW/IVBODZ/q/
	uv5RE+rNft4lqUJqc+edxbXOhQI+VQiI2ZLQwOc=
X-Google-Smtp-Source: AGHT+IFycwDdamjev+bQnA6qnvOOkI3hdQyGyVjc+8n4o5Q2o2hNk0XRxgQWwfPcJJ1KH36ifDqFYg==
X-Received: by 2002:a05:600c:1913:b0:40c:a12:d626 with SMTP id j19-20020a05600c191300b0040c0a12d626mr10854085wmq.103.1703079864334;
        Wed, 20 Dec 2023 05:44:24 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v4 5/6] x86/iommu: switch hwdom IOMMU to use a rangeset
Date: Wed, 20 Dec 2023 14:43:45 +0100
Message-ID: <20231220134346.22430-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231220134346.22430-1-roger.pau@citrix.com>
References: <20231220134346.22430-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current loop that iterates from 0 to the maximum RAM address in order to
setup the IOMMU mappings is highly inefficient, and it will get worse as the
amount of RAM increases.  It's also not accounting for any reserved regions
past the last RAM address.

Instead of iterating over memory addresses, iterate over the memory map regions
and use a rangeset in order to keep track of which ranges need to be identity
mapped in the hardware domain physical address space.

On an AMD EPYC 7452 with 512GiB of RAM, the time to execute
arch_iommu_hwdom_init() in nanoseconds is:

x old
+ new
    N           Min           Max        Median           Avg        Stddev
x   5 2.2364154e+10  2.338244e+10 2.2474685e+10 2.2622409e+10 4.2949869e+08
+   5       1025012       1033036       1026188     1028276.2     3623.1194
Difference at 95.0% confidence
        -2.26214e+10 +/- 4.42931e+08
        -99.9955% +/- 9.05152e-05%
        (Student's t, pooled s = 3.03701e+08)

Execution time of arch_iommu_hwdom_init() goes down from ~22s to ~0.001s.

Note there's a change for HVM domains (ie: PVH dom0) that get switched to
create the p2m mappings using map_mmio_regions() instead of
p2m_add_identity_entry(), so that ranges can be mapped with a single function
call if possible.  Note that the interface of map_mmio_regions() doesn't
allow creating read-only mappings, but so far there are no such mappings
created for PVH dom0 in arch_iommu_hwdom_init().

No change intended in the resulting mappings that a hardware domain gets.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v3:
 - Remove unnecessary line wraps.

Changes since v2:
 - Simplify a bit the logic related to inclusive option, at the cost of making
   some no-op calls on some cases.

Changes since v1:
 - Split from bigger patch.
 - Remove unneeded default case.
---
 xen/drivers/passthrough/x86/iommu.c | 146 ++++++----------------------
 1 file changed, 30 insertions(+), 116 deletions(-)

diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index fc5215a9dc40..8e764e0afb31 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -300,76 +300,6 @@ void iommu_identity_map_teardown(struct domain *d)
     }
 }
 
-static unsigned int __hwdom_init hwdom_iommu_map(const struct domain *d,
-                                                 unsigned long pfn,
-                                                 unsigned long max_pfn)
-{
-    mfn_t mfn = _mfn(pfn);
-    unsigned int i, type, perms = IOMMUF_readable | IOMMUF_writable;
-
-    /*
-     * Set up 1:1 mapping for dom0. Default to include only conventional RAM
-     * areas and let RMRRs include needed reserved regions. When set, the
-     * inclusive mapping additionally maps in every pfn up to 4GB except those
-     * that fall in unusable ranges for PV Dom0.
-     */
-    if ( (pfn > max_pfn && !mfn_valid(mfn)) || xen_in_range(pfn) )
-        return 0;
-
-    switch ( type = page_get_ram_type(mfn) )
-    {
-    case RAM_TYPE_UNUSABLE:
-        return 0;
-
-    case RAM_TYPE_CONVENTIONAL:
-        if ( iommu_hwdom_strict )
-            return 0;
-        break;
-
-    default:
-        if ( type & RAM_TYPE_RESERVED )
-        {
-            if ( !iommu_hwdom_inclusive && !iommu_hwdom_reserved )
-                perms = 0;
-        }
-        else if ( is_hvm_domain(d) )
-            return 0;
-        else if ( !iommu_hwdom_inclusive || pfn > max_pfn )
-            perms = 0;
-    }
-
-    /* Check that it doesn't overlap with the Interrupt Address Range. */
-    if ( pfn >= 0xfee00 && pfn <= 0xfeeff )
-        return 0;
-    /* ... or the IO-APIC */
-    if ( has_vioapic(d) )
-    {
-        for ( i = 0; i < d->arch.hvm.nr_vioapics; i++ )
-            if ( pfn == PFN_DOWN(domain_vioapic(d, i)->base_address) )
-                return 0;
-    }
-    else if ( is_pv_domain(d) )
-    {
-        /*
-         * Be consistent with CPU mappings: Dom0 is permitted to establish r/o
-         * ones there (also for e.g. HPET in certain cases), so it should also
-         * have such established for IOMMUs.
-         */
-        if ( iomem_access_permitted(d, pfn, pfn) &&
-             rangeset_contains_singleton(mmio_ro_ranges, pfn) )
-            perms = IOMMUF_readable;
-    }
-    /*
-     * ... or the PCIe MCFG regions.
-     * TODO: runtime added MMCFG regions are not checked to make sure they
-     * don't overlap with already mapped regions, thus preventing trapping.
-     */
-    if ( has_vpci(d) && vpci_is_mmcfg_address(d, pfn_to_paddr(pfn)) )
-        return 0;
-
-    return perms;
-}
-
 static int __hwdom_init cf_check map_subtract(unsigned long s, unsigned long e,
                                               void *data)
 {
@@ -455,8 +385,7 @@ static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
 
 void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 {
-    unsigned long i, top, max_pfn, start, count;
-    unsigned int start_perms = 0;
+    unsigned int i;
     struct rangeset *map;
     struct map_data map_data = { .d = d };
     int rc;
@@ -487,58 +416,43 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
     if ( !map )
         panic("IOMMU init: unable to allocate rangeset\n");
 
-    max_pfn = (GB(4) >> PAGE_SHIFT) - 1;
-    top = max(max_pdx, pfn_to_pdx(max_pfn) + 1);
+    if ( iommu_hwdom_inclusive )
+    {
+        /* Add the whole range below 4GB, UNUSABLE regions will be removed. */
+        rc = rangeset_add_range(map, 0, PFN_DOWN(GB(4)) - 1);
+        if ( rc )
+            panic("IOMMU inclusive mappings can't be added: %d\n", rc);
+    }
 
-    for ( i = 0, start = 0, count = 0; i < top; )
+    for ( i = 0; i < e820.nr_map; i++ )
     {
-        unsigned long pfn = pdx_to_pfn(i);
-        unsigned int perms = hwdom_iommu_map(d, pfn, max_pfn);
+        const struct e820entry entry = e820.map[i];
 
-        if ( !perms )
-            /* nothing */;
-        else if ( paging_mode_translate(d) )
+        switch ( entry.type )
         {
-            int rc;
-
-            rc = p2m_add_identity_entry(d, pfn,
-                                        perms & IOMMUF_writable ? p2m_access_rw
-                                                                : p2m_access_r,
-                                        0);
+        case E820_UNUSABLE:
+            /* Only relevant for inclusive mode, otherwise this is a no-op. */
+            rc = rangeset_remove_range(map, PFN_DOWN(entry.addr),
+                                       PFN_DOWN(entry.addr + entry.size - 1));
             if ( rc )
-                printk(XENLOG_WARNING
-                       "%pd: identity mapping of %lx failed: %d\n",
-                       d, pfn, rc);
-        }
-        else if ( pfn != start + count || perms != start_perms )
-        {
-            long rc;
+                panic("IOMMU failed to remove unusable memory: %d\n", rc);
+            continue;
 
-        commit:
-            while ( (rc = iommu_map(d, _dfn(start), _mfn(start), count,
-                                    start_perms | IOMMUF_preempt,
-                                    &map_data.flush_flags)) > 0 )
-            {
-                start += rc;
-                count -= rc;
-                process_pending_softirqs();
-            }
-            if ( rc )
-                printk(XENLOG_WARNING
-                       "%pd: IOMMU identity mapping of [%lx,%lx) failed: %ld\n",
-                       d, start, start + count, rc);
-            start = pfn;
-            count = 1;
-            start_perms = perms;
-        }
-        else
-            ++count;
+        case E820_RESERVED:
+            if ( !iommu_hwdom_inclusive && !iommu_hwdom_reserved )
+                continue;
+            break;
 
-        if ( !(++i & 0xfffff) )
-            process_pending_softirqs();
+        case E820_RAM:
+            if ( iommu_hwdom_strict )
+                continue;
+            break;
+        }
 
-        if ( i == top && count )
-            goto commit;
+        rc = rangeset_add_range(map, PFN_DOWN(entry.addr),
+                                PFN_DOWN(entry.addr + entry.size - 1));
+        if ( rc )
+            panic("IOMMU failed to add identity range: %d\n", rc);
     }
 
     /* Remove any areas in-use by Xen. */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:44:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:44:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657808.1026959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFws7-0004fw-TL; Wed, 20 Dec 2023 13:44:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657808.1026959; Wed, 20 Dec 2023 13:44: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 1rFws7-0004eC-IY; Wed, 20 Dec 2023 13:44:27 +0000
Received: by outflank-mailman (input) for mailman id 657808;
 Wed, 20 Dec 2023 13:44: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFws6-0003Gg-OR
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:44:26 +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 e3e73017-9f3d-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 14:44:26 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40d2e56f3a6so4697155e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 05:44:26 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 v8-20020a05600c444800b0040d2e37c06dsm5317599wmn.20.2023.12.20.05.44.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 05:44:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3e73017-9f3d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703079865; x=1703684665; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xAlY4C0HQDzoSCwoi4E+eaPx6lrWU2JEHIBeS4B9AY0=;
        b=heQerYOhOz4OM30QeMY6cHkbgQU+ZdI01c025Be68wn0jB3Xa0Zf4rfHO9UNWHCo7S
         f7u21pUTPQepdolqQ1b/GPBYNdCozaIukFHOHmv/PWINBLx+YKcgAUTQaBOfoj6muOAt
         o4KeSV4tGt81l0aewnY93sQhVf5qA3343oG9g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703079865; x=1703684665;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xAlY4C0HQDzoSCwoi4E+eaPx6lrWU2JEHIBeS4B9AY0=;
        b=dvYmi2DORn3Mmk7gnRUWCCJ+xmKjxUgt8ScjdlBe8zkbOXR7aGP9bcSw7UTMEt94ky
         lrqeIQcYXNbkPKvi2NAjLT6E6WFnXiJBYX2ySRy1AcPLXVswmx35kOGKY5Wmw4PsU7+z
         aI65s4jnCE5lbK4Q0Abn/BAxfdWsNLnKZIP/Goh9eAae354ocSlPIS/oF7yGSa1LotR7
         IOSM0+9PP3MJwjrgOsaJP1MX8/rh4l14xY78+0BLj2XZ5KGizovTAAC/UBUe0bx1sc7q
         PFOBMMne2WE5QR4z9g0X5k3M9QTRLkqw6a9nXGNHeS7PjY+P7n2kWsd9NNE8UC8l+Lo+
         YE8w==
X-Gm-Message-State: AOJu0YyB3WFjra5RksFxWZdpgmbG9U7/mYPwbGzzfzGCgjlPE6heF0VL
	THD4SolOLoquhloycOKAhCVV2bW4riO/Cs8jm8o=
X-Google-Smtp-Source: AGHT+IGE7T54g7A2QSyHEI437s+5UNPHgj+iWpog6Qs0TeFPOUp+WcO4VvQ6OQFeiPX9ikmthQgmwQ==
X-Received: by 2002:a7b:c409:0:b0:40b:5e26:236e with SMTP id k9-20020a7bc409000000b0040b5e26236emr1629550wmi.31.1703079865538;
        Wed, 20 Dec 2023 05:44:25 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Subject: [PATCH v4 6/6] x86/iommu: cleanup unused functions
Date: Wed, 20 Dec 2023 14:43:46 +0100
Message-ID: <20231220134346.22430-7-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231220134346.22430-1-roger.pau@citrix.com>
References: <20231220134346.22430-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Remove xen_in_range() and vpci_is_mmcfg_address() now that hey are unused.

Adjust comments to point to the new functions that replace the existing ones.

No functional change.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v2:
 - Do remove vpci_is_mmcfg_address().
---
Can be squashed with the previous patch if desired, split as a separate patch
for clarity.
---
 xen/arch/x86/hvm/io.c             |  5 ---
 xen/arch/x86/include/asm/hvm/io.h |  3 --
 xen/arch/x86/include/asm/setup.h  |  1 -
 xen/arch/x86/setup.c              | 53 ++-----------------------------
 xen/arch/x86/tboot.c              |  2 +-
 5 files changed, 3 insertions(+), 61 deletions(-)

diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
index a42854c52b65..06283b41c463 100644
--- a/xen/arch/x86/hvm/io.c
+++ b/xen/arch/x86/hvm/io.c
@@ -364,11 +364,6 @@ static const struct hvm_mmcfg *vpci_mmcfg_find(const struct domain *d,
     return NULL;
 }
 
-bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr)
-{
-    return vpci_mmcfg_find(d, addr);
-}
-
 int __hwdom_init vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r)
 {
     const struct hvm_mmcfg *mmcfg;
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index e1e5e6fe7491..24d1b6134f02 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -153,9 +153,6 @@ int register_vpci_mmcfg_handler(struct domain *d, paddr_t addr,
 /* Destroy tracked MMCFG areas. */
 void destroy_vpci_mmcfg(struct domain *d);
 
-/* Check if an address is between a MMCFG region for a domain. */
-bool vpci_is_mmcfg_address(const struct domain *d, paddr_t addr);
-
 /* Remove MMCFG regions from a given rangeset. */
 int vpci_subtract_mmcfg(const struct domain *d, struct rangeset *r);
 
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index cd07d98101d8..1ced1299c77b 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -36,7 +36,6 @@ unsigned long initial_images_nrpages(nodeid_t node);
 void discard_initial_images(void);
 void *bootstrap_map(const module_t *mod);
 
-int xen_in_range(unsigned long mfn);
 int remove_xen_ranges(struct rangeset *r);
 
 extern uint8_t kbd_shift_flags;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index ba6fe9afe5e6..f52fc3f63cb0 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1343,7 +1343,7 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
         relocated = true;
 
         /*
-         * This needs to remain in sync with xen_in_range() and the
+         * This needs to remain in sync with remove_xen_ranges() and the
          * respective reserve_e820_ram() invocation below. No need to
          * query efi_boot_mem_unused() here, though.
          */
@@ -1495,7 +1495,7 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p)
     if ( using_2M_mapping() )
         efi_boot_mem_unused(NULL, NULL);
 
-    /* This needs to remain in sync with xen_in_range(). */
+    /* This needs to remain in sync with remove_xen_ranges(). */
     if ( efi_boot_mem_unused(&eb_start, &eb_end) )
     {
         reserve_e820_ram(&boot_e820, __pa(_stext), __pa(eb_start));
@@ -2089,55 +2089,6 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
     }
 }
 
-int __hwdom_init xen_in_range(unsigned long mfn)
-{
-    paddr_t start, end;
-    int i;
-
-    enum { region_s3, region_ro, region_rw, region_bss, nr_regions };
-    static struct {
-        paddr_t s, e;
-    } xen_regions[nr_regions] __hwdom_initdata;
-
-    /* initialize first time */
-    if ( !xen_regions[0].s )
-    {
-        /* S3 resume code (and other real mode trampoline code) */
-        xen_regions[region_s3].s = bootsym_phys(trampoline_start);
-        xen_regions[region_s3].e = bootsym_phys(trampoline_end);
-
-        /*
-         * This needs to remain in sync with the uses of the same symbols in
-         * - __start_xen() (above)
-         * - is_xen_fixed_mfn()
-         * - tboot_shutdown()
-         */
-
-        /* hypervisor .text + .rodata */
-        xen_regions[region_ro].s = __pa(&_stext);
-        xen_regions[region_ro].e = __pa(&__2M_rodata_end);
-        /* hypervisor .data + .bss */
-        xen_regions[region_rw].s = __pa(&__2M_rwdata_start);
-        xen_regions[region_rw].e = __pa(&__2M_rwdata_end);
-        if ( efi_boot_mem_unused(&start, &end) )
-        {
-            ASSERT(__pa(start) >= xen_regions[region_rw].s);
-            ASSERT(__pa(end) <= xen_regions[region_rw].e);
-            xen_regions[region_rw].e = __pa(start);
-            xen_regions[region_bss].s = __pa(end);
-            xen_regions[region_bss].e = __pa(&__2M_rwdata_end);
-        }
-    }
-
-    start = (paddr_t)mfn << PAGE_SHIFT;
-    end = start + PAGE_SIZE;
-    for ( i = 0; i < nr_regions; i++ )
-        if ( (start < xen_regions[i].e) && (end > xen_regions[i].s) )
-            return 1;
-
-    return 0;
-}
-
 int __hwdom_init remove_xen_ranges(struct rangeset *r)
 {
     paddr_t start, end;
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 86c4c22cacb8..4c254b4e34b4 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -321,7 +321,7 @@ void tboot_shutdown(uint32_t shutdown_type)
 
         /*
          * Xen regions for tboot to MAC. This needs to remain in sync with
-         * xen_in_range().
+         * remove_xen_ranges().
          */
         g_tboot_shared->num_mac_regions = 3;
         /* S3 resume code (and other real mode trampoline code) */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:49:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:49:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657842.1026972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFwxL-0007cs-Fo; Wed, 20 Dec 2023 13:49:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657842.1026972; Wed, 20 Dec 2023 13:49: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 1rFwxL-0007cl-Bt; Wed, 20 Dec 2023 13:49:51 +0000
Received: by outflank-mailman (input) for mailman id 657842;
 Wed, 20 Dec 2023 13:49:49 +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 1rFwxJ-0007cf-Si
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:49:49 +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 1rFwxJ-00062b-DY; Wed, 20 Dec 2023 13:49:49 +0000
Received: from [15.248.2.151] (helo=[10.6.7.47])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFwxJ-0008Iy-8I; Wed, 20 Dec 2023 13:49: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=/1x/NDKNqz3TR74xpq3Bj8QFAwEDItGFgwBm5fRxrj4=; b=x96gHZNauznohK46n1lgy1UqOl
	ToyY5vCs5A6zyahu87zTy5g2SPsba62M0/jYSPsJtpX+zzsyd+n8kHhES59eD38yO7AElOwbnwFi0
	eA7oHrC5CHZijbIsD5YMm467yEC2YTmUU7bcDrz+P8p3Gz+w9AWTdpFsVFenrduaBoDs=;
Message-ID: <0b9c3c86-2fa2-47f1-aa7f-4d833ff86430@xen.org>
Date: Wed, 20 Dec 2023 13:49:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/7] xen/ppc: Enable bootfdt and boot allocator
Content-Language: en-GB
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 Jan Beulich <jbeulich@suse.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <aa67a0dacab0e3f39dabeb30e31732d617cadde1.1702607884.git.sanastasio@raptorengineering.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <aa67a0dacab0e3f39dabeb30e31732d617cadde1.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 15/12/2023 02:44, Shawn Anastasio wrote:
> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
> index 796ac01c18..7ddfcc7e2a 100644
> --- a/xen/common/device-tree/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -543,12 +543,33 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>       if ( ret < 0 )
>           panic("No valid device tree\n");
>   
> -    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
> -
>       ret = device_tree_for_each_node((void *)fdt, 0, early_scan_node, NULL);
>       if ( ret )
>           panic("Early FDT parsing failed (%d)\n", ret);
>   
> +    /*
> +     * Add module for the FDT itself after the device tree has been parsed. This
> +     * is required on ppc64le where the device tree passed to Xen may have been
> +     * allocated by skiboot, in which case it will exist within a reserved
> +     * region and this call will fail. This is fine, however, since either way
> +     * the allocator will know not to step on the device tree.
> +     */
> +    add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);

The consequence is BOOTMOD_FDT will not be added. AFAICT, Arm doesn't 
try to access BOOTMOD_FDT, but I think it would be worth to print message.

> +
> +    /*
> +     * Xen relocates itself at the ppc64 entrypoint, so we need to manually mark
> +     * the kernel module.
> +     */
> +    if ( IS_ENABLED(CONFIG_PPC64) ) {
> +        paddr_t xen_start, xen_end;
> +
> +        xen_start = __pa(_start);
> +        xen_end = PAGE_ALIGN(__pa(_end));
> +        if ( !add_boot_module(BOOTMOD_XEN, xen_start, xen_end, false) )
> +            panic("Xen overlaps reserved memory! %016lx - %016lx\n", xen_start,
> +                xen_end);
> +    }

Can you explain why this is added here rather than in the caller of 
boot_fdt_info()? Either before or after?

If after, I guess it is because of early_print_info(). In which case, I 
would suggest to move off early_print_info() to caller on each architecture.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:53:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:53:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657847.1026981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFx1E-0001t0-VZ; Wed, 20 Dec 2023 13:53:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657847.1026981; Wed, 20 Dec 2023 13: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 1rFx1E-0001st-T0; Wed, 20 Dec 2023 13:53:52 +0000
Received: by outflank-mailman (input) for mailman id 657847;
 Wed, 20 Dec 2023 13:53:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFx1D-0001sn-LQ
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 13:53:51 +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 1rFx1D-00067o-Al; Wed, 20 Dec 2023 13:53:51 +0000
Received: from [15.248.2.151] (helo=[10.6.7.47])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFx1D-0008PA-4r; Wed, 20 Dec 2023 13:53:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=9HqDhSHp+DV1ck4uC5QA+u3EF2fs8qSL7gsTa92jb2A=; b=zcUgmWUGcnytY3pcERSVYFV6zv
	KNGTDa2WpRyoeX1h+cQxHlssC/M2bZmubIUE1NPPSHx2gXYoWv8snWvt3RfegXDb3wWPxP4BlFCXr
	5HJukAiCWZ/2Rs/kJsAKxAaZay7Iir1W3V7F37BW7KJc2Bz2CmbQ1E2fgQPj7yNT6cwY=;
Message-ID: <6a60f94e-a02b-4aed-be60-3f071c8d4e08@xen.org>
Date: Wed, 20 Dec 2023 13:53:49 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common
Content-Language: en-GB
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 Jan Beulich <jbeulich@suse.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Shawn,

On 15/12/2023 02:43, Shawn Anastasio wrote:
> Move Arm's bootfdt.c to xen/common so that it can be used by other
> device tree architectures like PPC and RISCV. Only a minor change to
> conditionalize a call to a function only available on EFI-supporting
> targets was made to the code itself. >
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>

With the MAINTAINERS file updated (I would add under DEVICE TREE) and 
one note below:

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

> --- a/xen/arch/arm/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -431,12 +431,15 @@ static int __init early_scan_node(const void *fdt,
>   {
>       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") )
> +    if ( device_tree_node_matches(fdt, node, "memory") )
> +#if defined(CONFIG_ARM_EFI)

As discussed in a separate subthread, I would be ok with any of the 
options proposed. So feel free ot keep my Acked-by once this is settled.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 13:58:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 13:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657855.1026991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFx5b-0002Xf-Jg; Wed, 20 Dec 2023 13:58:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657855.1026991; Wed, 20 Dec 2023 13: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 1rFx5b-0002XY-H7; Wed, 20 Dec 2023 13:58:23 +0000
Received: by outflank-mailman (input) for mailman id 657855;
 Wed, 20 Dec 2023 13:58: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 1rFx5Z-0002XO-Et; Wed, 20 Dec 2023 13:58: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 1rFx5Z-0006D3-5v; Wed, 20 Dec 2023 13:58: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 1rFx5Y-0005No-Pc; Wed, 20 Dec 2023 13:58:20 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFx5Y-0000vj-Nr; Wed, 20 Dec 2023 13:58: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=oC6aZd5ISDSQrRTZF3eGpqhF4mVJVTh9Z7QNLyZXN8k=; b=e17pLVCp6GVsULZhInkFf5Iniv
	D+j0uClFa1f1NR47kx4xjtyZ0NZu9fVw8MRMgLEqI4ANQjLAWgBJ8iaQf7weX54Pn8mn999/ihray
	HZEBOTSRPZx/9t+N5Hr7YPi8lqVxUOEieBDyU38u5UIegYLpIx2ONl2OgZa1O887rGHY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184190-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184190: 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=913a1774168f82565bbdc7d41a46013a40ba302d
X-Osstest-Versions-That:
    xen=725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 20 Dec 2023 13:58:20 +0000

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

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                  913a1774168f82565bbdc7d41a46013a40ba302d
baseline version:
 xen                  725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3

Last test of basis   184184  2023-12-20 02:00:26 Z    0 days
Testing same since   184190  2023-12-20 11:00:27 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Maria Celeste Cesario  <maria.celeste.cesario@bugseng.com>
  Maria Celeste Cesario <maria.celeste.cesario@bugseng.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                                          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
   725acf8e4d..913a177416  913a1774168f82565bbdc7d41a46013a40ba302d -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657914.1027006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFZ-0004oO-Rb; Wed, 20 Dec 2023 14:08:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657914.1027006; Wed, 20 Dec 2023 14:08:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFZ-0004oE-NQ; Wed, 20 Dec 2023 14:08:41 +0000
Received: by outflank-mailman (input) for mailman id 657914;
 Wed, 20 Dec 2023 14:08: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=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFY-0004kf-68
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08:40 +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 453cc1d3-9f41-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:08:37 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2cc6863d43aso43341881fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:37 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 453cc1d3-9f41-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081316; x=1703686116; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2fKu9ANs5pt5jj6Gpw7pQbCf+WI+5MwaW9ic+DTy9Fs=;
        b=R2TJl2NKXlDzOP4C2wo4inB4JPz1dHEiQ49tw5XGtCk+OIKXqpl4Va7r3664PhnZGw
         +/rfNAnRzrKjYBXk31s2xaMsWXMRzCkVzlP4k+bAZgKuHaweCMGXqQh135cVTGCG30A2
         jRvXgkqIUGAI/seePjPdiv+o0y+H2wUiy6uKoQBDh1h9vLEy9e5NG4jd7bfQeJU7S3KX
         YFkFQfEou1aWlSL/Dk23MqGrwgOOjecVgvrNz39AcrzXTTo9ALwrlxTw29gZnpvNBeGy
         HGEOmGE84zdsWueM1BAfEmCJPXeDrAd9WR5rbs3Nyea0hO9tQ2cHGFc+ludZQfWLFWy9
         MV4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081316; x=1703686116;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2fKu9ANs5pt5jj6Gpw7pQbCf+WI+5MwaW9ic+DTy9Fs=;
        b=eqtQc8OIs2h03SAosu34EXVaGdYYHfV15ePsrDxEdfWMgyGdM4hHkbTNTtNoczyOkQ
         /ouZGzqzzb7CQ9mmwBif7MPvLwO46sTnT22xOxuYDleaV/3x8PQ8ifwsE62lL86XeDO/
         Lu2wLFHAvSzT+2WXe0GuNyVr3QukBBFoT1frddem0W2Wl2pHS89ILssX/bczQT7x7294
         ogFR/TDUyDA9GVSPExTlln+F1RJydBtSzyR9COrnVs8uBnnu5fWhX59MbTv9L8aAkyIJ
         vT/Fs0nFFYoC0VmKUDFx/A+L3wVh8MB+35bMen8psOVltWTP87ZjKNHkDqW95tnDM1u8
         s2gg==
X-Gm-Message-State: AOJu0YwU3DMryBa5z2oRyBmub4fJPb4Qcx4n6zWqbKQ0Nl7LkzWoeHCw
	aCbRQjHmqP68HMucaM/Ip/YOXk8xtnoPbg==
X-Google-Smtp-Source: AGHT+IF/TDyhntyDamCgw7yzth1QdkVU3pXiAmtkMPFmpwRP98ZtkfYrHnI48rMbDg3lnvwKkMrNdw==
X-Received: by 2002:a2e:8897:0:b0:2cc:7013:4b40 with SMTP id k23-20020a2e8897000000b002cc70134b40mr2276330lji.68.1703081316356;
        Wed, 20 Dec 2023 06:08:36 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 1/9] automation: ensure values in EXTRA_FIXED_RANDCONFIG are separated by new line
Date: Wed, 20 Dec 2023 16:08:23 +0200
Message-ID: <9f75416adb77d03b639741e4548d041c78fd4227.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Kconfig tool expects each configuration to be on a new line.

The current version of the build script puts all of ${EXTRA_FIXED_RANDCONFIG}
in a single line and configs are seperated by spaces.

As a result, only the first configuration in ${EXTRA_FIXED_RANDCONFIG} will
be used.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - The patch was introduced in this version of patch series.
---
 automation/scripts/build | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/automation/scripts/build b/automation/scripts/build
index b3c71fb6fb..13b043923d 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -14,7 +14,7 @@ if [[ "${RANDCONFIG}" == "y" ]]; then
 
     # Append job-specific fixed configuration
     if [[ -n "${EXTRA_FIXED_RANDCONFIG}" ]]; then
-        echo "${EXTRA_FIXED_RANDCONFIG}" >> xen/tools/kconfig/allrandom.config
+        sed "s/ /\n/g" <<< "${EXTRA_FIXED_RANDCONFIG}" > xen/tools/kconfig/allrandom.config
     fi
 
     make -j$(nproc) -C xen KCONFIG_ALLCONFIG=tools/kconfig/allrandom.config randconfig
@@ -28,9 +28,11 @@ else
     echo "CONFIG_DEBUG=${debug}" >> xen/.config
 
     if [[ -n "${EXTRA_XEN_CONFIG}" ]]; then
-        echo "${EXTRA_XEN_CONFIG}" >> xen/.config
+        sed "s/ /\n/g" <<< "${EXTRA_XEN_CONFIG}" >> xen/.config
     fi
 
+    cat xen/.config
+
     make -j$(nproc) -C xen olddefconfig
 fi
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657915.1027014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFa-0004vM-4p; Wed, 20 Dec 2023 14:08:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657915.1027014; Wed, 20 Dec 2023 14:08:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFa-0004uT-0D; Wed, 20 Dec 2023 14:08:42 +0000
Received: by outflank-mailman (input) for mailman id 657915;
 Wed, 20 Dec 2023 14:08: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=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFZ-0004kf-6P
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08:41 +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 461b5e48-9f41-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:08:39 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2cc3f5e7451so68861941fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:39 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 461b5e48-9f41-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081318; x=1703686118; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gbOdTmbCCEcvxPnbxe8rBqPtsYTBci17wzfXbyUXaIQ=;
        b=QysgtT4Ae57tHcC/OiLeVvkK3W2mzzuvnPqai1lJ0y1JPVuRQwJ1XBEsXX3QiF9IVK
         soThG7LUSkgyI97Fxua2qzaWtSHt1EQCTuLEWH/U1EoHQJt7gDYu1zx3UEd6fbnTsyZu
         nHbesKWrAn1kRPFrMuFEMArWfTBnorSeQkoo0CpM8hkCkgj77BFEji+1lz4RtTJzpqT+
         dooKKUYNi/QDA7jEhRf5iZ2vSOCxl1t//y/2EykTp7sHsQtL3HBWPZeUQWSdt6Ag6Zr4
         NhWx4vD7Acy7iFpJ73n0t4otDkbwAT7xy+wy5cdjebWIXWFL7XSLlb9cpMma1+rkmUJt
         sS3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081318; x=1703686118;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=gbOdTmbCCEcvxPnbxe8rBqPtsYTBci17wzfXbyUXaIQ=;
        b=XOSRsGsUmrzkjo/G/GJ3bDVuBGUkgnuZMxPNTwV1x//e+na2KI962v2eGrBzXEvhnC
         tsWcU6LnG12PMxvruWzc7i/4WRr5Y5+/VPv3HB/u+3WrHq7q7g0tK6kxhmqcNZbAJduL
         Bg+4Ft42lC8ApdLw9d+trT87ZN/Sm0mHHi4zKARf6lQNAKq4Nxe261H58thWMcACwJBT
         BaWw0BXqdMOH9VJdpZuPZuGgC7DB0OdzM0NfyLA6P4azP3Itm38VEFI74T9aN03+AVYc
         h+0/5Pyu1IZN8OfH77pxOLyBeJaWXARog3JJQ/h30NSXqR5lv89ZIsuiFlCJ6hU+0vDL
         yjkw==
X-Gm-Message-State: AOJu0YyQJv86DnD14kyX1rwaEm8k2wTRdXeFXBEPHGtqmjGOidfsUsa2
	TexOIDRFvzV1ZXn2MyWdEc/i20zbxW7ENA==
X-Google-Smtp-Source: AGHT+IE2N6rkvzCeAgJXFcDfWuLf8mZGnEZo88+ZBSSqUXhFXDmgFImm23TXiOTZuEiNyLbK8uEgKg==
X-Received: by 2002:a2e:8611:0:b0:2cc:70e8:bd6a with SMTP id a17-20020a2e8611000000b002cc70e8bd6amr2781632lji.83.1703081318050;
        Wed, 20 Dec 2023 06:08:38 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 2/9] automation: introduce fixed randconfig for RISC-V
Date: Wed, 20 Dec 2023 16:08:24 +0200
Message-ID: <db2c3d36b25b686bf07ac23f8ee8c879e0e9e81d.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch introduces the file riscv-fixed-randconfig.yaml,
which includes all configurations that should be disabled for
randconfig builds.

Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - The patch was introduced in this version of patch series.
---
 automation/gitlab-ci/build.yaml                  | 8 ++++----
 automation/gitlab-ci/riscv-fixed-randconfig.yaml | 7 +++++++
 2 files changed, 11 insertions(+), 4 deletions(-)
 create mode 100644 automation/gitlab-ci/riscv-fixed-randconfig.yaml

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 32af30cced..38cd93c306 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -516,6 +516,8 @@ alpine-3.18-gcc-debug-arm64-boot-cpupools:
       CONFIG_BOOT_TIME_CPUPOOLS=y
 
 # RISC-V 64 cross-build
+include: 'automation/gitlab-ci/riscv-fixed-randconfig.yaml'
+
 archlinux-current-gcc-riscv64:
   extends: .gcc-riscv64-cross-build
   variables:
@@ -536,8 +538,7 @@ archlinux-current-gcc-riscv64-randconfig:
     CONTAINER: archlinux:current-riscv64
     KBUILD_DEFCONFIG: tiny64_defconfig
     RANDCONFIG: y
-    EXTRA_FIXED_RANDCONFIG:
-      CONFIG_COVERAGE=n
+    EXTRA_FIXED_RANDCONFIG: !reference [.riscv-fixed-randconfig, variables, EXTRA_FIXED_RANDCONFIG]
 
 archlinux-current-gcc-riscv64-debug-randconfig:
   extends: .gcc-riscv64-cross-build-debug
@@ -545,8 +546,7 @@ archlinux-current-gcc-riscv64-debug-randconfig:
     CONTAINER: archlinux:current-riscv64
     KBUILD_DEFCONFIG: tiny64_defconfig
     RANDCONFIG: y
-    EXTRA_FIXED_RANDCONFIG:
-      CONFIG_COVERAGE=n
+    EXTRA_FIXED_RANDCONFIG: !reference [.riscv-fixed-randconfig, variables, EXTRA_FIXED_RANDCONFIG]
 
 # Power cross-build
 debian-bullseye-gcc-ppc64le:
diff --git a/automation/gitlab-ci/riscv-fixed-randconfig.yaml b/automation/gitlab-ci/riscv-fixed-randconfig.yaml
new file mode 100644
index 0000000000..f1282b40c9
--- /dev/null
+++ b/automation/gitlab-ci/riscv-fixed-randconfig.yaml
@@ -0,0 +1,7 @@
+.riscv-fixed-randconfig:
+  variables:
+    EXTRA_FIXED_RANDCONFIG:
+      CONFIG_COVERAGE=n
+      CONFIG_EXPERT=y
+      CONFIG_GRANT_TABLE=n
+      CONFIG_MEM_ACCESS=n
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657913.1027002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFZ-0004l2-ID; Wed, 20 Dec 2023 14:08:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657913.1027002; Wed, 20 Dec 2023 14:08:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFZ-0004kv-F3; Wed, 20 Dec 2023 14:08:41 +0000
Received: by outflank-mailman (input) for mailman id 657913;
 Wed, 20 Dec 2023 14:08: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=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFX-0004kf-GG
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08:39 +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 44dd3d20-9f41-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:08:37 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2cc64629c16so52576921fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:37 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44dd3d20-9f41-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081316; x=1703686116; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=c0b7Jj9bXlxC/61yUeAc+z6kC4uXaUkzoELjy2trkrY=;
        b=mVgKFzltrrA+XEt9mgny73+M98xZy6MYn8HsxQMaWOPISWbfQ8HakmS45XbenWOhji
         FU1B3WTPHERn+fItq9ZW3aHKpcwcwBHp40Cka6vTKFPD+9czVE03LAb6VKp24xbC/ioG
         M3ukgMis07TM8ZXfHK8rhNSy1JlA9BVe1o3vINJOBm9qAEXSW7/9ZnjlCRE2++nFI10e
         g2K9R6TN6tHFbUW8pAKf4h4MBoD6U2Zu6H7+HtkkXySNnqf7a37am+9X7A+PdvgrdFi1
         wUYMrTwf8kzjDTUA1hphGeacKLU8VLXd3CryK8EueelEkBgj6P6O/1vGzDy0zXXMW6iM
         Aa2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081316; x=1703686116;
        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=c0b7Jj9bXlxC/61yUeAc+z6kC4uXaUkzoELjy2trkrY=;
        b=UemFn8LmURo4ASvK3+vxIt1Za7Szr7g7zxBLOC0rxPzvZTcH12bhtyAxFbuu8kdPDB
         NGxigeOwlAuJAtnZ/J6NleenGwe0+WOigHTGyYEUr88857h7OtKHjo5PeQIkuVw6nb6y
         B5yMHu3kl9dRVWT234pjLm/xoA+x9vmIUUaetVCN1e4FcRR0iFCw/zZn34cFwgzTWwvZ
         2gijmX2uFoIRoZktbylciXI2P+wr0IDoS1EfFjmUwakCMc9rQCaEreEa/LXgUi7eC4ou
         k2ZbkJ/VoBzfVY89hopFeNMxyTY7KdX8NkLpl24jY3TMo1xsPKgkbFFRtgKS5tHIG4KO
         de0g==
X-Gm-Message-State: AOJu0Yw8lnlfR/l4dI1aGFpxDt2MIYr97O+TBuHENbhOJxHyzCml47Zv
	10J72QdJ4XWHQS+khFRUaCBADhnlSuXYAA==
X-Google-Smtp-Source: AGHT+IHnNbNZ12xjOQsnTi0RMGxBmCMa1guxozh7Tcl9mJ41uGf2be1/65GijkqQmQCMGZu0CbKPcA==
X-Received: by 2002:a2e:a408:0:b0:2cc:6641:3edb with SMTP id p8-20020a2ea408000000b002cc66413edbmr3265056ljn.12.1703081315635;
        Wed, 20 Dec 2023 06:08:35 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.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>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.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>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v6 0/9] Introduce generic headers
Date: Wed, 20 Dec 2023 16:08:22 +0200
Message-ID: <cover.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some headers are common between several architectures, so the current patch series
provide them.

Another one reason to have them as generic is a simplification of adding support
necessary to make a complete Xen build as it was/is being done in the patch series [1]
and [2].

Also, instead of providing generic/stub headers, it was used
"#ifdef CONFIG_* #include <asm/*.h> #endif" instead of providing empty headers.

This patch series is a pre-requisite for "Enable build of full Xen for RISC-V" [3].

[1] https://lore.kernel.org/xen-devel/cover.1694543103.git.sanastasio@raptorengineering.com/
[2] https://lore.kernel.org/xen-devel/cover.1692181079.git.oleksii.kurochko@gmail.com/
[3] https://lore.kernel.org/xen-devel/cover.1700761381.git.oleksii.kurochko@gmail.com/

---
Changes in V6:
 - Fix the build script to work properly with EXTRA_FIXED_RANDCONFIG.
 - Introduce separate randconfig yaml with fixed configs for RISC-V.
 - Disable CONFIG_GRANT_TABLE and CONFIG_MEM_ACCESS for PPC and RISC-V.
 - Remove change in Kconfig/common for CONFIG_GRANT_TABLE and CONFIG_MEM_ACCESS.
 - Rebase on top of the latest staging. 
---
Changes in V5:
 - Update the patch series message as patch related to delay.h was merged.
 - Rebase on top of staging because half of the patches of the patch series were
   merged to staging branch.
 - Add A-by for some of the patches.
 - Add "depends on X86 || Arm" for CONFIG_GRANT_TABLE and CONFIG_MEM_ACCESS to be
   sure it won't be turned on by randconfig in CI.
 - Partly switch Arm and PPC to asm-generic/monitor.h.
 - Some other minor changes
---
Changes in V4:
 - Update the cover letter message
 - Add Reviewed-by/Acked-by for patches:
    [PATCH v3 01/14] xen/asm-generic: introduce stub header paging.h
    [PATCH v3 03/14] xen/asm-generic: introduce generic hypercall.h
    [PATCH v3 04/14] xen/asm-generic: introduce generic header iocap.h
    [PATCH v3 05/14] xen/asm-generic: introduce stub header <asm/random.h>
    [PATCH v3 06/14] xen/asm-generic: introduce generic header percpu.h
    [PATCH v3 07/14] xen/asm-generic: introduce generalized hardirq.h
    [PATCH v3 08/14] xen/asm-generic: introduce generic div64.h header
    [PATCH v3 09/14] xen/asm-generic: introduce generic header altp2m.h
    [PATCH v3 10/14] xen/asm-generic: introduce stub header monitor.h
    [PATCH v3 11/14] xen/asm-generic: introduce stub header numa.h
    [PATCH v3 12/14] xen/asm-generic: introduce stub header softirq.h
 - Fix some code style and minor issues.
 - Use asm-generic version of device.h for Arm and PPC.
---
Changes in V3:
 - Update the commit message of the cover letter.
 - Drop the following patch as it can be arch-specific enough:
   * [PATCH v2 09/15] xen/asm-generic: introduce generic header smp.h
 - Drop correspondent arch specific headers and use asm-generic version of
   a header.
 - Back to the patch series patches:
   * xen: ifdef inclusion of <asm/grant_table.h> in <xen/grant_table.h>
   * xen/asm-generic: ifdef inclusion of <asm/mem_access.h>
---
Changes in V2:
 - Update the commit message of the cover letter.
 - Drop the following patches because they are arch-specific or was sent as a separate patch:
   - xen/asm-generic: introduce stub header event.h
	 - xen/asm-generic: introduce stub header spinlock.h
	 - [PATCH v1 03/29] xen/asm-generic: introduce stub header cpufeature.h
	 - [PATCH v1 07/29] xen/asm-generic: introduce stub header guest_atomics.h
	 - [PATCH v1 10/29] xen/asm-generic: introduce stub header iommu.h
	 - [PATCH v1 12/29] xen/asm-generic: introduce stub header pci.h because separate patch was sent [5]
	 - [PATCH v1 14/29] xen/asm-generic: introduce stub header setup.h
	 - [PATCH v1 15/29] xen/asm-generic: introduce stub header xenoprof.h because of [3].
	 - [PATCH v1 16/29] xen/asm-generic: introduce stub header flushtlb.h
	 - [PATCH v1 22/29] xen/asm-generic: introduce stub header delay.h because of [3]
	 - [PATCH v1 23/29] xen/asm-generic: introduce stub header domain.h
	 - [PATCH v1 24/29] xen/asm-generic: introduce stub header guest_access.h
	 - [PATCH v1 25/29] xen/asm-generic: introduce stub header irq.h ( probably not so generic as I expected, I'll back to it if it will be necessary in the future )
	 - [PATCH v1 28/29] xen/asm-generic: introduce stub header p2m.h ( probably not so generic as I expected, I'll back to it if it will be necessary in the future )
 - For the rest of the patches please look at changes for each patch separately.

 ---

Oleksii Kurochko (9):
  automation: ensure values in EXTRA_FIXED_RANDCONFIG are separated by
    new line
  automation: introduce fixed randconfig for RISC-V
  xen/asm-generic: introduce generic div64.h header
  xen/asm-generic: introduce stub header monitor.h
  xen/asm-generic: introduce stub header numa.h
  xen/asm-generic: introduce stub header softirq.h
  xen: ifdef inclusion of <asm/grant_table.h> in <xen/grant_table.h>
  xen/asm-generic: ifdef inclusion of <asm/mem_access.h>
  xen/asm-generic: introduce generic device.h

 automation/gitlab-ci/build.yaml               |   8 +-
 .../gitlab-ci/riscv-fixed-randconfig.yaml     |   7 +
 automation/scripts/build                      |   6 +-
 xen/arch/arm/device.c                         |  15 ++-
 xen/arch/arm/domain_build.c                   |   3 +-
 xen/arch/arm/gic-v2.c                         |   4 +-
 xen/arch/arm/gic-v3.c                         |   6 +-
 xen/arch/arm/gic.c                            |   4 +-
 xen/arch/arm/include/asm/Makefile             |   3 +
 xen/arch/arm/include/asm/div64.h              |   8 +-
 xen/arch/arm/include/asm/monitor.h            |  28 +---
 xen/arch/arm/p2m.c                            |   1 +
 xen/arch/arm/traps.c                          |   1 +
 xen/arch/ppc/configs/ppc64_defconfig          |   1 +
 xen/arch/ppc/include/asm/Makefile             |   4 +
 xen/arch/ppc/include/asm/device.h             |  53 --------
 xen/arch/ppc/include/asm/div64.h              |  14 --
 xen/arch/ppc/include/asm/grant_table.h        |   5 -
 xen/arch/ppc/include/asm/mem_access.h         |   5 -
 xen/arch/ppc/include/asm/monitor.h            |  28 +---
 xen/arch/ppc/include/asm/numa.h               |  26 ----
 xen/arch/ppc/include/asm/softirq.h            |   8 --
 xen/arch/riscv/configs/tiny64_defconfig       |   1 +
 xen/arch/x86/include/asm/Makefile             |   1 +
 xen/arch/x86/include/asm/div64.h              |  14 --
 .../asm => include/asm-generic}/device.h      | 125 +++++++++++-------
 xen/include/asm-generic/div64.h               |  27 ++++
 xen/include/asm-generic/monitor.h             |  57 ++++++++
 .../asm => include/asm-generic}/numa.h        |  16 ++-
 .../asm => include/asm-generic}/softirq.h     |   7 +-
 xen/include/xen/grant_table.h                 |   3 +
 xen/include/xen/mem_access.h                  |   2 +
 32 files changed, 234 insertions(+), 257 deletions(-)
 create mode 100644 automation/gitlab-ci/riscv-fixed-randconfig.yaml
 delete mode 100644 xen/arch/ppc/include/asm/device.h
 delete mode 100644 xen/arch/ppc/include/asm/div64.h
 delete mode 100644 xen/arch/ppc/include/asm/grant_table.h
 delete mode 100644 xen/arch/ppc/include/asm/mem_access.h
 delete mode 100644 xen/arch/ppc/include/asm/numa.h
 delete mode 100644 xen/arch/ppc/include/asm/softirq.h
 delete mode 100644 xen/arch/x86/include/asm/div64.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/device.h (79%)
 create mode 100644 xen/include/asm-generic/div64.h
 create mode 100644 xen/include/asm-generic/monitor.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/numa.h (67%)
 rename xen/{arch/arm/include/asm => include/asm-generic}/softirq.h (56%)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657916.1027032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFc-0005U8-Dw; Wed, 20 Dec 2023 14:08:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657916.1027032; Wed, 20 Dec 2023 14:08:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFc-0005U1-9q; Wed, 20 Dec 2023 14:08:44 +0000
Received: by outflank-mailman (input) for mailman id 657916;
 Wed, 20 Dec 2023 14:08: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=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFb-0004kf-Eu
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08:43 +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 4788be86-9f41-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:08:41 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2cc6ea4452cso44929741fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:41 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4788be86-9f41-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081320; x=1703686120; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+ADPjgD2TlWeEknrZqZvtdHgKPvs94RdmhtWG2yb/sA=;
        b=OfWUeCQpXu43745ZVOiX6xF75/7Qd1lUlfJws+3LlblpRx12wsfW6P0G7AXwlRw+X1
         U3/0HKRxlWxjhSW58IOE356PO1b4OPP6VKnk5Vs4tJuIbn+F+4T5xeUDU34kD/kVP5Gq
         UsAst4VOs3a0hcsaGlkD1Kl0nAvt4uUDdQp9WbUMJkDP9Y8ECY3AEQ7bJ4Gn1OWUEHSi
         EdHmybjHh7gDL2l4a6ydPRWWyzkIeWJgr9nb/QjXHx1/VRuwI7AEe7VEJ7P6IzemGqEg
         fu07MDeX9IZDWL5kNYjnaMtacvli4svv/aOmvOGDSCxJPniZ8zsaElLIPCVniEdmS19p
         sU8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081320; x=1703686120;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+ADPjgD2TlWeEknrZqZvtdHgKPvs94RdmhtWG2yb/sA=;
        b=pvjLtDJG2g3fTGBckDmVz9CyWQ+gXR7iUkTr+Ofwg4rZEZepJMxowb6ZloQMHH03qc
         PjR48MScRFmhFaH60VYAMXez79NwlEafbGKcBB/fl/IaAeC2LWm+Y/KqUcjBRt8NZMk+
         8UOSaDu8Ui9K2C4eNpo1f5sTVTiq5+M/6CENNui/n/zl5vAoBO97qhPT+YrES9sG9uPv
         Z00Fyb95FCjX/EYqfjlvHteiBEZbN+ZKVTTK70igyX5SSHLbbYD2ZNBtcLrbxDZsMZ+V
         VdtTBwyB9FwHk1q+uXQ4rBYIJAuqngoGuNh/7orIIyvQh4MaJjm202u4CSqjL+MJ+ktV
         1sZQ==
X-Gm-Message-State: AOJu0YyiQYo1e3CqptT9D60itCg+CtDWP2dLgLcKDvRzVgayQwJoVjvI
	hBzAhEv7naC/GTOr3l3wi/jWIuU8ImPw7w==
X-Google-Smtp-Source: AGHT+IFHbIW1oV/lSWxToAyOF0zV30j4IS4eZ/hNGe47yAAqjqHtqdVwXWWAiG5dDAPAhItea9Wgqw==
X-Received: by 2002:a2e:a4b3:0:b0:2cc:1d8b:5466 with SMTP id g19-20020a2ea4b3000000b002cc1d8b5466mr7391370ljm.10.1703081320445;
        Wed, 20 Dec 2023 06:08:40 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v6 3/9] xen/asm-generic: introduce generic div64.h header
Date: Wed, 20 Dec 2023 16:08:25 +0200
Message-ID: <d39a9a56ff37b7e67bcedd163449e0a8f5c5df9a.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

All archs have the do_div implementation for BITS_PER_LONG == 64
so do_div64.h is moved to asm-generic.

x86 and PPC were switched to asm-generic version of div64.h.
Arm was switched partly because Arm has different implementation
for 32-bits.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V6:
 - Rebase only.
---
Changes in V5:
  - add Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
  - Update the commit message
  - Partly switch Arm's div64.h to asm-generic version. Arm has different
    implementation for 32-bits so only 64-bit version was switched.
---
Changes in V4:
 - Added Acked-by: Jan Beulich <jbeulich@suse.com>.
 - include <asm-generic/div64.h> in Arm's div64.h for 64-bit case.
---
Changes in V3:
 - Drop x86 and PPC's div64.h.
 - Update the commit message.
---
Changes in V2:
	- rename base to divisor
	- add "#if BITS_PER_LONG == 64"
	- fix code style
---
 xen/arch/arm/include/asm/div64.h  |  8 +-------
 xen/arch/ppc/include/asm/Makefile |  1 +
 xen/arch/ppc/include/asm/div64.h  | 14 --------------
 xen/arch/x86/include/asm/Makefile |  1 +
 xen/arch/x86/include/asm/div64.h  | 14 --------------
 xen/include/asm-generic/div64.h   | 27 +++++++++++++++++++++++++++
 6 files changed, 30 insertions(+), 35 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/div64.h
 delete mode 100644 xen/arch/x86/include/asm/div64.h
 create mode 100644 xen/include/asm-generic/div64.h

diff --git a/xen/arch/arm/include/asm/div64.h b/xen/arch/arm/include/asm/div64.h
index fc667a80f9..0459d5cc01 100644
--- a/xen/arch/arm/include/asm/div64.h
+++ b/xen/arch/arm/include/asm/div64.h
@@ -24,13 +24,7 @@
 
 #if BITS_PER_LONG == 64
 
-# define do_div(n,base) ({                                      \
-        uint32_t __base = (base);                               \
-        uint32_t __rem;                                         \
-        __rem = ((uint64_t)(n)) % __base;                       \
-        (n) = ((uint64_t)(n)) / __base;                         \
-        __rem;                                                  \
- })
+#include <asm-generic/div64.h>
 
 #elif BITS_PER_LONG == 32
 
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index 2da995bb2f..a8e848d4d0 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 generic-y += altp2m.h
+generic-y += div64.h
 generic-y += hardirq.h
 generic-y += hypercall.h
 generic-y += iocap.h
diff --git a/xen/arch/ppc/include/asm/div64.h b/xen/arch/ppc/include/asm/div64.h
deleted file mode 100644
index d213e50585..0000000000
--- a/xen/arch/ppc/include/asm/div64.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_PPC_DIV64_H__
-#define __ASM_PPC_DIV64_H__
-
-#include <xen/types.h>
-
-#define do_div(n, base) ({                       \
-    uint32_t base_ = (base);                     \
-    uint32_t rem_ = (uint64_t)(n) % base_;       \
-    (n) = (uint64_t)(n) / base_;                 \
-    rem_;                                        \
-})
-
-#endif /* __ASM_PPC_DIV64_H__ */
diff --git a/xen/arch/x86/include/asm/Makefile b/xen/arch/x86/include/asm/Makefile
index 874429ed30..daab34ff0a 100644
--- a/xen/arch/x86/include/asm/Makefile
+++ b/xen/arch/x86/include/asm/Makefile
@@ -1,2 +1,3 @@
 # SPDX-License-Identifier: GPL-2.0-only
+generic-y += div64.h
 generic-y += percpu.h
diff --git a/xen/arch/x86/include/asm/div64.h b/xen/arch/x86/include/asm/div64.h
deleted file mode 100644
index dd49f64a3b..0000000000
--- a/xen/arch/x86/include/asm/div64.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __X86_DIV64
-#define __X86_DIV64
-
-#include <xen/types.h>
-
-#define do_div(n,base) ({                       \
-    uint32_t __base = (base);                   \
-    uint32_t __rem;                             \
-    __rem = ((uint64_t)(n)) % __base;           \
-    (n) = ((uint64_t)(n)) / __base;             \
-    __rem;                                      \
-})
-
-#endif
diff --git a/xen/include/asm-generic/div64.h b/xen/include/asm-generic/div64.h
new file mode 100644
index 0000000000..068d8a11ad
--- /dev/null
+++ b/xen/include/asm-generic/div64.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_GENERIC_DIV64
+#define __ASM_GENERIC_DIV64
+
+#include <xen/types.h>
+
+#if BITS_PER_LONG == 64
+
+#define do_div(n, divisor) ({                   \
+    uint32_t divisor_ = (divisor);              \
+    uint32_t rem_ = (uint64_t)(n) % divisor_;   \
+    (n) = (uint64_t)(n) / divisor_;             \
+    rem_;                                       \
+})
+
+#endif /* BITS_PER_LONG */
+
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657917.1027042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFf-0005ou-S7; Wed, 20 Dec 2023 14:08:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657917.1027042; Wed, 20 Dec 2023 14: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 1rFxFf-0005oZ-OH; Wed, 20 Dec 2023 14:08:47 +0000
Received: by outflank-mailman (input) for mailman id 657917;
 Wed, 20 Dec 2023 14:08:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFe-0004kf-FZ
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08:46 +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 494ff2da-9f41-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:08:44 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2cc6b5a8364so41467161fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:44 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 494ff2da-9f41-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081323; x=1703686123; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7jf70xM9Lw8ScUvVg/zsyH4o0egKTjOtTh0z+8+kQOs=;
        b=WLYmOZF+bgtmgru5jLjZoul7oLrwGF3czaPabDya+zQIABcBszCOtzs3fTWvhHormA
         dc4QkWnFWe5r4QlYEmC07iS2m/80lVVqDCOfeo+d5N3ZCwg8Tgz+GVtb+UKt7+whIdRw
         Iqn/GgakVOUhljBiwkibiAA/9sbM4mflRp6tvyJs4ffyf91oeh7M61SpZyDBGY51Y1MZ
         D7GsoKmzpNYC50anQC/6ZanBASh7vGLdra2AEuuOmVKbRJNlB4A27vZVVM6JOyaygxOy
         CcX16L47MQiFXyjzN2tE+UhWUTAUwrbNbY9QlmvfxTJUkZcbCy7EbdojhMCftjs02ISn
         burA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081323; x=1703686123;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=7jf70xM9Lw8ScUvVg/zsyH4o0egKTjOtTh0z+8+kQOs=;
        b=S5p5kKsLtEksLvBcuDQxZZZiEFc9nF1O8cHdW+ItH1Tm/LNkvtfR0JsG4okJifMIhc
         vgMGA/RIY13DCHvqHxPWmiebBXnKKly8+zs/pABUMfFuE5qtdOIv5RxcRl9p1wfV8YgD
         eBNQDn5yrtR58I0oObeM8QcZ567rrAlzu4MflLeWnkrQ2zV/BmtrIxLdchl2J06fnDN+
         V9JTxnU6PbZRsH6DPx89T2dfR3G0DqXQESv+mjirtoVPjs8rgN3y/ihxgiUEP5hNpbHv
         fcVrTk46Mg/x2tigEDxdnHanjr2lvuV7pvCSJlqgHjz8M/xXIaSQ6mBB4fiR+y91q6kr
         IR+Q==
X-Gm-Message-State: AOJu0YyijJgFfh7HCccIBkAyC3n5HVlmophkUxu548OpaqkLE5M1gdFh
	XKFEDnl1MOW4gu4R70RzJs10iqRvzqqtiA==
X-Google-Smtp-Source: AGHT+IHOeHconq3jj9jtskaQDnnkjl+YGg7Nsbq5vTJMwQ4eQJ48UkLy98EJKfCvf2wnrMAFd8nAoA==
X-Received: by 2002:a2e:be9d:0:b0:2cc:6fb6:703 with SMTP id a29-20020a2ebe9d000000b002cc6fb60703mr3155533ljr.43.1703081323567;
        Wed, 20 Dec 2023 06:08:43 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v6 4/9] xen/asm-generic: introduce stub header monitor.h
Date: Wed, 20 Dec 2023 16:08:26 +0200
Message-ID: <49c8e0f5997063ed65c3b135c0003ca9570c0bc6.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The header is shared between several archs so it is
moved to asm-generic.

Switch partly Arm and PPC to asm-generic/monitor.h and only
arch_monitor_get_capabilities() left in arch-specific/monitor.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6:
 - Rebase only.
---
Changes in V5:
  - Switched partly Arm and PPC to asm-generic monitor.h only
    arch_monitor_get_capabilities() left in arch-specific/monitor.h.
  - Updated the commit message.
---
Changes in V4:
 - Removed the double blank line.
 - Added Acked-by: Jan Beulich <jbeulich@suse.com>.
 - Update the commit message
---
Changes in V3:
 - Use forward-declaration of struct domain instead of " #include <xen/sched.h> ".
 - Add ' include <xen/errno.h> '
 - Drop PPC's monitor.h.
---
Changes in V2:
	- remove inclusion of "+#include <public/domctl.h>"
	- add "struct xen_domctl_monitor_op;"
	- remove one of SPDX tags.
---
 xen/arch/arm/include/asm/monitor.h | 28 +--------------
 xen/arch/ppc/include/asm/monitor.h | 28 +--------------
 xen/include/asm-generic/monitor.h  | 57 ++++++++++++++++++++++++++++++
 3 files changed, 59 insertions(+), 54 deletions(-)
 create mode 100644 xen/include/asm-generic/monitor.h

diff --git a/xen/arch/arm/include/asm/monitor.h b/xen/arch/arm/include/asm/monitor.h
index 7567be66bd..045217c310 100644
--- a/xen/arch/arm/include/asm/monitor.h
+++ b/xen/arch/arm/include/asm/monitor.h
@@ -25,33 +25,7 @@
 #include <xen/sched.h>
 #include <public/domctl.h>
 
-static inline
-void arch_monitor_allow_userspace(struct domain *d, bool allow_userspace)
-{
-}
-
-static inline
-int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
-{
-    /* No arch-specific monitor ops on ARM. */
-    return -EOPNOTSUPP;
-}
-
-int arch_monitor_domctl_event(struct domain *d,
-                              struct xen_domctl_monitor_op *mop);
-
-static inline
-int arch_monitor_init_domain(struct domain *d)
-{
-    /* No arch-specific domain initialization on ARM. */
-    return 0;
-}
-
-static inline
-void arch_monitor_cleanup_domain(struct domain *d)
-{
-    /* No arch-specific domain cleanup on ARM. */
-}
+#include <asm-generic/monitor.h>
 
 static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 {
diff --git a/xen/arch/ppc/include/asm/monitor.h b/xen/arch/ppc/include/asm/monitor.h
index e5b0282bf1..89000dacc6 100644
--- a/xen/arch/ppc/include/asm/monitor.h
+++ b/xen/arch/ppc/include/asm/monitor.h
@@ -6,33 +6,7 @@
 #include <public/domctl.h>
 #include <xen/errno.h>
 
-static inline
-void arch_monitor_allow_userspace(struct domain *d, bool allow_userspace)
-{
-}
-
-static inline
-int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
-{
-    /* No arch-specific monitor ops on PPC. */
-    return -EOPNOTSUPP;
-}
-
-int arch_monitor_domctl_event(struct domain *d,
-                              struct xen_domctl_monitor_op *mop);
-
-static inline
-int arch_monitor_init_domain(struct domain *d)
-{
-    /* No arch-specific domain initialization on PPC. */
-    return 0;
-}
-
-static inline
-void arch_monitor_cleanup_domain(struct domain *d)
-{
-    /* No arch-specific domain cleanup on PPC. */
-}
+#include <asm-generic/monitor.h>
 
 static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 {
diff --git a/xen/include/asm-generic/monitor.h b/xen/include/asm-generic/monitor.h
new file mode 100644
index 0000000000..74e4870cd7
--- /dev/null
+++ b/xen/include/asm-generic/monitor.h
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * include/asm-generic/monitor.h
+ *
+ * Arch-specific monitor_op domctl handler.
+ *
+ * Copyright (c) 2015 Tamas K Lengyel (tamas@tklengyel.com)
+ * Copyright (c) 2016, Bitdefender S.R.L.
+ *
+ */
+
+#ifndef __ASM_GENERIC_MONITOR_H__
+#define __ASM_GENERIC_MONITOR_H__
+
+#include <xen/errno.h>
+
+struct domain;
+struct xen_domctl_monitor_op;
+
+static inline
+void arch_monitor_allow_userspace(struct domain *d, bool allow_userspace)
+{
+}
+
+static inline
+int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
+{
+    /* No arch-specific monitor ops on GENERIC. */
+    return -EOPNOTSUPP;
+}
+
+int arch_monitor_domctl_event(struct domain *d,
+                              struct xen_domctl_monitor_op *mop);
+
+static inline
+int arch_monitor_init_domain(struct domain *d)
+{
+    /* No arch-specific domain initialization on GENERIC. */
+    return 0;
+}
+
+static inline
+void arch_monitor_cleanup_domain(struct domain *d)
+{
+    /* No arch-specific domain cleanup on GENERIC. */
+}
+
+#endif /* __ASM_GENERIC_MONITOR_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: BSD
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657918.1027047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFg-0005sY-6Y; Wed, 20 Dec 2023 14:08:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657918.1027047; Wed, 20 Dec 2023 14:08:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFg-0005sE-23; Wed, 20 Dec 2023 14:08:48 +0000
Received: by outflank-mailman (input) for mailman id 657918;
 Wed, 20 Dec 2023 14:08:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFf-0004kf-Fo
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08:47 +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 49db9176-9f41-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:08:45 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2ca0715f0faso69704361fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:45 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 49db9176-9f41-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081325; x=1703686125; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ILg80GpPtrLjK/GDu/egRBjnqwnshJth8WFMEojdQNQ=;
        b=XFj53WTxA4bLsdxuw67Uyj8ug6W65c5+KwxJUq+v/lkFNscrUl7omvf3mWJ/eS1/85
         O+Q3mc0vbFgMKIoLmOamjw8DnT70Li+XBfYwERX70hhMaHZheSWKD91+c54b8OSY5JhJ
         fCg3Fm1LrGA48jAWFfqsvu+p+C7AcQLXTLRiQU803QcWZDs/+4Om/oxZimCVHilySFRo
         BuuxHTEYlGM8YS30SFH7fay3toxtGTUKVEBDcf1UpZb0IMj1dnH70lJt+qrufmgFScli
         XIYXTt4GdN/3RFsmGfJSJKJ6iC+qTO/6KANuD9Ruy6cvRbFzUxi1dUzoy8SvrIiYATON
         iPEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081325; x=1703686125;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ILg80GpPtrLjK/GDu/egRBjnqwnshJth8WFMEojdQNQ=;
        b=PL9yzVLe8kAuWIZ+3Prf/xwDYRtNxQ3jeDqdmjWkBNw6un2ZU9FmnOGgphlroW2fma
         SoXSlcTlho13vB5OAxtyxcAIJPN6qrIIH2IHk2PBn9XsHMxboGh7ymCRFZcoZ/O0V6x0
         sYO+e01K08qoezjxKUEMux06WvAq8uxbfrBx+6aLJbtKYobmRT+nH86Ye1VYu4oF0JJG
         UT5KpMAdsRtH55yuA3aLChyh9GyIVjgkURcKbPMnTxvwimNHax98NekdJ5+KkKOdAqYc
         jqFotItmg6ehTvYzxrYIt75KRnslFNwmG4gNo6EI5yP1h8FGJ3A6uPx22m+22ICT7diq
         N9rw==
X-Gm-Message-State: AOJu0YxFFPasEDIoZOj9lBuo27uoy5wmQU9OpVbMsYvlpjyyWS+PLEN1
	H+xS9p+GnJOyXYB47XrIcgjtOwb+tbdu4A==
X-Google-Smtp-Source: AGHT+IGcPv0azV6t4fDEFPg/d6JC+i7zv+P7H6/F+52hBHMP1YYTuLgIID6wBj6LJhjMgZuA3AW1Kw==
X-Received: by 2002:a05:651c:2207:b0:2cc:21eb:f14b with SMTP id y7-20020a05651c220700b002cc21ebf14bmr7960037ljq.64.1703081324863;
        Wed, 20 Dec 2023 06:08:44 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v6 5/9] xen/asm-generic: introduce stub header numa.h
Date: Wed, 20 Dec 2023 16:08:27 +0200
Message-ID: <08bca9a4158a190a0a953e5bc071a512cfe5f0f8.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

<asm/numa.h> is common through some archs so it is moved
to asm-generic.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V6:
 - Rebase only.
---
Changes in V5:
  - Added Acked-by: Jan Beulich <jbeulich@suse.com>
  - Updated the comment around first_valid_mfn. ( Arm -> GENERIC )
  - Added Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V4:
 - Updated guards name: *ARCH_GENERIC* -> *ASM_GENERIC*.
 - Moved inclusion of xen/mm-frame.h under "#ifndef CONFIG_NUMA".
 - Added Reviewed-by: Michal Orzel <michal.orzel@amd.com>.
---
Changes in V3:
 - Remove old header inclusion in asm-generic numa.h and include
   <xen/mm-frame.h> and <xen/stdint.h>
 - Drop Arm and PPC's numa.h and use asm-generic version instead.
---
Changes in V2:
	- update the commit message.
	- change u8 to uint8_t.
	- add ifnded CONFIG_NUMA.
---
 xen/arch/arm/include/asm/Makefile             |  1 +
 xen/arch/ppc/include/asm/Makefile             |  1 +
 xen/arch/ppc/include/asm/numa.h               | 26 -------------------
 .../asm => include/asm-generic}/numa.h        | 16 +++++++-----
 4 files changed, 12 insertions(+), 32 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/numa.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/numa.h (67%)

diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
index 8221429c2c..0c855a798a 100644
--- a/xen/arch/arm/include/asm/Makefile
+++ b/xen/arch/arm/include/asm/Makefile
@@ -2,6 +2,7 @@
 generic-y += altp2m.h
 generic-y += hardirq.h
 generic-y += iocap.h
+generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index a8e848d4d0..f09c5ea8a1 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -4,6 +4,7 @@ generic-y += div64.h
 generic-y += hardirq.h
 generic-y += hypercall.h
 generic-y += iocap.h
+generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
diff --git a/xen/arch/ppc/include/asm/numa.h b/xen/arch/ppc/include/asm/numa.h
deleted file mode 100644
index 7fdf66c3da..0000000000
--- a/xen/arch/ppc/include/asm/numa.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ASM_PPC_NUMA_H__
-#define __ASM_PPC_NUMA_H__
-
-#include <xen/types.h>
-#include <xen/mm.h>
-
-typedef uint8_t nodeid_t;
-
-/* Fake one node for now. See also node_online_map. */
-#define cpu_to_node(cpu) 0
-#define node_to_cpumask(node)   (cpu_online_map)
-
-/*
- * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
- * is required because the dummy helpers are using it.
- */
-extern mfn_t first_valid_mfn;
-
-/* XXX: implement NUMA support */
-#define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
-#define node_start_pfn(nid) (mfn_x(first_valid_mfn))
-#define __node_distance(a, b) (20)
-
-#define arch_want_default_dmazone() (false)
-
-#endif /* __ASM_PPC_NUMA_H__ */
diff --git a/xen/arch/arm/include/asm/numa.h b/xen/include/asm-generic/numa.h
similarity index 67%
rename from xen/arch/arm/include/asm/numa.h
rename to xen/include/asm-generic/numa.h
index e2bee2bd82..7f95a77e89 100644
--- a/xen/arch/arm/include/asm/numa.h
+++ b/xen/include/asm-generic/numa.h
@@ -1,18 +1,21 @@
-#ifndef __ARCH_ARM_NUMA_H
-#define __ARCH_ARM_NUMA_H
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_GENERIC_NUMA_H
+#define __ASM_GENERIC_NUMA_H
 
-#include <xen/mm.h>
+#include <xen/stdint.h>
 
-typedef u8 nodeid_t;
+typedef uint8_t nodeid_t;
 
 #ifndef CONFIG_NUMA
 
+#include <xen/mm-frame.h>
+
 /* Fake one node for now. See also node_online_map. */
 #define cpu_to_node(cpu) 0
 #define node_to_cpumask(node)   (cpu_online_map)
 
 /*
- * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
+ * TODO: make first_valid_mfn static when NUMA is supported on GENERIC, this
  * is required because the dummy helpers are using it.
  */
 extern mfn_t first_valid_mfn;
@@ -26,7 +29,8 @@ extern mfn_t first_valid_mfn;
 
 #define arch_want_default_dmazone() (false)
 
-#endif /* __ARCH_ARM_NUMA_H */
+#endif /* __ASM_GENERIC_NUMA_H */
+
 /*
  * Local variables:
  * mode: C
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657919.1027061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFh-0006L5-Jf; Wed, 20 Dec 2023 14:08:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657919.1027061; Wed, 20 Dec 2023 14:08:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFh-0006JC-FI; Wed, 20 Dec 2023 14:08:49 +0000
Received: by outflank-mailman (input) for mailman id 657919;
 Wed, 20 Dec 2023 14:08: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=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFg-0005qp-9i
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08:48 +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 4ae4d8ef-9f41-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 15:08:47 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2cc2238f597so65396841fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:47 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ae4d8ef-9f41-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081326; x=1703686126; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CMUlgSBxCWCXkSsj9cINsTG5a1nZhYKU/HqbJseXVoU=;
        b=HlY+wdF16q0/4KiSlhYRsZ9NGO+fwOej9B8huqLhTTZkTRGeGqQpSHxlt7bSHqy6Os
         zuYFHPLdSo7FXhhTZMtlo7AmmHyvZfemImuZ7nY/vavR+aSmoT5BILxEGT1n7nayYBeN
         21bMxQGKfmPgpHbGOG1yqbYOZRECpzIr34SgZiXPhu74xsm/vkw892tv7IScBWAcloBr
         Co72ugZ5rG7FZs2xdyGCpgRF19WHsyuaRkwPdFuBREb7iVDpjgS++fA3dq3ON/jknUFO
         +7JUpt4FG44IkA1zYemu4+ofNKpe85BQAUCLG9Ka8IuHL1eSya7ms+Uzg1IYwiYz7z8n
         oumQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081326; x=1703686126;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=CMUlgSBxCWCXkSsj9cINsTG5a1nZhYKU/HqbJseXVoU=;
        b=wUKSlN0Tul5QEuGR7mnuxJnZjOaH6uhnX4mlCe0iUREN34jYttffFYil2N1nbEcDN0
         ZgyzbB8fgxBk/QGWXPC+VjONpK1vCg/0yVWf09+sBYbR5UTRuV1IE085H9yyVtRKEqiT
         ZlU6R6dOptX9jmaLDnAjXT453eT5NOhZq9SCJeyY/YEbEX1Ko8hasatQyNKiFSDbpgBs
         bxLIUonIvCxVcSt7Eg5DeqTvS73fN1So6D0zb2YoD4VZCRcww5d2rDyVKEfb//Eh78x5
         ABaZN04yq4UHg18GqJyLiRVI017Jkbh/bBKKKIph/66Zf5DIrJ5ORoRMN49g1SmgmASo
         4nUA==
X-Gm-Message-State: AOJu0YxENJ1XgIuGatnIFz3INXiqpaBljd0aBgPrFYT725LVUVp0IPhG
	1xZUHm/TRpvN4ClPbJ+yyjAdjYbGjWHTPA==
X-Google-Smtp-Source: AGHT+IEfChI0P3tcjFVddHZMLISQh9YGv7E6OyCh9OqV7Oklb/elJObhGyvKyf4RQpnLGvKmjgRfYg==
X-Received: by 2002:a2e:781a:0:b0:2cc:7104:210c with SMTP id t26-20020a2e781a000000b002cc7104210cmr1396245ljc.146.1703081326044;
        Wed, 20 Dec 2023 06:08:46 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v6 6/9] xen/asm-generic: introduce stub header softirq.h
Date: Wed, 20 Dec 2023 16:08:28 +0200
Message-ID: <ab66dbcdc2eb919577d6cc90d9f5f27d00e423be.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

<asm/softirq.h> is common between Arm, PPC and RISC-V so it is
moved to asm-generic.

Drop Arm and PPC's softirq.h and use asm-generic version instead.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V6:
 - Rebase only.
---
Changes in V5:
 - Strayed "Added" in commit message
 - Added Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
Changes in V4:
 - Added Reviewed-by: Michal Orzel <michal.orzel@amd.com>
 - Added Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V3:
 - Drop Arm and PPC's softirq.h
 - Update the commit message.
---
Changes in V2:
    - update the commit message.
---
 xen/arch/arm/include/asm/Makefile                         | 1 +
 xen/arch/ppc/include/asm/Makefile                         | 1 +
 xen/arch/ppc/include/asm/softirq.h                        | 8 --------
 .../arm/include/asm => include/asm-generic}/softirq.h     | 7 ++++---
 4 files changed, 6 insertions(+), 11 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/softirq.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/softirq.h (56%)

diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
index 0c855a798a..a28cc5d1b1 100644
--- a/xen/arch/arm/include/asm/Makefile
+++ b/xen/arch/arm/include/asm/Makefile
@@ -6,4 +6,5 @@ generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
+generic-y += softirq.h
 generic-y += vm_event.h
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index f09c5ea8a1..efd72862c8 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -8,4 +8,5 @@ generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += random.h
+generic-y += softirq.h
 generic-y += vm_event.h
diff --git a/xen/arch/ppc/include/asm/softirq.h b/xen/arch/ppc/include/asm/softirq.h
deleted file mode 100644
index a0b28a5e51..0000000000
--- a/xen/arch/ppc/include/asm/softirq.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __ASM_PPC_SOFTIRQ_H__
-#define __ASM_PPC_SOFTIRQ_H__
-
-#define NR_ARCH_SOFTIRQS 0
-
-#define arch_skip_send_event_check(cpu) 0
-
-#endif /* __ASM_PPC_SOFTIRQ_H__ */
diff --git a/xen/arch/arm/include/asm/softirq.h b/xen/include/asm-generic/softirq.h
similarity index 56%
rename from xen/arch/arm/include/asm/softirq.h
rename to xen/include/asm-generic/softirq.h
index 976e0ebd70..83be855e50 100644
--- a/xen/arch/arm/include/asm/softirq.h
+++ b/xen/include/asm-generic/softirq.h
@@ -1,11 +1,12 @@
-#ifndef __ASM_SOFTIRQ_H__
-#define __ASM_SOFTIRQ_H__
+/* SPDX-License-Identifier: GPL-2.0-only */
+#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_SOFTIRQ_H__ */
+#endif /* __ASM_GENERIC_SOFTIRQ_H__ */
 /*
  * Local variables:
  * mode: C
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657920.1027072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFj-0006eZ-0R; Wed, 20 Dec 2023 14:08:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657920.1027072; Wed, 20 Dec 2023 14:08:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFi-0006d5-Qo; Wed, 20 Dec 2023 14:08:50 +0000
Received: by outflank-mailman (input) for mailman id 657920;
 Wed, 20 Dec 2023 14:08:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFh-0005qp-8c
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08: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 4bb7eba4-9f41-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 15:08:48 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2cc6121c113so50310991fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:48 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bb7eba4-9f41-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081327; x=1703686127; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LbK8RQwLkr5f4USBRDmd1xzxpVRjYgivBsP0FHFB0fg=;
        b=nWbY9DkvwqpG5l7wXsuSQsrBotdH5Yar+qafXcFzCrxF26zPR39fN8Bqwxdcn8qXwa
         hyELEEXI6U7OU7vJ2UoZDgtwjmmsicMmdCYpXc/iJSD+AtF0h6GeaI1Lq2KjcNX2vTHR
         azfjYlWWgNhQpndW8CkNDNcWE9lf1SfPCra70rNhEociz5fZV/sp9pt/iBZWZMs+KGwW
         BDyIuKGJrFvWUaVks0nSIrhpx5PaTkEFeaY7jaBQCa2tLKZnsXdL39U24GqQko2FVK8L
         1ZCmYpBxxn6l8R8ePnSLFJhWIA9/n5jBGzJpymg76ZpFhjsu7Y1dHPCiv14NIqnU2TFI
         uHrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081327; x=1703686127;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=LbK8RQwLkr5f4USBRDmd1xzxpVRjYgivBsP0FHFB0fg=;
        b=ck0CjXdt2gWnJInud+5tzLdhRrSdp5q/sjROpfC4LCIydM6OyiXMC1V2MNzNslqBeI
         ahBbsdriwkylaaXG0O2vliLyl/+FJ+7a8I4xvrSSykXWiolKE0aiTHC24aLpLJO8ds1R
         biiq7JpgyVeizv6OpuFixKEwSF594EksT8LI75hfNLd1ML6mGZr1cUCwNWNIk+zG4sdo
         H3B5RPSJ/7hQIgbmPUY1T4ahtFqxB6vPtMkl9YIflm1aOwMK5HlNuXoh1Np+T0j1EW/P
         ZE4c/tWKFtWGQkR0W8FQghPYvKzLBhQxcc7GbifqraeWUea4nNnNq+hi1U02xFDVswTQ
         pZEg==
X-Gm-Message-State: AOJu0YzmYTiV3j/3gr04mrmV6ZHBymU69/PKDgDuHTv+McOllt39wZvF
	jfYZ/2e5+aVqGgAVe+iP9uK0iYi0ylU1HQ==
X-Google-Smtp-Source: AGHT+IHn1sfQ+dcmY3UMrZ9dsWrwzOLfkaxkBYOm7UbBVwyle+g/qca4wQn1PTi/h6E6hrMBm0WmfA==
X-Received: by 2002:a2e:90cd:0:b0:2cc:8b70:9082 with SMTP id o13-20020a2e90cd000000b002cc8b709082mr396636ljg.136.1703081327521;
        Wed, 20 Dec 2023 06:08:47 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v6 7/9] xen: ifdef inclusion of <asm/grant_table.h> in <xen/grant_table.h>
Date: Wed, 20 Dec 2023 16:08:29 +0200
Message-ID: <e49bae656ed6c0fe689703f78df4e815b955f5b2.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Ifdef-ing inclusion of <asm/grant_table.h> allows to avoid
generation of empty <asm/grant_table.h> for cases when
CONFIG_GRANT_TABLE is not enabled.

The following changes were done for Arm:
<asm/grant_table.h> should be included directly because it contains
gnttab_dom0_frames() macros which is unique for Arm and is used in
arch/arm/domain_build.c.
<asm/grant_table.h> is #ifdef-ed with CONFIG_GRANT_TABLE in
<xen/grant_table.h> so in case of !CONFIG_GRANT_TABLE gnttab_dom0_frames
won't be available for use in arch/arm/domain_build.c.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Remove the way how CONFIG_GRANT_TABLE is disabled for PPC and RISC-V.
---
Changes in V5:
 - Added dependencies for "Config GRANT_TABLE" to be sure that randconfig will not
   turn on the config.
---
Changes in V4:
 - Nothing changed. Only rebase.
---
Changes in V3:
 - Remove unnecessary comment.
---
 xen/arch/arm/domain_build.c            | 1 +
 xen/arch/ppc/include/asm/grant_table.h | 5 -----
 xen/include/xen/grant_table.h          | 3 +++
 3 files changed, 4 insertions(+), 5 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/grant_table.h

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 6945b9755d..46161848dc 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -36,6 +36,7 @@
 
 #include <xen/irq.h>
 #include <xen/grant_table.h>
+#include <asm/grant_table.h>
 #include <xen/serial.h>
 
 static unsigned int __initdata opt_dom0_max_vcpus;
diff --git a/xen/arch/ppc/include/asm/grant_table.h b/xen/arch/ppc/include/asm/grant_table.h
deleted file mode 100644
index d0ff58dd3d..0000000000
--- a/xen/arch/ppc/include/asm/grant_table.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_PPC_GRANT_TABLE_H__
-#define __ASM_PPC_GRANT_TABLE_H__
-
-#endif /* __ASM_PPC_GRANT_TABLE_H__ */
diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
index 85fe6b7b5e..50edfecfb6 100644
--- a/xen/include/xen/grant_table.h
+++ b/xen/include/xen/grant_table.h
@@ -26,7 +26,10 @@
 #include <xen/mm-frame.h>
 #include <xen/rwlock.h>
 #include <public/grant_table.h>
+
+#ifdef CONFIG_GRANT_TABLE
 #include <asm/grant_table.h>
+#endif
 
 struct grant_table;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657921.1027082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFk-0006yQ-Hk; Wed, 20 Dec 2023 14:08:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657921.1027082; Wed, 20 Dec 2023 14: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 1rFxFk-0006xY-Di; Wed, 20 Dec 2023 14:08:52 +0000
Received: by outflank-mailman (input) for mailman id 657921;
 Wed, 20 Dec 2023 14:08:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFj-0004kf-8t
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08: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 4c352719-9f41-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:08:49 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ca02def690so67130441fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:49 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c352719-9f41-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081329; x=1703686129; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=59F7K5RNi8wsdT3N0XNqdjgmsgxFVNgSxjJCoU/Uuzw=;
        b=VZBNY9zGE5bd3hlZYkcXOKF9gYvsyo/jeOBhOWYhNtKRJgJTw5EU6UeW4maIUMsdxJ
         o/biEA0Ec5eEmewOglx9q/NLQsERcYePUoRsEyDMoHJ4/Vmo0C9C5LLC04AeKg9U6gSV
         q6B803wu1VjJ3DDJbbIJTqs/1maOWYB0pawFDK5Azl8zFE1PgK+J/6Gwhulo96878qwd
         Yr/m3bw74NlT43ch6M98avLY4owHqxyoPGpLiV1RgvwelMnnkN4FbUm4mH0jDlVrGVRj
         PwZWSE7KjqN6aI+zpQtOiHRwV9rCyFK56tupp1nfEY5FzU9Y1/z4zJzaPm08ffXTdFPY
         TpmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081329; x=1703686129;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=59F7K5RNi8wsdT3N0XNqdjgmsgxFVNgSxjJCoU/Uuzw=;
        b=kGeFNYes4YxQmk2sE9MYJmuB9pNjK3sqZjOuMlyVYoI8dlLfNeLjcp7MzycPo/SooX
         KT8buAFRLFbpbsLHsn+lqcL8A9eL33dk3zVxDfaW+vxlVV/Z88QW7bdPSBKd7vIFkn3J
         iRzyy/HF3YC3WZmA1Qhk3qf8kMbHymoCdQ/D+2mzBh0Mn+Celf8XJtGBIkWtd/FgrfCz
         9HORD63t/lTjcEYWeoIb6SfMC1DMk8JwT1B8Y7eyXJj/idJAl/t+vp2LuTzhnEH6bo/R
         JsM30Rx0BMl7vYjmZb4KodX7AMZiyvjfFUnUIqWWpyi8DzB/cLotLsEP/VCqBfPyZPCd
         zkug==
X-Gm-Message-State: AOJu0YyZ053wgw8bASt/LWDbT6m6r1hj9PDFHJHieIP0U2D7PS1Uqpir
	hjEApBLP/Geyf3uiRlEs0GYogJFeN2e2jQ==
X-Google-Smtp-Source: AGHT+IGCP8WMWEHDSvexERJdAvmNWIbOs1nV9wgHM3v5bA664gKzx0U2bnh8LKnfPqAb2V/IT34nqg==
X-Received: by 2002:a2e:a705:0:b0:2cc:3793:5575 with SMTP id s5-20020a2ea705000000b002cc37935575mr4954186lje.93.1703081328943;
        Wed, 20 Dec 2023 06:08:48 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v6 8/9] xen/asm-generic: ifdef inclusion of <asm/mem_access.h>
Date: Wed, 20 Dec 2023 16:08:30 +0200
Message-ID: <bc97ed58ba9118042ff60c2cb6edacf4f64419d8.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

ifdefing inclusion of <asm/mem_access.h> in <xen/mem_access.h>
allows to avoid generation of empty <asm/mem_access.h> header
for the case when !CONFIG_MEM_ACCESS.

For Arm it was explicitly added inclusion of <asm/mem_access.h> for p2m.c
and traps.c because they require some functions from <asm/mem_access.h> which
aren't available in case of !CONFIG_MEM_ACCESS.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Remove the way how CONFIG_MEM_ACCESS is disabled for PPC and RISC-V.
 - Disable the config in ppc64_defconfig and tiny64_defconfig (RISC-V).
---
Changes in V5:
 - Added dependencies for "Config MEM_ACCESS" to be sure that randconfig will not
   turn on the config.
---
Changes in V4:
 - Nothing changed. Only rebase.
---
Changes in V3:
 - Remove unnecessary comment.
---
 xen/arch/arm/p2m.c                      | 1 +
 xen/arch/arm/traps.c                    | 1 +
 xen/arch/ppc/configs/ppc64_defconfig    | 1 +
 xen/arch/ppc/include/asm/mem_access.h   | 5 -----
 xen/arch/riscv/configs/tiny64_defconfig | 1 +
 xen/include/xen/mem_access.h            | 2 ++
 6 files changed, 6 insertions(+), 5 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/mem_access.h

diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index b991b76ce4..2465c266e9 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -7,6 +7,7 @@
 #include <asm/event.h>
 #include <asm/flushtlb.h>
 #include <asm/guest_walk.h>
+#include <asm/mem_access.h>
 #include <asm/page.h>
 #include <asm/traps.h>
 
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 3784e8276e..37a457f4b1 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -35,6 +35,7 @@
 #include <asm/cpufeature.h>
 #include <asm/event.h>
 #include <asm/hsr.h>
+#include <asm/mem_access.h>
 #include <asm/mmio.h>
 #include <asm/regs.h>
 #include <asm/smccc.h>
diff --git a/xen/arch/ppc/configs/ppc64_defconfig b/xen/arch/ppc/configs/ppc64_defconfig
index f7cc075e45..48a053237a 100644
--- a/xen/arch/ppc/configs/ppc64_defconfig
+++ b/xen/arch/ppc/configs/ppc64_defconfig
@@ -6,6 +6,7 @@
 # CONFIG_HYPFS is not set
 # CONFIG_GRANT_TABLE is not set
 # CONFIG_SPECULATIVE_HARDEN_ARRAY is not set
+# CONFIG_MEM_ACCESS is not set
 
 CONFIG_PPC64=y
 CONFIG_DEBUG=y
diff --git a/xen/arch/ppc/include/asm/mem_access.h b/xen/arch/ppc/include/asm/mem_access.h
deleted file mode 100644
index e7986dfdbd..0000000000
--- a/xen/arch/ppc/include/asm/mem_access.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_PPC_MEM_ACCESS_H__
-#define __ASM_PPC_MEM_ACCESS_H__
-
-#endif /* __ASM_PPC_MEM_ACCESS_H__ */
diff --git a/xen/arch/riscv/configs/tiny64_defconfig b/xen/arch/riscv/configs/tiny64_defconfig
index 3c9a2ff941..09defe236b 100644
--- a/xen/arch/riscv/configs/tiny64_defconfig
+++ b/xen/arch/riscv/configs/tiny64_defconfig
@@ -6,6 +6,7 @@
 # CONFIG_HYPFS is not set
 # CONFIG_GRANT_TABLE is not set
 # CONFIG_SPECULATIVE_HARDEN_ARRAY is not set
+# CONFIG_MEM_ACCESS is not set
 
 CONFIG_RISCV_64=y
 CONFIG_DEBUG=y
diff --git a/xen/include/xen/mem_access.h b/xen/include/xen/mem_access.h
index 4e4811680d..87d93b31f6 100644
--- a/xen/include/xen/mem_access.h
+++ b/xen/include/xen/mem_access.h
@@ -33,7 +33,9 @@
  */
 struct vm_event_st;
 
+#ifdef CONFIG_MEM_ACCESS
 #include <asm/mem_access.h>
+#endif
 
 /*
  * Additional access types, which are used to further restrict
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:08:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:08:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.657922.1027092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFn-0007Ne-2s; Wed, 20 Dec 2023 14:08:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 657922.1027092; Wed, 20 Dec 2023 14:08:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxFm-0007NF-TY; Wed, 20 Dec 2023 14:08:54 +0000
Received: by outflank-mailman (input) for mailman id 657922;
 Wed, 20 Dec 2023 14:08: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=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFxFl-0004kf-It
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:08:53 +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 4d5a4a11-9f41-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:08:51 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2cc88818ff0so7978951fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:08:51 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 d19-20020a05651c089300b002cc83c337absm593892ljq.70.2023.12.20.06.08.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:08:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d5a4a11-9f41-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703081330; x=1703686130; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=l5hZac8T3jtrrOdrwYepDlnvnIB7as+Cequ/jYw4TJQ=;
        b=HDl0koUi7HoSeFsD3CCpXaoqQYBXvCWW2zEHXg0eywG+N+NcbC4IfDWsUHtjKegHk8
         t8wn5HlsvjYR2sKWR6+6WrynrUVGf52Ew+J/gdr5D208c50xIiS8HXrPDWBev/LC9aYy
         d1KzR2TbhOH0ZQ8sWulbQuKe+kcFHXxwlHV1vNJSlyKzTjFdvCSfyEdhEqAIKGPq1hKO
         Cdx2JA9I5V+RFvOluwvbteXnW8E7btpmNSbcG4iNBAUyHGDggS09t2k84S8USm5K+Aqx
         XZelxpCqz10uLxXqQy4deEucjqdJt10rC3aIQ82n3oTePHaTtDyVmXgmR/lkxcnVDrEs
         VB9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703081330; x=1703686130;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=l5hZac8T3jtrrOdrwYepDlnvnIB7as+Cequ/jYw4TJQ=;
        b=J4mmvJE+7PcEZSXXRGBwEigA4iTbOradsNCq1YOPoe/pwVPmVwl7Kmh9Wzq7cWTdIK
         Z/OyT7JBa9Q+Rd0Yjwz9ncHfrvy24f8WslBLO5iL3fEuRPq5+7Y89L8W1QsTiCcFI6sZ
         1XRMD7Pi+ztllWH8/oe8v8g2kFjN8knoAyzsnYgIbs9A0fX6eziWhHNmqI9hNHXvwg23
         ZNhgAkcyeP5k2/tSs7LiKWt4TyDtMWqUbueoL3zNrCRLdqhuMBicorcK1uQO2pl2Ekqt
         Cn0yZYenLW+EZag7MYIVvJGBj3jMsFN2QkgkLjUNUjwzm/UaAlOCpZKuyWxJdy/XJM50
         t/Wg==
X-Gm-Message-State: AOJu0YzcP7zKAhP78klfCtA87eIamjQ1Og/rb6UQvO9s1rc3pxfphuym
	2bhgspdnqaiJdYT7wzGisFFsR5IaSItXJQ==
X-Google-Smtp-Source: AGHT+IHeZWoaNplXjFJwqDGfAWMCs59YzB4vAzO6nirkM+j526FuX3lgGxa0m7RVeqSvthqMkW0r6Q==
X-Received: by 2002:a05:651c:201d:b0:2cc:9320:bccb with SMTP id s29-20020a05651c201d00b002cc9320bccbmr505992ljo.2.1703081330318;
        Wed, 20 Dec 2023 06:08:50 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v6 9/9] xen/asm-generic: introduce generic device.h
Date: Wed, 20 Dec 2023 16:08:31 +0200
Message-ID: <55d6810e2f8b0f54261c504354bf879c5b887c40.1703072575.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Arm, PPC and RISC-V use the same device.h thereby device.h
was moved to asm-generic. Arm's device.h was taken as a base with
the following changes:
 - #ifdef PCI related things.
 - #ifdef ACPI related things.
 - Rename #ifdef guards.
 - Add SPDX tag.
 - #ifdef CONFIG_HAS_DEVICE_TREE related things.
 - #ifdef-ing iommu related things with CONFIG_HAS_PASSTHROUGH.

Also Arm and PPC are switched to asm-generic version of device.h

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---

     Jan wrote the following:
       Overall I think there are too many changes done all in one go here.
       But it's mostly Arm which is affected, so I'll leave judging about that
       to the Arm maintainers.
     
     Arm maintainers, will it be fine for you to not split the patch?
---
Changes in V6:
 - Rebase only.
---
Changes in V5:
  - Removed generated file: xen/include/headers++.chk.new
  - Removed pointless #ifdef CONFIG_HAS_DEVICE_TREE ... #endif for PPC as
    CONFIG_HAS_DEVICE_TREE will be always used for PPC.
---
Changes in V4:
 - Updated the commit message
 - Switched Arm and PPC to asm-generic version of device.h
 - Replaced HAS_PCI with CONFIG_HAS_PCI
 - ifdef-ing iommu filed of dev_archdata struct with CONFIG_HAS_PASSTHROUGH
 - ifdef-ing iommu_fwspec of device struct with CONFIG_HAS_PASSTHROUGH
 - ifdef-ing DT related things with CONFIG_HAS_DEVICE_TREE
 - Updated the commit message ( remove a note with question about
   if device.h should be in asm-generic or not )
 - Replaced DEVICE_IC with DEVICE_INTERRUPT_CONTROLLER
 - Rationalized usage of CONFIG_HAS_* in device.h
 - Fixed indents for ACPI_DEVICE_START and ACPI_DEVICE_END
---
Changes in V3:
 - ifdef device tree related things.
 - update the commit message
---
Changes in V2:
	- take ( as common ) device.h from Arm as PPC and RISC-V use it as a base.
	- #ifdef PCI related things.
	- #ifdef ACPI related things.
	- rename DEVICE_GIC to DEVIC_IC.
	- rename #ifdef guards.
	- switch Arm and PPC to generic device.h
	- add SPDX tag
	- update the commit message

---
 xen/arch/arm/device.c                         |  15 ++-
 xen/arch/arm/domain_build.c                   |   2 +-
 xen/arch/arm/gic-v2.c                         |   4 +-
 xen/arch/arm/gic-v3.c                         |   6 +-
 xen/arch/arm/gic.c                            |   4 +-
 xen/arch/arm/include/asm/Makefile             |   1 +
 xen/arch/ppc/include/asm/Makefile             |   1 +
 xen/arch/ppc/include/asm/device.h             |  53 --------
 .../asm => include/asm-generic}/device.h      | 125 +++++++++++-------
 9 files changed, 102 insertions(+), 109 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/device.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/device.h (79%)

diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
index 1f631d3274..affbe79f9a 100644
--- a/xen/arch/arm/device.c
+++ b/xen/arch/arm/device.c
@@ -16,7 +16,10 @@
 #include <xen/lib.h>
 
 extern const struct device_desc _sdevice[], _edevice[];
+
+#ifdef CONFIG_ACPI
 extern const struct acpi_device_desc _asdevice[], _aedevice[];
+#endif
 
 int __init device_init(struct dt_device_node *dev, enum device_class class,
                        const void *data)
@@ -45,6 +48,7 @@ int __init device_init(struct dt_device_node *dev, enum device_class class,
     return -EBADF;
 }
 
+#ifdef CONFIG_ACPI
 int __init acpi_device_init(enum device_class class, const void *data, int class_type)
 {
     const struct acpi_device_desc *desc;
@@ -61,6 +65,7 @@ int __init acpi_device_init(enum device_class class, const void *data, int class
 
     return -EBADF;
 }
+#endif
 
 enum device_class device_get_class(const struct dt_device_node *dev)
 {
@@ -329,9 +334,13 @@ int handle_device(struct domain *d, struct dt_device_node *dev, p2m_type_t p2mt,
     struct map_range_data mr_data = {
         .d = d,
         .p2mt = p2mt,
-        .skip_mapping = !own_device ||
-                        (is_pci_passthrough_enabled() &&
-                        (device_get_class(dev) == DEVICE_PCI_HOSTBRIDGE)),
+        .skip_mapping =
+                        !own_device
+#ifdef CONFIG_HAS_PCI
+                        || (is_pci_passthrough_enabled() &&
+                        (device_get_class(dev) == DEVICE_PCI_HOSTBRIDGE))
+#endif
+                        ,
         .iomem_ranges = iomem_ranges,
         .irq_ranges = irq_ranges
     };
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 46161848dc..085d88671e 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1651,7 +1651,7 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
      * Replace these nodes with our own. Note that the original may be
      * used_by DOMID_XEN so this check comes first.
      */
-    if ( device_get_class(node) == DEVICE_GIC )
+    if ( device_get_class(node) == DEVICE_INTERRUPT_CONTROLLER )
         return make_gic_node(d, kinfo->fdt, node);
     if ( dt_match_node(timer_matches, node) )
         return make_timer_node(kinfo);
diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index cf392bfd1c..5d6885e389 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1366,7 +1366,7 @@ static const struct dt_device_match gicv2_dt_match[] __initconst =
     { /* sentinel */ },
 };
 
-DT_DEVICE_START(gicv2, "GICv2", DEVICE_GIC)
+DT_DEVICE_START(gicv2, "GICv2", DEVICE_INTERRUPT_CONTROLLER)
         .dt_match = gicv2_dt_match,
         .init = gicv2_dt_preinit,
 DT_DEVICE_END
@@ -1381,7 +1381,7 @@ static int __init gicv2_acpi_preinit(const void *data)
     return 0;
 }
 
-ACPI_DEVICE_START(agicv2, "GICv2", DEVICE_GIC)
+ACPI_DEVICE_START(agicv2, "GICv2", DEVICE_INTERRUPT_CONTROLLER)
         .class_type = ACPI_MADT_GIC_VERSION_V2,
         .init = gicv2_acpi_preinit,
 ACPI_DEVICE_END
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 18289cd645..9e135aeb3d 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1879,7 +1879,7 @@ static const struct dt_device_match gicv3_dt_match[] __initconst =
     { /* sentinel */ },
 };
 
-DT_DEVICE_START(gicv3, "GICv3", DEVICE_GIC)
+DT_DEVICE_START(gicv3, "GICv3", DEVICE_INTERRUPT_CONTROLLER)
         .dt_match = gicv3_dt_match,
         .init = gicv3_dt_preinit,
 DT_DEVICE_END
@@ -1894,12 +1894,12 @@ static int __init gicv3_acpi_preinit(const void *data)
     return 0;
 }
 
-ACPI_DEVICE_START(agicv3, "GICv3", DEVICE_GIC)
+ACPI_DEVICE_START(agicv3, "GICv3", DEVICE_INTERRUPT_CONTROLLER)
         .class_type = ACPI_MADT_GIC_VERSION_V3,
         .init = gicv3_acpi_preinit,
 ACPI_DEVICE_END
 
-ACPI_DEVICE_START(agicv4, "GICv4", DEVICE_GIC)
+ACPI_DEVICE_START(agicv4, "GICv4", DEVICE_INTERRUPT_CONTROLLER)
         .class_type = ACPI_MADT_GIC_VERSION_V4,
         .init = gicv3_acpi_preinit,
 ACPI_DEVICE_END
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index d922ea67aa..b5a9c8266c 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -234,7 +234,7 @@ static void __init gic_dt_preinit(void)
         if ( !dt_get_parent(node) )
             continue;
 
-        rc = device_init(node, DEVICE_GIC, NULL);
+        rc = device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL);
         if ( !rc )
         {
             /* NOTE: Only one GIC is supported */
@@ -262,7 +262,7 @@ static void __init gic_acpi_preinit(void)
 
     dist = container_of(header, struct acpi_madt_generic_distributor, header);
 
-    if ( acpi_device_init(DEVICE_GIC, NULL, dist->version) )
+    if ( acpi_device_init(DEVICE_INTERRUPT_CONTROLLER, NULL, dist->version) )
         panic("Unable to find compatible GIC in the ACPI table\n");
 }
 #else
diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
index a28cc5d1b1..c3f4291ee2 100644
--- a/xen/arch/arm/include/asm/Makefile
+++ b/xen/arch/arm/include/asm/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 generic-y += altp2m.h
+generic-y += device.h
 generic-y += hardirq.h
 generic-y += iocap.h
 generic-y += numa.h
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index efd72862c8..adb752b804 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 generic-y += altp2m.h
+generic-y += device.h
 generic-y += div64.h
 generic-y += hardirq.h
 generic-y += hypercall.h
diff --git a/xen/arch/ppc/include/asm/device.h b/xen/arch/ppc/include/asm/device.h
deleted file mode 100644
index 8253e61d51..0000000000
--- a/xen/arch/ppc/include/asm/device.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef __ASM_PPC_DEVICE_H__
-#define __ASM_PPC_DEVICE_H__
-
-enum device_type
-{
-    DEV_DT,
-    DEV_PCI,
-};
-
-struct device {
-    enum device_type type;
-#ifdef CONFIG_HAS_DEVICE_TREE
-    struct dt_device_node *of_node; /* Used by drivers imported from Linux */
-#endif
-};
-
-enum device_class
-{
-    DEVICE_SERIAL,
-    DEVICE_IOMMU,
-    DEVICE_PCI_HOSTBRIDGE,
-    /* Use for error */
-    DEVICE_UNKNOWN,
-};
-
-struct device_desc {
-    /* Device name */
-    const char *name;
-    /* Device class */
-    enum device_class class;
-    /* List of devices supported by this driver */
-    const struct dt_device_match *dt_match;
-    /*
-     * Device initialization.
-     *
-     * -EAGAIN is used to indicate that device probing is deferred.
-     */
-    int (*init)(struct dt_device_node *dev, const void *data);
-};
-
-typedef struct device device_t;
-
-#define DT_DEVICE_START(name_, namestr_, class_)                    \
-static const struct device_desc __dev_desc_##name_ __used           \
-__section(".dev.info") = {                                          \
-    .name = namestr_,                                               \
-    .class = class_,                                                \
-
-#define DT_DEVICE_END                                               \
-};
-
-#endif /* __ASM_PPC_DEVICE_H__ */
diff --git a/xen/arch/arm/include/asm/device.h b/xen/include/asm-generic/device.h
similarity index 79%
rename from xen/arch/arm/include/asm/device.h
rename to xen/include/asm-generic/device.h
index b5d451e087..063c448c4e 100644
--- a/xen/arch/arm/include/asm/device.h
+++ b/xen/include/asm-generic/device.h
@@ -1,14 +1,37 @@
-#ifndef __ASM_ARM_DEVICE_H
-#define __ASM_ARM_DEVICE_H
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_GENERIC_DEVICE_H__
+#define __ASM_GENERIC_DEVICE_H__
+
+#include <xen/stdbool.h>
 
 enum device_type
 {
+#ifdef CONFIG_HAS_DEVICE_TREE
     DEV_DT,
+#endif
+
+#ifdef CONFIG_HAS_PCI
     DEV_PCI,
+#endif
+    DEV_TYPE_MAX,
+};
+
+enum device_class
+{
+    DEVICE_SERIAL,
+    DEVICE_IOMMU,
+    DEVICE_INTERRUPT_CONTROLLER,
+#ifdef CONFIG_HAS_PCI
+    DEVICE_PCI_HOSTBRIDGE,
+#endif
+    /* Use for error */
+    DEVICE_UNKNOWN,
 };
 
 struct dev_archdata {
+#ifdef CONFIG_HAS_PASSTHROUGH
     void *iommu;    /* IOMMU private data */
+#endif
 };
 
 /* struct device - The basic device structure */
@@ -19,31 +42,65 @@ struct device
     struct dt_device_node *of_node; /* Used by drivers imported from Linux */
 #endif
     struct dev_archdata archdata;
+#ifdef CONFIG_HAS_PASSTHROUGH
     struct iommu_fwspec *iommu_fwspec; /* per-device IOMMU instance data */
+#endif
 };
 
 typedef struct device device_t;
 
+#ifdef CONFIG_HAS_DEVICE_TREE
+
 #include <xen/device_tree.h>
 
-#define dev_is_pci(dev) ((dev)->type == DEV_PCI)
 #define dev_is_dt(dev)  ((dev)->type == DEV_DT)
 
-enum device_class
-{
-    DEVICE_SERIAL,
-    DEVICE_IOMMU,
-    DEVICE_GIC,
-    DEVICE_PCI_HOSTBRIDGE,
-    /* Use for error */
-    DEVICE_UNKNOWN,
+/**
+ *  device_init - Initialize a device
+ *  @dev: device to initialize
+ *  @class: class of the device (serial, network...)
+ *  @data: specific data for initializing the device
+ *
+ *  Return 0 on success.
+ */
+int device_init(struct dt_device_node *dev, enum device_class class,
+                const void *data);
+
+/**
+ * device_get_type - Get the type of the device
+ * @dev: device to match
+ *
+ * Return the device type on success or DEVICE_ANY on failure
+ */
+enum device_class device_get_class(const struct dt_device_node *dev);
+
+#define DT_DEVICE_START(_name, _namestr, _class)                    \
+static const struct device_desc __dev_desc_##_name __used           \
+__section(".dev.info") = {                                          \
+    .name = _namestr,                                               \
+    .class = _class,                                                \
+
+#define DT_DEVICE_END                                               \
 };
 
+#else /* !CONFIG_HAS_DEVICE_TREE */
+#define dev_is_dt(dev) ((void)(dev), false)
+#endif /* CONFIG_HAS_DEVICE_TREE */
+
+#ifdef CONFIG_HAS_PCI
+#define dev_is_pci(dev) ((dev)->type == DEV_PCI)
+#else
+#define dev_is_pci(dev) ((void)(dev), false)
+#endif
+
 struct device_desc {
     /* Device name */
     const char *name;
     /* Device class */
     enum device_class class;
+
+#ifdef CONFIG_HAS_DEVICE_TREE
+
     /* List of devices supported by this driver */
     const struct dt_device_match *dt_match;
     /*
@@ -52,8 +109,12 @@ struct device_desc {
      * -EAGAIN is used to indicate that device probing is deferred.
      */
     int (*init)(struct dt_device_node *dev, const void *data);
+
+#endif
 };
 
+#ifdef CONFIG_ACPI
+
 struct acpi_device_desc {
     /* Device name */
     const char *name;
@@ -75,44 +136,18 @@ struct acpi_device_desc {
 int acpi_device_init(enum device_class class,
                      const void *data, int class_type);
 
-/**
- *  device_init - Initialize a device
- *  @dev: device to initialize
- *  @class: class of the device (serial, network...)
- *  @data: specific data for initializing the device
- *
- *  Return 0 on success.
- */
-int device_init(struct dt_device_node *dev, enum device_class class,
-                const void *data);
-
-/**
- * device_get_type - Get the type of the device
- * @dev: device to match
- *
- * Return the device type on success or DEVICE_ANY on failure
- */
-enum device_class device_get_class(const struct dt_device_node *dev);
+#define ACPI_DEVICE_START(_name, _namestr, _class)              \
+static const struct acpi_device_desc __dev_desc_##_name __used  \
+__section(".adev.info") = {                                     \
+    .name = _namestr,                                           \
+    .class = _class,                                            \
 
-#define DT_DEVICE_START(_name, _namestr, _class)                    \
-static const struct device_desc __dev_desc_##_name __used           \
-__section(".dev.info") = {                                          \
-    .name = _namestr,                                               \
-    .class = _class,                                                \
-
-#define DT_DEVICE_END                                               \
+#define ACPI_DEVICE_END                                         \
 };
 
-#define ACPI_DEVICE_START(_name, _namestr, _class)                    \
-static const struct acpi_device_desc __dev_desc_##_name __used           \
-__section(".adev.info") = {                       \
-    .name = _namestr,                                               \
-    .class = _class,                                                \
-
-#define ACPI_DEVICE_END                                               \
-};
+#endif /* CONFIG_ACPI */
 
-#endif /* __ASM_ARM_DEVICE_H */
+#endif /* __ASM_GENERIC_DEVICE_H__ */
 
 /*
  * Local variables:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:22:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:22:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658015.1027102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxT4-0006XT-9w; Wed, 20 Dec 2023 14:22:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658015.1027102; Wed, 20 Dec 2023 14:22:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxT4-0006XM-7K; Wed, 20 Dec 2023 14:22:38 +0000
Received: by outflank-mailman (input) for mailman id 658015;
 Wed, 20 Dec 2023 14:22:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFxT3-0006XG-1K
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:22:37 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37fad25d-9f43-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:22:34 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3367903b4dcso932946f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:22:35 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 bg5-20020a05600c3c8500b0040c4c9c52a3sm7648810wmb.12.2023.12.20.06.22.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:22:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37fad25d-9f43-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703082154; x=1703686954; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=/b+Wb4Yy7ZZ/+P3oSE+3rWWGbRIiai4YHUTvommzc/U=;
        b=ncpZjHzJRThreCu5PO6q/tJV7bW/kunQl/yr3hXaX10QzzYE6F5t9Z8yUdCUNu7qkd
         FlAu3ZMrfjsp7ViIekb5QDRRRpNCJqthLrZ3laWE5+YlN15jhIGIJ0jjD4boJ6WOk4Os
         4ziz0nOxUFQM6kKIlsPWhYysgfp3UOvZdvxVQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703082154; x=1703686954;
        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=/b+Wb4Yy7ZZ/+P3oSE+3rWWGbRIiai4YHUTvommzc/U=;
        b=Vs6GB7ldHszMvu6nHVR2tXOMocGISaASZj7byXQ9Fh8NVS2rSjYv8nXamTb+XVBTE5
         HQN3x/FudCldqB2VNm1pTK7/h8gqwjVzURoqSIIZx637koq49PtxneicR768L4UujyyU
         oKhhDG6HMuH5chShd55FcieEf0sB9gHYsl8B3mJkrfe+HktoXExIAfvTkujZgOkssUP1
         gzd0K6Ghu9svR7K1sNN2Tt0WuYnKpTvYOmUv72LY1+pcRqNo02jvIOEJ92/7qLHFo+52
         bmVcy0/sF597TXcEW20/sedl/5VTydpB+x61wRHGTkY+xrtAxEeqhST7aA0QS4TMVYum
         USSA==
X-Gm-Message-State: AOJu0Yxowq8pV+jN+2Us/mur/jWd7BXgXQ0YCQSdzDrX+M4PHq2N3Iji
	ziEbKYkHtlyTapRuoG47ztoMIgd50eqtY55dl/Q=
X-Google-Smtp-Source: AGHT+IGP4Hhfa/kRuS1WkJo1Rb8P6zjwjICnl/t5/YT/rRpDw/+X4ukChu7/+AVaYRK1qrE60capRw==
X-Received: by 2002:a05:600c:1384:b0:40c:521a:5d11 with SMTP id u4-20020a05600c138400b0040c521a5d11mr8184731wmf.39.1703082153733;
        Wed, 20 Dec 2023 06:22:33 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH] x86/amd: extend CPU errata #1474 affected models
Date: Wed, 20 Dec 2023 15:22:18 +0100
Message-ID: <20231220142218.22850-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Errata #1474 does also affect models from family 17h ranges 00-2Fh, so the
errata now covers all the models released under Family 17h (Zen, Zen+ and
Zen2).

Additionally extend the workaround to Family 18h (Hygon), since it's based on
the Zen architecture and very likely affected.

Rename all the zen2 related symbols to plain zen, since the errata doesn't
exclusively affect Zen2 anymore.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
I'm unsure whether to just drop the zen_ prefix altogether, to not make it look
to only affect plain Zen (Zen1) models.
---
 xen/arch/x86/cpu/amd.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 0f305312ff2a..099646dc3994 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -54,7 +54,7 @@ bool __read_mostly amd_acpi_c1e_quirk;
 bool __ro_after_init amd_legacy_ssbd;
 bool __initdata amd_virt_spec_ctrl;
 
-static bool __read_mostly zen2_c6_disabled;
+static bool __read_mostly zen_c6_disabled;
 
 static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
 				 unsigned int *hi)
@@ -978,24 +978,24 @@ void amd_check_zenbleed(void)
 		       val & chickenbit ? "chickenbit" : "microcode");
 }
 
-static void cf_check zen2_disable_c6(void *arg)
+static void cf_check zen_disable_c6(void *arg)
 {
 	/* Disable C6 by clearing the CCR{0,1,2}_CC6EN bits. */
 	const uint64_t mask = ~((1ul << 6) | (1ul << 14) | (1ul << 22));
 	uint64_t val;
 
-	if (!zen2_c6_disabled) {
+	if (!zen_c6_disabled) {
 		printk(XENLOG_WARNING
     "Disabling C6 after 1000 days apparent uptime due to AMD errata 1474\n");
-		zen2_c6_disabled = true;
+		zen_c6_disabled = true;
 		/*
 		 * Prevent CPU hotplug so that started CPUs will either see
-		 * zen2_c6_disabled set, or will be handled by
+		 * zen_c6_disabled set, or will be handled by
 		 * smp_call_function().
 		 */
 		while (!get_cpu_maps())
 			process_pending_softirqs();
-		smp_call_function(zen2_disable_c6, NULL, 0);
+		smp_call_function(zen_disable_c6, NULL, 0);
 		put_cpu_maps();
 	}
 
@@ -1294,8 +1294,8 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	amd_check_zenbleed();
 	amd_check_erratum_1485();
 
-	if (zen2_c6_disabled)
-		zen2_disable_c6(NULL);
+	if (zen_c6_disabled)
+		zen_disable_c6(NULL);
 
 	check_syscfg_dram_mod_en();
 
@@ -1307,7 +1307,7 @@ const struct cpu_dev amd_cpu_dev = {
 	.c_init		= init_amd,
 };
 
-static int __init cf_check zen2_c6_errata_check(void)
+static int __init cf_check amd_check_erratum_1474(void)
 {
 	/*
 	 * Errata #1474: A Core May Hang After About 1044 Days
@@ -1315,7 +1315,8 @@ static int __init cf_check zen2_c6_errata_check(void)
 	 */
 	s_time_t delta;
 
-	if (cpu_has_hypervisor || boot_cpu_data.x86 != 0x17 || !is_zen2_uarch())
+	if (cpu_has_hypervisor ||
+	    (boot_cpu_data.x86 != 0x17 && boot_cpu_data.x86 != 0x18))
 		return 0;
 
 	/*
@@ -1330,10 +1331,10 @@ static int __init cf_check zen2_c6_errata_check(void)
 	if (delta > 0) {
 		static struct timer errata_c6;
 
-		init_timer(&errata_c6, zen2_disable_c6, NULL, 0);
+		init_timer(&errata_c6, zen_disable_c6, NULL, 0);
 		set_timer(&errata_c6, NOW() + delta);
 	} else
-		zen2_disable_c6(NULL);
+		zen_disable_c6(NULL);
 
 	return 0;
 }
@@ -1341,4 +1342,4 @@ static int __init cf_check zen2_c6_errata_check(void)
  * Must be executed after early_time_init() for tsc_ticks2ns() to have been
  * calibrated.  That prevents us doing the check in init_amd().
  */
-presmp_initcall(zen2_c6_errata_check);
+presmp_initcall(amd_check_erratum_1474);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:30:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:30:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658059.1027115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxa9-0002Q9-6a; Wed, 20 Dec 2023 14:29:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658059.1027115; Wed, 20 Dec 2023 14:29: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 1rFxa9-0002Q2-3C; Wed, 20 Dec 2023 14:29:57 +0000
Received: by outflank-mailman (input) for mailman id 658059;
 Wed, 20 Dec 2023 14:29:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x1++=H7=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rFxa7-0002Og-Vn
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:29: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 3cd54520-9f44-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:29:52 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a22deb95d21so675727966b.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:29:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3cd54520-9f44-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703082592; x=1703687392; 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=XBc436qXB1B0EPuIiu6OT/PUzlzUKensN/4zUe1t/vE=;
        b=DBWi5W53Oj613vdVfePhd6WS2xgVpQzd9Xiz0oe0B5qS/vD3bDqGAUnk6XW3YrzdYT
         t/Ab42ezpcXeJ4wZJApnW8zKvIfWkglbHaB8dmK3xLw+UW+4Q7GiK6Yyf/pqwPqOTXYt
         gRbmTOxNOZsrij6JKdOcyFehsKklbQuPQGvY9j6z+DxVQKfNgRnXzHIDu44H3tNftZDr
         eOkAFHB5dTgweALvsRDFWLl+8hSpnDQU6TarS7gUQVafs9s1yG8kp20UJ6Hc76B7ntbX
         LoSxmG3V9+f2Ps/JQx0cCcP9A/5hYEibuNi2aCJ9WtRZx/etEm2Jg1pJ6UdnXM5v90e2
         9PJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703082592; x=1703687392;
        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=XBc436qXB1B0EPuIiu6OT/PUzlzUKensN/4zUe1t/vE=;
        b=a+Js3kGtzadUW+lyVFa5Uh3b+edzs/xi6qSKiRlJ8Oc6o+z0KEFkI3z1FGtCjsk2wN
         LSNU6mw+kZgMm+1NQj/CTeHC11vzcsu2cw9nkIsfNuRpp9lYHbk6naiweuFf9pHXYbsn
         CQwUjwg0KFOrhu1HIl9vw6L6LNenAMh7lv9oOLQ4V/zGsReXFJGjzPL7pzixf4ABdYJP
         1kozpt/Md4Y9v0JH+zgyG8Bo33mp6UtgxTZE7Fzs3YPX0lsxZykNXnKqsLsYzU1dE3PV
         za8cevFdbTdJvRCfrtVonXV3yzgD5lhhwKt0uaXMYxvQZeM4c2vEsRRDZHiWwZli6DF0
         iEww==
X-Gm-Message-State: AOJu0Yx5jvtb46ipX3k13YugnGFqi6NPAW0LMHJYabWpdHuy7fo5qwjF
	5pFqxIWvgPWs/kulzTAfQYAyBnF8uZxqZXRKcHc=
X-Google-Smtp-Source: AGHT+IFuROEyqY/4uGXI13IEhd7kcnPBsZL+FYIO1799X7f3Zb9CitPKYffddfVtl/VsXgUaY23HCMUjq735cAXh//w=
X-Received: by 2002:a17:906:51cf:b0:a23:71cf:ab11 with SMTP id
 v15-20020a17090651cf00b00a2371cfab11mr1461811ejk.10.1703082591486; Wed, 20
 Dec 2023 06:29:51 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us> <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us> <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
 <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
 <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com> <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com>
In-Reply-To: <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com>
From: Mario Marietto <marietto2008@gmail.com>
Date: Wed, 20 Dec 2023 15:29:14 +0100
Message-ID: <CA+1FSig3-ZVMrMwrSsYJOGo+T2zWTrj8B-sz60rjRuUPDfx0Lw@mail.gmail.com>
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM Chromebook
To: Warner Losh <imp@bsdimp.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, 
	Stanislav Silnicki <stanislav.silnicki@mailgate.us>, freebsd-arm@freebsd.org, 
	Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
Content-Type: multipart/alternative; boundary="000000000000e38930060cf1d01d"

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

Hello.

@Warner Losh <imp@bsdimp.com> : thanks for your help with the
virtualization of FreeBSD with qemu,but I have already achieved this goal.
The image file that I'm using (FreeBSD-13.2-RELEASE-armv7.img,raw,xvda) is
already able to boot with qemu-kvm on my ARM Chromebook. We have also fixed
the virtio-net driver bug on the FreeBSD forum,on this post started by me :

https://forums.freebsd.org/threads/im-trying-to-virtualize-freebsd-13-2-for=
-armv7-on-my-arm-chromebook-armhf-with-qemu-kvm.89965/

Booting FreeBSD as domU using Xen instead of qemu-kvm is another story.

On Wed, Dec 20, 2023 at 5:52=E2=80=AFAM Warner Losh <imp@bsdimp.com> wrote:

> I'd think you'd need the right virtualization loader. I'm not entirely
> sure the u-boot.bin you've been creating is for a dom-u..
> If I misunderstood, then the below isn't good advice. Chain booting the
> u-boot, the first u-boot initializes things so you want
> to start with stage after the SPL. But the different error messages
> suggest that it's trying to reboot with kexec, which
> isn't supported on armv7 at the moment.
>
> If you could boot in kvm, I think that the following would work....
> Though I'm not entirely sure how to
> specify the two .fd files in your setup. The use of qemu is to have an
> easy env to debug things... I don't
> have a chromebook to try...
>
> My first instinct would be to try qemu on x86 (this is the first step of
> many to get to your destination).
>
> If you could boot the GENERIC_SD image that we produce using qemu +
> edk2-arm-code.fd that would
> be a huge first step. This will give you the boot loader, I believe, to
> boot in the VM that you need better
> than going via the u-boot route. Since you are booting in a virtualized
> environment, I think it wouldn't
> matter which one :).
>
> So, I did the following to boot the virtualized armv7 FreeBSD environment=
,
> following a post on the forums I found and knew to have the right recipe:
>
> https://forums.freebsd.org/threads/run-boot-freebsd-arm-32bit-image-in-qe=
mu.80765/
>
> 1. pkg install qemu
> 2. mkdir qemu-armv7-env
> 3. cd qemu-armv7-env
> 4. fetch
> https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/14.0/FreeBSD-1=
4.0-RELEASE-arm-armv7-GENERICSD.img.xz
> 5. xz -d -T 0 FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz
> 6. dd if=3D/dev/zero of=3Dpflash0.img bs=3D1m count=3D64
> 7. dd if=3D/dev/zero of=3Dpflash1.img bs=3D1m count=3D64
> 8. dd if=3D/usr/local/share/qemu/edk2-arm-code.fd of=3Dpflash0.img conv=
=3Dnotrunc
> 9. dd if=3D/usr/local/share/qemu/edk2-arm-vars.fd of=3Dpflash1.img conv=
=3Dnotrunc
> 10. cat > start-freebsd-arm.sh
> #!/bin/sh
> qemu-system-arm \
>   -M virt \
>   -m 1024 \
>   -drive file=3Dpflash0.img,format=3Draw,if=3Dpflash,readonly=3Don \
>   -drive file=3Dpflash1.img,format=3Draw,if=3Dpflash \
>   -drive file=3D$1.img,if=3Dvirtio,cache=3Dwritethrough \
>   -nographic \
>   -serial mon:stdio
> ^D
> 11. chmod +x start-freebsd-arm.sh
> 12. ./start-freebsd-arm.sh FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD
>
> But I hit a snag with this on qemu 8.1.2 and 8.1.3 with both 13.2 and 14.=
0:
>
> Starting devd.
> Starting dhclient.
> DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 7
> Fatal kernel mode data abort: 'Alignment Fault' on read
> trapframe: 0xc4b36a60
> FSR=3D00000001, FAR=3Ddd96701a, spsr=3D20000013
> r0 =3D00000000, r1 =3D00000001, r2 =3D00000001, r3 =3Dc4b36b4c
> r4 =3D00000014, r5 =3Dd6618800, r6 =3Ddd96702e, r7 =3D0000022c
> r8 =3D00000000, r9 =3D0000022c, r10=3Ddd96701a, r11=3Dc4b36b90
> r12=3D4300ffff, ssp=3Dc4b36af0, slr=3Dc04a9728, pc =3Dc04a9750
>
> panic: Fatal abort
> cpuid =3D 0
> time =3D 1680843057
> KDB: stack backtrace:
> #0 0xc035786c at kdb_backtrace+0x48
> #1 0xc02fdd20 at vpanic+0x140
> #2 0xc02fdbe0 at vpanic+0
> #3 0xc06304ac at abort_align+0
> #4 0xc063052c at abort_align+0x80
> #5 0xc063017c at abort_handler+0x480
> #6 0xc060f480 at exception_exit+0
> #7 0xc04a9750 at udp_input+0x288
> #8 0xc0473f54 at ip_input+0x1e0
> #9 0xc04447c0 at netisr_dispatch_src+0xf8
> #10 0xc043bf2c at ether_demux+0x1a4
> #11 0xc043d5e4 at ether_nh_input+0x480
> #12 0xc04447c0 at netisr_dispatch_src+0xf8
> #13 0xc043c404 at ether_input+0x50
> #14 0xc01c0838 at vtnet_rx_vq_process+0x880
> #15 0xc01b70d0 at vtpci_intx_intr+0xac
> #16 0xc02b87f0 at ithread_loop+0x2ec
> #17 0xc02b465c at fork_exit+0xc0
> Uptime: 19s
>
> I don't know if this is a problem with qemu or FreeBSD's kernel...
>
> Warner
>
> On Tue, Dec 19, 2023 at 3:25=E2=80=AFPM Mario Marietto <marietto2008@gmai=
l.com>
> wrote:
>
>> I've asked some help on the channel #arm on Reddit and someone replied :
>>
>>
>> https://www.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_ar=
m32_bit_as_domu_with/
>>
>> Maybe his answer can be useful to understand why it does not work.
>>
>> On Tue, Dec 19, 2023 at 8:33=E2=80=AFPM Stefano Stabellini <
>> sstabellini@kernel.org> wrote:
>>
>>> +Michal
>>>
>>> Hi Mario,
>>>
>>> I am not sure about booting FreeBSD, but I am certain that u-boot works
>>> fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config
>>> file:
>>>
>>> name=3D"test"
>>> kernel=3D"u-boot.bin"
>>> extra =3D "console=3Dhvc0"
>>> memory=3D256
>>> vcpus=3D1
>>> disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>>>
>>> I don't know for sure if you can boot FreeBSD but you should definitely
>>> be able to see the u-boot command line prompt. The fact that you are
>>> getting this message:
>>>
>>> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader
>>> found: Invalid kernel
>>>
>>> Means that something is not right in the u-boot configuration or u-boot
>>> build. Michal and Artem (CCed) might know more. From what I recall,
>>> there was nothing special required to get u-boot.bin to boot as domU
>>> kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.
>>>
>>> Cheers,
>>>
>>> Stefano
>>>
>>>
>>> On Tue, 19 Dec 2023, Mario Marietto wrote:
>>> > ....I see that some other interesting files have been produced by
>>> u-boot when I have compiled it :
>>> >
>>> > u-boot
>>> > u-boot.lds
>>> > u-boot.bin
>>> > u-boot.map
>>> > u-boot-nodtb.bin
>>> > u-boot.dtb
>>> > u-boot.srec
>>> > u-boot-dtb.bin
>>> > u-boot.sym
>>> >
>>> > So,maybe I should use a different u-boot* file for booting FreeBSD ?
>>> >
>>> >
>>> > On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto <marietto2008@=
gmail.com>
>>> wrote:
>>> >       Hello to everyone.
>>> >
>>> > I have compiled the needed u-boot.bin from scratch using this
>>> procedure :
>>> >
>>> > # git clone https://github.com/u-boot/u-boot.git
>>> > # cd u-boot
>>> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig=
 :
>>> this line generates the file .config
>>> > # nano .config and I've added these parameters :
>>> >
>>> > CONFIG_ARMV7_NONSEC=3Dn
>>> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
>>> >
>>> > the uboot-bin file is generated with this command :
>>> >
>>> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make
>>> >
>>> > At this point,I took a look inside the .config file and I saw that th=
e
>>> parameter "CONFIG_ARMV7_NONSEC=3Dn" has been removed. So,for
>>> > some reason,it is not accepted and this could be a problem....
>>> >
>>> > These are the xen config files that I've used :
>>> >
>>> > nano freebsd.cfg
>>> >
>>> > name=3D"test"
>>> > kernel=3D"u-boot.bin"
>>> > extra =3D "console=3Dhvc0"
>>> > memory=3D256
>>> > vcpus=3D1
>>> > disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>>> >
>>> > nano start-freebsd
>>> >
>>> > xl create freebsd.cfg
>>> > xl console freebsd
>>> >
>>> > This is what happens when I launch the vm :
>>> >
>>> > # ./start-freebsd
>>> >
>>> > Parsing config from freebsd.cfg
>>> > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader
>>> found: Invalid kernel
>>> > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image
>>> failed
>>> > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
>>> 1:cannot (re-)build domain: -3
>>> > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
>>> 1:Non-existent domain
>>> > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
>>> 1:Unable to destroy guest
>>> > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
>>> 1:Destruction of domain failed
>>> > freebsd is an invalid domain identifier (rc=3D-6)
>>> >
>>> >
>>> > On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto <
>>> marietto2008@gmail.com> wrote:
>>> >       So,ok,I should have said "the second u-boot" ; since the first
>>> u-boot binary is the "u-boot binary located in the RO
>>> >       memory" of the Chromebook". Sorry for the confusion.
>>> >
>>> > On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto <
>>> marietto2008@gmail.com> wrote:
>>> >       ---> There are no specific options in u-boot devoted to FreeBSD
>>> >
>>> > This is an important factor. So,what about if,instead of compiling a
>>> new version of u-boot on the partition 2,I will
>>> > recompile the u-boot customized version created by the virtual open
>>> system in 2014,that should be installed on the first
>>> > partition ? It could work if there are no differences between the
>>> u-boot that should boot Linux and the u-boot that
>>> > should boot FreeBSD.
>>> >
>>> > Can you give a look at the u-boot source code created by virtual open
>>> systems ? You can find it on my google drive :
>>> >
>>> >
>>> https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?=
usp=3Dsharing
>>> >
>>> > I need to understand if I can recompile it without problem so that it
>>> can satisfy my needs (the ability of the file
>>> > u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano
>>> Stabellini,the xen developer that suggested to me
>>> > what I could do to have FreeBSD virtualized under Xen on my Arm
>>> Chromebook) ; otherwise the risk is to find later
>>> > problems that will make me troubles and that I will not able to fix.
>>> >
>>> > I gave a look at the virtual open system u-boot and I didn't see any
>>> arndale_defconfig inside. So,If I have understood
>>> > correctly,I should put that file inside the root of the u-boot source
>>> code,let's say here :
>>> >
>>> > marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls
>>> >
>>> > .checkpatch.conf        README                  doc
>>>                     net
>>> > .git                    api                     drivers
>>>                 onenand_ipl
>>> > .gitignore              arch                    dts
>>>                     post
>>> > COPYING                 board                   examples
>>>                rules.mk
>>> > CREDITS                 boards.cfg              fs
>>>                      scripts
>>> > MAINTAINERS             common                  include
>>>                 snapshot.commit
>>> > MAKEALL                 config.mk               lib
>>>                     spl
>>> > Makefile                cros                    mkconfig
>>>                test
>>> > PRESUBMIT.cfg           disk                    nand_spl
>>>                tools
>>> >
>>> > and I should do : make and make install ? and the file I
>>> need,u-boot.bin will be generated ?
>>> >
>>> > I didn't find any pre made configuration file inside :
>>> >
>>> > u-boot-vos # find . -type f -name "exynos*"
>>> >
>>> > ./include/exynos-fb.h
>>> > ./include/configs/exynos5-common.h
>>> > ./doc/device-tree-bindings/spi/exynos-spi.txt
>>> > ./doc/device-tree-bindings/usb/exynos-usb.txt
>>> > ./drivers/power/exynos-tmu.c
>>> > ./drivers/power/exynos-cpufreq.c
>>> > ./drivers/video/exynos-fb.c
>>> > ./drivers/spi/exynos_spi.c
>>> > ./board/samsung/dts/exynos5250-spring.dts
>>> > ./board/samsung/dts/exynos5250-smdk5250.dts
>>> > ./board/samsung/dts/exynos5250-snow.dts
>>> > ./board/samsung/dts/exynos5250-daisy.dts
>>> > ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h
>>> > ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h
>>> > ./arch/arm/dts/exynos5250.dtsi
>>> > ./arch/arm/dts/exynos-periph-id.dtsi
>>> > ./arch/arm/cpu/armv7/exynos5/exynos_cache.c
>>> >
>>> > u-boot-vos # find . -type f -name "arndale*"
>>> >
>>> > For sure I can't use a newer version of u-boot because otherwise the
>>> patches needed to bypass the bootloader protections
>>> > of the Arm Chromebook (such as a lot of different patches needed to
>>> boot correctly Linux) will be broken ; anyway,since
>>> > it works,I don't need to use an updated version of u-boot.
>>> >
>>> > ----> As per my experience, you have to respect these two options,
>>> compiling u-boot for
>>> > FreeBSD:
>>> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-mast=
er/files/FreeBSD_Fragment
>>> >
>>> > It says that I should use these parameters :
>>> >
>>> > CONFIG_ARMV7_NONSEC=3Dn
>>> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
>>> >
>>> > These are the parameters used to configure a Linux kernel. I don't
>>> understand what's the relation between the compilation
>>> > of a linux kernel and u-boot. In the past I tried to recompile
>>> u-boot,but I didn't have the need to set up those
>>> > parameters,so I don't know how to do it (but I know how to recompile =
a
>>> Linux kernel).
>>> >
>>> > ---> I'm not sure that I'm getting you right, as I don't understand
>>> what you mean under "the first u-boot".
>>> >
>>> >
>>> > I'm talking about first u-boot because the whole procedure to boot
>>> Linux on the ARM Chromebook,that's explained here :
>>> >
>>> >
>>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook=
/
>>> >
>>> >
>>> > at some point they say :
>>> >
>>> >
>>> > To be able to run KVM on ARM platforms, the kernel has to be booted i=
n
>>> hypervisor mode. Because of this relatively recent
>>> > requirement (due to the introduction of the virtualization
>>> extensions), up until now all booting methods would boot the
>>> > kernel in the standard Supervisor mode.
>>> >
>>> > For the ARM Chromebook the default boot procedure doesn't allow us to
>>> boot in hypervisor mode. Although the laptop's boot
>>> > mechanism is based on the frequently used u-boot, the binary is
>>> located in RO memory. Fortunately, a chained u-boot
>>> > mechanism can be used (i.e. starting another u-boot after the
>>> original). We can then enter hypervisor mode from our
>>> > custom iteration of u-boot and subsequently load our kernel and
>>> userspace.
>>> >
>>> > So,the first u-boot is the u-boot provided by virtual open
>>> systems,that's able to chainload the "u-boot binary located in
>>> > RO memory" , that does not boot Chrome OS in hypervisor mode. We don'=
t
>>> need it if we want to boot Linux with kvm or xen
>>> > enabled.
>>> >
>>> >
>>> > On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki <
>>> stanislav.silnicki@mailgate.us> wrote:
>>> >       I'm not an expert in the topic, I only know, that ARM has
>>> divided hardware into two worlds - Secure and
>>> >       Not-So, strictly limiting any software, running in non-secure
>>> world with access to functions and
>>> >       resources.
>>> https://developer.arm.com/documentation/den0013/d/Security/TrustZone-ha=
rdware-architecture?lang=3Den
>>> <https://developerarm.com/documentation/den0013/d/Security/TrustZone-ha=
rdware-architecture?lang=3Den>
>>> >
>>> > I'm not sure, that I'm getting you right, as I don't understand what
>>> you mean under "the first u-boot".
>>> >
>>> > As I understand, virtualization (HYP) is running in non-secure world(
>>> https://developer.arm.com/documentation/ddi0406/c/System-Level-Architec=
ture/The-System-Level-Programmers--Model/The-Virtualization-Extens
>>> > ions), so my guess (only guess!!!), virtualization software has to
>>> prepare (configure) HW platform in the way,
>>> > that FreeBSD kernel will not lack any resources, required to configur=
e
>>> MPU, VA, etc.
>>> > So, if you lucky to boot virtualizer, which is aware of target OS,
>>> that maybe you can boot the kernel. Although, I
>>> > doubt, that you need to boot 'second' u-boot to boot the kernel -
>>> there is simply ubldr, which you can hook somehow
>>> > from virtualizer....
>>> >
>>> > Stan
>>> >
>>> >
>>> >
>>> > Mario Marietto wrote:
>>> >
>>> >
>>> >       ---> As I understand, it makes sure that u-boot keeps in secure
>>> mode during boot and passes control to
>>> >       ubldr, which boots FreeBSD kernel, in that mode.
>>> >
>>> > Can you elaborate your sentence more ? I know that the bootloader
>>> secure mode is bypassed by the virtual open
>>> > systems u-boot. Are you saying that when the control passes to the
>>> second u-boot,it will happen in secure
>>> > mode,so that the bypass that happened loading the first u-boot,is
>>> annulled ? If this is true,maybe can I boot
>>> > FreeBSD using the virtual-open-system custom u-boot ? Is this
>>> compatible with FreeBSD ? Where can I find the
>>> > u-boot.bin that the xen developer talked about ? thanks bro'.
>>> >
>>> >
>>> >
>>> > On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki <
>>> stanislav.silnicki@mailgate.us> wrote:
>>> >       Hi Mario,
>>> >
>>> > U-Boot  beast is hiding in this den:
>>> https://source.denx.de/u-boot/u-boot.git
>>> > I took a brief look at your post and it seems to me, that
>>> option CONFIG_CMO_BY_VA_ONLY is irrelevant to
>>> > your target armv7 32 bit
>>> > platform:
>>> https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/cpu/armv8/K=
config?ref_type=3Dheads#L3
>>> >
>>> > As for compiling the u-boot, it is a doable task, given that you
>>> understand what you are doing. There
>>> > are no specific options in u-boot devoted to FreeBSD. It is a boot
>>> loader, whose mission to make basic
>>> > hardware initialization, read you kernel file from some media into RA=
M
>>> and then pass it control.
>>> >
>>> > Basically, you can grab some defconfig, prepared for any other
>>> Exynos5250 based board  (say, this one:
>>> >
>>> https://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defc=
onfig?ref_type=3Dheads)
>>> and adopt
>>> > it somehow.
>>> >
>>> > As per my experience, you have to respect these two options, compilin=
g
>>> u-boot for
>>> > FreeBSD:
>>> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-mast=
er/files/FreeBSD_Fragment
>>> >
>>> > As I understand, it makes sure, that u-boot keeps in secure mode
>>> during boot and passes control to
>>> > ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lo=
t
>>> of surprises you may realize.
>>> >
>>> > Hope, this will help to progress you tasks
>>> > Stan
>>> >
>>> > Mario Marietto wrote:
>>> >
>>> >
>>> >       Hello.
>>> >
>>> >       I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM
>>> Chromebook. Basically there are
>>> >       two ways to accomplish this task :
>>> >
>>> >       1) to write a patch that allows the FreeBSD kernel to boot as a
>>> zImage file. This could be
>>> >       accomplished applying this patch to a specific file that's on
>>> the source code of FreeBSD :
>>> >
>>> >
>>> >
>>> https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98cc139147271703=
5f986c979edef0c9
>>> >
>>> >
>>> >       This patch was written by Julien Grall a lot of time ago and no=
w
>>> it does not work anymore.
>>> >       This is the reason :
>>> >
>>> >
>>> >             It appears FreeBSD-CURRENT removed the last step
>>> converting the kernel file to
>>> >             kernel.bin. The patch can be readily rebased, but without
>>> kernel.bin that
>>> >             doesn't do too much
>>> >
>>> >
>>> >
>>> > So,without a rebase of that patch the first option is not applicable.
>>> And I'm not able to fix it.
>>> >
>>> > 2) booting FreeBSD using U-Boot,as explained to me by a xen developer=
 :
>>> >
>>> >
>>> >       I was trying to explain why and how Julien's patch works so tha=
t
>>> you could be the one
>>> >       to re-do something similar or fix the patch on the FreeBSD
>>> kernel that you are
>>> >       working with. I am happy to help review and write patches but I
>>> don't work with the
>>> >       FreeBSD kernel so I wouldn't be able to help you quickly.
>>> However, I might have a
>>> >       suggestion. Do you know if FreeBSD can be booted by U-Boot ?
>>> Because U-Boot
>>> >       definitely boots as Xen on ARM guest firmware/bootloader. You
>>> should be able to build
>>> >       U-Boot and use the U-Boot binary as Xen guest kernel, then
>>> U-Boot could load FreeBSD
>>> >       from disk or network and start it. For instance as domU config
>>> file:
>>> >
>>> >       kernel=3D"/home/petalinux/u-boot.bin"
>>> >       disk =3D [ '/home/petalinux/test.img,raw,xvda' ]
>>> >
>>> >       I know it is important to build u-boot with the following confi=
g
>>> to make it work on
>>> >       Xen.
>>> >
>>> >       CONFIG_CMO_BY_VA_ONLY=3Dy
>>> >
>>> >
>>> >
>>> > This option seems more doable to me according to my knowledge. But I
>>> need to understand how to do
>>> > it.
>>> >
>>> > Well,let's say that on the ARM Chromebook I'm forced to use and
>>> install a customized version of
>>> > u-boot,created by virtual open systems,because it is the only one tha=
t
>>> allows bypassing its
>>> > bootloader protection. You can find more information here :
>>> >
>>> >
>>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook=
/?vos=3Dtech
>>> >
>>> > This is the relevant section to read :
>>> >
>>> >
>>> >       Bootloader :
>>> >
>>> >       If you wish to skip this chapter you can download a pre-compile=
d
>>> binary of the
>>> >       bootloader:
>>> >
>>> >
>>> >       $ wget
>>> >
>>> http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv=
_u-boot-snow.kpart
>>> >
>>> >
>>> >       To be able to run KVM on ARM platforms, the kernel has to be
>>> booted in hypervisor
>>> >       mode. Because of this relatively recent requirement (due to the
>>> introduction of the
>>> >       virtualization extensions), up until now all booting methods
>>> would boot the kernel in
>>> >       the standard Supervisor mode. For the ARM Chromebook the defaul=
t
>>> boot procedure
>>> >       doesn't allow us to boot in hypervisor mode. Although the
>>> laptop's boot mechanism is
>>> >       based on the frequently used u-boot, the binary is located in R=
O
>>> memory. Fortunately,
>>> >       a chained u-boot mechanism can be used (i.e. starting another
>>> u-boot after the
>>> >       original). We can then enter hypervisor mode from our custom
>>> iteration of u-boot and
>>> >       subsequently load our kernel and userspace.
>>> >
>>> >       Checkout the needed u-boot code :
>>> >
>>> >
>>> >       $ git clone git://github.com/virtualopensystems/u-boot.git$ cd
>>> u-boot$
>>> >       ./scripts/build.sh
>>> >
>>> >
>>> >       If successful, a message about how to copy the bootloader on th=
e
>>> USB flash disk or SD
>>> >       card will appear. We will use it later when preparing the boot
>>> medium to start our
>>> >       system. If you have followed the Setting up the boot medium
>>> chapter and you have a
>>> >       prepared boot device, then you can update u-boot by running :
>>> >
>>> >
>>> >       $ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev/sdX1
>>> >
>>> >
>>> >
>>> > so,the needed u-boot that we must use should be installed on the firs=
t
>>> partition of the sd card.
>>> >
>>> > There is another relevant section to read :
>>> >
>>> >
>>> >       Setting up the boot medium
>>> >
>>> >       Now it is time to copy all the relevant files that we created i=
n
>>> the previous
>>> >       chapters,and use them to boot Chromebook with a different kerne=
l
>>> and OS. In all these
>>> >       examples the device /dev/sdX is used. Take extra care to change
>>> the examples to the
>>> >       device that you have attached. Insert the boot medium on your
>>> workstation and
>>> >       carefully execute the following step. First we need to properly
>>> format the boot
>>> >       medium.
>>> >
>>> >       In the uboot source directory :
>>> >
>>> >
>>> >       $ sudo ./scripts/sdcard.sh /dev/sdX
>>> >
>>> >
>>> >       This will erase all data and create 4 partitions in the medium,
>>> along with copying
>>> >       the u-boot binary to the first partition:
>>> >
>>> >
>>> >       Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
>>> >       Partition 2 =3D not used
>>> >       Partition 3 =3D EXT2 partition for u-boot files (uImage and
>>> exynos5250-snow.dtb)
>>> >       Partition 4 =3D EXT4 partition for userspace files
>>> >
>>> >
>>> >       With u-boot being copied, next is the kernel image and DTB file=
.
>>> From the kernel
>>> >       source execute :
>>> >
>>> >
>>> >       $ mkdir ../mnt/
>>> >       $ sudo mount /dev/sdX3 ../mnt/
>>> >       $ sudo cp arch/arm/boot/uImage ../mnt/
>>> >       $ sudo cp arch/arm/boot/dts/exynos5250-snow.dtb ../mnt/
>>> >       $ sudo umount /dev/sdX3
>>> >
>>> >
>>> >       Finally, we have to copy the Ubuntu userspace filesystem that w=
e
>>> created earlier:
>>> >
>>> >
>>> >       $ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./precise/* mnt/$ sudo
>>> umount /dev/sdX4
>>> >
>>> >
>>> >
>>> > Now,my idea is to chainload the already chain loaded u-boot created b=
y
>>> V.O.S to the new u-boot
>>> > that we need for booting FreeBSD and that can be installed in the
>>> partition n.2,as shown in this
>>> > scheme,because it is not used :
>>> >
>>> >
>>> > Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
>>> > Partition 2 =3D not used (maybe we can install the u-boot for arm 32
>>> bit,compatible with FreeBSD on
>>> > this partition)
>>> > Partition 3 =3D EXT2 partition for u-boot files (uImage and
>>> exynos5250-snow.dtb)
>>> > Partition 4 =3D EXT4 partition for userspace files
>>> >
>>> >
>>> > Take in consideration that default boot string is hardcoded here,in
>>> the snow.h file of the custom
>>> > u-boot created by VOS :
>>> >
>>> >
>>> >
>>> https://github.com/virtualopensyste...18a39b6c177dff58a/include/configs=
/snow.h#L101
>>> >
>>> >
>>> > and it needs to be recompiled because it should point to the partitio=
n
>>> n.2,where I will install
>>> > the u-boot files as explained here :
>>> >
>>> >
>>> > https://wiki.freebsd.org/arm/Chromebook
>>> >
>>> >
>>> > I have some questions to ask before I start working on this.
>>> >
>>> > 1) The xen developer said :
>>> >
>>> >
>>> >       You should be able to build U-Boot and use the U-Boot binary as
>>> Xen guest kernel...
>>> >
>>> >
>>> >
>>> > where is the u-boot binary,according to this document ?
>>> >
>>> > https://wiki.freebsd.org/arm/Chromebook
>>> >
>>> > I don't see it.
>>> >
>>> >
>>> > 2) where is the source code of the file that I can get here :
>>> >
>>> >
>>> http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/=
nv_uboot-snow-simplefb.kpart.bz2
>>> >
>>> > I need the source code if I want to recompile u-boot so that it can
>>> point to the partition 4.
>>> >
>>> > Maybe it can be found on this link :
>>> >
>>> > http://linux-exynos.org/dist/chromebook/nv_uboot/
>>> >
>>> > but it can't be opened....
>>> >
>>> >
>>> > 3) in this specific scenario the source code of u-boot should run on
>>> arm 32 bit,not on arm
>>> > 64,because I have the Samsung Chromebook "SNOW" model XE303C12,that's
>>> powered by a Samsung Exynos
>>> > 5250 (ARMv7 32 bit Cortex A15) Soc.
>>> >
>>> >
>>> > 4) I'm not sure if I can chainload the customized u-boot created by
>>> V.O.S that should be
>>> > installed on the first partition with the u-boot tailored for booting
>>> FreeBSD that should be
>>> > installed on the partition 2....
>>> >
>>> >
>>> > 5) the xen developer said that u-boot should be compiled enabling thi=
s
>>> option :
>>> >
>>> >
>>> > Code:
>>> >
>>> > CONFIG_CMO_BY_VA_ONLY=3Dy
>>> >
>>> >
>>> > Well,can you provide some good source that can help me to understand
>>> how I can recompile u-boot
>>> > for FreeBSD ? thanks.
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>
>>
>>
>> --
>> Mario.
>>
>

--=20
Mario.

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

<div dir=3D"ltr"><div>Hello.</div><div><br></div><div><a class=3D"gmail_plu=
sreply" id=3D"plusReplyChip-0" href=3D"mailto:imp@bsdimp.com" tabindex=3D"-=
1">@Warner Losh</a> : thanks for your help with the virtualization of FreeB=
SD with qemu,but I have already achieved this goal.=C2=A0</div><div>The ima=
ge file that I&#39;m using (<span class=3D"gmail-im">FreeBSD-13.2-RELEASE-a=
rmv7.img,raw,xvda) </span>is already able to boot with qemu-kvm on my ARM C=
hromebook. We have also fixed the virtio-net driver bug on the FreeBSD foru=
m,on this post started by me :</div><div><br></div><div><a href=3D"https://=
forums.freebsd.org/threads/im-trying-to-virtualize-freebsd-13-2-for-armv7-o=
n-my-arm-chromebook-armhf-with-qemu-kvm.89965/">https://forums.freebsd.org/=
threads/im-trying-to-virtualize-freebsd-13-2-for-armv7-on-my-arm-chromebook=
-armhf-with-qemu-kvm.89965/</a></div><div><br></div><div>Booting FreeBSD as=
 domU using Xen instead of qemu-kvm is another story. <br></div></div><br><=
div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Dec=
 20, 2023 at 5:52=E2=80=AFAM Warner Losh &lt;<a href=3D"mailto:imp@bsdimp.c=
om">imp@bsdimp.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote=
" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);=
padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><div>I&#39;d think you&=
#39;d need the right virtualization loader. I&#39;m not entirely sure the u=
-boot.bin you&#39;ve been creating is for a dom-u..=C2=A0</div><div>If I mi=
sunderstood, then the below isn&#39;t good advice. Chain booting the u-boot=
, the first u-boot initializes things so you want</div><div>to start with s=
tage after the SPL. But the different error messages suggest that it&#39;s =
trying to reboot with kexec, which</div><div>isn&#39;t supported on armv7 a=
t the moment.<br></div><div><br></div><div>If you could boot in kvm, I thin=
k that the following would work....=C2=A0 Though I&#39;m not entirely sure =
how to</div><div>specify the two .fd files in your setup. The use of qemu i=
s to have an easy env to debug things... I don&#39;t</div><div>have a chrom=
ebook to try...<br></div><div><br></div><div>My first instinct would be to =
try qemu on x86 (this is the first step of many to get to your destination)=
.</div><div><br></div><div>If you could boot the GENERIC_SD image that we p=
roduce using qemu + edk2-arm-code.fd that would</div><div>be a huge first s=
tep. This will give you the boot loader, I believe, to boot in the VM that =
you need better</div><div>than going via the u-boot route. Since you are bo=
oting in a virtualized environment, I think it wouldn&#39;t</div><div>matte=
r which one :).</div><div><br></div><div>So, I did the following to boot th=
e virtualized armv7 FreeBSD environment, following a post on the forums I f=
ound and knew to have the right recipe:</div><div><a href=3D"https://forums=
.freebsd.org/threads/run-boot-freebsd-arm-32bit-image-in-qemu.80765/" targe=
t=3D"_blank">https://forums.freebsd.org/threads/run-boot-freebsd-arm-32bit-=
image-in-qemu.80765/</a></div><div><br></div><div>1. pkg install qemu</div>=
<div>2. mkdir qemu-armv7-env</div><div>3. cd qemu-armv7-env</div><div>4. fe=
tch <a href=3D"https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/1=
4.0/FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz" target=3D"_blank">http=
s://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/14.0/FreeBSD-14.0-RE=
LEASE-arm-armv7-GENERICSD.img.xz</a></div><div>5. xz -d -T 0 FreeBSD-14.0-R=
ELEASE-arm-armv7-GENERICSD.img.xz</div><div>6. dd if=3D/dev/zero of=3Dpflas=
h0.img bs=3D1m count=3D64<br>7. dd if=3D/dev/zero of=3Dpflash1.img bs=3D1m =
count=3D64<br>8. dd if=3D/usr/local/share/qemu/edk2-arm-code.fd of=3Dpflash=
0.img conv=3Dnotrunc<br>9. dd if=3D/usr/local/share/qemu/edk2-arm-vars.fd o=
f=3Dpflash1.img conv=3Dnotrunc</div><div>10. cat &gt; start-freebsd-arm.sh<=
/div><div>#!/bin/sh<br>qemu-system-arm \<br>=C2=A0 -M virt \<br>=C2=A0 -m 1=
024 \<br>=C2=A0 -drive file=3Dpflash0.img,format=3Draw,if=3Dpflash,readonly=
=3Don \<br>=C2=A0 -drive file=3Dpflash1.img,format=3Draw,if=3Dpflash \<br>=
=C2=A0 -drive file=3D$1.img,if=3Dvirtio,cache=3Dwritethrough \<br>=C2=A0 -n=
ographic \<br>=C2=A0 -serial mon:stdio</div><div>^D</div><div>11. chmod +x =
start-freebsd-arm.sh</div><div>12. ./start-freebsd-arm.sh  FreeBSD-14.0-REL=
EASE-arm-armv7-GENERICSD</div><div><br></div><div>But I hit a snag with thi=
s on qemu 8.1.2 and 8.1.3 with both 13.2 and 14.0:</div><div><br></div><div=
>Starting devd.<br>Starting dhclient.<br>DHCPDISCOVER on vtnet0 to 255.255.=
255.255 port 67 interval 7<br>Fatal kernel mode data abort: &#39;Alignment =
Fault&#39; on read<br>trapframe: 0xc4b36a60<br>FSR=3D00000001, FAR=3Ddd9670=
1a, spsr=3D20000013<br>r0 =3D00000000, r1 =3D00000001, r2 =3D00000001, r3 =
=3Dc4b36b4c<br>r4 =3D00000014, r5 =3Dd6618800, r6 =3Ddd96702e, r7 =3D000002=
2c<br>r8 =3D00000000, r9 =3D0000022c, r10=3Ddd96701a, r11=3Dc4b36b90<br>r12=
=3D4300ffff, ssp=3Dc4b36af0, slr=3Dc04a9728, pc =3Dc04a9750<br><br>panic: F=
atal abort<br>cpuid =3D 0<br>time =3D 1680843057<br>KDB: stack backtrace:<b=
r>#0 0xc035786c at kdb_backtrace+0x48<br>#1 0xc02fdd20 at vpanic+0x140<br>#=
2 0xc02fdbe0 at vpanic+0<br>#3 0xc06304ac at abort_align+0<br>#4 0xc063052c=
 at abort_align+0x80<br>#5 0xc063017c at abort_handler+0x480<br>#6 0xc060f4=
80 at exception_exit+0<br>#7 0xc04a9750 at udp_input+0x288<br>#8 0xc0473f54=
 at ip_input+0x1e0<br>#9 0xc04447c0 at netisr_dispatch_src+0xf8<br>#10 0xc0=
43bf2c at ether_demux+0x1a4<br>#11 0xc043d5e4 at ether_nh_input+0x480<br>#1=
2 0xc04447c0 at netisr_dispatch_src+0xf8<br>#13 0xc043c404 at ether_input+0=
x50<br>#14 0xc01c0838 at vtnet_rx_vq_process+0x880<br>#15 0xc01b70d0 at vtp=
ci_intx_intr+0xac<br>#16 0xc02b87f0 at ithread_loop+0x2ec<br>#17 0xc02b465c=
 at fork_exit+0xc0<br>Uptime: 19s</div><div><br></div><div>I don&#39;t know=
 if this is a problem with qemu or FreeBSD&#39;s kernel...</div><div><br></=
div><div>Warner<br></div></div><br><div class=3D"gmail_quote"><div dir=3D"l=
tr" class=3D"gmail_attr">On Tue, Dec 19, 2023 at 3:25=E2=80=AFPM Mario Mari=
etto &lt;<a href=3D"mailto:marietto2008@gmail.com" target=3D"_blank">mariet=
to2008@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);pa=
dding-left:1ex"><div dir=3D"ltr"><div>I&#39;ve asked some help on the chann=
el #arm on Reddit and someone replied :</div><div><br></div><div><a href=3D=
"https://www.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_arm3=
2_bit_as_domu_with/" target=3D"_blank">https://www.reddit.com/r/arm/comment=
s/18mcir8/i_cant_boot_freebsd_for_arm32_bit_as_domu_with/</a></div><div><br=
></div><div>Maybe his answer can be useful to understand why it does not wo=
rk. <br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Tue, Dec 19, 2023 at 8:33=E2=80=AFPM Stefano Stabellini =
&lt;<a href=3D"mailto:sstabellini@kernel.org" target=3D"_blank">sstabellini=
@kernel.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">+Michal<br>
<br>
Hi Mario,<br>
<br>
I am not sure about booting FreeBSD, but I am certain that u-boot works<br>
fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config<br>
file:<br>
<br>
name=3D&quot;test&quot;<br>
kernel=3D&quot;u-boot.bin&quot;<br>
extra =3D &quot;console=3Dhvc0&quot;<br>
memory=3D256<br>
vcpus=3D1<br>
disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
<br>
I don&#39;t know for sure if you can boot FreeBSD but you should definitely=
<br>
be able to see the u-boot command line prompt. The fact that you are<br>
getting this message:<br>
<br>
xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: I=
nvalid kernel<br>
<br>
Means that something is not right in the u-boot configuration or u-boot<br>
build. Michal and Artem (CCed) might know more. From what I recall,<br>
there was nothing special required to get u-boot.bin to boot as domU<br>
kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.<br>
<br>
Cheers,<br>
<br>
Stefano<br>
<br>
<br>
On Tue, 19 Dec 2023, Mario Marietto wrote:<br>
&gt; ....I see that some other interesting files have been produced by u-bo=
ot when I have compiled it :<br>
&gt; <br>
&gt; u-boot<br>
&gt; u-boot.lds<br>
&gt; u-boot.bin<br>
&gt; u-boot.map<br>
&gt; u-boot-nodtb.bin<br>
&gt; u-boot.dtb<br>
&gt; u-boot.srec<br>
&gt; u-boot-dtb.bin<br>
&gt; u-boot.sym<br>
&gt; <br>
&gt; So,maybe I should use a different u-boot* file for booting FreeBSD ?<b=
r>
&gt; <br>
&gt; <br>
&gt; On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto &lt;<a href=3D"=
mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a>=
&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello to everyone.<br>
&gt; <br>
&gt; I have compiled the needed u-boot.bin from scratch using this procedur=
e :<br>
&gt; <br>
&gt; # git clone <a href=3D"https://github.com/u-boot/u-boot.git" rel=3D"no=
referrer" target=3D"_blank">https://github.com/u-boot/u-boot.git</a><br>
&gt; # cd u-boot<br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig =
: this line generates the file .config<br>
&gt; # nano .config and I&#39;ve added these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; the uboot-bin file is generated with this command :<br>
&gt; <br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make<br>
&gt; <br>
&gt; At this point,I took a look inside the .config file and I saw that the=
 parameter &quot;CONFIG_ARMV7_NONSEC=3Dn&quot; has been removed. So,for<br>
&gt; some reason,it is not accepted and this could be a problem....<br>
&gt; <br>
&gt; These are the xen config files that I&#39;ve used :<br>
&gt; <br>
&gt; nano freebsd.cfg<br>
&gt; <br>
&gt; name=3D&quot;test&quot;<br>
&gt; kernel=3D&quot;u-boot.bin&quot;<br>
&gt; extra =3D &quot;console=3Dhvc0&quot;<br>
&gt; memory=3D256<br>
&gt; vcpus=3D1<br>
&gt; disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
&gt; <br>
&gt; nano start-freebsd<br>
&gt; <br>
&gt; xl create freebsd.cfg<br>
&gt; xl console freebsd<br>
&gt; <br>
&gt; This is what happens when I launch the vm :<br>
&gt; <br>
&gt; # ./start-freebsd<br>
&gt; =C2=A0<br>
&gt; Parsing config from freebsd.cfg<br>
&gt; xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader fou=
nd: Invalid kernel<br>
&gt; libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fai=
led<br>
&gt; libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:can=
not (re-)build domain: -3<br>
&gt; libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-e=
xistent domain<br>
&gt; libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Un=
able to destroy guest<br>
&gt; libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruct=
ion of domain failed<br>
&gt; freebsd is an invalid domain identifier (rc=3D-6)<br>
&gt; <br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0So,ok,I should have said &quot;the second u-=
boot&quot; ; since the first u-boot binary is the &quot;u-boot binary locat=
ed in the RO<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0memory&quot; of the Chromebook&quot;. Sorry =
for the confusion.<br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; There are no specific options in u-b=
oot devoted to FreeBSD<br>
&gt; <br>
&gt; This is an important factor. So,what about if,instead of compiling a n=
ew version of u-boot on the partition 2,I will<br>
&gt; recompile the u-boot customized version created by the virtual open sy=
stem in 2014,that should be installed on the first<br>
&gt; partition ? It could work if there are no differences between the u-bo=
ot that should boot Linux and the u-boot that<br>
&gt; should boot FreeBSD.<br>
&gt; <br>
&gt; Can you give a look at the u-boot source code created by virtual open =
systems ? You can find it on my google drive :<br>
&gt; <br>
&gt; <a href=3D"https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzz=
O09BRm/view?usp=3Dsharing" rel=3D"noreferrer" target=3D"_blank">https://dri=
ve.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?usp=3Dsharing</=
a><br>
&gt; <br>
&gt; I need to understand if I can recompile it without problem so that it =
can satisfy my needs (the ability of the file<br>
&gt; u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano S=
tabellini,the xen developer that suggested to me<br>
&gt; what I could do to have FreeBSD virtualized under Xen on my Arm Chrome=
book) ; otherwise the risk is to find later<br>
&gt; problems that will make me troubles and that I will not able to fix.<b=
r>
&gt; <br>
&gt; I gave a look at the virtual open system u-boot and I didn&#39;t see a=
ny arndale_defconfig inside. So,If I have understood<br>
&gt; correctly,I should put that file inside the root of the u-boot source =
code,let&#39;s say here :<br>
&gt; <br>
&gt; marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls<b=
r>
&gt; =C2=A0<br>
&gt; .checkpatch.conf =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0README =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0doc =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
net<br>
&gt; .git =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0api =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0drivers =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0onenand_ipl<br>
&gt; .gitignore =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0arch =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0dts =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0post<br>
&gt; COPYING =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0board =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
examples =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://rules.mk" rel=3D"noreferrer" targ=
et=3D"_blank">rules.mk</a><br>
&gt; CREDITS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0boards.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0fs =C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0scripts<br>
&gt; MAINTAINERS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0common =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0include =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0snapshot.commit<br>
&gt; MAKEALL =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://config.mk" rel=3D"nor=
eferrer" target=3D"_blank">config.mk</a> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0lib =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0spl<br>
&gt; 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=A0cros =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
mkconfig =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0test<br>
&gt; PRESUBMIT.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0disk =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0nand_spl =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
tools<br>
&gt; <br>
&gt; and I should do : make and make install ? and the file I need,u-boot.b=
in will be generated ?=C2=A0<br>
&gt; <br>
&gt; I didn&#39;t find any pre made configuration file inside :<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;exynos*&quot;=C2=A0<br>
&gt; <br>
&gt; ./include/exynos-fb.h<br>
&gt; ./include/configs/exynos5-common.h<br>
&gt; ./doc/device-tree-bindings/spi/exynos-spi.txt<br>
&gt; ./doc/device-tree-bindings/usb/exynos-usb.txt<br>
&gt; ./drivers/power/exynos-tmu.c<br>
&gt; ./drivers/power/exynos-cpufreq.c<br>
&gt; ./drivers/video/exynos-fb.c<br>
&gt; ./drivers/spi/exynos_spi.c<br>
&gt; ./board/samsung/dts/exynos5250-spring.dts<br>
&gt; ./board/samsung/dts/exynos5250-smdk5250.dts<br>
&gt; ./board/samsung/dts/exynos5250-snow.dts<br>
&gt; ./board/samsung/dts/exynos5250-daisy.dts<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h<br>
&gt; ./arch/arm/dts/exynos5250.dtsi<br>
&gt; ./arch/arm/dts/exynos-periph-id.dtsi<br>
&gt; ./arch/arm/cpu/armv7/exynos5/exynos_cache.c=C2=A0<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;arndale*&quot;<br>
&gt; <br>
&gt; For sure I can&#39;t use a newer version of u-boot because otherwise t=
he patches needed to bypass the bootloader protections<br>
&gt; of the Arm Chromebook (such as a lot of different patches needed to bo=
ot correctly Linux) will be broken ; anyway,since<br>
&gt; it works,I don&#39;t need to use an updated version of u-boot.<br>
&gt; <br>
&gt; ----&gt; As per my experience, you have to respect these two options, =
compiling u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; It says that I should use these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; These are the parameters used to configure a Linux kernel. I don&#39;t=
 understand what&#39;s the relation between the compilation<br>
&gt; of a linux kernel and u-boot. In the past I tried to recompile u-boot,=
but I didn&#39;t have the need to set up those<br>
&gt; parameters,so I don&#39;t know how to do it (but I know how to recompi=
le a Linux kernel).<br>
&gt; <br>
&gt; ---&gt; I&#39;m not sure that I&#39;m getting you right, as I don&#39;=
t understand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; <br>
&gt; I&#39;m talking about first u-boot because the whole procedure to boot=
 Linux on the ARM Chromebook,that&#39;s explained here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/" rel=3D"noreferrer" target=3D"_blank">http://www.virtualopens=
ystems.com/en/solutions/guides/kvm-on-chromebook/</a><br>
&gt; <br>
&gt; <br>
&gt; at some point they say :<br>
&gt; <br>
&gt; <br>
&gt; To be able to run KVM on ARM platforms, the kernel has to be booted in=
 hypervisor mode. Because of this relatively recent<br>
&gt; requirement (due to the introduction of the virtualization extensions)=
, up until now all booting methods would boot the<br>
&gt; kernel in the standard Supervisor mode.<br>
&gt; <br>
&gt; For the ARM Chromebook the default boot procedure doesn&#39;t allow us=
 to boot in hypervisor mode. Although the laptop&#39;s boot<br>
&gt; mechanism is based on the frequently used u-boot, the binary is locate=
d in RO memory. Fortunately, a chained u-boot<br>
&gt; mechanism can be used (i.e. starting another u-boot after the original=
). We can then enter hypervisor mode from our<br>
&gt; custom iteration of u-boot and subsequently load our kernel and usersp=
ace.<br>
&gt; <br>
&gt; So,the first u-boot is the u-boot provided by virtual open systems,tha=
t&#39;s able to chainload the &quot;u-boot binary located in<br>
&gt; RO memory&quot; , that does not boot Chrome OS in hypervisor mode. We =
don&#39;t need it if we want to boot Linux with kvm or xen<br>
&gt; enabled.<br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki &lt;<a href=
=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.siln=
icki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m not an expert in the topic, I only k=
now, that ARM has divided hardware into two worlds - Secure and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Not-So, strictly limiting any software, runn=
ing in non-secure world with access to functions and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0resources.=C2=A0<a href=3D"https://developer=
arm.com/documentation/den0013/d/Security/TrustZone-hardware-architecture?la=
ng=3Den" rel=3D"noreferrer" target=3D"_blank">https://developer.arm.com/doc=
umentation/den0013/d/Security/TrustZone-hardware-architecture?lang=3Den</a>=
<br>
&gt; <br>
&gt; I&#39;m not sure, that I&#39;m getting you right, as I don&#39;t under=
stand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; As I understand, virtualization (HYP) is running in non-secure world(<=
a href=3D"https://developer.arm.com/documentation/ddi0406/c/System-Level-Ar=
chitecture/The-System-Level-Programmers--Model/The-Virtualization-Extens" r=
el=3D"noreferrer" target=3D"_blank">https://developer.arm.com/documentation=
/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/Th=
e-Virtualization-Extens</a><br>
&gt; ions), so my guess (only guess!!!), virtualization software has to pre=
pare (configure) HW platform in the way,<br>
&gt; that FreeBSD kernel will not lack any resources, required to configure=
 MPU, VA, etc.<br>
&gt; So, if you lucky to boot virtualizer, which is aware of target OS, tha=
t maybe you can boot the kernel. Although, I<br>
&gt; doubt, that you need to boot &#39;second&#39; u-boot to boot the kerne=
l - there is simply ubldr, which you can hook somehow<br>
&gt; from virtualizer....<br>
&gt; <br>
&gt; Stan<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; As I understand, it makes sure that =
u-boot keeps in secure mode during boot and passes control to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ubldr, which boots FreeBSD kernel, in that m=
ode.<br>
&gt; <br>
&gt; Can you elaborate your sentence more ? I know that the bootloader secu=
re mode is bypassed by the virtual open<br>
&gt; systems u-boot. Are you saying that when the control passes to the sec=
ond u-boot,it will happen in secure<br>
&gt; mode,so that the bypass that happened loading the first u-boot,is annu=
lled ? If this is true,maybe can I boot<br>
&gt; FreeBSD using the virtual-open-system custom u-boot ? Is this compatib=
le with FreeBSD ? Where can I find the<br>
&gt; u-boot.bin that the xen developer talked about ? thanks bro&#39;.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki &lt;<a hre=
f=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.sil=
nicki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hi Mario,<br>
&gt; <br>
&gt; U-Boot=C2=A0 beast is hiding in this den: <a href=3D"https://source.de=
nx.de/u-boot/u-boot.git" rel=3D"noreferrer" target=3D"_blank">https://sourc=
e.denx.de/u-boot/u-boot.git</a><br>
&gt; I took a brief look at your post and it seems to me, that option=C2=A0=
CONFIG_CMO_BY_VA_ONLY=C2=A0is irrelevant to<br>
&gt; your target armv7 32 bit<br>
&gt; platform:=C2=A0<a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/=
master/arch/arm/cpu/armv8/Kconfig?ref_type=3Dheads#L3" rel=3D"noreferrer" t=
arget=3D"_blank">https://source.denx.de/u-boot/u-boot/-/blob/master/arch/ar=
m/cpu/armv8/Kconfig?ref_type=3Dheads#L3</a><br>
&gt; <br>
&gt; As for compiling the u-boot, it is a doable task, given that you under=
stand what you are doing. There<br>
&gt; are no specific options in u-boot devoted to FreeBSD. It is a boot loa=
der, whose mission to make basic<br>
&gt; hardware initialization, read you kernel file from some media into RAM=
 and then pass it control.<br>
&gt; <br>
&gt; Basically, you can grab some defconfig, prepared for any other Exynos5=
250 based board=C2=A0 (say, this one:<br>
&gt; <a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/master/configs/=
arndale_defconfig?ref_type=3Dheads" rel=3D"noreferrer" target=3D"_blank">ht=
tps://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defconfig?=
ref_type=3Dheads</a>) and adopt<br>
&gt; it somehow.<br>
&gt; <br>
&gt; As per my experience, you have to respect these two options, compiling=
 u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; As I understand, it makes sure, that u-boot keeps in secure mode durin=
g boot and passes control to<br>
&gt; ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot=
 of surprises you may realize.<br>
&gt; <br>
&gt; Hope, this will help to progress you tasks<br>
&gt; Stan<br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m trying to boot FreeBSD for arm32 bit=
 as DomU on my ARM Chromebook. Basically there are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0two ways to accomplish this task :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A01) to write a patch that allows the FreeBSD =
kernel to boot as a zImage file. This could be<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0accomplished applying this patch to a specif=
ic file that&#39;s on the source code of FreeBSD :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://xenbits.xen.org/gitweb/?p=
=3Dp...8;hb=3D0782e25d98cc1391472717035f986c979edef0c9" rel=3D"noreferrer" =
target=3D"_blank">https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98=
cc1391472717035f986c979edef0c9</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This patch was written by Julien Grall a lot=
 of time ago and now it does not work anymore.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This is the reason :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0It appears FreeBSD-CURR=
ENT removed the last step converting the kernel file to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0kernel.bin. The patch c=
an be readily rebased, but without kernel.bin that<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t do too much=
<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; So,without a rebase of that patch the first option is not applicable. =
And I&#39;m not able to fix it.<br>
&gt; <br>
&gt; 2) booting FreeBSD using U-Boot,as explained to me by a xen developer =
:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I was trying to explain why and how Julien&#=
39;s patch works so that you could be the one<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to re-do something similar or fix the patch =
on the FreeBSD kernel that you are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0working with. I am happy to help review and =
write patches but I don&#39;t work with the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0FreeBSD kernel so I wouldn&#39;t be able to =
help you quickly. However, I might have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0suggestion. Do you know if FreeBSD can be bo=
oted by U-Boot ? Because U-Boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0definitely boots as Xen on ARM guest firmwar=
e/bootloader. You should be able to build<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0U-Boot and use the U-Boot binary as Xen gues=
t kernel, then U-Boot could load FreeBSD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0from disk or network and start it. For insta=
nce as domU config file:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0kernel=3D&quot;/home/petalinux/u-boot.bin&qu=
ot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0disk =3D [ &#39;/home/petalinux/test.img,raw=
,xvda&#39; ]<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I know it is important to build u-boot with =
the following config to make it work on<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Xen.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; This option seems more doable to me according to my knowledge. But I n=
eed to understand how to do<br>
&gt; it.<br>
&gt; <br>
&gt; Well,let&#39;s say that on the ARM Chromebook I&#39;m forced to use an=
d install a customized version of<br>
&gt; u-boot,created by virtual open systems,because it is the only one that=
 allows bypassing its<br>
&gt; bootloader protection. You can find more information here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/?vos=3Dtech" rel=3D"noreferrer" target=3D"_blank">http://www.v=
irtualopensystems.com/en/solutions/guides/kvm-on-chromebook/?vos=3Dtech</a>=
<br>
&gt; <br>
&gt; This is the relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Bootloader :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If you wish to skip this chapter you can dow=
nload a pre-compiled binary of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0bootloader:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ wget<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"http://www.virtualopensystems.com=
/downloads/guides/kvm_on_chromebook/nv_u-boot-snow.kpart" rel=3D"noreferrer=
" target=3D"_blank">http://www.virtualopensystems.com/downloads/guides/kvm_=
on_chromebook/nv_u-boot-snow.kpart</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0To be able to run KVM on ARM platforms, the =
kernel has to be booted in hypervisor<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0mode. Because of this relatively recent requ=
irement (due to the introduction of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0virtualization extensions), up until now all=
 booting methods would boot the kernel in<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the standard Supervisor mode. For the ARM Ch=
romebook the default boot procedure<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t allow us to boot in hypervisor m=
ode. Although the laptop&#39;s boot mechanism is<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0based on the frequently used u-boot, the bin=
ary is located in RO memory. Fortunately,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0a chained u-boot mechanism can be used (i.e.=
 starting another u-boot after the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0original). We can then enter hypervisor mode=
 from our custom iteration of u-boot and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0subsequently load our kernel and userspace.<=
br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Checkout the needed u-boot code :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ git clone git://<a href=3D"http://github.c=
om/virtualopensystems/u-boot.git$" rel=3D"noreferrer" target=3D"_blank">git=
hub.com/virtualopensystems/u-boot.git$</a> cd u-boot$<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0./scripts/build.sh<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If successful, a message about how to copy t=
he bootloader on the USB flash disk or SD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0card will appear. We will use it later when =
preparing the boot medium to start our<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0system. If you have followed the Setting up =
the boot medium chapter and you have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0prepared boot device, then you can update u-=
boot by running :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev=
/sdX1<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; so,the needed u-boot that we must use should be installed on the first=
 partition of the sd card.<br>
&gt; <br>
&gt; There is another relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Setting up the boot medium<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Now it is time to copy all the relevant file=
s that we created in the previous<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0chapters,and use them to boot Chromebook wit=
h a different kernel and OS. In all these<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0examples the device /dev/sdX is used. Take e=
xtra care to change the examples to the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0device that you have attached. Insert the bo=
ot medium on your workstation and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0carefully execute the following step. First =
we need to properly format the boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0medium.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0In the uboot source directory :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo ./scripts/sdcard.sh /dev/sdX<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This will erase all data and create 4 partit=
ions in the medium, along with copying<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the u-boot binary to the first partition:<br=
>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 1 =3D ChromeOS signed binary (V.O.=
S chained u-boot)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 2 =3D not used<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 3 =3D EXT2 partition for u-boot fi=
les (uImage and exynos5250-snow.dtb)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 4 =3D EXT4 partition for userspace=
 files<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0With u-boot being copied, next is the kernel=
 image and DTB file. From the kernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0source execute :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ mkdir ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX3 ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/uImage ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/dts/exynos5250-snow.=
dtb ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo umount /dev/sdX3<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Finally, we have to copy the Ubuntu userspac=
e filesystem that we created earlier:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./pr=
ecise/* mnt/$ sudo umount /dev/sdX4<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Now,my idea is to chainload the already chain loaded u-boot created by=
 V.O.S to the new u-boot<br>
&gt; that we need for booting FreeBSD and that can be installed in the part=
ition n.2,as shown in this<br>
&gt; scheme,because it is not used :<br>
&gt; <br>
&gt; <br>
&gt; Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)<br>
&gt; Partition 2 =3D not used (maybe we can install the u-boot for arm 32 b=
it,compatible with FreeBSD on<br>
&gt; this partition)<br>
&gt; Partition 3 =3D EXT2 partition for u-boot files (uImage and exynos5250=
-snow.dtb)<br>
&gt; Partition 4 =3D EXT4 partition for userspace files<br>
&gt; <br>
&gt; <br>
&gt; Take in consideration that default boot string is hardcoded here,in th=
e snow.h file of the custom<br>
&gt; u-boot created by VOS :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://github.com/virtualopensyste...18a39b6c177dff58a/inc=
lude/configs/snow.h#L101" rel=3D"noreferrer" target=3D"_blank">https://gith=
ub.com/virtualopensyste...18a39b6c177dff58a/include/configs/snow.h#L101</a>=
<br>
&gt; <br>
&gt; <br>
&gt; and it needs to be recompiled because it should point to the partition=
 n.2,where I will install<br>
&gt; the u-boot files as explained here :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; <br>
&gt; I have some questions to ask before I start working on this.<br>
&gt; <br>
&gt; 1) The xen developer said :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0You should be able to build U-Boot and use t=
he U-Boot binary as Xen guest kernel...<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; where is the u-boot binary,according to this document ?<br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; I don&#39;t see it.<br>
&gt; <br>
&gt; <br>
&gt; 2) where is the source code of the file that I can get here :<br>
&gt; <br>
&gt; <a href=3D"http://commondatastorage.googleapis.com/chromeos-localmirro=
r/distfiles/nv_uboot-snow-simplefb.kpart.bz2" rel=3D"noreferrer" target=3D"=
_blank">http://commondatastorage.googleapis.com/chromeos-localmirror/distfi=
les/nv_uboot-snow-simplefb.kpart.bz2</a><br>
&gt; <br>
&gt; I need the source code if I want to recompile u-boot so that it can po=
int to the partition 4.<br>
&gt; <br>
&gt; Maybe it can be found on this link :<br>
&gt; <br>
&gt; <a href=3D"http://linux-exynos.org/dist/chromebook/nv_uboot/" rel=3D"n=
oreferrer" target=3D"_blank">http://linux-exynos.org/dist/chromebook/nv_ubo=
ot/</a><br>
&gt; <br>
&gt; but it can&#39;t be opened....<br>
&gt; <br>
&gt; <br>
&gt; 3) in this specific scenario the source code of u-boot should run on a=
rm 32 bit,not on arm<br>
&gt; 64,because I have the Samsung Chromebook &quot;SNOW&quot; model XE303C=
12,that&#39;s powered by a Samsung Exynos<br>
&gt; 5250 (ARMv7 32 bit Cortex A15) Soc.<br>
&gt; <br>
&gt; <br>
&gt; 4) I&#39;m not sure if I can chainload the customized u-boot created b=
y V.O.S that should be<br>
&gt; installed on the first partition with the u-boot tailored for booting =
FreeBSD that should be<br>
&gt; installed on the partition 2....<br>
&gt; <br>
&gt; <br>
&gt; 5) the xen developer said that u-boot should be compiled enabling this=
 option :<br>
&gt; <br>
&gt; <br>
&gt; Code:<br>
&gt; <br>
&gt; CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; Well,can you provide some good source that can help me to understand h=
ow I can recompile u-boot<br>
&gt; for FreeBSD ? thanks.<br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signatur=
e_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<b=
r></div>
</blockquote></div>
</div>
</blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre=
fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d=
iv>

--000000000000e38930060cf1d01d--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:46:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:46:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658069.1027124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxqS-0000Ue-Ju; Wed, 20 Dec 2023 14:46:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658069.1027124; Wed, 20 Dec 2023 14: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 1rFxqS-0000UX-HL; Wed, 20 Dec 2023 14:46:48 +0000
Received: by outflank-mailman (input) for mailman id 658069;
 Wed, 20 Dec 2023 14:46: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=+WYL=H7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFxqQ-0000UR-SM
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:46:46 +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 981ed9c0-9f46-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:46:44 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40d2e56f3a6so5194715e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:46:44 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 k2-20020a05600c1c8200b0040b3867a297sm7580923wms.36.2023.12.20.06.46.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 06:46:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 981ed9c0-9f46-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703083604; x=1703688404; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=MCADpb5MmkweT3Y+4qHiQv9EpgLHTecFUIfC5rF9w80=;
        b=wSrmXnRne1WbDMZFQuQc5w8t/dE3bAa2yPOHB6cQ2t6DAfIvDioq8re8bepawnQG1d
         xxjZiIoDzxlVwi3Y9gnjNQfUJqgTmSvfkW2HewKM3UhNYIB4okfBKjf6SL/d0PlIeCOj
         4glrRlN4Ocfy5qftxRJ5pv62bW1kMNpgBtiEo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703083604; x=1703688404;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=MCADpb5MmkweT3Y+4qHiQv9EpgLHTecFUIfC5rF9w80=;
        b=K4U7Tlzd+0Z5eUXKpA+L0SXy79qT9PRHrhBi4NoK7JzJtJj1dooJuAtjwGmJKolDao
         HmstpilSOO8Yz3gP38nF2K3PoTQ6NtaoZTYNKapilyGiIGuvosyB6HeFNxSAgSdP10m/
         Ddec999LKev2qwm+0UcvUvEBlysdeFtm+wNHfXUh8XXk/sM1tHmf6I6PjOgdDyqWMKyl
         08CV3MB+AINXh3UW0EyI/2KKtaeHOD9SAlzTouQopBFGpzOfSA3U1JyGpv56eDYUp5MT
         Z+V8fU4kkCeHjDl1H+LkBrpibSAkIvA35y2lDLMOTgaeM2lIXvrF5vW9E81AofrupggS
         5l6g==
X-Gm-Message-State: AOJu0YxAvb5GzwLWjOgnINSojiCvMR0CNTRbvuZPb+NRRuKzEhRdgidz
	/1XKzHwxrI1l5LtfW9C94yZx2g==
X-Google-Smtp-Source: AGHT+IH4NKX4tOkpqV1DGu/fSr91vrvpwrCRe0Cg3dSC/b7zzNcjEVTig0OIK7T3bOMwMBQa/fuFww==
X-Received: by 2002:a05:600c:520a:b0:40d:2b27:4ffd with SMTP id fb10-20020a05600c520a00b0040d2b274ffdmr1319419wmb.70.1703083603909;
        Wed, 20 Dec 2023 06:46:43 -0800 (PST)
Message-ID: <ffb3445f-fd50-4746-9f70-272ea52271ec@citrix.com>
Date: Wed, 20 Dec 2023 14:46:43 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/amd: extend CPU errata #1474 affected models
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>
References: <20231220142218.22850-1-roger.pau@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231220142218.22850-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/12/2023 2:22 pm, Roger Pau Monne wrote:
> Errata #1474 does also affect models from family 17h ranges 00-2Fh, so the
> errata now covers all the models released under Family 17h (Zen, Zen+ and
> Zen2).

Perhaps "has now been extended to cover models from ..." ?

> Additionally extend the workaround to Family 18h (Hygon), since it's based on
> the Zen architecture and very likely affected.
>
> Rename all the zen2 related symbols to plain zen, since the errata doesn't
> exclusively affect Zen2 anymore.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks for doing this.

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

I was going to suggest linking to an example revision guide but I see
the AMD website is still broken.

> diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
> index 0f305312ff2a..099646dc3994 100644
> --- a/xen/arch/x86/cpu/amd.c
> +++ b/xen/arch/x86/cpu/amd.c
> @@ -54,7 +54,7 @@ bool __read_mostly amd_acpi_c1e_quirk;
>  bool __ro_after_init amd_legacy_ssbd;
>  bool __initdata amd_virt_spec_ctrl;
>  
> -static bool __read_mostly zen2_c6_disabled;
> +static bool __read_mostly zen_c6_disabled;

amd_1474_c6_disable ?

That's about as general as I can make it, without losing precision.


>  
>  static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
>  				 unsigned int *hi)
> @@ -978,24 +978,24 @@ void amd_check_zenbleed(void)
>  		       val & chickenbit ? "chickenbit" : "microcode");
>  }
>  
> -static void cf_check zen2_disable_c6(void *arg)
> +static void cf_check zen_disable_c6(void *arg)

fam17_disable_c6() ?Â  I know Hygon is 0x18 but it's also reasonably well
know to be the same uarch.

This particular algorithm is good for all Fam17 uarches, irrespective of
#1474, even if they happen to be the same set of CPUs in practice.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:52:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:52:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658074.1027135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxvR-00031w-6G; Wed, 20 Dec 2023 14:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658074.1027135; Wed, 20 Dec 2023 14:51:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxvR-00031p-3d; Wed, 20 Dec 2023 14:51:57 +0000
Received: by outflank-mailman (input) for mailman id 658074;
 Wed, 20 Dec 2023 14:51:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GUkk=H7=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rFxvP-00031j-Dz
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:51:55 +0000
Received: from so254-136.mailgun.net (so254-136.mailgun.net [198.61.254.136])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 4fc67fca-9f47-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 15:51:53 +0100 (CET)
Received: from mg.gitlab.com (4.226.74.34.bc.googleusercontent.com
 [34.74.226.4]) by
 f2fc7ed5ab0d with SMTP id 6582ff87646052fdab7b1b0e (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 20 Dec 2023 14:51:51 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 4fc67fca-9f47-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1703083911; x=1703091111; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=pmMppnQUhb7PfRAW9q4LWAXx4DrtymFD5a/1TgCI9HM=;
 b=SecMqtJ08v5UTPAz40WMw5IeYRXh8px/LyDuLMv8V1z9OHcmjzKVd7yIN4y8oYlge+tBNpCdXpNdzsMv0clfElLMxog3mMxWavRdryN9Xz6QT4+aHiArlFcmqm4YlgrS2TPrdubSAtaNAse+w+5/GLv5QyVQWxO9uuu8NFW96KU=
X-Mailgun-Sending-Ip: 198.61.254.136
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 20 Dec 2023 14:51:51 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6582ff875bd36_2c95948138069@gitlab-sidekiq-catchall-v2-6bf86d89fc-ssbb9.mail>
Subject: xen | Successful pipeline for staging | 913a1774
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6582ff8752b7d_2c9594813794d";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1114155971
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6582ff8752b7d_2c9594813794d
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1114155971 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 913a1774 ( https://gitlab.com/xen-project/xen/-/commit/913a1774168f82565bbdc7d41a46013a40ba302d )
Commit Message: x86/IO-APIC: correct RTE polarity comment

The ...
Commit Author: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1114155971 ( https://gitlab.com/xen-project/xen/-/pipelines/1114155971 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 913a1774</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1114155971 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/913a1774168f82565b=
bdc7d41a46013a40ba302d" style=3D"color: #3777b0; text-decoration: none;">=
913a1774</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
x86/IO-APIC: correct RTE polarity comment

The ...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111415=
5971" style=3D"color: #3777b0; text-decoration: none;">#1114155971</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6582ff8752b7d_2c9594813794d--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:52:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:52:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658098.1027144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxvz-0003fg-GQ; Wed, 20 Dec 2023 14:52:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658098.1027144; Wed, 20 Dec 2023 14:52: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 1rFxvz-0003fZ-Du; Wed, 20 Dec 2023 14:52:31 +0000
Received: by outflank-mailman (input) for mailman id 658098;
 Wed, 20 Dec 2023 14:52: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=cHJo=H7=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rFxvy-0003KA-IY
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:52:30 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 66028f44-9f47-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 15:52:30 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c236624edso62738525e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 06:52:30 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 v14-20020a05600c444e00b0040c58e410a3sm7815235wmn.14.2023.12.20.06.52.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 06:52:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66028f44-9f47-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703083949; x=1703688749; 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=ibG6vmzkWlhTmqyuSp3GHp8mv5e6cQE5qos9D6b1g9M=;
        b=r85qXKvVzNeehHIjWsn5ldrrh/AS731ceM+5vW/HDLT88HZOG0B37LeCsmQ3TozkG7
         u72eL6ky2ZGbMp36OJiueL/9Bg+94dGnkpsWniiZM0m7lo+TlS+UKKCdN8bYP2mXOMDg
         vjWaK4NlCe8snEipsuKIiV8OPp7YbYAMbVBbU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703083949; x=1703688749;
        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=ibG6vmzkWlhTmqyuSp3GHp8mv5e6cQE5qos9D6b1g9M=;
        b=E6hrp07DC5FrW5ifO7UY/3uJ5dq9IKF0NOTm7QF+ccNaSLziqFlHitcUXAzEwdWEpk
         MdticsSlRLy3en48c9Pn0CFKrXHAYfGNoTWX4ziuj/sRIrGOEaor9+Znvoz7+HDJBwhQ
         XrOtmkvgds7VHcPRSqESeOIDvaTT5w0JQ1K7c5g7P8jVZC9zX0i3v3Mdv6X8JbRd4/YB
         mp5VYxMAUJx5V7S/2zgRR9HHV/90x1Q3NR02LeYxh/S1/7AJD/HMjMiKxVW8ILkwMtbY
         iEz1EUh31pboaJqieoxKcNR9aqSk878ouJYsKDy+dBKtG97TgvKmU4yceZVU7MZmNWJi
         JI/Q==
X-Gm-Message-State: AOJu0Yy/NBLX4D2i211/f1/nfkZc++l6Kwzi3cHIubG4O3npTn4CCGZm
	wgWxS4+69rekM9ZLE4QXTQruLQ==
X-Google-Smtp-Source: AGHT+IHra2LBpOzjyYRCLwOYefyNfnE3n7jHzwLXNvsHQ3CXBTrecv1U4UzTfEHyz9BCJfNhE8JaKg==
X-Received: by 2002:a7b:c849:0:b0:40c:a5d:860d with SMTP id c9-20020a7bc849000000b0040c0a5d860dmr10259294wml.169.1703083949322;
        Wed, 20 Dec 2023 06:52:29 -0800 (PST)
Date: Wed, 20 Dec 2023 14:52:27 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Peter Xu <peterx@redhat.com>
Cc: Steven Sistare <steven.sistare@oracle.com>,
	Juan Quintela <quintela@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Thomas Huth <thuth@redhat.com>,
	Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= <berrange@redhat.com>,
	Fabiano Rosas <farosas@suse.de>, Leonardo Bras <leobras@redhat.com>,
	qemu-devel@nongnu.org, Stefan Berger <stefanb@linux.vnet.ibm.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>, Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Laurent Vivier <lvivier@redhat.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH V8 00/12] fix migration of suspended runstate
Message-ID: <04583cf1-8172-49be-81b0-adb88d6f9808@perard>
References: <1702481421-375368-1-git-send-email-steven.sistare@oracle.com>
 <a9ddc1b2-d4fc-44de-857b-2aeb35fa0925@oracle.com>
 <ZX_VS_KDsoiL9T2X@x1n>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ZX_VS_KDsoiL9T2X@x1n>

On Mon, Dec 18, 2023 at 01:14:51PM +0800, Peter Xu wrote:
> On Wed, Dec 13, 2023 at 10:35:33AM -0500, Steven Sistare wrote:
> > Hi Peter, all have RB's, with all i's dotted and t's crossed - steve
> 
> Yes this seems to be more migration related so maybe good candidate for a
> pull from migration submodule.
> 
> But since this is still solving a generic issue, I'm copying a few more
> people from get_maintainers.pl that this series touches, just in case
> they'll have something to say before dev cycle starts.

I did a quick smoke test of migrating a Xen guest. It works fine for me.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 14:53:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 14:53:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658104.1027154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFxxI-0004YQ-Ts; Wed, 20 Dec 2023 14:53:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658104.1027154; Wed, 20 Dec 2023 14: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 1rFxxI-0004YJ-RO; Wed, 20 Dec 2023 14:53:52 +0000
Received: by outflank-mailman (input) for mailman id 658104;
 Wed, 20 Dec 2023 14:53: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 1rFxxH-0004Y9-Kz; Wed, 20 Dec 2023 14:53: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 1rFxxH-0007IZ-7F; Wed, 20 Dec 2023 14:53: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 1rFxxG-0008T7-Ok; Wed, 20 Dec 2023 14:53:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rFxxG-0006fT-OJ; Wed, 20 Dec 2023 14:53: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=gxOH/omUncFpJD7DisIJZl6codqWmYo9T3Hh0cBigeI=; b=w8CypCe1jMtF7GpxYQ2x+4fxED
	gwuaFwhdKA0pxJuItfmLj3gDMXym0o8BKb8qAhK1T7wW97KyvLSWLcrx5HHvTvUSVNvVk44zS5/Ms
	TVEyEskDQHQXDdy9s49k9updXRv4/pPEthBca7GGcsVsDsvieTQOBNlPvv7W7JXTAXEA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184187-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184187: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-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-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-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=49f1406de814db6eec62d02096332059647ec5ad
X-Osstest-Versions-That:
    libvirt=19ce02c773fdeb4d1dfaabac42c650a976a07973
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 20 Dec 2023 14:53:50 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail blocked in 184157
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184157
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184157
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 libvirt              49f1406de814db6eec62d02096332059647ec5ad
baseline version:
 libvirt              19ce02c773fdeb4d1dfaabac42c650a976a07973

Last test of basis   184157  2023-12-17 04:20:41 Z    3 days
Testing same since   184187  2023-12-20 04:19:12 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jim Fehlig <jfehlig@suse.com>
  JÃ¡n Tomko <jtomko@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   19ce02c773..49f1406de8  49f1406de814db6eec62d02096332059647ec5ad -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 15:00:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 15:00:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658120.1027165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFy34-0006b4-JE; Wed, 20 Dec 2023 14:59:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658120.1027165; Wed, 20 Dec 2023 14:59: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 1rFy34-0006ax-Fv; Wed, 20 Dec 2023 14:59:50 +0000
Received: by outflank-mailman (input) for mailman id 658120;
 Wed, 20 Dec 2023 14:59: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=xJf5=H7=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1rFy33-0006ar-GY
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 14:59:49 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20601.outbound.protection.outlook.com
 [2a01:111:f403:2412::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b5b6d12-9f48-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 15:59:48 +0100 (CET)
Received: from SN6PR12MB2621.namprd12.prod.outlook.com (2603:10b6:805:73::15)
 by DS0PR12MB7993.namprd12.prod.outlook.com (2603:10b6:8:14b::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Wed, 20 Dec
 2023 14:59:44 +0000
Received: from SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1]) by SN6PR12MB2621.namprd12.prod.outlook.com
 ([fe80::517a:f65:688e:c4b1%7]) with mapi id 15.20.7113.019; Wed, 20 Dec 2023
 14:59: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: 6b5b6d12-9f48-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=GOAL/qqOWfQFahdPE8Xwqur4nZw/JVpvVGygR5z7sUZh95k7JENkxDKFuSrXkNLJCX7PsRdwZlRSo3XrSJpcycyrj9udzTjdPVJ5gcTg1+3C6bXYdcZ4+d77J6Js8JbmC7WkOo2pWsWQk+btG291wzArUhSN74FvVvbiHZl66UkYuX7oPbYpSUxEKmWnlE2tAWRxClIB6g0wiE8aD0bUi6//6GDap2fjwYGLLbhVi4AaNnri020/qiU5rpmr8NOITZ8TDb3alPgBGc3hWtDNcUvz44h8cPZ7No6VECcvgGguXexT5gNE/kE/oXRm3coHQURx1GZlW88sCPLe2ly12A==
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=lLibqHQl5Lh7gdw75MjkVAELP7ICyRhFymEua1ELmb0=;
 b=Cv/cOeh3ftDhl/LvWBaK/nfJiciMKiCOgjoWdCKJHt2c2eCXpm7ZJDuCvaRvfNcf2t/oUfg9Fc0UZ9Grk6jifLhmeGM/gdxPCiBhZ9bDNkDqgdgI4BsdUsSoO5Fj4LI3200BNg1x5C99BsUXYsH93L++lercLAgdVjpDQzSBiidF/rS+rWThxUCMy33DXTwYbIy+BiimTFdwnNInQZiOaL6zqcbF7YO8qBocVyusLChzZyjy1KG4Xbe7wAfzb7NZ2N6kznssYBZWMkols+6Vfz/XkoTLxiD1pVVnIo7XthbpkWRH82fMLyU5lAFKzLYj5mhANtTEFF5Z2dJMxLpNRg==
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=lLibqHQl5Lh7gdw75MjkVAELP7ICyRhFymEua1ELmb0=;
 b=QKK+UOeKLlsehV0LXXi3SQDpV8TsBbyTiMcLSiat41C7tH77hFPK3N+TU/6xi19y9qaG8q1mUABhNtPavojSnVXdlMcGfRauMSbF9uD51GkJStiHEC897cXNxDVYy+KBiRAWkvjaNLx3BYlTDpMzTaHAV23bTtIQcGDw7riiz9I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <94af5895-2562-4817-8f6a-6025ab0b8948@amd.com>
Date: Wed, 20 Dec 2023 14:59:38 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/3] xen/arm: Add emulation of Debug Data Transfer
 Registers
Content-Language: en-GB
To: Julien Grall <julien@xen.org>, Luca Fancellu <Luca.Fancellu@arm.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 "michal.orzel@amd.com" <michal.orzel@amd.com>,
 "Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>,
 "stefano.stabellini@amd.com" <stefano.stabellini@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20231218202959.1390114-1-ayan.kumar.halder@amd.com>
 <F1A640BE-0CDC-4026-BBB3-637ABE7D996C@arm.com>
 <5E9E5368-8AD3-490E-8034-78F5BAF23006@arm.com>
 <34f3342a-b86e-4e74-bfba-d55e0de55600@amd.com>
 <29076f96-3497-4b08-9f17-22577e3b90c1@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <29076f96-3497-4b08-9f17-22577e3b90c1@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR1P264CA0154.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:346::18) To SN6PR12MB2621.namprd12.prod.outlook.com
 (2603:10b6:805:73::15)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN6PR12MB2621:EE_|DS0PR12MB7993:EE_
X-MS-Office365-Filtering-Correlation-Id: 1b741884-9180-4074-2b54-08dc016c4ca6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	/nvEn/OMeuEzr1mbjo9irqR5QzNrB2OoEr3OaHlPIl8StUGryMSS2/9R/prJCDIhuarjKIXfa/01gpAH8/NGpSA1rmXHHn4KDboqtVRFyPA0E313PxQLHmS0B+wsHsYp/bDMG4cRQwofioF7v0dCqKgRaObQ7AN3Om2EDtMVgxCdxyvvXtNGpdBnzJE0IJwEOqygPkSI3GEqf+spKMHRVW6winzpBhpYpObfwYbeULMTJ0ITMMp9fa+cmofGaA1h2Lambv4/oyPDlbckdMbjzQmfNAutBr6mQjt8BQaYqIpiW/wogj4n8vOrODKXAe1s6277LGimlEdoWAnA0d7kHiZ5RoH3wULyAYBVm4RsDQ7WrEsAXiwTOnCOsN5bxwzIJZOlL/UJuzFiiaTcNzfXG5yxVfyVSE6JOLFoHy+iWKS7EKpm3rDb4ow4a5rJWA9Hm82wKxpPK9XWMKdlmgxlbk2gCr6urmF40vUarpf1ZXXMsDHHzr46ysjNyoHeyOE1eBnptQU1y80P50xXeePGbctFTusg4N1G29a3Mtb7xhcZH0tPA7wy8sOk5GWfvLSiGp9t5boT+2ZtwGJMNwiEUAgyGZh8euiuVn37XGOPbg8AgSZTSa+Hsbijk1I6S+dZQW2/ZpVI1veywx1nZ8SgsA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR12MB2621.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(346002)(39860400002)(376002)(396003)(136003)(230922051799003)(186009)(451199024)(1800799012)(64100799003)(2616005)(6486002)(53546011)(966005)(6666004)(5660300002)(26005)(6636002)(316002)(6512007)(31686004)(6506007)(66476007)(66556008)(83380400001)(66946007)(110136005)(54906003)(478600001)(8936002)(8676002)(4326008)(2906002)(31696002)(41300700001)(38100700002)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RWRMdi9COGtQaURyWHZLUnFmTEViejZlbGtLd0Q1ZWJieTc0VlVITUlaTmJp?=
 =?utf-8?B?ZEIzRklwNExzRWd3NWtWQUFqTEx2Vkg5RnVDWmtud0NyUTdrR0tabVo4M0RC?=
 =?utf-8?B?a3R2bTZqaUFDZXZ2a1dLQlczd3F5UkdzUitKQjB4WXUxbk0wTzRsUUFRK2ZF?=
 =?utf-8?B?S01Ec0djL3VyT2ltQlNVRzNFc3R2VmpDODQrNFRxL09oZjFud3QwMjZLWXMz?=
 =?utf-8?B?WStzdG16Vkg0bGZ6Q3d4L2tCN2tVOWZuSGpCbEVkNUJZdWhqSkhDR3JWdEl0?=
 =?utf-8?B?RjNWZ1BvV2N3cTNoazVlSmN6UW5KZFI1VFZKUFZxcFZJT085NTFlQU56MVpi?=
 =?utf-8?B?TjVtdjgyM0JsTy9JMThGRUxJMU5NVVhlY0l6K0luZW5NMVBOQ3hVRHJoRVZj?=
 =?utf-8?B?a3JIVHBEMnUzR0dWbWl2OTUzY29pQ0JFVzRZZ2VuV01rdlNYK3dZS0RZeUJX?=
 =?utf-8?B?ZDY0Tjdybm5NdUdtOVN0cVhzd3pLb25yTlN2RUJqSTRudjZleVZGVGdNZEI0?=
 =?utf-8?B?Zy9DcjZZMzUzanh6N2dkWThSUVZpRk54RVVjQnltOGQxZWFKNHFNeU1jVW9H?=
 =?utf-8?B?enVnSG5EM0VyMkJBMjhMUytMMWZieVYyakJTejhCbkRUKzNldU50bXJ0MEFT?=
 =?utf-8?B?d1JzSERHOGZaTGN0aDVhbFY2TjIvRDdJWUNuQ3RNYVdyd3pwdFNONWRBVEVn?=
 =?utf-8?B?V091c0toblFFSW5zOFhaVnRUb3NkYm8rY2ZTK2UxOEZ2dEo5Wmp4QnJ5T2ky?=
 =?utf-8?B?d1pPNk5sbmlyZU85cU5iSFhCZDRDbk5yL0N5d2JmVmR6K3dvcWlEejNFN0VR?=
 =?utf-8?B?YzRZeTdPOUJudXVTcFN2ZERCOTlrVGxaMmt3YUR0ZEM0bFVwRVU0ZHR0ZGkr?=
 =?utf-8?B?OEZ3UGlkLzkwSlZ3QnJLaWNVQVdnQ1hoQ1g3b0Z4TGpqREtuZkx6MUJlMUNK?=
 =?utf-8?B?OWtQcGVQaDJ0YTB2VDBaTG85aEhkMWduY2w5ckY4bjRnNzFOcXlRdlFsYkh2?=
 =?utf-8?B?L282eGQ5YVRZM3V5enlCL3ExdUVqaXR1ajNSRWttYkE4L3RldXZiOTZTT1RS?=
 =?utf-8?B?NG1xbjd2Y29HSy9LV2Z6emhtelFLcVBXaWw2dEFSME1IR0ovL3dyV1ROb2hH?=
 =?utf-8?B?czFRYkJOZEpPdkhSWFpVTFhxUkdLbXc1ZTBYUlh6Tzd6OE1TN0E4L2RTUmdJ?=
 =?utf-8?B?MGxFNFU2ZXlqUXZjK3pmWmZSOVhCMzk5ZFNDVDA4M0xVemVZenBwN1I3TktY?=
 =?utf-8?B?aHhxdXh0NnAwVHQ2K2FUQmdzdkNJOFJrVkcxME9sV0FuMVN4Z1BScU1rWjlL?=
 =?utf-8?B?d3FWMDAvTnpaZndJZEtZUldOeFNUekpLQVpaeDJBNVRCZHhMUTNnajYvRmo1?=
 =?utf-8?B?YU9sck9BYWxZNEw4SkV4Z3pOZ1hvb3VzTzg2ZjdCKzFaRGxCVW1HemxsUXpx?=
 =?utf-8?B?SnFCSW1IN0paY1BZMFN4NHFWeEh6NlBaU090MFphd3NaV0pTSEFoMkpqdC9w?=
 =?utf-8?B?TnBvbFk3YlBIeTdUanFNcyttaG1vL1hPL1U1TGtLN2hxZWRkbFFqTkpDZzRS?=
 =?utf-8?B?RFgrQUIxbUhDeFJKUzlROWxQU1dISWRsckJhRHlsL3R3RzdqVEVLRDdsdlZH?=
 =?utf-8?B?cnhPblUzREhRcENZWHlaSWJNOWMzdjYzVnJFZDRmTFdkMDE2RlcvMEtsdzI1?=
 =?utf-8?B?elZjLy8rQTRmV2ZmNTFwOERPRlFHcXplRkZKcHNUS1VSZndTNmRaR0JtdE1l?=
 =?utf-8?B?b1ZWOGpxb0tGWG9DK3VlR2JzOFViczN4ZlJ0M3VUbTBPcnAwNzg5MmJlTGNq?=
 =?utf-8?B?ZzFSNFZ1RE1wNk9tQXlSR3Vja2IwbXZ2eDdDanBGUDl2ak1RcXdaZWtZZmVr?=
 =?utf-8?B?NGZqTGdBeTgzVkgxdU1FcllDbnNLeHYvd0V2Qzk5Zkp3dTRwMTJhY1RHa0Er?=
 =?utf-8?B?Mm5SRHVFeW1wSmR2R2t5cTBQSCtIMXA5TFhWTjhEN2NHOC9YUmVXYTRFelBm?=
 =?utf-8?B?Umo4WVdRTmdTYndZVUwwb21VcUpkS0t6eGxyK3pvOW5HZEtZME9LUkVZSE1r?=
 =?utf-8?B?Q1lyQmVhZ1ZWMStDaS9Va2IyanYySDlaa29ndk82V1VmdHZXWUlMenoxMWpZ?=
 =?utf-8?Q?oIZxXfiLQ7xf4rYOl5QQilXHG?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b741884-9180-4074-2b54-08dc016c4ca6
X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2621.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 14:59:44.0817
 (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: 44MLENH0qN7epdeEtEEUK+8U93QqcKj5Vi3tLRP9ynAi/izsHcidSYJG+uUPbsdQl+4Syq8ieM742szGz3Jcng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7993


On 20/12/2023 13:16, Julien Grall wrote:
> Hi,
Hi Julien/Luca,
>
> On 20/12/2023 12:15, Ayan Kumar Halder wrote:
>>
>> On 20/12/2023 09:43, Luca Fancellu wrote:
>>>
>>>> On 20 Dec 2023, at 09:29, Luca Fancellu <Luca.Fancellu@arm.com> wrote:
>>>>
>>>> Hi Ayan,
>>
>> Hi Luca,
>>
>> Thanks for looking into this.
>>
>>>>
>>>>> On 18 Dec 2023, at 20:29, Ayan Kumar Halder 
>>>>> <ayan.kumar.halder@amd.com> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Refer 
>>>>> https://lore.kernel.org/all/alpine.DEB.2.22.394.2312071341540.1265976@ubuntu-linux-20-04-desktop/T/
>>>>> for the previous discussion on this issue.
>>>>>
>>>>> Also, the linux earlycon hvc driver has been fixed.
>>>>> See 
>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git/commit/?h=tty-next&id=0ec058ece2f933aed66b76bd5cb9b5e6764853c3
>>>>>
>>>>> Changes from v1:-
>>>>> 1. Split the change across 3 patches as per the design consensus.
>>>>>
>>>>> Ayan Kumar Halder (3):
>>>>> xen/arm: Add emulation of Debug Data Transfer Registers
>>>>> xen: arm: Introduce CONFIG_PARTIAL_EMULATION
>>>>> xen/arm: Introduce "partial-emulation" xen command line option
>>>> Iâ€™m a bit puzzled about the order of these changes, wouldnâ€™t be 
>>>> better to
>>>> Introduce the partial emulation Kconfig and command line args in 
>>>> the same
>>>> patch together with something that uses it?
>>
>> You have read my mind. :) I wan't sure about how to do the split...
>>
>>>>
>>>> I think here you wanted to keep Michal patch untouched, but I feel 
>>>> that a
>>>> correct split for this serie would be maybe introducing Kconfig, 
>>>> boot args and
>>>> one of the arm64/arm32 emulation, and on a second patch the other one
>>>> (Or vice-versa)?
>>> Â  ^^^^^^^-----> for the vice-versa, I meant 1st patch Arm64, 2nd Arm32
>>> Â  or vice-versa.
>>
>> I wanted to keep Michal's change for the arm64 as it is. And 
>> introduce Kconfig and command line in separate patches.
>
> I agree and the Kconfig/command line should be a separate patches. 
> However, I think it should be introduced first rather than last (I 
> don't want the code to be always enabled even temporiraly). So my 
> preferred option would be...
>
>>
>> But I agree, it does not look clean.
>>
>>
>> I am fine to follow your suggestion ie (Option 1)
>>
>> Patch 1 ---> arm64 changes + Kconfig + cmd_line (authored by Michal)
>>
>> Patch 2 ---> arm32 changes (which will use the Kconfig and cmd_line 
>> introduced before)
>>
>>
>> Alternatively, I am thinking like this (Option 2)
>>
>> Patch 1 --> arm64 changes (authored by Michal)
>>
>> Patch 2 --> arm32 changes
>>
>> Patch 3 ---> Kconfig + cmd_line (which will touch patch 1 and 2).
>
>
> Option 3
>
> Patch 1 -> Kconfig + cmd_line
> Patch 2 -> Arm64 changes
> Patch 3 -> Arm32 changes

I like this option and will go with this.

If you can review the current patches, that will be great.

I will incorporate your feedback while sending v3.

- Ayan

>
> I could also settle with option 1.
>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 15:11:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 15:11:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658126.1027175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFyDq-0001jV-Ih; Wed, 20 Dec 2023 15:10:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658126.1027175; Wed, 20 Dec 2023 15: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 1rFyDq-0001jO-Fy; Wed, 20 Dec 2023 15:10:58 +0000
Received: by outflank-mailman (input) for mailman id 658126;
 Wed, 20 Dec 2023 15: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=vWXp=H7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rFyDp-0001i5-43
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 15:10:57 +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 f95996ef-9f49-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 16:10:56 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-336746c7b6dso1439008f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 07:10:56 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 g16-20020adfa490000000b00336781b4915sm2546946wrb.43.2023.12.20.07.10.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 07:10:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f95996ef-9f49-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703085055; x=1703689855; 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=NKMF2oCfOkz1pCZOd+zBNZHXXeuWXATMsPyXAcQv8Wk=;
        b=Paw5iq1n6T/qMupgzpSpYtXMULnFSzpoi6smkSrQlcwMZ4pLI5pJpe7DKFmYtnWFUP
         0l+YStsVE9SQ/Mdp0JOZlT4JnVSY+NNfHTCIJSnG7t+L2e2F0M7Z3rBSpUnn833N30wi
         DYYQAWvGzGLrVMlXqEnppYs1ZTNySffQI6HD8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703085055; x=1703689855;
        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=NKMF2oCfOkz1pCZOd+zBNZHXXeuWXATMsPyXAcQv8Wk=;
        b=kSc0WGdocGSRgiPAcOvEdHs1lP6c5CwD2p3V4JP4ujQO/j3UROK2gIznGHGC6otJkI
         OPkew/JMGQbb2ZjHw6E7T0eTbV18KfOHgekEtTpBteBF6LQqMta1bJJxbK0zGPccwGYV
         AdoTONYliWTa/3yrYZJsbioBjGS7L5SK6gNY34mJpR2THveHj8QzY7hZj9rBqpgqs/Yk
         aXzTYomFSb6/J5hzSme4fQg/Jh5eHql1/yoSiuphIBE5lbz77sio3JLQTGEabcKbOR5j
         CyV4o5fpsLIGVnkJ0rZQqKGWipHhwXpZlphk4TrZESCUvsBluNllgQXDtPpyyWY05Vl2
         +P6Q==
X-Gm-Message-State: AOJu0YwrZaTfuCrpCrWX1d6las4rZpGtCgprRzSBpUbOeDZ/5v0hZfNI
	qMrCM6j2GMRHeBgceTQQP0OUXg==
X-Google-Smtp-Source: AGHT+IElg5mvUxHOGnA4gjybu36M8Zz8YKH68w2rVh6VHzX6jfwWtjdOWkSdcsh2+q7jNJOH7zL+6A==
X-Received: by 2002:a05:6000:1208:b0:336:7d6b:de76 with SMTP id e8-20020a056000120800b003367d6bde76mr517832wrx.67.1703085055553;
        Wed, 20 Dec 2023 07:10:55 -0800 (PST)
Date: Wed, 20 Dec 2023 16:10:54 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>
Subject: Re: [PATCH] x86/amd: extend CPU errata #1474 affected models
Message-ID: <ZYMD_qukgCutWXRI@macbook>
References: <20231220142218.22850-1-roger.pau@citrix.com>
 <ffb3445f-fd50-4746-9f70-272ea52271ec@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ffb3445f-fd50-4746-9f70-272ea52271ec@citrix.com>

On Wed, Dec 20, 2023 at 02:46:43PM +0000, Andrew Cooper wrote:
> On 20/12/2023 2:22 pm, Roger Pau Monne wrote:
> > Errata #1474 does also affect models from family 17h ranges 00-2Fh, so the
> > errata now covers all the models released under Family 17h (Zen, Zen+ and
> > Zen2).
> 
> Perhaps "has now been extended to cover models from ..." ?
> 
> > Additionally extend the workaround to Family 18h (Hygon), since it's based on
> > the Zen architecture and very likely affected.
> >
> > Rename all the zen2 related symbols to plain zen, since the errata doesn't
> > exclusively affect Zen2 anymore.
> >
> > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Thanks for doing this.
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> I was going to suggest linking to an example revision guide but I see
> the AMD website is still broken.
> 
> > diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
> > index 0f305312ff2a..099646dc3994 100644
> > --- a/xen/arch/x86/cpu/amd.c
> > +++ b/xen/arch/x86/cpu/amd.c
> > @@ -54,7 +54,7 @@ bool __read_mostly amd_acpi_c1e_quirk;
> >  bool __ro_after_init amd_legacy_ssbd;
> >  bool __initdata amd_virt_spec_ctrl;
> >  
> > -static bool __read_mostly zen2_c6_disabled;
> > +static bool __read_mostly zen_c6_disabled;
> 
> amd_1474_c6_disable ?

Maybe just fam17h_c6_disabled, since the main usage of that variable
is to force calling fam17_disable_c6().

> That's about as general as I can make it, without losing precision.
> 
> 
> >  
> >  static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
> >  				 unsigned int *hi)
> > @@ -978,24 +978,24 @@ void amd_check_zenbleed(void)
> >  		       val & chickenbit ? "chickenbit" : "microcode");
> >  }
> >  
> > -static void cf_check zen2_disable_c6(void *arg)
> > +static void cf_check zen_disable_c6(void *arg)
> 
> fam17_disable_c6() ?Â  I know Hygon is 0x18 but it's also reasonably well
> know to be the same uarch.
> 
> This particular algorithm is good for all Fam17 uarches, irrespective of
> #1474, even if they happen to be the same set of CPUs in practice.

Yeah, I was about to use fam17h prefix, but that wouldn't cover Hygon.
I we are fine with it I can send an adjusted v2 using fam17h prefix.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 15:16:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 15:16:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658134.1027185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFyJP-0004F0-7P; Wed, 20 Dec 2023 15:16:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658134.1027185; Wed, 20 Dec 2023 15:16: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 1rFyJP-0004Et-46; Wed, 20 Dec 2023 15:16:43 +0000
Received: by outflank-mailman (input) for mailman id 658134;
 Wed, 20 Dec 2023 15: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=YRba=H7=oracle.com=steven.sistare@srs-se1.protection.inumbo.net>)
 id 1rFyJN-0004En-Lp
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 15:16:41 +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 c5b695b2-9f4a-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 16:16:40 +0100 (CET)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3BKDxBqS032707; Wed, 20 Dec 2023 15:15:53 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 3v12p48s8g-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 20 Dec 2023 15:15:52 +0000
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 3BKEWpX8022325; Wed, 20 Dec 2023 15:15:51 GMT
Received: from nam02-dm3-obe.outbound.protection.outlook.com
 (mail-dm3nam02lp2041.outbound.protection.outlook.com [104.47.56.41])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 3v12b8wnp3-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 20 Dec 2023 15:15:51 +0000
Received: from SA2PR10MB4684.namprd10.prod.outlook.com (2603:10b6:806:119::14)
 by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Wed, 20 Dec
 2023 15:15:48 +0000
Received: from SA2PR10MB4684.namprd10.prod.outlook.com
 ([fe80::d609:b162:ba7c:4e96]) by SA2PR10MB4684.namprd10.prod.outlook.com
 ([fe80::d609:b162:ba7c:4e96%4]) with mapi id 15.20.7113.016; Wed, 20 Dec 2023
 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>
X-Inumbo-ID: c5b695b2-9f4a-11ee-98eb-6d05b1d4d9a1
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=rO0bjcNUvu0X4fhCXYG3Kn4mXdmlpL3Fu9nqhDgTOR4=;
 b=ktFn9fgv0JDP6L7z5rIra75uQl+choMYVlwjgWSIPP9Ibeh1BXZ0jZlwc4B2AB1QAdmr
 WAEcnDKE75juyhFa8YAlI01nirSqYU938WqAzuItbnzORpjqmFEa9flYTAIgxAtkuqlH
 S6fNM9F4xBl4TIsjWDn9hRve0lHZDb/RFpciIO2irpsaA85x4vr7TQQDb1pf/fmoHKTO
 iHLE8hp6xonoXcupZaOnUkox/Wgx8pL99P+FbxZIqCnkcuvFEyAfzT1IR5+O6qheVy3H
 ZB3ZxHXQviKd0dt6hLNIKPSEk8HIlvi/8rduyXBKGd1OyR9SCp7v+C9jqflWfyaD+XwW uw== 
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UNQidqn76BTAN6Y2VRxc+Er8eiORIf8p1P6wQyIhLa1mGTpmMnd4ZcLLEIxh5NRQ2LsGFJLrHTteM0p3sXU5IxJAr4MdIQU3F0h6SEndY1yQ2QUBJ+8CVACfGFjPbFfpxF+TyjS7VZoefxvy2VZgDntSB0TAwlY5vuHfoYXnEawkQ2B/zQvFNNlMySgWLTHEJo+SsyJPx+C1My1kTkXEy30+iBs9YekYyj3czQTBOZUc6f7FWGfbmxMWNMycmRka2ZRe/mqlbs1SosiP8yj+lVJhuRrqEvAATAXeIP2P+MM5TWDfv3akkB1hptiodb6N/NNVlx2Bbp7SNGz+tL6vDQ==
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=rO0bjcNUvu0X4fhCXYG3Kn4mXdmlpL3Fu9nqhDgTOR4=;
 b=Qaa7JA6GQsjW9naQp5Rk+LuOFn7qdfqNBAT0v6xmcbUZ/jWzhFE3k5/k4POkhdEV0NSNWVi6S+by1q0duIz9PMTb16I2X/hl8vYpOSUeS+BhbxOqCCjeOYNnItc7wwDUaU1R00ny56+iNkKBw9YPgwwMgypNDIuK3H+o2Rusjnnx+MmYF4HTww6bQofMSn6nPoCnmkh1Puo6d8x6EQZ2cs/nXHgSC7anHDwXPFks71FIAc5X31odaAucGALuLIY8sBf2U7zIGIz2L3CoHi1qRSKl1vkp+6xoQEIhVfVMX6uw42JVEmsTDa5NgcKTvxGq8EY1u7TJcDqkdtaVgvHhaw==
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=rO0bjcNUvu0X4fhCXYG3Kn4mXdmlpL3Fu9nqhDgTOR4=;
 b=TZfk/5SiQv/moAQz8XcBhLBNSX0+QbyFwX72GfroT1sXLMKO8j3xWk7Vd2XD1Lr9UERi6EwcALngxpeb9e5Bh5uggOP1giyBGelvLrgqUZDie1Vzq7y8qJKYm5tc2CIm1WFMZc8w0wHTgMcyCSmfrmgMgNU7X5l0PvsfFUdfqRs=
Message-ID: <f4497a5a-cb84-4c0a-8e45-567d53f45fe1@oracle.com>
Date: Wed, 20 Dec 2023 10:15:43 -0500
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V8 00/12] fix migration of suspended runstate
Content-Language: en-US
To: Anthony PERARD <anthony.perard@citrix.com>, Peter Xu <peterx@redhat.com>
Cc: Juan Quintela <quintela@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>,
        Thomas Huth <thuth@redhat.com>,
        =?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?=
 <berrange@redhat.com>,
        Fabiano Rosas <farosas@suse.de>, Leonardo Bras <leobras@redhat.com>,
        qemu-devel@nongnu.org, Stefan Berger <stefanb@linux.vnet.ibm.com>,
        Gerd Hoffmann
 <kraxel@redhat.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Paul Durrant <paul@xen.org>, Eric Blake <eblake@redhat.com>,
        Markus Armbruster <armbru@redhat.com>,
        Richard Henderson <richard.henderson@linaro.org>,
        Laurent Vivier <lvivier@redhat.com>, xen-devel@lists.xenproject.org
References: <1702481421-375368-1-git-send-email-steven.sistare@oracle.com>
 <a9ddc1b2-d4fc-44de-857b-2aeb35fa0925@oracle.com> <ZX_VS_KDsoiL9T2X@x1n>
 <04583cf1-8172-49be-81b0-adb88d6f9808@perard>
From: Steven Sistare <steven.sistare@oracle.com>
Organization: Oracle Corporation
In-Reply-To: <04583cf1-8172-49be-81b0-adb88d6f9808@perard>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ2PR07CA0008.namprd07.prod.outlook.com
 (2603:10b6:a03:505::8) To SA2PR10MB4684.namprd10.prod.outlook.com
 (2603:10b6:806:119::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PR10MB4684:EE_|PH7PR10MB5830:EE_
X-MS-Office365-Filtering-Correlation-Id: b6dee6d6-1b70-49c2-c06c-08dc016e8bae
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	Hr85CEYbfGHxclv/2G7XR/SHodh1AYwGZB5Ry9j8RmheauaNdpfFc8puPVqnDNgUekpKNjl3zI3eaayJoBiJEgFSArH74RlxomOf8n1syDPdWQftg9lzbvffiGVOBOAmSgzRX/busY9V86XCO8bM0f5JLCp7EgrBsxNRkZgi7QJXJLvx0N4ckWe3NfQy9tCkXEurcSh4SvgXFV155XOOjr13KM9kSZoRHBb+0mJiMSMYaaJXd99yJk0AW54gJORrvlc/HBP0USo9yq7h+oue2mNeE4ONURkjz1Jy0WooAoKcEDLUo5jKp9QWpEthobyx3JZrpT4Jsx9EsSGW7r3bHbRC8jVmHOunAsQ7FhldQ3g3CFQbhDBCo+0bZ9GdPhhp2JsOzIxVDSukdxZ/3pVSSpV6/mM2UnYr71urNUv3b6bEa+MEqm6XBHSIcNB0YmX2ruqS32jxh4Qhw8WKm3kxoJI869zd/rxHI98i8wHgOohk9MYx+DUC2QZ3CU60vkbyqUT88A3e1idMyAugUZEYvTbGnaRGum+/I0QLBO/fEmdHcieCoMSkuiKGbWbW4kYDeH6G12qnq9ZVe7Wn1jlSvKWhFcVRsgjUbrRxP+GALo6ULQ7eFpUdi0AwL+Pf3AR+o5vVxfOdmrSc7Mu4ih2gXg==
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4684.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(39860400002)(136003)(396003)(376002)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(8676002)(5660300002)(4326008)(8936002)(66946007)(44832011)(2906002)(7416002)(478600001)(86362001)(38100700002)(6486002)(36756003)(2616005)(41300700001)(53546011)(36916002)(26005)(6512007)(6506007)(6666004)(66556008)(316002)(66476007)(54906003)(31696002)(4744005)(110136005)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?T2JiVXlPT2E0TUNwWnZlYWVWN2RYUFFIKytUdUFBR0lHNElNcUdSV21mckd3?=
 =?utf-8?B?dlcwL29oYStRYnhWVVh5RDJrdG9XYVY5cU5aSFJJWFJ6aHNiY1c4NUxHR0dC?=
 =?utf-8?B?MkxwYW14eDVVcTI4a3M3T00zVkt4NmJTZXkrWUd2TFlFSmJMYTBuRUU2REZR?=
 =?utf-8?B?bTlDa3FBbjc2TlJzM0Rnb2lINXg5S3dqK3h2blZhTjhvNXI4bllGb3ZPYXlL?=
 =?utf-8?B?U3ZibUN3dU00UFhQOFIyLzZ4MGlrMllrdWh2bStGdlVoYUV5dmorejlPdTA5?=
 =?utf-8?B?bnRtTTNzcXlhQzltbnlhZlZFS2RnWGhocDIybVB4Z1pVRml0T2FtdURHN1Ry?=
 =?utf-8?B?Z28yT0EzcVVEMnM5UUNZZnZoUXBpM25FOVgvaStSNkkzc2Y5SGpBTmJCYUZP?=
 =?utf-8?B?OVphYUExRkFVZUtMWTRXS2JmSnRqSXJKS3lUbUM0NUgwN1VMY2xseEVUVlcr?=
 =?utf-8?B?YW9IM2tjZ2RYMW5sSDIzQ24zdUZ5RzUxUCs0SUM1ei91aUpOZ2pTVEI0R0RG?=
 =?utf-8?B?NS9qcUxEZDJGcTNUaHUyMWVaUkV4OC9VdWZZaWVpaEdmejNhUjFwVkZwQWJE?=
 =?utf-8?B?YkxnRXJBVUttdWhUWXJlRUlITDA4aE1DOEROZUkzNmcvWFNWYUxYSEhUUTQz?=
 =?utf-8?B?TlhlZnlEYlY2c0MvcVBtR1l2K0FOS1E0YmRPZ2JaNE1tMlpCZ0tCdUF2WkRl?=
 =?utf-8?B?ZVpTZVhOY0JleUtIQW0yL1hBK2FvdDdRWTB4aVlxODhuY1pOaDYzQ1FRL0lH?=
 =?utf-8?B?N083cjBSbFc5NjJDRGU3TXNlUkxTSWxRdHJ3TXB5MXBuMllLeG50WTBxdkJC?=
 =?utf-8?B?RzNqVnVMNVB0UHlacXZuOHBLcjJpbUJ3ZGRxWW1Ubk9JdzFrMkEyUU10V3lN?=
 =?utf-8?B?Yzh6RkdvSkFpd1Q3djZ6enpJd3ZxY2I2RTFYdXVpd0hlTDBJZHhWbUg4ZFlV?=
 =?utf-8?B?Y29UaWk3VVkwUlJUWUJMSVBvRXJ1clh1MTEwQ3FJUHJXTGJTbVhGeGRnSCtx?=
 =?utf-8?B?VkhWeDVuYmo1MnIvRm04SmtIVk90NktrQnk4dTQwT2piVThFaTdWbkxkbnlO?=
 =?utf-8?B?c1hSOUlNTkM4TG4rN3NOMnJvUUJxUHJCejNVMmsxb1hVWHJKZ3RrNHdLZ2hM?=
 =?utf-8?B?dFV3OHB0dHhUbzViZHNHQ3dIeFpLSDBMd3hFdU1DejcyN0JJYk83MVdWMXNx?=
 =?utf-8?B?bGg1RE42c0g5Wm1hcmJ0WHVMdEwxSml2bkhvWisrMFBqZnN3MWZaenNmQnU5?=
 =?utf-8?B?V1dwNWdvZW1YaDVWVjB3K3BJMkZ0Z0NGKy94ck1QZGF2aGJFUDhibzdiaThG?=
 =?utf-8?B?Q3Rwam1HSHM3U0lWMzFHd3REN1UzMjhBQk1CQ0d5VEFVa1hsUk03aXdlSkdh?=
 =?utf-8?B?WE5nM1ZESldjSnlWUElRN2hnZE9ZK2RaZXZPQ2N4MHNXZlFQbjVFUXRaQzJl?=
 =?utf-8?B?MjVhYXJub3I0RldyUWpNWmxQMTFJb1lIU0V4b0RES1ZTY1ZkNDh6NVdBVEJW?=
 =?utf-8?B?TWdvSC9oY05FTHpOcTRzV2NNTitEeEU0aW5HWitnajZHSE9kcUc2OGZpaXl2?=
 =?utf-8?B?VGx2ZnFLcENGZXhFK0RQUlJYamxPaUwrS282VkpJSmZXc01ISVFaNENlWVBG?=
 =?utf-8?B?OFN1dHovN3YyN2dNMUV1ZjJCcDdlRzdRWjFDNXk3T1h0TWdJODB1Mm1ERXgv?=
 =?utf-8?B?ZU9tRWdWbXIwaVZEUmhCZm1sZmdjbFExSkVhVWlxTmNKemdBMUhWQTRhMWU2?=
 =?utf-8?B?WEJUZFN5eUNUd1BISURSSitWeGlyVlp2Y3hnTU02YUozOWJVRnptaFFxalVz?=
 =?utf-8?B?cHA2M3ZkTnVkdHZWWWRIdlZFMnYxNUxxaU1MZHZ6dXFWZjhSeUM3eDg4T0xZ?=
 =?utf-8?B?QzY0SjZYOVpPbER1N3QzS213M2RBdHVCODlLS2JacHNzN0l0NGhlTHVxZzJX?=
 =?utf-8?B?ZkFiWW9BcXVha2NOTzB0cXhpTHJrWmpPYnliamF0UkZKV1JrOXljdWRUYjI4?=
 =?utf-8?B?MzZRWVZtbVhUK3VYZG5vTGE2QkhNNUVQVDI2NXhkN0RRdWxuY0ZtNmZlaklW?=
 =?utf-8?B?TkIwNjZXbFAvelNnQzJiUXExR0hQdllvcW1BdGFhTC9pNVNXRkdlWnBOWGEx?=
 =?utf-8?B?MzV4ZnJOSjVvUzBFL1JLeG4yYmpYSTZSU0IrWWQwZWpWcG00d0ZqbHI1VTY3?=
 =?utf-8?B?Rmc9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 
	f8T1z/ZKXc2VF7sm34iA3KsWrsm8Q+b5WeM8uk4oJUs7A3BubSuizk1z5SgALhuYHxWmQG3EkL+aS6pymDD8sYuxvZgC10vSseUjimdJfYnOcaXqoduNC3CUq51Hz65NvhQ5h0++WMTnjlyvgqJL3BZwxcMlwuXoa6yD9AsnWYPK2BZP3DMIMquRMDl5VAUfNHJJ60kOHjmhwYKfyabPzXoAOQACRtr1qWVOLpY+rDYcZHv+oSxhW5l3GaXuWyLMP4tVKCQ0BCA84p/KytAWreAQuf+0HGR5usSMgKLS6QLE6Ra7iYPmVSTYaWGkKw/R/x5qtxjWTD1eYmz2IAgvceitbxVkQxbrnX/8vwIzY8IwnQPCTMakefUCthzPrOF3m6gJbLXNd2Hy0b0NS+avdZDhsHIT8Mu8W+I3U8ZAu9GmPjoI/taPApyqtrRAwQ+wcsMnog4N8rXn/vm0Z1aNW4ydjN9GeE78nkGVkDhqOiZVwp2sKv2sTk71v3orNgakMPA7HV1pE9mPWoBbMU8a9DalINprTL7JX+jCPv5vgL3cnJfH3m3/Dzj5TiDotIa5UxmrX6DLpQlmt193LDXC6+4FI4C85QJ0snMJwJ8Revk=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b6dee6d6-1b70-49c2-c06c-08dc016e8bae
X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4684.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 15:15:48.2950
 (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: heFhPV4BF0VnP8jNtMrkBuWge3nR11+b/wXy/Sw5gcD/qiCgXw9aZTDM4b9tvJRhbD/eVPgXEi7i+G8U8wMjf8GTEqWrqXO++eHjpeNHwxo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-20_09,2023-12-20_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 spamscore=0
 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000
 definitions=main-2312200109
X-Proofpoint-GUID: 1D9z49OOA-J1uSB78w3Fdm6J63CgD6ss
X-Proofpoint-ORIG-GUID: 1D9z49OOA-J1uSB78w3Fdm6J63CgD6ss

On 12/20/2023 9:52 AM, Anthony PERARD wrote:
> On Mon, Dec 18, 2023 at 01:14:51PM +0800, Peter Xu wrote:
>> On Wed, Dec 13, 2023 at 10:35:33AM -0500, Steven Sistare wrote:
>>> Hi Peter, all have RB's, with all i's dotted and t's crossed - steve
>>
>> Yes this seems to be more migration related so maybe good candidate for a
>> pull from migration submodule.
>>
>> But since this is still solving a generic issue, I'm copying a few more
>> people from get_maintainers.pl that this series touches, just in case
>> they'll have something to say before dev cycle starts.
> 
> I did a quick smoke test of migrating a Xen guest. It works fine for me.

Thanks very much, I appreciate it - steve


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 15:37:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 15:37:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658144.1027194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFydZ-0003Uj-0b; Wed, 20 Dec 2023 15:37:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658144.1027194; Wed, 20 Dec 2023 15: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 1rFydY-0003Uc-Ts; Wed, 20 Dec 2023 15:37:32 +0000
Received: by outflank-mailman (input) for mailman id 658144;
 Wed, 20 Dec 2023 15: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=J4Ro=H7=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1rFydW-0003UW-L8
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 15:37:30 +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 ad3dc224-9f4d-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 16:37:28 +0100 (CET)
Received: from mail-yb1-f172.google.com (mail-yb1-f172.google.com
 [209.85.219.172]) by mx.zohomail.com
 with SMTPS id 1703086642517653.2102363842461;
 Wed, 20 Dec 2023 07:37:22 -0800 (PST)
Received: by mail-yb1-f172.google.com with SMTP id
 3f1490d57ef6-da7ea62e76cso4973596276.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 07:37:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad3dc224-9f4d-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; t=1703086644; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=lkCANh5Kxun4f8cObhv2Araq+bpUiTcmYgk6ijqpGcr+oyUw3kFQLpG1XuWj5puigVQZ0/7yQAPBau9XqlUJYLJ57LgITikukHZ+sz2xlwa/6GNWmZwMn3vH+SWbW4YInZ5UfgSuIxfYk5We3gU3Ml1eq7/8P7eIC5A998kHYvM=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1703086644; 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=6U9a4uRDTNsmkYKcRYzRibfZvUVAXurmlYHaLYqv7Zs=; 
	b=eIlijL4kbLliyucm4H5oHIqpe9VqaSrBpabsj8JEL6GQs5nI3UdNoBRUfu8bhvAKFWdz1RRAf3GV+NKhSJbSmfOSsC/Pk7ADluXuHdp+40BNUuV+4FK8Yj964tKj5wPw2JDPJ4DJBRFwt46/bIKS+ba2HZAf4i52lba2vl5ZMlY=
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=1703086644;
	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=6U9a4uRDTNsmkYKcRYzRibfZvUVAXurmlYHaLYqv7Zs=;
	b=XVgsNa82xZDDpD+dm2dTA8C4mLNN/vSnfQQY26EdXbZtc4ftX+CfgNbupH8Hz2rU
	Bo6VFM6pu3Dri3xcMQCRBlxsYfy9lnhbxoe+hiElFGEXt5vU81AtcVvzkyN7NLNTkAo
	3i4QMygiiQePS50RoQB0UipF+GfZA97BDjK5mU54=
X-Gm-Message-State: AOJu0YxaKGf1hLAW8D86y3Wrro5YsljmvZncZkw4t0l0htMMGlWyXcMZ
	GJSfZBU8hA/PRK/NTZnz+Nezu9lfJR2b0/mZONc=
X-Google-Smtp-Source: AGHT+IFgcmKVzBP9rA8I7+nIm0AKmy3543ZK6MJ3Qu8cDNW8CYY2lotMOE4IjxxklurRltCDmAA1kCI8fVIkm4Chu+w=
X-Received: by 2002:a25:d749:0:b0:dbd:2f1:c6eb with SMTP id
 o70-20020a25d749000000b00dbd02f1c6ebmr4837888ybg.64.1703086641597; Wed, 20
 Dec 2023 07:37:21 -0800 (PST)
MIME-Version: 1.0
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <d7a015aaa54fb4722d4970f0f40789efe4d994f9.1703066935.git.federico.serafini@bugseng.com>
 <929aea0c-722e-46fe-aee4-a5c87ad22bd4@xen.org>
In-Reply-To: <929aea0c-722e-46fe-aee4-a5c87ad22bd4@xen.org>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Wed, 20 Dec 2023 10:36:44 -0500
X-Gmail-Original-Message-ID: <CABfawhnejjZ92Wt0sMVGS1F0ee5rEB9HDsDJ-wuw71h_GGtM-w@mail.gmail.com>
Message-ID: <CABfawhnejjZ92Wt0sMVGS1F0ee5rEB9HDsDJ-wuw71h_GGtM-w@mail.gmail.com>
Subject: Re: [XEN PATCH 4/7] xen/arm: mem_access: address violations of MISRA
 C:2012 Rule 16.3
To: Julien Grall <julien@xen.org>
Cc: Federico Serafini <federico.serafini@bugseng.com>, xen-devel@lists.xenproject.org, 
	consulting@bugseng.com, Alexandru Isaila <aisaila@bitdefender.com>, 
	Petre Pircalabu <ppircalabu@bitdefender.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 20, 2023 at 6:53=E2=80=AFAM Julien Grall <julien@xen.org> wrote=
:
>
> Hi Federico,
>
> On 20/12/2023 11:03, Federico Serafini wrote:
> > Refactor of the code to have a break statement at the end of the
> > switch-clause. This addresses violations of Rule 16.3
> > ("An unconditional `break' statement shall terminate every
> > switch-clause").
> > No functional change.
> >
> > Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> > ---
> >   xen/arch/arm/mem_access.c | 12 ++++++------
> >   1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/xen/arch/arm/mem_access.c b/xen/arch/arm/mem_access.c
> > index 31db846354..fbcb5471f7 100644
> > --- a/xen/arch/arm/mem_access.c
> > +++ b/xen/arch/arm/mem_access.c
> > @@ -168,10 +168,10 @@ p2m_mem_access_check_and_get_page(vaddr_t gva, un=
signed long flag,
> >            * If this was a read then it was because of mem_access, but =
if it was
> >            * a write then the original get_page_from_gva fault was corr=
ect.
> >            */
> > -        if ( flag =3D=3D GV2M_READ )
> > -            break;
> > -        else
> > +        if ( flag !=3D GV2M_READ )
> >               goto err;
> > +
> > +        break;
>
> On both hunks, I find the original version better as it is easier to
> match with the comment. I also understand that it wouldn't be great to
> add a deviation for this construct. So maybe we should tweak a bit the
> comment?

Simplifying the if-else to a single if is fine by me. Adjusting the
comment to reflect the new logic would help though, so +1 to Julien's
comment.

Thanks,
Tamas


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 15:43:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 15:43:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658149.1027206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFyio-0005mS-Mt; Wed, 20 Dec 2023 15:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658149.1027206; Wed, 20 Dec 2023 15: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 1rFyio-0005mL-Hc; Wed, 20 Dec 2023 15:42:58 +0000
Received: by outflank-mailman (input) for mailman id 658149;
 Wed, 20 Dec 2023 15: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=+WYL=H7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFyin-0005mF-7r
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 15:42:57 +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 71df13f0-9f4e-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 16:42:56 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40d3ae326f6so1664485e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 07:42:56 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 o2-20020a5d62c2000000b003366796301csm8799563wrv.0.2023.12.20.07.42.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 07:42:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71df13f0-9f4e-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703086976; x=1703691776; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=64WBGZWiJKEp674HGMAdtReoW+IDdvsy/JmBxKP6SRE=;
        b=QfxhUq+g7fQ7rFMCqoP1bCQQZ3EjClNx2UbvEf8XxoiMIzx3HvsQ4fRQF0Zzz2BaGE
         ttCGIRJlRSyooSiF6txU5pzRUizU7g4H+AGfVdbPtATAaAT9PK0n56I+0BggqBJoBR+l
         1WLxCKsomtuIUGzck720R91wdUlHnb5m+CbHw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703086976; x=1703691776;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=64WBGZWiJKEp674HGMAdtReoW+IDdvsy/JmBxKP6SRE=;
        b=akProc6FREFSCGlyHS1a/ZgatS5UUY8Yb6gbCfJaafqMx+wroaOZ+jDhlrhJt+h9rK
         yp1Imf/E1NYmWnQvFLHiskhq1OKBxLRVKXQBa/Msrzb8q4U/O7ge06LK9wFHL3S4s8oh
         0WpdfA77431CYy77MPQk52M+YWyl5uI+J//LG3Wjz6xvj27zP4p7lJJTdYjtAvXLWUW7
         RoqiQfUtGKRJm81R1MLN3jkcWmTAwdCAxPHKhwd1Mg2FvklGrGGuSrvOdGp2hQD9Pql8
         TWd7SAYkfPGWfobHNygbvisKwC/1Sd8nMbDDWgaU8JWr/kYVXZiS3HOEuVcHjmOi4hZe
         ZAuw==
X-Gm-Message-State: AOJu0YxXf+y8tcwATjm8JsJKpAL8KHkg88JG5QHP8JlWEAvtP4euMHih
	408Qi4TebWB2hYMzep0Es2GPew==
X-Google-Smtp-Source: AGHT+IH07wwr4yLltXYqfV9zBVGJeS42WaFw+5AdKD5JjECXwVSjBvFxERtBceLkxN6ll9cNZSI8Tw==
X-Received: by 2002:a5d:630c:0:b0:336:7dcd:a1e3 with SMTP id i12-20020a5d630c000000b003367dcda1e3mr512721wru.141.1703086975710;
        Wed, 20 Dec 2023 07:42:55 -0800 (PST)
Message-ID: <00b19784-00bb-494d-bfc0-f0deaa0c1e08@citrix.com>
Date: Wed, 20 Dec 2023 15:42:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/amd: extend CPU errata #1474 affected models
Content-Language: en-GB
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>
References: <20231220142218.22850-1-roger.pau@citrix.com>
 <ffb3445f-fd50-4746-9f70-272ea52271ec@citrix.com> <ZYMD_qukgCutWXRI@macbook>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ZYMD_qukgCutWXRI@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/12/2023 3:10 pm, Roger Pau MonnÃ© wrote:
> On Wed, Dec 20, 2023 at 02:46:43PM +0000, Andrew Cooper wrote:
>> On 20/12/2023 2:22 pm, Roger Pau Monne wrote:
>>> Errata #1474 does also affect models from family 17h ranges 00-2Fh, so the
>>> errata now covers all the models released under Family 17h (Zen, Zen+ and
>>> Zen2).
>> Perhaps "has now been extended to cover models from ..." ?
>>
>>> Additionally extend the workaround to Family 18h (Hygon), since it's based on
>>> the Zen architecture and very likely affected.
>>>
>>> Rename all the zen2 related symbols to plain zen, since the errata doesn't
>>> exclusively affect Zen2 anymore.
>>>
>>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> Thanks for doing this.
>>
>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>> I was going to suggest linking to an example revision guide but I see
>> the AMD website is still broken.
>>
>>> diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
>>> index 0f305312ff2a..099646dc3994 100644
>>> --- a/xen/arch/x86/cpu/amd.c
>>> +++ b/xen/arch/x86/cpu/amd.c
>>> @@ -54,7 +54,7 @@ bool __read_mostly amd_acpi_c1e_quirk;
>>>  bool __ro_after_init amd_legacy_ssbd;
>>>  bool __initdata amd_virt_spec_ctrl;
>>>  
>>> -static bool __read_mostly zen2_c6_disabled;
>>> +static bool __read_mostly zen_c6_disabled;
>> amd_1474_c6_disable ?
> Maybe just fam17h_c6_disabled, since the main usage of that variable
> is to force calling fam17_disable_c6().
>
>> That's about as general as I can make it, without losing precision.
>>
>>
>>>  
>>>  static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
>>>  				 unsigned int *hi)
>>> @@ -978,24 +978,24 @@ void amd_check_zenbleed(void)
>>>  		       val & chickenbit ? "chickenbit" : "microcode");
>>>  }
>>>  
>>> -static void cf_check zen2_disable_c6(void *arg)
>>> +static void cf_check zen_disable_c6(void *arg)
>> fam17_disable_c6() ?Â  I know Hygon is 0x18 but it's also reasonably well
>> know to be the same uarch.
>>
>> This particular algorithm is good for all Fam17 uarches, irrespective of
>> #1474, even if they happen to be the same set of CPUs in practice.
> Yeah, I was about to use fam17h prefix, but that wouldn't cover Hygon.
> I we are fine with it I can send an adjusted v2 using fam17h prefix.

I think we're fine calling it fam17.Â  Happy to do that consistently.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 15:44:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 15:44:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658152.1027215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFykS-0006nI-VU; Wed, 20 Dec 2023 15:44:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658152.1027215; Wed, 20 Dec 2023 15: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 1rFykS-0006nB-Sa; Wed, 20 Dec 2023 15:44:40 +0000
Received: by outflank-mailman (input) for mailman id 658152;
 Wed, 20 Dec 2023 15:44: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=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rFykR-0006n5-T5
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 15:44:39 +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 af179140-9f4e-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 16:44:38 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2cc4029dc6eso70413671fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 07:44:38 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 p1-20020a2e8041000000b002cc93ee9fe9sm178087ljg.131.2023.12.20.07.44.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 07:44:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af179140-9f4e-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703087078; x=1703691878; 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=8ka3CgaAE94CZaAK4I7kg9v7xu90rqBuG9rtVH2ddnE=;
        b=KhSkvUbhgXZmOP9vWRY9WXVMydtND50U2IJc75PifyeK0lwk50jzNjx9f5MeVRBvPv
         8GuMhGR81lWqvn6AflcFmoEEl55uI8Gs7WjYxW0rhWv+eFxSC4iPAqrfTjSc3Gp6Only
         qsDt9+IFO0BYnJIcU94BGAQHJk5ZtLgWWEdGoWHzbpOk/mfvefcC/6WmXEjMCMwxXtWf
         WSZre0TFPcpqrScVZ1ylds/lIeW87JWHUlwLMFzkyfb/WZq9KISR/foA8ipLfvcukPS3
         Zq5jJWc8Z0Z+a6xfcXFhYnWI4Pb0IyIsBSosB9fInczsTmrHnAFrJshZaFf8lTPXwIlZ
         nR4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703087078; x=1703691878;
        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=8ka3CgaAE94CZaAK4I7kg9v7xu90rqBuG9rtVH2ddnE=;
        b=sDChTT3YHfl/YvOt2r4nZAwKn05ZqIGL3/e9z6DkbDME0c9HMY0RFNKPaNeB1AD+6Y
         51/rWzQ9fdDyYmz5V78CT59udqFtTGD/dcbjPkU4q4nB3+zeLoiRaAA3EAU6L8Z7pfiF
         6xmcSJUnKoOgkSvRb85OuhI7JGDHeQso7YTx9qygGlcUqC7Gl6qpKR/zrbb6jJQ5VI26
         bBvjcBd0U3J9xnVnLWSG6V4l5D6Nd7wgDtw/cheTyVUghbD94oCFbq4uk2wKd6OogpST
         io8skJUXj2L4e9jgRWTMlOXKUGcn7y3uMU16jqI1iG90sWW681fGK1PPaUTGUFMoU94V
         lZug==
X-Gm-Message-State: AOJu0YzBmjKKNKz3f8lgX0QnuzJevRwLPZC911CtNHQz25xtbWr/I63W
	9tW1u4saMMZcn2h7SLVHdjH1zgTHBx9qOQ==
X-Google-Smtp-Source: AGHT+IFfzzIB6OrrlaX27SLnP9ckXVSgeO0Z949Lwf3gvCFqtYE7ufRKzc83u+h+BHjab12BlTDSMw==
X-Received: by 2002:a2e:a497:0:b0:2cc:90f6:fe24 with SMTP id h23-20020a2ea497000000b002cc90f6fe24mr630526lji.91.1703087078000;
        Wed, 20 Dec 2023 07:44:38 -0800 (PST)
Message-ID: <e9603d682e28143a0ce7d67b86e313ab6d3ea00a.camel@gmail.com>
Subject: Re: [PATCH v6 4/9] xen/asm-generic: introduce stub header monitor.h
From: Oleksii <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>, Jan Beulich
 <jbeulich@suse.com>
Date: Wed, 20 Dec 2023 17:44:36 +0200
In-Reply-To: <49c8e0f5997063ed65c3b135c0003ca9570c0bc6.1703072575.git.oleksii.kurochko@gmail.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
	 <49c8e0f5997063ed65c3b135c0003ca9570c0bc6.1703072575.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

It is necessary to remove unnecessary inclusions of headers in
arch/*/asm/monitor.h. This was overlooked.

Sorry for the inconvenience.

~ Oleksii

On Wed, 2023-12-20 at 16:08 +0200, Oleksii Kurochko wrote:
> The header is shared between several archs so it is
> moved to asm-generic.
>=20
> Switch partly Arm and PPC to asm-generic/monitor.h and only
> arch_monitor_get_capabilities() left in arch-specific/monitor.h.
>=20
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> Changes in V6:
> =C2=A0- Rebase only.
> ---
> Changes in V5:
> =C2=A0 - Switched partly Arm and PPC to asm-generic monitor.h only
> =C2=A0=C2=A0=C2=A0 arch_monitor_get_capabilities() left in arch-specific/=
monitor.h.
> =C2=A0 - Updated the commit message.
> ---
> Changes in V4:
> =C2=A0- Removed the double blank line.
> =C2=A0- Added Acked-by: Jan Beulich <jbeulich@suse.com>.
> =C2=A0- Update the commit message
> ---
> Changes in V3:
> =C2=A0- Use forward-declaration of struct domain instead of " #include
> <xen/sched.h> ".
> =C2=A0- Add ' include <xen/errno.h> '
> =C2=A0- Drop PPC's monitor.h.
> ---
> Changes in V2:
> 	- remove inclusion of "+#include <public/domctl.h>"
> 	- add "struct xen_domctl_monitor_op;"
> 	- remove one of SPDX tags.
> ---
> =C2=A0xen/arch/arm/include/asm/monitor.h | 28 +--------------
> =C2=A0xen/arch/ppc/include/asm/monitor.h | 28 +--------------
> =C2=A0xen/include/asm-generic/monitor.h=C2=A0 | 57
> ++++++++++++++++++++++++++++++
> =C2=A03 files changed, 59 insertions(+), 54 deletions(-)
> =C2=A0create mode 100644 xen/include/asm-generic/monitor.h
>=20
> diff --git a/xen/arch/arm/include/asm/monitor.h
> b/xen/arch/arm/include/asm/monitor.h
> index 7567be66bd..045217c310 100644
> --- a/xen/arch/arm/include/asm/monitor.h
> +++ b/xen/arch/arm/include/asm/monitor.h
> @@ -25,33 +25,7 @@
> =C2=A0#include <xen/sched.h>
> =C2=A0#include <public/domctl.h>
> =C2=A0
> -static inline
> -void arch_monitor_allow_userspace(struct domain *d, bool
> allow_userspace)
> -{
> -}
> -
> -static inline
> -int arch_monitor_domctl_op(struct domain *d, struct
> xen_domctl_monitor_op *mop)
> -{
> -=C2=A0=C2=A0=C2=A0 /* No arch-specific monitor ops on ARM. */
> -=C2=A0=C2=A0=C2=A0 return -EOPNOTSUPP;
> -}
> -
> -int arch_monitor_domctl_event(struct domain *d,
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 xen_domctl_monitor_op *mop);
> -
> -static inline
> -int arch_monitor_init_domain(struct domain *d)
> -{
> -=C2=A0=C2=A0=C2=A0 /* No arch-specific domain initialization on ARM. */
> -=C2=A0=C2=A0=C2=A0 return 0;
> -}
> -
> -static inline
> -void arch_monitor_cleanup_domain(struct domain *d)
> -{
> -=C2=A0=C2=A0=C2=A0 /* No arch-specific domain cleanup on ARM. */
> -}
> +#include <asm-generic/monitor.h>
> =C2=A0
> =C2=A0static inline uint32_t arch_monitor_get_capabilities(struct domain
> *d)
> =C2=A0{
> diff --git a/xen/arch/ppc/include/asm/monitor.h
> b/xen/arch/ppc/include/asm/monitor.h
> index e5b0282bf1..89000dacc6 100644
> --- a/xen/arch/ppc/include/asm/monitor.h
> +++ b/xen/arch/ppc/include/asm/monitor.h
> @@ -6,33 +6,7 @@
> =C2=A0#include <public/domctl.h>
> =C2=A0#include <xen/errno.h>
> =C2=A0
> -static inline
> -void arch_monitor_allow_userspace(struct domain *d, bool
> allow_userspace)
> -{
> -}
> -
> -static inline
> -int arch_monitor_domctl_op(struct domain *d, struct
> xen_domctl_monitor_op *mop)
> -{
> -=C2=A0=C2=A0=C2=A0 /* No arch-specific monitor ops on PPC. */
> -=C2=A0=C2=A0=C2=A0 return -EOPNOTSUPP;
> -}
> -
> -int arch_monitor_domctl_event(struct domain *d,
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 xen_domctl_monitor_op *mop);
> -
> -static inline
> -int arch_monitor_init_domain(struct domain *d)
> -{
> -=C2=A0=C2=A0=C2=A0 /* No arch-specific domain initialization on PPC. */
> -=C2=A0=C2=A0=C2=A0 return 0;
> -}
> -
> -static inline
> -void arch_monitor_cleanup_domain(struct domain *d)
> -{
> -=C2=A0=C2=A0=C2=A0 /* No arch-specific domain cleanup on PPC. */
> -}
> +#include <asm-generic/monitor.h>
> =C2=A0
> =C2=A0static inline uint32_t arch_monitor_get_capabilities(struct domain
> *d)
> =C2=A0{
> diff --git a/xen/include/asm-generic/monitor.h b/xen/include/asm-
> generic/monitor.h
> new file mode 100644
> index 0000000000..74e4870cd7
> --- /dev/null
> +++ b/xen/include/asm-generic/monitor.h
> @@ -0,0 +1,57 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * include/asm-generic/monitor.h
> + *
> + * Arch-specific monitor_op domctl handler.
> + *
> + * Copyright (c) 2015 Tamas K Lengyel (tamas@tklengyel.com)
> + * Copyright (c) 2016, Bitdefender S.R.L.
> + *
> + */
> +
> +#ifndef __ASM_GENERIC_MONITOR_H__
> +#define __ASM_GENERIC_MONITOR_H__
> +
> +#include <xen/errno.h>
> +
> +struct domain;
> +struct xen_domctl_monitor_op;
> +
> +static inline
> +void arch_monitor_allow_userspace(struct domain *d, bool
> allow_userspace)
> +{
> +}
> +
> +static inline
> +int arch_monitor_domctl_op(struct domain *d, struct
> xen_domctl_monitor_op *mop)
> +{
> +=C2=A0=C2=A0=C2=A0 /* No arch-specific monitor ops on GENERIC. */
> +=C2=A0=C2=A0=C2=A0 return -EOPNOTSUPP;
> +}
> +
> +int arch_monitor_domctl_event(struct domain *d,
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 xen_domctl_monitor_op *mop);
> +
> +static inline
> +int arch_monitor_init_domain(struct domain *d)
> +{
> +=C2=A0=C2=A0=C2=A0 /* No arch-specific domain initialization on GENERIC.=
 */
> +=C2=A0=C2=A0=C2=A0 return 0;
> +}
> +
> +static inline
> +void arch_monitor_cleanup_domain(struct domain *d)
> +{
> +=C2=A0=C2=A0=C2=A0 /* No arch-specific domain cleanup on GENERIC. */
> +}
> +
> +#endif /* __ASM_GENERIC_MONITOR_H__ */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: BSD
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 16:08:11 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 16:08:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658161.1027224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFz6y-0004bn-QE; Wed, 20 Dec 2023 16:07:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658161.1027224; Wed, 20 Dec 2023 16:07:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFz6y-0004bg-NT; Wed, 20 Dec 2023 16:07:56 +0000
Received: by outflank-mailman (input) for mailman id 658161;
 Wed, 20 Dec 2023 16:07:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rFz6x-0004ba-3B
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 16:07: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 1rFz6w-0000iq-DB; Wed, 20 Dec 2023 16:07:54 +0000
Received: from [15.248.2.151] (helo=[10.6.7.47])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rFz6w-0006ML-82; Wed, 20 Dec 2023 16:07: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:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=i3wVNUzf1rd44mcYJMoLBI7/NCh85R3azBOPnPfADfw=; b=rIyvlGkhnRPndSLnBr2jV706iK
	SbrUL+9TxmhKZAFnREzCHteeoQty5BJMTfFijgc7jofhXZ/5RZE2tdkN8HoCjI/AnrcAT2Sh8pn0U
	ZaaED5zFlz0acf043erjB74kY2wp0quIC72Prz6XqIoQobF1mREjCrnm9KMlIeRSZPoE=;
Message-ID: <3962d466-b249-45e4-849f-40795c04333f@xen.org>
Date: Wed, 20 Dec 2023 16:07:52 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/7] xen/ppc: Enable bootfdt and boot allocator
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 Jan Beulich <jbeulich@suse.com>
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <aa67a0dacab0e3f39dabeb30e31732d617cadde1.1702607884.git.sanastasio@raptorengineering.com>
 <4d5ebc23-f7f8-411f-8458-762a09bdf702@xen.org>
In-Reply-To: <4d5ebc23-f7f8-411f-8458-762a09bdf702@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Shawn,

On 20/12/2023 13:23, Julien Grall wrote:
> Hi,
> 
> On 15/12/2023 02:44, Shawn Anastasio wrote:
>> Move PPC off the asm-generic setup.h and enable usage of bootfdt for
>> populating the boot info struct from the firmware-provided device tree.
>> Also enable the Xen boot page allocator.
>>
>> Includes minor changes to bootfdt.c's boot_fdt_info() to tolerate the
>> scenario in which the FDT overlaps a reserved memory region, as is the
>> case on PPC when booted directly from skiboot. Also includes a minor
>> change to record Xen's correct position on PPC where Xen relocates
>> itself to at the entrypoint.
>>
>> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>> ---
>> Â  xen/arch/ppc/include/asm/Makefile |Â Â  1 -
>> Â  xen/arch/ppc/include/asm/setup.hÂ  | 123 +++++++++++++
>> Â  xen/arch/ppc/setup.cÂ Â Â Â Â Â Â Â Â Â Â Â Â  | 289 +++++++++++++++++++++++++++++-
> 
> I might be missing something. But isn't most of the code you add is the 
> same as Arm? And if so, shouldn't this be consolidated?

So I have create a new file and move the PPC functions I think should be 
the same. Then I replace with the Arm code. Below the diff.

Looking through it, I can't see why the code cannot be shared in except 
part of populate_boot_allocator() (which could be split).

I forsee that some of the code you remove will be necessary (e.g. 
BOOTMOD_RAMDISK, BOOTMOD_XSM). And some of the style change doesn't 
match what we do in Xen (messages are not split).

If there are common bits with other architectures, then I would really 
like if they are shared rather than duplicated. I am more than happy to 
help finding a good split because it will reduce maintenance effort for 
everyone in the longer run.

Cheers,

diff --git a/xen/common/device-tree/setup.c b/xen/common/device-tree/setup.c
index 3f79b97e9036..9c376527d11b 100644
--- a/xen/common/device-tree/setup.c
+++ b/xen/common/device-tree/setup.c
@@ -70,6 +70,10 @@ const char * __init 
boot_module_kind_as_string(bootmodule_kind 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();
      }
  }
@@ -95,9 +99,8 @@ static bool __init bootmodules_overlap_check(struct 
bootmodules *bootmodules,
              continue;
          else
          {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with"
-                   " mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n", 
region_start,
-                   region_end, i, mod_start, mod_end);
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping 
with mod[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                   region_start, region_end, i, mod_start, mod_end);
              return true;
          }
      }
@@ -126,9 +129,8 @@ static bool __init meminfo_overlap_check(struct 
meminfo *meminfo,
              continue;
          else
          {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with"
-                   " bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n", 
region_start,
-                   region_end, i, bank_start, bank_end);
+            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping 
with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                   region_start, region_end, i, bank_start, bank_end);
              return true;
          }
      }
@@ -155,6 +157,12 @@ bool __init check_reserved_regions_overlap(paddr_t 
region_start,
                                     region_start, region_size) )
          return true;

+#ifdef CONFIG_ACPI
+    /* Check if input region is overlapping with ACPI 
EfiACPIReclaimMemory */
+    if ( meminfo_overlap_check(&bootinfo.acpi, region_start, region_size) )
+        return true;
+#endif
+
      return false;
  }

@@ -196,12 +204,47 @@ static void __init dt_unreserved_regions(paddr_t 
s, paddr_t e,
                                           void (*cb)(paddr_t ps, 
paddr_t pe),
                                           unsigned int first)
  {
-    unsigned int i;
+    unsigned int i, nr;
+    int rc;
+
+    rc = fdt_num_mem_rsv(device_tree_flattened);
+    if ( rc < 0 )
+        panic("Unable to retrieve the number of reserved regions 
(rc=%d)\n",
+              rc);

-    for ( i = 0 ; i < bootinfo.reserved_mem.nr_banks; i++ )
+    nr = rc;
+
+    for ( i = first; i < nr ; i++ )
      {
-        paddr_t r_s = bootinfo.reserved_mem.bank[i].start;
-        paddr_t r_e = r_s + bootinfo.reserved_mem.bank[i].size;
+        paddr_t r_s, r_e;
+
+        if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &r_s, &r_e 
) < 0 )
+            /* If we can't read it, pretend it doesn't exist... */
+            continue;
+
+        r_e += r_s; /* fdt_get_mem_rsv_paddr returns length */
+
+        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;
+        }
+    }
+
+    /*
+     * i is the current bootmodule we are evaluating across all possible
+     * kinds.
+     *
+     * When retrieving the corresponding reserved-memory addresses
+     * below, we need to index the bootinfo.reserved_mem bank starting
+     * from 0, and only counting the reserved-memory modules. Hence,
+     * we need to use i - nr.
+     */
+    for ( ; i - nr < bootinfo.reserved_mem.nr_banks; i++ )
+    {
+        paddr_t r_s = bootinfo.reserved_mem.bank[i - nr].start;
+        paddr_t r_e = r_s + bootinfo.reserved_mem.bank[i - nr].size;

          if ( s < r_e && r_s < e )
          {
@@ -214,6 +257,16 @@ static void __init dt_unreserved_regions(paddr_t s, 
paddr_t e,
      cb(s, e);
  }

+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);
+}
+
  /*
   * 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
@@ -235,18 +288,47 @@ struct bootcmdline * __init 
boot_cmdline_find_by_kind(bootmodule_kind kind)
  }

  /*
- * Populate the boot allocator. Based on arch/arm/setup.c's
- * populate_boot_allocator.
- * All RAM but the following regions will be added to the boot allocator:
+ * 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.
   */
-static void __init populate_boot_allocator(void)
+void __init populate_boot_allocator(void)
  {
      unsigned int i;
      const struct meminfo *banks = &bootinfo.mem;
      paddr_t s, e;

+    if ( bootinfo.static_heap )
+    {
+        for ( i = 0 ; i < bootinfo.reserved_mem.nr_banks; i++ )
+        {
+            if ( bootinfo.reserved_mem.bank[i].type != 
MEMBANK_STATIC_HEAP )
+                continue;
+
+            s = bootinfo.reserved_mem.bank[i].start;
+            e = s + bootinfo.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];
@@ -269,11 +351,18 @@ static void __init populate_boot_allocator(void)
              if ( e > bank_end )
                  e = bank_end;

-            dt_unreserved_regions(s, e, init_boot_pages, 0);
-
+#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;
          }
      }
  }
-
-


> 
> I would also expect RISC-V to need the same.
> 
> Cheers,
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 16:15:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 16:15:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658167.1027235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFzEJ-0007SS-GN; Wed, 20 Dec 2023 16:15:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658167.1027235; Wed, 20 Dec 2023 16: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 1rFzEJ-0007SL-De; Wed, 20 Dec 2023 16:15:31 +0000
Received: by outflank-mailman (input) for mailman id 658167;
 Wed, 20 Dec 2023 16:15: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=TKvH=H7=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rFzEH-0007SF-EM
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 16:15:29 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc94fa4c-9f52-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 17:15:27 +0100 (CET)
Received: from nico.bugseng.com (unknown [147.123.100.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 136FB4EE073A;
 Wed, 20 Dec 2023 17:15:24 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc94fa4c-9f52-11ee-9b0f-b553b5be7939
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: nicola.vetrini@bugseng.com,
	xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	michal.orzel@amd.com,
	xenia.ragiadakou@amd.com,
	ayan.kumar.halder@amd.com,
	consulting@bugseng.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	George Dunlap <george.dunlap@citrix.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>
Subject: [XEN PATCH v2] docs/misra: exclude files inherited from ACPI CA from MISRA compliance
Date: Wed, 20 Dec 2023 17:15:21 +0100
Message-Id: <2a6df4ecd1cbcd14e3eb462eed0e1a73670ed762.1703067901.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The files under 'include/acpi/ac*.h' and 'include/acpi/plaform/ac*.h'
are inherited from Linux and ACPI CA, therefore they are not subject to
MISRA compliance at the moment.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- Generalize the exclusion to ac*.h
- Add exclusion for acpi/platform/ac*.h

I added acpi/platform to the exclusion list since they indeed seem in the same
lot as the other ac*.h headers, as pointed out in v1 by Jan Beulich.
---
 docs/misra/exclude-list.json | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
index 48f671c548b6..72b75215607f 100644
--- a/docs/misra/exclude-list.json
+++ b/docs/misra/exclude-list.json
@@ -194,19 +194,11 @@
             "comment": "Imported from Linux, ignore for now"
         },
         {
-            "rel_path": "include/acpi/acpiosxf.h",
+            "rel_path": "include/acpi/ac*.h",
             "comment": "Imported from Linux, ignore for now"
         },
         {
-            "rel_path": "include/acpi/acpixf.h",
-            "comment": "Imported from Linux, ignore for now"
-        },
-        {
-          "rel_path": "include/acpi/acexcep.h",
-          "comment": "Imported from Linux, ignore for now"
-        },
-        {
-          "rel_path": "include/acpi/acglobal.h",
+          "rel_path": "include/acpi/platform/ac*.h",
           "comment": "Imported from Linux, ignore for now"
         },
         {
-- 
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 16:33:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 16:33:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658175.1027245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFzVs-0004A9-Pl; Wed, 20 Dec 2023 16:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658175.1027245; Wed, 20 Dec 2023 16:33:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFzVs-0004A2-N6; Wed, 20 Dec 2023 16:33:40 +0000
Received: by outflank-mailman (input) for mailman id 658175;
 Wed, 20 Dec 2023 16:33: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=+WYL=H7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rFzVq-00049l-Pf
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 16:33:38 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 862e4f63-9f55-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 17:33:36 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-336746c7b6dso1517012f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 08:33:36 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 h18-20020adffd52000000b003366af9d611sm7344440wrs.22.2023.12.20.08.33.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 08:33:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 862e4f63-9f55-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703090016; x=1703694816; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=2n2ISEPUBB8lidZsJ7at41/6CfeyELW3PZfKA99iEVs=;
        b=MNC4bBtGwzFdEBV+fiyBJJlZpVnLsgrnPtjGBHw2W88AEaVTyJ7m1LTOV9RLd7ao+Z
         mBjTN7xnzzxP7e9PsCPm2yIcLyUg4fvR0z8nOuo62ZUjsQ2Bv/JCBmEyq0OEQcoqD/QE
         kosD0E2za+DkDr96L+oBN7VO5I3qCCWXn+3QM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703090016; x=1703694816;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=2n2ISEPUBB8lidZsJ7at41/6CfeyELW3PZfKA99iEVs=;
        b=ZsFC0l9Bxf6wNfaOWOyEUbnx+b5Mdb0kJ4D3TwLYAhzVAZj6dcm4wSe25D4eGo69a0
         wm2NVxXEPruYZNqrbKpx7vWW9Rngo2qKhAlk7Om98slkpwZuxRRm0ROETyLlc5/0nPMl
         Qopx3Y4eJxa/l1gUwvdVoQ2A+rZa223KRYxl3vgejGqWbhOd51KgIDYUyETXw3NnQQp6
         0MMh06C19Dw8Cq8Xnk0SbplWeo/DiQtlJ8nLBVM7TcHDAoMx4oPkkPsOKR8Iv9WRKi8i
         DgBcFbOg9cIY1kWbSrQvXhdVtpYk6jXJ7OMVms7+I8KO6QLLo7NehyZ6faD4IUkdMj5X
         KuTA==
X-Gm-Message-State: AOJu0YwSyiefBkwUMnIuRGscwtJplScLS1r/TVuHGakF3O0sU8t4IUmN
	EwoYctCEJS3K9nT0EmkpZvT+UQ==
X-Google-Smtp-Source: AGHT+IFpt0nwweaiBKIT3PmDnJuKlwFaP+lgYYMYNUyMojp6mP6vr3fPggmdzEVs2jMOhV4SzBkSaw==
X-Received: by 2002:a5d:690d:0:b0:336:7f02:6e6a with SMTP id t13-20020a5d690d000000b003367f026e6amr426317wru.61.1703090016263;
        Wed, 20 Dec 2023 08:33:36 -0800 (PST)
Message-ID: <a4dccfb1-6bbf-418d-b8c5-1e99c75d1b64@citrix.com>
Date: Wed, 20 Dec 2023 16:33:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/9] xen/asm-generic: introduce stub header monitor.h
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: 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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Jan Beulich <jbeulich@suse.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <49c8e0f5997063ed65c3b135c0003ca9570c0bc6.1703072575.git.oleksii.kurochko@gmail.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <49c8e0f5997063ed65c3b135c0003ca9570c0bc6.1703072575.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/12/2023 2:08 pm, Oleksii Kurochko wrote:
> diff --git a/xen/include/asm-generic/monitor.h b/xen/include/asm-generic/monitor.h
> new file mode 100644
> index 0000000000..74e4870cd7
> --- /dev/null
> +++ b/xen/include/asm-generic/monitor.h
> @@ -0,0 +1,57 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * include/asm-generic/monitor.h
> + *
> + * Arch-specific monitor_op domctl handler.
> + *
> + * Copyright (c) 2015 Tamas K Lengyel (tamas@tklengyel.com)
> + * Copyright (c) 2016, Bitdefender S.R.L.
> + *
> + */
> +
> +#ifndef __ASM_GENERIC_MONITOR_H__
> +#define __ASM_GENERIC_MONITOR_H__
> +
> +#include <xen/errno.h>
> +
> +struct domain;
> +struct xen_domctl_monitor_op;
> +
> +static inline
> +void arch_monitor_allow_userspace(struct domain *d, bool allow_userspace)
> +{
> +}
> +
> +static inline
> +int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
> +{
> +    /* No arch-specific monitor ops on GENERIC. */
> +    return -EOPNOTSUPP;
> +}
> +
> +int arch_monitor_domctl_event(struct domain *d,
> +                              struct xen_domctl_monitor_op *mop);

Turn this into a static inline like the others, and you can delete:

arch/ppc/stubs.c:100

int arch_monitor_domctl_event(struct domain *d,
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  struct xen_domctl_monitor_op *mop)
{
Â Â Â  BUG_ON("unimplemented");
}

because new architectures shouldn't have to stub one random piece of a
subsystem when using the generic "nothing special" header.

Given the filtering for arch_monitor_domctl_op(), this one probably
wants to be ASSERT_UNREACHABLE(); return 0.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 16:34:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 16:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658179.1027258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFzWn-0004s7-7T; Wed, 20 Dec 2023 16:34:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658179.1027258; Wed, 20 Dec 2023 16: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 1rFzWn-0004s0-35; Wed, 20 Dec 2023 16:34:37 +0000
Received: by outflank-mailman (input) for mailman id 658179;
 Wed, 20 Dec 2023 16:34:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nu9I=H7=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rFzWk-0004qC-Gd
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 16:34:35 +0000
Received: from mail-pg1-x533.google.com (mail-pg1-x533.google.com
 [2607:f8b0:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a64d45e0-9f55-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 17:34:31 +0100 (CET)
Received: by mail-pg1-x533.google.com with SMTP id
 41be03b00d2f7-5cdc7e18152so841311a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 08:34:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a64d45e0-9f55-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703090070; x=1703694870; 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=YEJbTyeY6/OTuwPTzXvkLuvWmsKZZ8Gk3Ph0iD0S8og=;
        b=J6H5w123PkzDxCUgsB8YCOImjTHDubxNp40IES8/nO6mZn8jYCGPm38Emitam87QPq
         AF0xZ8GNfJY+mkb+6S/guMiLLDQp4B4UHCFeEmi9YN7KMLYapIlzYzmvQAW4KY3d6kSe
         +TuH+k/rKlk0vlOcgSqofAOhmbV6CHP28mnqIG7hV3odl5kX9hB3PvH1BTkmKsVTewcy
         WADRN4TdSFY/D8ZVPZwO4fhRuPhLV2aRzawpdzJSpNzOhIaML0tbqlg+f3217e6zpdPQ
         4jSXNsueHe/cKscwvAQQeG5ypc2dMsNXJNRXi7N+MKzRNW+eQexgaP3MPEYuoLgCEuRP
         I40w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703090070; x=1703694870;
        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=YEJbTyeY6/OTuwPTzXvkLuvWmsKZZ8Gk3Ph0iD0S8og=;
        b=JVlu4/iR9TikOwrJy8cquYDRUHDuNILQVqJ4P094XIkNsO8ks/2kC70HSFu+QXmDvl
         LUMln0Wkks33IArLQwbmgXPWo7qJCTops10B3eIMCx/Qci59PjPO+GDQ2FRhnGlpTLds
         l3/3eOso//IMVEuXuK40ZgjK4BCIeN4LNfZC1vAe4emS9cyMmXoIjiu7ccpSk9VIOmyr
         BKq7aj8oDgQizycjg+vBtO9VtUaWmXqThmD+MxpchqVr++WorUcoL8DqD2OsY8g3sl9V
         /tMtehE5i1K1RyTpd9dUp8I/MnZMvSkQGI2JOBu58ypy6vtyESTCHY6wN9pTB5MNf9JG
         X7gw==
X-Gm-Message-State: AOJu0YxtXGnnHxuGjmpwbl+9+DddH0qidFL8ynDovzRlNafukAqgej3f
	eYKr8K8vf3Qg5JV0x7uLUA6Jqsr3uqAw2KjztiWvU6WZcVYP7Q==
X-Google-Smtp-Source: AGHT+IHuVflIOSZT8IOiUUYiO45z72xEbslP1zUCYxjaqqJyyQs1FNP6zBCUhR1ilTDq3kZuVEUWM9sKfoj3R6pOWL0=
X-Received: by 2002:a05:6a00:4a0f:b0:6ce:f6a1:72aa with SMTP id
 do15-20020a056a004a0f00b006cef6a172aamr15233359pfb.4.1703090069778; Wed, 20
 Dec 2023 08:34:29 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <CAKm-UmbEBOm525=f+OOL0P05tQVVQz9wegh7F8yhgV_=Z7rWug@mail.gmail.com>
 <CAKm-UmYejm8CW-Enc_Y-aefcLPsRhQO8w2P-fNdu1zXMMjUAoA@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com> <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com> <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com>
In-Reply-To: <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Wed, 20 Dec 2023 17:34:18 +0100
Message-ID: <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary="000000000000a1626a060cf38e3a"

--000000000000a1626a060cf38e3a
Content-Type: multipart/alternative; boundary="000000000000a16268060cf38e38"

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

Le mer. 20 d=C3=A9c. 2023 =C3=A0 11:06, Jan Beulich <jbeulich@suse.com> a =
=C3=A9crit :

> On 20.12.2023 01:23, S=C3=A9bastien Chaumat wrote:
> > I had to triple check:
> >
> > The first call is from xen_register_pirq()  and seem to originate from
> > early_irq_init()  : triggering is 1
> > in this first call the HYPERVISOR_physdev_ops is called with triggering=
 1
> > shareable 0
> >
> > The second call is from xen_register_pirq() called from
> xen_register_gsi() :
> >   trigger=3D0 polarity 1 at the start of  xen_register_pirq()
> > but then trigger=3D1 polarity=3D1 just before the call to
> PHYSDEVOPS_setup_gsi
>
> I'm sorry, but this is getting extremely confusing. Can you please supply
> a complete kernel log, where also other potentially relevant messages
> would be present (like those issued when PHYSDEVOP_setup_gsi has failed,
> as ought to happen when invoked the 2nd time for the same GSI)? It's fine
> if you want to leave your extra printk()s in place for this, but please
> be sure (perhaps by way of also supplying the patch you use) to make clea=
r
> where exactly they live, so we can make sense of those extra log messages=
.
>
> Jan
>
>
Sorry for the confusion.
Here are the patches I made to xen and linux kernel
Plus dmesg (bare metal,xen) and "xl dmesg"

--000000000000a16268060cf38e38
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">Le=C2=A0mer. 20 d=C3=A9c. 2023 =C3=A0=
=C2=A011:06, Jan Beulich &lt;<a href=3D"mailto:jbeulich@suse.com">jbeulich@=
suse.com</a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,20=
4);padding-left:1ex">On 20.12.2023 01:23, S=C3=A9bastien Chaumat wrote:<br>
&gt; I had to triple check:<br>
&gt; <br>
&gt; The first call is from xen_register_pirq()=C2=A0 and seem to originate=
 from<br>
&gt; early_irq_init()=C2=A0 : triggering is 1<br>
&gt; in this first call the HYPERVISOR_physdev_ops is called with triggerin=
g 1<br>
&gt; shareable 0<br>
&gt; <br>
&gt; The second call is from xen_register_pirq() called from xen_register_g=
si() :<br>
&gt;=C2=A0 =C2=A0trigger=3D0 polarity 1 at the start of=C2=A0 xen_register_=
pirq()<br>
&gt; but then trigger=3D1 polarity=3D1 just before the call to PHYSDEVOPS_s=
etup_gsi<br>
<br>
I&#39;m sorry, but this is getting extremely confusing. Can you please supp=
ly<br>
a complete kernel log, where also other potentially relevant messages<br>
would be present (like those issued when PHYSDEVOP_setup_gsi has failed,<br=
>
as ought to happen when invoked the 2nd time for the same GSI)? It&#39;s fi=
ne<br>
if you want to leave your extra printk()s in place for this, but please<br>
be sure (perhaps by way of also supplying the patch you use) to make clear<=
br>
where exactly they live, so we can make sense of those extra log messages.<=
br>
<br>
Jan<br>
<br></blockquote><div>=C2=A0<div>Sorry for the confusion.</div><div>Here ar=
e the patches I made to xen and linux kernel</div><div>Plus dmesg (bare met=
al,xen) and &quot;xl dmesg&quot;<br></div><div>=C2=A0</div></div></div></di=
v>

--000000000000a16268060cf38e38--
--000000000000a1626a060cf38e3a
Content-Type: text/x-patch; charset="US-ASCII"; name="xen-debug_irq_setup.diff"
Content-Disposition: attachment; filename="xen-debug_irq_setup.diff"
Content-Transfer-Encoding: base64
Content-ID: <f_lqdzuh0i3>
X-Attachment-Id: f_lqdzuh0i3

ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMgYi94ZW4vYXJjaC94ODYvcGh5c2Rl
di5jCmluZGV4IDJmMWQ5NTVhOTYuLjRmMjY0ODk2ZDUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4
Ni9waHlzZGV2LmMKKysrIGIveGVuL2FyY2gveDg2L3BoeXNkZXYuYwpAQCAtNTcwLDYgKzU3MCw3
IEBAIHJldF90IGRvX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2
b2lkKSBhcmcpCiAKICAgICAgICAgcmV0ID0gbXBfcmVnaXN0ZXJfZ3NpKHNldHVwX2dzaS5nc2ks
IHNldHVwX2dzaS50cmlnZ2VyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
dXBfZ3NpLnBvbGFyaXR5KTsKKyAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiUEhZU0RFVk9QX3Nl
dHVwX2dzaTogc2V0dXBfZ3NpLmdzaTogJWQsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAldSxzZXR1
cF9nc2kucG9sYXJpdHk6ICV1XG4iLCBzZXR1cF9nc2kuZ3NpLCBzZXR1cF9nc2kudHJpZ2dlcmlu
Zywgc2V0dXBfZ3NpLnBvbGFyaXR5KTsKICAgICAgICAgYnJlYWs7IAogICAgIH0KICAgICBjYXNl
IFBIWVNERVZPUF9nZXRfZnJlZV9waXJxOiB7Cg==
--000000000000a1626a060cf38e3a
Content-Type: application/octet-stream; 
	name="dmesg-baremetal-6.6.7xen-irq-dbg-1+"
Content-Disposition: attachment; 
	filename="dmesg-baremetal-6.6.7xen-irq-dbg-1+"
Content-Transfer-Encoding: base64
Content-ID: <f_lqdzuh060>
X-Attachment-Id: f_lqdzuh060

WyAgICAwLjAwMDAwMF0gTGludXggdmVyc2lvbiA2LjYuN3hlbi1pcnEtZGJnLTErIChzY2hAZmVk
b3JhKSAoZ2NjIChHQ0MpIDEzLjIuMSAyMDIzMTIwNSAoUmVkIEhhdCAxMy4yLjEtNiksIEdOVSBs
ZCB2ZXJzaW9uIDIuNDAtMTMuZmMzOSkgIzYgU01QIFBSRUVNUFRfRFlOQU1JQyBXZWQgRGVjIDIw
IDE2OjEzOjI5IENFVCAyMDIzClsgICAgMC4wMDAwMDBdIENvbW1hbmQgbGluZTogQk9PVF9JTUFH
RT0vYm9vdC92bWxpbnV6LTYuNi43eGVuLWlycS1kYmctMSsgcm9vdD1VVUlEPTcxYjFkYzU5LWVh
MDAtNDg0Yy1iNWU0LWVlNzdlZGU3NzFkYiBybyAiZHluZGJnPWZpbGUgZHJpdmVycy9ncGlvLyog
K3A7IGZpbGUgZHJpdmVycy9waW5jdHJsLyogK3A7IGZpbGUgYXJjaC94ODYvcGNpL3hlbi5jICtw
IgpbICAgIDAuMDAwMDAwXSBCSU9TLXByb3ZpZGVkIHBoeXNpY2FsIFJBTSBtYXA6ClsgICAgMC4w
MDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMDAwMDAwMDAtMHgwMDAwMDAwMDAwMDll
ZmZmXSB1c2FibGUKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDA5
ZjAwMC0weDAwMDAwMDAwMDAwYmZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgy
MDogW21lbSAweDAwMDAwMDAwMDAxMDAwMDAtMHgwMDAwMDAwMDA5YWZmZmZmXSB1c2FibGUKWyAg
ICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwOWIwMDAwMC0weDAwMDAwMDAw
MDlkZmZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAw
MDAwMDllMDAwMDAtMHgwMDAwMDAwMDA5ZWZmZmZmXSB1c2FibGUKWyAgICAwLjAwMDAwMF0gQklP
Uy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwOWYwMDAwMC0weDAwMDAwMDAwMDlmM2JmZmZdIEFDUEkg
TlZTClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMDlmM2MwMDAtMHgw
MDAwMDAwMDQyMzVmZmZmXSB1c2FibGUKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4
MDAwMDAwMDA0MjM2MDAwMC0weDAwMDAwMDAwNDQ1NWZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAw
MDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNDQ1NjAwMDAtMHgwMDAwMDAwMDQ0NTY4ZmZm
XSB1c2FibGUKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA0NDU2OTAw
MC0weDAwMDAwMDAwNDQ1NmNmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDog
W21lbSAweDAwMDAwMDAwNDQ1NmQwMDAtMHgwMDAwMDAwMDQ0NTZlZmZmXSB1c2FibGUKWyAgICAw
LjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA0NDU2ZjAwMC0weDAwMDAwMDAwNDQ1
NmZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAw
NDQ1NzAwMDAtMHgwMDAwMDAwMDUwNzdlZmZmXSB1c2FibGUKWyAgICAwLjAwMDAwMF0gQklPUy1l
ODIwOiBbbWVtIDB4MDAwMDAwMDA1MDc3ZjAwMC0weDAwMDAwMDAwNTJmN2VmZmZdIHJlc2VydmVk
ClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNTJmN2YwMDAtMHgwMDAw
MDAwMDVhZjdlZmZmXSBBQ1BJIE5WUwpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgw
MDAwMDAwMDVhZjdmMDAwLTB4MDAwMDAwMDA1YWZmZWZmZl0gQUNQSSBkYXRhClsgICAgMC4wMDAw
MDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwNWFmZmYwMDAtMHgwMDAwMDAwMDVhZmZmZmZm
XSB1c2FibGUKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA1YjAwMDAw
MC0weDAwMDAwMDAwNWJmZmZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDog
W21lbSAweDAwMDAwMDAwNWQ3OTAwMDAtMHgwMDAwMDAwMDVkN2VmZmZmXSByZXNlcnZlZApbICAg
IDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDVkN2Y1MDAwLTB4MDAwMDAwMDA1
ZmZmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAw
MDBjMDMwMDAwMC0weDAwMDAwMDAwYzAzZmZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJ
T1MtZTgyMDogW21lbSAweDAwMDAwMDAwZmVkODAwMDAtMHgwMDAwMDAwMGZlZDgwZmZmXSByZXNl
cnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGZmMDAwMDAwLTB4
MDAwMDAwMDBmZmZmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVt
IDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDEwN2UyZmZmZmZdIHVzYWJsZQpbICAgIDAuMDAw
MDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAxMDgwMDAwMDAwLTB4MDAwMDAwMTBjMDFmZmZm
Zl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gTlggKEV4ZWN1dGUgRGlzYWJsZSkgcHJvdGVjdGlv
bjogYWN0aXZlClsgICAgMC4wMDAwMDBdIEFQSUM6IFN0YXRpYyBjYWxscyBpbml0aWFsaXplZApb
ICAgIDAuMDAwMDAwXSBlODIwOiB1cGRhdGUgW21lbSAweDQ0NTc1MDE4LTB4NDQ1NzkyNTddIHVz
YWJsZSA9PT4gdXNhYmxlClsgICAgMC4wMDAwMDBdIGU4MjA6IHVwZGF0ZSBbbWVtIDB4NDQ1NzUw
MTgtMHg0NDU3OTI1N10gdXNhYmxlID09PiB1c2FibGUKWyAgICAwLjAwMDAwMF0gZXh0ZW5kZWQg
cGh5c2ljYWwgUkFNIG1hcDoKWyAgICAwLjAwMDAwMF0gcmVzZXJ2ZSBzZXR1cF9kYXRhOiBbbWVt
IDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDAwMDAwOWVmZmZdIHVzYWJsZQpbICAgIDAuMDAw
MDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgwMDAwMDAwMDAwMDlmMDAwLTB4MDAwMDAw
MDAwMDBiZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gcmVzZXJ2ZSBzZXR1cF9kYXRhOiBb
bWVtIDB4MDAwMDAwMDAwMDEwMDAwMC0weDAwMDAwMDAwMDlhZmZmZmZdIHVzYWJsZQpbICAgIDAu
MDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgwMDAwMDAwMDA5YjAwMDAwLTB4MDAw
MDAwMDAwOWRmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gcmVzZXJ2ZSBzZXR1cF9kYXRh
OiBbbWVtIDB4MDAwMDAwMDAwOWUwMDAwMC0weDAwMDAwMDAwMDllZmZmZmZdIHVzYWJsZQpbICAg
IDAuMDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgwMDAwMDAwMDA5ZjAwMDAwLTB4
MDAwMDAwMDAwOWYzYmZmZl0gQUNQSSBOVlMKWyAgICAwLjAwMDAwMF0gcmVzZXJ2ZSBzZXR1cF9k
YXRhOiBbbWVtIDB4MDAwMDAwMDAwOWYzYzAwMC0weDAwMDAwMDAwNDIzNWZmZmZdIHVzYWJsZQpb
ICAgIDAuMDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgwMDAwMDAwMDQyMzYwMDAw
LTB4MDAwMDAwMDA0NDU1ZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gcmVzZXJ2ZSBzZXR1
cF9kYXRhOiBbbWVtIDB4MDAwMDAwMDA0NDU2MDAwMC0weDAwMDAwMDAwNDQ1NjhmZmZdIHVzYWJs
ZQpbICAgIDAuMDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgwMDAwMDAwMDQ0NTY5
MDAwLTB4MDAwMDAwMDA0NDU2Y2ZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gcmVzZXJ2ZSBz
ZXR1cF9kYXRhOiBbbWVtIDB4MDAwMDAwMDA0NDU2ZDAwMC0weDAwMDAwMDAwNDQ1NmVmZmZdIHVz
YWJsZQpbICAgIDAuMDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgwMDAwMDAwMDQ0
NTZmMDAwLTB4MDAwMDAwMDA0NDU2ZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gcmVzZXJ2
ZSBzZXR1cF9kYXRhOiBbbWVtIDB4MDAwMDAwMDA0NDU3MDAwMC0weDAwMDAwMDAwNDQ1NzUwMTdd
IHVzYWJsZQpbICAgIDAuMDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgwMDAwMDAw
MDQ0NTc1MDE4LTB4MDAwMDAwMDA0NDU3OTI1N10gdXNhYmxlClsgICAgMC4wMDAwMDBdIHJlc2Vy
dmUgc2V0dXBfZGF0YTogW21lbSAweDAwMDAwMDAwNDQ1NzkyNTgtMHgwMDAwMDAwMDUwNzdlZmZm
XSB1c2FibGUKWyAgICAwLjAwMDAwMF0gcmVzZXJ2ZSBzZXR1cF9kYXRhOiBbbWVtIDB4MDAwMDAw
MDA1MDc3ZjAwMC0weDAwMDAwMDAwNTJmN2VmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIHJl
c2VydmUgc2V0dXBfZGF0YTogW21lbSAweDAwMDAwMDAwNTJmN2YwMDAtMHgwMDAwMDAwMDVhZjdl
ZmZmXSBBQ1BJIE5WUwpbICAgIDAuMDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgw
MDAwMDAwMDVhZjdmMDAwLTB4MDAwMDAwMDA1YWZmZWZmZl0gQUNQSSBkYXRhClsgICAgMC4wMDAw
MDBdIHJlc2VydmUgc2V0dXBfZGF0YTogW21lbSAweDAwMDAwMDAwNWFmZmYwMDAtMHgwMDAwMDAw
MDVhZmZmZmZmXSB1c2FibGUKWyAgICAwLjAwMDAwMF0gcmVzZXJ2ZSBzZXR1cF9kYXRhOiBbbWVt
IDB4MDAwMDAwMDA1YjAwMDAwMC0weDAwMDAwMDAwNWJmZmZmZmZdIHJlc2VydmVkClsgICAgMC4w
MDAwMDBdIHJlc2VydmUgc2V0dXBfZGF0YTogW21lbSAweDAwMDAwMDAwNWQ3OTAwMDAtMHgwMDAw
MDAwMDVkN2VmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6
IFttZW0gMHgwMDAwMDAwMDVkN2Y1MDAwLTB4MDAwMDAwMDA1ZmZmZmZmZl0gcmVzZXJ2ZWQKWyAg
ICAwLjAwMDAwMF0gcmVzZXJ2ZSBzZXR1cF9kYXRhOiBbbWVtIDB4MDAwMDAwMDBjMDMwMDAwMC0w
eDAwMDAwMDAwYzAzZmZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIHJlc2VydmUgc2V0dXBf
ZGF0YTogW21lbSAweDAwMDAwMDAwZmVkODAwMDAtMHgwMDAwMDAwMGZlZDgwZmZmXSByZXNlcnZl
ZApbICAgIDAuMDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgwMDAwMDAwMGZmMDAw
MDAwLTB4MDAwMDAwMDBmZmZmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gcmVzZXJ2ZSBz
ZXR1cF9kYXRhOiBbbWVtIDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDEwN2UyZmZmZmZdIHVz
YWJsZQpbICAgIDAuMDAwMDAwXSByZXNlcnZlIHNldHVwX2RhdGE6IFttZW0gMHgwMDAwMDAxMDgw
MDAwMDAwLTB4MDAwMDAwMTBjMDFmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gZWZpOiBF
RkkgdjIuOCBieSBJTlNZREUgQ29ycC4KWyAgICAwLjAwMDAwMF0gZWZpOiBBQ1BJPTB4NWFmZmUw
MDAgQUNQSSAyLjA9MHg1YWZmZTAxNCBTTUJJT1M9MHg1MTY3NzAwMCBTTUJJT1MgMy4wPTB4NTE2
NzQwMDAgTUVNQVRUUj0weDRiN2ZlMDE4IEVTUlQ9MHg0ZDE2Yzg5OCBNT0t2YXI9MHg1MTg3YzAw
MCBSTkc9MHg1YWY5ZDAxOCAKWyAgICAwLjAwMDAwMF0gcmFuZG9tOiBjcm5nIGluaXQgZG9uZQpb
ICAgIDAuMDAwMDAwXSBlZmk6IFJlbW92ZSBtZW02MDogTU1JTyByYW5nZT1bMHhjMDMwMDAwMC0w
eGMwM2ZmZmZmXSAoMU1CKSBmcm9tIGU4MjAgbWFwClsgICAgMC4wMDAwMDBdIGU4MjA6IHJlbW92
ZSBbbWVtIDB4YzAzMDAwMDAtMHhjMDNmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gZWZp
OiBOb3QgcmVtb3ZpbmcgbWVtNjE6IE1NSU8gcmFuZ2U9WzB4ZmVkODAwMDAtMHhmZWQ4MGZmZl0g
KDRLQikgZnJvbSBlODIwIG1hcApbICAgIDAuMDAwMDAwXSBlZmk6IFJlbW92ZSBtZW02MjogTU1J
TyByYW5nZT1bMHhmZjAwMDAwMC0weGZmZmZmZmZmXSAoMTZNQikgZnJvbSBlODIwIG1hcApbICAg
IDAuMDAwMDAwXSBlODIwOiByZW1vdmUgW21lbSAweGZmMDAwMDAwLTB4ZmZmZmZmZmZdIHJlc2Vy
dmVkClsgICAgMC4wMDAwMDBdIGVmaTogUmVtb3ZlIG1lbTY0OiBNTUlPIHJhbmdlPVsweDEwYTAw
MDAwMDAtMHgxMGMwMWZmZmZmXSAoNTE0TUIpIGZyb20gZTgyMCBtYXAKWyAgICAwLjAwMDAwMF0g
ZTgyMDogcmVtb3ZlIFttZW0gMHgxMGEwMDAwMDAwLTB4MTBjMDFmZmZmZl0gcmVzZXJ2ZWQKWyAg
ICAwLjAwMDAwMF0gU01CSU9TIDMuNS4wIHByZXNlbnQuClsgICAgMC4wMDAwMDBdIERNSTogRnJh
bWV3b3JrIExhcHRvcCAxMyAoQU1EIFJ5emVuIDcwNDBTZXJpZXMpL0ZSQU5NRENQMDcsIEJJT1Mg
MDMuMDMgMTAvMTcvMjAyMwpbICAgIDAuMDAwMDAwXSB0c2M6IEZhc3QgVFNDIGNhbGlicmF0aW9u
IHVzaW5nIFBJVApbICAgIDAuMDAwMDAwXSB0c2M6IERldGVjdGVkIDMyOTMuNzMxIE1IeiBwcm9j
ZXNzb3IKWyAgICAwLjAwMDEyM10gZTgyMDogdXBkYXRlIFttZW0gMHgwMDAwMDAwMC0weDAwMDAw
ZmZmXSB1c2FibGUgPT0+IHJlc2VydmVkClsgICAgMC4wMDAxMjVdIGU4MjA6IHJlbW92ZSBbbWVt
IDB4MDAwYTAwMDAtMHgwMDBmZmZmZl0gdXNhYmxlClsgICAgMC4wMDAxMzBdIGxhc3RfcGZuID0g
MHgxMDdlMzAwIG1heF9hcmNoX3BmbiA9IDB4NDAwMDAwMDAwClsgICAgMC4wMDAxMzVdIE1UUlIg
bWFwOiA3IGVudHJpZXMgKDMgZml4ZWQgKyA0IHZhcmlhYmxlOyBtYXggMjApLCBidWlsdCBmcm9t
IDkgdmFyaWFibGUgTVRSUnMKWyAgICAwLjAwMDEzNl0geDg2L1BBVDogQ29uZmlndXJhdGlvbiBb
MC03XTogV0IgIFdDICBVQy0gVUMgIFdCICBXUCAgVUMtIFdUICAKWyAgICAwLjAwMDUyM10gbGFz
dF9wZm4gPSAweDViMDAwIG1heF9hcmNoX3BmbiA9IDB4NDAwMDAwMDAwClsgICAgMC4wMDMwNjFd
IGVzcnQ6IFJlc2VydmluZyBFU1JUIHNwYWNlIGZyb20gMHgwMDAwMDAwMDRkMTZjODk4IHRvIDB4
MDAwMDAwMDA0ZDE2YzhkMC4KWyAgICAwLjAwMzA2Nl0gZTgyMDogdXBkYXRlIFttZW0gMHg0ZDE2
YzAwMC0weDRkMTZjZmZmXSB1c2FibGUgPT0+IHJlc2VydmVkClsgICAgMC4wMDMwODFdIFVzaW5n
IEdCIHBhZ2VzIGZvciBkaXJlY3QgbWFwcGluZwpbICAgIDAuMDAzNjUxXSBTZWN1cmUgYm9vdCBk
aXNhYmxlZApbICAgIDAuMDAzNjUxXSBSQU1ESVNLOiBbbWVtIDB4MjQ2OGEwMDAtMHgzMjE3ZWZm
Zl0KWyAgICAwLjAwMzY1NV0gQUNQSTogRWFybHkgdGFibGUgY2hlY2tzdW0gdmVyaWZpY2F0aW9u
IGRpc2FibGVkClsgICAgMC4wMDM2NTddIEFDUEk6IFJTRFAgMHgwMDAwMDAwMDVBRkZFMDE0IDAw
MDAyNCAodjAyIElOU1lERSkKWyAgICAwLjAwMzY2MF0gQUNQSTogWFNEVCAweDAwMDAwMDAwNUFG
OUUyMjggMDAwMTZDICh2MDEgSU5TWURFIEVESzIgICAgIDAwMDAwMDAyICAgICAgMDEwMDAwMTMp
ClsgICAgMC4wMDM2NjRdIEFDUEk6IEZBQ1AgMHgwMDAwMDAwMDVBRkVGMDAwIDAwMDEwQyAodjA1
IElOU1lERSBFREsyICAgICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDAzNjY2XSBB
Q1BJIEJJT1MgV2FybmluZyAoYnVnKTogT3B0aW9uYWwgRkFEVCBmaWVsZCBQbTJDb250cm9sQmxv
Y2sgaGFzIHZhbGlkIExlbmd0aCBidXQgemVybyBBZGRyZXNzOiAweDAwMDAwMDAwMDAwMDAwMDAv
MHgxICgyMDIzMDYyOC90YmZhZHQtNjE1KQpbICAgIDAuMDAzNjY5XSBBQ1BJOiBEU0RUIDB4MDAw
MDAwMDA1QUZERjAwMCAwMDkzQTYgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDIgQUNQSSAw
MDA0MDAwMCkKWyAgICAwLjAwMzY3MV0gQUNQSTogRkFDUyAweDAwMDAwMDAwNUFFQjcwMDAgMDAw
MDQwClsgICAgMC4wMDM2NzJdIEFDUEk6IFVFRkkgMHgwMDAwMDAwMDVBRjY3MDAwIDAwMDFDRiAo
djAxIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDAzNjc0
XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZGNDAwMCAwMDg0MTYgKHYwMiBJTlNZREUgRURLMiAg
ICAgMDAwMDAwMDIgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjAwMzY3NV0gQUNQSTogU1NEVCAweDAw
MDAwMDAwNUFGRjIwMDAgMDAwQUJEICh2MDIgSU5TWURFIEVESzIgICAgIDAwMDAxMDAwIEFDUEkg
MDAwNDAwMDApClsgICAgMC4wMDM2NzZdIEFDUEk6IEFTRiEgMHgwMDAwMDAwMDVBRkYxMDAwIDAw
MDBBNSAodjMyIElOU1lERSBFREsyICAgICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDAu
MDAzNjc4XSBBQ1BJOiBCT09UIDB4MDAwMDAwMDA1QUZGMDAwMCAwMDAwMjggKHYwMSBJTlNZREUg
RURLMiAgICAgMDAwMDAwMDIgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjAwMzY3OV0gQUNQSTogSFBF
VCAweDAwMDAwMDAwNUFGRUUwMDAgMDAwMDM4ICh2MDEgSU5TWURFIEVESzIgICAgIDAwMDAwMDAy
IEFDUEkgMDAwNDAwMDApClsgICAgMC4wMDM2ODFdIEFDUEk6IEFQSUMgMHgwMDAwMDAwMDVBRkVE
MDAwIDAwMDEzOCAodjAzIElOU1lERSBFREsyICAgICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpb
ICAgIDAuMDAzNjgyXSBBQ1BJOiBNQ0ZHIDB4MDAwMDAwMDA1QUZFQzAwMCAwMDAwM0MgKHYwMSBJ
TlNZREUgRURLMiAgICAgMDAwMDAwMDIgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjAwMzY4M10gQUNQ
STogU0xJQyAweDAwMDAwMDAwNUFGRUIwMDAgMDAwMTc2ICh2MDEgSU5TWURFIEVESzIgICAgIDAw
MDAwMDAyIEFDUEkgMDAwNDAwMDApClsgICAgMC4wMDM2ODRdIEFDUEk6IFZGQ1QgMHgwMDAwMDAw
MDVBRkRBMDAwIDAwNDI4NCAodjAxIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQw
MDAwKQpbICAgIDAuMDAzNjg2XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZEOTAwMCAwMDAwRjgg
KHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDEwMDAgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjAwMzY4
N10gQUNQSTogU1NEVCAweDAwMDAwMDAwNUFGRDMwMDAgMDA1NDdFICh2MDIgSU5TWURFIEVESzIg
ICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4wMDM2ODhdIEFDUEk6IENSQVQgMHgw
MDAwMDAwMDVBRkQyMDAwIDAwMEYxMCAodjAxIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJ
IDAwMDQwMDAwKQpbICAgIDAuMDAzNjkwXSBBQ1BJOiBDRElUIDB4MDAwMDAwMDA1QUZEMTAwMCAw
MDAwMjkgKHYwMSBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAw
LjAwMzY5MV0gQUNQSTogU1NEVCAweDAwMDAwMDAwNUFGRDAwMDAgMDAwRjhEICh2MDIgSU5TWURF
IEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4wMDM2OTJdIEFDUEk6IFNT
RFQgMHgwMDAwMDAwMDVBRkNGMDAwIDAwMEVDMSAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAw
MSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDAzNjk0XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZD
RTAwMCAwMDA5MzEgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkK
WyAgICAwLjAwMzY5NV0gQUNQSTogU1NEVCAweDAwMDAwMDAwNUFGQ0IwMDAgMDAxM0VDICh2MDIg
SU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4wMDM2OTZdIEFD
UEk6IFNTRFQgMHgwMDAwMDAwMDVBRkZEMDAwIDAwMDc3QSAodjAyIElOU1lERSBFREsyICAgICAw
MDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDAzNjk4XSBBQ1BJOiBTU0RUIDB4MDAwMDAw
MDA1QUZDQTAwMCAwMDA3MzcgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0
MDAwMCkKWyAgICAwLjAwMzY5OV0gQUNQSTogU1NEVCAweDAwMDAwMDAwNUFGQzgwMDAgMDAxNUM4
ICh2MDIgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4wMDM3
MDBdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVBRkM1MDAwIDAwMkE4RiAodjAyIElOU1lERSBFREsy
ICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDAzNzAxXSBBQ1BJOiBTU0RUIDB4
MDAwMDAwMDA1QUZCQjAwMCAwMDk4MjEgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQ
SSAwMDA0MDAwMCkKWyAgICAwLjAwMzcwM10gQUNQSTogRlBEVCAweDAwMDAwMDAwNUFGQkEwMDAg
MDAwMDQ0ICh2MDEgSU5TWURFIEVESzIgICAgIDAwMDAwMDAyIEFDUEkgMDAwNDAwMDApClsgICAg
MC4wMDM3MDRdIEFDUEk6IEJHUlQgMHgwMDAwMDAwMDVBRkI5MDAwIDAwMDAzOCAodjAxIElOU1lE
RSBFREsyICAgICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDAzNzA1XSBBQ1BJOiBX
U01UIDB4MDAwMDAwMDA1QUZCODAwMCAwMDAwMjggKHYwMSBJTlNZREUgRURLMiAgICAgMDAwMDAw
MDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjAwMzcwN10gQUNQSTogTUhTUCAweDAwMDAwMDAwNUFG
RUEwMDAgMDAwMEM4ICh2MDQgSU5TWURFIEVESzIgICAgIDIwNTA1MzQ4IEFDUEkgMDAwNDAwMDAp
ClsgICAgMC4wMDM3MDhdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVBRkU5MDAwIDAwMDBFNSAodjAy
IElOU1lERSBFREsyICAgICAwMDAwMDAwNCBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDAzNzA5XSBB
Q1BJOiBJVlJTIDB4MDAwMDAwMDA1QUZCNzAwMCAwMDAxQTQgKHYwMiBJTlNZREUgRURLMiAgICAg
MDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjAwMzcxMV0gQUNQSTogU1NEVCAweDAwMDAw
MDAwNUFGQjYwMDAgMDAwNzQ3ICh2MDIgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAw
NDAwMDApClsgICAgMC4wMDM3MTJdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVBRkI1MDAwIDAwMEM4
OCAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDAz
NzEzXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZCNDAwMCAwMDAwNTcgKHYwMiBJTlNZREUgRURL
MiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjAwMzcxNV0gQUNQSTogU1NEVCAw
eDAwMDAwMDAwNUFGQjIwMDAgMDAxNzBCICh2MDIgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFD
UEkgMDAwNDAwMDApClsgICAgMC4wMDM3MTZdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVBRkIxMDAw
IDAwMEZGNyAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAg
IDAuMDAzNzE3XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZBNzAwMCAwMDk3RTMgKHYwMiBJTlNZ
REUgRURLMiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjAwMzcxOF0gQUNQSTog
U1NEVCAweDAwMDAwMDAwNUFGQTIwMDAgMDA0RkVCICh2MDIgSU5TWURFIEVESzIgICAgIDAwMDAw
MDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4wMDM3MjBdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVB
RkExMDAwIDAwMEM3RiAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAw
KQpbICAgIDAuMDAzNzIxXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZBMDAwMCAwMDA5NTYgKHYw
MiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjAwMzcyMl0g
QUNQSTogU1NEVCAweDAwMDAwMDAwNUFGOUYwMDAgMDAwMDhEICh2MDIgSU5TWURFIEVESzIgICAg
IDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4wMDM3MjRdIEFDUEk6IFNTRFQgMHgwMDAw
MDAwMDVBRkNEMDAwIDAwMEVBRCAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAw
MDQwMDAwKQpbICAgIDAuMDAzNzI1XSBBQ1BJOiBSZXNlcnZpbmcgRkFDUCB0YWJsZSBtZW1vcnkg
YXQgW21lbSAweDVhZmVmMDAwLTB4NWFmZWYxMGJdClsgICAgMC4wMDM3MjVdIEFDUEk6IFJlc2Vy
dmluZyBEU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmZGYwMDAtMHg1YWZlODNhNV0KWyAg
ICAwLjAwMzcyNl0gQUNQSTogUmVzZXJ2aW5nIEZBQ1MgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1
YWViNzAwMC0weDVhZWI3MDNmXQpbICAgIDAuMDAzNzI2XSBBQ1BJOiBSZXNlcnZpbmcgVUVGSSB0
YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZjY3MDAwLTB4NWFmNjcxY2VdClsgICAgMC4wMDM3Mjdd
IEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmZjQwMDAtMHg1
YWZmYzQxNV0KWyAgICAwLjAwMzcyN10gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5
IGF0IFttZW0gMHg1YWZmMjAwMC0weDVhZmYyYWJjXQpbICAgIDAuMDAzNzI3XSBBQ1BJOiBSZXNl
cnZpbmcgQVNGISB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmYxMDAwLTB4NWFmZjEwYTRdClsg
ICAgMC4wMDM3MjhdIEFDUEk6IFJlc2VydmluZyBCT09UIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4
NWFmZjAwMDAtMHg1YWZmMDAyN10KWyAgICAwLjAwMzcyOF0gQUNQSTogUmVzZXJ2aW5nIEhQRVQg
dGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZlZTAwMC0weDVhZmVlMDM3XQpbICAgIDAuMDAzNzI5
XSBBQ1BJOiBSZXNlcnZpbmcgQVBJQyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmVkMDAwLTB4
NWFmZWQxMzddClsgICAgMC4wMDM3MjldIEFDUEk6IFJlc2VydmluZyBNQ0ZHIHRhYmxlIG1lbW9y
eSBhdCBbbWVtIDB4NWFmZWMwMDAtMHg1YWZlYzAzYl0KWyAgICAwLjAwMzcyOV0gQUNQSTogUmVz
ZXJ2aW5nIFNMSUMgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZlYjAwMC0weDVhZmViMTc1XQpb
ICAgIDAuMDAzNzMwXSBBQ1BJOiBSZXNlcnZpbmcgVkZDVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAw
eDVhZmRhMDAwLTB4NWFmZGUyODNdClsgICAgMC4wMDM3MzBdIEFDUEk6IFJlc2VydmluZyBTU0RU
IHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmZDkwMDAtMHg1YWZkOTBmN10KWyAgICAwLjAwMzcz
MF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZkMzAwMC0w
eDVhZmQ4NDdkXQpbICAgIDAuMDAzNzMxXSBBQ1BJOiBSZXNlcnZpbmcgQ1JBVCB0YWJsZSBtZW1v
cnkgYXQgW21lbSAweDVhZmQyMDAwLTB4NWFmZDJmMGZdClsgICAgMC4wMDM3MzFdIEFDUEk6IFJl
c2VydmluZyBDRElUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmZDEwMDAtMHg1YWZkMTAyOF0K
WyAgICAwLjAwMzczMV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0g
MHg1YWZkMDAwMC0weDVhZmQwZjhjXQpbICAgIDAuMDAzNzMyXSBBQ1BJOiBSZXNlcnZpbmcgU1NE
VCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmNmMDAwLTB4NWFmY2ZlYzBdClsgICAgMC4wMDM3
MzJdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmY2UwMDAt
MHg1YWZjZTkzMF0KWyAgICAwLjAwMzczM10gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVt
b3J5IGF0IFttZW0gMHg1YWZjYjAwMC0weDVhZmNjM2ViXQpbICAgIDAuMDAzNzMzXSBBQ1BJOiBS
ZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmZkMDAwLTB4NWFmZmQ3Nzld
ClsgICAgMC4wMDM3MzNdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVt
IDB4NWFmY2EwMDAtMHg1YWZjYTczNl0KWyAgICAwLjAwMzczNF0gQUNQSTogUmVzZXJ2aW5nIFNT
RFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZjODAwMC0weDVhZmM5NWM3XQpbICAgIDAuMDAz
NzM0XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmM1MDAw
LTB4NWFmYzdhOGVdClsgICAgMC4wMDM3MzRdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1l
bW9yeSBhdCBbbWVtIDB4NWFmYmIwMDAtMHg1YWZjNDgyMF0KWyAgICAwLjAwMzczNV0gQUNQSTog
UmVzZXJ2aW5nIEZQRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZiYTAwMC0weDVhZmJhMDQz
XQpbICAgIDAuMDAzNzM1XSBBQ1BJOiBSZXNlcnZpbmcgQkdSVCB0YWJsZSBtZW1vcnkgYXQgW21l
bSAweDVhZmI5MDAwLTB4NWFmYjkwMzddClsgICAgMC4wMDM3MzZdIEFDUEk6IFJlc2VydmluZyBX
U01UIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmYjgwMDAtMHg1YWZiODAyN10KWyAgICAwLjAw
MzczNl0gQUNQSTogUmVzZXJ2aW5nIE1IU1AgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZlYTAw
MC0weDVhZmVhMGM3XQpbICAgIDAuMDAzNzM2XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBt
ZW1vcnkgYXQgW21lbSAweDVhZmU5MDAwLTB4NWFmZTkwZTRdClsgICAgMC4wMDM3MzddIEFDUEk6
IFJlc2VydmluZyBJVlJTIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmYjcwMDAtMHg1YWZiNzFh
M10KWyAgICAwLjAwMzczN10gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFtt
ZW0gMHg1YWZiNjAwMC0weDVhZmI2NzQ2XQpbICAgIDAuMDAzNzM4XSBBQ1BJOiBSZXNlcnZpbmcg
U1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmI1MDAwLTB4NWFmYjVjODddClsgICAgMC4w
MDM3MzhdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmYjQw
MDAtMHg1YWZiNDA1Nl0KWyAgICAwLjAwMzczOF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUg
bWVtb3J5IGF0IFttZW0gMHg1YWZiMjAwMC0weDVhZmIzNzBhXQpbICAgIDAuMDAzNzM5XSBBQ1BJ
OiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmIxMDAwLTB4NWFmYjFm
ZjZdClsgICAgMC4wMDM3MzldIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBb
bWVtIDB4NWFmYTcwMDAtMHg1YWZiMDdlMl0KWyAgICAwLjAwMzczOV0gQUNQSTogUmVzZXJ2aW5n
IFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZhMjAwMC0weDVhZmE2ZmVhXQpbICAgIDAu
MDAzNzQwXSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmEx
MDAwLTB4NWFmYTFjN2VdClsgICAgMC4wMDM3NDBdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxl
IG1lbW9yeSBhdCBbbWVtIDB4NWFmYTAwMDAtMHg1YWZhMDk1NV0KWyAgICAwLjAwMzc0MV0gQUNQ
STogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWY5ZjAwMC0weDVhZjlm
MDhjXQpbICAgIDAuMDAzNzQxXSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQg
W21lbSAweDVhZmNkMDAwLTB4NWFmY2RlYWNdClsgICAgMC4wMDM3OTVdIFpvbmUgcmFuZ2VzOgpb
ICAgIDAuMDAzNzk2XSAgIERNQSAgICAgIFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAw
MDAwMGZmZmZmZl0KWyAgICAwLjAwMzc5N10gICBETUEzMiAgICBbbWVtIDB4MDAwMDAwMDAwMTAw
MDAwMC0weDAwMDAwMDAwZmZmZmZmZmZdClsgICAgMC4wMDM3OThdICAgTm9ybWFsICAgW21lbSAw
eDAwMDAwMDAxMDAwMDAwMDAtMHgwMDAwMDAxMDdlMmZmZmZmXQpbICAgIDAuMDAzNzk5XSAgIERl
dmljZSAgIGVtcHR5ClsgICAgMC4wMDM3OTldIE1vdmFibGUgem9uZSBzdGFydCBmb3IgZWFjaCBu
b2RlClsgICAgMC4wMDM4MDBdIEVhcmx5IG1lbW9yeSBub2RlIHJhbmdlcwpbICAgIDAuMDAzODAw
XSAgIG5vZGUgICAwOiBbbWVtIDB4MDAwMDAwMDAwMDAwMTAwMC0weDAwMDAwMDAwMDAwOWVmZmZd
ClsgICAgMC4wMDM4MDFdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDAwMTAwMDAwLTB4MDAw
MDAwMDAwOWFmZmZmZl0KWyAgICAwLjAwMzgwMV0gICBub2RlICAgMDogW21lbSAweDAwMDAwMDAw
MDllMDAwMDAtMHgwMDAwMDAwMDA5ZWZmZmZmXQpbICAgIDAuMDAzODAyXSAgIG5vZGUgICAwOiBb
bWVtIDB4MDAwMDAwMDAwOWYzYzAwMC0weDAwMDAwMDAwNDIzNWZmZmZdClsgICAgMC4wMDM4MDJd
ICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDQ0NTYwMDAwLTB4MDAwMDAwMDA0NDU2OGZmZl0K
WyAgICAwLjAwMzgwM10gICBub2RlICAgMDogW21lbSAweDAwMDAwMDAwNDQ1NmQwMDAtMHgwMDAw
MDAwMDQ0NTZlZmZmXQpbICAgIDAuMDAzODAzXSAgIG5vZGUgICAwOiBbbWVtIDB4MDAwMDAwMDA0
NDU3MDAwMC0weDAwMDAwMDAwNTA3N2VmZmZdClsgICAgMC4wMDM4MDNdICAgbm9kZSAgIDA6IFtt
ZW0gMHgwMDAwMDAwMDVhZmZmMDAwLTB4MDAwMDAwMDA1YWZmZmZmZl0KWyAgICAwLjAwMzgwNF0g
ICBub2RlICAgMDogW21lbSAweDAwMDAwMDAxMDAwMDAwMDAtMHgwMDAwMDAxMDdlMmZmZmZmXQpb
ICAgIDAuMDAzODA3XSBJbml0bWVtIHNldHVwIG5vZGUgMCBbbWVtIDB4MDAwMDAwMDAwMDAwMTAw
MC0weDAwMDAwMDEwN2UyZmZmZmZdClsgICAgMC4wMDM4MTFdIE9uIG5vZGUgMCwgem9uZSBETUE6
IDEgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzClsgICAgMC4wMDM4MTldIE9uIG5vZGUgMCwg
em9uZSBETUE6IDk3IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMDAzODg0XSBP
biBub2RlIDAsIHpvbmUgRE1BMzI6IDc2OCBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMKWyAg
ICAwLjAwNDI1M10gT24gbm9kZSAwLCB6b25lIERNQTMyOiA2MCBwYWdlcyBpbiB1bmF2YWlsYWJs
ZSByYW5nZXMKWyAgICAwLjAwNDI3N10gT24gbm9kZSAwLCB6b25lIERNQTMyOiA4NzA0IHBhZ2Vz
IGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMDA0Mjc3XSBPbiBub2RlIDAsIHpvbmUgRE1B
MzI6IDQgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzClsgICAgMC4wMDQ0MjBdIE9uIG5vZGUg
MCwgem9uZSBETUEzMjogMSBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMKWyAgICAwLjAwNDU1
Ml0gT24gbm9kZSAwLCB6b25lIERNQTMyOiA0MzEzNiBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5n
ZXMKWyAgICAwLjA0MjIxMV0gT24gbm9kZSAwLCB6b25lIE5vcm1hbDogMjA0ODAgcGFnZXMgaW4g
dW5hdmFpbGFibGUgcmFuZ2VzClsgICAgMC4wNDIyMzNdIE9uIG5vZGUgMCwgem9uZSBOb3JtYWw6
IDc0MjQgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzClsgICAgMC4wNDI1MTZdIEFDUEk6IFBN
LVRpbWVyIElPIFBvcnQ6IDB4NDA4ClsgICAgMC4wNDI1MjJdIEFDUEk6IExBUElDX05NSSAoYWNw
aV9pZFsweDAwXSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDAuMDQyNTIzXSBBQ1BJOiBMQVBJ
Q19OTUkgKGFjcGlfaWRbMHgwMV0gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAwLjA0MjUyM10g
QUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4MDJdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAg
MC4wNDI1MjNdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDAzXSBoaWdoIGVkZ2UgbGludFsw
eDFdKQpbICAgIDAuMDQyNTI0XSBBQ1BJOiBMQVBJQ19OTUkgKGFjcGlfaWRbMHgwNF0gaGlnaCBl
ZGdlIGxpbnRbMHgxXSkKWyAgICAwLjA0MjUyNF0gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4
MDVdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAgMC4wNDI1MjVdIEFDUEk6IExBUElDX05NSSAo
YWNwaV9pZFsweDA2XSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDAuMDQyNTI1XSBBQ1BJOiBM
QVBJQ19OTUkgKGFjcGlfaWRbMHgwN10gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAwLjA0MjUy
NV0gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4MDhdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsg
ICAgMC4wNDI1MjZdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDA5XSBoaWdoIGVkZ2UgbGlu
dFsweDFdKQpbICAgIDAuMDQyNTI2XSBBQ1BJOiBMQVBJQ19OTUkgKGFjcGlfaWRbMHgwYV0gaGln
aCBlZGdlIGxpbnRbMHgxXSkKWyAgICAwLjA0MjUyNl0gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lk
WzB4MGJdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAgMC4wNDI1MjddIEFDUEk6IExBUElDX05N
SSAoYWNwaV9pZFsweDBjXSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDAuMDQyNTI3XSBBQ1BJ
OiBMQVBJQ19OTUkgKGFjcGlfaWRbMHgwZF0gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAwLjA0
MjUyN10gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4MGVdIGhpZ2ggZWRnZSBsaW50WzB4MV0p
ClsgICAgMC4wNDI1MjhdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDBmXSBoaWdoIGVkZ2Ug
bGludFsweDFdKQpbICAgIDAuMDQyNTQxXSBJT0FQSUNbMF06IGFwaWNfaWQgMzMsIHZlcnNpb24g
MzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMKWyAgICAwLjA0MjU0NV0gSU9BUElDWzFd
OiBhcGljX2lkIDM0LCB2ZXJzaW9uIDMzLCBhZGRyZXNzIDB4ZmVjMDEwMDAsIEdTSSAyNC01NQpb
ICAgIDAuMDQyNTQ2XSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVzX2lycSAwIGdsb2JhbF9p
cnEgMiBkZmwgZGZsKQpbICAgIDAuMDQyNTQ3XSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVz
X2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpClsgICAgMC4wNDI1NTBdIEFDUEk6IFVzaW5n
IEFDUEkgKE1BRFQpIGZvciBTTVAgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbgpbICAgIDAuMDQy
NTUwXSBBQ1BJOiBIUEVUIGlkOiAweDEwMjI4MjEwIGJhc2U6IDB4ZmVkMDAwMDAKWyAgICAwLjA0
MjU1N10gZTgyMDogdXBkYXRlIFttZW0gMHg0YjgyMjAwMC0weDRiODcwZmZmXSB1c2FibGUgPT0+
IHJlc2VydmVkClsgICAgMC4wNDI1NjZdIHNtcGJvb3Q6IEFsbG93aW5nIDE2IENQVXMsIDAgaG90
cGx1ZyBDUFVzClsgICAgMC4wNDI1ODBdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3Nh
dmUgbWVtb3J5OiBbbWVtIDB4MDAwMDAwMDAtMHgwMDAwMGZmZl0KWyAgICAwLjA0MjU4MV0gUE06
IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHgwMDA5ZjAwMC0w
eDAwMGJmZmZmXQpbICAgIDAuMDQyNTgyXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9z
YXZlIG1lbW9yeTogW21lbSAweDAwMGMwMDAwLTB4MDAwZmZmZmZdClsgICAgMC4wNDI1ODNdIFBN
OiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4MDliMDAwMDAt
MHgwOWRmZmZmZl0KWyAgICAwLjA0MjU4NF0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5v
c2F2ZSBtZW1vcnk6IFttZW0gMHgwOWYwMDAwMC0weDA5ZjNiZmZmXQpbICAgIDAuMDQyNTg0XSBQ
TTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDQyMzYwMDAw
LTB4NDQ1NWZmZmZdClsgICAgMC4wNDI1ODVdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBu
b3NhdmUgbWVtb3J5OiBbbWVtIDB4NDQ1NjkwMDAtMHg0NDU2Y2ZmZl0KWyAgICAwLjA0MjU4Nl0g
UE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHg0NDU2ZjAw
MC0weDQ0NTZmZmZmXQpbICAgIDAuMDQyNTg3XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQg
bm9zYXZlIG1lbW9yeTogW21lbSAweDQ0NTc1MDAwLTB4NDQ1NzVmZmZdClsgICAgMC4wNDI1ODhd
IFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4NDQ1Nzkw
MDAtMHg0NDU3OWZmZl0KWyAgICAwLjA0MjU4OV0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVk
IG5vc2F2ZSBtZW1vcnk6IFttZW0gMHg0YjgyMjAwMC0weDRiODcwZmZmXQpbICAgIDAuMDQyNTkw
XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDRkMTZj
MDAwLTB4NGQxNmNmZmZdClsgICAgMC4wNDI1OTFdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJl
ZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4NTA3N2YwMDAtMHg1MmY3ZWZmZl0KWyAgICAwLjA0MjU5
MV0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHg1MmY3
ZjAwMC0weDVhZjdlZmZmXQpbICAgIDAuMDQyNTkyXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVy
ZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDVhZjdmMDAwLTB4NWFmZmVmZmZdClsgICAgMC4wNDI1
OTJdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4NWIw
MDAwMDAtMHg1YmZmZmZmZl0KWyAgICAwLjA0MjU5M10gUE06IGhpYmVybmF0aW9uOiBSZWdpc3Rl
cmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHg1YzAwMDAwMC0weDVkNzhmZmZmXQpbICAgIDAuMDQy
NTkzXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDVk
NzkwMDAwLTB4NWQ3ZWZmZmZdClsgICAgMC4wNDI1OTNdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0
ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4NWQ3ZjAwMDAtMHg1ZDdmNGZmZl0KWyAgICAwLjA0
MjU5NF0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHg1
ZDdmNTAwMC0weDVmZmZmZmZmXQpbICAgIDAuMDQyNTk0XSBQTTogaGliZXJuYXRpb246IFJlZ2lz
dGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDYwMDAwMDAwLTB4ZmVkN2ZmZmZdClsgICAgMC4w
NDI1OTRdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4
ZmVkODAwMDAtMHhmZWQ4MGZmZl0KWyAgICAwLjA0MjU5NV0gUE06IGhpYmVybmF0aW9uOiBSZWdp
c3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZWQ4MTAwMC0weGZmZmZmZmZmXQpbICAgIDAu
MDQyNTk2XSBbbWVtIDB4NjAwMDAwMDAtMHhmZWQ3ZmZmZl0gYXZhaWxhYmxlIGZvciBQQ0kgZGV2
aWNlcwpbICAgIDAuMDQyNTk3XSBCb290aW5nIHBhcmF2aXJ0dWFsaXplZCBrZXJuZWwgb24gYmFy
ZSBoYXJkd2FyZQpbICAgIDAuMDQyNTk4XSBjbG9ja3NvdXJjZTogcmVmaW5lZC1qaWZmaWVzOiBt
YXNrOiAweGZmZmZmZmZmIG1heF9jeWNsZXM6IDB4ZmZmZmZmZmYsIG1heF9pZGxlX25zOiAxOTEw
OTY5OTQwMzkxNDE5IG5zClsgICAgMC4wNDYyMDJdIHNldHVwX3BlcmNwdTogTlJfQ1BVUzo4MTky
IG5yX2NwdW1hc2tfYml0czoxNiBucl9jcHVfaWRzOjE2IG5yX25vZGVfaWRzOjEKWyAgICAwLjA0
NjQzNl0gcGVyY3B1OiBFbWJlZGRlZCA2NCBwYWdlcy9jcHUgczIyNTI4MCByODE5MiBkMjg2NzIg
dTI2MjE0NApbICAgIDAuMDQ2NDQwXSBwY3B1LWFsbG9jOiBzMjI1MjgwIHI4MTkyIGQyODY3MiB1
MjYyMTQ0IGFsbG9jPTEqMjA5NzE1MgpbICAgIDAuMDQ2NDQxXSBwY3B1LWFsbG9jOiBbMF0gMDAg
MDEgMDIgMDMgMDQgMDUgMDYgMDcgWzBdIDA4IDA5IDEwIDExIDEyIDEzIDE0IDE1IApbICAgIDAu
MDQ2NDU4XSBLZXJuZWwgY29tbWFuZCBsaW5lOiBCT09UX0lNQUdFPS9ib290L3ZtbGludXotNi42
Ljd4ZW4taXJxLWRiZy0xKyByb290PVVVSUQ9NzFiMWRjNTktZWEwMC00ODRjLWI1ZTQtZWU3N2Vk
ZTc3MWRiIHJvICJkeW5kYmc9ZmlsZSBkcml2ZXJzL2dwaW8vKiArcDsgZmlsZSBkcml2ZXJzL3Bp
bmN0cmwvKiArcDsgZmlsZSBhcmNoL3g4Ni9wY2kveGVuLmMgK3AiClsgICAgMC4wNDY0OTRdIFVu
a25vd24ga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzICJCT09UX0lNQUdFPS9ib290L3Zt
bGludXotNi42Ljd4ZW4taXJxLWRiZy0xKyIsIHdpbGwgYmUgcGFzc2VkIHRvIHVzZXIgc3BhY2Uu
ClsgICAgMC4wNDg3MjFdIERlbnRyeSBjYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDgzODg2MDgg
KG9yZGVyOiAxNCwgNjcxMDg4NjQgYnl0ZXMsIGxpbmVhcikKWyAgICAwLjA0OTc2Ml0gSW5vZGUt
Y2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiA0MTk0MzA0IChvcmRlcjogMTMsIDMzNTU0NDMyIGJ5
dGVzLCBsaW5lYXIpClsgICAgMC4wNDk3OThdIEJ1aWx0IDEgem9uZWxpc3RzLCBtb2JpbGl0eSBn
cm91cGluZyBvbi4gIFRvdGFsIHBhZ2VzOiAxNjMwNjQ3NApbICAgIDAuMDQ5ODc3XSBtZW0gYXV0
by1pbml0OiBzdGFjazphbGwoemVybyksIGhlYXAgYWxsb2M6b2ZmLCBoZWFwIGZyZWU6b2ZmClsg
ICAgMC4wNDk5MjNdIHNvZnR3YXJlIElPIFRMQjogYXJlYSBudW0gMTYuClsgICAgMC4wOTQ1OTVd
IE1lbW9yeTogNjQ2OTIxODRLLzY2MjYxODc2SyBhdmFpbGFibGUgKDE4NDMySyBrZXJuZWwgY29k
ZSwgMzE2OEsgcndkYXRhLCAxNDQ1Nksgcm9kYXRhLCAzOTQ0SyBpbml0LCAzNzA0SyBic3MsIDE1
Njk0MzZLIHJlc2VydmVkLCAwSyBjbWEtcmVzZXJ2ZWQpClsgICAgMC4wOTQ3NDJdIFNMVUI6IEhX
YWxpZ249NjQsIE9yZGVyPTAtMywgTWluT2JqZWN0cz0wLCBDUFVzPTE2LCBOb2Rlcz0xClsgICAg
MC4wOTQ3NTldIGZ0cmFjZTogYWxsb2NhdGluZyA1MzMwNyBlbnRyaWVzIGluIDIwOSBwYWdlcwpb
ICAgIDAuMTAxODIyXSBmdHJhY2U6IGFsbG9jYXRlZCAyMDkgcGFnZXMgd2l0aCA0IGdyb3Vwcwpb
ICAgIDAuMTAyMzc1XSBEeW5hbWljIFByZWVtcHQ6IHZvbHVudGFyeQpbICAgIDAuMTAyNDEwXSBy
Y3U6IFByZWVtcHRpYmxlIGhpZXJhcmNoaWNhbCBSQ1UgaW1wbGVtZW50YXRpb24uClsgICAgMC4x
MDI0MTFdIHJjdTogCVJDVSByZXN0cmljdGluZyBDUFVzIGZyb20gTlJfQ1BVUz04MTkyIHRvIG5y
X2NwdV9pZHM9MTYuClsgICAgMC4xMDI0MTFdIAlUcmFtcG9saW5lIHZhcmlhbnQgb2YgVGFza3Mg
UkNVIGVuYWJsZWQuClsgICAgMC4xMDI0MTJdIAlSdWRlIHZhcmlhbnQgb2YgVGFza3MgUkNVIGVu
YWJsZWQuClsgICAgMC4xMDI0MTJdIAlUcmFjaW5nIHZhcmlhbnQgb2YgVGFza3MgUkNVIGVuYWJs
ZWQuClsgICAgMC4xMDI0MTJdIHJjdTogUkNVIGNhbGN1bGF0ZWQgdmFsdWUgb2Ygc2NoZWR1bGVy
LWVubGlzdG1lbnQgZGVsYXkgaXMgMTAwIGppZmZpZXMuClsgICAgMC4xMDI0MTNdIHJjdTogQWRq
dXN0aW5nIGdlb21ldHJ5IGZvciByY3VfZmFub3V0X2xlYWY9MTYsIG5yX2NwdV9pZHM9MTYKWyAg
ICAwLjEwNDA3NF0gTlJfSVJRUzogNTI0NTQ0LCBucl9pcnFzOiAxMDk2LCBwcmVhbGxvY2F0ZWQg
aXJxczogMTYKWyAgICAwLjEwNDI2NV0gcmN1OiBzcmN1X2luaXQ6IFNldHRpbmcgc3JjdV9zdHJ1
Y3Qgc2l6ZXMgYmFzZWQgb24gY29udGVudGlvbi4KWyAgICAwLjEwNDQwM10ga2ZlbmNlOiBpbml0
aWFsaXplZCAtIHVzaW5nIDIwOTcxNTIgYnl0ZXMgZm9yIDI1NSBvYmplY3RzIGF0IDB4KF9fX19w
dHJ2YWxfX19fKS0weChfX19fcHRydmFsX19fXykKWyAgICAwLjEwNDQyOF0gQ29uc29sZTogY29s
b3VyIGR1bW15IGRldmljZSA4MHgyNQpbICAgIDAuMTA0NDI5XSBwcmludGs6IGNvbnNvbGUgW3R0
eTBdIGVuYWJsZWQKWyAgICAwLjEwNDczMV0gQUNQSTogQ29yZSByZXZpc2lvbiAyMDIzMDYyOApb
ICAgIDAuMTA0OTE4XSBjbG9ja3NvdXJjZTogaHBldDogbWFzazogMHhmZmZmZmZmZiBtYXhfY3lj
bGVzOiAweGZmZmZmZmZmLCBtYXhfaWRsZV9uczogMTMzNDg0ODczNTA0IG5zClsgICAgMC4xMDQ5
MzhdIEFQSUM6IFN3aXRjaCB0byBzeW1tZXRyaWMgSS9PIG1vZGUgc2V0dXAKWyAgICAwLjEwNTU0
M10gQU1ELVZpOiBpdnJzLCBhZGQgaGlkOkFNREkwMDIwLCB1aWQ6XF9TQi5GVVIwLCByZGV2aWQ6
MTYwClsgICAgMC4xMDU1NDZdIEFNRC1WaTogaXZycywgYWRkIGhpZDpBTURJMDAyMCwgdWlkOlxf
U0IuRlVSMSwgcmRldmlkOjE2MApbICAgIDAuMTA1NTQ3XSBBTUQtVmk6IGl2cnMsIGFkZCBoaWQ6
QU1ESTAwMjAsIHVpZDpcX1NCLkZVUjIsIHJkZXZpZDoxNjAKWyAgICAwLjEwNTU0OF0gQU1ELVZp
OiBpdnJzLCBhZGQgaGlkOkFNREkwMDIwLCB1aWQ6XF9TQi5GVVIzLCByZGV2aWQ6MTYwClsgICAg
MC4xMDU1NTBdIEFNRC1WaTogVXNpbmcgZ2xvYmFsIElWSEQgRUZSOjB4MjQ2NTc3ZWZhMjI1NGFm
YSwgRUZSMjoweDAKWyAgICAwLjEwNjEyNF0geDJhcGljOiBJUlEgcmVtYXBwaW5nIGRvZXNuJ3Qg
c3VwcG9ydCBYMkFQSUMgbW9kZQpbICAgIDAuMTA2MTQzXSBBUElDOiBTd2l0Y2hlZCBBUElDIHJv
dXRpbmcgdG86IHBoeXNpY2FsIGZsYXQKWyAgICAwLjEwNjkyMl0gLi5USU1FUjogdmVjdG9yPTB4
MzAgYXBpYzE9MCBwaW4xPTIgYXBpYzI9LTEgcGluMj0tMQpbICAgIDAuMTExOTQzXSBjbG9ja3Nv
dXJjZTogdHNjLWVhcmx5OiBtYXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgy
ZjdhMmFiMmY0YywgbWF4X2lkbGVfbnM6IDQ0MDc5NTM2MTU1MyBucwpbICAgIDAuMTExOTQ4XSBD
YWxpYnJhdGluZyBkZWxheSBsb29wIChza2lwcGVkKSwgdmFsdWUgY2FsY3VsYXRlZCB1c2luZyB0
aW1lciBmcmVxdWVuY3kuLiA2NTg3LjQ2IEJvZ29NSVBTIChscGo9MzI5MzczMSkKWyAgICAwLjEx
MTk2OF0geDg2L2NwdTogVXNlciBNb2RlIEluc3RydWN0aW9uIFByZXZlbnRpb24gKFVNSVApIGFj
dGl2YXRlZApbICAgIDAuMTEyMDEyXSBMVlQgb2Zmc2V0IDEgYXNzaWduZWQgZm9yIHZlY3RvciAw
eGY5ClsgICAgMC4xMTIxNzRdIExWVCBvZmZzZXQgMiBhc3NpZ25lZCBmb3IgdmVjdG9yIDB4ZjQK
WyAgICAwLjExMjIxMl0gcHJvY2VzczogdXNpbmcgbXdhaXQgaW4gaWRsZSB0aHJlYWRzClsgICAg
MC4xMTIyMTNdIExhc3QgbGV2ZWwgaVRMQiBlbnRyaWVzOiA0S0IgNTEyLCAyTUIgNTEyLCA0TUIg
MjU2ClsgICAgMC4xMTIyMTVdIExhc3QgbGV2ZWwgZFRMQiBlbnRyaWVzOiA0S0IgMjA0OCwgMk1C
IDIwNDgsIDRNQiAxMDI0LCAxR0IgMApbICAgIDAuMTEyMjE4XSBTcGVjdHJlIFYxIDogTWl0aWdh
dGlvbjogdXNlcmNvcHkvc3dhcGdzIGJhcnJpZXJzIGFuZCBfX3VzZXIgcG9pbnRlciBzYW5pdGl6
YXRpb24KWyAgICAwLjExMjIyMV0gU3BlY3RyZSBWMiA6IE1pdGlnYXRpb246IEVuaGFuY2VkIC8g
QXV0b21hdGljIElCUlMKWyAgICAwLjExMjIyMl0gU3BlY3RyZSBWMiA6IFNwZWN0cmUgdjIgLyBT
cGVjdHJlUlNCIG1pdGlnYXRpb246IEZpbGxpbmcgUlNCIG9uIGNvbnRleHQgc3dpdGNoClsgICAg
MC4xMTIyMjVdIFNwZWN0cmUgVjIgOiBtaXRpZ2F0aW9uOiBFbmFibGluZyBjb25kaXRpb25hbCBJ
bmRpcmVjdCBCcmFuY2ggUHJlZGljdGlvbiBCYXJyaWVyClsgICAgMC4xMTIyMjddIFNwZWN0cmUg
VjIgOiBVc2VyIHNwYWNlOiBNaXRpZ2F0aW9uOiBTVElCUCBhbHdheXMtb24gcHJvdGVjdGlvbgpb
ICAgIDAuMTEyMjI5XSBTcGVjdWxhdGl2ZSBTdG9yZSBCeXBhc3M6IE1pdGlnYXRpb246IFNwZWN1
bGF0aXZlIFN0b3JlIEJ5cGFzcyBkaXNhYmxlZCB2aWEgcHJjdGwKWyAgICAwLjExMjIzMV0gU3Bl
Y3VsYXRpdmUgUmV0dXJuIFN0YWNrIE92ZXJmbG93OiBJQlBCLWV4dGVuZGluZyBtaWNyb2NvZGUg
bm90IGFwcGxpZWQhClsgICAgMC4xMTIyMzJdIFNwZWN1bGF0aXZlIFJldHVybiBTdGFjayBPdmVy
ZmxvdzogV0FSTklORzogU2VlIGh0dHBzOi8va2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvYWRt
aW4tZ3VpZGUvaHctdnVsbi9zcnNvLmh0bWwgZm9yIG1pdGlnYXRpb24gb3B0aW9ucy4KWyAgICAw
LjExMjIzM10gU3BlY3VsYXRpdmUgUmV0dXJuIFN0YWNrIE92ZXJmbG93OiBWdWxuZXJhYmxlOiBT
YWZlIFJFVCwgbm8gbWljcm9jb2RlClsgICAgMC4xMTIyMzldIHg4Ni9mcHU6IFN1cHBvcnRpbmcg
WFNBVkUgZmVhdHVyZSAweDAwMTogJ3g4NyBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMnClsgICAg
MC4xMTIyNDFdIHg4Ni9mcHU6IFN1cHBvcnRpbmcgWFNBVkUgZmVhdHVyZSAweDAwMjogJ1NTRSBy
ZWdpc3RlcnMnClsgICAgMC4xMTIyNDJdIHg4Ni9mcHU6IFN1cHBvcnRpbmcgWFNBVkUgZmVhdHVy
ZSAweDAwNDogJ0FWWCByZWdpc3RlcnMnClsgICAgMC4xMTIyNDRdIHg4Ni9mcHU6IFN1cHBvcnRp
bmcgWFNBVkUgZmVhdHVyZSAweDAyMDogJ0FWWC01MTIgb3BtYXNrJwpbICAgIDAuMTEyMjQ1XSB4
ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwNDA6ICdBVlgtNTEyIEhpMjU2Jwpb
ICAgIDAuMTEyMjQ2XSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwODA6ICdB
VlgtNTEyIFpNTV9IaTI1NicKWyAgICAwLjExMjI0N10geDg2L2ZwdTogU3VwcG9ydGluZyBYU0FW
RSBmZWF0dXJlIDB4MjAwOiAnUHJvdGVjdGlvbiBLZXlzIFVzZXIgcmVnaXN0ZXJzJwpbICAgIDAu
MTEyMjQ5XSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUgMHg4MDA6ICdDb250cm9s
LWZsb3cgVXNlciByZWdpc3RlcnMnClsgICAgMC4xMTIyNTFdIHg4Ni9mcHU6IHhzdGF0ZV9vZmZz
ZXRbMl06ICA1NzYsIHhzdGF0ZV9zaXplc1syXTogIDI1NgpbICAgIDAuMTEyMjUyXSB4ODYvZnB1
OiB4c3RhdGVfb2Zmc2V0WzVdOiAgODMyLCB4c3RhdGVfc2l6ZXNbNV06ICAgNjQKWyAgICAwLjEx
MjI1NF0geDg2L2ZwdTogeHN0YXRlX29mZnNldFs2XTogIDg5NiwgeHN0YXRlX3NpemVzWzZdOiAg
NTEyClsgICAgMC4xMTIyNTVdIHg4Ni9mcHU6IHhzdGF0ZV9vZmZzZXRbN106IDE0MDgsIHhzdGF0
ZV9zaXplc1s3XTogMTAyNApbICAgIDAuMTEyMjU2XSB4ODYvZnB1OiB4c3RhdGVfb2Zmc2V0Wzld
OiAyNDMyLCB4c3RhdGVfc2l6ZXNbOV06ICAgIDgKWyAgICAwLjExMjI1N10geDg2L2ZwdTogeHN0
YXRlX29mZnNldFsxMV06IDI0NDAsIHhzdGF0ZV9zaXplc1sxMV06ICAgMTYKWyAgICAwLjExMjI1
OV0geDg2L2ZwdTogRW5hYmxlZCB4c3RhdGUgZmVhdHVyZXMgMHhhZTcsIGNvbnRleHQgc2l6ZSBp
cyAyNDU2IGJ5dGVzLCB1c2luZyAnY29tcGFjdGVkJyBmb3JtYXQuClsgICAgMC4xMjg2NTFdIEZy
ZWVpbmcgU01QIGFsdGVybmF0aXZlcyBtZW1vcnk6IDQ4SwpbICAgIDAuMTI4NjU1XSBwaWRfbWF4
OiBkZWZhdWx0OiAzMjc2OCBtaW5pbXVtOiAzMDEKWyAgICAwLjEzMDk4NV0gTFNNOiBpbml0aWFs
aXppbmcgbHNtPWxvY2tkb3duLGNhcGFiaWxpdHkseWFtYSxzZWxpbnV4LGJwZixsYW5kbG9jayxp
bnRlZ3JpdHkKWyAgICAwLjEzMTAwM10gWWFtYTogYmVjb21pbmcgbWluZGZ1bC4KWyAgICAwLjEz
MTAwN10gU0VMaW51eDogIEluaXRpYWxpemluZy4KWyAgICAwLjEzMTA0NV0gTFNNIHN1cHBvcnQg
Zm9yIGVCUEYgYWN0aXZlClsgICAgMC4xMzEwNDhdIGxhbmRsb2NrOiBVcCBhbmQgcnVubmluZy4K
WyAgICAwLjEzMTEwNl0gTW91bnQtY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAxMzEwNzIgKG9y
ZGVyOiA4LCAxMDQ4NTc2IGJ5dGVzLCBsaW5lYXIpClsgICAgMC4xMzExNTBdIE1vdW50cG9pbnQt
Y2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAxMzEwNzIgKG9yZGVyOiA4LCAxMDQ4NTc2IGJ5dGVz
LCBsaW5lYXIpClsgICAgMC4yMzQwNDhdIHNtcGJvb3Q6IENQVTA6IEFNRCBSeXplbiA3IDc4NDBV
IHcvIFJhZGVvbiAgNzgwTSBHcmFwaGljcyAoZmFtaWx5OiAweDE5LCBtb2RlbDogMHg3NCwgc3Rl
cHBpbmc6IDB4MSkKWyAgICAwLjIzNDIxN10gUkNVIFRhc2tzOiBTZXR0aW5nIHNoaWZ0IHRvIDQg
YW5kIGxpbSB0byAxIHJjdV90YXNrX2NiX2FkanVzdD0xLgpbICAgIDAuMjM0MjMzXSBSQ1UgVGFz
a3MgUnVkZTogU2V0dGluZyBzaGlmdCB0byA0IGFuZCBsaW0gdG8gMSByY3VfdGFza19jYl9hZGp1
c3Q9MS4KWyAgICAwLjIzNDI1MF0gUkNVIFRhc2tzIFRyYWNlOiBTZXR0aW5nIHNoaWZ0IHRvIDQg
YW5kIGxpbSB0byAxIHJjdV90YXNrX2NiX2FkanVzdD0xLgpbICAgIDAuMjM0MjY5XSBQZXJmb3Jt
YW5jZSBFdmVudHM6IEZhbTE3aCsgMTYtZGVlcCBMQlIsIGNvcmUgcGVyZmN0ciwgQU1EIFBNVSBk
cml2ZXIuClsgICAgMC4yMzQyOTVdIC4uLiB2ZXJzaW9uOiAgICAgICAgICAgICAgICAyClsgICAg
MC4yMzQyOTddIC4uLiBiaXQgd2lkdGg6ICAgICAgICAgICAgICA0OApbICAgIDAuMjM0MzAwXSAu
Li4gZ2VuZXJpYyByZWdpc3RlcnM6ICAgICAgNgpbICAgIDAuMjM0MzAyXSAuLi4gdmFsdWUgbWFz
azogICAgICAgICAgICAgMDAwMGZmZmZmZmZmZmZmZgpbICAgIDAuMjM0MzA1XSAuLi4gbWF4IHBl
cmlvZDogICAgICAgICAgICAgMDAwMDdmZmZmZmZmZmZmZgpbICAgIDAuMjM0MzA3XSAuLi4gZml4
ZWQtcHVycG9zZSBldmVudHM6ICAgMApbICAgIDAuMjM0MzA5XSAuLi4gZXZlbnQgbWFzazogICAg
ICAgICAgICAgMDAwMDAwMDAwMDAwMDAzZgpbICAgIDAuMjM0Mzc1XSBzaWduYWw6IG1heCBzaWdm
cmFtZSBzaXplOiAzMzc2ClsgICAgMC4yMzQzOTddIHJjdTogSGllcmFyY2hpY2FsIFNSQ1UgaW1w
bGVtZW50YXRpb24uClsgICAgMC4yMzQ0MDBdIHJjdTogCU1heCBwaGFzZSBuby1kZWxheSBpbnN0
YW5jZXMgaXMgNDAwLgpbICAgIDAuMjM2OTM0XSBOTUkgd2F0Y2hkb2c6IEVuYWJsZWQuIFBlcm1h
bmVudGx5IGNvbnN1bWVzIG9uZSBody1QTVUgY291bnRlci4KWyAgICAwLjIzNzA2Nl0gc21wOiBC
cmluZ2luZyB1cCBzZWNvbmRhcnkgQ1BVcyAuLi4KWyAgICAwLjIzNzE1OV0gc21wYm9vdDogeDg2
OiBCb290aW5nIFNNUCBjb25maWd1cmF0aW9uOgpbICAgIDAuMjM3MTYyXSAuLi4uIG5vZGUgICMw
LCBDUFVzOiAgICAgICAgIzIgICM0ICAjNiAgIzggIzEwICMxMiAjMTQgICMxICAjMyAgIzUgICM3
ICAjOSAjMTEgIzEzICMxNQpbICAgIDAuMjQ4MDMzXSBTcGVjdHJlIFYyIDogVXBkYXRlIHVzZXIg
c3BhY2UgU01UIG1pdGlnYXRpb246IFNUSUJQIGFsd2F5cy1vbgpbICAgIDAuMjU0OTc3XSBzbXA6
IEJyb3VnaHQgdXAgMSBub2RlLCAxNiBDUFVzClsgICAgMC4yNTQ5NzddIHNtcGJvb3Q6IE1heCBs
b2dpY2FsIHBhY2thZ2VzOiAxClsgICAgMC4yNTQ5NzddIHNtcGJvb3Q6IFRvdGFsIG9mIDE2IHBy
b2Nlc3NvcnMgYWN0aXZhdGVkICgxMDUzOTkuMzkgQm9nb01JUFMpClsgICAgMC4yNTc5OTldIGRl
dnRtcGZzOiBpbml0aWFsaXplZApbICAgIDAuMjU4MDAwXSB4ODYvbW06IE1lbW9yeSBibG9jayBz
aXplOiAyMDQ4TUIKWyAgICAwLjI1ODM2MV0gQUNQSTogUE06IFJlZ2lzdGVyaW5nIEFDUEkgTlZT
IHJlZ2lvbiBbbWVtIDB4MDlmMDAwMDAtMHgwOWYzYmZmZl0gKDI0NTc2MCBieXRlcykKWyAgICAw
LjI1ODM2MV0gQUNQSTogUE06IFJlZ2lzdGVyaW5nIEFDUEkgTlZTIHJlZ2lvbiBbbWVtIDB4NTJm
N2YwMDAtMHg1YWY3ZWZmZl0gKDEzNDIxNzcyOCBieXRlcykKWyAgICAwLjI2MDMyM10gY2xvY2tz
b3VyY2U6IGppZmZpZXM6IG1hc2s6IDB4ZmZmZmZmZmYgbWF4X2N5Y2xlczogMHhmZmZmZmZmZiwg
bWF4X2lkbGVfbnM6IDE5MTEyNjA0NDYyNzUwMDAgbnMKWyAgICAwLjI2MDMyOV0gZnV0ZXggaGFz
aCB0YWJsZSBlbnRyaWVzOiA0MDk2IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzLCBsaW5lYXIpClsg
ICAgMC4yNjAzOTNdIHBpbmN0cmwgY29yZTogaW5pdGlhbGl6ZWQgcGluY3RybCBzdWJzeXN0ZW0K
WyAgICAwLjI2MDUwNl0gUE06IFJUQyB0aW1lOiAxNjoyNzoxNiwgZGF0ZTogMjAyMy0xMi0yMApb
ICAgIDAuMjYwNzQxXSBORVQ6IFJlZ2lzdGVyZWQgUEZfTkVUTElOSy9QRl9ST1VURSBwcm90b2Nv
bCBmYW1pbHkKWyAgICAwLjI2MDg1OV0gRE1BOiBwcmVhbGxvY2F0ZWQgNDA5NiBLaUIgR0ZQX0tF
Uk5FTCBwb29sIGZvciBhdG9taWMgYWxsb2NhdGlvbnMKWyAgICAwLjI2MDg2NV0gRE1BOiBwcmVh
bGxvY2F0ZWQgNDA5NiBLaUIgR0ZQX0tFUk5FTHxHRlBfRE1BIHBvb2wgZm9yIGF0b21pYyBhbGxv
Y2F0aW9ucwpbICAgIDAuMjYwODcwXSBETUE6IHByZWFsbG9jYXRlZCA0MDk2IEtpQiBHRlBfS0VS
TkVMfEdGUF9ETUEzMiBwb29sIGZvciBhdG9taWMgYWxsb2NhdGlvbnMKWyAgICAwLjI2MDg4Nl0g
YXVkaXQ6IGluaXRpYWxpemluZyBuZXRsaW5rIHN1YnN5cyAoZGlzYWJsZWQpClsgICAgMC4yNjA4
OTVdIGF1ZGl0OiB0eXBlPTIwMDAgYXVkaXQoMTcwMzA4OTYzNi4xNTQ6MSk6IHN0YXRlPWluaXRp
YWxpemVkIGF1ZGl0X2VuYWJsZWQ9MCByZXM9MQpbICAgIDAuMjYwOTkyXSB0aGVybWFsX3N5czog
UmVnaXN0ZXJlZCB0aGVybWFsIGdvdmVybm9yICdmYWlyX3NoYXJlJwpbICAgIDAuMjYwOTk0XSB0
aGVybWFsX3N5czogUmVnaXN0ZXJlZCB0aGVybWFsIGdvdmVybm9yICdiYW5nX2JhbmcnClsgICAg
MC4yNjA5OTddIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292ZXJub3IgJ3N0ZXBf
d2lzZScKWyAgICAwLjI2MDk5OV0gdGhlcm1hbF9zeXM6IFJlZ2lzdGVyZWQgdGhlcm1hbCBnb3Zl
cm5vciAndXNlcl9zcGFjZScKWyAgICAwLjI2MTAxMV0gY3B1aWRsZTogdXNpbmcgZ292ZXJub3Ig
bWVudQpbICAgIDAuMjYxMDQ3XSBTaW1wbGUgQm9vdCBGbGFnIGF0IDB4NDQgc2V0IHRvIDB4ODAK
WyAgICAwLjI2MTA0N10gYWNwaXBocDogQUNQSSBIb3QgUGx1ZyBQQ0kgQ29udHJvbGxlciBEcml2
ZXIgdmVyc2lvbjogMC41ClsgICAgMC4yNjEwODddIFBDSTogTU1DT05GSUcgZm9yIGRvbWFpbiAw
MDAwIFtidXMgMDAtZmZdIGF0IFttZW0gMHhlMDAwMDAwMC0weGVmZmZmZmZmXSAoYmFzZSAweGUw
MDAwMDAwKQpbICAgIDAuMjYxMDk1XSBQQ0k6IG5vdCB1c2luZyBNTUNPTkZJRwpbICAgIDAuMjYx
MDk4XSBQQ0k6IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSAxIGZvciBiYXNlIGFjY2VzcwpbICAg
IDAuMjYxMTAxXSBQQ0k6IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSAxIGZvciBleHRlbmRlZCBh
Y2Nlc3MKWyAgICAwLjI2MTU3N10ga3Byb2Jlczoga3Byb2JlIGp1bXAtb3B0aW1pemF0aW9uIGlz
IGVuYWJsZWQuIEFsbCBrcHJvYmVzIGFyZSBvcHRpbWl6ZWQgaWYgcG9zc2libGUuClsgICAgMC4y
NjE5OTddIEh1Z2VUTEI6IHJlZ2lzdGVyZWQgMS4wMCBHaUIgcGFnZSBzaXplLCBwcmUtYWxsb2Nh
dGVkIDAgcGFnZXMKWyAgICAwLjI2MTk5N10gSHVnZVRMQjogMTYzODAgS2lCIHZtZW1tYXAgY2Fu
IGJlIGZyZWVkIGZvciBhIDEuMDAgR2lCIHBhZ2UKWyAgICAwLjI2MTk5N10gSHVnZVRMQjogcmVn
aXN0ZXJlZCAyLjAwIE1pQiBwYWdlIHNpemUsIHByZS1hbGxvY2F0ZWQgMCBwYWdlcwpbICAgIDAu
MjYxOTk3XSBIdWdlVExCOiAyOCBLaUIgdm1lbW1hcCBjYW4gYmUgZnJlZWQgZm9yIGEgMi4wMCBN
aUIgcGFnZQpbICAgIDAuMjYyMDQ2XSBjcnlwdGQ6IG1heF9jcHVfcWxlbiBzZXQgdG8gMTAwMApb
ICAgIDAuMjYyMDQ2XSByYWlkNjogc2tpcHBlZCBwcSBiZW5jaG1hcmsgYW5kIHNlbGVjdGVkIGF2
eDUxMng0ClsgICAgMC4yNjIwNDZdIHJhaWQ2OiB1c2luZyBhdng1MTJ4MiByZWNvdmVyeSBhbGdv
cml0aG0KWyAgICAwLjI2MjA0Nl0gZmJjb246IFRha2luZyBvdmVyIGNvbnNvbGUKWyAgICAwLjI2
MjA3Ml0gQUNQSTogQWRkZWQgX09TSShNb2R1bGUgRGV2aWNlKQpbICAgIDAuMjYyMDc1XSBBQ1BJ
OiBBZGRlZCBfT1NJKFByb2Nlc3NvciBEZXZpY2UpClsgICAgMC4yNjIwNzhdIEFDUEk6IEFkZGVk
IF9PU0koMy4wIF9TQ1AgRXh0ZW5zaW9ucykKWyAgICAwLjI2MjA4Ml0gQUNQSTogQWRkZWQgX09T
SShQcm9jZXNzb3IgQWdncmVnYXRvciBEZXZpY2UpClsgICAgMC4yODY3NTZdIEFDUEk6IDI2IEFD
UEkgQU1MIHRhYmxlcyBzdWNjZXNzZnVsbHkgYWNxdWlyZWQgYW5kIGxvYWRlZApbICAgIDAuMzA0
MDM1XSBBQ1BJOiBVU0I0IF9PU0M6IE9TIHN1cHBvcnRzIFVTQjMrIERpc3BsYXlQb3J0KyBQQ0ll
KyBYRG9tYWluKwpbICAgIDAuMzA0MDQwXSBBQ1BJOiBVU0I0IF9PU0M6IE9TIGNvbnRyb2xzIFVT
QjMrIERpc3BsYXlQb3J0KyBQQ0llKyBYRG9tYWluKwpbICAgIDAuMzA0MTE5XSBBQ1BJOiBfT1ND
IGV2YWx1YXRpb24gZm9yIENQVXMgZmFpbGVkLCB0cnlpbmcgX1BEQwpbICAgIDAuMzA0NjU3XSBB
Q1BJOiBFQzogRUMgc3RhcnRlZApbICAgIDAuMzA0NjU5XSBBQ1BJOiBFQzogaW50ZXJydXB0IGJs
b2NrZWQKWyAgICAwLjMwNDc2OF0gQUNQSTogRUM6IEVDX0NNRC9FQ19TQz0weDY2LCBFQ19EQVRB
PTB4NjIKWyAgICAwLjMwNDc3Ml0gQUNQSTogXF9TQl8uUENJMC5MUEMwLkVDMF86IEJvb3QgRFNE
VCBFQyB1c2VkIHRvIGhhbmRsZSB0cmFuc2FjdGlvbnMKWyAgICAwLjMwNDc3Nl0gQUNQSTogSW50
ZXJwcmV0ZXIgZW5hYmxlZApbICAgIDAuMzA0NzkwXSBBQ1BJOiBQTTogKHN1cHBvcnRzIFMwIFM0
IFM1KQpbICAgIDAuMzA0NzkzXSBBQ1BJOiBVc2luZyBJT0FQSUMgZm9yIGludGVycnVwdCByb3V0
aW5nClsgICAgMC4zMDYyNTldIFBDSTogTU1DT05GSUcgZm9yIGRvbWFpbiAwMDAwIFtidXMgMDAt
ZmZdIGF0IFttZW0gMHhlMDAwMDAwMC0weGVmZmZmZmZmXSAoYmFzZSAweGUwMDAwMDAwKQpbICAg
IDAuMzEwMzY1XSBbRmlybXdhcmUgSW5mb106IFBDSTogTU1DT05GSUcgYXQgW21lbSAweGUwMDAw
MDAwLTB4ZWZmZmZmZmZdIG5vdCByZXNlcnZlZCBpbiBBQ1BJIG1vdGhlcmJvYXJkIHJlc291cmNl
cwpbICAgIDAuMzEwMzcxXSBQQ0k6IG5vdCB1c2luZyBNTUNPTkZJRwpbICAgIDAuMzEwMzc1XSBQ
Q0k6IFVzaW5nIGhvc3QgYnJpZGdlIHdpbmRvd3MgZnJvbSBBQ1BJOyBpZiBuZWNlc3NhcnksIHVz
ZSAicGNpPW5vY3JzIiBhbmQgcmVwb3J0IGEgYnVnClsgICAgMC4zMTAzNzldIFBDSTogSWdub3Jp
bmcgRTgyMCByZXNlcnZhdGlvbnMgZm9yIGhvc3QgYnJpZGdlIHdpbmRvd3MKWyAgICAwLjMxMDc5
Ml0gQUNQSTogRW5hYmxlZCAzIEdQRXMgaW4gYmxvY2sgMDAgdG8gMUYKWyAgICAwLjMxMzgxOF0g
QUNQSTogXF9TQl8uUENJMC5HUFA4LlAwTlY6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAuMzE1
OTUwXSBBQ1BJOiBcX1NCXy5QQ0kwLkdQMTEuUFdSUzogTmV3IHBvd2VyIHJlc291cmNlClsgICAg
MC4zMTc0OTddIEFDUEk6IFxfU0JfLlBDSTAuR1AxMS5TV1VTLlBXUlM6IE5ldyBwb3dlciByZXNv
dXJjZQpbICAgIDAuMzE5MDIxXSBBQ1BJOiBcX1NCXy5QQ0kwLkdQMTIuUFdSUzogTmV3IHBvd2Vy
IHJlc291cmNlClsgICAgMC4zMjA0ODRdIEFDUEk6IFxfU0JfLlBDSTAuR1AxMi5TV1VTLlBXUlM6
IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAuMzIwNzU5XSBBQ1BJOiBcX1NCXy5QQ0kwLkdQMTcu
UFdSUzogTmV3IHBvd2VyIHJlc291cmNlClsgICAgMC4zMjEwNDhdIEFDUEk6IFxfU0JfLlBDSTAu
R1AxNy5WR0FfLlBXUlM6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAuMzIxNDIyXSBBQ1BJOiBc
X1NCXy5QQ0kwLkdQMTcuQUNQXy5QV1JTOiBOZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjMyMjEy
Nl0gQUNQSTogXF9TQl8uUENJMC5HUDE3LkFaQUwuUFdSUzogTmV3IHBvd2VyIHJlc291cmNlClsg
ICAgMC4zMjI2MjNdIEFDUEk6IFxfU0JfLlBDSTAuR1AxNy5IREFVLlBXUlM6IE5ldyBwb3dlciBy
ZXNvdXJjZQpbICAgIDAuMzIzMDc1XSBBQ1BJOiBcX1NCXy5QQ0kwLkdQMTcuWEhDMC5QV1JTOiBO
ZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjMyNjI1MV0gQUNQSTogXF9TQl8uUENJMC5HUDE3LlhI
QzEuUFdSUzogTmV3IHBvd2VyIHJlc291cmNlClsgICAgMC4zMjgyMDFdIEFDUEk6IFxfU0JfLlBD
STAuR1AxOS5YSEMyLlBXUlM6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAuMzI5ODA4XSBBQ1BJ
OiBcX1NCXy5QQ0kwLkdQMTkuTkhJMC5QV1JTOiBOZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjMz
MDcyNF0gQUNQSTogXF9TQl8uUENJMC5HUDE5LlhIQzMuUFdSUzogTmV3IHBvd2VyIHJlc291cmNl
ClsgICAgMC4zMzIzODddIEFDUEk6IFxfU0JfLlBDSTAuR1AxOS5OSEkxLlBXUlM6IE5ldyBwb3dl
ciByZXNvdXJjZQpbICAgIDAuMzMzMzA0XSBBQ1BJOiBcX1NCXy5QQ0kwLkdQMTkuWEhDNC5QV1JT
OiBOZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjM0MDY2M10gQUNQSTogXF9TQl8uUFJXTDogTmV3
IHBvd2VyIHJlc291cmNlClsgICAgMC4zNDA2OTNdIEFDUEk6IFxfU0JfLlBSV0I6IE5ldyBwb3dl
ciByZXNvdXJjZQpbICAgIDAuMzQxNzAwXSBBQ1BJOiBQQ0kgUm9vdCBCcmlkZ2UgW1BDSTBdIChk
b21haW4gMDAwMCBbYnVzIDAwLWZmXSkKWyAgICAwLjM0MTcwN10gYWNwaSBQTlAwQTA4OjAwOiBf
T1NDOiBPUyBzdXBwb3J0cyBbRXh0ZW5kZWRDb25maWcgQVNQTSBDbG9ja1BNIFNlZ21lbnRzIE1T
SSBFRFIgSFBYLVR5cGUzXQpbICAgIDAuMzQxODk0XSBhY3BpIFBOUDBBMDg6MDA6IF9PU0M6IHBs
YXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgW1NIUENIb3RwbHVnIEFFUl0KWyAgICAwLjM0MjI0NV0g
YWNwaSBQTlAwQTA4OjAwOiBfT1NDOiBPUyBub3cgY29udHJvbHMgW1BDSWVIb3RwbHVnIFBNRSBQ
Q0llQ2FwYWJpbGl0eSBMVFIgRFBDXQpbICAgIDAuMzQyNzM4XSBQQ0kgaG9zdCBicmlkZ2UgdG8g
YnVzIDAwMDA6MDAKWyAgICAwLjM0Mjc0MV0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNv
dXJjZSBbaW8gIDB4MDAwMC0weDBjZjcgd2luZG93XQpbICAgIDAuMzQyNzQ1XSBwY2lfYnVzIDAw
MDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwZDAwLTB4ZmZmZiB3aW5kb3ddClsgICAg
MC4zNDI3NDldIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweDAwMGEw
MDAwLTB4MDAwYmZmZmYgd2luZG93XQpbICAgIDAuMzQyNzUzXSBwY2lfYnVzIDAwMDA6MDA6IHJv
b3QgYnVzIHJlc291cmNlIFttZW0gMHgwMDBjMDAwMC0weDAwMGNmZmZmIHdpbmRvd10KWyAgICAw
LjM0Mjc1N10gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4MDAwZDAw
MDAtMHgwMDBlZmZmZiB3aW5kb3ddClsgICAgMC4zNDI3NjFdIHBjaV9idXMgMDAwMDowMDogcm9v
dCBidXMgcmVzb3VyY2UgW21lbSAweDYwMDAwMDAwLTB4OTBiZmZmZmYgd2luZG93XQpbICAgIDAu
MzQyNzY1XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHhmMDAwMDAw
MC0weGZlYzAwMDAwIHdpbmRvd10KWyAgICAwLjM0Mjc2OF0gcGNpX2J1cyAwMDAwOjAwOiByb290
IGJ1cyByZXNvdXJjZSBbbWVtIDB4ZmVkNDUwMDAtMHhmZWQ4MTRmZiB3aW5kb3ddClsgICAgMC4z
NDI3NzJdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweGZlZDgxOTAw
LTB4ZmVkODFmZmYgd2luZG93XQpbICAgIDAuMzQyNzc2XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3Qg
YnVzIHJlc291cmNlIFttZW0gMHhmZWRjMDAwMC0weGZlZGMwZmZmIHdpbmRvd10KWyAgICAwLjM0
Mjc4MF0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4ZmVkYzYwMDAt
MHhmZWRjNmZmZiB3aW5kb3ddClsgICAgMC4zNDI3ODNdIHBjaV9idXMgMDAwMDowMDogcm9vdCBi
dXMgcmVzb3VyY2UgW21lbSAweDEwYzAyMDAwMDAtMHg4OTFmZmZmZmZmIHdpbmRvd10KWyAgICAw
LjM0Mjc4N10gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbYnVzIDAwLWZmXQpb
ICAgIDAuMzQyODA4XSBwY2kgMDAwMDowMDowMC4wOiBbMTAyMjoxNGU4XSB0eXBlIDAwIGNsYXNz
IDB4MDYwMDAwClsgICAgMC4zNDI4NzNdIHBjaSAwMDAwOjAwOjAwLjI6IFsxMDIyOjE0ZTldIHR5
cGUgMDAgY2xhc3MgMHgwODA2MDAKWyAgICAwLjM0Mjk1NV0gcGNpIDAwMDA6MDA6MDEuMDogWzEw
MjI6MTRlYV0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMApbICAgIDAuMzQzMDIyXSBwY2kgMDAwMDow
MDowMi4wOiBbMTAyMjoxNGVhXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwClsgICAgMC4zNDMwODhd
IHBjaSAwMDAwOjAwOjAyLjI6IFsxMDIyOjE0ZWVdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAKWyAg
ICAwLjM0MzE0N10gcGNpIDAwMDA6MDA6MDIuMjogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hv
dCBEM2NvbGQKWyAgICAwLjM0MzI0Nl0gcGNpIDAwMDA6MDA6MDIuNDogWzEwMjI6MTRlZV0gdHlw
ZSAwMSBjbGFzcyAweDA2MDQwMApbICAgIDAuMzQzMzA0XSBwY2kgMDAwMDowMDowMi40OiBQTUUj
IHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDAuMzQzMzg2XSBwY2kgMDAwMDow
MDowMy4wOiBbMTAyMjoxNGVhXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwClsgICAgMC4zNDM0NTRd
IHBjaSAwMDAwOjAwOjAzLjE6IFsxMDIyOjE0ZWZdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAKWyAg
ICAwLjM0Mzg5NV0gcGNpIDAwMDA6MDA6MDMuMTogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hv
dCBEM2NvbGQKWyAgICAwLjM0NTAxN10gcGNpIDAwMDA6MDA6MDQuMDogWzEwMjI6MTRlYV0gdHlw
ZSAwMCBjbGFzcyAweDA2MDAwMApbICAgIDAuMzQ1MDg2XSBwY2kgMDAwMDowMDowNC4xOiBbMTAy
MjoxNGVmXSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwClsgICAgMC4zNDU1MTddIHBjaSAwMDAwOjAw
OjA0LjE6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMC4zNDY3MjRd
IHBjaSAwMDAwOjAwOjA4LjA6IFsxMDIyOjE0ZWFdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAKWyAg
ICAwLjM0NzA1NV0gcGNpIDAwMDA6MDA6MDguMTogWzEwMjI6MTRlYl0gdHlwZSAwMSBjbGFzcyAw
eDA2MDQwMApbICAgIDAuMzQ3MDc5XSBwY2kgMDAwMDowMDowOC4xOiBlbmFibGluZyBFeHRlbmRl
ZCBUYWdzClsgICAgMC4zNDcxMDVdIHBjaSAwMDAwOjAwOjA4LjE6IFBNRSMgc3VwcG9ydGVkIGZy
b20gRDAgRDNob3QgRDNjb2xkClsgICAgMC4zNDcyMDRdIHBjaSAwMDAwOjAwOjA4LjI6IFsxMDIy
OjE0ZWJdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAKWyAgICAwLjM0NzI2MF0gcGNpIDAwMDA6MDA6
MDguMjogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAgIDAuMzQ3Mjg1XSBwY2kgMDAwMDowMDow
OC4yOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDAuMzQ3MzU4XSBw
Y2kgMDAwMDowMDowOC4zOiBbMTAyMjoxNGViXSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwClsgICAg
MC4zNDczODJdIHBjaSAwMDAwOjAwOjA4LjM6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAw
LjM0NzQwN10gcGNpIDAwMDA6MDA6MDguMzogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBE
M2NvbGQKWyAgICAwLjM0NzY1OV0gcGNpIDAwMDA6MDA6MTQuMDogWzEwMjI6NzkwYl0gdHlwZSAw
MCBjbGFzcyAweDBjMDUwMApbICAgIDAuMzQ3NzkwXSBwY2kgMDAwMDowMDoxNC4zOiBbMTAyMjo3
OTBlXSB0eXBlIDAwIGNsYXNzIDB4MDYwMTAwClsgICAgMC4zNDc5MzhdIHBjaSAwMDAwOjAwOjE4
LjA6IFsxMDIyOjE0ZjBdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAKWyAgICAwLjM0Nzk3NF0gcGNp
IDAwMDA6MDA6MTguMTogWzEwMjI6MTRmMV0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMApbICAgIDAu
MzQ4MDA4XSBwY2kgMDAwMDowMDoxOC4yOiBbMTAyMjoxNGYyXSB0eXBlIDAwIGNsYXNzIDB4MDYw
MDAwClsgICAgMC4zNDgwNDJdIHBjaSAwMDAwOjAwOjE4LjM6IFsxMDIyOjE0ZjNdIHR5cGUgMDAg
Y2xhc3MgMHgwNjAwMDAKWyAgICAwLjM0ODA3Nl0gcGNpIDAwMDA6MDA6MTguNDogWzEwMjI6MTRm
NF0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMApbICAgIDAuMzQ4MTEwXSBwY2kgMDAwMDowMDoxOC41
OiBbMTAyMjoxNGY1XSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwClsgICAgMC4zNDgxNDVdIHBjaSAw
MDAwOjAwOjE4LjY6IFsxMDIyOjE0ZjZdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAKWyAgICAwLjM0
ODE3OV0gcGNpIDAwMDA6MDA6MTguNzogWzEwMjI6MTRmN10gdHlwZSAwMCBjbGFzcyAweDA2MDAw
MApbICAgIDAuMzQ4MzA3XSBwY2kgMDAwMDowMTowMC4wOiBbMTRjMzowNjE2XSB0eXBlIDAwIGNs
YXNzIDB4MDI4MDAwClsgICAgMC4zNDgzMjldIHBjaSAwMDAwOjAxOjAwLjA6IHJlZyAweDEwOiBb
bWVtIDB4ODgxMDkwMDAwMC0weDg4MTA5ZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAwLjM0ODM0NV0g
cGNpIDAwMDA6MDE6MDAuMDogcmVnIDB4MTg6IFttZW0gMHg5MGIwMDAwMC0weDkwYjA3ZmZmIDY0
Yml0XQpbICAgIDAuMzQ4NDIwXSBwY2kgMDAwMDowMTowMC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9t
IEQwIEQzaG90IEQzY29sZApbICAgIDAuMzQ4NTEwXSBwY2kgMDAwMDowMDowMi4yOiBQQ0kgYnJp
ZGdlIHRvIFtidXMgMDFdClsgICAgMC4zNDg1MTddIHBjaSAwMDAwOjAwOjAyLjI6ICAgYnJpZGdl
IHdpbmRvdyBbbWVtIDB4OTBiMDAwMDAtMHg5MGJmZmZmZl0KWyAgICAwLjM0ODUyM10gcGNpIDAw
MDA6MDA6MDIuMjogICBicmlkZ2Ugd2luZG93IFttZW0gMHg4ODEwOTAwMDAwLTB4ODgxMDlmZmZm
ZiA2NGJpdCBwcmVmXQpbICAgIDAuMzQ4ODA2XSBwY2kgMDAwMDowMjowMC4wOiBbMTViNzo1MDMw
XSB0eXBlIDAwIGNsYXNzIDB4MDEwODAyClsgICAgMC4zNDg4MjRdIHBjaSAwMDAwOjAyOjAwLjA6
IHJlZyAweDEwOiBbbWVtIDB4OTBhMDAwMDAtMHg5MGEwM2ZmZiA2NGJpdF0KWyAgICAwLjM0ODk3
MV0gcGNpIDAwMDA6MDA6MDIuNDogUENJIGJyaWRnZSB0byBbYnVzIDAyXQpbICAgIDAuMzQ4OTc4
XSBwY2kgMDAwMDowMDowMi40OiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDkwYTAwMDAwLTB4OTBh
ZmZmZmZdClsgICAgMC4zNDkwODhdIHBjaSAwMDAwOjAwOjAzLjE6IFBDSSBicmlkZ2UgdG8gW2J1
cyAwMy02MV0KWyAgICAwLjM0OTA5NV0gcGNpIDAwMDA6MDA6MDMuMTogICBicmlkZ2Ugd2luZG93
IFtpbyAgMHg2MDAwLTB4OWZmZl0KWyAgICAwLjM0OTEwMF0gcGNpIDAwMDA6MDA6MDMuMTogICBi
cmlkZ2Ugd2luZG93IFttZW0gMHg3ODAwMDAwMC0weDhmZmZmZmZmXQpbICAgIDAuMzQ5MTA3XSBw
Y2kgMDAwMDowMDowMy4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDc4MDAwMDAwMDAtMHg4N2Zm
ZmZmZmZmIDY0Yml0IHByZWZdClsgICAgMC4zNDkyMTZdIHBjaSAwMDAwOjAwOjA0LjE6IFBDSSBi
cmlkZ2UgdG8gW2J1cyA2Mi1jMF0KWyAgICAwLjM0OTIyM10gcGNpIDAwMDA6MDA6MDQuMTogICBi
cmlkZ2Ugd2luZG93IFtpbyAgMHgyMDAwLTB4NWZmZl0KWyAgICAwLjM0OTIyOF0gcGNpIDAwMDA6
MDA6MDQuMTogICBicmlkZ2Ugd2luZG93IFttZW0gMHg2MDAwMDAwMC0weDc3ZmZmZmZmXQpbICAg
IDAuMzQ5MjM1XSBwY2kgMDAwMDowMDowNC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDY4MDAw
MDAwMDAtMHg3N2ZmZmZmZmZmIDY0Yml0IHByZWZdClsgICAgMC4zNDkzNDFdIHBjaSAwMDAwOmMx
OjAwLjA6IFsxMDAyOjE1YmZdIHR5cGUgMDAgY2xhc3MgMHgwMzAwMDAKWyAgICAwLjM0OTM1Nl0g
cGNpIDAwMDA6YzE6MDAuMDogcmVnIDB4MTA6IFttZW0gMHg4ODAwMDAwMDAwLTB4ODgwZmZmZmZm
ZiA2NGJpdCBwcmVmXQpbICAgIDAuMzQ5MzY3XSBwY2kgMDAwMDpjMTowMC4wOiByZWcgMHgxODog
W21lbSAweDkwMDAwMDAwLTB4OTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAwLjM0OTM3NV0gcGNp
IDAwMDA6YzE6MDAuMDogcmVnIDB4MjA6IFtpbyAgMHgxMDAwLTB4MTBmZl0KWyAgICAwLjM0OTM4
M10gcGNpIDAwMDA6YzE6MDAuMDogcmVnIDB4MjQ6IFttZW0gMHg5MDUwMDAwMC0weDkwNTdmZmZm
XQpbICAgIDAuMzQ5Mzk1XSBwY2kgMDAwMDpjMTowMC4wOiBlbmFibGluZyBFeHRlbmRlZCBUYWdz
ClsgICAgMC4zNDk0MDVdIHBjaSAwMDAwOmMxOjAwLjA6IEJBUiAwOiBhc3NpZ25lZCB0byBlZmlm
YgpbICAgIDAuMzQ5NDM1XSBwY2kgMDAwMDpjMTowMC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQx
IEQyIEQzaG90IEQzY29sZApbICAgIDAuMzQ5NTI1XSBwY2kgMDAwMDpjMTowMC4xOiBbMTAwMjox
NjQwXSB0eXBlIDAwIGNsYXNzIDB4MDQwMzAwClsgICAgMC4zNDk1MzVdIHBjaSAwMDAwOmMxOjAw
LjE6IHJlZyAweDEwOiBbbWVtIDB4OTA1YzgwMDAtMHg5MDVjYmZmZl0KWyAgICAwLjM0OTU2Ml0g
cGNpIDAwMDA6YzE6MDAuMTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAgIDAuMzQ5NTk0XSBw
Y2kgMDAwMDpjMTowMC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQxIEQyIEQzaG90IEQzY29sZApb
ICAgIDAuMzQ5Njc4XSBwY2kgMDAwMDpjMTowMC4yOiBbMTAyMjoxNWM3XSB0eXBlIDAwIGNsYXNz
IDB4MTA4MDAwClsgICAgMC4zNDk2OTVdIHBjaSAwMDAwOmMxOjAwLjI6IHJlZyAweDE4OiBbbWVt
IDB4OTA0MDAwMDAtMHg5MDRmZmZmZl0KWyAgICAwLjM0OTcwOF0gcGNpIDAwMDA6YzE6MDAuMjog
cmVnIDB4MjQ6IFttZW0gMHg5MDVjYzAwMC0weDkwNWNkZmZmXQpbICAgIDAuMzQ5NzE4XSBwY2kg
MDAwMDpjMTowMC4yOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAgMC4zNDk4MzJdIHBjaSAw
MDAwOmMxOjAwLjM6IFsxMDIyOjE1YjldIHR5cGUgMDAgY2xhc3MgMHgwYzAzMzAKWyAgICAwLjM0
OTg0N10gcGNpIDAwMDA6YzE6MDAuMzogcmVnIDB4MTA6IFttZW0gMHg5MDIwMDAwMC0weDkwMmZm
ZmZmIDY0Yml0XQpbICAgIDAuMzQ5ODc3XSBwY2kgMDAwMDpjMTowMC4zOiBlbmFibGluZyBFeHRl
bmRlZCBUYWdzClsgICAgMC4zNDk5MTFdIHBjaSAwMDAwOmMxOjAwLjM6IFBNRSMgc3VwcG9ydGVk
IGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMC4zNTAyNTRdIHBjaSAwMDAwOmMxOjAwLjQ6IFsx
MDIyOjE1YmFdIHR5cGUgMDAgY2xhc3MgMHgwYzAzMzAKWyAgICAwLjM1MDI2OF0gcGNpIDAwMDA6
YzE6MDAuNDogcmVnIDB4MTA6IFttZW0gMHg5MDMwMDAwMC0weDkwM2ZmZmZmIDY0Yml0XQpbICAg
IDAuMzUwMjk5XSBwY2kgMDAwMDpjMTowMC40OiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAg
MC4zNTAzMzNdIHBjaSAwMDAwOmMxOjAwLjQ6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3Qg
RDNjb2xkClsgICAgMC4zNTA2NjVdIHBjaSAwMDAwOmMxOjAwLjU6IFsxMDIyOjE1ZTJdIHR5cGUg
MDAgY2xhc3MgMHgwNDgwMDAKWyAgICAwLjM1MDY3NV0gcGNpIDAwMDA6YzE6MDAuNTogcmVnIDB4
MTA6IFttZW0gMHg5MDU4MDAwMC0weDkwNWJmZmZmXQpbICAgIDAuMzUwNjg4XSBwY2kgMDAwMDpj
MTowMC41OiByZWcgMHgxODogW21lbSAweDg4MTAwMDAwMDAtMHg4ODEwN2ZmZmZmIDY0Yml0IHBy
ZWZdClsgICAgMC4zNTA3MDVdIHBjaSAwMDAwOmMxOjAwLjU6IGVuYWJsaW5nIEV4dGVuZGVkIFRh
Z3MKWyAgICAwLjM1MDczN10gcGNpIDAwMDA6YzE6MDAuNTogUE1FIyBzdXBwb3J0ZWQgZnJvbSBE
MCBEM2hvdCBEM2NvbGQKWyAgICAwLjM1MDgyN10gcGNpIDAwMDA6YzE6MDAuNjogWzEwMjI6MTVl
M10gdHlwZSAwMCBjbGFzcyAweDA0MDMwMApbICAgIDAuMzUwODM4XSBwY2kgMDAwMDpjMTowMC42
OiByZWcgMHgxMDogW21lbSAweDkwNWMwMDAwLTB4OTA1YzdmZmZdClsgICAgMC4zNTA4NjRdIHBj
aSAwMDAwOmMxOjAwLjY6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAwLjM1MDg5Nl0gcGNp
IDAwMDA6YzE6MDAuNjogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAw
LjM1MTAwNl0gcGNpIDAwMDA6MDA6MDguMTogUENJIGJyaWRnZSB0byBbYnVzIGMxXQpbICAgIDAu
MzUxMDExXSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDEwMDAtMHgx
ZmZmXQpbICAgIDAuMzUxMDE1XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21l
bSAweDkwMDAwMDAwLTB4OTA1ZmZmZmZdClsgICAgMC4zNTEwMjBdIHBjaSAwMDAwOjAwOjA4LjE6
ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ODgwMDAwMDAwMC0weDg4MTA3ZmZmZmYgNjRiaXQgcHJl
Zl0KWyAgICAwLjM1MTA3OF0gcGNpIDAwMDA6YzI6MDAuMDogWzEwMjI6MTRlY10gdHlwZSAwMCBj
bGFzcyAweDEzMDAwMApbICAgIDAuMzUxMTExXSBwY2kgMDAwMDpjMjowMC4wOiBlbmFibGluZyBF
eHRlbmRlZCBUYWdzClsgICAgMC4zNTExNDVdIHBjaSAwMDAwOmMyOjAwLjA6IFBNRSMgc3VwcG9y
dGVkIGZyb20gRDNob3QgRDNjb2xkClsgICAgMC4zNTEyMDNdIHBjaSAwMDAwOmMyOjAwLjE6IFsx
MDIyOjE1MDJdIHR5cGUgMDAgY2xhc3MgMHgxMTgwMDAKWyAgICAwLjM1MTIyMV0gcGNpIDAwMDA6
YzI6MDAuMTogcmVnIDB4MTA6IFttZW0gMHg5MDkwMDAwMC0weDkwOTdmZmZmXQpbICAgIDAuMzUx
MjI4XSBwY2kgMDAwMDpjMjowMC4xOiByZWcgMHgxNDogW21lbSAweDkwOWMwMDAwLTB4OTA5YzFm
ZmZdClsgICAgMC4zNTEyMzddIHBjaSAwMDAwOmMyOjAwLjE6IHJlZyAweDE4OiBbbWVtIDB4ODgx
MDgwMDAwMC0weDg4MTA4M2ZmZmYgNjRiaXQgcHJlZl0KWyAgICAwLjM1MTI0NF0gcGNpIDAwMDA6
YzI6MDAuMTogcmVnIDB4MjA6IFttZW0gMHg5MDk4MDAwMC0weDkwOWJmZmZmXQpbICAgIDAuMzUx
MjU3XSBwY2kgMDAwMDpjMjowMC4xOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAgMC4zNTEz
NzRdIHBjaSAwMDAwOjAwOjA4LjI6IFBDSSBicmlkZ2UgdG8gW2J1cyBjMl0KWyAgICAwLjM1MTM4
MF0gcGNpIDAwMDA6MDA6MDguMjogICBicmlkZ2Ugd2luZG93IFttZW0gMHg5MDkwMDAwMC0weDkw
OWZmZmZmXQpbICAgIDAuMzUxMzg1XSBwY2kgMDAwMDowMDowOC4yOiAgIGJyaWRnZSB3aW5kb3cg
W21lbSAweDg4MTA4MDAwMDAtMHg4ODEwOGZmZmZmIDY0Yml0IHByZWZdClsgICAgMC4zNTE0NjVd
IHBjaSAwMDAwOmMzOjAwLjA6IFsxMDIyOjE0ZWNdIHR5cGUgMDAgY2xhc3MgMHgxMzAwMDAKWyAg
ICAwLjM1MTQ5OF0gcGNpIDAwMDA6YzM6MDAuMDogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAg
IDAuMzUxODU2XSBwY2kgMDAwMDpjMzowMC4zOiBbMTAyMjoxNWMwXSB0eXBlIDAwIGNsYXNzIDB4
MGMwMzMwClsgICAgMC4zNTE4NzFdIHBjaSAwMDAwOmMzOjAwLjM6IHJlZyAweDEwOiBbbWVtIDB4
OTA2MDAwMDAtMHg5MDZmZmZmZiA2NGJpdF0KWyAgICAwLjM1MTkwMV0gcGNpIDAwMDA6YzM6MDAu
MzogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAgIDAuMzUxOTM2XSBwY2kgMDAwMDpjMzowMC4z
OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDAuMzUyMjY4XSBwY2kg
MDAwMDpjMzowMC40OiBbMTAyMjoxNWMxXSB0eXBlIDAwIGNsYXNzIDB4MGMwMzMwClsgICAgMC4z
NTIyODNdIHBjaSAwMDAwOmMzOjAwLjQ6IHJlZyAweDEwOiBbbWVtIDB4OTA3MDAwMDAtMHg5MDdm
ZmZmZiA2NGJpdF0KWyAgICAwLjM1MjMxM10gcGNpIDAwMDA6YzM6MDAuNDogZW5hYmxpbmcgRXh0
ZW5kZWQgVGFncwpbICAgIDAuMzUyMzQ4XSBwY2kgMDAwMDpjMzowMC40OiBQTUUjIHN1cHBvcnRl
ZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDAuMzUyNjc4XSBwY2kgMDAwMDpjMzowMC41OiBb
MTAyMjoxNjY4XSB0eXBlIDAwIGNsYXNzIDB4MGMwMzQwClsgICAgMC4zNTI2OTZdIHBjaSAwMDAw
OmMzOjAwLjU6IHJlZyAweDEwOiBbbWVtIDB4OTA4MDAwMDAtMHg5MDg3ZmZmZiA2NGJpdF0KWyAg
ICAwLjM1MjczMV0gcGNpIDAwMDA6YzM6MDAuNTogTWF4IFBheWxvYWQgU2l6ZSBzZXQgdG8gMTI4
ICh3YXMgMjU2LCBtYXggMjU2KQpbICAgIDAuMzUyNzM3XSBwY2kgMDAwMDpjMzowMC41OiBlbmFi
bGluZyBFeHRlbmRlZCBUYWdzClsgICAgMC4zNTI3NzFdIHBjaSAwMDAwOmMzOjAwLjU6IFBNRSMg
c3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMC4zNTI4NThdIHBjaSAwMDAwOmMz
OjAwLjY6IFsxMDIyOjE2NjldIHR5cGUgMDAgY2xhc3MgMHgwYzAzNDAKWyAgICAwLjM1Mjg3Nl0g
cGNpIDAwMDA6YzM6MDAuNjogcmVnIDB4MTA6IFttZW0gMHg5MDg4MDAwMC0weDkwOGZmZmZmIDY0
Yml0XQpbICAgIDAuMzUyOTExXSBwY2kgMDAwMDpjMzowMC42OiBNYXggUGF5bG9hZCBTaXplIHNl
dCB0byAxMjggKHdhcyAyNTYsIG1heCAyNTYpClsgICAgMC4zNTI5MTZdIHBjaSAwMDAwOmMzOjAw
LjY6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAwLjM1Mjk1Ml0gcGNpIDAwMDA6YzM6MDAu
NjogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAwLjM1MzA1M10gcGNp
IDAwMDA6MDA6MDguMzogUENJIGJyaWRnZSB0byBbYnVzIGMzXQpbICAgIDAuMzUzMDYwXSBwY2kg
MDAwMDowMDowOC4zOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDkwNjAwMDAwLTB4OTA4ZmZmZmZd
ClsgICAgMC4zNTMxMjddIHBjaV9idXMgMDAwMDowMDogb24gTlVNQSBub2RlIDAKWyAgICAwLjM2
MTQxNV0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktBIGNvbmZpZ3VyZWQgZm9yIElSUSAw
ClsgICAgMC4zNjE0MjBdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LQSBkaXNhYmxlZApb
ICAgIDAuMzYxNjQ2XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0IgY29uZmlndXJlZCBm
b3IgSVJRIDAKWyAgICAwLjM2MTY0OV0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktCIGRp
c2FibGVkClsgICAgMC4zNjE4NTldIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LQyBjb25m
aWd1cmVkIGZvciBJUlEgMApbICAgIDAuMzYxODYyXSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5r
IExOS0MgZGlzYWJsZWQKWyAgICAwLjM2MjA4OF0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBM
TktEIGNvbmZpZ3VyZWQgZm9yIElSUSAwClsgICAgMC4zNjIwOTFdIEFDUEk6IFBDSTogSW50ZXJy
dXB0IGxpbmsgTE5LRCBkaXNhYmxlZApbICAgIDAuMzYyMzExXSBBQ1BJOiBQQ0k6IEludGVycnVw
dCBsaW5rIExOS0UgY29uZmlndXJlZCBmb3IgSVJRIDAKWyAgICAwLjM2MjMxNF0gQUNQSTogUENJ
OiBJbnRlcnJ1cHQgbGluayBMTktFIGRpc2FibGVkClsgICAgMC4zNjI0ODddIEFDUEk6IFBDSTog
SW50ZXJydXB0IGxpbmsgTE5LRiBjb25maWd1cmVkIGZvciBJUlEgMApbICAgIDAuMzYyNDkwXSBB
Q1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0YgZGlzYWJsZWQKWyAgICAwLjM2MjY2Ml0gQUNQ
STogUENJOiBJbnRlcnJ1cHQgbGluayBMTktHIGNvbmZpZ3VyZWQgZm9yIElSUSAwClsgICAgMC4z
NjI2NjVdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LRyBkaXNhYmxlZApbICAgIDAuMzYy
ODM3XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0ggY29uZmlndXJlZCBmb3IgSVJRIDAK
WyAgICAwLjM2Mjg0MF0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktIIGRpc2FibGVkClsg
ICAgMC4zNjc2NDhdIExvdy1wb3dlciBTMCBpZGxlIHVzZWQgYnkgZGVmYXVsdCBmb3Igc3lzdGVt
IHN1c3BlbmQKWyAgICAwLjM2Nzc2M10gQUNQSTogRUM6IGludGVycnVwdCB1bmJsb2NrZWQKWyAg
ICAwLjM2Nzc2Nl0gQUNQSTogRUM6IGV2ZW50IHVuYmxvY2tlZApbICAgIDAuMzY3Nzc0XSBBQ1BJ
OiBFQzogRUNfQ01EL0VDX1NDPTB4NjYsIEVDX0RBVEE9MHg2MgpbICAgIDAuMzY3Nzc4XSBBQ1BJ
OiBFQzogR1BFPTB4YgpbICAgIDAuMzY3NzgxXSBBQ1BJOiBcX1NCXy5QQ0kwLkxQQzAuRUMwXzog
Qm9vdCBEU0RUIEVDIGluaXRpYWxpemF0aW9uIGNvbXBsZXRlClsgICAgMC4zNjc3ODZdIEFDUEk6
IFxfU0JfLlBDSTAuTFBDMC5FQzBfOiBFQzogVXNlZCB0byBoYW5kbGUgdHJhbnNhY3Rpb25zIGFu
ZCBldmVudHMKWyAgICAwLjM2Nzk4Nl0gaW9tbXU6IERlZmF1bHQgZG9tYWluIHR5cGU6IFRyYW5z
bGF0ZWQKWyAgICAwLjM2Nzk4Nl0gaW9tbXU6IERNQSBkb21haW4gVExCIGludmFsaWRhdGlvbiBw
b2xpY3k6IGxhenkgbW9kZQpbICAgIDAuMzY4MDE5XSBTQ1NJIHN1YnN5c3RlbSBpbml0aWFsaXpl
ZApbICAgIDAuMzY4MDE5XSBsaWJhdGEgdmVyc2lvbiAzLjAwIGxvYWRlZC4KWyAgICAwLjM2ODAx
OV0gQUNQSTogYnVzIHR5cGUgVVNCIHJlZ2lzdGVyZWQKWyAgICAwLjM2ODAxOV0gdXNiY29yZTog
cmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciB1c2JmcwpbICAgIDAuMzY4MDE5XSB1c2Jj
b3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGh1YgpbICAgIDAuMzY4MDE5XSB1
c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBkZXZpY2UgZHJpdmVyIHVzYgpbICAgIDAuMzc1NTQ5XSBp
MmNfZGVzaWdud2FyZSBBTURJMDAxMDowMDogdXNpbmcgQUNQSSAnXF9TQi5JMkNBJyBmb3IgJ3Nj
bCcgR1BJTyBsb29rdXAKWyAgICAwLjM3NTU1M10gYWNwaSBBTURJMDAxMDowMDogR1BJTzogbG9v
a2luZyB1cCBzY2wtZ3Bpb3MKWyAgICAwLjM3NTU1NF0gYWNwaSBBTURJMDAxMDowMDogR1BJTzog
bG9va2luZyB1cCBzY2wtZ3BpbwpbICAgIDAuMzc1NTU2XSBpMmNfZGVzaWdud2FyZSBBTURJMDAx
MDowMDogdXNpbmcgbG9va3VwIHRhYmxlcyBmb3IgR1BJTyBsb29rdXAKWyAgICAwLjM3NTU1N10g
aTJjX2Rlc2lnbndhcmUgQU1ESTAwMTA6MDA6IE5vIEdQSU8gY29uc3VtZXIgc2NsIGZvdW5kClsg
ICAgMC4zODM4NTRdIGkyY19kZXNpZ253YXJlIEFNREkwMDEwOjAzOiB1c2luZyBBQ1BJICdcX1NC
LkkyQ0QnIGZvciAnc2NsJyBHUElPIGxvb2t1cApbICAgIDAuMzgzODU3XSBhY3BpIEFNREkwMDEw
OjAzOiBHUElPOiBsb29raW5nIHVwIHNjbC1ncGlvcwpbICAgIDAuMzgzODU4XSBhY3BpIEFNREkw
MDEwOjAzOiBHUElPOiBsb29raW5nIHVwIHNjbC1ncGlvClsgICAgMC4zODM4NTldIGkyY19kZXNp
Z253YXJlIEFNREkwMDEwOjAzOiB1c2luZyBsb29rdXAgdGFibGVzIGZvciBHUElPIGxvb2t1cApb
ICAgIDAuMzgzODYwXSBpMmNfZGVzaWdud2FyZSBBTURJMDAxMDowMzogTm8gR1BJTyBjb25zdW1l
ciBzY2wgZm91bmQKWyAgICAwLjM4NDgxOV0gcHBzX2NvcmU6IExpbnV4UFBTIEFQSSB2ZXIuIDEg
cmVnaXN0ZXJlZApbICAgIDAuMzg0ODIzXSBwcHNfY29yZTogU29mdHdhcmUgdmVyLiA1LjMuNiAt
IENvcHlyaWdodCAyMDA1LTIwMDcgUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+
ClsgICAgMC4zODQ4MjldIFBUUCBjbG9jayBzdXBwb3J0IHJlZ2lzdGVyZWQKWyAgICAwLjM4NDk2
Ml0gRURBQyBNQzogVmVyOiAzLjAuMApbICAgIDAuMzg1MjAxXSBlZml2YXJzOiBSZWdpc3RlcmVk
IGVmaXZhcnMgb3BlcmF0aW9ucwpbICAgIDAuMzg1MjAxXSBOZXRMYWJlbDogSW5pdGlhbGl6aW5n
ClsgICAgMC4zODUyMDFdIE5ldExhYmVsOiAgZG9tYWluIGhhc2ggc2l6ZSA9IDEyOApbICAgIDAu
Mzg1MjAxXSBOZXRMYWJlbDogIHByb3RvY29scyA9IFVOTEFCRUxFRCBDSVBTT3Y0IENBTElQU08K
WyAgICAwLjM4NTIwMV0gTmV0TGFiZWw6ICB1bmxhYmVsZWQgdHJhZmZpYyBhbGxvd2VkIGJ5IGRl
ZmF1bHQKWyAgICAwLjM4NTIwMV0gbWN0cDogbWFuYWdlbWVudCBjb21wb25lbnQgdHJhbnNwb3J0
IHByb3RvY29sIGNvcmUKWyAgICAwLjM4NTIwMV0gTkVUOiBSZWdpc3RlcmVkIFBGX01DVFAgcHJv
dG9jb2wgZmFtaWx5ClsgICAgMC4zODUyMDFdIFBDSTogVXNpbmcgQUNQSSBmb3IgSVJRIHJvdXRp
bmcKWyAgICAwLjM4NTIwMV0gUENJOiBwY2lfY2FjaGVfbGluZV9zaXplIHNldCB0byA2NCBieXRl
cwpbICAgIDAuMzg1MjMyXSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDAwMDlmMDAw
LTB4MDAwOWZmZmZdClsgICAgMC4zODUyMzNdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVt
IDB4MDliMDAwMDAtMHgwYmZmZmZmZl0KWyAgICAwLjM4NTIzNF0gZTgyMDogcmVzZXJ2ZSBSQU0g
YnVmZmVyIFttZW0gMHgwOWYwMDAwMC0weDBiZmZmZmZmXQpbICAgIDAuMzg1MjM1XSBlODIwOiBy
ZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDQyMzYwMDAwLTB4NDNmZmZmZmZdClsgICAgMC4zODUy
MzZdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4NDQ1NjkwMDAtMHg0N2ZmZmZmZl0K
WyAgICAwLjM4NTIzNl0gZTgyMDogcmVzZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHg0NDU2ZjAwMC0w
eDQ3ZmZmZmZmXQpbICAgIDAuMzg1MjM3XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAw
eDQ0NTc1MDE4LTB4NDdmZmZmZmZdClsgICAgMC4zODUyMzhdIGU4MjA6IHJlc2VydmUgUkFNIGJ1
ZmZlciBbbWVtIDB4NGI4MjIwMDAtMHg0YmZmZmZmZl0KWyAgICAwLjM4NTIzOV0gZTgyMDogcmVz
ZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHg0ZDE2YzAwMC0weDRmZmZmZmZmXQpbICAgIDAuMzg1MjM5
XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDUwNzdmMDAwLTB4NTNmZmZmZmZdClsg
ICAgMC4zODUyNDBdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4NWIwMDAwMDAtMHg1
YmZmZmZmZl0KWyAgICAwLjM4NTI0MV0gZTgyMDogcmVzZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHgx
MDdlMzAwMDAwLTB4MTA3ZmZmZmZmZl0KWyAgICAwLjM4NTI3Nl0gcGNpIDAwMDA6YzE6MDAuMDog
dmdhYXJiOiBzZXR0aW5nIGFzIGJvb3QgVkdBIGRldmljZQpbICAgIDAuMzg1Mjc2XSBwY2kgMDAw
MDpjMTowMC4wOiB2Z2FhcmI6IGJyaWRnZSBjb250cm9sIHBvc3NpYmxlClsgICAgMC4zODUyNzZd
IHBjaSAwMDAwOmMxOjAwLjA6IHZnYWFyYjogVkdBIGRldmljZSBhZGRlZDogZGVjb2Rlcz1pbytt
ZW0sb3ducz1ub25lLGxvY2tzPW5vbmUKWyAgICAwLjM4NTI3Nl0gdmdhYXJiOiBsb2FkZWQKWyAg
ICAwLjM4NTI3Nl0gaHBldDA6IGF0IE1NSU8gMHhmZWQwMDAwMCwgSVJRcyAyLCA4LCAwClsgICAg
MC4zODUyNzZdIGhwZXQwOiAzIGNvbXBhcmF0b3JzLCAzMi1iaXQgMTQuMzE4MTgwIE1IeiBjb3Vu
dGVyClsgICAgMC4zODc5NDZdIGNsb2Nrc291cmNlOiBTd2l0Y2hlZCB0byBjbG9ja3NvdXJjZSB0
c2MtZWFybHkKWyAgICAwLjM5MDgxNV0gVkZTOiBEaXNrIHF1b3RhcyBkcXVvdF82LjYuMApbICAg
IDAuMzkwODI5XSBWRlM6IERxdW90LWNhY2hlIGhhc2ggdGFibGUgZW50cmllczogNTEyIChvcmRl
ciAwLCA0MDk2IGJ5dGVzKQpbICAgIDAuMzkwOTAzXSBwbnA6IFBuUCBBQ1BJIGluaXQKWyAgICAw
LjM5MTEwNV0gc3lzdGVtIDAwOjAwOiBbbWVtIDB4ZmVjMDAwMDAtMHhmZWMwMWZmZl0gY291bGQg
bm90IGJlIHJlc2VydmVkClsgICAgMC4zOTExMTFdIHN5c3RlbSAwMDowMDogW21lbSAweGZlZTAw
MDAwLTB4ZmVlMDBmZmZdIGhhcyBiZWVuIHJlc2VydmVkClsgICAgMC4zOTU2ODhdIHN5c3RlbSAw
MDowMjogW2lvICAweDA0MDAtMHgwNGNmXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDAuMzk1Njkz
XSBzeXN0ZW0gMDA6MDI6IFtpbyAgMHgwNGQwLTB4MDRkMV0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAg
ICAwLjM5NTY5Nl0gc3lzdGVtIDAwOjAyOiBbaW8gIDB4MDRkNl0gaGFzIGJlZW4gcmVzZXJ2ZWQK
WyAgICAwLjM5NTY5OV0gc3lzdGVtIDAwOjAyOiBbaW8gIDB4MGMwMC0weDBjMDFdIGhhcyBiZWVu
IHJlc2VydmVkClsgICAgMC4zOTU3MDJdIHN5c3RlbSAwMDowMjogW2lvICAweDBjMTRdIGhhcyBi
ZWVuIHJlc2VydmVkClsgICAgMC4zOTU3MDVdIHN5c3RlbSAwMDowMjogW2lvICAweDBjNTAtMHgw
YzUyXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDAuMzk1NzA4XSBzeXN0ZW0gMDA6MDI6IFtpbyAg
MHgwYzZjXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDAuMzk1NzExXSBzeXN0ZW0gMDA6MDI6IFtp
byAgMHgwYzZmXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDAuMzk1NzE0XSBzeXN0ZW0gMDA6MDI6
IFtpbyAgMHgwY2QwLTB4MGNkYl0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAwLjM5NTc3OF0gc3lz
dGVtIDAwOjAzOiBbbWVtIDB4MDAwZTAwMDAtMHgwMDBmZmZmZl0gY291bGQgbm90IGJlIHJlc2Vy
dmVkClsgICAgMC4zOTU3ODJdIHN5c3RlbSAwMDowMzogW21lbSAweGZlMDAwMDAwLTB4ZmZmZmZm
ZmZdIGNvdWxkIG5vdCBiZSByZXNlcnZlZApbICAgIDAuMzk3MjU4XSBwbnA6IFBuUCBBQ1BJOiBm
b3VuZCA1IGRldmljZXMKWyAgICAwLjQwMzEzNV0gY2xvY2tzb3VyY2U6IGFjcGlfcG06IG1hc2s6
IDB4ZmZmZmZmIG1heF9jeWNsZXM6IDB4ZmZmZmZmLCBtYXhfaWRsZV9uczogMjA4NTcwMTAyNCBu
cwpbICAgIDAuNDAzMjgwXSBORVQ6IFJlZ2lzdGVyZWQgUEZfSU5FVCBwcm90b2NvbCBmYW1pbHkK
WyAgICAwLjQwMzM5M10gSVAgaWRlbnRzIGhhc2ggdGFibGUgZW50cmllczogMjYyMTQ0IChvcmRl
cjogOSwgMjA5NzE1MiBieXRlcywgbGluZWFyKQpbICAgIDAuNDA1Mzc2XSB0Y3BfbGlzdGVuX3Bv
cnRhZGRyX2hhc2ggaGFzaCB0YWJsZSBlbnRyaWVzOiAzMjc2OCAob3JkZXI6IDcsIDUyNDI4OCBi
eXRlcywgbGluZWFyKQpbICAgIDAuNDA1NDAzXSBUYWJsZS1wZXJ0dXJiIGhhc2ggdGFibGUgZW50
cmllczogNjU1MzYgKG9yZGVyOiA2LCAyNjIxNDQgYnl0ZXMsIGxpbmVhcikKWyAgICAwLjQwNTQx
Nl0gVENQIGVzdGFibGlzaGVkIGhhc2ggdGFibGUgZW50cmllczogNTI0Mjg4IChvcmRlcjogMTAs
IDQxOTQzMDQgYnl0ZXMsIGxpbmVhcikKWyAgICAwLjQwNTYxNl0gVENQIGJpbmQgaGFzaCB0YWJs
ZSBlbnRyaWVzOiA2NTUzNiAob3JkZXI6IDksIDIwOTcxNTIgYnl0ZXMsIGxpbmVhcikKWyAgICAw
LjQwNTcxOF0gVENQOiBIYXNoIHRhYmxlcyBjb25maWd1cmVkIChlc3RhYmxpc2hlZCA1MjQyODgg
YmluZCA2NTUzNikKWyAgICAwLjQwNTg2NF0gTVBUQ1AgdG9rZW4gaGFzaCB0YWJsZSBlbnRyaWVz
OiA2NTUzNiAob3JkZXI6IDgsIDE1NzI4NjQgYnl0ZXMsIGxpbmVhcikKWyAgICAwLjQwNTkxMF0g
VURQIGhhc2ggdGFibGUgZW50cmllczogMzI3NjggKG9yZGVyOiA4LCAxMDQ4NTc2IGJ5dGVzLCBs
aW5lYXIpClsgICAgMC40MDU5NjJdIFVEUC1MaXRlIGhhc2ggdGFibGUgZW50cmllczogMzI3Njgg
KG9yZGVyOiA4LCAxMDQ4NTc2IGJ5dGVzLCBsaW5lYXIpClsgICAgMC40MDYwNzhdIE5FVDogUmVn
aXN0ZXJlZCBQRl9VTklYL1BGX0xPQ0FMIHByb3RvY29sIGZhbWlseQpbICAgIDAuNDA2MDg1XSBO
RVQ6IFJlZ2lzdGVyZWQgUEZfWERQIHByb3RvY29sIGZhbWlseQpbICAgIDAuNDA2MDk1XSBwY2kg
MDAwMDowMDowMi4yOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDFdClsgICAgMC40MDYxMDZdIHBjaSAw
MDAwOjAwOjAyLjI6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4OTBiMDAwMDAtMHg5MGJmZmZmZl0K
WyAgICAwLjQwNjExMF0gcGNpIDAwMDA6MDA6MDIuMjogICBicmlkZ2Ugd2luZG93IFttZW0gMHg4
ODEwOTAwMDAwLTB4ODgxMDlmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDAuNDA2MTE3XSBwY2kgMDAw
MDowMDowMi40OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDJdClsgICAgMC40MDYxMjJdIHBjaSAwMDAw
OjAwOjAyLjQ6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4OTBhMDAwMDAtMHg5MGFmZmZmZl0KWyAg
ICAwLjQwNjEyOV0gcGNpIDAwMDA6MDA6MDMuMTogUENJIGJyaWRnZSB0byBbYnVzIDAzLTYxXQpb
ICAgIDAuNDA2MTMzXSBwY2kgMDAwMDowMDowMy4xOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDYw
MDAtMHg5ZmZmXQpbICAgIDAuNDA2MTQ0XSBwY2kgMDAwMDowMDowMy4xOiAgIGJyaWRnZSB3aW5k
b3cgW21lbSAweDc4MDAwMDAwLTB4OGZmZmZmZmZdClsgICAgMC40MDYxNTZdIHBjaSAwMDAwOjAw
OjAzLjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4NzgwMDAwMDAwMC0weDg3ZmZmZmZmZmYgNjRi
aXQgcHJlZl0KWyAgICAwLjQwNjE3MV0gcGNpIDAwMDA6MDA6MDQuMTogUENJIGJyaWRnZSB0byBb
YnVzIDYyLWMwXQpbICAgIDAuNDA2MTc1XSBwY2kgMDAwMDowMDowNC4xOiAgIGJyaWRnZSB3aW5k
b3cgW2lvICAweDIwMDAtMHg1ZmZmXQpbICAgIDAuNDA2MTg1XSBwY2kgMDAwMDowMDowNC4xOiAg
IGJyaWRnZSB3aW5kb3cgW21lbSAweDYwMDAwMDAwLTB4NzdmZmZmZmZdClsgICAgMC40MDYxOThd
IHBjaSAwMDAwOjAwOjA0LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4NjgwMDAwMDAwMC0weDc3
ZmZmZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAwLjQwNjIxNF0gcGNpIDAwMDA6MDA6MDguMTogUENJ
IGJyaWRnZSB0byBbYnVzIGMxXQpbICAgIDAuNDA2MjE3XSBwY2kgMDAwMDowMDowOC4xOiAgIGJy
aWRnZSB3aW5kb3cgW2lvICAweDEwMDAtMHgxZmZmXQpbICAgIDAuNDA2MjIyXSBwY2kgMDAwMDow
MDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDkwMDAwMDAwLTB4OTA1ZmZmZmZdClsgICAg
MC40MDYyMjZdIHBjaSAwMDAwOjAwOjA4LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ODgwMDAw
MDAwMC0weDg4MTA3ZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAwLjQwNjIzMl0gcGNpIDAwMDA6MDA6
MDguMjogUENJIGJyaWRnZSB0byBbYnVzIGMyXQpbICAgIDAuNDA2MjM2XSBwY2kgMDAwMDowMDow
OC4yOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDkwOTAwMDAwLTB4OTA5ZmZmZmZdClsgICAgMC40
MDYyNDFdIHBjaSAwMDAwOjAwOjA4LjI6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ODgxMDgwMDAw
MC0weDg4MTA4ZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAwLjQwNjI0Nl0gcGNpIDAwMDA6MDA6MDgu
MzogUENJIGJyaWRnZSB0byBbYnVzIGMzXQpbICAgIDAuNDA2MjUwXSBwY2kgMDAwMDowMDowOC4z
OiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDkwNjAwMDAwLTB4OTA4ZmZmZmZdClsgICAgMC40MDYy
NTddIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgNCBbaW8gIDB4MDAwMC0weDBjZjcgd2luZG93
XQpbICAgIDAuNDA2MjYwXSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDUgW2lvICAweDBkMDAt
MHhmZmZmIHdpbmRvd10KWyAgICAwLjQwNjI2NF0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA2
IFttZW0gMHgwMDBhMDAwMC0weDAwMGJmZmZmIHdpbmRvd10KWyAgICAwLjQwNjI2N10gcGNpX2J1
cyAwMDAwOjAwOiByZXNvdXJjZSA3IFttZW0gMHgwMDBjMDAwMC0weDAwMGNmZmZmIHdpbmRvd10K
WyAgICAwLjQwNjI3MF0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA4IFttZW0gMHgwMDBkMDAw
MC0weDAwMGVmZmZmIHdpbmRvd10KWyAgICAwLjQwNjI3NF0gcGNpX2J1cyAwMDAwOjAwOiByZXNv
dXJjZSA5IFttZW0gMHg2MDAwMDAwMC0weDkwYmZmZmZmIHdpbmRvd10KWyAgICAwLjQwNjI3N10g
cGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSAxMCBbbWVtIDB4ZjAwMDAwMDAtMHhmZWMwMDAwMCB3
aW5kb3ddClsgICAgMC40MDYyODFdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMTEgW21lbSAw
eGZlZDQ1MDAwLTB4ZmVkODE0ZmYgd2luZG93XQpbICAgIDAuNDA2Mjg0XSBwY2lfYnVzIDAwMDA6
MDA6IHJlc291cmNlIDEyIFttZW0gMHhmZWQ4MTkwMC0weGZlZDgxZmZmIHdpbmRvd10KWyAgICAw
LjQwNjI4N10gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSAxMyBbbWVtIDB4ZmVkYzAwMDAtMHhm
ZWRjMGZmZiB3aW5kb3ddClsgICAgMC40MDYyOTFdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2Ug
MTQgW21lbSAweGZlZGM2MDAwLTB4ZmVkYzZmZmYgd2luZG93XQpbICAgIDAuNDA2Mjk0XSBwY2lf
YnVzIDAwMDA6MDA6IHJlc291cmNlIDE1IFttZW0gMHgxMGMwMjAwMDAwLTB4ODkxZmZmZmZmZiB3
aW5kb3ddClsgICAgMC40MDYyOThdIHBjaV9idXMgMDAwMDowMTogcmVzb3VyY2UgMSBbbWVtIDB4
OTBiMDAwMDAtMHg5MGJmZmZmZl0KWyAgICAwLjQwNjMwMV0gcGNpX2J1cyAwMDAwOjAxOiByZXNv
dXJjZSAyIFttZW0gMHg4ODEwOTAwMDAwLTB4ODgxMDlmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDAu
NDA2MzA1XSBwY2lfYnVzIDAwMDA6MDI6IHJlc291cmNlIDEgW21lbSAweDkwYTAwMDAwLTB4OTBh
ZmZmZmZdClsgICAgMC40MDYzMDhdIHBjaV9idXMgMDAwMDowMzogcmVzb3VyY2UgMCBbaW8gIDB4
NjAwMC0weDlmZmZdClsgICAgMC40MDYzMTFdIHBjaV9idXMgMDAwMDowMzogcmVzb3VyY2UgMSBb
bWVtIDB4NzgwMDAwMDAtMHg4ZmZmZmZmZl0KWyAgICAwLjQwNjMxNF0gcGNpX2J1cyAwMDAwOjAz
OiByZXNvdXJjZSAyIFttZW0gMHg3ODAwMDAwMDAwLTB4ODdmZmZmZmZmZiA2NGJpdCBwcmVmXQpb
ICAgIDAuNDA2MzE3XSBwY2lfYnVzIDAwMDA6NjI6IHJlc291cmNlIDAgW2lvICAweDIwMDAtMHg1
ZmZmXQpbICAgIDAuNDA2MzIwXSBwY2lfYnVzIDAwMDA6NjI6IHJlc291cmNlIDEgW21lbSAweDYw
MDAwMDAwLTB4NzdmZmZmZmZdClsgICAgMC40MDYzMjNdIHBjaV9idXMgMDAwMDo2MjogcmVzb3Vy
Y2UgMiBbbWVtIDB4NjgwMDAwMDAwMC0weDc3ZmZmZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAwLjQw
NjMyN10gcGNpX2J1cyAwMDAwOmMxOiByZXNvdXJjZSAwIFtpbyAgMHgxMDAwLTB4MWZmZl0KWyAg
ICAwLjQwNjMzMF0gcGNpX2J1cyAwMDAwOmMxOiByZXNvdXJjZSAxIFttZW0gMHg5MDAwMDAwMC0w
eDkwNWZmZmZmXQpbICAgIDAuNDA2MzMzXSBwY2lfYnVzIDAwMDA6YzE6IHJlc291cmNlIDIgW21l
bSAweDg4MDAwMDAwMDAtMHg4ODEwN2ZmZmZmIDY0Yml0IHByZWZdClsgICAgMC40MDYzMzZdIHBj
aV9idXMgMDAwMDpjMjogcmVzb3VyY2UgMSBbbWVtIDB4OTA5MDAwMDAtMHg5MDlmZmZmZl0KWyAg
ICAwLjQwNjMzOV0gcGNpX2J1cyAwMDAwOmMyOiByZXNvdXJjZSAyIFttZW0gMHg4ODEwODAwMDAw
LTB4ODgxMDhmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDAuNDA2MzQzXSBwY2lfYnVzIDAwMDA6YzM6
IHJlc291cmNlIDEgW21lbSAweDkwNjAwMDAwLTB4OTA4ZmZmZmZdClsgICAgMC40MDY2NzVdIHBj
aSAwMDAwOmMxOjAwLjE6IEQwIHBvd2VyIHN0YXRlIGRlcGVuZHMgb24gMDAwMDpjMTowMC4wClsg
ICAgMC40MDcyMjhdIFBDSTogQ0xTIDY0IGJ5dGVzLCBkZWZhdWx0IDY0ClsgICAgMC40MDcyMzhd
IHBjaSAwMDAwOjAwOjAwLjI6IEFNRC1WaTogSU9NTVUgcGVyZm9ybWFuY2UgY291bnRlcnMgc3Vw
cG9ydGVkClsgICAgMC40MDcyNjZdIFRyeWluZyB0byB1bnBhY2sgcm9vdGZzIGltYWdlIGFzIGlu
aXRyYW1mcy4uLgpbICAgIDAuNDA3Mjg2XSBwY2kgMDAwMDowMDowMS4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMApbICAgIDAuNDA3MzIwXSBwY2kgMDAwMDowMDowMi4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMQpbICAgIDAuNDA3MzM0XSBwY2kgMDAwMDowMDowMi4yOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMQpbICAgIDAuNDA3MzQ5XSBwY2kgMDAwMDowMDowMi40OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMQpbICAgIDAuNDA3Mzc4XSBwY2kgMDAwMDowMDowMy4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMgpbICAgIDAuNDA3MzkzXSBwY2kgMDAwMDowMDowMy4xOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMgpbICAgIDAuNDA3NDIyXSBwY2kgMDAwMDowMDowNC4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMwpbICAgIDAuNDA3NDM4XSBwY2kgMDAwMDowMDowNC4xOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMwpbICAgIDAuNDA3NDc5XSBwY2kgMDAwMDowMDowOC4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3NDk2XSBwY2kgMDAwMDowMDowOC4xOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3NTExXSBwY2kgMDAwMDowMDowOC4yOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3NTI2XSBwY2kgMDAwMDowMDowOC4zOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3NTU0XSBwY2kgMDAwMDowMDoxNC4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNQpbICAgIDAuNDA3NTcwXSBwY2kgMDAwMDowMDoxNC4zOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNQpbICAgIDAuNDA3NjM2XSBwY2kgMDAwMDowMDoxOC4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNgpbICAgIDAuNDA3NjUzXSBwY2kgMDAwMDowMDoxOC4xOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNgpbICAgIDAuNDA3NjY5XSBwY2kgMDAwMDowMDoxOC4yOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNgpbICAgIDAuNDA3Njg2XSBwY2kgMDAwMDowMDoxOC4zOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNgpbICAgIDAuNDA3NzA0XSBwY2kgMDAwMDowMDoxOC40OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNgpbICAgIDAuNDA3NzIxXSBwY2kgMDAwMDowMDoxOC41OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNgpbICAgIDAuNDA3NzM3XSBwY2kgMDAwMDowMDoxOC42OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNgpbICAgIDAuNDA3NzUzXSBwY2kgMDAwMDowMDoxOC43OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNgpbICAgIDAuNDA3NzYxXSBwY2kgMDAwMDowMTowMC4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMQpbICAgIDAuNDA3NzcwXSBwY2kgMDAwMDowMjowMC4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgMQpbICAgIDAuNDA3Nzc3XSBwY2kgMDAwMDpjMTowMC4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3Nzg0XSBwY2kgMDAwMDpjMTowMC4xOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3NzkyXSBwY2kgMDAwMDpjMTowMC4yOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3Nzk5XSBwY2kgMDAwMDpjMTowMC4zOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODA2XSBwY2kgMDAwMDpjMTowMC40OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODE0XSBwY2kgMDAwMDpjMTowMC41OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODIxXSBwY2kgMDAwMDpjMTowMC42OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODMwXSBwY2kgMDAwMDpjMjowMC4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODM4XSBwY2kgMDAwMDpjMjowMC4xOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODQ2XSBwY2kgMDAwMDpjMzowMC4wOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODUzXSBwY2kgMDAwMDpjMzowMC4zOiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODYxXSBwY2kgMDAwMDpjMzowMC40OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODY4XSBwY2kgMDAwMDpjMzowMC41OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA3ODc2XSBwY2kgMDAwMDpjMzowMC42OiBBZGRpbmcgdG8gaW9t
bXUgZ3JvdXAgNApbICAgIDAuNDA5NDc1XSBwY2kgMDAwMDowMDowMC4yOiBjYW4ndCBkZXJpdmUg
cm91dGluZyBmb3IgUENJIElOVCBBClsgICAgMC40MDk0ODFdIHBjaSAwMDAwOjAwOjAwLjI6IFBD
SSBJTlQgQTogbm90IGNvbm5lY3RlZApbICAgIDAuNDA5NjA3XSBwY2kgMDAwMDowMDowMC4yOiBB
TUQtVmk6IEZvdW5kIElPTU1VIGNhcCAweDQwClsgICAgMC40MDk2MTJdIEFNRC1WaTogRXh0ZW5k
ZWQgZmVhdHVyZXMgKDB4MjQ2NTc3ZWZhMjI1NGFmYSwgMHgwKTogUFBSIE5YIEdUIFs1XSBJQSBH
QSBQQyBHQV92QVBJQwpbICAgIDAuNDA5NjI0XSBBTUQtVmk6IEludGVycnVwdCByZW1hcHBpbmcg
ZW5hYmxlZApbICAgIDAuNDA5NzM3XSBBTUQtVmk6IFZpcnR1YWwgQVBJQyBlbmFibGVkClsgICAg
MC40MDk3OTBdIFBDSS1ETUE6IFVzaW5nIHNvZnR3YXJlIGJvdW5jZSBidWZmZXJpbmcgZm9yIElP
IChTV0lPVExCKQpbICAgIDAuNDA5Nzk0XSBzb2Z0d2FyZSBJTyBUTEI6IG1hcHBlZCBbbWVtIDB4
MDAwMDAwMDA0NmM1NjAwMC0weDAwMDAwMDAwNGFjNTYwMDBdICg2NE1CKQpbICAgIDAuNDA5ODQw
XSBMVlQgb2Zmc2V0IDAgYXNzaWduZWQgZm9yIHZlY3RvciAweDQwMApbICAgIDAuNDEwMDQxXSBw
ZXJmOiBBTUQgSUJTIGRldGVjdGVkICgweDAwMDAwYmZmKQpbICAgIDAuNDEwMDU1XSBhbWRfdW5j
b3JlOiA0ICBhbWRfZGYgY291bnRlcnMgZGV0ZWN0ZWQKWyAgICAwLjQxMDA2N10gYW1kX3VuY29y
ZTogNiAgYW1kX2wzIGNvdW50ZXJzIGRldGVjdGVkClsgICAgMC40MTQxNTddIHBlcmYvYW1kX2lv
bW11OiBEZXRlY3RlZCBBTUQgSU9NTVUgIzAgKDIgYmFua3MsIDQgY291bnRlcnMvYmFuaykuClsg
ICAgMC40MTYyNThdIEluaXRpYWxpc2Ugc3lzdGVtIHRydXN0ZWQga2V5cmluZ3MKWyAgICAwLjQx
NjI2OV0gS2V5IHR5cGUgYmxhY2tsaXN0IHJlZ2lzdGVyZWQKWyAgICAwLjQxNjI5OV0gd29ya2lu
Z3NldDogdGltZXN0YW1wX2JpdHM9NDYgbWF4X29yZGVyPTI0IGJ1Y2tldF9vcmRlcj0wClsgICAg
MC40MTYzMTNdIHpidWQ6IGxvYWRlZApbICAgIDAuNDE2Njk2XSBpbnRlZ3JpdHk6IFBsYXRmb3Jt
IEtleXJpbmcgaW5pdGlhbGl6ZWQKWyAgICAwLjQxNjcwMl0gaW50ZWdyaXR5OiBNYWNoaW5lIGtl
eXJpbmcgaW5pdGlhbGl6ZWQKWyAgICAwLjQyMjI1OF0gTkVUOiBSZWdpc3RlcmVkIFBGX0FMRyBw
cm90b2NvbCBmYW1pbHkKWyAgICAwLjQyMjI2Ml0geG9yOiBhdXRvbWF0aWNhbGx5IHVzaW5nIGJl
c3QgY2hlY2tzdW1taW5nIGZ1bmN0aW9uICAgYXZ4ICAgICAgIApbICAgIDAuNDIyMjY2XSBLZXkg
dHlwZSBhc3ltbWV0cmljIHJlZ2lzdGVyZWQKWyAgICAwLjQyMjI2OV0gQXN5bW1ldHJpYyBrZXkg
cGFyc2VyICd4NTA5JyByZWdpc3RlcmVkClsgICAgMS40MTc2ODJdIHRzYzogUmVmaW5lZCBUU0Mg
Y2xvY2tzb3VyY2UgY2FsaWJyYXRpb246IDMyOTMuNzgxIE1IegpbICAgIDEuNDE3NzAzXSBjbG9j
a3NvdXJjZTogdHNjOiBtYXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgyZjdh
NTk3OWY3YSwgbWF4X2lkbGVfbnM6IDQ0MDc5NTI3OTIxMyBucwpbICAgIDEuNDE3NzkwXSBjbG9j
a3NvdXJjZTogU3dpdGNoZWQgdG8gY2xvY2tzb3VyY2UgdHNjClsgICAgMS45NTk0MjRdIEZyZWVp
bmcgaW5pdHJkIG1lbW9yeTogMjI0MjEySwpbICAgIDEuOTY0MTIyXSBCbG9jayBsYXllciBTQ1NJ
IGdlbmVyaWMgKGJzZykgZHJpdmVyIHZlcnNpb24gMC40IGxvYWRlZCAobWFqb3IgMjQ1KQpbICAg
IDEuOTY0MTc3XSBpbyBzY2hlZHVsZXIgbXEtZGVhZGxpbmUgcmVnaXN0ZXJlZApbICAgIDEuOTY0
MTgwXSBpbyBzY2hlZHVsZXIga3liZXIgcmVnaXN0ZXJlZApbICAgIDEuOTY0MTg5XSBpbyBzY2hl
ZHVsZXIgYmZxIHJlZ2lzdGVyZWQKWyAgICAxLjk2NTY2N10gYXRvbWljNjRfdGVzdDogcGFzc2Vk
IGZvciB4ODYtNjQgcGxhdGZvcm0gd2l0aCBDWDggYW5kIHdpdGggU1NFClsgICAgMS45NjYwMjJd
IGFtZF9ncGlvIEFNREkwMDMwOjAwOiBpb211eCBub3Qgc3VwcG9ydGVkClsgICAgMS45NjYwMjZd
IGFtZF9ncGlvIEFNREkwMDMwOjAwOiB0cnkgdG8gcmVnaXN0ZXIgMTgzIHBpbnMgLi4uClsgICAg
MS45NjYwMjhdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMCAoR1BJT18wKSBvbiBBTURJ
MDAzMDowMApbICAgIDEuOTY2MDMxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEgKEdQ
SU9fMSkgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjAzM10gcGluY3RybCBjb3JlOiByZWdpc3Rl
cmVkIHBpbiAyIChHUElPXzIpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYwMzVdIHBpbmN0cmwg
Y29yZTogcmVnaXN0ZXJlZCBwaW4gMyAoR1BJT18zKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2
MDM3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQgKEdQSU9fNCkgb24gQU1ESTAwMzA6
MDAKWyAgICAxLjk2NjAzOV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiA1IChHUElPXzUp
IG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYwNDBdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBw
aW4gNiAoR1BJT182KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDQyXSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDcgKEdQSU9fNykgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjA0NF0g
cGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiA4IChHUElPXzgpIG9uIEFNREkwMDMwOjAwClsg
ICAgMS45NjYwNDVdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gOSAoR1BJT185KSBvbiBB
TURJMDAzMDowMApbICAgIDEuOTY2MDQ3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEw
IChHUElPXzEwKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDQ5XSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDExIChHUElPXzExKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDUxXSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEyIChHUElPXzEyKSBvbiBBTURJMDAzMDowMApb
ICAgIDEuOTY2MDUzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEzIChHUElPXzEzKSBv
biBBTURJMDAzMDowMApbICAgIDEuOTY2MDU1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDE0IChHUElPXzE0KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDU3XSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDE1IChHUElPXzE1KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDU4
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE2IChHUElPXzE2KSBvbiBBTURJMDAzMDow
MApbICAgIDEuOTY2MDYwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE3IChHUElPXzE3
KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDYyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDE4IChHUElPXzE4KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDY0XSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDE5IChHUElPXzE5KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2
MDY1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDIwIChHUElPXzIwKSBvbiBBTURJMDAz
MDowMApbICAgIDEuOTY2MDY3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDIxIChHUElP
XzIxKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDY5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDIyIChHUElPXzIyKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDcxXSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDIzIChHUElPXzIzKSBvbiBBTURJMDAzMDowMApbICAgIDEu
OTY2MDcyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDI0IChHUElPXzI0KSBvbiBBTURJ
MDAzMDowMApbICAgIDEuOTY2MDc0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDI1IChH
UElPXzI1KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDc2XSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDI2IChHUElPXzI2KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDc4XSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDI3IChHUElPXzI3KSBvbiBBTURJMDAzMDowMApbICAg
IDEuOTY2MDc5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDI4IChHUElPXzI4KSBvbiBB
TURJMDAzMDowMApbICAgIDEuOTY2MDgxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDI5
IChHUElPXzI5KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDgzXSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDMwIChHUElPXzMwKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDg1XSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDMxIChHUElPXzMxKSBvbiBBTURJMDAzMDowMApb
ICAgIDEuOTY2MDg2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDMyIChHUElPXzMyKSBv
biBBTURJMDAzMDowMApbICAgIDEuOTY2MDkwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDMzIChHUElPXzMzKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDkxXSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDM0IChHUElPXzM0KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDkz
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDM1IChHUElPXzM1KSBvbiBBTURJMDAzMDow
MApbICAgIDEuOTY2MDk1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDM2IChHUElPXzM2
KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDk3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDM3IChHUElPXzM3KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MDk4XSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDM4IChHUElPXzM4KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2
MTAwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDM5IChHUElPXzM5KSBvbiBBTURJMDAz
MDowMApbICAgIDEuOTY2MTAyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQwIChHUElP
XzQwKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTA0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDQxIChHUElPXzQxKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTA1XSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQyIChHUElPXzQyKSBvbiBBTURJMDAzMDowMApbICAgIDEu
OTY2MTA3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQzIChHUElPXzQzKSBvbiBBTURJ
MDAzMDowMApbICAgIDEuOTY2MTA5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQ0IChH
UElPXzQ0KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTExXSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDQ1IChHUElPXzQ1KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTEyXSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQ2IChHUElPXzQ2KSBvbiBBTURJMDAzMDowMApbICAg
IDEuOTY2MTE0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQ3IChHUElPXzQ3KSBvbiBB
TURJMDAzMDowMApbICAgIDEuOTY2MTE2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQ4
IChHUElPXzQ4KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTE4XSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDQ5IChHUElPXzQ5KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTE5XSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDUwIChHUElPXzUwKSBvbiBBTURJMDAzMDowMApb
ICAgIDEuOTY2MTIxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDUxIChHUElPXzUxKSBv
biBBTURJMDAzMDowMApbICAgIDEuOTY2MTIzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDUyIChHUElPXzUyKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTI1XSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDUzIChHUElPXzUzKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTI2
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDU0IChHUElPXzU0KSBvbiBBTURJMDAzMDow
MApbICAgIDEuOTY2MTI4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDU1IChHUElPXzU1
KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTMwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDU2IChHUElPXzU2KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTMyXSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDU3IChHUElPXzU3KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2
MTMzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDU4IChHUElPXzU4KSBvbiBBTURJMDAz
MDowMApbICAgIDEuOTY2MTM1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDU5IChHUElP
XzU5KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTM3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDYwIChHUElPXzYwKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTM5XSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDYxIChHUElPXzYxKSBvbiBBTURJMDAzMDowMApbICAgIDEu
OTY2MTQwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDYyIChHUElPXzYyKSBvbiBBTURJ
MDAzMDowMApbICAgIDEuOTY2MTQzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDY0IChH
UElPXzY0KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTQ0XSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDY1IChHUElPXzY1KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTQ2XSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDY2IChHUElPXzY2KSBvbiBBTURJMDAzMDowMApbICAg
IDEuOTY2MTQ4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDY3IChHUElPXzY3KSBvbiBB
TURJMDAzMDowMApbICAgIDEuOTY2MTUwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDY4
IChHUElPXzY4KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTUyXSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDY5IChHUElPXzY5KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTUzXSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDcwIChHUElPXzcwKSBvbiBBTURJMDAzMDowMApb
ICAgIDEuOTY2MTU1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDcxIChHUElPXzcxKSBv
biBBTURJMDAzMDowMApbICAgIDEuOTY2MTU3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDcyIChHUElPXzcyKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTU5XSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDczIChHUElPXzczKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTYw
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDc0IChHUElPXzc0KSBvbiBBTURJMDAzMDow
MApbICAgIDEuOTY2MTYyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDc1IChHUElPXzc1
KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTY0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDc2IChHUElPXzc2KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTY2XSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDc3IChHUElPXzc3KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2
MTY3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDc4IChHUElPXzc4KSBvbiBBTURJMDAz
MDowMApbICAgIDEuOTY2MTY5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDc5IChHUElP
Xzc5KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTcxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDgwIChHUElPXzgwKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTczXSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDgxIChHUElPXzgxKSBvbiBBTURJMDAzMDowMApbICAgIDEu
OTY2MTc0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDgyIChHUElPXzgyKSBvbiBBTURJ
MDAzMDowMApbICAgIDEuOTY2MTc2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDgzIChH
UElPXzgzKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTc4XSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDg0IChHUElPXzg0KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTgwXSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDg1IChHUElPXzg1KSBvbiBBTURJMDAzMDowMApbICAg
IDEuOTY2MTgxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDg2IChHUElPXzg2KSBvbiBB
TURJMDAzMDowMApbICAgIDEuOTY2MTgzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDg3
IChHUElPXzg3KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTg1XSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDg4IChHUElPXzg4KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTg3XSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDg5IChHUElPXzg5KSBvbiBBTURJMDAzMDowMApb
ICAgIDEuOTY2MTg4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDkwIChHUElPXzkwKSBv
biBBTURJMDAzMDowMApbICAgIDEuOTY2MTkwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDkxIChHUElPXzkxKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTkyXSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDkyIChHUElPXzkyKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTk0
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDkzIChHUElPXzkzKSBvbiBBTURJMDAzMDow
MApbICAgIDEuOTY2MTk1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDk0IChHUElPXzk0
KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTk3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDk1IChHUElPXzk1KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MTk5XSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDk2IChHUElPXzk2KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2
MjAxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDk3IChHUElPXzk3KSBvbiBBTURJMDAz
MDowMApbICAgIDEuOTY2MjA0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDk4IChHUElP
Xzk4KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjA2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDk5IChHUElPXzk5KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjA3XSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEwMCAoR1BJT18xMDApIG9uIEFNREkwMDMwOjAwClsgICAg
MS45NjYyMDldIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTAxIChHUElPXzEwMSkgb24g
QU1ESTAwMzA6MDAKWyAgICAxLjk2NjIxMV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAx
MDIgKEdQSU9fMTAyKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjEzXSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDEwMyAoR1BJT18xMDMpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYy
MTVdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTA0IChHUElPXzEwNCkgb24gQU1ESTAw
MzA6MDAKWyAgICAxLjk2NjIxNl0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMDUgKEdQ
SU9fMTA1KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjE4XSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDEwNiAoR1BJT18xMDYpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyMjBdIHBp
bmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTA3IChHUElPXzEwNykgb24gQU1ESTAwMzA6MDAK
WyAgICAxLjk2NjIyMl0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMDggKEdQSU9fMTA4
KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjIzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDEwOSAoR1BJT18xMDkpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyMjVdIHBpbmN0cmwg
Y29yZTogcmVnaXN0ZXJlZCBwaW4gMTEwIChHUElPXzExMCkgb24gQU1ESTAwMzA6MDAKWyAgICAx
Ljk2NjIyN10gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMTEgKEdQSU9fMTExKSBvbiBB
TURJMDAzMDowMApbICAgIDEuOTY2MjI5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEx
MiAoR1BJT18xMTIpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyMzBdIHBpbmN0cmwgY29yZTog
cmVnaXN0ZXJlZCBwaW4gMTEzIChHUElPXzExMykgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjIz
Ml0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMTQgKEdQSU9fMTE0KSBvbiBBTURJMDAz
MDowMApbICAgIDEuOTY2MjM0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDExNSAoR1BJ
T18xMTUpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyMzZdIHBpbmN0cmwgY29yZTogcmVnaXN0
ZXJlZCBwaW4gMTE2IChHUElPXzExNikgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjIzN10gcGlu
Y3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMTcgKEdQSU9fMTE3KSBvbiBBTURJMDAzMDowMApb
ICAgIDEuOTY2MjM5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDExOCAoR1BJT18xMTgp
IG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyNDFdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBw
aW4gMTE5IChHUElPXzExOSkgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjI0M10gcGluY3RybCBj
b3JlOiByZWdpc3RlcmVkIHBpbiAxMjAgKEdQSU9fMTIwKSBvbiBBTURJMDAzMDowMApbICAgIDEu
OTY2MjQ0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEyMSAoR1BJT18xMjEpIG9uIEFN
REkwMDMwOjAwClsgICAgMS45NjYyNDZdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTIy
IChHUElPXzEyMikgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjI0OF0gcGluY3RybCBjb3JlOiBy
ZWdpc3RlcmVkIHBpbiAxMjMgKEdQSU9fMTIzKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjUw
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEyNCAoR1BJT18xMjQpIG9uIEFNREkwMDMw
OjAwClsgICAgMS45NjYyNTJdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTI1IChHUElP
XzEyNSkgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjI1M10gcGluY3RybCBjb3JlOiByZWdpc3Rl
cmVkIHBpbiAxMjYgKEdQSU9fMTI2KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjU1XSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEyNyAoR1BJT18xMjcpIG9uIEFNREkwMDMwOjAwClsg
ICAgMS45NjYyNTddIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTI4IChHUElPXzEyOCkg
b24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjI1OV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBp
biAxMjkgKEdQSU9fMTI5KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjYxXSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDEzMCAoR1BJT18xMzApIG9uIEFNREkwMDMwOjAwClsgICAgMS45
NjYyNjJdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTMxIChHUElPXzEzMSkgb24gQU1E
STAwMzA6MDAKWyAgICAxLjk2NjI2NF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMzIg
KEdQSU9fMTMyKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjY2XSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDEzMyAoR1BJT18xMzMpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyNjhd
IHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTM0IChHUElPXzEzNCkgb24gQU1ESTAwMzA6
MDAKWyAgICAxLjk2NjI3MF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMzUgKEdQSU9f
MTM1KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MjcxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDEzNiAoR1BJT18xMzYpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyNzNdIHBpbmN0
cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTM3IChHUElPXzEzNykgb24gQU1ESTAwMzA6MDAKWyAg
ICAxLjk2NjI3NV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMzggKEdQSU9fMTM4KSBv
biBBTURJMDAzMDowMApbICAgIDEuOTY2Mjc3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDEzOSAoR1BJT18xMzkpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyNzhdIHBpbmN0cmwgY29y
ZTogcmVnaXN0ZXJlZCBwaW4gMTQwIChHUElPXzE0MCkgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2
NjI4MF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNDEgKEdQSU9fMTQxKSBvbiBBTURJ
MDAzMDowMApbICAgIDEuOTY2MjgyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE0MiAo
R1BJT18xNDIpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyODRdIHBpbmN0cmwgY29yZTogcmVn
aXN0ZXJlZCBwaW4gMTQzIChHUElPXzE0Mykgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjI4NV0g
cGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNDQgKEdQSU9fMTQ0KSBvbiBBTURJMDAzMDow
MApbICAgIDEuOTY2Mjg3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE0NSAoR1BJT18x
NDUpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYyODldIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJl
ZCBwaW4gMTQ2IChHUElPXzE0Nikgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjI5MV0gcGluY3Ry
bCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNDcgKEdQSU9fMTQ3KSBvbiBBTURJMDAzMDowMApbICAg
IDEuOTY2MjkyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE0OCAoR1BJT18xNDgpIG9u
IEFNREkwMDMwOjAwClsgICAgMS45NjYyOTRdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4g
MTQ5IChHUElPXzE0OSkgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjI5Nl0gcGluY3RybCBjb3Jl
OiByZWdpc3RlcmVkIHBpbiAxNTAgKEdQSU9fMTUwKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2
Mjk4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE1MSAoR1BJT18xNTEpIG9uIEFNREkw
MDMwOjAwClsgICAgMS45NjYyOTldIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTUyIChH
UElPXzE1Mikgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjMwMV0gcGluY3RybCBjb3JlOiByZWdp
c3RlcmVkIHBpbiAxNTMgKEdQSU9fMTUzKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MzAzXSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE1NCAoR1BJT18xNTQpIG9uIEFNREkwMDMwOjAw
ClsgICAgMS45NjYzMDVdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTU1IChHUElPXzE1
NSkgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjMwN10gcGluY3RybCBjb3JlOiByZWdpc3RlcmVk
IHBpbiAxNTYgKEdQSU9fMTU2KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MzA4XSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE1NyAoR1BJT18xNTcpIG9uIEFNREkwMDMwOjAwClsgICAg
MS45NjYzMTBdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTU4IChHUElPXzE1OCkgb24g
QU1ESTAwMzA6MDAKWyAgICAxLjk2NjMxMl0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAx
NTkgKEdQSU9fMTU5KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MzE0XSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDE2MCAoR1BJT18xNjApIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYz
MTVdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTYxIChHUElPXzE2MSkgb24gQU1ESTAw
MzA6MDAKWyAgICAxLjk2NjMxOF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNjIgKEdQ
SU9fMTYyKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MzIwXSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDE2MyAoR1BJT18xNjMpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYzMjJdIHBp
bmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTY0IChHUElPXzE2NCkgb24gQU1ESTAwMzA6MDAK
WyAgICAxLjk2NjMyM10gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNjUgKEdQSU9fMTY1
KSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MzI1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDE2NiAoR1BJT18xNjYpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYzMjddIHBpbmN0cmwg
Y29yZTogcmVnaXN0ZXJlZCBwaW4gMTY3IChHUElPXzE2Nykgb24gQU1ESTAwMzA6MDAKWyAgICAx
Ljk2NjMyOV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNjggKEdQSU9fMTY4KSBvbiBB
TURJMDAzMDowMApbICAgIDEuOTY2MzMxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE2
OSAoR1BJT18xNjkpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYzMzJdIHBpbmN0cmwgY29yZTog
cmVnaXN0ZXJlZCBwaW4gMTcwIChHUElPXzE3MCkgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjMz
NF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNzEgKEdQSU9fMTcxKSBvbiBBTURJMDAz
MDowMApbICAgIDEuOTY2MzM2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE3MiAoR1BJ
T18xNzIpIG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYzMzhdIHBpbmN0cmwgY29yZTogcmVnaXN0
ZXJlZCBwaW4gMTczIChHUElPXzE3Mykgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjMzOV0gcGlu
Y3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNzQgKEdQSU9fMTc0KSBvbiBBTURJMDAzMDowMApb
ICAgIDEuOTY2MzQxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE3NSAoR1BJT18xNzUp
IG9uIEFNREkwMDMwOjAwClsgICAgMS45NjYzNDNdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBw
aW4gMTc2IChHUElPXzE3Nikgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjM0NV0gcGluY3RybCBj
b3JlOiByZWdpc3RlcmVkIHBpbiAxNzcgKEdQSU9fMTc3KSBvbiBBTURJMDAzMDowMApbICAgIDEu
OTY2MzQ2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE3OCAoR1BJT18xNzgpIG9uIEFN
REkwMDMwOjAwClsgICAgMS45NjYzNDhdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTc5
IChHUElPXzE3OSkgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjM1MF0gcGluY3RybCBjb3JlOiBy
ZWdpc3RlcmVkIHBpbiAxODAgKEdQSU9fMTgwKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MzUy
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE4MSAoR1BJT18xODEpIG9uIEFNREkwMDMw
OjAwClsgICAgMS45NjYzNTNdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTgyIChHUElP
XzE4Mikgb24gQU1ESTAwMzA6MDAKWyAgICAxLjk2NjM1NV0gcGluY3RybCBjb3JlOiByZWdpc3Rl
cmVkIHBpbiAxODMgKEdQSU9fMTgzKSBvbiBBTURJMDAzMDowMApbICAgIDEuOTY2MzU4XSBhbWRf
Z3BpbyBBTURJMDAzMDowMDogZmFpbGVkIHRvIGxvb2t1cCB0aGUgZGVmYXVsdCBzdGF0ZQpbICAg
IDEuOTY2MzYwXSBhbWRfZ3BpbyBBTURJMDAzMDowMDogZmFpbGVkIHRvIGxvb2t1cCB0aGUgc2xl
ZXAgc3RhdGUKWyAgICAxLjk2Njg3NF0gZ3Bpb2NoaXBfZmluZF9iYXNlOiBmb3VuZCBuZXcgYmFz
ZSBhdCA1MTIKWyAgICAxLjk2NzMyMF0gYW1kX2dwaW8gQU1ESTAwMzA6MDA6IEludmFsaWQgY29u
ZmlnIHBhcmFtIDAwMTQKWyAgICAxLjk2NzMyM10gZ3BpbyBncGlvY2hpcDA6IFBlcnNpc3RlbmNl
IG5vdCBzdXBwb3J0ZWQgZm9yIEdQSU8gMApbICAgIDEuOTY3MzQ3XSBhbWRfZ3BpbyBBTURJMDAz
MDowMDogSW52YWxpZCBjb25maWcgcGFyYW0gMDAxNApbICAgIDEuOTY3MzQ5XSBncGlvIGdwaW9j
aGlwMDogUGVyc2lzdGVuY2Ugbm90IHN1cHBvcnRlZCBmb3IgR1BJTyA2MQpbICAgIDEuOTY3MzY3
XSBhbWRfZ3BpbyBBTURJMDAzMDowMDogSW52YWxpZCBjb25maWcgcGFyYW0gMDAxNApbICAgIDEu
OTY3MzcwXSBncGlvIGdwaW9jaGlwMDogUGVyc2lzdGVuY2Ugbm90IHN1cHBvcnRlZCBmb3IgR1BJ
TyA2MgpbICAgIDEuOTY3Mzg4XSBhbWRfZ3BpbyBBTURJMDAzMDowMDogSW52YWxpZCBjb25maWcg
cGFyYW0gMDAxNApbICAgIDEuOTY3MzkwXSBncGlvIGdwaW9jaGlwMDogUGVyc2lzdGVuY2Ugbm90
IHN1cHBvcnRlZCBmb3IgR1BJTyA1OApbICAgIDEuOTY3NDEwXSBhbWRfZ3BpbyBBTURJMDAzMDow
MDogSW52YWxpZCBjb25maWcgcGFyYW0gMDAxNApbICAgIDEuOTY3NDEyXSBncGlvIGdwaW9jaGlw
MDogUGVyc2lzdGVuY2Ugbm90IHN1cHBvcnRlZCBmb3IgR1BJTyA1OQpbICAgIDEuOTY3NDMwXSBh
bWRfZ3BpbyBBTURJMDAzMDowMDogSW52YWxpZCBjb25maWcgcGFyYW0gMDAxNApbICAgIDEuOTY3
NDMyXSBncGlvIGdwaW9jaGlwMDogUGVyc2lzdGVuY2Ugbm90IHN1cHBvcnRlZCBmb3IgR1BJTyAy
ClsgICAgMS45Njc0NDldIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBJbnZhbGlkIGNvbmZpZyBwYXJh
bSAwMDE0ClsgICAgMS45Njc0NTJdIGdwaW8gZ3Bpb2NoaXAwOiBQZXJzaXN0ZW5jZSBub3Qgc3Vw
cG9ydGVkIGZvciBHUElPIDYKWyAgICAxLjk2NzQ3MF0gYW1kX2dwaW8gQU1ESTAwMzA6MDA6IElu
dmFsaWQgY29uZmlnIHBhcmFtIDAwMTQKWyAgICAxLjk2NzQ3Ml0gZ3BpbyBncGlvY2hpcDA6IFBl
cnNpc3RlbmNlIG5vdCBzdXBwb3J0ZWQgZm9yIEdQSU8gNTQKWyAgICAxLjk2NzUyN10gZ3BpbyBn
cGlvY2hpcDA6IChBTURJMDAzMDowMCk6IGFkZGVkIEdQSU8gY2hhcmRldiAoMjU0OjApClsgICAg
MS45Njc1MzhdIGdwaW8gZ3Bpb2NoaXAwOiByZWdpc3RlcmVkIEdQSU9zIDUxMiB0byA3Njcgb24g
QU1ESTAwMzA6MDAKWyAgICAxLjk2NzU0MF0gZ3BpbyBncGlvY2hpcDA6IChBTURJMDAzMDowMCk6
IGNyZWF0ZWQgR1BJTyByYW5nZSAwLT4yNTUgPT0+IEFNREkwMDMwOjAwIFBJTiAwLT4yNTUKWyAg
ICAxLjk2NzYxOF0gYW1kX2dwaW8gQU1ESTAwMzA6MDA6IGFtZCBncGlvIGRyaXZlciBsb2FkZWQK
WyAgICAxLjk2Nzc5M10gcGNpZXBvcnQgMDAwMDowMDowMi4yOiBQTUU6IFNpZ25hbGluZyB3aXRo
IElSUSAzOApbICAgIDEuOTY3OTU3XSBwY2llcG9ydCAwMDAwOjAwOjAyLjQ6IFBNRTogU2lnbmFs
aW5nIHdpdGggSVJRIDM5ClsgICAgMS45NjgxOTFdIHBjaWVwb3J0IDAwMDA6MDA6MDMuMTogUE1F
OiBTaWduYWxpbmcgd2l0aCBJUlEgNDAKWyAgICAxLjk2ODIyMl0gcGNpZXBvcnQgMDAwMDowMDow
My4xOiBwY2llaHA6IFNsb3QgIzAgQXR0bkJ0bi0gUHdyQ3RybC0gTVJMLSBBdHRuSW5kLSBQd3JJ
bmQtIEhvdFBsdWcrIFN1cnByaXNlKyBJbnRlcmxvY2stIE5vQ29tcGwrIEliUHJlc0Rpcy0gTExB
Y3RSZXArClsgICAgMS45Njg3NjFdIHBjaWVwb3J0IDAwMDA6MDA6MDQuMTogUE1FOiBTaWduYWxp
bmcgd2l0aCBJUlEgNDEKWyAgICAxLjk2ODc5Ml0gcGNpZXBvcnQgMDAwMDowMDowNC4xOiBwY2ll
aHA6IFNsb3QgIzAgQXR0bkJ0bi0gUHdyQ3RybC0gTVJMLSBBdHRuSW5kLSBQd3JJbmQtIEhvdFBs
dWcrIFN1cnByaXNlKyBJbnRlcmxvY2stIE5vQ29tcGwrIEliUHJlc0Rpcy0gTExBY3RSZXArClsg
ICAgMS45NjkyMjJdIHBjaWVwb3J0IDAwMDA6MDA6MDguMTogUE1FOiBTaWduYWxpbmcgd2l0aCBJ
UlEgNDIKWyAgICAxLjk2OTQ1N10gcGNpZXBvcnQgMDAwMDowMDowOC4yOiBQTUU6IFNpZ25hbGlu
ZyB3aXRoIElSUSA0MwpbICAgIDEuOTY5NjE1XSBwY2llcG9ydCAwMDAwOjAwOjA4LjM6IFBNRTog
U2lnbmFsaW5nIHdpdGggSVJRIDQ0ClsgICAgMS45Njk3MDBdIHNocGNocDogU3RhbmRhcmQgSG90
IFBsdWcgUENJIENvbnRyb2xsZXIgRHJpdmVyIHZlcnNpb246IDAuNApbICAgIDEuOTcwMzc5XSBB
Q1BJOiBBQzogQUMgQWRhcHRlciBbQUNBRF0gKG9uLWxpbmUpClsgICAgMS45NzA0MjddIGlucHV0
OiBMaWQgU3dpdGNoIGFzIC9kZXZpY2VzL0xOWFNZU1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBBMDg6
MDAvZGV2aWNlOjQ0L1BOUDBDMDk6MDAvUE5QMEMwRDowMC9pbnB1dC9pbnB1dDAKWyAgICAxLjk3
MDQ0N10gQUNQSTogYnV0dG9uOiBMaWQgU3dpdGNoIFtMSUQwXQpbICAgIDEuOTcwNDczXSBpbnB1
dDogUG93ZXIgQnV0dG9uIGFzIC9kZXZpY2VzL0xOWFNZU1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBD
MEM6MDAvaW5wdXQvaW5wdXQxClsgICAgMS45NzA0OTBdIEFDUEk6IGJ1dHRvbjogUG93ZXIgQnV0
dG9uIFtQV1JCXQpbICAgIDEuOTcwNTU3XSBFc3RpbWF0ZWQgcmF0aW8gb2YgYXZlcmFnZSBtYXgg
ZnJlcXVlbmN5IGJ5IGJhc2UgZnJlcXVlbmN5ICh0aW1lcyAxMDI0KTogMTU0OApbICAgIDEuOTcw
NTc0XSBNb25pdG9yLU13YWl0IHdpbGwgYmUgdXNlZCB0byBlbnRlciBDLTEgc3RhdGUKWyAgICAx
Ljk3MDU3OF0gQUNQSTogXF9TQl8uUExURi5DMDAwOiBGb3VuZCAzIGlkbGUgc3RhdGVzClsgICAg
MS45NzA2OTFdIEFDUEk6IFxfU0JfLlBMVEYuQzAwMTogRm91bmQgMyBpZGxlIHN0YXRlcwpbICAg
IDEuOTcwNzg4XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMDI6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAg
ICAxLjk3MDg3N10gQUNQSTogXF9TQl8uUExURi5DMDAzOiBGb3VuZCAzIGlkbGUgc3RhdGVzClsg
ICAgMS45NzA5NzNdIEFDUEk6IFxfU0JfLlBMVEYuQzAwNDogRm91bmQgMyBpZGxlIHN0YXRlcwpb
ICAgIDEuOTcxMDY5XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMDU6IEZvdW5kIDMgaWRsZSBzdGF0ZXMK
WyAgICAxLjk3MTE2NV0gQUNQSTogXF9TQl8uUExURi5DMDA2OiBGb3VuZCAzIGlkbGUgc3RhdGVz
ClsgICAgMS45NzEyNjBdIEFDUEk6IFxfU0JfLlBMVEYuQzAwNzogRm91bmQgMyBpZGxlIHN0YXRl
cwpbICAgIDEuOTcxMzU2XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMDg6IEZvdW5kIDMgaWRsZSBzdGF0
ZXMKWyAgICAxLjk3MTQ1Ml0gQUNQSTogXF9TQl8uUExURi5DMDA5OiBGb3VuZCAzIGlkbGUgc3Rh
dGVzClsgICAgMS45NzE1NDldIEFDUEk6IFxfU0JfLlBMVEYuQzAwQTogRm91bmQgMyBpZGxlIHN0
YXRlcwpbICAgIDEuOTcxNjQ0XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMEI6IEZvdW5kIDMgaWRsZSBz
dGF0ZXMKWyAgICAxLjk3MTc1NF0gQUNQSTogXF9TQl8uUExURi5DMDBDOiBGb3VuZCAzIGlkbGUg
c3RhdGVzClsgICAgMS45NzE4NTBdIEFDUEk6IFxfU0JfLlBMVEYuQzAwRDogRm91bmQgMyBpZGxl
IHN0YXRlcwpbICAgIDEuOTcxOTQ2XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMEU6IEZvdW5kIDMgaWRs
ZSBzdGF0ZXMKWyAgICAxLjk3MjA0NF0gQUNQSTogXF9TQl8uUExURi5DMDBGOiBGb3VuZCAzIGlk
bGUgc3RhdGVzClsgICAgMS45NzIzOTNdIHRoZXJtYWwgTE5YVEhFUk06MDA6IHJlZ2lzdGVyZWQg
YXMgdGhlcm1hbF96b25lMApbICAgIDEuOTcyMzk3XSBBQ1BJOiB0aGVybWFsOiBUaGVybWFsIFpv
bmUgW1RaMDBdICgzNSBDKQpbICAgIDEuOTcyNTQ3XSB0aGVybWFsIExOWFRIRVJNOjAxOiByZWdp
c3RlcmVkIGFzIHRoZXJtYWxfem9uZTEKWyAgICAxLjk3MjU1MF0gQUNQSTogdGhlcm1hbDogVGhl
cm1hbCBab25lIFtUWjAxXSAoMzcgQykKWyAgICAxLjk3MjcwMV0gdGhlcm1hbCBMTlhUSEVSTTow
MjogcmVnaXN0ZXJlZCBhcyB0aGVybWFsX3pvbmUyClsgICAgMS45NzI3MDVdIEFDUEk6IHRoZXJt
YWw6IFRoZXJtYWwgWm9uZSBbVFowMl0gKDM1IEMpClsgICAgMS45NzI4NTBdIHRoZXJtYWwgTE5Y
VEhFUk06MDM6IHJlZ2lzdGVyZWQgYXMgdGhlcm1hbF96b25lMwpbICAgIDEuOTcyODUzXSBBQ1BJ
OiB0aGVybWFsOiBUaGVybWFsIFpvbmUgW1RaMDNdICg3MyBDKQpbICAgIDEuOTczMDA5XSBTZXJp
YWw6IDgyNTAvMTY1NTAgZHJpdmVyLCAzMiBwb3J0cywgSVJRIHNoYXJpbmcgZW5hYmxlZApbICAg
IDEuOTc0MjMxXSBBQ1BJOiBiYXR0ZXJ5OiBTbG90IFtCQVQxXSAoYmF0dGVyeSBwcmVzZW50KQpb
ICAgIDEuOTc1MTA5XSBOb24tdm9sYXRpbGUgbWVtb3J5IGRyaXZlciB2MS4zClsgICAgMS45NzUx
MTZdIExpbnV4IGFncGdhcnQgaW50ZXJmYWNlIHYwLjEwMwpbICAgIDEuOTc1NjQ5XSBBQ1BJOiBi
dXMgdHlwZSBkcm1fY29ubmVjdG9yIHJlZ2lzdGVyZWQKWyAgICAxLjk3NTkwM10gW2RybV0gSW5p
dGlhbGl6ZWQgc2ltcGxlZHJtIDEuMC4wIDIwMjAwNjI1IGZvciBzaW1wbGUtZnJhbWVidWZmZXIu
MCBvbiBtaW5vciAwClsgICAgMS45Nzk5MTJdIENvbnNvbGU6IHN3aXRjaGluZyB0byBjb2xvdXIg
ZnJhbWUgYnVmZmVyIGRldmljZSAyODJ4OTQKWyAgICAxLjk4MzY3OV0gc2ltcGxlLWZyYW1lYnVm
ZmVyIHNpbXBsZS1mcmFtZWJ1ZmZlci4wOiBbZHJtXSBmYjA6IHNpbXBsZWRybWRybWZiIGZyYW1l
IGJ1ZmZlciBkZXZpY2UKWyAgICAxLjk4NzExOF0gbWRpb19idXMgZml4ZWQtMDogdXNpbmcgbG9v
a3VwIHRhYmxlcyBmb3IgR1BJTyBsb29rdXAKWyAgICAxLjk4NzEyMl0gbWRpb19idXMgZml4ZWQt
MDogTm8gR1BJTyBjb25zdW1lciByZXNldCBmb3VuZApbICAgIDEuOTg3NTU5XSB4aGNpX2hjZCAw
MDAwOmMxOjAwLjM6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMS45ODc2NjhdIHhoY2lfaGNk
IDAwMDA6YzE6MDAuMzogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJl
ciAxClsgICAgMS45ODgxNDhdIHhoY2lfaGNkIDAwMDA6YzE6MDAuMzogaGNjIHBhcmFtcyAweDAx
MjhmZmM1IGhjaSB2ZXJzaW9uIDB4MTIwIHF1aXJrcyAweDAwMDAwMDAyMDAwMDA0MTAKWyAgICAx
Ljk4ODU5MF0geGhjaV9oY2QgMDAwMDpjMTowMC4zOiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAg
IDEuOTg4NjQ0XSB4aGNpX2hjZCAwMDAwOmMxOjAwLjM6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQs
IGFzc2lnbmVkIGJ1cyBudW1iZXIgMgpbICAgIDEuOTg4NzE0XSB4aGNpX2hjZCAwMDAwOmMxOjAw
LjM6IEhvc3Qgc3VwcG9ydHMgVVNCIDMuMSBFbmhhbmNlZCBTdXBlclNwZWVkClsgICAgMS45ODg4
MDRdIHVzYiB1c2IxOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9k
dWN0PTAwMDIsIGJjZERldmljZT0gNi4wNgpbICAgIDEuOTg4ODI5XSB1c2IgdXNiMTogTmV3IFVT
QiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTEKWyAgICAx
Ljk4ODg1MF0gdXNiIHVzYjE6IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMS45
ODg4NjldIHVzYiB1c2IxOiBNYW51ZmFjdHVyZXI6IExpbnV4IDYuNi43eGVuLWlycS1kYmctMSsg
eGhjaS1oY2QKWyAgICAxLjk4ODg5MV0gdXNiIHVzYjE6IFNlcmlhbE51bWJlcjogMDAwMDpjMTow
MC4zClsgICAgMS45ODkxMTddIGh1YiAxLTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMS45ODkx
NTddIGh1YiAxLTA6MS4wOiA1IHBvcnRzIGRldGVjdGVkClsgICAgMS45OTM0MTRdIHVzYiB1c2Iy
OiBXZSBkb24ndCBrbm93IHRoZSBhbGdvcml0aG1zIGZvciBMUE0gZm9yIHRoaXMgaG9zdCwgZGlz
YWJsaW5nIExQTS4KWyAgICAxLjk5MzUwNF0gdXNiIHVzYjI6IE5ldyBVU0IgZGV2aWNlIGZvdW5k
LCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMywgYmNkRGV2aWNlPSA2LjA2ClsgICAgMS45
OTM1MTddIHVzYiB1c2IyOiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0y
LCBTZXJpYWxOdW1iZXI9MQpbICAgIDEuOTkzNTM1XSB1c2IgdXNiMjogUHJvZHVjdDogeEhDSSBI
b3N0IENvbnRyb2xsZXIKWyAgICAxLjk5MzU0Nl0gdXNiIHVzYjI6IE1hbnVmYWN0dXJlcjogTGlu
dXggNi42Ljd4ZW4taXJxLWRiZy0xKyB4aGNpLWhjZApbICAgIDEuOTkzNTYxXSB1c2IgdXNiMjog
U2VyaWFsTnVtYmVyOiAwMDAwOmMxOjAwLjMKWyAgICAxLjk5Mzc4MF0gaHViIDItMDoxLjA6IFVT
QiBodWIgZm91bmQKWyAgICAxLjk5MzgzMF0gaHViIDItMDoxLjA6IDIgcG9ydHMgZGV0ZWN0ZWQK
WyAgICAxLjk5NTYzOV0geGhjaV9oY2QgMDAwMDpjMTowMC40OiB4SENJIEhvc3QgQ29udHJvbGxl
cgpbICAgIDEuOTk1NzI4XSB4aGNpX2hjZCAwMDAwOmMxOjAwLjQ6IG5ldyBVU0IgYnVzIHJlZ2lz
dGVyZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgMwpbICAgIDEuOTk2MTY1XSB4aGNpX2hjZCAwMDAw
OmMxOjAwLjQ6IGhjYyBwYXJhbXMgMHgwMTEwZmZjNSBoY2kgdmVyc2lvbiAweDEyMCBxdWlya3Mg
MHgwMDAwMDAwMjAwMDAwNDEwClsgICAgMS45OTY1MDVdIHhoY2lfaGNkIDAwMDA6YzE6MDAuNDog
eEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAxLjk5NjU3OV0geGhjaV9oY2QgMDAwMDpjMTowMC40
OiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDQKWyAgICAxLjk5
NjY0OV0geGhjaV9oY2QgMDAwMDpjMTowMC40OiBIb3N0IHN1cHBvcnRzIFVTQiAzLjEgRW5oYW5j
ZWQgU3VwZXJTcGVlZApbICAgIDEuOTk2NzI2XSB1c2IgdXNiMzogTmV3IFVTQiBkZXZpY2UgZm91
bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAyLCBiY2REZXZpY2U9IDYuMDYKWyAgICAx
Ljk5Njc0MF0gdXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0
PTIsIFNlcmlhbE51bWJlcj0xClsgICAgMS45OTY3NTldIHVzYiB1c2IzOiBQcm9kdWN0OiB4SENJ
IEhvc3QgQ29udHJvbGxlcgpbICAgIDEuOTk2NzcyXSB1c2IgdXNiMzogTWFudWZhY3R1cmVyOiBM
aW51eCA2LjYuN3hlbi1pcnEtZGJnLTErIHhoY2ktaGNkClsgICAgMS45OTY3ODddIHVzYiB1c2Iz
OiBTZXJpYWxOdW1iZXI6IDAwMDA6YzE6MDAuNApbICAgIDEuOTk3MDA5XSBodWIgMy0wOjEuMDog
VVNCIGh1YiBmb3VuZApbICAgIDEuOTk3MDYxXSBodWIgMy0wOjEuMDogMSBwb3J0IGRldGVjdGVk
ClsgICAgMS45OTc5NzldIHVzYiB1c2I0OiBXZSBkb24ndCBrbm93IHRoZSBhbGdvcml0aG1zIGZv
ciBMUE0gZm9yIHRoaXMgaG9zdCwgZGlzYWJsaW5nIExQTS4KWyAgICAxLjk5ODA2NV0gdXNiIHVz
YjQ6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMywg
YmNkRGV2aWNlPSA2LjA2ClsgICAgMS45OTgwNzhdIHVzYiB1c2I0OiBOZXcgVVNCIGRldmljZSBz
dHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MQpbICAgIDEuOTk4MDk3XSB1
c2IgdXNiNDogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAxLjk5ODExMV0gdXNi
IHVzYjQ6IE1hbnVmYWN0dXJlcjogTGludXggNi42Ljd4ZW4taXJxLWRiZy0xKyB4aGNpLWhjZApb
ICAgIDEuOTk4MTI2XSB1c2IgdXNiNDogU2VyaWFsTnVtYmVyOiAwMDAwOmMxOjAwLjQKWyAgICAx
Ljk5ODMxOV0gaHViIDQtMDoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAxLjk5ODM4MV0gaHViIDQt
MDoxLjA6IDEgcG9ydCBkZXRlY3RlZApbICAgIDEuOTk5NDgzXSB4aGNpX2hjZCAwMDAwOmMzOjAw
LjM6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMS45OTk1NzJdIHhoY2lfaGNkIDAwMDA6YzM6
MDAuMzogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciA1ClsgICAg
Mi4wMDAwMjhdIHhoY2lfaGNkIDAwMDA6YzM6MDAuMzogaGNjIHBhcmFtcyAweDAxMTBmZmM1IGhj
aSB2ZXJzaW9uIDB4MTIwIHF1aXJrcyAweDAwMDAwMDAyMDAwMDA0MTAKWyAgICAyLjAwMDU1M10g
eGhjaV9oY2QgMDAwMDpjMzowMC4zOiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDIuMDAwNjI2
XSB4aGNpX2hjZCAwMDAwOmMzOjAwLjM6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQsIGFzc2lnbmVk
IGJ1cyBudW1iZXIgNgpbICAgIDIuMDAwNjk2XSB4aGNpX2hjZCAwMDAwOmMzOjAwLjM6IEhvc3Qg
c3VwcG9ydHMgVVNCIDMuMSBFbmhhbmNlZCBTdXBlclNwZWVkClsgICAgMi4wMDA3NjddIHVzYiB1
c2I1OiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDIs
IGJjZERldmljZT0gNi4wNgpbICAgIDIuMDAwNzgxXSB1c2IgdXNiNTogTmV3IFVTQiBkZXZpY2Ug
c3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTEKWyAgICAyLjAwMDc5OV0g
dXNiIHVzYjU6IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMi4wMDA4MTFdIHVz
YiB1c2I1OiBNYW51ZmFjdHVyZXI6IExpbnV4IDYuNi43eGVuLWlycS1kYmctMSsgeGhjaS1oY2QK
WyAgICAyLjAwMDgyN10gdXNiIHVzYjU6IFNlcmlhbE51bWJlcjogMDAwMDpjMzowMC4zClsgICAg
Mi4wMDEwNDJdIGh1YiA1LTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMi4wMDEwOTVdIGh1YiA1
LTA6MS4wOiAxIHBvcnQgZGV0ZWN0ZWQKWyAgICAyLjAwMjA1M10gdXNiIHVzYjY6IFdlIGRvbid0
IGtub3cgdGhlIGFsZ29yaXRobXMgZm9yIExQTSBmb3IgdGhpcyBob3N0LCBkaXNhYmxpbmcgTFBN
LgpbICAgIDIuMDAyMTQ2XSB1c2IgdXNiNjogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9y
PTFkNmIsIGlkUHJvZHVjdD0wMDAzLCBiY2REZXZpY2U9IDYuMDYKWyAgICAyLjAwMjE1OV0gdXNi
IHVzYjY6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51
bWJlcj0xClsgICAgMi4wMDIxNzddIHVzYiB1c2I2OiBQcm9kdWN0OiB4SENJIEhvc3QgQ29udHJv
bGxlcgpbICAgIDIuMDAyMTkwXSB1c2IgdXNiNjogTWFudWZhY3R1cmVyOiBMaW51eCA2LjYuN3hl
bi1pcnEtZGJnLTErIHhoY2ktaGNkClsgICAgMi4wMDIyMDZdIHVzYiB1c2I2OiBTZXJpYWxOdW1i
ZXI6IDAwMDA6YzM6MDAuMwpbICAgIDIuMDAyNDI0XSBodWIgNi0wOjEuMDogVVNCIGh1YiBmb3Vu
ZApbICAgIDIuMDAyNDQ4XSBodWIgNi0wOjEuMDogMSBwb3J0IGRldGVjdGVkClsgICAgMi4wMDM3
MjBdIHhoY2lfaGNkIDAwMDA6YzM6MDAuNDogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAyLjAw
MzgxMF0geGhjaV9oY2QgMDAwMDpjMzowMC40OiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3Np
Z25lZCBidXMgbnVtYmVyIDcKWyAgICAyLjAwNDIxNV0geGhjaV9oY2QgMDAwMDpjMzowMC40OiBo
Y2MgcGFyYW1zIDB4MDExMGZmYzUgaGNpIHZlcnNpb24gMHgxMjAgcXVpcmtzIDB4MDAwMDAwMDIw
MDAwMDQxMApbICAgIDIuMDA0NzMyXSB4aGNpX2hjZCAwMDAwOmMzOjAwLjQ6IHhIQ0kgSG9zdCBD
b250cm9sbGVyClsgICAgMi4wMDQ4MTldIHhoY2lfaGNkIDAwMDA6YzM6MDAuNDogbmV3IFVTQiBi
dXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciA4ClsgICAgMi4wMDU3MTddIHhoY2lf
aGNkIDAwMDA6YzM6MDAuNDogSG9zdCBzdXBwb3J0cyBVU0IgMy4xIEVuaGFuY2VkIFN1cGVyU3Bl
ZWQKWyAgICAyLjAwNzEzNF0gdXNiIHVzYjc6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRv
cj0xZDZiLCBpZFByb2R1Y3Q9MDAwMiwgYmNkRGV2aWNlPSA2LjA2ClsgICAgMi4wMDc4MDJdIHVz
YiB1c2I3OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxO
dW1iZXI9MQpbICAgIDIuMDA4NDQyXSB1c2IgdXNiNzogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRy
b2xsZXIKWyAgICAyLjAwOTAxMl0gdXNiIHVzYjc6IE1hbnVmYWN0dXJlcjogTGludXggNi42Ljd4
ZW4taXJxLWRiZy0xKyB4aGNpLWhjZApbICAgIDIuMDA5NTI4XSB1c2IgdXNiNzogU2VyaWFsTnVt
YmVyOiAwMDAwOmMzOjAwLjQKWyAgICAyLjAxMDI5MV0gaHViIDctMDoxLjA6IFVTQiBodWIgZm91
bmQKWyAgICAyLjAxMDk4M10gaHViIDctMDoxLjA6IDEgcG9ydCBkZXRlY3RlZApbICAgIDIuMDEy
ODU4XSB1c2IgdXNiODogV2UgZG9uJ3Qga25vdyB0aGUgYWxnb3JpdGhtcyBmb3IgTFBNIGZvciB0
aGlzIGhvc3QsIGRpc2FibGluZyBMUE0uClsgICAgMi4wMTM2MTZdIHVzYiB1c2I4OiBOZXcgVVNC
IGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDMsIGJjZERldmljZT0g
Ni4wNgpbICAgIDIuMDE0NzE3XSB1c2IgdXNiODogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZy
PTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTEKWyAgICAyLjAxNTIzOF0gdXNiIHVzYjg6IFBy
b2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMi4wMTU3NDddIHVzYiB1c2I4OiBNYW51
ZmFjdHVyZXI6IExpbnV4IDYuNi43eGVuLWlycS1kYmctMSsgeGhjaS1oY2QKWyAgICAyLjAxNjUz
Ml0gdXNiIHVzYjg6IFNlcmlhbE51bWJlcjogMDAwMDpjMzowMC40ClsgICAgMi4wMTc2NTNdIGh1
YiA4LTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMi4wMTgyNTZdIGh1YiA4LTA6MS4wOiAxIHBv
cnQgZGV0ZWN0ZWQKWyAgICAyLjAyMTE1NF0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJm
YWNlIGRyaXZlciB1c2JzZXJpYWxfZ2VuZXJpYwpbICAgIDIuMDIyNTM3XSB1c2JzZXJpYWw6IFVT
QiBTZXJpYWwgc3VwcG9ydCByZWdpc3RlcmVkIGZvciBnZW5lcmljClsgICAgMi4wMjMxMDJdIGk4
MDQyOiBQTlA6IFBTLzIgQ29udHJvbGxlciBbUE5QMDMwMzpLQkMwXSBhdCAweDYwLDB4NjQgaXJx
IDEKWyAgICAyLjAyMzYzM10gaTgwNDI6IFBOUDogUFMvMiBhcHBlYXJzIHRvIGhhdmUgQVVYIHBv
cnQgZGlzYWJsZWQsIGlmIHRoaXMgaXMgaW5jb3JyZWN0IHBsZWFzZSBib290IHdpdGggaTgwNDIu
bm9wbnAKWyAgICAyLjAyNzU2MV0gaTgwNDI6IFdhcm5pbmc6IEtleWxvY2sgYWN0aXZlClsgICAg
Mi4wMzA4NzRdIHNlcmlvOiBpODA0MiBLQkQgcG9ydCBhdCAweDYwLDB4NjQgaXJxIDEKWyAgICAy
LjAzMjI5OV0gbW91c2VkZXY6IFBTLzIgbW91c2UgZGV2aWNlIGNvbW1vbiBmb3IgYWxsIG1pY2UK
WyAgICAyLjAzMzEyOF0gcnRjX2Ntb3MgMDA6MDE6IFJUQyBjYW4gd2FrZSBmcm9tIFM0ClsgICAg
Mi4wMzQwMjBdIHJ0Y19jbW9zIDAwOjAxOiByZWdpc3RlcmVkIGFzIHJ0YzAKWyAgICAyLjAzNDYy
MF0gcnRjX2Ntb3MgMDA6MDE6IHNldHRpbmcgc3lzdGVtIGNsb2NrIHRvIDIwMjMtMTItMjBUMTY6
Mjc6MTggVVRDICgxNzAzMDg5NjM4KQpbICAgIDIuMDM1Mjc5XSBydGNfY21vcyAwMDowMTogdXNp
bmcgQUNQSSAnXF9TQi5QQ0kwLkxQQzAuUlRDJyBmb3IgJ3dwJyBHUElPIGxvb2t1cApbICAgIDIu
MDM1Mjk2XSBhY3BpIFBOUDBCMDA6MDA6IEdQSU86IGxvb2tpbmcgdXAgd3AtZ3Bpb3MKWyAgICAy
LjAzNTMwMF0gYWNwaSBQTlAwQjAwOjAwOiBHUElPOiBsb29raW5nIHVwIHdwLWdwaW8KWyAgICAy
LjAzNTMwMV0gcnRjX2Ntb3MgMDA6MDE6IHVzaW5nIGxvb2t1cCB0YWJsZXMgZm9yIEdQSU8gbG9v
a3VwClsgICAgMi4wMzUzMDRdIHJ0Y19jbW9zIDAwOjAxOiBObyBHUElPIGNvbnN1bWVyIHdwIGZv
dW5kClsgICAgMi4wMzUzNDhdIHJ0Y19jbW9zIDAwOjAxOiBhbGFybXMgdXAgdG8gb25lIG1vbnRo
LCAxMTQgYnl0ZXMgbnZyYW0sIGhwZXQgaXJxcwpbICAgIDIuMDM2MTk2XSBkZXZpY2UtbWFwcGVy
OiBjb3JlOiBDT05GSUdfSU1BX0RJU0FCTEVfSFRBQkxFIGlzIGRpc2FibGVkLiBEdXBsaWNhdGUg
SU1BIG1lYXN1cmVtZW50cyB3aWxsIG5vdCBiZSByZWNvcmRlZCBpbiB0aGUgSU1BIGxvZy4KWyAg
ICAyLjAzNzA4OF0gZGV2aWNlLW1hcHBlcjogdWV2ZW50OiB2ZXJzaW9uIDEuMC4zClsgICAgMi4w
MzgwOTldIGRldmljZS1tYXBwZXI6IGlvY3RsOiA0LjQ4LjAtaW9jdGwgKDIwMjMtMDMtMDEpIGlu
aXRpYWxpc2VkOiBkbS1kZXZlbEByZWRoYXQuY29tClsgICAgMi4wNDIxNDVdIGhpZDogcmF3IEhJ
RCBldmVudHMgZHJpdmVyIChDKSBKaXJpIEtvc2luYQpbICAgIDIuMDQyMzUzXSBpbnB1dDogQVQg
VHJhbnNsYXRlZCBTZXQgMiBrZXlib2FyZCBhcyAvZGV2aWNlcy9wbGF0Zm9ybS9pODA0Mi9zZXJp
bzAvaW5wdXQvaW5wdXQyClsgICAgMi4wNDM0MzJdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGlu
dGVyZmFjZSBkcml2ZXIgdXNiaGlkClsgICAgMi4wNDQ2MDddIHVzYmhpZDogVVNCIEhJRCBjb3Jl
IGRyaXZlcgpbICAgIDIuMDQ1NDcyXSBkcm9wX21vbml0b3I6IEluaXRpYWxpemluZyBuZXR3b3Jr
IGRyb3AgbW9uaXRvciBzZXJ2aWNlClsgICAgMi4wNTU1MTZdIEluaXRpYWxpemluZyBYRlJNIG5l
dGxpbmsgc29ja2V0ClsgICAgMi4wNTY1ODFdIE5FVDogUmVnaXN0ZXJlZCBQRl9JTkVUNiBwcm90
b2NvbCBmYW1pbHkKWyAgICAyLjA2MjUxMF0gU2VnbWVudCBSb3V0aW5nIHdpdGggSVB2NgpbICAg
IDIuMDYzNjYzXSBSUEwgU2VnbWVudCBSb3V0aW5nIHdpdGggSVB2NgpbICAgIDIuMDY0MTc0XSBJ
bi1zaXR1IE9BTSAoSU9BTSkgd2l0aCBJUHY2ClsgICAgMi4wNjQ1OThdIG1pcDY6IE1vYmlsZSBJ
UHY2ClsgICAgMi4wNjUwMTZdIE5FVDogUmVnaXN0ZXJlZCBQRl9QQUNLRVQgcHJvdG9jb2wgZmFt
aWx5ClsgICAgMi4wNzAzNzVdIG1pY3JvY29kZTogQ1BVMjogcGF0Y2hfbGV2ZWw9MHgwYTcwNDEw
MwpbICAgIDIuMDcwMzc3XSBtaWNyb2NvZGU6IENQVTY6IHBhdGNoX2xldmVsPTB4MGE3MDQxMDMK
WyAgICAyLjA3MDM3OF0gbWljcm9jb2RlOiBDUFU3OiBwYXRjaF9sZXZlbD0weDBhNzA0MTAzClsg
ICAgMi4wNzAzODhdIG1pY3JvY29kZTogQ1BVMzogcGF0Y2hfbGV2ZWw9MHgwYTcwNDEwMwpbICAg
IDIuMDcwMzg5XSBtaWNyb2NvZGU6IENQVTEyOiBwYXRjaF9sZXZlbD0weDBhNzA0MTAzClsgICAg
Mi4wNzAzODhdIG1pY3JvY29kZTogQ1BVMTM6IHBhdGNoX2xldmVsPTB4MGE3MDQxMDMKWyAgICAy
LjA3MDM4OV0gbWljcm9jb2RlOiBDUFUxNDogcGF0Y2hfbGV2ZWw9MHgwYTcwNDEwMwpbICAgIDIu
MDcwMzkxXSBtaWNyb2NvZGU6IENQVTE1OiBwYXRjaF9sZXZlbD0weDBhNzA0MTAzClsgICAgMi4w
NzAzOTJdIG1pY3JvY29kZTogQ1BVNDogcGF0Y2hfbGV2ZWw9MHgwYTcwNDEwMwpbICAgIDIuMDcw
MzkzXSBtaWNyb2NvZGU6IENQVTU6IHBhdGNoX2xldmVsPTB4MGE3MDQxMDMKWyAgICAyLjA3MDM5
OV0gbWljcm9jb2RlOiBDUFU5OiBwYXRjaF9sZXZlbD0weDBhNzA0MTAzClsgICAgMi4wNzAzOTld
IG1pY3JvY29kZTogQ1BVODogcGF0Y2hfbGV2ZWw9MHgwYTcwNDEwMwpbICAgIDIuMDcwMzk5XSBt
aWNyb2NvZGU6IENQVTA6IHBhdGNoX2xldmVsPTB4MGE3MDQxMDMKWyAgICAyLjA3MDQxMV0gbWlj
cm9jb2RlOiBDUFUxMTogcGF0Y2hfbGV2ZWw9MHgwYTcwNDEwMwpbICAgIDIuMDcwNDExXSBtaWNy
b2NvZGU6IENQVTEwOiBwYXRjaF9sZXZlbD0weDBhNzA0MTAzClsgICAgMi4wNzA0OThdIG1pY3Jv
Y29kZTogQ1BVMTogcGF0Y2hfbGV2ZWw9MHgwYTcwNDEwMwpbICAgIDIuMDc3OTY4XSBtaWNyb2Nv
ZGU6IE1pY3JvY29kZSBVcGRhdGUgRHJpdmVyOiB2Mi4yLgpbICAgIDIuMDgzMzk2XSByZXNjdHJs
OiBMMyBhbGxvY2F0aW9uIGRldGVjdGVkClsgICAgMi4wODQ4MDNdIHJlc2N0cmw6IE1CIGFsbG9j
YXRpb24gZGV0ZWN0ZWQKWyAgICAyLjA4NTE4NV0gcmVzY3RybDogU01CQSBhbGxvY2F0aW9uIGRl
dGVjdGVkClsgICAgMi4wODU1NzNdIHJlc2N0cmw6IEwzIG1vbml0b3JpbmcgZGV0ZWN0ZWQKWyAg
ICAyLjA4NTk3MF0gSVBJIHNob3J0aGFuZCBicm9hZGNhc3Q6IGVuYWJsZWQKWyAgICAyLjA4NjM1
OF0gQVZYMiB2ZXJzaW9uIG9mIGdjbV9lbmMvZGVjIGVuZ2FnZWQuClsgICAgMi4wODc5MDldIEFF
UyBDVFIgbW9kZSBieTggb3B0aW1pemF0aW9uIGVuYWJsZWQKWyAgICAyLjA5MTIzNF0gc2NoZWRf
Y2xvY2s6IE1hcmtpbmcgc3RhYmxlICgyMDg5MDEwODE5LCAxNjU1Nzg0KS0+KDIxMTE4NjM5ODMs
IC0yMTE5NzM4MCkKWyAgICAyLjA5MjE0Nl0gcmVnaXN0ZXJlZCB0YXNrc3RhdHMgdmVyc2lvbiAx
ClsgICAgMi4wOTQ3MjRdIExvYWRpbmcgY29tcGlsZWQtaW4gWC41MDkgY2VydGlmaWNhdGVzClsg
ICAgMi4xMDIxMjVdIExvYWRlZCBYLjUwOSBjZXJ0ICdCdWlsZCB0aW1lIGF1dG9nZW5lcmF0ZWQg
a2VybmVsIGtleTogM2Y2YTU3ZmIzZjM4OThiN2JlOWM4MmMxODIwZTRmOTEyM2U4ZTA3ZicKWyAg
ICAyLjEwNjAwN10gcGFnZV9vd25lciBpcyBkaXNhYmxlZApbICAgIDIuMTA3MjczXSBLZXkgdHlw
ZSAuZnNjcnlwdCByZWdpc3RlcmVkClsgICAgMi4xMDgxMzddIEtleSB0eXBlIGZzY3J5cHQtcHJv
dmlzaW9uaW5nIHJlZ2lzdGVyZWQKWyAgICAyLjEwOTY4MV0gQnRyZnMgbG9hZGVkLCB6b25lZD15
ZXMsIGZzdmVyaXR5PXllcwpbICAgIDIuMTEwNTQwXSBLZXkgdHlwZSBiaWdfa2V5IHJlZ2lzdGVy
ZWQKWyAgICAyLjExNjc0MF0gS2V5IHR5cGUgZW5jcnlwdGVkIHJlZ2lzdGVyZWQKWyAgICAyLjEy
MDY0Ml0gaW50ZWdyaXR5OiBMb2FkaW5nIFguNTA5IGNlcnRpZmljYXRlOiBVRUZJOmRiClsgICAg
Mi4xMjE1NjVdIGludGVncml0eTogTG9hZGVkIFguNTA5IGNlcnQgJ01pY3Jvc29mdCBXaW5kb3dz
IFByb2R1Y3Rpb24gUENBIDIwMTE6IGE5MjkwMjM5OGUxNmM0OTc3OGNkOTBmOTllNGY5YWUxN2M1
NWFmNTMnClsgICAgMi4xMjIwMTNdIGludGVncml0eTogTG9hZGluZyBYLjUwOSBjZXJ0aWZpY2F0
ZTogVUVGSTpkYgpbICAgIDIuMTIyNDI2XSBpbnRlZ3JpdHk6IExvYWRlZCBYLjUwOSBjZXJ0ICdN
aWNyb3NvZnQgQ29ycG9yYXRpb24gVUVGSSBDQSAyMDExOiAxM2FkYmY0MzA5YmQ4MjcwOWM4Y2Q1
NGYzMTZlZDUyMjk4OGExYmQ0JwpbICAgIDIuMTIyODM2XSBpbnRlZ3JpdHk6IExvYWRpbmcgWC41
MDkgY2VydGlmaWNhdGU6IFVFRkk6ZGIKWyAgICAyLjEyMzIyMV0gaW50ZWdyaXR5OiBMb2FkZWQg
WC41MDkgY2VydCAnZnJhbWUud29yay1MYXB0b3BBTUREQjogMDInClsgICAgMi4xMzQ4NzVdIGlt
YTogTm8gVFBNIGNoaXAgZm91bmQsIGFjdGl2YXRpbmcgVFBNLWJ5cGFzcyEKWyAgICAyLjEzNTM2
MF0gTG9hZGluZyBjb21waWxlZC1pbiBtb2R1bGUgWC41MDkgY2VydGlmaWNhdGVzClsgICAgMi4x
MzYwMzhdIExvYWRlZCBYLjUwOSBjZXJ0ICdCdWlsZCB0aW1lIGF1dG9nZW5lcmF0ZWQga2VybmVs
IGtleTogM2Y2YTU3ZmIzZjM4OThiN2JlOWM4MmMxODIwZTRmOTEyM2U4ZTA3ZicKWyAgICAyLjEz
NjQxMl0gaW1hOiBBbGxvY2F0ZWQgaGFzaCBhbGdvcml0aG06IHNoYTI1NgpbICAgIDIuMTM2ODg2
XSBpbWE6IE5vIGFyY2hpdGVjdHVyZSBwb2xpY2llcyBmb3VuZApbICAgIDIuMTM4MDI4XSBldm06
IEluaXRpYWxpc2luZyBFVk0gZXh0ZW5kZWQgYXR0cmlidXRlczoKWyAgICAyLjEzODU2Nl0gZXZt
OiBzZWN1cml0eS5zZWxpbnV4ClsgICAgMi4xMzkwNzddIGV2bTogc2VjdXJpdHkuU01BQ0s2NCAo
ZGlzYWJsZWQpClsgICAgMi4xMzk1ODZdIGV2bTogc2VjdXJpdHkuU01BQ0s2NEVYRUMgKGRpc2Fi
bGVkKQpbICAgIDIuMTQwMTgwXSBldm06IHNlY3VyaXR5LlNNQUNLNjRUUkFOU01VVEUgKGRpc2Fi
bGVkKQpbICAgIDIuMTQwNTU4XSBldm06IHNlY3VyaXR5LlNNQUNLNjRNTUFQIChkaXNhYmxlZCkK
WyAgICAyLjE0MDk1M10gZXZtOiBzZWN1cml0eS5hcHBhcm1vciAoZGlzYWJsZWQpClsgICAgMi4x
NDEzMTddIGV2bTogc2VjdXJpdHkuaW1hClsgICAgMi4xNDE3NDBdIGV2bTogc2VjdXJpdHkuY2Fw
YWJpbGl0eQpbICAgIDIuMTQyMjA5XSBldm06IEhNQUMgYXR0cnM6IDB4MQpbICAgIDIuMTkzOTU5
XSBhbGc6IE5vIHRlc3QgZm9yIDg0MiAoODQyLXNjb21wKQpbICAgIDIuMTk1NzMxXSBhbGc6IE5v
IHRlc3QgZm9yIDg0MiAoODQyLWdlbmVyaWMpClsgICAgMi4yMzU3NDVdIHVzYiAxLTE6IG5ldyBm
dWxsLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDIgdXNpbmcgeGhjaV9oY2QKWyAgICAyLjI1MTY4
NF0gdXNiIDctMTogbmV3IGhpZ2gtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgMiB1c2luZyB4aGNp
X2hjZApbICAgIDIuMjY1OTEyXSBQTTogICBNYWdpYyBudW1iZXI6IDM6MTY1OjQ5MApbICAgIDIu
Mzc4MjYzXSBSQVM6IENvcnJlY3RhYmxlIEVycm9ycyBjb2xsZWN0b3IgaW5pdGlhbGl6ZWQuClsg
ICAgMi4zODA4MjldIGNsazogRGlzYWJsaW5nIHVudXNlZCBjbG9ja3MKWyAgICAyLjM4Mjg1MF0g
RnJlZWluZyB1bnVzZWQgZGVjcnlwdGVkIG1lbW9yeTogMjAyOEsKWyAgICAyLjM4NDI2MF0gRnJl
ZWluZyB1bnVzZWQga2VybmVsIGltYWdlIChpbml0bWVtKSBtZW1vcnk6IDM5NDRLClsgICAgMi4z
ODU3MDFdIFdyaXRlIHByb3RlY3RpbmcgdGhlIGtlcm5lbCByZWFkLW9ubHkgZGF0YTogMzQ4MTZr
ClsgICAgMi4zODU3MDZdIHVzYiA3LTE6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0x
N2VmLCBpZFByb2R1Y3Q9YTM5MiwgYmNkRGV2aWNlPSBkLjI0ClsgICAgMi4zODY2MzddIHVzYiA3
LTE6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJl
cj0wClsgICAgMi4zODcyMDZdIHVzYiA3LTE6IFByb2R1Y3Q6IFVTQjIuMCBIdWIKWyAgICAyLjM4
Nzc0Nl0gdXNiIDctMTogTWFudWZhY3R1cmVyOiBWSUEgTGFicywgSW5jLgpbICAgIDIuMzg4NzEw
XSBGcmVlaW5nIHVudXNlZCBrZXJuZWwgaW1hZ2UgKHJvZGF0YS9kYXRhIGdhcCkgbWVtb3J5OiAx
OTI4SwpbICAgIDIuMzkyNzI4XSB1c2IgMS0xOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5k
b3I9MDQ2ZCwgaWRQcm9kdWN0PWM1NDgsIGJjZERldmljZT0gNS4wMQpbICAgIDIuMzkzOTExXSB1
c2IgMS0xOiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MSwgUHJvZHVjdD0yLCBTZXJpYWxO
dW1iZXI9MApbICAgIDIuMzk0NTQ4XSB1c2IgMS0xOiBQcm9kdWN0OiBVU0IgUmVjZWl2ZXIKWyAg
ICAyLjM5NTAxMl0gdXNiIDEtMTogTWFudWZhY3R1cmVyOiBMb2dpdGVjaApbICAgIDIuNDEzMDcy
XSBpbnB1dDogTG9naXRlY2ggVVNCIFJlY2VpdmVyIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAw
MDowMDowOC4xLzAwMDA6YzE6MDAuMy91c2IxLzEtMS8xLTE6MS4wLzAwMDM6MDQ2RDpDNTQ4LjAw
MDEvaW5wdXQvaW5wdXQzClsgICAgMi40MTk5MzldIHg4Ni9tbTogQ2hlY2tlZCBXK1ggbWFwcGlu
Z3M6IHBhc3NlZCwgbm8gVytYIHBhZ2VzIGZvdW5kLgpbICAgIDIuNDIwNjM1XSBSdW4gL2luaXQg
YXMgaW5pdCBwcm9jZXNzClsgICAgMi40MjEwOTldICAgd2l0aCBhcmd1bWVudHM6ClsgICAgMi40
MjExMDFdICAgICAvaW5pdApbICAgIDIuNDIxMTAyXSAgIHdpdGggZW52aXJvbm1lbnQ6ClsgICAg
Mi40MjExMDNdICAgICBIT01FPS8KWyAgICAyLjQyMTEwM10gICAgIFRFUk09bGludXgKWyAgICAy
LjQyMTEwNF0gICAgIEJPT1RfSU1BR0U9L2Jvb3Qvdm1saW51ei02LjYuN3hlbi1pcnEtZGJnLTEr
ClsgICAgMi40MjQxOTVdIGh1YiA3LTE6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMi40MjU0Njld
IGh1YiA3LTE6MS4wOiA0IHBvcnRzIGRldGVjdGVkClsgICAgMi40NDM0MDZdIHN5c3RlbWRbMV06
IHN5c3RlbWQgMjU0LjctMS5mYzM5IHJ1bm5pbmcgaW4gc3lzdGVtIG1vZGUgKCtQQU0gK0FVRElU
ICtTRUxJTlVYIC1BUFBBUk1PUiArSU1BICtTTUFDSyArU0VDQ09NUCAtR0NSWVBUICtHTlVUTFMg
K09QRU5TU0wgK0FDTCArQkxLSUQgK0NVUkwgK0VMRlVUSUxTICtGSURPMiArSUROMiAtSUROIC1J
UFRDICtLTU9EICtMSUJDUllQVFNFVFVQICtMSUJGRElTSyArUENSRTIgK1BXUVVBTElUWSArUDEx
S0lUICtRUkVOQ09ERSArVFBNMiArQlpJUDIgK0xaNCArWFogK1pMSUIgK1pTVEQgK0JQRl9GUkFN
RVdPUksgK1hLQkNPTU1PTiArVVRNUCArU1lTVklOSVQgZGVmYXVsdC1oaWVyYXJjaHk9dW5pZmll
ZCkKWyAgICAyLjQ0NTA3Nl0gc3lzdGVtZFsxXTogRGV0ZWN0ZWQgYXJjaGl0ZWN0dXJlIHg4Ni02
NC4KWyAgICAyLjQ0NjAxNl0gc3lzdGVtZFsxXTogUnVubmluZyBpbiBpbml0cmQuClsgICAgMi40
NTAwMTRdIHN5c3RlbWRbMV06IE5vIGhvc3RuYW1lIGNvbmZpZ3VyZWQsIHVzaW5nIGRlZmF1bHQg
aG9zdG5hbWUuClsgICAgMi40NTA4NTZdIHN5c3RlbWRbMV06IEhvc3RuYW1lIHNldCB0byA8ZmVk
b3JhPi4KWyAgICAyLjQ2NjEzNl0gaGlkLWdlbmVyaWMgMDAwMzowNDZEOkM1NDguMDAwMTogaW5w
dXQsaGlkcmF3MDogVVNCIEhJRCB2MS4xMSBLZXlib2FyZCBbTG9naXRlY2ggVVNCIFJlY2VpdmVy
XSBvbiB1c2ItMDAwMDpjMTowMC4zLTEvaW5wdXQwClsgICAgMi40NzIxMDRdIGlucHV0OiBMb2dp
dGVjaCBVU0IgUmVjZWl2ZXIgTW91c2UgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4
LjEvMDAwMDpjMTowMC4zL3VzYjEvMS0xLzEtMToxLjEvMDAwMzowNDZEOkM1NDguMDAwMi9pbnB1
dC9pbnB1dDQKWyAgICAyLjQ3NjQxNF0gaW5wdXQ6IExvZ2l0ZWNoIFVTQiBSZWNlaXZlciBDb25z
dW1lciBDb250cm9sIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6YzE6
MDAuMy91c2IxLzEtMS8xLTE6MS4xLzAwMDM6MDQ2RDpDNTQ4LjAwMDIvaW5wdXQvaW5wdXQ1Clsg
ICAgMi41MTg1NjddIHVzYiA4LTE6IG5ldyBTdXBlclNwZWVkIFBsdXMgR2VuIDJ4MSBVU0IgZGV2
aWNlIG51bWJlciAyIHVzaW5nIHhoY2lfaGNkClsgICAgMi41Mjg5NDNdIGlucHV0OiBMb2dpdGVj
aCBVU0IgUmVjZWl2ZXIgU3lzdGVtIENvbnRyb2wgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAw
OjAwOjA4LjEvMDAwMDpjMTowMC4zL3VzYjEvMS0xLzEtMToxLjEvMDAwMzowNDZEOkM1NDguMDAw
Mi9pbnB1dC9pbnB1dDYKWyAgICAyLjUzMjA0N10gaGlkLWdlbmVyaWMgMDAwMzowNDZEOkM1NDgu
MDAwMjogaW5wdXQsaGlkcmF3MTogVVNCIEhJRCB2MS4xMSBNb3VzZSBbTG9naXRlY2ggVVNCIFJl
Y2VpdmVyXSBvbiB1c2ItMDAwMDpjMTowMC4zLTEvaW5wdXQxClsgICAgMi41Mzc4MDVdIGhpZC1n
ZW5lcmljIDAwMDM6MDQ2RDpDNTQ4LjAwMDM6IGhpZGRldjk2LGhpZHJhdzI6IFVTQiBISUQgdjEu
MTEgRGV2aWNlIFtMb2dpdGVjaCBVU0IgUmVjZWl2ZXJdIG9uIHVzYi0wMDAwOmMxOjAwLjMtMS9p
bnB1dDIKWyAgICAyLjYxNDIzMV0gdXNiIDgtMTogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVu
ZG9yPTE3ZWYsIGlkUHJvZHVjdD1hMzkxLCBiY2REZXZpY2U9IGQuMjQKWyAgICAyLjYxNTY2N10g
dXNiIDgtMTogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFs
TnVtYmVyPTAKWyAgICAyLjYxNjQ1NV0gdXNiIDgtMTogUHJvZHVjdDogVVNCMy4xIEh1YgpbICAg
IDIuNjE2ODgwXSB1c2IgOC0xOiBNYW51ZmFjdHVyZXI6IFZJQSBMYWJzLCBJbmMuClsgICAgMi42
Mzg2OTVdIHN5c3RlbWRbMV06IGJwZi1sc206IExTTSBCUEYgcHJvZ3JhbSBhdHRhY2hlZApbICAg
IDIuNjQ4MjMzXSBodWIgOC0xOjEuMDogVVNCIGh1YiBmb3VuZApbICAgIDIuNjUwOTczXSBodWIg
OC0xOjEuMDogNCBwb3J0cyBkZXRlY3RlZApbICAgIDIuNjU0NzEwXSB1c2IgMS00OiBuZXcgZnVs
bC1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciAzIHVzaW5nIHhoY2lfaGNkClsgICAgMi42ODk0MDFd
IHN5c3RlbWRbMV06IFF1ZXVlZCBzdGFydCBqb2IgZm9yIGRlZmF1bHQgdGFyZ2V0IGluaXRyZC50
YXJnZXQuClsgICAgMi43MDM3NDVdIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IGluaXRyZC11
c3ItZnMudGFyZ2V0IC0gSW5pdHJkIC91c3IgRmlsZSBTeXN0ZW0uClsgICAgMi43MDQ3ODVdIHN5
c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IHNsaWNlcy50YXJnZXQgLSBTbGljZSBVbml0cy4KWyAg
ICAyLjcwNTY5MF0gc3lzdGVtZFsxXTogUmVhY2hlZCB0YXJnZXQgc3dhcC50YXJnZXQgLSBTd2Fw
cy4KWyAgICAyLjcwNjU5MF0gc3lzdGVtZFsxXTogUmVhY2hlZCB0YXJnZXQgdGltZXJzLnRhcmdl
dCAtIFRpbWVyIFVuaXRzLgpbICAgIDIuNzA5NjM0XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24g
ZGJ1cy5zb2NrZXQgLSBELUJ1cyBTeXN0ZW0gTWVzc2FnZSBCdXMgU29ja2V0LgpbICAgIDIuNzEy
NTUwXSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gc3lzdGVtZC1qb3VybmFsZC1kZXYtbG9nLnNv
Y2tldCAtIEpvdXJuYWwgU29ja2V0ICgvZGV2L2xvZykuClsgICAgMi43MTQ5MThdIHN5c3RlbWRb
MV06IExpc3RlbmluZyBvbiBzeXN0ZW1kLWpvdXJuYWxkLnNvY2tldCAtIEpvdXJuYWwgU29ja2V0
LgpbICAgIDIuNzE3MDY3XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gc3lzdGVtZC11ZGV2ZC1j
b250cm9sLnNvY2tldCAtIHVkZXYgQ29udHJvbCBTb2NrZXQuClsgICAgMi43MTg4MzJdIHN5c3Rl
bWRbMV06IExpc3RlbmluZyBvbiBzeXN0ZW1kLXVkZXZkLWtlcm5lbC5zb2NrZXQgLSB1ZGV2IEtl
cm5lbCBTb2NrZXQuClsgICAgMi43MjA0OTddIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IHNv
Y2tldHMudGFyZ2V0IC0gU29ja2V0IFVuaXRzLgpbICAgIDIuNzI0NTI5XSBzeXN0ZW1kWzFdOiBT
dGFydGluZyBrbW9kLXN0YXRpYy1ub2Rlcy5zZXJ2aWNlIC0gQ3JlYXRlIExpc3Qgb2YgU3RhdGlj
IERldmljZSBOb2Rlcy4uLgpbICAgIDIuNzI2OTQyXSBzeXN0ZW1kWzFdOiBtZW1zdHJhY2suc2Vy
dmljZSAtIE1lbXN0cmFjayBBbnlsYXppbmcgU2VydmljZSB3YXMgc2tpcHBlZCBiZWNhdXNlIG5v
IHRyaWdnZXIgY29uZGl0aW9uIGNoZWNrcyB3ZXJlIG1ldC4KWyAgICAyLjczMDQ4OF0gc3lzdGVt
ZFsxXTogU3RhcnRpbmcgc3lzdGVtZC1qb3VybmFsZC5zZXJ2aWNlIC0gSm91cm5hbCBTZXJ2aWNl
Li4uClsgICAgMi43MzQ3MjNdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIHN5c3RlbWQtbW9kdWxlcy1s
b2FkLnNlcnZpY2UgLSBMb2FkIEtlcm5lbCBNb2R1bGVzLi4uClsgICAgMi43MzgwMzBdIHN5c3Rl
bWRbMV06IFN0YXJ0aW5nIHN5c3RlbWQtc3lzdXNlcnMuc2VydmljZSAtIENyZWF0ZSBTeXN0ZW0g
VXNlcnMuLi4KWyAgICAyLjc0MDU3OV0gc3lzdGVtZC1qb3VybmFsZFszNDNdOiBDb2xsZWN0aW5n
IGF1ZGl0IG1lc3NhZ2VzIGlzIGRpc2FibGVkLgpbICAgIDIuNzQ0ODA0XSBzeXN0ZW1kWzFdOiBT
dGFydGluZyBzeXN0ZW1kLXZjb25zb2xlLXNldHVwLnNlcnZpY2UgLSBWaXJ0dWFsIENvbnNvbGUg
U2V0dXAuLi4KWyAgICAyLjc1Mzg2MF0gZnVzZTogaW5pdCAoQVBJIHZlcnNpb24gNy4zOSkKWyAg
ICAyLjc1NzQ3OV0gaTJjX2RldjogaTJjIC9kZXYgZW50cmllcyBkcml2ZXIKWyAgICAyLjc2ODk2
M10gc3lzdGVtZFsxXTogRmluaXNoZWQga21vZC1zdGF0aWMtbm9kZXMuc2VydmljZSAtIENyZWF0
ZSBMaXN0IG9mIFN0YXRpYyBEZXZpY2UgTm9kZXMuClsgICAgMi43OTc5NjBdIHN5c3RlbWRbMV06
IEZpbmlzaGVkIHN5c3RlbWQtc3lzdXNlcnMuc2VydmljZSAtIENyZWF0ZSBTeXN0ZW0gVXNlcnMu
ClsgICAgMi44MDA0NThdIHN5c3RlbWRbMV06IFN0YXJ0ZWQgc3lzdGVtZC1qb3VybmFsZC5zZXJ2
aWNlIC0gSm91cm5hbCBTZXJ2aWNlLgpbICAgIDIuODE3NzcyXSB1c2IgMS00OiBOZXcgVVNCIGRl
dmljZSBmb3VuZCwgaWRWZW5kb3I9MjdjNiwgaWRQcm9kdWN0PTYwOWMsIGJjZERldmljZT0gMS4w
MApbICAgIDIuODE4ODc4XSB1c2IgMS00OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MSwg
UHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MwpbICAgIDIuODE5NDE3XSB1c2IgMS00OiBQcm9kdWN0
OiBHb29kaXggVVNCMi4wIE1JU0MKWyAgICAyLjgxOTkzMV0gdXNiIDEtNDogTWFudWZhY3R1cmVy
OiBHb29kaXggVGVjaG5vbG9neSBDby4sIEx0ZC4KWyAgICAyLjgyMDQyN10gdXNiIDEtNDogU2Vy
aWFsTnVtYmVyOiBVSURENUYwNEE3Ql9YWFhYX01PQ19CMApbICAgIDIuOTQ2NjcwXSB1c2IgMS01
OiBuZXcgaGlnaC1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciA0IHVzaW5nIHhoY2lfaGNkClsgICAg
Mi45OTk1NDddIFJvdW5kaW5nIGRvd24gYWxpZ25lZCBtYXhfc2VjdG9ycyBmcm9tIDQyOTQ5Njcy
OTUgdG8gNDI5NDk2NzI4OApbICAgIDMuMDAwMjc4XSBkYl9yb290OiBjYW5ub3Qgb3BlbjogL2V0
Yy90YXJnZXQKWyAgICAzLjA4MDIyOV0gdXNiIDEtNTogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlk
VmVuZG9yPTBlOGQsIGlkUHJvZHVjdD1lNjE2LCBiY2REZXZpY2U9IDEuMDAKWyAgICAzLjA4MTQy
NF0gdXNiIDEtNTogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTUsIFByb2R1Y3Q9NiwgU2Vy
aWFsTnVtYmVyPTcKWyAgICAzLjA4MjAwN10gdXNiIDEtNTogUHJvZHVjdDogV2lyZWxlc3NfRGV2
aWNlClsgICAgMy4wODI1NTddIHVzYiAxLTU6IE1hbnVmYWN0dXJlcjogTWVkaWFUZWsgSW5jLgpb
ICAgIDMuMDgzMTAzXSB1c2IgMS01OiBTZXJpYWxOdW1iZXI6IDAwMDAwMDAwMApbICAgIDMuMTcy
MTgwXSBhY3BpIEZSTVcwMDA0OjAwOiBHUElPOiBsb29raW5nIHVwIDAgaW4gX0NSUwpbICAgIDMu
MTcyMjQzXSBhY3BpIEZSTVcwMDA1OjAwOiBHUElPOiBsb29raW5nIHVwIDAgaW4gX0NSUwpbICAg
IDMuMTcyMzQ2XSBhbWRfZ3BpbyBBTURJMDAzMDowMDogSW52YWxpZCBjb25maWcgcGFyYW0gMDAx
NApbICAgIDMuMTcyMzUxXSBncGlvIGdwaW9jaGlwMDogUGVyc2lzdGVuY2Ugbm90IHN1cHBvcnRl
ZCBmb3IgR1BJTyA4NApbICAgIDMuMTcyNDg2XSBhbWRfZ3BpbyBBTURJMDAzMDowMDogSW52YWxp
ZCBjb25maWcgcGFyYW0gMDAxNApbICAgIDMuMTcyNDkwXSBncGlvIGdwaW9jaGlwMDogUGVyc2lz
dGVuY2Ugbm90IHN1cHBvcnRlZCBmb3IgR1BJTyA1ClsgICAgMy4xNzI0OTJdIGFjcGkgUElYQTM4
NTQ6MDA6IEdQSU86IGxvb2tpbmcgdXAgMCBpbiBfQ1JTClsgICAgMy4xNzI1NzBdIGFtZF9ncGlv
IEFNREkwMDMwOjAwOiBJbnZhbGlkIGNvbmZpZyBwYXJhbSAwMDE0ClsgICAgMy4xNzI1NzRdIGdw
aW8gZ3Bpb2NoaXAwOiBQZXJzaXN0ZW5jZSBub3Qgc3VwcG9ydGVkIGZvciBHUElPIDgKWyAgICAz
LjE3MzA2OF0gQUNQSTogdmlkZW86IFZpZGVvIERldmljZSBbVkdBXSAobXVsdGktaGVhZDogeWVz
ICByb206IG5vICBwb3N0OiBubykKWyAgICAzLjE3NDk0Ml0gaW5wdXQ6IFZpZGVvIEJ1cyBhcyAv
ZGV2aWNlcy9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQTA4OjAwL2RldmljZToxNi9MTlhW
SURFTzowMC9pbnB1dC9pbnB1dDcKWyAgICAzLjE3NjU0OV0gR1BJTyA4IGlzIGFjdGl2ZTogMHgx
ODE0MWIwMApbICAgIDMuMTc3Njk4XSBzcDUxMDBfdGNvOiBTUDUxMDAvU0I4MDAgVENPIFdhdGNo
RG9nIFRpbWVyIERyaXZlcgpbICAgIDMuMTc5Mjg1XSBzcDUxMDAtdGNvIHNwNTEwMC10Y286IFVz
aW5nIDB4ZmViMDAwMDAgZm9yIHdhdGNoZG9nIE1NSU8gYWRkcmVzcwpbICAgIDMuMTgwNjcyXSBz
cDUxMDAtdGNvIHNwNTEwMC10Y286IGluaXRpYWxpemVkLiBoZWFydGJlYXQ9NjAgc2VjIChub3dh
eW91dD0wKQpbICAgIDMuMTgzNjI5XSBHUElPIDggaXMgYWN0aXZlOiAweDE4MTQxYjAwClsgICAg
My4xODQ3MjFdIGNjcCAwMDAwOmMxOjAwLjI6IGVuYWJsaW5nIGRldmljZSAoMDAwMCAtPiAwMDAy
KQpbICAgIDMuMTkwNzExXSBHUElPIDggaXMgYWN0aXZlOiAweDE4MTQxYjAwClsgICAgMy4xOTYx
ODhdIGNjcCAwMDAwOmMxOjAwLjI6IHRlZSBlbmFibGVkClsgICAgMy4xOTc3OTNdIEdQSU8gOCBp
cyBhY3RpdmU6IDB4MTgxNDFiMDAKWyAgICAzLjE5Nzg2NF0gY2NwIDAwMDA6YzE6MDAuMjogcHNw
IGVuYWJsZWQKWyAgICAzLjIwMDY2OV0gdXNiIDctMS4zOiBuZXcgaGlnaC1zcGVlZCBVU0IgZGV2
aWNlIG51bWJlciAzIHVzaW5nIHhoY2lfaGNkClsgICAgMy4yMzYxNDVdIEdQSU8gOCBpcyBhY3Rp
dmU6IDB4MTgxNDFiMDAKWyAgICAzLjI1NzkxN10gR1BJTyA4NCBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgICAzLjI1OTQzMV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgIDMuMjU5
NDU1XSBHUElPIDg0IGlzIGFjdGl2ZTogMHgxMDE0MGIwMApbICAgIDMuMzE4Njg3XSBpbnB1dDog
UElYQTM4NTQ6MDAgMDkzQTowMjc0IE1vdXNlIGFzIC9kZXZpY2VzL3BsYXRmb3JtL0FNREkwMDEw
OjAzL2kyYy0xL2kyYy1QSVhBMzg1NDowMC8wMDE4OjA5M0E6MDI3NC4wMDA0L2lucHV0L2lucHV0
OApbICAgIDMuMzIwMDU5XSBpbnB1dDogUElYQTM4NTQ6MDAgMDkzQTowMjc0IFRvdWNocGFkIGFz
IC9kZXZpY2VzL3BsYXRmb3JtL0FNREkwMDEwOjAzL2kyYy0xL2kyYy1QSVhBMzg1NDowMC8wMDE4
OjA5M0E6MDI3NC4wMDA0L2lucHV0L2lucHV0OQpbICAgIDMuMzIwODU4XSBoaWQtZ2VuZXJpYyAw
MDE4OjA5M0E6MDI3NC4wMDA0OiBpbnB1dCxoaWRyYXczOiBJMkMgSElEIHYxLjAwIE1vdXNlIFtQ
SVhBMzg1NDowMCAwOTNBOjAyNzRdIG9uIGkyYy1QSVhBMzg1NDowMApbICAgIDMuMzQyMjY1XSBp
bnB1dDogRlJNVzAwMDQ6MDAgMzJBQzowMDA2IFdpcmVsZXNzIFJhZGlvIENvbnRyb2wgYXMgL2Rl
dmljZXMvcGxhdGZvcm0vQU1ESTAwMTA6MDAvaTJjLTAvaTJjLUZSTVcwMDA0OjAwLzAwMTg6MzJB
QzowMDA2LjAwMDUvaW5wdXQvaW5wdXQxMApbICAgIDMuMzQzMDAzXSB1c2IgNy0xLjM6IE5ldyBV
U0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xN2VmLCBpZFByb2R1Y3Q9YTM5NCwgYmNkRGV2aWNl
PSBkLjIzClsgICAgMy4zNDMwMTVdIHVzYiA3LTEuMzogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczog
TWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTAKWyAgICAzLjM0MzAyNV0gdXNiIDctMS4z
OiBQcm9kdWN0OiBVU0IyLjAgSHViClsgICAgMy4zNDMwMzJdIHVzYiA3LTEuMzogTWFudWZhY3R1
cmVyOiBWSUEgTGFicywgSW5jLgpbICAgIDMuMzQzNzU5XSBpbnB1dDogRlJNVzAwMDQ6MDAgMzJB
QzowMDA2IENvbnN1bWVyIENvbnRyb2wgYXMgL2RldmljZXMvcGxhdGZvcm0vQU1ESTAwMTA6MDAv
aTJjLTAvaTJjLUZSTVcwMDA0OjAwLzAwMTg6MzJBQzowMDA2LjAwMDUvaW5wdXQvaW5wdXQxMQpb
ICAgIDMuMzQ5MzU5XSBHUElPIDggaXMgYWN0aXZlOiAweDE4MTQxYjAwClsgICAgMy4zNjA0OTdd
IEdQSU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFiMDAKWyAgICAzLjM2NTk2Nl0gaGlkLWdlbmVyaWMg
MDAxODozMkFDOjAwMDYuMDAwNTogaW5wdXQsaGlkcmF3MzogSTJDIEhJRCB2MS4wMCBEZXZpY2Ug
W0ZSTVcwMDA0OjAwIDMyQUM6MDAwNl0gb24gaTJjLUZSTVcwMDA0OjAwClsgICAgMy4zNjcyOTBd
IGlucHV0OiBQSVhBMzg1NDowMCAwOTNBOjAyNzQgTW91c2UgYXMgL2RldmljZXMvcGxhdGZvcm0v
QU1ESTAwMTA6MDMvaTJjLTEvaTJjLVBJWEEzODU0OjAwLzAwMTg6MDkzQTowMjc0LjAwMDQvaW5w
dXQvaW5wdXQxMgpbICAgIDMuMzY3NTA3XSBHUElPIDggaXMgYWN0aXZlOiAweDE4MTQxYjAwClsg
ICAgMy4zNjc1ODNdIGlucHV0OiBQSVhBMzg1NDowMCAwOTNBOjAyNzQgVG91Y2hwYWQgYXMgL2Rl
dmljZXMvcGxhdGZvcm0vQU1ESTAwMTA6MDMvaTJjLTEvaTJjLVBJWEEzODU0OjAwLzAwMTg6MDkz
QTowMjc0LjAwMDQvaW5wdXQvaW5wdXQxMwpbICAgIDMuMzY3NzQ5XSBoaWQtbXVsdGl0b3VjaCAw
MDE4OjA5M0E6MDI3NC4wMDA0OiBpbnB1dCxoaWRyYXc0OiBJMkMgSElEIHYxLjAwIE1vdXNlIFtQ
SVhBMzg1NDowMCAwOTNBOjAyNzRdIG9uIGkyYy1QSVhBMzg1NDowMApbICAgIDMuMzc0NjE2XSBH
UElPIDggaXMgYWN0aXZlOiAweDE4MTQxYjAwClsgICAgMy4zODE2NzBdIEdQSU8gOCBpcyBhY3Rp
dmU6IDB4MTgxNDFiMDAKWyAgICAzLjM4MzQzN10gaHViIDctMS4zOjEuMDogVVNCIGh1YiBmb3Vu
ZApbICAgIDMuMzgzOTk1XSBodWIgNy0xLjM6MS4wOiA0IHBvcnRzIGRldGVjdGVkClsgICAgMy4z
ODg2MjJdIEdQSU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFiMDAKWyAgICAzLjM5NTcxMV0gR1BJTyA4
IGlzIGFjdGl2ZTogMHgxODE0MWIwMApbICAgIDMuNDAyODAxXSBHUElPIDggaXMgYWN0aXZlOiAw
eDE4MTQxYjAwClsgICAgMy40MDk4ODNdIEdQSU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFiMDAKWyAg
ICAzLjQxNTI4NV0gdXNiIDgtMS4xOiBuZXcgU3VwZXJTcGVlZCBVU0IgZGV2aWNlIG51bWJlciAz
IHVzaW5nIHhoY2lfaGNkClsgICAgMy40MTY5NDhdIEdQSU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFi
MDAKWyAgICAzLjQyMzk5NF0gR1BJTyA4IGlzIGFjdGl2ZTogMHgxODE0MWIwMApbICAgIDMuNDI4
MDIyXSB1c2IgOC0xLjE6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xN2VmLCBpZFBy
b2R1Y3Q9YTM4NywgYmNkRGV2aWNlPTMxLjAzClsgICAgMy40MjgwNjRdIHVzYiA4LTEuMTogTmV3
IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTYKWyAg
ICAzLjQyODA5NV0gdXNiIDgtMS4xOiBQcm9kdWN0OiBVU0ItQyBEb2NrIEV0aGVybmV0ClsgICAg
My40MjgxMThdIHVzYiA4LTEuMTogTWFudWZhY3R1cmVyOiBSZWFsdGVrClsgICAgMy40MjgxMzld
IHVzYiA4LTEuMTogU2VyaWFsTnVtYmVyOiAzMDEwMDAwMDEKWyAgICAzLjQyODc5Ml0gaGlkLWdl
bmVyaWMgMDAxODozMkFDOjAwMUIuMDAwNjogaGlkcmF3NTogSTJDIEhJRCB2MS4wMCBEZXZpY2Ug
W0ZSTVcwMDA1OjAwIDMyQUM6MDAxQl0gb24gaTJjLUZSTVcwMDA1OjAwClsgICAgMy40MzA5NDVd
IEdQSU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFiMDAKWyAgICAzLjQzMTEzNl0gaGlkLXNlbnNvci1o
dWIgMDAxODozMkFDOjAwMUIuMDAwNjogaGlkcmF3NTogSTJDIEhJRCB2MS4wMCBEZXZpY2UgW0ZS
TVcwMDA1OjAwIDMyQUM6MDAxQl0gb24gaTJjLUZSTVcwMDA1OjAwClsgICAgMy40MzgwMjldIEdQ
SU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFiMDAKWyAgICAzLjQ0NDcwNV0gbnZtZSAwMDAwOjAyOjAw
LjA6IHBsYXRmb3JtIHF1aXJrOiBzZXR0aW5nIHNpbXBsZSBzdXNwZW5kClsgICAgMy40NDQ4Nzld
IG52bWUgbnZtZTA6IHBjaSBmdW5jdGlvbiAwMDAwOjAyOjAwLjAKWyAgICAzLjQ0NTE4Nl0gR1BJ
TyA4IGlzIGFjdGl2ZTogMHgxODE0MWIwMApbICAgIDMuNDUyMTk2XSBHUElPIDggaXMgYWN0aXZl
OiAweDE4MTQxYjAwClsgICAgMy40NTkyNzldIEdQSU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFiMDAK
WyAgICAzLjQ2NjMyMV0gR1BJTyA4IGlzIGFjdGl2ZTogMHgxODE0MWIwMApbICAgIDMuNDczMjky
XSBHUElPIDggaXMgYWN0aXZlOiAweDE4MTQxYjAwClsgICAgMy40ODA0MDVdIEdQSU8gOCBpcyBh
Y3RpdmU6IDB4MTgxNDFiMDAKWyAgICAzLjQ4NDEyOV0gbnZtZSBudm1lMDogMTYvMC8wIGRlZmF1
bHQvcmVhZC9wb2xsIHF1ZXVlcwpbICAgIDMuNDg3NDEyXSBHUElPIDggaXMgYWN0aXZlOiAweDE4
MTQxYjAwClsgICAgMy40ODg0MjNdICBudm1lMG4xOiBwMSBwMiBwMyBwNApbICAgIDMuNDk0Mzgx
XSBHUElPIDggaXMgYWN0aXZlOiAweDE4MTQxYjAwClsgICAgMy40OTYyNDNdIEJUUkZTOiBkZXZp
Y2UgZnNpZCA3MWIxZGM1OS1lYTAwLTQ4NGMtYjVlNC1lZTc3ZWRlNzcxZGIgZGV2aWQgMSB0cmFu
c2lkIDYxMTcgL2Rldi9udm1lMG4xcDEgc2Nhbm5lZCBieSAodWRldi13b3JrZXIpICg1MTkpClsg
ICAgMy41MDE0NjVdIEdQSU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFiMDAKWyAgICAzLjUwODU1MF0g
R1BJTyA4IGlzIGFjdGl2ZTogMHgxODE0MWIwMApbICAgIDMuNTE1NjE1XSBHUElPIDggaXMgYWN0
aXZlOiAweDE4MTQxYjAwClsgICAgMy41MjI1OTFdIEdQSU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFi
MDAKWyAgICAzLjUyOTY3Ml0gR1BJTyA4IGlzIGFjdGl2ZTogMHgxODE0MWIwMApbICAgIDMuNTM2
NzA1XSBHUElPIDggaXMgYWN0aXZlOiAweDE4MTQxYjAwClsgICAgMy41NDM2NzhdIEdQSU8gOCBp
cyBhY3RpdmU6IDB4MTgxNDFiMDAKWyAgICAzLjU1MDc1MF0gR1BJTyA4IGlzIGFjdGl2ZTogMHgx
ODE0MWIwMApbICAgIDMuNTU0NDYxXSB1c2IgOC0xLjM6IG5ldyBTdXBlclNwZWVkIFBsdXMgR2Vu
IDJ4MSBVU0IgZGV2aWNlIG51bWJlciA0IHVzaW5nIHhoY2lfaGNkClsgICAgMy41NTc4MzldIEdQ
SU8gOCBpcyBhY3RpdmU6IDB4MTgxNDFiMDAKWyAgICAzLjU4NzAzMV0gdXNiIDgtMS4zOiBOZXcg
VVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MTdlZiwgaWRQcm9kdWN0PWEzOTMsIGJjZERldmlj
ZT0gZC4yMwpbICAgIDMuNTg3MDY2XSB1c2IgOC0xLjM6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6
IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0wClsgICAgMy41ODcwODldIHVzYiA4LTEu
MzogUHJvZHVjdDogVVNCMy4xIEh1YgpbICAgIDMuNTg3MTAzXSB1c2IgOC0xLjM6IE1hbnVmYWN0
dXJlcjogVklBIExhYnMsIEluYy4KWyAgICAzLjYwNzMwNF0gaHViIDgtMS4zOjEuMDogVVNCIGh1
YiBmb3VuZApbICAgIDMuNjA3NDQzXSBodWIgOC0xLjM6MS4wOiA0IHBvcnRzIGRldGVjdGVkClsg
ICAgMy42MTY2MzhdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGRldmljZSBkcml2ZXIgcjgxNTIt
Y2Znc2VsZWN0b3IKWyAgICAzLjc4MzM3N10gcjgxNTItY2Znc2VsZWN0b3IgOC0xLjE6IHJlc2V0
IFN1cGVyU3BlZWQgVVNCIGRldmljZSBudW1iZXIgMyB1c2luZyB4aGNpX2hjZApbICAgIDMuODA0
MjgyXSByODE1MiA4LTEuMToxLjA6IGxvYWQgcnRsODE1M2ItMiB2MiAwNC8yNy8yMyBzdWNjZXNz
ZnVsbHkKWyAgICAzLjgzNTY5MF0gcjgxNTIgOC0xLjE6MS4wIGV0aDA6IHYxLjEyLjEzClsgICAg
My44MzU3NDNdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgcjgxNTIK
WyAgICAzLjg0Mzg4NV0gcjgxNTIgOC0xLjE6MS4wIGVucDE5NXMwZjR1MXUxOiByZW5hbWVkIGZy
b20gZXRoMApbICAgIDQuMTY4Njk1XSB1c2IgNy0xLjMuMzogbmV3IGhpZ2gtc3BlZWQgVVNCIGRl
dmljZSBudW1iZXIgNCB1c2luZyB4aGNpX2hjZApbICAgIDQuMjc5MzI1XSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICAgNC4zMjY3MjJdIHVzYiA3LTEuMy4zOiBOZXcgVVNCIGRldmlj
ZSBmb3VuZCwgaWRWZW5kb3I9MTdlZiwgaWRQcm9kdWN0PWEzOTUsIGJjZERldmljZT02MC43MApb
ICAgIDQuMzI2NzUyXSB1c2IgNy0xLjMuMzogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTEw
LCBQcm9kdWN0PTExLCBTZXJpYWxOdW1iZXI9MApbICAgIDQuMzI2Nzc1XSB1c2IgNy0xLjMuMzog
UHJvZHVjdDogVVNCMi4wIEh1YgpbICAgIDQuMzI2NzkwXSB1c2IgNy0xLjMuMzogTWFudWZhY3R1
cmVyOiBMZW5vdm8KWyAgICA0LjM3NTU1MF0gaHViIDctMS4zLjM6MS4wOiBVU0IgaHViIGZvdW5k
ClsgICAgNC4zNzYxMDldIGh1YiA3LTEuMy4zOjEuMDogNCBwb3J0cyBkZXRlY3RlZApbICAgIDQu
NjUxNjk4XSB1c2IgNy0xLjMuMy4xOiBuZXcgZnVsbC1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciA1
IHVzaW5nIHhoY2lfaGNkClsgICAgNC43NTAxMjNdIHVzYiA3LTEuMy4zLjE6IE5ldyBVU0IgZGV2
aWNlIGZvdW5kLCBpZFZlbmRvcj0wNGI0LCBpZFByb2R1Y3Q9NTIxYSwgYmNkRGV2aWNlPSAwLjAw
ClsgICAgNC43NTAxNTJdIHVzYiA3LTEuMy4zLjE6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1m
cj0xLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0wClsgICAgNC43NTAxNzVdIHVzYiA3LTEuMy4z
LjE6IFByb2R1Y3Q6IFVTQi1JMkMgQnJpZGdlClsgICAgNC43NTAxOTFdIHVzYiA3LTEuMy4zLjE6
IE1hbnVmYWN0dXJlcjogQ3lwcmVzcyBTZW1pY29uZHVjdG9yClsgICAgNC44NTg2OThdIHVzYiA3
LTEuMy4zLjI6IG5ldyBmdWxsLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDYgdXNpbmcgeGhjaV9o
Y2QKWyAgICA0Ljg4MTIyMl0gW2RybV0gYW1kZ3B1IGtlcm5lbCBtb2Rlc2V0dGluZyBlbmFibGVk
LgpbICAgIDQuODkxNTg4XSBhbWRncHU6IFZpcnR1YWwgQ1JBVCB0YWJsZSBjcmVhdGVkIGZvciBD
UFUKWyAgICA0Ljg5MTYwOV0gYW1kZ3B1OiBUb3BvbG9neTogQWRkIENQVSBub2RlClsgICAgNC44
OTE2OTldIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGVuYWJsaW5nIGRldmljZSAoMDAwNiAtPiAwMDA3
KQpbICAgIDQuODkxNzUzXSBbZHJtXSBpbml0aWFsaXppbmcga2VybmVsIG1vZGVzZXR0aW5nIChJ
UCBESVNDT1ZFUlkgMHgxMDAyOjB4MTVCRiAweEYxMTE6MHgwMDA2IDB4QzQpLgpbICAgIDQuODkx
ODU4XSBbZHJtXSByZWdpc3RlciBtbWlvIGJhc2U6IDB4OTA1MDAwMDAKWyAgICA0Ljg5MTg2Nl0g
W2RybV0gcmVnaXN0ZXIgbW1pbyBzaXplOiA1MjQyODgKWyAgICA0Ljg5NDcxMl0gW2RybV0gYWRk
IGlwIGJsb2NrIG51bWJlciAwIDxzb2MyMV9jb21tb24+ClsgICAgNC44OTQ3MjNdIFtkcm1dIGFk
ZCBpcCBibG9jayBudW1iZXIgMSA8Z21jX3YxMV8wPgpbICAgIDQuODk0NzMyXSBbZHJtXSBhZGQg
aXAgYmxvY2sgbnVtYmVyIDIgPGloX3Y2XzA+ClsgICAgNC44OTQ3NDJdIFtkcm1dIGFkZCBpcCBi
bG9jayBudW1iZXIgMyA8cHNwPgpbICAgIDQuODk0NzQ5XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVt
YmVyIDQgPHNtdT4KWyAgICA0Ljg5NDc1Nl0gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciA1IDxk
bT4KWyAgICA0Ljg5NDc2Ml0gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciA2IDxnZnhfdjExXzA+
ClsgICAgNC44OTQ3NzBdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgNyA8c2RtYV92Nl8wPgpb
ICAgIDQuODk0Nzc4XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDggPHZjbl92NF8wPgpbICAg
IDQuODk0Nzg1XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDkgPGpwZWdfdjRfMD4KWyAgICA0
Ljg5NDc5M10gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciAxMCA8bWVzX3YxMV8wPgpbICAgIDQu
ODk0ODE4XSBhbWRncHUgMDAwMDpjMTowMC4wOiBhbWRncHU6IEZldGNoZWQgVkJJT1MgZnJvbSBW
RkNUClsgICAgNC44OTQ4MjhdIGFtZGdwdTogQVRPTSBCSU9TOiAxMTMtUEhYR0VORVJJQy0wMDEK
WyAgICA0LjkxMjc5Ml0gW2RybV0gVkNOKDApIGVuY29kZS9kZWNvZGUgYXJlIGVuYWJsZWQgaW4g
Vk0gbW9kZQpbICAgIDQuOTIyODE1XSBhbWRncHUgMDAwMDpjMTowMC4wOiBbZHJtOmpwZWdfdjRf
MF9lYXJseV9pbml0IFthbWRncHVdXSBKUEVHIGRlY29kZSBpcyBlbmFibGVkIGluIFZNIG1vZGUK
WyAgICA0LjkzMDg5Ml0gQ29uc29sZTogc3dpdGNoaW5nIHRvIGNvbG91ciBkdW1teSBkZXZpY2Ug
ODB4MjUKWyAgICA0Ljk0MzEwOF0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogdmdhYXJiOiBkZWFjdGl2
YXRlIHZnYSBjb25zb2xlClsgICAgNC45NDMxMTNdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdw
dTogVHJ1c3RlZCBNZW1vcnkgWm9uZSAoVE1aKSBmZWF0dXJlIGVuYWJsZWQKWyAgICA0Ljk0MzE1
N10gW2RybV0gdm0gc2l6ZSBpcyAyNjIxNDQgR0IsIDQgbGV2ZWxzLCBibG9jayBzaXplIGlzIDkt
Yml0LCBmcmFnbWVudCBzaXplIGlzIDktYml0ClsgICAgNC45NDMxODFdIGFtZGdwdSAwMDAwOmMx
OjAwLjA6IGFtZGdwdTogVlJBTTogNTEyTSAweDAwMDAwMDgwMDAwMDAwMDAgLSAweDAwMDAwMDgw
MUZGRkZGRkYgKDUxMk0gdXNlZCkKWyAgICA0Ljk0MzE4Nl0gYW1kZ3B1IDAwMDA6YzE6MDAuMDog
YW1kZ3B1OiBHQVJUOiA1MTJNIDB4MDAwMDAwMDAwMDAwMDAwMCAtIDB4MDAwMDAwMDAxRkZGRkZG
RgpbICAgIDQuOTQzMTkwXSBhbWRncHUgMDAwMDpjMTowMC4wOiBhbWRncHU6IEFHUDogMjY3ODk0
Nzg0TSAweDAwMDAwMDg0MDAwMDAwMDAgLSAweDAwMDBGRkZGRkZGRkZGRkYKWyAgICA0Ljk0MzIw
NV0gW2RybV0gRGV0ZWN0ZWQgVlJBTSBSQU09NTEyTSwgQkFSPTUxMk0KWyAgICA0Ljk0MzIwN10g
W2RybV0gUkFNIHdpZHRoIDEyOGJpdHMgRERSNQpbICAgIDQuOTQzMzYwXSBbZHJtXSBhbWRncHU6
IDUxMk0gb2YgVlJBTSBtZW1vcnkgcmVhZHkKWyAgICA0Ljk0MzM2NF0gW2RybV0gYW1kZ3B1OiAz
MTc0MU0gb2YgR1RUIG1lbW9yeSByZWFkeS4KWyAgICA0Ljk0MzM4NF0gW2RybV0gR0FSVDogbnVt
IGNwdSBwYWdlcyAxMzEwNzIsIG51bSBncHUgcGFnZXMgMTMxMDcyClsgICAgNC45NDM5MDZdIFtk
cm1dIFBDSUUgR0FSVCBvZiA1MTJNIGVuYWJsZWQgKHRhYmxlIGF0IDB4MDAwMDAwODAxRkQwMDAw
MCkuClsgICAgNC45NDQxNzJdIFtkcm1dIExvYWRpbmcgRE1VQiBmaXJtd2FyZSB2aWEgUFNQOiB2
ZXJzaW9uPTB4MDgwMDJBODEKWyAgICA0Ljk0NjM5Nl0gW2RybV0gRm91bmQgVkNOIGZpcm13YXJl
IFZlcnNpb24gRU5DOiAxLjEwIERFQzogNSBWRVA6IDAgUmV2aXNpb246IDAKWyAgICA0Ljk0NjQw
NV0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiBXaWxsIHVzZSBQU1AgdG8gbG9hZCBWQ04g
ZmlybXdhcmUKWyAgICA0Ljk3MDQ5OF0gW2RybV0gcmVzZXJ2ZSAweDQwMDAwMDAgZnJvbSAweDgw
MTgwMDAwMDAgZm9yIFBTUCBUTVIKWyAgICA0Ljk5NzExN10gdXNiIDctMS4zLjMuMjogTmV3IFVT
QiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTE3ZWYsIGlkUHJvZHVjdD0zMGQxLCBiY2REZXZpY2U9
IDAuNDIKWyAgICA0Ljk5NzEyN10gdXNiIDctMS4zLjMuMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5n
czogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTMKWyAgICA0Ljk5NzEzNV0gdXNiIDct
MS4zLjMuMjogUHJvZHVjdDogVGhpbmtQYWQgVVNCLUMgRG9jayBHZW4yIFVTQiBBdWRpbwpbICAg
IDQuOTk3MTQyXSB1c2IgNy0xLjMuMy4yOiBNYW51ZmFjdHVyZXI6IExlbm92bwpbICAgIDQuOTk3
MTQ3XSB1c2IgNy0xLjMuMy4yOiBTZXJpYWxOdW1iZXI6IDAwMDAwMDAwMDAwMApbICAgIDUuMDg5
NTAzXSBoaWQtZ2VuZXJpYyAwMDAzOjE3RUY6MzBEMS4wMDA3OiBoaWRkZXY5NyxoaWRyYXc2OiBV
U0IgSElEIHYxLjExIERldmljZSBbTGVub3ZvIFRoaW5rUGFkIFVTQi1DIERvY2sgR2VuMiBVU0Ig
QXVkaW9dIG9uIHVzYi0wMDAwOmMzOjAwLjQtMS4zLjMuMi9pbnB1dDMKWyAgICA1LjI4ODkwM10g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgIDUuNDg2MzkyXSBhbWRncHUgMDAwMDpj
MTowMC4wOiBhbWRncHU6IFJBUzogb3B0aW9uYWwgcmFzIHRhIHVjb2RlIGlzIG5vdCBhdmFpbGFi
bGUKWyAgICA1LjQ5Mzg3Ml0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiBSQVA6IG9wdGlv
bmFsIHJhcCB0YSB1Y29kZSBpcyBub3QgYXZhaWxhYmxlClsgICAgNS40OTM4ODJdIGFtZGdwdSAw
MDAwOmMxOjAwLjA6IGFtZGdwdTogU0VDVVJFRElTUExBWTogc2VjdXJlZGlzcGxheSB0YSB1Y29k
ZSBpcyBub3QgYXZhaWxhYmxlClsgICAgNS41Mjc1MDddIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFt
ZGdwdTogU01VIGlzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSEKWyAgICA1LjUyNzkzNF0gW2Ry
bV0gRGlzcGxheSBDb3JlIHYzLjIuMjQ3IGluaXRpYWxpemVkIG9uIERDTiAzLjEuNApbICAgIDUu
NTI3OTM5XSBbZHJtXSBEUC1IRE1JIEZSTCBQQ09OIHN1cHBvcnRlZApbICAgIDUuNTI5ODc4XSBb
ZHJtXSBETVVCIGhhcmR3YXJlIGluaXRpYWxpemVkOiB2ZXJzaW9uPTB4MDgwMDJBODEKWyAgICA1
LjYxMjk1OV0gW2RybV0gUFNSIHN1cHBvcnQgMSwgREMgUFNSIHZlciAwLCBzaW5rIFBTUiB2ZXIg
MyBEUENEIGNhcHMgMHg3YiBzdV95X2dyYW51bGFyaXR5IDQKWyAgICA1LjY3ODU4Ml0gW2RybV0g
RE1fTVNUOiBEaWZmZXJpbmcgTVNUIHN0YXJ0IG9uIGFjb25uZWN0b3I6IDAwMDAwMDAwYjIzMjM4
ZGUgW2lkOiAxMTJdClsgICAgNS42Nzk4NzldIFtkcm1dIGtpcSByaW5nIG1lYyAzIHBpcGUgMSBx
IDAKWyAgICA1LjY4MjM4NV0gW2RybV0gVkNOIGRlY29kZSBhbmQgZW5jb2RlIGluaXRpYWxpemVk
IHN1Y2Nlc3NmdWxseSh1bmRlciBEUEcgTW9kZSkuClsgICAgNS42ODI0MjFdIGFtZGdwdSAwMDAw
OmMxOjAwLjA6IFtkcm06anBlZ192NF8wX2h3X2luaXQgW2FtZGdwdV1dIEpQRUcgZGVjb2RlIGlu
aXRpYWxpemVkIHN1Y2Nlc3NmdWxseS4KWyAgICA1LjY5NDU0N10gYW1kZ3B1OiBITU0gcmVnaXN0
ZXJlZCA1MTJNQiBkZXZpY2UgbWVtb3J5ClsgICAgNS42OTUzMTBdIGtmZCBrZmQ6IGFtZGdwdTog
QWxsb2NhdGVkIDM5NjkwNTYgYnl0ZXMgb24gZ2FydApbICAgIDUuNjk1MzIxXSBrZmQga2ZkOiBh
bWRncHU6IFRvdGFsIG51bWJlciBvZiBLRkQgbm9kZXMgdG8gYmUgY3JlYXRlZDogMQpbICAgIDUu
Njk1NDEyXSBhbWRncHU6IFZpcnR1YWwgQ1JBVCB0YWJsZSBjcmVhdGVkIGZvciBHUFUKWyAgICA1
LjY5NTU0OV0gYW1kZ3B1OiBUb3BvbG9neTogQWRkIGRHUFUgbm9kZSBbMHgxNWJmOjB4MTAwMl0K
WyAgICA1LjY5NTU1Ml0ga2ZkIGtmZDogYW1kZ3B1OiBhZGRlZCBkZXZpY2UgMTAwMjoxNWJmClsg
ICAgNS42OTU1NjNdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogU0UgMSwgU0ggcGVyIFNF
IDIsIENVIHBlciBTSCA2LCBhY3RpdmVfY3VfbnVtYmVyIDEyClsgICAgNS42OTU3MDZdIGFtZGdw
dSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogcmluZyBnZnhfMC4wLjAgdXNlcyBWTSBpbnYgZW5nIDAg
b24gaHViIDAKWyAgICA1LjY5NTcxMV0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiByaW5n
IGNvbXBfMS4wLjAgdXNlcyBWTSBpbnYgZW5nIDEgb24gaHViIDAKWyAgICA1LjY5NTcxNF0gYW1k
Z3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4xLjAgdXNlcyBWTSBpbnYgZW5n
IDQgb24gaHViIDAKWyAgICA1LjY5NTcxOF0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiBy
aW5nIGNvbXBfMS4yLjAgdXNlcyBWTSBpbnYgZW5nIDYgb24gaHViIDAKWyAgICA1LjY5NTcyMV0g
YW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4zLjAgdXNlcyBWTSBpbnYg
ZW5nIDcgb24gaHViIDAKWyAgICA1LjY5NTcyNV0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1
OiByaW5nIGNvbXBfMS4wLjEgdXNlcyBWTSBpbnYgZW5nIDggb24gaHViIDAKWyAgICA1LjY5NTcy
OF0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4xLjEgdXNlcyBWTSBp
bnYgZW5nIDkgb24gaHViIDAKWyAgICA1LjY5NTczMV0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1k
Z3B1OiByaW5nIGNvbXBfMS4yLjEgdXNlcyBWTSBpbnYgZW5nIDEwIG9uIGh1YiAwClsgICAgNS42
OTU3MzVdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMy4xIHVzZXMg
Vk0gaW52IGVuZyAxMSBvbiBodWIgMApbICAgIDUuNjk1NzM4XSBhbWRncHUgMDAwMDpjMTowMC4w
OiBhbWRncHU6IHJpbmcgc2RtYTAgdXNlcyBWTSBpbnYgZW5nIDEyIG9uIGh1YiAwClsgICAgNS42
OTU3NDJdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogcmluZyB2Y25fdW5pZmllZF8wIHVz
ZXMgVk0gaW52IGVuZyAwIG9uIGh1YiA4ClsgICAgNS42OTU3NDVdIGFtZGdwdSAwMDAwOmMxOjAw
LjA6IGFtZGdwdTogcmluZyBqcGVnX2RlYyB1c2VzIFZNIGludiBlbmcgMSBvbiBodWIgOApbICAg
IDUuNjk1NzQ5XSBhbWRncHUgMDAwMDpjMTowMC4wOiBhbWRncHU6IHJpbmcgbWVzX2tpcV8zLjEu
MCB1c2VzIFZNIGludiBlbmcgMTMgb24gaHViIDAKWyAgICA1LjcwMDExMl0gW2RybV0gcmluZyBn
ZnhfMzI3NjguMS4xIHdhcyBhZGRlZApbICAgIDUuNzAwNjY4XSBbZHJtXSByaW5nIGNvbXB1dGVf
MzI3NjguMi4yIHdhcyBhZGRlZApbICAgIDUuNzAxMTc4XSBbZHJtXSByaW5nIHNkbWFfMzI3Njgu
My4zIHdhcyBhZGRlZApbICAgIDUuNzAxMjI0XSBbZHJtXSByaW5nIGdmeF8zMjc2OC4xLjEgaWIg
dGVzdCBwYXNzClsgICAgNS43MDEyNjVdIFtkcm1dIHJpbmcgY29tcHV0ZV8zMjc2OC4yLjIgaWIg
dGVzdCBwYXNzClsgICAgNS43MDEzMjRdIFtkcm1dIHJpbmcgc2RtYV8zMjc2OC4zLjMgaWIgdGVz
dCBwYXNzClsgICAgNS43MDM2ODZdIFtkcm1dIEluaXRpYWxpemVkIGFtZGdwdSAzLjU0LjAgMjAx
NTAxMDEgZm9yIDAwMDA6YzE6MDAuMCBvbiBtaW5vciAxClsgICAgNS43MDg1MTVdIGZiY29uOiBh
bWRncHVkcm1mYiAoZmIwKSBpcyBwcmltYXJ5IGRldmljZQpbICAgIDUuNzA4NjM4XSBbZHJtXSBE
U0MgcHJlY29tcHV0ZSBpcyBub3QgbmVlZGVkLgpbICAgIDYuMjk2ODU1XSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICAgNi41MjIwNTVdIENvbnNvbGU6IHN3aXRjaGluZyB0byBjb2xv
dXIgZnJhbWUgYnVmZmVyIGRldmljZSAyODJ4OTQKWyAgICA2LjU0MTE0N10gYW1kZ3B1IDAwMDA6
YzE6MDAuMDogW2RybV0gZmIwOiBhbWRncHVkcm1mYiBmcmFtZSBidWZmZXIgZGV2aWNlClsgICAg
Ni43NTMxMjddIFtkcm1dIERvd25zdHJlYW0gcG9ydCBwcmVzZW50IDEsIHR5cGUgMgpbICAgIDcu
Mjg1MDE5XSBCVFJGUyBpbmZvIChkZXZpY2UgbnZtZTBuMXAxKTogZmlyc3QgbW91bnQgb2YgZmls
ZXN5c3RlbSA3MWIxZGM1OS1lYTAwLTQ4NGMtYjVlNC1lZTc3ZWRlNzcxZGIKWyAgICA3LjI4NTA0
OV0gQlRSRlMgaW5mbyAoZGV2aWNlIG52bWUwbjFwMSk6IHVzaW5nIGNyYzMyYyAoY3JjMzJjLWlu
dGVsKSBjaGVja3N1bSBhbGdvcml0aG0KWyAgICA3LjI4NTA2Ml0gQlRSRlMgaW5mbyAoZGV2aWNl
IG52bWUwbjFwMSk6IHVzaW5nIGZyZWUgc3BhY2UgdHJlZQpbICAgIDcuMjk4NDUxXSBCVFJGUyBp
bmZvIChkZXZpY2UgbnZtZTBuMXAxKTogZW5hYmxpbmcgc3NkIG9wdGltaXphdGlvbnMKWyAgICA3
LjI5ODQ3MV0gQlRSRlMgaW5mbyAoZGV2aWNlIG52bWUwbjFwMSk6IGF1dG8gZW5hYmxpbmcgYXN5
bmMgZGlzY2FyZApbICAgIDcuMzAzOTAyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsg
ICAgNy43NDY5OTJdIHN5c3RlbWQtam91cm5hbGRbMzQzXTogUmVjZWl2ZWQgU0lHVEVSTSBmcm9t
IFBJRCAxIChzeXN0ZW1kKS4KWyAgICA3LjgzMzI3N10gYXVkaXQ6IHR5cGU9MTQwNCBhdWRpdCgx
NzAzMDg5NjQ0LjI5ODoyKTogZW5mb3JjaW5nPTEgb2xkX2VuZm9yY2luZz0wIGF1aWQ9NDI5NDk2
NzI5NSBzZXM9NDI5NDk2NzI5NSBlbmFibGVkPTEgb2xkLWVuYWJsZWQ9MSBsc209c2VsaW51eCBy
ZXM9MQpbICAgIDcuODY5NDE0XSBTRUxpbnV4OiAgcG9saWN5IGNhcGFiaWxpdHkgbmV0d29ya19w
ZWVyX2NvbnRyb2xzPTEKWyAgICA3Ljg3MDA1NF0gU0VMaW51eDogIHBvbGljeSBjYXBhYmlsaXR5
IG9wZW5fcGVybXM9MQpbICAgIDcuODcwNTI2XSBTRUxpbnV4OiAgcG9saWN5IGNhcGFiaWxpdHkg
ZXh0ZW5kZWRfc29ja2V0X2NsYXNzPTEKWyAgICA3Ljg3MDk3OV0gU0VMaW51eDogIHBvbGljeSBj
YXBhYmlsaXR5IGFsd2F5c19jaGVja19uZXR3b3JrPTAKWyAgICA3Ljg3MTQyMF0gU0VMaW51eDog
IHBvbGljeSBjYXBhYmlsaXR5IGNncm91cF9zZWNsYWJlbD0xClsgICAgNy44NzE4NjBdIFNFTGlu
dXg6ICBwb2xpY3kgY2FwYWJpbGl0eSBubnBfbm9zdWlkX3RyYW5zaXRpb249MQpbICAgIDcuODcy
Mjk2XSBTRUxpbnV4OiAgcG9saWN5IGNhcGFiaWxpdHkgZ2VuZnNfc2VjbGFiZWxfc3ltbGlua3M9
MQpbICAgIDcuODcyNzI4XSBTRUxpbnV4OiAgcG9saWN5IGNhcGFiaWxpdHkgaW9jdGxfc2tpcF9j
bG9leGVjPTAKWyAgICA3LjkwNDI5NF0gYXVkaXQ6IHR5cGU9MTQwMyBhdWRpdCgxNzAzMDg5NjQ0
LjM2OTozKTogYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IGxzbT1zZWxpbnV4IHJlcz0x
ClsgICAgNy45MDQ5OTFdIHN5c3RlbWRbMV06IFN1Y2Nlc3NmdWxseSBsb2FkZWQgU0VMaW51eCBw
b2xpY3kgaW4gNzEuODM5bXMuClsgICAgNy45MzI5OTBdIHN5c3RlbWRbMV06IFJlbGFiZWxlZCAv
ZGV2LCAvZGV2L3NobSwgL3J1biwgL3N5cy9mcy9jZ3JvdXAgaW4gMjMuMDcybXMuClsgICAgNy45
MzgyNjNdIHN5c3RlbWRbMV06IHN5c3RlbWQgMjU0LjctMS5mYzM5IHJ1bm5pbmcgaW4gc3lzdGVt
IG1vZGUgKCtQQU0gK0FVRElUICtTRUxJTlVYIC1BUFBBUk1PUiArSU1BICtTTUFDSyArU0VDQ09N
UCAtR0NSWVBUICtHTlVUTFMgK09QRU5TU0wgK0FDTCArQkxLSUQgK0NVUkwgK0VMRlVUSUxTICtG
SURPMiArSUROMiAtSUROIC1JUFRDICtLTU9EICtMSUJDUllQVFNFVFVQICtMSUJGRElTSyArUENS
RTIgK1BXUVVBTElUWSArUDExS0lUICtRUkVOQ09ERSArVFBNMiArQlpJUDIgK0xaNCArWFogK1pM
SUIgK1pTVEQgK0JQRl9GUkFNRVdPUksgK1hLQkNPTU1PTiArVVRNUCArU1lTVklOSVQgZGVmYXVs
dC1oaWVyYXJjaHk9dW5pZmllZCkKWyAgICA3LjkzOTI4NF0gc3lzdGVtZFsxXTogRGV0ZWN0ZWQg
YXJjaGl0ZWN0dXJlIHg4Ni02NC4KWyAgICA4LjA5NzM2OV0gc3lzdGVtZFsxXTogYnBmLWxzbTog
TFNNIEJQRiBwcm9ncmFtIGF0dGFjaGVkClsgICAgOC4xNzQwOTFdIHN5c3RlbWQtc3lzdi1nZW5l
cmF0b3JbNzQ4XTogU3lzViBzZXJ2aWNlICcvZXRjL3JjLmQvaW5pdC5kL3hlbmNvbW1vbnMnIGxh
Y2tzIGEgbmF0aXZlIHN5c3RlbWQgdW5pdCBmaWxlLiB+IEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGlu
ZyBhIHVuaXQgZmlsZSBmb3IgY29tcGF0aWJpbGl0eS4gUGxlYXNlIHVwZGF0ZSBwYWNrYWdlIHRv
IGluY2x1ZGUgYSBuYXRpdmUgc3lzdGVtZCB1bml0IGZpbGUsIGluIG9yZGVyIHRvIG1ha2UgaXQg
c2FmZSwgcm9idXN0IGFuZCBmdXR1cmUtcHJvb2YuICEgVGhpcyBjb21wYXRpYmlsaXR5IGxvZ2lj
IGlzIGRlcHJlY2F0ZWQsIGV4cGVjdCByZW1vdmFsIHNvb24uICEKWyAgICA4LjE4ODIzMV0genJh
bTogQWRkZWQgZGV2aWNlOiB6cmFtMApbICAgIDguMjk3MDg1XSBzeXN0ZW1kWzFdOiBpbml0cmQt
c3dpdGNoLXJvb3Quc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgpbICAgIDguMzA1
ODEwXSBzeXN0ZW1kWzFdOiBTdG9wcGVkIGluaXRyZC1zd2l0Y2gtcm9vdC5zZXJ2aWNlIC0gU3dp
dGNoIFJvb3QuClsgICAgOC4zMDc3ODldIHN5c3RlbWRbMV06IHN5c3RlbWQtam91cm5hbGQuc2Vy
dmljZTogU2NoZWR1bGVkIHJlc3RhcnQgam9iLCByZXN0YXJ0IGNvdW50ZXIgaXMgYXQgMS4KWyAg
ICA4LjMwODExNF0gc3lzdGVtZFsxXTogQ3JlYXRlZCBzbGljZSBtYWNoaW5lLnNsaWNlIC0gVmly
dHVhbCBNYWNoaW5lIGFuZCBDb250YWluZXIgU2xpY2UuClsgICAgOC4zMTAyOTldIHN5c3RlbWRb
MV06IENyZWF0ZWQgc2xpY2Ugc3lzdGVtLWdldHR5LnNsaWNlIC0gU2xpY2UgL3N5c3RlbS9nZXR0
eS4KWyAgICA4LjMxMDc1MF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgIDguMzEx
MzAwXSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNlIHN5c3RlbS1zc2hkXHgyZGtleWdlbi5zbGlj
ZSAtIFNsaWNlIC9zeXN0ZW0vc3NoZC1rZXlnZW4uClsgICAgOC4zMTIzNTVdIHN5c3RlbWRbMV06
IENyZWF0ZWQgc2xpY2Ugc3lzdGVtLXN5c3RlbWRceDJkZnNjay5zbGljZSAtIFNsaWNlIC9zeXN0
ZW0vc3lzdGVtZC1mc2NrLgpbICAgIDguMzEzMzg5XSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNl
IHN5c3RlbS1zeXN0ZW1kXHgyZHpyYW1ceDJkc2V0dXAuc2xpY2UgLSBTbGljZSAvc3lzdGVtL3N5
c3RlbWQtenJhbS1zZXR1cC4KWyAgICA4LjMxNDUwNF0gc3lzdGVtZFsxXTogQ3JlYXRlZCBzbGlj
ZSB1c2VyLnNsaWNlIC0gVXNlciBhbmQgU2Vzc2lvbiBTbGljZS4KWyAgICA4LjMxNTMwNV0gc3lz
dGVtZFsxXTogc3lzdGVtZC1hc2stcGFzc3dvcmQtcGx5bW91dGgucGF0aDogRGVhY3RpdmF0ZWQg
c3VjY2Vzc2Z1bGx5LgpbICAgIDguMzE1ODA3XSBzeXN0ZW1kWzFdOiBTdG9wcGVkIHN5c3RlbWQt
YXNrLXBhc3N3b3JkLXBseW1vdXRoLnBhdGguClsgICAgOC4zMTY1MDhdIHN5c3RlbWRbMV06IFN0
YXJ0ZWQgc3lzdGVtZC1hc2stcGFzc3dvcmQtd2FsbC5wYXRoIC0gRm9yd2FyZCBQYXNzd29yZCBS
ZXF1ZXN0cyB0byBXYWxsIERpcmVjdG9yeSBXYXRjaC4KWyAgICA4LjMxNzczMl0gc3lzdGVtZFsx
XTogU2V0IHVwIGF1dG9tb3VudCBwcm9jLXN5cy1mcy1iaW5mbXRfbWlzYy5hdXRvbW91bnQgLSBB
cmJpdHJhcnkgRXhlY3V0YWJsZSBGaWxlIEZvcm1hdHMgRmlsZSBTeXN0ZW0gQXV0b21vdW50IFBv
aW50LgpbICAgIDguMzE4NDA5XSBzeXN0ZW1kWzFdOiBTdG9wcGVkIHRhcmdldCBpbml0cmQtc3dp
dGNoLXJvb3QudGFyZ2V0IC0gU3dpdGNoIFJvb3QuClsgICAgOC4zMTk0MThdIHN5c3RlbWRbMV06
IFN0b3BwZWQgdGFyZ2V0IGluaXRyZC1mcy50YXJnZXQgLSBJbml0cmQgRmlsZSBTeXN0ZW1zLgpb
ICAgIDguMzE5OTUzXSBzeXN0ZW1kWzFdOiBTdG9wcGVkIHRhcmdldCBpbml0cmQtcm9vdC1mcy50
YXJnZXQgLSBJbml0cmQgUm9vdCBGaWxlIFN5c3RlbS4KWyAgICA4LjMyMDk4MV0gc3lzdGVtZFsx
XTogUmVhY2hlZCB0YXJnZXQgaW50ZWdyaXR5c2V0dXAudGFyZ2V0IC0gTG9jYWwgSW50ZWdyaXR5
IFByb3RlY3RlZCBWb2x1bWVzLgpbICAgIDguMzIyMDg3XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRh
cmdldCBzbGljZXMudGFyZ2V0IC0gU2xpY2UgVW5pdHMuClsgICAgOC4zMjMxMTJdIHN5c3RlbWRb
MV06IFJlYWNoZWQgdGFyZ2V0IHZlcml0eXNldHVwLnRhcmdldCAtIExvY2FsIFZlcml0eSBQcm90
ZWN0ZWQgVm9sdW1lcy4KWyAgICA4LjMyNTU4MF0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIGRt
LWV2ZW50LnNvY2tldCAtIERldmljZS1tYXBwZXIgZXZlbnQgZGFlbW9uIEZJRk9zLgpbICAgIDgu
MzI4NTc3XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gbHZtMi1sdm1wb2xsZC5zb2NrZXQgLSBM
Vk0yIHBvbGwgZGFlbW9uIHNvY2tldC4KWyAgICA4LjMzMDE2MV0gc3lzdGVtZFsxXTogTGlzdGVu
aW5nIG9uIHN5c3RlbWQtY29yZWR1bXAuc29ja2V0IC0gUHJvY2VzcyBDb3JlIER1bXAgU29ja2V0
LgpbICAgIDguMzMxMjI5XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gc3lzdGVtZC1pbml0Y3Rs
LnNvY2tldCAtIGluaXRjdGwgQ29tcGF0aWJpbGl0eSBOYW1lZCBQaXBlLgpbICAgIDguMzMyODQ1
XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gc3lzdGVtZC1qb3VybmFsZC1hdWRpdC5zb2NrZXQg
LSBKb3VybmFsIEF1ZGl0IFNvY2tldC4KWyAgICA4LjMzNDIxMF0gc3lzdGVtZFsxXTogTGlzdGVu
aW5nIG9uIHN5c3RlbWQtb29tZC5zb2NrZXQgLSBVc2Vyc3BhY2UgT3V0LU9mLU1lbW9yeSAoT09N
KSBLaWxsZXIgU29ja2V0LgpbICAgIDguMzM1ODIzXSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24g
c3lzdGVtZC11ZGV2ZC1jb250cm9sLnNvY2tldCAtIHVkZXYgQ29udHJvbCBTb2NrZXQuClsgICAg
OC4zMzY2MThdIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiBzeXN0ZW1kLXVkZXZkLWtlcm5lbC5z
b2NrZXQgLSB1ZGV2IEtlcm5lbCBTb2NrZXQuClsgICAgOC4zMzc4NjZdIHN5c3RlbWRbMV06IExp
c3RlbmluZyBvbiBzeXN0ZW1kLXVzZXJkYmQuc29ja2V0IC0gVXNlciBEYXRhYmFzZSBNYW5hZ2Vy
IFNvY2tldC4KWyAgICA4LjM1MTkxMl0gc3lzdGVtZFsxXTogTW91bnRpbmcgZGV2LWh1Z2VwYWdl
cy5tb3VudCAtIEh1Z2UgUGFnZXMgRmlsZSBTeXN0ZW0uLi4KWyAgICA4LjM1NDg2N10gc3lzdGVt
ZFsxXTogTW91bnRpbmcgZGV2LW1xdWV1ZS5tb3VudCAtIFBPU0lYIE1lc3NhZ2UgUXVldWUgRmls
ZSBTeXN0ZW0uLi4KWyAgICA4LjM1NjE4OF0gc3lzdGVtZFsxXTogcHJvYy14ZW4ubW91bnQgLSBN
b3VudCAvcHJvYy94ZW4gZmlsZXMgd2FzIHNraXBwZWQgYmVjYXVzZSBvZiBhbiB1bm1ldCBjb25k
aXRpb24gY2hlY2sgKENvbmRpdGlvblBhdGhFeGlzdHM9L3Byb2MveGVuKS4KWyAgICA4LjM1Nzgy
OV0gc3lzdGVtZFsxXTogTW91bnRpbmcgc3lzLWtlcm5lbC1kZWJ1Zy5tb3VudCAtIEtlcm5lbCBE
ZWJ1ZyBGaWxlIFN5c3RlbS4uLgpbICAgIDguMzU5OTAxXSBzeXN0ZW1kWzFdOiBNb3VudGluZyBz
eXMta2VybmVsLXRyYWNpbmcubW91bnQgLSBLZXJuZWwgVHJhY2UgRmlsZSBTeXN0ZW0uLi4KWyAg
ICA4LjM2MDc5OF0gc3lzdGVtZFsxXTogYXV0aC1ycGNnc3MtbW9kdWxlLnNlcnZpY2UgLSBLZXJu
ZWwgTW9kdWxlIHN1cHBvcnRpbmcgUlBDU0VDX0dTUyB3YXMgc2tpcHBlZCBiZWNhdXNlIG9mIGFu
IHVubWV0IGNvbmRpdGlvbiBjaGVjayAoQ29uZGl0aW9uUGF0aEV4aXN0cz0vZXRjL2tyYjUua2V5
dGFiKS4KWyAgICA4LjM2MTMwNl0gc3lzdGVtZFsxXTogaXNjc2ktc3RhcnRlci5zZXJ2aWNlIHdh
cyBza2lwcGVkIGJlY2F1c2Ugb2YgYW4gdW5tZXQgY29uZGl0aW9uIGNoZWNrIChDb25kaXRpb25E
aXJlY3RvcnlOb3RFbXB0eT0vdmFyL2xpYi9pc2NzaS9ub2RlcykuClsgICAgOC4zNjI4NDhdIHN5
c3RlbWRbMV06IFN0YXJ0aW5nIGttb2Qtc3RhdGljLW5vZGVzLnNlcnZpY2UgLSBDcmVhdGUgTGlz
dCBvZiBTdGF0aWMgRGV2aWNlIE5vZGVzLi4uClsgICAgOC4zNjUwMDVdIHN5c3RlbWRbMV06IFN0
YXJ0aW5nIGx2bTItbW9uaXRvci5zZXJ2aWNlIC0gTW9uaXRvcmluZyBvZiBMVk0yIG1pcnJvcnMs
IHNuYXBzaG90cyBldGMuIHVzaW5nIGRtZXZlbnRkIG9yIHByb2dyZXNzIHBvbGxpbmcuLi4KWyAg
ICA4LjM2NzM5MV0gc3lzdGVtZFsxXTogU3RhcnRpbmcgbW9kcHJvYmVAY29uZmlnZnMuc2Vydmlj
ZSAtIExvYWQgS2VybmVsIE1vZHVsZSBjb25maWdmcy4uLgpbICAgIDguMzY5NzY4XSBzeXN0ZW1k
WzFdOiBTdGFydGluZyBtb2Rwcm9iZUBkbV9tb2Quc2VydmljZSAtIExvYWQgS2VybmVsIE1vZHVs
ZSBkbV9tb2QuLi4KWyAgICA4LjM3MjI4N10gc3lzdGVtZFsxXTogU3RhcnRpbmcgbW9kcHJvYmVA
ZHJtLnNlcnZpY2UgLSBMb2FkIEtlcm5lbCBNb2R1bGUgZHJtLi4uClsgICAgOC4zNzQ3MDhdIHN5
c3RlbWRbMV06IFN0YXJ0aW5nIG1vZHByb2JlQGVmaV9wc3RvcmUuc2VydmljZSAtIExvYWQgS2Vy
bmVsIE1vZHVsZSBlZmlfcHN0b3JlLi4uClsgICAgOC4zNzc2OTNdIHN5c3RlbWRbMV06IFN0YXJ0
aW5nIG1vZHByb2JlQGZ1c2Uuc2VydmljZSAtIExvYWQgS2VybmVsIE1vZHVsZSBmdXNlLi4uClsg
ICAgOC4zODAwMjBdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIG1vZHByb2JlQGxvb3Auc2VydmljZSAt
IExvYWQgS2VybmVsIE1vZHVsZSBsb29wLi4uClsgICAgOC4zODA5NDddIHN5c3RlbWRbMV06IFN0
b3BwaW5nIHBseW1vdXRoLXN0YXJ0LnNlcnZpY2UuLi4KWyAgICA4LjM4MjIxNV0gc3lzdGVtZFsx
XTogcGx5bW91dGgtc3dpdGNoLXJvb3Quc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5
LgpbICAgIDguMzgyOTA0XSBzeXN0ZW1kWzFdOiBTdG9wcGVkIHBseW1vdXRoLXN3aXRjaC1yb290
LnNlcnZpY2UuClsgICAgOC4zODQ5MjFdIHN5c3RlbWRbMV06IHN5c3RlbWQtZnNjay1yb290LnNl
cnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KWyAgICA4LjM4NTk3Ml0gc3lzdGVtZFsx
XTogU3RvcHBlZCBzeXN0ZW1kLWZzY2stcm9vdC5zZXJ2aWNlIC0gRmlsZSBTeXN0ZW0gQ2hlY2sg
b24gUm9vdCBEZXZpY2UuClsgICAgOC4zODcwMDRdIGxvb3A6IG1vZHVsZSBsb2FkZWQKWyAgICA4
LjM4ODM5NF0gc3lzdGVtZFsxXTogU3RhcnRpbmcgc3lzdGVtZC1qb3VybmFsZC5zZXJ2aWNlIC0g
Sm91cm5hbCBTZXJ2aWNlLi4uClsgICAgOC4zOTEzMTddIHN5c3RlbWRbMV06IFN0YXJ0aW5nIHN5
c3RlbWQtbW9kdWxlcy1sb2FkLnNlcnZpY2UgLSBMb2FkIEtlcm5lbCBNb2R1bGVzLi4uClsgICAg
OC4zOTMyMDVdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIHN5c3RlbWQtbmV0d29yay1nZW5lcmF0b3Iu
c2VydmljZSAtIEdlbmVyYXRlIG5ldHdvcmsgdW5pdHMgZnJvbSBLZXJuZWwgY29tbWFuZCBsaW5l
Li4uClsgICAgOC4zOTQ2NjJdIHN5c3RlbWRbMV06IHN5c3RlbWQtcGNybWFjaGluZS5zZXJ2aWNl
IC0gVFBNMiBQQ1IgTWFjaGluZSBJRCBNZWFzdXJlbWVudCB3YXMgc2tpcHBlZCBiZWNhdXNlIG9m
IGFuIHVubWV0IGNvbmRpdGlvbiBjaGVjayAoQ29uZGl0aW9uUGF0aEV4aXN0cz0vc3lzL2Zpcm13
YXJlL2VmaS9lZml2YXJzL1N0dWJQY3JLZXJuZWxJbWFnZS00YTY3YjA4Mi0wYTRjLTQxY2YtYjZj
Ny00NDBiMjliYjhjNGYpLgpbICAgIDguMzk2OTgzXSBzeXN0ZW1kWzFdOiBTdGFydGluZyBzeXN0
ZW1kLXJlbW91bnQtZnMuc2VydmljZSAtIFJlbW91bnQgUm9vdCBhbmQgS2VybmVsIEZpbGUgU3lz
dGVtcy4uLgpbICAgIDguMzk3MjYwXSBzeXN0ZW1kLWpvdXJuYWxkWzc3M106IENvbGxlY3Rpbmcg
YXVkaXQgbWVzc2FnZXMgaXMgZW5hYmxlZC4KWyAgICA4LjQwMDMxOV0gc3lzdGVtZFsxXTogU3Rh
cnRpbmcgc3lzdGVtZC11ZGV2LXRyaWdnZXIuc2VydmljZSAtIENvbGRwbHVnIEFsbCB1ZGV2IERl
dmljZXMuLi4KWyAgICA4LjQwMTY5N10gc3lzdGVtZFsxXTogc3lzdGVtZC12Y29uc29sZS1zZXR1
cC5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuClsgICAgOC40MDIzNTNdIHN5c3Rl
bWRbMV06IFN0b3BwZWQgc3lzdGVtZC12Y29uc29sZS1zZXR1cC5zZXJ2aWNlIC0gVmlydHVhbCBD
b25zb2xlIFNldHVwLgpbICAgIDguNDAzNjU5XSBhdWRpdDogdHlwZT0xMTMxIGF1ZGl0KDE3MDMw
ODk2NDQuODY4OjQpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUg
c3Viaj1zeXN0ZW1fdTpzeXN0ZW1fcjppbml0X3Q6czAgbXNnPSd1bml0PXN5c3RlbWQtdmNvbnNv
bGUtc2V0dXAgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhv
c3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAgOC40MDU4MjVdIHN5
c3RlbWRbMV06IFN0YXJ0ZWQgc3lzdGVtZC1qb3VybmFsZC5zZXJ2aWNlIC0gSm91cm5hbCBTZXJ2
aWNlLgpbICAgIDguNDA3MjQ0XSBhdWRpdDogdHlwZT0xMTMwIGF1ZGl0KDE3MDMwODk2NDQuODcy
OjUpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgc3Viaj1zeXN0
ZW1fdTpzeXN0ZW1fcjppbml0X3Q6czAgbXNnPSd1bml0PXN5c3RlbWQtam91cm5hbGQgY29tbT0i
c3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/
IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAgOC40MTkzMjJdIGF1ZGl0OiB0eXBlPTExMzEg
YXVkaXQoMTcwMzA4OTY0NC44ODQ6Nik6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9
NDI5NDk2NzI5NSBzdWJqPXN5c3RlbV91OnN5c3RlbV9yOmluaXRfdDpzMCBtc2c9J3VuaXQ9cGx5
bW91dGgtc3RhcnQgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQi
IGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAgOC40Mzk3ODJd
IGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzA4OTY0NC45MDU6Nyk6IHBpZD0xIHVpZD0wIGF1
aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBzdWJqPXN5c3RlbV91OnN5c3RlbV9yOmluaXRf
dDpzMCBtc2c9J3VuaXQ9a21vZC1zdGF0aWMtbm9kZXMgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNy
L2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1
Y2Nlc3MnClsgICAgOC40NTM1ODNdIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzA4OTY0NC45
MTg6OCk6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBzdWJqPXN5
c3RlbV91OnN5c3RlbV9yOmluaXRfdDpzMCBtc2c9J3VuaXQ9bHZtMi1tb25pdG9yIGNvbW09InN5
c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0
ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgIDguNDgwNTQ5XSBhdWRpdDogdHlwZT0xMTMwIGF1
ZGl0KDE3MDMwODk2NDQuOTQ1OjkpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQy
OTQ5NjcyOTUgc3Viaj1zeXN0ZW1fdTpzeXN0ZW1fcjppbml0X3Q6czAgbXNnPSd1bml0PW1vZHBy
b2JlQGNvbmZpZ2ZzIGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1k
IiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgIDguNDgxODc0
XSBhdWRpdDogdHlwZT0xMTMxIGF1ZGl0KDE3MDMwODk2NDQuOTQ1OjEwKTogcGlkPTEgdWlkPTAg
YXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IHN1Ymo9c3lzdGVtX3U6c3lzdGVtX3I6aW5p
dF90OnMwIG1zZz0ndW5pdD1tb2Rwcm9iZUBjb25maWdmcyBjb21tPSJzeXN0ZW1kIiBleGU9Ii91
c3IvbGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9
c3VjY2VzcycKWyAgICA4LjUwMTIzOV0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzMDg5NjQ0
Ljk2NjoxMSk6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBzdWJq
PXN5c3RlbV91OnN5c3RlbV9yOmluaXRfdDpzMCBtc2c9J3VuaXQ9bW9kcHJvYmVAZG1fbW9kIGNv
bW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFk
ZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgIDguNjQ5OTU3XSBzeXN0ZW1kLWpvdXJu
YWxkWzc3M106IFJlY2VpdmVkIGNsaWVudCByZXF1ZXN0IHRvIGZsdXNoIHJ1bnRpbWUgam91cm5h
bC4KWyAgICA4LjY5NjI1M10gc3lzdGVtZC1qb3VybmFsZFs3NzNdOiAvdmFyL2xvZy9qb3VybmFs
L2M4MGI3OWVhZTE3OTQzMDJiNzZlMDllNTI2NTEwNmUzL3N5c3RlbS5qb3VybmFsOiBKb3VybmFs
IGZpbGUgdXNlcyBhIGRpZmZlcmVudCBzZXF1ZW5jZSBudW1iZXIgSUQsIHJvdGF0aW5nLgpbICAg
IDguNjk3MjA3XSBzeXN0ZW1kLWpvdXJuYWxkWzc3M106IFJvdGF0aW5nIHN5c3RlbSBqb3VybmFs
LgpbICAgIDguODc3ODIyXSB6cmFtMDogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0
byAxNjc3NzIxNgpbICAgIDguOTA4NTA2XSBhbWQtcG1mIEFNREkwMTAyOjAwOiByZWdpc3RlcmVk
IFBNRiBkZXZpY2Ugc3VjY2Vzc2Z1bGx5ClsgICAgOC45NjQ5NjJdIHBpaXg0X3NtYnVzIDAwMDA6
MDA6MTQuMDogU01CdXMgSG9zdCBDb250cm9sbGVyIGF0IDB4YjAwLCByZXZpc2lvbiAwClsgICAg
OC45NjY3MDFdIHBpaXg0X3NtYnVzIDAwMDA6MDA6MTQuMDogVXNpbmcgcmVnaXN0ZXIgMHgwMiBm
b3IgU01CdXMgcG9ydCBzZWxlY3Rpb24KWyAgICA4Ljk2ODQ2MV0gaW5wdXQ6IFBDIFNwZWFrZXIg
YXMgL2RldmljZXMvcGxhdGZvcm0vcGNzcGtyL2lucHV0L2lucHV0MTQKWyAgICA4Ljk2OTI3MF0g
cGlpeDRfc21idXMgMDAwMDowMDoxNC4wOiBBdXhpbGlhcnkgU01CdXMgSG9zdCBDb250cm9sbGVy
IGF0IDB4YjIwClsgICAgOC45NzUyMzddIEFDUEk6IGJ1cyB0eXBlIHRodW5kZXJib2x0IHJlZ2lz
dGVyZWQKWyAgICA4Ljk5NzkxNV0gY2ZnODAyMTE6IExvYWRpbmcgY29tcGlsZWQtaW4gWC41MDkg
Y2VydGlmaWNhdGVzIGZvciByZWd1bGF0b3J5IGRhdGFiYXNlClsgICAgOS4wMDU4NzVdIExvYWRl
ZCBYLjUwOSBjZXJ0ICdzZm9yc2hlZTogMDBiMjhkZGY0N2FlZjljZWE3JwpbICAgIDkuMDEwNjE4
XSBBZGRpbmcgODM4ODYwNGsgc3dhcCBvbiAvZGV2L3pyYW0wLiAgUHJpb3JpdHk6MTAwIGV4dGVu
dHM6MSBhY3Jvc3M6ODM4ODYwNGsgU1NEc2MKWyAgICA5LjAxNDQ4OV0gUkFQTCBQTVU6IEFQSSB1
bml0IGlzIDJeLTMyIEpvdWxlcywgMSBmaXhlZCBjb3VudGVycywgMTYzODQwIG1zIG92ZmwgdGlt
ZXIKWyAgICA5LjAxNTkxOF0gUkFQTCBQTVU6IGh3IHVuaXQgb2YgZG9tYWluIHBhY2thZ2UgMl4t
MTYgSm91bGVzClsgICAgOS4wMzIxNzZdIEJsdWV0b290aDogQ29yZSB2ZXIgMi4yMgpbICAgIDku
MDMyMjAzXSBORVQ6IFJlZ2lzdGVyZWQgUEZfQkxVRVRPT1RIIHByb3RvY29sIGZhbWlseQpbICAg
IDkuMDMyMjA1XSBCbHVldG9vdGg6IEhDSSBkZXZpY2UgYW5kIGNvbm5lY3Rpb24gbWFuYWdlciBp
bml0aWFsaXplZApbICAgIDkuMDMyMjA5XSBCbHVldG9vdGg6IEhDSSBzb2NrZXQgbGF5ZXIgaW5p
dGlhbGl6ZWQKWyAgICA5LjAzMjIxMV0gQmx1ZXRvb3RoOiBMMkNBUCBzb2NrZXQgbGF5ZXIgaW5p
dGlhbGl6ZWQKWyAgICA5LjAzMjIxOF0gQmx1ZXRvb3RoOiBTQ08gc29ja2V0IGxheWVyIGluaXRp
YWxpemVkClsgICAgOS4wNDc3ODZdIHVzYiAxLTU6IHVzaW5nIEFDUEkgJ1xfU0IuUENJMC5HUDE3
LlhIQzAuUkhVQi5QUlQ1JyBmb3IgJ3Jlc2V0JyBHUElPIGxvb2t1cApbICAgIDkuMDQ3Nzk0XSBh
Y3BpIGRldmljZToyOTogR1BJTzogbG9va2luZyB1cCByZXNldC1ncGlvcwpbICAgIDkuMDQ3Nzk2
XSBhY3BpIGRldmljZToyOTogR1BJTzogbG9va2luZyB1cCByZXNldC1ncGlvClsgICAgOS4wNDc3
OTddIHVzYiAxLTU6IHVzaW5nIGxvb2t1cCB0YWJsZXMgZm9yIEdQSU8gbG9va3VwClsgICAgOS4w
NDc3OThdIHVzYiAxLTU6IE5vIEdQSU8gY29uc3VtZXIgcmVzZXQgZm91bmQKWyAgICA5LjA0Nzg5
MF0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBidHVzYgpbICAgIDku
MDUwNzk4XSBCbHVldG9vdGg6IGhjaTA6IEhXL1NXIFZlcnNpb246IDB4MDA4YTAwOGEsIEJ1aWxk
IFRpbWU6IDIwMjMxMTIwMTgzNjIwClsgICAgOS4xMjYwOTNdIGt2bV9hbWQ6IFRTQyBzY2FsaW5n
IHN1cHBvcnRlZApbICAgIDkuMTI2OTkwXSBrdm1fYW1kOiBOZXN0ZWQgVmlydHVhbGl6YXRpb24g
ZW5hYmxlZApbICAgIDkuMTI3NzA2XSBrdm1fYW1kOiBOZXN0ZWQgUGFnaW5nIGVuYWJsZWQKWyAg
ICA5LjEyOTY5Ml0ga3ZtX2FtZDogVmlydHVhbCBWTUxPQUQgVk1TQVZFIHN1cHBvcnRlZApbICAg
IDkuMTMwODY3XSBrdm1fYW1kOiBWaXJ0dWFsIEdJRiBzdXBwb3J0ZWQKWyAgICA5LjEzMTc2NF0g
a3ZtX2FtZDogVmlydHVhbCBOTUkgZW5hYmxlZApbICAgIDkuMTMxNzY1XSBrdm1fYW1kOiBMQlIg
dmlydHVhbGl6YXRpb24gc3VwcG9ydGVkClsgICAgOS4xNDU2MzFdIE1DRTogSW4ta2VybmVsIE1D
RSBkZWNvZGluZyBlbmFibGVkLgpbICAgIDkuMTYyNjA4XSBtdDc5MjFlIDAwMDA6MDE6MDAuMDog
ZW5hYmxpbmcgZGV2aWNlICgwMDAwIC0+IDAwMDIpClsgICAgOS4xNzQ2NzJdIG10NzkyMWUgMDAw
MDowMTowMC4wOiBBU0lDIHJldmlzaW9uOiA3OTIyMDAxMApbICAgIDkuMTg5ODQwXSBpbnRlbF9y
YXBsX2NvbW1vbjogRm91bmQgUkFQTCBkb21haW4gcGFja2FnZQpbICAgIDkuMTkwODMyXSBCbHVl
dG9vdGg6IGhjaTA6IERldmljZSBzZXR1cCBpbiAxMzk1NTQgdXNlY3MKWyAgICA5LjE5MTE1OF0g
aW50ZWxfcmFwbF9jb21tb246IEZvdW5kIFJBUEwgZG9tYWluIGNvcmUKWyAgICA5LjE5MTk4NF0g
Qmx1ZXRvb3RoOiBoY2kwOiBIQ0kgRW5oYW5jZWQgU2V0dXAgU3luY2hyb25vdXMgQ29ubmVjdGlv
biBjb21tYW5kIGlzIGFkdmVydGlzZWQsIGJ1dCBub3Qgc3VwcG9ydGVkLgpbICAgIDkuMjUyMTEz
XSBtdDc5MjFlIDAwMDA6MDE6MDAuMDogSFcvU1cgVmVyc2lvbjogMHg4YTEwOGExMCwgQnVpbGQg
VGltZTogMjAyMzExMjAxODM0MDBhCgpbICAgIDkuMjU0MDQ5XSBCbHVldG9vdGg6IGhjaTA6IEFP
U1AgZXh0ZW5zaW9ucyB2ZXJzaW9uIHYxLjAwClsgICAgOS4yNTU3NThdIEJsdWV0b290aDogaGNp
MDogQU9TUCBxdWFsaXR5IHJlcG9ydCBpcyBzdXBwb3J0ZWQKWyAgICA5LjI3NjQzOV0gbXQ3OTIx
ZSAwMDAwOjAxOjAwLjA6IFdNIEZpcm13YXJlIFZlcnNpb246IF9fX18wMDAwMDAsIEJ1aWxkIFRp
bWU6IDIwMjMxMTIwMTgzNDQxClsgICAgOS4zMTc1ODZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAx
NDFiMDAKWyAgICA5LjQ5ODQzMV0gUlBDOiBSZWdpc3RlcmVkIG5hbWVkIFVOSVggc29ja2V0IHRy
YW5zcG9ydCBtb2R1bGUuClsgICAgOS40OTkyODRdIFJQQzogUmVnaXN0ZXJlZCB1ZHAgdHJhbnNw
b3J0IG1vZHVsZS4KWyAgICA5LjUwMDA0NV0gUlBDOiBSZWdpc3RlcmVkIHRjcCB0cmFuc3BvcnQg
bW9kdWxlLgpbICAgIDkuNTAwNzI1XSBSUEM6IFJlZ2lzdGVyZWQgdGNwLXdpdGgtdGxzIHRyYW5z
cG9ydCBtb2R1bGUuClsgICAgOS41MDEzMzVdIFJQQzogUmVnaXN0ZXJlZCB0Y3AgTkZTdjQuMSBi
YWNrY2hhbm5lbCB0cmFuc3BvcnQgbW9kdWxlLgpbICAgIDkuNjI0MTk3XSBCbHVldG9vdGg6IEJO
RVAgKEV0aGVybmV0IEVtdWxhdGlvbikgdmVyIDEuMwpbICAgIDkuNjI1Nzc2XSBCbHVldG9vdGg6
IEJORVAgZmlsdGVyczogcHJvdG9jb2wgbXVsdGljYXN0ClsgICAgOS42MjY3ODFdIEJsdWV0b290
aDogQk5FUCBzb2NrZXQgbGF5ZXIgaW5pdGlhbGl6ZWQKWyAgICA5LjYyODk2Nl0gQmx1ZXRvb3Ro
OiBNR01UIHZlciAxLjIyClsgICAgOS43NTQwNDJdIE5FVDogUmVnaXN0ZXJlZCBQRl9RSVBDUlRS
IHByb3RvY29sIGZhbWlseQpbICAgIDkuODUzMjUwXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICAgOS45NTM4MzVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgICA5Ljk2
MjU4OV0gcjgxNTIgOC0xLjE6MS4wIGVucDE5NXMwZjR1MXUxOiBjYXJyaWVyIG9uClsgICAxMC4w
NTU1NDJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDEwLjE1NjI0Ml0gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTAuMjU2ODI1XSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICAxMC4zNTg2NTNdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDEwLjM3NTQ1NF0gbXQ3OTIxZSAwMDAwOjAxOjAwLjAgd2xwMXMwOiByZW5hbWVkIGZyb20gd2xh
bjAKWyAgIDEwLjQ1OTI1Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTAuNTYx
MzE0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxMC42NjIyMTddIEdQSU8gNSBp
cyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDEwLjc2MjM2M10gR1BJTyA1IGlzIGFjdGl2ZTogMHgx
MDE0MWIwMApbICAgMTAuODY0MTY4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAx
MC45NjU2MDBdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDExLjA2NzEyNV0gR1BJ
TyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTEuMTY4NDI5XSBHUElPIDUgaXMgYWN0aXZl
OiAweDEwMTQxYjAwClsgICAxMS4yNjkwMzVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAK
WyAgIDExLjM3MDIxMF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTEuNDcxMjg0
XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxMS41NzI2NzhdIEdQSU8gNSBpcyBh
Y3RpdmU6IDB4MTAxNDFiMDAKWyAgIDExLjY3MzgxNV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0
MWIwMApbICAgMTEuNzc0MzU0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxMS44
NzY0MjZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDExLjk3Njk4OV0gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTIuMDc4NzYwXSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICAxMi4xNzk0MTZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDEyLjI3OTg0MF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTIuMzgxNzY5XSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxMi40ODIzNjhdIEdQSU8gNSBpcyBhY3Rp
dmU6IDB4MTAxNDFiMDAKWyAgIDEyLjU4MzcxNF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIw
MApbICAgMTIuNjg0NDMyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxMi43ODUx
MTldIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDEyLjg4Njg5Nl0gR1BJTyA1IGlz
IGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTIuOTg3ODY0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEw
MTQxYjAwClsgICAxMy4wODk2MTZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDEz
LjE5MDQwNF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTMuMjkwNTY0XSBHUElP
IDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxMy4zOTI1NjhdIEdQSU8gNSBpcyBhY3RpdmU6
IDB4MTAxNDFiMDAKWyAgIDEzLjQ5Mjk4NF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApb
ICAgMTMuNTk0OTgxXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxMy42OTUyNDJd
IEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDEzLjc5NTg5M10gR1BJTyA1IGlzIGFj
dGl2ZTogMHgxMDE0MWIwMApbICAgMTMuODk3MjA2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICAxMy45OTgyNTNdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDE0LjEw
MDIxM10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTQuMjAxNjgwXSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxNC4zMDI0MjhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDE0LjQwMzgwMl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
MTQuNTA0NTA5XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxNC41MDg0ODRdIHds
cDFzMDogYXV0aGVudGljYXRlIHdpdGggNjA6MjI6MzI6Mzc6MjA6NDYKWyAgIDE0LjYwODE5MF0g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTQuNzA4NzQzXSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICAxNC44MTA1NDNdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgIDE0LjkxMTk2MV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTUuMDE1
NTQ1XSB3bHAxczA6IHNlbmQgYXV0aCB0byA2MDoyMjozMjozNzoyMDo0NiAodHJ5IDEvMykKWyAg
IDE1LjAyNDE1N10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTUuMTI2MjUzXSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxNS4xMjgwMzJdIHdscDFzMDogYXV0aGVu
dGljYXRlIHdpdGggNjA6MjI6MzI6Mzc6MjA6NDYKWyAgIDE1LjEzNzc1NF0gd2xwMXMwOiBzZW5k
IGF1dGggdG8gNjA6MjI6MzI6Mzc6MjA6NDYgKHRyeSAxLzMpClsgICAxNS4xNjk3NjddIHdscDFz
MDogYXV0aGVudGljYXRlZApbICAgMTUuMTcwNzIxXSB3bHAxczA6IGFzc29jaWF0ZSB3aXRoIDYw
OjIyOjMyOjM3OjIwOjQ2ICh0cnkgMS8zKQpbICAgMTUuMTg2Njg5XSB3bHAxczA6IFJYIEFzc29j
UmVzcCBmcm9tIDYwOjIyOjMyOjM3OjIwOjQ2IChjYXBhYj0weDExMTEgc3RhdHVzPTAgYWlkPTEw
KQpbICAgMTUuMjIxNzAzXSB3bHAxczA6IGFzc29jaWF0ZWQKWyAgIDE1LjIyNzY2N10gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTUuMzI5NDgyXSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICAxNS40MjkwNDJdIHdscDFzMDogTGltaXRpbmcgVFggcG93ZXIgdG8gMjMg
KDIzIC0gMCkgZEJtIGFzIGFkdmVydGlzZWQgYnkgNjA6MjI6MzI6Mzc6MjA6NDYKWyAgIDE1LjQz
MDIyM10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTUuNTMwNzU1XSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxNS42MzM3NDFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDE1LjczNDMxN10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
MTUuODM2NDM2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxNS44NjcyMTBdIHN5
c3RlbWQtam91cm5hbGRbNzczXTogL3Zhci9sb2cvam91cm5hbC9jODBiNzllYWUxNzk0MzAyYjc2
ZTA5ZTUyNjUxMDZlMy91c2VyLTEwMDAuam91cm5hbDogSm91cm5hbCBmaWxlIHVzZXMgYSBkaWZm
ZXJlbnQgc2VxdWVuY2UgbnVtYmVyIElELCByb3RhdGluZy4KWyAgIDE1LjkzNzMyNV0gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTYuMDUwNTg1XSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICAxNi4xNTI5NThdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDE2LjI1MzUxMl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTYuMzU1NTk3XSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxNi40NTcxNjRdIEdQSU8gNSBpcyBhY3Rp
dmU6IDB4MTAxNDFiMDAKWyAgIDE2LjU1NzI1Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIw
MApbICAgMTYuNjYwNTAyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxNi43NjA3
NjhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDE2Ljg2NDE5MF0gR1BJTyA1IGlz
IGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTYuOTY0NTY2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEw
MTQxYjAwClsgICAxNy4wNzc5ODFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDE3
LjE4MDAzOF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTcuMjgxNTE3XSBHUElP
IDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxNy4zODMzMzFdIEdQSU8gNSBpcyBhY3RpdmU6
IDB4MTAxNDFiMDAKWyAgIDE3LjQ4NDAwMl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApb
ICAgMTcuNTg1MTA0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxNy42ODY1OTNd
IEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDE3Ljc4NzYxMV0gR1BJTyA1IGlzIGFj
dGl2ZTogMHgxMDE0MWIwMApbICAgMTcuODkwNjg2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICAxNy45OTA3ODFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDE4LjEx
MjU0OV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTguMjEyOTQ4XSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxOC4zMTM3MDddIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDE4LjQxNTk0OV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
MTguNTE3MTk1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxOC42MTkzNDBdIEdQ
SU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDE4LjcyMDUxNV0gR1BJTyA1IGlzIGFjdGl2
ZTogMHgxMDE0MWIwMApbICAgMTguODIwODg3XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAw
ClsgICAxOC45MjM0MTldIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDE5LjAyNDM3
M10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTkuMTQzNjcwXSBHUElPIDUgaXMg
YWN0aXZlOiAweDEwMTQxYjAwClsgICAxOS4xNDM4NzJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAx
NDFiMDAKWyAgIDE5LjI0NDI4M10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTku
MzQ2NDAwXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAxOS40NDc3NjhdIEdQSU8g
NSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDE5LjU0ODkyN10gR1BJTyA1IGlzIGFjdGl2ZTog
MHgxMDE0MWIwMApbICAgMTkuNjUxMTIwXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsg
ICAxOS43NTIyMzZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDE5Ljg1MzM5N10g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMTkuOTU1OTM3XSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICAyMC4wNTY3NThdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgIDIwLjE3MDIwM10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjAuMjcw
Mjk1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyMC4zNzI5MDVdIEdQSU8gNSBp
cyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDIwLjQ3MzYwNF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgx
MDE0MWIwMApbICAgMjAuNTc1Mjg4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAy
MC42Nzc2NTZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDIwLjc3ODgyM10gR1BJ
TyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjAuODgwNDI4XSBHUElPIDUgaXMgYWN0aXZl
OiAweDEwMTQxYjAwClsgICAyMC45ODEzNDldIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAK
WyAgIDIxLjA4MjAwNl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjEuMTk0Mjk1
XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyMS4yOTU0ODFdIEdQSU8gNSBpcyBh
Y3RpdmU6IDB4MTAxNDFiMDAKWyAgIDIxLjM5ODU4NF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0
MWIwMApbICAgMjEuNDk4ODEzXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyMS41
OTk3NTRdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDIxLjcwMTM1OV0gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjEuODAzMzE0XSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICAyMS45MDUxMTRdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDIyLjAwNjc4N10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjIuMTA3OTA4XSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyMi4yMjA5NTFdIEdQSU8gNSBpcyBhY3Rp
dmU6IDB4MTAxNDFiMDAKWyAgIDIyLjMyMTMzN10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIw
MApbICAgMjIuNDI0NjQ1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyMi41MjQ3
NTZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDIyLjYyNzEzNF0gR1BJTyA1IGlz
IGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjIuNzI4MDcwXSBHUElPIDUgaXMgYWN0aXZlOiAweDEw
MTQxYjAwClsgICAyMi44Mjk2OTFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDIy
LjkzMTk5NF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjMuMDMzMjE0XSBHUElP
IDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyMy4xMzQzODZdIEdQSU8gNSBpcyBhY3RpdmU6
IDB4MTAxNDFiMDAKWyAgIDIzLjI0MTY0N10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApb
ICAgMjMuMzQyNTA1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyMy40NDUyMDVd
IEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDIzLjU0NTc4NV0gR1BJTyA1IGlzIGFj
dGl2ZTogMHgxMDE0MWIwMApbICAgMjMuNjQ4ODc5XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICAyMy43NDk4OTVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDIzLjg1
MTI1OF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjMuOTUzMjU5XSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyNC4wNTUwNDFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDI0LjE1NTg0Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
MjQuMjcyNzMzXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyNC4zNzMwNzNdIEdQ
SU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI0LjQ3NTQxNV0gR1BJTyA1IGlzIGFjdGl2
ZTogMHgxMDE0MWIwMApbICAgMjQuNTc1NTg5XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAw
ClsgICAyNC42NzkyMzhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI0Ljc4MDAx
Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjQuODgxMTU1XSBHUElPIDUgaXMg
YWN0aXZlOiAweDEwMTQxYjAwClsgICAyNC45ODMyNzVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAx
NDFiMDAKWyAgIDI1LjA4NDY5Nl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjUu
MTg3MTUwXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyNS4zMDM3ODddIEdQSU8g
NSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI1LjQwNTUyNV0gR1BJTyA1IGlzIGFjdGl2ZTog
MHgxMDE0MWIwMApbICAgMjUuNTA3MzE0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsg
ICAyNS42MDg1MTldIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI1LjcxMDgyOV0g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjUuODExODkyXSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICAyNS45MTM3OTFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgIDI2LjAxNTIwN10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjYuMTE2
MzU2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyNi4yMTgxNjFdIEdQSU8gNSBp
cyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI2LjMyMzg2OF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgx
MDE0MWIwMApbICAgMjYuNDI1MTE4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAy
Ni41MjYzMDldIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI2LjYyNzEzOF0gR1BJ
TyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjYuNzI5NjQzXSBHUElPIDUgaXMgYWN0aXZl
OiAweDEwMTQxYjAwClsgICAyNi44Mjk5NzZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAK
WyAgIDI2LjkzMjY4M10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjcuMDM0MDQ5
XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyNy4xMzQ5NTVdIEdQSU8gNSBpcyBh
Y3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI3LjIzNjg5OV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0
MWIwMApbICAgMjcuMzQ0MzU5XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyNy40
NDU0MzhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI3LjU0NzY1Ml0gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjcuNjQ3OTk3XSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICAyNy43NTE4MDVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDI3Ljg1MjQxN10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjcuOTU0NTU4XSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyOC4wNTU1NTldIEdQSU8gNSBpcyBhY3Rp
dmU6IDB4MTAxNDFiMDAKWyAgIDI4LjE1NzE0Nl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIw
MApbICAgMjguMjU5MjY3XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyOC4zNzA1
MjBdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI4LjQ3MjQ2OV0gR1BJTyA1IGlz
IGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjguNTc0Mjg2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEw
MTQxYjAwClsgICAyOC42NzQ3OTNdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI4
Ljc3NjQ0M10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjguODc3MzU2XSBHUElP
IDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyOC45ODAzMDVdIEdQSU8gNSBpcyBhY3RpdmU6
IDB4MTAxNDFiMDAKWyAgIDI5LjA4MTAxNV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApb
ICAgMjkuMTgyNzI1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyOS4yODQxMzNd
IEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI5LjM5NjExOF0gR1BJTyA1IGlzIGFj
dGl2ZTogMHgxMDE0MWIwMApbICAgMjkuNDk4MTI4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICAyOS41OTk1NTRdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDI5LjU5
OTc4NF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMjkuNzAxMDI0XSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAyOS44MDMyMjRdIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDI5LjkwMzczMV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
MzAuMDA2NzE5XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzMC4xMDczMzZdIEdQ
SU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDMwLjIwOTc0MV0gR1BJTyA1IGlzIGFjdGl2
ZTogMHgxMDE0MWIwMApbICAgMzAuMzEwMTU2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAw
ClsgICAzMC40MjgwOTJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDMwLjUzMDQ4
MF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzAuNjMxNzcxXSBHUElPIDUgaXMg
YWN0aXZlOiAweDEwMTQxYjAwClsgICAzMC43MzM4MDJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAx
NDFiMDAKWyAgIDMwLjgzNTA1Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzAu
OTM1NTcwXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzMS4wMzg5NjddIEdQSU8g
NSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDMxLjEzOTYxNV0gR1BJTyA1IGlzIGFjdGl2ZTog
MHgxMDE0MWIwMApbICAgMzEuMjQyNTAwXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsg
ICAzMS4zNDMxNTVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDMxLjQ2MjUxMF0g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzEuNTYzNTg1XSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICAzMS42NjUxNDldIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgIDMxLjc2NzA4OF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzEuODY4
NjcyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzMS45NzAxNTJdIEdQSU8gNSBp
cyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDMyLjA3MjE3Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgx
MDE0MWIwMApbICAgMzIuMTcyODQ0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAz
Mi4yNzU2MTBdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDMyLjM3NjMzNF0gR1BJ
TyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzIuNDkxMjM0XSBHUElPIDUgaXMgYWN0aXZl
OiAweDEwMTQxYjAwClsgICAzMi41OTEzODVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAK
WyAgIDMyLjY5MjUxOF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzIuNzk0OTA3
XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzMi44OTYwNTBdIEdQSU8gNSBpcyBh
Y3RpdmU6IDB4MTAxNDFiMDAKWyAgIDMyLjk5Nzc4Nl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0
MWIwMApbICAgMzMuMDk5ODc4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzMy4y
MDEwMDBdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDMzLjMwMjcxMF0gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzMuNDAzOTE0XSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICAzMy41MTIxNjZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDMzLjYxMzIzNF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzMuNzE1MDQ2XSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzMy44MTY3NTBdIEdQSU8gNSBpcyBhY3Rp
dmU6IDB4MTAxNDFiMDAKWyAgIDMzLjkxNzg0Nl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIw
MApbICAgMzQuMDE5NzExXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzNC4xMjEx
MjddIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM0LjIyMTg2NV0gR1BJTyA1IGlz
IGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzQuMzI0NjUyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEw
MTQxYjAwClsgICAzNC40MjUyNjJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM0
LjUzMjA3OV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzQuNjMyMjUxXSBHUElP
IDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzNC43MzQ3MjFdIEdQSU8gNSBpcyBhY3RpdmU6
IDB4MTAxNDFiMDAKWyAgIDM0LjgzNTgwNl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApb
ICAgMzQuOTM2ODYyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzNS4wMzg2MTFd
IEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM1LjE0MDcwNV0gR1BJTyA1IGlzIGFj
dGl2ZTogMHgxMDE0MWIwMApbICAgMzUuMjQxNzk0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICAzNS4zNDMyNjJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM1LjQ0
NDE2OV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzUuNTU3NTA2XSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzNS42NTgxMTldIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDM1Ljc2MDExMV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
MzUuODYwNjM5XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzNS45NjE3MTddIEdQ
SU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM2LjA2MzczOV0gR1BJTyA1IGlzIGFjdGl2
ZTogMHgxMDE0MWIwMApbICAgMzYuMTY1MjQyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAw
ClsgICAzNi4yNjY5MDhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM2LjM2ODg5
Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzYuNDY5NDIzXSBHUElPIDUgaXMg
YWN0aXZlOiAweDEwMTQxYjAwClsgICAzNi41ODI5NDFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAx
NDFiMDAKWyAgIDM2LjY4MzU0OV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzYu
Nzg2NDY2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzNi44ODcwMjhdIEdQSU8g
NSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM2Ljk4ODY2N10gR1BJTyA1IGlzIGFjdGl2ZTog
MHgxMDE0MWIwMApbICAgMzcuMDkwNjUxXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsg
ICAzNy4wOTA5NzFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM3LjE5MjE1NV0g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzcuMjk0MjYzXSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICAzNy4zOTYwNzddIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgIDM3LjQ5NjgxNl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzcuNjA3
OTM1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzNy43MDg3MDFdIEdQSU8gNSBp
cyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM3LjgxMTkwM10gR1BJTyA1IGlzIGFjdGl2ZTogMHgx
MDE0MWIwMApbICAgMzcuOTEyNTMxXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAz
OC4wMTQ0NzddIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM4LjExNTYyN10gR1BJ
TyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzguMjE3NDk2XSBHUElPIDUgaXMgYWN0aXZl
OiAweDEwMTQxYjAwClsgICAzOC4zMTg5NDFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAK
WyAgIDM4LjQyMDYwNV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzguNTIxNTQy
XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzOC42Mzk3OTVdIEdQSU8gNSBpcyBh
Y3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM4Ljc0MDI5MF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0
MWIwMApbICAgMzguODQzMjU1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzOC45
NDM4NzldIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM5LjA0Nzg3NF0gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzkuMTQ4Nzc3XSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICAzOS4yNTAyNzBdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDM5LjM1MTUyM10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgMzkuNDUzMTAxXSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzOS41NTQ4MDBdIEdQSU8gNSBpcyBhY3Rp
dmU6IDB4MTAxNDFiMDAKWyAgIDM5LjY2NTEyNV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIw
MApbICAgMzkuNzY1OTEzXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICAzOS44Njc2
OTJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDM5Ljk2ODI1Nl0gR1BJTyA1IGlz
IGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDAuMDcxMjg3XSBHUElPIDUgaXMgYWN0aXZlOiAweDEw
MTQxYjAwClsgICA0MC4xNzE2NjFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQw
LjI3MzM1Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDAuMzc0OTUxXSBHUElP
IDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0MC40NzYzNDddIEdQSU8gNSBpcyBhY3RpdmU6
IDB4MTAxNDFiMDAKWyAgIDQwLjU3ODM0MF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApb
ICAgNDAuNjkyMDEzXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0MC43OTI3MTNd
IEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQwLjg5NDEyNV0gR1BJTyA1IGlzIGFj
dGl2ZTogMHgxMDE0MWIwMApbICAgNDAuOTk0NjU2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICA0MS4wOTc2MzBdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQxLjE5
ODM5M10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDEuMzAxNTIzXSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0MS40MDE3MTFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDQxLjUwMzc0NV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
NDEuNjA1NjQyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0MS43MzM1MTVdIEdQ
SU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQxLjgzNTMwN10gR1BJTyA1IGlzIGFjdGl2
ZTogMHgxMDE0MWIwMApbICAgNDEuOTM2NjU4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAw
ClsgICA0Mi4wMzc3NzJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQyLjE0MDE3
MV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDIuMjQwNzM0XSBHUElPIDUgaXMg
YWN0aXZlOiAweDEwMTQxYjAwClsgICA0Mi4zNDM4OTRdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAx
NDFiMDAKWyAgIDQyLjQ0NDQ3OV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDIu
NTQ2NTA3XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0Mi42NDc4MDJdIEdQSU8g
NSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQyLjc1OTU1NV0gR1BJTyA1IGlzIGFjdGl2ZTog
MHgxMDE0MWIwMApbICAgNDIuODYxMTg0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsg
ICA0Mi45NjI2MjNdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQzLjA2NDAxNF0g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDMuMTY2MDUyXSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICA0My4yNjY2NzNdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgIDQzLjM2OTMyMF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDMuNDcw
MzE3XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0My41NzIxNzddIEdQSU8gNSBp
cyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQzLjY3Mjc0N10gR1BJTyA1IGlzIGFjdGl2ZTogMHgx
MDE0MWIwMApbICAgNDMuNzkxMzc2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0
My44OTMxNjddIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQzLjk5NDc4OF0gR1BJ
TyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDQuMDk2Nzc3XSBHUElPIDUgaXMgYWN0aXZl
OiAweDEwMTQxYjAwClsgICA0NC4xOTc5MTZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAK
WyAgIDQ0LjI5ODg1MV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDQuNDAxODYx
XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0NC41MDI1MTFdIEdQSU8gNSBpcyBh
Y3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ0LjYwNTAxMl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0
MWIwMApbICAgNDQuNzA2MjQ0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0NC44
MjA1NjVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ0LjkyMTY1Ml0gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDUuMDIzMjEzXSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICA0NS4xMjUzMDRdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDQ1LjIyNjYzOF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDUuMzI3NjcxXSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0NS40Mjk3NzNdIEdQSU8gNSBpcyBhY3Rp
dmU6IDB4MTAxNDFiMDAKWyAgIDQ1LjUzMDkyMF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIw
MApbICAgNDUuNjMyODY0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0NS43MzMz
MjhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ1Ljg1Njc0N10gR1BJTyA1IGlz
IGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDUuOTU3MzYwXSBHUElPIDUgaXMgYWN0aXZlOiAweDEw
MTQxYjAwClsgICA0Ni4wNTkyNTBdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ2
LjE2MDkyOF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDYuMjYyNTA0XSBHUElP
IDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0Ni4zNjQ3NzNdIEdQSU8gNSBpcyBhY3RpdmU6
IDB4MTAxNDFiMDAKWyAgIDQ2LjQ2NjM4NV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApb
ICAgNDYuNTY2ODMyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0Ni42NzAwNzVd
IEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ2Ljc3MDY3OF0gR1BJTyA1IGlzIGFj
dGl2ZTogMHgxMDE0MWIwMApbICAgNDYuODgyNzQ4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICA0Ni45ODM4NTJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ3LjA4
NjE4N10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDcuMTg2NTU0XSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0Ny4yODg0MzJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDQ3LjM5MDE1N10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
NDcuNDkxNzIxXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0Ny41OTIzMDVdIEdQ
SU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ3LjY5NTYzOF0gR1BJTyA1IGlzIGFjdGl2
ZTogMHgxMDE0MWIwMApbICAgNDcuNzk1ODU1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAw
ClsgICA0Ny45MDI2ODhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ4LjAwMzEz
N10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDguMTA1Mzg4XSBHUElPIDUgaXMg
YWN0aXZlOiAweDEwMTQxYjAwClsgICA0OC4yMDYzMTRdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAx
NDFiMDAKWyAgIDQ4LjMwNzU1NV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDgu
NDA5NjgxXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0OC41MTEzMDhdIEdQSU8g
NSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ4LjYxMjM2Nl0gR1BJTyA1IGlzIGFjdGl2ZTog
MHgxMDE0MWIwMApbICAgNDguNzEzODU4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsg
ICA0OC44MTQ2MDJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ4LjkyOTA1MV0g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDkuMDI5Njc3XSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICA0OS4xMzI1OTddIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgIDQ5LjIzMzMzMF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDkuMzM1
MTI0XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0OS40MzczMjFdIEdQSU8gNSBp
cyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ5LjUzODk1MV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgx
MDE0MWIwMApbICAgNDkuNjQwMDk1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA0
OS43NDIxODFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDQ5Ljg0MjY0Nl0gR1BJ
TyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNDkuOTUzNzA5XSBHUElPIDUgaXMgYWN0aXZl
OiAweDEwMTQxYjAwClsgICA1MC4wNTQzOTBdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAK
WyAgIDUwLjE1NzE4MV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTAuMjU3MjY5
XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1MC4zNjAxMzJdIEdQSU8gNSBpcyBh
Y3RpdmU6IDB4MTAxNDFiMDAKWyAgIDUwLjQ2MTYwNV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0
MWIwMApbICAgNTAuNTYyMTUxXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1MC42
NjM2OTJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDUwLjc2NDcxM10gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTAuODY1ODE0XSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICA1MC45Nzg5MzldIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDUxLjA3OTU0Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTEuMTgyNDcwXSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1MS4yODMxMjhdIEdQSU8gNSBpcyBhY3Rp
dmU6IDB4MTAxNDFiMDAKWyAgIDUxLjM4NDg4OV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIw
MApbICAgNTEuNDg1NzQ5XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1MS41ODc2
MjJdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDUxLjY4OTUyNV0gR1BJTyA1IGlz
IGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTEuNzkxNjI4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEw
MTQxYjAwClsgICA1MS44OTIzNzZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDUx
Ljk5OTUyMF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTIuMTAwMDU3XSBHUElP
IDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1Mi4yMDE2NjVdIEdQSU8gNSBpcyBhY3RpdmU6
IDB4MTAxNDFiMDAKWyAgIDUyLjMwMjY2Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApb
ICAgNTIuNDA0NjA2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1Mi41MDUyMjZd
IEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDUyLjYwNjIwMF0gR1BJTyA1IGlzIGFj
dGl2ZTogMHgxMDE0MWIwMApbICAgNTIuNzA3OTQ3XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICA1Mi44MDk3MjddIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDUyLjkx
MjYzOV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTMuMDE5MTIyXSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1My4xMTk2NjFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDUzLjIyMjYzNV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
NTMuMzIzMjQ2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1My40MjYxODVdIEdQ
SU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDUzLjUyNjg4NV0gR1BJTyA1IGlzIGFjdGl2
ZTogMHgxMDE0MWIwMApbICAgNTMuNjI4NzY5XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAw
ClsgICA1My43MzAzMzZdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDUzLjgzMjIx
MF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTMuOTM0MjQxXSBHUElPIDUgaXMg
YWN0aXZlOiAweDEwMTQxYjAwClsgICA1NC4wMzkyNjFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAx
NDFiMDAKWyAgIDU0LjE0MDM5Nl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTQu
MjQyMjI2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1NC4zNDI5NDddIEdQSU8g
NSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU0LjQ0NTc3OV0gR1BJTyA1IGlzIGFjdGl2ZTog
MHgxMDE0MWIwMApbICAgNTQuNTQ2NDU3XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsg
ICA1NC42NDg2OTFdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU0Ljc0OTE5M10g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTQuODUwODg0XSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICA1NC45NTIzMjhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgIDU1LjA3MDUwMV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTUuMTcx
Njk1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1NS4yNzM1MjZdIEdQSU8gNSBp
cyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU1LjM3NDQyOF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgx
MDE0MWIwMApbICAgNTUuNDc3MDU3XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1
NS41Nzc2NjhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU1LjY3OTYwN10gR1BJ
TyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTUuNzgwMzUyXSBHUElPIDUgaXMgYWN0aXZl
OiAweDEwMTQxYjAwClsgICA1NS44ODE1ODVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAK
WyAgIDU1Ljk4MzA2NV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTYuMDk1NDQx
XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1Ni4xOTcyNzBdIEdQSU8gNSBpcyBh
Y3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU2LjI5OTA4MV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0
MWIwMApbICAgNTYuNDAwMDQyXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1Ni41
MDIzMTVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU2LjYwMjgxMF0gR1BJTyA1
IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTYuNzA1NjE1XSBHUElPIDUgaXMgYWN0aXZlOiAw
eDEwMTQxYjAwClsgICA1Ni44MDY0NThdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAg
IDU2LjkwNzgyNF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTcuMDA5NTYzXSBH
UElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1Ny4xMjIwNjhdIEdQSU8gNSBpcyBhY3Rp
dmU6IDB4MTAxNDFiMDAKWyAgIDU3LjIyMzE0M10gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIw
MApbICAgNTcuMzI1MzczXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1Ny40MjY1
MjNdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU3LjUyODk1MV0gR1BJTyA1IGlz
IGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTcuNjI5MzM5XSBHUElPIDUgaXMgYWN0aXZlOiAweDEw
MTQxYjAwClsgICA1Ny43MzI0MTddIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU3
LjgzMzM0NF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTcuOTM0OTg5XSBHUElP
IDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1OC4wMzYwODFdIEdQSU8gNSBpcyBhY3RpdmU6
IDB4MTAxNDFiMDAKWyAgIDU4LjE1MjY5OF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApb
ICAgNTguMjU0NDc1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1OC4zNTcwMjZd
IEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU4LjQ1ODI3OF0gR1BJTyA1IGlzIGFj
dGl2ZTogMHgxMDE0MWIwMApbICAgNTguNTYwMTc2XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQx
YjAwClsgICA1OC42NjA3NDhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU4Ljc2
MzcxMl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTguODY0MjE1XSBHUElPIDUg
aXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1OC45NjY2NzldIEdQSU8gNSBpcyBhY3RpdmU6IDB4
MTAxNDFiMDAKWyAgIDU5LjA2Njg5MF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAg
NTkuMTg3MTM4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA1OS4yODg2MjRdIEdQ
SU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU5LjM4OTc2MV0gR1BJTyA1IGlzIGFjdGl2
ZTogMHgxMDE0MWIwMApbICAgNTkuMzkwMDI1XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAw
ClsgICA1OS40OTE0ODhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDU5LjU5MzQ1
Ml0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNTkuNjk0NDExXSBHUElPIDUgaXMg
YWN0aXZlOiAweDEwMTQxYjAwClsgICA1OS43OTcxMjddIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAx
NDFiMDAKWyAgIDU5Ljg5ODAyOF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNjAu
MDAwNDg3XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA2MC4xMDA2ODFdIEdQSU8g
NSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDYwLjIxNDc5OF0gR1BJTyA1IGlzIGFjdGl2ZTog
MHgxMDE0MWIwMApbICAgNjAuMzE1NDE4XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsg
ICA2MC40MTcyODVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDYwLjUxOTM3NF0g
R1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNjAuNjIwODE2XSBHUElPIDUgaXMgYWN0
aXZlOiAweDEwMTQxYjAwClsgICA2MC43MjIzMDVdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFi
MDAKWyAgIDYwLjgyNDQwNF0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNjAuOTI1
MDQxXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA2MS4wMjc0NDldIEdQSU8gNSBp
cyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDYxLjEyODQzMl0gR1BJTyA1IGlzIGFjdGl2ZTogMHgx
MDE0MWIwMApbICAgNjEuMjQ4OTUxXSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA2
MS4zNDk0NDhdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAKWyAgIDYxLjQ1MTk3MF0gR1BJ
TyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNjEuNTUzMTUzXSBHUElPIDUgaXMgYWN0aXZl
OiAweDEwMTQxYjAwClsgICA2MS42NTM2MThdIEdQSU8gNSBpcyBhY3RpdmU6IDB4MTAxNDFiMDAK
WyAgIDYxLjc1NTk3NV0gR1BJTyA1IGlzIGFjdGl2ZTogMHgxMDE0MWIwMApbICAgNjEuODU3NjUw
XSBHUElPIDUgaXMgYWN0aXZlOiAweDEwMTQxYjAwClsgICA2MS45NTg0OTJdIEdQSU8gNSBpcyBh
Y3RpdmU6IDB4MTAxNDFiMDAK
--000000000000a1626a060cf38e3a
Content-Type: application/octet-stream; 
	name="dmesg-xen-4.17.3-pre-6.6.7xen-irq-dbg-1+"
Content-Disposition: attachment; 
	filename="dmesg-xen-4.17.3-pre-6.6.7xen-irq-dbg-1+"
Content-Transfer-Encoding: base64
Content-ID: <f_lqdzuh0c1>
X-Attachment-Id: f_lqdzuh0c1

WyAgICAwLjAwMDAwMF0gTGludXggdmVyc2lvbiA2LjYuN3hlbi1pcnEtZGJnLTErIChzY2hAZmVk
b3JhKSAoZ2NjIChHQ0MpIDEzLjIuMSAyMDIzMTIwNSAoUmVkIEhhdCAxMy4yLjEtNiksIEdOVSBs
ZCB2ZXJzaW9uIDIuNDAtMTMuZmMzOSkgIzYgU01QIFBSRUVNUFRfRFlOQU1JQyBXZWQgRGVjIDIw
IDE2OjEzOjI5IENFVCAyMDIzClsgICAgMC4wMDAwMDBdIENvbW1hbmQgbGluZTogcGxhY2Vob2xk
ZXIgcm9vdD1VVUlEPTcxYjFkYzU5LWVhMDAtNDg0Yy1iNWU0LWVlNzdlZGU3NzFkYiBybyAiZHlu
ZGJnPWZpbGUgZHJpdmVycy9ncGlvLyogK3A7IGZpbGUgZHJpdmVycy9waW5jdHJsLyogK3A7IGZp
bGUgYXJjaC94ODYvcGNpL3hlbi5jICtwIgpbICAgIDAuMDAwMDAwXSBbRmlybXdhcmUgQnVnXTog
VFNDIGRvZXNuJ3QgY291bnQgd2l0aCBQMCBmcmVxdWVuY3khClsgICAgMC4wMDAwMDBdIGluaXRy
ZCBtb3ZlZCBmcm9tIFttZW0gMHgwODAwMDAwMC0weDE1YWY0MjcxXSB0byBbbWVtIDB4MWQ3OTUw
MDAtMHgyYjI4OTI3MV0KWyAgICAwLjAwMDAwMF0gUmVsZWFzZWQgMCBwYWdlKHMpClsgICAgMC4w
MDAwMDBdIEJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDoKWyAgICAwLjAwMDAwMF0gWGVu
OiBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDAwMDAwN2ZmZmZdIHVzYWJsZQpbICAg
IDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMDAwMDgwMDAwLTB4MDAwMDAwMDAwMDBmZmZm
Zl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDAwMDEwMDAwMC0w
eDAwMDAwMDAwMDlhZmZmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAw
MDAwMDA5YjAwMDAwLTB4MDAwMDAwMDAwOWRmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0g
WGVuOiBbbWVtIDB4MDAwMDAwMDAwOWUwMDAwMC0weDAwMDAwMDAwMDllZmZmZmZdIHVzYWJsZQpb
ICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMDA5ZjAwMDAwLTB4MDAwMDAwMDAwOWYz
YmZmZl0gQUNQSSBOVlMKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDAwOWYzYzAw
MC0weDAwMDAwMDAwNDIzNWZmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgw
MDAwMDAwMDQyMzYwMDAwLTB4MDAwMDAwMDA0NDU1ZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAw
MF0gWGVuOiBbbWVtIDB4MDAwMDAwMDA0NDU2MDAwMC0weDAwMDAwMDAwNDQ1NjhmZmZdIHVzYWJs
ZQpbICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMDQ0NTY5MDAwLTB4MDAwMDAwMDA0
NDU2Y2ZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDA0NDU2
ZDAwMC0weDAwMDAwMDAwNDQ1NmVmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBYZW46IFttZW0g
MHgwMDAwMDAwMDQ0NTZmMDAwLTB4MDAwMDAwMDA0NDU2ZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAw
MDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDA0NDU3MDAwMC0weDAwMDAwMDAwNTA3N2VmZmZdIHVz
YWJsZQpbICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMDUwNzdmMDAwLTB4MDAwMDAw
MDA1MmY3ZWZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDA1
MmY3ZjAwMC0weDAwMDAwMDAwNWFmN2VmZmZdIEFDUEkgTlZTClsgICAgMC4wMDAwMDBdIFhlbjog
W21lbSAweDAwMDAwMDAwNWFmN2YwMDAtMHgwMDAwMDAwMDVhZmZlZmZmXSBBQ1BJIGRhdGEKWyAg
ICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDA1YWZmZjAwMC0weDAwMDAwMDAwNWFmZmZm
ZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMDViMDAwMDAwLTB4
MDAwMDAwMDA1YmZmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAw
MDAwMDA1ZDc5MDAwMC0weDAwMDAwMDAwNWQ3ZWZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBd
IFhlbjogW21lbSAweDAwMDAwMDAwNWQ3ZjUwMDAtMHgwMDAwMDAwMDVmZmZmZmZmXSByZXNlcnZl
ZApbICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMGMwMjAwMDAwLTB4MDAwMDAwMDBj
MDIwM2ZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDBjMDMw
MDAwMC0weDAwMDAwMDAwYzAzZmZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIFhlbjogW21l
bSAweDAwMDAwMDAwZmVjMDAwMDAtMHgwMDAwMDAwMGZlYzAxZmZmXSByZXNlcnZlZApbICAgIDAu
MDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMGZlZDgwMDAwLTB4MDAwMDAwMDBmZWQ4MGZmZl0g
cmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDBmZWUwMDAwMC0weDAw
MDAwMDAwZmVlZmZmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAw
MDAwZmYwMDAwMDAtMHgwMDAwMDAwMGZmZmZmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBY
ZW46IFttZW0gMHgwMDAwMDAwMTAwMDAwMDAwLTB4MDAwMDAwMTA3ZTJmZmZmZl0gdXNhYmxlClsg
ICAgMC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDEwODAwMDAwMDAtMHgwMDAwMDAxMGMwMWZm
ZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBOWCAoRXhlY3V0ZSBEaXNhYmxlKSBwcm90ZWN0
aW9uOiBhY3RpdmUKWyAgICAwLjAwMDAwMF0gQVBJQzogU3RhdGljIGNhbGxzIGluaXRpYWxpemVk
ClsgICAgMC4wMDAwMDBdIGVmaTogRUZJIHYyLjggYnkgSU5TWURFIENvcnAuClsgICAgMC4wMDAw
MDBdIGVmaTogQUNQST0weDVhZmZlMDAwIEFDUEkgMi4wPTB4NWFmZmUwMTQgU01CSU9TPTB4NTE2
NzcwMDAgU01CSU9TIDMuMD0weDUxNjc0MDAwIChNRU1BVFRSPTB4NGI3MTQwMTggdW51c2FibGUp
IEVTUlQ9MHg1YWY5ZDAxOCBNT0t2YXI9MHg1MTg3YzAwMCAKWyAgICAwLjAwMDAwMF0gU01CSU9T
IDMuNS4wIHByZXNlbnQuClsgICAgMC4wMDAwMDBdIERNSTogRnJhbWV3b3JrIExhcHRvcCAxMyAo
QU1EIFJ5emVuIDcwNDBTZXJpZXMpL0ZSQU5NRENQMDcsIEJJT1MgMDMuMDMgMTAvMTcvMjAyMwpb
ICAgIDAuMDAwMDAwXSBIeXBlcnZpc29yIGRldGVjdGVkOiBYZW4gUFYKWyAgICAwLjAyNjYzOV0g
dHNjOiBGYXN0IFRTQyBjYWxpYnJhdGlvbiB1c2luZyBQSVQKWyAgICAwLjAyNjY0MF0gdHNjOiBE
ZXRlY3RlZCAzMjkzLjUwMSBNSHogcHJvY2Vzc29yClsgICAgMC4wMjY2NDBdIHRzYzogRGV0ZWN0
ZWQgMzI5My44MTYgTUh6IFRTQwpbICAgIDAuMDI2NzE1XSBlODIwOiB1cGRhdGUgW21lbSAweDAw
MDAwMDAwLTB4MDAwMDBmZmZdIHVzYWJsZSA9PT4gcmVzZXJ2ZWQKWyAgICAwLjAyNjcxN10gZTgy
MDogcmVtb3ZlIFttZW0gMHgwMDBhMDAwMC0weDAwMGZmZmZmXSB1c2FibGUKWyAgICAwLjAyNjcy
NF0gbGFzdF9wZm4gPSAweDEwN2UzMDAgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDAKWyAgICAw
LjAyNjcyNl0gTVRSUiBtYXA6IDMgZW50cmllcyAoMCBmaXhlZCArIDMgdmFyaWFibGU7IG1heCAx
NiksIGJ1aWx0IGZyb20gOCB2YXJpYWJsZSBNVFJScwpbICAgIDAuMDI2NzI3XSBNVFJScyBzZXQg
dG8gcmVhZC1vbmx5ClsgICAgMC4wMjY3MjldIHg4Ni9QQVQ6IENvbmZpZ3VyYXRpb24gWzAtN106
IFdCICBXVCAgVUMtIFVDICBXQyAgV1AgIFVDICBVQyAgClsgICAgMC4wMjY3MzBdIGxhc3RfcGZu
ID0gMHg1YjAwMCBtYXhfYXJjaF9wZm4gPSAweDQwMDAwMDAwMApbICAgIDAuMDI2NzQ3XSBlc3J0
OiBSZXNlcnZpbmcgRVNSVCBzcGFjZSBmcm9tIDB4MDAwMDAwMDA1YWY5ZDAxOCB0byAweDAwMDAw
MDAwNWFmOWQwNTAuClsgICAgMS4wMTk1MjJdIFNlY3VyZSBib290IGRpc2FibGVkClsgICAgMS4w
MTk1MjVdIFJBTURJU0s6IFttZW0gMHgxZDc5NTAwMC0weDJiMjg5ZmZmXQpbICAgIDEuMDE5NTMx
XSBBQ1BJOiBFYXJseSB0YWJsZSBjaGVja3N1bSB2ZXJpZmljYXRpb24gZGlzYWJsZWQKWyAgICAx
LjAxOTUzOF0gQUNQSTogUlNEUCAweDAwMDAwMDAwNUFGRkUwMTQgMDAwMDI0ICh2MDIgSU5TWURF
KQpbICAgIDEuMDE5NTQzXSBBQ1BJOiBYU0RUIDB4MDAwMDAwMDA1QUY5RTIyOCAwMDAxNkMgKHYw
MSBJTlNZREUgRURLMiAgICAgMDAwMDAwMDIgICAgICAwMTAwMDAxMykKWyAgICAxLjAxOTU5NV0g
QUNQSTogRkFDUCAweDAwMDAwMDAwNUFGRUYwMDAgMDAwMTBDICh2MDUgSU5TWURFIEVESzIgICAg
IDAwMDAwMDAyIEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk2MzVdIEFDUEkgQklPUyBXYXJuaW5n
IChidWcpOiBPcHRpb25hbCBGQURUIGZpZWxkIFBtMkNvbnRyb2xCbG9jayBoYXMgdmFsaWQgTGVu
Z3RoIGJ1dCB6ZXJvIEFkZHJlc3M6IDB4MDAwMDAwMDAwMDAwMDAwMC8weDEgKDIwMjMwNjI4L3Ri
ZmFkdC02MTUpClsgICAgMS4wMTk2NDFdIEFDUEk6IERTRFQgMHgwMDAwMDAwMDVBRkRGMDAwIDAw
OTNBNiAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDEu
MDE5NjQ1XSBBQ1BJOiBGQUNTIDB4MDAwMDAwMDA1QUVCNzAwMCAwMDAwNDAKWyAgICAxLjAxOTY1
MF0gQUNQSTogVUVGSSAweDAwMDAwMDAwNUFGNjcwMDAgMDAwMUNGICh2MDEgSU5TWURFIEVESzIg
ICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk2NTRdIEFDUEk6IFNTRFQgMHgw
MDAwMDAwMDVBRkY0MDAwIDAwODQxNiAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMiBBQ1BJ
IDAwMDQwMDAwKQpbICAgIDEuMDE5NjU4XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZGMjAwMCAw
MDBBQkQgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDEwMDAgQUNQSSAwMDA0MDAwMCkKWyAgICAx
LjAxOTY2M10gQUNQSTogQVNGISAweDAwMDAwMDAwNUFGRjEwMDAgMDAwMEE1ICh2MzIgSU5TWURF
IEVESzIgICAgIDAwMDAwMDAyIEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk2NjddIEFDUEk6IEJP
T1QgMHgwMDAwMDAwMDVBRkYwMDAwIDAwMDAyOCAodjAxIElOU1lERSBFREsyICAgICAwMDAwMDAw
MiBBQ1BJIDAwMDQwMDAwKQpbICAgIDEuMDE5NjcyXSBBQ1BJOiBIUEVUIDB4MDAwMDAwMDA1QUZF
RTAwMCAwMDAwMzggKHYwMSBJTlNZREUgRURLMiAgICAgMDAwMDAwMDIgQUNQSSAwMDA0MDAwMCkK
WyAgICAxLjAxOTY3Nl0gQUNQSTogQVBJQyAweDAwMDAwMDAwNUFGRUQwMDAgMDAwMTM4ICh2MDMg
SU5TWURFIEVESzIgICAgIDAwMDAwMDAyIEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk2ODBdIEFD
UEk6IE1DRkcgMHgwMDAwMDAwMDVBRkVDMDAwIDAwMDAzQyAodjAxIElOU1lERSBFREsyICAgICAw
MDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDEuMDE5Njg1XSBBQ1BJOiBTTElDIDB4MDAwMDAw
MDA1QUZFQjAwMCAwMDAxNzYgKHYwMSBJTlNZREUgRURLMiAgICAgMDAwMDAwMDIgQUNQSSAwMDA0
MDAwMCkKWyAgICAxLjAxOTY4OV0gQUNQSTogVkZDVCAweDAwMDAwMDAwNUFGREEwMDAgMDA0Mjg0
ICh2MDEgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk2
OTRdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVBRkQ5MDAwIDAwMDBGOCAodjAyIElOU1lERSBFREsy
ICAgICAwMDAwMTAwMCBBQ1BJIDAwMDQwMDAwKQpbICAgIDEuMDE5Njk4XSBBQ1BJOiBTU0RUIDB4
MDAwMDAwMDA1QUZEMzAwMCAwMDU0N0UgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQ
SSAwMDA0MDAwMCkKWyAgICAxLjAxOTcwM10gQUNQSTogQ1JBVCAweDAwMDAwMDAwNUFGRDIwMDAg
MDAwRjEwICh2MDEgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAg
MS4wMTk3MDddIEFDUEk6IENESVQgMHgwMDAwMDAwMDVBRkQxMDAwIDAwMDAyOSAodjAxIElOU1lE
RSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDEuMDE5NzExXSBBQ1BJOiBT
U0RUIDB4MDAwMDAwMDA1QUZEMDAwMCAwMDBGOEQgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAw
MDEgQUNQSSAwMDA0MDAwMCkKWyAgICAxLjAxOTcxNl0gQUNQSTogU1NEVCAweDAwMDAwMDAwNUFG
Q0YwMDAgMDAwRUMxICh2MDIgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDAp
ClsgICAgMS4wMTk3MjBdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVBRkNFMDAwIDAwMDkzMSAodjAy
IElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDEuMDE5NzI1XSBB
Q1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZDQjAwMCAwMDEzRUMgKHYwMiBJTlNZREUgRURLMiAgICAg
MDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAxLjAxOTcyOV0gQUNQSTogU1NEVCAweDAwMDAw
MDAwNUFGRkQwMDAgMDAwNzdBICh2MDIgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAw
NDAwMDApClsgICAgMS4wMTk3MzRdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVBRkNBMDAwIDAwMDcz
NyAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDEuMDE5
NzM4XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZDODAwMCAwMDE1QzggKHYwMiBJTlNZREUgRURL
MiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAxLjAxOTc0Ml0gQUNQSTogU1NEVCAw
eDAwMDAwMDAwNUFGQzUwMDAgMDAyQThGICh2MDIgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFD
UEkgMDAwNDAwMDApClsgICAgMS4wMTk3NDddIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVBRkJCMDAw
IDAwOTgyMSAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAg
IDEuMDE5NzUxXSBBQ1BJOiBGUERUIDB4MDAwMDAwMDA1QUZCQTAwMCAwMDAwNDQgKHYwMSBJTlNZ
REUgRURLMiAgICAgMDAwMDAwMDIgQUNQSSAwMDA0MDAwMCkKWyAgICAxLjAxOTc1NV0gQUNQSTog
QkdSVCAweDAwMDAwMDAwNUFGQjkwMDAgMDAwMDM4ICh2MDEgSU5TWURFIEVESzIgICAgIDAwMDAw
MDAyIEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk3NjBdIEFDUEk6IFdTTVQgMHgwMDAwMDAwMDVB
RkI4MDAwIDAwMDAyOCAodjAxIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAw
KQpbICAgIDEuMDE5NzY0XSBBQ1BJOiBNSFNQIDB4MDAwMDAwMDA1QUZFQTAwMCAwMDAwQzggKHYw
NCBJTlNZREUgRURLMiAgICAgMjA1MDUzNDggQUNQSSAwMDA0MDAwMCkKWyAgICAxLjAxOTc2OF0g
QUNQSTogU1NEVCAweDAwMDAwMDAwNUFGRTkwMDAgMDAwMEU1ICh2MDIgSU5TWURFIEVESzIgICAg
IDAwMDAwMDA0IEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk3NzNdIEFDUEk6IElWUlMgMHgwMDAw
MDAwMDVBRkI3MDAwIDAwMDFBNCAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBBQ1BJIDAw
MDQwMDAwKQpbICAgIDEuMDE5Nzc3XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZCNjAwMCAwMDA3
NDcgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAxLjAx
OTc4MV0gQUNQSTogU1NEVCAweDAwMDAwMDAwNUFGQjUwMDAgMDAwQzg4ICh2MDIgSU5TWURFIEVE
SzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk3ODZdIEFDUEk6IFNTRFQg
MHgwMDAwMDAwMDVBRkI0MDAwIDAwMDA1NyAodjAyIElOU1lERSBFREsyICAgICAwMDAwMDAwMSBB
Q1BJIDAwMDQwMDAwKQpbICAgIDEuMDE5NzkwXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1QUZCMjAw
MCAwMDE3MEIgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAg
ICAxLjAxOTc5NF0gQUNQSTogU1NEVCAweDAwMDAwMDAwNUFGQjEwMDAgMDAwRkY3ICh2MDIgSU5T
WURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk3OTldIEFDUEk6
IFNTRFQgMHgwMDAwMDAwMDVBRkE3MDAwIDAwOTdFMyAodjAyIElOU1lERSBFREsyICAgICAwMDAw
MDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDEuMDE5ODAzXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA1
QUZBMjAwMCAwMDRGRUIgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQSSAwMDA0MDAw
MCkKWyAgICAxLjAxOTgwOF0gQUNQSTogU1NEVCAweDAwMDAwMDAwNUFGQTEwMDAgMDAwQzdGICh2
MDIgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMS4wMTk4MTJd
IEFDUEk6IFNTRFQgMHgwMDAwMDAwMDVBRkEwMDAwIDAwMDk1NiAodjAyIElOU1lERSBFREsyICAg
ICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDEuMDE5ODE2XSBBQ1BJOiBTU0RUIDB4MDAw
MDAwMDA1QUY5RjAwMCAwMDAwOEQgKHYwMiBJTlNZREUgRURLMiAgICAgMDAwMDAwMDEgQUNQSSAw
MDA0MDAwMCkKWyAgICAxLjAxOTgyMV0gQUNQSTogU1NEVCAweDAwMDAwMDAwNUFGQ0QwMDAgMDAw
RUFEICh2MDIgSU5TWURFIEVESzIgICAgIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMS4w
MTk4MjNdIEFDUEk6IFJlc2VydmluZyBGQUNQIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmZWYw
MDAtMHg1YWZlZjEwYl0KWyAgICAxLjAxOTgyM10gQUNQSTogUmVzZXJ2aW5nIERTRFQgdGFibGUg
bWVtb3J5IGF0IFttZW0gMHg1YWZkZjAwMC0weDVhZmU4M2E1XQpbICAgIDEuMDE5ODI0XSBBQ1BJ
OiBSZXNlcnZpbmcgRkFDUyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZWI3MDAwLTB4NWFlYjcw
M2ZdClsgICAgMS4wMTk4MjRdIEFDUEk6IFJlc2VydmluZyBVRUZJIHRhYmxlIG1lbW9yeSBhdCBb
bWVtIDB4NWFmNjcwMDAtMHg1YWY2NzFjZV0KWyAgICAxLjAxOTgyNV0gQUNQSTogUmVzZXJ2aW5n
IFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZmNDAwMC0weDVhZmZjNDE1XQpbICAgIDEu
MDE5ODI1XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmYy
MDAwLTB4NWFmZjJhYmNdClsgICAgMS4wMTk4MjZdIEFDUEk6IFJlc2VydmluZyBBU0YhIHRhYmxl
IG1lbW9yeSBhdCBbbWVtIDB4NWFmZjEwMDAtMHg1YWZmMTBhNF0KWyAgICAxLjAxOTgyNl0gQUNQ
STogUmVzZXJ2aW5nIEJPT1QgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZmMDAwMC0weDVhZmYw
MDI3XQpbICAgIDEuMDE5ODI3XSBBQ1BJOiBSZXNlcnZpbmcgSFBFVCB0YWJsZSBtZW1vcnkgYXQg
W21lbSAweDVhZmVlMDAwLTB4NWFmZWUwMzddClsgICAgMS4wMTk4MjddIEFDUEk6IFJlc2Vydmlu
ZyBBUElDIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmZWQwMDAtMHg1YWZlZDEzN10KWyAgICAx
LjAxOTgyOF0gQUNQSTogUmVzZXJ2aW5nIE1DRkcgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZl
YzAwMC0weDVhZmVjMDNiXQpbICAgIDEuMDE5ODI4XSBBQ1BJOiBSZXNlcnZpbmcgU0xJQyB0YWJs
ZSBtZW1vcnkgYXQgW21lbSAweDVhZmViMDAwLTB4NWFmZWIxNzVdClsgICAgMS4wMTk4MjhdIEFD
UEk6IFJlc2VydmluZyBWRkNUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmZGEwMDAtMHg1YWZk
ZTI4M10KWyAgICAxLjAxOTgyOV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0
IFttZW0gMHg1YWZkOTAwMC0weDVhZmQ5MGY3XQpbICAgIDEuMDE5ODI5XSBBQ1BJOiBSZXNlcnZp
bmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmQzMDAwLTB4NWFmZDg0N2RdClsgICAg
MS4wMTk4MzBdIEFDUEk6IFJlc2VydmluZyBDUkFUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFm
ZDIwMDAtMHg1YWZkMmYwZl0KWyAgICAxLjAxOTgzMF0gQUNQSTogUmVzZXJ2aW5nIENESVQgdGFi
bGUgbWVtb3J5IGF0IFttZW0gMHg1YWZkMTAwMC0weDVhZmQxMDI4XQpbICAgIDEuMDE5ODMxXSBB
Q1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmQwMDAwLTB4NWFm
ZDBmOGNdClsgICAgMS4wMTk4MzFdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBh
dCBbbWVtIDB4NWFmY2YwMDAtMHg1YWZjZmVjMF0KWyAgICAxLjAxOTgzMl0gQUNQSTogUmVzZXJ2
aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZjZTAwMC0weDVhZmNlOTMwXQpbICAg
IDEuMDE5ODMyXSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVh
ZmNiMDAwLTB4NWFmY2MzZWJdClsgICAgMS4wMTk4MzJdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmZmQwMDAtMHg1YWZmZDc3OV0KWyAgICAxLjAxOTgzM10g
QUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZjYTAwMC0weDVh
ZmNhNzM2XQpbICAgIDEuMDE5ODMzXSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkg
YXQgW21lbSAweDVhZmM4MDAwLTB4NWFmYzk1YzddClsgICAgMS4wMTk4MzRdIEFDUEk6IFJlc2Vy
dmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmYzUwMDAtMHg1YWZjN2E4ZV0KWyAg
ICAxLjAxOTgzNF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1
YWZiYjAwMC0weDVhZmM0ODIwXQpbICAgIDEuMDE5ODM1XSBBQ1BJOiBSZXNlcnZpbmcgRlBEVCB0
YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmJhMDAwLTB4NWFmYmEwNDNdClsgICAgMS4wMTk4MzVd
IEFDUEk6IFJlc2VydmluZyBCR1JUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmYjkwMDAtMHg1
YWZiOTAzN10KWyAgICAxLjAxOTgzNl0gQUNQSTogUmVzZXJ2aW5nIFdTTVQgdGFibGUgbWVtb3J5
IGF0IFttZW0gMHg1YWZiODAwMC0weDVhZmI4MDI3XQpbICAgIDEuMDE5ODM2XSBBQ1BJOiBSZXNl
cnZpbmcgTUhTUCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmVhMDAwLTB4NWFmZWEwYzddClsg
ICAgMS4wMTk4MzZdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4
NWFmZTkwMDAtMHg1YWZlOTBlNF0KWyAgICAxLjAxOTgzN10gQUNQSTogUmVzZXJ2aW5nIElWUlMg
dGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZiNzAwMC0weDVhZmI3MWEzXQpbICAgIDEuMDE5ODM3
XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZmI2MDAwLTB4
NWFmYjY3NDZdClsgICAgMS4wMTk4MzhdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9y
eSBhdCBbbWVtIDB4NWFmYjUwMDAtMHg1YWZiNWM4N10KWyAgICAxLjAxOTgzOF0gQUNQSTogUmVz
ZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZiNDAwMC0weDVhZmI0MDU2XQpb
ICAgIDEuMDE5ODM5XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAw
eDVhZmIyMDAwLTB4NWFmYjM3MGFdClsgICAgMS4wMTk4MzldIEFDUEk6IFJlc2VydmluZyBTU0RU
IHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmYjEwMDAtMHg1YWZiMWZmNl0KWyAgICAxLjAxOTg0
MF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg1YWZhNzAwMC0w
eDVhZmIwN2UyXQpbICAgIDEuMDE5ODQwXSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1v
cnkgYXQgW21lbSAweDVhZmEyMDAwLTB4NWFmYTZmZWFdClsgICAgMS4wMTk4NDFdIEFDUEk6IFJl
c2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmYTEwMDAtMHg1YWZhMWM3ZV0K
WyAgICAxLjAxOTg0MV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0g
MHg1YWZhMDAwMC0weDVhZmEwOTU1XQpbICAgIDEuMDE5ODQxXSBBQ1BJOiBSZXNlcnZpbmcgU1NE
VCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDVhZjlmMDAwLTB4NWFmOWYwOGNdClsgICAgMS4wMTk4
NDJdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4NWFmY2QwMDAt
MHg1YWZjZGVhY10KWyAgICAxLjAxOTkwOF0gQVBJQzogU3dpdGNoZWQgQVBJQyByb3V0aW5nIHRv
OiBYZW4gUFYKWyAgICAxLjEwNjIyNl0gWm9uZSByYW5nZXM6ClsgICAgMS4xMDYyMjhdICAgRE1B
ICAgICAgW21lbSAweDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwMDAwZmZmZmZmXQpbICAgIDEu
MTA2MjI5XSAgIERNQTMyICAgIFttZW0gMHgwMDAwMDAwMDAxMDAwMDAwLTB4MDAwMDAwMDBmZmZm
ZmZmZl0KWyAgICAxLjEwNjIzMF0gICBOb3JtYWwgICBbbWVtIDB4MDAwMDAwMDEwMDAwMDAwMC0w
eDAwMDAwMDEwN2UyZmZmZmZdClsgICAgMS4xMDYyMzFdICAgRGV2aWNlICAgZW1wdHkKWyAgICAx
LjEwNjIzMl0gTW92YWJsZSB6b25lIHN0YXJ0IGZvciBlYWNoIG5vZGUKWyAgICAxLjEwNjIzM10g
RWFybHkgbWVtb3J5IG5vZGUgcmFuZ2VzClsgICAgMS4xMDYyMzNdICAgbm9kZSAgIDA6IFttZW0g
MHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDAwMDA3ZmZmZl0KWyAgICAxLjEwNjIzNF0gICBu
b2RlICAgMDogW21lbSAweDAwMDAwMDAwMDAxMDAwMDAtMHgwMDAwMDAwMDA5YWZmZmZmXQpbICAg
IDEuMTA2MjM1XSAgIG5vZGUgICAwOiBbbWVtIDB4MDAwMDAwMDAwOWUwMDAwMC0weDAwMDAwMDAw
MDllZmZmZmZdClsgICAgMS4xMDYyMzVdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDA5ZjNj
MDAwLTB4MDAwMDAwMDA0MjM1ZmZmZl0KWyAgICAxLjEwNjIzNl0gICBub2RlICAgMDogW21lbSAw
eDAwMDAwMDAwNDQ1NjAwMDAtMHgwMDAwMDAwMDQ0NTY4ZmZmXQpbICAgIDEuMTA2MjM2XSAgIG5v
ZGUgICAwOiBbbWVtIDB4MDAwMDAwMDA0NDU2ZDAwMC0weDAwMDAwMDAwNDQ1NmVmZmZdClsgICAg
MS4xMDYyMzddICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDQ0NTcwMDAwLTB4MDAwMDAwMDA1
MDc3ZWZmZl0KWyAgICAxLjEwNjIzN10gICBub2RlICAgMDogW21lbSAweDAwMDAwMDAwNWFmZmYw
MDAtMHgwMDAwMDAwMDVhZmZmZmZmXQpbICAgIDEuMTA2MjM3XSAgIG5vZGUgICAwOiBbbWVtIDB4
MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDEwN2UyZmZmZmZdClsgICAgMS4xMDYyNDFdIEluaXRt
ZW0gc2V0dXAgbm9kZSAwIFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMTA3ZTJmZmZm
Zl0KWyAgICAxLjEwNjI0Nl0gT24gbm9kZSAwLCB6b25lIERNQTogMSBwYWdlcyBpbiB1bmF2YWls
YWJsZSByYW5nZXMKWyAgICAxLjEwNjI1OV0gT24gbm9kZSAwLCB6b25lIERNQTogMTI4IHBhZ2Vz
IGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDEuMTA2MzU4XSBPbiBub2RlIDAsIHpvbmUgRE1B
MzI6IDc2OCBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMKWyAgICAxLjEwNjk3MF0gT24gbm9k
ZSAwLCB6b25lIERNQTMyOiA2MCBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMKWyAgICAxLjEw
Njk5N10gT24gbm9kZSAwLCB6b25lIERNQTMyOiA4NzA0IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJh
bmdlcwpbICAgIDEuMTA2OTk4XSBPbiBub2RlIDAsIHpvbmUgRE1BMzI6IDQgcGFnZXMgaW4gdW5h
dmFpbGFibGUgcmFuZ2VzClsgICAgMS4xMDcxMzldIE9uIG5vZGUgMCwgem9uZSBETUEzMjogMSBw
YWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMKWyAgICAxLjEwNzI2NF0gT24gbm9kZSAwLCB6b25l
IERNQTMyOiA0MzEzNiBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMKWyAgICAxLjE0MzE1NV0g
T24gbm9kZSAwLCB6b25lIE5vcm1hbDogMjA0ODAgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2Vz
ClsgICAgMS4xNDMxNzddIE9uIG5vZGUgMCwgem9uZSBOb3JtYWw6IDc0MjQgcGFnZXMgaW4gdW5h
dmFpbGFibGUgcmFuZ2VzClsgICAgMS4xNDMxNzldIHAybSB2aXJ0dWFsIGFyZWEgYXQgKF9fX19w
dHJ2YWxfX19fKSwgc2l6ZSBpcyA0MDAwMDAwMApbICAgIDEuNDUzMDAzXSBSZW1hcHBlZCA3Mjg2
NDEgcGFnZShzKQpbICAgIDEuNDUzNTAyXSBBQ1BJOiBQTS1UaW1lciBJTyBQb3J0OiAweDQwOApb
ICAgIDEuNDUzNTUyXSBBQ1BJOiBMQVBJQ19OTUkgKGFjcGlfaWRbMHgwMF0gaGlnaCBlZGdlIGxp
bnRbMHgxXSkKWyAgICAxLjQ1MzU1NF0gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4MDFdIGhp
Z2ggZWRnZSBsaW50WzB4MV0pClsgICAgMS40NTM1NTZdIEFDUEk6IExBUElDX05NSSAoYWNwaV9p
ZFsweDAyXSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDEuNDUzNTU3XSBBQ1BJOiBMQVBJQ19O
TUkgKGFjcGlfaWRbMHgwM10gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAxLjQ1MzU1OV0gQUNQ
STogTEFQSUNfTk1JIChhY3BpX2lkWzB4MDRdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAgMS40
NTM1NjBdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDA1XSBoaWdoIGVkZ2UgbGludFsweDFd
KQpbICAgIDEuNDUzNTYxXSBBQ1BJOiBMQVBJQ19OTUkgKGFjcGlfaWRbMHgwNl0gaGlnaCBlZGdl
IGxpbnRbMHgxXSkKWyAgICAxLjQ1MzU2M10gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4MDdd
IGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAgMS40NTM1NjRdIEFDUEk6IExBUElDX05NSSAoYWNw
aV9pZFsweDA4XSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDEuNDUzNTY1XSBBQ1BJOiBMQVBJ
Q19OTUkgKGFjcGlfaWRbMHgwOV0gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAxLjQ1MzU2N10g
QUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4MGFdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAg
MS40NTM1NjhdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDBiXSBoaWdoIGVkZ2UgbGludFsw
eDFdKQpbICAgIDEuNDUzNTY5XSBBQ1BJOiBMQVBJQ19OTUkgKGFjcGlfaWRbMHgwY10gaGlnaCBl
ZGdlIGxpbnRbMHgxXSkKWyAgICAxLjQ1MzU3MV0gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4
MGRdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAgMS40NTM1NzJdIEFDUEk6IExBUElDX05NSSAo
YWNwaV9pZFsweDBlXSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDEuNDUzNTczXSBBQ1BJOiBM
QVBJQ19OTUkgKGFjcGlfaWRbMHgwZl0gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAxLjQ1MzYw
Ml0gSU9BUElDWzBdOiBhcGljX2lkIDMzLCB2ZXJzaW9uIDMzLCBhZGRyZXNzIDB4ZmVjMDAwMDAs
IEdTSSAwLTIzClsgICAgMS40NTM2MDldIElPQVBJQ1sxXTogYXBpY19pZCAzNCwgdmVyc2lvbiAz
MywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUKWyAgICAxLjQ1MzYyMF0gQUNQSTogSU5U
X1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgMCBnbG9iYWxfaXJxIDIgZGZsIGRmbCkKWyAgICAxLjQ1
MzYyMl0gQUNQSTogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgOSBnbG9iYWxfaXJxIDkgbG93
IGxldmVsKQpbICAgIDEuNDUzNjQ4XSBBQ1BJOiBVc2luZyBBQ1BJIChNQURUKSBmb3IgU01QIGNv
bmZpZ3VyYXRpb24gaW5mb3JtYXRpb24KWyAgICAxLjQ1MzY1MF0gQUNQSTogSFBFVCBpZDogMHgx
MDIyODIxMCBiYXNlOiAweGZlZDAwMDAwClsgICAgMS40NTQxMDVdIHNtcGJvb3Q6IEFsbG93aW5n
IDE2IENQVXMsIDAgaG90cGx1ZyBDUFVzClsgICAgMS40NTQxMjFdIFBNOiBoaWJlcm5hdGlvbjog
UmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4MDAwMDAwMDAtMHgwMDAwMGZmZl0KWyAg
ICAxLjQ1NDEyM10gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFtt
ZW0gMHgwMDA4MDAwMC0weDAwMGZmZmZmXQpbICAgIDEuNDU0MTI0XSBQTTogaGliZXJuYXRpb246
IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDA5YjAwMDAwLTB4MDlkZmZmZmZdClsg
ICAgMS40NTQxMjVdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBb
bWVtIDB4MDlmMDAwMDAtMHgwOWYzYmZmZl0KWyAgICAxLjQ1NDEyNl0gUE06IGhpYmVybmF0aW9u
OiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHg0MjM2MDAwMC0weDQ0NTVmZmZmXQpb
ICAgIDEuNDU0MTI3XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTog
W21lbSAweDQ0NTY5MDAwLTB4NDQ1NmNmZmZdClsgICAgMS40NTQxMjhdIFBNOiBoaWJlcm5hdGlv
bjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4NDQ1NmYwMDAtMHg0NDU2ZmZmZl0K
WyAgICAxLjQ1NDEyOV0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6
IFttZW0gMHg1MDc3ZjAwMC0weDUyZjdlZmZmXQpbICAgIDEuNDU0MTI5XSBQTTogaGliZXJuYXRp
b246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDUyZjdmMDAwLTB4NWFmN2VmZmZd
ClsgICAgMS40NTQxMjldIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5
OiBbbWVtIDB4NWFmN2YwMDAtMHg1YWZmZWZmZl0KWyAgICAxLjQ1NDEzMF0gUE06IGhpYmVybmF0
aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHg1YjAwMDAwMC0weDViZmZmZmZm
XQpbICAgIDEuNDU0MTMxXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9y
eTogW21lbSAweDVjMDAwMDAwLTB4NWQ3OGZmZmZdClsgICAgMS40NTQxMzFdIFBNOiBoaWJlcm5h
dGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4NWQ3OTAwMDAtMHg1ZDdlZmZm
Zl0KWyAgICAxLjQ1NDEzMl0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1v
cnk6IFttZW0gMHg1ZDdmMDAwMC0weDVkN2Y0ZmZmXQpbICAgIDEuNDU0MTMyXSBQTTogaGliZXJu
YXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDVkN2Y1MDAwLTB4NWZmZmZm
ZmZdClsgICAgMS40NTQxMzNdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVt
b3J5OiBbbWVtIDB4NjAwMDAwMDAtMHhjMDFmZmZmZl0KWyAgICAxLjQ1NDEzM10gUE06IGhpYmVy
bmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhjMDIwMDAwMC0weGMwMjAz
ZmZmXQpbICAgIDEuNDU0MTMzXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1l
bW9yeTogW21lbSAweGMwMjA0MDAwLTB4YzAyZmZmZmZdClsgICAgMS40NTQxMzRdIFBNOiBoaWJl
cm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4YzAzMDAwMDAtMHhjMDNm
ZmZmZl0KWyAgICAxLjQ1NDEzNF0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBt
ZW1vcnk6IFttZW0gMHhjMDQwMDAwMC0weGZlYmZmZmZmXQpbICAgIDEuNDU0MTM1XSBQTTogaGli
ZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGZlYzAwMDAwLTB4ZmVj
MDFmZmZdClsgICAgMS40NTQxMzVdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUg
bWVtb3J5OiBbbWVtIDB4ZmVjMDIwMDAtMHhmZWQ3ZmZmZl0KWyAgICAxLjQ1NDEzNV0gUE06IGhp
YmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZWQ4MDAwMC0weGZl
ZDgwZmZmXQpbICAgIDEuNDU0MTM2XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZl
IG1lbW9yeTogW21lbSAweGZlZDgxMDAwLTB4ZmVkZmZmZmZdClsgICAgMS40NTQxMzZdIFBNOiBo
aWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmVlMDAwMDAtMHhm
ZWVmZmZmZl0KWyAgICAxLjQ1NDEzN10gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2
ZSBtZW1vcnk6IFttZW0gMHhmZWYwMDAwMC0weGZlZmZmZmZmXQpbICAgIDEuNDU0MTM3XSBQTTog
aGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGZmMDAwMDAwLTB4
ZmZmZmZmZmZdClsgICAgMS40NTQxMzhdIFttZW0gMHg2MDAwMDAwMC0weGMwMWZmZmZmXSBhdmFp
bGFibGUgZm9yIFBDSSBkZXZpY2VzClsgICAgMS40NTQxNDBdIEJvb3Rpbmcga2VybmVsIG9uIFhl
bgpbICAgIDEuNDU0MTQxXSBYZW4gdmVyc2lvbjogNC4xNy4zLXByZSAocHJlc2VydmUtQUQpClsg
ICAgMS40NTQxNDNdIGNsb2Nrc291cmNlOiByZWZpbmVkLWppZmZpZXM6IG1hc2s6IDB4ZmZmZmZm
ZmYgbWF4X2N5Y2xlczogMHhmZmZmZmZmZiwgbWF4X2lkbGVfbnM6IDE5MTA5Njk5NDAzOTE0MTkg
bnMKWyAgICAxLjQ1Nzc4M10gc2V0dXBfcGVyY3B1OiBOUl9DUFVTOjgxOTIgbnJfY3B1bWFza19i
aXRzOjE2IG5yX2NwdV9pZHM6MTYgbnJfbm9kZV9pZHM6MQpbICAgIDEuNDU4MDc0XSBwZXJjcHU6
IEVtYmVkZGVkIDY0IHBhZ2VzL2NwdSBzMjI1MjgwIHI4MTkyIGQyODY3MiB1MjYyMTQ0ClsgICAg
MS40NTgwNzhdIHBjcHUtYWxsb2M6IHMyMjUyODAgcjgxOTIgZDI4NjcyIHUyNjIxNDQgYWxsb2M9
MSoyMDk3MTUyClsgICAgMS40NTgwODBdIHBjcHUtYWxsb2M6IFswXSAwMCAwMSAwMiAwMyAwNCAw
NSAwNiAwNyBbMF0gMDggMDkgMTAgMTEgMTIgMTMgMTQgMTUgClsgICAgMS40NTgxMTldIHhlbjog
UFYgc3BpbmxvY2tzIGVuYWJsZWQKWyAgICAxLjQ1ODEyMF0gUFYgcXNwaW5sb2NrIGhhc2ggdGFi
bGUgZW50cmllczogMjU2IChvcmRlcjogMCwgNDA5NiBieXRlcywgbGluZWFyKQpbICAgIDEuNDU4
MTIyXSBLZXJuZWwgY29tbWFuZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVVSUQ9NzFiMWRjNTkt
ZWEwMC00ODRjLWI1ZTQtZWU3N2VkZTc3MWRiIHJvICJkeW5kYmc9ZmlsZSBkcml2ZXJzL2dwaW8v
KiArcDsgZmlsZSBkcml2ZXJzL3BpbmN0cmwvKiArcDsgZmlsZSBhcmNoL3g4Ni9wY2kveGVuLmMg
K3AiClsgICAgMS40NTgxNjVdIFVua25vd24ga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJz
ICJwbGFjZWhvbGRlciIsIHdpbGwgYmUgcGFzc2VkIHRvIHVzZXIgc3BhY2UuClsgICAgMS40NTgz
NzRdIHJhbmRvbTogY3JuZyBpbml0IGRvbmUKWyAgICAxLjQ2MTI2M10gRGVudHJ5IGNhY2hlIGhh
c2ggdGFibGUgZW50cmllczogODM4ODYwOCAob3JkZXI6IDE0LCA2NzEwODg2NCBieXRlcywgbGlu
ZWFyKQpbICAgIDEuNDYyNzY2XSBJbm9kZS1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDQxOTQz
MDQgKG9yZGVyOiAxMywgMzM1NTQ0MzIgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjQ2Mjk3NV0gQnVp
bHQgMSB6b25lbGlzdHMsIG1vYmlsaXR5IGdyb3VwaW5nIG9uLiAgVG90YWwgcGFnZXM6IDE2MzA2
NTg2ClsgICAgMS40NjMwODddIG1lbSBhdXRvLWluaXQ6IHN0YWNrOmFsbCh6ZXJvKSwgaGVhcCBh
bGxvYzpvZmYsIGhlYXAgZnJlZTpvZmYKWyAgICAxLjQ2MzA5MF0gc29mdHdhcmUgSU8gVExCOiBh
cmVhIG51bSAxNi4KWyAgICAxLjU0OTM4Ml0gTWVtb3J5OiA2MzU4MjgwOEsvNjYyNjE3NTJLIGF2
YWlsYWJsZSAoMTg0MzJLIGtlcm5lbCBjb2RlLCAzMTY4SyByd2RhdGEsIDE0NDU2SyByb2RhdGEs
IDM5NDRLIGluaXQsIDM3MDRLIGJzcywgMjY3ODY5MksgcmVzZXJ2ZWQsIDBLIGNtYS1yZXNlcnZl
ZCkKWyAgICAxLjU0OTYzNl0gU0xVQjogSFdhbGlnbj02NCwgT3JkZXI9MC0zLCBNaW5PYmplY3Rz
PTAsIENQVXM9MTYsIE5vZGVzPTEKWyAgICAxLjU0OTk1OF0gZnRyYWNlOiBhbGxvY2F0aW5nIDUz
MzA3IGVudHJpZXMgaW4gMjA5IHBhZ2VzClsgICAgMS41NTY5MjZdIGZ0cmFjZTogYWxsb2NhdGVk
IDIwOSBwYWdlcyB3aXRoIDQgZ3JvdXBzClsgICAgMS41NTc0OThdIER5bmFtaWMgUHJlZW1wdDog
dm9sdW50YXJ5ClsgICAgMS41NTc1OTJdIHJjdTogUHJlZW1wdGlibGUgaGllcmFyY2hpY2FsIFJD
VSBpbXBsZW1lbnRhdGlvbi4KWyAgICAxLjU1NzU5M10gcmN1OiAJUkNVIHJlc3RyaWN0aW5nIENQ
VXMgZnJvbSBOUl9DUFVTPTgxOTIgdG8gbnJfY3B1X2lkcz0xNi4KWyAgICAxLjU1NzU5M10gCVRy
YW1wb2xpbmUgdmFyaWFudCBvZiBUYXNrcyBSQ1UgZW5hYmxlZC4KWyAgICAxLjU1NzU5NF0gCVJ1
ZGUgdmFyaWFudCBvZiBUYXNrcyBSQ1UgZW5hYmxlZC4KWyAgICAxLjU1NzU5NF0gCVRyYWNpbmcg
dmFyaWFudCBvZiBUYXNrcyBSQ1UgZW5hYmxlZC4KWyAgICAxLjU1NzU5NV0gcmN1OiBSQ1UgY2Fs
Y3VsYXRlZCB2YWx1ZSBvZiBzY2hlZHVsZXItZW5saXN0bWVudCBkZWxheSBpcyAxMDAgamlmZmll
cy4KWyAgICAxLjU1NzU5NV0gcmN1OiBBZGp1c3RpbmcgZ2VvbWV0cnkgZm9yIHJjdV9mYW5vdXRf
bGVhZj0xNiwgbnJfY3B1X2lkcz0xNgpbICAgIDEuNTYwNjkyXSBOUl9JUlFTOiA1MjQ1NDQsIG5y
X2lycXM6IDEwOTYsIHByZWFsbG9jYXRlZCBpcnFzOiAxNgpbICAgIDEuNTYwNzYwXSB4ZW46ZXZl
bnRzOiBVc2luZyBGSUZPLWJhc2VkIEFCSQpbICAgIDEuNTYwNzYyXSB4ZW5fcmVnaXN0ZXJfcGly
cTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSAxIHRyaWdnZXJpbmcgMSBzZXRfcGlycSAx
ClsgICAgMS41NjA3NjZdIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09SX3BoeXNk
ZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSAxIHRyaWdnZXJpbmcg
MSBzaGFyZWFibGUgMCBuYW1lIGlvYXBpYy1lZGdlClsgICAgMS41NjA3NzBdIHhlbl9yZWdpc3Rl
cl9waXJxOiB4ZW46IC0tPiBwaXJxPTEgLT4gaXJxPTEgKGdzaT0xKQpbICAgIDEuNTYwNzcxXSB4
ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSAyIHRyaWdnZXJp
bmcgMSBzZXRfcGlycSAxClsgICAgMS41NjA3NzFdIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBI
WVBFUlZJU09SX3BoeXNkZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdz
aSAyIHRyaWdnZXJpbmcgMSBzaGFyZWFibGUgMCBuYW1lIGlvYXBpYy1lZGdlClsgICAgMS41NjA3
NzNdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTIgLT4gaXJxPTIgKGdzaT0yKQpb
ICAgIDEuNTYwNzczXSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6
IGdzaSAzIHRyaWdnZXJpbmcgMSBzZXRfcGlycSAxClsgICAgMS41NjA3NzRdIHhlbl9yZWdpc3Rl
cl9waXJxOiBhZnRlciBIWVBFUlZJU09SX3BoeXNkZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9waXJx
X2dzaV90b19pcnE6IGdzaSAzIHRyaWdnZXJpbmcgMSBzaGFyZWFibGUgMCBuYW1lIGlvYXBpYy1l
ZGdlClsgICAgMS41NjA3NzVdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTMgLT4g
aXJxPTMgKGdzaT0zKQpbICAgIDEuNTYwNzc2XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhl
bl9pcnFfZnJvbV9nc2k6IGdzaSA0IHRyaWdnZXJpbmcgMSBzZXRfcGlycSAxClsgICAgMS41NjA3
NzddIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09SX3BoeXNkZXZfb3AsIGJlZm9y
ZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSA0IHRyaWdnZXJpbmcgMSBzaGFyZWFibGUg
MCBuYW1lIGlvYXBpYy1lZGdlClsgICAgMS41NjA3NzhdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46
IC0tPiBwaXJxPTQgLT4gaXJxPTQgKGdzaT00KQpbICAgIDEuNTYwNzc4XSB4ZW5fcmVnaXN0ZXJf
cGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSA1IHRyaWdnZXJpbmcgMSBzZXRfcGly
cSAxClsgICAgMS41NjA3NzldIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09SX3Bo
eXNkZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSA1IHRyaWdnZXJp
bmcgMSBzaGFyZWFibGUgMCBuYW1lIGlvYXBpYy1lZGdlClsgICAgMS41NjA3ODBdIHhlbl9yZWdp
c3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTUgLT4gaXJxPTUgKGdzaT01KQpbICAgIDEuNTYwNzgw
XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSA2IHRyaWdn
ZXJpbmcgMSBzZXRfcGlycSAxClsgICAgMS41NjA3ODFdIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRl
ciBIWVBFUlZJU09SX3BoeXNkZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6
IGdzaSA2IHRyaWdnZXJpbmcgMSBzaGFyZWFibGUgMCBuYW1lIGlvYXBpYy1lZGdlClsgICAgMS41
NjA3ODJdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTYgLT4gaXJxPTYgKGdzaT02
KQpbICAgIDEuNTYwNzgzXSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9n
c2k6IGdzaSA3IHRyaWdnZXJpbmcgMSBzZXRfcGlycSAxClsgICAgMS41NjA3ODRdIHhlbl9yZWdp
c3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09SX3BoeXNkZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9w
aXJxX2dzaV90b19pcnE6IGdzaSA3IHRyaWdnZXJpbmcgMSBzaGFyZWFibGUgMCBuYW1lIGlvYXBp
Yy1lZGdlClsgICAgMS41NjA3ODVdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTcg
LT4gaXJxPTcgKGdzaT03KQpbICAgIDEuNTYwNzg1XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3Jl
IHhlbl9pcnFfZnJvbV9nc2k6IGdzaSA4IHRyaWdnZXJpbmcgMSBzZXRfcGlycSAxClsgICAgMS41
NjA3ODZdIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09SX3BoeXNkZXZfb3AsIGJl
Zm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSA4IHRyaWdnZXJpbmcgMSBzaGFyZWFi
bGUgMCBuYW1lIGlvYXBpYy1lZGdlClsgICAgMS41NjA3ODddIHhlbl9yZWdpc3Rlcl9waXJxOiB4
ZW46IC0tPiBwaXJxPTggLT4gaXJxPTggKGdzaT04KQpbICAgIDEuNTYwNzg4XSB4ZW5fcmVnaXN0
ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSA5IHRyaWdnZXJpbmcgMCBzZXRf
cGlycSAxClsgICAgMS41NjA3ODldIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09S
X3BoeXNkZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSA5IHRyaWdn
ZXJpbmcgMCBzaGFyZWFibGUgMSBuYW1lIGlvYXBpYy1sZXZlbApbICAgIDEuNTYwNzkwXSB4ZW5f
cmVnaXN0ZXJfcGlycTogeGVuOiAtLT4gcGlycT05IC0+IGlycT05IChnc2k9OSkKWyAgICAxLjU2
MDc5MF0geGVuX3JlZ2lzdGVyX3BpcnE6IGJlZm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgMTAg
dHJpZ2dlcmluZyAxIHNldF9waXJxIDEKWyAgICAxLjU2MDc5MV0geGVuX3JlZ2lzdGVyX3BpcnE6
IGFmdGVyIEhZUEVSVklTT1JfcGh5c2Rldl9vcCwgYmVmb3JlIHhlbl9iaW5kX3BpcnFfZ3NpX3Rv
X2lycTogZ3NpIDEwIHRyaWdnZXJpbmcgMSBzaGFyZWFibGUgMCBuYW1lIGlvYXBpYy1lZGdlClsg
ICAgMS41NjA3OTJdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTEwIC0+IGlycT0x
MCAoZ3NpPTEwKQpbICAgIDEuNTYwNzkzXSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9p
cnFfZnJvbV9nc2k6IGdzaSAxMSB0cmlnZ2VyaW5nIDEgc2V0X3BpcnEgMQpbICAgIDEuNTYwNzk0
XSB4ZW5fcmVnaXN0ZXJfcGlycTogYWZ0ZXIgSFlQRVJWSVNPUl9waHlzZGV2X29wLCBiZWZvcmUg
eGVuX2JpbmRfcGlycV9nc2lfdG9faXJxOiBnc2kgMTEgdHJpZ2dlcmluZyAxIHNoYXJlYWJsZSAw
IG5hbWUgaW9hcGljLWVkZ2UKWyAgICAxLjU2MDc5NV0geGVuX3JlZ2lzdGVyX3BpcnE6IHhlbjog
LS0+IHBpcnE9MTEgLT4gaXJxPTExIChnc2k9MTEpClsgICAgMS41NjA3OTVdIHhlbl9yZWdpc3Rl
cl9waXJxOiBiZWZvcmUgeGVuX2lycV9mcm9tX2dzaTogZ3NpIDEyIHRyaWdnZXJpbmcgMSBzZXRf
cGlycSAxClsgICAgMS41NjA3OTZdIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09S
X3BoeXNkZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSAxMiB0cmln
Z2VyaW5nIDEgc2hhcmVhYmxlIDAgbmFtZSBpb2FwaWMtZWRnZQpbICAgIDEuNTYwNzk3XSB4ZW5f
cmVnaXN0ZXJfcGlycTogeGVuOiAtLT4gcGlycT0xMiAtPiBpcnE9MTIgKGdzaT0xMikKWyAgICAx
LjU2MDc5OF0geGVuX3JlZ2lzdGVyX3BpcnE6IGJlZm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kg
MTMgdHJpZ2dlcmluZyAxIHNldF9waXJxIDEKWyAgICAxLjU2MDc5OF0geGVuX3JlZ2lzdGVyX3Bp
cnE6IGFmdGVyIEhZUEVSVklTT1JfcGh5c2Rldl9vcCwgYmVmb3JlIHhlbl9iaW5kX3BpcnFfZ3Np
X3RvX2lycTogZ3NpIDEzIHRyaWdnZXJpbmcgMSBzaGFyZWFibGUgMCBuYW1lIGlvYXBpYy1lZGdl
ClsgICAgMS41NjA4MDBdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTEzIC0+IGly
cT0xMyAoZ3NpPTEzKQpbICAgIDEuNTYwODAwXSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhl
bl9pcnFfZnJvbV9nc2k6IGdzaSAxNCB0cmlnZ2VyaW5nIDEgc2V0X3BpcnEgMQpbICAgIDEuNTYw
ODAxXSB4ZW5fcmVnaXN0ZXJfcGlycTogYWZ0ZXIgSFlQRVJWSVNPUl9waHlzZGV2X29wLCBiZWZv
cmUgeGVuX2JpbmRfcGlycV9nc2lfdG9faXJxOiBnc2kgMTQgdHJpZ2dlcmluZyAxIHNoYXJlYWJs
ZSAwIG5hbWUgaW9hcGljLWVkZ2UKWyAgICAxLjU2MDgwMl0geGVuX3JlZ2lzdGVyX3BpcnE6IHhl
bjogLS0+IHBpcnE9MTQgLT4gaXJxPTE0IChnc2k9MTQpClsgICAgMS41NjA4MDJdIHhlbl9yZWdp
c3Rlcl9waXJxOiBiZWZvcmUgeGVuX2lycV9mcm9tX2dzaTogZ3NpIDE1IHRyaWdnZXJpbmcgMSBz
ZXRfcGlycSAxClsgICAgMS41NjA4MDNdIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJ
U09SX3BoeXNkZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSAxNSB0
cmlnZ2VyaW5nIDEgc2hhcmVhYmxlIDAgbmFtZSBpb2FwaWMtZWRnZQpbICAgIDEuNTYwODA1XSB4
ZW5fcmVnaXN0ZXJfcGlycTogeGVuOiAtLT4gcGlycT0xNSAtPiBpcnE9MTUgKGdzaT0xNSkKWyAg
ICAxLjU2MDgxMF0gcmN1OiBzcmN1X2luaXQ6IFNldHRpbmcgc3JjdV9zdHJ1Y3Qgc2l6ZXMgYmFz
ZWQgb24gY29udGVudGlvbi4KWyAgICAxLjU2MTAzOF0ga2ZlbmNlOiBpbml0aWFsaXplZCAtIHVz
aW5nIDIwOTcxNTIgYnl0ZXMgZm9yIDI1NSBvYmplY3RzIGF0IDB4KF9fX19wdHJ2YWxfX19fKS0w
eChfX19fcHRydmFsX19fXykKWyAgICAxLjU2MTA3Ml0gQ29uc29sZTogY29sb3VyIGR1bW15IGRl
dmljZSA4MHgyNQpbICAgIDEuNTYxMDc0XSBwcmludGs6IGNvbnNvbGUgW3R0eTBdIGVuYWJsZWQK
WyAgICAxLjU2MTM1OV0gcHJpbnRrOiBjb25zb2xlIFtodmMwXSBlbmFibGVkClsgICAgMS41NjE2
NDVdIEFDUEk6IENvcmUgcmV2aXNpb24gMjAyMzA2MjgKWyAgICAxLjU4NTE3MF0gQUNQSSBCSU9T
IFdhcm5pbmcgKGJ1Zyk6IEluY29ycmVjdCBjaGVja3N1bSBpbiB0YWJsZSBbQkdSVF0gLSAweDcw
LCBzaG91bGQgYmUgMHhGRkZGRkZGQiAoMjAyMzA2MjgvdXRja3N1bS01OCkKWyAgICAxLjU5NTUy
NV0gY2xvY2tzb3VyY2U6IHhlbjogbWFzazogMHhmZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6
IDB4MWNkNDJlNGRmZmIsIG1heF9pZGxlX25zOiA4ODE1OTA1OTE0ODMgbnMKWyAgICAxLjU5NTUz
MV0gWGVuOiB1c2luZyB2Y3B1b3AgdGltZXIgaW50ZXJmYWNlClsgICAgMS41OTU1MzJdIGluc3Rh
bGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMApbICAgIDEuNTk1NjExXSBjbG9ja3NvdXJjZTogdHNj
LWVhcmx5OiBtYXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgyZjdhN2E3ZjIy
MSwgbWF4X2lkbGVfbnM6IDQ0MDc5NTI4OTcyNiBucwpbICAgIDEuNTk1NjE2XSBDYWxpYnJhdGlu
ZyBkZWxheSBsb29wIChza2lwcGVkKSwgdmFsdWUgY2FsY3VsYXRlZCB1c2luZyB0aW1lciBmcmVx
dWVuY3kuLiA2NTg3LjYzIEJvZ29NSVBTIChscGo9MzI5MzgxNikKWyAgICAxLjU5NTY0OF0gTGFz
dCBsZXZlbCBpVExCIGVudHJpZXM6IDRLQiA1MTIsIDJNQiA1MTIsIDRNQiAyNTYKWyAgICAxLjU5
NTY1MF0gTGFzdCBsZXZlbCBkVExCIGVudHJpZXM6IDRLQiAyMDQ4LCAyTUIgMjA0OCwgNE1CIDEw
MjQsIDFHQiAwClsgICAgMS41OTU2NTVdIFNwZWN0cmUgVjEgOiBNaXRpZ2F0aW9uOiB1c2VyY29w
eS9zd2FwZ3MgYmFycmllcnMgYW5kIF9fdXNlciBwb2ludGVyIHNhbml0aXphdGlvbgpbICAgIDEu
NTk1NjU5XSBTcGVjdHJlIFYyIDogTWl0aWdhdGlvbjogUmV0cG9saW5lcwpbICAgIDEuNTk1NjYx
XSBTcGVjdHJlIFYyIDogU3BlY3RyZSB2MiAvIFNwZWN0cmVSU0IgbWl0aWdhdGlvbjogRmlsbGlu
ZyBSU0Igb24gY29udGV4dCBzd2l0Y2gKWyAgICAxLjU5NTY2NF0gU3BlY3RyZSBWMiA6IFNwZWN0
cmUgdjIgLyBTcGVjdHJlUlNCIDogRmlsbGluZyBSU0Igb24gVk1FWElUClsgICAgMS41OTU2Njdd
IFNwZWN0cmUgVjIgOiBtaXRpZ2F0aW9uOiBFbmFibGluZyBjb25kaXRpb25hbCBJbmRpcmVjdCBC
cmFuY2ggUHJlZGljdGlvbiBCYXJyaWVyClsgICAgMS41OTU2NzBdIFNwZWN1bGF0aXZlIFN0b3Jl
IEJ5cGFzczogVnVsbmVyYWJsZQpbICAgIDEuNTk1NjczXSBTcGVjdWxhdGl2ZSBSZXR1cm4gU3Rh
Y2sgT3ZlcmZsb3c6IElCUEItZXh0ZW5kaW5nIG1pY3JvY29kZSBub3QgYXBwbGllZCEKWyAgICAx
LjU5NTY3NV0gU3BlY3VsYXRpdmUgUmV0dXJuIFN0YWNrIE92ZXJmbG93OiBXQVJOSU5HOiBTZWUg
aHR0cHM6Ly9rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9hZG1pbi1ndWlkZS9ody12dWxuL3Ny
c28uaHRtbCBmb3IgbWl0aWdhdGlvbiBvcHRpb25zLgpbICAgIDEuNTk1Njc2XSBTcGVjdWxhdGl2
ZSBSZXR1cm4gU3RhY2sgT3ZlcmZsb3c6IFZ1bG5lcmFibGU6IFNhZmUgUkVULCBubyBtaWNyb2Nv
ZGUKWyAgICAxLjU5NTY5MV0geDg2L2ZwdTogU3VwcG9ydGluZyBYU0FWRSBmZWF0dXJlIDB4MDAx
OiAneDg3IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycycKWyAgICAxLjU5NTY5NF0geDg2L2ZwdTog
U3VwcG9ydGluZyBYU0FWRSBmZWF0dXJlIDB4MDAyOiAnU1NFIHJlZ2lzdGVycycKWyAgICAxLjU5
NTY5Nl0geDg2L2ZwdTogU3VwcG9ydGluZyBYU0FWRSBmZWF0dXJlIDB4MDA0OiAnQVZYIHJlZ2lz
dGVycycKWyAgICAxLjU5NTY5OV0geDg2L2ZwdTogU3VwcG9ydGluZyBYU0FWRSBmZWF0dXJlIDB4
MDIwOiAnQVZYLTUxMiBvcG1hc2snClsgICAgMS41OTU3MDFdIHg4Ni9mcHU6IFN1cHBvcnRpbmcg
WFNBVkUgZmVhdHVyZSAweDA0MDogJ0FWWC01MTIgSGkyNTYnClsgICAgMS41OTU3MDNdIHg4Ni9m
cHU6IFN1cHBvcnRpbmcgWFNBVkUgZmVhdHVyZSAweDA4MDogJ0FWWC01MTIgWk1NX0hpMjU2Jwpb
ICAgIDEuNTk1NzA2XSB4ODYvZnB1OiB4c3RhdGVfb2Zmc2V0WzJdOiAgNTc2LCB4c3RhdGVfc2l6
ZXNbMl06ICAyNTYKWyAgICAxLjU5NTcwOF0geDg2L2ZwdTogeHN0YXRlX29mZnNldFs1XTogIDgz
MiwgeHN0YXRlX3NpemVzWzVdOiAgIDY0ClsgICAgMS41OTU3MTFdIHg4Ni9mcHU6IHhzdGF0ZV9v
ZmZzZXRbNl06ICA4OTYsIHhzdGF0ZV9zaXplc1s2XTogIDUxMgpbICAgIDEuNTk1NzEzXSB4ODYv
ZnB1OiB4c3RhdGVfb2Zmc2V0WzddOiAxNDA4LCB4c3RhdGVfc2l6ZXNbN106IDEwMjQKWyAgICAx
LjU5NTcxNV0geDg2L2ZwdTogRW5hYmxlZCB4c3RhdGUgZmVhdHVyZXMgMHhlNywgY29udGV4dCBz
aXplIGlzIDI0MzIgYnl0ZXMsIHVzaW5nICdjb21wYWN0ZWQnIGZvcm1hdC4KWyAgICAxLjYwNjk5
OV0gRnJlZWluZyBTTVAgYWx0ZXJuYXRpdmVzIG1lbW9yeTogNDhLClsgICAgMS42MDcwMDhdIHBp
ZF9tYXg6IGRlZmF1bHQ6IDMyNzY4IG1pbmltdW06IDMwMQpbICAgIDEuNjA3MDYxXSBMU006IGlu
aXRpYWxpemluZyBsc209bG9ja2Rvd24sY2FwYWJpbGl0eSx5YW1hLHNlbGludXgsYnBmLGxhbmRs
b2NrLGludGVncml0eQpbICAgIDEuNjA3MDg3XSBZYW1hOiBiZWNvbWluZyBtaW5kZnVsLgpbICAg
IDEuNjA3MDkyXSBTRUxpbnV4OiAgSW5pdGlhbGl6aW5nLgpbICAgIDEuNjA3MTQ3XSBMU00gc3Vw
cG9ydCBmb3IgZUJQRiBhY3RpdmUKWyAgICAxLjYwNzE1Ml0gbGFuZGxvY2s6IFVwIGFuZCBydW5u
aW5nLgpbICAgIDEuNjA3MjA5XSBNb3VudC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDEzMTA3
MiAob3JkZXI6IDgsIDEwNDg1NzYgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjYwNzI1NV0gTW91bnRw
b2ludC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDEzMTA3MiAob3JkZXI6IDgsIDEwNDg1NzYg
Ynl0ZXMsIGxpbmVhcikKWyAgICAxLjYwNzY3M10gY3B1IDAgc3BpbmxvY2sgZXZlbnQgaXJxIDU3
ClsgICAgMS42MDc2ODZdIFZQTVUgZGlzYWJsZWQgYnkgaHlwZXJ2aXNvci4KWyAgICAxLjYwNzky
NF0gUkNVIFRhc2tzOiBTZXR0aW5nIHNoaWZ0IHRvIDQgYW5kIGxpbSB0byAxIHJjdV90YXNrX2Ni
X2FkanVzdD0xLgpbICAgIDEuNjA3OTU5XSBSQ1UgVGFza3MgUnVkZTogU2V0dGluZyBzaGlmdCB0
byA0IGFuZCBsaW0gdG8gMSByY3VfdGFza19jYl9hZGp1c3Q9MS4KWyAgICAxLjYwNzk4NV0gUkNV
IFRhc2tzIFRyYWNlOiBTZXR0aW5nIHNoaWZ0IHRvIDQgYW5kIGxpbSB0byAxIHJjdV90YXNrX2Ni
X2FkanVzdD0xLgpbICAgIDEuNjA4MDExXSBQZXJmb3JtYW5jZSBFdmVudHM6IFBNVSBub3QgYXZh
aWxhYmxlIGR1ZSB0byB2aXJ0dWFsaXphdGlvbiwgdXNpbmcgc29mdHdhcmUgZXZlbnRzIG9ubHku
ClsgICAgMS42MDgwMjJdIHNpZ25hbDogbWF4IHNpZ2ZyYW1lIHNpemU6IDMzNzYKWyAgICAxLjYw
ODA1NV0gcmN1OiBIaWVyYXJjaGljYWwgU1JDVSBpbXBsZW1lbnRhdGlvbi4KWyAgICAxLjYwODA1
OV0gcmN1OiAJTWF4IHBoYXNlIG5vLWRlbGF5IGluc3RhbmNlcyBpcyA0MDAuClsgICAgMS42MTI4
MDJdIE5NSSB3YXRjaGRvZzogUGVyZiBOTUkgd2F0Y2hkb2cgcGVybWFuZW50bHkgZGlzYWJsZWQK
WyAgICAxLjYxMzE2Ml0gc21wOiBCcmluZ2luZyB1cCBzZWNvbmRhcnkgQ1BVcyAuLi4KWyAgICAx
LjYxMzQwOF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAxClsgICAgMS42MTM3NjNdIGlu
c3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMgpbICAgIDEuNjEzOTY3XSBpbnN0YWxsaW5nIFhl
biB0aW1lciBmb3IgQ1BVIDMKWyAgICAxLjYxNDE2M10gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9y
IENQVSA0ClsgICAgMS42MTQzNTZdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgNQpbICAg
IDEuNjE0NTQ1XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDYKWyAgICAxLjYxNDc0M10g
aW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSA3ClsgICAgMS42MTQ5MzFdIGluc3RhbGxpbmcg
WGVuIHRpbWVyIGZvciBDUFUgOApbICAgIDEuNjE1MTAxXSBpbnN0YWxsaW5nIFhlbiB0aW1lciBm
b3IgQ1BVIDkKWyAgICAxLjYxNTI2NV0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAxMApb
ICAgIDEuNjE1NDM0XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDExClsgICAgMS42MTU2
MDhdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMTIKWyAgICAxLjYxNTc5OF0gaW5zdGFs
bGluZyBYZW4gdGltZXIgZm9yIENQVSAxMwpbICAgIDEuNjE1OTczXSBpbnN0YWxsaW5nIFhlbiB0
aW1lciBmb3IgQ1BVIDE0ClsgICAgMS42MTYxNDhdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBD
UFUgMTUKWyAgICAxLjYxNjE5OF0gY3B1IDEgc3BpbmxvY2sgZXZlbnQgaXJxIDEzNwpbICAgIDEu
NjE2MTk4XSBjcHUgMiBzcGlubG9jayBldmVudCBpcnEgMTM4ClsgICAgMS42MTYxOThdIGNwdSAz
IHNwaW5sb2NrIGV2ZW50IGlycSAxMzkKWyAgICAxLjYxNjYyOF0gY3B1IDQgc3BpbmxvY2sgZXZl
bnQgaXJxIDE0MApbICAgIDEuNjE2NjczXSBjcHUgNSBzcGlubG9jayBldmVudCBpcnEgMTQxClsg
ICAgMS42MTY2ODJdIGNwdSA2IHNwaW5sb2NrIGV2ZW50IGlycSAxNDIKWyAgICAxLjYxNjY4Ml0g
Y3B1IDcgc3BpbmxvY2sgZXZlbnQgaXJxIDE0MwpbICAgIDEuNjE2NjgyXSBjcHUgOCBzcGlubG9j
ayBldmVudCBpcnEgMTQ0ClsgICAgMS42MTY2ODJdIGNwdSA5IHNwaW5sb2NrIGV2ZW50IGlycSAx
NDUKWyAgICAxLjYxNjY4Ml0gY3B1IDEwIHNwaW5sb2NrIGV2ZW50IGlycSAxNDYKWyAgICAxLjYx
NjY4Ml0gY3B1IDExIHNwaW5sb2NrIGV2ZW50IGlycSAxNDcKWyAgICAxLjYxNjY4Ml0gY3B1IDEy
IHNwaW5sb2NrIGV2ZW50IGlycSAxNDgKWyAgICAxLjYxNjY4Ml0gY3B1IDEzIHNwaW5sb2NrIGV2
ZW50IGlycSAxNDkKWyAgICAxLjYxNzY2NV0gY3B1IDE0IHNwaW5sb2NrIGV2ZW50IGlycSAxNTAK
WyAgICAxLjYxNzY3Ml0gY3B1IDE1IHNwaW5sb2NrIGV2ZW50IGlycSAxNTEKWyAgICAxLjYxNzcx
OV0gc21wOiBCcm91Z2h0IHVwIDEgbm9kZSwgMTYgQ1BVcwpbICAgIDEuNjE3NzI0XSBzbXBib290
OiBNYXggbG9naWNhbCBwYWNrYWdlczogMQpbICAgIDEuNjE4ODk0XSBkZXZ0bXBmczogaW5pdGlh
bGl6ZWQKWyAgICAxLjYxODg5NF0geDg2L21tOiBNZW1vcnkgYmxvY2sgc2l6ZTogMTI4TUIKWyAg
ICAxLjYyMzc5NF0gQUNQSTogUE06IFJlZ2lzdGVyaW5nIEFDUEkgTlZTIHJlZ2lvbiBbbWVtIDB4
MDlmMDAwMDAtMHgwOWYzYmZmZl0gKDI0NTc2MCBieXRlcykKWyAgICAxLjYyMzc5NF0gQUNQSTog
UE06IFJlZ2lzdGVyaW5nIEFDUEkgTlZTIHJlZ2lvbiBbbWVtIDB4NTJmN2YwMDAtMHg1YWY3ZWZm
Zl0gKDEzNDIxNzcyOCBieXRlcykKWyAgICAxLjYyNTkwN10gY2xvY2tzb3VyY2U6IGppZmZpZXM6
IG1hc2s6IDB4ZmZmZmZmZmYgbWF4X2N5Y2xlczogMHhmZmZmZmZmZiwgbWF4X2lkbGVfbnM6IDE5
MTEyNjA0NDYyNzUwMDAgbnMKWyAgICAxLjYyNTkxN10gZnV0ZXggaGFzaCB0YWJsZSBlbnRyaWVz
OiA0MDk2IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzLCBsaW5lYXIpClsgICAgMS42MjYwMDFdIHBp
bmN0cmwgY29yZTogaW5pdGlhbGl6ZWQgcGluY3RybCBzdWJzeXN0ZW0KWyAgICAxLjYyNjE0MV0g
UE06IFJUQyB0aW1lOiAxNjoyMDo0OSwgZGF0ZTogMjAyMy0xMi0yMApbICAgIDEuNjI3MDY0XSBO
RVQ6IFJlZ2lzdGVyZWQgUEZfTkVUTElOSy9QRl9ST1VURSBwcm90b2NvbCBmYW1pbHkKWyAgICAx
LjYyNzA4OF0geGVuOmdyYW50X3RhYmxlOiBHcmFudCB0YWJsZXMgdXNpbmcgdmVyc2lvbiAxIGxh
eW91dApbICAgIDEuNjI3MTAyXSBHcmFudCB0YWJsZSBpbml0aWFsaXplZApbICAgIDEuNjI3NTQx
XSBETUE6IHByZWFsbG9jYXRlZCA0MDk2IEtpQiBHRlBfS0VSTkVMIHBvb2wgZm9yIGF0b21pYyBh
bGxvY2F0aW9ucwpbICAgIDEuNjI3NTUwXSBETUE6IHByZWFsbG9jYXRlZCA0MDk2IEtpQiBHRlBf
S0VSTkVMfEdGUF9ETUEgcG9vbCBmb3IgYXRvbWljIGFsbG9jYXRpb25zClsgICAgMS42Mjc1NThd
IERNQTogcHJlYWxsb2NhdGVkIDQwOTYgS2lCIEdGUF9LRVJORUx8R0ZQX0RNQTMyIHBvb2wgZm9y
IGF0b21pYyBhbGxvY2F0aW9ucwpbICAgIDEuNjI3NTgyXSBhdWRpdDogaW5pdGlhbGl6aW5nIG5l
dGxpbmsgc3Vic3lzIChkaXNhYmxlZCkKWyAgICAxLjYyNzYyNF0gYXVkaXQ6IHR5cGU9MjAwMCBh
dWRpdCgxNzAzMDg5MjQ4LjA5ODoxKTogc3RhdGU9aW5pdGlhbGl6ZWQgYXVkaXRfZW5hYmxlZD0w
IHJlcz0xClsgICAgMS42Mjc2ODZdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292
ZXJub3IgJ2ZhaXJfc2hhcmUnClsgICAgMS42Mjc2ODZdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVk
IHRoZXJtYWwgZ292ZXJub3IgJ2JhbmdfYmFuZycKWyAgICAxLjYyNzY5Ml0gdGhlcm1hbF9zeXM6
IFJlZ2lzdGVyZWQgdGhlcm1hbCBnb3Zlcm5vciAnc3RlcF93aXNlJwpbICAgIDEuNjI3Njk2XSB0
aGVybWFsX3N5czogUmVnaXN0ZXJlZCB0aGVybWFsIGdvdmVybm9yICd1c2VyX3NwYWNlJwpbICAg
IDEuNjI3NzQ4XSBTaW1wbGUgQm9vdCBGbGFnIGF0IDB4NDQgc2V0IHRvIDB4ODAKWyAgICAxLjYy
Nzc0OF0gYWNwaXBocDogQUNQSSBIb3QgUGx1ZyBQQ0kgQ29udHJvbGxlciBEcml2ZXIgdmVyc2lv
bjogMC41ClsgICAgMS42Mjc5MjVdIFBDSTogTU1DT05GSUcgZm9yIGRvbWFpbiAwMDAwIFtidXMg
MDAtZmZdIGF0IFttZW0gMHhlMDAwMDAwMC0weGVmZmZmZmZmXSAoYmFzZSAweGUwMDAwMDAwKQpb
ICAgIDEuNjI3OTM1XSBQQ0k6IG5vdCB1c2luZyBNTUNPTkZJRwpbICAgIDEuNjI3OTQxXSBQQ0k6
IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSAxIGZvciBiYXNlIGFjY2VzcwpbICAgIDEuNjI3OTQ2
XSBQQ0k6IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSAxIGZvciBleHRlbmRlZCBhY2Nlc3MKWyAg
ICAxLjYyOTE0M10ga3Byb2Jlczoga3Byb2JlIGp1bXAtb3B0aW1pemF0aW9uIGlzIGVuYWJsZWQu
IEFsbCBrcHJvYmVzIGFyZSBvcHRpbWl6ZWQgaWYgcG9zc2libGUuClsgICAgMS42MzM3MzVdIGNy
eXB0ZDogbWF4X2NwdV9xbGVuIHNldCB0byAxMDAwClsgICAgMS42MzQ2OTNdIHJhaWQ2OiBza2lw
cGVkIHBxIGJlbmNobWFyayBhbmQgc2VsZWN0ZWQgYXZ4NTEyeDQKWyAgICAxLjYzNDcwN10gcmFp
ZDY6IHVzaW5nIGF2eDUxMngyIHJlY292ZXJ5IGFsZ29yaXRobQpbICAgIDEuNjM0ODA2XSBmYmNv
bjogVGFraW5nIG92ZXIgY29uc29sZQpbICAgIDEuNjM0ODY2XSBBQ1BJOiBBZGRlZCBfT1NJKE1v
ZHVsZSBEZXZpY2UpClsgICAgMS42MzQ4NzddIEFDUEk6IEFkZGVkIF9PU0koUHJvY2Vzc29yIERl
dmljZSkKWyAgICAxLjYzNDg4Nl0gQUNQSTogQWRkZWQgX09TSSgzLjAgX1NDUCBFeHRlbnNpb25z
KQpbICAgIDEuNjM0ODk2XSBBQ1BJOiBBZGRlZCBfT1NJKFByb2Nlc3NvciBBZ2dyZWdhdG9yIERl
dmljZSkKWyAgICAxLjY2NjYyOV0gQUNQSTogMjYgQUNQSSBBTUwgdGFibGVzIHN1Y2Nlc3NmdWxs
eSBhY3F1aXJlZCBhbmQgbG9hZGVkClsgICAgMS42Njg5MTVdIHhlbl9yZWdpc3Rlcl9nc2k6IHhl
bjogcmVnaXN0ZXJpbmcgZ3NpIDkgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICAxLjY2ODkx
N10geGVuX3JlZ2lzdGVyX3BpcnE6IGJlZm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgOSB0cmln
Z2VyaW5nIDAgc2V0X3BpcnEgMQpbICAgIDEuNjY4OTE5XSB4ZW5fcmVnaXN0ZXJfZ3NpOiBCZWZv
cmUgSFlQRVJWSVNPUl9waHlzZGV2X29wICBzZXR1cF9nc2kuZ3NpOiA5LCBzZXR1cF9nc2kudHJp
Z2dlcmluZzogMSwgc2V0dXBfZ3NpLnBvbGFyaXR5OiAxClsgICAgMS42OTUwNTldIEFDUEk6IFVT
QjQgX09TQzogT1Mgc3VwcG9ydHMgVVNCMysgRGlzcGxheVBvcnQrIFBDSWUrIFhEb21haW4rClsg
ICAgMS42OTUwNjddIEFDUEk6IFVTQjQgX09TQzogT1MgY29udHJvbHMgVVNCMysgRGlzcGxheVBv
cnQrIFBDSWUrIFhEb21haW4rClsgICAgMS42OTUxODldIEFDUEk6IF9PU0MgZXZhbHVhdGlvbiBm
b3IgQ1BVcyBmYWlsZWQsIHRyeWluZyBfUERDClsgICAgMS42OTU5NzldIEFDUEk6IEVDOiBFQyBz
dGFydGVkClsgICAgMS42OTU5ODNdIEFDUEk6IEVDOiBpbnRlcnJ1cHQgYmxvY2tlZApbICAgIDEu
Njk2MTI5XSBBQ1BJOiBFQzogRUNfQ01EL0VDX1NDPTB4NjYsIEVDX0RBVEE9MHg2MgpbICAgIDEu
Njk2MTM1XSBBQ1BJOiBcX1NCXy5QQ0kwLkxQQzAuRUMwXzogQm9vdCBEU0RUIEVDIHVzZWQgdG8g
aGFuZGxlIHRyYW5zYWN0aW9ucwpbICAgIDEuNjk2MTQxXSBBQ1BJOiBJbnRlcnByZXRlciBlbmFi
bGVkClsgICAgMS42OTYxNThdIEFDUEk6IFBNOiAoc3VwcG9ydHMgUzAgUzQgUzUpClsgICAgMS42
OTYxNjNdIEFDUEk6IFVzaW5nIElPQVBJQyBmb3IgaW50ZXJydXB0IHJvdXRpbmcKWyAgICAxLjY5
ODUyOV0gUENJOiBNTUNPTkZJRyBmb3IgZG9tYWluIDAwMDAgW2J1cyAwMC1mZl0gYXQgW21lbSAw
eGUwMDAwMDAwLTB4ZWZmZmZmZmZdIChiYXNlIDB4ZTAwMDAwMDApClsgICAgMS43MDQ4MTBdIFtG
aXJtd2FyZSBJbmZvXTogUENJOiBNTUNPTkZJRyBhdCBbbWVtIDB4ZTAwMDAwMDAtMHhlZmZmZmZm
Zl0gbm90IHJlc2VydmVkIGluIEFDUEkgbW90aGVyYm9hcmQgcmVzb3VyY2VzClsgICAgMS43MDQ4
MTldIFBDSTogbm90IHVzaW5nIE1NQ09ORklHClsgICAgMS43MDQ4MjVdIFBDSTogVXNpbmcgaG9z
dCBicmlkZ2Ugd2luZG93cyBmcm9tIEFDUEk7IGlmIG5lY2Vzc2FyeSwgdXNlICJwY2k9bm9jcnMi
IGFuZCByZXBvcnQgYSBidWcKWyAgICAxLjcwNDgzMl0gUENJOiBJZ25vcmluZyBFODIwIHJlc2Vy
dmF0aW9ucyBmb3IgaG9zdCBicmlkZ2Ugd2luZG93cwpbICAgIDEuNzA1NDM5XSBBQ1BJOiBFbmFi
bGVkIDMgR1BFcyBpbiBibG9jayAwMCB0byAxRgpbICAgIDEuNzA5ODYyXSBBQ1BJOiBcX1NCXy5Q
Q0kwLkdQUDguUDBOVjogTmV3IHBvd2VyIHJlc291cmNlClsgICAgMS43MTMxNDldIEFDUEk6IFxf
U0JfLlBDSTAuR1AxMS5QV1JTOiBOZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAxLjcxNTQ3OV0gQUNQ
STogXF9TQl8uUENJMC5HUDExLlNXVVMuUFdSUzogTmV3IHBvd2VyIHJlc291cmNlClsgICAgMS43
MTc4OTddIEFDUEk6IFxfU0JfLlBDSTAuR1AxMi5QV1JTOiBOZXcgcG93ZXIgcmVzb3VyY2UKWyAg
ICAxLjcyMDI0N10gQUNQSTogXF9TQl8uUENJMC5HUDEyLlNXVVMuUFdSUzogTmV3IHBvd2VyIHJl
c291cmNlClsgICAgMS43MjA3MTBdIEFDUEk6IFxfU0JfLlBDSTAuR1AxNy5QV1JTOiBOZXcgcG93
ZXIgcmVzb3VyY2UKWyAgICAxLjcyMTE3NV0gQUNQSTogXF9TQl8uUENJMC5HUDE3LlZHQV8uUFdS
UzogTmV3IHBvd2VyIHJlc291cmNlClsgICAgMS43MjE3NjNdIEFDUEk6IFxfU0JfLlBDSTAuR1Ax
Ny5BQ1BfLlBXUlM6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDEuNzIyODU3XSBBQ1BJOiBcX1NC
Xy5QQ0kwLkdQMTcuQVpBTC5QV1JTOiBOZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAxLjcyMzY4N10g
QUNQSTogXF9TQl8uUENJMC5HUDE3LkhEQVUuUFdSUzogTmV3IHBvd2VyIHJlc291cmNlClsgICAg
MS43MjQ0MDddIEFDUEk6IFxfU0JfLlBDSTAuR1AxNy5YSEMwLlBXUlM6IE5ldyBwb3dlciByZXNv
dXJjZQpbICAgIDEuNzI5NDA3XSBBQ1BJOiBcX1NCXy5QQ0kwLkdQMTcuWEhDMS5QV1JTOiBOZXcg
cG93ZXIgcmVzb3VyY2UKWyAgICAxLjczMjQ2Nl0gQUNQSTogXF9TQl8uUENJMC5HUDE5LlhIQzIu
UFdSUzogTmV3IHBvd2VyIHJlc291cmNlClsgICAgMS43MzUwMTFdIEFDUEk6IFxfU0JfLlBDSTAu
R1AxOS5OSEkwLlBXUlM6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDEuNzM2NDkxXSBBQ1BJOiBc
X1NCXy5QQ0kwLkdQMTkuWEhDMy5QV1JTOiBOZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAxLjczOTEx
OF0gQUNQSTogXF9TQl8uUENJMC5HUDE5Lk5ISTEuUFdSUzogTmV3IHBvd2VyIHJlc291cmNlClsg
ICAgMS43NDA1OTFdIEFDUEk6IFxfU0JfLlBDSTAuR1AxOS5YSEM0LlBXUlM6IE5ldyBwb3dlciBy
ZXNvdXJjZQpbICAgIDEuNzUxMjYxXSBBQ1BJOiBcX1NCXy5QUldMOiBOZXcgcG93ZXIgcmVzb3Vy
Y2UKWyAgICAxLjc1MTMwMV0gQUNQSTogXF9TQl8uUFJXQjogTmV3IHBvd2VyIHJlc291cmNlClsg
ICAgMS43NTI5MzhdIEFDUEk6IFBDSSBSb290IEJyaWRnZSBbUENJMF0gKGRvbWFpbiAwMDAwIFti
dXMgMDAtZmZdKQpbICAgIDEuNzUyOTQ4XSBhY3BpIFBOUDBBMDg6MDA6IF9PU0M6IE9TIHN1cHBv
cnRzIFtFeHRlbmRlZENvbmZpZyBBU1BNIENsb2NrUE0gU2VnbWVudHMgTVNJIEVEUiBIUFgtVHlw
ZTNdClsgICAgMS43NTMyNzNdIGFjcGkgUE5QMEEwODowMDogX09TQzogcGxhdGZvcm0gZG9lcyBu
b3Qgc3VwcG9ydCBbU0hQQ0hvdHBsdWcgQUVSXQpbICAgIDEuNzUzODg5XSBhY3BpIFBOUDBBMDg6
MDA6IF9PU0M6IE9TIG5vdyBjb250cm9scyBbUENJZUhvdHBsdWcgUE1FIFBDSWVDYXBhYmlsaXR5
IExUUiBEUENdClsgICAgMS43NTQ2NDZdIFBDSSBob3N0IGJyaWRnZSB0byBidXMgMDAwMDowMApb
ICAgIDEuNzU0NjUxXSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgw
MDAwLTB4MGNmNyB3aW5kb3ddClsgICAgMS43NTQ2NTddIHBjaV9idXMgMDAwMDowMDogcm9vdCBi
dXMgcmVzb3VyY2UgW2lvICAweDBkMDAtMHhmZmZmIHdpbmRvd10KWyAgICAxLjc1NDY2M10gcGNp
X2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4MDAwYTAwMDAtMHgwMDBiZmZm
ZiB3aW5kb3ddClsgICAgMS43NTQ2NjldIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3Vy
Y2UgW21lbSAweDAwMGMwMDAwLTB4MDAwY2ZmZmYgd2luZG93XQpbICAgIDEuNzU0Njc2XSBwY2lf
YnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHgwMDBkMDAwMC0weDAwMGVmZmZm
IHdpbmRvd10KWyAgICAxLjc1NDY4Ml0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJj
ZSBbbWVtIDB4NjAwMDAwMDAtMHg5MGJmZmZmZiB3aW5kb3ddClsgICAgMS43NTQ2ODddIHBjaV9i
dXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweGYwMDAwMDAwLTB4ZmVjMDAwMDAg
d2luZG93XQpbICAgIDEuNzU0Njk1XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNl
IFttZW0gMHhmZWQ0NTAwMC0weGZlZDgxNGZmIHdpbmRvd10KWyAgICAxLjc1NDcwMV0gcGNpX2J1
cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4ZmVkODE5MDAtMHhmZWQ4MWZmZiB3
aW5kb3ddClsgICAgMS43NTQ3MDZdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2Ug
W21lbSAweGZlZGMwMDAwLTB4ZmVkYzBmZmYgd2luZG93XQpbICAgIDEuNzU0NzEyXSBwY2lfYnVz
IDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHhmZWRjNjAwMC0weGZlZGM2ZmZmIHdp
bmRvd10KWyAgICAxLjc1NDcxOF0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBb
bWVtIDB4MTBjMDIwMDAwMC0weDg5MWZmZmZmZmYgd2luZG93XQpbICAgIDEuNzU0NzI0XSBwY2lf
YnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtidXMgMDAtZmZdClsgICAgMS43NTQ3NjZd
IHBjaSAwMDAwOjAwOjAwLjA6IFsxMDIyOjE0ZThdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAKWyAg
ICAxLjc1NDg4NF0gcGNpIDAwMDA6MDA6MDAuMjogWzEwMjI6MTRlOV0gdHlwZSAwMCBjbGFzcyAw
eDA4MDYwMApbICAgIDEuNzU1MDQ0XSBwY2kgMDAwMDowMDowMS4wOiBbMTAyMjoxNGVhXSB0eXBl
IDAwIGNsYXNzIDB4MDYwMDAwClsgICAgMS43NTUxNjVdIHBjaSAwMDAwOjAwOjAyLjA6IFsxMDIy
OjE0ZWFdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAKWyAgICAxLjc1NTI4N10gcGNpIDAwMDA6MDA6
MDIuMjogWzEwMjI6MTRlZV0gdHlwZSAwMSBjbGFzcyAweDA2MDQwMApbICAgIDEuNzU1NDAxXSBw
Y2kgMDAwMDowMDowMi4yOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAg
IDEuNzU1NTQ5XSBwY2kgMDAwMDowMDowMi40OiBbMTAyMjoxNGVlXSB0eXBlIDAxIGNsYXNzIDB4
MDYwNDAwClsgICAgMS43NTU2NjRdIHBjaSAwMDAwOjAwOjAyLjQ6IFBNRSMgc3VwcG9ydGVkIGZy
b20gRDAgRDNob3QgRDNjb2xkClsgICAgMS43NTU3ODhdIHBjaSAwMDAwOjAwOjAzLjA6IFsxMDIy
OjE0ZWFdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAKWyAgICAxLjc1NTkxNF0gcGNpIDAwMDA6MDA6
MDMuMTogWzEwMjI6MTRlZl0gdHlwZSAwMSBjbGFzcyAweDA2MDQwMApbICAgIDEuNzU2NTA5XSBw
Y2kgMDAwMDowMDowMy4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAg
IDEuNzU4MzE1XSBwY2kgMDAwMDowMDowNC4wOiBbMTAyMjoxNGVhXSB0eXBlIDAwIGNsYXNzIDB4
MDYwMDAwClsgICAgMS43NTg0MzldIHBjaSAwMDAwOjAwOjA0LjE6IFsxMDIyOjE0ZWZdIHR5cGUg
MDEgY2xhc3MgMHgwNjA0MDAKWyAgICAxLjc1OTAzMV0gcGNpIDAwMDA6MDA6MDQuMTogUE1FIyBz
dXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjc2MDgyNl0gcGNpIDAwMDA6MDA6
MDguMDogWzEwMjI6MTRlYV0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMApbICAgIDEuNzYwOTM4XSBw
Y2kgMDAwMDowMDowOC4xOiBbMTAyMjoxNGViXSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwClsgICAg
MS43NjA5OTJdIHBjaSAwMDAwOjAwOjA4LjE6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAx
Ljc2MTA0NV0gcGNpIDAwMDA6MDA6MDguMTogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBE
M2NvbGQKWyAgICAxLjc2MTIwNl0gcGNpIDAwMDA6MDA6MDguMjogWzEwMjI6MTRlYl0gdHlwZSAw
MSBjbGFzcyAweDA2MDQwMApbICAgIDEuNzYxMjkwXSBwY2kgMDAwMDowMDowOC4yOiBlbmFibGlu
ZyBFeHRlbmRlZCBUYWdzClsgICAgMS43NjEzNDJdIHBjaSAwMDAwOjAwOjA4LjI6IFBNRSMgc3Vw
cG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS43NjE0NTldIHBjaSAwMDAwOjAwOjA4
LjM6IFsxMDIyOjE0ZWJdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAKWyAgICAxLjc2MTUxMF0gcGNp
IDAwMDA6MDA6MDguMzogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAgIDEuNzYxNTY1XSBwY2kg
MDAwMDowMDowOC4zOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEu
NzYxOTM0XSBwY2kgMDAwMDowMDoxNC4wOiBbMTAyMjo3OTBiXSB0eXBlIDAwIGNsYXNzIDB4MGMw
NTAwClsgICAgMS43NjIxMzRdIHBjaSAwMDAwOjAwOjE0LjM6IFsxMDIyOjc5MGVdIHR5cGUgMDAg
Y2xhc3MgMHgwNjAxMDAKWyAgICAxLjc2MjM2OF0gcGNpIDAwMDA6MDA6MTguMDogWzEwMjI6MTRm
MF0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMApbICAgIDEuNzYyNDUyXSBwY2kgMDAwMDowMDoxOC4x
OiBbMTAyMjoxNGYxXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwClsgICAgMS43NjI1MzZdIHBjaSAw
MDAwOjAwOjE4LjI6IFsxMDIyOjE0ZjJdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAKWyAgICAxLjc2
MjYyMF0gcGNpIDAwMDA6MDA6MTguMzogWzEwMjI6MTRmM10gdHlwZSAwMCBjbGFzcyAweDA2MDAw
MApbICAgIDEuNzYyNzA0XSBwY2kgMDAwMDowMDoxOC40OiBbMTAyMjoxNGY0XSB0eXBlIDAwIGNs
YXNzIDB4MDYwMDAwClsgICAgMS43NjI3OTBdIHBjaSAwMDAwOjAwOjE4LjU6IFsxMDIyOjE0ZjVd
IHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAKWyAgICAxLjc2Mjg3M10gcGNpIDAwMDA6MDA6MTguNjog
WzEwMjI6MTRmNl0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMApbICAgIDEuNzYyOTU5XSBwY2kgMDAw
MDowMDoxOC43OiBbMTAyMjoxNGY3XSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwClsgICAgMS43NjMx
NjddIHBjaSAwMDAwOjAxOjAwLjA6IFsxNGMzOjA2MTZdIHR5cGUgMDAgY2xhc3MgMHgwMjgwMDAK
WyAgICAxLjc2MzIwMF0gcGNpIDAwMDA6MDE6MDAuMDogcmVnIDB4MTA6IFttZW0gMHg4ODEwOTAw
MDAwLTB4ODgxMDlmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNzYzMjI0XSBwY2kgMDAwMDowMTow
MC4wOiByZWcgMHgxODogW21lbSAweDkwYjAwMDAwLTB4OTBiMDdmZmYgNjRiaXRdClsgICAgMS43
NjMzMzRdIHBjaSAwMDAwOjAxOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNj
b2xkClsgICAgMS43NjM0NjRdIHBjaSAwMDAwOjAwOjAyLjI6IFBDSSBicmlkZ2UgdG8gW2J1cyAw
MV0KWyAgICAxLjc2MzQ3Nl0gcGNpIDAwMDA6MDA6MDIuMjogICBicmlkZ2Ugd2luZG93IFttZW0g
MHg5MGIwMDAwMC0weDkwYmZmZmZmXQpbICAgIDEuNzYzNDg3XSBwY2kgMDAwMDowMDowMi4yOiAg
IGJyaWRnZSB3aW5kb3cgW21lbSAweDg4MTA5MDAwMDAtMHg4ODEwOWZmZmZmIDY0Yml0IHByZWZd
ClsgICAgMS43NjM2NjJdIHBjaSAwMDAwOjAyOjAwLjA6IFsxNWI3OjUwMzBdIHR5cGUgMDAgY2xh
c3MgMHgwMTA4MDIKWyAgICAxLjc2MzY5M10gcGNpIDAwMDA6MDI6MDAuMDogcmVnIDB4MTA6IFtt
ZW0gMHg5MGEwMDAwMC0weDkwYTAzZmZmIDY0Yml0XQpbICAgIDEuNzYzOTM1XSBwY2kgMDAwMDow
MDowMi40OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDJdClsgICAgMS43NjM5NDddIHBjaSAwMDAwOjAw
OjAyLjQ6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4OTBhMDAwMDAtMHg5MGFmZmZmZl0KWyAgICAx
Ljc2NDEwN10gcGNpIDAwMDA6MDA6MDMuMTogUENJIGJyaWRnZSB0byBbYnVzIDAzLTYxXQpbICAg
IDEuNzY0MTE4XSBwY2kgMDAwMDowMDowMy4xOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDYwMDAt
MHg5ZmZmXQpbICAgIDEuNzY0MTI2XSBwY2kgMDAwMDowMDowMy4xOiAgIGJyaWRnZSB3aW5kb3cg
W21lbSAweDc4MDAwMDAwLTB4OGZmZmZmZmZdClsgICAgMS43NjQxMzhdIHBjaSAwMDAwOjAwOjAz
LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4NzgwMDAwMDAwMC0weDg3ZmZmZmZmZmYgNjRiaXQg
cHJlZl0KWyAgICAxLjc2NDI5Nl0gcGNpIDAwMDA6MDA6MDQuMTogUENJIGJyaWRnZSB0byBbYnVz
IDYyLWMwXQpbICAgIDEuNzY0MzA4XSBwY2kgMDAwMDowMDowNC4xOiAgIGJyaWRnZSB3aW5kb3cg
W2lvICAweDIwMDAtMHg1ZmZmXQpbICAgIDEuNzY0MzE2XSBwY2kgMDAwMDowMDowNC4xOiAgIGJy
aWRnZSB3aW5kb3cgW21lbSAweDYwMDAwMDAwLTB4NzdmZmZmZmZdClsgICAgMS43NjQzMjhdIHBj
aSAwMDAwOjAwOjA0LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4NjgwMDAwMDAwMC0weDc3ZmZm
ZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjc2NDQ5NV0gcGNpIDAwMDA6YzE6MDAuMDogWzEwMDI6
MTViZl0gdHlwZSAwMCBjbGFzcyAweDAzMDAwMApbICAgIDEuNzY0NTIyXSBwY2kgMDAwMDpjMTow
MC4wOiByZWcgMHgxMDogW21lbSAweDg4MDAwMDAwMDAtMHg4ODBmZmZmZmZmIDY0Yml0IHByZWZd
ClsgICAgMS43NjQ1NDJdIHBjaSAwMDAwOmMxOjAwLjA6IHJlZyAweDE4OiBbbWVtIDB4OTAwMDAw
MDAtMHg5MDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNzY0NTU3XSBwY2kgMDAwMDpjMTowMC4w
OiByZWcgMHgyMDogW2lvICAweDEwMDAtMHgxMGZmXQpbICAgIDEuNzY0NTcxXSBwY2kgMDAwMDpj
MTowMC4wOiByZWcgMHgyNDogW21lbSAweDkwNTAwMDAwLTB4OTA1N2ZmZmZdClsgICAgMS43NjQ1
OTNdIHBjaSAwMDAwOmMxOjAwLjA6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjc2NDYx
N10gcGNpIDAwMDA6YzE6MDAuMDogQkFSIDA6IGFzc2lnbmVkIHRvIGVmaWZiClsgICAgMS43NjQ2
NzNdIHBjaSAwMDAwOmMxOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDEgRDIgRDNob3QgRDNj
b2xkClsgICAgMS43NjQ4MzBdIHBjaSAwMDAwOmMxOjAwLjE6IFsxMDAyOjE2NDBdIHR5cGUgMDAg
Y2xhc3MgMHgwNDAzMDAKWyAgICAxLjc2NDg0OV0gcGNpIDAwMDA6YzE6MDAuMTogcmVnIDB4MTA6
IFttZW0gMHg5MDVjODAwMC0weDkwNWNiZmZmXQpbICAgIDEuNzY0ODk5XSBwY2kgMDAwMDpjMTow
MC4xOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAgMS43NjQ5NThdIHBjaSAwMDAwOmMxOjAw
LjE6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDEgRDIgRDNob3QgRDNjb2xkClsgICAgMS43NjUwODhd
IHBjaSAwMDAwOmMxOjAwLjI6IFsxMDIyOjE1YzddIHR5cGUgMDAgY2xhc3MgMHgxMDgwMDAKWyAg
ICAxLjc2NTEyMF0gcGNpIDAwMDA6YzE6MDAuMjogcmVnIDB4MTg6IFttZW0gMHg5MDQwMDAwMC0w
eDkwNGZmZmZmXQpbICAgIDEuNzY1MTQ0XSBwY2kgMDAwMDpjMTowMC4yOiByZWcgMHgyNDogW21l
bSAweDkwNWNjMDAwLTB4OTA1Y2RmZmZdClsgICAgMS43NjUxNjNdIHBjaSAwMDAwOmMxOjAwLjI6
IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjc2NTM1M10gcGNpIDAwMDA6YzE6MDAuMzog
WzEwMjI6MTViOV0gdHlwZSAwMCBjbGFzcyAweDBjMDMzMApbICAgIDEuNzY1MzgwXSBwY2kgMDAw
MDpjMTowMC4zOiByZWcgMHgxMDogW21lbSAweDkwMjAwMDAwLTB4OTAyZmZmZmYgNjRiaXRdClsg
ICAgMS43NjU0MzddIHBjaSAwMDAwOmMxOjAwLjM6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAg
ICAxLjc2NTUxMF0gcGNpIDAwMDA6YzE6MDAuMzogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hv
dCBEM2NvbGQKWyAgICAxLjc2NjA4Nl0gcGNpIDAwMDA6YzE6MDAuNDogWzEwMjI6MTViYV0gdHlw
ZSAwMCBjbGFzcyAweDBjMDMzMApbICAgIDEuNzY2MTEzXSBwY2kgMDAwMDpjMTowMC40OiByZWcg
MHgxMDogW21lbSAweDkwMzAwMDAwLTB4OTAzZmZmZmYgNjRiaXRdClsgICAgMS43NjYxNzNdIHBj
aSAwMDAwOmMxOjAwLjQ6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjc2NjI0NF0gcGNp
IDAwMDA6YzE6MDAuNDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAx
Ljc2NjgwNF0gcGNpIDAwMDA6YzE6MDAuNTogWzEwMjI6MTVlMl0gdHlwZSAwMCBjbGFzcyAweDA0
ODAwMApbICAgIDEuNzY2ODI1XSBwY2kgMDAwMDpjMTowMC41OiByZWcgMHgxMDogW21lbSAweDkw
NTgwMDAwLTB4OTA1YmZmZmZdClsgICAgMS43NjY4NDhdIHBjaSAwMDAwOmMxOjAwLjU6IHJlZyAw
eDE4OiBbbWVtIDB4ODgxMDAwMDAwMC0weDg4MTA3ZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjc2
Njg4MF0gcGNpIDAwMDA6YzE6MDAuNTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAgIDEuNzY2
OTM5XSBwY2kgMDAwMDpjMTowMC41OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29s
ZApbICAgIDEuNzY3MDc4XSBwY2kgMDAwMDpjMTowMC42OiBbMTAyMjoxNWUzXSB0eXBlIDAwIGNs
YXNzIDB4MDQwMzAwClsgICAgMS43NjcwOTddIHBjaSAwMDAwOmMxOjAwLjY6IHJlZyAweDEwOiBb
bWVtIDB4OTA1YzAwMDAtMHg5MDVjN2ZmZl0KWyAgICAxLjc2NzE0N10gcGNpIDAwMDA6YzE6MDAu
NjogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAgIDEuNzY3MjA2XSBwY2kgMDAwMDpjMTowMC42
OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEuNzY3NDA3XSBwY2kg
MDAwMDowMDowOC4xOiBQQ0kgYnJpZGdlIHRvIFtidXMgYzFdClsgICAgMS43Njc0MTddIHBjaSAw
MDAwOjAwOjA4LjE6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4MTAwMC0weDFmZmZdClsgICAgMS43
Njc0MjRdIHBjaSAwMDAwOjAwOjA4LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4OTAwMDAwMDAt
MHg5MDVmZmZmZl0KWyAgICAxLjc2NzQzNF0gcGNpIDAwMDA6MDA6MDguMTogICBicmlkZ2Ugd2lu
ZG93IFttZW0gMHg4ODAwMDAwMDAwLTB4ODgxMDdmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNzY3
NTMyXSBwY2kgMDAwMDpjMjowMC4wOiBbMTAyMjoxNGVjXSB0eXBlIDAwIGNsYXNzIDB4MTMwMDAw
ClsgICAgMS43Njc1OTddIHBjaSAwMDAwOmMyOjAwLjA6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MK
WyAgICAxLjc2NzY2MF0gcGNpIDAwMDA6YzI6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEM2hv
dCBEM2NvbGQKWyAgICAxLjc2Nzc2OV0gcGNpIDAwMDA6YzI6MDAuMTogWzEwMjI6MTUwMl0gdHlw
ZSAwMCBjbGFzcyAweDExODAwMApbICAgIDEuNzY3Nzk2XSBwY2kgMDAwMDpjMjowMC4xOiByZWcg
MHgxMDogW21lbSAweDkwOTAwMDAwLTB4OTA5N2ZmZmZdClsgICAgMS43Njc4MDhdIHBjaSAwMDAw
OmMyOjAwLjE6IHJlZyAweDE0OiBbbWVtIDB4OTA5YzAwMDAtMHg5MDljMWZmZl0KWyAgICAxLjc2
NzgyNF0gcGNpIDAwMDA6YzI6MDAuMTogcmVnIDB4MTg6IFttZW0gMHg4ODEwODAwMDAwLTB4ODgx
MDgzZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNzY3ODM3XSBwY2kgMDAwMDpjMjowMC4xOiByZWcg
MHgyMDogW21lbSAweDkwOTgwMDAwLTB4OTA5YmZmZmZdClsgICAgMS43Njc4NjJdIHBjaSAwMDAw
OmMyOjAwLjE6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjc2ODA2Nl0gcGNpIDAwMDA6
MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIGMyXQpbICAgIDEuNzY4MDc3XSBwY2kgMDAwMDow
MDowOC4yOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDkwOTAwMDAwLTB4OTA5ZmZmZmZdClsgICAg
MS43NjgwODhdIHBjaSAwMDAwOjAwOjA4LjI6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ODgxMDgw
MDAwMC0weDg4MTA4ZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjc2ODIxOF0gcGNpIDAwMDA6YzM6
MDAuMDogWzEwMjI6MTRlY10gdHlwZSAwMCBjbGFzcyAweDEzMDAwMApbICAgIDEuNzY4MjgwXSBw
Y2kgMDAwMDpjMzowMC4wOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAgMS43Njg4ODVdIHBj
aSAwMDAwOmMzOjAwLjM6IFsxMDIyOjE1YzBdIHR5cGUgMDAgY2xhc3MgMHgwYzAzMzAKWyAgICAx
Ljc2ODkxMl0gcGNpIDAwMDA6YzM6MDAuMzogcmVnIDB4MTA6IFttZW0gMHg5MDYwMDAwMC0weDkw
NmZmZmZmIDY0Yml0XQpbICAgIDEuNzY4OTY5XSBwY2kgMDAwMDpjMzowMC4zOiBlbmFibGluZyBF
eHRlbmRlZCBUYWdzClsgICAgMS43NjkwNDJdIHBjaSAwMDAwOmMzOjAwLjM6IFBNRSMgc3VwcG9y
dGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS43Njk1OThdIHBjaSAwMDAwOmMzOjAwLjQ6
IFsxMDIyOjE1YzFdIHR5cGUgMDAgY2xhc3MgMHgwYzAzMzAKWyAgICAxLjc2OTYyNl0gcGNpIDAw
MDA6YzM6MDAuNDogcmVnIDB4MTA6IFttZW0gMHg5MDcwMDAwMC0weDkwN2ZmZmZmIDY0Yml0XQpb
ICAgIDEuNzY5NjgzXSBwY2kgMDAwMDpjMzowMC40OiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsg
ICAgMS43Njk3NTRdIHBjaSAwMDAwOmMzOjAwLjQ6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNo
b3QgRDNjb2xkClsgICAgMS43NzAzMTJdIHBjaSAwMDAwOmMzOjAwLjU6IFsxMDIyOjE2NjhdIHR5
cGUgMDAgY2xhc3MgMHgwYzAzNDAKWyAgICAxLjc3MDMzOF0gcGNpIDAwMDA6YzM6MDAuNTogcmVn
IDB4MTA6IFttZW0gMHg5MDgwMDAwMC0weDkwODdmZmZmIDY0Yml0XQpbICAgIDEuNzcwNDAyXSBw
Y2kgMDAwMDpjMzowMC41OiBNYXggUGF5bG9hZCBTaXplIHNldCB0byAxMjggKHdhcyAyNTYsIG1h
eCAyNTYpClsgICAgMS43NzA0MTFdIHBjaSAwMDAwOmMzOjAwLjU6IGVuYWJsaW5nIEV4dGVuZGVk
IFRhZ3MKWyAgICAxLjc3MDQ4Ml0gcGNpIDAwMDA6YzM6MDAuNTogUE1FIyBzdXBwb3J0ZWQgZnJv
bSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjc3MDYyMF0gcGNpIDAwMDA6YzM6MDAuNjogWzEwMjI6
MTY2OV0gdHlwZSAwMCBjbGFzcyAweDBjMDM0MApbICAgIDEuNzcwNjQ2XSBwY2kgMDAwMDpjMzow
MC42OiByZWcgMHgxMDogW21lbSAweDkwODgwMDAwLTB4OTA4ZmZmZmYgNjRiaXRdClsgICAgMS43
NzA3MTFdIHBjaSAwMDAwOmMzOjAwLjY6IE1heCBQYXlsb2FkIFNpemUgc2V0IHRvIDEyOCAod2Fz
IDI1NiwgbWF4IDI1NikKWyAgICAxLjc3MDcyMF0gcGNpIDAwMDA6YzM6MDAuNjogZW5hYmxpbmcg
RXh0ZW5kZWQgVGFncwpbICAgIDEuNzcwNzkwXSBwY2kgMDAwMDpjMzowMC42OiBQTUUjIHN1cHBv
cnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEuNzcwOTg0XSBwY2kgMDAwMDowMDowOC4z
OiBQQ0kgYnJpZGdlIHRvIFtidXMgYzNdClsgICAgMS43NzA5OTZdIHBjaSAwMDAwOjAwOjA4LjM6
ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4OTA2MDAwMDAtMHg5MDhmZmZmZl0KWyAgICAxLjc3MTEw
M10gcGNpX2J1cyAwMDAwOjAwOiBvbiBOVU1BIG5vZGUgMApbICAgIDEuNzgzMjMxXSB4ZW5fcmVn
aXN0ZXJfZ3NpOiB4ZW46IHJlZ2lzdGVyaW5nIGdzaSA4IHRyaWdnZXJpbmcgMSBwb2xhcml0eSAw
ClsgICAgMS43ODMyMzNdIHhlbl9yZWdpc3Rlcl9waXJxOiBiZWZvcmUgeGVuX2lycV9mcm9tX2dz
aTogZ3NpIDggdHJpZ2dlcmluZyAxIHNldF9waXJxIDEKWyAgICAxLjc4MzIzNF0geGVuX3JlZ2lz
dGVyX2dzaTogQmVmb3JlIEhZUEVSVklTT1JfcGh5c2Rldl9vcCAgc2V0dXBfZ3NpLmdzaTogOCwg
c2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDAsIHNldHVwX2dzaS5wb2xhcml0eTogMApbICAgIDEuNzgz
MzE4XSB4ZW5fcmVnaXN0ZXJfZ3NpOiB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxMyB0cmlnZ2VyaW5n
IDEgcG9sYXJpdHkgMApbICAgIDEuNzgzMzE5XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhl
bl9pcnFfZnJvbV9nc2k6IGdzaSAxMyB0cmlnZ2VyaW5nIDEgc2V0X3BpcnEgMQpbICAgIDEuNzgz
MzIxXSB4ZW5fcmVnaXN0ZXJfZ3NpOiBCZWZvcmUgSFlQRVJWSVNPUl9waHlzZGV2X29wICBzZXR1
cF9nc2kuZ3NpOiAxMywgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDAsIHNldHVwX2dzaS5wb2xhcml0
eTogMApbICAgIDEuNzg0MjMxXSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0EgY29uZmln
dXJlZCBmb3IgSVJRIDAKWyAgICAxLjc4NDIzN10gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBM
TktBIGRpc2FibGVkClsgICAgMS43ODQ1OTJdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5L
QiBjb25maWd1cmVkIGZvciBJUlEgMApbICAgIDEuNzg0NTk3XSBBQ1BJOiBQQ0k6IEludGVycnVw
dCBsaW5rIExOS0IgZGlzYWJsZWQKWyAgICAxLjc4NDkyMl0gQUNQSTogUENJOiBJbnRlcnJ1cHQg
bGluayBMTktDIGNvbmZpZ3VyZWQgZm9yIElSUSAwClsgICAgMS43ODQ5MjddIEFDUEk6IFBDSTog
SW50ZXJydXB0IGxpbmsgTE5LQyBkaXNhYmxlZApbICAgIDEuNzg1MjgyXSBBQ1BJOiBQQ0k6IElu
dGVycnVwdCBsaW5rIExOS0QgY29uZmlndXJlZCBmb3IgSVJRIDAKWyAgICAxLjc4NTI4N10gQUNQ
STogUENJOiBJbnRlcnJ1cHQgbGluayBMTktEIGRpc2FibGVkClsgICAgMS43ODU2MzFdIEFDUEk6
IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LRSBjb25maWd1cmVkIGZvciBJUlEgMApbICAgIDEuNzg1
NjM2XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0UgZGlzYWJsZWQKWyAgICAxLjc4NTkx
NF0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktGIGNvbmZpZ3VyZWQgZm9yIElSUSAwClsg
ICAgMS43ODU5MTldIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LRiBkaXNhYmxlZApbICAg
IDEuNzg2MjAwXSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0cgY29uZmlndXJlZCBmb3Ig
SVJRIDAKWyAgICAxLjc4NjIwNV0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktHIGRpc2Fi
bGVkClsgICAgMS43ODY0ODddIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LSCBjb25maWd1
cmVkIGZvciBJUlEgMApbICAgIDEuNzg2NDkyXSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExO
S0ggZGlzYWJsZWQKWyAgICAxLjc4NjY1Ml0geGVuX3JlZ2lzdGVyX2dzaTogeGVuOiByZWdpc3Rl
cmluZyBnc2kgNyB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgIDEuNzg2NjUzXSB4ZW5fcmVn
aXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSA3IHRyaWdnZXJpbmcgMCBz
ZXRfcGlycSAxClsgICAgMS43ODY2NTRdIHhlbl9yZWdpc3Rlcl9nc2k6IEJlZm9yZSBIWVBFUlZJ
U09SX3BoeXNkZXZfb3AgIHNldHVwX2dzaS5nc2k6IDcsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAx
LCBzZXR1cF9nc2kucG9sYXJpdHk6IDEKWyAgICAxLjc4NzE5MV0geGVuX3JlZ2lzdGVyX2dzaTog
eGVuOiByZWdpc3RlcmluZyBnc2kgMTAgdHJpZ2dlcmluZyAxIHBvbGFyaXR5IDAKWyAgICAxLjc4
NzE5Ml0geGVuX3JlZ2lzdGVyX3BpcnE6IGJlZm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgMTAg
dHJpZ2dlcmluZyAxIHNldF9waXJxIDEKWyAgICAxLjc4NzE5NF0geGVuX3JlZ2lzdGVyX2dzaTog
QmVmb3JlIEhZUEVSVklTT1JfcGh5c2Rldl9vcCAgc2V0dXBfZ3NpLmdzaTogMTAsIHNldHVwX2dz
aS50cmlnZ2VyaW5nOiAwLCBzZXR1cF9nc2kucG9sYXJpdHk6IDAKWyAgICAxLjc4NzUxNl0geGVu
X3JlZ2lzdGVyX2dzaTogeGVuOiByZWdpc3RlcmluZyBnc2kgNiB0cmlnZ2VyaW5nIDEgcG9sYXJp
dHkgMApbICAgIDEuNzg3NTE3XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJv
bV9nc2k6IGdzaSA2IHRyaWdnZXJpbmcgMSBzZXRfcGlycSAxClsgICAgMS43ODc1MThdIHhlbl9y
ZWdpc3Rlcl9nc2k6IEJlZm9yZSBIWVBFUlZJU09SX3BoeXNkZXZfb3AgIHNldHVwX2dzaS5nc2k6
IDYsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAwLCBzZXR1cF9nc2kucG9sYXJpdHk6IDAKWyAgICAx
Ljc4ODEyMl0geGVuX3JlZ2lzdGVyX2dzaTogeGVuOiByZWdpc3RlcmluZyBnc2kgNTAgdHJpZ2dl
cmluZyAwIHBvbGFyaXR5IDEKWyAgICAxLjc4ODEyNF0geGVuX3JlZ2lzdGVyX3BpcnE6IGJlZm9y
ZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgNTAgdHJpZ2dlcmluZyAwIHNldF9waXJxIDEKWyAgICAx
Ljc4ODEzMF0geGVuX3JlZ2lzdGVyX3BpcnE6IGFmdGVyIEhZUEVSVklTT1JfcGh5c2Rldl9vcCwg
YmVmb3JlIHhlbl9iaW5kX3BpcnFfZ3NpX3RvX2lycTogZ3NpIDUwIHRyaWdnZXJpbmcgMCBzaGFy
ZWFibGUgMSBuYW1lIGlvYXBpYy1sZXZlbApbICAgIDEuNzg4MTQyXSB4ZW5fcmVnaXN0ZXJfcGly
cTogeGVuOiAtLT4gcGlycT01MCAtPiBpcnE9NTAgKGdzaT01MCkKWyAgICAxLjc4ODE0M10geGVu
X3JlZ2lzdGVyX2dzaTogQmVmb3JlIEhZUEVSVklTT1JfcGh5c2Rldl9vcCAgc2V0dXBfZ3NpLmdz
aTogNTAsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLCBzZXR1cF9nc2kucG9sYXJpdHk6IDEKWyAg
ICAxLjc4ODE3Nl0geGVuX3JlZ2lzdGVyX2dzaTogeGVuOiByZWdpc3RlcmluZyBnc2kgNTEgdHJp
Z2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICAxLjc4ODE3N10geGVuX3JlZ2lzdGVyX3BpcnE6IGJl
Zm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgNTEgdHJpZ2dlcmluZyAwIHNldF9waXJxIDEKWyAg
ICAxLjc4ODE3OV0geGVuX3JlZ2lzdGVyX3BpcnE6IGFmdGVyIEhZUEVSVklTT1JfcGh5c2Rldl9v
cCwgYmVmb3JlIHhlbl9iaW5kX3BpcnFfZ3NpX3RvX2lycTogZ3NpIDUxIHRyaWdnZXJpbmcgMCBz
aGFyZWFibGUgMSBuYW1lIGlvYXBpYy1sZXZlbApbICAgIDEuNzg4MTg3XSB4ZW5fcmVnaXN0ZXJf
cGlycTogeGVuOiAtLT4gcGlycT01MSAtPiBpcnE9NTEgKGdzaT01MSkKWyAgICAxLjc4ODE4OF0g
eGVuX3JlZ2lzdGVyX2dzaTogQmVmb3JlIEhZUEVSVklTT1JfcGh5c2Rldl9vcCAgc2V0dXBfZ3Np
LmdzaTogNTEsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLCBzZXR1cF9nc2kucG9sYXJpdHk6IDEK
WyAgICAxLjc4ODIxMV0geGVuX3JlZ2lzdGVyX2dzaTogeGVuOiByZWdpc3RlcmluZyBnc2kgNTIg
dHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICAxLjc4ODIxMl0geGVuX3JlZ2lzdGVyX3BpcnE6
IGJlZm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgNTIgdHJpZ2dlcmluZyAwIHNldF9waXJxIDEK
WyAgICAxLjc4ODIxNV0geGVuX3JlZ2lzdGVyX3BpcnE6IGFmdGVyIEhZUEVSVklTT1JfcGh5c2Rl
dl9vcCwgYmVmb3JlIHhlbl9iaW5kX3BpcnFfZ3NpX3RvX2lycTogZ3NpIDUyIHRyaWdnZXJpbmcg
MCBzaGFyZWFibGUgMSBuYW1lIGlvYXBpYy1sZXZlbApbICAgIDEuNzg4MjI1XSB4ZW5fcmVnaXN0
ZXJfcGlycTogeGVuOiAtLT4gcGlycT01MiAtPiBpcnE9NTIgKGdzaT01MikKWyAgICAxLjc4ODIy
Nl0geGVuX3JlZ2lzdGVyX2dzaTogQmVmb3JlIEhZUEVSVklTT1JfcGh5c2Rldl9vcCAgc2V0dXBf
Z3NpLmdzaTogNTIsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLCBzZXR1cF9nc2kucG9sYXJpdHk6
IDEKWyAgICAxLjc4ODI0OV0geGVuX3JlZ2lzdGVyX2dzaTogeGVuOiByZWdpc3RlcmluZyBnc2kg
NTMgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICAxLjc4ODI1MF0geGVuX3JlZ2lzdGVyX3Bp
cnE6IGJlZm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgNTMgdHJpZ2dlcmluZyAwIHNldF9waXJx
IDEKWyAgICAxLjc4ODI1Ml0geGVuX3JlZ2lzdGVyX3BpcnE6IGFmdGVyIEhZUEVSVklTT1JfcGh5
c2Rldl9vcCwgYmVmb3JlIHhlbl9iaW5kX3BpcnFfZ3NpX3RvX2lycTogZ3NpIDUzIHRyaWdnZXJp
bmcgMCBzaGFyZWFibGUgMSBuYW1lIGlvYXBpYy1sZXZlbApbICAgIDEuNzg4MjU5XSB4ZW5fcmVn
aXN0ZXJfcGlycTogeGVuOiAtLT4gcGlycT01MyAtPiBpcnE9NTMgKGdzaT01MykKWyAgICAxLjc4
ODI2MV0geGVuX3JlZ2lzdGVyX2dzaTogQmVmb3JlIEhZUEVSVklTT1JfcGh5c2Rldl9vcCAgc2V0
dXBfZ3NpLmdzaTogNTMsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLCBzZXR1cF9nc2kucG9sYXJp
dHk6IDEKWyAgICAxLjc5NDA1OV0gTG93LXBvd2VyIFMwIGlkbGUgdXNlZCBieSBkZWZhdWx0IGZv
ciBzeXN0ZW0gc3VzcGVuZApbICAgIDEuNzk0MjA4XSBBQ1BJOiBFQzogaW50ZXJydXB0IHVuYmxv
Y2tlZApbICAgIDEuNzk0MjEyXSBBQ1BJOiBFQzogZXZlbnQgdW5ibG9ja2VkClsgICAgMS43OTQy
MjVdIEFDUEk6IEVDOiBFQ19DTUQvRUNfU0M9MHg2NiwgRUNfREFUQT0weDYyClsgICAgMS43OTQy
MzBdIEFDUEk6IEVDOiBHUEU9MHhiClsgICAgMS43OTQyMzRdIEFDUEk6IFxfU0JfLlBDSTAuTFBD
MC5FQzBfOiBCb290IERTRFQgRUMgaW5pdGlhbGl6YXRpb24gY29tcGxldGUKWyAgICAxLjc5NDI0
MF0gQUNQSTogXF9TQl8uUENJMC5MUEMwLkVDMF86IEVDOiBVc2VkIHRvIGhhbmRsZSB0cmFuc2Fj
dGlvbnMgYW5kIGV2ZW50cwpbICAgIDEuNzk0MjY5XSB4ZW46YmFsbG9vbjogSW5pdGlhbGlzaW5n
IGJhbGxvb24gZHJpdmVyClsgICAgMS44MDg2NTZdIGlvbW11OiBEZWZhdWx0IGRvbWFpbiB0eXBl
OiBUcmFuc2xhdGVkClsgICAgMS44MDg2NTZdIGlvbW11OiBETUEgZG9tYWluIFRMQiBpbnZhbGlk
YXRpb24gcG9saWN5OiBsYXp5IG1vZGUKWyAgICAxLjgwODcyN10gU0NTSSBzdWJzeXN0ZW0gaW5p
dGlhbGl6ZWQKWyAgICAxLjgwODc0MV0gbGliYXRhIHZlcnNpb24gMy4wMCBsb2FkZWQuClsgICAg
MS44MDg3NDFdIEFDUEk6IGJ1cyB0eXBlIFVTQiByZWdpc3RlcmVkClsgICAgMS44MDg3NDFdIHVz
YmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNiZnMKWyAgICAxLjgwODc0
MV0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBodWIKWyAgICAxLjgw
ODc0MV0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgZGV2aWNlIGRyaXZlciB1c2IKWyAgICAxLjgy
MDcxMl0gaTJjX2Rlc2lnbndhcmUgQU1ESTAwMTA6MDA6IHVzaW5nIEFDUEkgJ1xfU0IuSTJDQScg
Zm9yICdzY2wnIEdQSU8gbG9va3VwClsgICAgMS44MjA3MTddIGFjcGkgQU1ESTAwMTA6MDA6IEdQ
SU86IGxvb2tpbmcgdXAgc2NsLWdwaW9zClsgICAgMS44MjA3MTldIGFjcGkgQU1ESTAwMTA6MDA6
IEdQSU86IGxvb2tpbmcgdXAgc2NsLWdwaW8KWyAgICAxLjgyMDcyMV0gaTJjX2Rlc2lnbndhcmUg
QU1ESTAwMTA6MDA6IHVzaW5nIGxvb2t1cCB0YWJsZXMgZm9yIEdQSU8gbG9va3VwClsgICAgMS44
MjA3MjJdIGkyY19kZXNpZ253YXJlIEFNREkwMDEwOjAwOiBObyBHUElPIGNvbnN1bWVyIHNjbCBm
b3VuZApbICAgIDEuODMzNzU1XSBpMmNfZGVzaWdud2FyZSBBTURJMDAxMDowMzogdXNpbmcgQUNQ
SSAnXF9TQi5JMkNEJyBmb3IgJ3NjbCcgR1BJTyBsb29rdXAKWyAgICAxLjgzMzc1OV0gYWNwaSBB
TURJMDAxMDowMzogR1BJTzogbG9va2luZyB1cCBzY2wtZ3Bpb3MKWyAgICAxLjgzMzc2MV0gYWNw
aSBBTURJMDAxMDowMzogR1BJTzogbG9va2luZyB1cCBzY2wtZ3BpbwpbICAgIDEuODMzNzYyXSBp
MmNfZGVzaWdud2FyZSBBTURJMDAxMDowMzogdXNpbmcgbG9va3VwIHRhYmxlcyBmb3IgR1BJTyBs
b29rdXAKWyAgICAxLjgzMzc2NF0gaTJjX2Rlc2lnbndhcmUgQU1ESTAwMTA6MDM6IE5vIEdQSU8g
Y29uc3VtZXIgc2NsIGZvdW5kClsgICAgMS44MzUzMDFdIHBwc19jb3JlOiBMaW51eFBQUyBBUEkg
dmVyLiAxIHJlZ2lzdGVyZWQKWyAgICAxLjgzNTMwN10gcHBzX2NvcmU6IFNvZnR3YXJlIHZlci4g
NS4zLjYgLSBDb3B5cmlnaHQgMjAwNS0yMDA3IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxp
bnV4Lml0PgpbICAgIDEuODM1MzE2XSBQVFAgY2xvY2sgc3VwcG9ydCByZWdpc3RlcmVkClsgICAg
MS44MzUzNDFdIEVEQUMgTUM6IFZlcjogMy4wLjAKWyAgICAxLjgzNTc0Nl0gZWZpdmFyczogUmVn
aXN0ZXJlZCBlZml2YXJzIG9wZXJhdGlvbnMKWyAgICAxLjgzNTgzMV0gTmV0TGFiZWw6IEluaXRp
YWxpemluZwpbICAgIDEuODM1ODM3XSBOZXRMYWJlbDogIGRvbWFpbiBoYXNoIHNpemUgPSAxMjgK
WyAgICAxLjgzNTg0Ml0gTmV0TGFiZWw6ICBwcm90b2NvbHMgPSBVTkxBQkVMRUQgQ0lQU092NCBD
QUxJUFNPClsgICAgMS44MzU4NjFdIE5ldExhYmVsOiAgdW5sYWJlbGVkIHRyYWZmaWMgYWxsb3dl
ZCBieSBkZWZhdWx0ClsgICAgMS44MzU4NjldIG1jdHA6IG1hbmFnZW1lbnQgY29tcG9uZW50IHRy
YW5zcG9ydCBwcm90b2NvbCBjb3JlClsgICAgMS44MzU4NzRdIE5FVDogUmVnaXN0ZXJlZCBQRl9N
Q1RQIHByb3RvY29sIGZhbWlseQpbICAgIDEuODM1ODgxXSBQQ0k6IFVzaW5nIEFDUEkgZm9yIElS
USByb3V0aW5nClsgICAgMS44MzU4ODVdIFBDSTogcGNpX2NhY2hlX2xpbmVfc2l6ZSBzZXQgdG8g
NjQgYnl0ZXMKWyAgICAxLjgzNjAwNl0gcmVzb3VyY2U6IEV4cGFuZGVkIHJlc291cmNlIFJlc2Vy
dmVkIGR1ZSB0byBjb25mbGljdCB3aXRoIFBDSSBCdXMgMDAwMDowMApbICAgIDEuODM2MDEyXSBl
ODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDA5YjAwMDAwLTB4MGJmZmZmZmZdClsgICAg
MS44MzYwMTVdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4MDlmMDAwMDAtMHgwYmZm
ZmZmZl0KWyAgICAxLjgzNjAxNl0gZTgyMDogcmVzZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHg0MjM2
MDAwMC0weDQzZmZmZmZmXQpbICAgIDEuODM2MDE3XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIg
W21lbSAweDQ0NTY5MDAwLTB4NDdmZmZmZmZdClsgICAgMS44MzYwMThdIGU4MjA6IHJlc2VydmUg
UkFNIGJ1ZmZlciBbbWVtIDB4NDQ1NmYwMDAtMHg0N2ZmZmZmZl0KWyAgICAxLjgzNjAxOV0gZTgy
MDogcmVzZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHg1MDc3ZjAwMC0weDUzZmZmZmZmXQpbICAgIDEu
ODM2MDIwXSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDViMDAwMDAwLTB4NWJmZmZm
ZmZdClsgICAgMS44MzYwMjJdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4MTA3ZTMw
MDAwMC0weDEwN2ZmZmZmZmZdClsgICAgMS44MzYwNDBdIHBjaSAwMDAwOmMxOjAwLjA6IHZnYWFy
Yjogc2V0dGluZyBhcyBib290IFZHQSBkZXZpY2UKWyAgICAxLjgzNjA0MF0gcGNpIDAwMDA6YzE6
MDAuMDogdmdhYXJiOiBicmlkZ2UgY29udHJvbCBwb3NzaWJsZQpbICAgIDEuODM2MDQwXSBwY2kg
MDAwMDpjMTowMC4wOiB2Z2FhcmI6IFZHQSBkZXZpY2UgYWRkZWQ6IGRlY29kZXM9aW8rbWVtLG93
bnM9bm9uZSxsb2Nrcz1ub25lClsgICAgMS44MzYwNDBdIHZnYWFyYjogbG9hZGVkClsgICAgMS44
MzY2MzhdIHN5c2ZiOiBWUkFNIHNtYWxsZXIgdGhhbiBhZHZlcnRpc2VkClsgICAgMS44MzY4MDRd
IGNsb2Nrc291cmNlOiBTd2l0Y2hlZCB0byBjbG9ja3NvdXJjZSB0c2MtZWFybHkKWyAgICAxLjg0
MDI3MV0gVkZTOiBEaXNrIHF1b3RhcyBkcXVvdF82LjYuMApbICAgIDEuODQwMjg2XSBWRlM6IERx
dW90LWNhY2hlIGhhc2ggdGFibGUgZW50cmllczogNTEyIChvcmRlciAwLCA0MDk2IGJ5dGVzKQpb
ICAgIDEuODQwMzEyXSBodWdldGxiZnM6IGRpc2FibGluZyBiZWNhdXNlIHRoZXJlIGFyZSBubyBz
dXBwb3J0ZWQgaHVnZXBhZ2Ugc2l6ZXMKWyAgICAxLjg0MDM1Ml0gcG5wOiBQblAgQUNQSSBpbml0
ClsgICAgMS44NDA2MzJdIHN5c3RlbSAwMDowMDogW21lbSAweGZlYzAwMDAwLTB4ZmVjMDFmZmZd
IGNvdWxkIG5vdCBiZSByZXNlcnZlZApbICAgIDEuODQwNjUyXSBzeXN0ZW0gMDA6MDA6IFttZW0g
MHhmZWUwMDAwMC0weGZlZTAwZmZmXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuODQ4MTg5XSBz
eXN0ZW0gMDA6MDI6IFtpbyAgMHgwNDAwLTB4MDRjZl0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAx
Ljg0ODE5Nl0gc3lzdGVtIDAwOjAyOiBbaW8gIDB4MDRkMC0weDA0ZDFdIGhhcyBiZWVuIHJlc2Vy
dmVkClsgICAgMS44NDgyMDJdIHN5c3RlbSAwMDowMjogW2lvICAweDA0ZDZdIGhhcyBiZWVuIHJl
c2VydmVkClsgICAgMS44NDgyMDddIHN5c3RlbSAwMDowMjogW2lvICAweDBjMDAtMHgwYzAxXSBo
YXMgYmVlbiByZXNlcnZlZApbICAgIDEuODQ4MjEyXSBzeXN0ZW0gMDA6MDI6IFtpbyAgMHgwYzE0
XSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuODQ4MjE3XSBzeXN0ZW0gMDA6MDI6IFtpbyAgMHgw
YzUwLTB4MGM1Ml0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjg0ODIyMl0gc3lzdGVtIDAwOjAy
OiBbaW8gIDB4MGM2Y10gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjg0ODIyN10gc3lzdGVtIDAw
OjAyOiBbaW8gIDB4MGM2Zl0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjg0ODIzNF0gc3lzdGVt
IDAwOjAyOiBbaW8gIDB4MGNkMC0weDBjZGJdIGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS44NDgz
MjhdIHN5c3RlbSAwMDowMzogW21lbSAweDAwMGUwMDAwLTB4MDAwZmZmZmZdIGNvdWxkIG5vdCBi
ZSByZXNlcnZlZApbICAgIDEuODQ4MzM0XSBzeXN0ZW0gMDA6MDM6IFttZW0gMHhmZTAwMDAwMC0w
eGZmZmZmZmZmXSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQKWyAgICAxLjg0ODUxNl0geGVuX3JlZ2lz
dGVyX2dzaTogeGVuOiByZWdpc3RlcmluZyBnc2kgMSB0cmlnZ2VyaW5nIDEgcG9sYXJpdHkgMApb
ICAgIDEuODQ4NTE4XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6
IGdzaSAxIHRyaWdnZXJpbmcgMSBzZXRfcGlycSAxClsgICAgMS44NDg1MTldIHhlbl9yZWdpc3Rl
cl9nc2k6IEJlZm9yZSBIWVBFUlZJU09SX3BoeXNkZXZfb3AgIHNldHVwX2dzaS5nc2k6IDEsIHNl
dHVwX2dzaS50cmlnZ2VyaW5nOiAwLCBzZXR1cF9nc2kucG9sYXJpdHk6IDAKWyAgICAxLjg1MDUw
Ml0gcG5wOiBQblAgQUNQSTogZm91bmQgNSBkZXZpY2VzClsgICAgMS44NTU3ODNdIFBNLVRpbWVy
IGZhaWxlZCBjb25zaXN0ZW5jeSBjaGVjayAgKDB4ZmZmZmZmKSAtIGFib3J0aW5nLgpbICAgIDEu
ODU1ODM5XSBORVQ6IFJlZ2lzdGVyZWQgUEZfSU5FVCBwcm90b2NvbCBmYW1pbHkKWyAgICAxLjg1
NTkzOF0gSVAgaWRlbnRzIGhhc2ggdGFibGUgZW50cmllczogMjYyMTQ0IChvcmRlcjogOSwgMjA5
NzE1MiBieXRlcywgbGluZWFyKQpbICAgIDEuODU3NTk0XSB0Y3BfbGlzdGVuX3BvcnRhZGRyX2hh
c2ggaGFzaCB0YWJsZSBlbnRyaWVzOiAzMjc2OCAob3JkZXI6IDcsIDUyNDI4OCBieXRlcywgbGlu
ZWFyKQpbICAgIDEuODU3NjMyXSBUYWJsZS1wZXJ0dXJiIGhhc2ggdGFibGUgZW50cmllczogNjU1
MzYgKG9yZGVyOiA2LCAyNjIxNDQgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjg1NzY1OF0gVENQIGVz
dGFibGlzaGVkIGhhc2ggdGFibGUgZW50cmllczogNTI0Mjg4IChvcmRlcjogMTAsIDQxOTQzMDQg
Ynl0ZXMsIGxpbmVhcikKWyAgICAxLjg1Nzg4Ml0gVENQIGJpbmQgaGFzaCB0YWJsZSBlbnRyaWVz
OiA2NTUzNiAob3JkZXI6IDksIDIwOTcxNTIgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjg1Nzk4OF0g
VENQOiBIYXNoIHRhYmxlcyBjb25maWd1cmVkIChlc3RhYmxpc2hlZCA1MjQyODggYmluZCA2NTUz
NikKWyAgICAxLjg1ODE0M10gTVBUQ1AgdG9rZW4gaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUzNiAo
b3JkZXI6IDgsIDE1NzI4NjQgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjg1ODE5NF0gVURQIGhhc2gg
dGFibGUgZW50cmllczogMzI3NjggKG9yZGVyOiA4LCAxMDQ4NTc2IGJ5dGVzLCBsaW5lYXIpClsg
ICAgMS44NTgyNDZdIFVEUC1MaXRlIGhhc2ggdGFibGUgZW50cmllczogMzI3NjggKG9yZGVyOiA4
LCAxMDQ4NTc2IGJ5dGVzLCBsaW5lYXIpClsgICAgMS44NTgzNTVdIE5FVDogUmVnaXN0ZXJlZCBQ
Rl9VTklYL1BGX0xPQ0FMIHByb3RvY29sIGZhbWlseQpbICAgIDEuODU4MzY2XSBORVQ6IFJlZ2lz
dGVyZWQgUEZfWERQIHByb3RvY29sIGZhbWlseQpbICAgIDEuODU4Mzc4XSBwY2kgMDAwMDowMDow
Mi4yOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDFdClsgICAgMS44NTgzOTVdIHBjaSAwMDAwOjAwOjAy
LjI6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4OTBiMDAwMDAtMHg5MGJmZmZmZl0KWyAgICAxLjg1
ODQwM10gcGNpIDAwMDA6MDA6MDIuMjogICBicmlkZ2Ugd2luZG93IFttZW0gMHg4ODEwOTAwMDAw
LTB4ODgxMDlmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuODU4NDE1XSBwY2kgMDAwMDowMDowMi40
OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDJdClsgICAgMS44NTg0MjRdIHBjaSAwMDAwOjAwOjAyLjQ6
ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4OTBhMDAwMDAtMHg5MGFmZmZmZl0KWyAgICAxLjg1ODQz
N10gcGNpIDAwMDA6MDA6MDMuMTogUENJIGJyaWRnZSB0byBbYnVzIDAzLTYxXQpbICAgIDEuODU4
NDQ0XSBwY2kgMDAwMDowMDowMy4xOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDYwMDAtMHg5ZmZm
XQpbICAgIDEuODU4NDU5XSBwY2kgMDAwMDowMDowMy4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAw
eDc4MDAwMDAwLTB4OGZmZmZmZmZdClsgICAgMS44NTg0NzNdIHBjaSAwMDAwOjAwOjAzLjE6ICAg
YnJpZGdlIHdpbmRvdyBbbWVtIDB4NzgwMDAwMDAwMC0weDg3ZmZmZmZmZmYgNjRiaXQgcHJlZl0K
WyAgICAxLjg1ODQ5MF0gcGNpIDAwMDA6MDA6MDQuMTogUENJIGJyaWRnZSB0byBbYnVzIDYyLWMw
XQpbICAgIDEuODU4NDk2XSBwY2kgMDAwMDowMDowNC4xOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAw
eDIwMDAtMHg1ZmZmXQpbICAgIDEuODU4NTExXSBwY2kgMDAwMDowMDowNC4xOiAgIGJyaWRnZSB3
aW5kb3cgW21lbSAweDYwMDAwMDAwLTB4NzdmZmZmZmZdClsgICAgMS44NTg1MjVdIHBjaSAwMDAw
OjAwOjA0LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4NjgwMDAwMDAwMC0weDc3ZmZmZmZmZmYg
NjRiaXQgcHJlZl0KWyAgICAxLjg1ODU0M10gcGNpIDAwMDA6MDA6MDguMTogUENJIGJyaWRnZSB0
byBbYnVzIGMxXQpbICAgIDEuODU4NTQ5XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5k
b3cgW2lvICAweDEwMDAtMHgxZmZmXQpbICAgIDEuODU4NTU3XSBwY2kgMDAwMDowMDowOC4xOiAg
IGJyaWRnZSB3aW5kb3cgW21lbSAweDkwMDAwMDAwLTB4OTA1ZmZmZmZdClsgICAgMS44NTg1NjVd
IHBjaSAwMDAwOjAwOjA4LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ODgwMDAwMDAwMC0weDg4
MTA3ZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjg1ODU3Nl0gcGNpIDAwMDA6MDA6MDguMjogUENJ
IGJyaWRnZSB0byBbYnVzIGMyXQpbICAgIDEuODU4NTg0XSBwY2kgMDAwMDowMDowOC4yOiAgIGJy
aWRnZSB3aW5kb3cgW21lbSAweDkwOTAwMDAwLTB4OTA5ZmZmZmZdClsgICAgMS44NTg1OTJdIHBj
aSAwMDAwOjAwOjA4LjI6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ODgxMDgwMDAwMC0weDg4MTA4
ZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjg1ODYwM10gcGNpIDAwMDA6MDA6MDguMzogUENJIGJy
aWRnZSB0byBbYnVzIGMzXQpbICAgIDEuODU4NjExXSBwY2kgMDAwMDowMDowOC4zOiAgIGJyaWRn
ZSB3aW5kb3cgW21lbSAweDkwNjAwMDAwLTB4OTA4ZmZmZmZdClsgICAgMS44NTg2MzBdIHBjaV9i
dXMgMDAwMDowMDogcmVzb3VyY2UgNCBbaW8gIDB4MDAwMC0weDBjZjcgd2luZG93XQpbICAgIDEu
ODU4NjM2XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDUgW2lvICAweDBkMDAtMHhmZmZmIHdp
bmRvd10KWyAgICAxLjg1ODY0Ml0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA2IFttZW0gMHgw
MDBhMDAwMC0weDAwMGJmZmZmIHdpbmRvd10KWyAgICAxLjg1ODY0OV0gcGNpX2J1cyAwMDAwOjAw
OiByZXNvdXJjZSA3IFttZW0gMHgwMDBjMDAwMC0weDAwMGNmZmZmIHdpbmRvd10KWyAgICAxLjg1
ODY1NV0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA4IFttZW0gMHgwMDBkMDAwMC0weDAwMGVm
ZmZmIHdpbmRvd10KWyAgICAxLjg1ODY2Ml0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA5IFtt
ZW0gMHg2MDAwMDAwMC0weDkwYmZmZmZmIHdpbmRvd10KWyAgICAxLjg1ODY2OV0gcGNpX2J1cyAw
MDAwOjAwOiByZXNvdXJjZSAxMCBbbWVtIDB4ZjAwMDAwMDAtMHhmZWMwMDAwMCB3aW5kb3ddClsg
ICAgMS44NTg2NzVdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMTEgW21lbSAweGZlZDQ1MDAw
LTB4ZmVkODE0ZmYgd2luZG93XQpbICAgIDEuODU4NjgxXSBwY2lfYnVzIDAwMDA6MDA6IHJlc291
cmNlIDEyIFttZW0gMHhmZWQ4MTkwMC0weGZlZDgxZmZmIHdpbmRvd10KWyAgICAxLjg1ODY4Nl0g
cGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSAxMyBbbWVtIDB4ZmVkYzAwMDAtMHhmZWRjMGZmZiB3
aW5kb3ddClsgICAgMS44NTg2OTJdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMTQgW21lbSAw
eGZlZGM2MDAwLTB4ZmVkYzZmZmYgd2luZG93XQpbICAgIDEuODU4Njk3XSBwY2lfYnVzIDAwMDA6
MDA6IHJlc291cmNlIDE1IFttZW0gMHgxMGMwMjAwMDAwLTB4ODkxZmZmZmZmZiB3aW5kb3ddClsg
ICAgMS44NTg3MDRdIHBjaV9idXMgMDAwMDowMTogcmVzb3VyY2UgMSBbbWVtIDB4OTBiMDAwMDAt
MHg5MGJmZmZmZl0KWyAgICAxLjg1ODcwOV0gcGNpX2J1cyAwMDAwOjAxOiByZXNvdXJjZSAyIFtt
ZW0gMHg4ODEwOTAwMDAwLTB4ODgxMDlmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuODU4NzE1XSBw
Y2lfYnVzIDAwMDA6MDI6IHJlc291cmNlIDEgW21lbSAweDkwYTAwMDAwLTB4OTBhZmZmZmZdClsg
ICAgMS44NTg3MjBdIHBjaV9idXMgMDAwMDowMzogcmVzb3VyY2UgMCBbaW8gIDB4NjAwMC0weDlm
ZmZdClsgICAgMS44NTg3MjVdIHBjaV9idXMgMDAwMDowMzogcmVzb3VyY2UgMSBbbWVtIDB4Nzgw
MDAwMDAtMHg4ZmZmZmZmZl0KWyAgICAxLjg1ODczMF0gcGNpX2J1cyAwMDAwOjAzOiByZXNvdXJj
ZSAyIFttZW0gMHg3ODAwMDAwMDAwLTB4ODdmZmZmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuODU4
NzM2XSBwY2lfYnVzIDAwMDA6NjI6IHJlc291cmNlIDAgW2lvICAweDIwMDAtMHg1ZmZmXQpbICAg
IDEuODU4NzQxXSBwY2lfYnVzIDAwMDA6NjI6IHJlc291cmNlIDEgW21lbSAweDYwMDAwMDAwLTB4
NzdmZmZmZmZdClsgICAgMS44NTg3NDZdIHBjaV9idXMgMDAwMDo2MjogcmVzb3VyY2UgMiBbbWVt
IDB4NjgwMDAwMDAwMC0weDc3ZmZmZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjg1ODc1Ml0gcGNp
X2J1cyAwMDAwOmMxOiByZXNvdXJjZSAwIFtpbyAgMHgxMDAwLTB4MWZmZl0KWyAgICAxLjg1ODc1
N10gcGNpX2J1cyAwMDAwOmMxOiByZXNvdXJjZSAxIFttZW0gMHg5MDAwMDAwMC0weDkwNWZmZmZm
XQpbICAgIDEuODU4NzYyXSBwY2lfYnVzIDAwMDA6YzE6IHJlc291cmNlIDIgW21lbSAweDg4MDAw
MDAwMDAtMHg4ODEwN2ZmZmZmIDY0Yml0IHByZWZdClsgICAgMS44NTg3NjhdIHBjaV9idXMgMDAw
MDpjMjogcmVzb3VyY2UgMSBbbWVtIDB4OTA5MDAwMDAtMHg5MDlmZmZmZl0KWyAgICAxLjg1ODc3
M10gcGNpX2J1cyAwMDAwOmMyOiByZXNvdXJjZSAyIFttZW0gMHg4ODEwODAwMDAwLTB4ODgxMDhm
ZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuODU4Nzc5XSBwY2lfYnVzIDAwMDA6YzM6IHJlc291cmNl
IDEgW21lbSAweDkwNjAwMDAwLTB4OTA4ZmZmZmZdClsgICAgMS44NTkyMTNdIHBjaSAwMDAwOmMx
OjAwLjE6IEQwIHBvd2VyIHN0YXRlIGRlcGVuZHMgb24gMDAwMDpjMTowMC4wClsgICAgMS44NTkz
NDddIHhlbl9yZWdpc3Rlcl9nc2k6IHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDQwIHRyaWdnZXJpbmcg
MCBwb2xhcml0eSAxClsgICAgMS44NTkzNDldIHhlbl9yZWdpc3Rlcl9waXJxOiBiZWZvcmUgeGVu
X2lycV9mcm9tX2dzaTogZ3NpIDQwIHRyaWdnZXJpbmcgMCBzZXRfcGlycSAxClsgICAgMS44NTkz
NjNdIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09SX3BoeXNkZXZfb3AsIGJlZm9y
ZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSA0MCB0cmlnZ2VyaW5nIDAgc2hhcmVhYmxl
IDEgbmFtZSBpb2FwaWMtbGV2ZWwKWyAgICAxLjg1OTM3NV0geGVuX3JlZ2lzdGVyX3BpcnE6IHhl
bjogLS0+IHBpcnE9NDAgLT4gaXJxPTQwIChnc2k9NDApClsgICAgMS44NTkzNzZdIHhlbl9yZWdp
c3Rlcl9nc2k6IEJlZm9yZSBIWVBFUlZJU09SX3BoeXNkZXZfb3AgIHNldHVwX2dzaS5nc2k6IDQw
LCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSwgc2V0dXBfZ3NpLnBvbGFyaXR5OiAxClsgICAgMS44
NTk0NTBdIHhlbl9yZWdpc3Rlcl9nc2k6IHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDM3IHRyaWdnZXJp
bmcgMCBwb2xhcml0eSAxClsgICAgMS44NTk0NTFdIHhlbl9yZWdpc3Rlcl9waXJxOiBiZWZvcmUg
eGVuX2lycV9mcm9tX2dzaTogZ3NpIDM3IHRyaWdnZXJpbmcgMCBzZXRfcGlycSAxClsgICAgMS44
NTk0NTRdIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09SX3BoeXNkZXZfb3AsIGJl
Zm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSAzNyB0cmlnZ2VyaW5nIDAgc2hhcmVh
YmxlIDEgbmFtZSBpb2FwaWMtbGV2ZWwKWyAgICAxLjg1OTQ2M10geGVuX3JlZ2lzdGVyX3BpcnE6
IHhlbjogLS0+IHBpcnE9MzcgLT4gaXJxPTM3IChnc2k9MzcpClsgICAgMS44NTk0NjRdIHhlbl9y
ZWdpc3Rlcl9nc2k6IEJlZm9yZSBIWVBFUlZJU09SX3BoeXNkZXZfb3AgIHNldHVwX2dzaS5nc2k6
IDM3LCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSwgc2V0dXBfZ3NpLnBvbGFyaXR5OiAxClsgICAg
MS44NTk5NTVdIHhlbl9yZWdpc3Rlcl9nc2k6IHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDM4IHRyaWdn
ZXJpbmcgMCBwb2xhcml0eSAxClsgICAgMS44NTk5NTddIHhlbl9yZWdpc3Rlcl9waXJxOiBiZWZv
cmUgeGVuX2lycV9mcm9tX2dzaTogZ3NpIDM4IHRyaWdnZXJpbmcgMCBzZXRfcGlycSAxClsgICAg
MS44NTk5NTldIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBIWVBFUlZJU09SX3BoeXNkZXZfb3As
IGJlZm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdzaSAzOCB0cmlnZ2VyaW5nIDAgc2hh
cmVhYmxlIDEgbmFtZSBpb2FwaWMtbGV2ZWwKWyAgICAxLjg1OTk3NF0geGVuX3JlZ2lzdGVyX3Bp
cnE6IHhlbjogLS0+IHBpcnE9MzggLT4gaXJxPTM4IChnc2k9MzgpClsgICAgMS44NTk5NzVdIHhl
bl9yZWdpc3Rlcl9nc2k6IEJlZm9yZSBIWVBFUlZJU09SX3BoeXNkZXZfb3AgIHNldHVwX2dzaS5n
c2k6IDM4LCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSwgc2V0dXBfZ3NpLnBvbGFyaXR5OiAxClsg
ICAgMS44NjA0MDddIHhlbl9yZWdpc3Rlcl9nc2k6IHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDQwIHRy
aWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAgMS44NjA0MDhdIHhlbl9yZWdpc3Rlcl9waXJxOiBi
ZWZvcmUgeGVuX2lycV9mcm9tX2dzaTogZ3NpIDQwIHRyaWdnZXJpbmcgMCBzZXRfcGlycSAxClsg
ICAgMS44NjA0MTBdIHhlbl9yZWdpc3Rlcl9nc2k6IEJlZm9yZSBIWVBFUlZJU09SX3BoeXNkZXZf
b3AgIHNldHVwX2dzaS5nc2k6IDQwLCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSwgc2V0dXBfZ3Np
LnBvbGFyaXR5OiAxClsgICAgMS44NjA0MTJdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6NDAKWyAg
ICAxLjg2MDQ2M10geGVuX3JlZ2lzdGVyX2dzaTogeGVuOiByZWdpc3RlcmluZyBnc2kgNDYgdHJp
Z2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICAxLjg2MDQ2NV0geGVuX3JlZ2lzdGVyX3BpcnE6IGJl
Zm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgNDYgdHJpZ2dlcmluZyAwIHNldF9waXJxIDEKWyAg
ICAxLjg2MDQ2N10geGVuX3JlZ2lzdGVyX3BpcnE6IGFmdGVyIEhZUEVSVklTT1JfcGh5c2Rldl9v
cCwgYmVmb3JlIHhlbl9iaW5kX3BpcnFfZ3NpX3RvX2lycTogZ3NpIDQ2IHRyaWdnZXJpbmcgMCBz
aGFyZWFibGUgMSBuYW1lIGlvYXBpYy1sZXZlbApbICAgIDEuODYwNDc2XSB4ZW5fcmVnaXN0ZXJf
cGlycTogeGVuOiAtLT4gcGlycT00NiAtPiBpcnE9NDYgKGdzaT00NikKWyAgICAxLjg2MDQ3N10g
eGVuX3JlZ2lzdGVyX2dzaTogQmVmb3JlIEhZUEVSVklTT1JfcGh5c2Rldl9vcCAgc2V0dXBfZ3Np
LmdzaTogNDYsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLCBzZXR1cF9nc2kucG9sYXJpdHk6IDEK
WyAgICAxLjg2MDg3NV0geGVuX3JlZ2lzdGVyX2dzaTogeGVuOiByZWdpc3RlcmluZyBnc2kgNDcg
dHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICAxLjg2MDg3Nl0geGVuX3JlZ2lzdGVyX3BpcnE6
IGJlZm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgNDcgdHJpZ2dlcmluZyAwIHNldF9waXJxIDEK
WyAgICAxLjg2MDg3OV0geGVuX3JlZ2lzdGVyX3BpcnE6IGFmdGVyIEhZUEVSVklTT1JfcGh5c2Rl
dl9vcCwgYmVmb3JlIHhlbl9iaW5kX3BpcnFfZ3NpX3RvX2lycTogZ3NpIDQ3IHRyaWdnZXJpbmcg
MCBzaGFyZWFibGUgMSBuYW1lIGlvYXBpYy1sZXZlbApbICAgIDEuODYwODg4XSB4ZW5fcmVnaXN0
ZXJfcGlycTogeGVuOiAtLT4gcGlycT00NyAtPiBpcnE9NDcgKGdzaT00NykKWyAgICAxLjg2MDg4
OV0geGVuX3JlZ2lzdGVyX2dzaTogQmVmb3JlIEhZUEVSVklTT1JfcGh5c2Rldl9vcCAgc2V0dXBf
Z3NpLmdzaTogNDcsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLCBzZXR1cF9nc2kucG9sYXJpdHk6
IDEKWyAgICAxLjg2MTI0OF0gUENJOiBDTFMgNjQgYnl0ZXMsIGRlZmF1bHQgNjQKWyAgICAxLjg2
MTI1OF0gUENJLURNQTogVXNpbmcgc29mdHdhcmUgYm91bmNlIGJ1ZmZlcmluZyBmb3IgSU8gKFNX
SU9UTEIpClsgICAgMS44NjEyNjNdIHNvZnR3YXJlIElPIFRMQjogbWFwcGVkIFttZW0gMHgwMDAw
MDAxMDNiMDAwMDAwLTB4MDAwMDAwMTAzZjAwMDAwMF0gKDY0TUIpClsgICAgMS44NjEzMDldIGNs
b2Nrc291cmNlOiB0c2M6IG1hc2s6IDB4ZmZmZmZmZmZmZmZmZmZmZiBtYXhfY3ljbGVzOiAweDJm
N2E3YTdmMjIxLCBtYXhfaWRsZV9uczogNDQwNzk1Mjg5NzI2IG5zClsgICAgMS44NjEzMjNdIFRy
eWluZyB0byB1bnBhY2sgcm9vdGZzIGltYWdlIGFzIGluaXRyYW1mcy4uLgpbICAgIDEuODYxMzU4
XSBjbG9ja3NvdXJjZTogU3dpdGNoZWQgdG8gY2xvY2tzb3VyY2UgdHNjClsgICAgMS44NjY4NDVd
IEluaXRpYWxpc2Ugc3lzdGVtIHRydXN0ZWQga2V5cmluZ3MKWyAgICAxLjg2Njg1OV0gS2V5IHR5
cGUgYmxhY2tsaXN0IHJlZ2lzdGVyZWQKWyAgICAxLjg2NjkzMl0gd29ya2luZ3NldDogdGltZXN0
YW1wX2JpdHM9NDYgbWF4X29yZGVyPTI0IGJ1Y2tldF9vcmRlcj0wClsgICAgMS44NjY5NDZdIHpi
dWQ6IGxvYWRlZApbICAgIDEuODY3OTkxXSBpbnRlZ3JpdHk6IFBsYXRmb3JtIEtleXJpbmcgaW5p
dGlhbGl6ZWQKWyAgICAxLjg2Nzk5OF0gaW50ZWdyaXR5OiBNYWNoaW5lIGtleXJpbmcgaW5pdGlh
bGl6ZWQKWyAgICAxLjg3MzYwN10gTkVUOiBSZWdpc3RlcmVkIFBGX0FMRyBwcm90b2NvbCBmYW1p
bHkKWyAgICAxLjg3MzYxM10geG9yOiBhdXRvbWF0aWNhbGx5IHVzaW5nIGJlc3QgY2hlY2tzdW1t
aW5nIGZ1bmN0aW9uICAgYXZ4ICAgICAgIApbICAgIDEuODczNjIwXSBLZXkgdHlwZSBhc3ltbWV0
cmljIHJlZ2lzdGVyZWQKWyAgICAxLjg3MzYyNF0gQXN5bW1ldHJpYyBrZXkgcGFyc2VyICd4NTA5
JyByZWdpc3RlcmVkClsgICAgMy40ODUyMTJdIEZyZWVpbmcgaW5pdHJkIG1lbW9yeTogMjI0MjEy
SwpbICAgIDMuNDkxNDE0XSBCbG9jayBsYXllciBTQ1NJIGdlbmVyaWMgKGJzZykgZHJpdmVyIHZl
cnNpb24gMC40IGxvYWRlZCAobWFqb3IgMjQ1KQpbICAgIDMuNDkxNTIwXSBpbyBzY2hlZHVsZXIg
bXEtZGVhZGxpbmUgcmVnaXN0ZXJlZApbICAgIDMuNDkxNTMxXSBpbyBzY2hlZHVsZXIga3liZXIg
cmVnaXN0ZXJlZApbICAgIDMuNDkxNTU3XSBpbyBzY2hlZHVsZXIgYmZxIHJlZ2lzdGVyZWQKWyAg
ICAzLjQ5MzcyNV0gYXRvbWljNjRfdGVzdDogcGFzc2VkIGZvciB4ODYtNjQgcGxhdGZvcm0gd2l0
aCBDWDggYW5kIHdpdGggU1NFClsgICAgMy40OTM5NDVdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBp
b211eCBub3Qgc3VwcG9ydGVkClsgICAgMy40OTM5NDhdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiB0
cnkgdG8gcmVnaXN0ZXIgMTgzIHBpbnMgLi4uClsgICAgMy40OTM5NTBdIHBpbmN0cmwgY29yZTog
cmVnaXN0ZXJlZCBwaW4gMCAoR1BJT18wKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTUyXSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEgKEdQSU9fMSkgb24gQU1ESTAwMzA6MDAKWyAg
ICAzLjQ5Mzk1M10gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAyIChHUElPXzIpIG9uIEFN
REkwMDMwOjAwClsgICAgMy40OTM5NTRdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMyAo
R1BJT18zKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTU2XSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDQgKEdQSU9fNCkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5Mzk1N10gcGluY3Ry
bCBjb3JlOiByZWdpc3RlcmVkIHBpbiA1IChHUElPXzUpIG9uIEFNREkwMDMwOjAwClsgICAgMy40
OTM5NThdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gNiAoR1BJT182KSBvbiBBTURJMDAz
MDowMApbICAgIDMuNDkzOTU5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDcgKEdQSU9f
Nykgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5Mzk2MF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVk
IHBpbiA4IChHUElPXzgpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTM5NjFdIHBpbmN0cmwgY29y
ZTogcmVnaXN0ZXJlZCBwaW4gOSAoR1BJT185KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTYy
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEwIChHUElPXzEwKSBvbiBBTURJMDAzMDow
MApbICAgIDMuNDkzOTY0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDExIChHUElPXzEx
KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTY1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDEyIChHUElPXzEyKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTY2XSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDEzIChHUElPXzEzKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkz
OTY3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE0IChHUElPXzE0KSBvbiBBTURJMDAz
MDowMApbICAgIDMuNDkzOTY4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE1IChHUElP
XzE1KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTY5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDE2IChHUElPXzE2KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTcxXSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE3IChHUElPXzE3KSBvbiBBTURJMDAzMDowMApbICAgIDMu
NDkzOTcyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE4IChHUElPXzE4KSBvbiBBTURJ
MDAzMDowMApbICAgIDMuNDkzOTczXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE5IChH
UElPXzE5KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTc0XSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDIwIChHUElPXzIwKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTc1XSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDIxIChHUElPXzIxKSBvbiBBTURJMDAzMDowMApbICAg
IDMuNDkzOTc2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDIyIChHUElPXzIyKSBvbiBB
TURJMDAzMDowMApbICAgIDMuNDkzOTc3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDIz
IChHUElPXzIzKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTc4XSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDI0IChHUElPXzI0KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTc5XSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDI1IChHUElPXzI1KSBvbiBBTURJMDAzMDowMApb
ICAgIDMuNDkzOTgxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDI2IChHUElPXzI2KSBv
biBBTURJMDAzMDowMApbICAgIDMuNDkzOTgyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDI3IChHUElPXzI3KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTgzXSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDI4IChHUElPXzI4KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTg0
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDI5IChHUElPXzI5KSBvbiBBTURJMDAzMDow
MApbICAgIDMuNDkzOTg1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDMwIChHUElPXzMw
KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTg2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDMxIChHUElPXzMxKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTg3XSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDMyIChHUElPXzMyKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkz
OTg4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDMzIChHUElPXzMzKSBvbiBBTURJMDAz
MDowMApbICAgIDMuNDkzOTkwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDM0IChHUElP
XzM0KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTkxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDM1IChHUElPXzM1KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTkyXSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDM2IChHUElPXzM2KSBvbiBBTURJMDAzMDowMApbICAgIDMu
NDkzOTkzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDM3IChHUElPXzM3KSBvbiBBTURJ
MDAzMDowMApbICAgIDMuNDkzOTk0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDM4IChH
UElPXzM4KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTk1XSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDM5IChHUElPXzM5KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDkzOTk2XSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQwIChHUElPXzQwKSBvbiBBTURJMDAzMDowMApbICAg
IDMuNDkzOTk3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQxIChHUElPXzQxKSBvbiBB
TURJMDAzMDowMApbICAgIDMuNDkzOTk5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQy
IChHUElPXzQyKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDAwXSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDQzIChHUElPXzQzKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDAxXSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQ0IChHUElPXzQ0KSBvbiBBTURJMDAzMDowMApb
ICAgIDMuNDk0MDAyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQ1IChHUElPXzQ1KSBv
biBBTURJMDAzMDowMApbICAgIDMuNDk0MDA0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDQ2IChHUElPXzQ2KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDA1XSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDQ3IChHUElPXzQ3KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDA2
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQ4IChHUElPXzQ4KSBvbiBBTURJMDAzMDow
MApbICAgIDMuNDk0MDA3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDQ5IChHUElPXzQ5
KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDA4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDUwIChHUElPXzUwKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDA5XSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDUxIChHUElPXzUxKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0
MDEwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDUyIChHUElPXzUyKSBvbiBBTURJMDAz
MDowMApbICAgIDMuNDk0MDExXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDUzIChHUElP
XzUzKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDEyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDU0IChHUElPXzU0KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDE0XSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDU1IChHUElPXzU1KSBvbiBBTURJMDAzMDowMApbICAgIDMu
NDk0MDE1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDU2IChHUElPXzU2KSBvbiBBTURJ
MDAzMDowMApbICAgIDMuNDk0MDE2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDU3IChH
UElPXzU3KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDE3XSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDU4IChHUElPXzU4KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDE4XSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDU5IChHUElPXzU5KSBvbiBBTURJMDAzMDowMApbICAg
IDMuNDk0MDE5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDYwIChHUElPXzYwKSBvbiBB
TURJMDAzMDowMApbICAgIDMuNDk0MDIwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDYx
IChHUElPXzYxKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDIxXSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDYyIChHUElPXzYyKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDIzXSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDY0IChHUElPXzY0KSBvbiBBTURJMDAzMDowMApb
ICAgIDMuNDk0MDI0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDY1IChHUElPXzY1KSBv
biBBTURJMDAzMDowMApbICAgIDMuNDk0MDI1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDY2IChHUElPXzY2KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDI2XSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDY3IChHUElPXzY3KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDI3
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDY4IChHUElPXzY4KSBvbiBBTURJMDAzMDow
MApbICAgIDMuNDk0MDI4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDY5IChHUElPXzY5
KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDMwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDcwIChHUElPXzcwKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDMxXSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDcxIChHUElPXzcxKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0
MDMyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDcyIChHUElPXzcyKSBvbiBBTURJMDAz
MDowMApbICAgIDMuNDk0MDMzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDczIChHUElP
XzczKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDM0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDc0IChHUElPXzc0KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDM1XSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDc1IChHUElPXzc1KSBvbiBBTURJMDAzMDowMApbICAgIDMu
NDk0MDM3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDc2IChHUElPXzc2KSBvbiBBTURJ
MDAzMDowMApbICAgIDMuNDk0MDM5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDc3IChH
UElPXzc3KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDQwXSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDc4IChHUElPXzc4KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDQxXSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDc5IChHUElPXzc5KSBvbiBBTURJMDAzMDowMApbICAg
IDMuNDk0MDQyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDgwIChHUElPXzgwKSBvbiBB
TURJMDAzMDowMApbICAgIDMuNDk0MDQzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDgx
IChHUElPXzgxKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDQ0XSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDgyIChHUElPXzgyKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDQ2XSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDgzIChHUElPXzgzKSBvbiBBTURJMDAzMDowMApb
ICAgIDMuNDk0MDQ3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDg0IChHUElPXzg0KSBv
biBBTURJMDAzMDowMApbICAgIDMuNDk0MDQ4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDg1IChHUElPXzg1KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDQ5XSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDg2IChHUElPXzg2KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDUw
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDg3IChHUElPXzg3KSBvbiBBTURJMDAzMDow
MApbICAgIDMuNDk0MDUxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDg4IChHUElPXzg4
KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDUyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDg5IChHUElPXzg5KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDUzXSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDkwIChHUElPXzkwKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0
MDU0XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDkxIChHUElPXzkxKSBvbiBBTURJMDAz
MDowMApbICAgIDMuNDk0MDU2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDkyIChHUElP
XzkyKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDU3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDkzIChHUElPXzkzKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDU4XSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDk0IChHUElPXzk0KSBvbiBBTURJMDAzMDowMApbICAgIDMu
NDk0MDU5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDk1IChHUElPXzk1KSBvbiBBTURJ
MDAzMDowMApbICAgIDMuNDk0MDYwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDk2IChH
UElPXzk2KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDYxXSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDk3IChHUElPXzk3KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDYyXSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDk4IChHUElPXzk4KSBvbiBBTURJMDAzMDowMApbICAg
IDMuNDk0MDYzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDk5IChHUElPXzk5KSBvbiBB
TURJMDAzMDowMApbICAgIDMuNDk0MDY1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEw
MCAoR1BJT18xMDApIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQwNjZdIHBpbmN0cmwgY29yZTog
cmVnaXN0ZXJlZCBwaW4gMTAxIChHUElPXzEwMSkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDA2
N10gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMDIgKEdQSU9fMTAyKSBvbiBBTURJMDAz
MDowMApbICAgIDMuNDk0MDY4XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEwMyAoR1BJ
T18xMDMpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQwNjldIHBpbmN0cmwgY29yZTogcmVnaXN0
ZXJlZCBwaW4gMTA0IChHUElPXzEwNCkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDA3MF0gcGlu
Y3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMDUgKEdQSU9fMTA1KSBvbiBBTURJMDAzMDowMApb
ICAgIDMuNDk0MDcxXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEwNiAoR1BJT18xMDYp
IG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQwNzNdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBw
aW4gMTA3IChHUElPXzEwNykgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDA3NF0gcGluY3RybCBj
b3JlOiByZWdpc3RlcmVkIHBpbiAxMDggKEdQSU9fMTA4KSBvbiBBTURJMDAzMDowMApbICAgIDMu
NDk0MDc1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEwOSAoR1BJT18xMDkpIG9uIEFN
REkwMDMwOjAwClsgICAgMy40OTQwNzZdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTEw
IChHUElPXzExMCkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDA3N10gcGluY3RybCBjb3JlOiBy
ZWdpc3RlcmVkIHBpbiAxMTEgKEdQSU9fMTExKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDc4
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDExMiAoR1BJT18xMTIpIG9uIEFNREkwMDMw
OjAwClsgICAgMy40OTQwNzldIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTEzIChHUElP
XzExMykgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDA4MF0gcGluY3RybCBjb3JlOiByZWdpc3Rl
cmVkIHBpbiAxMTQgKEdQSU9fMTE0KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDgyXSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDExNSAoR1BJT18xMTUpIG9uIEFNREkwMDMwOjAwClsg
ICAgMy40OTQwODNdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTE2IChHUElPXzExNikg
b24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDA4NF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBp
biAxMTcgKEdQSU9fMTE3KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDg1XSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDExOCAoR1BJT18xMTgpIG9uIEFNREkwMDMwOjAwClsgICAgMy40
OTQwODZdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTE5IChHUElPXzExOSkgb24gQU1E
STAwMzA6MDAKWyAgICAzLjQ5NDA4N10gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMjAg
KEdQSU9fMTIwKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDg4XSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDEyMSAoR1BJT18xMjEpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQwODld
IHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTIyIChHUElPXzEyMikgb24gQU1ESTAwMzA6
MDAKWyAgICAzLjQ5NDA5MF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMjMgKEdQSU9f
MTIzKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MDkyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDEyNCAoR1BJT18xMjQpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQwOTNdIHBpbmN0
cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTI1IChHUElPXzEyNSkgb24gQU1ESTAwMzA6MDAKWyAg
ICAzLjQ5NDA5NF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMjYgKEdQSU9fMTI2KSBv
biBBTURJMDAzMDowMApbICAgIDMuNDk0MDk1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGlu
IDEyNyAoR1BJT18xMjcpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQwOTZdIHBpbmN0cmwgY29y
ZTogcmVnaXN0ZXJlZCBwaW4gMTI4IChHUElPXzEyOCkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5
NDA5OF0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMjkgKEdQSU9fMTI5KSBvbiBBTURJ
MDAzMDowMApbICAgIDMuNDk0MDk5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEzMCAo
R1BJT18xMzApIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQxMDBdIHBpbmN0cmwgY29yZTogcmVn
aXN0ZXJlZCBwaW4gMTMxIChHUElPXzEzMSkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDEwMV0g
cGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMzIgKEdQSU9fMTMyKSBvbiBBTURJMDAzMDow
MApbICAgIDMuNDk0MTAyXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEzMyAoR1BJT18x
MzMpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQxMDNdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJl
ZCBwaW4gMTM0IChHUElPXzEzNCkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDEwNF0gcGluY3Ry
bCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxMzUgKEdQSU9fMTM1KSBvbiBBTURJMDAzMDowMApbICAg
IDMuNDk0MTA1XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEzNiAoR1BJT18xMzYpIG9u
IEFNREkwMDMwOjAwClsgICAgMy40OTQxMDddIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4g
MTM3IChHUElPXzEzNykgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDEwOF0gcGluY3RybCBjb3Jl
OiByZWdpc3RlcmVkIHBpbiAxMzggKEdQSU9fMTM4KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0
MTA5XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDEzOSAoR1BJT18xMzkpIG9uIEFNREkw
MDMwOjAwClsgICAgMy40OTQxMTFdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTQwIChH
UElPXzE0MCkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDExMl0gcGluY3RybCBjb3JlOiByZWdp
c3RlcmVkIHBpbiAxNDEgKEdQSU9fMTQxKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTEzXSBw
aW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE0MiAoR1BJT18xNDIpIG9uIEFNREkwMDMwOjAw
ClsgICAgMy40OTQxMTRdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTQzIChHUElPXzE0
Mykgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDExNV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVk
IHBpbiAxNDQgKEdQSU9fMTQ0KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTE2XSBwaW5jdHJs
IGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE0NSAoR1BJT18xNDUpIG9uIEFNREkwMDMwOjAwClsgICAg
My40OTQxMTddIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTQ2IChHUElPXzE0Nikgb24g
QU1ESTAwMzA6MDAKWyAgICAzLjQ5NDExOV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAx
NDcgKEdQSU9fMTQ3KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTIwXSBwaW5jdHJsIGNvcmU6
IHJlZ2lzdGVyZWQgcGluIDE0OCAoR1BJT18xNDgpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQx
MjFdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTQ5IChHUElPXzE0OSkgb24gQU1ESTAw
MzA6MDAKWyAgICAzLjQ5NDEyMl0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNTAgKEdQ
SU9fMTUwKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTIzXSBwaW5jdHJsIGNvcmU6IHJlZ2lz
dGVyZWQgcGluIDE1MSAoR1BJT18xNTEpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQxMjRdIHBp
bmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTUyIChHUElPXzE1Mikgb24gQU1ESTAwMzA6MDAK
WyAgICAzLjQ5NDEyNV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNTMgKEdQSU9fMTUz
KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTI2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQg
cGluIDE1NCAoR1BJT18xNTQpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQxMjddIHBpbmN0cmwg
Y29yZTogcmVnaXN0ZXJlZCBwaW4gMTU1IChHUElPXzE1NSkgb24gQU1ESTAwMzA6MDAKWyAgICAz
LjQ5NDEyOV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNTYgKEdQSU9fMTU2KSBvbiBB
TURJMDAzMDowMApbICAgIDMuNDk0MTMwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE1
NyAoR1BJT18xNTcpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQxMzFdIHBpbmN0cmwgY29yZTog
cmVnaXN0ZXJlZCBwaW4gMTU4IChHUElPXzE1OCkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDEz
Ml0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNTkgKEdQSU9fMTU5KSBvbiBBTURJMDAz
MDowMApbICAgIDMuNDk0MTMzXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE2MCAoR1BJ
T18xNjApIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQxMzRdIHBpbmN0cmwgY29yZTogcmVnaXN0
ZXJlZCBwaW4gMTYxIChHUElPXzE2MSkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDEzNV0gcGlu
Y3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNjIgKEdQSU9fMTYyKSBvbiBBTURJMDAzMDowMApb
ICAgIDMuNDk0MTM2XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE2MyAoR1BJT18xNjMp
IG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQxMzhdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBw
aW4gMTY0IChHUElPXzE2NCkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDEzOV0gcGluY3RybCBj
b3JlOiByZWdpc3RlcmVkIHBpbiAxNjUgKEdQSU9fMTY1KSBvbiBBTURJMDAzMDowMApbICAgIDMu
NDk0MTQwXSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE2NiAoR1BJT18xNjYpIG9uIEFN
REkwMDMwOjAwClsgICAgMy40OTQxNDFdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTY3
IChHUElPXzE2Nykgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDE0Ml0gcGluY3RybCBjb3JlOiBy
ZWdpc3RlcmVkIHBpbiAxNjggKEdQSU9fMTY4KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTQz
XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE2OSAoR1BJT18xNjkpIG9uIEFNREkwMDMw
OjAwClsgICAgMy40OTQxNDRdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTcwIChHUElP
XzE3MCkgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDE0NV0gcGluY3RybCBjb3JlOiByZWdpc3Rl
cmVkIHBpbiAxNzEgKEdQSU9fMTcxKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTQ3XSBwaW5j
dHJsIGNvcmU6IHJlZ2lzdGVyZWQgcGluIDE3MiAoR1BJT18xNzIpIG9uIEFNREkwMDMwOjAwClsg
ICAgMy40OTQxNDhdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTczIChHUElPXzE3Mykg
b24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NDE0OV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBp
biAxNzQgKEdQSU9fMTc0KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTUwXSBwaW5jdHJsIGNv
cmU6IHJlZ2lzdGVyZWQgcGluIDE3NSAoR1BJT18xNzUpIG9uIEFNREkwMDMwOjAwClsgICAgMy40
OTQxNTFdIHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTc2IChHUElPXzE3Nikgb24gQU1E
STAwMzA6MDAKWyAgICAzLjQ5NDE1Ml0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxNzcg
KEdQSU9fMTc3KSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTUzXSBwaW5jdHJsIGNvcmU6IHJl
Z2lzdGVyZWQgcGluIDE3OCAoR1BJT18xNzgpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQxNTRd
IHBpbmN0cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTc5IChHUElPXzE3OSkgb24gQU1ESTAwMzA6
MDAKWyAgICAzLjQ5NDE1NV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxODAgKEdQSU9f
MTgwKSBvbiBBTURJMDAzMDowMApbICAgIDMuNDk0MTU3XSBwaW5jdHJsIGNvcmU6IHJlZ2lzdGVy
ZWQgcGluIDE4MSAoR1BJT18xODEpIG9uIEFNREkwMDMwOjAwClsgICAgMy40OTQxNThdIHBpbmN0
cmwgY29yZTogcmVnaXN0ZXJlZCBwaW4gMTgyIChHUElPXzE4Mikgb24gQU1ESTAwMzA6MDAKWyAg
ICAzLjQ5NDE1OV0gcGluY3RybCBjb3JlOiByZWdpc3RlcmVkIHBpbiAxODMgKEdQSU9fMTgzKSBv
biBBTURJMDAzMDowMApbICAgIDMuNDk0MTYwXSBhbWRfZ3BpbyBBTURJMDAzMDowMDogZmFpbGVk
IHRvIGxvb2t1cCB0aGUgZGVmYXVsdCBzdGF0ZQpbICAgIDMuNDk0MTYyXSBhbWRfZ3BpbyBBTURJ
MDAzMDowMDogZmFpbGVkIHRvIGxvb2t1cCB0aGUgc2xlZXAgc3RhdGUKWyAgICAzLjQ5NDY1N10g
Z3Bpb2NoaXBfZmluZF9iYXNlOiBmb3VuZCBuZXcgYmFzZSBhdCA1MTIKWyAgICAzLjQ5NTE0NV0g
YW1kX2dwaW8gQU1ESTAwMzA6MDA6IEludmFsaWQgY29uZmlnIHBhcmFtIDAwMTQKWyAgICAzLjQ5
NTE0OF0gZ3BpbyBncGlvY2hpcDA6IFBlcnNpc3RlbmNlIG5vdCBzdXBwb3J0ZWQgZm9yIEdQSU8g
MApbICAgIDMuNDk1MTc0XSBhbWRfZ3BpbyBBTURJMDAzMDowMDogSW52YWxpZCBjb25maWcgcGFy
YW0gMDAxNApbICAgIDMuNDk1MTc3XSBncGlvIGdwaW9jaGlwMDogUGVyc2lzdGVuY2Ugbm90IHN1
cHBvcnRlZCBmb3IgR1BJTyA2MQpbICAgIDMuNDk1MTk3XSBhbWRfZ3BpbyBBTURJMDAzMDowMDog
SW52YWxpZCBjb25maWcgcGFyYW0gMDAxNApbICAgIDMuNDk1MjAwXSBncGlvIGdwaW9jaGlwMDog
UGVyc2lzdGVuY2Ugbm90IHN1cHBvcnRlZCBmb3IgR1BJTyA2MgpbICAgIDMuNDk1MjIwXSBhbWRf
Z3BpbyBBTURJMDAzMDowMDogSW52YWxpZCBjb25maWcgcGFyYW0gMDAxNApbICAgIDMuNDk1MjIz
XSBncGlvIGdwaW9jaGlwMDogUGVyc2lzdGVuY2Ugbm90IHN1cHBvcnRlZCBmb3IgR1BJTyA1OApb
ICAgIDMuNDk1MjQyXSBhbWRfZ3BpbyBBTURJMDAzMDowMDogSW52YWxpZCBjb25maWcgcGFyYW0g
MDAxNApbICAgIDMuNDk1MjQ1XSBncGlvIGdwaW9jaGlwMDogUGVyc2lzdGVuY2Ugbm90IHN1cHBv
cnRlZCBmb3IgR1BJTyA1OQpbICAgIDMuNDk1MjY0XSBhbWRfZ3BpbyBBTURJMDAzMDowMDogSW52
YWxpZCBjb25maWcgcGFyYW0gMDAxNApbICAgIDMuNDk1MjY3XSBncGlvIGdwaW9jaGlwMDogUGVy
c2lzdGVuY2Ugbm90IHN1cHBvcnRlZCBmb3IgR1BJTyAyClsgICAgMy40OTUyOTFdIGFtZF9ncGlv
IEFNREkwMDMwOjAwOiBJbnZhbGlkIGNvbmZpZyBwYXJhbSAwMDE0ClsgICAgMy40OTUyOTRdIGdw
aW8gZ3Bpb2NoaXAwOiBQZXJzaXN0ZW5jZSBub3Qgc3VwcG9ydGVkIGZvciBHUElPIDYKWyAgICAz
LjQ5NTMxNF0gYW1kX2dwaW8gQU1ESTAwMzA6MDA6IEludmFsaWQgY29uZmlnIHBhcmFtIDAwMTQK
WyAgICAzLjQ5NTMxN10gZ3BpbyBncGlvY2hpcDA6IFBlcnNpc3RlbmNlIG5vdCBzdXBwb3J0ZWQg
Zm9yIEdQSU8gNTQKWyAgICAzLjQ5NTM4OF0gZ3BpbyBncGlvY2hpcDA6IChBTURJMDAzMDowMCk6
IGFkZGVkIEdQSU8gY2hhcmRldiAoMjU0OjApClsgICAgMy40OTU0MDFdIGdwaW8gZ3Bpb2NoaXAw
OiByZWdpc3RlcmVkIEdQSU9zIDUxMiB0byA3Njcgb24gQU1ESTAwMzA6MDAKWyAgICAzLjQ5NTQw
NF0gZ3BpbyBncGlvY2hpcDA6IChBTURJMDAzMDowMCk6IGNyZWF0ZWQgR1BJTyByYW5nZSAwLT4y
NTUgPT0+IEFNREkwMDMwOjAwIFBJTiAwLT4yNTUKWyAgICAzLjQ5NTQ5MF0gYW1kX2dwaW8gQU1E
STAwMzA6MDA6IGFtZCBncGlvIGRyaXZlciBsb2FkZWQKWyAgICAzLjQ5NTY0Nl0gcGNpZXBvcnQg
MDAwMDowMDowMi4yOiBQTUU6IFNpZ25hbGluZyB3aXRoIElSUSAxNjIKWyAgICAzLjQ5NTgxM10g
cGNpZXBvcnQgMDAwMDowMDowMi40OiBQTUU6IFNpZ25hbGluZyB3aXRoIElSUSAxNjMKWyAgICAz
LjQ5NjA1MV0gcGNpZXBvcnQgMDAwMDowMDowMy4xOiBQTUU6IFNpZ25hbGluZyB3aXRoIElSUSAx
NjQKWyAgICAzLjQ5NjA5MF0gcGNpZXBvcnQgMDAwMDowMDowMy4xOiBwY2llaHA6IFNsb3QgIzAg
QXR0bkJ0bi0gUHdyQ3RybC0gTVJMLSBBdHRuSW5kLSBQd3JJbmQtIEhvdFBsdWcrIFN1cnByaXNl
KyBJbnRlcmxvY2stIE5vQ29tcGwrIEliUHJlc0Rpcy0gTExBY3RSZXArClsgICAgMy40OTY3OTNd
IHBjaWVwb3J0IDAwMDA6MDA6MDQuMTogUE1FOiBTaWduYWxpbmcgd2l0aCBJUlEgMTY1ClsgICAg
My40OTY4MzhdIHBjaWVwb3J0IDAwMDA6MDA6MDQuMTogcGNpZWhwOiBTbG90ICMwIEF0dG5CdG4t
IFB3ckN0cmwtIE1STC0gQXR0bkluZC0gUHdySW5kLSBIb3RQbHVnKyBTdXJwcmlzZSsgSW50ZXJs
b2NrLSBOb0NvbXBsKyBJYlByZXNEaXMtIExMQWN0UmVwKwpbICAgIDMuNDk3NDIyXSBwY2llcG9y
dCAwMDAwOjAwOjA4LjE6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDE2NgpbICAgIDMuNDk3NTY3
XSB4ZW5fcmVnaXN0ZXJfZ3NpOiB4ZW46IHJlZ2lzdGVyaW5nIGdzaSA0MCB0cmlnZ2VyaW5nIDAg
cG9sYXJpdHkgMQpbICAgIDMuNDk3NTY5XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9p
cnFfZnJvbV9nc2k6IGdzaSA0MCB0cmlnZ2VyaW5nIDAgc2V0X3BpcnEgMQpbICAgIDMuNDk3NTgx
XSB4ZW5fcmVnaXN0ZXJfZ3NpOiBCZWZvcmUgSFlQRVJWSVNPUl9waHlzZGV2X29wICBzZXR1cF9n
c2kuZ3NpOiA0MCwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDEsIHNldHVwX2dzaS5wb2xhcml0eTog
MQpbICAgIDMuNDk3NTg1XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjQwClsgICAgMy40OTc2ODNd
IHBjaWVwb3J0IDAwMDA6MDA6MDguMjogUE1FOiBTaWduYWxpbmcgd2l0aCBJUlEgMTY3ClsgICAg
My40OTc4MzVdIHBjaWVwb3J0IDAwMDA6MDA6MDguMzogUE1FOiBTaWduYWxpbmcgd2l0aCBJUlEg
MTY4ClsgICAgMy40OTc5NDRdIHNocGNocDogU3RhbmRhcmQgSG90IFBsdWcgUENJIENvbnRyb2xs
ZXIgRHJpdmVyIHZlcnNpb246IDAuNApbICAgIDMuNDk3OTcyXSBlZmlmYjogcHJvYmluZyBmb3Ig
ZWZpZmIKWyAgICAzLjQ5OTE4N10gZWZpZmI6IE5vIEJHUlQsIG5vdCBzaG93aW5nIGJvb3QgZ3Jh
cGhpY3MKWyAgICAzLjQ5OTE5M10gZWZpZmI6IGZyYW1lYnVmZmVyIGF0IDB4ODgwMDAwMDAwMCwg
dXNpbmcgMTM1MzZrLCB0b3RhbCAxMzUzNmsKWyAgICAzLjQ5OTE5OF0gZWZpZmI6IG1vZGUgaXMg
MjI1NngxNTA0eDMyLCBsaW5lbGVuZ3RoPTkyMTYsIHBhZ2VzPTEKWyAgICAzLjQ5OTIwNF0gZWZp
ZmI6IHNjcm9sbGluZzogcmVkcmF3ClsgICAgMy40OTkyMDddIGVmaWZiOiBUcnVlY29sb3I6IHNp
emU9ODo4Ojg6OCwgc2hpZnQ9MjQ6MTY6ODowClsgICAgMy40OTkzMTJdIENvbnNvbGU6IHN3aXRj
aGluZyB0byBjb2xvdXIgZnJhbWUgYnVmZmVyIGRldmljZSAyODJ4OTQKWyAgICAzLjUwMDYxM10g
ZmIwOiBFRkkgVkdBIGZyYW1lIGJ1ZmZlciBkZXZpY2UKWyAgICAzLjUwMjEwMF0gQUNQSTogQUM6
IEFDIEFkYXB0ZXIgW0FDQURdIChvbi1saW5lKQpbICAgIDMuNTAyMTgzXSBpbnB1dDogTGlkIFN3
aXRjaCBhcyAvZGV2aWNlcy9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQTA4OjAwL2Rldmlj
ZTo0NC9QTlAwQzA5OjAwL1BOUDBDMEQ6MDAvaW5wdXQvaW5wdXQwClsgICAgMy41MDIyMzVdIEFD
UEk6IGJ1dHRvbjogTGlkIFN3aXRjaCBbTElEMF0KWyAgICAzLjUwMjI3OV0gaW5wdXQ6IFBvd2Vy
IEJ1dHRvbiBhcyAvZGV2aWNlcy9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQzBDOjAwL2lu
cHV0L2lucHV0MQpbICAgIDMuNTAyMzE0XSBBQ1BJOiBidXR0b246IFBvd2VyIEJ1dHRvbiBbUFdS
Ql0KWyAgICAzLjUwMjM3OV0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAg
bm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTAyNDE1XSBBQ1BJOiBcX1NCXy5QTFRG
LkMwMDA6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwMjUwNl0gW0Zpcm13YXJlIEJ1Z106
IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMu
NTAyNTYxXSBBQ1BJOiBcX1NCXy5QTFRGLkMwMDE6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAz
LjUwMjY1Ml0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBv
cnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTAyNzA2XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMDI6IEZv
dW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwMjgwMF0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdB
SVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTAyODU5XSBB
Q1BJOiBcX1NCXy5QTFRGLkMwMDM6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwMjk0OV0g
W0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBI
VyAoMHgwKQpbICAgIDMuNTAzMDA0XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMDQ6IEZvdW5kIDMgaWRs
ZSBzdGF0ZXMKWyAgICAzLjUwMzA5MF0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0
ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTAzMTYwXSBBQ1BJOiBcX1NC
Xy5QTFRGLkMwMDU6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwMzI2OV0gW0Zpcm13YXJl
IEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpb
ICAgIDMuNTAzMzI3XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMDY6IEZvdW5kIDMgaWRsZSBzdGF0ZXMK
WyAgICAzLjUwMzQyOF0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90
IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTAzNDgzXSBBQ1BJOiBcX1NCXy5QTFRGLkMw
MDc6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwMzU4NF0gW0Zpcm13YXJlIEJ1Z106IEFD
UEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTAz
NjM0XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMDg6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUw
MzczNl0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRl
ZCBieSBIVyAoMHgwKQpbICAgIDMuNTAzNzg5XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMDk6IEZvdW5k
IDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwMzg5NV0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQg
Qy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTAzOTQ4XSBBQ1BJ
OiBcX1NCXy5QTFRGLkMwMEE6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwNDA1MF0gW0Zp
cm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAo
MHgwKQpbICAgIDMuNTA0MTAxXSBBQ1BJOiBcX1NCXy5QTFRGLkMwMEI6IEZvdW5kIDMgaWRsZSBz
dGF0ZXMKWyAgICAzLjUwNDIwM10gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAw
eDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTA0MjU2XSBBQ1BJOiBcX1NCXy5Q
TFRGLkMwMEM6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwNDM1N10gW0Zpcm13YXJlIEJ1
Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAg
IDMuNTA0NDA5XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMEQ6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAg
ICAzLjUwNDUxMF0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1
cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTA0NTYzXSBBQ1BJOiBcX1NCXy5QTFRGLkMwMEU6
IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwNDY2MF0gW0Zpcm13YXJlIEJ1Z106IEFDUEkg
TVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDMuNTA0NzA5
XSBBQ1BJOiBcX1NCXy5QTFRGLkMwMEY6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAzLjUwNTEx
OF0gdGhlcm1hbCBMTlhUSEVSTTowMDogcmVnaXN0ZXJlZCBhcyB0aGVybWFsX3pvbmUwClsgICAg
My41MDUxNTJdIEFDUEk6IHRoZXJtYWw6IFRoZXJtYWwgWm9uZSBbVFowMF0gKDM4IEMpClsgICAg
My41MDUzODFdIHRoZXJtYWwgTE5YVEhFUk06MDE6IHJlZ2lzdGVyZWQgYXMgdGhlcm1hbF96b25l
MQpbICAgIDMuNTA1NDE0XSBBQ1BJOiB0aGVybWFsOiBUaGVybWFsIFpvbmUgW1RaMDFdICg0MSBD
KQpbICAgIDMuNTA1NjYzXSB0aGVybWFsIExOWFRIRVJNOjAyOiByZWdpc3RlcmVkIGFzIHRoZXJt
YWxfem9uZTIKWyAgICAzLjUwNTY5NV0gQUNQSTogdGhlcm1hbDogVGhlcm1hbCBab25lIFtUWjAy
XSAoMzUgQykKWyAgICAzLjUwNTkyOF0gdGhlcm1hbCBMTlhUSEVSTTowMzogcmVnaXN0ZXJlZCBh
cyB0aGVybWFsX3pvbmUzClsgICAgMy41MDU5NjBdIEFDUEk6IHRoZXJtYWw6IFRoZXJtYWwgWm9u
ZSBbVFowM10gKDgwIEMpClsgICAgMy41MDcxODBdIFNlcmlhbDogODI1MC8xNjU1MCBkcml2ZXIs
IDMyIHBvcnRzLCBJUlEgc2hhcmluZyBlbmFibGVkClsgICAgMy41MDc3NDZdIEFDUEk6IGJhdHRl
cnk6IFNsb3QgW0JBVDFdIChiYXR0ZXJ5IHByZXNlbnQpClsgICAgMy41MDk2MzBdIGhwZXRfYWNw
aV9hZGQ6IG5vIGFkZHJlc3Mgb3IgaXJxcyBpbiBfQ1JTClsgICAgMy41MDk2OTddIE5vbi12b2xh
dGlsZSBtZW1vcnkgZHJpdmVyIHYxLjMKWyAgICAzLjUwOTcyNl0gTGludXggYWdwZ2FydCBpbnRl
cmZhY2UgdjAuMTAzClsgICAgMy41MTA1NzZdIEFDUEk6IGJ1cyB0eXBlIGRybV9jb25uZWN0b3Ig
cmVnaXN0ZXJlZApbICAgIDMuNTEzNDUxXSBtZGlvX2J1cyBmaXhlZC0wOiB1c2luZyBsb29rdXAg
dGFibGVzIGZvciBHUElPIGxvb2t1cApbICAgIDMuNTEzNDU2XSBtZGlvX2J1cyBmaXhlZC0wOiBO
byBHUElPIGNvbnN1bWVyIHJlc2V0IGZvdW5kClsgICAgMy41MTM4ODZdIHhlbl9yZWdpc3Rlcl9n
c2k6IHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDM3IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAg
My41MTM4ODhdIHhlbl9yZWdpc3Rlcl9waXJxOiBiZWZvcmUgeGVuX2lycV9mcm9tX2dzaTogZ3Np
IDM3IHRyaWdnZXJpbmcgMCBzZXRfcGlycSAxClsgICAgMy41MTM4OTFdIHhlbl9yZWdpc3Rlcl9n
c2k6IEJlZm9yZSBIWVBFUlZJU09SX3BoeXNkZXZfb3AgIHNldHVwX2dzaS5nc2k6IDM3LCBzZXR1
cF9nc2kudHJpZ2dlcmluZzogMSwgc2V0dXBfZ3NpLnBvbGFyaXR5OiAxClsgICAgMy41MTM4OTRd
IEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MzcKWyAgICAzLjUxNDA4Ml0geGhjaV9oY2QgMDAwMDpj
MTowMC4zOiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDMuNTE0MTM1XSB4aGNpX2hjZCAwMDAw
OmMxOjAwLjM6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgMQpb
ICAgIDMuNTE0NjIxXSB4aGNpX2hjZCAwMDAwOmMxOjAwLjM6IGhjYyBwYXJhbXMgMHgwMTI4ZmZj
NSBoY2kgdmVyc2lvbiAweDEyMCBxdWlya3MgMHgwMDAwMDAwMjAwMDAwNDEwClsgICAgMy41MTUw
MDVdIHhoY2lfaGNkIDAwMDA6YzE6MDAuMzogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAzLjUx
NTA1NF0geGhjaV9oY2QgMDAwMDpjMTowMC4zOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3Np
Z25lZCBidXMgbnVtYmVyIDIKWyAgICAzLjUxNTA3NV0geGhjaV9oY2QgMDAwMDpjMTowMC4zOiBI
b3N0IHN1cHBvcnRzIFVTQiAzLjEgRW5oYW5jZWQgU3VwZXJTcGVlZApbICAgIDMuNTE1MTQyXSB1
c2IgdXNiMTogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0w
MDAyLCBiY2REZXZpY2U9IDYuMDYKWyAgICAzLjUxNTE2MV0gdXNiIHVzYjE6IE5ldyBVU0IgZGV2
aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xClsgICAgMy41MTUx
NzZdIHVzYiB1c2IxOiBQcm9kdWN0OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDMuNTE1MTg3
XSB1c2IgdXNiMTogTWFudWZhY3R1cmVyOiBMaW51eCA2LjYuN3hlbi1pcnEtZGJnLTErIHhoY2kt
aGNkClsgICAgMy41MTUyMDNdIHVzYiB1c2IxOiBTZXJpYWxOdW1iZXI6IDAwMDA6YzE6MDAuMwpb
ICAgIDMuNTE1MzI2XSBodWIgMS0wOjEuMDogVVNCIGh1YiBmb3VuZApbICAgIDMuNTE1MzY4XSBo
dWIgMS0wOjEuMDogNSBwb3J0cyBkZXRlY3RlZApbICAgIDMuNTIzMzE2XSB1c2IgdXNiMjogV2Ug
ZG9uJ3Qga25vdyB0aGUgYWxnb3JpdGhtcyBmb3IgTFBNIGZvciB0aGlzIGhvc3QsIGRpc2FibGlu
ZyBMUE0uClsgICAgMy41MjMzNzFdIHVzYiB1c2IyOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRW
ZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDMsIGJjZERldmljZT0gNi4wNgpbICAgIDMuNTIzMzk5
XSB1c2IgdXNiMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9MiwgU2Vy
aWFsTnVtYmVyPTEKWyAgICAzLjUyMzk3N10gdXNiIHVzYjI6IFByb2R1Y3Q6IHhIQ0kgSG9zdCBD
b250cm9sbGVyClsgICAgMy41MjQ1NDVdIHVzYiB1c2IyOiBNYW51ZmFjdHVyZXI6IExpbnV4IDYu
Ni43eGVuLWlycS1kYmctMSsgeGhjaS1oY2QKWyAgICAzLjUyNTEyMV0gdXNiIHVzYjI6IFNlcmlh
bE51bWJlcjogMDAwMDpjMTowMC4zClsgICAgMy41MjU3NzZdIGh1YiAyLTA6MS4wOiBVU0IgaHVi
IGZvdW5kClsgICAgMy41MjYzNzhdIGh1YiAyLTA6MS4wOiAyIHBvcnRzIGRldGVjdGVkClsgICAg
My41MzAzODhdIHhlbl9yZWdpc3Rlcl9nc2k6IHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDM4IHRyaWdn
ZXJpbmcgMCBwb2xhcml0eSAxClsgICAgMy41MzAzOTBdIHhlbl9yZWdpc3Rlcl9waXJxOiBiZWZv
cmUgeGVuX2lycV9mcm9tX2dzaTogZ3NpIDM4IHRyaWdnZXJpbmcgMCBzZXRfcGlycSAxClsgICAg
My41MzAzOTNdIHhlbl9yZWdpc3Rlcl9nc2k6IEJlZm9yZSBIWVBFUlZJU09SX3BoeXNkZXZfb3Ag
IHNldHVwX2dzaS5nc2k6IDM4LCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSwgc2V0dXBfZ3NpLnBv
bGFyaXR5OiAxClsgICAgMy41MzAzOTZdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MzgKWyAgICAz
LjUzMTE1NF0geGhjaV9oY2QgMDAwMDpjMTowMC40OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAg
IDMuNTMxNzUwXSB4aGNpX2hjZCAwMDAwOmMxOjAwLjQ6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQs
IGFzc2lnbmVkIGJ1cyBudW1iZXIgMwpbICAgIDMuNTMyNjkwXSB4aGNpX2hjZCAwMDAwOmMxOjAw
LjQ6IGhjYyBwYXJhbXMgMHgwMTEwZmZjNSBoY2kgdmVyc2lvbiAweDEyMCBxdWlya3MgMHgwMDAw
MDAwMjAwMDAwNDEwClsgICAgMy41MzM1OThdIHhoY2lfaGNkIDAwMDA6YzE6MDAuNDogeEhDSSBI
b3N0IENvbnRyb2xsZXIKWyAgICAzLjUzNDIzMl0geGhjaV9oY2QgMDAwMDpjMTowMC40OiBuZXcg
VVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDQKWyAgICAzLjUzNDg0NV0g
eGhjaV9oY2QgMDAwMDpjMTowMC40OiBIb3N0IHN1cHBvcnRzIFVTQiAzLjEgRW5oYW5jZWQgU3Vw
ZXJTcGVlZApbICAgIDMuNTM1NTUyXSB1c2IgdXNiMzogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlk
VmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAyLCBiY2REZXZpY2U9IDYuMDYKWyAgICAzLjUzNjc0
Nl0gdXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNl
cmlhbE51bWJlcj0xClsgICAgMy41MzczMDBdIHVzYiB1c2IzOiBQcm9kdWN0OiB4SENJIEhvc3Qg
Q29udHJvbGxlcgpbICAgIDMuNTM3ODYyXSB1c2IgdXNiMzogTWFudWZhY3R1cmVyOiBMaW51eCA2
LjYuN3hlbi1pcnEtZGJnLTErIHhoY2ktaGNkClsgICAgMy41Mzg0MTRdIHVzYiB1c2IzOiBTZXJp
YWxOdW1iZXI6IDAwMDA6YzE6MDAuNApbICAgIDMuNTM5MTA3XSBodWIgMy0wOjEuMDogVVNCIGh1
YiBmb3VuZApbICAgIDMuNTM5Njc2XSBodWIgMy0wOjEuMDogMSBwb3J0IGRldGVjdGVkClsgICAg
My41NDE4ODNdIHVzYiB1c2I0OiBXZSBkb24ndCBrbm93IHRoZSBhbGdvcml0aG1zIGZvciBMUE0g
Zm9yIHRoaXMgaG9zdCwgZGlzYWJsaW5nIExQTS4KWyAgICAzLjU0MjQ3N10gdXNiIHVzYjQ6IE5l
dyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMywgYmNkRGV2
aWNlPSA2LjA2ClsgICAgMy41NDMwMzVdIHVzYiB1c2I0OiBOZXcgVVNCIGRldmljZSBzdHJpbmdz
OiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MQpbICAgIDMuNTQzNTc0XSB1c2IgdXNi
NDogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAzLjU0NDExNV0gdXNiIHVzYjQ6
IE1hbnVmYWN0dXJlcjogTGludXggNi42Ljd4ZW4taXJxLWRiZy0xKyB4aGNpLWhjZApbICAgIDMu
NTQ0NjUxXSB1c2IgdXNiNDogU2VyaWFsTnVtYmVyOiAwMDAwOmMxOjAwLjQKWyAgICAzLjU0NTMy
OF0gaHViIDQtMDoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAzLjU0NTg5MF0gaHViIDQtMDoxLjA6
IDEgcG9ydCBkZXRlY3RlZApbICAgIDMuNTQ4MjUxXSB4ZW5fcmVnaXN0ZXJfZ3NpOiB4ZW46IHJl
Z2lzdGVyaW5nIGdzaSA0NiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgIDMuNTQ4MjUzXSB4
ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSA0NiB0cmlnZ2Vy
aW5nIDAgc2V0X3BpcnEgMQpbICAgIDMuNTQ4MjU2XSB4ZW5fcmVnaXN0ZXJfZ3NpOiBCZWZvcmUg
SFlQRVJWSVNPUl9waHlzZGV2X29wICBzZXR1cF9nc2kuZ3NpOiA0Niwgc2V0dXBfZ3NpLnRyaWdn
ZXJpbmc6IDEsIHNldHVwX2dzaS5wb2xhcml0eTogMQpbICAgIDMuNTQ4MjU5XSBBbHJlYWR5IHNl
dHVwIHRoZSBHU0kgOjQ2ClsgICAgMy41NDg5NjJdIHhoY2lfaGNkIDAwMDA6YzM6MDAuMzogeEhD
SSBIb3N0IENvbnRyb2xsZXIKWyAgICAzLjU0OTYwNF0geGhjaV9oY2QgMDAwMDpjMzowMC4zOiBu
ZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDUKWyAgICAzLjU1MDUx
M10geGhjaV9oY2QgMDAwMDpjMzowMC4zOiBoY2MgcGFyYW1zIDB4MDExMGZmYzUgaGNpIHZlcnNp
b24gMHgxMjAgcXVpcmtzIDB4MDAwMDAwMDIwMDAwMDQxMApbICAgIDMuNTUxNjY1XSB4aGNpX2hj
ZCAwMDAwOmMzOjAwLjM6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMy41NTIyNTddIHhoY2lf
aGNkIDAwMDA6YzM6MDAuMzogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51
bWJlciA2ClsgICAgMy41NTI4MTRdIHhoY2lfaGNkIDAwMDA6YzM6MDAuMzogSG9zdCBzdXBwb3J0
cyBVU0IgMy4xIEVuaGFuY2VkIFN1cGVyU3BlZWQKWyAgICAzLjU1MzM3MV0gdXNiIHVzYjU6IE5l
dyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMiwgYmNkRGV2
aWNlPSA2LjA2ClsgICAgMy41NTM5MTBdIHVzYiB1c2I1OiBOZXcgVVNCIGRldmljZSBzdHJpbmdz
OiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MQpbICAgIDMuNTU0NDQwXSB1c2IgdXNi
NTogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAzLjU1NDk3MF0gdXNiIHVzYjU6
IE1hbnVmYWN0dXJlcjogTGludXggNi42Ljd4ZW4taXJxLWRiZy0xKyB4aGNpLWhjZApbICAgIDMu
NTU1NDg1XSB1c2IgdXNiNTogU2VyaWFsTnVtYmVyOiAwMDAwOmMzOjAwLjMKWyAgICAzLjU1NjIx
M10gaHViIDUtMDoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAzLjU1Njc0NV0gaHViIDUtMDoxLjA6
IDEgcG9ydCBkZXRlY3RlZApbICAgIDMuNTU4OTUxXSB1c2IgdXNiNjogV2UgZG9uJ3Qga25vdyB0
aGUgYWxnb3JpdGhtcyBmb3IgTFBNIGZvciB0aGlzIGhvc3QsIGRpc2FibGluZyBMUE0uClsgICAg
My41NTk1MjhdIHVzYiB1c2I2OiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2Yiwg
aWRQcm9kdWN0PTAwMDMsIGJjZERldmljZT0gNi4wNgpbICAgIDMuNTYwMDU2XSB1c2IgdXNiNjog
TmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTEK
WyAgICAzLjU2MDU3Ml0gdXNiIHVzYjY6IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsg
ICAgMy41NjEwODddIHVzYiB1c2I2OiBNYW51ZmFjdHVyZXI6IExpbnV4IDYuNi43eGVuLWlycS1k
YmctMSsgeGhjaS1oY2QKWyAgICAzLjU2MTU5M10gdXNiIHVzYjY6IFNlcmlhbE51bWJlcjogMDAw
MDpjMzowMC4zClsgICAgMy41NjIzMDRdIGh1YiA2LTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAg
My41NjI4NjZdIGh1YiA2LTA6MS4wOiAxIHBvcnQgZGV0ZWN0ZWQKWyAgICAzLjU2NTczMV0geGVu
X3JlZ2lzdGVyX2dzaTogeGVuOiByZWdpc3RlcmluZyBnc2kgNDcgdHJpZ2dlcmluZyAwIHBvbGFy
aXR5IDEKWyAgICAzLjU2NTczM10geGVuX3JlZ2lzdGVyX3BpcnE6IGJlZm9yZSB4ZW5faXJxX2Zy
b21fZ3NpOiBnc2kgNDcgdHJpZ2dlcmluZyAwIHNldF9waXJxIDEKWyAgICAzLjU2NTczNl0geGVu
X3JlZ2lzdGVyX2dzaTogQmVmb3JlIEhZUEVSVklTT1JfcGh5c2Rldl9vcCAgc2V0dXBfZ3NpLmdz
aTogNDcsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLCBzZXR1cF9nc2kucG9sYXJpdHk6IDEKWyAg
ICAzLjU2NTczOV0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDo0NwpbICAgIDMuNTY2NDI2XSB4aGNp
X2hjZCAwMDAwOmMzOjAwLjQ6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMy41NjcwNTJdIHho
Y2lfaGNkIDAwMDA6YzM6MDAuNDogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVz
IG51bWJlciA3ClsgICAgMy41Njc4ODJdIHhoY2lfaGNkIDAwMDA6YzM6MDAuNDogaGNjIHBhcmFt
cyAweDAxMTBmZmM1IGhjaSB2ZXJzaW9uIDB4MTIwIHF1aXJrcyAweDAwMDAwMDAyMDAwMDA0MTAK
WyAgICAzLjU2OTAxNV0geGhjaV9oY2QgMDAwMDpjMzowMC40OiB4SENJIEhvc3QgQ29udHJvbGxl
cgpbICAgIDMuNTY5NjcxXSB4aGNpX2hjZCAwMDAwOmMzOjAwLjQ6IG5ldyBVU0IgYnVzIHJlZ2lz
dGVyZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgOApbICAgIDMuNTcwMjI0XSB4aGNpX2hjZCAwMDAw
OmMzOjAwLjQ6IEhvc3Qgc3VwcG9ydHMgVVNCIDMuMSBFbmhhbmNlZCBTdXBlclNwZWVkClsgICAg
My41NzA3ODFdIHVzYiB1c2I3OiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2Yiwg
aWRQcm9kdWN0PTAwMDIsIGJjZERldmljZT0gNi4wNgpbICAgIDMuNTcxMjc5XSB1c2IgdXNiNzog
TmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTEK
WyAgICAzLjU3MTc3MV0gdXNiIHVzYjc6IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsg
ICAgMy41NzIyNThdIHVzYiB1c2I3OiBNYW51ZmFjdHVyZXI6IExpbnV4IDYuNi43eGVuLWlycS1k
YmctMSsgeGhjaS1oY2QKWyAgICAzLjU3Mjc0N10gdXNiIHVzYjc6IFNlcmlhbE51bWJlcjogMDAw
MDpjMzowMC40ClsgICAgMy41NzM0NDNdIGh1YiA3LTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAg
My41NzM5NjhdIGh1YiA3LTA6MS4wOiAxIHBvcnQgZGV0ZWN0ZWQKWyAgICAzLjU3NjE0OV0gdXNi
IHVzYjg6IFdlIGRvbid0IGtub3cgdGhlIGFsZ29yaXRobXMgZm9yIExQTSBmb3IgdGhpcyBob3N0
LCBkaXNhYmxpbmcgTFBNLgpbICAgIDMuNTc2NzA0XSB1c2IgdXNiODogTmV3IFVTQiBkZXZpY2Ug
Zm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAzLCBiY2REZXZpY2U9IDYuMDYKWyAg
ICAzLjU3NzIwN10gdXNiIHVzYjg6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9k
dWN0PTIsIFNlcmlhbE51bWJlcj0xClsgICAgMy41Nzc2OTZdIHVzYiB1c2I4OiBQcm9kdWN0OiB4
SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDMuNTc4MTgwXSB1c2IgdXNiODogTWFudWZhY3R1cmVy
OiBMaW51eCA2LjYuN3hlbi1pcnEtZGJnLTErIHhoY2ktaGNkClsgICAgMy41Nzg2NjVdIHVzYiB1
c2I4OiBTZXJpYWxOdW1iZXI6IDAwMDA6YzM6MDAuNApbICAgIDMuNTc5Mzg0XSBodWIgOC0wOjEu
MDogVVNCIGh1YiBmb3VuZApbICAgIDMuNTc5OTMwXSBodWIgOC0wOjEuMDogMSBwb3J0IGRldGVj
dGVkClsgICAgMy41ODI3NjRdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2
ZXIgdXNic2VyaWFsX2dlbmVyaWMKWyAgICAzLjU4MzI4NF0gdXNic2VyaWFsOiBVU0IgU2VyaWFs
IHN1cHBvcnQgcmVnaXN0ZXJlZCBmb3IgZ2VuZXJpYwpbICAgIDMuNTgzODI4XSBpODA0MjogUE5Q
OiBQUy8yIENvbnRyb2xsZXIgW1BOUDAzMDM6S0JDMF0gYXQgMHg2MCwweDY0IGlycSAxClsgICAg
My41ODQzNDVdIGk4MDQyOiBQTlA6IFBTLzIgYXBwZWFycyB0byBoYXZlIEFVWCBwb3J0IGRpc2Fi
bGVkLCBpZiB0aGlzIGlzIGluY29ycmVjdCBwbGVhc2UgYm9vdCB3aXRoIGk4MDQyLm5vcG5wClsg
ICAgMy41ODc1MzJdIGk4MDQyOiBXYXJuaW5nOiBLZXlsb2NrIGFjdGl2ZQpbICAgIDMuNTg4MzI4
XSBzZXJpbzogaTgwNDIgS0JEIHBvcnQgYXQgMHg2MCwweDY0IGlycSAxClsgICAgMy41ODkwMjBd
IG1vdXNlZGV2OiBQUy8yIG1vdXNlIGRldmljZSBjb21tb24gZm9yIGFsbCBtaWNlClsgICAgMy41
ODk4NzldIHJ0Y19jbW9zIDAwOjAxOiBSVEMgY2FuIHdha2UgZnJvbSBTNApbICAgIDMuNTkwODE2
XSBydGNfY21vcyAwMDowMTogcmVnaXN0ZXJlZCBhcyBydGMwClsgICAgMy41OTEzODhdIHJ0Y19j
bW9zIDAwOjAxOiBzZXR0aW5nIHN5c3RlbSBjbG9jayB0byAyMDIzLTEyLTIwVDE2OjIwOjUwIFVU
QyAoMTcwMzA4OTI1MCkKWyAgICAzLjU5MTk0Nl0gcnRjX2Ntb3MgMDA6MDE6IHVzaW5nIEFDUEkg
J1xfU0IuUENJMC5MUEMwLlJUQycgZm9yICd3cCcgR1BJTyBsb29rdXAKWyAgICAzLjU5MTk1M10g
YWNwaSBQTlAwQjAwOjAwOiBHUElPOiBsb29raW5nIHVwIHdwLWdwaW9zClsgICAgMy41OTE5NTVd
IGFjcGkgUE5QMEIwMDowMDogR1BJTzogbG9va2luZyB1cCB3cC1ncGlvClsgICAgMy41OTE5NTdd
IHJ0Y19jbW9zIDAwOjAxOiB1c2luZyBsb29rdXAgdGFibGVzIGZvciBHUElPIGxvb2t1cApbICAg
IDMuNTkxOTU4XSBydGNfY21vcyAwMDowMTogTm8gR1BJTyBjb25zdW1lciB3cCBmb3VuZApbICAg
IDMuNTkxOTk4XSBydGNfY21vcyAwMDowMTogYWxhcm1zIHVwIHRvIG9uZSBtb250aCwgMTE0IGJ5
dGVzIG52cmFtClsgICAgMy41OTI1MzddIGRldmljZS1tYXBwZXI6IGNvcmU6IENPTkZJR19JTUFf
RElTQUJMRV9IVEFCTEUgaXMgZGlzYWJsZWQuIER1cGxpY2F0ZSBJTUEgbWVhc3VyZW1lbnRzIHdp
bGwgbm90IGJlIHJlY29yZGVkIGluIHRoZSBJTUEgbG9nLgpbICAgIDMuNTkzMDcxXSBkZXZpY2Ut
bWFwcGVyOiB1ZXZlbnQ6IHZlcnNpb24gMS4wLjMKWyAgICAzLjU5MzcwMV0gZGV2aWNlLW1hcHBl
cjogaW9jdGw6IDQuNDguMC1pb2N0bCAoMjAyMy0wMy0wMSkgaW5pdGlhbGlzZWQ6IGRtLWRldmVs
QHJlZGhhdC5jb20KWyAgICAzLjU5NDQ0NF0gYW1kX3BzdGF0ZTogZHJpdmVyIGxvYWQgaXMgZGlz
YWJsZWQsIGJvb3Qgd2l0aCBzcGVjaWZpYyBtb2RlIHRvIGVuYWJsZSB0aGlzClsgICAgMy41OTU2
MDVdIGhpZDogcmF3IEhJRCBldmVudHMgZHJpdmVyIChDKSBKaXJpIEtvc2luYQpbICAgIDMuNTk2
MTk2XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYmhpZApbICAg
IDMuNTk2NzQyXSB1c2JoaWQ6IFVTQiBISUQgY29yZSBkcml2ZXIKWyAgICAzLjU5NzQyN10gZHJv
cF9tb25pdG9yOiBJbml0aWFsaXppbmcgbmV0d29yayBkcm9wIG1vbml0b3Igc2VydmljZQpbICAg
IDMuNjAwMTM5XSBpbnB1dDogQVQgVHJhbnNsYXRlZCBTZXQgMiBrZXlib2FyZCBhcyAvZGV2aWNl
cy9wbGF0Zm9ybS9pODA0Mi9zZXJpbzAvaW5wdXQvaW5wdXQyClsgICAgMy42MDg0MzNdIEluaXRp
YWxpemluZyBYRlJNIG5ldGxpbmsgc29ja2V0ClsgICAgMy42MDkwMzNdIE5FVDogUmVnaXN0ZXJl
ZCBQRl9JTkVUNiBwcm90b2NvbCBmYW1pbHkKWyAgICAzLjYxNjcwOV0gU2VnbWVudCBSb3V0aW5n
IHdpdGggSVB2NgpbICAgIDMuNjE3MzE4XSBSUEwgU2VnbWVudCBSb3V0aW5nIHdpdGggSVB2Ngpb
ICAgIDMuNjE3ODUwXSBJbi1zaXR1IE9BTSAoSU9BTSkgd2l0aCBJUHY2ClsgICAgMy42MTg0MDhd
IG1pcDY6IE1vYmlsZSBJUHY2ClsgICAgMy42MTg5NzddIE5FVDogUmVnaXN0ZXJlZCBQRl9QQUNL
RVQgcHJvdG9jb2wgZmFtaWx5ClsgICAgMy42MjA3NzldIElQSSBzaG9ydGhhbmQgYnJvYWRjYXN0
OiBlbmFibGVkClsgICAgMy42MjEzNzJdIEFWWDIgdmVyc2lvbiBvZiBnY21fZW5jL2RlYyBlbmdh
Z2VkLgpbICAgIDMuNjIyNTM3XSBBRVMgQ1RSIG1vZGUgYnk4IG9wdGltaXphdGlvbiBlbmFibGVk
ClsgICAgMy42MjUxNzddIHNjaGVkX2Nsb2NrOiBNYXJraW5nIHN0YWJsZSAoMzU5MDAwMTc4NCwg
MzQ4MDM5NzApLT4oMzYyOTY2NzE2MywgLTQ4NjE0MDkpClsgICAgMy42MjYxNDddIHJlZ2lzdGVy
ZWQgdGFza3N0YXRzIHZlcnNpb24gMQpbICAgIDMuNjI5ODU4XSBMb2FkaW5nIGNvbXBpbGVkLWlu
IFguNTA5IGNlcnRpZmljYXRlcwpbICAgIDMuNjM3MDM5XSBMb2FkZWQgWC41MDkgY2VydCAnQnVp
bGQgdGltZSBhdXRvZ2VuZXJhdGVkIGtlcm5lbCBrZXk6IDNmNmE1N2ZiM2YzODk4YjdiZTljODJj
MTgyMGU0ZjkxMjNlOGUwN2YnClsgICAgMy42NDAyNDBdIHBhZ2Vfb3duZXIgaXMgZGlzYWJsZWQK
WyAgICAzLjY0MDk3N10gS2V5IHR5cGUgLmZzY3J5cHQgcmVnaXN0ZXJlZApbICAgIDMuNjQyMDQx
XSBLZXkgdHlwZSBmc2NyeXB0LXByb3Zpc2lvbmluZyByZWdpc3RlcmVkClsgICAgMy42NDMyMzBd
IEJ0cmZzIGxvYWRlZCwgem9uZWQ9eWVzLCBmc3Zlcml0eT15ZXMKWyAgICAzLjY0MzgzM10gS2V5
IHR5cGUgYmlnX2tleSByZWdpc3RlcmVkClsgICAgMy42NTAzMDFdIEtleSB0eXBlIGVuY3J5cHRl
ZCByZWdpc3RlcmVkClsgICAgMy42NTQxODVdIGludGVncml0eTogTG9hZGluZyBYLjUwOSBjZXJ0
aWZpY2F0ZTogVUVGSTpkYgpbICAgIDMuNjU0ODY1XSBpbnRlZ3JpdHk6IExvYWRlZCBYLjUwOSBj
ZXJ0ICdNaWNyb3NvZnQgV2luZG93cyBQcm9kdWN0aW9uIFBDQSAyMDExOiBhOTI5MDIzOThlMTZj
NDk3NzhjZDkwZjk5ZTRmOWFlMTdjNTVhZjUzJwpbICAgIDMuNjU1NDA4XSBpbnRlZ3JpdHk6IExv
YWRpbmcgWC41MDkgY2VydGlmaWNhdGU6IFVFRkk6ZGIKWyAgICAzLjY1NTk2OV0gaW50ZWdyaXR5
OiBMb2FkZWQgWC41MDkgY2VydCAnTWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMTog
MTNhZGJmNDMwOWJkODI3MDljOGNkNTRmMzE2ZWQ1MjI5ODhhMWJkNCcKWyAgICAzLjY1NjUxN10g
aW50ZWdyaXR5OiBMb2FkaW5nIFguNTA5IGNlcnRpZmljYXRlOiBVRUZJOmRiClsgICAgMy42NTcw
ODddIGludGVncml0eTogTG9hZGVkIFguNTA5IGNlcnQgJ2ZyYW1lLndvcmstTGFwdG9wQU1EREI6
IDAyJwpbICAgIDMuNjY4ODA3XSBpbWE6IE5vIFRQTSBjaGlwIGZvdW5kLCBhY3RpdmF0aW5nIFRQ
TS1ieXBhc3MhClsgICAgMy42Njk0MDVdIExvYWRpbmcgY29tcGlsZWQtaW4gbW9kdWxlIFguNTA5
IGNlcnRpZmljYXRlcwpbICAgIDMuNjcwMjU2XSBMb2FkZWQgWC41MDkgY2VydCAnQnVpbGQgdGlt
ZSBhdXRvZ2VuZXJhdGVkIGtlcm5lbCBrZXk6IDNmNmE1N2ZiM2YzODk4YjdiZTljODJjMTgyMGU0
ZjkxMjNlOGUwN2YnClsgICAgMy42NzA4NTFdIGltYTogQWxsb2NhdGVkIGhhc2ggYWxnb3JpdGht
OiBzaGEyNTYKWyAgICAzLjY3MTQxNF0gaW1hOiBObyBhcmNoaXRlY3R1cmUgcG9saWNpZXMgZm91
bmQKWyAgICAzLjY3MTk5NF0gZXZtOiBJbml0aWFsaXNpbmcgRVZNIGV4dGVuZGVkIGF0dHJpYnV0
ZXM6ClsgICAgMy42NzI1NzZdIGV2bTogc2VjdXJpdHkuc2VsaW51eApbICAgIDMuNjczMTQ4XSBl
dm06IHNlY3VyaXR5LlNNQUNLNjQgKGRpc2FibGVkKQpbICAgIDMuNjczNzM0XSBldm06IHNlY3Vy
aXR5LlNNQUNLNjRFWEVDIChkaXNhYmxlZCkKWyAgICAzLjY3NDMwNl0gZXZtOiBzZWN1cml0eS5T
TUFDSzY0VFJBTlNNVVRFIChkaXNhYmxlZCkKWyAgICAzLjY3NDg3OV0gZXZtOiBzZWN1cml0eS5T
TUFDSzY0TU1BUCAoZGlzYWJsZWQpClsgICAgMy42NzU0MjldIGV2bTogc2VjdXJpdHkuYXBwYXJt
b3IgKGRpc2FibGVkKQpbICAgIDMuNjc1OTg4XSBldm06IHNlY3VyaXR5LmltYQpbICAgIDMuNjc2
NTMzXSBldm06IHNlY3VyaXR5LmNhcGFiaWxpdHkKWyAgICAzLjY3NzA3OF0gZXZtOiBITUFDIGF0
dHJzOiAweDEKWyAgICAzLjczOTQxNV0gYWxnOiBObyB0ZXN0IGZvciA4NDIgKDg0Mi1zY29tcCkK
WyAgICAzLjczOTk4OF0gYWxnOiBObyB0ZXN0IGZvciA4NDIgKDg0Mi1nZW5lcmljKQpbICAgIDMu
NzY3ODc0XSB1c2IgMS0xOiBuZXcgZnVsbC1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciAyIHVzaW5n
IHhoY2lfaGNkClsgICAgMy44MTQ5MTFdIHVzYiA3LTE6IG5ldyBoaWdoLXNwZWVkIFVTQiBkZXZp
Y2UgbnVtYmVyIDIgdXNpbmcgeGhjaV9oY2QKWyAgICAzLjgxOTMyNV0gUE06ICAgTWFnaWMgbnVt
YmVyOiAzOjUwOTozMzgKWyAgICAzLjgxOTk0OV0gdGhlcm1hbCB0aGVybWFsX3pvbmUxOiBoYXNo
IG1hdGNoZXMKWyAgICAzLjgyMDUxN10gdHR5IHR0eTU5OiBoYXNoIG1hdGNoZXMKWyAgICAzLjgy
MTA3NV0gYWNwaSBBQ1BJMDAwNzowMDogaGFzaCBtYXRjaGVzClsgICAgMy44MjE2NDBdIG1lbW9y
eSBtZW1vcnkxODg6IGhhc2ggbWF0Y2hlcwpbICAgIDMuODI3MjUxXSBSQVM6IENvcnJlY3RhYmxl
IEVycm9ycyBjb2xsZWN0b3IgaW5pdGlhbGl6ZWQuClsgICAgMy44Mjc5NTldIGFtZF9ncGlvIEFN
REkwMDMwOjAwOiBmYWlsZWQgdG8gZW5hYmxlIHdha2UtdXAgaW50ZXJydXB0ClsgICAgMy44Mjg3
MjRdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBmYWlsZWQgdG8gZW5hYmxlIHdha2UtdXAgaW50ZXJy
dXB0ClsgICAgMy44MjkzNjZdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBmYWlsZWQgdG8gZW5hYmxl
IHdha2UtdXAgaW50ZXJydXB0ClsgICAgMy44Mjk5NjFdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBm
YWlsZWQgdG8gZW5hYmxlIHdha2UtdXAgaW50ZXJydXB0ClsgICAgMy44MzA1MzZdIGFtZF9ncGlv
IEFNREkwMDMwOjAwOiBmYWlsZWQgdG8gZW5hYmxlIHdha2UtdXAgaW50ZXJydXB0ClsgICAgMy44
MzExNjJdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBmYWlsZWQgdG8gZW5hYmxlIHdha2UtdXAgaW50
ZXJydXB0ClsgICAgMy44MzE3NzRdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBmYWlsZWQgdG8gZW5h
YmxlIHdha2UtdXAgaW50ZXJydXB0ClsgICAgMy44MzIzODBdIGFtZF9ncGlvIEFNREkwMDMwOjAw
OiBmYWlsZWQgdG8gZW5hYmxlIHdha2UtdXAgaW50ZXJydXB0ClsgICAgMy44MzI5MTRdIGNsazog
RGlzYWJsaW5nIHVudXNlZCBjbG9ja3MKWyAgICAzLjgzNDgzMl0gRnJlZWluZyB1bnVzZWQgZGVj
cnlwdGVkIG1lbW9yeTogMjAyOEsKWyAgICAzLjgzNjY3Nl0gRnJlZWluZyB1bnVzZWQga2VybmVs
IGltYWdlIChpbml0bWVtKSBtZW1vcnk6IDM5NDRLClsgICAgMy44MzcyODldIFdyaXRlIHByb3Rl
Y3RpbmcgdGhlIGtlcm5lbCByZWFkLW9ubHkgZGF0YTogMzQ4MTZrClsgICAgMy44NDgzOTddIEZy
ZWVpbmcgdW51c2VkIGtlcm5lbCBpbWFnZSAocm9kYXRhL2RhdGEgZ2FwKSBtZW1vcnk6IDE5MjhL
ClsgICAgMy45MjAxODJdIHVzYiAxLTE6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0w
NDZkLCBpZFByb2R1Y3Q9YzU0OCwgYmNkRGV2aWNlPSA1LjAxClsgICAgMy45MjEzMjZdIHVzYiAx
LTE6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJl
cj0wClsgICAgMy45MjIxMTNdIHVzYiAxLTE6IFByb2R1Y3Q6IFVTQiBSZWNlaXZlcgpbICAgIDMu
OTIyNjAyXSB1c2IgMS0xOiBNYW51ZmFjdHVyZXI6IExvZ2l0ZWNoClsgICAgMy45NDE2MTRdIGlu
cHV0OiBMb2dpdGVjaCBVU0IgUmVjZWl2ZXIgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAw
OjA4LjEvMDAwMDpjMTowMC4zL3VzYjEvMS0xLzEtMToxLjAvMDAwMzowNDZEOkM1NDguMDAwMS9p
bnB1dC9pbnB1dDMKWyAgICAzLjk5NDE3OV0gaGlkLWdlbmVyaWMgMDAwMzowNDZEOkM1NDguMDAw
MTogaW5wdXQsaGlkcmF3MDogVVNCIEhJRCB2MS4xMSBLZXlib2FyZCBbTG9naXRlY2ggVVNCIFJl
Y2VpdmVyXSBvbiB1c2ItMDAwMDpjMTowMC4zLTEvaW5wdXQwClsgICAgMy45OTk2NzldIGlucHV0
OiBMb2dpdGVjaCBVU0IgUmVjZWl2ZXIgTW91c2UgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAw
OjAwOjA4LjEvMDAwMDpjMTowMC4zL3VzYjEvMS0xLzEtMToxLjEvMDAwMzowNDZEOkM1NDguMDAw
Mi9pbnB1dC9pbnB1dDQKWyAgICA0LjAwMDQ2MV0gaW5wdXQ6IExvZ2l0ZWNoIFVTQiBSZWNlaXZl
ciBDb25zdW1lciBDb250cm9sIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAw
MDA6YzE6MDAuMy91c2IxLzEtMS8xLTE6MS4xLzAwMDM6MDQ2RDpDNTQ4LjAwMDIvaW5wdXQvaW5w
dXQ1ClsgICAgNC4wNTI5OTRdIGlucHV0OiBMb2dpdGVjaCBVU0IgUmVjZWl2ZXIgU3lzdGVtIENv
bnRyb2wgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDpjMTowMC4zL3Vz
YjEvMS0xLzEtMToxLjEvMDAwMzowNDZEOkM1NDguMDAwMi9pbnB1dC9pbnB1dDYKWyAgICA0LjA1
NDEwNl0gaGlkLWdlbmVyaWMgMDAwMzowNDZEOkM1NDguMDAwMjogaW5wdXQsaGlkcmF3MTogVVNC
IEhJRCB2MS4xMSBNb3VzZSBbTG9naXRlY2ggVVNCIFJlY2VpdmVyXSBvbiB1c2ItMDAwMDpjMTow
MC4zLTEvaW5wdXQxClsgICAgNC4wNTk1ODZdIGhpZC1nZW5lcmljIDAwMDM6MDQ2RDpDNTQ4LjAw
MDM6IGhpZGRldjk2LGhpZHJhdzI6IFVTQiBISUQgdjEuMTEgRGV2aWNlIFtMb2dpdGVjaCBVU0Ig
UmVjZWl2ZXJdIG9uIHVzYi0wMDAwOmMxOjAwLjMtMS9pbnB1dDIKWyAgICA0LjE3Mzg2N10gdXNi
IDEtNDogbmV3IGZ1bGwtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgMyB1c2luZyB4aGNpX2hjZApb
ICAgIDQuMzMxMTg4XSB1c2IgMS00OiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9Mjdj
NiwgaWRQcm9kdWN0PTYwOWMsIGJjZERldmljZT0gMS4wMApbICAgIDQuMzMyMzM3XSB1c2IgMS00
OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MSwgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9
MwpbICAgIDQuMzMyODU1XSB1c2IgMS00OiBQcm9kdWN0OiBHb29kaXggVVNCMi4wIE1JU0MKWyAg
ICA0LjMzMzM2M10gdXNiIDEtNDogTWFudWZhY3R1cmVyOiBHb29kaXggVGVjaG5vbG9neSBDby4s
IEx0ZC4KWyAgICA0LjMzMzg3MF0gdXNiIDEtNDogU2VyaWFsTnVtYmVyOiBVSURENUYwNEE3Ql9Y
WFhYX01PQ19CMApbICAgIDQuNDU1ODY4XSB1c2IgMS01OiBuZXcgaGlnaC1zcGVlZCBVU0IgZGV2
aWNlIG51bWJlciA0IHVzaW5nIHhoY2lfaGNkClsgICAgNC41ODY1MzhdIHVzYiAxLTU6IE5ldyBV
U0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0wZThkLCBpZFByb2R1Y3Q9ZTYxNiwgYmNkRGV2aWNl
PSAxLjAwClsgICAgNC41ODc3NDBdIHVzYiAxLTU6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1m
cj01LCBQcm9kdWN0PTYsIFNlcmlhbE51bWJlcj03ClsgICAgNC41ODgzMzRdIHVzYiAxLTU6IFBy
b2R1Y3Q6IFdpcmVsZXNzX0RldmljZQpbICAgIDQuNTg4ODM3XSB1c2IgMS01OiBNYW51ZmFjdHVy
ZXI6IE1lZGlhVGVrIEluYy4KWyAgICA0LjU4OTMzMV0gdXNiIDEtNTogU2VyaWFsTnVtYmVyOiAw
MDAwMDAwMDAKWyAgICA1LjE0MDAxMV0geDg2L21tOiBDaGVja2VkIFcrWCBtYXBwaW5nczogcGFz
c2VkLCBubyBXK1ggcGFnZXMgZm91bmQuClsgICAgNS4xNDA2NTFdIFJ1biAvaW5pdCBhcyBpbml0
IHByb2Nlc3MKWyAgICA1LjE0MTgzNF0gICB3aXRoIGFyZ3VtZW50czoKWyAgICA1LjE0MTgzOF0g
ICAgIC9pbml0ClsgICAgNS4xNDE4NDFdICAgICBwbGFjZWhvbGRlcgpbICAgIDUuMTQxODQ0XSAg
IHdpdGggZW52aXJvbm1lbnQ6ClsgICAgNS4xNDE4NDZdICAgICBIT01FPS8KWyAgICA1LjE0MTg0
OV0gICAgIFRFUk09bGludXgKWyAgICA1LjE2NzQ3NV0gc3lzdGVtZFsxXTogc3lzdGVtZCAyNTQu
Ny0xLmZjMzkgcnVubmluZyBpbiBzeXN0ZW0gbW9kZSAoK1BBTSArQVVESVQgK1NFTElOVVggLUFQ
UEFSTU9SICtJTUEgK1NNQUNLICtTRUNDT01QIC1HQ1JZUFQgK0dOVVRMUyArT1BFTlNTTCArQUNM
ICtCTEtJRCArQ1VSTCArRUxGVVRJTFMgK0ZJRE8yICtJRE4yIC1JRE4gLUlQVEMgK0tNT0QgK0xJ
QkNSWVBUU0VUVVAgK0xJQkZESVNLICtQQ1JFMiArUFdRVUFMSVRZICtQMTFLSVQgK1FSRU5DT0RF
ICtUUE0yICtCWklQMiArTFo0ICtYWiArWkxJQiArWlNURCArQlBGX0ZSQU1FV09SSyArWEtCQ09N
TU9OICtVVE1QICtTWVNWSU5JVCBkZWZhdWx0LWhpZXJhcmNoeT11bmlmaWVkKQpbICAgIDUuMTY4
NTQ5XSBzeXN0ZW1kWzFdOiBEZXRlY3RlZCB2aXJ0dWFsaXphdGlvbiB2bS1vdGhlci4KWyAgICA1
LjE2OTA4MF0gc3lzdGVtZFsxXTogRGV0ZWN0ZWQgYXJjaGl0ZWN0dXJlIHg4Ni02NC4KWyAgICA1
LjE2OTU5Ml0gc3lzdGVtZFsxXTogUnVubmluZyBpbiBpbml0cmQuClsgICAgNS4xNzI3OTJdIHN5
c3RlbWRbMV06IE5vIGhvc3RuYW1lIGNvbmZpZ3VyZWQsIHVzaW5nIGRlZmF1bHQgaG9zdG5hbWUu
ClsgICAgNS4xNzM0NjJdIHN5c3RlbWRbMV06IEhvc3RuYW1lIHNldCB0byA8ZmVkb3JhPi4KWyAg
ICA1LjIwNzc5NF0gdXNiIDctMTogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTE3ZWYs
IGlkUHJvZHVjdD1hMzkyLCBiY2REZXZpY2U9IGQuMjQKWyAgICA1LjIwODg5OF0gdXNiIDctMTog
TmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTAK
WyAgICA1LjIwOTc1Ml0gdXNiIDctMTogUHJvZHVjdDogVVNCMi4wIEh1YgpbICAgIDUuMjEwMjc2
XSB1c2IgNy0xOiBNYW51ZmFjdHVyZXI6IFZJQSBMYWJzLCBJbmMuClsgICAgNS4yNjgzNDRdIGh1
YiA3LTE6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgNS4yNjkxNjFdIGh1YiA3LTE6MS4wOiA0IHBv
cnRzIGRldGVjdGVkClsgICAgNS4yODU0MDVdIHN5c3RlbWRbMV06IGJwZi1sc206IExTTSBCUEYg
cHJvZ3JhbSBhdHRhY2hlZApbICAgIDUuMzMwODUwXSB1c2IgOC0xOiBuZXcgU3VwZXJTcGVlZCBQ
bHVzIEdlbiAyeDEgVVNCIGRldmljZSBudW1iZXIgMiB1c2luZyB4aGNpX2hjZApbICAgIDUuMzk1
Mjk4XSBzeXN0ZW1kWzFdOiBRdWV1ZWQgc3RhcnQgam9iIGZvciBkZWZhdWx0IHRhcmdldCBpbml0
cmQudGFyZ2V0LgpbICAgIDUuNDAyODI4XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBpbml0
cmQtdXNyLWZzLnRhcmdldCAtIEluaXRyZCAvdXNyIEZpbGUgU3lzdGVtLgpbICAgIDUuNDA0MTUz
XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBzbGljZXMudGFyZ2V0IC0gU2xpY2UgVW5pdHMu
ClsgICAgNS40MDUyODVdIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IHN3YXAudGFyZ2V0IC0g
U3dhcHMuClsgICAgNS40MDY0NjNdIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IHRpbWVycy50
YXJnZXQgLSBUaW1lciBVbml0cy4KWyAgICA1LjQwNzcwNF0gc3lzdGVtZFsxXTogTGlzdGVuaW5n
IG9uIGRidXMuc29ja2V0IC0gRC1CdXMgU3lzdGVtIE1lc3NhZ2UgQnVzIFNvY2tldC4KWyAgICA1
LjQwOTAxMl0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIHN5c3RlbWQtam91cm5hbGQtZGV2LWxv
Zy5zb2NrZXQgLSBKb3VybmFsIFNvY2tldCAoL2Rldi9sb2cpLgpbICAgIDUuNDEwMzc4XSBzeXN0
ZW1kWzFdOiBMaXN0ZW5pbmcgb24gc3lzdGVtZC1qb3VybmFsZC5zb2NrZXQgLSBKb3VybmFsIFNv
Y2tldC4KWyAgICA1LjQxMTc2OF0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIHN5c3RlbWQtdWRl
dmQtY29udHJvbC5zb2NrZXQgLSB1ZGV2IENvbnRyb2wgU29ja2V0LgpbICAgIDUuNDEzMTY1XSBz
eXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gc3lzdGVtZC11ZGV2ZC1rZXJuZWwuc29ja2V0IC0gdWRl
diBLZXJuZWwgU29ja2V0LgpbICAgIDUuNDE0NDQ4XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdl
dCBzb2NrZXRzLnRhcmdldCAtIFNvY2tldCBVbml0cy4KWyAgICA1LjQxNzM3M10gc3lzdGVtZFsx
XTogU3RhcnRpbmcga21vZC1zdGF0aWMtbm9kZXMuc2VydmljZSAtIENyZWF0ZSBMaXN0IG9mIFN0
YXRpYyBEZXZpY2UgTm9kZXMuLi4KWyAgICA1LjQxODc3MV0gc3lzdGVtZFsxXTogbWVtc3RyYWNr
LnNlcnZpY2UgLSBNZW1zdHJhY2sgQW55bGF6aW5nIFNlcnZpY2Ugd2FzIHNraXBwZWQgYmVjYXVz
ZSBubyB0cmlnZ2VyIGNvbmRpdGlvbiBjaGVja3Mgd2VyZSBtZXQuClsgICAgNS40MjE3MDddIHN5
c3RlbWRbMV06IFN0YXJ0aW5nIHN5c3RlbWQtam91cm5hbGQuc2VydmljZSAtIEpvdXJuYWwgU2Vy
dmljZS4uLgpbICAgIDUuNDI0NDUwXSBzeXN0ZW1kWzFdOiBTdGFydGluZyBzeXN0ZW1kLW1vZHVs
ZXMtbG9hZC5zZXJ2aWNlIC0gTG9hZCBLZXJuZWwgTW9kdWxlcy4uLgpbICAgIDUuNDI3MTUyXSBz
eXN0ZW1kWzFdOiBTdGFydGluZyBzeXN0ZW1kLXN5c3VzZXJzLnNlcnZpY2UgLSBDcmVhdGUgU3lz
dGVtIFVzZXJzLi4uClsgICAgNS40Mjk4NjFdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIHN5c3RlbWQt
dmNvbnNvbGUtc2V0dXAuc2VydmljZSAtIFZpcnR1YWwgQ29uc29sZSBTZXR1cC4uLgpbICAgIDUu
NDMxNjM0XSBzeXN0ZW1kLWpvdXJuYWxkWzM0M106IENvbGxlY3RpbmcgYXVkaXQgbWVzc2FnZXMg
aXMgZGlzYWJsZWQuClsgICAgNS40NDgyNjhdIGZ1c2U6IGluaXQgKEFQSSB2ZXJzaW9uIDcuMzkp
ClsgICAgNS40NTA5OTFdIGkyY19kZXY6IGkyYyAvZGV2IGVudHJpZXMgZHJpdmVyClsgICAgNS40
NTU0NzNdIHVzYiA4LTE6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xN2VmLCBpZFBy
b2R1Y3Q9YTM5MSwgYmNkRGV2aWNlPSBkLjI0ClsgICAgNS40NTYxNzVdIHVzYiA4LTE6IE5ldyBV
U0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0wClsgICAg
NS40NTY4NTZdIHVzYiA4LTE6IFByb2R1Y3Q6IFVTQjMuMSBIdWIKWyAgICA1LjQ1NzUyN10gdXNi
IDgtMTogTWFudWZhY3R1cmVyOiBWSUEgTGFicywgSW5jLgpbICAgIDUuNDYwNjQ2XSB4ZW46eGVu
X2V2dGNobjogRXZlbnQtY2hhbm5lbCBkZXZpY2UgaW5zdGFsbGVkClsgICAgNS40ODQyMTFdIHhl
bl9wY2liYWNrOiBiYWNrZW5kIGlzIHZwY2kKWyAgICA1LjQ5MTc5NF0gaHViIDgtMToxLjA6IFVT
QiBodWIgZm91bmQKWyAgICA1LjQ5MjcxNV0gaHViIDgtMToxLjA6IDQgcG9ydHMgZGV0ZWN0ZWQK
WyAgICA1LjUwNzExN10gc3lzdGVtZFsxXTogRmluaXNoZWQga21vZC1zdGF0aWMtbm9kZXMuc2Vy
dmljZSAtIENyZWF0ZSBMaXN0IG9mIFN0YXRpYyBEZXZpY2UgTm9kZXMuClsgICAgNS41MDkzMzRd
IHN5c3RlbWRbMV06IFN0YXJ0ZWQgc3lzdGVtZC1qb3VybmFsZC5zZXJ2aWNlIC0gSm91cm5hbCBT
ZXJ2aWNlLgpbICAgIDUuNTEzNzU1XSBSb3VuZGluZyBkb3duIGFsaWduZWQgbWF4X3NlY3RvcnMg
ZnJvbSA0Mjk0OTY3Mjk1IHRvIDQyOTQ5NjcyODgKWyAgICA1LjUxNDQ5Nl0gZGJfcm9vdDogY2Fu
bm90IG9wZW46IC9ldGMvdGFyZ2V0ClsgICAgNS41MjAxOTJdIHhlbl9hY3BpX3Byb2Nlc3Nvcjog
VXBsb2FkaW5nIFhlbiBwcm9jZXNzb3IgUE0gaW5mbwpbICAgIDYuMDM0ODYwXSB1c2IgNy0xLjM6
IG5ldyBoaWdoLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDMgdXNpbmcgeGhjaV9oY2QKWyAgICA2
LjE3ODUwNl0gdXNiIDctMS4zOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MTdlZiwg
aWRQcm9kdWN0PWEzOTQsIGJjZERldmljZT0gZC4yMwpbICAgIDYuMTc5OTU3XSB1c2IgNy0xLjM6
IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0w
ClsgICAgNi4xODEzNzddIHVzYiA3LTEuMzogUHJvZHVjdDogVVNCMi4wIEh1YgpbICAgIDYuMTgy
Nzg1XSB1c2IgNy0xLjM6IE1hbnVmYWN0dXJlcjogVklBIExhYnMsIEluYy4KWyAgICA2LjIyNjk3
NV0gaHViIDctMS4zOjEuMDogVVNCIGh1YiBmb3VuZApbICAgIDYuMjI4NzU1XSBodWIgNy0xLjM6
MS4wOiA0IHBvcnRzIGRldGVjdGVkClsgICAgNi4yNTg5MThdIHVzYiA4LTEuMTogbmV3IFN1cGVy
U3BlZWQgVVNCIGRldmljZSBudW1iZXIgMyB1c2luZyB4aGNpX2hjZApbICAgIDYuMjczNjI3XSB1
c2IgOC0xLjE6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xN2VmLCBpZFByb2R1Y3Q9
YTM4NywgYmNkRGV2aWNlPTMxLjAzClsgICAgNi4yNzUwMDFdIHVzYiA4LTEuMTogTmV3IFVTQiBk
ZXZpY2Ugc3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTYKWyAgICA2LjI3
NjM2M10gdXNiIDgtMS4xOiBQcm9kdWN0OiBVU0ItQyBEb2NrIEV0aGVybmV0ClsgICAgNi4yNzc3
MTJdIHVzYiA4LTEuMTogTWFudWZhY3R1cmVyOiBSZWFsdGVrClsgICAgNi4yNzkwNzFdIHVzYiA4
LTEuMTogU2VyaWFsTnVtYmVyOiAzMDEwMDAwMDEKWyAgICA2LjM5OTU3MV0gdXNiIDgtMS4zOiBu
ZXcgU3VwZXJTcGVlZCBQbHVzIEdlbiAyeDEgVVNCIGRldmljZSBudW1iZXIgNCB1c2luZyB4aGNp
X2hjZApbICAgIDYuNDMyMjYwXSB1c2IgOC0xLjM6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZl
bmRvcj0xN2VmLCBpZFByb2R1Y3Q9YTM5MywgYmNkRGV2aWNlPSBkLjIzClsgICAgNi40MzM3MzVd
IHVzYiA4LTEuMzogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2Vy
aWFsTnVtYmVyPTAKWyAgICA2LjQzNTE5Ml0gdXNiIDgtMS4zOiBQcm9kdWN0OiBVU0IzLjEgSHVi
ClsgICAgNi40MzY5NTddIHVzYiA4LTEuMzogTWFudWZhY3R1cmVyOiBWSUEgTGFicywgSW5jLgpb
ICAgIDYuNDQ1NDE4XSBhY3BpIEZSTVcwMDA0OjAwOiBHUElPOiBsb29raW5nIHVwIDAgaW4gX0NS
UwpbICAgIDYuNDQ1NDg1XSBhbWRfZ3BpbyBBTURJMDAzMDowMDogSW52YWxpZCBjb25maWcgcGFy
YW0gMDAxNApbICAgIDYuNDQ1NDg5XSBncGlvIGdwaW9jaGlwMDogUGVyc2lzdGVuY2Ugbm90IHN1
cHBvcnRlZCBmb3IgR1BJTyA4NApbICAgIDYuNDQ1OTgzXSBhY3BpIEZSTVcwMDA1OjAwOiBHUElP
OiBsb29raW5nIHVwIDAgaW4gX0NSUwpbICAgIDYuNDQ2OTcxXSBhY3BpIFBJWEEzODU0OjAwOiBH
UElPOiBsb29raW5nIHVwIDAgaW4gX0NSUwpbICAgIDYuNDQ2OTg3XSBhbWRfZ3BpbyBBTURJMDAz
MDowMDogSW52YWxpZCBjb25maWcgcGFyYW0gMDAxNApbICAgIDYuNDQ2OTk3XSBncGlvIGdwaW9j
aGlwMDogUGVyc2lzdGVuY2Ugbm90IHN1cHBvcnRlZCBmb3IgR1BJTyA1ClsgICAgNi40NDcwMjVd
IGFtZF9ncGlvIEFNREkwMDMwOjAwOiBJbnZhbGlkIGNvbmZpZyBwYXJhbSAwMDE0ClsgICAgNi40
NDcwMzBdIGdwaW8gZ3Bpb2NoaXAwOiBQZXJzaXN0ZW5jZSBub3Qgc3VwcG9ydGVkIGZvciBHUElP
IDgKWyAgICA2LjQ3MDIxM10gc3A1MTAwX3RjbzogU1A1MTAwL1NCODAwIFRDTyBXYXRjaERvZyBU
aW1lciBEcml2ZXIKWyAgICA2LjQ3MTMzOF0gaHViIDgtMS4zOjEuMDogVVNCIGh1YiBmb3VuZApb
ICAgIDYuNDcxMzk2XSBzcDUxMDAtdGNvIHNwNTEwMC10Y286IFVzaW5nIDB4ZmViMDAwMDAgZm9y
IHdhdGNoZG9nIE1NSU8gYWRkcmVzcwpbICAgIDYuNDcyNDY0XSBodWIgOC0xLjM6MS4wOiA0IHBv
cnRzIGRldGVjdGVkClsgICAgNi40NzYxNjldIGNjcCAwMDAwOmMxOjAwLjI6IGVuYWJsaW5nIGRl
dmljZSAoMDAwMCAtPiAwMDAyKQpbICAgIDYuNDc2OTY0XSB4ZW5fcmVnaXN0ZXJfZ3NpOiB4ZW46
IHJlZ2lzdGVyaW5nIGdzaSAzNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgIDYuNDc2OTY2
XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSAzNiB0cmln
Z2VyaW5nIDAgc2V0X3BpcnEgMQpbICAgIDYuNDc2OTk1XSB4ZW5fcmVnaXN0ZXJfcGlycTogYWZ0
ZXIgSFlQRVJWSVNPUl9waHlzZGV2X29wLCBiZWZvcmUgeGVuX2JpbmRfcGlycV9nc2lfdG9faXJx
OiBnc2kgMzYgdHJpZ2dlcmluZyAwIHNoYXJlYWJsZSAxIG5hbWUgaW9hcGljLWxldmVsClsgICAg
Ni40NzcwMTZdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTM2IC0+IGlycT0zNiAo
Z3NpPTM2KQpbICAgIDYuNDc3MDE4XSB4ZW5fcmVnaXN0ZXJfZ3NpOiBCZWZvcmUgSFlQRVJWSVNP
Ul9waHlzZGV2X29wICBzZXR1cF9nc2kuZ3NpOiAzNiwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDEs
IHNldHVwX2dzaS5wb2xhcml0eTogMQpbICAgIDYuNDc4MjQ0XSBzcDUxMDAtdGNvIHNwNTEwMC10
Y286IGluaXRpYWxpemVkLiBoZWFydGJlYXQ9NjAgc2VjIChub3dheW91dD0wKQpbICAgIDYuNDg3
NTU2XSBjY3AgMDAwMDpjMTowMC4yOiB0ZWU6IHJpbmcgaW5pdCBjb21tYW5kIGZhaWxlZCAoMHgw
MDAwMDAwNikKWyAgICA2LjQ4ODQzMl0gY2NwIDAwMDA6YzE6MDAuMjogdGVlOiBmYWlsZWQgdG8g
aW5pdCByaW5nIGJ1ZmZlcgpbICAgIDYuNDg5Mjc2XSBjY3AgMDAwMDpjMTowMC4yOiB0ZWUgaW5p
dGlhbGl6YXRpb24gZmFpbGVkClsgICAgNi40OTAwOTFdIGNjcCAwMDAwOmMxOjAwLjI6IHBzcCBp
bml0aWFsaXphdGlvbiBmYWlsZWQKWyAgICA2LjUxMTI5N10gR1BJTyA4IGlzIGFjdGl2ZTogMHgx
ODE0MWIwMApbICAgIDYuNTk0MDUxXSBpbnB1dDogUElYQTM4NTQ6MDAgMDkzQTowMjc0IE1vdXNl
IGFzIC9kZXZpY2VzL3BsYXRmb3JtL0FNREkwMDEwOjAzL2kyYy0xL2kyYy1QSVhBMzg1NDowMC8w
MDE4OjA5M0E6MDI3NC4wMDA0L2lucHV0L2lucHV0NwpbICAgIDYuNTk1ODI3XSBpbnB1dDogUElY
QTM4NTQ6MDAgMDkzQTowMjc0IFRvdWNocGFkIGFzIC9kZXZpY2VzL3BsYXRmb3JtL0FNREkwMDEw
OjAzL2kyYy0xL2kyYy1QSVhBMzg1NDowMC8wMDE4OjA5M0E6MDI3NC4wMDA0L2lucHV0L2lucHV0
OApbICAgIDYuNTk2MDU4XSBoaWQtZ2VuZXJpYyAwMDE4OjA5M0E6MDI3NC4wMDA0OiBpbnB1dCxo
aWRyYXczOiBJMkMgSElEIHYxLjAwIE1vdXNlIFtQSVhBMzg1NDowMCAwOTNBOjAyNzRdIG9uIGky
Yy1QSVhBMzg1NDowMApbICAgIDYuNzM2NjUwXSBpbnB1dDogUElYQTM4NTQ6MDAgMDkzQTowMjc0
IE1vdXNlIGFzIC9kZXZpY2VzL3BsYXRmb3JtL0FNREkwMDEwOjAzL2kyYy0xL2kyYy1QSVhBMzg1
NDowMC8wMDE4OjA5M0E6MDI3NC4wMDA0L2lucHV0L2lucHV0OQpbICAgIDYuNzM4NzMyXSBpbnB1
dDogUElYQTM4NTQ6MDAgMDkzQTowMjc0IFRvdWNocGFkIGFzIC9kZXZpY2VzL3BsYXRmb3JtL0FN
REkwMDEwOjAzL2kyYy0xL2kyYy1QSVhBMzg1NDowMC8wMDE4OjA5M0E6MDI3NC4wMDA0L2lucHV0
L2lucHV0MTAKWyAgICA2Ljc0MDgyNV0gaGlkLW11bHRpdG91Y2ggMDAxODowOTNBOjAyNzQuMDAw
NDogaW5wdXQsaGlkcmF3MzogSTJDIEhJRCB2MS4wMCBNb3VzZSBbUElYQTM4NTQ6MDAgMDkzQTow
Mjc0XSBvbiBpMmMtUElYQTM4NTQ6MDAKWyAgICA3LjAyMTA3MV0gdXNiIDctMS4zLjM6IG5ldyBo
aWdoLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDQgdXNpbmcgeGhjaV9oY2QKWyAgICA3LjE4MTgz
OV0gdXNiIDctMS4zLjM6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xN2VmLCBpZFBy
b2R1Y3Q9YTM5NSwgYmNkRGV2aWNlPTYwLjcwClsgICAgNy4xODE5NTRdIHVzYiA3LTEuMy4zOiBO
ZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MTAsIFByb2R1Y3Q9MTEsIFNlcmlhbE51bWJlcj0w
ClsgICAgNy4xODIwMDJdIHVzYiA3LTEuMy4zOiBQcm9kdWN0OiBVU0IyLjAgSHViClsgICAgNy4x
ODIwMjldIHVzYiA3LTEuMy4zOiBNYW51ZmFjdHVyZXI6IExlbm92bwpbICAgIDcuMjIwMDE0XSBo
dWIgNy0xLjMuMzoxLjA6IFVTQiBodWIgZm91bmQKWyAgICA3LjIyMDc2MV0gaHViIDctMS4zLjM6
MS4wOiA0IHBvcnRzIGRldGVjdGVkClsgICAgNy41MTQzOTFdIHVzYiA3LTEuMy4zLjE6IG5ldyBm
dWxsLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDUgdXNpbmcgeGhjaV9oY2QKWyAgICA3LjYxODg5
OF0gdXNiIDctMS4zLjMuMTogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTA0YjQsIGlk
UHJvZHVjdD01MjFhLCBiY2REZXZpY2U9IDAuMDAKWyAgICA3LjYxODk4MV0gdXNiIDctMS4zLjMu
MTogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVy
PTAKWyAgICA3LjYxOTAyMl0gdXNiIDctMS4zLjMuMTogUHJvZHVjdDogVVNCLUkyQyBCcmlkZ2UK
WyAgICA3LjYxOTA1MV0gdXNiIDctMS4zLjMuMTogTWFudWZhY3R1cmVyOiBDeXByZXNzIFNlbWlj
b25kdWN0b3IKWyAgICA3LjczOTM5OF0gdXNiIDctMS4zLjMuMjogbmV3IGZ1bGwtc3BlZWQgVVNC
IGRldmljZSBudW1iZXIgNiB1c2luZyB4aGNpX2hjZApbICAgIDcuODYxOTEzXSB1c2IgNy0xLjMu
My4yOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MTdlZiwgaWRQcm9kdWN0PTMwZDEs
IGJjZERldmljZT0gMC40MgpbICAgIDcuODYxOTg3XSB1c2IgNy0xLjMuMy4yOiBOZXcgVVNCIGRl
dmljZSBzdHJpbmdzOiBNZnI9MSwgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MwpbICAgIDcuODYy
MDI1XSB1c2IgNy0xLjMuMy4yOiBQcm9kdWN0OiBUaGlua1BhZCBVU0ItQyBEb2NrIEdlbjIgVVNC
IEF1ZGlvClsgICAgNy44NjIwNTldIHVzYiA3LTEuMy4zLjI6IE1hbnVmYWN0dXJlcjogTGVub3Zv
ClsgICAgNy44NjIwODVdIHVzYiA3LTEuMy4zLjI6IFNlcmlhbE51bWJlcjogMDAwMDAwMDAwMDAw
ClsgICAgNy45NjczNzRdIGhpZC1nZW5lcmljIDAwMDM6MTdFRjozMEQxLjAwMDU6IGhpZGRldjk3
LGhpZHJhdzQ6IFVTQiBISUQgdjEuMTEgRGV2aWNlIFtMZW5vdm8gVGhpbmtQYWQgVVNCLUMgRG9j
ayBHZW4yIFVTQiBBdWRpb10gb24gdXNiLTAwMDA6YzM6MDAuNC0xLjMuMy4yL2lucHV0MwpbICAg
MTEuODA0MzczXSBpMmNfaGlkX2FjcGkgaTJjLUZSTVcwMDA0OjAwOiBmYWlsZWQgdG8gcmVzZXQg
ZGV2aWNlOiAtNjEKWyAgIDExLjgwNDM3NF0gaTJjX2hpZF9hY3BpIGkyYy1GUk1XMDAwNTowMDog
ZmFpbGVkIHRvIHJlc2V0IGRldmljZTogLTYxClsgICAxNy45NDgzNjJdIGkyY19oaWRfYWNwaSBp
MmMtRlJNVzAwMDQ6MDA6IGZhaWxlZCB0byByZXNldCBkZXZpY2U6IC02MQpbICAgMTcuOTQ4MzYy
XSBpMmNfaGlkX2FjcGkgaTJjLUZSTVcwMDA1OjAwOiBmYWlsZWQgdG8gcmVzZXQgZGV2aWNlOiAt
NjEKWyAgIDI0LjA5MjM2MF0gaTJjX2hpZF9hY3BpIGkyYy1GUk1XMDAwNDowMDogZmFpbGVkIHRv
IHJlc2V0IGRldmljZTogLTYxClsgICAyNC4wOTIzNjBdIGkyY19oaWRfYWNwaSBpMmMtRlJNVzAw
MDU6MDA6IGZhaWxlZCB0byByZXNldCBkZXZpY2U6IC02MQpbICAgMzAuMjM2MzM4XSBpMmNfaGlk
X2FjcGkgaTJjLUZSTVcwMDA0OjAwOiBmYWlsZWQgdG8gcmVzZXQgZGV2aWNlOiAtNjEKWyAgIDMw
LjIzNjMzN10gaTJjX2hpZF9hY3BpIGkyYy1GUk1XMDAwNTowMDogZmFpbGVkIHRvIHJlc2V0IGRl
dmljZTogLTYxClsgICAzMS4yNjAzMzRdIGkyY19oaWRfYWNwaSBpMmMtRlJNVzAwMDQ6MDA6IGNh
bid0IGFkZCBoaWQgZGV2aWNlOiAtNjEKWyAgIDMxLjI2MDMzM10gaTJjX2hpZF9hY3BpIGkyYy1G
Uk1XMDAwNTowMDogY2FuJ3QgYWRkIGhpZCBkZXZpY2U6IC02MQpbICAgMzEuMjc5NjM1XSBpMmNf
aGlkX2FjcGk6IHByb2JlIG9mIGkyYy1GUk1XMDAwNDowMCBmYWlsZWQgd2l0aCBlcnJvciAtNjEK
WyAgIDMxLjI4MDA4NF0gaTJjX2hpZF9hY3BpOiBwcm9iZSBvZiBpMmMtRlJNVzAwMDU6MDAgZmFp
bGVkIHdpdGggZXJyb3IgLTYxClsgICAzMS4yODg5OTldIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3
IGRldmljZSBkcml2ZXIgcjgxNTItY2Znc2VsZWN0b3IKWyAgIDMxLjI5MjE3NF0gQUNQSTogdmlk
ZW86IFZpZGVvIERldmljZSBbVkdBXSAobXVsdGktaGVhZDogeWVzICByb206IG5vICBwb3N0OiBu
bykKWyAgIDMxLjI5Mjk4OV0gaW5wdXQ6IFZpZGVvIEJ1cyBhcyAvZGV2aWNlcy9MTlhTWVNUTTow
MC9MTlhTWUJVUzowMC9QTlAwQTA4OjAwL2RldmljZToxNi9MTlhWSURFTzowMC9pbnB1dC9pbnB1
dDExClsgICAzMS4zMTMwNTBdIG52bWUgMDAwMDowMjowMC4wOiBwbGF0Zm9ybSBxdWlyazogc2V0
dGluZyBzaW1wbGUgc3VzcGVuZApbICAgMzEuMzEzMjc0XSBudm1lIG52bWUwOiBwY2kgZnVuY3Rp
b24gMDAwMDowMjowMC4wClsgICAzMS4zMTM3MDldIHhlbl9yZWdpc3Rlcl9nc2k6IHhlbjogcmVn
aXN0ZXJpbmcgZ3NpIDQyIHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAzMS4zMTM3MTNdIHhl
bl9yZWdpc3Rlcl9waXJxOiBiZWZvcmUgeGVuX2lycV9mcm9tX2dzaTogZ3NpIDQyIHRyaWdnZXJp
bmcgMCBzZXRfcGlycSAxClsgICAzMS4zMTM3MzNdIHhlbl9yZWdpc3Rlcl9waXJxOiBhZnRlciBI
WVBFUlZJU09SX3BoeXNkZXZfb3AsIGJlZm9yZSB4ZW5fYmluZF9waXJxX2dzaV90b19pcnE6IGdz
aSA0MiB0cmlnZ2VyaW5nIDAgc2hhcmVhYmxlIDEgbmFtZSBpb2FwaWMtbGV2ZWwKWyAgIDMxLjMx
Mzc2Ml0geGVuX3JlZ2lzdGVyX3BpcnE6IHhlbjogLS0+IHBpcnE9NDIgLT4gaXJxPTQyIChnc2k9
NDIpClsgICAzMS4zMTM3NjVdIHhlbl9yZWdpc3Rlcl9nc2k6IEJlZm9yZSBIWVBFUlZJU09SX3Bo
eXNkZXZfb3AgIHNldHVwX2dzaS5nc2k6IDQyLCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSwgc2V0
dXBfZ3NpLnBvbGFyaXR5OiAxClsgICAzMS4zNTI5MzJdIG52bWUgbnZtZTA6IDE2LzAvMCBkZWZh
dWx0L3JlYWQvcG9sbCBxdWV1ZXMKWyAgIDMxLjM1OTcxN10gIG52bWUwbjE6IHAxIHAyIHAzIHA0
ClsgICAzMS4zODQ4NzRdIEJUUkZTOiBkZXZpY2UgZnNpZCA3MWIxZGM1OS1lYTAwLTQ4NGMtYjVl
NC1lZTc3ZWRlNzcxZGIgZGV2aWQgMSB0cmFuc2lkIDYxMDYgL2Rldi9udm1lMG4xcDEgc2Nhbm5l
ZCBieSAodWRldi13b3JrZXIpICg1MjYpClsgICAzMS40NTg5OTVdIHI4MTUyLWNmZ3NlbGVjdG9y
IDgtMS4xOiByZXNldCBTdXBlclNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDMgdXNpbmcgeGhjaV9o
Y2QKWyAgIDMxLjQ4NTcxM10gcjgxNTIgOC0xLjE6MS4wOiBsb2FkIHJ0bDgxNTNiLTIgdjIgMDQv
MjcvMjMgc3VjY2Vzc2Z1bGx5ClsgICAzMS41MTQ2MjFdIHI4MTUyIDgtMS4xOjEuMCBldGgwOiB2
MS4xMi4xMwpbICAgMzEuNTE0NzAxXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2Ug
ZHJpdmVyIHI4MTUyClsgICAzMS41NDc0MjNdIHI4MTUyIDgtMS4xOjEuMCBlbnAxOTVzMGY0dTF1
MTogcmVuYW1lZCBmcm9tIGV0aDAKWyAgIDMyLjk0NTIzOF0gW2RybV0gYW1kZ3B1IGtlcm5lbCBt
b2Rlc2V0dGluZyBlbmFibGVkLgpbICAgMzIuOTYxMzE3XSBhbWRncHU6IFZpcnR1YWwgQ1JBVCB0
YWJsZSBjcmVhdGVkIGZvciBDUFUKWyAgIDMyLjk2MTM1M10gYW1kZ3B1OiBUb3BvbG9neTogQWRk
IENQVSBub2RlClsgICAzMi45NjE3MDJdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGVuYWJsaW5nIGRl
dmljZSAoMDAwNiAtPiAwMDA3KQpbICAgMzIuOTYxNzc1XSB4ZW5fcmVnaXN0ZXJfZ3NpOiB4ZW46
IHJlZ2lzdGVyaW5nIGdzaSAzOCB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgMzIuOTYxNzc3
XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSAzOCB0cmln
Z2VyaW5nIDAgc2V0X3BpcnEgMQpbICAgMzIuOTYxNzg4XSB4ZW5fcmVnaXN0ZXJfZ3NpOiBCZWZv
cmUgSFlQRVJWSVNPUl9waHlzZGV2X29wICBzZXR1cF9nc2kuZ3NpOiAzOCwgc2V0dXBfZ3NpLnRy
aWdnZXJpbmc6IDEsIHNldHVwX2dzaS5wb2xhcml0eTogMQpbICAgMzIuOTYxNzkyXSBBbHJlYWR5
IHNldHVwIHRoZSBHU0kgOjM4ClsgICAzMi45NjE4MzBdIFtkcm1dIGluaXRpYWxpemluZyBrZXJu
ZWwgbW9kZXNldHRpbmcgKElQIERJU0NPVkVSWSAweDEwMDI6MHgxNUJGIDB4RjExMToweDAwMDYg
MHhDNCkuClsgICAzMi45NjIwNTBdIFtkcm1dIHJlZ2lzdGVyIG1taW8gYmFzZTogMHg5MDUwMDAw
MApbICAgMzIuOTYyMDgxXSBbZHJtXSByZWdpc3RlciBtbWlvIHNpemU6IDUyNDI4OApbICAgMzIu
OTY0OTI1XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDAgPHNvYzIxX2NvbW1vbj4KWyAgIDMy
Ljk2NDk1OF0gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciAxIDxnbWNfdjExXzA+ClsgICAzMi45
NjQ5NjldIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgMiA8aWhfdjZfMD4KWyAgIDMyLjk2NDk3
OF0gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciAzIDxwc3A+ClsgICAzMi45NjQ5ODddIFtkcm1d
IGFkZCBpcCBibG9jayBudW1iZXIgNCA8c211PgpbICAgMzIuOTY0OTk1XSBbZHJtXSBhZGQgaXAg
YmxvY2sgbnVtYmVyIDUgPGRtPgpbICAgMzIuOTY1MDA0XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVt
YmVyIDYgPGdmeF92MTFfMD4KWyAgIDMyLjk2NTAxM10gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJl
ciA3IDxzZG1hX3Y2XzA+ClsgICAzMi45NjUwMjJdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIg
OCA8dmNuX3Y0XzA+ClsgICAzMi45NjUwMzFdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgOSA8
anBlZ192NF8wPgpbICAgMzIuOTY1MDQwXSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDEwIDxt
ZXNfdjExXzA+ClsgICAzMi45NjUyOTJdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogRmV0
Y2hlZCBWQklPUyBmcm9tIFZGQ1QKWyAgIDMyLjk2NTMyN10gYW1kZ3B1OiBBVE9NIEJJT1M6IDEx
My1QSFhHRU5FUklDLTAwMQpbICAgMzIuOTk1NDEzXSBbZHJtXSBWQ04oMCkgZW5jb2RlL2RlY29k
ZSBhcmUgZW5hYmxlZCBpbiBWTSBtb2RlClsgICAzMy4wMDc0OTddIGFtZGdwdSAwMDAwOmMxOjAw
LjA6IFtkcm06anBlZ192NF8wX2Vhcmx5X2luaXQgW2FtZGdwdV1dIEpQRUcgZGVjb2RlIGlzIGVu
YWJsZWQgaW4gVk0gbW9kZQpbICAgMzMuMDE1OTEzXSBDb25zb2xlOiBzd2l0Y2hpbmcgdG8gY29s
b3VyIGR1bW15IGRldmljZSA4MHgyNQpbICAgMzMuMDE3NzM0XSBhbWRncHUgMDAwMDpjMTowMC4w
OiB2Z2FhcmI6IGRlYWN0aXZhdGUgdmdhIGNvbnNvbGUKWyAgIDMzLjAxNzc0Ml0gYW1kZ3B1IDAw
MDA6YzE6MDAuMDogYW1kZ3B1OiBUcnVzdGVkIE1lbW9yeSBab25lIChUTVopIGZlYXR1cmUgZW5h
YmxlZApbICAgMzMuMDE3NzkzXSBbZHJtXSB2bSBzaXplIGlzIDI2MjE0NCBHQiwgNCBsZXZlbHMs
IGJsb2NrIHNpemUgaXMgOS1iaXQsIGZyYWdtZW50IHNpemUgaXMgOS1iaXQKWyAgIDMzLjAxNzgy
Nl0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiBWUkFNOiA1MTJNIDB4MDAwMDAwODAwMDAw
MDAwMCAtIDB4MDAwMDAwODAxRkZGRkZGRiAoNTEyTSB1c2VkKQpbICAgMzMuMDE3ODMzXSBhbWRn
cHUgMDAwMDpjMTowMC4wOiBhbWRncHU6IEdBUlQ6IDUxMk0gMHgwMDAwMDAwMDAwMDAwMDAwIC0g
MHgwMDAwMDAwMDFGRkZGRkZGClsgICAzMy4wMTc4NDBdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFt
ZGdwdTogQUdQOiAyNjc4OTQ3ODRNIDB4MDAwMDAwODQwMDAwMDAwMCAtIDB4MDAwMEZGRkZGRkZG
RkZGRgpbICAgMzMuMDE3ODU3XSBbZHJtXSBEZXRlY3RlZCBWUkFNIFJBTT01MTJNLCBCQVI9NTEy
TQpbICAgMzMuMDE3ODYyXSBbZHJtXSBSQU0gd2lkdGggMTI4Yml0cyBERFI1ClsgICAzMy4wODEy
NTldIFtkcm1dIGFtZGdwdTogNTEyTSBvZiBWUkFNIG1lbW9yeSByZWFkeQpbICAgMzMuMDgxMjcz
XSBbZHJtXSBhbWRncHU6IDMxMTU5TSBvZiBHVFQgbWVtb3J5IHJlYWR5LgpbICAgMzMuMDgxMzA0
XSBbZHJtXSBHQVJUOiBudW0gY3B1IHBhZ2VzIDEzMTA3MiwgbnVtIGdwdSBwYWdlcyAxMzEwNzIK
WyAgIDMzLjA4MTg1NV0gW2RybV0gUENJRSBHQVJUIG9mIDUxMk0gZW5hYmxlZCAodGFibGUgYXQg
MHgwMDAwMDA4MDFGRDAwMDAwKS4KWyAgIDMzLjA4MjU3OV0gW2RybV0gTG9hZGluZyBETVVCIGZp
cm13YXJlIHZpYSBQU1A6IHZlcnNpb249MHgwODAwMkE4MQpbICAgMzMuMDg4NDM2XSBbZHJtXSBG
b3VuZCBWQ04gZmlybXdhcmUgVmVyc2lvbiBFTkM6IDEuMTAgREVDOiA1IFZFUDogMCBSZXZpc2lv
bjogMApbICAgMzMuMDg4NDUwXSBhbWRncHUgMDAwMDpjMTowMC4wOiBhbWRncHU6IFdpbGwgdXNl
IFBTUCB0byBsb2FkIFZDTiBmaXJtd2FyZQpbICAgMzMuMTE0MjQ0XSBbZHJtXSByZXNlcnZlIDB4
NDAwMDAwMCBmcm9tIDB4ODAxODAwMDAwMCBmb3IgUFNQIFRNUgpbICAgMzMuNjI5NzAxXSBhbWRn
cHUgMDAwMDpjMTowMC4wOiBhbWRncHU6IFJBUzogb3B0aW9uYWwgcmFzIHRhIHVjb2RlIGlzIG5v
dCBhdmFpbGFibGUKWyAgIDMzLjYzODI3N10gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiBS
QVA6IG9wdGlvbmFsIHJhcCB0YSB1Y29kZSBpcyBub3QgYXZhaWxhYmxlClsgICAzMy42MzgzMDld
IGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogU0VDVVJFRElTUExBWTogc2VjdXJlZGlzcGxh
eSB0YSB1Y29kZSBpcyBub3QgYXZhaWxhYmxlClsgICAzMy42NzI1OTFdIGFtZGdwdSAwMDAwOmMx
OjAwLjA6IGFtZGdwdTogU01VIGlzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSEKWyAgIDMzLjY3
MzY5OF0gW2RybV0gRGlzcGxheSBDb3JlIHYzLjIuMjQ3IGluaXRpYWxpemVkIG9uIERDTiAzLjEu
NApbICAgMzMuNjczNzE3XSBbZHJtXSBEUC1IRE1JIEZSTCBQQ09OIHN1cHBvcnRlZApbICAgMzMu
Njc2MTIzXSBbZHJtXSBETVVCIGhhcmR3YXJlIGluaXRpYWxpemVkOiB2ZXJzaW9uPTB4MDgwMDJB
ODEKWyAgIDMzLjc2MzI4M10gW2RybV0gUFNSIHN1cHBvcnQgMSwgREMgUFNSIHZlciAwLCBzaW5r
IFBTUiB2ZXIgMyBEUENEIGNhcHMgMHg3YiBzdV95X2dyYW51bGFyaXR5IDQKWyAgIDMzLjgyOTgx
Nl0gW2RybV0gRE1fTVNUOiBEaWZmZXJpbmcgTVNUIHN0YXJ0IG9uIGFjb25uZWN0b3I6IDAwMDAw
MDAwODU3MTZkYWIgW2lkOiAxMTJdClsgICAzMy44MzI5MDFdIFtkcm1dIGtpcSByaW5nIG1lYyAz
IHBpcGUgMSBxIDAKWyAgIDMzLjgzNTcwOF0gW2RybV0gVkNOIGRlY29kZSBhbmQgZW5jb2RlIGlu
aXRpYWxpemVkIHN1Y2Nlc3NmdWxseSh1bmRlciBEUEcgTW9kZSkuClsgICAzMy44MzU3NjFdIGFt
ZGdwdSAwMDAwOmMxOjAwLjA6IFtkcm06anBlZ192NF8wX2h3X2luaXQgW2FtZGdwdV1dIEpQRUcg
ZGVjb2RlIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseS4KWyAgIDMzLjg0OTkyMl0gYW1kZ3B1OiBI
TU0gcmVnaXN0ZXJlZCA1MTJNQiBkZXZpY2UgbWVtb3J5ClsgICAzMy44NTMzODNdIGtmZCBrZmQ6
IGFtZGdwdTogQWxsb2NhdGVkIDM5NjkwNTYgYnl0ZXMgb24gZ2FydApbICAgMzMuODUzNDExXSBr
ZmQga2ZkOiBhbWRncHU6IFRvdGFsIG51bWJlciBvZiBLRkQgbm9kZXMgdG8gYmUgY3JlYXRlZDog
MQpbICAgMzMuODUzNTQyXSBhbWRncHU6IFZpcnR1YWwgQ1JBVCB0YWJsZSBjcmVhdGVkIGZvciBH
UFUKWyAgIDMzLjg1MzY5NF0gYW1kZ3B1OiBUb3BvbG9neTogQWRkIGRHUFUgbm9kZSBbMHgxNWJm
OjB4MTAwMl0KWyAgIDMzLjg1MzcwMF0ga2ZkIGtmZDogYW1kZ3B1OiBhZGRlZCBkZXZpY2UgMTAw
MjoxNWJmClsgICAzMy44NTM3MTVdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogU0UgMSwg
U0ggcGVyIFNFIDIsIENVIHBlciBTSCA2LCBhY3RpdmVfY3VfbnVtYmVyIDEyClsgICAzMy44NTM4
ODFdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogcmluZyBnZnhfMC4wLjAgdXNlcyBWTSBp
bnYgZW5nIDAgb24gaHViIDAKWyAgIDMzLjg1Mzg4N10gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1k
Z3B1OiByaW5nIGNvbXBfMS4wLjAgdXNlcyBWTSBpbnYgZW5nIDEgb24gaHViIDAKWyAgIDMzLjg1
Mzg5M10gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4xLjAgdXNlcyBW
TSBpbnYgZW5nIDQgb24gaHViIDAKWyAgIDMzLjg1Mzg5OV0gYW1kZ3B1IDAwMDA6YzE6MDAuMDog
YW1kZ3B1OiByaW5nIGNvbXBfMS4yLjAgdXNlcyBWTSBpbnYgZW5nIDYgb24gaHViIDAKWyAgIDMz
Ljg1MzkwNV0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4zLjAgdXNl
cyBWTSBpbnYgZW5nIDcgb24gaHViIDAKWyAgIDMzLjg1MzkxMF0gYW1kZ3B1IDAwMDA6YzE6MDAu
MDogYW1kZ3B1OiByaW5nIGNvbXBfMS4wLjEgdXNlcyBWTSBpbnYgZW5nIDggb24gaHViIDAKWyAg
IDMzLjg1MzkxNl0gYW1kZ3B1IDAwMDA6YzE6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4xLjEg
dXNlcyBWTSBpbnYgZW5nIDkgb24gaHViIDAKWyAgIDMzLjg1MzkyMV0gYW1kZ3B1IDAwMDA6YzE6
MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4yLjEgdXNlcyBWTSBpbnYgZW5nIDEwIG9uIGh1YiAw
ClsgICAzMy44NTM5MjddIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEu
My4xIHVzZXMgVk0gaW52IGVuZyAxMSBvbiBodWIgMApbICAgMzMuODUzOTMzXSBhbWRncHUgMDAw
MDpjMTowMC4wOiBhbWRncHU6IHJpbmcgc2RtYTAgdXNlcyBWTSBpbnYgZW5nIDEyIG9uIGh1YiAw
ClsgICAzMy44NTM5MzldIGFtZGdwdSAwMDAwOmMxOjAwLjA6IGFtZGdwdTogcmluZyB2Y25fdW5p
ZmllZF8wIHVzZXMgVk0gaW52IGVuZyAwIG9uIGh1YiA4ClsgICAzMy44NTM5NDRdIGFtZGdwdSAw
MDAwOmMxOjAwLjA6IGFtZGdwdTogcmluZyBqcGVnX2RlYyB1c2VzIFZNIGludiBlbmcgMSBvbiBo
dWIgOApbICAgMzMuODUzOTUwXSBhbWRncHUgMDAwMDpjMTowMC4wOiBhbWRncHU6IHJpbmcgbWVz
X2tpcV8zLjEuMCB1c2VzIFZNIGludiBlbmcgMTMgb24gaHViIDAKWyAgIDMzLjg1ODg3Ml0gW2Ry
bV0gcmluZyBnZnhfMzI3NjguMS4xIHdhcyBhZGRlZApbICAgMzMuODU5Mzg5XSBbZHJtXSByaW5n
IGNvbXB1dGVfMzI3NjguMi4yIHdhcyBhZGRlZApbICAgMzMuODU5ODg5XSBbZHJtXSByaW5nIHNk
bWFfMzI3NjguMy4zIHdhcyBhZGRlZApbICAgMzMuODU5OTY1XSBbZHJtXSByaW5nIGdmeF8zMjc2
OC4xLjEgaWIgdGVzdCBwYXNzClsgICAzMy44NjAwMjBdIFtkcm1dIHJpbmcgY29tcHV0ZV8zMjc2
OC4yLjIgaWIgdGVzdCBwYXNzClsgICAzMy44NjAwODRdIFtkcm1dIHJpbmcgc2RtYV8zMjc2OC4z
LjMgaWIgdGVzdCBwYXNzClsgICAzMy44NjMzNjFdIFtkcm1dIEluaXRpYWxpemVkIGFtZGdwdSAz
LjU0LjAgMjAxNTAxMDEgZm9yIDAwMDA6YzE6MDAuMCBvbiBtaW5vciAwClsgICAzMy44NzAyNDBd
IGZiY29uOiBhbWRncHVkcm1mYiAoZmIwKSBpcyBwcmltYXJ5IGRldmljZQpbICAgMzMuODcwNDM4
XSBbZHJtXSBEU0MgcHJlY29tcHV0ZSBpcyBub3QgbmVlZGVkLgpbICAgMzQuNzk4NzYyXSBDb25z
b2xlOiBzd2l0Y2hpbmcgdG8gY29sb3VyIGZyYW1lIGJ1ZmZlciBkZXZpY2UgMjgyeDk0ClsgICAz
NC44Mzc5OTVdIGFtZGdwdSAwMDAwOmMxOjAwLjA6IFtkcm1dIGZiMDogYW1kZ3B1ZHJtZmIgZnJh
bWUgYnVmZmVyIGRldmljZQpbICAgMzUuMDQ0NDE3XSBbZHJtXSBEb3duc3RyZWFtIHBvcnQgcHJl
c2VudCAxLCB0eXBlIDIKWyAgIDM1LjY4NDkwM10gQlRSRlMgaW5mbyAoZGV2aWNlIG52bWUwbjFw
MSk6IGZpcnN0IG1vdW50IG9mIGZpbGVzeXN0ZW0gNzFiMWRjNTktZWEwMC00ODRjLWI1ZTQtZWU3
N2VkZTc3MWRiClsgICAzNS42ODQ5OTBdIEJUUkZTIGluZm8gKGRldmljZSBudm1lMG4xcDEpOiB1
c2luZyBjcmMzMmMgKGNyYzMyYy1pbnRlbCkgY2hlY2tzdW0gYWxnb3JpdGhtClsgICAzNS42ODUw
MzBdIEJUUkZTIGluZm8gKGRldmljZSBudm1lMG4xcDEpOiB1c2luZyBmcmVlIHNwYWNlIHRyZWUK
WyAgIDM1LjcwNTQyMV0gQlRSRlMgaW5mbyAoZGV2aWNlIG52bWUwbjFwMSk6IGVuYWJsaW5nIHNz
ZCBvcHRpbWl6YXRpb25zClsgICAzNS43MDU0NjddIEJUUkZTIGluZm8gKGRldmljZSBudm1lMG4x
cDEpOiBhdXRvIGVuYWJsaW5nIGFzeW5jIGRpc2NhcmQKWyAgIDM2LjQyODM3M10gdWNzaV9hY3Bp
IFVTQkMwMDA6MDA6IGVycm9yIC1FVElNRURPVVQ6IFBQTSBpbml0IGZhaWxlZApbICAgMzYuNTQ1
OTkyXSBzeXN0ZW1kLWpvdXJuYWxkWzM0M106IFJlY2VpdmVkIFNJR1RFUk0gZnJvbSBQSUQgMSAo
c3lzdGVtZCkuClsgICAzNi43MDQ1NTZdIGF1ZGl0OiB0eXBlPTE0MDQgYXVkaXQoMTcwMzA4OTI4
My42MTI6Mik6IGVuZm9yY2luZz0xIG9sZF9lbmZvcmNpbmc9MCBhdWlkPTQyOTQ5NjcyOTUgc2Vz
PTQyOTQ5NjcyOTUgZW5hYmxlZD0xIG9sZC1lbmFibGVkPTEgbHNtPXNlbGludXggcmVzPTEKWyAg
IDM2Ljc1ODc1N10gU0VMaW51eDogIHBvbGljeSBjYXBhYmlsaXR5IG5ldHdvcmtfcGVlcl9jb250
cm9scz0xClsgICAzNi43NTk0MzZdIFNFTGludXg6ICBwb2xpY3kgY2FwYWJpbGl0eSBvcGVuX3Bl
cm1zPTEKWyAgIDM2Ljc2MDE1Ml0gU0VMaW51eDogIHBvbGljeSBjYXBhYmlsaXR5IGV4dGVuZGVk
X3NvY2tldF9jbGFzcz0xClsgICAzNi43NjA2ODNdIFNFTGludXg6ICBwb2xpY3kgY2FwYWJpbGl0
eSBhbHdheXNfY2hlY2tfbmV0d29yaz0wClsgICAzNi43NjEzMzddIFNFTGludXg6ICBwb2xpY3kg
Y2FwYWJpbGl0eSBjZ3JvdXBfc2VjbGFiZWw9MQpbICAgMzYuNzYxODk3XSBTRUxpbnV4OiAgcG9s
aWN5IGNhcGFiaWxpdHkgbm5wX25vc3VpZF90cmFuc2l0aW9uPTEKWyAgIDM2Ljc2MjQwMl0gU0VM
aW51eDogIHBvbGljeSBjYXBhYmlsaXR5IGdlbmZzX3NlY2xhYmVsX3N5bWxpbmtzPTEKWyAgIDM2
Ljc2Mjg5OV0gU0VMaW51eDogIHBvbGljeSBjYXBhYmlsaXR5IGlvY3RsX3NraXBfY2xvZXhlYz0w
ClsgICAzNi44MjAyMjJdIGF1ZGl0OiB0eXBlPTE0MDMgYXVkaXQoMTcwMzA4OTI4My43Mjg6Myk6
IGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBsc209c2VsaW51eCByZXM9MQpbICAgMzYu
ODIzNjM5XSBzeXN0ZW1kWzFdOiBTdWNjZXNzZnVsbHkgbG9hZGVkIFNFTGludXggcG9saWN5IGlu
IDExOS42MDNtcy4KWyAgIDM2LjkxMjgzNV0gc3lzdGVtZFsxXTogUmVsYWJlbGVkIC9kZXYsIC9k
ZXYvc2htLCAvcnVuLCAvc3lzL2ZzL2Nncm91cCBpbiA0NC4wNDZtcy4KWyAgIDM2LjkyNDE5M10g
c3lzdGVtZFsxXTogc3lzdGVtZCAyNTQuNy0xLmZjMzkgcnVubmluZyBpbiBzeXN0ZW0gbW9kZSAo
K1BBTSArQVVESVQgK1NFTElOVVggLUFQUEFSTU9SICtJTUEgK1NNQUNLICtTRUNDT01QIC1HQ1JZ
UFQgK0dOVVRMUyArT1BFTlNTTCArQUNMICtCTEtJRCArQ1VSTCArRUxGVVRJTFMgK0ZJRE8yICtJ
RE4yIC1JRE4gLUlQVEMgK0tNT0QgK0xJQkNSWVBUU0VUVVAgK0xJQkZESVNLICtQQ1JFMiArUFdR
VUFMSVRZICtQMTFLSVQgK1FSRU5DT0RFICtUUE0yICtCWklQMiArTFo0ICtYWiArWkxJQiArWlNU
RCArQlBGX0ZSQU1FV09SSyArWEtCQ09NTU9OICtVVE1QICtTWVNWSU5JVCBkZWZhdWx0LWhpZXJh
cmNoeT11bmlmaWVkKQpbICAgMzYuOTMwMjA3XSBzeXN0ZW1kWzFdOiBEZXRlY3RlZCB2aXJ0dWFs
aXphdGlvbiB2bS1vdGhlci4KWyAgIDM2LjkzMTcxNV0gc3lzdGVtZFsxXTogRGV0ZWN0ZWQgYXJj
aGl0ZWN0dXJlIHg4Ni02NC4KWyAgIDM3LjA3NTM5Nl0gc3lzdGVtZFsxXTogYnBmLWxzbTogTFNN
IEJQRiBwcm9ncmFtIGF0dGFjaGVkClsgICAzNy4yODkyNTRdIHN5c3RlbWQtc3lzdi1nZW5lcmF0
b3JbNzQ1XTogU3lzViBzZXJ2aWNlICcvZXRjL3JjLmQvaW5pdC5kL3hlbmNvbW1vbnMnIGxhY2tz
IGEgbmF0aXZlIHN5c3RlbWQgdW5pdCBmaWxlLiB+IEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGluZyBh
IHVuaXQgZmlsZSBmb3IgY29tcGF0aWJpbGl0eS4gUGxlYXNlIHVwZGF0ZSBwYWNrYWdlIHRvIGlu
Y2x1ZGUgYSBuYXRpdmUgc3lzdGVtZCB1bml0IGZpbGUsIGluIG9yZGVyIHRvIG1ha2UgaXQgc2Fm
ZSwgcm9idXN0IGFuZCBmdXR1cmUtcHJvb2YuICEgVGhpcyBjb21wYXRpYmlsaXR5IGxvZ2ljIGlz
IGRlcHJlY2F0ZWQsIGV4cGVjdCByZW1vdmFsIHNvb24uICEKWyAgIDM3LjMxODQxN10genJhbTog
QWRkZWQgZGV2aWNlOiB6cmFtMApbICAgMzcuNjI2ODk4XSBzeXN0ZW1kWzFdOiBpbml0cmQtc3dp
dGNoLXJvb3Quc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgpbICAgMzcuNjM2Mzky
XSBzeXN0ZW1kWzFdOiBTdG9wcGVkIGluaXRyZC1zd2l0Y2gtcm9vdC5zZXJ2aWNlIC0gU3dpdGNo
IFJvb3QuClsgICAzNy42NTAxODVdIHN5c3RlbWRbMV06IHN5c3RlbWQtam91cm5hbGQuc2Vydmlj
ZTogU2NoZWR1bGVkIHJlc3RhcnQgam9iLCByZXN0YXJ0IGNvdW50ZXIgaXMgYXQgMS4KWyAgIDM3
LjY1MzY3Nl0gc3lzdGVtZFsxXTogQ3JlYXRlZCBzbGljZSBtYWNoaW5lLnNsaWNlIC0gVmlydHVh
bCBNYWNoaW5lIGFuZCBDb250YWluZXIgU2xpY2UuClsgICAzNy42NTcxMDJdIHN5c3RlbWRbMV06
IENyZWF0ZWQgc2xpY2Ugc3lzdGVtLWdldHR5LnNsaWNlIC0gU2xpY2UgL3N5c3RlbS9nZXR0eS4K
WyAgIDM3LjY2MDgzOV0gc3lzdGVtZFsxXTogQ3JlYXRlZCBzbGljZSBzeXN0ZW0tc2VyaWFsXHgy
ZGdldHR5LnNsaWNlIC0gU2xpY2UgL3N5c3RlbS9zZXJpYWwtZ2V0dHkuClsgICAzNy42NjQ0NzZd
IHN5c3RlbWRbMV06IENyZWF0ZWQgc2xpY2Ugc3lzdGVtLXNzaGRceDJka2V5Z2VuLnNsaWNlIC0g
U2xpY2UgL3N5c3RlbS9zc2hkLWtleWdlbi4KWyAgIDM3LjY2ODE0N10gc3lzdGVtZFsxXTogQ3Jl
YXRlZCBzbGljZSBzeXN0ZW0tc3lzdGVtZFx4MmRmc2NrLnNsaWNlIC0gU2xpY2UgL3N5c3RlbS9z
eXN0ZW1kLWZzY2suClsgICAzNy42NzE5NjddIHN5c3RlbWRbMV06IENyZWF0ZWQgc2xpY2Ugc3lz
dGVtLXN5c3RlbWRceDJkenJhbVx4MmRzZXR1cC5zbGljZSAtIFNsaWNlIC9zeXN0ZW0vc3lzdGVt
ZC16cmFtLXNldHVwLgpbICAgMzcuNjc1ODMzXSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNlIHVz
ZXIuc2xpY2UgLSBVc2VyIGFuZCBTZXNzaW9uIFNsaWNlLgpbICAgMzcuNjc4MzY2XSBzeXN0ZW1k
WzFdOiBzeXN0ZW1kLWFzay1wYXNzd29yZC1wbHltb3V0aC5wYXRoOiBEZWFjdGl2YXRlZCBzdWNj
ZXNzZnVsbHkuClsgICAzNy42ODAxMTFdIHN5c3RlbWRbMV06IFN0b3BwZWQgc3lzdGVtZC1hc2st
cGFzc3dvcmQtcGx5bW91dGgucGF0aC4KWyAgIDM3LjY4MzQ5Nl0gc3lzdGVtZFsxXTogU3RhcnRl
ZCBzeXN0ZW1kLWFzay1wYXNzd29yZC13YWxsLnBhdGggLSBGb3J3YXJkIFBhc3N3b3JkIFJlcXVl
c3RzIHRvIFdhbGwgRGlyZWN0b3J5IFdhdGNoLgpbICAgMzcuNjg1NjM2XSBzeXN0ZW1kWzFdOiBT
ZXQgdXAgYXV0b21vdW50IHByb2Mtc3lzLWZzLWJpbmZtdF9taXNjLmF1dG9tb3VudCAtIEFyYml0
cmFyeSBFeGVjdXRhYmxlIEZpbGUgRm9ybWF0cyBGaWxlIFN5c3RlbSBBdXRvbW91bnQgUG9pbnQu
ClsgICAzNy42ODczNDRdIHN5c3RlbWRbMV06IFN0b3BwZWQgdGFyZ2V0IGluaXRyZC1zd2l0Y2gt
cm9vdC50YXJnZXQgLSBTd2l0Y2ggUm9vdC4KWyAgIDM3LjY4OTg3MF0gc3lzdGVtZFsxXTogU3Rv
cHBlZCB0YXJnZXQgaW5pdHJkLWZzLnRhcmdldCAtIEluaXRyZCBGaWxlIFN5c3RlbXMuClsgICAz
Ny42OTE0ODBdIHN5c3RlbWRbMV06IFN0b3BwZWQgdGFyZ2V0IGluaXRyZC1yb290LWZzLnRhcmdl
dCAtIEluaXRyZCBSb290IEZpbGUgU3lzdGVtLgpbICAgMzcuNjkyNzUwXSBzeXN0ZW1kWzFdOiBS
ZWFjaGVkIHRhcmdldCBpbnRlZ3JpdHlzZXR1cC50YXJnZXQgLSBMb2NhbCBJbnRlZ3JpdHkgUHJv
dGVjdGVkIFZvbHVtZXMuClsgICAzNy42OTQxMjldIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0
IHNsaWNlcy50YXJnZXQgLSBTbGljZSBVbml0cy4KWyAgIDM3LjY5NTI5OF0gc3lzdGVtZFsxXTog
UmVhY2hlZCB0YXJnZXQgdmVyaXR5c2V0dXAudGFyZ2V0IC0gTG9jYWwgVmVyaXR5IFByb3RlY3Rl
ZCBWb2x1bWVzLgpbICAgMzcuNzAxNDIzXSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gZG0tZXZl
bnQuc29ja2V0IC0gRGV2aWNlLW1hcHBlciBldmVudCBkYWVtb24gRklGT3MuClsgICAzNy43MTkw
MDRdIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiBsdm0yLWx2bXBvbGxkLnNvY2tldCAtIExWTTIg
cG9sbCBkYWVtb24gc29ja2V0LgpbICAgMzcuNzI3MjAwXSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcg
b24gc3lzdGVtZC1jb3JlZHVtcC5zb2NrZXQgLSBQcm9jZXNzIENvcmUgRHVtcCBTb2NrZXQuClsg
ICAzNy43Mjk3NzldIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiBzeXN0ZW1kLWluaXRjdGwuc29j
a2V0IC0gaW5pdGN0bCBDb21wYXRpYmlsaXR5IE5hbWVkIFBpcGUuClsgICAzNy43MzYyMjddIHN5
c3RlbWRbMV06IExpc3RlbmluZyBvbiBzeXN0ZW1kLWpvdXJuYWxkLWF1ZGl0LnNvY2tldCAtIEpv
dXJuYWwgQXVkaXQgU29ja2V0LgpbICAgMzcuNzQxMTM0XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcg
b24gc3lzdGVtZC1vb21kLnNvY2tldCAtIFVzZXJzcGFjZSBPdXQtT2YtTWVtb3J5IChPT00pIEtp
bGxlciBTb2NrZXQuClsgICAzNy43NDY5NjhdIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiBzeXN0
ZW1kLXVkZXZkLWNvbnRyb2wuc29ja2V0IC0gdWRldiBDb250cm9sIFNvY2tldC4KWyAgIDM3Ljc0
OTc3Nl0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIHN5c3RlbWQtdWRldmQta2VybmVsLnNvY2tl
dCAtIHVkZXYgS2VybmVsIFNvY2tldC4KWyAgIDM3Ljc1NDU5Nl0gc3lzdGVtZFsxXTogTGlzdGVu
aW5nIG9uIHN5c3RlbWQtdXNlcmRiZC5zb2NrZXQgLSBVc2VyIERhdGFiYXNlIE1hbmFnZXIgU29j
a2V0LgpbICAgMzcuNzU5Mzc4XSBzeXN0ZW1kWzFdOiBkZXYtaHVnZXBhZ2VzLm1vdW50IC0gSHVn
ZSBQYWdlcyBGaWxlIFN5c3RlbSB3YXMgc2tpcHBlZCBiZWNhdXNlIG9mIGFuIHVubWV0IGNvbmRp
dGlvbiBjaGVjayAoQ29uZGl0aW9uUGF0aEV4aXN0cz0vc3lzL2tlcm5lbC9tbS9odWdlcGFnZXMp
LgpbICAgMzcuNzc5MTM5XSBzeXN0ZW1kWzFdOiBNb3VudGluZyBkZXYtbXF1ZXVlLm1vdW50IC0g
UE9TSVggTWVzc2FnZSBRdWV1ZSBGaWxlIFN5c3RlbS4uLgpbICAgMzcuNzk1MDQ5XSBzeXN0ZW1k
WzFdOiBNb3VudGluZyBwcm9jLXhlbi5tb3VudCAtIE1vdW50IC9wcm9jL3hlbiBmaWxlcy4uLgpb
ICAgMzcuODA1NDMxXSBzeXN0ZW1kWzFdOiBNb3VudGluZyBzeXMta2VybmVsLWRlYnVnLm1vdW50
IC0gS2VybmVsIERlYnVnIEZpbGUgU3lzdGVtLi4uClsgICAzNy44MTI4OTFdIHN5c3RlbWRbMV06
IE1vdW50aW5nIHN5cy1rZXJuZWwtdHJhY2luZy5tb3VudCAtIEtlcm5lbCBUcmFjZSBGaWxlIFN5
c3RlbS4uLgpbICAgMzcuODE0MTgzXSBzeXN0ZW1kWzFdOiBhdXRoLXJwY2dzcy1tb2R1bGUuc2Vy
dmljZSAtIEtlcm5lbCBNb2R1bGUgc3VwcG9ydGluZyBSUENTRUNfR1NTIHdhcyBza2lwcGVkIGJl
Y2F1c2Ugb2YgYW4gdW5tZXQgY29uZGl0aW9uIGNoZWNrIChDb25kaXRpb25QYXRoRXhpc3RzPS9l
dGMva3JiNS5rZXl0YWIpLgpbICAgMzcuODE0ODMxXSBzeXN0ZW1kWzFdOiBpc2NzaS1zdGFydGVy
LnNlcnZpY2Ugd2FzIHNraXBwZWQgYmVjYXVzZSBvZiBhbiB1bm1ldCBjb25kaXRpb24gY2hlY2sg
KENvbmRpdGlvbkRpcmVjdG9yeU5vdEVtcHR5PS92YXIvbGliL2lzY3NpL25vZGVzKS4KWyAgIDM3
LjgyMDU0OF0gc3lzdGVtZFsxXTogU3RhcnRpbmcga21vZC1zdGF0aWMtbm9kZXMuc2VydmljZSAt
IENyZWF0ZSBMaXN0IG9mIFN0YXRpYyBEZXZpY2UgTm9kZXMuLi4KWyAgIDM3LjgyNzEzOV0gc3lz
dGVtZFsxXTogU3RhcnRpbmcgbHZtMi1tb25pdG9yLnNlcnZpY2UgLSBNb25pdG9yaW5nIG9mIExW
TTIgbWlycm9ycywgc25hcHNob3RzIGV0Yy4gdXNpbmcgZG1ldmVudGQgb3IgcHJvZ3Jlc3MgcG9s
bGluZy4uLgpbICAgMzcuODM0MTg1XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBtb2Rwcm9iZUBjb25m
aWdmcy5zZXJ2aWNlIC0gTG9hZCBLZXJuZWwgTW9kdWxlIGNvbmZpZ2ZzLi4uClsgICAzNy44NDA3
MTBdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIG1vZHByb2JlQGRtX21vZC5zZXJ2aWNlIC0gTG9hZCBL
ZXJuZWwgTW9kdWxlIGRtX21vZC4uLgpbICAgMzcuODQ4NDI5XSBzeXN0ZW1kWzFdOiBTdGFydGlu
ZyBtb2Rwcm9iZUBkcm0uc2VydmljZSAtIExvYWQgS2VybmVsIE1vZHVsZSBkcm0uLi4KWyAgIDM3
Ljg1NDk2Ml0gc3lzdGVtZFsxXTogU3RhcnRpbmcgbW9kcHJvYmVAZWZpX3BzdG9yZS5zZXJ2aWNl
IC0gTG9hZCBLZXJuZWwgTW9kdWxlIGVmaV9wc3RvcmUuLi4KWyAgIDM3Ljg2MjkxNV0gc3lzdGVt
ZFsxXTogU3RhcnRpbmcgbW9kcHJvYmVAZnVzZS5zZXJ2aWNlIC0gTG9hZCBLZXJuZWwgTW9kdWxl
IGZ1c2UuLi4KWyAgIDM3Ljg2OTMwMl0gc3lzdGVtZFsxXTogU3RhcnRpbmcgbW9kcHJvYmVAbG9v
cC5zZXJ2aWNlIC0gTG9hZCBLZXJuZWwgTW9kdWxlIGxvb3AuLi4KWyAgIDM3Ljg3MDUwNV0gc3lz
dGVtZFsxXTogU3RvcHBpbmcgcGx5bW91dGgtc3RhcnQuc2VydmljZS4uLgpbICAgMzcuODc0MzAz
XSBzeXN0ZW1kWzFdOiBwbHltb3V0aC1zd2l0Y2gtcm9vdC5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBz
dWNjZXNzZnVsbHkuClsgICAzNy44NzU2NDhdIHN5c3RlbWRbMV06IFN0b3BwZWQgcGx5bW91dGgt
c3dpdGNoLXJvb3Quc2VydmljZS4KWyAgIDM3Ljg4MTM1NF0gc3lzdGVtZFsxXTogc3lzdGVtZC1m
c2NrLXJvb3Quc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgpbICAgMzcuODgyMTM3
XSBzeXN0ZW1kWzFdOiBTdG9wcGVkIHN5c3RlbWQtZnNjay1yb290LnNlcnZpY2UgLSBGaWxlIFN5
c3RlbSBDaGVjayBvbiBSb290IERldmljZS4KWyAgIDM3Ljg4NjIxNV0gbG9vcDogbW9kdWxlIGxv
YWRlZApbICAgMzcuODg5MzAwXSBzeXN0ZW1kWzFdOiBTdGFydGluZyBzeXN0ZW1kLWpvdXJuYWxk
LnNlcnZpY2UgLSBKb3VybmFsIFNlcnZpY2UuLi4KWyAgIDM3Ljg5NzAxOV0gc3lzdGVtZFsxXTog
U3RhcnRpbmcgc3lzdGVtZC1tb2R1bGVzLWxvYWQuc2VydmljZSAtIExvYWQgS2VybmVsIE1vZHVs
ZXMuLi4KWyAgIDM3LjkwNDM1OV0gc3lzdGVtZFsxXTogU3RhcnRpbmcgc3lzdGVtZC1uZXR3b3Jr
LWdlbmVyYXRvci5zZXJ2aWNlIC0gR2VuZXJhdGUgbmV0d29yayB1bml0cyBmcm9tIEtlcm5lbCBj
b21tYW5kIGxpbmUuLi4KWyAgIDM3LjkwNzQ2M10gc3lzdGVtZFsxXTogc3lzdGVtZC1wY3JtYWNo
aW5lLnNlcnZpY2UgLSBUUE0yIFBDUiBNYWNoaW5lIElEIE1lYXN1cmVtZW50IHdhcyBza2lwcGVk
IGJlY2F1c2Ugb2YgYW4gdW5tZXQgY29uZGl0aW9uIGNoZWNrIChDb25kaXRpb25QYXRoRXhpc3Rz
PS9zeXMvZmlybXdhcmUvZWZpL2VmaXZhcnMvU3R1YlBjcktlcm5lbEltYWdlLTRhNjdiMDgyLTBh
NGMtNDFjZi1iNmM3LTQ0MGIyOWJiOGM0ZikuClsgICAzNy45MTQ0MzZdIHN5c3RlbWRbMV06IFN0
YXJ0aW5nIHN5c3RlbWQtcmVtb3VudC1mcy5zZXJ2aWNlIC0gUmVtb3VudCBSb290IGFuZCBLZXJu
ZWwgRmlsZSBTeXN0ZW1zLi4uClsgICAzNy45MTU3NTBdIHN5c3RlbWQtam91cm5hbGRbNzY3XTog
Q29sbGVjdGluZyBhdWRpdCBtZXNzYWdlcyBpcyBlbmFibGVkLgpbICAgMzcuOTIzNzIwXSBzeXN0
ZW1kWzFdOiBTdGFydGluZyBzeXN0ZW1kLXVkZXYtdHJpZ2dlci5zZXJ2aWNlIC0gQ29sZHBsdWcg
QWxsIHVkZXYgRGV2aWNlcy4uLgpbICAgMzcuOTI1NjA3XSBzeXN0ZW1kWzFdOiBzeXN0ZW1kLXZj
b25zb2xlLXNldHVwLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KWyAgIDM3Ljky
NjM5Nl0gc3lzdGVtZFsxXTogU3RvcHBlZCBzeXN0ZW1kLXZjb25zb2xlLXNldHVwLnNlcnZpY2Ug
LSBWaXJ0dWFsIENvbnNvbGUgU2V0dXAuClsgICAzNy45Mjg0MzRdIGF1ZGl0OiB0eXBlPTExMzEg
YXVkaXQoMTcwMzA4OTI4NC44MzY6NCk6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9
NDI5NDk2NzI5NSBzdWJqPXN5c3RlbV91OnN5c3RlbV9yOmluaXRfdDpzMCBtc2c9J3VuaXQ9c3lz
dGVtZC12Y29uc29sZS1zZXR1cCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3RlbWQv
c3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgIDM3
LjkzNDM0NV0gc3lzdGVtZFsxXTogU3RhcnRlZCBzeXN0ZW1kLWpvdXJuYWxkLnNlcnZpY2UgLSBK
b3VybmFsIFNlcnZpY2UuClsgICAzNy45MzY2NTJdIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcw
MzA4OTI4NC44NDQ6NSk6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5
NSBzdWJqPXN5c3RlbV91OnN5c3RlbV9yOmluaXRfdDpzMCBtc2c9J3VuaXQ9c3lzdGVtZC1qb3Vy
bmFsZCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5h
bWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgIDM4LjA1NDAwMV0gYXVkaXQ6
IHR5cGU9MTEzMSBhdWRpdCgxNzAzMDg5Mjg0Ljk2Mjo2KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0
OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IHN1Ymo9c3lzdGVtX3U6c3lzdGVtX3I6aW5pdF90OnMwIG1z
Zz0ndW5pdD1wbHltb3V0aC1zdGFydCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3Rl
bWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAg
IDM4LjE2NTU4NF0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzMDg5Mjg1LjA3Mzo3KTogcGlk
PTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IHN1Ymo9c3lzdGVtX3U6c3lz
dGVtX3I6aW5pdF90OnMwIG1zZz0ndW5pdD1rbW9kLXN0YXRpYy1ub2RlcyBjb21tPSJzeXN0ZW1k
IiBleGU9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWlu
YWw9PyByZXM9c3VjY2VzcycKWyAgIDM4LjI1NTc4OF0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgx
NzAzMDg5Mjg1LjE2Mzo4KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3
Mjk1IHN1Ymo9c3lzdGVtX3U6c3lzdGVtX3I6aW5pdF90OnMwIG1zZz0ndW5pdD1sdm0yLW1vbml0
b3IgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1l
PT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAzOC4yOTAxNjFdIGF1ZGl0OiB0
eXBlPTExMzAgYXVkaXQoMTcwMzA4OTI4NS4xOTg6OSk6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2
NzI5NSBzZXM9NDI5NDk2NzI5NSBzdWJqPXN5c3RlbV91OnN5c3RlbV9yOmluaXRfdDpzMCBtc2c9
J3VuaXQ9bW9kcHJvYmVAY29uZmlnZnMgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0
ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsg
ICAzOC4yOTI3MDddIGF1ZGl0OiB0eXBlPTExMzEgYXVkaXQoMTcwMzA4OTI4NS4xOTg6MTApOiBw
aWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgc3Viaj1zeXN0ZW1fdTpz
eXN0ZW1fcjppbml0X3Q6czAgbXNnPSd1bml0PW1vZHByb2JlQGNvbmZpZ2ZzIGNvbW09InN5c3Rl
bWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJt
aW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgMzguMzA2MTM3XSBhdWRpdDogdHlwZT0xMTMwIGF1ZGl0
KDE3MDMwODkyODUuMjE0OjExKTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0
OTY3Mjk1IHN1Ymo9c3lzdGVtX3U6c3lzdGVtX3I6aW5pdF90OnMwIG1zZz0ndW5pdD1tb2Rwcm9i
ZUBkbV9tb2QgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhv
c3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAzOC41NDY4NzVdIHN5
c3RlbWQtam91cm5hbGRbNzY3XTogUmVjZWl2ZWQgY2xpZW50IHJlcXVlc3QgdG8gZmx1c2ggcnVu
dGltZSBqb3VybmFsLgpbICAgMzguNjAzMjMwXSBzeXN0ZW1kLWpvdXJuYWxkWzc2N106IC92YXIv
bG9nL2pvdXJuYWwvYzgwYjc5ZWFlMTc5NDMwMmI3NmUwOWU1MjY1MTA2ZTMvc3lzdGVtLmpvdXJu
YWw6IEpvdXJuYWwgZmlsZSB1c2VzIGEgZGlmZmVyZW50IHNlcXVlbmNlIG51bWJlciBJRCwgcm90
YXRpbmcuClsgICAzOC42MDY2NzJdIHN5c3RlbWQtam91cm5hbGRbNzY3XTogUm90YXRpbmcgc3lz
dGVtIGpvdXJuYWwuClsgICAzOS4wNzQ2MTldIHpyYW0wOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFu
Z2UgZnJvbSAwIHRvIDE2Nzc3MjE2ClsgICAzOS4xNjM5MTJdIGFtZC1wbWYgQU1ESTAxMDI6MDA6
IHJlZ2lzdGVyZWQgUE1GIGRldmljZSBzdWNjZXNzZnVsbHkKWyAgIDM5LjE4MDgyOV0gcGlpeDRf
c21idXMgMDAwMDowMDoxNC4wOiBTTUJ1cyBIb3N0IENvbnRyb2xsZXIgYXQgMHhiMDAsIHJldmlz
aW9uIDAKWyAgIDM5LjE4MjY1Ml0gcGlpeDRfc21idXMgMDAwMDowMDoxNC4wOiBVc2luZyByZWdp
c3RlciAweDAyIGZvciBTTUJ1cyBwb3J0IHNlbGVjdGlvbgpbICAgMzkuMTg4MDM2XSBwaWl4NF9z
bWJ1cyAwMDAwOjAwOjE0LjA6IEF1eGlsaWFyeSBTTUJ1cyBIb3N0IENvbnRyb2xsZXIgYXQgMHhi
MjAKWyAgIDM5LjIwMDI4OF0gQUNQSTogYnVzIHR5cGUgdGh1bmRlcmJvbHQgcmVnaXN0ZXJlZApb
ICAgMzkuMjAxOTQ5XSB4ZW5fcmVnaXN0ZXJfZ3NpOiB4ZW46IHJlZ2lzdGVyaW5nIGdzaSA0NCB0
cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgMzkuMjAxOTUyXSB4ZW5fcmVnaXN0ZXJfcGlycTog
YmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSA0NCB0cmlnZ2VyaW5nIDAgc2V0X3BpcnEgMQpb
ICAgMzkuMjAxOTcyXSB4ZW5fcmVnaXN0ZXJfcGlycTogYWZ0ZXIgSFlQRVJWSVNPUl9waHlzZGV2
X29wLCBiZWZvcmUgeGVuX2JpbmRfcGlycV9nc2lfdG9faXJxOiBnc2kgNDQgdHJpZ2dlcmluZyAw
IHNoYXJlYWJsZSAxIG5hbWUgaW9hcGljLWxldmVsClsgICAzOS4yMDI1NzldIGlucHV0OiBQQyBT
cGVha2VyIGFzIC9kZXZpY2VzL3BsYXRmb3JtL3Bjc3Brci9pbnB1dC9pbnB1dDEyClsgICAzOS4y
MDM1NTFdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTQ0IC0+IGlycT00NCAoZ3Np
PTQ0KQpbICAgMzkuMjAzODYzXSB4ZW5fcmVnaXN0ZXJfZ3NpOiBCZWZvcmUgSFlQRVJWSVNPUl9w
aHlzZGV2X29wICBzZXR1cF9nc2kuZ3NpOiA0NCwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDEsIHNl
dHVwX2dzaS5wb2xhcml0eTogMQpbICAgMzkuMjUxNTI4XSB4ZW5fcmVnaXN0ZXJfZ3NpOiB4ZW46
IHJlZ2lzdGVyaW5nIGdzaSA0NSB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgMzkuMjUxNTM1
XSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdzaSA0NSB0cmln
Z2VyaW5nIDAgc2V0X3BpcnEgMQpbICAgMzkuMjUxNTcxXSB4ZW5fcmVnaXN0ZXJfcGlycTogYWZ0
ZXIgSFlQRVJWSVNPUl9waHlzZGV2X29wLCBiZWZvcmUgeGVuX2JpbmRfcGlycV9nc2lfdG9faXJx
OiBnc2kgNDUgdHJpZ2dlcmluZyAwIHNoYXJlYWJsZSAxIG5hbWUgaW9hcGljLWxldmVsClsgICAz
OS4yNTE2MDRdIHhlbl9yZWdpc3Rlcl9waXJxOiB4ZW46IC0tPiBwaXJxPTQ1IC0+IGlycT00NSAo
Z3NpPTQ1KQpbICAgMzkuMjUxNjA2XSB4ZW5fcmVnaXN0ZXJfZ3NpOiBCZWZvcmUgSFlQRVJWSVNP
Ul9waHlzZGV2X29wICBzZXR1cF9nc2kuZ3NpOiA0NSwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDEs
IHNldHVwX2dzaS5wb2xhcml0eTogMQpbICAgMzkuMjU2NTcwXSBjZmc4MDIxMTogTG9hZGluZyBj
b21waWxlZC1pbiBYLjUwOSBjZXJ0aWZpY2F0ZXMgZm9yIHJlZ3VsYXRvcnkgZGF0YWJhc2UKWyAg
IDM5LjI2ODA2MF0gTG9hZGVkIFguNTA5IGNlcnQgJ3Nmb3JzaGVlOiAwMGIyOGRkZjQ3YWVmOWNl
YTcnClsgICAzOS4yOTk0NTBdIEFkZGluZyA4Mzg4NjA0ayBzd2FwIG9uIC9kZXYvenJhbTAuICBQ
cmlvcml0eToxMDAgZXh0ZW50czoxIGFjcm9zczo4Mzg4NjA0ayBTU0RzYwpbICAgMzkuMzMwNzY4
XSBCbHVldG9vdGg6IENvcmUgdmVyIDIuMjIKWyAgIDM5LjMzNTQxNF0gTkVUOiBSZWdpc3RlcmVk
IFBGX0JMVUVUT09USCBwcm90b2NvbCBmYW1pbHkKWyAgIDM5LjMzNzIwMl0gQmx1ZXRvb3RoOiBI
Q0kgZGV2aWNlIGFuZCBjb25uZWN0aW9uIG1hbmFnZXIgaW5pdGlhbGl6ZWQKWyAgIDM5LjMzOTEz
N10gQmx1ZXRvb3RoOiBIQ0kgc29ja2V0IGxheWVyIGluaXRpYWxpemVkClsgICAzOS4zNDMyNjFd
IEJsdWV0b290aDogTDJDQVAgc29ja2V0IGxheWVyIGluaXRpYWxpemVkClsgICAzOS4zNDQ4MDhd
IEJsdWV0b290aDogU0NPIHNvY2tldCBsYXllciBpbml0aWFsaXplZApbICAgMzkuMzYzMzk1XSB1
c2IgMS01OiB1c2luZyBBQ1BJICdcX1NCLlBDSTAuR1AxNy5YSEMwLlJIVUIuUFJUNScgZm9yICdy
ZXNldCcgR1BJTyBsb29rdXAKWyAgIDM5LjM2MzQxMF0gYWNwaSBkZXZpY2U6Mjk6IEdQSU86IGxv
b2tpbmcgdXAgcmVzZXQtZ3Bpb3MKWyAgIDM5LjM2MzQxM10gYWNwaSBkZXZpY2U6Mjk6IEdQSU86
IGxvb2tpbmcgdXAgcmVzZXQtZ3BpbwpbICAgMzkuMzYzNDE1XSB1c2IgMS01OiB1c2luZyBsb29r
dXAgdGFibGVzIGZvciBHUElPIGxvb2t1cApbICAgMzkuMzYzNDE3XSB1c2IgMS01OiBObyBHUElP
IGNvbnN1bWVyIHJlc2V0IGZvdW5kClsgICAzOS4zNjM1NzFdIHVzYmNvcmU6IHJlZ2lzdGVyZWQg
bmV3IGludGVyZmFjZSBkcml2ZXIgYnR1c2IKWyAgIDM5LjM2OTI1OV0gQmx1ZXRvb3RoOiBoY2kw
OiBIVy9TVyBWZXJzaW9uOiAweDAwOGEwMDhhLCBCdWlsZCBUaW1lOiAyMDIzMTEyMDE4MzYyMApb
ICAgMzkuNTExMDY2XSBCbHVldG9vdGg6IGhjaTA6IERldmljZSBzZXR1cCBpbiAxNDM5NTggdXNl
Y3MKWyAgIDM5LjUxMzM4NF0gQmx1ZXRvb3RoOiBoY2kwOiBIQ0kgRW5oYW5jZWQgU2V0dXAgU3lu
Y2hyb25vdXMgQ29ubmVjdGlvbiBjb21tYW5kIGlzIGFkdmVydGlzZWQsIGJ1dCBub3Qgc3VwcG9y
dGVkLgpbICAgMzkuNTczOTcxXSBCbHVldG9vdGg6IGhjaTA6IEFPU1AgZXh0ZW5zaW9ucyB2ZXJz
aW9uIHYxLjAwClsgICAzOS41NzYwNDBdIEJsdWV0b290aDogaGNpMDogQU9TUCBxdWFsaXR5IHJl
cG9ydCBpcyBzdXBwb3J0ZWQKWyAgIDM5LjYwOTgwNl0gbXQ3OTIxZSAwMDAwOjAxOjAwLjA6IGVu
YWJsaW5nIGRldmljZSAoMDAwMCAtPiAwMDAyKQpbICAgMzkuNjEyMzA2XSB4ZW5fcmVnaXN0ZXJf
Z3NpOiB4ZW46IHJlZ2lzdGVyaW5nIGdzaSA0NiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAg
MzkuNjEyMzEzXSB4ZW5fcmVnaXN0ZXJfcGlycTogYmVmb3JlIHhlbl9pcnFfZnJvbV9nc2k6IGdz
aSA0NiB0cmlnZ2VyaW5nIDAgc2V0X3BpcnEgMQpbICAgMzkuNjEyMzU3XSB4ZW5fcmVnaXN0ZXJf
Z3NpOiBCZWZvcmUgSFlQRVJWSVNPUl9waHlzZGV2X29wICBzZXR1cF9nc2kuZ3NpOiA0Niwgc2V0
dXBfZ3NpLnRyaWdnZXJpbmc6IDEsIHNldHVwX2dzaS5wb2xhcml0eTogMQpbICAgMzkuNjEyMzcx
XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjQ2ClsgICAzOS42NDc2NjFdIG10NzkyMWUgMDAwMDow
MTowMC4wOiBBU0lDIHJldmlzaW9uOiA3OTIyMDAxMApbICAgMzkuNzMyNjExXSBtdDc5MjFlIDAw
MDA6MDE6MDAuMDogSFcvU1cgVmVyc2lvbjogMHg4YTEwOGExMCwgQnVpbGQgVGltZTogMjAyMzEx
MjAxODM0MDBhCgpbICAgMzkuNzY4OTIyXSBtdDc5MjFlIDAwMDA6MDE6MDAuMDogV00gRmlybXdh
cmUgVmVyc2lvbjogX19fXzAwMDAwMCwgQnVpbGQgVGltZTogMjAyMzExMjAxODM0NDEKWyAgIDQw
LjIyNDI5OF0gUlBDOiBSZWdpc3RlcmVkIG5hbWVkIFVOSVggc29ja2V0IHRyYW5zcG9ydCBtb2R1
bGUuClsgICA0MC4yMjU3NThdIFJQQzogUmVnaXN0ZXJlZCB1ZHAgdHJhbnNwb3J0IG1vZHVsZS4K
WyAgIDQwLjIyNjc5NV0gUlBDOiBSZWdpc3RlcmVkIHRjcCB0cmFuc3BvcnQgbW9kdWxlLgpbICAg
NDAuMjI3NjAxXSBSUEM6IFJlZ2lzdGVyZWQgdGNwLXdpdGgtdGxzIHRyYW5zcG9ydCBtb2R1bGUu
ClsgICA0MC4yMjgzNTNdIFJQQzogUmVnaXN0ZXJlZCB0Y3AgTkZTdjQuMSBiYWNrY2hhbm5lbCB0
cmFuc3BvcnQgbW9kdWxlLgpbICAgNDAuNTg0MjgwXSBCbHVldG9vdGg6IEJORVAgKEV0aGVybmV0
IEVtdWxhdGlvbikgdmVyIDEuMwpbICAgNDAuNTg1NTQ1XSBCbHVldG9vdGg6IEJORVAgZmlsdGVy
czogcHJvdG9jb2wgbXVsdGljYXN0ClsgICA0MC41ODgzMTFdIEJsdWV0b290aDogQk5FUCBzb2Nr
ZXQgbGF5ZXIgaW5pdGlhbGl6ZWQKWyAgIDQwLjU5MTU1Ml0gQmx1ZXRvb3RoOiBNR01UIHZlciAx
LjIyClsgICA0MC44OTkwNzhdIG10NzkyMWUgMDAwMDowMTowMC4wIHdscDFzMDogcmVuYW1lZCBm
cm9tIHdsYW4wClsgICA0MC45ODcyOThdIE5FVDogUmVnaXN0ZXJlZCBQRl9RSVBDUlRSIHByb3Rv
Y29sIGZhbWlseQpbICAgNDEuNDI5ODIwXSByODE1MiA4LTEuMToxLjAgZW5wMTk1czBmNHUxdTE6
IGNhcnJpZXIgb24KWyAgIDQ1LjU0NTYxMV0gd2xwMXMwOiBhdXRoZW50aWNhdGUgd2l0aCA2MDoy
MjozMjozNzoyMDo0NgpbICAgNDYuMDUxMjI1XSB3bHAxczA6IHNlbmQgYXV0aCB0byA2MDoyMjoz
MjozNzoyMDo0NiAodHJ5IDEvMykKWyAgIDQ2LjE3MTU5Ml0gd2xwMXMwOiBhdXRoZW50aWNhdGUg
d2l0aCA2MDoyMjozMjozNzoyMDo0NgpbICAgNDYuMTgxMjU1XSB3bHAxczA6IHNlbmQgYXV0aCB0
byA2MDoyMjozMjozNzoyMDo0NiAodHJ5IDEvMykKWyAgIDQ2LjIxMjk2MV0gd2xwMXMwOiBhdXRo
ZW50aWNhdGVkClsgICA0Ni4yMTY4OTBdIHdscDFzMDogYXNzb2NpYXRlIHdpdGggNjA6MjI6MzI6
Mzc6MjA6NDYgKHRyeSAxLzMpClsgICA0Ni4yMzEwMzVdIHdscDFzMDogUlggQXNzb2NSZXNwIGZy
b20gNjA6MjI6MzI6Mzc6MjA6NDYgKGNhcGFiPTB4MTExMSBzdGF0dXM9MCBhaWQ9MTApClsgICA0
Ni4yNjU2NzldIHdscDFzMDogYXNzb2NpYXRlZApbICAgNDYuMjY3MDQ2XSB3bHAxczA6IExpbWl0
aW5nIFRYIHBvd2VyIHRvIDIzICgyMyAtIDApIGRCbSBhcyBhZHZlcnRpc2VkIGJ5IDYwOjIyOjMy
OjM3OjIwOjQ2ClsgICA2MC4wMTE4NzRdIHN5c3RlbWQtam91cm5hbGRbNzY3XTogL3Zhci9sb2cv
am91cm5hbC9jODBiNzllYWUxNzk0MzAyYjc2ZTA5ZTUyNjUxMDZlMy91c2VyLTEwMDAuam91cm5h
bDogSm91cm5hbCBmaWxlIHVzZXMgYSBkaWZmZXJlbnQgc2VxdWVuY2UgbnVtYmVyIElELCByb3Rh
dGluZy4K
--000000000000a1626a060cf38e3a
Content-Type: text/x-patch; charset="US-ASCII"; name="linux-debug_xen_irq_setup.diff"
Content-Disposition: attachment; filename="linux-debug_xen_irq_setup.diff"
Content-Transfer-Encoding: base64
Content-ID: <f_lqdzuh0g2>
X-Attachment-Id: f_lqdzuh0g2

ZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS94ZW4uYyBiL2FyY2gveDg2L3BjaS94ZW4uYwppbmRl
eCA2NTJjZDUzZTc3ZjYuLmNjZWUzZTMzMWViOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL3hl
bi5jCisrKyBiL2FyY2gveDg2L3BjaS94ZW4uYwpAQCAtNjksNiArNjksOCBAQCBzdGF0aWMgaW50
IHhlbl9yZWdpc3Rlcl9waXJxKHUzMiBnc2ksIGludCB0cmlnZ2VyaW5nLCBib29sIHNldF9waXJx
KQogCWludCBzaGFyZWFibGUgPSAwOwogCWNoYXIgKm5hbWU7CiAKKwlwcmludGsoS0VSTl9ERUJV
RyAieGVuX3JlZ2lzdGVyX3BpcnE6IGJlZm9yZSB4ZW5faXJxX2Zyb21fZ3NpOiBnc2kgJXUgdHJp
Z2dlcmluZyAlaSBzZXRfcGlycSAlZFxuIiwgZ3NpLCB0cmlnZ2VyaW5nLCBzZXRfcGlycSk7CisK
IAlpcnEgPSB4ZW5faXJxX2Zyb21fZ3NpKGdzaSk7CiAJaWYgKGlycSA+IDApCiAJCXJldHVybiBp
cnE7CkBAIC05NCwxMiArOTYsMTMgQEAgc3RhdGljIGludCB4ZW5fcmVnaXN0ZXJfcGlycSh1MzIg
Z3NpLCBpbnQgdHJpZ2dlcmluZywgYm9vbCBzZXRfcGlycSkKIAkJc2hhcmVhYmxlID0gMTsKIAkJ
bmFtZSA9ICJpb2FwaWMtbGV2ZWwiOwogCX0KKwlwcmludGsoS0VSTl9ERUJVRyAieGVuX3JlZ2lz
dGVyX3BpcnE6IGFmdGVyIEhZUEVSVklTT1JfcGh5c2Rldl9vcCwgYmVmb3JlIHhlbl9iaW5kX3Bp
cnFfZ3NpX3RvX2lycTogZ3NpICV1IHRyaWdnZXJpbmcgJWkgc2hhcmVhYmxlICVpIG5hbWUgJXNc
biIsIGdzaSwgdHJpZ2dlcmluZywgc2hhcmVhYmxlLCBuYW1lKTsKIAogCWlycSA9IHhlbl9iaW5k
X3BpcnFfZ3NpX3RvX2lycShnc2ksIG1hcF9pcnEucGlycSwgc2hhcmVhYmxlLCBuYW1lKTsKIAlp
ZiAoaXJxIDwgMCkKIAkJZ290byBvdXQ7CiAKLQlwcmludGsoS0VSTl9ERUJVRyAieGVuOiAtLT4g
cGlycT0lZCAtPiBpcnE9JWQgKGdzaT0lZClcbiIsIG1hcF9pcnEucGlycSwgaXJxLCBnc2kpOwor
CXByaW50ayhLRVJOX0RFQlVHICJ4ZW5fcmVnaXN0ZXJfcGlycTogeGVuOiAtLT4gcGlycT0lZCAt
PiBpcnE9JWQgKGdzaT0lZClcbiIsIG1hcF9pcnEucGlycSwgaXJxLCBnc2kpOwogb3V0OgogCXJl
dHVybiBpcnE7CiB9CkBAIC0xMjMsNyArMTI2LDcgQEAgc3RhdGljIGludCB4ZW5fcmVnaXN0ZXJf
Z3NpKHUzMiBnc2ksIGludCB0cmlnZ2VyaW5nLCBpbnQgcG9sYXJpdHkpCiAJaWYgKCF4ZW5fcHZf
ZG9tYWluKCkpCiAJCXJldHVybiAtMTsKIAotCXByaW50ayhLRVJOX0RFQlVHICJ4ZW46IHJlZ2lz
dGVyaW5nIGdzaSAldSB0cmlnZ2VyaW5nICVkIHBvbGFyaXR5ICVkXG4iLAorCXByaW50ayhLRVJO
X0RFQlVHICJ4ZW5fcmVnaXN0ZXJfZ3NpOiB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAldSB0cmlnZ2Vy
aW5nICVpIHBvbGFyaXR5ICVpXG4iLAogCQkJZ3NpLCB0cmlnZ2VyaW5nLCBwb2xhcml0eSk7CiAK
IAlpcnEgPSB4ZW5fcmVnaXN0ZXJfcGlycShnc2ksIHRyaWdnZXJpbmcsIHRydWUpOwpAQCAtMTMy
LDYgKzEzNSw4IEBAIHN0YXRpYyBpbnQgeGVuX3JlZ2lzdGVyX2dzaSh1MzIgZ3NpLCBpbnQgdHJp
Z2dlcmluZywgaW50IHBvbGFyaXR5KQogCXNldHVwX2dzaS50cmlnZ2VyaW5nID0gKHRyaWdnZXJp
bmcgPT0gQUNQSV9FREdFX1NFTlNJVElWRSA/IDAgOiAxKTsKIAlzZXR1cF9nc2kucG9sYXJpdHkg
PSAocG9sYXJpdHkgPT0gQUNQSV9BQ1RJVkVfSElHSCA/IDAgOiAxKTsKIAorICAgIHByaW50ayhL
RVJOX0RFQlVHICJ4ZW5fcmVnaXN0ZXJfZ3NpOiBCZWZvcmUgSFlQRVJWSVNPUl9waHlzZGV2X29w
ICBzZXR1cF9nc2kuZ3NpOiAldSwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6ICVpLCBzZXR1cF9nc2ku
cG9sYXJpdHk6ICVpXG4iLCBzZXR1cF9nc2kuZ3NpLCBzZXR1cF9nc2kudHJpZ2dlcmluZywgc2V0
dXBfZ3NpLnBvbGFyaXR5KTsKKyAgIAogCXJjID0gSFlQRVJWSVNPUl9waHlzZGV2X29wKFBIWVNE
RVZPUF9zZXR1cF9nc2ksICZzZXR1cF9nc2kpOwogCWlmIChyYyA9PSAtRUVYSVNUKQogCQlwcmlu
dGsoS0VSTl9JTkZPICJBbHJlYWR5IHNldHVwIHRoZSBHU0kgOiVkXG4iLCBnc2kpOwo=
--000000000000a1626a060cf38e3a
Content-Type: application/octet-stream; 
	name="xl-dmesg-xen-4.17.3-pre-6.6.7xen-irq-dbg-1+"
Content-Disposition: attachment; 
	filename="xl-dmesg-xen-4.17.3-pre-6.6.7xen-irq-dbg-1+"
Content-Transfer-Encoding: base64
Content-ID: <f_lqdzuh0j4>
X-Attachment-Id: f_lqdzuh0j4

KFhFTikgcGFyYW1ldGVyICJpcnFfZGVhZGxpbmVfbXMiIHVua25vd24hCiBYZW4gNC4xNy4zLXBy
ZQooWEVOKSBYZW4gdmVyc2lvbiA0LjE3LjMtcHJlIChzY2hAKSAoZ2NjIChHQ0MpIDEzLjIuMSAy
MDIzMTIwNSAoUmVkIEhhdCAxMy4yLjEtNikpIGRlYnVnPXkgTW9uIERlYyAxOCAxNjo0NzozMSBD
RVQgMjAyMwooWEVOKSBMYXRlc3QgQ2hhbmdlU2V0OiBNb24gRGVjIDE4IDE2OjIzOjE0IDIwMjMg
KzAxMDAgZ2l0Ojg5NjEyY2Y3MzIKKFhFTikgYnVpbGQtaWQ6IDdiMDViM2Y5MGMxNjBhZWY3YjM0
MGQxZWNkNzg0YjM3ZTE1MDdjZmQKKFhFTikgQm9vdGxvYWRlcjogR1JVQiAyLjA2CihYRU4pIENv
bW1hbmQgbGluZTogcGxhY2Vob2xkZXIgaXJxX2RlYWRsaW5lX21zPTQwIG5vLXJlYWwtbW9kZSBl
ZGQ9b2ZmCihYRU4pIFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzczogMHg0ZjQwMDAwMAooWEVO
KSBWaWRlbyBpbmZvcm1hdGlvbjoKKFhFTikgIFZHQSBpcyBncmFwaGljcyBtb2RlIDIyNTZ4MTUw
NCwgMzIgYnBwCihYRU4pIERpc2MgaW5mb3JtYXRpb246CihYRU4pICBGb3VuZCAwIE1CUiBzaWdu
YXR1cmVzCihYRU4pICBGb3VuZCAxIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzCihYRU4pIENQ
VSBWZW5kb3I6IEFNRCwgRmFtaWx5IDI1ICgweDE5KSwgTW9kZWwgMTE2ICgweDc0KSwgU3RlcHBp
bmcgMSAocmF3IDAwYTcwZjQxKQooWEVOKSBFbmFibGluZyBTdXBlcnZpc29yIFNoYWRvdyBTdGFj
a3MKKFhFTikgRUZJIFJBTSBtYXA6CihYRU4pICBbMDAwMDAwMDAwMDAwMDAwMCwgMDAwMDAwMDAw
MDA5ZWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMDAwMDlmMDAwLCAwMDAwMDAwMDAwMGJm
ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDAwMDEwMDAwMCwgMDAwMDAwMDAwOWFmZmZm
Zl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMDA5YjAwMDAwLCAwMDAwMDAwMDA5ZGZmZmZmXSAo
cmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDAwOWUwMDAwMCwgMDAwMDAwMDAwOWVmZmZmZl0gKHVz
YWJsZSkKKFhFTikgIFswMDAwMDAwMDA5ZjAwMDAwLCAwMDAwMDAwMDA5ZjNiZmZmXSAoQUNQSSBO
VlMpCihYRU4pICBbMDAwMDAwMDAwOWYzYzAwMCwgMDAwMDAwMDA0MjM1ZmZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwMDQyMzYwMDAwLCAwMDAwMDAwMDQ0NTVmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pICBbMDAwMDAwMDA0NDU2MDAwMCwgMDAwMDAwMDA0NDU2OGZmZl0gKHVzYWJsZSkKKFhFTikg
IFswMDAwMDAwMDQ0NTY5MDAwLCAwMDAwMDAwMDQ0NTZjZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBb
MDAwMDAwMDA0NDU2ZDAwMCwgMDAwMDAwMDA0NDU2ZWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAw
MDAwMDQ0NTZmMDAwLCAwMDAwMDAwMDQ0NTZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAw
MDA0NDU3MDAwMCwgMDAwMDAwMDA1MDc3ZWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMDUw
NzdmMDAwLCAwMDAwMDAwMDUyZjdlZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDA1MmY3
ZjAwMCwgMDAwMDAwMDA1YWY3ZWZmZl0gKEFDUEkgTlZTKQooWEVOKSAgWzAwMDAwMDAwNWFmN2Yw
MDAsIDAwMDAwMDAwNWFmZmVmZmZdIChBQ1BJIGRhdGEpCihYRU4pICBbMDAwMDAwMDA1YWZmZjAw
MCwgMDAwMDAwMDA1YWZmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMDViMDAwMDAwLCAw
MDAwMDAwMDViZmZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDA1ZDc5MDAwMCwgMDAw
MDAwMDA1ZDdlZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwNWQ3ZjUwMDAsIDAwMDAw
MDAwNWZmZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGMwMzAwMDAwLCAwMDAwMDAw
MGMwM2ZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWQ4MDAwMCwgMDAwMDAwMDBm
ZWQ4MGZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmYwMDAwMDAsIDAwMDAwMDAwZmZm
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMTAwMDAwMDAwLCAwMDAwMDAxMDdlMmZm
ZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDEwODAwMDAwMDAsIDAwMDAwMDEwYzAxZmZmZmZd
IChyZXNlcnZlZCkKKFhFTikgQUNQSTogUlNEUCA1QUZGRTAxNCwgMDAyNCAocjIgSU5TWURFKQoo
WEVOKSBBQ1BJOiBYU0RUIDVBRjlFMjI4LCAwMTZDIChyMSBJTlNZREUgRURLMiAgICAgICAgICAg
IDIgICAgICAgMTAwMDAxMykKKFhFTikgQUNQSTogRkFDUCA1QUZFRjAwMCwgMDEwQyAocjUgSU5T
WURFIEVESzIgICAgICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEkgV2FybmluZyAo
dGJmYWR0LTA0NTkpOiBPcHRpb25hbCBmaWVsZCAiUG0yQ29udHJvbEJsb2NrIiBoYXMgemVybyBh
ZGRyZXNzIG9yIGxlbmd0aDogMDAwMDAwMDAwMDAwMDAwMC8xIFsyMDA3MDEyNl0KKFhFTikgQUNQ
STogRFNEVCA1QUZERjAwMCwgOTNBNiAocjIgSU5TWURFIEVESzIgICAgICAgICAgICAyIEFDUEkg
ICAgNDAwMDApCihYRU4pIEFDUEk6IEZBQ1MgNUFFQjcwMDAsIDAwNDAKKFhFTikgQUNQSTogVUVG
SSA1QUY2NzAwMCwgMDFDRiAocjEgSU5TWURFIEVESzIgICAgICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgNUFGRjQwMDAsIDg0MTYgKHIyIElOU1lERSBFREsyICAgICAg
ICAgICAgMiBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIDVBRkYyMDAwLCAwQUJEIChy
MiBJTlNZREUgRURLMiAgICAgICAgIDEwMDAgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQVNG
ISA1QUZGMTAwMCwgMDBBNSAocjMyIElOU1lERSBFREsyICAgICAgICAgICAgMiBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBCT09UIDVBRkYwMDAwLCAwMDI4IChyMSBJTlNZREUgRURLMiAgICAg
ICAgICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogSFBFVCA1QUZFRTAwMCwgMDAzOCAo
cjEgSU5TWURFIEVESzIgICAgICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IEFQ
SUMgNUFGRUQwMDAsIDAxMzggKHIzIElOU1lERSBFREsyICAgICAgICAgICAgMiBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBNQ0ZHIDVBRkVDMDAwLCAwMDNDIChyMSBJTlNZREUgRURLMiAgICAg
ICAgICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU0xJQyA1QUZFQjAwMCwgMDE3NiAo
cjEgSU5TWURFIEVESzIgICAgICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFZG
Q1QgNUFGREEwMDAsIDQyODQgKHIxIElOU1lERSBFREsyICAgICAgICAgICAgMSBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBTU0RUIDVBRkQ5MDAwLCAwMEY4IChyMiBJTlNZREUgRURLMiAgICAg
ICAgIDEwMDAgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCA1QUZEMzAwMCwgNTQ3RSAo
cjIgSU5TWURFIEVESzIgICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IENS
QVQgNUFGRDIwMDAsIDBGMTAgKHIxIElOU1lERSBFREsyICAgICAgICAgICAgMSBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBDRElUIDVBRkQxMDAwLCAwMDI5IChyMSBJTlNZREUgRURLMiAgICAg
ICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCA1QUZEMDAwMCwgMEY4RCAo
cjIgSU5TWURFIEVESzIgICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNT
RFQgNUFGQ0YwMDAsIDBFQzEgKHIyIElOU1lERSBFREsyICAgICAgICAgICAgMSBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBTU0RUIDVBRkNFMDAwLCAwOTMxIChyMiBJTlNZREUgRURLMiAgICAg
ICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCA1QUZDQjAwMCwgMTNFQyAo
cjIgSU5TWURFIEVESzIgICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNT
RFQgNUFGRkQwMDAsIDA3N0EgKHIyIElOU1lERSBFREsyICAgICAgICAgICAgMSBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBTU0RUIDVBRkNBMDAwLCAwNzM3IChyMiBJTlNZREUgRURLMiAgICAg
ICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCA1QUZDODAwMCwgMTVDOCAo
cjIgSU5TWURFIEVESzIgICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNT
RFQgNUFGQzUwMDAsIDJBOEYgKHIyIElOU1lERSBFREsyICAgICAgICAgICAgMSBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBTU0RUIDVBRkJCMDAwLCA5ODIxIChyMiBJTlNZREUgRURLMiAgICAg
ICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogRlBEVCA1QUZCQTAwMCwgMDA0NCAo
cjEgSU5TWURFIEVESzIgICAgICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IEJH
UlQgNUFGQjkwMDAsIDAwMzggKHIxIElOU1lERSBFREsyICAgICAgICAgICAgMiBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBXU01UIDVBRkI4MDAwLCAwMDI4IChyMSBJTlNZREUgRURLMiAgICAg
ICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogTUhTUCA1QUZFQTAwMCwgMDBDOCAo
cjQgSU5TWURFIEVESzIgICAgIDIwNTA1MzQ4IEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNT
RFQgNUFGRTkwMDAsIDAwRTUgKHIyIElOU1lERSBFREsyICAgICAgICAgICAgNCBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBJVlJTIDVBRkI3MDAwLCAwMUE0IChyMiBJTlNZREUgRURLMiAgICAg
ICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCA1QUZCNjAwMCwgMDc0NyAo
cjIgSU5TWURFIEVESzIgICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNT
RFQgNUFGQjUwMDAsIDBDODggKHIyIElOU1lERSBFREsyICAgICAgICAgICAgMSBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBTU0RUIDVBRkI0MDAwLCAwMDU3IChyMiBJTlNZREUgRURLMiAgICAg
ICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCA1QUZCMjAwMCwgMTcwQiAo
cjIgSU5TWURFIEVESzIgICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNT
RFQgNUFGQjEwMDAsIDBGRjcgKHIyIElOU1lERSBFREsyICAgICAgICAgICAgMSBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBTU0RUIDVBRkE3MDAwLCA5N0UzIChyMiBJTlNZREUgRURLMiAgICAg
ICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCA1QUZBMjAwMCwgNEZFQiAo
cjIgSU5TWURFIEVESzIgICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNT
RFQgNUFGQTEwMDAsIDBDN0YgKHIyIElOU1lERSBFREsyICAgICAgICAgICAgMSBBQ1BJICAgIDQw
MDAwKQooWEVOKSBBQ1BJOiBTU0RUIDVBRkEwMDAwLCAwOTU2IChyMiBJTlNZREUgRURLMiAgICAg
ICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCA1QUY5RjAwMCwgMDA4RCAo
cjIgSU5TWURFIEVESzIgICAgICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNT
RFQgNUFGQ0QwMDAsIDBFQUQgKHIyIElOU1lERSBFREsyICAgICAgICAgICAgMSBBQ1BJICAgIDQw
MDAwKQooWEVOKSBTeXN0ZW0gUkFNOiA2NDcwOE1CICg2NjI2MTg4MGtCKQooWEVOKSBObyBOVU1B
IGNvbmZpZ3VyYXRpb24gZm91bmQKKFhFTikgRmFraW5nIGEgbm9kZSBhdCAwMDAwMDAwMDAwMDAw
MDAwLTAwMDAwMDEwN2UzMDAwMDAKKFhFTikgRG9tYWluIGhlYXAgaW5pdGlhbGlzZWQKKFhFTikg
dmVzYWZiOiBmcmFtZWJ1ZmZlciBhdCAweDAwMDAwMDg4MDAwMDAwMDAsIG1hcHBlZCB0byAweGZm
ZmY4MmMwMDAyMDEwMDAsIHVzaW5nIDEzNTY4aywgdG90YWwgMTM1NjhrCihYRU4pIHZlc2FmYjog
bW9kZSBpcyAyMjU2eDE1MDR4MzIsIGxpbmVsZW5ndGg9OTIxNiwgZm9udCA4eDE2CihYRU4pIHZl
c2FmYjogVHJ1ZWNvbG9yOiBzaXplPTg6ODo4OjgsIHNoaWZ0PTI0OjE2Ojg6MAooWEVOKSBTTUJJ
T1MgMy41IHByZXNlbnQuCihYRU4pIFVzaW5nIEFQSUMgZHJpdmVyIGRlZmF1bHQKKFhFTikgQUNQ
STogUE0tVGltZXIgSU8gUG9ydDogMHg0MDggKDMyIGJpdHMpCihYRU4pIEFDUEk6IHY1IFNMRUVQ
IElORk86IGNvbnRyb2xbMDowXSwgc3RhdHVzWzA6MF0KKFhFTikgQUNQSTogU0xFRVAgSU5GTzog
cG0xeF9jbnRbMTo0MDQsMTowXSwgcG0xeF9ldnRbMTo0MDAsMTowXQooWEVOKSBBQ1BJOiAzMi82
NFggRkFDUyBhZGRyZXNzIG1pc21hdGNoIGluIEZBRFQgLSA1YWViNzAwMC8wMDAwMDAwMDAwMDAw
MDAwLCB1c2luZyAzMgooWEVOKSBBQ1BJOiAgICAgICAgICAgICB3YWtldXBfdmVjWzVhZWI3MDBj
XSwgdmVjX3NpemVbMjBdCihYRU4pIEFDUEk6IExvY2FsIEFQSUMgYWRkcmVzcyAweGZlZTAwMDAw
CihYRU4pIE92ZXJyaWRpbmcgQVBJQyBkcml2ZXIgd2l0aCBiaWdzbXAKKFhFTikgQUNQSTogSU9B
UElDIChpZFsweDIxXSBhZGRyZXNzWzB4ZmVjMDAwMDBdIGdzaV9iYXNlWzBdKQooWEVOKSBJT0FQ
SUNbMF06IGFwaWNfaWQgMzMsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAt
MjMKKFhFTikgQUNQSTogSU9BUElDIChpZFsweDIyXSBhZGRyZXNzWzB4ZmVjMDEwMDBdIGdzaV9i
YXNlWzI0XSkKKFhFTikgSU9BUElDWzFdOiBhcGljX2lkIDM0LCB2ZXJzaW9uIDMzLCBhZGRyZXNz
IDB4ZmVjMDEwMDAsIEdTSSAyNC01NQooWEVOKSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVz
X2lycSAwIGdsb2JhbF9pcnEgMiBkZmwgZGZsKQooWEVOKSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVz
IDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpCihYRU4pIEFDUEk6IElSUTAgdXNl
ZCBieSBvdmVycmlkZS4KKFhFTikgQUNQSTogSVJRMiB1c2VkIGJ5IG92ZXJyaWRlLgooWEVOKSBB
Q1BJOiBJUlE5IHVzZWQgYnkgb3ZlcnJpZGUuCihYRU4pIEFDUEk6IEhQRVQgaWQ6IDB4MTAyMjgy
MTAgYmFzZTogMHhmZWQwMDAwMAooWEVOKSBQQ0k6IE1DRkcgY29uZmlndXJhdGlvbiAwOiBiYXNl
IGUwMDAwMDAwIHNlZ21lbnQgMDAwMCBidXNlcyAwMCAtIGZmCihYRU4pIFBDSTogTm90IHVzaW5n
IE1DRkcgZm9yIHNlZ21lbnQgMDAwMCBidXMgMDAtZmYKKFhFTikgQUNQSTogQkdSVDogaW52YWxp
ZGF0aW5nIHYxIGltYWdlIGF0IDB4NGI4MjIwMTgKKFhFTikgVXNpbmcgQUNQSSAoTUFEVCkgZm9y
IFNNUCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uCihYRU4pIFNNUDogQWxsb3dpbmcgMTYgQ1BV
cyAoMCBob3RwbHVnIENQVXMpCihYRU4pIElSUSBsaW1pdHM6IDU2IEdTSSwgMzI3MiBNU0kvTVNJ
LVgKKFhFTikgQU1ELVZpOiBJT01NVSBFeHRlbmRlZCBGZWF0dXJlczoKKFhFTikgLSBQZXJpcGhl
cmFsIFBhZ2UgU2VydmljZSBSZXF1ZXN0CihYRU4pIC0gTlggYml0CihYRU4pIC0gR3Vlc3QgQVBJ
QyBQaHlzaWNhbCBQcm9jZXNzb3IgSW50ZXJydXB0CihYRU4pIC0gSW52YWxpZGF0ZSBBbGwgQ29t
bWFuZAooWEVOKSAtIEd1ZXN0IEFQSUMKKFhFTikgLSBQZXJmb3JtYW5jZSBDb3VudGVycwooWEVO
KSAtIEhvc3QgQWRkcmVzcyBUcmFuc2xhdGlvbiBTaXplOiAweDIKKFhFTikgLSBHdWVzdCBBZGRy
ZXNzIFRyYW5zbGF0aW9uIFNpemU6IDAKKFhFTikgLSBHdWVzdCBDUjMgUm9vdCBUYWJsZSBMZXZl
bDogMHgxCihYRU4pIC0gTWF4aW11bSBQQVNJRDogMHhmCihYRU4pIC0gU01JIEZpbHRlciBSZWdp
c3RlcjogMHgxCihYRU4pIC0gU01JIEZpbHRlciBSZWdpc3RlciBDb3VudDogMHgxCihYRU4pIC0g
R3Vlc3QgVmlydHVhbCBBUElDIE1vZGVzOiAweDEKKFhFTikgLSBEdWFsIFBQUiBMb2c6IDB4Mgoo
WEVOKSAtIER1YWwgRXZlbnQgTG9nOiAweDIKKFhFTikgLSBTZWN1cmUgQVRTCihYRU4pIC0gVXNl
ciAvIFN1cGVydmlzb3IgUGFnZSBQcm90ZWN0aW9uCihYRU4pIC0gRGV2aWNlIFRhYmxlIFNlZ21l
bnRhdGlvbjogMHgzCihYRU4pIC0gUFBSIExvZyBPdmVyZmxvdyBFYXJseSBXYXJuaW5nCihYRU4p
IC0gUFBSIEF1dG9tYXRpYyBSZXNwb25zZQooWEVOKSAtIE1lbW9yeSBBY2Nlc3MgUm91dGluZyBh
bmQgQ29udHJvbDogMHgxCihYRU4pIC0gQmxvY2sgU3RvcE1hcmsgTWVzc2FnZQooWEVOKSAtIFBl
cmZvcm1hbmNlIE9wdGltaXphdGlvbgooWEVOKSAtIE1TSSBDYXBhYmlsaXR5IE1NSU8gQWNjZXNz
CihYRU4pIC0gR3Vlc3QgSS9PIFByb3RlY3Rpb24KKFhFTikgLSBFbmhhbmNlZCBQUFIgSGFuZGxp
bmcKKFhFTikgLSBJbnZhbGlkYXRlIElPVExCIFR5cGUKKFhFTikgLSBWTSBUYWJsZSBTaXplOiAw
eDIKKFhFTikgLSBHdWVzdCBBY2Nlc3MgQml0IFVwZGF0ZSBEaXNhYmxlCihYRU4pIFN3aXRjaGVk
IHRvIEFQSUMgZHJpdmVyIHgyYXBpY19taXhlZAooWEVOKSBDUFUwOiAxNjAwIC4uLiAzMzAwIE1I
egooWEVOKSB4c3RhdGU6IHNpemU6IDB4OTg4IGFuZCBzdGF0ZXM6IDB4MmU3CihYRU4pIENQVTA6
IEFNRCBGYW0xOWggbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZAooWEVOKSBGaXh1cCAj
R1BbMDAwMF06IGZmZmY4MmQwNDA0NGNhNGUgW2luaXRfc3BlY3VsYXRpb25fbWl0aWdhdGlvbnMr
MHhhZTAvMHgxZWNlXSAtPiBmZmZmODJkMDQwMzhmMGI1CihYRU4pIFZ1bG5lcmFibGUgdG8gU1JT
Tywgd2l0aG91dCBzdWl0YWJsZSBtaWNyb2NvZGUgdG8gbWl0aWdhdGUKKFhFTikgU3BlY3VsYXRp
dmUgbWl0aWdhdGlvbiBmYWNpbGl0aWVzOgooWEVOKSAgIEhhcmR3YXJlIGhpbnRzOiBTVElCUF9B
TFdBWVMgSUJSU19GQVNUIElCUlNfU0FNRV9NT0RFIEJUQ19OTyBJQlBCX1JFVAooWEVOKSAgIEhh
cmR3YXJlIGZlYXR1cmVzOiBJQlBCIElCUlMgU1RJQlAgU1NCRCBQU0ZEIEwxRF9GTFVTSAooWEVO
KSAgIENvbXBpbGVkLWluIHN1cHBvcnQ6IElORElSRUNUX1RIVU5LIFNIQURPV19QQUdJTkcKKFhF
TikgICBYZW4gc2V0dGluZ3M6IEJUSS1UaHVuayBKTVAsIFNQRUNfQ1RSTDogSUJSUysgU1RJQlAr
IFNTQkQtIFBTRkQtLCBPdGhlcjogSUJQQi1jdHh0IEJSQU5DSF9IQVJERU4KKFhFTikgICBTdXBw
b3J0IGZvciBIVk0gVk1zOiBNU1JfU1BFQ19DVFJMIE1TUl9WSVJUX1NQRUNfQ1RSTCBSU0IKKFhF
TikgICBTdXBwb3J0IGZvciBQViBWTXM6IE5vbmUKKFhFTikgICBYUFRJICg2NC1iaXQgUFYgb25s
eSk6IERvbTAgZGlzYWJsZWQsIERvbVUgZGlzYWJsZWQgKHdpdGhvdXQgUENJRCkKKFhFTikgICBQ
ViBMMVRGIHNoYWRvd2luZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZAooWEVOKSBVc2lu
ZyBzY2hlZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1bGVyIHJldjIgKGNyZWRpdDIpCihYRU4pIElu
aXRpYWxpemluZyBDcmVkaXQyIHNjaGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6
IDE4CihYRU4pICBsb2FkX3dpbmRvd19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNl
X3RvbGVyYW5jZTogMAooWEVOKSAgb3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4p
ICBydW5xdWV1ZXMgYXJyYW5nZW1lbnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdy
YW51bGFyaXR5OiAxMG1zCihYRU4pIGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQx
ODI0IG5zCihYRU4pIFBsYXRmb3JtIHRpbWVyIGlzIDE0LjMxOE1IeiBIUEVUCihYRU4pIERldGVj
dGVkIDMyOTMuODE3IE1IeiBwcm9jZXNzb3IuCihYRU4pIEZyZWVkIDEwMTZrQiB1bnVzZWQgQlNT
IG1lbW9yeQooWEVOKSBFRkkgbWVtb3J5IG1hcDoKKFhFTikgIDAwMDAwMDAwMDAwMDAtMDAwMDAw
MDAwM2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAwMDA0MDAw
LTAwMDAwMDAwODZmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAw
MDA4NzAwMC0wMDAwMDAwMDg3ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikg
IDAwMDAwMDAwODgwMDAtMDAwMDAwMDA4ZWZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
CihYRU4pICAwMDAwMDAwMDhmMDAwLTAwMDAwMDAwOWVmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAw
MDAwMDAwZgooWEVOKSAgMDAwMDAwMDA5ZjAwMC0wMDAwMDAwMDlmZmZmIHR5cGU9MCBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwMDAxMDAwMDAtMDAwMDAwMGVlMGZmZiB0eXBlPTIg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAwZWUxMDAwLTAwMDAwMDlhZmZmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwOWIwMDAwMC0wMDAwMDA5
ZGZmZmZmIHR5cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwMDllMDAwMDAt
MDAwMDAwOWVmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDA5
ZjAwMDAwLTAwMDAwMDlmM2JmZmYgdHlwZT0xMCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikg
IDAwMDAwMDlmM2MwMDAtMDAwMDAxN2EzMGZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
CihYRU4pICAwMDAwMDE3YTMxMDAwLTAwMDAwMzEwOGNmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZgooWEVOKSAgMDAwMDAzMTA4ZDAwMC0wMDAwMDM0MzdlZmZmIHR5cGU9MSBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwMzQzN2YwMDAtMDAwMDAzNDNmZWZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDM0M2ZmMDAwLTAwMDAwM2Y5NDFmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAzZjk0MjAwMC0wMDAwMDNm
YzlmZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwM2ZjYTAwMDAt
MDAwMDAzZmZmZGZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDNm
ZmZlMDAwLTAwMDAwNDAzZmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDA0MDQwMDAwMC0wMDAwMDQwNGEyZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwNDA0YTMwMDAtMDAwMDA0MDRjMmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMDQwNGMzMDAwLTAwMDAwNDA0ZDhmZmYgdHlwZT0zIGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA0MDRkOTAwMC0wMDAwMDQwNGU5ZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwNDA0ZWEwMDAtMDAwMDA0MDUxYWZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDQwNTFiMDAwLTAwMDAwNDA1
NmJmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA0MDU2YzAwMC0w
MDAwMDQwNTc0ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwNDA1
NzUwMDAtMDAwMDA0MWQ0MmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAw
MDAwMDQxZDQzMDAwLTAwMDAwNDFkNWZmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgoo
WEVOKSAgMDAwMDA0MWQ2MDAwMC0wMDAwMDQyMzVmZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYKKFhFTikgIDAwMDAwNDIzNjAwMDAtMDAwMDA0NDU1ZmZmZiB0eXBlPTAgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDQ0NTYwMDAwLTAwMDAwNDQ1NjZmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA0NDU2NzAwMC0wMDAwMDQ0NTY4ZmZmIHR5
cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwNDQ1NjkwMDAtMDAwMDA0NDU2
Y2ZmZiB0eXBlPTYgYXR0cj04MDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDQ0NTZkMDAwLTAw
MDAwNDQ1NmVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA0NDU2
ZjAwMC0wMDAwMDQ0NTZmZmZmIHR5cGU9NiBhdHRyPTgwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAw
MDAwNDQ1NzAwMDAtMDAwMDA0NDU3OWZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihY
RU4pICAwMDAwMDQ0NTdhMDAwLTAwMDAwNDQ1N2NmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAw
MDAwZgooWEVOKSAgMDAwMDA0NDU3ZDAwMC0wMDAwMDQ0NmFjZmZmIHR5cGU9NyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwNDQ2YWQwMDAtMDAwMDA0NDc3ZWZmZiB0eXBlPTEgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDQ0NzdmMDAwLTAwMDAwNGFjNTVmZmYgdHlw
ZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA0YWM1NjAwMC0wMDAwMDRiMzgy
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwNGIzODMwMDAtMDAw
MDA0YjNmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDRiNDAw
MDAwLTAwMDAwNGI1Y2VmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDA0YjVjZjAwMC0wMDAwMDRiNzEzZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwNGI3MTQwMDAtMDAwMDA0YjcxNGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmCihYRU4pICAwMDAwMDRiNzE1MDAwLTAwMDAwNGI3MTZmZmYgdHlwZT03IGF0dHI9MDAwMDAw
MDAwMDAwMDAwZgooWEVOKSAgMDAwMDA0YjcxNzAwMC0wMDAwMDRlNzdlZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwNGU3N2YwMDAtMDAwMDA0ZjVmZmZmZiB0eXBl
PTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDRmNjAwMDAwLTAwMDAwNGY5ZjRm
ZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA0ZjlmNTAwMC0wMDAw
MDRmYTUwZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwNGZhNTEw
MDAtMDAwMDA1MDc3ZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAw
MDUwNzdmMDAwLTAwMDAwNTBmN2VmZmYgdHlwZT01IGF0dHI9ODAwMDAwMDAwMDAwMDAwZgooWEVO
KSAgMDAwMDA1MGY3ZjAwMC0wMDAwMDUxZjdlZmZmIHR5cGU9NiBhdHRyPTgwMDAwMDAwMDAwMDAw
MGYKKFhFTikgIDAwMDAwNTFmN2YwMDAtMDAwMDA1MmY3ZWZmZiB0eXBlPTAgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmCihYRU4pICAwMDAwMDUyZjdmMDAwLTAwMDAwNWFmN2VmZmYgdHlwZT0xMCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwNWFmN2YwMDAtMDAwMDA1YWZmZWZmZiB0eXBl
PTkgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDVhZmZmMDAwLTAwMDAwNWFmZmZm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDEwMDAwMDAwMC0wMDAx
MDdlMmZmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwMDAwYTAw
MDAtMDAwMDAwMDBiZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDAwCihYRU4pICAwMDAw
MDViMDAwMDAwLTAwMDAwNWJmZmZmZmYgdHlwZT0wIGF0dHI9MDAwMDAwMDAwMDAwMDAwOQooWEVO
KSAgMDAwMDA1ZDc5MDAwMC0wMDAwMDVkN2VmZmZmIHR5cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAw
MDAKKFhFTikgIDAwMDAwNWQ3ZjUwMDAtMDAwMDA1ZmZmZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAw
MDAwMDAwMDAwCihYRU4pICAwMDAwMGMwMzAwMDAwLTAwMDAwYzAzZmZmZmYgdHlwZT0xMSBhdHRy
PTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmVkODAwMDAtMDAwMDBmZWQ4MGZmZiB0eXBl
PTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDBmZjAwMDAwMC0wMDAwMGZmZmZm
ZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAxMDgwMDAwMDAwLTAw
MDEwOWZmZmZmZmYgdHlwZT0wIGF0dHI9MDAwMDAwMDAwMDAwMDAwMAooWEVOKSAgMDAwMTBhMDAw
MDAwMC0wMDAxMGMwMWZmZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pIGFs
dCB0YWJsZSBmZmZmODJkMDQwNDliMWQwIC0+IGZmZmY4MmQwNDA0YTg1YmEKKFhFTikgQU1ELVZp
OiBEaXNhYmxlZCBIQVAgbWVtb3J5IG1hcCBzaGFyaW5nIHdpdGggSU9NTVUKKFhFTikgQU1ELVZp
OiBJT01NVSAwIEVuYWJsZWQuCihYRU4pIEkvTyB2aXJ0dWFsaXNhdGlvbiBlbmFibGVkCihYRU4p
ICAtIERvbTAgbW9kZTogUmVsYXhlZAooWEVOKSBJbnRlcnJ1cHQgcmVtYXBwaW5nIGVuYWJsZWQK
KFhFTikgbnJfc29ja2V0czogMQooWEVOKSBFbmFibGVkIGRpcmVjdGVkIEVPSSB3aXRoIGlvYXBp
Y19hY2tfb2xkIG9uIQooWEVOKSBFbmFibGluZyBBUElDIG1vZGUuICBVc2luZyAyIEkvTyBBUElD
cwooWEVOKSBFTkFCTElORyBJTy1BUElDIElSUXMKKFhFTikgIC0+IFVzaW5nIG9sZCBBQ0sgbWV0
aG9kCihYRU4pIC4uVElNRVI6IHZlY3Rvcj0weEYwIGFwaWMxPTAgcGluMT0yIGFwaWMyPS0xIHBp
bjI9LTEKKFhFTikgQWxsb2NhdGVkIGNvbnNvbGUgcmluZyBvZiAxMjggS2lCLgooWEVOKSBtd2Fp
dC1pZGxlOiBkb2VzIG5vdCBydW4gb24gZmFtaWx5IDI1IG1vZGVsIDExNgooWEVOKSBIVk06IEFT
SURzIGVuYWJsZWQuCihYRU4pIFNWTTogU3VwcG9ydGVkIGFkdmFuY2VkIGZlYXR1cmVzOgooWEVO
KSAgLSBOZXN0ZWQgUGFnZSBUYWJsZXMgKE5QVCkKKFhFTikgIC0gTGFzdCBCcmFuY2ggUmVjb3Jk
IChMQlIpIFZpcnR1YWxpc2F0aW9uCihYRU4pICAtIE5leHQtUklQIFNhdmVkIG9uICNWTUVYSVQK
KFhFTikgIC0gVk1DQiBDbGVhbiBCaXRzCihYRU4pICAtIERlY29kZUFzc2lzdHMKKFhFTikgIC0g
VmlydHVhbCBWTUxPQUQvVk1TQVZFCihYRU4pICAtIFZpcnR1YWwgR0lGCihYRU4pICAtIFBhdXNl
LUludGVyY2VwdCBGaWx0ZXIKKFhFTikgIC0gUGF1c2UtSW50ZXJjZXB0IEZpbHRlciBUaHJlc2hv
bGQKKFhFTikgIC0gVFNDIFJhdGUgTVNSCihYRU4pICAtIE5QVCBTdXBlcnZpc29yIFNoYWRvdyBT
dGFjawooWEVOKSAgLSBNU1JfU1BFQ19DVFJMIHZpcnR1YWxpc2F0aW9uCihYRU4pIEhWTTogU1ZN
IGVuYWJsZWQKKFhFTikgSFZNOiBIYXJkd2FyZSBBc3Npc3RlZCBQYWdpbmcgKEhBUCkgZGV0ZWN0
ZWQKKFhFTikgSFZNOiBIQVAgcGFnZSBzaXplczogNGtCLCAyTUIsIDFHQgooWEVOKSBhbHQgdGFi
bGUgZmZmZjgyZDA0MDQ5YjFkMCAtPiBmZmZmODJkMDQwNGE4NWJhCihYRU4pIEJyb3VnaHQgdXAg
MTYgQ1BVcwooWEVOKSBTY2hlZHVsaW5nIGdyYW51bGFyaXR5OiBjcHUsIDEgQ1BVIHBlciBzY2hl
ZC1yZXNvdXJjZQooWEVOKSBJbml0aWFsaXppbmcgQ3JlZGl0MiBzY2hlZHVsZXIKKFhFTikgIGxv
YWRfcHJlY2lzaW9uX3NoaWZ0OiAxOAooWEVOKSAgbG9hZF93aW5kb3dfc2hpZnQ6IDMwCihYRU4p
ICB1bmRlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IDAKKFhFTikgIG92ZXJsb2FkX2JhbGFuY2Vf
dG9sZXJhbmNlOiAtMwooWEVOKSAgcnVucXVldWVzIGFycmFuZ2VtZW50OiBzb2NrZXQKKFhFTikg
IGNhcCBlbmZvcmNlbWVudCBncmFudWxhcml0eTogMTBtcwooWEVOKSBsb2FkIHRyYWNraW5nIHdp
bmRvdyBsZW5ndGggMTA3Mzc0MTgyNCBucwooWEVOKSBBZGRpbmcgY3B1IDAgdG8gcnVucXVldWUg
MAooWEVOKSAgRmlyc3QgY3B1IG9uIHJ1bnF1ZXVlLCBhY3RpdmF0aW5nCihYRU4pIEFkZGluZyBj
cHUgMSB0byBydW5xdWV1ZSAwCihYRU4pIEFkZGluZyBjcHUgMiB0byBydW5xdWV1ZSAwCihYRU4p
IEFkZGluZyBjcHUgMyB0byBydW5xdWV1ZSAwCihYRU4pIEFkZGluZyBjcHUgNCB0byBydW5xdWV1
ZSAwCihYRU4pIEFkZGluZyBjcHUgNSB0byBydW5xdWV1ZSAwCihYRU4pIEFkZGluZyBjcHUgNiB0
byBydW5xdWV1ZSAwCihYRU4pIEFkZGluZyBjcHUgNyB0byBydW5xdWV1ZSAwCihYRU4pIEFkZGlu
ZyBjcHUgOCB0byBydW5xdWV1ZSAwCihYRU4pIEFkZGluZyBjcHUgOSB0byBydW5xdWV1ZSAwCihY
RU4pIEFkZGluZyBjcHUgMTAgdG8gcnVucXVldWUgMAooWEVOKSBBZGRpbmcgY3B1IDExIHRvIHJ1
bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAxMiB0byBydW5xdWV1ZSAwCihYRU4pIEFkZGluZyBj
cHUgMTMgdG8gcnVucXVldWUgMAooWEVOKSBBZGRpbmcgY3B1IDE0IHRvIHJ1bnF1ZXVlIDAKKFhF
TikgQWRkaW5nIGNwdSAxNSB0byBydW5xdWV1ZSAwCihYRU4pIG1jaGVja19wb2xsOiBNYWNoaW5l
IGNoZWNrIHBvbGxpbmcgdGltZXIgc3RhcnRlZC4KKFhFTikgeGVub3Byb2Y6IEluaXRpYWxpemF0
aW9uIGZhaWxlZC4gQU1EIHByb2Nlc3NvciBmYW1pbHkgMjUgaXMgbm90IHN1cHBvcnRlZAooWEVO
KSBSdW5uaW5nIHN0dWIgcmVjb3Zlcnkgc2VsZnRlc3RzLi4uCihYRU4pIEZpeHVwICNVRFswMDAw
XTogZmZmZjgyZDA3ZmZmZTA0NCBbZmZmZjgyZDA3ZmZmZTA0NF0gLT4gZmZmZjgyZDA0MDM4ZWZi
YgooWEVOKSBGaXh1cCAjR1BbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDUgW2ZmZmY4MmQwN2ZmZmUw
NDVdIC0+IGZmZmY4MmQwNDAzOGVmYmIKKFhFTikgRml4dXAgI1NTWzAwMDBdOiBmZmZmODJkMDdm
ZmZlMDQ0IFtmZmZmODJkMDdmZmZlMDQ0XSAtPiBmZmZmODJkMDQwMzhlZmJiCihYRU4pIEZpeHVw
ICNCUFswMDAwXTogZmZmZjgyZDA3ZmZmZTA0NSBbZmZmZjgyZDA3ZmZmZTA0NV0gLT4gZmZmZjgy
ZDA0MDM4ZWZiYgooWEVOKSBOWCAoRXhlY3V0ZSBEaXNhYmxlKSBwcm90ZWN0aW9uIGFjdGl2ZQoo
WEVOKSBEb20wIGhhcyBtYXhpbXVtIDEwOTYgUElSUXMKKFhFTikgKioqIEJ1aWxkaW5nIGEgUFYg
RG9tMCAqKioKKFhFTikgRUxGOiBwaGRyOiBwYWRkcj0weDEwMDAwMDAgbWVtc3o9MHgyMDFkM2Vj
CihYRU4pIEVMRjogcGhkcjogcGFkZHI9MHgzMjAwMDAwIG1lbXN6PTB4ODdiMDAwCihYRU4pIEVM
RjogcGhkcjogcGFkZHI9MHgzYTdiMDAwIG1lbXN6PTB4MzcwMDAKKFhFTikgRUxGOiBwaGRyOiBw
YWRkcj0weDNhYjIwMDAgbWVtc3o9MHhkNGUwMDAKKFhFTikgRUxGOiBtZW1vcnk6IDB4MTAwMDAw
MCAtPiAweDQ4MDAwMDAKKFhFTikgRUxGOiBub3RlOiBQSFlTMzJfRU5UUlkgPSAweDEwMDAwMDAK
KFhFTikgRUxGOiBub3RlOiBHVUVTVF9PUyA9ICJsaW51eCIKKFhFTikgRUxGOiBub3RlOiBHVUVT
VF9WRVJTSU9OID0gIjIuNiIKKFhFTikgRUxGOiBub3RlOiBYRU5fVkVSU0lPTiA9ICJ4ZW4tMy4w
IgooWEVOKSBFTEY6IG5vdGU6IFZJUlRfQkFTRSA9IDB4ZmZmZmZmZmY4MDAwMDAwMAooWEVOKSBF
TEY6IG5vdGU6IElOSVRfUDJNID0gMHg4MDAwMDAwMDAwCihYRU4pIEVMRjogbm90ZTogRU5UUlkg
PSAweGZmZmZmZmZmODNhYzQzOTAKKFhFTikgRUxGOiBub3RlOiBGRUFUVVJFUyA9ICIhd3JpdGFi
bGVfcGFnZV90YWJsZXMiCihYRU4pIEVMRjogbm90ZTogUEFFX01PREUgPSAieWVzIgooWEVOKSBF
TEY6IG5vdGU6IHVua25vd24gKDB4ZCkKKFhFTikgRUxGOiBub3RlOiBNT0RfU1RBUlRfUEZOID0g
MHgxCihYRU4pIEVMRjogbm90ZTogUEFERFJfT0ZGU0VUID0gMAooWEVOKSBFTEY6IG5vdGU6IEhZ
UEVSQ0FMTF9QQUdFID0gMHhmZmZmZmZmZjgxZmM3MDAwCihYRU4pIEVMRjogbm90ZTogU1VQUE9S
VEVEX0ZFQVRVUkVTID0gMHg4ODAxCihYRU4pIEVMRjogbm90ZTogTE9BREVSID0gImdlbmVyaWMi
CihYRU4pIEVMRjogbm90ZTogU1VTUEVORF9DQU5DRUwgPSAweDEKKFhFTikgRUxGOiBhZGRyZXNz
ZXM6CihYRU4pICAgICB2aXJ0X2Jhc2UgICAgICAgID0gMHhmZmZmZmZmZjgwMDAwMDAwCihYRU4p
ICAgICBlbGZfcGFkZHJfb2Zmc2V0ID0gMHgwCihYRU4pICAgICB2aXJ0X29mZnNldCAgICAgID0g
MHhmZmZmZmZmZjgwMDAwMDAwCihYRU4pICAgICB2aXJ0X2tzdGFydCAgICAgID0gMHhmZmZmZmZm
ZjgxMDAwMDAwCihYRU4pICAgICB2aXJ0X2tlbmQgICAgICAgID0gMHhmZmZmZmZmZjg0ODAwMDAw
CihYRU4pICAgICB2aXJ0X2VudHJ5ICAgICAgID0gMHhmZmZmZmZmZjgzYWM0MzkwCihYRU4pICAg
ICBwMm1fYmFzZSAgICAgICAgID0gMHg4MDAwMDAwMDAwCihYRU4pICBYZW4gIGtlcm5lbDogNjQt
Yml0LCBsc2IKKFhFTikgIERvbTAga2VybmVsOiA2NC1iaXQsIFBBRSwgbHNiLCBwYWRkciAweDEw
MDAwMDAgLT4gMHg0ODAwMDAwCihYRU4pIFBIWVNJQ0FMIE1FTU9SWSBBUlJBTkdFTUVOVDoKKFhF
TikgIERvbTAgYWxsb2MuOiAgIDAwMDAwMDEwMzgwMDAwMDAtPjAwMDAwMDEwNDAwMDAwMDAgKDE2
MjQ0MTI5IHBhZ2VzIHRvIGJlIGFsbG9jYXRlZCkKKFhFTikgIEluaXQuIHJhbWRpc2s6IDAwMDAw
MDEwNzA3MGIwMDAtPjAwMDAwMDEwN2UxZmYyNzEKKFhFTikgVklSVFVBTCBNRU1PUlkgQVJSQU5H
RU1FTlQ6CihYRU4pICBMb2FkZWQga2VybmVsOiBmZmZmZmZmZjgxMDAwMDAwLT5mZmZmZmZmZjg0
ODAwMDAwCihYRU4pICBQaHlzLU1hY2ggbWFwOiAwMDAwMDA4MDAwMDAwMDAwLT4wMDAwMDA4MDA3
YzljNGIwCihYRU4pICBTdGFydCBpbmZvOiAgICBmZmZmZmZmZjg0ODAwMDAwLT5mZmZmZmZmZjg0
ODAwNGI4CihYRU4pICBQYWdlIHRhYmxlczogICBmZmZmZmZmZjg0ODAxMDAwLT5mZmZmZmZmZjg0
ODJhMDAwCihYRU4pICBCb290IHN0YWNrOiAgICBmZmZmZmZmZjg0ODJhMDAwLT5mZmZmZmZmZjg0
ODJiMDAwCihYRU4pICBUT1RBTDogICAgICAgICBmZmZmZmZmZjgwMDAwMDAwLT5mZmZmZmZmZjg0
YzAwMDAwCihYRU4pICBFTlRSWSBBRERSRVNTOiBmZmZmZmZmZjgzYWM0MzkwCihYRU4pIERvbTAg
aGFzIG1heGltdW0gMTYgVkNQVXMKKFhFTikgRUxGOiBwaGRyIDAgYXQgMHhmZmZmZmZmZjgxMDAw
MDAwIC0+IDB4ZmZmZmZmZmY4MzAxZDNlYwooWEVOKSBFTEY6IHBoZHIgMSBhdCAweGZmZmZmZmZm
ODMyMDAwMDAgLT4gMHhmZmZmZmZmZjgzYTdiMDAwCihYRU4pIEVMRjogcGhkciAyIGF0IDB4ZmZm
ZmZmZmY4M2E3YjAwMCAtPiAweGZmZmZmZmZmODNhYjIwMDAKKFhFTikgRUxGOiBwaGRyIDMgYXQg
MHhmZmZmZmZmZjgzYWIyMDAwIC0+IDB4ZmZmZmZmZmY4NDgwMDAwMAooWEVOKSBJbml0aWFsIGxv
dyBtZW1vcnkgdmlycSB0aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4KKFhFTikgU2NydWJi
aW5nIEZyZWUgUkFNIGluIGJhY2tncm91bmQKKFhFTikgU3RkLiBMb2dsZXZlbDogQWxsCihYRU4p
IEd1ZXN0IExvZ2xldmVsOiBBbGwKKFhFTikgWGVuIGlzIHJlbGlucXVpc2hpbmcgVkdBIGNvbnNv
bGUuCihYRU4pICoqKiBTZXJpYWwgaW5wdXQgdG8gRE9NMCAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0
aW1lcyB0byBzd2l0Y2ggaW5wdXQpCihYRU4pIEZyZWVkIDYzMmtCIGluaXQgbWVtb3J5CihYRU4p
IFBIWVNERVZPUF9zZXR1cF9nc2k6IHNldHVwX2dzaS5nc2k6IDksIHNldHVwX2dzaS50cmlnZ2Vy
aW5nOiAxLHNldHVwX2dzaS5wb2xhcml0eTogMQooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
OjAwLjAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMC4yCihYRU4pIFBDSSBhZGQgZGV2
aWNlIDAwMDA6MDA6MDEuMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjAKKFhFTikg
UENJIGFkZCBkZXZpY2UgMDAwMDowMDowMi4yCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6
MDIuNAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAzLjAKKFhFTikgUENJIGFkZCBkZXZp
Y2UgMDAwMDowMDowMy4xCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MDQuMAooWEVOKSBQ
Q0kgYWRkIGRldmljZSAwMDAwOjAwOjA0LjEKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDow
OC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MDguMQooWEVOKSBQQ0kgYWRkIGRldmlj
ZSAwMDAwOjAwOjA4LjIKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowOC4zCihYRU4pIFBD
SSBhZGQgZGV2aWNlIDAwMDA6MDA6MTQuMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0
LjMKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4wCihYRU4pIFBDSSBhZGQgZGV2aWNl
IDAwMDA6MDA6MTguMQooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjIKKFhFTikgUENJ
IGFkZCBkZXZpY2UgMDAwMDowMDoxOC4zCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTgu
NAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjUKKFhFTikgUENJIGFkZCBkZXZpY2Ug
MDAwMDowMDoxOC42CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguNwooWEVOKSBQQ0kg
YWRkIGRldmljZSAwMDAwOjAxOjAwLjAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMjowMC4w
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6YzE6MDAuMAooWEVOKSBQQ0kgYWRkIGRldmljZSAw
MDAwOmMxOjAwLjEKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDpjMTowMC4yCihYRU4pIFBDSSBh
ZGQgZGV2aWNlIDAwMDA6YzE6MDAuMwooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOmMxOjAwLjQK
KFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDpjMTowMC41CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAw
MDA6YzE6MDAuNgooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOmMyOjAwLjAKKFhFTikgUENJIGFk
ZCBkZXZpY2UgMDAwMDpjMjowMC4xCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6YzM6MDAuMAoo
WEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOmMzOjAwLjMKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAw
MDpjMzowMC40CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6YzM6MDAuNQooWEVOKSBQQ0kgYWRk
IGRldmljZSAwMDAwOmMzOjAwLjYKKFhFTikgUEhZU0RFVk9QX3NldHVwX2dzaTogc2V0dXBfZ3Np
LmdzaTogOCwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDAsc2V0dXBfZ3NpLnBvbGFyaXR5OiAwCihY
RU4pIFBIWVNERVZPUF9zZXR1cF9nc2k6IHNldHVwX2dzaS5nc2k6IDEzLCBzZXR1cF9nc2kudHJp
Z2dlcmluZzogMCxzZXR1cF9nc2kucG9sYXJpdHk6IDAKKFhFTikgUEhZU0RFVk9QX3NldHVwX2dz
aTogc2V0dXBfZ3NpLmdzaTogNywgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDEsc2V0dXBfZ3NpLnBv
bGFyaXR5OiAxCihYRU4pIFBIWVNERVZPUF9zZXR1cF9nc2k6IHNldHVwX2dzaS5nc2k6IDEwLCBz
ZXR1cF9nc2kudHJpZ2dlcmluZzogMCxzZXR1cF9nc2kucG9sYXJpdHk6IDAKKFhFTikgUEhZU0RF
Vk9QX3NldHVwX2dzaTogc2V0dXBfZ3NpLmdzaTogNiwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDAs
c2V0dXBfZ3NpLnBvbGFyaXR5OiAwCihYRU4pIFBIWVNERVZPUF9zZXR1cF9nc2k6IHNldHVwX2dz
aS5nc2k6IDUwLCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSxzZXR1cF9nc2kucG9sYXJpdHk6IDEK
KFhFTikgUEhZU0RFVk9QX3NldHVwX2dzaTogc2V0dXBfZ3NpLmdzaTogNTEsIHNldHVwX2dzaS50
cmlnZ2VyaW5nOiAxLHNldHVwX2dzaS5wb2xhcml0eTogMQooWEVOKSBQSFlTREVWT1Bfc2V0dXBf
Z3NpOiBzZXR1cF9nc2kuZ3NpOiA1Miwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDEsc2V0dXBfZ3Np
LnBvbGFyaXR5OiAxCihYRU4pIFBIWVNERVZPUF9zZXR1cF9nc2k6IHNldHVwX2dzaS5nc2k6IDUz
LCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSxzZXR1cF9nc2kucG9sYXJpdHk6IDEKKFhFTikgUEhZ
U0RFVk9QX3NldHVwX2dzaTogc2V0dXBfZ3NpLmdzaTogMSwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6
IDAsc2V0dXBfZ3NpLnBvbGFyaXR5OiAwCihYRU4pIFBIWVNERVZPUF9zZXR1cF9nc2k6IHNldHVw
X2dzaS5nc2k6IDQwLCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSxzZXR1cF9nc2kucG9sYXJpdHk6
IDEKKFhFTikgUEhZU0RFVk9QX3NldHVwX2dzaTogc2V0dXBfZ3NpLmdzaTogMzcsIHNldHVwX2dz
aS50cmlnZ2VyaW5nOiAxLHNldHVwX2dzaS5wb2xhcml0eTogMQooWEVOKSBQSFlTREVWT1Bfc2V0
dXBfZ3NpOiBzZXR1cF9nc2kuZ3NpOiAzOCwgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDEsc2V0dXBf
Z3NpLnBvbGFyaXR5OiAxCihYRU4pIFBIWVNERVZPUF9zZXR1cF9nc2k6IHNldHVwX2dzaS5nc2k6
IDQwLCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSxzZXR1cF9nc2kucG9sYXJpdHk6IDEKKFhFTikg
UEhZU0RFVk9QX3NldHVwX2dzaTogc2V0dXBfZ3NpLmdzaTogNDYsIHNldHVwX2dzaS50cmlnZ2Vy
aW5nOiAxLHNldHVwX2dzaS5wb2xhcml0eTogMQooWEVOKSBQSFlTREVWT1Bfc2V0dXBfZ3NpOiBz
ZXR1cF9nc2kuZ3NpOiA0Nywgc2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDEsc2V0dXBfZ3NpLnBvbGFy
aXR5OiAxCihYRU4pIFBIWVNERVZPUF9zZXR1cF9nc2k6IHNldHVwX2dzaS5nc2k6IDQwLCBzZXR1
cF9nc2kudHJpZ2dlcmluZzogMSxzZXR1cF9nc2kucG9sYXJpdHk6IDEKKFhFTikgZDA6IEZvcmNp
bmcgcmVhZC1vbmx5IGFjY2VzcyB0byBNRk4gZmVkMDAKKFhFTikgUEhZU0RFVk9QX3NldHVwX2dz
aTogc2V0dXBfZ3NpLmdzaTogMzcsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLHNldHVwX2dzaS5w
b2xhcml0eTogMQooWEVOKSBQSFlTREVWT1Bfc2V0dXBfZ3NpOiBzZXR1cF9nc2kuZ3NpOiAzOCwg
c2V0dXBfZ3NpLnRyaWdnZXJpbmc6IDEsc2V0dXBfZ3NpLnBvbGFyaXR5OiAxCihYRU4pIFBIWVNE
RVZPUF9zZXR1cF9nc2k6IHNldHVwX2dzaS5nc2k6IDQ2LCBzZXR1cF9nc2kudHJpZ2dlcmluZzog
MSxzZXR1cF9nc2kucG9sYXJpdHk6IDEKKFhFTikgUEhZU0RFVk9QX3NldHVwX2dzaTogc2V0dXBf
Z3NpLmdzaTogNDcsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLHNldHVwX2dzaS5wb2xhcml0eTog
MQooWEVOKSBQSFlTREVWT1Bfc2V0dXBfZ3NpOiBzZXR1cF9nc2kuZ3NpOiAzNiwgc2V0dXBfZ3Np
LnRyaWdnZXJpbmc6IDEsc2V0dXBfZ3NpLnBvbGFyaXR5OiAxCihYRU4pIFBIWVNERVZPUF9zZXR1
cF9nc2k6IHNldHVwX2dzaS5nc2k6IDQyLCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSxzZXR1cF9n
c2kucG9sYXJpdHk6IDEKKFhFTikgUEhZU0RFVk9QX3NldHVwX2dzaTogc2V0dXBfZ3NpLmdzaTog
MzgsIHNldHVwX2dzaS50cmlnZ2VyaW5nOiAxLHNldHVwX2dzaS5wb2xhcml0eTogMQooWEVOKSBQ
SFlTREVWT1Bfc2V0dXBfZ3NpOiBzZXR1cF9nc2kuZ3NpOiA0NCwgc2V0dXBfZ3NpLnRyaWdnZXJp
bmc6IDEsc2V0dXBfZ3NpLnBvbGFyaXR5OiAxCihYRU4pIFBIWVNERVZPUF9zZXR1cF9nc2k6IHNl
dHVwX2dzaS5nc2k6IDQ1LCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSxzZXR1cF9nc2kucG9sYXJp
dHk6IDEKKFhFTikgYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmM6MTAyNzpkMHYwIFJETVNSIDB4
YzAwMTAyOWIgdW5pbXBsZW1lbnRlZAooWEVOKSBhcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYzox
MDI3OmQwdjAgUkRNU1IgMHhjMDAxMDI5YSB1bmltcGxlbWVudGVkCihYRU4pIFBIWVNERVZPUF9z
ZXR1cF9nc2k6IHNldHVwX2dzaS5nc2k6IDQ2LCBzZXR1cF9nc2kudHJpZ2dlcmluZzogMSxzZXR1
cF9nc2kucG9sYXJpdHk6IDEK
--000000000000a1626a060cf38e3a--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 16:36:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 16:36:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658184.1027268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rFzYd-0005gN-Ty; Wed, 20 Dec 2023 16:36:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658184.1027268; Wed, 20 Dec 2023 16: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 1rFzYd-0005gG-PJ; Wed, 20 Dec 2023 16:36:31 +0000
Received: by outflank-mailman (input) for mailman id 658184;
 Wed, 20 Dec 2023 16: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=cHJo=H7=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rFzYc-0005g3-NA
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 16:36:30 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed48a397-9f55-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 17:36:29 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40d22d3e751so5973845e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 08:36:29 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 r20-20020a05600c459400b0040c3dcc36e6sm153916wmo.47.2023.12.20.08.36.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 08:36:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed48a397-9f55-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703090189; x=1703694989; 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=hA8y5W1bqpc6Dd91vzYXk0eopxD9JxEsxFTEP6oeTcU=;
        b=biBGNLLZHWTEFNPQEGiApnP9LK0QSh0tZ1gAtzLyBwNfRg66CMlxrd0I2n+YOc5052
         440Wh2A8TihM50fDd/Jxq66tQ676IZaL9MY3OLtWTaij4O02ViBwx2yP59P/eMbbvVRU
         uYT+9aohCZooL0wfLhsk2C8yk5PMVjsHj95YI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703090189; x=1703694989;
        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=hA8y5W1bqpc6Dd91vzYXk0eopxD9JxEsxFTEP6oeTcU=;
        b=dGTyJc1pbqT70twljE3Yj5/HnTzJuazbRrkhCiLVzPqE7xjpJ5jwbyVw28gz8Va1KY
         d/aWV5zpPdVTAkKzJ0400aeXnd74KU7jvhZ58nqv9P8tHksBfWG8uNNgr6735qdN9dzW
         yLV0tCG5QhVlSJXirS5YW5WzwlcYofrbIyK4KhTTSusqJClYoAV5FsYMlOs/N4dhok1M
         6AHL1itSrXmtkY3OScnpuGElY/X6KkI+VWhKhfYMTzIZJdgF9ZJqe89KuO9V1RcX+Z5V
         Fk70xnL3tTxTpdWrGi3hwQSUIXr/wqCcu7rdaOZQGoWaMePn0zrv0S2vH0yFhSP1r+2m
         o7Gw==
X-Gm-Message-State: AOJu0YyEude6Kixz0mGNKPH2s7UrZvbd7jE1pdMaUA+qX+rB0omg9mDm
	tG1qAKfJPZcQ+UrVOKNNY0yc2g==
X-Google-Smtp-Source: AGHT+IF2iBCEIWT9+giyQFrkRCEzdk/ePARygHTC3Xad8r8PiffiW26aBv41KnAHoEwZ5EKRxqF7Cg==
X-Received: by 2002:a1c:6a0c:0:b0:40d:2dd9:dac5 with SMTP id f12-20020a1c6a0c000000b0040d2dd9dac5mr1325382wmc.97.1703090189366;
        Wed, 20 Dec 2023 08:36:29 -0800 (PST)
Date: Wed, 20 Dec 2023 16:36:28 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>,
	Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH 1/7] tools/xenguest: Dynamically allocate xc_cpu_policy_t
 contents
Message-ID: <1ba3c90e-7af0-4331-966d-ac39d1ee4721@perard>
References: <20231107154921.54979-1-alejandro.vallejo@cloud.com>
 <20231107154921.54979-2-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231107154921.54979-2-alejandro.vallejo@cloud.com>

On Tue, Nov 07, 2023 at 03:49:15PM +0000, Alejandro Vallejo wrote:
>  void xc_cpu_policy_destroy(xc_cpu_policy_t *policy)
>  {
> -    if ( policy )
> -        free(policy);
> +    int err = errno;
> +
> +    if ( !policy )
> +        return;
> +
> +    if ( policy->leaves.buf )
> +        free(policy->leaves.buf);
> +    if ( policy->msrs.buf )
> +        free(policy->msrs.buf);

FYI: free() already check for NULL, so the extra if() is unnecessary.

Otherwise, patch looks fine:
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 17:15:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 17:15:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658212.1027288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG09l-0006z9-3Q; Wed, 20 Dec 2023 17:14:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658212.1027288; Wed, 20 Dec 2023 17: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 1rG09k-0006z2-WD; Wed, 20 Dec 2023 17:14:53 +0000
Received: by outflank-mailman (input) for mailman id 658212;
 Wed, 20 Dec 2023 17:14: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=cHJo=H7=cloud.com=anthony.perard@srs-se1.protection.inumbo.net>)
 id 1rG09k-0006yw-IZ
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 17:14:52 +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 49242367-9f5b-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 18:14:51 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3367903b4dcso1139988f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 09:14:51 -0800 (PST)
Received: from perard.uk.xensource.com (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 v11-20020a05600c470b00b0040c5cf930e6sm277654wmo.19.2023.12.20.09.14.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 09:14:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 49242367-9f5b-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703092491; x=1703697291; 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=IHoyBRXbxJl/Fk8Fe3c346+q8RDAepu8NiFo0x6fhJ0=;
        b=NzjabceynYTpScdtdJztAD0D59j5iysW+5AaMWzWuZh6yzWJAyp+rONi7dlIAXPq7h
         GxZ7vRzaxwlUHZtSWnrgQ373V6gApJSjlxP89X1PeOR0vRCmcoBleJszrDm1+gi+O/9y
         rgiABGmyZ57Z7XBOoylsd+2VveP1A3YLzn7AQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703092491; x=1703697291;
        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=IHoyBRXbxJl/Fk8Fe3c346+q8RDAepu8NiFo0x6fhJ0=;
        b=W3uUpJH3FaNLRWXPRZhrGI5kruRy9EIqtDzEg7/TBo9abydWzOuk/ms3HA5ZE4rgTb
         QFv+UfWwX1zfx/HxP3B/d06JFuM0s75mTHRPGNpoN4DYaVfbVJ0ffiQ5AEy3ppX2ficE
         ABWLNNK690pGymnLjXpAmd+lVrIDAKNTm2zNvHrpEkmV9D3vhx3dLO++/PLytUzIBC9j
         CYZm10GCZqWBws1Rx4bPC8Yc1p7R3LlN5FC/0qXp092F74X1aSbcxCGdUORa+j+jwFIx
         AXTfzUPHYA/xbpjGiFp1/KlKf3TbK8qn8jAoO2K/YcVQDoTkbuv27Exe1Q3EYC1d47zG
         20ug==
X-Gm-Message-State: AOJu0Yxf/cGY9kPnRkgPvdiamPU7U4/Qp+ex8SXfYLhPrWSNxVS58fxW
	+cyoCQRhYkqyO0+Nlj1FECXoKmqeREDdosFLTM0=
X-Google-Smtp-Source: AGHT+IGRAMgCdG4L0aP219RsTczPXkgRF+jQWtr4HVkeakP8eTPoYJTansv0A2cLJ4AfITMamFMxwQ==
X-Received: by 2002:a05:600c:1e05:b0:40b:5e59:ccc8 with SMTP id ay5-20020a05600c1e0500b0040b5e59ccc8mr8386wmb.169.1703092490889;
        Wed, 20 Dec 2023 09:14:50 -0800 (PST)
Date: Wed, 20 Dec 2023 17:14:50 +0000
From: Anthony PERARD <anthony.perard@citrix.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Wei Liu <wl@xen.org>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] tools/xg: Reserialise CPU policies with the allocated
 number of leaves.
Message-ID: <8dc3efe1-9419-4fc6-8801-e56625cd0693@perard>
References: <20231212105717.6031-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231212105717.6031-1-alejandro.vallejo@cloud.com>

On Tue, Dec 12, 2023 at 10:57:17AM +0000, Alejandro Vallejo wrote:
> The procedure used to customize the domain CPU policy is broken when
> toolstack tries to set leaves (with subleaves) that the hypervisor didn't
> need to serialise (i.e: because they where empty subleaves).
> 
> During typical domain creation xg does the following:
> 
>   1. Probe Xen for max #leaves that a policy may have
>   2. Allocate memory for that many leaves
>   3. Tell the hypervisor to dump the policy in the allocated buffer
>   4. Deserialise it
>   5. Modify it
>   6. Reserialise it
>   7. Send it back to Xen
> 
> The problem is that (3) overrides nr_leaves, which then makes (6) fail in
> the case where (5) has added subleaves that Xen understands but didn't need
> to serialize on (3).
> 
> The fix uses an opaque CPU policy object so we can (a) avoid probing Xen
> for sizes, and (b) trivially have knowledge of the actual size of the
> buffer.
> 
> While at it, fix xc_cpu_policy_destroy() to preserve errno accross free()
> 
> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>

Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 18:24:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 18:24:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658219.1027308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG1Ev-0002xV-9E; Wed, 20 Dec 2023 18:24:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658219.1027308; Wed, 20 Dec 2023 18:24:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG1Ev-0002xO-63; Wed, 20 Dec 2023 18:24:17 +0000
Received: by outflank-mailman (input) for mailman id 658219;
 Wed, 20 Dec 2023 18: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=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rG1Et-0002hx-GT
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 18:24:15 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9b29432-9f64-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 19:24:13 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 92170616E1;
 Wed, 20 Dec 2023 18:24:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C5321C433C7;
 Wed, 20 Dec 2023 18:24: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: f9b29432-9f64-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703096652;
	bh=jvMqksva70Wn2M8Xu3PBi1hCXSjBSwlNNO6oe/XHZoI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lUKu6Ciz3AHJhweR2YVWA/MUAxauanjnI2GNh1oSvAMVTJWYw4Dxa3LXJtrT6YIs+
	 7mtcBP5+CTwgwwQeOCIFsK8rNIu9dIVDjl8+Kkf2ihqZj/tAn0I7Gu0agwBnfGimwL
	 uMNRj0y4JU0RzNPYsvwTFedZmLMToO9kM74WZV+psd0V9fOdP76VRAOvoMKt9nBQNU
	 zMwYJbrwvPVegwVXxlB3jYZ8w/uX/OopZPqIBFdKG+KUGk0H/KE/BRej5cih9Up0aj
	 h4I0N9g8T2irFPwNHyv+n8pYmZPx+p7yh2VGJeXIKU0DGG5V16wfkZhpIG3CWhB6jL
	 LQgSVh2ioC1pA==
Date: Wed, 20 Dec 2023 10:24:09 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, jbeulich@suse.com, andrew.cooper3@citrix.com, 
    roger.pau@citrix.com, Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH] automation/eclair_analysis: fix typo in deviation.
In-Reply-To: <d9ec973290747665905176939aef7749d5550734.1703068956.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312201005130.685950@ubuntu-linux-20-04-desktop>
References: <d9ec973290747665905176939aef7749d5550734.1703068956.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, 20 Dec 2023, Nicola Vetrini wrote:
> Unwanted leading '+'-s cause the deviation not to work as expected,
> leading to wrong analysis counts.
> 
> Fixes: 11126964d82f ("automation/eclair_analysis: avoid violation of MISRA Rule 2.1")
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 18:24:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 18:24:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658218.1027298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG1Er-0002iC-1w; Wed, 20 Dec 2023 18:24:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658218.1027298; Wed, 20 Dec 2023 18:24:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG1Eq-0002i5-VS; Wed, 20 Dec 2023 18:24:12 +0000
Received: by outflank-mailman (input) for mailman id 658218;
 Wed, 20 Dec 2023 18:24:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rG1Ep-0002hx-J4
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 18:24:11 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org
 [2604:1380:4601:e00::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5eb2e84-9f64-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 19:24:07 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id E6794B81A3E;
 Wed, 20 Dec 2023 18:24:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D455C433C7;
 Wed, 20 Dec 2023 18:24: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: f5eb2e84-9f64-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703096645;
	bh=l7riXBcImvGLyPZ96P7SlqWIalY5Olr42ZYWcbnmOtM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fF3BD3jiHZxYi9sxkItCCjc9JPbNwfBIXcecC7QJ+1Rxq5nTnibIqcT47IUxvKex7
	 mqS1gtm5t6jetcyMxraf3OxfY7inQ7M/EZZ1CkFxNInYCLRkxUBEIy10vw0YfySaE3
	 HO2Q+hcQTmKiZ1YuU3kn2EwAEg8JO/AYL2Z7G+myLZzB7/agLoYgCzqPZF2+9jUsPi
	 62cVanIZfewdyAX/LVMGgVXggeRmGgcsAhVgng1BZVVF5ZlNqd0fv6tdSiCyVkuzuT
	 pfy94NqRynj2HFM0jBnYNS+YWC+ztkM1R/uq04dFa9wniLtRkJ6jk0aa68GRwHdXd4
	 8S7wTk/sgLLTQ==
Date: Wed, 20 Dec 2023 10:23:59 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [XEN PATCH v2] xen: move declaration of first_valid_mfn to
 xen/numa.h
In-Reply-To: <83a14a83-e186-4c91-936b-58743f1e136d@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312201023540.685950@ubuntu-linux-20-04-desktop>
References: <ad7ee70bd00c0de4b6dad48c91281929e98ef95c.1702911455.git.nicola.vetrini@bugseng.com> <alpine.DEB.2.22.394.2312181748430.3175268@ubuntu-linux-20-04-desktop> <83a14a83-e186-4c91-936b-58743f1e136d@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, 20 Dec 2023, Jan Beulich wrote:
> On 19.12.2023 02:48, Stefano Stabellini wrote:
> > On Mon, 18 Dec 2023, Nicola Vetrini wrote:
> >> Such declaration is moved in order to provide it for Arm and PPC,
> >> whilst not violating MISRA C:2012 Rule 8.4 in common/page_alloc.c:
> >> "A compatible declaration shall be visible when an object or
> >> function with external linkage is defined".
> >>
> >> Signed-off-by: Julien Grall <julien@xen.org>
> >> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > 
> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> I was about to submit my replacement, just to find that this was committed
> during my night. I have to admit that I absolutely do not understand the
> need for rushing here; I thought I said quite clearly that I will come
> forward with a patch dealing with two issues in one go. Now I need to go
> and re-base my change, because all of what this patch touches is also
> touched by my change, as the 2nd issue (the pointless presence of
> asm/numa.h and the need for RISC-V to introduce a 3rd instance if nothing
> is done up front) is still there.


Hi Jan,

Sorry about that. As you might have noticed I typically wait at least
1-2 days but this time I wasn't sure I would be able to come back online
before the Holidays and I was trying to clean things up. I apologize.


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 18:24:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 18:24:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658222.1027318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG1FJ-0003Wl-Gx; Wed, 20 Dec 2023 18:24:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658222.1027318; Wed, 20 Dec 2023 18: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 1rG1FJ-0003WP-Du; Wed, 20 Dec 2023 18:24:41 +0000
Received: by outflank-mailman (input) for mailman id 658222;
 Wed, 20 Dec 2023 18:24: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=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rG1FH-0002hx-Ll
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 18:24:39 +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 0821bd09-9f65-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 19:24:38 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id CEAAB61727;
 Wed, 20 Dec 2023 18:24:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E0E2C433C8;
 Wed, 20 Dec 2023 18:24: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: 0821bd09-9f65-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703096676;
	bh=QBN2AWkBUcJPfk8rZdnXm+mJOwUj6XGJ3eXwL0wztok=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=oJ87QqIhxBW/n3ioT7JxZrfubvIJeMYQxkRFcLHH4kcuN/ciTYNGNG6hcrIRsszXR
	 fZ6419nVbHbnoodl704egKDRgRaXKZddnGhJRCwyFbbI0lXGz4QGXv02ntbi92pFmK
	 SfuBAq2WLokx40ESETFjU3AbTMHauoYXiBrSKWPjwxsViWuXuHakrA1q82UwjtlDmf
	 yJo8Vqr1TCIlYX88fywyvCeBoDUy85ux57FNStzxb9Jfd0qNgwHfOlWHa3K5nT4mWk
	 NT8fi1ZmQkmyfTmvL8TOcgXKYwCyMBYXR7W+qq5sW/FvVHO1oJR9/kPmbGhL/mh+AU
	 oPsEro5deYB4A==
Date: Wed, 20 Dec 2023 10:24:33 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
    consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
In-Reply-To: <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312201008070.685950@ubuntu-linux-20-04-desktop>
References: <cover.1703066935.git.federico.serafini@bugseng.com> <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com> <0200354e-08b9-4136-b6e9-3220a51256af@xen.org> <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
 <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@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, 20 Dec 2023, Federico Serafini wrote:
> On 20/12/23 12:55, Jan Beulich wrote:
> > On 20.12.2023 12:48, Julien Grall wrote:
> > > On 20/12/2023 11:03, Federico Serafini wrote:
> > > > --- a/xen/arch/arm/arm64/vsysreg.c
> > > > +++ b/xen/arch/arm/arm64/vsysreg.c
> > > > @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
> > > >            /* RO at EL0. RAZ/WI at EL1 */
> > > >            if ( regs_mode_is_user(regs) )
> > > >                return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr,
> > > > 0);
> > > > -        else
> > > > -            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr,
> > > > 1);
> > > > +
> > > > +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
> > > 
> > > I don't 100% like this change (mostly because I find if/else clearer
> > > here).
> > 
> > While (it doesn't matter here) my view on this is different, I'm still
> > puzzled why the tool would complain / why a change here is necessary.
> > It is not _one_ return statement, but there's still (and obviously) no
> > way of falling through.
> 
> The tool is configurable:
> if you prefer deviate these cases instead of refactoring the code
> I can update the configuration.
 
If you say "deviation", it implies that there is a violation. I think
Jan's point was that both code versions shouldn't be any different.

# option-1
if (a)
  return f1();
else
  return f2();

# option-2
if (a)
  return f1();
return f2();

Both options are equally guaranteed to always return. It looks like a
peculiar limitation to only recognize option-2 as something that returns
100% of the times. Also option-1 returns 100% of the times. What am I
missing?


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 18:24:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 18:24:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658225.1027327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG1FU-0003zn-NQ; Wed, 20 Dec 2023 18:24:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658225.1027327; Wed, 20 Dec 2023 18: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 1rG1FU-0003zg-KX; Wed, 20 Dec 2023 18:24:52 +0000
Received: by outflank-mailman (input) for mailman id 658225;
 Wed, 20 Dec 2023 18:24: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=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rG1FS-0003Qh-Kt
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 18:24:50 +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 0e79d80e-9f65-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 19:24:49 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 27D69CE1DCD;
 Wed, 20 Dec 2023 18:24:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1DE4C433C7;
 Wed, 20 Dec 2023 18:24: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: 0e79d80e-9f65-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703096684;
	bh=3SKBk5/wfLnWWuOrHV07nyJo3tOVq5iFTAqRk+VbqPY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rDld1t4XWo6Egb4D+S9LTWlvHPZ+Apnw205V3JklmQSN0co/jdKh+bqjHyc20/8Es
	 H91CSLwGZjx841TiJICIo4LNWdPLh7e6s++Sm5CUOANSBKm+K0ix4w+1vsLatirmIX
	 JI9CC8SkSVWyphUrDM6imeYWD7ej+dtkeUY9lTtthhTdD4oflK7OJrViHue7lBaSsH
	 VTxqazmQhfvxGo7Y2I1g3dpin1cgR8D9Y33RY/g8E+yr6MxM4jBdy7xjQlzH674kV/
	 ZAE4LND0Nh7Z3OHa1nny8Z8AM1AqY/bJjyJhTM+1nkkvEw3JRqQSTpo3xKDs+4HaJR
	 kxdxobsPP7mKw==
Date: Wed, 20 Dec 2023 10:24:41 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, jbeulich@suse.com, andrew.cooper3@citrix.com, 
    roger.pau@citrix.com, George Dunlap <george.dunlap@citrix.com>, 
    Julien Grall <julien@xen.org>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH v2] docs/misra: exclude files inherited from ACPI CA
 from MISRA compliance
In-Reply-To: <2a6df4ecd1cbcd14e3eb462eed0e1a73670ed762.1703067901.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2312201014050.685950@ubuntu-linux-20-04-desktop>
References: <2a6df4ecd1cbcd14e3eb462eed0e1a73670ed762.1703067901.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, 20 Dec 2023, Nicola Vetrini wrote:
> The files under 'include/acpi/ac*.h' and 'include/acpi/plaform/ac*.h'
> are inherited from Linux and ACPI CA, therefore they are not subject to
> MISRA compliance at the moment.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 18:52:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 18:52:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658238.1027338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG1fm-0001Po-B2; Wed, 20 Dec 2023 18:52:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658238.1027338; Wed, 20 Dec 2023 18:52: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 1rG1fm-0001Ph-6e; Wed, 20 Dec 2023 18:52:02 +0000
Received: by outflank-mailman (input) for mailman id 658238;
 Wed, 20 Dec 2023 18:52:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3yS4=H7=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rG1fl-0001OL-0J
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 18:52:01 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9c2e4f5-9f68-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 19:51:58 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id C89C98285494;
 Wed, 20 Dec 2023 12:51:56 -0600 (CST)
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 IB9780hY6YJZ; Wed, 20 Dec 2023 12:51:55 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 845518285497;
 Wed, 20 Dec 2023 12:51:55 -0600 (CST)
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 5Xp9wo1RUKmM; Wed, 20 Dec 2023 12:51:55 -0600 (CST)
Received: from [10.11.0.2] (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 0CDD78285494;
 Wed, 20 Dec 2023 12:51:54 -0600 (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: d9c2e4f5-9f68-11ee-98eb-6d05b1d4d9a1
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 845518285497
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1703098315; bh=BMjoy4Lky1cmwjulfFfiJnZ7v8JkFHePEIusjRlZc7A=;
	h=Message-ID:Date:MIME-Version:To:From;
	b=cfemmQSvl6t0PPqIFfvj5xzAuBsjEDzPkB6dczg75BLF/8awAsGHNBgXV97nMnNFc
	 qgvIkUnhAiNkEMBSt1aMMojXm+6s6KQ7Ab2WlvjypFHK7ZCWmx7eadmxUo2MGvCPyG
	 u/czFi5erN3ABL97TxbOB2iKfQLMOhGoHNZoTdU8=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <6aa5f0bd-10b4-4976-9ef2-7e01a2c01615@raptorengineering.com>
Date: Wed, 20 Dec 2023 12:51:54 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] xen/asm-generic: Introduce generic setup.h
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <1e4f48d753871bf61de3af97a3009e069d25d01e.1702607884.git.sanastasio@raptorengineering.com>
 <3fa1db69-adcc-4d1f-9e8a-e2300393210b@suse.com>
From: Shawn Anastasio <sanastasio@raptorengineering.com>
In-Reply-To: <3fa1db69-adcc-4d1f-9e8a-e2300393210b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi Jan,

On 12/20/23 5:09 AM, Jan Beulich wrote:
> On 15.12.2023 03:43, Shawn Anastasio wrote:
>> Introduce setup.h to asm-generic based off of ARM's to define all
>> stubs necessary to compile bootfdt.c
>>
>> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>> ---
>>  xen/arch/ppc/include/asm/Makefile |   1 +
>>  xen/arch/ppc/include/asm/setup.h  |   6 --
>>  xen/include/asm-generic/setup.h   | 148 ++++++++++++++++++++++++++++++
>>  3 files changed, 149 insertions(+), 6 deletions(-)
>>  delete mode 100644 xen/arch/ppc/include/asm/setup.h
>>  create mode 100644 xen/include/asm-generic/setup.h
>>
>> diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
>> index a711cfa856..7167661f86 100644
>> --- a/xen/arch/ppc/include/asm/Makefile
>> +++ b/xen/arch/ppc/include/asm/Makefile
>> @@ -6,5 +6,6 @@ generic-y += iocap.h
>>  generic-y += paging.h
>>  generic-y += percpu.h
>>  generic-y += random.h
>> +generic-y += setup.h
>>  generic-y += static-shmem.h
>>  generic-y += vm_event.h
> 
> Looking at patch 5, you undo this there. Why introduce it in the first place
> then? And why leave a stale (unused) file around there?
>

The intent was to leave the file around for RISC-V, since now xen/common
won't build when CONFIG_HAS_DEVICE tree is set unless these headers are
available with sufficient definitions.

Given your earlier comment about these not being exactly generic (which
I agree with, they are closer to stubs if anything), I suppose I'll just
drop both of these headers going forward and let RISC-V handle the new
changes required to get common/ building.

> Jan

Thanks,
Shawn


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 18:58:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 18:58:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658245.1027348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG1mR-0002Ff-6o; Wed, 20 Dec 2023 18:58:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658245.1027348; Wed, 20 Dec 2023 18:58:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG1mR-0002FY-41; Wed, 20 Dec 2023 18:58:55 +0000
Received: by outflank-mailman (input) for mailman id 658245;
 Wed, 20 Dec 2023 18:58:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wrkk=H7=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rG1mQ-0002FS-H4
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 18:58:54 +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 cfd26289-9f69-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 19:58:52 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sin.source.kernel.org (Postfix) with ESMTP id 25141CE1D5C;
 Wed, 20 Dec 2023 18:58:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 47C9DC433C8;
 Wed, 20 Dec 2023 18:58:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cfd26289-9f69-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703098726;
	bh=URY02UddOim4cEdqv3S4Emu2QUaKxv6M7A+HWzTBzQw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=F5QgkZz+Uy4cW8qzOC47LI3VTHkFs/iRsFz0K4T6CUooeu/hBqMx0jFm/jrb093Iu
	 z7+rhO07MMjW07rItsA7TMfAaw3udxynEtOML52pEXCxd8pJKE5TS01MC2I1vGJpzd
	 DY+kBlYeRuZUxDZAkWyFOfVqDO+ZfK0pXkmbPXTje0xK7MdoU0Qp8QfccO2xSLjwn/
	 6l04JP4CqV3SQaFf9vAFmdf6r3aSC7lerfuDTf4pRvnQD7xarV8Qoe5K7fbe5G6Dfj
	 TbJDVA6ETsHXOfp3AVuKBYun+y+KHqgvmDmu9OxVh3tk4MZQhaoNuj+9/lu9hLIcLB
	 CwsRcOoR6if8w==
Date: Wed, 20 Dec 2023 10:58:43 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    George Dunlap <George.Dunlap@citrix.com>, Jan Beulich <JBeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
    Federico Serafini <federico.serafini@bugseng.com>
Subject: Re: [PATCH 2/2] xen/bug: Complete outstanding TODO
In-Reply-To: <139031ab-522c-41d7-b9d7-e9b7d3656555@xen.org>
Message-ID: <alpine.DEB.2.22.394.2312201053180.685950@ubuntu-linux-20-04-desktop>
References: <20231215181433.1588532-1-andrew.cooper3@citrix.com> <20231215181433.1588532-3-andrew.cooper3@citrix.com> <139031ab-522c-41d7-b9d7-e9b7d3656555@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1998577787-1703098608=:685950"
Content-ID: <alpine.DEB.2.22.394.2312201056540.685950@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-1998577787-1703098608=:685950
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312201056541.685950@ubuntu-linux-20-04-desktop>

On Fri, 15 Dec 2023, Julien Grall wrote:
> Hi Andrew,
> 
> On 15/12/2023 18:14, Andrew Cooper wrote:
> > Since this TODO was written, BUILD_BUG_ON() has been moved out of xen/lib.h
> > into xen/macros.h, which has done all the hard work.
> > 
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > ---
> > CC: George Dunlap <George.Dunlap@citrix.com>
> > CC: Jan Beulich <JBeulich@suse.com>
> > CC: Stefano Stabellini <sstabellini@kernel.org>
> > CC: Wei Liu <wl@xen.org>
> > CC: Julien Grall <julien@xen.org>
> > CC: Federico Serafini <federico.serafini@bugseng.com>
> > ---
> >   xen/include/xen/bug.h | 16 +++++++---------
> >   1 file changed, 7 insertions(+), 9 deletions(-)
> > 
> > diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h
> > index cb5138410ea7..8cca4486a477 100644
> > --- a/xen/include/xen/bug.h
> > +++ b/xen/include/xen/bug.h
> > @@ -20,7 +20,8 @@
> >   #define BUG_DEBUGGER_TRAP_FATAL(regs) 0
> >   #endif
> >   -#include <xen/lib.h>
> > +#include <xen/macros.h>
> > +#include <xen/types.h>
> >     #ifndef BUG_FRAME_STRUCT
> >   @@ -104,14 +105,11 @@ typedef void bug_fn_t(const struct cpu_user_regs
> > *regs);
> >     #ifndef run_in_exception_handler
> >   -/*
> > - * TODO: untangle header dependences, break BUILD_BUG_ON() out of
> > xen/lib.h,
> > - * and use a real static inline here to get proper type checking of fn().
> > - */
> > -#define run_in_exception_handler(fn) do {                   \
> > -    (void)((fn) == (void (*)(struct cpu_user_regs *))NULL); \
> > -    BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL);             \
> > -} while ( false )
> > +static void always_inline run_in_exception_handler(
> > +    void (*fn)(struct cpu_user_regs *regs))
> 
> Based on the other threads, shouldn't this be using bug_fn_t?

Unfortunately it doesn't compile:

common/bug.c: In function â€˜do_bug_frameâ€™:
common/bug.c:72:38: error: passing argument 1 of â€˜run_in_exception_handlerâ€™ from incompatible pointer type [-Werror=incompatible-pointer-types]
   72 |             run_in_exception_handler(fn);
      |                                      ^~
      |                                      |
      |                                      void (*)(struct cpu_user_regs *)

due to the missing const in common/bug.c:72.


Not to make things more complicated in this patch, I think we should
take the patch as is as a simple cleanup (and do further cleanups in the
future):

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-1998577787-1703098608=:685950--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 20:05:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 20:05:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658250.1027358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG2p6-00055T-2n; Wed, 20 Dec 2023 20:05:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658250.1027358; Wed, 20 Dec 2023 20:05:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG2p6-00055M-0C; Wed, 20 Dec 2023 20:05:44 +0000
Received: by outflank-mailman (input) for mailman id 658250;
 Wed, 20 Dec 2023 20: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=RD2L=H7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rG2p5-00055G-84
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 20:05:43 +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 267635e2-9f73-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 21:05:41 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-50e44c1b35fso97095e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 12:05:41 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 z1-20020ac24f81000000b0050e3f35e549sm50318lfs.203.2023.12.20.12.05.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 12:05:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 267635e2-9f73-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703102740; x=1703707540; 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=7XXaZ148JMl9fL6qBS2K6YuKFKoFXCcdRayp3lFcKD4=;
        b=JcGJGB9tJhBP0fQiflviTIy/Wa7egoG33R/3biNzs+XFjn93BDJ4xj454T4L1OtVhF
         aHKSBba9D0O26vrWVUoniZ1SN+aKyMdMtfDwxTMbw/dzJ/kwwmNlzgvBnjdfuO144TNu
         raL/Ud5Abe5DBr8SXTjs5BiKbZmBkn2poC3nPRP4myog6NqzWVPVUq69WY5N2GK1Vci0
         gQjxQRm/JSdD+sk6WfA8lmZwSxjii0XGiTtfcyV8UsZ4Lkwr1R9C6YDFQ8C4o+i/vv85
         Abvk+DRnxNudZ8WmUFfbmU6AGj9vQAccXfWlQJbkQOyRm/dXsYx/zUsRJygwk5ZcvT3p
         Vw1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703102740; x=1703707540;
        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=7XXaZ148JMl9fL6qBS2K6YuKFKoFXCcdRayp3lFcKD4=;
        b=gE1U2O8o+ejbyTqPgaz7q9oxbPjuwFnC86fbmy7M5xo8MGIVzIDd9/jv7oe+iFSonU
         SREcrOIHVSZy2DBLUtcdheP7GAHyTvhn0929fpYTcD4i5E8qIYdDB3TlShm4vnzgv4y0
         23SLCyEJHyspipcvNE1RIPE3MwJa6XlPOEZ7UoltN/JLR0bXaj+/QgQATCY+Vmkrqq5T
         zE8PaevlX8liHeFDwSScaQg8JBCUucHzQ5panCmo0DRR/dpntPgJ/PCfc1wQNTEsJoyU
         eFz9tHtaVdmskNBkc/vMhPtwuERf1QkNmxuXfU42gAgJKb0mf9kwmCrHUfBQURY0x5Pe
         hSQA==
X-Gm-Message-State: AOJu0YzXJtQ+nzzzBgrFFlWgJtloIzyiSa8GCQFtuhosYU0ySNKY7mOg
	bAPMHliMGrK8V/vn4vBFLnM=
X-Google-Smtp-Source: AGHT+IGo7nphxPuXlO6K6wUACnIje+9FM7ngmlAvo88Dv4czcDl4D3P978d29iwQOw4GLWGQXcCWLA==
X-Received: by 2002:a05:6512:31d2:b0:50b:f0a2:25dd with SMTP id j18-20020a05651231d200b0050bf0a225ddmr11607923lfe.3.1703102740335;
        Wed, 20 Dec 2023 12:05:40 -0800 (PST)
Message-ID: <f890996c2b100c6ace1f853da2c293d2f9244ef9.camel@gmail.com>
Subject: Re: [PATCH v2 07/39] xen/riscv: introduce arch-riscv/hvm/save.h
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Shawn Anastasio
 <sanastasio@raptorengineering.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	 <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, 
	xen-devel@lists.xenproject.org
Date: Wed, 20 Dec 2023 22:05:34 +0200
In-Reply-To: <5eae9d9b-e499-4c8c-aed0-2f52c0aa7c9f@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <acb870b980a791d7800d47c08c9574275159df39.1700761381.git.oleksii.kurochko@gmail.com>
	 <5eae9d9b-e499-4c8c-aed0-2f52c0aa7c9f@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Tue, 2023-12-05 at 16:59 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > --- /dev/null
> > +++ b/xen/include/public/arch-riscv/hvm/save.h
> > @@ -0,0 +1,20 @@
> > +/* SPDX-License-Identifier: MIT */
> > +/*
> > + * Structure definitions for HVM state that is held by Xen and
> > must
> > + * be saved along with the domain's memory and device-model state.
> > + */
> > +
> > +#ifndef __XEN_PUBLIC_HVM_SAVE_RISCV_H__
> > +#define __XEN_PUBLIC_HVM_SAVE_RISCV_H__
> > +
> > +#endif
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * tab-width: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
>=20
> Seeing that Arm's is as empty, I wonder why we have it. Julien,
> Stefano?
It seems to exist to satisfy the 'install-tools-public-headers' target:
install: cannot stat 'xen/arch-arm/hvm/*.h': No such file or directory
Makefile:58: recipe for target 'install' failed
make[1]: *** [install] Error 1
make[1]: Leaving directory '/builds/xen-
project/people/olkur/xen/tools/include'
Makefile:44: recipe for target 'install-tools-public-headers' failed

>From tools/include/Makefile:
install: all
...
$(DESTDIR)$(includedir)/xen/arch-arm
	$(INSTALL_DATA) xen/arch-arm/hvm/*.h
$(DESTDIR)$(includedir)/xen/arch-arm/hvm
...

We have the following options:
1. Remove the line with $(INSTALL_DATA) xen/arch-arm/hvm/*.h (only
save.h is now in this folder, which is empty).
2. Don't touch the Arm part, but for PPC and RISC-V, do the following:
#if defined(__i386__) || defined(__x86_64__)
#include "../arch-x86/hvm/save.h"
#elif defined(__arm__) || defined(__aarch64__)
#include "../arch-arm/hvm/save.h"
+#elif defined(__powerpc64__) || defined(__riscv)
+/* no specific header to include */
#else
#error "unsupported architecture"
#endif

3. Provide an asm-generic version of save.h for Arm, PPC, and RISC-V
and use it in public/save.h.

In your opinion, which option would be better?

~ Oleksii
> ....
> > --- a/xen/include/public/hvm/save.h
> > +++ b/xen/include/public/hvm/save.h
> > @@ -91,6 +91,8 @@ DECLARE_HVM_SAVE_TYPE(END, 0, struct
> > hvm_save_end);
> > =C2=A0#include "../arch-arm/hvm/save.h"
> > =C2=A0#elif defined(__powerpc64__)
> > =C2=A0#include "../arch-ppc.h"
> > +#elif defined(__riscv)
> > +#include "../arch-riscv/hvm/save.h"
> > =C2=A0#else
> > =C2=A0#error "unsupported architecture"
> > =C2=A0#endif
>=20
> The PPC part here looks bogus altogether. Shawn?
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 20:59:12 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 20:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658257.1027367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG3eh-000419-VF; Wed, 20 Dec 2023 20:59:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658257.1027367; Wed, 20 Dec 2023 20:59:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG3eh-000412-S3; Wed, 20 Dec 2023 20:59:03 +0000
Received: by outflank-mailman (input) for mailman id 658257;
 Wed, 20 Dec 2023 20:59:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3yS4=H7=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1rG3eg-00040w-QU
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 20:59:02 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 98b1ea26-9f7a-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 21:59:00 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 7825082859FC;
 Wed, 20 Dec 2023 14:58:58 -0600 (CST)
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 YSBicA4j1kmp; Wed, 20 Dec 2023 14:58:58 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id D86E88285AB9;
 Wed, 20 Dec 2023 14:58:57 -0600 (CST)
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 rEnnkCTUCbhP; Wed, 20 Dec 2023 14:58:56 -0600 (CST)
Received: from [10.11.0.2] (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 35AF582859FC;
 Wed, 20 Dec 2023 14:58:56 -0600 (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: 98b1ea26-9f7a-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com D86E88285AB9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1703105937; bh=CjGfFdazNR8NgpvmDTiqSJiAfNIEj67MpaEtLjAE0r4=;
	h=Message-ID:Date:MIME-Version:To:From;
	b=X0sPiHjUifFmHxlsZXhvQe48nqOBOsURsOVuxF0HYZ7U4Pi3IU4bDCBydR/fIW1nK
	 ighHevKBUBa0c9hGLE3D5dy8clZIO451+JXO1EREVO8k2+W/QwjutOUaV9bQULMPLI
	 ly9lMbL3foybKO/ZAXyRUrag08AjNjaUu3xcWUDM=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <cb2f543b-ef29-4174-8437-dc875c27daab@raptorengineering.com>
Date: Wed, 20 Dec 2023 14:58:55 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com>
 <3546ec55-3e0c-4fdc-9697-0105d20bacfd@suse.com>
 <5fc9ad7a-1281-46da-abff-0aa2d2beca14@xen.org>
 <69c5afde-3a24-4792-b4e5-3ce17cb1602d@suse.com>
From: Shawn Anastasio <sanastasio@raptorengineering.com>
In-Reply-To: <69c5afde-3a24-4792-b4e5-3ce17cb1602d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12/20/23 2:09 AM, Jan Beulich wrote:
> On 19.12.2023 19:29, Julien Grall wrote:
>> On 19/12/2023 17:03, Jan Beulich wrote:
>>> On 15.12.2023 03:43, Shawn Anastasio wrote:
>>>> --- a/xen/arch/arm/bootfdt.c
>>>> +++ b/xen/common/device-tree/bootfdt.c
>>>> @@ -431,12 +431,15 @@ static int __init early_scan_node(const void *fdt,
>>>>   {
>>>>       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") )
>>>> +    if ( device_tree_node_matches(fdt, node, "memory") )
>>>> +#if defined(CONFIG_ARM_EFI)
>>>> +        /*
>>>> +         * If Xen has been booted via UEFI, the memory banks are
>>>> +         * populated. So we should skip the parsing.
>>>> +         */
>>>> +        if ( efi_enabled(EFI_BOOT) )
>>>> +            return rc;
>>>> +#endif
>>>
>>> I'm not a DT maintainer, but I don't like this kind of #ifdef, the more
>>> that maybe PPC and quite likely RISC-V are likely to also want to support
>>> EFI boot. But of course there may be something inherently Arm-specific
>>> here that I'm unaware of.
>>
>> Right now, I can't think how this is Arm specific. If you are using 
>> UEFI, then you are expected to use the UEFI memory map rather than the 
>> content of the device-tree.
>>
>> However, we don't have a CONFIG_EFI option. It would be nice to 
>> introduce one but I am not sure I would introduce it just for this #ifdef.
> 
> Right, hence why I also wasn't suggesting to go that route right away.
> efi/common-stub.c already has a stub for efi_enabled(). Using that file
> may be too involved to arrange for in PPC, but supplying such a stub
> elsewhere for the time being looks like it wouldn't too much effort
> (and would eliminate the need for any #ifdef here afaict). Shawn?
> 

To clarify, you're suggesting we add an efi_enabled stub somewhere in
arch/ppc? I'm not against that, though it does seem a little silly to
have to define EFI-specific functions on an architecture that will never
support EFI.

Stil, if you think it's preferable to adding the ifdef here then I'm not
against it.

> Jan

Thanks,
Shawn


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 21:05:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 21:05:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658262.1027378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG3kw-0005rj-JS; Wed, 20 Dec 2023 21:05:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658262.1027378; Wed, 20 Dec 2023 21:05:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG3kw-0005rc-Gx; Wed, 20 Dec 2023 21:05:30 +0000
Received: by outflank-mailman (input) for mailman id 658262;
 Wed, 20 Dec 2023 21:05: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=GUkk=H7=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rG3kv-0005rW-6X
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 21:05:29 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 7fadbb4a-9f7b-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 22:05:27 +0100 (CET)
Received: from mg.gitlab.com (16.226.74.34.bc.googleusercontent.com
 [34.74.226.16]) by
 bb4023811562 with SMTP id 658357158f61d1f574ffa24e (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 20 Dec 2023 21:05:25 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 7fadbb4a-9f7b-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1703106325; x=1703113525; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=r86WJkw4Og8HfTQyQ5fPwjqx7632/tC3CYHQdjwyG0g=;
 b=jb5oYjYoHNXENCRulCrQpPsN/k2Z3UPbK29+EVGqBndggW9QY4kzAULNNQ+tpbXfycQeEcaSurqke12PokTSvvuUyL/8XZ2nsGPtRwVZK2H2f4B62e0xqmdWpHKrY+PM+h61I18h7Wv9njEctHyMKrA8oDoRJ0rrGLM+iLny2LI=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 20 Dec 2023 21:05:25 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <658357153b2a2_2c95a38254ba@gitlab-sidekiq-catchall-v2-78f585bbc-mdhlv.mail>
Subject: xen | Successful pipeline for staging | e9786ba9
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65835715307ce_2c95a3825383";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1114768386
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65835715307ce_2c95a3825383
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1114768386 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: e9786ba9 ( https://gitlab.com/xen-project/xen/-/commit/e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0 )
Commit Message: xen/arm: mmu: address a violations of MISRA C:2...
Commit Author: Federico Serafini
Committed by: Stefano Stabellini



Pipeline #1114768386 ( https://gitlab.com/xen-project/xen/-/pipelines/1114768386 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | e9786ba9</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1114768386 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/e9786ba9ee5f0b4b6e=
adb4ca80417f195ce251a0" style=3D"color: #3777b0; text-decoration: none;">=
e9786ba9</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen/arm: mmu: address a violations of MISRA C:2...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/7347c1427cde55f447d83dc392bce562?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Federico Serafini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/50b82a64e2a9f930cabefa3948871101?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Stefano Stabellini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111476=
8386" style=3D"color: #3777b0; text-decoration: none;">#1114768386</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65835715307ce_2c95a3825383--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 21:23:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 21:23:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658301.1027388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG42V-0000gs-5y; Wed, 20 Dec 2023 21:23:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658301.1027388; Wed, 20 Dec 2023 21:23:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG42V-0000gb-35; Wed, 20 Dec 2023 21:23:39 +0000
Received: by outflank-mailman (input) for mailman id 658301;
 Wed, 20 Dec 2023 21:23: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=+WYL=H7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rG42T-0000eu-3M
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 21:23:37 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 084924df-9f7e-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 22:23:35 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c41b43e1eso1710795e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 13:23:34 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 he3-20020a05600c540300b00405d9a950a2sm8395833wmb.28.2023.12.20.13.23.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 13:23:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 084924df-9f7e-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703107414; x=1703712214; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1b7ixOeuORFehW3FsrzPRzfte6omFFH7dm59nw7kGo0=;
        b=YGNNZX5JHZk28YbU97uLDblv6F6gyeYMGK6k+oNKuEDO7xPDX3Y7ZcrxTCMlp23E0A
         h6u0JD833lfYyU/3kRP+DBAgR+03tm0ToDQvIYgQda1nl1eAkSmhrBEsgo2BvYTPx31U
         qGdk3Gig6LvpLXxw0trm9YNzuinaDpmZpteJc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703107414; x=1703712214;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=1b7ixOeuORFehW3FsrzPRzfte6omFFH7dm59nw7kGo0=;
        b=awXYCfC9PvJaR0mJFfWzKBVxYjG9semMjxnuMYfGg9uZkOjhL39Wuj7tvsWymSov81
         /DQTGZstTBfh0XIRR0zvX/9tHrN2qgoBmNSi3XvtZY5KCfoFYf52u3OOX7K+5khL+mEk
         RK/WrmOT80LJclUdjTrHb7q3w0QvFphyGjhNSpPE4mjDNyKE8/UHqIgq1nCyLLgDXnzR
         R3dsRVMVxdXDaOPGv+wZioaDR+G417oHQGtjhnUJOhkOzJmUv6qETQuLwBrcI9pgz2xx
         gdmu/P454qRFB+RCeyeeYBDd6HoG9IefAEa/ugjxTs1RyNa0ySywnPdTMujxWZRw4B8f
         ImCQ==
X-Gm-Message-State: AOJu0YyCp7hmQV0p9aRWhATCWga8S8hYyQ/VGAq6a/Ckd5+9kX50YSPj
	D7BxJfoxXY3Kx+QSetfzzyhVRw==
X-Google-Smtp-Source: AGHT+IEiNOWqiWhHnXfEnRZ3zf9LQyz8h9f3sQTGYbvZzegJ+2hfGzKNjC6u5QRsPu86DIOxHeAExg==
X-Received: by 2002:a05:600c:34cb:b0:40c:3244:fec4 with SMTP id d11-20020a05600c34cb00b0040c3244fec4mr154024wmq.218.1703107414358;
        Wed, 20 Dec 2023 13:23:34 -0800 (PST)
Message-ID: <e5a812ab-faaf-47fd-bada-9b19e0c94bcc@citrix.com>
Date: Wed, 20 Dec 2023 21:23:33 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 Federico Serafini <federico.serafini@bugseng.com>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 consulting@bugseng.com, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com>
 <0200354e-08b9-4136-b6e9-3220a51256af@xen.org>
 <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
 <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@bugseng.com>
 <alpine.DEB.2.22.394.2312201008070.685950@ubuntu-linux-20-04-desktop>
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.2312201008070.685950@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/12/2023 6:24 pm, Stefano Stabellini wrote:
> On Wed, 20 Dec 2023, Federico Serafini wrote:
>> On 20/12/23 12:55, Jan Beulich wrote:
>>> On 20.12.2023 12:48, Julien Grall wrote:
>>>> On 20/12/2023 11:03, Federico Serafini wrote:
>>>>> --- a/xen/arch/arm/arm64/vsysreg.c
>>>>> +++ b/xen/arch/arm/arm64/vsysreg.c
>>>>> @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
>>>>>            /* RO at EL0. RAZ/WI at EL1 */
>>>>>            if ( regs_mode_is_user(regs) )
>>>>>                return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr,
>>>>> 0);
>>>>> -        else
>>>>> -            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr,
>>>>> 1);
>>>>> +
>>>>> +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>>>> I don't 100% like this change (mostly because I find if/else clearer
>>>> here).
>>> While (it doesn't matter here) my view on this is different, I'm still
>>> puzzled why the tool would complain / why a change here is necessary.
>>> It is not _one_ return statement, but there's still (and obviously) no
>>> way of falling through.
>> The tool is configurable:
>> if you prefer deviate these cases instead of refactoring the code
>> I can update the configuration.
>  
> If you say "deviation", it implies that there is a violation. I think
> Jan's point was that both code versions shouldn't be any different.
>
> # option-1
> if (a)
>   return f1();
> else
>   return f2();
>
> # option-2
> if (a)
>   return f1();
> return f2();
>
> Both options are equally guaranteed to always return. It looks like a
> peculiar limitation to only recognize option-2 as something that returns
> 100% of the times. Also option-1 returns 100% of the times. What am I
> missing?

For completeness, it's worth saying that there is an option-3:

Â Â Â  return a ? f1() : f2();

which is very clearly only a single return, but I personally don't like
this as I often find it to be less clear than either other option.

All options have a guaranteed return, but there cases including this one
where option-1 is clearest way to write the logic.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 21:35:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 21:35:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658306.1027397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4Dr-0002bj-6D; Wed, 20 Dec 2023 21:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658306.1027397; Wed, 20 Dec 2023 21:35:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4Dr-0002bc-3f; Wed, 20 Dec 2023 21:35:23 +0000
Received: by outflank-mailman (input) for mailman id 658306;
 Wed, 20 Dec 2023 21:35:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+WYL=H7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rG4Dq-0002bW-9e
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 21:35:22 +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 ad259aae-9f7f-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 22:35:21 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40c2308faedso1869045e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 13:35:21 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 j30-20020a05600c1c1e00b004076f522058sm8859538wms.0.2023.12.20.13.35.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 13:35:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad259aae-9f7f-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703108120; x=1703712920; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=U4N05KO5w+N/LmrlCmrwMxgvslOvFLjoKxfuGHlYkTg=;
        b=Xg+5Z1cp19HfLpkbocatLj1/9JPbdMnBF4bwl1X92O8KZ6N7YbAYT/krD92yF93qTy
         vraQSh054aZ+us2/tX2nIjS3dm36mdhtuEceJZlghb9Yl1sDH55AJiaxkJmpjDyJ4f3n
         rXJm7RBVpIFqzh0xkba/kRjqRnIhI1dcvySXw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703108120; x=1703712920;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=U4N05KO5w+N/LmrlCmrwMxgvslOvFLjoKxfuGHlYkTg=;
        b=KoHBWscNx6kEEQiGlknTOUJBCyRtTctNm88yee88etJX20dAupbxpqrUyfFF2SG2i9
         XShBPCjNqh5bRviZy1ScHmlQIIMpbiefrkKL09eMNRFYXHpGgaDpjthjT/NXBn2Bu4XL
         FN6uaTphZ0zd2VtUqHgLrDsSVpi2eEwZBmL+j9DbVBRHTMkd4wJOsrdiIn8ulL8w7XMQ
         kJ8xj7roe8jEuirCv0363//0lLhKQHlxH/YAuhpsJw06/5+bUmqsiXHrR4yN1j4Fz0Tg
         qjLHkq3q4XJNyDqkBYDuD9YPQUd9zi0SVfTFJr7ciIVQYASBpn+dN/p1xABotc5aDH/B
         uOxA==
X-Gm-Message-State: AOJu0Yz1uKOWrwizRxxJvOYq4CAg4isnGqElRYgr+2ibtQkLq5hE9ekf
	trpKkvk8ZMTltZTE7fVfZTJ/r1NMPh69JO6jYSY=
X-Google-Smtp-Source: AGHT+IFXiI0LGIT5fjFpoVnqQYcqHaqTA/94iabXmEWwJnetkf6qvQbQ4/mbcL/bhJ2EUQgYGX2r0A==
X-Received: by 2002:a1c:6a16:0:b0:40d:271e:67bc with SMTP id f22-20020a1c6a16000000b0040d271e67bcmr182500wmc.112.1703108120475;
        Wed, 20 Dec 2023 13:35:20 -0800 (PST)
Message-ID: <d847830f-7071-4141-bab7-8b8c55ec3ae8@citrix.com>
Date: Wed, 20 Dec 2023 21:35:19 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 0/7] xen/arm: address violations of MISRA C:2012 Rule
 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <cover.1703066935.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/12/2023 11:03 am, Federico Serafini wrote:
> This patch series addresses violations of MISRA C:2012 Rule 16.3 on the Arm
> code. No fucntional changes are introduced.
>
> Federico Serafini (7):
>   xen/arm: gic-v3: address violations of MISRA C:2012 Rule 16.3
>   xen/arm: traps: address violations of MISRA C:2012 Rule 16.3
>   xen/arm: guest_walk: address violations of MISRA C:2012 Rule 16.3
>   xen/arm: mem_access: address violations of MISRA C:2012 Rule 16.3
>   xen/arm: v{cp,sys}reg: address violations of MISRA C:2012 Rule 16.3
>   xen/arm: mmu: address a violations of MISRA C:2012 Rule 16.3
>   xen/arm: smmu-v3: address violations of MISRA C:2012 Rule 16.3
>
>  xen/arch/arm/arm64/vsysreg.c          |  4 ++--
>  xen/arch/arm/gic-v3.c                 | 30 +++++++++++++++++++++++++++
>  xen/arch/arm/guest_walk.c             |  4 ++++
>  xen/arch/arm/mem_access.c             | 12 +++++------
>  xen/arch/arm/mmu/p2m.c                |  1 +
>  xen/arch/arm/traps.c                  | 18 ++++++++++++----
>  xen/arch/arm/vcpreg.c                 |  4 ++--
>  xen/drivers/passthrough/arm/smmu-v3.c |  2 ++
>  8 files changed, 61 insertions(+), 14 deletions(-)
>

Just a couple of notes on style.Â  This isn't a request to change
anything in this series, particularly as most is already committed, but
bear it in mind for what I expect will be similar patches in other areas.

We explicitly permit tabulation when it aids readibility, so patch 2
could have been written:

Â Â Â Â Â Â Â  switch ( hypercall_args[*nr] ) {
Â Â Â Â Â Â Â  case 5: HYPERCALL_ARG5(regs) = 0xDEADBEEFU; fallthrough;
Â Â Â Â Â Â Â  case 4: HYPERCALL_ARG4(regs) = 0xDEADBEEFU; fallthrough;
Â Â Â Â Â Â Â  case 3: HYPERCALL_ARG3(regs) = 0xDEADBEEFU; fallthrough;
Â Â Â Â Â Â Â  case 2: HYPERCALL_ARG2(regs) = 0xDEADBEEFU; fallthrough;
Â Â Â Â Â Â Â  case 1: /* Don't clobber x0/r0 -- it's the return value */
Â Â Â Â Â Â Â  case 0: /* -ENOSYS case */
Â Â Â Â Â Â Â Â Â Â Â  break;
Â Â Â Â Â Â Â  default: BUG();
Â Â Â Â Â Â Â  }

(give or take the brace placement other style issue)Â  We also have cases
where a break before a new case statement is preferred, i.e.:

Â Â Â  Â Â Â  ...
Â Â Â  Â Â Â  break;

Â Â Â  case ...:

This is to prevent larger switch statements from being a straight wall
of text.

If in doubt, match the style around it.Â  Please don't de-tabulate
examples which are already tabulated.Â  (i.e. don't de-tabulate the x86
versions of patch 2.)

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 21:44:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 21:44:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658311.1027408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4Mh-0004Zk-3n; Wed, 20 Dec 2023 21:44:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658311.1027408; Wed, 20 Dec 2023 21:44: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 1rG4Mg-0004Zd-W7; Wed, 20 Dec 2023 21:44:30 +0000
Received: by outflank-mailman (input) for mailman id 658311;
 Wed, 20 Dec 2023 21:44: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 1rG4Mg-0004ZT-2L; Wed, 20 Dec 2023 21:44: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 1rG4Mf-0007LE-Rw; Wed, 20 Dec 2023 21:44: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 1rG4Mf-00063E-HH; Wed, 20 Dec 2023 21:44:29 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rG4Mf-0003hm-Er; Wed, 20 Dec 2023 21:44:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=cDM2egqDx9k3xInNiI5GJ90MKWeWcNLInnySe9H8O4I=; b=EX4MKNrklbi92HQn64qRJe7JbX
	Eq3fwTn4NHYuBmhyPr2agCeJBUI/aln9FPY56V9d26/1f62JgI0kYz6rN6A0ZanGSwy9kZwaQZ2L5
	sknKTRm3Q03VGdqIxNdXCF59dK3BF0Te7UcbpiBTNC4YFN+iGtUty4x2kAjGdXfVYXcM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184193-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184193: 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=e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0
X-Osstest-Versions-That:
    xen=913a1774168f82565bbdc7d41a46013a40ba302d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 20 Dec 2023 21:44:29 +0000

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

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                  e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0
baseline version:
 xen                  913a1774168f82565bbdc7d41a46013a40ba302d

Last test of basis   184190  2023-12-20 11:00:27 Z    0 days
Testing same since   184193  2023-12-20 19:02:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Federico Serafini <federico.serafini@bugseng.com>
  Julien Grall <jgrall@amazon.com>
  Nicola Vetrini <nicola.vetrini@bugseng.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
   913a177416..e9786ba9ee  e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0 -> smoke


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 21:47:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 21:47:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658316.1027418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4PK-00059Y-HA; Wed, 20 Dec 2023 21:47:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658316.1027418; Wed, 20 Dec 2023 21:47:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4PK-00059R-EK; Wed, 20 Dec 2023 21:47:14 +0000
Received: by outflank-mailman (input) for mailman id 658316;
 Wed, 20 Dec 2023 21:47:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7nCC=H7=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rG4PJ-00059K-55
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 21:47:13 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062d.outbound.protection.outlook.com
 [2a01:111:f400:7eaa::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52c2509e-9f81-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 22:47:10 +0100 (CET)
Received: from SN7PR04CA0212.namprd04.prod.outlook.com (2603:10b6:806:127::7)
 by LV2PR12MB6015.namprd12.prod.outlook.com (2603:10b6:408:14f::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Wed, 20 Dec
 2023 21:47:06 +0000
Received: from SA2PEPF000015C7.namprd03.prod.outlook.com
 (2603:10b6:806:127:cafe::42) 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.7113.18 via Frontend
 Transport; Wed, 20 Dec 2023 21:47:05 +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.7113.14 via Frontend Transport; Wed, 20 Dec 2023 21:47:05 +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.34; Wed, 20 Dec
 2023 15:46:45 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 20 Dec
 2023 15:46:45 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Wed, 20 Dec 2023 15:46:38 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52c2509e-9f81-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=m3NNOrBq5cvm7jzEkn6NFa97RBLgZvSK5JN015zJjH45sTiuWwmDXx45aSvaqq/gkv5tmIUvzHa1WVU/KZrfyOu1FtZUxmmwy0WBxuXQ2m9ChcAw/nPFOngoAWkhma51rY0D7mWnJHBIyyrM3cLNnE4wQjGQfDmma06HaZYl2A4P4cDQnhj4e6C1oyFZbMYBaoS4L2/ZLQYXRQ/sm7O/HoKt/HCQ6SStntJebA9KoV9c7vlPZzZLfUr4lmOLpHYK4ZMPaPc5G7H45mZ81rJyizBSnlrN9QdBlRzj7fw/4AQEpWIZIuQZJ4seTwIIDPxdUDXURy4UNFrAAVaLJRG5Xg==
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=ntUY66EzQs1HWViU/XNbeAAlsc1Pg56omXE5aTE4KlU=;
 b=C5W0KQu6qQ2i80E+w0ciCYnsJ17KYCL/hTgMvNm2D77AjQWHs6i49WRu3tFxmBwh+S4PUyJGTTm4SbkeXV+tEFjc5ilMXRC46LdcBBB8uF9nrzZOOD9jS1QlqzTL+Zn2X+5fsp+zGrIJCmH/ZngawH4nSPIVnW2+hH6WucxzGj9s2xJEkCPS8dRvMKvll0akl4XDCkl2aobTOH8R+97ldQEyZehmfUEwMi39nydwP5diYMoub/0VcLm5eHQefnJdFZgc5vBWJ+4jpFT33MJeV6nYxSXZn24726oER2s9Eww4N9secBn5YphnbsNKpiDWxXUAzI7k73BSIURts49p6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ntUY66EzQs1HWViU/XNbeAAlsc1Pg56omXE5aTE4KlU=;
 b=a6/IO6vDPjCLnbdhuK9+IKBvLaxBe0ufCWRxdKOgKaeqRXD4kUaAe0Vml94ZtoEL5ddqZRiBT3A/A2+SRUy8WaIC9lAt5GWTwVPVSb06eULIrmoU7ITS4hMyO+0lwhw4wDvScER7R9UiNIF40rwszWfTbDbWFcaF3g8zXaHJWbo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
	<wl@xen.org>, George Dunlap <george.dunlap@citrix.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Volodymyr
 Babchuk" <volodymyr_babchuk@epam.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>
Subject: [PATCH v11.5 1/17] pci: msi: pass pdev to pci_enable_msi() function
Date: Wed, 20 Dec 2023 16:46:27 -0500
Message-ID: <20231220214628.431512-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231202012556.2012281-2-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com> <20231202012556.2012281-2-volodymyr_babchuk@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015C7:EE_|LV2PR12MB6015:EE_
X-MS-Office365-Filtering-Correlation-Id: c447e5cd-f78c-46a1-86fd-08dc01a53539
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	07b1ve4lf2y6eac5hHMkW3sriYM60eK50BRZrN0UAxaq04DIOm6o3s5EqLTJ5xMFBc6bl9SqnOL2rE9mW0lKoMFC/R7X3wX/U7C+5oLG247HyK6OI4/1HH3zk/3KpaF8iQwi3hq+g9mKb2mVXtx+7v2i0GsJZI0bh4On4kj2QVbJF+k9AR44PA7QkKSsVJkMps/Tya7TD8+ftCYeVPYTxLGmCK+k6Fgysw/A/hCwdSDilpmWOkEne3ifwKPNaBan2q5WDlabNkLsEbYugYtfinrLmLTH4rWPCu2AXp230VT7vq8f+i2XW9VNAUmBp391V7wtOdDIOqqL11JKUocja+X9C/hmj9u5wHUY/pgAYMx0v184Yi9vGGyyOdRdXwJHjfJxLv8MbY+pMqvXM7Qg5LDuMmzeNetDupmMeTioWihbeIDjq6lKnYcXZaR73a6Be/SVEDj4M4s2+jG8IpXQ7+STduVHaQpNJuc9jIjhmtYYVa/jExVlyaattW6WwXk20Cdq1jdcbL3Imdp4z7I2W3Gasf4oyw3P23085roU1lvTLFMFI5z+LOp0eOjBRtzRnwQBW74/ffFF0eYXGPTK+Cu8nJug5pJXfwfaJo+RM+bLuq43WwCsA+WcgO0ha2pIl0ca/G0GljlXr5eM7pcGoMmbZF35wKCK7EeKAevHlVeqFz94BNN3LuNfdbCWxbTQtiQPRPunaVlakqoYj6Kg5LHJ92RYqwMMGzeE9JeZXIYa5QrpSdEMVRLR5iJULpHggSAEg+EO+x57uy37XqIYCg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(39860400002)(376002)(136003)(346002)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(82310400011)(46966006)(40470700004)(36840700001)(40460700003)(356005)(336012)(26005)(2616005)(426003)(1076003)(83380400001)(4326008)(36860700001)(47076005)(54906003)(5660300002)(41300700001)(478600001)(6666004)(8936002)(70586007)(2906002)(8676002)(6916009)(316002)(70206006)(82740400003)(81166007)(86362001)(36756003)(44832011)(40480700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 21:47:05.3337
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c447e5cd-f78c-46a1-86fd-08dc01a53539
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: LV2PR12MB6015

From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>

Previously pci_enable_msi() function obtained pdev pointer by itself,
but taking into account upcoming changes to PCI locking, it is better
when caller passes already acquired pdev pointer to the function,
because caller knows better how to obtain the pointer and which locks
are needed to be used. Also, in most cases caller already has pointer
to pdev, so we can avoid an extra list walk.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
In v11.5:
 - Add Stewart's S-o-b
 - Add Stefano's R-b
 - Drop unrelated change renaming msi_desc parameter to desc in
   pci_disable_msi() prototype
 - Use ternary operator in ns16550.c to avoid unnessary code churn

In v11:
 - Made pdev parameter very first in pci_enable_msi() and friends.
 - Extended the commit message
 - Added check for pdev into ns16550 driver
 - Replaced hard tabs with spaces

Changes in v10:

 - New in v10. This is the result of discussion in "vpci: add initial
 support for virtual PCI bus topology"
---
 xen/arch/x86/include/asm/msi.h |  3 ++-
 xen/arch/x86/irq.c             |  2 +-
 xen/arch/x86/msi.c             | 19 ++++++++++---------
 xen/drivers/char/ns16550.c     |  5 ++++-
 4 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
index c1ece2786e01..997ccb87be0c 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -81,7 +81,8 @@ struct irq_desc;
 struct hw_interrupt_type;
 struct msi_desc;
 /* Helper functions */
-extern int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc);
+extern int pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
+                          struct msi_desc **desc);
 extern void pci_disable_msi(struct msi_desc *msi_desc);
 extern int pci_prepare_msix(u16 seg, u8 bus, u8 devfn, bool off);
 extern void pci_cleanup_msi(struct pci_dev *pdev);
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 6e668b1b4fe2..50e49e1a4b6f 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2176,7 +2176,7 @@ int map_domain_pirq(
         if ( !pdev )
             goto done;
 
-        ret = pci_enable_msi(msi, &msi_desc);
+        ret = pci_enable_msi(pdev, msi, &msi_desc);
         if ( ret )
         {
             if ( ret > 0 )
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 7f8e79425452..335c0868a225 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -983,13 +983,13 @@ static int msix_capability_init(struct pci_dev *dev,
  * irq or non-zero for otherwise.
  **/
 
-static int __pci_enable_msi(struct msi_info *msi, struct msi_desc **desc)
+static int __pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
+                            struct msi_desc **desc)
 {
-    struct pci_dev *pdev;
     struct msi_desc *old_desc;
 
     ASSERT(pcidevs_locked());
-    pdev = pci_get_pdev(NULL, msi->sbdf);
+
     if ( !pdev )
         return -ENODEV;
 
@@ -1038,13 +1038,13 @@ static void __pci_disable_msi(struct msi_desc *entry)
  * of irqs available. Driver should use the returned value to re-send
  * its request.
  **/
-static int __pci_enable_msix(struct msi_info *msi, struct msi_desc **desc)
+static int __pci_enable_msix(struct pci_dev *pdev, struct msi_info *msi,
+                             struct msi_desc **desc)
 {
-    struct pci_dev *pdev;
     struct msi_desc *old_desc;
 
     ASSERT(pcidevs_locked());
-    pdev = pci_get_pdev(NULL, msi->sbdf);
+
     if ( !pdev || !pdev->msix )
         return -ENODEV;
 
@@ -1151,15 +1151,16 @@ int pci_prepare_msix(u16 seg, u8 bus, u8 devfn, bool off)
  * Notice: only construct the msi_desc
  * no change to irq_desc here, and the interrupt is masked
  */
-int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc)
+int pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
+                   struct msi_desc **desc)
 {
     ASSERT(pcidevs_locked());
 
     if ( !use_msi )
         return -EPERM;
 
-    return msi->table_base ? __pci_enable_msix(msi, desc) :
-                             __pci_enable_msi(msi, desc);
+    return msi->table_base ? __pci_enable_msix(pdev, msi, desc) :
+                             __pci_enable_msi(pdev, msi, desc);
 }
 
 /*
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index c8a51ed66008..52f2fe754c66 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -452,10 +452,13 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
             if ( rc > 0 )
             {
                 struct msi_desc *msi_desc = NULL;
+                struct pci_dev *pdev;
 
                 pcidevs_lock();
 
-                rc = pci_enable_msi(&msi, &msi_desc);
+                pdev = pci_get_pdev(NULL, msi.sbdf);
+                rc = pdev ? pci_enable_msi(pdev, &msi, &msi_desc) : -ENODEV;
+
                 if ( !rc )
                 {
                     struct irq_desc *desc = irq_to_desc(msi.irq);

base-commit: 913a1774168f82565bbdc7d41a46013a40ba302d
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 21:47:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 21:47:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658317.1027428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4PT-0005Rj-Sz; Wed, 20 Dec 2023 21:47:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658317.1027428; Wed, 20 Dec 2023 21:47:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4PT-0005Rc-Q8; Wed, 20 Dec 2023 21:47:23 +0000
Received: by outflank-mailman (input) for mailman id 658317;
 Wed, 20 Dec 2023 21:47:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7nCC=H7=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rG4PS-00059K-P8
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 21:47:22 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20600.outbound.protection.outlook.com
 [2a01:111:f403:2409::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59b03c1e-9f81-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 22:47:21 +0100 (CET)
Received: from CH5P220CA0003.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::21)
 by MN2PR12MB4373.namprd12.prod.outlook.com (2603:10b6:208:261::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Wed, 20 Dec
 2023 21:47:16 +0000
Received: from SA2PEPF000015CA.namprd03.prod.outlook.com
 (2603:10b6:610:1ef:cafe::ba) by CH5P220CA0003.outlook.office365.com
 (2603:10b6:610:1ef::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18 via Frontend
 Transport; Wed, 20 Dec 2023 21:47:15 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015CA.mail.protection.outlook.com (10.167.241.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Wed, 20 Dec 2023 21:47:15 +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.34; Wed, 20 Dec
 2023 15:47:08 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 20 Dec
 2023 15:47:08 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Wed, 20 Dec 2023 15:47:01 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59b03c1e-9f81-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HnUrPzeffMuHjZHgeoAVbR9c5EVdbzlc6sxh2lfwIZ47RxYFFfkN1Y3D2cldn9Tq4sC5pNtreFseV1megZ9e2foH1CPe3LLbXUqnIzaXTZ10m+GOnaXjrhm4BjxafnD0l+Wy8rtnMukFiC6WM545E6oXp2oZQWTmiuMvSIdzzTX3cGixRlmnO6w3B7NnGJ3Q4GXrAcrKb0aNZFEcYU9Rlc72m9qizQM8OZWdU2+XrO8ogl2fJI92ncUWgRynt0AZfl6yr5MO84YapJcXH2ktpBUOmy08QGWZYLMWbw8i9FtFaW19R8thKZLIzq4guuk3o4EQvRoGc8tofXz8XQpKgg==
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=Yz7MawEjyV2a8Oykj6A1kAth1jXNG2SxWf2+03xYt3g=;
 b=cCOnRmMNnWIyn4iGnb7ov5oXksaE9v7tTe5Brz7eurd0uEC7yl1a2q06VkmmHY3ZqmNF1DMBjL0EeUKHbOLjnUNG19QE0+rlQf+ccnM4EnSdj16w6SMjUDQgLcPGJfAVWR8tCsTfgm4SBW0+Ug5dmJJVd5gEZy7e79HTBKGuN5knMYXdR1KP5nakd1kSamAqko+vc/51uYQuUl3RGO1KW0HBSRBp24Oc4zwonIT7lbMXo8VTccO2hawQyCwkBXyrX8wb5JJqFvrb7vt5RLtIxuZyIEZflHo9H+1GBJsEiF378VEhOLiA11XYuIqG8ehtELNDuit3CjNT8JdjkoARbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Yz7MawEjyV2a8Oykj6A1kAth1jXNG2SxWf2+03xYt3g=;
 b=ADP7PclVTYlnJSUF54+VdcPZS4NvpMD6wn7UxjsLYtQs+f3umfhpXkZs8BoaIsseO/Np1eZa7NgaqTSwq6lScgMvjhwWj4k7vKQaO3wmnhtW8yIH/liMdxvupZwzOLsNqpAvLY9LJ3f4w7zalB5/BWJNU1E7CfBOAVhkU8TfP1M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Volodymyr Babchuk <Volodymyr_Babchuk@epam.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>, Wei Liu <wl@xen.org>, Paul Durrant
	<paul@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Kevin Tian <kevin.tian@intel.com>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH v11.5 2/17] pci: introduce per-domain PCI rwlock
Date: Wed, 20 Dec 2023 16:46:53 -0500
Message-ID: <20231220214658.431526-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231202012556.2012281-3-volodymyr_babchuk@epam.com>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com> <20231202012556.2012281-3-volodymyr_babchuk@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CA:EE_|MN2PR12MB4373:EE_
X-MS-Office365-Filtering-Correlation-Id: 70d3d07e-4f21-4a0e-a5e9-08dc01a53b25
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	fF4pqa8beg1sRzac3+LfCMd8BkHZrAQkiwsk+DTambxXTsU1GqKNwuSIzUPk6RPj1cLf7Eyu0DhdYf6gjLMS960NSukbl0Be0/1x0n+KRJ4vPTe7MX5Du6XAIiAeKztaKHrDnZycOn22j1yebLkIF/OwLDYmOZLiby1i8ZBcd4ja84q38e4bXGjEnSeaEmuC8BWwBahbyYU5PvvfzOlbXz2c1PIzD1AebXbKTh8KDJsLAN3Gfr2ZtdUdlam7g4PS9t1M0XtlzIbRXB61LWkKbFT8Gk+NugXwkNOb9aEQfAVOX+lvZ+fGKCeVu742XxqbFQERjdogmqEXlfbmAOS08bROXQ7WgBxty1kR3m3cXSX+0/0dr7B50Wp1DARjEEz7MstGWBmoOD4xKqzg8P/g7ZvRJlzyHXkpWPZ3vSPIZcKkvHmgbf3S4j8o+7fI4SVHH6H2+buEpi6UVOyWIC1o+5ymF/rC6RS5cU5Fne1o9TPBKhp7FiOU5qik5+ctFWK8zm/14c2x8Ej7QZhbx9ZS+ZGzpXPmNQt+gPbKPUd/wjFqVS6hUfzKsJDzY72VZ74XzrUxmaHxNaI2ufN1lKjUDztwc3xBTv7cYREuF1IfKVcUXdak7tEPUEegZK3miKux0L0NXzjm4BQM4/lqGFjweDctjE5dQCIcVIOYMuSMwlCavtq9nO7GoIFnUtslxD+W2YB1Jh/5nzn1jtSmXo3hrohRUE6V2LA3u+RuXF6MiBSNIcG4sZ9u9soFv60QuL/HUxbPRzduyWM6yIeDi0OaDQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(346002)(396003)(39860400002)(376002)(136003)(230922051799003)(1800799012)(82310400011)(186009)(64100799003)(451199024)(40470700004)(46966006)(36840700001)(5660300002)(2906002)(7416002)(40460700003)(41300700001)(356005)(81166007)(336012)(36756003)(86362001)(26005)(426003)(82740400003)(2616005)(1076003)(47076005)(44832011)(36860700001)(83380400001)(478600001)(6666004)(8936002)(70206006)(54906003)(4326008)(6916009)(8676002)(70586007)(316002)(40480700001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 21:47:15.2697
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 70d3d07e-4f21-4a0e-a5e9-08dc01a53b25
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4373

From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>

Add per-domain d->pci_lock that protects access to
d->pdev_list. Purpose of this lock is to give guarantees to VPCI code
that underlying pdev will not disappear under feet. This is a rw-lock,
but this patch adds only write_lock()s. There will be read_lock()
users in the next patches.

This lock should be taken in write mode every time d->pdev_list is
altered. All write accesses also should be protected by pcidevs_lock()
as well. Idea is that any user that wants read access to the list or
to the devices stored in the list should use either this new
d->pci_lock or old pcidevs_lock(). Usage of any of this two locks will
ensure only that pdev of interest will not disappear from under feet
and that the pdev still will be assigned to the same domain. Of
course, any new users should use pcidevs_lock() when it is
appropriate (e.g. when accessing any other state that is protected by
the said lock). In case both the newly introduced per-domain rwlock
and the pcidevs lock is taken, the latter must be acquired first.

Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---

Changes in v11.5:
 - Add Stefano's A-b
 - Add Stewart's S-o-b
 - Add in-code comment about locking order in sched.h

Changes in v10:
 - pdev->domain is assigned after removing from source domain but
   before adding to target domain in reassign_device() functions.

Changes in v9:
 - returned back "pdev->domain = target;" in AMD IOMMU code
 - used "source" instead of pdev->domain in IOMMU functions
 - added comment about lock ordering in the commit message
 - reduced locked regions
 - minor changes non-functional changes in various places

Changes in v8:
 - New patch

Changes in v8 vs RFC:
 - Removed all read_locks after discussion with Roger in #xendevel
 - pci_release_devices() now returns the first error code
 - extended commit message
 - added missing lock in pci_remove_device()
 - extended locked region in pci_add_device() to protect list_del() calls
---
 xen/common/domain.c                         |  1 +
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  9 ++-
 xen/drivers/passthrough/pci.c               | 71 +++++++++++++++++----
 xen/drivers/passthrough/vtd/iommu.c         |  9 ++-
 xen/include/xen/sched.h                     | 22 +++++++
 5 files changed, 99 insertions(+), 13 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index c5954cdb1ac2..f6f557499660 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -651,6 +651,7 @@ struct domain *domain_create(domid_t domid,
 
 #ifdef CONFIG_HAS_PCI
     INIT_LIST_HEAD(&d->pdev_list);
+    rwlock_init(&d->pci_lock);
 #endif
 
     /* All error paths can depend on the above setup. */
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 6bc73dc21052..5cd208bbefee 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -481,8 +481,15 @@ static int cf_check reassign_device(
 
     if ( devfn == pdev->devfn && pdev->domain != target )
     {
-        list_move(&pdev->domain_list, &target->pdev_list);
+        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);
     }
 
     /*
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 28ed8ea8172a..1439d1ef2b26 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -453,7 +453,9 @@ static void __init _pci_hide_device(struct pci_dev *pdev)
     if ( pdev->domain )
         return;
     pdev->domain = dom_xen;
+    write_lock(&dom_xen->pci_lock);
     list_add(&pdev->domain_list, &dom_xen->pdev_list);
+    write_unlock(&dom_xen->pci_lock);
 }
 
 int __init pci_hide_device(unsigned int seg, unsigned int bus,
@@ -746,7 +748,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
     if ( !pdev->domain )
     {
         pdev->domain = hardware_domain;
+        write_lock(&hardware_domain->pci_lock);
         list_add(&pdev->domain_list, &hardware_domain->pdev_list);
+        write_unlock(&hardware_domain->pci_lock);
 
         /*
          * For devices not discovered by Xen during boot, add vPCI handlers
@@ -756,7 +760,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         if ( ret )
         {
             printk(XENLOG_ERR "Setup of vPCI failed: %d\n", ret);
+            write_lock(&hardware_domain->pci_lock);
             list_del(&pdev->domain_list);
+            write_unlock(&hardware_domain->pci_lock);
             pdev->domain = NULL;
             goto out;
         }
@@ -764,7 +770,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         if ( ret )
         {
             vpci_remove_device(pdev);
+            write_lock(&hardware_domain->pci_lock);
             list_del(&pdev->domain_list);
+            write_unlock(&hardware_domain->pci_lock);
             pdev->domain = NULL;
             goto out;
         }
@@ -814,7 +822,11 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
             pci_cleanup_msi(pdev);
             ret = iommu_remove_device(pdev);
             if ( pdev->domain )
+            {
+                write_lock(&pdev->domain->pci_lock);
                 list_del(&pdev->domain_list);
+                write_unlock(&pdev->domain->pci_lock);
+            }
             printk(XENLOG_DEBUG "PCI remove device %pp\n", &pdev->sbdf);
             free_pdev(pseg, pdev);
             break;
@@ -885,26 +897,61 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
 
 int pci_release_devices(struct domain *d)
 {
-    struct pci_dev *pdev, *tmp;
-    u8 bus, devfn;
-    int ret;
+    int combined_ret;
+    LIST_HEAD(failed_pdevs);
 
     pcidevs_lock();
-    ret = arch_pci_clean_pirqs(d);
-    if ( ret )
+
+    combined_ret = arch_pci_clean_pirqs(d);
+    if ( combined_ret )
     {
         pcidevs_unlock();
-        return ret;
+        return combined_ret;
     }
-    list_for_each_entry_safe ( pdev, tmp, &d->pdev_list, domain_list )
+
+    write_lock(&d->pci_lock);
+
+    while ( !list_empty(&d->pdev_list) )
     {
-        bus = pdev->bus;
-        devfn = pdev->devfn;
-        ret = deassign_device(d, pdev->seg, bus, devfn) ?: ret;
+        struct pci_dev *pdev = list_first_entry(&d->pdev_list,
+                                                struct pci_dev,
+                                                domain_list);
+        uint16_t seg = pdev->seg;
+        uint8_t bus = pdev->bus;
+        uint8_t devfn = pdev->devfn;
+        int ret;
+
+        write_unlock(&d->pci_lock);
+        ret = deassign_device(d, seg, bus, devfn);
+        write_lock(&d->pci_lock);
+        if ( ret )
+        {
+            const struct pci_dev *tmp;
+
+            /*
+             * We need to check if deassign_device() left our pdev in
+             * domain's list. As we dropped the lock, we can't be sure
+             * that list wasn't permutated in some random way, so we
+             * need to traverse the whole list.
+             */
+            for_each_pdev ( d, tmp )
+            {
+                if ( tmp == pdev )
+                {
+                    list_move_tail(&pdev->domain_list, &failed_pdevs);
+                    break;
+                }
+            }
+
+            combined_ret = combined_ret ?: ret;
+        }
     }
+
+    list_splice(&failed_pdevs, &d->pdev_list);
+    write_unlock(&d->pci_lock);
     pcidevs_unlock();
 
-    return ret;
+    return combined_ret;
 }
 
 #define PCI_CLASS_BRIDGE_HOST    0x0600
@@ -1124,7 +1171,9 @@ static int __hwdom_init cf_check _setup_hwdom_pci_devices(
             if ( !pdev->domain )
             {
                 pdev->domain = ctxt->d;
+                write_lock(&ctxt->d->pci_lock);
                 list_add(&pdev->domain_list, &ctxt->d->pdev_list);
+                write_unlock(&ctxt->d->pci_lock);
                 setup_one_hwdom_device(ctxt, pdev);
             }
             else if ( pdev->domain == dom_xen )
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index bc6181c9f911..99b642f12ef9 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2816,8 +2816,15 @@ static int cf_check reassign_device_ownership(
 
     if ( devfn == pdev->devfn && pdev->domain != target )
     {
-        list_move(&pdev->domain_list, &target->pdev_list);
+        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) )
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 3609ef88c4ff..9da91e0e6244 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -461,6 +461,28 @@ struct domain
 
 #ifdef CONFIG_HAS_PCI
     struct list_head pdev_list;
+    /*
+     * pci_lock protects access to pdev_list.
+     *
+     * Any user *reading* from pdev_list, or from devices stored in pdev_list,
+     * should hold either pcidevs_lock() or pci_lock in read mode. Optionally,
+     * both locks may be held for reads as long as the locking order is
+     * observed.
+     *
+     * Any user *writing* to pdev_list, or to devices stored in pdev_list,
+     * should hold both pcidevs_lock() and pci_lock in write mode, and observe
+     * the locking order.
+     *
+     * The locking order is:
+     * 1. pcidevs_lock()
+     * 2. d->pci_lock
+     *
+     * Additionally, users of both pci_lock and vpci->lock should observe the
+     * following locking order:
+     * 1. d->pci_lock
+     * 2. pdev->vpci->lock
+     */
+    rwlock_t pci_lock;
 #endif
 
 #ifdef CONFIG_HAS_PASSTHROUGH
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 21:47:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 21:47:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658318.1027438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4PX-0005j1-4t; Wed, 20 Dec 2023 21:47:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658318.1027438; Wed, 20 Dec 2023 21: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 1rG4PX-0005is-1t; Wed, 20 Dec 2023 21:47:27 +0000
Received: by outflank-mailman (input) for mailman id 658318;
 Wed, 20 Dec 2023 21:47: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=dQ/e=H7=citrix.com=prvs=7116826ff=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1rG4PV-00059K-Of
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 21:47:25 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a795307-9f81-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 22:47:23 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a795307-9f81-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1703108843;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=yk92W/mfN3XK5pyV+BunhluKT6FClpgUmPt9KQysWdw=;
  b=hWuGNTnWMlYQXzyT3WU42LS2orF1eULEqraebmWVgDKZXxhV/KBaAW5g
   BEAqcfKwIY5Y6yucJdm1iktSWFNRN7NwdpEw7hZpp+jlgychahEjwg/yC
   gtKMoXpUe4uRfo6L3CrkYBhw/sYQrgpv/lngLfCu7iy0CmFIV0kqu8AF6
   g=;
X-CSE-ConnectionGUID: X2YHk+T9TlSU1zBXUuZ2HQ==
X-CSE-MsgGUID: LrgrxHZbSSGwWsvlSFSLVQ==
Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 4.0
X-MesageID: 129369735
X-Ironport-Server: esa1.hc3370-68.iphmx.com
X-Remote-IP: 162.221.159.70
X-Policy: $RELAYED
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:GaN9g6JW/zyAgdOMFE+RupUlxSXFcZb7ZxGr2PjKsXjdYENS0DUHn
 TRMDGjSMvuKYTehfY8kbYripkpVsMSBzIVrSQFlqX01Q3x08seUXt7xwmUcnc+xBpaaEB84t
 ZV2hv3odp1coqr0/0/1WlTZhSAhk/nOHvylULKs1hlZHWdMUD0mhQ9oh9k3i4tphcnRKw6Ws
 Jb5rta31GWNglaYCUpKrfrfwP9TlK6q4mhB5AZmPasjUGL2zBH5MrpOfcldEFOgKmVkNrbSb
 /rOyri/4lTY838FYj9yuu+mGqGiaue60Tmm0hK6aYD76vRxjnVaPpIAHOgdcS9qZwChxLid/
 jnvWauYEm/FNoWU8AgUvoIx/ytWZcWq85efSZSzXFD6I+QrvBIAzt03ZHzaM7H09c5HW1Bu9
 r8keQwJVS3alciG/a+JEMlV05FLwMnDZOvzu1llxDDdS/0nXYrCU+PB4towMDUY354UW6yEP
 oxANGspM0yojx5nYz/7DLoXmuuyi2a5WDpfsF+P/oI84nTJzRw327/oWDbQUoXQFJ4LzxnD+
 woq+UzdGB4AJPytwwG+3W2TnfHLpg3AfLwrQejQGvlC3wTImz175ActfUu2p7y1h1CzX/pbK
 lcI4Ww+oK4q7kupQ9LhGRqirxasnDQRRt5RGO0S8xyWx+zf5APxLnMfUjdLZdgitck3bT8nz
 FmEm5XuHzMHmKKRYWKQ8PGTtzzaESoIKW4PYwcUQA1D5MPsyLzflTqWEIwlSvTsyISoSHevm
 1hmsRTSmZ0j1/8r1OaHrGzDuA/1tLL5cxMHvCXuCzfNAhxCWGK1W2C5wQGEta0YfdbFHwDpg
 ZQSpySJAAkz4XCxeM+lGrxl8EmBvartDdElqQcH82Md3zqs4WW/Wotb/StzIkxkWu5dJmeyO
 B6M5VwItc8JVJdPUUOQS9vhY/nGMIC6TYi1PhwqRosmjmdNmP+vo3g1OB/4M5HFm0kwi6AvU
 ap3gu71ZUv2/Z9PlWLsL89EiO9D+8zL7T+LLXwN50j9gOX2ib/8YettDWZimchgs//V/l6Kr
 IkBXyZIoj0GONDDjuDs2dZ7BTg3wbITXPgad+Q/mja/Hzdb
IronPort-HdrOrdr: A9a23:IOhBsqnXrGPeiES5GfQToRZJzNDpDfIg3DAbv31ZSRFFG/Fxl6
 iV8sjzsiWE7wr5OUtQ/exoV5PhfZqxz/JICOoqTNKftWvdyQiVxehZhOOIqVDd8kXFh4hgPM
 xbEpSWZueeMbEDt7eZ3DWF
X-Talos-CUID: 9a23:vnhp3m4C9VP6ouTm8dssxBQlOsNmTizhyEztel2SOVt0eue1cArF
X-Talos-MUID: =?us-ascii?q?9a23=3At4gRIwzS+1HnJncthipE+lX/4f2aqIC0B1odsac?=
 =?us-ascii?q?MgPKrKhNrJTOmog+TfLZyfw=3D=3D?=
X-IronPort-AV: E=Sophos;i="6.04,292,1695700800"; 
   d="scan'208";a="129369735"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	<George.Dunlap@eu.citrix.com>, Jan Beulich <JBeulich@suse.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, Julien Grall
	<julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] xen/xmalloc: XMEM_POOL_POISON improvements
Date: Wed, 20 Dec 2023 21:47:16 +0000
Message-ID: <20231220214716.2510402-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

When in use, the spew:

  (XEN) Assertion '!memchr_inv(b->ptr.buffer + MIN_BLOCK_SIZE, POISON_BYTE, (b->size & BLOCK_SIZE_MASK) - MIN_BLOCK_SIZE)' failed at common/xmalloc_tlsf.c:246

is unweidly and likely meaningless to non-Xen developers.  Therefore:

 * Switch to IS_ENABLED().  There's no need for full #ifdef-ary.
 * Pull memchr_inv() out into the if(), and provide an error message which
   clearly states that corruption has been found.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: George Dunlap <George.Dunlap@eu.citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

Observations from the debugging of:
  https://github.com/Dasharo/dasharo-issues/issues/488

v2:
 * Switch to printk()+BUG()
---
 xen/common/xmalloc_tlsf.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/xen/common/xmalloc_tlsf.c b/xen/common/xmalloc_tlsf.c
index 349b31cb4cc1..5e55fc463e7d 100644
--- a/xen/common/xmalloc_tlsf.c
+++ b/xen/common/xmalloc_tlsf.c
@@ -249,11 +249,14 @@ static inline void EXTRACT_BLOCK(struct bhdr *b, struct xmem_pool *p, int fl,
     }
     b->ptr.free_ptr = (struct free_ptr) {NULL, NULL};
 
-#ifdef CONFIG_XMEM_POOL_POISON
-    if ( (b->size & BLOCK_SIZE_MASK) > MIN_BLOCK_SIZE )
-        ASSERT(!memchr_inv(b->ptr.buffer + MIN_BLOCK_SIZE, POISON_BYTE,
-                           (b->size & BLOCK_SIZE_MASK) - MIN_BLOCK_SIZE));
-#endif /* CONFIG_XMEM_POOL_POISON */
+    if ( IS_ENABLED(CONFIG_XMEM_POOL_POISON) &&
+         (b->size & BLOCK_SIZE_MASK) > MIN_BLOCK_SIZE &&
+         memchr_inv(b->ptr.buffer + MIN_BLOCK_SIZE, POISON_BYTE,
+                    (b->size & BLOCK_SIZE_MASK) - MIN_BLOCK_SIZE) )
+    {
+        printk(XENLOG_ERR "XMEM Pool corruption found");
+        BUG();
+    }
 }
 
 /**
@@ -261,11 +264,10 @@ static inline void EXTRACT_BLOCK(struct bhdr *b, struct xmem_pool *p, int fl,
  */
 static inline void INSERT_BLOCK(struct bhdr *b, struct xmem_pool *p, int fl, int sl)
 {
-#ifdef CONFIG_XMEM_POOL_POISON
-    if ( (b->size & BLOCK_SIZE_MASK) > MIN_BLOCK_SIZE )
+    if ( IS_ENABLED(CONFIG_XMEM_POOL_POISON) &&
+         (b->size & BLOCK_SIZE_MASK) > MIN_BLOCK_SIZE )
         memset(b->ptr.buffer + MIN_BLOCK_SIZE, POISON_BYTE,
                (b->size & BLOCK_SIZE_MASK) - MIN_BLOCK_SIZE);
-#endif /* CONFIG_XMEM_POOL_POISON */
 
     b->ptr.free_ptr = (struct free_ptr) {NULL, p->matrix[fl][sl]};
     if ( p->matrix[fl][sl] )
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Wed Dec 20 21:48:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 21:48:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658330.1027448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4Q8-0006km-FP; Wed, 20 Dec 2023 21:48:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658330.1027448; Wed, 20 Dec 2023 21:48: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 1rG4Q8-0006kf-By; Wed, 20 Dec 2023 21:48:04 +0000
Received: by outflank-mailman (input) for mailman id 658330;
 Wed, 20 Dec 2023 21:48: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 1rG4Q6-0006kG-Oa
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 21:48: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 1rG4Q5-0007PY-In; Wed, 20 Dec 2023 21:48:01 +0000
Received: from 82-132-213-104.dab.02.net ([82.132.213.104] helo=[172.20.10.6])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rG4Q4-0003Gb-Ua; Wed, 20 Dec 2023 21:48:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=bXpSqgBRE9o3Kp/I841pnPLSZj9VGWv9uapo6baNv8c=; b=4RjyOlD/7xY6VtLAhkDgV1S5cy
	oPsI8PLYxPUe/xffJblRIJ94cxXoJ8vmKWGSAR+J3q4rOdWtAu4lH2U1qy0Bdlew+EU3gpbOlQDRF
	qbITTPQX8PSuRlrm0GMnypPKFydTau89EFLgzkfRBNViGhP5h6HrsM2vDRir7jVZF38c=;
Message-ID: <2c070584-c44c-4371-9344-9e0497657f1c@xen.org>
Date: Wed, 20 Dec 2023 21:47:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/bug: Complete outstanding TODO
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 George Dunlap <George.Dunlap@citrix.com>, Jan Beulich <JBeulich@suse.com>,
 Wei Liu <wl@xen.org>, Federico Serafini <federico.serafini@bugseng.com>
References: <20231215181433.1588532-1-andrew.cooper3@citrix.com>
 <20231215181433.1588532-3-andrew.cooper3@citrix.com>
 <139031ab-522c-41d7-b9d7-e9b7d3656555@xen.org>
 <alpine.DEB.2.22.394.2312201053180.685950@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2312201053180.685950@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Stefano,

On 20/12/2023 18:58, Stefano Stabellini wrote:
> On Fri, 15 Dec 2023, Julien Grall wrote:
>> Hi Andrew,
>>
>> On 15/12/2023 18:14, Andrew Cooper wrote:
>>> Since this TODO was written, BUILD_BUG_ON() has been moved out of xen/lib.h
>>> into xen/macros.h, which has done all the hard work.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: George Dunlap <George.Dunlap@citrix.com>
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>> CC: Wei Liu <wl@xen.org>
>>> CC: Julien Grall <julien@xen.org>
>>> CC: Federico Serafini <federico.serafini@bugseng.com>
>>> ---
>>>    xen/include/xen/bug.h | 16 +++++++---------
>>>    1 file changed, 7 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h
>>> index cb5138410ea7..8cca4486a477 100644
>>> --- a/xen/include/xen/bug.h
>>> +++ b/xen/include/xen/bug.h
>>> @@ -20,7 +20,8 @@
>>>    #define BUG_DEBUGGER_TRAP_FATAL(regs) 0
>>>    #endif
>>>    -#include <xen/lib.h>
>>> +#include <xen/macros.h>
>>> +#include <xen/types.h>
>>>      #ifndef BUG_FRAME_STRUCT
>>>    @@ -104,14 +105,11 @@ typedef void bug_fn_t(const struct cpu_user_regs
>>> *regs);
>>>      #ifndef run_in_exception_handler
>>>    -/*
>>> - * TODO: untangle header dependences, break BUILD_BUG_ON() out of
>>> xen/lib.h,
>>> - * and use a real static inline here to get proper type checking of fn().
>>> - */
>>> -#define run_in_exception_handler(fn) do {                   \
>>> -    (void)((fn) == (void (*)(struct cpu_user_regs *))NULL); \
>>> -    BUG_FRAME(BUGFRAME_run_fn, 0, fn, 0, NULL);             \
>>> -} while ( false )
>>> +static void always_inline run_in_exception_handler(
>>> +    void (*fn)(struct cpu_user_regs *regs))
>>
>> Based on the other threads, shouldn't this be using bug_fn_t?
> 
> Unfortunately it doesn't compile:
> 
> common/bug.c: In function â€˜do_bug_frameâ€™:
> common/bug.c:72:38: error: passing argument 1 of â€˜run_in_exception_handlerâ€™ from incompatible pointer type [-Werror=incompatible-pointer-types]
>     72 |             run_in_exception_handler(fn);
>        |                                      ^~
>        |                                      |
>        |                                      void (*)(struct cpu_user_regs *)
> 
> due to the missing const in common/bug.c:72.
> 
> 
> Not to make things more complicated in this patch, I think we should
> take the patch as is as a simple cleanup (and do further cleanups in the
> future):

I was sort of expecting an error and I should have proposed a solution, 
sorry. I don't think we need to go all the way of adding 'const' to all 
the callbacks.

Instead, we can remove the const in the bug_fn_t (I realize this is a 
pre-existing bug for Arm). I understand this is not the way we want to 
go in the longer term, but this would be accurate with the current code 
base.

Today we have a weird situation:

    -> run_in_exception_handler() is called with non-const regs.
    -> On arm, the callback is cast to a const regs
    -> The callback will use a non-const regs

This most likely violate MISRA (I think rule 11.8) in a very subtle way. 
And none of the analyzer would be able to catch it because how we build 
the BUG frame.

So I think for this patch we should drop the const in bug_fn_t for 
consistency. We can then update all the callback to const in a future work.

I would be ok to send a separate patch to update bug_fn_t if this is 
preferred.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 21:51:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 21:51:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658340.1027458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4TY-0000c7-2i; Wed, 20 Dec 2023 21:51:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658340.1027458; Wed, 20 Dec 2023 21: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 1rG4TX-0000b6-VA; Wed, 20 Dec 2023 21:51:35 +0000
Received: by outflank-mailman (input) for mailman id 658340;
 Wed, 20 Dec 2023 21:51: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 1rG4TW-0000aw-SE
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 21:51: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 1rG4TW-0007Uk-C8; Wed, 20 Dec 2023 21:51:34 +0000
Received: from 82-132-213-104.dab.02.net ([82.132.213.104] helo=[172.20.10.6])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rG4TW-0003Mq-4g; Wed, 20 Dec 2023 21: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=eu/nqB68o8w+B15F+MrepASwvGr9ZMO0Y4hexlAgBIM=; b=635FwM7lWH2a+d4CwFoO2oooAm
	WC77l2QbeNZ0FrUaXhCXJ0f8rpZ0UivLLjjIiEzrzDW0lCh3zanmEetwHJnOfQt8zGJSEXb5PIjMr
	84zeavJITOudNjWq+xBjQw11batUW+UOsWqS6zB8Nfio+arHjKGKOQjZ4/HrLgyxSXQE=;
Message-ID: <38dfe5ac-790e-4479-b7a8-ab3d5d0d0db2@xen.org>
Date: Wed, 20 Dec 2023 21:51:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/xmalloc: XMEM_POOL_POISON improvements
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: George Dunlap <George.Dunlap@eu.citrix.com>,
 Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20231220214716.2510402-1-andrew.cooper3@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20231220214716.2510402-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Andrew,

On 20/12/2023 21:47, Andrew Cooper wrote:
> When in use, the spew:
> 
>    (XEN) Assertion '!memchr_inv(b->ptr.buffer + MIN_BLOCK_SIZE, POISON_BYTE, (b->size & BLOCK_SIZE_MASK) - MIN_BLOCK_SIZE)' failed at common/xmalloc_tlsf.c:246
> 
> is unweidly and likely meaningless to non-Xen developers.  Therefore:
> 
>   * Switch to IS_ENABLED().  There's no need for full #ifdef-ary.
>   * Pull memchr_inv() out into the if(), and provide an error message which
>     clearly states that corruption has been found.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

With one remark:

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

> ---
> CC: George Dunlap <George.Dunlap@eu.citrix.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Wei Liu <wl@xen.org>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Observations from the debugging of:
>    https://github.com/Dasharo/dasharo-issues/issues/488
> 
> v2:
>   * Switch to printk()+BUG()

I would suggest to add a sentence about the switch to printk() + BUG() 
in the commit message. Maybe:

"CONFIG_XMEM_POOL_POISON can be enabled even on production build. So we 
should switch from ASSERT() to BUG()."

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 22:08:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 22:08:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658350.1027468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4k2-0003GL-FF; Wed, 20 Dec 2023 22:08:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658350.1027468; Wed, 20 Dec 2023 22:08:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4k2-0003GE-A6; Wed, 20 Dec 2023 22:08:38 +0000
Received: by outflank-mailman (input) for mailman id 658350;
 Wed, 20 Dec 2023 22:08:37 +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 1rG4k1-0003G6-97
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 22:08:37 +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 1rG4k0-0007nH-2D; Wed, 20 Dec 2023 22:08:36 +0000
Received: from 82-132-213-104.dab.02.net ([82.132.213.104] helo=[172.20.10.6])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rG4jz-0004Kv-R6; Wed, 20 Dec 2023 22:08:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=+TT22nLsYKA5GE1YH1+srnTUVX22F3UtqLR3fbgQleM=; b=Wx5t0GE+WGIYM/HC2DZ2etUKm1
	JMT1scXzNkfNLglQb03y4JxpxNnguwNheJotcP0rQTmN9iDsEHHhzLZSjP8YSLGyRNCjehs8vz/jO
	y/9O3nomyDNGUJDCHf60TWfvKgqmE+Qg21dwdBaCNttfTWkUNbpIaJryPLzpWmTX3Rso=;
Message-ID: <7a228bc8-7c2f-46fa-9ee6-5266f65e767b@xen.org>
Date: Wed, 20 Dec 2023 22:08:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common
Content-Language: en-GB
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com>
 <3546ec55-3e0c-4fdc-9697-0105d20bacfd@suse.com>
 <5fc9ad7a-1281-46da-abff-0aa2d2beca14@xen.org>
 <69c5afde-3a24-4792-b4e5-3ce17cb1602d@suse.com>
 <cb2f543b-ef29-4174-8437-dc875c27daab@raptorengineering.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <cb2f543b-ef29-4174-8437-dc875c27daab@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 20/12/2023 20:58, Shawn Anastasio wrote:
> On 12/20/23 2:09 AM, Jan Beulich wrote:
>> On 19.12.2023 19:29, Julien Grall wrote:
>>> On 19/12/2023 17:03, Jan Beulich wrote:
>>>> On 15.12.2023 03:43, Shawn Anastasio wrote:
>>>>> --- a/xen/arch/arm/bootfdt.c
>>>>> +++ b/xen/common/device-tree/bootfdt.c
>>>>> @@ -431,12 +431,15 @@ static int __init early_scan_node(const void *fdt,
>>>>>    {
>>>>>        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") )
>>>>> +    if ( device_tree_node_matches(fdt, node, "memory") )
>>>>> +#if defined(CONFIG_ARM_EFI)
>>>>> +        /*
>>>>> +         * If Xen has been booted via UEFI, the memory banks are
>>>>> +         * populated. So we should skip the parsing.
>>>>> +         */
>>>>> +        if ( efi_enabled(EFI_BOOT) )
>>>>> +            return rc;
>>>>> +#endif
>>>>
>>>> I'm not a DT maintainer, but I don't like this kind of #ifdef, the more
>>>> that maybe PPC and quite likely RISC-V are likely to also want to support
>>>> EFI boot. But of course there may be something inherently Arm-specific
>>>> here that I'm unaware of.
>>>
>>> Right now, I can't think how this is Arm specific. If you are using
>>> UEFI, then you are expected to use the UEFI memory map rather than the
>>> content of the device-tree.
>>>
>>> However, we don't have a CONFIG_EFI option. It would be nice to
>>> introduce one but I am not sure I would introduce it just for this #ifdef.
>>
>> Right, hence why I also wasn't suggesting to go that route right away.
>> efi/common-stub.c already has a stub for efi_enabled(). Using that file
>> may be too involved to arrange for in PPC, but supplying such a stub
>> elsewhere for the time being looks like it wouldn't too much effort
>> (and would eliminate the need for any #ifdef here afaict). Shawn?
>>
> 
> To clarify, you're suggesting we add an efi_enabled stub somewhere in
> arch/ppc? I'm not against that, though it does seem a little silly to
> have to define EFI-specific functions on an architecture that will never
> support EFI.

(This is not an argument for adding efi_enabled in arch/ppc)

I am curious to know why you think that. This is just software and 
therefore doesn't seem to be technically impossible. I mean who 
originally thought that ACPI would come to Arm? :) And yet we now have 
HWs (mainly servers) which provides only ACPI + UEFI.

And before, I got asked where is the support in Xen. Yes, the work is 
still on-going :).

Anyway, back to the original ask, one option would be to introduce 
efi_enabled stub in an common header. Maybe xen/efi.h?

But I would also be ok with the existing #ifdef for now.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 22:11:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 22:11:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658353.1027477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4mJ-00054e-PE; Wed, 20 Dec 2023 22:10:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658353.1027477; Wed, 20 Dec 2023 22:10: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 1rG4mJ-00054X-MP; Wed, 20 Dec 2023 22:10:59 +0000
Received: by outflank-mailman (input) for mailman id 658353;
 Wed, 20 Dec 2023 22:10:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BBWR=H7=raptorengineering.com=tpearson@srs-se1.protection.inumbo.net>)
 id 1rG4mI-00054L-5o
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 22:10:58 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a4834d65-9f84-11ee-9b0f-b553b5be7939;
 Wed, 20 Dec 2023 23:10:54 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 5E9068284FC9;
 Wed, 20 Dec 2023 16:10:53 -0600 (CST)
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 kqAlj1ybYgWe; Wed, 20 Dec 2023 16:10:51 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 5E4CF82856F0;
 Wed, 20 Dec 2023 16:10:51 -0600 (CST)
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 hQRdtyCgcE8s; Wed, 20 Dec 2023 16:10:51 -0600 (CST)
Received: from vali.starlink.edu (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 35E718284FC9;
 Wed, 20 Dec 2023 16:10:51 -0600 (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: a4834d65-9f84-11ee-9b0f-b553b5be7939
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 5E4CF82856F0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1703110251; bh=3dboC0tFlDmqZ387pwzKoAof96oNfvisCWonISzlbQ0=;
	h=Date:From:To:Message-ID:MIME-Version;
	b=vPvuWzBirRih68dV2RFORW0Jp2PSQ0l7KlsGCvlEzUVfRc2RBrLOwCaTT6j0Q4XEY
	 I3kCIY2APvSAzwlNYyPGKh+98zDpomKZy3kjOiSEtvFaF+/0ZcHE2oKcDYQfYOt0KI
	 fsvUcQGCD6rTp3jNU5vdOfrZRWxufE/WVGsBqv7g=
X-Virus-Scanned: amavisd-new at rptsys.com
Date: Wed, 20 Dec 2023 16:10:51 -0600 (CST)
From: Timothy Pearson <tpearson@raptorengineering.com>
To: Julien Grall <julien@xen.org>
Cc: Shawn Anastasio <sanastasio@raptorengineering.com>, 
	Jan Beulich <jbeulich@suse.com>, 
	Timothy Pearson <tpearson@raptorengineering.com>, 
	xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <154177700.148441.1703110251040.JavaMail.zimbra@raptorengineeringinc.com>
In-Reply-To: <7a228bc8-7c2f-46fa-9ee6-5266f65e767b@xen.org>
References: <cover.1702607884.git.sanastasio@raptorengineering.com> <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com> <3546ec55-3e0c-4fdc-9697-0105d20bacfd@suse.com> <5fc9ad7a-1281-46da-abff-0aa2d2beca14@xen.org> <69c5afde-3a24-4792-b4e5-3ce17cb1602d@suse.com> <cb2f543b-ef29-4174-8437-dc875c27daab@raptorengineering.com> <7a228bc8-7c2f-46fa-9ee6-5266f65e767b@xen.org>
Subject: Re: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Mailer: Zimbra 8.5.0_GA_3042 (ZimbraWebClient - GC120 (Linux)/8.5.0_GA_3042)
Thread-Topic: xen/common: Move Arm's bootfdt to common
Thread-Index: BUVobMRhmpwqCQGoml0nMQvJh7/n0w==



----- Original Message -----
> From: "Julien Grall" <julien@xen.org>
> To: "Shawn Anastasio" <sanastasio@raptorengineering.com>, "Jan Beulich" <jbeulich@suse.com>
> Cc: "Timothy Pearson" <tpearson@raptorengineering.com>, "xen-devel" <xen-devel@lists.xenproject.org>
> Sent: Wednesday, December 20, 2023 4:08:30 PM
> Subject: Re: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common

> Hi,
> 
> On 20/12/2023 20:58, Shawn Anastasio wrote:
>> On 12/20/23 2:09 AM, Jan Beulich wrote:
>>> On 19.12.2023 19:29, Julien Grall wrote:
>>>> On 19/12/2023 17:03, Jan Beulich wrote:
>>>>> On 15.12.2023 03:43, Shawn Anastasio wrote:
>>>>>> --- a/xen/arch/arm/bootfdt.c
>>>>>> +++ b/xen/common/device-tree/bootfdt.c
>>>>>> @@ -431,12 +431,15 @@ static int __init early_scan_node(const void *fdt,
>>>>>>    {
>>>>>>        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") )
>>>>>> +    if ( device_tree_node_matches(fdt, node, "memory") )
>>>>>> +#if defined(CONFIG_ARM_EFI)
>>>>>> +        /*
>>>>>> +         * If Xen has been booted via UEFI, the memory banks are
>>>>>> +         * populated. So we should skip the parsing.
>>>>>> +         */
>>>>>> +        if ( efi_enabled(EFI_BOOT) )
>>>>>> +            return rc;
>>>>>> +#endif
>>>>>
>>>>> I'm not a DT maintainer, but I don't like this kind of #ifdef, the more
>>>>> that maybe PPC and quite likely RISC-V are likely to also want to support
>>>>> EFI boot. But of course there may be something inherently Arm-specific
>>>>> here that I'm unaware of.
>>>>
>>>> Right now, I can't think how this is Arm specific. If you are using
>>>> UEFI, then you are expected to use the UEFI memory map rather than the
>>>> content of the device-tree.
>>>>
>>>> However, we don't have a CONFIG_EFI option. It would be nice to
>>>> introduce one but I am not sure I would introduce it just for this #ifdef.
>>>
>>> Right, hence why I also wasn't suggesting to go that route right away.
>>> efi/common-stub.c already has a stub for efi_enabled(). Using that file
>>> may be too involved to arrange for in PPC, but supplying such a stub
>>> elsewhere for the time being looks like it wouldn't too much effort
>>> (and would eliminate the need for any #ifdef here afaict). Shawn?
>>>
>> 
>> To clarify, you're suggesting we add an efi_enabled stub somewhere in
>> arch/ppc? I'm not against that, though it does seem a little silly to
>> have to define EFI-specific functions on an architecture that will never
>> support EFI.
> 
> (This is not an argument for adding efi_enabled in arch/ppc)
> 
> I am curious to know why you think that. This is just software and
> therefore doesn't seem to be technically impossible. I mean who
> originally thought that ACPI would come to Arm? :) And yet we now have
> HWs (mainly servers) which provides only ACPI + UEFI.

It's not a technical restriction, it's an architecture specifiction and compatibility (standardization) restriction.  POWER has its own interfaces (OPAL etc.) that provide the functionality ACPI provides on x86/ARM, and fragmenting the ecosystem across two interface standards is not something that any of the key stakeholders are currently willing to do.

Just some background, I have no comment on the actual technical implementation in the patch. :)

Thanks!


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 22:13:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 22:13:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658357.1027488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG4oj-0005z2-6K; Wed, 20 Dec 2023 22:13:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658357.1027488; Wed, 20 Dec 2023 22:13: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 1rG4oj-0005yv-3K; Wed, 20 Dec 2023 22:13:29 +0000
Received: by outflank-mailman (input) for mailman id 658357;
 Wed, 20 Dec 2023 22:13: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=x1++=H7=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rG4oh-0005yp-N8
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 22:13:28 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe9bd6f1-9f84-11ee-98eb-6d05b1d4d9a1;
 Wed, 20 Dec 2023 23:13:25 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a2335397e64so15121266b.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 14:13:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe9bd6f1-9f84-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703110404; x=1703715204; 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=u1cmjSims7ukcf95xOKI4C2dpiBpFUlvQK1qY4BeDSI=;
        b=lUgA/+FNeMdRNrfRDjMKsQbbXwZ5UIRK1nf5S40yqjdIHSBOdt3YeUqoih2w+WYzeT
         o58kLHj9Qd5FrikNp4DAyIL2p9vFSczgAZIZyzkAG97rweUGQhmuXYoGrBbpZSI23ILx
         Ve95ocmdrY4cOF9tmYcom65tsaqmHzvuleXLoaVKk+Ng5Th1cSoW5qZDQzijLr70yk/S
         AF0n9i8Pax/n3Lpi9dIee5UmP3+ohJmq6kFPgCc4Oc3RFwFUcotDwMmIxUXGz3dz4nyI
         etAgOWKwAjtq9TqK0LOe0DigDWFpwhGwwBzM+niCX1Fj0LOrNZNkP3Zx9sI0/Cyzd9TL
         8rXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703110404; x=1703715204;
        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=u1cmjSims7ukcf95xOKI4C2dpiBpFUlvQK1qY4BeDSI=;
        b=jrN5HR43+2UV4VMd18dWISOp26q8Czgh09C1HYp9OsBbkg/sF5GjUOGYbjIyMPA5z8
         cdUB9andcvJjwri/OKzPmE69Daq+Oz44Z8Z4N+xE01dUTklNEPjhRT0dsyE2jfbmMYTl
         jdJYb0m7S1HWwJfG4YgXmEoQY0z9dAhgBgyZMizB2cWbBpmzY6nRDqVd3SQh6q4NAfmP
         fB+dqpW7pSAJ7RMscG5T78XtugAndjPWqGbA5J51UKuZFy7W4x1wZ8Za5d+ddRmkCIne
         52Q79GXk4CK/yyEHe4wyLqSKbQ6E00AVXwz+0nw3ORErQCixmwfG8mgf/Mz1Wek0DYzm
         Hc0g==
X-Gm-Message-State: AOJu0YxKEDKY0aixVpiB5eM2vwMK9aCsl+1+RXeTbhfhi93DEIhnBSEd
	H+SNiqQwfnPsslTZVikaSGCVDZdEDssM1NDK0kw=
X-Google-Smtp-Source: AGHT+IGQAkTjxT1xL9Th3aKUy/ADWmwI/SjYlx55sjKYD4xCvSGfQk3IqP+XiQjFXqp6bSPi4aYosey+ZNQ5P21ie64=
X-Received: by 2002:a17:906:5502:b0:a23:3fa2:6a77 with SMTP id
 r2-20020a170906550200b00a233fa26a77mr2955216ejp.114.1703110404063; Wed, 20
 Dec 2023 14:13:24 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us> <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us> <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com> <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
From: Mario Marietto <marietto2008@gmail.com>
Date: Wed, 20 Dec 2023 23:12:46 +0100
Message-ID: <CA+1FSihNaWWaXhXvW2UqphbgofFOjC-uOBySpuyFXXA47awt0g@mail.gmail.com>
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM Chromebook
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stanislav Silnicki <stanislav.silnicki@mailgate.us>, freebsd-arm@freebsd.org, 
	Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
Content-Type: multipart/alternative; boundary="000000000000a5c902060cf84aa5"

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

Hello.

maybe I'm using the wrong u-boot.bin file. Maybe I found the correct
bootloader. It is not the u-boot.bin file,but maybe I can use it
anyway,maybe I can convert it to u-boot.bin. Anyway,I'm reading the
procedure used here :

https://wiki.freebsd.org/arm/Chromebook

this is the interesting part :

Populating the U-Boot Partition

# fetch http://commondatastorage.googleapis.com/chromeos-localmirror/distfi=
les/nv_uboot-snow-simplefb.kpart.bz2#
bunzip2 nv_uboot-snow-simplefb.kpart.bz2# dd
if=3Dnv_uboot-snow-simplefb.kpart of=3D/dev/da0p1 bs=3D1m


It seems that the file nv_uboot-snow-simplefb.kpart is able to boot
FreeBSD. I tried to follow the tutorial,so I have dd'ed it
on the first partition of my sd card :

# dd if=3Dnv_uboot-snow-simplefb.kpart of=3D/dev/sdf1 bs=3D1m

and then I tried to mount it because I hoped to find the u-boot.bin
file inside the partition,but I haven't been able to mount it:

$ sudo mount /dev/sdf1 /mnt/sdf1
mount: /mnt/sdf1: wrong fs type, bad option, bad superblock on
/dev/sdf1, missing codepage or helper program, or other error.
dmesg(1) may have more information after a failed mount system call.

Is there a way to convert that kpart file into an u-boot.bin file ? I
see that the source code to generate it is not there.

Infact this website does not work :
http://linux-exynos.org/dist/chromebook/nv_uboot/



On Tue, Dec 19, 2023 at 8:33=E2=80=AFPM Stefano Stabellini <sstabellini@ker=
nel.org>
wrote:

> +Michal
>
> Hi Mario,
>
> I am not sure about booting FreeBSD, but I am certain that u-boot works
> fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config
> file:
>
> name=3D"test"
> kernel=3D"u-boot.bin"
> extra =3D "console=3Dhvc0"
> memory=3D256
> vcpus=3D1
> disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>
> I don't know for sure if you can boot FreeBSD but you should definitely
> be able to see the u-boot command line prompt. The fact that you are
> getting this message:
>
> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found:
> Invalid kernel
>
> Means that something is not right in the u-boot configuration or u-boot
> build. Michal and Artem (CCed) might know more. From what I recall,
> there was nothing special required to get u-boot.bin to boot as domU
> kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.
>
> Cheers,
>
> Stefano
>
>
> On Tue, 19 Dec 2023, Mario Marietto wrote:
> > ....I see that some other interesting files have been produced by u-boo=
t
> when I have compiled it :
> >
> > u-boot
> > u-boot.lds
> > u-boot.bin
> > u-boot.map
> > u-boot-nodtb.bin
> > u-boot.dtb
> > u-boot.srec
> > u-boot-dtb.bin
> > u-boot.sym
> >
> > So,maybe I should use a different u-boot* file for booting FreeBSD ?
> >
> >
> > On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto <marietto2008@gm=
ail.com>
> wrote:
> >       Hello to everyone.
> >
> > I have compiled the needed u-boot.bin from scratch using this procedure=
 :
> >
> > # git clone https://github.com/u-boot/u-boot.git
> > # cd u-boot
> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig :=
 this
> line generates the file .config
> > # nano .config and I've added these parameters :
> >
> > CONFIG_ARMV7_NONSEC=3Dn
> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
> >
> > the uboot-bin file is generated with this command :
> >
> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make
> >
> > At this point,I took a look inside the .config file and I saw that the
> parameter "CONFIG_ARMV7_NONSEC=3Dn" has been removed. So,for
> > some reason,it is not accepted and this could be a problem....
> >
> > These are the xen config files that I've used :
> >
> > nano freebsd.cfg
> >
> > name=3D"test"
> > kernel=3D"u-boot.bin"
> > extra =3D "console=3Dhvc0"
> > memory=3D256
> > vcpus=3D1
> > disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
> >
> > nano start-freebsd
> >
> > xl create freebsd.cfg
> > xl console freebsd
> >
> > This is what happens when I launch the vm :
> >
> > # ./start-freebsd
> >
> > Parsing config from freebsd.cfg
> > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader
> found: Invalid kernel
> > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fail=
ed
> > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
> 1:cannot (re-)build domain: -3
> > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
> 1:Non-existent domain
> > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
> 1:Unable to destroy guest
> > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
> 1:Destruction of domain failed
> > freebsd is an invalid domain identifier (rc=3D-6)
> >
> >
> > On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto <marietto2008@g=
mail.com>
> wrote:
> >       So,ok,I should have said "the second u-boot" ; since the first
> u-boot binary is the "u-boot binary located in the RO
> >       memory" of the Chromebook". Sorry for the confusion.
> >
> > On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto <marietto2008@g=
mail.com>
> wrote:
> >       ---> There are no specific options in u-boot devoted to FreeBSD
> >
> > This is an important factor. So,what about if,instead of compiling a ne=
w
> version of u-boot on the partition 2,I will
> > recompile the u-boot customized version created by the virtual open
> system in 2014,that should be installed on the first
> > partition ? It could work if there are no differences between the u-boo=
t
> that should boot Linux and the u-boot that
> > should boot FreeBSD.
> >
> > Can you give a look at the u-boot source code created by virtual open
> systems ? You can find it on my google drive :
> >
> >
> https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?us=
p=3Dsharing
> >
> > I need to understand if I can recompile it without problem so that it
> can satisfy my needs (the ability of the file
> > u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano
> Stabellini,the xen developer that suggested to me
> > what I could do to have FreeBSD virtualized under Xen on my Arm
> Chromebook) ; otherwise the risk is to find later
> > problems that will make me troubles and that I will not able to fix.
> >
> > I gave a look at the virtual open system u-boot and I didn't see any
> arndale_defconfig inside. So,If I have understood
> > correctly,I should put that file inside the root of the u-boot source
> code,let's say here :
> >
> > marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls
> >
> > .checkpatch.conf        README                  doc
>                     net
> > .git                    api                     drivers
>                 onenand_ipl
> > .gitignore              arch                    dts
>                     post
> > COPYING                 board                   examples
> rules.mk
> > CREDITS                 boards.cfg              fs
>                      scripts
> > MAINTAINERS             common                  include
>                 snapshot.commit
> > MAKEALL                 config.mk               lib
>                     spl
> > Makefile                cros                    mkconfig
>                test
> > PRESUBMIT.cfg           disk                    nand_spl
>                tools
> >
> > and I should do : make and make install ? and the file I need,u-boot.bi=
n
> will be generated ?
> >
> > I didn't find any pre made configuration file inside :
> >
> > u-boot-vos # find . -type f -name "exynos*"
> >
> > ./include/exynos-fb.h
> > ./include/configs/exynos5-common.h
> > ./doc/device-tree-bindings/spi/exynos-spi.txt
> > ./doc/device-tree-bindings/usb/exynos-usb.txt
> > ./drivers/power/exynos-tmu.c
> > ./drivers/power/exynos-cpufreq.c
> > ./drivers/video/exynos-fb.c
> > ./drivers/spi/exynos_spi.c
> > ./board/samsung/dts/exynos5250-spring.dts
> > ./board/samsung/dts/exynos5250-smdk5250.dts
> > ./board/samsung/dts/exynos5250-snow.dts
> > ./board/samsung/dts/exynos5250-daisy.dts
> > ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h
> > ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h
> > ./arch/arm/dts/exynos5250.dtsi
> > ./arch/arm/dts/exynos-periph-id.dtsi
> > ./arch/arm/cpu/armv7/exynos5/exynos_cache.c
> >
> > u-boot-vos # find . -type f -name "arndale*"
> >
> > For sure I can't use a newer version of u-boot because otherwise the
> patches needed to bypass the bootloader protections
> > of the Arm Chromebook (such as a lot of different patches needed to boo=
t
> correctly Linux) will be broken ; anyway,since
> > it works,I don't need to use an updated version of u-boot.
> >
> > ----> As per my experience, you have to respect these two options,
> compiling u-boot for
> > FreeBSD:
> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-master=
/files/FreeBSD_Fragment
> >
> > It says that I should use these parameters :
> >
> > CONFIG_ARMV7_NONSEC=3Dn
> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
> >
> > These are the parameters used to configure a Linux kernel. I don't
> understand what's the relation between the compilation
> > of a linux kernel and u-boot. In the past I tried to recompile
> u-boot,but I didn't have the need to set up those
> > parameters,so I don't know how to do it (but I know how to recompile a
> Linux kernel).
> >
> > ---> I'm not sure that I'm getting you right, as I don't understand wha=
t
> you mean under "the first u-boot".
> >
> >
> > I'm talking about first u-boot because the whole procedure to boot Linu=
x
> on the ARM Chromebook,that's explained here :
> >
> > http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook=
/
> >
> >
> > at some point they say :
> >
> >
> > To be able to run KVM on ARM platforms, the kernel has to be booted in
> hypervisor mode. Because of this relatively recent
> > requirement (due to the introduction of the virtualization extensions),
> up until now all booting methods would boot the
> > kernel in the standard Supervisor mode.
> >
> > For the ARM Chromebook the default boot procedure doesn't allow us to
> boot in hypervisor mode. Although the laptop's boot
> > mechanism is based on the frequently used u-boot, the binary is located
> in RO memory. Fortunately, a chained u-boot
> > mechanism can be used (i.e. starting another u-boot after the original)=
.
> We can then enter hypervisor mode from our
> > custom iteration of u-boot and subsequently load our kernel and
> userspace.
> >
> > So,the first u-boot is the u-boot provided by virtual open
> systems,that's able to chainload the "u-boot binary located in
> > RO memory" , that does not boot Chrome OS in hypervisor mode. We don't
> need it if we want to boot Linux with kvm or xen
> > enabled.
> >
> >
> > On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki <
> stanislav.silnicki@mailgate.us> wrote:
> >       I'm not an expert in the topic, I only know, that ARM has divided
> hardware into two worlds - Secure and
> >       Not-So, strictly limiting any software, running in non-secure
> world with access to functions and
> >       resources.
> https://developer.arm.com/documentation/den0013/d/Security/TrustZone-hard=
ware-architecture?lang=3Den
> >
> > I'm not sure, that I'm getting you right, as I don't understand what yo=
u
> mean under "the first u-boot".
> >
> > As I understand, virtualization (HYP) is running in non-secure world(
> https://developer.arm.com/documentation/ddi0406/c/System-Level-Architectu=
re/The-System-Level-Programmers--Model/The-Virtualization-Extens
> > ions), so my guess (only guess!!!), virtualization software has to
> prepare (configure) HW platform in the way,
> > that FreeBSD kernel will not lack any resources, required to configure
> MPU, VA, etc.
> > So, if you lucky to boot virtualizer, which is aware of target OS, that
> maybe you can boot the kernel. Although, I
> > doubt, that you need to boot 'second' u-boot to boot the kernel - there
> is simply ubldr, which you can hook somehow
> > from virtualizer....
> >
> > Stan
> >
> >
> >
> > Mario Marietto wrote:
> >
> >
> >       ---> As I understand, it makes sure that u-boot keeps in secure
> mode during boot and passes control to
> >       ubldr, which boots FreeBSD kernel, in that mode.
> >
> > Can you elaborate your sentence more ? I know that the bootloader secur=
e
> mode is bypassed by the virtual open
> > systems u-boot. Are you saying that when the control passes to the
> second u-boot,it will happen in secure
> > mode,so that the bypass that happened loading the first u-boot,is
> annulled ? If this is true,maybe can I boot
> > FreeBSD using the virtual-open-system custom u-boot ? Is this compatibl=
e
> with FreeBSD ? Where can I find the
> > u-boot.bin that the xen developer talked about ? thanks bro'.
> >
> >
> >
> > On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki <
> stanislav.silnicki@mailgate.us> wrote:
> >       Hi Mario,
> >
> > U-Boot  beast is hiding in this den:
> https://source.denx.de/u-boot/u-boot.git
> > I took a brief look at your post and it seems to me, that
> option CONFIG_CMO_BY_VA_ONLY is irrelevant to
> > your target armv7 32 bit
> > platform:
> https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/cpu/armv8/Kco=
nfig?ref_type=3Dheads#L3
> >
> > As for compiling the u-boot, it is a doable task, given that you
> understand what you are doing. There
> > are no specific options in u-boot devoted to FreeBSD. It is a boot
> loader, whose mission to make basic
> > hardware initialization, read you kernel file from some media into RAM
> and then pass it control.
> >
> > Basically, you can grab some defconfig, prepared for any other
> Exynos5250 based board  (say, this one:
> >
> https://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defcon=
fig?ref_type=3Dheads)
> and adopt
> > it somehow.
> >
> > As per my experience, you have to respect these two options, compiling
> u-boot for
> > FreeBSD:
> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-master=
/files/FreeBSD_Fragment
> >
> > As I understand, it makes sure, that u-boot keeps in secure mode during
> boot and passes control to
> > ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot
> of surprises you may realize.
> >
> > Hope, this will help to progress you tasks
> > Stan
> >
> > Mario Marietto wrote:
> >
> >
> >       Hello.
> >
> >       I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM
> Chromebook. Basically there are
> >       two ways to accomplish this task :
> >
> >       1) to write a patch that allows the FreeBSD kernel to boot as a
> zImage file. This could be
> >       accomplished applying this patch to a specific file that's on the
> source code of FreeBSD :
> >
> >
> >
> https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98cc1391472717035f=
986c979edef0c9
> >
> >
> >       This patch was written by Julien Grall a lot of time ago and now
> it does not work anymore.
> >       This is the reason :
> >
> >
> >             It appears FreeBSD-CURRENT removed the last step converting
> the kernel file to
> >             kernel.bin. The patch can be readily rebased, but without
> kernel.bin that
> >             doesn't do too much.
> >
> >
> >
> > So,without a rebase of that patch the first option is not applicable.
> And I'm not able to fix it.
> >
> > 2) booting FreeBSD using U-Boot,as explained to me by a xen developer :
> >
> >
> >       I was trying to explain why and how Julien's patch works so that
> you could be the one
> >       to re-do something similar or fix the patch on the FreeBSD kernel
> that you are
> >       working with. I am happy to help review and write patches but I
> don't work with the
> >       FreeBSD kernel so I wouldn't be able to help you quickly. However=
,
> I might have a
> >       suggestion. Do you know if FreeBSD can be booted by U-Boot ?
> Because U-Boot
> >       definitely boots as Xen on ARM guest firmware/bootloader. You
> should be able to build
> >       U-Boot and use the U-Boot binary as Xen guest kernel, then U-Boot
> could load FreeBSD
> >       from disk or network and start it. For instance as domU config
> file:
> >
> >       kernel=3D"/home/petalinux/u-boot.bin"
> >       disk =3D [ '/home/petalinux/test.img,raw,xvda' ]
> >
> >       I know it is important to build u-boot with the following config
> to make it work on
> >       Xen.
> >
> >       CONFIG_CMO_BY_VA_ONLY=3Dy
> >
> >
> >
> > This option seems more doable to me according to my knowledge. But I
> need to understand how to do
> > it.
> >
> > Well,let's say that on the ARM Chromebook I'm forced to use and install
> a customized version of
> > u-boot,created by virtual open systems,because it is the only one that
> allows bypassing its
> > bootloader protection. You can find more information here :
> >
> >
> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/?=
vos=3Dtech
> >
> > This is the relevant section to read :
> >
> >
> >       Bootloader :
> >
> >       If you wish to skip this chapter you can download a pre-compiled
> binary of the
> >       bootloader:
> >
> >
> >       $ wget
> >
> http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u=
-boot-snow.kpart
> >
> >
> >       To be able to run KVM on ARM platforms, the kernel has to be
> booted in hypervisor
> >       mode. Because of this relatively recent requirement (due to the
> introduction of the
> >       virtualization extensions), up until now all booting methods woul=
d
> boot the kernel in
> >       the standard Supervisor mode. For the ARM Chromebook the default
> boot procedure
> >       doesn't allow us to boot in hypervisor mode. Although the laptop'=
s
> boot mechanism is
> >       based on the frequently used u-boot, the binary is located in RO
> memory. Fortunately,
> >       a chained u-boot mechanism can be used (i.e. starting another
> u-boot after the
> >       original). We can then enter hypervisor mode from our custom
> iteration of u-boot and
> >       subsequently load our kernel and userspace.
> >
> >       Checkout the needed u-boot code :
> >
> >
> >       $ git clone git://github.com/virtualopensystems/u-boot.git$ cd
> u-boot$
> >       ./scripts/build.sh
> >
> >
> >       If successful, a message about how to copy the bootloader on the
> USB flash disk or SD
> >       card will appear. We will use it later when preparing the boot
> medium to start our
> >       system. If you have followed the Setting up the boot medium
> chapter and you have a
> >       prepared boot device, then you can update u-boot by running :
> >
> >
> >       $ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev/sdX1
> >
> >
> >
> > so,the needed u-boot that we must use should be installed on the first
> partition of the sd card.
> >
> > There is another relevant section to read :
> >
> >
> >       Setting up the boot medium
> >
> >       Now it is time to copy all the relevant files that we created in
> the previous
> >       chapters,and use them to boot Chromebook with a different kernel
> and OS. In all these
> >       examples the device /dev/sdX is used. Take extra care to change
> the examples to the
> >       device that you have attached. Insert the boot medium on your
> workstation and
> >       carefully execute the following step. First we need to properly
> format the boot
> >       medium.
> >
> >       In the uboot source directory :
> >
> >
> >       $ sudo ./scripts/sdcard.sh /dev/sdX
> >
> >
> >       This will erase all data and create 4 partitions in the medium,
> along with copying
> >       the u-boot binary to the first partition:
> >
> >
> >       Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
> >       Partition 2 =3D not used
> >       Partition 3 =3D EXT2 partition for u-boot files (uImage and
> exynos5250-snow.dtb)
> >       Partition 4 =3D EXT4 partition for userspace files
> >
> >
> >       With u-boot being copied, next is the kernel image and DTB file.
> From the kernel
> >       source execute :
> >
> >
> >       $ mkdir ../mnt/
> >       $ sudo mount /dev/sdX3 ../mnt/
> >       $ sudo cp arch/arm/boot/uImage ../mnt/
> >       $ sudo cp arch/arm/boot/dts/exynos5250-snow.dtb ../mnt/
> >       $ sudo umount /dev/sdX3
> >
> >
> >       Finally, we have to copy the Ubuntu userspace filesystem that we
> created earlier:
> >
> >
> >       $ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./precise/* mnt/$ sudo
> umount /dev/sdX4
> >
> >
> >
> > Now,my idea is to chainload the already chain loaded u-boot created by
> V.O.S to the new u-boot
> > that we need for booting FreeBSD and that can be installed in the
> partition n.2,as shown in this
> > scheme,because it is not used :
> >
> >
> > Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
> > Partition 2 =3D not used (maybe we can install the u-boot for arm 32
> bit,compatible with FreeBSD on
> > this partition)
> > Partition 3 =3D EXT2 partition for u-boot files (uImage and
> exynos5250-snow.dtb)
> > Partition 4 =3D EXT4 partition for userspace files
> >
> >
> > Take in consideration that default boot string is hardcoded here,in the
> snow.h file of the custom
> > u-boot created by VOS :
> >
> >
> >
> https://github.com/virtualopensyste...18a39b6c177dff58a/include/configs/s=
now.h#L101
> >
> >
> > and it needs to be recompiled because it should point to the partition
> n.2,where I will install
> > the u-boot files as explained here :
> >
> >
> > https://wiki.freebsd.org/arm/Chromebook
> >
> >
> > I have some questions to ask before I start working on this.
> >
> > 1) The xen developer said :
> >
> >
> >       You should be able to build U-Boot and use the U-Boot binary as
> Xen guest kernel...
> >
> >
> >
> > where is the u-boot binary,according to this document ?
> >
> > https://wiki.freebsd.org/arm/Chromebook
> >
> > I don't see it.
> >
> >
> > 2) where is the source code of the file that I can get here :
> >
> >
> http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/nv=
_uboot-snow-simplefb.kpart.bz2
> >
> > I need the source code if I want to recompile u-boot so that it can
> point to the partition 4.
> >
> > Maybe it can be found on this link :
> >
> > http://linux-exynos.org/dist/chromebook/nv_uboot/
> >
> > but it can't be opened....
> >
> >
> > 3) in this specific scenario the source code of u-boot should run on ar=
m
> 32 bit,not on arm
> > 64,because I have the Samsung Chromebook "SNOW" model XE303C12,that's
> powered by a Samsung Exynos
> > 5250 (ARMv7 32 bit Cortex A15) Soc.
> >
> >
> > 4) I'm not sure if I can chainload the customized u-boot created by
> V.O.S that should be
> > installed on the first partition with the u-boot tailored for booting
> FreeBSD that should be
> > installed on the partition 2....
> >
> >
> > 5) the xen developer said that u-boot should be compiled enabling this
> option :
> >
> >
> > Code:
> >
> > CONFIG_CMO_BY_VA_ONLY=3Dy
> >
> >
> > Well,can you provide some good source that can help me to understand ho=
w
> I can recompile u-boot
> > for FreeBSD ? thanks.
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >
> >
> > --
> > Mario.
> >
> >



--=20
Mario.

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

<div dir=3D"ltr"><div>Hello.</div><div><br></div><div>maybe I&#39;m using t=
he wrong u-boot.bin file. Maybe I found the correct bootloader. It is not t=
he u-boot.bin file,but maybe I can use it anyway,maybe I can convert it to =
u-boot.bin. Anyway,I&#39;m reading the procedure used here :<br></div><div>=
<br></div><div><a href=3D"https://wiki.freebsd.org/arm/Chromebook">https://=
wiki.freebsd.org/arm/Chromebook</a></div><div><br></div><div>this is the in=
teresting part :</div><div><br></div><div><h3 id=3D"gmail-Populating_the_U-=
Boot_Partition">Populating the U-Boot Partition</h3>
<span class=3D"gmail-anchor" id=3D"gmail-line-91"></span><span class=3D"gma=
il-anchor" id=3D"gmail-line-92"></span><p class=3D"gmail-line867"><span cla=
ss=3D"gmail-anchor" id=3D"gmail-line-93"></span><span class=3D"gmail-anchor=
" id=3D"gmail-line-94"></span><span class=3D"gmail-anchor" id=3D"gmail-line=
-95"></span><span class=3D"gmail-anchor" id=3D"gmail-line-96"></span></p><p=
re><span class=3D"gmail-anchor" id=3D"gmail-line-1-5"></span># fetch <a hre=
f=3D"http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles=
/nv_uboot-snow-simplefb.kpart.bz2">http://commondatastorage.googleapis.com/=
chromeos-localmirror/distfiles/nv_uboot-snow-simplefb.kpart.bz2</a>
<span class=3D"gmail-anchor" id=3D"gmail-line-2-3"></span># bunzip2 nv_uboo=
t-snow-simplefb.kpart.bz2
<span class=3D"gmail-anchor" id=3D"gmail-line-3-2"></span># dd if=3Dnv_uboo=
t-snow-simplefb.kpart of=3D/dev/da0p1 bs=3D1m<br><br><br></pre><pre>It seem=
s that the file nv_uboot-snow-simplefb.kpart is able to boot FreeBSD. I tri=
ed to follow the tutorial,so I have dd&#39;ed it <br>on the first partition=
 of my sd card :<br><br><span class=3D"gmail-anchor" id=3D"gmail-line-3-2">=
</span># dd if=3Dnv_uboot-snow-simplefb.kpart of=3D/dev/sdf1 bs=3D1m<br><br=
></pre><pre>and then I tried to mount it because I hoped to find the u-boot=
.bin file inside the partition,but I haven&#39;t been able to mount it:<br>=
<br><span style=3D"font-family:monospace"><span style=3D"color:rgb(0,0,0);b=
ackground-color:rgb(255,255,255)">$ sudo mount /dev/sdf1 /mnt/sdf1
</span><br>mount: /mnt/sdf1: wrong fs type, bad option, bad superblock on /=
dev/sdf1, missing codepage or helper program, or other error.
dmesg(1) may have more information after a failed mount system call.
<br></span></pre><pre>Is there a way to convert that kpart file into an u-b=
oot.bin file ? I see that the source code to generate it is not there. <br>=
<br>Infact this website does not work : <a href=3D"http://linux-exynos.org/=
dist/chromebook/nv_uboot/">http://linux-exynos.org/dist/chromebook/nv_uboot=
/</a> <br></pre><pre> <br></pre></div></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Tue, Dec 19, 2023 at 8:33=E2=80=AF=
PM Stefano Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org">sstabel=
lini@kernel.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex">+Michal<br>
<br>
Hi Mario,<br>
<br>
I am not sure about booting FreeBSD, but I am certain that u-boot works<br>
fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config<br>
file:<br>
<br>
name=3D&quot;test&quot;<br>
kernel=3D&quot;u-boot.bin&quot;<br>
extra =3D &quot;console=3Dhvc0&quot;<br>
memory=3D256<br>
vcpus=3D1<br>
disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
<br>
I don&#39;t know for sure if you can boot FreeBSD but you should definitely=
<br>
be able to see the u-boot command line prompt. The fact that you are<br>
getting this message:<br>
<br>
xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: I=
nvalid kernel<br>
<br>
Means that something is not right in the u-boot configuration or u-boot<br>
build. Michal and Artem (CCed) might know more. From what I recall,<br>
there was nothing special required to get u-boot.bin to boot as domU<br>
kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.<br>
<br>
Cheers,<br>
<br>
Stefano<br>
<br>
<br>
On Tue, 19 Dec 2023, Mario Marietto wrote:<br>
&gt; ....I see that some other interesting files have been produced by u-bo=
ot when I have compiled it :<br>
&gt; <br>
&gt; u-boot<br>
&gt; u-boot.lds<br>
&gt; u-boot.bin<br>
&gt; u-boot.map<br>
&gt; u-boot-nodtb.bin<br>
&gt; u-boot.dtb<br>
&gt; u-boot.srec<br>
&gt; u-boot-dtb.bin<br>
&gt; u-boot.sym<br>
&gt; <br>
&gt; So,maybe I should use a different u-boot* file for booting FreeBSD ?<b=
r>
&gt; <br>
&gt; <br>
&gt; On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto &lt;<a href=3D"=
mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a>=
&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello to everyone.<br>
&gt; <br>
&gt; I have compiled the needed u-boot.bin from scratch using this procedur=
e :<br>
&gt; <br>
&gt; # git clone <a href=3D"https://github.com/u-boot/u-boot.git" rel=3D"no=
referrer" target=3D"_blank">https://github.com/u-boot/u-boot.git</a><br>
&gt; # cd u-boot<br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig =
: this line generates the file .config<br>
&gt; # nano .config and I&#39;ve added these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; the uboot-bin file is generated with this command :<br>
&gt; <br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make<br>
&gt; <br>
&gt; At this point,I took a look inside the .config file and I saw that the=
 parameter &quot;CONFIG_ARMV7_NONSEC=3Dn&quot; has been removed. So,for<br>
&gt; some reason,it is not accepted and this could be a problem....<br>
&gt; <br>
&gt; These are the xen config files that I&#39;ve used :<br>
&gt; <br>
&gt; nano freebsd.cfg<br>
&gt; <br>
&gt; name=3D&quot;test&quot;<br>
&gt; kernel=3D&quot;u-boot.bin&quot;<br>
&gt; extra =3D &quot;console=3Dhvc0&quot;<br>
&gt; memory=3D256<br>
&gt; vcpus=3D1<br>
&gt; disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
&gt; <br>
&gt; nano start-freebsd<br>
&gt; <br>
&gt; xl create freebsd.cfg<br>
&gt; xl console freebsd<br>
&gt; <br>
&gt; This is what happens when I launch the vm :<br>
&gt; <br>
&gt; # ./start-freebsd<br>
&gt; =C2=A0<br>
&gt; Parsing config from freebsd.cfg<br>
&gt; xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader fou=
nd: Invalid kernel<br>
&gt; libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fai=
led<br>
&gt; libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:can=
not (re-)build domain: -3<br>
&gt; libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-e=
xistent domain<br>
&gt; libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Un=
able to destroy guest<br>
&gt; libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruct=
ion of domain failed<br>
&gt; freebsd is an invalid domain identifier (rc=3D-6)<br>
&gt; <br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0So,ok,I should have said &quot;the second u-=
boot&quot; ; since the first u-boot binary is the &quot;u-boot binary locat=
ed in the RO<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0memory&quot; of the Chromebook&quot;. Sorry =
for the confusion.<br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; There are no specific options in u-b=
oot devoted to FreeBSD<br>
&gt; <br>
&gt; This is an important factor. So,what about if,instead of compiling a n=
ew version of u-boot on the partition 2,I will<br>
&gt; recompile the u-boot customized version created by the virtual open sy=
stem in 2014,that should be installed on the first<br>
&gt; partition ? It could work if there are no differences between the u-bo=
ot that should boot Linux and the u-boot that<br>
&gt; should boot FreeBSD.<br>
&gt; <br>
&gt; Can you give a look at the u-boot source code created by virtual open =
systems ? You can find it on my google drive :<br>
&gt; <br>
&gt; <a href=3D"https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzz=
O09BRm/view?usp=3Dsharing" rel=3D"noreferrer" target=3D"_blank">https://dri=
ve.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?usp=3Dsharing</=
a><br>
&gt; <br>
&gt; I need to understand if I can recompile it without problem so that it =
can satisfy my needs (the ability of the file<br>
&gt; u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano S=
tabellini,the xen developer that suggested to me<br>
&gt; what I could do to have FreeBSD virtualized under Xen on my Arm Chrome=
book) ; otherwise the risk is to find later<br>
&gt; problems that will make me troubles and that I will not able to fix.<b=
r>
&gt; <br>
&gt; I gave a look at the virtual open system u-boot and I didn&#39;t see a=
ny arndale_defconfig inside. So,If I have understood<br>
&gt; correctly,I should put that file inside the root of the u-boot source =
code,let&#39;s say here :<br>
&gt; <br>
&gt; marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls<b=
r>
&gt; =C2=A0<br>
&gt; .checkpatch.conf =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0README =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0doc =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
net<br>
&gt; .git =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0api =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0drivers =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0onenand_ipl<br>
&gt; .gitignore =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0arch =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0dts =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0post<br>
&gt; COPYING =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0board =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
examples =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://rules.mk" rel=3D"noreferrer" targ=
et=3D"_blank">rules.mk</a><br>
&gt; CREDITS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0boards.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0fs =C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0scripts<br>
&gt; MAINTAINERS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0common =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0include =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0snapshot.commit<br>
&gt; MAKEALL =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://config.mk" rel=3D"nor=
eferrer" target=3D"_blank">config.mk</a> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0lib =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0spl<br>
&gt; 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=A0cros =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
mkconfig =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0test<br>
&gt; PRESUBMIT.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0disk =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0nand_spl =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
tools<br>
&gt; <br>
&gt; and I should do : make and make install ? and the file I need,u-boot.b=
in will be generated ?=C2=A0<br>
&gt; <br>
&gt; I didn&#39;t find any pre made configuration file inside :<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;exynos*&quot;=C2=A0<br>
&gt; <br>
&gt; ./include/exynos-fb.h<br>
&gt; ./include/configs/exynos5-common.h<br>
&gt; ./doc/device-tree-bindings/spi/exynos-spi.txt<br>
&gt; ./doc/device-tree-bindings/usb/exynos-usb.txt<br>
&gt; ./drivers/power/exynos-tmu.c<br>
&gt; ./drivers/power/exynos-cpufreq.c<br>
&gt; ./drivers/video/exynos-fb.c<br>
&gt; ./drivers/spi/exynos_spi.c<br>
&gt; ./board/samsung/dts/exynos5250-spring.dts<br>
&gt; ./board/samsung/dts/exynos5250-smdk5250.dts<br>
&gt; ./board/samsung/dts/exynos5250-snow.dts<br>
&gt; ./board/samsung/dts/exynos5250-daisy.dts<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h<br>
&gt; ./arch/arm/dts/exynos5250.dtsi<br>
&gt; ./arch/arm/dts/exynos-periph-id.dtsi<br>
&gt; ./arch/arm/cpu/armv7/exynos5/exynos_cache.c=C2=A0<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;arndale*&quot;<br>
&gt; <br>
&gt; For sure I can&#39;t use a newer version of u-boot because otherwise t=
he patches needed to bypass the bootloader protections<br>
&gt; of the Arm Chromebook (such as a lot of different patches needed to bo=
ot correctly Linux) will be broken ; anyway,since<br>
&gt; it works,I don&#39;t need to use an updated version of u-boot.<br>
&gt; <br>
&gt; ----&gt; As per my experience, you have to respect these two options, =
compiling u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; It says that I should use these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; These are the parameters used to configure a Linux kernel. I don&#39;t=
 understand what&#39;s the relation between the compilation<br>
&gt; of a linux kernel and u-boot. In the past I tried to recompile u-boot,=
but I didn&#39;t have the need to set up those<br>
&gt; parameters,so I don&#39;t know how to do it (but I know how to recompi=
le a Linux kernel).<br>
&gt; <br>
&gt; ---&gt; I&#39;m not sure that I&#39;m getting you right, as I don&#39;=
t understand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; <br>
&gt; I&#39;m talking about first u-boot because the whole procedure to boot=
 Linux on the ARM Chromebook,that&#39;s explained here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/" rel=3D"noreferrer" target=3D"_blank">http://www.virtualopens=
ystems.com/en/solutions/guides/kvm-on-chromebook/</a><br>
&gt; <br>
&gt; <br>
&gt; at some point they say :<br>
&gt; <br>
&gt; <br>
&gt; To be able to run KVM on ARM platforms, the kernel has to be booted in=
 hypervisor mode. Because of this relatively recent<br>
&gt; requirement (due to the introduction of the virtualization extensions)=
, up until now all booting methods would boot the<br>
&gt; kernel in the standard Supervisor mode.<br>
&gt; <br>
&gt; For the ARM Chromebook the default boot procedure doesn&#39;t allow us=
 to boot in hypervisor mode. Although the laptop&#39;s boot<br>
&gt; mechanism is based on the frequently used u-boot, the binary is locate=
d in RO memory. Fortunately, a chained u-boot<br>
&gt; mechanism can be used (i.e. starting another u-boot after the original=
). We can then enter hypervisor mode from our<br>
&gt; custom iteration of u-boot and subsequently load our kernel and usersp=
ace.<br>
&gt; <br>
&gt; So,the first u-boot is the u-boot provided by virtual open systems,tha=
t&#39;s able to chainload the &quot;u-boot binary located in<br>
&gt; RO memory&quot; , that does not boot Chrome OS in hypervisor mode. We =
don&#39;t need it if we want to boot Linux with kvm or xen<br>
&gt; enabled.<br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki &lt;<a href=
=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.siln=
icki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m not an expert in the topic, I only k=
now, that ARM has divided hardware into two worlds - Secure and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Not-So, strictly limiting any software, runn=
ing in non-secure world with access to functions and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0resources.=C2=A0<a href=3D"https://developer=
.arm.com/documentation/den0013/d/Security/TrustZone-hardware-architecture?l=
ang=3Den" rel=3D"noreferrer" target=3D"_blank">https://developer.arm.com/do=
cumentation/den0013/d/Security/TrustZone-hardware-architecture?lang=3Den</a=
><br>
&gt; <br>
&gt; I&#39;m not sure, that I&#39;m getting you right, as I don&#39;t under=
stand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; As I understand, virtualization (HYP) is running in non-secure world(<=
a href=3D"https://developer.arm.com/documentation/ddi0406/c/System-Level-Ar=
chitecture/The-System-Level-Programmers--Model/The-Virtualization-Extens" r=
el=3D"noreferrer" target=3D"_blank">https://developer.arm.com/documentation=
/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/Th=
e-Virtualization-Extens</a><br>
&gt; ions), so my guess (only guess!!!), virtualization software has to pre=
pare (configure) HW platform in the way,<br>
&gt; that FreeBSD kernel will not lack any resources, required to configure=
 MPU, VA, etc.<br>
&gt; So, if you lucky to boot virtualizer, which is aware of target OS, tha=
t maybe you can boot the kernel. Although, I<br>
&gt; doubt, that you need to boot &#39;second&#39; u-boot to boot the kerne=
l - there is simply ubldr, which you can hook somehow<br>
&gt; from virtualizer....<br>
&gt; <br>
&gt; Stan<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; As I understand, it makes sure that =
u-boot keeps in secure mode during boot and passes control to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ubldr, which boots FreeBSD kernel, in that m=
ode.<br>
&gt; <br>
&gt; Can you elaborate your sentence more ? I know that the bootloader secu=
re mode is bypassed by the virtual open<br>
&gt; systems u-boot. Are you saying that when the control passes to the sec=
ond u-boot,it will happen in secure<br>
&gt; mode,so that the bypass that happened loading the first u-boot,is annu=
lled ? If this is true,maybe can I boot<br>
&gt; FreeBSD using the virtual-open-system custom u-boot ? Is this compatib=
le with FreeBSD ? Where can I find the<br>
&gt; u-boot.bin that the xen developer talked about ? thanks bro&#39;.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki &lt;<a hre=
f=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.sil=
nicki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hi Mario,<br>
&gt; <br>
&gt; U-Boot=C2=A0 beast is hiding in this den: <a href=3D"https://source.de=
nx.de/u-boot/u-boot.git" rel=3D"noreferrer" target=3D"_blank">https://sourc=
e.denx.de/u-boot/u-boot.git</a><br>
&gt; I took a brief look at your post and it seems to me, that option=C2=A0=
CONFIG_CMO_BY_VA_ONLY=C2=A0is irrelevant to<br>
&gt; your target armv7 32 bit<br>
&gt; platform:=C2=A0<a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/=
master/arch/arm/cpu/armv8/Kconfig?ref_type=3Dheads#L3" rel=3D"noreferrer" t=
arget=3D"_blank">https://source.denx.de/u-boot/u-boot/-/blob/master/arch/ar=
m/cpu/armv8/Kconfig?ref_type=3Dheads#L3</a><br>
&gt; <br>
&gt; As for compiling the u-boot, it is a doable task, given that you under=
stand what you are doing. There<br>
&gt; are no specific options in u-boot devoted to FreeBSD. It is a boot loa=
der, whose mission to make basic<br>
&gt; hardware initialization, read you kernel file from some media into RAM=
 and then pass it control.<br>
&gt; <br>
&gt; Basically, you can grab some defconfig, prepared for any other Exynos5=
250 based board=C2=A0 (say, this one:<br>
&gt; <a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/master/configs/=
arndale_defconfig?ref_type=3Dheads" rel=3D"noreferrer" target=3D"_blank">ht=
tps://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defconfig?=
ref_type=3Dheads</a>) and adopt<br>
&gt; it somehow.<br>
&gt; <br>
&gt; As per my experience, you have to respect these two options, compiling=
 u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; As I understand, it makes sure, that u-boot keeps in secure mode durin=
g boot and passes control to<br>
&gt; ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot=
 of surprises you may realize.<br>
&gt; <br>
&gt; Hope, this will help to progress you tasks<br>
&gt; Stan<br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m trying to boot FreeBSD for arm32 bit=
 as DomU on my ARM Chromebook. Basically there are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0two ways to accomplish this task :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A01) to write a patch that allows the FreeBSD =
kernel to boot as a zImage file. This could be<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0accomplished applying this patch to a specif=
ic file that&#39;s on the source code of FreeBSD :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://xenbits.xen.org/gitweb/?p=
=3Dp...8;hb=3D0782e25d98cc1391472717035f986c979edef0c9" rel=3D"noreferrer" =
target=3D"_blank">https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98=
cc1391472717035f986c979edef0c9</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This patch was written by Julien Grall a lot=
 of time ago and now it does not work anymore.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This is the reason :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0It appears FreeBSD-CURR=
ENT removed the last step converting the kernel file to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0kernel.bin. The patch c=
an be readily rebased, but without kernel.bin that<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t do too much=
.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; So,without a rebase of that patch the first option is not applicable. =
And I&#39;m not able to fix it.<br>
&gt; <br>
&gt; 2) booting FreeBSD using U-Boot,as explained to me by a xen developer =
:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I was trying to explain why and how Julien&#=
39;s patch works so that you could be the one<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to re-do something similar or fix the patch =
on the FreeBSD kernel that you are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0working with. I am happy to help review and =
write patches but I don&#39;t work with the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0FreeBSD kernel so I wouldn&#39;t be able to =
help you quickly. However, I might have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0suggestion. Do you know if FreeBSD can be bo=
oted by U-Boot ? Because U-Boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0definitely boots as Xen on ARM guest firmwar=
e/bootloader. You should be able to build<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0U-Boot and use the U-Boot binary as Xen gues=
t kernel, then U-Boot could load FreeBSD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0from disk or network and start it. For insta=
nce as domU config file:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0kernel=3D&quot;/home/petalinux/u-boot.bin&qu=
ot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0disk =3D [ &#39;/home/petalinux/test.img,raw=
,xvda&#39; ]<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I know it is important to build u-boot with =
the following config to make it work on<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Xen.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; This option seems more doable to me according to my knowledge. But I n=
eed to understand how to do<br>
&gt; it.<br>
&gt; <br>
&gt; Well,let&#39;s say that on the ARM Chromebook I&#39;m forced to use an=
d install a customized version of<br>
&gt; u-boot,created by virtual open systems,because it is the only one that=
 allows bypassing its<br>
&gt; bootloader protection. You can find more information here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/?vos=3Dtech" rel=3D"noreferrer" target=3D"_blank">http://www.v=
irtualopensystems.com/en/solutions/guides/kvm-on-chromebook/?vos=3Dtech</a>=
<br>
&gt; <br>
&gt; This is the relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Bootloader :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If you wish to skip this chapter you can dow=
nload a pre-compiled binary of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0bootloader:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ wget<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"http://www.virtualopensystems.com=
/downloads/guides/kvm_on_chromebook/nv_u-boot-snow.kpart" rel=3D"noreferrer=
" target=3D"_blank">http://www.virtualopensystems.com/downloads/guides/kvm_=
on_chromebook/nv_u-boot-snow.kpart</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0To be able to run KVM on ARM platforms, the =
kernel has to be booted in hypervisor<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0mode. Because of this relatively recent requ=
irement (due to the introduction of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0virtualization extensions), up until now all=
 booting methods would boot the kernel in<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the standard Supervisor mode. For the ARM Ch=
romebook the default boot procedure<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t allow us to boot in hypervisor m=
ode. Although the laptop&#39;s boot mechanism is<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0based on the frequently used u-boot, the bin=
ary is located in RO memory. Fortunately,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0a chained u-boot mechanism can be used (i.e.=
 starting another u-boot after the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0original). We can then enter hypervisor mode=
 from our custom iteration of u-boot and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0subsequently load our kernel and userspace.<=
br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Checkout the needed u-boot code :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ git clone git://<a href=3D"http://github.c=
om/virtualopensystems/u-boot.git$" rel=3D"noreferrer" target=3D"_blank">git=
hub.com/virtualopensystems/u-boot.git$</a> cd u-boot$<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0./scripts/build.sh<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If successful, a message about how to copy t=
he bootloader on the USB flash disk or SD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0card will appear. We will use it later when =
preparing the boot medium to start our<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0system. If you have followed the Setting up =
the boot medium chapter and you have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0prepared boot device, then you can update u-=
boot by running :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev=
/sdX1<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; so,the needed u-boot that we must use should be installed on the first=
 partition of the sd card.<br>
&gt; <br>
&gt; There is another relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Setting up the boot medium<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Now it is time to copy all the relevant file=
s that we created in the previous<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0chapters,and use them to boot Chromebook wit=
h a different kernel and OS. In all these<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0examples the device /dev/sdX is used. Take e=
xtra care to change the examples to the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0device that you have attached. Insert the bo=
ot medium on your workstation and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0carefully execute the following step. First =
we need to properly format the boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0medium.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0In the uboot source directory :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo ./scripts/sdcard.sh /dev/sdX<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This will erase all data and create 4 partit=
ions in the medium, along with copying<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the u-boot binary to the first partition:<br=
>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 1 =3D ChromeOS signed binary (V.O.=
S chained u-boot)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 2 =3D not used<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 3 =3D EXT2 partition for u-boot fi=
les (uImage and exynos5250-snow.dtb)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 4 =3D EXT4 partition for userspace=
 files<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0With u-boot being copied, next is the kernel=
 image and DTB file. From the kernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0source execute :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ mkdir ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX3 ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/uImage ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/dts/exynos5250-snow.=
dtb ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo umount /dev/sdX3<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Finally, we have to copy the Ubuntu userspac=
e filesystem that we created earlier:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./pr=
ecise/* mnt/$ sudo umount /dev/sdX4<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Now,my idea is to chainload the already chain loaded u-boot created by=
 V.O.S to the new u-boot<br>
&gt; that we need for booting FreeBSD and that can be installed in the part=
ition n.2,as shown in this<br>
&gt; scheme,because it is not used :<br>
&gt; <br>
&gt; <br>
&gt; Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)<br>
&gt; Partition 2 =3D not used (maybe we can install the u-boot for arm 32 b=
it,compatible with FreeBSD on<br>
&gt; this partition)<br>
&gt; Partition 3 =3D EXT2 partition for u-boot files (uImage and exynos5250=
-snow.dtb)<br>
&gt; Partition 4 =3D EXT4 partition for userspace files<br>
&gt; <br>
&gt; <br>
&gt; Take in consideration that default boot string is hardcoded here,in th=
e snow.h file of the custom<br>
&gt; u-boot created by VOS :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://github.com/virtualopensyste...18a39b6c177dff58a/inc=
lude/configs/snow.h#L101" rel=3D"noreferrer" target=3D"_blank">https://gith=
ub.com/virtualopensyste...18a39b6c177dff58a/include/configs/snow.h#L101</a>=
<br>
&gt; <br>
&gt; <br>
&gt; and it needs to be recompiled because it should point to the partition=
 n.2,where I will install<br>
&gt; the u-boot files as explained here :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; <br>
&gt; I have some questions to ask before I start working on this.<br>
&gt; <br>
&gt; 1) The xen developer said :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0You should be able to build U-Boot and use t=
he U-Boot binary as Xen guest kernel...<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; where is the u-boot binary,according to this document ?<br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; I don&#39;t see it.<br>
&gt; <br>
&gt; <br>
&gt; 2) where is the source code of the file that I can get here :<br>
&gt; <br>
&gt; <a href=3D"http://commondatastorage.googleapis.com/chromeos-localmirro=
r/distfiles/nv_uboot-snow-simplefb.kpart.bz2" rel=3D"noreferrer" target=3D"=
_blank">http://commondatastorage.googleapis.com/chromeos-localmirror/distfi=
les/nv_uboot-snow-simplefb.kpart.bz2</a><br>
&gt; <br>
&gt; I need the source code if I want to recompile u-boot so that it can po=
int to the partition 4.<br>
&gt; <br>
&gt; Maybe it can be found on this link :<br>
&gt; <br>
&gt; <a href=3D"http://linux-exynos.org/dist/chromebook/nv_uboot/" rel=3D"n=
oreferrer" target=3D"_blank">http://linux-exynos.org/dist/chromebook/nv_ubo=
ot/</a><br>
&gt; <br>
&gt; but it can&#39;t be opened....<br>
&gt; <br>
&gt; <br>
&gt; 3) in this specific scenario the source code of u-boot should run on a=
rm 32 bit,not on arm<br>
&gt; 64,because I have the Samsung Chromebook &quot;SNOW&quot; model XE303C=
12,that&#39;s powered by a Samsung Exynos<br>
&gt; 5250 (ARMv7 32 bit Cortex A15) Soc.<br>
&gt; <br>
&gt; <br>
&gt; 4) I&#39;m not sure if I can chainload the customized u-boot created b=
y V.O.S that should be<br>
&gt; installed on the first partition with the u-boot tailored for booting =
FreeBSD that should be<br>
&gt; installed on the partition 2....<br>
&gt; <br>
&gt; <br>
&gt; 5) the xen developer said that u-boot should be compiled enabling this=
 option :<br>
&gt; <br>
&gt; <br>
&gt; Code:<br>
&gt; <br>
&gt; CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; Well,can you provide some good source that can help me to understand h=
ow I can recompile u-boot<br>
&gt; for FreeBSD ? thanks.<br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signatur=
e_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<b=
r></div>

--000000000000a5c902060cf84aa5--


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 23:26:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 23:26:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658374.1027526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG5xc-0003qZ-0k; Wed, 20 Dec 2023 23:26:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658374.1027526; Wed, 20 Dec 2023 23: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 1rG5xb-0003qS-UG; Wed, 20 Dec 2023 23:26:43 +0000
Received: by outflank-mailman (input) for mailman id 658374;
 Wed, 20 Dec 2023 23:26: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 1rG5xa-0003qI-QW; Wed, 20 Dec 2023 23:26: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 1rG5xa-0000q2-OF; Wed, 20 Dec 2023 23:26: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 1rG5xa-0002ti-6u; Wed, 20 Dec 2023 23:26:42 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rG5xa-0007MQ-64; Wed, 20 Dec 2023 23:26:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=6gLc48VCG3LcIdlArBnQnELdZTwUD5g0dpkMRd2cw+U=; b=4jEALfz7ERDST6wGwcb6M0tOqH
	2MSa6Jl1e2kkQQIh+Q3RGZpIPi3f0HVf8wzuUmT5xFGoNNVFzbVaR6VQzPmZAIrTZf/aFncrRkVub
	LWwK1k6FCdGiBz902GS2EyG5/Hc2D90MOvTmbvGvHOwXogceM7sh237wSuxNiIjmm07E=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184189-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184189: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2: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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-libvirt: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-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3
X-Osstest-Versions-That:
    xen=1b42304fd1d84adcf7caf8c12c33ec66347b6dcc
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 20 Dec 2023 23:26:42 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184181
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184181
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184181
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184181
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184181
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184181
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184181
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184181
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184181
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184181
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184181
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184181
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3
baseline version:
 xen                  1b42304fd1d84adcf7caf8c12c33ec66347b6dcc

Last test of basis   184181  2023-12-19 23:39:39 Z    0 days
Testing same since   184189  2023-12-20 09:47:47 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Federico Serafini <federico.serafini@bugseng.com>
  Julien Grall <julien@xen.org>
  Nicola Vetrini <nicola.vetrini@bugseng.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   1b42304fd1..725acf8e4d  725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3 -> master


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 23:40:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 23:40:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658381.1027535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG6Aq-0006lM-6a; Wed, 20 Dec 2023 23:40:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658381.1027535; Wed, 20 Dec 2023 23: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 1rG6Aq-0006lF-44; Wed, 20 Dec 2023 23:40:24 +0000
Received: by outflank-mailman (input) for mailman id 658381;
 Wed, 20 Dec 2023 23:40:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mMzY=H7=google.com=samitolvanen@srs-se1.protection.inumbo.net>)
 id 1rG6Ao-0006l9-Hi
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 23:40:22 +0000
Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com
 [2607:f8b0:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22348f8e-9f91-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 00:40:19 +0100 (CET)
Received: by mail-ot1-x32a.google.com with SMTP id
 46e09a7af769-6da4893142aso129554a34.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 15:40:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 22348f8e-9f91-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1703115618; x=1703720418; 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=UT9ddCwESgsBoC0klthrCGoZVKiU2GhW3IYmRpWSVN4=;
        b=n8Gs+6OekXS4rQsY9DOFI3B90rCoypWLaJBMhW9V1s5U8k3sLK1/J+jmOabeVGG98J
         GdB8UlfCYFeL55bEBCrcFxlDRZiB/BBop7JDwYYbET9tJ94F2W3/5pTd7rwSyaak8P/b
         yWVNDox+ElTlG8uQRoiV8ijJ/ymft9inzACSXjyIxhiOO2nu1u3f4xE7KocnIsdnbmTk
         chkZISlFlEljDhxyVK1EX7CAn93bCb5pg5jdVYng9TjARpY4DPHIR5JUK77EgHYe0hpl
         waSy/jp07JZUgWUAfUNVr1VWY4/ORmmXUxjmdHX4MjHDukTiKUn2DNT76o4x3/QvUVJZ
         vh/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703115618; x=1703720418;
        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=UT9ddCwESgsBoC0klthrCGoZVKiU2GhW3IYmRpWSVN4=;
        b=CMZ/mvPKUbzhuNkqA2Gl8n73XtkimjTD6DpyGdmAwXQUS7lH3aRqvDvfc/GOtJyzuR
         fKaKucpVmvocnupYuZLzzGq3JeZ9kh60u4YWGrPVFxqUQtsxctgVswZ73J8JgAATCFhu
         GIoVJvf5GA6yKfh4vJaRyKF4bN2YGU2KErhmptIcFVBMPYF8Q6SQdwDKLYxp2+x9rS/U
         jkPYBiFhBkZvOt0p/bkzoaGatMNEeXXYLT++YLa9sAkIthMD+uZp61GEv8jlYLmI5O5V
         vk1sNyPHK3w6aEl57B1S7y9i1pHpjlQ5qpLDtaHEFw0FQvWzl73xxyjNG/0/DOXTiaFF
         TgCA==
X-Gm-Message-State: AOJu0YzTfX65sp4uB/IhHmew7F8bU3Xt6WcZjMgkagIuA1CJ1sOZQcbV
	4MqpTXre0/2Ov5iLon1FIz4EuDG5hxkBz0jc4ajkZg==
X-Google-Smtp-Source: AGHT+IFl1yH9HmEtW/GRt/3W2yqcGB7F1oFfk9bZiSKJ12kXycsrXzJ5TDlaI7WhVRoyr+AHA0ljXKlr1IzXq/x2Slk=
X-Received: by 2002:a05:6830:18c2:b0:6d9:f031:4e76 with SMTP id
 v2-20020a05683018c200b006d9f0314e76mr20116594ote.69.1703115618088; Wed, 20
 Dec 2023 15:40:18 -0800 (PST)
MIME-Version: 1.0
References: <202312191507.348721d2-oliver.sang@intel.com> <20231219095821.GAZYFpPUSKexZAcl05@fat_crate.local>
 <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com>
 <87013f74-5828-4bef-848b-ffedde8e86f5@citrix.com> <CAHk-=wh=z-aXw6o8Hi9SiC5-vwP403-ZpDHUOXdXmLbaG93dvQ@mail.gmail.com>
 <CAHk-=whfpRxuucUL1oguRivq0e7JSxNWC2p_6gvKriNTHmr0UQ@mail.gmail.com>
In-Reply-To: <CAHk-=whfpRxuucUL1oguRivq0e7JSxNWC2p_6gvKriNTHmr0UQ@mail.gmail.com>
From: Sami Tolvanen <samitolvanen@google.com>
Date: Wed, 20 Dec 2023 15:39:40 -0800
Message-ID: <CABCJKud8PG_ho79it34JxHG07n_Kbe9SLeBkEJwMYP_kS80D_g@mail.gmail.com>
Subject: Re: [linus:master] [x86/entry] be5341eb0d: WARNING:CPU:#PID:#at_int80_emulation
To: Linus Torvalds <torvalds@linuxfoundation.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Borislav Petkov <bp@alien8.de>, 
	kernel test robot <oliver.sang@intel.com>, Thomas Gleixner <tglx@linutronix.de>, oe-lkp@lists.linux.dev, 
	lkp@intel.com, linux-kernel@vger.kernel.org, 
	Dave Hansen <dave.hansen@linux.intel.com>, 
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 19, 2023 at 3:15=E2=80=AFPM Linus Torvalds
<torvalds@linuxfoundation.org> wrote:
>
> On Tue, 19 Dec 2023 at 12:17, Linus Torvalds
> <torvalds@linuxfoundation.org> wrote:
> >
> > That said, I still think that just getting rid of this horrid special
> > case for posix timers is the right thing, and we should just remove
> > that SYS_NI() alias thing entirely.
>
> IOW, something like the attached patch.
>
> It's not extensively tested, but hey, the diffstat looks nice:
>
>   arch/arm64/include/asm/syscall_wrapper.h |  4 ---
>   arch/riscv/include/asm/syscall_wrapper.h |  5 ----
>   arch/s390/include/asm/syscall_wrapper.h  | 13 +--------
>   arch/x86/include/asm/syscall_wrapper.h   | 34 +++---------------------
>   kernel/sys_ni.c                          | 14 ++++++++++
>   kernel/time/posix-stubs.c                | 45 -------------------------=
-------
>   6 files changed, 19 insertions(+), 96 deletions(-)
>
> and it builds in at least a *couple* of configurations, including with
> CONFIG_POSIX_TIMERS disabled.
>
> I did *not* check whether it might fix the warning, since I doubt my
> user space would even boot without that posix timer support (actually,
> honestly, because I'm just lazy and "it _looks_ fine to me" was the
> main real thing).

I tested the patch with the 0-day bot reproducer and it does fix the
warning. My usual arm64 and riscv configs also seem to build and boot
just fine.

> But that SYS_NI() thing really does deserve to die, as it was purely
> used as a hack for some random timer system calls.
>
> Comments?

Removing the SYS_NI bits is definitely a cleaner solution. Looks good to me=
.

Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Tested-by: Sami Tolvanen <samitolvanen@google.com>

Sami


From xen-devel-bounces@lists.xenproject.org Wed Dec 20 23:52:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Dec 2023 23:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658386.1027545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG6Mk-0000nt-8o; Wed, 20 Dec 2023 23:52:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658386.1027545; Wed, 20 Dec 2023 23:52:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG6Mk-0000nm-5u; Wed, 20 Dec 2023 23:52:42 +0000
Received: by outflank-mailman (input) for mailman id 658386;
 Wed, 20 Dec 2023 23:52:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GUkk=H7=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rG6Mi-0000nO-Qk
 for xen-devel@lists.xenproject.org; Wed, 20 Dec 2023 23:52:40 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id da7be609-9f92-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 00:52:38 +0100 (CET)
Received: from mg.gitlab.com (4.226.74.34.bc.googleusercontent.com
 [34.74.226.4]) by
 f2fc7ed5ab0d with SMTP id 65837e4429bfef30dbe6744a (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Wed, 20 Dec 2023 23:52:36 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: da7be609-9f92-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1703116356; x=1703123556; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=WbEe4gKEUSAiu4+lP3GzHs7horPogqT1E7LhR3eV6Gc=;
 b=C9EiiHpbKtPyPaWedJv26OdJs+I1hfc8EPN6adRI+a1Kp2CknIkfcJZKbcAaJDXt+ZHgrAiPFGF37sMHOP5QQ+3tYIZn4oSNwVeIipFv/r36/LWAE0wSx7VNDKuqtNSuN6kWIdrAGq91hc7CaQHV6bjkrXVnoHY0T1zXckSt9vA=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Wed, 20 Dec 2023 23:52:36 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65837e446c5f5_2c96a141130e6@gitlab-sidekiq-catchall-v2-74fd74864c-sd5ff.mail>
Subject: xen | Successful pipeline for staging | 6efc654a
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65837e44623b7_2c96a1411292b";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1114808957
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65837e44623b7_2c96a1411292b
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1114808957 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 6efc654a ( https://gitlab.com/xen-project/xen/-/commit/6efc654a0b529a0e4d08e5d6bb5762fee1bf1eac )
Commit Message: tools/xg: Reserialise CPU policies with the all...
Commit Author: Alejandro Vallejo
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )



Pipeline #1114808957 ( https://gitlab.com/xen-project/xen/-/pipelines/1114808957 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 6efc654a</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1114808957 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/6efc654a0b529a0e4d=
08e5d6bb5762fee1bf1eac" style=3D"color: #3777b0; text-decoration: none;">=
6efc654a</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
tools/xg: Reserialise CPU policies with the all...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/50133b2b73449e317452c72069da8553?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Alejandro Vallejo
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/4c68e59c4858f6dbd3465bd1ba226772?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111480=
8957" style=3D"color: #3777b0; text-decoration: none;">#1114808957</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65837e44623b7_2c96a1411292b--


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 00:31:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 00:31:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658429.1027555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG6xs-0007TT-2c; Thu, 21 Dec 2023 00:31:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658429.1027555; Thu, 21 Dec 2023 00:31:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG6xs-0007TM-06; Thu, 21 Dec 2023 00:31:04 +0000
Received: by outflank-mailman (input) for mailman id 658429;
 Thu, 21 Dec 2023 00:31: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=YC+f=IA=gmail.com=stefanha@srs-se1.protection.inumbo.net>)
 id 1rG6xq-0007TB-6n
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 00:31:02 +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 3663165f-9f98-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 01:30:59 +0100 (CET)
Received: by mail-oo1-xc29.google.com with SMTP id
 006d021491bc7-58d18c224c7so193299eaf.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 16:30:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3663165f-9f98-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703118658; x=1703723458; 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=gsLYJg2hZc7F0qwDgzPFuWpomum0HMcuDk3P9PIyWak=;
        b=ZGgUZIdfT4xco8+dOQCsQSbcZxDVMl1t3HChUIzCZSNlEusSUbHFW07FR4suUWZ37C
         iJDjQ3KIr2T00UJOBfR5qfA4wrNdeBb1vHnMUAZDc9/QrS4poBjaUstXII/PgO8e6Jo8
         TWGMPxSHUY58+4lM1h0sRgLm5lprdKYb1Pphgb8lvkWLy3wznwgYPj4rh6yK1c2X7tM4
         4IjQJzAHv9rZgxvGacwQq9GfvNKi6oSze7y0SAa6eO71h9Y+QP3XZw8vEGB8wy2w14w3
         ZFrrNJwK7b3atIWXDY1Eh7juiuaFpkMpG9CPgG8e6K3g4y3EbWSTaesFqrv0ujH4msXL
         Qdcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703118658; x=1703723458;
        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=gsLYJg2hZc7F0qwDgzPFuWpomum0HMcuDk3P9PIyWak=;
        b=uQk6v56l2XxAC2k7Yw5Juo48Lb93YPKZQCkgTOy/knNpCyISTbiA54U3FP1uMI7tJ7
         /fL9q9pkGHP00OO1YphcXJqhNzqk0idvIkE6BfCjnZ9MPAsl36eGh4bykenkT4vfrN+R
         RXc7ozQ7Q8kXOBMEIN456hGCSW7/pRkxOWflJ89QaW3G9umL/Xto+pDnsmK/+Ure6cUl
         nbo4V4WhifiQsh+slxQIsyqLbLnUwFsbLnOuCTkybi8/xKJS9cwbqVka2AvjUAd1Ou2N
         flCqdxZcH362MVRrD1SG2dvSKFPCFNBwlbEjgFB9Rl927B1nN1hmJVdkyBvpaQ//LXbM
         +e/A==
X-Gm-Message-State: AOJu0YxCnzK5rMuCbwLH2GUHyrSfQPUt2aXv2K6cTF9MjlYYS8ER1HwI
	Zgvf7JEgSkLdzc2Al7T+UNnyBusFA4YnvfbNtrk=
X-Google-Smtp-Source: AGHT+IFr2kCDAuf8T/rPq/xadB+JkF67xILZSPiEQrvG9KM/GrW5v5DgiTcwvBzrMkZeS6ErYGGa4o4OCSAIOzhmuoQ=
X-Received: by 2002:a4a:4b87:0:b0:593:ef7a:b7b2 with SMTP id
 q129-20020a4a4b87000000b00593ef7ab7b2mr2266100ooa.4.1703118658652; Wed, 20
 Dec 2023 16:30:58 -0800 (PST)
MIME-Version: 1.0
References: <20231205182011.1976568-1-stefanha@redhat.com> <20231205182011.1976568-5-stefanha@redhat.com>
 <ZYG2mSe1JWnC0tq_@redhat.com> <ZYHew2poxuJJRyhC@redhat.com>
In-Reply-To: <ZYHew2poxuJJRyhC@redhat.com>
From: Stefan Hajnoczi <stefanha@gmail.com>
Date: Wed, 20 Dec 2023 19:30:45 -0500
Message-ID: <CAJSP0QWkT3E+Xp_E4O9oa3iDh5wd_r3hHt0jUG6E2S3DAJafCg@mail.gmail.com>
Subject: Re: [PATCH v2 04/14] aio: make aio_context_acquire()/aio_context_release()
 a no-op
To: Kevin Wolf <kwolf@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org, 
	=?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= <philmd@linaro.org>, 
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, Cleber Rosa <crosa@redhat.com>, 
	Xie Changlong <xiechanglong.d@gmail.com>, Paul Durrant <paul@xen.org>, Ari Sundholm <ari@tuxera.com>, 
	Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>, John Snow <jsnow@redhat.com>, 
	Eduardo Habkost <eduardo@habkost.net>, Wen Congyang <wencongyang2@huawei.com>, 
	Alberto Garcia <berto@igalia.com>, Anthony Perard <anthony.perard@citrix.com>, 
	"Michael S. Tsirkin" <mst@redhat.com>, Stefano Stabellini <sstabellini@kernel.org>, qemu-block@nongnu.org, 
	Juan Quintela <quintela@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Coiby Xu <Coiby.Xu@gmail.com>, 
	Fabiano Rosas <farosas@suse.de>, Hanna Reitz <hreitz@redhat.com>, Zhang Chen <chen.zhang@intel.com>, 
	=?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>, Peter Xu <peterx@redhat.com>, 
	Emanuele Giuseppe Esposito <eesposit@redhat.com>, Fam Zheng <fam@euphon.net>, Leonardo Bras <leobras@redhat.com>, 
	David Hildenbrand <david@redhat.com>, Li Zhijian <lizhijian@fujitsu.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Tue, 19 Dec 2023 at 13:20, Kevin Wolf <kwolf@redhat.com> wrote:
>
> Am 19.12.2023 um 16:28 hat Kevin Wolf geschrieben:
> > Am 05.12.2023 um 19:20 hat Stefan Hajnoczi geschrieben:
> > > aio_context_acquire()/aio_context_release() has been replaced by
> > > fine-grained locking to protect state shared by multiple threads. The
> > > AioContext lock still plays the role of balancing locking in
> > > AIO_WAIT_WHILE() and many functions in QEMU either require that the
> > > AioContext lock is held or not held for this reason. In other words, the
> > > AioContext lock is purely there for consistency with itself and serves
> > > no real purpose anymore.
> > >
> > > Stop actually acquiring/releasing the lock in
> > > aio_context_acquire()/aio_context_release() so that subsequent patches
> > > can remove callers across the codebase incrementally.
> > >
> > > I have performed "make check" and qemu-iotests stress tests across
> > > x86-64, ppc64le, and aarch64 to confirm that there are no failures as a
> > > result of eliminating the lock.
> > >
> > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > > Reviewed-by: Eric Blake <eblake@redhat.com>
> > > Acked-by: Kevin Wolf <kwolf@redhat.com>
> >
> > I knew why I wasn't confident enough to give a R-b... This crashes
> > qemu-storage-daemon in the qemu-iotests case graph-changes-while-io.
> >
> > qemu-storage-daemon: ../nbd/server.c:2542: nbd_co_receive_request: Assertion `client->recv_coroutine == qemu_coroutine_self()' failed.
> >
> > (gdb) bt
> > #0  0x00007fdb00529884 in __pthread_kill_implementation () from /lib64/libc.so.6
> > #1  0x00007fdb004d8afe in raise () from /lib64/libc.so.6
> > #2  0x00007fdb004c187f in abort () from /lib64/libc.so.6
> > #3  0x00007fdb004c179b in __assert_fail_base.cold () from /lib64/libc.so.6
> > #4  0x00007fdb004d1187 in __assert_fail () from /lib64/libc.so.6
> > #5  0x0000557f9f9534eb in nbd_co_receive_request (errp=0x7fdafc25eec0, request=0x7fdafc25ef10, req=0x7fdaf00159c0) at ../nbd/server.c:2542
> > #6  nbd_trip (opaque=0x557fa0b33fa0) at ../nbd/server.c:2962
> > #7  0x0000557f9faa416b in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at ../util/coroutine-ucontext.c:177
> > #8  0x00007fdb004efe90 in ?? () from /lib64/libc.so.6
> > #9  0x00007fdafc35f680 in ?? ()
> > #10 0x0000000000000000 in ?? ()
> > (gdb) p *client
> > $2 = {refcount = 4, close_fn = 0x557f9f95dc40 <nbd_blockdev_client_closed>, exp = 0x557fa0b30590, tlscreds = 0x0, tlsauthz = 0x0, sioc = 0x557fa0b33d90, ioc = 0x557fa0b33d90,
> >   recv_coroutine = 0x7fdaf0015eb0, send_lock = {locked = 0, ctx = 0x0, from_push = {slh_first = 0x0}, to_pop = {slh_first = 0x0}, handoff = 0, sequence = 0, holder = 0x0},
> >   send_coroutine = 0x0, read_yielding = false, quiescing = false, next = {tqe_next = 0x0, tqe_circ = {tql_next = 0x0, tql_prev = 0x557fa0b305e8}}, nb_requests = 1, closing = false,
> >   check_align = 1, mode = NBD_MODE_EXTENDED, contexts = {exp = 0x557fa0b30590, count = 1, base_allocation = true, allocation_depth = false, bitmaps = 0x0}, opt = 7, optlen = 0}
> > (gdb) p co_tls_current
> > $3 = (Coroutine *) 0x7fdaf00061d0
>
> This one isn't easy to debug...
>
> The first problem here is that two nbd_trip() coroutines are scheduled
> in the same iothread, and creating the second one overwrites
> client->recv_coroutine, which triggers the assertion in the first one.
>
> This can be fixed by introducing a new mutex in NBDClient and taking it
> in nbd_client_receive_next_request() so that there is no race between
> checking client->recv_coroutine != NULL and setting it to a new
> coroutine. (Not entirely sure why two different threads are doing this,
> maybe the main thread reentering in drained_end and the iothread waiting
> for the next request?)
>
> However, I'm seeing new assertion failures when I do that:
> client->quiescing isn't set in the -EAGAIN case in nbd_trip(). I haven't
> really figured out yet where this comes from. Taking the new NBDClient
> lock in the drain functions and in nbd_trip() doesn't seem to be enough
> to fix it anyway. Or maybe I didn't quite find the right places to take
> it.

bdrv_graph_wrlock() -> bdrv_drain_all_begin_nopoll() followed by
bdrv_drain_all_end() causes this issue.

It's a race condition where nbd_trip() in the IOThread sees
client->quiescing == true for a moment but then the drained region
ends before nbd_trip() re-acquires the lock and reaches
assert(client->quiescing).

The "nopoll" part of bdrv_drain_all_begin_nopoll() seems to be the
issue. We cannot assume all requests have quiesced when .drained_end()
is called.

I'm running more tests now to be sure I have a working solution. Will
send patches soon.

Stefan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 01:35:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 01:35:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658434.1027567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG7xj-0005rX-Hm; Thu, 21 Dec 2023 01:34:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658434.1027567; Thu, 21 Dec 2023 01: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 1rG7xj-0005rQ-CR; Thu, 21 Dec 2023 01:34:59 +0000
Received: by outflank-mailman (input) for mailman id 658434;
 Thu, 21 Dec 2023 01:34: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 1rG7xi-0005rG-8f; Thu, 21 Dec 2023 01:34: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 1rG7xi-00024U-0G; Thu, 21 Dec 2023 01:34: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 1rG7xh-0006yJ-DF; Thu, 21 Dec 2023 01:34:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rG7xh-0005fY-8C; Thu, 21 Dec 2023 01:34: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=B3GwDDBkaWTpuygw5T3vu5X4I9QHCuObfmB/h/2JObA=; b=Dv4pc6xc3USOYW9WTywkrE3CHY
	YhauKoS6nSk57RqXIGi0efEcUmAfz6ksSoezqq+cL7DTXdHgceNOaatZAsAawWscu/PG2xZOrTCyH
	pr/Dv6Adwo7OIzk8lrWt94x7UwIrif+fjVc1b3X4vgGny5YByWy3vXmVPmCXgj+9SVSU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184195-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184195: 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=6efc654a0b529a0e4d08e5d6bb5762fee1bf1eac
X-Osstest-Versions-That:
    xen=e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 01:34:57 +0000

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

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                  6efc654a0b529a0e4d08e5d6bb5762fee1bf1eac
baseline version:
 xen                  e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0

Last test of basis   184193  2023-12-20 19:02:09 Z    0 days
Testing same since   184195  2023-12-20 22:00:27 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alejandro Vallejo <alejandro.vallejo@cloud.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  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
   e9786ba9ee..6efc654a0b  6efc654a0b529a0e4d08e5d6bb5762fee1bf1eac -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 01:42:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 01:42:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658442.1027575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rG85A-0007aC-8M; Thu, 21 Dec 2023 01:42:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658442.1027575; Thu, 21 Dec 2023 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 1rG85A-0007a5-5v; Thu, 21 Dec 2023 01:42:40 +0000
Received: by outflank-mailman (input) for mailman id 658442;
 Thu, 21 Dec 2023 01:42: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 1rG858-0007Zv-8G; Thu, 21 Dec 2023 01:42: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 1rG858-0002Dn-1i; Thu, 21 Dec 2023 01:42: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 1rG857-0007Wr-L6; Thu, 21 Dec 2023 01:42:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rG857-0001UM-KZ; Thu, 21 Dec 2023 01:42: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=/4xgeKhCE7qjyxUV2YUG8cbQsDqPIV8wZKcvcydveP8=; b=Etip9nBsA9Tn7tF0J5d4NluV7O
	gDFSlVmOqdS+SoZSDLyShu4uSJtt7TBc3fvzplpL12Bkp/yEO+/c2UHDeLLvRI6cueQVJvCKX8Z7Y
	LAfTtUy/pTE30MgJuf0X4abn+NUXJZroqzqNZqozFFl75S1XWGNK+QN6qA4OQbnyI7Nw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184196-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184196: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=89705ad6c6342e3bd635bed89608e25f74372600
X-Osstest-Versions-That:
    ovmf=a83d953dc2741f650cc273f39fe803ae406b0fad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 01:42:37 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 89705ad6c6342e3bd635bed89608e25f74372600
baseline version:
 ovmf                 a83d953dc2741f650cc273f39fe803ae406b0fad

Last test of basis   184185  2023-12-20 02:43:17 Z    0 days
Testing same since   184196  2023-12-20 23:14:52 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Rebecca Cran <rebecca@os.amperecomputing.com>
  Yuwei Chen <yuwei.chen@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    
 test-amd64-i386-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
   a83d953dc2..89705ad6c6  89705ad6c6342e3bd635bed89608e25f74372600 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 05:01:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 05:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658452.1027586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGBAz-0005CA-FD; Thu, 21 Dec 2023 05:00:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658452.1027586; Thu, 21 Dec 2023 05:00: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 1rGBAz-0005C3-Aa; Thu, 21 Dec 2023 05:00:53 +0000
Received: by outflank-mailman (input) for mailman id 658452;
 Thu, 21 Dec 2023 05:00: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 1rGBAy-0005Bt-2L; Thu, 21 Dec 2023 05:00: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 1rGBAx-0006sS-RR; Thu, 21 Dec 2023 05:00: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 1rGBAx-0001WS-CB; Thu, 21 Dec 2023 05:00:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGBAx-0004vH-Bl; Thu, 21 Dec 2023 05:00: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=kEzxHS09Km2eVN8QrwLrc5QZTbMKIZTV77BOeUJ/eCY=; b=aqtVW4XvgW/Kz8puhDz1rMmi4z
	REXlLKYK/H7/uQjkdoFfKjS29wLde53fupIKMWi9V3GGgq71T4AUGsJR243I9ixQH5p3YeZ8rpe5v
	oayczPJu2kTmJ6pe+78RGs1ta/or7RmfAZXJiv7LRgbeJJd9HY4sLodCDnxbvtuT53X8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184198-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184198: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=9f0061a03b61d282fbc0ba5be22155d06a5e64a1
X-Osstest-Versions-That:
    ovmf=89705ad6c6342e3bd635bed89608e25f74372600
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 05:00:51 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 9f0061a03b61d282fbc0ba5be22155d06a5e64a1
baseline version:
 ovmf                 89705ad6c6342e3bd635bed89608e25f74372600

Last test of basis   184196  2023-12-20 23:14:52 Z    0 days
Testing same since   184198  2023-12-21 01:57:56 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Joey Vagedes <joey.vagedes@gmail.com>
  Joey Vagedes via groups.io <joeyvagedes=microsoft.com@groups.io>

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    
 test-amd64-i386-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
   89705ad6c6..9f0061a03b  9f0061a03b61d282fbc0ba5be22155d06a5e64a1 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 05:30:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 05:30:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658450.1027596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGBdc-0000NZ-Me; Thu, 21 Dec 2023 05:30:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658450.1027596; Thu, 21 Dec 2023 05:30:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGBdc-0000NS-Jx; Thu, 21 Dec 2023 05:30:28 +0000
Received: by outflank-mailman (input) for mailman id 658450;
 Thu, 21 Dec 2023 03:24:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fZmI=IA=gmail.com=haokexin@srs-se1.protection.inumbo.net>)
 id 1rG9fU-0002cf-7o
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 03:24:16 +0000
Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com
 [2607:f8b0:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69f05a7b-9fb0-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 04:24:14 +0100 (CET)
Received: by mail-ot1-x336.google.com with SMTP id
 46e09a7af769-6dbb7d80df8so110494a34.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 19:24:14 -0800 (PST)
Received: from pek-lpggp6.wrs.com (unknown-105-121.windriver.com.
 [147.11.105.121]) by smtp.gmail.com with ESMTPSA id
 t26-20020a62d15a000000b006d757ef7541sm513489pfl.209.2023.12.20.19.24.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Dec 2023 19:24:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69f05a7b-9fb0-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703129053; x=1703733853; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=ZzObqHbWeNKxitmoVg0oGbTzko+SYVdSYHcCza/qiow=;
        b=WS9TwwnxGOkardc9566wmrrVjlDBjx+GnzYuFA40CHDi+FjWADCPibY+P+ECGlF1F7
         lAiuPQOsDFh/Vk9ZEN5K1LZ3bjhSdgEAgisfF3Tc36RphmW5BYzD6KPfHcI8DCU+JFas
         q19jxmhthLw65jw85oR1kPAxgPHC0JCju3QAzlfLVNj/+4Cot/yp4Y78YNs+0j5INaS1
         RFVpkfxpQehllgcEacC2tJhtQSmk3TTKQeLtXBMlyXO3BdbLtdAmeoyrmOXLVL+P3oRu
         7wTI7S0EijJYpHawaLIAlsG2OjgmPrUlxcL1D5onMOAflU6qL6gngrkfnzRM0OpTKLjm
         JOsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703129053; x=1703733853;
        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=ZzObqHbWeNKxitmoVg0oGbTzko+SYVdSYHcCza/qiow=;
        b=mY1kU9kCHRKdCi3oQda0LZn7gVgJQEuY18oVrRT8M/cAg7KaugOOl3LTc1ctyI1hiN
         u4Q10h7uD02I6U/81hx4a4W8n/85mZPBxJq+wnZnFmfLaPwwjWm3KLTxKaS1Rn1sAJj+
         yv5Mur8ExP74XaRTX74OX0R0DhtgLOhr3bdsVYkg5BdykmeMCQh3gK3unJjFJYROIUqQ
         fjg5NktHdRz/vJQKq/GajDgoaL0CvPz5LH73vRnIRV3H5D0aD0/zQdu0fpAeqpwxkgyR
         Br5jtTcJWO2bctQEVhp6RA3cXeKOiZpVdAsO5OnRhWoJxW0+NfXAmReO8JXlJmTKUWK1
         TBbA==
X-Gm-Message-State: AOJu0Ywdo63Zr3USXbiRDSS63jXaimxUIazbuyvPoeDfx/NCBjDN8RuB
	6tk13MI2IjpRj3bdjSC+8ag=
X-Google-Smtp-Source: AGHT+IGqO69HbozDdaHzdkdh97/2e+jmgHJdDzIFmqXLEgdVLBzcOqGONSlcV0qLIbSY7SsabkStTg==
X-Received: by 2002:a9d:7518:0:b0:6d9:ebaf:a5fa with SMTP id r24-20020a9d7518000000b006d9ebafa5famr19611013otk.54.1703129052973;
        Wed, 20 Dec 2023 19:24:12 -0800 (PST)
From: Kevin Hao <haokexin@gmail.com>
To: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jens Axboe <axboe@kernel.dk>
Cc: xen-devel@lists.xenproject.org,
	linux-block@vger.kernel.org,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Pavel Machek <pavel@ucw.cz>
Subject: [PATCH] xen-blkback: Use freezable wait_event variants for freezable kthread
Date: Thu, 21 Dec 2023 11:23:51 +0800
Message-Id: <20231221032351.1638686-1-haokexin@gmail.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A freezable kernel thread can enter frozen state during freezing by
either calling try_to_freeze() or using wait_event_freezable() and its
variants. So for the following snippet of code in a kernel thread loop:
  try_to_freeze();
  wait_event_interruptible();

We can change it to a simple wait_event_freezable() and then eliminate
a function call.

Signed-off-by: Kevin Hao <haokexin@gmail.com>
---
 drivers/block/xen-blkback/blkback.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
index 4defd7f387c7..bef0f950b257 100644
--- a/drivers/block/xen-blkback/blkback.c
+++ b/drivers/block/xen-blkback/blkback.c
@@ -563,20 +563,18 @@ int xen_blkif_schedule(void *arg)
 
 	set_freezable();
 	while (!kthread_should_stop()) {
-		if (try_to_freeze())
-			continue;
 		if (unlikely(vbd->size != vbd_sz(vbd)))
 			xen_vbd_resize(blkif);
 
 		timeout = msecs_to_jiffies(LRU_INTERVAL);
 
-		timeout = wait_event_interruptible_timeout(
+		timeout = wait_event_freezable_timeout(
 			ring->wq,
 			ring->waiting_reqs || kthread_should_stop(),
 			timeout);
 		if (timeout == 0)
 			goto purge_gnt_list;
-		timeout = wait_event_interruptible_timeout(
+		timeout = wait_event_freezable_timeout(
 			ring->pending_free_wq,
 			!list_empty(&ring->pending_free) ||
 			kthread_should_stop(),
@@ -593,8 +591,8 @@ int xen_blkif_schedule(void *arg)
 		if (ret > 0)
 			ring->waiting_reqs = 1;
 		if (ret == -EACCES)
-			wait_event_interruptible(ring->shutdown_wq,
-						 kthread_should_stop());
+			wait_event_freezable(ring->shutdown_wq,
+					     kthread_should_stop());
 
 		if (do_eoi && !ring->waiting_reqs) {
 			xen_irq_lateeoi(ring->irq, eoi_flags);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 05:39:20 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 05:39:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658463.1027606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGBm6-000128-Id; Thu, 21 Dec 2023 05:39:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658463.1027606; Thu, 21 Dec 2023 05: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 1rGBm6-000121-FH; Thu, 21 Dec 2023 05:39:14 +0000
Received: by outflank-mailman (input) for mailman id 658463;
 Thu, 21 Dec 2023 05: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=QwbI=IA=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1rGBm5-00011r-RQ
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 05:39:13 +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 44b8e112-9fc3-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 06:39:11 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a233a60f8feso39354766b.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 21:39:11 -0800 (PST)
Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com.
 [209.85.218.50]) by smtp.gmail.com with ESMTPSA id
 e2-20020a170906374200b00a1d2b0d4500sm549857ejc.168.2023.12.20.21.39.09
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 21:39:09 -0800 (PST)
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-a2331caab22so37608866b.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 21:39:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44b8e112-9fc3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linuxfoundation.org; s=google; t=1703137151; x=1703741951; 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=I4Z30xKd74ObUozsJeNEksBVIOfy4kYjAEpzTgDQdMk=;
        b=D1bwxMVvwe+IOSpjC6nW6gRlIUiu7hJCaNn9m2eUHcqUg0Bu0dVaLpQcohn9Vmnfek
         YkSDfutSY6lJ3detqdtDuAhMoV3MqB0RaNBThZEsZbr+VG2rLQ+p1Qu0kjypDxN0FE59
         69vFdW2d4243qYIqllAsjDFSYRqvpxzH9IO8I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703137151; x=1703741951;
        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=I4Z30xKd74ObUozsJeNEksBVIOfy4kYjAEpzTgDQdMk=;
        b=Ric8/stA1sJn0kGA/eGvTwBR2Zk/nnYHw1941aryHsS3VTOeZuZQBXdP/fQiBCmzYf
         Q9i2VAxl1xzVegwO6/+mALjIorLuwmKkxc/ffI0tpLDgvPee/0ya/gPek9xNY0qL/Yc5
         kjT+zwgUkFTgSS1Ce6MNkOlJI3aYSuCs6rqYy1e0zBUqIg76PrZFbMTwcvYiNlncOTEU
         p4pOeucXcggFOq+xVJVlV+v3SGY02k6Vm/afXEIIUVNxwv5g5+3Xr3WDqZL6ucCQ4Rhi
         U/6mIlDOpIFxs+rCHuiDDu4SypnMFp9NhaP262AxXGPGlAzwW33WGGWkI71jRKrcxXVY
         7N6w==
X-Gm-Message-State: AOJu0YwoKm7/Q1ByEVHL1+okfDZtJyvK2XkyRTXkELUfXfONGgA0tV6S
	xx7fvg/p+jUgWpH7voKXc13EYRzXLO8UWaS71ewfRTO/
X-Google-Smtp-Source: AGHT+IE6KNsIBNzbyeuC/L7g2fb5k0lQTB07Gfji4gKDjtsk6SC0IKGohQsgJFQP+VXW+zIAoGhi1w==
X-Received: by 2002:a17:906:1004:b0:a23:6ea2:de83 with SMTP id 4-20020a170906100400b00a236ea2de83mr2355594ejm.1.1703137151011;
        Wed, 20 Dec 2023 21:39:11 -0800 (PST)
X-Received: by 2002:a17:906:27d4:b0:a23:6493:7211 with SMTP id
 k20-20020a17090627d400b00a2364937211mr2723108ejc.114.1703137148904; Wed, 20
 Dec 2023 21:39:08 -0800 (PST)
MIME-Version: 1.0
References: <202312191507.348721d2-oliver.sang@intel.com> <20231219095821.GAZYFpPUSKexZAcl05@fat_crate.local>
 <CAHk-=wimbX8UF6ECo53Hm4Vz0tCC7jjN9e3tEhZfoEtsxyfU-A@mail.gmail.com>
 <87013f74-5828-4bef-848b-ffedde8e86f5@citrix.com> <CAHk-=wh=z-aXw6o8Hi9SiC5-vwP403-ZpDHUOXdXmLbaG93dvQ@mail.gmail.com>
 <CAHk-=whfpRxuucUL1oguRivq0e7JSxNWC2p_6gvKriNTHmr0UQ@mail.gmail.com> <CABCJKud8PG_ho79it34JxHG07n_Kbe9SLeBkEJwMYP_kS80D_g@mail.gmail.com>
In-Reply-To: <CABCJKud8PG_ho79it34JxHG07n_Kbe9SLeBkEJwMYP_kS80D_g@mail.gmail.com>
From: Linus Torvalds <torvalds@linuxfoundation.org>
Date: Wed, 20 Dec 2023 21:38:51 -0800
X-Gmail-Original-Message-ID: <CAHk-=wgQvNhB+7nwUkWs8jkh8qbd0nipotYhhghFSVBNNoagcQ@mail.gmail.com>
Message-ID: <CAHk-=wgQvNhB+7nwUkWs8jkh8qbd0nipotYhhghFSVBNNoagcQ@mail.gmail.com>
Subject: Re: [linus:master] [x86/entry] be5341eb0d: WARNING:CPU:#PID:#at_int80_emulation
To: Sami Tolvanen <samitolvanen@google.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Borislav Petkov <bp@alien8.de>, 
	kernel test robot <oliver.sang@intel.com>, Thomas Gleixner <tglx@linutronix.de>, oe-lkp@lists.linux.dev, 
	lkp@intel.com, linux-kernel@vger.kernel.org, 
	Dave Hansen <dave.hansen@linux.intel.com>, 
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Wed, 20 Dec 2023 at 15:40, Sami Tolvanen <samitolvanen@google.com> wrote:
>
> I tested the patch with the 0-day bot reproducer and it does fix the
> warning. My usual arm64 and riscv configs also seem to build and boot
> just fine.

Thanks. I've been running it on my machine too, and still don't see
anything wrong with it..

I suspect all sane people are already on xmas break, which explains
why people are being quiet. They _should_ be.

But since I'm not in that sane group, I decided to just bypass the
normal channels and apply it directly.

It really isn't all that critical, since I don't expect anybody to
actually disable the posix timer subsystem: I think the config
variable came out of the kernel minimization project, and it's
probably much more likely that people turn off CFI (particularly since
you afaik still need to build with clang to get it) than that they'd
turn off the posix timer support.

But I think it's a worthy cleanup of some messy system call macros, so
I wanted to put this behind us whether it truly matters or not.

            Linus


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 05:43:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 05:43:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658470.1027616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGBqW-0002hV-5D; Thu, 21 Dec 2023 05:43:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658470.1027616; Thu, 21 Dec 2023 05:43: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 1rGBqW-0002hO-21; Thu, 21 Dec 2023 05:43:48 +0000
Received: by outflank-mailman (input) for mailman id 658470;
 Thu, 21 Dec 2023 05:43: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=1W3I=IA=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rGBqU-0002hI-N4
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 05:43:46 +0000
Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com
 [2607:f8b0:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e71add7d-9fc3-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 06:43:44 +0100 (CET)
Received: by mail-pg1-x530.google.com with SMTP id
 41be03b00d2f7-5ca29c131ebso349263a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 21:43:44 -0800 (PST)
Received: from [157.82.205.15] ([157.82.205.15])
 by smtp.gmail.com with ESMTPSA id
 p14-20020aa7860e000000b006d7051f1fa4sm692309pfn.102.2023.12.20.21.43.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 21:43:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e71add7d-9fc3-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1703137423; x=1703742223; 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=8Sg4XTORipdMJilZwtaZ1foO2eUm0Kr7Yfx7emFr720=;
        b=MUiU9/ItlykUUoUMo7KbYF7vm+h94R1LQOD1gCzBlRQZmRTqyhpBa9uoI/wsEe4dIf
         yDnheg7INJLyfLBP7MrWXhwvfdqwg9G2nWFu7Gfm6HYv/h3zGQrGMIrqsZRXNa9/ia0i
         hvbm0L8JFX3cJB8TBZ4wzQC+pxjysZihlkA5a0mu9vmZAflfP+yUiQIicpFqCBSxQys6
         mZrQcOh6KoOZ2wylpStk7XaKPQjx4NcHL53Cdj7uu44XENnBLAwrdw29lGEYbOFTDw7U
         9zvX2xaAesIWMXVvo6EYToDxy/+JDpGdWKRUrE78YK5RqeVkh3C2x3cNvUIUYE/iluzU
         sHkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703137423; x=1703742223;
        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=8Sg4XTORipdMJilZwtaZ1foO2eUm0Kr7Yfx7emFr720=;
        b=t8ZT1UrRR7fWDf+vLJZPI7eQwkL1htrm03cWe3/vs3oTB2j8T7BH/KTgXe1JOIgnme
         ok37SOIV8YA3lkqzXprHs8yMIaNQrLsCpoRzUooMSdaePrQQ8kktFD8KKJ4qCvj42cxp
         MurKtNZYZ8ntjv9Jv3C6Mt/+3oL5IAWHdp8KfIbTDMS4duhj5CBpdUt99EsGxAoGAHy9
         M0CCY2HtHjMMBLZhFE+cYuEtDXhus5sQGsVGVxs32mT1N16mY/zztSei1qsRIYtcZkEL
         rlTvbsSy7dwmCuE38YS+2ZqjodNiYYDNgWW3OFHo0WjfV3ijQl5ObgZgLlLkfYdXWB+A
         3/HQ==
X-Gm-Message-State: AOJu0YxYZnv1VeCy9qBBpN5d9dDa3bkOr+y5bTdEHrNmXhlyH4ltWtcd
	nvxD2EfK35m1JE1cBTCb0E5Gvg==
X-Google-Smtp-Source: AGHT+IEIyTgUa9cBQ6ZLv2LyJbVU+SrLut2YfLaDggNwHO+ruZ5n7whxbib9TSEle6uK/7uxaE7klQ==
X-Received: by 2002:a05:6a20:2452:b0:194:cf29:1ca0 with SMTP id t18-20020a056a20245200b00194cf291ca0mr1050217pzc.93.1703137423445;
        Wed, 20 Dec 2023 21:43:43 -0800 (PST)
Message-ID: <c5d9e074-de7c-4056-becc-8fd1ce24f3e4@daynix.com>
Date: Thu, 21 Dec 2023 14:43:37 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 05/11] virtio-gpu: Introduce virgl_gpu_resource
 structure
Content-Language: en-US
To: Huang Rui <ray.huang@amd.com>
Cc: =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Gurchetan Singh <gurchetansingh@chromium.org>,
 "ernunes@redhat.com" <ernunes@redhat.com>, Alyssa Ross <hi@alyssa.is>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Pelloux-Prayer, Pierre-Eric" <Pierre-eric.Pelloux-prayer@amd.com>,
 "Huang, Honglei1" <Honglei1.Huang@amd.com>,
 "Zhang, Julia" <Julia.Zhang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-6-ray.huang@amd.com>
 <3105531c-bfc4-4421-a197-4ab8ddb9f4a5@daynix.com> <ZYGaWs6OmZpaMH46@amd.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <ZYGaWs6OmZpaMH46@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/19 22:27, Huang Rui wrote:
> On Tue, Dec 19, 2023 at 08:35:27PM +0800, Akihiko Odaki wrote:
>> On 2023/12/19 16:53, Huang Rui wrote:
>>> Introduce a new virgl_gpu_resource data structure and helper functions
>>> for virgl. It's used to add new member which is specific for virgl in
>>> following patches of blob memory support.
>>
>> The name is ambigious. It should tell that it's specific for virgl.
> 
> How about "virgl_resource" which inherits virtio_gpu_simple_resource? But
> this name is exactly same with the name in virglrenderer.

You can prefix it with virtio_gpu_virgl as virtio_gpu_virgl_init() and 
other functions do.

Regards,
Akihiko Odaki


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 05:45:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 05:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658473.1027626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGBsM-0003Eu-Fq; Thu, 21 Dec 2023 05:45:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658473.1027626; Thu, 21 Dec 2023 05:45: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 1rGBsM-0003En-Cw; Thu, 21 Dec 2023 05:45:42 +0000
Received: by outflank-mailman (input) for mailman id 658473;
 Thu, 21 Dec 2023 05:45: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=1W3I=IA=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rGBsL-0003Ed-EJ
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 05:45:41 +0000
Received: from mail-oo1-xc30.google.com (mail-oo1-xc30.google.com
 [2607:f8b0:4864:20::c30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a9526f2-9fc4-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 06:45:38 +0100 (CET)
Received: by mail-oo1-xc30.google.com with SMTP id
 006d021491bc7-59417406825so166881eaf.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 21:45:37 -0800 (PST)
Received: from [157.82.205.15] ([157.82.205.15])
 by smtp.gmail.com with ESMTPSA id
 q34-20020a63f962000000b0059b2316be86sm713948pgk.46.2023.12.20.21.45.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 21:45:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a9526f2-9fc4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1703137536; x=1703742336; 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=pYgbZX5oCxCQw3VEkezO/vga4YX/OVJ5osQ8+MorHmg=;
        b=nR5aRgXGKnD5Qzufz1X20pvPcCIp7aDyvLzUYN0fShd1LzUp6rCKyneg5KMg2u2igy
         jLtmQkSdhH8sjhWe48ZIKFIw38QkGa3ZdiaIPBF/SBNdIbYYJJdMiwpGb4jmVP8BuD2u
         f4vlUpVZIxnNUdAtjo500VC8wejsv4GeeVQJffBbRHotZdFYAlEBQEZv0Mk5t5+tZNdu
         5o19x1dxRphI4wbhTIyImd+0EkJyhXV4LbHfIbxjgCWPrZHrAOyOawrz9YdTPeuW8JNo
         UZiw0iDmkNUAM42t1+z2s/W1IDvFXYAQgEW2vDlyXyjSwWyYJbLU6G3ReTwoVGeoqKDT
         Lkuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703137536; x=1703742336;
        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=pYgbZX5oCxCQw3VEkezO/vga4YX/OVJ5osQ8+MorHmg=;
        b=AQ8KUK7sfJhdyyPy2X+8IIOIOE9Ea66FcmXrb1rhN5/osXVWsRyH5KeByqMijQTmBC
         6LgqGqQrgOZY1/nhuoAB9T8HQ5Ndd9EnJM4UIzUrJpnPHAX1/eFac1sYg0D+Q6W4eQJn
         n6bx4y7/rNW3eI80u3xBLxYkOdxQRpvF/dopr2LPrhkvxxBlmk6XnxL4/RGLxBdaBK9D
         Ps54F13WII4el1/+ywVaTtUPd28Nv+6CHdPJwG+jBA0Q+DM1B78nsMh0x+YEEIrx5yyb
         y1LfbzWG07Km5zQz6ccCIkhALwYVwTdwrpUdUzgu6va6Dsfmy+52GRF22TcI2ltNEV81
         qAcQ==
X-Gm-Message-State: AOJu0Yx0F0QrMzSYoDdLI892n1CJN3n6LhrruSiC7hbRN17IeuG7CdiB
	RRDPvPBaGn37f++I1Rvre9VeYA==
X-Google-Smtp-Source: AGHT+IE01jjYRJY2nG5j+/EQsT2ho4uIRHCQQSrz97BxpLgOmSpO+kuxuXOUcaUgxjTijO+11eelNA==
X-Received: by 2002:a05:6808:2e4c:b0:3ba:205d:452 with SMTP id gp12-20020a0568082e4c00b003ba205d0452mr13773760oib.92.1703137536578;
        Wed, 20 Dec 2023 21:45:36 -0800 (PST)
Message-ID: <a88696bc-2ffe-442a-a171-50e6120bbf97@daynix.com>
Date: Thu, 21 Dec 2023 14:45:29 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 06/11] softmmu/memory: enable automatic deallocation of
 memory regions
Content-Language: en-US
To: Huang Rui <ray.huang@amd.com>,
 =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: xen-devel@lists.xenproject.org,
 Gurchetan Singh <gurchetansingh@chromium.org>, ernunes@redhat.com,
 Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alex Deucher <alexander.deucher@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
 Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-7-ray.huang@amd.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <20231219075320.165227-7-ray.huang@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/19 16:53, Huang Rui wrote:
> From: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
> 
> When the memory region has a different life-cycle from that of her parent,
> could be automatically released, once has been unparent and once all of her
> references have gone away, via the object's free callback.
> 
> However, currently, the address space subsystem keeps references to the
> memory region without first incrementing its object's reference count.
> As a result, the automatic deallocation of the object, not taking into
> account those references, results in use-after-free memory corruption.
> 
> More specifically, reference to the memory region is kept in flatview
> ranges. If the reference count of the memory region is not incremented,
> flatview_destroy(), that is asynchronous, may be called after memory
> region's destruction. If the reference count of the memory region is
> incremented, memory region's destruction will take place after
> flatview_destroy() has released its references.
> 
> This patch increases the reference count of an owned memory region object
> on each memory_region_ref() and decreases it on each memory_region_unref().

Why not pass the memory region itself as the owner parameter of 
memory_region_init_ram_ptr()?


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 05:57:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 05:57:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658480.1027636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGC40-0005Gb-HU; Thu, 21 Dec 2023 05:57:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658480.1027636; Thu, 21 Dec 2023 05: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 1rGC40-0005GU-Eu; Thu, 21 Dec 2023 05:57:44 +0000
Received: by outflank-mailman (input) for mailman id 658480;
 Thu, 21 Dec 2023 05:57: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=1W3I=IA=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rGC3y-0005GO-Um
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 05:57:42 +0000
Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com
 [2607:f8b0:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d93d2991-9fc5-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 06:57:40 +0100 (CET)
Received: by mail-pl1-x630.google.com with SMTP id
 d9443c01a7336-1d3ce28ac3cso2326605ad.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 21:57:40 -0800 (PST)
Received: from [157.82.205.15] ([157.82.205.15])
 by smtp.gmail.com with ESMTPSA id
 d11-20020a170902c18b00b001d3f056bd65sm706571pld.191.2023.12.20.21.57.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 21:57:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d93d2991-9fc5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1703138259; x=1703743059; 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=7Rcc45KsdcmjGxxLc8UIdrrEhZeaVWgm/MkKyVTozcM=;
        b=yUNDOpnzRLiyUnEEcu/gRc2SQ0fei8bz5K8Sc6HFChBWbDxmZABSZrISaUKSeEpr+q
         xgD6CdO6wZrIf7SzfqFMdPy+Ucm4UViqbHkG+bXlUN5IiSwKnX107g4E3J4EZcrmlaTW
         rVeQF+Nc5zkBUHwIb3w6G1+35HEQBDtacwN07z751z7nFUPUHOBJHMlk9k+7EZ1/CVy9
         Aefdj1USwBj4h2DU1ZbihzSX/N0KViNObIon5MWpZxA7bIAAYur/O89UWwfxvU6OSl20
         7KwCQzsqQoIkbae4bfyNrmcRKqnCvxt1kgRmQos0Evdoawhj4agp3AOGNcFOAkuLN4aE
         jsug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703138259; x=1703743059;
        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=7Rcc45KsdcmjGxxLc8UIdrrEhZeaVWgm/MkKyVTozcM=;
        b=ws0SfVeFVOZG5jqsWgRvLUOwqUoKkDoGxfd13KwPH+HZY453G7xthT/H01TiEYwRTl
         qGJfzickIOIuRx817Nz3K4MnCtAbmtPexuS1d+ewxLtEI0hb2sfwf/A4bUj7kLvgt3sp
         O4Irzta87auvP2gnNFwWRIZFQ0kHa+6UNvwbJVtp8FK2p37y2ScZgo7WqSponrKaZ3JN
         1d+ZxliaRrmUFmC48xm9cXgebI4uewnBfyDzbyMvX5NYmDO/xDpOj7Lgo3baUPA0vlqC
         ET6BAVjktVHNLvpOHm+PeYZkY3j/ATh2vmvmslaIiAVIHBfxZJ21RHWbtJYWH9vCa0mV
         y3cg==
X-Gm-Message-State: AOJu0YxNduuG9BVo7IGjZovXoIUDEztNjX/ov9/aLHHHmhg50ZxqjRnc
	t20mvqLShxGkDi5GDDKaJiFuqA==
X-Google-Smtp-Source: AGHT+IHGw0/xJGMfpNai3w9B7992IeeEENPNFYUbvUzBvYTZo9zWw6/R2YYwCA50v8JBAqb4YhbKsw==
X-Received: by 2002:a17:902:c451:b0:1d3:e9f5:d3aa with SMTP id m17-20020a170902c45100b001d3e9f5d3aamr1549392plm.45.1703138259056;
        Wed, 20 Dec 2023 21:57:39 -0800 (PST)
Message-ID: <9ee393a7-283c-41b2-a7bb-5e3306c0257e@daynix.com>
Date: Thu, 21 Dec 2023 14:57:32 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 07/11] virtio-gpu: Handle resource blob commands
Content-Language: en-US
To: Huang Rui <ray.huang@amd.com>,
 =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: xen-devel@lists.xenproject.org,
 Gurchetan Singh <gurchetansingh@chromium.org>, ernunes@redhat.com,
 Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alex Deucher <alexander.deucher@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
 Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>,
 Antonio Caggiano <antonio.caggiano@collabora.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-8-ray.huang@amd.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <20231219075320.165227-8-ray.huang@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/19 16:53, Huang Rui wrote:
> From: Antonio Caggiano <antonio.caggiano@collabora.com>
> 
> Support BLOB resources creation, mapping and unmapping by calling the
> new stable virglrenderer 0.10 interface. Only enabled when available and
> via the blob config. E.g. -device virtio-vga-gl,blob=true
> 
> Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
> Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
> Signed-off-by: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> ---
> 
> Changes in v6:
> - Use new struct virgl_gpu_resource.
> - Unmap, unref and destroy the resource only after the memory region
>    has been completely removed.
> - In unref check whether the resource is still mapped.
> - In unmap_blob check whether the resource has been already unmapped.
> - Fix coding style
> 
>   hw/display/virtio-gpu-virgl.c | 274 +++++++++++++++++++++++++++++++++-
>   hw/display/virtio-gpu.c       |   4 +-
>   meson.build                   |   4 +
>   3 files changed, 276 insertions(+), 6 deletions(-)
> 
> diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
> index faab374336..5a3a292f79 100644
> --- a/hw/display/virtio-gpu-virgl.c
> +++ b/hw/display/virtio-gpu-virgl.c
> @@ -17,6 +17,7 @@
>   #include "trace.h"
>   #include "hw/virtio/virtio.h"
>   #include "hw/virtio/virtio-gpu.h"
> +#include "hw/virtio/virtio-gpu-bswap.h"
>   
>   #include "ui/egl-helpers.h"
>   
> @@ -24,8 +25,62 @@
>   
>   struct virgl_gpu_resource {
>       struct virtio_gpu_simple_resource res;
> +    uint32_t ref;
> +    VirtIOGPU *g;
> +
> +#ifdef HAVE_VIRGL_RESOURCE_BLOB
> +    /* only blob resource needs this region to be mapped as guest mmio */
> +    MemoryRegion *region;

Why not just embed MemoryRegion into struct virgl_gpu_resource instead 
of having a pointer?

> +#endif
>   };
>   
> +static void vres_get_ref(struct virgl_gpu_resource *vres)
> +{
> +    uint32_t ref;
> +
> +    ref = qatomic_fetch_inc(&vres->ref);
> +    g_assert(ref < INT_MAX);
> +}
> +
> +static void virgl_resource_destroy(struct virgl_gpu_resource *vres)
> +{
> +    struct virtio_gpu_simple_resource *res;
> +    VirtIOGPU *g;
> +
> +    if (!vres) {
> +        return;
> +    }
> +
> +    g = vres->g;
> +    res = &vres->res;
> +    QTAILQ_REMOVE(&g->reslist, res, next);
> +    virtio_gpu_cleanup_mapping(g, res);
> +    g_free(vres);
> +}
> +
> +static void virgl_resource_unref(struct virgl_gpu_resource *vres)
> +{
> +    struct virtio_gpu_simple_resource *res;
> +
> +    if (!vres) {
> +        return;
> +    }
> +
> +    res = &vres->res;
> +    virgl_renderer_resource_detach_iov(res->resource_id, NULL, NULL);
> +    virgl_renderer_resource_unref(res->resource_id);
> +}
> +
> +static void vres_put_ref(struct virgl_gpu_resource *vres)
> +{
> +    g_assert(vres->ref > 0);
> +
> +    if (qatomic_fetch_dec(&vres->ref) == 1) {
> +        virgl_resource_unref(vres);
> +        virgl_resource_destroy(vres);
> +    }
> +}
> +
>   static struct virgl_gpu_resource *
>   virgl_gpu_find_resource(VirtIOGPU *g, uint32_t resource_id)
>   {
> @@ -59,6 +114,8 @@ static void virgl_cmd_create_resource_2d(VirtIOGPU *g,
>                                          c2d.width, c2d.height);
>   
>       vres = g_new0(struct virgl_gpu_resource, 1);
> +    vres_get_ref(vres);
> +    vres->g = g;
>       vres->res.width = c2d.width;
>       vres->res.height = c2d.height;
>       vres->res.format = c2d.format;
> @@ -91,6 +148,8 @@ static void virgl_cmd_create_resource_3d(VirtIOGPU *g,
>                                          c3d.width, c3d.height, c3d.depth);
>   
>       vres = g_new0(struct virgl_gpu_resource, 1);
> +    vres_get_ref(vres);
> +    vres->g = g;
>       vres->res.width = c3d.width;
>       vres->res.height = c3d.height;
>       vres->res.format = c3d.format;
> @@ -126,12 +185,21 @@ static void virgl_cmd_resource_unref(VirtIOGPU *g,
>           return;
>       }
>   
> -    virgl_renderer_resource_detach_iov(unref.resource_id, NULL, NULL);
> -    virgl_renderer_resource_unref(unref.resource_id);
> +#ifdef HAVE_VIRGL_RESOURCE_BLOB
> +    if (vres->region) {
> +        VirtIOGPUBase *b = VIRTIO_GPU_BASE(g);
> +        MemoryRegion *mr = vres->region;
> +
> +        warn_report("%s: blob resource %d not unmapped",
> +                    __func__, unref.resource_id);
> +        vres->region = NULL;
> +        memory_region_set_enabled(mr, false);
> +        memory_region_del_subregion(&b->hostmem, mr);
> +        object_unparent(OBJECT(mr));
> +    }
> +#endif /* HAVE_VIRGL_RESOURCE_BLOB */
>   
> -    QTAILQ_REMOVE(&g->reslist, &vres->res, next);
> -    virtio_gpu_cleanup_mapping(g, &vres->res);
> -    g_free(vres);
> +    vres_put_ref(vres);

What will happen if the guest consecutively requests 
VIRTIO_GPU_CMD_RESOURCE_UNREF twice for a mapped resource?


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 06:03:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 06:03:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658485.1027645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGC9k-0007J9-5Q; Thu, 21 Dec 2023 06:03:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658485.1027645; Thu, 21 Dec 2023 06: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 1rGC9k-0007J2-2R; Thu, 21 Dec 2023 06:03:40 +0000
Received: by outflank-mailman (input) for mailman id 658485;
 Thu, 21 Dec 2023 06:03: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=1W3I=IA=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rGC9i-0007Im-Bc
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 06:03:38 +0000
Received: from mail-oo1-xc2c.google.com (mail-oo1-xc2c.google.com
 [2607:f8b0:4864:20::c2c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id adffd652-9fc6-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 07:03:37 +0100 (CET)
Received: by mail-oo1-xc2c.google.com with SMTP id
 006d021491bc7-58d18c224c7so328365eaf.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 22:03:37 -0800 (PST)
Received: from [157.82.205.15] ([157.82.205.15])
 by smtp.gmail.com with ESMTPSA id
 h16-20020a635310000000b005c200d6486asm792604pgb.72.2023.12.20.22.03.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 22:03:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: adffd652-9fc6-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1703138616; x=1703743416; 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=fHToyja4NOHxEQaCqApSgLT7a7lMQLL0/3uq9tFGO2I=;
        b=WmCws8Vm5PueCymOvacS4/bUGRX8TIUA1oZUGcTltiorbz8GttZTf+PD8PoEa2wz8K
         RCEy1XnJP1R3k1DPfY5cNlubh8sDU1xQXL+clFKqCdoz2nDt8FPELVp3ljVzfuVfpoj5
         xSgZYqen7z3GjRHLysx6PbKLpsmMJlvHLmsjokUL6j2VPJAGcZlEhWOdiWBwcan459r4
         Fw0MNHWdWc2NdpuAo9ZDI8DaWcofYect+D0sarI0ztFBJDEpPdHLo/KivH9Zi+06YiLi
         Euv+S2qIGCqMszoo5FvpB/APlZxL1CYnJBNj7gIW28H9C8r9lLnIIps4kEyl1icVVa77
         YASA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703138616; x=1703743416;
        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=fHToyja4NOHxEQaCqApSgLT7a7lMQLL0/3uq9tFGO2I=;
        b=Yip8AP1SYthUyrDR8jo7bMq7b+UCcW5OOUZJxmNBBtgoL2TVs2liFKxPePvK1Jpatz
         1y6i022oZWhcJHcE+XHSBBSk5rJzHj1Aor8uFOJkdbwHnxIHLJparGbvEqAG17YSXba7
         8+kScysKVaoWvV3jXwF15bfxeIa8Ghe16x4Rnn8K4qFaO+fkq2YjRzCOJEl4QON1/PC8
         wDIttVar1aI65pl1UkADtCPS21jxnJwAnhfvvWm7vxDAYfcSPH5auohFsxQKPxKdmnIy
         s1racILMqg4CEpGxe8oH2mjEfB4wPvEDGdWwUgI5so1TN05C6uF9eJ66nV4iTNrQ5lbW
         4QSQ==
X-Gm-Message-State: AOJu0Yy8fCjs5M+Yt/FWvS+lIErBL9rT76mq+8e5z7Y7OLWp/B4Cxtlp
	OeqQ/bfLbPXV8SAb10oZVk8DBA==
X-Google-Smtp-Source: AGHT+IEMQ5PuC83SBrlBqTQNw0uBmtZ5FakIl34HWWckWSPLVEFbAQ9LAiZ5cJX3NGm7MZHHgdpsTw==
X-Received: by 2002:a05:6359:45a1:b0:170:2c94:31c8 with SMTP id no33-20020a05635945a100b001702c9431c8mr666680rwb.47.1703138616039;
        Wed, 20 Dec 2023 22:03:36 -0800 (PST)
Message-ID: <14c9ad8c-512d-4fd4-ae63-5a44d7565a01@daynix.com>
Date: Thu, 21 Dec 2023 15:03:29 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 08/11] virtio-gpu: Resource UUID
Content-Language: en-US
To: Huang Rui <ray.huang@amd.com>,
 =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: xen-devel@lists.xenproject.org,
 Gurchetan Singh <gurchetansingh@chromium.org>, ernunes@redhat.com,
 Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alex Deucher <alexander.deucher@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
 Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>,
 Antonio Caggiano <antonio.caggiano@collabora.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-9-ray.huang@amd.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <20231219075320.165227-9-ray.huang@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/19 16:53, Huang Rui wrote:
> From: Antonio Caggiano <antonio.caggiano@collabora.com>
> 
> Enable resource UUID feature and implement command resource assign UUID.
> This is done by introducing a hash table to map resource IDs to their
> UUIDs.

What about putting QemuUUID in struct virtio_gpu_simple_resource?


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 06:25:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 06:25:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658490.1027655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGCUm-0002Y8-Qv; Thu, 21 Dec 2023 06:25:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658490.1027655; Thu, 21 Dec 2023 06: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 1rGCUm-0002Y1-OJ; Thu, 21 Dec 2023 06:25:24 +0000
Received: by outflank-mailman (input) for mailman id 658490;
 Thu, 21 Dec 2023 06:25: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=1W3I=IA=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rGCUl-0002Xv-RZ
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 06:25:23 +0000
Received: from mail-oi1-x22d.google.com (mail-oi1-x22d.google.com
 [2607:f8b0:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b75c788a-9fc9-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 07:25:21 +0100 (CET)
Received: by mail-oi1-x22d.google.com with SMTP id
 5614622812f47-3ba40df6881so323628b6e.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 22:25:21 -0800 (PST)
Received: from [157.82.205.15] ([157.82.205.15])
 by smtp.gmail.com with ESMTPSA id
 c7-20020a056a00008700b006cd88728572sm758504pfj.211.2023.12.20.22.25.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 22:25:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b75c788a-9fc9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1703139920; x=1703744720; 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=rlXQG44kOZf5fxV0IWo0D6JubD275DwoDFlEWXxwk6A=;
        b=BMK7EnfvnSAVD46AkAAcsd3O/U9EfKBy4mQVMQsMAIBnD1/CHLPNsVHh9IUVLClCyH
         edHv4BLon3E77o2sKt4SIXUsyLHum47qngFquNC9MhIB1JGkmuHYDrusxftCUw8Osz17
         9LPjmIN6Ztuge4Awq2wGHIdc0HXotPoffPeDutSd2P3+vKC3qyjEV76vVe+dcOaNqhdA
         NFHy06OHZgQUyTHdyqs5XMPC+eTU4cjXH95vpveWO1UCerTYhbVq9ZIFo2n8EX9fed9J
         6EB3b0EtfoNmcPWhWNx2z/kaFbXbr4+09bUV9mBQVOp3A12ygvvMBFtVtB6QXNLDShHX
         1Itw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703139920; x=1703744720;
        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=rlXQG44kOZf5fxV0IWo0D6JubD275DwoDFlEWXxwk6A=;
        b=b2QvpUu5nGEw0n37zdPCmTo1c5xybXfyJtzBkraql3bJJhJ8j0jA8rkQkAJ6VO5/8Y
         tzwfpGI8bCgFH+EO1OEYdYbG0x1rtOkPNcUVveL6yyOwaQ8ggq8IZvzNaIl9+txgtfzv
         qk9RVnuaByodM6tQGS4dsECKyox2nY9mO5gpqo32ThCKrVGzQNi6aoVjojkRJyp9t60q
         V6URjOxVQ8DIub/aRn4DalvyVLb13Wt45hl8yssUnAG7BoaMTaVdtk7ZviRS8jkskZtl
         hswIFvbDkJIOQRr4G/ArGvdodXVaAPUQP3B01oQFArVxTKR4gMPB4FoYK3sKaoCIsT6Z
         Ow3w==
X-Gm-Message-State: AOJu0YymIIqcT2bQ4O+B+HXIPaF5UpRPwAQkPiqtl+TQHauMTYFndKge
	EWlf+uPa0JP0bHeUFmk4HDBgYQ==
X-Google-Smtp-Source: AGHT+IGBOK5Z6bL4kJ96WrkRiA+TDKPx53V4PTejOTpRGBANRttKRRPr7/BlKjQTL23MCOHoE+sW2A==
X-Received: by 2002:a05:6808:219c:b0:3b8:b1bd:b36a with SMTP id be28-20020a056808219c00b003b8b1bdb36amr30330444oib.49.1703139920252;
        Wed, 20 Dec 2023 22:25:20 -0800 (PST)
Message-ID: <a2c0a1f1-45a2-4957-9919-0d0cb19cd285@daynix.com>
Date: Thu, 21 Dec 2023 15:25:13 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 11/11] virtio-gpu: make blob scanout use dmabuf fd
Content-Language: en-US
To: Huang Rui <ray.huang@amd.com>,
 =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: xen-devel@lists.xenproject.org,
 Gurchetan Singh <gurchetansingh@chromium.org>, ernunes@redhat.com,
 Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alex Deucher <alexander.deucher@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
 Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-12-ray.huang@amd.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <20231219075320.165227-12-ray.huang@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/19 16:53, Huang Rui wrote:
> From: Robert Beckett <bob.beckett@collabora.com>
> 
> This relies on a virglrenderer change to include the dmabuf fd when
> returning resource info.
> 
> Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> ---
> 
> Changes in v6:
> - Add scanout_blob function for virtio-gpu-virgl.
> - Update for new virgl_gpu_resource.
> 
>   hw/display/virtio-gpu-virgl.c  | 104 +++++++++++++++++++++++++++++++++
>   hw/display/virtio-gpu.c        |   4 +-
>   include/hw/virtio/virtio-gpu.h |   6 ++
>   3 files changed, 112 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
> index c523a6717a..c384225a98 100644
> --- a/hw/display/virtio-gpu-virgl.c
> +++ b/hw/display/virtio-gpu-virgl.c
> @@ -18,6 +18,7 @@
>   #include "hw/virtio/virtio.h"
>   #include "hw/virtio/virtio-gpu.h"
>   #include "hw/virtio/virtio-gpu-bswap.h"
> +#include "hw/virtio/virtio-gpu-pixman.h"
>   
>   #include "ui/egl-helpers.h"
>   
> @@ -726,6 +727,106 @@ static void virgl_cmd_resource_unmap_blob(VirtIOGPU *g,
>       object_unparent(OBJECT(mr));
>   }
>   
> +static void virgl_cmd_set_scanout_blob(VirtIOGPU *g,
> +                                       struct virtio_gpu_ctrl_command *cmd)
> +{
> +    struct virgl_gpu_resource *vres;
> +    struct virtio_gpu_framebuffer fb = { 0 };
> +    struct virtio_gpu_set_scanout_blob ss;
> +    struct virgl_renderer_resource_info info;
> +    uint64_t fbend;
> +
> +    VIRTIO_GPU_FILL_CMD(ss);
> +    virtio_gpu_scanout_blob_bswap(&ss);
> +    trace_virtio_gpu_cmd_set_scanout_blob(ss.scanout_id, ss.resource_id,
> +                                          ss.r.width, ss.r.height, ss.r.x,
> +                                          ss.r.y);
> +
> +    if (ss.scanout_id >= g->parent_obj.conf.max_outputs) {
> +        qemu_log_mask(LOG_GUEST_ERROR, "%s: illegal scanout id specified %d",
> +                      __func__, ss.scanout_id);
> +        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID;
> +        return;
> +    }
> +
> +    if (ss.resource_id == 0) {
> +        virtio_gpu_disable_scanout(g, ss.scanout_id);
> +        return;
> +    }
> +
> +    if (ss.width < 16 ||
> +        ss.height < 16 ||
> +        ss.r.x + ss.r.width > ss.width ||
> +        ss.r.y + ss.r.height > ss.height) {
> +        qemu_log_mask(LOG_GUEST_ERROR, "%s: illegal scanout %d bounds for"
> +                      " resource %d, rect (%d,%d)+%d,%d, fb %d %d\n",
> +                      __func__, ss.scanout_id, ss.resource_id,
> +                      ss.r.x, ss.r.y, ss.r.width, ss.r.height,
> +                      ss.width, ss.height);
> +        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER;
> +        return;
> +    }
> +
> +    if (!console_has_gl(g->parent_obj.scanout[ss.scanout_id].con)) {

Shouldn't OpenGL always be available for virgl?

> +        qemu_log_mask(LOG_GUEST_ERROR, "%s: unable to scanout blot without GL!\n", __func__);
> +        return;
> +    }
> +
> +    vres = virgl_gpu_find_resource(g, ss.resource_id);
> +    if (!vres) {
> +        qemu_log_mask(LOG_GUEST_ERROR,
> +                      "%s: illegal resource specified %d\n",
> +                      __func__, ss.resource_id);
> +        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
> +        return;
> +    }
> +    if (virgl_renderer_resource_get_info(ss.resource_id, &info)) {
> +        qemu_log_mask(LOG_GUEST_ERROR,
> +                      "%s: illegal virgl resource specified %d\n",
> +                      __func__, ss.resource_id);
> +        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
> +        return;
> +    }
> +    if (!vres->res.dmabuf_fd && info.fd)
> +        vres->res.dmabuf_fd = info.fd;
> +
> +    fb.format = virtio_gpu_get_pixman_format(ss.format);
> +    if (!fb.format) {
> +        qemu_log_mask(LOG_GUEST_ERROR,
> +                      "%s: host couldn't handle guest format %d\n",
> +                      __func__, ss.format);
> +        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER;
> +        return;
> +    }
> +
> +    fb.bytes_pp = DIV_ROUND_UP(PIXMAN_FORMAT_BPP(fb.format), 8);
> +    fb.width = ss.width;
> +    fb.height = ss.height;
> +    fb.stride = ss.strides[0];
> +    fb.offset = ss.offsets[0] + ss.r.x * fb.bytes_pp + ss.r.y * fb.stride;
> +
> +    fbend = fb.offset;
> +    fbend += fb.stride * (ss.r.height - 1);
> +    fbend += fb.bytes_pp * ss.r.width;
> +    if (fbend > vres->res.blob_size) {
> +        qemu_log_mask(LOG_GUEST_ERROR,
> +                      "%s: fb end out of range\n",
> +                      __func__);
> +        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER;
> +        return;
> +    }
> +
> +    g->parent_obj.enable = 1;
> +    if (virtio_gpu_update_dmabuf(g, ss.scanout_id, &vres->res,
> +                                 &fb, &ss.r)) {
> +        qemu_log_mask(LOG_GUEST_ERROR,
> +                      "%s: failed to update dmabuf\n", __func__);
> +        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER;
> +        return;
> +    }
> +    virtio_gpu_update_scanout(g, ss.scanout_id, &vres->res, &ss.r);
> +}
> +
>   #endif /* HAVE_VIRGL_RESOURCE_BLOB */
>   
>   void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
> @@ -807,6 +908,9 @@ void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
>       case VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB:
>           virgl_cmd_resource_unmap_blob(g, cmd);
>           break;
> +    case VIRTIO_GPU_CMD_SET_SCANOUT_BLOB:

VIRTIO_GPU_CMD_SET_SCANOUT_BLOB support should be added before allowing 
the user to enable the resource blob support.

You should also check if virtio_vdev_has_feature(VIRTIO_DEVICE(g), 
VIRTIO_GPU_F_RESOURCE_BLOB). It also applies to other resource blob 
commands though I failed to note that for the earlier patch.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 06:55:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 06:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658497.1027666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGCxh-00082U-7d; Thu, 21 Dec 2023 06:55:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658497.1027666; Thu, 21 Dec 2023 06:55:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGCxh-00082N-4j; Thu, 21 Dec 2023 06:55:17 +0000
Received: by outflank-mailman (input) for mailman id 658497;
 Thu, 21 Dec 2023 06: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=1W3I=IA=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rGCxf-00082G-Ua
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 06:55:16 +0000
Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com
 [2607:f8b0:4864:20::102f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3c34997-9fcd-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 07:55:14 +0100 (CET)
Received: by mail-pj1-x102f.google.com with SMTP id
 98e67ed59e1d1-28bc20cb501so1188599a91.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 22:55:14 -0800 (PST)
Received: from [157.82.205.15] ([157.82.205.15])
 by smtp.gmail.com with ESMTPSA id
 j15-20020a17090a840f00b0028bad9b220fsm954956pjn.37.2023.12.20.22.55.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 22:55:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3c34997-9fcd-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1703141713; x=1703746513; 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=CLzY5PdrM7K/wmvGqA4vWKhQk+AYxpxkLmOBtyv7qaE=;
        b=rG4PKqO3F8y1hgHj0K7JZTdWKExBAFuz55xo1uFJ5s60x6t1wQffe7uwZs++zy402N
         L0+4zVcNW8Lu9xljHKhW0Yy+BNU6830077AdZOwYzfdvO8wx61yUg4nir40Y6SDflMjs
         M9LptbJ9mm7yZNb2jHML3yGBzUK5hL5suhb2cLxJQ5oNDiyU485GtaCuf7I9QMpwf/hu
         Og4GR6BIPoP/nuPczfMk43Z18Rm9ngQdlDUxyA0CINfBpYdjEuvE6wbcOzWdVxeMTGmk
         cZA2bM3qx8BUISt1fsgDJGieGvqNupEDp9cXFp2ObHf/DkcH+Nfn8okktvaKwIYcD24R
         kLpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703141713; x=1703746513;
        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=CLzY5PdrM7K/wmvGqA4vWKhQk+AYxpxkLmOBtyv7qaE=;
        b=R6XtnaqK73yaA6MtPVduRLzkAArJ1mcYA5K4uEq5xNlQn4kpLhzmXAw3R8jr02CACH
         f/UP/RhuKtzS9LLfYAL1YLV6NMZUlUi6yMLYMSIO2m3jNpjGMnrTOtElBSoFwlXSIuV+
         Mqfz0b+zakedEusc5xr5LouRS9k3cqrc1IHg7aLQS+EA3qopB5I3SCpEhzHO9Cp2cIQW
         or7mRrE2qcTevqjSgYZEFk0ELg1RO9LS7EPkzz7vfxiW2xAevY9IUzkyopmKfozPwFBB
         hTsieOXC+rQX4GpJqn2k0s+PRL9vNrJ/tc4NlI24VcK8h0o7Hq86ds/0ToKcHnufKA/G
         drwg==
X-Gm-Message-State: AOJu0YzWQdzqTQkzCUBrglEiN2pxGT5PNduZVdbMoqU0RK0HkF4cT/Rf
	GDVxM/yDyTFjf6htgqMvpT+MAw==
X-Google-Smtp-Source: AGHT+IEbwVl9Gzb6AFc1cuiyAWrCzGB+Iuh7dB4wVutX8k4xc8tuq+dN41LEMJ8tq7KTcYtz+FhJXg==
X-Received: by 2002:a17:90a:cb15:b0:28b:eed2:5990 with SMTP id z21-20020a17090acb1500b0028beed25990mr290395pjt.15.1703141712760;
        Wed, 20 Dec 2023 22:55:12 -0800 (PST)
Message-ID: <af89f683-2b6e-4ca1-aa37-8bedd12a781d@daynix.com>
Date: Thu, 21 Dec 2023 15:55:06 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 01/11] linux-headers: Update to kernel headers to add
 venus capset
Content-Language: en-US
To: Peter Maydell <peter.maydell@linaro.org>, Huang Rui <ray.huang@amd.com>
Cc: =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Gurchetan Singh <gurchetansingh@chromium.org>,
 "ernunes@redhat.com" <ernunes@redhat.com>, Alyssa Ross <hi@alyssa.is>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Deucher, Alexander" <Alexander.Deucher@amd.com>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "Koenig, Christian" <Christian.Koenig@amd.com>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 "Pelloux-Prayer, Pierre-Eric" <Pierre-eric.Pelloux-prayer@amd.com>,
 "Huang, Honglei1" <Honglei1.Huang@amd.com>,
 "Zhang, Julia" <Julia.Zhang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-2-ray.huang@amd.com>
 <6adff6d2-7c58-4c78-93a5-5a4594a60d27@daynix.com> <ZYGe4GcFPt0k5PTM@amd.com>
 <CAFEAcA_=iedJw4BbNHrDALC4mL4g3ZEihsDbLkEzsy-1zAWFWw@mail.gmail.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <CAFEAcA_=iedJw4BbNHrDALC4mL4g3ZEihsDbLkEzsy-1zAWFWw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/19 23:14, Peter Maydell wrote:
> On Tue, 19 Dec 2023 at 13:49, Huang Rui <ray.huang@amd.com> wrote:
>>
>> On Tue, Dec 19, 2023 at 08:20:22PM +0800, Akihiko Odaki wrote:
>>> On 2023/12/19 16:53, Huang Rui wrote:
>>>> Sync up kernel headers to update venus macro till they are merged into
>>>> mainline.
>>>
>>> Thanks for sorting things out with the kernel and spec.
>>>
>>>>
>>>> Signed-off-by: Huang Rui <ray.huang@amd.com>
>>>> ---
>>>>
>>>> Changes in v6:
>>>> - Venus capset is applied in kernel, so update it in qemu for future use.
>>>>
>>>> https://lore.kernel.org/lkml/b79dcf75-c9e8-490e-644f-3b97d95f7397@collabora.com/
>>>> https://cgit.freedesktop.org/drm-misc/commit/?id=216d86b9a430f3280e5b631c51e6fd1a7774cfa0
>>> Please include the link to the upstream commit in the commit message.
>>
>> So far, it's in drm maintainers' branch not in kernel mainline yet. Do I
>> need to wait it to be merged into kernel mainline?
> 
> For an RFC patchset, no. For patches to be merged into QEMU
> the headers change must be in the kernel mainline, and the
> QEMU commit that updates our copy of the headers must be a
> full-sync done with scripts/update-linux-headers.sh, not a
> manual edit.

Apparently the kernel change is unlikely to be merged to mainline before 
QEMU 9.0 so we need to come up with some idea to deal with this.

The release of Linux 6.7 is near and the development of 6.8 will start 
soon. So it was nice if the change made into 6.8, but unfortunately it 
missed the *probably last* drm-misc tree pull request for 6.8:
https://lore.kernel.org/all/aqpn5miejmkks7pbcfex7b6u63uwsruywxsnr3x5ljs45qatin@nbkkej2elk46/

It will still get into linux-next so we may retrieve headers from 
linux-next. Or we may add the definition to 
hw/display/virtio-gpu-virgl.c; the duplicate definition warning will 
tell when the definition becomes no longer necessary. I'm fine with 
either option.

Regards,
Akihiko Odaki


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 07:06:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 07:06:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658502.1027675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGD8d-0001tF-8R; Thu, 21 Dec 2023 07:06:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658502.1027675; Thu, 21 Dec 2023 07:06:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGD8d-0001t8-4w; Thu, 21 Dec 2023 07:06:35 +0000
Received: by outflank-mailman (input) for mailman id 658502;
 Thu, 21 Dec 2023 07:06:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGD8b-0001t2-6v
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 07:06:33 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77fe73dc-9fcf-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 08:06:31 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c3ca9472dso5149335e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 23:06:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c5-20020a05600c0a4500b0040c411da99csm10023197wmq.48.2023.12.20.23.06.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 23:06:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77fe73dc-9fcf-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703142391; x=1703747191; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=okWSJFha35PAlZL8Va5HIRdiQ8mlHhSOTDfpX214hK0=;
        b=QqNpphlAfjGPK1Owty7aI1J+5c6mwLLOeg0nfVJZc5S4jVAKPoLtaUx7WbNHvXRFmF
         LmIAj5D+k/HDWytv+ew9231HvMOhvZLBCLpPrlXzOYadvINjQLPyWQFEdYkuRzvoQW08
         w0oF0I9owcyyKozgXt77QgQQdcX0GParsoKDask9xA6qZgQAM3pelAkVGfINyvNPYebi
         fwwEXspM07sLJbifIo4Fdw2vM+OuwF+0CEoMScrux3S/wAg9W1igq07T66TAh0Dv1G9d
         OicEk5qIas2DJbUWY3EAHIfxvq0MPQKRmse6Lkw1T10OMtSc7xcqFATc7+i8EHLUekM5
         1T9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703142391; x=1703747191;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=okWSJFha35PAlZL8Va5HIRdiQ8mlHhSOTDfpX214hK0=;
        b=CcmO4i9aGLdlyx8B/ZWkaMJtli3fx1A2HbHztnNgGiAx7BemRqcb1mL8KZhE111U3J
         Kw0qGcMP9vmjtL2qhaVeehugk4V3a4BA3HsG82iENxRHvdz/HJ3ykQoaZ0SNh5cu9gB4
         npAb/OJRDyyBYgevM6gWjSxa5Z9zSjiEHRBThlXG0klNQwiLiMeyzWlvK2otl8bBdvki
         GczRETY36aQidLpjK0Nc5SdrHpOBPMzc8kSSvgUq9SBKkiYDg1e6Ulg45hA7J1eQY/0B
         jNItWIYyKahgVfCqgpTcSzmjF9FjdYkw9VWVMOePoCucuUU4mc6woJ2m/oXBkHl2b9hH
         prww==
X-Gm-Message-State: AOJu0YyXA8XnGyg7DHYPKz9vFZVWhAk/rUph8H952S4cPHY96HxRguP4
	fZAYAERXsUAMAKXb1moopCJ2ouVIM4qbAivk/Pc3
X-Google-Smtp-Source: AGHT+IELV4LAEXpXC34ySFzfYc/6X3jy9yrugxzisFxLKtcRMgC/MIxdUQ0I0qupZUG0tShTj4BLzA==
X-Received: by 2002:a05:600c:6028:b0:40c:357e:27b with SMTP id az40-20020a05600c602800b0040c357e027bmr294589wmb.162.1703142391060;
        Wed, 20 Dec 2023 23:06:31 -0800 (PST)
Message-ID: <6ba01b31-fc51-4d12-83a2-4754ccfb6339@suse.com>
Date: Thu, 21 Dec 2023 08:06:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/7] xen/ppc: mm-radix: Allocate Partition and Process
 Tables at runtime
Content-Language: en-US
To: Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <f49a4a372a9f82e217fa56ba0dc3068deff32ef5.1702607884.git.sanastasio@raptorengineering.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: <f49a4a372a9f82e217fa56ba0dc3068deff32ef5.1702607884.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.12.2023 03:44, Shawn Anastasio wrote:
> In the initial mm-radix implementation, the in-memory partition and
> process tables required to configure the MMU were allocated statically
> since the boot allocator was not yet available.
> 
> Now that it is, allocate these tables at runtime and bump the size of
> the Process Table to its maximum supported value (on POWER9). Also bump
> the number of static LVL2/3 PD frames to tolerate cases where the boot
> allocator returns an address outside of the range of the LVL2 frame used
> for Xen.

Don't you need to bump to 4, in case PATB and PRTB end up sufficiently
far apart? Or even further, considering that you may need distinct L2
and L3 for each of Xen, PATB, and PRTB?

However, with there being memory to allocate now, is there a reason you
still reserve (perhaps more than necessary) static memory for the
page tables, rather than allocating those dynamically as well?

> @@ -105,80 +157,43 @@ static void __init setup_initial_mapping(struct lvl1_pd *lvl1,
>          die();
>      }
> 
> +    /* Identity map Xen itself */
>      for ( page_addr = map_start; page_addr < map_end; page_addr += PAGE_SIZE )
>      {
> -        struct lvl2_pd *lvl2;
> -        struct lvl3_pd *lvl3;
> -        struct lvl4_pt *lvl4;
> -        pde_t *pde;
> -        pte_t *pte;
> -
> -        /* Allocate LVL 2 PD if necessary */
> -        pde = pt_entry(lvl1, page_addr);
> -        if ( !pde_is_valid(*pde) )
> -        {
> -            lvl2 = lvl2_pd_pool_alloc();
> -            *pde = paddr_to_pde(__pa(lvl2), PDE_VALID,
> -                                XEN_PT_ENTRIES_LOG2_LVL_2);
> -        }
> -        else
> -            lvl2 = __va(pde_to_paddr(*pde));
> +        unsigned long flags;
> 
> -        /* Allocate LVL 3 PD if necessary */
> -        pde = pt_entry(lvl2, page_addr);
> -        if ( !pde_is_valid(*pde) )
> +        if ( is_kernel_text(page_addr) || is_kernel_inittext(page_addr) )
>          {
> -            lvl3 = lvl3_pd_pool_alloc();
> -            *pde = paddr_to_pde(__pa(lvl3), PDE_VALID,
> -                                XEN_PT_ENTRIES_LOG2_LVL_3);
> +            radix_dprintk("%016lx being marked as TEXT (RX)\n", page_addr);
> +            flags = PTE_XEN_RX;
>          }
> -        else
> -            lvl3 = __va(pde_to_paddr(*pde));
> -
> -        /* Allocate LVL 4 PT if necessary */
> -        pde = pt_entry(lvl3, page_addr);
> -        if ( !pde_is_valid(*pde) )
> -        {
> -            lvl4 = lvl4_pt_pool_alloc();
> -            *pde = paddr_to_pde(__pa(lvl4), PDE_VALID,
> -                                XEN_PT_ENTRIES_LOG2_LVL_4);
> -        }
> -        else
> -            lvl4 = __va(pde_to_paddr(*pde));
> -
> -        /* Finally, create PTE in LVL 4 PT */
> -        pte = pt_entry(lvl4, page_addr);
> -        if ( !pte_is_valid(*pte) )
> +        else if ( is_kernel_rodata(page_addr) )
>          {
> -            unsigned long paddr = (page_addr - map_start) + phys_base;
> -            unsigned long flags;
> -
> -            radix_dprintk("%016lx being mapped to %016lx\n", paddr, page_addr);
> -            if ( is_kernel_text(page_addr) || is_kernel_inittext(page_addr) )
> -            {
> -                radix_dprintk("%016lx being marked as TEXT (RX)\n", page_addr);
> -                flags = PTE_XEN_RX;
> -            }
> -            else if ( is_kernel_rodata(page_addr) )
> -            {
> -                radix_dprintk("%016lx being marked as RODATA (RO)\n", page_addr);
> -                flags = PTE_XEN_RO;
> -            }
> -            else
> -            {
> -                radix_dprintk("%016lx being marked as DEFAULT (RW)\n", page_addr);
> -                flags = PTE_XEN_RW;
> -            }
> -
> -            *pte = paddr_to_pte(paddr, flags);
> -            radix_dprintk("%016lx is the result of PTE map\n",
> -                paddr_to_pte(paddr, flags).pte);
> +            radix_dprintk("%016lx being marked as RODATA (RO)\n", page_addr);
> +            flags = PTE_XEN_RO;
>          }
>          else
>          {
> -            early_printk("BUG: Tried to create PTE for already-mapped page!");
> -            die();
> +            radix_dprintk("%016lx being marked as DEFAULT (RW)\n", page_addr);
> +            flags = PTE_XEN_RW;
>          }
> +
> +        map_page_initial(lvl1, page_addr, (page_addr - map_start) + phys_base, flags);
> +    }
> +
> +    /* Map runtime-allocated PATB, PRTB */
> +    for ( page_addr = (uint64_t)initial_patb;
> +          page_addr < (uint64_t)initial_patb + PATB_SIZE;

While technically not an issue, casting pointers to fixed width types is
generally bogus. page_addr itself would likely better also be of a
different type (unsigned long, uintptr_t, or vaddr_t; the latter only if
that's meant to represent hypervisor virtual addresses, not guest ones).

> +          page_addr += PAGE_SIZE )
> +    {
> +        map_page_initial(lvl1, page_addr, __pa(page_addr), PTE_XEN_RW);
> +    }
> +
> +    for ( page_addr = (uint64_t)initial_prtb;
> +          page_addr < (uint64_t)initial_prtb + PRTB_SIZE;
> +          page_addr += PAGE_SIZE )
> +    {
> +        map_page_initial(lvl1, page_addr, __pa(page_addr), PTE_XEN_RW);
>      }

Just as a remark (you're the maintainer) - in cases like these we generally
prefer to omit the braces.

> @@ -210,6 +225,16 @@ void __init setup_initial_pagetables(void)
>  {
>      struct lvl1_pd *root = lvl1_pd_pool_alloc();
>      unsigned long lpcr;
> +    mfn_t patb_mfn, prtb_mfn;
> +
> +    /* Allocate mfns for in-memory tables using the boot allocator */
> +    prtb_mfn = alloc_boot_pages(PRTB_SIZE / PAGE_SIZE,
> +                                max(1, PRTB_SIZE_LOG2 - PAGE_SHIFT));
> +    patb_mfn = alloc_boot_pages(PATB_SIZE / PAGE_SIZE,
> +                                max(1, PATB_SIZE_LOG2 - PAGE_SHIFT));
> +
> +    initial_patb = __va(mfn_to_maddr(patb_mfn));
> +    initial_prtb = __va(mfn_to_maddr(prtb_mfn));

Overall, what's the plan wrt directmap: Are you meaning to not have one
covering all memory? If you do, I wonder if you wouldn't be better off
mapping memory as you pass it to the boot allocator, such that you
won't need to map things piecemeal like you're doing here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 07:11:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 07:11:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658506.1027686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGDDK-0003gK-Qp; Thu, 21 Dec 2023 07:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658506.1027686; Thu, 21 Dec 2023 07: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 1rGDDK-0003gD-NI; Thu, 21 Dec 2023 07:11:26 +0000
Received: by outflank-mailman (input) for mailman id 658506;
 Thu, 21 Dec 2023 07:11: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=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGDDK-0003g7-Bk
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 07:11:26 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 26f3166d-9fd0-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 08:11:25 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3368b1e056eso90071f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 23:11:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 x4-20020a5d54c4000000b0033662c2820bsm1268407wrv.117.2023.12.20.23.11.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 23:11:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26f3166d-9fd0-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703142684; x=1703747484; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=RPOsWaj+47t4H4801G/mQ9O7tkUE4RRPfORW0Ow1G/4=;
        b=QZo7z8l7b1Z4TpoxS1BT9nKmGLGf0fGM+dK1oEM7JNKHXJ04/JohujbmZpHcQ+MtzQ
         N7pm7JIcpFvYwdRKRYq0l/heGYvF2X6hivD1NxeF+Fjj/6ELh7O0JmJu2tH3V8NHY1Yu
         TW/bDyHU/+EfGxlyjVPVHdkOezlFubpHDUbdNmwy73oSLOBPSbXzzDdE50bhUk9d+xM8
         x4MZJsiYEZLhqAMGeWqkCvTOcTbm07rfEUL5nwouBW11o7Jdor0vyA2Rhj9fE8csjuP3
         UpRUpSJRbN1P188rT2Lci5RxthzWMKljloOdvHb7WwtPrMZJRQMq23UFSAawuVUuRiJ6
         LYSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703142684; x=1703747484;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=RPOsWaj+47t4H4801G/mQ9O7tkUE4RRPfORW0Ow1G/4=;
        b=TfoVigEx0JIfIZg7AeUbZHr9ZPwxthL/yJOT1knuZ3JxxeElesNcxpnv3LoprUghL+
         /CsMtSLO7GHxoKBlBn2zl0eLdrKg6v8yQ7//5ZHGtHaVd7XXxo7CyPWwJVFmZlLEqJr6
         MudXTH/ad/OuZpPJg5o1sUZ/ii+glnMSgYrrv2KFAb4XZ4ROwKNLwBhbWbjv5j2rRIXq
         jFsYxARmw2lxJsEfTU9qJe2Wd3BTDRqv4oa/DG1tlMYtERHvj4kootBmufdrcst+nEQQ
         hZPs3dnECJBQ+HUOzI69i4wlDGOefo7zdiMaVMiELPUbx/Bmm7jN1DCeHRXVu+fOzui+
         fBlA==
X-Gm-Message-State: AOJu0Yyk/ATAhLWwtxQxiFQh2P82qY8Si+lX+zX5mtmFJC1MHXDNQKPY
	BEb8+YIvCZx/vVNBhmkgzVo5
X-Google-Smtp-Source: AGHT+IFMe6SeNeGwRvvzOWOJd3lWUA+3AbszC0FRiKeuVQBKoEN7+p8crkP7gxvdEBwvPcy9/VA6wA==
X-Received: by 2002:a5d:6b51:0:b0:336:7f3c:5b08 with SMTP id x17-20020a5d6b51000000b003367f3c5b08mr399789wrw.50.1703142684685;
        Wed, 20 Dec 2023 23:11:24 -0800 (PST)
Message-ID: <95d03d68-23e3-4c22-8eae-44abe0e353e4@suse.com>
Date: Thu, 21 Dec 2023 08:11:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/common: Move Arm's bootfdt to common
Content-Language: en-US
To: Julien Grall <julien@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Timothy Pearson <tpearson@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1702607884.git.sanastasio@raptorengineering.com>
 <b26a07209b54cd036e42a8b00f036201821eb775.1702607884.git.sanastasio@raptorengineering.com>
 <3546ec55-3e0c-4fdc-9697-0105d20bacfd@suse.com>
 <5fc9ad7a-1281-46da-abff-0aa2d2beca14@xen.org>
 <69c5afde-3a24-4792-b4e5-3ce17cb1602d@suse.com>
 <cb2f543b-ef29-4174-8437-dc875c27daab@raptorengineering.com>
 <7a228bc8-7c2f-46fa-9ee6-5266f65e767b@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7a228bc8-7c2f-46fa-9ee6-5266f65e767b@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 23:08, Julien Grall wrote:
> Hi,
> 
> On 20/12/2023 20:58, Shawn Anastasio wrote:
>> On 12/20/23 2:09 AM, Jan Beulich wrote:
>>> On 19.12.2023 19:29, Julien Grall wrote:
>>>> On 19/12/2023 17:03, Jan Beulich wrote:
>>>>> On 15.12.2023 03:43, Shawn Anastasio wrote:
>>>>>> --- a/xen/arch/arm/bootfdt.c
>>>>>> +++ b/xen/common/device-tree/bootfdt.c
>>>>>> @@ -431,12 +431,15 @@ static int __init early_scan_node(const void *fdt,
>>>>>>    {
>>>>>>        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") )
>>>>>> +    if ( device_tree_node_matches(fdt, node, "memory") )
>>>>>> +#if defined(CONFIG_ARM_EFI)
>>>>>> +        /*
>>>>>> +         * If Xen has been booted via UEFI, the memory banks are
>>>>>> +         * populated. So we should skip the parsing.
>>>>>> +         */
>>>>>> +        if ( efi_enabled(EFI_BOOT) )
>>>>>> +            return rc;
>>>>>> +#endif
>>>>>
>>>>> I'm not a DT maintainer, but I don't like this kind of #ifdef, the more
>>>>> that maybe PPC and quite likely RISC-V are likely to also want to support
>>>>> EFI boot. But of course there may be something inherently Arm-specific
>>>>> here that I'm unaware of.
>>>>
>>>> Right now, I can't think how this is Arm specific. If you are using
>>>> UEFI, then you are expected to use the UEFI memory map rather than the
>>>> content of the device-tree.
>>>>
>>>> However, we don't have a CONFIG_EFI option. It would be nice to
>>>> introduce one but I am not sure I would introduce it just for this #ifdef.
>>>
>>> Right, hence why I also wasn't suggesting to go that route right away.
>>> efi/common-stub.c already has a stub for efi_enabled(). Using that file
>>> may be too involved to arrange for in PPC, but supplying such a stub
>>> elsewhere for the time being looks like it wouldn't too much effort
>>> (and would eliminate the need for any #ifdef here afaict). Shawn?
>>>
>>
>> To clarify, you're suggesting we add an efi_enabled stub somewhere in
>> arch/ppc? I'm not against that, though it does seem a little silly to
>> have to define EFI-specific functions on an architecture that will never
>> support EFI.
> 
> (This is not an argument for adding efi_enabled in arch/ppc)
> 
> I am curious to know why you think that. This is just software and 
> therefore doesn't seem to be technically impossible. I mean who 
> originally thought that ACPI would come to Arm? :) And yet we now have 
> HWs (mainly servers) which provides only ACPI + UEFI.
> 
> And before, I got asked where is the support in Xen. Yes, the work is 
> still on-going :).
> 
> Anyway, back to the original ask, one option would be to introduce 
> efi_enabled stub in an common header. Maybe xen/efi.h?

Right, and having a somewhat odd #ifdef there (covering for the lack of
CONFIG_EFI) would imo be preferable to having it in a random .c file.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 07:23:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 07:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658512.1027696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGDOY-0006JO-Tz; Thu, 21 Dec 2023 07:23:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658512.1027696; Thu, 21 Dec 2023 07: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 1rGDOY-0006JH-PL; Thu, 21 Dec 2023 07:23:02 +0000
Received: by outflank-mailman (input) for mailman id 658512;
 Thu, 21 Dec 2023 07:23: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 1rGDOY-0006J7-7B; Thu, 21 Dec 2023 07:23: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 1rGDOX-0001AA-SS; Thu, 21 Dec 2023 07:23: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 1rGDOX-0006TA-EB; Thu, 21 Dec 2023 07:23:01 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGDOX-0005m9-Dm; Thu, 21 Dec 2023 07:23: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=MoBtc0Tt4dl3+RDQXH9BWSd2SqNBlFdYxxgjY48+nvU=; b=CAq3DG8kvdqeMevKNTXofqVYs2
	wbp+TE0N+2vxAhBDzorvGDePtKpY2BPHfInzdL5ICj/lYfPNYiSI0ySICU7/ddzukOfQp/Nk5BE1N
	vajqLsx9ApiQH/7l7yUYsLBpY0uEnexpXmxWTgEmjUId7XJwIvZGWucDq6xocx8cmwh8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184192-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-5.4 test] 184192: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-5.4:test-amd64-i386-xl-shadow:guest-localmigrate/x10:fail:heisenbug
    linux-5.4:test-armhf-armhf-libvirt-qcow2:guest-start:fail:heisenbug
    linux-5.4:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit1:guest-start:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-win7-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:guest-start/debian.repeat:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-qemuu-nested-amd:debian-hvm-install/l1/l2:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-thunderx:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit1:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-xsm:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-credit2:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-arndale:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl:saverestore-support-check:fail:nonblocking
    linux-5.4:test-amd64-i386-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-libvirt-raw:saverestore-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-arm64-arm64-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
    linux-5.4:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=2d21f73b2f16f51608c8d8b1726df270229a5006
X-Osstest-Versions-That:
    linux=16e6e107a688046df37976fb6d7310e886c8115d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 07:23:01 +0000

flight 184192 linux-5.4 real [real]
flight 184200 linux-5.4 real-retest [real]
http://logs.test-lab.xenproject.org/osstest/logs/184192/
http://logs.test-lab.xenproject.org/osstest/logs/184200/

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-i386-xl-shadow 20 guest-localmigrate/x10 fail pass in 184200-retest
 test-armhf-armhf-libvirt-qcow2 13 guest-start       fail pass in 184200-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail in 184200 like 184129
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check fail in 184200 never pass
 test-armhf-armhf-xl-credit1  14 guest-start                  fail  like 184129
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184129
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184129
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184129
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184129
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184129
 test-armhf-armhf-xl-credit2  18 guest-start/debian.repeat    fail  like 184129
 test-armhf-armhf-xl-arndale  18 guest-start/debian.repeat    fail  like 184129
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184129
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184129
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184129
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184129
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184129
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184129
 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     15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-credit1  16 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  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-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-rtds     15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     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-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-i386-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-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                2d21f73b2f16f51608c8d8b1726df270229a5006
baseline version:
 linux                16e6e107a688046df37976fb6d7310e886c8115d

Last test of basis   184129  2023-12-13 17:42:57 Z    7 days
Testing same since   184192  2023-12-20 15:16:31 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Adrian Hunter <adrian.hunter@intel.com>
  Andrew Halaney <ahalaney@redhat.com>
  Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  Aoba K <nexp_0x17@outlook.com>
  Baokun Li <libaokun1@huawei.com>
  Bjorn Helgaas <bhelgaas@google.com>
  Catalin Marinas <catalin.marinas@arm.com>
  Chengfeng Ye <dg573847474@gmail.com>
  Coly Li <colyli@suse.de>
  David Howells <dhowells@redhat.com>
  David S. Miller <davem@davemloft.net>
  Denis Benato <benato.denis96@gmail.com>
  Dinghao Liu <dinghao.liu@zju.edu.cn>
  Dong Chenchen <dongchenchen2@huawei.com>
  Eric Dumazet <edumazet@google.com>
  Florent Revest <revest@chromium.org>
  Florian Fainelli <florian.fainelli@broadcom.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
  Hyunwoo Kim <v4bel@theori.io>
  Igor Mammedov <imammedo@redhat.com>
  Ilpo JÃ¤rvinen <ilpo.jarvinen@linux.intel.com>
  Jakub Kicinski <kuba@kernel.org>
  James Houghton <jthoughton@google.com>
  Jens Axboe <axboe@kernel.dk>
  Jiri Kosina <jkosina@suse.cz>
  Kai Vehmanen <kai.vehmanen@linux.intel.com>
  kernelci.org bot <bot@kernelci.org>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Lech Perczak <lech.perczak@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linux Kernel Functional Testing <lkft@linaro.org>
  Luke D. Jones <luke@ljones.dev>
  Maciej Å»enczykowski <maze@google.com>
  Mark Rutland <mark.rutland@arm.com>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Michael Ellerman <mpe@ellerman.id.au>
  Michael S. Tsirkin <mst@redhat.com>
  Ming Lei <ming.lei@redhat.com>
  Naveen N Rao <naveen@kernel.org>
  Nikolay Kuratov <kniv@yandex-team.ru>
  Oliver Neukum <oneukum@suse.com>
  Paolo Abeni <pabeni@redhat.com>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  Rasmus Villemoes <linux@rasmusvillemoes.dk>
  Sasha Levin <sashal@kernel.org>
  Shuah Khan <skhan@linuxfoundation.org>
  Stefan Wahren <wahrenst@gmx.net>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Takashi Iwai <tiwai@suse.de>
  Theodore Ts'o <tytso@mit.edu>
  Ulf Hansson <ulf.hansson@linaro.org>
  Vinod Koul <vkoul@kernel.org>
  Will Deacon <will@kernel.org>
  Yusong Gao <a869920004@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  fail    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    fail    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   16e6e107a688..2d21f73b2f16  2d21f73b2f16f51608c8d8b1726df270229a5006 -> tested/linux-5.4


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 07:35:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 07:35:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658521.1027706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGDap-0000aI-4O; Thu, 21 Dec 2023 07:35:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658521.1027706; Thu, 21 Dec 2023 07:35:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGDap-0000aB-1j; Thu, 21 Dec 2023 07:35:43 +0000
Received: by outflank-mailman (input) for mailman id 658521;
 Thu, 21 Dec 2023 07:35:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hvtX=IA=amd.com=Xenia.Ragiadakou@srs-se1.protection.inumbo.net>)
 id 1rGDao-0000a5-0Z
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 07:35:42 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2061d.outbound.protection.outlook.com
 [2a01:111:f400:7e8c::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 892025c7-9fd3-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 08:35:40 +0100 (CET)
Received: from CYZPR10CA0019.namprd10.prod.outlook.com (2603:10b6:930:8a::28)
 by PH7PR12MB7796.namprd12.prod.outlook.com (2603:10b6:510:275::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Thu, 21 Dec
 2023 07:35:34 +0000
Received: from CY4PEPF0000EE3E.namprd03.prod.outlook.com
 (2603:10b6:930:8a:cafe::fd) by CYZPR10CA0019.outlook.office365.com
 (2603:10b6:930:8a::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.19 via Frontend
 Transport; Thu, 21 Dec 2023 07:35:34 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EE3E.mail.protection.outlook.com (10.167.242.18) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Thu, 21 Dec 2023 07:35:34 +0000
Received: from [10.0.2.15] (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.34; Thu, 21 Dec
 2023 01:35:28 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 892025c7-9fd3-11ee-98eb-6d05b1d4d9a1
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jWcVoAVW8DLaqU8FyaTyLSh6UoAuTzmG/szsqxoYO93JVyhk4qvN/5jG66jZwHIejWU3TsAbj+eu+TgA0ow049i1pS102t7OyxzzHtqdCHrFza9OM9JHPdf04WDMP8+O0hrVsiWLBIOOPCV4TbABxGEBjBsaNcIHfvlL0ZggPrt7s2UOL7/vXG/uBgFenKRq/Wy0JQYqJKqfHLKLpiPpoMW8RumBONwOBOP4t/hn9n8Jx6tbs7crgHK4o097qJGd5cb3hfgVyDswove4opldXQuEuEV5ogPv19bPO2lksEpGOd+0551bNYtUc7L0t58Y/REBa9I9pdz9su4cUIkfTA==
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=cBg1RFKwfCltc2bAsEKH1SzSEPwyga35JcWmW9EZVVw=;
 b=ON3dX1aVTWQu482p++VHBa/nqV3wwMKNC03wFLhkkhUDPfhkBMqRUDeH++mcO021FylWzaVX1ic63GHwRAvmgF7YEwKTQgs1HnGzFEGRW5Fz2j16Q+BVkuXE0mDLBVoGX9PPvrqvZVCjW1ECDc2HdfHrgPFGM7ieA5ZyEROS2PWUa7Z3W9/7Eqz9B8PYXyE+denpu3QaI9NRKlaStdtH172YE/xu9Dof+cbp5twj3Nmd00LYvjd/lJwwcDYa0N73pjYbOs3LMKYM5je2q/GCI6/pQicD3ObKT3OARafkq4CIEE9gG8EKftC+FGhWvMmW1sUycNnAM/ypxI9LMGI9Qg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=cBg1RFKwfCltc2bAsEKH1SzSEPwyga35JcWmW9EZVVw=;
 b=EERJN2skj91UegvEegAmuYTn7XYJgLD7WYVAQK2kc1XoWOstLSusGdtyrrgAWjv7uDNL/H6hvU6zE2hgHxGWKGJ3Bg5wpfm7NPMorSgbpYZZdppOnYY1ZW3r+1oYau1tXhtFUF2732HB6jANdhrkWwjLI3y/vUo7d5P9GlI8Xo0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <5dd37851-0b68-45ae-9843-9c1d6dc078f9@amd.com>
Date: Thu, 21 Dec 2023 09:35:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 06/11] softmmu/memory: enable automatic deallocation of
 memory regions
Content-Language: en-US
To: Akihiko Odaki <akihiko.odaki@daynix.com>, Huang Rui <ray.huang@amd.com>,
	=?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	"Alex Deucher" <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?Q?Christian_K=C3=B6nig?=
	<christian.koenig@amd.com>, Pierre-Eric Pelloux-Prayer
	<pierre-eric.pelloux-prayer@amd.com>, Honglei Huang <honglei1.huang@amd.com>,
	Julia Zhang <julia.zhang@amd.com>, Chen Jiqian <Jiqian.Chen@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-7-ray.huang@amd.com>
 <a88696bc-2ffe-442a-a171-50e6120bbf97@daynix.com>
From: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
In-Reply-To: <a88696bc-2ffe-442a-a171-50e6120bbf97@daynix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3E:EE_|PH7PR12MB7796:EE_
X-MS-Office365-Filtering-Correlation-Id: dc70750b-89d2-4d28-4840-08dc01f76b0a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	5o0qTgmFvqpSsdy/FoJQMINwFegtSY0KEdezvo8bv5vcCRtp5nQoofRAyoQmIj/Vl2MfxHVig4+ojZ4Tyu1pJTvTKTnu14h3GE0iENPJ//n62+mUOPfMe6OgJ/DUVuHNHnJTB9Uyb0paO3Mszuxl4Mpyqnibya6napdxQN+Mu7j9drtv2XE0P/ZcqFnRNYKRp9pfFGNsXJgwZ4UikfqoSbSDr0GuXUKaS8uUhXpqZnoirEIpJTY6tGMA34V0KHVYRWmfVNj7N3vX2Nys2e8fXJjxKOTJpLwxuygVvXfPeEyqelUb0bU7h49CCtk6zGDpzMvOpUPVXadsB3xzYeQ2FN7CEJRzExh789SwM6vM3H8P+LO2b64LlCJc0u/Fh9s159hHYaogG3W7gfLiAGgQyjjffzYiNixPzVLXyucgJYYB74zA9SwGWDMQ1ctcbXr++dE+X0xderr7FSsnR2AwJoDsTg9Jen+vDXgOR41x1iOV34dbjVxKVmcLiyQnuzzbUuq1FGLA4YNEXs0+BaWGjsYInTBWBcju31Wm6vYjisVOcb0RbSU/aoe2CDGUyCDvTDXM0/qafc4lR9+cbv4lByWdS51BU8d9djNa6l7tIl4AQr+pOJh6e6t7dQK+vSkDY2ZKYsaTBEdX9h4oUtd0liKuNprkKDsFgZq0Lk45mAtNaEMVMpzez+PcbUzKywXVTM5IuPQkgpFtGzPAOV//MMz6DKXe86y/MY5yrp6KmlAsEzqRKuojOoGmedX1i8MmbMzOIvsRxdfrgyFwwsPalXBjw6jhrEJG72bCskh4hw007+A4wvhSi1/MVshNByUO3ahRjhqU4saoDI/TsJKyOQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(346002)(396003)(136003)(39860400002)(230922051799003)(186009)(1800799012)(64100799003)(82310400011)(451199024)(36840700001)(46966006)(40470700004)(83380400001)(81166007)(47076005)(16576012)(40480700001)(41300700001)(2616005)(44832011)(54906003)(36860700001)(316002)(478600001)(336012)(40460700003)(426003)(356005)(82740400003)(31686004)(70586007)(70206006)(110136005)(8676002)(8936002)(4326008)(16526019)(26005)(2906002)(31696002)(6666004)(86362001)(66899024)(53546011)(5660300002)(7416002)(36756003)(921008)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2023 07:35:34.3059
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dc70750b-89d2-4d28-4840-08dc01f76b0a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE3E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7796


On 21/12/23 07:45, Akihiko Odaki wrote:
> On 2023/12/19 16:53, Huang Rui wrote:
>> From: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
>>
>> When the memory region has a different life-cycle from that of her 
>> parent,
>> could be automatically released, once has been unparent and once all 
>> of her
>> references have gone away, via the object's free callback.
>>
>> However, currently, the address space subsystem keeps references to the
>> memory region without first incrementing its object's reference count.
>> As a result, the automatic deallocation of the object, not taking into
>> account those references, results in use-after-free memory corruption.
>>
>> More specifically, reference to the memory region is kept in flatview
>> ranges. If the reference count of the memory region is not incremented,
>> flatview_destroy(), that is asynchronous, may be called after memory
>> region's destruction. If the reference count of the memory region is
>> incremented, memory region's destruction will take place after
>> flatview_destroy() has released its references.
>>
>> This patch increases the reference count of an owned memory region object
>> on each memory_region_ref() and decreases it on each 
>> memory_region_unref().
> 
> Why not pass the memory region itself as the owner parameter of 
> memory_region_init_ram_ptr()?

Hmm, in that case, how will it be guaranteed that the VirtIOGPU won't 
disappear while the memory region is still in use?


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 07:40:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 07:40:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658525.1027716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGDf2-0001vg-Lo; Thu, 21 Dec 2023 07:40:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658525.1027716; Thu, 21 Dec 2023 07:40: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 1rGDf2-0001v7-IZ; Thu, 21 Dec 2023 07:40:04 +0000
Received: by outflank-mailman (input) for mailman id 658525;
 Thu, 21 Dec 2023 07:40: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=hvtX=IA=amd.com=Xenia.Ragiadakou@srs-se1.protection.inumbo.net>)
 id 1rGDf1-0001cI-5y
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 07:40:03 +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 2376a7b3-9fd4-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 08:39:58 +0100 (CET)
Received: from DS7PR03CA0151.namprd03.prod.outlook.com (2603:10b6:5:3b2::6) by
 IA0PR12MB7603.namprd12.prod.outlook.com (2603:10b6:208:439::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7113.20; Thu, 21 Dec 2023 07:39:53 +0000
Received: from CY4PEPF0000FCC2.namprd03.prod.outlook.com
 (2603:10b6:5:3b2:cafe::20) by DS7PR03CA0151.outlook.office365.com
 (2603:10b6:5:3b2::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18 via Frontend
 Transport; Thu, 21 Dec 2023 07:39:53 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000FCC2.mail.protection.outlook.com (10.167.242.104) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.20 via Frontend Transport; Thu, 21 Dec 2023 07:39:52 +0000
Received: from [10.0.2.15] (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.34; Thu, 21 Dec
 2023 01:39:45 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2376a7b3-9fd4-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AOm6xZeaZek3UvxeUeZ20FgMD6FGWgtJ8O/ppS7f0n2IqPEPgMC0A99i/Y2utvL8lzUqYdgoRxFQ180tuRBxsuJup1NPL1agE01vLpdd33MLTLe56cXP363VsS5K26tBbOqJES/U1YdiagCYghsMmbrBPIHKOPFE73rK0osZp54konXoNDmPECLm/rgdnPc58aFFP+P6oSy5UshBrPP3ylIzoUpVkt1Vt51nkSNT/HLJSY3saUGruL6ksch2qXkvZ38YQ1G4cTSCxMTyoVoz5KSBt6blG5c9yO71V1kFjrVOSH4SC0m65nL5tlF9hpH8bOYhoeflu1FhyBuJOAzsNg==
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=xyjw1tmwpT5Pf1kzFODIDGXdLJwV+RU3s8TKgBENjzU=;
 b=jra3PeMz4CY0Ziq20edQ2NljSRaHzxjEglhXxzksaqsUZjUeUDioI922107rc4vtJ7B0RlmKAfzZ3eewC6h9YWnKRAQWIw1qHLWkRUkMC2pmLjbaAD7oiJQnek1wJcfdPTCInaZzdseo2nozyjRz3o3a/PrJ1Ius9QjbhIJCW+Xn4se0dVntXkFlxS1eOyOJaqE0gedzo7CqzukdELLqEdjIZT82NzaEZpJTxDJFvDmwlAJfVTZORpSxO40uVpky6k0o0bdX7ipzL1s3gQVwmR8g6Ytv9cSDLDHAngxxtsUrYLMfu6wSNsnUMtYZE8CnkhRxC8l6JmWWJYVnHq4o5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=xyjw1tmwpT5Pf1kzFODIDGXdLJwV+RU3s8TKgBENjzU=;
 b=HwpSs3O5HWgt/Lgf7ff8ay8UM3i3RV26YMV30+jqN2PGf3caJyjpQ4PDtshq3FQM6HjZ0ax+dvb+HKDHLHuXsiwrIYGH8tRQ6IvAZo4Y6U+GgVh2KWbjEkoRjTZXNtPQZtOuEPSSyf5i0/Pn9C8W38lP7jY5ZSgRTDhQdrDVGgk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <74fcbb90-567a-4a40-819f-4aefe05731d1@amd.com>
Date: Thu, 21 Dec 2023 09:39:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 07/11] virtio-gpu: Handle resource blob commands
Content-Language: en-US
To: Akihiko Odaki <akihiko.odaki@daynix.com>, Huang Rui <ray.huang@amd.com>,
	=?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	"Alex Deucher" <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?Q?Christian_K=C3=B6nig?=
	<christian.koenig@amd.com>, Pierre-Eric Pelloux-Prayer
	<pierre-eric.pelloux-prayer@amd.com>, Honglei Huang <honglei1.huang@amd.com>,
	Julia Zhang <julia.zhang@amd.com>, Chen Jiqian <Jiqian.Chen@amd.com>,
	"Antonio Caggiano" <antonio.caggiano@collabora.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-8-ray.huang@amd.com>
 <9ee393a7-283c-41b2-a7bb-5e3306c0257e@daynix.com>
From: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
In-Reply-To: <9ee393a7-283c-41b2-a7bb-5e3306c0257e@daynix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC2:EE_|IA0PR12MB7603:EE_
X-MS-Office365-Filtering-Correlation-Id: 54722509-b217-4757-4b8c-08dc01f80522
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	NS9g6Qr+npmbnQgVLRtDRYGzHEKGMvln1ih+Yn2IG8F5YZt06uGf7WlyR8bIk7KLm1mb0N/7C5/1yuiGq5D5yi3XptnsRH5wN6iT6a+byXGz+671BlgboY2S+C0jgxAyemxmuvXE2ksSIwkp4dq8V+Piff6vTGgeUXWPM5qS+yvJ0xmwcd5tm8hIH/vRwi3wxXzT3aQSo8D/Q4MSs4wtC+JOi7SsV3ERt3bosUy3hbBeVc4IbC1omWx1jfnmvehcDU/0S97K3DPj38YME87xm/q0b38zgYjwTLzz2YfXf4I1PwvXMo8uqm3x+Hl4+4cBG95+PM/xzZ1jNtIczOVkilvd72VupoVmO0/03h5yGEv/59QqCBwJrr1ShY6CmHyjUxBRoiy0sHtqn/p7RuxFg+oIBW6v2R56EuU2wHJcBq1LmKdTFU8bRQzacSOfqaVYJOI5zfpGBOCSQx5ECv/eKiHvmPOYrBeYUzmvTfxaQNg3qRhVKI0W45UZZxajART8ph9wrg490fcBQA400jW+/0MeSrEZJeEVAmqzyvgOS/onJ4CUl0vSzfgX/Ypz5JuNAGFAzDIyQUeW7p3v81Nc6e9jeJrP4uG2A0Sc3Cdqfwd8hDc37PF7+neGYlYO7KjOwXBJ3FG5uxVsduy1F3ZS2EPNuqdPxlGHNyu2or4BYfZ1YI8PcayO5lfGwB3fYSxsoiJE6MeTGJcZnRdYBHcwioDkaNp+4Kew7mLFYvZNHHG/YQOpZ98z1qDl8C8LKKfS+kzly67zl00i1SCRxb1tl00hfJa7Fc1dB0FxGRa1Kp7IWnRYCpzFPTAmWE++q/Jcjjd9Wr5UkHvLtBDVuEdOBg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(39860400002)(136003)(346002)(376002)(230922051799003)(82310400011)(1800799012)(186009)(64100799003)(451199024)(36840700001)(46966006)(40470700004)(6666004)(478600001)(54906003)(110136005)(16576012)(316002)(8676002)(8936002)(70586007)(70206006)(83380400001)(36860700001)(47076005)(53546011)(26005)(336012)(426003)(16526019)(2616005)(41300700001)(2906002)(7416002)(4326008)(5660300002)(44832011)(40480700001)(86362001)(31696002)(31686004)(921008)(36756003)(82740400003)(81166007)(356005)(40460700003)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2023 07:39:52.8324
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54722509-b217-4757-4b8c-08dc01f80522
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000FCC2.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7603


On 21/12/23 07:57, Akihiko Odaki wrote:
> On 2023/12/19 16:53, Huang Rui wrote:
>> From: Antonio Caggiano <antonio.caggiano@collabora.com>
>>
>> Support BLOB resources creation, mapping and unmapping by calling the
>> new stable virglrenderer 0.10 interface. Only enabled when available and
>> via the blob config. E.g. -device virtio-vga-gl,blob=true
>>
>> Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
>> Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
>> Signed-off-by: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
>> Signed-off-by: Huang Rui <ray.huang@amd.com>
>> ---
>>
>> Changes in v6:
>> - Use new struct virgl_gpu_resource.
>> - Unmap, unref and destroy the resource only after the memory region
>> Â Â  has been completely removed.
>> - In unref check whether the resource is still mapped.
>> - In unmap_blob check whether the resource has been already unmapped.
>> - Fix coding style
>>
>> Â  hw/display/virtio-gpu-virgl.c | 274 +++++++++++++++++++++++++++++++++-
>> Â  hw/display/virtio-gpu.cÂ Â Â Â Â Â  |Â Â  4 +-
>> Â  meson.buildÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  4 +
>> Â  3 files changed, 276 insertions(+), 6 deletions(-)
>>
>> diff --git a/hw/display/virtio-gpu-virgl.c 
>> b/hw/display/virtio-gpu-virgl.c
>> index faab374336..5a3a292f79 100644
>> --- a/hw/display/virtio-gpu-virgl.c
>> +++ b/hw/display/virtio-gpu-virgl.c
>> @@ -17,6 +17,7 @@
>> Â  #include "trace.h"
>> Â  #include "hw/virtio/virtio.h"
>> Â  #include "hw/virtio/virtio-gpu.h"
>> +#include "hw/virtio/virtio-gpu-bswap.h"
>> Â  #include "ui/egl-helpers.h"
>> @@ -24,8 +25,62 @@
>> Â  struct virgl_gpu_resource {
>> Â Â Â Â Â  struct virtio_gpu_simple_resource res;
>> +Â Â Â  uint32_t ref;
>> +Â Â Â  VirtIOGPU *g;
>> +
>> +#ifdef HAVE_VIRGL_RESOURCE_BLOB
>> +Â Â Â  /* only blob resource needs this region to be mapped as guest 
>> mmio */
>> +Â Â Â  MemoryRegion *region;
> 
> Why not just embed MemoryRegion into struct virgl_gpu_resource instead 
> of having a pointer?

To decouple memory region from the resource. Since there are different 
commands for creating and mapping maybe there is the intention to map 
the same resource multiple times. If the lifecycle of the resource is 
tightly coupled to the lifecycle of the memory region then the memory 
region could be embedded into the struct. Ray could give more insight.

> 
>> +#endif
>> Â  };
>> +static void vres_get_ref(struct virgl_gpu_resource *vres)
>> +{
>> +Â Â Â  uint32_t ref;
>> +
>> +Â Â Â  ref = qatomic_fetch_inc(&vres->ref);
>> +Â Â Â  g_assert(ref < INT_MAX);
>> +}
>> +
>> +static void virgl_resource_destroy(struct virgl_gpu_resource *vres)
>> +{
>> +Â Â Â  struct virtio_gpu_simple_resource *res;
>> +Â Â Â  VirtIOGPU *g;
>> +
>> +Â Â Â  if (!vres) {
>> +Â Â Â Â Â Â Â  return;
>> +Â Â Â  }
>> +
>> +Â Â Â  g = vres->g;
>> +Â Â Â  res = &vres->res;
>> +Â Â Â  QTAILQ_REMOVE(&g->reslist, res, next);
>> +Â Â Â  virtio_gpu_cleanup_mapping(g, res);
>> +Â Â Â  g_free(vres);
>> +}
>> +
>> +static void virgl_resource_unref(struct virgl_gpu_resource *vres)
>> +{
>> +Â Â Â  struct virtio_gpu_simple_resource *res;
>> +
>> +Â Â Â  if (!vres) {
>> +Â Â Â Â Â Â Â  return;
>> +Â Â Â  }
>> +
>> +Â Â Â  res = &vres->res;
>> +Â Â Â  virgl_renderer_resource_detach_iov(res->resource_id, NULL, NULL);
>> +Â Â Â  virgl_renderer_resource_unref(res->resource_id);
>> +}
>> +
>> +static void vres_put_ref(struct virgl_gpu_resource *vres)
>> +{
>> +Â Â Â  g_assert(vres->ref > 0);
>> +
>> +Â Â Â  if (qatomic_fetch_dec(&vres->ref) == 1) {
>> +Â Â Â Â Â Â Â  virgl_resource_unref(vres);
>> +Â Â Â Â Â Â Â  virgl_resource_destroy(vres);
>> +Â Â Â  }
>> +}
>> +
>> Â  static struct virgl_gpu_resource *
>> Â  virgl_gpu_find_resource(VirtIOGPU *g, uint32_t resource_id)
>> Â  {
>> @@ -59,6 +114,8 @@ static void virgl_cmd_create_resource_2d(VirtIOGPU *g,
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  c2d.width, c2d.height);
>> Â Â Â Â Â  vres = g_new0(struct virgl_gpu_resource, 1);
>> +Â Â Â  vres_get_ref(vres);
>> +Â Â Â  vres->g = g;
>> Â Â Â Â Â  vres->res.width = c2d.width;
>> Â Â Â Â Â  vres->res.height = c2d.height;
>> Â Â Â Â Â  vres->res.format = c2d.format;
>> @@ -91,6 +148,8 @@ static void virgl_cmd_create_resource_3d(VirtIOGPU *g,
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  c3d.width, c3d.height, 
>> c3d.depth);
>> Â Â Â Â Â  vres = g_new0(struct virgl_gpu_resource, 1);
>> +Â Â Â  vres_get_ref(vres);
>> +Â Â Â  vres->g = g;
>> Â Â Â Â Â  vres->res.width = c3d.width;
>> Â Â Â Â Â  vres->res.height = c3d.height;
>> Â Â Â Â Â  vres->res.format = c3d.format;
>> @@ -126,12 +185,21 @@ static void virgl_cmd_resource_unref(VirtIOGPU *g,
>> Â Â Â Â Â Â Â Â Â  return;
>> Â Â Â Â Â  }
>> -Â Â Â  virgl_renderer_resource_detach_iov(unref.resource_id, NULL, NULL);
>> -Â Â Â  virgl_renderer_resource_unref(unref.resource_id);
>> +#ifdef HAVE_VIRGL_RESOURCE_BLOB
>> +Â Â Â  if (vres->region) {
>> +Â Â Â Â Â Â Â  VirtIOGPUBase *b = VIRTIO_GPU_BASE(g);
>> +Â Â Â Â Â Â Â  MemoryRegion *mr = vres->region;
>> +
>> +Â Â Â Â Â Â Â  warn_report("%s: blob resource %d not unmapped",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  __func__, unref.resource_id);
>> +Â Â Â Â Â Â Â  vres->region = NULL;
>> +Â Â Â Â Â Â Â  memory_region_set_enabled(mr, false);
>> +Â Â Â Â Â Â Â  memory_region_del_subregion(&b->hostmem, mr);
>> +Â Â Â Â Â Â Â  object_unparent(OBJECT(mr));
>> +Â Â Â  }
>> +#endif /* HAVE_VIRGL_RESOURCE_BLOB */
>> -Â Â Â  QTAILQ_REMOVE(&g->reslist, &vres->res, next);
>> -Â Â Â  virtio_gpu_cleanup_mapping(g, &vres->res);
>> -Â Â Â  g_free(vres);
>> +Â Â Â  vres_put_ref(vres);
> 
> What will happen if the guest consecutively requests 
> VIRTIO_GPU_CMD_RESOURCE_UNREF twice for a mapped resource?

You are right. I think the resource needs to be removed from the list 
synchronously on first unref.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 07:50:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 07:50:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658531.1027726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGDpF-0004po-JK; Thu, 21 Dec 2023 07:50:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658531.1027726; Thu, 21 Dec 2023 07:50:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGDpF-0004ph-GX; Thu, 21 Dec 2023 07:50:37 +0000
Received: by outflank-mailman (input) for mailman id 658531;
 Thu, 21 Dec 2023 07:50:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1W3I=IA=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rGDpE-0004oS-5i
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 07:50:36 +0000
Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com
 [2607:f8b0:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9f224db0-9fd5-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 08:50:35 +0100 (CET)
Received: by mail-pl1-x633.google.com with SMTP id
 d9443c01a7336-1d408c2908cso457105ad.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 23:50:35 -0800 (PST)
Received: from ?IPV6:2400:4050:a840:1e00:9ac7:6d57:2b16:6932?
 ([2400:4050:a840:1e00:9ac7:6d57:2b16:6932])
 by smtp.gmail.com with ESMTPSA id
 d21-20020a170902c19500b001d0c3328a63sm972461pld.66.2023.12.20.23.50.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 23:50:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f224db0-9fd5-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1703145033; x=1703749833; 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=OLUNEaNazWElk5LNvSjgKYQHnJmPtc7ll3wR32irQhE=;
        b=GmQ5DK12wzgI1eH0z/1q7Gc2j3oTNxzzYUeO1BeEfx7V/j7OcsPrxG7u3Xa+tX/dzO
         1bqL4L6L8Z2RsGLJVPOzytLLFLaegfXDzYwQtoWKVZcOyiiCkxXd8EZVKZ1pj3nbgS0R
         I3wM3xOye3CNnWWbnWUg0hoyS5omJh/0B+PcZklfS5z3xiiAj48AeeJc3XIXudC/mgJC
         FGumUdAvrPV8aGzZGSIj1ZeoehvIs23rKo9oU432By09pRAE89PGNURJvMNb6+4LSLfS
         g3QriijCYJaYMh2aib8D77Uav7snLG/T0xDO5clPG6o7gH5Hsg88DWVELc1Z+aYjBNdU
         xAHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703145033; x=1703749833;
        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=OLUNEaNazWElk5LNvSjgKYQHnJmPtc7ll3wR32irQhE=;
        b=aOLsYR7JUELMdduP8OaQ6pfciX1+HXgPi6o2Hfh0UKVXdmhfiDubMd+66TTojtXAf9
         5m17tsxVq5UNC3dXWWvPtfJTsFCBwvCBbCCnuMO4GRcln8dOjfZs9bowvhN7tgn2AsaC
         sZJYodYnvoqFzK7cfCJ3zETw8tL5nn5HqVqgRdGiQg2OLzZ5Y3YGrT7knxjjySc/NSMo
         Qb7pncM1J+jHIQJs1S3mskXF6aNQ8JYwMhXSziJ0AK1s8gnux8F2ksOcMd1LJJIMQX+W
         PllW0jJS16x/PHVJqx1nnMtFNicEoJJP+xOU3NgAwXf0Hp+NKxOqDze92V5mA24mHeoz
         +D7w==
X-Gm-Message-State: AOJu0YzgTGP7nv9g+g9znH79PfkQaNixEtn/NFd7dxX8e5bElBW14LOY
	pQJK9JivxB1Z3IzqK0/caadDgw==
X-Google-Smtp-Source: AGHT+IFRkKA+vhyi+S3UFsA8cjOfaflfAeEhCaGNiKFgvhAVyfdCpal5yYhxJ1UkT7WFGCcLiHX3CA==
X-Received: by 2002:a17:902:ea05:b0:1d3:bb5b:c51 with SMTP id s5-20020a170902ea0500b001d3bb5b0c51mr5088668plg.72.1703145033585;
        Wed, 20 Dec 2023 23:50:33 -0800 (PST)
Message-ID: <9fb98128-eada-4a50-996e-b442ce8035cd@daynix.com>
Date: Thu, 21 Dec 2023 16:50:27 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 06/11] softmmu/memory: enable automatic deallocation of
 memory regions
To: Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Huang Rui
 <ray.huang@amd.com>, =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?=
 <marcandre.lureau@gmail.com>, =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?=
 <philmd@linaro.org>, Gerd Hoffmann <kraxel@redhat.com>,
 "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: xen-devel@lists.xenproject.org,
 Gurchetan Singh <gurchetansingh@chromium.org>, ernunes@redhat.com,
 Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alex Deucher <alexander.deucher@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
 Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-7-ray.huang@amd.com>
 <a88696bc-2ffe-442a-a171-50e6120bbf97@daynix.com>
 <5dd37851-0b68-45ae-9843-9c1d6dc078f9@amd.com>
Content-Language: en-US
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <5dd37851-0b68-45ae-9843-9c1d6dc078f9@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/21 16:35, Xenia Ragiadakou wrote:
> 
> On 21/12/23 07:45, Akihiko Odaki wrote:
>> On 2023/12/19 16:53, Huang Rui wrote:
>>> From: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
>>>
>>> When the memory region has a different life-cycle from that of her 
>>> parent,
>>> could be automatically released, once has been unparent and once all 
>>> of her
>>> references have gone away, via the object's free callback.
>>>
>>> However, currently, the address space subsystem keeps references to the
>>> memory region without first incrementing its object's reference count.
>>> As a result, the automatic deallocation of the object, not taking into
>>> account those references, results in use-after-free memory corruption.
>>>
>>> More specifically, reference to the memory region is kept in flatview
>>> ranges. If the reference count of the memory region is not incremented,
>>> flatview_destroy(), that is asynchronous, may be called after memory
>>> region's destruction. If the reference count of the memory region is
>>> incremented, memory region's destruction will take place after
>>> flatview_destroy() has released its references.
>>>
>>> This patch increases the reference count of an owned memory region 
>>> object
>>> on each memory_region_ref() and decreases it on each 
>>> memory_region_unref().
>>
>> Why not pass the memory region itself as the owner parameter of 
>> memory_region_init_ram_ptr()?
> 
> Hmm, in that case, how will it be guaranteed that the VirtIOGPU won't 
> disappear while the memory region is still in use?

You can object_ref() when you do memory_region_init_ram_ptr() and 
object_unref() when the memory region is being destroyed.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 07:58:18 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 07:58:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658538.1027735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGDwc-0006BL-Gs; Thu, 21 Dec 2023 07:58:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658538.1027735; Thu, 21 Dec 2023 07:58:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGDwc-0006BE-EG; Thu, 21 Dec 2023 07:58:14 +0000
Received: by outflank-mailman (input) for mailman id 658538;
 Thu, 21 Dec 2023 07:58: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=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGDwa-0006B6-CA
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 07:58:12 +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 af2268bf-9fd6-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 08:58:10 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40d2764c0f2so5931275e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Dec 2023 23:58:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 m5-20020a05600c4f4500b0040c57e4ea28sm10174751wmq.17.2023.12.20.23.58.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Dec 2023 23:58:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af2268bf-9fd6-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703145490; x=1703750290; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=kCDGwXoUh2vP8rmkpjqZSMvOXZXoWj/OxWNHfNbVkOg=;
        b=LAHixWaTccQ3X161vnG+XT/UshxjOOi1zYAWINNJDfZJVxNUg1Cd/mV43X/ziuzlZX
         xwwx/ZByxZyelHYDIxaXfeb2Z1JH3DQL8QrradnWA3BclFkTh737D14aic0zaZj4PgHN
         WFKqkjLblX3PkVlI2oipyt3XXsO+IrQ5SxPLTDMn6MLhVZnEVH1OoZD+DJvyYX5S4qxC
         2mVW6R+PBG00gKycdaYSHJQ/tOwJS62vVNwfAuqz5wm7nURapO9dmfIbCx8phS1g1x61
         PXby2LJqcSB2sP1mgtozy6Otr38jANZbxVf42R/fonCpAiRKauaJmtAqSp5cm7Mvqf3F
         M5Fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703145490; x=1703750290;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=kCDGwXoUh2vP8rmkpjqZSMvOXZXoWj/OxWNHfNbVkOg=;
        b=Yh6Wj6CvhFdL8myr+7sFjWxS/lg6MB9bhA+RvL5Bc+LxxrMrkM1vR1qBKmnTUAvkHq
         75WzvAnaq7fmx/H3W8gqM4Zxx/OeGe48sfFkm72ur+im43BnPHEZUJFDTR8QLwww1ejN
         POXKxLz4zEYK5ADwrsOmJRQDWdiPiwEYOLV+kgoq4uYH/J4fPRS1O5RVuVsiNV/8v6G/
         A8vzx4dOqG4bLDrn15gNgU7frhXYlrwYz+kZwIilJRvpHM/RI29vDUs62rofAJygYdMN
         DHQwjQlF/p6ISxIEaEZE3QsZ1xNTMp01o7/fjltlKvnI8wjtlBO/Zwcul+r8HEyGrymN
         /CdQ==
X-Gm-Message-State: AOJu0YwqCb6hx/dQHhgPk/Tf0kaXJIQ0plqGYmKSeYwC3Vkprns/ThBD
	ZilAr6Km7qwOhVljwHRnOrJz
X-Google-Smtp-Source: AGHT+IFvdG4SEdvE8qnqmrfifRRHomfLPLLbJnY9ZtcTKFvxxkQELZPCrx15Zn9LQyEPSDVYnESATA==
X-Received: by 2002:a05:600c:4f52:b0:40c:325b:6360 with SMTP id m18-20020a05600c4f5200b0040c325b6360mr446416wmq.130.1703145490096;
        Wed, 20 Dec 2023 23:58:10 -0800 (PST)
Message-ID: <5a896d14-d96e-424a-a2a9-f0fc92b3cbde@suse.com>
Date: Thu, 21 Dec 2023 08:58:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/39] xen/riscv: introduce arch-riscv/hvm/save.h
Content-Language: en-US
To: Oleksii <oleksii.kurochko@gmail.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <acb870b980a791d7800d47c08c9574275159df39.1700761381.git.oleksii.kurochko@gmail.com>
 <5eae9d9b-e499-4c8c-aed0-2f52c0aa7c9f@suse.com>
 <f890996c2b100c6ace1f853da2c293d2f9244ef9.camel@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: <f890996c2b100c6ace1f853da2c293d2f9244ef9.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 21:05, Oleksii wrote:
> On Tue, 2023-12-05 at 16:59 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/include/public/arch-riscv/hvm/save.h
>>> @@ -0,0 +1,20 @@
>>> +/* SPDX-License-Identifier: MIT */
>>> +/*
>>> + * Structure definitions for HVM state that is held by Xen and
>>> must
>>> + * be saved along with the domain's memory and device-model state.
>>> + */
>>> +
>>> +#ifndef __XEN_PUBLIC_HVM_SAVE_RISCV_H__
>>> +#define __XEN_PUBLIC_HVM_SAVE_RISCV_H__
>>> +
>>> +#endif
>>> +
>>> +/*
>>> + * Local variables:
>>> + * mode: C
>>> + * c-file-style: "BSD"
>>> + * c-basic-offset: 4
>>> + * tab-width: 4
>>> + * indent-tabs-mode: nil
>>> + * End:
>>> + */
>>
>> Seeing that Arm's is as empty, I wonder why we have it. Julien,
>> Stefano?

I'm still curious about the reason here, but ...

> It seems to exist to satisfy the 'install-tools-public-headers' target:
> install: cannot stat 'xen/arch-arm/hvm/*.h': No such file or directory
> Makefile:58: recipe for target 'install' failed
> make[1]: *** [install] Error 1
> make[1]: Leaving directory '/builds/xen-
> project/people/olkur/xen/tools/include'
> Makefile:44: recipe for target 'install-tools-public-headers' failed
> 
> From tools/include/Makefile:
> install: all
> ...
> $(DESTDIR)$(includedir)/xen/arch-arm
> 	$(INSTALL_DATA) xen/arch-arm/hvm/*.h
> $(DESTDIR)$(includedir)/xen/arch-arm/hvm
> ...
> 
> We have the following options:
> 1. Remove the line with $(INSTALL_DATA) xen/arch-arm/hvm/*.h (only
> save.h is now in this folder, which is empty).

... we can't easily remove any existing public header. We can only try to
avoid making the same mistake (even if it's just a minor one) again.

> 2. Don't touch the Arm part, but for PPC and RISC-V, do the following:
> #if defined(__i386__) || defined(__x86_64__)
> #include "../arch-x86/hvm/save.h"
> #elif defined(__arm__) || defined(__aarch64__)
> #include "../arch-arm/hvm/save.h"
> +#elif defined(__powerpc64__) || defined(__riscv)
> +/* no specific header to include */
> #else
> #error "unsupported architecture"
> #endif

Yes. Still awaiting Shawn's input here as well, though.

> 3. Provide an asm-generic version of save.h for Arm, PPC, and RISC-V
> and use it in public/save.h.

That's not an option imo - what's under public/ needs to be self-contained.
Stuff there isn't supposed to even know of asm-generic/.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:02:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:02:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658549.1027746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGE0z-00008t-Hj; Thu, 21 Dec 2023 08:02:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658549.1027746; Thu, 21 Dec 2023 08: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 1rGE0z-00008m-FB; Thu, 21 Dec 2023 08:02:45 +0000
Received: by outflank-mailman (input) for mailman id 658549;
 Thu, 21 Dec 2023 08:02:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGE0y-00008g-77
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:02:44 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 50cdc104-9fd7-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:02:41 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40d3352b525so5219675e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 00:02:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 p6-20020a05600c468600b004053e9276easm9935381wmo.32.2023.12.21.00.02.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 00:02:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50cdc104-9fd7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703145761; x=1703750561; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=cnuoU+sGtcEm450jItf8wg/uWrWjwDIyNiF7cuRPg6U=;
        b=eRBUnasDzv+GO37MtBCMTdV7pcfLbaqEH1VbXOrveoCNCa0fRaaSVgX7j9BZfFpJJO
         AKCdrnlWmKDK9RwEezVyVq5sC0JpPylijjErUArkTrpAeJACJV/ndqjqSRFMOZWOr24O
         z3Hn7x1Gf6YmAurD6IL6Ny1UC7AzQkGwh1aG9NmptG7BAyLQxAMtE16DygpRCkjS3fsS
         /FiP8CgL/qw7/wmn0HyKYgefbIpq9CvmwdNpEJ/8Ka3/sCd4B3RpXlXrjA8muniGXlur
         5wcljV0ziGrXcpz1mXwchQpQNrKaFUF7GGSqDH/OBvnsOsK5C/uNX1fCoFg6bVKz+ZYo
         ugIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703145761; x=1703750561;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=cnuoU+sGtcEm450jItf8wg/uWrWjwDIyNiF7cuRPg6U=;
        b=qfUxaaI6ZcZw/cvjIAMOoEBSPFGTTrJtjA6+NnU0/8rFNMmIw15+9QvIXyvkzgGjTC
         Rq8nb5vNorfjorQm1KsIeNuNaZWkBiUXjZ2EpXun6JC2p8YR6S/Q7TKr4IoU2t42PMSW
         0mD5fp4KNfuZ/DoOsTn5Cn7ENWWIwuBzePRiXeZpcPqDefkdj+ewg/Y9x/aXfHWOcbHD
         a0ynTIrReegkNO64Mw0QsdiApPcj0V4Fh0QI5XqiauwqQhNhL220pSKbnSgxhEm8feXm
         IyhfFYhHaij8yvpRrw4iyghLuXoK3E/THMjd8X0ZTWXfUD0EyZSjS8bcvqMRXHBHPVUf
         PXeA==
X-Gm-Message-State: AOJu0YyQmPh6z+paCrWoZF6Ftb/mLzkChghkPmMrHDLYUV1yziJZm14k
	gl7cNrXSW7Uhs7lPv1pRlPSo
X-Google-Smtp-Source: AGHT+IFxDDPWCSVX9l7Oa04PfwPWIzpr6x8qsM4wNr7n/V9pG0/42ShmR55rpFH06rI/wkdShaIoEg==
X-Received: by 2002:a05:600c:4589:b0:40d:2086:bb26 with SMTP id r9-20020a05600c458900b0040d2086bb26mr428123wmo.145.1703145761406;
        Thu, 21 Dec 2023 00:02:41 -0800 (PST)
Message-ID: <ede547ec-b6dd-4b41-9655-0944fbda8eec@suse.com>
Date: Thu, 21 Dec 2023 09:02:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 37/39] xen/rirscv: add minimal amount of stubs to build
 full Xen
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <091887466560fbd6b66239f7fee5193eb97570b9.1700761381.git.oleksii.kurochko@gmail.com>
 <f52b19eb-7633-48df-85b9-c6a545dc4232@suse.com>
 <3c34e22a4cf040845e734c3575512945a87465dd.camel@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: <3c34e22a4cf040845e734c3575512945a87465dd.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 13:55, Oleksii wrote:
> On Mon, 2023-12-18 at 18:00 +0100, Jan Beulich wrote:
>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/stubs.c
>>> @@ -0,0 +1,426 @@
>>> +/* 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/time.h>
>>> +#include <public/domctl.h>
>>> +#include <public/vm_event.h>
>>
>> I think I can see why you need the former of these last two, but do
>> you
>> really need the latter?
> It is needed for vm_event_request_t and vm_event_response_t, but if use
> a forward declaration that it won't be needed:
> 
> typedef struct vm_event_st vm_event_request_t;
> typedef struct vm_event_st vm_event_response_t;

Iirc Misra wouldn't like the duplicating of typedef-s used elsewhere. But
as long as that's not going to stay (and I expect stubs.c to go away
before Misra becomes of concern for RISC-V), that's going to be okay, I
think. Yet then avoiding the typedef-s and using struct vm_event_st
directly in the functions would be as good, and overall less code.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:04:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:04:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658552.1027756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGE2s-00011e-U4; Thu, 21 Dec 2023 08:04:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658552.1027756; Thu, 21 Dec 2023 08:04:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGE2s-00011X-Qg; Thu, 21 Dec 2023 08:04:42 +0000
Received: by outflank-mailman (input) for mailman id 658552;
 Thu, 21 Dec 2023 08:04: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=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGE2r-00011P-AM
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:04:41 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9633d3bc-9fd7-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 09:04:38 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c2db2ee28so6215685e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 00:04:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 bl13-20020adfe24d000000b003365fcc1846sm1401555wrb.52.2023.12.21.00.04.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 00:04:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9633d3bc-9fd7-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703145878; x=1703750678; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=DqtT/WY/Ly1y83oE/06BHEIzw3GUxg+ZWhjWOkGSgOg=;
        b=O3LjuikJ7hcniJr6xFKvIhKwzxWAG98U6/73EZ3GNvpgi5noDY5WtJSKVzTcUHAedO
         4ylQtnkT7Fk3OLwOXNcc5J7eCa0NZszyXaA1A0e1JbHIKh4lN/PqIWpqraY7oPHfyc6s
         DCLh8GxIH0SN2VApuNxdygYyzr4DjwU/BkEi10nzr2lRs+5mnx/2f/kPE2PNAMiu+Bnl
         r2I+PR8qW1NtOSBxGgFj/xJqly/jyDRal+1hK6mI02UYON0MlNcIRG50KNVgAV7CVy3l
         vGgegUQau1KFZa4lft8qcmBs4UmKoJlGQPVUARqmuoMu7hGyhNGvERuyexaJurrleAbm
         Xlew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703145878; x=1703750678;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=DqtT/WY/Ly1y83oE/06BHEIzw3GUxg+ZWhjWOkGSgOg=;
        b=rJ3eQLzYG/E0pwuhz5o4nVtQBlpByCp11MwDnKUIB/nDHA6eFy4OT/CJ3PaNZHIAa1
         Or6+LLdAJgHCW2aAZ1u2x6THqNPzTzvg/e46DKGZdueubVrpWy+mL8grthikg4PVnCjO
         T/sDMU1VhEPWlATy8TzreqTRNHag1AKTWlDwBkMVubg9eeXFTta3HWLdD6wU2o3bYrDj
         sflswbkQu1XRcMKW/lAhYYoMipa/ZzcXZiv25NwXSUSJajb77cypPaYnXlndaFHAlbPd
         jy6GQUauC09viHDPGSM1WdxymZ3AaCZxYeb8qjeTlRjaz24hA8CkRFjYdn9OFBeuZ8Dp
         2I5Q==
X-Gm-Message-State: AOJu0Yx8RyIb68Ctd4Rv05LuvbZVFcZ2YCB5Uh2EvmFNRK8N5YqPLe6M
	YhKWjPyTRBbZtyVA7YtIKRzH
X-Google-Smtp-Source: AGHT+IHzDp6OvtMoV5YTYCzd2MKcZTPrvBABBnCjsMSYCAkVmgWgFQRbunUnE+fsGoTK9SfZ20FtBA==
X-Received: by 2002:a05:600c:511d:b0:3fe:1232:93fa with SMTP id o29-20020a05600c511d00b003fe123293famr579240wms.22.1703145877777;
        Thu, 21 Dec 2023 00:04:37 -0800 (PST)
Message-ID: <7483df1c-34f8-4e0e-aad4-c78f219c3d67@suse.com>
Date: Thu, 21 Dec 2023 09:04:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
Content-Language: en-US
To: Federico Serafini <federico.serafini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: consulting@bugseng.com, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com>
 <0200354e-08b9-4136-b6e9-3220a51256af@xen.org>
 <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
 <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@bugseng.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: <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 13:15, Federico Serafini wrote:
> On 20/12/23 12:55, Jan Beulich wrote:
>> On 20.12.2023 12:48, Julien Grall wrote:
>>> On 20/12/2023 11:03, Federico Serafini wrote:
>>>> --- a/xen/arch/arm/arm64/vsysreg.c
>>>> +++ b/xen/arch/arm/arm64/vsysreg.c
>>>> @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
>>>>            /* RO at EL0. RAZ/WI at EL1 */
>>>>            if ( regs_mode_is_user(regs) )
>>>>                return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
>>>> -        else
>>>> -            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>>>> +
>>>> +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>>>
>>> I don't 100% like this change (mostly because I find if/else clearer
>>> here).
>>
>> While (it doesn't matter here) my view on this is different, I'm still
>> puzzled why the tool would complain / why a change here is necessary.
>> It is not _one_ return statement, but there's still (and obviously) no
>> way of falling through.
> 
> The tool is configurable:
> if you prefer deviate these cases instead of refactoring the code
> I can update the configuration.

I guess this then needs to be discussed on the first call in the new year.
Stefano - can you take note of that, please?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:09:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:09:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658557.1027766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGE72-000249-En; Thu, 21 Dec 2023 08:09:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658557.1027766; Thu, 21 Dec 2023 08: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 1rGE72-000242-Bo; Thu, 21 Dec 2023 08:09:00 +0000
Received: by outflank-mailman (input) for mailman id 658557;
 Thu, 21 Dec 2023 08:08:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGE71-00023w-4o
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:08:59 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2fc1f226-9fd8-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:08:56 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3333b46f26aso420425f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 00:08:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 z7-20020a5d4d07000000b00336759019a5sm1405551wrt.42.2023.12.21.00.08.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 00:08:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2fc1f226-9fd8-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703146135; x=1703750935; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=VLwfVvfuZvc2ynbbwFO4N5Uc5sQntJzsWveY3KeXoaA=;
        b=Gip0xX4rZiqMA4UNODOS7uMX3xTGGvO311iUE8bA/PxgnHjeMBqDN1FN2eN9yrIGdv
         aCdcVTkueNATK09y9zDB+LWnHEEZUrVcw778KBIft2bP2RvREchkXCQGT1+4oCPjSgS+
         QTVLsgWPOzJ+wHJf5oT2pKwpyTb9eVk3sLqkNV5CS9/ckJ8DeHUNTmtkA/VN1sB05KxS
         b89STwWEiIZJ2yhveU51w32LbkdLMgz04ZpJ52mBZE0uev2HOsiNZ/FkMLD23CHtxcBj
         Hukq/LbgsTVllEmI+JysZjoRsWx7S+a/TW4LUs9fzVVbMtIA1LiNRfXHfYp5ori/GQ0N
         05AQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703146135; x=1703750935;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=VLwfVvfuZvc2ynbbwFO4N5Uc5sQntJzsWveY3KeXoaA=;
        b=KNO/P28CDx8CJ77yghDJM6D0BHTm4t4YKgIBmQo9EyDBhf0pRpBLkNyDm/zBkI35Ek
         rtX5YnIazHT4qHDb29334skf9Sy1tRkBSwdMNfEV6zlUqi+1M7uhcsxaOxoyc1fUSlnC
         3D8o4vi9rJpUXWTwocnWxEBkDPLYAe9n74jHL5uKFO4ajPjEy0BUkbFp8UBbV2mMLu2X
         ksLeY+n/eEOizI90BhXsKn6pWUaA3D/JCHbQDUMCYWBu0a1CAwpECyHctT8OFOsPfP1K
         u9uZWAdGV6wRXLKTdaKcYM6Yw7Eu7A/Dv7FcMdMRsDzgi5NN5DkmY9oZf8aW2Y1+tZ6S
         Zmuw==
X-Gm-Message-State: AOJu0YyrSKVe/t9/2Rh5f920TdfaHOSiZ44ANCmQJmfEtkvRUP3HZwhC
	nEnLFLrVVf2GmRRwICqZ8hqn
X-Google-Smtp-Source: AGHT+IE1KT8ZVmOb/1x9hrQDLlSIbfoDvlShPfxvStXhhKMH5Em3Rs+1A38PSzUBEnIHCd5y5gLNKQ==
X-Received: by 2002:a5d:4d8b:0:b0:336:68f5:a999 with SMTP id b11-20020a5d4d8b000000b0033668f5a999mr426485wru.36.1703146135396;
        Thu, 21 Dec 2023 00:08:55 -0800 (PST)
Message-ID: <5810703d-7ade-4b85-961c-e0c50f9aab34@suse.com>
Date: Thu, 21 Dec 2023 09:08:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 0/7] xen/arm: address violations of MISRA C:2012 Rule
 16.3
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>,
 Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <d847830f-7071-4141-bab7-8b8c55ec3ae8@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d847830f-7071-4141-bab7-8b8c55ec3ae8@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 22:35, Andrew Cooper wrote:
> On 20/12/2023 11:03 am, Federico Serafini wrote:
>> This patch series addresses violations of MISRA C:2012 Rule 16.3 on the Arm
>> code. No fucntional changes are introduced.
>>
>> Federico Serafini (7):
>>   xen/arm: gic-v3: address violations of MISRA C:2012 Rule 16.3
>>   xen/arm: traps: address violations of MISRA C:2012 Rule 16.3
>>   xen/arm: guest_walk: address violations of MISRA C:2012 Rule 16.3
>>   xen/arm: mem_access: address violations of MISRA C:2012 Rule 16.3
>>   xen/arm: v{cp,sys}reg: address violations of MISRA C:2012 Rule 16.3
>>   xen/arm: mmu: address a violations of MISRA C:2012 Rule 16.3
>>   xen/arm: smmu-v3: address violations of MISRA C:2012 Rule 16.3
>>
>>  xen/arch/arm/arm64/vsysreg.c          |  4 ++--
>>  xen/arch/arm/gic-v3.c                 | 30 +++++++++++++++++++++++++++
>>  xen/arch/arm/guest_walk.c             |  4 ++++
>>  xen/arch/arm/mem_access.c             | 12 +++++------
>>  xen/arch/arm/mmu/p2m.c                |  1 +
>>  xen/arch/arm/traps.c                  | 18 ++++++++++++----
>>  xen/arch/arm/vcpreg.c                 |  4 ++--
>>  xen/drivers/passthrough/arm/smmu-v3.c |  2 ++
>>  8 files changed, 61 insertions(+), 14 deletions(-)
>>
> 
> Just a couple of notes on style.Â  This isn't a request to change
> anything in this series, particularly as most is already committed, but
> bear it in mind for what I expect will be similar patches in other areas.
> 
> We explicitly permit tabulation when it aids readibility, so patch 2
> could have been written:
> 
> Â Â Â Â Â Â Â  switch ( hypercall_args[*nr] ) {
> Â Â Â Â Â Â Â  case 5: HYPERCALL_ARG5(regs) = 0xDEADBEEFU; fallthrough;
> Â Â Â Â Â Â Â  case 4: HYPERCALL_ARG4(regs) = 0xDEADBEEFU; fallthrough;
> Â Â Â Â Â Â Â  case 3: HYPERCALL_ARG3(regs) = 0xDEADBEEFU; fallthrough;
> Â Â Â Â Â Â Â  case 2: HYPERCALL_ARG2(regs) = 0xDEADBEEFU; fallthrough;
> Â Â Â Â Â Â Â  case 1: /* Don't clobber x0/r0 -- it's the return value */
> Â Â Â Â Â Â Â  case 0: /* -ENOSYS case */
> Â Â Â Â Â Â Â Â Â Â Â  break;
> Â Â Â Â Â Â Â  default: BUG();
> Â Â Â Â Â Â Â  }
> 
> (give or take the brace placement other style issue)Â  We also have cases
> where a break before a new case statement is preferred, i.e.:

Did you mean "blank line" here, seeing ...

> Â Â Â  Â Â Â  ...
> Â Â Â  Â Â Â  break;
> 
> Â Â Â  case ...:
> 
> This is to prevent larger switch statements from being a straight wall
> of text.

... this as the further explanation?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:09:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658559.1027776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGE7I-0002SP-Q7; Thu, 21 Dec 2023 08:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658559.1027776; Thu, 21 Dec 2023 08: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 1rGE7I-0002SI-NJ; Thu, 21 Dec 2023 08:09:16 +0000
Received: by outflank-mailman (input) for mailman id 658559;
 Thu, 21 Dec 2023 08: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=1W3I=IA=daynix.com=akihiko.odaki@srs-se1.protection.inumbo.net>)
 id 1rGE7H-00023w-Hk
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:09:15 +0000
Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com
 [2607:f8b0:4864:20::d2a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 39fd1d09-9fd8-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:09:14 +0100 (CET)
Received: by mail-io1-xd2a.google.com with SMTP id
 ca18e2360f4ac-7b7d65d4eecso22089839f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 00:09:13 -0800 (PST)
Received: from ?IPV6:2400:4050:a840:1e00:9ac7:6d57:2b16:6932?
 ([2400:4050:a840:1e00:9ac7:6d57:2b16:6932])
 by smtp.gmail.com with ESMTPSA id
 a25-20020a634d19000000b005c6617b52e6sm1004679pgb.5.2023.12.21.00.09.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 00:09:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39fd1d09-9fd8-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1703146152; x=1703750952; 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=DFHtdbRBuHxh3sdDGxLPtxB6dXV5w1hZThhsj1oHuv8=;
        b=YHd4c1nerak3mZjRQAjqPmma5ZlQlq7NmC0aAeZrNfeyXHVS/3AkTT4DAFI6HGUvCC
         fup8WwQS44dMLGI1wcQL0O3uyyNr27Wl22tixI1GBv5FWtrgUBtN5sQ05fe4QmuJw0Ui
         g4VVyckRJZXLxLkwit6aY9t8wfeoK4s+flO9PfpB5qfD7gUheXmoB77+O0+TsJ9Yv07/
         Yttqgkdaxp5FjVVSXG49wkwJoEM8FzbGwoXiRzfvnZuqmos99r+9Or+5oxUL9fE22WHO
         9vqSV0EH52yqKUwp1H7UGgNE4wE+A0xLcTyW8mY3Ks7be9NZNBRiNCNaUM85vSNyV4E6
         sO6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703146152; x=1703750952;
        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=DFHtdbRBuHxh3sdDGxLPtxB6dXV5w1hZThhsj1oHuv8=;
        b=AG8V5ZeESY5QZpB0Wr+zIKcbHTwDXKsbYOAwk4UKCtgj2XfPdSeNbvGQkZ5ir4xszu
         U6J+KF+97W8SG6rtOOwTwtNJcPcvxO2Nk2vN7PeeE6MyF9kRWdPCEPm1VNsHGiK1uap5
         k7oQHcVgNuNDKxUYnyXqAHaeg34WExeYjU87+SXNBcKNaIwn5rnMhzUBIYXhg0nJHqP6
         mg6Bn5G0LwYINoZ8KQ+5dlvtbdkQQ8TwKBY72jcMAD6WtnZe3YqJ4b71a6S9TSl/SbuN
         cRg4Ri/ehkUracMnF4RMPTPAVV8hkXdVHpFYp+7IgMv4WDTVucdcuvL6a7yjyl+4Wcld
         sKSw==
X-Gm-Message-State: AOJu0YyuxpFXCisJ/NnDJZzWdy9jQCbEbaHAT6neXGlj8zlQegg6/E7X
	r2Nr6ZUX/iBpu/m7bNwTQMJ8xQ==
X-Google-Smtp-Source: AGHT+IH9uE0kFetV0w0R6EKXS4SOYT/kfgC5SWiE3cSPeQAb9GdRshpM1twXSmGc4zg3gIC8XAqDeQ==
X-Received: by 2002:a05:6602:24c9:b0:7b7:5eeb:615e with SMTP id h9-20020a05660224c900b007b75eeb615emr19879747ioe.6.1703146152450;
        Thu, 21 Dec 2023 00:09:12 -0800 (PST)
Message-ID: <0d08a014-cdf5-4b4f-a683-171ae4c8b6e0@daynix.com>
Date: Thu, 21 Dec 2023 17:09:05 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 07/11] virtio-gpu: Handle resource blob commands
Content-Language: en-US
To: Huang Rui <ray.huang@amd.com>,
 =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
 =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@citrix.com>,
 Antonio Caggiano <quic_acaggian@quicinc.com>,
 "Dr . David Alan Gilbert" <dgilbert@redhat.com>,
 Robert Beckett <bob.beckett@collabora.com>,
 Dmitry Osipenko <dmitry.osipenko@collabora.com>,
 Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
 <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: xen-devel@lists.xenproject.org,
 Gurchetan Singh <gurchetansingh@chromium.org>, ernunes@redhat.com,
 Alyssa Ross <hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alex Deucher <alexander.deucher@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Christian_K=C3=B6nig?= <christian.koenig@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
 Honglei Huang <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
 Chen Jiqian <Jiqian.Chen@amd.com>,
 Antonio Caggiano <antonio.caggiano@collabora.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-8-ray.huang@amd.com>
From: Akihiko Odaki <akihiko.odaki@daynix.com>
In-Reply-To: <20231219075320.165227-8-ray.huang@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2023/12/19 16:53, Huang Rui wrote:
> From: Antonio Caggiano <antonio.caggiano@collabora.com>
> 
> Support BLOB resources creation, mapping and unmapping by calling the
> new stable virglrenderer 0.10 interface. Only enabled when available and
> via the blob config. E.g. -device virtio-vga-gl,blob=true

I have another concern about delaying virgl_renderer_resource_unref() 
until the resource gets unmapped; the guest will expect the resource ID 
will be available for a new resource immediately after 
VIRTIO_GPU_CMD_RESOURCE_UNREF, but it will break the assumption and may 
corrupt things.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:13:50 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:13:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658570.1027786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEBb-0005Tl-Az; Thu, 21 Dec 2023 08:13:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658570.1027786; Thu, 21 Dec 2023 08:13:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEBb-0005Te-8C; Thu, 21 Dec 2023 08:13:43 +0000
Received: by outflank-mailman (input) for mailman id 658570;
 Thu, 21 Dec 2023 08:13: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=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGEBZ-0005TY-Qc
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:13:41 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d98dcadf-9fd8-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 09:13:40 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-40d2e5e8d1dso5788315e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 00:13:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 m20-20020a05600c3b1400b0040b4c59f133sm2352194wms.1.2023.12.21.00.13.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 00:13:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d98dcadf-9fd8-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703146420; x=1703751220; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=OKYtMS3z9U2DUl7rdVVBE6C55RH0YYJvFZO0844Ex0M=;
        b=DEbVLuLHG76ZEIWnLnxE2swU9Rgazn2eS3eF5/iGhRVBDfCZibeI37mtnlgNezVxqq
         G24Xi+bjs4STfJyFU93bGldjAQiYi+sRUQSTyMKEQuuwvRmqKxYnymV4j5M1x19/0rzz
         7P/JvJ0rYi8V3/JoRgsdSB7Z3PmOiu3ol1ImWvjxhE6ErH7ll25NDCiRCdDK/TbJIQtM
         GM3cU7hokVYKo/zhpw08BuR99oQIgp/s7xTOC9nhfagd5x0QrtPvAt8eob7pe89cnqgy
         /eHmpi1+RwdZGxXhURzcReFvdGDNdg3iDFkzsRdJQI3HQXba61ZN6zjaP7f/i2Ae+JhK
         r5VQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703146420; x=1703751220;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=OKYtMS3z9U2DUl7rdVVBE6C55RH0YYJvFZO0844Ex0M=;
        b=l8z0C4/dCsYxVLIAyDou/8EKKmTiFMKzMBaDbYZM+/Kmc//0ze9OCiLExTrJEZWF0i
         k0EEjk7xvf7c94Nj6c6KmOTt2cc5m0IObbJFrebJ6/xY5iReqf8EKLuVKMSCsXqRY0Ds
         5kfKnfU84tSx70H6Z4jzAuBZKCvXU3sNWyMRThTUMGUH3oaFu3IvBKkTcWGpROTrCJFs
         olASIhNXS5RROj2nYNFxbxRC1Eqz2ePi41FoGVSNmMbQmf05HlSXv/OuIGvZQFdonJ3H
         ShmFVTgSLZd0fQLGSM980nQFcco1sw0oAD3XZpsExyTjgDG3cgNIOO4XFQzzJnJUz6pS
         TMDQ==
X-Gm-Message-State: AOJu0Yxdm8fmF6Rka8efFvKKZuZoVq6WUMfFDaZyOnayOnQP3SZHdf5H
	Tt+LEKaKNGHUZSkfKOTYGQE6
X-Google-Smtp-Source: AGHT+IEQh9USuqJOp170FP99L+RALDUnQ+ZY1YCXLIAMHiPcYFwrbmen7fvpRqTNP/kZXxYNjUdidg==
X-Received: by 2002:a05:600c:3592:b0:40c:914:d2cf with SMTP id p18-20020a05600c359200b0040c0914d2cfmr271911wmq.134.1703146420351;
        Thu, 21 Dec 2023 00:13:40 -0800 (PST)
Message-ID: <3a580b22-7ff2-4a60-a3c0-0cb03deef6ac@suse.com>
Date: Thu, 21 Dec 2023 09:13:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/6] amd-vi: set IOMMU page table levels based on guest
 reported paddr width
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20231220134346.22430-1-roger.pau@citrix.com>
 <20231220134346.22430-3-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231220134346.22430-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 14:43, Roger Pau Monne wrote:
> --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
> +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
> @@ -359,21 +359,17 @@ int __read_mostly amd_iommu_min_paging_mode = 1;
>  static int cf_check amd_iommu_domain_init(struct domain *d)
>  {
>      struct domain_iommu *hd = dom_iommu(d);
> +    int pglvl = amd_iommu_get_paging_mode(
> +                1UL << (domain_max_paddr_bits(d) - PAGE_SHIFT));

Nit: Considering the "pending" open parenthesis, I think this line
needs indenting one level further. I'll make the adjustment while
committing, unless I hear objections pretty soon.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:21:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:21:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658575.1027795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEIn-0007LV-2t; Thu, 21 Dec 2023 08:21:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658575.1027795; Thu, 21 Dec 2023 08: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 1rGEIn-0007LO-02; Thu, 21 Dec 2023 08:21:09 +0000
Received: by outflank-mailman (input) for mailman id 658575;
 Thu, 21 Dec 2023 08:21:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGEIm-0007LI-60
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:21:08 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3a37e9e-9fd9-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 09:21:07 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3368b9bbeb4so102431f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 00:21:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 j10-20020adff00a000000b003365fc41bcasm1428984wro.51.2023.12.21.00.21.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 00:21:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3a37e9e-9fd9-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703146866; x=1703751666; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=2F7q5Fk6q0XRvTFT/mTRwabYu1spTDASJGoBpToE9Rg=;
        b=I5gMy9kSMVqtE+oQ1V4PlaSk2uPPtBIZc8uzX8vMjftE/QotgI97V5v1dU7g5dndOd
         emw6RuyszQjMAu7kgo65tvp5uVomcjZU62Bzc2Fz3sBXQlZeiTEp7pT9HNLfPdzvC+Lg
         FIEXzfgwpB22hOjJN8AVFjWlk9s4PmurO7A7xWMOyzAb2FXbSqJAbZytlE/BBL01ql2Q
         faV5xy2Z+DtXVnMXo9GESaY/skuKgYBp67BzqAsl2Voe9Asf5dLdd11ZHuEDq8hZJ/qE
         ZChoujWL89ib0MIpNzujvgdRo6VTPvTJLYh66AI01SJyWTfc1T8vdxL5Sw3QhUrYeDd+
         RP0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703146866; x=1703751666;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=2F7q5Fk6q0XRvTFT/mTRwabYu1spTDASJGoBpToE9Rg=;
        b=Bk0rtNVhzzENFs1BuyM48/ALkgYfUu+bBoraYA9hKTcx6IrCfY6++csKtCpGx+zOEg
         hU4+Zgjf3+fEvdTfZtg7hlvuqNjmDjNLZBZKWkDw8yuSFrRYaCy01dn5VWRFUWmLLr8W
         bTfA5Rif4OROVQqrSwnk3N3HYs1S8Fb93A4BEPQDGjtnq5ZCPT7idbMb384wxBCru5MO
         JGmb4pC6MGmc30wbhGlT4UCjWJPhu4PdvA7SDgm6RiHnfbwXnuE3p72UvpUIO+GflHKJ
         YS9QVgvcNgWYP7bgkylS0wfVFeeKH0FktzcIOYzMPLjyEIEukPI9r0GYgxTzlVsFgSnD
         aAGA==
X-Gm-Message-State: AOJu0YwBaOg4V6vKfOHUVDPCOgXLj+f/iPjw2/tx5TwYDiAndvVzYpPr
	69Va7/fYk/wGt4XsmQPq897e
X-Google-Smtp-Source: AGHT+IFFBF7273DmakIqA7wcF7DIDD9+1/GnueEKED8ZKkGw+1+hYLCrqRoPqn3qIeRyWe0SptgabA==
X-Received: by 2002:adf:ee86:0:b0:336:7ff6:af9 with SMTP id b6-20020adfee86000000b003367ff60af9mr319260wro.212.1703146866689;
        Thu, 21 Dec 2023 00:21:06 -0800 (PST)
Message-ID: <ca09561e-4e6a-40ac-b543-80053224f64c@suse.com>
Date: Thu, 21 Dec 2023 09:21:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11.5 1/17] pci: msi: pass pdev to pci_enable_msi()
 function
Content-Language: en-US
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-2-volodymyr_babchuk@epam.com>
 <20231220214628.431512-1-stewart.hildebrand@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: <20231220214628.431512-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.12.2023 22:46, Stewart Hildebrand wrote:
> From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> 
> Previously pci_enable_msi() function obtained pdev pointer by itself,
> but taking into account upcoming changes to PCI locking, it is better
> when caller passes already acquired pdev pointer to the function,
> because caller knows better how to obtain the pointer and which locks
> are needed to be used. Also, in most cases caller already has pointer
> to pdev, so we can avoid an extra list walk.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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




From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:33:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:33:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658581.1027806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEUS-0002He-55; Thu, 21 Dec 2023 08:33:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658581.1027806; Thu, 21 Dec 2023 08: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 1rGEUS-0002HX-1d; Thu, 21 Dec 2023 08:33:12 +0000
Received: by outflank-mailman (input) for mailman id 658581;
 Thu, 21 Dec 2023 08: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=hvtX=IA=amd.com=Xenia.Ragiadakou@srs-se1.protection.inumbo.net>)
 id 1rGEUQ-0002HR-7a
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:33:10 +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 8fc50a40-9fdb-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:33:07 +0100 (CET)
Received: from PH8PR05CA0006.namprd05.prod.outlook.com (2603:10b6:510:2cc::6)
 by IA0PR12MB7652.namprd12.prod.outlook.com (2603:10b6:208:434::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.20; Thu, 21 Dec
 2023 08:33:00 +0000
Received: from SA2PEPF000015CA.namprd03.prod.outlook.com
 (2603:10b6:510:2cc:cafe::e6) by PH8PR05CA0006.outlook.office365.com
 (2603:10b6:510:2cc::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18 via Frontend
 Transport; Thu, 21 Dec 2023 08:33:00 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015CA.mail.protection.outlook.com (10.167.241.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Thu, 21 Dec 2023 08:33:00 +0000
Received: from [10.0.2.15] (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.34; Thu, 21 Dec
 2023 02:32:53 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8fc50a40-9fdb-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=L2kqBsc6/pJrcm6fkSuBiwdht/yZb6O1VCINraGYMZWbPgTs4JkVlfOWx08n53muCCVV8rpOgtpl6A3ID10daAR5B43/YISetwFenBHl3GQgPAvg3b+Ukf3FcAQbU7pipQXKzdpeRiKI+zYj1QGyrogpPhiH6UDynu0IWYP5IWFEL+ErNk8od6Z8ymhoQ2LTbDQmHifEGgZabKNUD5cbDoDFSTIGchLBa4l+3OYyOk1knFRN3HDBlgEGGyKjGjWXZRFJviyiCyxjuMe8R6+LvJpKbtbIulThn97KDvKEvyT2TwRTmb8YDyI46dL0qBYAxN2uL89Zd59G0uVF0oX+KQ==
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=ZcbzJeiJWqGCnCp0vymg2jp8IhUW6vzoPGdNpIMVjzk=;
 b=ahM8Y25zSWxVfxdtxjvh3szXphDPNhcqk78zAq6Q9aqzZh43DT+Xti+qS88tJpnl6pL4Niu80M5SDJlAHF/gFnxcP6jJsukmUMM2htRQFR58FnyDYKTVF5ZttoG0a58OREhxFvCBox0cFIKxsQW3818n/MaA4+oM5UsGIQn0kQn09ZfgkaSsG3zq7hwrUXP/9DY9qVUAi9xupprnQZR/lAfyoNqoyB3JDJ+gpFuPhZR3upO3RsYMYFeF/vPlKc1WvHlN3bu1nWUmQYh6schTyC0R/QVwm/PXv6U4jIj4gGh9eZ3CrSfF+dJv17t3ulwuaNXg7wwxFRMthmrQyedQ0w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=daynix.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=ZcbzJeiJWqGCnCp0vymg2jp8IhUW6vzoPGdNpIMVjzk=;
 b=K1hIv1/JH+XaZBcvfgIH3X0i+kKhjvpkV2Ijwl2EKeejp7ahUL5Yod0NYVZxoeKN/3oe4wTJyNBm8qS7uW5/macUihPyVvBzmjzTDew/zmrE3FTKQIgdV9qQttAHc4NN9gobWHcMMwTd8hgau1TnVOrBboNsPrFFJZpTqbVSINw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <954fe5c2-d5a0-4d32-b822-ba370bc2d09a@amd.com>
Date: Thu, 21 Dec 2023 10:32:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 06/11] softmmu/memory: enable automatic deallocation of
 memory regions
Content-Language: en-US
To: Akihiko Odaki <akihiko.odaki@daynix.com>, Huang Rui <ray.huang@amd.com>,
	=?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>,
	=?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, Gerd Hoffmann
	<kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano <quic_acaggian@quicinc.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>, Robert Beckett
	<bob.beckett@collabora.com>, Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Gert Wollny <gert.wollny@collabora.com>, =?UTF-8?Q?Alex_Benn=C3=A9e?=
	<alex.bennee@linaro.org>, <qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Gurchetan Singh
	<gurchetansingh@chromium.org>, <ernunes@redhat.com>, Alyssa Ross
	<hi@alyssa.is>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	"Alex Deucher" <alexander.deucher@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, =?UTF-8?Q?Christian_K=C3=B6nig?=
	<christian.koenig@amd.com>, Pierre-Eric Pelloux-Prayer
	<pierre-eric.pelloux-prayer@amd.com>, Honglei Huang <honglei1.huang@amd.com>,
	Julia Zhang <julia.zhang@amd.com>, Chen Jiqian <Jiqian.Chen@amd.com>
References: <20231219075320.165227-1-ray.huang@amd.com>
 <20231219075320.165227-7-ray.huang@amd.com>
 <a88696bc-2ffe-442a-a171-50e6120bbf97@daynix.com>
 <5dd37851-0b68-45ae-9843-9c1d6dc078f9@amd.com>
 <9fb98128-eada-4a50-996e-b442ce8035cd@daynix.com>
From: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
In-Reply-To: <9fb98128-eada-4a50-996e-b442ce8035cd@daynix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CA:EE_|IA0PR12MB7652:EE_
X-MS-Office365-Filtering-Correlation-Id: 64f47a52-00f5-4c4e-bcb0-08dc01ff70d6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	2OUlve4a5z60dhgygc0Lq94UiPVsREJUh7lB+tiAgqV/DDe2OHu30FMpFzWiBHpSb5K3YNaq6b2N+DAOB2zQNAcBnFSVq46jjly3v/7OIF1f+UsvjQXSmioGsNkbGVqDudr9B4NuKL2mH5ErWtdgnH9Zs/EN/d2Te48AP9idkF1RD9kBi70VigOIJZaiPJyJBLIiPDYpVDbQG3CYgJwZD5+ODRzBhdYy41p7q4NUI0C/i+O/Tlv72+TVFupw+abQV/u/6VExu4GWges5i+bbXL6N79Hs6DjP9N5vZ4T+Uvu1c7GrjpkZnt5WR0500yxvjBFkecVz6OmcCUG7cM+0rNhdpwbUby4j84YANAaaGcoLU9LmyKaX0NOFdUSXBnFi/D09RXF2ZR08CG4s1I0rDQwzuURieGsCR3QNIqXCXSJWriBCvWBY1+KcHhnNwCohEfgabD3D0SiDwjYZcRhgwIU+pjpdwOfOdVec/3rBigCgYqB5fIJNLdP2B0Thqv9kSc/Kp+h6vEYdJDJ8iWEhH7JNX7I8jdxSg07Sgla7vPUO2pahdExBnMKqqybwuYem4tvm5aw++/DR6Ov0jDRrN8iEJL0M7hxHZrAsX7ErFqxD75Ol8y8y6eXmVpxBNxzf3g5g2V7CY4wfOksYQVWU+RqbpzAtg3I+YK9Sn4mwiDzlOyVIZ4oO1y1vqrwU4NCvEO+qAlKI+iStPXiF94+4+OUr8yD0X53V/7s/YIYSnv05aBEtGwim3aIibG62lPW2LlP8jzcyKT1i7vHyoFK2+c06dHhA99e/Kd+1YUIIo8/wMdPbg0JCEGj7aiwvov/acCiJMxfnPVBjrThyfpFhONsN3hgdmNJaV7saSh+Fbo+QrvQA2Nd2eZJdygbl+jL8
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(376002)(136003)(346002)(39860400002)(230922051799003)(64100799003)(451199024)(1800799012)(82310400011)(186009)(46966006)(40470700004)(36840700001)(8936002)(8676002)(4326008)(316002)(16576012)(110136005)(54906003)(53546011)(40480700001)(47076005)(478600001)(2616005)(31686004)(40460700003)(44832011)(921008)(70206006)(70586007)(36756003)(86362001)(26005)(2906002)(83380400001)(66899024)(41300700001)(16526019)(5660300002)(336012)(82740400003)(356005)(7416002)(426003)(31696002)(81166007)(36860700001)(36900700001)(43740500002);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2023 08:33:00.0552
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 64f47a52-00f5-4c4e-bcb0-08dc01ff70d6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7652


On 21/12/23 09:50, Akihiko Odaki wrote:
> On 2023/12/21 16:35, Xenia Ragiadakou wrote:
>>
>> On 21/12/23 07:45, Akihiko Odaki wrote:
>>> On 2023/12/19 16:53, Huang Rui wrote:
>>>> From: Xenia Ragiadakou <xenia.ragiadakou@amd.com>
>>>>
>>>> When the memory region has a different life-cycle from that of her 
>>>> parent,
>>>> could be automatically released, once has been unparent and once all 
>>>> of her
>>>> references have gone away, via the object's free callback.
>>>>
>>>> However, currently, the address space subsystem keeps references to the
>>>> memory region without first incrementing its object's reference count.
>>>> As a result, the automatic deallocation of the object, not taking into
>>>> account those references, results in use-after-free memory corruption.
>>>>
>>>> More specifically, reference to the memory region is kept in flatview
>>>> ranges. If the reference count of the memory region is not incremented,
>>>> flatview_destroy(), that is asynchronous, may be called after memory
>>>> region's destruction. If the reference count of the memory region is
>>>> incremented, memory region's destruction will take place after
>>>> flatview_destroy() has released its references.
>>>>
>>>> This patch increases the reference count of an owned memory region 
>>>> object
>>>> on each memory_region_ref() and decreases it on each 
>>>> memory_region_unref().
>>>
>>> Why not pass the memory region itself as the owner parameter of 
>>> memory_region_init_ram_ptr()?
>>
>> Hmm, in that case, how will it be guaranteed that the VirtIOGPU won't 
>> disappear while the memory region is still in use?
> 
> You can object_ref() when you do memory_region_init_ram_ptr() and 
> object_unref() when the memory region is being destroyed.

It is not very intuitive but I see your point. This change is quite 
intrusive and has little use. I think it can be worked around in the way 
you suggest.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:43:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658588.1027816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEe0-0006Ky-6T; Thu, 21 Dec 2023 08:43:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658588.1027816; Thu, 21 Dec 2023 08: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 1rGEe0-0006Kr-28; Thu, 21 Dec 2023 08:43:04 +0000
Received: by outflank-mailman (input) for mailman id 658588;
 Thu, 21 Dec 2023 08:43:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1rGEdz-0006Kh-By; Thu, 21 Dec 2023 08:43:03 +0000
Received: from host146.205.237.98.conversent.net ([205.237.98.146]
 helo=infra.test-lab.xenproject.org)
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <osstest-admin@xenproject.org>)
 id 1rGEdz-0003KB-3j; Thu, 21 Dec 2023 08:43: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 1rGEdy-0008Vk-R4; Thu, 21 Dec 2023 08:43:02 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGEdy-0006X4-QU; Thu, 21 Dec 2023 08:43:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=A/nBS1/0BJNYKXa7uHj5nx8EArQHqOQ74yUeMyYT/4w=; b=3Sj+iQnR0MG8XZvAo58RFHcsZM
	isp5SvrUNGrvY2C+7rSaUQERvbf1cq9FiBjBO3a8bkw2Qlt+AlLlDfggBYESsaHDwVT+j5piLvBDz
	QR+Cm6PpX1wr97p2Qk0zZrwrguwsIuP9II+qA6IU6/pcYfAgMDYUhOXvP5z6okC/ln90=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184194-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184194: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1: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-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-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw: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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt: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-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=1a44b0073b9235521280e19d963b6dfef7888f18
X-Osstest-Versions-That:
    linux=55cb5f43689d7a9ea5bf35ef050f12334f197347
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 08:43:02 +0000

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

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 184179
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184179
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184179
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184179
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184179
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184179
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184179
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184179
 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-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-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-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-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                1a44b0073b9235521280e19d963b6dfef7888f18
baseline version:
 linux                55cb5f43689d7a9ea5bf35ef050f12334f197347

Last test of basis   184179  2023-12-19 21:12:29 Z    1 days
Testing same since   184194  2023-12-20 20:40:45 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Amir Goldstein <amir73il@gmail.com>
  Chuck Lever <chuck.lever@oracle.com>
  Daniel Hill <daniel@gluo.nz>
  Jan Kara <jack@suse.cz>
  Kent Overstreet <kent.overstreet@linux.dev>
  Linus Torvalds <torvalds@linux-foundation.org>
  Mike Snitzer <snitzer@kernel.org>
  Mikulas Patocka <mpatocka@redhat.com>
  NeilBrown <neilb@suse.de>
  Thomas Bertschinger <tahbertschinger@gmail.com>
  Xiao Ni <xni@redhat.com>
  Yu Kuai <yukuai3@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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   55cb5f43689d..1a44b0073b92  1a44b0073b9235521280e19d963b6dfef7888f18 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:50:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:50:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658594.1027826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEks-0007qx-TI; Thu, 21 Dec 2023 08:50:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658594.1027826; Thu, 21 Dec 2023 08:50:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEks-0007qq-Pr; Thu, 21 Dec 2023 08:50:10 +0000
Received: by outflank-mailman (input) for mailman id 658594;
 Thu, 21 Dec 2023 08:50:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGEkr-0007qh-KE
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:50:09 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f19a4e7e-9fdd-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 09:50:08 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3368ae75082so108766f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 00:50:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 u4-20020a05600c138400b0040c03c3289bsm2468383wmf.37.2023.12.21.00.50.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 00:50:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f19a4e7e-9fdd-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703148608; x=1703753408; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2x+MZ7cSnOWKQ3huKNwW1qlNaoxAkTdCQN0qFFCj7I0=;
        b=VBJHqbPkExM5vvNJfM0fitMOuN3je7RIH5jBpK76Vqg7XOmZXibrXYTfth8geK1b/A
         4pQF59T1XPjbUDKHALQEppgx+r4CcIlPAPq8pdB+QbB3ZmqoxlqWvn4aYKkRWRAJVj0k
         XuNry7kgNNyJ9BzMvYqzMJ9jZlIMLxAdDsBlyYeUwbGrZfYm5TP6YEV1Fqqvk6K8ukvJ
         JOegI6qW1WzH8dAZieukLi/mRdCom9huKjYYGTVYYYy4/wjvZifBzkz8qY1BttRGFT1Y
         Rzi1O6omM2Rh9cRw8l85WN1dV1UCMBZIQm5VsXqLEKm/FxqAGjIp2cFNHw7fSLbcqB2J
         CNbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703148608; x=1703753408;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2x+MZ7cSnOWKQ3huKNwW1qlNaoxAkTdCQN0qFFCj7I0=;
        b=aMPHD4ebtdEC/o6LY5+DcsF4q/CWyKtAhBonqJ2u4X8w/rCc/n5QYLlNeJ48RuDv01
         tTYwOz2t7FSgvTtdtbO1yaN5PAtsgJxDD/FhzNV1bSTW78mG2gG80na5yqdlC5ivszuB
         qqAW8c4UPNRfZtfib4h0zLgwL/g2XeHn9vA8qKUvTRaDW/bYwqw9NBrVXUe1EU+mi3fF
         AdlichiGWpu2OdLbcAokP6C3EmxxuYa+/ogWu+/bZ+cFijI/q26gKq9ZbV/5mwMryw4d
         ziZlMoUJBw7GnpHlB+cv2gZqSqkdWKLwnkuzyFbteVPIsfPwsofhld1o7otf8kAudlIC
         e0iw==
X-Gm-Message-State: AOJu0YzkhAkp+kls8qqe2HD6L0jq0JPor7akeIHoQ/2AjG2cZl3d/2Az
	fi0aR6+U/zNWcEg6TghfVXkv
X-Google-Smtp-Source: AGHT+IGEAj83gtMFtU++SeI+9sSET4mbCwyi7MDfdn8xV62km1/kCMbsDGj2S05R7Ah+jvEJZbliZA==
X-Received: by 2002:a05:600c:4d96:b0:40c:3182:e061 with SMTP id v22-20020a05600c4d9600b0040c3182e061mr193798wmp.19.1703148608165;
        Thu, 21 Dec 2023 00:50:08 -0800 (PST)
Message-ID: <6f706a0d-1fd1-4ae9-b84d-b94747164db7@suse.com>
Date: Thu, 21 Dec 2023 09:50:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/amd: extend CPU errata #1474 affected models
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wl@xen.org>
References: <20231220142218.22850-1-roger.pau@citrix.com>
 <ffb3445f-fd50-4746-9f70-272ea52271ec@citrix.com> <ZYMD_qukgCutWXRI@macbook>
 <00b19784-00bb-494d-bfc0-f0deaa0c1e08@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <00b19784-00bb-494d-bfc0-f0deaa0c1e08@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 16:42, Andrew Cooper wrote:
> On 20/12/2023 3:10 pm, Roger Pau MonnÃ© wrote:
>> On Wed, Dec 20, 2023 at 02:46:43PM +0000, Andrew Cooper wrote:
>>> On 20/12/2023 2:22 pm, Roger Pau Monne wrote:
>>>> @@ -978,24 +978,24 @@ void amd_check_zenbleed(void)
>>>>  		       val & chickenbit ? "chickenbit" : "microcode");
>>>>  }
>>>>  
>>>> -static void cf_check zen2_disable_c6(void *arg)
>>>> +static void cf_check zen_disable_c6(void *arg)
>>> fam17_disable_c6() ?Â  I know Hygon is 0x18 but it's also reasonably well
>>> know to be the same uarch.
>>>
>>> This particular algorithm is good for all Fam17 uarches, irrespective of
>>> #1474, even if they happen to be the same set of CPUs in practice.
>> Yeah, I was about to use fam17h prefix, but that wouldn't cover Hygon.
>> I we are fine with it I can send an adjusted v2 using fam17h prefix.
> 
> I think we're fine calling it fam17.Â  Happy to do that consistently.

I agree. And it clearly cannot be just "zen", to avoid it also wrongly
covering Zen3 / Zen4.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658600.1027835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtn-0001bN-RF; Thu, 21 Dec 2023 08:59:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658600.1027835; Thu, 21 Dec 2023 08:59:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtn-0001bG-OE; Thu, 21 Dec 2023 08:59:23 +0000
Received: by outflank-mailman (input) for mailman id 658600;
 Thu, 21 Dec 2023 08:59: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtm-0001b5-JH
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:22 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 372da41c-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:59:17 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SwkrC4htSz4f3lDh
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:07 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id DD84F1A08B0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:12 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S4;
 Thu, 21 Dec 2023 16:59:12 +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: 372da41c-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 00/17] block: don't access bd_inode directly from other modules
Date: Thu, 21 Dec 2023 16:56:55 +0800
Message-Id: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S4
X-Coremail-Antispam: 1UD129KBjvJXoW7Aw18WF43ur1kJF1xJFW8WFg_yoW5Jr4rpr
	nxKF4fGr48u34xuayS9a17t34rJa1kGayUW3W2y345ZFWrZFyfZrWktF1rJFykJrZ7Xr4k
	Xr1jyryrKr1I9aDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUvI14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U
	JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc
	CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E
	2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV
	W8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2
	Y2ka0xkIwI1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4
	xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26rWY6r4U
	JwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x
	0267AKxVWxJVW8Jr1lIxAIcVCF04k26cxKx2IYs7xG6rWUJVWrZr1UMIIF0xvEx4A2jsIE
	14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf
	9x0JUd8n5UUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Changes in v3:
 - remove bdev_associated_mapping() and patch 12 from v1;
 - add kerneldoc comments for new bdev apis;
 - rename __bdev_get_folio() to bdev_get_folio;
 - fix a problem in erofs that erofs_init_metabuf() is not always
 called.
 - add reviewed-by tag for patch 15-17;
Changes in v2:
 - remove some bdev apis that is not necessary;
 - pass in offset for bdev_read_folio() and __bdev_get_folio();
 - remove bdev_gfp_constraint() and add a new helper in fs/buffer.c to
 prevent access bd_indoe() directly from mapping_gfp_constraint() in
 ext4.(patch 15, 16);
 - remove block_device_ejected() from ext4.


Patch 1 add some bdev apis, then follow up patches will use these apis
to avoid access bd_inode directly, and hopefully the field bd_inode can
be removed eventually(after figure out a way for fs/buffer.c).

Yu Kuai (17):
  block: add some bdev apis
  xen/blkback: use bdev api in xen_update_blkif_status()
  bcache: use bdev api in read_super()
  mtd: block2mtd: use bdev apis
  s390/dasd: use bdev api in dasd_format()
  scsicam: use bdev api in scsi_bios_ptable()
  bcachefs: remove dead function bdev_sectors()
  bio: export bio_add_folio_nofail()
  btrfs: use bdev apis
  cramfs: use bdev apis in cramfs_blkdev_read()
  erofs: use bdev api
  nilfs2: use bdev api in nilfs_attach_log_writer()
  jbd2: use bdev apis
  buffer: add a new helper to read sb block
  ext4: use new helper to read sb block
  ext4: remove block_device_ejected()
  ext4: use bdev apis

 block/bdev.c                       | 148 +++++++++++++++++++++++++++++
 block/bio.c                        |   1 +
 block/blk.h                        |   2 -
 drivers/block/xen-blkback/xenbus.c |   3 +-
 drivers/md/bcache/super.c          |  11 +--
 drivers/mtd/devices/block2mtd.c    |  81 +++++++---------
 drivers/s390/block/dasd_ioctl.c    |   5 +-
 drivers/scsi/scsicam.c             |   4 +-
 fs/bcachefs/util.h                 |   5 -
 fs/btrfs/disk-io.c                 |  71 +++++++-------
 fs/btrfs/volumes.c                 |  17 ++--
 fs/btrfs/zoned.c                   |  15 +--
 fs/buffer.c                        |  68 +++++++++----
 fs/cramfs/inode.c                  |  36 +++----
 fs/erofs/data.c                    |  18 ++--
 fs/erofs/internal.h                |   2 +
 fs/ext4/dir.c                      |   6 +-
 fs/ext4/ext4.h                     |  13 ---
 fs/ext4/ext4_jbd2.c                |   6 +-
 fs/ext4/inode.c                    |   8 +-
 fs/ext4/super.c                    |  66 +++----------
 fs/ext4/symlink.c                  |   2 +-
 fs/jbd2/journal.c                  |   3 +-
 fs/jbd2/recovery.c                 |   6 +-
 fs/nilfs2/segment.c                |   2 +-
 include/linux/blkdev.h             |  17 ++++
 include/linux/buffer_head.h        |  18 +++-
 27 files changed, 377 insertions(+), 257 deletions(-)

-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658602.1027856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtq-00026a-Fy; Thu, 21 Dec 2023 08:59:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658602.1027856; Thu, 21 Dec 2023 08: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 1rGEtq-00026T-C3; Thu, 21 Dec 2023 08:59:26 +0000
Received: by outflank-mailman (input) for mailman id 658602;
 Thu, 21 Dec 2023 08: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtp-0001sl-Bw
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:25 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39392637-9fdf-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 09:59:21 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SwkrL4Z7fz4f3k5m
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:14 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 0BD431A0AF8
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:16 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S6;
 Thu, 21 Dec 2023 16:59:15 +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: 39392637-9fdf-11ee-98eb-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 02/17] xen/blkback: use bdev api in xen_update_blkif_status()
Date: Thu, 21 Dec 2023 16:56:57 +0800
Message-Id: <20231221085712.1766333-3-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S6
X-Coremail-Antispam: 1UD129KBjvdXoW7XFW7tFW3Wr4xCFyrtrWfAFb_yoWfWFb_ZF
	18urWxXrn7Crs0kayUuFs3Z3yv93WrurWF9ay2qFySqw1UXFWSq39FvFn5Gr47ZayUGws0
	yF17uFW7tr4xXjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbDAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUXwA2048vs2IY02
	0Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv
	wVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM2
	8EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AI
	xVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20x
	vE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xv
	r2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2IY04
	v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_
	Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIxkGc2
	Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_
	Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr
	1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUHbyAU
	UUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/block/xen-blkback/xenbus.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c
index e34219ea2b05..e645afa4af57 100644
--- a/drivers/block/xen-blkback/xenbus.c
+++ b/drivers/block/xen-blkback/xenbus.c
@@ -104,8 +104,7 @@ static void xen_update_blkif_status(struct xen_blkif *blkif)
 		xenbus_dev_error(blkif->be->dev, err, "block flush");
 		return;
 	}
-	invalidate_inode_pages2(
-			blkif->vbd.bdev_handle->bdev->bd_inode->i_mapping);
+	invalidate_bdev(blkif->vbd.bdev_handle->bdev);
 
 	for (i = 0; i < blkif->nr_rings; i++) {
 		ring = &blkif->rings[i];
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658603.1027866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtr-0002Mq-Oj; Thu, 21 Dec 2023 08:59:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658603.1027866; Thu, 21 Dec 2023 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 1rGEtr-0002Mf-LB; Thu, 21 Dec 2023 08:59:27 +0000
Received: by outflank-mailman (input) for mailman id 658603;
 Thu, 21 Dec 2023 08: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtp-0001sl-J2
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:25 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39e6c372-9fdf-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 09:59:21 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SwkrN2JvDz4f3kK8
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:16 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id B145D1A0357
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:17 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S7;
 Thu, 21 Dec 2023 16:59:17 +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: 39e6c372-9fdf-11ee-98eb-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 03/17] bcache: use bdev api in read_super()
Date: Thu, 21 Dec 2023 16:56:58 +0800
Message-Id: <20231221085712.1766333-4-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S7
X-Coremail-Antispam: 1UD129KBjvJXoW7Ww17Zw4kZr48Xr13XF18Xwb_yoW8Jw4xpF
	Z7uF9xZr48Gw17u3y8Zr4DZFyrK3srKFWUKa4xCw43ua43Jw1Y9rW5J34UG34rZr18WFs2
	vF4rJr4xu3WUGFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JrWl82xGYIkIc2
	x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0
	Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJw
	A2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS
	0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2
	IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0
	Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2
	xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2
	6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMIIYrx
	kI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v2
	6r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r
	4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjfUojjg
	UUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/md/bcache/super.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index bfe1685dbae5..23892b32c582 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -168,14 +168,13 @@ static const char *read_super(struct cache_sb *sb, struct block_device *bdev,
 {
 	const char *err;
 	struct cache_sb_disk *s;
-	struct page *page;
+	struct folio *folio;
 	unsigned int i;
 
-	page = read_cache_page_gfp(bdev->bd_inode->i_mapping,
-				   SB_OFFSET >> PAGE_SHIFT, GFP_KERNEL);
-	if (IS_ERR(page))
+	folio = bdev_read_folio(bdev, SB_OFFSET);
+	if (IS_ERR(folio))
 		return "IO error";
-	s = page_address(page) + offset_in_page(SB_OFFSET);
+	s = folio_address(folio) + offset_in_folio(folio, SB_OFFSET);
 
 	sb->offset		= le64_to_cpu(s->offset);
 	sb->version		= le64_to_cpu(s->version);
@@ -272,7 +271,7 @@ static const char *read_super(struct cache_sb *sb, struct block_device *bdev,
 	*res = s;
 	return NULL;
 err:
-	put_page(page);
+	folio_put(folio);
 	return err;
 }
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658601.1027842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEto-0001ek-6E; Thu, 21 Dec 2023 08:59:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658601.1027842; Thu, 21 Dec 2023 08:59: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 1rGEtn-0001eA-W5; Thu, 21 Dec 2023 08:59:23 +0000
Received: by outflank-mailman (input) for mailman id 658601;
 Thu, 21 Dec 2023 08:59:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtn-0001b5-8P
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:23 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3771e1d0-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:59:17 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SwkrF1Yndz4f3lVp
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:09 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 72F301A0AF4
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:14 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S5;
 Thu, 21 Dec 2023 16:59:13 +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: 3771e1d0-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 01/17] block: add some bdev apis
Date: Thu, 21 Dec 2023 16:56:56 +0800
Message-Id: <20231221085712.1766333-2-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S5
X-Coremail-Antispam: 1UD129KBjvJXoW3ArWxKrWfCFW8Kw1DKFyrtFb_yoWfGFWfpF
	WUGFy5JrWDG34IgFs2yw47ZrySgw1IyF1fJa43Jryak3yDtr9agF95KF1UArWxtrZ7Ja12
	qFy2vFW8ur1j9FJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jr4l82xGYIkIc2
	x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0
	Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJw
	A2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS
	0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2
	IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0
	Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2
	xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2
	6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMIIYrx
	kI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v2
	6r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r
	4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjfUOR6z
	UUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Those apis will be used for other modules, so that bd_inode won't be
accessed directly from other modules.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 block/bdev.c           | 148 +++++++++++++++++++++++++++++++++++++++++
 block/blk.h            |   2 -
 include/linux/blkdev.h |  17 +++++
 3 files changed, 165 insertions(+), 2 deletions(-)

diff --git a/block/bdev.c b/block/bdev.c
index 750aec178b6a..6204621c6db6 100644
--- a/block/bdev.c
+++ b/block/bdev.c
@@ -89,6 +89,25 @@ void invalidate_bdev(struct block_device *bdev)
 }
 EXPORT_SYMBOL(invalidate_bdev);
 
+/**
+ * invalidate_bdev_pages - Invalidate clean unused buffers and pagecache.
+ * @bdev: the block device which holds the cache to invalidate
+ * @start: the offset 'from' which to invalidate
+ * @end: the offset 'to' which to invalidate (inclusive)
+ *
+ * This function removes pages that are clean, unmapped and unlocked,
+ * as well as shadow entries. It will not block on IO activity.
+ *
+ * If you want to remove all the pages of one block device, regardless of
+ * their use and writeback state, use truncate_bdev_range().
+ */
+void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
+			   pgoff_t end)
+{
+	invalidate_mapping_pages(bdev->bd_inode->i_mapping, start, end);
+}
+EXPORT_SYMBOL_GPL(invalidate_bdev_range);
+
 /*
  * Drop all buffers & page cache for given bdev range. This function bails
  * with error if bdev has other exclusive owner (such as filesystem).
@@ -121,6 +140,7 @@ int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
 					     lstart >> PAGE_SHIFT,
 					     lend >> PAGE_SHIFT);
 }
+EXPORT_SYMBOL_GPL(truncate_bdev_range);
 
 static void set_init_blocksize(struct block_device *bdev)
 {
@@ -1102,3 +1122,131 @@ void bdev_statx_dioalign(struct inode *inode, struct kstat *stat)
 
 	blkdev_put_no_open(bdev);
 }
+
+/**
+ * bdev_read_folio - Read into block device page cache.
+ * @bdev: the block device which holds the cache to read.
+ * @pos: the offset that allocated folio will contain.
+ *
+ * Read one page into the block device page cache. If it succeeds, the folio
+ * returned will contain @pos;
+ *
+ * Return: Uptodate folio on success, ERR_PTR() on failure.
+ */
+struct folio *bdev_read_folio(struct block_device *bdev, loff_t pos)
+{
+	return mapping_read_folio_gfp(bdev->bd_inode->i_mapping,
+				      pos >> PAGE_SHIFT, GFP_KERNEL);
+}
+EXPORT_SYMBOL_GPL(bdev_read_folio);
+
+/**
+ * bdev_get_folio - Find and get a reference to a folio.
+ * @bdev: the block device which holds the address_space to search.
+ * @pos: the offset the returned folio will contain.
+ * @fgp_flags: %FGP flags modify how the folio is returned.
+ * @gfp: Memory allocation flags to use if %FGP_CREAT is specified.
+ *
+ * Looks up the page cache entry at @bdev->bd_inode->i_mapping from @pos. If
+ * this function returns a folio, it is returned with an increased refcount.
+ *
+ * Return: The found folio or an ERR_PTR() otherwise.
+ */
+struct folio *bdev_get_folio(struct block_device *bdev, loff_t pos,
+			     fgf_t fgp_flags, gfp_t gfp)
+{
+	return __filemap_get_folio(bdev->bd_inode->i_mapping, pos >> PAGE_SHIFT,
+				   fgp_flags, gfp);
+}
+EXPORT_SYMBOL_GPL(bdev_get_folio);
+
+/**
+ * bdev_wb_err_check - Has block device writeback error occurred?
+ * @bdev: the block device to check.
+ * @since: Previously-sampled @bdev->bd_inode->i_mapping->wb_err.
+ *
+ * Grab @bdev->bd_inode->i_mapping->wb_err, and see if it has changed @since
+ * the given value was sampled.
+ *
+ * Return: The latest error or 0 if it hasn't changed.
+ */
+int bdev_wb_err_check(struct block_device *bdev, errseq_t since)
+{
+	return errseq_check(&bdev->bd_inode->i_mapping->wb_err, since);
+}
+EXPORT_SYMBOL_GPL(bdev_wb_err_check);
+
+/**
+ * bdev_wb_err_check_and_advance() - Check block device writeback error and
+ * advance to current value.
+ * @bdev: the block device to check;
+ * @since: Pointer to previously-sampled @bdev->bd_inode->i_mapping->wb_err to
+ * check against and advance.
+ *
+ * Grab @bdev->bd_inode->i_mapping->wb_err, and see whether it matches the
+ * value that @since points to. If it does, then just return 0; If it doesn't,
+ * then the value has changed. Set the "seen" flag, and try to swap it into
+ * place as the new eseq value. Then, set that value as the new @since value,
+ * and return whatever the error portion is set to.
+ *
+ * Return: Negative errno if one has been stored, or 0 if no new error has
+ * occurred.
+ */
+int bdev_wb_err_check_and_advance(struct block_device *bdev, errseq_t *since)
+{
+	return errseq_check_and_advance(&bdev->bd_inode->i_mapping->wb_err,
+					since);
+}
+EXPORT_SYMBOL_GPL(bdev_wb_err_check_and_advance);
+
+/**
+ * bdev_balance_dirty_pages_ratelimited - balance dirty memory state.
+ * @bdev: the block device which was dirtied.
+ *
+ * Check the system's dirty state and will initiate writeback if needed.
+ */
+void bdev_balance_dirty_pages_ratelimited(struct block_device *bdev)
+{
+	return balance_dirty_pages_ratelimited(bdev->bd_inode->i_mapping);
+}
+EXPORT_SYMBOL_GPL(bdev_balance_dirty_pages_ratelimited);
+
+/**
+ * bdev_async_readahead - readahead for marked block device pages
+ * @bdev: the block device to read.
+ * @ra: file_ra_state which holds the readahead state.
+ * @file: Used by the filesystem for authentication.
+ * @index: Index of first page to be read.
+ * @req_count: Total number of pages being read by the caller.
+ *
+ * Read multiple pages into the block device page cache. The readahead logic may
+ * decide to piggyback more pages onto the read request if access patterns
+ * suggest it will improve performance.
+ */
+void bdev_sync_readahead(struct block_device *bdev, struct file_ra_state *ra,
+			 struct file *file, pgoff_t index,
+			 unsigned long req_count)
+{
+	struct file_ra_state tmp_ra = {};
+
+	if (!ra) {
+		ra = &tmp_ra;
+		file_ra_state_init(ra, bdev->bd_inode->i_mapping);
+	}
+	page_cache_sync_readahead(bdev->bd_inode->i_mapping, ra, file, index,
+				  req_count);
+}
+EXPORT_SYMBOL_GPL(bdev_sync_readahead);
+
+/**
+ * bdev_attach_wb - associate an block device with its wb
+ * @bdev: block device of interest
+ *
+ * If @bdev->bd_inode doesn't have its wb, associate it with the wb matching the
+ * %current.
+ */
+void bdev_attach_wb(struct block_device *bdev)
+{
+	inode_attach_wb(bdev->bd_inode, NULL);
+}
+EXPORT_SYMBOL_GPL(bdev_attach_wb);
diff --git a/block/blk.h b/block/blk.h
index 1ef920f72e0f..ce5fcd927eaa 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -465,8 +465,6 @@ extern struct device_attribute dev_attr_events_poll_msecs;
 extern struct attribute_group blk_trace_attr_group;
 
 blk_mode_t file_to_blk_mode(struct file *file);
-int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
-		loff_t lstart, loff_t lend);
 long blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg);
 long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg);
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index bc236e77d85e..ccac7d32bb86 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -24,6 +24,7 @@
 #include <linux/sbitmap.h>
 #include <linux/uuid.h>
 #include <linux/xarray.h>
+#include <linux/pagemap.h>
 
 struct module;
 struct request_queue;
@@ -1475,6 +1476,22 @@ struct block_device *blkdev_get_no_open(dev_t dev);
 void blkdev_put_no_open(struct block_device *bdev);
 
 struct block_device *I_BDEV(struct inode *inode);
+void invalidate_bdev_range(struct block_device *bdev, pgoff_t start,
+			   pgoff_t end);
+int truncate_bdev_range(struct block_device *bdev, blk_mode_t mode,
+		loff_t lstart, loff_t lend);
+struct folio *bdev_read_folio(struct block_device *bdev, loff_t pos);
+struct folio *bdev_get_folio(struct block_device *bdev, loff_t pos,
+			     fgf_t fgp_flags, gfp_t gfp);
+int bdev_wb_err_check(struct block_device *bdev, errseq_t since);
+int bdev_wb_err_check_and_advance(struct block_device *bdev, errseq_t *since);
+void bdev_balance_dirty_pages_ratelimited(struct block_device *bdev);
+void bdev_sync_readahead(struct block_device *bdev, struct file_ra_state *ra,
+			 struct file *file, pgoff_t index,
+			 unsigned long req_count);
+void bdev_attach_wb(struct block_device *bdev);
+void bdev_associated_mapping(struct block_device *bdev,
+			     struct address_space *mapping);
 
 #ifdef CONFIG_BLOCK
 void invalidate_bdev(struct block_device *bdev);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658604.1027870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEts-0002QA-3P; Thu, 21 Dec 2023 08:59:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658604.1027870; Thu, 21 Dec 2023 08:59:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtr-0002PN-Ub; Thu, 21 Dec 2023 08:59:27 +0000
Received: by outflank-mailman (input) for mailman id 658604;
 Thu, 21 Dec 2023 08:59: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtp-0001b5-Ln
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:25 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a4e7dc5-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:59:22 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SwkrL08TPz4f3lWC
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:14 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 42F191A049B
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:19 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S8;
 Thu, 21 Dec 2023 16:59:18 +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: 3a4e7dc5-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 04/17] mtd: block2mtd: use bdev apis
Date: Thu, 21 Dec 2023 16:56:59 +0800
Message-Id: <20231221085712.1766333-5-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S8
X-Coremail-Antispam: 1UD129KBjvJXoW3Jw1DtryDWw17CF45XFyrZwb_yoW7Aw18pa
	y3Ca95Aw4UKrn8urs7Xwn8Zr12g3sFqa1Uuay7C3yakFyfXryIkas7ta45tFyrKry8AFWk
	XF4DAr4rXF40grJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPa14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F
	4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq
	3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7
	IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4U
	M4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2
	kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E
	14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1UMI
	IYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E
	14v26r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r
	1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJbIYCTnIWIevJa73UjIFyTuYvjfU
	OBTYUUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/mtd/devices/block2mtd.c | 81 +++++++++++++++------------------
 1 file changed, 36 insertions(+), 45 deletions(-)

diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
index aa44a23ec045..cf201bf73184 100644
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
@@ -46,40 +46,34 @@ struct block2mtd_dev {
 /* Static info about the MTD, used in cleanup_module */
 static LIST_HEAD(blkmtd_device_list);
 
-
-static struct page *page_read(struct address_space *mapping, pgoff_t index)
-{
-	return read_mapping_page(mapping, index, NULL);
-}
-
 /* erase a specified part of the device */
 static int _block2mtd_erase(struct block2mtd_dev *dev, loff_t to, size_t len)
 {
-	struct address_space *mapping =
-				dev->bdev_handle->bdev->bd_inode->i_mapping;
-	struct page *page;
+	struct block_device *bdev = dev->bdev_handle->bdev;
+	struct folio *folio;
 	pgoff_t index = to >> PAGE_SHIFT;	// page index
 	int pages = len >> PAGE_SHIFT;
 	u_long *p;
 	u_long *max;
 
 	while (pages) {
-		page = page_read(mapping, index);
-		if (IS_ERR(page))
-			return PTR_ERR(page);
+		folio = bdev_read_folio(bdev, index << PAGE_SHIFT);
+		if (IS_ERR(folio))
+			return PTR_ERR(folio);
 
-		max = page_address(page) + PAGE_SIZE;
-		for (p=page_address(page); p<max; p++)
+		max = folio_address(folio) + folio_size(folio);
+		for (p = folio_address(folio); p < max; p++)
 			if (*p != -1UL) {
-				lock_page(page);
-				memset(page_address(page), 0xff, PAGE_SIZE);
-				set_page_dirty(page);
-				unlock_page(page);
-				balance_dirty_pages_ratelimited(mapping);
+				folio_lock(folio);
+				memset(folio_address(folio), 0xff,
+				       folio_size(folio));
+				folio_mark_dirty(folio);
+				folio_unlock(folio);
+				bdev_balance_dirty_pages_ratelimited(bdev);
 				break;
 			}
 
-		put_page(page);
+		folio_put(folio);
 		pages--;
 		index++;
 	}
@@ -106,9 +100,7 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
 		size_t *retlen, u_char *buf)
 {
 	struct block2mtd_dev *dev = mtd->priv;
-	struct address_space *mapping =
-				dev->bdev_handle->bdev->bd_inode->i_mapping;
-	struct page *page;
+	struct folio *folio;
 	pgoff_t index = from >> PAGE_SHIFT;
 	int offset = from & (PAGE_SIZE-1);
 	int cpylen;
@@ -120,12 +112,13 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
 			cpylen = len;	// this page
 		len = len - cpylen;
 
-		page = page_read(mapping, index);
-		if (IS_ERR(page))
-			return PTR_ERR(page);
+		folio = bdev_read_folio(dev->bdev_handle->bdev,
+					index << PAGE_SHIFT);
+		if (IS_ERR(folio))
+			return PTR_ERR(folio);
 
-		memcpy(buf, page_address(page) + offset, cpylen);
-		put_page(page);
+		memcpy(buf, folio_address(folio) + offset, cpylen);
+		folio_put(folio);
 
 		if (retlen)
 			*retlen += cpylen;
@@ -141,9 +134,8 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
 static int _block2mtd_write(struct block2mtd_dev *dev, const u_char *buf,
 		loff_t to, size_t len, size_t *retlen)
 {
-	struct page *page;
-	struct address_space *mapping =
-				dev->bdev_handle->bdev->bd_inode->i_mapping;
+	struct block_device *bdev = dev->bdev_handle->bdev;
+	struct folio *folio;
 	pgoff_t index = to >> PAGE_SHIFT;	// page index
 	int offset = to & ~PAGE_MASK;	// page offset
 	int cpylen;
@@ -155,18 +147,18 @@ static int _block2mtd_write(struct block2mtd_dev *dev, const u_char *buf,
 			cpylen = len;			// this page
 		len = len - cpylen;
 
-		page = page_read(mapping, index);
-		if (IS_ERR(page))
-			return PTR_ERR(page);
+		folio = bdev_read_folio(bdev, index << PAGE_SHIFT);
+		if (IS_ERR(folio))
+			return PTR_ERR(folio);
 
-		if (memcmp(page_address(page)+offset, buf, cpylen)) {
-			lock_page(page);
-			memcpy(page_address(page) + offset, buf, cpylen);
-			set_page_dirty(page);
-			unlock_page(page);
-			balance_dirty_pages_ratelimited(mapping);
+		if (memcmp(folio_address(folio) + offset, buf, cpylen)) {
+			folio_lock(folio);
+			memcpy(folio_address(folio) + offset, buf, cpylen);
+			folio_mark_dirty(folio);
+			folio_unlock(folio);
+			bdev_balance_dirty_pages_ratelimited(bdev);
 		}
-		put_page(page);
+		folio_put(folio);
 
 		if (retlen)
 			*retlen += cpylen;
@@ -211,8 +203,7 @@ static void block2mtd_free_device(struct block2mtd_dev *dev)
 	kfree(dev->mtd.name);
 
 	if (dev->bdev_handle) {
-		invalidate_mapping_pages(
-			dev->bdev_handle->bdev->bd_inode->i_mapping, 0, -1);
+		invalidate_bdev(dev->bdev_handle->bdev);
 		bdev_release(dev->bdev_handle);
 	}
 
@@ -295,7 +286,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
 		goto err_free_block2mtd;
 	}
 
-	if ((long)bdev->bd_inode->i_size % erase_size) {
+	if (bdev_nr_bytes(bdev) % erase_size) {
 		pr_err("erasesize must be a divisor of device size\n");
 		goto err_free_block2mtd;
 	}
@@ -313,7 +304,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
 
 	dev->mtd.name = name;
 
-	dev->mtd.size = bdev->bd_inode->i_size & PAGE_MASK;
+	dev->mtd.size = bdev_nr_bytes(bdev) & PAGE_MASK;
 	dev->mtd.erasesize = erase_size;
 	dev->mtd.writesize = 1;
 	dev->mtd.writebufsize = PAGE_SIZE;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658605.1027886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtu-0002x6-QH; Thu, 21 Dec 2023 08:59:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658605.1027886; Thu, 21 Dec 2023 08:59:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtu-0002wr-Lc; Thu, 21 Dec 2023 08:59:30 +0000
Received: by outflank-mailman (input) for mailman id 658605;
 Thu, 21 Dec 2023 08:59: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEts-0001b5-N1
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:28 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3c309ac2-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:59:25 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SwkrT0K4wz4f3kKN
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:21 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 6C9E61A073D
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:22 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S10;
 Thu, 21 Dec 2023 16:59:21 +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: 3c309ac2-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 06/17] scsicam: use bdev api in scsi_bios_ptable()
Date: Thu, 21 Dec 2023 16:57:01 +0800
Message-Id: <20231221085712.1766333-7-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S10
X-Coremail-Antispam: 1UD129KBjvdXoW7XFWrKrykKr43Jr15KryrCrg_yoW3urb_CF
	WS9ryxWr18KFs7Kwn8tF47Zryvvan8XF1I9FWSqa4Svr1UXrn5Kw4vvr17Zr47Gr4kJ3Z3
	CF17XrWakrsrujkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr
	1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr
	0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUQ
	SdkUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/scsi/scsicam.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/scsi/scsicam.c b/drivers/scsi/scsicam.c
index e2c7d8ef205f..9617d70c0ed1 100644
--- a/drivers/scsi/scsicam.c
+++ b/drivers/scsi/scsicam.c
@@ -32,11 +32,9 @@
  */
 unsigned char *scsi_bios_ptable(struct block_device *dev)
 {
-	struct address_space *mapping = bdev_whole(dev)->bd_inode->i_mapping;
 	unsigned char *res = NULL;
-	struct folio *folio;
+	struct folio *folio = bdev_read_folio(bdev_whole(dev), 0);
 
-	folio = read_mapping_folio(mapping, 0, NULL);
 	if (IS_ERR(folio))
 		return NULL;
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658606.1027892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtv-00030X-7F; Thu, 21 Dec 2023 08:59:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658606.1027892; Thu, 21 Dec 2023 08:59:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtu-0002zT-UL; Thu, 21 Dec 2023 08:59:30 +0000
Received: by outflank-mailman (input) for mailman id 658606;
 Thu, 21 Dec 2023 08:59: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtt-0001sl-9l
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:29 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3da35c2e-9fdf-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 09:59:28 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SwkrQ5L8Vz4f3lfD
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:18 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 005631A0B25
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:23 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S11;
 Thu, 21 Dec 2023 16:59:23 +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: 3da35c2e-9fdf-11ee-98eb-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 07/17] bcachefs: remove dead function bdev_sectors()
Date: Thu, 21 Dec 2023 16:57:02 +0800
Message-Id: <20231221085712.1766333-8-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S11
X-Coremail-Antispam: 1UD129KBjvdXoWrZFyrKrWkuF1fAw4fZrWUurg_yoW3Wrc_KF
	nY9F17Ww4SqF9Y93W2qr1vvr4Y93yDXrW2gFs0v3W7G3WDArZ5ZFZ5KrW5Zrsru397uFy7
	X3yxJrW29ryFkjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr
	1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr
	0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUQ
	SdkUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

bdev_sectors() is not used hence remove it.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/bcachefs/util.h | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/fs/bcachefs/util.h b/fs/bcachefs/util.h
index 2984b57b2958..22a0acc1704f 100644
--- a/fs/bcachefs/util.h
+++ b/fs/bcachefs/util.h
@@ -516,11 +516,6 @@ static inline unsigned fract_exp_two(unsigned x, unsigned fract_bits)
 void bch2_bio_map(struct bio *bio, void *base, size_t);
 int bch2_bio_alloc_pages(struct bio *, size_t, gfp_t);
 
-static inline sector_t bdev_sectors(struct block_device *bdev)
-{
-	return bdev->bd_inode->i_size >> 9;
-}
-
 #define closure_bio_submit(bio, cl)					\
 do {									\
 	closure_get(cl);						\
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658607.1027906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtx-0003YF-EW; Thu, 21 Dec 2023 08:59:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658607.1027906; Thu, 21 Dec 2023 08:59:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtx-0003Xs-AS; Thu, 21 Dec 2023 08:59:33 +0000
Received: by outflank-mailman (input) for mailman id 658607;
 Thu, 21 Dec 2023 08:59: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtv-0001b5-QO
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:31 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e1007a5-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:59:28 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SwkrV5MJtz4f3jXY
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:22 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 8660E1A0B2C
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:25 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S12;
 Thu, 21 Dec 2023 16:59:25 +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: 3e1007a5-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 08/17] bio: export bio_add_folio_nofail()
Date: Thu, 21 Dec 2023 16:57:03 +0800
Message-Id: <20231221085712.1766333-9-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S12
X-Coremail-Antispam: 1UD129KBjvdXoW7Xw4rur1rtr17JFyUCF18AFb_yoW3Wrg_AF
	n293W8Wan7G3WSk3Wvyay8AFZYvw1rurWY9FZ3JF9xZF1DJFnak340yr40vrn5CFykKw43
	u3yDXryayw47JjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqxFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVWxJr0_Gc
	Wl84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1l
	e2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI
	8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwAC
	jcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2Y2ka0x
	kIwI1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AK
	xVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26rWY6r4UJwCIc4
	0Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1I6r4UMIIF0xvE2Ix0cI8IcVCY1x0267AK
	xVW8Jr0_Cr1UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JV
	WxJwCI42IY6I8E87Iv6xkF7I0E14v26r4UJVWxJrUvcSsGvfC2KfnxnUUI43ZEXa7VUbmZ
	X7UUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Currently btrfs is using __bio_add_page() in write_dev_supers(). In order
to convert to use folio for bdev in btrfs, export bio_add_folio_nofail()
so that it can replace __bio_add_page().

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 block/bio.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/block/bio.c b/block/bio.c
index b9642a41f286..c7459839ca40 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1122,6 +1122,7 @@ void bio_add_folio_nofail(struct bio *bio, struct folio *folio, size_t len,
 	WARN_ON_ONCE(off > UINT_MAX);
 	__bio_add_page(bio, &folio->page, len, off);
 }
+EXPORT_SYMBOL_GPL(bio_add_folio_nofail);
 
 /**
  * bio_add_folio - Attempt to add part of a folio to a bio.
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658608.1027916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEty-0003rQ-TW; Thu, 21 Dec 2023 08:59:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658608.1027916; Thu, 21 Dec 2023 08:59: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 1rGEty-0003qy-O8; Thu, 21 Dec 2023 08:59:34 +0000
Received: by outflank-mailman (input) for mailman id 658608;
 Thu, 21 Dec 2023 08:59: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtx-0001b5-2A
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:33 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3be3eaca-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:59:29 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SwkrQ0NP3z4f3l2K
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:18 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id D22CE1A0B3C
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:20 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S9;
 Thu, 21 Dec 2023 16:59:20 +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: 3be3eaca-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 05/17] s390/dasd: use bdev api in dasd_format()
Date: Thu, 21 Dec 2023 16:57:00 +0800
Message-Id: <20231221085712.1766333-6-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S9
X-Coremail-Antispam: 1UD129KBjvdXoW7XFWrKF1rWw4UAw4kXFWkWFg_yoWfWrg_Zr
	1fGryxtr1xCr9Ikr1YvF15Zr9Y9F1kWr4Svry3KryfXFnrXFsaq3ykuFW3JrZ7JayUG3s3
	GF9rXw10yr15WjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbqkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUAVCq3wA2048vs2
	IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28E
	F7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr
	1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr
	0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUQ
	SdkUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_devcie.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/s390/block/dasd_ioctl.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
index 61b9675e2a67..bbfb958237e6 100644
--- a/drivers/s390/block/dasd_ioctl.c
+++ b/drivers/s390/block/dasd_ioctl.c
@@ -221,8 +221,9 @@ dasd_format(struct dasd_block *block, struct format_data_t *fdata)
 	 * enabling the device later.
 	 */
 	if (fdata->start_unit == 0) {
-		block->gdp->part0->bd_inode->i_blkbits =
-			blksize_bits(fdata->blksize);
+		rc = set_blocksize(block->gdp->part0, fdata->blksize);
+		if (rc)
+			return rc;
 	}
 
 	rc = base->discipline->format_device(base, fdata, 1);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658609.1027922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtz-0003xl-Jk; Thu, 21 Dec 2023 08:59:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658609.1027922; Thu, 21 Dec 2023 08:59:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEtz-0003wl-4R; Thu, 21 Dec 2023 08:59:35 +0000
Received: by outflank-mailman (input) for mailman id 658609;
 Thu, 21 Dec 2023 08:59: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtx-0001b5-R2
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:33 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3efc421c-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 09:59:30 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SwkrX2HVsz4f3jsb
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:24 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 1E4731A0199
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:27 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S13;
 Thu, 21 Dec 2023 16:59:26 +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: 3efc421c-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 09/17] btrfs: use bdev apis
Date: Thu, 21 Dec 2023 16:57:04 +0800
Message-Id: <20231221085712.1766333-10-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S13
X-Coremail-Antispam: 1UD129KBjvJXoW3WFWUur17WF47JrWfZry7Wrg_yoWfJFyDpr
	W7Cas5trWUJrn8Ww1kXw4kAw1Sq3sFvay8CFy3Gw4Ska45t345KF1vy34Fqa4Fkry8JFyk
	XF4UtFWxuF1xCF7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPI14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j6r
	xdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Gr1j6F4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr
	0_Cr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUQ
	SdkUUUUU=
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/btrfs/disk-io.c | 71 +++++++++++++++++++++-------------------------
 fs/btrfs/volumes.c | 17 ++++++-----
 fs/btrfs/zoned.c   | 15 +++++-----
 3 files changed, 48 insertions(+), 55 deletions(-)

diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 401ea09ae4b8..a1cfdee99a81 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3620,28 +3620,24 @@ ALLOW_ERROR_INJECTION(open_ctree, ERRNO);
 static void btrfs_end_super_write(struct bio *bio)
 {
 	struct btrfs_device *device = bio->bi_private;
-	struct bio_vec *bvec;
-	struct bvec_iter_all iter_all;
-	struct page *page;
-
-	bio_for_each_segment_all(bvec, bio, iter_all) {
-		page = bvec->bv_page;
+	struct folio_iter fi;
 
+	bio_for_each_folio_all(fi, bio) {
 		if (bio->bi_status) {
 			btrfs_warn_rl_in_rcu(device->fs_info,
 				"lost page write due to IO error on %s (%d)",
 				btrfs_dev_name(device),
 				blk_status_to_errno(bio->bi_status));
-			ClearPageUptodate(page);
-			SetPageError(page);
+			folio_clear_uptodate(fi.folio);
+			folio_set_error(fi.folio);
 			btrfs_dev_stat_inc_and_print(device,
 						     BTRFS_DEV_STAT_WRITE_ERRS);
 		} else {
-			SetPageUptodate(page);
+			folio_mark_uptodate(fi.folio);
 		}
 
-		put_page(page);
-		unlock_page(page);
+		folio_put(fi.folio);
+		folio_unlock(fi.folio);
 	}
 
 	bio_put(bio);
@@ -3651,9 +3647,9 @@ struct btrfs_super_block *btrfs_read_dev_one_super(struct block_device *bdev,
 						   int copy_num, bool drop_cache)
 {
 	struct btrfs_super_block *super;
-	struct page *page;
+	struct folio *folio;
 	u64 bytenr, bytenr_orig;
-	struct address_space *mapping = bdev->bd_inode->i_mapping;
+	unsigned int nofs_flag;
 	int ret;
 
 	bytenr_orig = btrfs_sb_offset(copy_num);
@@ -3674,16 +3670,17 @@ struct btrfs_super_block *btrfs_read_dev_one_super(struct block_device *bdev,
 		 * Drop the page of the primary superblock, so later read will
 		 * always read from the device.
 		 */
-		invalidate_inode_pages2_range(mapping,
-				bytenr >> PAGE_SHIFT,
+		invalidate_bdev_range(bdev, bytenr >> PAGE_SHIFT,
 				(bytenr + BTRFS_SUPER_INFO_SIZE) >> PAGE_SHIFT);
 	}
 
-	page = read_cache_page_gfp(mapping, bytenr >> PAGE_SHIFT, GFP_NOFS);
-	if (IS_ERR(page))
-		return ERR_CAST(page);
+	nofs_flag = memalloc_nofs_save();
+	folio = bdev_read_folio(bdev, bytenr);
+	memalloc_nofs_restore(nofs_flag);
+	if (IS_ERR(folio))
+		return ERR_CAST(folio);
 
-	super = page_address(page);
+	super = folio_address(folio);
 	if (btrfs_super_magic(super) != BTRFS_MAGIC) {
 		btrfs_release_disk_super(super);
 		return ERR_PTR(-ENODATA);
@@ -3740,7 +3737,6 @@ static int write_dev_supers(struct btrfs_device *device,
 			    struct btrfs_super_block *sb, int max_mirrors)
 {
 	struct btrfs_fs_info *fs_info = device->fs_info;
-	struct address_space *mapping = device->bdev->bd_inode->i_mapping;
 	SHASH_DESC_ON_STACK(shash, fs_info->csum_shash);
 	int i;
 	int errors = 0;
@@ -3753,7 +3749,7 @@ static int write_dev_supers(struct btrfs_device *device,
 	shash->tfm = fs_info->csum_shash;
 
 	for (i = 0; i < max_mirrors; i++) {
-		struct page *page;
+		struct folio *folio;
 		struct bio *bio;
 		struct btrfs_super_block *disk_super;
 
@@ -3778,9 +3774,10 @@ static int write_dev_supers(struct btrfs_device *device,
 				    BTRFS_SUPER_INFO_SIZE - BTRFS_CSUM_SIZE,
 				    sb->csum);
 
-		page = find_or_create_page(mapping, bytenr >> PAGE_SHIFT,
-					   GFP_NOFS);
-		if (!page) {
+		folio = bdev_get_folio(device->bdev, bytenr,
+				       FGP_LOCK|FGP_ACCESSED|FGP_CREAT,
+				       GFP_NOFS);
+		if (IS_ERR(folio)) {
 			btrfs_err(device->fs_info,
 			    "couldn't get super block page for bytenr %llu",
 			    bytenr);
@@ -3789,9 +3786,9 @@ static int write_dev_supers(struct btrfs_device *device,
 		}
 
 		/* Bump the refcount for wait_dev_supers() */
-		get_page(page);
+		folio_get(folio);
 
-		disk_super = page_address(page);
+		disk_super = folio_address(folio);
 		memcpy(disk_super, sb, BTRFS_SUPER_INFO_SIZE);
 
 		/*
@@ -3805,8 +3802,8 @@ static int write_dev_supers(struct btrfs_device *device,
 		bio->bi_iter.bi_sector = bytenr >> SECTOR_SHIFT;
 		bio->bi_private = device;
 		bio->bi_end_io = btrfs_end_super_write;
-		__bio_add_page(bio, page, BTRFS_SUPER_INFO_SIZE,
-			       offset_in_page(bytenr));
+		bio_add_folio_nofail(bio, folio, BTRFS_SUPER_INFO_SIZE,
+				     offset_in_folio(folio, bytenr));
 
 		/*
 		 * We FUA only the first super block.  The others we allow to
@@ -3842,7 +3839,7 @@ static int wait_dev_supers(struct btrfs_device *device, int max_mirrors)
 		max_mirrors = BTRFS_SUPER_MIRROR_MAX;
 
 	for (i = 0; i < max_mirrors; i++) {
-		struct page *page;
+		struct folio *folio;
 
 		ret = btrfs_sb_log_location(device, i, READ, &bytenr);
 		if (ret == -ENOENT) {
@@ -3857,27 +3854,23 @@ static int wait_dev_supers(struct btrfs_device *device, int max_mirrors)
 		    device->commit_total_bytes)
 			break;
 
-		page = find_get_page(device->bdev->bd_inode->i_mapping,
-				     bytenr >> PAGE_SHIFT);
-		if (!page) {
+		folio = bdev_get_folio(device->bdev, bytenr, 0, 0);
+		if (!IS_ERR(folio)) {
 			errors++;
 			if (i == 0)
 				primary_failed = true;
 			continue;
 		}
 		/* Page is submitted locked and unlocked once the IO completes */
-		wait_on_page_locked(page);
-		if (PageError(page)) {
+		folio_wait_locked(folio);
+		if (folio_test_error(folio)) {
 			errors++;
 			if (i == 0)
 				primary_failed = true;
 		}
 
-		/* Drop our reference */
-		put_page(page);
-
-		/* Drop the reference from the writing run */
-		put_page(page);
+		/* Drop our reference and the reference from the writing run */
+		folio_put_refs(folio, 2);
 	}
 
 	/* log error, force error return */
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index c6f16625af51..b3538777683c 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -1230,16 +1230,16 @@ int btrfs_open_devices(struct btrfs_fs_devices *fs_devices,
 
 void btrfs_release_disk_super(struct btrfs_super_block *super)
 {
-	struct page *page = virt_to_page(super);
+	struct folio *folio = virt_to_folio(super);
 
-	put_page(page);
+	folio_put(folio);
 }
 
 static struct btrfs_super_block *btrfs_read_disk_super(struct block_device *bdev,
 						       u64 bytenr, u64 bytenr_orig)
 {
 	struct btrfs_super_block *disk_super;
-	struct page *page;
+	struct folio *folio;
 	void *p;
 	pgoff_t index;
 
@@ -1257,15 +1257,14 @@ static struct btrfs_super_block *btrfs_read_disk_super(struct block_device *bdev
 		return ERR_PTR(-EINVAL);
 
 	/* pull in the page with our super */
-	page = read_cache_page_gfp(bdev->bd_inode->i_mapping, index, GFP_KERNEL);
+	folio = bdev_read_folio(bdev, index);
+	if (IS_ERR(folio))
+		return ERR_CAST(folio);
 
-	if (IS_ERR(page))
-		return ERR_CAST(page);
-
-	p = page_address(page);
+	p = folio_address(folio);
 
 	/* align our pointer to the offset of the super block */
-	disk_super = p + offset_in_page(bytenr);
+	disk_super = p + offset_in_folio(folio, bytenr);
 
 	if (btrfs_super_bytenr(disk_super) != bytenr_orig ||
 	    btrfs_super_magic(disk_super) != BTRFS_MAGIC) {
diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 23c1e6b19a65..eb1a9a8b5959 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -120,8 +120,6 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones,
 		return -ENOENT;
 	} else if (full[0] && full[1]) {
 		/* Compare two super blocks */
-		struct address_space *mapping = bdev->bd_inode->i_mapping;
-		struct page *page[BTRFS_NR_SB_LOG_ZONES];
 		struct btrfs_super_block *super[BTRFS_NR_SB_LOG_ZONES];
 		int i;
 
@@ -129,15 +127,18 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones,
 			u64 zone_end = (zones[i].start + zones[i].capacity) << SECTOR_SHIFT;
 			u64 bytenr = ALIGN_DOWN(zone_end, BTRFS_SUPER_INFO_SIZE) -
 						BTRFS_SUPER_INFO_SIZE;
+			struct folio *folio;
+			unsigned int nofs_flag;
 
-			page[i] = read_cache_page_gfp(mapping,
-					bytenr >> PAGE_SHIFT, GFP_NOFS);
-			if (IS_ERR(page[i])) {
+			nofs_flag = memalloc_nofs_save();
+			folio = bdev_read_folio(bdev, bytenr);
+			memalloc_nofs_restore(nofs_flag);
+			if (IS_ERR(folio)) {
 				if (i == 1)
 					btrfs_release_disk_super(super[0]);
-				return PTR_ERR(page[i]);
+				return PTR_ERR(folio);
 			}
-			super[i] = page_address(page[i]);
+			super[i] = folio_address(folio);
 		}
 
 		if (btrfs_super_generation(super[0]) >
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 08:59:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 08:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658610.1027934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEu1-0004P9-Ae; Thu, 21 Dec 2023 08:59:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658610.1027934; Thu, 21 Dec 2023 08:59: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 1rGEu0-0004Mx-Uk; Thu, 21 Dec 2023 08:59:36 +0000
Received: by outflank-mailman (input) for mailman id 658610;
 Thu, 21 Dec 2023 08: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEtz-0001sl-8M
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 08:59:35 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4074d98e-9fdf-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 09:59:33 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SwkrY67Xjz4f3kFr
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:25 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id A20FA1A085F
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 16:59:28 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDnNw5d_oNlEQPvEA--.24929S14;
 Thu, 21 Dec 2023 16:59:28 +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: 4074d98e-9fdf-11ee-98eb-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 10/17] cramfs: use bdev apis in cramfs_blkdev_read()
Date: Thu, 21 Dec 2023 16:57:05 +0800
Message-Id: <20231221085712.1766333-11-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDnNw5d_oNlEQPvEA--.24929S14
X-Coremail-Antispam: 1UD129KBjvJXoW7Ww17ur1fXryfAFyrJF4fKrg_yoW8tF4UpF
	1akanIkr4q9ryI9ayfXr1DZF15Ga4kXF4DCFWxu3y3Z3W5Jrna9r10kry0qFW8GrZFqryv
	9r4jkryfur15Ka7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUPF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI
	kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2
	z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j6r
	xdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0D
	M2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjx
	v20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1l
	F7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2
	IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF
	wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1lIx
	kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxVAF
	wI0_Cr1j6rxdMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JV
	WxJwCI42IY6I8E87Iv6xkF7I0E14v26F4UJVW0obIYCTnIWIevJa73UjIFyTuYvjfUOBTY
	UUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

On the one hand covert to use folio while reading bdev inode, on the
other hand prevent to access bd_inode directly.

Also do some cleanup that there is no need for two for loop, and remove
local array pages.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/cramfs/inode.c | 36 +++++++++++++-----------------------
 1 file changed, 13 insertions(+), 23 deletions(-)

diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c
index 60dbfa0f8805..fad95d683d97 100644
--- a/fs/cramfs/inode.c
+++ b/fs/cramfs/inode.c
@@ -183,9 +183,6 @@ static int next_buffer;
 static void *cramfs_blkdev_read(struct super_block *sb, unsigned int offset,
 				unsigned int len)
 {
-	struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
-	struct file_ra_state ra = {};
-	struct page *pages[BLKS_PER_BUF];
 	unsigned i, blocknr, buffer;
 	unsigned long devsize;
 	char *data;
@@ -214,37 +211,30 @@ static void *cramfs_blkdev_read(struct super_block *sb, unsigned int offset,
 	devsize = bdev_nr_bytes(sb->s_bdev) >> PAGE_SHIFT;
 
 	/* Ok, read in BLKS_PER_BUF pages completely first. */
-	file_ra_state_init(&ra, mapping);
-	page_cache_sync_readahead(mapping, &ra, NULL, blocknr, BLKS_PER_BUF);
-
-	for (i = 0; i < BLKS_PER_BUF; i++) {
-		struct page *page = NULL;
-
-		if (blocknr + i < devsize) {
-			page = read_mapping_page(mapping, blocknr + i, NULL);
-			/* synchronous error? */
-			if (IS_ERR(page))
-				page = NULL;
-		}
-		pages[i] = page;
-	}
+	bdev_sync_readahead(sb->s_bdev, NULL, NULL, blocknr, BLKS_PER_BUF);
 
 	buffer = next_buffer;
 	next_buffer = NEXT_BUFFER(buffer);
 	buffer_blocknr[buffer] = blocknr;
 	buffer_dev[buffer] = sb;
-
 	data = read_buffers[buffer];
+
 	for (i = 0; i < BLKS_PER_BUF; i++) {
-		struct page *page = pages[i];
+		struct folio *folio = NULL;
+
+		if (blocknr + i < devsize)
+			folio = bdev_read_folio(sb->s_bdev,
+						(blocknr + i) << PAGE_SHIFT);
 
-		if (page) {
-			memcpy_from_page(data, page, 0, PAGE_SIZE);
-			put_page(page);
-		} else
+		if (IS_ERR_OR_NULL(folio)) {
 			memset(data, 0, PAGE_SIZE);
+		} else {
+			memcpy_from_folio(data, folio, 0, PAGE_SIZE);
+			folio_put(folio);
+		}
 		data += PAGE_SIZE;
 	}
+
 	return read_buffers[buffer] + offset;
 }
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:00:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:00:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658634.1027946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEuu-0000Cr-Qd; Thu, 21 Dec 2023 09:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658634.1027946; Thu, 21 Dec 2023 09: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 1rGEuu-0000Ck-MH; Thu, 21 Dec 2023 09:00:32 +0000
Received: by outflank-mailman (input) for mailman id 658634;
 Thu, 21 Dec 2023 09: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEut-0000CD-US
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:00:31 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62d07969-9fdf-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 10:00:30 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Swksc5BfXz4f3lVM
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:20 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id F015C1A0902
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:25 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgBHlQun_oNlCxfvEA--.34192S4;
 Thu, 21 Dec 2023 17:00:25 +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: 62d07969-9fdf-11ee-98eb-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 11/17] erofs: use bdev api
Date: Thu, 21 Dec 2023 16:58:26 +0800
Message-Id: <20231221085826.1768395-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgBHlQun_oNlCxfvEA--.34192S4
X-Coremail-Antispam: 1UD129KBjvJXoW7ZFWUAF1xtr4rGr45Ww17Jrb_yoW8KF1kpr
	W3Cr1rGrWrXrs09wn2gr1UZF13ta97Gw48CayxJw1Fv3yUtryagFyvywnrGr48Kr4kKrs2
	qF1Ivry8uw1UJrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_Gr0_Zr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VU1
	VOJ5UUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_device.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/erofs/data.c     | 18 ++++++++++++------
 fs/erofs/internal.h |  2 ++
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/fs/erofs/data.c b/fs/erofs/data.c
index c98aeda8abb2..bbe2fe199bf3 100644
--- a/fs/erofs/data.c
+++ b/fs/erofs/data.c
@@ -32,8 +32,8 @@ void erofs_put_metabuf(struct erofs_buf *buf)
 void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
 		  enum erofs_kmap_type type)
 {
-	struct inode *inode = buf->inode;
-	erofs_off_t offset = (erofs_off_t)blkaddr << inode->i_blkbits;
+	u8 blkszbits = buf->inode ? buf->inode->i_blkbits : buf->blkszbits;
+	erofs_off_t offset = (erofs_off_t)blkaddr << blkszbits;
 	pgoff_t index = offset >> PAGE_SHIFT;
 	struct page *page = buf->page;
 	struct folio *folio;
@@ -43,7 +43,9 @@ void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
 		erofs_put_metabuf(buf);
 
 		nofs_flag = memalloc_nofs_save();
-		folio = read_cache_folio(inode->i_mapping, index, NULL, NULL);
+		folio = buf->inode ?
+			read_mapping_folio(buf->inode->i_mapping, index, NULL) :
+			bdev_read_folio(buf->bdev, offset);
 		memalloc_nofs_restore(nofs_flag);
 		if (IS_ERR(folio))
 			return folio;
@@ -67,10 +69,14 @@ void *erofs_bread(struct erofs_buf *buf, erofs_blk_t blkaddr,
 
 void erofs_init_metabuf(struct erofs_buf *buf, struct super_block *sb)
 {
-	if (erofs_is_fscache_mode(sb))
+	if (erofs_is_fscache_mode(sb)) {
 		buf->inode = EROFS_SB(sb)->s_fscache->inode;
-	else
-		buf->inode = sb->s_bdev->bd_inode;
+		buf->bdev = NULL;
+	} else {
+		buf->inode = NULL;
+		buf->bdev = sb->s_bdev;
+		buf->blkszbits = EROFS_SB(sb)->blkszbits;
+	}
 }
 
 void *erofs_read_metabuf(struct erofs_buf *buf, struct super_block *sb,
diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
index b0409badb017..c9206351b485 100644
--- a/fs/erofs/internal.h
+++ b/fs/erofs/internal.h
@@ -224,8 +224,10 @@ enum erofs_kmap_type {
 
 struct erofs_buf {
 	struct inode *inode;
+	struct block_device *bdev;
 	struct page *page;
 	void *base;
+	u8 blkszbits;
 	enum erofs_kmap_type kmap_type;
 };
 #define __EROFS_BUF_INITIALIZER	((struct erofs_buf){ .page = NULL })
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:00:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:00:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658638.1027956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEv7-0000ca-0t; Thu, 21 Dec 2023 09:00:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658638.1027956; Thu, 21 Dec 2023 09:00:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEv6-0000cK-UA; Thu, 21 Dec 2023 09:00:44 +0000
Received: by outflank-mailman (input) for mailman id 658638;
 Thu, 21 Dec 2023 09: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEv6-0000CD-Ad
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:00:44 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a12d6d7-9fdf-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 10:00:42 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Swksv5BJcz4f3jsW
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:35 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 8423A1A0BD4
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:38 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgDX2Q+0_oNldxrvEA--.33944S4;
 Thu, 21 Dec 2023 17:00:38 +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: 6a12d6d7-9fdf-11ee-98eb-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 12/17] nilfs2: use bdev api in nilfs_attach_log_writer()
Date: Thu, 21 Dec 2023 16:58:39 +0800
Message-Id: <20231221085839.1768763-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgDX2Q+0_oNldxrvEA--.33944S4
X-Coremail-Antispam: 1UD129KBjvdXoWrKw1xCF4xArWfGFy7ArW3Awb_yoW3Gwc_Xr
	n5JrykWrWYqFZ3uw4DurZ0yryrA3W8Ka18Jry0kFyrGF4IyFZ5Cr1qvr45tayUursrXwn3
	W3ZrWrZ8tr1UXjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT
	9fnUUIcSsGvfJTRUUUbxxFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG
	6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w
	A2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr1j
	6rxdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s
	0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xII
	jxv20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr
	1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxa
	n2IY04v7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrV
	AFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWrXVW8Jr1l
	IxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVW8JVW5JwCI42IY6xIIjxv20xvEc7CjxV
	AFwI0_Cr1j6rxdMIIF0xvE42xK8VAvwI8IcIk0rVW8JVW3JwCI42IY6I8E87Iv67AKxVW8
	JVWxJwCI42IY6I8E87Iv6xkF7I0E14v26F4UJVW0obIYCTnIWIevJa73UjIFyTuYvjfUoL
	0eDUUUU
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_device.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/nilfs2/segment.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index 55e31cc903d1..a1130e384937 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -2823,7 +2823,7 @@ int nilfs_attach_log_writer(struct super_block *sb, struct nilfs_root *root)
 	if (!nilfs->ns_writer)
 		return -ENOMEM;
 
-	inode_attach_wb(nilfs->ns_bdev->bd_inode, NULL);
+	bdev_attach_wb(nilfs->ns_bdev);
 
 	err = nilfs_segctor_start_thread(nilfs->ns_writer);
 	if (unlikely(err))
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:00:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:00:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658643.1027966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEvG-000146-8M; Thu, 21 Dec 2023 09:00:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658643.1027966; Thu, 21 Dec 2023 09:00:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEvG-00013z-54; Thu, 21 Dec 2023 09:00:54 +0000
Received: by outflank-mailman (input) for mailman id 658643;
 Thu, 21 Dec 2023 09:00: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEvE-0000CD-Nz
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:00:52 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6df13c95-9fdf-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 10:00:50 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.93.142])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Swkt21gxVz4f3jsG
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:42 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 098E01A0A06
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:45 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgBXpQu6_oNlNxzvEA--.33831S4;
 Thu, 21 Dec 2023 17:00:44 +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: 6df13c95-9fdf-11ee-98eb-6d05b1d4d9a1
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 13/17] jbd2: use bdev apis
Date: Thu, 21 Dec 2023 16:58:46 +0800
Message-Id: <20231221085846.1768977-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgBXpQu6_oNlNxzvEA--.33831S4
X-Coremail-Antispam: 1UD129KBjvJXoW7AryDWFWftF1xCw18GF4Uurg_yoW8ZFyrpr
	yUGas8CrZFvrW8XF1kGF4kJrWjga40vayUCFnF93Z2yw4Svr1avw18Kr13GFyYvFWFga1U
	Xr1jyay8Kw4YgFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_JFI_Gr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	Mq2tUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_device.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/jbd2/journal.c  | 3 +--
 fs/jbd2/recovery.c | 6 ++----
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index ed53188472f9..f1b5ffeaf02a 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -2003,8 +2003,7 @@ static int __jbd2_journal_erase(journal_t *journal, unsigned int flags)
 		byte_count = (block_stop - block_start + 1) *
 				journal->j_blocksize;
 
-		truncate_inode_pages_range(journal->j_dev->bd_inode->i_mapping,
-				byte_start, byte_stop);
+		truncate_bdev_range(journal->j_dev, 0, byte_start, byte_stop);
 
 		if (flags & JBD2_JOURNAL_FLUSH_DISCARD) {
 			err = blkdev_issue_discard(journal->j_dev,
diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index 01f744cb97a4..6b6a2c4585fa 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -290,7 +290,6 @@ int jbd2_journal_recover(journal_t *journal)
 
 	struct recovery_info	info;
 	errseq_t		wb_err;
-	struct address_space	*mapping;
 
 	memset(&info, 0, sizeof(info));
 	sb = journal->j_superblock;
@@ -309,8 +308,7 @@ int jbd2_journal_recover(journal_t *journal)
 	}
 
 	wb_err = 0;
-	mapping = journal->j_fs_dev->bd_inode->i_mapping;
-	errseq_check_and_advance(&mapping->wb_err, &wb_err);
+	bdev_wb_err_check_and_advance(journal->j_fs_dev, &wb_err);
 	err = do_one_pass(journal, &info, PASS_SCAN);
 	if (!err)
 		err = do_one_pass(journal, &info, PASS_REVOKE);
@@ -334,7 +332,7 @@ int jbd2_journal_recover(journal_t *journal)
 	err2 = sync_blockdev(journal->j_fs_dev);
 	if (!err)
 		err = err2;
-	err2 = errseq_check_and_advance(&mapping->wb_err, &wb_err);
+	err2 = bdev_wb_err_check_and_advance(journal->j_fs_dev, &wb_err);
 	if (!err)
 		err = err2;
 	/* Make sure all replayed data is on permanent storage */
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:01:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:01:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658644.1027976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEvM-0001XJ-Gc; Thu, 21 Dec 2023 09:01:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658644.1027976; Thu, 21 Dec 2023 09:01:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEvM-0001XC-Cn; Thu, 21 Dec 2023 09:01:00 +0000
Received: by outflank-mailman (input) for mailman id 658644;
 Thu, 21 Dec 2023 09:00: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEvK-0000Xx-GD
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:00:58 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71b129bd-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 10:00:55 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Swkt92zB1z4f3jrr
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:49 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 3822F1A0486
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:52 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgCn9QvB_oNlLR7vEA--.33384S4;
 Thu, 21 Dec 2023 17:00:51 +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: 71b129bd-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 14/17] buffer: add a new helper to read sb block
Date: Thu, 21 Dec 2023 16:58:53 +0800
Message-Id: <20231221085853.1770062-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgCn9QvB_oNlLR7vEA--.33384S4
X-Coremail-Antispam: 1UD129KBjvJXoW3AFyUCF4kKryrJrW3trWrXwb_yoW7Ww13pr
	98Kay3trWDKFyaqF1xtwn8Jr13t3Z2v3W8CayfJ3s3ArWUGrn3XF9rGr129FWFyr9rXry5
	XFW5CrWfCr1UWFDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_JFI_Gr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	ZNVDUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Unlike __bread_gfp(), ext4 has special handing while reading sb block:

1) __GFP_NOFAIL is not set, and memory allocation can fail;
2) If buffer write failed before, set buffer uptodate and don't read
   block from disk;
3) REQ_META is set for all IO, and REQ_PRIO is set for reading xattr;
4) If failed, return error ptr instead of NULL;

This patch add a new helper __bread_gfp2() that will match above 2 and 3(
1 will be used, and 4 will still be encapsulated by ext4), and prepare to
prevent calling mapping_gfp_constraint() directly on bd_inode->i_mapping
in ext4.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 fs/buffer.c                 | 68 ++++++++++++++++++++++++++-----------
 include/linux/buffer_head.h | 18 +++++++++-
 2 files changed, 65 insertions(+), 21 deletions(-)

diff --git a/fs/buffer.c b/fs/buffer.c
index 967f34b70aa8..188bd36c9fea 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -1255,16 +1255,19 @@ void __bforget(struct buffer_head *bh)
 }
 EXPORT_SYMBOL(__bforget);
 
-static struct buffer_head *__bread_slow(struct buffer_head *bh)
+static struct buffer_head *__bread_slow(struct buffer_head *bh,
+					blk_opf_t op_flags,
+					bool check_write_error)
 {
 	lock_buffer(bh);
-	if (buffer_uptodate(bh)) {
+	if (buffer_uptodate(bh) ||
+	    (check_write_error && buffer_uptodate_or_error(bh))) {
 		unlock_buffer(bh);
 		return bh;
 	} else {
 		get_bh(bh);
 		bh->b_end_io = end_buffer_read_sync;
-		submit_bh(REQ_OP_READ, bh);
+		submit_bh(REQ_OP_READ | op_flags, bh);
 		wait_on_buffer(bh);
 		if (buffer_uptodate(bh))
 			return bh;
@@ -1445,6 +1448,31 @@ void __breadahead(struct block_device *bdev, sector_t block, unsigned size)
 }
 EXPORT_SYMBOL(__breadahead);
 
+static struct buffer_head *
+bread_gfp(struct block_device *bdev, sector_t block, unsigned int size,
+	  blk_opf_t op_flags, gfp_t gfp, bool check_write_error)
+{
+	struct buffer_head *bh;
+
+	gfp |= mapping_gfp_constraint(bdev->bd_inode->i_mapping, ~__GFP_FS);
+
+	/*
+	 * Prefer looping in the allocator rather than here, at least that
+	 * code knows what it's doing.
+	 */
+	gfp |= __GFP_NOFAIL;
+
+	bh = bdev_getblk(bdev, block, size, gfp);
+	if (unlikely(!bh))
+		return NULL;
+
+	if (buffer_uptodate(bh) ||
+	    (check_write_error && buffer_uptodate_or_error(bh)))
+		return bh;
+
+	return __bread_slow(bh, op_flags, check_write_error);
+}
+
 /**
  *  __bread_gfp() - reads a specified block and returns the bh
  *  @bdev: the block_device to read from
@@ -1458,27 +1486,27 @@ EXPORT_SYMBOL(__breadahead);
  *  It returns NULL if the block was unreadable.
  */
 struct buffer_head *
-__bread_gfp(struct block_device *bdev, sector_t block,
-		   unsigned size, gfp_t gfp)
+__bread_gfp(struct block_device *bdev, sector_t block, unsigned int size,
+	    gfp_t gfp)
 {
-	struct buffer_head *bh;
-
-	gfp |= mapping_gfp_constraint(bdev->bd_inode->i_mapping, ~__GFP_FS);
-
-	/*
-	 * Prefer looping in the allocator rather than here, at least that
-	 * code knows what it's doing.
-	 */
-	gfp |= __GFP_NOFAIL;
-
-	bh = bdev_getblk(bdev, block, size, gfp);
-
-	if (likely(bh) && !buffer_uptodate(bh))
-		bh = __bread_slow(bh);
-	return bh;
+	return bread_gfp(bdev, block, size, 0, gfp, false);
 }
 EXPORT_SYMBOL(__bread_gfp);
 
+/*
+ * This works like __bread_gfp() except:
+ * 1) If buffer write failed before, set buffer uptodate and don't read
+ * block from disk;
+ * 2) Caller can pass in additional op_flags like REQ_META;
+ */
+struct buffer_head *
+__bread_gfp2(struct block_device *bdev, sector_t block, unsigned int size,
+	     blk_opf_t op_flags, gfp_t gfp)
+{
+	return bread_gfp(bdev, block, size, op_flags, gfp, true);
+}
+EXPORT_SYMBOL(__bread_gfp2);
+
 static void __invalidate_bh_lrus(struct bh_lru *b)
 {
 	int i;
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index 5f23ee599889..751b2744b4ae 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -171,6 +171,18 @@ static __always_inline int buffer_uptodate(const struct buffer_head *bh)
 	return test_bit_acquire(BH_Uptodate, &bh->b_state);
 }
 
+static __always_inline int buffer_uptodate_or_error(struct buffer_head *bh)
+{
+	/*
+	 * If the buffer has the write error flag, data was failed to write
+	 * out in the block. In this case, set buffer uptodate to prevent
+	 * reading old data.
+	 */
+	if (buffer_write_io_error(bh))
+		set_buffer_uptodate(bh);
+	return buffer_uptodate(bh);
+}
+
 static inline unsigned long bh_offset(const struct buffer_head *bh)
 {
 	return (unsigned long)(bh)->b_data & (page_size(bh->b_page) - 1);
@@ -231,7 +243,11 @@ void __brelse(struct buffer_head *);
 void __bforget(struct buffer_head *);
 void __breadahead(struct block_device *, sector_t block, unsigned int size);
 struct buffer_head *__bread_gfp(struct block_device *,
-				sector_t block, unsigned size, gfp_t gfp);
+				sector_t block, unsigned int size, gfp_t gfp);
+struct buffer_head *__bread_gfp2(struct block_device *bdev, sector_t block,
+				 unsigned int size, blk_opf_t op_flags,
+				 gfp_t gfp);
+
 struct buffer_head *alloc_buffer_head(gfp_t gfp_flags);
 void free_buffer_head(struct buffer_head * bh);
 void unlock_buffer(struct buffer_head *bh);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:01:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:01:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658647.1027986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEvR-0001zH-VK; Thu, 21 Dec 2023 09:01:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658647.1027986; Thu, 21 Dec 2023 09: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 1rGEvR-0001z9-SV; Thu, 21 Dec 2023 09:01:05 +0000
Received: by outflank-mailman (input) for mailman id 658647;
 Thu, 21 Dec 2023 09: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEvR-0000Xx-Dj
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:01:05 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 756eb98d-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 10:01:01 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4SwktF1kylz4f3lDS
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:53 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 782201A09C5
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:00:58 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgA3OhDH_oNl4h_vEA--.34329S4;
 Thu, 21 Dec 2023 17:00:57 +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: 756eb98d-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 15/17] ext4: use new helper to read sb block
Date: Thu, 21 Dec 2023 16:58:59 +0800
Message-Id: <20231221085859.1772154-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgA3OhDH_oNl4h_vEA--.34329S4
X-Coremail-Antispam: 1UD129KBjvJXoWxtr4kKw17tFyDGFW3Zry5Jwb_yoW7Cr17pa
	sIka9FkryvqFn09a1xKr13tw1Yy3Z2ga1UGayfC34furyqqrn3Xa48tF1I9FWrArZxXry5
	XF1jkryrCr18CFDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_JFI_Gr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	ZNVDUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Remove __ext4_sb_bread_gfp() and ext4_buffer_uptodate() that is defined
by ext4, and convert to use common helper __bread_gfp2() and
buffer_uptodate_or_error().

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
---
 fs/ext4/ext4.h    | 13 -------------
 fs/ext4/inode.c   |  8 ++++----
 fs/ext4/super.c   | 45 ++++++++++-----------------------------------
 fs/ext4/symlink.c |  2 +-
 4 files changed, 15 insertions(+), 53 deletions(-)

diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index a5d784872303..8377f6c5264f 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -3824,19 +3824,6 @@ extern const struct iomap_ops ext4_iomap_ops;
 extern const struct iomap_ops ext4_iomap_overwrite_ops;
 extern const struct iomap_ops ext4_iomap_report_ops;
 
-static inline int ext4_buffer_uptodate(struct buffer_head *bh)
-{
-	/*
-	 * If the buffer has the write error flag, we have failed
-	 * to write out data in the block.  In this  case, we don't
-	 * have to read the block because we may read the old data
-	 * successfully.
-	 */
-	if (buffer_write_io_error(bh))
-		set_buffer_uptodate(bh);
-	return buffer_uptodate(bh);
-}
-
 #endif	/* __KERNEL__ */
 
 #define EFSBADCRC	EBADMSG		/* Bad CRC detected */
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 61277f7f8722..efb0af6f02f7 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -887,7 +887,7 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode,
 	bh = ext4_getblk(handle, inode, block, map_flags);
 	if (IS_ERR(bh))
 		return bh;
-	if (!bh || ext4_buffer_uptodate(bh))
+	if (!bh || buffer_uptodate_or_error(bh))
 		return bh;
 
 	ret = ext4_read_bh_lock(bh, REQ_META | REQ_PRIO, true);
@@ -915,7 +915,7 @@ int ext4_bread_batch(struct inode *inode, ext4_lblk_t block, int bh_count,
 
 	for (i = 0; i < bh_count; i++)
 		/* Note that NULL bhs[i] is valid because of holes. */
-		if (bhs[i] && !ext4_buffer_uptodate(bhs[i]))
+		if (bhs[i] && !buffer_uptodate_or_error(bhs[i]))
 			ext4_read_bh_lock(bhs[i], REQ_META | REQ_PRIO, false);
 
 	if (!wait)
@@ -4392,11 +4392,11 @@ static int __ext4_get_inode_loc(struct super_block *sb, unsigned long ino,
 	bh = sb_getblk(sb, block);
 	if (unlikely(!bh))
 		return -ENOMEM;
-	if (ext4_buffer_uptodate(bh))
+	if (buffer_uptodate_or_error(bh))
 		goto has_buffer;
 
 	lock_buffer(bh);
-	if (ext4_buffer_uptodate(bh)) {
+	if (buffer_uptodate_or_error(bh)) {
 		/* Someone brought it uptodate while we waited */
 		unlock_buffer(bh);
 		goto has_buffer;
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index c5fcf377ab1f..3f07eaa33332 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -180,7 +180,7 @@ void ext4_read_bh_nowait(struct buffer_head *bh, blk_opf_t op_flags,
 {
 	BUG_ON(!buffer_locked(bh));
 
-	if (ext4_buffer_uptodate(bh)) {
+	if (buffer_uptodate_or_error(bh)) {
 		unlock_buffer(bh);
 		return;
 	}
@@ -191,7 +191,7 @@ int ext4_read_bh(struct buffer_head *bh, blk_opf_t op_flags, bh_end_io_t *end_io
 {
 	BUG_ON(!buffer_locked(bh));
 
-	if (ext4_buffer_uptodate(bh)) {
+	if (buffer_uptodate_or_error(bh)) {
 		unlock_buffer(bh);
 		return 0;
 	}
@@ -214,49 +214,24 @@ int ext4_read_bh_lock(struct buffer_head *bh, blk_opf_t op_flags, bool wait)
 	return ext4_read_bh(bh, op_flags, NULL);
 }
 
-/*
- * This works like __bread_gfp() except it uses ERR_PTR for error
- * returns.  Currently with sb_bread it's impossible to distinguish
- * between ENOMEM and EIO situations (since both result in a NULL
- * return.
- */
-static struct buffer_head *__ext4_sb_bread_gfp(struct super_block *sb,
-					       sector_t block,
-					       blk_opf_t op_flags, gfp_t gfp)
-{
-	struct buffer_head *bh;
-	int ret;
-
-	bh = sb_getblk_gfp(sb, block, gfp);
-	if (bh == NULL)
-		return ERR_PTR(-ENOMEM);
-	if (ext4_buffer_uptodate(bh))
-		return bh;
-
-	ret = ext4_read_bh_lock(bh, REQ_META | op_flags, true);
-	if (ret) {
-		put_bh(bh);
-		return ERR_PTR(ret);
-	}
-	return bh;
-}
-
 struct buffer_head *ext4_sb_bread(struct super_block *sb, sector_t block,
 				   blk_opf_t op_flags)
 {
-	gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping,
-			~__GFP_FS) | __GFP_MOVABLE;
+	struct buffer_head *bh = __bread_gfp2(sb->s_bdev, block,
+					      sb->s_blocksize,
+					      REQ_META | op_flags,
+					      __GFP_MOVABLE);
 
-	return __ext4_sb_bread_gfp(sb, block, op_flags, gfp);
+	return bh ? bh : ERR_PTR(-EIO);
 }
 
 struct buffer_head *ext4_sb_bread_unmovable(struct super_block *sb,
 					    sector_t block)
 {
-	gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping,
-			~__GFP_FS);
+	struct buffer_head *bh = __bread_gfp2(sb->s_bdev, block,
+					      sb->s_blocksize, REQ_META, 0);
 
-	return __ext4_sb_bread_gfp(sb, block, 0, gfp);
+	return bh ? bh : ERR_PTR(-EIO);
 }
 
 void ext4_sb_breadahead_unmovable(struct super_block *sb, sector_t block)
diff --git a/fs/ext4/symlink.c b/fs/ext4/symlink.c
index 75bf1f88843c..49e918221aac 100644
--- a/fs/ext4/symlink.c
+++ b/fs/ext4/symlink.c
@@ -94,7 +94,7 @@ static const char *ext4_get_link(struct dentry *dentry, struct inode *inode,
 		bh = ext4_getblk(NULL, inode, 0, EXT4_GET_BLOCKS_CACHED_NOWAIT);
 		if (IS_ERR(bh))
 			return ERR_CAST(bh);
-		if (!bh || !ext4_buffer_uptodate(bh))
+		if (!bh || !buffer_uptodate_or_error(bh))
 			return ERR_PTR(-ECHILD);
 	} else {
 		bh = ext4_bread(NULL, inode, 0, 0);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:01:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:01:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658652.1027995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEva-0002XZ-89; Thu, 21 Dec 2023 09:01:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658652.1027995; Thu, 21 Dec 2023 09:01:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGEva-0002XQ-5E; Thu, 21 Dec 2023 09:01:14 +0000
Received: by outflank-mailman (input) for mailman id 658652;
 Thu, 21 Dec 2023 09:01: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=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEvY-0000Xx-SO
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:01:12 +0000
Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a56793f-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 10:01:09 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.216])
 by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4SwktR6hMRz4f3kFY
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:01:03 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id B70801A0B8F
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:01:06 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgC3BQzQ_oNlHiLvEA--.34070S4;
 Thu, 21 Dec 2023 17:01:06 +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: 7a56793f-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 16/17] ext4: remove block_device_ejected()
Date: Thu, 21 Dec 2023 16:59:07 +0800
Message-Id: <20231221085907.1772856-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgC3BQzQ_oNlHiLvEA--.34070S4
X-Coremail-Antispam: 1UD129KBjvJXoW7Kr4UGw1xJF1fWr48KFy3urg_yoW8tF1Up3
	yfuw1fJrW8Zr1I9ayxJr4xW3y0qa92ya40gFyI9r1Fgr1xJ340qF4ktr1Iya4YvrZ3uw1F
	qF1UCrWxCr18CrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_JFI_Gr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	ZNVDUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

block_device_ejected() is added by commit bdfe0cbd746a ("Revert
"ext4: remove block_device_ejected"") in 2015. At that time 'bdi->wb'
is destroyed synchronized from del_gendisk(), hence if ext4 is still
mounted, and then mark_buffer_dirty() will reference destroyed 'wb'.
However, such problem doesn't exist anymore:

- commit d03f6cdc1fc4 ("block: Dynamically allocate and refcount
backing_dev_info") switch bdi to use refcounting;
- commit 13eec2363ef0 ("fs: Get proper reference for s_bdi"), will grab
additional reference of bdi while mounting, so that 'bdi->wb' will not
be destroyed until generic_shutdown_super().

Hence remove this dead function block_device_ejected().

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
 fs/ext4/super.c | 18 ------------------
 1 file changed, 18 deletions(-)

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 3f07eaa33332..a7935edbd7b1 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -467,22 +467,6 @@ static void ext4_maybe_update_superblock(struct super_block *sb)
 		schedule_work(&EXT4_SB(sb)->s_sb_upd_work);
 }
 
-/*
- * The del_gendisk() function uninitializes the disk-specific data
- * structures, including the bdi structure, without telling anyone
- * else.  Once this happens, any attempt to call mark_buffer_dirty()
- * (for example, by ext4_commit_super), will cause a kernel OOPS.
- * This is a kludge to prevent these oops until we can put in a proper
- * hook in del_gendisk() to inform the VFS and file system layers.
- */
-static int block_device_ejected(struct super_block *sb)
-{
-	struct inode *bd_inode = sb->s_bdev->bd_inode;
-	struct backing_dev_info *bdi = inode_to_bdi(bd_inode);
-
-	return bdi->dev == NULL;
-}
-
 static void ext4_journal_commit_callback(journal_t *journal, transaction_t *txn)
 {
 	struct super_block		*sb = journal->j_private;
@@ -6162,8 +6146,6 @@ static int ext4_commit_super(struct super_block *sb)
 
 	if (!sbh)
 		return -EINVAL;
-	if (block_device_ejected(sb))
-		return -ENODEV;
 
 	ext4_update_super(sb);
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:09:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:09:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658682.1028006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGF3P-0005GZ-32; Thu, 21 Dec 2023 09:09:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658682.1028006; Thu, 21 Dec 2023 09: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 1rGF3O-0005GS-Vk; Thu, 21 Dec 2023 09:09:18 +0000
Received: by outflank-mailman (input) for mailman id 658682;
 Thu, 21 Dec 2023 09: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=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGF3N-0005GE-I4
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:09:17 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b66b7ed-9fe0-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 10:09:12 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-33680da01d6so453178f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 01:09:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 w14-20020adfee4e000000b0033609750752sm1537722wro.8.2023.12.21.01.09.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 01:09:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b66b7ed-9fe0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703149753; x=1703754553; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=yrqW1/PlxKaYS19aoNg+9x4LpEq9/KEdMpuiy32bMEI=;
        b=RNmtjzKXneBRBsbjPdUp7J0WPB8+J+ZPlJoqFvX2eG87zsLoJ32yi+XriyHcO760u1
         ta9nxxvK+Pt+yLJoBYIt4EzkWpeqvirI0Vem8KogvSz8opVL/No202fasBAe/VAXXIrt
         8T2HP1pkrO+ONKpWlrdYCkGN0dJSKRz7dOJVuDK96TpqGEhr7A/uRRYZy/vx8DTgVWKf
         lN2lDaeg8PzYCWBI4m1xdmRTraSMOfQwfKFgFkvq+DPWKreBPYCFVBuvhAqYBDwEuqD3
         5+E0cCpQc1PkR0YUKuJinyoYUQ8vmk2pz1ME+PQQ5sgkHx8GE52kzjvWu+H2Cy8aUJwi
         Riew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703149753; x=1703754553;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=yrqW1/PlxKaYS19aoNg+9x4LpEq9/KEdMpuiy32bMEI=;
        b=eudpwAvFSoSc/4OL2HNDRY8DezSBCppMC1te9ITv49jl8ISn7L1h+wBqpa5TnPUj9P
         sKV9lUc37LVR+obfPiYziCFNQ0xtV1jmsVCkrRg8zw7HJ6AIkl7uIDyrHNwsdgNjbRho
         HCkZ5zLuQTbflv1lT3cjixCZnzvKnFA7UbzY6x0bZ6ocX9Jn1XWic2xzTX9salFFO3md
         nPkFjmzFUzyPEr6ZQG6aNNMdUukOEluGXMVNPMywAskHFDYnLvLWW0wN3aw8ZqCsbU3z
         ITH4i5YQBHPtSrnKQFE3ukvqbXHj+0iiiYoOL5c4A4dzezhqCHRZ4igVbdpgQvnl82A0
         CPXg==
X-Gm-Message-State: AOJu0YxDA5duKr33WwZ8ABGSjWSVlORtlJkqiP8wnjCLEs/b9ZT6UKfT
	k5RusbxETJNLevDR22za/ITNbBjcG/ZV9azj/6+t
X-Google-Smtp-Source: AGHT+IHMJ0h2qk4YUQ6MpXVUkfDGFdzD0m6eRN8Jwe+dHR9jrdAI/dUB+/1A+QWxLVpFc/yQDgmP3g==
X-Received: by 2002:a5d:6ace:0:b0:336:8c13:f785 with SMTP id u14-20020a5d6ace000000b003368c13f785mr95547wrw.129.1703149752921;
        Thu, 21 Dec 2023 01:09:12 -0800 (PST)
Message-ID: <5d9754f3-8f6e-482a-a447-6e132090b4f1@suse.com>
Date: Thu, 21 Dec 2023 10:09:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
 <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com>
 <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.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: <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 17:34, SÃ©bastien Chaumat wrote:
> Here are the patches I made to xen and linux kernel
> Plus dmesg (bare metal,xen) and "xl dmesg"

So only a single setup_gsi then, after all. Or else I must be missing
something. And there it's all consistent as well: Level/low like for any
other pin (IO-APIC) based PCI IRQ. The issue may then rather be with
xen_register_pirq(), where 1st and 2nd invocation are clearly different.
I'll try to get to looking into that some more later in the day.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:13:44 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:13:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658709.1028016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGF7d-0007ss-L7; Thu, 21 Dec 2023 09:13:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658709.1028016; Thu, 21 Dec 2023 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 1rGF7d-0007sl-H2; Thu, 21 Dec 2023 09:13:41 +0000
Received: by outflank-mailman (input) for mailman id 658709;
 Thu, 21 Dec 2023 09:13:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8MA4=IA=huaweicloud.com=yukuai1@srs-se1.protection.inumbo.net>)
 id 1rGEvf-0000Xx-C7
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:01:19 +0000
Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e184ff5-9fdf-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 10:01:16 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.235])
 by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4Swktb4JW4z4f3k6W
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:01:11 +0800 (CST)
Received: from mail02.huawei.com (unknown [10.116.40.112])
 by mail.maildlp.com (Postfix) with ESMTP id 01C921A09D6
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 17:01:13 +0800 (CST)
Received: from huaweicloud.com (unknown [10.175.104.67])
 by APP1 (Coremail) with SMTP id cCh0CgCXmhDW_oNlyCPvEA--.34448S4;
 Thu, 21 Dec 2023 17:01:12 +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: 7e184ff5-9fdf-11ee-9b0f-b553b5be7939
From: Yu Kuai <yukuai1@huaweicloud.com>
To: axboe@kernel.dk,
	roger.pau@citrix.com,
	colyli@suse.de,
	kent.overstreet@gmail.com,
	joern@lazybastard.org,
	miquel.raynal@bootlin.com,
	richard@nod.at,
	vigneshr@ti.com,
	sth@linux.ibm.com,
	hoeppner@linux.ibm.com,
	hca@linux.ibm.com,
	gor@linux.ibm.com,
	agordeev@linux.ibm.com,
	jejb@linux.ibm.com,
	martin.petersen@oracle.com,
	clm@fb.com,
	josef@toxicpanda.com,
	dsterba@suse.com,
	viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	nico@fluxnic.net,
	xiang@kernel.org,
	chao@kernel.org,
	tytso@mit.edu,
	adilger.kernel@dilger.ca,
	jack@suse.com,
	konishi.ryusuke@gmail.com,
	willy@infradead.org,
	akpm@linux-foundation.org,
	hare@suse.de,
	p.raghav@samsung.com
Cc: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	yukuai3@huawei.com,
	yukuai1@huaweicloud.com,
	yi.zhang@huawei.com,
	yangerkun@huawei.com
Subject: [PATCH RFC v3 for-6.8/block 17/17] ext4: use bdev apis
Date: Thu, 21 Dec 2023 16:59:14 +0800
Message-Id: <20231221085914.1772988-1-yukuai1@huaweicloud.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:cCh0CgCXmhDW_oNlyCPvEA--.34448S4
X-Coremail-Antispam: 1UD129KBjvJXoWxAF47JryfCw48Xw1Duw48JFb_yoW5Xw4Upa
	43GFyDGr4DZry09anrGFsrZa40kw18Ga43GryfZ3W2qrWaq34SkF95KF1xZF4UXay8Xw18
	XFyjkryxAr45CrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUv014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U
	JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV
	Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v
	n2kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4
	0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Wrv_Gr1U
	MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Gr0_Xr1lIxAIcVC0I7IYx2IY6xkF7I
	0E14v26F4UJVW0owCI42IY6xAIw20EY4v20xvaj40_JFI_Gr1lIxAIcVC2z280aVAFwI0_
	Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVWxJr0_GcJvcSsGvfC2KfnxnUUI43ZEXa7VUb
	YLvtUUUUU==
X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/

From: Yu Kuai <yukuai3@huawei.com>

Avoid to access bd_inode directly, prepare to remove bd_inode from
block_device.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
---
 fs/ext4/dir.c       | 6 ++----
 fs/ext4/ext4_jbd2.c | 6 +++---
 fs/ext4/super.c     | 3 +--
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
index 3985f8c33f95..64e35eb6a324 100644
--- a/fs/ext4/dir.c
+++ b/fs/ext4/dir.c
@@ -191,10 +191,8 @@ static int ext4_readdir(struct file *file, struct dir_context *ctx)
 			pgoff_t index = map.m_pblk >>
 					(PAGE_SHIFT - inode->i_blkbits);
 			if (!ra_has_index(&file->f_ra, index))
-				page_cache_sync_readahead(
-					sb->s_bdev->bd_inode->i_mapping,
-					&file->f_ra, file,
-					index, 1);
+				bdev_sync_readahead(sb->s_bdev, &file->f_ra,
+						    file, index, 1);
 			file->f_ra.prev_pos = (loff_t)index << PAGE_SHIFT;
 			bh = ext4_bread(NULL, inode, map.m_lblk, 0);
 			if (IS_ERR(bh)) {
diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c
index d1a2e6624401..c1bf3a00fad9 100644
--- a/fs/ext4/ext4_jbd2.c
+++ b/fs/ext4/ext4_jbd2.c
@@ -206,7 +206,6 @@ static void ext4_journal_abort_handle(const char *caller, unsigned int line,
 
 static void ext4_check_bdev_write_error(struct super_block *sb)
 {
-	struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
 	int err;
 
@@ -216,9 +215,10 @@ static void ext4_check_bdev_write_error(struct super_block *sb)
 	 * we could read old data from disk and write it out again, which
 	 * may lead to on-disk filesystem inconsistency.
 	 */
-	if (errseq_check(&mapping->wb_err, READ_ONCE(sbi->s_bdev_wb_err))) {
+	if (bdev_wb_err_check(sb->s_bdev, READ_ONCE(sbi->s_bdev_wb_err))) {
 		spin_lock(&sbi->s_bdev_wb_lock);
-		err = errseq_check_and_advance(&mapping->wb_err, &sbi->s_bdev_wb_err);
+		err = bdev_wb_err_check_and_advance(sb->s_bdev,
+						    &sbi->s_bdev_wb_err);
 		spin_unlock(&sbi->s_bdev_wb_lock);
 		if (err)
 			ext4_error_err(sb, -err,
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index a7935edbd7b1..25c3d2ac8559 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -5544,8 +5544,7 @@ static int __ext4_fill_super(struct fs_context *fc, struct super_block *sb)
 	 * used to detect the metadata async write error.
 	 */
 	spin_lock_init(&sbi->s_bdev_wb_lock);
-	errseq_check_and_advance(&sb->s_bdev->bd_inode->i_mapping->wb_err,
-				 &sbi->s_bdev_wb_err);
+	bdev_wb_err_check_and_advance(sb->s_bdev, &sbi->s_bdev_wb_err);
 	EXT4_SB(sb)->s_mount_state |= EXT4_ORPHAN_FS;
 	ext4_orphan_cleanup(sb, es);
 	EXT4_SB(sb)->s_mount_state &= ~EXT4_ORPHAN_FS;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:37:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:37:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658720.1028025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGFUv-00057r-L2; Thu, 21 Dec 2023 09:37:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658720.1028025; Thu, 21 Dec 2023 09: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 1rGFUv-00057k-IV; Thu, 21 Dec 2023 09:37:45 +0000
Received: by outflank-mailman (input) for mailman id 658720;
 Thu, 21 Dec 2023 09: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=jRZ7=IA=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rGFUv-00057e-4E
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:37:45 +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 9766f355-9fe4-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 10:37:44 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 3742A219D4;
 Thu, 21 Dec 2023 09:37:43 +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 E79B013725;
 Thu, 21 Dec 2023 09:37:42 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id kDc8N2YHhGWENAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 21 Dec 2023 09:37: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: 9766f355-9fe4-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1703151463; 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=TCu4ombnxkxoKgF1pSeRgr8QI64irBVIyblArTqRJGY=;
	b=rD9bHfPCnxpxMW5FcJQ3DSWFDHkyVzVRhpNrWStS48VciQqUhBVC6up+pwlGkWCqYWMoyg
	CEc4u7eDxZwkHhLH2Az5GsNXZqgcZ4PWI5dXUYnLgqEkTvvy8Dl7pqILQVY7kP5pxFcrRO
	F3oipNRYFcTIwnE3HdPPxQWZMk5k+V0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1703151463; 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=TCu4ombnxkxoKgF1pSeRgr8QI64irBVIyblArTqRJGY=;
	b=rD9bHfPCnxpxMW5FcJQ3DSWFDHkyVzVRhpNrWStS48VciQqUhBVC6up+pwlGkWCqYWMoyg
	CEc4u7eDxZwkHhLH2Az5GsNXZqgcZ4PWI5dXUYnLgqEkTvvy8Dl7pqILQVY7kP5pxFcrRO
	F3oipNRYFcTIwnE3HdPPxQWZMk5k+V0=
Message-ID: <75dccbdf-616c-4487-a1a0-64bdfcce0f91@suse.com>
Date: Thu, 21 Dec 2023 10:37:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] xen: have a more generic unaligned.h header (take 2)
To: xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20231212162702.26360-1-jgross@suse.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20231212162702.26360-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------iPV29EpE4KYZunUdbN6PZy5U"
X-Spam-Level: 
X-Spam-Level: 
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=rD9bHfPC
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.89 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MX_GOOD(-0.01)[];
	 SIGNED_PGP(-2.00)[];
	 NEURAL_HAM_SHORT(-0.20)[-1.000];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 BAYES_HAM(-2.49)[97.70%];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 NEURAL_HAM_LONG(-1.00)[-1.000];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -4.89
X-Rspamd-Queue-Id: 3742A219D4
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------iPV29EpE4KYZunUdbN6PZy5U
Content-Type: multipart/mixed; boundary="------------1AbeOaERpCcMEXE1nJMK9BcM";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Message-ID: <75dccbdf-616c-4487-a1a0-64bdfcce0f91@suse.com>
Subject: Re: [PATCH 0/2] xen: have a more generic unaligned.h header (take 2)
References: <20231212162702.26360-1-jgross@suse.com>
In-Reply-To: <20231212162702.26360-1-jgross@suse.com>

--------------1AbeOaERpCcMEXE1nJMK9BcM
Content-Type: multipart/mixed; boundary="------------BGGRJjzXzq8TCnfwequ2bzL0"

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

T24gMTIuMTIuMjMgMTc6MjcsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+IFNlY29uZCB0cnkg
Zm9yIHRoZSBnZW5lcmljIHVuYWxpZ25lZC5oIGFwcHJvYWNoLg0KPiANCj4gVGhpcyB0aW1l
IGluY2x1ZGluZyBhIGZpeCBmb3IgYnVpbGRpbmcgc3R1YmRvbSB3aXRoIGxpYnhlbmd1ZXN0
LA0KPiB3aGljaCBpcyB1c2luZyBhIGNydWVsIGhhY2sgdG8gcmV1c2UgdGhlIGh5cGVydmlz
b3IncyBkZWNvbXByZXNzaW5nDQo+IGNvZGUuDQo+IA0KPiBKdWVyZ2VuIEdyb3NzICgyKToN
Cj4gICAgeGVuOiBtYWtlIGluY2x1ZGUveGVuL3VuYWxpZ25lZC5oIHVzYWJsZSBvbiBhbGwg
YXJjaGl0ZWN0dXJlcw0KPiAgICB4ZW46IHJlbW92ZSBhc20vdW5hbGlnbmVkLmgNCj4gDQo+
ICAgLi4uL2d1ZXN0L3hnX2RvbV9kZWNvbXByZXNzX3Vuc2FmZV96c3RkLmMgICAgIHwgIDIg
Ky0NCj4gICB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vdW5hbGlnbmVkLmggICAgICAgICAg
fCAgNiAtLS0NCj4gICB4ZW4vY29tbW9uL2x6NC9kZWZzLmggICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMiArLQ0KPiAgIHhlbi9jb21tb24vbHpvLmMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAyICstDQo+ICAgeGVuL2NvbW1vbi91bmx6by5jICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDIgKy0NCj4gICB4ZW4vY29tbW9uL3h6L3ByaXZhdGUuaCAg
ICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQ0KPiAgIHhlbi9jb21tb24venN0ZC9tZW0u
aCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstDQo+ICAgeGVuL2luY2x1ZGUveGVu
L3VuYWxpZ25lZC5oICAgICAgICAgICAgICAgICAgIHwgNTMgKysrKysrKysrKystLS0tLS0t
LQ0KPiAgIHhlbi9saWIveHhoYXNoMzIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAyICstDQo+ICAgeGVuL2xpYi94eGhhc2g2NC5jICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDIgKy0NCj4gICAxMCBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAz
NyBkZWxldGlvbnMoLSkNCj4gICBkZWxldGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL3VuYWxpZ25lZC5oDQo+IA0KDQpJcyBhbnl0aGluZyBtaXNzaW5nIGZvciB0
aGlzIHNlcmllcyB0byBnbyBpbj8NCg0KDQpKdWVyZ2VuDQo=
--------------BGGRJjzXzq8TCnfwequ2bzL0
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-----

--------------BGGRJjzXzq8TCnfwequ2bzL0--

--------------1AbeOaERpCcMEXE1nJMK9BcM--

--------------iPV29EpE4KYZunUdbN6PZy5U
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/Ey8FAmWEB2YFAwAAAAAACgkQsN6d1ii/Ey+S
AQf+OdW7y6jgep6aIbhH6bf0m9r0+l/Nq+/+wLfCitOJY8pxMAlnrkzrwCyqhDCy4dYVWLtMDV7t
xPH0vJftcAecftR5YCDrhxIvOvn/Tl2tRULXz1ZmtXpa6u/V5zcHFy/VyeJk9T2OtU6LJRWLqIfi
PSZglPp2nUz5bdt84nfY5aYk+pNnoCU/D0EQIbCO4pn0XjULo58GnYj5hXPXiMv+sYBBYElJIm95
ob9y2ow+5c/jr0swiOXlKLxdDcshJDP3Xd8Lhg7nP02znm/9Mfef7v36W7AYdyQBCp4ELvNCun+N
Yglw3qWKhER4QKefMawXuW6gxWwNLbI5JIHrUKhjmw==
=Npo0
-----END PGP SIGNATURE-----

--------------iPV29EpE4KYZunUdbN6PZy5U--


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:38:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:38:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658723.1028036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGFVy-0005dy-V6; Thu, 21 Dec 2023 09:38:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658723.1028036; Thu, 21 Dec 2023 09: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 1rGFVy-0005dr-SM; Thu, 21 Dec 2023 09:38:50 +0000
Received: by outflank-mailman (input) for mailman id 658723;
 Thu, 21 Dec 2023 09:38:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yxSo=IA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rGFVx-0005df-W8
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:38:50 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd8d63b6-9fe4-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 10:38:47 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-336746c7b6dso425857f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 01:38:47 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-110-223.as13285.net. [92.26.110.223])
 by smtp.gmail.com with ESMTPSA id
 e4-20020a5d6d04000000b003367433118bsm1597343wrq.78.2023.12.21.01.38.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 01:38:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd8d63b6-9fe4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703151527; x=1703756327; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8glTMB6OR6iWmfxtYa6V6b3clUcWOXKdT1CBESqc0eQ=;
        b=lS2fXAExKOSJfhvo8aHdMc05ecPy18lQRxyu8xBiyWOirzzslCx4S3vjIxd6itrKyl
         /g51Yh5OCz4ejP+ju3dONZNSY2oDoE3GfJgIUhnpDvp5GACCKEovP+4aNLQyePUHipPt
         vg4V8uYHnX8eBo9rRsIuhWgcc95lYkLdKqfAQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703151527; x=1703756327;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=8glTMB6OR6iWmfxtYa6V6b3clUcWOXKdT1CBESqc0eQ=;
        b=SgG5XKII+wdkwH6Md511FOlSDhse+tpU9A/qlIcCd1/pSXtSiCVjkE0QLZVsToIPxJ
         VMpt/VmUhuqHT5COZFyunMFWEFuuoAUf5MCU3EaMdx+nhn16OHZ5nD1L0t4XNzjn7LmX
         ocjMCX7T6GECBNOfNWW6w4J1qm/C5V7qXp57XeaQ6DVWu923ES9iGhIPj4AVTF+1rH/T
         SA5w8SIkTedxVcv+1Km6beusRfevdojTtGOS1OQjM8YFrWYZeQCYwZDC+E1oYEB2voCV
         F5vnccZ2/PCsxepkn/UrP4htsR6ztsjVVrnZgnfnlFYftQpRQ3d9pPjAAwlU6TKiAa3K
         TK3w==
X-Gm-Message-State: AOJu0YxLuHQeEj23+BGdg7Y654camFOD4GowfEWvkdFnX5hyZM1XMgKl
	Anr6vu0WTrBMR1ECgoxBjJEN2A==
X-Google-Smtp-Source: AGHT+IF79XqRFHRkPNkTTBQN3LXi4F01A6WLbNWHrTB+aBj4KMU6z0/VhVZNRHJqUjI+rkGX67VNyQ==
X-Received: by 2002:a5d:4d89:0:b0:336:7814:84be with SMTP id b9-20020a5d4d89000000b00336781484bemr644704wru.141.1703151527316;
        Thu, 21 Dec 2023 01:38:47 -0800 (PST)
Message-ID: <97838b11-e23d-4081-acbf-054d02f5ab73@citrix.com>
Date: Thu, 21 Dec 2023 09:38:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] xen: have a more generic unaligned.h header (take 2)
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>,
 George Dunlap <george.dunlap@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>
References: <20231212162702.26360-1-jgross@suse.com>
 <75dccbdf-616c-4487-a1a0-64bdfcce0f91@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <75dccbdf-616c-4487-a1a0-64bdfcce0f91@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/12/2023 9:37 am, Juergen Gross wrote:
> On 12.12.23 17:27, Juergen Gross wrote:
>> Second try for the generic unaligned.h approach.
>>
>> This time including a fix for building stubdom with libxenguest,
>> which is using a cruel hack to reuse the hypervisor's decompressing
>> code.
>>
>> Juergen Gross (2):
>> Â Â  xen: make include/xen/unaligned.h usable on all architectures
>> Â Â  xen: remove asm/unaligned.h
>>
>> Â  .../guest/xg_dom_decompress_unsafe_zstd.cÂ Â Â Â  |Â  2 +-
>> Â  xen/arch/x86/include/asm/unaligned.hÂ Â Â Â Â Â Â Â Â  |Â  6 ---
>> Â  xen/common/lz4/defs.hÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 +-
>> Â  xen/common/lzo.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 +-
>> Â  xen/common/unlzo.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 +-
>> Â  xen/common/xz/private.hÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 +-
>> Â  xen/common/zstd/mem.hÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 +-
>> Â  xen/include/xen/unaligned.hÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 53 +++++++++++--------
>> Â  xen/lib/xxhash32.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 +-
>> Â  xen/lib/xxhash64.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 +-
>> Â  10 files changed, 38 insertions(+), 37 deletions(-)
>> Â  delete mode 100644 xen/arch/x86/include/asm/unaligned.h
>>
>
> Is anything missing for this series to go in?

Oh - I'd not spotted it.Â  Lemme throw it through a full Gitlab CI run
just to be sure.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 09:42:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 09:42:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658730.1028046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGFZa-00081Q-EP; Thu, 21 Dec 2023 09:42:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658730.1028046; Thu, 21 Dec 2023 09:42:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGFZa-00081J-BV; Thu, 21 Dec 2023 09:42:34 +0000
Received: by outflank-mailman (input) for mailman id 658730;
 Thu, 21 Dec 2023 09:42: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=ywj9=IA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGFZZ-000800-6G
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 09:42:33 +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 42c55da7-9fe5-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 10:42:31 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-50e3c6f1c10so795151e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 01:42:31 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 u5-20020ac25185000000b0050d438f0a09sm221057lfi.256.2023.12.21.01.42.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 01:42:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42c55da7-9fe5-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703151751; x=1703756551; 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=KnD7DRVsvCfnbIpgFymmyiUUeWm8PbgiSCMTawUhusA=;
        b=Sf4t/FkbfCLm/Fm9ad/YorMBsv5pCxPxDGkgyKS/ykYUCnf0ENQrko/9ocZyj+Lg+C
         YnYGr5Foos0sYX5oiOzhp3POqpFssMhWnso20dMxTaxApjUoSwrafuQgnU4SMTYBuXM3
         LfkXOTxDCyWE/ZOeB6jyPbvtuRWaXnSwLsoeG5hZIFi5LIYrgWTapN9KzIz3MhiXOZlL
         cgtpnr3IdNGan/YS9oDO6qU5OV6gUXBnwk/va0rb2dKR2YW7grLHswqSwOSI+LI+VK9c
         MXx8shRsL4P0QJZpwvfihdNYfgmyCNpu2AcFcLMyFayrrtW127LsNZo7lJV4NQ/NROAX
         BbqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703151751; x=1703756551;
        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=KnD7DRVsvCfnbIpgFymmyiUUeWm8PbgiSCMTawUhusA=;
        b=M3nex2jBnj9iMfLCc0aj0qwWqmY8iOrB9qkuhRdzUi78GGz3+ZlCENnqI+j5M+FYl5
         cqypuBAGPRcjb+EGS9sy3IHpLrLDmwE7Gi1qW3/8NnBp9PeBk2fBJ7Xa8n+0w4Vwy8Gm
         rGYfjgZkZ0SoSG+zid2+kVOdOkzCInNLzTzyz7+KRgd0hR6BxcTSfUwd2EJfz9fgdpMZ
         fAIFjRb4kDgHfrBlIewZHb/Gno+CbyxehKwwK4W2x/8hGyBmP0msAPfFzwZxj2esll1L
         0CDvNvntebZ2Ae8/kEVHlvIVroDAOu7nAUiUeuyQYm7I+OKBfB0QvLm1USJ/krtUdAIE
         e8hQ==
X-Gm-Message-State: AOJu0YwR0i2v7HvxKLg+YjqxkmZXzSQ/rbug2H+LCFi08tLekXWaUujL
	ekPSUR9qjpRgFoBxcmj3aJQ=
X-Google-Smtp-Source: AGHT+IGLXGrphCDlWXByCcOTKtFLcRABEUJbMQ5BV/qVKln4dpqg9BjXt9CuABM3EyjLWkQElmfZ+Q==
X-Received: by 2002:ac2:428a:0:b0:50e:3774:9db6 with SMTP id m10-20020ac2428a000000b0050e37749db6mr1635470lfh.196.1703151750430;
        Thu, 21 Dec 2023 01:42:30 -0800 (PST)
Message-ID: <f9a2967197f809c64f32c1140f249de791055aad.camel@gmail.com>
Subject: Re: [PATCH v2 07/39] xen/riscv: introduce arch-riscv/hvm/save.h
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Shawn Anastasio
 <sanastasio@raptorengineering.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, George Dunlap
	 <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>, 
	xen-devel@lists.xenproject.org
Date: Thu, 21 Dec 2023 11:42:28 +0200
In-Reply-To: <5a896d14-d96e-424a-a2a9-f0fc92b3cbde@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <acb870b980a791d7800d47c08c9574275159df39.1700761381.git.oleksii.kurochko@gmail.com>
	 <5eae9d9b-e499-4c8c-aed0-2f52c0aa7c9f@suse.com>
	 <f890996c2b100c6ace1f853da2c293d2f9244ef9.camel@gmail.com>
	 <5a896d14-d96e-424a-a2a9-f0fc92b3cbde@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-21 at 08:58 +0100, Jan Beulich wrote:
> On 20.12.2023 21:05, Oleksii wrote:
> > On Tue, 2023-12-05 at 16:59 +0100, Jan Beulich wrote:
> > > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > --- /dev/null
> > > > +++ b/xen/include/public/arch-riscv/hvm/save.h
> > > > @@ -0,0 +1,20 @@
> > > > +/* SPDX-License-Identifier: MIT */
> > > > +/*
> > > > + * Structure definitions for HVM state that is held by Xen and
> > > > must
> > > > + * be saved along with the domain's memory and device-model
> > > > state.
> > > > + */
> > > > +
> > > > +#ifndef __XEN_PUBLIC_HVM_SAVE_RISCV_H__
> > > > +#define __XEN_PUBLIC_HVM_SAVE_RISCV_H__
> > > > +
> > > > +#endif
> > > > +
> > > > +/*
> > > > + * Local variables:
> > > > + * mode: C
> > > > + * c-file-style: "BSD"
> > > > + * c-basic-offset: 4
> > > > + * tab-width: 4
> > > > + * indent-tabs-mode: nil
> > > > + * End:
> > > > + */
> > >=20
> > > Seeing that Arm's is as empty, I wonder why we have it. Julien,
> > > Stefano?
>=20
> I'm still curious about the reason here, but ...
>=20
> > It seems to exist to satisfy the 'install-tools-public-headers'
> > target:
> > install: cannot stat 'xen/arch-arm/hvm/*.h': No such file or
> > directory
> > Makefile:58: recipe for target 'install' failed
> > make[1]: *** [install] Error 1
> > make[1]: Leaving directory '/builds/xen-
> > project/people/olkur/xen/tools/include'
> > Makefile:44: recipe for target 'install-tools-public-headers'
> > failed
> >=20
> > From tools/include/Makefile:
> > install: all
> > ...
> > $(DESTDIR)$(includedir)/xen/arch-arm
> > 	$(INSTALL_DATA) xen/arch-arm/hvm/*.h
> > $(DESTDIR)$(includedir)/xen/arch-arm/hvm
> > ...
> >=20
> > We have the following options:
> > 1. Remove the line with $(INSTALL_DATA) xen/arch-arm/hvm/*.h (only
> > save.h is now in this folder, which is empty).
>=20
> ... we can't easily remove any existing public header. We can only
> try to
> avoid making the same mistake (even if it's just a minor one) again.
>=20
> > 2. Don't touch the Arm part, but for PPC and RISC-V, do the
> > following:
> > #if defined(__i386__) || defined(__x86_64__)
> > #include "../arch-x86/hvm/save.h"
> > #elif defined(__arm__) || defined(__aarch64__)
> > #include "../arch-arm/hvm/save.h"
> > +#elif defined(__powerpc64__) || defined(__riscv)
> > +/* no specific header to include */
> > #else
> > #error "unsupported architecture"
> > #endif
>=20
> Yes. Still awaiting Shawn's input here as well, though.
Perhaps you missed the email from Shawn:
https://lore.kernel.org/xen-devel/c2f3280e-2208-496b-a0b5-fda1a2076b3a@rapt=
orengineering.com/

>=20
> > 3. Provide an asm-generic version of save.h for Arm, PPC, and RISC-
> > V
> > and use it in public/save.h.
>=20
> That's not an option imo - what's under public/ needs to be self-
> contained.
> Stuff there isn't supposed to even know of asm-generic/.
In this case, this is not an option.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:08:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658739.1028059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGFyu-0005Xm-Kd; Thu, 21 Dec 2023 10:08:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658739.1028059; Thu, 21 Dec 2023 10:08:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGFyu-0005Xf-Gu; Thu, 21 Dec 2023 10:08:44 +0000
Received: by outflank-mailman (input) for mailman id 658739;
 Thu, 21 Dec 2023 10:08:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8VCQ=IA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rGFyt-0005XZ-3l
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:08:43 +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 ea93c2b6-9fe8-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 11:08:41 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3367601a301so529772f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:08:41 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 h1-20020a05600c350100b0040d3f4b1c8esm1281632wmq.36.2023.12.21.02.08.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 02:08:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea93c2b6-9fe8-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703153320; x=1703758120; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=uXEuHfdN0qmBa4xc//6/apbHR4jN7X0lLEk2wrnlY3c=;
        b=a+mhjtQglFKP8qEntFGDER6o9nfc+BkJynlBtLI0qiFb2rR4VSjm9/n83klnYYFj6z
         rDtOX5URPfZ4VoN8DtHM9PCsbVODLWY9hmLuKgs/9gNVby1fIIFqYP4XyT1jJZqD8t1S
         7kl/7QVTWCZSteQomXAVfw9bfzBfpoMB7i72Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703153320; x=1703758120;
        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=uXEuHfdN0qmBa4xc//6/apbHR4jN7X0lLEk2wrnlY3c=;
        b=lgNhb3JUfpcb3T4ut4tVyW7vYbbMbWVjY0r1SkNr5z4LFxp8CEllc2ashKQGy3KqLz
         6SaxxtZZWRx5GKVdYqgTBouBjnPRrgBtKJ00/zGwPp/rbBNWdIcx9wT4n2CmHwjuDgY2
         idNc9OvSlqWlAnErmJp5KZGPcYhXNSyL6xdLZK+ujVnPrVRnUJXjbWw6j2KWu1SxlkKA
         tpaa+Kf4XctF6HnZ9ccBFH+UFd6Mz9OoWHmtlZuX3ssbAzGTKU7v9jfQF4tumhCbAQzR
         p9BCIEluzZNThfsd0b0shQXnGRqTscVITkJQXIrqsSzRTglaptHciKga1JKPE+lZfwfH
         +vQA==
X-Gm-Message-State: AOJu0YzeGkniNf1osdOrIVPQ0Hm5iqaY9cWtp1HihZ4PLmSbGxd12w4/
	T9YkVg7kbbw19pKormYsyxcqC7bbhXSenMbEAI8=
X-Google-Smtp-Source: AGHT+IENWfH93igo9afsnOcHpO0Uf+rxd3Z9t8g5VaxHDZJzvxwjrHr58dgODVqyJwgYQSMEqZEhMw==
X-Received: by 2002:a05:600c:4505:b0:40c:2cb0:b563 with SMTP id t5-20020a05600c450500b0040c2cb0b563mr429979wmo.121.1703153320031;
        Thu, 21 Dec 2023 02:08:40 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v2] x86/amd: extend CPU errata #1474 affected models
Date: Thu, 21 Dec 2023 11:08:31 +0100
Message-ID: <20231221100831.25570-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Errata #1474has now been extended to cover models from family 17h ranges
00-2Fh, so the errata now covers all the models released under Family 17h (Zen,
Zen+ and Zen2).

Additionally extend the workaround to Family 18h (Hygon), since it's based on
the Zen architecture and very likely affected.

Rename all the zen2 related symbols to fam17, since the errata doesn't
exclusively affect Zen2 anymore.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Changes since v1:
 - Use fam17 instead of zen prefix.
---
 xen/arch/x86/cpu/amd.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 0f305312ff2a..d43288ae9779 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -54,7 +54,7 @@ bool __read_mostly amd_acpi_c1e_quirk;
 bool __ro_after_init amd_legacy_ssbd;
 bool __initdata amd_virt_spec_ctrl;
 
-static bool __read_mostly zen2_c6_disabled;
+static bool __read_mostly fam17_c6_disabled;
 
 static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
 				 unsigned int *hi)
@@ -978,24 +978,24 @@ void amd_check_zenbleed(void)
 		       val & chickenbit ? "chickenbit" : "microcode");
 }
 
-static void cf_check zen2_disable_c6(void *arg)
+static void cf_check fam17_disable_c6(void *arg)
 {
 	/* Disable C6 by clearing the CCR{0,1,2}_CC6EN bits. */
 	const uint64_t mask = ~((1ul << 6) | (1ul << 14) | (1ul << 22));
 	uint64_t val;
 
-	if (!zen2_c6_disabled) {
+	if (!fam17_c6_disabled) {
 		printk(XENLOG_WARNING
     "Disabling C6 after 1000 days apparent uptime due to AMD errata 1474\n");
-		zen2_c6_disabled = true;
+		fam17_c6_disabled = true;
 		/*
 		 * Prevent CPU hotplug so that started CPUs will either see
-		 * zen2_c6_disabled set, or will be handled by
+		 * zen_c6_disabled set, or will be handled by
 		 * smp_call_function().
 		 */
 		while (!get_cpu_maps())
 			process_pending_softirqs();
-		smp_call_function(zen2_disable_c6, NULL, 0);
+		smp_call_function(fam17_disable_c6, NULL, 0);
 		put_cpu_maps();
 	}
 
@@ -1294,8 +1294,8 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	amd_check_zenbleed();
 	amd_check_erratum_1485();
 
-	if (zen2_c6_disabled)
-		zen2_disable_c6(NULL);
+	if (fam17_c6_disabled)
+		fam17_disable_c6(NULL);
 
 	check_syscfg_dram_mod_en();
 
@@ -1307,7 +1307,7 @@ const struct cpu_dev amd_cpu_dev = {
 	.c_init		= init_amd,
 };
 
-static int __init cf_check zen2_c6_errata_check(void)
+static int __init cf_check amd_check_erratum_1474(void)
 {
 	/*
 	 * Errata #1474: A Core May Hang After About 1044 Days
@@ -1315,7 +1315,8 @@ static int __init cf_check zen2_c6_errata_check(void)
 	 */
 	s_time_t delta;
 
-	if (cpu_has_hypervisor || boot_cpu_data.x86 != 0x17 || !is_zen2_uarch())
+	if (cpu_has_hypervisor ||
+	    (boot_cpu_data.x86 != 0x17 && boot_cpu_data.x86 != 0x18))
 		return 0;
 
 	/*
@@ -1330,10 +1331,10 @@ static int __init cf_check zen2_c6_errata_check(void)
 	if (delta > 0) {
 		static struct timer errata_c6;
 
-		init_timer(&errata_c6, zen2_disable_c6, NULL, 0);
+		init_timer(&errata_c6, fam17_disable_c6, NULL, 0);
 		set_timer(&errata_c6, NOW() + delta);
 	} else
-		zen2_disable_c6(NULL);
+		fam17_disable_c6(NULL);
 
 	return 0;
 }
@@ -1341,4 +1342,4 @@ static int __init cf_check zen2_c6_errata_check(void)
  * Must be executed after early_time_init() for tsc_ticks2ns() to have been
  * calibrated.  That prevents us doing the check in init_amd().
  */
-presmp_initcall(zen2_c6_errata_check);
+presmp_initcall(amd_check_erratum_1474);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:13:08 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:13:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658743.1028068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGG32-0008DX-2z; Thu, 21 Dec 2023 10:13:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658743.1028068; Thu, 21 Dec 2023 10:13:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGG32-0008DQ-0G; Thu, 21 Dec 2023 10:13:00 +0000
Received: by outflank-mailman (input) for mailman id 658743;
 Thu, 21 Dec 2023 10:12: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=8VCQ=IA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rGG30-0008C4-IY
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:12:58 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82b6c410-9fe9-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 11:12:56 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c29f7b068so6278355e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:12:56 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 b6-20020a5d6346000000b0033683574772sm1614863wrw.65.2023.12.21.02.12.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 02:12:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82b6c410-9fe9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703153576; x=1703758376; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FJqk6Pur9dOADqhhWPpTnn4CtiAiEvc3SjgIBFQKraw=;
        b=oC6IIaRxVQ4lzsxNlvEvNYbNj8W0MTlzWp2SNrUJXhdURwrwb8cPdwWpVvCjzTRGit
         24yg3q2oITEjgyJNfj6UrSZlVXS+JUO+IRIdn12BJbIgMiF8w38LCmDqb3tcWZfunzWi
         UlLsTTnBU5C16NsVaIJlDRKL8BzCxy3wz/enw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703153576; x=1703758376;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FJqk6Pur9dOADqhhWPpTnn4CtiAiEvc3SjgIBFQKraw=;
        b=DZPdlKvEHEvwYtxgwU2TOmNLNj1FKc++POviKu4yUYnY7sSLdS08B4//ZIXy7WreKI
         zlTByabTCuOWMSoo2+WqcVfn06eGBANAfAuGUkeQRK8BgIPK6CNXT7k5qu4vDbFthyBO
         T8C3UmNI3123/oQHsYOAvGif5rsQQEvs7CMuyflqzPfofHM+3+3i+gQkwU5bftsFxMmq
         w4cS98KBX6JtYoaCYEY3tgdjDP2se8bd/QK/Dj3bG5z2kCx3heF6Vr7Pprk3NvMyzEeN
         fkcyEW7C138YUamvVUJnu2Mkct7yl9sJTKcs7Cyyj1g/7UQXqx4GjGKDmn3vx2kPnTOc
         APzQ==
X-Gm-Message-State: AOJu0YyPVYzZ6Qb3rMHlkyC1bVAX+senEb3mJctrfl6eZ0i6gUzdZuLl
	acBj9IbAFP5IAwNKafp9vun1b0287dFmfJpRgKI=
X-Google-Smtp-Source: AGHT+IG9z2zfstjFpXvpIHNBwwSnDwJqoftYl1oFCffwk7ZuleQ/h3y8lZP0YuTuMFamDZ61rLPPdQ==
X-Received: by 2002:a05:600c:4fc7:b0:40b:4476:cd31 with SMTP id o7-20020a05600c4fc700b0040b4476cd31mr561970wmq.13.1703153575885;
        Thu, 21 Dec 2023 02:12:55 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH] x86/iommu: add CHANGELOG entry for hwdom setup time improvements
Date: Thu, 21 Dec 2023 11:12:44 +0100
Message-ID: <20231221101244.25650-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20231220134346.22430-1-roger.pau@citrix.com>
References: <20231220134346.22430-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5ee5d41fc933..52484c047bd1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ### Changed
  - Changed flexible array definitions in public I/O interface headers to not
    use "1" as the number of array elements.
+ - On x86:
+   - Reduce IOMMU setup time for hardware domain.
 
 ### Added
  - On x86:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:18:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658748.1028079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGG7o-0000Wm-Lm; Thu, 21 Dec 2023 10:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658748.1028079; Thu, 21 Dec 2023 10:17:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGG7o-0000Wf-IE; Thu, 21 Dec 2023 10:17:56 +0000
Received: by outflank-mailman (input) for mailman id 658748;
 Thu, 21 Dec 2023 10:17:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yxSo=IA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rGG7o-0000WZ-2N
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:17:56 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 349b8c37-9fea-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 11:17:55 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40d3dfcc1a4so3897455e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:17:55 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 je8-20020a05600c1f8800b0040c4535f1a2sm2756219wmb.39.2023.12.21.02.17.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 02:17:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 349b8c37-9fea-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703153874; x=1703758674; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xaFveUxQ0Gm6YcpsqiW1JVOI/+PXuVlMCKT+Uda5bVw=;
        b=JnnEeRFxWXiU3sNfV2RmYig5d1gDqS9bJiq2aMPSlSus+VfylAJovKB1hCuyd6PYuV
         x/khBDEIQlDH/9DWWXyzefAoBGb0k5EPT0qyHLpFESiESBifLqcutt800n3BwGhDpmOj
         Krwf/aXOVHa7JVoLd8IkqFhMShcZZKaxXNJj8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703153874; x=1703758674;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=xaFveUxQ0Gm6YcpsqiW1JVOI/+PXuVlMCKT+Uda5bVw=;
        b=Apu4XgqArMPXA3dd0QQFI85qqs5peredfjq/wRmWU+WRFKciiBpMSnLVdnA51e5sjs
         51ICxqbU9b7NUr+3ozmTnZLRmMhJm3t2BgzY0tn/AusOzUUlwov8y3X1Ki6sUk2rAI4J
         eb4I27uLfKwzSMnOLo4kfdd39RoFptMRK5JnIyw2jQ78pZBGQ0yyrecGtewfXkH52rrR
         fc7aMqv1aIqqwRPC6m8PGkNfo8qzMPfLFa+yh8Yv9+MBg0iVoi44iddXZVMWCDuMg5Sn
         X/1uufDbZpVvjNb0yXs1Tz1A7tTJRtbN+Y6ZzOR5y88H3daNum/n6vq/W5W6ukKmcnKR
         t0Ug==
X-Gm-Message-State: AOJu0Yyl1qf/ojy/v3b9pCDNDsebcK3mK19fKOUILr/ZN+JEb4N9PVMW
	ug4GFHEjbHspEShfo97aJyWCyw==
X-Google-Smtp-Source: AGHT+IEIqg/skfn/DwBnAjMSaCcIna1OpmK9cA8wfCe1XerY8qCETTlm5C5QQuabOh+e6tJDfaOJcA==
X-Received: by 2002:a05:600c:cce:b0:40d:3c5b:1b16 with SMTP id fk14-20020a05600c0cce00b0040d3c5b1b16mr562899wmb.29.1703153874484;
        Thu, 21 Dec 2023 02:17:54 -0800 (PST)
Message-ID: <213dc008-f8eb-4313-8b3e-17fc435416e1@citrix.com>
Date: Thu, 21 Dec 2023 10:17:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/amd: extend CPU errata #1474 affected models
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>
References: <20231221100831.25570-1-roger.pau@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <20231221100831.25570-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/12/2023 10:08 am, Roger Pau Monne wrote:
> Errata #1474has now been extended to cover models from family 17h ranges

Extra space needed.Â  Can be fixed on commit.

> 00-2Fh, so the errata now covers all the models released under Family 17h (Zen,
> Zen+ and Zen2).
>
> Additionally extend the workaround to Family 18h (Hygon), since it's based on
> the Zen architecture and very likely affected.
>
> Rename all the zen2 related symbols to fam17, since the errata doesn't
> exclusively affect Zen2 anymore.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:20:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658751.1028089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGAU-0002MF-25; Thu, 21 Dec 2023 10:20:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658751.1028089; Thu, 21 Dec 2023 10:20:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGAT-0002M8-Ve; Thu, 21 Dec 2023 10:20:41 +0000
Received: by outflank-mailman (input) for mailman id 658751;
 Thu, 21 Dec 2023 10:20:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGGAT-0002La-9t
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:20:41 +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 96cb9be8-9fea-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 11:20:39 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-32f8441dfb5so521068f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:20:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 e25-20020adfa459000000b003365951cef9sm1697716wra.55.2023.12.21.02.20.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 02:20:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96cb9be8-9fea-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703154039; x=1703758839; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=QkbK7rAhf24elMfHugp+uKo0w5y4uT5ZqG/DklLZh0E=;
        b=a7MLjDHH+GzpCTlT1n5wp/dSmBOhVXDiNPOuth9WFNasJJq7c+/qFLdcIYTY6MwuoP
         nZETKHZinch0AEWxGgS83emG9zH0fOeb5DNu2y6Mv+Kl8qcttP5vlu+ek5lxYtsqlIKw
         0iq7qRI7GggMqQRU8wS2oFPhyHgd+zuuujw0kFGn2fWzuJn1Q5yR/MulBarqUf7F7v+7
         UR0LorKjywApBbLVbE57vbl0I039p8aVvQjN/w0HwsZcoXZXJPSb2x2FmLgTfP07HEYe
         /5hSeZ6dfb/HmzC+xRawhyadMr7B6v0/1xT8JEgMm6mLX0JdZFkkts7HNLQ6q9PizTUi
         b1aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703154039; x=1703758839;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=QkbK7rAhf24elMfHugp+uKo0w5y4uT5ZqG/DklLZh0E=;
        b=ABIXqaoaUkIddgc4kPZGyQqUpMxHTq6YUsNx43OEOlyAi24ltE6Sy5g/9DnZjUz/8F
         wdFluEXmwdGqmXry0wi+JAKRRr9CeWKN0Tlk9pMsI4rSRabi4/m0DMVsxB34xkUorXlK
         b7zm0XTtB9QVKMqP1vprOvmIsms2DYoxKaN4kSSKjknK6ocT5WssDhymfHIJl03ayO0f
         rd0ZIDzenhQJwFf+d+EdRavevaPLylfHC+NjpQpCkeq1CtvfqcMs3A2eX7QJlFttE8lx
         cmwCwfJSISrvo7SvF5RlKvDxrTlhL3W2uPOvrZDVENoRxtvKFAnsWzFJDn6D9lvxgkSn
         XrDw==
X-Gm-Message-State: AOJu0Yy3Afq3PdvyxWRbuNPAYEetKnCSz5DYZz6ijNJdiBDfAqMzggnl
	TbqJ3B9JXttA2WnDot/jjamH
X-Google-Smtp-Source: AGHT+IEJ5HEs4ginJBrVKvWDTzWKjAVjE7azVL3J4x/4n1Ob+sU04qhDU04ibRTG5CQAXqmk7vgQEw==
X-Received: by 2002:adf:fc07:0:b0:336:5d1c:a9c8 with SMTP id i7-20020adffc07000000b003365d1ca9c8mr574190wrr.59.1703154039285;
        Thu, 21 Dec 2023 02:20:39 -0800 (PST)
Message-ID: <978e4603-f20b-481f-97bd-2a84de0800c8@suse.com>
Date: Thu, 21 Dec 2023 11:20:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/amd: extend CPU errata #1474 affected models
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20231221100831.25570-1-roger.pau@citrix.com>
 <213dc008-f8eb-4313-8b3e-17fc435416e1@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <213dc008-f8eb-4313-8b3e-17fc435416e1@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.12.2023 11:17, Andrew Cooper wrote:
> On 21/12/2023 10:08 am, Roger Pau Monne wrote:
>> Errata #1474has now been extended to cover models from family 17h ranges
> 
> Extra space needed.Â  Can be fixed on commit.

Also (not just here) - isn't it "erratum" when we talk of just one?

Jan

>> 00-2Fh, so the errata now covers all the models released under Family 17h (Zen,
>> Zen+ and Zen2).
>>
>> Additionally extend the workaround to Family 18h (Hygon), since it's based on
>> the Zen architecture and very likely affected.
>>
>> Rename all the zen2 related symbols to fam17, since the errata doesn't
>> exclusively affect Zen2 anymore.
>>
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:23:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658759.1028099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGDY-0003yO-I4; Thu, 21 Dec 2023 10:23:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658759.1028099; Thu, 21 Dec 2023 10:23:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGDY-0003yH-Dk; Thu, 21 Dec 2023 10:23:52 +0000
Received: by outflank-mailman (input) for mailman id 658759;
 Thu, 21 Dec 2023 10:23:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGGDX-0003x3-LW
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:23:51 +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 0891f3b5-9feb-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 11:23:50 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3367a304091so544142f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:23:50 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 b2-20020a5d4d82000000b003366224319csm1695716wru.53.2023.12.21.02.23.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 02:23:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0891f3b5-9feb-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703154230; x=1703759030; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=rll7w/ylB4mbAaGMLCIq8LJO2ulEQT9zrPbAbxvdH1U=;
        b=bcPxgdIIQMXKzKii6R9wYC3y56HUSpKk8jgftlRbW+9sHTGBK26KCNTcNjxvm5F2y9
         FfjMbgrZI+wpQEAET7p5+6n/bOaaLs9/i78i7CNVIHFOfdK4NqxQ4ZgRhFA2jwiT9EY4
         BM7C5jAu9HoDDns9AuhCE4uKhp/OGzCkEfy04pAAEVsBqzEscP7O2VnBTi2aPv+lOt/2
         t0w8D3LlpMmGKXarKoAqQ7k4qPZPQkgLNkxOfj6/UJEN6mUyAW4CHz2SC3Pare6+gxjn
         vo+khB7POeF1iRnbWNALxVkHWf23rcavwKteFMM/cTzLTW06ct8K0JJS3Nm5R4q3xAUE
         ISBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703154230; x=1703759030;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=rll7w/ylB4mbAaGMLCIq8LJO2ulEQT9zrPbAbxvdH1U=;
        b=t966D9vZT9XINSDcPrtn6dmvtq+zgHWVcIVWnoaOQ5hZ8oGB/23tjTKKN3l8qW5Pgn
         AN+YiBXTJMBq0e1+sTwiQJQjTZLnxt66jRZDoKc8MGWJtuRbv7cchpkN00yQUXfMVuNi
         uLBknZAXfcvZDzjFCA9IUm80U+2JugrUtc+CMM/+B8oiRJucWBeoMm9ZDt+4yIZPW4E0
         pGYfjwYvseUEQZ/3dPeLy0m0Z1o7ttlIaLvV6yA8k37WdR2yZU/QgZ+bNHkcofuuhNyn
         OXL3AZh5EQOGza1OQ95tFGLhOBLd6MkrQrt4V8wMtTJSH3mmZEZpfEtsRGjpK8M6tApI
         SEvQ==
X-Gm-Message-State: AOJu0Yw9/+jjgOj3WZIFb9A5/IMHNT+hSlMw1HKluEenOYlkRQFTgd0+
	CKTu/UzJatjhpN6WKAOe57xb
X-Google-Smtp-Source: AGHT+IH5JnK1c0pnKaywxvQsSFdWNoCh0tDDllemFK2B8Z4xRo0G8/4l3DOYM55esruvF6dNWoXP1A==
X-Received: by 2002:a05:6000:18cd:b0:336:841c:c358 with SMTP id w13-20020a05600018cd00b00336841cc358mr368017wrq.155.1703154230089;
        Thu, 21 Dec 2023 02:23:50 -0800 (PST)
Message-ID: <c4c1d007-1c38-495d-9f1c-ee7e679f57ce@suse.com>
Date: Thu, 21 Dec 2023 11:23:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/iommu: add CHANGELOG entry for hwdom setup time
 improvements
Content-Language: en-US
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <20231220134346.22430-1-roger.pau@citrix.com>
 <20231221101244.25650-1-roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231221101244.25650-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.12.2023 11:12, Roger Pau Monne wrote:
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  CHANGELOG.md | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 5ee5d41fc933..52484c047bd1 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>  ### Changed
>   - Changed flexible array definitions in public I/O interface headers to not
>     use "1" as the number of array elements.
> + - On x86:
> +   - Reduce IOMMU setup time for hardware domain.
>  
>  ### Added
>   - On x86:

I'm a little puzzled: Isn't this more like patch 7/6 of the v4 series
(or possibly patch 5.5/6), which hasn't gone in yet?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:24:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:24:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658764.1028109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGEL-0004dF-UM; Thu, 21 Dec 2023 10:24:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658764.1028109; Thu, 21 Dec 2023 10: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 1rGGEL-0004d8-RI; Thu, 21 Dec 2023 10:24:41 +0000
Received: by outflank-mailman (input) for mailman id 658764;
 Thu, 21 Dec 2023 10:24: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=HEgZ=IA=amd.com=Julia.Zhang@srs-se1.protection.inumbo.net>)
 id 1rGGEJ-0004Xj-Rj
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:24:39 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2412::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23bf439d-9feb-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 11:24:37 +0100 (CET)
Received: from DM6PR07CA0113.namprd07.prod.outlook.com (2603:10b6:5:330::16)
 by SJ0PR12MB8140.namprd12.prod.outlook.com (2603:10b6:a03:4e3::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Thu, 21 Dec
 2023 10:24:30 +0000
Received: from DS2PEPF00003446.namprd04.prod.outlook.com
 (2603:10b6:5:330:cafe::a3) by DM6PR07CA0113.outlook.office365.com
 (2603:10b6:5:330::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.20 via Frontend
 Transport; Thu, 21 Dec 2023 10:24:30 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS2PEPF00003446.mail.protection.outlook.com (10.167.17.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Thu, 21 Dec 2023 10:24:30 +0000
Received: from jenkins-julia.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.34; Thu, 21 Dec
 2023 04:24:16 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23bf439d-9feb-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jERasMzmjbTxZkoz6s9aPLI+TfSRoLMtG9Pqh69YkzRr3Dq06Z/AVT+GwGbBEeFTo3Dl+NdLpgTsAypocqnvLBB76eg8rcMeqzrB6+uKUIXpLn/HNCW08wb4auI0QoPfVs/2sJCr6u4xnHTvqYUcls5Ct2HQjHYHFgSUJe+ZE3XOGMfIWRMTSj/bNu3yDuOL6sam7WZSyQvSKVKue+VW0dsgOg94d3AxGj7W8ia8ycTjNBgYZFH0G+iDbmFCNp4SJPS2mD05txFwWqhBD+R7ol3LZRKpqvizfRsPZTyDMSjR49/KwpXCDyBoxgclT7JlE1z6KZFN4zAaPhXtWNIRdA==
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=E5nowDQx2hz6h1Oq56yTcaTPYgCFQhF1Wp6/Ebw4Ly0=;
 b=LndurRNOoEGK+wAewXU5WJMU7co1cKThtACOmmVN4glLJHbDdm/Nc7oykqqfFgK/W1neEeFQ6J1wh6KLSgSRR6Bv38/ZQxlPtoQncXJTvEl90LXGmL7wRC2DZd+5sXNiRxVBoFUpwsHKp8Z9g7VKcbXQ596zHMUWBKEyRZeL+MWKm2CJ9jGF9YN8Q7aIoQlfryurFDEoSIkv4dVCugDNVgOi2qaVOSUyJlqmELUHtvl883jWgMGjqN97hyD2Xy34ANmDb0zaZiowhNUEcHJTbfclHaKFYHuaeOfiQJue4GGvIoaDIT937kKTgEaCkh2onfLLkdwdeMDc2SVJXUKn2g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=redhat.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=E5nowDQx2hz6h1Oq56yTcaTPYgCFQhF1Wp6/Ebw4Ly0=;
 b=VkkzPF0wjwmVtQ6swvGhvZW+UnWnaEdVzLHwEs9l2YVrB3oEfBCoG5HHNMUXLYS2zvRsCudRaxSOiFEp0DYCSoPZWvhDnLK3GLNd8Kobs5+aG4nsJ1KO6J7TyrC5dwvqmu0cNCMdx4Lwz1onxn06XVEaiN1EOuR+/rZ3Wc9776w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Julia Zhang <julia.zhang@amd.com>
To: Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano
	<antonio.caggiano@collabora.com>, "Dr . David Alan Gilbert"
	<dgilbert@redhat.com>, Robert Beckett <bob.beckett@collabora.com>,
	<qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Alex Deucher
	<alexander.deucher@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <burzalodowa@gmail.com>,
	"Honglei Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
	"Chen Jiqian" <Jiqian.Chen@amd.com>
Subject: [PATCH v2 0/1]  Implementation of resource_query_layout
Date: Thu, 21 Dec 2023 18:23:41 +0800
Message-ID: <20231221102342.4022630-1-julia.zhang@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: DS2PEPF00003446:EE_|SJ0PR12MB8140:EE_
X-MS-Office365-Filtering-Correlation-Id: d9a8e435-a527-4d31-1a09-08dc020f04ad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	5OdeR9R7YbD9DepVSYRhxFcvqDa1W2Nrru5F7yKMgZs/Ob3g0EcSjfl2QqsW331rhVCuMZR91O+7ShyeXABE5wD3NL9T9tPo89qTkKc9j1PtW4kDXznqbqLzOvLYG5oWBww05C5+IdW8kvmI4D9/oCXvBWyoIRTa+49IxbV1O5GZMuLr5TjnnRk2YfyEwbpFtYJS8Y+0k23Ie0d10IxlbI/ZUvG0wIyM4fe3KwgUchj/jcy0IqjXPi0ZgWHRcP9ZMNSpxLzwbeCP/W5hd6D8Fx8NPTUh61W51NzYeEOx98KQ7CvMoMJ5jHv5dfZOep608MVIDnjar9qAf2tLfrmWuujyL4zSpq86QNwxferFYRvVCsvnp4gJ4PXjHaojfUwjzWKF7NMLq8B2WYTBIRBWiDYWmb7HOEU7stege1ZU4Ngoae4EA2iQmsfFG2Ifkc3Kd6iRKS2M03HlvgYHthhBTcmymK5qknGoih84pACEvhPP9OKkGgnX9yJctIO8ye3ZEKUeICs1vat5pxpNr7jqhZ/cXEYGgpiWYsGJsDBnv+q5zIbnd46izhBcf8XFn0iyoR6aUvADXtP7xWvoOplEiH3zL4OSX2Xz7iiL52Bj2f0sW1mrvR2tioqNN/qDwb+H9u4A4+hV4+j2/hwzg5YCjY2PZ+SsVdUFoKsBD7XmEq5tliqw/j1Rl+je7ztOkVqaWBbD802Gor6b9QKeewxU/Pvarz+meXfnPubMZfsJhEMlU0p4vkmuBLJgfspn3Smu0cjXzCSvO0HLvJsaj8uiNg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(346002)(136003)(39860400002)(376002)(230922051799003)(186009)(64100799003)(82310400011)(1800799012)(451199024)(36840700001)(40470700004)(46966006)(8676002)(4326008)(8936002)(26005)(2906002)(40480700001)(478600001)(316002)(40460700003)(44832011)(6666004)(70586007)(54906003)(110136005)(70206006)(7696005)(5660300002)(86362001)(36860700001)(47076005)(1076003)(81166007)(82740400003)(2616005)(7416002)(36756003)(336012)(356005)(426003)(41300700001)(16526019)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2023 10:24:30.5204
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d9a8e435-a527-4d31-1a09-08dc020f04ad
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003446.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB8140

Hi all,

Sorry to late reply. This is v2 of the implementation of
resource_query_layout. This adds a new ioctl to let guest query information
of host resource, which is originally from Daniel Stone. We add some
changes to support query the correct stride of host resource before it's
created, which is to support dGPU prime feature. Without correct stride,
dGPU can not blit data to virtio iGPU correctly. 

Changes from v1 to v2:
-Squash two patches to a single patch. 
-A small modification of VIRTIO_GPU_F_RESOURCE_QUERY_LAYOUT


Below is description of v1:
This add implementation of resource_query_layout to get the information of
how the host has actually allocated the buffer. This function is now used
to query the stride for guest linear resource for dGPU prime on guest VMs.

v1 of qemu side:
https:
//lore.kernel.org/qemu-devel/20231110074027.24862-1-julia.zhang@amd.com/T/#t

v1 of kernel side:
 https:
//lore.kernel.org/xen-devel/20231110074027.24862-1-julia.zhang@amd.com/T/#t

Daniel Stone (1):
  virgl: Implement resource_query_layout

 hw/display/virtio-gpu-base.c                |  4 +++
 hw/display/virtio-gpu-virgl.c               | 40 +++++++++++++++++++++
 include/hw/virtio/virtio-gpu-bswap.h        |  7 ++++
 include/standard-headers/linux/virtio_gpu.h | 30 ++++++++++++++++
 meson.build                                 |  4 +++
 5 files changed, 85 insertions(+)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:24:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:24:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658765.1028118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGEd-00052p-4M; Thu, 21 Dec 2023 10:24:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658765.1028118; Thu, 21 Dec 2023 10:24:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGEd-00052i-1o; Thu, 21 Dec 2023 10:24:59 +0000
Received: by outflank-mailman (input) for mailman id 658765;
 Thu, 21 Dec 2023 10:24: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=yxSo=IA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rGGEb-00051I-Qd
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:24:57 +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 3021660c-9feb-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 11:24:57 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40d2376db79so4740425e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:24:57 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 l2-20020a05600c4f0200b003feae747ff2sm10663775wmq.35.2023.12.21.02.24.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 02:24:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3021660c-9feb-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703154296; x=1703759096; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jQooth6BrfgYO72SFJtU9T6nvZk+lUA6jnXDfawcbPI=;
        b=oSZIC28yXG5H+qKFVpumLGnsMa/sRhdWtLKLLFzV2ra+JO2V3fYvfusMHIcEhnEyh9
         MtubaDiEemf0X1QKCejcH+1EG0S3rfb2vlXR3Ljqq9qkHjkrSwxZKvyuk8VCVTxfksXp
         iuVQeb1fmwD871Ykde1IcQsUjdZ7aiZ7I7VRc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703154296; x=1703759096;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=jQooth6BrfgYO72SFJtU9T6nvZk+lUA6jnXDfawcbPI=;
        b=YpBPEDFuYYT8T4k8gnOHLd9VPL8e5uBvlxbJXmSNNqrZaj6meP1gRf5CI5kke8Ank5
         BiqgyWGRMYV1wknYKxvYpal/kqUX0YqysZQhFX6gQ9wlhDHQXHxpJX7rNINUZPhssija
         WV5RQdr0saZcvUfkkhNktHQTGA6dV2DaQ8m6rAehyzEId9Tx5gsP6BHi2ORNgUSCB9Y4
         A4K71ec9xh5r4stTj1AxEF/0QgH9qGWvgsgBqIiZxneV5KzDyc7kg8M03wP0kDi1NBiQ
         meGBD05Mrx/0BqCt+Sq6nracZdiDvY3Bod8FdXhguFyvz2xuB3yiNqGjcOaUweWs5Cdi
         OnPQ==
X-Gm-Message-State: AOJu0YyuF5jNx1LTYb+WC+cF32T8nUdioVBM3qOvhu5N1zP5BMRuIZf0
	aq1wc2sdtbVp7lEI3jLTKxNqyg==
X-Google-Smtp-Source: AGHT+IGZmz1t+LeFSd9kTYvn55s96oYtCrDK9indXCVqEi1/CD/H0/Y0J5xfYYeqVs2jdLtoP90ymg==
X-Received: by 2002:a05:600c:3592:b0:40c:4ca8:6aca with SMTP id p18-20020a05600c359200b0040c4ca86acamr674966wmq.109.1703154296538;
        Thu, 21 Dec 2023 02:24:56 -0800 (PST)
Message-ID: <6d8eb59c-5824-47b3-b2d0-24f1db96b367@citrix.com>
Date: Thu, 21 Dec 2023 10:24:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/amd: extend CPU errata #1474 affected models
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Roger Pau Monne <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <20231221100831.25570-1-roger.pau@citrix.com>
 <213dc008-f8eb-4313-8b3e-17fc435416e1@citrix.com>
 <978e4603-f20b-481f-97bd-2a84de0800c8@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <978e4603-f20b-481f-97bd-2a84de0800c8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/12/2023 10:20 am, Jan Beulich wrote:
> On 21.12.2023 11:17, Andrew Cooper wrote:
>> On 21/12/2023 10:08 am, Roger Pau Monne wrote:
>>> Errata #1474has now been extended to cover models from family 17h ranges
>> Extra space needed.Â  Can be fixed on commit.
> Also (not just here) - isn't it "erratum" when we talk of just one?

Good point, yes.

I'll fix both.Â  (I'm just collecting some patches for a Gitlab CI run on
Juergen's patches, and I'll include this one.)

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:25:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:25:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658766.1028129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGEh-0005L6-CQ; Thu, 21 Dec 2023 10:25:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658766.1028129; Thu, 21 Dec 2023 10:25:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGEh-0005Kv-9o; Thu, 21 Dec 2023 10:25:03 +0000
Received: by outflank-mailman (input) for mailman id 658766;
 Thu, 21 Dec 2023 10:25:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HEgZ=IA=amd.com=Julia.Zhang@srs-se1.protection.inumbo.net>)
 id 1rGGEg-0004Xj-DZ
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:25:02 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2060f.outbound.protection.outlook.com
 [2a01:111:f400:7eb2::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31bb4a60-9feb-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 11:25:00 +0100 (CET)
Received: from CH2PR12CA0018.namprd12.prod.outlook.com (2603:10b6:610:57::28)
 by CH2PR12MB4150.namprd12.prod.outlook.com (2603:10b6:610:a6::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.21; Thu, 21 Dec
 2023 10:24:50 +0000
Received: from DS2PEPF00003444.namprd04.prod.outlook.com
 (2603:10b6:610:57:cafe::33) by CH2PR12CA0018.outlook.office365.com
 (2603:10b6:610:57::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.20 via Frontend
 Transport; Thu, 21 Dec 2023 10:24:50 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS2PEPF00003444.mail.protection.outlook.com (10.167.17.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Thu, 21 Dec 2023 10:24:50 +0000
Received: from jenkins-julia.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.34; Thu, 21 Dec
 2023 04:24:45 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31bb4a60-9feb-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Ozzyb76d7Olx9tTD/MJ9EDfscgYrnyoX/Kneyzc0W12ewAt+2hvrEPBGtcPJCP8MAoPwnqE99VTKdn7eOHuWWT9VHbYx7PerrA3QctmxTwzjW2vGhl6tFdvbK6BnUh5JpJ2sA47dF4kWGi5k9/CzMg2FDAVIjDBpbaXkP6uLZ4WZHxGWvjeGygy20T8MovIbn5aYwngjyJqtwn+WK84Rar4T8rn0+8mWd81O3bj4KAyb/V36AZkNSXx3PXl6AbvDeCQBGtJ+Y1fAp4pv8Og706T9BNRDieDTXzEeyFOLVMIC7/pT52cICZRWR7s2TLX5cn1mKxl2iM1whZ8gOav+gg==
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=77o8ldi+jx+mBAHecSVRnPQQFtbIEjMetY1JJxzTl1Q=;
 b=XEhIxNJBn+DvGXdOp5aG6OL1kPvF3dBpwGt6qAJUO17RcRIEh8D+bYDgryRi0sBnhvmK6aaXzyV7+7unWAn2RYU/z5YsnU2+Zb7X5lMUk0KwuL4wyoZ5eALIsPtzw7RfXln83TmjOBhIE3Dx/joW44xBE4PQXXesxPQimNYQbgPlEpGAldwdwi3t1k8qzniII/KS+1VvtPUh/uVgquoHJCSQeJB0+IQjL0P8XCExw3co1EI+7dmKDajk4ZbGbBW5y5JuRxWlVVP1SWAUClULCOEs+dI11FW6QNa2kFMeTviINgjBl7xT7waccAVP++Z2gdT8G6Ei8bZFm3X0aYKnNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=redhat.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=77o8ldi+jx+mBAHecSVRnPQQFtbIEjMetY1JJxzTl1Q=;
 b=MXhIBzLE7RExaFWsK59fvs9r4KvRHyMyXpi6dJf3Nz8RLx9PlVtD511HrJu7taFdz1iyc52CqMtWQbRd4acKcMfV/iGQs2IPtyAT7PQhFwlSv8qB3b5Oad0LHo6Dpjk21HDNRkC3XU0KDHNJnc0/4KjSGJoffnFr1SLnwo2XjRo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Julia Zhang <julia.zhang@amd.com>
To: Gerd Hoffmann <kraxel@redhat.com>, "Michael S . Tsirkin" <mst@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@citrix.com>, Antonio Caggiano
	<antonio.caggiano@collabora.com>, "Dr . David Alan Gilbert"
	<dgilbert@redhat.com>, Robert Beckett <bob.beckett@collabora.com>,
	<qemu-devel@nongnu.org>
CC: <xen-devel@lists.xenproject.org>, Alex Deucher
	<alexander.deucher@amd.com>, =?UTF-8?q?Christian=20K=C3=B6nig?=
	<christian.koenig@amd.com>, Xenia Ragiadakou <burzalodowa@gmail.com>,
	"Honglei Huang" <honglei1.huang@amd.com>, Julia Zhang <julia.zhang@amd.com>,
	"Chen Jiqian" <Jiqian.Chen@amd.com>, Daniel Stone <daniels@collabora.com>
Subject: [PATCH v2 1/1] virgl: Implement resource_query_layout
Date: Thu, 21 Dec 2023 18:23:43 +0800
Message-ID: <20231221102342.4022630-2-julia.zhang@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20231221102342.4022630-1-julia.zhang@amd.com>
References: <20231221102342.4022630-1-julia.zhang@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: DS2PEPF00003444:EE_|CH2PR12MB4150:EE_
X-MS-Office365-Filtering-Correlation-Id: 859bac35-eab6-418c-8df9-08dc020f107d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	MS3I23z1Bs+jwHzXutZppi4ndAYCUIX+upYyEDUZT/6JlwcotuLDdl6G82ARiwvNnJv8gvmUUGxjEbtSQN/0K0R7RqXLkTTk6qhpK/mjCX0Qci9Yq0UzaSYpnhET7Je6CU6MHncakbarR6MSSdy6CtTnB/O+T7bVgTL7rMJRkveoizPR/zaHHIgXV5+tZMLRuFJoWqWyW9b7HXaQLqPR81kfNPna8LQCV3Z/yV0UDpJKCasb7+G+Xqzio8PQJNO6DoSujWGKgRNKRoCeCksVRMFDwGN0Be1B/0iWiuskk5UiahoL4omAO5FNzUAyviupwWQ+5J/gn/PIiHSAjcXWcZ6yvLDkw1AZZw/ZbwxzmvI9cMT/xA0m68iVlpYaCQEzvPC/OBAf8MeYaBgmE7uEmaLI46MtqANNijU0GPaP3JHaZc2gK3qH0m+vNmUHRNYq9zTAwRZff6Q6DsW6JNCHiq1ucCj8uzaQ3lHTgkmUdLlpORFVgvPGL/PI2PJ8q2RzZleGWxSa2cVJval7WDmix+QEeDXNQlaj3BCa+oFSRgIAJEK1rvIsVEHmSpspl2ObheZZkIQqcKRbmKZfvOS7tGDQAsR2+x9h/NUhglzNZoEO/8G76IVqh3JYu9jHIjTt7fxFb6NWYfzupBCebfSoJHQh86bWP5NromJuMSnfSYD72yd5igHd/S8DTKWCNKZ7+n7dlPjiUjLQBpqK5+m2sKpnpCIgvcjmpfycrQcjnpXZOmWNNDAGb9P5YQUkKqNFOVwyS5QCNZbrURcwOXvymbT97YT8yonwGW1m4Wbp/0tHQ9wEJ1oRU8O+CMCTwJbG
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(396003)(136003)(376002)(346002)(230173577357003)(230922051799003)(230273577357003)(186009)(82310400011)(451199024)(1800799012)(64100799003)(36840700001)(40470700004)(46966006)(110136005)(70206006)(70586007)(40480700001)(54906003)(316002)(8936002)(8676002)(4326008)(40460700003)(44832011)(41300700001)(81166007)(336012)(426003)(83380400001)(47076005)(26005)(1076003)(2616005)(82740400003)(16526019)(5660300002)(86362001)(36756003)(356005)(7696005)(2906002)(36860700001)(7416002)(478600001)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2023 10:24:50.3415
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 859bac35-eab6-418c-8df9-08dc020f107d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003444.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4150

From: Daniel Stone <daniels@collabora.com>

A new ioctl to shuttle information between host and guest about the
actual buffer allocation, which can be used for interop between GL and
Vulkan when supporting standard window systems.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Co-developed-by: Julia Zhang <julia.zhang@amd.com>
Signed-off-by: Julia Zhang <julia.zhang@amd.com>
---
 hw/display/virtio-gpu-base.c                |  4 +++
 hw/display/virtio-gpu-virgl.c               | 40 +++++++++++++++++++++
 include/hw/virtio/virtio-gpu-bswap.h        |  7 ++++
 include/standard-headers/linux/virtio_gpu.h | 30 ++++++++++++++++
 meson.build                                 |  4 +++
 5 files changed, 85 insertions(+)

diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
index 6bcee3882f..09b37f015d 100644
--- a/hw/display/virtio-gpu-base.c
+++ b/hw/display/virtio-gpu-base.c
@@ -240,6 +240,10 @@ virtio_gpu_base_get_features(VirtIODevice *vdev, uint64_t features,
         features |= (1 << VIRTIO_GPU_F_RESOURCE_UUID);
     }
 
+#ifdef HAVE_VIRGL_RESOURCE_QUERY_LAYOUT
+    features |= (1 << VIRTIO_GPU_F_RESOURCE_QUERY_LAYOUT);
+#endif /* HAVE_VIRGL_RESOURCE_QUERY_LAYOUT */
+
     return features;
 }
 
diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index c1e7c6d0c6..b331232fee 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -813,6 +813,40 @@ static void virgl_cmd_set_scanout_blob(VirtIOGPU *g,
 
 #endif /* HAVE_VIRGL_RESOURCE_BLOB */
 
+#ifdef HAVE_VIRGL_RESOURCE_QUERY_LAYOUT
+static void virgl_cmd_resource_query_layout(VirtIOGPU *g,
+					    struct virtio_gpu_ctrl_command *cmd)
+{
+    struct virtio_gpu_resource_query_layout qlayout;
+    struct virtio_gpu_resp_resource_layout resp;
+    struct virgl_renderer_resource_layout rlayout;
+    int ret;
+    int i;
+    VIRTIO_GPU_FILL_CMD(qlayout);
+    virtio_gpu_resource_query_layout_bswap(&qlayout);
+
+    ret = virgl_renderer_resource_query_layout(qlayout.resource_id, &rlayout,
+					       qlayout.width, qlayout.height,
+					       qlayout.format, qlayout.bind);
+    if (ret != 0) {
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: resource %d is not externally-allocated\n",
+                      __func__, qlayout.resource_id);
+        cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
+        return;
+    }
+
+    memset(&resp, 0, sizeof(resp));
+    resp.hdr.type = VIRTIO_GPU_RESP_OK_RESOURCE_LAYOUT;
+    resp.num_planes = rlayout.num_planes;
+    resp.modifier = rlayout.modifier;
+    for (i = 0; i < resp.num_planes; i++) {
+        resp.planes[i].offset = rlayout.planes[i].offset;
+        resp.planes[i].stride = rlayout.planes[i].stride;
+    }
+    virtio_gpu_ctrl_response(g, cmd, &resp.hdr, sizeof(resp));
+}
+#endif /* HAVE_VIRGL_RESOURCE_QUERY_LAYOUT */
+
 void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
                                       struct virtio_gpu_ctrl_command *cmd)
 {
@@ -896,6 +930,12 @@ void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,
         virgl_cmd_set_scanout_blob(g, cmd);
         break;
 #endif /* HAVE_VIRGL_RESOURCE_BLOB */
+
+#ifdef HAVE_VIRGL_RESOURCE_QUERY_LAYOUT
+    case VIRTIO_GPU_CMD_RESOURCE_QUERY_LAYOUT:
+	virgl_cmd_resource_query_layout(g, cmd);
+	break;
+#endif /* HAVE_VIRGL_RESOURCE_QUERY_LAYOUT*/
     default:
         cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
         break;
diff --git a/include/hw/virtio/virtio-gpu-bswap.h b/include/hw/virtio/virtio-gpu-bswap.h
index dd1975e2d4..dea8cf6fd3 100644
--- a/include/hw/virtio/virtio-gpu-bswap.h
+++ b/include/hw/virtio/virtio-gpu-bswap.h
@@ -92,4 +92,11 @@ virtio_gpu_scanout_blob_bswap(struct virtio_gpu_set_scanout_blob *ssb)
     le32_to_cpus(&ssb->offsets[3]);
 }
 
+static inline void
+virtio_gpu_resource_query_layout_bswap(struct virtio_gpu_resource_query_layout *rql)
+{
+    virtio_gpu_ctrl_hdr_bswap(&rql->hdr);
+    le32_to_cpus(&rql->resource_id);
+}
+
 #endif
diff --git a/include/standard-headers/linux/virtio_gpu.h b/include/standard-headers/linux/virtio_gpu.h
index c621389f3d..c9a2f58237 100644
--- a/include/standard-headers/linux/virtio_gpu.h
+++ b/include/standard-headers/linux/virtio_gpu.h
@@ -65,6 +65,11 @@
  */
 #define VIRTIO_GPU_F_CONTEXT_INIT        4
 
+/*
+ * VIRTIO_GPU_CMD_RESOURCE_QUERY_LAYOUT
+ */
+#define VIRTIO_GPU_F_RESOURCE_QUERY_LAYOUT 5
+
 enum virtio_gpu_ctrl_type {
 	VIRTIO_GPU_UNDEFINED = 0,
 
@@ -95,6 +100,7 @@ enum virtio_gpu_ctrl_type {
 	VIRTIO_GPU_CMD_SUBMIT_3D,
 	VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB,
 	VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB,
+	VIRTIO_GPU_CMD_RESOURCE_QUERY_LAYOUT,
 
 	/* cursor commands */
 	VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300,
@@ -108,6 +114,7 @@ enum virtio_gpu_ctrl_type {
 	VIRTIO_GPU_RESP_OK_EDID,
 	VIRTIO_GPU_RESP_OK_RESOURCE_UUID,
 	VIRTIO_GPU_RESP_OK_MAP_INFO,
+	VIRTIO_GPU_RESP_OK_RESOURCE_LAYOUT,
 
 	/* error responses */
 	VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200,
@@ -455,4 +462,27 @@ struct virtio_gpu_resource_unmap_blob {
 	uint32_t padding;
 };
 
+
+/* VIRTIO_GPU_CMD_RESOURCE_QUERY_LAYOUT */
+struct virtio_gpu_resource_query_layout {
+	struct virtio_gpu_ctrl_hdr hdr;
+	uint32_t resource_id;
+	uint32_t width;
+	uint32_t height;
+	uint32_t format;
+	uint32_t bind;
+};
+
+/* VIRTIO_GPU_RESP_OK_RESOURCE_LAYOUT */
+#define VIRTIO_GPU_RES_MAX_PLANES 4
+struct virtio_gpu_resp_resource_layout {
+	struct virtio_gpu_ctrl_hdr hdr;
+	uint64_t modifier;
+	uint32_t num_planes;
+	struct virtio_gpu_resource_plane {
+		uint64_t offset;
+		uint32_t stride;
+	} planes[VIRTIO_GPU_RES_MAX_PLANES];
+};
+
 #endif
diff --git a/meson.build b/meson.build
index a739a62f2c..72024f5f01 100644
--- a/meson.build
+++ b/meson.build
@@ -1058,6 +1058,10 @@ if not get_option('virglrenderer').auto() or have_system or have_vhost_user_gpu
                          cc.has_function('virgl_renderer_resource_create_blob',
                                          prefix: '#include <virglrenderer.h>',
                                          dependencies: virgl))
+    config_host_data.set('HAVE_VIRGL_RESOURCE_QUERY_LAYOUT',
+                         cc.has_function('virgl_renderer_resource_query_layout',
+                                         prefix: '#include <virglrenderer.h>',
+                                         dependencies: virgl))
   endif
 endif
 rutabaga = not_found
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:28:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:28:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658780.1028138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGHy-0006QE-Up; Thu, 21 Dec 2023 10:28:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658780.1028138; Thu, 21 Dec 2023 10:28:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGHy-0006Q7-SD; Thu, 21 Dec 2023 10:28:26 +0000
Received: by outflank-mailman (input) for mailman id 658780;
 Thu, 21 Dec 2023 10:28:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yxSo=IA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rGGHx-0006Q1-BH
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:28: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 ab215ac5-9feb-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 11:28:23 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2cc8fd5d54bso6662571fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:28:23 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 o20-20020a05600c4fd400b004094d4292aesm2753820wmq.18.2023.12.21.02.28.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 02:28:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab215ac5-9feb-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703154503; x=1703759303; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=fpZpNXw9N6hDkx+/uTJfWExFLw7rUF2tLqSwFz8pVuw=;
        b=OfPqcNrkvcYqzK2HKA13NeLF3PmotyCKy6pY6Lsgij8ceJ5Qrq9GJDxoqg3br9z0rU
         hHpbn+fSC2PLq3GT9+JOdDcgSuBkqvkkDSmI4kGqazqadcL3GUF3xh8nyi/qxJxDliDA
         SmrBDwNriH6tjFs29tMFmV+4vSso1wl71lIww=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703154503; x=1703759303;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=fpZpNXw9N6hDkx+/uTJfWExFLw7rUF2tLqSwFz8pVuw=;
        b=KIDmteEdhRql9pzrq27/S1COVFXIBP11TVj3mcH5WJL/rIRcFZpRZeb1rEPU/g/iWW
         qK2Glq3o65HXNon0N2exsqKnGJMCkxHjBU7ElTCKOGZHcIpmR+iflaRZB1BXFj2wfc/1
         UzZHS7ZV6ZIoSBvoHtp/5Wf45qTGW3KeWc+S9juCyw17wgqIrgO4tJny9/pb8xiBt/TV
         hwuSaRm8il1+Gyhs+jaCvYrQAPLUDK3lHaCvwqYqaNDft1lCI/AI6vxirBWMXmNmwJeL
         8CGHda1umpdIoy/mXP9FpjCL2AvTAGsbP+CwzbsCY3LCCqBY9K8nvXG/gtYp+7RYv66L
         IC0w==
X-Gm-Message-State: AOJu0YxO9yuO99pXtUr1pmJ8MPhvpzok+YELJ2Y7Stx2oY4yAVFYScPx
	I1Xs3bDeE782wQwRuYpsDifXaA==
X-Google-Smtp-Source: AGHT+IHQIaDxIdrul9O5W278h+bP/b+aA73QZj6kkpIbcwb+8bAfnI5e9hdPjDjk9aSNc4J9AwuxWA==
X-Received: by 2002:a05:6512:ac8:b0:50e:2a3a:19e9 with SMTP id n8-20020a0565120ac800b0050e2a3a19e9mr6105234lfu.60.1703154502904;
        Thu, 21 Dec 2023 02:28:22 -0800 (PST)
Message-ID: <71f638d1-1037-4170-a345-0ea0a0573fc3@citrix.com>
Date: Thu, 21 Dec 2023 10:28:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/xmalloc: XMEM_POOL_POISON improvements
Content-Language: en-GB
To: Julien Grall <julien@xen.org>, Xen-devel <xen-devel@lists.xenproject.org>
Cc: George Dunlap <George.Dunlap@eu.citrix.com>,
 Jan Beulich <JBeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20231220214716.2510402-1-andrew.cooper3@citrix.com>
 <38dfe5ac-790e-4479-b7a8-ab3d5d0d0db2@xen.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <38dfe5ac-790e-4479-b7a8-ab3d5d0d0db2@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/12/2023 9:51 pm, Julien Grall wrote:
> Hi Andrew,
>
> On 20/12/2023 21:47, Andrew Cooper wrote:
>> When in use, the spew:
>>
>> Â Â  (XEN) Assertion '!memchr_inv(b->ptr.buffer + MIN_BLOCK_SIZE,
>> POISON_BYTE, (b->size & BLOCK_SIZE_MASK) - MIN_BLOCK_SIZE)' failed at
>> common/xmalloc_tlsf.c:246
>>
>> is unweidly and likely meaningless to non-Xen developers.Â  Therefore:
>>
>> Â  * Switch to IS_ENABLED().Â  There's no need for full #ifdef-ary.
>> Â  * Pull memchr_inv() out into the if(), and provide an error message
>> which
>> Â Â Â  clearly states that corruption has been found.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> With one remark:
>
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Thanks.Â  Will fix.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:29:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:29:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658783.1028149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGIr-0006yt-7j; Thu, 21 Dec 2023 10:29:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658783.1028149; Thu, 21 Dec 2023 10:29:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGIr-0006ym-4W; Thu, 21 Dec 2023 10:29:21 +0000
Received: by outflank-mailman (input) for mailman id 658783;
 Thu, 21 Dec 2023 10:29:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qw+O=IA=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rGGIp-0006wY-Fh
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:29:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cbe3be75-9feb-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 11:29:18 +0100 (CET)
Received: from [192.168.1.229] (93-36-216-194.ip62.fastwebnet.it
 [93.36.216.194])
 by support.bugseng.com (Postfix) with ESMTPSA id 77DD04EE0742;
 Thu, 21 Dec 2023 11:29:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbe3be75-9feb-11ee-98eb-6d05b1d4d9a1
Message-ID: <6f3e64d1-5719-4960-9f60-0497a8ccea00@bugseng.com>
Date: Thu, 21 Dec 2023 11:29:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
Content-Language: en-US, it
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 consulting@bugseng.com, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com>
 <0200354e-08b9-4136-b6e9-3220a51256af@xen.org>
 <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
 <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@bugseng.com>
 <alpine.DEB.2.22.394.2312201008070.685950@ubuntu-linux-20-04-desktop>
 <e5a812ab-faaf-47fd-bada-9b19e0c94bcc@citrix.com>
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <e5a812ab-faaf-47fd-bada-9b19e0c94bcc@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 20/12/23 22:23, Andrew Cooper wrote:
> On 20/12/2023 6:24 pm, Stefano Stabellini wrote:
>> On Wed, 20 Dec 2023, Federico Serafini wrote:
>>> On 20/12/23 12:55, Jan Beulich wrote:
>>>> On 20.12.2023 12:48, Julien Grall wrote:
>>>>> On 20/12/2023 11:03, Federico Serafini wrote:
>>>>>> --- a/xen/arch/arm/arm64/vsysreg.c
>>>>>> +++ b/xen/arch/arm/arm64/vsysreg.c
>>>>>> @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
>>>>>>             /* RO at EL0. RAZ/WI at EL1 */
>>>>>>             if ( regs_mode_is_user(regs) )
>>>>>>                 return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr,
>>>>>> 0);
>>>>>> -        else
>>>>>> -            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr,
>>>>>> 1);
>>>>>> +
>>>>>> +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
>>>>> I don't 100% like this change (mostly because I find if/else clearer
>>>>> here).
>>>> While (it doesn't matter here) my view on this is different, I'm still
>>>> puzzled why the tool would complain / why a change here is necessary.
>>>> It is not _one_ return statement, but there's still (and obviously) no
>>>> way of falling through.
>>> The tool is configurable:
>>> if you prefer deviate these cases instead of refactoring the code
>>> I can update the configuration.
>>   
>> If you say "deviation", it implies that there is a violation. I think
>> Jan's point was that both code versions shouldn't be any different.
>>
>> # option-1
>> if (a)
>>    return f1();
>> else
>>    return f2();
>>
>> # option-2
>> if (a)
>>    return f1();
>> return f2();
>>
>> Both options are equally guaranteed to always return. It looks like a
>> peculiar limitation to only recognize option-2 as something that returns
>> 100% of the times. Also option-1 returns 100% of the times. What am I
>> missing?

I don't think this is necessarily a limitation because it highlights
cases where an if-else could be replaced with a simple if:
some may find an if-else clearer, other may find the single if clearer.

 From a safety point of view both options are safe because there
is no risk of unintentional fall through.

If you all agree on the fact that small code refactoring like the ones I
proposed are counterproductive, then I can update the tool configuration
to consider also option-1 as safe.

> 
> For completeness, it's worth saying that there is an option-3:
> 
>  Â Â Â  return a ? f1() : f2();
> 
> which is very clearly only a single return, but I personally don't like
> this as I often find it to be less clear than either other option.

Option-3 is currently considered as safe.

> 
> All options have a guaranteed return, but there cases including this one
> where option-1 is clearest way to write the logic.
> 
> ~Andrew

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:34:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658794.1028159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGNX-0001LB-Oh; Thu, 21 Dec 2023 10:34:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658794.1028159; Thu, 21 Dec 2023 10:34:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGNX-0001KI-LY; Thu, 21 Dec 2023 10:34:11 +0000
Received: by outflank-mailman (input) for mailman id 658794;
 Thu, 21 Dec 2023 10: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=Qw+O=IA=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rGGNW-0001JA-JX
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:34:10 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78e7e281-9fec-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 11:34:08 +0100 (CET)
Received: from [192.168.1.229] (93-36-216-194.ip62.fastwebnet.it
 [93.36.216.194])
 by support.bugseng.com (Postfix) with ESMTPSA id 553C74EE0742;
 Thu, 21 Dec 2023 11:34:08 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78e7e281-9fec-11ee-9b0f-b553b5be7939
Message-ID: <ce1068ce-5537-4322-9316-d2260d9a9378@bugseng.com>
Date: Thu, 21 Dec 2023 11:34:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 0/7] xen/arm: address violations of MISRA C:2012 Rule
 16.3
Content-Language: en-US, it
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <d847830f-7071-4141-bab7-8b8c55ec3ae8@citrix.com>
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG srl
In-Reply-To: <d847830f-7071-4141-bab7-8b8c55ec3ae8@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 20/12/23 22:35, Andrew Cooper wrote:
> On 20/12/2023 11:03 am, Federico Serafini wrote:
>> This patch series addresses violations of MISRA C:2012 Rule 16.3 on the Arm
>> code. No fucntional changes are introduced.
>>
>> Federico Serafini (7):
>>    xen/arm: gic-v3: address violations of MISRA C:2012 Rule 16.3
>>    xen/arm: traps: address violations of MISRA C:2012 Rule 16.3
>>    xen/arm: guest_walk: address violations of MISRA C:2012 Rule 16.3
>>    xen/arm: mem_access: address violations of MISRA C:2012 Rule 16.3
>>    xen/arm: v{cp,sys}reg: address violations of MISRA C:2012 Rule 16.3
>>    xen/arm: mmu: address a violations of MISRA C:2012 Rule 16.3
>>    xen/arm: smmu-v3: address violations of MISRA C:2012 Rule 16.3
>>
>>   xen/arch/arm/arm64/vsysreg.c          |  4 ++--
>>   xen/arch/arm/gic-v3.c                 | 30 +++++++++++++++++++++++++++
>>   xen/arch/arm/guest_walk.c             |  4 ++++
>>   xen/arch/arm/mem_access.c             | 12 +++++------
>>   xen/arch/arm/mmu/p2m.c                |  1 +
>>   xen/arch/arm/traps.c                  | 18 ++++++++++++----
>>   xen/arch/arm/vcpreg.c                 |  4 ++--
>>   xen/drivers/passthrough/arm/smmu-v3.c |  2 ++
>>   8 files changed, 61 insertions(+), 14 deletions(-)
>>
> 
> Just a couple of notes on style.Â  This isn't a request to change
> anything in this series, particularly as most is already committed, but
> bear it in mind for what I expect will be similar patches in other areas.
> 
> We explicitly permit tabulation when it aids readibility, so patch 2
> could have been written:
> 
>  Â Â Â Â Â Â Â  switch ( hypercall_args[*nr] ) {
>  Â Â Â Â Â Â Â  case 5: HYPERCALL_ARG5(regs) = 0xDEADBEEFU; fallthrough;
>  Â Â Â Â Â Â Â  case 4: HYPERCALL_ARG4(regs) = 0xDEADBEEFU; fallthrough;
>  Â Â Â Â Â Â Â  case 3: HYPERCALL_ARG3(regs) = 0xDEADBEEFU; fallthrough;
>  Â Â Â Â Â Â Â  case 2: HYPERCALL_ARG2(regs) = 0xDEADBEEFU; fallthrough;
>  Â Â Â Â Â Â Â  case 1: /* Don't clobber x0/r0 -- it's the return value */
>  Â Â Â Â Â Â Â  case 0: /* -ENOSYS case */
>  Â Â Â Â Â Â Â Â Â Â Â  break;
>  Â Â Â Â Â Â Â  default: BUG();
>  Â Â Â Â Â Â Â  }
> 
> (give or take the brace placement other style issue)Â  We also have cases
> where a break before a new case statement is preferred, i.e.:
> 
>  Â Â Â  Â Â Â  ...
>  Â Â Â  Â Â Â  break;
> 
>  Â Â Â  case ...:
> 
> This is to prevent larger switch statements from being a straight wall
> of text.
> 
> If in doubt, match the style around it.Â  Please don't de-tabulate
> examples which are already tabulated.Â  (i.e. don't de-tabulate the x86
> versions of patch 2.)
> 
> ~Andrew

Understood, thank you.

-- 
Federico Serafini, M.Sc.

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:34:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:34:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658797.1028169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGNq-0001sP-0J; Thu, 21 Dec 2023 10:34:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658797.1028169; Thu, 21 Dec 2023 10: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 1rGGNp-0001sI-Tb; Thu, 21 Dec 2023 10:34:29 +0000
Received: by outflank-mailman (input) for mailman id 658797;
 Thu, 21 Dec 2023 10:34: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=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGGNo-0001fa-3Q
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:34:28 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 841ece09-9fec-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 11:34:27 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40d31116dbeso7036245e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:34:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 i5-20020a05600c354500b0040d2805d158sm2755029wmq.48.2023.12.21.02.34.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 02:34:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 841ece09-9fec-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703154867; x=1703759667; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xKp0lfNdj4JAZmeaj9cRG9ojnk5+dhWB0fRogF/fZqo=;
        b=UozH2ewwUcjcjWxK6M3UTeXR+StWuaB9/Amzz9x+0xoLSVzbrKvR7LRvRjN5SUKpQ0
         IV9AlmyGkaEkfEbvyAg/i1ZBtrST+WNGV/dq30dyuLKfLZqNg6g6UBBhk8fGVPhfCg0o
         rms7z9IUQR470X++RkRzrl0v7CiRVS1cHoi1iOVqEgnRjFJ/rMWwRf3BxZdgjbdZxctb
         Eq6b6ChEvxSEi6TX8f2W5FjyioCWJ8f+muOa88AZf+61hfOIPn16oeXOCsOdh/d+qrTY
         qqBSDgXFDl4RtNuP0iG+l5wAj1YMtbsfJuPs/GBEU4oQebW54k9OEhFUumyu6VQNqUx4
         BdKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703154867; x=1703759667;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xKp0lfNdj4JAZmeaj9cRG9ojnk5+dhWB0fRogF/fZqo=;
        b=ggoCxBEevSKsafIgv5OqcGiD3L+jwmNgEsbSXsApIaYXFahkqOA4qXfue60dy21JWr
         a4otr33gKo2HkHD4QYW7wsqVFszHs+iHq6Vz+LRi9rgvSAyIakWbVV9qnyUlc2aHOO/B
         LNx8AfbWq+A/Ncr8gn0kavku6Mp0ewlsmr2/4PE07r3xCSjHNLjt2o3glUzBLVM1VNsY
         jgPjiWCS5AwP5Wpx+zN7fsLkQwclRdqaU/MRbj3LcA+bMmIVJE4HJQWyjyOLsZVIj/NA
         bhr0Q83kvnSqkCyEHvpJy+EynRuDC4ezlUGjF93zj1b3wCmX8TxC8G2KnZrbvomumxYK
         YtSQ==
X-Gm-Message-State: AOJu0Yx0SM9NT/vqYMGuBzPtH+fOHGF+5RDgJKfCdfm013Xd+qW06MJc
	GSUPJiMXtbdlRTw31RXm2n/n
X-Google-Smtp-Source: AGHT+IHtXX/iODG9BQzn6/PIrI2oOLjhjbyiIRLwV3mEjwdzqxNE/UQxBUTs77GnnQQKXEVQA0G4wQ==
X-Received: by 2002:a05:600c:280b:b0:40d:22bb:27e9 with SMTP id m11-20020a05600c280b00b0040d22bb27e9mr589565wmb.53.1703154866812;
        Thu, 21 Dec 2023 02:34:26 -0800 (PST)
Message-ID: <36331c0f-d495-4263-95a6-e1c5abcac060@suse.com>
Date: Thu, 21 Dec 2023 11:34:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] xen/spinlock: introduce new type for recursive
 spinlocks
To: Julien Grall <julien@xen.org>, Juergen Gross <jgross@suse.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>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Paul Durrant <paul@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-4-jgross@suse.com>
 <ea25863a-f5da-4873-89f2-d75b3abb9ef8@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: <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.12.2023 13:57, Julien Grall wrote:
> On 12/12/2023 09:47, Juergen Gross wrote:
>> @@ -109,12 +109,16 @@ struct lock_profile_qhead {
>>       spinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                 \
>>       static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
>>       _LOCK_PROFILE_PTR(l)
>> +#define DEFINE_RSPINLOCK(l)                                                   \
>> +    rspinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                \
>> +    static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
>> +    _LOCK_PROFILE_PTR(l)
>>   
>> -#define spin_lock_init_prof(s, l)                                             \
>> +#define __spin_lock_init_prof(s, l, locktype)                                 \
> 
> If I am not mistaken the double-underscore prefix is a violation in 
> MISRA. So can this be renamed to:
> 
> spin_lock_init_prof__()?

Is the new parameter needed at all? Can't we use typeof((s)->l) in place of
passing the type explicitly?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:49:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658805.1028179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGcP-0005eM-8T; Thu, 21 Dec 2023 10:49:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658805.1028179; Thu, 21 Dec 2023 10:49: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 1rGGcP-0005eF-4t; Thu, 21 Dec 2023 10:49:33 +0000
Received: by outflank-mailman (input) for mailman id 658805;
 Thu, 21 Dec 2023 10:49:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yxSo=IA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rGGcN-0005cw-Ra
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:49:31 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9dcd119b-9fee-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 11:49:29 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40d4103aed7so2004485e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:49:29 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 k4-20020a5d66c4000000b00336755f15b0sm1749980wrw.68.2023.12.21.02.49.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 02:49:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9dcd119b-9fee-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703155769; x=1703760569; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Yn4VRIhhFyvs5CfnHpdoDU7KtUorz+VOVIRC0NZ0jSc=;
        b=LzkxlXa6nXQEd3rsFDLoosESX86bOE93U5dQdifTGBnv+/xpttZkoeiPw9VrBVdc8J
         /q9xTtm7FncVFr+ZJQXCPiwQAyYCB38hPJMnjKFPzaoqES6QrDcKzrc/GCZc7G5tl0wi
         16gGN367zAY4cezq9Wq0jWXKmn9NERc9vLZPA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703155769; x=1703760569;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Yn4VRIhhFyvs5CfnHpdoDU7KtUorz+VOVIRC0NZ0jSc=;
        b=mhuooDX/HhSlXMTxI8/ORc4ylKKnc5VXQDi9QWcAsykp69vCUM6Awb3FjWWh99DRiM
         Zj4KiXFc4NE87uA7H3/WzNd3GpP2NWaolqN0qi406SN1fO684wJHFKUunByjtMN8U2Td
         UkRDfFY0kDTYl3D0Z//vwwYV9h/jCIFwi2A6phVELIQ1mW8RKJ0uT6owCBL9Y56A5QLn
         YDH5AfmK6L5Mq7TS05kZf/CCRao6KFGsr3tsjcZnLio5rDSrMbJyft9p7LkO9ie+ff8c
         6UqHwudEYNalRvnJpwVOGK3mp0mAGdXZjiPeIumNFM36BbIAyTZ0D99ZccOvHlvfatZR
         psrw==
X-Gm-Message-State: AOJu0Yy7Pc08MjgU/2fMrEOhxTQCcupSZPHAOMgRv23M3Q1XCmA97k3B
	R+aFTEnxZ5kfFRU3qe2eBu+PIw==
X-Google-Smtp-Source: AGHT+IEx5WEmWgQ579yoynj2nXa4gKWSzgMCtB+gOZBDDMcDX0jRK2MxgZp5SdXx9Qil7Dmj4oiM4w==
X-Received: by 2002:a7b:c414:0:b0:40d:3bde:1327 with SMTP id k20-20020a7bc414000000b0040d3bde1327mr678332wmi.165.1703155769055;
        Thu, 21 Dec 2023 02:49:29 -0800 (PST)
Message-ID: <919b2fc9-08a6-4bec-842d-f1bba98b44c1@citrix.com>
Date: Thu, 21 Dec 2023 10:49:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
Content-Language: en-GB
To: Federico Serafini <federico.serafini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 consulting@bugseng.com, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com>
 <0200354e-08b9-4136-b6e9-3220a51256af@xen.org>
 <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
 <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@bugseng.com>
 <alpine.DEB.2.22.394.2312201008070.685950@ubuntu-linux-20-04-desktop>
 <e5a812ab-faaf-47fd-bada-9b19e0c94bcc@citrix.com>
 <6f3e64d1-5719-4960-9f60-0497a8ccea00@bugseng.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <6f3e64d1-5719-4960-9f60-0497a8ccea00@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/12/2023 10:29 am, Federico Serafini wrote:
> On 20/12/23 22:23, Andrew Cooper wrote:
>> On 20/12/2023 6:24 pm, Stefano Stabellini wrote:
>>> On Wed, 20 Dec 2023, Federico Serafini wrote:
>>>> On 20/12/23 12:55, Jan Beulich wrote:
>>>>> On 20.12.2023 12:48, Julien Grall wrote:
>>>>>> On 20/12/2023 11:03, Federico Serafini wrote:
>>>>>>> --- a/xen/arch/arm/arm64/vsysreg.c
>>>>>>> +++ b/xen/arch/arm/arm64/vsysreg.c
>>>>>>> @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
>>>>>>> Â Â Â Â Â Â Â Â Â Â Â  /* RO at EL0. RAZ/WI at EL1 */
>>>>>>> Â Â Â Â Â Â Â Â Â Â Â  if ( regs_mode_is_user(regs) )
>>>>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  return handle_ro_raz(regs, regidx,
>>>>>>> hsr.sysreg.read, hsr,
>>>>>>> 0);
>>>>>>> -Â Â Â Â Â Â Â  else
>>>>>>> -Â Â Â Â Â Â Â Â Â Â Â  return handle_raz_wi(regs, regidx, hsr.sysreg.read,
>>>>>>> hsr,
>>>>>>> 1);
>>>>>>> +
>>>>>>> +Â Â Â Â Â Â Â  return handle_raz_wi(regs, regidx, hsr.sysreg.read,
>>>>>>> hsr, 1);
>>>>>> I don't 100% like this change (mostly because I find if/else clearer
>>>>>> here).
>>>>> While (it doesn't matter here) my view on this is different, I'm
>>>>> still
>>>>> puzzled why the tool would complain / why a change here is necessary.
>>>>> It is not _one_ return statement, but there's still (and
>>>>> obviously) no
>>>>> way of falling through.
>>>> The tool is configurable:
>>>> if you prefer deviate these cases instead of refactoring the code
>>>> I can update the configuration.
>>> Â  If you say "deviation", it implies that there is a violation. I think
>>> Jan's point was that both code versions shouldn't be any different.
>>>
>>> # option-1
>>> if (a)
>>> Â Â  return f1();
>>> else
>>> Â Â  return f2();
>>>
>>> # option-2
>>> if (a)
>>> Â Â  return f1();
>>> return f2();
>>>
>>> Both options are equally guaranteed to always return. It looks like a
>>> peculiar limitation to only recognize option-2 as something that
>>> returns
>>> 100% of the times. Also option-1 returns 100% of the times. What am I
>>> missing?
>
> I don't think this is necessarily a limitation because it highlights
> cases where an if-else could be replaced with a simple if:
> some may find an if-else clearer, other may find the single if clearer.
>
> From a safety point of view both options are safe because there
> is no risk of unintentional fall through.
>
> If you all agree on the fact that small code refactoring like the ones I
> proposed are counterproductive, then I can update the tool configuration
> to consider also option-1 as safe.

I would certainly prefer if we could continue to use option 1.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:50:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:50:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658810.1028188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGdF-0007Tr-KV; Thu, 21 Dec 2023 10:50:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658810.1028188; Thu, 21 Dec 2023 10: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 1rGGdF-0007Tk-Hx; Thu, 21 Dec 2023 10:50:25 +0000
Received: by outflank-mailman (input) for mailman id 658810;
 Thu, 21 Dec 2023 10:50: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=yxSo=IA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rGGdE-0007TV-1u
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:50:24 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd11e2d6-9fee-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 11:50:22 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3368c5c077fso152326f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:50:22 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 k4-20020a5d66c4000000b00336755f15b0sm1749980wrw.68.2023.12.21.02.50.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 02:50:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd11e2d6-9fee-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703155821; x=1703760621; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=URBm3EixPXVe0EQlnCIijpoE7+MYm7JICIjdfh4XrZA=;
        b=MJPkjmK/LdD8m+sWoaqx7waVZamjgHHjn4/dFJQweukAt3bE0ebYZBcQinGVrmw+0/
         6xGwYNImRtBzJ54SitEbBcXQAkLocGIIBDinwb2HlOen0xgi8WuRS2jiLTDlzhn+eZ8H
         js6T0jE4vBmQzdDbQuOUFSjuIDW6bX9SYE8dA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703155821; x=1703760621;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=URBm3EixPXVe0EQlnCIijpoE7+MYm7JICIjdfh4XrZA=;
        b=b5jFeq99A5XWcW/GoHZlegKffi15WdpdJcNGIgHJQHuIp7q8e/lZOhd0VUjvBsZAk+
         57XqgOgLxo47BVPHYCn8kNcPZ3m7BSDOyKwqHyu/Y6xBPUmjaLqd/hF/wcp3EpCOxUNZ
         MO8WPgYMS4M05VXPoBfOI8xuyCmYz/P2Zt8mFYozejQ9pFXUcMzJteincTLcc1qd0IR/
         A3UjoqZRyM9Pf7Yv030YZCbB7T11+HK4YJp1KypUqrZW3tv1pBe+JpFEB8Kx7MYAk/SP
         YqzhR+CWOMUvm7gswiLWTcdkbLJtcHRzCTv4PlK7m5Xr0ukplokOiCAxa51C/qtLaBNJ
         16SA==
X-Gm-Message-State: AOJu0YxcqGakmS9eW9OrSf9KnY5xW2R0FhYnZQEkc90Lvwj3e3LoQ5bG
	i+K+GEY40kaBQ+Aqh1UTHowocjDp7JgIzl3cl9U=
X-Google-Smtp-Source: AGHT+IFS8UEzYM/BKWw24e+oC/tOKUx6mLxbI/MMfDT/4E1bbP1hTY0AbWHs4I8oA0xqJJtRx9yiYQ==
X-Received: by 2002:a5d:4c41:0:b0:336:6294:f2a2 with SMTP id n1-20020a5d4c41000000b003366294f2a2mr318421wrt.189.1703155821665;
        Thu, 21 Dec 2023 02:50:21 -0800 (PST)
Message-ID: <97c3de46-b9cc-42d9-8a03-3552962b59fe@citrix.com>
Date: Thu, 21 Dec 2023 10:50:21 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 0/7] xen/arm: address violations of MISRA C:2012 Rule
 16.3
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>,
 Federico Serafini <federico.serafini@bugseng.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703066935.git.federico.serafini@bugseng.com>
 <d847830f-7071-4141-bab7-8b8c55ec3ae8@citrix.com>
 <5810703d-7ade-4b85-961c-e0c50f9aab34@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <5810703d-7ade-4b85-961c-e0c50f9aab34@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/12/2023 8:08 am, Jan Beulich wrote:
> On 20.12.2023 22:35, Andrew Cooper wrote:
>> On 20/12/2023 11:03 am, Federico Serafini wrote:
>>> This patch series addresses violations of MISRA C:2012 Rule 16.3 on the Arm
>>> code. No fucntional changes are introduced.
>>>
>>> Federico Serafini (7):
>>>   xen/arm: gic-v3: address violations of MISRA C:2012 Rule 16.3
>>>   xen/arm: traps: address violations of MISRA C:2012 Rule 16.3
>>>   xen/arm: guest_walk: address violations of MISRA C:2012 Rule 16.3
>>>   xen/arm: mem_access: address violations of MISRA C:2012 Rule 16.3
>>>   xen/arm: v{cp,sys}reg: address violations of MISRA C:2012 Rule 16.3
>>>   xen/arm: mmu: address a violations of MISRA C:2012 Rule 16.3
>>>   xen/arm: smmu-v3: address violations of MISRA C:2012 Rule 16.3
>>>
>>>  xen/arch/arm/arm64/vsysreg.c          |  4 ++--
>>>  xen/arch/arm/gic-v3.c                 | 30 +++++++++++++++++++++++++++
>>>  xen/arch/arm/guest_walk.c             |  4 ++++
>>>  xen/arch/arm/mem_access.c             | 12 +++++------
>>>  xen/arch/arm/mmu/p2m.c                |  1 +
>>>  xen/arch/arm/traps.c                  | 18 ++++++++++++----
>>>  xen/arch/arm/vcpreg.c                 |  4 ++--
>>>  xen/drivers/passthrough/arm/smmu-v3.c |  2 ++
>>>  8 files changed, 61 insertions(+), 14 deletions(-)
>>>
>> Just a couple of notes on style.Â  This isn't a request to change
>> anything in this series, particularly as most is already committed, but
>> bear it in mind for what I expect will be similar patches in other areas.
>>
>> We explicitly permit tabulation when it aids readibility, so patch 2
>> could have been written:
>>
>> Â Â Â Â Â Â Â  switch ( hypercall_args[*nr] ) {
>> Â Â Â Â Â Â Â  case 5: HYPERCALL_ARG5(regs) = 0xDEADBEEFU; fallthrough;
>> Â Â Â Â Â Â Â  case 4: HYPERCALL_ARG4(regs) = 0xDEADBEEFU; fallthrough;
>> Â Â Â Â Â Â Â  case 3: HYPERCALL_ARG3(regs) = 0xDEADBEEFU; fallthrough;
>> Â Â Â Â Â Â Â  case 2: HYPERCALL_ARG2(regs) = 0xDEADBEEFU; fallthrough;
>> Â Â Â Â Â Â Â  case 1: /* Don't clobber x0/r0 -- it's the return value */
>> Â Â Â Â Â Â Â  case 0: /* -ENOSYS case */
>> Â Â Â Â Â Â Â Â Â Â Â  break;
>> Â Â Â Â Â Â Â  default: BUG();
>> Â Â Â Â Â Â Â  }
>>
>> (give or take the brace placement other style issue)Â  We also have cases
>> where a break before a new case statement is preferred, i.e.:
> Did you mean "blank line" here, seeing ...
>
>> Â Â Â  Â Â Â  ...
>> Â Â Â  Â Â Â  break;
>>
>> Â Â Â  case ...:
>>
>> This is to prevent larger switch statements from being a straight wall
>> of text.
> ... this as the further explanation?

Urgh yes - I did mean blank line.Â  Hopefully the intent was clear.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:53:25 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:53:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658817.1028198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGg8-0000KJ-3i; Thu, 21 Dec 2023 10:53:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658817.1028198; Thu, 21 Dec 2023 10:53:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGg8-0000KC-10; Thu, 21 Dec 2023 10:53:24 +0000
Received: by outflank-mailman (input) for mailman id 658817;
 Thu, 21 Dec 2023 10:53:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qw+O=IA=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1rGGg6-0000K6-Cg
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:53:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28037153-9fef-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 11:53:21 +0100 (CET)
Received: from Dell.bugseng.com (unknown [78.210.136.177])
 by support.bugseng.com (Postfix) with ESMTPSA id DDCBF4EE0742;
 Thu, 21 Dec 2023 11:53:19 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28037153-9fef-11ee-98eb-6d05b1d4d9a1
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>,
	Wei Liu <wl@xen.org>
Subject: [XEN RFC] x86/uaccess: remove __{put,get}_user_bad()
Date: Thu, 21 Dec 2023 11:53:12 +0100
Message-Id: <9cf852da1c03b614bf5010132c58a18adc2a4161.1703155225.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Remove declarations of __put_user_bad() and __get_user_bad()
since they have no definition.
Replace their uses with a break statement to address violations of
MISRA C:2012 Rule 16.3 ("An unconditional `break' statement shall
terminate every switch-clause").
No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Several violations of Rule 16.3 come from uses of macros
get_unsafe_size() and put_unsafe_size().
Looking at the macro definitions I found __get_user_bad() and __put_user_bad().
I was wondering if instead of just adding the break statement I can also remove
such functions which seem to not have a definition.
---
 xen/arch/x86/include/asm/uaccess.h | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/uaccess.h b/xen/arch/x86/include/asm/uaccess.h
index 7443519d5b..15b747d0c7 100644
--- a/xen/arch/x86/include/asm/uaccess.h
+++ b/xen/arch/x86/include/asm/uaccess.h
@@ -21,9 +21,6 @@ unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int
 unsigned int copy_to_unsafe_ll(void *to, const void *from, unsigned int n);
 unsigned int copy_from_unsafe_ll(void *to, const void *from, unsigned int n);
 
-extern long __get_user_bad(void);
-extern void __put_user_bad(void);
-
 #define UA_KEEP(args...) args
 #define UA_DROP(args...)
 
@@ -208,7 +205,7 @@ do {                                                                       \
     case 8:                                                                \
         put_unsafe_asm(x, ptr, grd, retval, "q",  "", "ir", errret);       \
         break;                                                             \
-    default: __put_user_bad();                                             \
+    default: break;                                                        \
     }                                                                      \
     clac();                                                                \
 } while ( false )
@@ -227,7 +224,7 @@ do {                                                                       \
     case 2: get_unsafe_asm(x, ptr, grd, retval, "w", "=r", errret); break; \
     case 4: get_unsafe_asm(x, ptr, grd, retval, "k", "=r", errret); break; \
     case 8: get_unsafe_asm(x, ptr, grd, retval,  "", "=r", errret); break; \
-    default: __get_user_bad();                                             \
+    default: break;                                                        \
     }                                                                      \
     clac();                                                                \
 } while ( false )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 10:58:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 10:58:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658822.1028209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGkk-0001lw-Kl; Thu, 21 Dec 2023 10:58:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658822.1028209; Thu, 21 Dec 2023 10:58:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGkk-0001lp-I7; Thu, 21 Dec 2023 10:58:10 +0000
Received: by outflank-mailman (input) for mailman id 658822;
 Thu, 21 Dec 2023 10:58: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=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGGki-0001lj-P0
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 10:58:08 +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 d1f7558a-9fef-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 11:58:06 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40d3bebbf6eso4906785e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 02:58:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 iv11-20020a05600c548b00b0040b4b2a15ebsm2889175wmb.28.2023.12.21.02.58.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 02:58:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1f7558a-9fef-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703156286; x=1703761086; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=tZFyaS55iy8R1mRl/86DUZC7JWY9E1Rum1CTPCh3Yi8=;
        b=b7XOfl7toGRzSuR5Ct9yd5XLbmO+hPlqBfc9OW8YSHmSMTJFXQwwwDPOSqXkYNPbx8
         9iVC3QE2IPzTq81dniU++8nGmvGw9kMMKEeWhHf9KcWEcQrzDyXrnTfApBt7F6xgMUL6
         vDQSPvJZstim5kkhl3bxPeZH4m7j1VmT86weJSjv41aLo9EZHsy3EYy+lfTGAESQQ4iE
         NPNznSmx/ti13KgfoWF98+ZrJzIyMWUvDVbYmBMVA2hQWlBOYXbS5+VjSqZAy5CHtw3E
         o6M6A42kYcAid8kWK0IIdtdGs4DzOAhFTXjZBIlZZzShwZ+1497YpgAzdQIN89jBYLUJ
         W8wQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703156286; x=1703761086;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=tZFyaS55iy8R1mRl/86DUZC7JWY9E1Rum1CTPCh3Yi8=;
        b=R2FccSwtwzbM6FE40eSNCUf2k4qAeDIyWcCT4KAb0vzWImXGFtE/qAEuvV668TAaP2
         gfmWOm1NuBHNM09dTHF7HrU831RGSalzAn8dgzYSrMQ41dIQIvfjRUE3QRIvDtS2SMRS
         wkkn9Sv8UZUQkirYGsqy5UYTAFQXLI/TLjYesONhCqyWa9RgFqkMv79aGlXNZbmPIQhE
         YBjB4Av6iYkt/BX62MWxvc5NhUNbRj2p+dp4xyIVb9dBhPMKi7YMDxNuKfJygwOm+Uux
         /J6PXL7cyz7cig1TkVzM3X6bJUT/wQzpixWMZNM6XiXizyT052JSn39cvNhsJeHuHKqB
         5Dkw==
X-Gm-Message-State: AOJu0YxWKLm8mFLjTNwe3CAgyBAvAISNYyCK7Z4zH270j8cpnEd65HW7
	QhXzs5QchokPGf3YSUCRPo+z
X-Google-Smtp-Source: AGHT+IHRdcsf+l5kL4nLAp14EwbK0CZk2fAVe1NTlMbhlgYXRGQ/Pvssai9wYpGUM1VW/lfeZbKv3g==
X-Received: by 2002:a05:600c:4f93:b0:40b:33c0:a22 with SMTP id n19-20020a05600c4f9300b0040b33c00a22mr667536wmq.28.1703156286125;
        Thu, 21 Dec 2023 02:58:06 -0800 (PST)
Message-ID: <a2050ac1-e205-4d7f-b9b1-aa625136e63a@suse.com>
Date: Thu, 21 Dec 2023 11:58:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN RFC] x86/uaccess: remove __{put,get}_user_bad()
Content-Language: en-US
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>, Wei Liu
 <wl@xen.org>, xen-devel@lists.xenproject.org
References: <9cf852da1c03b614bf5010132c58a18adc2a4161.1703155225.git.federico.serafini@bugseng.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: <9cf852da1c03b614bf5010132c58a18adc2a4161.1703155225.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.12.2023 11:53, Federico Serafini wrote:
> Remove declarations of __put_user_bad() and __get_user_bad()
> since they have no definition.
> Replace their uses with a break statement to address violations of
> MISRA C:2012 Rule 16.3 ("An unconditional `break' statement shall
> terminate every switch-clause").
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
> Several violations of Rule 16.3 come from uses of macros
> get_unsafe_size() and put_unsafe_size().
> Looking at the macro definitions I found __get_user_bad() and __put_user_bad().
> I was wondering if instead of just adding the break statement I can also remove
> such functions which seem to not have a definition.

No, you can't. Try introducing a caller which "accidentally" uses the
wrong size. Without your change you'll observe the build failing (in
a somewhat obscure way, but still), while with your change bad code
will silently be generated.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 11:03:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 11:03:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658828.1028219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGpt-0004Ax-A3; Thu, 21 Dec 2023 11:03:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658828.1028219; Thu, 21 Dec 2023 11:03:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGpt-0004Aq-7J; Thu, 21 Dec 2023 11:03:29 +0000
Received: by outflank-mailman (input) for mailman id 658828;
 Thu, 21 Dec 2023 11:03: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=yxSo=IA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rGGps-0004Ai-Jx
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 11:03:28 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90ba67b5-9ff0-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 12:03:26 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40d05ebe642so10474975e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 03:03:26 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 c18-20020a5d4f12000000b00336788c812fsm1770547wru.88.2023.12.21.03.03.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 03:03:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90ba67b5-9ff0-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703156606; x=1703761406; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=yFcJP4WfSBefhhVEW36q8nG1l2KbuGVyh1mFyFrTVKQ=;
        b=FKghzDd17ozgYRUJsT7w2207Y6PgMO5Lodnbk8xY8w93KVEcbp+5gBNY0g6Wh2BX2q
         1xDfbzD2HwOK+tlJmD0Ob9gi/TmuxOP1JcdLnUqkgzcWWxZqQKbeCBsZrr8qOe/c9DlU
         NJ2MLQpz8c1sstrOg2H6bNZvfnpDclZH2Oj/0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703156606; x=1703761406;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=yFcJP4WfSBefhhVEW36q8nG1l2KbuGVyh1mFyFrTVKQ=;
        b=xCI2k06Qv/MiNoojBOeusruyeAsnjWaVxSVoE2NHd/ncoiCYWRPMrh2tx4PZ3uDwTT
         VkP034Om8EGb0fllCFUXGtORmpaIqgARzDUHDRQrs+MU/9TyGQ/2Io5kJsnua/K9U4GQ
         ZYFOtoyj2QokSHV10UKzxsnJ5cJ0eM8ZEoGUWf20r3JyfVEExgu3eCMGBaETH17ZTWWi
         N71alLp3adCf4LEr7BV28Iu/fEeECQHl14j2k2LC+ol3Mk38AMi3yAdCnV/d8qadoBG5
         s8taCVlDN/7l6PKsefrYKqitI25E+fWxJ+OiPfP5xCkJ/kTQyAyG5axUFGtgUyav52jD
         zpFw==
X-Gm-Message-State: AOJu0YwBf2coYcTFeVjz89aHlFhkokjh91RyUVWbXuiGelEwXVs7X7iw
	hXf3ez0G5acaDyNzlGzTdzi3GQ==
X-Google-Smtp-Source: AGHT+IGIgkiYAYsbvrCaHZprOEnIqMixI8LmPJ00yv3vLWDLFYeTb7v892DmFGoK+IZ2yc2Zg8CmVg==
X-Received: by 2002:a05:600c:1554:b0:40c:2788:2903 with SMTP id f20-20020a05600c155400b0040c27882903mr317172wmg.125.1703156606160;
        Thu, 21 Dec 2023 03:03:26 -0800 (PST)
Message-ID: <0c5bbfde-4cf0-4878-b1ee-ccc8eb775464@citrix.com>
Date: Thu, 21 Dec 2023 11:03:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN RFC] x86/uaccess: remove __{put,get}_user_bad()
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org
References: <9cf852da1c03b614bf5010132c58a18adc2a4161.1703155225.git.federico.serafini@bugseng.com>
 <a2050ac1-e205-4d7f-b9b1-aa625136e63a@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <a2050ac1-e205-4d7f-b9b1-aa625136e63a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/12/2023 10:58 am, Jan Beulich wrote:
> On 21.12.2023 11:53, Federico Serafini wrote:
>> Remove declarations of __put_user_bad() and __get_user_bad()
>> since they have no definition.
>> Replace their uses with a break statement to address violations of
>> MISRA C:2012 Rule 16.3 ("An unconditional `break' statement shall
>> terminate every switch-clause").
>> No functional change.
>>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>> ---
>> Several violations of Rule 16.3 come from uses of macros
>> get_unsafe_size() and put_unsafe_size().
>> Looking at the macro definitions I found __get_user_bad() and __put_user_bad().
>> I was wondering if instead of just adding the break statement I can also remove
>> such functions which seem to not have a definition.
> No, you can't. Try introducing a caller which "accidentally" uses the
> wrong size. Without your change you'll observe the build failing (in
> a somewhat obscure way, but still), while with your change bad code
> will silently be generated.

The construct here is deliberate.Â  It's a build time assertion that bad
sizes aren't used.

__bitop_bad_size() and __xsm_action_mismatch_detected() are the same
pattern in other areas of code too, with the latter being more explicit
because of how it's wrapped by LINKER_BUG_ON().


It is slightly horrible, and not the most obvious construct for
newcomers.Â  If there's an alternative way to get a build assertion, we
could consider switching to a new pattern.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 11:06:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 11:06:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658833.1028228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGsi-0005FG-S2; Thu, 21 Dec 2023 11:06:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658833.1028228; Thu, 21 Dec 2023 11:06:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGsi-0005F9-PY; Thu, 21 Dec 2023 11:06:24 +0000
Received: by outflank-mailman (input) for mailman id 658833;
 Thu, 21 Dec 2023 11:06:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jRZ7=IA=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rGGsh-0005F1-H1
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 11:06:23 +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 f97bbdf9-9ff0-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 12:06:22 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 6E9F31FB71;
 Thu, 21 Dec 2023 11:06:21 +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 2A2E513725;
 Thu, 21 Dec 2023 11:06:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id Boq0CC0chGW7UwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 21 Dec 2023 11:06: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: f97bbdf9-9ff0-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1703156781; 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=kVJxjiTYYVqjZO/Z+GYaW3NzMb+nuGOjQmNEWqKhKf4=;
	b=C92dl2Wl8NijU5XIClbb3XqdCB9DUlqqEE0crc8xQOcrtS/Kx0MoUzGmv9PF0RIhfBiSxf
	t+PX0b2QquZSQusGrWKZxGk4zzgR7Mnw8LYyFafgV1l6L+lvfAfHB2EmKj4fd0rB3C8/6j
	1eiHE+tUhJH8hesuuhuvpTKfGfDE05k=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1703156781; 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=kVJxjiTYYVqjZO/Z+GYaW3NzMb+nuGOjQmNEWqKhKf4=;
	b=C92dl2Wl8NijU5XIClbb3XqdCB9DUlqqEE0crc8xQOcrtS/Kx0MoUzGmv9PF0RIhfBiSxf
	t+PX0b2QquZSQusGrWKZxGk4zzgR7Mnw8LYyFafgV1l6L+lvfAfHB2EmKj4fd0rB3C8/6j
	1eiHE+tUhJH8hesuuhuvpTKfGfDE05k=
Message-ID: <14f2857f-5afb-4c04-ab84-6b8403f1dbc8@suse.com>
Date: Thu, 21 Dec 2023 12:06:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] xen/spinlock: introduce new type for recursive
 spinlocks
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.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>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Paul Durrant <paul@xen.org>
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-4-jgross@suse.com>
 <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>
 <36331c0f-d495-4263-95a6-e1c5abcac060@suse.com>
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: <36331c0f-d495-4263-95a6-e1c5abcac060@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------xQuoa7Db0JFyaSGw14H65g0Z"
X-Spam-Level: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.44 / 50.00];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	 TO_DN_SOME(0.00)[];
	 HAS_ATTACHMENT(0.00)[];
	 MIME_BASE64_TEXT_BOGUS(1.00)[];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MIME_BASE64_TEXT(0.10)[];
	 RCPT_COUNT_SEVEN(0.00)[9];
	 MX_GOOD(-0.01)[];
	 SIGNED_PGP(-2.00)[];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 MID_RHS_MATCH_FROM(0.00)[];
	 BAYES_HAM(-1.24)[89.54%];
	 MIME_UNKNOWN(0.10)[application/pgp-keys];
	 ARC_NA(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 DWL_DNSWL_MED(-2.00)[suse.com:dkim];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 RCVD_TLS_ALL(0.00)[];
	 RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=C92dl2Wl
X-Spam-Score: -4.44
X-Rspamd-Queue-Id: 6E9F31FB71

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------xQuoa7Db0JFyaSGw14H65g0Z
Content-Type: multipart/mixed; boundary="------------LcGcWQN2Q88jMnPh9vMlfr7X";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.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>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Paul Durrant <paul@xen.org>
Message-ID: <14f2857f-5afb-4c04-ab84-6b8403f1dbc8@suse.com>
Subject: Re: [PATCH v4 03/12] xen/spinlock: introduce new type for recursive
 spinlocks
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-4-jgross@suse.com>
 <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>
 <36331c0f-d495-4263-95a6-e1c5abcac060@suse.com>
In-Reply-To: <36331c0f-d495-4263-95a6-e1c5abcac060@suse.com>

--------------LcGcWQN2Q88jMnPh9vMlfr7X
Content-Type: multipart/mixed; boundary="------------CDGOX6XOYj7mHWD5pQmbiwOY"

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

T24gMjEuMTIuMjMgMTE6MzQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMi4xMi4yMDIz
IDEzOjU3LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+PiBPbiAxMi8xMi8yMDIzIDA5OjQ3LCBK
dWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4+IEBAIC0xMDksMTIgKzEwOSwxNiBAQCBzdHJ1Y3Qg
bG9ja19wcm9maWxlX3FoZWFkIHsNCj4+PiAgICAgICAgc3BpbmxvY2tfdCBsID0gX1NQSU5f
TE9DS19VTkxPQ0tFRChOVUxMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQo+Pj4gICAgICAgIHN0YXRpYyBzdHJ1Y3QgbG9ja19wcm9maWxlIF9fbG9ja19wcm9maWxl
X2RhdGFfIyNsID0gX0xPQ0tfUFJPRklMRShsKTsgICAgXA0KPj4+ICAgICAgICBfTE9DS19Q
Uk9GSUxFX1BUUihsKQ0KPj4+ICsjZGVmaW5lIERFRklORV9SU1BJTkxPQ0sobCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+Pj4gKyAg
ICByc3BpbmxvY2tfdCBsID0gX1NQSU5fTE9DS19VTkxPQ0tFRChOVUxMKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCj4+PiArICAgIHN0YXRpYyBzdHJ1Y3QgbG9ja19w
cm9maWxlIF9fbG9ja19wcm9maWxlX2RhdGFfIyNsID0gX0xPQ0tfUFJPRklMRShsKTsgICAg
XA0KPj4+ICsgICAgX0xPQ0tfUFJPRklMRV9QVFIobCkNCj4+PiAgICANCj4+PiAtI2RlZmlu
ZSBzcGluX2xvY2tfaW5pdF9wcm9mKHMsIGwpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KPj4+ICsjZGVmaW5lIF9fc3Bpbl9sb2NrX2luaXRfcHJv
ZihzLCBsLCBsb2NrdHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+
Pg0KPj4gSWYgSSBhbSBub3QgbWlzdGFrZW4gdGhlIGRvdWJsZS11bmRlcnNjb3JlIHByZWZp
eCBpcyBhIHZpb2xhdGlvbiBpbg0KPj4gTUlTUkEuIFNvIGNhbiB0aGlzIGJlIHJlbmFtZWQg
dG86DQo+Pg0KPj4gc3Bpbl9sb2NrX2luaXRfcHJvZl9fKCk/DQo+IA0KPiBJcyB0aGUgbmV3
IHBhcmFtZXRlciBuZWVkZWQgYXQgYWxsPyBDYW4ndCB3ZSB1c2UgdHlwZW9mKChzKS0+bCkg
aW4gcGxhY2Ugb2YNCj4gcGFzc2luZyB0aGUgdHlwZSBleHBsaWNpdGx5Pw0KDQpJTU8gc3Bp
bl9sb2NrX2luaXRfcHJvZigpIHNob3VsZCBiZSB1c2FibGUgZm9yIHNwaW5sb2NrX3Qgb25s
eSwgYW5kDQpyc3Bpbl9sb2NrX2luaXRfcHJvZigpIGZvciByc3BpbmxvY2tfdCBvbmx5LiBV
c2luZyB0eXBlb2YoKSB3b3VsZCBtYWtlDQplaXRoZXIgb2YgdGhlbSB1c2FibGUgZm9yIGJv
dGggdHlwZXMuDQoNCg0KSnVlcmdlbg0K
--------------CDGOX6XOYj7mHWD5pQmbiwOY
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-----

--------------CDGOX6XOYj7mHWD5pQmbiwOY--

--------------LcGcWQN2Q88jMnPh9vMlfr7X--

--------------xQuoa7Db0JFyaSGw14H65g0Z
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/Ey8FAmWEHCwFAwAAAAAACgkQsN6d1ii/Ey/G
Iwf9HoGXkyADeH8sPwiJ5XYYPU1jVUtq3wpNPPgbOfrphIUIEWIYb68BfAPRVyCPYtBvf2BdP9gl
1m2JJQ2ZD6+XMADKpfTXAHOenmumhe1BguW7tLMiC7lq13XVV1qwUNFlDaGcWoZ5JbpT42Eg15tF
WYjQLhIc2QJLzQ59UtVRKx+9+bBb1h9JE7xNIPTjFe6TvKZyE4scD4IyTOAs0cFrNaVJfcdnbSV6
djme5j7iC5+s7vbUzGy0lKKs5KUn+chos+umRVRpuWWSLY3V2PRsipG6Te7/uuTLcee/BvSICx6v
jhNs26uUgYnNYTP51+TA38Z+OYZwgdA5WLT13vO58Q==
=PCLC
-----END PGP SIGNATURE-----

--------------xQuoa7Db0JFyaSGw14H65g0Z--


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 11:07:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 11:07:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658837.1028238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGu9-0005uF-73; Thu, 21 Dec 2023 11:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658837.1028238; Thu, 21 Dec 2023 11:07:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGGu9-0005u8-4a; Thu, 21 Dec 2023 11:07:53 +0000
Received: by outflank-mailman (input) for mailman id 658837;
 Thu, 21 Dec 2023 11:07: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=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGGu8-0005u0-2H
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 11:07:52 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d9c37f8-9ff1-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 12:07:49 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-33679c49fe5so535944f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 03:07:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 r16-20020adfe690000000b0033676f9e4cbsm1790745wrm.36.2023.12.21.03.07.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 03:07:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d9c37f8-9ff1-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703156869; x=1703761669; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=MIUsNzDu2MAuULJxqzzBHFyHr4mGnirKZ3vhdLar15s=;
        b=RosEtFL/729OwbJKSiiqObc4H7B7LVWAtMdqU+LWzxEMd2g7FMTDYzwJ9FECLj9PCe
         Qe4p2Coev7sciV5z8xLHip7EkSPr5yyaq+d08dDPW+ejYLtF3t4JZ13GQf82DbxAA9aX
         WX7CWMkJHUDgkvIoBKO9ABR+OJvMgbNpOIIulntKm/XZeBmBKEmf4l5bO8lLkUbY9uVU
         EqWZMIJkLivD7obI5rC4andv4Z8X0Yl4O/MwAtDxt4bPMpZ547cgsWCWc9uk5EdAysvL
         UbGt9fU2M6g5u6Vz8nIVg1oisi+cfudiJKmUi1PCuCaFnANI6k2ej0X+TkTBK7Emk9P0
         ksPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703156869; x=1703761669;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=MIUsNzDu2MAuULJxqzzBHFyHr4mGnirKZ3vhdLar15s=;
        b=Rr6BIemTjsaB7G4fmLwBZriPEW02XbEN3uInCzca0LE18qpwqltr9HPV60hkZ+HixI
         Fd5BrEiphuPpyVxC+749e/O8hhk8udxU/zAqbZKNjG+8AcHssEu936AEfeIT8t8LlE0V
         buWXief+60PGAOshOQHO9HZG3Kw+EYAUFYbwUmfXwojWtQckHGEPlxor5YxEpTysDp0n
         ZQFFiABQ0jq6wDlz4sZjf6XXCjTistAbRs7yRmQ3/J2S/grAd0Q9dwToReiiQ7IQQFc7
         TyPa2HbjbGr8ymuP9kK0xATHEEEoSQNqs6VnnYfv2c3L76VDhhPqmpzEL89i/iCgKOZn
         WW/Q==
X-Gm-Message-State: AOJu0YyCNcUxxlZxihexV03SA2aylR8R9FpViGRmWpRS+YKnQQxdP+gm
	3vUa+d1uZvNrhCkBlG9Z8xTT
X-Google-Smtp-Source: AGHT+IGiPDkSnwf8y8OI7S3Vjo73iFxRUtWaUYUa1AgPMYqXNQoGdSDZmSQqlFXogN88DMF3KidRBA==
X-Received: by 2002:a5d:4587:0:b0:336:5c03:c598 with SMTP id p7-20020a5d4587000000b003365c03c598mr653062wrq.58.1703156869420;
        Thu, 21 Dec 2023 03:07:49 -0800 (PST)
Message-ID: <62d04630-59fd-4926-af16-d7b8c20d4b94@suse.com>
Date: Thu, 21 Dec 2023 12:07:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] xen/spinlock: introduce new type for recursive
 spinlocks
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu
 <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Paul Durrant <paul@xen.org>,
 Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
References: <20231212094725.22184-1-jgross@suse.com>
 <20231212094725.22184-4-jgross@suse.com>
 <ea25863a-f5da-4873-89f2-d75b3abb9ef8@xen.org>
 <36331c0f-d495-4263-95a6-e1c5abcac060@suse.com>
 <14f2857f-5afb-4c04-ab84-6b8403f1dbc8@suse.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: <14f2857f-5afb-4c04-ab84-6b8403f1dbc8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.12.2023 12:06, Juergen Gross wrote:
> On 21.12.23 11:34, Jan Beulich wrote:
>> On 12.12.2023 13:57, Julien Grall wrote:
>>> On 12/12/2023 09:47, Juergen Gross wrote:
>>>> @@ -109,12 +109,16 @@ struct lock_profile_qhead {
>>>>        spinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                 \
>>>>        static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
>>>>        _LOCK_PROFILE_PTR(l)
>>>> +#define DEFINE_RSPINLOCK(l)                                                   \
>>>> +    rspinlock_t l = _SPIN_LOCK_UNLOCKED(NULL);                                \
>>>> +    static struct lock_profile __lock_profile_data_##l = _LOCK_PROFILE(l);    \
>>>> +    _LOCK_PROFILE_PTR(l)
>>>>    
>>>> -#define spin_lock_init_prof(s, l)                                             \
>>>> +#define __spin_lock_init_prof(s, l, locktype)                                 \
>>>
>>> If I am not mistaken the double-underscore prefix is a violation in
>>> MISRA. So can this be renamed to:
>>>
>>> spin_lock_init_prof__()?
>>
>> Is the new parameter needed at all? Can't we use typeof((s)->l) in place of
>> passing the type explicitly?
> 
> IMO spin_lock_init_prof() should be usable for spinlock_t only, and
> rspin_lock_init_prof() for rspinlock_t only. Using typeof() would make
> either of them usable for both types.

Fair point.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 11:24:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 11:24:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658846.1028249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGH9u-0003g9-KI; Thu, 21 Dec 2023 11:24:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658846.1028249; Thu, 21 Dec 2023 11: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 1rGH9u-0003g2-Ga; Thu, 21 Dec 2023 11:24:10 +0000
Received: by outflank-mailman (input) for mailman id 658846;
 Thu, 21 Dec 2023 11: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=8VCQ=IA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rGH9t-0003fw-5X
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 11:24:09 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 74c2abfe-9ff3-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 12:24:08 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40c339d2b88so6795795e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 03:24:08 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 i5-20020a05600c354500b0040d2805d158sm2907884wmq.48.2023.12.21.03.24.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 03:24:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74c2abfe-9ff3-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703157847; x=1703762647; 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=xlf2+bmiLQ5b85jTu7sVEr4EClQhy1uBqyFSh7q5ri4=;
        b=X/2GMI0vyMyj6K/b/PpG2zCQrK6l7A3rQWel2KUzu1VwOMbvvfOGNGkEmti8YMAG14
         Xw+POv5aeU2xMu+RE4DrstyDZQIxZvnzLmxJN+cvwFT0stFJCzXyx4FQ3/yqSLW6+abW
         7lWpenFtkj8y6ji5byjiKUPJvk80iXov3qnUI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703157847; x=1703762647;
        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=xlf2+bmiLQ5b85jTu7sVEr4EClQhy1uBqyFSh7q5ri4=;
        b=nnOxYtHjK5+GlJ139UJP6/I+/uq+x6/ejd0y/dSrNxISoRmwHvCoROYa1aYgdAnSpw
         G+OmuzRmy2L3FJvhvwDYCiLD4ujnAAnIThu66P9rYkmbdZ3Tc5mRxRUpYwyFejDGpmDJ
         b8Nr8HepJibuXpntNDGDxxTp7LPaZOh0y5S6N1uWCxk/I7HZYbYqYsA5nTu3xbYMDef1
         MZXRWj3dmp/xv9fv0l1/rfEFuto9N6QspmR4lTQVG/+5x4/MLUeQot+mJY9fT2Zgqt9a
         35RBa7ZMv8iSdcNbNiMm06jvsTG6GW7wqVMnKmyIsitoXhz9ohRF16sNiWFHQbuqNtAA
         +SCg==
X-Gm-Message-State: AOJu0YySGx6lLofOw6s+cwYrQ1u2ttHrOUuN4opo/H8s50U18MCg/hPO
	fRi+GpVO8ryiWJf/AJQXmSDORw==
X-Google-Smtp-Source: AGHT+IFH68xEkju2dNuXZ2vblO+osBA3HvQwUmm1OcetADR2uLTahE7nKOg/ckm/CDPiseBpTm+vyw==
X-Received: by 2002:a05:600c:4709:b0:40c:3624:fc40 with SMTP id v9-20020a05600c470900b0040c3624fc40mr638388wmo.15.1703157847574;
        Thu, 21 Dec 2023 03:24:07 -0800 (PST)
Date: Thu, 21 Dec 2023 12:24:05 +0100
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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/iommu: add CHANGELOG entry for hwdom setup time
 improvements
Message-ID: <ZYQgVQ-OdMDhYE7y@macbook>
References: <20231220134346.22430-1-roger.pau@citrix.com>
 <20231221101244.25650-1-roger.pau@citrix.com>
 <c4c1d007-1c38-495d-9f1c-ee7e679f57ce@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c4c1d007-1c38-495d-9f1c-ee7e679f57ce@suse.com>

On Thu, Dec 21, 2023 at 11:23:49AM +0100, Jan Beulich wrote:
> On 21.12.2023 11:12, Roger Pau Monne wrote:
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> >  CHANGELOG.md | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/CHANGELOG.md b/CHANGELOG.md
> > index 5ee5d41fc933..52484c047bd1 100644
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >  ### Changed
> >   - Changed flexible array definitions in public I/O interface headers to not
> >     use "1" as the number of array elements.
> > + - On x86:
> > +   - Reduce IOMMU setup time for hardware domain.
> >  
> >  ### Added
> >   - On x86:
> 
> I'm a little puzzled: Isn't this more like patch 7/6 of the v4 series
> (or possibly patch 5.5/6), which hasn't gone in yet?

Yes, that's why I've sent it as a reply-to the cover letter.  I
assumed it was clear enough that it's only supposed to go in after the
rest of the series.  Should have been 7/7, but I forgot about it.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 11:27:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 11:27:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658849.1028258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGHCh-0004xz-12; Thu, 21 Dec 2023 11:27:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658849.1028258; Thu, 21 Dec 2023 11:27:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGHCg-0004xs-Up; Thu, 21 Dec 2023 11:27:02 +0000
Received: by outflank-mailman (input) for mailman id 658849;
 Thu, 21 Dec 2023 11:27: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=8VCQ=IA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rGHCg-0004xj-58
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 11:27:02 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db21d872-9ff3-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 12:26:59 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3368d1c7b23so85202f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 03:26:59 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 p9-20020adfcc89000000b003368100ff71sm1823915wrj.10.2023.12.21.03.26.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 03:26:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db21d872-9ff3-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703158019; x=1703762819; 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=dAPwweKkh9LpRcC4wacWc47+s/V8mlNtmaAm1cBign8=;
        b=qbFeIQzkpkYvAbUnzPXTYUUOro9KG3Z01jIJuPVRiKHvhnWrdZdMyvOBboohZVsAN4
         luI8mEC30fQdhLRHnwGq6MqpvUg3bdfh0+htAeMKg40zlfVzePjDt+otvu9cHKqF3kZA
         RV9N+TQYn8G6CAnGnwLI2UaaEItX64I3OUl/o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703158019; x=1703762819;
        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=dAPwweKkh9LpRcC4wacWc47+s/V8mlNtmaAm1cBign8=;
        b=EfgngmqUF55ojYkIOrouYojKwDbYQaOqwoLoMJ3mFzs4ohBNLshUsjNtu4fYlCxeNX
         zlqa6KgRnM2EaiDBzAYPThzSdl09Mw+sanKmIfVvfR172HwtGWoihD4l9cB6H3rbdeGi
         U9ie8rsXN0c1XEdsxbS/f1z0UzoRZsvb51WQ8eBSAnunZW7MBHeUJfVEOaxIGH5Oa1TS
         h/rjKbIF1ul6H1w6jwzKB3+XdAZRk2GN+9cP1fZx4E1oeDuJmuSHRabUSwDOHDJYXk3V
         cD48czyIjcRDZRtz7TFgdyL8wcJ5m1kC7ODoX35zJIbd/P9DV0WfDAGME/4vVPxRlXHs
         xoQg==
X-Gm-Message-State: AOJu0Yxyu9/PZCT026/0y7EK7JOwLR4fejXuQUnjaGce2eiy4dj+JF6R
	gz1uZfBH4Owq2LpVSu7asPz33w==
X-Google-Smtp-Source: AGHT+IFWWsN+80ZpEupI44zeOoT79Wqk2FPtjSuERPWfpPycWPDrYYRunmc7TSIegJC5NLovJFiPdg==
X-Received: by 2002:a05:6000:11cc:b0:336:607f:5c9d with SMTP id i12-20020a05600011cc00b00336607f5c9dmr673748wrx.16.1703158019361;
        Thu, 21 Dec 2023 03:26:59 -0800 (PST)
Date: Thu, 21 Dec 2023 12:26:58 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] x86/amd: extend CPU errata #1474 affected models
Message-ID: <ZYQhAhjl4LqyLMSH@macbook>
References: <20231221100831.25570-1-roger.pau@citrix.com>
 <213dc008-f8eb-4313-8b3e-17fc435416e1@citrix.com>
 <978e4603-f20b-481f-97bd-2a84de0800c8@suse.com>
 <6d8eb59c-5824-47b3-b2d0-24f1db96b367@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6d8eb59c-5824-47b3-b2d0-24f1db96b367@citrix.com>

On Thu, Dec 21, 2023 at 10:24:55AM +0000, Andrew Cooper wrote:
> On 21/12/2023 10:20 am, Jan Beulich wrote:
> > On 21.12.2023 11:17, Andrew Cooper wrote:
> >> On 21/12/2023 10:08 am, Roger Pau Monne wrote:
> >>> Errata #1474has now been extended to cover models from family 17h ranges
> >> Extra space needed.Â  Can be fixed on commit.
> > Also (not just here) - isn't it "erratum" when we talk of just one?
> 
> Good point, yes.
> 
> I'll fix both.Â  (I'm just collecting some patches for a Gitlab CI run on
> Juergen's patches, and I'll include this one.)

Thanks, didn't know errata was plural and erratum was singular.  Will
try to remember.

Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 12:01:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 12:01:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658858.1028268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGHkC-0006Mq-GR; Thu, 21 Dec 2023 12:01:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658858.1028268; Thu, 21 Dec 2023 12: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 1rGHkC-0006Mj-Dy; Thu, 21 Dec 2023 12:01:40 +0000
Received: by outflank-mailman (input) for mailman id 658858;
 Thu, 21 Dec 2023 12: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=zyZL=IA=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1rGHkB-0006Md-NN
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 12:01:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b1fe8e20-9ff8-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 13:01:38 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id D51044EE0742;
 Thu, 21 Dec 2023 13:01:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1fe8e20-9ff8-11ee-98eb-6d05b1d4d9a1
MIME-Version: 1.0
Date: Thu, 21 Dec 2023 13:01:37 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, Federico Serafini
 <federico.serafini@bugseng.com>, consulting@bugseng.com, =?UTF-8?Q?Rog?=
 =?UTF-8?Q?er_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
Subject: Re: [XEN RFC] x86/uaccess: remove __{put,get}_user_bad()
In-Reply-To: <0c5bbfde-4cf0-4878-b1ee-ccc8eb775464@citrix.com>
References: <9cf852da1c03b614bf5010132c58a18adc2a4161.1703155225.git.federico.serafini@bugseng.com>
 <a2050ac1-e205-4d7f-b9b1-aa625136e63a@suse.com>
 <0c5bbfde-4cf0-4878-b1ee-ccc8eb775464@citrix.com>
Message-ID: <eb53449bd6595ea0931460e62dd57b9c@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

Hi Andrew,

On 2023-12-21 12:03, Andrew Cooper wrote:
> On 21/12/2023 10:58 am, Jan Beulich wrote:
>> On 21.12.2023 11:53, Federico Serafini wrote:
>>> Remove declarations of __put_user_bad() and __get_user_bad()
>>> since they have no definition.
>>> Replace their uses with a break statement to address violations of
>>> MISRA C:2012 Rule 16.3 ("An unconditional `break' statement shall
>>> terminate every switch-clause").
>>> No functional change.
>>> 
>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>> ---
>>> Several violations of Rule 16.3 come from uses of macros
>>> get_unsafe_size() and put_unsafe_size().
>>> Looking at the macro definitions I found __get_user_bad() and 
>>> __put_user_bad().
>>> I was wondering if instead of just adding the break statement I can 
>>> also remove
>>> such functions which seem to not have a definition.
>> No, you can't. Try introducing a caller which "accidentally" uses the
>> wrong size. Without your change you'll observe the build failing (in
>> a somewhat obscure way, but still), while with your change bad code
>> will silently be generated.
> 
> The construct here is deliberate.Â  It's a build time assertion that bad
> sizes aren't used.
> 
> __bitop_bad_size() and __xsm_action_mismatch_detected() are the same
> pattern in other areas of code too, with the latter being more explicit
> because of how it's wrapped by LINKER_BUG_ON().
> 
> 
> It is slightly horrible, and not the most obvious construct for
> newcomers.Â  If there's an alternative way to get a build assertion, we
> could consider switching to a new pattern.
> 
> ~Andrew

would you be in favour of a solution with a BUILD_BUG_ON in the default 
branch followed by a break?

default:
     BUILD_BUG_ON(!size || size >=8 || (size & (size - 1)));
     break;

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


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 12:40:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 12:40:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658864.1028279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGILf-0006zU-CI; Thu, 21 Dec 2023 12:40:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658864.1028279; Thu, 21 Dec 2023 12:40:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGILf-0006zN-8c; Thu, 21 Dec 2023 12:40:23 +0000
Received: by outflank-mailman (input) for mailman id 658864;
 Thu, 21 Dec 2023 12: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=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGILe-0006zH-GP
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 12:40:22 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a50ceef-9ffe-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 13:40:20 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-33679c49fe5so611959f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 04:40:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c18-20020a5d4152000000b0033609b71825sm1956258wrq.35.2023.12.21.04.40.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 04:40:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a50ceef-9ffe-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703162420; x=1703767220; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=eWiGAjoKj5nsfdR0+g/h457i1lzUsHRttMiW/lyiqxE=;
        b=dRCIpOBRI/Yh3V0WpygkmeQRQ7gST8A8cZS3XRFZq+bsqPALgWIbjBUAFP2CnCa6ls
         Q+JAPDfHaS2bpO7EWnb1+uMsUlSWfMXTsyxJkgSqGIiqfHEdxnJegTYElow+HRshdxcr
         Efnx2NbUTOZ/1PCeue7Xpy4ED2G4LkOwym+pzdPwJ4lLrG1wf7V8Hoo6IAhT8k3hdWs5
         zjFLRhDIFEELRbcHf0dmaeUZ+Q3J/039vLud+tPBEFtLZaSq7Hv2BZ0ya3ifzNIkahKt
         IFbDBq/U04aQruG6H/mnB/A5agONTSSbcJXu9CLI9d6SpcVdLYnnjtCTmbCWs7xAf+OS
         iQVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703162420; x=1703767220;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=eWiGAjoKj5nsfdR0+g/h457i1lzUsHRttMiW/lyiqxE=;
        b=C7N3ZGwOguH7h3wSYVxAy7V1rZ4p6kZy5Xti2NVy5UBHf63wRt4u69R0f6kKpmRb+Y
         D7Qi4RsDJGRN4tdagjE1capHihIrNa/1MTAUWY1yz4TKmjXAPy6LJYMe5eBxMujS4ZTL
         l/MvbJ5oWd/r5w5DnKT50Pj25yiUVNhGf46AfueJvAxYM1qgAaoS/waS8Q9bgqM/bha0
         F8SN4JwId9MeH4c6aEAOQIQpXToBlTWq8uX+GSU8mTeFo63IqTQuGQotoR5dn+lR0dOn
         vNYRezoWr0y+umGAnXOSHKiPb2tYr7cIZoMESWWiy2IHJ7keXA0RQX3bSAizaCfG5ydY
         D5AA==
X-Gm-Message-State: AOJu0Yx76GK3xR64idhk+TSokX2WHrcoPLlxiMB44WEkT0CvMu3Z2yWi
	CeUcxqR5tObbtrYlxEg8Gykz
X-Google-Smtp-Source: AGHT+IELQlWo9K8uMMZOoFsxOoDl73Nmk5sSabaO8kP9l5oy0tiS3Lb7gQRsm4suIjzVU7ZhGckrhw==
X-Received: by 2002:a5d:514c:0:b0:336:8b4e:3437 with SMTP id u12-20020a5d514c000000b003368b4e3437mr391966wrt.111.1703162420261;
        Thu, 21 Dec 2023 04:40:20 -0800 (PST)
Message-ID: <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com>
Date: Thu, 21 Dec 2023 13:40:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>,
 Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
 <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com>
 <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.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: <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.12.2023 17:34, SÃ©bastien Chaumat wrote:
> Here are the patches I made to xen and linux kernel
> Plus dmesg (bare metal,xen) and "xl dmesg"

So the problem looks to be that pci_xen_initial_domain() results in
permanent setup of IRQ7, when there only "static" ACPI tables (in
particular source overrides in MADT) are consulted. The necessary
settings, however, are known only after _CRS for the device was
evaluated (and possibly _PRS followed by invocation of _SRS). All of
this happens before xen_register_gsi() is called. But that function's
call to xen_register_pirq() is short-circuited by the very first if()
in xen_register_pirq() when there was an earlier invocation. Hence
the (wrong) "edge" binding remains in place, as was established by
the earlier call here.

JÃ¼rgen, there's an interesting comment in xen_bind_pirq_gsi_to_irq(),
right before invoking irq_set_chip_and_handler_name(). Despite what
the comment says (according to my reading), the fasteoi one is _not_
used in all cases. Assuming there's a reason for this, it's not clear
to me whether updating the handler later on is a valid thing to do.
__irq_set_handler() being even an exported symbol suggests that might
be an option to use here. Then again merely updating the handler may
not be sufficient, seeing there are also e.g. IRQD_TRIGGER_MASK and
IRQD_LEVEL.

SÃ©bastien, to prove the (still pretty weak) theory that the change in
handler is all that's needed to make things work in your case, could
you fiddle with pci_xen_initial_domain() to have it skip IRQ7? (That
of course won't be a proper solution, but ought to be okay for your
system.) The main weakness of the theory is that IRQ7 really isn't
very special in this regard - other PCI IRQs routed to the low 16
IO-APIC pins ought to have similar issues (from the log, on your
system this would be at least IRQ6 and IRQ10, except that they happen
to be edge/low, so fitting the ISA defaults); only IRQ16 and up would
work okay.

Furthermore it might be interesting to know whether ELCR would give us
any hint in this case. Sadly depending on where you look,
applicability of this pair of registers (I/O ports 0x4d0 and 0x4d1)
to other than EISA systems is claimed true or false. Could you perhaps
make Xen simply log the values read from those two ports, by e.g.
inserting

    printk("ELCR: %02x, %02x\n", inb(0x4d0), inb(0x4d1));

in, say, setup_dump_irqs()?

JÃ¼rgen, looking at pci_xen_initial_domain(), what's the purpose of
the loop in the final if()? Can this ever do anything useful when
the earlier comment suggests nr_legacy_irqs() is zero anyway? Or is
the comment simply inaccurate in not covering the "no IO-APICs" case?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 12:41:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 12:41:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658868.1028289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGIN4-0007oe-M3; Thu, 21 Dec 2023 12:41:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658868.1028289; Thu, 21 Dec 2023 12:41: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 1rGIN4-0007oX-JO; Thu, 21 Dec 2023 12:41:50 +0000
Received: by outflank-mailman (input) for mailman id 658868;
 Thu, 21 Dec 2023 12:41:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGIN3-0007mb-NZ
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 12:41:49 +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 4ee5ba30-9ffe-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 13:41:49 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3365f1326e4so644490f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 04:41:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 c18-20020a5d4152000000b0033609b71825sm1956258wrq.35.2023.12.21.04.41.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 04:41:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ee5ba30-9ffe-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703162508; x=1703767308; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=FXA+kcgLAhRm1PSgpQRh2NMEj3762XXZm9bn8UOaIGg=;
        b=F3xmLoUh+DD4nqAckW3HXmvD2EEpAQYg+v+FPYvtRLROTOtVgA/rqn3lxd0L+Ba68G
         kNVsJ3cBHbabsZAD2HxRUobUfg6JsVKxBmarTXrKA1E9MeICUCg0sHCWDRAgWf7GKyde
         cLcTq7dKpbOxkMwo8uYeBPx3V0kilh50UIIe4qFZHdh+reBwf/3YFzH3+gR3cBRn1FM+
         bk1RWEaXaOedBqsg2koSQjRGr8s2v28sbkFpntTQCyfz78ynofmTF0A/Wh3T57vUy0Oy
         6z+SBnqbeh4l+nb2VTRZtbSHiyDZUKpTYJ97zvQMJeZ33PPTN0F1XkXnBFlNR1a+XIHY
         5vmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703162508; x=1703767308;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=FXA+kcgLAhRm1PSgpQRh2NMEj3762XXZm9bn8UOaIGg=;
        b=acEhkymBr65yLy+UQEnj1WLEcPAOxHH8AFDke40z0TrFAHEIRQlOwGz8mqHcTEZjtT
         4DOT7341CL5L3jS/1qnjrksgv/TWoXSFqDMBXlyBmRYW2ReBmVxCfGsBT3jzJslEyNYQ
         aCzIzqibMjs402U812CACTtXFJqt6Lv/qlIVD3YYFYsm6G8K7n77GLOS/QAIuKZ90iKl
         HPlLoFrn/eBHzv+oJQakKsV/Y+Ar/7dVR3Mb3tD2R6RoMtjlYqfLZ69HFBDeKOdHHVss
         PqNUEKIfE48qgPJm0h8Xpjv4nAG1zFx7dK01BBals/fICNSyQ6EimVC0qrdsLnmXsHaH
         DAsQ==
X-Gm-Message-State: AOJu0YxIiJw0bhj3pX8xYDepSwLB7ofTqeps5whcxMsPYIZEtxmL5muI
	2AFRDjiqE5dyhWOD5ECoxGJZZe0/QmxTmQGJ5Dr1
X-Google-Smtp-Source: AGHT+IG/TgTa8FlpjrBAinzcs/pfzUPZpu2buE8xmRv/sip5Me/C2/fl4qXuPY9S618lLElCk8553Q==
X-Received: by 2002:adf:ce09:0:b0:333:12a3:644a with SMTP id p9-20020adfce09000000b0033312a3644amr699812wrn.18.1703162508525;
        Thu, 21 Dec 2023 04:41:48 -0800 (PST)
Message-ID: <1330c757-1ca3-4b07-898b-799cbfa67e8a@suse.com>
Date: Thu, 21 Dec 2023 13:41:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN RFC] x86/uaccess: remove __{put,get}_user_bad()
Content-Language: en-US
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>,
 consulting@bugseng.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <9cf852da1c03b614bf5010132c58a18adc2a4161.1703155225.git.federico.serafini@bugseng.com>
 <a2050ac1-e205-4d7f-b9b1-aa625136e63a@suse.com>
 <0c5bbfde-4cf0-4878-b1ee-ccc8eb775464@citrix.com>
 <eb53449bd6595ea0931460e62dd57b9c@bugseng.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: <eb53449bd6595ea0931460e62dd57b9c@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.12.2023 13:01, Nicola Vetrini wrote:
> Hi Andrew,
> 
> On 2023-12-21 12:03, Andrew Cooper wrote:
>> On 21/12/2023 10:58 am, Jan Beulich wrote:
>>> On 21.12.2023 11:53, Federico Serafini wrote:
>>>> Remove declarations of __put_user_bad() and __get_user_bad()
>>>> since they have no definition.
>>>> Replace their uses with a break statement to address violations of
>>>> MISRA C:2012 Rule 16.3 ("An unconditional `break' statement shall
>>>> terminate every switch-clause").
>>>> No functional change.
>>>>
>>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>>> ---
>>>> Several violations of Rule 16.3 come from uses of macros
>>>> get_unsafe_size() and put_unsafe_size().
>>>> Looking at the macro definitions I found __get_user_bad() and 
>>>> __put_user_bad().
>>>> I was wondering if instead of just adding the break statement I can 
>>>> also remove
>>>> such functions which seem to not have a definition.
>>> No, you can't. Try introducing a caller which "accidentally" uses the
>>> wrong size. Without your change you'll observe the build failing (in
>>> a somewhat obscure way, but still), while with your change bad code
>>> will silently be generated.
>>
>> The construct here is deliberate.Â  It's a build time assertion that bad
>> sizes aren't used.
>>
>> __bitop_bad_size() and __xsm_action_mismatch_detected() are the same
>> pattern in other areas of code too, with the latter being more explicit
>> because of how it's wrapped by LINKER_BUG_ON().
>>
>>
>> It is slightly horrible, and not the most obvious construct for
>> newcomers.Â  If there's an alternative way to get a build assertion, we
>> could consider switching to a new pattern.
> 
> would you be in favour of a solution with a BUILD_BUG_ON in the default 
> branch followed by a break?
> 
> default:
>      BUILD_BUG_ON(!size || size >=8 || (size & (size - 1)));
>      break;

I don't think this would compile - BUILD_BUG_ON() wants a compile-time
constant passed.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 12:58:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 12:58:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658874.1028298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGIdN-0002G4-3C; Thu, 21 Dec 2023 12:58:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658874.1028298; Thu, 21 Dec 2023 12:58: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 1rGIdN-0002Fx-0Y; Thu, 21 Dec 2023 12:58:41 +0000
Received: by outflank-mailman (input) for mailman id 658874;
 Thu, 21 Dec 2023 12:58: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 1rGIdK-0002Fm-Ui; Thu, 21 Dec 2023 12:58: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 1rGIdK-0008R2-JJ; Thu, 21 Dec 2023 12:58: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 1rGIdK-0000nZ-8V; Thu, 21 Dec 2023 12:58:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGIdK-0004Jw-86; Thu, 21 Dec 2023 12:58: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=Bqf+3T/4qG5qc8HkUkG+VQfBAlM8wmLqshRp77x76ek=; b=VztJSIOgvNFM8SzES0QOgppIAn
	KdwK1Izh/DthEJPTRgFWL5Oqc0sbE+pgxBr0Icutcp0nZFW7NqsTepo34Jh5jtkU6CP2XuwJuJaEH
	nAATQARPYNY3/Yn5AaQBrMzFsc7VqC0qb/rdOoSfBln6BZyiyefj5WeiNckpd2HyA4Zc=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184202-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184202: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=5d533bbc27732a421e3bf35c5af77782b8a85e6f
X-Osstest-Versions-That:
    ovmf=9f0061a03b61d282fbc0ba5be22155d06a5e64a1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 12:58:38 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 5d533bbc27732a421e3bf35c5af77782b8a85e6f
baseline version:
 ovmf                 9f0061a03b61d282fbc0ba5be22155d06a5e64a1

Last test of basis   184198  2023-12-21 01:57:56 Z    0 days
Testing same since   184202  2023-12-21 10:12:56 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jake Garver <jake@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    
 test-amd64-i386-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
   9f0061a03b..5d533bbc27  5d533bbc27732a421e3bf35c5af77782b8a85e6f -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 13:00:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 13:00:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658879.1028309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGIfQ-0003we-F7; Thu, 21 Dec 2023 13:00:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658879.1028309; Thu, 21 Dec 2023 13:00:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGIfQ-0003wX-By; Thu, 21 Dec 2023 13:00:48 +0000
Received: by outflank-mailman (input) for mailman id 658879;
 Thu, 21 Dec 2023 13:00:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2kIw=IA=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1rGIfP-0003wR-Aq
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 13:00:47 +0000
Received: from mail-yb1-xb34.google.com (mail-yb1-xb34.google.com
 [2607:f8b0:4864:20::b34])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3a63a57-a000-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 14:00:45 +0100 (CET)
Received: by mail-yb1-xb34.google.com with SMTP id
 3f1490d57ef6-dbd4a10735eso754068276.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 05:00:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3a63a57-a000-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1703163643; x=1703768443; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Oxc55xU72Qxmrctlu5SXlDHbgYQMGAQr2o95oPhqITs=;
        b=SLMQP96x2tqPYh3NXZpEavHiItAZanyENVDeoykFJYs/kqHhCSFdPUbO4dXJnsqGlE
         op2ssiBEutvloSYr2vUlBWn4MMUyibRNrNMxBqPrB/WmdWUXybjwDpf1rcYHEyKD+Z9a
         QFGfQ8O3WhNZ2FkQgiwym+N4M81HYg2M8bU3c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703163643; x=1703768443;
        h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Oxc55xU72Qxmrctlu5SXlDHbgYQMGAQr2o95oPhqITs=;
        b=IyvlRAMBAu9Up1ax/i/Ui4GpLSlE/TKJ7zIt1nCZaFF7i4aVifVxoYtGeDBb6WJLZY
         hzY/7cnvFdn1vDHTjgW50vOhYA/QWg20SkTV4lJaQ/1FWKFZEEwo0chIoil+UcMVx8jW
         ieBwwhjzkOSel61ELdawYseXhsgZszTaeNCjAdmKuftEFwb5HohvrrakAjIiCAZxI6pV
         Icb+scW9dkaLI1Uglu5aokq779602tqDl0C2+ao/1i9vemDmUdyWht4knrEK/iH3j+tv
         0xdobFFMS5T3aArVqRPB9EqcqgjUt9cjIToujq7dhWgVgfuzBSDTPvmw9fBIvioGRdRN
         VypQ==
X-Gm-Message-State: AOJu0Yy/ztkYlWC8y1k+W6OqiVAoQpwYz7+SLPfBILcEXTlkgw++7CYh
	EqLIq+axkp+KSOmctqi3Yx3XIgwtmBTKIwFfchhSdnO9T2ej6oVYvTc=
X-Google-Smtp-Source: AGHT+IEP6y/c4G4+yTkvePcO57lO7HPUvA0Uei9zJ/Cgf4wXhm/PF4r7ycRj7mKcDMkbUlkYnmBz81i2E95LGtKang4=
X-Received: by 2002:a25:adc1:0:b0:db9:6dbb:8680 with SMTP id
 d1-20020a25adc1000000b00db96dbb8680mr1060429ybe.41.1703163643052; Thu, 21 Dec
 2023 05:00:43 -0800 (PST)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Thu, 21 Dec 2023 13:00:06 +0000
Message-ID: <CAO-mL=xGuvvD24WCD6xsCVJDCgb44uh-214GO-ueTWqqeDrgjQ@mail.gmail.com>
Subject: Governance change proposal on small updates
To: xen-devel@lists.xenproject.org
Cc: committers@xenproject.org
Content-Type: multipart/alternative; boundary="000000000000f05e7e060d04af3a"

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

Hi all,

I am proposing a small change in how we update non-trivial matters in our
governance.

Currently, any governance change requires a formal vote. However, there
will be times when this is unnecessary and would hinder progress in the
project. For example, my previous email proposal on changes to clarity and
inclusivity language. As it stands, I have not received any pushback or
feedback from the community.

To help us progress faster, I would suggest the following:
-* Small changes will still need to be proposed to xen-devel and the
community*
*- The community is welcome to give as much feedback as necessary before
any changes are made*
*- Proposals can be changed/updated as needed, then resubmitted to the
community *
*- Anyone can object to these changes or call a vote within 30 days of the
proposal if deemed necessary*
*- A committer must ack the change for it to go ahead*
*- If the community manager does not hear any feedback within 30 days, the
changes can be acked by a committer and put into the governance*
*- All important matters and policy changes to the community will still go
through a formal voting process. This change only applies to small matters
within the governance. *

Examples:
*- Wording or spelling changes*
*- Updating small sentences or clarity changes*
*- Adding examples to existing code of conduct policies*

I welcome your thoughts on the above proposal.
Please reply by 14th January 2024 should you have any objections to this.
If by lazy consensus I do not hear back from this date, I will assume I
have your agreement on this.

Many thanks,
Kelly Choi

Community Manager
Xen Project


On Fri, Nov 24, 2023 at 10:57=E2=80=AFAM Kelly Choi <kelly.choi@cloud.com> =
wrote:

> Hi all,
>
> Please see an updated Governance PR on GitLab here:
> https://gitlab.com/xen-project/governance/governance/-/merge_requests/1
>
> Comments:
>
> Revise code of conduct for enhanced clarity, inclusivity, and
> accountability
>
> In response to valuable feedback from community members and in alignment
> with our ongoing commitment to creating a safe and welcoming space for
> collaboration, this commit refines the code of conduct. The changes focus
> on:
>
>    - *Clarity:* Rewording sections to eliminate ambiguity and ensure that
>    expectations are clearly communicated.
>    - *Inclusivity:* Adding language to emphasize our dedication to
>    diversity and inclusion, and providing examples to illustrate the type=
s of
>    behavior we encourage.
>
> These updates aim to foster a more positive and collaborative atmosphere
> within our community. Please review the changes and don't hesitate to
> provide further input or suggestions.
>
> Note that the patches should be read as a whole; I'm still learning git
> and using the gitlab UI, which doesn't have a way to do history editing.
> Many thanks,
> Kelly Choi
>
> Open Source Community Manager
> XenServer, Cloud Software Group
>

--000000000000f05e7e060d04af3a
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 am proposing=
 a small change in how we update non-trivial matters in our governance.</di=
v><div><br></div><div>Currently, any governance=C2=A0change requires a form=
al vote. However, there will be times when this is unnecessary and would hi=
nder progress in the project. For example, my previous email proposal on ch=
anges to clarity and inclusivity language. As it stands, I have not receive=
d any pushback or feedback from the community.=C2=A0</div><div><br></div><d=
iv>To help us progress faster, I would suggest the following:</div><div>-<i=
>=C2=A0Small changes will still need to be proposed to xen-devel and the co=
mmunity</i></div><div><i>- The community is welcome to give as much feedbac=
k as necessary before any changes are made</i><i><br></i></div><div><i>- Pr=
oposals can be changed/updated as needed, then resubmitted to the community=
=C2=A0</i></div><div><i>- Anyone can object to these changes or call a vote=
 within 30 days of the proposal if deemed necessary</i></div><div><i>- A co=
mmitter must ack the change for it to go ahead</i></div><div><i>- If the co=
mmunity manager does not hear any feedback within 30 days, the changes can =
be acked=C2=A0by a committer and put into the governance</i></div><div><i><=
b>- All important matters and policy changes to the community will still go=
 through a formal voting process. This change only applies to small matters=
 within the governance.=C2=A0</b></i></div><div><br></div><div>Examples:</d=
iv><div><i>- Wording or spelling changes</i></div><div><i>- Updating small =
sentences or clarity changes</i></div><div><i>- Adding examples to existing=
 code of conduct policies</i></div><div><br></div><div>I welcome your thoug=
hts on the above proposal.=C2=A0</div><div><font color=3D"#ff0000">Please r=
eply by 14th January 2024 should you have any objections to this.=C2=A0</fo=
nt></div><div>If by lazy consensus I do not hear back from this date, I wil=
l assume I have your agreement on this.=C2=A0</div><div><br clear=3D"all"><=
div><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"ltr"><div>Many t=
hanks,</div><div>Kelly Choi</div><div><br></div><div><div style=3D"color:rg=
b(136,136,136)">Community Manager</div><div style=3D"color:rgb(136,136,136)=
">Xen Project=C2=A0<br></div></div></div></div></div><br></div></div><br><d=
iv class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Nov =
24, 2023 at 10:57=E2=80=AFAM Kelly Choi &lt;<a href=3D"mailto:kelly.choi@cl=
oud.com" target=3D"_blank">kelly.choi@cloud.com</a>&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Hi all,=C2=
=A0<div><br></div><div>Please see an updated Governance PR on GitLab here:<=
/div><div><a href=3D"https://gitlab.com/xen-project/governance/governance/-=
/merge_requests/1" target=3D"_blank">https://gitlab.com/xen-project/governa=
nce/governance/-/merge_requests/1</a>=C2=A0<br></div><div><p>Comments:</p><=
p dir=3D"auto">Revise code of conduct for enhanced clarity, inclusivity, an=
d accountability</p>
<p dir=3D"auto">In response to valuable feedback from community members and=
 in alignment with our ongoing commitment to creating a safe and welcoming =
space for collaboration, this commit refines the code of conduct. The chang=
es focus on:</p>
<ul dir=3D"auto">
<li>
<strong>Clarity:</strong> Rewording sections to eliminate ambiguity and ens=
ure that expectations are clearly communicated.</li>
<li>
<strong>Inclusivity:</strong> Adding language to emphasize our dedication t=
o diversity and inclusion, and providing examples to illustrate the types o=
f behavior we encourage.</li>
</ul>
<p dir=3D"auto">These updates aim to foster a more positive and collaborati=
ve atmosphere within our community. Please review the changes and don&#39;t=
 hesitate to provide further input or suggestions.</p>
<p dir=3D"auto">Note that the patches should be read as a whole; I&#39;m st=
ill learning git and using the gitlab UI, which doesn&#39;t have a way to d=
o history editing.</p></div><div><div><div dir=3D"ltr" class=3D"gmail_signa=
ture"><div dir=3D"ltr"><div>Many thanks,</div><div>Kelly Choi</div><div><br=
></div><div><div style=3D"color:rgb(136,136,136)">Open Source Community Man=
ager</div><div style=3D"color:rgb(136,136,136)">XenServer, Cloud Software G=
roup</div></div></div></div></div></div></div>
</blockquote></div></div>

--000000000000f05e7e060d04af3a--


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 13:29:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 13:29:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658888.1028319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGJ6z-0000Lb-QP; Thu, 21 Dec 2023 13:29:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658888.1028319; Thu, 21 Dec 2023 13: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 1rGJ6z-0000LU-LT; Thu, 21 Dec 2023 13:29:17 +0000
Received: by outflank-mailman (input) for mailman id 658888;
 Thu, 21 Dec 2023 13:29: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=jRZ7=IA=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rGJ6x-0000LO-Om
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 13:29:15 +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 ee54543a-a004-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 14:29:13 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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 4F6781FB66;
 Thu, 21 Dec 2023 13:29:12 +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 2B7EB13725;
 Thu, 21 Dec 2023 13:29:12 +0000 (UTC)
Received: from dovecot-director2.suse.de ([10.150.64.162])
 by imap1.dmz-prg2.suse.org with ESMTPSA id KDdQCag9hGUzBgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 21 Dec 2023 13:29:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee54543a-a004-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1703165352; 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=qHupHbYhaQAKsn2JPRIZ8ciBqgzTcV6PnWPxlp/uQWA=;
	b=nUKrbhwY+omt5O/wCHcp4HbUTGCgej5OW+GVv7rkQAkbediXPpAMYrpHmt+stsR4KadQNG
	pfh43wlfgcid0xo+qQ0TYNfHk7kg5SXKEkbTInrHooI2Rg9eISCT1J8OAMUDsXsaD/3CdC
	cZMdyuX/00j41KllP2TfFYcHuwn6XAY=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1703165352; 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=qHupHbYhaQAKsn2JPRIZ8ciBqgzTcV6PnWPxlp/uQWA=;
	b=nUKrbhwY+omt5O/wCHcp4HbUTGCgej5OW+GVv7rkQAkbediXPpAMYrpHmt+stsR4KadQNG
	pfh43wlfgcid0xo+qQ0TYNfHk7kg5SXKEkbTInrHooI2Rg9eISCT1J8OAMUDsXsaD/3CdC
	cZMdyuX/00j41KllP2TfFYcHuwn6XAY=
Message-ID: <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
Date: Thu, 21 Dec 2023 14:29:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?S=C3=A9bastien_Chaumat?=
 <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
 <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com>
 <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
 <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com>
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: <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------HcQL1M1IabEgzyYsK0SOeG5m"
X-Spam-Level: 
X-Spam-Level: 
X-Spamd-Result: default: False [-4.99 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 XM_UA_NO_VERSION(0.01)[];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[3];
	 FREEMAIL_ENVRCPT(0.00)[gmail.com];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	 HAS_ATTACHMENT(0.00)[];
	 TO_DN_SOME(0.00)[];
	 BAYES_HAM(-3.00)[100.00%];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 MIME_BASE64_TEXT(0.10)[];
	 SIGNED_PGP(-2.00)[];
	 FREEMAIL_TO(0.00)[suse.com,gmail.com];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	 RCVD_TLS_ALL(0.00)[];
	 MID_RHS_MATCH_FROM(0.00)[];
	 MIME_UNKNOWN(0.10)[application/pgp-keys]
Authentication-Results: smtp-out2.suse.de;
	none
X-Spam-Score: -4.99
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------HcQL1M1IabEgzyYsK0SOeG5m
Content-Type: multipart/mixed; boundary="------------CEd5VNZ81Bp2dvHgFIo4KliV";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?S=C3=A9bastien_Chaumat?=
 <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org
Message-ID: <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <e83e7254-0c90-4912-ae63-ea7221a10071@suse.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
 <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com>
 <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
 <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com>
In-Reply-To: <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com>

--------------CEd5VNZ81Bp2dvHgFIo4KliV
Content-Type: multipart/mixed; boundary="------------0s49s78u89f3x0hJ13bYGeDO"

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

T24gMjEuMTIuMjMgMTM6NDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMC4xMi4yMDIz
IDE3OjM0LCBTw6liYXN0aWVuIENoYXVtYXQgd3JvdGU6DQo+PiBIZXJlIGFyZSB0aGUgcGF0
Y2hlcyBJIG1hZGUgdG8geGVuIGFuZCBsaW51eCBrZXJuZWwNCj4+IFBsdXMgZG1lc2cgKGJh
cmUgbWV0YWwseGVuKSBhbmQgInhsIGRtZXNnIg0KPiANCj4gU28gdGhlIHByb2JsZW0gbG9v
a3MgdG8gYmUgdGhhdCBwY2lfeGVuX2luaXRpYWxfZG9tYWluKCkgcmVzdWx0cyBpbg0KPiBw
ZXJtYW5lbnQgc2V0dXAgb2YgSVJRNywgd2hlbiB0aGVyZSBvbmx5ICJzdGF0aWMiIEFDUEkg
dGFibGVzIChpbg0KPiBwYXJ0aWN1bGFyIHNvdXJjZSBvdmVycmlkZXMgaW4gTUFEVCkgYXJl
IGNvbnN1bHRlZC4gVGhlIG5lY2Vzc2FyeQ0KPiBzZXR0aW5ncywgaG93ZXZlciwgYXJlIGtu
b3duIG9ubHkgYWZ0ZXIgX0NSUyBmb3IgdGhlIGRldmljZSB3YXMNCj4gZXZhbHVhdGVkIChh
bmQgcG9zc2libHkgX1BSUyBmb2xsb3dlZCBieSBpbnZvY2F0aW9uIG9mIF9TUlMpLiBBbGwg
b2YNCj4gdGhpcyBoYXBwZW5zIGJlZm9yZSB4ZW5fcmVnaXN0ZXJfZ3NpKCkgaXMgY2FsbGVk
LiBCdXQgdGhhdCBmdW5jdGlvbidzDQo+IGNhbGwgdG8geGVuX3JlZ2lzdGVyX3BpcnEoKSBp
cyBzaG9ydC1jaXJjdWl0ZWQgYnkgdGhlIHZlcnkgZmlyc3QgaWYoKQ0KPiBpbiB4ZW5fcmVn
aXN0ZXJfcGlycSgpIHdoZW4gdGhlcmUgd2FzIGFuIGVhcmxpZXIgaW52b2NhdGlvbi4gSGVu
Y2UNCj4gdGhlICh3cm9uZykgImVkZ2UiIGJpbmRpbmcgcmVtYWlucyBpbiBwbGFjZSwgYXMg
d2FzIGVzdGFibGlzaGVkIGJ5DQo+IHRoZSBlYXJsaWVyIGNhbGwgaGVyZS4NCj4gDQo+IErD
vHJnZW4sIHRoZXJlJ3MgYW4gaW50ZXJlc3RpbmcgY29tbWVudCBpbiB4ZW5fYmluZF9waXJx
X2dzaV90b19pcnEoKSwNCj4gcmlnaHQgYmVmb3JlIGludm9raW5nIGlycV9zZXRfY2hpcF9h
bmRfaGFuZGxlcl9uYW1lKCkuIERlc3BpdGUgd2hhdA0KPiB0aGUgY29tbWVudCBzYXlzIChh
Y2NvcmRpbmcgdG8gbXkgcmVhZGluZyksIHRoZSBmYXN0ZW9pIG9uZSBpcyBfbm90Xw0KPiB1
c2VkIGluIGFsbCBjYXNlcy4gQXNzdW1pbmcgdGhlcmUncyBhIHJlYXNvbiBmb3IgdGhpcywg
aXQncyBub3QgY2xlYXINCj4gdG8gbWUgd2hldGhlciB1cGRhdGluZyB0aGUgaGFuZGxlciBs
YXRlciBvbiBpcyBhIHZhbGlkIHRoaW5nIHRvIGRvLg0KPiBfX2lycV9zZXRfaGFuZGxlcigp
IGJlaW5nIGV2ZW4gYW4gZXhwb3J0ZWQgc3ltYm9sIHN1Z2dlc3RzIHRoYXQgbWlnaHQNCj4g
YmUgYW4gb3B0aW9uIHRvIHVzZSBoZXJlLiBUaGVuIGFnYWluIG1lcmVseSB1cGRhdGluZyB0
aGUgaGFuZGxlciBtYXkNCj4gbm90IGJlIHN1ZmZpY2llbnQsIHNlZWluZyB0aGVyZSBhcmUg
YWxzbyBlLmcuIElSUURfVFJJR0dFUl9NQVNLIGFuZA0KPiBJUlFEX0xFVkVMLg0KDQpJIHVu
ZGVyc3RhbmQgdGhlIGxhc3QgcGFyYWdyYXBoIG9mIHRoYXQgY29tbWVudCB0byByZWFzb24s
IHRoYXQgaW4gY2FzZQ0KcGlycV9uZWVkc19lb2koKSByZXR1cm4gdHJ1ZSBldmVuIGluIGNh
c2Ugb2YgYW4gZWRnZSB0cmlnZ2VyZWQgaW50ZXJydXB0LA0KdGhlIG91dGNvbWUgaXMgc3Rp
bGwgb2theS4NCg0KSSBkb24ndCB0aGluayB1cGRhdGluZyB0aGUgaGFuZGxlciBsYXRlciBp
cyB2YWxpZC4NCg0KPiBTw6liYXN0aWVuLCB0byBwcm92ZSB0aGUgKHN0aWxsIHByZXR0eSB3
ZWFrKSB0aGVvcnkgdGhhdCB0aGUgY2hhbmdlIGluDQo+IGhhbmRsZXIgaXMgYWxsIHRoYXQn
cyBuZWVkZWQgdG8gbWFrZSB0aGluZ3Mgd29yayBpbiB5b3VyIGNhc2UsIGNvdWxkDQo+IHlv
dSBmaWRkbGUgd2l0aCBwY2lfeGVuX2luaXRpYWxfZG9tYWluKCkgdG8gaGF2ZSBpdCBza2lw
IElSUTc/IChUaGF0DQo+IG9mIGNvdXJzZSB3b24ndCBiZSBhIHByb3BlciBzb2x1dGlvbiwg
YnV0IG91Z2h0IHRvIGJlIG9rYXkgZm9yIHlvdXINCj4gc3lzdGVtLikgVGhlIG1haW4gd2Vh
a25lc3Mgb2YgdGhlIHRoZW9yeSBpcyB0aGF0IElSUTcgcmVhbGx5IGlzbid0DQo+IHZlcnkg
c3BlY2lhbCBpbiB0aGlzIHJlZ2FyZCAtIG90aGVyIFBDSSBJUlFzIHJvdXRlZCB0byB0aGUg
bG93IDE2DQo+IElPLUFQSUMgcGlucyBvdWdodCB0byBoYXZlIHNpbWlsYXIgaXNzdWVzIChm
cm9tIHRoZSBsb2csIG9uIHlvdXINCj4gc3lzdGVtIHRoaXMgd291bGQgYmUgYXQgbGVhc3Qg
SVJRNiBhbmQgSVJRMTAsIGV4Y2VwdCB0aGF0IHRoZXkgaGFwcGVuDQo+IHRvIGJlIGVkZ2Uv
bG93LCBzbyBmaXR0aW5nIHRoZSBJU0EgZGVmYXVsdHMpOyBvbmx5IElSUTE2IGFuZCB1cCB3
b3VsZA0KPiB3b3JrIG9rYXkuDQo+IA0KPiBGdXJ0aGVybW9yZSBpdCBtaWdodCBiZSBpbnRl
cmVzdGluZyB0byBrbm93IHdoZXRoZXIgRUxDUiB3b3VsZCBnaXZlIHVzDQo+IGFueSBoaW50
IGluIHRoaXMgY2FzZS4gU2FkbHkgZGVwZW5kaW5nIG9uIHdoZXJlIHlvdSBsb29rLA0KPiBh
cHBsaWNhYmlsaXR5IG9mIHRoaXMgcGFpciBvZiByZWdpc3RlcnMgKEkvTyBwb3J0cyAweDRk
MCBhbmQgMHg0ZDEpDQo+IHRvIG90aGVyIHRoYW4gRUlTQSBzeXN0ZW1zIGlzIGNsYWltZWQg
dHJ1ZSBvciBmYWxzZS4gQ291bGQgeW91IHBlcmhhcHMNCj4gbWFrZSBYZW4gc2ltcGx5IGxv
ZyB0aGUgdmFsdWVzIHJlYWQgZnJvbSB0aG9zZSB0d28gcG9ydHMsIGJ5IGUuZy4NCj4gaW5z
ZXJ0aW5nDQo+IA0KPiAgICAgIHByaW50aygiRUxDUjogJTAyeCwgJTAyeFxuIiwgaW5iKDB4
NGQwKSwgaW5iKDB4NGQxKSk7DQo+IA0KPiBpbiwgc2F5LCBzZXR1cF9kdW1wX2lycXMoKT8N
Cj4gDQo+IErDvHJnZW4sIGxvb2tpbmcgYXQgcGNpX3hlbl9pbml0aWFsX2RvbWFpbigpLCB3
aGF0J3MgdGhlIHB1cnBvc2Ugb2YNCj4gdGhlIGxvb3AgaW4gdGhlIGZpbmFsIGlmKCk/IENh
biB0aGlzIGV2ZXIgZG8gYW55dGhpbmcgdXNlZnVsIHdoZW4NCj4gdGhlIGVhcmxpZXIgY29t
bWVudCBzdWdnZXN0cyBucl9sZWdhY3lfaXJxcygpIGlzIHplcm8gYW55d2F5PyBPciBpcw0K
PiB0aGUgY29tbWVudCBzaW1wbHkgaW5hY2N1cmF0ZSBpbiBub3QgY292ZXJpbmcgdGhlICJu
byBJTy1BUElDcyIgY2FzZT8NCg0KTm8sIEkgdGhpbmsgdGhlIGZpbmFsIGxvb3Agd291bGQg
b25seSBkbyBzb21ldGhpbmcgaW4gY2FzZSBwcm9iZV84MjU5QSgpDQppcyBkZXRlY3Rpbmcg
YSB3b3JraW5nIFBJQyAod2hpY2ggc2hvdWxkIG5vdCBiZSB0aGUgY2FzZSBJTUhPKS4gQ291
bGQgaXQNCmJlIHRoYXQgdGhlcmUgaGF2ZSBiZWVuIFhlbiB2ZXJzaW9ucyBlbXVsYXRpbmcg
YSBQSUM/DQoNClRoZSBjYWxsIG9mIHByb2JlXzgyNTlBKCkgaXMgaW4gbm8gd2F5IGRlcGVu
ZGluZyBvbiBucl9pb2FwaWNzLg0KDQoNCkp1ZXJnZW4NCg==
--------------0s49s78u89f3x0hJ13bYGeDO
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-----

--------------0s49s78u89f3x0hJ13bYGeDO--

--------------CEd5VNZ81Bp2dvHgFIo4KliV--

--------------HcQL1M1IabEgzyYsK0SOeG5m
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/Ey8FAmWEPacFAwAAAAAACgkQsN6d1ii/Ey8e
bwf/aSZ/F8tA1+SYcPWVFleatfgSFMG+mg3bRAl4H5WycBCVIezhU34V4QSLv/pw9Vsx6QR4CiLE
+m7Qxp0G76hIkxkKKizgwKy+b9ZpTvsSoK81vfPoeVWnqPa+ylrY6w4VwLMWvVKdOwhhUpqxTBXI
rOzGir8Dj8mdy5ILIH48MheQ4cqOYF3ZJcNksOBxKGYTpUwdq2/sHsMedEodNX/98EQ/RnXrLuXb
oAWdeQBIOPs9D/wmd4XjtFSwksAkDNjeXzTiT4GciwNscnwcMQmbONraAo9WdlhDMCa5wPm5wXsL
jFk+SCWIN50UazCcgXOP4qZWYQ8kZlsnstMOBVtu6g==
=4OnE
-----END PGP SIGNATURE-----

--------------HcQL1M1IabEgzyYsK0SOeG5m--


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 13:40:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 13:40:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658893.1028328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGJHw-0003Tq-P0; Thu, 21 Dec 2023 13:40:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658893.1028328; Thu, 21 Dec 2023 13:40:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGJHw-0003Tj-MQ; Thu, 21 Dec 2023 13:40:36 +0000
Received: by outflank-mailman (input) for mailman id 658893;
 Thu, 21 Dec 2023 13:40:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BnTy=IA=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rGJHv-0003Td-8e
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 13:40:35 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id 83918744-a006-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 14:40:34 +0100 (CET)
Received: from mg.gitlab.com (3.226.74.34.bc.googleusercontent.com
 [34.74.226.3]) by
 e5757967d999 with SMTP id 65844050bce59b1aa2c01d38 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Thu, 21 Dec 2023 13:40:32 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 83918744-a006-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1703166032; x=1703173232; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=EQgtrbdnK7rXSopGzqBJpa1piqjG8xUn7kn2w55b6c0=;
 b=qFR6M/P4KFQ2wIXYDDGJxpfm/ACgVLRrS2a4BvAxWznyZRBlFeHyhzh6lCxdP05YN4ryRv4eeH3hi7PCH9msyC5kvhE/L6alHTPlbPs1HTYhUoWLRnszq/iXGFEskcGIKtDZ/6bm2EIKBybYoUmPpnnsL5ySOcjTo/eID/IstWo=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Thu, 21 Dec 2023 13:40:31 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6584404fcb487_2c95ec0127d3@gitlab-sidekiq-catchall-v2-9cd5b55-sgllr.mail>
Subject: xen | Successful pipeline for staging | 3909fb46
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6584404fb3a87_2c95ec012652";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1115493558
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6584404fb3a87_2c95ec012652
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1115493558 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 3909fb46 ( https://gitlab.com/xen-project/xen/-/commit/3909fb4692dfbf7e46c0bcc37b0a3b943a034da9 )
Commit Message: docs/misra: exclude files inherited from ACPI C...
Commit Author: Nicola Vetrini
Committed by: Jan Beulich ( https://gitlab.com/jbeulich )



Pipeline #1115493558 ( https://gitlab.com/xen-project/xen/-/pipelines/1115493558 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 3909fb46</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1115493558 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/3909fb4692dfbf7e46=
c0bcc37b0a3b943a034da9" style=3D"color: #3777b0; text-decoration: none;">=
3909fb46</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
docs/misra: exclude files inherited from ACPI C...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/23d68b797e165570c641942285dfe06e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<span>
Nicola Vetrini
</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/d85e7926e3558bc23df7a4eb6c8a7c5e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jbeulich" style=3D"color: #=
333333; text-decoration: none;">
Jan Beulich
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111549=
3558" style=3D"color: #3777b0; text-decoration: none;">#1115493558</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6584404fb3a87_2c95ec012652--


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 14:02:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 14:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658935.1028344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGJcc-0007vB-JQ; Thu, 21 Dec 2023 14:01:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658935.1028344; Thu, 21 Dec 2023 14: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 1rGJcc-0007v4-G5; Thu, 21 Dec 2023 14:01:58 +0000
Received: by outflank-mailman (input) for mailman id 658935;
 Thu, 21 Dec 2023 14:01: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 1rGJcb-0007uu-5d; Thu, 21 Dec 2023 14:01: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 1rGJca-0001FH-TV; Thu, 21 Dec 2023 14:01: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 1rGJca-00033y-Ec; Thu, 21 Dec 2023 14:01:56 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGJca-0007Ye-E4; Thu, 21 Dec 2023 14:01: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=3k5AhFEM5hIUOSj4fgv0w0f5T6FMcv8pWTykvJ6Ul3s=; b=3lbQE0PUuULykeR1CbnqwF/d8Z
	spfp18N7PKKZypFKN3yKYN5GAK7KRkDV/zIfB8R1Pph45iUIno4yTm2EuQxAEiRx9u6sqanlX+dqs
	5ifn4ouij79iDjX/LLWAhkep/jXTmI5o5APbut9a00JBSWVo76kZ86dm+AFbSJb4NvdE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184203-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184203: 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=3909fb4692dfbf7e46c0bcc37b0a3b943a034da9
X-Osstest-Versions-That:
    xen=6efc654a0b529a0e4d08e5d6bb5762fee1bf1eac
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 14:01:56 +0000

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

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                  3909fb4692dfbf7e46c0bcc37b0a3b943a034da9
baseline version:
 xen                  6efc654a0b529a0e4d08e5d6bb5762fee1bf1eac

Last test of basis   184195  2023-12-20 22:00:27 Z    0 days
Testing same since   184203  2023-12-21 11:00:27 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Jan Beulich <jbeulich@suse.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Roger Pau MonnÃ© <roger.pau@citrix.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stewart Hildebrand <stewart.hildebrand@amd.com>
  Volodymyr Babchuk <volodymyr_babchuk@epam.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
   6efc654a0b..3909fb4692  3909fb4692dfbf7e46c0bcc37b0a3b943a034da9 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 14:05:46 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 14:05:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658943.1028354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGJgG-0000EK-2h; Thu, 21 Dec 2023 14:05:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658943.1028354; Thu, 21 Dec 2023 14:05:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGJgF-0000ED-W7; Thu, 21 Dec 2023 14:05:43 +0000
Received: by outflank-mailman (input) for mailman id 658943;
 Thu, 21 Dec 2023 14:05:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8VCQ=IA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rGJgE-0000E7-Oe
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 14:05:43 +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 052168be-a00a-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 15:05:39 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-336746c7b6dso649685f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 06:05:39 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 n14-20020a5d51ce000000b00336765e9babsm2102088wrv.83.2023.12.21.06.05.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 06:05:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 052168be-a00a-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703167539; x=1703772339; 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=ukVgJ6naVUWuV88eywBslckUmXp3pPw9z92pqo+pLxs=;
        b=QhNQepyToPwsRYlCt927VDY4fqeVlImK2I4LdjA5m1ROUQdGncLropOB9KdtNFPm2P
         sAaDJRQL+8wzzxAQmc0nKqYuHCUmtyQbceT1AeY/inmjm00iUOz1ZHRbdzEjplgDPgy6
         kqrfDNVUwK4JjN8aBPQxBtFtQit6AJi/3mZiA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703167539; x=1703772339;
        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=ukVgJ6naVUWuV88eywBslckUmXp3pPw9z92pqo+pLxs=;
        b=UzU0d/R8c3sz0N9l9JZzBxjgP9ucG5JW1ciQCVsOM+83SOADthLg3HETcLRqGT3Y1+
         XpqiuMtJhKXdNAZFEXHcNyvjGMi38yezBuZ71laEUb+YorZtJdj1HftT4e5XICZkj5vX
         iwBn06JZUBoHVSuoWnb1Vo4W/NTXuXqSc35g97nVhK891b7yXqHUJDJFr4PSnLf+Yc40
         3uT+2bDPw1OBpaQs7xreeoTZHNQLggx2t1uXDTn/o0zHtYGrwoWmaGWGBHgnILvyFsB+
         np6u8jZso6I4hPwUcv7wcTYFszQRc9L2ofMKoUwoHHy3m644+Tb9mz66MXP3Q7x7Vo2V
         6nnA==
X-Gm-Message-State: AOJu0YykKyqFEBQo6B/SSOqYN0p7nF9Eo0PCRDtQ+Uhq/7EJ0N8SL6dZ
	YcHmR07o9rq9zRiE0yX0rugqrw==
X-Google-Smtp-Source: AGHT+IHWh6wNE6LdUaRX2ihDa227kVbkr1aGfimkx9mheHb8ahqM8dMqopIUopGHDa6m7z58/rdAkA==
X-Received: by 2002:a5d:4578:0:b0:336:66f5:4096 with SMTP id a24-20020a5d4578000000b0033666f54096mr576310wrc.112.1703167538551;
        Thu, 21 Dec 2023 06:05:38 -0800 (PST)
Date: Thu, 21 Dec 2023 15:05:36 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
	Jun Nakajima <jun.nakajima@intel.com>,
	Kevin Tian <kevin.tian@intel.com>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v11 03/17] vpci: use per-domain PCI lock to protect vpci
 structure
Message-ID: <ZYRGMFKhwurDzHrT@macbook>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-4-volodymyr_babchuk@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231202012556.2012281-4-volodymyr_babchuk@epam.com>

On Sat, Dec 02, 2023 at 01:27:03AM +0000, Volodymyr Babchuk wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Use a previously introduced per-domain read/write lock to check
> whether vpci is present, so we are sure there are no accesses to the
> contents of the vpci struct if not. This lock can be used (and in a
> few cases is used right away) so that vpci removal can be performed
> while holding the lock in write mode. Previously such removal could
> race with vpci_read for example.
> 
> When taking both d->pci_lock and pdev->vpci->lock, they should be
> taken in this exact order: d->pci_lock then pdev->vpci->lock to avoid
> possible deadlock situations.
> 
> 1. Per-domain's pci_rwlock is used to protect pdev->vpci structure
> from being removed.
> 
> 2. Writing the command register and ROM BAR register may trigger
> modify_bars to run, which in turn may access multiple pdevs while
> checking for the existing BAR's overlap. The overlapping check, if
> done under the read lock, requires vpci->lock to be acquired on both
> devices being compared, which may produce a deadlock. It is not
> possible to upgrade read lock to write lock in such a case. So, in
> order to prevent the deadlock, use d->pci_lock instead. To prevent
> deadlock while locking both hwdom->pci_lock and dom_xen->pci_lock,
> always lock hwdom first.

FWIW (I think it was also mentioned in the previous version) for
devices assigned to dom_xen taking the hwdom lock should be enough.
There are no other accesses to such devices that don't originate from
hwdom, and it's not possible to degassing devices from dom_xen.

> 
> All other code, which doesn't lead to pdev->vpci destruction and does
> not access multiple pdevs at the same time, can still use a
> combination of the read lock and pdev->vpci->lock.
> 
> 3. Drop const qualifier where the new rwlock is used and this is
> appropriate.
> 
> 4. Do not call process_pending_softirqs with any locks held. For that
> unlock prior the call and re-acquire the locks after. After
> re-acquiring the lock there is no need to check if pdev->vpci exists:
>  - in apply_map because of the context it is called (no race condition
>    possible)
>  - for MSI/MSI-X debug code because it is called at the end of
>    pdev->vpci access and no further access to pdev->vpci is made
> 
> 5. Use d->pci_lock around for_each_pdev and pci_get_pdev_by_domain
> while accessing pdevs in vpci code.
> 
> 6. We are removing multiple ASSERT(pcidevs_locked()) instances because
> they are too strict now: they should be corrected to
> ASSERT(pcidevs_locked() || rw_is_locked(&d->pci_lock)), but problem is
> that mentioned instances does not have access to the domain
> pointer and it is not feasible to pass a domain pointer to a function
> just for debugging purposes.
> 
> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> ---
> Changes in v11:
>  - Fixed commit message regarding possible spinlocks
>  - Removed parameter from allocate_and_map_msi_pirq(), which was added
>  in the prev version. Now we are taking pcidevs_lock in
>  physdev_map_pirq()
>  - Returned ASSERT to pci_enable_msi
>  - Fixed case when we took read lock instead of write one
>  - Fixed label indentation
> 
> Changes in v10:
>  - Moved printk pas locked area
>  - Returned back ASSERTs
>  - Added new parameter to allocate_and_map_msi_pirq() so it knows if
>  it should take the global pci lock
>  - Added comment about possible improvement in vpci_write
>  - Changed ASSERT(rw_is_locked()) to rw_is_write_locked() in
>    appropriate places
>  - Renamed release_domain_locks() to release_domain_write_locks()
>  - moved domain_done label in vpci_dump_msi() to correct place
> Changes in v9:
>  - extended locked region to protect vpci_remove_device and
>    vpci_add_handlers() calls
>  - vpci_write() takes lock in the write mode to protect
>    potential call to modify_bars()
>  - renamed lock releasing function
>  - removed ASSERT()s from msi code
>  - added trylock in vpci_dump_msi
> 
> Changes in v8:
>  - changed d->vpci_lock to d->pci_lock
>  - introducing d->pci_lock in a separate patch
>  - extended locked region in vpci_process_pending
>  - removed pcidevs_lockis vpci_dump_msi()
>  - removed some changes as they are not needed with
>    the new locking scheme
>  - added handling for hwdom && dom_xen case
> ---
>  xen/arch/x86/hvm/vmsi.c       | 22 +++++++--------
>  xen/arch/x86/hvm/vmx/vmx.c    |  2 --
>  xen/arch/x86/irq.c            |  8 +++---
>  xen/arch/x86/msi.c            | 10 ++-----
>  xen/arch/x86/physdev.c        |  2 ++
>  xen/drivers/passthrough/pci.c |  9 +++---
>  xen/drivers/vpci/header.c     | 18 ++++++++++++
>  xen/drivers/vpci/msi.c        | 28 +++++++++++++++++--
>  xen/drivers/vpci/msix.c       | 52 ++++++++++++++++++++++++++++++-----
>  xen/drivers/vpci/vpci.c       | 50 +++++++++++++++++++++++++++++++--
>  10 files changed, 160 insertions(+), 41 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
> index 128f236362..03caf91bee 100644
> --- a/xen/arch/x86/hvm/vmsi.c
> +++ b/xen/arch/x86/hvm/vmsi.c
> @@ -468,7 +468,7 @@ int msixtbl_pt_register(struct domain *d, struct pirq *pirq, uint64_t gtable)
>      struct msixtbl_entry *entry, *new_entry;
>      int r = -EINVAL;
>  
> -    ASSERT(pcidevs_locked());
> +    ASSERT(pcidevs_locked() || rw_is_locked(&d->pci_lock));
>      ASSERT(rw_is_write_locked(&d->event_lock));
>  
>      if ( !msixtbl_initialised(d) )
> @@ -538,7 +538,7 @@ void msixtbl_pt_unregister(struct domain *d, struct pirq *pirq)
>      struct pci_dev *pdev;
>      struct msixtbl_entry *entry;
>  
> -    ASSERT(pcidevs_locked());
> +    ASSERT(pcidevs_locked() || rw_is_locked(&d->pci_lock));
>      ASSERT(rw_is_write_locked(&d->event_lock));
>  
>      if ( !msixtbl_initialised(d) )
> @@ -684,7 +684,7 @@ static int vpci_msi_update(const struct pci_dev *pdev, uint32_t data,
>  {
>      unsigned int i;
>  
> -    ASSERT(pcidevs_locked());
> +    ASSERT(rw_is_locked(&pdev->domain->pci_lock));
>  
>      if ( (address & MSI_ADDR_BASE_MASK) != MSI_ADDR_HEADER )
>      {
> @@ -725,8 +725,8 @@ void vpci_msi_arch_update(struct vpci_msi *msi, const struct pci_dev *pdev)
>      int rc;
>  
>      ASSERT(msi->arch.pirq != INVALID_PIRQ);
> +    ASSERT(rw_is_locked(&pdev->domain->pci_lock));
>  
> -    pcidevs_lock();
>      for ( i = 0; i < msi->vectors && msi->arch.bound; i++ )
>      {
>          struct xen_domctl_bind_pt_irq unbind = {
> @@ -745,7 +745,6 @@ void vpci_msi_arch_update(struct vpci_msi *msi, const struct pci_dev *pdev)
>  
>      msi->arch.bound = !vpci_msi_update(pdev, msi->data, msi->address,
>                                         msi->vectors, msi->arch.pirq, msi->mask);
> -    pcidevs_unlock();
>  }
>  
>  static int vpci_msi_enable(const struct pci_dev *pdev, unsigned int nr,
> @@ -778,15 +777,14 @@ int vpci_msi_arch_enable(struct vpci_msi *msi, const struct pci_dev *pdev,
>      int rc;
>  
>      ASSERT(msi->arch.pirq == INVALID_PIRQ);
> +    ASSERT(rw_is_locked(&pdev->domain->pci_lock));
>      rc = vpci_msi_enable(pdev, vectors, 0);
>      if ( rc < 0 )
>          return rc;
>      msi->arch.pirq = rc;
>  
> -    pcidevs_lock();
>      msi->arch.bound = !vpci_msi_update(pdev, msi->data, msi->address, vectors,
>                                         msi->arch.pirq, msi->mask);
> -    pcidevs_unlock();
>  
>      return 0;
>  }
> @@ -797,8 +795,8 @@ static void vpci_msi_disable(const struct pci_dev *pdev, int pirq,
>      unsigned int i;
>  
>      ASSERT(pirq != INVALID_PIRQ);
> +    ASSERT(rw_is_locked(&pdev->domain->pci_lock));
>  
> -    pcidevs_lock();
>      for ( i = 0; i < nr && bound; i++ )
>      {
>          struct xen_domctl_bind_pt_irq bind = {
> @@ -814,7 +812,6 @@ static void vpci_msi_disable(const struct pci_dev *pdev, int pirq,
>      write_lock(&pdev->domain->event_lock);
>      unmap_domain_pirq(pdev->domain, pirq);
>      write_unlock(&pdev->domain->event_lock);
> -    pcidevs_unlock();
>  }
>  
>  void vpci_msi_arch_disable(struct vpci_msi *msi, const struct pci_dev *pdev)
> @@ -854,6 +851,7 @@ int vpci_msix_arch_enable_entry(struct vpci_msix_entry *entry,
>      int rc;
>  
>      ASSERT(entry->arch.pirq == INVALID_PIRQ);
> +    ASSERT(rw_is_locked(&pdev->domain->pci_lock));
>      rc = vpci_msi_enable(pdev, vmsix_entry_nr(pdev->vpci->msix, entry),
>                           table_base);
>      if ( rc < 0 )
> @@ -861,7 +859,6 @@ int vpci_msix_arch_enable_entry(struct vpci_msix_entry *entry,
>  
>      entry->arch.pirq = rc;
>  
> -    pcidevs_lock();
>      rc = vpci_msi_update(pdev, entry->data, entry->addr, 1, entry->arch.pirq,
>                           entry->masked);
>      if ( rc )
> @@ -869,7 +866,6 @@ int vpci_msix_arch_enable_entry(struct vpci_msix_entry *entry,
>          vpci_msi_disable(pdev, entry->arch.pirq, 1, false);
>          entry->arch.pirq = INVALID_PIRQ;
>      }
> -    pcidevs_unlock();
>  
>      return rc;
>  }
> @@ -895,6 +891,8 @@ int vpci_msix_arch_print(const struct vpci_msix *msix)
>  {
>      unsigned int i;
>  
> +    ASSERT(rw_is_locked(&msix->pdev->domain->pci_lock));
> +
>      for ( i = 0; i < msix->max_entries; i++ )
>      {
>          const struct vpci_msix_entry *entry = &msix->entries[i];
> @@ -913,7 +911,9 @@ int vpci_msix_arch_print(const struct vpci_msix *msix)
>              struct pci_dev *pdev = msix->pdev;
>  
>              spin_unlock(&msix->pdev->vpci->lock);
> +            read_unlock(&pdev->domain->pci_lock);
>              process_pending_softirqs();
> +            read_lock(&pdev->domain->pci_lock);
>              /* NB: we assume that pdev cannot go away for an alive domain. */
>              if ( !pdev->vpci || !spin_trylock(&pdev->vpci->lock) )
>                  return -EBUSY;
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 5663bc0178..dd836e49f3 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -413,8 +413,6 @@ static int cf_check vmx_pi_update_irte(const struct vcpu *v,
>  
>      spin_unlock_irq(&desc->lock);
>  
> -    ASSERT(pcidevs_locked());

Can't you do?

ASSERT(pcidevs_locked() || rw_is_locked(&msi_desc->dev->domain->pci_lock));

The iommu_update_ire_from_msi() call below does rely on msi_desc->dev
being set, so we can do the same here.

> -
>      return iommu_update_ire_from_msi(msi_desc, &msi_desc->msg);
>  
>   unlock_out:
> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 50e49e1a4b..4d89d9af99 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -2166,7 +2166,7 @@ int map_domain_pirq(
>          struct pci_dev *pdev;
>          unsigned int nr = 0;
>  
> -        ASSERT(pcidevs_locked());
> +        ASSERT(pcidevs_locked() || rw_is_locked(&d->pci_lock));
>  
>          ret = -ENODEV;
>          if ( !cpu_has_apic )
> @@ -2323,7 +2323,7 @@ int unmap_domain_pirq(struct domain *d, int pirq)
>      if ( (pirq < 0) || (pirq >= d->nr_pirqs) )
>          return -EINVAL;
>  
> -    ASSERT(pcidevs_locked());
> +    ASSERT(pcidevs_locked() || rw_is_locked(&d->pci_lock));
>      ASSERT(rw_is_write_locked(&d->event_lock));
>  
>      info = pirq_info(d, pirq);
> @@ -2888,6 +2888,8 @@ int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
>  {
>      int irq, pirq, ret;
>  
> +    ASSERT(pcidevs_locked() || rw_is_locked(&d->pci_lock));
> +
>      switch ( type )
>      {
>      case MAP_PIRQ_TYPE_MSI:
> @@ -2917,7 +2919,6 @@ int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
>  
>      msi->irq = irq;
>  
> -    pcidevs_lock();

Since you remove the locking here, it might be good to replace with an
assert.

>      /* Verify or get pirq. */
>      write_lock(&d->event_lock);
>      pirq = allocate_pirq(d, index, *pirq_p, irq, type, &msi->entry_nr);
> @@ -2933,7 +2934,6 @@ int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
>  
>   done:
>      write_unlock(&d->event_lock);
> -    pcidevs_unlock();
>      if ( ret )
>      {
>          switch ( type )
> diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
> index 335c0868a2..6a548611a5 100644
> --- a/xen/arch/x86/msi.c
> +++ b/xen/arch/x86/msi.c
> @@ -602,7 +602,7 @@ static int msi_capability_init(struct pci_dev *dev,
>      unsigned int i, mpos;
>      uint16_t control;
>  
> -    ASSERT(pcidevs_locked());
> +    ASSERT(pcidevs_locked() || rw_is_locked(&dev->domain->pci_lock));
>      pos = pci_find_cap_offset(dev->sbdf, PCI_CAP_ID_MSI);
>      if ( !pos )
>          return -ENODEV;
> @@ -771,7 +771,7 @@ static int msix_capability_init(struct pci_dev *dev,
>      if ( !pos )
>          return -ENODEV;
>  
> -    ASSERT(pcidevs_locked());
> +    ASSERT(pcidevs_locked() || rw_is_locked(&dev->domain->pci_lock));
>  
>      control = pci_conf_read16(dev->sbdf, msix_control_reg(pos));
>      /*
> @@ -988,8 +988,6 @@ static int __pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
>  {
>      struct msi_desc *old_desc;
>  
> -    ASSERT(pcidevs_locked());
> -
>      if ( !pdev )
>          return -ENODEV;
>  
> @@ -1043,8 +1041,6 @@ static int __pci_enable_msix(struct pci_dev *pdev, struct msi_info *msi,
>  {
>      struct msi_desc *old_desc;
>  
> -    ASSERT(pcidevs_locked());
> -
>      if ( !pdev || !pdev->msix )
>          return -ENODEV;

For both __pci_enable_msi{,x}(), can you move the check after making
sure that pdev != NULL, and then expand the condition to cover
pdev->domain->pci_lock taken?

>  
> @@ -1154,7 +1150,7 @@ int pci_prepare_msix(u16 seg, u8 bus, u8 devfn, bool off)
>  int pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,
>                     struct msi_desc **desc)
>  {
> -    ASSERT(pcidevs_locked());
> +    ASSERT(pcidevs_locked() || rw_is_locked(&pdev->domain->pci_lock));
>  
>      if ( !use_msi )
>          return -EPERM;
> diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
> index 47c4da0af7..369c9e788c 100644
> --- a/xen/arch/x86/physdev.c
> +++ b/xen/arch/x86/physdev.c
> @@ -123,7 +123,9 @@ int physdev_map_pirq(domid_t domid, int type, int *index, int *pirq_p,
>  
>      case MAP_PIRQ_TYPE_MSI:
>      case MAP_PIRQ_TYPE_MULTI_MSI:
> +        pcidevs_lock();
>          ret = allocate_and_map_msi_pirq(d, *index, pirq_p, type, msi);
> +        pcidevs_unlock();
>          break;
>  
>      default:
> diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
> index b8ad4fa07c..182da45acb 100644
> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -750,7 +750,6 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>          pdev->domain = hardware_domain;
>          write_lock(&hardware_domain->pci_lock);
>          list_add(&pdev->domain_list, &hardware_domain->pdev_list);
> -        write_unlock(&hardware_domain->pci_lock);
>  
>          /*
>           * For devices not discovered by Xen during boot, add vPCI handlers
> @@ -759,18 +758,18 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>          ret = vpci_add_handlers(pdev);
>          if ( ret )
>          {
> -            printk(XENLOG_ERR "Setup of vPCI failed: %d\n", ret);
> -            write_lock(&hardware_domain->pci_lock);
>              list_del(&pdev->domain_list);
>              write_unlock(&hardware_domain->pci_lock);
>              pdev->domain = NULL;
> +            printk(XENLOG_ERR "Setup of vPCI failed: %d\n", ret);
>              goto out;
>          }
> +        write_unlock(&hardware_domain->pci_lock);
>          ret = iommu_add_device(pdev);
>          if ( ret )
>          {
> -            vpci_remove_device(pdev);
>              write_lock(&hardware_domain->pci_lock);
> +            vpci_remove_device(pdev);
>              list_del(&pdev->domain_list);
>              write_unlock(&hardware_domain->pci_lock);
>              pdev->domain = NULL;
> @@ -1146,7 +1145,9 @@ static void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom *ctxt,
>      } while ( devfn != pdev->devfn &&
>                PCI_SLOT(devfn) == PCI_SLOT(pdev->devfn) );
>  
> +    write_lock(&ctxt->d->pci_lock);
>      err = vpci_add_handlers(pdev);
> +    write_unlock(&ctxt->d->pci_lock);
>      if ( err )
>          printk(XENLOG_ERR "setup of vPCI for d%d failed: %d\n",
>                 ctxt->d->domain_id, err);
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 767c1ba718..c86d33d0cd 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -172,6 +172,7 @@ bool vpci_process_pending(struct vcpu *v)
>          if ( rc == -ERESTART )
>              return true;
>  
> +        write_lock(&v->domain->pci_lock);
>          spin_lock(&v->vpci.pdev->vpci->lock);
>          /* Disable memory decoding unconditionally on failure. */
>          modify_decoding(v->vpci.pdev,
> @@ -190,6 +191,7 @@ bool vpci_process_pending(struct vcpu *v)
>               * failure.
>               */
>              vpci_remove_device(v->vpci.pdev);
> +        write_unlock(&v->domain->pci_lock);
>      }
>  
>      return false;
> @@ -201,8 +203,20 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
>      struct map_data data = { .d = d, .map = true };
>      int rc;
>  
> +    ASSERT(rw_is_write_locked(&d->pci_lock));
> +
>      while ( (rc = rangeset_consume_ranges(mem, map_range, &data)) == -ERESTART )
> +    {
> +        /*
> +         * It's safe to drop and reacquire the lock in this context
> +         * without risking pdev disappearing because devices cannot be
> +         * removed until the initial domain has been started.
> +         */
> +        write_unlock(&d->pci_lock);
>          process_pending_softirqs();
> +        write_lock(&d->pci_lock);
> +    }
> +
>      rangeset_destroy(mem);
>      if ( !rc )
>          modify_decoding(pdev, cmd, false);
> @@ -243,6 +257,8 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>      unsigned int i;
>      int rc;
>  
> +    ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
> +
>      if ( !mem )
>          return -ENOMEM;
>  
> @@ -522,6 +538,8 @@ static int cf_check init_bars(struct pci_dev *pdev)
>      struct vpci_bar *bars = header->bars;
>      int rc;
>  
> +    ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
> +
>      switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
>      {
>      case PCI_HEADER_TYPE_NORMAL:
> diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
> index a253ccbd7d..6ff71e5f9a 100644
> --- a/xen/drivers/vpci/msi.c
> +++ b/xen/drivers/vpci/msi.c
> @@ -263,7 +263,7 @@ REGISTER_VPCI_INIT(init_msi, VPCI_PRIORITY_LOW);
>  
>  void vpci_dump_msi(void)
>  {
> -    const struct domain *d;
> +    struct domain *d;
>  
>      rcu_read_lock(&domlist_read_lock);
>      for_each_domain ( d )
> @@ -275,6 +275,9 @@ void vpci_dump_msi(void)
>  
>          printk("vPCI MSI/MSI-X d%d\n", d->domain_id);
>  
> +        if ( !read_trylock(&d->pci_lock) )
> +            continue;
> +
>          for_each_pdev ( d, pdev )
>          {
>              const struct vpci_msi *msi;
> @@ -316,14 +319,33 @@ void vpci_dump_msi(void)
>                       * holding the lock.
>                       */
>                      printk("unable to print all MSI-X entries: %d\n", rc);
> -                    process_pending_softirqs();
> -                    continue;
> +                    goto pdev_done;
>                  }
>              }
>  
>              spin_unlock(&pdev->vpci->lock);
> +        pdev_done:
> +            /*
> +             * Unlock lock to process pending softirqs. This is
> +             * potentially unsafe, as d->pdev_list can be changed in
> +             * meantime.
> +             */
> +            read_unlock(&d->pci_lock);
>              process_pending_softirqs();
> +            if ( !read_trylock(&d->pci_lock) )
> +            {
> +                printk("unable to access other devices for the domain\n");
> +                goto domain_done;
> +            }
>          }
> +        read_unlock(&d->pci_lock);
> +    domain_done:
> +        /*
> +         * We need this label at the end of the loop, but some
> +         * compilers might not be happy about label at the end of the
> +         * compound statement so we adding an empty statement here.
> +         */
> +        ;
>      }
>      rcu_read_unlock(&domlist_read_lock);
>  }
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index d1126a417d..b6abab47ef 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -147,6 +147,8 @@ static struct vpci_msix *msix_find(const struct domain *d, unsigned long addr)
>  {
>      struct vpci_msix *msix;
>  
> +    ASSERT(rw_is_locked(&d->pci_lock));
> +
>      list_for_each_entry ( msix, &d->arch.hvm.msix_tables, next )
>      {
>          const struct vpci_bar *bars = msix->pdev->vpci->header.bars;
> @@ -163,7 +165,13 @@ static struct vpci_msix *msix_find(const struct domain *d, unsigned long addr)
>  
>  static int cf_check msix_accept(struct vcpu *v, unsigned long addr)
>  {
> -    return !!msix_find(v->domain, addr);
> +    int rc;
> +
> +    read_lock(&v->domain->pci_lock);
> +    rc = !!msix_find(v->domain, addr);
> +    read_unlock(&v->domain->pci_lock);
> +
> +    return rc;
>  }
>  
>  static bool access_allowed(const struct pci_dev *pdev, unsigned long addr,
> @@ -358,21 +366,35 @@ static int adjacent_read(const struct domain *d, const struct vpci_msix *msix,
>  static int cf_check msix_read(
>      struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
>  {
> -    const struct domain *d = v->domain;
> -    struct vpci_msix *msix = msix_find(d, addr);
> +    struct domain *d = v->domain;
> +    struct vpci_msix *msix;
>      const struct vpci_msix_entry *entry;
>      unsigned int offset;
>  
>      *data = ~0UL;
>  
> +    read_lock(&d->pci_lock);
> +
> +    msix = msix_find(d, addr);
>      if ( !msix )
> +    {
> +        read_unlock(&d->pci_lock);
>          return X86EMUL_RETRY;
> +    }
>  
>      if ( adjacent_handle(msix, addr) )
> -        return adjacent_read(d, msix, addr, len, data);
> +    {
> +        int rc = adjacent_read(d, msix, addr, len, data);
> +
> +        read_unlock(&d->pci_lock);
> +        return rc;
> +    }
>  
>      if ( !access_allowed(msix->pdev, addr, len) )
> +    {
> +        read_unlock(&d->pci_lock);
>          return X86EMUL_OKAY;
> +    }
>  
>      spin_lock(&msix->pdev->vpci->lock);
>      entry = get_entry(msix, addr);
> @@ -404,6 +426,7 @@ static int cf_check msix_read(
>          break;
>      }
>      spin_unlock(&msix->pdev->vpci->lock);
> +    read_unlock(&d->pci_lock);
>  
>      return X86EMUL_OKAY;
>  }
> @@ -491,19 +514,33 @@ static int adjacent_write(const struct domain *d, const struct vpci_msix *msix,
>  static int cf_check msix_write(
>      struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
>  {
> -    const struct domain *d = v->domain;
> -    struct vpci_msix *msix = msix_find(d, addr);
> +    struct domain *d = v->domain;
> +    struct vpci_msix *msix;
>      struct vpci_msix_entry *entry;
>      unsigned int offset;
>  
> +    read_lock(&d->pci_lock);
> +
> +    msix = msix_find(d, addr);
>      if ( !msix )
> +    {
> +        read_unlock(&d->pci_lock);
>          return X86EMUL_RETRY;
> +    }
>  
>      if ( adjacent_handle(msix, addr) )
> -        return adjacent_write(d, msix, addr, len, data);
> +    {
> +        int rc = adjacent_write(d, msix, addr, len, data);
> +
> +        read_unlock(&d->pci_lock);
> +        return rc;
> +    }
>  
>      if ( !access_allowed(msix->pdev, addr, len) )
> +    {
> +        read_unlock(&d->pci_lock);
>          return X86EMUL_OKAY;
> +    }
>  
>      spin_lock(&msix->pdev->vpci->lock);
>      entry = get_entry(msix, addr);
> @@ -579,6 +616,7 @@ static int cf_check msix_write(
>          break;
>      }
>      spin_unlock(&msix->pdev->vpci->lock);
> +    read_unlock(&d->pci_lock);
>  
>      return X86EMUL_OKAY;
>  }
> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
> index 3bec9a4153..0b694beadf 100644
> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -38,6 +38,8 @@ extern vpci_register_init_t *const __end_vpci_array[];
>  
>  void vpci_remove_device(struct pci_dev *pdev)
>  {
> +    ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
> +
>      if ( !has_vpci(pdev->domain) || !pdev->vpci )
>          return;
>  
> @@ -73,6 +75,8 @@ int vpci_add_handlers(struct pci_dev *pdev)
>      const unsigned long *ro_map;
>      int rc = 0;
>  
> +    ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
> +
>      if ( !has_vpci(pdev->domain) )
>          return 0;
>  
> @@ -326,11 +330,12 @@ static uint32_t merge_result(uint32_t data, uint32_t new, unsigned int size,
>  
>  uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
>  {
> -    const struct domain *d = current->domain;
> +    struct domain *d = current->domain;
>      const struct pci_dev *pdev;
>      const struct vpci_register *r;
>      unsigned int data_offset = 0;
>      uint32_t data = ~(uint32_t)0;
> +    rwlock_t *lock;
>  
>      if ( !size )
>      {
> @@ -342,11 +347,21 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
>       * Find the PCI dev matching the address, which for hwdom also requires
>       * consulting DomXEN.  Passthrough everything that's not trapped.
>       */
> +    lock = &d->pci_lock;
> +    read_lock(lock);
>      pdev = pci_get_pdev(d, sbdf);
>      if ( !pdev && is_hardware_domain(d) )
> +    {
> +        read_unlock(lock);
> +        lock = &dom_xen->pci_lock;
> +        read_lock(lock);
>          pdev = pci_get_pdev(dom_xen, sbdf);
> +    }
>      if ( !pdev || !pdev->vpci )
> +    {
> +        read_unlock(lock);
>          return vpci_read_hw(sbdf, reg, size);
> +    }

As said above in the commit message, I'm unsure you really need both
locks, as the devices assigned to dom_xen can only be accessed by the
hardware domain, so considering those protected by the hwdom pci_lock
would be OK IMO.  A comment would need to be added here and in
vpci_write() to that regard.

I also wonder whether you don't nest locks here like you do in
vpci_write().  Maybe I'm missing something that justifies the
asymmetry with the locking pattern used in vpci_write().

>  
>      spin_lock(&pdev->vpci->lock);
>  
> @@ -392,6 +407,7 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
>          ASSERT(data_offset < size);
>      }
>      spin_unlock(&pdev->vpci->lock);
> +    read_unlock(lock);
>  
>      if ( data_offset < size )
>      {
> @@ -431,10 +447,23 @@ static void vpci_write_helper(const struct pci_dev *pdev,
>               r->private);
>  }
>  
> +/* Helper function to unlock locks taken by vpci_write in proper order */
> +static void release_domain_write_locks(struct domain *d)
> +{
> +    ASSERT(rw_is_write_locked(&d->pci_lock));
> +
> +    if ( is_hardware_domain(d) )
> +    {
> +        ASSERT(rw_is_write_locked(&dom_xen->pci_lock));
> +        write_unlock(&dom_xen->pci_lock);
> +    }
> +    write_unlock(&d->pci_lock);
> +}
> +
>  void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
>                  uint32_t data)
>  {
> -    const struct domain *d = current->domain;
> +    struct domain *d = current->domain;
>      const struct pci_dev *pdev;
>      const struct vpci_register *r;
>      unsigned int data_offset = 0;
> @@ -447,8 +476,20 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
>  
>      /*
>       * Find the PCI dev matching the address, which for hwdom also requires
> -     * consulting DomXEN.  Passthrough everything that's not trapped.
> +     * consulting DomXEN. Passthrough everything that's not trapped.
> +     * If this is hwdom, we need to hold locks for both domain in case if
> +     * modify_bars() is called
>       */
> +    /*
> +     * TODO: We need to take pci_locks in exclusive mode only if we
> +     * are modifying BARs, so there is a room for improvement.

Nit: could be joined with the previous comment block.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 14:54:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 14:54:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658981.1028389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGKRq-0001a1-Ao; Thu, 21 Dec 2023 14:54:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658981.1028389; Thu, 21 Dec 2023 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 1rGKRq-0001Zs-8D; Thu, 21 Dec 2023 14:54:54 +0000
Received: by outflank-mailman (input) for mailman id 658981;
 Thu, 21 Dec 2023 14:54:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YhLu=IA=gmail.com=konishi.ryusuke@srs-se1.protection.inumbo.net>)
 id 1rGKRo-0001Yl-BC
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 14:54:52 +0000
Received: from mail-vs1-xe33.google.com (mail-vs1-xe33.google.com
 [2607:f8b0:4864:20::e33])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2a49b59-a010-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 15:54:48 +0100 (CET)
Received: by mail-vs1-xe33.google.com with SMTP id
 ada2fe7eead31-462e70f1c20so193787137.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 06:54:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e2a49b59-a010-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703170487; x=1703775287; 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=pURYtu0NLCnQlpjaLQBb3A9CXAcN65Ivjf7L8viYZIQ=;
        b=M9a1P2PcDWlg0cz4MBH4F8veXXiTczyBJI5GStuSrDK1k+QKKf4a9uIHikAyHe5ICz
         QpIFfKVP5FeD4BhsAUCVjnmU9Em43OGgav6eRvR/lSkdMQPuqYU0sVaj1ZKhteLUfvmi
         PQICm8pBkUM2fj4K78LAC1WjWhjf1Aek1a1MjOWWLmGU3wLZWGCzZkvfYFO6lGjXsuRK
         ckpiNv8sOrHJMGJt+eVOqtVx5J7zojBUI0TyVSJGYm46n3F+FzMLJY+gzLT2JbdokTEA
         w1yJdAZ8jwUE+RJ6mzUgWr0gz7icDCJwicAm8xDldqPuv5Enb86hxci/zjdE1d1B22Ny
         0j6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703170487; x=1703775287;
        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=pURYtu0NLCnQlpjaLQBb3A9CXAcN65Ivjf7L8viYZIQ=;
        b=fBc7uVnL3dE+FJzeoA63eOnzhm7v/7Ijda8z4aatGeGQh/LMzRJFPQiS1Re1P94OvL
         8wGSQxIggFqL7sFkB5LMgUfTlIS1BqDltBn/ppmC2rkOYGDI+a4uiOW6LXk6C4RRJCz6
         ek0BhvNsfV8WFF0Y2KRU0b9iDR2Eot6rhYh0Xq/v0/J5/VJbl4+BoaCo9zVYsDU18SBZ
         946IB3a7WI0R3zs3MEusR6ZgZZL9fOkiLPG11AskQ2emVP0JqoKX6sULBzaqJwEO9teX
         sU58EeUlBczOh5ewhOnKyYQFwFy65WDKmSvUUK6SwnvfeKyv4mSGOSmQ2YeWSgy1+kGC
         RKxg==
X-Gm-Message-State: AOJu0YwmtKLht9YjAL0T2dZf2Ku3dAB3jw+IqZktbYLyef6cx3sJt+Iw
	6b8PwskJoRSIHIGWIKcJuFcYCyLrNiAMI3BAR9g=
X-Google-Smtp-Source: AGHT+IFN1NuYgs8WiPh35+AiECRKwSlqz0ZEDe3FqBLZ5rzeC9cKopqWDVql1xxie4BTiSGNKZ2Qkn8RU8vM8AW8lKI=
X-Received: by 2002:a05:6102:2c19:b0:466:a0dd:4b2 with SMTP id
 ie25-20020a0561022c1900b00466a0dd04b2mr1276429vsb.51.1703170487175; Thu, 21
 Dec 2023 06:54:47 -0800 (PST)
MIME-Version: 1.0
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com> <20231221085839.1768763-1-yukuai1@huaweicloud.com>
In-Reply-To: <20231221085839.1768763-1-yukuai1@huaweicloud.com>
From: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date: Thu, 21 Dec 2023 23:54:30 +0900
Message-ID: <CAKFNMo=TuhzyEs_NEOdYgJz+UVizU6Ojx4ZKXowDaux3kKddUQ@mail.gmail.com>
Subject: Re: [PATCH RFC v3 for-6.8/block 12/17] nilfs2: use bdev api in nilfs_attach_log_writer()
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de, 
	kent.overstreet@gmail.com, joern@lazybastard.org, miquel.raynal@bootlin.com, 
	richard@nod.at, vigneshr@ti.com, sth@linux.ibm.com, hoeppner@linux.ibm.com, 
	hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, 
	jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com, 
	josef@toxicpanda.com, dsterba@suse.com, viro@zeniv.linux.org.uk, 
	brauner@kernel.org, nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, 
	tytso@mit.edu, adilger.kernel@dilger.ca, jack@suse.com, willy@infradead.org, 
	akpm@linux-foundation.org, hare@suse.de, p.raghav@samsung.com, 
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org, 
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org, 
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org, 
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, 
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, 
	linux-nilfs@vger.kernel.org, yukuai3@huawei.com, yi.zhang@huawei.com, 
	yangerkun@huawei.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Dec 21, 2023 at 6:00=E2=80=AFPM Yu Kuai wrote:
>
> From: Yu Kuai <yukuai3@huawei.com>
>
> Avoid to access bd_inode directly, prepare to remove bd_inode from
> block_device.
>
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> ---
>  fs/nilfs2/segment.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
> index 55e31cc903d1..a1130e384937 100644
> --- a/fs/nilfs2/segment.c
> +++ b/fs/nilfs2/segment.c
> @@ -2823,7 +2823,7 @@ int nilfs_attach_log_writer(struct super_block *sb,=
 struct nilfs_root *root)
>         if (!nilfs->ns_writer)
>                 return -ENOMEM;
>
> -       inode_attach_wb(nilfs->ns_bdev->bd_inode, NULL);
> +       bdev_attach_wb(nilfs->ns_bdev);
>
>         err =3D nilfs_segctor_start_thread(nilfs->ns_writer);
>         if (unlikely(err))
> --
> 2.39.2
>

Acked-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>

Thanks,
Ryusuke Konishi


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 14:54:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 14:54:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.658978.1028380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGKRi-0001Jq-3B; Thu, 21 Dec 2023 14:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 658978.1028380; Thu, 21 Dec 2023 14:54:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGKRi-0001Jj-0O; Thu, 21 Dec 2023 14:54:46 +0000
Received: by outflank-mailman (input) for mailman id 658978;
 Thu, 21 Dec 2023 14:54: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 1rGKRg-0001JZ-87; Thu, 21 Dec 2023 14:54: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 1rGKRf-00027u-RB; Thu, 21 Dec 2023 14:54: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 1rGKRf-0004K5-F2; Thu, 21 Dec 2023 14:54:43 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGKRf-0005ey-EY; Thu, 21 Dec 2023 14:54: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=Adx3qOEpW+iWaq2g7n1M9thUH12yxQM23r8BY6U5ay4=; b=KycL8C6Xie4ip7BxzpgDe6GorG
	QfM4bXrGaNH969uOxnnko3hzYs2lmj6KQXkKlAefM3swLR/F04+mTJOxoa2f12/mNivXpBMu8xFJz
	NjTIZm4gTELYsUqEML8XrjkRenZm347X8bLIHetIN4onVY4QeP3mHT+rAflEqMQkHhIk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184197-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184197: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check: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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl-credit2: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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-libvirt: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-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0
X-Osstest-Versions-That:
    xen=725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 14:54:43 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184189
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184189
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184189
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184189
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184189
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184189
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184189
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184189
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184189
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184189
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184189
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184189
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 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-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-xsm      15 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  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-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-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0
baseline version:
 xen                  725acf8e4d406bf0a24441ac1738eb6f4f6ef0c3

Last test of basis   184189  2023-12-20 09:47:47 Z    1 days
Testing same since   184197  2023-12-20 23:39:14 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Federico Serafini <federico.serafini@bugseng.com>
  Jan Beulich <jbeulich@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>
  Simone Ballarin  <simone.ballarin@bugseng.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stefano Stabellini <stefano.stabellini@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   725acf8e4d..e9786ba9ee  e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0 -> master


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 15:12:02 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 15:12:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659001.1028444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGKiK-0005iD-5g; Thu, 21 Dec 2023 15:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659001.1028444; Thu, 21 Dec 2023 15:11:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGKiK-0005i6-2Q; Thu, 21 Dec 2023 15:11:56 +0000
Received: by outflank-mailman (input) for mailman id 659001;
 Thu, 21 Dec 2023 15:11:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ywj9=IA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGKiJ-0005i0-46
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 15:11:55 +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 45a72a1d-a013-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 16:11:53 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-50e44c1b35fso1162463e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 07:11:52 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 s28-20020a056512203c00b0050e2a596c94sm291360lfs.180.2023.12.21.07.11.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 07:11:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45a72a1d-a013-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703171512; x=1703776312; 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=ePvAGndNRX70aKpIqCOCoQ92nNHCkuYMYV94k3Zzw2E=;
        b=btVEplIUWuO2BDg6cwidCR8MpwD9ZGjgrGSTArxzuMbiUaTgPCSEmMUNGOwCsJnwdA
         gYoym/NN8k48Qas/8tZ/tIKDqL7ETCElIF0g0kHAbLdDLXlMCZOYhnrayjHo2g/fzpHT
         /wSHlCiWmOEFlHPQywoP1E+cDqEArx1p8T4nBR2Iuwq58LRj5doLXACiCdDMX6yuFyA0
         TfkHZOgasyPhlov7pf1XGg7J5zvWliogrUSFdIVd5VYYw6NEnoBwJU8OTaM+cDyFGowo
         I7JWoKkGexdbtgJfumpRqRqkL2MeUrhN6v+/kLox8pWVp8WmrBC0xWPIqAzMG28SiIhy
         0aXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703171512; x=1703776312;
        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=ePvAGndNRX70aKpIqCOCoQ92nNHCkuYMYV94k3Zzw2E=;
        b=pehgRhE9OigwyDc7T/7vzkEmQNmFpC7FwNH7IrIeHyhbLnzTFGjaibi3xZrJWKeYHX
         CNn7DjAvwgldeXNXthZBqZTmZjLd0Gq9SkRMPFejGI9N1ocu7N9vqt6mOYUB3jjKUjRQ
         Gs1JICpw8S+qXHB1OF0xKA0vNtulobx/DlnqtW0TJnB/Ql6DHyhneYpnNWbQHHHXD6+U
         B4Stvh6bLrO9Y7cx+SplT0ZujtBupCKMVpLLkkDX+tCoXpK2ZtWQjNi4GKV3ZWyXTVX6
         SyiymReYfqcw8qG2fmRQ1JqOmPVpszLciRyo6UptdO9D2txhHR2xSiIbpuoZ+YsPJCPu
         yv4w==
X-Gm-Message-State: AOJu0YwB8m1+M5EoAYkzPKcXbezvGq/RFVbYhT2kRWqqGIq6X/aCWcQf
	o4jHiQdmXd+MJVevBNFRoRU=
X-Google-Smtp-Source: AGHT+IHzBy47WEnA1/O0q4fnr7lKNMmmDzPjdcwwC32Cq/FGSE4352AOzf6hBd22gH/VPaFp0xANXg==
X-Received: by 2002:a05:6512:1287:b0:50e:5f5e:bd11 with SMTP id u7-20020a056512128700b0050e5f5ebd11mr683453lfs.91.1703171512066;
        Thu, 21 Dec 2023 07:11:52 -0800 (PST)
Message-ID: <19a94165f3184fc325a469f2b8a2c16726c10482.camel@gmail.com>
Subject: Re: [PATCH v2 17/39] xen/riscv: introduce asm/atomic.h
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Bobby Eshleman <bobbyeshleman@gmail.com>, Alistair Francis
 <alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, 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>, 
 xen-devel@lists.xenproject.org
Date: Thu, 21 Dec 2023 17:11:46 +0200
In-Reply-To: <c2f65a29-5e8e-4d18-be26-0d07edcd0bf2@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <e9ead40abe380cf768a2a0150dc4c9e479a75307.1700761381.git.oleksii.kurochko@gmail.com>
	 <c2f65a29-5e8e-4d18-be26-0d07edcd0bf2@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

T24gVGh1LCAyMDIzLTEyLTA3IGF0IDE2OjU3ICswMTAwLCBKYW4gQmV1bGljaCB3cm90ZToKPiBP
biAyNC4xMS4yMDIzIDExOjMwLCBPbGVrc2lpIEt1cm9jaGtvIHdyb3RlOgo+ID4gRnJvbTogQm9i
YnkgRXNobGVtYW4gPGJvYmJ5ZXNobGVtYW5AZ21haWwuY29tPgo+ID4gCj4gPiBTaWduZWQtb2Zm
LWJ5OiBPbGVrc2lpIEt1cm9jaGtvIDxvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbT4KPiA+IC0t
LQo+ID4gQ2hhbmdlcyBpbiBWMjoKPiA+IMKgLSBDaGFuZ2UgYW4gYXV0aG9yIG9mIGNvbW1pdC4g
SSBnb3QgdGhpcyBoZWFkZXIgZnJvbSBCb2JieSdzIG9sZAo+ID4gcmVwby4KPiAKPiBOb3Qgc3Vy
ZSBob3cgdG8gZGVhbCB3aXRoIHRoYXQgd2hlbiB0aGVyZSdzIG5vdCBhbHNvIGFuIFMtby1iLgo+
IAo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrIGIveGVuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20v
YXRvbWljLmgKPiA+IEBAIC0wLDAgKzEsMzc1IEBACj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50
aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KPiA+ICsvKgo+ID4gKyAqIFRha2VuIGFuZCBtb2Rp
ZmllZCBmcm9tIExpbnV4Lgo+ID4gKyAqIAo+ID4gKyAqIENvcHlyaWdodCAoQykgMjAwNyBSZWQg
SGF0LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCj4gPiArICogQ29weXJpZ2h0IChDKSAyMDEy
IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQo+ID4gKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBTaUZpdmUKPiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjEgVmF0ZXMgU0FTCj4g
PiArICovCj4gPiArCj4gPiArI2lmbmRlZiBfQVNNX1JJU0NWX0FUT01JQ19ICj4gPiArI2RlZmlu
ZSBfQVNNX1JJU0NWX0FUT01JQ19ICj4gPiArCj4gPiArI2luY2x1ZGUgPHhlbi9hdG9taWMuaD4K
PiA+ICsjaW5jbHVkZSA8YXNtL2NtcHhjaGcuaD4KPiAKPiBUaGlzIGFuZCAuLi4KPiAKPiA+ICsj
aW5jbHVkZSA8YXNtL2ZlbmNlLmg+Cj4gPiArI2luY2x1ZGUgPGFzbS9pby5oPgo+IAo+IC4uIHRo
aXMgaGVhZGVyIGFyZSBvbmx5IGludHJvZHVjZWQgbGF0ZXIuIEJhZCBvcmRlcmluZyBvZiB0aGUg
c2VyaWVzPwpZZXMsIGJhZCBvcmRlcmluZy4gSSdsbCByZS1vcmRlciB0aGlzIHBhdGNoClRoYW5r
cy4KPiAKPiA+ICsjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgo+ID4gKwo+ID4gK3ZvaWQgX19iYWRf
YXRvbWljX3NpemUodm9pZCk7Cj4gPiArCj4gPiArc3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBy
ZWFkX2F0b21pY19zaXplKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsCj4gPiArwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHZvaWQgKnJlcywKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgdW5zaWduZWQgaW50IHNpemUpCj4gPiArewo+ID4gK8KgwqDCoCBzd2l0Y2ggKCBzaXplICkg
ewo+IAo+IE5pdCAoc3R5bGUpOiBCcmFjZSBvbiBpdHMgb3duIGxpbmUgKGFnYWluIGZ1cnRoZXIg
ZG93bikuCj4gCj4gPiArwqDCoMKgIGNhc2UgMTogKih1aW50OF90ICopcmVzID0gcmVhZGIoKHVp
bnQ4X3QgKilwKTsgYnJlYWs7Cj4gPiArwqDCoMKgIGNhc2UgMjogKih1aW50MTZfdCAqKXJlcyA9
IHJlYWR3KCh1aW50MTZfdCAqKXApOyBicmVhazsKPiA+ICvCoMKgwqAgY2FzZSA0OiAqKHVpbnQz
Ml90ICopcmVzID0gcmVhZGwoKHVpbnQzMl90ICopcCk7IGJyZWFrOwo+ID4gK8KgwqDCoCBjYXNl
IDg6ICoodWludDMyX3QgKilyZXPCoCA9IHJlYWRxKCh1aW50NjRfdCAqKXApOyBicmVhazsKPiAK
PiBQbGVhc2UgZG9uJ3QgY2FzdCBhd2F5IGNvbnN0LW5lc3MuCj4gCj4gPiArwqDCoMKgIGRlZmF1
bHQ6IF9fYmFkX2F0b21pY19zaXplKCk7IGJyZWFrOwo+ID4gK8KgwqDCoCB9Cj4gPiArfQo+ID4g
Kwo+ID4gKyNkZWZpbmUgcmVhZF9hdG9taWMocCkKPiA+ICh7wqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoCB1bmlvbiB7IHR5cGVvZigqcCkgdmFsOyBjaGFy
IGNbMF07IH0KPiA+IHhfO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBcCj4gCj4gSG1tLCB5b3UgYXZvaWQgbGVhZGluZyB1bmRlcnNjb3JlcyBo
ZXJlLCBidXQgdGhlbiAuLi4KPiAKPiA+ICvCoMKgwqAgcmVhZF9hdG9taWNfc2l6ZShwLCB4Xy5j
LAo+ID4gc2l6ZW9mKCpwKSk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPiArwqDCoMKgCj4gPiB4Xy52YWw7wqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gPiBc
Cj4gPiArfSkKPiA+ICsKPiA+ICsKPiA+ICsjZGVmaW5lIHdyaXRlX2F0b21pYyhwLCB4KQo+ID4g
KHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoCB0eXBlb2YoKnApIF9f
eCA9Cj4gPiAoeCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+IAo+IC4u
LiB0aGV5J3JlIHN0aWxsIHRoZXJlIGhlcmUuCkknbGwgcmVuYW1lIF9feCB0byB4X18uIFRoYW5r
cy4KPiAKPiA+ICvCoMKgwqAgc3dpdGNoICggc2l6ZW9mKCpwKSApCj4gPiB7wqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPiArwqDCoMKgIGNhc2UgMTogd3JpdGViKCh1aW50OF90
KV9feCzCoCAodWludDhfdCAqKcKgIHApOwo+ID4gYnJlYWs7wqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgXAo+ID4gK8KgwqDCoCBjYXNlIDI6IHdyaXRldygodWludDE2X3QpX194LCAodWludDE2
X3QgKikgcCk7Cj4gPiBicmVhazvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPiArwqDC
oMKgIGNhc2UgNDogd3JpdGVsKCh1aW50MzJfdClfX3gsICh1aW50MzJfdCAqKSBwKTsKPiA+IGJy
ZWFrO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKgwqAgY2FzZSA4OiB3cml0
ZXEoKHVpbnQ2NF90KV9feCwgKHVpbnQ2NF90ICopIHApOwo+ID4gYnJlYWs7wqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoCBkZWZhdWx0OiBfX2JhZF9hdG9taWNfc2l6ZSgp
Owo+ID4gYnJlYWs7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoAo+ID4gfcKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+
ID4gXAo+ID4gK8KgwqDCoAo+ID4gX194O8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gXAo+ID4gK30pCj4gPiAr
Cj4gPiArLyogVE9ETzogRml4IHRoaXMgKi8KPiA+ICsjZGVmaW5lIGFkZF9zaXplZChwLCB4KQo+
ID4gKHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoCB0eXBl
b2YoKihwKSkgX194ID0KPiA+ICh4KTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwK
PiA+ICvCoMKgwqAgc3dpdGNoICggc2l6ZW9mKCoocCkpCj4gPiApwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBcCj4gPiArwqDCoMKgCj4gPiB7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gPiBc
Cj4gPiArwqDCoMKgIGNhc2UgMTogd3JpdGViKHJlYWRfYXRvbWljKHApICsgX194LCAodWludDhf
dCAqKShwKSk7Cj4gPiBicmVhazvCoMKgwqDCoMKgwqDCoCBcCj4gPiArwqDCoMKgIGNhc2UgMjog
d3JpdGV3KHJlYWRfYXRvbWljKHApICsgX194LCAodWludDE2X3QgKikocCkpOwo+ID4gYnJlYWs7
wqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKgwqAgY2FzZSA0OiB3cml0ZWwocmVhZF9hdG9taWMocCkg
KyBfX3gsICh1aW50MzJfdCAqKShwKSk7Cj4gPiBicmVhazvCoMKgwqDCoMKgwqAgXAo+IAo+IElu
c3RlYWQgb2YgdGhpcywgY29uc2lkZXJpbmcgdGhlIGNvbW1lbnQgcGVyaGFwcyBiZXR0ZXIganVz
dCBCVUcoKT8KSSB0aGluayB0aGlzIFRPRE8gY2FuIGJlIHJlbW92ZWQuIE1hY3JvcyBsb29rcyBm
aW5lIHRvIG1lLgoKPiAKPiA+ICvCoMKgwqAgZGVmYXVsdDogX19iYWRfYXRvbWljX3NpemUoKTsK
PiA+IGJyZWFrO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKgwqAKPiA+IH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiA+
IFwKPiA+ICt9KQo+ID4gKwo+ID4gKy8qCj4gPiArICrCoCBfX3VucXVhbF9zY2FsYXJfdHlwZW9m
KHgpIC0gRGVjbGFyZSBhbiB1bnF1YWxpZmllZCBzY2FsYXIKPiA+IHR5cGUsIGxlYXZpbmcKPiA+
ICsgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbm9uLXNjYWxhciB0eXBlcyB1bmNoYW5n
ZWQuCj4gPiArICoKPiA+ICsgKiBQcmVmZXIgQzExIF9HZW5lcmljIGZvciBiZXR0ZXIgY29tcGls
ZS10aW1lcyBhbmQgc2ltcGxlciBjb2RlLgo+ID4gTm90ZTogJ2NoYXInCj4gPiArICogaXMgbm90
IHR5cGUtY29tcGF0aWJsZSB3aXRoICdzaWduZWQgY2hhcicsIGFuZCB3ZSBkZWZpbmUgYQo+ID4g
c2VwYXJhdGUgY2FzZS4KPiA+ICsgKi8KPiA+ICsjZGVmaW5lIF9fc2NhbGFyX3R5cGVfdG9fZXhw
cl9jYXNlcyh0eXBlKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoCB1
bnNpZ25lZCB0eXBlOsKgICh1bnNpZ25lZCB0eXBlKTAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKgwqAgc2lnbmVkIHR5cGU6wqDCoMKgIChzaWduZWQgdHlw
ZSkwCj4gPiArCj4gPiArI2RlZmluZSBfX3VucXVhbF9zY2FsYXJfdHlwZW9mKHgpIHR5cGVvZijC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKgwqAgX0dlbmVyaWMoKHgpLMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgXAo+IAo+IEkgdGhpbmsgeW91IHN0aWxsIG93ZSB1cyBhbiB1cGRh
dGUgdG8gLi9SRUFETUUsIGNsYXJpZnlpbmcgd2hhdAo+IGNvbXBpbGVyIHZlcnNpb25zCj4gbWF5
IGJlIHVzZWQgZm9yIGJ1aWxkaW5nIFJJU0MtVi4gVW5sZXNzIG9mIGNvdXJzZSBhbGwgdGhhdCBl
eGlzdAo+IHN1cHBvcnQgX0dlbmVyaWMKPiAod2hpY2ggdGhlbiB3b3VsZCBiZSBuaWNlIHRvIHNh
eSBpbiB0aGUgZGVzY3JpcHRpb24pLgpJJ2xsIHByb3ZpZGUgYSBzZXBhcmF0ZSBwYXRjaC4KCj4g
Cj4gPiArwqDCoMKgwqDCoMKgwqAgY2hhcjrCoCAoY2hhcikwLMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDC
oMKgwqDCoMKgIF9fc2NhbGFyX3R5cGVfdG9fZXhwcl9jYXNlcyhjaGFyKSzCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBcCj4gPiArwqDCoMKgwqDCoMKgwqAgX19zY2FsYXJfdHlwZV90b19leHBy
X2Nhc2VzKHNob3J0KSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4gK8KgwqDCoMKgwqDC
oMKgIF9fc2NhbGFyX3R5cGVfdG9fZXhwcl9jYXNlcyhpbnQpLMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgXAo+ID4gK8KgwqDCoMKgwqDCoMKgIF9fc2NhbGFyX3R5cGVfdG9fZXhwcl9jYXNl
cyhsb25nKSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPiArwqDCoMKgwqDCoMKgwqAg
X19zY2FsYXJfdHlwZV90b19leHByX2Nhc2VzKGxvbmcgbG9uZykswqDCoMKgwqDCoMKgwqDCoCBc
Cj4gPiArwqDCoMKgwqDCoMKgwqAgZGVmYXVsdDogKHgpKSkKPiA+ICsKPiA+ICsjZGVmaW5lIFJF
QURfT05DRSh4KcKgICgqKGNvbnN0IHZvbGF0aWxlIF9fdW5xdWFsX3NjYWxhcl90eXBlb2YoeCkK
PiA+ICopJih4KSkKPiA+ICsjZGVmaW5lIFdSSVRFX09OQ0UoeCwgdmFsKcKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIFwKPiA+ICvCoMKgwqAgZG8ge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICoodm9sYXRp
bGUgdHlwZW9mKHgpICopJih4KSA9ICh2YWwpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBcCj4gCj4gTml0IChzdHlsZSk6IFRvbyBkZWVwIGluZGVudGF0aW9uLgo+IAo+ID4gK8KgwqDC
oCB9IHdoaWxlICgwKQo+ID4gKwo+ID4gKyNkZWZpbmUKPiA+IF9fYXRvbWljX2FjcXVpcmVfZmVu
Y2UoKQkJCQkJXAo+ID4gKwlfX2FzbV9fIF9fdm9sYXRpbGVfXyhSSVNDVl9BQ1FVSVJFX0JBUlJJ
RVIgIiIgOjo6Cj4gPiAibWVtb3J5IikKPiAKPiBTdWRkZW5seSB1c2luZyB0YWIgaW5kZW50YXRp
b24gaGVyZSBhbmQgYmVsb3c/IEFuZCBtaXNzaW5nIGJsYW5rcwo+IGFnYWluLgpUaGFua3MuIEkn
bGwgZml4ICB0aGF0Lgo+IAo+IEphbgoK



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 15:21:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 15:21:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659007.1028453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGKrw-000862-4w; Thu, 21 Dec 2023 15:21:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659007.1028453; Thu, 21 Dec 2023 15:21:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGKrw-00085v-2F; Thu, 21 Dec 2023 15:21:52 +0000
Received: by outflank-mailman (input) for mailman id 659007;
 Thu, 21 Dec 2023 15:21: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=8VCQ=IA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rGKrv-00085W-1d
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 15:21:51 +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 a985e5d3-a014-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 16:21:50 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-336897b6bd6so670631f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 07:21:50 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 a6-20020adfed06000000b003366796301csm2282688wro.0.2023.12.21.07.21.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 07:21:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a985e5d3-a014-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703172109; x=1703776909; 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=bFaLHerMsFqZxgpW5IR27o/90X+9yMkkmxl02ZeiSuc=;
        b=UMNcsULApmh1psY7hmtEYP/4ALoO/4N/VsCJMz73tT8z/j4AMEc9zPS7GZWGKjyuw4
         1JiXVcr+x/1CLUZc1oykcSDu6QUvbRwGzgEzsFOkh1/crA+dReJ90TL6/5kjX52COa1h
         AwEyDsRf/STrG9PUY3af95jMhPESTYkW472Eg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703172109; x=1703776909;
        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=bFaLHerMsFqZxgpW5IR27o/90X+9yMkkmxl02ZeiSuc=;
        b=QmOTw8XJ4ABASxNO6qZaljLuB+g1NkLQrCMBhWUwm72V7SIblc+mNRabjS2CFowLCi
         tOIIja8JOA33MJCYh0j7tQaGv8UOBLOKjP/zdVYHco9j3lU2OhMNNt6cloLQrTLv2ezb
         45VardA7MAUWALBUcmMgkB/wXIcBubLmnDU8T9kpGztemyYXRFUfEtA1RQP2zRyZaurD
         0Oo05fU1wqsuDoYvoROZjdekXrCBVZ9jBq3QbX0WJwRVrE1tjRJ5F/mRGd5nQ3589pc9
         WUSsMa5m7sU6igJ/sBhsiVRoyLrUJA2jlJQL/n4yoH1wyx97PWSaqeMB3ubI6/znYxZj
         020Q==
X-Gm-Message-State: AOJu0YyAAB/LAyf6C374LulHt5taCBKmG16zwa6WODSAeTA0tgXkNUQN
	56GAdzxyDnA7dhoDzbqw5LjvPg==
X-Google-Smtp-Source: AGHT+IHKXeldBL0kioy7CSRVxik8PKAL0XLIf+TXHKthxaDTH8/cPTmeSm4xRO4zGFqR5/DBuxUHaA==
X-Received: by 2002:a5d:550c:0:b0:333:f04:f2d7 with SMTP id b12-20020a5d550c000000b003330f04f2d7mr763201wrv.55.1703172109505;
        Thu, 21 Dec 2023 07:21:49 -0800 (PST)
Date: Thu, 21 Dec 2023 16:21:48 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
	Jan Beulich <jbeulich@suse.com>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH v11 05/17] vpci: add hooks for PCI device assign/de-assign
Message-ID: <ZYRYDO2MPOIfx64b@macbook>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-6-volodymyr_babchuk@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231202012556.2012281-6-volodymyr_babchuk@epam.com>

On Sat, Dec 02, 2023 at 01:27:03AM +0000, Volodymyr Babchuk wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> When a PCI device gets assigned/de-assigned we need to
> initialize/de-initialize vPCI state for the device.
> 
> Also, rename vpci_add_handlers() to vpci_assign_device() and
> vpci_remove_device() to vpci_deassign_device() to better reflect role
> of the functions.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

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

> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index d743d96a10..75cfb532ee 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -25,11 +25,11 @@ typedef int vpci_register_init_t(struct pci_dev *dev);
>    static vpci_register_init_t *const x##_entry  \
>                 __used_section(".data.vpci." p) = x
>  
> -/* Add vPCI handlers to device. */
> -int __must_check vpci_add_handlers(struct pci_dev *pdev);
> +/* Assign vPCI to device by adding handlers to device. */

Nit: the comment would likely benefit from removing the last device
before the full stop.

> +int __must_check vpci_assign_device(struct pci_dev *pdev);

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 15:22:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 15:22:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659009.1028464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGKsX-00009i-Dj; Thu, 21 Dec 2023 15:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659009.1028464; Thu, 21 Dec 2023 15: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 1rGKsX-00009b-AR; Thu, 21 Dec 2023 15:22:29 +0000
Received: by outflank-mailman (input) for mailman id 659009;
 Thu, 21 Dec 2023 15:22:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vttA=IA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGKsV-00009O-QN
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 15:22:27 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be9c4389-a014-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 16:22:25 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40d31116dbeso10320315e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 07:22:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 x17-20020a5d4451000000b0033651e6a74dsm2222293wrr.27.2023.12.21.07.22.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 07:22:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be9c4389-a014-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703172145; x=1703776945; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HAphuRwLurYFBjXpaM6RIqzTzL8xPWiQTrSb6wYU7MA=;
        b=ZnuLb4Gu4s/mbJs7q69pW1D1SdnU8tU540JRjkRddQ3XXnzuR27kCe75guZF3s+CKS
         u00niAvoRWREqKCQ9x1S2/3VC40g++vTxQWsAM9dGwBqwLPq3lwoGuWMaxl6b+JhxI+e
         37Ln+e5dWCRoS2TbvOmOkOwlteUHB2B4cCFdkDBPbsdJJiceGwrztzTqzsUcGA7bygf4
         S0NDgzXSeMUPp3bllmWGZJSzSEv93ltH8OGdmNcMkMyj/EvoW7KI3e8Dfu4+ALTYFYCi
         d8gCX3u4a/nvOErmic30yCGwQ7i94D8qf+pd7zLpVpABMaAokgUEW+uF2JayLJ0ADXuC
         g7Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703172145; x=1703776945;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=HAphuRwLurYFBjXpaM6RIqzTzL8xPWiQTrSb6wYU7MA=;
        b=gB3VF4TARDmU+spkEctUqp9Z66ZBHZkbh/zzlPPK9IpRXHtsKZWNspUgwQLjVUR04O
         X3dkdeq97jBwLsrYiKyp91Q7bnRkWoFmV5nu2rq3Jr44JnBkESyYa7O7LvFQy1FsVgdn
         /EaYAfD/nNr0IKyyZks7myEM3xYXG+C8TXi77t07jReq/rmUTwhnbS/49xWAVQahyRkF
         HabNdELLBez9Mjdj+DEI5Sl8MyLhBCjUrFfLD7Isl2609VZiLTrVcSitx15J6rt7o+6r
         lcJTAJg32Z06Y3pfREXloPcHEdrJ2IZUqJ4yYFfbJQeyeRz9y/lbqwhHIlC0GhxXXJ+g
         Tahg==
X-Gm-Message-State: AOJu0YyF+QbPGCvx826CAu2mEOd/kBkmfX27wTx8kPLKk0AgM5rWb5lK
	XOud4PwkwsHbpIUPyvbMCclu
X-Google-Smtp-Source: AGHT+IEnyMvuRC7W4Ld3kCKK7HXOrXbrhziNvnHUcJ7QXKN86LlALEhlTQFdbv0SKrqvyqw5diXw7Q==
X-Received: by 2002:a05:600c:338a:b0:40c:2b2b:6429 with SMTP id o10-20020a05600c338a00b0040c2b2b6429mr875743wmp.67.1703172144887;
        Thu, 21 Dec 2023 07:22:24 -0800 (PST)
Message-ID: <e2d16343-2293-4640-8deb-f30da599ae7d@suse.com>
Date: Thu, 21 Dec 2023 16:22:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, =?UTF-8?Q?S=C3=A9bastien_Chaumat?=
 <euidzero@gmail.com>
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
 <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com>
 <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
 <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com>
 <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.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: <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.12.2023 14:29, Juergen Gross wrote:
> On 21.12.23 13:40, Jan Beulich wrote:
>> On 20.12.2023 17:34, SÃ©bastien Chaumat wrote:
>>> Here are the patches I made to xen and linux kernel
>>> Plus dmesg (bare metal,xen) and "xl dmesg"
>>
>> So the problem looks to be that pci_xen_initial_domain() results in
>> permanent setup of IRQ7, when there only "static" ACPI tables (in
>> particular source overrides in MADT) are consulted. The necessary
>> settings, however, are known only after _CRS for the device was
>> evaluated (and possibly _PRS followed by invocation of _SRS). All of
>> this happens before xen_register_gsi() is called. But that function's
>> call to xen_register_pirq() is short-circuited by the very first if()
>> in xen_register_pirq() when there was an earlier invocation. Hence
>> the (wrong) "edge" binding remains in place, as was established by
>> the earlier call here.
>>
>> JÃ¼rgen, there's an interesting comment in xen_bind_pirq_gsi_to_irq(),
>> right before invoking irq_set_chip_and_handler_name(). Despite what
>> the comment says (according to my reading), the fasteoi one is _not_
>> used in all cases. Assuming there's a reason for this, it's not clear
>> to me whether updating the handler later on is a valid thing to do.
>> __irq_set_handler() being even an exported symbol suggests that might
>> be an option to use here. Then again merely updating the handler may
>> not be sufficient, seeing there are also e.g. IRQD_TRIGGER_MASK and
>> IRQD_LEVEL.
> 
> I understand the last paragraph of that comment to reason, that in case
> pirq_needs_eoi() return true even in case of an edge triggered interrupt,
> the outcome is still okay.
> 
> I don't think updating the handler later is valid.

In which case fixing this is going to be interesting.

>> JÃ¼rgen, looking at pci_xen_initial_domain(), what's the purpose of
>> the loop in the final if()? Can this ever do anything useful when
>> the earlier comment suggests nr_legacy_irqs() is zero anyway? Or is
>> the comment simply inaccurate in not covering the "no IO-APICs" case?
> 
> No, I think the final loop would only do something in case probe_8259A()
> is detecting a working PIC (which should not be the case IMHO). Could it
> be that there have been Xen versions emulating a PIC?

Not as far back as I can recall (for PV Dom0). Even in 3.2 Dom0 was
already denied access to the respective I/O ports. And iirc upstream
Linux wants at least 4.0?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 15:24:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 15:24:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659014.1028474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGKu0-00017a-Po; Thu, 21 Dec 2023 15:24:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659014.1028474; Thu, 21 Dec 2023 15: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 1rGKu0-00017T-Ly; Thu, 21 Dec 2023 15:24:00 +0000
Received: by outflank-mailman (input) for mailman id 659014;
 Thu, 21 Dec 2023 15: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=yxSo=IA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1rGKty-00017L-MG
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 15:23:58 +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 f5b64c98-a014-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 16:23:57 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-40b5155e154so11255075e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 07:23:57 -0800 (PST)
Received: from [10.80.67.30] (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194]) by smtp.gmail.com with ESMTPSA id
 he3-20020a05600c540300b00405d9a950a2sm11195218wmb.28.2023.12.21.07.23.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Dec 2023 07:23:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5b64c98-a014-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703172237; x=1703777037; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=UkzTijXUz9LW9EMoW3dnivahPEjfJK4SObAMgMIHR/M=;
        b=thm9ivquQ3kH1B84xuEiO2s80dl8YmW3Q6Z9NYXibGq8/+VKnKKYuoSLyBStrlOEJN
         lObPYpvDNBSITlQ0Uix62rOfMXthT3k6dGzj39Y0sFhoejoWJh7m3tIuU70meT3hPPvq
         FxOARJQU8/XwFMyEqzCdSoHLiKmT2cOe1Zsb4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703172237; x=1703777037;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=UkzTijXUz9LW9EMoW3dnivahPEjfJK4SObAMgMIHR/M=;
        b=upBmFQPBFMvDXlMU7FHjZlCZDPYIHp3JutV8KAoaH+T7HjYb1DndLFluJU5QGCY8z5
         7XaOiFBhM/yOPJV6JTplT0kyb3RNFIFSNgXVpjt/mDoxYkYXMozOvJINMxJcpIjoVlRE
         lgXbRO+U11WLWHPh1kGye0KUWB6BHmL32ySDKSKTY0b4XyMy/azWUC9IG5Ki6JrHfhvH
         uLrYqH5oAZrMWSwNMNdzTtqQGO/wu861EpcLlbWcKfOV+h54NKk9EIyZkt0BjCPr2pvb
         3ybKNIE3xo7CTrSd5PZfMolg3x4mNQYgVrcnqRKGvwel2rPV7mXjAklXPSaHPq4GDMaT
         ULqA==
X-Gm-Message-State: AOJu0Yy4PoSy59JY1x+Iy5bb2w867w8/PNqBEVsfulXmXUxki7/pGAsO
	47wjTF8X/99Dd0GLBUZi02codg==
X-Google-Smtp-Source: AGHT+IE3n9N62C42RZOPMEZLjQmRYmmvG7SIKBFbo5glck4P/Z/MzNLejoaSxIOBo+5eLXJkmpkDQg==
X-Received: by 2002:a05:600c:c8d:b0:40d:3a97:df2d with SMTP id fj13-20020a05600c0c8d00b0040d3a97df2dmr848321wmb.44.1703172237359;
        Thu, 21 Dec 2023 07:23:57 -0800 (PST)
Message-ID: <3df1dad8-3476-458f-9022-160e0af57d39@citrix.com>
Date: Thu, 21 Dec 2023 15:23:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 29/39] xen/riscv: add definition of __read_mostly
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>, George Dunlap <george.dunlap@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Wei Liu <wl@xen.org>, xen-devel@lists.xenproject.org,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <7fec1c9f906ee120ebae606de59f9f70efb79aff.1700761381.git.oleksii.kurochko@gmail.com>
 <95542550-5f95-4231-8210-79dc2419ce61@suse.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 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
 6+ahAA==
In-Reply-To: <95542550-5f95-4231-8210-79dc2419ce61@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/12/2023 5:04 pm, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>> The definition of __read_mostly should be removed in:
>> https://lore.kernel.org/xen-devel/f25eb5c9-7c14-6e23-8535-2c66772b333e@suse.com/
> Andrew, can we settle on what to do with that patch? If you don't like me
> putting __read_mostly in xen/cache.h (consistent with __ro_after_init),
> would you please make an alternative suggestion?

xen/linkage.h?Â  xen/sections.h?

Sorry - I didn't mean to block it specifically, but I do think
xen/cache.h is the wrong place for both to live and that it's a small
enough change to warrant sorting out nicely once and for all.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 15:43:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 15:43:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659023.1028484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGLD7-00054w-BH; Thu, 21 Dec 2023 15:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659023.1028484; Thu, 21 Dec 2023 15: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 1rGLD7-00054p-7K; Thu, 21 Dec 2023 15:43:45 +0000
Received: by outflank-mailman (input) for mailman id 659023;
 Thu, 21 Dec 2023 15: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=8VCQ=IA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rGLD5-00053V-JY
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 15:43:43 +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 b6fbc7ba-a017-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 16:43:41 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40c3ceded81so9573655e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 07:43:41 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 n42-20020a05600c502a00b0040b3d8907fesm3753889wmr.29.2023.12.21.07.43.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 07:43:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6fbc7ba-a017-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703173420; x=1703778220; 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=RXlQF84QXS6cjJLFyjIJx+Sr3p4N4XR1RbdfG6mL2mU=;
        b=gS/qMba8xge2Jfx8b5ZDV3fan2WjZUaj4/y2OttQ/Txfp7plz0Eaf76eKb1Hx+hvrH
         e8SwDw9sOTFl97MUERSirWLXfIq2YPPPpQvGzP6ezL4VKoSH/HqSA5OHmZ1DU6JqpppW
         eEi20QuXIJxfgVeHkyxr5ItaBsO69itWmtUWc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703173420; x=1703778220;
        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=RXlQF84QXS6cjJLFyjIJx+Sr3p4N4XR1RbdfG6mL2mU=;
        b=QxI/j5acZkZEeCf5cC1yWTiUz1h8T53QgKf2MxgTRHLaC9/bM7AIOFLmldmfXf4XIv
         DIJAqMq++nnmSG4+6LfjS7CEUh/zVg7+wy7iEdulh5rnRmj1fyLzp5C/bPZVYoSUc6Ia
         0QaSdDI6s/Fswn59VSX8qhu9jG9Pw4UwzHY/6KgKQvr0jZj14Lge3NsMF/m6kyqXDZgN
         yl2GGat74eSHUv43ORIvFAiA0iCpE3P3NqsvNTkqJTVEAE1+A7gXkeYewO8b/tS4dT0N
         UgJ98wBHwARwPyLPGuRvmLoSWdz0NUG3+QCADlYcVAJ+0YrmQxAtIv5m6BIgub6XTvEo
         DWOg==
X-Gm-Message-State: AOJu0YxQCylckfnCLzc05lptJNEA0PI0pWPhg6XGQlgES0jvvxn0Va5E
	5ht9YlL+ZafafBDXZL+wMots4w==
X-Google-Smtp-Source: AGHT+IEZfzLD0ATVWJt3bi67fJHTfYo5MD7AI9MmMiTdqU9EzEhVKZKTHTZ5lmJBeAYT+8+hOZnYgA==
X-Received: by 2002:a05:600c:601d:b0:40c:343b:fead with SMTP id az29-20020a05600c601d00b0040c343bfeadmr753583wmb.79.1703173420501;
        Thu, 21 Dec 2023 07:43:40 -0800 (PST)
Date: Thu, 21 Dec 2023 16:43:39 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v11 07/17] vpci/header: implement guest BAR register
 handlers
Message-ID: <ZYRdKyxo6kfkijOF@macbook>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-8-volodymyr_babchuk@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231202012556.2012281-8-volodymyr_babchuk@epam.com>

On Sat, Dec 02, 2023 at 01:27:04AM +0000, Volodymyr Babchuk wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Add relevant vpci register handlers when assigning PCI device to a domain
> and remove those when de-assigning. This allows having different
> handlers for different domains, e.g. hwdom and other guests.
> 
> Emulate guest BAR register values: this allows creating a guest view
> of the registers and emulates size and properties probe as it is done
> during PCI device enumeration by the guest.
> 
> All empty, IO and ROM BARs for guests are emulated by returning 0 on
> reads and ignoring writes: this BARs are special with this respect as
> their lower bits have special meaning, so returning default ~0 on read
> may confuse guest OS.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

Just a couple of nits.

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

> ---
> In v11:
> - Access guest_addr after adjusting for MEM64_HI bar in
> guest_bar_write()
> - guest bar handlers renamed and now  _mem_ part to denote
> that they are handling only memory BARs
> - refuse to update guest BAR address if BAR is enabled
> In v10:
> - ull -> ULL to be MISRA-compatbile
> - Use PAGE_OFFSET() instead of combining with ~PAGE_MASK
> - Set type of empty bars to VPCI_BAR_EMPTY
> In v9:
> - factored-out "fail" label introduction in init_bars()
> - replaced #ifdef CONFIG_X86 with IS_ENABLED()
> - do not pass bars[i] to empty_bar_read() handler
> - store guest's BAR address instead of guests BAR register view
> Since v6:
> - unify the writing of the PCI_COMMAND register on the
>   error path into a label
> - do not introduce bar_ignore_access helper and open code
> - s/guest_bar_ignore_read/empty_bar_read
> - update error message in guest_bar_write
> - only setup empty_bar_read for IO if !x86
> Since v5:
> - make sure that the guest set address has the same page offset
>   as the physical address on the host
> - remove guest_rom_{read|write} as those just implement the default
>   behaviour of the registers not being handled
> - adjusted comment for struct vpci.addr field
> - add guest handlers for BARs which are not handled and will otherwise
>   return ~0 on read and ignore writes. The BARs are special with this
>   respect as their lower bits have special meaning, so returning ~0
>   doesn't seem to be right
> Since v4:
> - updated commit message
> - s/guest_addr/guest_reg
> Since v3:
> - squashed two patches: dynamic add/remove handlers and guest BAR
>   handler implementation
> - fix guest BAR read of the high part of a 64bit BAR (Roger)
> - add error handling to vpci_assign_device
> - s/dom%pd/%pd
> - blank line before return
> Since v2:
> - remove unneeded ifdefs for CONFIG_HAS_VPCI_GUEST_SUPPORT as more code
>   has been eliminated from being built on x86
> Since v1:
>  - constify struct pci_dev where possible
>  - do not open code is_system_domain()
>  - simplify some code3. simplify
>  - use gdprintk + error code instead of gprintk
>  - gate vpci_bar_{add|remove}_handlers with CONFIG_HAS_VPCI_GUEST_SUPPORT,
>    so these do not get compiled for x86
>  - removed unneeded is_system_domain check
>  - re-work guest read/write to be much simpler and do more work on write
>    than read which is expected to be called more frequently
>  - removed one too obvious comment
> ---
>  xen/drivers/vpci/header.c | 135 +++++++++++++++++++++++++++++++++-----
>  xen/include/xen/vpci.h    |   3 +
>  2 files changed, 122 insertions(+), 16 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index e6a1d58c42..43216429d9 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -477,6 +477,75 @@ static void cf_check bar_write(
>      pci_conf_write32(pdev->sbdf, reg, val);
>  }
>  
> +static void cf_check guest_mem_bar_write(const struct pci_dev *pdev,
> +                                         unsigned int reg, uint32_t val,
> +                                         void *data)
> +{
> +    struct vpci_bar *bar = data;
> +    bool hi = false;
> +    uint64_t guest_addr;
> +
> +    if ( bar->type == VPCI_BAR_MEM64_HI )
> +    {
> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
> +        bar--;
> +        hi = true;
> +    }
> +    else
> +    {
> +        val &= PCI_BASE_ADDRESS_MEM_MASK;
> +    }
> +
> +    guest_addr = bar->guest_addr;
> +    guest_addr &= ~(0xffffffffULL << (hi ? 32 : 0));
> +    guest_addr |= (uint64_t)val << (hi ? 32 : 0);
> +
> +    /* Allow guest to size BAR correctly */
> +    guest_addr &= ~(bar->size - 1);
> +
> +    /*
> +     * Xen only cares whether the BAR is mapped into the p2m, so allow BAR
> +     * writes as long as the BAR is not mapped into the p2m.
> +     */
> +    if ( bar->enabled )
> +    {
> +        /* If the value written is the current one avoid printing a warning. */
> +        if ( guest_addr != bar->guest_addr )
> +            gprintk(XENLOG_WARNING,
> +                    "%pp: ignored guest BAR %zu write while mapped\n",
> +                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
> +        return;
> +    }
> +    bar->guest_addr = guest_addr;
> +}
> +
> +static uint32_t cf_check guest_mem_bar_read(const struct pci_dev *pdev,
> +                                            unsigned int reg, void *data)
> +{
> +    const struct vpci_bar *bar = data;
> +    uint32_t reg_val;
> +
> +    if ( bar->type == VPCI_BAR_MEM64_HI )
> +    {
> +        ASSERT(reg > PCI_BASE_ADDRESS_0);
> +        bar--;
> +        return bar->guest_addr >> 32;
> +    }
> +
> +    reg_val = bar->guest_addr;
> +    reg_val |= bar->type == VPCI_BAR_MEM32 ? PCI_BASE_ADDRESS_MEM_TYPE_32 :
> +                                             PCI_BASE_ADDRESS_MEM_TYPE_64;
> +    reg_val |= bar->prefetchable ? PCI_BASE_ADDRESS_MEM_PREFETCH : 0;
> +
> +    return reg_val;
> +}
> +
> +static uint32_t cf_check empty_bar_read(const struct pci_dev *pdev,
> +                                        unsigned int reg, void *data)
> +{
> +    return 0;
> +}
> +
>  static void cf_check rom_write(
>      const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
>  {
> @@ -537,6 +606,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
>      struct vpci_header *header = &pdev->vpci->header;
>      struct vpci_bar *bars = header->bars;
>      int rc;
> +    bool is_hwdom = is_hardware_domain(pdev->domain);
>  
>      ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
>  
> @@ -578,8 +648,11 @@ static int cf_check init_bars(struct pci_dev *pdev)
>          if ( i && bars[i - 1].type == VPCI_BAR_MEM64_LO )
>          {
>              bars[i].type = VPCI_BAR_MEM64_HI;
> -            rc = vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write, reg,
> -                                   4, &bars[i]);
> +            rc = vpci_add_register(pdev->vpci,
> +                                   is_hwdom ? vpci_hw_read32 :
> +                                                        guest_mem_bar_read,

Nit: I would usually indent this as:

is_hwdom ? vpci_hw_read32
         : guest_mem_bar_read,

> +                                   is_hwdom ? bar_write : guest_mem_bar_write,
> +                                   reg, 4, &bars[i]);
>              if ( rc )
>                  goto fail;
>  
> @@ -590,6 +663,14 @@ static int cf_check init_bars(struct pci_dev *pdev)
>          if ( (val & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO )
>          {
>              bars[i].type = VPCI_BAR_IO;
> +            if ( !IS_ENABLED(CONFIG_X86) && !is_hwdom )
> +            {
> +                rc = vpci_add_register(pdev->vpci, empty_bar_read, NULL,
> +                                       reg, 4, NULL);
> +                if ( rc )
> +                    goto fail;
> +            }
> +
>              continue;
>          }
>          if ( (val & PCI_BASE_ADDRESS_MEM_TYPE_MASK) ==
> @@ -606,6 +687,15 @@ static int cf_check init_bars(struct pci_dev *pdev)
>          if ( size == 0 )
>          {
>              bars[i].type = VPCI_BAR_EMPTY;
> +
> +            if ( !is_hwdom )
> +            {
> +                rc = vpci_add_register(pdev->vpci, empty_bar_read, NULL,
> +                                       reg, 4, NULL);
> +                if ( rc )
> +                    goto fail;
> +            }
> +
>              continue;
>          }
>  
> @@ -613,28 +703,41 @@ static int cf_check init_bars(struct pci_dev *pdev)
>          bars[i].size = size;
>          bars[i].prefetchable = val & PCI_BASE_ADDRESS_MEM_PREFETCH;
>  
> -        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, bar_write, reg, 4,
> -                               &bars[i]);
> +        rc = vpci_add_register(pdev->vpci,
> +                               is_hwdom ? vpci_hw_read32 : guest_mem_bar_read,
> +                               is_hwdom ? bar_write : guest_mem_bar_write,
> +                               reg, 4, &bars[i]);
>          if ( rc )
>              goto fail;
>      }
>  
> -    /* Check expansion ROM. */
> -    rc = pci_size_mem_bar(pdev->sbdf, rom_reg, &addr, &size, PCI_BAR_ROM);

Nit: I guess you could do something like:

rc = is_hwdom ? pci_size_mem_bar(pdev->sbdf, rom_reg, &addr, &size, PCI_BAR_ROM)
              : 0;

And that would avoid having to re-indent the whole block?

You could still place the domU code on an else ( !is_hwdom ) branch.

Overall I'm not sure what I prefer, as the re-indentation would be
better done in a non-functional change IMO.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 15:46:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 15:46:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659028.1028493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGLFG-0005pW-Qh; Thu, 21 Dec 2023 15:45:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659028.1028493; Thu, 21 Dec 2023 15:45:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGLFG-0005pP-OB; Thu, 21 Dec 2023 15:45:58 +0000
Received: by outflank-mailman (input) for mailman id 659028;
 Thu, 21 Dec 2023 15:45: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=8VCQ=IA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rGLFF-0005pH-DJ
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 15:45:57 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 07b050fa-a018-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 16:45:56 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40c2308faedso10702635e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 07:45:56 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 s23-20020adf9797000000b00336813bb588sm2309592wrb.111.2023.12.21.07.45.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 07:45:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 07b050fa-a018-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703173556; x=1703778356; 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=lseSJ6Mk7oQMCF2lx46a7LM6LUK0AQ9spYT/xLYjDNs=;
        b=gSpFBTHTwRRj8AwZDddoBwC8cJGnhgO+aYTUvs6NS83jCt4Ghsi9WDpqWTryFSKne3
         TleTiYG8PH4aUf4gMPe5B0FfrKu4NyusfAMC2gtdvrTa87xkNc3CqwbnXC6FJ9z8+XMO
         MlrQ7R9cy6EKB5lLhLO0CVmxBnPvCV9KbhAC8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703173556; x=1703778356;
        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=lseSJ6Mk7oQMCF2lx46a7LM6LUK0AQ9spYT/xLYjDNs=;
        b=iwiUEG09yJNs2Er3FEDNCwvXtdJ6dI37mathKKU1TXsM6Kb3NhgH+Dw/VTXN5vmUSz
         syqTkXrDX1obD8gMtrvHqauoYSdInYNluu76VK1pSKjSfmqF1Y/ppVJmiY6LUfNCSCt7
         0/hHGgd0Mw/NVs8XzaxvLcSPwCL+hxgHCA6e4RGLXwGW311tU925yJqS7v9i57ojvg6u
         Evj8Qhc29ZgUpopco7rd9uTcfh+k/bxZrDDgzcQ0Kig8d4YFcTGJ9vLgVsWUJsq4Ggc5
         hOHnxtdMzb86GPXSg41kKWP1mdwCy/nMyj1mQNy/t/+WG/wS3/T1QYtn9NxtMeTEF5xj
         3jMw==
X-Gm-Message-State: AOJu0YwwPJ8qgO42QVWXLiIDdJMiZ1EdRdwzVIPg2RJaTGrnOVQtjOuD
	9UP7mSJ6sSQSDGO309ITlZTBuQ==
X-Google-Smtp-Source: AGHT+IF8T78joQScqltKUfkGJcpMqdBq9cvFs/6bVcgJjOyEI3unzKjbN8sMl2064URLtw7dpeGtag==
X-Received: by 2002:a05:600c:198a:b0:40c:3774:8ae9 with SMTP id t10-20020a05600c198a00b0040c37748ae9mr946680wmq.7.1703173555995;
        Thu, 21 Dec 2023 07:45:55 -0800 (PST)
Date: Thu, 21 Dec 2023 16:45:54 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	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 v11 09/17] rangeset: add rangeset_empty() function
Message-ID: <ZYRdsoIRlyfVpIbL@macbook>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-10-volodymyr_babchuk@epam.com>
 <8d44c8f6-aa12-4aa7-996d-68aa50dbec33@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <8d44c8f6-aa12-4aa7-996d-68aa50dbec33@suse.com>

On Mon, Dec 04, 2023 at 09:36:16AM +0100, Jan Beulich wrote:
> On 02.12.2023 02:27, Volodymyr Babchuk wrote:
> > This function can be used when user wants to remove all rangeset
> > entries but do not want to destroy rangeset itself.
> 
> I have to admit that I'm not happy with the name: We're not consistently
> naming all predicate-like helpers is_...() (see e.g. cpumask_empty()).
> May I suggest to use something which unambiguously expresses an action to
> be taken, e.g. rangeset_purge(), rangeset_reset(), or (less suitable as
> some ambiguity would remain, yet it would be in line with e.g.
> cpumask_clear()) rangeset_clear()?

rangeset_purge() would be my preference probably, second option would
be rangeset_clear().

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 16:00:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 16:00:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659035.1028504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGLSi-0000E7-1P; Thu, 21 Dec 2023 15:59:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659035.1028504; Thu, 21 Dec 2023 15:59: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 1rGLSh-0000E0-U3; Thu, 21 Dec 2023 15:59:51 +0000
Received: by outflank-mailman (input) for mailman id 659035;
 Thu, 21 Dec 2023 15:59:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8VCQ=IA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1rGLSg-0000CO-MA
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 15:59:50 +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 f5f8b23e-a019-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 16:59:45 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40d22d3e751so12586045e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 07:59:45 -0800 (PST)
Received: from localhost ([213.195.127.70]) by smtp.gmail.com with ESMTPSA id
 n5-20020a05600c4f8500b0040b36050f1bsm3738627wmq.44.2023.12.21.07.59.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 07:59:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5f8b23e-a019-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1703174385; x=1703779185; 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=89EqVM+ZexFDRDW1LeTn2+bO2/osMV/uENoW2Z6+XY4=;
        b=b2HkiJ8tRo7xIzb8M5CxTYE9T1UOOhFx4mgSSkLpRHpWZijuzjmjxht+5PXERfzYKw
         drZLncX5omMtumdGEK6U88vQOKuPv/eWzQAV1pf1Q7qEVpguN7sNcYYQo2WhjtHg9RLQ
         22GJU0jcbi7Ot+IJWWHGhXF+nZyj7Fhiwpr4w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703174385; x=1703779185;
        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=89EqVM+ZexFDRDW1LeTn2+bO2/osMV/uENoW2Z6+XY4=;
        b=TW5kxLWR/p6AL6z1Icwiw6d/G4D+y4G6OdvRWfjj/CwWp49u5th8njZ6rEqnv1K6ox
         B7SyFxLiV80BqbHAIZQPbExF1o0uKLkR6O5yFYR54qtrbfGuQ8K5mWiU3Jd6mE/Igl1z
         9iceAdYODkQ7m/5nhLiOo9showIaTxqib47WT1jGlQM/OuOTuEotnayVZ8H1HMw5trgz
         CRrZidH0cf1jzEvSv9bFX19nooCxm6r6VL6bkdccqXR+zlX+7fvX2FWVAgecbztb6J+y
         S+aFzRWyT3oG4+3pos+IMYpbhAcEd9i3QmQmDMvqlyZYbk14YiYM/YM4XZh+pNOoeYOS
         x0KA==
X-Gm-Message-State: AOJu0YwlQQLasZBDJiCJ5KgWx4exSSSZeHGDIg9yQakxJq930JEShpD9
	lbhBUwhltRMl1Bq8KcxoN61bJQ==
X-Google-Smtp-Source: AGHT+IFuS65KrcyGz1gxa+D2358t0rSrh67fg8OLQxKDU/FCYtXQOJhiPgTLUSYNtK5/Msa9OSal0Q==
X-Received: by 2002:a05:600c:4e56:b0:3fe:1fd9:bedf with SMTP id e22-20020a05600c4e5600b003fe1fd9bedfmr688638wmq.11.1703174385116;
        Thu, 21 Dec 2023 07:59:45 -0800 (PST)
Date: Thu, 21 Dec 2023 16:59:43 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v11 11/17] vpci/header: program p2m with guest BAR view
Message-ID: <ZYRg75b6mUWvQyr7@macbook>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-12-volodymyr_babchuk@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20231202012556.2012281-12-volodymyr_babchuk@epam.com>

On Sat, Dec 02, 2023 at 01:27:05AM +0000, Volodymyr Babchuk wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Take into account guest's BAR view and program its p2m accordingly:
> gfn is guest's view of the BAR and mfn is the physical BAR value.
> This way hardware domain sees physical BAR values and guest sees
> emulated ones.
> 
> Hardware domain continues getting the BARs identity mapped, while for
> domUs the BARs are mapped at the requested guest address without
> modifying the BAR address in the device PCI config space.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> ---
> In v11:
> - Add vmsix_guest_table_addr() and vmsix_guest_table_base() functions
>   to access guest's view of the VMSIx tables.
> - Use MFN (not GFN) to check access permissions
> - Move page offset check to this patch
> - Call rangeset_remove_range() with correct parameters
> In v10:
> - Moved GFN variable definition outside the loop in map_range()
> - Updated printk error message in map_range()
> - Now BAR address is always stored in bar->guest_addr, even for
>   HW dom, this removes bunch of ugly is_hwdom() checks in modify_bars()
> - vmsix_table_base() now uses .guest_addr instead of .addr
> In v9:
> - Extended the commit message
> - Use bar->guest_addr in modify_bars
> - Extended printk error message in map_range
> - Moved map_data initialization so .bar can be initialized during declaration
> Since v5:
> - remove debug print in map_range callback
> - remove "identity" from the debug print
> Since v4:
> - moved start_{gfn|mfn} calculation into map_range
> - pass vpci_bar in the map_data instead of start_{gfn|mfn}
> - s/guest_addr/guest_reg
> Since v3:
> - updated comment (Roger)
> - removed gfn_add(map->start_gfn, rc); which is wrong
> - use v->domain instead of v->vpci.pdev->domain
> - removed odd e.g. in comment
> - s/d%d/%pd in altered code
> - use gdprintk for map/unmap logs
> Since v2:
> - improve readability for data.start_gfn and restructure ?: construct
> Since v1:
>  - s/MSI/MSI-X in comments
> ---
>  xen/drivers/vpci/header.c | 79 +++++++++++++++++++++++++++++----------
>  xen/include/xen/vpci.h    | 13 +++++++
>  2 files changed, 73 insertions(+), 19 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 7c84cee5d1..21b3fb5579 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -33,6 +33,7 @@
>  
>  struct map_data {
>      struct domain *d;
> +    const struct vpci_bar *bar;
>      bool map;
>  };
>  
> @@ -40,13 +41,24 @@ static int cf_check map_range(
>      unsigned long s, unsigned long e, void *data, unsigned long *c)
>  {
>      const struct map_data *map = data;
> +    /* Start address of the BAR as seen by the guest. */
> +    unsigned long start_gfn = PFN_DOWN(map->bar->guest_addr);
> +    /* Physical start address of the BAR. */
> +    mfn_t start_mfn = _mfn(PFN_DOWN(map->bar->addr));
>      int rc;
>  
>      for ( ; ; )
>      {
>          unsigned long size = e - s + 1;
> +        /*
> +         * Ranges to be mapped don't always start at the BAR start address, as
> +         * there can be holes or partially consumed ranges. Account for the
> +         * offset of the current address from the BAR start.
> +         */
> +        mfn_t map_mfn = mfn_add(start_mfn, s - start_gfn);
> +        unsigned long m_end = mfn_x(map_mfn) + size - 1;
>  
> -        if ( !iomem_access_permitted(map->d, s, e) )
> +        if ( !iomem_access_permitted(map->d, mfn_x(map_mfn), m_end) )
>          {
>              printk(XENLOG_G_WARNING
>                     "%pd denied access to MMIO range [%#lx, %#lx]\n",
> @@ -54,7 +66,8 @@ static int cf_check map_range(
>              return -EPERM;
>          }
>  
> -        rc = xsm_iomem_mapping(XSM_HOOK, map->d, s, e, map->map);
> +        rc = xsm_iomem_mapping(XSM_HOOK, map->d, mfn_x(map_mfn), m_end,
> +                               map->map);
>          if ( rc )
>          {
>              printk(XENLOG_G_WARNING
> @@ -72,8 +85,8 @@ static int cf_check map_range(
>           * - {un}map_mmio_regions doesn't support preemption.
>           */
>  
> -        rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(s))
> -                      : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(s));
> +        rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, map_mfn)
> +                      : unmap_mmio_regions(map->d, _gfn(s), size, map_mfn);
>          if ( rc == 0 )
>          {
>              *c += size;
> @@ -82,8 +95,9 @@ static int cf_check map_range(
>          if ( rc < 0 )
>          {
>              printk(XENLOG_G_WARNING
> -                   "Failed to identity %smap [%lx, %lx] for d%d: %d\n",
> -                   map->map ? "" : "un", s, e, map->d->domain_id, rc);
> +                   "Failed to %smap [%lx %lx] -> [%lx %lx] for %pd: %d\n",
> +                   map->map ? "" : "un", s, e, mfn_x(map_mfn),
> +                   mfn_x(map_mfn) + size, map->d, rc);

Seeing the amount of mfn_x calls, it might be better to do the
calculations as unsigned long, and use _mfn() in the
{,un}map_mmio_regions() calls.

>              break;
>          }
>          ASSERT(rc < size);
> @@ -162,10 +176,6 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>  bool vpci_process_pending(struct vcpu *v)
>  {
>      struct pci_dev *pdev = v->vpci.pdev;
> -    struct map_data data = {
> -        .d = v->domain,
> -        .map = v->vpci.cmd & PCI_COMMAND_MEMORY,
> -    };
>      struct vpci_header *header = NULL;
>      unsigned int i;
>  
> @@ -185,6 +195,11 @@ bool vpci_process_pending(struct vcpu *v)
>      for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>      {
>          struct vpci_bar *bar = &header->bars[i];
> +        struct map_data data = {
> +            .d = v->domain,
> +            .map = v->vpci.cmd & PCI_COMMAND_MEMORY,
> +            .bar = bar,
> +        };
>          int rc;
>  
>          if ( rangeset_is_empty(bar->mem) )
> @@ -235,7 +250,6 @@ bool vpci_process_pending(struct vcpu *v)
>  static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
>                              uint16_t cmd)
>  {
> -    struct map_data data = { .d = d, .map = true };
>      struct vpci_header *header = &pdev->vpci->header;
>      int rc = 0;
>      unsigned int i;
> @@ -245,6 +259,7 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
>      for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>      {
>          struct vpci_bar *bar = &header->bars[i];
> +        struct map_data data = { .d = d, .map = true, .bar = bar };
>  
>          if ( rangeset_is_empty(bar->mem) )
>              continue;
> @@ -310,12 +325,16 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>       * First fill the rangesets with the BAR of this device or with the ROM
>       * BAR only, depending on whether the guest is toggling the memory decode
>       * bit of the command register, or the enable bit of the ROM BAR register.
> +     *
> +     * For non-hardware domain we use guest physical addresses.
>       */
>      for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>      {
>          struct vpci_bar *bar = &header->bars[i];
>          unsigned long start = PFN_DOWN(bar->addr);
>          unsigned long end = PFN_DOWN(bar->addr + bar->size - 1);
> +        unsigned long start_guest = PFN_DOWN(bar->guest_addr);
> +        unsigned long end_guest = PFN_DOWN(bar->guest_addr + bar->size - 1);
>  
>          if ( !bar->mem )
>              continue;
> @@ -335,11 +354,25 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>              continue;
>          }
>  
> -        rc = rangeset_add_range(bar->mem, start, end);
> +        /*
> +         * Make sure that the guest set address has the same page offset
> +         * as the physical address on the host or otherwise things won't work as
> +         * expected.
> +         */
> +        if ( PAGE_OFFSET(bar->guest_addr) != PAGE_OFFSET(bar->addr) )
> +        {
> +            gprintk(XENLOG_G_WARNING,
> +                    "%pp: Can't map BAR%d because of page offset mismatch: %lx vs %lx\n",
> +                    &pdev->sbdf, i, PAGE_OFFSET(bar->guest_addr),
> +                    PAGE_OFFSET(bar->addr));
> +            return -EINVAL;
> +        }
> +
> +        rc = rangeset_add_range(bar->mem, start_guest, end_guest);
>          if ( rc )
>          {
>              printk(XENLOG_G_WARNING "Failed to add [%lx, %lx]: %d\n",
> -                   start, end, rc);
> +                   start_guest, end_guest, rc);
>              return rc;
>          }
>  
> @@ -351,12 +384,12 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>              if ( rangeset_is_empty(prev_bar->mem) )
>                  continue;
>  
> -            rc = rangeset_remove_range(prev_bar->mem, start, end);
> +            rc = rangeset_remove_range(prev_bar->mem, start_guest, end_guest);
>              if ( rc )
>              {
>                  gprintk(XENLOG_WARNING,
>                         "%pp: failed to remove overlapping range [%lx, %lx]: %d\n",
> -                        &pdev->sbdf, start, end, rc);
> +                        &pdev->sbdf, start_guest, end_guest, rc);
>                  return rc;
>              }
>          }
> @@ -365,8 +398,8 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>      /* Remove any MSIX regions if present. */
>      for ( i = 0; msix && i < ARRAY_SIZE(msix->tables); i++ )
>      {
> -        unsigned long start = PFN_DOWN(vmsix_table_addr(pdev->vpci, i));
> -        unsigned long end = PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
> +        unsigned long start = PFN_DOWN(vmsix_guest_table_addr(pdev->vpci, i));
> +        unsigned long end = PFN_DOWN(vmsix_guest_table_addr(pdev->vpci, i) +
>                                       vmsix_table_size(pdev->vpci, i) - 1);
>  
>          for ( j = 0; j < ARRAY_SIZE(header->bars); j++ )
> @@ -424,8 +457,8 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>              for ( i = 0; i < ARRAY_SIZE(tmp->vpci->header.bars); i++ )
>              {
>                  const struct vpci_bar *remote_bar = &tmp->vpci->header.bars[i];
> -                unsigned long start = PFN_DOWN(remote_bar->addr);
> -                unsigned long end = PFN_DOWN(remote_bar->addr +
> +                unsigned long start = PFN_DOWN(remote_bar->guest_addr);
> +                unsigned long end = PFN_DOWN(remote_bar->guest_addr +
>                                               remote_bar->size - 1);
>  
>                  if ( !remote_bar->enabled )
> @@ -512,6 +545,8 @@ static void cf_check bar_write(
>      struct vpci_bar *bar = data;
>      bool hi = false;
>  
> +    ASSERT(is_hardware_domain(pdev->domain));
> +
>      if ( bar->type == VPCI_BAR_MEM64_HI )
>      {
>          ASSERT(reg > PCI_BASE_ADDRESS_0);
> @@ -542,6 +577,10 @@ static void cf_check bar_write(
>       */
>      bar->addr &= ~(0xffffffffULL << (hi ? 32 : 0));
>      bar->addr |= (uint64_t)val << (hi ? 32 : 0);
> +    /*
> +     * Update guest address as well, so hardware domain sees BAR identity mapped
> +     */
> +    bar->guest_addr = bar->addr;
>  
>      /* Make sure Xen writes back the same value for the BAR RO bits. */
>      if ( !hi )
> @@ -793,6 +832,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
>          }
>  
>          bars[i].addr = addr;
> +        bars[i].guest_addr = addr;
>          bars[i].size = size;
>          bars[i].prefetchable = val & PCI_BASE_ADDRESS_MEM_PREFETCH;
>  
> @@ -814,6 +854,7 @@ static int cf_check init_bars(struct pci_dev *pdev)
>              rom->type = VPCI_BAR_ROM;
>              rom->size = size;
>              rom->addr = addr;
> +            rom->guest_addr = addr;

I think you are missing updating guest_addr also in rom_write()?

>              header->rom_enabled = pci_conf_read32(pdev->sbdf, rom_reg) &
>                                    PCI_ROM_ADDRESS_ENABLE;
>  
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index 18a0eca3da..c39fab4832 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -205,6 +205,19 @@ static inline paddr_t vmsix_table_addr(const struct vpci *vpci, unsigned int nr)
>             (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
>  }
>  
> +static inline paddr_t vmsix_guest_table_base(const struct vpci *vpci,
> +                                             unsigned int nr)
> +{
> +    return (vpci->header.bars[vpci->msix->tables[nr] &
> +           PCI_MSIX_BIRMASK].guest_addr & PCI_BASE_ADDRESS_MEM_MASK);
> +}
> +
> +static inline paddr_t vmsix_guest_table_addr(const struct vpci *vpci,
> +                                             unsigned int nr)
> +{
> +    return vmsix_guest_table_base(vpci, nr) +
> +           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
> +}

Do we really need guest versions of this?  I was expecting that for
guests those functions should always returns the guest addresses of
the MSI-X structures, which in the dom0 case matches the host address.

If we really need guest specific versions, it's worth mentioning in
the commit message explicitly why.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 16:28:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 16:28:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659040.1028513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGLu4-0006jh-4O; Thu, 21 Dec 2023 16:28:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659040.1028513; Thu, 21 Dec 2023 16: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 1rGLu4-0006ja-1s; Thu, 21 Dec 2023 16:28:08 +0000
Received: by outflank-mailman (input) for mailman id 659040;
 Thu, 21 Dec 2023 16:28:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BnTy=IA=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rGLu2-0006jU-8a
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 16:28:06 +0000
Received: from do158-143.mg.gitlab.com (do158-143.mg.gitlab.com
 [192.237.158.143]) by se1-gles-sth1.inumbo.com (Halon) with UTF8SMTPS
 id ea48bf3a-a01d-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 17:28:05 +0100 (CET)
Received: from mg.gitlab.com (30.226.74.34.bc.googleusercontent.com
 [34.74.226.30]) by
 012d5b193e2f with SMTP id 6584678698048c4500a28e78 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Thu, 21 Dec 2023 16:27:50 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: ea48bf3a-a01d-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1703176083; x=1703183283; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=NJ56eL0TXppdDWw0LW4btlFUAnl0zsiLOm1+phBxtXY=;
 b=Uit3Z0521gfDBOgTZgbipGGfhWKpaj9LGizLDys8b/stAmt89batn9qVQWJQYGIkZRIaGWDr+QlVI8njmqitvb2cxEMAMlAfZd7aS/V3t+kJ0gID6w5sykStT+e/G0L/8USPrjL6MGvx35Xzj0ACZ03cd3M9v5l9rbcKFOpwK2w=
X-Mailgun-Sending-Ip: 192.237.158.143
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Thu, 21 Dec 2023 16:27:50 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65846786baae3_2c95b5012959@gitlab-sidekiq-catchall-v2-655fb6f587-7pqg9.mail>
Subject: xen | Successful pipeline for staging | 49818cde
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65846786af5c4_2c95b501294a4";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1115598353
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65846786af5c4_2c95b501294a4
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1115598353 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 49818cde ( https://gitlab.com/xen-project/xen/-/commit/49818cde637b5ec20383e46b71f93b2e7d867686 )
Commit Message: xen: remove asm/unaligned.h

With include/xen/u...
Commit Author: Juergen Gross ( https://gitlab.com/jgross1 )
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )



Pipeline #1115598353 ( https://gitlab.com/xen-project/xen/-/pipelines/1115598353 ) triggered by Ganis ( https://gitlab.com/ganis )
successfully completed 129 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 49818cde</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1115598353 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/49818cde637b5ec203=
83e46b71f93b2e7d867686" style=3D"color: #3777b0; text-decoration: none;">=
49818cde</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen: remove asm/unaligned.h

With include/xen/u...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/0cac9c91cba4579c288f4be83125f17e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jgross1" style=3D"color: #3=
33333; text-decoration: none;">
Juergen Gross
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/4c68e59c4858f6dbd3465bd1ba226772?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111559=
8353" style=3D"color: #3777b0; text-decoration: none;">#1115598353</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/568538936b4ac45a343cb3a4ab0c6cda?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/ganis" style=3D"color: #333=
333; text-decoration: none;">
Ganis
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 129 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65846786af5c4_2c95b501294a4--


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 18:09:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 18:09:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659085.1028528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGNTr-0005iz-PB; Thu, 21 Dec 2023 18:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659085.1028528; Thu, 21 Dec 2023 18: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 1rGNTr-0005is-Km; Thu, 21 Dec 2023 18:09:11 +0000
Received: by outflank-mailman (input) for mailman id 659085;
 Thu, 21 Dec 2023 18:09:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VfJF=IA=neowutran.ovh=xen@srs-se1.protection.inumbo.net>)
 id 1rGNTq-0005im-Dw
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 18:09:10 +0000
Received: from neowutran.ovh (core.neowutran.ovh [51.83.40.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 08af5750-a02c-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 19:09:08 +0100 (CET)
Received: from neowutran.ovh (maisonhome.neowutran.ovh [82.65.3.49])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384)
 (No client certificate requested)
 by neowutran.ovh (Postfix) with ESMTPSA id 570596131C;
 Thu, 21 Dec 2023 18:09: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: 08af5750-a02c-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=neowutran.ovh; s=mail;
	t=1703182146; bh=xx9W8hv7Sq7yQ0w3Sc/b9EE8coBORtu7P0HVJIi/beE=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=XkKSMsNZqNA2z+9ML2yexCKnpea54Jk2YTGGmJARHBL+G4cgn71tvkjfCyE8XjNEU
	 ySv11ahz8GI9kDRm0c3G1dOSRaqOYYIUHDTkALNTzaOF/2tAtAWsd+VVu/X//I3+5i
	 Q+K65lE9xeyGX2LipdHI/v3maltw3XyOKhciKljdUmIsd8QX7eCQisjUyOm7QO/08/
	 SliLWhfGL4pZsenqbUvLZo6KW2RmhDWrd7tQ1t+STC2opVetMKD+r/DxVZ4EdNsoEC
	 goVfyqnf4iCnHPDaT2WobhWAOmz8O1o40LWoLFSGWeq7jLg8cCnHyByz7Zh6nofjfa
	 QdeRRad+7UphfQDF4F6fIN8l629MEivTCDyhcJ5u6kM3MNEt5DKj7qy/9q2i41YtTZ
	 bVx2puJqyrVCnQXT0B1jYlHuqPr4h7zFO4JH/Xe3F35fSKqHgEPOnRROGgD6MypLLo
	 JqMef1OB4ekLwaCXsfZk/NKc6EU4/NNSMpU4hqp4Tecn9F1yTb81eYFj0lye1SIo+0
	 W5ExgZeAdHzHqDYgF/iQxJjVnSanD9AlLIdNbNzsncLheJqlGBJnMmyeRQPHWrQ7vB
	 x4T+08nKEkpjlkQCIBcrD2O6diMK1MS/DN5Zwp3EZaQqfkLgbs972tCIvyQVXjZ0M+
	 UbKfvqCF7bW5CokuCd8dCdyQ=
Date: Thu, 21 Dec 2023 19:08:50 +0100
From: Neowutran <xen@neowutran.ovh>
To: Jan Beulich <jbeulich@suse.com>
Cc: Neowutran <xen@neowutran.ovh>, xen-devel@lists.xenproject.org
Subject: Re: hvmloader - allow_memory_relocate overlaps
Message-ID: <lyqv62ezqqaybcfuhkvbhiltvnxyy32wzr36kclh7bzrupcvib@a5fpoe6atykl>
References: <7oe275z3eap7rhdwmrm4mvqnjnhrpag5cjwnfvwsf7rchhkyjv@pd3abzwdhg6v>
 <217649a9-8399-48d3-ba49-ae22cacf0d4b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <217649a9-8399-48d3-ba49-ae22cacf0d4b@suse.com>

On 2023-12-19 17:12, Jan Beulich wrote:
> On 16.12.2023 08:01, Neowutran wrote:
> > I am wondering if the variable "allow_memory_relocate" is still
> > relevant today and if its default value is still relevant. 
> > Should it be defined to 0 by default instead of 1 (it seems to be a
> > workaround for qemu-traditional, so maybe an outdated default value ? ) ? 
> 
> So are you saying you use qemu-trad?
No, I am using "qemu_xen" ( from  
xenstore-read -> 'device-model =
"qemu_xen"' 

> Otherwise isn't libxl suppressing this behavior anyway?
If by "isn't libxl suppressing this behavior" you means if libxl is setting
the value of "allow_memory_relocate", then the answer is no. 

Following this lead, I checked in what code path
"allow_memory_relocate" could be defined. 

It is only defined in one code path, 

In the file "tools/libs/light/libxl_dm.c",
in the function "void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)": 

'''
 // ...
    if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
 // ...

        libxl__xs_printf(gc, XBT_NULL,
                         GCSPRINTF("%s/hvmloader/allow-memory-relocate", path),
                         "%d",
                         b_info->device_model_version==LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
                         !libxl__vnuma_configured(b_info));
// ...
'''

However, on QubesOS (my system), "local_dm" is never used, "stub_dm"
is always used. 

In the function "void lib 
xl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)", 
the value of "allow_memory_relocate" is never defined. 

I tried to patch the code to define "allow_memory_relocate" in
"libxl__spawn_stub_dm": 

'''
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -2431,6 +2431,10 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
                                        libxl__xs_get_dompath(gc, guest_domid)),
                         "%s",
                         libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios));
+        libxl__xs_printf(gc, XBT_NULL,
+                         libxl__sprintf(gc, "%s/hvmloader/allow-memory-relocate", libxl__xs_get_dompath(gc, guest_domid)),
+                         "%d",
+                         0);
     }
     ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid);
     if (ret<0) {
'''

And it is indeed another way to solve my issue. 
However I do not understand the xen hypervisor enough to known i 
f
"allow-memory-relocate" should have been defined in
"libxl__spawn_stub_dm" or if the real issue is somewhere else. 


> Or did that code go stale?
> 
> > Code extract: 
> > 
> > tools/firmware/hvmloader/pci.c 
> > "
> >    /*
> >      * Do we allow hvmloader to relocate guest memory in order to
> >      * increase the size of the lowmem MMIO hole?  Defaulting to 1
> >      * here will
> >  mean that non-libxl toolstacks (including xend and
> >      * home-grown ones) means that those using qemu-xen will still
> >      * experience the memory relocation bug described below; but it
> >      * also means that those using q 
> > emu-traditional will *not*
> >      * experience any change; and it also means that there is a
> >      * work-around for those using qemu-xen, namely switching to
> >      * qemu-traditional.
> >      *
> >      * If we defaulted to 0, and failing to resize the hole caused any
> >      * problems with qemu-traditional, then there is no work-around.
> >      *
> >      * Since xend can 
 only use qemu-traditional, I think this is the
> >      * option that will have the least impact.
> >      */
> >     bool allow_memory_relocate = 1;
> > "
> > 
> > "
> >         /*
> >          * At the moment qemu-xen can't deal with relocated memory regions.
> >          * It's too close to the release to make a proper fix; for now,
> >          * only allow t
> > he MMIO hole to grow large enough to move guest memory
> >          * if we're running qemu-traditional.  Items that don't fit will be
> >          * relocated into the 64-bit address space.
> >          *
> >          * This loop now does the following:
> >          * - If allow_memory_relocate, increase the MMIO hole until it's
> >          *   big enough, or  
> > until it's 2GiB
> >          * - If !allow_memory_relocate, increase the MMIO hole until it's
> >          *   big enough, or until it's 2GiB, or until it overlaps guest
> >          *   memory
> >          */
> >         while ( (mmio_total > (pci_mem_end - pci_mem_start))
> >     
             && ((pci_mem_start << 1) != 0)
> >                 && (allow_memory_relocate
> >                     || (((pci_mem_start << 1) >> PAGE_SHIFT)
> >                         >= hvm_info->low_mem_pgend)) )
> >             pci_mem_start <<= 1;
> > "
> > 
> > The issue it cause is documented in the source code: guest memory can
> > be trashed by the hvmloader. 
> > 
> > Due to this issue, it is impossible to passthrough a large PCI device to a HVM with a lot of ram.
> > (https://github.com/QubesOS/qubes-issues/issues/4321). 
> > 
> > (Forcing "allow_memory_relocate" to be 0 seems to solve the issue
> > linked)
> 
> What I don't understand here (and what I also can't find helpful logs for)
> is: The code in hvmloader is in principle intended to work in both cases.
> If there's suspected guest memory corruption, can we get to see the actual
> results of the MMIO hole creation and its using for device ranges? If there
> indeed is an overlap with guest RAM, that's a bug which wants fixing.

tools/firmware/ 
hvmloader/pci.c, function "void pci_setup(void)"
I added a log to print if the hvmloader would have tried to overlaps
guest memory

'''

+        printf("NEOWUTRAN pci.c: pci_mem_end: %d\n",pci_mem_end);
+        printf("NEOWUTRAN pci.c: pci_mem_start: %d\n",pci_mem_start);
+        printf("NEOWUTRAN pci.c: allow_memory_relocate: %d\n",allow_memory_relocate);
+        printf("NEOWUTRAN pci.c: hvm_info->low_mem_pgend: %d\n",hvm_info->low_mem_pgend);
+
+
        while ( (mmio_total > (pci_mem_end - pci_mem_start))
                && ((pci_mem_start << 1) != 0)
                && (allow_memory_relocate
                    || (((pci_mem_start << 1) >> PAGE_SHIFT)
                        >= hvm_info->low_mem_pgend)) )
            pci_mem_start <<= 1;

+         if ( (mmio_total > (pci_mem_end - pci_mem_start))
+                && ((pci_mem_start << 1) != 0)
+                && (1
+                    || (((pci_mem_start << 1) >> PAGE_SHIFT)
+                        >= hvm_info->low_mem_pgend)) ){
+                
printf("NEOWUTRAN pci.c: HVM_LOADER would have tried to relocate guest memory\n");
+               printf("NEOWUTRAN pci.c: pci_mem_start: %d\n",pci_mem_start);
+
+        }
'''

And the associated result is: 

(d22) NEOWUTRAN pci.c: pci_mem_end: -67108864
(d22) NEOWUTRAN pci.c: pci_mem_start: -268435456
(d22) NEOWUTRAN pci.c: allow_memory_relocate: 0
(d22) NEOWUTRAN pci.c: hvm_info->low_mem_pgend: 983040
(d22) NEOWUTRAN pci.c: HVM_LOADER would have tried to relocate guest memory
(d22) NEOWUTRAN pci.c: pci_mem_start: -268435456

So if "allow_memory_relocate" was not defined to 0, the hvmloader
would have tried to overlaps guest memory, and it seems that is
something that qemu_xen cannot handle.

> I
> don't see why we would want to drop allow_memory_relocate in the way you
> suggest; quite the other way around, if upstream qemu still can't tolerate
> hvmloader doing this, then it wants fixing there such that RAM relocation
> can be enabled unconditionally. Then the variable will indeed not be needed
> anymor 
e.

I can send different logs or try different things if needed 


> 
> Jan

Thanks, 
Neowutran
 


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 18:40:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 18:40:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659100.1028536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGNyL-0002fj-47; Thu, 21 Dec 2023 18:40:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659100.1028536; Thu, 21 Dec 2023 18:40:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGNyL-0002fc-1V; Thu, 21 Dec 2023 18:40:41 +0000
Received: by outflank-mailman (input) for mailman id 659100;
 Thu, 21 Dec 2023 18:40: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 1rGNyJ-0002fS-GX; Thu, 21 Dec 2023 18:40: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 1rGNyJ-000764-B5; Thu, 21 Dec 2023 18:40: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 1rGNyI-0005w2-TI; Thu, 21 Dec 2023 18:40:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGNyI-0006SQ-Sp; Thu, 21 Dec 2023 18: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=zfEmgkGGBH4rXnbW/D+m2/B637i72bHlPiAU5ZN6hMw=; b=sn2fghwYMX8BSd4JvJ+XM+u5aj
	uvZYrQd1hMiPDwLlhaAm2HETr+S/kcMAEVorE3dQ4MGOy+0KC2bM2hk7QQfKd74ul+/PfLBfYnga9
	0p/9JRroCXnKvmdEwCCAi4fxQPpulW706cuUSQWd2LScJb9vIBJC80pWbWRCD4lPGPT0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184199-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184199: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-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-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-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=9fc140c72d4a9d2ad44bd69474023e130b3da13b
X-Osstest-Versions-That:
    libvirt=49f1406de814db6eec62d02096332059647ec5ad
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 18:40:38 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184187
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184187
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184187
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 libvirt              9fc140c72d4a9d2ad44bd69474023e130b3da13b
baseline version:
 libvirt              49f1406de814db6eec62d02096332059647ec5ad

Last test of basis   184187  2023-12-20 04:19:12 Z    1 days
Testing same since   184199  2023-12-21 04:20:29 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Egor Makrushin <emakrushin@astralinux.ru>
  GÃ¶ran Uddeborg <goeran@uddeborg.se>
  Michal Privoznik <mprivozn@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   49f1406de8..9fc140c72d  9fc140c72d4a9d2ad44bd69474023e130b3da13b -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 18:47:22 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 18:47:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659107.1028547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGO4j-0003Jw-R0; Thu, 21 Dec 2023 18:47:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659107.1028547; Thu, 21 Dec 2023 18:47: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 1rGO4j-0003Jm-OI; Thu, 21 Dec 2023 18:47:17 +0000
Received: by outflank-mailman (input) for mailman id 659107;
 Thu, 21 Dec 2023 18:47:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ywj9=IA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGO4i-0003Jf-0u
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 18:47:16 +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 5bd0d884-a031-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 19:47:15 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-50e2168ab09so1742244e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 10:47:15 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 u5-20020ac25185000000b0050d438f0a09sm333325lfi.256.2023.12.21.10.47.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 10:47:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bd0d884-a031-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703184434; x=1703789234; 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=/9r6Zec3H9AjIM0xtEfFYf1RwMixZEScNSDhzhNPTUo=;
        b=aPqtYa8FeQcVbLZsFSW9vZCOqWq3Jd+GCypWCmHBwGEibpGGjaNM+yvd56T6TzpyX+
         bvh6m5McSPUw1gK98FdEUzgtwuIB9Raq02OhcrRdbIayrEvpaS/DpFBrkFfy0xR1a8SG
         ZuQ6mDy6FdBRkzXdPdxcxpi5rzSaOny27nw/YiMBPP5lMXZ/w+USqnTFi000wRPbROfY
         L9QswshlS0coo1BozK9RGymtCxvVZynQIk+ilc/nG/SF6BL8SoWADRX0mUWQlpsAeYka
         VsAcUNXl67eu4nNnT7yzk+2OJ/cPF2hqxZ/RIwE55EDKtJ7QJW/TbhQ+jfRzuKB1Hn4G
         sJMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703184434; x=1703789234;
        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=/9r6Zec3H9AjIM0xtEfFYf1RwMixZEScNSDhzhNPTUo=;
        b=jHwl/nvHN3nHqiudhwK4dbfexYD8hy7Vly4nfvGIOK5l+mveSY+DJh94X3d7hYWTWl
         xty64n2PREvA+f4eMZzMcIbiQgk/DqhzlDE3O4BjOoJ2a72wL6lRNQ6F13/RnTGzFAGm
         gwzKhB0bYnXuJ+Twuhi9uJrL6Qobk2iXhUUKm3xBH2ELb3dscRozhBbXB1/Ug/5K7xuo
         TbrK1DfkwuAsGoV4xBW34TecxtPjC8Aj6NugIrmmxuXHZ3svxW1LxbqWgm4e3+SmDyhg
         FyJNLbB/HlZM5dlVEOKmTYAd582QgwZ/o2YOpXuxokSKdAA/GYXKLMyjKRbboncyrxN2
         0l4Q==
X-Gm-Message-State: AOJu0Yxd2N/RboXTRqX7G5M56fMfjv6NVF2Nh+q75HyPE6HzlMAvntrg
	3G+wmZLsmiFS+KhsmjxNv5by5Ru3sx0=
X-Google-Smtp-Source: AGHT+IEn8TRUcOXw6UcoPEOF1HMig19py3oZnDXAMxMeBM2O/Qyt0NGnC1hOrIYyXse3zId5W105Dw==
X-Received: by 2002:a05:6512:21ac:b0:50e:39db:b22d with SMTP id c12-20020a05651221ac00b0050e39dbb22dmr34724lft.59.1703184434247;
        Thu, 21 Dec 2023 10:47:14 -0800 (PST)
Message-ID: <bebb3ad9adecabe171b648274bdaf9e33e1c6185.camel@gmail.com>
Subject: Re: [PATCH v2 37/39] xen/rirscv: add minimal amount of stubs to
 build full Xen
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Thu, 21 Dec 2023 20:47:08 +0200
In-Reply-To: <ede547ec-b6dd-4b41-9655-0944fbda8eec@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <091887466560fbd6b66239f7fee5193eb97570b9.1700761381.git.oleksii.kurochko@gmail.com>
	 <f52b19eb-7633-48df-85b9-c6a545dc4232@suse.com>
	 <3c34e22a4cf040845e734c3575512945a87465dd.camel@gmail.com>
	 <ede547ec-b6dd-4b41-9655-0944fbda8eec@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Thu, 2023-12-21 at 09:02 +0100, Jan Beulich wrote:
> On 20.12.2023 13:55, Oleksii wrote:
> > On Mon, 2023-12-18 at 18:00 +0100, Jan Beulich wrote:
> > > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > --- /dev/null
> > > > +++ b/xen/arch/riscv/stubs.c
> > > > @@ -0,0 +1,426 @@
> > > > +/* 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/time.h>
> > > > +#include <public/domctl.h>
> > > > +#include <public/vm_event.h>
> > >=20
> > > I think I can see why you need the former of these last two, but
> > > do
> > > you
> > > really need the latter?
> > It is needed for vm_event_request_t and vm_event_response_t, but if
> > use
> > a forward declaration that it won't be needed:
> >=20
> > typedef struct vm_event_st vm_event_request_t;
> > typedef struct vm_event_st vm_event_response_t;
>=20
> Iirc Misra wouldn't like the duplicating of typedef-s used elsewhere.
> But
> as long as that's not going to stay (and I expect stubs.c to go away
> before Misra becomes of concern for RISC-V), that's going to be okay,
> I
> think. Yet then avoiding the typedef-s and using struct vm_event_st
> directly in the functions would be as good, and overall less code.
Hmm, it makes sense to use sturct vm_event_st direcly in this case.
Thanks for suggestion.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 19:06:54 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 19:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659112.1028556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGONZ-0006Wt-71; Thu, 21 Dec 2023 19:06:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659112.1028556; Thu, 21 Dec 2023 19:06: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 1rGONZ-0006Wm-4R; Thu, 21 Dec 2023 19:06:45 +0000
Received: by outflank-mailman (input) for mailman id 659112;
 Thu, 21 Dec 2023 19:06:43 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rGONX-0006Wb-Fq
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 19:06:43 +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 1rGONV-0007dT-UY; Thu, 21 Dec 2023 19:06:41 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rGONV-0006Me-Nf; Thu, 21 Dec 2023 19:06:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=9BD5rZQiOQcUUWSBqPEZi/mOni8msE/1VkCn4GBnrOY=; b=2hcHHYVQvubHc8aClqkqlseOpF
	mv/LxZkj76X/N78Wo59Z+G6Uc862Vf7vhMxq9v6nFsr1ty1iXQEw7gRIcUU4QT9WE9LqoGSUrhfE7
	3HGv6ioCb+uMbqmwVoYwFhPurMOoLLlx78IwCm69mYsHsCsvMNiOSn+7JWMnqIPrImY0=;
Message-ID: <47a68787-cf33-4c5e-a644-97404243783d@xen.org>
Date: Thu, 21 Dec 2023 19:06:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/9] xen/asm-generic: introduce generic div64.h header
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <d39a9a56ff37b7e67bcedd163449e0a8f5c5df9a.1703072575.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <d39a9a56ff37b7e67bcedd163449e0a8f5c5df9a.1703072575.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksii,

On 20/12/2023 14:08, Oleksii Kurochko wrote:
> All archs have the do_div implementation for BITS_PER_LONG == 64
> so do_div64.h is moved to asm-generic.
> 
> x86 and PPC were switched to asm-generic version of div64.h.
> Arm was switched partly because Arm has different implementation
> for 32-bits.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 19:10:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 19:10:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659115.1028567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGOQl-0007a4-NP; Thu, 21 Dec 2023 19:10:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659115.1028567; Thu, 21 Dec 2023 19:10:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGOQl-0007ZU-JC; Thu, 21 Dec 2023 19:10:03 +0000
Received: by outflank-mailman (input) for mailman id 659115;
 Thu, 21 Dec 2023 19:10:01 +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 1rGOQj-0007I9-QU
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 19:10:01 +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 1rGOQi-0007h5-Lh; Thu, 21 Dec 2023 19:10:00 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rGOQi-0006Vp-Gh; Thu, 21 Dec 2023 19:10: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=awxLosYEArdYkC84owfVgaP6FIp2h4OPdyNJX6xllZw=; b=q2JnQgpJY/owj20XFEbtqgyPIA
	kCQj5DZU2QjiZcmka4FqpIIOJPVY4Vo5iNd4BLbi0mylPEJf8a64sranIlD+3Sd4J89CUFUOrvf1A
	PMaVJUlXQJlNorZ/GITroggVUPTUXyfvJBT3kAGXiqepdUWE6jfO+Eoiq1oVe8VXOFpA=;
Message-ID: <341249d1-217f-4ad2-9455-b1aded4b9b56@xen.org>
Date: Thu, 21 Dec 2023 19:09:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 5/9] xen/asm-generic: introduce stub header numa.h
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <08bca9a4158a190a0a953e5bc071a512cfe5f0f8.1703072575.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <08bca9a4158a190a0a953e5bc071a512cfe5f0f8.1703072575.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksii,

On 20/12/2023 14:08, Oleksii Kurochko wrote:
> <asm/numa.h> is common through some archs so it is moved
> to asm-generic.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>

I think this patch will need to be rebased on top of the lastest staging 
as this should clash with 51ffb3311895.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 19:10:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 19:10:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659120.1028577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGORf-0000O7-4s; Thu, 21 Dec 2023 19:10:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659120.1028577; Thu, 21 Dec 2023 19:10: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 1rGORf-0000O0-14; Thu, 21 Dec 2023 19:10:59 +0000
Received: by outflank-mailman (input) for mailman id 659120;
 Thu, 21 Dec 2023 19:10: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 1rGORe-0000Nu-Im
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 19:10: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 1rGORd-0007iH-Hd; Thu, 21 Dec 2023 19:10:57 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rGORd-0006Vp-Cq; Thu, 21 Dec 2023 19:10:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=N18FdFbII2fykYI6eJp05ZQHjGkR0xkqoPOQN9H3JQA=; b=RidgUamkiOfpZ1vGanF3ILvh6f
	+xy++hGcMcMTqZKSc7MxbiceFJ/5S6ntLdOyHPXoQdazM04Fjbv77wNeOFeBF/uw0X6YvSJLafj0r
	BFxoj8VptJxJbJ5YQaJUbZfPbdn1QmmK4NpbYe1GXfBplbSGeBFu3k5tL44uF2bortcc=;
Message-ID: <2899e5df-4617-418b-ad2d-45f8b923375a@xen.org>
Date: Thu, 21 Dec 2023 19:10:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 6/9] xen/asm-generic: introduce stub header softirq.h
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <ab66dbcdc2eb919577d6cc90d9f5f27d00e423be.1703072575.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <ab66dbcdc2eb919577d6cc90d9f5f27d00e423be.1703072575.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oksii,

On 20/12/2023 14:08, Oleksii Kurochko wrote:
> <asm/softirq.h> is common between Arm, PPC and RISC-V so it is
> moved to asm-generic.
> 
> Drop Arm and PPC's softirq.h and use asm-generic version instead.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 19:19:42 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 19:19:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659129.1028586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGOZz-0001L1-Ta; Thu, 21 Dec 2023 19:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659129.1028586; Thu, 21 Dec 2023 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 1rGOZz-0001Ku-R5; Thu, 21 Dec 2023 19:19:35 +0000
Received: by outflank-mailman (input) for mailman id 659129;
 Thu, 21 Dec 2023 19:19: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 1rGOZy-0001Km-Pe
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 19:19: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 1rGOZx-0007tH-Gr; Thu, 21 Dec 2023 19:19:33 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rGOZx-0006sw-9d; Thu, 21 Dec 2023 19:19:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=TMT37EPywLcrHdFLyaPINfUueikf9PSyqpis82OaOzI=; b=pzw8OCK5ey0d46+BuHgflJVFhL
	fxxLcBfJVmAuoEH5E5cf9AXRQ6qXHytj3w9yv/k5gzdsKs+xBUStjqYu37+nS3pUK014r2790EZz6
	3GmPlIMHftdk/v0O4p1Mzn2qampqX5T3Hlbdr30lLmEUbNIEb91PU2cCK69PGqj5t658=;
Message-ID: <cc26db95-c141-4392-a948-52ea3cb917c8@xen.org>
Date: Thu, 21 Dec 2023 19:19:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 7/9] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <e49bae656ed6c0fe689703f78df4e815b955f5b2.1703072575.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <e49bae656ed6c0fe689703f78df4e815b955f5b2.1703072575.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksii,

On 20/12/2023 14:08, Oleksii Kurochko wrote:
> Ifdef-ing inclusion of <asm/grant_table.h> allows to avoid
> generation of empty <asm/grant_table.h> for cases when
> CONFIG_GRANT_TABLE is not enabled.

It would have been nice to explain the reason of this change. Is this a 
compilation error or just a nice thing to have?

The reason I am asking is...

> 
> The following changes were done for Arm:
> <asm/grant_table.h> should be included directly because it contains
> gnttab_dom0_frames() macros which is unique for Arm and is used in
> arch/arm/domain_build.c.
> <asm/grant_table.h> is #ifdef-ed with CONFIG_GRANT_TABLE in
> <xen/grant_table.h> so in case of !CONFIG_GRANT_TABLE gnttab_dom0_frames
> won't be available for use in arch/arm/domain_build.c.

... I find rather ugly that we require domain_build.c to include both 
asm/grant_table.h and xen/grant_table.h.

Right now, I don't have a better approach, so I would be ok so long the 
rationale of the change is explained in the commit message.

> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 19:20:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 19:20:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659132.1028597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGObD-0002ko-8z; Thu, 21 Dec 2023 19:20:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659132.1028597; Thu, 21 Dec 2023 19: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 1rGObD-0002kh-4t; Thu, 21 Dec 2023 19:20:51 +0000
Received: by outflank-mailman (input) for mailman id 659132;
 Thu, 21 Dec 2023 19:20:50 +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 1rGObC-0002kb-Bh
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 19:20:50 +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 1rGObB-0007v4-AC; Thu, 21 Dec 2023 19:20:49 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rGObB-0006sw-52; Thu, 21 Dec 2023 19:20: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=/QPQGH1G8l6Tmm8QmdJjCk22GwDc9pqJiTHTJlg6lEQ=; b=SFsWXsWn+IQcjfpCrnXAchhD4k
	r3UAmeC+7mZ04mxWe3Xd6ovWkLHqa5OKOZjNHFCcCcwe6V6DeYY5a3wVayzFwWUKaN6z+Yxk+mQBq
	1m6EoFt6RNxx9cJ1Bmeei3aB31tJdHInNKaIuWFBS/u84fSMhD7OaYotsnr3w2V9qlrk=;
Message-ID: <3c5cb645-66c3-4abe-985f-19b787887ff3@xen.org>
Date: Thu, 21 Dec 2023 19:20:47 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 7/9] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <e49bae656ed6c0fe689703f78df4e815b955f5b2.1703072575.git.oleksii.kurochko@gmail.com>
 <cc26db95-c141-4392-a948-52ea3cb917c8@xen.org>
In-Reply-To: <cc26db95-c141-4392-a948-52ea3cb917c8@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 21/12/2023 19:19, Julien Grall wrote:
> Hi Oleksii,
> 
> On 20/12/2023 14:08, Oleksii Kurochko wrote:
>> Ifdef-ing inclusion of <asm/grant_table.h> allows to avoid
>> generation of empty <asm/grant_table.h> for cases when
>> CONFIG_GRANT_TABLE is not enabled.
> 
> It would have been nice to explain the reason of this change. Is this a 
> compilation error or just a nice thing to have?
> 
> The reason I am asking is...
> 
>>
>> The following changes were done for Arm:
>> <asm/grant_table.h> should be included directly because it contains
>> gnttab_dom0_frames() macros which is unique for Arm and is used in
>> arch/arm/domain_build.c.
>> <asm/grant_table.h> is #ifdef-ed with CONFIG_GRANT_TABLE in
>> <xen/grant_table.h> so in case of !CONFIG_GRANT_TABLE gnttab_dom0_frames
>> won't be available for use in arch/arm/domain_build.c.
> 
> ... I find rather ugly that we require domain_build.c to include both 
> asm/grant_table.h and xen/grant_table.h.
> 
> Right now, I don't have a better approach, so I would be ok so long the 
> rationale of the change is explained in the commit message.

Urgh, I just realized that this is explained in the commit message. 
Please ignore my comment about expanding the commit message. Sorry for 
the noise.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 19:38:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 19:38:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659139.1028607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGOsL-0005b0-L3; Thu, 21 Dec 2023 19:38:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659139.1028607; Thu, 21 Dec 2023 19: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 1rGOsL-0005at-IM; Thu, 21 Dec 2023 19:38:33 +0000
Received: by outflank-mailman (input) for mailman id 659139;
 Thu, 21 Dec 2023 19:38:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rGOsK-0005an-FS
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 19:38: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 1rGOsJ-0008Fk-3l; Thu, 21 Dec 2023 19:38:31 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rGOsI-0007gP-T7; Thu, 21 Dec 2023 19:38: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=Pnv9DdOjrCBweaguwfyYYdgGnQ3NMsrhFVdslJlEWWY=; b=s2b/O1w2SFwGXYz3598mRYtOPr
	sZuF7Vs8+qBK4zdDExY9NkWBgPf6fruaJs0XObXpk+TNQT+WZ/ISmPxLg3ffwmVjypsOH58Go4hFY
	dDFqo2RH7kgQjcSwdRZzGdKGRAD56w7ME7lem3R+a+X+Op4nh7vjHrwO5neJSf3ehDNA=;
Message-ID: <f41894c6-b061-4aef-9d4a-18effd917043@xen.org>
Date: Thu, 21 Dec 2023 19:38:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 9/9] xen/asm-generic: introduce generic device.h
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Wei Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <55d6810e2f8b0f54261c504354bf879c5b887c40.1703072575.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <55d6810e2f8b0f54261c504354bf879c5b887c40.1703072575.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 20/12/2023 14:08, Oleksii Kurochko wrote:
> Arm, PPC and RISC-V use the same device.h thereby device.h
> was moved to asm-generic. Arm's device.h was taken as a base with
> the following changes:
>   - #ifdef PCI related things.
>   - #ifdef ACPI related things.
>   - Rename #ifdef guards.
>   - Add SPDX tag.
>   - #ifdef CONFIG_HAS_DEVICE_TREE related things.
>   - #ifdef-ing iommu related things with CONFIG_HAS_PASSTHROUGH.
> 
> Also Arm and PPC are switched to asm-generic version of device.h
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> 
>       Jan wrote the following:
>         Overall I think there are too many changes done all in one go here.
>         But it's mostly Arm which is affected, so I'll leave judging about that
>         to the Arm maintainers.
>       
>       Arm maintainers, will it be fine for you to not split the patch?

So in general I agree with Jan, patches should be kept small so they are 
easy to review.

Given the discussion has been on-going for a while (we are at v6),  I 
will give an attempt to review the patch as-is. But in the future, 
please try to split. The smaller it is, the easier to review. For code 
movement and refactoring, I tend to first have a few refactoring patches 
and then move the code in a separate patch. So it is easier to spot the 
differences.

> ---
> Changes in V6:
>   - Rebase only.
> ---
> Changes in V5:
>    - Removed generated file: xen/include/headers++.chk.new
>    - Removed pointless #ifdef CONFIG_HAS_DEVICE_TREE ... #endif for PPC as
>      CONFIG_HAS_DEVICE_TREE will be always used for PPC.
> ---
> Changes in V4:
>   - Updated the commit message
>   - Switched Arm and PPC to asm-generic version of device.h
>   - Replaced HAS_PCI with CONFIG_HAS_PCI
>   - ifdef-ing iommu filed of dev_archdata struct with CONFIG_HAS_PASSTHROUGH
>   - ifdef-ing iommu_fwspec of device struct with CONFIG_HAS_PASSTHROUGH
>   - ifdef-ing DT related things with CONFIG_HAS_DEVICE_TREE
>   - Updated the commit message ( remove a note with question about
>     if device.h should be in asm-generic or not )
>   - Replaced DEVICE_IC with DEVICE_INTERRUPT_CONTROLLER
>   - Rationalized usage of CONFIG_HAS_* in device.h
>   - Fixed indents for ACPI_DEVICE_START and ACPI_DEVICE_END
> ---
> Changes in V3:
>   - ifdef device tree related things.
>   - update the commit message
> ---
> Changes in V2:
> 	- take ( as common ) device.h from Arm as PPC and RISC-V use it as a base.
> 	- #ifdef PCI related things.
> 	- #ifdef ACPI related things.
> 	- rename DEVICE_GIC to DEVIC_IC.
> 	- rename #ifdef guards.
> 	- switch Arm and PPC to generic device.h
> 	- add SPDX tag
> 	- update the commit message
> 
> ---
>   xen/arch/arm/device.c                         |  15 ++-
>   xen/arch/arm/domain_build.c                   |   2 +-
>   xen/arch/arm/gic-v2.c                         |   4 +-
>   xen/arch/arm/gic-v3.c                         |   6 +-
>   xen/arch/arm/gic.c                            |   4 +-
>   xen/arch/arm/include/asm/Makefile             |   1 +
>   xen/arch/ppc/include/asm/Makefile             |   1 +
>   xen/arch/ppc/include/asm/device.h             |  53 --------
>   .../asm => include/asm-generic}/device.h      | 125 +++++++++++-------
>   9 files changed, 102 insertions(+), 109 deletions(-)
>   delete mode 100644 xen/arch/ppc/include/asm/device.h
>   rename xen/{arch/arm/include/asm => include/asm-generic}/device.h (79%)
> 
> diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
> index 1f631d3274..affbe79f9a 100644
> --- a/xen/arch/arm/device.c
> +++ b/xen/arch/arm/device.c
> @@ -16,7 +16,10 @@
>   #include <xen/lib.h>
>   
>   extern const struct device_desc _sdevice[], _edevice[];
> +
> +#ifdef CONFIG_ACPI
>   extern const struct acpi_device_desc _asdevice[], _aedevice[];
> +#endif
>   
>   int __init device_init(struct dt_device_node *dev, enum device_class class,
>                          const void *data)
> @@ -45,6 +48,7 @@ int __init device_init(struct dt_device_node *dev, enum device_class class,
>       return -EBADF;
>   }
>   
> +#ifdef CONFIG_ACPI
>   int __init acpi_device_init(enum device_class class, const void *data, int class_type)
>   {
>       const struct acpi_device_desc *desc;
> @@ -61,6 +65,7 @@ int __init acpi_device_init(enum device_class class, const void *data, int class
>   
>       return -EBADF;
>   }
> +#endif
>   
>   enum device_class device_get_class(const struct dt_device_node *dev)
>   {
> @@ -329,9 +334,13 @@ int handle_device(struct domain *d, struct dt_device_node *dev, p2m_type_t p2mt,
>       struct map_range_data mr_data = {
>           .d = d,
>           .p2mt = p2mt,
> -        .skip_mapping = !own_device ||
> -                        (is_pci_passthrough_enabled() &&
> -                        (device_get_class(dev) == DEVICE_PCI_HOSTBRIDGE)),
> +        .skip_mapping =
> +                        !own_device
> +#ifdef CONFIG_HAS_PCI
> +                        || (is_pci_passthrough_enabled() &&
> +                        (device_get_class(dev) == DEVICE_PCI_HOSTBRIDGE))
> +#endif

So the #ifdef is only here because DEVICE_PCI_HOSTBRIDGE is not defined. 
It is not clear what's the actual problem of keeping 
DEVICE_PCI_HOSTBRIDGE available for every build.

In fact, we have tried to get away from #ifdef in order to make ensure 
we can catch any build failure without a randconfig (see use of 
IS_ENABLED() which would not apply work here).

[...]

> diff --git a/xen/arch/ppc/include/asm/device.h b/xen/arch/ppc/include/asm/device.h
> deleted file mode 100644
> index 8253e61d51..0000000000
> --- a/xen/arch/ppc/include/asm/device.h
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -#ifndef __ASM_PPC_DEVICE_H__
> -#define __ASM_PPC_DEVICE_H__
> -
> -enum device_type
> -{
> -    DEV_DT,
> -    DEV_PCI,
> -};
> -
> -struct device {
> -    enum device_type type;
> -#ifdef CONFIG_HAS_DEVICE_TREE
> -    struct dt_device_node *of_node; /* Used by drivers imported from Linux */
> -#endif
> -};
> -
> -enum device_class
> -{
> -    DEVICE_SERIAL,
> -    DEVICE_IOMMU,
> -    DEVICE_PCI_HOSTBRIDGE,
> -    /* Use for error */
> -    DEVICE_UNKNOWN,
> -};
> -
> -struct device_desc {
> -    /* Device name */
> -    const char *name;
> -    /* Device class */
> -    enum device_class class;
> -    /* List of devices supported by this driver */
> -    const struct dt_device_match *dt_match;
> -    /*
> -     * Device initialization.
> -     *
> -     * -EAGAIN is used to indicate that device probing is deferred.
> -     */
> -    int (*init)(struct dt_device_node *dev, const void *data);
> -};
> -
> -typedef struct device device_t;
> -
> -#define DT_DEVICE_START(name_, namestr_, class_)                    \
> -static const struct device_desc __dev_desc_##name_ __used           \
> -__section(".dev.info") = {                                          \
> -    .name = namestr_,                                               \
> -    .class = class_,                                                \
> -
> -#define DT_DEVICE_END                                               \
> -};
> -
> -#endif /* __ASM_PPC_DEVICE_H__ */
> diff --git a/xen/arch/arm/include/asm/device.h b/xen/include/asm-generic/device.h
> similarity index 79%
> rename from xen/arch/arm/include/asm/device.h
> rename to xen/include/asm-generic/device.h
> index b5d451e087..063c448c4e 100644
> --- a/xen/arch/arm/include/asm/device.h
> +++ b/xen/include/asm-generic/device.h
> @@ -1,14 +1,37 @@
> -#ifndef __ASM_ARM_DEVICE_H
> -#define __ASM_ARM_DEVICE_H
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef __ASM_GENERIC_DEVICE_H__
> +#define __ASM_GENERIC_DEVICE_H__
> +
> +#include <xen/stdbool.h>
>   
>   enum device_type
>   {
> +#ifdef CONFIG_HAS_DEVICE_TREE
>       DEV_DT,
> +#endif
> +
> +#ifdef CONFIG_HAS_PCI
>       DEV_PCI,
> +#endif
> +    DEV_TYPE_MAX,
Nobody is using it. AFAICT, this was introduced because enum may be 
empty if !HAS_DEVICE_TREE and !HAS_PCI. If so, can you add a comment 
explaining it on top?

The rest LGTM.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 19:48:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 19:48:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659144.1028616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGP1g-0007qZ-G9; Thu, 21 Dec 2023 19:48:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659144.1028616; Thu, 21 Dec 2023 19:48:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGP1g-0007qS-DQ; Thu, 21 Dec 2023 19:48:12 +0000
Received: by outflank-mailman (input) for mailman id 659144;
 Thu, 21 Dec 2023 19:48: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 1rGP1f-0007qI-4l; Thu, 21 Dec 2023 19:48: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 1rGP1e-0008RB-QJ; Thu, 21 Dec 2023 19:48: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 1rGP1e-0000sv-ET; Thu, 21 Dec 2023 19:48:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGP1e-0006jf-E3; Thu, 21 Dec 2023 19:48:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kUOrWcyH4LjOe8x1x+Mi7eONMrF27+RZVali0MaooPA=; b=m1p8rm1ZaxjePTypespvaATH25
	N97uYTNpYY4gqzQ7ZegrkTlTZMxPHANWIjeogI8qju0trVJpaA17fmEPR2lZpnCTY+Tz8FzvR0Dtp
	sxzpnxtBC/q8lrs4Ev4DAz5hNRisX0G9YAtbxYESmsVP+RPe8SdoxyO43prqqeTtFMjg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184205-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable-smoke test] 184205: 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=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=3909fb4692dfbf7e46c0bcc37b0a3b943a034da9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 19:48:10 +0000

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

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                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  3909fb4692dfbf7e46c0bcc37b0a3b943a034da9

Last test of basis   184203  2023-12-21 11:00:27 Z    0 days
Testing same since   184205  2023-12-21 15:00:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Arnd Bergmann <arnd@arndb.de>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Roger Pau Monne <roger.pau@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
   3909fb4692..49818cde63  49818cde637b5ec20383e46b71f93b2e7d867686 -> smoke


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 20:00:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 20:00:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659151.1028626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGPDf-0002qJ-Ih; Thu, 21 Dec 2023 20:00:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659151.1028626; Thu, 21 Dec 2023 20:00:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGPDf-0002qC-G9; Thu, 21 Dec 2023 20:00:35 +0000
Received: by outflank-mailman (input) for mailman id 659151;
 Thu, 21 Dec 2023 20:00:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ywj9=IA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGPDd-0002q6-TP
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 20:00:33 +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 9909d5b6-a03b-11ee-98eb-6d05b1d4d9a1;
 Thu, 21 Dec 2023 21:00:32 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-50e49a0b5caso1519935e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 12:00:32 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 dx10-20020a0565122c0a00b0050e5a280ce0sm334012lfb.106.2023.12.21.12.00.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Dec 2023 12:00:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9909d5b6-a03b-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703188832; x=1703793632; 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=x9WEUIFmKJqPKGpZfKvPoIyWtjVLcECz2Yl/a8fI660=;
        b=i+bllZES3SbRn9LDh4joUzYNOGCQSfW3LmJulBlRuSuzgdyIDB7rsudpEvz4RejOL9
         0eLE1MwhUOhN2QBsHAdUoLWPfwXxKExta1zOfl+PCrudQDgNVEBXSRi1uomt1pepItcb
         rYVua3F5+sTRzLb7f1YkkVODvzGqWXnaDZb+UupoS0ZS1raTSYtpOMT9aN20XQHF/Jiz
         LUgH18dUigpSCUkbgR5fg7lLREOzj1hi2j5yKT0RzAdvFdZTLlEG/Z6lo3JJJlmxwW1A
         zShIXbiwLi0etK2EnvcMmDbljXzn4glnRrt0PWnmmnJFA4ahZ1yXeIa89CYljq7mJEGM
         ROwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703188832; x=1703793632;
        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=x9WEUIFmKJqPKGpZfKvPoIyWtjVLcECz2Yl/a8fI660=;
        b=cRy/8V8pV1IpiBTxAhadDokoVUsNRTXzZRJ3ub9BcFRM2y+sOXJ/5WOPTEFDBEegd9
         pnhWszeTQoqSYqtDIXjdJwLFr9/nd7gmecwy1LrZfFN1IJDMqoZfLYIT56nT7wfWeoaa
         c7oWC6bNe0G/O/2uCtl32yZyKytsAE5KjZbEi4WeRx8JE4tkgSRb+f1pusr1LRJtVfLM
         PgPkJJ78CZ8mn3j/u/viOS895XTidLwEu80kSWJKzJ22kXwk0NkrNLkAmEaOdYTrV2YP
         /ntCurPnMxNmEg2xPXDD2sZXHyBBb/R/Ul1yhWumV8UVWLxPZpTkeCcVFfrQUUi9ZYqe
         HDKg==
X-Gm-Message-State: AOJu0Yy7hriPzYQO1suWtAuWxfniZBqpMXdmFEIZy9o79ayV3os9cV6k
	5KVBvpz0g/gncjH61SRPsbM=
X-Google-Smtp-Source: AGHT+IF7Hl2w0ylbL1sOUk+gyND6x3GKK2P5kU7YDDkBOaI7TLO0dzLgU3JzxAKt86ug05AIqklyVg==
X-Received: by 2002:a19:4f55:0:b0:50b:fad6:2f86 with SMTP id a21-20020a194f55000000b0050bfad62f86mr80918lfk.126.1703188831875;
        Thu, 21 Dec 2023 12:00:31 -0800 (PST)
Message-ID: <8deb45febe3d8061bca4a8376c280befeaa00fed.camel@gmail.com>
Subject: Re: [PATCH v2 30/39] xen/riscv: define an address of frame table
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Thu, 21 Dec 2023 21:59:54 +0200
In-Reply-To: <abacb997-99f4-49c3-b146-320cc9ff1a90@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <13ad41657814e4fc235772fa0928de1723ae7c3d.1700761381.git.oleksii.kurochko@gmail.com>
	 <b2c42d56-6bc8-4ea8-9e6f-cae259c274c5@suse.com>
	 <5d3e7f9ad7ff0eb779e269eee1c42300d987b5a1.camel@gmail.com>
	 <abacb997-99f4-49c3-b146-320cc9ff1a90@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Mon, 2023-12-18 at 12:22 +0100, Jan Beulich wrote:
> On 18.12.2023 11:36, Oleksii wrote:
> > On Thu, 2023-12-14 at 16:48 +0100, Jan Beulich wrote:
> > > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > +#define SLOTN_ENTRY_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 SLOTN(1)
> > > > +
> > > > =C2=A0#define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL) + 1
> > > > -
> > > > GB(1)) */
> > > > +
> > > > +#define FRAMETABLE_VIRT_START=C2=A0=C2=A0 SLOTN(196)
> > > > +#define FRAMETABLE_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 GB(3)
> > > > +#define FRAMETABLE_NR=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 (FRAMETABLE_SIZE /
> > > > sizeof(*frame_table))
> > > > +#define FRAMETABLE_VIRT_END=C2=A0=C2=A0=C2=A0=C2=A0 (FRAMETABLE_VI=
RT_START +
> > > > FRAMETABLE_SIZE - 1)
> > > > +
> > > > +#define VMAP_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 SLOTN(194)
> > > > +#define VMAP_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 GB(1)
> > >=20
> > > May I suggest that you keep these blocks sorted by slot number?
> > > Or
> > > wait,
> > > the layout comment further up is also in decreasing order, so
> > > that's
> > > fine here, but then can all of this please be moved next to the
> > > comment
> > > actually providing the necessary context (thus eliminating the
> > > need
> > > for
> > > new comments)?
> > Sure, I'll put this part close to layout comment.
> >=20
> > > =C2=A0You'll then also notice that the generalization here
> > > (keeping basically the same layout for e.g. SATP_MODE_SV48, just
> > > shifted
> > > by 9 bits) isn't in line with the comment there.
> > Does it make sense to add another one table with updated addresses
> > for
> > SATP_MODE_SV48?
>=20
> Well, especially if you mean to support that mode, its layout surely
> wants writing down. I was hoping though that maybe you/we could get
> away
> without multiple tables, but e.g. use one having multiple columns.
I came up with the following but I am not sure that it is really
convient:
/*
 * RISC-V64 Layout:
 *
#if RV_STAGE1_MODE =3D=3D SATP_MODE_SV39
 *
 * From the riscv-privileged doc:
 *   When mapping between narrower and wider addresses,
 *   RISC-V zero-extends a narrower physical address to a wider size.
 *   The mapping between 64-bit virtual addresses and the 39-bit usable
 *   address space of Sv39 is not based on zero-extension but instead
 *   follows an entrenched convention that allows an OS to use one or
 *   a few of the most-significant bits of a full-size (64-bit) virtual
 *   address to quickly distinguish user and supervisor address
regions.
 *
 * It means that:
 *   top VA bits are simply ignored for the purpose of translating to
PA.
#endif
 *
 *       SATP_MODE_SV32   SATP_MODE_SV39   SATP_MODE_SV48 =20
SATP_MODE_SV57
 *     ----------------------------------------------------------------
-----------
 * BA0 | FFFFFFFFFFE00000 | FFFFFFFFC0000000 | FFFFFF8000000000 |
FFFF000000000000
 * BA1 | 0000000019000000 | 0000003200000000 | 0000640000000000 |
00C8000000000000
 * BA2 | 0000000018800000 | 0000003100000000 | 0000620000000000 |
00C4000000000000
 * BA3 | 0000000018400000 | 0000003080000000 | 0000610000000000 |
00C2000000000000
 *=20
 *
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D=3D=3D=3D
 * Start addr    |   End addr           |  Size  | Slot       |area
description
 *
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D=3D=3D=3D
 * BA0 + 0x800000 |  FFFFFFFFFFFFFFFF   |1016 MB |
L${HYP_PT_ROOT_LEVEL} 511     | Unused
 * BA0 + 0x400000 |  BA0 + 0x800000     |  2 MB  |
L${HYP_PT_ROOT_LEVEL} 511     | Fixmap
 * BA0 + 0x200000 |  BA0 + 0x400000     |  4 MB  |
L${HYP_PT_ROOT_LEVEL} 511     | FDT
 * BA0            |  BA0 + 0x200000     |  2 MB  |
L${HYP_PT_ROOT_LEVEL} 511     | Xen
 *                 ...                  |  1 GB  |
L${HYP_PT_ROOT_LEVEL} 510     | Unused
 * BA1 + 0x000000 |  BA1 + 0x4D80000000 | 309 GB |
L${HYP_PT_ROOT_LEVEL} 200-509 | Direct map
 *                 ...                  |  1 GB  |
L${HYP_PT_ROOT_LEVEL} 199     | Unused
 * BA2 + 0x000000 |  BA2 + 0xC0000000   |  3 GB  |
L${HYP_PT_ROOT_LEVEL} 196-198 | Frametable
 *                 ...                  |  1 GB  |
L${HYP_PT_ROOT_LEVEL} 195     | Unused
 * BA3 + 0x000000 |  BA3 + 0x40000000   |  1 GB  |
L${HYP_PT_ROOT_LEVEL} 194     | VMAP
 *                 ...                  | 194 GB |
L${HYP_PT_ROOT_LEVEL} 0 - 193 | Unused
 *
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D=3D=3D=3D
 */

Do you have better ideas?

Thanks in advamce.

~ Oleksii
>=20
>=20
> > Microchip has h/w which requires SATP_MODE_SV48 ( at least ), so I
> > have
> > a patch which introduces SATP_MODE_SV48 and I planned to update the
> > layout table in this patch.
>=20
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Thu Dec 21 20:41:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 20:41:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659158.1028637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGPr4-00023s-OJ; Thu, 21 Dec 2023 20:41:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659158.1028637; Thu, 21 Dec 2023 20: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 1rGPr4-00023l-LH; Thu, 21 Dec 2023 20:41:18 +0000
Received: by outflank-mailman (input) for mailman id 659158;
 Thu, 21 Dec 2023 20: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=G8UO=IA=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rGPr3-00022A-DN
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 20:41:17 +0000
Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com
 [2607:f8b0:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47958bda-a041-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 21:41:13 +0100 (CET)
Received: by mail-pf1-x429.google.com with SMTP id
 d2e1a72fcca58-6d39132d6baso781819b3a.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Dec 2023 12:41:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47958bda-a041-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703191272; x=1703796072; 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=GKqxoi87EbH/9z63phVS4iIf2Nc0b8+gNLf5qWxH2TM=;
        b=hdywRMSdk+EuMrUpEYQTWOp8qpWee2GeXcaUrCGQ0YQLBg9hszo6qd+N+wmUb173BH
         xZkss2tBwgipD69M5X0f+AN1yWitgJPcj8rYQ+i0Ac+aiCZco2PZpHTEsvnzpBF7MYE4
         gBBPn9rsDLezSCRdcU0VSOdY3vkhhJLt1919H4odLA0YoCPh91Ea834qeEI1cOth6hJh
         Yai553JHHwjSFW4JtvWXJ9hiHX6yOlE6MTZ9oedQhJyuIYWBCOqsQA6y0tkNnjy/fD6h
         NYH35hdTaH9oGwUf2dYLcBk3xP7+5IcZJyN4AKuNnWtPKsP2+Cgof/oaU3fm2+VohB71
         BbLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703191272; x=1703796072;
        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=GKqxoi87EbH/9z63phVS4iIf2Nc0b8+gNLf5qWxH2TM=;
        b=nNqJE70iKO5OXa8d8bCrBvmkVcU5BIyFV2dL1X4bNy8Fhl8jhYK5oMJV10S8L5P6fX
         PpFem1AFFYcrXsJ8ieYK/6U7i4JiuyopIr++48lBXlC4oNZCJonpAOt1PKwUkeB3Rq/b
         h8E5KJ8PzFRcXKwlli5+IYUoNg++Gf0akx2RnZ6/QHdFyhyWRbnxbXO6+ioM7qGx/ONp
         DKCRfJjMIvEMp9iT8vy9GgEj737EQGbXIBNagbVVBieODxUt+x4YsxLsZZv4Hz7amvf0
         wKOyd3Xt9WNP7cY3cGL2YtG2rd2+reuMs8A0AHJwrhhZqlVhHoUqGwMsiUEY434++DbY
         UoxA==
X-Gm-Message-State: AOJu0YyOSnWYhWIvFYWAiZYeQhM/6dnAtC/AqITEDXcNSHO8b5O7aNe7
	IbPGdcMQ7bJs9BWkUiBiqztnl5nXlFEqhQQktc0=
X-Google-Smtp-Source: AGHT+IHXKGk9RfQkluoZSj07RynXBgT6pi926lW8OV+iu+ZptrzpRjlYI8sYJzcuOhG2q5zuM8Y1AZBKO23DcHMlNB4=
X-Received: by 2002:aa7:9eca:0:b0:6d5:8889:f13b with SMTP id
 r10-20020aa79eca000000b006d58889f13bmr228047pfq.63.1703191272104; Thu, 21 Dec
 2023 12:41:12 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <CAKm-UmbDNbeakVQtDT47o4Qc4oQvi0dqmBDb5Q=pRqTHFY0C5w@mail.gmail.com>
 <CAKm-UmZtN2o3d13cE9GyyLKfMmZ855MfrAAw9O6zE-5ob0-iYg@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com> <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
 <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com> <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
In-Reply-To: <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Thu, 21 Dec 2023 21:41:00 +0100
Message-ID: <CAKm-Umbs2D7NHFE+NW2xKOu7-AZhFpH4uzE5QTuQusnGA_eNWA@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Juergen Gross <jgross@suse.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000c2296e060d0b1e38"

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

Le jeu. 21 d=C3=A9c. 2023 =C3=A0 14:29, Juergen Gross <jgross@suse.com> a =
=C3=A9crit :

> On 21.12.23 13:40, Jan Beulich wrote:
> > On 20.12.2023 17:34, S=C3=A9bastien Chaumat wrote:
> >> Here are the patches I made to xen and linux kernel
> >> Plus dmesg (bare metal,xen) and "xl dmesg"
> >
> > So the problem looks to be that pci_xen_initial_domain() results in
> > permanent setup of IRQ7, when there only "static" ACPI tables (in
> > particular source overrides in MADT) are consulted. The necessary
> > settings, however, are known only after _CRS for the device was
> > evaluated (and possibly _PRS followed by invocation of _SRS). All of
> > this happens before xen_register_gsi() is called. But that function's
> > call to xen_register_pirq() is short-circuited by the very first if()
> > in xen_register_pirq() when there was an earlier invocation. Hence
> > the (wrong) "edge" binding remains in place, as was established by
> > the earlier call here.
> >
> > J=C3=BCrgen, there's an interesting comment in xen_bind_pirq_gsi_to_irq=
(),
> > right before invoking irq_set_chip_and_handler_name(). Despite what
> > the comment says (according to my reading), the fasteoi one is _not_
> > used in all cases. Assuming there's a reason for this, it's not clear
> > to me whether updating the handler later on is a valid thing to do.
> > __irq_set_handler() being even an exported symbol suggests that might
> > be an option to use here. Then again merely updating the handler may
> > not be sufficient, seeing there are also e.g. IRQD_TRIGGER_MASK and
> > IRQD_LEVEL.
>
> I understand the last paragraph of that comment to reason, that in case
> pirq_needs_eoi() return true even in case of an edge triggered interrupt,
> the outcome is still okay.
>
> I don't think updating the handler later is valid.
>
> > S=C3=A9bastien, to prove the (still pretty weak) theory that the change=
 in
> > handler is all that's needed to make things work in your case, could
> > you fiddle with pci_xen_initial_domain() to have it skip IRQ7? (That
> > of course won't be a proper solution, but ought to be okay for your
> > system.) The main weakness of the theory is that IRQ7 really isn't
> > very special in this regard - other PCI IRQs routed to the low 16
> > IO-APIC pins ought to have similar issues (from the log, on your
> > system this would be at least IRQ6 and IRQ10, except that they happen
> > to be edge/low, so fitting the ISA defaults); only IRQ16 and up would
> > work okay.
> >
>

Doing just that : IQR7 is now  of type level
  xen-pirq     -ioapic-level  pinctrl_amd


(but is ioapic-level there totally equivalent to the fasteoi of baremetal)
Still the touchpad does not work.

And we have now :
Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-PIXA3854:00: failed to
reset device: -61
Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-PIXA3854:00
failed with error -61

in addition to
Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-FRMW0004:00: failed to
reset device: -61
Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-FRMW0005:00: failed to
reset device: -61
Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRMW0004:00
failed with error -61
Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRMW0005:00
failed with error -61


I noticed that on baremetal :

  53:          0          0          0          0          0       1268
     0          0          0          0          0          0          0
       0          0          0  amd_gpio    5  FRMW0005:00
  54:          0          0          0          0          0          1
     0          0          0          0          0          0          0
       0          0          0  amd_gpio   84  FRMW0004:00
  55:          0          0          0          0          0       1403
     0          0          0          0          0          0          0
       0          0          0  amd_gpio    8  PIXA3854:00

with xen with IRQ7 setup only once there's only (the touchpad is
PIXA3854:00)

 176:          0          0          0          0          0          0
     1          0          0          0          0          0          0
       0          0          0  amd_gpio    8

Interestingly when IRQ7 is setup twice (normal xen)
 176:          0          0          0          0          0          0
     1          0          0          0          0          0          0
       0          0          0  amd_gpio    8  PIXA3854:00


> Furthermore it might be interesting to know whether ELCR would give us
> > any hint in this case. Sadly depending on where you look,
> > applicability of this pair of registers (I/O ports 0x4d0 and 0x4d1)
> > to other than EISA systems is claimed true or false. Could you perhaps
> > make Xen simply log the values read from those two ports, by e.g.
> > inserting
> >
> >      printk("ELCR: %02x, %02x\n", inb(0x4d0), inb(0x4d1));
> >
> > in, say, setup_dump_irqs()?
> >
>
did that but I don't know how to trigger the dump.

S=C3=A9bastien

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

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><br></d=
iv><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Le=
=C2=A0jeu. 21 d=C3=A9c. 2023 =C3=A0=C2=A014:29, Juergen Gross &lt;<a href=
=3D"mailto:jgross@suse.com">jgross@suse.com</a>&gt; a =C3=A9crit=C2=A0:<br>=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex">On 21.12.23 13:40, =
Jan Beulich wrote:<br>
&gt; On 20.12.2023 17:34, S=C3=A9bastien Chaumat wrote:<br>
&gt;&gt; Here are the patches I made to xen and linux kernel<br>
&gt;&gt; Plus dmesg (bare metal,xen) and &quot;xl dmesg&quot;<br>
&gt; <br>
&gt; So the problem looks to be that pci_xen_initial_domain() results in<br=
>
&gt; permanent setup of IRQ7, when there only &quot;static&quot; ACPI table=
s (in<br>
&gt; particular source overrides in MADT) are consulted. The necessary<br>
&gt; settings, however, are known only after _CRS for the device was<br>
&gt; evaluated (and possibly _PRS followed by invocation of _SRS). All of<b=
r>
&gt; this happens before xen_register_gsi() is called. But that function&#3=
9;s<br>
&gt; call to xen_register_pirq() is short-circuited by the very first if()<=
br>
&gt; in xen_register_pirq() when there was an earlier invocation. Hence<br>
&gt; the (wrong) &quot;edge&quot; binding remains in place, as was establis=
hed by<br>
&gt; the earlier call here.<br>
&gt; <br>
&gt; J=C3=BCrgen, there&#39;s an interesting comment in xen_bind_pirq_gsi_t=
o_irq(),<br>
&gt; right before invoking irq_set_chip_and_handler_name(). Despite what<br=
>
&gt; the comment says (according to my reading), the fasteoi one is _not_<b=
r>
&gt; used in all cases. Assuming there&#39;s a reason for this, it&#39;s no=
t clear<br>
&gt; to me whether updating the handler later on is a valid thing to do.<br=
>
&gt; __irq_set_handler() being even an exported symbol suggests that might<=
br>
&gt; be an option to use here. Then again merely updating the handler may<b=
r>
&gt; not be sufficient, seeing there are also e.g. IRQD_TRIGGER_MASK and<br=
>
&gt; IRQD_LEVEL.<br>
<br>
I understand the last paragraph of that comment to reason, that in case<br>
pirq_needs_eoi() return true even in case of an edge triggered interrupt,<b=
r>
the outcome is still okay.<br>
<br>
I don&#39;t think updating the handler later is valid.<br>
<br>
&gt; S=C3=A9bastien, to prove the (still pretty weak) theory that the chang=
e in<br>
&gt; handler is all that&#39;s needed to make things work in your case, cou=
ld<br>
&gt; you fiddle with pci_xen_initial_domain() to have it skip IRQ7? (That<b=
r>
&gt; of course won&#39;t be a proper solution, but ought to be okay for you=
r<br>
&gt; system.) The main weakness of the theory is that IRQ7 really isn&#39;t=
<br>
&gt; very special in this regard - other PCI IRQs routed to the low 16<br>
&gt; IO-APIC pins ought to have similar issues (from the log, on your<br>
&gt; system this would be at least IRQ6 and IRQ10, except that they happen<=
br>
&gt; to be edge/low, so fitting the ISA defaults); only IRQ16 and up would<=
br>
&gt; work okay.<br>
&gt; <br></blockquote><div><br></div><div>Doing just that : IQR7 is now=C2=
=A0 of type level<br></div><div>=C2=A0 xen-pirq =C2=A0 =C2=A0 -ioapic-level=
 =C2=A0pinctrl_amd<br></div><div><br></div><div><br></div><div>(but is ioap=
ic-level there totally equivalent to the fasteoi of baremetal)<br></div><di=
v>Still the touchpad does not work.</div><div><br></div><div>And we have no=
w :</div><div>Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-PIXA3854:00: =
failed to reset device: -61</div><div>Dec 21 20:14:17 fedora kernel: i2c_hi=
d_acpi: probe of i2c-PIXA3854:00 failed with error -61</div><div><br></div>=
<div>in addition to <br></div><div>Dec 21 20:13:57 fedora kernel: i2c_hid_a=
cpi i2c-FRMW0004:00: failed to reset device: -61<br>Dec 21 20:13:57 fedora =
kernel: i2c_hid_acpi i2c-FRMW0005:00: failed to reset device: -61<br>Dec 21=
 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRMW0004:00 failed with=
 error -61<br>Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRM=
W0005:00 failed with error -61</div><div><br></div><div><br></div><div>I no=
ticed that on baremetal :</div><div><br>=C2=A0 53: =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 =C2=A0 =C2=A0 =C2=A0 1268 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A00 =C2=A0amd_gpio =C2=A0 =C2=A05 =C2=A0FRMW0005:00<br>=
=C2=A0 54: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
1 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0amd_=
gpio =C2=A0 84 =C2=A0FRMW0004:00<br>=C2=A0 55: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
0 =C2=A0 =C2=A0 =C2=A0 1403 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A00 =C2=A0amd_gpio =C2=A0 =C2=A08 =C2=A0PIXA3854:00</div><div><=
br></div><div>with xen with IRQ7 setup only once there&#39;s only (the touc=
hpad is PIXA3854:00) <br></div><div><br></div><div>=C2=A0176: =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A01 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0amd_gpio =C2=A0 =C2=A08</=
div><div><br></div><div>Interestingly when IRQ7 is setup twice (normal xen)=
 <br></div><div>=C2=A0176: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A01 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A00 =C2=A0amd_gpio =C2=A0 =C2=A08 =C2=A0PIXA3854:00</div><div><br></di=
v><div><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">
&gt; Furthermore it might be interesting to know whether ELCR would give us=
<br>
&gt; any hint in this case. Sadly depending on where you look,<br>
&gt; applicability of this pair of registers (I/O ports 0x4d0 and 0x4d1)<br=
>
&gt; to other than EISA systems is claimed true or false. Could you perhaps=
<br>
&gt; make Xen simply log the values read from those two ports, by e.g.<br>
&gt; inserting<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 printk(&quot;ELCR: %02x, %02x\n&quot;, inb(0x4d0),=
 inb(0x4d1));<br>
&gt; <br>
&gt; in, say, setup_dump_irqs()?<br>
&gt; <br></blockquote><div>did that but I don&#39;t know how to trigger the=
 dump.<br></div><div>=C2=A0</div><div>S=C3=A9bastien
</div></div></div></div></div>

--000000000000c2296e060d0b1e38--


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 22:15:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 22:15:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659163.1028647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGRK7-0005zI-7V; Thu, 21 Dec 2023 22:15:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659163.1028647; Thu, 21 Dec 2023 22:15:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGRK7-0005zB-4H; Thu, 21 Dec 2023 22:15:23 +0000
Received: by outflank-mailman (input) for mailman id 659163;
 Thu, 21 Dec 2023 22:15: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 1rGRK6-0005z1-5i; Thu, 21 Dec 2023 22:15: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 1rGRK5-0002ob-Mi; Thu, 21 Dec 2023 22: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 1rGRK5-0005ad-5v; Thu, 21 Dec 2023 22:15:21 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGRK5-0004d6-5T; Thu, 21 Dec 2023 22: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=17Y8rP5tILfzw3EXIIrfgb/l8/gu8HZWr2dFS09ta/w=; b=QN8BDc0nhEDCvhLFy/0ACSR2Rp
	TTIQWEXwiadjk+nupN9Qnwmjuh8DSqAcr7Q7MrBzA+QrqXRSSt2GVY3d7cSz036yAK0keXM12m0YF
	oojnA0MXfmcRO5K6HxPy0ftVXO/KLdWCoVGaNyDsynt9TW1T7wSEdA2afF+bfV9BqRTo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184201-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184201: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-credit1:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-credit1: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-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-arm64-arm64-xl-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-amd64-amd64-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-raw: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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt: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-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=a4aebe936554dac6a91e5d091179c934f8325708
X-Osstest-Versions-That:
    linux=1a44b0073b9235521280e19d963b6dfef7888f18
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 21 Dec 2023 22:15:21 +0000

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

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 184194
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184194
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184194
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184194
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184194
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184194
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184194
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184194
 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-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-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-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-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                a4aebe936554dac6a91e5d091179c934f8325708
baseline version:
 linux                1a44b0073b9235521280e19d963b6dfef7888f18

Last test of basis   184194  2023-12-20 20:40:45 Z    1 days
Testing same since   184201  2023-12-21 08:46:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexander Gordeev <agordeev@linux.ibm.com>
  Andrew Davis <afd@ti.com>
  Arnd Bergmann <arnd@arndb.de>
  Chukun Pan <amadeus@jmu.edu.cn>
  Geert Uytterhoeven <geert+renesas@glider.be>
  Heiko Carstens <hca@linux.ibm.com>
  Ilpo JÃ¤rvinen <ilpo.jarvinen@linux.intel.com>
  Jernej Skrabec <jernej.skrabec@gmail.com>
  Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  Kunwu Chan <chentao@kylinos.cn>
  Linus Torvalds <torvalds@linux-foundation.org>
  Macpaul Lin <macpaul.lin@mediatek.com>
  Mario Limonciello <mario.limonciello@amd.com>
  Paulo Alcantara (SUSE) <pc@manguebit.com>
  Paulo Alcantara <pc@manguebit.com>
  Philipp Zabel <p.zabel@pengutronix.de>
  Rajvi Jingar <rajvi.jingar@linux.intel.com>
  Sami Tolvanen <samitolvanen@google.com>
  Shyam Prasad N <sprasad@microsoft.com>
  Steve French <stfrench@microsoft.com>
  Tony Lindgren <tony@atomide.com>
  Vineeth Vijayan <vneethv@linux.ibm.com>
  Vishnu Sankar <vishnuocv@gmail.com>
  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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   1a44b0073b92..a4aebe936554  a4aebe936554dac6a91e5d091179c934f8325708 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 22:59:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 22:59:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659173.1028657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGS0R-0002gH-CW; Thu, 21 Dec 2023 22:59:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659173.1028657; Thu, 21 Dec 2023 22:59:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGS0R-0002gA-9m; Thu, 21 Dec 2023 22:59:07 +0000
Received: by outflank-mailman (input) for mailman id 659173;
 Thu, 21 Dec 2023 22:59:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zbL5=IA=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1rGS0Q-0002g4-Bc
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 22:59:06 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061d.outbound.protection.outlook.com
 [2a01:111:f400:7e88::61d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 880efef6-a054-11ee-9b0f-b553b5be7939;
 Thu, 21 Dec 2023 23:59:02 +0100 (CET)
Received: from DM6PR08CA0033.namprd08.prod.outlook.com (2603:10b6:5:80::46) by
 CY8PR12MB7313.namprd12.prod.outlook.com (2603:10b6:930:53::17) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7113.21; Thu, 21 Dec 2023 22:58:58 +0000
Received: from DS2PEPF00003443.namprd04.prod.outlook.com
 (2603:10b6:5:80:cafe::85) by DM6PR08CA0033.outlook.office365.com
 (2603:10b6:5:80::46) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.20 via Frontend
 Transport; Thu, 21 Dec 2023 22:58:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS2PEPF00003443.mail.protection.outlook.com (10.167.17.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.7113.14 via Frontend Transport; Thu, 21 Dec 2023 22:58:58 +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.34; Thu, 21 Dec
 2023 16:58:57 -0600
Received: from [192.168.153.23] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.34 via Frontend
 Transport; Thu, 21 Dec 2023 16:58:57 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 880efef6-a054-11ee-9b0f-b553b5be7939
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UiY9ToQvV9pUz16F8SmbqfsCKpR+ZOHa5YvkLVn5vDUq8G3e080YQ33y3xA9kCEgyd07ybHXhe+5L0jzrOmH/TNpRXiYBZGNR/I/2Z3gehI/BNj1wbiEEHmjkc+4pVUKQPjY6JefbX4W8ixH3NPiS9bHu+1vhtsD1+NDKjUv1KKuuNf6AehPj+KNEksUSxV3bisvdEMJrFhvNNXt6iu99VjaTEEMSVU+f5Pbt3BrCFMuN3Q+Uj/zuqbREDZY7Gfa0LLetzTKhc60vZBgZw9fTZ/WYwFeM0KnNPlfWa0D6Nq/OcX3TMuKaIQKz/goXVTGScgf9pzyuRTwPDXmAq/sHg==
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=sa4XLFKrR7Aeo/xT9cHfAQPbhTzzYndXoTwui3OKAy0=;
 b=YB6ikMOLTc/iGHz+gliL1LA5QabXSepynBeWKmslySfxqUlREI+CBM6k5vCnfEMtB+2kgkiFsdPhGb0TXz0DiwAO5OXaANT7YHGspSSbKNR3VLu/3CNvasJTzoNNKu1qIO37PYUa7aZC7GAqXtdYXWWqns2IFLGvGl1FgF/6IOFfZMG6pmoW29zHyta+hjPLoDu2L78c6ulqcbLz1CgwFsQNaNxD38bB12ABuIoKCEY8SDwr3N5wh4eiZFeXEYzkDqoPwYOIn0jGpy0zGIjdFS+bPzXBn9IbfDtDGnggWqLAzzU3qg/jowQBMBYQT4aeoxSsdRUUTaM5lCzRWuPDsQ==
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=sa4XLFKrR7Aeo/xT9cHfAQPbhTzzYndXoTwui3OKAy0=;
 b=sP4M6mPhQr7iST9+KTNbMRZ5oIbj3vxNg4XUR9EAx3D+HiHtbBTHfKMgu0iaRlJC3sbMFLftpJtx0f/WdqeazkrZljPMorAQ7H87i+fOtYbV98rndb00AIDfyK5Sds0p9s7ez/WPlmf6d0cptHAEIyb/Iy+C9J1V1+dgEgSAt4I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <1c8de4d7-bce7-4735-baab-e4a1fef3f880@amd.com>
Date: Thu, 21 Dec 2023 17:58:56 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v10 12/17] vpci/header: emulate PCI_COMMAND register for
 guests
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
References: <20231012220854.2736994-1-volodymyr_babchuk@epam.com>
 <20231012220854.2736994-13-volodymyr_babchuk@epam.com>
 <ZVy73iJ3E8nJHvgf@macbook.local>
Content-Language: en-US
In-Reply-To: <ZVy73iJ3E8nJHvgf@macbook.local>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003443:EE_|CY8PR12MB7313:EE_
X-MS-Office365-Filtering-Correlation-Id: 05c82918-2970-4362-f33c-08dc02786a76
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info:
	Fooy8ijDAFVBcByWk+cyRzC9ZH8hbWwvIlYqK7+podKFDovi67ewe/sNAWUejcyp9zAbGTfTNlT93cnEPqY3MKUh5mT7hApSvA/7Lrs7L8QCpxtXttES4Lfc5khZEGZWDOttzUQV21oZ7m/+FTT56vDlaIETGtGaepo4/bBttBfFQaFj20pongiBdt0Nxdtu6aeJqMIT/EkIq9p72ZvqbbTr2Hi1ImgcZCK9E+D+G2Ukak1EM39qaRkkUbA6rcrP8Wybq9D0UoX1wX4C9BxKkBA8uDqYMy4c64NRJ3PRfT5NHkgurluN8xTxXPLcZs4wn6NxgNOHkuA1VMnJzLRIxo6djYWmQITymaURTSc50oHCM8ENy/G/ROWeRa0vMIAGIPFMZN5+vOi+ByuW5AYwqzIr1kMKdNVCrF5Zk+JtDyHUfb79vdZTOpYbv0cUc4KTqWKWcEDHoLXOxqGdRHtKOI8f1CJKBlK/FfwZqPwjrlAKoUw9TuRZxKKVF449D8/sgnEzrmuxk1OYkJVQ6vVJbnp4cIS6LKfNlHBDLENDQSQ6PO2T/OjZ2uvr70SgyIhuTvvcCcgkZnPnPZM4hZ8q4aqifrYUs7EgWQxHQ1HS/Q9Jky86pzvVOWJb/mrq8q4jUhyYFu3ZduzLMP9NIJoSe245M1py1ZWkxcUyHf+9eRXxFgm2/s0OrPv0mWCUWQXG7ZHtOi6EgTFlOnyXIeJR+SEdP0qraB3FlsV6yLsAJ0+rQexsn5CJoqXaYEFvYbnoGLKf1RCo+dF3jqyQ8D3H/pUYQxzN2xPQRnBp87H/yEvVLdFG7NkPnM4/sYvbQI30l4tI4zS2AV/Q1r1ZtbPqsy/VGaOIQBR5788OmURzHpY=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(396003)(376002)(39860400002)(346002)(230922051799003)(230173577357003)(230273577357003)(64100799003)(82310400011)(1800799012)(451199024)(186009)(36840700001)(40470700004)(46966006)(336012)(31686004)(426003)(26005)(40460700003)(40480700001)(53546011)(478600001)(2616005)(47076005)(5660300002)(8676002)(4326008)(36860700001)(44832011)(83380400001)(110136005)(8936002)(81166007)(356005)(82740400003)(2906002)(30864003)(16576012)(316002)(54906003)(70206006)(70586007)(86362001)(31696002)(41300700001)(36756003)(43740500002)(36900700001);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2023 22:58:58.4498
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 05c82918-2970-4362-f33c-08dc02786a76
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003443.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7313

On 11/21/23 09:17, Roger Pau MonnÃ© wrote:
> On Thu, Oct 12, 2023 at 10:09:18PM +0000, Volodymyr Babchuk wrote:
>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>
>> Xen and/or Dom0 may have put values in PCI_COMMAND which they expect
>> to remain unaltered. PCI_COMMAND_SERR bit is a good example: while the
>> guest's view of this will want to be zero initially, the host having set
>> it to 1 may not easily be overwritten with 0, or else we'd effectively
>> imply giving the guest control of the bit. Thus, PCI_COMMAND register needs
>> proper emulation in order to honor host's settings.
>>
>> According to "PCI LOCAL BUS SPECIFICATION, REV. 3.0", section "6.2.2
>> Device Control" the reset state of the command register is typically 0,
>> so when assigning a PCI device use 0 as the initial state for the guest's view
>> of the command register.
>>
>> Here is the full list of command register bits with notes about
>> emulation, along with QEMU behavior in the same situation:
>>
>> PCI_COMMAND_IO - QEMU does not allow a guest to change value of this bit
>> in real device. Instead it is always set to 1.

As far as I can tell QEMU only sets this bit to 1 (in hardware) if it exposes an I/O BAR to the guest.

>> A guest can write to this
>> register, but writes are ignored.

In Xen, I think we should use rsvdp_mask for domUs for now since we don't (yet) support I/O BARs for domUs in vPCI.

>>
>> PCI_COMMAND_MEMORY - QEMU behaves exactly as with PCI_COMMAND_IO. In
>> Xen case, we handle writes to this bit by mapping/unmapping BAR
>> regions. For devices assigned to DomUs, memory decoding will be
>> disabled and the initialization.
>>
>> PCI_COMMAND_MASTER - Allow guest to control it. QEMU passes through
>> writes to this bit.
>>
>> PCI_COMMAND_SPECIAL - Guest can generate special cycles only if it has
>> access to host bridge that supports software generation of special
>> cycles. In our case guest has no access to host bridges at all. Value
>> after reset is 0. QEMU passes through writes of this bit, we will do
>> the same.
>>
>> PCI_COMMAND_INVALIDATE - Allows "Memory Write and Invalidate" commands
>> to be generated. It requires additional configuration via Cacheline
>> Size register. We are not emulating this register right now and we
>> can't expect guest to properly configure it. QEMU "emulates" access to
>> Cachline Size register by ignoring all writes to it. QEMU passes through
>> writes of PCI_COMMAND_INVALIDATE bit, we will do the same.
>>
>> PCI_COMMAND_VGA_PALETTE - Enable VGA palette snooping. QEMU passes
>> through writes of this bit, we will do the same.
>>
>> PCI_COMMAND_PARITY - Controls how device response to parity
>> errors. QEMU ignores writes to this bit, we will do the same.
>>
>> PCI_COMMAND_WAIT - Reserved. Should be 0, but QEMU passes
>> through writes of this bit, so we will do the same.

Actually, PCI_COMMAND_WAIT bit is in qemu's res_mask, meaning it only passes through the writes in permissive mode. By default qemu does not pass through writes. PCI LB 3.0 and PCIe 6.1 specifications say devices should hardwire this bit to 0, but that some devices may have implemented it as RW. So I think we should use rsvdp_mask in Xen for this bit.

>>
>> PCI_COMMAND_SERR - Controls if device can assert SERR. QEMU ignores
>> writes to this bit, we will do the same.
>>
>> PCI_COMMAND_FAST_BACK - Optional bit that allows fast back-to-back
>> transactions. It is configured by firmware, so we don't want guest to
>> control it. QEMU ignores writes to this bit, we will do the same.
>>
>> PCI_COMMAND_INTX_DISABLE - Disables INTx signals. If MSI(X) is
>> enabled, device is prohibited from asserting INTx as per
>> specification. Value after reset is 0. In QEMU case, it checks of INTx
>> was mapped for a device. If it is not, then guest can't control
>> PCI_COMMAND_INTX_DISABLE bit. In our case, we prohibit a guest to
>> change value of this bit if MSI(X) is enabled.
> 
> FWIW, bits 11-15 are RsvdP, so we will need to add support for them
> after the series from Stewart that adds support for register masks is
> accepted.

I am working on this.

> 
>>
>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>> ---
>> In v10:
>> - Added cf_check attribute to guest_cmd_read
>> - Removed warning about non-zero cmd
>> - Updated comment MSI code regarding disabling INTX
>> - Used ternary operator in vpci_add_register() call
>> - Disable memory decoding for DomUs in init_bars()
>> In v9:
>> - Reworked guest_cmd_read
>> - Added handling for more bits
>> Since v6:
>> - fold guest's logic into cmd_write
>> - implement cmd_read, so we can report emulated INTx state to guests
>> - introduce header->guest_cmd to hold the emulated state of the
>>   PCI_COMMAND register for guests
>> Since v5:
>> - add additional check for MSI-X enabled while altering INTX bit
>> - make sure INTx disabled while guests enable MSI/MSI-X
>> Since v3:
>> - gate more code on CONFIG_HAS_MSI
>> - removed logic for the case when MSI/MSI-X not enabled
>> ---
>>  xen/drivers/vpci/header.c | 44 +++++++++++++++++++++++++++++++++++----
>>  xen/drivers/vpci/msi.c    |  6 ++++++
>>  xen/drivers/vpci/msix.c   |  4 ++++
>>  xen/include/xen/vpci.h    |  3 +++
>>  4 files changed, 53 insertions(+), 4 deletions(-)
>>
>> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
>> index efce0bc2ae..e8eed6a674 100644
>> --- a/xen/drivers/vpci/header.c
>> +++ b/xen/drivers/vpci/header.c
>> @@ -501,14 +501,32 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>>      return 0;
>>  }
>>  
>> +/* TODO: Add proper emulation for all bits of the command register. */
>>  static void cf_check cmd_write(
>>      const struct pci_dev *pdev, unsigned int reg, uint32_t cmd, void *data)
>>  {
>>      struct vpci_header *header = data;
>>  
>> +    if ( !is_hardware_domain(pdev->domain) )
>> +    {
>> +        const struct vpci *vpci = pdev->vpci;
>> +        uint16_t excluded = PCI_COMMAND_PARITY | PCI_COMMAND_SERR |
>> +            PCI_COMMAND_FAST_BACK;
> 
> You could implement those bits using the RsvdP mask also.

Will do. The rsvdp_mask (in the write path) has already been applied before reaching this handler, so the guest's write value won't propagate to the header->guest_cmd variable. This is okay as long as ...

> 
> You seem to miss PCI_COMMAND_IO?  In the commit message you note that
> writes are ignored, yet here you seem to pass through writes to the
> underlying device (which might be OK, but needs to be coherent with
> the commit message).
> 
>> +
>> +        header->guest_cmd = cmd;
> 
> I'm kind of unsure whether we want to fake the guest view by returning
> what the guest writes.

... we don't provide an emulated view of the additional bits that we're treating as RsvdP. So let's not provide such an emulated/fake view for these bits (for now, at least).

Side note: qemu does provide such an emulated view, using a combination of emu_mask and emulated register variables. Looking at the qemu history, it looks like there may be other registers where we'd likely want to have such an emulated/fake view. So, regardless of whether we want to emulate certain bits in the command register, having the flexibility of a emulated mask/register in vPCI could (eventually) be beneficial (but not as part of this series). I'll make an in-code comment that we may want to re-visit this in the future.

> 
>> +
>> +        if ( (vpci->msi && vpci->msi->enabled) ||
>> +             (vpci->msix && vpci->msi->enabled) )
> 
> The typo that you mentioned about msi vs msix.
> 
>> +            excluded |= PCI_COMMAND_INTX_DISABLE;
>> +
>> +        cmd &= ~excluded;
>> +        cmd |= pci_conf_read16(pdev->sbdf, reg) & excluded;
>> +    }
>> +
>>      /*
>> -     * Let Dom0 play with all the bits directly except for the memory
>> -     * decoding one.
>> +     * Let guest play with all the bits directly except for the memory
>> +     * decoding one. Bits that are not allowed for DomU are already
>> +     * handled above.
> 
> I think this should be: "Let Dom0 play with all the bits directly ..."
> as you mention both Dom0 and DomU.
> 
>>       */
>>      if ( header->bars_mapped != !!(cmd & PCI_COMMAND_MEMORY) )
>>          /*
>> @@ -522,6 +540,14 @@ static void cf_check cmd_write(
>>          pci_conf_write16(pdev->sbdf, reg, cmd);
>>  }
>>  
>> +static uint32_t cf_check guest_cmd_read(
>> +    const struct pci_dev *pdev, unsigned int reg, void *data)
>> +{
>> +    const struct vpci_header *header = data;
>> +
>> +    return header->guest_cmd;
>> +}
>> +
>>  static void cf_check bar_write(
>>      const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
>>  {
>> @@ -737,8 +763,9 @@ static int cf_check init_bars(struct pci_dev *pdev)
>>      }
>>  
>>      /* Setup a handler for the command register. */
>> -    rc = vpci_add_register(pdev->vpci, vpci_hw_read16, cmd_write, PCI_COMMAND,
>> -                           2, header);
>> +    rc = vpci_add_register(pdev->vpci,
>> +                           is_hwdom ? vpci_hw_read16 : guest_cmd_read,
>> +                           cmd_write, PCI_COMMAND, 2, header);
>>      if ( rc )
>>          return rc;
>>  
>> @@ -750,6 +777,15 @@ static int cf_check init_bars(struct pci_dev *pdev)
>>      if ( cmd & PCI_COMMAND_MEMORY )
>>          pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd & ~PCI_COMMAND_MEMORY);
>>  
>> +    /*
>> +     * Clear PCI_COMMAND_MEMORY for DomUs, so they will always start with
>> +     * memory decoding disabled and to ensure that we will not call modify_bars()
>> +     * at the end of this function.
>> +     */
>> +    if ( !is_hwdom )
>> +        cmd &= ~PCI_COMMAND_MEMORY;
> 
> Just for symmetry I would also disable PCI_COMMAND_IO.
> 
> I do wonder in which states does SeaBIOS or OVMF expects to find the
> devices.
> 
>> +    header->guest_cmd = cmd;
>> +
>>      for ( i = 0; i < num_bars; i++ )
>>      {
>>          uint8_t reg = PCI_BASE_ADDRESS_0 + i * 4;
>> diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
>> index 2faa54b7ce..0920bd071f 100644
>> --- a/xen/drivers/vpci/msi.c
>> +++ b/xen/drivers/vpci/msi.c
>> @@ -70,6 +70,12 @@ static void cf_check control_write(
>>  
>>          if ( vpci_msi_arch_enable(msi, pdev, vectors) )
>>              return;
>> +
>> +        /*
>> +         * Make sure guest doesn't enable INTx while enabling MSI.
>> +         */
>> +        if ( !is_hardware_domain(pdev->domain) )
>> +            pci_intx(pdev, false);
>>      }
>>      else
>>          vpci_msi_arch_disable(msi, pdev);
>> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
>> index b6abab47ef..9d0233d0e3 100644
>> --- a/xen/drivers/vpci/msix.c
>> +++ b/xen/drivers/vpci/msix.c
>> @@ -97,6 +97,10 @@ static void cf_check control_write(
>>          for ( i = 0; i < msix->max_entries; i++ )
>>              if ( !msix->entries[i].masked && msix->entries[i].updated )
>>                  update_entry(&msix->entries[i], pdev, i);
>> +
>> +        /* Make sure guest doesn't enable INTx while enabling MSI-X. */
>> +        if ( !is_hardware_domain(pdev->domain) )
>> +            pci_intx(pdev, false);
> 
> Note that if both new_enabled and new_masked are set, you won't get
> inside of this condition, and that could lead to MSIX being enabled
> with INTx set in the command register (albeit with the maskall bit
> set).
> 
> You might have to add a new check before the pci_conf_write16() that
> disables INTx if `new_enabled && !msix->enabled`.
> 
>>      }
>>      else if ( !new_enabled && msix->enabled )
>>      {
>> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
>> index c5301e284f..60bdc10c13 100644
>> --- a/xen/include/xen/vpci.h
>> +++ b/xen/include/xen/vpci.h
>> @@ -87,6 +87,9 @@ struct vpci {
>>          } bars[PCI_HEADER_NORMAL_NR_BARS + 1];
>>          /* At most 6 BARS + 1 expansion ROM BAR. */
>>  
>> +        /* Guest view of the PCI_COMMAND register. */
> 
> Maybe we want to add '(domU only)' to the comment.
> 
> Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 23:49:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 23:49:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659179.1028667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGSnP-0000bx-7l; Thu, 21 Dec 2023 23:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659179.1028667; Thu, 21 Dec 2023 23: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 1rGSnP-0000bq-37; Thu, 21 Dec 2023 23:49:43 +0000
Received: by outflank-mailman (input) for mailman id 659179;
 Thu, 21 Dec 2023 23:49: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=aYn2=IA=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rGSnO-0000bk-1T
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 23:49:42 +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 990cef16-a05b-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 00:49:38 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 2A69361B05;
 Thu, 21 Dec 2023 23:49:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F2B0C433C7;
 Thu, 21 Dec 2023 23:49:34 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 990cef16-a05b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703202575;
	bh=SwNMOj202GOByAQeR5BF/lucWnGfK6qculVY5Cw+BYs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=B8Aon0hBPnG3ku6+0PX3Y/fO9WmMpYkscR/pwyeC2tD6+uUxfEsoeW55cR7+XERXe
	 F6El7FMMZxdAk5rXUVgVCbCm8/Qv0a+cwNomz59lj1NfyieZWDnRDNRXPsY56tcTRH
	 OIuW521om6gJU+gl/yO0hd/RtDns9540m6Ry4LvPU3LnZOSfSqmwUdPpUwm14XJA/V
	 ZVHcfHb0zSEOsPgZNeXXiEah6tORqG0YQPuhUbqESNKpNvnlHlMw3m6vtGaDdD4cWb
	 /0c9CXNyibzKHlmUwmfBCVHnTey/0bo3yIFZRxbBD8s8ImlKG++puRCeuuway8JiQh
	 ezTfFRIsCtGZQ==
Date: Thu, 21 Dec 2023 15:49:33 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Federico Serafini <federico.serafini@bugseng.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
    consulting@bugseng.com, Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
In-Reply-To: <919b2fc9-08a6-4bec-842d-f1bba98b44c1@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2312211548250.685950@ubuntu-linux-20-04-desktop>
References: <cover.1703066935.git.federico.serafini@bugseng.com> <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com> <0200354e-08b9-4136-b6e9-3220a51256af@xen.org> <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
 <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@bugseng.com> <alpine.DEB.2.22.394.2312201008070.685950@ubuntu-linux-20-04-desktop> <e5a812ab-faaf-47fd-bada-9b19e0c94bcc@citrix.com> <6f3e64d1-5719-4960-9f60-0497a8ccea00@bugseng.com>
 <919b2fc9-08a6-4bec-842d-f1bba98b44c1@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1776906130-1703202526=:685950"
Content-ID: <alpine.DEB.2.22.394.2312211549100.685950@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-1776906130-1703202526=:685950
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2312211549101.685950@ubuntu-linux-20-04-desktop>

On Thu, 21 Dec 2023, Andrew Cooper wrote:
> On 21/12/2023 10:29 am, Federico Serafini wrote:
> > On 20/12/23 22:23, Andrew Cooper wrote:
> >> On 20/12/2023 6:24 pm, Stefano Stabellini wrote:
> >>> On Wed, 20 Dec 2023, Federico Serafini wrote:
> >>>> On 20/12/23 12:55, Jan Beulich wrote:
> >>>>> On 20.12.2023 12:48, Julien Grall wrote:
> >>>>>> On 20/12/2023 11:03, Federico Serafini wrote:
> >>>>>>> --- a/xen/arch/arm/arm64/vsysreg.c
> >>>>>>> +++ b/xen/arch/arm/arm64/vsysreg.c
> >>>>>>> @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
> >>>>>>> Â Â Â Â Â Â Â Â Â Â Â  /* RO at EL0. RAZ/WI at EL1 */
> >>>>>>> Â Â Â Â Â Â Â Â Â Â Â  if ( regs_mode_is_user(regs) )
> >>>>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  return handle_ro_raz(regs, regidx,
> >>>>>>> hsr.sysreg.read, hsr,
> >>>>>>> 0);
> >>>>>>> -Â Â Â Â Â Â Â  else
> >>>>>>> -Â Â Â Â Â Â Â Â Â Â Â  return handle_raz_wi(regs, regidx, hsr.sysreg.read,
> >>>>>>> hsr,
> >>>>>>> 1);
> >>>>>>> +
> >>>>>>> +Â Â Â Â Â Â Â  return handle_raz_wi(regs, regidx, hsr.sysreg.read,
> >>>>>>> hsr, 1);
> >>>>>> I don't 100% like this change (mostly because I find if/else clearer
> >>>>>> here).
> >>>>> While (it doesn't matter here) my view on this is different, I'm
> >>>>> still
> >>>>> puzzled why the tool would complain / why a change here is necessary.
> >>>>> It is not _one_ return statement, but there's still (and
> >>>>> obviously) no
> >>>>> way of falling through.
> >>>> The tool is configurable:
> >>>> if you prefer deviate these cases instead of refactoring the code
> >>>> I can update the configuration.
> >>> Â  If you say "deviation", it implies that there is a violation. I think
> >>> Jan's point was that both code versions shouldn't be any different.
> >>>
> >>> # option-1
> >>> if (a)
> >>> Â Â  return f1();
> >>> else
> >>> Â Â  return f2();
> >>>
> >>> # option-2
> >>> if (a)
> >>> Â Â  return f1();
> >>> return f2();
> >>>
> >>> Both options are equally guaranteed to always return. It looks like a
> >>> peculiar limitation to only recognize option-2 as something that
> >>> returns
> >>> 100% of the times. Also option-1 returns 100% of the times. What am I
> >>> missing?
> >
> > I don't think this is necessarily a limitation because it highlights
> > cases where an if-else could be replaced with a simple if:
> > some may find an if-else clearer, other may find the single if clearer.
> >
> > From a safety point of view both options are safe because there
> > is no risk of unintentional fall through.
> >
> > If you all agree on the fact that small code refactoring like the ones I
> > proposed are counterproductive, then I can update the tool configuration
> > to consider also option-1 as safe.
> 
> I would certainly prefer if we could continue to use option 1.

Yes, that is my preference too
--8323329-1776906130-1703202526=:685950--


From xen-devel-bounces@lists.xenproject.org Thu Dec 21 23:49:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Dec 2023 23:49:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659180.1028677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGSnb-0000sn-EA; Thu, 21 Dec 2023 23:49:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659180.1028677; Thu, 21 Dec 2023 23:49: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 1rGSnb-0000se-Au; Thu, 21 Dec 2023 23:49:55 +0000
Received: by outflank-mailman (input) for mailman id 659180;
 Thu, 21 Dec 2023 23:49:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aYn2=IA=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1rGSnZ-0000bk-N8
 for xen-devel@lists.xenproject.org; Thu, 21 Dec 2023 23:49:53 +0000
Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a23fe1a8-a05b-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 00:49:52 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by ams.source.kernel.org (Postfix) with ESMTP id 8C93CB821ED;
 Thu, 21 Dec 2023 23:49:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CEF77C433C9;
 Thu, 21 Dec 2023 23:49:49 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a23fe1a8-a05b-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703202590;
	bh=c7UFgY5BA3NZh9MtCJs8f3vUqJ+/fEdxU/2esIVx6Ac=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Czq0SsmO0AX+A1Lv7ZgB2LuD/xCDJZB+4a2PdzQAufkl3124BsOCIb9PBn6Jl6bvr
	 1q52f8mkpRmPLxQgTjyt/VZXnNsFhnapyvPq5XQ/nUksvLT6j4mvj5z4M8kS/Ce2cD
	 jkXrWzby6AZQet+I6uoFLJoE+nzSOwxRElGZRZGOO7+dNUiG7aU/PfHLTa8WzUUemt
	 cTtYk92PRRf7LjLTpCj0TLkCUXUdhhM7eMKDFZmQ+z9Vo7q9LrdBHFNejTjCKLRiE4
	 eKW09X2wn6FG+0wkCLimMPSsRMIUxgG3dspFgiNLNiAxckcjaINziXqmFmh6RRieAC
	 CiNs3MSbgzOiA==
Date: Thu, 21 Dec 2023 15:49:48 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Federico Serafini <federico.serafini@bugseng.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, consulting@bugseng.com, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Subject: Re: [XEN PATCH 5/7] xen/arm: v{cp,sys}reg: address violations of
 MISRA C:2012 Rule 16.3
In-Reply-To: <7483df1c-34f8-4e0e-aad4-c78f219c3d67@suse.com>
Message-ID: <alpine.DEB.2.22.394.2312211549390.685950@ubuntu-linux-20-04-desktop>
References: <cover.1703066935.git.federico.serafini@bugseng.com> <541bc4fd47d26b12ea131590bf0c49f7c92d9368.1703066935.git.federico.serafini@bugseng.com> <0200354e-08b9-4136-b6e9-3220a51256af@xen.org> <9e9e3086-6311-4a76-8624-a06d52e7ec0b@suse.com>
 <c3a128d9-dea8-4e05-b292-1a6a04fb0daf@bugseng.com> <7483df1c-34f8-4e0e-aad4-c78f219c3d67@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, 21 Dec 2023, Jan Beulich wrote:
> On 20.12.2023 13:15, Federico Serafini wrote:
> > On 20/12/23 12:55, Jan Beulich wrote:
> >> On 20.12.2023 12:48, Julien Grall wrote:
> >>> On 20/12/2023 11:03, Federico Serafini wrote:
> >>>> --- a/xen/arch/arm/arm64/vsysreg.c
> >>>> +++ b/xen/arch/arm/arm64/vsysreg.c
> >>>> @@ -210,8 +210,8 @@ void do_sysreg(struct cpu_user_regs *regs,
> >>>>            /* RO at EL0. RAZ/WI at EL1 */
> >>>>            if ( regs_mode_is_user(regs) )
> >>>>                return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 0);
> >>>> -        else
> >>>> -            return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
> >>>> +
> >>>> +        return handle_raz_wi(regs, regidx, hsr.sysreg.read, hsr, 1);
> >>>
> >>> I don't 100% like this change (mostly because I find if/else clearer
> >>> here).
> >>
> >> While (it doesn't matter here) my view on this is different, I'm still
> >> puzzled why the tool would complain / why a change here is necessary.
> >> It is not _one_ return statement, but there's still (and obviously) no
> >> way of falling through.
> > 
> > The tool is configurable:
> > if you prefer deviate these cases instead of refactoring the code
> > I can update the configuration.
> 
> I guess this then needs to be discussed on the first call in the new year.
> Stefano - can you take note of that, please?

Yes, will do


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 04:32:52 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 04:32:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659193.1028687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGXDE-00081y-3Z; Fri, 22 Dec 2023 04:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659193.1028687; Fri, 22 Dec 2023 04:32:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGXDE-00081r-0o; Fri, 22 Dec 2023 04:32:40 +0000
Received: by outflank-mailman (input) for mailman id 659193;
 Fri, 22 Dec 2023 04:32: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 1rGXDC-00081h-6d; Fri, 22 Dec 2023 04:32: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 1rGXDC-0000J7-10; Fri, 22 Dec 2023 04:32: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 1rGXDB-0001CC-Ie; Fri, 22 Dec 2023 04:32:37 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGXDB-0006ad-HC; Fri, 22 Dec 2023 04:32: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=B4DhKIyj7/MkunQBga7h5Lb3pLg5WzocU2xGtk6tBj4=; b=5dIr3wpr/HTsZCQIgrDa5vGgm9
	/3eUkIBI4niqaYvWKIwrc7wxafE3pg3ox7MsD4ZichGK2gJXpW5i2vFEEO9Pbyv1fKU7zwgkKQac0
	l5mhd7NTlcyYAsEAVSC/M3A/mQVXxKV+VeqOI7+QR+7+OB6NVUlEZUkV2i5RELYMnbMY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184204-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184204: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm:debian-hvm-install:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-vhd:guest-start:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check: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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-libvirt: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-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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
X-Osstest-Versions-This:
    xen=3909fb4692dfbf7e46c0bcc37b0a3b943a034da9
X-Osstest-Versions-That:
    xen=e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 22 Dec 2023 04:32:37 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 184207-retest
 test-armhf-armhf-xl-vhd      13 guest-start         fail pass in 184207-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-vhd     14 migrate-support-check fail in 184207 never pass
 test-armhf-armhf-xl-vhd 15 saverestore-support-check fail in 184207 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184197
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184197
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184197
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184197
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184197
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184197
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184197
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184197
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184197
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184197
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184197
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184197
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 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-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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

version targeted for testing:
 xen                  3909fb4692dfbf7e46c0bcc37b0a3b943a034da9
baseline version:
 xen                  e9786ba9ee5f0b4b6eadb4ca80417f195ce251a0

Last test of basis   184197  2023-12-20 23:39:14 Z    1 days
Testing same since   184204  2023-12-21 14:58:45 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>
  Julien Grall <jgrall@amazon.com>
  Nicola Vetrini <nicola.vetrini@bugseng.com>
  Roger Pau MonnÃ© <roger.pau@citrix.com>
  Stefano Stabellini <sstabellini@kernel.org>
  Stewart Hildebrand <stewart.hildebrand@amd.com>
  Volodymyr Babchuk <volodymyr_babchuk@epam.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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    
 test-amd64-i386-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
   e9786ba9ee..3909fb4692  3909fb4692dfbf7e46c0bcc37b0a3b943a034da9 -> master


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 06:34:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 06:34:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659239.1028756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGZ6y-0006mS-8z; Fri, 22 Dec 2023 06:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659239.1028756; Fri, 22 Dec 2023 06: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 1rGZ6y-0006mL-6N; Fri, 22 Dec 2023 06:34:20 +0000
Received: by outflank-mailman (input) for mailman id 659239;
 Fri, 22 Dec 2023 06: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=f8FS=IB=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1rGZ6x-0006mF-D2
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 06:34:19 +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 2143baf9-a094-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 07:34:17 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 58B3421E06;
 Fri, 22 Dec 2023 06:34:16 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 27BCE13AB5;
 Fri, 22 Dec 2023 06:34:16 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 4K1jCOgthWWfXQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 22 Dec 2023 06:34: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: 2143baf9-a094-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1703226856; 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=VFUHfu/Qkc0+Nl1x/C6KXchuZT5UUipWq5f5WbggtB4=;
	b=r/GZTsztpU2245wi7imSr6/CUYZgnh/AaTtBj8LBBfxF50AmHclKom/0QJ0bNxUBdzAucQ
	AK/7/RGeGn1qVmvrZyNkzs+Rx9dOz3NyO9HNdIKk8vlN/0CNC64Rd0D8hE/A1eI7rPs0L1
	/I+Kvch8sOGY0nzKK890R0zuOGUgk8E=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1703226856; 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=VFUHfu/Qkc0+Nl1x/C6KXchuZT5UUipWq5f5WbggtB4=;
	b=r/GZTsztpU2245wi7imSr6/CUYZgnh/AaTtBj8LBBfxF50AmHclKom/0QJ0bNxUBdzAucQ
	AK/7/RGeGn1qVmvrZyNkzs+Rx9dOz3NyO9HNdIKk8vlN/0CNC64Rd0D8hE/A1eI7rPs0L1
	/I+Kvch8sOGY0nzKK890R0zuOGUgk8E=
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.7-rc7
Date: Fri, 22 Dec 2023 07:34:15 +0100
Message-Id: <20231222063415.17316-1-jgross@suse.com>
X-Mailer: git-send-email 2.35.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: *****
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spam-Level: 
X-Spamd-Bar: /
X-Spam-Flag: NO
X-Spamd-Result: default: False [0.10 / 50.00];
	 ARC_NA(0.00)[];
	 RCVD_VIA_SMTP_AUTH(0.00)[];
	 R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	 FROM_HAS_DN(0.00)[];
	 RCPT_COUNT_THREE(0.00)[4];
	 R_MISSING_CHARSET(2.50)[];
	 TO_MATCH_ENVRCPT_ALL(0.00)[];
	 MIME_GOOD(-0.10)[text/plain];
	 TO_DN_NONE(0.00)[];
	 BROKEN_CONTENT_TYPE(1.50)[];
	 DWL_DNSWL_MED(-2.00)[suse.com:dkim];
	 RCVD_COUNT_THREE(0.00)[3];
	 DKIM_SIGNED(0.00)[suse.com:s=susede1];
	 DKIM_TRACE(0.00)[suse.com:+];
	 MX_GOOD(-0.01)[];
	 MID_CONTAINS_FROM(1.00)[];
	 DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim];
	 FUZZY_BLOCKED(0.00)[rspamd.com];
	 FROM_EQ_ENVFROM(0.00)[];
	 MIME_TRACE(0.00)[0:+];
	 RCVD_TLS_ALL(0.00)[];
	 BAYES_HAM(-2.59)[98.17%]
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="r/GZTszt"
X-Spam-Score: 0.10
X-Rspamd-Queue-Id: 58B3421E06

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.7a-rc7-tag

xen: branch for v6.7-rc7

It contains a single patch fixing a build issue for x86 32-bit configurations
with CONFIG_XEN, which was introduced in the 6.7 development cycle.


Thanks.

Juergen

 arch/x86/xen/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Arnd Bergmann (1):
      x86/xen: add CPU dependencies for 32-bit build


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 08:09:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 08:09:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659249.1028766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGaad-0002Vz-14; Fri, 22 Dec 2023 08:09:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659249.1028766; Fri, 22 Dec 2023 08:09:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGaac-0002Vs-Uq; Fri, 22 Dec 2023 08:09:02 +0000
Received: by outflank-mailman (input) for mailman id 659249;
 Fri, 22 Dec 2023 08:09:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=r2k+=IB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGaab-0002VW-AL
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 08:09:01 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5bb659db-a0a1-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 09:08:59 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-40d483019d9so1794575e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 00:08:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 i15-20020a05600c354f00b0040d378510adsm8663243wmq.1.2023.12.22.00.08.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Dec 2023 00:08:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bb659db-a0a1-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703232538; x=1703837338; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=iIot8+NpCUGBFT252AzQPoBtCvAJRNXPuQIXfUMk7l0=;
        b=fu0KUGCZMEvjwFPAPL1c7sGZk5kaCooBUZMVHKIJy9LA0a1FjZrosx8A99PpuNEWpu
         sUvxW9y9toarirGCbt/ZDtASy2t/QRs/jx+L3lTxdBHjfpipSIx4+VKJgKKGVmi1zcUH
         opmf58pEP2toNOP2rPqsQzNWOFm9dOB3enWaCRYKWnvsFEAMFGMqkG3w0d2Fe0rPFnOJ
         5mSFYUuNGP8Rv7W9YiuY1308gC97CI3pwuoKeKOCPsbJ4+qfcaP6vid1OUYJIv+oLMRH
         PNVRBq1LAryIr4ZZ2Eq4tw2XIHzFwF9Up9W9sywyYCqIzfniUKmBtTcBKjx9fgTt2Lh1
         RToQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703232538; x=1703837338;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=iIot8+NpCUGBFT252AzQPoBtCvAJRNXPuQIXfUMk7l0=;
        b=Q5/X7ugJu7TaiHujHYIvXKMiaQZivOs+EVJ4E6L0mNR/Gc7ttgzRH4TPFvoJPMNt+r
         tDWMTmYbR2LvDr9Wa+OEhaQeuf0xW+3Eyb3Jr0A5cO2FHi2U3BKoqoLHWSMau9diVW+F
         Qt4b8CdaVSBXoctYWvNpJx9fDSvvBXtrtpcHFV7/r4elUwJJmedCL4xtyWxkaLPqswPh
         pWhRVQtp8NnfB4wFW9iO+YzGI7D+2WQ32gLijTWDkS8Rv/9wZneXlvBeU4lo5XDAL+Cv
         lXoFOOGVQJmNmQzv4TJbD7EYOZk1UNZi/rgTXyATq6K3wRm/rrenOxagkjSxS3G0YilW
         jktA==
X-Gm-Message-State: AOJu0YyvEesz3LpIKYKLh28RDAytgcNXbqRfYbYVxxHHhq0UFzAZx/ZU
	2bS0GmesMKz7ASq86Ne+tzr7daDaTBth
X-Google-Smtp-Source: AGHT+IH9Zn7CPU6KU9E8JSnk1x7O5CUnme6rmXo5YaRxRBkN14LkJ9dKgvTuiGCpRAHTk58UFC//lg==
X-Received: by 2002:a05:600c:4ecf:b0:40d:3ae6:4a42 with SMTP id g15-20020a05600c4ecf00b0040d3ae64a42mr481803wmq.99.1703232537923;
        Fri, 22 Dec 2023 00:08:57 -0800 (PST)
Message-ID: <03651b8f-238a-4d64-8595-6b814a118d87@suse.com>
Date: Fri, 22 Dec 2023 09:08:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 30/39] xen/riscv: define an address of frame table
Content-Language: en-US
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>,
 George Dunlap <george.dunlap@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
 xen-devel@lists.xenproject.org
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
 <13ad41657814e4fc235772fa0928de1723ae7c3d.1700761381.git.oleksii.kurochko@gmail.com>
 <b2c42d56-6bc8-4ea8-9e6f-cae259c274c5@suse.com>
 <5d3e7f9ad7ff0eb779e269eee1c42300d987b5a1.camel@gmail.com>
 <abacb997-99f4-49c3-b146-320cc9ff1a90@suse.com>
 <8deb45febe3d8061bca4a8376c280befeaa00fed.camel@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: <8deb45febe3d8061bca4a8376c280befeaa00fed.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.12.2023 20:59, Oleksii wrote:
> On Mon, 2023-12-18 at 12:22 +0100, Jan Beulich wrote:
>> On 18.12.2023 11:36, Oleksii wrote:
>>> On Thu, 2023-12-14 at 16:48 +0100, Jan Beulich wrote:
>>>> On 24.11.2023 11:30, Oleksii Kurochko wrote:
>>>>> +#define SLOTN_ENTRY_SIZEÂ Â Â Â Â Â Â  SLOTN(1)
>>>>> +
>>>>> Â #define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL) + 1
>>>>> -
>>>>> GB(1)) */
>>>>> +
>>>>> +#define FRAMETABLE_VIRT_STARTÂ Â  SLOTN(196)
>>>>> +#define FRAMETABLE_SIZEÂ Â Â Â Â Â Â Â  GB(3)
>>>>> +#define FRAMETABLE_NRÂ Â Â Â Â Â Â Â Â Â  (FRAMETABLE_SIZE /
>>>>> sizeof(*frame_table))
>>>>> +#define FRAMETABLE_VIRT_ENDÂ Â Â Â  (FRAMETABLE_VIRT_START +
>>>>> FRAMETABLE_SIZE - 1)
>>>>> +
>>>>> +#define VMAP_VIRT_STARTÂ Â Â Â Â Â Â Â  SLOTN(194)
>>>>> +#define VMAP_VIRT_SIZEÂ Â Â Â Â Â Â Â Â  GB(1)
>>>>
>>>> May I suggest that you keep these blocks sorted by slot number?
>>>> Or
>>>> wait,
>>>> the layout comment further up is also in decreasing order, so
>>>> that's
>>>> fine here, but then can all of this please be moved next to the
>>>> comment
>>>> actually providing the necessary context (thus eliminating the
>>>> need
>>>> for
>>>> new comments)?
>>> Sure, I'll put this part close to layout comment.
>>>
>>>> Â You'll then also notice that the generalization here
>>>> (keeping basically the same layout for e.g. SATP_MODE_SV48, just
>>>> shifted
>>>> by 9 bits) isn't in line with the comment there.
>>> Does it make sense to add another one table with updated addresses
>>> for
>>> SATP_MODE_SV48?
>>
>> Well, especially if you mean to support that mode, its layout surely
>> wants writing down. I was hoping though that maybe you/we could get
>> away
>> without multiple tables, but e.g. use one having multiple columns.
> I came up with the following but I am not sure that it is really
> convient:
> /*
>  * RISC-V64 Layout:
>  *
> #if RV_STAGE1_MODE == SATP_MODE_SV39
>  *
>  * From the riscv-privileged doc:
>  *   When mapping between narrower and wider addresses,
>  *   RISC-V zero-extends a narrower physical address to a wider size.
>  *   The mapping between 64-bit virtual addresses and the 39-bit usable
>  *   address space of Sv39 is not based on zero-extension but instead
>  *   follows an entrenched convention that allows an OS to use one or
>  *   a few of the most-significant bits of a full-size (64-bit) virtual
>  *   address to quickly distinguish user and supervisor address
> regions.
>  *
>  * It means that:
>  *   top VA bits are simply ignored for the purpose of translating to
> PA.
> #endif
>  *
>  *       SATP_MODE_SV32   SATP_MODE_SV39   SATP_MODE_SV48  
> SATP_MODE_SV57
>  *     ----------------------------------------------------------------
> -----------
>  * BA0 | FFFFFFFFFFE00000 | FFFFFFFFC0000000 | FFFFFF8000000000 |
> FFFF000000000000
>  * BA1 | 0000000019000000 | 0000003200000000 | 0000640000000000 |
> 00C8000000000000
>  * BA2 | 0000000018800000 | 0000003100000000 | 0000620000000000 |
> 00C4000000000000
>  * BA3 | 0000000018400000 | 0000003080000000 | 0000610000000000 |
> 00C2000000000000
>  * 
>  *
> =======================================================================
> =====
>  * Start addr    |   End addr           |  Size  | Slot       |area
> description
>  *
> =======================================================================
> =====
>  * BA0 + 0x800000 |  FFFFFFFFFFFFFFFF   |1016 MB |
> L${HYP_PT_ROOT_LEVEL} 511     | Unused
>  * BA0 + 0x400000 |  BA0 + 0x800000     |  2 MB  |
> L${HYP_PT_ROOT_LEVEL} 511     | Fixmap
>  * BA0 + 0x200000 |  BA0 + 0x400000     |  4 MB  |
> L${HYP_PT_ROOT_LEVEL} 511     | FDT
>  * BA0            |  BA0 + 0x200000     |  2 MB  |
> L${HYP_PT_ROOT_LEVEL} 511     | Xen
>  *                 ...                  |  1 GB  |
> L${HYP_PT_ROOT_LEVEL} 510     | Unused
>  * BA1 + 0x000000 |  BA1 + 0x4D80000000 | 309 GB |
> L${HYP_PT_ROOT_LEVEL} 200-509 | Direct map
>  *                 ...                  |  1 GB  |
> L${HYP_PT_ROOT_LEVEL} 199     | Unused
>  * BA2 + 0x000000 |  BA2 + 0xC0000000   |  3 GB  |
> L${HYP_PT_ROOT_LEVEL} 196-198 | Frametable
>  *                 ...                  |  1 GB  |
> L${HYP_PT_ROOT_LEVEL} 195     | Unused
>  * BA3 + 0x000000 |  BA3 + 0x40000000   |  1 GB  |
> L${HYP_PT_ROOT_LEVEL} 194     | VMAP
>  *                 ...                  | 194 GB |
> L${HYP_PT_ROOT_LEVEL} 0 - 193 | Unused
>  *
> =======================================================================
> =====
>  */
> 
> Do you have better ideas?

It doesn't look too bad imo, at the first glance, albeit the line
wrapping damage of course makes it a little hard to look at. In the
last table with all lines saying L${HYP_PT_ROOT_LEVEL}, perhaps that
could be put in the table heading (instead of "Slot" say e.g. "Root
PT slot")?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 08:23:06 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 08:23:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659258.1028777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGao8-0005HQ-As; Fri, 22 Dec 2023 08:23:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659258.1028777; Fri, 22 Dec 2023 08:23: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 1rGao8-0005HJ-88; Fri, 22 Dec 2023 08:23:00 +0000
Received: by outflank-mailman (input) for mailman id 659258;
 Fri, 22 Dec 2023 08:22:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=r2k+=IB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGao7-0005HD-2r
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 08:22:59 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 50069f56-a0a3-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 09:22:58 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40d4103aed7so13791905e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 00:22:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 fl25-20020a05600c0b9900b0040b3e26872dsm14065633wmb.8.2023.12.22.00.22.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Dec 2023 00:22:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50069f56-a0a3-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703233377; x=1703838177; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gpc+Qeppkd8l8XcSuu49p/Em4UUkjkka0UOhR2JQUqI=;
        b=T1jnfme3TSxj2bQCEUgJjklRVe+WixWxJbvewlFbeIKKT30l78JQ7NBBRce8lcBCHn
         N8TyuSjxpLs4h/CnrCDeDT4Cd6fPpG6W3RbEbCkOaLwcoOYAn0WRlGk2MqbMp+5vRKcn
         OuxZKe4ma4KJOmXycIt6Ua52DxVcuqWHZ1x3NOKG64BpzVTQCh8P4XVGzR5VIV5r2VjR
         fRiZMBGw19gxP4vhLqaabzfy0QL8g5gd7x38zACyy7UG4D/5EnZ7k3pKHcowp7YxjN01
         mcSsK6NCz2dIzli8zG4czGLnlZPU7Sybrz3FjkONGcTMvysyNa3RJDr/eYlzoztOEqlM
         4mgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703233377; x=1703838177;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=gpc+Qeppkd8l8XcSuu49p/Em4UUkjkka0UOhR2JQUqI=;
        b=kyltcdRe+46jT9qnmg4UBmQDleEYdtoqLGe6+Sz7HNXzdLd//+AduM6i3/jV5Zn9qc
         B4+SVYpDA3pWyF2iesbREz6YL1kWPEhvdmZCLACUOyCctzsuGEtb2tVaZZTOj6l6wQ8x
         ls3AyBOPn5a+InYYCbVy71OVmTvmgPMMrycERZf8hyGcmoU0EKjDduQeYfWYSo7KAa5R
         Q/Kl80iGSrk3wQEpQuiMgIZg5R/Qi97+QJWFXoNb9GKDgY/iP+ijSgv/7pHg4yBx/gRG
         4pS2q8IgI9WJa+GrmRwIsXzKuLiYTO5wTeBvF67dEWj8oJ555AJOjVJZwByEtlPu2+NH
         u/hQ==
X-Gm-Message-State: AOJu0Ywjo/Z+Dea4PK61TYTi0xYDQs4IZJZfVF6RUt3Uu+MjZECh17o5
	5KT9A2mpRRO/Qb8MExOqdchG/VcfYyzu
X-Google-Smtp-Source: AGHT+IFUMvAUxcA8O5J8ZxdpGIX/icOCWXKvkRBV8tcu7oW0eAlqBKl4fFkATsyiszKIITBdf4j78g==
X-Received: by 2002:a05:600c:4503:b0:40c:2e1c:8f87 with SMTP id t3-20020a05600c450300b0040c2e1c8f87mr541899wmo.164.1703233377412;
        Fri, 22 Dec 2023 00:22:57 -0800 (PST)
Message-ID: <03cf5145-2124-4150-9f20-904f08bcabda@suse.com>
Date: Fri, 22 Dec 2023 09:22:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 5/9] xen/asm-generic: introduce stub header numa.h
Content-Language: en-US
To: Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.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>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <08bca9a4158a190a0a953e5bc071a512cfe5f0f8.1703072575.git.oleksii.kurochko@gmail.com>
 <341249d1-217f-4ad2-9455-b1aded4b9b56@xen.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <341249d1-217f-4ad2-9455-b1aded4b9b56@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.12.2023 20:09, Julien Grall wrote:
> On 20/12/2023 14:08, Oleksii Kurochko wrote:
>> <asm/numa.h> is common through some archs so it is moved
>> to asm-generic.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>> Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> 
> I think this patch will need to be rebased on top of the lastest staging 
> as this should clash with 51ffb3311895.

No, and I'd like to withdraw my ack here. In this case a stub header isn't
the right choice imo - the !NUMA case should be handled in common code. I
would have submitted the patch I have, if only the first_valid_mfn patch
hadn't been committed already (which I now need to re-base over).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 08:46:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 08:46:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659264.1028786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGbAa-00008p-3q; Fri, 22 Dec 2023 08:46:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659264.1028786; Fri, 22 Dec 2023 08: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 1rGbAa-00008i-1A; Fri, 22 Dec 2023 08:46:12 +0000
Received: by outflank-mailman (input) for mailman id 659264;
 Fri, 22 Dec 2023 08: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=r2k+=IB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGbAZ-00008c-II
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 08:46:11 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d3ec999-a0a6-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 09:46:09 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3367f8f8cb0so1539654f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 00:46:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a4-20020adff7c4000000b003366da509ecsm3758401wrq.85.2023.12.22.00.46.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Dec 2023 00:46:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d3ec999-a0a6-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703234768; x=1703839568; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=fQEBXwweOx++P9CgfuZJxzI/5Z5BDAWa9A5BziGKOlE=;
        b=Cab42e4XFi91lbSEqKxRgnxec6Tok+P9EMaLZRrSrroA5r8RBDzduLkQnKAR668OZM
         ooXQv16ypCwhs5um02TxlXuSg1oGhcjmlZNsb0CCHim/ORoF8GKnU/6avxHzpm+Rq1Qn
         2WLLeN64ckG+esm5p54QS9qSBJidSuj/DT7wclRRkmUyg5IkpvotFNsOaMhzExbd5WG/
         1nT3ZESahamrIBBaoaWbGYJj0T7leJ2Kz/zIwK25aOYa1bJ/xNLYx0zyRsHvMZZP/QMg
         gbjeoOQIgfJxdfFfN2/bv4QJ9y1rbL6/lJoGiDhpxlhsDJT7DR8vykC/d1cR9caSAzps
         Br+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703234768; x=1703839568;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=fQEBXwweOx++P9CgfuZJxzI/5Z5BDAWa9A5BziGKOlE=;
        b=NJ62yg2B+GvrD+/NWYpQ2aqwiscM6yzjtrRyhm99zPFU7WAc7PFHH41wUufrCUKQ3f
         JNieH0bYTKQE/XhHeBMfKVnmt+lbL+bUBw/LttiJA9Xsw5f2HlSkbBWbi84PajW62cNV
         WVsFwDUVDQnxMveA0OSHE81tq+Qm6rzhxs5uDIiH0OFADBuOJMj5sL3trJ58xklk/pXy
         1eLC33acXyTtMTyVRbsugEpmH+7h6fOvrmTx0bsiJKWLPEw/m93ieNtf2B/yPFY1oKER
         zmMTL1X5jCgEN4Bx6jM+BEf5NJpcPU00hmIlYDtvL9n6g0CpXGa3KmW5CtILv9BXABvd
         e5Lg==
X-Gm-Message-State: AOJu0Yx5Bf8q7tshxETdfIaRM4iDc+WuzvXP2+1Yrth0GBl0pyTDACcN
	cyCLopYWukOIpss2KKFE4agWT/GB6OcW
X-Google-Smtp-Source: AGHT+IElBoJugbZXs+ia3aAKE3IILjdZGVf0a+OwgevMCWVPfH1cr+Yd13ArU33MKk1fu5G7eOGFtw==
X-Received: by 2002:adf:ec09:0:b0:336:957:2aec with SMTP id x9-20020adfec09000000b0033609572aecmr581773wrn.100.1703234768559;
        Fri, 22 Dec 2023 00:46:08 -0800 (PST)
Message-ID: <f539144c-885a-461c-a506-bdb73e626a65@suse.com>
Date: Fri, 22 Dec 2023 09:46:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Content-Language: en-US
To: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com>
 <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com>
 <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com>
 <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
 <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com>
 <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
 <CAKm-Umbs2D7NHFE+NW2xKOu7-AZhFpH4uzE5QTuQusnGA_eNWA@mail.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: <CAKm-Umbs2D7NHFE+NW2xKOu7-AZhFpH4uzE5QTuQusnGA_eNWA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.12.2023 21:41, SÃ©bastien Chaumat wrote:
> Le jeu. 21 dÃ©c. 2023 Ã  14:29, Juergen Gross <jgross@suse.com> a Ã©crit :
> 
>> On 21.12.23 13:40, Jan Beulich wrote:
>>> On 20.12.2023 17:34, SÃ©bastien Chaumat wrote:
>>>> Here are the patches I made to xen and linux kernel
>>>> Plus dmesg (bare metal,xen) and "xl dmesg"
>>>
>>> So the problem looks to be that pci_xen_initial_domain() results in
>>> permanent setup of IRQ7, when there only "static" ACPI tables (in
>>> particular source overrides in MADT) are consulted. The necessary
>>> settings, however, are known only after _CRS for the device was
>>> evaluated (and possibly _PRS followed by invocation of _SRS). All of
>>> this happens before xen_register_gsi() is called. But that function's
>>> call to xen_register_pirq() is short-circuited by the very first if()
>>> in xen_register_pirq() when there was an earlier invocation. Hence
>>> the (wrong) "edge" binding remains in place, as was established by
>>> the earlier call here.
>>>
>>> JÃ¼rgen, there's an interesting comment in xen_bind_pirq_gsi_to_irq(),
>>> right before invoking irq_set_chip_and_handler_name(). Despite what
>>> the comment says (according to my reading), the fasteoi one is _not_
>>> used in all cases. Assuming there's a reason for this, it's not clear
>>> to me whether updating the handler later on is a valid thing to do.
>>> __irq_set_handler() being even an exported symbol suggests that might
>>> be an option to use here. Then again merely updating the handler may
>>> not be sufficient, seeing there are also e.g. IRQD_TRIGGER_MASK and
>>> IRQD_LEVEL.
>>
>> I understand the last paragraph of that comment to reason, that in case
>> pirq_needs_eoi() return true even in case of an edge triggered interrupt,
>> the outcome is still okay.
>>
>> I don't think updating the handler later is valid.
>>
>>> SÃ©bastien, to prove the (still pretty weak) theory that the change in
>>> handler is all that's needed to make things work in your case, could
>>> you fiddle with pci_xen_initial_domain() to have it skip IRQ7? (That
>>> of course won't be a proper solution, but ought to be okay for your
>>> system.) The main weakness of the theory is that IRQ7 really isn't
>>> very special in this regard - other PCI IRQs routed to the low 16
>>> IO-APIC pins ought to have similar issues (from the log, on your
>>> system this would be at least IRQ6 and IRQ10, except that they happen
>>> to be edge/low, so fitting the ISA defaults); only IRQ16 and up would
>>> work okay.
>>>
>>
> 
> Doing just that : IQR7 is now  of type level
>   xen-pirq     -ioapic-level  pinctrl_amd
> 
> 
> (but is ioapic-level there totally equivalent to the fasteoi of baremetal)
> Still the touchpad does not work.
> 
> And we have now :
> Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-PIXA3854:00: failed to
> reset device: -61
> Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-PIXA3854:00
> failed with error -61
> 
> in addition to
> Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-FRMW0004:00: failed to
> reset device: -61
> Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-FRMW0005:00: failed to
> reset device: -61
> Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRMW0004:00
> failed with error -61
> Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRMW0005:00
> failed with error -61

So there's more to this, which I'm afraid will (first) need looking into
by a person familiar with the involved drivers.

> I noticed that on baremetal :
> 
>   53:          0          0          0          0          0       1268
>      0          0          0          0          0          0          0
>        0          0          0  amd_gpio    5  FRMW0005:00
>   54:          0          0          0          0          0          1
>      0          0          0          0          0          0          0
>        0          0          0  amd_gpio   84  FRMW0004:00
>   55:          0          0          0          0          0       1403
>      0          0          0          0          0          0          0
>        0          0          0  amd_gpio    8  PIXA3854:00
> 
> with xen with IRQ7 setup only once there's only (the touchpad is
> PIXA3854:00)
> 
>  176:          0          0          0          0          0          0
>      1          0          0          0          0          0          0
>        0          0          0  amd_gpio    8
> 
> Interestingly when IRQ7 is setup twice (normal xen)
>  176:          0          0          0          0          0          0
>      1          0          0          0          0          0          0
>        0          0          0  amd_gpio    8  PIXA3854:00

That's odd, as with IRQ7 (wrongly) setup as edge, it should also be marked
as non-sharable. Otoh with the "i2c-PIXA3854:00:" error above it's no
surprise no interrupt is set up there.

>> Furthermore it might be interesting to know whether ELCR would give us
>>> any hint in this case. Sadly depending on where you look,
>>> applicability of this pair of registers (I/O ports 0x4d0 and 0x4d1)
>>> to other than EISA systems is claimed true or false. Could you perhaps
>>> make Xen simply log the values read from those two ports, by e.g.
>>> inserting
>>>
>>>      printk("ELCR: %02x, %02x\n", inb(0x4d0), inb(0x4d1));
>>>
>>> in, say, setup_dump_irqs()?
>>>
>>
> did that but I don't know how to trigger the dump.

There's no need to trigger the dump. The message will be logged during
boot, and hence ought to be visible in "xl dmesg" output.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 08:52:32 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 08:52:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659269.1028797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGbGd-00025j-Od; Fri, 22 Dec 2023 08:52:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659269.1028797; Fri, 22 Dec 2023 08: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 1rGbGd-00025c-Lc; Fri, 22 Dec 2023 08:52:27 +0000
Received: by outflank-mailman (input) for mailman id 659269;
 Fri, 22 Dec 2023 08:52:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=r2k+=IB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGbGd-00025W-1A
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 08:52:27 +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 6dde9984-a0a7-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 09:52:26 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-33666fb9318so1427760f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 00:52:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 m8-20020a056000174800b00336652fed81sm3743363wrf.104.2023.12.22.00.52.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Dec 2023 00:52:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6dde9984-a0a7-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703235145; x=1703839945; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=DMF9qpa006fmoOcrHG7PxSdDPszMqk3J09vRPTQOCuU=;
        b=Z2A9lHoH0V/B2BnKvuCvFOYqFDnpRA1N+EJdkL9VtCz1DaMVGJ0yCp+v6uIoJ2rgrQ
         7QX47LK3gOjo5EkEVs0aSxGasX8Zc+AeWNTsNoiN273PCA0AALCTxTgAcxDciuJsEuTH
         DZv2Xt13zLFgnS/KpTczjg4HwoOTDaD/+9UD8qPpKYsHpU8lrUUYRgcggsyiMBliWRNe
         R+fgQDctpwOP30zjFirM4ii1HQmnBCOwdLFG1fFNqysLsMMBZKt8ZQI6NJBDukDC2jBz
         RNImmZHfLMnyvGT7BXSvSSjtTKf1iQcPMuughWrQ9k5j2X6S7Ih62rWiOBIkUxvPR2XU
         rYgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703235145; x=1703839945;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=DMF9qpa006fmoOcrHG7PxSdDPszMqk3J09vRPTQOCuU=;
        b=SlS5rj6Iu0R7t0Bv1HajZsTOjYo3NOWmYtfJRFQQitL2cRKYPxm03nT9L3kDP6B0j6
         tOcfcUBIGy97fI8posayIgNx1Rt2Wjb/NGkjB/5dzQxT9ad9wlYB9ayw1An9tFhP5wRk
         tJCusQIm8quXXaP+1NDb2WctaMzgav8T/xwwLHZ7BRa9bbTOzaBCeY+XLaDkAh41GYjV
         vqgQ/9caOVoElL3RXeOPMbL0uU/YAcgSdonoGU4NgE1p76zhcqviZGHupJg4x5c9Wl0u
         aCi3+kd/I8VILREADjF0qvWJBthVQBHWALHV2dG+Y5qMAPjd29D1Pr5B0edH7laq8REq
         zKdw==
X-Gm-Message-State: AOJu0YwByK1w4ADclUq4Zrg4OOe+2utagrswpCeExUHp85joWxC2rZp1
	EB1KeoW2gBQEAkuNElDCnb1kqnAvL1fs
X-Google-Smtp-Source: AGHT+IHBNYb1JTZBoCDq4e4ZBjiYbF5mfbyASe5iuhRfUApxJ6YGYCk0To9QSUwtLRRwCE1YOM3syg==
X-Received: by 2002:adf:ef44:0:b0:336:78ae:8165 with SMTP id c4-20020adfef44000000b0033678ae8165mr534756wrp.19.1703235145475;
        Fri, 22 Dec 2023 00:52:25 -0800 (PST)
Message-ID: <c8e09053-53ae-47e0-a3a5-c9c6b58762d7@suse.com>
Date: Fri, 22 Dec 2023 09:52:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 05/17] vpci: add hooks for PCI device assign/de-assign
Content-Language: en-US
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
 Paul Durrant <paul@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20231202012556.2012281-1-volodymyr_babchuk@epam.com>
 <20231202012556.2012281-6-volodymyr_babchuk@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20231202012556.2012281-6-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.12.2023 02:27, Volodymyr Babchuk wrote:
> @@ -886,6 +890,10 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
>  
>      pdev->fault.count = 0;
>  
> +    write_lock(&target->pci_lock);
> +    ret = vpci_assign_device(pdev);
> +    write_unlock(&target->pci_lock);
> +
>   out:
>      if ( ret )
>          printk(XENLOG_G_ERR "%pd: deassign (%pp) failed (%d)\n",

Considering the function we're in, I think this "assign" deserves a comment.
It's necessary for hwdom only aiui, i.e. particularly not for the more
typical case of putting the device in quarantine?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 09:16:56 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 09:16:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659276.1028806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGbe7-0005lt-HX; Fri, 22 Dec 2023 09:16:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659276.1028806; Fri, 22 Dec 2023 09:16: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 1rGbe7-0005lm-ES; Fri, 22 Dec 2023 09:16:43 +0000
Received: by outflank-mailman (input) for mailman id 659276;
 Fri, 22 Dec 2023 09: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGbe6-0005lg-6r
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 09:16:42 +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 d0f76559-a0aa-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 10:16:40 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-50e3cdcf010so1847968e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 01:16:40 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 f14-20020a05651232ce00b0050e2ceb395csm480739lfg.219.2023.12.22.01.16.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 01:16:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0f76559-a0aa-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703236600; x=1703841400; 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=+2BRkSyWdTjrfGeOtDYIpTNdh8fpcgTgPydWGvcBYTA=;
        b=EBD+B+cWYR3M0ah0XWaNnFooT1WCDgUzMahLpEbjte8CsdTvT+FuWMQY+iCtOHd7lT
         iwhu9IZ+n2AkCP/Sc6s85t92S/5fml0M/gg+6fktNcuzjyfP5O6iw3RVAXdrOSrB2lox
         zd8ONxY1jr9Z91OQZkwgWcIddMvQerLl9h/qsXjZCc5roa5NKQAU5x4H14Klt8riW+ZW
         AdYVtkFRNs49aqqBGpUpX5iQaQ21DnoLFmPzryD+ceHcSGCcuxe1IhupUaRDM7lrdH/G
         xpkRTSV+emjacsTYCGuyxZtLKXu8oEvrZ0IZ4OaVxXjDwWLQaqG8rgZGjKiQjRX+f/kF
         4mYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703236600; x=1703841400;
        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=+2BRkSyWdTjrfGeOtDYIpTNdh8fpcgTgPydWGvcBYTA=;
        b=tJ0vEJsTji4FZkkysuNe3pZeF31jAr3RIVBLzz7Bgl9YfWVoAtGGNIYR+YB0sSdPZz
         W9UNs3CTtFrAVBtS8wFCvuk59vljVSpZOlyiVozDwQV0duU3e+8ebmw3wsVS0NOhszVm
         96kzm9LgWsD7qdEaeCWjznOCP+UHt51CyF7RsYlEYazxbGPQccUTCEfF3TDjI1NgW5/y
         IxxDmjfcDRVf51bE+s9AhOpl0viDnoU64RUoAbjG8wnifO0F/eNeYfbl48lRXtqv3INR
         /vPuUL7vTPRYElxLxujqC6f1KLGtlqpJzMgU5UuFUZkYJIqEGZ8fMNgSeyv6bYdlKVnC
         5qow==
X-Gm-Message-State: AOJu0Yy5jKC9xKzh2xWp1nMnCbI7g2K8nz1eXJtqwmXVUHu6vQC/kmiy
	UQ6Lw1XdDcRJ2nJtyiOxEZE=
X-Google-Smtp-Source: AGHT+IF7jclQs/ekIseNVDk4eD2I/jueIStd/pWFp5EOxdib5WQTh9ToH4u1cAtqVfacw3Q1A/cmUg==
X-Received: by 2002:ac2:4649:0:b0:50e:3d69:6522 with SMTP id s9-20020ac24649000000b0050e3d696522mr284901lfo.175.1703236599903;
        Fri, 22 Dec 2023 01:16:39 -0800 (PST)
Message-ID: <11343301f5fc5193cf1ce959a3dbde37e3201b19.camel@gmail.com>
Subject: Re: [PATCH v2 30/39] xen/riscv: define an address of frame table
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>, George Dunlap
 <george.dunlap@citrix.com>,  Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>, 
 xen-devel@lists.xenproject.org
Date: Fri, 22 Dec 2023 11:16:38 +0200
In-Reply-To: <03651b8f-238a-4d64-8595-6b814a118d87@suse.com>
References: <cover.1700761381.git.oleksii.kurochko@gmail.com>
	 <13ad41657814e4fc235772fa0928de1723ae7c3d.1700761381.git.oleksii.kurochko@gmail.com>
	 <b2c42d56-6bc8-4ea8-9e6f-cae259c274c5@suse.com>
	 <5d3e7f9ad7ff0eb779e269eee1c42300d987b5a1.camel@gmail.com>
	 <abacb997-99f4-49c3-b146-320cc9ff1a90@suse.com>
	 <8deb45febe3d8061bca4a8376c280befeaa00fed.camel@gmail.com>
	 <03651b8f-238a-4d64-8595-6b814a118d87@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Fri, 2023-12-22 at 09:08 +0100, Jan Beulich wrote:
> On 21.12.2023 20:59, Oleksii wrote:
> > On Mon, 2023-12-18 at 12:22 +0100, Jan Beulich wrote:
> > > On 18.12.2023 11:36, Oleksii wrote:
> > > > On Thu, 2023-12-14 at 16:48 +0100, Jan Beulich wrote:
> > > > > On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > > > > > +#define SLOTN_ENTRY_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 SLOTN(1)
> > > > > > +
> > > > > > =C2=A0#define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL)
> > > > > > + 1
> > > > > > -
> > > > > > GB(1)) */
> > > > > > +
> > > > > > +#define FRAMETABLE_VIRT_START=C2=A0=C2=A0 SLOTN(196)
> > > > > > +#define FRAMETABLE_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 GB(3)
> > > > > > +#define FRAMETABLE_NR=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 (FRAMETABLE_SIZE /
> > > > > > sizeof(*frame_table))
> > > > > > +#define FRAMETABLE_VIRT_END=C2=A0=C2=A0=C2=A0=C2=A0 (FRAMETABL=
E_VIRT_START +
> > > > > > FRAMETABLE_SIZE - 1)
> > > > > > +
> > > > > > +#define VMAP_VIRT_START=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 SLOTN(194)
> > > > > > +#define VMAP_VIRT_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 GB(1)
> > > > >=20
> > > > > May I suggest that you keep these blocks sorted by slot
> > > > > number?
> > > > > Or
> > > > > wait,
> > > > > the layout comment further up is also in decreasing order, so
> > > > > that's
> > > > > fine here, but then can all of this please be moved next to
> > > > > the
> > > > > comment
> > > > > actually providing the necessary context (thus eliminating
> > > > > the
> > > > > need
> > > > > for
> > > > > new comments)?
> > > > Sure, I'll put this part close to layout comment.
> > > >=20
> > > > > =C2=A0You'll then also notice that the generalization here
> > > > > (keeping basically the same layout for e.g. SATP_MODE_SV48,
> > > > > just
> > > > > shifted
> > > > > by 9 bits) isn't in line with the comment there.
> > > > Does it make sense to add another one table with updated
> > > > addresses
> > > > for
> > > > SATP_MODE_SV48?
> > >=20
> > > Well, especially if you mean to support that mode, its layout
> > > surely
> > > wants writing down. I was hoping though that maybe you/we could
> > > get
> > > away
> > > without multiple tables, but e.g. use one having multiple
> > > columns.
> > I came up with the following but I am not sure that it is really
> > convient:
> > /*
> > =C2=A0* RISC-V64 Layout:
> > =C2=A0*
> > #if RV_STAGE1_MODE =3D=3D SATP_MODE_SV39
> > =C2=A0*
> > =C2=A0* From the riscv-privileged doc:
> > =C2=A0*=C2=A0=C2=A0 When mapping between narrower and wider addresses,
> > =C2=A0*=C2=A0=C2=A0 RISC-V zero-extends a narrower physical address to =
a wider
> > size.
> > =C2=A0*=C2=A0=C2=A0 The mapping between 64-bit virtual addresses and th=
e 39-bit
> > usable
> > =C2=A0*=C2=A0=C2=A0 address space of Sv39 is not based on zero-extensio=
n but
> > instead
> > =C2=A0*=C2=A0=C2=A0 follows an entrenched convention that allows an OS =
to use one
> > or
> > =C2=A0*=C2=A0=C2=A0 a few of the most-significant bits of a full-size (=
64-bit)
> > virtual
> > =C2=A0*=C2=A0=C2=A0 address to quickly distinguish user and supervisor =
address
> > regions.
> > =C2=A0*
> > =C2=A0* It means that:
> > =C2=A0*=C2=A0=C2=A0 top VA bits are simply ignored for the purpose of t=
ranslating
> > to
> > PA.
> > #endif
> > =C2=A0*
> > =C2=A0*=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 SATP_MODE_SV32=C2=A0=C2=A0 =
SATP_MODE_SV39=C2=A0=C2=A0 SATP_MODE_SV48=C2=A0=20
> > SATP_MODE_SV57
> > =C2=A0*=C2=A0=C2=A0=C2=A0=C2=A0 ---------------------------------------=
---------------------
> > ----
> > -----------
> > =C2=A0* BA0 | FFFFFFFFFFE00000 | FFFFFFFFC0000000 | FFFFFF8000000000 |
> > FFFF000000000000
> > =C2=A0* BA1 | 0000000019000000 | 0000003200000000 | 0000640000000000 |
> > 00C8000000000000
> > =C2=A0* BA2 | 0000000018800000 | 0000003100000000 | 0000620000000000 |
> > 00C4000000000000
> > =C2=A0* BA3 | 0000000018400000 | 0000003080000000 | 0000610000000000 |
> > 00C2000000000000
> > =C2=A0*=20
> > =C2=A0*
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > =3D=3D=3D=3D
> > =3D=3D=3D=3D=3D
> > =C2=A0* Start addr=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 End addr=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 Size=C2=A0 | Slot=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |area
> > description
> > =C2=A0*
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > =3D=3D=3D=3D
> > =3D=3D=3D=3D=3D
> > =C2=A0* BA0 + 0x800000 |=C2=A0 FFFFFFFFFFFFFFFF=C2=A0=C2=A0 |1016 MB |
> > L${HYP_PT_ROOT_LEVEL} 511=C2=A0=C2=A0=C2=A0=C2=A0 | Unused
> > =C2=A0* BA0 + 0x400000 |=C2=A0 BA0 + 0x800000=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 2 MB=C2=A0 |
> > L${HYP_PT_ROOT_LEVEL} 511=C2=A0=C2=A0=C2=A0=C2=A0 | Fixmap
> > =C2=A0* BA0 + 0x200000 |=C2=A0 BA0 + 0x400000=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0 4 MB=C2=A0 |
> > L${HYP_PT_ROOT_LEVEL} 511=C2=A0=C2=A0=C2=A0=C2=A0 | FDT
> > =C2=A0* BA0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 |=C2=A0 BA0 + 0x200000=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 2 MB=C2=A0 |
> > L${HYP_PT_ROOT_LEVEL} 511=C2=A0=C2=A0=C2=A0=C2=A0 | Xen
> > =C2=A0*=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ...=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=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 GB=C2=A0 |
> > L${HYP_PT_ROOT_LEVEL} 510=C2=A0=C2=A0=C2=A0=C2=A0 | Unused
> > =C2=A0* BA1 + 0x000000 |=C2=A0 BA1 + 0x4D80000000 | 309 GB |
> > L${HYP_PT_ROOT_LEVEL} 200-509 | Direct 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=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ...=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=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 GB=C2=A0 |
> > L${HYP_PT_ROOT_LEVEL} 199=C2=A0=C2=A0=C2=A0=C2=A0 | Unused
> > =C2=A0* BA2 + 0x000000 |=C2=A0 BA2 + 0xC0000000=C2=A0=C2=A0 |=C2=A0 3 G=
B=C2=A0 |
> > L${HYP_PT_ROOT_LEVEL} 196-198 | Frametable
> > =C2=A0*=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ...=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=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 GB=C2=A0 |
> > L${HYP_PT_ROOT_LEVEL} 195=C2=A0=C2=A0=C2=A0=C2=A0 | Unused
> > =C2=A0* BA3 + 0x000000 |=C2=A0 BA3 + 0x40000000=C2=A0=C2=A0 |=C2=A0 1 G=
B=C2=A0 |
> > L${HYP_PT_ROOT_LEVEL} 194=C2=A0=C2=A0=C2=A0=C2=A0 | VMAP
> > =C2=A0*=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ...=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 194 GB=
 |
> > L${HYP_PT_ROOT_LEVEL} 0 - 193 | Unused
> > =C2=A0*
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > =3D=3D=3D=3D
> > =3D=3D=3D=3D=3D
> > =C2=A0*/
> >=20
> > Do you have better ideas?
>=20
> It doesn't look too bad imo, at the first glance, albeit the line
> wrapping damage of course makes it a little hard to look at. In the
> last table with all lines saying L${HYP_PT_ROOT_LEVEL}, perhaps that
> could be put in the table heading (instead of "Slot" say e.g. "Root
> PT slot")?
Thanks for the remark. It would be definitely better.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 09:39:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 09:39:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659284.1028816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGc0X-00019G-CP; Fri, 22 Dec 2023 09:39:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659284.1028816; Fri, 22 Dec 2023 09:39:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGc0X-000199-9w; Fri, 22 Dec 2023 09:39:53 +0000
Received: by outflank-mailman (input) for mailman id 659284;
 Fri, 22 Dec 2023 09: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGc0W-000193-8M
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 09:39: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 0dd6d3db-a0ae-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 10:39:51 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ccabf5a4beso3701581fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 01:39:51 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 w3-20020a2e9bc3000000b002cc864632fdsm187065ljj.100.2023.12.22.01.39.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 01:39:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0dd6d3db-a0ae-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703237991; x=1703842791; 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=mdqQrZr0DFSnQK2TmK1w8gWdKT8TtOToXsTF3VFvIDA=;
        b=LhsM44gyildkP7UzGbGhKOj6LpWOk91Q8CWl/Vtsddm9Rsmm4a1a7Mb2rz6FErqU8x
         fJszbHiO/koXV8kikf1swD0bNSFLXuq40p2/hF8A8HKXcLcItBR2QOpfpt1GeF83oAMN
         zUlmUHlTVKQ/Wgs8qbU4wsdpE5Y0+lYADScsOD/IZ8keOReDHb2lRCax3frYxYOvf4KB
         jC2pAFKtuniyKQycq9fIxk5tihGeqHKt+dg7gDuv6oktCVdSc8p+p0p9seX3boEid2XL
         2wOoBi39igC4MbST3ojUNvFyEkeJevQXs+Y/R9DGBBTL2nOFC3KAeMzhosYoE7MFRb29
         ZM+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703237991; x=1703842791;
        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=mdqQrZr0DFSnQK2TmK1w8gWdKT8TtOToXsTF3VFvIDA=;
        b=Q1WvD6U1tIyLlkJomgKiOyuZ93IpvQb4SHaMW3dni0pZn/zy/J9+CXsaYyJ+WvR1i4
         ELPIepUlrnQf1MmrmvSuy7e4x3mWH9JxcuVqc6OjboPlPA8icVfTgW/13d8+G0TNLm6R
         TGqtCc8xmxIFrJ5Q70Ds4DjjCM8EgleFzwXpUcXNpZIpHqnyVeTXKFg6klRw1uuCqCfz
         cWbS42ydK66k4sLZKuDeQMF8HyAW5/HOQPZNHckgkfyGVfbix5dTbue2gDgZYjPQ/4b8
         GAYkQJVLTnzn7VoEF7qScVWvGen2VIaFzcueMK54kiwocd0iumo5GdtwWUneC+zIhooj
         lwRw==
X-Gm-Message-State: AOJu0YwUkWQyjN2NL8oTpTK2x5NVIJdYpnQGFT6rZF2YcANyirVOc74O
	0dTaTk7RFzpoYBoTprB+MPc=
X-Google-Smtp-Source: AGHT+IHtWPuLCXfIny787qvk3Fn0KUSoLLkjV2SmVb3X7j+e7uiRk98I3xfV5TTkPb2HMZoRC/xGig==
X-Received: by 2002:a2e:9a94:0:b0:2cc:7990:b3a3 with SMTP id p20-20020a2e9a94000000b002cc7990b3a3mr236809lji.17.1703237990494;
        Fri, 22 Dec 2023 01:39:50 -0800 (PST)
Message-ID: <fb627eae0deb85569d3c3044154f1588e9202ec9.camel@gmail.com>
Subject: Re: [PATCH] move __read_mostly to xen/cache.h
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>
Cc: George Dunlap <george.dunlap@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>, Bertrand Marquis
 <bertrand.marquis@arm.com>,  Volodymyr Babchuk
 <volodymyr_babchuk@epam.com>, Shawn Anastasio
 <sanastasio@raptorengineering.com>,  "xen-devel@lists.xenproject.org"
 <xen-devel@lists.xenproject.org>
Date: Fri, 22 Dec 2023 11:39:49 +0200
In-Reply-To: <893a5ebf-54e2-f2b2-1365-2a6d36ed3a39@suse.com>
References: <f25eb5c9-7c14-6e23-8535-2c66772b333e@suse.com>
	 <b49777c7-c677-826f-01da-c6b5b67f5b85@citrix.com>
	 <893a5ebf-54e2-f2b2-1365-2a6d36ed3a39@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Tue, 2023-08-08 at 12:32 +0200, Jan Beulich wrote:
> On 08.08.2023 12:18, Andrew Cooper wrote:
> > On 08/08/2023 10:46 am, Jan Beulich wrote:
> > > There's no need for every arch to define its own identical copy.
> > > If down
> > > the road an arch needs to customize it, we can add #ifndef around
> > > the
> > > common #define.
> > >=20
> > > To be on the safe side build-breakage-wise, change a couple of
> > > #include
> > > <asm/cache.h> to the xen/ equivalent.
> > >=20
> > > Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >=20
> > Could we find a better place to put this?
> >=20
> > __read_mostly is just a section.=C2=A0 It's relationship to the cache i=
s
> > only
> > microarchitectural, and is not the same kind of information as the
> > rest
> > of cache.h
> >=20
> > __ro_after_init is only here because __read_mostly is here, but has
> > absolutely nothing to do with caches whatsoever.
> >=20
> > If we're cleaning them up, they ought to live elsewhere.
>=20
> I would be considering init.h (for having most other __section()
> uses,
> and for also needing __read_mostly), but that's not a great place to
> put these either. In fact I see less connection there than for
> cache.h.
> So the primary need is a good suggestion (I'm hesitant to suggest to
> introduce section.h just for this).
Andrew sent some suggestions here:
https://lore.kernel.org/xen-devel/3df1dad8-3476-458f-9022-160e0af57d39@citr=
ix.com/

Will that work for you?

>  In the absence of this, can we
> perhaps deal with this in a 2nd step, thus not blocking this patch
> and
> therefore not needing to then also clean up PPC-specific code?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 11:00:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 11:00:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659290.1028826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGdG6-000402-4O; Fri, 22 Dec 2023 11:00:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659290.1028826; Fri, 22 Dec 2023 11:00: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 1rGdG6-0003zI-0Y; Fri, 22 Dec 2023 11:00:02 +0000
Received: by outflank-mailman (input) for mailman id 659290;
 Fri, 22 Dec 2023 11:00: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 1rGdG4-0003uX-NH; Fri, 22 Dec 2023 11:00: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 1rGdG4-0008OO-AM; Fri, 22 Dec 2023 11:00: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 1rGdG3-0001Iv-Ru; Fri, 22 Dec 2023 10:59:59 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGdG3-00057Z-Qu; Fri, 22 Dec 2023 10:59:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=NsDyRbcquuVQraAHdDaZzuUM7H7hU1zNypZvjVLtPXg=; b=oJNZCQdmosvAkzWccH21CjHeHv
	mkU9U/17GgECRPLv0GBTltX4rDnYQ+pR57N5rqUG+M29dzSBYza43BwmxRf+E/GhTX92qIDuF34BY
	47Z0gZhNzVkaFYEluAms+Y/GHwf4pZ7TUQbHYVk7vZvErS4jQrdDlOzo47PSzWw/REM8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184206-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184206: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-qcow2:host-ping-check-xen:fail:heisenbug
    linux-linus:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-qcow2: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-armhf-armhf-libvirt-raw: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:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl: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-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt: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-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=9a6b294ab496650e9f270123730df37030911b55
X-Osstest-Versions-That:
    linux=a4aebe936554dac6a91e5d091179c934f8325708
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 22 Dec 2023 10:59:59 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-libvirt-qcow2 10 host-ping-check-xen fail pass in 184211-retest

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail in 184211 like 184201
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check fail in 184211 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184201
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184201
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184201
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184201
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184201
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184201
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184201
 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-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-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-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-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-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                9a6b294ab496650e9f270123730df37030911b55
baseline version:
 linux                a4aebe936554dac6a91e5d091179c934f8325708

Last test of basis   184201  2023-12-21 08:46:02 Z    1 days
Testing same since   184206  2023-12-21 22:43:55 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Lu <alex_lu@realsil.com.cn>
  Alexander Graf <graf@amazon.com>
  Andrii Nakryiko <andrii@kernel.org>
  Andy Gospodarek <andrew.gospodarek@broadcom.com>
  Arnd Bergmann <arnd@arndb.de>
  Avraham Stern <avraham.stern@intel.com>
  Carolina Jubran <cjubran@nvidia.com>
  Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
  Chen-Yu Tsai <wens@kernel.org>
  Chris Mi <cmi@nvidia.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Daniel Golle <daniel@makrotopia.org>
  Dave Ertman <david.m.ertman@intel.com>
  David Ahern <dsahern@kernel.org>
  David Howells <dhowells@redhat.com>
  David S. Miller <davem@davemloft.net>
  Dinghao Liu <dinghao.liu@zju.edu.cn>
  duanqiangwen <duanqiangwen@net-swift.com>
  Edward Adam Davis <eadavis@qq.com>
  Eric Dumazet <edumazet@google.com>
  Felix Fietkau <nbd@nbd.name>
  FrÃ©dÃ©ric Danis <frederic.danis@collabora.com>
  Geliang Tang <geliang.tang@linux.dev>
  Hangbin Liu <liuhangbin@gmail.com>
  Hou Tao <houtao1@huawei.com>
  Hyunwoo Kim <v4bel@theori.io>
  Ivan Vecera <ivecera@redhat.com>
  Jacob Keller <jacob.e.keller@intel.com>
  Jakub Kicinski <kuba@kernel.org>
  Jakub Sitnicki <jakub@cloudflare.com>
  Jamal Hadi Salim <jhs@mojatatu.com>
  Jianbo Liu <jianbol@nvidia.com>
  Jijie Shao <shaojijie@huawei.com>
  Jiri Olsa <jolsa@kernel.org>
  Johannes Berg <johannes.berg@intel.com>
  John Fastabend <john.fastabend@gmail.com>
  Kalle Valo <kvalo@kernel.org>
  Lai Peter Jun Ann <jun.ann.lai@intel.com>
  Larysa Zaremba <larysa.zaremba@intel.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Liu Jian <liujian56@huawei.com>
  Lorenzo Bianconi <lorenzo@kernel.org>
  Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
  Markus Suvanto <markus.suvanto@gmail.com>
  Martin KaFai Lau <martin.lau@kernel.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Matthieu Baerts <matttbe@kernel.org>
  Max Chou <max.chou@realtek.com>
  Michael Chan <michael.chan@broadcom.com>
  Michal Schmidt <mschmidt@redhat.com>
  Miri Korenblit <miriam.rachel.korenblit@intel.com>
  Moshe Shemesh <moshe@nvidia.com>
  Paolo Abeni <pabeni@redhat.com>
  Pengfei Xu <pengfei.xu@intel.com>
  Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
  Rafal Romanowski <rafal.romanowski@intel.com>
  Rahul Rameshbabu <rrameshbabu@nvidia.com>
  Randy Dunlap <rdunlap@infradead.org>
  Ronald Wahl <ronald.wahl@raritan.com>
  Rouven Czerwinski <r.czerwinski@pengutronix.de>
  Saeed Mahameed <saeedm@nvidia.com>
  Seth Forshee <sforshee@kernel.org>
  Shifeng Li <lishifeng@sangfor.com.cn>
  Shigeru Yoshida <syoshida@redhat.com>
  Simon Horman <horms@kernel.org> # build-tested
  Song Yoong Siang <yoong.siang.song@intel.com>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Suman Ghosh <sumang@marvell.com>
  Thomas WeiÃŸschuh <linux@weissschuh.net>
  Tony Nguyen <anthony.l.nguyen@intel.com>
  Vlad Buslov <vladbu@nvidia.com>
  Vladimir Oltean <vladimir.oltean@nxp.com>
  Xiao Yao <xiaoyao@rock-chips.com>
  Ying Hsu <yinghsu@chromium.org>
  Yury Norov <yury.norov@gmail.com>
  Zhipeng Lu <alexious@zju.edu.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                 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               fail    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   a4aebe936554..9a6b294ab496  9a6b294ab496650e9f270123730df37030911b55 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 11:09:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 11:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659298.1028837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGdOw-0005Yd-Vy; Fri, 22 Dec 2023 11:09:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659298.1028837; Fri, 22 Dec 2023 11:09:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGdOw-0005YW-RZ; Fri, 22 Dec 2023 11:09:10 +0000
Received: by outflank-mailman (input) for mailman id 659298;
 Fri, 22 Dec 2023 11:09:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=r2k+=IB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGdOv-0005YQ-OD
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 11:09:09 +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 86d80767-a0ba-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 12:09:08 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40c60dfa5bfso19006965e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 03:09:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 s13-20020a05600c45cd00b0040d414b57e8sm4112766wmo.26.2023.12.22.03.09.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Dec 2023 03:09:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86d80767-a0ba-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703243348; x=1703848148; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=9/aGrjOFmgNAYadH8duEIGwUiB6gIhsedbAjrMNBxQU=;
        b=RBHSRJiBo1yZmG8QlF9xBqrqCYIDFs35vrC26V2GmxRjrGRPz0RbpklUQ+8YTHEzpS
         W8UszA3GOpFbvgDiI6J5vrP1xVQyEefuq6eMHGkIOs2QD+LmcQbCxJzooY5ZqxNRogDC
         jfBzyZMTPMZJn/ml0pbiWN1EDNqxU2k3I69Vnuq2dmobVE/pEKI/Bye1iYZbGGQP0AyO
         4csyscA3shlbs+Sl8Hdx1pU/WijJwNrn6M0NXgytiY7taGpjyFjrCG6uY+kZArT9l5Q1
         xeLgv4oQQg5vlgdajUx8hv0d9vgY7XA9sb2cAPepBok3TQX3GweV1Vq8RzFAKfqnFEE7
         hAvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703243348; x=1703848148;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=9/aGrjOFmgNAYadH8duEIGwUiB6gIhsedbAjrMNBxQU=;
        b=GCYABj2hYFlwzPoJgIkOdDh9JClSER8m5GA+9ZgZ14ivCSUOZWVPOz0h1K2G4K2Kh7
         BB8dQmf4R7ulqUIpsKD+miq+KF3f0mQEtp++77HGXd4zK/OHIdzmim5POgindSuAG5dt
         2n+FD635lXTSiO8+lyOlMFFRImXSfaiEiUwaIOSUegtwNvSfF7mcFM1AaseO5Ac53xcv
         seJva96X107JXnhBJyyv9OzXX/VkAdaPCkstci6mkDs9mzSRR9DapDQj14xIxo/PxB7T
         Zbj6KQ+qF3vBJrG3vVHvGe/RjHgqRxBe99/D8NZQUVMe6SgvBs6tNnOGCYZy79dB4IFz
         Xv6g==
X-Gm-Message-State: AOJu0YyurnE7wy5/5rdGihv3jb3+pw4BZUzouFJXqrd7TwCxq7nnRfz6
	8ZNgLsLlEtyjJco5cVhbRKC8bsi8f/zY
X-Google-Smtp-Source: AGHT+IG2BxgwHDvGrX/X0pcHiyyRc8vkGPwZZS3Lq/c3r3f7hAN0qeob5ncrhVV83tSPRdLnChK+wA==
X-Received: by 2002:a05:600c:44d6:b0:40c:78c:f864 with SMTP id f22-20020a05600c44d600b0040c078cf864mr637115wmo.16.1703243347739;
        Fri, 22 Dec 2023 03:09:07 -0800 (PST)
Message-ID: <64466285-35b8-497c-a12b-60fe0c998ba6@suse.com>
Date: Fri, 22 Dec 2023 12:09:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] move __read_mostly to xen/cache.h
Content-Language: en-US
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: George Dunlap <george.dunlap@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>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <f25eb5c9-7c14-6e23-8535-2c66772b333e@suse.com>
 <b49777c7-c677-826f-01da-c6b5b67f5b85@citrix.com>
 <893a5ebf-54e2-f2b2-1365-2a6d36ed3a39@suse.com>
 <fb627eae0deb85569d3c3044154f1588e9202ec9.camel@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: <fb627eae0deb85569d3c3044154f1588e9202ec9.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.12.2023 10:39, Oleksii wrote:
> On Tue, 2023-08-08 at 12:32 +0200, Jan Beulich wrote:
>> On 08.08.2023 12:18, Andrew Cooper wrote:
>>> On 08/08/2023 10:46 am, Jan Beulich wrote:
>>>> There's no need for every arch to define its own identical copy.
>>>> If down
>>>> the road an arch needs to customize it, we can add #ifndef around
>>>> the
>>>> common #define.
>>>>
>>>> To be on the safe side build-breakage-wise, change a couple of
>>>> #include
>>>> <asm/cache.h> to the xen/ equivalent.
>>>>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> Could we find a better place to put this?
>>>
>>> __read_mostly is just a section.Â  It's relationship to the cache is
>>> only
>>> microarchitectural, and is not the same kind of information as the
>>> rest
>>> of cache.h
>>>
>>> __ro_after_init is only here because __read_mostly is here, but has
>>> absolutely nothing to do with caches whatsoever.
>>>
>>> If we're cleaning them up, they ought to live elsewhere.
>>
>> I would be considering init.h (for having most other __section()
>> uses,
>> and for also needing __read_mostly), but that's not a great place to
>> put these either. In fact I see less connection there than for
>> cache.h.
>> So the primary need is a good suggestion (I'm hesitant to suggest to
>> introduce section.h just for this).
> Andrew sent some suggestions here:
> https://lore.kernel.org/xen-devel/3df1dad8-3476-458f-9022-160e0af57d39@citrix.com/
> 
> Will that work for you?

I still need to properly look at the suggested options.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 11:18:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 11:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659306.1028847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGdXx-0007Jf-Tv; Fri, 22 Dec 2023 11:18:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659306.1028847; Fri, 22 Dec 2023 11:18:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGdXx-0007JY-Qw; Fri, 22 Dec 2023 11:18:29 +0000
Received: by outflank-mailman (input) for mailman id 659306;
 Fri, 22 Dec 2023 11:18: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 1rGdXv-0007JO-Tz; Fri, 22 Dec 2023 11:18: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 1rGdXv-0000Qp-Iq; Fri, 22 Dec 2023 11:18: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 1rGdXv-0001x9-1S; Fri, 22 Dec 2023 11:18:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGdXv-0002Aq-12; Fri, 22 Dec 2023 11:18: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=8NAcs8LCoFPbuNrmrc/b7u9NSYiEFqqZNGMO6stiLh8=; b=aaQfZMdToNwuJBLPVqugW2KcJS
	oT6fVYrI2NY4EornWymTmq3JZjTCkKSJc0EGID7M1RV3oMMZ8Fh+g2AH0PW1kTFELH7+rIEdW8oWY
	rFy830E+wVDyW4nBkZaCwclWgsF64ZKY5qkIhKKxZludqf3fU1VPKRxtUEUTuhsvfJVY=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184210-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184210: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=d01defe06b35eb3fe9c94e7b2e08a8762873f924
X-Osstest-Versions-That:
    ovmf=5d533bbc27732a421e3bf35c5af77782b8a85e6f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 22 Dec 2023 11:18:27 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 d01defe06b35eb3fe9c94e7b2e08a8762873f924
baseline version:
 ovmf                 5d533bbc27732a421e3bf35c5af77782b8a85e6f

Last test of basis   184202  2023-12-21 10:12:56 Z    1 days
Testing same since   184210  2023-12-22 09:12:48 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Abdul Lateef Attar <AbdulLateef.Attar@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    
 test-amd64-i386-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
   5d533bbc27..d01defe06b  d01defe06b35eb3fe9c94e7b2e08a8762873f924 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 11:36:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 11:36:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659314.1028857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGdox-0001pE-CN; Fri, 22 Dec 2023 11:36:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659314.1028857; Fri, 22 Dec 2023 11:36:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGdox-0001p7-9l; Fri, 22 Dec 2023 11:36:03 +0000
Received: by outflank-mailman (input) for mailman id 659314;
 Fri, 22 Dec 2023 11:36: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=r2k+=IB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGdov-0001p1-TW
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 11:36:01 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 471ae044-a0be-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 12:35:59 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-336990fb8fbso185047f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 03:35:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 cx1-20020a056000092100b00336598903e9sm4087308wrb.58.2023.12.22.03.35.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Dec 2023 03:35:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 471ae044-a0be-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703244959; x=1703849759; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=EPEn8NaGEBS7w2SAzSMTb5W4c8vY8VjRSDnLcvCr8PU=;
        b=gg78CQZW+czCsZe8QiBl5CUSHOtkwapLQl1tjzXh1B2v9eX1McoX27biAnUH7MbMTF
         s6t6V9saB3Z3sy2ZPoGO6wyoaADjGvyyBQs/JCxoj39AkZIrKyF25SRVdjFtBhi44Sz8
         BRNf3mMTaIFICrhS1rEA25ICcpdvHPtJsOITXhi7aUz28D2GoxogEm+rBm/5OHSBsQsV
         vIBzYKzaOugsRI1qqYGHVvfnrbKClNeOI3OKK/Qla+cHlxT8AqLOer80Xf8c7VmlYyk3
         5HZQbc+6ZkOM7/iSNxLet9FTp+FtrYR1GsnSaUYb1hZFRZhGNSrTKnqSdo+yUYCg3262
         cVzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703244959; x=1703849759;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=EPEn8NaGEBS7w2SAzSMTb5W4c8vY8VjRSDnLcvCr8PU=;
        b=RIK3pkt4W2ZLCKVMPvgvC/yZMUSnkQAOtFhO0BKQ30hkZZ2l+EVo4qgjD5MKDX/YRn
         D0l7x27goloQWSkKwgT+NAddxyxb4MtW4QIvBT2ILoB9sfIP66VTrFD1u4FpxifhsN9F
         FJqaM3D19pcQTPD+duccD/NHuGc1NgtuI9eG5gpMtjUvdvS/qdh4J6bXh+pao7pDaOU/
         oCi4kzh0WvabIwRHdWbFO1D6gYht6K4jeh2g/0H1IKiUasoJU+wIe4NRFU+56Nv2ixD3
         zmg8m6esA/hwo/ROZM22APVQZ+7fBJ+krOzs3ank3xQLvtOyj/9tSm4Iz0G6ncBy+sDG
         1LFg==
X-Gm-Message-State: AOJu0YyoJMYWyLTB7NqN4AQ/7Cnjc+C14jOsx5LFF2dtSi2JQkBENjjA
	M54XwyCkG6/Y7lVyPIub28VcuvQu+PNJ
X-Google-Smtp-Source: AGHT+IETeoc9U+HmYA5xhfq2wNmX6nYqd58/scBk3tmKbtojb0j6DeMZLzO71coFNUocw0z05tCV2w==
X-Received: by 2002:a5d:6484:0:b0:336:62c1:d0af with SMTP id o4-20020a5d6484000000b0033662c1d0afmr736074wri.60.1703244958728;
        Fri, 22 Dec 2023 03:35:58 -0800 (PST)
Message-ID: <1c857c96-9f2d-4787-8804-799a63a00480@suse.com>
Date: Fri, 22 Dec 2023 12:35:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: hvmloader - allow_memory_relocate overlaps
Content-Language: en-US
To: Neowutran <xen@neowutran.ovh>
Cc: xen-devel@lists.xenproject.org, Anthony Perard
 <anthony.perard@citrix.com>, George Dunlap <george.dunlap@citrix.com>
References: <7oe275z3eap7rhdwmrm4mvqnjnhrpag5cjwnfvwsf7rchhkyjv@pd3abzwdhg6v>
 <217649a9-8399-48d3-ba49-ae22cacf0d4b@suse.com>
 <lyqv62ezqqaybcfuhkvbhiltvnxyy32wzr36kclh7bzrupcvib@a5fpoe6atykl>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <lyqv62ezqqaybcfuhkvbhiltvnxyy32wzr36kclh7bzrupcvib@a5fpoe6atykl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.12.2023 19:08, Neowutran wrote:
> On 2023-12-19 17:12, Jan Beulich wrote:
>> On 16.12.2023 08:01, Neowutran wrote:
>>> I am wondering if the variable "allow_memory_relocate" is still
>>> relevant today and if its default value is still relevant. 
>>> Should it be defined to 0 by default instead of 1 (it seems to be a
>>> workaround for qemu-traditional, so maybe an outdated default value ? ) ? 
>>
>> So are you saying you use qemu-trad?
> No, I am using "qemu_xen" ( from  
> xenstore-read -> 'device-model =
> "qemu_xen"' 
> 
>> Otherwise isn't libxl suppressing this behavior anyway?
> If by "isn't libxl suppressing this behavior" you means if libxl is setting
> the value of "allow_memory_relocate", then the answer is no. 
> 
> Following this lead, I checked in what code path
> "allow_memory_relocate" could be defined. 
> 
> It is only defined in one code path, 
> 
> In the file "tools/libs/light/libxl_dm.c",
> in the function "void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)": 
> 
> '''
>  // ...
>     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
>  // ...
> 
>         libxl__xs_printf(gc, XBT_NULL,
>                          GCSPRINTF("%s/hvmloader/allow-memory-relocate", path),
>                          "%d",
>                          b_info->device_model_version==LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
>                          !libxl__vnuma_configured(b_info));
> // ...
> '''
> 
> However, on QubesOS (my system), "local_dm" is never used, "stub_dm"
> is always used. 
> 
> In the function "void lib 
> xl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)", 
> the value of "allow_memory_relocate" is never defined. 
> 
> I tried to patch the code to define "allow_memory_relocate" in
> "libxl__spawn_stub_dm": 
> 
> '''
> --- a/tools/libs/light/libxl_dm.c
> +++ b/tools/libs/light/libxl_dm.c
> @@ -2431,6 +2431,10 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
>                                         libxl__xs_get_dompath(gc, guest_domid)),
>                          "%s",
>                          libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios));
> +        libxl__xs_printf(gc, XBT_NULL,
> +                         libxl__sprintf(gc, "%s/hvmloader/allow-memory-relocate", libxl__xs_get_dompath(gc, guest_domid)),
> +                         "%d",
> +                         0);
>      }
>      ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid);
>      if (ret<0) {
> '''
> 
> And it is indeed another way to solve my issue. 
> However I do not understand the xen hypervisor enough to known i 
> f
> "allow-memory-relocate" should have been defined in
> "libxl__spawn_stub_dm" or if the real issue is somewhere else. 

I think it should be done the same no matter where qemu runs. Back at the
time iirc only qemu-trad could run in a stubdom, which may explain the
omission. Cc-ing the two guys who are likely in the best position to tell
for sure.

>>> Code extract: 
>>>
>>> tools/firmware/hvmloader/pci.c 
>>> "
>>>    /*
>>>      * Do we allow hvmloader to relocate guest memory in order to
>>>      * increase the size of the lowmem MMIO hole?  Defaulting to 1
>>>      * here will
>>>  mean that non-libxl toolstacks (including xend and
>>>      * home-grown ones) means that those using qemu-xen will still
>>>      * experience the memory relocation bug described below; but it
>>>      * also means that those using q 
>>> emu-traditional will *not*
>>>      * experience any change; and it also means that there is a
>>>      * work-around for those using qemu-xen, namely switching to
>>>      * qemu-traditional.
>>>      *
>>>      * If we defaulted to 0, and failing to resize the hole caused any
>>>      * problems with qemu-traditional, then there is no work-around.
>>>      *
>>>      * Since xend can 
>  only use qemu-traditional, I think this is the
>>>      * option that will have the least impact.
>>>      */
>>>     bool allow_memory_relocate = 1;
>>> "
>>>
>>> "
>>>         /*
>>>          * At the moment qemu-xen can't deal with relocated memory regions.
>>>          * It's too close to the release to make a proper fix; for now,
>>>          * only allow t
>>> he MMIO hole to grow large enough to move guest memory
>>>          * if we're running qemu-traditional.  Items that don't fit will be
>>>          * relocated into the 64-bit address space.
>>>          *
>>>          * This loop now does the following:
>>>          * - If allow_memory_relocate, increase the MMIO hole until it's
>>>          *   big enough, or  
>>> until it's 2GiB
>>>          * - If !allow_memory_relocate, increase the MMIO hole until it's
>>>          *   big enough, or until it's 2GiB, or until it overlaps guest
>>>          *   memory
>>>          */
>>>         while ( (mmio_total > (pci_mem_end - pci_mem_start))
>>>     
>              && ((pci_mem_start << 1) != 0)
>>>                 && (allow_memory_relocate
>>>                     || (((pci_mem_start << 1) >> PAGE_SHIFT)
>>>                         >= hvm_info->low_mem_pgend)) )
>>>             pci_mem_start <<= 1;
>>> "
>>>
>>> The issue it cause is documented in the source code: guest memory can
>>> be trashed by the hvmloader. 
>>>
>>> Due to this issue, it is impossible to passthrough a large PCI device to a HVM with a lot of ram.
>>> (https://github.com/QubesOS/qubes-issues/issues/4321). 
>>>
>>> (Forcing "allow_memory_relocate" to be 0 seems to solve the issue
>>> linked)
>>
>> What I don't understand here (and what I also can't find helpful logs for)
>> is: The code in hvmloader is in principle intended to work in both cases.
>> If there's suspected guest memory corruption, can we get to see the actual
>> results of the MMIO hole creation and its using for device ranges? If there
>> indeed is an overlap with guest RAM, that's a bug which wants fixing.
> 
> tools/firmware/ 
> hvmloader/pci.c, function "void pci_setup(void)"
> I added a log to print if the hvmloader would have tried to overlaps
> guest memory
> 
> '''
> 
> +        printf("NEOWUTRAN pci.c: pci_mem_end: %d\n",pci_mem_end);
> +        printf("NEOWUTRAN pci.c: pci_mem_start: %d\n",pci_mem_start);
> +        printf("NEOWUTRAN pci.c: allow_memory_relocate: %d\n",allow_memory_relocate);
> +        printf("NEOWUTRAN pci.c: hvm_info->low_mem_pgend: %d\n",hvm_info->low_mem_pgend);
> +
> +
>         while ( (mmio_total > (pci_mem_end - pci_mem_start))
>                 && ((pci_mem_start << 1) != 0)
>                 && (allow_memory_relocate
>                     || (((pci_mem_start << 1) >> PAGE_SHIFT)
>                         >= hvm_info->low_mem_pgend)) )
>             pci_mem_start <<= 1;
> 
> +         if ( (mmio_total > (pci_mem_end - pci_mem_start))
> +                && ((pci_mem_start << 1) != 0)
> +                && (1
> +                    || (((pci_mem_start << 1) >> PAGE_SHIFT)
> +                        >= hvm_info->low_mem_pgend)) ){
> +                
> printf("NEOWUTRAN pci.c: HVM_LOADER would have tried to relocate guest memory\n");
> +               printf("NEOWUTRAN pci.c: pci_mem_start: %d\n",pci_mem_start);
> +
> +        }
> '''
> 
> And the associated result is: 
> 
> (d22) NEOWUTRAN pci.c: pci_mem_end: -67108864
> (d22) NEOWUTRAN pci.c: pci_mem_start: -268435456
> (d22) NEOWUTRAN pci.c: allow_memory_relocate: 0
> (d22) NEOWUTRAN pci.c: hvm_info->low_mem_pgend: 983040
> (d22) NEOWUTRAN pci.c: HVM_LOADER would have tried to relocate guest memory
> (d22) NEOWUTRAN pci.c: pci_mem_start: -268435456
> 
> So if "allow_memory_relocate" was not defined to 0, the hvmloader
> would have tried to overlaps guest memory, and it seems that is
> something that qemu_xen cannot handle.

Well, memory addresses printed in decimal are pretty hard to work with.
But I'd like to ask anyway that you supply all of the log messages for
such a guest starting, to be able to correlate what you've added with
other items also logged.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 12:39:26 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 12:39:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659326.1028867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGeo4-0001uO-Ag; Fri, 22 Dec 2023 12:39:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659326.1028867; Fri, 22 Dec 2023 12:39: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 1rGeo4-0001uH-7o; Fri, 22 Dec 2023 12:39:12 +0000
Received: by outflank-mailman (input) for mailman id 659326;
 Fri, 22 Dec 2023 12:39: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 1rGeo2-0001u7-Uw; Fri, 22 Dec 2023 12:39: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 1rGeo2-0002Nw-Ok; Fri, 22 Dec 2023 12:39: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 1rGeo2-0005Rr-Fw; Fri, 22 Dec 2023 12:39:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGeo2-0004iw-FV; Fri, 22 Dec 2023 12:39: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=F8M8uSBYi4pLle8WefrTCNGFDisMxbMsbvqE+5omeGU=; b=uarH1IHIeUPvskSY7SLoXL43aT
	SVvQyJSIgcxiptXmKsjPM0MRxLBfrQfIqbNAWNroKppmyKue66XgBxcwuNdUw+pnGRRu6MsAjRLbp
	IdZBlQOYkcCWUrN31uexG7NRCXn0G7wIJEdgqlbcxb3N9pitRoswIgQwUFFGFsolf2tw=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184208-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [libvirt test] 184208: tolerable all pass - PUSHED
X-Osstest-Failures:
    libvirt:test-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-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-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-xsm:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt:migrate-support-check:fail:nonblocking
    libvirt:test-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    libvirt:test-armhf-armhf-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    libvirt=b72d7c46e54109c5df98977d30d7c78dac79514d
X-Osstest-Versions-That:
    libvirt=9fc140c72d4a9d2ad44bd69474023e130b3da13b
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 22 Dec 2023 12:39:10 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184199
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184199
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184199
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-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-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-xsm 15 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-raw  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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 libvirt              b72d7c46e54109c5df98977d30d7c78dac79514d
baseline version:
 libvirt              9fc140c72d4a9d2ad44bd69474023e130b3da13b

Last test of basis   184199  2023-12-21 04:20:29 Z    1 days
Testing same since   184208  2023-12-22 04:20:26 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Han Han <hhan@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-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-libvirt                                     pass    
 test-arm64-arm64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-arm64-arm64-libvirt-qcow2                               pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-raw                                  pass    
 test-amd64-amd64-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
   9fc140c72d..b72d7c46e5  b72d7c46e54109c5df98977d30d7c78dac79514d -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 13:02:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 13:02:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659335.1028879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfAv-0005t0-7A; Fri, 22 Dec 2023 13:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659335.1028879; Fri, 22 Dec 2023 13:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfAv-0005st-4c; Fri, 22 Dec 2023 13:02:49 +0000
Received: by outflank-mailman (input) for mailman id 659335;
 Fri, 22 Dec 2023 13:02:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGfAu-0005sn-BA
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 13:02:48 +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 67390324-a0ca-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 14:02:47 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50e62c1245eso1667143e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 05:02:47 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 z27-20020a195e5b000000b0050bf774b7c2sm543396lfi.274.2023.12.22.05.02.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 05:02:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67390324-a0ca-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703250167; x=1703854967; 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=7416tEImjH6lSBKQ1ZUeENcGTgYyQ3DlEVj4N4VWgfg=;
        b=Jm/4Xf1AGbIaN0pat0eWkE0LycuGb6qVfVR3c5t1d2i92kRW9wnervRt7L72RmmVjV
         noZlK3b4knRdleuNwj9Mh1K4PIovs03foLQuwhnL9CRpo1/z3DpQeGgFYtqWawMCJvMz
         NVjZp5UvDo13r7UIBjtpFU3DKDJlHXtkKDnq9l8JkhboQHsSyOBSiNecDbzZk9zusFI/
         cmqoFT52eqeT2eHwGAr/YhmYQLnJA+225zVUDSBWegD3NGw8HCRoi4WJAENO6U68lFWl
         0bzLcjyyFscb35VEyBJs9yEqX3owijHeeZgrnIPtSkMM01kgm82eXLVSpMuxb+rQUJy9
         dh0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703250167; x=1703854967;
        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=7416tEImjH6lSBKQ1ZUeENcGTgYyQ3DlEVj4N4VWgfg=;
        b=EXHZacoYOlQTKF7QUFYOVg+HBHO3nHWZpMOuP6ugh3ru4xxV9bnxY42y/4ZyKSvvO0
         BZilPGsztyi0am9szeIg5ycnOvB2oyVE7fSxPPSix/ljiDqmAdFzmzURgmUIjV7qr5xj
         Ph8I/iKByYfovTaaeYAmMfAKLPbWbwZpEvetBYl93PrYEFZzmM/+V2DGt1e/7afUu5Ls
         KuAALtfeJcBOEMvMnjE281jd5A1m0Pvt666OFYoINCq85HO6mwI3RR1wPwh0SkJR0xc/
         0upG/7D4nf+1nmqR5yQcFIgvr7N0kbnGSKVK7iCjWShrwJWYiibwsF91Q8kk1IlGX3ep
         DL6w==
X-Gm-Message-State: AOJu0YwqE15ETlm3muXyJZ3ErpsrZtJX1WVdC4BXLsn5xYOXHiiVHEhP
	tL0zuSFPGMJy7HQOFqnANSg=
X-Google-Smtp-Source: AGHT+IFZr/CD2jqMlBHntS0c0VCd2zFSdpYY2G1+tyQhOWX/CMuAutH1PmX2kzhNRc3j8OWfyRuPEA==
X-Received: by 2002:ac2:4c11:0:b0:50e:6ec3:3de9 with SMTP id t17-20020ac24c11000000b0050e6ec33de9mr43209lfq.54.1703250166380;
        Fri, 22 Dec 2023 05:02:46 -0800 (PST)
Message-ID: <09579f818b778d3f7db3f2dd33e39b9d712e86c3.camel@gmail.com>
Subject: Re: [PATCH v6 4/9] xen/asm-generic: introduce stub header monitor.h
From: Oleksii <oleksii.kurochko@gmail.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org,  Jan Beulich <jbeulich@suse.com>, Shawn
 Anastasio <sanastasio@raptorengineering.com>
Cc: 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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>, Jan Beulich
 <jbeulich@suse.com>
Date: Fri, 22 Dec 2023 15:02:44 +0200
In-Reply-To: <a4dccfb1-6bbf-418d-b8c5-1e99c75d1b64@citrix.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
	 <49c8e0f5997063ed65c3b135c0003ca9570c0bc6.1703072575.git.oleksii.kurochko@gmail.com>
	 <a4dccfb1-6bbf-418d-b8c5-1e99c75d1b64@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Wed, 2023-12-20 at 16:33 +0000, Andrew Cooper wrote:
> On 20/12/2023 2:08 pm, Oleksii Kurochko wrote:
> > diff --git a/xen/include/asm-generic/monitor.h b/xen/include/asm-
> > generic/monitor.h
> > new file mode 100644
> > index 0000000000..74e4870cd7
> > --- /dev/null
> > +++ b/xen/include/asm-generic/monitor.h
> > @@ -0,0 +1,57 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * include/asm-generic/monitor.h
> > + *
> > + * Arch-specific monitor_op domctl handler.
> > + *
> > + * Copyright (c) 2015 Tamas K Lengyel (tamas@tklengyel.com)
> > + * Copyright (c) 2016, Bitdefender S.R.L.
> > + *
> > + */
> > +
> > +#ifndef __ASM_GENERIC_MONITOR_H__
> > +#define __ASM_GENERIC_MONITOR_H__
> > +
> > +#include <xen/errno.h>
> > +
> > +struct domain;
> > +struct xen_domctl_monitor_op;
> > +
> > +static inline
> > +void arch_monitor_allow_userspace(struct domain *d, bool
> > allow_userspace)
> > +{
> > +}
> > +
> > +static inline
> > +int arch_monitor_domctl_op(struct domain *d, struct
> > xen_domctl_monitor_op *mop)
> > +{
> > +=C2=A0=C2=A0=C2=A0 /* No arch-specific monitor ops on GENERIC. */
> > +=C2=A0=C2=A0=C2=A0 return -EOPNOTSUPP;
> > +}
> > +
> > +int arch_monitor_domctl_event(struct domain *d,
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 xen_domctl_monitor_op *mop);
>=20
> Turn this into a static inline like the others, and you can delete:
>=20
> arch/ppc/stubs.c:100
>=20
> int arch_monitor_domctl_event(struct domain *d,
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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 xen_domctl_monitor_op *mop)
> {
> =C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> }
>=20
> because new architectures shouldn't have to stub one random piece of
> a
> subsystem when using the generic "nothing special" header.
>=20
> Given the filtering for arch_monitor_domctl_op(), this one probably
> wants to be ASSERT_UNREACHABLE(); return 0.
What you wrote makes sense. However, doing it that way may limit the
reuse of other parts of the asm-generic header. It would require
introducing an architecture-specific monitor.h header, which would be
nearly identical.

For instance, at present, the only difference between Arm, PPC, and
RISC-V is arch_monitor_domctl_event(). If this function is implemented
with BUG_ON("unimplemented"), reusing the asm-generic monitor.h header
for Arm (as it is partly done now) becomes challenging.

To address this, I propose wrapping arch_monitor_domctl_event() in
#ifdef:

#ifndef HAS_ARCH_MONITOR_DOMCTL_EVENT
int arch_monitor_domctl_event(struct domain *d,
                              struct xen_domctl_monitor_op *mop)
{
    BUG_ON("unimplemented");
}
#endif

In the architecture-specific monitor.h, you would define
HAS_ARCH_MONITOR_DOMCTL_EVENT and provide the architecture-specific
implementation of the function. For example, in the case of Arm:

#ifndef __ASM_ARM_MONITOR_H__
#define __ASM_ARM_MONITOR_H__

#include <xen/sched.h>
#include <public/domctl.h>

#define HAS_ARCH_MONITOR_DOMCTL_EVENT

#include <asm-generic/monitor.h>

static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
{
    uint32_t capabilities =3D 0;

    capabilities =3D (1U << XEN_DOMCTL_MONITOR_EVENT_GUEST_REQUEST |
                    1U << XEN_DOMCTL_MONITOR_EVENT_PRIVILEGED_CALL);

    return capabilities;
}

int monitor_smc(void);

#endif /* __ASM_ARM_MONITOR_H__ */

This approach maintains a clean and modular structure, allowing for
architecture-specific variations while reusing the majority of the code
from the generic header.

Does it make sense?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 13:08:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 13:08:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659341.1028889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfFp-0006UK-QM; Fri, 22 Dec 2023 13:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659341.1028889; Fri, 22 Dec 2023 13:07:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfFp-0006UD-Nr; Fri, 22 Dec 2023 13:07:53 +0000
Received: by outflank-mailman (input) for mailman id 659341;
 Fri, 22 Dec 2023 13:07:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGfFo-0006U7-8N
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 13:07:52 +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 1c9798aa-a0cb-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 14:07:51 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2ccad57dadbso4753851fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 05:07:51 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 v13-20020a19740d000000b0050e55c0f5f0sm536181lfe.48.2023.12.22.05.07.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 05:07:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c9798aa-a0cb-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703250471; x=1703855271; 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=+FEsUrgrsNnK98XB/nV/MmzFA9KjrXeRW4OTAQqLKyc=;
        b=jpspqBcalBrb0VJ7xFjoBW/luGaWdlCw/m3lw0kax4svjJnzmX1Z8bsM7hiPtUl9SG
         +ImaP9+MkLrEn4LaiUdJmCs367yFJdnEsR7GVidnJ9UF4xcJfOHArt/TtRWHv58l/KPw
         S6mTYMFK5Rcdi38Tl2dgstiFVlSc37w7TiU+RgaeGol8ZR0ETIEGrFezE1kcf83KGd/J
         ZBTpHC5VQ6CPatbHvfTA+Wq1Ol0hLuPwshcmMT3y2S7f5VGA++hDtHqpScWu/LG2+4RU
         dGAsSWq2G+wCm9Zkok+C/DyBNdOHsAq7lLFp4ZNz2x2ExXWHTPlpNaa7tRzso570SWc4
         j1Lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703250471; x=1703855271;
        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=+FEsUrgrsNnK98XB/nV/MmzFA9KjrXeRW4OTAQqLKyc=;
        b=wrQBlI/RprZavj90jQS+3B3q7Dra0grz/ZOgiwDBwA1tyayrNEGCY5HLb58dHIEnto
         lASV/vzjCX9nLKUhFHlKzIqLCrK32DRyn6bmyJYc70Lu6GCFvPNFWAXQEOCCQrIT869Z
         4Gc1A4iriBG37qLZIywLzkfTyHiTdg3pLsLZkhPOajiE8ZiHaTAs44DRfgqdg3OrEElv
         80lpzRkdLuMLbBaTYNZdssK4jj4JpitzVjUCEZ+1jBN319g+lp4Gql78YxxL8VVej6xa
         Gv2fsc7kaF3SMp6l85AXXBCwrMiNiATopGuy0Feva7MqkDJ75BjfBPRx8sxYQ+TjcGQ/
         NSgg==
X-Gm-Message-State: AOJu0YxfYb8D/cI0bKmWOk03BLrvNEox28S9XlPbdQlRjh5P2Hq4FmaL
	d1rOteL7cTBy9bJLPC0A2wc=
X-Google-Smtp-Source: AGHT+IEgLwIrnr4hfqMeV1A4S8Z//SgWB3q4lbHZvd1Wc7brghZSXlZS0dm25Fvp8EvskUX2GgONXw==
X-Received: by 2002:a05:6512:36ce:b0:50e:6984:6237 with SMTP id e14-20020a05651236ce00b0050e69846237mr498369lfs.26.1703250470664;
        Fri, 22 Dec 2023 05:07:50 -0800 (PST)
Message-ID: <9f8c4fe0a87742444b52a42aa5924cf046ee18b0.camel@gmail.com>
Subject: Re: [PATCH v6 5/9] xen/asm-generic: introduce stub header numa.h
From: Oleksii <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, 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>, Andrew Cooper
 <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Wei
 Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
Date: Fri, 22 Dec 2023 15:07:49 +0200
In-Reply-To: <03cf5145-2124-4150-9f20-904f08bcabda@suse.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
	 <08bca9a4158a190a0a953e5bc071a512cfe5f0f8.1703072575.git.oleksii.kurochko@gmail.com>
	 <341249d1-217f-4ad2-9455-b1aded4b9b56@xen.org>
	 <03cf5145-2124-4150-9f20-904f08bcabda@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Fri, 2023-12-22 at 09:22 +0100, Jan Beulich wrote:
> On 21.12.2023 20:09, Julien Grall wrote:
> > On 20/12/2023 14:08, Oleksii Kurochko wrote:
> > > <asm/numa.h> is common through some archs so it is moved
> > > to asm-generic.
> > >=20
> > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> > > Acked-by: Jan Beulich <jbeulich@suse.com>
> > > Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> >=20
> > I think this patch will need to be rebased on top of the lastest
> > staging=20
> > as this should clash with 51ffb3311895.
>=20
> No, and I'd like to withdraw my ack here. In this case a stub header
> isn't
> the right choice imo - the !NUMA case should be handled in common
> code. I
> would have submitted the patch I have, if only the first_valid_mfn
> patch
> hadn't been committed already (which I now need to re-base over).
I haven't seen your patch yet (waiting for it), but I assume that
<asm/numa.h> will still be necessary and remain the same across Arm,
PPC, and RISC-V.

What am I missing?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 13:08:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 13:08:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659344.1028900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfGR-0006uk-2h; Fri, 22 Dec 2023 13:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659344.1028900; Fri, 22 Dec 2023 13:08:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfGQ-0006ud-Vf; Fri, 22 Dec 2023 13:08:30 +0000
Received: by outflank-mailman (input) for mailman id 659344;
 Fri, 22 Dec 2023 13:08: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGfGP-0006tG-DF
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 13:08:29 +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 32aec430-a0cb-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 14:08:28 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2cca502e642so14700691fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 05:08:28 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 d18-20020a2eb052000000b002cc6c35aa5bsm591095ljl.128.2023.12.22.05.08.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 05:08:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32aec430-a0cb-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703250508; x=1703855308; 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=BpfZoUJsLcdNVgi5hoqXo8LU3P8PtMz6VDcGAieGAIk=;
        b=XNB5dqIsXgb3OyOYQ9tps22K20RH9qVwTXnSjLE8UGMgpXr/FNerzpgZtpmkPF9LtX
         VY8qz1zBiNB0ow07mF0niDcZdRuE1c3ysYFWNzcHtQf4Ri2USPsBPHCh22KS4eaFaV4M
         rXkicessaNw6tEhPIMnsw0MwRTKZwmLBG/2Zui7L+qBXqtcMaHTj/M6QiJZ9GC7+6Avn
         26Z018mi4AMYo2ckOuucSKDlAXuIdNSC8TrbzU2V2B3FgkBMf0d4IFWkTd2d70xOUOE3
         X+PszIDX2QQ3fMvVpJh/nSG2BF/uQlq5jW6ZD15a1KEonTa74IqUQq91b6ESJ4+gZ/Qi
         nwvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703250508; x=1703855308;
        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=BpfZoUJsLcdNVgi5hoqXo8LU3P8PtMz6VDcGAieGAIk=;
        b=d2XuxBRRJaBg8i39JqWfICOkLG6vDHNDEPTTB9KIfJnibHFkhDpp6B2PbhGdKp9S8z
         k4hjKQ/Ro4GGJg8RJhuNJwnyniV9YTA1h28ZSypJXGvHGWJHbzuIv6daEVTqpmjWRHB2
         4Vbph3fPPjUgxzWzxUuZvRsrVgNllVNtjaqtPHF3Qhk7apgE1Fj5zT12xulY7pG0Sby3
         JBG8ZYXnSzPobAdGxJnUQnpGXsZkV2W5cyLa4md75j/iFOWA7a2fgsvvGzjqFkoo8izC
         vUpQfq/TlRIcSV4MeTpvRHnykAQP/3KsAVVbTvfIK3FbdtHJ0P7o77/BT2ZdwgU/arD4
         iUaA==
X-Gm-Message-State: AOJu0YwAhz5eMAjfgZztPDVNDcnuT5NtsBVXdu5QwWu5/0DKvbHEObwj
	NDUWr+5kV6at3H/7RnxDPDg=
X-Google-Smtp-Source: AGHT+IGyUkF4yfpfvl4cURCvPQrkBhQQbCApQMsqPT+bTF/6NuO57Zcu8pwooOuIg0q3EU00J3pLgg==
X-Received: by 2002:a2e:7303:0:b0:2cc:9e0e:5a22 with SMTP id o3-20020a2e7303000000b002cc9e0e5a22mr320875ljc.70.1703250507996;
        Fri, 22 Dec 2023 05:08:27 -0800 (PST)
Message-ID: <ec31b9d929e98cf236d6af91e6633ba8228a61a9.camel@gmail.com>
Subject: Re: [PATCH v6 7/9] xen: ifdef inclusion of <asm/grant_table.h> in
 <xen/grant_table.h>
From: Oleksii <oleksii.kurochko@gmail.com>
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>, Andrew Cooper
 <andrew.cooper3@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Jan
 Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,  Shawn Anastasio
 <sanastasio@raptorengineering.com>
Date: Fri, 22 Dec 2023 15:08:26 +0200
In-Reply-To: <3c5cb645-66c3-4abe-985f-19b787887ff3@xen.org>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
	 <e49bae656ed6c0fe689703f78df4e815b955f5b2.1703072575.git.oleksii.kurochko@gmail.com>
	 <cc26db95-c141-4392-a948-52ea3cb917c8@xen.org>
	 <3c5cb645-66c3-4abe-985f-19b787887ff3@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

Hi Julien,

On Thu, 2023-12-21 at 19:20 +0000, Julien Grall wrote:
>=20
>=20
> On 21/12/2023 19:19, Julien Grall wrote:
> > Hi Oleksii,
> >=20
> > On 20/12/2023 14:08, Oleksii Kurochko wrote:
> > > Ifdef-ing inclusion of <asm/grant_table.h> allows to avoid
> > > generation of empty <asm/grant_table.h> for cases when
> > > CONFIG_GRANT_TABLE is not enabled.
> >=20
> > It would have been nice to explain the reason of this change. Is
> > this a=20
> > compilation error or just a nice thing to have?
> >=20
> > The reason I am asking is...
> >=20
> > >=20
> > > The following changes were done for Arm:
> > > <asm/grant_table.h> should be included directly because it
> > > contains
> > > gnttab_dom0_frames() macros which is unique for Arm and is used
> > > in
> > > arch/arm/domain_build.c.
> > > <asm/grant_table.h> is #ifdef-ed with CONFIG_GRANT_TABLE in
> > > <xen/grant_table.h> so in case of !CONFIG_GRANT_TABLE
> > > gnttab_dom0_frames
> > > won't be available for use in arch/arm/domain_build.c.
> >=20
> > ... I find rather ugly that we require domain_build.c to include
> > both=20
> > asm/grant_table.h and xen/grant_table.h.
> >=20
> > Right now, I don't have a better approach, so I would be ok so long
> > the=20
> > rationale of the change is explained in the commit message.
>=20
> Urgh, I just realized that this is explained in the commit message.=20
> Please ignore my comment about expanding the commit message. Sorry
> for=20
> the noise.
It's OK.
Thanks for review!

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 13:14:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 13:14:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659351.1028909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfMb-0000UG-Nx; Fri, 22 Dec 2023 13:14:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659351.1028909; Fri, 22 Dec 2023 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 1rGfMb-0000U9-Ks; Fri, 22 Dec 2023 13:14:53 +0000
Received: by outflank-mailman (input) for mailman id 659351;
 Fri, 22 Dec 2023 13:14: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=r2k+=IB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGfMa-0000U3-9V
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 13:14:52 +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 167e044d-a0cc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 14:14:50 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-336746c7b6dso1451841f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 05:14:50 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ay14-20020a05600c1e0e00b0040c6ab53cd2sm7076648wmb.10.2023.12.22.05.14.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Dec 2023 05:14:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 167e044d-a0cc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703250890; x=1703855690; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zTFroWiaMIko+RaoQqL2e1wH8B1Jg1tSJG3ohi1aRDM=;
        b=GiLoByh8mipaMJjETys58192UNsVfB3sjQ7DkxL5eJi6/RA0HwFiX5PJwactFgxjTI
         q7hUWcWoo7pEAt1Kf/G1kbWimrS6P7WpoibrlrkBA17YibJGDZHx+kt4j39JH89TKkaW
         uCxnSRaMO1qkgznt2y5AqoGHw9v9l8W0y8WyDaGMEh/IDQkBK7Sq++sAY7SEH9PuuD7p
         563xWw0oMUoGAU1xdBllMgynWIZspO0+M/lmLdfHd15+KRinMrOLqpkTtnzhMeJxixzw
         btQutOaWrISxivKM5g4/emg8Ji/9Pk9zWmRT5FnXoew+Ck7xtvtGFadY11isYgXyx2xc
         FAzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703250890; x=1703855690;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=zTFroWiaMIko+RaoQqL2e1wH8B1Jg1tSJG3ohi1aRDM=;
        b=MNVwvsnbBkYbEHItPTV/XcToDQtlClpliQL2EHhibz0W0KoI7ZYdSXkfYV5ooJ5yfp
         T5fg72Puf/CYxnKzxl3Vj/YVRP7jgH8Ig0ABuvppDsg+g8oP5tE4/4dI/8MVxQTmhNAv
         1G7DlYSalzzkOjN9PBav6nZRA312bdMeIZIJqNIYktkbjtjmkywoQ3lF9jtFlr6c2+OL
         IlS1itGil3c7DkiH/gIcH8+DoP8Zhu4wOG/ZHSoNJJ3OTZu3Z6MiPMAXQfWPO8wBQxqH
         8DiJciZnLZa2NUPMioH7j42R/76ZblP6Ce4UAOMy4jqzKxwgl4zSoDvnMv3mINN3xvGX
         GncQ==
X-Gm-Message-State: AOJu0YyLGD+SCYsw9KzFww3Zx66nbPf0TDILl7Ay8p99xcRFUh+BLI+k
	0KFh0OTazjEk5MkPbWE7t8xgz0xhTU6x
X-Google-Smtp-Source: AGHT+IEqZIJZtUpwrZMg5Y0n6NcYRsP5SocsAR3JcTzB86L7jkA8IiiCcmc8oESrfRurGtcVfnEqBA==
X-Received: by 2002:a05:600c:1c9d:b0:40c:6920:4da8 with SMTP id k29-20020a05600c1c9d00b0040c69204da8mr669868wms.160.1703250890226;
        Fri, 22 Dec 2023 05:14:50 -0800 (PST)
Message-ID: <f78e0ef7-2c25-40bf-b34d-1c4b88839424@suse.com>
Date: Fri, 22 Dec 2023 14:14:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/9] xen/asm-generic: introduce stub header monitor.h
Content-Language: en-US
To: Oleksii <oleksii.kurochko@gmail.com>
Cc: 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>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <49c8e0f5997063ed65c3b135c0003ca9570c0bc6.1703072575.git.oleksii.kurochko@gmail.com>
 <a4dccfb1-6bbf-418d-b8c5-1e99c75d1b64@citrix.com>
 <09579f818b778d3f7db3f2dd33e39b9d712e86c3.camel@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: <09579f818b778d3f7db3f2dd33e39b9d712e86c3.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.12.2023 14:02, Oleksii wrote:
> On Wed, 2023-12-20 at 16:33 +0000, Andrew Cooper wrote:
>> On 20/12/2023 2:08 pm, Oleksii Kurochko wrote:
>>> diff --git a/xen/include/asm-generic/monitor.h b/xen/include/asm-
>>> generic/monitor.h
>>> new file mode 100644
>>> index 0000000000..74e4870cd7
>>> --- /dev/null
>>> +++ b/xen/include/asm-generic/monitor.h
>>> @@ -0,0 +1,57 @@
>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>> +/*
>>> + * include/asm-generic/monitor.h
>>> + *
>>> + * Arch-specific monitor_op domctl handler.
>>> + *
>>> + * Copyright (c) 2015 Tamas K Lengyel (tamas@tklengyel.com)
>>> + * Copyright (c) 2016, Bitdefender S.R.L.
>>> + *
>>> + */
>>> +
>>> +#ifndef __ASM_GENERIC_MONITOR_H__
>>> +#define __ASM_GENERIC_MONITOR_H__
>>> +
>>> +#include <xen/errno.h>
>>> +
>>> +struct domain;
>>> +struct xen_domctl_monitor_op;
>>> +
>>> +static inline
>>> +void arch_monitor_allow_userspace(struct domain *d, bool
>>> allow_userspace)
>>> +{
>>> +}
>>> +
>>> +static inline
>>> +int arch_monitor_domctl_op(struct domain *d, struct
>>> xen_domctl_monitor_op *mop)
>>> +{
>>> +Â Â Â  /* No arch-specific monitor ops on GENERIC. */
>>> +Â Â Â  return -EOPNOTSUPP;
>>> +}
>>> +
>>> +int arch_monitor_domctl_event(struct domain *d,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  struct xen_domctl_monitor_op *mop);
>>
>> Turn this into a static inline like the others, and you can delete:
>>
>> arch/ppc/stubs.c:100
>>
>> int arch_monitor_domctl_event(struct domain *d,
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  struct xen_domctl_monitor_op *mop)
>> {
>> Â Â Â  BUG_ON("unimplemented");
>> }
>>
>> because new architectures shouldn't have to stub one random piece of
>> a
>> subsystem when using the generic "nothing special" header.
>>
>> Given the filtering for arch_monitor_domctl_op(), this one probably
>> wants to be ASSERT_UNREACHABLE(); return 0.
> What you wrote makes sense. However, doing it that way may limit the
> reuse of other parts of the asm-generic header. It would require
> introducing an architecture-specific monitor.h header, which would be
> nearly identical.
> 
> For instance, at present, the only difference between Arm, PPC, and
> RISC-V is arch_monitor_domctl_event(). If this function is implemented
> with BUG_ON("unimplemented"), reusing the asm-generic monitor.h header
> for Arm (as it is partly done now) becomes challenging.
> 
> To address this, I propose wrapping arch_monitor_domctl_event() in
> #ifdef:
> 
> #ifndef HAS_ARCH_MONITOR_DOMCTL_EVENT
> int arch_monitor_domctl_event(struct domain *d,
>                               struct xen_domctl_monitor_op *mop)
> {
>     BUG_ON("unimplemented");
> }
> #endif
> 
> In the architecture-specific monitor.h, you would define
> HAS_ARCH_MONITOR_DOMCTL_EVENT and provide the architecture-specific
> implementation of the function. For example, in the case of Arm:
> 
> #ifndef __ASM_ARM_MONITOR_H__
> #define __ASM_ARM_MONITOR_H__
> 
> #include <xen/sched.h>
> #include <public/domctl.h>
> 
> #define HAS_ARCH_MONITOR_DOMCTL_EVENT
> 
> #include <asm-generic/monitor.h>
> 
> static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
> {
>     uint32_t capabilities = 0;
> 
>     capabilities = (1U << XEN_DOMCTL_MONITOR_EVENT_GUEST_REQUEST |
>                     1U << XEN_DOMCTL_MONITOR_EVENT_PRIVILEGED_CALL);
> 
>     return capabilities;
> }
> 
> int monitor_smc(void);
> 
> #endif /* __ASM_ARM_MONITOR_H__ */
> 
> This approach maintains a clean and modular structure, allowing for
> architecture-specific variations while reusing the majority of the code
> from the generic header.
> 
> Does it make sense?

With the state things are in right now in the tree, perhaps yes. But
as with NUMA and other subsystems: Generally the case of the subsystem
not used should be handled in common code. What's in asm-generic/ is
supposed to be a default implementation when the subsystem _is_ used.
Unlike NUMA, there's no Kconfig control for MONITOR (or VM_EVENT).
Hence why getting this sorted is somewhat more involved here; (ab)using
the asm-generic/ header for the time being is an option, but would then
need properly justifying (imo).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 13:16:27 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 13:16:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659358.1028919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfO6-000170-6c; Fri, 22 Dec 2023 13:16:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659358.1028919; Fri, 22 Dec 2023 13:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfO6-00016t-3g; Fri, 22 Dec 2023 13:16:26 +0000
Received: by outflank-mailman (input) for mailman id 659358;
 Fri, 22 Dec 2023 13:16: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGfO4-00013U-OC
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 13:16:24 +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 4e2a06a4-a0cc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 14:16:24 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-50e6e7afc6aso99393e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 05:16:24 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 s21-20020a195e15000000b0050e64a74eedsm298811lfb.188.2023.12.22.05.16.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 05:16:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e2a06a4-a0cc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703250983; x=1703855783; 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=2xPMxqDxW4DCuDTcCdINlYJF/6BDd09grMKA+fFOvno=;
        b=LDpqB4ebzqoGy4UHDn+9ZhTvYO3sdOI/TiOTDPnNbAbVITtz2bOr6eFWmUhN1OxYqL
         mPpeTCU7W1fjGFkWTSgb/cEeMswpHlv85fBhYsv9KrGzDgZOM/uHwL1BlLldRbrykarC
         QH3knhh44ZJl1XRHC1/hKQzRswnU4xzM6K/QO6NOqy01+jNXqtEtMeTKTpzamAqTG5vV
         7Wg8zoHS4HPNuX4SWg8TFQbG4241kML7oe9iuH1ECbUgvmprznhKYO24KeuIWA4p4pyi
         whOloJ80hSsIZDehUGNDPR+fHxMAKh+Ewsx37LyRqF2c6tYABJ//3HnoBRCSX7zUlnZ4
         wXxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703250983; x=1703855783;
        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=2xPMxqDxW4DCuDTcCdINlYJF/6BDd09grMKA+fFOvno=;
        b=WkqwJcjf5zVXbxTos57i2aS0hJbNsyAmG7wam1T4GbkTG01i+8+90/toLhU7LVvpPb
         ZWbtxnCXYUTtAMm6MKFIP+Z/CT+fxvHwrXo+QJEIU2rSaW9d0zc+pMJlhaV30BgHdGKY
         crEaaCkP+rM1MHtSS9VLgMq1TOMHwYYLO6y+ce9Xpo6Qm59YeDdXOFgEnnaqMJiMVBIb
         LUzekFBcxz2MsAfSv/iiqxYGvGmGvXIwD0x1k+2NerhGmMSQJdp0WCYOGqntpM1HAcKM
         6J2ML7Y3z8XdxK1x6xucBT+cCIzsXZdgB7hhRiryyrmszk8UDUjCT7IEXLKt5gEvmG5l
         rohg==
X-Gm-Message-State: AOJu0YxVrrU3lMI8bpFg45+dNsZkcr9V1+r75Q5HHC3MPaDfTDC2bRH+
	UfGkb2eie0jMOS1GEtz0t+g=
X-Google-Smtp-Source: AGHT+IEvngimTMRt4HZOwVtZgpZLpTMlRZabbV/9QTJzgFJ+NI7qtRWK7ae07OR0dhvyxilAF9986w==
X-Received: by 2002:a05:6512:46d:b0:50d:f857:2e9d with SMTP id x13-20020a056512046d00b0050df8572e9dmr662618lfd.57.1703250983168;
        Fri, 22 Dec 2023 05:16:23 -0800 (PST)
Message-ID: <4ce1258b22962f959abf2437d6427ec34d420023.camel@gmail.com>
Subject: Re: [PATCH v6 9/9] xen/asm-generic: introduce generic device.h
From: Oleksii <oleksii.kurochko@gmail.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org, 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>, George Dunlap <george.dunlap@citrix.com>, Jan
 Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,  Shawn Anastasio
 <sanastasio@raptorengineering.com>
Date: Fri, 22 Dec 2023 15:16:22 +0200
In-Reply-To: <f41894c6-b061-4aef-9d4a-18effd917043@xen.org>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
	 <55d6810e2f8b0f54261c504354bf879c5b887c40.1703072575.git.oleksii.kurochko@gmail.com>
	 <f41894c6-b061-4aef-9d4a-18effd917043@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

Hi Julien,

On Thu, 2023-12-21 at 19:38 +0000, Julien Grall wrote:
> Hi,
>=20
> On 20/12/2023 14:08, Oleksii Kurochko wrote:
> > Arm, PPC and RISC-V use the same device.h thereby device.h
> > was moved to asm-generic. Arm's device.h was taken as a base with
> > the following changes:
> > =C2=A0 - #ifdef PCI related things.
> > =C2=A0 - #ifdef ACPI related things.
> > =C2=A0 - Rename #ifdef guards.
> > =C2=A0 - Add SPDX tag.
> > =C2=A0 - #ifdef CONFIG_HAS_DEVICE_TREE related things.
> > =C2=A0 - #ifdef-ing iommu related things with CONFIG_HAS_PASSTHROUGH.
> >=20
> > Also Arm and PPC are switched to asm-generic version of device.h
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> >=20
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Jan wrote the following:
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Overall I think there are to=
o many changes done all in one
> > go here.
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 But it's mostly Arm which is=
 affected, so I'll leave
> > judging about that
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 to the Arm maintainers.
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Arm maintainers, will it be fine for you=
 to not split the
> > patch?
>=20
> So in general I agree with Jan, patches should be kept small so they
> are=20
> easy to review.
>=20
> Given the discussion has been on-going for a while (we are at v6),=C2=A0 =
I
> will give an attempt to review the patch as-is. But in the future,=20
> please try to split. The smaller it is, the easier to review. For
> code=20
> movement and refactoring, I tend to first have a few refactoring
> patches=20
> and then move the code in a separate patch. So it is easier to spot
> the=20
> differences.
Thanks, I'll separate the patch.
>=20
> > ---
> > Changes in V6:
> > =C2=A0 - Rebase only.
> > ---
> > Changes in V5:
> > =C2=A0=C2=A0 - Removed generated file: xen/include/headers++.chk.new
> > =C2=A0=C2=A0 - Removed pointless #ifdef CONFIG_HAS_DEVICE_TREE ... #end=
if for
> > PPC as
> > =C2=A0=C2=A0=C2=A0=C2=A0 CONFIG_HAS_DEVICE_TREE will be always used for=
 PPC.
> > ---
> > Changes in V4:
> > =C2=A0 - Updated the commit message
> > =C2=A0 - Switched Arm and PPC to asm-generic version of device.h
> > =C2=A0 - Replaced HAS_PCI with CONFIG_HAS_PCI
> > =C2=A0 - ifdef-ing iommu filed of dev_archdata struct with
> > CONFIG_HAS_PASSTHROUGH
> > =C2=A0 - ifdef-ing iommu_fwspec of device struct with
> > CONFIG_HAS_PASSTHROUGH
> > =C2=A0 - ifdef-ing DT related things with CONFIG_HAS_DEVICE_TREE
> > =C2=A0 - Updated the commit message ( remove a note with question about
> > =C2=A0=C2=A0=C2=A0 if device.h should be in asm-generic or not )
> > =C2=A0 - Replaced DEVICE_IC with DEVICE_INTERRUPT_CONTROLLER
> > =C2=A0 - Rationalized usage of CONFIG_HAS_* in device.h
> > =C2=A0 - Fixed indents for ACPI_DEVICE_START and ACPI_DEVICE_END
> > ---
> > Changes in V3:
> > =C2=A0 - ifdef device tree related things.
> > =C2=A0 - update the commit message
> > ---
> > Changes in V2:
> > 	- take ( as common ) device.h from Arm as PPC and RISC-V
> > use it as a base.
> > 	- #ifdef PCI related things.
> > 	- #ifdef ACPI related things.
> > 	- rename DEVICE_GIC to DEVIC_IC.
> > 	- rename #ifdef guards.
> > 	- switch Arm and PPC to generic device.h
> > 	- add SPDX tag
> > 	- update the commit message
> >=20
> > ---
> > =C2=A0 xen/arch/arm/device.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 15 ++-
> > =C2=A0 xen/arch/arm/domain_build.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=
=C2=A0=C2=A0 2 +-
> > =C2=A0 xen/arch/arm/gic-v2.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 4 +-
> > =C2=A0 xen/arch/arm/gic-v3.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 6 +-
> > =C2=A0 xen/arch/arm/gic.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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=A0 xen/arch/arm/include/asm/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 1 +
> > =C2=A0 xen/arch/ppc/include/asm/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 1 +
> > =C2=A0 xen/arch/ppc/include/asm/device.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 53 --------
> > =C2=A0 .../asm =3D> include/asm-generic}/device.h=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 | 125 +++++++++++--
> > -----
> > =C2=A0 9 files changed, 102 insertions(+), 109 deletions(-)
> > =C2=A0 delete mode 100644 xen/arch/ppc/include/asm/device.h
> > =C2=A0 rename xen/{arch/arm/include/asm =3D> include/asm-generic}/devic=
e.h
> > (79%)
> >=20
> > diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
> > index 1f631d3274..affbe79f9a 100644
> > --- a/xen/arch/arm/device.c
> > +++ b/xen/arch/arm/device.c
> > @@ -16,7 +16,10 @@
> > =C2=A0 #include <xen/lib.h>
> > =C2=A0=20
> > =C2=A0 extern const struct device_desc _sdevice[], _edevice[];
> > +
> > +#ifdef CONFIG_ACPI
> > =C2=A0 extern const struct acpi_device_desc _asdevice[], _aedevice[];
> > +#endif
> > =C2=A0=20
> > =C2=A0 int __init device_init(struct dt_device_node *dev, enum
> > device_class class,
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 const void *data)
> > @@ -45,6 +48,7 @@ int __init device_init(struct dt_device_node
> > *dev, enum device_class class,
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -EBADF;
> > =C2=A0 }
> > =C2=A0=20
> > +#ifdef CONFIG_ACPI
> > =C2=A0 int __init acpi_device_init(enum device_class class, const void
> > *data, int class_type)
> > =C2=A0 {
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 const struct acpi_device_desc *desc;
> > @@ -61,6 +65,7 @@ int __init acpi_device_init(enum device_class
> > class, const void *data, int class
> > =C2=A0=20
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -EBADF;
> > =C2=A0 }
> > +#endif
> > =C2=A0=20
> > =C2=A0 enum device_class device_get_class(const struct dt_device_node
> > *dev)
> > =C2=A0 {
> > @@ -329,9 +334,13 @@ int handle_device(struct domain *d, struct
> > dt_device_node *dev, p2m_type_t p2mt,
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct map_range_data mr_data =3D {
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .d =3D d,
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .p2mt =3D p2mt,
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .skip_mapping =3D !own_devi=
ce ||
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=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_p=
ci_passthrough_enabled() &&
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (devi=
ce_get_class(dev) =3D=3D
> > DEVICE_PCI_HOSTBRIDGE)),
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .skip_mapping =3D
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 !own_=
device
> > +#ifdef CONFIG_HAS_PCI
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || (i=
s_pci_passthrough_enabled() &&
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (devi=
ce_get_class(dev) =3D=3D
> > DEVICE_PCI_HOSTBRIDGE))
> > +#endif
>=20
> So the #ifdef is only here because DEVICE_PCI_HOSTBRIDGE is not
> defined.=20
> It is not clear what's the actual problem of keeping=20
> DEVICE_PCI_HOSTBRIDGE available for every build.
The only reason for that is that it seems to be used only in thecase when C=
ONFIG_HAS_PCI is enabled ( probably not all archs will
have PCI support ). Generally,
I think it's okay not to use #ifdef DEVICE_PCI_HOSTBRIDGE to keep
the Arm code cleaner.

Does it make sense?
>=20
> In fact, we have tried to get away from #ifdef in order to make
> ensure=20
> we can catch any build failure without a randconfig (see use of=20
> IS_ENABLED() which would not apply work here).
It would be nice to use IS_ENABLED but in this case still need to
something with definition of DEVICE_PCI_HOSTBRIDGE.

>=20
> [...]
>=20
> > diff --git a/xen/arch/ppc/include/asm/device.h
> > b/xen/arch/ppc/include/asm/device.h
> > deleted file mode 100644
> > index 8253e61d51..0000000000
> > --- a/xen/arch/ppc/include/asm/device.h
> > +++ /dev/null
> > @@ -1,53 +0,0 @@
> > -/* SPDX-License-Identifier: GPL-2.0-only */
> > -#ifndef __ASM_PPC_DEVICE_H__
> > -#define __ASM_PPC_DEVICE_H__
> > -
> > -enum device_type
> > -{
> > -=C2=A0=C2=A0=C2=A0 DEV_DT,
> > -=C2=A0=C2=A0=C2=A0 DEV_PCI,
> > -};
> > -
> > -struct device {
> > -=C2=A0=C2=A0=C2=A0 enum device_type type;
> > -#ifdef CONFIG_HAS_DEVICE_TREE
> > -=C2=A0=C2=A0=C2=A0 struct dt_device_node *of_node; /* Used by drivers =
imported
> > from Linux */
> > -#endif
> > -};
> > -
> > -enum device_class
> > -{
> > -=C2=A0=C2=A0=C2=A0 DEVICE_SERIAL,
> > -=C2=A0=C2=A0=C2=A0 DEVICE_IOMMU,
> > -=C2=A0=C2=A0=C2=A0 DEVICE_PCI_HOSTBRIDGE,
> > -=C2=A0=C2=A0=C2=A0 /* Use for error */
> > -=C2=A0=C2=A0=C2=A0 DEVICE_UNKNOWN,
> > -};
> > -
> > -struct device_desc {
> > -=C2=A0=C2=A0=C2=A0 /* Device name */
> > -=C2=A0=C2=A0=C2=A0 const char *name;
> > -=C2=A0=C2=A0=C2=A0 /* Device class */
> > -=C2=A0=C2=A0=C2=A0 enum device_class class;
> > -=C2=A0=C2=A0=C2=A0 /* List of devices supported by this driver */
> > -=C2=A0=C2=A0=C2=A0 const struct dt_device_match *dt_match;
> > -=C2=A0=C2=A0=C2=A0 /*
> > -=C2=A0=C2=A0=C2=A0=C2=A0 * Device initialization.
> > -=C2=A0=C2=A0=C2=A0=C2=A0 *
> > -=C2=A0=C2=A0=C2=A0=C2=A0 * -EAGAIN is used to indicate that device pro=
bing is
> > deferred.
> > -=C2=A0=C2=A0=C2=A0=C2=A0 */
> > -=C2=A0=C2=A0=C2=A0 int (*init)(struct dt_device_node *dev, const void =
*data);
> > -};
> > -
> > -typedef struct device device_t;
> > -
> > -#define DT_DEVICE_START(name_, namestr_,
> > class_)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > -static const struct device_desc __dev_desc_##name_
> > __used=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > -__section(".dev.info") =3D
> > {=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > -=C2=A0=C2=A0=C2=A0 .name =3D
> > namestr_,=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > -=C2=A0=C2=A0=C2=A0 .class =3D
> > class_,=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > -
> > -#define
> > DT_DEVICE_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> > -};
> > -
> > -#endif /* __ASM_PPC_DEVICE_H__ */
> > diff --git a/xen/arch/arm/include/asm/device.h b/xen/include/asm-
> > generic/device.h
> > similarity index 79%
> > rename from xen/arch/arm/include/asm/device.h
> > rename to xen/include/asm-generic/device.h
> > index b5d451e087..063c448c4e 100644
> > --- a/xen/arch/arm/include/asm/device.h
> > +++ b/xen/include/asm-generic/device.h
> > @@ -1,14 +1,37 @@
> > -#ifndef __ASM_ARM_DEVICE_H
> > -#define __ASM_ARM_DEVICE_H
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +#ifndef __ASM_GENERIC_DEVICE_H__
> > +#define __ASM_GENERIC_DEVICE_H__
> > +
> > +#include <xen/stdbool.h>
> > =C2=A0=20
> > =C2=A0 enum device_type
> > =C2=A0 {
> > +#ifdef CONFIG_HAS_DEVICE_TREE
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 DEV_DT,
> > +#endif
> > +
> > +#ifdef CONFIG_HAS_PCI
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 DEV_PCI,
> > +#endif
> > +=C2=A0=C2=A0=C2=A0 DEV_TYPE_MAX,
> Nobody is using it. AFAICT, this was introduced because enum may be=20
> empty if !HAS_DEVICE_TREE and !HAS_PCI. If so, can you add a comment=20
> explaining it on top?
Sure, thanks. I'll add the comment.

>=20
> The rest LGTM.
>=20
> Cheers,
>=20
~ Oleksii




From xen-devel-bounces@lists.xenproject.org Fri Dec 22 13:20:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 13:20:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659366.1028930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfSH-0002oN-Oy; Fri, 22 Dec 2023 13:20:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659366.1028930; Fri, 22 Dec 2023 13:20:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGfSH-0002oG-LY; Fri, 22 Dec 2023 13:20:45 +0000
Received: by outflank-mailman (input) for mailman id 659366;
 Fri, 22 Dec 2023 13:20: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=r2k+=IB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1rGfSG-0002oA-Kq
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 13:20:44 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e8a326e1-a0cc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 14:20:43 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-336897b6bd6so1549843f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 05:20:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 k16-20020a5d6e90000000b0033667867a66sm4270794wrz.101.2023.12.22.05.20.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Dec 2023 05:20:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8a326e1-a0cc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1703251243; x=1703856043; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=pi0fdrqwhgdXKn1d3N8NE3nCUCrARlI+3Bsj1guebrs=;
        b=Txmn02TIoh6JpkOqfOm68lLAQ29S7QlRT4ro2t29bK10vhky/ub1P3vfmWp41CoObB
         3/RhvxxH9hiA+5WmFh/2UfhVK9jDx3zVnqK11xARtp+wl3d1EihPcqaASiPcayco19tC
         M5GUVlpva3k+quclcYJHSwS+aTuUOCRDPN/M+T3SZev46zS/RzRsNRTnNMTEH0w70cuj
         qXNuIM5HF27w3k4s8RBmbi8hXT+o+O4A6eNmDji7MQHivQnMtnoFg/XHJfG/ppCnHV6b
         jOHLPaVMWs4HaxeuajcpVjdGlK4r7tDIvaATu4OgOarCZMLkehoKIlNg4ama7WVIVRQo
         XB+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703251243; x=1703856043;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=pi0fdrqwhgdXKn1d3N8NE3nCUCrARlI+3Bsj1guebrs=;
        b=I8M41gKsRQake3rJC6S+LQIOZwvV7VcdIWV2wv3jbaLA7Kcf3QUDVwZgBoG71uPOEV
         hRz8jsO1Bp/zz8ks09Gpk5wFnSdl1irtLNBMzI6+oinj0tcO1W7aIcVXt5Grh77V34V8
         XWpjlvKKFhfJmtAoMC3bFD8zk0nnrVKrc3dXQx34f5Jr0/pC2P9+UodfQ9y7cfDzPlM2
         in6o8NS9kRT7FpeHHEKB8Snua9S13/TFXhAq1KD09ffsfuvmiuVAw33eICexZZQiGfZc
         YztEAprr/jyF0mrgyKYAb+XjPhCp6TTxW4kliZG1Q+rfHbCXgyzsBFfBcgmVoxdjkoHL
         pudg==
X-Gm-Message-State: AOJu0YzzH+aHIoDuD6+zvCOtr3Ww63Nnmj5YNUB0ov+AqDXjtmhPnVBD
	s0el3RMEDU59SpKKEeJf9i91Oz1cqgXR
X-Google-Smtp-Source: AGHT+IFCbFK/Ow/+oTPLr79W1ll3YWn2lsVFqg3ViXle1geVrd0A57KxB5YUDgM55YhzpkRPpuBWxA==
X-Received: by 2002:a05:6000:108d:b0:336:873b:3605 with SMTP id y13-20020a056000108d00b00336873b3605mr678223wrw.60.1703251242654;
        Fri, 22 Dec 2023 05:20:42 -0800 (PST)
Message-ID: <67bf2be7-53f4-40d0-a856-8ae631a054b0@suse.com>
Date: Fri, 22 Dec 2023 14:20:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 5/9] xen/asm-generic: introduce stub header numa.h
Content-Language: en-US
To: Oleksii <oleksii.kurochko@gmail.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>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <08bca9a4158a190a0a953e5bc071a512cfe5f0f8.1703072575.git.oleksii.kurochko@gmail.com>
 <341249d1-217f-4ad2-9455-b1aded4b9b56@xen.org>
 <03cf5145-2124-4150-9f20-904f08bcabda@suse.com>
 <9f8c4fe0a87742444b52a42aa5924cf046ee18b0.camel@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: <9f8c4fe0a87742444b52a42aa5924cf046ee18b0.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.12.2023 14:07, Oleksii wrote:
> On Fri, 2023-12-22 at 09:22 +0100, Jan Beulich wrote:
>> On 21.12.2023 20:09, Julien Grall wrote:
>>> On 20/12/2023 14:08, Oleksii Kurochko wrote:
>>>> <asm/numa.h> is common through some archs so it is moved
>>>> to asm-generic.
>>>>
>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>> Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>
>>> I think this patch will need to be rebased on top of the lastest
>>> staging 
>>> as this should clash with 51ffb3311895.
>>
>> No, and I'd like to withdraw my ack here. In this case a stub header
>> isn't
>> the right choice imo - the !NUMA case should be handled in common
>> code. I
>> would have submitted the patch I have, if only the first_valid_mfn
>> patch
>> hadn't been committed already (which I now need to re-base over).
> I haven't seen your patch yet (waiting for it), but I assume that
> <asm/numa.h> will still be necessary and remain the same across Arm,
> PPC, and RISC-V.
> 
> What am I missing?

asm/numa.h will be necessary for an arch only if it actually has a way
to have CONFIG_NUMA enabled. Below, for your reference, the patch in
the not-yet-rebased form. As you can see, Arm's (and PPC's) header goes
away. If and when they choose to support NUMA, they may need to regain
one; whether at that point we can sort how an asm-generic/ form of the
header might sensibly look like remains to be seen.

Jan

NUMA: no need for asm/numa.h when !NUMA

There's no point in every architecture carrying the same stubs for the
case when NUMA isn't enabled (or even supported). Move all of that to
xen/numa.h; replace explicit uses of asm/numa.h in common code. Make
inclusion of asm/numa.h dependent upon NUMA=y.

Address the TODO regarding first_valid_mfn by making the variable static
when NUMA=y, thus also addressing a Misrs C:2012 rule 8.4 concern. Drop
the not really applicable "implement NUMA support" comment - in a !NUMA
section this simply makes no sense.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This is an alternative proposal to
https://lists.xen.org/archives/html/xen-devel/2023-12/msg01586.html
and its earlier forms.

--- unstable.orig/xen/arch/arm/include/asm/numa.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __ARCH_ARM_NUMA_H
-#define __ARCH_ARM_NUMA_H
-
-#include <xen/mm.h>
-
-typedef u8 nodeid_t;
-
-#ifndef CONFIG_NUMA
-
-/* Fake one node for now. See also node_online_map. */
-#define cpu_to_node(cpu) 0
-#define node_to_cpumask(node)   (cpu_online_map)
-
-/*
- * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
- * is required because the dummy helpers are using it.
- */
-extern mfn_t first_valid_mfn;
-
-/* XXX: implement NUMA support */
-#define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
-#define node_start_pfn(nid) (mfn_x(first_valid_mfn))
-#define __node_distance(a, b) (20)
-
-#endif
-
-#define arch_want_default_dmazone() (false)
-
-#endif /* __ARCH_ARM_NUMA_H */
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
--- unstable.orig/xen/arch/arm/smpboot.c
+++ unstable/xen/arch/arm/smpboot.c
@@ -42,7 +42,7 @@ integer_param("maxcpus", max_cpus);
 /* CPU logical map: map xen cpuid to an MPIDR */
 register_t __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = MPIDR_INVALID };
 
-/* Fake one node for now. See also asm/numa.h */
+/* Fake one node for now. See also xen/numa.h */
 nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
 
 /* Xen stack for bringing up the first CPU. */
--- unstable.orig/xen/arch/ppc/include/asm/numa.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ASM_PPC_NUMA_H__
-#define __ASM_PPC_NUMA_H__
-
-#include <xen/types.h>
-#include <xen/mm.h>
-
-typedef uint8_t nodeid_t;
-
-/* Fake one node for now. See also node_online_map. */
-#define cpu_to_node(cpu) 0
-#define node_to_cpumask(node)   (cpu_online_map)
-
-/*
- * TODO: make first_valid_mfn static when NUMA is supported on PPC, this
- * is required because the dummy helpers are using it.
- */
-extern mfn_t first_valid_mfn;
-
-/* XXX: implement NUMA support */
-#define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
-#define node_start_pfn(nid) (mfn_x(first_valid_mfn))
-#define __node_distance(a, b) (20)
-
-#define arch_want_default_dmazone() (false)
-
-#endif /* __ASM_PPC_NUMA_H__ */
--- unstable.orig/xen/common/page_alloc.c
+++ unstable/xen/common/page_alloc.c
@@ -140,7 +140,6 @@
 #include <xen/vm_event.h>
 
 #include <asm/flushtlb.h>
-#include <asm/numa.h>
 #include <asm/page.h>
 
 #include <public/sysctl.h>
@@ -256,10 +255,14 @@ static PAGE_LIST_HEAD(page_broken_list);
  * BOOT-TIME ALLOCATOR
  */
 
+#ifndef CONFIG_NUMA
 /*
  * first_valid_mfn is exported because it is use in ARM specific NUMA
  * helpers. See comment in arch/arm/include/asm/numa.h.
  */
+#else
+static
+#endif
 mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;
 
 struct bootmem_region {
--- unstable.orig/xen/common/sysctl.c
+++ unstable/xen/common/sysctl.c
@@ -22,8 +22,8 @@
 #include <asm/current.h>
 #include <xen/hypercall.h>
 #include <public/sysctl.h>
-#include <asm/numa.h>
 #include <xen/nodemask.h>
+#include <xen/numa.h>
 #include <xsm/xsm.h>
 #include <xen/pmstat.h>
 #include <xen/livepatch.h>
--- unstable.orig/xen/include/xen/domain.h
+++ unstable/xen/include/xen/domain.h
@@ -2,6 +2,7 @@
 #ifndef __XEN_DOMAIN_H__
 #define __XEN_DOMAIN_H__
 
+#include <xen/numa.h>
 #include <xen/types.h>
 
 #include <public/xen.h>
@@ -12,7 +13,6 @@ struct guest_area {
 };
 
 #include <asm/domain.h>
-#include <asm/numa.h>
 
 typedef union {
     struct vcpu_guest_context *nat;
--- unstable.orig/xen/include/xen/numa.h
+++ unstable/xen/include/xen/numa.h
@@ -2,7 +2,13 @@
 #define _XEN_NUMA_H
 
 #include <xen/mm-frame.h>
+
+#ifdef CONFIG_NUMA
+#include <xen/pdx.h>
 #include <asm/numa.h>
+#else
+typedef uint8_t nodeid_t;
+#endif
 
 #define NUMA_NO_NODE     0xFF
 #define NUMA_NO_DISTANCE 0xFF
@@ -108,6 +114,18 @@ extern void numa_set_processor_nodes_par
 
 #else
 
+/* Fake one node for now. See also node_online_map. */
+#define cpu_to_node(cpu) 0
+#define node_to_cpumask(node)   cpu_online_map
+
+#define arch_want_default_dmazone() false
+
+extern mfn_t first_valid_mfn;
+
+#define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
+#define node_start_pfn(nid) mfn_x(first_valid_mfn)
+#define __node_distance(a, b) 20
+
 static inline nodeid_t mfn_to_nid(mfn_t mfn)
 {
     return 0;
--- unstable.orig/xen/include/xen/pci.h
+++ unstable/xen/include/xen/pci.h
@@ -11,10 +11,10 @@
 #include <xen/list.h>
 #include <xen/spinlock.h>
 #include <xen/irq.h>
+#include <xen/numa.h>
 #include <xen/pci_regs.h>
 #include <xen/pfn.h>
 #include <asm/device.h>
-#include <asm/numa.h>
 
 /*
  * The PCI interface treats multi-function devices as independent



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 13:59:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 13:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659375.1028940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGg2w-0008Vu-RS; Fri, 22 Dec 2023 13:58:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659375.1028940; Fri, 22 Dec 2023 13:58:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGg2w-0008Vn-N9; Fri, 22 Dec 2023 13:58:38 +0000
Received: by outflank-mailman (input) for mailman id 659375;
 Fri, 22 Dec 2023 13:58: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 1rGg2u-0008VX-MS
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 13:58: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 1rGg2k-0003xD-83; Fri, 22 Dec 2023 13:58:26 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rGg2j-0007IB-Uw; Fri, 22 Dec 2023 13:58:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=uu/PneWPF4b853RQlpa/h/+2tv5si1HIQyncUW2/nu4=; b=2b0LAZfs643Wra7iT/XGlCA6JL
	/L3hbHewvxDqzJhG2x9tM9LK1pWSVBTat/Eibk4wkMf/dpbXUjx3t527iLJhNhr21j3fSotUUQKw0
	KO+FBWsrXItIUOOTE6Vq6oX6KcMazKBV34wYmHYVdcBVjuiWXdBgXXL0YIpQbdYDeA4s=;
Message-ID: <955e9b02-20bd-4279-9f60-bb757cdf1a03@xen.org>
Date: Fri, 22 Dec 2023 13:58:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 5/9] xen/asm-generic: introduce stub header numa.h
To: Jan Beulich <jbeulich@suse.com>, Oleksii <oleksii.kurochko@gmail.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>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <08bca9a4158a190a0a953e5bc071a512cfe5f0f8.1703072575.git.oleksii.kurochko@gmail.com>
 <341249d1-217f-4ad2-9455-b1aded4b9b56@xen.org>
 <03cf5145-2124-4150-9f20-904f08bcabda@suse.com>
 <9f8c4fe0a87742444b52a42aa5924cf046ee18b0.camel@gmail.com>
 <67bf2be7-53f4-40d0-a856-8ae631a054b0@suse.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <67bf2be7-53f4-40d0-a856-8ae631a054b0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 22/12/2023 13:20, Jan Beulich wrote:
> On 22.12.2023 14:07, Oleksii wrote:
>> On Fri, 2023-12-22 at 09:22 +0100, Jan Beulich wrote:
>>> On 21.12.2023 20:09, Julien Grall wrote:
>>>> On 20/12/2023 14:08, Oleksii Kurochko wrote:
>>>>> <asm/numa.h> is common through some archs so it is moved
>>>>> to asm-generic.
>>>>>
>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
>>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>> Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>>
>>>> I think this patch will need to be rebased on top of the lastest
>>>> staging
>>>> as this should clash with 51ffb3311895.
>>>
>>> No, and I'd like to withdraw my ack here. In this case a stub header
>>> isn't
>>> the right choice imo - the !NUMA case should be handled in common
>>> code. I
>>> would have submitted the patch I have, if only the first_valid_mfn
>>> patch
>>> hadn't been committed already (which I now need to re-base over).
>> I haven't seen your patch yet (waiting for it), but I assume that
>> <asm/numa.h> will still be necessary and remain the same across Arm,
>> PPC, and RISC-V.
>>
>> What am I missing?
> 
> asm/numa.h will be necessary for an arch only if it actually has a way
> to have CONFIG_NUMA enabled. Below, for your reference, the patch in
> the not-yet-rebased form. As you can see, Arm's (and PPC's) header goes
> away. If and when they choose to support NUMA, they may need to regain
> one; whether at that point we can sort how an asm-generic/ form of the
> header might sensibly look like remains to be seen.
> 
> Jan
> 
> NUMA: no need for asm/numa.h when !NUMA
> 
> There's no point in every architecture carrying the same stubs for the
> case when NUMA isn't enabled (or even supported). Move all of that to
> xen/numa.h; replace explicit uses of asm/numa.h in common code. Make
> inclusion of asm/numa.h dependent upon NUMA=y.
> 
> Address the TODO regarding first_valid_mfn by making the variable static
> when NUMA=y, thus also addressing a Misrs C:2012 rule 8.4 concern. Drop
> the not really applicable "implement NUMA support" comment - in a !NUMA
> section this simply makes no sense.

I have to admit, I am not really thrill with the approach you have 
taken. As I said before, I don't quite understand the problem of having 
first_valid_mfn exposed in all the circumstances.

This is better than trying to do...

> --- unstable.orig/xen/common/page_alloc.c
> +++ unstable/xen/common/page_alloc.c
> @@ -140,7 +140,6 @@
>   #include <xen/vm_event.h>
>   
>   #include <asm/flushtlb.h>
> -#include <asm/numa.h>
>   #include <asm/page.h>
>   
>   #include <public/sysctl.h>
> @@ -256,10 +255,14 @@ static PAGE_LIST_HEAD(page_broken_list);
>    * BOOT-TIME ALLOCATOR
>    */
>   
> +#ifndef CONFIG_NUMA
>   /*
>    * first_valid_mfn is exported because it is use in ARM specific NUMA
>    * helpers. See comment in arch/arm/include/asm/numa.h.
>    */
> +#else
> +static
> +#endif

... this sort ugliness.

I am not going to Nack the patch. But I am definitely not going to ack 
it. with this change.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 14:15:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 14:15:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659381.1028951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGgJd-0003pB-85; Fri, 22 Dec 2023 14:15:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659381.1028951; Fri, 22 Dec 2023 14: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 1rGgJd-0003p4-3p; Fri, 22 Dec 2023 14:15:53 +0000
Received: by outflank-mailman (input) for mailman id 659381;
 Fri, 22 Dec 2023 14:15:52 +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 1rGgJc-0003oy-F6
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 14:15:52 +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 1rGgJb-0004KN-17; Fri, 22 Dec 2023 14:15:51 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rGgJa-0008Aq-RM; Fri, 22 Dec 2023 14:15:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=rD9hVnGudiSgziDqQmsE1IJ5DDHBVFrPgiseh/zur5Q=; b=HWqUUgmndmoF4ArH6VeTB4hVFX
	p+ovYqYAS9UE+V3CLDaQMZlAxQC+C/3Gelh4tQUaUo5lk7Hwkb6PDaw4vqHbfRYkw5BGuCNryRfUp
	MgXq8ntwUDJPwcs6h6GzeqQAuGYW/suTsf/N4/wZYwHUrTB4NdCFt9eRcFO5DmsEQGTw=;
Message-ID: <926a5c12-7f02-42ec-92a8-1c82d060c710@xen.org>
Date: Fri, 22 Dec 2023 14:15:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 9/9] xen/asm-generic: introduce generic device.h
Content-Language: en-GB
To: Oleksii <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org,
 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>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <55d6810e2f8b0f54261c504354bf879c5b887c40.1703072575.git.oleksii.kurochko@gmail.com>
 <f41894c6-b061-4aef-9d4a-18effd917043@xen.org>
 <4ce1258b22962f959abf2437d6427ec34d420023.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <4ce1258b22962f959abf2437d6427ec34d420023.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Oleksii,

On 22/12/2023 13:16, Oleksii wrote:
> On Thu, 2023-12-21 at 19:38 +0000, Julien Grall wrote:
>> Hi,
>>
>> On 20/12/2023 14:08, Oleksii Kurochko wrote:
>>> Arm, PPC and RISC-V use the same device.h thereby device.h
>>> was moved to asm-generic. Arm's device.h was taken as a base with
>>> the following changes:
>>>  Â  - #ifdef PCI related things.
>>>  Â  - #ifdef ACPI related things.
>>>  Â  - Rename #ifdef guards.
>>>  Â  - Add SPDX tag.
>>>  Â  - #ifdef CONFIG_HAS_DEVICE_TREE related things.
>>>  Â  - #ifdef-ing iommu related things with CONFIG_HAS_PASSTHROUGH.
>>>
>>> Also Arm and PPC are switched to asm-generic version of device.h
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>>
>>>  Â Â Â Â Â  Jan wrote the following:
>>>  Â Â Â Â Â Â Â  Overall I think there are too many changes done all in one
>>> go here.
>>>  Â Â Â Â Â Â Â  But it's mostly Arm which is affected, so I'll leave
>>> judging about that
>>>  Â Â Â Â Â Â Â  to the Arm maintainers.
>>>        
>>>  Â Â Â Â Â  Arm maintainers, will it be fine for you to not split the
>>> patch?
>>
>> So in general I agree with Jan, patches should be kept small so they
>> are
>> easy to review.
>>
>> Given the discussion has been on-going for a while (we are at v6),Â  I
>> will give an attempt to review the patch as-is. But in the future,
>> please try to split. The smaller it is, the easier to review. For
>> code
>> movement and refactoring, I tend to first have a few refactoring
>> patches
>> and then move the code in a separate patch. So it is easier to spot
>> the
>> differences.
> Thanks, I'll separate the patch.
>>
>>> ---
>>> Changes in V6:
>>>  Â  - Rebase only.
>>> ---
>>> Changes in V5:
>>>  Â Â  - Removed generated file: xen/include/headers++.chk.new
>>>  Â Â  - Removed pointless #ifdef CONFIG_HAS_DEVICE_TREE ... #endif for
>>> PPC as
>>>  Â Â Â Â  CONFIG_HAS_DEVICE_TREE will be always used for PPC.
>>> ---
>>> Changes in V4:
>>>  Â  - Updated the commit message
>>>  Â  - Switched Arm and PPC to asm-generic version of device.h
>>>  Â  - Replaced HAS_PCI with CONFIG_HAS_PCI
>>>  Â  - ifdef-ing iommu filed of dev_archdata struct with
>>> CONFIG_HAS_PASSTHROUGH
>>>  Â  - ifdef-ing iommu_fwspec of device struct with
>>> CONFIG_HAS_PASSTHROUGH
>>>  Â  - ifdef-ing DT related things with CONFIG_HAS_DEVICE_TREE
>>>  Â  - Updated the commit message ( remove a note with question about
>>>  Â Â Â  if device.h should be in asm-generic or not )
>>>  Â  - Replaced DEVICE_IC with DEVICE_INTERRUPT_CONTROLLER
>>>  Â  - Rationalized usage of CONFIG_HAS_* in device.h
>>>  Â  - Fixed indents for ACPI_DEVICE_START and ACPI_DEVICE_END
>>> ---
>>> Changes in V3:
>>>  Â  - ifdef device tree related things.
>>>  Â  - update the commit message
>>> ---
>>> Changes in V2:
>>> 	- take ( as common ) device.h from Arm as PPC and RISC-V
>>> use it as a base.
>>> 	- #ifdef PCI related things.
>>> 	- #ifdef ACPI related things.
>>> 	- rename DEVICE_GIC to DEVIC_IC.
>>> 	- rename #ifdef guards.
>>> 	- switch Arm and PPC to generic device.h
>>> 	- add SPDX tag
>>> 	- update the commit message
>>>
>>> ---
>>>  Â  xen/arch/arm/device.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  15 ++-
>>>  Â  xen/arch/arm/domain_build.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  2 +-
>>>  Â  xen/arch/arm/gic-v2.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  4 +-
>>>  Â  xen/arch/arm/gic-v3.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  6 +-
>>>  Â  xen/arch/arm/gic.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  4 +-
>>>  Â  xen/arch/arm/include/asm/MakefileÂ Â Â Â Â Â Â Â Â Â Â Â  |Â Â  1 +
>>>  Â  xen/arch/ppc/include/asm/MakefileÂ Â Â Â Â Â Â Â Â Â Â Â  |Â Â  1 +
>>>  Â  xen/arch/ppc/include/asm/device.hÂ Â Â Â Â Â Â Â Â Â Â Â  |Â  53 --------
>>>  Â  .../asm => include/asm-generic}/device.hÂ Â Â Â Â  | 125 +++++++++++--
>>> -----
>>>  Â  9 files changed, 102 insertions(+), 109 deletions(-)
>>>  Â  delete mode 100644 xen/arch/ppc/include/asm/device.h
>>>  Â  rename xen/{arch/arm/include/asm => include/asm-generic}/device.h
>>> (79%)
>>>
>>> diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
>>> index 1f631d3274..affbe79f9a 100644
>>> --- a/xen/arch/arm/device.c
>>> +++ b/xen/arch/arm/device.c
>>> @@ -16,7 +16,10 @@
>>>  Â  #include <xen/lib.h>
>>>    
>>>  Â  extern const struct device_desc _sdevice[], _edevice[];
>>> +
>>> +#ifdef CONFIG_ACPI
>>>  Â  extern const struct acpi_device_desc _asdevice[], _aedevice[];
>>> +#endif
>>>    
>>>  Â  int __init device_init(struct dt_device_node *dev, enum
>>> device_class class,
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const void *data)
>>> @@ -45,6 +48,7 @@ int __init device_init(struct dt_device_node
>>> *dev, enum device_class class,
>>>  Â Â Â Â Â  return -EBADF;
>>>  Â  }
>>>    
>>> +#ifdef CONFIG_ACPI
>>>  Â  int __init acpi_device_init(enum device_class class, const void
>>> *data, int class_type)
>>>  Â  {
>>>  Â Â Â Â Â  const struct acpi_device_desc *desc;
>>> @@ -61,6 +65,7 @@ int __init acpi_device_init(enum device_class
>>> class, const void *data, int class
>>>    
>>>  Â Â Â Â Â  return -EBADF;
>>>  Â  }
>>> +#endif
>>>    
>>>  Â  enum device_class device_get_class(const struct dt_device_node
>>> *dev)
>>>  Â  {
>>> @@ -329,9 +334,13 @@ int handle_device(struct domain *d, struct
>>> dt_device_node *dev, p2m_type_t p2mt,
>>>  Â Â Â Â Â  struct map_range_data mr_data = {
>>>  Â Â Â Â Â Â Â Â Â  .d = d,
>>>  Â Â Â Â Â Â Â Â Â  .p2mt = p2mt,
>>> -Â Â Â Â Â Â Â  .skip_mapping = !own_device ||
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (is_pci_passthrough_enabled() &&
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (device_get_class(dev) ==
>>> DEVICE_PCI_HOSTBRIDGE)),
>>> +Â Â Â Â Â Â Â  .skip_mapping =
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  !own_device
>>> +#ifdef CONFIG_HAS_PCI
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  || (is_pci_passthrough_enabled() &&
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (device_get_class(dev) ==
>>> DEVICE_PCI_HOSTBRIDGE))
>>> +#endif
>>
>> So the #ifdef is only here because DEVICE_PCI_HOSTBRIDGE is not
>> defined.
>> It is not clear what's the actual problem of keeping
>> DEVICE_PCI_HOSTBRIDGE available for every build.
> The only reason for that is that it seems to be used only in thecase when CONFIG_HAS_PCI is enabled ( probably not all archs will
> have PCI support ). 

Possibly yes. But you will always need some compat layer unless you 
manage to get rid of any use of PCI (or any feature you don't want) 
within "common" code.

Here, it is not clear to me what you are effectively trying to protect 
against. IOW, what could go wrong if PCI_HOSTBRIDGE is available for 
everyone?

I know it means we would never return DEVICE_PCI_HOSTBRIDGE even if the 
device is actually a hostbridge. But the same is true if Xen doesn't 
have a driver for the hostbridge (not everyone are using ECAM).

So at the end of the day this is a trade-off between keep the code 
readable (from my POV) and reducing the amount of symbols/defines exposed.

This is also matching my view on Jan's proposal to protect the static 
keyword for first_valid_mfn with #ifdef. There is a limit in the amount 
of #ifdef I will tolerate.

I'd like to hear the opinion from the others.

> Generally,
> I think it's okay not to use #ifdef DEVICE_PCI_HOSTBRIDGE to keep
> the Arm code cleaner.
> 
> Does it make sense?

I don't quite understand your last sentence. Are you saying you would be 
ok to remove #ifdef CONFIG_HAS_PCI around DEVICE_PCI_HOSTBRIDGE?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 14:22:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 14:22:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659385.1028959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGgPl-0005z1-S5; Fri, 22 Dec 2023 14:22:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659385.1028959; Fri, 22 Dec 2023 14: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 1rGgPl-0005yu-PG; Fri, 22 Dec 2023 14:22:13 +0000
Received: by outflank-mailman (input) for mailman id 659385;
 Fri, 22 Dec 2023 14:22:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rGgPk-0005yo-9Z
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 14:22:12 +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 1rGgPe-0004SA-EB; Fri, 22 Dec 2023 14:22:06 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.240])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rGgPe-0008SH-5V; Fri, 22 Dec 2023 14:22:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=EoNyJO5vv2JraW6JPDVb1MQdUbdODi3+bIU/00VGu74=; b=GaPvPKqP9rip8T5bRzp/RAn8U0
	879Zp6jX4nASua9V7m8pvosBAvdMTeehuhaqN56r46GlGamx5x1yH+DJ9tSlqMDFpbXU6+5ZZ6ka8
	OP5b2ZsR6HHs1mANe1b0S1D5fy8Pziia+Zh4oJjtvEvmHSU7kdUMWBCM9pH1tWPlgO7c=;
Message-ID: <0f729b61-b839-48f6-89ae-b5570b1eae0b@xen.org>
Date: Fri, 22 Dec 2023 14:22:04 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 5/9] xen/asm-generic: introduce stub header numa.h
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Jan Beulich <jbeulich@suse.com>, Oleksii <oleksii.kurochko@gmail.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>,
 George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
 <08bca9a4158a190a0a953e5bc071a512cfe5f0f8.1703072575.git.oleksii.kurochko@gmail.com>
 <341249d1-217f-4ad2-9455-b1aded4b9b56@xen.org>
 <03cf5145-2124-4150-9f20-904f08bcabda@suse.com>
 <9f8c4fe0a87742444b52a42aa5924cf046ee18b0.camel@gmail.com>
 <67bf2be7-53f4-40d0-a856-8ae631a054b0@suse.com>
 <955e9b02-20bd-4279-9f60-bb757cdf1a03@xen.org>
In-Reply-To: <955e9b02-20bd-4279-9f60-bb757cdf1a03@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 22/12/2023 13:58, Julien Grall wrote:
> Hi Jan,
> 
> On 22/12/2023 13:20, Jan Beulich wrote:
>> On 22.12.2023 14:07, Oleksii wrote:
>>> On Fri, 2023-12-22 at 09:22 +0100, Jan Beulich wrote:
>>>> On 21.12.2023 20:09, Julien Grall wrote:
>>>>> On 20/12/2023 14:08, Oleksii Kurochko wrote:
>>>>>> <asm/numa.h> is common through some archs so it is moved
>>>>>> to asm-generic.
>>>>>>
>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
>>>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>>> Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>>>
>>>>> I think this patch will need to be rebased on top of the lastest
>>>>> staging
>>>>> as this should clash with 51ffb3311895.
>>>>
>>>> No, and I'd like to withdraw my ack here. In this case a stub header
>>>> isn't
>>>> the right choice imo - the !NUMA case should be handled in common
>>>> code. I
>>>> would have submitted the patch I have, if only the first_valid_mfn
>>>> patch
>>>> hadn't been committed already (which I now need to re-base over).
>>> I haven't seen your patch yet (waiting for it), but I assume that
>>> <asm/numa.h> will still be necessary and remain the same across Arm,
>>> PPC, and RISC-V.
>>>
>>> What am I missing?
>>
>> asm/numa.h will be necessary for an arch only if it actually has a way
>> to have CONFIG_NUMA enabled. Below, for your reference, the patch in
>> the not-yet-rebased form. As you can see, Arm's (and PPC's) header goes
>> away. If and when they choose to support NUMA, they may need to regain
>> one; whether at that point we can sort how an asm-generic/ form of the
>> header might sensibly look like remains to be seen.
>>
>> Jan
>>
>> NUMA: no need for asm/numa.h when !NUMA
>>
>> There's no point in every architecture carrying the same stubs for the
>> case when NUMA isn't enabled (or even supported). Move all of that to
>> xen/numa.h; replace explicit uses of asm/numa.h in common code. Make
>> inclusion of asm/numa.h dependent upon NUMA=y.
>>
>> Address the TODO regarding first_valid_mfn by making the variable static
>> when NUMA=y, thus also addressing a Misrs C:2012 rule 8.4 concern. Drop
>> the not really applicable "implement NUMA support" comment - in a !NUMA
>> section this simply makes no sense.
> 
> I have to admit, I am not really thrill with the approach you have 
> taken. As I said before, I don't quite understand the problem of having 
> first_valid_mfn exposed in all the circumstances.
> 
> This is better than trying to do...
> 
>> --- unstable.orig/xen/common/page_alloc.c
>> +++ unstable/xen/common/page_alloc.c
>> @@ -140,7 +140,6 @@
>> Â  #include <xen/vm_event.h>
>> Â  #include <asm/flushtlb.h>
>> -#include <asm/numa.h>
>> Â  #include <asm/page.h>
>> Â  #include <public/sysctl.h>
>> @@ -256,10 +255,14 @@ static PAGE_LIST_HEAD(page_broken_list);
>> Â Â  * BOOT-TIME ALLOCATOR
>> Â Â  */
>> +#ifndef CONFIG_NUMA
>> Â  /*
>> Â Â  * first_valid_mfn is exported because it is use in ARM specific NUMA
>> Â Â  * helpers. See comment in arch/arm/include/asm/numa.h.
>> Â Â  */
>> +#else
>> +static
>> +#endif
> 
> ... this sort ugliness.

Just to add more thoughts. My main concern here is that we likely have 
other variables that may only be exposed for a given arch. I would 
rather not like if we start sprinkling the code with #ifdef CONFIG_XXX 
static #else.

If there is a desire for everyone to start reducing the scope of the 
variable. Then we should come up with a way to do what you did above on 
the same line rather than multiple one. Maybe:

STATIC_IF(CONFIG_NUMA) unsigned long first_valid_mfn.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 14:37:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 14:37:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659391.1028969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGgeO-0008BT-3d; Fri, 22 Dec 2023 14:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659391.1028969; Fri, 22 Dec 2023 14: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 1rGgeO-0008BM-0n; Fri, 22 Dec 2023 14:37:20 +0000
Received: by outflank-mailman (input) for mailman id 659391;
 Fri, 22 Dec 2023 14:37:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EuIk=IB=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rGgeM-0008BG-BZ
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 14:37:18 +0000
Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com
 [2607:f8b0:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99df0378-a0d7-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 15:37:16 +0100 (CET)
Received: by mail-pf1-x430.google.com with SMTP id
 d2e1a72fcca58-6d3165ac96bso1409568b3a.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 06:37:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 99df0378-a0d7-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703255834; x=1703860634; darn=lists.xenproject.org;
        h=cc:subject:message-id:date:from:in-reply-to:references:mime-version
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ojMWNpl55+oUfhnb0vwa6XU66mbrsa65iUm2U8MQ70k=;
        b=Rnm+q8dQ52q/kDfLXPQpbJvnQnr2dZPi/igwiBEdiwoNFveCBJnRLBkyWn4LI/Mu4k
         EToc0guYT6g6ON6WP09re3+M18A0syStRxlEGJhVzB/hzcB4T37B86vqHLN/ow4TiGzN
         KvH/D88OyqdjIfcuIfyq/nSJrOfBnOH/05xhf2lXDMO0a3q+o98CVFkNYxvSdspoENxV
         h3nd2D3WFPVlUJF35jLCckk7l4FBnkRYIkEXxGw2x5uTPwUluKNm+WEamLOA2khWYP/F
         TH7fb4aXhBDT6k3xqi8nPy/aVzeqizTbrqBgTw1qutfEXyosATrUte4OObzPWVFkXTJS
         //4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703255834; x=1703860634;
        h=cc: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=ojMWNpl55+oUfhnb0vwa6XU66mbrsa65iUm2U8MQ70k=;
        b=U3Mv3aEehiTsKFV3UYW29S0pQHn//gIAVoVAW03bb+7GsHnm52TfdxfY8fR7vEfGbl
         UhGUFZd5aQfUsu7+x0Sxz6WAT4rGGaaaUsKvUjU1MtpKs7xTV2LOTyTZvp+3w7l24CUD
         /zgNNUQ2OxMqjP5JEdpjHH6n95mr8GZEJ9moCwX88tQ3Sa7dKRM7uS9YgdXyQmaKpMue
         0Jee42GlsGC8e0m6FG5rrMuz3ayYFpeEzCGqK46pVvWxiYSl5/2CHMA50bw3h5fiRH+5
         ErcWwMb4LqVZsJnZPj/JlIeEx68EbUq1X/CHL34c3rOCrHa5KO+gexNqTPX8HTlZCn6f
         h+tA==
X-Gm-Message-State: AOJu0Ywf/BAVzFeXVUNcilwEWWbFnCZRxp/6oy+Lmh5IMrQ7iEyj5/i2
	KJhOUPUXVAxAMgXHkdTJdAI2GXwduFxOEJjJXJh+jgogrUsnSQ==
X-Received: by 2002:a05:6a00:1b44:b0:6d9:6577:904 with SMTP id
 o4-20020a056a001b4400b006d965770904mt1011142pfv.41.1703255834424; Fri, 22 Dec
 2023 06:37:14 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com> <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
 <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com> <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
 <CAKm-Umbs2D7NHFE+NW2xKOu7-AZhFpH4uzE5QTuQusnGA_eNWA@mail.gmail.com> <f539144c-885a-461c-a506-bdb73e626a65@suse.com>
In-Reply-To: <f539144c-885a-461c-a506-bdb73e626a65@suse.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Fri, 22 Dec 2023 15:37:02 +0100
Message-ID: <CAKm-UmY126AfdGhWcZ3s9vwN9+ksVRRFEhOu0ZFMoDvxrqOibw@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Content-Type: multipart/alternative; boundary="000000000000fa0dad060d1a266d"

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

By request of the laptop vendor (Framework) I'm going to open the bug
@fedora for them to jump in.


> > I noticed that on baremetal :
> >
> >   53:          0          0          0          0          0       1268
> >      0          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio    5  FRMW0005:00
> >   54:          0          0          0          0          0          1
> >      0          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio   84  FRMW0004:00
> >   55:          0          0          0          0          0       1403
> >      0          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio    8  PIXA3854:00
> >
> > with xen with IRQ7 setup only once there's only (the touchpad is
> > PIXA3854:00)
> >
> >  176:          0          0          0          0          0          0
> >      1          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio    8
> >
>
> Interestingly when IRQ7 is setup twice (normal xen)
> >  176:          0          0          0          0          0          0
> >      1          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio    8  PIXA3854:00
>
> That's odd, as with IRQ7 (wrongly) setup as edge, it should also be marke=
d
> as non-sharable. Otoh with the "i2c-PIXA3854:00:" error above it's no
> surprise no interrupt is set up there.
>

forget this one, I made a mistake when skipping IRQ7.

The "amd_gpio    8  PIXA3854:00"for  IRQ176 is identical with or without
IRQ7 double initialization.


>> Furthermore it might be interesting to know whether ELCR would give us
> >>> any hint in this case. Sadly depending on where you look,
> >>> applicability of this pair of registers (I/O ports 0x4d0 and 0x4d1)
> >>> to other than EISA systems is claimed true or false. Could you perhap=
s
> >>> make Xen simply log the values read from those two ports, by e.g.
> >>> inserting
> >>>
> >>>      printk("ELCR: %02x, %02x\n", inb(0x4d0), inb(0x4d1));
> >>>
> >>> in, say, setup_dump_irqs()?
> >>>
> >>
> > did that but I don't know how to trigger the dump.
>
> There's no need to trigger the dump. The message will be logged during
> boot, and hence ought to be visible in "xl dmesg" output.


Got :

(XEN) ELCR: 00, 00

Le ven. 22 d=C3=A9c. 2023 =C3=A0 09:46, Jan Beulich <jbeulich@suse.com> a =
=C3=A9crit :

> On 21.12.2023 21:41, S=C3=A9bastien Chaumat wrote:
> > Le jeu. 21 d=C3=A9c. 2023 =C3=A0 14:29, Juergen Gross <jgross@suse.com>=
 a =C3=A9crit :
> >
> >> On 21.12.23 13:40, Jan Beulich wrote:
> >>> On 20.12.2023 17:34, S=C3=A9bastien Chaumat wrote:
> >>>> Here are the patches I made to xen and linux kernel
> >>>> Plus dmesg (bare metal,xen) and "xl dmesg"
> >>>
> >>> So the problem looks to be that pci_xen_initial_domain() results in
> >>> permanent setup of IRQ7, when there only "static" ACPI tables (in
> >>> particular source overrides in MADT) are consulted. The necessary
> >>> settings, however, are known only after _CRS for the device was
> >>> evaluated (and possibly _PRS followed by invocation of _SRS). All of
> >>> this happens before xen_register_gsi() is called. But that function's
> >>> call to xen_register_pirq() is short-circuited by the very first if()
> >>> in xen_register_pirq() when there was an earlier invocation. Hence
> >>> the (wrong) "edge" binding remains in place, as was established by
> >>> the earlier call here.
> >>>
> >>> J=C3=BCrgen, there's an interesting comment in xen_bind_pirq_gsi_to_i=
rq(),
> >>> right before invoking irq_set_chip_and_handler_name(). Despite what
> >>> the comment says (according to my reading), the fasteoi one is _not_
> >>> used in all cases. Assuming there's a reason for this, it's not clear
> >>> to me whether updating the handler later on is a valid thing to do.
> >>> __irq_set_handler() being even an exported symbol suggests that might
> >>> be an option to use here. Then again merely updating the handler may
> >>> not be sufficient, seeing there are also e.g. IRQD_TRIGGER_MASK and
> >>> IRQD_LEVEL.
> >>
> >> I understand the last paragraph of that comment to reason, that in cas=
e
> >> pirq_needs_eoi() return true even in case of an edge triggered
> interrupt,
> >> the outcome is still okay.
> >>
> >> I don't think updating the handler later is valid.
> >>
> >>> S=C3=A9bastien, to prove the (still pretty weak) theory that the chan=
ge in
> >>> handler is all that's needed to make things work in your case, could
> >>> you fiddle with pci_xen_initial_domain() to have it skip IRQ7? (That
> >>> of course won't be a proper solution, but ought to be okay for your
> >>> system.) The main weakness of the theory is that IRQ7 really isn't
> >>> very special in this regard - other PCI IRQs routed to the low 16
> >>> IO-APIC pins ought to have similar issues (from the log, on your
> >>> system this would be at least IRQ6 and IRQ10, except that they happen
> >>> to be edge/low, so fitting the ISA defaults); only IRQ16 and up would
> >>> work okay.
> >>>
> >>
> >
> > Doing just that : IQR7 is now  of type level
> >   xen-pirq     -ioapic-level  pinctrl_amd
> >
> >
> > (but is ioapic-level there totally equivalent to the fasteoi of
> baremetal)
> > Still the touchpad does not work.
> >
> > And we have now :
> > Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-PIXA3854:00: failed to
> > reset device: -61
> > Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-PIXA3854:00
> > failed with error -61
> >
> > in addition to
> > Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-FRMW0004:00: failed to
> > reset device: -61
> > Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-FRMW0005:00: failed to
> > reset device: -61
> > Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRMW0004:00
> > failed with error -61
> > Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRMW0005:00
> > failed with error -61
>
> So there's more to this, which I'm afraid will (first) need looking into
> by a person familiar with the involved drivers.
>
> > I noticed that on baremetal :
> >
> >   53:          0          0          0          0          0       1268
> >      0          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio    5  FRMW0005:00
> >   54:          0          0          0          0          0          1
> >      0          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio   84  FRMW0004:00
> >   55:          0          0          0          0          0       1403
> >      0          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio    8  PIXA3854:00
> >
> > with xen with IRQ7 setup only once there's only (the touchpad is
> > PIXA3854:00)
> >
> >  176:          0          0          0          0          0          0
> >      1          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio    8
> >
> > Interestingly when IRQ7 is setup twice (normal xen)
> >  176:          0          0          0          0          0          0
> >      1          0          0          0          0          0          =
0
> >        0          0          0  amd_gpio    8  PIXA3854:00
>
> That's odd, as with IRQ7 (wrongly) setup as edge, it should also be marke=
d
> as non-sharable. Otoh with the "i2c-PIXA3854:00:" error above it's no
> surprise no interrupt is set up there.
>
> >> Furthermore it might be interesting to know whether ELCR would give us
> >>> any hint in this case. Sadly depending on where you look,
> >>> applicability of this pair of registers (I/O ports 0x4d0 and 0x4d1)
> >>> to other than EISA systems is claimed true or false. Could you perhap=
s
> >>> make Xen simply log the values read from those two ports, by e.g.
> >>> inserting
> >>>
> >>>      printk("ELCR: %02x, %02x\n", inb(0x4d0), inb(0x4d1));
> >>>
> >>> in, say, setup_dump_irqs()?
> >>>
> >>
> > did that but I don't know how to trigger the dump.
>
> There's no need to trigger the dump. The message will be logged during
> boot, and hence ought to be visible in "xl dmesg" output.
>
> Jan
>

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

<div dir=3D"ltr"><div>By request of the laptop vendor (Framework) I&#39;m g=
oing to open the bug @fedora for them to jump in.</div><span class=3D"gmail=
-im"><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">&gt=
; I noticed that on baremetal :<br>
&gt; <br>
&gt;=C2=A0 =C2=A053:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =
=C2=A01268<br>
&gt;=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A0 5=C2=A0 FRMW0005=
:00<br>
&gt;=C2=A0 =C2=A054:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 1<br>
&gt;=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A084=C2=A0 FRMW0004=
:00<br>
&gt;=C2=A0 =C2=A055:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =
=C2=A01403<br>
&gt;=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A0 8=C2=A0 PIXA3854=
:00<br>
&gt; <br>
&gt; with xen with IRQ7 setup only once there&#39;s only (the touchpad is<b=
r>
&gt; PIXA3854:00)<br>
&gt; <br>
&gt;=C2=A0 176:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A0 8<br>
&gt;=C2=A0 <br></blockquote><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x">
&gt; Interestingly when IRQ7 is setup twice (normal xen)<br>
&gt;=C2=A0 176:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A0 8=C2=A0 PIXA3854=
:00<br>
<br>
That&#39;s odd, as with IRQ7 (wrongly) setup as edge, it should also be mar=
ked<br>
as non-sharable. Otoh with the &quot;i2c-PIXA3854:00:&quot; error above it&=
#39;s no<br>
surprise no interrupt is set up there.<br></blockquote><div><br></div></spa=
n><div>forget this one, I made a mistake when skipping IRQ7.</div><div><br>=
</div><div>The &quot;amd_gpio=C2=A0 =C2=A0 8=C2=A0 PIXA3854:00&quot;for=C2=
=A0 IRQ176 is identical with or without IRQ7 double initialization.</div><s=
pan class=3D"gmail-im"><div><br></div><div><br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex">
&gt;&gt; Furthermore it might be interesting to know whether ELCR would giv=
e us<br>
&gt;&gt;&gt; any hint in this case. Sadly depending on where you look,<br>
&gt;&gt;&gt; applicability of this pair of registers (I/O ports 0x4d0 and 0=
x4d1)<br>
&gt;&gt;&gt; to other than EISA systems is claimed true or false. Could you=
 perhaps<br>
&gt;&gt;&gt; make Xen simply log the values read from those two ports, by e=
.g.<br>
&gt;&gt;&gt; inserting<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 printk(&quot;ELCR: %02x, %02x\n&quot;, inb=
(0x4d0), inb(0x4d1));<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; in, say, setup_dump_irqs()?<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt; did that but I don&#39;t know how to trigger the dump.<br>
<br>
There&#39;s no need to trigger the dump. The message will be logged during<=
br>
boot, and hence ought to be visible in &quot;xl dmesg&quot; output.</blockq=
uote><div><br></div></span><div>Got :</div><div><br></div><div>(XEN) ELCR: =
00, 00</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"=
gmail_attr">Le=C2=A0ven. 22 d=C3=A9c. 2023 =C3=A0=C2=A009:46, Jan Beulich &=
lt;<a href=3D"mailto:jbeulich@suse.com">jbeulich@suse.com</a>&gt; a =C3=A9c=
rit=C2=A0:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 21=
.12.2023 21:41, S=C3=A9bastien Chaumat wrote:<br>
&gt; Le jeu. 21 d=C3=A9c. 2023 =C3=A0 14:29, Juergen Gross &lt;<a href=3D"m=
ailto:jgross@suse.com" target=3D"_blank">jgross@suse.com</a>&gt; a =C3=A9cr=
it :<br>
&gt; <br>
&gt;&gt; On 21.12.23 13:40, Jan Beulich wrote:<br>
&gt;&gt;&gt; On 20.12.2023 17:34, S=C3=A9bastien Chaumat wrote:<br>
&gt;&gt;&gt;&gt; Here are the patches I made to xen and linux kernel<br>
&gt;&gt;&gt;&gt; Plus dmesg (bare metal,xen) and &quot;xl dmesg&quot;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; So the problem looks to be that pci_xen_initial_domain() resul=
ts in<br>
&gt;&gt;&gt; permanent setup of IRQ7, when there only &quot;static&quot; AC=
PI tables (in<br>
&gt;&gt;&gt; particular source overrides in MADT) are consulted. The necess=
ary<br>
&gt;&gt;&gt; settings, however, are known only after _CRS for the device wa=
s<br>
&gt;&gt;&gt; evaluated (and possibly _PRS followed by invocation of _SRS). =
All of<br>
&gt;&gt;&gt; this happens before xen_register_gsi() is called. But that fun=
ction&#39;s<br>
&gt;&gt;&gt; call to xen_register_pirq() is short-circuited by the very fir=
st if()<br>
&gt;&gt;&gt; in xen_register_pirq() when there was an earlier invocation. H=
ence<br>
&gt;&gt;&gt; the (wrong) &quot;edge&quot; binding remains in place, as was =
established by<br>
&gt;&gt;&gt; the earlier call here.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; J=C3=BCrgen, there&#39;s an interesting comment in xen_bind_pi=
rq_gsi_to_irq(),<br>
&gt;&gt;&gt; right before invoking irq_set_chip_and_handler_name(). Despite=
 what<br>
&gt;&gt;&gt; the comment says (according to my reading), the fasteoi one is=
 _not_<br>
&gt;&gt;&gt; used in all cases. Assuming there&#39;s a reason for this, it&=
#39;s not clear<br>
&gt;&gt;&gt; to me whether updating the handler later on is a valid thing t=
o do.<br>
&gt;&gt;&gt; __irq_set_handler() being even an exported symbol suggests tha=
t might<br>
&gt;&gt;&gt; be an option to use here. Then again merely updating the handl=
er may<br>
&gt;&gt;&gt; not be sufficient, seeing there are also e.g. IRQD_TRIGGER_MAS=
K and<br>
&gt;&gt;&gt; IRQD_LEVEL.<br>
&gt;&gt;<br>
&gt;&gt; I understand the last paragraph of that comment to reason, that in=
 case<br>
&gt;&gt; pirq_needs_eoi() return true even in case of an edge triggered int=
errupt,<br>
&gt;&gt; the outcome is still okay.<br>
&gt;&gt;<br>
&gt;&gt; I don&#39;t think updating the handler later is valid.<br>
&gt;&gt;<br>
&gt;&gt;&gt; S=C3=A9bastien, to prove the (still pretty weak) theory that t=
he change in<br>
&gt;&gt;&gt; handler is all that&#39;s needed to make things work in your c=
ase, could<br>
&gt;&gt;&gt; you fiddle with pci_xen_initial_domain() to have it skip IRQ7?=
 (That<br>
&gt;&gt;&gt; of course won&#39;t be a proper solution, but ought to be okay=
 for your<br>
&gt;&gt;&gt; system.) The main weakness of the theory is that IRQ7 really i=
sn&#39;t<br>
&gt;&gt;&gt; very special in this regard - other PCI IRQs routed to the low=
 16<br>
&gt;&gt;&gt; IO-APIC pins ought to have similar issues (from the log, on yo=
ur<br>
&gt;&gt;&gt; system this would be at least IRQ6 and IRQ10, except that they=
 happen<br>
&gt;&gt;&gt; to be edge/low, so fitting the ISA defaults); only IRQ16 and u=
p would<br>
&gt;&gt;&gt; work okay.<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt; <br>
&gt; Doing just that : IQR7 is now=C2=A0 of type level<br>
&gt;=C2=A0 =C2=A0xen-pirq=C2=A0 =C2=A0 =C2=A0-ioapic-level=C2=A0 pinctrl_am=
d<br>
&gt; <br>
&gt; <br>
&gt; (but is ioapic-level there totally equivalent to the fasteoi of bareme=
tal)<br>
&gt; Still the touchpad does not work.<br>
&gt; <br>
&gt; And we have now :<br>
&gt; Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-PIXA3854:00: failed to=
<br>
&gt; reset device: -61<br>
&gt; Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-PIXA3854:00<=
br>
&gt; failed with error -61<br>
&gt; <br>
&gt; in addition to<br>
&gt; Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-FRMW0004:00: failed to=
<br>
&gt; reset device: -61<br>
&gt; Dec 21 20:13:57 fedora kernel: i2c_hid_acpi i2c-FRMW0005:00: failed to=
<br>
&gt; reset device: -61<br>
&gt; Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRMW0004:00<=
br>
&gt; failed with error -61<br>
&gt; Dec 21 20:14:17 fedora kernel: i2c_hid_acpi: probe of i2c-FRMW0005:00<=
br>
&gt; failed with error -61<br>
<br>
So there&#39;s more to this, which I&#39;m afraid will (first) need looking=
 into<br>
by a person familiar with the involved drivers.<br>
<br>
&gt; I noticed that on baremetal :<br>
&gt; <br>
&gt;=C2=A0 =C2=A053:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =
=C2=A01268<br>
&gt;=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A0 5=C2=A0 FRMW0005=
:00<br>
&gt;=C2=A0 =C2=A054:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 1<br>
&gt;=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A084=C2=A0 FRMW0004=
:00<br>
&gt;=C2=A0 =C2=A055:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =
=C2=A01403<br>
&gt;=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A0 8=C2=A0 PIXA3854=
:00<br>
&gt; <br>
&gt; with xen with IRQ7 setup only once there&#39;s only (the touchpad is<b=
r>
&gt; PIXA3854:00)<br>
&gt; <br>
&gt;=C2=A0 176:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A0 8<br>
&gt; <br>
&gt; Interestingly when IRQ7 is setup twice (normal xen)<br>
&gt;=C2=A0 176:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 amd_gpio=C2=A0 =C2=A0 8=C2=A0 PIXA3854=
:00<br>
<br>
That&#39;s odd, as with IRQ7 (wrongly) setup as edge, it should also be mar=
ked<br>
as non-sharable. Otoh with the &quot;i2c-PIXA3854:00:&quot; error above it&=
#39;s no<br>
surprise no interrupt is set up there.<br>
<br>
&gt;&gt; Furthermore it might be interesting to know whether ELCR would giv=
e us<br>
&gt;&gt;&gt; any hint in this case. Sadly depending on where you look,<br>
&gt;&gt;&gt; applicability of this pair of registers (I/O ports 0x4d0 and 0=
x4d1)<br>
&gt;&gt;&gt; to other than EISA systems is claimed true or false. Could you=
 perhaps<br>
&gt;&gt;&gt; make Xen simply log the values read from those two ports, by e=
.g.<br>
&gt;&gt;&gt; inserting<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 printk(&quot;ELCR: %02x, %02x\n&quot;, inb=
(0x4d0), inb(0x4d1));<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; in, say, setup_dump_irqs()?<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt; did that but I don&#39;t know how to trigger the dump.<br>
<br>
There&#39;s no need to trigger the dump. The message will be logged during<=
br>
boot, and hence ought to be visible in &quot;xl dmesg&quot; output.<br>
<br>
Jan<br>
</blockquote></div>

--000000000000fa0dad060d1a266d--


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 14:38:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 14:38:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659397.1028980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGgfJ-0000IE-G0; Fri, 22 Dec 2023 14:38:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659397.1028980; Fri, 22 Dec 2023 14: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 1rGgfJ-0000I4-D6; Fri, 22 Dec 2023 14:38:17 +0000
Received: by outflank-mailman (input) for mailman id 659397;
 Fri, 22 Dec 2023 14:38: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=EuIk=IB=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rGgfH-0000Hq-LY
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 14:38:15 +0000
Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com
 [2607:f8b0:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bca54a3c-a0d7-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 15:38:14 +0100 (CET)
Received: by mail-pf1-x42c.google.com with SMTP id
 d2e1a72fcca58-6d87eadc43fso945959b3a.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 06:38:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bca54a3c-a0d7-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703255893; x=1703860693; 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=74w1MpVPP2Pqrdjl8VcbipnfkmbPb7rCjVJczW69rpE=;
        b=N+ofPuPz0zgQKd1OR6eGqX6A4CQTtineWqcjtfTJl91LFtbfvlkWXlsz4FceDK3FDT
         GfDJCmN3Z4V576soQ3Z2NVm+nwcNg+IG6GUHkj3oh/7Zs6KJEUVNFAJvx6ubqoLGqkcx
         ug6pZT3jaVCVYW4sZkehKFDJpBa1Voa8M26SAMqVA0fFtuSk4gdMpW+J2cKV7nOOPDG4
         pREElT/TNiwNQQWQjTsTZDS7r3nNMrJWv2HgdRItxQ5yB9v3gb9WYcrIL0PeTv6W92YQ
         EMLEZPqA7XEYNGlvR6/a31JECdPjXNED3Q6mOFSAN7e+kOGnHgxT4eNdb3DSigQ1iw/N
         iAKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703255893; x=1703860693;
        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=74w1MpVPP2Pqrdjl8VcbipnfkmbPb7rCjVJczW69rpE=;
        b=ZwueQ78JTrXtKIcSdsoFLnU0G2hZt7T53w8zG2BKkOcx2lnQ7WUOOaiGJzoMb/cih7
         yZSJnQtgAQeEUyjAtiJ+/QHlmlzGxfAhvvIRkcQw5Y67MgvAZjGO9Gqfdmnege5S7bIS
         q/uZMMYa78AUQGoFrKYfgXM8cuK6BMcnIOkbj+A5/ZEYPmo9pCGeeDt7WMpOhuorJWB+
         vqzwNQlTT869abiWUOdy6yJJUw0rRGUcaETQLMA03jH09n+VJuOPydS6n8qo31BDLasc
         2rEwHDujyNlr1ES1Rub7kMsD26PIZqkBJW8Htl9+t40v2eHrpQWsMFH45jY0pqTIihdo
         HcCQ==
X-Gm-Message-State: AOJu0YzoppaUWqkUuIJti49Jw/9Bvkt+iZt0N+lo2YQzDoDw6jIzCL50
	X/qkZ0WqcvukVmmg5Gxfp+6Yu7scLPwWQn31ON/wKAw7auEpbw==
X-Google-Smtp-Source: AGHT+IE7s79rjeiQnw31V61qhQi4jojZ7oMaR083/7wO/EM0SdD4xUqJnpQNUpPAIrryqkYXWg0kja+d5pSecnEhwlI=
X-Received: by 2002:a05:6a00:4b51:b0:6d9:35c3:e7b2 with SMTP id
 kr17-20020a056a004b5100b006d935c3e7b2mr1078644pfb.11.1703255892937; Fri, 22
 Dec 2023 06:38:12 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com> <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
 <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com> <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
 <CAKm-Umbs2D7NHFE+NW2xKOu7-AZhFpH4uzE5QTuQusnGA_eNWA@mail.gmail.com>
 <f539144c-885a-461c-a506-bdb73e626a65@suse.com> <CAKm-UmY126AfdGhWcZ3s9vwN9+ksVRRFEhOu0ZFMoDvxrqOibw@mail.gmail.com>
In-Reply-To: <CAKm-UmY126AfdGhWcZ3s9vwN9+ksVRRFEhOu0ZFMoDvxrqOibw@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Fri, 22 Dec 2023 15:38:01 +0100
Message-ID: <CAKm-UmZ-td2Ow+Gg=dC+ksLvOtTFjEoKo+_9ueozELuoK5zXrg@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>
Content-Type: multipart/alternative; boundary="00000000000075cfa7060d1a2a3c"

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

Le ven. 22 d=C3=A9c. 2023 =C3=A0 15:37, S=C3=A9bastien Chaumat <euidzero@gm=
ail.com> a
=C3=A9crit :

> By request of the laptop vendor (Framework) I'm going to open the bug
> @fedora for them to jump in.
>
>

 https://bugzilla.redhat.com/show_bug.cgi?id=3D2255625

S=C3=A9bastien

--00000000000075cfa7060d1a2a3c
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">Le=C2=A0ven. 22 d=C3=A9c. 2023 =C3=A0=
=C2=A015:37, S=C3=A9bastien Chaumat &lt;<a href=3D"mailto:euidzero@gmail.co=
m">euidzero@gmail.com</a>&gt; a =C3=A9crit=C2=A0:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>By request of the l=
aptop vendor (Framework) I&#39;m going to open the bug @fedora for them to =
jump in.</div><span><div>=C2=A0</div></span></div></blockquote><div><br></d=
iv><div>=C2=A0<a href=3D"https://bugzilla.redhat.com/show_bug.cgi?id=3D2255=
625">https://bugzilla.redhat.com/show_bug.cgi?id=3D2255625</a></div><div><b=
r></div><div>S=C3=A9bastien<br></div></div></div>

--00000000000075cfa7060d1a2a3c--


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659411.1029040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDP-00005Q-E9; Fri, 22 Dec 2023 15:13:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659411.1029040; Fri, 22 Dec 2023 15:13:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDP-00005G-AL; Fri, 22 Dec 2023 15:13:31 +0000
Received: by outflank-mailman (input) for mailman id 659411;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDN-0007Ie-Sv
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:29 +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 a995ebae-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:29 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2ccae380df2so5219351fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:29 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a995ebae-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258008; x=1703862808; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XxfRR5iTWHPrG0r8RfFYv+6SXwdr18UERnM1vGt8RNc=;
        b=i/bckzCGI6P2VP/0O5yMdrsw5jIxbWBOX3lDoqebFZYewWcDOjNemoCZxCIbEzvndl
         hMgxdXxNByoBcyBKmHiMcrn/dpOWckQexYq789DvJpG+FuRT0wFviL1bZkYSA6DoDw23
         7YnagR0jYNt+CQwEilQ3+8e5JZrL7fZi9DfdUcFfp7eeSMPUfskJ1sH5+2cuz84JDV3i
         GUwfJDx9ZbpKUOeeXyzRhcixHy3Wxjx+6xPAsS8bQTmbDILLF0wAudB0sxtnz0g/sb3n
         tBlwluLRfMzyhdVcuFhRj71XyZldH9baNS1wlHdicrf3vsqIJ1YR6CcBrG4sGeELbNvR
         52vA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258008; x=1703862808;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=XxfRR5iTWHPrG0r8RfFYv+6SXwdr18UERnM1vGt8RNc=;
        b=Lqz2on1Z7mLHxQn9CK+nRez3Uyf5/67oX5d9163zRnseAQWIYBadFCJYcPtBYchbfL
         0mpco40OpEFcXhrXOLZBTiTRiARVYF+UeWlfq86kFqzNn/lEKa0LB98CfOyIIESOJ0dD
         TEAxev745zWkIH5fcBa+IvhCVm39g6kydtmH3OnLwv7z/zXVEJwWT/6oSxm3y80+fzwB
         F2DXduwAjLBbqGA9iiScUApXKu3qfMdf9P9cJ1A6Nqk6tSsLUoPF/bt4Xds8mU4sr3nI
         mjfO4e3b6Lo/ResS1G9tm2Iawa1xMuSSJZbrkfJwbCdPvDzXryr7PxjhYAmshhp1yVRZ
         lLjQ==
X-Gm-Message-State: AOJu0YwmuGkZcl1PH/cpEQJ5PJKmNLcqLKFj+6Z0pW8WWAY+kTWN5yUU
	yZxLG/bDVHuzw9cwCtoB1Kq0RIJ2AA0=
X-Google-Smtp-Source: AGHT+IEamhQQvmt0GN7tdFSr//TSSoXplDpq1N+R36tHrVkxKS4q38AjTIfliCZaHsIKus1ue0i05A==
X-Received: by 2002:a19:7408:0:b0:50e:6bf0:49c9 with SMTP id v8-20020a197408000000b0050e6bf049c9mr378948lfe.53.1703258008130;
        Fri, 22 Dec 2023 07:13:28 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 05/34] xen/riscv: introduce guest_atomics.h
Date: Fri, 22 Dec 2023 17:12:49 +0200
Message-ID: <fdbe7261178d057d9868aacea19c1c2b82d2da16.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - update the commit message
 - drop TODO commit.
 - add ASSERT_UNREACHABLE for stubs guest functions.
 - Add SPDX & footer
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/guest_atomics.h | 49 ++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/guest_atomics.h

diff --git a/xen/arch/riscv/include/asm/guest_atomics.h b/xen/arch/riscv/include/asm/guest_atomics.h
new file mode 100644
index 0000000000..98f7df7b6a
--- /dev/null
+++ b/xen/arch/riscv/include/asm/guest_atomics.h
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_GUEST_ATOMICS_H
+#define __ASM_RISCV_GUEST_ATOMICS_H
+
+#define guest_testop(name)                                                  \
+static inline int guest_##name(struct domain *d, int nr, volatile void *p)  \
+{                                                                           \
+    (void) d;                                                               \
+    (void) nr;                                                              \
+    (void) p;                                                               \
+                                                                            \
+    ASSERT_UNREACHABLE();                                                   \
+                                                                            \
+    return 0;                                                               \
+}
+
+#define guest_bitop(name)                                                   \
+static inline void guest_##name(struct domain *d, int nr, volatile void *p) \
+{                                                                           \
+    (void) d;                                                               \
+    (void) nr;                                                              \
+    (void) p;                                                               \
+    ASSERT_UNREACHABLE();                                                   \
+}
+
+guest_bitop(set_bit)
+guest_bitop(clear_bit)
+guest_bitop(change_bit)
+
+#undef guest_bitop
+
+guest_testop(test_and_set_bit)
+guest_testop(test_and_clear_bit)
+guest_testop(test_and_change_bit)
+
+#undef guest_testop
+
+#define guest_test_bit(d, nr, p) ((void)(d), test_bit(nr, p))
+
+#endif /* __ASM_RISCV_GUEST_ATOMICS_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659408.1028998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDL-0007QL-G3; Fri, 22 Dec 2023 15:13:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659408.1028998; Fri, 22 Dec 2023 15:13:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDL-0007OL-CD; Fri, 22 Dec 2023 15:13:27 +0000
Received: by outflank-mailman (input) for mailman id 659408;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDK-0007Ie-IC
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:26 +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 a7206e26-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:25 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-50e70583191so93566e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:25 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7206e26-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258004; x=1703862804; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SyAi66B5lJY94tJWtmKWdmtOpI6CB1uTFL6t5fi0m/g=;
        b=Rons/20rjHGfl/fPOMzvE0aHDMwx2GxooaFf18i49f/3t3n7RHJ+c41NAWa/QMmJds
         itHEYXYzSilRuXGZDM8ZI4azLWsi300MCdINmtlgWCNJ06qHe6m6MHeJA1Him/kqK5zW
         Y3NeZIe85yIahpigB30uNlFpMv2SjO0UObjdT1mmXv9Bzrgi287SxI8nYJAhV7uc+qkI
         JdAjqwkuGHC7fHHmVynvwrjLDGPQIPoW6PqNcP0nY6Tmg2VIlx8nAMdmDKeWmdYTQlOZ
         FPvtYsywu8XvehBJWoZidpRSANdFrcnRscglzDqTLmY+FkOIu+vfju8K38vw+VWzO7pV
         6pBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258004; x=1703862804;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=SyAi66B5lJY94tJWtmKWdmtOpI6CB1uTFL6t5fi0m/g=;
        b=W2YVLsflFnC/AI5hizB34o99Qf9dwSvzi5FyMXxlX8iYQcAl0Ks0VJmhkIJZiVZdNZ
         KUFWNmQJPblbT9uB/Ev2BIpgP8aKeUyOQBzrIC8cPIq5kH1cZPTn9PFYL7uH86SHhLdD
         tDa2lC9olJTBXyiefy1rpixNTsx01WBAlG8PCMoJNU2U5s+8NbFSi1T6fQw13UDvjGkI
         DVE8lkKNFU1pn0juKbPPNMbpmeuwTz5+lke+UXNR35i7AH+7gNU9Mn+Y02Y+1qeg0x+g
         25rJWKP4ocNXISEXKwDtaAH1azLEn4Y4SCzYKK9jsj8ZHAhm+z8i04vNLEimpJPWu1Lq
         bxUA==
X-Gm-Message-State: AOJu0YxfdLwlTlrERDrSVsgZUhx99etqKz56lKei9NFoidIgr4lb56Bj
	KXUi7YJoFuWG9iLDb/y5cip3Jt45Txg=
X-Google-Smtp-Source: AGHT+IEs+7oMk9zQ5GgSxjUfE24HdOn2Y1G6Urt5uFHmiLl/OsPtyoUC9y51SQjsL9FLWz+ePFoRPw==
X-Received: by 2002:ac2:4d12:0:b0:50e:3b1:bf45 with SMTP id r18-20020ac24d12000000b0050e03b1bf45mr705673lfi.18.1703258004475;
        Fri, 22 Dec 2023 07:13:24 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 02/34] xen/riscv: use some asm-generic headers
Date: Fri, 22 Dec 2023 17:12:46 +0200
Message-ID: <78a86aa86645c4c23a6294900385264c17a48864.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some headers are the same as asm-generic verions of them
so use them instead of arch-specific headers.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 As [PATCH v6 0/9] Introduce generic headers
 (https://lore.kernel.org/xen-devel/cover.1703072575.git.oleksii.kurochko@gmail.com/)
 is not stable, the list in asm/Makefile can be changed, but the changes will
 be easy.
---
Changes in V3:
 - remove monitor.h from the RISC-V asm/Makefile list.
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V2:
 - New commit introduced in V2.
---
 xen/arch/riscv/include/asm/Makefile | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/Makefile

diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
new file mode 100644
index 0000000000..adb752b804
--- /dev/null
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: GPL-2.0-only
+generic-y += altp2m.h
+generic-y += device.h
+generic-y += div64.h
+generic-y += hardirq.h
+generic-y += hypercall.h
+generic-y += iocap.h
+generic-y += numa.h
+generic-y += paging.h
+generic-y += percpu.h
+generic-y += random.h
+generic-y += softirq.h
+generic-y += vm_event.h
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659406.1028990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDL-0007J2-1D; Fri, 22 Dec 2023 15:13:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659406.1028990; Fri, 22 Dec 2023 15:13:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDK-0007Iv-UG; Fri, 22 Dec 2023 15:13:26 +0000
Received: by outflank-mailman (input) for mailman id 659406;
 Fri, 22 Dec 2023 15:13:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDJ-0007Ie-HM
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13: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 a6475537-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:23 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-50e6d802507so274045e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:23 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6475537-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258003; x=1703862803; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aUowHZBO2nKGCuJs3sPxh/R77AFxLnhXhueIKgvrApM=;
        b=Gjc2YyuFkoMVS0OBAeNIKBL0uiGHUVamJGP68ZxS9q0niCSrFrWJP+6Nwg8htS4lZI
         DkaPW9n4WV81RW5+DZSBpvrk311er3IcY5/ms79HzY+y8KluyRfxoe4w1yzdEbJhMnI7
         0o8w7JoRGOkpRzUWfcG4C+w2gfRJrSrCd81JScLvIKbc73uXNRezl8mLKFwBHKImj4lv
         ewF9NFsDp1+dlL2BAt+1rNCIt8TdfUEVTOvaayZcJWeihSGHBvuhJpg4+oqAM3kfY5Kz
         IcSAR/yoVqcJl/hz/mTgJNngCJEpu1ud7Vrh5RRXED9FhYd06C+KNI2pslyexonOhQng
         UM4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258003; x=1703862803;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=aUowHZBO2nKGCuJs3sPxh/R77AFxLnhXhueIKgvrApM=;
        b=qAZjEkTyVuiF/uT+2RQwCOVvJQGqA2r2upJg6sISBrjZqnSjupb1H+B7kUeY3uBbF7
         fRb6j4gDTnpiuzhpiRwpq59xrnjlNnOz6Nm3dJPoWyGasCfaqj2BUf+TMcORaENYqnnt
         sC8nq8jBy86egXY1ArJGkMLtxQvj7UVa71CMuYtEpx7bJjinnNXS6f2VbenFRoL1Bsj/
         +Ntpio4SmCqLcbJAN70/MvJkuI9AMU2TvdizJMNr1GqbtODhFPc2EcoORzEdym5FN5Qr
         DlPPRdDXN1zsFL4Sj2DXcWacGfUar8ZRkLSZZzictA06AIRRp9AV1+F2FGbLHqi7brQV
         n+gg==
X-Gm-Message-State: AOJu0Yzes1O9R6/nexyewqZ74bHS1CqeaCQFopcylmtkyXZhvdvJbxhu
	48yyH9/Qo3PbLYyLumpL4hKdiqTof1U=
X-Google-Smtp-Source: AGHT+IFozsh/kiyobZ4kDQYj+0L75QU4g1ERaPe2rKw2zh5mHWUkxXda334d+R1Yp45yknRXl8H6+w==
X-Received: by 2002:a05:6512:2fc:b0:50e:242a:775e with SMTP id m28-20020a05651202fc00b0050e242a775emr796416lfq.106.1703258002781;
        Fri, 22 Dec 2023 07:13:22 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v3 01/34] xen/riscv: disable unnecessary configs
Date: Fri, 22 Dec 2023 17:12:45 +0200
Message-ID: <76eeb5b411ccab16ba9696132d6962c169cbf131.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch disables unnecessary configs for two cases:
1. By utilizing EXTRA_FIXED_RANDCONFIG and risc-fixed-randconfig.yaml
   file for randconfig builds (GitLab CI jobs).
2. By using tiny64_defconfig for non-randconfig builds.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - Remove EXTRA_FIXED_RANDCONFIG for non-randconfig jobs.
   For non-randconfig jobs, it is sufficient to disable configs by using the defconfig.
 - Remove double blank lines in build.yaml file before archlinux-current-gcc-riscv64-debug
---
Changes in V2:
 - update the commit message.
 - remove xen/arch/riscv/Kconfig changes.
---
 .../gitlab-ci/riscv-fixed-randconfig.yaml     | 27 +++++++++++++++++++
 xen/arch/riscv/configs/tiny64_defconfig       | 17 ++++++++++++
 2 files changed, 44 insertions(+)

diff --git a/automation/gitlab-ci/riscv-fixed-randconfig.yaml b/automation/gitlab-ci/riscv-fixed-randconfig.yaml
index f1282b40c9..344f39c2d8 100644
--- a/automation/gitlab-ci/riscv-fixed-randconfig.yaml
+++ b/automation/gitlab-ci/riscv-fixed-randconfig.yaml
@@ -5,3 +5,30 @@
       CONFIG_EXPERT=y
       CONFIG_GRANT_TABLE=n
       CONFIG_MEM_ACCESS=n
+      CONFIG_COVERAGE=n
+      CONFIG_SCHED_CREDIT=n
+      CONFIG_SCHED_CREDIT2=n
+      CONFIG_SCHED_RTDS=n
+      CONFIG_SCHED_NULL=n
+      CONFIG_SCHED_ARINC653=n
+      CONFIG_TRACEBUFFER=n
+      CONFIG_HYPFS=n
+      CONFIG_SPECULATIVE_HARDEN_ARRAY=n
+      CONFIG_ARGO=n
+      CONFIG_HYPFS_CONFIG=n
+      CONFIG_CORE_PARKING=n
+      CONFIG_DEBUG_TRACE=n
+      CONFIG_IOREQ_SERVER=n
+      CONFIG_CRASH_DEBUG=n
+      CONFIG_KEXEC=n
+      CONFIG_LIVEPATCH=n
+      CONFIG_NUMA=n
+      CONFIG_PERF_COUNTERS=n
+      CONFIG_HAS_PMAP=n
+      CONFIG_TRACEBUFFER=n
+      CONFIG_XENOPROF=n
+      CONFIG_COMPAT=n
+      CONFIG_COVERAGE=n
+      CONFIG_UBSAN=n
+      CONFIG_NEEDS_LIBELF=n
+      CONFIG_XSM=n
diff --git a/xen/arch/riscv/configs/tiny64_defconfig b/xen/arch/riscv/configs/tiny64_defconfig
index 09defe236b..35915255e6 100644
--- a/xen/arch/riscv/configs/tiny64_defconfig
+++ b/xen/arch/riscv/configs/tiny64_defconfig
@@ -7,6 +7,23 @@
 # CONFIG_GRANT_TABLE is not set
 # CONFIG_SPECULATIVE_HARDEN_ARRAY is not set
 # CONFIG_MEM_ACCESS is not set
+# CONFIG_ARGO is not set
+# CONFIG_HYPFS_CONFIG is not set
+# CONFIG_CORE_PARKING is not set
+# CONFIG_DEBUG_TRACE is not set
+# CONFIG_IOREQ_SERVER is not set
+# CONFIG_CRASH_DEBUG is not setz
+# CONFIG_KEXEC is not set
+# CONFIG_LIVEPATCH is not set
+# CONFIG_NUMA is not set
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_HAS_PMAP is not set
+# CONFIG_TRACEBUFFER is not set
+# CONFIG_XENOPROF is not set
+# CONFIG_COMPAT is not set
+# CONFIG_COVERAGE is not set
+# CONFIG_UBSAN is not set
+# CONFIG_NEEDS_LIBELF is not set
 
 CONFIG_RISCV_64=y
 CONFIG_DEBUG=y
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659407.1028995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDL-0007Ku-9m; Fri, 22 Dec 2023 15:13:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659407.1028995; Fri, 22 Dec 2023 15:13:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDL-0007KW-4q; Fri, 22 Dec 2023 15:13:27 +0000
Received: by outflank-mailman (input) for mailman id 659407;
 Fri, 22 Dec 2023 15:13:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDJ-0007Ie-OS
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:25 +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 a627a4ab-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:23 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ccaf5955aeso4103971fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:23 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a627a4ab-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258002; x=1703862802; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=xAX5vYsxQNw32fik7G3mdyj6qy5Jhcwz9IRIZs83x3s=;
        b=IvVgdBLWTrDdHA1OjctiAombrbAfl4lOtavsxGGKKlhSsD/TcJgwS/3+DShswY/oA0
         9/7thIX5/mb7FRwq0hJvAHUhoG5gFYp2rZaV3TinxqpaZz8LTyw8yD7+HreF4gsUYKup
         WaV0UENjdb1Iz5iVmpqGy8zlRKU2DS5PgLMy36thFcb9GsSMRGkFNoziuP0lJwgFJvb9
         tyvndXbrLLEnTfvktdcMLUiBbg0Kkbt+u4E1PM1OTL2NB8kBB1bOyCJPwDu6HDnQrjPK
         PGxR0ejycW5KjOOfzxJ70s21TV4/curkKyZtZDaPU4v7o5TMlAIP46arXdMzaNtJ1LmR
         1KrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258002; x=1703862802;
        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=xAX5vYsxQNw32fik7G3mdyj6qy5Jhcwz9IRIZs83x3s=;
        b=pDCv0qTtLPtwdJcBcOf/mMtrYsVTVCrVxFatlM0W9av7XWcLYDwFQ1H9kQOZk2tzoJ
         diGKzRaYa93fyX/CjDrkdh7EPaEncjnmCmGusQ0dDlzXp92/3o8rZJFegpnTqf3NLIOf
         ImoJwukKYcYDbCBz9Gsyht9A3Evej2dz40LEWDhrFgVBsqLXVFEb4qMwl4qlJ+UJDABs
         mJku4BFKew3Yh88+rzaLYE0vazTblICO8XEv7Pig8OeuRjDk8bHi1wFlxHtoGEceF62e
         izIJgo7qnoHcLmknSFHPzfIKei4dRLYGcpRLRf1P5+mIRuen4g5yHF+GO2ToP0UDr0Uf
         lWaA==
X-Gm-Message-State: AOJu0Yw9XTQza4QK5D4CMQjZuHql8y1nYKVcP+HMv/xiaQsAzVne95B1
	cxTQ4mMW1yJQPOoX5sUp29cvON42Oqw=
X-Google-Smtp-Source: AGHT+IEfeNjw0wKkk4eV2sqYb2+OdBWdHBDb9OzLkhYEOwUHsVjkX8IIxVTUkNc1GGvH87pOX39uLA==
X-Received: by 2002:ac2:4882:0:b0:50e:3203:957a with SMTP id x2-20020ac24882000000b0050e3203957amr732422lfc.101.1703258002070;
        Fri, 22 Dec 2023 07:13:22 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Wei Liu <wl@xen.org>,
	Paul Durrant <paul@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>
Subject: [PATCH v3 00/34]  Enable build of full Xen for RISC-V
Date: Fri, 22 Dec 2023 17:12:44 +0200
Message-ID: <cover.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
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 v6 0/9] Introduce generic headers   [1]
- [PATCH] move __read_mostly to xen/cache.h  [2]

Right now, the patch series doesn't have a direct dependency on [2] and it
provides __read_mostly in the patch:
    [PATCH v3 26/34] xen/riscv: add definition of __read_mostly
However, it will be dropped as soon as [2] is merged or at least when the
final version of the patch [2] is provided.

[1] https://lore.kernel.org/xen-devel/cover.1703072575.git.oleksii.kurochko@gmail.com/
[2] https://lore.kernel.org/xen-devel/f25eb5c9-7c14-6e23-8535-2c66772b333e@suse.com/
 
---
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.
---

Bobby Eshleman (1):
  xen/riscv: introduce atomic.h

Oleksii Kurochko (33):
  xen/riscv: disable unnecessary configs
  xen/riscv: use some asm-generic headers
  xen: add support in public/hvm/save.h for PPC and RISC-V
  xen/riscv: introduce cpufeature.h
  xen/riscv: introduce guest_atomics.h
  xen: avoid generation of empty asm/iommu.h
  xen/asm-generic: introdure nospec.h
  xen/riscv: introduce setup.h
  xen/riscv: introduce system.h
  xen/riscv: introduce bitops.h
  xen/riscv: introduce flushtlb.h
  xen/riscv: introduce smp.h
  xen/riscv: introduce cmpxchg.h
  xen/riscv: introduce io.h
  xen/lib: introduce generic find next bit operations
  xen/riscv: add compilation of generic find-next-bit.c
  xen/riscv: introduce domain.h
  xen/riscv: introduce guest_access.h
  xen/riscv: introduce irq.h
  xen/riscv: introduce p2m.h
  xen/riscv: introduce regs.h
  xen/riscv: introduce time.h
  xen/riscv: introduce event.h
  xen/riscv: introduce monitor.h
  xen/riscv: add definition of __read_mostly
  xen/riscv: define an address of frame table
  xen/riscv: add required things to current.h
  xen/riscv: add minimal stuff to page.h to build full Xen
  xen/riscv: add minimal stuff to processor.h to build full Xen
  xen/riscv: add minimal stuff to mm.h to build full Xen
  xen/rirscv: 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

 README                                        |   3 +
 .../gitlab-ci/riscv-fixed-randconfig.yaml     |  27 +
 xen/arch/arm/include/asm/Makefile             |   1 +
 xen/arch/ppc/include/asm/Makefile             |   1 +
 xen/arch/ppc/include/asm/nospec.h             |  15 -
 xen/arch/ppc/include/asm/p2m.h                |   3 +-
 xen/arch/riscv/Kconfig                        |   1 +
 xen/arch/riscv/Makefile                       |  17 +-
 xen/arch/riscv/arch.mk                        |   4 -
 xen/arch/riscv/configs/tiny64_defconfig       |  18 +
 xen/arch/riscv/early_printk.c                 | 168 ------
 xen/arch/riscv/include/asm/Makefile           |  14 +
 xen/arch/riscv/include/asm/atomic.h           | 384 ++++++++++++++
 xen/arch/riscv/include/asm/bitops.h           | 267 ++++++++++
 xen/arch/riscv/include/asm/cache.h            |   2 +
 xen/arch/riscv/include/asm/cmpxchg.h          | 496 ++++++++++++++++++
 xen/arch/riscv/include/asm/config.h           |  87 +--
 xen/arch/riscv/include/asm/cpufeature.h       |  23 +
 xen/arch/riscv/include/asm/current.h          |  19 +
 xen/arch/riscv/include/asm/domain.h           |  53 ++
 xen/arch/riscv/include/asm/event.h            |  40 ++
 xen/arch/riscv/include/asm/fence.h            |  22 +
 xen/arch/riscv/include/asm/flushtlb.h         |  33 ++
 xen/arch/riscv/include/asm/guest_access.h     |  29 +
 xen/arch/riscv/include/asm/guest_atomics.h    |  49 ++
 xen/arch/riscv/include/asm/io.h               | 142 +++++
 xen/arch/riscv/include/asm/irq.h              |  37 ++
 xen/arch/riscv/include/asm/mm.h               | 249 ++++++++-
 xen/arch/riscv/include/asm/monitor.h          |  26 +
 xen/arch/riscv/include/asm/p2m.h              | 102 ++++
 xen/arch/riscv/include/asm/page.h             |  22 +
 xen/arch/riscv/include/asm/processor.h        |  15 +
 xen/arch/riscv/include/asm/regs.h             |  29 +
 xen/arch/riscv/include/asm/setup.h            |  17 +
 xen/arch/riscv/include/asm/smp.h              |  28 +
 xen/arch/riscv/include/asm/system.h           |  90 ++++
 xen/arch/riscv/include/asm/time.h             |  29 +
 xen/arch/riscv/mm.c                           |  52 +-
 xen/arch/riscv/setup.c                        |   9 +-
 xen/arch/riscv/stubs.c                        | 422 +++++++++++++++
 xen/arch/riscv/traps.c                        |  25 +
 xen/common/Kconfig                            |   3 +
 xen/include/asm-generic/bitops/bitops-bits.h  |  10 +
 xen/include/asm-generic/bitops/ffs.h          |   9 +
 xen/include/asm-generic/bitops/ffz.h          |  13 +
 .../asm-generic/bitops/find-first-bit-set.h   |  17 +
 xen/include/asm-generic/bitops/fls.h          |  18 +
 xen/include/asm-generic/bitops/flsl.h         |  10 +
 xen/include/asm-generic/bitops/hweight.h      |  13 +
 xen/include/asm-generic/bitops/test-bit.h     |  16 +
 .../asm => include/asm-generic}/nospec.h      |  10 +-
 xen/include/public/hvm/save.h                 |   4 +-
 xen/include/xen/iommu.h                       |   4 +
 xen/lib/Makefile                              |   1 +
 xen/lib/find-next-bit.c                       | 281 ++++++++++
 55 files changed, 3248 insertions(+), 231 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/nospec.h
 create mode 100644 xen/arch/riscv/include/asm/Makefile
 create mode 100644 xen/arch/riscv/include/asm/atomic.h
 create mode 100644 xen/arch/riscv/include/asm/bitops.h
 create mode 100644 xen/arch/riscv/include/asm/cmpxchg.h
 create mode 100644 xen/arch/riscv/include/asm/cpufeature.h
 create mode 100644 xen/arch/riscv/include/asm/domain.h
 create mode 100644 xen/arch/riscv/include/asm/event.h
 create mode 100644 xen/arch/riscv/include/asm/fence.h
 create mode 100644 xen/arch/riscv/include/asm/flushtlb.h
 create mode 100644 xen/arch/riscv/include/asm/guest_access.h
 create mode 100644 xen/arch/riscv/include/asm/guest_atomics.h
 create mode 100644 xen/arch/riscv/include/asm/io.h
 create mode 100644 xen/arch/riscv/include/asm/irq.h
 create mode 100644 xen/arch/riscv/include/asm/monitor.h
 create mode 100644 xen/arch/riscv/include/asm/p2m.h
 create mode 100644 xen/arch/riscv/include/asm/regs.h
 create mode 100644 xen/arch/riscv/include/asm/setup.h
 create mode 100644 xen/arch/riscv/include/asm/smp.h
 create mode 100644 xen/arch/riscv/include/asm/system.h
 create mode 100644 xen/arch/riscv/include/asm/time.h
 create mode 100644 xen/arch/riscv/stubs.c
 create mode 100644 xen/include/asm-generic/bitops/bitops-bits.h
 create mode 100644 xen/include/asm-generic/bitops/ffs.h
 create mode 100644 xen/include/asm-generic/bitops/ffz.h
 create mode 100644 xen/include/asm-generic/bitops/find-first-bit-set.h
 create mode 100644 xen/include/asm-generic/bitops/fls.h
 create mode 100644 xen/include/asm-generic/bitops/flsl.h
 create mode 100644 xen/include/asm-generic/bitops/hweight.h
 create mode 100644 xen/include/asm-generic/bitops/test-bit.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/nospec.h (54%)
 create mode 100644 xen/lib/find-next-bit.c

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659409.1029021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDM-000818-Vn; Fri, 22 Dec 2023 15:13:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659409.1029021; Fri, 22 Dec 2023 15: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 1rGhDM-00080z-Qx; Fri, 22 Dec 2023 15:13:28 +0000
Received: by outflank-mailman (input) for mailman id 659409;
 Fri, 22 Dec 2023 15: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDL-0007Ie-IS
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:27 +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 a7fa042d-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:26 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-50e23a4df33so2371240e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:26 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7fa042d-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258005; x=1703862805; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q7SmAyTwycWnBFtqziUqjlJBihdnpppcqA9m96DtbMc=;
        b=X72ZtPpqeoDZ2pUtAuANe0QNbVsnMrqL+jbGyABGV4tw2cyeBMLXjqQWn06m9Iy9FB
         WUZ3J2yHHra32EK1L+hSx9am4EyFfU2v6Brmskh2a9WxtioE6uDnycod8ug5/2eoDF5T
         L78vJfs2fRigNLPxGAOKL/+wDBLa8ViifOVVvaXXqV6G6Xr6R64D2066bPWWkhGPdqfP
         bsMlvSHwb+Y3xx6bVENcQZWw3qm25fu+w+p37Cmh8Shs3Jdi+swfv1p28rbHKG89O3rP
         FrFM87RX3EuZbPOvqP87NQASpN8g4ayWXDlJp4TRIitd770RXfqzO2ZYHIXMMX8EK3ci
         USEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258005; x=1703862805;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Q7SmAyTwycWnBFtqziUqjlJBihdnpppcqA9m96DtbMc=;
        b=g7ZaNyRFFJZERS8G75vOn1/7kscLv2pUAzFtDeTC3UPqKTJSih05LG/Tme4vAjIgzz
         M+wMIYs4OcCkwoddkKl2q7ASTxtNn0nbGRJxOEyhQQxTAJnuDQJ+HVznwJ2jv0GhiF6i
         gVkg8tF++QrI088+PliJ+e1aBwUuJljBYIHjHsJF8lC4n0W78u1IMWai8cqSZsyf9QK3
         JnXkxizpcvUx73zAc7W2SX9nBBV0GLWkSI+GzatNmn8HfpJ0fUE0jgyE///CtSVvP5fd
         wYctLBRjBMdU77TkhlBj7l8Zbuu7i74C4nsB4CX1+HRLDkBsZCWWym91pJOcQdT8KrLb
         Y05A==
X-Gm-Message-State: AOJu0YyJHfdu8UDLs190ELJkyVn8JKewLrGLxc/DUj5ee0XOmEZr7qkM
	vPeUc4GSkGPNxWOj5uuWfnsgroSYyZM=
X-Google-Smtp-Source: AGHT+IHgHxM1xGEAQQ67wYezLFGntkZN9EtMYGLYuehj4OEH1qMoVySq3ReRud6cSsGny182TC0PBw==
X-Received: by 2002:a05:6512:473:b0:50e:70b1:9544 with SMTP id x19-20020a056512047300b0050e70b19544mr33033lfd.111.1703258005428;
        Fri, 22 Dec 2023 07:13:25 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 03/34] xen: add support in public/hvm/save.h for PPC and RISC-V
Date: Fri, 22 Dec 2023 17:12:47 +0200
Message-ID: <365d4ab4591129af3a52176d991146b2f64f944b.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - update the commit message.
 - For PPC and RISC-V nothing to include in public/hvm/save.h, so just comment was
   added.
---
Changes in V2:
 - remove copyright an the top of hvm/save.h as the header write now is a newly
   introduced empty header.
---
 xen/include/public/hvm/save.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/include/public/hvm/save.h b/xen/include/public/hvm/save.h
index ff0048e5f8..31b5cd163b 100644
--- a/xen/include/public/hvm/save.h
+++ b/xen/include/public/hvm/save.h
@@ -89,8 +89,8 @@ DECLARE_HVM_SAVE_TYPE(END, 0, struct hvm_save_end);
 #include "../arch-x86/hvm/save.h"
 #elif defined(__arm__) || defined(__aarch64__)
 #include "../arch-arm/hvm/save.h"
-#elif defined(__powerpc64__)
-#include "../arch-ppc.h"
+#elif defined(__powerpc64__) || defined(__riscv)
+/* no specific header to include */
 #else
 #error "unsupported architecture"
 #endif
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659413.1029054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDR-0000Qu-1Y; Fri, 22 Dec 2023 15:13:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659413.1029054; Fri, 22 Dec 2023 15:13:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDQ-0000QH-Tr; Fri, 22 Dec 2023 15:13:32 +0000
Received: by outflank-mailman (input) for mailman id 659413;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDQ-0000EM-4g
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:32 +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 aa03252b-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:30 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-50e2d00f99cso2277740e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:30 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa03252b-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258009; x=1703862809; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ODGnSpcmOiq+z7wR2YwRtk5YCjWAFHvC/ahjEF0s2+M=;
        b=KSHKBWvcqsyGVCrR4WSbi9IGM8/kFD6vWZ+friUtYacav88cfUk4aEWpRJbh1hLAZd
         7jMetzOK1e8WkEcjt0pVDDj5NOvCmVR1jK9KMsrp49qx2BfLsZRF1k5RwSpN+Lsu0tYe
         ndRbEZTl7y76FHzJ+cakpvNjfqZhRo6S0gF+07RJRor1TjaN7lV7v+h2EVwQGBIrHldN
         Qd7vIP1w54vGI/GPBSUpeGqRMPqGY7G0GZ+vxGF0Bpyc8i5exqfJROtnE3T9kM1bTCOa
         jqlF0umxqTrONYhEjksbRq8+s3ta19llqP4HKtLCQ1Wm9zyMkufUpbudlaUtmY5kDnWA
         cuwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258009; x=1703862809;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ODGnSpcmOiq+z7wR2YwRtk5YCjWAFHvC/ahjEF0s2+M=;
        b=k5j4uAvRvoGD7RCXOQ0akzaIODrmtFkAH1HEa1DjKDQ7WjhWo8Mi3yS4EqEeTbZB6E
         B1Z7nKN8EyrC/gsc7p9GOdGNttiRHzE+a04BeSOJeHFhSlOqgONGSP9ZVQyMDZzBTq88
         9IZ7098S3qGu1+xt9wPel3V7noB4bvU4Z7LWe4dgYCPAEwdJuZfeJSwOdHV2MSMyE3VH
         FA+i1oGyh3DF0paw6Y/YvFoKcrNoxjq1DVR0xeIlfcXaZVdQmg1D5V2bvn+3tnWucTlN
         EHwYjvU6fLn3YiWGXGgRo2vDh3lr43Uzl3zQE/C2hmMfA9SaY+jmx1+s6NBQeTwynOxQ
         56Dg==
X-Gm-Message-State: AOJu0Yzz6t+jQUcZjYH46TltoFUm9enwoblzEKth6PnZFGwan209rsvj
	zwG0K1mjTbnZ8lQIavssr57KUAkK1pU=
X-Google-Smtp-Source: AGHT+IFpP2s6FBrAszxGjeeeFDkJndwkLyAsxHilcAwkZ/ITbUpLCmVdmFBej49keZF8X+HFho+ahw==
X-Received: by 2002:a05:6512:1252:b0:50e:6f8a:777b with SMTP id fb18-20020a056512125200b0050e6f8a777bmr114341lfb.66.1703258009530;
        Fri, 22 Dec 2023 07:13:29 -0800 (PST)
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>,
	Paul Durrant <paul@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 06/34] xen: avoid generation of empty asm/iommu.h
Date: Fri, 22 Dec 2023 17:12:50 +0200
Message-ID: <e2a51f6197fce8f2ad636885ed231a6725d4cd8a.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - new patch.
---
 xen/include/xen/iommu.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index f53d045e2c..8adbf29d3b 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -337,7 +337,9 @@ extern int iommu_add_extra_reserved_device_memory(unsigned long start,
 extern int iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,
                                                   void *ctxt);
 
+#ifdef CONFIG_HAS_PASSTHROUGH
 #include <asm/iommu.h>
+#endif
 
 #ifndef iommu_call
 # define iommu_call(ops, fn, args...) ((ops)->fn(args))
@@ -345,7 +347,9 @@ extern int iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,
 #endif
 
 struct domain_iommu {
+#ifdef CONFIG_HAS_PASSTHROUGH
     struct arch_iommu arch;
+#endif
 
     /* iommu_ops */
     const struct iommu_ops *platform_ops;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659414.1029070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDS-0000vR-Rd; Fri, 22 Dec 2023 15:13:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659414.1029070; Fri, 22 Dec 2023 15: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 1rGhDS-0000uP-MP; Fri, 22 Dec 2023 15:13:34 +0000
Received: by outflank-mailman (input) for mailman id 659414;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDR-0000EM-Ql
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:33 +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 ab4a177e-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:32 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-50e23a4df33so2371372e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:32 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab4a177e-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258012; x=1703862812; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+eaEZv1HAryfktopbeuG1TkzSBp8f/+fjRQtadDNTpU=;
        b=XRLsqj3EhiSptDcllQbmIYd60N/YxOMkfa2Vqa8h51WnG823WGeSdyBzYEzLDsyw7R
         yaAihnj636sSYv3940f0hYMB4oqwVQIF/WBaVGuP59kZqHwuUUySKmUtJhU+JDEc3w5z
         pqlwJwDxXPH19wKoI7UgY1Rh9UohsX21M2SuTVFeUFYBx9EpZ783JZfx8c7pX+LiuxLq
         0zoOrQdlOj1YmR4A8SlltaCOKNvUihXJmDDv0LbVsnkf3XWO1g1IT7i3XPLZFZfHmO1P
         kysqGdyHjHJ5bFSt3m7i6FFjGa0xEmuPL5ZlJm3FJ0GrTWF0fnZH30VvWLFSvQIsCuCH
         ctog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258012; x=1703862812;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+eaEZv1HAryfktopbeuG1TkzSBp8f/+fjRQtadDNTpU=;
        b=VRFkcRvvTLcdod4fZF4d14P+xx75saRd8JiQQny8MJgKybUTOXWiUOyUieqH44gRA4
         uWsejXL1c92EmBvFcY4iMMMgSu73z8ePCQLHnFpAU96qkqDBX6HFO2MAcPIQUEHIA7NO
         UnH3xPfVUe4q/zZ9QXpXP+b4JniRjZ47JXvm9VWoXpjsipBNamLrN2nYNbdMl4t0YgA6
         0l/NJUsqQURWS3sHvvHnJHFF5dqCIxY8c5VrCDA36pxCbLo743lNlVC1BBilhnlp95Ww
         6ztkBRQBRDwV4J8F+VUrBwF92mUDW2++N5tpfOWu0Lez0NHJY/UwRf07Wd/8AkrkhbMs
         Aqfg==
X-Gm-Message-State: AOJu0YzTarq2VaToN/hIRfOcBPbcwCSDdulL9WX4vZ8dE2tCYbPiCQle
	RBmKFw+hGIBkkqU0QTrBsUgk3cvu6As=
X-Google-Smtp-Source: AGHT+IH02Zn02LKE6rJvcATfF64zsSsyjcmJ0IcyqBiCbXVbnT80WpfpJ9Rbg/QWuwsok7HmX/X52w==
X-Received: by 2002:a05:6512:20cc:b0:50e:6a09:a391 with SMTP id u12-20020a05651220cc00b0050e6a09a391mr534860lfr.24.1703258011670;
        Fri, 22 Dec 2023 07:13:31 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 08/34] xen/riscv: introduce setup.h
Date: Fri, 22 Dec 2023 17:12:52 +0200
Message-ID: <3fe0275a5a9c73559b77d218b1853d2bd3464b79.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.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 V3:
 - add SPDX
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/setup.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/setup.h

diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
new file mode 100644
index 0000000000..7613a5dbd0
--- /dev/null
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ASM_RISCV_SETUP_H__
+#define __ASM_RISCV_SETUP_H__
+
+#define max_init_domid (0)
+
+#endif /* __ASM_RISCV_SETUP_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659412.1029050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDQ-0000NI-OB; Fri, 22 Dec 2023 15:13:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659412.1029050; Fri, 22 Dec 2023 15:13: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 1rGhDQ-0000N1-JM; Fri, 22 Dec 2023 15:13:32 +0000
Received: by outflank-mailman (input) for mailman id 659412;
 Fri, 22 Dec 2023 15: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDQ-0007Ie-3c
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:32 +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 aae1dd13-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:31 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-50e6bcca684so531274e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:31 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aae1dd13-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258010; x=1703862810; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4+kt5AigK7rVqFmhurbl+e1IZXdwgqzAuGxn4PNWXw8=;
        b=RHKBE9OuHMf4jkEAwNGZF37qfKCJXU8RuCJANgnxGSRU+Zp4a4U7IkQrDLKpX+e5Vy
         Be/IJXtvG8Iuyk2FvM5UTwr2MkfMpM04FLDPP0wW1qOzsQtTlYS6qiVkL4ciZeSfuq+c
         Vh+kCyOJ5ecOFIU9XwDCi+1/1hUKg8Yd1O1XknIdKEQvuHCqVxOW/xXabfkkUfhMvlJ/
         yF7UkLQtPx5ZPm7wjkjK5bghX5d9wnxIKs+roDetweRDbNEm5d+xxudK6QfzEygXG9q/
         9zLQpixjRn5rcNiZkGaMJG491Mui3JCuNGo/bgYjt9h/ADCSbX6cH3/3bvLO0gtR94sw
         AEJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258010; x=1703862810;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4+kt5AigK7rVqFmhurbl+e1IZXdwgqzAuGxn4PNWXw8=;
        b=A4BIy3Uj1k2HDAge8W5ZWis5SoaOY3mhX9KUv0Ws9O5WGEcZVUA8mYCdFu2lUdUJFD
         ubhd9LRPKXRHGqCQLS0juTI3zOCmKJvPi5+ZICxdySMkegLgzC/sRHzIuA25ZCifYPiR
         0hKZ6Z7mo5Ti08eVhaB03nbbeLnQ5P91FcT3cFS2hy2Ev0SNu14eOYnKfVdlqLaHnuel
         gcXi/dKIHjfnTFqqHS8MQZEsfO1Lsx6HlZ/hQXTmzz/lFk0B1hUZTCn5gmxFzA1EcbPE
         kb3YfL1dxCTdQ9n/x84Oor1mS9lrn34CY84DdpTzLnrv9l5/T9bhQa+G/SLpIwYqKuQ3
         wAqw==
X-Gm-Message-State: AOJu0Yx8fKEr/+/qCXR+8Y5zwM2c2PwAyRvSk8iMgNZc+ECOzls2CCqf
	lFnggAneZcNbnMRWAukZzkOMm7UmwqI=
X-Google-Smtp-Source: AGHT+IFnHS146v3pWVOKbv24Ye76LXeE/ahHJ1qCkyDhXubqUwiTb8fSXnpsOXcKj6SZtVRuNyqcig==
X-Received: by 2002:a19:7703:0:b0:50e:6f89:a149 with SMTP id s3-20020a197703000000b0050e6f89a149mr52393lfc.11.1703258010408;
        Fri, 22 Dec 2023 07:13:30 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Wei Liu <wl@xen.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v3 07/34] xen/asm-generic: introdure nospec.h
Date: Fri, 22 Dec 2023 17:12:51 +0200
Message-ID: <a1360d3de3da8757c69f11c3fafd99ff65654ae8.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The <asm/nospec.h> header is similar between Arm, PPC, and RISC-V,
so it has been moved to asm-generic.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - new patch.
---
 xen/arch/arm/include/asm/Makefile                 |  1 +
 xen/arch/ppc/include/asm/Makefile                 |  1 +
 xen/arch/ppc/include/asm/nospec.h                 | 15 ---------------
 xen/arch/riscv/include/asm/Makefile               |  1 +
 .../include/asm => include/asm-generic}/nospec.h  | 10 +++++-----
 5 files changed, 8 insertions(+), 20 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/nospec.h
 rename xen/{arch/arm/include/asm => include/asm-generic}/nospec.h (54%)

diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
index c3f4291ee2..dfb4e9e45c 100644
--- a/xen/arch/arm/include/asm/Makefile
+++ b/xen/arch/arm/include/asm/Makefile
@@ -3,6 +3,7 @@ generic-y += altp2m.h
 generic-y += device.h
 generic-y += hardirq.h
 generic-y += iocap.h
+generic-y += nospec.h
 generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index adb752b804..0e96ad54c3 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -5,6 +5,7 @@ generic-y += div64.h
 generic-y += hardirq.h
 generic-y += hypercall.h
 generic-y += iocap.h
+generic-y += nospec.h
 generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
diff --git a/xen/arch/ppc/include/asm/nospec.h b/xen/arch/ppc/include/asm/nospec.h
deleted file mode 100644
index b97322e48d..0000000000
--- a/xen/arch/ppc/include/asm/nospec.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/* From arch/arm/include/asm/nospec.h. */
-#ifndef __ASM_PPC_NOSPEC_H__
-#define __ASM_PPC_NOSPEC_H__
-
-static inline bool evaluate_nospec(bool condition)
-{
-    return condition;
-}
-
-static inline void block_speculation(void)
-{
-}
-
-#endif /* __ASM_PPC_NOSPEC_H__ */
diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
index adb752b804..0e96ad54c3 100644
--- a/xen/arch/riscv/include/asm/Makefile
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -5,6 +5,7 @@ generic-y += div64.h
 generic-y += hardirq.h
 generic-y += hypercall.h
 generic-y += iocap.h
+generic-y += nospec.h
 generic-y += numa.h
 generic-y += paging.h
 generic-y += percpu.h
diff --git a/xen/arch/arm/include/asm/nospec.h b/xen/include/asm-generic/nospec.h
similarity index 54%
rename from xen/arch/arm/include/asm/nospec.h
rename to xen/include/asm-generic/nospec.h
index 51c7aea4f4..5ded9746f3 100644
--- a/xen/arch/arm/include/asm/nospec.h
+++ b/xen/include/asm-generic/nospec.h
@@ -1,8 +1,8 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. */
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef _ASM_GENERIC_NOSPEC_H
+#define _ASM_GENERIC_NOSPEC_H
 
-#ifndef _ASM_ARM_NOSPEC_H
-#define _ASM_ARM_NOSPEC_H
+#include <xen/stdbool.h>
 
 static inline bool evaluate_nospec(bool condition)
 {
@@ -13,7 +13,7 @@ static inline void block_speculation(void)
 {
 }
 
-#endif /* _ASM_ARM_NOSPEC_H */
+#endif /* _ASM_GENERIC_NOSPEC_H */
 
 /*
  * Local variables:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659410.1029030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDO-0008Gh-5z; Fri, 22 Dec 2023 15:13:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659410.1029030; Fri, 22 Dec 2023 15:13:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDO-0008GQ-2G; Fri, 22 Dec 2023 15:13:30 +0000
Received: by outflank-mailman (input) for mailman id 659410;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDM-0007Ie-Ig
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:28 +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 a8bf180e-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:28 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-50e23a4df33so2371283e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:28 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8bf180e-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258007; x=1703862807; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9/0xpdBsVC3QKCmTx90l3z9JYAj2BvdshNF4PB960SQ=;
        b=K4xhFAuAWPN4cjzZfG5nQ0RZCLQhxaFtUBFrx1Q4q0qLVn4gOGZIpB6ldNv36HWT5w
         9YTBiE8rIJ224T6mizYjGvktSAQ9bU3Mw6ZZVXbOoa7ObCHgDgrTX0NPNxvsVhK79zKD
         WLInEDU5KvmFvdNdQeEDsNa1Su07jSABM86ub358xAabhtKPTLBIf3TzWyzdT2rEtQh3
         xNe5ixCrDwO8K3whZ5angauJCHkTS9pGSYJ7OcI+MI8ny1ErtW9/noZQk+3U/kQu2/MX
         xug5HI7u5gui9Lkv5HoNiFPkuvEaHPgPNVX7HWeI9u8YEVcWYM6UM9ZmXhfF7spgbE4p
         3JRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258007; x=1703862807;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=9/0xpdBsVC3QKCmTx90l3z9JYAj2BvdshNF4PB960SQ=;
        b=qr1Nf41LOqOH016ojQh5lsRJM+IsqaZrPzUUgor6IyLYLZzVFE36oj6rneE/cfPeCH
         K6qsXAHJMV6BAR/XVOzhXFOkDDVMWrRfjL3DJhh+8rYIHgKr6dTZo+/evsanXhqj3PHm
         6Ex3WVRx0hxIlWcPrOo6r954Cv89Gwmbr/yBjqiHhA+rPExBBgMrI6JAu4DC9Xvcqss7
         a1L7ph3vQCgQMZr6raxHea/YlcREtrcQp3Mbw6SiV8KHS2AUCEGFZhjrOeRDcRcJSNLH
         pF1SEHwUbMWisJOMx2/CKTdg9R3b1iEp+Y9OOGkB9nzmmoseD47GiE7wO/NGZPRQSuaU
         P1nQ==
X-Gm-Message-State: AOJu0Yz2MEBGYkL7mkUbESD3SDCJ9CdDQMPrkRk4aLLzZRMFLR4mzhpD
	cVX4eAkO3DRQqBgu+iASf08IYvodD0g=
X-Google-Smtp-Source: AGHT+IFkn3OBlmc1Sd21QuJHCHbRHOG0rsZg/SYbPvs4Ch3lcSTenv+Aly5VmLq354Zc3yJFzyDZbw==
X-Received: by 2002:a05:6512:3b2a:b0:50e:6d0f:4c82 with SMTP id f42-20020a0565123b2a00b0050e6d0f4c82mr421811lfv.6.1703258006868;
        Fri, 22 Dec 2023 07:13:26 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 04/34] xen/riscv: introduce cpufeature.h
Date: Fri, 22 Dec 2023 17:12:48 +0200
Message-ID: <2bdc9b64ebd9be8bf034329f2de5a4011d335e7d.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.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 V3:
 - add SPDX and footer
 - update declaration of cpu_nr_siblings() to return unsigned int instead of int.
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/cpufeature.h | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/cpufeature.h

diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
new file mode 100644
index 0000000000..c08b7d67ad
--- /dev/null
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_CPUFEATURE_H
+#define __ASM_RISCV_CPUFEATURE_H
+
+#ifndef __ASSEMBLY__
+
+static inline unsigned int cpu_nr_siblings(unsigned int cpu)
+{
+    return 1;
+}
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ASM_RISCV_CPUFEATURE_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:36 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659415.1029079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDU-0001D3-A4; Fri, 22 Dec 2023 15:13:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659415.1029079; Fri, 22 Dec 2023 15:13:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDU-0001Cg-0e; Fri, 22 Dec 2023 15:13:36 +0000
Received: by outflank-mailman (input) for mailman id 659415;
 Fri, 22 Dec 2023 15:13:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDT-0000EM-3P
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:35 +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 ac0a0b38-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:33 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-50e64eb3bc7so1191194e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:33 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac0a0b38-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258012; x=1703862812; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7Q3XxAtohZzVdjBCMrkOnkvpWvJ70uTXiyTPxPvaq7s=;
        b=R71DaK6d1iFDpovI1a3GtSNH9tTpYaFupHU0K2oZ9wxjeUabc/0Z78HePRj9f7d+vo
         +sFGojNvCRZQ77Jxh9WxVmlslRSDEMAVLkt+cK5oZA6k8ONOZAyIxlfbK2szGg4Rstaz
         Hc6IMPutUvTYEM96l2AufNoKg7lMKlLjjFrYDqZhxXvNi+tWB9Z8yp54W0TD1qP13aX8
         hslpFBZRl70pBV043Kq1gsxmAygwsM3ULISmOnJ2LHHcXUMVN09Ng+YEl+69hAPa0qin
         n01xnJqiJnhnAwcOvlgn0brBUNmx0GOutYENCZM5h/u/8B0fOfaUtDNXsDTdnp8d4Mud
         tW2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258012; x=1703862812;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=7Q3XxAtohZzVdjBCMrkOnkvpWvJ70uTXiyTPxPvaq7s=;
        b=IjhkEtG3dpLAMWpHMaxaTKNriWeGtwHbNjq/2Hy5o4Eec2oaeScF6DKDHyhPV9g8Bi
         I+EAc/vjSPIspELQZkeptC0tmP6MfG2LVR1dMJ59/wW2ccQxNBfOfmva0YfQQBCPTxSY
         pzwPgPQAdtfuZQzPFL336lNJQksC+0cYOZJ30A2M22zcF2/1vhdk+isRZET8X5burFmQ
         vgnnlxp9ERYUqgAxkJ4qIoz6jew0lKCNdOmhEGpcOhTK7gOMnBYs6jo4+4o9rZ/DrzsN
         Oznhcxapbqw1FjzJOqGTcAImYvNtxP5dCRUHy5lBnnpq6QHuym3i8g1SJDKCwjh8j1os
         CFXA==
X-Gm-Message-State: AOJu0Yx7sW7NGdyasYuKN2DKAgARGmfSMmAb+2NO02VALnUGdR8+yyQG
	x4U3B0DLvNFRJaCN+/HpsTNFNNOVBS0=
X-Google-Smtp-Source: AGHT+IEW9ubjMihjpDo9U++LZhjCgyS3BxzeXAuDpx4kXU0ymEUqqZmZivdoUK3FLQJj/AzT5vUOXQ==
X-Received: by 2002:a05:6512:10ca:b0:50e:6a65:fa97 with SMTP id k10-20020a05651210ca00b0050e6a65fa97mr758709lfg.33.1703258012409;
        Fri, 22 Dec 2023 07:13:32 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 09/34] xen/riscv: introduce system.h
Date: Fri, 22 Dec 2023 17:12:53 +0200
Message-ID: <e577e055932d05ec34f01db57d1b2d2b1be5418d.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - Add SPDX
 - fix code style issue
 - change prototype of local_irq_is_enabled to return bool.
   update the return code.
 - update the code style
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/system.h | 90 +++++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/system.h

diff --git a/xen/arch/riscv/include/asm/system.h b/xen/arch/riscv/include/asm/system.h
new file mode 100644
index 0000000000..08c12158fc
--- /dev/null
+++ b/xen/arch/riscv/include/asm/system.h
@@ -0,0 +1,90 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef _ASM_RISCV_BARRIER_H
+#define _ASM_RISCV_BARRIER_H
+
+#include <xen/stdbool.h>
+
+#include <asm/csr.h>
+
+#ifndef __ASSEMBLY__
+
+#define RISCV_FENCE(p, s) \
+    __asm__ __volatile__ ( "fence " #p "," #s : : : "memory" )
+
+/* These barriers need to enforce ordering on both devices or memory. */
+#define mb()                    RISCV_FENCE(iorw, iorw)
+#define rmb()                   RISCV_FENCE(ir, ir)
+#define wmb()                   RISCV_FENCE(ow, ow)
+
+/* These barriers do not need to enforce ordering on devices, just memory. */
+#define smp_mb()                RISCV_FENCE(rw, rw)
+#define smp_rmb()               RISCV_FENCE(r, r)
+#define smp_wmb()               RISCV_FENCE(w, w)
+#define smp_mb__before_atomic() smp_mb()
+#define smp_mb__after_atomic()  smp_mb()
+
+/*
+#define smp_store_release(p, v)         \
+do {                                    \
+    compiletime_assert_atomic_type(*p); \
+    RISCV_FENCE(rw, w);                 \
+    WRITE_ONCE(*p, v);                  \
+} while (0)
+
+#define smp_load_acquire(p)             \
+({                                      \
+    typeof(*p) p1 = READ_ONCE(*p);      \
+    compiletime_assert_atomic_type(*p); \
+    RISCV_FENCE(r,rw);                  \
+    p1;                                 \
+})
+*/
+
+static inline unsigned long local_save_flags(void)
+{
+    return csr_read(sstatus);
+}
+
+static inline void local_irq_enable(void)
+{
+    csr_set(sstatus, SSTATUS_SIE);
+}
+
+static inline void local_irq_disable(void)
+{
+    csr_clear(sstatus, SSTATUS_SIE);
+}
+
+#define local_irq_save(x)                           \
+({                                                  \
+    x = csr_read_clear(CSR_SSTATUS, SSTATUS_SIE);   \
+    local_irq_disable();                            \
+})
+
+static inline void local_irq_restore(unsigned long flags)
+{
+	csr_set(CSR_SSTATUS, flags & SSTATUS_SIE);
+}
+
+static inline bool local_irq_is_enabled(void)
+{
+    unsigned long flags = local_save_flags();
+
+    return (flags & SSTATUS_SIE) != 0;
+}
+
+#define arch_fetch_and_add(x, v) __sync_fetch_and_add(x, v)
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* _ASM_RISCV_BARRIER_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:37 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659416.1029089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDV-0001XA-Om; Fri, 22 Dec 2023 15:13:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659416.1029089; Fri, 22 Dec 2023 15:13: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 1rGhDV-0001WW-HP; Fri, 22 Dec 2023 15:13:37 +0000
Received: by outflank-mailman (input) for mailman id 659416;
 Fri, 22 Dec 2023 15:13:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDT-0007Ie-Bo
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:35 +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 ac920e5b-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:34 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-50e6e7afc6aso248187e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:34 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac920e5b-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258014; x=1703862814; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2JE4E+ikBT3kCGEtmaswU2jTg1kUfQURiufyZCoF+Bw=;
        b=SpLyBQB0vvB7iwXJddZrKFNigHNDBLqebbJbR5pbZVqzCXYR0YthCVBXlvnO7uJ+0l
         ysqG8EXslSCby8rT0rkO2HeaWc8o9sahqgcVfFtwz8x9g8v3NEhwBKUKlAM+M7rza+Tu
         donQQt/c5cwJNG6gj3SEMkI/lk5m0VZy/9fk8dnl0Q3U5TsLKsylnEWAPGlbo/7m+Pow
         dpFNV2pXVJB3F+IMLTbNlD5uAk7ng9EXb68xG+/19re4EBQvLRa7lB0KnT+YQCZFg0RK
         HhVdyl3kAsflV4B+oJSxB6/tZ0bIzve180cRW4Kn2QhJH7tpdXkt+1QrFWeAmDvCUvii
         prmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258014; x=1703862814;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2JE4E+ikBT3kCGEtmaswU2jTg1kUfQURiufyZCoF+Bw=;
        b=SlcJ70GL+42Jwwjudt19lZOYmMk9tcz6JPB5/e+FX5uEx8j92yJ1Ls6xKFcNj1SjXl
         sH226+YdL81/tDSGgbk4Qpzfv/oyg05BLlR2FwKMguPaiTltU+8kebWE4slSSTtiStj1
         ncAGAw2VsH4e2s+AIKcYTud9uKW5b6X/rplgV+oOJlJ7beyrIODPdEkW3tCj+xZO9AL1
         YLKY6DwvVYPPvz5j1Y3qt+XIb9AnZV4yV9tbe51mzPR+WbU3h/pISi9xp8pXRYNOmZ4D
         YEiNlDK5WOU2KH1IHJh/rxi+mSjCTIMZHzmyPBPK/rRbOkrstphWXBuow/GR6+YXRiAB
         vndQ==
X-Gm-Message-State: AOJu0YxNiXfSyLG/FqDoriJ1MHVtXhPZ1hhhAGNKZPs3EASNnTAHGRz9
	KKGyHN5KHWT7IufUKTjGMEgpDpV3CqE=
X-Google-Smtp-Source: AGHT+IGpd/0hiB+zCZilXc4I6ZZfGlmkv6Pk7jLrKmo5auefyzV8pg3QMFMrfPUbTX4YIECUkj/dQg==
X-Received: by 2002:a05:6512:311b:b0:50e:6888:78d5 with SMTP id n27-20020a056512311b00b0050e688878d5mr769196lfb.3.1703258013676;
        Fri, 22 Dec 2023 07:13:33 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 10/34] xen/riscv: introduce bitops.h
Date: Fri, 22 Dec 2023 17:12:54 +0200
Message-ID: <841d59c3950970f4937da200cf8f04aa39132e14.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.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_change_bit
      	* 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
* linux/include/asm-generic/bitops/find.h ( only few function
  declaration were taken, as implementation will be provided by
  Xen ).
* linux/arch/include/linux/bits.h ( taken only definitions for BIT_MASK,
  BIT_WORD, BITS_PER_BYTE )

Additionaly, the following bit ops are introduced:
* __ffs
* ffsl
* fls
* flsl
* ffs
* ffz
* find_first_bit_set
* hweight64
* test_bit

Some of the introduced bit operations are included in asm-generic,
as they exhibit similarity across multiple architectures.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - update the commit message
 - Introduce the following asm-generic bitops headers:
	create mode 100644 xen/arch/riscv/include/asm/bitops.h
	create mode 100644 xen/include/asm-generic/bitops/bitops-bits.h
	create mode 100644 xen/include/asm-generic/bitops/ffs.h
	create mode 100644 xen/include/asm-generic/bitops/ffz.h
	create mode 100644 xen/include/asm-generic/bitops/find-first-bit-set.h
	create mode 100644 xen/include/asm-generic/bitops/fls.h
	create mode 100644 xen/include/asm-generic/bitops/flsl.h
	create mode 100644 xen/include/asm-generic/bitops/hweight.h
	create mode 100644 xen/include/asm-generic/bitops/test-bit.h
 - switch some bitops functions to asm-generic's versions.
 - re-sync some macros with Linux kernel version mentioned in the commit message.
 - Xen code style fixes.
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/bitops.h           | 267 ++++++++++++++++++
 xen/include/asm-generic/bitops/bitops-bits.h  |  10 +
 xen/include/asm-generic/bitops/ffs.h          |   9 +
 xen/include/asm-generic/bitops/ffz.h          |  13 +
 .../asm-generic/bitops/find-first-bit-set.h   |  17 ++
 xen/include/asm-generic/bitops/fls.h          |  18 ++
 xen/include/asm-generic/bitops/flsl.h         |  10 +
 xen/include/asm-generic/bitops/hweight.h      |  13 +
 xen/include/asm-generic/bitops/test-bit.h     |  16 ++
 9 files changed, 373 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/bitops.h
 create mode 100644 xen/include/asm-generic/bitops/bitops-bits.h
 create mode 100644 xen/include/asm-generic/bitops/ffs.h
 create mode 100644 xen/include/asm-generic/bitops/ffz.h
 create mode 100644 xen/include/asm-generic/bitops/find-first-bit-set.h
 create mode 100644 xen/include/asm-generic/bitops/fls.h
 create mode 100644 xen/include/asm-generic/bitops/flsl.h
 create mode 100644 xen/include/asm-generic/bitops/hweight.h
 create mode 100644 xen/include/asm-generic/bitops/test-bit.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..d210f529c8
--- /dev/null
+++ b/xen/arch/riscv/include/asm/bitops.h
@@ -0,0 +1,267 @@
+/* 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>
+
+#include <asm-generic/bitops/bitops-bits.h>
+
+/* Based on linux/arch/include/linux/bits.h */
+
+#define BIT_MASK(nr)        (1UL << ((nr) % BITS_PER_LONG))
+#define BIT_WORD(nr)        ((nr) / BITS_PER_LONG)
+
+#define __set_bit(n,p)      set_bit(n,p)
+#define __clear_bit(n,p)    clear_bit(n,p)
+
+/* Based on linux/arch/include/asm/bitops.h */
+
+#if ( BITS_PER_LONG == 64 )
+#define __AMO(op)   "amo" #op ".d"
+#elif ( BITS_PER_LONG == 32 )
+#define __AMO(op)   "amo" #op ".w"
+#else
+#error "Unexpected BITS_PER_LONG"
+#endif
+
+#define __test_and_op_bit_ord(op, mod, nr, addr, ord)		\
+({								\
+    unsigned long __res, __mask;				\
+    __mask = BIT_MASK(nr);					\
+    __asm__ __volatile__ (					\
+        __AMO(op) #ord " %0, %2, %1"			\
+        : "=r" (__res), "+A" (addr[BIT_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[BIT_WORD(nr)])			\
+        : "r" (mod(BIT_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
+ *
+ * This operation may be reordered on other architectures than x86.
+ */
+static inline int __test_and_set_bit(int nr, volatile void *p)
+{
+    volatile uint32_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
+ *
+ * This operation can be reordered on other architectures other than x86.
+ */
+static inline int __test_and_clear_bit(int nr, volatile void *p)
+{
+    volatile uint32_t *addr = p;
+
+    return __test_and_op_bit(and, __NOT, nr, addr);
+}
+
+/**
+ * set_bit - Atomically set a bit in memory
+ * @nr: the bit to set
+ * @addr: the address to start counting from
+ *
+ * Note: there are no guarantees that this function will not be reordered
+ * on non x86 architectures, so if you are writing portable code,
+ * make sure not to rely on its reordering guarantees.
+ *
+ * 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 uint32_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
+ *
+ * Note: there are no guarantees that this function will not be reordered
+ * on non x86 architectures, so if you are writing portable code,
+ * make sure not to rely on its reordering guarantees.
+ */
+static inline void clear_bit(int nr, volatile void *p)
+{
+    volatile uint32_t *addr = p;
+
+    __op_bit(and, __NOT, nr, addr);
+}
+
+#undef __test_and_op_bit
+#undef __op_bit
+#undef __NOP
+#undef __NOT
+#undef __AMO
+
+#define test_and_set_bit   __test_and_set_bit
+#define test_and_clear_bit __test_and_clear_bit
+
+/* Based on linux/include/asm-generic/bitops/find.h */
+
+#ifndef find_next_bit
+/**
+ * find_next_bit - find the next set bit in a memory region
+ * @addr: The address to base the search on
+ * @offset: The bitnumber to start searching at
+ * @size: The bitmap size in bits
+ */
+extern unsigned long find_next_bit(const unsigned long *addr, unsigned long
+        size, unsigned long offset);
+#endif
+
+#ifndef find_next_zero_bit
+/**
+ * find_next_zero_bit - find the next cleared bit in a memory region
+ * @addr: The address to base the search on
+ * @offset: The bitnumber to start searching at
+ * @size: The bitmap size in bits
+ */
+extern unsigned long find_next_zero_bit(const unsigned long *addr, unsigned
+        long size, unsigned long offset);
+#endif
+
+/**
+ * find_first_bit - find the first set bit in a memory region
+ * @addr: The address to start the search at
+ * @size: The maximum size to search
+ *
+ * Returns the bit number of the first set bit.
+ */
+extern unsigned long find_first_bit(const unsigned long *addr,
+                    unsigned long size);
+
+/**
+ * find_first_zero_bit - find the first cleared bit in a memory region
+ * @addr: The address to start the search at
+ * @size: The maximum size to search
+ *
+ * Returns the bit number of the first cleared bit.
+ */
+extern unsigned long find_first_zero_bit(const unsigned long *addr,
+                     unsigned long size);
+
+/**
+ * ffs - find first bit in word.
+ * @word: The word to search
+ *
+ * Returns 0 if no bit exists, otherwise returns 1-indexed bit location.
+ */
+static inline unsigned long __ffs(unsigned long word)
+{
+    int num = 0;
+
+#if BITS_PER_LONG == 64
+    if ((word & 0xffffffff) == 0) {
+        num += 32;
+        word >>= 32;
+    }
+#endif
+    if ((word & 0xffff) == 0) {
+        num += 16;
+        word >>= 16;
+    }
+    if ((word & 0xff) == 0) {
+        num += 8;
+        word >>= 8;
+    }
+    if ((word & 0xf) == 0) {
+        num += 4;
+        word >>= 4;
+    }
+    if ((word & 0x3) == 0) {
+        num += 2;
+        word >>= 2;
+    }
+    if ((word & 0x1) == 0)
+        num += 1;
+    return num;
+}
+
+/**
+ * ffsl - find first bit in long.
+ * @word: The word to search
+ *
+ * Returns 0 if no bit exists, otherwise returns 1-indexed bit location.
+ */
+static inline unsigned int ffsl(unsigned long word)
+{
+    int num = 1;
+
+    if (!word)
+        return 0;
+
+#if BITS_PER_LONG == 64
+    if ((word & 0xffffffff) == 0) {
+        num += 32;
+        word >>= 32;
+    }
+#endif
+    if ((word & 0xffff) == 0) {
+        num += 16;
+        word >>= 16;
+    }
+    if ((word & 0xff) == 0) {
+        num += 8;
+        word >>= 8;
+    }
+    if ((word & 0xf) == 0) {
+        num += 4;
+        word >>= 4;
+    }
+    if ((word & 0x3) == 0) {
+        num += 2;
+        word >>= 2;
+    }
+    if ((word & 0x1) == 0)
+        num += 1;
+    return num;
+}
+
+#include <asm-generic/bitops/fls.h>
+#include <asm-generic/bitops/flsl.h>
+#include <asm-generic/bitops/ffs.h>
+#include <asm-generic/bitops/ffz.h>
+#include <asm-generic/bitops/find-first-bit-set.h>
+#include <asm-generic/bitops/hweight.h>
+#include <asm-generic/bitops/test-bit.h>
+
+#endif /* _ASM_RISCV_BITOPS_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/asm-generic/bitops/bitops-bits.h b/xen/include/asm-generic/bitops/bitops-bits.h
new file mode 100644
index 0000000000..8a57e47c63
--- /dev/null
+++ b/xen/include/asm-generic/bitops/bitops-bits.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_GENERIC_BITOPS_BITS_H_
+#define _ASM_GENERIC_BITOPS_BITS_H_
+
+#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
+
+#endif /* _ASM_GENERIC_BITOPS_BITS_H_ */
\ No newline at end of file
diff --git a/xen/include/asm-generic/bitops/ffs.h b/xen/include/asm-generic/bitops/ffs.h
new file mode 100644
index 0000000000..3f75fded14
--- /dev/null
+++ b/xen/include/asm-generic/bitops/ffs.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_GENERIC_BITOPS_FFS_H_
+#define _ASM_GENERIC_BITOPS_FFS_H_
+
+#include <xen/macros.h>
+
+#define ffs(x) ({ unsigned int t_ = (x); fls(ISOLATE_LSB(t_)); })
+
+#endif /* _ASM_GENERIC_BITOPS_FFS_H_ */
diff --git a/xen/include/asm-generic/bitops/ffz.h b/xen/include/asm-generic/bitops/ffz.h
new file mode 100644
index 0000000000..92c35455d5
--- /dev/null
+++ b/xen/include/asm-generic/bitops/ffz.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_GENERIC_BITOPS_FFZ_H_
+#define _ASM_GENERIC_BITOPS_FFZ_H_
+
+/*
+ * ffz - find first zero in word.
+ * @word: The word to search
+ *
+ * Undefined if no zero exists, so code should check against ~0UL first.
+ */
+#define ffz(x)  __ffs(~(x))
+
+#endif /* _ASM_GENERIC_BITOPS_FFZ_H_ */
\ No newline at end of file
diff --git a/xen/include/asm-generic/bitops/find-first-bit-set.h b/xen/include/asm-generic/bitops/find-first-bit-set.h
new file mode 100644
index 0000000000..8ae9751b11
--- /dev/null
+++ b/xen/include/asm-generic/bitops/find-first-bit-set.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_GENERIC_BITOPS_FIND_FIRST_BIT_SET_H_
+#define _ASM_GENERIC_BITOPS_FIND_FIRST_BIT_SET_H_
+
+/**
+ * find_first_set_bit - find the first set bit in @word
+ * @word: the word to search
+ *
+ * Returns the bit-number of the first set bit (first bit being 0).
+ * The input must *not* be zero.
+ */
+static inline unsigned int find_first_set_bit(unsigned long word)
+{
+        return ffsl(word) - 1;
+}
+
+#endif /* _ASM_GENERIC_BITOPS_FIND_FIRST_BIT_SET_H_ */
\ No newline at end of file
diff --git a/xen/include/asm-generic/bitops/fls.h b/xen/include/asm-generic/bitops/fls.h
new file mode 100644
index 0000000000..f232925080
--- /dev/null
+++ b/xen/include/asm-generic/bitops/fls.h
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_GENERIC_BITOPS_FLS_H_
+#define _ASM_GENERIC_BITOPS_FLS_H_
+
+/**
+ * fls - find last (most-significant) bit set
+ * @x: the word to search
+ *
+ * This is defined the same way as ffs.
+ * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
+ */
+
+static inline int fls(unsigned int x)
+{
+    return generic_fls(x);
+}
+
+#endif /* _ASM_GENERIC_BITOPS_FLS_H_ */
\ No newline at end of file
diff --git a/xen/include/asm-generic/bitops/flsl.h b/xen/include/asm-generic/bitops/flsl.h
new file mode 100644
index 0000000000..127221056e
--- /dev/null
+++ b/xen/include/asm-generic/bitops/flsl.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_GENERIC_BITOPS_FLSL_H_
+#define _ASM_GENERIC_BITOPS_FLSL_H_
+
+static inline int flsl(unsigned long x)
+{
+    return generic_flsl(x);
+}
+
+#endif /* _ASM_GENERIC_BITOPS_FLSL_H_ */
\ No newline at end of file
diff --git a/xen/include/asm-generic/bitops/hweight.h b/xen/include/asm-generic/bitops/hweight.h
new file mode 100644
index 0000000000..0d7577054e
--- /dev/null
+++ b/xen/include/asm-generic/bitops/hweight.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_GENERIC_BITOPS_HWEIGHT_H_
+#define _ASM_GENERIC_BITOPS_HWEIGHT_H_
+
+/*
+ * hweightN - returns the hamming weight of a N-bit word
+ * @x: the word to weigh
+ *
+ * The Hamming Weight of a number is the total number of bits set in it.
+ */
+#define hweight64(x) generic_hweight64(x)
+
+#endif /* _ASM_GENERIC_BITOPS_HWEIGHT_H_ */
diff --git a/xen/include/asm-generic/bitops/test-bit.h b/xen/include/asm-generic/bitops/test-bit.h
new file mode 100644
index 0000000000..9fa36652e3
--- /dev/null
+++ b/xen/include/asm-generic/bitops/test-bit.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_GENERIC_BITOPS_TESTBIT_H_
+#define _ASM_GENERIC_BITOPS_TESTBIT_H_
+
+/**
+ * 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)));
+}
+
+#endif /* _ASM_GENERIC_BITOPS_TESTBIT_H_ */
\ No newline at end of file
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:38 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659417.1029095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDW-0001fo-GS; Fri, 22 Dec 2023 15:13:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659417.1029095; Fri, 22 Dec 2023 15:13:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDW-0001e9-7w; Fri, 22 Dec 2023 15:13:38 +0000
Received: by outflank-mailman (input) for mailman id 659417;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDU-0007Ie-CA
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:36 +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 ad0273a2-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:35 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-50e67f70f34so1064574e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:35 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad0273a2-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258014; x=1703862814; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=34jIfAHruS1igTLy4v5O5K/2+Cv87aWM2kyu/xj3kDI=;
        b=hGTGvTbadHqjtAesU75R/y1q7dMNwI3VAKV5+rZCuDPHI6E8C3AgJTtQWAL07IVQt9
         o3pRnIaZJgLKkfCJ7CmeB1QjXiEw65EIlXkmFzuq+W6jYpstl/5Cdgxbpsefx/yHo9bC
         Grd2j4u4YOztNGjACFNq+ioYReUokF5ISIEyDnvHWqzeY/8PBejLBbUfyKn8aJzLfLGr
         qn64kH6uUO/H5agJIpcpwHeP9bi0w3LRhifZXaG2aqB/cKXqt2ysDN8B+6OlSnYEjNuY
         aUgPVdjRZs+P7BR+Qjm20NhToT8uredgmmKWwt4BfFPyS8XGA8RobY/LYq50qvHXvdqe
         ecUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258014; x=1703862814;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=34jIfAHruS1igTLy4v5O5K/2+Cv87aWM2kyu/xj3kDI=;
        b=kMGBTh5SpQPuhGQVvkTMH+H0W42tYjq85O8YbvY09oIrLDgmj+TeM1w0+Z+Tv1+xmI
         Vonp8Qt9ZsE373er4k0K9TOrfraHQckfbjRM6/v/d2Y9qMnKv00Vnr+S0/c3SVS8tJX3
         Cru+fVMMiT7N5WZcm4J/GWD6EqGUoAQU6RngCZEZVSks5/R6/eXgNwxXWSAuL46vK7G2
         yXaN3mcIjLgfSwPuWIadkseQfK9wOi8R2bDJDU/wbTWuHsynHj/Xn4pGOHo3HyhZyb9W
         CH7UfgfMQ5EONJZmXuuEdKFTftf1bzKU98yjINCxS/pEqpEFnXg8ecrWemiH4DbxsBfB
         6NdQ==
X-Gm-Message-State: AOJu0YxKkTT8CmdnWMBXFcLV4a35+Latd2BSgbbHoLl8XJXRYoANN3sE
	7ol9mgtYk/gqEmSXMb+rICw83Niy02k=
X-Google-Smtp-Source: AGHT+IHD/yBfdoadthgsprvPOestR7uYY9evy4Bg+UKv4XV9FrHwiZpUfNCXyls3OXQrVJFlRkEKHQ==
X-Received: by 2002:a05:6512:613:b0:50e:568d:d527 with SMTP id b19-20020a056512061300b0050e568dd527mr706765lfe.11.1703258014512;
        Fri, 22 Dec 2023 07:13:34 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 11/34] xen/riscv: introduce flushtlb.h
Date: Fri, 22 Dec 2023 17:12:55 +0200
Message-ID: <2e067c286c7002b4b2a41538dde040ff06fc6cfb.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.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 V3:
 - add SPDX & footer
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/flushtlb.h | 33 +++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/flushtlb.h

diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
new file mode 100644
index 0000000000..3bdcb08e3a
--- /dev/null
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_FLUSHTLB_H__
+#define __ASM_RISCV_FLUSHTLB_H__
+
+#include <xen/cpumask.h>
+
+/*
+ * Filter the given set of CPUs, removing those that definitely flushed their
+ * TLB since @page_timestamp.
+ */
+/* XXX lazy implementation just doesn't clear anything.... */
+static inline void tlbflush_filter(cpumask_t *mask, uint32_t page_timestamp) {}
+
+#define tlbflush_current_time() (0)
+
+static inline void page_set_tlbflush_timestamp(struct page_info *page)
+{
+    BUG();
+}
+
+/* Flush specified CPUs' TLBs */
+void arch_flush_tlb_mask(const cpumask_t *mask);
+
+#endif /* __ASM_RISCV_FLUSHTLB_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659418.1029103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDX-0001qZ-GV; Fri, 22 Dec 2023 15:13:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659418.1029103; Fri, 22 Dec 2023 15:13:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDX-0001o8-26; Fri, 22 Dec 2023 15:13:39 +0000
Received: by outflank-mailman (input) for mailman id 659418;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDV-0007Ie-CR
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:37 +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 adcc1087-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:36 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-50e23a4df33so2371452e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:36 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: adcc1087-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258015; x=1703862815; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AHMk6Oxp121rk9ty7tSxLKXI3fAoLJtgO5MBH3moim0=;
        b=RV4QUaSifNc7bdSBDuoXnutuXVM25j2YttpcVRqbE1PbtVxQR9ulann6lToSSm0Chy
         qSye2d0xokUX1Gk2xwuy6t8zMrCEIzjuhPmNOIly4dsUEcygAkJgo9J0rsQ9v+G3zrpE
         PfbD6UFS7QOrKi6m429Io8PE2RfWIf1V920Kp5xt9Jr2vg8h7qJNSGHLURFdfsbXB4Qr
         20htjoKCwsCdiNJ+Iqv1v4HCA4MedRWmrC1qhDBynSnlHolb01YzW5BRL9aqkI5pmWHO
         gBHqOWqlsTOrcyPbZ+IKs8lV7amakAQ5rx0LuXEPZeqYi2krz1jFteXyqGjddqBZlK+H
         ZFHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258015; x=1703862815;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=AHMk6Oxp121rk9ty7tSxLKXI3fAoLJtgO5MBH3moim0=;
        b=tjGHKJnxznPRnRR8+XyU//VdMU3gs02D7osmt0SOqv6a1/Iq0ovqPf+pt+dDZRdgDo
         qyr8/cA1hEmlusIOEPz9HSgHq7MsUmbGtHcl1zOW/aJ+bEN/jBX+0NR5cULrwWZwVOhn
         bQgkDjP1K/jgYSosdIwEPZvKgxojL2GB0msPIwl9IUX0jeYP6qbxpfM8Irah0mCj6e/f
         vb/BQInZRpe5MMWGd+eFGqBre8/jflo4mz7L7CLSXbyJjbkKOcZDo94ab8eWV9fUtLo9
         lixbfBge8nvOfkILUlHtHm1EVa+vTcfcfY1F6YGtY2Z5npfXYRb2NZ+JxcZ3iVIm6sOf
         LuEw==
X-Gm-Message-State: AOJu0YzsKdqul2Gi2Wg67CBZ345zVvKB5OkPrbjrJmlGrzdSeHyNjvrN
	6xIBrqyZIfna37OWZOoR6v2+Yom+jKk=
X-Google-Smtp-Source: AGHT+IG4xiVypcezjRCOaZjdji0NmXKM+zHGowlAc7vBD2GNFzyrN1WKOQDQ3FTqTCVL+oc8kzJLXw==
X-Received: by 2002:ac2:4c18:0:b0:50e:7045:687 with SMTP id t24-20020ac24c18000000b0050e70450687mr62742lfq.77.1703258015258;
        Fri, 22 Dec 2023 07:13:35 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 12/34] xen/riscv: introduce smp.h
Date: Fri, 22 Dec 2023 17:12:56 +0200
Message-ID: <7fd0c7bdc14ac2544a568e66387df21eee892523.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - drop cpu_is_offline() as it was moved to xen/smp.h.
 - add SPDX.
 - drop unnessary #ifdef.
 - fix "No new line"
 - update the commit message
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/smp.h | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/smp.h

diff --git a/xen/arch/riscv/include/asm/smp.h b/xen/arch/riscv/include/asm/smp.h
new file mode 100644
index 0000000000..336db5906e
--- /dev/null
+++ b/xen/arch/riscv/include/asm/smp.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_SMP_H
+#define __ASM_RISCV_SMP_H
+
+#include <xen/cpumask.h>
+#include <xen/percpu.h>
+
+DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_mask);
+DECLARE_PER_CPU(cpumask_var_t, cpu_core_mask);
+
+#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
+
+/*
+ * Do we, for platform reasons, need to actually keep CPUs online when we
+ * would otherwise prefer them to be off?
+ */
+#define park_offline_cpus false
+
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659421.1029121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDe-00031o-Pl; Fri, 22 Dec 2023 15:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659421.1029121; Fri, 22 Dec 2023 15: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 1rGhDe-00031Q-Gb; Fri, 22 Dec 2023 15:13:46 +0000
Received: by outflank-mailman (input) for mailman id 659421;
 Fri, 22 Dec 2023 15:13:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDd-0000EM-As
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:45 +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 b229c2ad-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:43 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-50e6bcca684so531491e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:43 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b229c2ad-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258023; x=1703862823; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4V2ccNLv7fzBgrDA9NE+pKZEtsNt5JBlW/j5gZeAoxQ=;
        b=Bnck0/07C2dN3BfTp4TB4qV9WXuq/95rW/SU+auhAgBCWaDLS8W25gyrQOjb0mGBEe
         pCzg37AtwK4SYY2Mr874NXbKgT+wjBspWLO9K1kvyWmiL2C93bKyc7iHUIy36by62eea
         ZzMu2O+WgwUeB0eekkF4100jf4X+NDmPKA0lQWHlPb8jFI9yYVk9cLIm2BV3oBCg3Ksi
         35TZ4N/9qwfLzKC/4DUD0iuCsqnmvpa9ZXw1GdbPjjfVXwLG6QdAv5OYAUDaMAkGhf62
         kbBOO7kPSpI9YfnFiIrXmiedNeaFVHB1NxDYnZLb4pkfqkqRdD9xiB+/WurqNhgSWZJE
         5FSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258023; x=1703862823;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4V2ccNLv7fzBgrDA9NE+pKZEtsNt5JBlW/j5gZeAoxQ=;
        b=f4Yvht0AXKxrgnXE77ZF1RmuegbY+HgHeW2YD2jOThLGzEVKLJXwsSWyRnh1/9gy0W
         tf/CMAmIgGMwhhBVuzrLoxAgTzcaY/sTjcaZSzzMR7ahrqeU7CzWiuioOzygjk9B5YcR
         UPcHldUlRRbleSGZraYNCPd1rfvex6xUOA8Dadnto0EYKAwo4r4+q2CZe8Mgs56XGQHT
         BGCSKSkNTQXeFBbm7TbywY5W/BOoV2sgMO6kBKacz7wbOBZUY1hnbkeRcRKwPRoerY3C
         vD1jPsNoEPVvvZDT+Vsqv+C5LNQiUkcb12wP/KcsK5Exo0gesMCLVibVW/OpMic/HPo6
         uuNA==
X-Gm-Message-State: AOJu0Yy6WuLH6srq1m/E3X1j9YpOVOlnEi7w2+5OdzM/DewdI0zaGu0Q
	5pptNWhGKJ52wnvkD6c+/dk+Xo5cX6s=
X-Google-Smtp-Source: AGHT+IE/3AWabe7B55/sEwLUkis+9P0Cr660xvAYN/IeOC4KxvvX9AADNDzH0XBBpHD95ttIVEky2w==
X-Received: by 2002:ac2:4259:0:b0:50e:3877:caba with SMTP id m25-20020ac24259000000b0050e3877cabamr392669lfl.52.1703258022592;
        Fri, 22 Dec 2023 07:13:42 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 18/34] xen/riscv: introduce domain.h
Date: Fri, 22 Dec 2023 17:13:02 +0200
Message-ID: <6bec4f93bea5ae3e13ac314c59fa6b9898deb998.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.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 V3:
 - add SPDX
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
 - update the commit message
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/domain.h | 53 +++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/domain.h

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
new file mode 100644
index 0000000000..0f5dc2be40
--- /dev/null
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_DOMAIN_H__
+#define __ASM_RISCV_DOMAIN_H__
+
+#include <xen/xmalloc.h>
+#include <public/hvm/params.h>
+
+struct hvm_domain
+{
+    uint64_t              params[HVM_NR_PARAMS];
+};
+
+#define is_domain_direct_mapped(d) ((void)(d), 0)
+
+struct arch_vcpu_io {
+};
+
+struct arch_vcpu {
+};
+
+struct arch_domain {
+    struct hvm_domain hvm;
+};
+
+#include <xen/sched.h>
+
+static inline struct vcpu_guest_context *alloc_vcpu_guest_context(void)
+{
+    return xmalloc(struct vcpu_guest_context);
+}
+
+static inline void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
+{
+    xfree(vgc);
+}
+
+struct guest_memory_policy {};
+static inline void update_guest_memory_policy(struct vcpu *v,
+                                              struct guest_memory_policy *gmp)
+{}
+
+static inline void arch_vcpu_block(struct vcpu *v) {}
+
+#endif /* __ASM_RISCV_DOMAIN_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659425.1029130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDh-0003U0-5N; Fri, 22 Dec 2023 15:13:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659425.1029130; Fri, 22 Dec 2023 15:13:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDg-0003TJ-Vm; Fri, 22 Dec 2023 15:13:48 +0000
Received: by outflank-mailman (input) for mailman id 659425;
 Fri, 22 Dec 2023 15:13:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDf-0000EM-RY
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:47 +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 b3ae300e-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:46 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-50e384cd6ebso2165744e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:46 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3ae300e-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258025; x=1703862825; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lZzYufQNZjpcCeO79bMfJlqcSeS2q9i+NJUjGOoMktg=;
        b=GqxNI7l3IvQUrCjA2pmqzELRVAwM/eZ5jxbw9RplT9zwxcdvUeWvbTjvgudodxZSHC
         oHqED1qlg1DPygfnab4v9QPuDxpLBGo9Mj9bgseJZzMoVskCJdyTgrXdFJA33urCVtrf
         ObJZyGSk3v4E3z0grZlS+t5dL8c2mzQp3C39ituL7230ls4G2twFkBoCX4zvLrExwDuT
         eumIpHU6sfGgFPuS2jXp4AI3cHKfEUwWdfwRWxyRf8sR6rF69shz8MUzpgUrdTeKESqd
         1AmAzROAW3Ds9qZ01wXeDmjO5Dj2Tsi016Ewx4DJfcWJK/hduFSziqKifTfxlUvgHb54
         8eHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258025; x=1703862825;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lZzYufQNZjpcCeO79bMfJlqcSeS2q9i+NJUjGOoMktg=;
        b=eizwG3w5X3n9zzhCWs8DSqRVKKlx2rRiAvIxVQA5OMvg9nR/QQgmLIz/JAFyE1O0bR
         FYrWJUP9UKtv9Ml0+3/UDAytSXcvOUY9Jt/vZvdCR8hxw/6QtTVMmwToQluFBVLnT/rb
         BkYaAaMJM5HW2rJeNUv+z0bsGUloEI5z8DUJ38YEt1DOGqkuifiD2Fceck39Y1sWCj5j
         NH+i9xxVrmD2UvaMBqyXUwgCM2+bFiQEwAZXHciKtBHU2DAN8H99z8d+lhHYiBOq+AJL
         FLn6+Rc3P1YyWw7tXDKy0ZJnvZI+N5K6NQVGbYjS3WdoSZCuze0t7b1W91DG/6T5YkO1
         leqA==
X-Gm-Message-State: AOJu0Yy/un40VaH1ZbgZQTdvb/vCaG3AhL65IwzBvNFriFH9Ar1AINgx
	KZtG9JfMFEu94r4oG6jW2TJlSC9E7Fs=
X-Google-Smtp-Source: AGHT+IEa3Lci85EhlI7EpPIDFh0+qGFFKZULIcciEknrUzZzxtIMyZ6rBYeGHZ5G1fa/JP5TfkTZ3A==
X-Received: by 2002:ac2:51a7:0:b0:50d:1c5e:7982 with SMTP id f7-20020ac251a7000000b0050d1c5e7982mr492145lfk.182.1703258025192;
        Fri, 22 Dec 2023 07:13:45 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 20/34] xen/riscv: introduce irq.h
Date: Fri, 22 Dec 2023 17:13:04 +0200
Message-ID: <11613eb5a0378315d70fc2f4d4f744ede579cca3.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - add SPDX
 - remove all that was wraped to HAS_DEVICETREE_... as for RISC-V it is going to be
   always selected.
 - update the commit message
---
Changes in V2:
	- add ifdef CONFIG_HAS_DEVICE_TREE for things that shouldn't be
      in case !CONFIG_HAS_DEVICE_TREE
	- use proper includes.
---
 xen/arch/riscv/include/asm/irq.h | 37 ++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/irq.h

diff --git a/xen/arch/riscv/include/asm/irq.h b/xen/arch/riscv/include/asm/irq.h
new file mode 100644
index 0000000000..a4434fb8ae
--- /dev/null
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_IRQ_H__
+#define __ASM_RISCV_IRQ_H__
+
+#include <xen/bug.h>
+
+/* TODO */
+#define nr_irqs 0U
+#define nr_static_irqs 0
+#define arch_hwdom_irqs(domid) 0U
+
+#define domain_pirq_to_irq(d, pirq) (pirq)
+
+#define arch_evtchn_bind_pirq(d, pirq) ((void)((d) + (pirq)))
+
+struct arch_pirq {
+};
+
+struct arch_irq_desc {
+    unsigned int type;
+};
+
+static inline void arch_move_irqs(struct vcpu *v)
+{
+    BUG();
+}
+
+#endif /* __ASM_RISCV_IRQ_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659429.1029140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDj-00043w-LL; Fri, 22 Dec 2023 15:13:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659429.1029140; Fri, 22 Dec 2023 15:13:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDj-00043a-GI; Fri, 22 Dec 2023 15:13:51 +0000
Received: by outflank-mailman (input) for mailman id 659429;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDj-0000EM-02
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13: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 b58da1a9-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:49 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-50e67e37661so1184941e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:49 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b58da1a9-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258029; x=1703862829; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kWwkk+l5mzS2Ajj9aN3c5hR5kvo5QNNQX7kNmAH9sI4=;
        b=IwpcrHrO4MbvNr7H4xhkkzT3JwI09ySeyI5JB0eck1+Fs9QFfoiy7TnJBzBmnzaVtr
         f259wIVgvbYEk5XBwqNsoqExXe1HQdzleJ3Z6Z9SW9JnLzDBTNI7YoV3/epNMFt7IBFB
         FTi4OXiFGiu1+03khqOjR0eTryd73kYOB2ow97OPWqvClfGGq7aNGzdhBtpzze+QL1rd
         Oy2PzEeohwZstGEj4vSIlzy9RLLnfEJeP2s6CtBI2QFS4mlukZ4dtU0MF+46wL9jGjO6
         hwP/amQdiOoxcLDvJaBtqnKQTOzFJP2l0sc+pN3E6XF1WV2PU/025IaCAMr9UNuJUkv+
         IHww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258029; x=1703862829;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=kWwkk+l5mzS2Ajj9aN3c5hR5kvo5QNNQX7kNmAH9sI4=;
        b=fsRSLDnwAc5Q4Fz9V2teGJfTnZ5zPBoOJJuYDCrgDbQ17UtyS/ZX3fbR1zKj4QiFBC
         oKFLYuWLaalULEPuZ8cAAJbXmbtgMwz0mRnpSpY7kt1T2giuwrZ02sABP7lJbNHTQmxc
         Aua6k0umqxXjXr4TVkJvP3V5Dqk/Kx+1/VXizJAOAItXvKTygCjUMKyBZaSv3d+SQhtN
         Bh371l1Sqxxj7SN56PIuu39PcKrV5192XuNHGiKD5Yzx3/nnROewh5kVnSsTMaO5Szlv
         ZY4wB3DgrwWvzsaeh7lcy/knUcY027HxrMp+QxZ05S7meG3j3QveH/YP5o7K8FbBJv1S
         TM0g==
X-Gm-Message-State: AOJu0Yy8FFttjG7Xriq/y7Ywq23vAQVpltbx6pQ7QjzGx3+sWxDC+7Yu
	Q6cUUYQ10CWMj3q6boC5qnwazKlTQ+0=
X-Google-Smtp-Source: AGHT+IFdcyll+q9mn67kayTVvaW/q+8atY73YlGwgPnjqTrlpeG5g0NRR5j4/49y198Tu75srv+yUg==
X-Received: by 2002:ac2:5e33:0:b0:50e:6b48:5407 with SMTP id o19-20020ac25e33000000b0050e6b485407mr500089lfg.82.1703258028542;
        Fri, 22 Dec 2023 07:13:48 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 23/34] xen/riscv: introduce time.h
Date: Fri, 22 Dec 2023 17:13:07 +0200
Message-ID: <999bc036ac92124e51b42896647c4d249cd7b8b7.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.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 V3:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
 - add SPDX
 - Add new line
---
Changes in V2:
 -  change xen/lib.h to xen/bug.h
 - remove inclusion of <asm/processor.h> as it's not needed.
---
 xen/arch/riscv/include/asm/time.h | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/time.h

diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/asm/time.h
new file mode 100644
index 0000000000..1f22af3bce
--- /dev/null
+++ b/xen/arch/riscv/include/asm/time.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_TIME_H__
+#define __ASM_RISCV_TIME_H__
+
+#include <xen/bug.h>
+#include <asm/csr.h>
+
+struct vcpu;
+
+/* TODO: implement */
+static inline void force_update_vcpu_system_time(struct vcpu *v) { BUG(); }
+
+typedef unsigned long cycles_t;
+
+static inline cycles_t get_cycles(void)
+{
+	return csr_read(CSR_TIME);
+}
+
+#endif /* __ASM_RISCV_TIME_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659431.1029148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDl-0004Tu-70; Fri, 22 Dec 2023 15:13:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659431.1029148; Fri, 22 Dec 2023 15:13: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 1rGhDk-0004Rx-VN; Fri, 22 Dec 2023 15:13:52 +0000
Received: by outflank-mailman (input) for mailman id 659431;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDk-0000EM-00
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13: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 b5d4849c-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:50 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-50e6bcca684so531623e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:50 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5d4849c-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258029; x=1703862829; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=T52fIi71TBD9YYe45Jg/S335i1e9OJBp7DE409RKwwg=;
        b=IGljKhOGLYXlJgJV03dxSNBk1+mRe5F703064ChoG8WpTpF+zWAsWQkcSON1PizbpM
         eRKrgMcX+VR8h14IzL4x6dcHFSR4XZMSKyfeoY/GncL6n2q9UZ85pkpWMSvbBYFab7zG
         jnxXbVPm58NycnUXAONIXniRyjh4MkXFumBvsWDSEwx+b5tiV45DEoaXTzGfGmA+//is
         jxKvTR0OZuj0ZmcCt2r8jjAwIpPJa4nI7UOiydzAGsjmDFdtsApLkwDXCMu5Z/vJHRJF
         0VXgHLTBR/69rUGli/Cf0GRrQ595BsgYZ6q6GDUoscWLhlsk/nEWegalDW2gbLWflCCg
         N/Fg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258029; x=1703862829;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=T52fIi71TBD9YYe45Jg/S335i1e9OJBp7DE409RKwwg=;
        b=MDB7xgh3Em0ct95sTZAyGaWXqARKbc/T9GJlZ8Jndm36ALZaovBd4VB6czq+Wij1zA
         YwDC1mhxGizCKy387THD9suirvUXAs/EMcZ6uTLV/nf5rV/ERiMWwVth2ZqR3zVgjlf/
         oZYqze0DYc4G1xF+PhvZ4Rt3Q8x+Xit3jGObMTqEwC2je/LVSdJlaYpmJBZ+OMPhpFJd
         qx/QbWyCDM0cA/tqA0eMHlBxa6W93roUUDPunutqw5d7JLd89YRn+xHFmzpBjjzdRACs
         tZAnTpPwFNuJoNNLuIeUkAvbfMJ3KBbdgCHt+vvbzgAvCsBfAs9D7eCypqAedDyrPXAy
         rtgg==
X-Gm-Message-State: AOJu0Yw0sXT2X4ZdKBqIqH+H8TlRntgWvwMaK05R7T48Re6EtbYT6akJ
	bOUfBVdy23XqvLoDaJ02TCZ6CedifkE=
X-Google-Smtp-Source: AGHT+IGQXJGum15CcvPL14JMoNUzh9rD3gWGXNQtyvIOk6hSJHgzRUvC57lC84yap9EicWBfh3PDHQ==
X-Received: by 2002:a05:6512:3f12:b0:50e:684c:7207 with SMTP id y18-20020a0565123f1200b0050e684c7207mr499315lfa.86.1703258029256;
        Fri, 22 Dec 2023 07:13:49 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 24/34] xen/riscv: introduce event.h
Date: Fri, 22 Dec 2023 17:13:08 +0200
Message-ID: <c1d3fba3dbc52efcdd41b25a85bcfc7fb2b8b510.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - add SPDX
 - add BUG() inside stubs.
 - update the commit message
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/event.h | 40 ++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/event.h

diff --git a/xen/arch/riscv/include/asm/event.h b/xen/arch/riscv/include/asm/event.h
new file mode 100644
index 0000000000..65cc5ae168
--- /dev/null
+++ b/xen/arch/riscv/include/asm/event.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_EVENT_H__
+#define __ASM_RISCV_EVENT_H__
+
+#include <xen/bug.h>
+
+void vcpu_mark_events_pending(struct vcpu *v);
+
+static inline int vcpu_event_delivery_is_enabled(struct vcpu *v)
+{
+    BUG();
+    return 0;
+}
+
+static inline int local_events_need_delivery(void)
+{
+    BUG();
+    return 0;
+}
+
+static inline void local_event_delivery_enable(void)
+{
+    BUG();
+}
+
+/* No arch specific virq definition now. Default to global. */
+static inline bool arch_virq_is_global(unsigned int virq)
+{
+    return true;
+}
+
+#endif
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659434.1029158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDn-0004uR-5t; Fri, 22 Dec 2023 15:13:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659434.1029158; Fri, 22 Dec 2023 15:13:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDm-0004tu-S7; Fri, 22 Dec 2023 15:13:54 +0000
Received: by outflank-mailman (input) for mailman id 659434;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDm-0000EM-0d
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:54 +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 b6447457-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:50 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-50e34a72660so2373305e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:50 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6447457-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258030; x=1703862830; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OTY81kNTtV0M88vGk6AYNfxh2APHtVW/IF4Pvh94fAs=;
        b=FetxSrrHEBavznSBnjOBDpJ9qvhyvHFQEEEgfaHMNCAQUxLyZQnBVE1qF0KWVYL1c3
         8v70UnnIWl+QpnlrfRS67U/6JmNhJ0U7tcEWu1wAY4vXwzALM2lP8yvVtf5UtxCfyEY0
         ga9aD37E/UaeooPqTVYW9KX+JKwyNu5rWhTwpCQfQHZPj5RRzQ96OWaNK49Mnnf8HMuC
         3sr4FjO+eZXQdCAeGhQfoowUn03OdmUCu9fVJ1MZFn+F/3R7nyfFjHjFbaJzO1B50grN
         iVpxXoAE3Dg17E/h/ubwwdnlcd+cdd5j4UI36RitgBOcMRvWamWlnE8LE3onglYOFNIE
         DMSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258030; x=1703862830;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=OTY81kNTtV0M88vGk6AYNfxh2APHtVW/IF4Pvh94fAs=;
        b=wBqC2UYC6bcTLu0Fi7iVojTLYdKgzMLpAXHY0p5/3COtLwTcQ9NvQuZIoNKVGZXuMv
         0fLjW9Eyrg23Lx8GnlNVVDANDTdAL9lFg0JnVrEleCHZoyVWn83jp/Mtdl4RtDO6UFJI
         byjTDmu6v76d5KbYWLT7HfhWa+5ut4wu7WKmgTwzKVMV4d27SArl0cJxAYn5r2RrpMaw
         Wy8mZJO7NwGAdWztQgw0WEXp2c8teGwO6LQk7MhijDDQhg+5NIzG1Rf4wzU+8JRIIQRA
         Tam9A9Hj94h5qOojgnaOYyNYGB3sb0/5BpFN9F48RUOtYfwG1le09dCcHkReRdxYZEUH
         BhJw==
X-Gm-Message-State: AOJu0Yy5AKFRAH6b8zJ9EHMhV7McQkQ7MhlI/b2Dab9L08/Ym5awekpg
	EOiRcWdLXIBh8tRIOJk6LhFzfD0+dIg=
X-Google-Smtp-Source: AGHT+IF+v1dLHCp5UUK0fq7mogNXmzIe5SsEgHrdB0O/rRVOFvIuiYKhZkc1O03qWTmZv4KkL46dRA==
X-Received: by 2002:a05:6512:15a4:b0:50e:6958:24a with SMTP id bp36-20020a05651215a400b0050e6958024amr875772lfb.5.1703258030071;
        Fri, 22 Dec 2023 07:13:50 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v3 25/34] xen/riscv: introduce monitor.h
Date: Fri, 22 Dec 2023 17:13:09 +0200
Message-ID: <c075fef4593fc81bd69f084645493d41f9086b18.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 Taking into account conversion in [PATCH v6 0/9] Introduce generic headers
 (https://lore.kernel.org/xen-devel/cover.1703072575.git.oleksii.kurochko@gmail.com/)
 this patch can be changed
---
Changes in V3:
 - new patch.
---
 xen/arch/riscv/include/asm/monitor.h | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/monitor.h

diff --git a/xen/arch/riscv/include/asm/monitor.h b/xen/arch/riscv/include/asm/monitor.h
new file mode 100644
index 0000000000..f4fe2c0690
--- /dev/null
+++ b/xen/arch/riscv/include/asm/monitor.h
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_MONITOR_H__
+#define __ASM_RISCV_MONITOR_H__
+
+#include <xen/bug.h>
+
+#include <asm-generic/monitor.h>
+
+struct domain;
+
+static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
+{
+    BUG_ON("unimplemented");
+    return 0;
+}
+
+#endif /* __ASM_RISCV_MONITOR_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:13:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:13:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659437.1029167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDo-0005Kj-PH; Fri, 22 Dec 2023 15:13:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659437.1029167; Fri, 22 Dec 2023 15:13:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhDo-0005Ie-Ez; Fri, 22 Dec 2023 15:13:56 +0000
Received: by outflank-mailman (input) for mailman id 659437;
 Fri, 22 Dec 2023 15:13: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDn-0000EM-0w
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:55 +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 b6b03b49-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:51 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-50e3cdcf010so2164009e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:51 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6b03b49-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258031; x=1703862831; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8eSPhcTFUbPdwgMRF6vEav6OFJOc3ZFzJrrGmImsUM0=;
        b=EOGqhNVpiET431qw1h4wdrFYYucOEGr5chxN9RVNRCmkAMW5Kh/0QfBc/apq8vtaVS
         Y/bOwf2UOtZX1BOs6dRCGqHfz07iHchZzNVyLa4f5dfJ85NuPTTd9suB61XP0pG6ocOD
         6hqEIMW4mrzBOnbxN7OhNvGNobK/s/0wRkH6YzEmf6B5akQUlTWdPF9W6mxcvuMjw3dI
         99DfzJcM8RA50MnZRBD9neaUtduEfsE53OggZArSh+eBvD4108LqaUToBRffoMzMm87i
         YSyhjdJBGsjEw1ALLr3EdRwO1bXyJB5Axr4LrpyY2eP/KL9+McejE056t8xNzUN03xBG
         o9OA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258031; x=1703862831;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=8eSPhcTFUbPdwgMRF6vEav6OFJOc3ZFzJrrGmImsUM0=;
        b=AIUofAPWslNPup/RTc+1f2ohAiFJmtWhvAiTGTQl4HGwWZU3T4L0DT6HDDiXOoxBwP
         SyidFTHP/DR914XdUd76i3kRNUtlBLaULUeP2TucHfoQNlLJdUodjPT5fRFrtlIINgfj
         9uzKhAF0L8FK/HUlrm3BI5nKS3LMWW79DHiNNOkN27VQfkUR60fg8uRo/x3PLzUL7R0O
         zBrUpcC1OjymGGAEW0rKiRPxw/xWt5bf7JFoh4lTsJ71NFk24s0coXtk4fxmSFXaqXHJ
         gZJHULv4KFfa5UX8GK/Ddu+vFRTjKBif2Bu3ncgQxStAOIC3vJUUJlqDDlZaoLs1Rq68
         2vfA==
X-Gm-Message-State: AOJu0Yzk4s+9B2ed7q0u3G1row65yuzV8yCQOUyUV/Qw0eKjSOOf7uk8
	dwVXCGF8dqytqvsoABY3ynax39oNjF0=
X-Google-Smtp-Source: AGHT+IFEsG1MNqzjtUyGkWJ9ZAJ+YosHac50huzAaqYgJlmtxmj/WwHQhQuiJDgzV9FUBmOvcwQc8g==
X-Received: by 2002:ac2:5ed1:0:b0:50e:696e:168d with SMTP id d17-20020ac25ed1000000b0050e696e168dmr406590lfq.10.1703258030783;
        Fri, 22 Dec 2023 07:13:50 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 26/34] xen/riscv: add definition of __read_mostly
Date: Fri, 22 Dec 2023 17:13:10 +0200
Message-ID: <0ce2db672e336896761144b81b21ddf89329e00b.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The definition of __read_mostly should be removed in:
https://lore.kernel.org/xen-devel/f25eb5c9-7c14-6e23-8535-2c66772b333e@suse.com/

The patch introduces it in arch-specific header to not
block enabling of full Xen build for RISC-V.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
- [PATCH] move __read_mostly to xen/cache.h  [2]

Right now, the patch series doesn't have a direct dependency on [2] and it
provides __read_mostly in the patch:
    [PATCH v3 26/34] xen/riscv: add definition of __read_mostly
However, it will be dropped as soon as [2] is merged or at least when the
final version of the patch [2] is provided.

[2] https://lore.kernel.org/xen-devel/f25eb5c9-7c14-6e23-8535-2c66772b333e@suse.com/
---
 xen/arch/riscv/include/asm/cache.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/riscv/include/asm/cache.h b/xen/arch/riscv/include/asm/cache.h
index 69573eb051..94bd94db53 100644
--- a/xen/arch/riscv/include/asm/cache.h
+++ b/xen/arch/riscv/include/asm/cache.h
@@ -3,4 +3,6 @@
 #ifndef _ASM_RISCV_CACHE_H
 #define _ASM_RISCV_CACHE_H
 
+#define __read_mostly __section(".data.read_mostly")
+
 #endif /* _ASM_RISCV_CACHE_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:19:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:19:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659495.1029180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhJ8-0001Kp-Ei; Fri, 22 Dec 2023 15:19:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659495.1029180; Fri, 22 Dec 2023 15: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 1rGhJ8-0001Ki-Bk; Fri, 22 Dec 2023 15:19:26 +0000
Received: by outflank-mailman (input) for mailman id 659495;
 Fri, 22 Dec 2023 15:19: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDl-0007Ie-I9
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13: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 b73781d9-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:52 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-50e23a4df33so2371709e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:52 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b73781d9-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258031; x=1703862831; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n4dajvonh7p2dNVDQKVaYgfkmYnC6XrrNf5FliBDwEk=;
        b=ODjufzVW60is2uDmnbGJIqgytnGqAyaTeA2MHPATqdVd9R3MSDSX8jW3zCJWIDpR6b
         ug9gMs/ClY5ZxmyKq8hOzpZ3nbVa7paU0W8keKXD9JpfiUkJpfGgUbeTb12SpJzEANMS
         cxUKzTxPVu3X+lkAbNuTXxR3918iFRhNRXyCAgwRw5G53hJUO5sGBz8/O63qybI7Hz1u
         08gr/Zv5ST716X4OVGE+9dZPPLt8XbmBYRA9AWrIiyReQUSLx27N2Frk6Se+ld7cCQ+U
         ujLQHc432mUUEi35cNv7FOFFKSgHtorAEszcStBWJUTuL54QzBqeP0GFkLSN6/kAL2HV
         qEBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258031; x=1703862831;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=n4dajvonh7p2dNVDQKVaYgfkmYnC6XrrNf5FliBDwEk=;
        b=ll1edS6cy/N17TI3CCag+JoP22wTXRbQ9FdskwE63xX5CvnH/xhIoSsmm7JzpTBuwX
         7cF49cMHDO41mQZ44WXNC9A+Xb0RuM0/ubvPzVLjLYFnwgdtfNUppo/4nu3Jcv05Yu/W
         Ckm38z8p/Nr7ocFoGaqrI31lxRL34eqorCfTOkuTskVrMovmEqGTdFGD+se0tp7FTtoQ
         1NU1ZR2yPQea3f3GPMkxug/GuJKZ+b18WZOjmo6fh+24scSW/WNLh3ko48igc18f0/XM
         8OBSiVCMCVSy98303SssAIkHDIUUw2IoR9pkX+K9jlg7eVha2V9ONvpBES1ntm+/Bj/K
         atFA==
X-Gm-Message-State: AOJu0YxkWpwMklX8HWueSx2DXX936r5rlZjRIWaFe7FwMm30tAqYQVj9
	7xH40wvIjccGL5PjvnI3DWueq8jh1vs=
X-Google-Smtp-Source: AGHT+IFep3VFmnA/8jd+wAqjCvmLQK9PUeHJroMGSpFKvtKvD1wPEOIRkMbFa3HiLiY5Jdz1I7H3Aw==
X-Received: by 2002:a05:6512:144:b0:50e:3e3d:217c with SMTP id m4-20020a056512014400b0050e3e3d217cmr735545lfo.84.1703258031537;
        Fri, 22 Dec 2023 07:13:51 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 27/34] xen/riscv: define an address of frame table
Date: Fri, 22 Dec 2023 17:13:11 +0200
Message-ID: <d0a357e3b9597479b539e88915731b3f15489c04.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Also, the patch adds some helpful macros that assist in avoiding
the redefinition of memory layout for each MMU mode.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - drop OFFSET_BITS, and use PAGE_SHIFT instead.
 - code style fixes.
 - add comment how macros are useful.
 - move all memory related layout definitions close to comment with memory layout description.
 - make memory layout description generic for any MMU mode.
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/config.h | 85 +++++++++++++++++++----------
 1 file changed, 55 insertions(+), 30 deletions(-)

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index f0544c6a20..fb9fc9daaa 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -6,6 +6,14 @@
 #include <xen/const.h>
 #include <xen/page-size.h>
 
+#ifdef CONFIG_RISCV_64
+#define CONFIG_PAGING_LEVELS 3
+#define RV_STAGE1_MODE SATP_MODE_SV39
+#else
+#define CONFIG_PAGING_LEVELS 2
+#define RV_STAGE1_MODE SATP_MODE_SV32
+#endif
+
 /*
  * RISC-V64 Layout:
  *
@@ -22,25 +30,56 @@
  *
  * It means that:
  *   top VA bits are simply ignored for the purpose of translating to PA.
+#endif
  *
- * ============================================================================
- *    Start addr    |   End addr        |  Size  | Slot       |area description
- * ============================================================================
- * FFFFFFFFC0800000 |  FFFFFFFFFFFFFFFF |1016 MB | L2 511     | Unused
- * FFFFFFFFC0600000 |  FFFFFFFFC0800000 |  2 MB  | L2 511     | Fixmap
- * FFFFFFFFC0200000 |  FFFFFFFFC0600000 |  4 MB  | L2 511     | FDT
- * FFFFFFFFC0000000 |  FFFFFFFFC0200000 |  2 MB  | L2 511     | Xen
- *                 ...                  |  1 GB  | L2 510     | Unused
- * 0000003200000000 |  0000007F80000000 | 309 GB | L2 200-509 | Direct map
- *                 ...                  |  1 GB  | L2 199     | Unused
- * 0000003100000000 |  00000031C0000000 |  3 GB  | L2 196-198 | Frametable
- *                 ...                  |  1 GB  | L2 195     | Unused
- * 0000003080000000 |  00000030C0000000 |  1 GB  | L2 194     | VMAP
- *                 ...                  | 194 GB | L2 0 - 193 | Unused
- * ============================================================================
+ *       SATP_MODE_SV32   | SATP_MODE_SV39   | SATP_MODE_SV48   | SATP_MODE_SV57
+ *      ==================|==================|==================|=================
+ * BA0 | FFFFFFFFFFE00000 | FFFFFFFFC0000000 | FFFFFF8000000000 | FFFF000000000000
+ * BA1 | 0000000019000000 | 0000003200000000 | 0000640000000000 | 00C8000000000000
+ * BA2 | 0000000018800000 | 0000003100000000 | 0000620000000000 | 00C4000000000000
+ * BA3 | 0000000018400000 | 0000003080000000 | 0000610000000000 | 00C2000000000000
  *
-#endif
+ * ===============================================================================
+ * Start addr     |   End addr          |  Size  | Root PT slot | Area description
+ * ===============================================================================
+ * BA0 + 0x800000 |  FFFFFFFFFFFFFFFF   |1016 MB |     511      | Unused
+ * BA0 + 0x400000 |  BA0 + 0x800000     |  2 MB  |     511      | Fixmap
+ * BA0 + 0x200000 |  BA0 + 0x400000     |  4 MB  |     511      | FDT
+ * BA0            |  BA0 + 0x200000     |  2 MB  |     511      | Xen
+ *                 ...                  |  1 GB  |     510      | Unused
+ * BA1 + 0x000000 |  BA1 + 0x4D80000000 | 309 GB |   200-509    | Direct map
+ *                 ...                  |  1 GB  |     199      | Unused
+ * BA2 + 0x000000 |  BA2 + 0xC0000000   |  3 GB  |   196-198    | Frametable
+ *                 ...                  |  1 GB  |     195      | Unused
+ * BA3 + 0x000000 |  BA3 + 0x40000000   |  1 GB  |     194      | VMAP
+ *                 ...                  | 194 GB |   0 - 193    | Unused
+ * ===============================================================================
  */
+#define VPN_BITS    (9)
+
+#define HYP_PT_ROOT_LEVEL (CONFIG_PAGING_LEVELS - 1)
+
+#ifdef CONFIG_RISCV_64
+
+#define SLOTN_ENTRY_BITS        (HYP_PT_ROOT_LEVEL * VPN_BITS + PAGE_SHIFT)
+#define SLOTN(slot)             (_AT(vaddr_t, slot) << SLOTN_ENTRY_BITS)
+#define SLOTN_ENTRY_SIZE        SLOTN(1)
+
+#define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL) + 1 - GB(1)) */
+
+#define FRAMETABLE_VIRT_START   SLOTN(196)
+#define FRAMETABLE_SIZE         GB(3)
+#define FRAMETABLE_NR           (FRAMETABLE_SIZE / sizeof(*frame_table))
+#define FRAMETABLE_VIRT_END     (FRAMETABLE_VIRT_START + FRAMETABLE_SIZE - 1)
+
+#define VMAP_VIRT_START         SLOTN(194)
+#define VMAP_VIRT_SIZE          GB(1)
+
+#else
+#error "RV32 isn't supported"
+#endif
+
+#define HYPERVISOR_VIRT_START XEN_VIRT_START
 
 #if defined(CONFIG_RISCV_64)
 # define LONG_BYTEORDER 3
@@ -77,24 +116,10 @@
   name:
 #endif
 
-#ifdef CONFIG_RISCV_64
-#define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL) + 1 - GB(1)) */
-#else
-#error "RV32 isn't supported"
-#endif
-
 #define SMP_CACHE_BYTES (1 << 6)
 
 #define STACK_SIZE PAGE_SIZE
 
-#ifdef CONFIG_RISCV_64
-#define CONFIG_PAGING_LEVELS 3
-#define RV_STAGE1_MODE SATP_MODE_SV39
-#else
-#define CONFIG_PAGING_LEVELS 2
-#define RV_STAGE1_MODE SATP_MODE_SV32
-#endif
-
 #define IDENT_AREA_SIZE 64
 
 #endif /* __RISCV_CONFIG_H__ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:19:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:19:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659496.1029190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhJD-0001cM-Mp; Fri, 22 Dec 2023 15:19:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659496.1029190; Fri, 22 Dec 2023 15: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 1rGhJD-0001cF-JQ; Fri, 22 Dec 2023 15:19:31 +0000
Received: by outflank-mailman (input) for mailman id 659496;
 Fri, 22 Dec 2023 15:19: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDr-0007Ie-JZ
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:59 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba924920-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:57 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-50e62c1245eso1805049e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:57 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ba924920-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258037; x=1703862837; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3NW4PP+xPCMRJ4FuaFoJrjezV0TKnIJLshslvX7panQ=;
        b=m2zyDF7WCk/RR1P1nHCOsqWyPd/3v27oJ0hCZfyTMiowCcGAFhagPSykvxbJS8Q9Za
         8yTeS90AMI2z09lDXQOuzBcXvSQxPxH/lthmrc2Vfn0rVRAL2s+ZpvMQBQPJ+8ksfPTl
         Ij/Nuop/bjOtovER9ILAoDVzzkaTe3ZK9KvLxi470Ebl0t0ksn1AFyG2sQKgMjsWduMi
         6ZW4v9VZDTqYHcEk1aIdS4IfRZNzuanrJO4Xl1ZMK2lFUSEhUvxCh8+39IJzshqj/BTY
         k4PiFNxT/LUp1ZB2FkPSAU4eCvwPLFdt2iOMgQYv4lvyblmh75wfPHAYQvXywmB77QY4
         9QYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258037; x=1703862837;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=3NW4PP+xPCMRJ4FuaFoJrjezV0TKnIJLshslvX7panQ=;
        b=OnzptD7bwdNOPmarbUkgF8BRGGhZTeBH4oHATDEiUfzw7e9YKNoAl59R2Fr6nGYr/y
         jfEXxDg/UVXrKf3lI5ZZfTphO9HdyNNKxFzeUGXT+mTwd4bnjLMDyps7oQK/KJ+/e0l8
         juCVOdHfaaGyXQnvoilz1dvi4bMFwWPi6mWFWqX/5cgoq/rHcoY1xj9utqhYx/esV3/y
         B3H1moDl1QtsxUR0oHwfX9X4hI6N1gjtAeB4n6aZ+baQsuAciX9IP7I0aPehZX6i5+af
         m6yemzsfM7AxomEMruIykd+mxJqBgiSaIb7dYjaq+DCqqSJG84wIwQ4eO8JJljoDrnUu
         rs7w==
X-Gm-Message-State: AOJu0Yxg4cY399fo31Sk31FqW7lK3IotiJJ5Jsitkk3rK02mCarqS92P
	kxKGMgDcuKA8guESd9CkkWwgRuCTsno=
X-Google-Smtp-Source: AGHT+IGfSQcAwFKGAgxwIoRm6aEPBfs2H1i+KvqqdiT1wZX7GIlLMfsZcM7TsXl/53HMrWbNoNBvdw==
X-Received: by 2002:a05:6512:36d0:b0:50e:6d47:11dc with SMTP id e16-20020a05651236d000b0050e6d4711dcmr244252lfs.4.1703258037196;
        Fri, 22 Dec 2023 07:13:57 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 33/34] xen/riscv: enable full Xen build
Date: Fri, 22 Dec 2023 17:13:17 +0200
Message-ID: <160c29e5733ac52965b29f52bc21774710a69816.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.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 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 ----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 5523191bb7..c10d43c7e5 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -11,10 +11,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 8403f96b6f..12b1673fae 100644
--- a/xen/arch/riscv/arch.mk
+++ b/xen/arch/riscv/arch.mk
@@ -13,7 +13,3 @@ riscv-march-$(CONFIG_RISCV_ISA_C)       := $(riscv-march-y)c
 # -mcmodel=medlow would force Xen into the lower half.
 
 CFLAGS += -march=$(riscv-march-y) -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 =
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:19:47 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659498.1029200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhJS-0002AL-TW; Fri, 22 Dec 2023 15:19:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659498.1029200; Fri, 22 Dec 2023 15:19:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhJS-0002AE-Qs; Fri, 22 Dec 2023 15:19:46 +0000
Received: by outflank-mailman (input) for mailman id 659498;
 Fri, 22 Dec 2023 15:19:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDn-0007Ie-MB
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:55 +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 b8f8621c-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:55 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-50e2d00f99cso2278210e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:55 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8f8621c-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258034; x=1703862834; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x8FSka20emVR5MBynLJ4eD5Np71hFeYAHDuqjNk27Ic=;
        b=Xr8WVsyMz4B78e7x78SypHC/PCBVWSY9rmU98hjGJh8bSrpznojDSDrKNpjfhZPx73
         MX9rgmOIYvGI/Xa/N26lFPuQrRg8a5qyl/ik9D8HkjEH5cmCW95R2regd/cBRo4ZuPRs
         W6UyZNqN6YlnrpfumTnoGmZYfCLKlSxur4VJPnIjY76TG2/lnAaOwJe79CpKp1MsgyNN
         Y3mIG6D5EKpYvE19r4MW0aGT0UoksLFr5vgQDRpIp6jqR+lICW6pDh/PRwhKGPCF1YaE
         tQGwZ+eOTCkfXxgmQmCPvMTqjr/wZAEi5hKkIl2TPQ7t1pTgC8Z8BFrPgEA0bhLBX6UZ
         e2oA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258034; x=1703862834;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=x8FSka20emVR5MBynLJ4eD5Np71hFeYAHDuqjNk27Ic=;
        b=URm9NbvIoNfZhy+h9xhysyv1FvlSbf+kOvu8cn50wRmz+XXMnPgv1Meayje78EGf74
         tWK2RXbvduY8neZDCN8FB6q1ESAl5D6/KRFohog/VA/ThyUaA/QOr2qmy0cABqLXFtoE
         0YsJjaWsZYv+bTQ/09DECqPq6FOA70ox1UwDyCcO+gG/0lRgWy8n7+SHXwWvkAe1sW96
         3v2Ae/zwMEeT7r1mCHzLaHc7nbENfROx6LycFKZpUBKiJi4daUX9to/2zRYizvYgh9nO
         klj8wk9OAKOuhavSa9W3CIWrWS5+bVEGa/MyjSNQQ43ZZ5PNXvyw5jz8hUSDf4KaDg6Q
         dsEw==
X-Gm-Message-State: AOJu0Yw89FkzLTtm4baKk6jW6ZulgiLAdeGJocCeXMhkxHHtY9/d0A/c
	gMuUJg98Y2qMhyPb7e+D+HRVk9GnTyU=
X-Google-Smtp-Source: AGHT+IHjJ2HZBHWS5du2wbhHvQ9CEtfMPB0lh9DE4LLCqS2POsqWxKIBTwWu1DIuXeOnrNvcQXeuoQ==
X-Received: by 2002:ac2:4352:0:b0:50e:3f2e:c726 with SMTP id o18-20020ac24352000000b0050e3f2ec726mr816019lfl.87.1703258033996;
        Fri, 22 Dec 2023 07:13:53 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 30/34] xen/riscv: add minimal stuff to processor.h to build full Xen
Date: Fri, 22 Dec 2023 17:13:14 +0200
Message-ID: <5bd7c5db6638f09dabdc13a6e12f0b204eacb234.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - Update the commit message
 - rename get_processor_id to smp_processor_id
 - code style fixes
 - update the cpu_relax instruction: use pause instruction instead of div %0, %0, zero
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/processor.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h
index 6db681d805..a3bff6c9c3 100644
--- a/xen/arch/riscv/include/asm/processor.h
+++ b/xen/arch/riscv/include/asm/processor.h
@@ -12,6 +12,9 @@
 
 #ifndef __ASSEMBLY__
 
+/* TODO: need to be implemeted */
+#define smp_processor_id() 0
+
 /* On stack VCPU state */
 struct cpu_user_regs
 {
@@ -53,6 +56,18 @@ struct cpu_user_regs
     unsigned long pregs;
 };
 
+/* TODO: need to implement */
+#define cpu_to_core(cpu)   (0)
+#define cpu_to_socket(cpu) (0)
+
+static inline void cpu_relax(void)
+{
+    /* Encoding of the pause instruction */
+    __asm__ __volatile__ ( ".insn 0x100000F" );
+
+    barrier();
+}
+
 static inline void wfi(void)
 {
     __asm__ __volatile__ ("wfi");
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:20:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:20:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659507.1029210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhJt-0003ny-9k; Fri, 22 Dec 2023 15:20:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659507.1029210; Fri, 22 Dec 2023 15: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 1rGhJt-0003nr-6i; Fri, 22 Dec 2023 15:20:13 +0000
Received: by outflank-mailman (input) for mailman id 659507;
 Fri, 22 Dec 2023 15: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDs-0007Ie-Jq
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:14:00 +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 bb08e225-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:58 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-50e6984db43so736004e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:58 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb08e225-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258038; x=1703862838; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0PCAiHEQXj9LjYzTOkcuB9LrGjzg6HI3eMNpgS8Jl0o=;
        b=AI1nOfU+iSE3m+CWoUqLy6iCFy+nwBWg4J2TiPuMmM1vUW5JKhur0QZNMRGb1D/AL8
         1XFpULd0bISGJRrd836dS+Z0E+5NsaHaFTMJGWs0psm0Q4HqP5ooQ/Y0iJNTtPhBZymV
         6RTenbhsCTMhwtBbo2ZGLCorH+dsSs2jGJ9FzO079BUNB/Yt1Z1vxhnLRujCmP/c34W3
         l3d9OEXIOTb0/QuM4NMBSj9RAMXJ9OPm92fKhxBCYt8YeZYfefrbL3erlaxFmEggcUG3
         vJILdBOLZ+UfRcmdC/gjW09ard3yeSCwgJA4Hg/E4kBP33+TIWrJ5kuPnw0VsX5UmkzG
         qOMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258038; x=1703862838;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0PCAiHEQXj9LjYzTOkcuB9LrGjzg6HI3eMNpgS8Jl0o=;
        b=ItKj4cwGW1ZUpJCoYeED3Lx7fucB7JCdkL31pVWUbMvR5uXIJi2awykHq3K3JlRIXG
         2vUFoghwQlODYX1g3pUv0tUiZhLrNDyIIfZnPBzh84JR2q+s4OdbUeVi73woQleY9Irm
         kXgQXXWJR5fWRE1o4i/IhARDMRHs8PYpGAn9UBESWihbf1mKorEjegiBtG+wnr6qIJub
         46feSQkrjRUdhDhd1+GvgSK9W1zMCrxtxMkDOw0nk1NfK192JhzknqTdOSom+IDrjiib
         lk2pByBpTYHW4yR2d/UWPwKduScQQ/fng9m90QA0WEt94Suh3gRrAwrX6lj7avRVadUL
         A6Eg==
X-Gm-Message-State: AOJu0YzENETG68pRDTf2p8ks8hHG5gf1npNgQWixnnU0KBTKnH4+Euxu
	z40cufcKxk4Of2Cs0etpzDxSd97Zlkc=
X-Google-Smtp-Source: AGHT+IGwLed/YeTdr1fhgZs8ZC3Lq3tWyDc+Ndpo2my/wfjs9YALjcx+wYNbzm9t5EZLNp7Os3M20g==
X-Received: by 2002:ac2:5b9a:0:b0:50e:3e13:e142 with SMTP id o26-20020ac25b9a000000b0050e3e13e142mr701162lfn.118.1703258037991;
        Fri, 22 Dec 2023 07:13:57 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 34/34] xen/README: add compiler and binutils versions for RISC-V64
Date: Fri, 22 Dec 2023 17:13:18 +0200
Message-ID: <c4d579f02b431d6ac9366dee73ebd7ab74e44715.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 Changes in V3:
  - new patch
---
 README | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/README b/README
index c8a108449e..1015a285c0 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 13.2.1 or later
+        - GNU Binutils 2.40 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.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:22:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659519.1029219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhMD-0004i0-M8; Fri, 22 Dec 2023 15:22:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659519.1029219; Fri, 22 Dec 2023 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 1rGhMD-0004ht-Ie; Fri, 22 Dec 2023 15:22:37 +0000
Received: by outflank-mailman (input) for mailman id 659519;
 Fri, 22 Dec 2023 15:22:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDi-0007Ie-Hb
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:50 +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 b519b854-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:48 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2cc9b31a27bso23537211fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:48 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b519b854-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258028; x=1703862828; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iERJyBx2zMVd360kKc+64bkAZfqJHhsH6Dyb71/j52s=;
        b=lpW5iBbGPGBe8aLwrbtplCJn+VbwEn9UvWXayFFBFdJMoxk1QV+34671A8HGV2aMzA
         YXUvJEQGoARfqzM2T0ULoS7YhiUZ4BRt3T8y8jrQJAsWAMGSiwV8F5rXdk1bL9VsTjZp
         NNPoU4SRjt+cnCUvxYwGY9f5/TnPxEQCo+26wjYM2wQ/2qfRF3TGU4i/RNRsDyRpAMZE
         SLD0RoaXUXqfB064HzxpZ0N0y+KgmxWhOJFMRM5n4GjvaGFSGKovUU8PJkWN8wk8Occb
         8qsS9ZG4WnaYIZ3zMGVq5O4WX5DB+L+7a+gwtClMSZICxdpnRIr4Tsa5QV69DICbvbJo
         9XJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258028; x=1703862828;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iERJyBx2zMVd360kKc+64bkAZfqJHhsH6Dyb71/j52s=;
        b=MZfhe8659YumzskbeqM5Q8rHY2kSFpQtlyZGtvoE8cSP9MuGAhZGOC9c/aheRIEYg+
         W4MKQMz0bGRHWsznMHKiHMD7RghTef+JJDAQh49Chxwy/RjMuxW5YY6bMBkxt4Pzs+/J
         l+Ddn7XTiS0gqnlND+bra2G2ksJJgU3gwFqBu6yPmxXEDqAAarPqvVyGbwFpA/4+v1mo
         f36EJSiIfyXakM+e9P0LO0l9EpzcMClveLdKVKXM5RxMVieHdU4Fbk5TBDhml0ltTkbq
         vDLe9SFiixiQeSZg5H7vF4N1TSxVXqjEkmrJcXfEy+ZSDWKHpyT2HIF/b4pkqF13EsHK
         DUmQ==
X-Gm-Message-State: AOJu0YwB8IannZJ8NLXKFQeOYLMFLSWNC2PjRPmdbrVe+/V8ZNa8v9ir
	87OJ7kwG4X6ADmkn2jxmvOh5Y7irQx8=
X-Google-Smtp-Source: AGHT+IHNxMCwb10deT2JxAljJ2aSodr2v2rO1rU8SU44/5s1W0y/552HAFefOab01+7bbyoHQhsDfw==
X-Received: by 2002:ac2:4a67:0:b0:50e:6d96:4b28 with SMTP id q7-20020ac24a67000000b0050e6d964b28mr203058lfp.137.1703258027760;
        Fri, 22 Dec 2023 07:13:47 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 22/34] xen/riscv: introduce regs.h
Date: Fri, 22 Dec 2023 17:13:06 +0200
Message-ID: <3d1ae540120804af5fc812a1492931afac66bd39.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - update the commit message
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
 - remove "include <asm/current.h>" and use a forward declaration instead.
---
Changes in V2:
 - change xen/lib.h to xen/bug.h
 - remove unnecessary empty line
---
 xen/arch/riscv/include/asm/regs.h | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/regs.h

diff --git a/xen/arch/riscv/include/asm/regs.h b/xen/arch/riscv/include/asm/regs.h
new file mode 100644
index 0000000000..86bebc5810
--- /dev/null
+++ b/xen/arch/riscv/include/asm/regs.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ARM_RISCV_REGS_H__
+#define __ARM_RISCV_REGS_H__
+
+#ifndef __ASSEMBLY__
+
+#include <xen/bug.h>
+
+#define hyp_mode(r)     (0)
+
+struct cpu_user_regs;
+
+static inline bool guest_mode(const struct cpu_user_regs *r)
+{
+    BUG();
+}
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ARM_RISCV_REGS_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:24:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:24:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659535.1029230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhNb-0005aP-0M; Fri, 22 Dec 2023 15:24:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659535.1029230; Fri, 22 Dec 2023 15: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 1rGhNa-0005aI-Ta; Fri, 22 Dec 2023 15:24:02 +0000
Received: by outflank-mailman (input) for mailman id 659535;
 Fri, 22 Dec 2023 15: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDs-0000EM-1v
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:14:00 +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 b97f9e37-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:56 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-50e6ee5b7ffso192009e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:56 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b97f9e37-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258035; x=1703862835; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=frli1aD+HGGze4OEMxoJ745JDQDclWlmSm+0uAYhNCA=;
        b=fr6dBkE1qS/XjHXGqx5HpFRMFuEohCBx4XiQkmmwBdhAQkQCvz740fIe50uRAudmJe
         33/HgSJo8zJWqth9IzsXM57R4icHdgtRtKqWLjiZha7VoIgorahawtrWrdpkRVplNt+q
         +lyuobcZAQmJp/+xZHRfoo7QKuGNXkyG9DPSPPYfdvrz52Ykz6LoBJUk835vW2R6rlTT
         OL/QFCVHbrMZXiLaqQmOGtlVRGsEWHEmHsYcuEnecs4bw6v4y2/o3P/ZEFUyN5OT4qNY
         KYb520uG8FfP+6TEenvTzBLNpHxQQ+nbWyVSoq7W1Z9dlPRFLPug0z4OnLL8Sur73JzI
         nDYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258035; x=1703862835;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=frli1aD+HGGze4OEMxoJ745JDQDclWlmSm+0uAYhNCA=;
        b=duhpVUAAx7XF9pvk7Rgh1y29RBuLeAW6hzfXl0E4OJvst4CXrkcLnfPH2vgz0KbVUm
         wLQ2wt/xe2CJm0wlXTrQ+wGYx5BqEVBVwsG8Yq8xo9+1cUjxJRxt9YkYLlNxZeoC3Lo2
         u7pug+49kawTpJe16FME/P2xQAo9x27RYRHSiaPyKWymywiyuwo+l40hj3MXHR1I3oXT
         dtFo5e9deR+fNW+GEYb1UX0gQxRsG2h/v6oPvTZ9qiC6mn84dF1WL/1hOT1AZ9jDFrVF
         uoiu4qfoodYx/InoJxN/WT9i+58lHfWYtTLX5Tgf8VDzvPXh9/8VCsSqkAdpkpeILgUB
         OEKA==
X-Gm-Message-State: AOJu0YxzGsM6xMkJa4d/YIqDZFuc1PYODRjDF9zG+5LOPwi2CEt+rnXn
	I2dsdS5+cv6B99UoyMFuqsZoZNLDba0=
X-Google-Smtp-Source: AGHT+IFZCNPquwefqv8QO+Do6E1jJO4MSuvYOlKcjviH7UvUQx1NL8Z7lBrk6DEahlfXPm4tCrV9AA==
X-Received: by 2002:a05:6512:ea8:b0:50e:34df:7530 with SMTP id bi40-20020a0565120ea800b0050e34df7530mr1256572lfb.32.1703258035353;
        Fri, 22 Dec 2023 07:13:55 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 31/34] xen/riscv: add minimal stuff to mm.h to build full Xen
Date: Fri, 22 Dec 2023 17:13:15 +0200
Message-ID: <4411f6af38586074b347cd6005f19f9c670faa74.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - update the commit message
 - 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/config.h |   2 +
 xen/arch/riscv/include/asm/mm.h     | 248 ++++++++++++++++++++++++++++
 2 files changed, 250 insertions(+)

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index fb9fc9daaa..400309f4ef 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -67,6 +67,8 @@
 
 #define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL) + 1 - GB(1)) */
 
+#define DIRECTMAP_VIRT_START    SLOTN(200)
+
 #define FRAMETABLE_VIRT_START   SLOTN(196)
 #define FRAMETABLE_SIZE         GB(3)
 #define FRAMETABLE_NR           (FRAMETABLE_SIZE / sizeof(*frame_table))
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 57026e134d..14fce72fde 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -3,8 +3,251 @@
 #ifndef _ASM_RISCV_MM_H
 #define _ASM_RISCV_MM_H
 
+#include <public/xen.h>
+#include <xen/pdx.h>
+#include <xen/types.h>
+
+#include <asm/page.h>
 #include <asm/page-bits.h>
 
+#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))
+#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))
+
+#define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
+#define maddr_to_virt(pa) ((void *)((paddr_t)(pa) | DIRECTMAP_VIRT_START))
+
+/* Convert between Xen-heap virtual addresses and machine frame numbers. */
+#define __virt_to_mfn(va) (virt_to_maddr(va) >> PAGE_SHIFT)
+#define __mfn_to_virt(mfn) maddr_to_virt((paddr_t)(mfn) << PAGE_SHIFT)
+
+/* Convert between Xen-heap virtual addresses and page-info structures. */
+static inline struct page_info *virt_to_page(const void *v)
+{
+    BUG();
+    return NULL;
+}
+
+/*
+ * 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, but not as a shadow. */
+        struct {
+            /* Owner of this page (zero 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;
+    };
+    uint64_t pad;
+};
+
+#define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
+
+/* PDX of the first page in the frame table. */
+extern unsigned long frametable_base_pdx;
+
+/* Convert between machine frame numbers and page-info structures. */
+#define mfn_to_page(mfn)                                            \
+    (frame_table + (mfn_to_pdx(mfn) - frametable_base_pdx))
+#define page_to_mfn(pg)                                             \
+    pdx_to_mfn((unsigned long)((pg) - frame_table) + frametable_base_pdx)
+
+static inline void *page_to_virt(const struct page_info *pg)
+{
+    return mfn_to_virt(mfn_x(page_to_mfn(pg)));
+}
+
+/*
+ * 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)
+
+/* Xen always owns P2M on RISC-V */
+#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 (16 + 5)
+
+static inline unsigned long domain_get_maximum_gpfn(struct domain *d)
+{
+    BUG();
+    return 0;
+}
+
+static inline long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    BUG();
+    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 page_state_is(pg, st) (((pg)->count_info&PGC_state) == PGC_state_##st)
+
+#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(&_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 mfn_to_gfn(d, mfn) ((void)(d), _gfn(mfn_x(mfn)))
+
+#define domain_set_alloc_bitsize(d) ((void)0)
+#define domain_clamp_alloc_bitsize(d, b) (b)
+
+#define PFN_ORDER(_pfn) ((_pfn)->v.free.order)
+
 extern unsigned char cpu0_boot_stack[];
 
 void setup_initial_pagetables(void);
@@ -17,4 +260,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 */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:24:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:24:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659539.1029240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhO8-0006Ap-90; Fri, 22 Dec 2023 15:24:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659539.1029240; Fri, 22 Dec 2023 15:24:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhO8-0006Ah-6P; Fri, 22 Dec 2023 15:24:36 +0000
Received: by outflank-mailman (input) for mailman id 659539;
 Fri, 22 Dec 2023 15:24: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDh-0007Ie-HZ
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:49 +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 b477d9f3-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:47 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-50e4a637958so2426131e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:47 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b477d9f3-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258026; x=1703862826; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X2XgyDBcB0wcGp/eGfwcZrl9kaDJvnjyiwZy9l3W62o=;
        b=Fg1lQOU9rBjX8r+NJIeKiH7DSkZrrf8YZJshrxyjoRGXkqZ05HblmECNlCCUm5+1Zs
         oPJMT+dHfwtpZd7xlGFrcvVTYJ9BxXtCKsz7/u6485MQOstOS5V7bVk0DVj0yRflioDU
         FxrElPfGN4KOsUiCt5KLJ0L2G/O5r5UbAmnQgnoBtZHtuFS20WiKUGvypQbaVtxT3/iL
         4HyQLiulEjQ9SvYWwHUfmRUwxa0HzkSH3JpAgTI+rbVH++4F3v2IytA9rk49Eeu9wZfP
         nSR+tP+5yiM/52Q5zDgM/DOEm7/Wl974JvyU2ABv9s9z8A3RwhyC0z6Un8qz3m7yqeGg
         /HDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258026; x=1703862826;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=X2XgyDBcB0wcGp/eGfwcZrl9kaDJvnjyiwZy9l3W62o=;
        b=Y/+U26X/1s0MRdsNDerK3KvaVEY5eI7Fbc2RUg2ytkW1KC9N/ALhoOZ2+6NQEvAtI2
         /ad/R14Ct7MGNIZ6+dYr4MT2L+Ru3krecvsfLCOX2fuldmeMTZaelXEX2D3H+lJnZ1gL
         L1hud6EvDwYziBugDUd3Ko4yQfjiqOR52db+b01B5z0VNWCOCBwevzlY3236NcywI+rh
         mc313LUyEkVZKZgiVEw7sZnYTak1XdGd7QiEpbezMDQIKU8JU2ICg7Y/VM8BRYb87I4V
         c3cVjWcCFFVNAE5v4j9p1e1sN/ta3gt9wdBQCeJJ0sieFOhTby42VhY3L6FKFOWPtLaX
         Nz+A==
X-Gm-Message-State: AOJu0Yy9yer93aI3C4qbXvpcePh7Qz/CApG7jFtSZmn/pLor6H+ywcST
	bYxz8aylVdBLvFMvQXpZbroQo7WY3K4=
X-Google-Smtp-Source: AGHT+IFXlcx/J+Wls40o8XEL6UZ9HqMfyy2MVVMj21ySD20VMnVDQq8+43xyNlSyIR/iyL3GdDY2FQ==
X-Received: by 2002:a05:6512:2185:b0:50e:3082:1afe with SMTP id b5-20020a056512218500b0050e30821afemr340432lft.22.1703258026484;
        Fri, 22 Dec 2023 07:13:46 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v3 21/34] xen/riscv: introduce p2m.h
Date: Fri, 22 Dec 2023 17:13:05 +0200
Message-ID: <c3b1f24aea1ba01505697717b240c8d036abfee1.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - add SPDX
 - drop unneeded for now p2m types.
 - return false in all functions implemented with BUG() inside.
 - update the commit message
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/ppc/include/asm/p2m.h   |   3 +-
 xen/arch/riscv/include/asm/p2m.h | 102 +++++++++++++++++++++++++++++++
 2 files changed, 103 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/p2m.h

diff --git a/xen/arch/ppc/include/asm/p2m.h b/xen/arch/ppc/include/asm/p2m.h
index 25ba054668..3bc05b7c05 100644
--- a/xen/arch/ppc/include/asm/p2m.h
+++ b/xen/arch/ppc/include/asm/p2m.h
@@ -50,8 +50,7 @@ static inline void memory_type_changed(struct domain *d)
 static inline int guest_physmap_mark_populate_on_demand(struct domain *d, unsigned long gfn,
                                                         unsigned int order)
 {
-    BUG_ON("unimplemented");
-    return 1;
+    return -EOPNOTSUPP;
 }
 
 static inline int guest_physmap_add_entry(struct domain *d,
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
new file mode 100644
index 0000000000..d270ef6635
--- /dev/null
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_P2M_H__
+#define __ASM_RISCV_P2M_H__
+
+#include <asm/page-bits.h>
+
+#define paddr_bits PADDR_BITS
+
+/*
+ * List of possible type for each page in the p2m entry.
+ * The number of available bit per page in the pte for this purpose is 4 bits.
+ * So it's possible to only have 16 fields. If we run out of value in the
+ * future, it's possible to use higher value for pseudo-type and don't store
+ * them in the p2m entry.
+ */
+typedef enum {
+    p2m_invalid = 0,    /* Nothing mapped here */
+    p2m_ram_rw,         /* Normal read/write guest RAM */
+} p2m_type_t;
+
+#include <xen/p2m-common.h>
+
+static inline int get_page_and_type(struct page_info *page,
+                                    struct domain *domain,
+                                    unsigned long type)
+{
+    BUG();
+    return -EINVAL;
+}
+
+/* Look up a GFN and take a reference count on the backing page. */
+typedef unsigned int p2m_query_t;
+#define P2M_ALLOC    (1u<<0)   /* Populate PoD and paged-out entries */
+#define P2M_UNSHARE  (1u<<1)   /* Break CoW sharing */
+
+static inline struct page_info *get_page_from_gfn(
+    struct domain *d, unsigned long gfn, p2m_type_t *t, p2m_query_t q)
+{
+    BUG();
+    return NULL;
+}
+
+static inline void memory_type_changed(struct domain *d)
+{
+    BUG();
+}
+
+
+static inline int guest_physmap_mark_populate_on_demand(struct domain *d, unsigned long gfn,
+                                                        unsigned int order)
+{
+    return -EOPNOTSUPP;
+}
+
+static inline int guest_physmap_add_entry(struct domain *d,
+                            gfn_t gfn,
+                            mfn_t mfn,
+                            unsigned long page_order,
+                            p2m_type_t t)
+{
+    BUG();
+    return -EINVAL;
+}
+
+/* Untyped version for RAM only, for compatibility */
+static inline int __must_check
+guest_physmap_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
+                       unsigned int page_order)
+{
+    return guest_physmap_add_entry(d, gfn, mfn, page_order, p2m_ram_rw);
+}
+
+static inline mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn)
+{
+    BUG();
+    return _mfn(0);
+}
+
+static inline bool arch_acquire_resource_check(struct domain *d)
+{
+    /*
+     * The reference counting of foreign entries in set_foreign_p2m_entry()
+     * is supported on RISCV.
+     */
+    return true;
+}
+
+static inline void p2m_altp2m_check(struct vcpu *v, uint16_t idx)
+{
+    /* Not supported on RISCV. */
+}
+
+#endif /* __ASM_RISCV_P2M_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:24:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:24:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659542.1029250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhOU-0006om-Jy; Fri, 22 Dec 2023 15:24:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659542.1029250; Fri, 22 Dec 2023 15:24: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 1rGhOU-0006of-H5; Fri, 22 Dec 2023 15:24:58 +0000
Received: by outflank-mailman (input) for mailman id 659542;
 Fri, 22 Dec 2023 15:24: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDZ-0007Ie-0U
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:41 +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 b0141b8d-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:40 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-50e49a0b5caso2392226e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:40 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0141b8d-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258019; x=1703862819; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mOwqAKIhXH+0XZ7x1OiU/ECPxpe/imzx7o+LpLoS1i0=;
        b=en2QSOETszdf5M2mVqeYWd4V3ujptKa14hGWQ8RWD67Dd6DXiySN54S3DDA+FmfWnp
         GAhshkDSgu/G9tgmd8AG6Bn5pCWWwS6f2mQZbzx95/NhZ1Zge2fVs/ypRtF8LoWQqKY2
         CK2CF+or/sdLyg+vGXAGWqrsbIpLhq11pOQzWsS+U7o2nmMnsMBGEEfB2d9I1Uv2B935
         qQ/phGBuzKdB/obJuF2gsIxY75inBC+2xMEHT0Zyq6xc64cPC8eG16DYJmwra/INcdvX
         ITD9mpuNPqxEG30XUBsQkubi0F9Bxt1KwfHIqTp3b8JNHMXAPad/hcd0hMEb68c5eK4e
         BNlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258019; x=1703862819;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=mOwqAKIhXH+0XZ7x1OiU/ECPxpe/imzx7o+LpLoS1i0=;
        b=P3uhspXpeTCYrsQcWcl7gy9FspLKd39ij7LMWZpXvXZnDrlqd+0jpOP5Grxiybpo1l
         y5XWAw3AKmkz1c1svJPYilq006v9fODHAmyk/NKZWukMuyiOs4yn0WP2YKd5DzFLvofW
         365otdWP6SKG2pX2plFh4MbCRBvSF0RolrtxCT5SjaCbzE2qxsmgsS8+n5Bmxf2sZXim
         buy+vG11C/RZke7/T87GCNCV7gVGlE+rQcOxEH0dNxWxBHvi/H644F5DLTIGCgkQbPiZ
         YHeYJI3nEy4zRjMfwH9HogX378HSOrnsWuBh0EoovLOXeIAAKZXQDsr4Nuoht3tm1525
         e1kw==
X-Gm-Message-State: AOJu0Yz9yvkbBEMUAeaav2FJwzCL7hi4ki82onvnfCyhZLwXAOCtNMm5
	vHIpCFqv6nCptbtMnIcI+TFEfXMH9HA=
X-Google-Smtp-Source: AGHT+IH6EnT8IJBJwZ4VCRfWZjiCy5GmU+qEc/YW5PJ53Mw5nlU6Ak0wpMLw6M2Wj836iANLqaSE8w==
X-Received: by 2002:ac2:454e:0:b0:50e:384c:289a with SMTP id j14-20020ac2454e000000b0050e384c289amr761863lfm.78.1703258019469;
        Fri, 22 Dec 2023 07:13:39 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Bobby Eshleman <bobbyeshleman@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.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>,
	Wei Liu <wl@xen.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v3 15/34] xen/riscv: introduce atomic.h
Date: Fri, 22 Dec 2023 17:12:59 +0200
Message-ID: <54f5f13a4ee3de3c3cf4ba2b4d0347bb77bb7d08.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Bobby Eshleman <bobbyeshleman@gmail.com>

Additionally, this patch introduces macros in fence.h,
which are utilized in atomic.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
  - update the commit message
  - add SPDX for fence.h
  - code style fixes
  - Remove /* TODO: ... */ for add_sized macros. It looks correct to me.
  - re-order the patch
  - merge to this patch fence.h
---
Changes in V2:
 - Change an author of commit. I got this header from Bobby's old repo.
---
 xen/arch/riscv/include/asm/atomic.h | 384 ++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/fence.h  |  13 +
 2 files changed, 397 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/atomic.h
 create mode 100644 xen/arch/riscv/include/asm/fence.h

diff --git a/xen/arch/riscv/include/asm/atomic.h b/xen/arch/riscv/include/asm/atomic.h
new file mode 100644
index 0000000000..725326a9d1
--- /dev/null
+++ b/xen/arch/riscv/include/asm/atomic.h
@@ -0,0 +1,384 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Taken and modified from Linux.
+ * 
+ * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
+ * Copyright (C) 2012 Regents of the University of California
+ * Copyright (C) 2017 SiFive
+ * Copyright (C) 2021 Vates SAS
+ */
+
+#ifndef _ASM_RISCV_ATOMIC_H
+#define _ASM_RISCV_ATOMIC_H
+
+#include <xen/atomic.h>
+#include <asm/cmpxchg.h>
+#include <asm/fence.h>
+#include <asm/io.h>
+#include <asm/system.h>
+
+void __bad_atomic_size(void);
+
+static always_inline void read_atomic_size(const volatile void *p,
+                                           void *res,
+                                           unsigned int size)
+{
+    switch ( size )
+    {
+    case 1: *(uint8_t *)res = readb((const uint8_t *)p); break;
+    case 2: *(uint16_t *)res = readw((const uint16_t *)p); break;
+    case 4: *(uint32_t *)res = readl((const uint32_t *)p); break;
+    case 8: *(uint32_t *)res  = readq((const uint64_t *)p); break;
+    default: __bad_atomic_size(); break;
+    }
+}
+
+#define read_atomic(p) ({                                               \
+    union { typeof(*p) val; char c[0]; } x_;                            \
+    read_atomic_size(p, x_.c, sizeof(*p));                              \
+    x_.val;                                                             \
+})
+
+
+#define write_atomic(p, x) ({                                           \
+    typeof(*p) x__ = (x);                                               \
+    switch ( sizeof(*p) )												\
+    {                                             						\
+    case 1: writeb((uint8_t)x__,  (uint8_t *)  p); break;              	\
+    case 2: writew((uint16_t)x__, (uint16_t *) p); break;              	\
+    case 4: writel((uint32_t)x__, (uint32_t *) p); break;              	\
+    case 8: writeq((uint64_t)x__, (uint64_t *) p); break;              	\
+    default: __bad_atomic_size(); break;                                \
+    }                                                                   \
+    x__;                                                                \
+})
+
+#define add_sized(p, x) ({                                              \
+    typeof(*(p)) x__ = (x);                                             \
+    switch ( sizeof(*(p)) )                                             \
+    {                                                                   \
+    case 1: writeb(read_atomic(p) + x__, (uint8_t *)(p)); break;        \
+    case 2: writew(read_atomic(p) + x__, (uint16_t *)(p)); break;       \
+    case 4: writel(read_atomic(p) + x__, (uint32_t *)(p)); break;       \
+    default: __bad_atomic_size(); break;                                \
+    }                                                                   \
+})
+
+/*
+ *  __unqual_scalar_typeof(x) - Declare an unqualified scalar type, leaving
+ *               non-scalar types unchanged.
+ *
+ * Prefer C11 _Generic for better compile-times and simpler code. Note: 'char'
+ * is not type-compatible with 'signed char', and we define a separate case.
+ */
+#define __scalar_type_to_expr_cases(type)               \
+    unsigned type:  (unsigned type)0,                   \
+    signed type:    (signed type)0
+
+#define __unqual_scalar_typeof(x) typeof(               \
+    _Generic((x),                                       \
+        char:  (char)0,                                 \
+        __scalar_type_to_expr_cases(char),              \
+        __scalar_type_to_expr_cases(short),             \
+        __scalar_type_to_expr_cases(int),               \
+        __scalar_type_to_expr_cases(long),              \
+        __scalar_type_to_expr_cases(long long),         \
+        default: (x)))
+
+#define READ_ONCE(x)  (*(const volatile __unqual_scalar_typeof(x) *)&(x))
+#define WRITE_ONCE(x, val)                                      \
+    do {                                                        \
+        *(volatile typeof(x) *)&(x) = (val);                    \
+    } while (0)
+
+#define __atomic_acquire_fence() \
+    __asm__ __volatile__( RISCV_ACQUIRE_BARRIER "" ::: "memory" )
+
+#define __atomic_release_fence() \
+    __asm__ __volatile__( RISCV_RELEASE_BARRIER "" ::: "memory" );
+
+static inline int atomic_read(const atomic_t *v)
+{
+    return READ_ONCE(v->counter);
+}
+
+static inline int _atomic_read(atomic_t v)
+{
+    return v.counter;
+}
+
+static inline void atomic_set(atomic_t *v, int i)
+{
+    WRITE_ONCE(v->counter, i);
+}
+
+static inline void _atomic_set(atomic_t *v, int i)
+{
+    v->counter = i;
+}
+
+static inline int atomic_sub_and_test(int i, atomic_t *v)
+{
+    return atomic_sub_return(i, v) == 0;
+}
+
+static inline void atomic_inc(atomic_t *v)
+{
+    atomic_add(1, v);
+}
+
+static inline int atomic_inc_return(atomic_t *v)
+{
+    return atomic_add_return(1, v);
+}
+
+static inline void atomic_dec(atomic_t *v)
+{
+    atomic_sub(1, v);
+}
+
+static inline int atomic_dec_return(atomic_t *v)
+{
+    return atomic_sub_return(1, v);
+}
+
+static inline int atomic_dec_and_test(atomic_t *v)
+{
+    return atomic_sub_return(1, v) == 0;
+}
+
+static inline int atomic_add_negative(int i, atomic_t *v)
+{
+    return atomic_add_return(i, v) < 0;
+}
+
+static inline int atomic_inc_and_test(atomic_t *v)
+{
+    return atomic_add_return(1, v) == 0;
+}
+
+/*
+ * First, the atomic ops that have no ordering constraints and therefor don't
+ * have the AQ or RL bits set.  These don't return anything, so there's only
+ * one version to worry about.
+ */
+#define ATOMIC_OP(op, asm_op, I, asm_type, c_type, prefix)  \
+static inline                                               \
+void atomic##prefix##_##op(c_type i, atomic##prefix##_t *v) \
+{                                                           \
+    __asm__ __volatile__ (                                  \
+        "   amo" #asm_op "." #asm_type " zero, %1, %0"      \
+        : "+A" (v->counter)                                 \
+        : "r" (I)                                           \
+        : "memory" );                                       \
+}                                                           \
+
+#define ATOMIC_OPS(op, asm_op, I)                           \
+        ATOMIC_OP (op, asm_op, I, w, int,   )
+
+ATOMIC_OPS(add, add,  i)
+ATOMIC_OPS(sub, add, -i)
+ATOMIC_OPS(and, and,  i)
+ATOMIC_OPS( or,  or,  i)
+ATOMIC_OPS(xor, xor,  i)
+
+#undef ATOMIC_OP
+#undef ATOMIC_OPS
+
+/*
+ * Atomic ops that have ordered, relaxed, acquire, and release variants.
+ * There's two flavors of these: the arithmatic ops have both fetch and return
+ * versions, while the logical ops only have fetch versions.
+ */
+#define ATOMIC_FETCH_OP(op, asm_op, I, asm_type, c_type, prefix)    \
+static inline                                                       \
+c_type atomic##prefix##_fetch_##op##_relaxed(c_type i,              \
+                         atomic##prefix##_t *v)                     \
+{                                                                   \
+    register c_type ret;                                            \
+    __asm__ __volatile__ (                                          \
+        "   amo" #asm_op "." #asm_type " %1, %2, %0"                \
+        : "+A" (v->counter), "=r" (ret)                             \
+        : "r" (I)                                                   \
+        : "memory" );                                               \
+    return ret;                                                     \
+}                                                                   \
+static inline                                                       \
+c_type atomic##prefix##_fetch_##op(c_type i, atomic##prefix##_t *v) \
+{                                                                   \
+    register c_type ret;                                            \
+    __asm__ __volatile__ (                                          \
+        "   amo" #asm_op "." #asm_type ".aqrl  %1, %2, %0"          \
+        : "+A" (v->counter), "=r" (ret)                             \
+        : "r" (I)                                                   \
+        : "memory" );                                               \
+    return ret;                                                     \
+}
+
+#define ATOMIC_OP_RETURN(op, asm_op, c_op, I, asm_type, c_type, prefix) \
+static inline                                                           \
+c_type atomic##prefix##_##op##_return_relaxed(c_type i,                 \
+                          atomic##prefix##_t *v)                        \
+{                                                                       \
+        return atomic##prefix##_fetch_##op##_relaxed(i, v) c_op I;      \
+}                                                                       \
+static inline                                                           \
+c_type atomic##prefix##_##op##_return(c_type i, atomic##prefix##_t *v)  \
+{                                                                       \
+        return atomic##prefix##_fetch_##op(i, v) c_op I;                \
+}
+
+#define ATOMIC_OPS(op, asm_op, c_op, I)                                 \
+        ATOMIC_FETCH_OP( op, asm_op,       I, w, int,   )               \
+        ATOMIC_OP_RETURN(op, asm_op, c_op, I, w, int,   )
+
+ATOMIC_OPS(add, add, +,  i)
+ATOMIC_OPS(sub, add, +, -i)
+
+#define atomic_add_return_relaxed   atomic_add_return_relaxed
+#define atomic_sub_return_relaxed   atomic_sub_return_relaxed
+#define atomic_add_return   atomic_add_return
+#define atomic_sub_return   atomic_sub_return
+
+#define atomic_fetch_add_relaxed    atomic_fetch_add_relaxed
+#define atomic_fetch_sub_relaxed    atomic_fetch_sub_relaxed
+#define atomic_fetch_add    atomic_fetch_add
+#define atomic_fetch_sub    atomic_fetch_sub
+
+#undef ATOMIC_OPS
+
+#define ATOMIC_OPS(op, asm_op, I) \
+        ATOMIC_FETCH_OP(op, asm_op, I, w, int,   )
+
+ATOMIC_OPS(and, and, i)
+ATOMIC_OPS( or,  or, i)
+ATOMIC_OPS(xor, xor, i)
+
+#define atomic_fetch_and_relaxed    atomic_fetch_and_relaxed
+#define atomic_fetch_or_relaxed	    atomic_fetch_or_relaxed
+#define atomic_fetch_xor_relaxed    atomic_fetch_xor_relaxed
+#define atomic_fetch_and    atomic_fetch_and
+#define atomic_fetch_or     atomic_fetch_or
+#define atomic_fetch_xor    atomic_fetch_xor
+
+#undef ATOMIC_OPS
+
+#undef ATOMIC_FETCH_OP
+#undef ATOMIC_OP_RETURN
+
+/* This is required to provide a full barrier on success. */
+static inline int atomic_add_unless(atomic_t *v, int a, int u)
+{
+       int prev, rc;
+
+    __asm__ __volatile__ (
+        "0: lr.w     %[p],  %[c]\n"
+        "   beq      %[p],  %[u], 1f\n"
+        "   add      %[rc], %[p], %[a]\n"
+        "   sc.w.rl  %[rc], %[rc], %[c]\n"
+        "   bnez     %[rc], 0b\n"
+        "   fence    rw, rw\n"
+        "1:\n"
+        : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
+        : [a]"r" (a), [u]"r" (u)
+        : "memory");
+    return prev;
+}
+#define atomic_fetch_add_unless atomic_fetch_add_unless
+
+/*
+ * atomic_{cmp,}xchg is required to have exactly the same ordering semantics as
+ * {cmp,}xchg and the operations that return, so they need a full barrier.
+ */
+#define ATOMIC_OP(c_t, prefix, size)                            \
+static inline                                                   \
+c_t atomic##prefix##_xchg_relaxed(atomic##prefix##_t *v, c_t n) \
+{                                                               \
+    return __xchg_relaxed(&(v->counter), n, size);              \
+}                                                               \
+static inline                                                   \
+c_t atomic##prefix##_xchg_acquire(atomic##prefix##_t *v, c_t n) \
+{                                                               \
+    return __xchg_acquire(&(v->counter), n, size);              \
+}                                                               \
+static inline                                                   \
+c_t atomic##prefix##_xchg_release(atomic##prefix##_t *v, c_t n) \
+{                                                               \
+    return __xchg_release(&(v->counter), n, size);              \
+}                                                               \
+static inline                                                   \
+c_t atomic##prefix##_xchg(atomic##prefix##_t *v, c_t n)         \
+{                                                               \
+    return __xchg(&(v->counter), n, size);                      \
+}                                                               \
+static inline                                                   \
+c_t atomic##prefix##_cmpxchg_relaxed(atomic##prefix##_t *v,     \
+                     c_t o, c_t n)                              \
+{                                                               \
+    return __cmpxchg_relaxed(&(v->counter), o, n, size);        \
+}                                                               \
+static inline                                                   \
+c_t atomic##prefix##_cmpxchg_acquire(atomic##prefix##_t *v,     \
+                     c_t o, c_t n)                              \
+{                                                               \
+    return __cmpxchg_acquire(&(v->counter), o, n, size);        \
+}                                                               \
+static inline                                                   \
+c_t atomic##prefix##_cmpxchg_release(atomic##prefix##_t *v,     \
+                     c_t o, c_t n)                              \
+{	                                                            \
+    return __cmpxchg_release(&(v->counter), o, n, size);        \
+}                                                               \
+static inline                                                   \
+c_t atomic##prefix##_cmpxchg(atomic##prefix##_t *v, c_t o, c_t n) \
+{                                                               \
+    return __cmpxchg(&(v->counter), o, n, size);                \
+}
+
+#define ATOMIC_OPS() \
+    ATOMIC_OP(int,   , 4)
+
+ATOMIC_OPS()
+
+#define atomic_xchg_relaxed atomic_xchg_relaxed
+#define atomic_xchg_acquire atomic_xchg_acquire
+#define atomic_xchg_release atomic_xchg_release
+#define atomic_xchg atomic_xchg
+#define atomic_cmpxchg_relaxed atomic_cmpxchg_relaxed
+#define atomic_cmpxchg_acquire atomic_cmpxchg_acquire
+#define atomic_cmpxchg_release atomic_cmpxchg_release
+#define atomic_cmpxchg atomic_cmpxchg
+
+#undef ATOMIC_OPS
+#undef ATOMIC_OP
+
+static inline int atomic_sub_if_positive(atomic_t *v, int offset)
+{
+       int prev, rc;
+
+    __asm__ __volatile__ (
+        "0: lr.w     %[p],  %[c]\n"
+        "   sub      %[rc], %[p], %[o]\n"
+        "   bltz     %[rc], 1f\n"
+        "   sc.w.rl  %[rc], %[rc], %[c]\n"
+        "   bnez     %[rc], 0b\n"
+        "   fence    rw, rw\n"
+        "1:\n"
+        : [p]"=&r" (prev), [rc]"=&r" (rc), [c]"+A" (v->counter)
+        : [o]"r" (offset)
+        : "memory" );
+    return prev - offset;
+}
+
+#define atomic_dec_if_positive(v)	atomic_sub_if_positive(v, 1)
+
+#endif /* _ASM_RISCV_ATOMIC_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/riscv/include/asm/fence.h b/xen/arch/riscv/include/asm/fence.h
new file mode 100644
index 0000000000..b3f6b1c20a
--- /dev/null
+++ b/xen/arch/riscv/include/asm/fence.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#ifndef _ASM_RISCV_FENCE_H
+#define _ASM_RISCV_FENCE_H
+
+#ifdef CONFIG_SMP
+#define RISCV_ACQUIRE_BARRIER		"\tfence r , rw\n"
+#define RISCV_RELEASE_BARRIER		"\tfence rw,  w\n"
+#else
+#define RISCV_ACQUIRE_BARRIER
+#define RISCV_RELEASE_BARRIER
+#endif
+
+#endif	/* _ASM_RISCV_FENCE_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:24:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:24:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659543.1029255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhOU-0006qs-Tr; Fri, 22 Dec 2023 15:24:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659543.1029255; Fri, 22 Dec 2023 15:24: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 1rGhOU-0006qP-Nh; Fri, 22 Dec 2023 15:24:58 +0000
Received: by outflank-mailman (input) for mailman id 659543;
 Fri, 22 Dec 2023 15:24: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDd-0007Ie-GL
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:45 +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 b2f175bc-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:45 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-50e3901c2e2so2351849e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:45 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2f175bc-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258024; x=1703862824; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jZhPBjyZBqgBpywqHlV+02WIfS08ciwegVuM8jISg+I=;
        b=JYdOztOXinll0LmJyP05WBLtWHGtTirUPn71s4MTMdEwlh6paQJzo8oW5fTknFwBdJ
         3DDQVaNZLFu74Gz1D3OIlqXWDBYvt7tCphJTPHachZ54RzXPBSAOz6ONDoLjkJHC9hvR
         /ZN3TL7zTaTDvDncZnaTFwNqHSeViSe5Ah1Te6ZQA+6YOUu0GShQjFdGkB4cmOk6NsBP
         VWdFJJth9YBFub2Vs7tWSEaNC7DdGLjbMHJ6UU/GjxE1JChx7KCYBWFtCW6vtiVx0smb
         w5mJmDiTePDUTf1xqsODTX3qd4MxjzQeiJBqwfxBQK7vciY5sGR1uNXYXfIdfVEpKxVN
         xPVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258024; x=1703862824;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=jZhPBjyZBqgBpywqHlV+02WIfS08ciwegVuM8jISg+I=;
        b=Ihg4UawVpkf2fMeHuD92rc1NqQFe52oPQQtyD7yKq3QFENMsO20lUdXig2iIOTjscT
         96UpEre1YJPrTfUlI7cO5bkppymXYWonHOyKkXGELR6Hu+LEvEQQRP9scEGObj4ZD/0s
         KCCngP/bC+U/4lhRP6VcpNbzeZcrRAVO71eAwDzlIgr1x1w1W8cXseolQYJGrfBJb70c
         zSTIq1LuiA4T/rFOuBQKHqa1hRHpRjT+F/P+RHHqehGXWCS3HWAw3Tzj6CUlaJkZuH5E
         Zop499b7IBZSoyIrhvRIs2baZ9o/QnfyJdJZewPk4ZQMISggKFnnNC2F+hNC32phZD9J
         7+wg==
X-Gm-Message-State: AOJu0YxhbToXC7E8Gda1LWVPqn6SHvSrEkADc0cL+nRiqfQJZ6v9jmas
	eoCBaLn4IQIv6pkoutR94+ZOAM7oJLc=
X-Google-Smtp-Source: AGHT+IHL6pMsv/sCdYNQ/iuKnuHjGlxcfIEdKyveSyp3rrjxlVpyxCEIKR0IY0dQpPtuOGuumoo3Bw==
X-Received: by 2002:a19:e01e:0:b0:50b:f83c:2449 with SMTP id x30-20020a19e01e000000b0050bf83c2449mr714243lfg.69.1703258023958;
        Fri, 22 Dec 2023 07:13:43 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 19/34] xen/riscv: introduce guest_access.h
Date: Fri, 22 Dec 2023 17:13:03 +0200
Message-ID: <dd1741ee7ed3332106c08a2caf0daf8926570664.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

All necessary dummiy implementation of functions in this header
will be introduced in stubs.c

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - remove unnessary inclusion of types.h header.
 - drop copy_to_guest_phys. it isn't needed yet
 - add SPDX
 - add comment above guest_handle_okay()
 - update the commit message
---
Changes in V2:
 - change xen/mm.h to xen/types.h
---
 xen/arch/riscv/include/asm/guest_access.h | 29 +++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/guest_access.h

diff --git a/xen/arch/riscv/include/asm/guest_access.h b/xen/arch/riscv/include/asm/guest_access.h
new file mode 100644
index 0000000000..c55951f538
--- /dev/null
+++ b/xen/arch/riscv/include/asm/guest_access.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_RISCV_GUEST_ACCESS_H__
+#define __ASM_RISCV_GUEST_ACCESS_H__
+
+unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len);
+unsigned long raw_copy_from_guest(void *to, const void *from, unsigned len);
+unsigned long raw_clear_guest(void *to, unsigned int len);
+
+#define __raw_copy_to_guest raw_copy_to_guest
+#define __raw_copy_from_guest raw_copy_from_guest
+#define __raw_clear_guest raw_clear_guest
+
+/*
+ * Pre-validate a guest handle.
+ * Allows use of faster __copy_* functions.
+ */
+/* All RISCV guests are paging mode external and hence safe */
+#define guest_handle_okay(hnd, nr) (1)
+#define guest_handle_subrange_okay(hnd, first, last) (1)
+
+#endif /* __ASM_RISCV_GUEST_ACCESS_H__ */
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:26:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:26:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659558.1029270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhPb-0008D3-5Y; Fri, 22 Dec 2023 15:26:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659558.1029270; Fri, 22 Dec 2023 15: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 1rGhPb-0008Cw-1U; Fri, 22 Dec 2023 15:26:07 +0000
Received: by outflank-mailman (input) for mailman id 659558;
 Fri, 22 Dec 2023 15: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDX-0007Ie-Rg
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:39 +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 af824e17-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:39 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-50e6ee5b7ffso191705e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:39 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af824e17-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258018; x=1703862818; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rExImBCWONv5dbwNEtVk4jkk4u+ady4+FS4w6vB3FbQ=;
        b=MGKLvEcM/3BDqOqhfPvZ4xpqx2bnnYMCsb3GXBd+4t9L1PU4q1lNAfkGyEp6c7pKxM
         YbhwV/2SJnb7FDT96Qb8kfQ1Ab3soGLIQPgR1wotvsK4k+SbtsA83TSr3MgUc6k1je8p
         7qLSIIwhU6H5Tv9caS42zV5Sgdja9reNfP+7RpRo/C/rxvedbkNBcZn0Yy4M6RJfslCr
         cpABSPTCW85nJBB9nAVh3exytXQLTCriYvwMbG1+jgj//Mtxjtuznb/STAg14wP4zZ4D
         PjRPSwYIgMVptNS8wLlTl6u1Hi9yPn9HEl8RZuK76AX3m0t5dnGoYC6IYtZU0geG9BXs
         +oNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258018; x=1703862818;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rExImBCWONv5dbwNEtVk4jkk4u+ady4+FS4w6vB3FbQ=;
        b=IZrk3rul7meZ+i22anoAs/iBcYpLpEZUpTGy/mbAKKGyzOAPzvzvz/Ms+ybIYz3eQZ
         C9YYg6mgg6wnyO6Zvnsc304MeSIMeD3kd877NYx7beo48tOnQW0KU+655ZqbnRl0oT29
         i/BDBOlppQEK5aEk3wd2OwfLDfrQjcFbYJIih9DMe9NlfXiootXsQRXPuF/hPRrGi8Cj
         nE4+DBCqFjrE/HFn8Qk6T1jsJDRDGEFLGK1N5mQYB5eOkhCpfpbd6hj54koZbzXMgCyk
         YHfX2vGNw5s3GkwgapeCV8CMNS7pryFOwapGSm95MdhEkNIDYwSHXgLn1Iql+v/TiTMB
         ikpg==
X-Gm-Message-State: AOJu0YyC+OLmKF7xaWm4BRtOqnitl1R9fDXqi66XVBF2lW0Arab6NYfc
	FJwyicwZgF1A/k9m7q3M5J+gqzprpVo=
X-Google-Smtp-Source: AGHT+IEoUnbSc/5ClfmCHitQNnDFFoQ+T++4BqBl2iLxA7ayy7a8WYp6J6h8zryGHB3wXXb+RUIuNA==
X-Received: by 2002:a05:6512:5c4:b0:50e:67f6:40cd with SMTP id o4-20020a05651205c400b0050e67f640cdmr888636lfo.19.1703258018122;
        Fri, 22 Dec 2023 07:13:38 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 14/34] xen/riscv: introduce io.h
Date: Fri, 22 Dec 2023 17:12:58 +0200
Message-ID: <5d2c032481792a3fe5bd5f1cae42d95f6e9b54b1.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The header taken form Linux 6.4.0-rc1 and is based on
arch/riscv/include/asm/mmio.h.

Addionally, to the header was added definions of ioremap_*().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - re-sync with linux kernel
 - update the commit message
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/io.h | 142 ++++++++++++++++++++++++++++++++
 1 file changed, 142 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/io.h

diff --git a/xen/arch/riscv/include/asm/io.h b/xen/arch/riscv/include/asm/io.h
new file mode 100644
index 0000000000..ead466eb2d
--- /dev/null
+++ b/xen/arch/riscv/include/asm/io.h
@@ -0,0 +1,142 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * {read,write}{b,w,l,q} based on arch/arm64/include/asm/io.h
+ *   which was based on arch/arm/include/io.h
+ *
+ * Copyright (C) 1996-2000 Russell King
+ * Copyright (C) 2012 ARM Ltd.
+ * Copyright (C) 2014 Regents of the University of California
+ */
+
+
+#ifndef _ASM_RISCV_IO_H
+#define _ASM_RISCV_IO_H
+
+#include <asm/byteorder.h>
+
+/*
+ * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
+ * change the properties of memory regions.  This should be fixed by the
+ * upcoming platform spec.
+ */
+#define ioremap_nocache(addr, size) ioremap((addr), (size))
+#define ioremap_wc(addr, size) ioremap((addr), (size))
+#define ioremap_wt(addr, size) ioremap((addr), (size))
+
+/* Generic IO read/write.  These perform native-endian accesses. */
+#define __raw_writeb __raw_writeb
+static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
+{
+	asm volatile("sb %0, 0(%1)" : : "r" (val), "r" (addr));
+}
+
+#define __raw_writew __raw_writew
+static inline void __raw_writew(u16 val, volatile void __iomem *addr)
+{
+	asm volatile("sh %0, 0(%1)" : : "r" (val), "r" (addr));
+}
+
+#define __raw_writel __raw_writel
+static inline void __raw_writel(u32 val, volatile void __iomem *addr)
+{
+	asm volatile("sw %0, 0(%1)" : : "r" (val), "r" (addr));
+}
+
+#ifdef CONFIG_64BIT
+#define __raw_writeq __raw_writeq
+static inline void __raw_writeq(u64 val, volatile void __iomem *addr)
+{
+	asm volatile("sd %0, 0(%1)" : : "r" (val), "r" (addr));
+}
+#endif
+
+#define __raw_readb __raw_readb
+static inline u8 __raw_readb(const volatile void __iomem *addr)
+{
+	u8 val;
+
+	asm volatile("lb %0, 0(%1)" : "=r" (val) : "r" (addr));
+	return val;
+}
+
+#define __raw_readw __raw_readw
+static inline u16 __raw_readw(const volatile void __iomem *addr)
+{
+	u16 val;
+
+	asm volatile("lh %0, 0(%1)" : "=r" (val) : "r" (addr));
+	return val;
+}
+
+#define __raw_readl __raw_readl
+static inline u32 __raw_readl(const volatile void __iomem *addr)
+{
+	u32 val;
+
+	asm volatile("lw %0, 0(%1)" : "=r" (val) : "r" (addr));
+	return val;
+}
+
+#ifdef CONFIG_64BIT
+#define __raw_readq __raw_readq
+static inline u64 __raw_readq(const volatile void __iomem *addr)
+{
+	u64 val;
+
+	asm volatile("ld %0, 0(%1)" : "=r" (val) : "r" (addr));
+	return val;
+}
+#endif
+
+/*
+ * Unordered I/O memory access primitives.  These are even more relaxed than
+ * the relaxed versions, as they don't even order accesses between successive
+ * operations to the I/O regions.
+ */
+#define readb_cpu(c)		({ u8  __r = __raw_readb(c); __r; })
+#define readw_cpu(c)		({ u16 __r = le16_to_cpu((__force __le16)__raw_readw(c)); __r; })
+#define readl_cpu(c)		({ u32 __r = le32_to_cpu((__force __le32)__raw_readl(c)); __r; })
+
+#define writeb_cpu(v,c)		((void)__raw_writeb((v),(c)))
+#define writew_cpu(v,c)		((void)__raw_writew((__force u16)cpu_to_le16(v),(c)))
+#define writel_cpu(v,c)		((void)__raw_writel((__force u32)cpu_to_le32(v),(c)))
+
+#ifdef CONFIG_64BIT
+#define readq_cpu(c)		({ u64 __r = le64_to_cpu((__force __le64)__raw_readq(c)); __r; })
+#define writeq_cpu(v,c)		((void)__raw_writeq((__force u64)cpu_to_le64(v),(c)))
+#endif
+
+/*
+ * I/O memory access primitives. Reads are ordered relative to any
+ * following Normal memory access. Writes are ordered relative to any prior
+ * Normal memory access.  The memory barriers here are necessary as RISC-V
+ * doesn't define any ordering between the memory space and the I/O space.
+ */
+#define __io_br()	do {} while (0)
+#define __io_ar(v)	__asm__ __volatile__ ("fence i,r" : : : "memory");
+#define __io_bw()	__asm__ __volatile__ ("fence w,o" : : : "memory");
+#define __io_aw()	do { } while (0)
+
+#define readb(c)	({ u8  __v; __io_br(); __v = readb_cpu(c); __io_ar(__v); __v; })
+#define readw(c)	({ u16 __v; __io_br(); __v = readw_cpu(c); __io_ar(__v); __v; })
+#define readl(c)	({ u32 __v; __io_br(); __v = readl_cpu(c); __io_ar(__v); __v; })
+
+#define writeb(v,c)	({ __io_bw(); writeb_cpu((v),(c)); __io_aw(); })
+#define writew(v,c)	({ __io_bw(); writew_cpu((v),(c)); __io_aw(); })
+#define writel(v,c)	({ __io_bw(); writel_cpu((v),(c)); __io_aw(); })
+
+#ifdef CONFIG_64BIT
+#define readq(c)	({ u64 __v; __io_br(); __v = readq_cpu(c); __io_ar(__v); __v; })
+#define writeq(v,c)	({ __io_bw(); writeq_cpu((v),(c)); __io_aw(); })
+#endif
+
+#endif /* _ASM_RISCV_IO_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:26:17 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:26:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659560.1029280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhPl-0000DZ-G7; Fri, 22 Dec 2023 15:26:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659560.1029280; Fri, 22 Dec 2023 15: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 1rGhPl-0000DS-D1; Fri, 22 Dec 2023 15:26:17 +0000
Received: by outflank-mailman (input) for mailman id 659560;
 Fri, 22 Dec 2023 15: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDa-0007Ie-BV
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:42 +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 b0ec1849-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:41 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-50e23a4df33so2371542e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:41 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0ec1849-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258020; x=1703862820; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ubbb7iTPWSo6Dj4Ma1J20RtqPqN8IdD2bRUwRTRCUg0=;
        b=dJUT51C0i5IgDtjzSS0/uZXA8nBntOX2upPpYSTxnUfPsGAdqRvA5gpUHjd90CCTcP
         JvsY2TXdAopVwKDoX7VvETIfHGYDhGcxZKac144r/2TUKXjcfEvhwa8I5pDs7t2NBmk5
         DrApF/U50pFnxdCgLyaPAa8axd50c9hHsYsa8GF+J+YVriBn1CQMlfid6W4fyyMo0oQV
         XOebEWUaBIqf19EMuqLrqaSsXbNFVwk80NpqkZHpo77Aa0x8jJUM7rnx1vfZZEHHvxxW
         QNuPja+1ZNtOmGxvK7YcjU2WZwOsLu+quVLOUZkf9ZbZPB69pwZn/24kW13rEWK4gTqZ
         oB9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258020; x=1703862820;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ubbb7iTPWSo6Dj4Ma1J20RtqPqN8IdD2bRUwRTRCUg0=;
        b=iS1OZwIbhS1+b0+GqczQxw2QF4QDhWxwYSdFLIlZVwX30Fu94pdmHqI3oPyuvi8P/y
         tXnRJxsuN5LuDvprqx0+bqHEqmxjTgp4OiUM3KC5lTBl8SHMud1hDchWdxW1wpZfK9NT
         noJVpoE5RsHpTmQYfXvBPxovnXpDzVK9++5ufAFbwj4Yi8xaNKIg/CjF3NcObwZXpqFm
         VkqHhQIoMbc1rh5xcRpIeEX6MQjxMEqt9IhzATceVCMElgrX/c19aJ69XLx8q1oXq33W
         Yn6gYxcBSSf6sbN2Cuhmfo/ixYsMZCIHaRRNcQP2arPym3a5+MXYm4GeqrN46CNq2QVZ
         +5pw==
X-Gm-Message-State: AOJu0Yxpcvx/4rK633MPW5PhiKjxYUBS6OYFAPca2YTwmVqDMK7kMQ6n
	JY2B8WS2oW/xVQ5SYBhoMOC+55WKvjo=
X-Google-Smtp-Source: AGHT+IGY3GyQy2Ibb+/4UAZL0RE2ahWmtCDcBUnJadHuyGE/QgcxcEitD9kdxextHfoMCRuBYMIqRA==
X-Received: by 2002:ac2:51a7:0:b0:50e:4bf6:8848 with SMTP id f7-20020ac251a7000000b0050e4bf68848mr772961lfk.38.1703258020410;
        Fri, 22 Dec 2023 07:13:40 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 16/34] xen/lib: introduce generic find next bit operations
Date: Fri, 22 Dec 2023 17:13:00 +0200
Message-ID: <bb47caf6c275d8aea307b96e79828831eab4a703.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

find-next-bit.c is common for Arm64 and RISC-V64 so it is moved
to xen/lib.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - new patch.
---
 xen/arch/riscv/include/asm/fence.h |  11 +-
 xen/common/Kconfig                 |   3 +
 xen/lib/Makefile                   |   1 +
 xen/lib/find-next-bit.c            | 281 +++++++++++++++++++++++++++++
 4 files changed, 295 insertions(+), 1 deletion(-)
 create mode 100644 xen/lib/find-next-bit.c

diff --git a/xen/arch/riscv/include/asm/fence.h b/xen/arch/riscv/include/asm/fence.h
index b3f6b1c20a..5d9a851ae8 100644
--- a/xen/arch/riscv/include/asm/fence.h
+++ b/xen/arch/riscv/include/asm/fence.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0-only */
 #ifndef _ASM_RISCV_FENCE_H
 #define _ASM_RISCV_FENCE_H
 
@@ -11,3 +11,12 @@
 #endif
 
 #endif	/* _ASM_RISCV_FENCE_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 310ad4229c..56ce34ffd4 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -47,6 +47,9 @@ config ARCH_MAP_DOMAIN_PAGE
 config GENERIC_BUG_FRAME
 	bool
 
+config GENERIC_FIND_NEXT_BIT
+	bool
+
 config HAS_ALTERNATIVE
 	bool
 
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index 2d9ebb945f..66237a45c5 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -3,6 +3,7 @@ obj-$(CONFIG_X86) += x86/
 lib-y += bsearch.o
 lib-y += ctors.o
 lib-y += ctype.o
+lib-$(CONFIG_GENERIC_FIND_NEXT_BIT) += find-next-bit.o
 lib-y += list-sort.o
 lib-y += memchr.o
 lib-y += memchr_inv.o
diff --git a/xen/lib/find-next-bit.c b/xen/lib/find-next-bit.c
new file mode 100644
index 0000000000..ca6f82277e
--- /dev/null
+++ b/xen/lib/find-next-bit.c
@@ -0,0 +1,281 @@
+/* find_next_bit.c: fallback find next bit implementation
+ *
+ * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved.
+ * Written by David Howells (dhowells@redhat.com)
+ *
+ * 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.
+ */
+#include <xen/bitops.h>
+
+#include <asm/byteorder.h>
+
+#ifndef find_next_bit
+/*
+ * Find the next set bit in a memory region.
+ */
+unsigned long find_next_bit(const unsigned long *addr, unsigned long size,
+			    unsigned long offset)
+{
+	const unsigned long *p = addr + BIT_WORD(offset);
+	unsigned long result = offset & ~(BITS_PER_LONG-1);
+	unsigned long tmp;
+
+	if (offset >= size)
+		return size;
+	size -= result;
+	offset %= BITS_PER_LONG;
+	if (offset) {
+		tmp = *(p++);
+		tmp &= (~0UL << offset);
+		if (size < BITS_PER_LONG)
+			goto found_first;
+		if (tmp)
+			goto found_middle;
+		size -= BITS_PER_LONG;
+		result += BITS_PER_LONG;
+	}
+	while (size & ~(BITS_PER_LONG-1)) {
+		if ((tmp = *(p++)))
+			goto found_middle;
+		result += BITS_PER_LONG;
+		size -= BITS_PER_LONG;
+	}
+	if (!size)
+		return result;
+	tmp = *p;
+
+found_first:
+	tmp &= (~0UL >> (BITS_PER_LONG - size));
+	if (tmp == 0UL)		/* Are any bits set? */
+		return result + size;	/* Nope. */
+found_middle:
+	return result + __ffs(tmp);
+}
+EXPORT_SYMBOL(find_next_bit);
+#endif
+
+#ifndef find_next_zero_bit
+/*
+ * This implementation of find_{first,next}_zero_bit was stolen from
+ * Linus' asm-alpha/bitops.h.
+ */
+unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
+				 unsigned long offset)
+{
+	const unsigned long *p = addr + BIT_WORD(offset);
+	unsigned long result = offset & ~(BITS_PER_LONG-1);
+	unsigned long tmp;
+
+	if (offset >= size)
+		return size;
+	size -= result;
+	offset %= BITS_PER_LONG;
+	if (offset) {
+		tmp = *(p++);
+		tmp |= ~0UL >> (BITS_PER_LONG - offset);
+		if (size < BITS_PER_LONG)
+			goto found_first;
+		if (~tmp)
+			goto found_middle;
+		size -= BITS_PER_LONG;
+		result += BITS_PER_LONG;
+	}
+	while (size & ~(BITS_PER_LONG-1)) {
+		if (~(tmp = *(p++)))
+			goto found_middle;
+		result += BITS_PER_LONG;
+		size -= BITS_PER_LONG;
+	}
+	if (!size)
+		return result;
+	tmp = *p;
+
+found_first:
+	tmp |= ~0UL << size;
+	if (tmp == ~0UL)	/* Are any bits zero? */
+		return result + size;	/* Nope. */
+found_middle:
+	return result + ffz(tmp);
+}
+EXPORT_SYMBOL(find_next_zero_bit);
+#endif
+
+#ifndef find_first_bit
+/*
+ * Find the first set bit in a memory region.
+ */
+unsigned long find_first_bit(const unsigned long *addr, unsigned long size)
+{
+	const unsigned long *p = addr;
+	unsigned long result = 0;
+	unsigned long tmp;
+
+	while (size & ~(BITS_PER_LONG-1)) {
+		if ((tmp = *(p++)))
+			goto found;
+		result += BITS_PER_LONG;
+		size -= BITS_PER_LONG;
+	}
+	if (!size)
+		return result;
+
+	tmp = (*p) & (~0UL >> (BITS_PER_LONG - size));
+	if (tmp == 0UL)		/* Are any bits set? */
+		return result + size;	/* Nope. */
+found:
+	return result + __ffs(tmp);
+}
+EXPORT_SYMBOL(find_first_bit);
+#endif
+
+#ifndef find_first_zero_bit
+/*
+ * Find the first cleared bit in a memory region.
+ */
+unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)
+{
+	const unsigned long *p = addr;
+	unsigned long result = 0;
+	unsigned long tmp;
+
+	while (size & ~(BITS_PER_LONG-1)) {
+		if (~(tmp = *(p++)))
+			goto found;
+		result += BITS_PER_LONG;
+		size -= BITS_PER_LONG;
+	}
+	if (!size)
+		return result;
+
+	tmp = (*p) | (~0UL << size);
+	if (tmp == ~0UL)	/* Are any bits zero? */
+		return result + size;	/* Nope. */
+found:
+	return result + ffz(tmp);
+}
+EXPORT_SYMBOL(find_first_zero_bit);
+#endif
+
+#ifdef __BIG_ENDIAN
+
+/* include/linux/byteorder does not support "unsigned long" type */
+static inline unsigned long ext2_swabp(const unsigned long * x)
+{
+#if BITS_PER_LONG == 64
+	return (unsigned long) __swab64p((u64 *) x);
+#elif BITS_PER_LONG == 32
+	return (unsigned long) __swab32p((u32 *) x);
+#else
+#error BITS_PER_LONG not defined
+#endif
+}
+
+/* include/linux/byteorder doesn't support "unsigned long" type */
+static inline unsigned long ext2_swab(const unsigned long y)
+{
+#if BITS_PER_LONG == 64
+	return (unsigned long) __swab64((u64) y);
+#elif BITS_PER_LONG == 32
+	return (unsigned long) __swab32((u32) y);
+#else
+#error BITS_PER_LONG not defined
+#endif
+}
+
+#ifndef find_next_zero_bit_le
+unsigned long find_next_zero_bit_le(const void *addr, unsigned
+		long size, unsigned long offset)
+{
+	const unsigned long *p = addr;
+	unsigned long result = offset & ~(BITS_PER_LONG - 1);
+	unsigned long tmp;
+
+	if (offset >= size)
+		return size;
+	p += BIT_WORD(offset);
+	size -= result;
+	offset &= (BITS_PER_LONG - 1UL);
+	if (offset) {
+		tmp = ext2_swabp(p++);
+		tmp |= (~0UL >> (BITS_PER_LONG - offset));
+		if (size < BITS_PER_LONG)
+			goto found_first;
+		if (~tmp)
+			goto found_middle;
+		size -= BITS_PER_LONG;
+		result += BITS_PER_LONG;
+	}
+
+	while (size & ~(BITS_PER_LONG - 1)) {
+		if (~(tmp = *(p++)))
+			goto found_middle_swap;
+		result += BITS_PER_LONG;
+		size -= BITS_PER_LONG;
+	}
+	if (!size)
+		return result;
+	tmp = ext2_swabp(p);
+found_first:
+	tmp |= ~0UL << size;
+	if (tmp == ~0UL)	/* Are any bits zero? */
+		return result + size; /* Nope. Skip ffz */
+found_middle:
+	return result + ffz(tmp);
+
+found_middle_swap:
+	return result + ffz(ext2_swab(tmp));
+}
+EXPORT_SYMBOL(find_next_zero_bit_le);
+#endif
+
+#ifndef find_next_bit_le
+unsigned long find_next_bit_le(const void *addr, unsigned
+		long size, unsigned long offset)
+{
+	const unsigned long *p = addr;
+	unsigned long result = offset & ~(BITS_PER_LONG - 1);
+	unsigned long tmp;
+
+	if (offset >= size)
+		return size;
+	p += BIT_WORD(offset);
+	size -= result;
+	offset &= (BITS_PER_LONG - 1UL);
+	if (offset) {
+		tmp = ext2_swabp(p++);
+		tmp &= (~0UL << offset);
+		if (size < BITS_PER_LONG)
+			goto found_first;
+		if (tmp)
+			goto found_middle;
+		size -= BITS_PER_LONG;
+		result += BITS_PER_LONG;
+	}
+
+	while (size & ~(BITS_PER_LONG - 1)) {
+		tmp = *(p++);
+		if (tmp)
+			goto found_middle_swap;
+		result += BITS_PER_LONG;
+		size -= BITS_PER_LONG;
+	}
+	if (!size)
+		return result;
+	tmp = ext2_swabp(p);
+found_first:
+	tmp &= (~0UL >> (BITS_PER_LONG - size));
+	if (tmp == 0UL)		/* Are any bits set? */
+		return result + size; /* Nope. */
+found_middle:
+	return result + __ffs(tmp);
+
+found_middle_swap:
+	return result + __ffs(ext2_swab(tmp));
+}
+EXPORT_SYMBOL(find_next_bit_le);
+#endif
+
+#endif /* __BIG_ENDIAN */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:26:30 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:26:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659568.1029289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhPy-0000nn-MY; Fri, 22 Dec 2023 15:26:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659568.1029289; Fri, 22 Dec 2023 15: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 1rGhPy-0000ng-Jw; Fri, 22 Dec 2023 15:26:30 +0000
Received: by outflank-mailman (input) for mailman id 659568;
 Fri, 22 Dec 2023 15: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDa-0007Ie-Ti
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13: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 b15ed366-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:42 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50e616ef769so1939112e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:42 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b15ed366-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258022; x=1703862822; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KsRI46wZmV7QzWwBsGNKu5RrZ1i3flyRhG3d/tOeeu8=;
        b=nW4d6QNqug3UGjeyauCPLZdKPquMJT8I1WAm7hBhhsTxNKTeanzRt2ibyiAM20e183
         GXxxl4ss4cMpejPtZJbG2hCjUImotATzzeLFWdOddFkCP5PUHpWc/vBLz0YNdcJzL4TX
         aWUTC8kghTghiz5Hl/PgLIMG41cak2xFTuZKj0uHdDqFczoIRFaOEISiOsMBW4q1k/xJ
         v5wXvhYk39CXlW6/YyjK9UIY8owZIOLYKpjZvW4YzLvi7t/V/J0AVKtQI+YhnJyazyET
         CXm28/dcDdGYrgueleYJmvqQjC4hOSC2YChIih0fKkeyAfHD1nX6nVw4Qg34+J8t/R7L
         92iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258022; x=1703862822;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=KsRI46wZmV7QzWwBsGNKu5RrZ1i3flyRhG3d/tOeeu8=;
        b=ekc+x1XcFLrNnn/HAPyWGr/wLOz2v0IgdhwAPWG/8e2PJe59cwmG1or0cRoa5oRX/P
         HXnRyUMC5TNC+n7kGj/a05DTWyrh9LcSjMFutQ2aoT2G4v0FgXWALQbWemhrx8QgWCsx
         B1CqPGG9+EhAQxZzN8valxsROgrVQX+5QELm1t/k255a9XMoqOf/3EbGzpq/S1lfpAJL
         7mT7S0zfHa8n9GwC2EwYAZBAfftr1J82xKsjy9e9kcFu6Ja5xyWMW67MFdXjzfohte3q
         fcb5VUPvKt7qs1oTNrgJ6/ZLuZ6eHRBAHKlzLCdbBPE0/WXhV2QNciqAGeZHqIF69vY4
         i8pQ==
X-Gm-Message-State: AOJu0Yxbv16F8RFDk7zazTQNHqVxGRJL27tOR5nEuoTbpz93bvRQhSdn
	v2NV0ZqQ63ehaP9mT/XH7YN5KEybOQE=
X-Google-Smtp-Source: AGHT+IFlGQmXzmVfOXR0M0kbrxMry5b4Z+NVHtRbuBIaVdo0Vz2PdB49KFYEt3Fb6KoSX9w9prY/Sg==
X-Received: by 2002:ac2:5508:0:b0:50e:6ee7:2727 with SMTP id j8-20020ac25508000000b0050e6ee72727mr112082lfk.42.1703258021820;
        Fri, 22 Dec 2023 07:13:41 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 17/34] xen/riscv: add compilation of generic find-next-bit.c
Date: Fri, 22 Dec 2023 17:13:01 +0200
Message-ID: <ec65601717af89e2ebcdea01b947cccc05d20bbb.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - new patch
---
 xen/arch/riscv/Kconfig                  | 1 +
 xen/arch/riscv/configs/tiny64_defconfig | 1 +
 2 files changed, 2 insertions(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index f382b36f6c..b8f8c083dc 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -4,6 +4,7 @@ config RISCV
 config RISCV_64
 	def_bool y
 	select 64BIT
+	select GENERIC_FIND_NEXT_BIT
 
 config ARCH_DEFCONFIG
 	string
diff --git a/xen/arch/riscv/configs/tiny64_defconfig b/xen/arch/riscv/configs/tiny64_defconfig
index 35915255e6..399128be02 100644
--- a/xen/arch/riscv/configs/tiny64_defconfig
+++ b/xen/arch/riscv/configs/tiny64_defconfig
@@ -29,3 +29,4 @@ CONFIG_RISCV_64=y
 CONFIG_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_EXPERT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:27:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:27:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659587.1029299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhR0-0001wm-1H; Fri, 22 Dec 2023 15:27:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659587.1029299; Fri, 22 Dec 2023 15: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 1rGhQz-0001wf-Uv; Fri, 22 Dec 2023 15:27:33 +0000
Received: by outflank-mailman (input) for mailman id 659587;
 Fri, 22 Dec 2023 15:27: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDW-0007Ie-RV
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:38 +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 aeb859c4-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:38 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-50e3cdcf010so2163803e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:38 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aeb859c4-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258017; x=1703862817; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6djMdmcp+oQ5VeTVRCtFMD3D8OXqSdpy9AyZmZkL/Fs=;
        b=Ako25RV/DDJM450mzMvHEADoXfjj0gHsjFYanZJ1kmSK7g6QQIH7GND94FJtc2c4gA
         QLtNmcsEvv0Lsq6hH6s6E0g/+RsOQ0GjPBj9GfLbGLODKQ4brMQmved29BYEDQoQmlzd
         u9F+SH6HuWYsuzR5Qja7y7JG3ge6jsSoZ93hydISHVPc0WYZmkzmYOuupu2JTmwIhOzg
         aXENroDf+Yv8Zc9w1WSnZgWUDFZvv/AZzjd276bbVY4y9Q9wZ25ebhmvLcyPOy/wUDWo
         th+wsXlWiyxJSWPWQRJivkINosKXR3PsB1W9Tszy1jKxweAoJ4iXEEYwgvldn+ek+cG3
         6MPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258017; x=1703862817;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6djMdmcp+oQ5VeTVRCtFMD3D8OXqSdpy9AyZmZkL/Fs=;
        b=kgfl9Kc9ih7l66VGi7Tskx3zXIgzjp45W4g2BulkdPMzIDbp2AFv7BEjTqNlY8dYJb
         s9bdfgBAQzw7EKyJDWxgyVWEP+jBU4aTQLOAEpUi+UORpuqqCzJpUXHrT6S6kpm3MItY
         MKlmjkP65nCH+Bv/hNpVLrtxffUYKNR2jNw8Xz/76uvTX3DABzf4lF0WqcBVFR5NuAld
         iatap6a/xKyooRPghBzCZIshh4j4wvIvxRAAiMSHIcnqH5R1dLdIY1PN4b0lioZ79+bN
         H8ETgnBhQX2AarVcvk7ePOuGhDB4TJdgUQsKUVFgIjWROe72FRQ55Ly1IT9cmvKmVpEi
         WB+A==
X-Gm-Message-State: AOJu0Yw2Rj6HDwTfCxk5hqTNMXJJq8JwN+SgW2iyyKTV6fv/J5cB1tTP
	qRdGXpbrmBEzZEUD4GIjUl98F6aObzg=
X-Google-Smtp-Source: AGHT+IETVYaZtwubgJgA+UIzZ/dAnt7ALciTtZ5Y+mXn+m/1tOGV9c+WVXmpzkbWXoBa5nBMaJ9zIg==
X-Received: by 2002:a19:f018:0:b0:50e:5bab:63c9 with SMTP id p24-20020a19f018000000b0050e5bab63c9mr422640lfc.56.1703258016768;
        Fri, 22 Dec 2023 07:13:36 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 13/34] xen/riscv: introduce cmpxchg.h
Date: Fri, 22 Dec 2023 17:12:57 +0200
Message-ID: <214bfd61c8ccf2a5b2c640b815ebfa6a705f6234.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The header was taken from Linux kernl 6.4.0-rc1.

Addionally, were updated:
* add emulation of {cmp}xchg for 1/2 byte types
* replace tabs with spaces
* replace __* varialbed with *__

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - update the commit message
 - add emulation of {cmp}xchg_... for 1 and 2 bytes types
---
Changes in V2:
	- update the comment at the top of the header.
	- change xen/lib.h to xen/bug.h.
	- sort inclusion of headers properly.
---
 xen/arch/riscv/include/asm/cmpxchg.h | 496 +++++++++++++++++++++++++++
 1 file changed, 496 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/cmpxchg.h

diff --git a/xen/arch/riscv/include/asm/cmpxchg.h b/xen/arch/riscv/include/asm/cmpxchg.h
new file mode 100644
index 0000000000..916776c403
--- /dev/null
+++ b/xen/arch/riscv/include/asm/cmpxchg.h
@@ -0,0 +1,496 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/* Copyright (C) 2014 Regents of the University of California */
+
+#ifndef _ASM_RISCV_CMPXCHG_H
+#define _ASM_RISCV_CMPXCHG_H
+
+#include <xen/compiler.h>
+#include <xen/lib.h>
+
+#include <asm/fence.h>
+#include <asm/io.h>
+#include <asm/system.h>
+
+#define __xchg_relaxed(ptr, new, size) \
+({ \
+    __typeof__(ptr) ptr__ = (ptr); \
+    __typeof__(new) new__ = (new); \
+    __typeof__(*(ptr)) ret__; \
+    switch (size) \
+	{ \
+    case 4: \
+        asm volatile( \
+            "	amoswap.w %0, %2, %1\n" \
+            : "=r" (ret__), "+A" (*ptr__) \
+            : "r" (new__) \
+            : "memory" ); \
+        break; \
+    case 8: \
+        asm volatile( \
+            "	amoswap.d %0, %2, %1\n" \
+            : "=r" (ret__), "+A" (*ptr__) \
+            : "r" (new__) \
+            : "memory" ); \
+        break; \
+    default: \
+        ASSERT_UNREACHABLE(); \
+    } \
+    ret__; \
+})
+
+#define xchg_relaxed(ptr, x) \
+({ \
+    __typeof__(*(ptr)) x_ = (x); \
+    (__typeof__(*(ptr))) __xchg_relaxed((ptr), x_, sizeof(*(ptr))); \
+})
+
+#define __xchg_acquire(ptr, new, size) \
+({ \
+    __typeof__(ptr) ptr__ = (ptr); \
+    __typeof__(new) new__ = (new); \
+    __typeof__(*(ptr)) ret__; \
+    switch (size) \
+	{ \
+    case 4: \
+        asm volatile( \
+            "	amoswap.w %0, %2, %1\n" \
+            RISCV_ACQUIRE_BARRIER \
+            : "=r" (ret__), "+A" (*ptr__) \
+            : "r" (new__) \
+            : "memory" ); \
+        break; \
+    case 8: \
+        asm volatile( \
+            "	amoswap.d %0, %2, %1\n" \
+            RISCV_ACQUIRE_BARRIER \
+            : "=r" (ret__), "+A" (*ptr__) \
+            : "r" (new__) \
+            : "memory" ); \
+        break; \
+    default: \
+        ASSERT_UNREACHABLE(); \
+    } \
+    ret__; \
+})
+
+#define xchg_acquire(ptr, x) \
+({ \
+    __typeof__(*(ptr)) x_ = (x); \
+    (__typeof__(*(ptr))) __xchg_acquire((ptr), x_, sizeof(*(ptr))); \
+})
+
+#define __xchg_release(ptr, new, size) \
+({ \
+    __typeof__(ptr) ptr__ = (ptr); \
+    __typeof__(new) new__ = (new); \
+    __typeof__(*(ptr)) ret__; \
+    switch (size) \
+	{ \
+    case 4: \
+        asm volatile ( \
+            RISCV_RELEASE_BARRIER \
+            "	amoswap.w %0, %2, %1\n" \
+            : "=r" (ret__), "+A" (*ptr__) \
+            : "r" (new__) \
+            : "memory"); \
+        break; \
+    case 8: \
+        asm volatile ( \
+            RISCV_RELEASE_BARRIER \
+            "	amoswap.d %0, %2, %1\n" \
+            : "=r" (ret__), "+A" (*ptr__) \
+            : "r" (new__) \
+            : "memory"); \
+        break; \
+    default: \
+        ASSERT_UNREACHABLE(); \
+    } \
+    ret__; \
+})
+
+#define xchg_release(ptr, x) \
+({ \
+    __typeof__(*(ptr)) x_ = (x); \
+    (__typeof__(*(ptr))) __xchg_release((ptr), x_, sizeof(*(ptr))); \
+})
+
+static always_inline uint32_t __xchg_case_4(volatile uint32_t *ptr,
+                                            uint32_t new)
+{
+    __typeof__(*(ptr)) ret;
+
+    asm volatile (
+        "   amoswap.w.aqrl %0, %2, %1\n"
+        : "=r" (ret), "+A" (*ptr)
+        : "r" (new)
+        : "memory" );
+
+    return ret;
+}
+
+static always_inline uint64_t __xchg_case_8(volatile uint64_t *ptr,
+                                            uint64_t new)
+{
+    __typeof__(*(ptr)) ret;
+
+    asm volatile( \
+        "   amoswap.d.aqrl %0, %2, %1\n" \
+        : "=r" (ret), "+A" (*ptr) \
+        : "r" (new) \
+        : "memory" ); \
+
+    return ret;
+}
+
+static always_inline unsigned short __cmpxchg_case_2(volatile uint32_t *ptr,
+                                                     uint32_t old,
+                                                     uint32_t new);
+
+static always_inline unsigned short __cmpxchg_case_1(volatile uint32_t *ptr,
+                                                     uint32_t old,
+                                                     uint32_t new);
+
+static inline unsigned long __xchg(volatile void *ptr, unsigned long x, int size)
+{
+    switch (size) {
+    case 1:
+        return __cmpxchg_case_1(ptr, (uint32_t)-1, x);
+    case 2:
+        return __cmpxchg_case_2(ptr, (uint32_t)-1, x);
+    case 4:
+        return __xchg_case_4(ptr, x);
+    case 8:
+        return __xchg_case_8(ptr, x);
+    default:
+        ASSERT_UNREACHABLE();
+    }
+
+    return -1;
+}
+
+#define xchg(ptr,x) \
+({ \
+    __typeof__(*(ptr)) ret__; \
+    ret__ = (__typeof__(*(ptr))) \
+            __xchg((ptr), (unsigned long)(x), sizeof(*(ptr))); \
+    ret__; \
+})
+
+#define xchg32(ptr, x) \
+({ \
+    BUILD_BUG_ON(sizeof(*(ptr)) != 4); \
+    xchg((ptr), (x)); \
+})
+
+#define xchg64(ptr, x) \
+({ \
+    BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
+    xchg((ptr), (x)); \
+})
+
+/*
+ * Atomic compare and exchange.  Compare OLD with MEM, if identical,
+ * store NEW in MEM.  Return the initial value in MEM.  Success is
+ * indicated by comparing RETURN with OLD.
+ */
+#define __cmpxchg_relaxed(ptr, old, new, size) \
+({ \
+    __typeof__(ptr) ptr__ = (ptr); \
+    __typeof__(*(ptr)) __old = (old); \
+    __typeof__(*(ptr)) new__ = (new); \
+    __typeof__(*(ptr)) ret__; \
+    register unsigned int __rc; \
+    switch (size) \
+	{ \
+    case 4: \
+        asm volatile( \
+            "0:	lr.w %0, %2\n" \
+            "	bne  %0, %z3, 1f\n" \
+            "	sc.w %1, %z4, %2\n" \
+            "	bnez %1, 0b\n" \
+            "1:\n" \
+            : "=&r" (ret__), "=&r" (__rc), "+A" (*ptr__) \
+            : "rJ" (__old), "rJ" (new__) \
+            : "memory"); \
+        break; \
+    case 8: \
+        asm volatile( \
+            "0:	lr.d %0, %2\n" \
+            "	bne %0, %z3, 1f\n" \
+            "	sc.d %1, %z4, %2\n" \
+            "	bnez %1, 0b\n" \
+            "1:\n" \
+            : "=&r" (ret__), "=&r" (__rc), "+A" (*ptr__) \
+            : "rJ" (__old), "rJ" (new__) \
+            : "memory"); \
+        break; \
+    default: \
+        ASSERT_UNREACHABLE(); \
+    } \
+    ret__; \
+})
+
+#define cmpxchg_relaxed(ptr, o, n) \
+({ \
+    __typeof__(*(ptr)) o_ = (o); \
+    __typeof__(*(ptr)) n_ = (n); \
+    (__typeof__(*(ptr))) __cmpxchg_relaxed((ptr), \
+                    o_, n_, sizeof(*(ptr))); \
+})
+
+#define __cmpxchg_acquire(ptr, old, new, size) \
+({ \
+    __typeof__(ptr) ptr__ = (ptr); \
+    __typeof__(*(ptr)) __old = (old); \
+    __typeof__(*(ptr)) new__ = (new); \
+    __typeof__(*(ptr)) ret__; \
+    register unsigned int __rc; \
+    switch (size) \
+	{ \
+    case 4: \
+        asm volatile( \
+            "0:	lr.w %0, %2\n" \
+            "	bne  %0, %z3, 1f\n" \
+            "	sc.w %1, %z4, %2\n" \
+            "	bnez %1, 0b\n" \
+            RISCV_ACQUIRE_BARRIER \
+            "1:\n"	 \
+            : "=&r" (ret__), "=&r" (__rc), "+A" (*ptr__) \
+            : "rJ" (__old), "rJ" (new__) \
+            : "memory"); \
+        break; \
+    case 8: \
+        asm volatile( \
+            "0:	lr.d %0, %2\n" \
+            "	bne %0, %z3, 1f\n" \
+            "	sc.d %1, %z4, %2\n" \
+            "	bnez %1, 0b\n" \
+            RISCV_ACQUIRE_BARRIER \
+            "1:\n" \
+            : "=&r" (ret__), "=&r" (__rc), "+A" (*ptr__) \
+            : "rJ" (__old), "rJ" (new__) \
+            : "memory"); \
+        break; \
+    default: \
+        ASSERT_UNREACHABLE(); \
+    } \
+    ret__; \
+})
+
+#define cmpxchg_acquire(ptr, o, n) \
+({ \
+    __typeof__(*(ptr)) o_ = (o); \
+    __typeof__(*(ptr)) n_ = (n); \
+    (__typeof__(*(ptr))) __cmpxchg_acquire((ptr), o_, n_, sizeof(*(ptr))); \
+})
+
+#define __cmpxchg_release(ptr, old, new, size) \
+({									\
+    __typeof__(ptr) ptr__ = (ptr); \
+    __typeof__(*(ptr)) __old = (old); \
+    __typeof__(*(ptr)) new__ = (new); \
+    __typeof__(*(ptr)) ret__; \
+    register unsigned int __rc; \
+    switch (size) \
+	{ \
+    case 4: \
+        asm volatile ( \
+            RISCV_RELEASE_BARRIER \
+            "0:	lr.w %0, %2\n" \
+            "	bne  %0, %z3, 1f\n" \
+            "	sc.w %1, %z4, %2\n" \
+            "	bnez %1, 0b\n" \
+            "1:\n" \
+            : "=&r" (ret__), "=&r" (__rc), "+A" (*ptr__)	\
+            : "rJ" (__old), "rJ" (new__) \
+            : "memory" ); \
+        break; \
+    case 8: \
+        asm volatile ( \
+            RISCV_RELEASE_BARRIER \
+            "0:	lr.d %0, %2\n" \
+            "	bne %0, %z3, 1f\n" \
+            "	sc.d %1, %z4, %2\n" \
+            "	bnez %1, 0b\n" \
+            "1:\n" \
+            : "=&r" (ret__), "=&r" (__rc), "+A" (*ptr__) \
+            : "rJ" (__old), "rJ" (new__) \
+            : "memory" ); \
+        break; \
+    default: \
+        ASSERT_UNREACHABLE(); \
+    } \
+    ret__; \
+})
+
+#define cmpxchg_release(ptr, o, n) \
+({ \
+    __typeof__(*(ptr)) _o_ = (o); \
+    __typeof__(*(ptr)) _n_ = (n); \
+    (__typeof__(*(ptr))) __cmpxchg_release((ptr), _o_, _n_, sizeof(*(ptr))); \
+})
+
+static always_inline uint32_t __cmpxchg_case_4(volatile uint32_t *ptr,
+                                               uint32_t old,
+                                               uint32_t new)
+{
+    uint32_t ret;
+    register uint32_t rc;
+
+    asm volatile (
+        "0: lr.w %0, %2\n"
+        "   bne  %0, %z3, 1f\n"
+        "   sc.w.rl %1, %z4, %2\n"
+        "   bnez %1, 0b\n"
+        "   fence rw, rw\n"
+        "1:\n"
+        : "=&r" (ret), "=&r" (rc), "+A" (*ptr)
+        : "rJ" (old), "rJ" (new)
+        : "memory" );
+
+    return ret;
+}
+
+static always_inline uint64_t __cmpxchg_case_8(volatile uint64_t *ptr,
+                                               uint64_t old,
+                                               uint64_t new)
+{
+    uint64_t ret;
+    register uint32_t rc;
+
+    asm volatile(
+        "0: lr.d %0, %2\n"
+        "   bne %0, %z3, 1f\n"
+        "   sc.d.rl %1, %z4, %2\n"
+        "   bnez %1, 0b\n"
+        "   fence rw, rw\n"
+        "1:\n"
+        : "=&r" (ret), "=&r" (rc), "+A" (*ptr)
+        : "rJ" (old), "rJ" (new)
+        : "memory");
+
+    return ret;
+}
+
+#define __emulate_cmpxchg_case1_2(ptr, new, read_func, cmpxchg_func, swap_byte_mask_base)\
+({                                                                              \
+    __typeof__(*(ptr)) read_val;                                                \
+    __typeof__(*(ptr)) swapped_new;                                             \
+    __typeof__(*(ptr)) ret;                                                     \
+    __typeof__(*(ptr)) new_ = (__typeof__(*(ptr)))new;                          \
+                                                                                \
+    __typeof__(ptr) aligned_ptr = (__typeof__(ptr))((unsigned long)ptr & ~3);   \
+    __typeof__(*(ptr)) mask_off = ((unsigned long)ptr & 3) * 8;                 \
+    __typeof__(*(ptr)) mask =                                                   \
+      (__typeof__(*(ptr)))swap_byte_mask_base << mask_off;                      \
+    __typeof__(*(ptr)) masked_new = (new_ << mask_off) & mask;                  \
+                                                                                \
+    do {                                                                        \
+        read_val = read_func(aligned_ptr);                                      \
+        swapped_new = read_val & ~mask;                                         \
+        swapped_new |= masked_new;                                              \
+        ret = cmpxchg_func(aligned_ptr, read_val, swapped_new);                 \
+    } while ( ret != read_val );                                                \
+                                                                                \
+    ret = MASK_EXTR(swapped_new, mask);                                         \
+    ret;                                                                        \
+})
+
+static always_inline unsigned short __cmpxchg_case_2(volatile uint32_t *ptr,
+                                                     uint32_t old,
+                                                     uint32_t new)
+{
+    (void) old;
+
+    if (((unsigned long)ptr & 3) == 3)
+    {
+#ifdef CONFIG_64BIT
+        return __emulate_cmpxchg_case1_2((uint64_t *)ptr, new,
+                                         readq, __cmpxchg_case_8, 0xffffU);
+#else
+        #error "add emulation support of cmpxchg for CONFIG_32BIT"
+#endif
+    }
+    else
+        return __emulate_cmpxchg_case1_2((uint32_t *)ptr, new,
+                                         readl, __cmpxchg_case_4, 0xffffU);
+}
+
+static always_inline unsigned short __cmpxchg_case_1(volatile uint32_t *ptr,
+                                                     uint32_t old,
+                                                     uint32_t new)
+{
+    (void) old;
+
+    return __emulate_cmpxchg_case1_2((uint32_t *)ptr, new,
+                                     readl, __cmpxchg_case_4, 0xffU);
+}
+
+static always_inline unsigned long __cmpxchg(volatile void *ptr,
+                                             unsigned long old,
+                                             unsigned long new,
+                                             int size)
+{
+    switch (size)
+    {
+    case 1:
+        return __cmpxchg_case_1(ptr, old, new);
+    case 2:
+        return __cmpxchg_case_2(ptr, old, new);
+    case 4:
+        return __cmpxchg_case_4(ptr, old, new);
+    case 8:
+        return __cmpxchg_case_8(ptr, old, new);
+    default:
+        ASSERT_UNREACHABLE();
+    }
+
+    return old;
+}
+
+#define cmpxchg(ptr, o, n) \
+({ \
+    __typeof__(*(ptr)) ret__; \
+    ret__ = (__typeof__(*(ptr))) \
+            __cmpxchg((ptr), (unsigned long)(o), (unsigned long)(n), \
+                      sizeof(*(ptr))); \
+    ret__; \
+})
+
+#define cmpxchg_local(ptr, o, n) \
+    (__cmpxchg_relaxed((ptr), (o), (n), sizeof(*(ptr))))
+
+#define cmpxchg32(ptr, o, n) \
+({ \
+    BUILD_BUG_ON(sizeof(*(ptr)) != 4); \
+    cmpxchg((ptr), (o), (n)); \
+})
+
+#define cmpxchg32_local(ptr, o, n) \
+({ \
+    BUILD_BUG_ON(sizeof(*(ptr)) != 4); \
+    cmpxchg_relaxed((ptr), (o), (n)) \
+})
+
+#define cmpxchg64(ptr, o, n) \
+({ \
+    BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
+    cmpxchg((ptr), (o), (n)); \
+})
+
+#define cmpxchg64_local(ptr, o, n) \
+({ \
+    BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
+    cmpxchg_relaxed((ptr), (o), (n)); \
+})
+
+#endif /* _ASM_RISCV_CMPXCHG_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:28:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:28:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659600.1029310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhRa-0002qJ-FI; Fri, 22 Dec 2023 15:28:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659600.1029310; Fri, 22 Dec 2023 15:28:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhRa-0002qC-CY; Fri, 22 Dec 2023 15:28:10 +0000
Received: by outflank-mailman (input) for mailman id 659600;
 Fri, 22 Dec 2023 15:28:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDo-0000EM-0x
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:56 +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 b79f2086-a0dc-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 16:13:53 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50e6ee8e911so166041e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:53 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b79f2086-a0dc-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258032; x=1703862832; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IQIDIuoLWyO5oFygQ2BVR/wl35YAyon66a6juh8mY+s=;
        b=kfuuoJqQnXWT9cS2w1OIPcbeDGhD4Espy8bae3/e45trkxnK1UlRMMEe28blP87V7Y
         wBEIYvuY8cjn8o+WoJuDXYJ3jd7HNcz3hthEMg4mMCG8GmNI16SNWnC61rxBHdDMFQA0
         uPpsl3abbEMJa+G1RYPxappEkyEgUxqjS1YMj9Xfj3yL9OAIYnEoReTqq3tgBQMd4Sbr
         pACX952CyQ2sb1AgfdPCbe4LdZ5IewulHk+v50PXaiyV2gFaINlxZVjI9WxEqjhbT9Oj
         uT7w0gry5WXIjqmnbN3hSIs7F9zybPAiiFWLWyQExXTEcNPnZz2eYjdqmX+EjGY/sd5V
         Pj+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258032; x=1703862832;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=IQIDIuoLWyO5oFygQ2BVR/wl35YAyon66a6juh8mY+s=;
        b=rZq53KoUHcUUFizuHDj38nqBvUuhWpKg/BRbs0Xy8DxxurQ5wbG0jJnpmgodbbEE7x
         Bo0qK1bLdymUbpqyAVFvylowDja0AlLOuDqV6WM9DX+2djPkl5+lQpN8B1VwpWOX+geg
         CaO+8fXVm7PsaOSnBfQMsIAoB1vtA4lCIvAGMDfyxqW65dtOGx8NhhJ5kYDtaoi8yagJ
         d+vBl5+MUUnecpKbf1mQNxSmY+Dthxusp365xvyVEPBUv6GeNNLf31DeAX5RFI2Aw7Xy
         bqRkWX2MLv98TkS3XegksN2351ogRt0re3gI14A4N7tfvO3wjQHJoINc9ENcjBJmbiMa
         1xxA==
X-Gm-Message-State: AOJu0YxlV7OnJZ4CNsq4OkUv7AvvFvmJwhL66PtoJXHY/58wu3flQzMQ
	4fd8XILdEfiiM0pSgclle13nMOx5Lno=
X-Google-Smtp-Source: AGHT+IFNPgXNL5l4aLEXfkQCyg8DLODVuBOW2IvGmMZFeD6yFCdZY4Um6LhGRejA0ongl0d/zCRX0Q==
X-Received: by 2002:a05:6512:3767:b0:50e:558e:125b with SMTP id z7-20020a056512376700b0050e558e125bmr695236lft.125.1703258032365;
        Fri, 22 Dec 2023 07:13:52 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 28/34] xen/riscv: add required things to current.h
Date: Fri, 22 Dec 2023 17:13:12 +0200
Message-ID: <8fd8d3652eafabf5f5586de91d97ecae077b90ea.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add minimal requied things to be able to build full Xen.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - add SPDX
 - drop a forward declaration of struct vcpu;
 - update guest_cpu_user_regs() macros
 - replace get_processor_id with smp_processor_id
 - update the commit message
 - code style fixes
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/current.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index d84f15dc50..1694f68c6f 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -3,6 +3,21 @@
 #ifndef __ASM_CURRENT_H
 #define __ASM_CURRENT_H
 
+#include <xen/bug.h>
+#include <xen/percpu.h>
+#include <asm/processor.h>
+
+#ifndef __ASSEMBLY__
+
+/* Which VCPU is "current" on this PCPU. */
+DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
+
+#define current            this_cpu(curr_vcpu)
+#define set_current(vcpu)  do { current = (vcpu); } while (0)
+#define get_cpu_current(cpu)  per_cpu(curr_vcpu, cpu)
+
+#define guest_cpu_user_regs() ({ BUG(); NULL; })
+
 #define switch_stack_and_jump(stack, fn) do {               \
     asm volatile (                                          \
             "mv sp, %0\n"                                   \
@@ -10,4 +25,8 @@
     unreachable();                                          \
 } while ( false )
 
+#define get_per_cpu_offset() __per_cpu_offset[smp_processor_id()]
+
+#endif /* __ASSEMBLY__ */
+
 #endif /* __ASM_CURRENT_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:29:34 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:29:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659612.1029320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhSt-0003wL-QK; Fri, 22 Dec 2023 15:29:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659612.1029320; Fri, 22 Dec 2023 15:29: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 1rGhSt-0003wE-MG; Fri, 22 Dec 2023 15:29:31 +0000
Received: by outflank-mailman (input) for mailman id 659612;
 Fri, 22 Dec 2023 15:29:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDm-0007Ie-IX
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:54 +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 b81e5a7d-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:53 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-50e67e37661so1185022e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:53 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b81e5a7d-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258033; x=1703862833; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BIctziQEpONFKZE794AYy1MUnDyOQ/io/VpH00G6+uw=;
        b=Pq69uNo9UmY8C/nDqOxqd9Lr074ks3H8e3ckjDuc1wdXcXG0dRa5eTQesDGtxLbpfj
         C++bGR4jJacsMilflGlf5gC2ta3Y9WcRRH03tgKwKHT+gRDW+iUA9Ap1H1jIUOjf9GI8
         yHn/BnL4tnYMvtD0VVbkxwxVxZu/HwDz9ToAJl8m2FZBg5pPxfErKJhJa/aDKbboKrDH
         Zuipyc4HyfpwHjSS+67SBbX4htSlV1iafRiz8uUKxQlI1cbjIRPQtzAjuPRcB/8isdjl
         tXJgz4fyG9YVN/gTOV2Zbfl0suHJD8G6vrSYrOkJmvsBrSof/THnR9A6LU1TqWYh5/+r
         JKVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258033; x=1703862833;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BIctziQEpONFKZE794AYy1MUnDyOQ/io/VpH00G6+uw=;
        b=EUAtVIBMVQQifOTEvG3YylFd8tdVdPW/Z/x9ioULX6Aq8YJFsw7IDkWZ3d4KcyaPlZ
         7LTCZKoX7feFVo2jBB0f4pB50cEEey7g80l9eRVrMtKLhY13NwroBIT9VIBE996IHXp4
         YAOkD/nTqFRJ38EZ+jUgOmaWLTMWJLJL1026oRJ4zoy309dSsReA3glKY7+HMRiZhj4f
         6VnSclFqMwc9Ec11KzI5pPOWFXZGgOg+63t2B4plLas3t/CVK4cwbu7lqoJnBRUrCDlV
         LB3KzcRIkLHC4Ld3KOrcJnELabXgZ2aLRNg0LcXr78Zn1r+zbXyXiCobEYmK2oSzkCV+
         z3DA==
X-Gm-Message-State: AOJu0Yz9vCx7D9lwk7YtX6hCrXr7fkkrOokHVZ98/oSpMbVN5oV/wAgN
	CxPREFZafD9D/zCSGMECH1EVheJKcZY=
X-Google-Smtp-Source: AGHT+IGU38HlC5nYk6vnjGkSK+GHyHf2rC6zXqjN2QiH9rknKQBhCeW9LnhUCjN3t94czdDjLTn1YA==
X-Received: by 2002:a19:5f54:0:b0:50e:6878:a715 with SMTP id a20-20020a195f54000000b0050e6878a715mr720490lfj.48.1703258033079;
        Fri, 22 Dec 2023 07:13:53 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 29/34] xen/riscv: add minimal stuff to page.h to build full Xen
Date: Fri, 22 Dec 2023 17:13:13 +0200
Message-ID: <7aa26bdad9bf923fd57f7a90e41c049cab0cd5bd.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.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 V3:
 - update the commit message
 - add implemetation of PAGE_HYPERVISOR macros
 - add Acked-by: Jan Beulich <jbeulich@suse.com>
 - drop definition of pfn_to_addr, and paddr_to_pfn in <asm/mm.h>
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/riscv/include/asm/mm.h   |  3 ---
 xen/arch/riscv/include/asm/page.h | 22 ++++++++++++++++++++++
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 07c7a0abba..57026e134d 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -5,9 +5,6 @@
 
 #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))
-
 extern unsigned char cpu0_boot_stack[];
 
 void setup_initial_pagetables(void);
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 95074e29b3..85176702d5 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -6,6 +6,7 @@
 #ifndef __ASSEMBLY__
 
 #include <xen/const.h>
+#include <xen/bug.h>
 #include <xen/types.h>
 
 #include <asm/mm.h>
@@ -32,6 +33,10 @@
 #define PTE_LEAF_DEFAULT            (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
 #define PTE_TABLE                   (PTE_VALID)
 
+#define PAGE_HYPERVISOR_RW          (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
+
+#define PAGE_HYPERVISOR             PAGE_HYPERVISOR_RW
+
 /* Calculate the offsets into the pagetables for a given VA */
 #define pt_linear_offset(lvl, va)   ((va) >> XEN_PT_LEVEL_SHIFT(lvl))
 
@@ -46,6 +51,9 @@ typedef struct {
 #endif
 } pte_t;
 
+#define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
+#define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
+
 static inline pte_t paddr_to_pte(paddr_t paddr,
                                  unsigned int permissions)
 {
@@ -62,6 +70,20 @@ static inline bool pte_is_valid(pte_t p)
     return p.pte & PTE_VALID;
 }
 
+static inline void invalidate_icache(void)
+{
+    BUG();
+}
+
+#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
+#define copy_page(dp, sp) memcpy(dp, sp, PAGE_SIZE)
+
+/* TODO: Flush the dcache for an entire page. */
+static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache)
+{
+    BUG();
+}
+
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_RISCV_PAGE_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:30:24 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:30:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659616.1029330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhTf-0005aO-2R; Fri, 22 Dec 2023 15:30:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659616.1029330; Fri, 22 Dec 2023 15:30:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhTe-0005aH-VS; Fri, 22 Dec 2023 15:30:18 +0000
Received: by outflank-mailman (input) for mailman id 659616;
 Fri, 22 Dec 2023 15:30: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGhDq-0007Ie-JV
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:13:58 +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 ba256bba-a0dc-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:13:57 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-50e67e37661so1185101e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 07:13:57 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 j7-20020a056512108700b0050e6df07728sm45983lfg.180.2023.12.22.07.13.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 07:13:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ba256bba-a0dc-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703258036; x=1703862836; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Uux9/ht9n0zyze2Voqi+gHdYW+rWh4M6V1sJINQk3xU=;
        b=XYtdw4sGWjFmlKJTfyp0DHMe7ZmWOg1CbRr7H16hE5t+Pl7FXxmPwEtGbzT4w01SSi
         wTPJILjUC0hFzINcp3VKJkHQeQfOYxttXPzLUWZL5ue7Z6FLilIKkstyZ6ARCyV76uYm
         7EeXA+0YS3Q3376Sog9aBaGJLD4TXVKIejTbHQ03iziKKSCTpMgakLOV5zw+0eaBZ9Yw
         nyY3FFYGV5QFIHjXRFi1przsXUYMK13z/LK4pPflnpbXUoTVIsaee+M0PMQC07jwb3hp
         58DLwQHjaFllWvAAgbMIzCWUySKSy82NlnQBzddHG9MzBxh7Qni2C+tEccFMTxdDxdnp
         8lZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703258036; x=1703862836;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Uux9/ht9n0zyze2Voqi+gHdYW+rWh4M6V1sJINQk3xU=;
        b=fVLXyDjb0arnTgencPLiLWXq6LW3ZyZRsznI0881foVtKiGAf6UqSnCRU/PhlVTgiJ
         Nuo79uslrZiw8e2UbzOd143Ruvv0/NyCrSUoOmu2T6kVcL3cXU/+AwUHbYuG6Zu+K3as
         hKiDCn6Tsy7StiiRAtHDZ5U6rlbqSmU6fib8Wa8psNdqjv60e5pwURrOHlX1AosX+8UU
         cXZxE1jrL4MwqdSSPkHgJ4a7KeSdvjLJ11HDbFIqBGnG5rPFIREeKTNDnNiQvo5A8EX+
         FKCgfJ06l8EHcPyCxY53kHoukGamgx3a5ybEORxmH5DNIvNMZk7AM0w4hxgdSeEjciuJ
         Vu1w==
X-Gm-Message-State: AOJu0YxaskvRJh5vsHglEyQi3REgfYsoyRLc191fgtISNHwVys3fIm9G
	ndpJGpCbR2mcy/67gjDDnjaxfHWPrew=
X-Google-Smtp-Source: AGHT+IHt4XL5rDn3bEpiRVYVH6Zms098+K5COh19581fksN1rQs27jcWIB3PCkLPywoTig2bVM5vvA==
X-Received: by 2002:ac2:5628:0:b0:50e:66b1:15f6 with SMTP id b8-20020ac25628000000b0050e66b115f6mr891368lff.100.1703258036274;
        Fri, 22 Dec 2023 07:13:56 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wl@xen.org>
Subject: [PATCH v3 32/34] xen/rirscv: add minimal amount of stubs to build full Xen
Date: Fri, 22 Dec 2023 17:13:16 +0200
Message-ID: <e40d3e396733ec9e85d72fc3e9f05be97881a763.1703255175.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
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/early_printk.c | 168 --------------
 xen/arch/riscv/mm.c           |  52 ++++-
 xen/arch/riscv/setup.c        |   9 +-
 xen/arch/riscv/stubs.c        | 422 ++++++++++++++++++++++++++++++++++
 xen/arch/riscv/traps.c        |  25 ++
 6 files changed, 507 insertions(+), 170 deletions(-)
 create mode 100644 xen/arch/riscv/stubs.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 2fefe14e7c..5523191bb7 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
 
 $(TARGET): $(TARGET)-syms
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
-
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 053f043a3d..6cf6f45f7f 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -1,19 +1,23 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
 #include <xen/cache.h>
 #include <xen/compiler.h>
 #include <xen/init.h>
 #include <xen/kernel.h>
 #include <xen/macros.h>
+#include <xen/mm.h>
 #include <xen/pfn.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>
 
+unsigned long __ro_after_init frametable_base_pdx;
+unsigned long __ro_after_init frametable_virt_end;
+
 struct mmu_desc {
     unsigned int num_levels;
     unsigned int pgtbl_count;
@@ -294,3 +298,49 @@ 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();
+}
+
+unsigned long get_upper_mfn_bound(void)
+{
+    /* No memory hotplug yet, so current memory limit is the final one. */
+    return max_page - 1;
+}
+
+void arch_dump_shared_mem_info(void)
+{
+    BUG();
+}
+
+int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
+{
+    BUG();
+    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();
+
+    return 0;
+}
+
+int destroy_xen_mappings(unsigned long s, unsigned long e)
+{
+    BUG();
+    return -1;
+}
+
+int map_pages_to_xen(unsigned long virt,
+                     mfn_t mfn,
+                     unsigned long nr_mfns,
+                     unsigned int flags)
+{
+    BUG();
+    return -1;
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 6593f601c1..8944e0ecfe 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -2,9 +2,16 @@
 
 #include <xen/compile.h>
 #include <xen/init.h>
+#include <xen/mm.h>
+
+#include <public/version.h>
 
 #include <asm/early_printk.h>
-#include <asm/mm.h>
+
+void arch_get_xen_caps(xen_capabilities_info_t *info)
+{
+    assert_failed("need to be implemented");
+}
 
 /* Xen stack for bringing up the first CPU. */
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
new file mode 100644
index 0000000000..c69d5b5482
--- /dev/null
+++ b/xen/arch/riscv/stubs.c
@@ -0,0 +1,422 @@
+/* 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/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 __read_mostly cpu_khz;  /* CPU clock frequency in kHz. */
+
+s_time_t get_s_time(void)
+{
+    BUG();
+}
+
+int reprogram_timer(s_time_t timeout)
+{
+    BUG();
+}
+
+void send_timer_event(struct vcpu *v)
+{
+    BUG();
+}
+
+void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
+{
+    BUG();
+}
+
+/* shutdown.c */
+
+void machine_restart(unsigned int delay_millisecs)
+{
+    BUG();
+}
+
+void machine_halt(void)
+{
+    BUG();
+}
+
+/* vm_event.c */
+
+struct vm_event_st;
+
+void vm_event_fill_regs(struct vm_event_st *req)
+{
+    BUG();
+}
+
+void vm_event_set_registers(struct vcpu *v, struct vm_event_st *rsp)
+{
+    BUG();
+}
+
+void vm_event_monitor_next_interrupt(struct vcpu *v)
+{
+    /* Not supported on RISCV. */
+}
+
+void vm_event_reset_vmtrace(struct vcpu *v)
+{
+    /* Not supported on RISCV. */
+}
+
+/* domctl.c */
+
+long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
+                    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+{
+    BUG();
+}
+
+void arch_get_domain_info(const struct domain *d,
+                          struct xen_domctl_getdomaininfo *info)
+{
+    BUG();
+}
+
+void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
+{
+    BUG();
+}
+
+/* monitor.c */
+
+int arch_monitor_domctl_event(struct domain *d,
+                              struct xen_domctl_monitor_op *mop)
+{
+    BUG();
+}
+
+/* smp.c */
+
+void arch_flush_tlb_mask(const cpumask_t *mask)
+{
+    BUG();
+}
+
+void smp_send_event_check_mask(const cpumask_t *mask)
+{
+    BUG();
+}
+
+void smp_send_call_function_mask(const cpumask_t *mask)
+{
+    BUG();
+}
+
+/* irq.c */
+
+struct pirq *alloc_pirq_struct(struct domain *d)
+{
+    BUG();
+}
+
+int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
+{
+    BUG();
+}
+
+void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
+{
+    BUG();
+}
+
+void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
+{
+    BUG();
+}
+
+hw_irq_controller no_irq_type = {
+    .typename = "none",
+    .startup = irq_startup_none,
+    .shutdown = irq_shutdown_none,
+    .enable = irq_enable_none,
+    .disable = irq_disable_none,
+};
+
+int arch_init_one_irq_desc(struct irq_desc *desc)
+{
+    BUG();
+}
+
+void smp_send_state_dump(unsigned int cpu)
+{
+    BUG();
+}
+
+/* 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();
+}
+
+void continue_running(struct vcpu *same)
+{
+    BUG();
+}
+
+void sync_local_execstate(void)
+{
+    BUG();
+}
+
+void sync_vcpu_execstate(struct vcpu *v)
+{
+    BUG();
+}
+
+void startup_cpu_idle_loop(void)
+{
+    BUG();
+}
+
+void free_domain_struct(struct domain *d)
+{
+    BUG();
+}
+
+void dump_pageframe_info(struct domain *d)
+{
+    BUG();
+}
+
+void free_vcpu_struct(struct vcpu *v)
+{
+    BUG();
+}
+
+int arch_vcpu_create(struct vcpu *v)
+{
+    BUG();
+}
+
+void arch_vcpu_destroy(struct vcpu *v)
+{
+    BUG();
+}
+
+void vcpu_switch_to_aarch64_mode(struct vcpu *v)
+{
+    BUG();
+}
+
+int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
+{
+    BUG();
+}
+
+int arch_domain_create(struct domain *d,
+                       struct xen_domctl_createdomain *config,
+                       unsigned int flags)
+{
+    BUG();
+}
+
+int arch_domain_teardown(struct domain *d)
+{
+    BUG();
+}
+
+void arch_domain_destroy(struct domain *d)
+{
+    BUG();
+}
+
+void arch_domain_shutdown(struct domain *d)
+{
+    BUG();
+}
+
+void arch_domain_pause(struct domain *d)
+{
+    BUG();
+}
+
+void arch_domain_unpause(struct domain *d)
+{
+    BUG();
+}
+
+int arch_domain_soft_reset(struct domain *d)
+{
+    BUG();
+}
+
+void arch_domain_creation_finished(struct domain *d)
+{
+    BUG();
+}
+
+int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
+{
+    BUG();
+}
+
+int arch_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    BUG();
+}
+
+int arch_vcpu_reset(struct vcpu *v)
+{
+    BUG();
+}
+
+int domain_relinquish_resources(struct domain *d)
+{
+    BUG();
+}
+
+void arch_dump_domain_info(struct domain *d)
+{
+    BUG();
+}
+
+void arch_dump_vcpu_info(struct vcpu *v)
+{
+    BUG();
+}
+
+void vcpu_mark_events_pending(struct vcpu *v)
+{
+    BUG();
+}
+
+void vcpu_update_evtchn_irq(struct vcpu *v)
+{
+    BUG();
+}
+
+void vcpu_block_unless_event_pending(struct vcpu *v)
+{
+    BUG();
+}
+
+void vcpu_kick(struct vcpu *v)
+{
+    BUG();
+}
+
+struct domain *alloc_domain_struct(void)
+{
+    BUG();
+}
+
+struct vcpu *alloc_vcpu_struct(const struct domain *d)
+{
+    BUG();
+}
+
+unsigned long
+hypercall_create_continuation(unsigned int op, const char *format, ...)
+{
+    BUG();
+}
+
+int __init parse_arch_dom0_param(const char *s, const char *e)
+{
+    BUG();
+}
+
+/* guestcopy.c */
+
+unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
+{
+    BUG();
+}
+
+unsigned long raw_copy_from_guest(void *to, const void __user *from,
+                                  unsigned int len)
+{
+    BUG();
+}
+
+/* sysctl.c */
+
+long arch_do_sysctl(struct xen_sysctl *sysctl,
+                    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
+{
+    BUG();
+}
+
+void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
+{
+    BUG();
+}
+
+/* p2m.c */
+
+int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
+{
+    BUG();
+}
+
+int unmap_mmio_regions(struct domain *d,
+                       gfn_t start_gfn,
+                       unsigned long nr,
+                       mfn_t mfn)
+{
+    BUG();
+}
+
+int map_mmio_regions(struct domain *d,
+                     gfn_t start_gfn,
+                     unsigned long nr,
+                     mfn_t mfn)
+{
+    BUG();
+}
+
+int set_foreign_p2m_entry(struct domain *d, const struct domain *fd,
+                          unsigned long gfn, mfn_t mfn)
+{
+    BUG();
+}
+
+/* Return the size of the pool, in bytes. */
+int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
+{
+    BUG();
+}
+
+/* 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");
+}
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index ccd3593f5a..ca56df75d8 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)
+{
+    assert_failed("need to be implented");
+}
+
+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)
+{
+    assert_failed("need to be implented");
+}
+
+enum mc_disposition arch_do_multicall_call(struct mc_state *state)
+{
+    assert_failed("need to be implented");
+    return mc_continue;
+}
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 15:49:53 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 15:49:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659637.1029339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhmT-0002Vw-NJ; Fri, 22 Dec 2023 15:49:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659637.1029339; Fri, 22 Dec 2023 15:49:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGhmT-0002Vp-Kl; Fri, 22 Dec 2023 15:49:45 +0000
Received: by outflank-mailman (input) for mailman id 659637;
 Fri, 22 Dec 2023 15:49:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nJNi=IB=neowutran.ovh=xen@srs-se1.protection.inumbo.net>)
 id 1rGhmR-0002Vj-Qm
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 15:49:44 +0000
Received: from neowutran.ovh (core.neowutran.ovh [51.83.40.211])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8ac872e-a0e1-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 16:49:42 +0100 (CET)
Received: from neowutran.ovh (maisonhome.neowutran.ovh [82.65.3.49])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384)
 (No client certificate requested)
 by neowutran.ovh (Postfix) with ESMTPSA id 88FFB6131C;
 Fri, 22 Dec 2023 15:49: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: b8ac872e-a0e1-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=neowutran.ovh; s=mail;
	t=1703260180; bh=5Y2j3P6yh2IvY4PkE+O7HQV+92Lr9Z0k/8gsANFQ7Y0=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=X8lFHH0FApqtsAfwTrWQtjEwGR+FsrfB96eWVAoIExlizqBjwy0XqnmEBwsk08RV3
	 tbgLplty+JKf7bZHvnCEh6ccahD0ID0hTw4K2x/oZg6SNInQTZ1BxuJN4P/U/zf/N8
	 eND37xk1h88gKwRP5Gb/6ZJ/gYNaoozcru9F0P900FLrDXyIYWIZEmKrl5rsuZIXFF
	 EGZzgDmWpeSIw5tXGifkzwCbykoztNSHQfPwrU8ntU9ANQe4zAgmekiRZK25XrAIOX
	 2T1J4vsSSuWTfNsIMZcgrMRMmo9yI+nnFXdB4zrJp0H8UmyE8WV92z7lEO7Zl4lzVG
	 0P8QbQg6V5H0Jmvk36S6CNLenVmElzmaWijm6FjFW7qJsK9a5eRULlw5egWQmO/kRa
	 5sln7QemXDS0dDo9EMR2sx6rt6pvWkJv7rRAWDD7u2QgJer0uO9sNyZpl1hhBkqVfa
	 PIysMmfsy54cXchdTFI3pi6tBzEOOvD9RStSagBOe6Rr1KesQrOBgEP7pdWoDepTSy
	 1B9GmEED4mJSU4HJc2ejnnYOqp1E0nfzMVdRVs9niaiedAfCZdsbns8jRCjeNYr+dF
	 ORGzeSgBy4L6ykt7Cxr0CMmFVtUQSSarc0E0gpsZLiuHZlC6wvX21yOFFAHe/o/vt6
	 t/9pO79RTLLDdTLFu5OnqUFQ=
Date: Fri, 22 Dec 2023 16:49:38 +0100
From: Neowutran <xen@neowutran.ovh>
To: Jan Beulich <jbeulich@suse.com>
Cc: Neowutran <xen@neowutran.ovh>, xen-devel@lists.xenproject.org, 
	Anthony Perard <anthony.perard@citrix.com>, George Dunlap <george.dunlap@citrix.com>
Subject: Re: hvmloader - allow_memory_relocate overlaps
Message-ID: <7lhrvh2ad46gjke5kvy4pbvrhstv7ihwm64suqrkle4v43tos6@oktohrjfupkc>
References: <7oe275z3eap7rhdwmrm4mvqnjnhrpag5cjwnfvwsf7rchhkyjv@pd3abzwdhg6v>
 <217649a9-8399-48d3-ba49-ae22cacf0d4b@suse.com>
 <lyqv62ezqqaybcfuhkvbhiltvnxyy32wzr36kclh7bzrupcvib@a5fpoe6atykl>
 <1c857c96-9f2d-4787-8804-799a63a00480@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <1c857c96-9f2d-4787-8804-799a63a00480@suse.com>

> > '''
> > 
> > And the associated result is: 
> > 
> > (d22) NEOWUTRAN pci.c: pci_mem_end: -67108864
> > (d22) NEOWUTRAN pci.c: pci_mem_start: -268435456
> > (d22) NEOWUTRAN pci.c: allow_memory_relocate: 0
> > (d22) NEOWUTRAN pci.c: 
 hvm_info->low_mem_pgend: 983040
> > (d22) NEOWUTRAN pci.c: HVM_LOADER would have tried to relocate guest memory
> > (d22) NEOWUTRAN pci.c: pci_mem_start: -268435456
> > 
> > So if "allow_memory_relocate" was not defined to 0, the hvmloader
> > would have tried to overlaps guest memory, and it seems that is
> > something that qemu_xen cannot handle.
> 
> Well, memory addresses printed in decimal are pretty hard to work with.
> But I'd like to ask anyway that you supply all of the log messages for
> such a guest starting, to be able to correlate what you've added with
> other items also logged.

Full logs with my patch to set allow-memory-relocate (https://github.com/neowutran/qubes-vmm-xen/commit/819705bc346cad14836fd523195ad2b0445330ac)
https://pastebin.com/9kQgvraK
(GPU passthrough work, hvmloader doesn't overlaps with guest memory)


Full logs without my patch to set allow-memory-relocate (https://github.com/neowutran/qubes-vmm-xen/blob/allowmemoryrelocate/ALLOWMEMORYRELOCATE.patch)
https://pastebin.com/g 
QGg55WZ
(GPU passthrough doesn't work, hvmloader overlaps with guest memory)

> 
> Jan

Thanks,
Neowutran
 


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 16:24:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 16:24:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659652.1029350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGiJr-0008UZ-Ba; Fri, 22 Dec 2023 16:24:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659652.1029350; Fri, 22 Dec 2023 16:24: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 1rGiJr-0008US-7w; Fri, 22 Dec 2023 16:24:15 +0000
Received: by outflank-mailman (input) for mailman id 659652;
 Fri, 22 Dec 2023 16:24: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGiJp-0008UM-U3
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 16:24: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 8a809909-a0e6-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 17:24:12 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-50e67e37661so1270625e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 08:24:12 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 t10-20020a195f0a000000b0050e70af4be0sm23791lfb.228.2023.12.22.08.24.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 08:24:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a809909-a0e6-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703262252; x=1703867052; 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=9QV2S+vU9AAYaocuuXdKbDcmwWsr+yXKcseseABTN3Q=;
        b=INSyTXA4fxNSuYqOgUNr/+DBtJCIMcBS/J0Z/ZFTgvxno8Uh0XyhSjRapD9BpTSRYY
         keEhMv5C/Z5T9ikZl2MAtPm8noNXgbouBg4wv5ZDT8k1xF5ORyIFqxA/XdSE/jWNk0Fu
         AWjzxEARgNI71oFT7b/fHZZRQgCC8nbR42i4PW49Kkx6g8pTh56EqbW7lcNb7O5m88dR
         6TqW9flIwjLX1hZI1air+aX4cW/Bf0pjQG9IVToNknyroo+ScF14gBbH1ZjG/ibNK9f4
         8TAs6UhgidRqWFcxsbhE7aQszvzPu7yidI3oziSz38cruTWqWoEdVGaMjoLDEIykhAN0
         udxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703262252; x=1703867052;
        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=9QV2S+vU9AAYaocuuXdKbDcmwWsr+yXKcseseABTN3Q=;
        b=VE4+sFV6BoaexN7cstxR6/a9ceVcdBzhW7rWS0B2Zz8i/AYPVTxiW3frvTZYJJUjNO
         5S5y5PWZT4LXjtgrOHg8yZk9C7EW716gEie+jE+KzPqlNcbOlewSoZTaYgGUOTKNjKrq
         tvPLKGhq9UxOpDI4cQHJ8ppUC8hXZ+JzKYoTrnXRP52hi2lI+z0EZmGuEkPcnUwD0yF2
         YXiW5G0w167j6PF0643xSXJLLgz3iqMB0TUN7sY/XRXjbCuAT+OVy1B7lJeVGzVyY7Za
         WrcTE0rCCyqCBJ+ezQPKZtXDcygI40jXuZ286uXii+TyNdFG8kUQkokEWyDp4G5r8Zu+
         TAcw==
X-Gm-Message-State: AOJu0YwnLkwaExk9OfVnvCgJd6p6fKlDhkUTmAotJYEDYly3qrwbgYHj
	iJvKrKbCIyjjhCm4wbOVvys=
X-Google-Smtp-Source: AGHT+IG/biM7M9Si1GoDPUhIU8WYMlA3YBQtfMq8kRAefM8ypXzsRGTy9ZBvjoNLQB+D/xaMdgzmkw==
X-Received: by 2002:a19:651e:0:b0:50e:38ed:f7af with SMTP id z30-20020a19651e000000b0050e38edf7afmr851864lfb.124.1703262251561;
        Fri, 22 Dec 2023 08:24:11 -0800 (PST)
Message-ID: <9f2ec5d4d0812ad1c13143550b54ea2f691bfbc1.camel@gmail.com>
Subject: Re: [PATCH v6 9/9] xen/asm-generic: introduce generic device.h
From: Oleksii <oleksii.kurochko@gmail.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org, 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>, George Dunlap <george.dunlap@citrix.com>, Wei
 Liu <wl@xen.org>, Shawn Anastasio <sanastasio@raptorengineering.com>
Date: Fri, 22 Dec 2023 18:24:10 +0200
In-Reply-To: <926a5c12-7f02-42ec-92a8-1c82d060c710@xen.org>
References: <cover.1703072575.git.oleksii.kurochko@gmail.com>
	 <55d6810e2f8b0f54261c504354bf879c5b887c40.1703072575.git.oleksii.kurochko@gmail.com>
	 <f41894c6-b061-4aef-9d4a-18effd917043@xen.org>
	 <4ce1258b22962f959abf2437d6427ec34d420023.camel@gmail.com>
	 <926a5c12-7f02-42ec-92a8-1c82d060c710@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

>=20
> > Generally,
> > I think it's okay not to use #ifdef DEVICE_PCI_HOSTBRIDGE to keep
> > the Arm code cleaner.
> >=20
> > Does it make sense?
>=20
> I don't quite understand your last sentence. Are you saying you would
> be=20
> ok to remove #ifdef CONFIG_HAS_PCI around DEVICE_PCI_HOSTBRIDGE?
Yes, that is what I meant.


~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 16:32:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 16:32:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659658.1029360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGiSE-0000Go-5M; Fri, 22 Dec 2023 16:32:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659658.1029360; Fri, 22 Dec 2023 16:32:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGiSE-0000Gh-2G; Fri, 22 Dec 2023 16:32:54 +0000
Received: by outflank-mailman (input) for mailman id 659658;
 Fri, 22 Dec 2023 16:32: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=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGiSD-0000Gb-D1
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 16:32:53 +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 bfe29324-a0e7-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 17:32:51 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-50e2d00f99cso2360347e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 08:32:51 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 o17-20020ac24c51000000b0050e67a7ec9fsm288604lfk.144.2023.12.22.08.32.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 08:32:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfe29324-a0e7-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703262770; x=1703867570; 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=DBGsffFZM5C4jvUXyCzocMM6KosqewTy0SI6Yddg4ao=;
        b=E9ws776fMDlgonjxxIlMjIJbIdTEmvC+kj4cF7+TrHRma3KTuB8TmkWL8E9G+5aTEi
         y2IOLwRRo7GmartqSI11yH7JC6e9vFKABP4qwrJ4FxeQZf33FKz1VN8xcM9p6U404yd+
         WggAhVmC1e3Asc+KuK9xvSZF9ab0cg48/C/TH9gK3HA5KlIwfABE/rX3olzM9pRVQIuy
         URp1wmtIxgdqGevZOrPMmxHEjO73uXvwrA9qJC3lBkLcDd4OMwr5y5vzro3UT+Yq7j85
         HD9iOfw2HXskYq7yy2Vb66b5qEKiTXaOEUNjTqzaNHfCZnqXXPIf2M8k3JR0pMCBcVMz
         QePw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703262770; x=1703867570;
        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=DBGsffFZM5C4jvUXyCzocMM6KosqewTy0SI6Yddg4ao=;
        b=mlYE4Z+/NJO1kEb51QhPckwa6Kr+t9QDRvRRgqnGjDjKp4++VWE6AEJcvN6Fgr6Bej
         2UsKpzIo1etH/g79qdOxvS8bsdwMgP76d2ZSm18P5eUUc7plH6kqwO0sQVFVOmbniOKh
         aDj/ngcnv45diisCAso2QIVS897phRcqPEH6e1peoYunaigu+LeuK8zBc00Czbbzem5a
         4xXyHkvXBKy6CHeL/sVsrylZD5VJJjttsQmFWRPKPXAc8Qhq76d8GEoQ49jIuwtVZ+LD
         JwgzAmosydCkU7VLsXCmSOFB24godCqqz4pNqI5m8OByWb3MdtKJNR2/9VWDWn/iaFfP
         tAWA==
X-Gm-Message-State: AOJu0YxvgHMXDE6giRfP/Jwzy3Zsy2BVIwAELcKlhMuV4HdhpFxy/vXN
	y277FjvkgniWYShT3CHLKrPxRWUWCZA=
X-Google-Smtp-Source: AGHT+IGKbdyKvEjamKsJV7aBWD6h6rKJ216TCdAilVGdpwqq91bmtzRgzvd5/hMs7absMqrn4gP4Zg==
X-Received: by 2002:ac2:4e43:0:b0:50b:c57e:1418 with SMTP id f3-20020ac24e43000000b0050bc57e1418mr734079lfr.16.1703262770263;
        Fri, 22 Dec 2023 08:32:50 -0800 (PST)
Message-ID: <3231bf55d5da1d3e1eb03a43759932d8ebcca8de.camel@gmail.com>
Subject: Re: [PATCH v3 31/34] xen/riscv: add minimal stuff to mm.h to build
 full Xen
From: Oleksii <oleksii.kurochko@gmail.com>
To: 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>, George Dunlap
 <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
 <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
 <wl@xen.org>
Date: Fri, 22 Dec 2023 18:32:48 +0200
In-Reply-To: <4411f6af38586074b347cd6005f19f9c670faa74.1703255175.git.oleksii.kurochko@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
	 <4411f6af38586074b347cd6005f19f9c670faa74.1703255175.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

On Fri, 2023-12-22 at 17:13 +0200, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V3:
> =C2=A0- update the commit message
> =C2=A0- introduce DIRECTMAP_VIRT_START.
> =C2=A0- drop changes related pfn_to_paddr() and paddr_to_pfn as they were
> remvoe in
> =C2=A0=C2=A0 [PATCH v2 32/39] xen/riscv: add minimal stuff to asm/page.h =
to
> build full Xen
> =C2=A0- code style fixes.
> =C2=A0- drop get_page_nr=C2=A0 and put_page_nr as they don't need for tim=
e
> being
> =C2=A0- drop CONFIG_STATIC_MEMORY related things
> =C2=A0- code style fixes
> ---
> Changes in V2:
> =C2=A0- define stub for arch_get_dma_bitsize(void)
> ---
> =C2=A0xen/arch/riscv/include/asm/config.h |=C2=A0=C2=A0 2 +
> =C2=A0xen/arch/riscv/include/asm/mm.h=C2=A0=C2=A0=C2=A0=C2=A0 | 248
> ++++++++++++++++++++++++++++
> =C2=A02 files changed, 250 insertions(+)
>=20
> diff --git a/xen/arch/riscv/include/asm/config.h
> b/xen/arch/riscv/include/asm/config.h
> index fb9fc9daaa..400309f4ef 100644
> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -67,6 +67,8 @@
> =C2=A0
> =C2=A0#define XEN_VIRT_START 0xFFFFFFFFC0000000 /* (_AC(-1, UL) + 1 -
> GB(1)) */
> =C2=A0
> +#define DIRECTMAP_VIRT_START=C2=A0=C2=A0=C2=A0 SLOTN(200)
> +
> =C2=A0#define FRAMETABLE_VIRT_START=C2=A0=C2=A0 SLOTN(196)
> =C2=A0#define FRAMETABLE_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 GB(3)
> =C2=A0#define FRAMETABLE_NR=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 (FRAMETABLE_SIZE /
> sizeof(*frame_table))
> diff --git a/xen/arch/riscv/include/asm/mm.h
> b/xen/arch/riscv/include/asm/mm.h
> index 57026e134d..14fce72fde 100644
> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -3,8 +3,251 @@
> =C2=A0#ifndef _ASM_RISCV_MM_H
> =C2=A0#define _ASM_RISCV_MM_H
> =C2=A0
> +#include <public/xen.h>
> +#include <xen/pdx.h>
> +#include <xen/types.h>
> +
> +#include <asm/page.h>
> =C2=A0#include <asm/page-bits.h>
> =C2=A0
> +#define paddr_to_pdx(pa)=C2=A0=C2=A0=C2=A0 mfn_to_pdx(maddr_to_mfn(pa))
> +#define gfn_to_gaddr(gfn)=C2=A0=C2=A0 pfn_to_paddr(gfn_x(gfn))
> +#define gaddr_to_gfn(ga)=C2=A0=C2=A0=C2=A0 _gfn(paddr_to_pfn(ga))
> +#define mfn_to_maddr(mfn)=C2=A0=C2=A0 pfn_to_paddr(mfn_x(mfn))
> +#define maddr_to_mfn(ma)=C2=A0=C2=A0=C2=A0 _mfn(paddr_to_pfn(ma))
> +#define vmap_to_mfn(va)=C2=A0=C2=A0=C2=A0=C2=A0 maddr_to_mfn(virt_to_mad=
dr((vaddr_t)va))
> +#define vmap_to_page(va)=C2=A0=C2=A0=C2=A0 mfn_to_page(vmap_to_mfn(va))
> +#define paddr_to_pdx(pa)=C2=A0=C2=A0=C2=A0 mfn_to_pdx(maddr_to_mfn(pa))
> +#define gfn_to_gaddr(gfn)=C2=A0=C2=A0 pfn_to_paddr(gfn_x(gfn))
> +#define gaddr_to_gfn(ga)=C2=A0=C2=A0=C2=A0 _gfn(paddr_to_pfn(ga))
> +#define mfn_to_maddr(mfn)=C2=A0=C2=A0 pfn_to_paddr(mfn_x(mfn))
> +#define maddr_to_mfn(ma)=C2=A0=C2=A0=C2=A0 _mfn(paddr_to_pfn(ma))
> +#define vmap_to_mfn(va)=C2=A0=C2=A0=C2=A0=C2=A0 maddr_to_mfn(virt_to_mad=
dr((vaddr_t)va))
> +#define vmap_to_page(va)=C2=A0=C2=A0=C2=A0 mfn_to_page(vmap_to_mfn(va))
> +
> +#define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
> +#define maddr_to_virt(pa) ((void *)((paddr_t)(pa) |
> DIRECTMAP_VIRT_START))
> +
> +/* Convert between Xen-heap virtual addresses and machine frame
> numbers. */
> +#define __virt_to_mfn(va) (virt_to_maddr(va) >> PAGE_SHIFT)
> +#define __mfn_to_virt(mfn) maddr_to_virt((paddr_t)(mfn) <<
> PAGE_SHIFT)
> +
> +/* Convert between Xen-heap virtual addresses and page-info
> structures. */
> +static inline struct page_info *virt_to_page(const void *v)
> +{
> +=C2=A0=C2=A0=C2=A0 BUG();
> +=C2=A0=C2=A0=C2=A0 return NULL;
> +}
> +
> +/*
> + * 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)=C2=A0=C2=A0=C2=A0=C2=A0 __virt_to_mfn(va)
> +#define mfn_to_virt(mfn)=C2=A0=C2=A0=C2=A0 __mfn_to_virt(mfn)
> +
> +struct page_info
> +{
> +=C2=A0=C2=A0=C2=A0 /* Each frame can be threaded onto a doubly-linked li=
st. */
> +=C2=A0=C2=A0=C2=A0 struct page_list_entry list;
> +
> +=C2=A0=C2=A0=C2=A0 /* Reference count and various PGC_xxx flags and fiel=
ds. */
> +=C2=A0=C2=A0=C2=A0 unsigned long count_info;
> +
> +=C2=A0=C2=A0=C2=A0 /* Context-dependent fields follow... */
> +=C2=A0=C2=A0=C2=A0 union {
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Page is in use: ((count_in=
fo & PGC_count_mask) !=3D 0). */
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct {
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Ty=
pe reference count and various PGT_xxx flags and
> fields. */
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsig=
ned long type_info;
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } inuse;
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Page is on a free list: ((=
count_info & PGC_count_mask) =3D=3D
> 0). */
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 union {
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struc=
t {
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 /*
> +=C2=A0=C2=A0=C2=A0=C2=A0=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 of the first *possibly* unscrubbed page in
> the buddy.
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 * One more bit than maximum possible order to
> accommodate
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 * INVALID_DIRTY_IDX.
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0 */
> +#define INVALID_DIRTY_IDX ((1UL << (MAX_ORDER + 1)) - 1)
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 unsigned long first_dirty:MAX_ORDER + 1;
> +
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 /* Do TLBs need flushing for safety before next page
> use? */
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 bool need_tlbflush:1;
> +
> +#define BUDDY_NOT_SCRUBBING=C2=A0=C2=A0=C2=A0 0
> +#define BUDDY_SCRUBBING=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 1
> +#define BUDDY_SCRUB_ABORT=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 2
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 unsigned long scrub_state:2;
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 };
> +
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 unsigned long val;
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } fre=
e;
> +
> +=C2=A0=C2=A0=C2=A0 } u;
> +
> +=C2=A0=C2=A0=C2=A0 union {
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Page is in use, but not as=
 a shadow. */
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct {
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Ow=
ner of this page (zero if page is anonymous). */
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struc=
t domain *domain;
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } inuse;
> +
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Page is on a free list. */
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct {
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Or=
der-size of the free chunk this page is the head
> of. */
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsig=
ned int order;
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } free;
> +
> +=C2=A0=C2=A0=C2=A0 } v;
> +
> +=C2=A0=C2=A0=C2=A0 union {
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /*
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * Timestamp from 'TLB c=
lock', used to avoid extra safety
> flushes.
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * Only valid for: a) fr=
ee pages, and b) pages with zero
> type count
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 uint32_t tlbflush_timestamp;
> +=C2=A0=C2=A0=C2=A0 };
> +=C2=A0=C2=A0=C2=A0 uint64_t pad;
> +};
> +
> +#define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
> +
> +/* PDX of the first page in the frame table. */
> +extern unsigned long frametable_base_pdx;
> +
> +/* Convert between machine frame numbers and page-info structures.
> */
> +#define mfn_to_page(mfn)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
> \
> +=C2=A0=C2=A0=C2=A0 (frame_table + (mfn_to_pdx(mfn) - frametable_base_pdx=
))
> +#define page_to_mfn(pg)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
> \
> +=C2=A0=C2=A0=C2=A0 pdx_to_mfn((unsigned long)((pg) - frame_table) +
> frametable_base_pdx)
> +
> +static inline void *page_to_virt(const struct page_info *pg)
> +{
> +=C2=A0=C2=A0=C2=A0 return mfn_to_virt(mfn_x(page_to_mfn(pg)));
> +}
> +
> +/*
> + * 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)
> +{
> +=C2=A0=C2=A0=C2=A0 return 1;
> +}
> +
> +static inline void put_page_type(struct page_info *page)
> +{
> +}
> +
> +static inline void put_page_and_type(struct page_info *page)
> +{
> +=C2=A0=C2=A0=C2=A0 put_page_type(page);
> +=C2=A0=C2=A0=C2=A0 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=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (~0U=
L)
> +#define SHARED_M2P_ENTRY=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 (~0UL - 1UL)
> +#define SHARED_M2P(_e)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 ((_e) =3D=3D SHARED_M2P_ENTRY)
> +
> +/* Xen always owns P2M on RISC-V */
> +#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 (16 + 5)
> +
> +static inline unsigned long domain_get_maximum_gpfn(struct domain
> *d)
> +{
> +=C2=A0=C2=A0=C2=A0 BUG();
> +=C2=A0=C2=A0=C2=A0 return 0;
> +}
> +
> +static inline long arch_memory_op(int op,
> XEN_GUEST_HANDLE_PARAM(void) arg)
> +{
> +=C2=A0=C2=A0=C2=A0 BUG();
> +=C2=A0=C2=A0=C2=A0 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)
> +{
> +=C2=A0=C2=A0=C2=A0 return true;
> +}
> +
> +#define PG_shift(idx)=C2=A0=C2=A0 (BITS_PER_LONG - (idx))
> +#define PG_mask(x, idx) (x ## UL << PG_shift(idx))
> +
> +#define PGT_none=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 P=
G_mask(0, 1)=C2=A0 /* no special uses of this
> page=C2=A0=C2=A0 */
> +#define PGT_writable_page PG_mask(1, 1)=C2=A0 /* has writable
> mappings?=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
> +#define PGT_type_mask=C2=A0=C2=A0=C2=A0=C2=A0 PG_mask(1, 1)=C2=A0 /* Bit=
s 31 or
> 63.=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
> +
> + /* Count of uses of this frame as its current type. */
> +#define PGT_count_width=C2=A0=C2=A0 PG_shift(2)
> +#define PGT_count_mask=C2=A0=C2=A0=C2=A0 ((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=C2=A0=C2=A0 _PGC_allocated
> +#define PGC_need_scrub=C2=A0=C2=A0=C2=A0 PGC_allocated
> +
> +//=C2=A0 /* Cleared when the owning guest 'frees' this page. */
> +#define _PGC_allocated=C2=A0=C2=A0=C2=A0 PG_shift(1)
> +#define PGC_allocated=C2=A0=C2=A0=C2=A0=C2=A0 PG_mask(1, 1)
> +=C2=A0 /* Page is Xen heap? */
> +#define _PGC_xen_heap=C2=A0=C2=A0=C2=A0=C2=A0 PG_shift(2)
> +#define PGC_xen_heap=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_mask(1, 2)
> +/* Page is broken? */
> +#define _PGC_broken=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_shift(7)
> +#define PGC_broken=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_mask(1, =
7)
> + /* Mutually-exclusive page states: { inuse, offlining, offlined,
> free }. */
> +#define PGC_state=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_mas=
k(3, 9)
> +#define PGC_state_inuse=C2=A0=C2=A0 PG_mask(0, 9)
> +#define PGC_state_offlining PG_mask(1, 9)
> +#define PGC_state_offlined PG_mask(2, 9)
> +#define PGC_state_free=C2=A0=C2=A0=C2=A0 PG_mask(3, 9)
> +// #define page_state_is(pg, st) (((pg)->count_info&PGC_state) =3D=3D
> PGC_state_##st)
> +
> +/* Count of references to this frame. */
> +#define PGC_count_width=C2=A0=C2=A0 PG_shift(9)
> +#define PGC_count_mask=C2=A0=C2=A0=C2=A0 ((1UL<<PGC_count_width)-1)
> +
> +#define page_state_is(pg, st) (((pg)->count_info&PGC_state) =3D=3D
> PGC_state_##st)
> +
> +#define _PGC_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_shift(10=
)
> +#define PGC_extra=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PG_mas=
k(1, 10)
> +
> +#define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
> +#define is_xen_heap_mfn(mfn) \
> +=C2=A0=C2=A0=C2=A0 (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn))=
)
> +
> +#define is_xen_fixed_mfn(mfn)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 \
> +=C2=A0=C2=A0=C2=A0 ((mfn_to_maddr(mfn) >=3D virt_to_maddr(&_start)) &&=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
> +=C2=A0=C2=A0=C2=A0=C2=A0 (mfn_to_maddr(mfn) <=3D virt_to_maddr((vaddr_t)=
_end - 1)))
> +
> +#define page_get_owner(_p)=C2=A0=C2=A0=C2=A0 (_p)->v.inuse.domain
> +#define page_set_owner(_p,_d) ((_p)->v.inuse.domain =3D (_d))
> +
> +/* TODO: implement */
> +#define mfn_valid(mfn) ({ (void) (mfn); 0; })
> +
> +#define mfn_to_gfn(d, mfn) ((void)(d), _gfn(mfn_x(mfn)))
> +
> +#define domain_set_alloc_bitsize(d) ((void)0)
> +#define domain_clamp_alloc_bitsize(d, b) (b)
> +
> +#define PFN_ORDER(_pfn) ((_pfn)->v.free.order)
I missed saving these changes. It should be _pfn -> pfn_. (Just a
reminder for me).

Sorry for the inconvenience.

> +
> =C2=A0extern unsigned char cpu0_boot_stack[];
> =C2=A0
> =C2=A0void setup_initial_pagetables(void);
> @@ -17,4 +260,9 @@ unsigned long calc_phys_offset(void);
> =C2=A0
> =C2=A0void turn_on_mmu(unsigned long ra);
> =C2=A0
> +static inline unsigned int arch_get_dma_bitsize(void)
> +{
> +=C2=A0=C2=A0=C2=A0 return 32; /* TODO */
> +}
> +
> =C2=A0#endif /* _ASM_RISCV_MM_H */



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 16:52:09 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 16:52:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659664.1029369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGikl-0005M0-Ls; Fri, 22 Dec 2023 16:52:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659664.1029369; Fri, 22 Dec 2023 16:52:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGikl-0005Lt-JF; Fri, 22 Dec 2023 16:52:03 +0000
Received: by outflank-mailman (input) for mailman id 659664;
 Fri, 22 Dec 2023 16:52: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=c4ps=IB=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1rGikk-0005Lk-GH
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 16:52:02 +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 6c009849-a0ea-11ee-9b0f-b553b5be7939;
 Fri, 22 Dec 2023 17:52:00 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 106C061CAF;
 Fri, 22 Dec 2023 16:51:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id B4C34C433C8;
 Fri, 22 Dec 2023 16:51:57 +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
 9AAB3C41620; Fri, 22 Dec 2023 16:51: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: 6c009849-a0ea-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1703263917;
	bh=Ue0MdyT4SH0otrhoJ4cn6K6f1XRqgoWtWCM044adwBM=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=IPelxh78Ii2g3sMi43ewXSCXIUrYX3hBFJ/k7ui9zDfTv55HWFRZvrQJRAzyl+z5S
	 HvtfiBw739wX3AZqeLOVXkxevPe4keyqG2XT7N+hQkdPGcW03qU5xIeYn1I0xZdG26
	 JVZ6IJXbnLKtkUoIU/6t1syI6h6fMJrixaAKi4L77gxJL8rEQRFoWYu0ddcCOzoKYi
	 9uhlGwweJiO2ftsZmpTysj+TW71ubXgN1VtcPsaeR4CHjLsnyq7UswKYjlp2i7Poxn
	 78vnbwp0oDoVF9z1SKZMMT2DoXHIpl9O2gpqTQ6bXtXYivAQ1m0Hd29hJq0ydvLLTB
	 GLYTnYnyAYGuw==
Subject: Re: [GIT PULL] xen: branch for v6.7-rc7
From: pr-tracker-bot@kernel.org
In-Reply-To: <20231222063415.17316-1-jgross@suse.com>
References: <20231222063415.17316-1-jgross@suse.com>
X-PR-Tracked-List-Id: <linux-kernel.vger.kernel.org>
X-PR-Tracked-Message-Id: <20231222063415.17316-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.7a-rc7-tag
X-PR-Tracked-Commit-Id: 93cd0597649844a0fe7989839a3202735fb3ae67
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: b7bc7bce88bdf52ec2b47c576fb51269a521bd9a
Message-Id: <170326391762.6925.1618445001287059665.pr-tracker-bot@kernel.org>
Date: Fri, 22 Dec 2023 16:51:57 +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, 22 Dec 2023 07:34:15 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.7a-rc7-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/b7bc7bce88bdf52ec2b47c576fb51269a521bd9a

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 17:44:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 17:44:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659672.1029379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGjYo-0003hH-81; Fri, 22 Dec 2023 17:43:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659672.1029379; Fri, 22 Dec 2023 17:43:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGjYo-0003hA-5V; Fri, 22 Dec 2023 17:43:46 +0000
Received: by outflank-mailman (input) for mailman id 659672;
 Fri, 22 Dec 2023 17:43: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 1rGjYn-0003h0-60; Fri, 22 Dec 2023 17:43: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 1rGjYm-0000HL-Th; Fri, 22 Dec 2023 17:43: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 1rGjYm-0007iI-FF; Fri, 22 Dec 2023 17:43:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGjYm-0002i6-Eq; Fri, 22 Dec 2023 17:43: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=Mrw6W07KZWxb1ezJ0CB1BGh5Rdkrr/UN5mbxRxB/oms=; b=iVxsWRfYjqdhSx40xRQiK51CDR
	kL/st8aPEccU2CkwGkasGVCK1ccjMJcx4bysWHqd74Q06FUgPvAQc1UeT2PIf+Pg0nSHib5AhQ6vK
	nE2lDJBVPwlWKEYldqYyuRmySXztL9zHVTVnWYnU5ryFTPKoB6VQMt48eDkNV/yuc84E=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184209-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184209: tolerable FAIL - PUSHED
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install:fail:heisenbug
    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-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check: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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl: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: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-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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-libvirt: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-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=3909fb4692dfbf7e46c0bcc37b0a3b943a034da9
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 22 Dec 2023 17:43:44 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install fail pass in 184213-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop  fail in 184213 like 184204
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184204
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184204
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184204
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184204
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184204
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184204
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184204
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184204
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184204
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184204
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184204
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 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-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl          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          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-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-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  3909fb4692dfbf7e46c0bcc37b0a3b943a034da9

Last test of basis   184204  2023-12-21 14:58:45 Z    1 days
Testing same since   184209  2023-12-22 04:35:05 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Arnd Bergmann <arnd@arndb.de>
  Jan Beulich <jbeulich@suse.com>
  Juergen Gross <jgross@suse.com>
  Roger Pau Monne <roger.pau@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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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
   3909fb4692..49818cde63  49818cde637b5ec20383e46b71f93b2e7d867686 -> master


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 18:16:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 18:16:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659684.1029405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGk49-0001RC-RT; Fri, 22 Dec 2023 18:16:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659684.1029405; Fri, 22 Dec 2023 18:16:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGk49-0001R5-Ox; Fri, 22 Dec 2023 18:16:09 +0000
Received: by outflank-mailman (input) for mailman id 659684;
 Fri, 22 Dec 2023 18:16:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=buqB=IB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1rGk48-0001Qg-GS
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 18:16:08 +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 2c633603-a0f6-11ee-98eb-6d05b1d4d9a1;
 Fri, 22 Dec 2023 19:16:06 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-50e6a806e4aso801708e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Dec 2023 10:16:06 -0800 (PST)
Received: from [192.168.220.211] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 g16-20020a19ee10000000b0050d12f6c533sm597137lfb.189.2023.12.22.10.16.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Dec 2023 10:16:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c633603-a0f6-11ee-98eb-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703268965; x=1703873765; 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=DsX2dperMp2qLzV8cdhEvBvzWC1vT6De4vqI0jnXKCY=;
        b=QfnJtRxJ4bH+YapfvXHGRlGUnfQ2YldzFJ8ZpSKb+GE4MsVSjo/Mj4oK8xXUw9P1zb
         /mHIFn2LswGHORJjpJLh8erGQ4cBQh+cX3m+qmP4FB2YVufs9z+CgyBlmB4DpXazk+jm
         z5gXYAeMn2j99KBGWQqdDlUS4A3xf+Gtkmiqrp1SFiH07GX/DT/zNIhCbiM5FXG1dZGN
         IYRUglsmfP5pqRwYlgIp8XIFoljraVLY4OEEJG2qE/yEnH9JCvX/7t/peTVtVylN0PvM
         e5It8DMMioTE49h8Zq0gmN3Jv9bqi1HbQUXCQpgUFwdkp465If0lM2BR2eISfFUOSSLH
         I0ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703268965; x=1703873765;
        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=DsX2dperMp2qLzV8cdhEvBvzWC1vT6De4vqI0jnXKCY=;
        b=J/e1J7VbGLvUBC383/axGqpS8vG4RrTvUAsIgfU1lyuuYpyMAzoJAywnoG/O7EyjOi
         mCXIUgSuCIOZwWsITI/7bK+3sP+QzjvXt1cpYOqAO/6v7ywvYBBDg0EIdNgdFGyAa7Ln
         VOVdE8l+Pwxu4AX52K97l83iAhGx3C67svXOQSnbczDPmCv105B6bA2CZeYXlA7j2Lw/
         pU7zqlCeH7xzpbu76OmdqQ0Oof5iiAaEI/d7N2nft6Ck26+dOgt/5IaONFxuJI80cMIy
         bgrQ5eJRlCBEfyqfgLbbD0pKA3L13yr8KD8PXCVPEBajcqtzVTg0o0fMuIBBbt/cNAQV
         g11A==
X-Gm-Message-State: AOJu0YytgBQ5obp6l5CrgH5mIEoua9Xp0u2ZXjaH7Qm99u1dPXAVTeRZ
	gULlyQs/5oZPAD+i1M7Va1aNTf8bv34=
X-Google-Smtp-Source: AGHT+IHGdwLEjHez4Z86GpXF7rF3JUD7Ubs/N4QFq72FOdWsZ1IGfzjShrfcswLqH9XxBPNmMgw71w==
X-Received: by 2002:a19:5f54:0:b0:50e:6878:a70b with SMTP id a20-20020a195f54000000b0050e6878a70bmr843506lfj.54.1703268964772;
        Fri, 22 Dec 2023 10:16:04 -0800 (PST)
Message-ID: <feb344194bf7422e774b70e34083188bff6fdbff.camel@gmail.com>
Subject: Re: [PATCH v3 31/34] xen/riscv: add minimal stuff to mm.h to build
 full Xen
From: Oleksii <oleksii.kurochko@gmail.com>
To: 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>, George Dunlap
 <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
 <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Wei Liu
 <wl@xen.org>
Date: Fri, 22 Dec 2023 20:16:03 +0200
In-Reply-To: <3231bf55d5da1d3e1eb03a43759932d8ebcca8de.camel@gmail.com>
References: <cover.1703255175.git.oleksii.kurochko@gmail.com>
	 <4411f6af38586074b347cd6005f19f9c670faa74.1703255175.git.oleksii.kurochko@gmail.com>
	 <3231bf55d5da1d3e1eb03a43759932d8ebcca8de.camel@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) 
MIME-Version: 1.0

T24gRnJpLCAyMDIzLTEyLTIyIGF0IDE4OjMyICswMjAwLCBPbGVrc2lpIHdyb3RlOgo+ID4gKwo+
ID4gK3N0cnVjdCBwYWdlX2luZm8KPiA+ICt7Cj4gPiArwqDCoMKgIC8qIEVhY2ggZnJhbWUgY2Fu
IGJlIHRocmVhZGVkIG9udG8gYSBkb3VibHktbGlua2VkIGxpc3QuICovCj4gPiArwqDCoMKgIHN0
cnVjdCBwYWdlX2xpc3RfZW50cnkgbGlzdDsKPiA+ICsKPiA+ICvCoMKgwqAgLyogUmVmZXJlbmNl
IGNvdW50IGFuZCB2YXJpb3VzIFBHQ194eHggZmxhZ3MgYW5kIGZpZWxkcy4gKi8KPiA+ICvCoMKg
wqAgdW5zaWduZWQgbG9uZyBjb3VudF9pbmZvOwo+ID4gKwo+ID4gK8KgwqDCoCAvKiBDb250ZXh0
LWRlcGVuZGVudCBmaWVsZHMgZm9sbG93Li4uICovCj4gPiArwqDCoMKgIHVuaW9uIHsKPiA+ICvC
oMKgwqDCoMKgwqDCoCAvKiBQYWdlIGlzIGluIHVzZTogKChjb3VudF9pbmZvICYgUEdDX2NvdW50
X21hc2spICE9IDApLgo+ID4gKi8KPiA+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgewo+ID4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogVHlwZSByZWZlcmVuY2UgY291bnQgYW5kIHZhcmlvdXMg
UEdUX3h4eCBmbGFncyBhbmQKPiA+IGZpZWxkcy4gKi8KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHVuc2lnbmVkIGxvbmcgdHlwZV9pbmZvOwo+ID4gK8KgwqDCoMKgwqDCoMKgIH0gaW51c2U7
Cj4gPiArwqDCoMKgwqDCoMKgwqAgLyogUGFnZSBpcyBvbiBhIGZyZWUgbGlzdDogKChjb3VudF9p
bmZvICYgUEdDX2NvdW50X21hc2spCj4gPiA9PQo+ID4gMCkuICovCj4gPiArwqDCoMKgwqDCoMKg
wqAgdW5pb24gewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHsKPiA+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyoKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCAqIEluZGV4IG9mIHRoZSBmaXJzdCAqcG9zc2libHkqIHVuc2NydWJiZWQgcGFn
ZQo+ID4gaW4KPiA+IHRoZSBidWRkeS4KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAqIE9uZSBtb3JlIGJpdCB0aGFuIG1heGltdW0gcG9zc2libGUgb3JkZXIgdG8KPiA+IGFj
Y29tbW9kYXRlCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBJTlZBTElE
X0RJUlRZX0lEWC4KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+ID4g
KyNkZWZpbmUgSU5WQUxJRF9ESVJUWV9JRFggKCgxVUwgPDwgKE1BWF9PUkRFUiArIDEpKSAtIDEp
Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgZmlyc3Rf
ZGlydHk6TUFYX09SREVSICsgMTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgLyogRG8gVExCcyBuZWVkIGZsdXNoaW5nIGZvciBzYWZldHkgYmVmb3JlIG5leHQKPiA+
IHBhZ2UKPiA+IHVzZT8gKi8KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYm9v
bCBuZWVkX3RsYmZsdXNoOjE7Cj4gPiArCj4gPiArI2RlZmluZSBCVUREWV9OT1RfU0NSVUJCSU5H
wqDCoMKgIDAKPiA+ICsjZGVmaW5lIEJVRERZX1NDUlVCQklOR8KgwqDCoMKgwqDCoMKgIDEKPiA+
ICsjZGVmaW5lIEJVRERZX1NDUlVCX0FCT1JUwqDCoMKgwqDCoCAyCj4gPiArwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgc2NydWJfc3RhdGU6MjsKPiA+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIH07Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHVuc2lnbmVkIGxvbmcgdmFsOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBm
cmVlOwo+ID4gKwo+ID4gK8KgwqDCoCB9IHU7Cj4gPiArCj4gPiArwqDCoMKgIHVuaW9uIHsKPiA+
ICvCoMKgwqDCoMKgwqDCoCAvKiBQYWdlIGlzIGluIHVzZSwgYnV0IG5vdCBhcyBhIHNoYWRvdy4g
Ki8KPiA+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgLyogT3duZXIgb2YgdGhpcyBwYWdlICh6ZXJvIGlmIHBhZ2UgaXMgYW5vbnltb3VzKS4gKi8K
PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkb21haW4gKmRvbWFpbjsKPiA+ICvC
oMKgwqDCoMKgwqDCoCB9IGludXNlOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgIC8qIFBhZ2Ug
aXMgb24gYSBmcmVlIGxpc3QuICovCj4gPiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IHsKPiA+ICvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIE9yZGVyLXNpemUgb2YgdGhlIGZyZWUgY2h1bmsgdGhp
cyBwYWdlIGlzIHRoZSBoZWFkCj4gPiBvZi4gKi8KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHVuc2lnbmVkIGludCBvcmRlcjsKPiA+ICvCoMKgwqDCoMKgwqDCoCB9IGZyZWU7Cj4gPiArCj4g
PiArwqDCoMKgIH0gdjsKPiA+ICsKPiA+ICvCoMKgwqAgdW5pb24gewo+ID4gK8KgwqDCoMKgwqDC
oMKgIC8qCj4gPiArwqDCoMKgwqDCoMKgwqDCoCAqIFRpbWVzdGFtcCBmcm9tICdUTEIgY2xvY2sn
LCB1c2VkIHRvIGF2b2lkIGV4dHJhIHNhZmV0eQo+ID4gZmx1c2hlcy4KPiA+ICvCoMKgwqDCoMKg
wqDCoMKgICogT25seSB2YWxpZCBmb3I6IGEpIGZyZWUgcGFnZXMsIGFuZCBiKSBwYWdlcyB3aXRo
IHplcm8KPiA+IHR5cGUgY291bnQKPiA+ICvCoMKgwqDCoMKgwqDCoMKgICovCj4gPiArwqDCoMKg
wqDCoMKgwqAgdWludDMyX3QgdGxiZmx1c2hfdGltZXN0YW1wOwo+ID4gK8KgwqDCoCB9Owo+ID4g
K8KgwqDCoCB1aW50NjRfdCBwYWQ7CkkgdGhpbmsgaXQgY2FuIGJlIHJlbW92ZWQgdG9vLiBUaGUg
Y2hhbmdlcyB3ZXJlbid0IHNhdmVkLiAoIEp1c3QKYW5vdGhlciBvbmUgcmVtaW5kZXIgZm9yIG1l
ICkuCgpTb3JyeSBmb3IgdGhlIGNvbnZlbmllbmNlLgoKfiBPbGVrc2lpCj4gCg==



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 22:01:10 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 22:01:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659690.1029416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGnZf-00070T-9U; Fri, 22 Dec 2023 22:00:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659690.1029416; Fri, 22 Dec 2023 22:00:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGnZf-00070M-6X; Fri, 22 Dec 2023 22:00:55 +0000
Received: by outflank-mailman (input) for mailman id 659690;
 Fri, 22 Dec 2023 22: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=kBLA=IB=citrix.com=prvs=713b4d154=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1rGnZd-00070E-Si
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 22:00:53 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9087d4e4-a115-11ee-98ec-6d05b1d4d9a1;
 Fri, 22 Dec 2023 23:00:50 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9087d4e4-a115-11ee-98ec-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1703282450;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=NyMn+F+hFZOalcCl7Sy3A/+RiZ6ShplbOULfWH5F7dw=;
  b=F3DgkLKkJMjCaHFchcqAzy9Y7TYHFcfQxu9rOJKmSoZmnmkXqNuPIr12
   L04F6MKFqrLT0ewp+O6wAWpRZHZCZlfUJmQlKCek9HgDkVDPmo80ACtlH
   FjTvD9Z9c3C8hhm53iAFVX2JIP500iTpJ6XrGCs9f8Q8IH5/e89VBtib4
   0=;
X-CSE-ConnectionGUID: yRHRQTKUQCOAJOn1oXFaXg==
X-CSE-MsgGUID: ZY7ktRjsRZeVoCWnrg2U4Q==
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 4.0
X-MesageID: 128969904
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.159.70
X-Policy: $RELAYED
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:tmoGEqAe5NEh8xVW/3Ljw5YqxClBgxIJ4kV8jS/XYbTApDlw0zZVy
 DcWXzjVP6qOMDTzL9lwbIm/9kgAsZCBm4U2QQY4rX1jcSlH+JHPbTi7wuUcHAvJd5GeExg3h
 yk6QoOdRCzhZiaE/n9BCpC48D8kk/nOH+KgYAL9EngZbRd+Tys8gg5Ulec8g4p56fC0GArIs
 t7pyyHlEAbNNwVcbCRMt8pvlDs15K6p4WlC5ARlDRx2lAS2e0c9Xcp3yZ6ZdxMUcqEMdsamS
 uDKyq2O/2+x13/B3fv8z94X2mVTKlLjFVDmZkh+AsBOsTAbzsAG6Y4pNeJ0VKtio27hc+ada
 jl6ncfYpQ8BZsUgkQmGOvVSO3kW0aZuoNcrLZUj2CA6IoKvn3bEmp1T4E8K0YIw69xXO1hy1
 sEhAxckTDeF3uWG7ruLRbw57igjBJGD0II3v3hhyXfSDOo8QICFSKLPjTNa9G5u3IYUR6+YP
 pdIL2U3BPjDS0Qn1lM/IZQyhuq3wFL4dCVVsgm9rqsr+WnDigd21dABNfKMIIzbG5QExhrwS
 mTuzVWmAQ0gNsel+ze79VmTgPXAxx6nYddHfFG/3qEz2wDCroAJMzUGWF3+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQiH2DuAQVV5xPEuk5wAaXw6HQ7kCSAW1sZhxrZcEitcQ2bSc3z
 VLPlNTsbRRwtJWFRHTb8a2bxQ5eIgBMczVEP3VdC1JYsp+8+Onfky4jUP5yKo6Pt+HWJAjb5
 Bmoiy5ngIU9hP4EgvDTEU/8v968mnTYZldqvl6NATv/v14RWWKzW2C/BbHmARd8wGWxFADpU
 IAswZT20Qz3JcjleNaxaOsMBqq1wP2OLSfRh1Vid7F4qGz2oSH7J9wBumgnTKuMDirjUWa4C
 HI/RCsLvMMDVJdURf4fj32N5zQCkvG7SIWNugH8ZdtSeJlhHDJrDwk3DXN8K1vFyRB2+YlmY
 MfzTCpZJSpCYUiR5GbsFrh1PH5C7nxW+F4/srihlEv+iefOOiTLIVrHWXPXBt0EAGq/iF292
 75i2wGikn2zjMWWjvHrzLMu
IronPort-HdrOrdr: A9a23:ZIgAgqD0V6tEll/lHemg55DYdb4zR+YMi2TC1yhKJyC9Ffbo8P
 xG/c5rsSMc5wxwZJhNo7y90cq7MBbhHPxOkOos1N6ZNWGM0gaVxelZnO3fKlbbehEWmNQz6U
 4ZSdkdNOHN
X-Talos-CUID: =?us-ascii?q?9a23=3AlLbd3Gqt/4oQfiWw/dIMROrmUdEfUkfk8FTtGmS?=
 =?us-ascii?q?fIEROTuSSeXGZyKwxxg=3D=3D?=
X-Talos-MUID: 9a23:iXqgHgnNVHQMBQdfhhNOdnpQBZhr/56sE3o/nKsBkPaCLyMqBmuk2WE=
X-IronPort-AV: E=Sophos;i="6.04,297,1695700800"; 
   d="scan'208";a="128969904"
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Konrad Rzeszutek Wilk
	<konrad.wilk@oracle.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, "Jan
 Beulich" <JBeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Wei Liu <wl@xen.org>
Subject: [PATCH] xen/livepatch: Make check_for_livepatch_work() faster in the common case
Date: Fri, 22 Dec 2023 22:00:45 +0000
Message-ID: <20231222220045.2840714-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

When livepatching is enabled, this function is used all the time.  Really do
check the fastpath first, and annotate it likely() as this is the right answer
100% of the time (to many significant figures).

This cuts out 3 pointer dereferences in the "nothing to do path", and it seems
the optimiser has an easier time too.  Bloat-o-meter reports:

  add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-57 (-57)
  Function                                     old     new   delta
  check_for_livepatch_work.cold               1201    1183     -18
  check_for_livepatch_work                    1021     982     -39

which isn't too shabby for no logical change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
CC: Ross Lagerwall <ross.lagerwall@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

I'm still a little disappointed with the code generation.  GCC still chooses
to set up the full stack frame (6 regs, +3 more slots) intermixed with the
per-cpu calculations.

In isolation, GCC can check the boolean without creating a stack frame:

  <work_to_to>:
    48 89 e2                mov    %rsp,%rdx
    48 8d 05 de e1 37 00    lea    0x37e1de(%rip),%rax        # ffff82d0405b6068 <per_cpu__work_to_do>
    48 81 ca ff 7f 00 00    or     $0x7fff,%rdx
    8b 4a c1                mov    -0x3f(%rdx),%ecx
    48 8d 15 45 aa 39 00    lea    0x39aa45(%rip),%rdx        # ffff82d0405d28e0 <__per_cpu_offset>
    48 8b 14 ca             mov    (%rdx,%rcx,8),%rdx
    0f b6 04 02             movzbl (%rdx,%rax,1),%eax
    c3                      retq

but I can't find a way to convince GCC that it would be worth not setting up a
stack frame in in the common case, and having a few extra mov reg/reg's later
in the uncommon case.

I haven't tried manually splitting the function into a check() and a do()
function.  Views on whether that might be acceptable?  At a guess, do() would
need to be a static noinline to avoid it turning back into what it currently
is.
---
 xen/common/livepatch.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index 1209fea2566c..b6275339f663 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -1706,15 +1706,15 @@ void check_for_livepatch_work(void)
     s_time_t timeout;
     unsigned long flags;
 
+    /* Fast path: no work to do. */
+    if ( likely(!per_cpu(work_to_do, cpu)) )
+        return;
+
     /* Only do any work when invoked in truly idle state. */
     if ( system_state != SYS_STATE_active ||
          !is_idle_domain(current->sched_unit->domain) )
         return;
 
-    /* Fast path: no work to do. */
-    if ( !per_cpu(work_to_do, cpu ) )
-        return;
-
     smp_rmb();
     /* In case we aborted, other CPUs can skip right away. */
     if ( !livepatch_work.do_work )

base-commit: 49818cde637b5ec20383e46b71f93b2e7d867686
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 22 22:53:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 22:53:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659698.1029426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGoOj-0005GA-A9; Fri, 22 Dec 2023 22:53:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659698.1029426; Fri, 22 Dec 2023 22:53:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGoOj-0005G3-5A; Fri, 22 Dec 2023 22:53:41 +0000
Received: by outflank-mailman (input) for mailman id 659698;
 Fri, 22 Dec 2023 22:53: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 1rGoOi-0005Ft-0i; Fri, 22 Dec 2023 22:53: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 1rGoOh-0005iq-Nj; Fri, 22 Dec 2023 22:53: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 1rGoOh-0006IF-8w; Fri, 22 Dec 2023 22:53:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGoOh-0003ML-8Q; Fri, 22 Dec 2023 22:53: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=6o1a8okict1+CnfYOPFqUl5f19Watdu4jzmg+OqCV6k=; b=q1m4uKaWXxN0XdHa9fSdM9ZJ78
	P1vuGbNlJrYvcqlw1WfsZiXMx1f+dngK7dSTJDKVF6VIcYE9tNKDHTiRxo90DmDqN1DKYvtgFRu7F
	y9MVGMll3BHJ/prQ1ACkX1fLHlq+rC0HA8ZayNbMujBoFrGZGz9PoKW8HfneAJQF1D/c=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184212-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184212: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-libvirt-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-armhf-armhf-libvirt:saverestore-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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:migrate-support-check:fail:nonblocking
    linux-linus:test-amd64-amd64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl: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-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt: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-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=24e0d2e527a39f64caeb2e6be39ad5396fb2da5e
X-Osstest-Versions-That:
    linux=9a6b294ab496650e9f270123730df37030911b55
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 22 Dec 2023 22:53:39 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail blocked in 184206
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184206
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184206
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184206
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184206
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184206
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184206
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184206
 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-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-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-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-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                24e0d2e527a39f64caeb2e6be39ad5396fb2da5e
baseline version:
 linux                9a6b294ab496650e9f270123730df37030911b55

Last test of basis   184206  2023-12-21 22:43:55 Z    1 days
Testing same since   184212  2023-12-22 11:03:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alexis LothorÃ© <alexis.lothore@bootlin.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Mario Limonciello <mario.limonciello@amd.com>
  Nam Cao <namcao@linutronix.de>
  Patrick Rudolph <patrick.rudolph@9elements.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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   9a6b294ab496..24e0d2e527a3  24e0d2e527a39f64caeb2e6be39ad5396fb2da5e -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Dec 22 23:36:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Dec 2023 23:36:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659706.1029435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGp42-00023o-DF; Fri, 22 Dec 2023 23:36:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659706.1029435; Fri, 22 Dec 2023 23: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 1rGp42-00023h-Ac; Fri, 22 Dec 2023 23:36:22 +0000
Received: by outflank-mailman (input) for mailman id 659706;
 Fri, 22 Dec 2023 23: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=bcFB=IB=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1rGp40-00023b-4d
 for xen-devel@lists.xenproject.org; Fri, 22 Dec 2023 23:36:20 +0000
Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com
 [64.147.123.21]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e3aeb929-a122-11ee-9b0f-b553b5be7939;
 Sat, 23 Dec 2023 00:36:16 +0100 (CET)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47])
 by mailout.west.internal (Postfix) with ESMTP id CD89A32005C1;
 Fri, 22 Dec 2023 18:36:09 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163])
 by compute6.internal (MEProxy); Fri, 22 Dec 2023 18:36:10 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 22 Dec 2023 18:36:07 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3aeb929-a122-11ee-9b0f-b553b5be7939
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=1703288169;
	 x=1703374569; bh=/8JgLJcMh6IikJVcXbrYYcpv5BvJM7gz0+g6xYnnQbY=; b=
	W8K4ouB0YwkokRzMWlpRjxtV94G1ySsYDnNun7h+rUsMuh5a8Y/EkHnDTBN/dwcX
	iILKVjOigyRWgw20S/0xwygsHdP/wqokOM8oTXZZc6InmD9ThKkzB3u+oeg+LlXz
	6yCEJDogcOuZadvOzlpX+FaHt2T4GWJRap7CW5qVgrsbARZzBKR3HlpieVa6UzHL
	ED3inSio3J7164a5+nnpeuq3ethOARWfwU/ADvJvf+w9FcIvrT8r/elfnUlc0mnS
	H3r0wWbbYfQutSXgOSDUe/xhdqJtYQMi2kFE6VSmBVPejFTRldGqpmz7OfH5DpmB
	DX6QHphL5U9W5WbmlzQZTA==
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=1703288169; x=1703374569; bh=/8JgLJcMh6IikJVcXbrYYcpv5BvJ
	M7gz0+g6xYnnQbY=; b=KXEsc3P9FCT4SgBVHciV33e+2XSeYi3Ux72jG7J44BdX
	nw3dLp7RfDnaZ6ASL65of1WhVoYRXrl8iaf45oiAmaLHa8fM0WnoJKYckXMdaYJB
	52ZqxuYwZ4J/pJel9NuLYn0+rieg5el7EERdKjNeK5macu7QSP8a7Mu6FirN9rFr
	LrLyjRbQkgRavsBm2Cxxl5qZNyhNDZJf719B1Rbv48gZ73r+2A5f77b7i2l6mda1
	C45/Fy84PZh+mdTZ09OpfVsCebezllsiYKWxU4davlTF7UZUTRX72jRmlBMwP3d5
	PWCjmLgg7KC+ysXKgEYcbqkT1BPn4ivzoELzyHvVxw==
X-ME-Sender: <xms:aB2GZdKWL9LOnN7g4CFsrsqL7wd2aCtQCyCjMn-hZWXN8EOokXkJNA>
    <xme:aB2GZZL_Ua03GMIC24da7ESHyoetg9Wiv8IfB9O0kDtY269PDDUoEbpCizQIGZsYG
    TgbKcXWTngWFw>
X-ME-Received: <xmr:aB2GZVtVf6UP96TM38Gf1mN9dbyacJrhXAwLt0G6KyJoXOAa1lf9w_XeucsNiFpfVdTOi4fiIZVRteuEEB38ATSwI1PM6GCHZg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvddukedguddvucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgv
    khcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfdu
    leetfeevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluh
    hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:aB2GZeaFrryd2l6rB4_zGM4SKRn2mZk6QxEc8ZRx7Pj5YiVUBtoHAQ>
    <xmx:aB2GZUZr50Iry0GfY2u8WJaAQTKzq0Pis5K-JNB-n6RVaWHbXGaZqg>
    <xmx:aB2GZSAtWICc7DAzMlZ0rMDvOCjwlWyY-p0C_jBPy0mN52BMPEeYYQ>
    <xmx:aR2GZTlbXhP41ihE95dEJbx1RzFqUHexjmyMiJVbz-jhBYyw871T8g>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 23 Dec 2023 00:36:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Neowutran <xen@neowutran.ovh>, xen-devel@lists.xenproject.org,
	Anthony Perard <anthony.perard@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>
Subject: Re: hvmloader - allow_memory_relocate overlaps
Message-ID: <ZYYdZXaji+BHVRoh@mail-itl>
References: <7oe275z3eap7rhdwmrm4mvqnjnhrpag5cjwnfvwsf7rchhkyjv@pd3abzwdhg6v>
 <217649a9-8399-48d3-ba49-ae22cacf0d4b@suse.com>
 <lyqv62ezqqaybcfuhkvbhiltvnxyy32wzr36kclh7bzrupcvib@a5fpoe6atykl>
 <1c857c96-9f2d-4787-8804-799a63a00480@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="JxDNjKAmmYK28yAO"
Content-Disposition: inline
In-Reply-To: <1c857c96-9f2d-4787-8804-799a63a00480@suse.com>


--JxDNjKAmmYK28yAO
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 23 Dec 2023 00:36:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Neowutran <xen@neowutran.ovh>, xen-devel@lists.xenproject.org,
	Anthony Perard <anthony.perard@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>
Subject: Re: hvmloader - allow_memory_relocate overlaps

On Fri, Dec 22, 2023 at 12:35:57PM +0100, Jan Beulich wrote:
> On 21.12.2023 19:08, Neowutran wrote:
> > On 2023-12-19 17:12, Jan Beulich wrote:
> >> On 16.12.2023 08:01, Neowutran wrote:
> >>> I am wondering if the variable "allow_memory_relocate" is still
> >>> relevant today and if its default value is still relevant.=20
> >>> Should it be defined to 0 by default instead of 1 (it seems to be a
> >>> workaround for qemu-traditional, so maybe an outdated default value ?=
 ) ?=20
> >>
> >> So are you saying you use qemu-trad?
> > No, I am using "qemu_xen" ( from =20
> > xenstore-read -> 'device-model =3D
> > "qemu_xen"'=20
> >=20
> >> Otherwise isn't libxl suppressing this behavior anyway?
> > If by "isn't libxl suppressing this behavior" you means if libxl is set=
ting
> > the value of "allow_memory_relocate", then the answer is no.=20
> >=20
> > Following this lead, I checked in what code path
> > "allow_memory_relocate" could be defined.=20
> >=20
> > It is only defined in one code path,=20
> >=20
> > In the file "tools/libs/light/libxl_dm.c",
> > in the function "void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_=
spawn_state *dmss)":=20
> >=20
> > '''
> >  // ...
> >     if (b_info->type =3D=3D LIBXL_DOMAIN_TYPE_HVM) {
> >  // ...
> >=20
> >         libxl__xs_printf(gc, XBT_NULL,
> >                          GCSPRINTF("%s/hvmloader/allow-memory-relocate"=
, path),
> >                          "%d",
> >                          b_info->device_model_version=3D=3DLIBXL_DEVICE=
_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
> >                          !libxl__vnuma_configured(b_info));
> > // ...
> > '''
> >=20
> > However, on QubesOS (my system), "local_dm" is never used, "stub_dm"
> > is always used.=20
> >=20
> > In the function "void lib=20
> > xl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)",=
=20
> > the value of "allow_memory_relocate" is never defined.=20
> >=20
> > I tried to patch the code to define "allow_memory_relocate" in
> > "libxl__spawn_stub_dm":=20
> >=20
> > '''
> > --- a/tools/libs/light/libxl_dm.c
> > +++ b/tools/libs/light/libxl_dm.c
> > @@ -2431,6 +2431,10 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl=
__stub_dm_spawn_state *sdss)
> >                                         libxl__xs_get_dompath(gc, guest=
_domid)),
> >                          "%s",
> >                          libxl_bios_type_to_string(guest_config->b_info=
=2Eu.hvm.bios));
> > +        libxl__xs_printf(gc, XBT_NULL,
> > +                         libxl__sprintf(gc, "%s/hvmloader/allow-memory=
-relocate", libxl__xs_get_dompath(gc, guest_domid)),
> > +                         "%d",
> > +                         0);
> >      }
> >      ret =3D xc_domain_set_target(ctx->xch, dm_domid, guest_domid);
> >      if (ret<0) {
> > '''
> >=20
> > And it is indeed another way to solve my issue.=20
> > However I do not understand the xen hypervisor enough to known i=20
> > f
> > "allow-memory-relocate" should have been defined in
> > "libxl__spawn_stub_dm" or if the real issue is somewhere else.=20
>=20
> I think it should be done the same no matter where qemu runs. Back at the
> time iirc only qemu-trad could run in a stubdom, which may explain the
> omission. Cc-ing the two guys who are likely in the best position to tell
> for sure.

This indeed looks like a missing piece of qemu-xen support in
stubdomain.
But also, As Jan pointed out, this would be better fixed at the qemu
side so memory relocation could be re-enabled.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmWGHWUACgkQ24/THMrX
1ywjygf+PnU8TiF6SXw0ZluBa3Iq6Rq4xluYDr/O54K4Gfr8tby+HkzQsZ4R9uFN
sJ2Fye1qNZG5QMNfI0ESZKtbv3BXRS7UJ/sButoFbHa1Q4Rl11Gp8HBr46bGy7oN
mInwAljbTUosHCLDIPWEVvqYQTxVt4OOjzqQyApK11d5owYJcFJK8txFsFx/7otQ
3KxtE7M1LKAsXIh5i15UsauFuReF3UmfjpjzDllfN7wNrTFDsi2JfTSTYTOu9jlA
7Mq95s65S0ILTmuhs+sHhnsYmvfJiL3ceAr6ZPHhLx6Dffh2D9wqUEDz5OXH55LR
Ksw7S/l5FNdYIUBqGybQee4ZlrGlvg==
=qxXg
-----END PGP SIGNATURE-----

--JxDNjKAmmYK28yAO--


From xen-devel-bounces@lists.xenproject.org Sat Dec 23 07:30:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Dec 2023 07:30:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659712.1029446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGwT4-0006mO-Jm; Sat, 23 Dec 2023 07:30:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659712.1029446; Sat, 23 Dec 2023 07:30:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rGwT4-0006mH-FL; Sat, 23 Dec 2023 07:30:42 +0000
Received: by outflank-mailman (input) for mailman id 659712;
 Sat, 23 Dec 2023 07:30: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 1rGwT3-0006m7-KE; Sat, 23 Dec 2023 07:30: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 1rGwT3-0006Ws-Cv; Sat, 23 Dec 2023 07:30: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 1rGwT2-0002Pi-TL; Sat, 23 Dec 2023 07:30:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rGwT2-0001Dc-SO; Sat, 23 Dec 2023 07:30: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=xhyrFtxKb3cmZUROeYxhsWj9wT3j66CB0ozKfab+Joo=; b=ZowYj3+NQ9FJsboteeakIpY2qB
	4jvBZ1zzuN3/DA5S0X95wcGwzKWch7oCKU/qZN8dZANMLeoUPIIq3uFkCPqSSrZVjLQfWKapI3L95
	jQBYHH4cFK09Gf+aoOiZ2uYBaN5e0BLFfrKklpu7iHXoU5vQBvsdgGUAFLmFaDXBndbE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184214-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184214: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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: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-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds: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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt: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-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=c0f65a7c112b3cfa691cead54bcf24d6cc2182b5
X-Osstest-Versions-That:
    linux=24e0d2e527a39f64caeb2e6be39ad5396fb2da5e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 23 Dec 2023 07:30:40 +0000

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

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 184212
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184212
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184212
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184212
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184212
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184212
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184212
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184212
 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-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-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-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                c0f65a7c112b3cfa691cead54bcf24d6cc2182b5
baseline version:
 linux                24e0d2e527a39f64caeb2e6be39ad5396fb2da5e

Last test of basis   184212  2023-12-22 11:03:10 Z    0 days
Testing same since   184214  2023-12-22 23:12:10 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alex Deucher <alexander.deucher@amd.com>
  Alvin Lee <alvin.lee2@amd.com>
  Alyssa Ross <hi@alyssa.is>
  Ankit Nautiyal <ankit.k.nautiyal@intel.com>
  Anshuman Gupta <anshuman.gupta@intel.com>
  Arnd Bergmann <arnd@arndb.de>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Charlene Liu <charlene.liu@amd.com>
  Charles Keepax <ckeepax@opensource.cirrus.com>
  ClÃ©ment Villeret <clement.villeret@gmail.com>
  Curtis Malainey <cujomalainey@chromium.org>
  Daniel Wheeler <daniel.wheeler@amd.com>
  Dave Airlie <airlied@redhat.com>
  Dominique Martinet <asmadeus@codewreck.org>
  Fedor Pchelkin <pchelkin@ispras.ru>
  Gergo Koteles <soyer@irl.hu>
  Ghanshyam Agrawal <ghanshyam1898@gmail.com>
  Hamza Mahfooz <hamza.mahfooz@amd.com>
  Hans de Goede <hdegoede@redhat.com>
  Herve Codina <herve.codina@bootlin.com>
  Imre Deak <imre.deak@intel.com>
  Jani Nikula <jani.nikula@intel.com>
  Jensen Huang <jensenhuang@friendlyarm.com>
  Jeremie Knuesel <knuesel@gmail.com>
  Jerome Brunet <jbrunet@baylibre.com>
  Josip Pavic <josip.pavic@amd.com>
  JP Kobryn <inwardvessel@gmail.com>
  Juergen Gross <jgross@suse.com>
  Karthik Poosa <karthik.poosa@intel.com>
  Kent Gibson <warthog618@gmail.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Mark Brown <broonie@kernel.org>
  Petr Mladek <pmladek@suse.com>
  Philip Yang <Philip.Yang@amd.com>
  Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Quan Nguyen <quan@os.amperecomputing.com>
  Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
  Richard Fitzgerald <rf@opensource.cirrus.com>
  Riwen Lu <luriwen@kylinos.cn>
  Serge Semin <fancer.lancer@gmail.com>
  Shengjiu Wang <shengjiu.wang@nxp.com>
  Stefan Binding <sbinding@opensource.cirrus.com>
  Takashi Iwai <tiwai@suse.de>
  Ville SyrjÃ¤lÃ¤ <ville.syrjala@linux.intel.com>
  Wayne Lin <wayne.lin@amd.com>
  Wolfram Sang <wsa@kernel.org>
  xiongxin <xiongxin@kylinos.cn>
  Yang Yingliang <yangyingliang@huawei.com>
  Zhengqiao Xia <xiazhengqiao@huaqin.corp-partner.google.com>
  ZhenGuo Yin <zhenguo.yin@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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   24e0d2e527a3..c0f65a7c112b  c0f65a7c112b3cfa691cead54bcf24d6cc2182b5 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sat Dec 23 11:54:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Dec 2023 11:54:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659729.1029457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH0a4-00024s-EL; Sat, 23 Dec 2023 11:54:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659729.1029457; Sat, 23 Dec 2023 11: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 1rH0a4-00024l-9A; Sat, 23 Dec 2023 11:54:12 +0000
Received: by outflank-mailman (input) for mailman id 659729;
 Sat, 23 Dec 2023 11:54: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 1rH0a3-00024b-LL; Sat, 23 Dec 2023 11:54: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 1rH0a3-0003Nh-H1; Sat, 23 Dec 2023 11:54: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 1rH0a2-0006Ia-UO; Sat, 23 Dec 2023 11:54:10 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rH0a2-0007TR-Td; Sat, 23 Dec 2023 11:54: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=KnZjIwVkT+nPqXodgkjVhJoDcM9asX0Q9+kETxVB2G0=; b=z7nfC7HAX63tRkn+k8bhPSH5zR
	cDf7afEsxagh7Kxr0YK1IHdQkmrbIfLqUaC7bgBWHU3J0Ac3VYee8xjIhUE97TYNwuDhkuJrhL47z
	rzxGQMNfZAzmcqfItHcxLX9aFcMHq0JfftTbcOpbNEXmZCqTQljojNmk8Yo1t/ycKCKE=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184215-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184215: tolerable FAIL
X-Osstest-Failures:
    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-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check: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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-arm64-arm64-xl: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: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-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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-libvirt: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-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd: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
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 23 Dec 2023 11:54:10 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop      fail blocked in 184209
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184209
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184209
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184209
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184209
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184209
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184209
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184209
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184209
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184209
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184209
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184209
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 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-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-arm64-arm64-xl          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          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-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-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 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-multivcpu 15 migrate-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-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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686

Last test of basis   184215  2023-12-23 01:54:25 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 23 17:33:41 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Dec 2023 17:33:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659740.1029466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH5sM-0007P0-2u; Sat, 23 Dec 2023 17:33:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659740.1029466; Sat, 23 Dec 2023 17:33:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH5sL-0007Ot-WB; Sat, 23 Dec 2023 17:33:25 +0000
Received: by outflank-mailman (input) for mailman id 659740;
 Sat, 23 Dec 2023 17:33: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=jsuN=IC=infradead.org=willy@srs-se1.protection.inumbo.net>)
 id 1rH5sG-0007OX-G5
 for xen-devel@lists.xenproject.org; Sat, 23 Dec 2023 17:33:24 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ab1b8ca-a1b9-11ee-9b0f-b553b5be7939;
 Sat, 23 Dec 2023 18:33:17 +0100 (CET)
Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red
 Hat Linux)) id 1rH5qt-00BIro-7V; Sat, 23 Dec 2023 17:31: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: 5ab1b8ca-a1b9-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; 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=Cxs7b1r/Fe+mA08T4R0mNQ1fxv7+YhK2lTuot6SaQik=; b=n5ecZBTziYZYMztlj2287d4czK
	ml7cm9aw1T+0iVgkbnWKxaTTXKBcb46wrTtLR2cpZ6JzPt87e/ZOk+YN+BcmHpGceFYQwbG6TCmUn
	2/VVFTmvky5olmxAfDG+0qZ8z+LPPpf8u70Ai7d5Slq1K484QQZDKCm7dBvsESdFibfIkn0wHOZFA
	dZJMlBYBjYa9hkvZpbAVrPS56AMkvhhCeNeu4AfGdy+6akR7Z9BIJQ6lfh3OOUC9V+pNhgGo/mfiK
	S401NuO0YUaMlRsvZHgjfMbObBG2ZmuSJGS1ljZCYKmYCBguSKNIaneuWlwbS7egy1SGKjDV3fGW4
	digukkoQ==;
Date: Sat, 23 Dec 2023 17:31:55 +0000
From: Matthew Wilcox <willy@infradead.org>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: axboe@kernel.dk, roger.pau@citrix.com, colyli@suse.de,
	kent.overstreet@gmail.com, joern@lazybastard.org,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	sth@linux.ibm.com, hoeppner@linux.ibm.com, hca@linux.ibm.com,
	gor@linux.ibm.com, agordeev@linux.ibm.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com,
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org,
	nico@fluxnic.net, xiang@kernel.org, chao@kernel.org, tytso@mit.edu,
	adilger.kernel@dilger.ca, jack@suse.com, konishi.ryusuke@gmail.com,
	akpm@linux-foundation.org, hare@suse.de, p.raghav@samsung.com,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-bcachefs@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
	linux-nilfs@vger.kernel.org, yukuai3@huawei.com,
	yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v3 for-6.8/block 09/17] btrfs: use bdev apis
Message-ID: <ZYcZi5YYvt5QHrG9@casper.infradead.org>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
 <20231221085712.1766333-10-yukuai1@huaweicloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20231221085712.1766333-10-yukuai1@huaweicloud.com>

On Thu, Dec 21, 2023 at 04:57:04PM +0800, Yu Kuai wrote:
> @@ -3674,16 +3670,17 @@ struct btrfs_super_block *btrfs_read_dev_one_super(struct block_device *bdev,
>  		 * Drop the page of the primary superblock, so later read will
>  		 * always read from the device.
>  		 */
> -		invalidate_inode_pages2_range(mapping,
> -				bytenr >> PAGE_SHIFT,
> +		invalidate_bdev_range(bdev, bytenr >> PAGE_SHIFT,
>  				(bytenr + BTRFS_SUPER_INFO_SIZE) >> PAGE_SHIFT);
>  	}
>  
> -	page = read_cache_page_gfp(mapping, bytenr >> PAGE_SHIFT, GFP_NOFS);
> -	if (IS_ERR(page))
> -		return ERR_CAST(page);
> +	nofs_flag = memalloc_nofs_save();
> +	folio = bdev_read_folio(bdev, bytenr);
> +	memalloc_nofs_restore(nofs_flag);

This is the wrong way to use memalloc_nofs_save/restore.  They should be
used at the point that the filesystem takes/releases whatever lock is
also used during reclaim.  I don't know btrfs well enough to suggest
what lock is missing these annotations.



From xen-devel-bounces@lists.xenproject.org Sat Dec 23 17:58:48 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Dec 2023 17:58:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659746.1029477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH6Go-0001eP-2j; Sat, 23 Dec 2023 17:58:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659746.1029477; Sat, 23 Dec 2023 17:58:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH6Gn-0001eI-T8; Sat, 23 Dec 2023 17:58:41 +0000
Received: by outflank-mailman (input) for mailman id 659746;
 Sat, 23 Dec 2023 17:58: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 1rH6Gn-0001e8-4Q; Sat, 23 Dec 2023 17:58: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 1rH6Gm-00025y-Nc; Sat, 23 Dec 2023 17:58: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 1rH6Gm-0006de-6h; Sat, 23 Dec 2023 17:58:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rH6Gm-0006C6-6J; Sat, 23 Dec 2023 17:58: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=1lxQz0K4v55rVmcga+Z7jaaZ9ayUmhEgimBwNe9j0Y8=; b=xBLmliVb5ooRfb4ZryHTde24oh
	XZh1MRfDERuVJeFwZZ/NHJvl7vEE8CWRaEJ1cjbW4UsGZ9d8+J6xdzhW4of3mCMsWo6O66cIEGiv5
	9jgyrWHyW60ge+J8G8hHBrluOxxoehHznDLBD+ayhVSSvPLkdu8Sd143FzIr5+xDexGU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184216-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184216: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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: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-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-rtds:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-rtds: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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt: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-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=5254c0cbc92d2a08e75443bdb914f1c4839cdf5a
X-Osstest-Versions-That:
    linux=c0f65a7c112b3cfa691cead54bcf24d6cc2182b5
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 23 Dec 2023 17:58:40 +0000

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

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 184214
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184214
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184214
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184214
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184214
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184214
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184214
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184214
 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-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-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-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                5254c0cbc92d2a08e75443bdb914f1c4839cdf5a
baseline version:
 linux                c0f65a7c112b3cfa691cead54bcf24d6cc2182b5

Last test of basis   184214  2023-12-22 23:12:10 Z    0 days
Testing same since   184216  2023-12-23 07:35:31 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Jones <ajones@ventanamicro.com>
  Anup Patel <anup@brainfault.org>
  Daniel Wagner <dwagner@suse.de>
  Jens Axboe <axboe@kernel.dk>
  Keith Busch <kbusch@kernel.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Marc Zyngier <maz@kernel.org>
  Mark Brown <broonie@kernel.org>
  Maurizio Lombardi <mlombard@redhat.com>
  Michael Roth <michael.roth@amd.com>
  Oliver Upton <oliver.upton@linux.dev>
  Paolo Bonzini <pbonzini@redhat.com>
  Roy Lin <roy.lin@sifive.com>
  Vincent Chen <vincent.chen@sifive.com>
  Wayling Chen <wayling.chen@sifive.com>
  Yong-Xuan Wang <yongxuan.wang@sifive.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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   c0f65a7c112b..5254c0cbc92d  5254c0cbc92d2a08e75443bdb914f1c4839cdf5a -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sat Dec 23 18:36:55 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Dec 2023 18:36:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659754.1029485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH6ra-0006Ml-T4; Sat, 23 Dec 2023 18:36:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659754.1029485; Sat, 23 Dec 2023 18: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 1rH6ra-0006Me-QO; Sat, 23 Dec 2023 18:36:42 +0000
Received: by outflank-mailman (input) for mailman id 659754;
 Sat, 23 Dec 2023 18:36:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nHrp=IC=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rH6rZ-0006MY-6U
 for xen-devel@lists.xenproject.org; Sat, 23 Dec 2023 18:36:41 +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 34f66925-a1c2-11ee-98ed-6d05b1d4d9a1;
 Sat, 23 Dec 2023 19:36:38 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-552ff8d681aso6889018a12.1
 for <xen-devel@lists.xenproject.org>; Sat, 23 Dec 2023 10:36:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34f66925-a1c2-11ee-98ed-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703356597; x=1703961397; 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=FqpCMx4QSojY+kaProtvCG8Dq0PnJILwro7IB2Uj6BY=;
        b=Tc8qeE9Pm/LKlAXEnjWm6ofKHsu39ZAZTSIs9K6zVTIutt0vWxOE06B6KQdfBfVXSv
         qcc8FEStQUAYXgW/O+bkDM1h0zziqGGVDXCO8XMCxamexrnc/Gn1k4rJzq7iPNbUdtqD
         T0YQeUOKL7eEQtLkSSSAf8eF+ulj7BmvSU5BdZo/wUHxlh3Dhlp4bIFlBYbuBuLAeZ9q
         Zhhy0X0BrJdJkqx8B77ch98DYhO7TC8F5A8K2KP2GZKcKvymhI4KHyM2Zn7cEkOx77Tw
         Y4TzM5Wg4Qggq3661UNpZMGCx4WCsy0++fnFeAKPTWTF1ZRDBSI9hn/48JV2lT9isle+
         LoGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703356597; x=1703961397;
        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=FqpCMx4QSojY+kaProtvCG8Dq0PnJILwro7IB2Uj6BY=;
        b=hRzbM97ztjKf9zn07hyJd6uE6WKnJSkRRveOZQsVsBnu9HvJyWR07JjrpZEcu65BP6
         vPy/Q0DZ1oeC96RQfWWJExgIHJJo6JpD2Y0fm/OVOr6Iws4XijE+zD7OVyMC6xgVUv12
         QlObYHTIGOU+/wR+lUCkOIiVuFfQpD7+vCBsATN0vipqdeBnqSsAFHgDOwxMXRPyOLpI
         noJfgehavEaNBjh1+OTed18r9fB062xXFbgo+gVsOJY9bW4byuMHbm95QG5nweiaZy8H
         p+G0dnjpG+y9wG5sl8MPyBCOwgVKlaXIv/G/kFW1ZbZjnraXLlUpoKFjuBgnnUDV7WjH
         cr7g==
X-Gm-Message-State: AOJu0Yw2RUihAXcEERKolfggKpUK/Dd7U/yWJzyU5U15w2o0R3Kp0Ty1
	T8svoySdalz6iOnwIWbSchy7DJOEQO1szFRlp78=
X-Google-Smtp-Source: AGHT+IHroPD3G4W725RRFMPg/QAhEVZFjFgEwJigJcLGv4y2dnS7VVo8TJpx7BjR6P1Z3ym75DTBwvgiv1kmz7tIuFc=
X-Received: by 2002:a17:906:18e:b0:a1c:8c7a:1b95 with SMTP id
 14-20020a170906018e00b00a1c8c7a1b95mr2655554ejb.12.1703356596772; Sat, 23 Dec
 2023 10:36:36 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us> <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us> <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
 <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
 <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com> <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com>
In-Reply-To: <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com>
From: Mario Marietto <marietto2008@gmail.com>
Date: Sat, 23 Dec 2023 19:36:00 +0100
Message-ID: <CA+1FSigREr=aSHOBMbEK9CaoKzNnKC-6sE=Ui8ovVwnMaZgZhQ@mail.gmail.com>
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM Chromebook
To: Warner Losh <imp@bsdimp.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, 
	Stanislav Silnicki <stanislav.silnicki@mailgate.us>, freebsd-arm@freebsd.org, 
	Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
Content-Type: multipart/alternative; boundary="000000000000e06319060d319c29"

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

I've added this parameter to bootxen.source :

guest_loglvl=3Dall

bootxen.source :

mmc dev 1
ext2load mmc 1:3 0x42000000 zImage-5.4.261-iommu-dma-on-xen
ext2load mmc 1:3 0x51000000 xen-4.17-armhf-armmp-0x51004000.ub
ext2load mmc 1:3 0x5ffec000 exynos5250-snow.dtb
fdt addr 0x5ffec000
fdt resize 1024
fdt set /chosen \#address-cells <0x2>
fdt set /chosen \#size-cells <0x2>
fdt set /chosen xen,xen-bootargs "console=3Ddtuart dtuart=3Dserial0
dom0_mem=3D1152M dom0_max_vcpus=3D2 bootscrub=3D0 vwfi=3Dnative guest_loglv=
l=3Dall"
fdt mknod /chosen dom0
fdt set /chosen/dom0 compatible  "xen,linux-zimage" "xen,multiboot-module"
"multiboot,module"
fdt set /chosen/dom0 reg <0x0 0x42000000 0x0 0x49F9A8 >
fdt set /chosen xen,dom0-bootargs "console=3Dtty1 root=3D/dev/mmcblk1p4 rw
rootwait clk_ignore_unused --no-log"
bootm 0x51000000 - 0x5ffec000


but when I try to boot FreeBSD I don't get more informations than usual :

root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen#
./start-freebsd

Parsing config from freebsd.cfg
xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found:
Invalid kernel
libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:cannot
(re-)build domain: -3
libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
1:Non-existent domain
libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Unable
to destroy guest
libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruction
of domain failed
freebsd is an invalid domain identifier (rc=3D-6)

Are you aware about a new parameter that I can use to have more detailed
debug information ?

On Wed, Dec 20, 2023 at 5:52=E2=80=AFAM Warner Losh <imp@bsdimp.com> wrote:

> I'd think you'd need the right virtualization loader. I'm not entirely
> sure the u-boot.bin you've been creating is for a dom-u..
> If I misunderstood, then the below isn't good advice. Chain booting the
> u-boot, the first u-boot initializes things so you want
> to start with stage after the SPL. But the different error messages
> suggest that it's trying to reboot with kexec, which
> isn't supported on armv7 at the moment.
>
> If you could boot in kvm, I think that the following would work....
> Though I'm not entirely sure how to
> specify the two .fd files in your setup. The use of qemu is to have an
> easy env to debug things... I don't
> have a chromebook to try...
>
> My first instinct would be to try qemu on x86 (this is the first step of
> many to get to your destination).
>
> If you could boot the GENERIC_SD image that we produce using qemu +
> edk2-arm-code.fd that would
> be a huge first step. This will give you the boot loader, I believe, to
> boot in the VM that you need better
> than going via the u-boot route. Since you are booting in a virtualized
> environment, I think it wouldn't
> matter which one :).
>
> So, I did the following to boot the virtualized armv7 FreeBSD environment=
,
> following a post on the forums I found and knew to have the right recipe:
>
> https://forums.freebsd.org/threads/run-boot-freebsd-arm-32bit-image-in-qe=
mu.80765/
>
> 1. pkg install qemu
> 2. mkdir qemu-armv7-env
> 3. cd qemu-armv7-env
> 4. fetch
> https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/14.0/FreeBSD-1=
4.0-RELEASE-arm-armv7-GENERICSD.img.xz
> 5. xz -d -T 0 FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz
> 6. dd if=3D/dev/zero of=3Dpflash0.img bs=3D1m count=3D64
> 7. dd if=3D/dev/zero of=3Dpflash1.img bs=3D1m count=3D64
> 8. dd if=3D/usr/local/share/qemu/edk2-arm-code.fd of=3Dpflash0.img conv=
=3Dnotrunc
> 9. dd if=3D/usr/local/share/qemu/edk2-arm-vars.fd of=3Dpflash1.img conv=
=3Dnotrunc
> 10. cat > start-freebsd-arm.sh
> #!/bin/sh
> qemu-system-arm \
>   -M virt \
>   -m 1024 \
>   -drive file=3Dpflash0.img,format=3Draw,if=3Dpflash,readonly=3Don \
>   -drive file=3Dpflash1.img,format=3Draw,if=3Dpflash \
>   -drive file=3D$1.img,if=3Dvirtio,cache=3Dwritethrough \
>   -nographic \
>   -serial mon:stdio
> ^D
> 11. chmod +x start-freebsd-arm.sh
> 12. ./start-freebsd-arm.sh FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD
>
> But I hit a snag with this on qemu 8.1.2 and 8.1.3 with both 13.2 and 14.=
0:
>
> Starting devd.
> Starting dhclient.
> DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 7
> Fatal kernel mode data abort: 'Alignment Fault' on read
> trapframe: 0xc4b36a60
> FSR=3D00000001, FAR=3Ddd96701a, spsr=3D20000013
> r0 =3D00000000, r1 =3D00000001, r2 =3D00000001, r3 =3Dc4b36b4c
> r4 =3D00000014, r5 =3Dd6618800, r6 =3Ddd96702e, r7 =3D0000022c
> r8 =3D00000000, r9 =3D0000022c, r10=3Ddd96701a, r11=3Dc4b36b90
> r12=3D4300ffff, ssp=3Dc4b36af0, slr=3Dc04a9728, pc =3Dc04a9750
>
> panic: Fatal abort
> cpuid =3D 0
> time =3D 1680843057
> KDB: stack backtrace:
> #0 0xc035786c at kdb_backtrace+0x48
> #1 0xc02fdd20 at vpanic+0x140
> #2 0xc02fdbe0 at vpanic+0
> #3 0xc06304ac at abort_align+0
> #4 0xc063052c at abort_align+0x80
> #5 0xc063017c at abort_handler+0x480
> #6 0xc060f480 at exception_exit+0
> #7 0xc04a9750 at udp_input+0x288
> #8 0xc0473f54 at ip_input+0x1e0
> #9 0xc04447c0 at netisr_dispatch_src+0xf8
> #10 0xc043bf2c at ether_demux+0x1a4
> #11 0xc043d5e4 at ether_nh_input+0x480
> #12 0xc04447c0 at netisr_dispatch_src+0xf8
> #13 0xc043c404 at ether_input+0x50
> #14 0xc01c0838 at vtnet_rx_vq_process+0x880
> #15 0xc01b70d0 at vtpci_intx_intr+0xac
> #16 0xc02b87f0 at ithread_loop+0x2ec
> #17 0xc02b465c at fork_exit+0xc0
> Uptime: 19s
>
> I don't know if this is a problem with qemu or FreeBSD's kernel...
>
> Warner
>
> On Tue, Dec 19, 2023 at 3:25=E2=80=AFPM Mario Marietto <marietto2008@gmai=
l.com>
> wrote:
>
>> I've asked some help on the channel #arm on Reddit and someone replied :
>>
>>
>> https://www.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_ar=
m32_bit_as_domu_with/
>>
>> Maybe his answer can be useful to understand why it does not work.
>>
>> On Tue, Dec 19, 2023 at 8:33=E2=80=AFPM Stefano Stabellini <
>> sstabellini@kernel.org> wrote:
>>
>>> +Michal
>>>
>>> Hi Mario,
>>>
>>> I am not sure about booting FreeBSD, but I am certain that u-boot works
>>> fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config
>>> file:
>>>
>>> name=3D"test"
>>> kernel=3D"u-boot.bin"
>>> extra =3D "console=3Dhvc0"
>>> memory=3D256
>>> vcpus=3D1
>>> disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>>>
>>> I don't know for sure if you can boot FreeBSD but you should definitely
>>> be able to see the u-boot command line prompt. The fact that you are
>>> getting this message:
>>>
>>> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader
>>> found: Invalid kernel
>>>
>>> Means that something is not right in the u-boot configuration or u-boot
>>> build. Michal and Artem (CCed) might know more. From what I recall,
>>> there was nothing special required to get u-boot.bin to boot as domU
>>> kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.
>>>
>>> Cheers,
>>>
>>> Stefano
>>>
>>>
>>> On Tue, 19 Dec 2023, Mario Marietto wrote:
>>> > ....I see that some other interesting files have been produced by
>>> u-boot when I have compiled it :
>>> >
>>> > u-boot
>>> > u-boot.lds
>>> > u-boot.bin
>>> > u-boot.map
>>> > u-boot-nodtb.bin
>>> > u-boot.dtb
>>> > u-boot.srec
>>> > u-boot-dtb.bin
>>> > u-boot.sym
>>> >
>>> > So,maybe I should use a different u-boot* file for booting FreeBSD ?
>>> >
>>> >
>>> > On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto <marietto2008@=
gmail.com>
>>> wrote:
>>> >       Hello to everyone.
>>> >
>>> > I have compiled the needed u-boot.bin from scratch using this
>>> procedure :
>>> >
>>> > # git clone https://github.com/u-boot/u-boot.git
>>> > # cd u-boot
>>> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig=
 :
>>> this line generates the file .config
>>> > # nano .config and I've added these parameters :
>>> >
>>> > CONFIG_ARMV7_NONSEC=3Dn
>>> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
>>> >
>>> > the uboot-bin file is generated with this command :
>>> >
>>> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make
>>> >
>>> > At this point,I took a look inside the .config file and I saw that th=
e
>>> parameter "CONFIG_ARMV7_NONSEC=3Dn" has been removed. So,for
>>> > some reason,it is not accepted and this could be a problem....
>>> >
>>> > These are the xen config files that I've used :
>>> >
>>> > nano freebsd.cfg
>>> >
>>> > name=3D"test"
>>> > kernel=3D"u-boot.bin"
>>> > extra =3D "console=3Dhvc0"
>>> > memory=3D256
>>> > vcpus=3D1
>>> > disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>>> >
>>> > nano start-freebsd
>>> >
>>> > xl create freebsd.cfg
>>> > xl console freebsd
>>> >
>>> > This is what happens when I launch the vm :
>>> >
>>> > # ./start-freebsd
>>> >
>>> > Parsing config from freebsd.cfg
>>> > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader
>>> found: Invalid kernel
>>> > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image
>>> failed
>>> > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain
>>> 1:cannot (re-)build domain: -3
>>> > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain
>>> 1:Non-existent domain
>>> > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain
>>> 1:Unable to destroy guest
>>> > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain
>>> 1:Destruction of domain failed
>>> > freebsd is an invalid domain identifier (rc=3D-6)
>>> >
>>> >
>>> > On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto <
>>> marietto2008@gmail.com> wrote:
>>> >       So,ok,I should have said "the second u-boot" ; since the first
>>> u-boot binary is the "u-boot binary located in the RO
>>> >       memory" of the Chromebook". Sorry for the confusion.
>>> >
>>> > On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto <
>>> marietto2008@gmail.com> wrote:
>>> >       ---> There are no specific options in u-boot devoted to FreeBSD
>>> >
>>> > This is an important factor. So,what about if,instead of compiling a
>>> new version of u-boot on the partition 2,I will
>>> > recompile the u-boot customized version created by the virtual open
>>> system in 2014,that should be installed on the first
>>> > partition ? It could work if there are no differences between the
>>> u-boot that should boot Linux and the u-boot that
>>> > should boot FreeBSD.
>>> >
>>> > Can you give a look at the u-boot source code created by virtual open
>>> systems ? You can find it on my google drive :
>>> >
>>> >
>>> https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?=
usp=3Dsharing
>>> >
>>> > I need to understand if I can recompile it without problem so that it
>>> can satisfy my needs (the ability of the file
>>> > u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano
>>> Stabellini,the xen developer that suggested to me
>>> > what I could do to have FreeBSD virtualized under Xen on my Arm
>>> Chromebook) ; otherwise the risk is to find later
>>> > problems that will make me troubles and that I will not able to fix.
>>> >
>>> > I gave a look at the virtual open system u-boot and I didn't see any
>>> arndale_defconfig inside. So,If I have understood
>>> > correctly,I should put that file inside the root of the u-boot source
>>> code,let's say here :
>>> >
>>> > marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls
>>> >
>>> > .checkpatch.conf        README                  doc
>>>                     net
>>> > .git                    api                     drivers
>>>                 onenand_ipl
>>> > .gitignore              arch                    dts
>>>                     post
>>> > COPYING                 board                   examples
>>>                rules.mk
>>> > CREDITS                 boards.cfg              fs
>>>                      scripts
>>> > MAINTAINERS             common                  include
>>>                 snapshot.commit
>>> > MAKEALL                 config.mk               lib
>>>                     spl
>>> > Makefile                cros                    mkconfig
>>>                test
>>> > PRESUBMIT.cfg           disk                    nand_spl
>>>                tools
>>> >
>>> > and I should do : make and make install ? and the file I
>>> need,u-boot.bin will be generated ?
>>> >
>>> > I didn't find any pre made configuration file inside :
>>> >
>>> > u-boot-vos # find . -type f -name "exynos*"
>>> >
>>> > ./include/exynos-fb.h
>>> > ./include/configs/exynos5-common.h
>>> > ./doc/device-tree-bindings/spi/exynos-spi.txt
>>> > ./doc/device-tree-bindings/usb/exynos-usb.txt
>>> > ./drivers/power/exynos-tmu.c
>>> > ./drivers/power/exynos-cpufreq.c
>>> > ./drivers/video/exynos-fb.c
>>> > ./drivers/spi/exynos_spi.c
>>> > ./board/samsung/dts/exynos5250-spring.dts
>>> > ./board/samsung/dts/exynos5250-smdk5250.dts
>>> > ./board/samsung/dts/exynos5250-snow.dts
>>> > ./board/samsung/dts/exynos5250-daisy.dts
>>> > ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h
>>> > ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h
>>> > ./arch/arm/dts/exynos5250.dtsi
>>> > ./arch/arm/dts/exynos-periph-id.dtsi
>>> > ./arch/arm/cpu/armv7/exynos5/exynos_cache.c
>>> >
>>> > u-boot-vos # find . -type f -name "arndale*"
>>> >
>>> > For sure I can't use a newer version of u-boot because otherwise the
>>> patches needed to bypass the bootloader protections
>>> > of the Arm Chromebook (such as a lot of different patches needed to
>>> boot correctly Linux) will be broken ; anyway,since
>>> > it works,I don't need to use an updated version of u-boot.
>>> >
>>> > ----> As per my experience, you have to respect these two options,
>>> compiling u-boot for
>>> > FreeBSD:
>>> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-mast=
er/files/FreeBSD_Fragment
>>> >
>>> > It says that I should use these parameters :
>>> >
>>> > CONFIG_ARMV7_NONSEC=3Dn
>>> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
>>> >
>>> > These are the parameters used to configure a Linux kernel. I don't
>>> understand what's the relation between the compilation
>>> > of a linux kernel and u-boot. In the past I tried to recompile
>>> u-boot,but I didn't have the need to set up those
>>> > parameters,so I don't know how to do it (but I know how to recompile =
a
>>> Linux kernel).
>>> >
>>> > ---> I'm not sure that I'm getting you right, as I don't understand
>>> what you mean under "the first u-boot".
>>> >
>>> >
>>> > I'm talking about first u-boot because the whole procedure to boot
>>> Linux on the ARM Chromebook,that's explained here :
>>> >
>>> >
>>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook=
/
>>> >
>>> >
>>> > at some point they say :
>>> >
>>> >
>>> > To be able to run KVM on ARM platforms, the kernel has to be booted i=
n
>>> hypervisor mode. Because of this relatively recent
>>> > requirement (due to the introduction of the virtualization
>>> extensions), up until now all booting methods would boot the
>>> > kernel in the standard Supervisor mode.
>>> >
>>> > For the ARM Chromebook the default boot procedure doesn't allow us to
>>> boot in hypervisor mode. Although the laptop's boot
>>> > mechanism is based on the frequently used u-boot, the binary is
>>> located in RO memory. Fortunately, a chained u-boot
>>> > mechanism can be used (i.e. starting another u-boot after the
>>> original). We can then enter hypervisor mode from our
>>> > custom iteration of u-boot and subsequently load our kernel and
>>> userspace.
>>> >
>>> > So,the first u-boot is the u-boot provided by virtual open
>>> systems,that's able to chainload the "u-boot binary located in
>>> > RO memory" , that does not boot Chrome OS in hypervisor mode. We don'=
t
>>> need it if we want to boot Linux with kvm or xen
>>> > enabled.
>>> >
>>> >
>>> > On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki <
>>> stanislav.silnicki@mailgate.us> wrote:
>>> >       I'm not an expert in the topic, I only know, that ARM has
>>> divided hardware into two worlds - Secure and
>>> >       Not-So, strictly limiting any software, running in non-secure
>>> world with access to functions and
>>> >       resources.
>>> https://developer.arm.com/documentation/den0013/d/Security/TrustZone-ha=
rdware-architecture?lang=3Den
>>> <https://developerarm.com/documentation/den0013/d/Security/TrustZone-ha=
rdware-architecture?lang=3Den>
>>> >
>>> > I'm not sure, that I'm getting you right, as I don't understand what
>>> you mean under "the first u-boot".
>>> >
>>> > As I understand, virtualization (HYP) is running in non-secure world(
>>> https://developer.arm.com/documentation/ddi0406/c/System-Level-Architec=
ture/The-System-Level-Programmers--Model/The-Virtualization-Extens
>>> > ions), so my guess (only guess!!!), virtualization software has to
>>> prepare (configure) HW platform in the way,
>>> > that FreeBSD kernel will not lack any resources, required to configur=
e
>>> MPU, VA, etc.
>>> > So, if you lucky to boot virtualizer, which is aware of target OS,
>>> that maybe you can boot the kernel. Although, I
>>> > doubt, that you need to boot 'second' u-boot to boot the kernel -
>>> there is simply ubldr, which you can hook somehow
>>> > from virtualizer....
>>> >
>>> > Stan
>>> >
>>> >
>>> >
>>> > Mario Marietto wrote:
>>> >
>>> >
>>> >       ---> As I understand, it makes sure that u-boot keeps in secure
>>> mode during boot and passes control to
>>> >       ubldr, which boots FreeBSD kernel, in that mode.
>>> >
>>> > Can you elaborate your sentence more ? I know that the bootloader
>>> secure mode is bypassed by the virtual open
>>> > systems u-boot. Are you saying that when the control passes to the
>>> second u-boot,it will happen in secure
>>> > mode,so that the bypass that happened loading the first u-boot,is
>>> annulled ? If this is true,maybe can I boot
>>> > FreeBSD using the virtual-open-system custom u-boot ? Is this
>>> compatible with FreeBSD ? Where can I find the
>>> > u-boot.bin that the xen developer talked about ? thanks bro'.
>>> >
>>> >
>>> >
>>> > On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki <
>>> stanislav.silnicki@mailgate.us> wrote:
>>> >       Hi Mario,
>>> >
>>> > U-Boot  beast is hiding in this den:
>>> https://source.denx.de/u-boot/u-boot.git
>>> > I took a brief look at your post and it seems to me, that
>>> option CONFIG_CMO_BY_VA_ONLY is irrelevant to
>>> > your target armv7 32 bit
>>> > platform:
>>> https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/cpu/armv8/K=
config?ref_type=3Dheads#L3
>>> >
>>> > As for compiling the u-boot, it is a doable task, given that you
>>> understand what you are doing. There
>>> > are no specific options in u-boot devoted to FreeBSD. It is a boot
>>> loader, whose mission to make basic
>>> > hardware initialization, read you kernel file from some media into RA=
M
>>> and then pass it control.
>>> >
>>> > Basically, you can grab some defconfig, prepared for any other
>>> Exynos5250 based board  (say, this one:
>>> >
>>> https://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defc=
onfig?ref_type=3Dheads)
>>> and adopt
>>> > it somehow.
>>> >
>>> > As per my experience, you have to respect these two options, compilin=
g
>>> u-boot for
>>> > FreeBSD:
>>> https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-mast=
er/files/FreeBSD_Fragment
>>> >
>>> > As I understand, it makes sure, that u-boot keeps in secure mode
>>> during boot and passes control to
>>> > ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lo=
t
>>> of surprises you may realize.
>>> >
>>> > Hope, this will help to progress you tasks
>>> > Stan
>>> >
>>> > Mario Marietto wrote:
>>> >
>>> >
>>> >       Hello.
>>> >
>>> >       I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM
>>> Chromebook. Basically there are
>>> >       two ways to accomplish this task :
>>> >
>>> >       1) to write a patch that allows the FreeBSD kernel to boot as a
>>> zImage file. This could be
>>> >       accomplished applying this patch to a specific file that's on
>>> the source code of FreeBSD :
>>> >
>>> >
>>> >
>>> https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98cc139147271703=
5f986c979edef0c9
>>> >
>>> >
>>> >       This patch was written by Julien Grall a lot of time ago and no=
w
>>> it does not work anymore.
>>> >       This is the reason :
>>> >
>>> >
>>> >             It appears FreeBSD-CURRENT removed the last step
>>> converting the kernel file to
>>> >             kernel.bin. The patch can be readily rebased, but without
>>> kernel.bin that
>>> >             doesn't do too much
>>> >
>>> >
>>> >
>>> > So,without a rebase of that patch the first option is not applicable.
>>> And I'm not able to fix it.
>>> >
>>> > 2) booting FreeBSD using U-Boot,as explained to me by a xen developer=
 :
>>> >
>>> >
>>> >       I was trying to explain why and how Julien's patch works so tha=
t
>>> you could be the one
>>> >       to re-do something similar or fix the patch on the FreeBSD
>>> kernel that you are
>>> >       working with. I am happy to help review and write patches but I
>>> don't work with the
>>> >       FreeBSD kernel so I wouldn't be able to help you quickly.
>>> However, I might have a
>>> >       suggestion. Do you know if FreeBSD can be booted by U-Boot ?
>>> Because U-Boot
>>> >       definitely boots as Xen on ARM guest firmware/bootloader. You
>>> should be able to build
>>> >       U-Boot and use the U-Boot binary as Xen guest kernel, then
>>> U-Boot could load FreeBSD
>>> >       from disk or network and start it. For instance as domU config
>>> file:
>>> >
>>> >       kernel=3D"/home/petalinux/u-boot.bin"
>>> >       disk =3D [ '/home/petalinux/test.img,raw,xvda' ]
>>> >
>>> >       I know it is important to build u-boot with the following confi=
g
>>> to make it work on
>>> >       Xen.
>>> >
>>> >       CONFIG_CMO_BY_VA_ONLY=3Dy
>>> >
>>> >
>>> >
>>> > This option seems more doable to me according to my knowledge. But I
>>> need to understand how to do
>>> > it.
>>> >
>>> > Well,let's say that on the ARM Chromebook I'm forced to use and
>>> install a customized version of
>>> > u-boot,created by virtual open systems,because it is the only one tha=
t
>>> allows bypassing its
>>> > bootloader protection. You can find more information here :
>>> >
>>> >
>>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook=
/?vos=3Dtech
>>> >
>>> > This is the relevant section to read :
>>> >
>>> >
>>> >       Bootloader :
>>> >
>>> >       If you wish to skip this chapter you can download a pre-compile=
d
>>> binary of the
>>> >       bootloader:
>>> >
>>> >
>>> >       $ wget
>>> >
>>> http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv=
_u-boot-snow.kpart
>>> >
>>> >
>>> >       To be able to run KVM on ARM platforms, the kernel has to be
>>> booted in hypervisor
>>> >       mode. Because of this relatively recent requirement (due to the
>>> introduction of the
>>> >       virtualization extensions), up until now all booting methods
>>> would boot the kernel in
>>> >       the standard Supervisor mode. For the ARM Chromebook the defaul=
t
>>> boot procedure
>>> >       doesn't allow us to boot in hypervisor mode. Although the
>>> laptop's boot mechanism is
>>> >       based on the frequently used u-boot, the binary is located in R=
O
>>> memory. Fortunately,
>>> >       a chained u-boot mechanism can be used (i.e. starting another
>>> u-boot after the
>>> >       original). We can then enter hypervisor mode from our custom
>>> iteration of u-boot and
>>> >       subsequently load our kernel and userspace.
>>> >
>>> >       Checkout the needed u-boot code :
>>> >
>>> >
>>> >       $ git clone git://github.com/virtualopensystems/u-boot.git$ cd
>>> u-boot$
>>> >       ./scripts/build.sh
>>> >
>>> >
>>> >       If successful, a message about how to copy the bootloader on th=
e
>>> USB flash disk or SD
>>> >       card will appear. We will use it later when preparing the boot
>>> medium to start our
>>> >       system. If you have followed the Setting up the boot medium
>>> chapter and you have a
>>> >       prepared boot device, then you can update u-boot by running :
>>> >
>>> >
>>> >       $ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev/sdX1
>>> >
>>> >
>>> >
>>> > so,the needed u-boot that we must use should be installed on the firs=
t
>>> partition of the sd card.
>>> >
>>> > There is another relevant section to read :
>>> >
>>> >
>>> >       Setting up the boot medium
>>> >
>>> >       Now it is time to copy all the relevant files that we created i=
n
>>> the previous
>>> >       chapters,and use them to boot Chromebook with a different kerne=
l
>>> and OS. In all these
>>> >       examples the device /dev/sdX is used. Take extra care to change
>>> the examples to the
>>> >       device that you have attached. Insert the boot medium on your
>>> workstation and
>>> >       carefully execute the following step. First we need to properly
>>> format the boot
>>> >       medium.
>>> >
>>> >       In the uboot source directory :
>>> >
>>> >
>>> >       $ sudo ./scripts/sdcard.sh /dev/sdX
>>> >
>>> >
>>> >       This will erase all data and create 4 partitions in the medium,
>>> along with copying
>>> >       the u-boot binary to the first partition:
>>> >
>>> >
>>> >       Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
>>> >       Partition 2 =3D not used
>>> >       Partition 3 =3D EXT2 partition for u-boot files (uImage and
>>> exynos5250-snow.dtb)
>>> >       Partition 4 =3D EXT4 partition for userspace files
>>> >
>>> >
>>> >       With u-boot being copied, next is the kernel image and DTB file=
.
>>> From the kernel
>>> >       source execute :
>>> >
>>> >
>>> >       $ mkdir ../mnt/
>>> >       $ sudo mount /dev/sdX3 ../mnt/
>>> >       $ sudo cp arch/arm/boot/uImage ../mnt/
>>> >       $ sudo cp arch/arm/boot/dts/exynos5250-snow.dtb ../mnt/
>>> >       $ sudo umount /dev/sdX3
>>> >
>>> >
>>> >       Finally, we have to copy the Ubuntu userspace filesystem that w=
e
>>> created earlier:
>>> >
>>> >
>>> >       $ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./precise/* mnt/$ sudo
>>> umount /dev/sdX4
>>> >
>>> >
>>> >
>>> > Now,my idea is to chainload the already chain loaded u-boot created b=
y
>>> V.O.S to the new u-boot
>>> > that we need for booting FreeBSD and that can be installed in the
>>> partition n.2,as shown in this
>>> > scheme,because it is not used :
>>> >
>>> >
>>> > Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
>>> > Partition 2 =3D not used (maybe we can install the u-boot for arm 32
>>> bit,compatible with FreeBSD on
>>> > this partition)
>>> > Partition 3 =3D EXT2 partition for u-boot files (uImage and
>>> exynos5250-snow.dtb)
>>> > Partition 4 =3D EXT4 partition for userspace files
>>> >
>>> >
>>> > Take in consideration that default boot string is hardcoded here,in
>>> the snow.h file of the custom
>>> > u-boot created by VOS :
>>> >
>>> >
>>> >
>>> https://github.com/virtualopensyste...18a39b6c177dff58a/include/configs=
/snow.h#L101
>>> >
>>> >
>>> > and it needs to be recompiled because it should point to the partitio=
n
>>> n.2,where I will install
>>> > the u-boot files as explained here :
>>> >
>>> >
>>> > https://wiki.freebsd.org/arm/Chromebook
>>> >
>>> >
>>> > I have some questions to ask before I start working on this.
>>> >
>>> > 1) The xen developer said :
>>> >
>>> >
>>> >       You should be able to build U-Boot and use the U-Boot binary as
>>> Xen guest kernel...
>>> >
>>> >
>>> >
>>> > where is the u-boot binary,according to this document ?
>>> >
>>> > https://wiki.freebsd.org/arm/Chromebook
>>> >
>>> > I don't see it.
>>> >
>>> >
>>> > 2) where is the source code of the file that I can get here :
>>> >
>>> >
>>> http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/=
nv_uboot-snow-simplefb.kpart.bz2
>>> >
>>> > I need the source code if I want to recompile u-boot so that it can
>>> point to the partition 4.
>>> >
>>> > Maybe it can be found on this link :
>>> >
>>> > http://linux-exynos.org/dist/chromebook/nv_uboot/
>>> >
>>> > but it can't be opened....
>>> >
>>> >
>>> > 3) in this specific scenario the source code of u-boot should run on
>>> arm 32 bit,not on arm
>>> > 64,because I have the Samsung Chromebook "SNOW" model XE303C12,that's
>>> powered by a Samsung Exynos
>>> > 5250 (ARMv7 32 bit Cortex A15) Soc.
>>> >
>>> >
>>> > 4) I'm not sure if I can chainload the customized u-boot created by
>>> V.O.S that should be
>>> > installed on the first partition with the u-boot tailored for booting
>>> FreeBSD that should be
>>> > installed on the partition 2....
>>> >
>>> >
>>> > 5) the xen developer said that u-boot should be compiled enabling thi=
s
>>> option :
>>> >
>>> >
>>> > Code:
>>> >
>>> > CONFIG_CMO_BY_VA_ONLY=3Dy
>>> >
>>> >
>>> > Well,can you provide some good source that can help me to understand
>>> how I can recompile u-boot
>>> > for FreeBSD ? thanks.
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>> >
>>> > --
>>> > Mario.
>>> >
>>> >
>>
>>
>>
>> --
>> Mario.
>>
>

--=20
Mario.

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

<div dir=3D"ltr"><div><span style=3D"font-family:monospace">I&#39;ve added =
this parameter to bootxen.source :</span></div><div><span style=3D"font-fam=
ily:monospace"><br></span></div><div><span style=3D"font-family:monospace">=
guest_loglvl=3Dall</span></div><div><span style=3D"font-family:monospace"><=
br></span></div><div><span style=3D"font-family:monospace">bootxen.source :=
</span></div><div><span style=3D"font-family:monospace"><br></span></div><d=
iv><span style=3D"font-family:monospace">mmc dev 1
<br>ext2load mmc 1:3 0x42000000 zImage-5.4.261-iommu-dma-on-xen
<br>ext2load mmc 1:3 0x51000000 xen-4.17-armhf-armmp-0x51004000.ub
<br>ext2load mmc 1:3 0x5ffec000 exynos5250-snow.dtb
<br>fdt addr 0x5ffec000
<br>fdt resize 1024
<br>fdt set /chosen \#address-cells &lt;0x2&gt;
<br>fdt set /chosen \#size-cells &lt;0x2&gt;
<br>fdt set /chosen xen,xen-bootargs &quot;console=3Ddtuart dtuart=3Dserial=
0 dom0_mem=3D1152M dom0_max_vcpus=3D2 bootscrub=3D0 vwfi=3Dnative guest_log=
lvl=3Dall&quot;<br>fdt mknod /chosen dom0
<br>fdt set /chosen/dom0 compatible =C2=A0&quot;xen,linux-zimage&quot; &quo=
t;xen,multiboot-module&quot; &quot;multiboot,module&quot;
<br>fdt set /chosen/dom0 reg &lt;0x0 0x42000000 0x0 0x49F9A8 &gt;
<br>fdt set /chosen xen,dom0-bootargs &quot;console=3Dtty1 root=3D/dev/mmcb=
lk1p4 rw rootwait clk_ignore_unused --no-log&quot;
<br>bootm 0x51000000 - 0x5ffec000<br>
<br></span></div><div><span style=3D"font-family:monospace"><br></span></di=
v><div><span style=3D"font-family:monospace"><span style=3D"color:rgb(0,0,0=
);background-color:rgb(255,255,255)">but when I try to boot FreeBSD I don&#=
39;t get more informations than usual :<br></span></span></div><div><span s=
tyle=3D"font-family:monospace"><span style=3D"color:rgb(0,0,0);background-c=
olor:rgb(255,255,255)"><br></span></span></div><div><span style=3D"font-fam=
ily:monospace"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255=
,255)">root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen=
# ./start-freebsd
</span></span></div><div><span style=3D"font-family:monospace"></span></div=
><div><span style=3D"font-family:monospace"><br></span></div><div><span sty=
le=3D"font-family:monospace">Parsing config from freebsd.cfg
</span></div><div><span style=3D"font-family:monospace"></span></div><span =
style=3D"font-family:monospace">xc: error: panic: xg_dom_core.c:689: xc_dom=
_find_loader: no loader found: Invalid kernel
<br>libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fail=
ed
<br>libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:cann=
ot (re-)build domain: -3
<br>libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-ex=
istent domain
<br>libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Una=
ble to destroy guest
<br>libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destructi=
on of domain failed
<br></span><div><span style=3D"font-family:monospace">freebsd is an invalid=
 domain identifier (rc=3D-6)</span></div><br><div>Are you aware about a new=
 parameter that I can use to have more detailed debug information ?<br></di=
v></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr=
">On Wed, Dec 20, 2023 at 5:52=E2=80=AFAM Warner Losh &lt;<a href=3D"mailto=
:imp@bsdimp.com">imp@bsdimp.com</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><div>I&#=
39;d think you&#39;d need the right virtualization loader. I&#39;m not enti=
rely sure the u-boot.bin you&#39;ve been creating is for a dom-u..=C2=A0</d=
iv><div>If I misunderstood, then the below isn&#39;t good advice. Chain boo=
ting the u-boot, the first u-boot initializes things so you want</div><div>=
to start with stage after the SPL. But the different error messages suggest=
 that it&#39;s trying to reboot with kexec, which</div><div>isn&#39;t suppo=
rted on armv7 at the moment.<br></div><div><br></div><div>If you could boot=
 in kvm, I think that the following would work....=C2=A0 Though I&#39;m not=
 entirely sure how to</div><div>specify the two .fd files in your setup. Th=
e use of qemu is to have an easy env to debug things... I don&#39;t</div><d=
iv>have a chromebook to try...<br></div><div><br></div><div>My first instin=
ct would be to try qemu on x86 (this is the first step of many to get to yo=
ur destination).</div><div><br></div><div>If you could boot the GENERIC_SD =
image that we produce using qemu + edk2-arm-code.fd that would</div><div>be=
 a huge first step. This will give you the boot loader, I believe, to boot =
in the VM that you need better</div><div>than going via the u-boot route. S=
ince you are booting in a virtualized environment, I think it wouldn&#39;t<=
/div><div>matter which one :).</div><div><br></div><div>So, I did the follo=
wing to boot the virtualized armv7 FreeBSD environment, following a post on=
 the forums I found and knew to have the right recipe:</div><div><a href=3D=
"https://forums.freebsd.org/threads/run-boot-freebsd-arm-32bit-image-in-qem=
u.80765/" target=3D"_blank">https://forums.freebsd.org/threads/run-boot-fre=
ebsd-arm-32bit-image-in-qemu.80765/</a></div><div><br></div><div>1. pkg ins=
tall qemu</div><div>2. mkdir qemu-armv7-env</div><div>3. cd qemu-armv7-env<=
/div><div>4. fetch <a href=3D"https://download.freebsd.org/releases/arm/arm=
v7/ISO-IMAGES/14.0/FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz" target=
=3D"_blank">https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/14.0=
/FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz</a></div><div>5. xz -d -T =
0 FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz</div><div>6. dd if=3D/dev=
/zero of=3Dpflash0.img bs=3D1m count=3D64<br>7. dd if=3D/dev/zero of=3Dpfla=
sh1.img bs=3D1m count=3D64<br>8. dd if=3D/usr/local/share/qemu/edk2-arm-cod=
e.fd of=3Dpflash0.img conv=3Dnotrunc<br>9. dd if=3D/usr/local/share/qemu/ed=
k2-arm-vars.fd of=3Dpflash1.img conv=3Dnotrunc</div><div>10. cat &gt; start=
-freebsd-arm.sh</div><div>#!/bin/sh<br>qemu-system-arm \<br>=C2=A0 -M virt =
\<br>=C2=A0 -m 1024 \<br>=C2=A0 -drive file=3Dpflash0.img,format=3Draw,if=
=3Dpflash,readonly=3Don \<br>=C2=A0 -drive file=3Dpflash1.img,format=3Draw,=
if=3Dpflash \<br>=C2=A0 -drive file=3D$1.img,if=3Dvirtio,cache=3Dwritethrou=
gh \<br>=C2=A0 -nographic \<br>=C2=A0 -serial mon:stdio</div><div>^D</div><=
div>11. chmod +x start-freebsd-arm.sh</div><div>12. ./start-freebsd-arm.sh =
 FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD</div><div><br></div><div>But I hi=
t a snag with this on qemu 8.1.2 and 8.1.3 with both 13.2 and 14.0:</div><d=
iv><br></div><div>Starting devd.<br>Starting dhclient.<br>DHCPDISCOVER on v=
tnet0 to 255.255.255.255 port 67 interval 7<br>Fatal kernel mode data abort=
: &#39;Alignment Fault&#39; on read<br>trapframe: 0xc4b36a60<br>FSR=3D00000=
001, FAR=3Ddd96701a, spsr=3D20000013<br>r0 =3D00000000, r1 =3D00000001, r2 =
=3D00000001, r3 =3Dc4b36b4c<br>r4 =3D00000014, r5 =3Dd6618800, r6 =3Ddd9670=
2e, r7 =3D0000022c<br>r8 =3D00000000, r9 =3D0000022c, r10=3Ddd96701a, r11=
=3Dc4b36b90<br>r12=3D4300ffff, ssp=3Dc4b36af0, slr=3Dc04a9728, pc =3Dc04a97=
50<br><br>panic: Fatal abort<br>cpuid =3D 0<br>time =3D 1680843057<br>KDB: =
stack backtrace:<br>#0 0xc035786c at kdb_backtrace+0x48<br>#1 0xc02fdd20 at=
 vpanic+0x140<br>#2 0xc02fdbe0 at vpanic+0<br>#3 0xc06304ac at abort_align+=
0<br>#4 0xc063052c at abort_align+0x80<br>#5 0xc063017c at abort_handler+0x=
480<br>#6 0xc060f480 at exception_exit+0<br>#7 0xc04a9750 at udp_input+0x28=
8<br>#8 0xc0473f54 at ip_input+0x1e0<br>#9 0xc04447c0 at netisr_dispatch_sr=
c+0xf8<br>#10 0xc043bf2c at ether_demux+0x1a4<br>#11 0xc043d5e4 at ether_nh=
_input+0x480<br>#12 0xc04447c0 at netisr_dispatch_src+0xf8<br>#13 0xc043c40=
4 at ether_input+0x50<br>#14 0xc01c0838 at vtnet_rx_vq_process+0x880<br>#15=
 0xc01b70d0 at vtpci_intx_intr+0xac<br>#16 0xc02b87f0 at ithread_loop+0x2ec=
<br>#17 0xc02b465c at fork_exit+0xc0<br>Uptime: 19s</div><div><br></div><di=
v>I don&#39;t know if this is a problem with qemu or FreeBSD&#39;s kernel..=
.</div><div><br></div><div>Warner<br></div></div><br><div class=3D"gmail_qu=
ote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Dec 19, 2023 at 3:25=E2=
=80=AFPM Mario Marietto &lt;<a href=3D"mailto:marietto2008@gmail.com" targe=
t=3D"_blank">marietto2008@gmail.com</a>&gt; wrote:<br></div><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"><div dir=3D"ltr"><div>I&#39;ve asked som=
e help on the channel #arm on Reddit and someone replied :</div><div><br></=
div><div><a href=3D"https://www.reddit.com/r/arm/comments/18mcir8/i_cant_bo=
ot_freebsd_for_arm32_bit_as_domu_with/" target=3D"_blank">https://www.reddi=
t.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_arm32_bit_as_domu_with=
/</a></div><div><br></div><div>Maybe his answer can be useful to understand=
 why it does not work. <br></div></div><br><div class=3D"gmail_quote"><div =
dir=3D"ltr" class=3D"gmail_attr">On Tue, Dec 19, 2023 at 8:33=E2=80=AFPM St=
efano Stabellini &lt;<a href=3D"mailto:sstabellini@kernel.org" target=3D"_b=
lank">sstabellini@kernel.org</a>&gt; wrote:<br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex">+Michal<br>
<br>
Hi Mario,<br>
<br>
I am not sure about booting FreeBSD, but I am certain that u-boot works<br>
fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config<br>
file:<br>
<br>
name=3D&quot;test&quot;<br>
kernel=3D&quot;u-boot.bin&quot;<br>
extra =3D &quot;console=3Dhvc0&quot;<br>
memory=3D256<br>
vcpus=3D1<br>
disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
<br>
I don&#39;t know for sure if you can boot FreeBSD but you should definitely=
<br>
be able to see the u-boot command line prompt. The fact that you are<br>
getting this message:<br>
<br>
xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: I=
nvalid kernel<br>
<br>
Means that something is not right in the u-boot configuration or u-boot<br>
build. Michal and Artem (CCed) might know more. From what I recall,<br>
there was nothing special required to get u-boot.bin to boot as domU<br>
kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.<br>
<br>
Cheers,<br>
<br>
Stefano<br>
<br>
<br>
On Tue, 19 Dec 2023, Mario Marietto wrote:<br>
&gt; ....I see that some other interesting files have been produced by u-bo=
ot when I have compiled it :<br>
&gt; <br>
&gt; u-boot<br>
&gt; u-boot.lds<br>
&gt; u-boot.bin<br>
&gt; u-boot.map<br>
&gt; u-boot-nodtb.bin<br>
&gt; u-boot.dtb<br>
&gt; u-boot.srec<br>
&gt; u-boot-dtb.bin<br>
&gt; u-boot.sym<br>
&gt; <br>
&gt; So,maybe I should use a different u-boot* file for booting FreeBSD ?<b=
r>
&gt; <br>
&gt; <br>
&gt; On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto &lt;<a href=3D"=
mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a>=
&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello to everyone.<br>
&gt; <br>
&gt; I have compiled the needed u-boot.bin from scratch using this procedur=
e :<br>
&gt; <br>
&gt; # git clone <a href=3D"https://github.com/u-boot/u-boot.git" rel=3D"no=
referrer" target=3D"_blank">https://github.com/u-boot/u-boot.git</a><br>
&gt; # cd u-boot<br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfig =
: this line generates the file .config<br>
&gt; # nano .config and I&#39;ve added these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; the uboot-bin file is generated with this command :<br>
&gt; <br>
&gt; # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make<br>
&gt; <br>
&gt; At this point,I took a look inside the .config file and I saw that the=
 parameter &quot;CONFIG_ARMV7_NONSEC=3Dn&quot; has been removed. So,for<br>
&gt; some reason,it is not accepted and this could be a problem....<br>
&gt; <br>
&gt; These are the xen config files that I&#39;ve used :<br>
&gt; <br>
&gt; nano freebsd.cfg<br>
&gt; <br>
&gt; name=3D&quot;test&quot;<br>
&gt; kernel=3D&quot;u-boot.bin&quot;<br>
&gt; extra =3D &quot;console=3Dhvc0&quot;<br>
&gt; memory=3D256<br>
&gt; vcpus=3D1<br>
&gt; disk =3D [ &#39;FreeBSD-13.2-RELEASE-armv7.img,raw,xvda&#39; ]<br>
&gt; <br>
&gt; nano start-freebsd<br>
&gt; <br>
&gt; xl create freebsd.cfg<br>
&gt; xl console freebsd<br>
&gt; <br>
&gt; This is what happens when I launch the vm :<br>
&gt; <br>
&gt; # ./start-freebsd<br>
&gt; =C2=A0<br>
&gt; Parsing config from freebsd.cfg<br>
&gt; xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader fou=
nd: Invalid kernel<br>
&gt; libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fai=
led<br>
&gt; libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:can=
not (re-)build domain: -3<br>
&gt; libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-e=
xistent domain<br>
&gt; libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Un=
able to destroy guest<br>
&gt; libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruct=
ion of domain failed<br>
&gt; freebsd is an invalid domain identifier (rc=3D-6)<br>
&gt; <br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0So,ok,I should have said &quot;the second u-=
boot&quot; ; since the first u-boot binary is the &quot;u-boot binary locat=
ed in the RO<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0memory&quot; of the Chromebook&quot;. Sorry =
for the confusion.<br>
&gt; <br>
&gt; On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto &lt;<a href=3D=
"mailto:marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a=
>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; There are no specific options in u-b=
oot devoted to FreeBSD<br>
&gt; <br>
&gt; This is an important factor. So,what about if,instead of compiling a n=
ew version of u-boot on the partition 2,I will<br>
&gt; recompile the u-boot customized version created by the virtual open sy=
stem in 2014,that should be installed on the first<br>
&gt; partition ? It could work if there are no differences between the u-bo=
ot that should boot Linux and the u-boot that<br>
&gt; should boot FreeBSD.<br>
&gt; <br>
&gt; Can you give a look at the u-boot source code created by virtual open =
systems ? You can find it on my google drive :<br>
&gt; <br>
&gt; <a href=3D"https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzz=
O09BRm/view?usp=3Dsharing" rel=3D"noreferrer" target=3D"_blank">https://dri=
ve.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?usp=3Dsharing</=
a><br>
&gt; <br>
&gt; I need to understand if I can recompile it without problem so that it =
can satisfy my needs (the ability of the file<br>
&gt; u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano S=
tabellini,the xen developer that suggested to me<br>
&gt; what I could do to have FreeBSD virtualized under Xen on my Arm Chrome=
book) ; otherwise the risk is to find later<br>
&gt; problems that will make me troubles and that I will not able to fix.<b=
r>
&gt; <br>
&gt; I gave a look at the virtual open system u-boot and I didn&#39;t see a=
ny arndale_defconfig inside. So,If I have understood<br>
&gt; correctly,I should put that file inside the root of the u-boot source =
code,let&#39;s say here :<br>
&gt; <br>
&gt; marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls<b=
r>
&gt; =C2=A0<br>
&gt; .checkpatch.conf =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0README =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0doc =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
net<br>
&gt; .git =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0api =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0drivers =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0onenand_ipl<br>
&gt; .gitignore =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0arch =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0dts =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0post<br>
&gt; COPYING =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0board =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
examples =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://rules.mk" rel=3D"noreferrer" targ=
et=3D"_blank">rules.mk</a><br>
&gt; CREDITS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0boards.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0fs =C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0scripts<br>
&gt; MAINTAINERS =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0common =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0include =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0snapshot.commit<br>
&gt; MAKEALL =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://config.mk" rel=3D"nor=
eferrer" target=3D"_blank">config.mk</a> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0lib =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0spl<br>
&gt; 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=A0cros =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
mkconfig =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0test<br>
&gt; PRESUBMIT.cfg =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0disk =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0nand_spl =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
tools<br>
&gt; <br>
&gt; and I should do : make and make install ? and the file I need,u-boot.b=
in will be generated ?=C2=A0<br>
&gt; <br>
&gt; I didn&#39;t find any pre made configuration file inside :<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;exynos*&quot;=C2=A0<br>
&gt; <br>
&gt; ./include/exynos-fb.h<br>
&gt; ./include/configs/exynos5-common.h<br>
&gt; ./doc/device-tree-bindings/spi/exynos-spi.txt<br>
&gt; ./doc/device-tree-bindings/usb/exynos-usb.txt<br>
&gt; ./drivers/power/exynos-tmu.c<br>
&gt; ./drivers/power/exynos-cpufreq.c<br>
&gt; ./drivers/video/exynos-fb.c<br>
&gt; ./drivers/spi/exynos_spi.c<br>
&gt; ./board/samsung/dts/exynos5250-spring.dts<br>
&gt; ./board/samsung/dts/exynos5250-smdk5250.dts<br>
&gt; ./board/samsung/dts/exynos5250-snow.dts<br>
&gt; ./board/samsung/dts/exynos5250-daisy.dts<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h<br>
&gt; ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h<br>
&gt; ./arch/arm/dts/exynos5250.dtsi<br>
&gt; ./arch/arm/dts/exynos-periph-id.dtsi<br>
&gt; ./arch/arm/cpu/armv7/exynos5/exynos_cache.c=C2=A0<br>
&gt; <br>
&gt; u-boot-vos # find . -type f -name &quot;arndale*&quot;<br>
&gt; <br>
&gt; For sure I can&#39;t use a newer version of u-boot because otherwise t=
he patches needed to bypass the bootloader protections<br>
&gt; of the Arm Chromebook (such as a lot of different patches needed to bo=
ot correctly Linux) will be broken ; anyway,since<br>
&gt; it works,I don&#39;t need to use an updated version of u-boot.<br>
&gt; <br>
&gt; ----&gt; As per my experience, you have to respect these two options, =
compiling u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; It says that I should use these parameters :<br>
&gt; <br>
&gt; CONFIG_ARMV7_NONSEC=3Dn<br>
&gt; CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy<br>
&gt; <br>
&gt; These are the parameters used to configure a Linux kernel. I don&#39;t=
 understand what&#39;s the relation between the compilation<br>
&gt; of a linux kernel and u-boot. In the past I tried to recompile u-boot,=
but I didn&#39;t have the need to set up those<br>
&gt; parameters,so I don&#39;t know how to do it (but I know how to recompi=
le a Linux kernel).<br>
&gt; <br>
&gt; ---&gt; I&#39;m not sure that I&#39;m getting you right, as I don&#39;=
t understand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; <br>
&gt; I&#39;m talking about first u-boot because the whole procedure to boot=
 Linux on the ARM Chromebook,that&#39;s explained here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/" rel=3D"noreferrer" target=3D"_blank">http://www.virtualopens=
ystems.com/en/solutions/guides/kvm-on-chromebook/</a><br>
&gt; <br>
&gt; <br>
&gt; at some point they say :<br>
&gt; <br>
&gt; <br>
&gt; To be able to run KVM on ARM platforms, the kernel has to be booted in=
 hypervisor mode. Because of this relatively recent<br>
&gt; requirement (due to the introduction of the virtualization extensions)=
, up until now all booting methods would boot the<br>
&gt; kernel in the standard Supervisor mode.<br>
&gt; <br>
&gt; For the ARM Chromebook the default boot procedure doesn&#39;t allow us=
 to boot in hypervisor mode. Although the laptop&#39;s boot<br>
&gt; mechanism is based on the frequently used u-boot, the binary is locate=
d in RO memory. Fortunately, a chained u-boot<br>
&gt; mechanism can be used (i.e. starting another u-boot after the original=
). We can then enter hypervisor mode from our<br>
&gt; custom iteration of u-boot and subsequently load our kernel and usersp=
ace.<br>
&gt; <br>
&gt; So,the first u-boot is the u-boot provided by virtual open systems,tha=
t&#39;s able to chainload the &quot;u-boot binary located in<br>
&gt; RO memory&quot; , that does not boot Chrome OS in hypervisor mode. We =
don&#39;t need it if we want to boot Linux with kvm or xen<br>
&gt; enabled.<br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki &lt;<a href=
=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.siln=
icki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m not an expert in the topic, I only k=
now, that ARM has divided hardware into two worlds - Secure and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Not-So, strictly limiting any software, runn=
ing in non-secure world with access to functions and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0resources.=C2=A0<a href=3D"https://developer=
arm.com/documentation/den0013/d/Security/TrustZone-hardware-architecture?la=
ng=3Den" rel=3D"noreferrer" target=3D"_blank">https://developer.arm.com/doc=
umentation/den0013/d/Security/TrustZone-hardware-architecture?lang=3Den</a>=
<br>
&gt; <br>
&gt; I&#39;m not sure, that I&#39;m getting you right, as I don&#39;t under=
stand what you mean under &quot;the first u-boot&quot;.<br>
&gt; <br>
&gt; As I understand, virtualization (HYP) is running in non-secure world(<=
a href=3D"https://developer.arm.com/documentation/ddi0406/c/System-Level-Ar=
chitecture/The-System-Level-Programmers--Model/The-Virtualization-Extens" r=
el=3D"noreferrer" target=3D"_blank">https://developer.arm.com/documentation=
/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/Th=
e-Virtualization-Extens</a><br>
&gt; ions), so my guess (only guess!!!), virtualization software has to pre=
pare (configure) HW platform in the way,<br>
&gt; that FreeBSD kernel will not lack any resources, required to configure=
 MPU, VA, etc.<br>
&gt; So, if you lucky to boot virtualizer, which is aware of target OS, tha=
t maybe you can boot the kernel. Although, I<br>
&gt; doubt, that you need to boot &#39;second&#39; u-boot to boot the kerne=
l - there is simply ubldr, which you can hook somehow<br>
&gt; from virtualizer....<br>
&gt; <br>
&gt; Stan<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0---&gt; As I understand, it makes sure that =
u-boot keeps in secure mode during boot and passes control to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ubldr, which boots FreeBSD kernel, in that m=
ode.<br>
&gt; <br>
&gt; Can you elaborate your sentence more ? I know that the bootloader secu=
re mode is bypassed by the virtual open<br>
&gt; systems u-boot. Are you saying that when the control passes to the sec=
ond u-boot,it will happen in secure<br>
&gt; mode,so that the bypass that happened loading the first u-boot,is annu=
lled ? If this is true,maybe can I boot<br>
&gt; FreeBSD using the virtual-open-system custom u-boot ? Is this compatib=
le with FreeBSD ? Where can I find the<br>
&gt; u-boot.bin that the xen developer talked about ? thanks bro&#39;.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki &lt;<a hre=
f=3D"mailto:stanislav.silnicki@mailgate.us" target=3D"_blank">stanislav.sil=
nicki@mailgate.us</a>&gt; wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hi Mario,<br>
&gt; <br>
&gt; U-Boot=C2=A0 beast is hiding in this den: <a href=3D"https://source.de=
nx.de/u-boot/u-boot.git" rel=3D"noreferrer" target=3D"_blank">https://sourc=
e.denx.de/u-boot/u-boot.git</a><br>
&gt; I took a brief look at your post and it seems to me, that option=C2=A0=
CONFIG_CMO_BY_VA_ONLY=C2=A0is irrelevant to<br>
&gt; your target armv7 32 bit<br>
&gt; platform:=C2=A0<a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/=
master/arch/arm/cpu/armv8/Kconfig?ref_type=3Dheads#L3" rel=3D"noreferrer" t=
arget=3D"_blank">https://source.denx.de/u-boot/u-boot/-/blob/master/arch/ar=
m/cpu/armv8/Kconfig?ref_type=3Dheads#L3</a><br>
&gt; <br>
&gt; As for compiling the u-boot, it is a doable task, given that you under=
stand what you are doing. There<br>
&gt; are no specific options in u-boot devoted to FreeBSD. It is a boot loa=
der, whose mission to make basic<br>
&gt; hardware initialization, read you kernel file from some media into RAM=
 and then pass it control.<br>
&gt; <br>
&gt; Basically, you can grab some defconfig, prepared for any other Exynos5=
250 based board=C2=A0 (say, this one:<br>
&gt; <a href=3D"https://source.denx.de/u-boot/u-boot/-/blob/master/configs/=
arndale_defconfig?ref_type=3Dheads" rel=3D"noreferrer" target=3D"_blank">ht=
tps://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defconfig?=
ref_type=3Dheads</a>) and adopt<br>
&gt; it somehow.<br>
&gt; <br>
&gt; As per my experience, you have to respect these two options, compiling=
 u-boot for<br>
&gt; FreeBSD:=C2=A0<a href=3D"https://github.com/freebsd/freebsd-ports/blob=
/main/sysutils/u-boot-master/files/FreeBSD_Fragment" rel=3D"noreferrer" tar=
get=3D"_blank">https://github.com/freebsd/freebsd-ports/blob/main/sysutils/=
u-boot-master/files/FreeBSD_Fragment</a><br>
&gt; <br>
&gt; As I understand, it makes sure, that u-boot keeps in secure mode durin=
g boot and passes control to<br>
&gt; ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot=
 of surprises you may realize.<br>
&gt; <br>
&gt; Hope, this will help to progress you tasks<br>
&gt; Stan<br>
&gt; <br>
&gt; Mario Marietto wrote:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Hello.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I&#39;m trying to boot FreeBSD for arm32 bit=
 as DomU on my ARM Chromebook. Basically there are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0two ways to accomplish this task :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A01) to write a patch that allows the FreeBSD =
kernel to boot as a zImage file. This could be<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0accomplished applying this patch to a specif=
ic file that&#39;s on the source code of FreeBSD :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://xenbits.xen.org/gitweb/?p=
=3Dp...8;hb=3D0782e25d98cc1391472717035f986c979edef0c9" rel=3D"noreferrer" =
target=3D"_blank">https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98=
cc1391472717035f986c979edef0c9</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This patch was written by Julien Grall a lot=
 of time ago and now it does not work anymore.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This is the reason :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0It appears FreeBSD-CURR=
ENT removed the last step converting the kernel file to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0kernel.bin. The patch c=
an be readily rebased, but without kernel.bin that<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t do too much=
<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; So,without a rebase of that patch the first option is not applicable. =
And I&#39;m not able to fix it.<br>
&gt; <br>
&gt; 2) booting FreeBSD using U-Boot,as explained to me by a xen developer =
:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I was trying to explain why and how Julien&#=
39;s patch works so that you could be the one<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to re-do something similar or fix the patch =
on the FreeBSD kernel that you are<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0working with. I am happy to help review and =
write patches but I don&#39;t work with the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0FreeBSD kernel so I wouldn&#39;t be able to =
help you quickly. However, I might have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0suggestion. Do you know if FreeBSD can be bo=
oted by U-Boot ? Because U-Boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0definitely boots as Xen on ARM guest firmwar=
e/bootloader. You should be able to build<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0U-Boot and use the U-Boot binary as Xen gues=
t kernel, then U-Boot could load FreeBSD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0from disk or network and start it. For insta=
nce as domU config file:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0kernel=3D&quot;/home/petalinux/u-boot.bin&qu=
ot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0disk =3D [ &#39;/home/petalinux/test.img,raw=
,xvda&#39; ]<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0I know it is important to build u-boot with =
the following config to make it work on<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Xen.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; This option seems more doable to me according to my knowledge. But I n=
eed to understand how to do<br>
&gt; it.<br>
&gt; <br>
&gt; Well,let&#39;s say that on the ARM Chromebook I&#39;m forced to use an=
d install a customized version of<br>
&gt; u-boot,created by virtual open systems,because it is the only one that=
 allows bypassing its<br>
&gt; bootloader protection. You can find more information here :<br>
&gt; <br>
&gt; <a href=3D"http://www.virtualopensystems.com/en/solutions/guides/kvm-o=
n-chromebook/?vos=3Dtech" rel=3D"noreferrer" target=3D"_blank">http://www.v=
irtualopensystems.com/en/solutions/guides/kvm-on-chromebook/?vos=3Dtech</a>=
<br>
&gt; <br>
&gt; This is the relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Bootloader :<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If you wish to skip this chapter you can dow=
nload a pre-compiled binary of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0bootloader:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ wget<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"http://www.virtualopensystems.com=
/downloads/guides/kvm_on_chromebook/nv_u-boot-snow.kpart" rel=3D"noreferrer=
" target=3D"_blank">http://www.virtualopensystems.com/downloads/guides/kvm_=
on_chromebook/nv_u-boot-snow.kpart</a><br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0To be able to run KVM on ARM platforms, the =
kernel has to be booted in hypervisor<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0mode. Because of this relatively recent requ=
irement (due to the introduction of the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0virtualization extensions), up until now all=
 booting methods would boot the kernel in<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the standard Supervisor mode. For the ARM Ch=
romebook the default boot procedure<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0doesn&#39;t allow us to boot in hypervisor m=
ode. Although the laptop&#39;s boot mechanism is<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0based on the frequently used u-boot, the bin=
ary is located in RO memory. Fortunately,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0a chained u-boot mechanism can be used (i.e.=
 starting another u-boot after the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0original). We can then enter hypervisor mode=
 from our custom iteration of u-boot and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0subsequently load our kernel and userspace.<=
br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Checkout the needed u-boot code :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ git clone git://<a href=3D"http://github.c=
om/virtualopensystems/u-boot.git$" rel=3D"noreferrer" target=3D"_blank">git=
hub.com/virtualopensystems/u-boot.git$</a> cd u-boot$<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0./scripts/build.sh<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If successful, a message about how to copy t=
he bootloader on the USB flash disk or SD<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0card will appear. We will use it later when =
preparing the boot medium to start our<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0system. If you have followed the Setting up =
the boot medium chapter and you have a<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0prepared boot device, then you can update u-=
boot by running :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev=
/sdX1<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; so,the needed u-boot that we must use should be installed on the first=
 partition of the sd card.<br>
&gt; <br>
&gt; There is another relevant section to read :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Setting up the boot medium<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Now it is time to copy all the relevant file=
s that we created in the previous<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0chapters,and use them to boot Chromebook wit=
h a different kernel and OS. In all these<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0examples the device /dev/sdX is used. Take e=
xtra care to change the examples to the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0device that you have attached. Insert the bo=
ot medium on your workstation and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0carefully execute the following step. First =
we need to properly format the boot<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0medium.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0In the uboot source directory :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo ./scripts/sdcard.sh /dev/sdX<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0This will erase all data and create 4 partit=
ions in the medium, along with copying<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0the u-boot binary to the first partition:<br=
>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 1 =3D ChromeOS signed binary (V.O.=
S chained u-boot)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 2 =3D not used<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 3 =3D EXT2 partition for u-boot fi=
les (uImage and exynos5250-snow.dtb)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Partition 4 =3D EXT4 partition for userspace=
 files<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0With u-boot being copied, next is the kernel=
 image and DTB file. From the kernel<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0source execute :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ mkdir ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX3 ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/uImage ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo cp arch/arm/boot/dts/exynos5250-snow.=
dtb ../mnt/<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo umount /dev/sdX3<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Finally, we have to copy the Ubuntu userspac=
e filesystem that we created earlier:<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0$ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./pr=
ecise/* mnt/$ sudo umount /dev/sdX4<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Now,my idea is to chainload the already chain loaded u-boot created by=
 V.O.S to the new u-boot<br>
&gt; that we need for booting FreeBSD and that can be installed in the part=
ition n.2,as shown in this<br>
&gt; scheme,because it is not used :<br>
&gt; <br>
&gt; <br>
&gt; Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)<br>
&gt; Partition 2 =3D not used (maybe we can install the u-boot for arm 32 b=
it,compatible with FreeBSD on<br>
&gt; this partition)<br>
&gt; Partition 3 =3D EXT2 partition for u-boot files (uImage and exynos5250=
-snow.dtb)<br>
&gt; Partition 4 =3D EXT4 partition for userspace files<br>
&gt; <br>
&gt; <br>
&gt; Take in consideration that default boot string is hardcoded here,in th=
e snow.h file of the custom<br>
&gt; u-boot created by VOS :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://github.com/virtualopensyste...18a39b6c177dff58a/inc=
lude/configs/snow.h#L101" rel=3D"noreferrer" target=3D"_blank">https://gith=
ub.com/virtualopensyste...18a39b6c177dff58a/include/configs/snow.h#L101</a>=
<br>
&gt; <br>
&gt; <br>
&gt; and it needs to be recompiled because it should point to the partition=
 n.2,where I will install<br>
&gt; the u-boot files as explained here :<br>
&gt; <br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; <br>
&gt; I have some questions to ask before I start working on this.<br>
&gt; <br>
&gt; 1) The xen developer said :<br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0You should be able to build U-Boot and use t=
he U-Boot binary as Xen guest kernel...<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; where is the u-boot binary,according to this document ?<br>
&gt; <br>
&gt; <a href=3D"https://wiki.freebsd.org/arm/Chromebook" rel=3D"noreferrer"=
 target=3D"_blank">https://wiki.freebsd.org/arm/Chromebook</a><br>
&gt; <br>
&gt; I don&#39;t see it.<br>
&gt; <br>
&gt; <br>
&gt; 2) where is the source code of the file that I can get here :<br>
&gt; <br>
&gt; <a href=3D"http://commondatastorage.googleapis.com/chromeos-localmirro=
r/distfiles/nv_uboot-snow-simplefb.kpart.bz2" rel=3D"noreferrer" target=3D"=
_blank">http://commondatastorage.googleapis.com/chromeos-localmirror/distfi=
les/nv_uboot-snow-simplefb.kpart.bz2</a><br>
&gt; <br>
&gt; I need the source code if I want to recompile u-boot so that it can po=
int to the partition 4.<br>
&gt; <br>
&gt; Maybe it can be found on this link :<br>
&gt; <br>
&gt; <a href=3D"http://linux-exynos.org/dist/chromebook/nv_uboot/" rel=3D"n=
oreferrer" target=3D"_blank">http://linux-exynos.org/dist/chromebook/nv_ubo=
ot/</a><br>
&gt; <br>
&gt; but it can&#39;t be opened....<br>
&gt; <br>
&gt; <br>
&gt; 3) in this specific scenario the source code of u-boot should run on a=
rm 32 bit,not on arm<br>
&gt; 64,because I have the Samsung Chromebook &quot;SNOW&quot; model XE303C=
12,that&#39;s powered by a Samsung Exynos<br>
&gt; 5250 (ARMv7 32 bit Cortex A15) Soc.<br>
&gt; <br>
&gt; <br>
&gt; 4) I&#39;m not sure if I can chainload the customized u-boot created b=
y V.O.S that should be<br>
&gt; installed on the first partition with the u-boot tailored for booting =
FreeBSD that should be<br>
&gt; installed on the partition 2....<br>
&gt; <br>
&gt; <br>
&gt; 5) the xen developer said that u-boot should be compiled enabling this=
 option :<br>
&gt; <br>
&gt; <br>
&gt; Code:<br>
&gt; <br>
&gt; CONFIG_CMO_BY_VA_ONLY=3Dy<br>
&gt; <br>
&gt; <br>
&gt; Well,can you provide some good source that can help me to understand h=
ow I can recompile u-boot<br>
&gt; for FreeBSD ? thanks.<br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Mario.<br>
&gt; <br>
&gt; </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signatur=
e_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<b=
r></div>
</blockquote></div>
</div>
</blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre=
fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d=
iv>

--000000000000e06319060d319c29--


From xen-devel-bounces@lists.xenproject.org Sat Dec 23 18:39:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Dec 2023 18:39:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659760.1029495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH6uP-00079c-GQ; Sat, 23 Dec 2023 18:39:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659760.1029495; Sat, 23 Dec 2023 18:39:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH6uP-00079V-DM; Sat, 23 Dec 2023 18:39:37 +0000
Received: by outflank-mailman (input) for mailman id 659760;
 Sat, 23 Dec 2023 18:39:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cS80=IC=linux.dev=kent.overstreet@srs-se1.protection.inumbo.net>)
 id 1rH6uN-00079P-Uc
 for xen-devel@lists.xenproject.org; Sat, 23 Dec 2023 18:39:36 +0000
Received: from out-183.mta1.migadu.com (out-183.mta1.migadu.com
 [95.215.58.183]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d63c619-a1c2-11ee-9b0f-b553b5be7939;
 Sat, 23 Dec 2023 19:39:33 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d63c619-a1c2-11ee-9b0f-b553b5be7939
Date: Sat, 23 Dec 2023 13:39:24 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1;
	t=1703356772;
	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=nl8KqWKpD6wWjbvJJznLUba3EPd6rpJb9056eV80EZI=;
	b=mLUUfEd7gfPYDe3oleQ9tbdyTO5xnWBH1tZ17cgI4qqbATl0NNgyxkk9s86/LqjribMhXF
	icSGv6krf/Bb8nP/Rk+sLamzbNdocnFQ0i9s/yQOF2bzXjM3YAZVaDOCpBwjSIvilLWEoR
	/klCC3TPr9UUNblk28yYvK2TJLs04lQ=
X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers.
From: Kent Overstreet <kent.overstreet@linux.dev>
To: Matthew Wilcox <willy@infradead.org>
Cc: Yu Kuai <yukuai1@huaweicloud.com>, axboe@kernel.dk, 
	roger.pau@citrix.com, colyli@suse.de, kent.overstreet@gmail.com, joern@lazybastard.org, 
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, sth@linux.ibm.com, 
	hoeppner@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, 
	jejb@linux.ibm.com, martin.petersen@oracle.com, clm@fb.com, josef@toxicpanda.com, 
	dsterba@suse.com, viro@zeniv.linux.org.uk, brauner@kernel.org, nico@fluxnic.net, 
	xiang@kernel.org, chao@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca, 
	jack@suse.com, konishi.ryusuke@gmail.com, akpm@linux-foundation.org, 
	hare@suse.de, p.raghav@samsung.com, linux-block@vger.kernel.org, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org, 
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org, 
	linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, 
	linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, linux-nilfs@vger.kernel.org, 
	yukuai3@huawei.com, yi.zhang@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH RFC v3 for-6.8/block 09/17] btrfs: use bdev apis
Message-ID: <j52xmye4qmjqv4mq524ppvqr7naicobnwn2qfcvftbj4zoowga@t6klttrjtq2d>
References: <20231221085712.1766333-1-yukuai1@huaweicloud.com>
 <20231221085712.1766333-10-yukuai1@huaweicloud.com>
 <ZYcZi5YYvt5QHrG9@casper.infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ZYcZi5YYvt5QHrG9@casper.infradead.org>
X-Migadu-Flow: FLOW_OUT

On Sat, Dec 23, 2023 at 05:31:55PM +0000, Matthew Wilcox wrote:
> On Thu, Dec 21, 2023 at 04:57:04PM +0800, Yu Kuai wrote:
> > @@ -3674,16 +3670,17 @@ struct btrfs_super_block *btrfs_read_dev_one_super(struct block_device *bdev,
> >  		 * Drop the page of the primary superblock, so later read will
> >  		 * always read from the device.
> >  		 */
> > -		invalidate_inode_pages2_range(mapping,
> > -				bytenr >> PAGE_SHIFT,
> > +		invalidate_bdev_range(bdev, bytenr >> PAGE_SHIFT,
> >  				(bytenr + BTRFS_SUPER_INFO_SIZE) >> PAGE_SHIFT);
> >  	}
> >  
> > -	page = read_cache_page_gfp(mapping, bytenr >> PAGE_SHIFT, GFP_NOFS);
> > -	if (IS_ERR(page))
> > -		return ERR_CAST(page);
> > +	nofs_flag = memalloc_nofs_save();
> > +	folio = bdev_read_folio(bdev, bytenr);
> > +	memalloc_nofs_restore(nofs_flag);
> 
> This is the wrong way to use memalloc_nofs_save/restore.  They should be
> used at the point that the filesystem takes/releases whatever lock is
> also used during reclaim.  I don't know btrfs well enough to suggest
> what lock is missing these annotations.

Yes, but considering this is a cross-filesystem cleanup I wouldn't want
to address that in this patchset. And the easier, more incremental
approach for the conversion would be to first convert every GFP_NOFS
usage  to memalloc_nofs_save() like this patch does, as small local
changes, and then let the btrfs people combine them and move them to the
approproate location in a separate patchstet.


From xen-devel-bounces@lists.xenproject.org Sat Dec 23 20:47:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Dec 2023 20:47:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659768.1029506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH8uA-0006JF-IM; Sat, 23 Dec 2023 20:47:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659768.1029506; Sat, 23 Dec 2023 20: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 1rH8uA-0006J8-Fg; Sat, 23 Dec 2023 20:47:30 +0000
Received: by outflank-mailman (input) for mailman id 659768;
 Sat, 23 Dec 2023 20:47: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=rcCX=IC=gmail.com=christopher.w.clark@srs-se1.protection.inumbo.net>)
 id 1rH8u9-0006J2-5X
 for xen-devel@lists.xenproject.org; Sat, 23 Dec 2023 20:47:29 +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 7ab30e71-a1d4-11ee-9b0f-b553b5be7939;
 Sat, 23 Dec 2023 21:47:26 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-55359dc0290so4997711a12.1
 for <xen-devel@lists.xenproject.org>; Sat, 23 Dec 2023 12:47:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ab30e71-a1d4-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703364445; x=1703969245; 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=LqdbTnxB+K1sYUu2juHLYf+cK7eARVSiuTH1PFkYro0=;
        b=lWAz9bb9OBc4egTY4lwMQO88OmUlqRMMnDJM4GFmZnznkxC4Sja2CTS5q9jUYWYykV
         2bIFIcCtnOMab7VmS/hP8mOseba6CFBtT7x9+sOcDHLbj2FzPf4Tq6a7X5hyDJZzAPMq
         FyIkyhn9awC8tM4H0LVxWHfZJrpot+ehD/9SlAalV9uYFzjp50K0+tjgfn1Q67ta9S7v
         /YRIVAp9BAPPyG+cA7kXd8AZJ0TY1buM5yGZWD7QKZT7b+xrxPttEgf5Dos0+UIQLAao
         vkkbk93kGTvwWS/uzioYyQVJ1gUvhw8ORqmf3ASpZICowOxGLH6LQtNxy5v9agbDYOMJ
         OhYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703364445; x=1703969245;
        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=LqdbTnxB+K1sYUu2juHLYf+cK7eARVSiuTH1PFkYro0=;
        b=K12HVtgfcxkvbrNWcIA6f2pXrIg/JBfPwLC6seHmRGOTwq8RBmOSK4mF5aP1wCvjYi
         99MPEJW80TCCoXQ3qaZ16UsFLEA0nvxhsw+SwoVn/Nzi5enenywvFC2vhyZ9Zc+jThVT
         C97OCWHfTYlWx+RpWCxDrqTURIHHd4HtvzOf7wXxYphi2b+1EtpK8DzHf40hDxRtir/q
         e/xAkNefJGJEA6mQnbqwD+6zfDIKTq+p/Tc2UM7tHdmdQfZSSYpwDfUaF1Q6QDBHNeb2
         KD1utGdU0vj0/Fn9SbWaA4onRMwUY4PSlNY4ysK5VMY2Uuqk2fuVb3Sh1XU3gSfGwMLp
         RVTw==
X-Gm-Message-State: AOJu0Yyoer7XmHRMC9RIFtJQx7fAZ8qbJBrRH1ObbCW47PDc6Fzo/nrR
	Z6/1rmwB5g7sdeWZ72XJEVN9GpkEJCTF+8I98CE=
X-Google-Smtp-Source: AGHT+IGgNHzHZVXwcyD5a6+6CJ9Bm9zH5l2EFHE+3HoWANhVUiJFTz79Y3iNRISxfmx5chBgD0m967kuU6NaYIzYL2w=
X-Received: by 2002:a50:d7dd:0:b0:553:39e3:879a with SMTP id
 m29-20020a50d7dd000000b0055339e3879amr3224161edj.41.1703364445164; Sat, 23
 Dec 2023 12:47:25 -0800 (PST)
MIME-Version: 1.0
References: <580c6c48-9dd5-4296-8696-2b40beac2bc3@suse.com> <5d76295f-0438-4c5d-8b2e-73a1abcc96e6@suse.com>
In-Reply-To: <5d76295f-0438-4c5d-8b2e-73a1abcc96e6@suse.com>
From: Christopher Clark <christopher.w.clark@gmail.com>
Date: Sat, 23 Dec 2023 12:47:13 -0800
Message-ID: <CACMJ4GbvMhDdgOp=kUeL_+_j2yS_NVU69P8Xh9QYDLUwJ31Eow@mail.gmail.com>
Subject: Re: Ping: [PATCH] Argo: drop meaningless mfn_valid() check
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sun, Dec 17, 2023 at 11:55=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> Christopher,
>
> On 27.11.2023 14:55, Jan Beulich wrote:
> > Holding a valid struct page_info * in hands already means the reference=
d
> > MFN is valid; there's no need to check that again. Convert the checking
> > logic to a switch(), to help keeping the extra (and questionable) x86-
> > only check in somewhat tidy shape.
> >
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Christopher Clark <christopher.w.clark@gmail.com>

>
> much like "Argo: don't obtain excess page references" (with which the one
> here actually also conflicts), this one is awaiting your ack or otherwise=
.
> Note that the other one has now been pending for quite a bit more than a
> year. I hope the same isn't going to happen here ...

Thanks for your patience and the reminders, appreciated and this patch
can be applied.

Christopher


>
> Thanks, Jan
>
> > ---
> > Initially I had this (with less code churn) as
> >
> > #ifdef CONFIG_X86
> >     if ( p2mt =3D=3D p2m_ram_logdirty )
> >         ret =3D -EAGAIN;
> >     else
> > #endif
> >     if ( (p2mt !=3D p2m_ram_rw) ||
> >          !get_page_type(page, PGT_writable_page) )
> >         ret =3D -EINVAL;
> >
> > But the "else" placement seemed too ugly to me. Otoh there better
> > wouldn't be any special casing of log-dirty here (and instead such a
> > page be converted, perhaps right in check_get_page_from_gfn() when
> > readonly=3Dfalse), at which point the odd "else" would go away, and the
> > if() likely again be preferable over the switch().
> >
> > --- a/xen/common/argo.c
> > +++ b/xen/common/argo.c
> > @@ -1421,15 +1421,24 @@ find_ring_mfn(struct domain *d, gfn_t gf
> >          return ret;
> >
> >      *mfn =3D page_to_mfn(page);
> > -    if ( !mfn_valid(*mfn) )
> > -        ret =3D -EINVAL;
> > +
> > +    switch ( p2mt )
> > +    {
> > +    case p2m_ram_rw:
> > +        if ( !get_page_and_type(page, d, PGT_writable_page) )
> > +            ret =3D -EINVAL;
> > +        break;
> > +
> >  #ifdef CONFIG_X86
> > -    else if ( p2mt =3D=3D p2m_ram_logdirty )
> > +    case p2m_ram_logdirty:
> >          ret =3D -EAGAIN;
> > +        break;
> >  #endif
> > -    else if ( (p2mt !=3D p2m_ram_rw) ||
> > -              !get_page_and_type(page, d, PGT_writable_page) )
> > +
> > +    default:
> >          ret =3D -EINVAL;
> > +        break;
> > +    }
> >
> >      put_page(page);
> >
> >
>


From xen-devel-bounces@lists.xenproject.org Sat Dec 23 21:36:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Dec 2023 21:36:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659774.1029515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rH9fB-000480-57; Sat, 23 Dec 2023 21:36:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659774.1029515; Sat, 23 Dec 2023 21: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 1rH9fB-00047t-2c; Sat, 23 Dec 2023 21:36:05 +0000
Received: by outflank-mailman (input) for mailman id 659774;
 Sat, 23 Dec 2023 21:36:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rcCX=IC=gmail.com=christopher.w.clark@srs-se1.protection.inumbo.net>)
 id 1rH9f9-00047n-KJ
 for xen-devel@lists.xenproject.org; Sat, 23 Dec 2023 21:36:03 +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 44f7a1f3-a1db-11ee-98ed-6d05b1d4d9a1;
 Sat, 23 Dec 2023 22:36:02 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5542106d393so3029168a12.1
 for <xen-devel@lists.xenproject.org>; Sat, 23 Dec 2023 13:36:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44f7a1f3-a1db-11ee-98ed-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703367362; x=1703972162; 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=p51stket9prOiCFx5//IqKgnbwCEfz6b8oIv+vzWE+c=;
        b=Eb9JKd4GWTjjjjL/PTBlzW9R0fEKfZSdw+uDNQBbkaT+7xx5QeXyijlhxILcMIwpAR
         D/edoESOrLkVEMu9y0N0+BFk25awH6faf2Cr/mbsDJwm3eWB9h5tw4HiIHjLbcvRYucX
         uo1JyYR4rGV9u1oQ39HHf3ZijEeK92BP1L+JNpgOUR04OjFCFW45tKJeIycUiz1pi9Uk
         y557jj2KSb2TU2xnoj+oswcjzfwiy0F5g1e1QtkRZic7hh1QZiWlFKwK1QvMnPEnXy+g
         xWbMxZAb0asokoZcC5XW3jbklrAhV/AxvSDCd9evx6FNLYvGKPA6z1A5205Z/+uipaOX
         etMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703367362; x=1703972162;
        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=p51stket9prOiCFx5//IqKgnbwCEfz6b8oIv+vzWE+c=;
        b=IoNV+fezdoeTZ96JZbhcMFvZQHXFjyVuexVPahoDQ5fUs7Ot/w8IlS8uLxywKpLRsH
         sJgW7fpa72jpWxfp8/An/LLDaKq4Pcqp9HaCRNiVp5BM0ULZWeXNUKoO8CR3RCQjAAk/
         JLYN6CcKZs54tG2Tqdt9t8t3P2FPrbnVKRPjAS2XZs/cFTYasNppcx2z1uqFxn7VBJq1
         efU+HGCjNrECP6a9nU4PF4U0a1zs/iV+j6ArO8WHrHEIk8gGMbyzdv3RyMPkvekorKxU
         oL/Go/POFu5BCrjytBQ9+B03dB6jd7ZI7YvqbyZXXn21A4831frHsrSnV+MW8q+VIM5Q
         v/oQ==
X-Gm-Message-State: AOJu0YwWyR9AbQuwtFJMTgRg6Uz2veZfDUZs1kxltTUaPkdSOXW2hPh7
	ygQqBgQTLILmINx/HRvfVnu1EdU53AGTEJONYUSeB3Nz
X-Google-Smtp-Source: AGHT+IG9OnL3xeRKN1gvdyCsw4IHOhUWPaTVrdtOpiLLTh9ufo/ze+oPMZTTHwtHqcHY9iVfpkbXxcyzQIeZijKU4wQ=
X-Received: by 2002:aa7:d787:0:b0:553:bd7c:569 with SMTP id
 s7-20020aa7d787000000b00553bd7c0569mr2239636edq.24.1703367361600; Sat, 23 Dec
 2023 13:36:01 -0800 (PST)
MIME-Version: 1.0
References: <580c6c48-9dd5-4296-8696-2b40beac2bc3@suse.com>
 <5d76295f-0438-4c5d-8b2e-73a1abcc96e6@suse.com> <CACMJ4GbvMhDdgOp=kUeL_+_j2yS_NVU69P8Xh9QYDLUwJ31Eow@mail.gmail.com>
In-Reply-To: <CACMJ4GbvMhDdgOp=kUeL_+_j2yS_NVU69P8Xh9QYDLUwJ31Eow@mail.gmail.com>
From: Christopher Clark <christopher.w.clark@gmail.com>
Date: Sat, 23 Dec 2023 13:35:49 -0800
Message-ID: <CACMJ4GbNJgsg7tts=9UQPUr9ofsXajuHz7wYO1r5LnevWEL4_g@mail.gmail.com>
Subject: Re: Ping: [PATCH] Argo: drop meaningless mfn_valid() check
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Dec 23, 2023 at 12:47=E2=80=AFPM Christopher Clark
<christopher.w.clark@gmail.com> wrote:
>
> On Sun, Dec 17, 2023 at 11:55=E2=80=AFPM Jan Beulich <jbeulich@suse.com> =
wrote:
> >
> > Christopher,
> >
> > On 27.11.2023 14:55, Jan Beulich wrote:
> > > Holding a valid struct page_info * in hands already means the referen=
ced
> > > MFN is valid; there's no need to check that again. Convert the checki=
ng
> > > logic to a switch(), to help keeping the extra (and questionable) x86=
-
> > > only check in somewhat tidy shape.
> > >
> > > Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> Reviewed-by: Christopher Clark <christopher.w.clark@gmail.com>

I'd like to hold off on this just yet, sorry -- the change does look
ok as far as a transform being applied the prior logic and the
necessity of the check, but with it applied, it's not obvious that it
handles all the page types as best that it could there, so I'd like to
look at this (and the previously submitted patch again) please.

Christopher


From xen-devel-bounces@lists.xenproject.org Sun Dec 24 04:02:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Dec 2023 04:02:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659780.1029526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rHFgs-00056A-CS; Sun, 24 Dec 2023 04:02:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659780.1029526; Sun, 24 Dec 2023 04: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 1rHFgs-000563-7J; Sun, 24 Dec 2023 04:02:14 +0000
Received: by outflank-mailman (input) for mailman id 659780;
 Sun, 24 Dec 2023 04:02: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 1rHFgr-00055s-Gd; Sun, 24 Dec 2023 04:02: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 1rHFgr-0004az-7W; Sun, 24 Dec 2023 04:02: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 1rHFgq-0007b5-K1; Sun, 24 Dec 2023 04:02:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rHFgq-0002Vc-JZ; Sun, 24 Dec 2023 04:02: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=Kiiq6URcXNnyZTU7+mruNiU5fqCFVoMvfngLLlyeYy0=; b=VqZHiffUwV9IRpNW2aYm+e+6PN
	63rHrAJmjoG62jYU1e5BSnqtdP/3yuInA3MhZeK1plJRT7HPMFV6RGXFzzHYNNSI6mzSjiTB9tS4G
	fKK5E8Iz9PYGXwN+0J1V45WnU6BsDc1pHz4em5zy8FnotgtvaNQtqH6rjAvYYaAHj8XQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184218-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184218: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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: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-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-raw: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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt: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-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=3f82f1c3a03694800a4104ca6b6d3282bd4e213d
X-Osstest-Versions-That:
    linux=5254c0cbc92d2a08e75443bdb914f1c4839cdf5a
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 24 Dec 2023 04:02:12 +0000

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

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 184216
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184216
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184216
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184216
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184216
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184216
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184216
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184216
 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-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-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-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-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                3f82f1c3a03694800a4104ca6b6d3282bd4e213d
baseline version:
 linux                5254c0cbc92d2a08e75443bdb914f1c4839cdf5a

Last test of basis   184216  2023-12-23 07:35:31 Z    0 days
Testing same since   184218  2023-12-23 20:42:04 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Alan Stern <stern@rowland.harvard.edu>
  Alexander Atanasov <alexander.atanasov@virtuozzo.com>
  Alper Ak <alperyasinak1@gmail.com>
  ArÄ±nÃ§ ÃœNAL <arinc.unal@arinc9.com>
  Bjorn Andersson <quic_bjorande@quicinc.com>
  Borislav Petkov (AMD) <bp@alien8.de>
  Can Guo <quic_cang@quicinc.com>
  ChanWoo Lee <cw9316.lee@samsung.com>
  Chris Lindee <chris.lindee@gmail.com>
  Christoffer Sandberg <cs@tuxedo.de>
  Conor Dooley <conor.dooley@microchip.com>
  Dan Carpenter <dan.carpenter@linaro.org>
  Dan Williams <dan.j.williams@intel.com>
  David Lechner <dlechner@baylibre.com>
  Dmitry Torokhov <dmitry.torokhov@gmail.com>
  Esther Shimanovich <eshimanovich@chromium.org>
  Fabio Estevam <festevam@denx.de>
  George Stark <gnstark@salutedevices.com>
  Georgi Djakov <djakov@kernel.org>
  Gil Fine <gil.fine@linux.intel.com>
  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  Haibo Chen <haibo.chen@nxp.com>
  Hans de Goede <hdegoede@redhat.com>
  Haoran Liu <liuhaoran14@163.com>
  Jagath Jog J <jagathjog1996@gmail.com>
  Javier Carrasco <javier.carrasco.cruz@gmail.com>
  Javier Carrasco <javier.carrasco@wolfvision.net>
  Johan Hovold <johan+linaro@kernel.org>
  Johan Hovold <johan@kernel.org>
  Johannes Berg <johannes.berg@intel.com>
  Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
  JosÃ© Pekkarinen <jose.pekkarinen@foxhound.fi>
  Konrad Dybcio <konrad.dybcio@linaro.org>
  Linus Torvalds <torvalds@linux-foundation.org>
  Luca Weiss <luca@z3ntu.xyz>
  Marius Cristea <marius.cristea@microchip.com>
  Mark Glover <mark.glover@actisense.com>
  Martin K. Petersen <martin.petersen@oracle.com>
  Matti Vaittinen <mazziesaccount@gmail.com>
  Mika Westerberg <mika.westerberg@linux.intel.com>
  Mike Tipton <quic_mdtipton@quicinc.com>
  Nuno Sa <nuno.sa@analog.com>
  Peter Zijlstra (Intel) <peterz@infradead.org>
  RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
  Reinhard Speyerer <rspmn@arcor.de>
  Slark Xiao <slark_xiao@163.com>
  Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  Su Hui <suhui@nfschina.com>
  Tasos Sahanidis <tasos@tasossah.com>
  Thomas Gleixner <tglx@linutronix.de>
  Uwe Kleine-KÃ¶nig <u.kleine-koenig@pengutronix.de>
  Wadim Egorov <w.egorov@phytec.de>
  Wei Yongjun <weiyongjun1@huawei.com>
  Werner Sembach <wse@tuxedocomputers.com>
  Yaxiong Tian <tianyaxiong@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                 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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   5254c0cbc92d..3f82f1c3a036  3f82f1c3a03694800a4104ca6b6d3282bd4e213d -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sun Dec 24 10:33:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Dec 2023 10:33:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659798.1029536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rHLnV-000622-IL; Sun, 24 Dec 2023 10:33:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659798.1029536; Sun, 24 Dec 2023 10: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 1rHLnV-00061u-CI; Sun, 24 Dec 2023 10:33:29 +0000
Received: by outflank-mailman (input) for mailman id 659798;
 Sun, 24 Dec 2023 10:33: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 1rHLnT-00061k-TE; Sun, 24 Dec 2023 10:33: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 1rHLnT-0004OP-MB; Sun, 24 Dec 2023 10:33: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 1rHLnT-0002n8-9A; Sun, 24 Dec 2023 10:33:27 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rHLnT-0003YQ-8J; Sun, 24 Dec 2023 10:33:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=kSmKGz8daKoDigFwzfLIOnKgQIVFKNRfHMsxp+IeVWY=; b=pcckqL5y03REdSUmH8270VLAxL
	04AibyHJu+K3l9KpwHWjhuR9rZLpeTGRb1r+bxy5UPzZKg3yAyDdfGym8QPxGMfETP8v6xpnFtvKB
	rXuWVIRR4K/EJgiTfd1xmd0hl8hGro0GiyAXMQXn2I1srhyavxJFHOLGc5J1CWofSOOk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184219-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184219: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-credit1:guest-start:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemut-debianhvm-i386-xsm:debian-hvm-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-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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check: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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt: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-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-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd: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
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 24 Dec 2023 10:33:27 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit1  14 guest-start                fail pass in 184215
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm 12 debian-hvm-install fail pass in 184215

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-credit1 15 migrate-support-check fail in 184215 never pass
 test-armhf-armhf-xl-credit1 16 saverestore-support-check fail in 184215 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184215
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184215
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184215
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184215
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184215
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184215
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184215
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184215
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184215
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184215
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184215
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184215
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 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-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 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                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686

Last test of basis   184219  2023-12-24 01:53:54 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 fail    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 24 14:02:03 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Dec 2023 14:02:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659810.1029546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rHP36-0003Z1-Sp; Sun, 24 Dec 2023 14:01:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659810.1029546; Sun, 24 Dec 2023 14:01: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 1rHP36-0003Yu-Pt; Sun, 24 Dec 2023 14:01:48 +0000
Received: by outflank-mailman (input) for mailman id 659810;
 Sun, 24 Dec 2023 14:01: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 1rHP35-0003Yk-Cl; Sun, 24 Dec 2023 14:01: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 1rHP35-0008IT-1H; Sun, 24 Dec 2023 14:01: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 1rHP34-0007eu-GU; Sun, 24 Dec 2023 14:01:46 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rHP34-0004TG-G5; Sun, 24 Dec 2023 14:01: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=Q1Mhl4vwg1A2OH0lVnzgqu9fK764mYKRcY18Xxo8nc4=; b=ymz0BcaCFZ2NDtTbdJDcDzEtBA
	W5BXTfXCQy8dvvKIj6AprxAbbt5GUBqMBIiJyG6qRoBPI3COPNOEyBb6ETn8rBsm0XsU7q4tnY6Fo
	k/RSYymWfPOMlFKGIuNDykKMudhFEQY+hXCVsLChOpYnEU3UTG55NgyFC0k3pp16zUqQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184220-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184220: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-qcow2:saverestore-support-check: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-armhf-armhf-libvirt-raw: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: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-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-raw: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-qcow2: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt: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-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=861deac3b092f37b2c5e6871732f3e11486f7082
X-Osstest-Versions-That:
    linux=3f82f1c3a03694800a4104ca6b6d3282bd4e213d
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 24 Dec 2023 14:01:46 +0000

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

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 184218
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184218
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184218
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184218
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184218
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184218
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184218
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184218
 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-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-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-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-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-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-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-qcow2 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                861deac3b092f37b2c5e6871732f3e11486f7082
baseline version:
 linux                3f82f1c3a03694800a4104ca6b6d3282bd4e213d

Last test of basis   184218  2023-12-23 20:42:04 Z    0 days
Testing same since   184220  2023-12-24 04:04:53 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                                                  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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   3f82f1c3a036..861deac3b092  861deac3b092f37b2c5e6871732f3e11486f7082 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sun Dec 24 14:46:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Dec 2023 14:46:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659818.1029556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rHPk0-0008Hd-5y; Sun, 24 Dec 2023 14:46:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659818.1029556; Sun, 24 Dec 2023 14:46: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 1rHPk0-0008HW-2x; Sun, 24 Dec 2023 14:46:08 +0000
Received: by outflank-mailman (input) for mailman id 659818;
 Sun, 24 Dec 2023 14:46: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=Q/X8=ID=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rHPjy-0008HQ-Nf
 for xen-devel@lists.xenproject.org; Sun, 24 Dec 2023 14:46:06 +0000
Received: from m35-190.mailgun.net (m35-190.mailgun.net [69.72.35.190])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 27c7ce45-a26b-11ee-9b0f-b553b5be7939;
 Sun, 24 Dec 2023 15:46:02 +0100 (CET)
Received: from mg.gitlab.com (28.226.74.34.bc.googleusercontent.com
 [34.74.226.28]) by
 e5757967d999 with SMTP id 6588441ee44f46f86e09cbf6 (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Sun, 24 Dec 2023 14:45:50 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 27c7ce45-a26b-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1703429159; x=1703436359; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=7Glwo9N8457UF20Mx+PLt13nt/JcmWdVpA2JCSSiJGc=;
 b=O8MwySjP2BJYZ33sI8+Kxv0PlWDbCQ7Gi1Nqh2B9AeI5sat3AvXX4HwXGRQDZvHnC7L8qcc6ZTNBTAuQxFMqQafrQMbxjsuhaHasifp5E6qBSEHdbhqaZlm7O7msQ/UTm0HBMQd/8/hV32rkBUOFUCFlvXG2pz6r/dZXg06Vy0Y=
X-Mailgun-Sending-Ip: 69.72.35.190
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Sun, 24 Dec 2023 14:45:50 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <6588441e86f5e_2c95cf436434c@gitlab-sidekiq-catchall-v2-7b7796986f-tnfd9.mail>
Subject: xen | Successful pipeline for staging | 49818cde
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6588441e70daf_2c95cf4364259";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1118265555
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_6588441e70daf_2c95cf4364259
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1118265555 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 49818cde ( https://gitlab.com/xen-project/xen/-/commit/49818cde637b5ec20383e46b71f93b2e7d867686 )
Commit Message: xen: remove asm/unaligned.h

With include/xen/u...
Commit Author: Juergen Gross ( https://gitlab.com/jgross1 )
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )



Pipeline #1118265555 ( https://gitlab.com/xen-project/xen/-/pipelines/1118265555 ) triggered by Andrew Cooper ( https://gitlab.com/andyhhp )
successfully completed 133 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 49818cde</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1118265555 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/49818cde637b5ec203=
83e46b71f93b2e7d867686" style=3D"color: #3777b0; text-decoration: none;">=
49818cde</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen: remove asm/unaligned.h

With include/xen/u...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/0cac9c91cba4579c288f4be83125f17e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jgross1" style=3D"color: #3=
33333; text-decoration: none;">
Juergen Gross
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/4c68e59c4858f6dbd3465bd1ba226772?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/111826=
5555" style=3D"color: #3777b0; text-decoration: none;">#1118265555</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/4c68e59c4858f6dbd3465bd1ba226772?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 133 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_6588441e70daf_2c95cf4364259--


From xen-devel-bounces@lists.xenproject.org Mon Dec 25 07:05:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Dec 2023 07:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659861.1029566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rHf1F-0003jC-AZ; Mon, 25 Dec 2023 07:04:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659861.1029566; Mon, 25 Dec 2023 07:04:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rHf1F-0003j5-6H; Mon, 25 Dec 2023 07:04:57 +0000
Received: by outflank-mailman (input) for mailman id 659861;
 Mon, 25 Dec 2023 07:04: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 1rHf1E-0003iv-H0; Mon, 25 Dec 2023 07:04: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 1rHf1E-0002bZ-7F; Mon, 25 Dec 2023 07:04: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 1rHf1D-0003sP-OA; Mon, 25 Dec 2023 07:04:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rHf1D-0005hB-NX; Mon, 25 Dec 2023 07:04: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=CLZnhn0XeY7rBcpj/4ETxjgaBCsA2D+sS1NFrkFuNYw=; b=jvMCDRmw+qBbEtaP/ZwOYmOTjR
	ZchACRKOarAz9eInKw45p3yOvQHxtEtqkBRjQW3a9BmiMZ1FMfGG5WYdRLmaXtQS33/25K/60h1GD
	4Dh2Mx9pdzq0snSHDeoKPU9hKDDQERN7DuxH5uF5R15RJiVf0/nWVuw6zZLX4OB6qEIg=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184222-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184222: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=1065536c64ab919ad5c207e50b82d4a88ac29ed8
X-Osstest-Versions-That:
    ovmf=d01defe06b35eb3fe9c94e7b2e08a8762873f924
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 25 Dec 2023 07:04:55 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 1065536c64ab919ad5c207e50b82d4a88ac29ed8
baseline version:
 ovmf                 d01defe06b35eb3fe9c94e7b2e08a8762873f924

Last test of basis   184210  2023-12-22 09:12:48 Z    2 days
Testing same since   184222  2023-12-25 05:11:15 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Cheng Sun <chengx.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    
 test-amd64-i386-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
   d01defe06b..1065536c64  1065536c64ab919ad5c207e50b82d4a88ac29ed8 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Mon Dec 25 09:13:13 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Dec 2023 09:13:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659876.1029576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rHh13-0001cB-OT; Mon, 25 Dec 2023 09:12:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659876.1029576; Mon, 25 Dec 2023 09:12: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 1rHh13-0001c4-Lf; Mon, 25 Dec 2023 09:12:53 +0000
Received: by outflank-mailman (input) for mailman id 659876;
 Mon, 25 Dec 2023 09:12: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 1rHh12-0001bu-Br; Mon, 25 Dec 2023 09:12: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 1rHh12-0005aU-2V; Mon, 25 Dec 2023 09:12: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 1rHh11-0007DH-L1; Mon, 25 Dec 2023 09:12:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rHh11-00034c-Kc; Mon, 25 Dec 2023 09:12: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=tZVQjFA42UMOSnN3AxzSyHlsLIL6pQmUPlosmhWCVOw=; b=bJ9E7PaEr1XpwJE9eIsyTsOA0t
	JwqL34Fu82uGmv40dWzFxTTtGDUf0l6l7fe5DCHHIt/BweN7hSIifWvlzqTQUgaYlNdcP/s6vpZZj
	Dx8aTlUQ0X9jbuAaFalG6kxBs2BJQ+Fc4K7vv9AJMttR8gW0576dtEYp508/+9tmLnx8=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184221-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184221: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check: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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-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-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-libvirt: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-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-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-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-qcow2:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 25 Dec 2023 09:12:51 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184219
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184219
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184219
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184219
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184219
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184219
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184219
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184219
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184219
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184219
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184219
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184219
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 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-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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-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-i386-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-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-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686

Last test of basis   184221  2023-12-25 01:55: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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 25 09:13:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Dec 2023 09:13:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659881.1029585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rHh1o-00026R-2T; Mon, 25 Dec 2023 09:13:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659881.1029585; Mon, 25 Dec 2023 09:13:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rHh1n-00026K-W2; Mon, 25 Dec 2023 09:13:39 +0000
Received: by outflank-mailman (input) for mailman id 659881;
 Mon, 25 Dec 2023 09:13: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 1rHh1m-000264-Pz; Mon, 25 Dec 2023 09:13: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 1rHh1m-0005bG-P8; Mon, 25 Dec 2023 09:13: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 1rHh1m-0007E4-5s; Mon, 25 Dec 2023 09:13:38 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rHh1m-0003SL-5O; Mon, 25 Dec 2023 09:13: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=qLBQAXTzIrEa0a2XrAOZVD9XY+/W6teRKcLKVghSw7I=; b=DHrZmugq6s4CqESpvU9CK7gL97
	KZAwbec9G2gbeu58KGXIruqg9hkO6KT98MSGhgZjf3jf+6ogTm/Y32+F1Fu94jFNu7P/0589XFRyt
	8t4/4+ByvdBghABgkJwa1GojUpw9K2G6gNnHTP+3QxVwgF0v89re5EKNkH2nDqAeRngM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184223-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184223: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=54c662845f5dfa3f1146b0c345b91615b0e77af2
X-Osstest-Versions-That:
    ovmf=1065536c64ab919ad5c207e50b82d4a88ac29ed8
From: osstest service owner <osstest-admin@xenproject.org>
Date: Mon, 25 Dec 2023 09:13:38 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 54c662845f5dfa3f1146b0c345b91615b0e77af2
baseline version:
 ovmf                 1065536c64ab919ad5c207e50b82d4a88ac29ed8

Last test of basis   184222  2023-12-25 05:11:15 Z    0 days
Testing same since   184223  2023-12-25 07:14:24 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Ray Ni <ray.ni@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    
 test-amd64-i386-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
   1065536c64..54c662845f  54c662845f5dfa3f1146b0c345b91615b0e77af2 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 26 08:35:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Dec 2023 08:35:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.659990.1029595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rI2ta-0006GS-Hl; Tue, 26 Dec 2023 08:34:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 659990.1029595; Tue, 26 Dec 2023 08:34:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rI2ta-0006GL-FF; Tue, 26 Dec 2023 08:34:38 +0000
Received: by outflank-mailman (input) for mailman id 659990;
 Tue, 26 Dec 2023 08:34: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 1rI2tZ-0006GB-3r; Tue, 26 Dec 2023 08:34: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 1rI2tY-0006tz-P7; Tue, 26 Dec 2023 08:34: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 1rI2tY-0007aX-5N; Tue, 26 Dec 2023 08:34:36 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rI2tY-0003DO-47; Tue, 26 Dec 2023 08:34: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=ztmeoejjqtyYg4U9FFbG8M78rYPu50Rv8FqDHWSu2MA=; b=JzJjRpbL2xTrLYzDfewgbYi/QA
	RmgTA04P0YmdPmxOmyjuO1eu6GTGHR6xBCAd/7O/EGIozHgqvMY/gtBqMfUPl8gJ3QrTpynhQgAKk
	qAQgs51bHiv26GYQWT3a8gIYAIe6StdtdelhdUaKNysguIVjym0g6TQ+n110a/2AKgdU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184224-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184224: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-credit1:guest-start/debian.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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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: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-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-xsm: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-amd64-amd64-libvirt-raw: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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-libvirt: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-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=fbafc3e621c3f4ded43720fdb1d6ce1728ec664e
X-Osstest-Versions-That:
    linux=861deac3b092f37b2c5e6871732f3e11486f7082
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 26 Dec 2023 08:34:36 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-credit1 18 guest-start/debian.repeat fail pass in 184226-retest

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184220
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184220
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184220
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184220
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184220
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184220
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184220
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184220
 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-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-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-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-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-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-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-xl-vhd      14 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-vhd      15 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                fbafc3e621c3f4ded43720fdb1d6ce1728ec664e
baseline version:
 linux                861deac3b092f37b2c5e6871732f3e11486f7082

Last test of basis   184220  2023-12-24 04:04:53 Z    2 days
Testing same since   184224  2023-12-25 23:42:20 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Hongyu Ning <hongyu.ning@linux.intel.com>
  Jason Wang <jasowang@redhat.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Michael S. Tsirkin <mst@redhat.com>
  Stefan Hajnoczi <stefanha@redhat.com>
  Xuan Zhuo <xuanzhuo@linux.alibaba.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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   861deac3b092..fbafc3e621c3  fbafc3e621c3f4ded43720fdb1d6ce1728ec664e -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Tue Dec 26 09:41:33 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Dec 2023 09:41:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660002.1029606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rI3w7-0005BD-GX; Tue, 26 Dec 2023 09:41:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660002.1029606; Tue, 26 Dec 2023 09:41:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rI3w7-0005B6-D6; Tue, 26 Dec 2023 09:41:19 +0000
Received: by outflank-mailman (input) for mailman id 660002;
 Tue, 26 Dec 2023 09:41: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 1rI3w5-0005Aw-Jt; Tue, 26 Dec 2023 09:41: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 1rI3w5-00081W-Ed; Tue, 26 Dec 2023 09:41: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 1rI3w4-0000u7-W2; Tue, 26 Dec 2023 09:41:17 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rI3w4-0006Jq-Vc; Tue, 26 Dec 2023 09: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=S5BvSzCvWjeyVUpzGcNuer2GPThItOZYoHZbyV07NtQ=; b=OI4HydWP3GWwnoFiyeo+OJG5cB
	wj84AHoGFsWIXRRZOinzMLQ5a2oWyIidixAoxzK1X1KEqVmU7fnRlGoKOnI3i/488a6q2XfAIokVz
	U4B2TMIOotkuRvcpll7A51FGLZl9+VBHBQES+URABlFdX0aiWaQzL/Ng44Io7viGUUUo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184227-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184227: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=58d94639390803e375a7d16c94a5a527ec158474
X-Osstest-Versions-That:
    ovmf=54c662845f5dfa3f1146b0c345b91615b0e77af2
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 26 Dec 2023 09:41:16 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 58d94639390803e375a7d16c94a5a527ec158474
baseline version:
 ovmf                 54c662845f5dfa3f1146b0c345b91615b0e77af2

Last test of basis   184223  2023-12-25 07:14:24 Z    1 days
Testing same since   184227  2023-12-26 07: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    
 test-amd64-i386-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
   54c662845f..58d9463939  58d94639390803e375a7d16c94a5a527ec158474 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Tue Dec 26 11:29:07 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Dec 2023 11:29:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660009.1029615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rI5cD-0007H0-Pn; Tue, 26 Dec 2023 11:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660009.1029615; Tue, 26 Dec 2023 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 1rI5cD-0007Gt-Mm; Tue, 26 Dec 2023 11:28:53 +0000
Received: by outflank-mailman (input) for mailman id 660009;
 Tue, 26 Dec 2023 11:28: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 1rI5cC-0007Gj-Bi; Tue, 26 Dec 2023 11:28: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 1rI5cC-0001f4-15; Tue, 26 Dec 2023 11:28: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 1rI5cB-0003NT-Iz; Tue, 26 Dec 2023 11:28:51 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rI5cB-0003pT-IR; Tue, 26 Dec 2023 11:28: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=Y0uJIfVsmD5OakG7qZkOHi3rFmnA49kfREGBUVFI3xE=; b=urWau93nXTpQiIx3pnzCK6XPDT
	f2tqkLHsiA5HFCwk5vcnlHEZ1KOnvgKzWhTQhIfxYQWVDXz0CqawYllRVqI3/RquY4aiNbiuSqpbL
	L37YR+rQy4UdTwyL2+NnyI2rTl6aAYGRMp0r9Qra0f8dmVxhtOqSoeFvl/r/T/j+/QLM=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184225-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184225: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check: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-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start: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-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-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-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu: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-rtds:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-rtds:saverestore-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-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-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-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-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
From: osstest service owner <osstest-admin@xenproject.org>
Date: Tue, 26 Dec 2023 11:28:51 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184221
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184221
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184221
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184221
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184221
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184221
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184221
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184221
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184221
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184221
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184221
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184221
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 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-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-amd64-i386-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-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-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-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-i386-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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686

Last test of basis   184225  2023-12-26 01:52:23 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 27 01:59:43 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Dec 2023 01:59:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660056.1029658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIJCp-0005rk-QX; Wed, 27 Dec 2023 01:59:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660056.1029658; Wed, 27 Dec 2023 01:59:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIJCp-0005rd-Ma; Wed, 27 Dec 2023 01:59:35 +0000
Received: by outflank-mailman (input) for mailman id 660056;
 Wed, 27 Dec 2023 01:59: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 1rIJCo-0005r4-9j; Wed, 27 Dec 2023 01:59: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 1rIJCo-0008WS-3o; Wed, 27 Dec 2023 01:59: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 1rIJCn-0005de-He; Wed, 27 Dec 2023 01:59:33 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rIJCn-0000X9-HC; Wed, 27 Dec 2023 01:59: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=m8C0P6+bxsXLEfuTfugS+5TFD20cUqUqUJRJmEXmcOQ=; b=6eqwelI4rvGJ1Hja1bl/XRsLzY
	21kQKLEjuJpdfAQDfmbVBGHlkBq1v2PqTBv8kRXj5Jb+RONbka2mBI/rkeOScxiR6lVYgRAWoQRm1
	cktC12DeCk+Y7BdeU1MaKSq9zP5cQ+/UO7oA02zmcfiAiq6l3JSUTGuf3qOYtaZKAtlk=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184228-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [ovmf test] 184228: all pass - PUSHED
X-Osstest-Versions-This:
    ovmf=d7d4f09ff815794761f84d06e307001afe6376c4
X-Osstest-Versions-That:
    ovmf=58d94639390803e375a7d16c94a5a527ec158474
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 27 Dec 2023 01:59:33 +0000

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

Perfect :-)
All tests in this flight passed as required
version targeted for testing:
 ovmf                 d7d4f09ff815794761f84d06e307001afe6376c4
baseline version:
 ovmf                 58d94639390803e375a7d16c94a5a527ec158474

Last test of basis   184227  2023-12-26 07:41:11 Z    0 days
Testing same since   184228  2023-12-27 00:12:45 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    
 test-amd64-i386-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
   58d9463939..d7d4f09ff8  d7d4f09ff815794761f84d06e307001afe6376c4 -> xen-tested-master


From xen-devel-bounces@lists.xenproject.org Wed Dec 27 02:36:29 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Dec 2023 02:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660090.1029668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIJmP-0003Ny-Hv; Wed, 27 Dec 2023 02:36:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660090.1029668; Wed, 27 Dec 2023 02: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 1rIJmP-0003Nr-F1; Wed, 27 Dec 2023 02:36:21 +0000
Received: by outflank-mailman (input) for mailman id 660090;
 Wed, 27 Dec 2023 02: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=aEAl=IG=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1rIJmO-0003Nl-GM
 for xen-devel@lists.xenproject.org; Wed, 27 Dec 2023 02:36:20 +0000
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com
 [66.111.4.25]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b45e45ff-a460-11ee-98ed-6d05b1d4d9a1;
 Wed, 27 Dec 2023 03:36:17 +0100 (CET)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailout.nyi.internal (Postfix) with ESMTP id 1A1DC5C008E;
 Tue, 26 Dec 2023 21:36:14 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Tue, 26 Dec 2023 21:36:14 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 26 Dec 2023 21:36:12 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b45e45ff-a460-11ee-98ed-6d05b1d4d9a1
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=1703644574; x=1703730974; bh=35P8KX6pV0F6+37gMXxj8OuTbafTci2u
	iY/DR0a7/AU=; b=zgnm3VQWEtCqsypVisx47USWWcn2eO5UpYGpTY/stM/v0ZKW
	1iDDGg9ODDJZmnxiPLb1co+Y6kxbeS9bhlmBbrb+dtLNEgzneP8stUjL5uqzGDYk
	sa4WUd8vokjXBNM3mQmVwJMVXxkDmE+WaSWGm48aTrkHReWrQ1iYFJ2TlKnkpR/7
	qdXa39drfv40WBKMNB2xx/ACq1RKdfXBhaCt8vNAN/1jzON16xakv31TLrnDVAdo
	4NgZElbGZvQfY8xn9hrClCVMxAXXP6c3Le4ubzQA7X71SYtqKzCmSXwrc3uZpEFS
	SQvVhNBRsuyi/xI1FW1XiWmWOROi/VSEStv7Cw==
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=1703644574; x=1703730974; bh=35P8KX6pV0F6+
	37gMXxj8OuTbafTci2uiY/DR0a7/AU=; b=JEIJffjkf9gZETMxHsBJZyRiVs7P8
	Tr0JAIrwdzgLa6cUq87oCJJvVGUst8yVvU8tjqipyaH/yyoxmX9Rt2ci3FlVpjdD
	SG0zgngAGXBE9uxXrrODs5yKiszg8uIS5g3LtmoFVbhKJz8Afss4aSZAzQ5/m/dq
	Tu3nwIb7Z75cBnsKbl4RF+AvgtFj0mCK99OxmR350sp0T6jZEwBrK9LGUJ0obt2M
	TPj4M1eDeBSZ49+4kZdj/Ioojse7HWWp4eX9zmOnsG6Hixn+nUqXYsfgsZkg/lQs
	upMXu0XTZih0vLlqO1BthZs/4s/4E3/tgkJjvQF9DuPYVEjd66cGi5XSw==
X-ME-Sender: <xms:nY2LZbo2x3mfV7LpU58bblzxrlEDPMFZaIysK4ldkYB06uVF0-5yXA>
    <xme:nY2LZVqFa9w1LVqRsb9nAvogFF0hxYxKj0VBndB3Am-eY1nliRHITL4XPujirmtTS
    yj82GQnwHu9vg>
X-ME-Received: <xmr:nY2LZYP77mVaK2-SH3Kq_INbOjfR1owJ_GSeSxXD37HRnMRiLFz59xorTsJlDZ7HqF1sGl8qhDEyzzgXCcaatdf4iMMPCh1sUOb3eljluoDtjd5K2nk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvddvkedggeelucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
    cujfgurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelkefh
    udelteelleelteetveeffeetffekteetjeehlefggeekleeghefhtdehvdenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:nY2LZe40YNhl05BimoXcbZ-Y3WcYl5a4I40vKVYYF9ILOQT8dZ2DNA>
    <xmx:nY2LZa4hMPzHyVaIZpCpQxlGQ_8KjmTk_vGwZ-mwwm_iisQ8KFdsDA>
    <xmx:nY2LZWhHDxAngbOCXewNBfYi8gGMYzbHru9zXpu62d74tkCYMHhBLQ>
    <xmx:no2LZQkyAl-02iLqHDYKYVxZVM7nVFzW1aI0iAEtNou1HqlYfXVf0Q>
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>,
	Neowutran <xen@neowutran.ovh>,
	Wei Liu <wl@xen.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH] libxl: Disable relocating memory for qemu-xen in stubdomain too
Date: Wed, 27 Dec 2023 03:35:19 +0100
Message-ID: <20231227023544.1253277-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.41.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

According to comments (and experiments) qemu-xen cannot handle memory
reolcation done by hvmloader. The code was already disabled when running
qemu-xen in dom0 (see libxl__spawn_local_dm()), but it was missed when
adding qemu-xen support to stubdomain. Adjust libxl__spawn_stub_dm() to
be consistent in this regard.

Reported-by: Neowutran <xen@neowutran.ovh>
Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
---
 tools/libs/light/libxl_dm.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 14b593110f7c..ed620a9d8e14 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -2432,6 +2432,16 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
                         "%s",
                         libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios));
     }
+    /* Disable relocating memory to make the MMIO hole larger
+     * unless we're running qemu-traditional and vNUMA is not
+     * configured. */
+    libxl__xs_printf(gc, XBT_NULL,
+                     libxl__sprintf(gc, "%s/hvmloader/allow-memory-relocate",
+                                    libxl__xs_get_dompath(gc, guest_domid)),
+                     "%d",
+                     guest_config->b_info.device_model_version
+                        == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
+                     !libxl__vnuma_configured(&guest_config->b_info));
     ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid);
     if (ret<0) {
         LOGED(ERROR, guest_domid, "setting target domain %d -> %d",
-- 
2.41.0



From xen-devel-bounces@lists.xenproject.org Wed Dec 27 10:21:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Dec 2023 10:21:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660102.1029678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIR1s-00038P-JL; Wed, 27 Dec 2023 10:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660102.1029678; Wed, 27 Dec 2023 10:20:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIR1s-00038I-Ex; Wed, 27 Dec 2023 10:20:48 +0000
Received: by outflank-mailman (input) for mailman id 660102;
 Wed, 27 Dec 2023 10:20:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Lso=IG=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rIR1r-00038C-EH
 for xen-devel@lists.xenproject.org; Wed, 27 Dec 2023 10:20:47 +0000
Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com
 [2607:f8b0:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97392214-a4a1-11ee-9b0f-b553b5be7939;
 Wed, 27 Dec 2023 11:20:45 +0100 (CET)
Received: by mail-pg1-x52c.google.com with SMTP id
 41be03b00d2f7-53fbf2c42bfso3679729a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Dec 2023 02:20:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97392214-a4a1-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703672442; x=1704277242; 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=sKRkEdFeNIAs0Mu5/kzgu59lTthX1DoNRDWKejjl08E=;
        b=esbJF2SgCqEjCx4DLkLTdmhGpajmOJmO8Ia2lUQr90WPR69Ka3irNRA16jF/bWClgH
         VJX6Pu6oJNCYJQrJvGpG/Ce015fJ4/2twsGnFLT+l6zCjtXgRyaK52t/HcthHZfGIq4n
         npKo5COUTkIvhalUE3Pk1FIHO8mKlgmYRV4mFjUmvn7GN4XfPn0bZ+/HRfymhkjVk4E3
         NGuczj19NaX9aPtg2fB8xGo5ov+hrwUNrrDWMbOh1eip5hhYV2oPWZVZME4dtct/m5f+
         Wd0exSmPVoXHee2e51EPVv9AlkIumpiG1vpS0QnynVsmsu1jHflof0d1RHkIS/yBo3JH
         b8nA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703672442; x=1704277242;
        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=sKRkEdFeNIAs0Mu5/kzgu59lTthX1DoNRDWKejjl08E=;
        b=EDCo19rm4FsNYJXeFST531dl6uz6ezPNK80UjHkDpVeuMC2D6BN8SAFplII5P/dV2G
         lO3q6B+deqXwWVa6F8ElNTE7+XmvRURTqgkAuyB9WAkUIH7Ur9Gm5SLGGP4bRuE7pkit
         62dhxdIFf76CKbmiddIb4AyBZK9ukMQumK8nWNyedxbe+gcJeuO5EQqUdp0T6O+53Jj9
         jkH3g3PsF4eKqOVcyKScvOvs2vrpA6Jdn1szh80/o1d7TQ4BFXodjq2Kl6fa4iJCg2D6
         FUS5Evd+qZVJVb8i4kAOzNAB4zIAip++dDu/Is14kZcJwk/yRb8MNXKlGjf5w4gxot/6
         3MXg==
X-Gm-Message-State: AOJu0YxZh0WWxdH6rp8ka63IN0Zwfe1pTzidgvLnNBBJtfDU8zLtcFXu
	7PtfczDi3r/j01MVrFp/o5bWCCOywii5p5h4Qc/1N0ul2ssHEA==
X-Google-Smtp-Source: AGHT+IFjK1RMnX5MxC+cve+ey4b3wpXoFNJVO0wEPIGg42LzMD/3OvW6GEavchF2GURim2POPU7mO1QRUNqANVRjr+w=
X-Received: by 2002:a17:90a:9109:b0:28c:2871:95fd with SMTP id
 k9-20020a17090a910900b0028c287195fdmr2641225pjo.14.1703672441962; Wed, 27 Dec
 2023 02:20:41 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com> <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
 <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com> <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
 <CAKm-Umbs2D7NHFE+NW2xKOu7-AZhFpH4uzE5QTuQusnGA_eNWA@mail.gmail.com>
 <f539144c-885a-461c-a506-bdb73e626a65@suse.com> <CAKm-UmY126AfdGhWcZ3s9vwN9+ksVRRFEhOu0ZFMoDvxrqOibw@mail.gmail.com>
 <CAKm-UmZ-td2Ow+Gg=dC+ksLvOtTFjEoKo+_9ueozELuoK5zXrg@mail.gmail.com>
In-Reply-To: <CAKm-UmZ-td2Ow+Gg=dC+ksLvOtTFjEoKo+_9ueozELuoK5zXrg@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Wed, 27 Dec 2023 11:20:30 +0100
Message-ID: <CAKm-UmZTHLx3g+8tYhwP0f_YfGP5JUC69OdnmqhiUAV64bxOvw@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>
Content-Type: multipart/alternative; boundary="000000000000b79194060d7b26cc"

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

found the following issue with this similar HW setup :

https://marc.info/?l=3Dlinux-gpio&m=3D150605230614677&w=3D2

while in bare metal, I wonder if being in dom0 does not lead to the same
configuration :

Quoting :
---
"Under the I2C-HID spec, the device interrupt is level-triggered. When
the touchpad has data to report, it will bring the GPIO level low
(this is active-low), which should signal the host to read input
report data. The device will hold the GPIO low until there is no more
data that needs to be delivered.

The user-visible problem is that the touchpad appears to stop
responding after a short period of usage. At the i2c-hid driver level,
no more interrupts are arriving. We have checked with a scope that the
interrupt line is being held low at this point, which should mean that
the interrupt handler should be executed again since there is more
data to be read, but that is not happening here.

An easy way to reproduce this issue is to press multiple fingers on
the touchpad, which will result in a large amount of input data to be
queued up on the device side; however the interrupt handler will soon
stop firing so not all the data will be read, and everything stops
there...
"
^
 in my case the interrupt handler stop after one trigger.

"We observed that at the point where no more interrupts arrive, no
EOI_MASK write was sent at the point when i2c_irq_hid returned for the
last time (and is never called again). We found a potential solution
to this problem: by adding the IRQCHIP_EOI_THREADED flag, an EOI will
be sent at this point, and we are now unable to get the touchpad to
hang."
---


S=C3=A9bastien
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><span class=3D"gmail-im">found the follow=
ing issue with this similar HW setup :</span></div><div dir=3D"ltr"><span c=
lass=3D"gmail-im"><br></span></div><div dir=3D"ltr"><a href=3D"https://marc=
.info/?l=3Dlinux-gpio&amp;m=3D150605230614677&amp;w=3D2">https://marc.info/=
?l=3Dlinux-gpio&amp;m=3D150605230614677&amp;w=3D2</a></div><div><br></div><=
div>while in bare metal, I wonder if being in dom0 does not lead to the sam=
e configuration :<br></div><br>Quoting :<br>---<br>&quot;Under the I2C-HID =
spec, the device interrupt is level-triggered. When<br>the touchpad has dat=
a to report, it will bring the GPIO level low<br>(this is active-low), whic=
h should signal the host to read input<br>report data. The device will hold=
 the GPIO low until there is no more<br>data that needs to be delivered.<br=
><br>The user-visible problem is that the touchpad appears to stop<br>respo=
nding after a short period of usage. At the i2c-hid driver level,<br>no mor=
e interrupts are arriving. We have checked with a scope that the<br>interru=
pt line is being held low at this point, which should mean that<br>the inte=
rrupt handler should be executed again since there is more<br>data to be re=
ad, but that is not happening here.<br><br>An easy way to reproduce this is=
sue is to press multiple fingers on<br>the touchpad, which will result in a=
 large amount of input data to be<br>queued up on the device side; however =
the interrupt handler will soon<br>stop firing so not all the data will be =
read, and everything stops<br>there...<br><div>&quot;<br></div><div>^</div>=
<div>=C2=A0in my case the interrupt handler stop after one trigger.<br></di=
v><div><br></div>&quot;We observed that at the point where no more interrup=
ts arrive, no<br>EOI_MASK write was sent at the point when i2c_irq_hid retu=
rned for the<br>last time (and is never called again). We found a potential=
 solution<br>to this problem: by adding the IRQCHIP_EOI_THREADED flag, an E=
OI will<br>be sent at this point, and we are now unable to get the touchpad=
 to<br><div>hang.&quot;</div><div>---</div><div><br></div><div><br></div><d=
iv 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">=
<div dir=3D"ltr"><div class=3D"gmail_quote"><div>S=C3=A9bastien<br></div></=
div></div>
</blockquote></div></div>

--000000000000b79194060d7b26cc--


From xen-devel-bounces@lists.xenproject.org Wed Dec 27 10:56:23 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Dec 2023 10:56:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660107.1029688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIRaC-00070a-8T; Wed, 27 Dec 2023 10:56:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660107.1029688; Wed, 27 Dec 2023 10:56:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIRaC-00070P-4p; Wed, 27 Dec 2023 10:56:16 +0000
Received: by outflank-mailman (input) for mailman id 660107;
 Wed, 27 Dec 2023 10:56: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 1rIRaA-0006zY-GA; Wed, 27 Dec 2023 10:56: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 1rIRaA-0003ci-BR; Wed, 27 Dec 2023 10:56: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 1rIRa9-0000ml-Pj; Wed, 27 Dec 2023 10:56:13 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rIRa9-0000nO-Or; Wed, 27 Dec 2023 10:56:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=LIWiFLraKtWjY7FWPNH7vvDedq6SQlQiunbjnx7qm58=; b=dOoR2HAMwVhBmgjeLo4dvYxrqA
	MQwRMPMrXk5z6+bMhwDOPEL+nAruiiLzo1p7PTFg6/XaHWzTzZM6bXn8l4P9JeKYPHhjMGbH6Iwry
	bgDLUfXwW4u6fA8wnlT9UUMD2csWDYag2Hc2oIY7iDjdyC/eLQVEIBTThYOUkqE33sd4=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184229-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184229: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm: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: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-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-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-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-libvirt:migrate-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-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-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-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
From: osstest service owner <osstest-admin@xenproject.org>
Date: Wed, 27 Dec 2023 10:56:13 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184225
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184225
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184225
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184225
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184225
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184225
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184225
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184225
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184225
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184225
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184225
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184225
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-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-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-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-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-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-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-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-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-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686

Last test of basis   184229  2023-12-27 01:52:09 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 27 11:44:01 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Dec 2023 11:44:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660117.1029698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rISKC-0004YX-Oe; Wed, 27 Dec 2023 11:43:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660117.1029698; Wed, 27 Dec 2023 11:43: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 1rISKC-0004YQ-Lb; Wed, 27 Dec 2023 11:43:48 +0000
Received: by outflank-mailman (input) for mailman id 660117;
 Wed, 27 Dec 2023 11:43: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=/Lso=IG=gmail.com=euidzero@srs-se1.protection.inumbo.net>)
 id 1rISKB-0004YK-Bp
 for xen-devel@lists.xenproject.org; Wed, 27 Dec 2023 11:43:47 +0000
Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com
 [2607:f8b0:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 30fbdeef-a4ad-11ee-98ed-6d05b1d4d9a1;
 Wed, 27 Dec 2023 12:43:46 +0100 (CET)
Received: by mail-oi1-x22a.google.com with SMTP id
 5614622812f47-3bb53e20a43so4107489b6e.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Dec 2023 03:43:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30fbdeef-a4ad-11ee-98ed-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703677425; x=1704282225; 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=oOhXN8s7Nt0H5YOY9yNjrhmjSW2zugmbbzNMOfcr8TM=;
        b=Qgl+QbfXGj2dfLWSLsxh4P3/FZdykvkbFwpVa768fjK7HtDqx5BLN2AetxMKB6+Vz7
         JK6twFD8gw3RXQRcZo1cGRZfWvVLQhpFXBwuomwOQA7h7MEext9Kb/xrMfyDk5KsMSTf
         Nke/BZ5nWknr7lOaHBgpnME77F0BBRXGIc0WOerLUMqB8/DqIFg1vmWDPkd23lsdhsrH
         3kEi2dOTTBZM8amrKxGRM0PY3NgUxuNJqQxdfouVakDlSdz8fMeowLf5jTo/mhf4GKX9
         +TSJ78Y6HyPn0aOuVtcaXnAe2kkrWzqFSmm8S2LuVPIUPcxziLCb8D9wIYhFqQH1WJC4
         JtnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703677425; x=1704282225;
        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=oOhXN8s7Nt0H5YOY9yNjrhmjSW2zugmbbzNMOfcr8TM=;
        b=tqhhGNjIXL/l9QkPOwBTQVVb7fdYtu5tx8+hcXBk5Z4Wa3TDKmHCqQ3cQqGwlB8MbQ
         NeUIFgxA5j8BMtK1ejGhMjbGg/vb4hO1hBPYcHehjoumZxguRt1PZoeNW2P8MoU6wthx
         U+kif8w3H5CEMgL5+hg8mGJlwOKBDIy7OU6qBWPHpxwwllHi6KRFx43ridPbKc7e9kfh
         8Nr3wxXbkKet7uOxOoi6RpBmhOdFnn8I0dJjL2EOzBEBxW5vRieGcurZXvbpiY+5PnFd
         LcAwHMGVZHCuSeBwVCmM2NGPlKmZpOlB9b7jIbyv5P+qIc0Vs1FptRfBTtYA7IAqmX6b
         gY3Q==
X-Gm-Message-State: AOJu0YwdOlYNxkv4dEtCdnWQODgPPsOcSNGheiO4KhSdMbwJyDnWQ0Jb
	XVGKUCpPB9NHi2DNipGvn2F9XnU13uujmiq74cI=
X-Google-Smtp-Source: AGHT+IGwLIogvffU57U/DOoZoW7+BjXt4EbdIs4ZnVmqsutZYJR3hq4JAl5cenEVoilh1/Vc0+t82iGZVPrcJHSWqbo=
X-Received: by 2002:a05:6808:180e:b0:3b9:e80b:708e with SMTP id
 bh14-20020a056808180e00b003b9e80b708emr10496396oib.82.1703677424703; Wed, 27
 Dec 2023 03:43:44 -0800 (PST)
MIME-Version: 1.0
References: <CAKm-Umas=5=JzooRzPHxUDigKpFK3Ze7cQcG8eR5kWgn-d_7fQ@mail.gmail.com>
 <64d738b7-08c1-4b2c-a828-a137c870408e@suse.com> <CAKm-UmayUxd8F337g+BnR=_50_o__oV_PeUv9Z+9gNZ5MXYmrA@mail.gmail.com>
 <b4f46a91-b3b9-49b9-9a26-e2f962dee54c@suse.com> <CAKm-UmY9yYv2gOwm-O3DF7dBBNeNjs+3pDGuU+sYgJ+OHwcLNw@mail.gmail.com>
 <CAKm-UmZ1Q77EqUit9J6RX0-MCALdu4gjaU2zrX6oneW+45a+Kw@mail.gmail.com>
 <CAKm-UmYZcsY=C2Yhmy_EeZi0iAguVH0Eqy83upBLa_ikQtPwnw@mail.gmail.com>
 <CAKm-Umapq5LW9yhSOGk8TOg1iuvUogUDKbEXbUcE5T5-vVzW3w@mail.gmail.com>
 <CAKm-UmaUZ=rj-F3RvMoR7H3OvBHm1iy4PTRZAjyi=MQUVTuYVg@mail.gmail.com>
 <CAKm-Umat77MTh6=GEuH+bf1WRX+_B4-N5hY4xwADALfhj4QCPA@mail.gmail.com>
 <6ba9568a-ff8e-48ad-907f-74303e04d3a2@suse.com> <CAKm-UmZVoUhidEV15Xk+J_XN5a2GsBqMbXL9wqdFdoAFf_u5AA@mail.gmail.com>
 <bcbceba7-42ac-45be-80ab-e3dfe7741ec6@suse.com> <2eafe45b-fd97-472c-a173-459d6ff0b957@suse.com>
 <CAKm-Umbs2D7NHFE+NW2xKOu7-AZhFpH4uzE5QTuQusnGA_eNWA@mail.gmail.com>
 <f539144c-885a-461c-a506-bdb73e626a65@suse.com> <CAKm-UmY126AfdGhWcZ3s9vwN9+ksVRRFEhOu0ZFMoDvxrqOibw@mail.gmail.com>
In-Reply-To: <CAKm-UmY126AfdGhWcZ3s9vwN9+ksVRRFEhOu0ZFMoDvxrqOibw@mail.gmail.com>
From: =?UTF-8?Q?S=C3=A9bastien_Chaumat?= <euidzero@gmail.com>
Date: Wed, 27 Dec 2023 12:43:33 +0100
Message-ID: <CAKm-UmYt3iV8zOhSmtqMGhi_8T93c_nCbnefs4m3UC+3UABqeQ@mail.gmail.com>
Subject: Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Content-Type: multipart/alternative; boundary="000000000000b61bfd060d7c4f51"

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

Le ven. 22 d=C3=A9c. 2023 =C3=A0 15:37, S=C3=A9bastien Chaumat <euidzero@gm=
ail.com> a
=C3=A9crit :

> By request of the laptop vendor (Framework) I'm going to open the bug
> @fedora for them to jump in.
>
>
>> > I noticed that on baremetal :
>> >
>> >   53:          0          0          0          0          0       126=
8
>> >      0          0          0          0          0          0         =
 0
>> >        0          0          0  amd_gpio    5  FRMW0005:00
>> >   54:          0          0          0          0          0          =
1
>> >      0          0          0          0          0          0         =
 0
>> >        0          0          0  amd_gpio   84  FRMW0004:00
>> >   55:          0          0          0          0          0       140=
3
>> >      0          0          0          0          0          0         =
 0
>> >        0          0          0  amd_gpio    8  PIXA3854:00
>> >
>> > with xen with IRQ7 setup only once there's only (the touchpad is
>> > PIXA3854:00)
>> >
>> >  176:          0          0          0          0          0          =
0
>> >      1          0          0          0          0          0         =
 0
>> >        0          0          0  amd_gpio    8
>> >
>>
> > Interestingly when IRQ7 is setup twice (normal xen)
>> >  176:          0          0          0          0          0          =
0
>> >      1          0          0          0          0          0         =
 0
>> >        0          0          0  amd_gpio    8  PIXA3854:00
>>
>> That's odd, as with IRQ7 (wrongly) setup as edge, it should also be mark=
ed
>> as non-sharable. Otoh with the "i2c-PIXA3854:00:" error above it's no
>> surprise no interrupt is set up there.
>>
>
> forget this one, I made a mistake when skipping IRQ7.
>
> The "amd_gpio    8  PIXA3854:00"for  IRQ176 is identical with or without
> IRQ7 double initialization
>

 output of gpioinfo

kernel alone :

        line   5: unnamed         input active-low consumer=3Dinterrupt
        line  84: unnamed         input active-low consumer=3Dinterrupt

xen:

        line   5: unnamed         input active-low
        line  84: unnamed         input active-low

xen with skipping IRQ7 double init :

        line   5: unnamed         input active-low consumer=3Dinterrupt
        line  84: unnamed         input active-low


So definitely progressing.

--000000000000b61bfd060d7c4f51
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+PGRpdiBkaXI9Imx0ciI+PGJyPjwvZGl2Pjxicj48ZGl2IGNsYXNzPSJn
bWFpbF9xdW90ZSI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9ImdtYWlsX2F0dHIiPkxlwqB2ZW4uIDIy
IGTDqWMuIDIwMjMgw6DCoDE1OjM3LCBTw6liYXN0aWVuIENoYXVtYXQgJmx0OzxhIGhyZWY9Im1h
aWx0bzpldWlkemVyb0BnbWFpbC5jb20iPmV1aWR6ZXJvQGdtYWlsLmNvbTwvYT4mZ3Q7IGEgw6lj
cml0wqA6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1h
cmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQs
MjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGRpcj0ibHRyIj48ZGl2PkJ5IHJlcXVlc3Qgb2Yg
dGhlIGxhcHRvcCB2ZW5kb3IgKEZyYW1ld29yaykgSSYjMzk7bSBnb2luZyB0byBvcGVuIHRoZSBi
dWcgQGZlZG9yYSBmb3IgdGhlbSB0byBqdW1wIGluLjwvZGl2PjxzcGFuPjxkaXY+wqA8L2Rpdj48
YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHgg
MC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0
OjFleCI+Jmd0OyBJIG5vdGljZWQgdGhhdCBvbiBiYXJlbWV0YWwgOjxicj4NCiZndDsgPGJyPg0K
Jmd0O8KgIMKgNTM6wqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDC
oCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoDEyNjg8YnI+DQom
Z3Q7wqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAg
wqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMDxicj4N
CiZndDvCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCBhbWRf
Z3Bpb8KgIMKgIDXCoCBGUk1XMDAwNTowMDxicj4NCiZndDvCoCDCoDU0OsKgIMKgIMKgIMKgIMKg
IDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDC
oCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMTxicj4NCiZndDvCoCDCoCDCoCAwwqAgwqAgwqAgwqAg
wqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKg
IMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwPGJyPg0KJmd0O8KgIMKgIMKgIMKgIDDCoCDCoCDC
oCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIGFtZF9ncGlvwqAgwqA4NMKgIEZSTVcwMDA0OjAw
PGJyPg0KJmd0O8KgIMKgNTU6wqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDC
oCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoDE0MDM8
YnI+DQomZ3Q7wqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAg
wqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAg
MDxicj4NCiZndDvCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDC
oCBhbWRfZ3Bpb8KgIMKgIDjCoCBQSVhBMzg1NDowMDxicj4NCiZndDsgPGJyPg0KJmd0OyB3aXRo
IHhlbiB3aXRoIElSUTcgc2V0dXAgb25seSBvbmNlIHRoZXJlJiMzOTtzIG9ubHkgKHRoZSB0b3Vj
aHBhZCBpczxicj4NCiZndDsgUElYQTM4NTQ6MDApPGJyPg0KJmd0OyA8YnI+DQomZ3Q7wqAgMTc2
OsKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKg
IMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMDxicj4NCiZndDvCoCDCoCDC
oCAxwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAg
wqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwPGJyPg0KJmd0O8KgIMKg
IMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIGFtZF9ncGlvwqAgwqAg
ODxicj4NCiZndDvCoCA8YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9x
dW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29s
aWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij4NCiZndDsgSW50ZXJlc3Rpbmds
eSB3aGVuIElSUTcgaXMgc2V0dXAgdHdpY2UgKG5vcm1hbCB4ZW4pPGJyPg0KJmd0O8KgIDE3NjrC
oCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDC
oCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDA8YnI+DQomZ3Q7wqAgwqAgwqAg
McKgIMKgIMKgIMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKg
IMKgIMKgIDDCoCDCoCDCoCDCoCDCoCAwwqAgwqAgwqAgwqAgwqAgMDxicj4NCiZndDvCoCDCoCDC
oCDCoCAwwqAgwqAgwqAgwqAgwqAgMMKgIMKgIMKgIMKgIMKgIDDCoCBhbWRfZ3Bpb8KgIMKgIDjC
oCBQSVhBMzg1NDowMDxicj4NCjxicj4NClRoYXQmIzM5O3Mgb2RkLCBhcyB3aXRoIElSUTcgKHdy
b25nbHkpIHNldHVwIGFzIGVkZ2UsIGl0IHNob3VsZCBhbHNvIGJlIG1hcmtlZDxicj4NCmFzIG5v
bi1zaGFyYWJsZS4gT3RvaCB3aXRoIHRoZSAmcXVvdDtpMmMtUElYQTM4NTQ6MDA6JnF1b3Q7IGVy
cm9yIGFib3ZlIGl0JiMzOTtzIG5vPGJyPg0Kc3VycHJpc2Ugbm8gaW50ZXJydXB0IGlzIHNldCB1
cCB0aGVyZS48YnI+PC9ibG9ja3F1b3RlPjxkaXY+PGJyPjwvZGl2Pjwvc3Bhbj48ZGl2PmZvcmdl
dCB0aGlzIG9uZSwgSSBtYWRlIGEgbWlzdGFrZSB3aGVuIHNraXBwaW5nIElSUTcuPC9kaXY+PGRp
dj48YnI+PC9kaXY+PGRpdj5UaGUgJnF1b3Q7YW1kX2dwaW/CoCDCoCA4wqAgUElYQTM4NTQ6MDAm
cXVvdDtmb3LCoCBJUlExNzYgaXMgaWRlbnRpY2FsIHdpdGggb3Igd2l0aG91dCBJUlE3IGRvdWJs
ZSBpbml0aWFsaXphdGlvbjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2Pjxicj48L2Rpdj48
ZGl2PsKgb3V0cHV0IG9mIGdwaW9pbmZvPGJyPjxicj5rZXJuZWwgYWxvbmUgOjxicj48YnI+wqAg
wqAgwqAgwqAgbGluZSDCoCA1Ogl1bm5hbWVkIMKgIMKgIMKgIMKgIAlpbnB1dCBhY3RpdmUtbG93
IGNvbnN1bWVyPWludGVycnVwdDxicj7CoMKgwqDCoMKgwqDCoCBsaW5lIMKgODQ6CXVubmFtZWQg
wqAgwqAgwqAgwqAgCWlucHV0IGFjdGl2ZS1sb3cgY29uc3VtZXI9aW50ZXJydXB0PGJyPjxicj54
ZW46PGJyPjxicj7CoMKgwqDCoMKgwqDCoCBsaW5lIMKgIDU6CXVubmFtZWQgwqAgwqAgwqAgwqAg
CWlucHV0IGFjdGl2ZS1sb3c8YnI+wqDCoMKgwqDCoMKgwqAgbGluZSDCoDg0Ogl1bm5hbWVkIMKg
IMKgIMKgIMKgIAlpbnB1dCBhY3RpdmUtbG93PGJyPjxicj54ZW4gd2l0aCBza2lwcGluZyBJUlE3
IGRvdWJsZSBpbml0IDo8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIGxpbmUg
wqAgNToJdW5uYW1lZCDCoCDCoCDCoCDCoCAJaW5wdXQgYWN0aXZlLWxvdyBjb25zdW1lcj1pbnRl
cnJ1cHQ8YnI+wqDCoMKgwqDCoMKgwqAgbGluZSDCoDg0Ogl1bm5hbWVkIMKgIMKgIMKgIMKgIAlp
bnB1dCBhY3RpdmUtbG93PGJyPjxicj48YnI+U28gZGVmaW5pdGVseSBwcm9ncmVzc2luZy48L2Rp
dj48L2Rpdj48L2Rpdj4NCg==
--000000000000b61bfd060d7c4f51--


From xen-devel-bounces@lists.xenproject.org Wed Dec 27 16:54:59 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Dec 2023 16:54:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660130.1029708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIXB8-00053j-Fj; Wed, 27 Dec 2023 16:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660130.1029708; Wed, 27 Dec 2023 16:54:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIXB8-00053c-D6; Wed, 27 Dec 2023 16:54:46 +0000
Received: by outflank-mailman (input) for mailman id 660130;
 Wed, 27 Dec 2023 16:54: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=1EeP=IG=neowutran.ovh=xen@srs-se1.protection.inumbo.net>)
 id 1rIXB6-00053W-UN
 for xen-devel@lists.xenproject.org; Wed, 27 Dec 2023 16:54:45 +0000
Received: from neowutran.ovh (core.neowutran.ovh [51.83.40.211])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a17d6212-a4d8-11ee-9b0f-b553b5be7939;
 Wed, 27 Dec 2023 17:54:42 +0100 (CET)
Received: from neowutran.ovh (maisonhome.neowutran.ovh [82.65.3.49])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384)
 (No client certificate requested)
 by neowutran.ovh (Postfix) with ESMTPSA id 78B0760C59;
 Wed, 27 Dec 2023 16:54: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: a17d6212-a4d8-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=neowutran.ovh; s=mail;
	t=1703696080; bh=8BYkaWflkhgBjERzagtQSSe50YwD0x8dC+MF//KIfSQ=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=AP2QgVBd4IFI4o4XNKZOvbc2ImOaiNQMqlYVt4ia/9HvdIqO2hF3166K1DryrM9WU
	 5c63u78SMRRN2yX9wzryvwz9/SqH4mYT1UdY762dtV3KoM55zgtX2HTyuEz0VwFF2i
	 htubrbMNJQC1PaOqep1GFAPJJC4TOZY5x8i7gPZw4CEbUng5iQChPiuOJv3fUcrQQ4
	 i68uubshEWibfdwQf+ou+DcFx0Jw8ftb5zBU9XwPv4SsEFWI9VVdwkdwh5cpNlPeRn
	 RRaLNX+tGhfwwt5mH0sS9gOxq1RDg7FrzLjdA7FB78NLWKNvsnqwQxTEncMTN1pPDg
	 q0liO8h34wLW2ncyJvau3QtrECnA5QXAHh80JQl2yN/ckbhurLSmdEYav3yM+uOj8+
	 eGYhqto5udTou7gahvUFqI9qevSLxmEOsxzAPkw356X8KVd0JXAReMNpm8bnthrfpl
	 BK3aiqbkO4/ZqjS5s6aYavZS+1ktzn0y+ABcXgBuaDLJe1QQBTImu2JW4dh6A0LUpm
	 qOppyv/1/CQoyB+BOC785uRKvUJVMoGJ9eUto1NvjhEcJQfLkSLG6OsqRmY0xs1W5x
	 tmTqXJOvH/4wKz2ZneFPCOKz6J4Ni9aPSX8bG5YXeU/Y7tpXXCHbDnPEaJmP5qtblv
	 rNU/+e/vfppZX5huXz3KfWjE=
Date: Wed, 27 Dec 2023 17:54:31 +0100
From: Neowutran <xen@neowutran.ovh>
To: 
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Neowutran <xen@neowutran.ovh>, 
	Wei Liu <wl@xen.org>, Anthony PERARD <anthony.perard@citrix.com>, 
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] libxl: Disable relocating memory for qemu-xen in
 stubdomain too
Message-ID: <dvzyuckd4w7vii3bytpsecdyyzizgbgxslyxiciobw3ac6wmlb@uolzr2buvi2k>
References: <20231227023544.1253277-1-marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20231227023544.1253277-1-marmarek@invisiblethingslab.com>

On 2023-12-27 03:12, Marek Marczykowski-GÃ³recki wrote:
> According to comments (and experiments) qemu-xen cannot handle memory
> reolcation done by hvmloader. The code was already disabled when running
> qemu-xen in dom0 (see libxl__spawn_local_dm()), but it was missed when
> adding qemu-xen support to stubdomain. Adjust libxl__spawn_stub_dm() to
> be consistent in this regard.
> 
> Reported-by: Neowutran <xen@neowutran.ovh>
> Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
> ---
>  tools/libs/light/libxl_dm.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
> index 14b593110f7c..ed620a9d8e14 100644
> --- a/tools/libs/light/libxl_dm.c
> +++ b/tools/libs/light/libxl_dm.c
> @@ -2432,6 +2432,16 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
>                          "%s",
>                          libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios));
>      }
> +    /* Disable relocating memory to make the MMIO hole larger
> +     * unless we're running qemu-traditional and vNUMA is not
> +     * configured. */
> +    libxl__xs_printf(gc, XBT_NULL,
> +                     libxl__sprintf(gc, "%s/hvmloader/allow-memory-relocate",
> +                                    libxl__xs_get_dompath(gc, guest_domid)),
> +                     "%d",
> +                     guest_config->b_info.device_model_version
> +                        == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
> +                     !libxl__vnuma_configured(&guest_config->b_info));
>      ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid);
>      if (ret<0) {
>          LOGED(ERROR, guest_domid, "setting target domain %d -> %d",
> -- 
> 2.41.0

Seems to work as expected

Thanks, 
Neowutran



From xen-devel-bounces@lists.xenproject.org Thu Dec 28 00:18:45 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Dec 2023 00:18:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660175.1029718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIe6W-0000LL-US; Thu, 28 Dec 2023 00:18:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660175.1029718; Thu, 28 Dec 2023 00:18:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIe6W-0000LE-Qu; Thu, 28 Dec 2023 00:18:28 +0000
Received: by outflank-mailman (input) for mailman id 660175;
 Thu, 28 Dec 2023 00:18: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=7FLA=IH=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1rIe6V-0000L8-1U
 for xen-devel@lists.xenproject.org; Thu, 28 Dec 2023 00:18:27 +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 9da79bfd-a516-11ee-9b0f-b553b5be7939;
 Thu, 28 Dec 2023 01:18:24 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-55361b7f38eso6526442a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Dec 2023 16:18:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9da79bfd-a516-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703722704; x=1704327504; 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=ty1HrluIyWlwK9H1Q2n+4+yZjMwvSzLh2UT0uncqt3M=;
        b=Jg1ItsrSgCFkQdmapDQFEKD0DWbh/IUDSFM8Y7wtEZyNM2N3TdWPRx99nJL9Jq2657
         rSjZCCTvDIac5tSiS/QMgBMWkigbMzIy3b3Ri4WnJXlcqql52/Fk2aqzz6p6hjzIzTws
         MT391Pt/Ehcpsm1C52OKgINM7jbuIIgTe5nPwoMrOYS4Zo/qIh6Yv5iO6XIdAHm+zI5Y
         lavnbLvuQ480PpJd3KK/SCli+JVqSlA4iOt0mpBy+K0lHKIGhTQpVsF1AqtzTzRiQY8a
         BLoqZl5hISAryWKEwTCi+P0flYjfdGHdk59jw5L/ddmcPHvVgNOrBqPML5NvmoOuqmdn
         On4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703722704; x=1704327504;
        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=ty1HrluIyWlwK9H1Q2n+4+yZjMwvSzLh2UT0uncqt3M=;
        b=eBkcid1zSAyy0XnZnOPKEWjNUr+yUut6NqFmSF7QdUg3+cuNl5jeY0wh47HllljAWO
         MhHcD/iOYtiDjZKFUI06DZwHx3CqEEAMXBe8loEiEO1kKR1dYNDQGqfdKzXqH5HGk7cW
         txCESk3Du22e5PwTvqLPaMDZQ9A5pHDOGaNgCRN0sBuEpOlnYHjt8HKymWArtRkGHIjz
         ADxgm3EqPor+Ul2AtoWPSdGvrnbho20himViGmJIVtwB7vCmQp8TqfDsLl8WMjAunGnI
         RrhmcdvL/btnVi3R0IF52Z9X8X580MFQ2GgWFg7qMdh9220uNfvMOTDf+5NeLiNN3vbs
         S/5Q==
X-Gm-Message-State: AOJu0YytyHNRr5kKmi4L0xlp8gZjuBb6jOCGBDlSWmcbfL1wGBuqXQCK
	GzIXx+Hj+CHiqJvRn2N3/2l89S0ZBAgzvP8pkwo=
X-Google-Smtp-Source: AGHT+IH+icQOdSmL+RmUd2rkZZgZLefJYIdwnl/forEw6n8Z14HqAecth59X0pozY0FoEPJvT9FtVYOm87a184fgFM0=
X-Received: by 2002:a50:ab1d:0:b0:553:49f1:8366 with SMTP id
 s29-20020a50ab1d000000b0055349f18366mr4425930edc.77.1703722704263; Wed, 27
 Dec 2023 16:18:24 -0800 (PST)
MIME-Version: 1.0
References: <20231227023544.1253277-1-marmarek@invisiblethingslab.com>
In-Reply-To: <20231227023544.1253277-1-marmarek@invisiblethingslab.com>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Wed, 27 Dec 2023 19:18:12 -0500
Message-ID: <CAKf6xpsa_8nRyR-dY8sTQ6HsywZBmDvu29WwerxNkvJFqHq+fQ@mail.gmail.com>
Subject: Re: [PATCH] libxl: Disable relocating memory for qemu-xen in
 stubdomain too
To: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Neowutran <xen@neowutran.ovh>, Wei Liu <wl@xen.org>, 
	Anthony PERARD <anthony.perard@citrix.com>, Juergen Gross <jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 26, 2023 at 11:49=E2=80=AFPM Marek Marczykowski-G=C3=B3recki
<marmarek@invisiblethingslab.com> wrote:
>
> According to comments (and experiments) qemu-xen cannot handle memory
> reolcation done by hvmloader. The code was already disabled when running
> qemu-xen in dom0 (see libxl__spawn_local_dm()), but it was missed when
> adding qemu-xen support to stubdomain. Adjust libxl__spawn_stub_dm() to
> be consistent in this regard.
>
> Reported-by: Neowutran <xen@neowutran.ovh>
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>

Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Dec 28 09:01:00 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Dec 2023 09:01:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660189.1029728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rImFv-00030F-Ad; Thu, 28 Dec 2023 09:00:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660189.1029728; Thu, 28 Dec 2023 09: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 1rImFv-000308-7B; Thu, 28 Dec 2023 09:00:43 +0000
Received: by outflank-mailman (input) for mailman id 660189;
 Thu, 28 Dec 2023 09: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 1rImFt-0002zy-Cc; Thu, 28 Dec 2023 09: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 1rImFt-0003ks-0f; Thu, 28 Dec 2023 09:00: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 1rImFs-0007xP-Dw; Thu, 28 Dec 2023 09:00:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rImFs-00049B-D0; Thu, 28 Dec 2023 09:00: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=wQxUgymlA9vEvTgdqRWHbi2X3mLpmL3qCqVujxMUlZI=; b=RVYnBDfNvqA+ECSpbwj73Muh0u
	OuHVJfeQAWQXva5Vf9IpaAE8G02i1sC1DEtCtDJcgEBigi2w93fYDp8pOO6mNuiT8IPRTNkz7N60f
	MS3DIH4YW6nU+Ifr3VeTQpbJr0LUApqjc/M1uLLlGGB8k7Ds/eiO5tz3BLQQGZMvUfbo=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184230-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184230: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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: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-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-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-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=f5837722ffecbbedf1b1dbab072a063565f0dad1
X-Osstest-Versions-That:
    linux=fbafc3e621c3f4ded43720fdb1d6ce1728ec664e
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 28 Dec 2023 09:00:40 +0000

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

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 184224
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184224
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184224
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184224
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184224
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184224
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184224
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184224
 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-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-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-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-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                f5837722ffecbbedf1b1dbab072a063565f0dad1
baseline version:
 linux                fbafc3e621c3f4ded43720fdb1d6ce1728ec664e

Last test of basis   184224  2023-12-25 23:42:20 Z    2 days
Testing same since   184230  2023-12-28 01:14:02 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Morton <akpm@linux-foundation.org>
  Arnd Bergmann <arnd@arndb.de>
  Baokun Li <libaokun1@huawei.com>
  Baoquan He <bhe@redhat.com>
  Charan Teja Kalla <quic_charante@quicinc.com>
  David Howells <dhowells@redhat.com>
  Edward Adam Davis <eadavis@qq.com>
  Eric DeVolder <eric_devolder@yahoo.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Matthew Wilcox (Oracle) <willy@infradead.org>
  Muhammad Usama Anjum <usama.anjum@collabora.com>
  Nico Pache <npache@redhat.com>
  Sidhartha Kumar <sidhartha.kumar@oracle.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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   fbafc3e621c3..f5837722ffec  f5837722ffecbbedf1b1dbab072a063565f0dad1 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Thu Dec 28 11:31:39 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Dec 2023 11:31:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660197.1029738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIobi-0001hS-Ek; Thu, 28 Dec 2023 11:31:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660197.1029738; Thu, 28 Dec 2023 11: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 1rIobi-0001hL-AD; Thu, 28 Dec 2023 11:31:22 +0000
Received: by outflank-mailman (input) for mailman id 660197;
 Thu, 28 Dec 2023 11:29:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UqIg=IH=proton.me=flamv3421@srs-se1.protection.inumbo.net>)
 id 1rIoZs-0000oB-LY
 for xen-devel@lists.xenproject.org; Thu, 28 Dec 2023 11:29:29 +0000
Received: from mail-40137.protonmail.ch (mail-40137.protonmail.ch
 [185.70.40.137]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59bc59c3-a574-11ee-9b0f-b553b5be7939;
 Thu, 28 Dec 2023 12:29:26 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59bc59c3-a574-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=q655i3jgqrhjzjw6zrjt5u5vge.protonmail; t=1703762960; x=1704022160;
	bh=stZU0fpLmrGOpKNAz2/8YIYQmd4uyoHbQXuoGqdjPPk=;
	h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=Ugna/VR0GcyEIslOJwOqxs1TwMJHFNcfgjpqGLoVdaeiFxIpxEmVCdpDTQLflKk1W
	 JOQeCSR0uleWw3/twPcE8Wuvbq56Y4PFoNqJb2Wtkwi28PCqGFi0hTPWdzooYZ/pIQ
	 9wR94teryak8S69lpIcDWHtjTqcrD1IhcwJx8cgU/jzvmOGadSsXv+S7F86XlL3PQT
	 +TklDrMksHXSAcR7XGBYYM39nB1Hak5P7BZoLg6fKIchbj8Eu62tzd6t6VFUXSVhuk
	 Q4Sw0QjHla8ODwoImqZcTuI/RmRNmf9Zed7hRkeen5dfuGxzTTslvQtP4QFJNdxNYx
	 kUR7yBuGit2/g==
Date: Thu, 28 Dec 2023 11:28:59 +0000
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: flamv3421 <flamv3421@proton.me>
Subject: xenpm cpufrequency settings don't work
Message-ID: <syS1MXE7yvGnsDP-cXFUjca-0S1PkY-H2thU-X7ECmFD2VnugsyWnS-7y386-LTwhazuSggAuZI4d7F0Myq1tjLuw18CeOXErRKHJFCowpQ=@proton.me>
Feedback-ID: 90923600:user:proton
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="b1_MUOp8g8ulGl19JFInYhMrDutwyqDoaWmDWlfVb9stE"

This is a multi-part message in MIME format.

--b1_MUOp8g8ulGl19JFInYhMrDutwyqDoaWmDWlfVb9stE
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

SSB1c2VkIHhlbnBtIHRvIGRpc2FibGUgdHVyYm8gbW9kZSBhbmQgc2V0IHRoZSBtYXhpbXVtIGZy
ZXF1ZW5jeSB0byA4MDAwMDAgYW5kIGdvdmVybm9yIHRvIHBvd2Vyc2F2ZSwgYnV0IG15IGxhcHRv
cCBmYW5zIGFyZSBzdGlsbCBydW5uaW5nIGF0IGZ1bGwgc3BlZWQgd2hlbiBJIGFtIHVzaW5nIHhl
biBhbmQgdGhlIGF2ZXJhZ2UgZnJlcXVlbmN5IHNob3duIGRvZXMgbm90IG1hdGNoIHRoZSBtYXhp
bXVtIGZyZXF1ZW5jeSBJIHNldCB3aXRoIHhlbnBtIHdoaWNoIGlzIDgwMDAwMC4gV2h5IGFyZSBt
eSBmYW5zIHJ1bm5pbmcgYXQgZnVsbCBzcGVlZCBhbmQgd2h5IGRvZXNuJ3QgeGVucG0gbWF4aW11
bSBmcmVxdWVuY3kgc2V0dGluZyB3b3JrPyBUaGVzZSBhcmUgdGhlIGxvZ3Mgb2YgYm90aCBkbWVz
ZyBhbmQgeGVucG0KCiRzdWRvIHhsIGRtZXNnCihYRU4pIEJ1aWx0LWluIGNvbW1hbmQgbGluZTog
ZXB0PWV4ZWMtc3Agc3BlYy1jdHJsPXVucHJpdi1tbWlvCihYRU4pIHBhcmFtZXRlciAibm8tcmVh
bC1tb2RlIiB1bmtub3duIQogWGVuIDQuMTQuNQooWEVOKSBYZW4gdmVyc2lvbiA0LjE0LjUgKG1v
Y2tidWlsZEBbdW5rbm93bl0pIChnY2MgKEdDQykgMTAuMy4xIDIwMjEwNDIyIChSZWQgSGF0IDEw
LjMuMS0xKSkgZGVidWc9biAgVHVlIE1hciAgNyAwMDowMDowMCBVVEMgMjAyMwooWEVOKSBMYXRl
c3QgQ2hhbmdlU2V0OgooWEVOKSBCb290bG9hZGVyOiBHUlVCIDIuMDQKKFhFTikgQ29tbWFuZCBs
aW5lOiBwbGFjZWhvbGRlciBjb25zb2xlPW5vbmUgZG9tMF9tZW09bWluOjEwMjRNIGRvbTBfbWVt
PW1heDo0MDk2TSB1Y29kZT1zY2FuIGdudHRhYl9tYXhfZnJhbWVzPTIwNDggZ250dGFiX21heF9t
YXB0cmFja19mcmFtZXM9NDA5NiBuby1yZWFsLW1vZGUgZWRkPW9mZgooWEVOKSBYZW4gaW1hZ2Ug
bG9hZCBiYXNlIGFkZHJlc3M6IDB4OTVjMDAwMDAKKFhFTikgVmlkZW8gaW5mb3JtYXRpb246CihY
RU4pICBWR0EgaXMgZ3JhcGhpY3MgbW9kZSAxOTIweDEwODAsIDMyIGJwcAooWEVOKSBEaXNjIGlu
Zm9ybWF0aW9uOgooWEVOKSAgRm91bmQgMCBNQlIgc2lnbmF0dXJlcwooWEVOKSAgRm91bmQgMiBF
REQgaW5mb3JtYXRpb24gc3RydWN0dXJlcwooWEVOKSBFRkkgUkFNIG1hcDoKKFhFTikgIFswMDAw
MDAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwMDllZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAw
MDAwOWYwMDAsIDAwMDAwMDAwMDAwZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMDAw
MTAwMDAwLCAwMDAwMDAwMDg4ZDU3ZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwODhkNTgw
MDAsIDAwMDAwMDAwODk2NTdmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMDg5NjU4MDAw
LCAwMDAwMDAwMDk3ODZkZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwOTc4NmUwMDAsIDAw
MDAwMDAwOThkNmRmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMDk4ZDZlMDAwLCAwMDAw
MDAwMDk5YmNkZmZmXSAoQUNQSSBOVlMpCihYRU4pICBbMDAwMDAwMDA5OWJjZTAwMCwgMDAwMDAw
MDA5OWM0ZGZmZl0gKEFDUEkgZGF0YSkKKFhFTikgIFswMDAwMDAwMDk5YzRlMDAwLCAwMDAwMDAw
MDk5YzRlZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwOTljNGYwMDAsIDAwMDAwMDAwOWY3
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGUwMDAwMDAwLCAwMDAwMDAwMGVmZmZm
ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZTAwMDAwMCwgMDAwMDAwMDBmZTAxMGZm
Zl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVkMTAwMDAsIDAwMDAwMDAwZmVkMTlmZmZd
IChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZDg0MDAwLCAwMDAwMDAwMGZlZDg0ZmZmXSAo
cmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWUwMDAwMCwgMDAwMDAwMDBmZWUwMGZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmYzMDAwMDAsIDAwMDAwMDAwZmZmZmZmZmZdIChyZXNl
cnZlZCkKKFhFTikgIFswMDAwMDAwMTAwMDAwMDAwLCAwMDAwMDAwNDVlN2ZmZmZmXSAodXNhYmxl
KQooWEVOKSBBQ1BJOiBSU0RQIDk5QzREMDE0LCAwMDI0IChyMiBBQ1JTWVMpCihYRU4pIEFDUEk6
IFhTRFQgOTlDMjUxODgsIDAxMUMgKHIxIEFDUlNZUyBBQ1JQUkRDVCAgICAgICAgMiAgICAgICAx
MDAwMDEzKQooWEVOKSBBQ1BJOiBGQUNQIDk5QzI0MDAwLCAwMTBDIChyNSBBQ1JTWVMgQUNSUFJE
Q1QgICAgICAgIDIgMTAyNSAgICA0MDAwMCkKKFhFTikgQUNQSTogRFNEVCA5OUJEQjAwMCwgNDUy
RjEgKHIyIEFDUlNZUyBBQ1JQUkRDVCAgICAgICAgMiAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJ
OiBGQUNTIDk5QjQ0MDAwLCAwMDQwCihYRU4pIEFDUEk6IFVFRkkgOTlCQ0QwMDAsIDAyMzYgKHIx
IEFDUlNZUyBBQ1JQUkRDVCAgICAgICAgMSAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RU
IDk5QzQ3MDAwLCA0OTdFIChyMiBBQ1JTWVMgQUNSUFJEQ1QgICAgIDEwMDAgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogU1NEVCA5OUM0NjAwMCwgMDEwMCAocjIgQUNSU1lTIEFDUlBSRENUICAg
ICAzMDAwIDEwMjUgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgOTlDNDUwMDAsIDA4MzQgKHIy
IEFDUlNZUyBBQ1JQUkRDVCAgICAgMzAwMCAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RU
IDk5QzQyMDAwLCAyMEFEIChyMiBBQ1JTWVMgQUNSUFJEQ1QgICAgIDMwMDAgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogU1NEVCA5OUMzRTAwMCwgMzFEQSAocjIgQUNSU1lTIEFDUlBSRENUICAg
ICAzMDAwIDEwMjUgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgOTlDM0IwMDAsIDJDNDggKHIy
IEFDUlNZUyBBQ1JQUkRDVCAgICAgMTAwMCAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RU
IDk5QzNBMDAwLCAwNDVBIChyMiBBQ1JTWVMgQUNSUFJEQ1QgICAgIDEwMDAgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogU1NEVCA5OUMzOTAwMCwgMDA0NiAocjIgQUNSU1lTIEFDUlBSRENUICAg
ICAzMDAwIDEwMjUgICAgNDAwMDApCihYRU4pIEFDUEk6IFRQTTIgOTlDMzgwMDAsIDAwMzQgKHIz
IEFDUlNZUyBBQ1JQUkRDVCAgICAgICAgMiAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBMUElU
IDk5QzM3MDAwLCAwMDk0IChyMSBBQ1JTWVMgQUNSUFJEQ1QgICAgICAgIDIgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogV1NNVCA5OUMzNjAwMCwgMDAyOCAocjEgQUNSU1lTIEFDUlBSRENUICAg
ICAgICAyIDEwMjUgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgOTlDMzUwMDAsIDBCNzAgKHIy
IEFDUlNZUyBBQ1JQUkRDVCAgICAgMTAwMCAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RU
IDk5QzMyMDAwLCAyNTZGIChyMiBBQ1JTWVMgQUNSUFJEQ1QgICAgICAgIDAgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogREJHUCA5OUMzMTAwMCwgMDAzNCAocjEgQUNSU1lTIEFDUlBSRENUICAg
ICAgICAyIDEwMjUgICAgNDAwMDApCihYRU4pIEFDUEk6IERCRzIgOTlDMzAwMDAsIDAwNUMgKHIw
IEFDUlNZUyBBQ1JQUkRDVCAgICAgICAgMiAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RU
IDk5QzJGMDAwLCAwQjlGIChyMiBBQ1JTWVMgQUNSUFJEQ1QgICAgIDEwMDAgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogTVNETSA5OUMyRTAwMCwgMDA1NSAocjMgQUNSU1lTIEFDUlBSRENUICAg
ICAgICAxIDEwMjUgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgOTlDMjYwMDAsIDc1NjggKHIx
IEFDUlNZUyBBQ1JQUkRDVCAgICAgMTAwMCAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBOSExU
IDk5QzRDMDAwLCAwMkRGIChyMCBBQ1JTWVMgQUNSUFJEQ1QgICAgICAgIDIgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogSFBFVCA5OUMyMzAwMCwgMDAzOCAocjEgQUNSU1lTIEFDUlBSRENUICAg
ICAgICAyIDEwMjUgICAgNDAwMDApCihYRU4pIEFDUEk6IEFQSUMgOTlDMjIwMDAsIDAxNjQgKHIz
IEFDUlNZUyBBQ1JQUkRDVCAgICAgICAgMiAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBNQ0ZH
IDk5QzIxMDAwLCAwMDNDIChyMSBBQ1JTWVMgQUNSUFJEQ1QgICAgICAgIDIgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogU1NEVCA5OUJEQTAwMCwgMDFDNCAocjIgQUNSU1lTIEFDUlBSRENUICAg
ICAgICAyIDEwMjUgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgOTlCRDYwMDAsIDJGRUUgKHIx
IEFDUlNZUyBBQ1JQUkRDVCAgICAgMTAwMCAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RU
IDk5QkQ1MDAwLCAwMTYxIChyMiBBQ1JTWVMgQUNSUFJEQ1QgICAgIDEwMDAgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogRE1BUiA5OUJEOTAwMCwgMDBBOCAocjEgQUNSU1lTIEFDUlBSRENUICAg
ICAgICAyIDEwMjUgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgOTlCRDQwMDAsIDAxNjQgKHIx
IEFDUlNZUyBBQ1JQUkRDVCAgICAgMTAwMCAxMDI1ICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBGUERU
IDk5QkQyMDAwLCAwMDQ0IChyMSBBQ1JTWVMgQUNSUFJEQ1QgICAgICAgIDIgMTAyNSAgICA0MDAw
MCkKKFhFTikgQUNQSTogQkdSVCA5OUJEMzAwMCwgMDAzOCAocjEgQUNSU1lTIEFDUlBSRENUICAg
ICAgICAxIDEwMjUgICAgNDAwMDApCihYRU4pIFN5c3RlbSBSQU06IDE2MjE1TUIgKDE2NjA0MjE2
a0IpCihYRU4pIERvbWFpbiBoZWFwIGluaXRpYWxpc2VkCihYRU4pIEFDUEk6IDMyLzY0WCBGQUNT
IGFkZHJlc3MgbWlzbWF0Y2ggaW4gRkFEVCAtIDk5YjQ0MDAwLzAwMDAwMDAwMDAwMDAwMDAsIHVz
aW5nIDMyCihYRU4pIElPQVBJQ1swXTogYXBpY19pZCAyLCB2ZXJzaW9uIDMyLCBhZGRyZXNzIDB4
ZmVjMDAwMDAsIEdTSSAwLTExOQooWEVOKSBFbmFibGluZyBBUElDIG1vZGU6ICBQaHlzLiAgVXNp
bmcgMSBJL08gQVBJQ3MKKFhFTikgU3dpdGNoZWQgdG8gQVBJQyBkcml2ZXIgeDJhcGljX2NsdXN0
ZXIKKFhFTikgbWljcm9jb2RlOiBDUFUwIHVwZGF0ZWQgZnJvbSByZXZpc2lvbiAweGVhIHRvIDB4
ZjQsIGRhdGUgPSAyMDIyLTA3LTMxCihYRU4pIENQVTA6IFRTQzogcmF0aW86IDIxNiAvIDIKKFhF
TikgQ1BVMDogYnVzOiAxMDAgTUh6IGJhc2U6IDI2MDAgTUh6IG1heDogNTAwMCBNSHoKKFhFTikg
Q1BVMDogODAwIC4uLiAyNjAwIE1IegooWEVOKSB4c3RhdGU6IHNpemU6IDB4YTg4IGFuZCBzdGF0
ZXM6IDB4MjFmCihYRU4pIFVucmVjb2duaXNlZCBDUFUgbW9kZWwgMHhhNSAtIGFzc3VtaW5nIHZ1
bG5lcmFibGUgdG8gTGF6eUZQVQooWEVOKSBTcGVjdWxhdGl2ZSBtaXRpZ2F0aW9uIGZhY2lsaXRp
ZXM6CihYRU4pICAgSGFyZHdhcmUgaGludHM6IFJEQ0xfTk8gSUJSU19BTEwgU0tJUF9MMURGTCBN
RFNfTk8KKFhFTikgICBIYXJkd2FyZSBmZWF0dXJlczogSUJQQiBJQlJTIFNUSUJQIFNTQkQgTDFE
X0ZMVVNIIE1EX0NMRUFSIFNSQkRTX0NUUkwgRkJfQ0xFQVIKKFhFTikgICBDb21waWxlZC1pbiBz
dXBwb3J0OiBJTkRJUkVDVF9USFVOSwooWEVOKSAgIFhlbiBzZXR0aW5nczogQlRJLVRodW5rIEpN
UCwgU1BFQ19DVFJMOiBJQlJTKyBTVElCUCsgU1NCRC0sIE90aGVyOiBTUkJfTE9DSysgSUJQQi1j
dHh0IFZFUlcgQlJBTkNIX0hBUkRFTgooWEVOKSAgIFN1cHBvcnQgZm9yIEhWTSBWTXM6IE1TUl9T
UEVDX0NUUkwgUlNCIEVBR0VSX0ZQVSBNRF9DTEVBUgooWEVOKSAgIFN1cHBvcnQgZm9yIFBWIFZN
czogTVNSX1NQRUNfQ1RSTCBFQUdFUl9GUFUgTURfQ0xFQVIKKFhFTikgICBYUFRJICg2NC1iaXQg
UFYgb25seSk6IERvbTAgZGlzYWJsZWQsIERvbVUgZGlzYWJsZWQgKHdpdGggUENJRCkKKFhFTikg
ICBQViBMMVRGIHNoYWRvd2luZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZAooWEVOKSBV
c2luZyBzY2hlZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1bGVyIHJldjIgKGNyZWRpdDIpCihYRU4p
IEluaXRpYWxpemluZyBDcmVkaXQyIHNjaGVkdWxlcgooWEVOKSBQbGF0Zm9ybSB0aW1lciBpcyAy
NC4wMDBNSHogSFBFVAooWEVOKSBEZXRlY3RlZCAyNTkyLjAyMSBNSHogcHJvY2Vzc29yLgooWEVO
KSBVbmtub3duIGNhY2hhYmlsaXR5IGZvciBNRk5zIDB4YTAtMHhmZgooWEVOKSBVbmtub3duIGNh
Y2hhYmlsaXR5IGZvciBNRk5zIDB4OWIwMDAtMHg5ZjdmZgooWEVOKSBJbnRlbCBWVC1kIGlvbW11
IDAgc3VwcG9ydGVkIHBhZ2Ugc2l6ZXM6IDRrQiwgMk1CLCAxR0IKKFhFTikgSW50ZWwgVlQtZCBp
b21tdSAxIHN1cHBvcnRlZCBwYWdlIHNpemVzOiA0a0IsIDJNQiwgMUdCCihYRU4pIEludGVsIFZU
LWQgU25vb3AgQ29udHJvbCBub3QgZW5hYmxlZC4KKFhFTikgSW50ZWwgVlQtZCBEb20wIERNQSBQ
YXNzdGhyb3VnaCBub3QgZW5hYmxlZC4KKFhFTikgSW50ZWwgVlQtZCBRdWV1ZWQgSW52YWxpZGF0
aW9uIGVuYWJsZWQuCihYRU4pIEludGVsIFZULWQgSW50ZXJydXB0IFJlbWFwcGluZyBlbmFibGVk
LgooWEVOKSBJbnRlbCBWVC1kIFBvc3RlZCBJbnRlcnJ1cHQgbm90IGVuYWJsZWQuCihYRU4pIElu
dGVsIFZULWQgU2hhcmVkIEVQVCB0YWJsZXMgZW5hYmxlZC4KKFhFTikgSS9PIHZpcnR1YWxpc2F0
aW9uIGVuYWJsZWQKKFhFTikgIC0gRG9tMCBtb2RlOiBSZWxheGVkCihYRU4pIEludGVycnVwdCBy
ZW1hcHBpbmcgZW5hYmxlZAooWEVOKSBFbmFibGVkIGRpcmVjdGVkIEVPSSB3aXRoIGlvYXBpY19h
Y2tfb2xkIG9uIQooWEVOKSBFTkFCTElORyBJTy1BUElDIElSUXMKKFhFTikgIC0+IFVzaW5nIG9s
ZCBBQ0sgbWV0aG9kCihYRU4pIEFsbG9jYXRlZCBjb25zb2xlIHJpbmcgb2YgMzIgS2lCLgooWEVO
KSBWTVg6IFN1cHBvcnRlZCBhZHZhbmNlZCBmZWF0dXJlczoKKFhFTikgIC0gQVBJQyBNTUlPIGFj
Y2VzcyB2aXJ0dWFsaXNhdGlvbgooWEVOKSAgLSBBUElDIFRQUiBzaGFkb3cKKFhFTikgIC0gRXh0
ZW5kZWQgUGFnZSBUYWJsZXMgKEVQVCkKKFhFTikgIC0gVmlydHVhbC1Qcm9jZXNzb3IgSWRlbnRp
ZmllcnMgKFZQSUQpCihYRU4pICAtIFZpcnR1YWwgTk1JCihYRU4pICAtIE1TUiBkaXJlY3QtYWNj
ZXNzIGJpdG1hcAooWEVOKSAgLSBVbnJlc3RyaWN0ZWQgR3Vlc3QKKFhFTikgIC0gQVBJQyBSZWdp
c3RlciBWaXJ0dWFsaXphdGlvbgooWEVOKSAgLSBWaXJ0dWFsIEludGVycnVwdCBEZWxpdmVyeQoo
WEVOKSAgLSBQb3N0ZWQgSW50ZXJydXB0IFByb2Nlc3NpbmcKKFhFTikgIC0gVk0gRnVuY3Rpb25z
CihYRU4pICAtIFZpcnR1YWxpc2F0aW9uIEV4Y2VwdGlvbnMKKFhFTikgIC0gUGFnZSBNb2RpZmlj
YXRpb24gTG9nZ2luZwooWEVOKSBIVk06IEFTSURzIGVuYWJsZWQuCihYRU4pIEhWTTogVk1YIGVu
YWJsZWQKKFhFTikgSFZNOiBIYXJkd2FyZSBBc3Npc3RlZCBQYWdpbmcgKEhBUCkgZGV0ZWN0ZWQK
KFhFTikgSFZNOiBIQVAgcGFnZSBzaXplczogNGtCLCAyTUIsIDFHQgooWEVOKSBtaWNyb2NvZGU6
IENQVTIgdXBkYXRlZCBmcm9tIHJldmlzaW9uIDB4ZWEgdG8gMHhmNCwgZGF0ZSA9IDIwMjItMDct
MzEKKFhFTikgbWljcm9jb2RlOiBDUFU0IHVwZGF0ZWQgZnJvbSByZXZpc2lvbiAweGVhIHRvIDB4
ZjQsIGRhdGUgPSAyMDIyLTA3LTMxCihYRU4pIG1pY3JvY29kZTogQ1BVNiB1cGRhdGVkIGZyb20g
cmV2aXNpb24gMHhlYSB0byAweGY0LCBkYXRlID0gMjAyMi0wNy0zMQooWEVOKSBtaWNyb2NvZGU6
IENQVTggdXBkYXRlZCBmcm9tIHJldmlzaW9uIDB4ZWEgdG8gMHhmNCwgZGF0ZSA9IDIwMjItMDct
MzEKKFhFTikgbWljcm9jb2RlOiBDUFUxMCB1cGRhdGVkIGZyb20gcmV2aXNpb24gMHhlYSB0byAw
eGY0LCBkYXRlID0gMjAyMi0wNy0zMQooWEVOKSBCcm91Z2h0IHVwIDEyIENQVXMKKFhFTikgU2No
ZWR1bGluZyBncmFudWxhcml0eTogY3B1LCAxIENQVSBwZXIgc2NoZWQtcmVzb3VyY2UKKFhFTikg
RG9tMCBoYXMgbWF4aW11bSA5NTIgUElSUXMKKFhFTikgQ1BVMDogVGVtcGVyYXR1cmUgYWJvdmUg
dGhyZXNob2xkCihYRU4pIENQVTE6IFRlbXBlcmF0dXJlIGFib3ZlIHRocmVzaG9sZAooWEVOKSBD
UFUwOiBSdW5uaW5nIGluIG1vZHVsYXRlZCBjbG9jayBtb2RlCihYRU4pIENQVTE6IFJ1bm5pbmcg
aW4gbW9kdWxhdGVkIGNsb2NrIG1vZGUKKFhFTikgIFhlbiAga2VybmVsOiA2NC1iaXQsIGxzYiwg
Y29tcGF0MzIKKFhFTikgIERvbTAga2VybmVsOiA2NC1iaXQsIFBBRSwgbHNiLCBwYWRkciAweDEw
MDAwMDAgLT4gMHg0MDAwMDAwCihYRU4pIFBIWVNJQ0FMIE1FTU9SWSBBUlJBTkdFTUVOVDoKKFhF
TikgIERvbTAgYWxsb2MuOiAgIDAwMDAwMDA0NDAwMDAwMDAtPjAwMDAwMDA0NDgwMDAwMDAgKDEw
MDc2MTkgcGFnZXMgdG8gYmUgYWxsb2NhdGVkKQooWEVOKSAgSW5pdC4gcmFtZGlzazogMDAwMDAw
MDQ1YzgwMzAwMC0+MDAwMDAwMDQ1ZTdmZmY1ZgooWEVOKSBWSVJUVUFMIE1FTU9SWSBBUlJBTkdF
TUVOVDoKKFhFTikgIExvYWRlZCBrZXJuZWw6IGZmZmZmZmZmODEwMDAwMDAtPmZmZmZmZmZmODQw
MDAwMDAKKFhFTikgIEluaXQuIHJhbWRpc2s6IDAwMDAwMDAwMDAwMDAwMDAtPjAwMDAwMDAwMDAw
MDAwMDAKKFhFTikgIFBoeXMtTWFjaCBtYXA6IDAwMDAwMDgwMDAwMDAwMDAtPjAwMDAwMDgwMDA4
MDAwMDAKKFhFTikgIFN0YXJ0IGluZm86ICAgIGZmZmZmZmZmODQwMDAwMDAtPmZmZmZmZmZmODQw
MDA0YjgKKFhFTikgIFhlbnN0b3JlIHJpbmc6IDAwMDAwMDAwMDAwMDAwMDAtPjAwMDAwMDAwMDAw
MDAwMDAKKFhFTikgIENvbnNvbGUgcmluZzogIDAwMDAwMDAwMDAwMDAwMDAtPjAwMDAwMDAwMDAw
MDAwMDAKKFhFTikgIFBhZ2UgdGFibGVzOiAgIGZmZmZmZmZmODQwMDEwMDAtPmZmZmZmZmZmODQw
MjYwMDAKKFhFTikgIEJvb3Qgc3RhY2s6ICAgIGZmZmZmZmZmODQwMjYwMDAtPmZmZmZmZmZmODQw
MjcwMDAKKFhFTikgIFRPVEFMOiAgICAgICAgIGZmZmZmZmZmODAwMDAwMDAtPmZmZmZmZmZmODQ0
MDAwMDAKKFhFTikgIEVOVFJZIEFERFJFU1M6IGZmZmZmZmZmODMwZmUxYzAKKFhFTikgRG9tMCBo
YXMgbWF4aW11bSAxMiBWQ1BVcwooWEVOKSBJbml0aWFsIGxvdyBtZW1vcnkgdmlycSB0aHJlc2hv
bGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4KKFhFTikgU2NydWJiaW5nIEZyZWUgUkFNIGluIGJhY2tn
cm91bmQKKFhFTikgU3RkLiBMb2dsZXZlbDogRXJyb3JzIGFuZCB3YXJuaW5ncwooWEVOKSBHdWVz
dCBMb2dsZXZlbDogTm90aGluZyAoUmF0ZS1saW1pdGVkOiBFcnJvcnMgYW5kIHdhcm5pbmdzKQoo
WEVOKSAqKiogU2VyaWFsIGlucHV0IHRvIERPTTAgKHR5cGUgJ0NUUkwtYScgdGhyZWUgdGltZXMg
dG8gc3dpdGNoIGlucHV0KQooWEVOKSBGcmVlZCA2MDBrQiBpbml0IG1lbW9yeQoKJHN1ZG8gZG1l
c2cKWyAgICAwLjAwMDAwMF0gTGludXggdmVyc2lvbiA1LjE1Ljk0LTEucXViZXMuZmMzMi54ODZf
NjQgKG1vY2tidWlsZEA3ODk5MDVjMDllMGM0Mzk0YWZhNDU4NTNjZWJlOWZiMikgKGdjYyAoR0ND
KSAxMC4zLjEgMjAyMTA0MjIgKFJlZCBIYXQgMTAuMy4xLTEpLCBHTlUgbGQgdmVyc2lvbiAyLjM0
LTYuZmMzMikgIzEgU01QIFN1biBGZWIgMTkgMDc6MTg6NDYgQ0VUIDIwMjMKWyAgICAwLjAwMDAw
MF0gQ29tbWFuZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVVSUQ9OWI4MGI5YzktNWE2My00OGY2
LThmZmYtZGNkYmMyMDFiMWRkIHJvIHJkLmx1a3MudXVpZD1sdWtzLTM2OTliZmQ5LWI2N2UtNDFh
Mi04M2VlLWMyYjU2ZmJhZTFhMiBwbHltb3V0aC5pZ25vcmUtc2VyaWFsLWNvbnNvbGVzIHJkLmRy
aXZlci5wcmU9YnRyZnMgcmhnYiBxdWlldCB1c2Jjb3JlLmF1dGhvcml6ZWRfZGVmYXVsdD0wClsg
ICAgMC4wMDAwMDBdIHg4Ni9mcHU6IFN1cHBvcnRpbmcgWFNBVkUgZmVhdHVyZSAweDAwMTogJ3g4
NyBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMnClsgICAgMC4wMDAwMDBdIHg4Ni9mcHU6IFN1cHBv
cnRpbmcgWFNBVkUgZmVhdHVyZSAweDAwMjogJ1NTRSByZWdpc3RlcnMnClsgICAgMC4wMDAwMDBd
IHg4Ni9mcHU6IFN1cHBvcnRpbmcgWFNBVkUgZmVhdHVyZSAweDAwNDogJ0FWWCByZWdpc3RlcnMn
ClsgICAgMC4wMDAwMDBdIHg4Ni9mcHU6IHhzdGF0ZV9vZmZzZXRbMl06ICA1NzYsIHhzdGF0ZV9z
aXplc1syXTogIDI1NgpbICAgIDAuMDAwMDAwXSB4ODYvZnB1OiBFbmFibGVkIHhzdGF0ZSBmZWF0
dXJlcyAweDcsIGNvbnRleHQgc2l6ZSBpcyA4MzIgYnl0ZXMsIHVzaW5nICdzdGFuZGFyZCcgZm9y
bWF0LgpbICAgIDAuMDAwMDAwXSBzaWduYWw6IG1heCBzaWdmcmFtZSBzaXplOiAxNzc2ClsgICAg
MC4wMDAwMDBdIFJlbGVhc2VkIDAgcGFnZShzKQpbICAgIDAuMDAwMDAwXSBCSU9TLXByb3ZpZGVk
IHBoeXNpY2FsIFJBTSBtYXA6ClsgICAgMC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwMDAw
MDAwMDAtMHgwMDAwMDAwMDAwMDllZmZmXSB1c2FibGUKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVt
IDB4MDAwMDAwMDAwMDA5ZjAwMC0weDAwMDAwMDAwMDAwZmZmZmZdIHJlc2VydmVkClsgICAgMC4w
MDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwMDAxMDAwMDAtMHgwMDAwMDAwMDg4ZDU3ZmZmXSB1
c2FibGUKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDA4OGQ1ODAwMC0weDAwMDAw
MDAwODk2NTdmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAw
ODk2NTgwMDAtMHgwMDAwMDAwMDk3ODZkZmZmXSB1c2FibGUKWyAgICAwLjAwMDAwMF0gWGVuOiBb
bWVtIDB4MDAwMDAwMDA5Nzg2ZTAwMC0weDAwMDAwMDAwOThkNmRmZmZdIHJlc2VydmVkClsgICAg
MC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwOThkNmUwMDAtMHgwMDAwMDAwMDk5YmNkZmZm
XSBBQ1BJIE5WUwpbICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMDk5YmNlMDAwLTB4
MDAwMDAwMDA5OWM0ZGZmZl0gQUNQSSBkYXRhClsgICAgMC4wMDAwMDBdIFhlbjogW21lbSAweDAw
MDAwMDAwOTljNGUwMDAtMHgwMDAwMDAwMDk5YzRlZmZmXSB1c2FibGUKWyAgICAwLjAwMDAwMF0g
WGVuOiBbbWVtIDB4MDAwMDAwMDA5OWM0ZjAwMC0weDAwMDAwMDAwOWY3ZmZmZmZdIHJlc2VydmVk
ClsgICAgMC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwZTAwMDAwMDAtMHgwMDAwMDAwMGVm
ZmZmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMGZlMDAw
MDAwLTB4MDAwMDAwMDBmZTAxMGZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVt
IDB4MDAwMDAwMDBmZWMwMDAwMC0weDAwMDAwMDAwZmVjMDBmZmZdIHJlc2VydmVkClsgICAgMC4w
MDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwZmVkMTAwMDAtMHgwMDAwMDAwMGZlZDE5ZmZmXSBy
ZXNlcnZlZApbICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMGZlZDg0MDAwLTB4MDAw
MDAwMDBmZWQ4NGZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAw
MDBmZWQ5MDAwMC0weDAwMDAwMDAwZmVkOTFmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIFhl
bjogW21lbSAweDAwMDAwMDAwZmVlMDAwMDAtMHgwMDAwMDAwMGZlZWZmZmZmXSByZXNlcnZlZApb
ICAgIDAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMGZmMzAwMDAwLTB4MDAwMDAwMDBmZmZm
ZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDEwMDAwMDAw
MC0weDAwMDAwMDAxNjkwZjFmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBOWCAoRXhlY3V0ZSBE
aXNhYmxlKSBwcm90ZWN0aW9uOiBhY3RpdmUKWyAgICAwLjAwMDAwMF0gZWZpOiBFRkkgdjIuNzAg
YnkgSU5TWURFIENvcnAuClsgICAgMC4wMDAwMDBdIGVmaTogQUNQST0weDk5YzRkMDAwIEFDUEkg
Mi4wPTB4OTljNGQwMTQgVFBNRmluYWxMb2c9MHg5OWI1OTAwMCBFU1JUPTB4OTdkZTEwMTggU01C
SU9TPTB4OTdkZTAwMDAgU01CSU9TIDMuMD0weDk3ZGRlMDAwClsgICAgMC4wMDAwMDBdIFNNQklP
UyAzLjIuMCBwcmVzZW50LgpbICAgIDAuMDAwMDAwXSBETUk6IEFjZXIgUHJlZGF0b3IgUEgzMTUt
NTMvUVg1MF9DTVMsIEJJT1MgVjIuMDQgMDgvMjAvMjAyMQpbICAgIDAuMDAwMDAwXSBIeXBlcnZp
c29yIGRldGVjdGVkOiBYZW4gUFYKWyAgICAwLjAwMDUzMV0gdHNjOiBEZXRlY3RlZCAyNTkyLjAy
MCBNSHogcHJvY2Vzc29yClsgICAgMC4wMDA1NDNdIGU4MjA6IHVwZGF0ZSBbbWVtIDB4MDAwMDAw
MDAtMHgwMDAwMGZmZl0gdXNhYmxlID09PiByZXNlcnZlZApbICAgIDAuMDAwNTQ2XSBlODIwOiBy
ZW1vdmUgW21lbSAweDAwMGEwMDAwLTB4MDAwZmZmZmZdIHVzYWJsZQpbICAgIDAuMDAwNTUzXSBs
YXN0X3BmbiA9IDB4MTY5MGYyIG1heF9hcmNoX3BmbiA9IDB4NDAwMDAwMDAwClsgICAgMC4wMDA1
NTRdIERpc2FibGVkClsgICAgMC4wMDA1NTVdIHg4Ni9QQVQ6IE1UUlJzIGRpc2FibGVkLCBza2lw
cGluZyBQQVQgaW5pdGlhbGl6YXRpb24gdG9vLgpbICAgIDAuMDAwNTU4XSB4ODYvUEFUOiBDb25m
aWd1cmF0aW9uIFswLTddOiBXQiAgV0MgIFVDLSBVQyAgV0IgIFdQICBVQy0gV1QKWyAgICAwLjAw
MDU1OV0gbGFzdF9wZm4gPSAweDk5YzRmIG1heF9hcmNoX3BmbiA9IDB4NDAwMDAwMDAwClsgICAg
MC40OTQ0NzRdIFNlY3VyZSBib290IGRpc2FibGVkClsgICAgMC40OTQ0NzZdIFJBTURJU0s6IFtt
ZW0gMHgwODAwMDAwMC0weDA5ZmZjZmZmXQpbICAgIDAuNDk0NDgwXSBBQ1BJOiBFYXJseSB0YWJs
ZSBjaGVja3N1bSB2ZXJpZmljYXRpb24gZGlzYWJsZWQKWyAgICAwLjQ5NDQ4NV0gQUNQSTogUlNE
UCAweDAwMDAwMDAwOTlDNEQwMTQgMDAwMDI0ICh2MDIgQUNSU1lTKQpbICAgIDAuNDk0NDkxXSBB
Q1BJOiBYU0RUIDB4MDAwMDAwMDA5OUMyNTE4OCAwMDAxMUMgKHYwMSBBQ1JTWVMgQUNSUFJEQ1Qg
MDAwMDAwMDIgICAgICAwMTAwMDAxMykKWyAgICAwLjQ5NDUyNF0gQUNQSTogRkFDUCAweDAwMDAw
MDAwOTlDMjQwMDAgMDAwMTBDICh2MDUgQUNSU1lTIEFDUlBSRENUIDAwMDAwMDAyIDEwMjUgMDAw
NDAwMDApClsgICAgMC40OTQ1ODZdIEFDUEk6IERTRFQgMHgwMDAwMDAwMDk5QkRCMDAwIDA0NTJG
MSAodjAyIEFDUlNZUyBBQ1JQUkRDVCAwMDAwMDAwMiAxMDI1IDAwMDQwMDAwKQpbICAgIDAuNDk0
NTkzXSBBQ1BJOiBGQUNTIDB4MDAwMDAwMDA5OUI0NDAwMCAwMDAwNDAKWyAgICAwLjQ5NDYwMl0g
QUNQSTogVUVGSSAweDAwMDAwMDAwOTlCQ0QwMDAgMDAwMjM2ICh2MDEgQUNSU1lTIEFDUlBSRENU
IDAwMDAwMDAxIDEwMjUgMDAwNDAwMDApClsgICAgMC40OTQ2MTBdIEFDUEk6IFNTRFQgMHgwMDAw
MDAwMDk5QzQ3MDAwIDAwNDk3RSAodjAyIEFDUlNZUyBBQ1JQUkRDVCAwMDAwMTAwMCAxMDI1IDAw
MDQwMDAwKQpbICAgIDAuNDk0NjE4XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUM0NjAwMCAwMDAx
MDAgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDMwMDAgMTAyNSAwMDA0MDAwMCkKWyAgICAwLjQ5
NDYyN10gQUNQSTogU1NEVCAweDAwMDAwMDAwOTlDNDUwMDAgMDAwODM0ICh2MDIgQUNSU1lTIEFD
UlBSRENUIDAwMDAzMDAwIDEwMjUgMDAwNDAwMDApClsgICAgMC40OTQ2MzVdIEFDUEk6IFNTRFQg
MHgwMDAwMDAwMDk5QzQyMDAwIDAwMjBBRCAodjAyIEFDUlNZUyBBQ1JQUkRDVCAwMDAwMzAwMCAx
MDI1IDAwMDQwMDAwKQpbICAgIDAuNDk0NjQzXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUMzRTAw
MCAwMDMxREEgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDMwMDAgMTAyNSAwMDA0MDAwMCkKWyAg
ICAwLjQ5NDY1Ml0gQUNQSTogU1NEVCAweDAwMDAwMDAwOTlDM0IwMDAgMDAyQzQ4ICh2MDIgQUNS
U1lTIEFDUlBSRENUIDAwMDAxMDAwIDEwMjUgMDAwNDAwMDApClsgICAgMC40OTQ2NjBdIEFDUEk6
IFNTRFQgMHgwMDAwMDAwMDk5QzNBMDAwIDAwMDQ1QSAodjAyIEFDUlNZUyBBQ1JQUkRDVCAwMDAw
MTAwMCAxMDI1IDAwMDQwMDAwKQpbICAgIDAuNDk0NjY4XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5
OUMzOTAwMCAwMDAwNDYgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDMwMDAgMTAyNSAwMDA0MDAw
MCkKWyAgICAwLjQ5NDY3OF0gQUNQSTogVFBNMiAweDAwMDAwMDAwOTlDMzgwMDAgMDAwMDM0ICh2
MDMgQUNSU1lTIEFDUlBSRENUIDAwMDAwMDAyIDEwMjUgMDAwNDAwMDApClsgICAgMC40OTQ2ODZd
IEFDUEk6IExQSVQgMHgwMDAwMDAwMDk5QzM3MDAwIDAwMDA5NCAodjAxIEFDUlNZUyBBQ1JQUkRD
VCAwMDAwMDAwMiAxMDI1IDAwMDQwMDAwKQpbICAgIDAuNDk0Njk1XSBBQ1BJOiBXU01UIDB4MDAw
MDAwMDA5OUMzNjAwMCAwMDAwMjggKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIgMTAyNSAw
MDA0MDAwMCkKWyAgICAwLjQ5NDcwNF0gQUNQSTogU1NEVCAweDAwMDAwMDAwOTlDMzUwMDAgMDAw
QjcwICh2MDIgQUNSU1lTIEFDUlBSRENUIDAwMDAxMDAwIDEwMjUgMDAwNDAwMDApClsgICAgMC40
OTQ3MTJdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDk5QzMyMDAwIDAwMjU2RiAodjAyIEFDUlNZUyBB
Q1JQUkRDVCAwMDAwMDAwMCAxMDI1IDAwMDQwMDAwKQpbICAgIDAuNDk0NzIwXSBBQ1BJOiBEQkdQ
IDB4MDAwMDAwMDA5OUMzMTAwMCAwMDAwMzQgKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIg
MTAyNSAwMDA0MDAwMCkKWyAgICAwLjQ5NDcyOF0gQUNQSTogREJHMiAweDAwMDAwMDAwOTlDMzAw
MDAgMDAwMDVDICh2MDAgQUNSU1lTIEFDUlBSRENUIDAwMDAwMDAyIDEwMjUgMDAwNDAwMDApClsg
ICAgMC40OTQ3MzddIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDk5QzJGMDAwIDAwMEI5RiAodjAyIEFD
UlNZUyBBQ1JQUkRDVCAwMDAwMTAwMCAxMDI1IDAwMDQwMDAwKQpbICAgIDAuNDk0NzQ1XSBBQ1BJ
OiBNU0RNIDB4MDAwMDAwMDA5OUMyRTAwMCAwMDAwNTUgKHYwMyBBQ1JTWVMgQUNSUFJEQ1QgMDAw
MDAwMDEgMTAyNSAwMDA0MDAwMCkKWyAgICAwLjQ5NDc1M10gQUNQSTogU1NEVCAweDAwMDAwMDAw
OTlDMjYwMDAgMDA3NTY4ICh2MDEgQUNSU1lTIEFDUlBSRENUIDAwMDAxMDAwIDEwMjUgMDAwNDAw
MDApClsgICAgMC40OTQ3NjJdIEFDUEk6IE5ITFQgMHgwMDAwMDAwMDk5QzRDMDAwIDAwMDJERiAo
djAwIEFDUlNZUyBBQ1JQUkRDVCAwMDAwMDAwMiAxMDI1IDAwMDQwMDAwKQpbICAgIDAuNDk0Nzcw
XSBBQ1BJOiBIUEVUIDB4MDAwMDAwMDA5OUMyMzAwMCAwMDAwMzggKHYwMSBBQ1JTWVMgQUNSUFJE
Q1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkKWyAgICAwLjQ5NDc3OF0gQUNQSTogQVBJQyAweDAw
MDAwMDAwOTlDMjIwMDAgMDAwMTY0ICh2MDMgQUNSU1lTIEFDUlBSRENUIDAwMDAwMDAyIDEwMjUg
MDAwNDAwMDApClsgICAgMC40OTQ3ODZdIEFDUEk6IE1DRkcgMHgwMDAwMDAwMDk5QzIxMDAwIDAw
MDAzQyAodjAxIEFDUlNZUyBBQ1JQUkRDVCAwMDAwMDAwMiAxMDI1IDAwMDQwMDAwKQpbICAgIDAu
NDk0Nzk2XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUJEQTAwMCAwMDAxQzQgKHYwMiBBQ1JTWVMg
QUNSUFJEQ1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkKWyAgICAwLjQ5NDgwNF0gQUNQSTogU1NE
VCAweDAwMDAwMDAwOTlCRDYwMDAgMDAyRkVFICh2MDEgQUNSU1lTIEFDUlBSRENUIDAwMDAxMDAw
IDEwMjUgMDAwNDAwMDApClsgICAgMC40OTQ4MTNdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMDk5QkQ1
MDAwIDAwMDE2MSAodjAyIEFDUlNZUyBBQ1JQUkRDVCAwMDAwMTAwMCAxMDI1IDAwMDQwMDAwKQpb
ICAgIDAuNDk0ODIxXSBBQ1BJOiBSTUFEIDB4MDAwMDAwMDA5OUJEOTAwMCAwMDAwQTggKHYwMSBB
Q1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkKWyAgICAwLjQ5NDgyOV0gQUNQ
STogU1NEVCAweDAwMDAwMDAwOTlCRDQwMDAgMDAwMTY0ICh2MDEgQUNSU1lTIEFDUlBSRENUIDAw
MDAxMDAwIDEwMjUgMDAwNDAwMDApClsgICAgMC40OTQ4MzhdIEFDUEk6IEZQRFQgMHgwMDAwMDAw
MDk5QkQyMDAwIDAwMDA0NCAodjAxIEFDUlNZUyBBQ1JQUkRDVCAwMDAwMDAwMiAxMDI1IDAwMDQw
MDAwKQpbICAgIDAuNDk0ODQ2XSBBQ1BJOiBCR1JUIDB4MDAwMDAwMDA5OUJEMzAwMCAwMDAwMzgg
KHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDEgMTAyNSAwMDA0MDAwMCkKWyAgICAwLjQ5NDg1
MF0gQUNQSTogUmVzZXJ2aW5nIEZBQ1AgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWMyNDAwMC0w
eDk5YzI0MTBiXQpbICAgIDAuNDk0ODUyXSBBQ1BJOiBSZXNlcnZpbmcgRFNEVCB0YWJsZSBtZW1v
cnkgYXQgW21lbSAweDk5YmRiMDAwLTB4OTljMjAyZjBdClsgICAgMC40OTQ4NTNdIEFDUEk6IFJl
c2VydmluZyBGQUNTIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTliNDQwMDAtMHg5OWI0NDAzZl0K
WyAgICAwLjQ5NDg1NF0gQUNQSTogUmVzZXJ2aW5nIFVFRkkgdGFibGUgbWVtb3J5IGF0IFttZW0g
MHg5OWJjZDAwMC0weDk5YmNkMjM1XQpbICAgIDAuNDk0ODU1XSBBQ1BJOiBSZXNlcnZpbmcgU1NE
VCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzQ3MDAwLTB4OTljNGI5N2RdClsgICAgMC40OTQ4
NTZdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTljNDYwMDAt
MHg5OWM0NjBmZl0KWyAgICAwLjQ5NDg1Nl0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVt
b3J5IGF0IFttZW0gMHg5OWM0NTAwMC0weDk5YzQ1ODMzXQpbICAgIDAuNDk0ODU3XSBBQ1BJOiBS
ZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzQyMDAwLTB4OTljNDQwYWNd
ClsgICAgMC40OTQ4NThdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVt
IDB4OTljM2UwMDAtMHg5OWM0MTFkOV0KWyAgICAwLjQ5NDg1OF0gQUNQSTogUmVzZXJ2aW5nIFNT
RFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWMzYjAwMC0weDk5YzNkYzQ3XQpbICAgIDAuNDk0
ODU5XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzNhMDAw
LTB4OTljM2E0NTldClsgICAgMC40OTQ4NjBdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1l
bW9yeSBhdCBbbWVtIDB4OTljMzkwMDAtMHg5OWMzOTA0NV0KWyAgICAwLjQ5NDg2MF0gQUNQSTog
UmVzZXJ2aW5nIFRQTTIgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWMzODAwMC0weDk5YzM4MDMz
XQpbICAgIDAuNDk0ODYxXSBBQ1BJOiBSZXNlcnZpbmcgTFBJVCB0YWJsZSBtZW1vcnkgYXQgW21l
bSAweDk5YzM3MDAwLTB4OTljMzcwOTNdClsgICAgMC40OTQ4NjJdIEFDUEk6IFJlc2VydmluZyBX
U01UIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTljMzYwMDAtMHg5OWMzNjAyN10KWyAgICAwLjQ5
NDg2Ml0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWMzNTAw
MC0weDk5YzM1YjZmXQpbICAgIDAuNDk0ODYzXSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBt
ZW1vcnkgYXQgW21lbSAweDk5YzMyMDAwLTB4OTljMzQ1NmVdClsgICAgMC40OTQ4NjRdIEFDUEk6
IFJlc2VydmluZyBEQkdQIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTljMzEwMDAtMHg5OWMzMTAz
M10KWyAgICAwLjQ5NDg2NF0gQUNQSTogUmVzZXJ2aW5nIERCRzIgdGFibGUgbWVtb3J5IGF0IFtt
ZW0gMHg5OWMzMDAwMC0weDk5YzMwMDViXQpbICAgIDAuNDk0ODY1XSBBQ1BJOiBSZXNlcnZpbmcg
U1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzJmMDAwLTB4OTljMmZiOWVdClsgICAgMC40
OTQ4NjZdIEFDUEk6IFJlc2VydmluZyBNU0RNIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTljMmUw
MDAtMHg5OWMyZTA1NF0KWyAgICAwLjQ5NDg2Nl0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUg
bWVtb3J5IGF0IFttZW0gMHg5OWMyNjAwMC0weDk5YzJkNTY3XQpbICAgIDAuNDk0ODY3XSBBQ1BJ
OiBSZXNlcnZpbmcgTkhMVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzRjMDAwLTB4OTljNGMy
ZGVdClsgICAgMC40OTQ4NjhdIEFDUEk6IFJlc2VydmluZyBIUEVUIHRhYmxlIG1lbW9yeSBhdCBb
bWVtIDB4OTljMjMwMDAtMHg5OWMyMzAzN10KWyAgICAwLjQ5NDg2OV0gQUNQSTogUmVzZXJ2aW5n
IEFQSUMgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWMyMjAwMC0weDk5YzIyMTYzXQpbICAgIDAu
NDk0ODY5XSBBQ1BJOiBSZXNlcnZpbmcgTUNGRyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzIx
MDAwLTB4OTljMjEwM2JdClsgICAgMC40OTQ4NzBdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxl
IG1lbW9yeSBhdCBbbWVtIDB4OTliZGEwMDAtMHg5OWJkYTFjM10KWyAgICAwLjQ5NDg3MV0gQUNQ
STogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWJkNjAwMC0weDk5YmQ4
ZmVkXQpbICAgIDAuNDk0ODcyXSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQg
W21lbSAweDk5YmQ1MDAwLTB4OTliZDUxNjBdClsgICAgMC40OTQ4NzJdIEFDUEk6IFJlc2Vydmlu
ZyBSTUFEIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTliZDkwMDAtMHg5OWJkOTBhN10KWyAgICAw
LjQ5NDg3M10gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWJk
NDAwMC0weDk5YmQ0MTYzXQpbICAgIDAuNDk0ODc0XSBBQ1BJOiBSZXNlcnZpbmcgRlBEVCB0YWJs
ZSBtZW1vcnkgYXQgW21lbSAweDk5YmQyMDAwLTB4OTliZDIwNDNdClsgICAgMC40OTQ4NzRdIEFD
UEk6IFJlc2VydmluZyBCR1JUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTliZDMwMDAtMHg5OWJk
MzAzN10KWyAgICAwLjQ5NDg5OV0gU2V0dGluZyBBUElDIHJvdXRpbmcgdG8gWGVuIFBWLgpbICAg
IDAuNDk0OTI3XSBOVU1BIHR1cm5lZCBvZmYKWyAgICAwLjQ5NDkyOF0gRmFraW5nIGEgbm9kZSBh
dCBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDAxNjkwZjFmZmZdClsgICAgMC40OTQ5
MzddIE5PREVfREFUQSgwKSBhbGxvY2F0ZWQgW21lbSAweDk3MDZmMDAwLTB4OTcwOTlmZmZdClsg
ICAgMC41MTEwMTFdIFpvbmUgcmFuZ2VzOgpbICAgIDAuNTExMDEzXSAgIERNQSAgICAgIFttZW0g
MHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDAwMGZmZmZmZl0KWyAgICAwLjUxMTAxNV0gICBE
TUEzMiAgICBbbWVtIDB4MDAwMDAwMDAwMTAwMDAwMC0weDAwMDAwMDAwZmZmZmZmZmZdClsgICAg
MC41MTEwMTZdICAgTm9ybWFsICAgW21lbSAweDAwMDAwMDAxMDAwMDAwMDAtMHgwMDAwMDAwMTY5
MGYxZmZmXQpbICAgIDAuNTExMDE4XSAgIERldmljZSAgIGVtcHR5ClsgICAgMC41MTEwMThdIE1v
dmFibGUgem9uZSBzdGFydCBmb3IgZWFjaCBub2RlClsgICAgMC41MTEwMjBdIEVhcmx5IG1lbW9y
eSBub2RlIHJhbmdlcwpbICAgIDAuNTExMDIxXSAgIG5vZGUgICAwOiBbbWVtIDB4MDAwMDAwMDAw
MDAwMTAwMC0weDAwMDAwMDAwMDAwOWVmZmZdClsgICAgMC41MTEwMjJdICAgbm9kZSAgIDA6IFtt
ZW0gMHgwMDAwMDAwMDAwMTAwMDAwLTB4MDAwMDAwMDA4OGQ1N2ZmZl0KWyAgICAwLjUxMTAyM10g
ICBub2RlICAgMDogW21lbSAweDAwMDAwMDAwODk2NTgwMDAtMHgwMDAwMDAwMDk3ODZkZmZmXQpb
ICAgIDAuNTExMDI0XSAgIG5vZGUgICAwOiBbbWVtIDB4MDAwMDAwMDA5OWM0ZTAwMC0weDAwMDAw
MDAwOTljNGVmZmZdClsgICAgMC41MTEwMjRdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMTAw
MDAwMDAwLTB4MDAwMDAwMDE2OTBmMWZmZl0KWyAgICAwLjUxMTAyNl0gSW5pdG1lbSBzZXR1cCBu
b2RlIDAgW21lbSAweDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwMTY5MGYxZmZmXQpbICAgIDAu
NTExMDI5XSBPbiBub2RlIDAsIHpvbmUgRE1BOiAxIHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdl
cwpbICAgIDAuNTExMDU0XSBPbiBub2RlIDAsIHpvbmUgRE1BOiA5NyBwYWdlcyBpbiB1bmF2YWls
YWJsZSByYW5nZXMKWyAgICAwLjUxNDkyNF0gT24gbm9kZSAwLCB6b25lIERNQTMyOiAyMzA0IHBh
Z2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuNTE1MDE4XSBPbiBub2RlIDAsIHpvbmUg
RE1BMzI6IDkxODQgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzClsgICAgMC41MTc5OTVdIE9u
IG5vZGUgMCwgem9uZSBOb3JtYWw6IDI1NTIxIHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpb
ICAgIDAuNTE4MjYzXSBPbiBub2RlIDAsIHpvbmUgTm9ybWFsOiAyODQzMCBwYWdlcyBpbiB1bmF2
YWlsYWJsZSByYW5nZXMKWyAgICAwLjUxODI2NF0gcDJtIHZpcnR1YWwgYXJlYSBhdCAoX19fX3B0
cnZhbF9fX18pLCBzaXplIGlzIDQwMDAwMDAwClsgICAgMS4wMjcwMDRdIFJlbWFwcGVkIDQzMDMy
MiBwYWdlKHMpClsgICAgMS4wMjcxMzJdIFJlc2VydmluZyBJbnRlbCBncmFwaGljcyBtZW1vcnkg
YXQgW21lbSAweDliODAwMDAwLTB4OWY3ZmZmZmZdClsgICAgMS4wMjc5NDVdIEFDUEk6IFBNLVRp
bWVyIElPIFBvcnQ6IDB4MTgwOApbICAgIDEuMDI3OTk0XSBBQ1BJOiBMQVBJQ19OTUkgKGFjcGlf
aWRbMHgwMV0gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAxLjAyNzk5N10gQUNQSTogTEFQSUNf
Tk1JIChhY3BpX2lkWzB4MDJdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAgMS4wMjgwMDJdIEFD
UEk6IExBUElDX05NSSAoYWNwaV9pZFsweDAzXSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDEu
MDI4MDA0XSBBQ1BJOiBMQVBJQ19OTUkgKGFjcGlfaWRbMHgwNF0gaGlnaCBlZGdlIGxpbnRbMHgx
XSkKWyAgICAxLjAyODAwNl0gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4MDVdIGhpZ2ggZWRn
ZSBsaW50WzB4MV0pClsgICAgMS4wMjgwMDddIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDA2
XSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDEuMDI4MDA4XSBBQ1BJOiBMQVBJQ19OTUkgKGFj
cGlfaWRbMHgwN10gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAxLjAyODAxMF0gQUNQSTogTEFQ
SUNfTk1JIChhY3BpX2lkWzB4MDhdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAgMS4wMjgwMTFd
IEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDA5XSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAg
IDEuMDI4MDEyXSBBQ1BJOiBMQVBJQ19OTUkgKGFjcGlfaWRbMHgwYV0gaGlnaCBlZGdlIGxpbnRb
MHgxXSkKWyAgICAxLjAyODAxM10gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4MGJdIGhpZ2gg
ZWRnZSBsaW50WzB4MV0pClsgICAgMS4wMjgwMTVdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsw
eDBjXSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDEuMDI4MDE2XSBBQ1BJOiBMQVBJQ19OTUkg
KGFjcGlfaWRbMHgwZF0gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAxLjAyODAxN10gQUNQSTog
TEFQSUNfTk1JIChhY3BpX2lkWzB4MGVdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAgMS4wMjgw
MThdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDBmXSBoaWdoIGVkZ2UgbGludFsweDFdKQpb
ICAgIDEuMDI4MDE5XSBBQ1BJOiBMQVBJQ19OTUkgKGFjcGlfaWRbMHgxMF0gaGlnaCBlZGdlIGxp
bnRbMHgxXSkKWyAgICAxLjAyODAyMV0gQUNQSTogTEFQSUNfTk1JIChhY3BpX2lkWzB4MTFdIGhp
Z2ggZWRnZSBsaW50WzB4MV0pClsgICAgMS4wMjgwMjJdIEFDUEk6IExBUElDX05NSSAoYWNwaV9p
ZFsweDEyXSBoaWdoIGVkZ2UgbGludFsweDFdKQpbICAgIDEuMDI4MDIzXSBBQ1BJOiBMQVBJQ19O
TUkgKGFjcGlfaWRbMHgxM10gaGlnaCBlZGdlIGxpbnRbMHgxXSkKWyAgICAxLjAyODAyNF0gQUNQ
STogTEFQSUNfTk1JIChhY3BpX2lkWzB4MTRdIGhpZ2ggZWRnZSBsaW50WzB4MV0pClsgICAgMS4w
MjgwOTFdIElPQVBJQ1swXTogYXBpY19pZCAyLCB2ZXJzaW9uIDMyLCBhZGRyZXNzIDB4ZmVjMDAw
MDAsIEdTSSAwLTExOQpbICAgIDEuMDI4MTAzXSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVz
X2lycSAwIGdsb2JhbF9pcnEgMiBkZmwgZGZsKQpbICAgIDEuMDI4MTA2XSBBQ1BJOiBJTlRfU1JD
X09WUiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBoaWdoIGxldmVsKQpbICAgIDEuMDI4
MTMwXSBBQ1BJOiBVc2luZyBBQ1BJIChNQURUKSBmb3IgU01QIGNvbmZpZ3VyYXRpb24gaW5mb3Jt
YXRpb24KWyAgICAxLjAyODEzMl0gQUNQSTogSFBFVCBpZDogMHg4MDg2YTIwMSBiYXNlOiAweGZl
ZDAwMDAwClsgICAgMS4wMzA0MzZdIHNtcGJvb3Q6IEFsbG93aW5nIDEyIENQVXMsIDAgaG90cGx1
ZyBDUFVzClsgICAgMS4wMzA0NTVdIFttZW0gMHg5ZjgwMDAwMC0weGRmZmZmZmZmXSBhdmFpbGFi
bGUgZm9yIFBDSSBkZXZpY2VzClsgICAgMS4wMzA0NTddIEJvb3Rpbmcga2VybmVsIG9uIFhlbgpb
ICAgIDEuMDMwNDU4XSBYZW4gdmVyc2lvbjogNC4xNC41IChwcmVzZXJ2ZS1BRCkKWyAgICAxLjAz
MDQ2MF0gY2xvY2tzb3VyY2U6IHJlZmluZWQtamlmZmllczogbWFzazogMHhmZmZmZmZmZiBtYXhf
Y3ljbGVzOiAweGZmZmZmZmZmLCBtYXhfaWRsZV9uczogMTkxMDk2OTk0MDM5MTQxOSBucwpbICAg
IDEuMDM0NDIxXSBzZXR1cF9wZXJjcHU6IE5SX0NQVVM6ODE5MiBucl9jcHVtYXNrX2JpdHM6MTIg
bnJfY3B1X2lkczoxMiBucl9ub2RlX2lkczoxClsgICAgMS4wMzQ2NTBdIHBlcmNwdTogRW1iZWRk
ZWQgNjEgcGFnZXMvY3B1IHMyMTI5OTIgcjgxOTIgZDI4NjcyIHUyNjIxNDQKWyAgICAxLjAzNDY1
Nl0gcGNwdS1hbGxvYzogczIxMjk5MiByODE5MiBkMjg2NzIgdTI2MjE0NCBhbGxvYz0xKjIwOTcx
NTIKWyAgICAxLjAzNDY1OV0gcGNwdS1hbGxvYzogWzBdIDAwIDAxIDAyIDAzIDA0IDA1IDA2IDA3
IFswXSAwOCAwOSAxMCAxMSAtLSAtLSAtLSAtLQpbICAgIDEuMDM0NzA2XSB4ZW46IFBWIHNwaW5s
b2NrcyBlbmFibGVkClsgICAgMS4wMzQ3MTBdIFBWIHFzcGlubG9jayBoYXNoIHRhYmxlIGVudHJp
ZXM6IDI1NiAob3JkZXI6IDAsIDQwOTYgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjAzNDcxNV0gQnVp
bHQgMSB6b25lbGlzdHMsIG1vYmlsaXR5IGdyb3VwaW5nIG9uLiAgVG90YWwgcGFnZXM6IDEwMzIw
MzEKWyAgICAxLjAzNDcxNl0gUG9saWN5IHpvbmU6IE5vcm1hbApbICAgIDEuMDM0NzE3XSBLZXJu
ZWwgY29tbWFuZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVVSUQ9OWI4MGI5YzktNWE2My00OGY2
LThmZmYtZGNkYmMyMDFiMWRkIHJvIHJkLmx1a3MudXVpZD1sdWtzLTM2OTliZmQ5LWI2N2UtNDFh
Mi04M2VlLWMyYjU2ZmJhZTFhMiBwbHltb3V0aC5pZ25vcmUtc2VyaWFsLWNvbnNvbGVzIHJkLmRy
aXZlci5wcmU9YnRyZnMgcmhnYiBxdWlldCB1c2Jjb3JlLmF1dGhvcml6ZWRfZGVmYXVsdD0wClsg
ICAgMS4wMzQ4MDRdIFVua25vd24ga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzICJwbGFj
ZWhvbGRlciByaGdiIiwgd2lsbCBiZSBwYXNzZWQgdG8gdXNlciBzcGFjZS4KWyAgICAxLjAzNDk1
M10gRGVudHJ5IGNhY2hlIGhhc2ggdGFibGUgZW50cmllczogNTI0Mjg4IChvcmRlcjogMTAsIDQx
OTQzMDQgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjAzNTAyMl0gSW5vZGUtY2FjaGUgaGFzaCB0YWJs
ZSBlbnRyaWVzOiAyNjIxNDQgKG9yZGVyOiA5LCAyMDk3MTUyIGJ5dGVzLCBsaW5lYXIpClsgICAg
MS4wMzU3MjJdIG1lbSBhdXRvLWluaXQ6IHN0YWNrOmJ5cmVmX2FsbCh6ZXJvKSwgaGVhcCBhbGxv
YzpvbiwgaGVhcCBmcmVlOm9uClsgICAgMS4wMzU3MjRdIG1lbSBhdXRvLWluaXQ6IGNsZWFyaW5n
IHN5c3RlbSBtZW1vcnkgbWF5IHRha2Ugc29tZSB0aW1lLi4uClsgICAgMS4wNjA5OTFdIHNvZnR3
YXJlIElPIFRMQjogbWFwcGVkIFttZW0gMHgwMDAwMDAwMTYzODAwMDAwLTB4MDAwMDAwMDE2Nzgw
MDAwMF0gKDY0TUIpClsgICAgMS4zNTc5ODddIE1lbW9yeTogMzk0NzU0NEsvNDE5NDMwMEsgYXZh
aWxhYmxlICgxNjM5M0sga2VybmVsIGNvZGUsIDM1MTdLIHJ3ZGF0YSwgNTcwMEsgcm9kYXRhLCAz
NjA0SyBpbml0LCA1Nzg0SyBic3MsIDI0NjUwNEsgcmVzZXJ2ZWQsIDBLIGNtYS1yZXNlcnZlZCkK
WyAgICAxLjM1ODYyOV0gU0xVQjogSFdhbGlnbj02NCwgT3JkZXI9MC0zLCBNaW5PYmplY3RzPTAs
IENQVXM9MTIsIE5vZGVzPTEKWyAgICAxLjM1OTE0N10gZnRyYWNlOiBhbGxvY2F0aW5nIDUxNDMw
IGVudHJpZXMgaW4gMjAxIHBhZ2VzClsgICAgMS4zNzY0NjZdIGZ0cmFjZTogYWxsb2NhdGVkIDIw
MSBwYWdlcyB3aXRoIDQgZ3JvdXBzClsgICAgMS4zNzY3MzhdIHJjdTogSGllcmFyY2hpY2FsIFJD
VSBpbXBsZW1lbnRhdGlvbi4KWyAgICAxLjM3NjczOV0gcmN1OglSQ1UgcmVzdHJpY3RpbmcgQ1BV
cyBmcm9tIE5SX0NQVVM9ODE5MiB0byBucl9jcHVfaWRzPTEyLgpbICAgIDEuMzc2NzQwXQlUcmFt
cG9saW5lIHZhcmlhbnQgb2YgVGFza3MgUkNVIGVuYWJsZWQuClsgICAgMS4zNzY3NDBdCVJ1ZGUg
dmFyaWFudCBvZiBUYXNrcyBSQ1UgZW5hYmxlZC4KWyAgICAxLjM3Njc0MV0JVHJhY2luZyB2YXJp
YW50IG9mIFRhc2tzIFJDVSBlbmFibGVkLgpbICAgIDEuMzc2NzQxXSByY3U6IFJDVSBjYWxjdWxh
dGVkIHZhbHVlIG9mIHNjaGVkdWxlci1lbmxpc3RtZW50IGRlbGF5IGlzIDEwMCBqaWZmaWVzLgpb
ICAgIDEuMzc2NzQyXSByY3U6IEFkanVzdGluZyBnZW9tZXRyeSBmb3IgcmN1X2Zhbm91dF9sZWFm
PTE2LCBucl9jcHVfaWRzPTEyClsgICAgMS4zODM3NjFdIFVzaW5nIE5VTEwgbGVnYWN5IFBJQwpb
ICAgIDEuMzgzNzYyXSBOUl9JUlFTOiA1MjQ1NDQsIG5yX2lycXM6IDIxNTIsIHByZWFsbG9jYXRl
ZCBpcnFzOiAwClsgICAgMS4zODM4MDBdIHhlbjpldmVudHM6IFVzaW5nIEZJRk8tYmFzZWQgQUJJ
ClsgICAgMS4zODM4MjBdIHhlbjogLS0+IHBpcnE9MSAtPiBpcnE9MSAoZ3NpPTEpClsgICAgMS4z
ODM4MjhdIHhlbjogLS0+IHBpcnE9MiAtPiBpcnE9MiAoZ3NpPTIpClsgICAgMS4zODM4MzVdIHhl
bjogLS0+IHBpcnE9MyAtPiBpcnE9MyAoZ3NpPTMpClsgICAgMS4zODM4NDJdIHhlbjogLS0+IHBp
cnE9NCAtPiBpcnE9NCAoZ3NpPTQpClsgICAgMS4zODM4NDhdIHhlbjogLS0+IHBpcnE9NSAtPiBp
cnE9NSAoZ3NpPTUpClsgICAgMS4zODM4NTVdIHhlbjogLS0+IHBpcnE9NiAtPiBpcnE9NiAoZ3Np
PTYpClsgICAgMS4zODM4NjJdIHhlbjogLS0+IHBpcnE9NyAtPiBpcnE9NyAoZ3NpPTcpClsgICAg
MS4zODM4NjldIHhlbjogLS0+IHBpcnE9OCAtPiBpcnE9OCAoZ3NpPTgpClsgICAgMS4zODM4NzZd
IHhlbjogLS0+IHBpcnE9OSAtPiBpcnE9OSAoZ3NpPTkpClsgICAgMS4zODM4ODNdIHhlbjogLS0+
IHBpcnE9MTAgLT4gaXJxPTEwIChnc2k9MTApClsgICAgMS4zODM4OTBdIHhlbjogLS0+IHBpcnE9
MTEgLT4gaXJxPTExIChnc2k9MTEpClsgICAgMS4zODM4OTddIHhlbjogLS0+IHBpcnE9MTIgLT4g
aXJxPTEyIChnc2k9MTIpClsgICAgMS4zODM5MDRdIHhlbjogLS0+IHBpcnE9MTMgLT4gaXJxPTEz
IChnc2k9MTMpClsgICAgMS4zODM5MTFdIHhlbjogLS0+IHBpcnE9MTQgLT4gaXJxPTE0IChnc2k9
MTQpClsgICAgMS4zODM5MThdIHhlbjogLS0+IHBpcnE9MTUgLT4gaXJxPTE1IChnc2k9MTUpClsg
ICAgMS4zODM5NDNdIHJhbmRvbTogY3JuZyBpbml0IGRvbmUKWyAgICAxLjM4Mzk4MF0gQ29uc29s
ZTogY29sb3VyIGR1bW15IGRldmljZSA4MHgyNQpbICAgIDEuMzgzOTkwXSBwcmludGs6IGNvbnNv
bGUgW3R0eTBdIGVuYWJsZWQKWyAgICAxLjM4Mzk5OV0gcHJpbnRrOiBjb25zb2xlIFtodmMwXSBl
bmFibGVkClsgICAgMS4zODQwMjZdIEFDUEk6IENvcmUgcmV2aXNpb24gMjAyMTA3MzAKWyAgICAx
LjQxNzY4M10gQUNQSSBCSU9TIFdhcm5pbmcgKGJ1Zyk6IEluY29ycmVjdCBjaGVja3N1bSBpbiB0
YWJsZSBbQkdSVF0gLSAweDFBLCBzaG91bGQgYmUgMHg5QyAoMjAyMTA3MzAvdGJwcmludC0xNzMp
ClsgICAgMS40MTc3MzBdIGNsb2Nrc291cmNlOiB4ZW46IG1hc2s6IDB4ZmZmZmZmZmZmZmZmZmZm
ZiBtYXhfY3ljbGVzOiAweDFjZDQyZTRkZmZiLCBtYXhfaWRsZV9uczogODgxNTkwNTkxNDgzIG5z
ClsgICAgMS40MTc3MzNdIFhlbjogdXNpbmcgdmNwdW9wIHRpbWVyIGludGVyZmFjZQpbICAgIDEu
NDE3NzM2XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDAKWyAgICAxLjQxNzc1Nl0gY2xv
Y2tzb3VyY2U6IHRzYy1lYXJseTogbWFzazogMHhmZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6
IDB4MjU1Y2M5ZTIyOWYsIG1heF9pZGxlX25zOiA0NDA3OTUyNzI0NDAgbnMKWyAgICAxLjQxNzc2
MF0gQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksIHZhbHVlIGNhbGN1bGF0ZWQgdXNp
bmcgdGltZXIgZnJlcXVlbmN5Li4gNTE4NC4wNCBCb2dvTUlQUyAobHBqPTI1OTIwMjApClsgICAg
MS40MTc3NjJdIHBpZF9tYXg6IGRlZmF1bHQ6IDMyNzY4IG1pbmltdW06IDMwMQpbICAgIDEuNDE3
ODA3XSBMU006IFNlY3VyaXR5IEZyYW1ld29yayBpbml0aWFsaXppbmcKWyAgICAxLjQxNzgxNV0g
WWFtYTogYmVjb21pbmcgbWluZGZ1bC4KWyAgICAxLjQxNzg2Ml0gTW91bnQtY2FjaGUgaGFzaCB0
YWJsZSBlbnRyaWVzOiA4MTkyIChvcmRlcjogNCwgNjU1MzYgYnl0ZXMsIGxpbmVhcikKWyAgICAx
LjQxNzg2NF0gTW91bnRwb2ludC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDgxOTIgKG9yZGVy
OiA0LCA2NTUzNiBieXRlcywgbGluZWFyKQpbICAgIDEuNDE4MjgzXSBMYXN0IGxldmVsIGlUTEIg
ZW50cmllczogNEtCIDY0LCAyTUIgOCwgNE1CIDgKWyAgICAxLjQxODI4NV0gTGFzdCBsZXZlbCBk
VExCIGVudHJpZXM6IDRLQiA2NCwgMk1CIDAsIDRNQiAwLCAxR0IgNApbICAgIDEuNDE4MjkwXSBT
cGVjdHJlIFYxIDogTWl0aWdhdGlvbjogdXNlcmNvcHkvc3dhcGdzIGJhcnJpZXJzIGFuZCBfX3Vz
ZXIgcG9pbnRlciBzYW5pdGl6YXRpb24KWyAgICAxLjQxODI5Ml0gU3BlY3RyZSBWMiA6IE1pdGln
YXRpb246IEVuaGFuY2VkIElCUlMKWyAgICAxLjQxODI5Ml0gU3BlY3RyZSBWMiA6IFNwZWN0cmUg
djIgLyBTcGVjdHJlUlNCIG1pdGlnYXRpb246IEZpbGxpbmcgUlNCIG9uIGNvbnRleHQgc3dpdGNo
ClsgICAgMS40MTgyOTNdIFNwZWN0cmUgVjIgOiBTcGVjdHJlIHYyIC8gUEJSU0ItZUlCUlM6IFJl
dGlyZSBhIHNpbmdsZSBDQUxMIG9uIFZNRVhJVApbICAgIDEuNDE4MjkzXSBSRVRCbGVlZDogTWl0
aWdhdGlvbjogRW5oYW5jZWQgSUJSUwpbICAgIDEuNDE4Mjk0XSBTcGVjdHJlIFYyIDogbWl0aWdh
dGlvbjogRW5hYmxpbmcgY29uZGl0aW9uYWwgSW5kaXJlY3QgQnJhbmNoIFByZWRpY3Rpb24gQmFy
cmllcgpbICAgIDEuNDE4Mjk2XSBTcGVjdWxhdGl2ZSBTdG9yZSBCeXBhc3M6IE1pdGlnYXRpb246
IFNwZWN1bGF0aXZlIFN0b3JlIEJ5cGFzcyBkaXNhYmxlZCB2aWEgcHJjdGwgYW5kIHNlY2NvbXAK
WyAgICAxLjQxODI5OV0gTU1JTyBTdGFsZSBEYXRhOiBWdWxuZXJhYmxlOiBDbGVhciBDUFUgYnVm
ZmVycyBhdHRlbXB0ZWQsIG5vIG1pY3JvY29kZQpbICAgIDEuNDE4MzAxXSBTUkJEUzogVW5rbm93
bjogRGVwZW5kZW50IG9uIGh5cGVydmlzb3Igc3RhdHVzClsgICAgMS40MzIyMDhdIEZyZWVpbmcg
U01QIGFsdGVybmF0aXZlcyBtZW1vcnk6IDQ0SwpbICAgIDEuNDMyODE2XSBjcHUgMCBzcGlubG9j
ayBldmVudCBpcnEgMTIxClsgICAgMS40MzI4MjNdIFZQTVUgZGlzYWJsZWQgYnkgaHlwZXJ2aXNv
ci4KWyAgICAxLjQzMzA0OV0gUGVyZm9ybWFuY2UgRXZlbnRzOiB1bnN1cHBvcnRlZCBwNiBDUFUg
bW9kZWwgMTY1IG5vIFBNVSBkcml2ZXIsIHNvZnR3YXJlIGV2ZW50cyBvbmx5LgpbICAgIDEuNDMz
MTAwXSByY3U6IEhpZXJhcmNoaWNhbCBTUkNVIGltcGxlbWVudGF0aW9uLgpbICAgIDEuNDMzNDI5
XSBOTUkgd2F0Y2hkb2c6IFBlcmYgTk1JIHdhdGNoZG9nIHBlcm1hbmVudGx5IGRpc2FibGVkClsg
ICAgMS40MzM1NzBdIHNtcDogQnJpbmdpbmcgdXAgc2Vjb25kYXJ5IENQVXMgLi4uClsgICAgMS40
MzM2NzJdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMQpbICAgIDEuNDMzODM5XSBjcHUg
MSBzcGlubG9jayBldmVudCBpcnEgMTMxClsgICAgMS40MzQwOTBdIE1NSU8gU3RhbGUgRGF0YSBD
UFUgYnVnIHByZXNlbnQgYW5kIFNNVCBvbiwgZGF0YSBsZWFrIHBvc3NpYmxlLiBTZWUgaHR0cHM6
Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvYWRtaW4tZ3VpZGUvaHctdnVsbi9wcm9j
ZXNzb3JfbW1pb19zdGFsZV9kYXRhLmh0bWwgZm9yIG1vcmUgZGV0YWlscy4KWyAgICAxLjQzNDA5
MF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAyClsgICAgMS40MzQwOTBdIGNwdSAyIHNw
aW5sb2NrIGV2ZW50IGlycSAxMzcKWyAgICAxLjQzNDA5MF0gaW5zdGFsbGluZyBYZW4gdGltZXIg
Zm9yIENQVSAzClsgICAgMS40MzQwOTBdIGNwdSAzIHNwaW5sb2NrIGV2ZW50IGlycSAxNDMKWyAg
ICAxLjQzNDgyN10gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSA0ClsgICAgMS40MzQ5NTZd
IGNwdSA0IHNwaW5sb2NrIGV2ZW50IGlycSAxNDkKWyAgICAxLjQzNDk1Nl0gaW5zdGFsbGluZyBY
ZW4gdGltZXIgZm9yIENQVSA1ClsgICAgMS40MzQ5OTFdIGNwdSA1IHNwaW5sb2NrIGV2ZW50IGly
cSAxNTUKWyAgICAxLjQzNDk5MV0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSA2ClsgICAg
MS40MzUwMTFdIGNwdSA2IHNwaW5sb2NrIGV2ZW50IGlycSAxNjEKWyAgICAxLjQzNTAxMV0gaW5z
dGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSA3ClsgICAgMS40MzU3ODZdIGNwdSA3IHNwaW5sb2Nr
IGV2ZW50IGlycSAxNjcKWyAgICAxLjQzNTg1Ml0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQ
VSA4ClsgICAgMS40MzU5ODddIGNwdSA4IHNwaW5sb2NrIGV2ZW50IGlycSAxNzMKWyAgICAxLjQz
NTk4N10gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSA5ClsgICAgMS40MzU5ODddIGNwdSA5
IHNwaW5sb2NrIGV2ZW50IGlycSAxNzkKWyAgICAxLjQzNTk4N10gaW5zdGFsbGluZyBYZW4gdGlt
ZXIgZm9yIENQVSAxMApbICAgIDEuNDM2MDQzXSBjcHUgMTAgc3BpbmxvY2sgZXZlbnQgaXJxIDE4
NQpbICAgIDEuNDM2ODAxXSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDExClsgICAgMS40
MzY5NDNdIGNwdSAxMSBzcGlubG9jayBldmVudCBpcnEgMTkxClsgICAgMS40MzY5NDNdIHNtcDog
QnJvdWdodCB1cCAxIG5vZGUsIDEyIENQVXMKWyAgICAxLjQzNjk0M10gc21wYm9vdDogTWF4IGxv
Z2ljYWwgcGFja2FnZXM6IDEKWyAgICAxLjQzNzAyM10gZGV2dG1wZnM6IGluaXRpYWxpemVkClsg
ICAgMS40MzcwMjNdIHg4Ni9tbTogTWVtb3J5IGJsb2NrIHNpemU6IDEyOE1CClsgICAgMS40Mzcx
MDBdIEFDUEk6IFBNOiBSZWdpc3RlcmluZyBBQ1BJIE5WUyByZWdpb24gW21lbSAweDk4ZDZlMDAw
LTB4OTliY2RmZmZdICgxNTA3MzI4MCBieXRlcykKWyAgICAxLjQzNzg2MV0gY2xvY2tzb3VyY2U6
IGppZmZpZXM6IG1hc2s6IDB4ZmZmZmZmZmYgbWF4X2N5Y2xlczogMHhmZmZmZmZmZiwgbWF4X2lk
bGVfbnM6IDE5MTEyNjA0NDYyNzUwMDAgbnMKWyAgICAxLjQzNzg2NF0gZnV0ZXggaGFzaCB0YWJs
ZSBlbnRyaWVzOiA0MDk2IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzLCBsaW5lYXIpClsgICAgMS40
Mzc5MTZdIHBpbmN0cmwgY29yZTogaW5pdGlhbGl6ZWQgcGluY3RybCBzdWJzeXN0ZW0KWyAgICAx
LjQzODI2N10gUE06IFJUQyB0aW1lOiAxNjoyNDo0MSwgZGF0ZTogMjAyMy0xMi0yNwpbICAgIDEu
NDM4MzkxXSBORVQ6IFJlZ2lzdGVyZWQgUEZfTkVUTElOSy9QRl9ST1VURSBwcm90b2NvbCBmYW1p
bHkKWyAgICAxLjQzODQwNl0geGVuOmdyYW50X3RhYmxlOiBHcmFudCB0YWJsZXMgdXNpbmcgdmVy
c2lvbiAxIGxheW91dApbICAgIDEuNDM4NDUyXSBHcmFudCB0YWJsZSBpbml0aWFsaXplZApbICAg
IDEuNDM4NjE3XSBETUE6IHByZWFsbG9jYXRlZCA1MTIgS2lCIEdGUF9LRVJORUwgcG9vbCBmb3Ig
YXRvbWljIGFsbG9jYXRpb25zClsgICAgMS40Mzg2MjBdIERNQTogcHJlYWxsb2NhdGVkIDUxMiBL
aUIgR0ZQX0tFUk5FTHxHRlBfRE1BIHBvb2wgZm9yIGF0b21pYyBhbGxvY2F0aW9ucwpbICAgIDEu
NDM4NjIyXSBETUE6IHByZWFsbG9jYXRlZCA1MTIgS2lCIEdGUF9LRVJORUx8R0ZQX0RNQTMyIHBv
b2wgZm9yIGF0b21pYyBhbGxvY2F0aW9ucwpbICAgIDEuNDM4NjI5XSBhdWRpdDogaW5pdGlhbGl6
aW5nIG5ldGxpbmsgc3Vic3lzIChkaXNhYmxlZCkKWyAgICAxLjQzODYzOV0gYXVkaXQ6IHR5cGU9
MjAwMCBhdWRpdCgxNzAzNjk0MjgyLjU0NDoxKTogc3RhdGU9aW5pdGlhbGl6ZWQgYXVkaXRfZW5h
YmxlZD0wIHJlcz0xClsgICAgMS40Mzg4MTBdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJt
YWwgZ292ZXJub3IgJ2ZhaXJfc2hhcmUnClsgICAgMS40Mzg4MTFdIHRoZXJtYWxfc3lzOiBSZWdp
c3RlcmVkIHRoZXJtYWwgZ292ZXJub3IgJ2JhbmdfYmFuZycKWyAgICAxLjQzODgxMV0gdGhlcm1h
bF9zeXM6IFJlZ2lzdGVyZWQgdGhlcm1hbCBnb3Zlcm5vciAnc3RlcF93aXNlJwpbICAgIDEuNDM4
ODEyXSB0aGVybWFsX3N5czogUmVnaXN0ZXJlZCB0aGVybWFsIGdvdmVybm9yICd1c2VyX3NwYWNl
JwpbICAgIDEuNDM4ODU3XSBBQ1BJIEZBRFQgZGVjbGFyZXMgdGhlIHN5c3RlbSBkb2Vzbid0IHN1
cHBvcnQgUENJZSBBU1BNLCBzbyBkaXNhYmxlIGl0ClsgICAgMS40Mzg4NTddIEFDUEk6IGJ1cyB0
eXBlIFBDSSByZWdpc3RlcmVkClsgICAgMS40MzkwMDFdIFBDSTogTU1DT05GSUcgZm9yIGRvbWFp
biAwMDAwIFtidXMgMDAtZmZdIGF0IFttZW0gMHhlMDAwMDAwMC0weGVmZmZmZmZmXSAoYmFzZSAw
eGUwMDAwMDAwKQpbICAgIDEuNDM5MDA0XSBQQ0k6IE1NQ09ORklHIGF0IFttZW0gMHhlMDAwMDAw
MC0weGVmZmZmZmZmXSByZXNlcnZlZCBpbiBFODIwClsgICAgMS40NzA2NjNdIFBDSTogVXNpbmcg
Y29uZmlndXJhdGlvbiB0eXBlIDEgZm9yIGJhc2UgYWNjZXNzClsgICAgMS40NzE3MjhdIEtwcm9i
ZXMgZ2xvYmFsbHkgb3B0aW1pemVkClsgICAgMS41Njk5MTddIGNyeXB0ZDogbWF4X2NwdV9xbGVu
IHNldCB0byAxMDAwClsgICAgMS41NzY4MjFdIGFsZzogTm8gdGVzdCBmb3IgODQyICg4NDItZ2Vu
ZXJpYykKWyAgICAxLjU3NjgyMV0gYWxnOiBObyB0ZXN0IGZvciA4NDIgKDg0Mi1zY29tcCkKWyAg
ICAxLjU3OTAwOF0gcmFpZDY6IHNraXAgcHEgYmVuY2htYXJrIGFuZCB1c2luZyBhbGdvcml0aG0g
YXZ4Mng0ClsgICAgMS41NzkwMDhdIHJhaWQ2OiB1c2luZyBhdngyeDIgcmVjb3ZlcnkgYWxnb3Jp
dGhtClsgICAgMS41NzkwMDhdIEFDUEk6IEFkZGVkIF9PU0koTW9kdWxlIERldmljZSkKWyAgICAx
LjU3OTAwOF0gQUNQSTogQWRkZWQgX09TSShQcm9jZXNzb3IgRGV2aWNlKQpbICAgIDEuNTc5MDA4
XSBBQ1BJOiBBZGRlZCBfT1NJKDMuMCBfU0NQIEV4dGVuc2lvbnMpClsgICAgMS41NzkwMDhdIEFD
UEk6IEFkZGVkIF9PU0koUHJvY2Vzc29yIEFnZ3JlZ2F0b3IgRGV2aWNlKQpbICAgIDEuNTc5MDA4
XSBBQ1BJOiBBZGRlZCBfT1NJKExpbnV4LURlbGwtVmlkZW8pClsgICAgMS41NzkwMDhdIEFDUEk6
IEFkZGVkIF9PU0koTGludXgtTGVub3ZvLU5WLUhETUktQXVkaW8pClsgICAgMS41NzkwMDhdIEFD
UEk6IEFkZGVkIF9PU0koTGludXgtSFBJLUh5YnJpZC1HcmFwaGljcykKWyAgICAxLjYzODg0OF0g
QUNQSTogMTcgQUNQSSBBTUwgdGFibGVzIHN1Y2Nlc3NmdWxseSBhY3F1aXJlZCBhbmQgbG9hZGVk
ClsgICAgMS42NDAxODJdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDkgdHJpZ2dlcmluZyAwIHBvbGFy
aXR5IDAKWyAgICAxLjY0ODI3M10gQUNQSTogRHluYW1pYyBPRU0gVGFibGUgTG9hZDoKWyAgICAx
LjY0ODI4MF0gQUNQSTogU1NEVCAweEZGRkY4ODgxMDEwOEE0MDAgMDAwNDAwICh2MDIgUG1SZWYg
IENwdTBDc3QgIDAwMDAzMDAxIElOVEwgMjAxNjA0MjIpClsgICAgMS42NDkxNTJdIEFDUEk6IER5
bmFtaWMgT0VNIFRhYmxlIExvYWQ6ClsgICAgMS42NDkxNTddIEFDUEk6IFNTRFQgMHhGRkZGODg4
MTAxMDI2ODAwIDAwMDU4MSAodjAyIFBtUmVmICBDcHUwSXN0ICAwMDAwMzAwMCBJTlRMIDIwMTYw
NDIyKQpbICAgIDEuNjQ5OTMzXSBBQ1BJOiBEeW5hbWljIE9FTSBUYWJsZSBMb2FkOgpbICAgIDEu
NjQ5OTM4XSBBQ1BJOiBTU0RUIDB4RkZGRjg4ODEwMDIwRTQwMCAwMDAwRkMgKHYwMiBQbVJlZiAg
Q3B1MFBzZCAgMDAwMDMwMDAgSU5UTCAyMDE2MDQyMikKWyAgICAxLjY1MTIxNV0gQUNQSTogRHlu
YW1pYyBPRU0gVGFibGUgTG9hZDoKWyAgICAxLjY1MTIyMF0gQUNQSTogU1NEVCAweEZGRkY4ODgx
MDEwMjMwMDAgMDAwNzc4ICh2MDIgUG1SZWYgIEFwSXN0ICAgIDAwMDAzMDAwIElOVEwgMjAxNjA0
MjIpClsgICAgMS42NTIzMzldIEFDUEk6IER5bmFtaWMgT0VNIFRhYmxlIExvYWQ6ClsgICAgMS42
NTIzNDZdIEFDUEk6IFNTRFQgMHhGRkZGODg4MTAwMTgzMDAwIDAwMEQyMiAodjAyIFBtUmVmICBB
cFBzZCAgICAwMDAwMzAwMCBJTlRMIDIwMTYwNDIyKQpbICAgIDEuNjUzNjMyXSBBQ1BJOiBEeW5h
bWljIE9FTSBUYWJsZSBMb2FkOgpbICAgIDEuNjUzNjM3XSBBQ1BJOiBTU0RUIDB4RkZGRjg4ODEw
MTA4ODgwMCAwMDAzQ0EgKHYwMiBQbVJlZiAgQXBDc3QgICAgMDAwMDMwMDAgSU5UTCAyMDE2MDQy
MikKWyAgICAxLjY1OTg4N10gQUNQSTogRUM6IEVDIHN0YXJ0ZWQKWyAgICAxLjY1OTg4OF0gQUNQ
STogRUM6IGludGVycnVwdCBibG9ja2VkClsgICAgMS42NjAyMTZdIEFDUEk6IEVDOiBFQ19DTUQv
RUNfU0M9MHg2NiwgRUNfREFUQT0weDYyClsgICAgMS42NjAyMThdIEFDUEk6IFxfU0JfLlBDSTAu
TFBDQi5FQzBfOiBCb290IERTRFQgRUMgdXNlZCB0byBoYW5kbGUgdHJhbnNhY3Rpb25zClsgICAg
MS42NjAyMTldIEFDUEk6IEludGVycHJldGVyIGVuYWJsZWQKWyAgICAxLjY2MDI0NV0gQUNQSTog
UE06IChzdXBwb3J0cyBTMCBTMyBTNSkKWyAgICAxLjY2MDI0Nl0gQUNQSTogVXNpbmcgSU9BUElD
IGZvciBpbnRlcnJ1cHQgcm91dGluZwpbICAgIDEuNjYwMjc1XSBQQ0k6IFVzaW5nIGhvc3QgYnJp
ZGdlIHdpbmRvd3MgZnJvbSBBQ1BJOyBpZiBuZWNlc3NhcnksIHVzZSAicGNpPW5vY3JzIiBhbmQg
cmVwb3J0IGEgYnVnClsgICAgMS42NjIyMTFdIEFDUEk6IEVuYWJsZWQgNyBHUEVzIGluIGJsb2Nr
IDAwIHRvIDdGClsgICAgMS42NjMwMzNdIEFDUEk6IFBNOiBQb3dlciBSZXNvdXJjZSBbUEcwMF0K
WyAgICAxLjY2NjU5Ml0gQUNQSTogUE06IFBvd2VyIFJlc291cmNlIFtQRzAxXQpbICAgIDEuNjY2
ODkyXSBBQ1BJOiBQTTogUG93ZXIgUmVzb3VyY2UgW1BHMDJdClsgICAgMS42NzA3NTZdIEFDUEk6
IFBNOiBQb3dlciBSZXNvdXJjZSBbQlRQUl0KWyAgICAxLjY3MTMxOF0gQUNQSTogUE06IFBvd2Vy
IFJlc291cmNlIFtVU0JDXQpbICAgIDEuNjg2MDY3XSBBQ1BJOiBQTTogUG93ZXIgUmVzb3VyY2Ug
W1YwUFJdClsgICAgMS42ODYyNjJdIEFDUEk6IFBNOiBQb3dlciBSZXNvdXJjZSBbVjFQUl0KWyAg
ICAxLjY4NjQ1Nl0gQUNQSTogUE06IFBvd2VyIFJlc291cmNlIFtWMlBSXQpbICAgIDEuNjg5ODcx
XSBBQ1BJOiBQTTogUG93ZXIgUmVzb3VyY2UgW1dSU1RdClsgICAgMS42OTAwOTddIGFjcGkgQUJD
RDAwMDA6MDA6IEFDUEkgZG9jayBzdGF0aW9uIChkb2Nrcy9iYXlzIGNvdW50OiAxKQpbICAgIDEu
NjkyOTg4XSBBQ1BJOiBQTTogUG93ZXIgUmVzb3VyY2UgW1BJTl0KWyAgICAxLjY5MzUzNl0gQUNQ
STogUENJIFJvb3QgQnJpZGdlIFtQQ0kwXSAoZG9tYWluIDAwMDAgW2J1cyAwMC1mZV0pClsgICAg
MS42OTM1NDFdIGFjcGkgUE5QMEEwODowMDogX09TQzogT1Mgc3VwcG9ydHMgW0V4dGVuZGVkQ29u
ZmlnIEFTUE0gQ2xvY2tQTSBTZWdtZW50cyBNU0kgRURSIEhQWC1UeXBlM10KWyAgICAxLjY5NTgz
OF0gYWNwaSBQTlAwQTA4OjAwOiBfT1NDOiBPUyBub3cgY29udHJvbHMgW1BNRSBBRVIgUENJZUNh
cGFiaWxpdHkgTFRSIERQQ10KWyAgICAxLjY5NTgzOV0gYWNwaSBQTlAwQTA4OjAwOiBGQURUIGlu
ZGljYXRlcyBBU1BNIGlzIHVuc3VwcG9ydGVkLCB1c2luZyBCSU9TIGNvbmZpZ3VyYXRpb24KWyAg
ICAxLjY5NzE5OV0gUENJIGhvc3QgYnJpZGdlIHRvIGJ1cyAwMDAwOjAwClsgICAgMS42OTcyMDFd
IHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2lvICAweDAwMDAtMHgwY2Y3IHdp
bmRvd10KWyAgICAxLjY5NzIwMl0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBb
aW8gIDB4MGQwMC0weGZmZmYgd2luZG93XQpbICAgIDEuNjk3MjAzXSBwY2lfYnVzIDAwMDA6MDA6
IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHgwMDBhMDAwMC0weDAwMGJmZmZmIHdpbmRvd10KWyAg
ICAxLjY5NzIwNF0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4OWY4
MDAwMDAtMHhkZmZmZmZmZiB3aW5kb3ddClsgICAgMS42OTcyMDVdIHBjaV9idXMgMDAwMDowMDog
cm9vdCBidXMgcmVzb3VyY2UgW21lbSAweDQwMDAwMDAwMDAtMHg3ZmZmZmZmZmZmIHdpbmRvd10K
WyAgICAxLjY5NzIwNl0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4
ZmM4MDAwMDAtMHhmZTdmZmZmZiB3aW5kb3ddClsgICAgMS42OTcyMDddIHBjaV9idXMgMDAwMDow
MDogcm9vdCBidXMgcmVzb3VyY2UgW2J1cyAwMC1mZV0KWyAgICAxLjY5ODEyNV0gcGNpIDAwMDA6
MDA6MDAuMDogWzgwODY6OWI1NF0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMApbICAgIDEuNzAwODcz
XSBwY2kgMDAwMDowMDowMS4wOiBbODA4NjoxOTAxXSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwClsg
ICAgMS43MDEwMDZdIHBjaSAwMDAwOjAwOjAxLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNo
b3QgRDNjb2xkClsgICAgMS43MDMzNDNdIHBjaSAwMDAwOjAwOjAyLjA6IFs4MDg2OjliYzRdIHR5
cGUgMDAgY2xhc3MgMHgwMzAwMDAKWyAgICAxLjcwMzM3MV0gcGNpIDAwMDA6MDA6MDIuMDogcmVn
IDB4MTA6IFttZW0gMHg2MDEzMDAwMDAwLTB4NjAxM2ZmZmZmZiA2NGJpdF0KWyAgICAxLjcwMzM4
OF0gcGNpIDAwMDA6MDA6MDIuMDogcmVnIDB4MTg6IFttZW0gMHg0MDAwMDAwMDAwLTB4NDAwZmZm
ZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNzAzNDAwXSBwY2kgMDAwMDowMDowMi4wOiByZWcgMHgy
MDogW2lvICAweDUwMDAtMHg1MDNmXQpbICAgIDEuNzAzNDQwXSBwY2kgMDAwMDowMDowMi4wOiBC
QVIgMjogYXNzaWduZWQgdG8gZWZpZmIKWyAgICAxLjcwMzQ0Nl0gcGNpIDAwMDA6MDA6MDIuMDog
VmlkZW8gZGV2aWNlIHdpdGggc2hhZG93ZWQgUk9NIGF0IFttZW0gMHgwMDBjMDAwMC0weDAwMGRm
ZmZmXQpbICAgIDEuNzA1MzQzXSBwY2kgMDAwMDowMDowNC4wOiBbODA4NjoxOTAzXSB0eXBlIDAw
IGNsYXNzIDB4MTE4MDAwClsgICAgMS43MDUzNzFdIHBjaSAwMDAwOjAwOjA0LjA6IHJlZyAweDEw
OiBbbWVtIDB4NjAxMjIwMDAwMC0weDYwMTIyMDdmZmYgNjRiaXRdClsgICAgMS43MDY1ODVdIHBj
aSAwMDAwOjAwOjA4LjA6IFs4MDg2OjE5MTFdIHR5cGUgMDAgY2xhc3MgMHgwODgwMDAKWyAgICAx
LjcwNjYxNF0gcGNpIDAwMDA6MDA6MDguMDogcmVnIDB4MTA6IFttZW0gMHg2MDEyMjE4MDAwLTB4
NjAxMjIxOGZmZiA2NGJpdF0KWyAgICAxLjcwODU3Nl0gcGNpIDAwMDA6MDA6MTIuMDogWzgwODY6
MDZmOV0gdHlwZSAwMCBjbGFzcyAweDExODAwMApbICAgIDEuNzA4NjMxXSBwY2kgMDAwMDowMDox
Mi4wOiByZWcgMHgxMDogW21lbSAweDYwMTIyMTcwMDAtMHg2MDEyMjE3ZmZmIDY0Yml0XQpbICAg
IDEuNzExNTI2XSBwY2kgMDAwMDowMDoxNC4wOiBbODA4NjowNmVkXSB0eXBlIDAwIGNsYXNzIDB4
MGMwMzMwClsgICAgMS43MTE1ODBdIHBjaSAwMDAwOjAwOjE0LjA6IHJlZyAweDEwOiBbbWVtIDB4
YTE0ODAwMDAtMHhhMTQ4ZmZmZiA2NGJpdF0KWyAgICAxLjcxMTc5M10gcGNpIDAwMDA6MDA6MTQu
MDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEM2hvdCBEM2NvbGQKWyAgICAxLjcxMzA0Nl0gcGNpIDAw
MDA6MDA6MTQuMjogWzgwODY6MDZlZl0gdHlwZSAwMCBjbGFzcyAweDA1MDAwMApbICAgIDEuNzEz
MDk4XSBwY2kgMDAwMDowMDoxNC4yOiByZWcgMHgxMDogW21lbSAweDYwMTIyMTAwMDAtMHg2MDEy
MjExZmZmIDY0Yml0XQpbICAgIDEuNzEzMTMzXSBwY2kgMDAwMDowMDoxNC4yOiByZWcgMHgxODog
W21lbSAweDYwMTIyMTYwMDAtMHg2MDEyMjE2ZmZmIDY0Yml0XQpbICAgIDEuNzE2MDI0XSBwY2kg
MDAwMDowMDoxNC4zOiBbODA4NjowNmYwXSB0eXBlIDAwIGNsYXNzIDB4MDI4MDAwClsgICAgMS43
MTYyNDFdIHBjaSAwMDAwOjAwOjE0LjM6IHJlZyAweDEwOiBbbWVtIDB4NjAxMjIwYzAwMC0weDYw
MTIyMGZmZmYgNjRiaXRdClsgICAgMS43MTcyMDBdIHBjaSAwMDAwOjAwOjE0LjM6IFBNRSMgc3Vw
cG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS43MTkzNTNdIHBjaSAwMDAwOjAwOjE1
LjA6IFs4MDg2OjA2ZThdIHR5cGUgMDAgY2xhc3MgMHgwYzgwMDAKWyAgICAxLjcxOTQwM10gcGNp
IDAwMDA6MDA6MTUuMDogcmVnIDB4MTA6IFttZW0gMHgwMDAwMDAwMC0weDAwMDAwZmZmIDY0Yml0
XQpbICAgIDEuNzIxNTEzXSBwY2kgMDAwMDowMDoxNS4xOiBbODA4NjowNmU5XSB0eXBlIDAwIGNs
YXNzIDB4MGM4MDAwClsgICAgMS43MjE1NjNdIHBjaSAwMDAwOjAwOjE1LjE6IHJlZyAweDEwOiBb
bWVtIDB4MDAwMDAwMDAtMHgwMDAwMGZmZiA2NGJpdF0KWyAgICAxLjcyMzczMV0gcGNpIDAwMDA6
MDA6MTYuMDogWzgwODY6MDZlMF0gdHlwZSAwMCBjbGFzcyAweDA3ODAwMApbICAgIDEuNzIzNzgw
XSBwY2kgMDAwMDowMDoxNi4wOiByZWcgMHgxMDogW21lbSAweDYwMTIyMTMwMDAtMHg2MDEyMjEz
ZmZmIDY0Yml0XQpbICAgIDEuNzIzOTYyXSBwY2kgMDAwMDowMDoxNi4wOiBQTUUjIHN1cHBvcnRl
ZCBmcm9tIEQzaG90ClsgICAgMS43MjYxODhdIHBjaSAwMDAwOjAwOjE3LjA6IFs4MDg2OjA2ZDNd
IHR5cGUgMDAgY2xhc3MgMHgwMTA2MDEKWyAgICAxLjcyNjI0MV0gcGNpIDAwMDA6MDA6MTcuMDog
cmVnIDB4MTA6IFttZW0gMHhhMTQ5MDAwMC0weGExNDkxZmZmXQpbICAgIDEuNzI2MjY5XSBwY2kg
MDAwMDowMDoxNy4wOiByZWcgMHgxNDogW21lbSAweGExNDk0MDAwLTB4YTE0OTQwZmZdClsgICAg
MS43MjYyOThdIHBjaSAwMDAwOjAwOjE3LjA6IHJlZyAweDE4OiBbaW8gIDB4NTA4MC0weDUwODdd
ClsgICAgMS43MjYzMjZdIHBjaSAwMDAwOjAwOjE3LjA6IHJlZyAweDFjOiBbaW8gIDB4NTA4OC0w
eDUwOGJdClsgICAgMS43MjYzNTRdIHBjaSAwMDAwOjAwOjE3LjA6IHJlZyAweDIwOiBbaW8gIDB4
NTA2MC0weDUwN2ZdClsgICAgMS43MjYzODJdIHBjaSAwMDAwOjAwOjE3LjA6IHJlZyAweDI0OiBb
bWVtIDB4YTE0OTMwMDAtMHhhMTQ5MzdmZl0KWyAgICAxLjcyNjU0MF0gcGNpIDAwMDA6MDA6MTcu
MDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEM2hvdApbICAgIDEuNzI4NjY5XSBwY2kgMDAwMDowMDox
Yi4wOiBbODA4NjowNmFjXSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwClsgICAgMS43Mjg5NjNdIHBj
aSAwMDAwOjAwOjFiLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAg
MS43MjkwMjRdIHBjaSAwMDAwOjAwOjFiLjA6IFBUTSBlbmFibGVkIChyb290KSwgNG5zIGdyYW51
bGFyaXR5ClsgICAgMS43MzE1MzRdIHBjaSAwMDAwOjAwOjFkLjA6IFs4MDg2OjA2YjBdIHR5cGUg
MDEgY2xhc3MgMHgwNjA0MDAKWyAgICAxLjczMTgxNF0gcGNpIDAwMDA6MDA6MWQuMDogUE1FIyBz
dXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjczMTg3Ml0gcGNpIDAwMDA6MDA6
MWQuMDogUFRNIGVuYWJsZWQgKHJvb3QpLCA0bnMgZ3JhbnVsYXJpdHkKWyAgICAxLjczNDMwMV0g
cGNpIDAwMDA6MDA6MWQuNTogWzgwODY6MDZiNV0gdHlwZSAwMSBjbGFzcyAweDA2MDQwMApbICAg
IDEuNzM0NTc3XSBwY2kgMDAwMDowMDoxZC41OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90
IEQzY29sZApbICAgIDEuNzM0NjMxXSBwY2kgMDAwMDowMDoxZC41OiBQVE0gZW5hYmxlZCAocm9v
dCksIDRucyBncmFudWxhcml0eQpbICAgIDEuNzM3MDI3XSBwY2kgMDAwMDowMDoxZi4wOiBbODA4
NjowNjhkXSB0eXBlIDAwIGNsYXNzIDB4MDYwMTAwClsgICAgMS43MzkzMDBdIHBjaSAwMDAwOjAw
OjFmLjM6IFs4MDg2OjA2YzhdIHR5cGUgMDAgY2xhc3MgMHgwNDAzODAKWyAgICAxLjczOTM2OF0g
cGNpIDAwMDA6MDA6MWYuMzogcmVnIDB4MTA6IFttZW0gMHg2MDEyMjA4MDAwLTB4NjAxMjIwYmZm
ZiA2NGJpdF0KWyAgICAxLjczOTQ1NF0gcGNpIDAwMDA6MDA6MWYuMzogcmVnIDB4MjA6IFttZW0g
MHg2MDEyMTAwMDAwLTB4NjAxMjFmZmZmZiA2NGJpdF0KWyAgICAxLjczOTYyNV0gcGNpIDAwMDA6
MDA6MWYuMzogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEM2hvdCBEM2NvbGQKWyAgICAxLjc0MjExNV0g
cGNpIDAwMDA6MDA6MWYuNDogWzgwODY6MDZhM10gdHlwZSAwMCBjbGFzcyAweDBjMDUwMApbICAg
IDEuNzQyMjk2XSBwY2kgMDAwMDowMDoxZi40OiByZWcgMHgxMDogW21lbSAweDYwMTIyMTIwMDAt
MHg2MDEyMjEyMGZmIDY0Yml0XQpbICAgIDEuNzQyNTIwXSBwY2kgMDAwMDowMDoxZi40OiByZWcg
MHgyMDogW2lvICAweGVmYTAtMHhlZmJmXQpbICAgIDEuNzQzODUyXSBwY2kgMDAwMDowMDoxZi41
OiBbODA4NjowNmE0XSB0eXBlIDAwIGNsYXNzIDB4MGM4MDAwClsgICAgMS43NDM4OTFdIHBjaSAw
MDAwOjAwOjFmLjU6IHJlZyAweDEwOiBbbWVtIDB4ZmUwMTAwMDAtMHhmZTAxMGZmZl0KWyAgICAx
Ljc0NTAzMF0gcGNpIDAwMDA6MDE6MDAuMDogWzEwZGU6MWYxNF0gdHlwZSAwMCBjbGFzcyAweDAz
MDAwMApbICAgIDEuNzQ1MDU2XSBwY2kgMDAwMDowMTowMC4wOiByZWcgMHgxMDogW21lbSAweGEw
MDAwMDAwLTB4YTBmZmZmZmZdClsgICAgMS43NDUwNzddIHBjaSAwMDAwOjAxOjAwLjA6IHJlZyAw
eDE0OiBbbWVtIDB4NjAwMDAwMDAwMC0weDYwMGZmZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjc0
NTA5OV0gcGNpIDAwMDA6MDE6MDAuMDogcmVnIDB4MWM6IFttZW0gMHg2MDEwMDAwMDAwLTB4NjAx
MWZmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNzQ1MTEzXSBwY2kgMDAwMDowMTowMC4wOiByZWcg
MHgyNDogW2lvICAweDQwMDAtMHg0MDdmXQpbICAgIDEuNzQ1MTI3XSBwY2kgMDAwMDowMTowMC4w
OiByZWcgMHgzMDogW21lbSAweGZmZjgwMDAwLTB4ZmZmZmZmZmYgcHJlZl0KWyAgICAxLjc0NTIy
MF0gcGNpIDAwMDA6MDE6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQK
WyAgICAxLjc0NTUyNV0gcGNpIDAwMDA6MDE6MDAuMTogWzEwZGU6MTBmOV0gdHlwZSAwMCBjbGFz
cyAweDA0MDMwMApbICAgIDEuNzQ1NTQ3XSBwY2kgMDAwMDowMTowMC4xOiByZWcgMHgxMDogW21l
bSAweGExMDAwMDAwLTB4YTEwMDNmZmZdClsgICAgMS43NDU3NzNdIHBjaSAwMDAwOjAxOjAwLjI6
IFsxMGRlOjFhZGFdIHR5cGUgMDAgY2xhc3MgMHgwYzAzMzAKWyAgICAxLjc0NTgwNV0gcGNpIDAw
MDA6MDE6MDAuMjogcmVnIDB4MTA6IFttZW0gMHg2MDEyMDAwMDAwLTB4NjAxMjAzZmZmZiA2NGJp
dCBwcmVmXQpbICAgIDEuNzQ1ODQwXSBwY2kgMDAwMDowMTowMC4yOiByZWcgMHgxYzogW21lbSAw
eDYwMTIwNDAwMDAtMHg2MDEyMDRmZmZmIDY0Yml0IHByZWZdClsgICAgMS43NDU5NTFdIHBjaSAw
MDAwOjAxOjAwLjI6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS43
NDYwNTJdIHBjaSAwMDAwOjAxOjAwLjM6IFsxMGRlOjFhZGJdIHR5cGUgMDAgY2xhc3MgMHgwYzgw
MDAKWyAgICAxLjc0NjA3NF0gcGNpIDAwMDA6MDE6MDAuMzogcmVnIDB4MTA6IFttZW0gMHhhMTAw
NDAwMC0weGExMDA0ZmZmXQpbICAgIDEuNzQ2MjE0XSBwY2kgMDAwMDowMTowMC4zOiBQTUUjIHN1
cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEuNzQ2MzM3XSBwY2kgMDAwMDowMDow
MS4wOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDEtMDVdClsgICAgMS43NDYzNDJdIHBjaSAwMDAwOjAw
OjAxLjA6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4NDAwMC0weDRmZmZdClsgICAgMS43NDYzNDZd
IHBjaSAwMDAwOjAwOjAxLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4YTAwMDAwMDAtMHhhMTBm
ZmZmZl0KWyAgICAxLjc0NjM1M10gcGNpIDAwMDA6MDA6MDEuMDogICBicmlkZ2Ugd2luZG93IFtt
ZW0gMHg2MDAwMDAwMDAwLTB4NjAxMjBmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNzQ2NjU5XSBw
Y2kgMDAwMDowNjowMC4wOiBbMTQ0ZDphODA4XSB0eXBlIDAwIGNsYXNzIDB4MDEwODAyClsgICAg
MS43NDY3MTNdIHBjaSAwMDAwOjA2OjAwLjA6IHJlZyAweDEwOiBbbWVtIDB4YTEzMDAwMDAtMHhh
MTMwM2ZmZiA2NGJpdF0KWyAgICAxLjc0NzQ4OF0gcGNpIDAwMDA6MDA6MWIuMDogUENJIGJyaWRn
ZSB0byBbYnVzIDA2XQpbICAgIDEuNzQ3NTAyXSBwY2kgMDAwMDowMDoxYi4wOiAgIGJyaWRnZSB3
aW5kb3cgW21lbSAweGExMzAwMDAwLTB4YTEzZmZmZmZdClsgICAgMS43NDc2NjJdIHBjaSAwMDAw
OjA3OjAwLjA6IFsxMzQ0OjU0MTNdIHR5cGUgMDAgY2xhc3MgMHgwMTA4MDIKWyAgICAxLjc0Nzcx
N10gcGNpIDAwMDA6MDc6MDAuMDogcmVnIDB4MTA6IFttZW0gMHhhMTIwMDAwMC0weGExMjAzZmZm
IDY0Yml0XQpbICAgIDEuNzQ4MTk2XSBwY2kgMDAwMDowNzowMC4wOiAzMS41MDQgR2IvcyBhdmFp
bGFibGUgUENJZSBiYW5kd2lkdGgsIGxpbWl0ZWQgYnkgOC4wIEdUL3MgUENJZSB4NCBsaW5rIGF0
IDAwMDA6MDA6MWQuMCAoY2FwYWJsZSBvZiA2My4wMTIgR2IvcyB3aXRoIDE2LjAgR1QvcyBQQ0ll
IHg0IGxpbmspClsgICAgMS43NDgzOThdIHBjaSAwMDAwOjAwOjFkLjA6IFBDSSBicmlkZ2UgdG8g
W2J1cyAwN10KWyAgICAxLjc0ODQxMl0gcGNpIDAwMDA6MDA6MWQuMDogICBicmlkZ2Ugd2luZG93
IFttZW0gMHhhMTIwMDAwMC0weGExMmZmZmZmXQpbICAgIDEuNzQ4NTY3XSBwY2kgMDAwMDowODow
MC4wOiBbMTBlYzoyNjAwXSB0eXBlIDAwIGNsYXNzIDB4MDIwMDAwClsgICAgMS43NDg2MDhdIHBj
aSAwMDAwOjA4OjAwLjA6IHJlZyAweDEwOiBbaW8gIDB4MzAwMC0weDMwZmZdClsgICAgMS43NDg2
NjZdIHBjaSAwMDAwOjA4OjAwLjA6IHJlZyAweDE4OiBbbWVtIDB4YTExMDQwMDAtMHhhMTEwNGZm
ZiA2NGJpdF0KWyAgICAxLjc0ODcwMV0gcGNpIDAwMDA6MDg6MDAuMDogcmVnIDB4MjA6IFttZW0g
MHhhMTEwMDAwMC0weGExMTAzZmZmIDY0Yml0XQpbICAgIDEuNzQ4OTE2XSBwY2kgMDAwMDowODow
MC4wOiBzdXBwb3J0cyBEMSBEMgpbICAgIDEuNzQ4OTE2XSBwY2kgMDAwMDowODowMC4wOiBQTUUj
IHN1cHBvcnRlZCBmcm9tIEQwIEQxIEQyIEQzaG90IEQzY29sZApbICAgIDEuNzQ5MjExXSBwY2kg
MDAwMDowMDoxZC41OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDhdClsgICAgMS43NDkyMTldIHBjaSAw
MDAwOjAwOjFkLjU6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4MzAwMC0weDNmZmZdClsgICAgMS43
NDkyMjZdIHBjaSAwMDAwOjAwOjFkLjU6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4YTExMDAwMDAt
MHhhMTFmZmZmZl0KWyAgICAxLjc0OTU0MF0geGVuOiByZWdpc3RlcmluZyBnc2kgMTMgdHJpZ2dl
cmluZyAxIHBvbGFyaXR5IDAKWyAgICAxLjc1MDE4NV0geGVuOiByZWdpc3RlcmluZyBnc2kgMTQg
dHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICAxLjc1NjgyN10gQUNQSTogRUM6IGludGVycnVw
dCB1bmJsb2NrZWQKWyAgICAxLjc1NjgyOF0gQUNQSTogRUM6IGV2ZW50IHVuYmxvY2tlZApbICAg
IDEuNzU2ODUzXSBBQ1BJOiBFQzogRUNfQ01EL0VDX1NDPTB4NjYsIEVDX0RBVEE9MHg2MgpbICAg
IDEuNzU2ODU0XSBBQ1BJOiBFQzogR1BFPTB4MTQKWyAgICAxLjc1Njg1NV0gQUNQSTogXF9TQl8u
UENJMC5MUENCLkVDMF86IEJvb3QgRFNEVCBFQyBpbml0aWFsaXphdGlvbiBjb21wbGV0ZQpbICAg
IDEuNzU2ODU2XSBBQ1BJOiBcX1NCXy5QQ0kwLkxQQ0IuRUMwXzogRUM6IFVzZWQgdG8gaGFuZGxl
IHRyYW5zYWN0aW9ucyBhbmQgZXZlbnRzClsgICAgMS43NTY4OTFdIHhlbjpiYWxsb29uOiBJbml0
aWFsaXNpbmcgYmFsbG9vbiBkcml2ZXIKWyAgICAxLjc1NjkwMF0gaW9tbXU6IERlZmF1bHQgZG9t
YWluIHR5cGU6IFRyYW5zbGF0ZWQKWyAgICAxLjc1NjkwMF0gaW9tbXU6IERNQSBkb21haW4gVExC
IGludmFsaWRhdGlvbiBwb2xpY3k6IGxhenkgbW9kZQpbICAgIDEuNzU2OTAwXSBwY2kgMDAwMDow
MDowMi4wOiB2Z2FhcmI6IHNldHRpbmcgYXMgYm9vdCBWR0EgZGV2aWNlClsgICAgMS43NTY5MDBd
IHBjaSAwMDAwOjAwOjAyLjA6IHZnYWFyYjogVkdBIGRldmljZSBhZGRlZDogZGVjb2Rlcz1pbytt
ZW0sb3ducz1pbyttZW0sbG9ja3M9bm9uZQpbICAgIDEuNzU2OTAwXSBwY2kgMDAwMDowMTowMC4w
OiB2Z2FhcmI6IFZHQSBkZXZpY2UgYWRkZWQ6IGRlY29kZXM9aW8rbWVtLG93bnM9bm9uZSxsb2Nr
cz1ub25lClsgICAgMS43NTY5MDBdIHBjaSAwMDAwOjAwOjAyLjA6IHZnYWFyYjogbm8gYnJpZGdl
IGNvbnRyb2wgcG9zc2libGUKWyAgICAxLjc1NjkwMF0gcGNpIDAwMDA6MDE6MDAuMDogdmdhYXJi
OiBicmlkZ2UgY29udHJvbCBwb3NzaWJsZQpbICAgIDEuNzU2OTAwXSB2Z2FhcmI6IGxvYWRlZApb
ICAgIDEuNzU2OTAwXSBTQ1NJIHN1YnN5c3RlbSBpbml0aWFsaXplZApbICAgIDEuNzU2OTAwXSBs
aWJhdGEgdmVyc2lvbiAzLjAwIGxvYWRlZC4KWyAgICAxLjc1NjkwMF0gQUNQSTogYnVzIHR5cGUg
VVNCIHJlZ2lzdGVyZWQKWyAgICAxLjc1NjkwMF0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50
ZXJmYWNlIGRyaXZlciB1c2JmcwpbICAgIDEuNzU2OTAwXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5l
dyBpbnRlcmZhY2UgZHJpdmVyIGh1YgpbICAgIDEuNzU2OTAwXSB1c2Jjb3JlOiByZWdpc3RlcmVk
IG5ldyBkZXZpY2UgZHJpdmVyIHVzYgpbICAgIDEuNzU2OTAwXSBwcHNfY29yZTogTGludXhQUFMg
QVBJIHZlci4gMSByZWdpc3RlcmVkClsgICAgMS43NTY5MDBdIHBwc19jb3JlOiBTb2Z0d2FyZSB2
ZXIuIDUuMy42IC0gQ29weXJpZ2h0IDIwMDUtMjAwNyBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0
aUBsaW51eC5pdD4KWyAgICAxLjc1NjkwMF0gUFRQIGNsb2NrIHN1cHBvcnQgcmVnaXN0ZXJlZApb
ICAgIDEuNzU2OTAwXSBFREFDIE1DOiBWZXI6IDMuMC4wClsgICAgMS43NTcxNTNdIFJlZ2lzdGVy
ZWQgZWZpdmFycyBvcGVyYXRpb25zClsgICAgMS43NTc3OTddIE5ldExhYmVsOiBJbml0aWFsaXpp
bmcKWyAgICAxLjc1Nzc5OF0gTmV0TGFiZWw6ICBkb21haW4gaGFzaCBzaXplID0gMTI4ClsgICAg
MS43NTc3OThdIE5ldExhYmVsOiAgcHJvdG9jb2xzID0gVU5MQUJFTEVEIENJUFNPdjQgQ0FMSVBT
TwpbICAgIDEuNzU3ODA4XSBOZXRMYWJlbDogIHVubGFiZWxlZCB0cmFmZmljIGFsbG93ZWQgYnkg
ZGVmYXVsdApbICAgIDEuNzU3ODExXSBQQ0k6IFVzaW5nIEFDUEkgZm9yIElSUSByb3V0aW5nClsg
ICAgMS44NDE4MjRdIFBDSTogcGNpX2NhY2hlX2xpbmVfc2l6ZSBzZXQgdG8gNjQgYnl0ZXMKWyAg
ICAxLjg0MjM0OF0gZTgyMDogcmVzZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHgwMDA5ZjAwMC0weDAw
MDlmZmZmXQpbICAgIDEuODQyMzUwXSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDg4
ZDU4MDAwLTB4OGJmZmZmZmZdClsgICAgMS44NDIzNTBdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZl
ciBbbWVtIDB4OTc4NmUwMDAtMHg5N2ZmZmZmZl0KWyAgICAxLjg0MjM1MV0gZTgyMDogcmVzZXJ2
ZSBSQU0gYnVmZmVyIFttZW0gMHg5OWM0ZjAwMC0weDliZmZmZmZmXQpbICAgIDEuODQyMzUyXSBl
ODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDE2OTBmMjAwMC0weDE2YmZmZmZmZl0KWyAg
ICAxLjg0MjM1OV0gY2xvY2tzb3VyY2U6IFN3aXRjaGVkIHRvIGNsb2Nrc291cmNlIHRzYy1lYXJs
eQpbICAgIDEuODQ4NjAwXSBWRlM6IERpc2sgcXVvdGFzIGRxdW90XzYuNi4wClsgICAgMS44NDg2
MDhdIFZGUzogRHF1b3QtY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiA1MTIgKG9yZGVyIDAsIDQw
OTYgYnl0ZXMpClsgICAgMS44NDg2MjBdIGh1Z2V0bGJmczogZGlzYWJsaW5nIGJlY2F1c2UgdGhl
cmUgYXJlIG5vIHN1cHBvcnRlZCBodWdlcGFnZSBzaXplcwpbICAgIDEuODQ4NjQ3XSBwbnA6IFBu
UCBBQ1BJIGluaXQKWyAgICAxLjg0ODkwMl0gc3lzdGVtIDAwOjAwOiBbaW8gIDB4MTgwMC0weDE4
ZmVdIGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS44NDg5MDVdIHN5c3RlbSAwMDowMDogW21lbSAw
eGZkMDAwMDAwLTB4ZmQ2OWZmZmZdIGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS44NDg5MDddIHN5
c3RlbSAwMDowMDogW21lbSAweGZkNmMwMDAwLTB4ZmQ2Y2ZmZmZdIGhhcyBiZWVuIHJlc2VydmVk
ClsgICAgMS44NDg5MDhdIHN5c3RlbSAwMDowMDogW21lbSAweGZkNmYwMDAwLTB4ZmRmZmZmZmZd
IGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS44NDg5MDldIHN5c3RlbSAwMDowMDogW21lbSAweGZl
MDAwMDAwLTB4ZmUwMWZmZmZdIGNvdWxkIG5vdCBiZSByZXNlcnZlZApbICAgIDEuODQ4OTExXSBz
eXN0ZW0gMDA6MDA6IFttZW0gMHhmZTIwMDAwMC0weGZlN2ZmZmZmXSBoYXMgYmVlbiByZXNlcnZl
ZApbICAgIDEuODQ4OTEyXSBzeXN0ZW0gMDA6MDA6IFttZW0gMHhmYzdlMDAwMC0weGZjN2UwZmZm
XSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuODQ4OTEzXSBzeXN0ZW0gMDA6MDA6IFttZW0gMHhm
ZjAwMDAwMC0weGZmZmZmZmZmXSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQKWyAgICAxLjg0OTIwMF0g
c3lzdGVtIDAwOjAxOiBbaW8gIDB4MjAwMC0weDIwZmVdIGhhcyBiZWVuIHJlc2VydmVkClsgICAg
MS44NDkyODJdIHN5c3RlbSAwMDowMjogW2lvICAweDA2ODAtMHgwNjlmXSBoYXMgYmVlbiByZXNl
cnZlZApbICAgIDEuODQ5Mjg0XSBzeXN0ZW0gMDA6MDI6IFtpbyAgMHgxNjRlLTB4MTY0Zl0gaGFz
IGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjg0OTI4NF0gc3lzdGVtIDAwOjAyOiBbaW8gIDB4ZmQ2MC0w
eGZkNjNdIGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS44NDkzMTNdIHhlbjogcmVnaXN0ZXJpbmcg
Z3NpIDggdHJpZ2dlcmluZyAxIHBvbGFyaXR5IDAKWyAgICAxLjg0OTQ2Ml0gc3lzdGVtIDAwOjA0
OiBbaW8gIDB4MTg1NC0weDE4NTddIGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS44NDk0ODRdIHhl
bjogcmVnaXN0ZXJpbmcgZ3NpIDEgdHJpZ2dlcmluZyAxIHBvbGFyaXR5IDAKWyAgICAxLjg1MDM1
NF0gc3lzdGVtIDAwOjA2OiBbbWVtIDB4ZmVkMTAwMDAtMHhmZWQxN2ZmZl0gaGFzIGJlZW4gcmVz
ZXJ2ZWQKWyAgICAxLjg1MDM1Nl0gc3lzdGVtIDAwOjA2OiBbbWVtIDB4ZmVkMTgwMDAtMHhmZWQx
OGZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjg1MDM1OF0gc3lzdGVtIDAwOjA2OiBbbWVt
IDB4ZmVkMTkwMDAtMHhmZWQxOWZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjg1MDM1OV0g
c3lzdGVtIDAwOjA2OiBbbWVtIDB4ZTAwMDAwMDAtMHhlZmZmZmZmZl0gaGFzIGJlZW4gcmVzZXJ2
ZWQKWyAgICAxLjg1MDM2MF0gc3lzdGVtIDAwOjA2OiBbbWVtIDB4ZmVkMjAwMDAtMHhmZWQzZmZm
Zl0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjg1MDM2MV0gc3lzdGVtIDAwOjA2OiBbbWVtIDB4
ZmVkOTAwMDAtMHhmZWQ5M2ZmZl0gY291bGQgbm90IGJlIHJlc2VydmVkClsgICAgMS44NTAzNjJd
IHN5c3RlbSAwMDowNjogW21lbSAweGZlZDQ1MDAwLTB4ZmVkOGZmZmZdIGNvdWxkIG5vdCBiZSBy
ZXNlcnZlZApbICAgIDEuODUwMzY0XSBzeXN0ZW0gMDA6MDY6IFttZW0gMHhmZWUwMDAwMC0weGZl
ZWZmZmZmXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuODUwNzM5XSBzeXN0ZW0gMDA6MDc6IFtt
ZW0gMHhmZTAzODAwMC0weGZlMDM4ZmZmXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuODUxMTc0
XSBwbnA6IFBuUCBBQ1BJOiBmb3VuZCA4IGRldmljZXMKWyAgICAxLjg1ODg5NF0gUE0tVGltZXIg
ZmFpbGVkIGNvbnNpc3RlbmN5IGNoZWNrICAoMHhmZmZmZmYpIC0gYWJvcnRpbmcuClsgICAgMS44
NTg5MjddIE5FVDogUmVnaXN0ZXJlZCBQRl9JTkVUIHByb3RvY29sIGZhbWlseQpbICAgIDEuODU4
OTQwXSBJUCBpZGVudHMgaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUzNiAob3JkZXI6IDcsIDUyNDI4
OCBieXRlcywgbGluZWFyKQpbICAgIDEuODU5MjYyXSB0Y3BfbGlzdGVuX3BvcnRhZGRyX2hhc2gg
aGFzaCB0YWJsZSBlbnRyaWVzOiAyMDQ4IChvcmRlcjogMywgMzI3NjggYnl0ZXMsIGxpbmVhcikK
WyAgICAxLjg1OTI2Nl0gVGFibGUtcGVydHVyYiBoYXNoIHRhYmxlIGVudHJpZXM6IDY1NTM2IChv
cmRlcjogNiwgMjYyMTQ0IGJ5dGVzLCBsaW5lYXIpClsgICAgMS44NTkyNjldIFRDUCBlc3RhYmxp
c2hlZCBoYXNoIHRhYmxlIGVudHJpZXM6IDMyNzY4IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzLCBs
aW5lYXIpClsgICAgMS44NTkyOThdIFRDUCBiaW5kIGhhc2ggdGFibGUgZW50cmllczogMzI3Njgg
KG9yZGVyOiA3LCA1MjQyODggYnl0ZXMsIGxpbmVhcikKWyAgICAxLjg1OTMzN10gVENQOiBIYXNo
IHRhYmxlcyBjb25maWd1cmVkIChlc3RhYmxpc2hlZCAzMjc2OCBiaW5kIDMyNzY4KQpbICAgIDEu
ODU5MzYxXSBNUFRDUCB0b2tlbiBoYXNoIHRhYmxlIGVudHJpZXM6IDQwOTYgKG9yZGVyOiA0LCA5
ODMwNCBieXRlcywgbGluZWFyKQpbICAgIDEuODU5MzcyXSBVRFAgaGFzaCB0YWJsZSBlbnRyaWVz
OiAyMDQ4IChvcmRlcjogNCwgNjU1MzYgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjg1OTM3OF0gVURQ
LUxpdGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAyMDQ4IChvcmRlcjogNCwgNjU1MzYgYnl0ZXMsIGxp
bmVhcikKWyAgICAxLjg1OTQwMV0gTkVUOiBSZWdpc3RlcmVkIFBGX1VOSVgvUEZfTE9DQUwgcHJv
dG9jb2wgZmFtaWx5ClsgICAgMS44NTk0MDRdIE5FVDogUmVnaXN0ZXJlZCBQRl9YRFAgcHJvdG9j
b2wgZmFtaWx5ClsgICAgMS44NTk0MDZdIHBjaSAwMDAwOjAxOjAwLjA6IGNhbid0IGNsYWltIEJB
UiA2IFttZW0gMHhmZmY4MDAwMC0weGZmZmZmZmZmIHByZWZdOiBubyBjb21wYXRpYmxlIGJyaWRn
ZSB3aW5kb3cKWyAgICAxLjg1OTQxM10gcGNpIDAwMDA6MDA6MTUuMDogQkFSIDA6IGFzc2lnbmVk
IFttZW0gMHg0MDEwMDAwMDAwLTB4NDAxMDAwMGZmZiA2NGJpdF0KWyAgICAxLjg1OTQ0M10gcGNp
IDAwMDA6MDA6MTUuMTogQkFSIDA6IGFzc2lnbmVkIFttZW0gMHg0MDEwMDAxMDAwLTB4NDAxMDAw
MWZmZiA2NGJpdF0KWyAgICAxLjg1OTQ2N10gcGNpIDAwMDA6MDE6MDAuMDogQkFSIDY6IGFzc2ln
bmVkIFttZW0gMHhhMTA4MDAwMC0weGExMGZmZmZmIHByZWZdClsgICAgMS44NTk0NjldIHBjaSAw
MDAwOjAwOjAxLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMS0wNV0KWyAgICAxLjg1OTQ3MV0gcGNp
IDAwMDA6MDA6MDEuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHg0MDAwLTB4NGZmZl0KWyAgICAx
Ljg1OTQ3N10gcGNpIDAwMDA6MDA6MDEuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhhMDAwMDAw
MC0weGExMGZmZmZmXQpbICAgIDEuODU5NDgxXSBwY2kgMDAwMDowMDowMS4wOiAgIGJyaWRnZSB3
aW5kb3cgW21lbSAweDYwMDAwMDAwMDAtMHg2MDEyMGZmZmZmIDY0Yml0IHByZWZdClsgICAgMS44
NTk0ODldIHBjaSAwMDAwOjAwOjFiLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNl0KWyAgICAxLjg1
OTUwN10gcGNpIDAwMDA6MDA6MWIuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhhMTMwMDAwMC0w
eGExM2ZmZmZmXQpbICAgIDEuODU5NTI3XSBwY2kgMDAwMDowMDoxZC4wOiBQQ0kgYnJpZGdlIHRv
IFtidXMgMDddClsgICAgMS44NTk1MzddIHBjaSAwMDAwOjAwOjFkLjA6ICAgYnJpZGdlIHdpbmRv
dyBbbWVtIDB4YTEyMDAwMDAtMHhhMTJmZmZmZl0KWyAgICAxLjg1OTU1N10gcGNpIDAwMDA6MDA6
MWQuNTogUENJIGJyaWRnZSB0byBbYnVzIDA4XQpbICAgIDEuODU5NTYwXSBwY2kgMDAwMDowMDox
ZC41OiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDMwMDAtMHgzZmZmXQpbICAgIDEuODU5NTcwXSBw
Y2kgMDAwMDowMDoxZC41OiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGExMTAwMDAwLTB4YTExZmZm
ZmZdClsgICAgMS44NTk1OTBdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgNCBbaW8gIDB4MDAw
MC0weDBjZjcgd2luZG93XQpbICAgIDEuODU5NTkxXSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNl
IDUgW2lvICAweDBkMDAtMHhmZmZmIHdpbmRvd10KWyAgICAxLjg1OTU5Ml0gcGNpX2J1cyAwMDAw
OjAwOiByZXNvdXJjZSA2IFttZW0gMHgwMDBhMDAwMC0weDAwMGJmZmZmIHdpbmRvd10KWyAgICAx
Ljg1OTU5M10gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA3IFttZW0gMHg5ZjgwMDAwMC0weGRm
ZmZmZmZmIHdpbmRvd10KWyAgICAxLjg1OTU5NF0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA4
IFttZW0gMHg0MDAwMDAwMDAwLTB4N2ZmZmZmZmZmZiB3aW5kb3ddClsgICAgMS44NTk1OTVdIHBj
aV9idXMgMDAwMDowMDogcmVzb3VyY2UgOSBbbWVtIDB4ZmM4MDAwMDAtMHhmZTdmZmZmZiB3aW5k
b3ddClsgICAgMS44NTk1OTZdIHBjaV9idXMgMDAwMDowMTogcmVzb3VyY2UgMCBbaW8gIDB4NDAw
MC0weDRmZmZdClsgICAgMS44NTk1OTZdIHBjaV9idXMgMDAwMDowMTogcmVzb3VyY2UgMSBbbWVt
IDB4YTAwMDAwMDAtMHhhMTBmZmZmZl0KWyAgICAxLjg1OTU5N10gcGNpX2J1cyAwMDAwOjAxOiBy
ZXNvdXJjZSAyIFttZW0gMHg2MDAwMDAwMDAwLTB4NjAxMjBmZmZmZiA2NGJpdCBwcmVmXQpbICAg
IDEuODU5NTk4XSBwY2lfYnVzIDAwMDA6MDY6IHJlc291cmNlIDEgW21lbSAweGExMzAwMDAwLTB4
YTEzZmZmZmZdClsgICAgMS44NTk1OTldIHBjaV9idXMgMDAwMDowNzogcmVzb3VyY2UgMSBbbWVt
IDB4YTEyMDAwMDAtMHhhMTJmZmZmZl0KWyAgICAxLjg1OTYwMF0gcGNpX2J1cyAwMDAwOjA4OiBy
ZXNvdXJjZSAwIFtpbyAgMHgzMDAwLTB4M2ZmZl0KWyAgICAxLjg1OTYwMF0gcGNpX2J1cyAwMDAw
OjA4OiByZXNvdXJjZSAxIFttZW0gMHhhMTEwMDAwMC0weGExMWZmZmZmXQpbICAgIDEuODU5ODg1
XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgIDEu
ODU5OTc5XSB4ZW46IC0tPiBwaXJxPTE2IC0+IGlycT0xNiAoZ3NpPTE2KQpbICAgIDEuODYyMDc5
XSBwY2kgMDAwMDowMTowMC4xOiBEMCBwb3dlciBzdGF0ZSBkZXBlbmRzIG9uIDAwMDA6MDE6MDAu
MApbICAgIDEuODYyMTA3XSBwY2kgMDAwMDowMTowMC4yOiBEMCBwb3dlciBzdGF0ZSBkZXBlbmRz
IG9uIDAwMDA6MDE6MDAuMApbICAgIDEuODYyMTg0XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0
cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgIDEuODYyMTg3XSBBbHJlYWR5IHNldHVwIHRoZSBH
U0kgOjE2ClsgICAgMS44NjIyMzFdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE4IHRyaWdnZXJpbmcg
MCBwb2xhcml0eSAxClsgICAgMS44NjIyNDBdIHhlbjogLS0+IHBpcnE9MTggLT4gaXJxPTE4IChn
c2k9MTgpClsgICAgMS44NjI0NjBdIHBjaSAwMDAwOjAxOjAwLjM6IEQwIHBvd2VyIHN0YXRlIGRl
cGVuZHMgb24gMDAwMDowMTowMC4wClsgICAgMS44NjI2MzRdIFBDSTogQ0xTIDY0IGJ5dGVzLCBk
ZWZhdWx0IDY0ClsgICAgMS44NjI2NzJdIFRyeWluZyB0byB1bnBhY2sgcm9vdGZzIGltYWdlIGFz
IGluaXRyYW1mcy4uLgpbICAgIDEuODYyNjc1XSBjbG9ja3NvdXJjZTogdHNjOiBtYXNrOiAweGZm
ZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgyNTVjYzllMjI5ZiwgbWF4X2lkbGVfbnM6IDQ0
MDc5NTI3MjQ0MCBucwpbICAgIDEuODYyNzIxXSBjbG9ja3NvdXJjZTogU3dpdGNoZWQgdG8gY2xv
Y2tzb3VyY2UgdHNjClsgICAgMS44NzM0MDRdIEluaXRpYWxpc2Ugc3lzdGVtIHRydXN0ZWQga2V5
cmluZ3MKWyAgICAxLjg3MzQxMV0gS2V5IHR5cGUgYmxhY2tsaXN0IHJlZ2lzdGVyZWQKWyAgICAx
Ljg3MzQ1M10gd29ya2luZ3NldDogdGltZXN0YW1wX2JpdHM9MzYgbWF4X29yZGVyPTIwIGJ1Y2tl
dF9vcmRlcj0wClsgICAgMS44NzQyOTZdIHpidWQ6IGxvYWRlZApbICAgIDEuODc0NTg2XSBpbnRl
Z3JpdHk6IFBsYXRmb3JtIEtleXJpbmcgaW5pdGlhbGl6ZWQKWyAgICAxLjg3OTk0MF0gTkVUOiBS
ZWdpc3RlcmVkIFBGX0FMRyBwcm90b2NvbCBmYW1pbHkKWyAgICAxLjg3OTk0NV0geG9yOiBhdXRv
bWF0aWNhbGx5IHVzaW5nIGJlc3QgY2hlY2tzdW1taW5nIGZ1bmN0aW9uICAgYXZ4ClsgICAgMS44
Nzk5NDhdIEtleSB0eXBlIGFzeW1tZXRyaWMgcmVnaXN0ZXJlZApbICAgIDEuODc5OTQ5XSBBc3lt
bWV0cmljIGtleSBwYXJzZXIgJ3g1MDknIHJlZ2lzdGVyZWQKWyAgICAxLjg3OTk2Nl0gQmxvY2sg
bGF5ZXIgU0NTSSBnZW5lcmljIChic2cpIGRyaXZlciB2ZXJzaW9uIDAuNCBsb2FkZWQgKG1ham9y
IDI0NSkKWyAgICAxLjg4MDAwN10gaW8gc2NoZWR1bGVyIG1xLWRlYWRsaW5lIHJlZ2lzdGVyZWQK
WyAgICAxLjg4MDAwOF0gaW8gc2NoZWR1bGVyIGt5YmVyIHJlZ2lzdGVyZWQKWyAgICAxLjg4MDAy
Ml0gaW8gc2NoZWR1bGVyIGJmcSByZWdpc3RlcmVkClsgICAgMS44ODA3ODldIGF0b21pYzY0X3Rl
c3Q6IHBhc3NlZCBmb3IgeDg2LTY0IHBsYXRmb3JtIHdpdGggQ1g4IGFuZCB3aXRoIFNTRQpbICAg
IDEuODgwOTQ3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjA6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJR
IDE5NApbICAgIDEuODgxMTIxXSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAg
cG9sYXJpdHkgMQpbICAgIDEuODgxMTI0XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE2ClsgICAg
MS44ODEyOTFdIHBjaWVwb3J0IDAwMDA6MDA6MWIuMDogUE1FOiBTaWduYWxpbmcgd2l0aCBJUlEg
MTk1ClsgICAgMS44ODE0MThdIHBjaWVwb3J0IDAwMDA6MDA6MWIuMDogQUVSOiBlbmFibGVkIHdp
dGggSVJRIDE5NQpbICAgIDEuODgxNDg4XSBwY2llcG9ydCAwMDAwOjAwOjFiLjA6IERQQzogZW5h
YmxlZCB3aXRoIElSUSAxOTUKWyAgICAxLjg4MTQ4OV0gcGNpZXBvcnQgMDAwMDowMDoxYi4wOiBE
UEM6IGVycm9yIGNvbnRhaW5tZW50IGNhcGFiaWxpdGllczogSW50IE1zZyAjMCwgUlBFeHQrIFBv
aXNvbmVkVExQKyBTd1RyaWdnZXIrIFJQIFBJTyBMb2cgNCwgRExfQWN0aXZlRXJyKwpbICAgIDEu
ODgxNzE0XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpb
ICAgIDEuODgxNzE2XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE2ClsgICAgMS44ODE4NzddIHBj
aWVwb3J0IDAwMDA6MDA6MWQuMDogUE1FOiBTaWduYWxpbmcgd2l0aCBJUlEgMTk2ClsgICAgMS44
ODE5ODRdIHBjaWVwb3J0IDAwMDA6MDA6MWQuMDogQUVSOiBlbmFibGVkIHdpdGggSVJRIDE5Ngpb
ICAgIDEuODgyMDQ2XSBwY2llcG9ydCAwMDAwOjAwOjFkLjA6IERQQzogZW5hYmxlZCB3aXRoIElS
USAxOTYKWyAgICAxLjg4MjA0N10gcGNpZXBvcnQgMDAwMDowMDoxZC4wOiBEUEM6IGVycm9yIGNv
bnRhaW5tZW50IGNhcGFiaWxpdGllczogSW50IE1zZyAjMCwgUlBFeHQrIFBvaXNvbmVkVExQKyBT
d1RyaWdnZXIrIFJQIFBJTyBMb2cgNCwgRExfQWN0aXZlRXJyKwpbICAgIDEuODgyMjU4XSB4ZW46
IHJlZ2lzdGVyaW5nIGdzaSAxNyB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgIDEuODgyMjY3
XSB4ZW46IC0tPiBwaXJxPTE3IC0+IGlycT0xNyAoZ3NpPTE3KQpbICAgIDEuODgyNDc3XSBwY2ll
cG9ydCAwMDAwOjAwOjFkLjU6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDE5NwpbICAgIDEuODgy
NTgzXSBwY2llcG9ydCAwMDAwOjAwOjFkLjU6IEFFUjogZW5hYmxlZCB3aXRoIElSUSAxOTcKWyAg
ICAxLjg4MjY1NV0gcGNpZXBvcnQgMDAwMDowMDoxZC41OiBEUEM6IGVuYWJsZWQgd2l0aCBJUlEg
MTk3ClsgICAgMS44ODI2NTddIHBjaWVwb3J0IDAwMDA6MDA6MWQuNTogRFBDOiBlcnJvciBjb250
YWlubWVudCBjYXBhYmlsaXRpZXM6IEludCBNc2cgIzAsIFJQRXh0KyBQb2lzb25lZFRMUCsgU3dU
cmlnZ2VyKyBSUCBQSU8gTG9nIDQsIERMX0FjdGl2ZUVycisKWyAgICAxLjg4Mjk5NF0gTW9uaXRv
ci1Nd2FpdCB3aWxsIGJlIHVzZWQgdG8gZW50ZXIgQy0xIHN0YXRlClsgICAgMS44ODMwMTJdIE1v
bml0b3ItTXdhaXQgd2lsbCBiZSB1c2VkIHRvIGVudGVyIEMtMiBzdGF0ZQpbICAgIDEuODgzMDI3
XSBNb25pdG9yLU13YWl0IHdpbGwgYmUgdXNlZCB0byBlbnRlciBDLTMgc3RhdGUKWyAgICAxLjg4
MzAzNV0gQUNQSTogXF9TQl8uUFIwMDogRm91bmQgMyBpZGxlIHN0YXRlcwpbICAgIDEuODgzMDQw
XSBpbnRlbF9pZGxlOiBpbnRlbF9pZGxlIHlpZWxkaW5nIHRvIG5vbmUKWyAgICAxLjg4MzE0OV0g
QUNQSTogQUM6IEFDIEFkYXB0ZXIgW0FDQURdIChvbi1saW5lKQpbICAgIDEuODgzMTg4XSBpbnB1
dDogTGlkIFN3aXRjaCBhcyAvZGV2aWNlcy9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQTA4
OjAwL2RldmljZToyMC9QTlAwQzBEOjAwL2lucHV0L2lucHV0MApbICAgIDEuODgzMTk5XSBBQ1BJ
OiBidXR0b246IExpZCBTd2l0Y2ggW0xJRDBdClsgICAgMS44ODMyMjFdIGlucHV0OiBTbGVlcCBC
dXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAvUE5QMEMwRTowMC9pbnB1
dC9pbnB1dDEKWyAgICAxLjg4MzIzMF0gQUNQSTogYnV0dG9uOiBTbGVlcCBCdXR0b24gW1NMUEJd
ClsgICAgMS44ODMyNDVdIGlucHV0OiBQb3dlciBCdXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06
MDAvTE5YU1lCVVM6MDAvUE5QMEMwQzowMC9pbnB1dC9pbnB1dDIKWyAgICAxLjg4MzMxNl0gQUNQ
STogYnV0dG9uOiBQb3dlciBCdXR0b24gW1BXUkJdClsgICAgMS44ODMzNDFdIGlucHV0OiBQb3dl
ciBCdXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YUFdSQk46MDAvaW5wdXQvaW5wdXQz
ClsgICAgMS44ODMzNjJdIEFDUEk6IGJ1dHRvbjogUG93ZXIgQnV0dG9uIFtQV1JGXQpbICAgIDEu
ODgzNTAyXSBBQ1BJOiBcX1NCXy5QUjAwOiBGb3VuZCAzIGlkbGUgc3RhdGVzClsgICAgMS44ODM2
MzVdIEFDUEk6IFxfU0JfLlBSMDE6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAxLjg4Mzc3N10g
QUNQSTogXF9TQl8uUFIwMjogRm91bmQgMyBpZGxlIHN0YXRlcwpbICAgIDEuODgzOTI5XSBBQ1BJ
OiBcX1NCXy5QUjAzOiBGb3VuZCAzIGlkbGUgc3RhdGVzClsgICAgMS44ODQxMzldIEFDUEk6IFxf
U0JfLlBSMDQ6IEZvdW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAxLjg4NDI5Nl0gQUNQSTogXF9TQl8u
UFIwNTogRm91bmQgMyBpZGxlIHN0YXRlcwpbICAgIDEuODg0NDkzXSBBQ1BJOiBcX1NCXy5QUjA2
OiBGb3VuZCAzIGlkbGUgc3RhdGVzClsgICAgMS44ODQ3MTVdIEFDUEk6IFxfU0JfLlBSMDc6IEZv
dW5kIDMgaWRsZSBzdGF0ZXMKWyAgICAxLjg4NDk0Ml0gQUNQSTogXF9TQl8uUFIwODogRm91bmQg
MyBpZGxlIHN0YXRlcwpbICAgIDEuODg1MTU0XSBBQ1BJOiBcX1NCXy5QUjA5OiBGb3VuZCAzIGlk
bGUgc3RhdGVzClsgICAgMS44ODU2NzNdIEFDUEk6IFxfU0JfLlBSMTA6IEZvdW5kIDMgaWRsZSBz
dGF0ZXMKWyAgICAxLjg4NTkwNV0gQUNQSTogXF9TQl8uUFIxMTogRm91bmQgMyBpZGxlIHN0YXRl
cwpbICAgIDEuODg2NTAwXSB0aGVybWFsIExOWFRIRVJNOjAwOiByZWdpc3RlcmVkIGFzIHRoZXJt
YWxfem9uZTAKWyAgICAxLjg4NjUwMV0gQUNQSTogdGhlcm1hbDogVGhlcm1hbCBab25lIFtUWjAw
XSAoODIgQykKWyAgICAxLjg4NjkwOF0gU2VyaWFsOiA4MjUwLzE2NTUwIGRyaXZlciwgMzIgcG9y
dHMsIElSUSBzaGFyaW5nIGVuYWJsZWQKWyAgICAxLjg4NzQyOV0gQUNQSTogYmF0dGVyeTogU2xv
dCBbQkFUMV0gKGJhdHRlcnkgcHJlc2VudCkKWyAgICAxLjg4ODI4NV0gaHBldF9hY3BpX2FkZDog
bm8gYWRkcmVzcyBvciBpcnFzIGluIF9DUlMKWyAgICAxLjg4ODMyM10gTm9uLXZvbGF0aWxlIG1l
bW9yeSBkcml2ZXIgdjEuMwpbICAgIDEuODg4MzQ3XSBMaW51eCBhZ3BnYXJ0IGludGVyZmFjZSB2
MC4xMDMKWyAgICAxLjkwODc4MF0gaW50ZWwtbHBzcyAwMDAwOjAwOjE1LjA6IGVuYWJsaW5nIGRl
dmljZSAoMDAwNCAtPiAwMDA2KQpbICAgIDEuOTA4ODU4XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAx
NiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgIDEuOTA4ODYyXSBBbHJlYWR5IHNldHVwIHRo
ZSBHU0kgOjE2ClsgICAgMS45MjU3ODVdIGludGVsLWxwc3MgMDAwMDowMDoxNS4xOiBlbmFibGlu
ZyBkZXZpY2UgKDAwMDQgLT4gMDAwNikKWyAgICAxLjkyNTg2Nl0geGVuOiByZWdpc3RlcmluZyBn
c2kgMTcgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICAxLjkyNTg3MV0gQWxyZWFkeSBzZXR1
cCB0aGUgR1NJIDoxNwpbICAgIDEuOTMwOTUwXSBhaGNpIDAwMDA6MDA6MTcuMDogdmVyc2lvbiAz
LjAKWyAgICAxLjkzMTA0MF0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBv
bGFyaXR5IDEKWyAgICAxLjkzMTA0M10gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNgpbICAgIDEu
OTMxMTk5XSBhaGNpIDAwMDA6MDA6MTcuMDogQUhDSSAwMDAxLjAzMDEgMzIgc2xvdHMgMSBwb3J0
cyA2IEdicHMgMHgxIGltcGwgU0FUQSBtb2RlClsgICAgMS45MzEyMDJdIGFoY2kgMDAwMDowMDox
Ny4wOiBmbGFnczogNjRiaXQgbmNxIHNudGYgcG0gY2xvIG9ubHkgcGlvIHNsdW0gcGFydCBlbXMg
ZGVzbyBzYWRtIHNkcyBhcHN0ClsgICAgMS45MzEzODVdIHNjc2kgaG9zdDA6IGFoY2kKWyAgICAx
LjkzMTQyNl0gYXRhMTogU0FUQSBtYXggVURNQS8xMzMgYWJhciBtMjA0OEAweGExNDkzMDAwIHBv
cnQgMHhhMTQ5MzEwMCBpcnEgMTk5ClsgICAgMS45MzE1NzddIHVzYmNvcmU6IHJlZ2lzdGVyZWQg
bmV3IGludGVyZmFjZSBkcml2ZXIgdXNic2VyaWFsX2dlbmVyaWMKWyAgICAxLjkzMTU4MF0gdXNi
c2VyaWFsOiBVU0IgU2VyaWFsIHN1cHBvcnQgcmVnaXN0ZXJlZCBmb3IgZ2VuZXJpYwpbICAgIDEu
OTMxNjAwXSBpODA0MjogUE5QOiBQUy8yIENvbnRyb2xsZXIgW1BOUDAzMDM6UFMyS10gYXQgMHg2
MCwweDY0IGlycSAxClsgICAgMS45MzE2MDFdIGk4MDQyOiBQTlA6IFBTLzIgYXBwZWFycyB0byBo
YXZlIEFVWCBwb3J0IGRpc2FibGVkLCBpZiB0aGlzIGlzIGluY29ycmVjdCBwbGVhc2UgYm9vdCB3
aXRoIGk4MDQyLm5vcG5wClsgICAgMS45MzI0MjFdIHNlcmlvOiBpODA0MiBLQkQgcG9ydCBhdCAw
eDYwLDB4NjQgaXJxIDEKWyAgICAxLjkzMjQ3NF0gbW91c2VkZXY6IFBTLzIgbW91c2UgZGV2aWNl
IGNvbW1vbiBmb3IgYWxsIG1pY2UKWyAgICAxLjkzMjYxOV0gcnRjX2Ntb3MgMDA6MDM6IFJUQyBj
YW4gd2FrZSBmcm9tIFM0ClsgICAgMS45MzQyODFdIHJ0Y19jbW9zIDAwOjAzOiByZWdpc3RlcmVk
IGFzIHJ0YzAKWyAgICAxLjkzNDYzM10gcnRjX2Ntb3MgMDA6MDM6IHNldHRpbmcgc3lzdGVtIGNs
b2NrIHRvIDIwMjMtMTItMjdUMTY6MjQ6NDIgVVRDICgxNzAzNjk0MjgyKQpbICAgIDEuOTM0Njc0
XSBydGNfY21vcyAwMDowMzogYWxhcm1zIHVwIHRvIG9uZSBtb250aCwgeTNrLCAyNDIgYnl0ZXMg
bnZyYW0KWyAgICAxLjkzNDY4Nl0gZGV2aWNlLW1hcHBlcjogY29yZTogQ09ORklHX0lNQV9ESVNB
QkxFX0hUQUJMRSBpcyBkaXNhYmxlZC4gRHVwbGljYXRlIElNQSBtZWFzdXJlbWVudHMgd2lsbCBu
b3QgYmUgcmVjb3JkZWQgaW4gdGhlIElNQSBsb2cuClsgICAgMS45MzQ2OTZdIGRldmljZS1tYXBw
ZXI6IHVldmVudDogdmVyc2lvbiAxLjAuMwpbICAgIDEuOTM0NzM5XSBkZXZpY2UtbWFwcGVyOiBp
b2N0bDogNC40NS4wLWlvY3RsICgyMDIxLTAzLTIyKSBpbml0aWFsaXNlZDogZG0tZGV2ZWxAcmVk
aGF0LmNvbQpbICAgIDEuOTM0ODA0XSBpbnRlbF9wc3RhdGU6IENQVSBtb2RlbCBub3Qgc3VwcG9y
dGVkClsgICAgMS45MzUwNDFdIGVmaWZiOiBwcm9iaW5nIGZvciBlZmlmYgpbICAgIDEuOTM2MDY2
XSBlZmlmYjogTm8gQkdSVCwgbm90IHNob3dpbmcgYm9vdCBncmFwaGljcwpbICAgIDEuOTM2MDY3
XSBlZmlmYjogZnJhbWVidWZmZXIgYXQgMHg0MDAwMDAwMDAwLCB1c2luZyA4MTAwaywgdG90YWwg
ODEwMGsKWyAgICAxLjkzNjA2OF0gZWZpZmI6IG1vZGUgaXMgMTkyMHgxMDgweDMyLCBsaW5lbGVu
Z3RoPTc2ODAsIHBhZ2VzPTEKWyAgICAxLjkzNjA2OV0gZWZpZmI6IHNjcm9sbGluZzogcmVkcmF3
ClsgICAgMS45MzYwNjldIGVmaWZiOiBUcnVlY29sb3I6IHNpemU9ODo4Ojg6OCwgc2hpZnQ9MjQ6
MTY6ODowClsgICAgMS45MzYxMDddIGZiY29uOiBEZWZlcnJpbmcgY29uc29sZSB0YWtlLW92ZXIK
WyAgICAxLjkzNjEwOF0gZmIwOiBFRkkgVkdBIGZyYW1lIGJ1ZmZlciBkZXZpY2UKWyAgICAxLjk0
NDA5OF0gaW5wdXQ6IEFUIFRyYW5zbGF0ZWQgU2V0IDIga2V5Ym9hcmQgYXMgL2RldmljZXMvcGxh
dGZvcm0vaTgwNDIvc2VyaW8wL2lucHV0L2lucHV0NApbICAgIDEuOTczMzM3XSBwc3RvcmU6IFJl
Z2lzdGVyZWQgZWZpIGFzIHBlcnNpc3RlbnQgc3RvcmUgYmFja2VuZApbICAgIDEuOTczMzU0XSBo
aWQ6IHJhdyBISUQgZXZlbnRzIGRyaXZlciAoQykgSmlyaSBLb3NpbmEKWyAgICAxLjk3MzM4MV0g
dXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciB1c2JoaWQKWyAgICAxLjk3
MzM4Ml0gdXNiaGlkOiBVU0IgSElEIGNvcmUgZHJpdmVyClsgICAgMS45NzM0NTFdIGludGVsX3Bt
Y19jb3JlIElOVDMzQTE6MDA6ICBpbml0aWFsaXplZApbICAgIDEuOTczNTUzXSBkcm9wX21vbml0
b3I6IEluaXRpYWxpemluZyBuZXR3b3JrIGRyb3AgbW9uaXRvciBzZXJ2aWNlClsgICAgMS45NzM1
OTZdIEluaXRpYWxpemluZyBYRlJNIG5ldGxpbmsgc29ja2V0ClsgICAgMS45NzM2NTRdIE5FVDog
UmVnaXN0ZXJlZCBQRl9JTkVUNiBwcm90b2NvbCBmYW1pbHkKWyAgICAyLjE5NDEzM10gRnJlZWlu
ZyBpbml0cmQgbWVtb3J5OiAzMjc1NksKWyAgICAyLjE5ODQzOV0gU2VnbWVudCBSb3V0aW5nIHdp
dGggSVB2NgpbICAgIDIuMTk4NDQxXSBSUEwgU2VnbWVudCBSb3V0aW5nIHdpdGggSVB2NgpbICAg
IDIuMTk4NDQ5XSBJbi1zaXR1IE9BTSAoSU9BTSkgd2l0aCBJUHY2ClsgICAgMi4xOTg0NjZdIG1p
cDY6IE1vYmlsZSBJUHY2ClsgICAgMi4xOTg0NjhdIE5FVDogUmVnaXN0ZXJlZCBQRl9QQUNLRVQg
cHJvdG9jb2wgZmFtaWx5ClsgICAgMi4xOTkwMDNdIElQSSBzaG9ydGhhbmQgYnJvYWRjYXN0OiBl
bmFibGVkClsgICAgMi4xOTkwMDldIEFWWDIgdmVyc2lvbiBvZiBnY21fZW5jL2RlYyBlbmdhZ2Vk
LgpbICAgIDIuMTk5MzY0XSBBRVMgQ1RSIG1vZGUgYnk4IG9wdGltaXphdGlvbiBlbmFibGVkClsg
ICAgMi4yMjY5NDZdIHNjaGVkX2Nsb2NrOiBNYXJraW5nIHN0YWJsZSAoMjE5MzA5ODczMiwgMzM4
MzA2NTQpLT4oMjIzNDk2MDA3NSwgLTgwMzA2ODkpClsgICAgMi4yMjcyMTRdIHJlZ2lzdGVyZWQg
dGFza3N0YXRzIHZlcnNpb24gMQpbICAgIDIuMjI3NjQwXSBMb2FkaW5nIGNvbXBpbGVkLWluIFgu
NTA5IGNlcnRpZmljYXRlcwpbICAgIDIuMjI4MTEwXSBMb2FkZWQgWC41MDkgY2VydCAnQnVpbGQg
dGltZSBhdXRvZ2VuZXJhdGVkIGtlcm5lbCBrZXk6IDkwZmUyZmE3NmFkODMyYjdjM2FlNDI0Nzc5
NGFkMDg0MWI0YjlhYWEnClsgICAgMi4yMjg1MTNdIHpzd2FwOiBsb2FkZWQgdXNpbmcgcG9vbCBs
em8vemJ1ZApbICAgIDIuMjI4OTU2XSBwYWdlX293bmVyIGlzIGRpc2FibGVkClsgICAgMi4yMjkw
MTJdIEtleSB0eXBlIC5mc2NyeXB0IHJlZ2lzdGVyZWQKWyAgICAyLjIyOTAxM10gS2V5IHR5cGUg
ZnNjcnlwdC1wcm92aXNpb25pbmcgcmVnaXN0ZXJlZApbICAgIDIuMjI5MjA4XSBCdHJmcyBsb2Fk
ZWQsIGNyYzMyYz1jcmMzMmMtZ2VuZXJpYywgem9uZWQ9eWVzLCBmc3Zlcml0eT15ZXMKWyAgICAy
LjIyOTI2MV0gcHN0b3JlOiBVc2luZyBjcmFzaCBkdW1wIGNvbXByZXNzaW9uOiBkZWZsYXRlClsg
ICAgMi4yMjkyNjhdIEtleSB0eXBlIGJpZ19rZXkgcmVnaXN0ZXJlZApbICAgIDIuMjMyOTY2XSBL
ZXkgdHlwZSBlbmNyeXB0ZWQgcmVnaXN0ZXJlZApbICAgIDIuMjM0Njk4XSBMb2FkaW5nIGNvbXBp
bGVkLWluIG1vZHVsZSBYLjUwOSBjZXJ0aWZpY2F0ZXMKWyAgICAyLjIzNTA4Nl0gTG9hZGVkIFgu
NTA5IGNlcnQgJ0J1aWxkIHRpbWUgYXV0b2dlbmVyYXRlZCBrZXJuZWwga2V5OiA5MGZlMmZhNzZh
ZDgzMmI3YzNhZTQyNDc3OTRhZDA4NDFiNGI5YWFhJwpbICAgIDIuMjM1MDg4XSBpbWE6IEFsbG9j
YXRlZCBoYXNoIGFsZ29yaXRobTogc2hhMjU2ClsgICAgMi4yMzkxMzddIGF0YTE6IFNBVEEgbGlu
ayBkb3duIChTU3RhdHVzIDQgU0NvbnRyb2wgMzAwKQpbICAgIDIuMjUyNzQxXSBpbWE6IE5vIGFy
Y2hpdGVjdHVyZSBwb2xpY2llcyBmb3VuZApbICAgIDIuMjUyNzUyXSBldm06IEluaXRpYWxpc2lu
ZyBFVk0gZXh0ZW5kZWQgYXR0cmlidXRlczoKWyAgICAyLjI1Mjc1Ml0gZXZtOiBzZWN1cml0eS5z
ZWxpbnV4ClsgICAgMi4yNTI3NTNdIGV2bTogc2VjdXJpdHkuU01BQ0s2NCAoZGlzYWJsZWQpClsg
ICAgMi4yNTI3NTNdIGV2bTogc2VjdXJpdHkuU01BQ0s2NEVYRUMgKGRpc2FibGVkKQpbICAgIDIu
MjUyNzU0XSBldm06IHNlY3VyaXR5LlNNQUNLNjRUUkFOU01VVEUgKGRpc2FibGVkKQpbICAgIDIu
MjUyNzU0XSBldm06IHNlY3VyaXR5LlNNQUNLNjRNTUFQIChkaXNhYmxlZCkKWyAgICAyLjI1Mjc1
NV0gZXZtOiBzZWN1cml0eS5hcHBhcm1vcgpbICAgIDIuMjUyNzU1XSBldm06IHNlY3VyaXR5Lmlt
YQpbICAgIDIuMjUyNzU1XSBldm06IHNlY3VyaXR5LmNhcGFiaWxpdHkKWyAgICAyLjI1Mjc1Nl0g
ZXZtOiBITUFDIGF0dHJzOiAweDEKWyAgICAyLjI1MzAwNV0gUE06ICAgTWFnaWMgbnVtYmVyOiAz
OjE0MDo0NDAKWyAgICAyLjI1MzAyNV0gY2xvY2tldmVudHMgYnJvYWRjYXN0OiBoYXNoIG1hdGNo
ZXMKWyAgICAyLjI1MzA0OF0gYWNwaSBJTlQzNTE5OjAwOiBoYXNoIG1hdGNoZXMKWyAgICAyLjI1
MzEyOF0gUkFTOiBDb3JyZWN0YWJsZSBFcnJvcnMgY29sbGVjdG9yIGluaXRpYWxpemVkLgpbICAg
IDIuMjU0MTYxXSBGcmVlaW5nIHVudXNlZCBkZWNyeXB0ZWQgbWVtb3J5OiAyMDM2SwpbICAgIDIu
MjU0OTUyXSBGcmVlaW5nIHVudXNlZCBrZXJuZWwgaW1hZ2UgKGluaXRtZW0pIG1lbW9yeTogMzYw
NEsKWyAgICAyLjI1NDk1NF0gV3JpdGUgcHJvdGVjdGluZyB0aGUga2VybmVsIHJlYWQtb25seSBk
YXRhOiAyNDU3NmsKWyAgICAyLjI2MTY0NF0gRnJlZWluZyB1bnVzZWQga2VybmVsIGltYWdlICh0
ZXh0L3JvZGF0YSBnYXApIG1lbW9yeTogMjAzNksKWyAgICAyLjI2MTgwMl0gRnJlZWluZyB1bnVz
ZWQga2VybmVsIGltYWdlIChyb2RhdGEvZGF0YSBnYXApIG1lbW9yeTogNDQ0SwpbICAgIDIuMjYx
ODA2XSByb2RhdGFfdGVzdDogYWxsIHRlc3RzIHdlcmUgc3VjY2Vzc2Z1bApbICAgIDIuMjYxODEw
XSBSdW4gL2luaXQgYXMgaW5pdCBwcm9jZXNzClsgICAgMi4yNjE4MTFdICAgd2l0aCBhcmd1bWVu
dHM6ClsgICAgMi4yNjE4MTFdICAgICAvaW5pdApbICAgIDIuMjYxODEyXSAgICAgcGxhY2Vob2xk
ZXIKWyAgICAyLjI2MTgxMl0gICAgIHJoZ2IKWyAgICAyLjI2MTgxM10gICB3aXRoIGVudmlyb25t
ZW50OgpbICAgIDIuMjYxODEzXSAgICAgSE9NRT0vClsgICAgMi4yNjE4MTRdICAgICBURVJNPWxp
bnV4ClsgICAgMi4zNTIxNTNdIHN5c3RlbWRbMV06IHN5c3RlbWQgdjI0NS45LTEuZmMzMiBydW5u
aW5nIGluIHN5c3RlbSBtb2RlLiAoK1BBTSArQVVESVQgK1NFTElOVVggK0lNQSAtQVBQQVJNT1Ig
K1NNQUNLICtTWVNWSU5JVCArVVRNUCArTElCQ1JZUFRTRVRVUCArR0NSWVBUICtHTlVUTFMgK0FD
TCArWFogK0xaNCArU0VDQ09NUCArQkxLSUQgK0VMRlVUSUxTICtLTU9EICtJRE4yIC1JRE4gK1BD
UkUyIGRlZmF1bHQtaGllcmFyY2h5PXVuaWZpZWQpClsgICAgMi4zNTIyNjFdIHN5c3RlbWRbMV06
IERldGVjdGVkIGFyY2hpdGVjdHVyZSB4ODYtNjQuClsgICAgMi4zNTIyNjNdIHN5c3RlbWRbMV06
IFJ1bm5pbmcgaW4gaW5pdGlhbCBSQU0gZGlzay4KWyAgICAyLjM1MjI4N10gc3lzdGVtZFsxXTog
U2V0IGhvc3RuYW1lIHRvIDxkb20wPi4KWyAgICAyLjQxOTI5NV0gc3lzdGVtZFsxXTogQ3JlYXRl
ZCBzbGljZSBzeXN0ZW0tc3lzdGVtZFx4MmRjcnlwdHNldHVwLnNsaWNlLgpbICAgIDIuNDE5MzUz
XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBMb2NhbCBGaWxlIFN5c3RlbXMuClsgICAgMi40
MTkzNjRdIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IFNsaWNlcy4KWyAgICAyLjQxOTM3M10g
c3lzdGVtZFsxXTogUmVhY2hlZCB0YXJnZXQgU3dhcC4KWyAgICAyLjQxOTM3OV0gc3lzdGVtZFsx
XTogUmVhY2hlZCB0YXJnZXQgVGltZXJzLgpbICAgIDIuNDE5NTIxXSBzeXN0ZW1kWzFdOiBMaXN0
ZW5pbmcgb24gSm91cm5hbCBBdWRpdCBTb2NrZXQuClsgICAgMi40MTk2MTJdIHN5c3RlbWRbMV06
IExpc3RlbmluZyBvbiBKb3VybmFsIFNvY2tldCAoL2Rldi9sb2cpLgpbICAgIDIuNDE5NzA2XSBz
eXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gSm91cm5hbCBTb2NrZXQuClsgICAgMi40MTk3OTVdIHN5
c3RlbWRbMV06IExpc3RlbmluZyBvbiB1ZGV2IENvbnRyb2wgU29ja2V0LgpbICAgIDIuNDE5ODU1
XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gdWRldiBLZXJuZWwgU29ja2V0LgpbICAgIDIuNDE5
ODYzXSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBTb2NrZXRzLgpbICAgIDIuNDIwODA2XSBz
eXN0ZW1kWzFdOiBTdGFydGluZyBDcmVhdGUgbGlzdCBvZiBzdGF0aWMgZGV2aWNlIG5vZGVzIGZv
ciB0aGUgY3VycmVudCBrZXJuZWwuLi4KWyAgICAyLjQyMjU3Nl0gc3lzdGVtZFsxXTogU3RhcnRp
bmcgSm91cm5hbCBTZXJ2aWNlLi4uClsgICAgMi40MjM1OTNdIHN5c3RlbWRbMV06IFN0YXJ0aW5n
IExvYWQgS2VybmVsIE1vZHVsZXMuLi4KWyAgICAyLjQyNDUyNV0gc3lzdGVtZFsxXTogU3RhcnRp
bmcgU2V0dXAgVmlydHVhbCBDb25zb2xlLi4uClsgICAgMi40MjUwNTddIHN5c3RlbWRbMV06IEZp
bmlzaGVkIENyZWF0ZSBsaXN0IG9mIHN0YXRpYyBkZXZpY2Ugbm9kZXMgZm9yIHRoZSBjdXJyZW50
IGtlcm5lbC4KWyAgICAyLjQyNjE2Ml0gc3lzdGVtZFsxXTogU3RhcnRpbmcgQ3JlYXRlIFN0YXRp
YyBEZXZpY2UgTm9kZXMgaW4gL2Rldi4uLgpbICAgIDIuNDMzODI0XSBzeXN0ZW1kWzFdOiBGaW5p
c2hlZCBDcmVhdGUgU3RhdGljIERldmljZSBOb2RlcyBpbiAvZGV2LgpbICAgIDIuNDUxMzY1XSB4
ZW46eGVuX2V2dGNobjogRXZlbnQtY2hhbm5lbCBkZXZpY2UgaW5zdGFsbGVkClsgICAgMi40NTY2
MzddIHhlbl9wY2liYWNrOiBiYWNrZW5kIGlzIHZwY2kKWyAgICAyLjQ1OTM3NF0geGVuX2FjcGlf
cHJvY2Vzc29yOiBVcGxvYWRpbmcgWGVuIHByb2Nlc3NvciBQTSBpbmZvClsgICAgMi40NjM3NTVd
IHN5c3RlbWRbMV06IEZpbmlzaGVkIExvYWQgS2VybmVsIE1vZHVsZXMuClsgICAgMi40NjM4MDBd
IGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzY5NDI4My4wMjg6Mik6IHBpZD0xIHVpZD0wIGF1
aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9c3lzdGVtZC1tb2R1bGVzLWxv
YWQgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1l
PT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAgMi40NjQ3MzddIHN5c3RlbWRb
MV06IFN0YXJ0aW5nIEFwcGx5IEtlcm5lbCBWYXJpYWJsZXMuLi4KWyAgICAyLjQ3MjI2N10gc3lz
dGVtZFsxXTogU3RhcnRlZCBKb3VybmFsIFNlcnZpY2UuClsgICAgMi40NzIzNTFdIGF1ZGl0OiB0
eXBlPTExMzAgYXVkaXQoMTcwMzY5NDI4My4wMzY6Myk6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2
NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9c3lzdGVtZC1qb3VybmFsZCBjb21tPSJzeXN0
ZW1kIiBleGU9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVy
bWluYWw9PyByZXM9c3VjY2VzcycKWyAgICAyLjQ3MjgwMV0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRp
dCgxNzAzNjk0MjgzLjAzNzo0KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0
OTY3Mjk1IG1zZz0ndW5pdD1zeXN0ZW1kLXN5c2N0bCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3Iv
bGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3Vj
Y2VzcycKWyAgICAyLjQ4NDI2Ml0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNjk0MjgzLjA0
ODo1KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0ndW5p
dD1zeXN0ZW1kLXRtcGZpbGVzLXNldHVwIGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lz
dGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpb
ICAgIDIuNDg1MjQwXSBhdWRpdDogdHlwZT0xMTMwIGF1ZGl0KDE3MDM2OTQyODMuMDQ5OjYpOiBw
aWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PXN5c3Rl
bWQtdmNvbnNvbGUtc2V0dXAgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5
c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAgMi41
NTEwMThdIHBjaWJhY2sgMDAwMDowMDoxNC4zOiB4ZW5fcGNpYmFjazogc2VpemluZyBkZXZpY2UK
WyAgICAyLjU1MjI4MF0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFy
aXR5IDEKWyAgICAyLjU1MjI4N10gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNgpbICAgIDIuNjYx
MTkwXSBwY2liYWNrIDAwMDA6MDg6MDAuMDogeGVuX3BjaWJhY2s6IHNlaXppbmcgZGV2aWNlClsg
ICAgMi42NjE1MTVdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE3IHRyaWdnZXJpbmcgMCBwb2xhcml0
eSAxClsgICAgMi42NjE1MjVdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTcKWyAgICAzLjcxOTUy
OV0gYXVkaXQ6IHR5cGU9MTMzNCBhdWRpdCgxNzAzNjk0Mjg0LjI4Mzo3KTogcHJvZy1pZD01IG9w
PVVOTE9BRApbICAgIDMuNzE5NjI5XSBhdWRpdDogdHlwZT0xMzM0IGF1ZGl0KDE3MDM2OTQyODQu
MjgzOjgpOiBwcm9nLWlkPTQgb3A9VU5MT0FEClsgICAgMy43MTk3MTJdIGF1ZGl0OiB0eXBlPTEz
MzQgYXVkaXQoMTcwMzY5NDI4NC4yODM6OSk6IHByb2ctaWQ9MyBvcD1VTkxPQUQKWyAgICAzLjc4
NjUyN10gYXVkaXQ6IHR5cGU9MTMzNCBhdWRpdCgxNzAzNjk0Mjg0LjM1MDoxMCk6IHByb2ctaWQ9
NiBvcD1MT0FEClsgICAgNC4wMzQwNDBdIHdtaV9idXMgd21pX2J1cy1QTlAwQzE0OjAyOiBXUSBk
YXRhIGJsb2NrIHF1ZXJ5IGNvbnRyb2wgbWV0aG9kIG5vdCBmb3VuZApbICAgIDQuMDM0MDQ1XSB3
bWlfYnVzIHdtaV9idXMtUE5QMEMxNDowMjogV1EgZGF0YSBibG9jayBxdWVyeSBjb250cm9sIG1l
dGhvZCBub3QgZm91bmQKWyAgICA0LjAzNDA0N10gd21pX2J1cyB3bWlfYnVzLVBOUDBDMTQ6MDI6
IFdRIGRhdGEgYmxvY2sgcXVlcnkgY29udHJvbCBtZXRob2Qgbm90IGZvdW5kClsgICAgNC4wMzQw
NDhdIHdtaV9idXMgd21pX2J1cy1QTlAwQzE0OjAyOiBXUSBkYXRhIGJsb2NrIHF1ZXJ5IGNvbnRy
b2wgbWV0aG9kIG5vdCBmb3VuZApbICAgIDQuMDM0MTkzXSBhY3BpIFBOUDBDMTQ6MDQ6IGR1cGxp
Y2F0ZSBXTUkgR1VJRCAwNTkwMTIyMS1ENTY2LTExRDEtQjJGMC0wMEEwQzkwNjI5MTAgKGZpcnN0
IGluc3RhbmNlIHdhcyBvbiBQTlAwQzE0OjAwKQpbICAgIDQuMDM0MjM3XSBhY3BpIFBOUDBDMTQ6
MDU6IGR1cGxpY2F0ZSBXTUkgR1VJRCAwNTkwMTIyMS1ENTY2LTExRDEtQjJGMC0wMEEwQzkwNjI5
MTAgKGZpcnN0IGluc3RhbmNlIHdhcyBvbiBQTlAwQzE0OjAwKQpbICAgIDQuMTM2OTQ1XSBpbnB1
dDogRUxBTjA1MEE6MDEgMDRGMzozMTU4IE1vdXNlIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAw
MDowMDoxNS4xL2kyY19kZXNpZ253YXJlLjEvaTJjLTEvaTJjLUVMQU4wNTBBOjAxLzAwMTg6MDRG
MzozMTU4LjAwMDEvaW5wdXQvaW5wdXQ1ClsgICAgNC4xMzcwNDVdIGlucHV0OiBFTEFOMDUwQTow
MSAwNEYzOjMxNTggVG91Y2hwYWQgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjE1LjEv
aTJjX2Rlc2lnbndhcmUuMS9pMmMtMS9pMmMtRUxBTjA1MEE6MDEvMDAxODowNEYzOjMxNTguMDAw
MS9pbnB1dC9pbnB1dDcKWyAgICA0LjEzNzEzN10gaGlkLWdlbmVyaWMgMDAxODowNEYzOjMxNTgu
MDAwMTogaW5wdXQsaGlkcmF3MDogSTJDIEhJRCB2MS4wMCBNb3VzZSBbRUxBTjA1MEE6MDEgMDRG
MzozMTU4XSBvbiBpMmMtRUxBTjA1MEE6MDEKWyAgICA0LjE0MTI3NF0geGVuOiByZWdpc3Rlcmlu
ZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICA0LjE0MTI4MV0gQWxyZWFkeSBz
ZXR1cCB0aGUgR1NJIDoxNgpbICAgIDQuMTQxMzQ3XSB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IHhI
Q0kgSG9zdCBDb250cm9sbGVyClsgICAgNC4xNDMzNTFdIHhoY2lfaGNkIDAwMDA6MDA6MTQuMDog
bmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAxClsgICAgNC4xNDQ0
NTldIHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogaGNjIHBhcmFtcyAweDIwMDA3N2MxIGhjaSB2ZXJz
aW9uIDB4MTEwIHF1aXJrcyAweDAwMDAwMDAwMDAwMDk4MTAKWyAgICA0LjE0ODcyMl0gbnZtZSAw
MDAwOjA2OjAwLjA6IHBsYXRmb3JtIHF1aXJrOiBzZXR0aW5nIHNpbXBsZSBzdXNwZW5kClsgICAg
NC4xNDg4MTJdIG52bWUgbnZtZTA6IHBjaSBmdW5jdGlvbiAwMDAwOjA2OjAwLjAKWyAgICA0LjE0
OTEwN10geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAg
ICA0LjE0OTExMl0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNgpbICAgIDQuMTQ5Nzc3XSBudm1l
IDAwMDA6MDc6MDAuMDogcGxhdGZvcm0gcXVpcms6IHNldHRpbmcgc2ltcGxlIHN1c3BlbmQKWyAg
ICA0LjE1MDA5NV0gbnZtZSBudm1lMTogcGNpIGZ1bmN0aW9uIDAwMDA6MDc6MDAuMApbICAgIDQu
MTUwMjYwXSB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAg
NC4xNTAzMjBdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAx
ClsgICAgNC4xNTAzMjZdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYKWyAgICA0LjE1MDQyMF0g
eGhjaV9oY2QgMDAwMDowMDoxNC4wOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBi
dXMgbnVtYmVyIDIKWyAgICA0LjE1MDQyNl0geGhjaV9oY2QgMDAwMDowMDoxNC4wOiBIb3N0IHN1
cHBvcnRzIFVTQiAzLjEgRW5oYW5jZWQgU3VwZXJTcGVlZApbICAgIDQuMTUwNTExXSB1c2IgdXNi
MTogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAyLCBi
Y2REZXZpY2U9IDUuMTUKWyAgICA0LjE1MDUxNF0gdXNiIHVzYjE6IE5ldyBVU0IgZGV2aWNlIHN0
cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xClsgICAgNC4xNTA1MTVdIHVz
YiB1c2IxOiBQcm9kdWN0OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDQuMTUwNTE2XSB1c2Ig
dXNiMTogTWFudWZhY3R1cmVyOiBMaW51eCA1LjE1Ljk0LTEucXViZXMuZmMzMi54ODZfNjQgeGhj
aS1oY2QKWyAgICA0LjE1MDUxOF0gdXNiIHVzYjE6IFNlcmlhbE51bWJlcjogMDAwMDowMDoxNC4w
ClsgICAgNC4xNTIzNjZdIGh1YiAxLTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgNC4xNTI0MDVd
IGh1YiAxLTA6MS4wOiAxNiBwb3J0cyBkZXRlY3RlZApbICAgIDQuMTU0MDY0XSB1c2IgdXNiMjog
TmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAzLCBiY2RE
ZXZpY2U9IDUuMTUKWyAgICA0LjE1NDA2Nl0gdXNiIHVzYjI6IE5ldyBVU0IgZGV2aWNlIHN0cmlu
Z3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xClsgICAgNC4xNTQwNjddIHVzYiB1
c2IyOiBQcm9kdWN0OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDQuMTU0MDY4XSB1c2IgdXNi
MjogTWFudWZhY3R1cmVyOiBMaW51eCA1LjE1Ljk0LTEucXViZXMuZmMzMi54ODZfNjQgeGhjaS1o
Y2QKWyAgICA0LjE1NDA2OV0gdXNiIHVzYjI6IFNlcmlhbE51bWJlcjogMDAwMDowMDoxNC4wClsg
ICAgNC4xNTQxNzRdIGh1YiAyLTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgNC4xNTQxOTRdIGh1
YiAyLTA6MS4wOiA4IHBvcnRzIGRldGVjdGVkClsgICAgNC4xNTUyMTBdIHVzYjogcG9ydCBwb3dl
ciBtYW5hZ2VtZW50IG1heSBiZSB1bnJlbGlhYmxlClsgICAgNC4xNTYwNzJdIHhlbjogcmVnaXN0
ZXJpbmcgZ3NpIDE4IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAgNC4xNTYwNzddIEFscmVh
ZHkgc2V0dXAgdGhlIEdTSSA6MTgKWyAgICA0LjE1NjEyOF0geGhjaV9oY2QgMDAwMDowMTowMC4y
OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDQuMTU2MTc3XSB4aGNpX2hjZCAwMDAwOjAxOjAw
LjI6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgMwpbICAgIDQu
MTU2NDIwXSBudm1lIG52bWUwOiBtaXNzaW5nIG9yIGludmFsaWQgU1VCTlFOIGZpZWxkLgpbICAg
IDQuMTU2NDQxXSBudm1lIG52bWUwOiBTaHV0ZG93biB0aW1lb3V0IHNldCB0byA4IHNlY29uZHMK
WyAgICA0LjE1Njc3OV0geGhjaV9oY2QgMDAwMDowMTowMC4yOiBoY2MgcGFyYW1zIDB4MDE4MGZm
MDUgaGNpIHZlcnNpb24gMHgxMTAgcXVpcmtzIDB4MDAwMDAwMDAwMDAwMDAxMApbICAgIDQuMTU2
OTY4XSB4aGNpX2hjZCAwMDAwOjAxOjAwLjI6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgNC4x
NTcwNDBdIHhoY2lfaGNkIDAwMDA6MDE6MDAuMjogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNz
aWduZWQgYnVzIG51bWJlciA0ClsgICAgNC4xNTcwNDJdIHhoY2lfaGNkIDAwMDA6MDE6MDAuMjog
SG9zdCBzdXBwb3J0cyBVU0IgMy4xIEVuaGFuY2VkIFN1cGVyU3BlZWQKWyAgICA0LjE1NzExOV0g
dXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9
MDAwMiwgYmNkRGV2aWNlPSA1LjE1ClsgICAgNC4xNTcxMjBdIHVzYiB1c2IzOiBOZXcgVVNCIGRl
dmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MQpbICAgIDQuMTU3
MTIxXSB1c2IgdXNiMzogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICA0LjE1NzEy
Ml0gdXNiIHVzYjM6IE1hbnVmYWN0dXJlcjogTGludXggNS4xNS45NC0xLnF1YmVzLmZjMzIueDg2
XzY0IHhoY2ktaGNkClsgICAgNC4xNTcxMjNdIHVzYiB1c2IzOiBTZXJpYWxOdW1iZXI6IDAwMDA6
MDE6MDAuMgpbICAgIDQuMTU3MjE2XSBodWIgMy0wOjEuMDogVVNCIGh1YiBmb3VuZApbICAgIDQu
MTU3MjM2XSBodWIgMy0wOjEuMDogMiBwb3J0cyBkZXRlY3RlZApbICAgIDQuMTU3NTA1XSB1c2Ig
dXNiNDogV2UgZG9uJ3Qga25vdyB0aGUgYWxnb3JpdGhtcyBmb3IgTFBNIGZvciB0aGlzIGhvc3Qs
IGRpc2FibGluZyBMUE0uClsgICAgNC4xNTc1NDddIHVzYiB1c2I0OiBOZXcgVVNCIGRldmljZSBm
b3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDMsIGJjZERldmljZT0gNS4xNQpbICAg
IDQuMTU3NTQ4XSB1c2IgdXNiNDogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1
Y3Q9MiwgU2VyaWFsTnVtYmVyPTEKWyAgICA0LjE1NzU0OV0gdXNiIHVzYjQ6IFByb2R1Y3Q6IHhI
Q0kgSG9zdCBDb250cm9sbGVyClsgICAgNC4xNTc1NTBdIHVzYiB1c2I0OiBNYW51ZmFjdHVyZXI6
IExpbnV4IDUuMTUuOTQtMS5xdWJlcy5mYzMyLng4Nl82NCB4aGNpLWhjZApbICAgIDQuMTU3NTUw
XSB1c2IgdXNiNDogU2VyaWFsTnVtYmVyOiAwMDAwOjAxOjAwLjIKWyAgICA0LjE1NzY2Ml0gaHVi
IDQtMDoxLjA6IFVTQiBodWIgZm91bmQKWyAgICA0LjE1NzY3N10gaHViIDQtMDoxLjA6IDQgcG9y
dHMgZGV0ZWN0ZWQKWyAgICA0LjE3MTY3N10gbnZtZSBudm1lMDogMTIvMC8wIGRlZmF1bHQvcmVh
ZC9wb2xsIHF1ZXVlcwpbICAgIDQuMTc0ODUzXSAgbnZtZTBuMTogcDEgcDIgcDMgcDQgcDUgcDYg
cDcgcDgKWyAgICA0LjE4Mjk0NF0gbnZtZSBudm1lMTogYWxsb2NhdGVkIDY0IE1pQiBob3N0IG1l
bW9yeSBidWZmZXIuClsgICAgNC4xODQyMDldIGlucHV0OiBFTEFOMDUwQTowMSAwNEYzOjMxNTgg
TW91c2UgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjE1LjEvaTJjX2Rlc2lnbndhcmUu
MS9pMmMtMS9pMmMtRUxBTjA1MEE6MDEvMDAxODowNEYzOjMxNTguMDAwMS9pbnB1dC9pbnB1dDgK
WyAgICA0LjE4NDMwM10gaW5wdXQ6IEVMQU4wNTBBOjAxIDA0RjM6MzE1OCBUb3VjaHBhZCBhcyAv
ZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MTUuMS9pMmNfZGVzaWdud2FyZS4xL2kyYy0xL2ky
Yy1FTEFOMDUwQTowMS8wMDE4OjA0RjM6MzE1OC4wMDAxL2lucHV0L2lucHV0MTAKWyAgICA0LjE4
NDM4MF0gaGlkLW11bHRpdG91Y2ggMDAxODowNEYzOjMxNTguMDAwMTogaW5wdXQsaGlkcmF3MDog
STJDIEhJRCB2MS4wMCBNb3VzZSBbRUxBTjA1MEE6MDEgMDRGMzozMTU4XSBvbiBpMmMtRUxBTjA1
MEE6MDEKWyAgICA0LjIwNDQ2MF0gbnZtZSBudm1lMTogMTIvMC8wIGRlZmF1bHQvcmVhZC9wb2xs
IHF1ZXVlcwpbICAgIDQuMjExNDcwXSAgbnZtZTFuMTogcDIgcDMgcDQgcDUgcDYKWyAgICA0LjI1
MjI2N10gQUNQSSBXYXJuaW5nOiBcX1NCLlBDSTAuR0ZYMC5fRFNNOiBBcmd1bWVudCAjNCB0eXBl
IG1pc21hdGNoIC0gRm91bmQgW0J1ZmZlcl0sIEFDUEkgcmVxdWlyZXMgW1BhY2thZ2VdICgyMDIx
MDczMC9uc2FyZ3VtZW50cy02MSkKWyAgICA0LjI1MjMxNF0gQUNQSSBXYXJuaW5nOiBcX1NCLlBD
STAuUEVHMC5QRUdQLl9EU006IEFyZ3VtZW50ICM0IHR5cGUgbWlzbWF0Y2ggLSBGb3VuZCBbQnVm
ZmVyXSwgQUNQSSByZXF1aXJlcyBbUGFja2FnZV0gKDIwMjEwNzMwL25zYXJndW1lbnRzLTYxKQpb
ICAgIDQuMjUyNDg2XSBwY2kgMDAwMDowMTowMC4wOiBvcHRpbXVzIGNhcGFiaWxpdGllczogZW5h
YmxlZCwgc3RhdHVzIGR5bmFtaWMgcG93ZXIsIGhkYSBiaW9zIGNvZGVjIHN1cHBvcnRlZApbICAg
IDQuMjUyNDg5XSBWR0Egc3dpdGNoZXJvbzogZGV0ZWN0ZWQgT3B0aW11cyBEU00gbWV0aG9kIFxf
U0JfLlBDSTAuUEVHMC5QRUdQIGhhbmRsZQpbICAgIDQuMjUyNDkwXSBub3V2ZWF1OiBkZXRlY3Rl
ZCBQUiBzdXBwb3J0LCB3aWxsIG5vdCB1c2UgRFNNClsgICAgNC4yNTI1MTddIG5vdXZlYXUgMDAw
MDowMTowMC4wOiBlbmFibGluZyBkZXZpY2UgKDAwMDYgLT4gMDAwNykKWyAgICA0LjI1MjU5MF0g
eGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgICA0LjI1
MjU5Nl0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNgpbICAgIDQuMjU5NDk5XSB4ZW46IHJlZ2lz
dGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgIDQuMjU5NTA4XSBBbHJl
YWR5IHNldHVwIHRoZSBHU0kgOjE2ClsgICAgNC4yNjE1ODBdIG5vdXZlYXUgMDAwMDowMTowMC4w
OiBOVklESUEgVFUxMDYgKDE2NjAwMGExKQpbICAgIDQuMjg3NTQ2XSB4ZW46IHJlZ2lzdGVyaW5n
IGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgIDQuMjg3NTUzXSBBbHJlYWR5IHNl
dHVwIHRoZSBHU0kgOjE2ClsgICAgNC4yODkxNzNdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSBW
VC1kIGFjdGl2ZSBmb3IgZ2Z4IGFjY2VzcwpbICAgIDQuMjg5MTc2XSBpOTE1IDAwMDA6MDA6MDIu
MDogdmdhYXJiOiBkZWFjdGl2YXRlIHZnYSBjb25zb2xlClsgICAgNC4zMzM2MDVdIG5vdXZlYXUg
MDAwMDowMTowMC4wOiBiaW9zOiB2ZXJzaW9uIDkwLjA2LjU5LjAwLjczClsgICAgNC4zMzQwMDVd
IG5vdXZlYXUgMDAwMDowMTowMC4wOiBwbXU6IGZpcm13YXJlIHVuYXZhaWxhYmxlClsgICAgNC4z
MzQ2MTNdIG5vdXZlYXUgMDAwMDowMTowMC4wOiBmYjogODE5MiBNaUIgR0REUjYKWyAgICA0LjMz
NjUxNF0gaTkxNSAwMDAwOjAwOjAyLjA6IHZnYWFyYjogY2hhbmdlZCBWR0EgZGVjb2Rlczogb2xk
ZGVjb2Rlcz1pbyttZW0sZGVjb2Rlcz1ub25lOm93bnM9aW8rbWVtClsgICAgNC4zMzY4MDRdIGk5
MTUgMDAwMDowMDowMi4wOiBbZHJtXSBGaW5pc2hlZCBsb2FkaW5nIERNQyBmaXJtd2FyZSBpOTE1
L2tibF9kbWNfdmVyMV8wNC5iaW4gKHYxLjQpClsgICAgNC4zNDY3NDRdIG5vdXZlYXUgMDAwMDow
MTowMC4wOiBEUk06IFZSQU06IDgxOTIgTWlCClsgICAgNC4zNDY3NDZdIG5vdXZlYXUgMDAwMDow
MTowMC4wOiBEUk06IEdBUlQ6IDUzNjg3MDkxMiBNaUIKWyAgICA0LjM0Njc0N10gbm91dmVhdSAw
MDAwOjAxOjAwLjA6IERSTTogQklUIHRhYmxlICdBJyBub3QgZm91bmQKWyAgICA0LjM0Njc0OF0g
bm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogQklUIHRhYmxlICdMJyBub3QgZm91bmQKWyAgICA0
LjM0Njc0OV0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogVE1EUyB0YWJsZSB2ZXJzaW9uIDIu
MApbICAgIDQuMzQ2NzUwXSBub3V2ZWF1IDAwMDA6MDE6MDAuMDogRFJNOiBEQ0IgdmVyc2lvbiA0
LjEKWyAgICA0LjM0Njc1MV0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENCIG91dHAgMDA6
IDAyMDAyZjUyIDAwMDIwMDEwClsgICAgNC4zNDY3NTJdIG5vdXZlYXUgMDAwMDowMTowMC4wOiBE
Uk06IERDQiBvdXRwIDAxOiAwMTgxMGYzNiAwNDYwMDAxMApbICAgIDQuMzQ2NzUzXSBub3V2ZWF1
IDAwMDA6MDE6MDAuMDogRFJNOiBEQ0Igb3V0cCAwMjogMDE4MTBmMzIgMDAwMjAwMTAKWyAgICA0
LjM0Njc1NF0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENCIGNvbm4gMDA6IDAwMDAxMDQ2
ClsgICAgNC4zNDY3NTVdIG5vdXZlYXUgMDAwMDowMTowMC4wOiBEUk06IERDQiBjb25uIDAyOiAw
MDAxMDI2MQpbICAgIDQuMzQ3MDgxXSBub3V2ZWF1IDAwMDA6MDE6MDAuMDogRFJNOiBNTTogdXNp
bmcgQ09QWSBmb3IgYnVmZmVyIGNvcGllcwpbICAgIDQuMzczMzcxXSBpOTE1IDAwMDA6MDA6MDIu
MDogW2RybV0gUGFuZWwgaXMgbWlzc2luZyBIRFIgc3RhdGljIG1ldGFkYXRhLiBQb3NzaWJsZSBz
dXBwb3J0IGZvciBJbnRlbCBIRFIgYmFja2xpZ2h0IGludGVyZmFjZSBpcyBub3QgdXNlZC4gSWYg
eW91ciBiYWNrbGlnaHQgY29udHJvbHMgZG9uJ3Qgd29yayB0cnkgYm9vdGluZyB3aXRoIGk5MTUu
ZW5hYmxlX2RwY2RfYmFja2xpZ2h0PTMuIG5lZWRzIHRoaXMsIHBsZWFzZSBmaWxlIGEgX25ld18g
YnVnIHJlcG9ydCBvbiBkcm0vaTkxNSwgc2VlIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9y
Zy9kcm0vaW50ZWwvLS93aWtpcy9Ib3ctdG8tZmlsZS1pOTE1LWJ1Z3MgZm9yIGRldGFpbHMuClsg
ICAgNC4zNzM1NDNdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSBbRU5DT0RFUjoxMDI6RERJIEMv
UEhZIENdIGlzIGRpc2FibGVkL2luIERTSSBtb2RlIHdpdGggYW4gdW5nYXRlZCBEREkgY2xvY2ss
IGdhdGUgaXQKWyAgICA0LjM5NzgwOF0gdXNiIDEtMjogbmV3IGZ1bGwtc3BlZWQgVVNCIGRldmlj
ZSBudW1iZXIgMiB1c2luZyB4aGNpX2hjZApbICAgIDQuNDAxNzk1XSBub3V2ZWF1IDAwMDA6MDE6
MDAuMDogW2RybV0gQ2Fubm90IGZpbmQgYW55IGNydGMgb3Igc2l6ZXMKWyAgICA0LjQwMzI1MF0g
W2RybV0gSW5pdGlhbGl6ZWQgbm91dmVhdSAxLjMuMSAyMDEyMDgwMSBmb3IgMDAwMDowMTowMC4w
IG9uIG1pbm9yIDEKWyAgICA0LjQwMzI1M10gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRGlz
YWJsaW5nIFBDSSBwb3dlciBtYW5hZ2VtZW50IHRvIGF2b2lkIGJ1ZwpbICAgIDQuNDU0NzgzXSBu
b3V2ZWF1IDAwMDA6MDE6MDAuMDogW2RybV0gQ2Fubm90IGZpbmQgYW55IGNydGMgb3Igc2l6ZXMK
WyAgICA0LjUwNzgwMV0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IFtkcm1dIENhbm5vdCBmaW5kIGFu
eSBjcnRjIG9yIHNpemVzClsgICAgNC41MzA4NzZdIHVzYiAxLTI6IE5ldyBVU0IgZGV2aWNlIGZv
dW5kLCBpZFZlbmRvcj0wNGQ5LCBpZFByb2R1Y3Q9ZmM0OSwgYmNkRGV2aWNlPSAzLjMwClsgICAg
NC41MzA4ODhdIHVzYiAxLTI6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0wLCBQcm9kdWN0
PTIsIFNlcmlhbE51bWJlcj0wClsgICAgNC41MzA4OTRdIHVzYiAxLTI6IFByb2R1Y3Q6IFVTQiBH
YW1pbmcgTW91c2UKWyAgICA0LjUzMTExN10gdXNiIDEtMjogRGV2aWNlIGlzIG5vdCBhdXRob3Jp
emVkIGZvciB1c2FnZQpbICAgIDQuNTM1ODQ3XSBpbnB1dDogVVNCIEdhbWluZyBNb3VzZSBhcyAv
ZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MTQuMC91c2IxLzEtMi8xLTI6MS4wLzAwMDM6MDRE
OTpGQzQ5LjAwMDIvaW5wdXQvaW5wdXQxMQpbICAgIDQuNTM2MTQxXSBoaWQtZ2VuZXJpYyAwMDAz
OjA0RDk6RkM0OS4wMDAyOiBpbnB1dCxoaWRyYXcxOiBVU0IgSElEIHYxLjEwIE1vdXNlIFtVU0Ig
R2FtaW5nIE1vdXNlXSBvbiB1c2ItMDAwMDowMDoxNC4wLTIvaW5wdXQwClsgICAgNC41Mzg4NDFd
IGlucHV0OiBVU0IgR2FtaW5nIE1vdXNlIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDox
NC4wL3VzYjEvMS0yLzEtMjoxLjEvMDAwMzowNEQ5OkZDNDkuMDAwMy9pbnB1dC9pbnB1dDEyClsg
ICAgNC41OTEyMDFdIGhpZC1nZW5lcmljIDAwMDM6MDREOTpGQzQ5LjAwMDM6IGlucHV0LGhpZHJh
dzI6IFVTQiBISUQgdjEuMTAgS2V5Ym9hcmQgW1VTQiBHYW1pbmcgTW91c2VdIG9uIHVzYi0wMDAw
OjAwOjE0LjAtMi9pbnB1dDEKWyAgICA0LjU5NjY5N10gaW5wdXQ6IFVTQiBHYW1pbmcgTW91c2Ug
Q29uc3VtZXIgQ29udHJvbCBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MTQuMC91c2Ix
LzEtMi8xLTI6MS4yLzAwMDM6MDREOTpGQzQ5LjAwMDQvaW5wdXQvaW5wdXQxMwpbICAgIDQuNjQ0
ODc2XSB1c2IgMS01OiBuZXcgaGlnaC1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciAzIHVzaW5nIHho
Y2lfaGNkClsgICAgNC42NDgzNTNdIGlucHV0OiBVU0IgR2FtaW5nIE1vdXNlIGFzIC9kZXZpY2Vz
L3BjaTAwMDA6MDAvMDAwMDowMDoxNC4wL3VzYjEvMS0yLzEtMjoxLjIvMDAwMzowNEQ5OkZDNDku
MDAwNC9pbnB1dC9pbnB1dDE0ClsgICAgNC42NDg5NzNdIGhpZC1nZW5lcmljIDAwMDM6MDREOTpG
QzQ5LjAwMDQ6IGlucHV0LGhpZGRldjk2LGhpZHJhdzM6IFVTQiBISUQgdjEuMTAgRGV2aWNlIFtV
U0IgR2FtaW5nIE1vdXNlXSBvbiB1c2ItMDAwMDowMDoxNC4wLTIvaW5wdXQyClsgICAgNC42NDkw
NjZdIHVzYiAxLTI6IGF1dGhvcml6ZWQgdG8gY29ubmVjdApbICAgIDQuNzgyMDkxXSB1c2IgMS01
OiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MDQwOCwgaWRQcm9kdWN0PWEwNjEsIGJj
ZERldmljZT0gMC4wNApbICAgIDQuNzgyMDkzXSB1c2IgMS01OiBOZXcgVVNCIGRldmljZSBzdHJp
bmdzOiBNZnI9MSwgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MApbICAgIDQuNzgyMDk0XSB1c2Ig
MS01OiBQcm9kdWN0OiBIRCBVc2VyIEZhY2luZwpbICAgIDQuNzgyMDk1XSB1c2IgMS01OiBNYW51
ZmFjdHVyZXI6IFN1bnBsdXNJVCBJbmMKWyAgICA0Ljc4MjIxNF0gdXNiIDEtNTogRGV2aWNlIGlz
IG5vdCBhdXRob3JpemVkIGZvciB1c2FnZQpbICAgIDQuODk1ODg2XSB1c2IgMS0xNDogbmV3IGZ1
bGwtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgNCB1c2luZyB4aGNpX2hjZApbICAgIDUuMDI1MDI2
XSB1c2IgMS0xNDogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTgwODcsIGlkUHJvZHVj
dD0wMDI2LCBiY2REZXZpY2U9IDAuMDIKWyAgICA1LjAyNTAzOV0gdXNiIDEtMTQ6IE5ldyBVU0Ig
ZGV2aWNlIHN0cmluZ3M6IE1mcj0wLCBQcm9kdWN0PTAsIFNlcmlhbE51bWJlcj0wClsgICAgNS4w
MjUzMzJdIHVzYiAxLTE0OiBEZXZpY2UgaXMgbm90IGF1dGhvcml6ZWQgZm9yIHVzYWdlClsgICAg
NS41MTU2NDddIFtkcm1dIEluaXRpYWxpemVkIGk5MTUgMS42LjAgMjAyMDExMDMgZm9yIDAwMDA6
MDA6MDIuMCBvbiBtaW5vciAwClsgICAgNS41MTc4NjddIEFDUEk6IHZpZGVvOiBbRmlybXdhcmUg
QnVnXTogQUNQSShQRUdQKSBkZWZpbmVzIF9ET0QgYnV0IG5vdCBfRE9TClsgICAgNS41MTc4OTld
IEFDUEk6IHZpZGVvOiBWaWRlbyBEZXZpY2UgW1BFR1BdIChtdWx0aS1oZWFkOiB5ZXMgIHJvbTog
bm8gIHBvc3Q6IG5vKQpbICAgIDUuNTE4NDA1XSBpbnB1dDogVmlkZW8gQnVzIGFzIC9kZXZpY2Vz
L0xOWFNZU1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjAwL0xOWFZJREVPOjAw
L2lucHV0L2lucHV0MTUKWyAgICA1LjUyMzU2OV0gQUNQSTogdmlkZW86IFZpZGVvIERldmljZSBb
R0ZYMF0gKG11bHRpLWhlYWQ6IHllcyAgcm9tOiBubyAgcG9zdDogbm8pClsgICAgNS41MjQxNTBd
IGlucHV0OiBWaWRlbyBCdXMgYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAvUE5Q
MEEwODowMC9MTlhWSURFTzowMS9pbnB1dC9pbnB1dDE2ClsgICAgNS41MjQ2NDhdIHZnYV9zd2l0
Y2hlcm9vOiBlbmFibGVkClsgICAgNS41NjEzMzFdIGZiY29uOiBpOTE1ZHJtZmIgKGZiMCkgaXMg
cHJpbWFyeSBkZXZpY2UKWyAgICA1LjU2MTMzM10gZmJjb246IERlZmVycmluZyBjb25zb2xlIHRh
a2Utb3ZlcgpbICAgIDUuNTYxMzM0XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gZmIwOiBpOTE1
ZHJtZmIgZnJhbWUgYnVmZmVyIGRldmljZQpbICAgMTAuMTEwNzUzXSBLZXkgdHlwZSB0cnVzdGVk
IHJlZ2lzdGVyZWQKWyAgIDEwLjEzNDM3OV0ga2F1ZGl0ZF9wcmludGtfc2tiOiA0NCBjYWxsYmFj
a3Mgc3VwcHJlc3NlZApbICAgMTAuMTM0MzgxXSBhdWRpdDogdHlwZT0xMTMwIGF1ZGl0KDE3MDM2
OTQyOTAuNjk4OjU1KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1
IG1zZz0ndW5pdD1zeXN0ZW1kLWNyeXB0c2V0dXBAbHVrc1x4MmQzNjk5YmZkOVx4MmRiNjdlXHgy
ZDQxYTJceDJkODNlZVx4MmRjMmI1NmZiYWUxYTIgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xp
Yi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nl
c3MnClsgICAxMC40ODYyNzNdIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzY5NDI5MS4wNTA6
NTYpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0
PWRyYWN1dC1pbml0cXVldWUgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5
c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAxMC41
MjA1MDhdIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzY5NDI5MS4wODQ6NTcpOiBwaWQ9MSB1
aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PXN5c3RlbWQtZnNj
ay1yb290IGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0
bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgMTAuNTI2NzgxXSBFWFQ0
LWZzIChkbS0wKTogbW91bnRlZCBmaWxlc3lzdGVtIHdpdGggb3JkZXJlZCBkYXRhIG1vZGUuIE9w
dHM6IChudWxsKS4gUXVvdGEgbW9kZTogbm9uZS4KWyAgIDEwLjU0MDQyOV0gYXVkaXQ6IHR5cGU9
MTMzNCBhdWRpdCgxNzAzNjk0MjkxLjEwNDo1OCk6IHByb2ctaWQ9MjEgb3A9VU5MT0FEClsgICAx
MC41NDA0MzNdIGF1ZGl0OiB0eXBlPTEzMzQgYXVkaXQoMTcwMzY5NDI5MS4xMDQ6NTkpOiBwcm9n
LWlkPTIwIG9wPVVOTE9BRApbICAgMTAuNTQwNDM0XSBhdWRpdDogdHlwZT0xMzM0IGF1ZGl0KDE3
MDM2OTQyOTEuMTA0OjYwKTogcHJvZy1pZD0xOSBvcD1VTkxPQUQKWyAgIDEwLjU0MTM4N10gYXVk
aXQ6IHR5cGU9MTMzNCBhdWRpdCgxNzAzNjk0MjkxLjEwNTo2MSk6IHByb2ctaWQ9MTggb3A9VU5M
T0FEClsgICAxMC41NDEzODhdIGF1ZGl0OiB0eXBlPTEzMzQgYXVkaXQoMTcwMzY5NDI5MS4xMDU6
NjIpOiBwcm9nLWlkPTE3IG9wPVVOTE9BRApbICAgMTAuNTQxOTUyXSBhdWRpdDogdHlwZT0xMzM0
IGF1ZGl0KDE3MDM2OTQyOTEuMTA2OjYzKTogcHJvZy1pZD0xNiBvcD1VTkxPQUQKWyAgIDEwLjU0
MjA1Ml0gYXVkaXQ6IHR5cGU9MTMzNCBhdWRpdCgxNzAzNjk0MjkxLjEwNjo2NCk6IHByb2ctaWQ9
MTUgb3A9VU5MT0FEClsgICAxMC43NDc2MjJdIHN5c3RlbWQtam91cm5hbGRbMjg3XTogUmVjZWl2
ZWQgU0lHVEVSTSBmcm9tIFBJRCAxIChzeXN0ZW1kKS4KWyAgIDEwLjgxNzU4OF0gc3lzdGVtZFsx
XTogUlRDIGNvbmZpZ3VyZWQgaW4gbG9jYWx0aW1lLCBhcHBseWluZyBkZWx0YSBvZiAtMzAwIG1p
bnV0ZXMgdG8gc3lzdGVtIHRpbWUuClsgICAxMC44MzI4ODddIHN5c3RlbWRbMV06IHN5c3RlbWQg
djI0NS45LTEuZmMzMiBydW5uaW5nIGluIHN5c3RlbSBtb2RlLiAoK1BBTSArQVVESVQgK1NFTElO
VVggK0lNQSAtQVBQQVJNT1IgK1NNQUNLICtTWVNWSU5JVCArVVRNUCArTElCQ1JZUFRTRVRVUCAr
R0NSWVBUICtHTlVUTFMgK0FDTCArWFogK0xaNCArU0VDQ09NUCArQkxLSUQgK0VMRlVUSUxTICtL
TU9EICtJRE4yIC1JRE4gK1BDUkUyIGRlZmF1bHQtaGllcmFyY2h5PXVuaWZpZWQpClsgICAxMC44
MzMwMDBdIHN5c3RlbWRbMV06IERldGVjdGVkIGFyY2hpdGVjdHVyZSB4ODYtNjQuClsgICAxMC44
MzMzNDddIHN5c3RlbWRbMV06IFNldCBob3N0bmFtZSB0byA8ZG9tMD4uClsgICAxMC44OTAzNzZd
IHN5c3RlbWRbMV06IC91c3IvbGliL3N5c3RlbWQvc3lzdGVtL3VzYmd1YXJkLnNlcnZpY2U6MTU6
IFBJREZpbGU9IHJlZmVyZW5jZXMgYSBwYXRoIGJlbG93IGxlZ2FjeSBkaXJlY3RvcnkgL3Zhci9y
dW4vLCB1cGRhdGluZyAvdmFyL3J1bi91c2JndWFyZC5waWQg4oaSIC9ydW4vdXNiZ3VhcmQucGlk
OyBwbGVhc2UgdXBkYXRlIHRoZSB1bml0IGZpbGUgYWNjb3JkaW5nbHkuClsgICAxMC45MjczOTJd
IHN5c3RlbWRbMV06IENvbmZpZ3VyYXRpb24gZmlsZSAvZXRjL3N5c3RlbWQvc3lzdGVtL3F1YmVz
LXZtQHN5cy11c2Iuc2VydmljZS5kLzUwX2F1dG9zdGFydC5jb25mIGlzIG1hcmtlZCB3b3JsZC1p
bmFjY2Vzc2libGUuIFRoaXMgaGFzIG5vIGVmZmVjdCBhcyBjb25maWd1cmF0aW9uIGRhdGEgaXMg
YWNjZXNzaWJsZSB2aWEgQVBJcyB3aXRob3V0IHJlc3RyaWN0aW9ucy4gUHJvY2VlZGluZyBhbnl3
YXkuClsgICAxMC45OTIwMzldIHN5c3RlbWRbMV06IGluaXRyZC1zd2l0Y2gtcm9vdC5zZXJ2aWNl
OiBTdWNjZWVkZWQuClsgICAxMC45OTIyMjddIHN5c3RlbWRbMV06IFN0b3BwZWQgU3dpdGNoIFJv
b3QuClsgICAxMC45OTI0NzRdIHN5c3RlbWRbMV06IHN5c3RlbWQtam91cm5hbGQuc2VydmljZTog
U2NoZWR1bGVkIHJlc3RhcnQgam9iLCByZXN0YXJ0IGNvdW50ZXIgaXMgYXQgMS4KWyAgIDEwLjk5
MjY2N10gc3lzdGVtZFsxXTogQ3JlYXRlZCBzbGljZSBzeXN0ZW0tZ2V0dHkuc2xpY2UuClsgICAx
MC45OTI4NzBdIHN5c3RlbWRbMV06IENyZWF0ZWQgc2xpY2Ugc3lzdGVtLW1vZHByb2JlLnNsaWNl
LgpbICAgMTAuOTkzMDU2XSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNlIHN5c3RlbS1xdWJlc1x4
MmR2bS5zbGljZS4KWyAgIDEwLjk5MzI0MF0gc3lzdGVtZFsxXTogQ3JlYXRlZCBzbGljZSBzeXN0
ZW0tc2VyaWFsXHgyZGdldHR5LnNsaWNlLgpbICAgMTAuOTkzNDIzXSBzeXN0ZW1kWzFdOiBDcmVh
dGVkIHNsaWNlIHN5c3RlbS1zeXN0ZW1kXHgyZGZzY2suc2xpY2UuClsgICAxMC45OTM1OTldIHN5
c3RlbWRbMV06IENyZWF0ZWQgc2xpY2UgVXNlciBhbmQgU2Vzc2lvbiBTbGljZS4KWyAgIDEwLjk5
MzYyNl0gc3lzdGVtZFsxXTogQ29uZGl0aW9uIGNoZWNrIHJlc3VsdGVkIGluIERpc3BhdGNoIFBh
c3N3b3JkIFJlcXVlc3RzIHRvIENvbnNvbGUgRGlyZWN0b3J5IFdhdGNoIGJlaW5nIHNraXBwZWQu
ClsgICAxMC45OTM4MDFdIHN5c3RlbWRbMV06IFNldCB1cCBhdXRvbW91bnQgQXJiaXRyYXJ5IEV4
ZWN1dGFibGUgRmlsZSBGb3JtYXRzIEZpbGUgU3lzdGVtIEF1dG9tb3VudCBQb2ludC4KWyAgIDEw
Ljk5MzgzOV0gc3lzdGVtZFsxXTogUmVhY2hlZCB0YXJnZXQgQmxvY2sgRGV2aWNlIFByZXBhcmF0
aW9uIGZvciAvZGV2L21hcHBlci9sdWtzLTM2OTliZmQ5LWI2N2UtNDFhMi04M2VlLWMyYjU2ZmJh
ZTFhMi4KWyAgIDEwLjk5Mzg2NV0gc3lzdGVtZFsxXTogU3RvcHBlZCB0YXJnZXQgU3dpdGNoIFJv
b3QuClsgICAxMC45OTM4ODZdIHN5c3RlbWRbMV06IFN0b3BwZWQgdGFyZ2V0IEluaXRyZCBGaWxl
IFN5c3RlbXMuClsgICAxMC45OTM5MDNdIHN5c3RlbWRbMV06IFN0b3BwZWQgdGFyZ2V0IEluaXRy
ZCBSb290IEZpbGUgU3lzdGVtLgpbICAgMTAuOTkzOTI5XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRh
cmdldCBSZW1vdGUgRW5jcnlwdGVkIFZvbHVtZXMuClsgICAxMC45OTM5NTJdIHN5c3RlbWRbMV06
IFJlYWNoZWQgdGFyZ2V0IFJlbW90ZSBGaWxlIFN5c3RlbXMuClsgICAxMC45OTM5NzZdIHN5c3Rl
bWRbMV06IFJlYWNoZWQgdGFyZ2V0IFNsaWNlcy4KWyAgIDEwLjk5NDAwMF0gc3lzdGVtZFsxXTog
UmVhY2hlZCB0YXJnZXQgU3dhcC4KWyAgIDEwLjk5NDA3M10gc3lzdGVtZFsxXTogTGlzdGVuaW5n
IG9uIERldmljZS1tYXBwZXIgZXZlbnQgZGFlbW9uIEZJRk9zLgpbICAgMTAuOTk0OTIwXSBzeXN0
ZW1kWzFdOiBMaXN0ZW5pbmcgb24gUHJvY2VzcyBDb3JlIER1bXAgU29ja2V0LgpbICAgMTAuOTk0
OTg1XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gaW5pdGN0bCBDb21wYXRpYmlsaXR5IE5hbWVk
IFBpcGUuClsgICAxMC45OTUwODddIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiB1ZGV2IENvbnRy
b2wgU29ja2V0LgpbICAgMTAuOTk1MTg1XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gdWRldiBL
ZXJuZWwgU29ja2V0LgpbICAgMTAuOTk1Mjg1XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gVXNl
ciBEYXRhYmFzZSBNYW5hZ2VyIFNvY2tldC4KWyAgIDEwLjk5NTQzM10gc3lzdGVtZFsxXTogQ29u
ZGl0aW9uIGNoZWNrIHJlc3VsdGVkIGluIEh1Z2UgUGFnZXMgRmlsZSBTeXN0ZW0gYmVpbmcgc2tp
cHBlZC4KWyAgIDEwLjk5NjgwMV0gc3lzdGVtZFsxXTogTW91bnRpbmcgUE9TSVggTWVzc2FnZSBR
dWV1ZSBGaWxlIFN5c3RlbS4uLgpbICAgMTAuOTk3OTg0XSBzeXN0ZW1kWzFdOiBNb3VudGluZyBN
b3VudCAvcHJvYy94ZW4gZmlsZXMuLi4KWyAgIDEwLjk5OTI0NF0gc3lzdGVtZFsxXTogTW91bnRp
bmcgS2VybmVsIERlYnVnIEZpbGUgU3lzdGVtLi4uClsgICAxMS4wMDA2MjldIHN5c3RlbWRbMV06
IE1vdW50aW5nIEtlcm5lbCBUcmFjZSBGaWxlIFN5c3RlbS4uLgpbICAgMTEuMDAwOTgwXSBzeXN0
ZW1kWzFdOiB0bXAubW91bnQ6IERpcmVjdG9yeSAvdG1wIHRvIG1vdW50IG92ZXIgaXMgbm90IGVt
cHR5LCBtb3VudGluZyBhbnl3YXkuClsgICAxMS4wMDIxNThdIHN5c3RlbWRbMV06IE1vdW50aW5n
IFRlbXBvcmFyeSBEaXJlY3RvcnkgKC90bXApLi4uClsgICAxMS4wMDM1NTldIHN5c3RlbWRbMV06
IFN0YXJ0aW5nIENyZWF0ZSBsaXN0IG9mIHN0YXRpYyBkZXZpY2Ugbm9kZXMgZm9yIHRoZSBjdXJy
ZW50IGtlcm5lbC4uLgpbICAgMTEuMDA0NzkzXSBzeXN0ZW1kWzFdOiBTdGFydGluZyBNb25pdG9y
aW5nIG9mIExWTTIgbWlycm9ycywgc25hcHNob3RzIGV0Yy4gdXNpbmcgZG1ldmVudGQgb3IgcHJv
Z3Jlc3MgcG9sbGluZy4uLgpbICAgMTEuMDA0ODk5XSBzeXN0ZW1kWzFdOiBDb25kaXRpb24gY2hl
Y2sgcmVzdWx0ZWQgaW4gTG9hZCBLZXJuZWwgTW9kdWxlIGNvbmZpZ2ZzIGJlaW5nIHNraXBwZWQu
ClsgICAxMS4wMDYyNzVdIHN5c3RlbWRbMV06IE1vdW50aW5nIEtlcm5lbCBDb25maWd1cmF0aW9u
IEZpbGUgU3lzdGVtLi4uClsgICAxMS4wMDYzNjldIHN5c3RlbWRbMV06IENvbmRpdGlvbiBjaGVj
ayByZXN1bHRlZCBpbiBMb2FkIEtlcm5lbCBNb2R1bGUgZHJtIGJlaW5nIHNraXBwZWQuClsgICAx
MS4wMDc3NDFdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIExvYWQgS2VybmVsIE1vZHVsZSBmdXNlLi4u
ClsgICAxMS4wMDgwMDBdIHN5c3RlbWRbMV06IHBseW1vdXRoLXN3aXRjaC1yb290LnNlcnZpY2U6
IFN1Y2NlZWRlZC4KWyAgIDExLjAwODIxM10gc3lzdGVtZFsxXTogU3RvcHBlZCBQbHltb3V0aCBz
d2l0Y2ggcm9vdCBzZXJ2aWNlLgpbICAgMTEuMDA4NzgyXSBzeXN0ZW1kWzFdOiBDb25kaXRpb24g
Y2hlY2sgcmVzdWx0ZWQgaW4gU2V0IFVwIEFkZGl0aW9uYWwgQmluYXJ5IEZvcm1hdHMgYmVpbmcg
c2tpcHBlZC4KWyAgIDExLjAwODgzNl0gc3lzdGVtZFsxXTogU3RvcHBlZCBKb3VybmFsIFNlcnZp
Y2UuClsgICAxMS4wMTA2NDhdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIEpvdXJuYWwgU2VydmljZS4u
LgpbICAgMTEuMDEyNDE5XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBMb2FkIEtlcm5lbCBNb2R1bGVz
Li4uClsgICAxMS4wMTM3NTNdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIFJlbW91bnQgUm9vdCBhbmQg
S2VybmVsIEZpbGUgU3lzdGVtcy4uLgpbICAgMTEuMDE0Nzg1XSBmdXNlOiBpbml0IChBUEkgdmVy
c2lvbiA3LjM0KQpbICAgMTEuMDE1MjE2XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBSZXBhcnRpdGlv
biBSb290IERpc2suLi4KWyAgIDExLjAxNjk3NF0gc3lzdGVtZFsxXTogU3RhcnRpbmcgdWRldiBD
b2xkcGx1ZyBhbGwgRGV2aWNlcy4uLgpbICAgMTEuMDE4NzczXSBzeXN0ZW1kWzFdOiBzeXNyb290
Lm1vdW50OiBTdWNjZWVkZWQuClsgICAxMS4wMTkyODJdIHN5c3RlbWRbMV06IE1vdW50ZWQgUE9T
SVggTWVzc2FnZSBRdWV1ZSBGaWxlIFN5c3RlbS4KWyAgIDExLjAxOTQ2NV0gc3lzdGVtZFsxXTog
TW91bnRlZCBNb3VudCAvcHJvYy94ZW4gZmlsZXMuClsgICAxMS4wMTk2MzddIHN5c3RlbWRbMV06
IE1vdW50ZWQgS2VybmVsIERlYnVnIEZpbGUgU3lzdGVtLgpbICAgMTEuMDE5ODEzXSBzeXN0ZW1k
WzFdOiBNb3VudGVkIEtlcm5lbCBUcmFjZSBGaWxlIFN5c3RlbS4KWyAgIDExLjAxOTk2NF0gc3lz
dGVtZFsxXTogTW91bnRlZCBUZW1wb3JhcnkgRGlyZWN0b3J5ICgvdG1wKS4KWyAgIDExLjAyMDI4
MV0gc3lzdGVtZFsxXTogRmluaXNoZWQgQ3JlYXRlIGxpc3Qgb2Ygc3RhdGljIGRldmljZSBub2Rl
cyBmb3IgdGhlIGN1cnJlbnQga2VybmVsLgpbICAgMTEuMDIwNTMyXSBzeXN0ZW1kWzFdOiBNb3Vu
dGVkIEtlcm5lbCBDb25maWd1cmF0aW9uIEZpbGUgU3lzdGVtLgpbICAgMTEuMDIwNzgzXSBzeXN0
ZW1kWzFdOiBtb2Rwcm9iZUBmdXNlLnNlcnZpY2U6IFN1Y2NlZWRlZC4KWyAgIDExLjAyMDkzNF0g
c3lzdGVtZFsxXTogRmluaXNoZWQgTG9hZCBLZXJuZWwgTW9kdWxlIGZ1c2UuClsgICAxMS4wMjIz
MTZdIHN5c3RlbWRbMV06IE1vdW50aW5nIEZVU0UgQ29udHJvbCBGaWxlIFN5c3RlbS4uLgpbICAg
MTEuMDI1MDE5XSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBMb2FkIEtlcm5lbCBNb2R1bGVzLgpbICAg
MTEuMDI2MzM4XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBBcHBseSBLZXJuZWwgVmFyaWFibGVzLi4u
ClsgICAxMS4wMjc2MDZdIHN5c3RlbWRbMV06IEZpbmlzaGVkIFJlcGFydGl0aW9uIFJvb3QgRGlz
ay4KWyAgIDExLjAyNzg3MV0gc3lzdGVtZFsxXTogTW91bnRlZCBGVVNFIENvbnRyb2wgRmlsZSBT
eXN0ZW0uClsgICAxMS4wMjk3MzNdIEVYVDQtZnMgKGRtLTApOiByZS1tb3VudGVkLiBPcHRzOiBk
aXNjYXJkLiBRdW90YSBtb2RlOiBub25lLgpbICAgMTEuMDMxMzQwXSBzeXN0ZW1kWzFdOiBGaW5p
c2hlZCBSZW1vdW50IFJvb3QgYW5kIEtlcm5lbCBGaWxlIFN5c3RlbXMuClsgICAxMS4wMzE0OTFd
IHN5c3RlbWRbMV06IENvbmRpdGlvbiBjaGVjayByZXN1bHRlZCBpbiBGaXJzdCBCb290IFdpemFy
ZCBiZWluZyBza2lwcGVkLgpbICAgMTEuMDMyMDM5XSBzeXN0ZW1kWzFdOiBDb25kaXRpb24gY2hl
Y2sgcmVzdWx0ZWQgaW4gUmVidWlsZCBIYXJkd2FyZSBEYXRhYmFzZSBiZWluZyBza2lwcGVkLgpb
ICAgMTEuMDMyMDc2XSBzeXN0ZW1kWzFdOiBDb25kaXRpb24gY2hlY2sgcmVzdWx0ZWQgaW4gUGxh
dGZvcm0gUGVyc2lzdGVudCBTdG9yYWdlIEFyY2hpdmFsIGJlaW5nIHNraXBwZWQuClsgICAxMS4w
MzMyNTRdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIExvYWQvU2F2ZSBSYW5kb20gU2VlZC4uLgpbICAg
MTEuMDMzMzM4XSBzeXN0ZW1kWzFdOiBDb25kaXRpb24gY2hlY2sgcmVzdWx0ZWQgaW4gQ3JlYXRl
IFN5c3RlbSBVc2VycyBiZWluZyBza2lwcGVkLgpbICAgMTEuMDM0NDA5XSBzeXN0ZW1kWzFdOiBT
dGFydGluZyBDcmVhdGUgU3RhdGljIERldmljZSBOb2RlcyBpbiAvZGV2Li4uClsgICAxMS4wMzY3
MjRdIHN5c3RlbWRbMV06IEZpbmlzaGVkIEFwcGx5IEtlcm5lbCBWYXJpYWJsZXMuClsgICAxMS4w
NDQ3MjRdIHN5c3RlbWRbMV06IFN0YXJ0ZWQgSm91cm5hbCBTZXJ2aWNlLgpbICAgMTEuMDYyMzAz
XSBzeXN0ZW1kLWpvdXJuYWxkWzc5Ml06IFJlY2VpdmVkIGNsaWVudCByZXF1ZXN0IHRvIGZsdXNo
IHJ1bnRpbWUgam91cm5hbC4KWyAgIDExLjE1NjIwNV0gaW5wdXQ6IEFjZXIgV2lyZWxlc3MgUmFk
aW8gQ29udHJvbCBhcyAvZGV2aWNlcy9MTlhTWVNUTTowMC8xMDI1MTIyOTowMC9pbnB1dC9pbnB1
dDE3ClsgICAxMS4yMzIzOTVdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBw
b2xhcml0eSAxClsgICAxMS4yMzI0MDZdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYKWyAgIDEx
LjI0NDI2OV0gaWRtYTY0IGlkbWE2NC4wOiBGb3VuZCBJbnRlbCBpbnRlZ3JhdGVkIERNQSA2NC1i
aXQKWyAgIDExLjI0NTMxM10gaWRtYTY0IGlkbWE2NC4xOiBGb3VuZCBJbnRlbCBpbnRlZ3JhdGVk
IERNQSA2NC1iaXQKWyAgIDExLjI2MTQwMl0gbWVpX21lIDAwMDA6MDA6MTYuMDogZW5hYmxpbmcg
ZGV2aWNlICgwMDAwIC0+IDAwMDIpClsgICAxMS4yNjE1NDZdIHhlbjogcmVnaXN0ZXJpbmcgZ3Np
IDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAxMS4yNjE1NTFdIEFscmVhZHkgc2V0dXAg
dGhlIEdTSSA6MTYKWyAgIDExLjMwMDQ0MV0gY2ZnODAyMTE6IExvYWRpbmcgY29tcGlsZWQtaW4g
WC41MDkgY2VydGlmaWNhdGVzIGZvciByZWd1bGF0b3J5IGRhdGFiYXNlClsgICAxMS4zMDA2NTFd
IGNmZzgwMjExOiBMb2FkZWQgWC41MDkgY2VydCAnc2ZvcnNoZWU6IDAwYjI4ZGRmNDdhZWY5Y2Vh
NycKWyAgIDExLjMwMjU4NF0gcGxhdGZvcm0gcmVndWxhdG9yeS4wOiBEaXJlY3QgZmlybXdhcmUg
bG9hZCBmb3IgcmVndWxhdG9yeS5kYiBmYWlsZWQgd2l0aCBlcnJvciAtMgpbICAgMTEuMzAyNTg5
XSBjZmc4MDIxMTogZmFpbGVkIHRvIGxvYWQgcmVndWxhdG9yeS5kYgpbICAgMTEuMzMwNjkxXSBp
bnB1dDogUEMgU3BlYWtlciBhcyAvZGV2aWNlcy9wbGF0Zm9ybS9wY3Nwa3IvaW5wdXQvaW5wdXQx
OApbICAgMTEuNjQzNzM1XSBudmlkaWEtZ3B1IDAwMDA6MDE6MDAuMzogZW5hYmxpbmcgZGV2aWNl
ICgwMDAwIC0+IDAwMDIpClsgICAxMS42NDM4OTZdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE5IHRy
aWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAxMS42NDM5MzBdIHhlbjogLS0+IHBpcnE9MTkgLT4g
aXJxPTE5IChnc2k9MTkpClsgICAxMS42NTM5NTNdIGFjZXJfd21pOiBBY2VyIExhcHRvcCBBQ1BJ
LVdNSSBFeHRyYXMKWyAgIDExLjY1NDEwMF0gYWNlcl93bWk6IEZ1bmN0aW9uIGJpdG1hcCBmb3Ig
Q29tbXVuaWNhdGlvbiBCdXR0b246IDB4ODAwClsgICAxMS42NjQyOTJdIHhlbjogcmVnaXN0ZXJp
bmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAxMS42NjQzMDddIEFscmVhZHkg
c2V0dXAgdGhlIEdTSSA6MTYKWyAgIDExLjY2NDM5M10gaTgwMV9zbWJ1cyAwMDAwOjAwOjFmLjQ6
IFNQRCBXcml0ZSBEaXNhYmxlIGlzIHNldApbICAgMTEuNjY0NDY1XSBpODAxX3NtYnVzIDAwMDA6
MDA6MWYuNDogU01CdXMgdXNpbmcgUENJIGludGVycnVwdApbICAgMTEuNjY1MTA0XSBJbnRlbChS
KSBXaXJlbGVzcyBXaUZpIGRyaXZlciBmb3IgTGludXgKWyAgIDExLjY2NzA4N10gaTJjIGkyYy0y
NjogMi8yIG1lbW9yeSBzbG90cyBwb3B1bGF0ZWQgKGZyb20gRE1JKQpbICAgMTEuNjY3NzI2XSBp
MmMgaTJjLTI2OiBTdWNjZXNzZnVsbHkgaW5zdGFudGlhdGVkIFNQRCBhdCAweDUwClsgICAxMS42
ODMxNDNdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsg
ICAxMS42ODMxNTNdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYKWyAgIDExLjY4NDQ0NF0gaW50
ZWxfcmFwbF9jb21tb246IEZvdW5kIFJBUEwgZG9tYWluIHBhY2thZ2UKWyAgIDExLjY4NDQ0N10g
aW50ZWxfcmFwbF9jb21tb246IEZvdW5kIFJBUEwgZG9tYWluIGRyYW0KWyAgIDExLjY4NDQ5Ml0g
aW5wdXQ6IEFjZXIgV01JIGhvdGtleXMgYXMgL2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDE5
ClsgICAxMS43NDA2OTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMDoxZi4zOiBEU1AgZGV0ZWN0ZWQg
d2l0aCBQQ0kgY2xhc3Mvc3ViY2xhc3MvcHJvZy1pZiBpbmZvIDB4MDQwMzgwClsgICAxMS43NDA3
NjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMDoxZi4zOiBlbmFibGluZyBkZXZpY2UgKDAwMDAgLT4g
MDAwMikKWyAgIDExLjc0MTA5Ml0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAw
IHBvbGFyaXR5IDEKWyAgIDExLjc0MTEwMF0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNgpbICAg
MTEuNzQxMTcwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDA6MWYuMzogYm91bmQgMDAwMDowMDowMi4w
IChvcHMgaTkxNV9hdWRpb19jb21wb25lbnRfYmluZF9vcHMgW2k5MTVdKQpbICAgMTEuNzQxNjI2
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDE6MDAuMTogZW5hYmxpbmcgZGV2aWNlICgwMDAwIC0+IDAw
MDIpClsgICAxMS43NDE3MDldIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE3IHRyaWdnZXJpbmcgMCBw
b2xhcml0eSAxClsgICAxMS43NDE3MTRdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTcKWyAgIDEx
Ljc0MTcyNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAxOjAwLjE6IERpc2FibGluZyBNU0kKWyAgIDEx
Ljc0MTczMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAxOjAwLjE6IEhhbmRsZSB2Z2Ffc3dpdGNoZXJv
byBhdWRpbyBjbGllbnQKWyAgIDExLjc4ODQwNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAxOjAwLjE6
IGJvdW5kIDAwMDA6MDE6MDAuMCAob3BzIG52NTBfYXVkaW9fY29tcG9uZW50X2JpbmRfb3BzIFtu
b3V2ZWF1XSkKWyAgIDExLjc5NzM1OV0gaW5wdXQ6IEhEQSBOVmlkaWEgSERNSS9EUCxwY209MyBh
cyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDEuMC8wMDAwOjAxOjAwLjEvc291bmQvY2Fy
ZDEvaW5wdXQyMApbICAgMTEuNzk3NjAxXSBpbnB1dDogSERBIE5WaWRpYSBIRE1JL0RQLHBjbT03
IGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMS4wLzAwMDA6MDE6MDAuMS9zb3VuZC9j
YXJkMS9pbnB1dDIxClsgICAxMS43OTc3MzJdIGlucHV0OiBIREEgTlZpZGlhIEhETUkvRFAscGNt
PTggYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAxLjAvMDAwMDowMTowMC4xL3NvdW5k
L2NhcmQxL2lucHV0MjIKWyAgIDExLjc5Nzg4OF0gaW5wdXQ6IEhEQSBOVmlkaWEgSERNSS9EUCxw
Y209OSBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDEuMC8wMDAwOjAxOjAwLjEvc291
bmQvY2FyZDEvaW5wdXQyMwpbICAgMTEuNzk3OTQ5XSBpbnB1dDogSERBIE5WaWRpYSBIRE1JL0RQ
LHBjbT0xMCBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDEuMC8wMDAwOjAxOjAwLjEv
c291bmQvY2FyZDEvaW5wdXQyNApbICAgMTEuNzk5NTQ5XSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsg
aGRhdWRpb0MwRDA6IGF1dG9jb25maWcgZm9yIEFMQzI5NTogbGluZV9vdXRzPTEgKDB4MTQvMHgw
LzB4MC8weDAvMHgwKSB0eXBlOnNwZWFrZXIKWyAgIDExLjc5OTU1NF0gc25kX2hkYV9jb2RlY19y
ZWFsdGVrIGhkYXVkaW9DMEQwOiAgICBzcGVha2VyX291dHM9MCAoMHgwLzB4MC8weDAvMHgwLzB4
MCkKWyAgIDExLjc5OTU1Nl0gc25kX2hkYV9jb2RlY19yZWFsdGVrIGhkYXVkaW9DMEQwOiAgICBo
cF9vdXRzPTEgKDB4MjEvMHgwLzB4MC8weDAvMHgwKQpbICAgMTEuNzk5NTU4XSBzbmRfaGRhX2Nv
ZGVjX3JlYWx0ZWsgaGRhdWRpb0MwRDA6ICAgIG1vbm86IG1vbm9fb3V0PTB4MApbICAgMTEuNzk5
NTU5XSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgaGRhdWRpb0MwRDA6ICAgIGlucHV0czoKWyAgIDEx
Ljc5OTU2MF0gc25kX2hkYV9jb2RlY19yZWFsdGVrIGhkYXVkaW9DMEQwOiAgICAgIE1pYz0weDEy
ClsgICAxMi4xNTg3NDBdIGlUQ09fdmVuZG9yX3N1cHBvcnQ6IHZlbmRvci1zdXBwb3J0PTAKWyAg
IDEyLjE1OTc4Ml0gbWVpX2hkY3AgMDAwMDowMDoxNi4wLWI2MzhhYjdlLTk0ZTItNGVhMi1hNTUy
LWQxYzU0YjYyN2YwNDogYm91bmQgMDAwMDowMDowMi4wIChvcHMgaTkxNV9oZGNwX2NvbXBvbmVu
dF9vcHMgW2k5MTVdKQpbICAgMTIuMTY3NTM5XSBlZTEwMDQgMjYtMDA1MDogNTEyIGJ5dGUgRUUx
MDA0LWNvbXBsaWFudCBTUEQgRUVQUk9NLCByZWFkLW9ubHkKWyAgIDEyLjE3NjIwNF0gaVRDT193
ZHQgaVRDT193ZHQ6IEZvdW5kIGEgSW50ZWwgUENIIFRDTyBkZXZpY2UgKFZlcnNpb249NiwgVENP
QkFTRT0weDA0MDApClsgICAxMi4xNzY1NjddIGlUQ09fd2R0IGlUQ09fd2R0OiBpbml0aWFsaXpl
ZC4gaGVhcnRiZWF0PTMwIHNlYyAobm93YXlvdXQ9MCkKWyAgIDEyLjQ3NTQ2M10gaW5wdXQ6IEhE
QSBJbnRlbCBQQ0ggSGVhZHBob25lIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxZi4z
L3NvdW5kL2NhcmQwL2lucHV0MjUKWyAgIDEyLjQ3NTYyNF0gaW5wdXQ6IEhEQSBJbnRlbCBQQ0gg
SERNSS9EUCxwY209MyBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MWYuMy9zb3VuZC9j
YXJkMC9pbnB1dDI2ClsgICAxMi40NzYzMjZdIGlucHV0OiBIREEgSW50ZWwgUENIIEhETUkvRFAs
cGNtPTcgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjFmLjMvc291bmQvY2FyZDAvaW5w
dXQyNwpbICAgMTIuNDc2NDc4XSBpbnB1dDogSERBIEludGVsIFBDSCBIRE1JL0RQLHBjbT04IGFz
IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxZi4zL3NvdW5kL2NhcmQwL2lucHV0MjgKWyAg
IDEyLjQ3NjYwM10gaW5wdXQ6IEhEQSBJbnRlbCBQQ0ggSERNSS9EUCxwY209OSBhcyAvZGV2aWNl
cy9wY2kwMDAwOjAwLzAwMDA6MDA6MWYuMy9zb3VuZC9jYXJkMC9pbnB1dDI5ClsgICAxMi40NzY3
MjBdIGlucHV0OiBIREEgSW50ZWwgUENIIEhETUkvRFAscGNtPTEwIGFzIC9kZXZpY2VzL3BjaTAw
MDA6MDAvMDAwMDowMDoxZi4zL3NvdW5kL2NhcmQwL2lucHV0MzAKWyAgIDEzLjE3NzkxNl0gbnZp
ZGlhLWdwdSAwMDAwOjAxOjAwLjM6IGkyYyB0aW1lb3V0IGVycm9yIGUwMDAwMDAwClsgICAxMy4x
Nzc5MjddIHVjc2lfY2NnIDI1LTAwMDg6IGkyY190cmFuc2ZlciBmYWlsZWQgLTExMApbICAgMTMu
MTc3OTM0XSB1Y3NpX2NjZyAyNS0wMDA4OiB1Y3NpX2NjZ19pbml0IGZhaWxlZCAtIC0xMTAKWyAg
IDEzLjE3Nzk0MF0gdWNzaV9jY2c6IHByb2JlIG9mIDI1LTAwMDggZmFpbGVkIHdpdGggZXJyb3Ig
LTExMApbICAgMTMuMjkwMTY3XSBFWFQ0LWZzIChudm1lMG4xcDcpOiBtb3VudGVkIGZpbGVzeXN0
ZW0gd2l0aCBvcmRlcmVkIGRhdGEgbW9kZS4gT3B0czogZGlzY2FyZC4gUXVvdGEgbW9kZTogbm9u
ZS4KWyAgIDE0LjA1MTI0M10geGhjaV9oY2QgMDAwMDowMDoxNC4wOiByZW1vdmUsIHN0YXRlIDQK
WyAgIDE0LjA1MTI0OF0gdXNiIHVzYjI6IFVTQiBkaXNjb25uZWN0LCBkZXZpY2UgbnVtYmVyIDEK
WyAgIDE0LjA1MTQzOF0geGhjaV9oY2QgMDAwMDowMDoxNC4wOiBVU0IgYnVzIDIgZGVyZWdpc3Rl
cmVkClsgICAxNC4wNTE1MzRdIHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogcmVtb3ZlLCBzdGF0ZSAx
ClsgICAxNC4wNTE1NDBdIHVzYiB1c2IxOiBVU0IgZGlzY29ubmVjdCwgZGV2aWNlIG51bWJlciAx
ClsgICAxNC4wNTE1NDFdIHVzYiAxLTI6IFVTQiBkaXNjb25uZWN0LCBkZXZpY2UgbnVtYmVyIDIK
WyAgIDE0LjE0ODg0MF0gdXNiIDEtNTogVVNCIGRpc2Nvbm5lY3QsIGRldmljZSBudW1iZXIgMwpb
ICAgMTQuMTQ5MDE2XSB1c2IgMS0xNDogVVNCIGRpc2Nvbm5lY3QsIGRldmljZSBudW1iZXIgNApb
ICAgMTQuMTUwOTg5XSB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IFVTQiBidXMgMSBkZXJlZ2lzdGVy
ZWQKWyAgIDE0LjE1MTUzNl0gcGNpYmFjayAwMDAwOjAwOjE0LjA6IHhlbl9wY2liYWNrOiBzZWl6
aW5nIGRldmljZQpbICAgMTQuMTUxODU1XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2Vy
aW5nIDAgcG9sYXJpdHkgMQpbICAgMTQuMTUxODY1XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE2
ClsgICAxNC40ODI4MDldIHhoY2lfaGNkIDAwMDA6MDE6MDAuMjogcmVtb3ZlLCBzdGF0ZSA0Clsg
ICAxNC40ODI4MjBdIHVzYiB1c2I0OiBVU0IgZGlzY29ubmVjdCwgZGV2aWNlIG51bWJlciAxClsg
ICAxNC40ODM0MThdIHhoY2lfaGNkIDAwMDA6MDE6MDAuMjogVVNCIGJ1cyA0IGRlcmVnaXN0ZXJl
ZApbICAgMTQuNDg1NjQzXSB4aGNpX2hjZCAwMDAwOjAxOjAwLjI6IHJlbW92ZSwgc3RhdGUgNApb
ICAgMTQuNDg1NjQ4XSB1c2IgdXNiMzogVVNCIGRpc2Nvbm5lY3QsIGRldmljZSBudW1iZXIgMQpb
ICAgMTQuNDkwODQ0XSB4aGNpX2hjZCAwMDAwOjAxOjAwLjI6IFVTQiBidXMgMyBkZXJlZ2lzdGVy
ZWQKWyAgIDE0LjQ5MjI4OF0gcGNpYmFjayAwMDAwOjAxOjAwLjI6IHhlbl9wY2liYWNrOiBzZWl6
aW5nIGRldmljZQpbICAgMTQuNDkyNDMxXSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxOCB0cmlnZ2Vy
aW5nIDAgcG9sYXJpdHkgMQpbICAgMTQuNDkyNDQxXSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE4
ClsgICAxNC41NjMxMTVdIGxvb3A6IG1vZHVsZSBsb2FkZWQKWyAgIDE0LjU2MzgzOV0gbG9vcDA6
IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gNDE5NDMwNApbICAgMTQuNTc4MjAx
XSBsb29wMTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA0MTk0MzA0ClsgICAx
NC42MjQxNzZdIGxvb3AyOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDQxOTQz
MDQKWyAgIDE0LjY2MjIzNl0gbG9vcDM6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAg
dG8gMjA5NzE1MjAKWyAgIDE0LjY3OTIxMV0gbG9vcDQ6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5n
ZSBmcm9tIDAgdG8gMjA5NzE1MjAKWyAgIDE0Ljc0MDczOV0gbG9vcDU6IGRldGVjdGVkIGNhcGFj
aXR5IGNoYW5nZSBmcm9tIDAgdG8gMjA5NzE1MjAKWyAgIDE0LjkwNjM3NV0gbWVtbWFwX2luaXRf
em9uZV9kZXZpY2UgaW5pdGlhbGlzZWQgMzI3NjggcGFnZXMgaW4gMG1zClsgICAxNS4yMjg0MTZd
IGxvb3A2OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDk1MjE5MgpbICAgMTUu
MzAyNDQ4XSBsb29wNzogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAyNTE2NTgy
NApbICAgMTUuOTQ2NzI3XSBsb29wODogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0
byAyNTE2NTgyNApbICAgMTYuMDMyNjcyXSBsb29wOTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdl
IGZyb20gMCB0byA5NTIxOTIKWyAgIDE2LjEwOTYxMV0gcGNpYmFjayAwMDAwOjAwOjE0LjA6IHhl
bl9wY2liYWNrOiB2cGNpOiBhc3NpZ24gdG8gdmlydHVhbCBzbG90IDAKWyAgIDE2LjExMDQwM10g
cGNpYmFjayAwMDAwOjAwOjE0LjA6IHJlZ2lzdGVyaW5nIGZvciAyClsgICAxNi4xMTA4OTZdIHBj
aWJhY2sgMDAwMDowMTowMC4yOiB4ZW5fcGNpYmFjazogdnBjaTogYXNzaWduIHRvIHZpcnR1YWwg
c2xvdCAxClsgICAxNi4xMTE3NjddIHBjaWJhY2sgMDAwMDowMTowMC4yOiByZWdpc3RlcmluZyBm
b3IgMgpbICAgMTYuMjc5NDM0XSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvMi81MTcxMjogdXNp
bmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzClsg
ICAxNi4yODIxOTddIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0
eSAxClsgICAxNi4yODIyMTBdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYKWyAgIDE2LjI4Mjc5
OV0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgIDE2
LjI4MjgwM10gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNgpbICAgMTYuMjgzMjE0XSB4ZW46IHJl
Z2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgMTYuMjgzMjE4XSBB
bHJlYWR5IHNldHVwIHRoZSBHU0kgOjE2ClsgICAxNi4yODM1OTRdIHhlbjogcmVnaXN0ZXJpbmcg
Z3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAxNi4yODM2MDBdIEFscmVhZHkgc2V0
dXAgdGhlIEdTSSA6MTYKWyAgIDE2LjI4NDA1Ml0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJp
Z2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgIDE2LjI4NDA1N10gQWxyZWFkeSBzZXR1cCB0aGUgR1NJ
IDoxNgpbICAgMTYuMjg0NDg1XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAg
cG9sYXJpdHkgMQpbICAgMTYuMjg0NDg5XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE2ClsgICAx
Ni4yODQ5MjldIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAx
ClsgICAxNi4yODQ5MzNdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYKWyAgIDE2LjI4NjQ0N10g
eGVuOiByZWdpc3RlcmluZyBnc2kgMTggdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgIDE2LjI4
NjQ1M10gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxOApbICAgMTYuMjg3MTAwXSB4ZW46IHJlZ2lz
dGVyaW5nIGdzaSAxOCB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgMTYuMjg3MTA1XSBBbHJl
YWR5IHNldHVwIHRoZSBHU0kgOjE4ClsgICAxNi4yODc1ODhdIHhlbjogcmVnaXN0ZXJpbmcgZ3Np
IDE4IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAxNi4yODc1OTNdIEFscmVhZHkgc2V0dXAg
dGhlIEdTSSA6MTgKWyAgIDE2LjI4ODE1NV0geGVuOiByZWdpc3RlcmluZyBnc2kgMTggdHJpZ2dl
cmluZyAwIHBvbGFyaXR5IDEKWyAgIDE2LjI4ODE2MF0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDox
OApbICAgMTYuMjg4NjM0XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxOCB0cmlnZ2VyaW5nIDAgcG9s
YXJpdHkgMQpbICAgMTYuMjg4NjM3XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE4ClsgICAxNi4y
ODkxMTVdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE4IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsg
ICAxNi4yODkxMThdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTgKWyAgIDE2LjI5NjM2OV0geGVu
LWJsa2JhY2s6IGJhY2tlbmQvdmJkLzIvNTE3Mjg6IHVzaW5nIDEgcXVldWVzLCBwcm90b2NvbCAx
ICh4ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cwpbICAgMTYuMzA4OTk5XSB4ZW4tYmxrYmFj
azogYmFja2VuZC92YmQvMi81MTc0NDogdXNpbmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82
NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzClsgICAxNi4zMjA2MzhdIHhlbi1ibGtiYWNrOiBiYWNr
ZW5kL3ZiZC8yLzUxNzYwOiB1c2luZyAxIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkg
cGVyc2lzdGVudCBncmFudHMKWyAgIDE3LjE1OTIxMV0ga2F1ZGl0ZF9wcmludGtfc2tiOiAxNDUg
Y2FsbGJhY2tzIHN1cHByZXNzZWQKWyAgIDE3LjE1OTIxM10gYXVkaXQ6IHR5cGU9MTEzMSBhdWRp
dCgxNzAzNzEyMjk3LjcyMzoyMDgpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQy
OTQ5NjcyOTUgbXNnPSd1bml0PXN5c3RlbWQtcmZraWxsIGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vz
ci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1z
dWNjZXNzJwpbICAgMTcuMTc2ODA0XSBhdWRpdDogdHlwZT0xMTAzIGF1ZGl0KDE3MDM3MTIyOTcu
NzQxOjIwOSk6IHBpZD00OTk5IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBt
c2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9yb290b2sgYWNjdD0iZGViaWFuIiBleGU9
Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNj
ZXNzJwpbICAgMTcuMTc3NzI2XSBhdWRpdDogdHlwZT0xMTA1IGF1ZGl0KDE3MDM3MTIyOTcuNzQx
OjIxMCk6IHBpZD00OTk5IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9
J29wPVBBTTpzZXNzaW9uX29wZW4gZ3JhbnRvcnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1f
dW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRk
cj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAxNy4xODMxNzRdIGxvb3AxMDogZGV0ZWN0
ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA0MTk0MzA0ClsgICAxNy4xODU1MTNdIGF1ZGl0
OiB0eXBlPTExMDYgYXVkaXQoMTcwMzcxMjI5Ny43NDk6MjExKTogcGlkPTQ5OTkgdWlkPTAgYXVp
ZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNlc3Npb25fY2xvc2UgZ3Jh
bnRvcnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0i
L3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nl
c3MnClsgICAxNy4xODU1MzNdIGF1ZGl0OiB0eXBlPTExMDQgYXVkaXQoMTcwMzcxMjI5Ny43NDk6
MjEyKTogcGlkPTQ5OTkgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0n
b3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vz
ci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3Mn
ClsgICAxNy4yMDEyMTFdIGF1ZGl0OiB0eXBlPTExMDMgYXVkaXQoMTcwMzcxMjI5Ny43NjU6MjEz
KTogcGlkPTUwMTIgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9
UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9z
YmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsg
ICAxNy4yMDE0NjVdIGF1ZGl0OiB0eXBlPTExMDUgYXVkaXQoMTcwMzcxMjI5Ny43NjU6MjE0KTog
cGlkPTUwMTIgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFN
OnNlc3Npb25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4IGFj
Y3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVy
bWluYWw9PyByZXM9c3VjY2VzcycKWyAgIDE3LjIwMzE1Nl0gbG9vcDExOiBkZXRlY3RlZCBjYXBh
Y2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDQxOTQzMDQKWyAgIDE3LjMwMjQwMl0gbG9vcDEyOiBkZXRl
Y3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwOTcxNTIwClsgICAxOC4yNDEyNjldIGxv
b3AxMzogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAyMDk3MTUyMApbICAgMTgu
MzAwMjEzXSBsb29wMTQ6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gOTUyMTky
ClsgICAxOS4xMTM3NDNdIGxvb3AxNTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0
byA5NTIxOTIKWyAgIDE5LjE4MzU5OF0gbG9vcDE2OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2Ug
ZnJvbSAwIHRvIDIwOTcxNTIwClsgICAxOS41NzU0OTZdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3Zi
ZC8xLzUxNzEyOiB1c2luZyAyIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lz
dGVudCBncmFudHMKWyAgIDE5LjU5MzM5NV0geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJkLzEvNTE3
Mjg6IHVzaW5nIDIgcXVldWVzLCBwcm90b2NvbCAxICh4ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdy
YW50cwpbICAgMTkuNjIwMTkwXSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvMS81MTc0NDogdXNp
bmcgMiBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzClsg
ICAxOS42MzY4MDZdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC8xLzUxNzYwOiB1c2luZyAyIHF1
ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMKWyAgIDIwLjQy
MzUxNV0gcGNpYmFjayAwMDAwOjA4OjAwLjA6IHhlbl9wY2liYWNrOiB2cGNpOiBhc3NpZ24gdG8g
dmlydHVhbCBzbG90IDAKWyAgIDIwLjQyNDM1NV0gcGNpYmFjayAwMDAwOjA4OjAwLjA6IHJlZ2lz
dGVyaW5nIGZvciA0ClsgICAyMC40MjQ5NzNdIHBjaWJhY2sgMDAwMDowMDoxNC4zOiB4ZW5fcGNp
YmFjazogdnBjaTogYXNzaWduIHRvIHZpcnR1YWwgc2xvdCAxClsgICAyMC40MjU0NDFdIHBjaWJh
Y2sgMDAwMDowMDoxNC4zOiByZWdpc3RlcmluZyBmb3IgNApbICAgMjAuNjA4OTA0XSB4ZW4tYmxr
YmFjazogYmFja2VuZC92YmQvNC81MTcxMjogdXNpbmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4
Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzClsgICAyMC42MTE5OTVdIHhlbjogcmVnaXN0ZXJp
bmcgZ3NpIDE3IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAyMC42MTIwMDFdIEFscmVhZHkg
c2V0dXAgdGhlIEdTSSA6MTcKWyAgIDIwLjYxMjI3N10geGVuOiByZWdpc3RlcmluZyBnc2kgMTcg
dHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgIDIwLjYxMjI4MF0gQWxyZWFkeSBzZXR1cCB0aGUg
R1NJIDoxNwpbICAgMjAuNjEyNDY0XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNyB0cmlnZ2VyaW5n
IDAgcG9sYXJpdHkgMQpbICAgMjAuNjEyNDY3XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE3Clsg
ICAyMC42MTI3MDNdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE3IHRyaWdnZXJpbmcgMCBwb2xhcml0
eSAxClsgICAyMC42MTI3MDVdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTcKWyAgIDIwLjYxMjk4
N10geGVuOiByZWdpc3RlcmluZyBnc2kgMTcgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgIDIw
LjYxMjk4OV0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNwpbICAgMjAuNjEzMjA2XSB4ZW46IHJl
Z2lzdGVyaW5nIGdzaSAxNyB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgMjAuNjEzMjA4XSBB
bHJlYWR5IHNldHVwIHRoZSBHU0kgOjE3ClsgICAyMC42MTU4NzFdIHhlbjogcmVnaXN0ZXJpbmcg
Z3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAyMC42MTU4NzRdIEFscmVhZHkgc2V0
dXAgdGhlIEdTSSA6MTYKWyAgIDIwLjYxNzQ2Nl0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJp
Z2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgIDIwLjYxNzQ2OV0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJ
IDoxNgpbICAgMjAuNjE4MjMwXSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAg
cG9sYXJpdHkgMQpbICAgMjAuNjE4MjMyXSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE2ClsgICAy
MC42MTg5OTNdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAx
ClsgICAyMC42MTg5OTVdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYKWyAgIDIwLjYxOTc2M10g
eGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDEKWyAgIDIwLjYx
OTc2NV0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNgpbICAgMjAuNjIwNDMyXSB4ZW46IHJlZ2lz
dGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQpbICAgMjAuNjIwNDM1XSBBbHJl
YWR5IHNldHVwIHRoZSBHU0kgOjE2ClsgICAyMC42MjEzNzddIHhlbjogcmVnaXN0ZXJpbmcgZ3Np
IDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxClsgICAyMC42MjEzNzldIEFscmVhZHkgc2V0dXAg
dGhlIEdTSSA6MTYKWyAgIDIwLjYyMTY5OV0gcGNpYmFjayAwMDAwOjAwOjE0LjM6IHhlbi1wY2li
YWNrOiBEcml2ZXIgdHJpZWQgdG8gd3JpdGUgdG8gYSByZWFkLW9ubHkgY29uZmlndXJhdGlvbiBz
cGFjZSBmaWVsZCBhdCBvZmZzZXQgMHg0OCwgc2l6ZSAyLiBUaGlzIG1heSBiZSBoYXJtbGVzcywg
YnV0IGlmIHlvdSBoYXZlIHByb2JsZW1zIHdpdGggeW91ciBkZXZpY2U6CiAgICAgICAgICAgICAg
IDEpIHNlZSBwZXJtaXNzaXZlIGF0dHJpYnV0ZSBpbiBzeXNmcwogICAgICAgICAgICAgICAyKSBy
ZXBvcnQgcHJvYmxlbXMgdG8gdGhlIHhlbi1kZXZlbCBtYWlsaW5nIGxpc3QgYWxvbmcgd2l0aCBk
ZXRhaWxzIG9mIHlvdXIgZGV2aWNlIG9idGFpbmVkIGZyb20gbHNwY2kuClsgICAyMC42MzMxNzBd
IHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC80LzUxNzI4OiB1c2luZyAxIHF1ZXVlcywgcHJvdG9j
b2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMKWyAgIDIwLjY1MzMzM10geGVuLWJs
a2JhY2s6IGJhY2tlbmQvdmJkLzQvNTE3NDQ6IHVzaW5nIDEgcXVldWVzLCBwcm90b2NvbCAxICh4
ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cwpbICAgMjAuNjY3ODMxXSB4ZW4tYmxrYmFjazog
YmFja2VuZC92YmQvNC81MTc2MDogdXNpbmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1h
YmkpIHBlcnNpc3RlbnQgZ3JhbnRzClsgICAyMC45NzE2MzNdIHBjaWJhY2sgMDAwMDowMDoxNC4w
OiB4ZW5fcGNpYmFjazogY2Fubm90IGVuYWJsZSBtZW1vcnktd3JpdGUtaW52YWxpZGF0ZSAoLTIy
KQpbICAgMjEuNjY0Mjc0XSBhdWRpdDogdHlwZT0xMTAzIGF1ZGl0KDE3MDM3MTIzMDIuMjI4OjIx
NSk6IHBpZD01ODM2IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29w
PVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9yb290b2sgYWNjdD0iZGViaWFuIiBleGU9Ii91c3Iv
c2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpb
ICAgMjEuNjY0NTU5XSBhdWRpdDogdHlwZT0xMTA1IGF1ZGl0KDE3MDM3MTIzMDIuMjI4OjIxNik6
IHBpZD01ODM2IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBB
TTpzZXNzaW9uX29wZW4gZ3JhbnRvcnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fdW5peCBh
Y2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRl
cm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAyMS42NzI5MjldIGF1ZGl0OiB0eXBlPTExMDYgYXVk
aXQoMTcwMzcxMjMwMi4yMzc6MjE3KTogcGlkPTU4MzYgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNl
cz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNlc3Npb25fY2xvc2UgZ3JhbnRvcnM9cGFtX2tleWlu
aXQscGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVz
ZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAyMy40NjE3
NzZdIGthdWRpdGRfcHJpbnRrX3NrYjogMyBjYWxsYmFja3Mgc3VwcHJlc3NlZApbICAgMjMuNDYx
Nzc4XSBhdWRpdDogdHlwZT0xMTA2IGF1ZGl0KDE3MDM3MTIzMDQuMDI1OjIyMSk6IHBpZD01MDEy
IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXNzaW9u
X2Nsb3NlIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX3VuaXggYWNjdD0iZGVi
aWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/
IHJlcz1zdWNjZXNzJwpbICAgMjMuNDYxODEzXSBhdWRpdDogdHlwZT0xMTA0IGF1ZGl0KDE3MDM3
MTIzMDQuMDI2OjIyMik6IHBpZD01MDEyIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2
NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9yb290b2sgYWNjdD0iZGViaWFu
IiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJl
cz1zdWNjZXNzJwpbICAgMjMuNDc1OTczXSBhdWRpdDogdHlwZT0xMTMwIGF1ZGl0KDE3MDM3MTIz
MDQuMDQwOjIyMyk6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBt
c2c9J3VuaXQ9cXViZXMtdm1Ac3lzLXVzYiBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5
c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycK
WyAgIDIzLjQ4NjQ4Ml0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNzEyMzA0LjA1MDoyMjQp
OiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PXN5
c3RlbWQtdXNlci1zZXNzaW9ucyBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3RlbWQv
c3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgIDIz
LjQ4ODY1OV0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNzEyMzA0LjA1MjoyMjUpOiBwaWQ9
MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PWNyb25kIGNv
bW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFk
ZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgMjMuNTM5NTMwXSBhdWRpdDogdHlwZT0x
MTMwIGF1ZGl0KDE3MDM3MTIzMDQuMTAzOjIyNik6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5
NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9bGlnaHRkbSBjb21tPSJzeXN0ZW1kIiBleGU9Ii91
c3IvbGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9
c3VjY2VzcycKWyAgIDIzLjU1ODUzNl0gaW5wdXQ6IHN5cy11c2I6IFVTQiBHYW1pbmcgTW91c2Ug
Q29uc3VtZXIgQ29udHJvbCBhcyAvZGV2aWNlcy92aXJ0dWFsL2lucHV0L2lucHV0MzEKWyAgIDIz
LjU1OTg4MF0gaW5wdXQ6IHN5cy11c2I6IFVTQiBHYW1pbmcgTW91c2UgYXMgL2RldmljZXMvdmly
dHVhbC9pbnB1dC9pbnB1dDMyClsgICAyMy42Mjc4OTJdIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQo
MTcwMzcxMjMwNC4xOTI6MjI3KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0
OTY3Mjk1IG1zZz0ndW5pdD1wb2xraXQgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0
ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsg
ICAyMy42Mjg4MDJdIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzcxMjMwNC4xOTM6MjI4KTog
cGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0ndW5pdD1hY2Nv
dW50cy1kYWVtb24gY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQi
IGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAyNC4wMDgxNjhd
IHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC8zLzUxNzEyOiB1c2luZyAyIHF1ZXVlcywgcHJvdG9j
b2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMKWyAgIDI0LjAyOTIzMF0geGVuLWJs
a2JhY2s6IGJhY2tlbmQvdmJkLzMvNTE3Mjg6IHVzaW5nIDIgcXVldWVzLCBwcm90b2NvbCAxICh4
ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cwpbICAgMjQuMDU4MzM3XSB4ZW4tYmxrYmFjazog
YmFja2VuZC92YmQvMy81MTc0NDogdXNpbmcgMiBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1h
YmkpIHBlcnNpc3RlbnQgZ3JhbnRzClsgICAyNC4wNzQ2MjFdIHhlbi1ibGtiYWNrOiBiYWNrZW5k
L3ZiZC8zLzUxNzYwOiB1c2luZyAyIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVy
c2lzdGVudCBncmFudHMKWyAgIDI0LjcxOTU3NF0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAz
NzEyMzA1LjI4MzoyMjkpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5Njcy
OTUgbXNnPSd1bml0PXBseW1vdXRoLXF1aXQtd2FpdCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3Iv
bGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3Vj
Y2VzcycKWyAgIDI0LjcyMTUzNV0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNzEyMzA1LjI4
NToyMzApOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1
bml0PXNlcmlhbC1nZXR0eUBodmMwIGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVt
ZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAg
MjguNjY5NjY0XSBrYXVkaXRkX3ByaW50a19za2I6IDE0IGNhbGxiYWNrcyBzdXBwcmVzc2VkClsg
ICAyOC42Njk2NjZdIGF1ZGl0OiB0eXBlPTExMDAgYXVkaXQoMTcwMzcxMjMwOS4yMzM6MjQzKTog
cGlkPTU5OTcgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFN
OmF1dGhlbnRpY2F0aW9uIGdyYW50b3JzPXBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNy
L3NiaW4vbGlnaHRkbSIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9OjAgcmVzPXN1Y2Nlc3Mn
ClsgICAyOC42Njk3NjRdIGF1ZGl0OiB0eXBlPTExMDEgYXVkaXQoMTcwMzcxMjMwOS4yMzM6MjQ0
KTogcGlkPTU5OTcgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9
UEFNOmFjY291bnRpbmcgZ3JhbnRvcnM9cGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3Iv
c2Jpbi9saWdodGRtIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD06MCByZXM9c3VjY2VzcycK
WyAgIDI4LjcxODYyN10gYXVkaXQ6IHR5cGU9MTEwNiBhdWRpdCgxNzAzNzEyMzA5LjI4MjoyNDUp
OiBwaWQ9NTk1NSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1Q
QU06c2Vzc2lvbl9jbG9zZSBncmFudG9ycz1wYW1fdW5peCxwYW1fc3lzdGVtZCBhY2N0PSJsaWdo
dGRtIiBleGU9Ii91c3Ivc2Jpbi9saWdodGRtIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD06
MCByZXM9c3VjY2VzcycKWyAgIDI4LjcxODY3Nl0gYXVkaXQ6IHR5cGU9MTEwNCBhdWRpdCgxNzAz
NzEyMzA5LjI4MjoyNDYpOiBwaWQ9NTk1NSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5
NjcyOTUgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fZW52LHBhbV9wZXJtaXQgYWNj
dD0ibGlnaHRkbSIgZXhlPSIvdXNyL3NiaW4vbGlnaHRkbSIgaG9zdG5hbWU9PyBhZGRyPT8gdGVy
bWluYWw9OjAgcmVzPXN1Y2Nlc3MnClsgICAyOC43MjI2MTZdIGF1ZGl0OiB0eXBlPTExMDMgYXVk
aXQoMTcwMzcxMjMwOS4yODY6MjQ3KTogcGlkPTU5OTcgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNl
cz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX3VuaXggYWNjdD0i
ZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9saWdodGRtIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5h
bD06MCByZXM9c3VjY2VzcycKWyAgIDI4LjcyMjY3NV0gYXVkaXQ6IHR5cGU9MTAwNiBhdWRpdCgx
NzAzNzEyMzA5LjI4NjoyNDgpOiBwaWQ9NTk5NyB1aWQ9MCBvbGQtYXVpZD00Mjk0OTY3Mjk1IGF1
aWQ9MTAwMCB0dHk9KG5vbmUpIG9sZC1zZXM9NDI5NDk2NzI5NSBzZXM9MiByZXM9MQpbICAgMjgu
NzIyNjc3XSBhdWRpdDogdHlwZT0xMzAwIGF1ZGl0KDE3MDM3MTIzMDkuMjg2OjI0OCk6IGFyY2g9
YzAwMDAwM2Ugc3lzY2FsbD0xIHN1Y2Nlc3M9eWVzIGV4aXQ9NCBhMD03IGExPTdmZmZmZTM1Mjgw
MCBhMj00IGEzPTdmZmZmZTM1MjUxNCBpdGVtcz0wIHBwaWQ9NTg1MCBwaWQ9NTk5NyBhdWlkPTEw
MDAgdWlkPTAgZ2lkPTAgZXVpZD0wIHN1aWQ9MCBmc3VpZD0wIGVnaWQ9MCBzZ2lkPTAgZnNnaWQ9
MCB0dHk9KG5vbmUpIHNlcz0yIGNvbW09ImxpZ2h0ZG0iIGV4ZT0iL3Vzci9zYmluL2xpZ2h0ZG0i
IGtleT0obnVsbCkKWyAgIDI4LjcyMjY3OV0gYXVkaXQ6IHR5cGU9MTMyNyBhdWRpdCgxNzAzNzEy
MzA5LjI4NjoyNDgpOiBwcm9jdGl0bGU9NkM2OTY3Njg3NDY0NkQwMDJEMkQ3MzY1NzM3MzY5NkY2
RTJENjM2ODY5NkM2NDAwMzEzMjAwMzEzOQpbICAgMjguNzQwNjA3XSBhdWRpdDogdHlwZT0xMTMw
IGF1ZGl0KDE3MDM3MTIzMDkuMzA0OjI0OSk6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBz
ZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9dXNlci1ydW50aW1lLWRpckAxMDAwIGNvbW09InN5c3Rl
bWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJt
aW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgMjguNzQ2OTMwXSBhdWRpdDogdHlwZT0xMTAxIGF1ZGl0
KDE3MDM3MTIzMDkuMzExOjI1MCk6IHBpZD02MDA1IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9
NDI5NDk2NzI5NSBtc2c9J29wPVBBTTphY2NvdW50aW5nIGdyYW50b3JzPXBhbV91bml4IGFjY3Q9
ImRlYmlhbiIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/
IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAyOS4xMDE0NjldIGxvb3AxNzogZGV0ZWN0ZWQg
Y2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAyMDk3MTUyMApbICAgMjkuMTczNzQ0XSBsb29wMTg6
IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gNDE5NDMwNApbICAgMzAuODk4MDQ2
XSBsb29wMTk6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMjUxNjU4MjQKWyAg
IDMwLjk5MzkxM10gbG9vcDIwOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDk1
MjE5MgpbICAgMzMuODI1NzM2XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9t
aWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xMDQxMyBlbmQ9MTA0MTQpIHRpbWUg
MjM3IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwMjAsIGVuZCAxMDg0
ClsgICAzNC4xMjgyMDVdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC81LzUxNzEyOiB1c2luZyAy
IHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMKWyAgIDM0
LjE1NjgzNV0geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJkLzUvNTE3Mjg6IHVzaW5nIDIgcXVldWVz
LCBwcm90b2NvbCAxICh4ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cwpbICAgMzQuMTgxNDc0
XSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvNS81MTc0NDogdXNpbmcgMiBxdWV1ZXMsIHByb3Rv
Y29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzClsgICAzNC4yMDE5NThdIHhlbi1i
bGtiYWNrOiBiYWNrZW5kL3ZiZC81LzUxNzYwOiB1c2luZyAyIHF1ZXVlcywgcHJvdG9jb2wgMSAo
eDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMKWyAgIDM1LjY0NzI4N10gaW5wdXQ6IHN5cy11
c2I6IFVTQiBHYW1pbmcgTW91c2UgYXMgL2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDMzClsg
ICAzNy41MTMxMzNdIGthdWRpdGRfcHJpbnRrX3NrYjogOTEgY2FsbGJhY2tzIHN1cHByZXNzZWQK
WyAgIDM3LjUxMzEzNV0gYXVkaXQ6IHR5cGU9MTEwNiBhdWRpdCgxNzAzNzEyMzE4LjA3NzozNDAp
OiBwaWQ9NjcxMSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1Q
QU06c2Vzc2lvbl9jbG9zZSBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4
IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8g
dGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgIDM3LjUxMzE1NF0gYXVkaXQ6IHR5cGU9MTEwNCBh
dWRpdCgxNzAzNzEyMzE4LjA3NzozNDEpOiBwaWQ9NjcxMSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUg
c2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFj
Y3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVy
bWluYWw9PyByZXM9c3VjY2VzcycKWyAgIDM3LjUzMTY0NV0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRp
dCgxNzAzNzEyMzE4LjA5NTozNDIpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQy
OTQ5NjcyOTUgbXNnPSd1bml0PXF1YmVzLXZtQHN5cy1maXJld2FsbCBjb21tPSJzeXN0ZW1kIiBl
eGU9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9
PyByZXM9c3VjY2VzcycKWyAgIDM3LjU0MTcwOF0gYXVkaXQ6IHR5cGU9MTEyOSBhdWRpdCgxNzAz
NzEyMzE4LjEwNTozNDMpOiBwaWQ9NjgyMyB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5
NjcyOTUgbXNnPSdvbGQtbGV2ZWw9TiBuZXctbGV2ZWw9NSBjb21tPSJzeXN0ZW1kLXVwZGF0ZS11
dG1wIiBleGU9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVtZC11cGRhdGUtdXRtcCIgaG9zdG5hbWU9
PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgIDM3LjU0MzI3M10gYXVkaXQ6IHR5
cGU9MTEzMCBhdWRpdCgxNzAzNzEyMzE4LjEwNzozNDQpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5
NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PXN5c3RlbWQtdXBkYXRlLXV0bXAtcnVubGV2
ZWwgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1l
PT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgICAzNy41NDMyNzhdIGF1ZGl0OiB0
eXBlPTExMzEgYXVkaXQoMTcwMzcxMjMxOC4xMDc6MzQ1KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0
OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0ndW5pdD1zeXN0ZW1kLXVwZGF0ZS11dG1wLXJ1bmxl
dmVsIGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFt
ZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgMzguOTg2NTI3XSBhdWRpdDog
dHlwZT0xMTMxIGF1ZGl0KDE3MDM3MTIzMTkuNTUwOjM0Nik6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5
NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9dXNlckA5OTQgY29tbT0ic3lzdGVtZCIg
ZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFs
PT8gcmVzPXN1Y2Nlc3MnClsgICAzOC45OTgxMTVdIGF1ZGl0OiB0eXBlPTExMzEgYXVkaXQoMTcw
MzcxMjMxOS41NjI6MzQ3KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3
Mjk1IG1zZz0ndW5pdD11c2VyLXJ1bnRpbWUtZGlyQDk5NCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91
c3IvbGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9
c3VjY2VzcycKWyAgIDUwLjcwMzI4NV0gbG9vcDIxOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2Ug
ZnJvbSAwIHRvIDQxOTQzMDQwClsgICA1MC43Mzg5OTZdIGxvb3AyMjogZGV0ZWN0ZWQgY2FwYWNp
dHkgY2hhbmdlIGZyb20gMCB0byA0MTk0MzA0MApbICAgNTAuODk4NTE3XSBsb29wMjM6IGRldGVj
dGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMjA5NzE1MjAKWyAgIDUyLjQyODMzNl0gbG9v
cDI0OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwOTcxNTIwClsgICA1Mi40
OTQ3MTldIGxvb3AyNTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA5NTIxOTIK
WyAgIDUyLjY2OTA1Ml0gYXVkaXQ6IHR5cGU9MTEwMyBhdWRpdCgxNzAzNzEyMzMzLjIzMzozNDgp
OiBwaWQ9NzM3OCB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1Q
QU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3Ni
aW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAg
IDUyLjY2OTM2M10gYXVkaXQ6IHR5cGU9MTEwNSBhdWRpdCgxNzAzNzEyMzMzLjIzMzozNDkpOiBw
aWQ9NzM3OCB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06
c2Vzc2lvbl9vcGVuIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX3VuaXggYWNj
dD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJt
aW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgNTIuNjgyNTYxXSBhdWRpdDogdHlwZT0xMTA2IGF1ZGl0
KDE3MDM3MTIzMzMuMjQ2OjM1MCk6IHBpZD03Mzc4IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9
NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXNzaW9uX2Nsb3NlIGdyYW50b3JzPXBhbV9rZXlpbml0
LHBhbV9saW1pdHMscGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2Vy
IiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgNTIuNjgyNTg0
XSBhdWRpdDogdHlwZT0xMTA0IGF1ZGl0KDE3MDM3MTIzMzMuMjQ2OjM1MSk6IHBpZD03Mzc4IHVp
ZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVkIGdy
YW50b3JzPXBhbV9yb290b2sgYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBo
b3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgNTIuNjk5NTY3XSBh
dWRpdDogdHlwZT0xMTAzIGF1ZGl0KDE3MDM3MTIzMzMuMjYzOjM1Mik6IHBpZD03MzgyIHVpZD0w
IGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50
b3JzPXBhbV9yb290b2sgYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0
bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICAgNTIuNjk5ODgzXSBhdWRp
dDogdHlwZT0xMTA1IGF1ZGl0KDE3MDM3MTIzMzMuMjY0OjM1Myk6IHBpZD03MzgyIHVpZD0wIGF1
aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXNzaW9uX29wZW4gZ3Jh
bnRvcnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0i
L3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nl
c3MnClsgICA1NS40MDQ3MDddIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC82LzUxNzEyOiB1c2lu
ZyAyIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMKWyAg
IDU1LjQ0MjcwNV0geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJkLzYvNTE3Mjg6IHVzaW5nIDIgcXVl
dWVzLCBwcm90b2NvbCAxICh4ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cwpbICAgNTUuNDY4
NDI3XSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvNi81MTc0NDogdXNpbmcgMiBxdWV1ZXMsIHBy
b3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzClsgICA1NS40OTA2NTJdIHhl
bi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC82LzUxNzYwOiB1c2luZyAyIHF1ZXVlcywgcHJvdG9jb2wg
MSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMKWyAgIDU4LjcwNjY1MF0gYXVkaXQ6IHR5
cGU9MTEwNiBhdWRpdCgxNzAzNzEyMzM5LjI3MDozNTQpOiBwaWQ9NzM4MiB1aWQ9MCBhdWlkPTQy
OTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9jbG9zZSBncmFudG9y
cz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNy
L3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycK
WyAgIDU4LjcwNjY2OV0gYXVkaXQ6IHR5cGU9MTEwNCBhdWRpdCgxNzAzNzEyMzM5LjI3MDozNTUp
OiBwaWQ9NzM4MiB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1Q
QU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3Ni
aW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAg
MTc2LjcwMzYzNl0gYXVkaXQ6IHR5cGU9MTEwNSBhdWRpdCgxNzAzNzEyNDU3LjI2NzozNTYpOiBw
aWQ9NzQ3MiB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTMgbXNnPSdvcD1QQU06c2Vzc2lvbl9vcGVu
IGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX3N5c3RlbWQscGFtX3VuaXggYWNj
dD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9wa2V4ZWMiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFs
PT8gcmVzPXN1Y2Nlc3MnClsgIDIwNy45NDEyNzldIGF1ZGl0OiB0eXBlPTExMDEgYXVkaXQoMTcw
MzcxMjQ4OC41MDU6MzU3KTogcGlkPTc0OTkgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0n
b3A9UEFNOmFjY291bnRpbmcgZ3JhbnRvcnM9cGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91
c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1
Y2Nlc3MnClsgIDIwNy45NDE2MzBdIGF1ZGl0OiB0eXBlPTExMjMgYXVkaXQoMTcwMzcxMjQ4OC41
MDU6MzU4KTogcGlkPTc0OTkgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nY3dkPSIvaG9t
ZS9kZWJpYW4iIGNtZD0iZG1lc2ciIGV4ZT0iL3Vzci9iaW4vc3VkbyIgdGVybWluYWw9cHRzLzcg
cmVzPXN1Y2Nlc3MnClsgIDIwNy45NDIyODNdIGF1ZGl0OiB0eXBlPTExMTAgYXVkaXQoMTcwMzcx
MjQ4OC41MDY6MzU5KTogcGlkPTc0OTkgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9
UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX2VudixwYW1fdW5peCBhY2N0PSJyb290IiBleGU9Ii91
c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1
Y2Nlc3MnClsgIDIwNy45NDk3NDddIGF1ZGl0OiB0eXBlPTExMDUgYXVkaXQoMTcwMzcxMjQ4OC41
MTM6MzYwKTogcGlkPTc0OTkgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNl
c3Npb25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9rZXlpbml0LHBh
bV9saW1pdHMscGFtX3N5c3RlbWQscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9z
dWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJwpb
ICAyMDguMDIzMjQ0XSBhdWRpdDogdHlwZT0xMTA2IGF1ZGl0KDE3MDM3MTI0ODguNTg3OjM2MSk6
IHBpZD03NDk5IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXNzaW9uX2Ns
b3NlIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX2tleWluaXQscGFtX2xpbWl0
cyxwYW1fc3lzdGVtZCxwYW1fdW5peCBhY2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhv
c3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1Y2Nlc3MnClsgIDIwOC4w
MjM0OThdIGF1ZGl0OiB0eXBlPTExMDQgYXVkaXQoMTcwMzcxMjQ4OC41ODc6MzYyKTogcGlkPTc0
OTkgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9
cGFtX2VudixwYW1fdW5peCBhY2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1l
PT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1Y2Nlc3MnClsgIDI3OS42Njk4Mjhd
IGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVyZSBv
biBwaXBlIEEgKHN0YXJ0PTY5NDE2IGVuZD02OTQxNykgdGltZSA0OTAgdXMsIG1pbiAxMDUzLCBt
YXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgOTYwLCBlbmQgMTA5MApbICA1MjEuNzI2NTQ3XSBpOTE1
IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlw
ZSBBIChzdGFydD0xMjc1MTAgZW5kPTEyNzUxMSkgdGltZSAyNzEgdXMsIG1pbiAxMDUzLCBtYXgg
MTA3OSwgc2NhbmxpbmUgc3RhcnQgMTAyNiwgZW5kIDEwOTUKWyAgNTIyLjY4NDkyMV0gaTkxNSAw
MDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUg
QSAoc3RhcnQ9MTI3NzQwIGVuZD0xMjc3NDEpIHRpbWUgMzYzIHVzLCBtaW4gMTA1MywgbWF4IDEw
NzksIHNjYW5saW5lIHN0YXJ0IDEwMzgsIGVuZCAyMApbICA1MjMuMzU5ODk5XSBpOTE1IDAwMDA6
MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChz
dGFydD0xMjc5MDIgZW5kPTEyNzkwMykgdGltZSAzMjggdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwg
c2NhbmxpbmUgc3RhcnQgMTA0NSwgZW5kIDE4ClsgIDUyNi4wNTk5OTRdIGk5MTUgMDAwMDowMDow
Mi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0
PTEyODU1MCBlbmQ9MTI4NTUxKSB0aW1lIDQzNCB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2Fu
bGluZSBzdGFydCAxMDQ2LCBlbmQgNDMKWyAgNTMzLjI1OTgxOF0gbG9vcDI2OiBkZXRlY3RlZCBj
YXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwMDgwMjMwNApbICA1MzMuMzA1MDQ2XSBsb29wMjc6
IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMjAwODAyMzA0ClsgIDUzMy4zOTMx
MDldIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVy
ZSBvbiBwaXBlIEEgKHN0YXJ0PTEzMDMxMCBlbmQ9MTMwMzExKSB0aW1lIDQzMiB1cywgbWluIDEw
NTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDE0LCBlbmQgMTQKWyAgNTMzLjUxMDY4MF0g
bG9vcDI4OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwOTcxNTIwClsgIDUz
My41NjYxNjddIGxvb3AyOTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAyMDk3
MTUyMApbICA1MzcuNjIxNTI0XSBsb29wMzA6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9t
IDAgdG8gMjA5NzE1MjAKWyAgNTQxLjM2NTcyM10gbG9vcDMxOiBkZXRlY3RlZCBjYXBhY2l0eSBj
aGFuZ2UgZnJvbSAwIHRvIDIwOTcxNTIwClsgIDU0Mi41MDA3NjBdIHhlbi1ibGtiYWNrOiBiYWNr
ZW5kL3ZiZC84LzUxNzEyOiB1c2luZyAxIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkg
cGVyc2lzdGVudCBncmFudHMKWyAgNTQyLjYwNTMzNV0geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJk
LzgvNTE3Mjg6IHVzaW5nIDEgcXVldWVzLCBwcm90b2NvbCAxICh4ODZfNjQtYWJpKSBwZXJzaXN0
ZW50IGdyYW50cwpbICA1NDIuNzI1OTc2XSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvOC81MTc0
NDogdXNpbmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3Jh
bnRzClsgIDU0NC4wNzk0MTRdIGF1ZGl0OiB0eXBlPTExMDMgYXVkaXQoMTcwMzcxMjgyNC42NDM6
MzYzKTogcGlkPTg2NjUgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0n
b3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vz
ci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3Mn
ClsgIDU0NC4wODA4MDZdIGF1ZGl0OiB0eXBlPTExMDUgYXVkaXQoMTcwMzcxMjgyNC42NDU6MzY0
KTogcGlkPTg2NjUgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9
UEFNOnNlc3Npb25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4
IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8g
dGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgNTQ0LjE1MDMyN10gYXVkaXQ6IHR5cGU9MTEwNiBh
dWRpdCgxNzAzNzEyODI0LjcxNDozNjUpOiBwaWQ9ODY2NSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUg
c2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9jbG9zZSBncmFudG9ycz1wYW1fa2V5
aW5pdCxwYW1fbGltaXRzLHBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVu
dXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgNTQ0LjE1
MDQ0MF0gYXVkaXQ6IHR5cGU9MTEwNCBhdWRpdCgxNzAzNzEyODI0LjcxNDozNjYpOiBwaWQ9ODY2
NSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2V0Y3Jl
ZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNl
ciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgNTQ0LjI0MDY3
M10gYXVkaXQ6IHR5cGU9MTEwMyBhdWRpdCgxNzAzNzEyODI0LjgwNDozNjcpOiBwaWQ9ODY3NiB1
aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2V0Y3JlZCBn
cmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIg
aG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgNTQ0LjI0MjIwOV0g
YXVkaXQ6IHR5cGU9MTEwNSBhdWRpdCgxNzAzNzEyODI0LjgwNjozNjgpOiBwaWQ9ODY3NiB1aWQ9
MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9vcGVu
IGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX3VuaXggYWNjdD0iZGViaWFuIiBl
eGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1z
dWNjZXNzJwpbICA1NDQuMjYwNDMwXSBhdWRpdDogdHlwZT0xMTA2IGF1ZGl0KDE3MDM3MTI4MjQu
ODI0OjM2OSk6IHBpZD04Njc2IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBt
c2c9J29wPVBBTTpzZXNzaW9uX2Nsb3NlIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMs
cGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/
IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICA1NDQuMjYwNTYyXSBhdWRpdDogdHlw
ZT0xMTA0IGF1ZGl0KDE3MDM3MTI4MjQuODI0OjM3MCk6IHBpZD04Njc2IHVpZD0wIGF1aWQ9NDI5
NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9y
b290b2sgYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFk
ZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICA1NTMuMDkyODgzXSBpOTE1IDAwMDA6MDA6
MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFy
dD0xMzUwMzggZW5kPTEzNTAzOSkgdGltZSAyOTQgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2Nh
bmxpbmUgc3RhcnQgMTAxNCwgZW5kIDEwODgKWyAgNTU4LjM5MjgzNF0gaTkxNSAwMDAwOjAwOjAy
LjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9
MTM2MzEwIGVuZD0xMzYzMTEpIHRpbWUgMzE3IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5s
aW5lIHN0YXJ0IDEwMjEsIGVuZCAxMTA1ClsgIDU1OS40MDk0NjJdIGk5MTUgMDAwMDowMDowMi4w
OiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTEz
NjU1NCBlbmQ9MTM2NTU1KSB0aW1lIDQ2MyB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGlu
ZSBzdGFydCA5NzksIGVuZCAxMTAyClsgIDU5Ni4xMjQ5MTNdIGxvb3AyNjogZGV0ZWN0ZWQgY2Fw
YWNpdHkgY2hhbmdlIGZyb20gMCB0byAyMDA4MDIzMDQKWyAgNTk2LjE1NDY3NF0gbG9vcDI3OiBk
ZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwMDgwMjMwNApbICA1OTYuMzUwMzEx
XSBsb29wMjg6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMjA5NzE1MjAKWyAg
NTk2LjM3MzkyOF0gbG9vcDI5OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIw
OTcxNTIwClsgIDYwMC40NzE3ODZdIGxvb3AzMDogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZy
b20gMCB0byAyMDk3MTUyMApbICA2MDMuMzUwOTYwXSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0g
KkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xNDcxMDAgZW5k
PTE0NzEwMSkgdGltZSAzNDYgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQg
MTAxOCwgZW5kIDExMDMKWyAgNjA0LjgxNTQ0M10gbG9vcDMxOiBkZXRlY3RlZCBjYXBhY2l0eSBj
aGFuZ2UgZnJvbSAwIHRvIDIwOTcxNTIwClsgIDYwNS42NzU4ODVdIGk5MTUgMDAwMDowMDowMi4w
OiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE0
NzY1OCBlbmQ9MTQ3NjU5KSB0aW1lIDI3MCB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGlu
ZSBzdGFydCAxMDUxLCBlbmQgMTEKWyAgNjA2LjExMTQ5NF0geGVuLWJsa2JhY2s6IGJhY2tlbmQv
dmJkLzEwLzUxNzEyOiB1c2luZyAxIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVy
c2lzdGVudCBncmFudHMKWyAgNjA2LjI3OTU1Nl0geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJkLzEw
LzUxNzI4OiB1c2luZyAxIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVu
dCBncmFudHMKWyAgNjA2LjUzNTMwMV0geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJkLzEwLzUxNzQ0
OiB1c2luZyAxIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFu
dHMKWyAgNjA2LjY1MDgzMF0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWlj
IHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTQ3ODkyIGVuZD0xNDc4OTMpIHRpbWUg
NDA0IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDk5MywgZW5kIDEwOTMK
WyAgNjA3LjQwOTEyNV0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVw
ZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTQ4MDc0IGVuZD0xNDgwNzUpIHRpbWUgNDA1
IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDk5OCwgZW5kIDExMDYKWyAg
NjA4LjI3MzI2NF0gYXVkaXQ6IHR5cGU9MTEwMyBhdWRpdCgxNzAzNzEyODg4LjgzNzozNzEpOiBw
aWQ9OTczNSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06
c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4v
cnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycKWyAgNjA4
LjI3NDkwMF0gYXVkaXQ6IHR5cGU9MTEwNSBhdWRpdCgxNzAzNzEyODg4LjgzOTozNzIpOiBwaWQ9
OTczNSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vz
c2lvbl9vcGVuIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX3VuaXggYWNjdD0i
ZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5h
bD0/IHJlcz1zdWNjZXNzJwpbICA2MDguMzI4Mjk5XSBhdWRpdDogdHlwZT0xMTA2IGF1ZGl0KDE3
MDM3MTI4ODguODkyOjM3Myk6IHBpZD05NzM1IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5
NDk2NzI5NSBtc2c9J29wPVBBTTpzZXNzaW9uX2Nsb3NlIGdyYW50b3JzPXBhbV9rZXlpbml0LHBh
bV9saW1pdHMscGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBo
b3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICA2MDguMzI4NDgzXSBh
dWRpdDogdHlwZT0xMTA0IGF1ZGl0KDE3MDM3MTI4ODguODkyOjM3NCk6IHBpZD05NzM1IHVpZD0w
IGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50
b3JzPXBhbV9yb290b2sgYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0
bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICA2MDguNDU2OTUxXSBhdWRp
dDogdHlwZT0xMTAzIGF1ZGl0KDE3MDM3MTI4ODkuMDIxOjM3NSk6IHBpZD05NzM5IHVpZD0wIGF1
aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3Jz
PXBhbV9yb290b2sgYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFt
ZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJwpbICA2MDguNDU4OTg3XSBhdWRpdDog
dHlwZT0xMTA1IGF1ZGl0KDE3MDM3MTI4ODkuMDIzOjM3Nik6IHBpZD05NzM5IHVpZD0wIGF1aWQ9
NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXNzaW9uX29wZW4gZ3JhbnRv
cnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vz
ci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3Mn
ClsgIDYwOC40NzkzMTRdIGF1ZGl0OiB0eXBlPTExMDYgYXVkaXQoMTcwMzcxMjg4OS4wNDM6Mzc3
KTogcGlkPTk3MzkgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9
UEFNOnNlc3Npb25fY2xvc2UgZ3JhbnRvcnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fdW5p
eCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/
IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgIDYwOC40NzkzMzldIGF1ZGl0OiB0eXBlPTExMDQg
YXVkaXQoMTcwMzcxMjg4OS4wNDM6Mzc4KTogcGlkPTk3MzkgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1
IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBh
Y2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRl
cm1pbmFsPT8gcmVzPXN1Y2Nlc3MnClsgIDYxMS44MDA3MjVdIGk5MTUgMDAwMDowMDowMi4wOiBb
ZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE0OTEy
OCBlbmQ9MTQ5MTI5KSB0aW1lIDI1OCB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBz
dGFydCAxMDEzLCBlbmQgMTA3OApbICA2MTEuOTI1OTU3XSBpOTE1IDAwMDA6MDA6MDIuMDogW2Ry
bV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xNDkxNTgg
ZW5kPTE0OTE1OSkgdGltZSAzMTYgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3Rh
cnQgMTA0NywgZW5kIDEyClsgIDYyOC4wNDIyNjJdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAq
RVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE1MzAyNiBlbmQ9
MTUzMDI3KSB0aW1lIDE3MiB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAx
MDQ4LCBlbmQgMTA5MwpbICA2MzcuNDkyMjIwXSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVS
Uk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xNTUyOTQgZW5kPTE1
NTI5NSkgdGltZSAyNTggdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgMTAz
MywgZW5kIDExMDEKWyAgNjM5LjE0MjE3OV0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJP
UiogQXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTU1NjkwIGVuZD0xNTU2
OTEpIHRpbWUgMzYxIHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDk5OCwg
ZW5kIDEwODcKWyAgNjM5LjUzODAzNl0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiog
QXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTU1Nzg1IGVuZD0xNTU3ODYp
IHRpbWUgMjE0IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwMzMsIGVu
ZCAxMDg3ClsgIDY0NS42NDIxOTldIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0
b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE1NzI1MCBlbmQ9MTU3MjUxKSB0
aW1lIDIzMCB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDUwLCBlbmQg
MApbICA2NDcuNDU4Nzk1XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMg
dXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xNTc2ODYgZW5kPTE1NzY4NykgdGltZSAx
OTYgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgMTA0MywgZW5kIDEwOTUK
WyAgNjQ4LjcyNTUxNV0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVw
ZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTU3OTkwIGVuZD0xNTc5OTEpIHRpbWUgNDU0
IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDk5MiwgZW5kIDIKWyAgNjQ4
Ljc4Nzk5NF0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBm
YWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTU4MDA1IGVuZD0xNTgwMDYpIHRpbWUgMTgzIHVzLCBt
aW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwNDUsIGVuZCAxMDkxClsgIDY1NS44
MTcxNjJdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFp
bHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE1OTY5MiBlbmQ9MTU5NjkzKSB0aW1lIDQzMyB1cywgbWlu
IDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDA2LCBlbmQgMTAKWyAgNjU5Ljg4Nzkx
NV0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBmYWlsdXJl
IG9uIHBpcGUgQSAoc3RhcnQ9MTYwNjY5IGVuZD0xNjA2NzApIHRpbWUgMjIwIHVzLCBtaW4gMTA1
MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwNDMsIGVuZCAxMTAyClsgIDY3Ny42MzM2NDVd
IGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVyZSBv
biBwaXBlIEEgKHN0YXJ0PTE2NDkyOCBlbmQ9MTY0OTI5KSB0aW1lIDI3NCB1cywgbWluIDEwNTMs
IG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDIwLCBlbmQgMTA5MApbICA2ODUuMzk1OTAwXSBh
dWRpdDogdHlwZT0xMTAxIGF1ZGl0KDE3MDM3MTI5NjUuOTYwOjM3OSk6IHBpZD0xMDExNiB1aWQ9
MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06YWNjb3VudGluZyBncmFudG9ycz1wYW1f
dW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8g
dGVybWluYWw9L2Rldi9wdHMvNSByZXM9c3VjY2VzcycKWyAgNjg1LjM5NjI0NF0gYXVkaXQ6IHR5
cGU9MTEyMyBhdWRpdCgxNzAzNzEyOTY1Ljk2MDozODApOiBwaWQ9MTAxMTYgdWlkPTEwMDAgYXVp
ZD0xMDAwIHNlcz0yIG1zZz0nY3dkPSIvaG9tZS9kZWJpYW4iIGNtZD03ODZDMjA2NDZENjU3MzY3
IGV4ZT0iL3Vzci9iaW4vc3VkbyIgdGVybWluYWw9cHRzLzUgcmVzPXN1Y2Nlc3MnClsgIDY4NS4z
OTY4MzVdIGF1ZGl0OiB0eXBlPTExMTAgYXVkaXQoMTcwMzcxMjk2NS45NjE6MzgxKTogcGlkPTEw
MTE2IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3Jz
PXBhbV9lbnYscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFt
ZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy81IHJlcz1zdWNjZXNzJwpbICA2ODUuNDA1NzY0
XSBhdWRpdDogdHlwZT0xMTA1IGF1ZGl0KDE3MDM3MTI5NjUuOTcwOjM4Mik6IHBpZD0xMDExNiB1
aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2Vzc2lvbl9vcGVuIGdyYW50b3Jz
PXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fc3lzdGVt
ZCxwYW1fdW5peCBhY2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRk
cj0/IHRlcm1pbmFsPS9kZXYvcHRzLzUgcmVzPXN1Y2Nlc3MnClsgIDY4NS40MzUwMTBdIGF1ZGl0
OiB0eXBlPTExMDYgYXVkaXQoMTcwMzcxMjk2NS45OTk6MzgzKTogcGlkPTEwMTE2IHVpZD0xMDAw
IGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXNzaW9uX2Nsb3NlIGdyYW50b3JzPXBhbV9r
ZXlpbml0LHBhbV9saW1pdHMscGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fc3lzdGVtZCxwYW1f
dW5peCBhY2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRl
cm1pbmFsPS9kZXYvcHRzLzUgcmVzPXN1Y2Nlc3MnClsgIDY4NS40MzUyMTNdIGF1ZGl0OiB0eXBl
PTExMDQgYXVkaXQoMTcwMzcxMjk2NS45OTk6Mzg0KTogcGlkPTEwMTE2IHVpZD0xMDAwIGF1aWQ9
MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9lbnYscGFtX3VuaXgg
YWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5h
bD0vZGV2L3B0cy81IHJlcz1zdWNjZXNzJwpbICA3MDguNTA4NDYzXSBpOTE1IDAwMDA6MDA6MDIu
MDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0x
NzIzMzggZW5kPTE3MjMzOSkgdGltZSAzMDIgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2Nhbmxp
bmUgc3RhcnQgMTA0MCwgZW5kIDkKWyAgNzIyLjU3NDQyOF0gYXVkaXQ6IHR5cGU9MTEwMSBhdWRp
dCgxNzAzNzEzMDAzLjEzODozODUpOiBwaWQ9MTAxMjYgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0y
IG1zZz0nb3A9UEFNOmFjY291bnRpbmcgZ3JhbnRvcnM9cGFtX3VuaXggYWNjdD0iZGViaWFuIiBl
eGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcg
cmVzPXN1Y2Nlc3MnClsgIDcyMi41NzQ3NzNdIGF1ZGl0OiB0eXBlPTExMjMgYXVkaXQoMTcwMzcx
MzAwMy4xMzk6Mzg2KTogcGlkPTEwMTI2IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J2N3
ZD0iL2hvbWUvZGViaWFuL3Rlc3QiIGNtZD02RTYxNkU2RjIwNzg2QzY0NkQ2NTczNjcgZXhlPSIv
dXNyL2Jpbi9zdWRvIiB0ZXJtaW5hbD1wdHMvNyByZXM9c3VjY2VzcycKWyAgNzIyLjU3NTM2MV0g
YXVkaXQ6IHR5cGU9MTExMCBhdWRpdCgxNzAzNzEzMDAzLjEzOTozODcpOiBwaWQ9MTAxMjYgdWlk
PTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX2Vu
dixwYW1fdW5peCBhY2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRk
cj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1Y2Nlc3MnClsgIDcyMi41ODQ1NjNdIGF1ZGl0
OiB0eXBlPTExMDUgYXVkaXQoMTcwMzcxMzAwMy4xNDg6Mzg4KTogcGlkPTEwMTI2IHVpZD0xMDAw
IGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXNzaW9uX29wZW4gZ3JhbnRvcnM9cGFtX2tl
eWluaXQscGFtX2xpbWl0cyxwYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9zeXN0ZW1kLHBhbV91
bml4IGFjY3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8gdGVy
bWluYWw9L2Rldi9wdHMvNyByZXM9c3VjY2VzcycKWyAgNzI2LjYxMjg1Ml0gaTkxNSAwMDAwOjAw
OjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3Rh
cnQ9MTc2NjgzIGVuZD0xNzY2ODQpIHRpbWUgNDA1IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNj
YW5saW5lIHN0YXJ0IDEwMzUsIGVuZCAyNApbICA3MjguNzA4MTc4XSBpOTE1IDAwMDA6MDA6MDIu
MDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0x
NzcxODYgZW5kPTE3NzE4NykgdGltZSAyMDYgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2Nhbmxp
bmUgc3RhcnQgMTAyOSwgZW5kIDEwODQKWyAgNzM0LjgwNzI2NF0gYXVkaXQ6IHR5cGU9MTEwNiBh
dWRpdCgxNzAzNzEzMDE1LjM3MTozODkpOiBwaWQ9MTAxMjYgdWlkPTEwMDAgYXVpZD0xMDAwIHNl
cz0yIG1zZz0nb3A9UEFNOnNlc3Npb25fY2xvc2UgZ3JhbnRvcnM9cGFtX2tleWluaXQscGFtX2xp
bWl0cyxwYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9zeXN0ZW1kLHBhbV91bml4IGFjY3Q9InJv
b3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9L2Rldi9w
dHMvNyByZXM9c3VjY2VzcycKWyAgNzM0LjgwNzQ2MV0gYXVkaXQ6IHR5cGU9MTEwNCBhdWRpdCgx
NzAzNzEzMDE1LjM3MTozOTApOiBwaWQ9MTAxMjYgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1z
Zz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX2VudixwYW1fdW5peCBhY2N0PSJyb290IiBl
eGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcg
cmVzPXN1Y2Nlc3MnClsgIDczOC4xNzUwMDVdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJS
T1IqIEF0b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE3OTQ1OCBlbmQ9MTc5
NDU5KSB0aW1lIDM0NSB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDM4
LCBlbmQgMTEKWyAgNzQ1LjY4Mjg4OV0gYXVkaXQ6IHR5cGU9MTEwMSBhdWRpdCgxNzAzNzEzMDI2
LjI0NzozOTEpOiBwaWQ9MTAxMzcgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFN
OmFjY291bnRpbmcgZ3JhbnRvcnM9cGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3IvYmlu
L3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzUgcmVzPXN1Y2Nlc3Mn
ClsgIDc0NS42ODMyNzZdIGF1ZGl0OiB0eXBlPTExMjMgYXVkaXQoMTcwMzcxMzAyNi4yNDc6Mzky
KTogcGlkPTEwMTM3IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J2N3ZD0iL2hvbWUvZGVi
aWFuIiBjbWQ9ImRtZXNnIiBleGU9Ii91c3IvYmluL3N1ZG8iIHRlcm1pbmFsPXB0cy81IHJlcz1z
dWNjZXNzJwpbICA3NDUuNjgzNzk4XSBhdWRpdDogdHlwZT0xMTEwIGF1ZGl0KDE3MDM3MTMwMjYu
MjQ4OjM5Myk6IHBpZD0xMDEzNyB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06
c2V0Y3JlZCBncmFudG9ycz1wYW1fZW52LHBhbV91bml4IGFjY3Q9InJvb3QiIGV4ZT0iL3Vzci9i
aW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9L2Rldi9wdHMvNSByZXM9c3VjY2Vz
cycKWyAgNzQ1LjY5MTAwMF0gYXVkaXQ6IHR5cGU9MTEwNSBhdWRpdCgxNzAzNzEzMDI2LjI1NToz
OTQpOiBwaWQ9MTAxMzcgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNlc3Np
b25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9rZXlpbml0LHBhbV9s
aW1pdHMscGFtX3N5c3RlbWQscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRv
IiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy81IHJlcz1zdWNjZXNzJwpbICA3
NDUuNzY5Mjc1XSBhdWRpdDogdHlwZT0xMTA2IGF1ZGl0KDE3MDM3MTMwMjYuMzMzOjM5NSk6IHBp
ZD0xMDEzNyB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2Vzc2lvbl9jbG9z
ZSBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9rZXlpbml0LHBhbV9saW1pdHMs
cGFtX3N5c3RlbWQscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0
bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy81IHJlcz1zdWNjZXNzJwpbICA3NDUuNzY5
NjYyXSBhdWRpdDogdHlwZT0xMTA0IGF1ZGl0KDE3MDM3MTMwMjYuMzM0OjM5Nik6IHBpZD0xMDEz
NyB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1w
YW1fZW52LHBhbV91bml4IGFjY3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9
PyBhZGRyPT8gdGVybWluYWw9L2Rldi9wdHMvNSByZXM9c3VjY2VzcycKWyAgNzc0LjcyOTYyMV0g
YXVkaXQ6IHR5cGU9MTEwMSBhdWRpdCgxNzAzNzEzMDU1LjI5NDozOTcpOiBwaWQ9MTAxNjUgdWlk
PTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFNOmFjY291bnRpbmcgZ3JhbnRvcnM9cGFt
X3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/
IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1Y2Nlc3MnClsgIDc3NC43Mjk5MjldIGF1ZGl0OiB0
eXBlPTExMjMgYXVkaXQoMTcwMzcxMzA1NS4yOTQ6Mzk4KTogcGlkPTEwMTY1IHVpZD0xMDAwIGF1
aWQ9MTAwMCBzZXM9MiBtc2c9J2N3ZD0iL2hvbWUvZGViaWFuL3Rlc3QiIGNtZD03ODZDMjA2NDZE
NjU3MzY3IGV4ZT0iL3Vzci9iaW4vc3VkbyIgdGVybWluYWw9cHRzLzcgcmVzPXN1Y2Nlc3MnClsg
IDc3NC43MzA0MjRdIGF1ZGl0OiB0eXBlPTExMTAgYXVkaXQoMTcwMzcxMzA1NS4yOTQ6Mzk5KTog
cGlkPTEwMTY1IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXRjcmVkIGdy
YW50b3JzPXBhbV9lbnYscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBo
b3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJwpbICA3NzQu
NzM4OTkxXSBhdWRpdDogdHlwZT0xMTA1IGF1ZGl0KDE3MDM3MTMwNTUuMzAzOjQwMCk6IHBpZD0x
MDE2NSB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2Vzc2lvbl9vcGVuIGdy
YW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1f
c3lzdGVtZCxwYW1fdW5peCBhY2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1l
PT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1Y2Nlc3MnClsgIDc3NC43NTc1NDdd
IGF1ZGl0OiB0eXBlPTExMDYgYXVkaXQoMTcwMzcxMzA1NS4zMjE6NDAxKTogcGlkPTEwMTY1IHVp
ZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXNzaW9uX2Nsb3NlIGdyYW50b3Jz
PXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fc3lzdGVt
ZCxwYW1fdW5peCBhY2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRk
cj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1Y2Nlc3MnClsgIDc3NC43NTc3OTRdIGF1ZGl0
OiB0eXBlPTExMDQgYXVkaXQoMTcwMzcxMzA1NS4zMjI6NDAyKTogcGlkPTEwMTY1IHVpZD0xMDAw
IGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9lbnYscGFt
X3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0
ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJwpbICA3ODIuNjU4NzQxXSBhdWRpdDogdHlw
ZT0xMTAxIGF1ZGl0KDE3MDM3MTMwNjMuMjIzOjQwMyk6IHBpZD0xMDE3NiB1aWQ9MTAwMCBhdWlk
PTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06YWNjb3VudGluZyBncmFudG9ycz1wYW1fdW5peCBhY2N0
PSJkZWJpYW4iIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9
L2Rldi9wdHMvNyByZXM9c3VjY2VzcycKWyAgNzgyLjY1OTEwMF0gYXVkaXQ6IHR5cGU9MTEyMyBh
dWRpdCgxNzAzNzEzMDYzLjIyMzo0MDQpOiBwaWQ9MTAxNzYgdWlkPTEwMDAgYXVpZD0xMDAwIHNl
cz0yIG1zZz0nY3dkPSIvaG9tZS9kZWJpYW4vdGVzdCIgY21kPSJkbWVzZyIgZXhlPSIvdXNyL2Jp
bi9zdWRvIiB0ZXJtaW5hbD1wdHMvNyByZXM9c3VjY2VzcycKWyAgNzgyLjY1OTczNl0gYXVkaXQ6
IHR5cGU9MTExMCBhdWRpdCgxNzAzNzEzMDYzLjIyNDo0MDUpOiBwaWQ9MTAxNzYgdWlkPTEwMDAg
YXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX2VudixwYW1f
dW5peCBhY2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRl
cm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1Y2Nlc3MnClsgIDc4Mi42NjY2NTFdIGF1ZGl0OiB0eXBl
PTExMDUgYXVkaXQoMTcwMzcxMzA2My4yMzE6NDA2KTogcGlkPTEwMTc2IHVpZD0xMDAwIGF1aWQ9
MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXNzaW9uX29wZW4gZ3JhbnRvcnM9cGFtX2tleWluaXQs
cGFtX2xpbWl0cyxwYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9zeXN0ZW1kLHBhbV91bml4IGFj
Y3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9
L2Rldi9wdHMvNyByZXM9c3VjY2VzcycKCiRzdWRvIHhlbnBtIGdldC1jcHVpZGxlLXN0YXRlcwpB
bGwgQy1zdGF0ZXMgYWxsb3dlZAoKY3B1IGlkICAgICAgICAgICAgICAgOiAwCnRvdGFsIEMtc3Rh
dGVzICAgICAgIDogNAppZGxlIHRpbWUobXMpICAgICAgICA6IDcxMTI5MgpDMCAgICAgICAgICAg
ICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAxMzYwMzU3XQogICAgICAgICAgICAg
ICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMjE4MjI5IG1zXQpDMSAgICAgICAg
ICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAxMjgyNjE2XQogICAgICAgICAg
ICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgNTA5MTE0IG1zXQpDMiAgICAg
ICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgIDc2OTU5XQogICAgICAg
ICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMTc5ODQ2IG1zXQpDMyAg
ICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgNzgxXQogICAg
ICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICA5MjI5IG1zXQpw
YzIgICAgICAgICAgICAgICAgICA6IFsgICAgICAgICAgICAgICAgNDQ2NCBtc10KcGMzICAgICAg
ICAgICAgICAgICAgOiBbICAgICAgICAgICAgICAgMTAzOTMgbXNdCmNjNyAgICAgICAgICAgICAg
ICAgIDogWyAgICAgICAgICAgICAgMTQ2NTY3IG1zXQoKY3B1IGlkICAgICAgICAgICAgICAgOiAx
CnRvdGFsIEMtc3RhdGVzICAgICAgIDogNAppZGxlIHRpbWUobXMpICAgICAgICA6IDg1ODg2NApD
MCAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgODY1NTY2XQog
ICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgIDY2MDE4IG1z
XQpDMSAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgNzA3OTMy
XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMzUzMjM1
IG1zXQpDMiAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgMTU1
ODU2XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgNDgz
NjgyIG1zXQpDMyAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAg
ICAxNzc4XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAg
IDEzNDgzIG1zXQpwYzIgICAgICAgICAgICAgICAgICA6IFsgICAgICAgICAgICAgICAgNDQ2NCBt
c10KcGMzICAgICAgICAgICAgICAgICAgOiBbICAgICAgICAgICAgICAgMTAzOTMgbXNdCmNjNyAg
ICAgICAgICAgICAgICAgIDogWyAgICAgICAgICAgICAgMTQ2NTY3IG1zXQoKY3B1IGlkICAgICAg
ICAgICAgICAgOiAyCnRvdGFsIEMtc3RhdGVzICAgICAgIDogNAppZGxlIHRpbWUobXMpICAgICAg
ICA6IDcxODUzNwpDMCAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAg
ICAxNDg3Njc1XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAg
ICAgMjEyMjYyIG1zXQpDMSAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAg
ICAgICAxNDE1MjM1XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAg
ICAgICAgNTY0MTY4IG1zXQpDMiAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAg
ICAgICAgICAgIDcyMjQ4XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAg
ICAgICAgICAgMTM2NDM1IG1zXQpDMyAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAg
ICAgICAgICAgICAgICAgMTkxXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAg
ICAgICAgICAgICAgICAzNTU0IG1zXQpwYzIgICAgICAgICAgICAgICAgICA6IFsgICAgICAgICAg
ICAgICAgNDQ2NCBtc10KcGMzICAgICAgICAgICAgICAgICAgOiBbICAgICAgICAgICAgICAgMTAz
OTMgbXNdCmNjNyAgICAgICAgICAgICAgICAgIDogWyAgICAgICAgICAgICAgMTEwNTc0IG1zXQoK
Y3B1IGlkICAgICAgICAgICAgICAgOiAzCnRvdGFsIEMtc3RhdGVzICAgICAgIDogNAppZGxlIHRp
bWUobXMpICAgICAgICA6IDg1NTUwNgpDMCAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24g
WyAgICAgICAgICAgICAxMDk4MjQxXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAg
WyAgICAgICAgICAgICAgIDY5NTE5IG1zXQpDMSAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRp
b24gWyAgICAgICAgICAgICAgOTQ3Njc1XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5j
eSAgWyAgICAgICAgICAgICAgNDg2MjU3IG1zXQpDMiAgICAgICAgICAgICAgICAgICA6IHRyYW5z
aXRpb24gWyAgICAgICAgICAgICAgMTQ5NDMwXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lk
ZW5jeSAgWyAgICAgICAgICAgICAgMzQ5ODA4IG1zXQpDMyAgICAgICAgICAgICAgICAgICA6IHRy
YW5zaXRpb24gWyAgICAgICAgICAgICAgICAxMTM2XQogICAgICAgICAgICAgICAgICAgICAgIHJl
c2lkZW5jeSAgWyAgICAgICAgICAgICAgIDEwODMzIG1zXQpwYzIgICAgICAgICAgICAgICAgICA6
IFsgICAgICAgICAgICAgICAgNDQ2NCBtc10KcGMzICAgICAgICAgICAgICAgICAgOiBbICAgICAg
ICAgICAgICAgMTAzOTMgbXNdCmNjNyAgICAgICAgICAgICAgICAgIDogWyAgICAgICAgICAgICAg
MTEwNTc0IG1zXQoKY3B1IGlkICAgICAgICAgICAgICAgOiA0CnRvdGFsIEMtc3RhdGVzICAgICAg
IDogNAppZGxlIHRpbWUobXMpICAgICAgICA6IDcxMDgxMQpDMCAgICAgICAgICAgICAgICAgICA6
IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAxNTk2MjQ5XQogICAgICAgICAgICAgICAgICAgICAg
IHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMjIwMzM1IG1zXQpDMSAgICAgICAgICAgICAgICAg
ICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAxNTMyMDI1XQogICAgICAgICAgICAgICAgICAg
ICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgNTY1MDg3IG1zXQpDMiAgICAgICAgICAgICAg
ICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgIDYzODA2XQogICAgICAgICAgICAgICAg
ICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMTI1OTUwIG1zXQpDMyAgICAgICAgICAg
ICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgNDE4XQogICAgICAgICAgICAg
ICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICA1MDQ2IG1zXQpwYzIgICAgICAg
ICAgICAgICAgICA6IFsgICAgICAgICAgICAgICAgNDQ2NCBtc10KcGMzICAgICAgICAgICAgICAg
ICAgOiBbICAgICAgICAgICAgICAgMTAzOTMgbXNdCmNjNyAgICAgICAgICAgICAgICAgIDogWyAg
ICAgICAgICAgICAgIDk5OTkzIG1zXQoKY3B1IGlkICAgICAgICAgICAgICAgOiA1CnRvdGFsIEMt
c3RhdGVzICAgICAgIDogNAppZGxlIHRpbWUobXMpICAgICAgICA6IDg0NjYxNQpDMCAgICAgICAg
ICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAxNDk3ODE2XQogICAgICAgICAg
ICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgIDc4Njc2IG1zXQpDMSAgICAg
ICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAxMzgyMjIyXQogICAgICAg
ICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgNTg0MTk3IG1zXQpDMiAg
ICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgMTEzOTk5XQogICAg
ICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMjM0NTIwIG1zXQpD
MyAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAxNTk0XQog
ICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgIDE5MDI2IG1z
XQpwYzIgICAgICAgICAgICAgICAgICA6IFsgICAgICAgICAgICAgICAgNDQ2NCBtc10KcGMzICAg
ICAgICAgICAgICAgICAgOiBbICAgICAgICAgICAgICAgMTAzOTMgbXNdCmNjNyAgICAgICAgICAg
ICAgICAgIDogWyAgICAgICAgICAgICAgIDk5OTkzIG1zXQoKY3B1IGlkICAgICAgICAgICAgICAg
OiA2CnRvdGFsIEMtc3RhdGVzICAgICAgIDogNAppZGxlIHRpbWUobXMpICAgICAgICA6IDcxMTUw
OQpDMCAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAxODg1NzYx
XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMjE5OTk2
IG1zXQpDMSAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAxODMx
NzE4XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgNTg4
NTg1IG1zXQpDMiAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAg
IDUzNzIwXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAg
MTAzMDIwIG1zXQpDMyAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAg
ICAgICAgMzIzXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAg
ICAgICA0ODE3IG1zXQpwYzIgICAgICAgICAgICAgICAgICA6IFsgICAgICAgICAgICAgICAgNDQ2
NCBtc10KcGMzICAgICAgICAgICAgICAgICAgOiBbICAgICAgICAgICAgICAgMTAzOTMgbXNdCmNj
NyAgICAgICAgICAgICAgICAgIDogWyAgICAgICAgICAgICAgIDg1ODI1IG1zXQoKY3B1IGlkICAg
ICAgICAgICAgICAgOiA3CnRvdGFsIEMtc3RhdGVzICAgICAgIDogNAppZGxlIHRpbWUobXMpICAg
ICAgICA6IDg1MzQ0MgpDMCAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAg
ICAgICAxODI4NTk3XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAg
ICAgICAgIDcyMDk1IG1zXQpDMSAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAg
ICAgICAgICAxNzIwODk1XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAg
ICAgICAgICAgNjEzMzczIG1zXQpDMiAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAg
ICAgICAgICAgICAgMTA2MjQ1XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAg
ICAgICAgICAgICAgMjEzNzkyIG1zXQpDMyAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRpb24g
WyAgICAgICAgICAgICAgICAxNDU3XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAg
WyAgICAgICAgICAgICAgIDE3MTU4IG1zXQpwYzIgICAgICAgICAgICAgICAgICA6IFsgICAgICAg
ICAgICAgICAgNDQ2NCBtc10KcGMzICAgICAgICAgICAgICAgICAgOiBbICAgICAgICAgICAgICAg
MTAzOTMgbXNdCmNjNyAgICAgICAgICAgICAgICAgIDogWyAgICAgICAgICAgICAgIDg1ODI1IG1z
XQoKY3B1IGlkICAgICAgICAgICAgICAgOiA4CnRvdGFsIEMtc3RhdGVzICAgICAgIDogNAppZGxl
IHRpbWUobXMpICAgICAgICA6IDcwNTYzMwpDMCAgICAgICAgICAgICAgICAgICA6IHRyYW5zaXRp
b24gWyAgICAgICAgICAgICAxODkzOTk5XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5j
eSAgWyAgICAgICAgICAgICAgMjI1NzcyIG1zXQpDMSAgICAgICAgICAgICAgICAgICA6IHRyYW5z
aXRpb24gWyAgICAgICAgICAgICAxODM0NjYzXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lk
ZW5jeSAgWyAgICAgICAgICAgICAgNTY5MTM3IG1zXQpDMiAgICAgICAgICAgICAgICAgICA6IHRy
YW5zaXRpb24gWyAgICAgICAgICAgICAgIDU4OTQwXQogICAgICAgICAgICAgICAgICAgICAgIHJl
c2lkZW5jeSAgWyAgICAgICAgICAgICAgMTE2MDMyIG1zXQpDMyAgICAgICAgICAgICAgICAgICA6
IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgMzk2XQogICAgICAgICAgICAgICAgICAgICAg
IHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICA1NDc3IG1zXQpwYzIgICAgICAgICAgICAgICAg
ICA6IFsgICAgICAgICAgICAgICAgNDQ2NCBtc10KcGMzICAgICAgICAgICAgICAgICAgOiBbICAg
ICAgICAgICAgICAgMTAzOTMgbXNdCmNjNyAgICAgICAgICAgICAgICAgIDogWyAgICAgICAgICAg
ICAgIDk4NjE4IG1zXQoKY3B1IGlkICAgICAgICAgICAgICAgOiA5CnRvdGFsIEMtc3RhdGVzICAg
ICAgIDogNAppZGxlIHRpbWUobXMpICAgICAgICA6IDg1NTk5MApDMCAgICAgICAgICAgICAgICAg
ICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgMzcyNjAxXQogICAgICAgICAgICAgICAgICAg
ICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgIDY4MjE5IG1zXQpDMSAgICAgICAgICAgICAg
ICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgMzAyMzAwXQogICAgICAgICAgICAgICAg
ICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMTg4NzM4IG1zXQpDMiAgICAgICAgICAg
ICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgIDU2NDMwXQogICAgICAgICAgICAg
ICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMzgxMTkwIG1zXQpDMyAgICAgICAg
ICAgICAgICAgICA6IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgIDEzODcxXQogICAgICAgICAg
ICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMjc4MjcxIG1zXQpwYzIgICAg
ICAgICAgICAgICAgICA6IFsgICAgICAgICAgICAgICAgNDQ2NCBtc10KcGMzICAgICAgICAgICAg
ICAgICAgOiBbICAgICAgICAgICAgICAgMTAzOTMgbXNdCmNjNyAgICAgICAgICAgICAgICAgIDog
WyAgICAgICAgICAgICAgIDk4NjE4IG1zXQoKY3B1IGlkICAgICAgICAgICAgICAgOiAxMAp0b3Rh
bCBDLXN0YXRlcyAgICAgICA6IDQKaWRsZSB0aW1lKG1zKSAgICAgICAgOiA3MDUyNDkKQzAgICAg
ICAgICAgICAgICAgICAgOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgMTE1NjQzOV0KICAgICAg
ICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgIDIyNTQzNiBtc10KQzEg
ICAgICAgICAgICAgICAgICAgOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgMTA3NDYxNV0KICAg
ICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgIDQ3MTEzOCBtc10K
QzIgICAgICAgICAgICAgICAgICAgOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICA4MDM1NF0K
ICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgIDIwMTAyMyBt
c10KQzMgICAgICAgICAgICAgICAgICAgOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgMTQ3
MF0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAxODgy
MiBtc10KcGMyICAgICAgICAgICAgICAgICAgOiBbICAgICAgICAgICAgICAgIDQ0NjQgbXNdCnBj
MyAgICAgICAgICAgICAgICAgIDogWyAgICAgICAgICAgICAgIDEwMzkzIG1zXQpjYzcgICAgICAg
ICAgICAgICAgICA6IFsgICAgICAgICAgICAgIDE2NzU2NiBtc10KCmNwdSBpZCAgICAgICAgICAg
ICAgIDogMTEKdG90YWwgQy1zdGF0ZXMgICAgICAgOiA0CmlkbGUgdGltZShtcykgICAgICAgIDog
ODQ4MjAzCkMwICAgICAgICAgICAgICAgICAgIDogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICA1
OTE0NDNdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAg
NzYzNzIgbXNdCkMxICAgICAgICAgICAgICAgICAgIDogdHJhbnNpdGlvbiBbICAgICAgICAgICAg
ICA0ODQzNTddCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAg
ICAyMjYwMTkgbXNdCkMyICAgICAgICAgICAgICAgICAgIDogdHJhbnNpdGlvbiBbICAgICAgICAg
ICAgICAgOTYwNjZdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAg
ICAgICA0NDMyNzkgbXNdCkMzICAgICAgICAgICAgICAgICAgIDogdHJhbnNpdGlvbiBbICAgICAg
ICAgICAgICAgMTEwMTldCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAg
ICAgICAgICAxNzA3NDkgbXNdCnBjMiAgICAgICAgICAgICAgICAgIDogWyAgICAgICAgICAgICAg
ICA0NDY0IG1zXQpwYzMgICAgICAgICAgICAgICAgICA6IFsgICAgICAgICAgICAgICAxMDM5MyBt
c10KY2M3ICAgICAgICAgICAgICAgICAgOiBbICAgICAgICAgICAgICAxNjc1NjYgbXNdCgokc3Vk
byB4ZW5wbSBnZXQtY3B1ZnJlcS1zdGF0ZXMKY3B1IGlkICAgICAgICAgICAgICAgOiAwCnRvdGFs
IFAtc3RhdGVzICAgICAgIDogMTYKdXNhYmxlIFAtc3RhdGVzICAgICAgOiAxNQpjdXJyZW50IGZy
ZXF1ZW5jeSAgICA6IDgwMCBNSHoKUDAgICAgICAgICBbMjYwMSBNSHpdOiB0cmFuc2l0aW9uIFsg
ICAgICAgICAgICAgICAgICAgMF0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsg
ICAgICAgICAgICAgICAgICAgMCBtc10KUDEgICAgICAgICBbMjYwMCBNSHpdOiB0cmFuc2l0aW9u
IFsgICAgICAgICAgICAgICAgIDM1Nl0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kg
IFsgICAgICAgICAgICAgICAxMTIzMCBtc10KUDIgICAgICAgICBbMjUwMCBNSHpdOiB0cmFuc2l0
aW9uIFsgICAgICAgICAgICAgICAgICAxNF0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVu
Y3kgIFsgICAgICAgICAgICAgICAgIDExNSBtc10KUDMgICAgICAgICBbMjMwMCBNSHpdOiB0cmFu
c2l0aW9uIFsgICAgICAgICAgICAgICAgICAxMF0KICAgICAgICAgICAgICAgICAgICAgICByZXNp
ZGVuY3kgIFsgICAgICAgICAgICAgICAgIDEwNiBtc10KUDQgICAgICAgICBbMjIwMCBNSHpdOiB0
cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgNl0KICAgICAgICAgICAgICAgICAgICAgICBy
ZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA0MSBtc10KUDUgICAgICAgICBbMjEwMCBNSHpd
OiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgN10KICAgICAgICAgICAgICAgICAgICAg
ICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA0MSBtc10KUDYgICAgICAgICBbMjAwMCBN
SHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAxNV0KICAgICAgICAgICAgICAgICAg
ICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA5MiBtc10KUDcgICAgICAgICBbMTgw
MCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAxMF0KICAgICAgICAgICAgICAg
ICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA0NSBtc10KUDggICAgICAgICBb
MTcwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAxNV0KICAgICAgICAgICAg
ICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA1MCBtc10KUDkgICAgICAg
ICBbMTYwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAzNF0KICAgICAgICAg
ICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgIDE4MiBtc10KUDEwICAg
ICAgICBbMTQwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAxNl0KICAgICAg
ICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgIDEzMiBtc10KUDEx
ICAgICAgICBbMTMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAyMV0KICAg
ICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgIDExNiBtc10K
UDEyICAgICAgICBbMTIwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAyMF0K
ICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgIDEwMCBt
c10KUDEzICAgICAgICBbMTEwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICA0
Ml0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgIDIw
NSBtc10KUDE0ICAgICAgICBbIDkwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAg
ICAzMl0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAg
IDE0OCBtc10KKlAxNSAgICAgICBbIDgwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAg
ICAgIDI3MV0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAg
IDIwMDY3NCBtc10KCmNwdSBpZCAgICAgICAgICAgICAgIDogMQp0b3RhbCBQLXN0YXRlcyAgICAg
ICA6IDE2CnVzYWJsZSBQLXN0YXRlcyAgICAgIDogMTUKY3VycmVudCBmcmVxdWVuY3kgICAgOiA4
MDAgTUh6ClAwICAgICAgICAgWzI2MDEgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAg
ICAgIDBdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAg
ICAgIDAgbXNdClAxICAgICAgICAgWzI2MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAg
ICAgICAxNTFdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAg
ICAgIDQyOTIgbXNdClAyICAgICAgICAgWzI1MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAg
ICAgICAgICAgIDVdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAg
ICAgICAgICAgNDEgbXNdClAzICAgICAgICAgWzIzMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAg
ICAgICAgICAgICAgIDNdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAg
ICAgICAgICAgICAgMTMgbXNdClA0ICAgICAgICAgWzIyMDAgTUh6XTogdHJhbnNpdGlvbiBbICAg
ICAgICAgICAgICAgICAgIDFdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAg
ICAgICAgICAgICAgICAgMTEgbXNdClA1ICAgICAgICAgWzIxMDAgTUh6XTogdHJhbnNpdGlvbiBb
ICAgICAgICAgICAgICAgICAgIDFdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBb
ICAgICAgICAgICAgICAgICAgIDIgbXNdClA2ICAgICAgICAgWzIwMDAgTUh6XTogdHJhbnNpdGlv
biBbICAgICAgICAgICAgICAgICAgIDhdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5
ICBbICAgICAgICAgICAgICAgICAgNzAgbXNdClA3ICAgICAgICAgWzE4MDAgTUh6XTogdHJhbnNp
dGlvbiBbICAgICAgICAgICAgICAgICAgIDZdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRl
bmN5ICBbICAgICAgICAgICAgICAgICAgMjQgbXNdClA4ICAgICAgICAgWzE3MDAgTUh6XTogdHJh
bnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDhdCiAgICAgICAgICAgICAgICAgICAgICAgcmVz
aWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMjUgbXNdClA5ICAgICAgICAgWzE2MDAgTUh6XTog
dHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDZdCiAgICAgICAgICAgICAgICAgICAgICAg
cmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgNDUgbXNdClAxMCAgICAgICAgWzE0MDAgTUh6
XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDhdCiAgICAgICAgICAgICAgICAgICAg
ICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgNDMgbXNdClAxMSAgICAgICAgWzEzMDAg
TUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDVdCiAgICAgICAgICAgICAgICAg
ICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMzAgbXNdClAxMiAgICAgICAgWzEy
MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDddCiAgICAgICAgICAgICAg
ICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMzggbXNdClAxMyAgICAgICAg
WzExMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDhdCiAgICAgICAgICAg
ICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMzYgbXNdClAxNCAgICAg
ICAgWyA5MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDddCiAgICAgICAg
ICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgIDggbXNdCipQMTUg
ICAgICAgWyA4MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAxMjddCiAgICAg
ICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgNTU1NDkgbXNdCgpj
cHUgaWQgICAgICAgICAgICAgICA6IDIKdG90YWwgUC1zdGF0ZXMgICAgICAgOiAxNgp1c2FibGUg
UC1zdGF0ZXMgICAgICA6IDE1CmN1cnJlbnQgZnJlcXVlbmN5ICAgIDogODAwIE1IegpQMCAgICAg
ICAgIFsyNjAxIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICAwXQogICAgICAg
ICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgICAwIG1zXQpQMSAg
ICAgICAgIFsyNjAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgMzcwXQogICAg
ICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgIDEwNTI4IG1zXQpQ
MiAgICAgICAgIFsyNTAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDIxXQog
ICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTUxIG1z
XQpQMyAgICAgICAgIFsyMzAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICA5
XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTM3
IG1zXQpQNCAgICAgICAgIFsyMjAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAg
IDEyXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAg
IDkxIG1zXQpQNSAgICAgICAgIFsyMTAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAg
ICAgIDEyXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAg
ICAgIDczIG1zXQpQNiAgICAgICAgIFsyMDAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAg
ICAgICAgIDIwXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAg
ICAgICAgMTU4IG1zXQpQNyAgICAgICAgIFsxODAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAg
ICAgICAgICAgIDE4XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAg
ICAgICAgICAgMTM0IG1zXQpQOCAgICAgICAgIFsxNzAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAg
ICAgICAgICAgICAgIDEwXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAg
ICAgICAgICAgICAgIDU5IG1zXQpQOSAgICAgICAgIFsxNjAwIE1Iel06IHRyYW5zaXRpb24gWyAg
ICAgICAgICAgICAgICAgIDQ0XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAg
ICAgICAgICAgICAgICAgMjUwIG1zXQpQMTAgICAgICAgIFsxNDAwIE1Iel06IHRyYW5zaXRpb24g
WyAgICAgICAgICAgICAgICAgIDE4XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAg
WyAgICAgICAgICAgICAgICAgMTQ0IG1zXQpQMTEgICAgICAgIFsxMzAwIE1Iel06IHRyYW5zaXRp
b24gWyAgICAgICAgICAgICAgICAgIDEyXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5j
eSAgWyAgICAgICAgICAgICAgICAgIDc0IG1zXQpQMTIgICAgICAgIFsxMjAwIE1Iel06IHRyYW5z
aXRpb24gWyAgICAgICAgICAgICAgICAgIDIwXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lk
ZW5jeSAgWyAgICAgICAgICAgICAgICAgMTA0IG1zXQpQMTMgICAgICAgIFsxMTAwIE1Iel06IHRy
YW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDM1XQogICAgICAgICAgICAgICAgICAgICAgIHJl
c2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTkzIG1zXQpQMTQgICAgICAgIFsgOTAwIE1Iel06
IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDM1XQogICAgICAgICAgICAgICAgICAgICAg
IHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTQ3IG1zXQoqUDE1ICAgICAgIFsgODAwIE1I
el06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgMjY4XQogICAgICAgICAgICAgICAgICAg
ICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMTk0NDQ1IG1zXQoKY3B1IGlkICAgICAgICAg
ICAgICAgOiAzCnRvdGFsIFAtc3RhdGVzICAgICAgIDogMTYKdXNhYmxlIFAtc3RhdGVzICAgICAg
OiAxNQpjdXJyZW50IGZyZXF1ZW5jeSAgICA6IDgwMCBNSHoKUDAgICAgICAgICBbMjYwMSBNSHpd
OiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgMF0KICAgICAgICAgICAgICAgICAgICAg
ICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAgMCBtc10KUDEgICAgICAgICBbMjYwMCBN
SHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgIDE1M10KICAgICAgICAgICAgICAgICAg
ICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgMzA4OCBtc10KUDIgICAgICAgICBbMjUw
MCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgNl0KICAgICAgICAgICAgICAg
ICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA3OSBtc10KUDMgICAgICAgICBb
MjMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgMl0KICAgICAgICAgICAg
ICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAgMyBtc10KUDQgICAgICAg
ICBbMjIwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgMl0KICAgICAgICAg
ICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAgMyBtc10KUDUgICAg
ICAgICBbMjEwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgNF0KICAgICAg
ICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAgNCBtc10KUDYg
ICAgICAgICBbMjAwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAxMF0KICAg
ICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA3NyBtc10K
UDcgICAgICAgICBbMTgwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgN10K
ICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAyNSBt
c10KUDggICAgICAgICBbMTcwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAg
NV0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAy
NSBtc10KUDkgICAgICAgICBbMTYwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAg
ICAgN10KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAg
ICAzNiBtc10KUDEwICAgICAgICBbMTQwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAg
ICAgICAgN10KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAg
ICAgICAxMiBtc10KUDExICAgICAgICBbMTMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAg
ICAgICAgICAgN10KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAg
ICAgICAgICA2MSBtc10KUDEyICAgICAgICBbMTIwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAg
ICAgICAgICAgICAgM10KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAg
ICAgICAgICAgICAxNSBtc10KUDEzICAgICAgICBbMTEwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAg
ICAgICAgICAgICAgICAxM10KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAg
ICAgICAgICAgICAgICAzNyBtc10KUDE0ICAgICAgICBbIDkwMCBNSHpdOiB0cmFuc2l0aW9uIFsg
ICAgICAgICAgICAgICAgICAgOF0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsg
ICAgICAgICAgICAgICAgICAyOSBtc10KKlAxNSAgICAgICBbIDgwMCBNSHpdOiB0cmFuc2l0aW9u
IFsgICAgICAgICAgICAgICAgIDEyNF0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kg
IFsgICAgICAgICAgICAgICA1OTg3MSBtc10KCmNwdSBpZCAgICAgICAgICAgICAgIDogNAp0b3Rh
bCBQLXN0YXRlcyAgICAgICA6IDE2CnVzYWJsZSBQLXN0YXRlcyAgICAgIDogMTUKY3VycmVudCBm
cmVxdWVuY3kgICAgOiA4MDAgTUh6ClAwICAgICAgICAgWzI2MDEgTUh6XTogdHJhbnNpdGlvbiBb
ICAgICAgICAgICAgICAgICAgIDBdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBb
ICAgICAgICAgICAgICAgICAgIDAgbXNdClAxICAgICAgICAgWzI2MDAgTUh6XTogdHJhbnNpdGlv
biBbICAgICAgICAgICAgICAgICAzNzZdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5
ICBbICAgICAgICAgICAgICAgMTE4OTQgbXNdClAyICAgICAgICAgWzI1MDAgTUh6XTogdHJhbnNp
dGlvbiBbICAgICAgICAgICAgICAgICAgMTddCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRl
bmN5ICBbICAgICAgICAgICAgICAgICAxODUgbXNdClAzICAgICAgICAgWzIzMDAgTUh6XTogdHJh
bnNpdGlvbiBbICAgICAgICAgICAgICAgICAgMTJdCiAgICAgICAgICAgICAgICAgICAgICAgcmVz
aWRlbmN5ICBbICAgICAgICAgICAgICAgICAxMjAgbXNdClA0ICAgICAgICAgWzIyMDAgTUh6XTog
dHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgMTRdCiAgICAgICAgICAgICAgICAgICAgICAg
cmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgNzUgbXNdClA1ICAgICAgICAgWzIxMDAgTUh6
XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgMTVdCiAgICAgICAgICAgICAgICAgICAg
ICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAxMzUgbXNdClA2ICAgICAgICAgWzIwMDAg
TUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgMjVdCiAgICAgICAgICAgICAgICAg
ICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAxNTYgbXNdClA3ICAgICAgICAgWzE4
MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgMTJdCiAgICAgICAgICAgICAg
ICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgOTUgbXNdClA4ICAgICAgICAg
WzE3MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgMTNdCiAgICAgICAgICAg
ICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgODEgbXNdClA5ICAgICAg
ICAgWzE2MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgNDJdCiAgICAgICAg
ICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAzMDQgbXNdClAxMCAg
ICAgICAgWzE0MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgMTddCiAgICAg
ICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAxMTUgbXNdClAx
MSAgICAgICAgWzEzMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgMTddCiAg
ICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgOTcgbXNd
ClAxMiAgICAgICAgWzEyMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgMjVd
CiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAxNDYg
bXNdClAxMyAgICAgICAgWzExMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAg
NTNdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAy
ODQgbXNdClAxNCAgICAgICAgWyA5MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAg
ICAgMjZdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAg
ICAxMzAgbXNdCipQMTUgICAgICAgWyA4MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAg
ICAgICAyNzZdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAg
ICAyMDE0MTMgbXNdCgpjcHUgaWQgICAgICAgICAgICAgICA6IDUKdG90YWwgUC1zdGF0ZXMgICAg
ICAgOiAxNgp1c2FibGUgUC1zdGF0ZXMgICAgICA6IDE1CmN1cnJlbnQgZnJlcXVlbmN5ICAgIDog
ODAwIE1IegpQMCAgICAgICAgIFsyNjAxIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAg
ICAgICAwXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAg
ICAgICAwIG1zXQpQMSAgICAgICAgIFsyNjAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAg
ICAgICAgMTM3XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAg
ICAgICAyOTU2IG1zXQpQMiAgICAgICAgIFsyNTAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAg
ICAgICAgICAgICA2XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAg
ICAgICAgICAgIDM2IG1zXQpQMyAgICAgICAgIFsyMzAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAg
ICAgICAgICAgICAgICAzXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAg
ICAgICAgICAgICAgICA2IG1zXQpQNCAgICAgICAgIFsyMjAwIE1Iel06IHRyYW5zaXRpb24gWyAg
ICAgICAgICAgICAgICAgICAyXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAg
ICAgICAgICAgICAgICAgICA3IG1zXQpQNSAgICAgICAgIFsyMTAwIE1Iel06IHRyYW5zaXRpb24g
WyAgICAgICAgICAgICAgICAgICA1XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAg
WyAgICAgICAgICAgICAgICAgIDI1IG1zXQpQNiAgICAgICAgIFsyMDAwIE1Iel06IHRyYW5zaXRp
b24gWyAgICAgICAgICAgICAgICAgICA1XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5j
eSAgWyAgICAgICAgICAgICAgICAgIDM5IG1zXQpQNyAgICAgICAgIFsxODAwIE1Iel06IHRyYW5z
aXRpb24gWyAgICAgICAgICAgICAgICAgICAyXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lk
ZW5jeSAgWyAgICAgICAgICAgICAgICAgIDM3IG1zXQpQOCAgICAgICAgIFsxNzAwIE1Iel06IHRy
YW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICA2XQogICAgICAgICAgICAgICAgICAgICAgIHJl
c2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDQwIG1zXQpQOSAgICAgICAgIFsxNjAwIE1Iel06
IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICA0XQogICAgICAgICAgICAgICAgICAgICAg
IHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDExIG1zXQpQMTAgICAgICAgIFsxNDAwIE1I
el06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICAzXQogICAgICAgICAgICAgICAgICAg
ICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDI4IG1zXQpQMTEgICAgICAgIFsxMzAw
IE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICAzXQogICAgICAgICAgICAgICAg
ICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDE1IG1zXQpQMTIgICAgICAgIFsx
MjAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICA4XQogICAgICAgICAgICAg
ICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDIwIG1zXQpQMTMgICAgICAg
IFsxMTAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDEyXQogICAgICAgICAg
ICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDQ3IG1zXQpQMTQgICAg
ICAgIFsgOTAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICA3XQogICAgICAg
ICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDM0IG1zXQoqUDE1
ICAgICAgIFsgODAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgMTE1XQogICAg
ICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgIDY5NDY0IG1zXQoK
Y3B1IGlkICAgICAgICAgICAgICAgOiA2CnRvdGFsIFAtc3RhdGVzICAgICAgIDogMTYKdXNhYmxl
IFAtc3RhdGVzICAgICAgOiAxNQpjdXJyZW50IGZyZXF1ZW5jeSAgICA6IDgwMCBNSHoKUDAgICAg
ICAgICBbMjYwMSBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgMF0KICAgICAg
ICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAgMCBtc10KUDEg
ICAgICAgICBbMjYwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgIDM3Nl0KICAg
ICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAxMjMzNSBtc10K
UDIgICAgICAgICBbMjUwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAxN10K
ICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgIDE3NiBt
c10KUDMgICAgICAgICBbMjMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAg
N10KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA1
MSBtc10KUDQgICAgICAgICBbMjIwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAg
ICAgNl0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAg
ICAzNSBtc10KUDUgICAgICAgICBbMjEwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAg
ICAgICAxNl0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAg
ICAgICA4NiBtc10KUDYgICAgICAgICBbMjAwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAg
ICAgICAgICAyMl0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAg
ICAgICAgIDE1NyBtc10KUDcgICAgICAgICBbMTgwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAg
ICAgICAgICAgICAxNl0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAg
ICAgICAgICAgICA4NCBtc10KUDggICAgICAgICBbMTcwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAg
ICAgICAgICAgICAgICAxM10KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAg
ICAgICAgICAgICAgICA4NCBtc10KUDkgICAgICAgICBbMTYwMCBNSHpdOiB0cmFuc2l0aW9uIFsg
ICAgICAgICAgICAgICAgICAyNF0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsg
ICAgICAgICAgICAgICAgIDE2OSBtc10KUDEwICAgICAgICBbMTQwMCBNSHpdOiB0cmFuc2l0aW9u
IFsgICAgICAgICAgICAgICAgICAxOV0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kg
IFsgICAgICAgICAgICAgICAgICA4NiBtc10KUDExICAgICAgICBbMTMwMCBNSHpdOiB0cmFuc2l0
aW9uIFsgICAgICAgICAgICAgICAgICAxM10KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVu
Y3kgIFsgICAgICAgICAgICAgICAgICA4MiBtc10KUDEyICAgICAgICBbMTIwMCBNSHpdOiB0cmFu
c2l0aW9uIFsgICAgICAgICAgICAgICAgICAyNl0KICAgICAgICAgICAgICAgICAgICAgICByZXNp
ZGVuY3kgIFsgICAgICAgICAgICAgICAgIDEwMCBtc10KUDEzICAgICAgICBbMTEwMCBNSHpdOiB0
cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICA1Ml0KICAgICAgICAgICAgICAgICAgICAgICBy
ZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgIDI0MSBtc10KUDE0ICAgICAgICBbIDkwMCBNSHpd
OiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAzNF0KICAgICAgICAgICAgICAgICAgICAg
ICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgIDE2MiBtc10KKlAxNSAgICAgICBbIDgwMCBN
SHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgIDI4Nl0KICAgICAgICAgICAgICAgICAg
ICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgIDE5OTgyOCBtc10KCmNwdSBpZCAgICAgICAg
ICAgICAgIDogNwp0b3RhbCBQLXN0YXRlcyAgICAgICA6IDE2CnVzYWJsZSBQLXN0YXRlcyAgICAg
IDogMTUKY3VycmVudCBmcmVxdWVuY3kgICAgOiA4MDAgTUh6ClAwICAgICAgICAgWzI2MDEgTUh6
XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDBdCiAgICAgICAgICAgICAgICAgICAg
ICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgIDAgbXNdClAxICAgICAgICAgWzI2MDAg
TUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAxMzFdCiAgICAgICAgICAgICAgICAg
ICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgIDQ4NDIgbXNdClAyICAgICAgICAgWzI1
MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDRdCiAgICAgICAgICAgICAg
ICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMjQgbXNdClAzICAgICAgICAg
WzIzMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDNdCiAgICAgICAgICAg
ICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMTYgbXNdClA0ICAgICAg
ICAgWzIyMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDFdCiAgICAgICAg
ICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMTMgbXNdClA1ICAg
ICAgICAgWzIxMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDJdCiAgICAg
ICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgIDUgbXNdClA2
ICAgICAgICAgWzIwMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDRdCiAg
ICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMjYgbXNd
ClA3ICAgICAgICAgWzE4MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDRd
CiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMzcg
bXNdClA4ICAgICAgICAgWzE3MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAg
IDZdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAg
MzYgbXNdClA5ICAgICAgICAgWzE2MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAg
ICAgIDldCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAg
ICAgMzQgbXNdClAxMCAgICAgICAgWzE0MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAg
ICAgICAgIDRdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAg
ICAgICAgMjMgbXNdClAxMSAgICAgICAgWzEzMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAg
ICAgICAgICAgIDNdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAg
ICAgICAgICAgIDkgbXNdClAxMiAgICAgICAgWzEyMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAg
ICAgICAgICAgICAgIDddCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAg
ICAgICAgICAgICAgNTYgbXNdClAxMyAgICAgICAgWzExMDAgTUh6XTogdHJhbnNpdGlvbiBbICAg
ICAgICAgICAgICAgICAgIDddCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAg
ICAgICAgICAgICAgICAgNTggbXNdClAxNCAgICAgICAgWyA5MDAgTUh6XTogdHJhbnNpdGlvbiBb
ICAgICAgICAgICAgICAgICAgMTBdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBb
ICAgICAgICAgICAgICAgICAgMzkgbXNdCipQMTUgICAgICAgWyA4MDAgTUh6XTogdHJhbnNpdGlv
biBbICAgICAgICAgICAgICAgICAxMDJdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5
ICBbICAgICAgICAgICAgICAgNjA0NzYgbXNdCgpjcHUgaWQgICAgICAgICAgICAgICA6IDgKdG90
YWwgUC1zdGF0ZXMgICAgICAgOiAxNgp1c2FibGUgUC1zdGF0ZXMgICAgICA6IDE1CmN1cnJlbnQg
ZnJlcXVlbmN5ICAgIDogODAwIE1IegpQMCAgICAgICAgIFsyNjAxIE1Iel06IHRyYW5zaXRpb24g
WyAgICAgICAgICAgICAgICAgICAwXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAg
WyAgICAgICAgICAgICAgICAgICAwIG1zXQpQMSAgICAgICAgIFsyNjAwIE1Iel06IHRyYW5zaXRp
b24gWyAgICAgICAgICAgICAgICAgMzgyXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5j
eSAgWyAgICAgICAgICAgICAgIDEwOTc5IG1zXQpQMiAgICAgICAgIFsyNTAwIE1Iel06IHRyYW5z
aXRpb24gWyAgICAgICAgICAgICAgICAgIDE5XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lk
ZW5jeSAgWyAgICAgICAgICAgICAgICAgMTU2IG1zXQpQMyAgICAgICAgIFsyMzAwIE1Iel06IHRy
YW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICA2XQogICAgICAgICAgICAgICAgICAgICAgIHJl
c2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDUzIG1zXQpQNCAgICAgICAgIFsyMjAwIE1Iel06
IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDEzXQogICAgICAgICAgICAgICAgICAgICAg
IHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDk2IG1zXQpQNSAgICAgICAgIFsyMTAwIE1I
el06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDEzXQogICAgICAgICAgICAgICAgICAg
ICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTIwIG1zXQpQNiAgICAgICAgIFsyMDAw
IE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDI5XQogICAgICAgICAgICAgICAg
ICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMjY0IG1zXQpQNyAgICAgICAgIFsx
ODAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDEzXQogICAgICAgICAgICAg
ICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTA4IG1zXQpQOCAgICAgICAg
IFsxNzAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDE5XQogICAgICAgICAg
ICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDg4IG1zXQpQOSAgICAg
ICAgIFsxNjAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDI3XQogICAgICAg
ICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTYxIG1zXQpQMTAg
ICAgICAgIFsxNDAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDE2XQogICAg
ICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgIDk3IG1zXQpQ
MTEgICAgICAgIFsxMzAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDE5XQog
ICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTAxIG1z
XQpQMTIgICAgICAgIFsxMjAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDMx
XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTkw
IG1zXQpQMTMgICAgICAgIFsxMTAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAg
IDM0XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAg
MTQ2IG1zXQpQMTQgICAgICAgIFsgOTAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAg
ICAgIDI1XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAg
ICAgMTE2IG1zXQoqUDE1ICAgICAgIFsgODAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAg
ICAgICAgMjc2XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAg
ICAgMjA4MTk5IG1zXQoKY3B1IGlkICAgICAgICAgICAgICAgOiA5CnRvdGFsIFAtc3RhdGVzICAg
ICAgIDogMTYKdXNhYmxlIFAtc3RhdGVzICAgICAgOiAxNQpjdXJyZW50IGZyZXF1ZW5jeSAgICA6
IDgwMCBNSHoKUDAgICAgICAgICBbMjYwMSBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAg
ICAgICAgMF0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAg
ICAgICAgMCBtc10KUDEgICAgICAgICBbMjYwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAg
ICAgICAgIDE0MV0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAg
ICAgICAgMzM1NiBtc10KUDIgICAgICAgICBbMjUwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAg
ICAgICAgICAgICAgNl0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAg
ICAgICAgICAgICAzMiBtc10KUDMgICAgICAgICBbMjMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAg
ICAgICAgICAgICAgICAgM10KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAg
ICAgICAgICAgICAgICAgNiBtc10KUDQgICAgICAgICBbMjIwMCBNSHpdOiB0cmFuc2l0aW9uIFsg
ICAgICAgICAgICAgICAgICAgNF0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsg
ICAgICAgICAgICAgICAgICAxNCBtc10KUDUgICAgICAgICBbMjEwMCBNSHpdOiB0cmFuc2l0aW9u
IFsgICAgICAgICAgICAgICAgICAgMl0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kg
IFsgICAgICAgICAgICAgICAgICAxMSBtc10KUDYgICAgICAgICBbMjAwMCBNSHpdOiB0cmFuc2l0
aW9uIFsgICAgICAgICAgICAgICAgICAgNF0KICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVu
Y3kgIFsgICAgICAgICAgICAgICAgICA0MyBtc10KUDcgICAgICAgICBbMTgwMCBNSHpdOiB0cmFu
c2l0aW9uIFsgICAgICAgICAgICAgICAgICAxMV0KICAgICAgICAgICAgICAgICAgICAgICByZXNp
ZGVuY3kgIFsgICAgICAgICAgICAgICAgICA3MSBtc10KUDggICAgICAgICBbMTcwMCBNSHpdOiB0
cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgNF0KICAgICAgICAgICAgICAgICAgICAgICBy
ZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAgNSBtc10KUDkgICAgICAgICBbMTYwMCBNSHpd
OiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgNV0KICAgICAgICAgICAgICAgICAgICAg
ICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA0NSBtc10KUDEwICAgICAgICBbMTQwMCBN
SHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgNl0KICAgICAgICAgICAgICAgICAg
ICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAyMCBtc10KUDExICAgICAgICBbMTMw
MCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgM10KICAgICAgICAgICAgICAg
ICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAxMCBtc10KUDEyICAgICAgICBb
MTIwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgNF0KICAgICAgICAgICAg
ICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAzOCBtc10KUDEzICAgICAg
ICBbMTEwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAxMF0KICAgICAgICAg
ICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICA2NiBtc10KUDE0ICAg
ICAgICBbIDkwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgICAgOV0KICAgICAg
ICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICAgICAyMiBtc10KKlAx
NSAgICAgICBbIDgwMCBNSHpdOiB0cmFuc2l0aW9uIFsgICAgICAgICAgICAgICAgIDExNl0KICAg
ICAgICAgICAgICAgICAgICAgICByZXNpZGVuY3kgIFsgICAgICAgICAgICAgICA1OTc0MCBtc10K
CmNwdSBpZCAgICAgICAgICAgICAgIDogMTAKdG90YWwgUC1zdGF0ZXMgICAgICAgOiAxNgp1c2Fi
bGUgUC1zdGF0ZXMgICAgICA6IDE1CmN1cnJlbnQgZnJlcXVlbmN5ICAgIDogODAwIE1IegpQMCAg
ICAgICAgIFsyNjAxIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgICAwXQogICAg
ICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgICAwIG1zXQpQ
MSAgICAgICAgIFsyNjAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgMzY1XQog
ICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgIDEzMjYyIG1z
XQpQMiAgICAgICAgIFsyNTAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDI0
XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTkz
IG1zXQpQMyAgICAgICAgIFsyMzAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAg
IDEzXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAg
MTAzIG1zXQpQNCAgICAgICAgIFsyMjAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAg
ICAgIDExXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAg
ICAgIDUwIG1zXQpQNSAgICAgICAgIFsyMTAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAg
ICAgICAgIDEyXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAg
ICAgICAgIDg1IG1zXQpQNiAgICAgICAgIFsyMDAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAg
ICAgICAgICAgIDMwXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAg
ICAgICAgICAgMjIyIG1zXQpQNyAgICAgICAgIFsxODAwIE1Iel06IHRyYW5zaXRpb24gWyAgICAg
ICAgICAgICAgICAgICA5XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAgICAg
ICAgICAgICAgICAgIDcxIG1zXQpQOCAgICAgICAgIFsxNzAwIE1Iel06IHRyYW5zaXRpb24gWyAg
ICAgICAgICAgICAgICAgIDEwXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAgWyAg
ICAgICAgICAgICAgICAgIDUyIG1zXQpQOSAgICAgICAgIFsxNjAwIE1Iel06IHRyYW5zaXRpb24g
WyAgICAgICAgICAgICAgICAgIDI1XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jeSAg
WyAgICAgICAgICAgICAgICAgMTM0IG1zXQpQMTAgICAgICAgIFsxNDAwIE1Iel06IHRyYW5zaXRp
b24gWyAgICAgICAgICAgICAgICAgIDExXQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5j
eSAgWyAgICAgICAgICAgICAgICAgIDczIG1zXQpQMTEgICAgICAgIFsxMzAwIE1Iel06IHRyYW5z
aXRpb24gWyAgICAgICAgICAgICAgICAgIDE0XQogICAgICAgICAgICAgICAgICAgICAgIHJlc2lk
ZW5jeSAgWyAgICAgICAgICAgICAgICAgIDcwIG1zXQpQMTIgICAgICAgIFsxMjAwIE1Iel06IHRy
YW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDI1XQogICAgICAgICAgICAgICAgICAgICAgIHJl
c2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTIzIG1zXQpQMTMgICAgICAgIFsxMTAwIE1Iel06
IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDM4XQogICAgICAgICAgICAgICAgICAgICAg
IHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTYwIG1zXQpQMTQgICAgICAgIFsgOTAwIE1I
el06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgIDMxXQogICAgICAgICAgICAgICAgICAg
ICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgICAgMTI3IG1zXQoqUDE1ICAgICAgIFsgODAw
IE1Iel06IHRyYW5zaXRpb24gWyAgICAgICAgICAgICAgICAgMjgwXQogICAgICAgICAgICAgICAg
ICAgICAgIHJlc2lkZW5jeSAgWyAgICAgICAgICAgICAgMjA1MzMxIG1zXQoKY3B1IGlkICAgICAg
ICAgICAgICAgOiAxMQp0b3RhbCBQLXN0YXRlcyAgICAgICA6IDE2CnVzYWJsZSBQLXN0YXRlcyAg
ICAgIDogMTUKY3VycmVudCBmcmVxdWVuY3kgICAgOiA4MDAgTUh6ClAwICAgICAgICAgWzI2MDEg
TUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDBdCiAgICAgICAgICAgICAgICAg
ICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgIDAgbXNdClAxICAgICAgICAgWzI2
MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAxMzZdCiAgICAgICAgICAgICAg
ICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgIDUyODMgbXNdClAyICAgICAgICAg
WzI1MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDZdCiAgICAgICAgICAg
ICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgNDEgbXNdClAzICAgICAg
ICAgWzIzMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDVdCiAgICAgICAg
ICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgIDggbXNdClA0ICAg
ICAgICAgWzIyMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDNdCiAgICAg
ICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMzEgbXNdClA1
ICAgICAgICAgWzIxMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDVdCiAg
ICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMjQgbXNd
ClA2ICAgICAgICAgWzIwMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAgIDld
CiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAgMzYg
bXNdClA3ICAgICAgICAgWzE4MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAgICAg
IDVdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAgICAg
MzIgbXNdClA4ICAgICAgICAgWzE3MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAgICAg
ICAgIDJdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAgICAg
ICAgIDcgbXNdClA5ICAgICAgICAgWzE2MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAgICAg
ICAgICAgIDhdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAgICAg
ICAgICAgNzAgbXNdClAxMCAgICAgICAgWzE0MDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAgICAg
ICAgICAgICAgIDldCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAgICAg
ICAgICAgICAgNTAgbXNdClAxMSAgICAgICAgWzEzMDAgTUh6XTogdHJhbnNpdGlvbiBbICAgICAg
ICAgICAgICAgICAgIDVdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAgICAg
ICAgICAgICAgICAgMTkgbXNdClAxMiAgICAgICAgWzEyMDAgTUh6XTogdHJhbnNpdGlvbiBbICAg
ICAgICAgICAgICAgICAgIDFdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBbICAg
ICAgICAgICAgICAgICAgIDAgbXNdClAxMyAgICAgICAgWzExMDAgTUh6XTogdHJhbnNpdGlvbiBb
ICAgICAgICAgICAgICAgICAgMTJdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5ICBb
ICAgICAgICAgICAgICAgICAgNTUgbXNdClAxNCAgICAgICAgWyA5MDAgTUh6XTogdHJhbnNpdGlv
biBbICAgICAgICAgICAgICAgICAgIDddCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmN5
ICBbICAgICAgICAgICAgICAgICAgMTIgbXNdCipQMTUgICAgICAgWyA4MDAgTUh6XTogdHJhbnNp
dGlvbiBbICAgICAgICAgICAgICAgICAxMDhdCiAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRl
bmN5ICBbICAgICAgICAgICAgICAgNjQ3MzggbXNdCgokc3VkbyB4ZW5wbSBnZXQtY3B1ZnJlcS1w
YXJhCmNwdSBpZCAgICAgICAgICAgICAgIDogMAphZmZlY3RlZF9jcHVzICAgICAgICA6IDAKY3B1
aW5mbyBmcmVxdWVuY3kgICAgOiBtYXggWzI2MDEwMDBdIG1pbiBbODAwMDAwXSBjdXIgWzI2MDEw
MDBdCnNjYWxpbmdfZHJpdmVyICAgICAgIDogYWNwaS1jcHVmcmVxCnNjYWxpbmdfYXZhaWxfZ292
ICAgIDogaHdwLWludGVybmFsIHVzZXJzcGFjZSBwZXJmb3JtYW5jZSBwb3dlcnNhdmUgb25kZW1h
bmQKY3VycmVudF9nb3Zlcm5vciAgICAgOiBwb3dlcnNhdmUKc2NhbGluZ19hdmFpbF9mcmVxICAg
OiAyNjAxMDAwIDI2MDAwMDAgMjUwMDAwMCAyMzAwMDAwIDIyMDAwMDAgMjEwMDAwMCAyMDAwMDAw
IDE4MDAwMDAgMTcwMDAwMCAxNjAwMDAwIDE0MDAwMDAgMTMwMDAwMCAxMjAwMDAwIDExMDAwMDAg
OTAwMDAwICo4MDAwMDAKc2NhbGluZyBmcmVxdWVuY3kgICAgOiBtYXggWzgwMDAwMF0gbWluIFs4
MDAwMDBdIGN1ciBbODAwMDAwXQp0dXJibyBtb2RlICAgICAgICAgICA6IGRpc2FibGVkIG9yIG4v
YQoKY3B1IGlkICAgICAgICAgICAgICAgOiAxCmFmZmVjdGVkX2NwdXMgICAgICAgIDogMQpjcHVp
bmZvIGZyZXF1ZW5jeSAgICA6IG1heCBbMjYwMTAwMF0gbWluIFs4MDAwMDBdIGN1ciBbMjYwMTAw
MF0Kc2NhbGluZ19kcml2ZXIgICAgICAgOiBhY3BpLWNwdWZyZXEKc2NhbGluZ19hdmFpbF9nb3Yg
ICAgOiBod3AtaW50ZXJuYWwgdXNlcnNwYWNlIHBlcmZvcm1hbmNlIHBvd2Vyc2F2ZSBvbmRlbWFu
ZApjdXJyZW50X2dvdmVybm9yICAgICA6IHBvd2Vyc2F2ZQpzY2FsaW5nX2F2YWlsX2ZyZXEgICA6
IDI2MDEwMDAgMjYwMDAwMCAyNTAwMDAwIDIzMDAwMDAgMjIwMDAwMCAyMTAwMDAwIDIwMDAwMDAg
MTgwMDAwMCAxNzAwMDAwIDE2MDAwMDAgMTQwMDAwMCAxMzAwMDAwIDEyMDAwMDAgMTEwMDAwMCA5
MDAwMDAgKjgwMDAwMApzY2FsaW5nIGZyZXF1ZW5jeSAgICA6IG1heCBbODAwMDAwXSBtaW4gWzgw
MDAwMF0gY3VyIFs4MDAwMDBdCnR1cmJvIG1vZGUgICAgICAgICAgIDogZGlzYWJsZWQgb3Igbi9h
CgpjcHUgaWQgICAgICAgICAgICAgICA6IDIKYWZmZWN0ZWRfY3B1cyAgICAgICAgOiAyCmNwdWlu
Zm8gZnJlcXVlbmN5ICAgIDogbWF4IFsyNjAxMDAwXSBtaW4gWzgwMDAwMF0gY3VyIFsyNjAxMDAw
XQpzY2FsaW5nX2RyaXZlciAgICAgICA6IGFjcGktY3B1ZnJlcQpzY2FsaW5nX2F2YWlsX2dvdiAg
ICA6IGh3cC1pbnRlcm5hbCB1c2Vyc3BhY2UgcGVyZm9ybWFuY2UgcG93ZXJzYXZlIG9uZGVtYW5k
CmN1cnJlbnRfZ292ZXJub3IgICAgIDogcG93ZXJzYXZlCnNjYWxpbmdfYXZhaWxfZnJlcSAgIDog
MjYwMTAwMCAyNjAwMDAwIDI1MDAwMDAgMjMwMDAwMCAyMjAwMDAwIDIxMDAwMDAgMjAwMDAwMCAx
ODAwMDAwIDE3MDAwMDAgMTYwMDAwMCAxNDAwMDAwIDEzMDAwMDAgMTIwMDAwMCAxMTAwMDAwIDkw
MDAwMCAqODAwMDAwCnNjYWxpbmcgZnJlcXVlbmN5ICAgIDogbWF4IFs4MDAwMDBdIG1pbiBbODAw
MDAwXSBjdXIgWzgwMDAwMF0KdHVyYm8gbW9kZSAgICAgICAgICAgOiBkaXNhYmxlZCBvciBuL2EK
CmNwdSBpZCAgICAgICAgICAgICAgIDogMwphZmZlY3RlZF9jcHVzICAgICAgICA6IDMKY3B1aW5m
byBmcmVxdWVuY3kgICAgOiBtYXggWzI2MDEwMDBdIG1pbiBbODAwMDAwXSBjdXIgWzI2MDEwMDBd
CnNjYWxpbmdfZHJpdmVyICAgICAgIDogYWNwaS1jcHVmcmVxCnNjYWxpbmdfYXZhaWxfZ292ICAg
IDogaHdwLWludGVybmFsIHVzZXJzcGFjZSBwZXJmb3JtYW5jZSBwb3dlcnNhdmUgb25kZW1hbmQK
Y3VycmVudF9nb3Zlcm5vciAgICAgOiBwb3dlcnNhdmUKc2NhbGluZ19hdmFpbF9mcmVxICAgOiAy
NjAxMDAwIDI2MDAwMDAgMjUwMDAwMCAyMzAwMDAwIDIyMDAwMDAgMjEwMDAwMCAyMDAwMDAwIDE4
MDAwMDAgMTcwMDAwMCAxNjAwMDAwIDE0MDAwMDAgMTMwMDAwMCAxMjAwMDAwIDExMDAwMDAgOTAw
MDAwICo4MDAwMDAKc2NhbGluZyBmcmVxdWVuY3kgICAgOiBtYXggWzgwMDAwMF0gbWluIFs4MDAw
MDBdIGN1ciBbODAwMDAwXQp0dXJibyBtb2RlICAgICAgICAgICA6IGRpc2FibGVkIG9yIG4vYQoK
Y3B1IGlkICAgICAgICAgICAgICAgOiA0CmFmZmVjdGVkX2NwdXMgICAgICAgIDogNApjcHVpbmZv
IGZyZXF1ZW5jeSAgICA6IG1heCBbMjYwMTAwMF0gbWluIFs4MDAwMDBdIGN1ciBbMjYwMTAwMF0K
c2NhbGluZ19kcml2ZXIgICAgICAgOiBhY3BpLWNwdWZyZXEKc2NhbGluZ19hdmFpbF9nb3YgICAg
OiBod3AtaW50ZXJuYWwgdXNlcnNwYWNlIHBlcmZvcm1hbmNlIHBvd2Vyc2F2ZSBvbmRlbWFuZApj
dXJyZW50X2dvdmVybm9yICAgICA6IHBvd2Vyc2F2ZQpzY2FsaW5nX2F2YWlsX2ZyZXEgICA6IDI2
MDEwMDAgMjYwMDAwMCAyNTAwMDAwIDIzMDAwMDAgMjIwMDAwMCAyMTAwMDAwIDIwMDAwMDAgMTgw
MDAwMCAxNzAwMDAwIDE2MDAwMDAgMTQwMDAwMCAxMzAwMDAwIDEyMDAwMDAgMTEwMDAwMCA5MDAw
MDAgKjgwMDAwMApzY2FsaW5nIGZyZXF1ZW5jeSAgICA6IG1heCBbODAwMDAwXSBtaW4gWzgwMDAw
MF0gY3VyIFs4MDAwMDBdCnR1cmJvIG1vZGUgICAgICAgICAgIDogZGlzYWJsZWQgb3Igbi9hCgpj
cHUgaWQgICAgICAgICAgICAgICA6IDUKYWZmZWN0ZWRfY3B1cyAgICAgICAgOiA1CmNwdWluZm8g
ZnJlcXVlbmN5ICAgIDogbWF4IFsyNjAxMDAwXSBtaW4gWzgwMDAwMF0gY3VyIFsyNjAxMDAwXQpz
Y2FsaW5nX2RyaXZlciAgICAgICA6IGFjcGktY3B1ZnJlcQpzY2FsaW5nX2F2YWlsX2dvdiAgICA6
IGh3cC1pbnRlcm5hbCB1c2Vyc3BhY2UgcGVyZm9ybWFuY2UgcG93ZXJzYXZlIG9uZGVtYW5kCmN1
cnJlbnRfZ292ZXJub3IgICAgIDogcG93ZXJzYXZlCnNjYWxpbmdfYXZhaWxfZnJlcSAgIDogMjYw
MTAwMCAyNjAwMDAwIDI1MDAwMDAgMjMwMDAwMCAyMjAwMDAwIDIxMDAwMDAgMjAwMDAwMCAxODAw
MDAwIDE3MDAwMDAgMTYwMDAwMCAxNDAwMDAwIDEzMDAwMDAgMTIwMDAwMCAxMTAwMDAwIDkwMDAw
MCAqODAwMDAwCnNjYWxpbmcgZnJlcXVlbmN5ICAgIDogbWF4IFs4MDAwMDBdIG1pbiBbODAwMDAw
XSBjdXIgWzgwMDAwMF0KdHVyYm8gbW9kZSAgICAgICAgICAgOiBkaXNhYmxlZCBvciBuL2EKCmNw
dSBpZCAgICAgICAgICAgICAgIDogNgphZmZlY3RlZF9jcHVzICAgICAgICA6IDYKY3B1aW5mbyBm
cmVxdWVuY3kgICAgOiBtYXggWzI2MDEwMDBdIG1pbiBbODAwMDAwXSBjdXIgWzI2MDEwMDBdCnNj
YWxpbmdfZHJpdmVyICAgICAgIDogYWNwaS1jcHVmcmVxCnNjYWxpbmdfYXZhaWxfZ292ICAgIDog
aHdwLWludGVybmFsIHVzZXJzcGFjZSBwZXJmb3JtYW5jZSBwb3dlcnNhdmUgb25kZW1hbmQKY3Vy
cmVudF9nb3Zlcm5vciAgICAgOiBwb3dlcnNhdmUKc2NhbGluZ19hdmFpbF9mcmVxICAgOiAyNjAx
MDAwIDI2MDAwMDAgMjUwMDAwMCAyMzAwMDAwIDIyMDAwMDAgMjEwMDAwMCAyMDAwMDAwIDE4MDAw
MDAgMTcwMDAwMCAxNjAwMDAwIDE0MDAwMDAgMTMwMDAwMCAxMjAwMDAwIDExMDAwMDAgOTAwMDAw
ICo4MDAwMDAKc2NhbGluZyBmcmVxdWVuY3kgICAgOiBtYXggWzgwMDAwMF0gbWluIFs4MDAwMDBd
IGN1ciBbODAwMDAwXQp0dXJibyBtb2RlICAgICAgICAgICA6IGRpc2FibGVkIG9yIG4vYQoKY3B1
IGlkICAgICAgICAgICAgICAgOiA3CmFmZmVjdGVkX2NwdXMgICAgICAgIDogNwpjcHVpbmZvIGZy
ZXF1ZW5jeSAgICA6IG1heCBbMjYwMTAwMF0gbWluIFs4MDAwMDBdIGN1ciBbMjYwMTAwMF0Kc2Nh
bGluZ19kcml2ZXIgICAgICAgOiBhY3BpLWNwdWZyZXEKc2NhbGluZ19hdmFpbF9nb3YgICAgOiBo
d3AtaW50ZXJuYWwgdXNlcnNwYWNlIHBlcmZvcm1hbmNlIHBvd2Vyc2F2ZSBvbmRlbWFuZApjdXJy
ZW50X2dvdmVybm9yICAgICA6IHBvd2Vyc2F2ZQpzY2FsaW5nX2F2YWlsX2ZyZXEgICA6IDI2MDEw
MDAgMjYwMDAwMCAyNTAwMDAwIDIzMDAwMDAgMjIwMDAwMCAyMTAwMDAwIDIwMDAwMDAgMTgwMDAw
MCAxNzAwMDAwIDE2MDAwMDAgMTQwMDAwMCAxMzAwMDAwIDEyMDAwMDAgMTEwMDAwMCA5MDAwMDAg
KjgwMDAwMApzY2FsaW5nIGZyZXF1ZW5jeSAgICA6IG1heCBbODAwMDAwXSBtaW4gWzgwMDAwMF0g
Y3VyIFs4MDAwMDBdCnR1cmJvIG1vZGUgICAgICAgICAgIDogZGlzYWJsZWQgb3Igbi9hCgpjcHUg
aWQgICAgICAgICAgICAgICA6IDgKYWZmZWN0ZWRfY3B1cyAgICAgICAgOiA4CmNwdWluZm8gZnJl
cXVlbmN5ICAgIDogbWF4IFsyNjAxMDAwXSBtaW4gWzgwMDAwMF0gY3VyIFs5MDAwMDBdCnNjYWxp
bmdfZHJpdmVyICAgICAgIDogYWNwaS1jcHVmcmVxCnNjYWxpbmdfYXZhaWxfZ292ICAgIDogaHdw
LWludGVybmFsIHVzZXJzcGFjZSBwZXJmb3JtYW5jZSBwb3dlcnNhdmUgb25kZW1hbmQKY3VycmVu
dF9nb3Zlcm5vciAgICAgOiBwb3dlcnNhdmUKc2NhbGluZ19hdmFpbF9mcmVxICAgOiAyNjAxMDAw
IDI2MDAwMDAgMjUwMDAwMCAyMzAwMDAwIDIyMDAwMDAgMjEwMDAwMCAyMDAwMDAwIDE4MDAwMDAg
MTcwMDAwMCAxNjAwMDAwIDE0MDAwMDAgMTMwMDAwMCAxMjAwMDAwIDExMDAwMDAgOTAwMDAwICo4
MDAwMDAKc2NhbGluZyBmcmVxdWVuY3kgICAgOiBtYXggWzgwMDAwMF0gbWluIFs4MDAwMDBdIGN1
ciBbODAwMDAwXQp0dXJibyBtb2RlICAgICAgICAgICA6IGRpc2FibGVkIG9yIG4vYQoKY3B1IGlk
ICAgICAgICAgICAgICAgOiA5CmFmZmVjdGVkX2NwdXMgICAgICAgIDogOQpjcHVpbmZvIGZyZXF1
ZW5jeSAgICA6IG1heCBbMjYwMTAwMF0gbWluIFs4MDAwMDBdIGN1ciBbOTAwMDAwXQpzY2FsaW5n
X2RyaXZlciAgICAgICA6IGFjcGktY3B1ZnJlcQpzY2FsaW5nX2F2YWlsX2dvdiAgICA6IGh3cC1p
bnRlcm5hbCB1c2Vyc3BhY2UgcGVyZm9ybWFuY2UgcG93ZXJzYXZlIG9uZGVtYW5kCmN1cnJlbnRf
Z292ZXJub3IgICAgIDogcG93ZXJzYXZlCnNjYWxpbmdfYXZhaWxfZnJlcSAgIDogMjYwMTAwMCAy
NjAwMDAwIDI1MDAwMDAgMjMwMDAwMCAyMjAwMDAwIDIxMDAwMDAgMjAwMDAwMCAxODAwMDAwIDE3
MDAwMDAgMTYwMDAwMCAxNDAwMDAwIDEzMDAwMDAgMTIwMDAwMCAxMTAwMDAwIDkwMDAwMCAqODAw
MDAwCnNjYWxpbmcgZnJlcXVlbmN5ICAgIDogbWF4IFs4MDAwMDBdIG1pbiBbODAwMDAwXSBjdXIg
WzgwMDAwMF0KdHVyYm8gbW9kZSAgICAgICAgICAgOiBkaXNhYmxlZCBvciBuL2EKCmNwdSBpZCAg
ICAgICAgICAgICAgIDogMTAKYWZmZWN0ZWRfY3B1cyAgICAgICAgOiAxMApjcHVpbmZvIGZyZXF1
ZW5jeSAgICA6IG1heCBbMjYwMTAwMF0gbWluIFs4MDAwMDBdIGN1ciBbOTAwMDAwXQpzY2FsaW5n
X2RyaXZlciAgICAgICA6IGFjcGktY3B1ZnJlcQpzY2FsaW5nX2F2YWlsX2dvdiAgICA6IGh3cC1p
bnRlcm5hbCB1c2Vyc3BhY2UgcGVyZm9ybWFuY2UgcG93ZXJzYXZlIG9uZGVtYW5kCmN1cnJlbnRf
Z292ZXJub3IgICAgIDogcG93ZXJzYXZlCnNjYWxpbmdfYXZhaWxfZnJlcSAgIDogMjYwMTAwMCAy
NjAwMDAwIDI1MDAwMDAgMjMwMDAwMCAyMjAwMDAwIDIxMDAwMDAgMjAwMDAwMCAxODAwMDAwIDE3
MDAwMDAgMTYwMDAwMCAxNDAwMDAwIDEzMDAwMDAgMTIwMDAwMCAxMTAwMDAwIDkwMDAwMCAqODAw
MDAwCnNjYWxpbmcgZnJlcXVlbmN5ICAgIDogbWF4IFs4MDAwMDBdIG1pbiBbODAwMDAwXSBjdXIg
WzgwMDAwMF0KdHVyYm8gbW9kZSAgICAgICAgICAgOiBkaXNhYmxlZCBvciBuL2EKCmNwdSBpZCAg
ICAgICAgICAgICAgIDogMTEKYWZmZWN0ZWRfY3B1cyAgICAgICAgOiAxMQpjcHVpbmZvIGZyZXF1
ZW5jeSAgICA6IG1heCBbMjYwMTAwMF0gbWluIFs4MDAwMDBdIGN1ciBbOTAwMDAwXQpzY2FsaW5n
X2RyaXZlciAgICAgICA6IGFjcGktY3B1ZnJlcQpzY2FsaW5nX2F2YWlsX2dvdiAgICA6IGh3cC1p
bnRlcm5hbCB1c2Vyc3BhY2UgcGVyZm9ybWFuY2UgcG93ZXJzYXZlIG9uZGVtYW5kCmN1cnJlbnRf
Z292ZXJub3IgICAgIDogcG93ZXJzYXZlCnNjYWxpbmdfYXZhaWxfZnJlcSAgIDogMjYwMTAwMCAy
NjAwMDAwIDI1MDAwMDAgMjMwMDAwMCAyMjAwMDAwIDIxMDAwMDAgMjAwMDAwMCAxODAwMDAwIDE3
MDAwMDAgMTYwMDAwMCAxNDAwMDAwIDEzMDAwMDAgMTIwMDAwMCAxMTAwMDAwIDkwMDAwMCAqODAw
MDAwCnNjYWxpbmcgZnJlcXVlbmN5ICAgIDogbWF4IFs4MDAwMDBdIG1pbiBbODAwMDAwXSBjdXIg
WzgwMDAwMF0KdHVyYm8gbW9kZSAgICAgICAgICAgOiBkaXNhYmxlZCBvciBuL2EKCiRzdWRvIHhl
bnBtIGdldC1jcHVmcmVxLWF2ZXJhZ2UKY3B1IGlkICAgICAgICAgICAgICAgOiAwCmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTA5MjQyMAoKY3B1IGlkICAgICAgICAgICAgICAgOiAxCmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTA5MjQyMAoKY3B1IGlkICAgICAgICAgICAgICAgOiAyCmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTA2NjQxMAoKY3B1IGlkICAgICAgICAgICAgICAgOiAzCmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTExODQzMAoKY3B1IGlkICAgICAgICAgICAgICAgOiA0CmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTA5MjQyMAoKY3B1IGlkICAgICAgICAgICAgICAgOiA1CmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTExODQzMAoKY3B1IGlkICAgICAgICAgICAgICAgOiA2CmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTA5MjQyMAoKY3B1IGlkICAgICAgICAgICAgICAgOiA3CmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTA5MjQyMAoKY3B1IGlkICAgICAgICAgICAgICAgOiA4CmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTA5MjQyMAoKY3B1IGlkICAgICAgICAgICAgICAgOiA5CmF2ZXJhZ2Ug
Y3B1IGZyZXF1ZW5jeTogMTA5MjQyMAoKY3B1IGlkICAgICAgICAgICAgICAgOiAxMAphdmVyYWdl
IGNwdSBmcmVxdWVuY3k6IDEwOTI0MjAKCmNwdSBpZCAgICAgICAgICAgICAgIDogMTEKYXZlcmFn
ZSBjcHUgZnJlcXVlbmN5OiAxMTE4NDMw

--b1_MUOp8g8ulGl19JFInYhMrDutwyqDoaWmDWlfVb9stE
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0
cHg7Ij5JIHVzZWQgeGVucG0gdG8gZGlzYWJsZSB0dXJibyBtb2RlIGFuZCBzZXQgdGhlIG1heGlt
dW0gZnJlcXVlbmN5IHRvIA0KODAwMDAwIGFuZCBnb3Zlcm5vciB0byBwb3dlcnNhdmUsIGJ1dCBt
eSBsYXB0b3AgZmFucyBhcmUgc3RpbGwgcnVubmluZyBhdA0KIGZ1bGwgc3BlZWQgd2hlbiBJIGFt
IHVzaW5nIHhlbiBhbmQgdGhlIGF2ZXJhZ2UgZnJlcXVlbmN5IHNob3duIGRvZXMgDQpub3QgbWF0
Y2ggdGhlIG1heGltdW0gZnJlcXVlbmN5IEkgc2V0IHdpdGggeGVucG0gd2hpY2ggaXMgODAwMDAw
LiBXaHkgDQphcmUgbXkgZmFucyBydW5uaW5nIGF0IGZ1bGwgc3BlZWQgYW5kIHdoeSBkb2Vzbid0
IHhlbnBtIG1heGltdW0gDQpmcmVxdWVuY3kgc2V0dGluZyB3b3JrPyBUaGVzZSBhcmUgdGhlIGxv
Z3Mgb2YgYm90aCBkbWVzZyBhbmQgDQp4ZW5wbTxicj48YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9u
dC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij48L2Rpdj48cHJl
PiRzdWRvIHhsIGRtZXNnDQooWEVOKSBCdWlsdC1pbiBjb21tYW5kIGxpbmU6IGVwdD1leGVjLXNw
IHNwZWMtY3RybD11bnByaXYtbW1pbw0KKFhFTikgcGFyYW1ldGVyICJuby1yZWFsLW1vZGUiIHVu
a25vd24hDQombmJzcDtYZW4gNC4xNC41DQooWEVOKSBYZW4gdmVyc2lvbiA0LjE0LjUgKG1vY2ti
dWlsZEBbdW5rbm93bl0pIChnY2MgKEdDQykgMTAuMy4xIDIwMjEwNDIyIChSZWQgSGF0IDEwLjMu
MS0xKSkgZGVidWc9biAmbmJzcDtUdWUgTWFyICZuYnNwOzcgMDA6MDA6MDAgVVRDIDIwMjMNCihY
RU4pIExhdGVzdCBDaGFuZ2VTZXQ6IA0KKFhFTikgQm9vdGxvYWRlcjogR1JVQiAyLjA0DQooWEVO
KSBDb21tYW5kIGxpbmU6IHBsYWNlaG9sZGVyIGNvbnNvbGU9bm9uZSBkb20wX21lbT1taW46MTAy
NE0gZG9tMF9tZW09bWF4OjQwOTZNIHVjb2RlPXNjYW4gZ250dGFiX21heF9mcmFtZXM9MjA0OCBn
bnR0YWJfbWF4X21hcHRyYWNrX2ZyYW1lcz00MDk2IG5vLXJlYWwtbW9kZSBlZGQ9b2ZmDQooWEVO
KSBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3M6IDB4OTVjMDAwMDANCihYRU4pIFZpZGVvIGlu
Zm9ybWF0aW9uOg0KKFhFTikgJm5ic3A7VkdBIGlzIGdyYXBoaWNzIG1vZGUgMTkyMHgxMDgwLCAz
MiBicHANCihYRU4pIERpc2MgaW5mb3JtYXRpb246DQooWEVOKSAmbmJzcDtGb3VuZCAwIE1CUiBz
aWduYXR1cmVzDQooWEVOKSAmbmJzcDtGb3VuZCAyIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVz
DQooWEVOKSBFRkkgUkFNIG1hcDoNCihYRU4pICZuYnNwO1swMDAwMDAwMDAwMDAwMDAwLCAwMDAw
MDAwMDAwMDllZmZmXSAodXNhYmxlKQ0KKFhFTikgJm5ic3A7WzAwMDAwMDAwMDAwOWYwMDAsIDAw
MDAwMDAwMDAwZmZmZmZdIChyZXNlcnZlZCkNCihYRU4pICZuYnNwO1swMDAwMDAwMDAwMTAwMDAw
LCAwMDAwMDAwMDg4ZDU3ZmZmXSAodXNhYmxlKQ0KKFhFTikgJm5ic3A7WzAwMDAwMDAwODhkNTgw
MDAsIDAwMDAwMDAwODk2NTdmZmZdIChyZXNlcnZlZCkNCihYRU4pICZuYnNwO1swMDAwMDAwMDg5
NjU4MDAwLCAwMDAwMDAwMDk3ODZkZmZmXSAodXNhYmxlKQ0KKFhFTikgJm5ic3A7WzAwMDAwMDAw
OTc4NmUwMDAsIDAwMDAwMDAwOThkNmRmZmZdIChyZXNlcnZlZCkNCihYRU4pICZuYnNwO1swMDAw
MDAwMDk4ZDZlMDAwLCAwMDAwMDAwMDk5YmNkZmZmXSAoQUNQSSBOVlMpDQooWEVOKSAmbmJzcDtb
MDAwMDAwMDA5OWJjZTAwMCwgMDAwMDAwMDA5OWM0ZGZmZl0gKEFDUEkgZGF0YSkNCihYRU4pICZu
YnNwO1swMDAwMDAwMDk5YzRlMDAwLCAwMDAwMDAwMDk5YzRlZmZmXSAodXNhYmxlKQ0KKFhFTikg
Jm5ic3A7WzAwMDAwMDAwOTljNGYwMDAsIDAwMDAwMDAwOWY3ZmZmZmZdIChyZXNlcnZlZCkNCihY
RU4pICZuYnNwO1swMDAwMDAwMGUwMDAwMDAwLCAwMDAwMDAwMGVmZmZmZmZmXSAocmVzZXJ2ZWQp
DQooWEVOKSAmbmJzcDtbMDAwMDAwMDBmZTAwMDAwMCwgMDAwMDAwMDBmZTAxMGZmZl0gKHJlc2Vy
dmVkKQ0KKFhFTikgJm5ic3A7WzAwMDAwMDAwZmVkMTAwMDAsIDAwMDAwMDAwZmVkMTlmZmZdIChy
ZXNlcnZlZCkNCihYRU4pICZuYnNwO1swMDAwMDAwMGZlZDg0MDAwLCAwMDAwMDAwMGZlZDg0ZmZm
XSAocmVzZXJ2ZWQpDQooWEVOKSAmbmJzcDtbMDAwMDAwMDBmZWUwMDAwMCwgMDAwMDAwMDBmZWUw
MGZmZl0gKHJlc2VydmVkKQ0KKFhFTikgJm5ic3A7WzAwMDAwMDAwZmYzMDAwMDAsIDAwMDAwMDAw
ZmZmZmZmZmZdIChyZXNlcnZlZCkNCihYRU4pICZuYnNwO1swMDAwMDAwMTAwMDAwMDAwLCAwMDAw
MDAwNDVlN2ZmZmZmXSAodXNhYmxlKQ0KKFhFTikgQUNQSTogUlNEUCA5OUM0RDAxNCwgMDAyNCAo
cjIgQUNSU1lTKQ0KKFhFTikgQUNQSTogWFNEVCA5OUMyNTE4OCwgMDExQyAocjEgQUNSU1lTIEFD
UlBSRENUICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzIgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
MTAwMDAxMykNCihYRU4pIEFDUEk6IEZBQ1AgOTlDMjQwMDAsIDAxMEMgKHI1IEFDUlNZUyBBQ1JQ
UkRDVCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyIDEwMjUgJm5ic3A7ICZuYnNwOzQwMDAw
KQ0KKFhFTikgQUNQSTogRFNEVCA5OUJEQjAwMCwgNDUyRjEgKHIyIEFDUlNZUyBBQ1JQUkRDVCAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyIDEwMjUgJm5ic3A7ICZuYnNwOzQwMDAwKQ0KKFhF
TikgQUNQSTogRkFDUyA5OUI0NDAwMCwgMDA0MA0KKFhFTikgQUNQSTogVUVGSSA5OUJDRDAwMCwg
MDIzNiAocjEgQUNSU1lTIEFDUlBSRENUICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEgMTAy
NSAmbmJzcDsgJm5ic3A7NDAwMDApDQooWEVOKSBBQ1BJOiBTU0RUIDk5QzQ3MDAwLCA0OTdFIChy
MiBBQ1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZuYnNwOyAxMDAwIDEwMjUgJm5ic3A7ICZuYnNwOzQw
MDAwKQ0KKFhFTikgQUNQSTogU1NEVCA5OUM0NjAwMCwgMDEwMCAocjIgQUNSU1lTIEFDUlBSRENU
ICZuYnNwOyAmbmJzcDsgMzAwMCAxMDI1ICZuYnNwOyAmbmJzcDs0MDAwMCkNCihYRU4pIEFDUEk6
IFNTRFQgOTlDNDUwMDAsIDA4MzQgKHIyIEFDUlNZUyBBQ1JQUkRDVCAmbmJzcDsgJm5ic3A7IDMw
MDAgMTAyNSAmbmJzcDsgJm5ic3A7NDAwMDApDQooWEVOKSBBQ1BJOiBTU0RUIDk5QzQyMDAwLCAy
MEFEIChyMiBBQ1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZuYnNwOyAzMDAwIDEwMjUgJm5ic3A7ICZu
YnNwOzQwMDAwKQ0KKFhFTikgQUNQSTogU1NEVCA5OUMzRTAwMCwgMzFEQSAocjIgQUNSU1lTIEFD
UlBSRENUICZuYnNwOyAmbmJzcDsgMzAwMCAxMDI1ICZuYnNwOyAmbmJzcDs0MDAwMCkNCihYRU4p
IEFDUEk6IFNTRFQgOTlDM0IwMDAsIDJDNDggKHIyIEFDUlNZUyBBQ1JQUkRDVCAmbmJzcDsgJm5i
c3A7IDEwMDAgMTAyNSAmbmJzcDsgJm5ic3A7NDAwMDApDQooWEVOKSBBQ1BJOiBTU0RUIDk5QzNB
MDAwLCAwNDVBIChyMiBBQ1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZuYnNwOyAxMDAwIDEwMjUgJm5i
c3A7ICZuYnNwOzQwMDAwKQ0KKFhFTikgQUNQSTogU1NEVCA5OUMzOTAwMCwgMDA0NiAocjIgQUNS
U1lTIEFDUlBSRENUICZuYnNwOyAmbmJzcDsgMzAwMCAxMDI1ICZuYnNwOyAmbmJzcDs0MDAwMCkN
CihYRU4pIEFDUEk6IFRQTTIgOTlDMzgwMDAsIDAwMzQgKHIzIEFDUlNZUyBBQ1JQUkRDVCAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyIDEwMjUgJm5ic3A7ICZuYnNwOzQwMDAwKQ0KKFhFTikg
QUNQSTogTFBJVCA5OUMzNzAwMCwgMDA5NCAocjEgQUNSU1lTIEFDUlBSRENUICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOzIgMTAyNSAmbmJzcDsgJm5ic3A7NDAwMDApDQooWEVOKSBBQ1BJOiBX
U01UIDk5QzM2MDAwLCAwMDI4IChyMSBBQ1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7MiAxMDI1ICZuYnNwOyAmbmJzcDs0MDAwMCkNCihYRU4pIEFDUEk6IFNTRFQgOTlD
MzUwMDAsIDBCNzAgKHIyIEFDUlNZUyBBQ1JQUkRDVCAmbmJzcDsgJm5ic3A7IDEwMDAgMTAyNSAm
bmJzcDsgJm5ic3A7NDAwMDApDQooWEVOKSBBQ1BJOiBTU0RUIDk5QzMyMDAwLCAyNTZGIChyMiBB
Q1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MCAxMDI1ICZuYnNwOyAm
bmJzcDs0MDAwMCkNCihYRU4pIEFDUEk6IERCR1AgOTlDMzEwMDAsIDAwMzQgKHIxIEFDUlNZUyBB
Q1JQUkRDVCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyIDEwMjUgJm5ic3A7ICZuYnNwOzQw
MDAwKQ0KKFhFTikgQUNQSTogREJHMiA5OUMzMDAwMCwgMDA1QyAocjAgQUNSU1lTIEFDUlBSRENU
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzIgMTAyNSAmbmJzcDsgJm5ic3A7NDAwMDApDQoo
WEVOKSBBQ1BJOiBTU0RUIDk5QzJGMDAwLCAwQjlGIChyMiBBQ1JTWVMgQUNSUFJEQ1QgJm5ic3A7
ICZuYnNwOyAxMDAwIDEwMjUgJm5ic3A7ICZuYnNwOzQwMDAwKQ0KKFhFTikgQUNQSTogTVNETSA5
OUMyRTAwMCwgMDA1NSAocjMgQUNSU1lTIEFDUlBSRENUICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzEgMTAyNSAmbmJzcDsgJm5ic3A7NDAwMDApDQooWEVOKSBBQ1BJOiBTU0RUIDk5QzI2MDAw
LCA3NTY4IChyMSBBQ1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZuYnNwOyAxMDAwIDEwMjUgJm5ic3A7
ICZuYnNwOzQwMDAwKQ0KKFhFTikgQUNQSTogTkhMVCA5OUM0QzAwMCwgMDJERiAocjAgQUNSU1lT
IEFDUlBSRENUICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzIgMTAyNSAmbmJzcDsgJm5ic3A7
NDAwMDApDQooWEVOKSBBQ1BJOiBIUEVUIDk5QzIzMDAwLCAwMDM4IChyMSBBQ1JTWVMgQUNSUFJE
Q1QgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MiAxMDI1ICZuYnNwOyAmbmJzcDs0MDAwMCkN
CihYRU4pIEFDUEk6IEFQSUMgOTlDMjIwMDAsIDAxNjQgKHIzIEFDUlNZUyBBQ1JQUkRDVCAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyIDEwMjUgJm5ic3A7ICZuYnNwOzQwMDAwKQ0KKFhFTikg
QUNQSTogTUNGRyA5OUMyMTAwMCwgMDAzQyAocjEgQUNSU1lTIEFDUlBSRENUICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOzIgMTAyNSAmbmJzcDsgJm5ic3A7NDAwMDApDQooWEVOKSBBQ1BJOiBT
U0RUIDk5QkRBMDAwLCAwMUM0IChyMiBBQ1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7MiAxMDI1ICZuYnNwOyAmbmJzcDs0MDAwMCkNCihYRU4pIEFDUEk6IFNTRFQgOTlC
RDYwMDAsIDJGRUUgKHIxIEFDUlNZUyBBQ1JQUkRDVCAmbmJzcDsgJm5ic3A7IDEwMDAgMTAyNSAm
bmJzcDsgJm5ic3A7NDAwMDApDQooWEVOKSBBQ1BJOiBTU0RUIDk5QkQ1MDAwLCAwMTYxIChyMiBB
Q1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZuYnNwOyAxMDAwIDEwMjUgJm5ic3A7ICZuYnNwOzQwMDAw
KQ0KKFhFTikgQUNQSTogRE1BUiA5OUJEOTAwMCwgMDBBOCAocjEgQUNSU1lTIEFDUlBSRENUICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzIgMTAyNSAmbmJzcDsgJm5ic3A7NDAwMDApDQooWEVO
KSBBQ1BJOiBTU0RUIDk5QkQ0MDAwLCAwMTY0IChyMSBBQ1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZu
YnNwOyAxMDAwIDEwMjUgJm5ic3A7ICZuYnNwOzQwMDAwKQ0KKFhFTikgQUNQSTogRlBEVCA5OUJE
MjAwMCwgMDA0NCAocjEgQUNSU1lTIEFDUlBSRENUICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OzIgMTAyNSAmbmJzcDsgJm5ic3A7NDAwMDApDQooWEVOKSBBQ1BJOiBCR1JUIDk5QkQzMDAwLCAw
MDM4IChyMSBBQ1JTWVMgQUNSUFJEQ1QgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MSAxMDI1
ICZuYnNwOyAmbmJzcDs0MDAwMCkNCihYRU4pIFN5c3RlbSBSQU06IDE2MjE1TUIgKDE2NjA0MjE2
a0IpDQooWEVOKSBEb21haW4gaGVhcCBpbml0aWFsaXNlZA0KKFhFTikgQUNQSTogMzIvNjRYIEZB
Q1MgYWRkcmVzcyBtaXNtYXRjaCBpbiBGQURUIC0gOTliNDQwMDAvMDAwMDAwMDAwMDAwMDAwMCwg
dXNpbmcgMzINCihYRU4pIElPQVBJQ1swXTogYXBpY19pZCAyLCB2ZXJzaW9uIDMyLCBhZGRyZXNz
IDB4ZmVjMDAwMDAsIEdTSSAwLTExOQ0KKFhFTikgRW5hYmxpbmcgQVBJQyBtb2RlOiAmbmJzcDtQ
aHlzLiAmbmJzcDtVc2luZyAxIEkvTyBBUElDcw0KKFhFTikgU3dpdGNoZWQgdG8gQVBJQyBkcml2
ZXIgeDJhcGljX2NsdXN0ZXINCihYRU4pIG1pY3JvY29kZTogQ1BVMCB1cGRhdGVkIGZyb20gcmV2
aXNpb24gMHhlYSB0byAweGY0LCBkYXRlID0gMjAyMi0wNy0zMQ0KKFhFTikgQ1BVMDogVFNDOiBy
YXRpbzogMjE2IC8gMg0KKFhFTikgQ1BVMDogYnVzOiAxMDAgTUh6IGJhc2U6IDI2MDAgTUh6IG1h
eDogNTAwMCBNSHoNCihYRU4pIENQVTA6IDgwMCAuLi4gMjYwMCBNSHoNCihYRU4pIHhzdGF0ZTog
c2l6ZTogMHhhODggYW5kIHN0YXRlczogMHgyMWYNCihYRU4pIFVucmVjb2duaXNlZCBDUFUgbW9k
ZWwgMHhhNSAtIGFzc3VtaW5nIHZ1bG5lcmFibGUgdG8gTGF6eUZQVQ0KKFhFTikgU3BlY3VsYXRp
dmUgbWl0aWdhdGlvbiBmYWNpbGl0aWVzOg0KKFhFTikgJm5ic3A7IEhhcmR3YXJlIGhpbnRzOiBS
RENMX05PIElCUlNfQUxMIFNLSVBfTDFERkwgTURTX05PDQooWEVOKSAmbmJzcDsgSGFyZHdhcmUg
ZmVhdHVyZXM6IElCUEIgSUJSUyBTVElCUCBTU0JEIEwxRF9GTFVTSCBNRF9DTEVBUiBTUkJEU19D
VFJMIEZCX0NMRUFSDQooWEVOKSAmbmJzcDsgQ29tcGlsZWQtaW4gc3VwcG9ydDogSU5ESVJFQ1Rf
VEhVTksNCihYRU4pICZuYnNwOyBYZW4gc2V0dGluZ3M6IEJUSS1UaHVuayBKTVAsIFNQRUNfQ1RS
TDogSUJSUysgU1RJQlArIFNTQkQtLCBPdGhlcjogU1JCX0xPQ0srIElCUEItY3R4dCBWRVJXIEJS
QU5DSF9IQVJERU4NCihYRU4pICZuYnNwOyBTdXBwb3J0IGZvciBIVk0gVk1zOiBNU1JfU1BFQ19D
VFJMIFJTQiBFQUdFUl9GUFUgTURfQ0xFQVINCihYRU4pICZuYnNwOyBTdXBwb3J0IGZvciBQViBW
TXM6IE1TUl9TUEVDX0NUUkwgRUFHRVJfRlBVIE1EX0NMRUFSDQooWEVOKSAmbmJzcDsgWFBUSSAo
NjQtYml0IFBWIG9ubHkpOiBEb20wIGRpc2FibGVkLCBEb21VIGRpc2FibGVkICh3aXRoIFBDSUQp
DQooWEVOKSAmbmJzcDsgUFYgTDFURiBzaGFkb3dpbmc6IERvbTAgZGlzYWJsZWQsIERvbVUgZGlz
YWJsZWQNCihYRU4pIFVzaW5nIHNjaGVkdWxlcjogU01QIENyZWRpdCBTY2hlZHVsZXIgcmV2MiAo
Y3JlZGl0MikNCihYRU4pIEluaXRpYWxpemluZyBDcmVkaXQyIHNjaGVkdWxlcg0KKFhFTikgUGxh
dGZvcm0gdGltZXIgaXMgMjQuMDAwTUh6IEhQRVQNCihYRU4pIERldGVjdGVkIDI1OTIuMDIxIE1I
eiBwcm9jZXNzb3IuDQooWEVOKSBVbmtub3duIGNhY2hhYmlsaXR5IGZvciBNRk5zIDB4YTAtMHhm
Zg0KKFhFTikgVW5rbm93biBjYWNoYWJpbGl0eSBmb3IgTUZOcyAweDliMDAwLTB4OWY3ZmYNCihY
RU4pIEludGVsIFZULWQgaW9tbXUgMCBzdXBwb3J0ZWQgcGFnZSBzaXplczogNGtCLCAyTUIsIDFH
Qg0KKFhFTikgSW50ZWwgVlQtZCBpb21tdSAxIHN1cHBvcnRlZCBwYWdlIHNpemVzOiA0a0IsIDJN
QiwgMUdCDQooWEVOKSBJbnRlbCBWVC1kIFNub29wIENvbnRyb2wgbm90IGVuYWJsZWQuDQooWEVO
KSBJbnRlbCBWVC1kIERvbTAgRE1BIFBhc3N0aHJvdWdoIG5vdCBlbmFibGVkLg0KKFhFTikgSW50
ZWwgVlQtZCBRdWV1ZWQgSW52YWxpZGF0aW9uIGVuYWJsZWQuDQooWEVOKSBJbnRlbCBWVC1kIElu
dGVycnVwdCBSZW1hcHBpbmcgZW5hYmxlZC4NCihYRU4pIEludGVsIFZULWQgUG9zdGVkIEludGVy
cnVwdCBub3QgZW5hYmxlZC4NCihYRU4pIEludGVsIFZULWQgU2hhcmVkIEVQVCB0YWJsZXMgZW5h
YmxlZC4NCihYRU4pIEkvTyB2aXJ0dWFsaXNhdGlvbiBlbmFibGVkDQooWEVOKSAmbmJzcDstIERv
bTAgbW9kZTogUmVsYXhlZA0KKFhFTikgSW50ZXJydXB0IHJlbWFwcGluZyBlbmFibGVkDQooWEVO
KSBFbmFibGVkIGRpcmVjdGVkIEVPSSB3aXRoIGlvYXBpY19hY2tfb2xkIG9uIQ0KKFhFTikgRU5B
QkxJTkcgSU8tQVBJQyBJUlFzDQooWEVOKSAmbmJzcDstJmd0OyBVc2luZyBvbGQgQUNLIG1ldGhv
ZA0KKFhFTikgQWxsb2NhdGVkIGNvbnNvbGUgcmluZyBvZiAzMiBLaUIuDQooWEVOKSBWTVg6IFN1
cHBvcnRlZCBhZHZhbmNlZCBmZWF0dXJlczoNCihYRU4pICZuYnNwOy0gQVBJQyBNTUlPIGFjY2Vz
cyB2aXJ0dWFsaXNhdGlvbg0KKFhFTikgJm5ic3A7LSBBUElDIFRQUiBzaGFkb3cNCihYRU4pICZu
YnNwOy0gRXh0ZW5kZWQgUGFnZSBUYWJsZXMgKEVQVCkNCihYRU4pICZuYnNwOy0gVmlydHVhbC1Q
cm9jZXNzb3IgSWRlbnRpZmllcnMgKFZQSUQpDQooWEVOKSAmbmJzcDstIFZpcnR1YWwgTk1JDQoo
WEVOKSAmbmJzcDstIE1TUiBkaXJlY3QtYWNjZXNzIGJpdG1hcA0KKFhFTikgJm5ic3A7LSBVbnJl
c3RyaWN0ZWQgR3Vlc3QNCihYRU4pICZuYnNwOy0gQVBJQyBSZWdpc3RlciBWaXJ0dWFsaXphdGlv
bg0KKFhFTikgJm5ic3A7LSBWaXJ0dWFsIEludGVycnVwdCBEZWxpdmVyeQ0KKFhFTikgJm5ic3A7
LSBQb3N0ZWQgSW50ZXJydXB0IFByb2Nlc3NpbmcNCihYRU4pICZuYnNwOy0gVk0gRnVuY3Rpb25z
DQooWEVOKSAmbmJzcDstIFZpcnR1YWxpc2F0aW9uIEV4Y2VwdGlvbnMNCihYRU4pICZuYnNwOy0g
UGFnZSBNb2RpZmljYXRpb24gTG9nZ2luZw0KKFhFTikgSFZNOiBBU0lEcyBlbmFibGVkLg0KKFhF
TikgSFZNOiBWTVggZW5hYmxlZA0KKFhFTikgSFZNOiBIYXJkd2FyZSBBc3Npc3RlZCBQYWdpbmcg
KEhBUCkgZGV0ZWN0ZWQNCihYRU4pIEhWTTogSEFQIHBhZ2Ugc2l6ZXM6IDRrQiwgMk1CLCAxR0IN
CihYRU4pIG1pY3JvY29kZTogQ1BVMiB1cGRhdGVkIGZyb20gcmV2aXNpb24gMHhlYSB0byAweGY0
LCBkYXRlID0gMjAyMi0wNy0zMQ0KKFhFTikgbWljcm9jb2RlOiBDUFU0IHVwZGF0ZWQgZnJvbSBy
ZXZpc2lvbiAweGVhIHRvIDB4ZjQsIGRhdGUgPSAyMDIyLTA3LTMxDQooWEVOKSBtaWNyb2NvZGU6
IENQVTYgdXBkYXRlZCBmcm9tIHJldmlzaW9uIDB4ZWEgdG8gMHhmNCwgZGF0ZSA9IDIwMjItMDct
MzENCihYRU4pIG1pY3JvY29kZTogQ1BVOCB1cGRhdGVkIGZyb20gcmV2aXNpb24gMHhlYSB0byAw
eGY0LCBkYXRlID0gMjAyMi0wNy0zMQ0KKFhFTikgbWljcm9jb2RlOiBDUFUxMCB1cGRhdGVkIGZy
b20gcmV2aXNpb24gMHhlYSB0byAweGY0LCBkYXRlID0gMjAyMi0wNy0zMQ0KKFhFTikgQnJvdWdo
dCB1cCAxMiBDUFVzDQooWEVOKSBTY2hlZHVsaW5nIGdyYW51bGFyaXR5OiBjcHUsIDEgQ1BVIHBl
ciBzY2hlZC1yZXNvdXJjZQ0KKFhFTikgRG9tMCBoYXMgbWF4aW11bSA5NTIgUElSUXMNCihYRU4p
IENQVTA6IFRlbXBlcmF0dXJlIGFib3ZlIHRocmVzaG9sZA0KKFhFTikgQ1BVMTogVGVtcGVyYXR1
cmUgYWJvdmUgdGhyZXNob2xkDQooWEVOKSBDUFUwOiBSdW5uaW5nIGluIG1vZHVsYXRlZCBjbG9j
ayBtb2RlDQooWEVOKSBDUFUxOiBSdW5uaW5nIGluIG1vZHVsYXRlZCBjbG9jayBtb2RlDQooWEVO
KSAmbmJzcDtYZW4gJm5ic3A7a2VybmVsOiA2NC1iaXQsIGxzYiwgY29tcGF0MzINCihYRU4pICZu
YnNwO0RvbTAga2VybmVsOiA2NC1iaXQsIFBBRSwgbHNiLCBwYWRkciAweDEwMDAwMDAgLSZndDsg
MHg0MDAwMDAwDQooWEVOKSBQSFlTSUNBTCBNRU1PUlkgQVJSQU5HRU1FTlQ6DQooWEVOKSAmbmJz
cDtEb20wIGFsbG9jLjogJm5ic3A7IDAwMDAwMDA0NDAwMDAwMDAtJmd0OzAwMDAwMDA0NDgwMDAw
MDAgKDEwMDc2MTkgcGFnZXMgdG8gYmUgYWxsb2NhdGVkKQ0KKFhFTikgJm5ic3A7SW5pdC4gcmFt
ZGlzazogMDAwMDAwMDQ1YzgwMzAwMC0mZ3Q7MDAwMDAwMDQ1ZTdmZmY1Zg0KKFhFTikgVklSVFVB
TCBNRU1PUlkgQVJSQU5HRU1FTlQ6DQooWEVOKSAmbmJzcDtMb2FkZWQga2VybmVsOiBmZmZmZmZm
ZjgxMDAwMDAwLSZndDtmZmZmZmZmZjg0MDAwMDAwDQooWEVOKSAmbmJzcDtJbml0LiByYW1kaXNr
OiAwMDAwMDAwMDAwMDAwMDAwLSZndDswMDAwMDAwMDAwMDAwMDAwDQooWEVOKSAmbmJzcDtQaHlz
LU1hY2ggbWFwOiAwMDAwMDA4MDAwMDAwMDAwLSZndDswMDAwMDA4MDAwODAwMDAwDQooWEVOKSAm
bmJzcDtTdGFydCBpbmZvOiAmbmJzcDsgJm5ic3A7ZmZmZmZmZmY4NDAwMDAwMC0mZ3Q7ZmZmZmZm
ZmY4NDAwMDRiOA0KKFhFTikgJm5ic3A7WGVuc3RvcmUgcmluZzogMDAwMDAwMDAwMDAwMDAwMC0m
Z3Q7MDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgJm5ic3A7Q29uc29sZSByaW5nOiAmbmJzcDswMDAw
MDAwMDAwMDAwMDAwLSZndDswMDAwMDAwMDAwMDAwMDAwDQooWEVOKSAmbmJzcDtQYWdlIHRhYmxl
czogJm5ic3A7IGZmZmZmZmZmODQwMDEwMDAtJmd0O2ZmZmZmZmZmODQwMjYwMDANCihYRU4pICZu
YnNwO0Jvb3Qgc3RhY2s6ICZuYnNwOyAmbmJzcDtmZmZmZmZmZjg0MDI2MDAwLSZndDtmZmZmZmZm
Zjg0MDI3MDAwDQooWEVOKSAmbmJzcDtUT1RBTDogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IGZmZmZmZmZmODAwMDAwMDAtJmd0O2ZmZmZmZmZmODQ0MDAwMDANCihYRU4pICZuYnNwO0VOVFJZ
IEFERFJFU1M6IGZmZmZmZmZmODMwZmUxYzANCihYRU4pIERvbTAgaGFzIG1heGltdW0gMTIgVkNQ
VXMNCihYRU4pIEluaXRpYWwgbG93IG1lbW9yeSB2aXJxIHRocmVzaG9sZCBzZXQgYXQgMHg0MDAw
IHBhZ2VzLg0KKFhFTikgU2NydWJiaW5nIEZyZWUgUkFNIGluIGJhY2tncm91bmQNCihYRU4pIFN0
ZC4gTG9nbGV2ZWw6IEVycm9ycyBhbmQgd2FybmluZ3MNCihYRU4pIEd1ZXN0IExvZ2xldmVsOiBO
b3RoaW5nIChSYXRlLWxpbWl0ZWQ6IEVycm9ycyBhbmQgd2FybmluZ3MpDQooWEVOKSAqKiogU2Vy
aWFsIGlucHV0IHRvIERPTTAgKHR5cGUgJ0NUUkwtYScgdGhyZWUgdGltZXMgdG8gc3dpdGNoIGlu
cHV0KQ0KKFhFTikgRnJlZWQgNjAwa0IgaW5pdCBtZW1vcnkNCg0KDQokc3VkbyBkbWVzZw0KWyAm
bmJzcDsgJm5ic3A7MC4wMDAwMDBdIExpbnV4IHZlcnNpb24gNS4xNS45NC0xLnF1YmVzLmZjMzIu
eDg2XzY0IChtb2NrYnVpbGRANzg5OTA1YzA5ZTBjNDM5NGFmYTQ1ODUzY2ViZTlmYjIpIChnY2Mg
KEdDQykgMTAuMy4xIDIwMjEwNDIyIChSZWQgSGF0IDEwLjMuMS0xKSwgR05VIGxkIHZlcnNpb24g
Mi4zNC02LmZjMzIpICMxIFNNUCBTdW4gRmViIDE5IDA3OjE4OjQ2IENFVCAyMDIzDQpbICZuYnNw
OyAmbmJzcDswLjAwMDAwMF0gQ29tbWFuZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVVSUQ9OWI4
MGI5YzktNWE2My00OGY2LThmZmYtZGNkYmMyMDFiMWRkIHJvIHJkLmx1a3MudXVpZD1sdWtzLTM2
OTliZmQ5LWI2N2UtNDFhMi04M2VlLWMyYjU2ZmJhZTFhMiBwbHltb3V0aC5pZ25vcmUtc2VyaWFs
LWNvbnNvbGVzIHJkLmRyaXZlci5wcmU9YnRyZnMgcmhnYiBxdWlldCB1c2Jjb3JlLmF1dGhvcml6
ZWRfZGVmYXVsdD0wDQpbICZuYnNwOyAmbmJzcDswLjAwMDAwMF0geDg2L2ZwdTogU3VwcG9ydGlu
ZyBYU0FWRSBmZWF0dXJlIDB4MDAxOiAneDg3IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycycNClsg
Jm5ic3A7ICZuYnNwOzAuMDAwMDAwXSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUg
MHgwMDI6ICdTU0UgcmVnaXN0ZXJzJw0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIHg4Ni9mcHU6
IFN1cHBvcnRpbmcgWFNBVkUgZmVhdHVyZSAweDAwNDogJ0FWWCByZWdpc3RlcnMnDQpbICZuYnNw
OyAmbmJzcDswLjAwMDAwMF0geDg2L2ZwdTogeHN0YXRlX29mZnNldFsyXTogJm5ic3A7NTc2LCB4
c3RhdGVfc2l6ZXNbMl06ICZuYnNwOzI1Ng0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIHg4Ni9m
cHU6IEVuYWJsZWQgeHN0YXRlIGZlYXR1cmVzIDB4NywgY29udGV4dCBzaXplIGlzIDgzMiBieXRl
cywgdXNpbmcgJ3N0YW5kYXJkJyBmb3JtYXQuDQpbICZuYnNwOyAmbmJzcDswLjAwMDAwMF0gc2ln
bmFsOiBtYXggc2lnZnJhbWUgc2l6ZTogMTc3Ng0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIFJl
bGVhc2VkIDAgcGFnZShzKQ0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIEJJT1MtcHJvdmlkZWQg
cGh5c2ljYWwgUkFNIG1hcDoNClsgJm5ic3A7ICZuYnNwOzAuMDAwMDAwXSBYZW46IFttZW0gMHgw
MDAwMDAwMDAwMDAwMDAwLTB4MDAwMDAwMDAwMDA5ZWZmZl0gdXNhYmxlDQpbICZuYnNwOyAmbmJz
cDswLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDAwMDA5ZjAwMC0weDAwMDAwMDAwMDAwZmZm
ZmZdIHJlc2VydmVkDQpbICZuYnNwOyAmbmJzcDswLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAw
MDAwMDEwMDAwMC0weDAwMDAwMDAwODhkNTdmZmZdIHVzYWJsZQ0KWyAmbmJzcDsgJm5ic3A7MC4w
MDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwODhkNTgwMDAtMHgwMDAwMDAwMDg5NjU3ZmZmXSBy
ZXNlcnZlZA0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwODk2
NTgwMDAtMHgwMDAwMDAwMDk3ODZkZmZmXSB1c2FibGUNClsgJm5ic3A7ICZuYnNwOzAuMDAwMDAw
XSBYZW46IFttZW0gMHgwMDAwMDAwMDk3ODZlMDAwLTB4MDAwMDAwMDA5OGQ2ZGZmZl0gcmVzZXJ2
ZWQNClsgJm5ic3A7ICZuYnNwOzAuMDAwMDAwXSBYZW46IFttZW0gMHgwMDAwMDAwMDk4ZDZlMDAw
LTB4MDAwMDAwMDA5OWJjZGZmZl0gQUNQSSBOVlMNClsgJm5ic3A7ICZuYnNwOzAuMDAwMDAwXSBY
ZW46IFttZW0gMHgwMDAwMDAwMDk5YmNlMDAwLTB4MDAwMDAwMDA5OWM0ZGZmZl0gQUNQSSBkYXRh
DQpbICZuYnNwOyAmbmJzcDswLjAwMDAwMF0gWGVuOiBbbWVtIDB4MDAwMDAwMDA5OWM0ZTAwMC0w
eDAwMDAwMDAwOTljNGVmZmZdIHVzYWJsZQ0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIFhlbjog
W21lbSAweDAwMDAwMDAwOTljNGYwMDAtMHgwMDAwMDAwMDlmN2ZmZmZmXSByZXNlcnZlZA0KWyAm
bmJzcDsgJm5ic3A7MC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwZTAwMDAwMDAtMHgwMDAw
MDAwMGVmZmZmZmZmXSByZXNlcnZlZA0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIFhlbjogW21l
bSAweDAwMDAwMDAwZmUwMDAwMDAtMHgwMDAwMDAwMGZlMDEwZmZmXSByZXNlcnZlZA0KWyAmbmJz
cDsgJm5ic3A7MC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwZmVjMDAwMDAtMHgwMDAwMDAw
MGZlYzAwZmZmXSByZXNlcnZlZA0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIFhlbjogW21lbSAw
eDAwMDAwMDAwZmVkMTAwMDAtMHgwMDAwMDAwMGZlZDE5ZmZmXSByZXNlcnZlZA0KWyAmbmJzcDsg
Jm5ic3A7MC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwZmVkODQwMDAtMHgwMDAwMDAwMGZl
ZDg0ZmZmXSByZXNlcnZlZA0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIFhlbjogW21lbSAweDAw
MDAwMDAwZmVkOTAwMDAtMHgwMDAwMDAwMGZlZDkxZmZmXSByZXNlcnZlZA0KWyAmbmJzcDsgJm5i
c3A7MC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAwZmVlMDAwMDAtMHgwMDAwMDAwMGZlZWZm
ZmZmXSByZXNlcnZlZA0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAw
MDAwZmYzMDAwMDAtMHgwMDAwMDAwMGZmZmZmZmZmXSByZXNlcnZlZA0KWyAmbmJzcDsgJm5ic3A7
MC4wMDAwMDBdIFhlbjogW21lbSAweDAwMDAwMDAxMDAwMDAwMDAtMHgwMDAwMDAwMTY5MGYxZmZm
XSB1c2FibGUNClsgJm5ic3A7ICZuYnNwOzAuMDAwMDAwXSBOWCAoRXhlY3V0ZSBEaXNhYmxlKSBw
cm90ZWN0aW9uOiBhY3RpdmUNClsgJm5ic3A7ICZuYnNwOzAuMDAwMDAwXSBlZmk6IEVGSSB2Mi43
MCBieSBJTlNZREUgQ29ycC4NClsgJm5ic3A7ICZuYnNwOzAuMDAwMDAwXSBlZmk6IEFDUEk9MHg5
OWM0ZDAwMCBBQ1BJIDIuMD0weDk5YzRkMDE0IFRQTUZpbmFsTG9nPTB4OTliNTkwMDAgRVNSVD0w
eDk3ZGUxMDE4IFNNQklPUz0weDk3ZGUwMDAwIFNNQklPUyAzLjA9MHg5N2RkZTAwMCANClsgJm5i
c3A7ICZuYnNwOzAuMDAwMDAwXSBTTUJJT1MgMy4yLjAgcHJlc2VudC4NClsgJm5ic3A7ICZuYnNw
OzAuMDAwMDAwXSBETUk6IEFjZXIgUHJlZGF0b3IgUEgzMTUtNTMvUVg1MF9DTVMsIEJJT1MgVjIu
MDQgMDgvMjAvMjAyMQ0KWyAmbmJzcDsgJm5ic3A7MC4wMDAwMDBdIEh5cGVydmlzb3IgZGV0ZWN0
ZWQ6IFhlbiBQVg0KWyAmbmJzcDsgJm5ic3A7MC4wMDA1MzFdIHRzYzogRGV0ZWN0ZWQgMjU5Mi4w
MjAgTUh6IHByb2Nlc3Nvcg0KWyAmbmJzcDsgJm5ic3A7MC4wMDA1NDNdIGU4MjA6IHVwZGF0ZSBb
bWVtIDB4MDAwMDAwMDAtMHgwMDAwMGZmZl0gdXNhYmxlID09Jmd0OyByZXNlcnZlZA0KWyAmbmJz
cDsgJm5ic3A7MC4wMDA1NDZdIGU4MjA6IHJlbW92ZSBbbWVtIDB4MDAwYTAwMDAtMHgwMDBmZmZm
Zl0gdXNhYmxlDQpbICZuYnNwOyAmbmJzcDswLjAwMDU1M10gbGFzdF9wZm4gPSAweDE2OTBmMiBt
YXhfYXJjaF9wZm4gPSAweDQwMDAwMDAwMA0KWyAmbmJzcDsgJm5ic3A7MC4wMDA1NTRdIERpc2Fi
bGVkDQpbICZuYnNwOyAmbmJzcDswLjAwMDU1NV0geDg2L1BBVDogTVRSUnMgZGlzYWJsZWQsIHNr
aXBwaW5nIFBBVCBpbml0aWFsaXphdGlvbiB0b28uDQpbICZuYnNwOyAmbmJzcDswLjAwMDU1OF0g
eDg2L1BBVDogQ29uZmlndXJhdGlvbiBbMC03XTogV0IgJm5ic3A7V0MgJm5ic3A7VUMtIFVDICZu
YnNwO1dCICZuYnNwO1dQICZuYnNwO1VDLSBXVCAmbmJzcDsNClsgJm5ic3A7ICZuYnNwOzAuMDAw
NTU5XSBsYXN0X3BmbiA9IDB4OTljNGYgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDANClsgJm5i
c3A7ICZuYnNwOzAuNDk0NDc0XSBTZWN1cmUgYm9vdCBkaXNhYmxlZA0KWyAmbmJzcDsgJm5ic3A7
MC40OTQ0NzZdIFJBTURJU0s6IFttZW0gMHgwODAwMDAwMC0weDA5ZmZjZmZmXQ0KWyAmbmJzcDsg
Jm5ic3A7MC40OTQ0ODBdIEFDUEk6IEVhcmx5IHRhYmxlIGNoZWNrc3VtIHZlcmlmaWNhdGlvbiBk
aXNhYmxlZA0KWyAmbmJzcDsgJm5ic3A7MC40OTQ0ODVdIEFDUEk6IFJTRFAgMHgwMDAwMDAwMDk5
QzREMDE0IDAwMDAyNCAodjAyIEFDUlNZUykNClsgJm5ic3A7ICZuYnNwOzAuNDk0NDkxXSBBQ1BJ
OiBYU0RUIDB4MDAwMDAwMDA5OUMyNTE4OCAwMDAxMUMgKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAw
MDAwMDIgJm5ic3A7ICZuYnNwOyAmbmJzcDswMTAwMDAxMykNClsgJm5ic3A7ICZuYnNwOzAuNDk0
NTI0XSBBQ1BJOiBGQUNQIDB4MDAwMDAwMDA5OUMyNDAwMCAwMDAxMEMgKHYwNSBBQ1JTWVMgQUNS
UFJEQ1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NTg2XSBB
Q1BJOiBEU0RUIDB4MDAwMDAwMDA5OUJEQjAwMCAwNDUyRjEgKHYwMiBBQ1JTWVMgQUNSUFJEQ1Qg
MDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NTkzXSBBQ1BJOiBG
QUNTIDB4MDAwMDAwMDA5OUI0NDAwMCAwMDAwNDANClsgJm5ic3A7ICZuYnNwOzAuNDk0NjAyXSBB
Q1BJOiBVRUZJIDB4MDAwMDAwMDA5OUJDRDAwMCAwMDAyMzYgKHYwMSBBQ1JTWVMgQUNSUFJEQ1Qg
MDAwMDAwMDEgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NjEwXSBBQ1BJOiBT
U0RUIDB4MDAwMDAwMDA5OUM0NzAwMCAwMDQ5N0UgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDEw
MDAgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NjE4XSBBQ1BJOiBTU0RUIDB4
MDAwMDAwMDA5OUM0NjAwMCAwMDAxMDAgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDMwMDAgMTAy
NSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NjI3XSBBQ1BJOiBTU0RUIDB4MDAwMDAw
MDA5OUM0NTAwMCAwMDA4MzQgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDMwMDAgMTAyNSAwMDA0
MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NjM1XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUM0
MjAwMCAwMDIwQUQgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDMwMDAgMTAyNSAwMDA0MDAwMCkN
ClsgJm5ic3A7ICZuYnNwOzAuNDk0NjQzXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUMzRTAwMCAw
MDMxREEgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDMwMDAgMTAyNSAwMDA0MDAwMCkNClsgJm5i
c3A7ICZuYnNwOzAuNDk0NjUyXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUMzQjAwMCAwMDJDNDgg
KHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDEwMDAgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZu
YnNwOzAuNDk0NjYwXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUMzQTAwMCAwMDA0NUEgKHYwMiBB
Q1JTWVMgQUNSUFJEQ1QgMDAwMDEwMDAgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAu
NDk0NjY4XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUMzOTAwMCAwMDAwNDYgKHYwMiBBQ1JTWVMg
QUNSUFJEQ1QgMDAwMDMwMDAgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0Njc4
XSBBQ1BJOiBUUE0yIDB4MDAwMDAwMDA5OUMzODAwMCAwMDAwMzQgKHYwMyBBQ1JTWVMgQUNSUFJE
Q1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0Njg2XSBBQ1BJ
OiBMUElUIDB4MDAwMDAwMDA5OUMzNzAwMCAwMDAwOTQgKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAw
MDAwMDIgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0Njk1XSBBQ1BJOiBXU01U
IDB4MDAwMDAwMDA5OUMzNjAwMCAwMDAwMjggKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIg
MTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NzA0XSBBQ1BJOiBTU0RUIDB4MDAw
MDAwMDA5OUMzNTAwMCAwMDBCNzAgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDEwMDAgMTAyNSAw
MDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NzEyXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5
OUMzMjAwMCAwMDI1NkYgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDAgMTAyNSAwMDA0MDAw
MCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NzIwXSBBQ1BJOiBEQkdQIDB4MDAwMDAwMDA5OUMzMTAw
MCAwMDAwMzQgKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkNClsg
Jm5ic3A7ICZuYnNwOzAuNDk0NzI4XSBBQ1BJOiBEQkcyIDB4MDAwMDAwMDA5OUMzMDAwMCAwMDAw
NUMgKHYwMCBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7
ICZuYnNwOzAuNDk0NzM3XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUMyRjAwMCAwMDBCOUYgKHYw
MiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDEwMDAgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNw
OzAuNDk0NzQ1XSBBQ1BJOiBNU0RNIDB4MDAwMDAwMDA5OUMyRTAwMCAwMDAwNTUgKHYwMyBBQ1JT
WVMgQUNSUFJEQ1QgMDAwMDAwMDEgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0
NzUzXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUMyNjAwMCAwMDc1NjggKHYwMSBBQ1JTWVMgQUNS
UFJEQ1QgMDAwMDEwMDAgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NzYyXSBB
Q1BJOiBOSExUIDB4MDAwMDAwMDA5OUM0QzAwMCAwMDAyREYgKHYwMCBBQ1JTWVMgQUNSUFJEQ1Qg
MDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0NzcwXSBBQ1BJOiBI
UEVUIDB4MDAwMDAwMDA5OUMyMzAwMCAwMDAwMzggKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAw
MDIgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0Nzc4XSBBQ1BJOiBBUElDIDB4
MDAwMDAwMDA5OUMyMjAwMCAwMDAxNjQgKHYwMyBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIgMTAy
NSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0Nzg2XSBBQ1BJOiBNQ0ZHIDB4MDAwMDAw
MDA5OUMyMTAwMCAwMDAwM0MgKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIgMTAyNSAwMDA0
MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0Nzk2XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUJE
QTAwMCAwMDAxQzQgKHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkN
ClsgJm5ic3A7ICZuYnNwOzAuNDk0ODA0XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUJENjAwMCAw
MDJGRUUgKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDEwMDAgMTAyNSAwMDA0MDAwMCkNClsgJm5i
c3A7ICZuYnNwOzAuNDk0ODEzXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUJENTAwMCAwMDAxNjEg
KHYwMiBBQ1JTWVMgQUNSUFJEQ1QgMDAwMDEwMDAgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZu
YnNwOzAuNDk0ODIxXSBBQ1BJOiBSTUFEIDB4MDAwMDAwMDA5OUJEOTAwMCAwMDAwQTggKHYwMSBB
Q1JTWVMgQUNSUFJEQ1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAu
NDk0ODI5XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDA5OUJENDAwMCAwMDAxNjQgKHYwMSBBQ1JTWVMg
QUNSUFJEQ1QgMDAwMDEwMDAgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0ODM4
XSBBQ1BJOiBGUERUIDB4MDAwMDAwMDA5OUJEMjAwMCAwMDAwNDQgKHYwMSBBQ1JTWVMgQUNSUFJE
Q1QgMDAwMDAwMDIgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0ODQ2XSBBQ1BJ
OiBCR1JUIDB4MDAwMDAwMDA5OUJEMzAwMCAwMDAwMzggKHYwMSBBQ1JTWVMgQUNSUFJEQ1QgMDAw
MDAwMDEgMTAyNSAwMDA0MDAwMCkNClsgJm5ic3A7ICZuYnNwOzAuNDk0ODUwXSBBQ1BJOiBSZXNl
cnZpbmcgRkFDUCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzI0MDAwLTB4OTljMjQxMGJdDQpb
ICZuYnNwOyAmbmJzcDswLjQ5NDg1Ml0gQUNQSTogUmVzZXJ2aW5nIERTRFQgdGFibGUgbWVtb3J5
IGF0IFttZW0gMHg5OWJkYjAwMC0weDk5YzIwMmYwXQ0KWyAmbmJzcDsgJm5ic3A7MC40OTQ4NTNd
IEFDUEk6IFJlc2VydmluZyBGQUNTIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTliNDQwMDAtMHg5
OWI0NDAzZl0NClsgJm5ic3A7ICZuYnNwOzAuNDk0ODU0XSBBQ1BJOiBSZXNlcnZpbmcgVUVGSSB0
YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YmNkMDAwLTB4OTliY2QyMzVdDQpbICZuYnNwOyAmbmJz
cDswLjQ5NDg1NV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5
OWM0NzAwMC0weDk5YzRiOTdkXQ0KWyAmbmJzcDsgJm5ic3A7MC40OTQ4NTZdIEFDUEk6IFJlc2Vy
dmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTljNDYwMDAtMHg5OWM0NjBmZl0NClsg
Jm5ic3A7ICZuYnNwOzAuNDk0ODU2XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkg
YXQgW21lbSAweDk5YzQ1MDAwLTB4OTljNDU4MzNdDQpbICZuYnNwOyAmbmJzcDswLjQ5NDg1N10g
QUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWM0MjAwMC0weDk5
YzQ0MGFjXQ0KWyAmbmJzcDsgJm5ic3A7MC40OTQ4NThdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4OTljM2UwMDAtMHg5OWM0MTFkOV0NClsgJm5ic3A7ICZuYnNw
OzAuNDk0ODU4XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5
YzNiMDAwLTB4OTljM2RjNDddDQpbICZuYnNwOyAmbmJzcDswLjQ5NDg1OV0gQUNQSTogUmVzZXJ2
aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWMzYTAwMC0weDk5YzNhNDU5XQ0KWyAm
bmJzcDsgJm5ic3A7MC40OTQ4NjBdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBh
dCBbbWVtIDB4OTljMzkwMDAtMHg5OWMzOTA0NV0NClsgJm5ic3A7ICZuYnNwOzAuNDk0ODYwXSBB
Q1BJOiBSZXNlcnZpbmcgVFBNMiB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzM4MDAwLTB4OTlj
MzgwMzNdDQpbICZuYnNwOyAmbmJzcDswLjQ5NDg2MV0gQUNQSTogUmVzZXJ2aW5nIExQSVQgdGFi
bGUgbWVtb3J5IGF0IFttZW0gMHg5OWMzNzAwMC0weDk5YzM3MDkzXQ0KWyAmbmJzcDsgJm5ic3A7
MC40OTQ4NjJdIEFDUEk6IFJlc2VydmluZyBXU01UIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTlj
MzYwMDAtMHg5OWMzNjAyN10NClsgJm5ic3A7ICZuYnNwOzAuNDk0ODYyXSBBQ1BJOiBSZXNlcnZp
bmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzM1MDAwLTB4OTljMzViNmZdDQpbICZu
YnNwOyAmbmJzcDswLjQ5NDg2M10gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0
IFttZW0gMHg5OWMzMjAwMC0weDk5YzM0NTZlXQ0KWyAmbmJzcDsgJm5ic3A7MC40OTQ4NjRdIEFD
UEk6IFJlc2VydmluZyBEQkdQIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTljMzEwMDAtMHg5OWMz
MTAzM10NClsgJm5ic3A7ICZuYnNwOzAuNDk0ODY0XSBBQ1BJOiBSZXNlcnZpbmcgREJHMiB0YWJs
ZSBtZW1vcnkgYXQgW21lbSAweDk5YzMwMDAwLTB4OTljMzAwNWJdDQpbICZuYnNwOyAmbmJzcDsw
LjQ5NDg2NV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWMy
ZjAwMC0weDk5YzJmYjllXQ0KWyAmbmJzcDsgJm5ic3A7MC40OTQ4NjZdIEFDUEk6IFJlc2Vydmlu
ZyBNU0RNIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTljMmUwMDAtMHg5OWMyZTA1NF0NClsgJm5i
c3A7ICZuYnNwOzAuNDk0ODY2XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQg
W21lbSAweDk5YzI2MDAwLTB4OTljMmQ1NjddDQpbICZuYnNwOyAmbmJzcDswLjQ5NDg2N10gQUNQ
STogUmVzZXJ2aW5nIE5ITFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWM0YzAwMC0weDk5YzRj
MmRlXQ0KWyAmbmJzcDsgJm5ic3A7MC40OTQ4NjhdIEFDUEk6IFJlc2VydmluZyBIUEVUIHRhYmxl
IG1lbW9yeSBhdCBbbWVtIDB4OTljMjMwMDAtMHg5OWMyMzAzN10NClsgJm5ic3A7ICZuYnNwOzAu
NDk0ODY5XSBBQ1BJOiBSZXNlcnZpbmcgQVBJQyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YzIy
MDAwLTB4OTljMjIxNjNdDQpbICZuYnNwOyAmbmJzcDswLjQ5NDg2OV0gQUNQSTogUmVzZXJ2aW5n
IE1DRkcgdGFibGUgbWVtb3J5IGF0IFttZW0gMHg5OWMyMTAwMC0weDk5YzIxMDNiXQ0KWyAmbmJz
cDsgJm5ic3A7MC40OTQ4NzBdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBb
bWVtIDB4OTliZGEwMDAtMHg5OWJkYTFjM10NClsgJm5ic3A7ICZuYnNwOzAuNDk0ODcxXSBBQ1BJ
OiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YmQ2MDAwLTB4OTliZDhm
ZWRdDQpbICZuYnNwOyAmbmJzcDswLjQ5NDg3Ml0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUg
bWVtb3J5IGF0IFttZW0gMHg5OWJkNTAwMC0weDk5YmQ1MTYwXQ0KWyAmbmJzcDsgJm5ic3A7MC40
OTQ4NzJdIEFDUEk6IFJlc2VydmluZyBSTUFEIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTliZDkw
MDAtMHg5OWJkOTBhN10NClsgJm5ic3A7ICZuYnNwOzAuNDk0ODczXSBBQ1BJOiBSZXNlcnZpbmcg
U1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDk5YmQ0MDAwLTB4OTliZDQxNjNdDQpbICZuYnNw
OyAmbmJzcDswLjQ5NDg3NF0gQUNQSTogUmVzZXJ2aW5nIEZQRFQgdGFibGUgbWVtb3J5IGF0IFtt
ZW0gMHg5OWJkMjAwMC0weDk5YmQyMDQzXQ0KWyAmbmJzcDsgJm5ic3A7MC40OTQ4NzRdIEFDUEk6
IFJlc2VydmluZyBCR1JUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4OTliZDMwMDAtMHg5OWJkMzAz
N10NClsgJm5ic3A7ICZuYnNwOzAuNDk0ODk5XSBTZXR0aW5nIEFQSUMgcm91dGluZyB0byBYZW4g
UFYuDQpbICZuYnNwOyAmbmJzcDswLjQ5NDkyN10gTlVNQSB0dXJuZWQgb2ZmDQpbICZuYnNwOyAm
bmJzcDswLjQ5NDkyOF0gRmFraW5nIGEgbm9kZSBhdCBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0w
eDAwMDAwMDAxNjkwZjFmZmZdDQpbICZuYnNwOyAmbmJzcDswLjQ5NDkzN10gTk9ERV9EQVRBKDAp
IGFsbG9jYXRlZCBbbWVtIDB4OTcwNmYwMDAtMHg5NzA5OWZmZl0NClsgJm5ic3A7ICZuYnNwOzAu
NTExMDExXSBab25lIHJhbmdlczoNClsgJm5ic3A7ICZuYnNwOzAuNTExMDEzXSAmbmJzcDsgRE1B
ICZuYnNwOyAmbmJzcDsgJm5ic3A7W21lbSAweDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwMDAw
ZmZmZmZmXQ0KWyAmbmJzcDsgJm5ic3A7MC41MTEwMTVdICZuYnNwOyBETUEzMiAmbmJzcDsgJm5i
c3A7W21lbSAweDAwMDAwMDAwMDEwMDAwMDAtMHgwMDAwMDAwMGZmZmZmZmZmXQ0KWyAmbmJzcDsg
Jm5ic3A7MC41MTEwMTZdICZuYnNwOyBOb3JtYWwgJm5ic3A7IFttZW0gMHgwMDAwMDAwMTAwMDAw
MDAwLTB4MDAwMDAwMDE2OTBmMWZmZl0NClsgJm5ic3A7ICZuYnNwOzAuNTExMDE4XSAmbmJzcDsg
RGV2aWNlICZuYnNwOyBlbXB0eQ0KWyAmbmJzcDsgJm5ic3A7MC41MTEwMThdIE1vdmFibGUgem9u
ZSBzdGFydCBmb3IgZWFjaCBub2RlDQpbICZuYnNwOyAmbmJzcDswLjUxMTAyMF0gRWFybHkgbWVt
b3J5IG5vZGUgcmFuZ2VzDQpbICZuYnNwOyAmbmJzcDswLjUxMTAyMV0gJm5ic3A7IG5vZGUgJm5i
c3A7IDA6IFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDAwMDA5ZWZmZl0NClsgJm5i
c3A7ICZuYnNwOzAuNTExMDIyXSAmbmJzcDsgbm9kZSAmbmJzcDsgMDogW21lbSAweDAwMDAwMDAw
MDAxMDAwMDAtMHgwMDAwMDAwMDg4ZDU3ZmZmXQ0KWyAmbmJzcDsgJm5ic3A7MC41MTEwMjNdICZu
YnNwOyBub2RlICZuYnNwOyAwOiBbbWVtIDB4MDAwMDAwMDA4OTY1ODAwMC0weDAwMDAwMDAwOTc4
NmRmZmZdDQpbICZuYnNwOyAmbmJzcDswLjUxMTAyNF0gJm5ic3A7IG5vZGUgJm5ic3A7IDA6IFtt
ZW0gMHgwMDAwMDAwMDk5YzRlMDAwLTB4MDAwMDAwMDA5OWM0ZWZmZl0NClsgJm5ic3A7ICZuYnNw
OzAuNTExMDI0XSAmbmJzcDsgbm9kZSAmbmJzcDsgMDogW21lbSAweDAwMDAwMDAxMDAwMDAwMDAt
MHgwMDAwMDAwMTY5MGYxZmZmXQ0KWyAmbmJzcDsgJm5ic3A7MC41MTEwMjZdIEluaXRtZW0gc2V0
dXAgbm9kZSAwIFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDE2OTBmMWZmZl0NClsg
Jm5ic3A7ICZuYnNwOzAuNTExMDI5XSBPbiBub2RlIDAsIHpvbmUgRE1BOiAxIHBhZ2VzIGluIHVu
YXZhaWxhYmxlIHJhbmdlcw0KWyAmbmJzcDsgJm5ic3A7MC41MTEwNTRdIE9uIG5vZGUgMCwgem9u
ZSBETUE6IDk3IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcw0KWyAmbmJzcDsgJm5ic3A7MC41
MTQ5MjRdIE9uIG5vZGUgMCwgem9uZSBETUEzMjogMjMwNCBwYWdlcyBpbiB1bmF2YWlsYWJsZSBy
YW5nZXMNClsgJm5ic3A7ICZuYnNwOzAuNTE1MDE4XSBPbiBub2RlIDAsIHpvbmUgRE1BMzI6IDkx
ODQgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzDQpbICZuYnNwOyAmbmJzcDswLjUxNzk5NV0g
T24gbm9kZSAwLCB6b25lIE5vcm1hbDogMjU1MjEgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2Vz
DQpbICZuYnNwOyAmbmJzcDswLjUxODI2M10gT24gbm9kZSAwLCB6b25lIE5vcm1hbDogMjg0MzAg
cGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzDQpbICZuYnNwOyAmbmJzcDswLjUxODI2NF0gcDJt
IHZpcnR1YWwgYXJlYSBhdCAoX19fX3B0cnZhbF9fX18pLCBzaXplIGlzIDQwMDAwMDAwDQpbICZu
YnNwOyAmbmJzcDsxLjAyNzAwNF0gUmVtYXBwZWQgNDMwMzIyIHBhZ2UocykNClsgJm5ic3A7ICZu
YnNwOzEuMDI3MTMyXSBSZXNlcnZpbmcgSW50ZWwgZ3JhcGhpY3MgbWVtb3J5IGF0IFttZW0gMHg5
YjgwMDAwMC0weDlmN2ZmZmZmXQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjc5NDVdIEFDUEk6IFBNLVRp
bWVyIElPIFBvcnQ6IDB4MTgwOA0KWyAmbmJzcDsgJm5ic3A7MS4wMjc5OTRdIEFDUEk6IExBUElD
X05NSSAoYWNwaV9pZFsweDAxXSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7
MS4wMjc5OTddIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDAyXSBoaWdoIGVkZ2UgbGludFsw
eDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMDJdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsw
eDAzXSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMDRdIEFDUEk6
IExBUElDX05NSSAoYWNwaV9pZFsweDA0XSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsg
Jm5ic3A7MS4wMjgwMDZdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDA1XSBoaWdoIGVkZ2Ug
bGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMDddIEFDUEk6IExBUElDX05NSSAoYWNw
aV9pZFsweDA2XSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMDhd
IEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDA3XSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAm
bmJzcDsgJm5ic3A7MS4wMjgwMTBdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDA4XSBoaWdo
IGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMTFdIEFDUEk6IExBUElDX05N
SSAoYWNwaV9pZFsweDA5XSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4w
MjgwMTJdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDBhXSBoaWdoIGVkZ2UgbGludFsweDFd
KQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMTNdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDBi
XSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMTVdIEFDUEk6IExB
UElDX05NSSAoYWNwaV9pZFsweDBjXSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5i
c3A7MS4wMjgwMTZdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDBkXSBoaWdoIGVkZ2UgbGlu
dFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMTddIEFDUEk6IExBUElDX05NSSAoYWNwaV9p
ZFsweDBlXSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMThdIEFD
UEk6IExBUElDX05NSSAoYWNwaV9pZFsweDBmXSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJz
cDsgJm5ic3A7MS4wMjgwMTldIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDEwXSBoaWdoIGVk
Z2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMjFdIEFDUEk6IExBUElDX05NSSAo
YWNwaV9pZFsweDExXSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgw
MjJdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDEyXSBoaWdoIGVkZ2UgbGludFsweDFdKQ0K
WyAmbmJzcDsgJm5ic3A7MS4wMjgwMjNdIEFDUEk6IExBUElDX05NSSAoYWNwaV9pZFsweDEzXSBo
aWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgwMjRdIEFDUEk6IExBUElD
X05NSSAoYWNwaV9pZFsweDE0XSBoaWdoIGVkZ2UgbGludFsweDFdKQ0KWyAmbmJzcDsgJm5ic3A7
MS4wMjgwOTFdIElPQVBJQ1swXTogYXBpY19pZCAyLCB2ZXJzaW9uIDMyLCBhZGRyZXNzIDB4ZmVj
MDAwMDAsIEdTSSAwLTExOQ0KWyAmbmJzcDsgJm5ic3A7MS4wMjgxMDNdIEFDUEk6IElOVF9TUkNf
T1ZSIChidXMgMCBidXNfaXJxIDAgZ2xvYmFsX2lycSAyIGRmbCBkZmwpDQpbICZuYnNwOyAmbmJz
cDsxLjAyODEwNl0gQUNQSTogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgOSBnbG9iYWxfaXJx
IDkgaGlnaCBsZXZlbCkNClsgJm5ic3A7ICZuYnNwOzEuMDI4MTMwXSBBQ1BJOiBVc2luZyBBQ1BJ
IChNQURUKSBmb3IgU01QIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24NClsgJm5ic3A7ICZuYnNw
OzEuMDI4MTMyXSBBQ1BJOiBIUEVUIGlkOiAweDgwODZhMjAxIGJhc2U6IDB4ZmVkMDAwMDANClsg
Jm5ic3A7ICZuYnNwOzEuMDMwNDM2XSBzbXBib290OiBBbGxvd2luZyAxMiBDUFVzLCAwIGhvdHBs
dWcgQ1BVcw0KWyAmbmJzcDsgJm5ic3A7MS4wMzA0NTVdIFttZW0gMHg5ZjgwMDAwMC0weGRmZmZm
ZmZmXSBhdmFpbGFibGUgZm9yIFBDSSBkZXZpY2VzDQpbICZuYnNwOyAmbmJzcDsxLjAzMDQ1N10g
Qm9vdGluZyBrZXJuZWwgb24gWGVuDQpbICZuYnNwOyAmbmJzcDsxLjAzMDQ1OF0gWGVuIHZlcnNp
b246IDQuMTQuNSAocHJlc2VydmUtQUQpDQpbICZuYnNwOyAmbmJzcDsxLjAzMDQ2MF0gY2xvY2tz
b3VyY2U6IHJlZmluZWQtamlmZmllczogbWFzazogMHhmZmZmZmZmZiBtYXhfY3ljbGVzOiAweGZm
ZmZmZmZmLCBtYXhfaWRsZV9uczogMTkxMDk2OTk0MDM5MTQxOSBucw0KWyAmbmJzcDsgJm5ic3A7
MS4wMzQ0MjFdIHNldHVwX3BlcmNwdTogTlJfQ1BVUzo4MTkyIG5yX2NwdW1hc2tfYml0czoxMiBu
cl9jcHVfaWRzOjEyIG5yX25vZGVfaWRzOjENClsgJm5ic3A7ICZuYnNwOzEuMDM0NjUwXSBwZXJj
cHU6IEVtYmVkZGVkIDYxIHBhZ2VzL2NwdSBzMjEyOTkyIHI4MTkyIGQyODY3MiB1MjYyMTQ0DQpb
ICZuYnNwOyAmbmJzcDsxLjAzNDY1Nl0gcGNwdS1hbGxvYzogczIxMjk5MiByODE5MiBkMjg2NzIg
dTI2MjE0NCBhbGxvYz0xKjIwOTcxNTINClsgJm5ic3A7ICZuYnNwOzEuMDM0NjU5XSBwY3B1LWFs
bG9jOiBbMF0gMDAgMDEgMDIgMDMgMDQgMDUgMDYgMDcgWzBdIDA4IDA5IDEwIDExIC0tIC0tIC0t
IC0tIA0KWyAmbmJzcDsgJm5ic3A7MS4wMzQ3MDZdIHhlbjogUFYgc3BpbmxvY2tzIGVuYWJsZWQN
ClsgJm5ic3A7ICZuYnNwOzEuMDM0NzEwXSBQViBxc3BpbmxvY2sgaGFzaCB0YWJsZSBlbnRyaWVz
OiAyNTYgKG9yZGVyOiAwLCA0MDk2IGJ5dGVzLCBsaW5lYXIpDQpbICZuYnNwOyAmbmJzcDsxLjAz
NDcxNV0gQnVpbHQgMSB6b25lbGlzdHMsIG1vYmlsaXR5IGdyb3VwaW5nIG9uLiAmbmJzcDtUb3Rh
bCBwYWdlczogMTAzMjAzMQ0KWyAmbmJzcDsgJm5ic3A7MS4wMzQ3MTZdIFBvbGljeSB6b25lOiBO
b3JtYWwNClsgJm5ic3A7ICZuYnNwOzEuMDM0NzE3XSBLZXJuZWwgY29tbWFuZCBsaW5lOiBwbGFj
ZWhvbGRlciByb290PVVVSUQ9OWI4MGI5YzktNWE2My00OGY2LThmZmYtZGNkYmMyMDFiMWRkIHJv
IHJkLmx1a3MudXVpZD1sdWtzLTM2OTliZmQ5LWI2N2UtNDFhMi04M2VlLWMyYjU2ZmJhZTFhMiBw
bHltb3V0aC5pZ25vcmUtc2VyaWFsLWNvbnNvbGVzIHJkLmRyaXZlci5wcmU9YnRyZnMgcmhnYiBx
dWlldCB1c2Jjb3JlLmF1dGhvcml6ZWRfZGVmYXVsdD0wDQpbICZuYnNwOyAmbmJzcDsxLjAzNDgw
NF0gVW5rbm93biBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMgInBsYWNlaG9sZGVyIHJo
Z2IiLCB3aWxsIGJlIHBhc3NlZCB0byB1c2VyIHNwYWNlLg0KWyAmbmJzcDsgJm5ic3A7MS4wMzQ5
NTNdIERlbnRyeSBjYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDUyNDI4OCAob3JkZXI6IDEwLCA0
MTk0MzA0IGJ5dGVzLCBsaW5lYXIpDQpbICZuYnNwOyAmbmJzcDsxLjAzNTAyMl0gSW5vZGUtY2Fj
aGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAyNjIxNDQgKG9yZGVyOiA5LCAyMDk3MTUyIGJ5dGVzLCBs
aW5lYXIpDQpbICZuYnNwOyAmbmJzcDsxLjAzNTcyMl0gbWVtIGF1dG8taW5pdDogc3RhY2s6Ynly
ZWZfYWxsKHplcm8pLCBoZWFwIGFsbG9jOm9uLCBoZWFwIGZyZWU6b24NClsgJm5ic3A7ICZuYnNw
OzEuMDM1NzI0XSBtZW0gYXV0by1pbml0OiBjbGVhcmluZyBzeXN0ZW0gbWVtb3J5IG1heSB0YWtl
IHNvbWUgdGltZS4uLg0KWyAmbmJzcDsgJm5ic3A7MS4wNjA5OTFdIHNvZnR3YXJlIElPIFRMQjog
bWFwcGVkIFttZW0gMHgwMDAwMDAwMTYzODAwMDAwLTB4MDAwMDAwMDE2NzgwMDAwMF0gKDY0TUIp
DQpbICZuYnNwOyAmbmJzcDsxLjM1Nzk4N10gTWVtb3J5OiAzOTQ3NTQ0Sy80MTk0MzAwSyBhdmFp
bGFibGUgKDE2MzkzSyBrZXJuZWwgY29kZSwgMzUxN0sgcndkYXRhLCA1NzAwSyByb2RhdGEsIDM2
MDRLIGluaXQsIDU3ODRLIGJzcywgMjQ2NTA0SyByZXNlcnZlZCwgMEsgY21hLXJlc2VydmVkKQ0K
WyAmbmJzcDsgJm5ic3A7MS4zNTg2MjldIFNMVUI6IEhXYWxpZ249NjQsIE9yZGVyPTAtMywgTWlu
T2JqZWN0cz0wLCBDUFVzPTEyLCBOb2Rlcz0xDQpbICZuYnNwOyAmbmJzcDsxLjM1OTE0N10gZnRy
YWNlOiBhbGxvY2F0aW5nIDUxNDMwIGVudHJpZXMgaW4gMjAxIHBhZ2VzDQpbICZuYnNwOyAmbmJz
cDsxLjM3NjQ2Nl0gZnRyYWNlOiBhbGxvY2F0ZWQgMjAxIHBhZ2VzIHdpdGggNCBncm91cHMNClsg
Jm5ic3A7ICZuYnNwOzEuMzc2NzM4XSByY3U6IEhpZXJhcmNoaWNhbCBSQ1UgaW1wbGVtZW50YXRp
b24uDQpbICZuYnNwOyAmbmJzcDsxLjM3NjczOV0gcmN1OiAJUkNVIHJlc3RyaWN0aW5nIENQVXMg
ZnJvbSBOUl9DUFVTPTgxOTIgdG8gbnJfY3B1X2lkcz0xMi4NClsgJm5ic3A7ICZuYnNwOzEuMzc2
NzQwXSAJVHJhbXBvbGluZSB2YXJpYW50IG9mIFRhc2tzIFJDVSBlbmFibGVkLg0KWyAmbmJzcDsg
Jm5ic3A7MS4zNzY3NDBdIAlSdWRlIHZhcmlhbnQgb2YgVGFza3MgUkNVIGVuYWJsZWQuDQpbICZu
YnNwOyAmbmJzcDsxLjM3Njc0MV0gCVRyYWNpbmcgdmFyaWFudCBvZiBUYXNrcyBSQ1UgZW5hYmxl
ZC4NClsgJm5ic3A7ICZuYnNwOzEuMzc2NzQxXSByY3U6IFJDVSBjYWxjdWxhdGVkIHZhbHVlIG9m
IHNjaGVkdWxlci1lbmxpc3RtZW50IGRlbGF5IGlzIDEwMCBqaWZmaWVzLg0KWyAmbmJzcDsgJm5i
c3A7MS4zNzY3NDJdIHJjdTogQWRqdXN0aW5nIGdlb21ldHJ5IGZvciByY3VfZmFub3V0X2xlYWY9
MTYsIG5yX2NwdV9pZHM9MTINClsgJm5ic3A7ICZuYnNwOzEuMzgzNzYxXSBVc2luZyBOVUxMIGxl
Z2FjeSBQSUMNClsgJm5ic3A7ICZuYnNwOzEuMzgzNzYyXSBOUl9JUlFTOiA1MjQ1NDQsIG5yX2ly
cXM6IDIxNTIsIHByZWFsbG9jYXRlZCBpcnFzOiAwDQpbICZuYnNwOyAmbmJzcDsxLjM4MzgwMF0g
eGVuOmV2ZW50czogVXNpbmcgRklGTy1iYXNlZCBBQkkNClsgJm5ic3A7ICZuYnNwOzEuMzgzODIw
XSB4ZW46IC0tJmd0OyBwaXJxPTEgLSZndDsgaXJxPTEgKGdzaT0xKQ0KWyAmbmJzcDsgJm5ic3A7
MS4zODM4MjhdIHhlbjogLS0mZ3Q7IHBpcnE9MiAtJmd0OyBpcnE9MiAoZ3NpPTIpDQpbICZuYnNw
OyAmbmJzcDsxLjM4MzgzNV0geGVuOiAtLSZndDsgcGlycT0zIC0mZ3Q7IGlycT0zIChnc2k9MykN
ClsgJm5ic3A7ICZuYnNwOzEuMzgzODQyXSB4ZW46IC0tJmd0OyBwaXJxPTQgLSZndDsgaXJxPTQg
KGdzaT00KQ0KWyAmbmJzcDsgJm5ic3A7MS4zODM4NDhdIHhlbjogLS0mZ3Q7IHBpcnE9NSAtJmd0
OyBpcnE9NSAoZ3NpPTUpDQpbICZuYnNwOyAmbmJzcDsxLjM4Mzg1NV0geGVuOiAtLSZndDsgcGly
cT02IC0mZ3Q7IGlycT02IChnc2k9NikNClsgJm5ic3A7ICZuYnNwOzEuMzgzODYyXSB4ZW46IC0t
Jmd0OyBwaXJxPTcgLSZndDsgaXJxPTcgKGdzaT03KQ0KWyAmbmJzcDsgJm5ic3A7MS4zODM4Njld
IHhlbjogLS0mZ3Q7IHBpcnE9OCAtJmd0OyBpcnE9OCAoZ3NpPTgpDQpbICZuYnNwOyAmbmJzcDsx
LjM4Mzg3Nl0geGVuOiAtLSZndDsgcGlycT05IC0mZ3Q7IGlycT05IChnc2k9OSkNClsgJm5ic3A7
ICZuYnNwOzEuMzgzODgzXSB4ZW46IC0tJmd0OyBwaXJxPTEwIC0mZ3Q7IGlycT0xMCAoZ3NpPTEw
KQ0KWyAmbmJzcDsgJm5ic3A7MS4zODM4OTBdIHhlbjogLS0mZ3Q7IHBpcnE9MTEgLSZndDsgaXJx
PTExIChnc2k9MTEpDQpbICZuYnNwOyAmbmJzcDsxLjM4Mzg5N10geGVuOiAtLSZndDsgcGlycT0x
MiAtJmd0OyBpcnE9MTIgKGdzaT0xMikNClsgJm5ic3A7ICZuYnNwOzEuMzgzOTA0XSB4ZW46IC0t
Jmd0OyBwaXJxPTEzIC0mZ3Q7IGlycT0xMyAoZ3NpPTEzKQ0KWyAmbmJzcDsgJm5ic3A7MS4zODM5
MTFdIHhlbjogLS0mZ3Q7IHBpcnE9MTQgLSZndDsgaXJxPTE0IChnc2k9MTQpDQpbICZuYnNwOyAm
bmJzcDsxLjM4MzkxOF0geGVuOiAtLSZndDsgcGlycT0xNSAtJmd0OyBpcnE9MTUgKGdzaT0xNSkN
ClsgJm5ic3A7ICZuYnNwOzEuMzgzOTQzXSByYW5kb206IGNybmcgaW5pdCBkb25lDQpbICZuYnNw
OyAmbmJzcDsxLjM4Mzk4MF0gQ29uc29sZTogY29sb3VyIGR1bW15IGRldmljZSA4MHgyNQ0KWyAm
bmJzcDsgJm5ic3A7MS4zODM5OTBdIHByaW50azogY29uc29sZSBbdHR5MF0gZW5hYmxlZA0KWyAm
bmJzcDsgJm5ic3A7MS4zODM5OTldIHByaW50azogY29uc29sZSBbaHZjMF0gZW5hYmxlZA0KWyAm
bmJzcDsgJm5ic3A7MS4zODQwMjZdIEFDUEk6IENvcmUgcmV2aXNpb24gMjAyMTA3MzANClsgJm5i
c3A7ICZuYnNwOzEuNDE3NjgzXSBBQ1BJIEJJT1MgV2FybmluZyAoYnVnKTogSW5jb3JyZWN0IGNo
ZWNrc3VtIGluIHRhYmxlIFtCR1JUXSAtIDB4MUEsIHNob3VsZCBiZSAweDlDICgyMDIxMDczMC90
YnByaW50LTE3MykNClsgJm5ic3A7ICZuYnNwOzEuNDE3NzMwXSBjbG9ja3NvdXJjZTogeGVuOiBt
YXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgxY2Q0MmU0ZGZmYiwgbWF4X2lk
bGVfbnM6IDg4MTU5MDU5MTQ4MyBucw0KWyAmbmJzcDsgJm5ic3A7MS40MTc3MzNdIFhlbjogdXNp
bmcgdmNwdW9wIHRpbWVyIGludGVyZmFjZQ0KWyAmbmJzcDsgJm5ic3A7MS40MTc3MzZdIGluc3Rh
bGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMA0KWyAmbmJzcDsgJm5ic3A7MS40MTc3NTZdIGNsb2Nr
c291cmNlOiB0c2MtZWFybHk6IG1hc2s6IDB4ZmZmZmZmZmZmZmZmZmZmZiBtYXhfY3ljbGVzOiAw
eDI1NWNjOWUyMjlmLCBtYXhfaWRsZV9uczogNDQwNzk1MjcyNDQwIG5zDQpbICZuYnNwOyAmbmJz
cDsxLjQxNzc2MF0gQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksIHZhbHVlIGNhbGN1
bGF0ZWQgdXNpbmcgdGltZXIgZnJlcXVlbmN5Li4gNTE4NC4wNCBCb2dvTUlQUyAobHBqPTI1OTIw
MjApDQpbICZuYnNwOyAmbmJzcDsxLjQxNzc2Ml0gcGlkX21heDogZGVmYXVsdDogMzI3NjggbWlu
aW11bTogMzAxDQpbICZuYnNwOyAmbmJzcDsxLjQxNzgwN10gTFNNOiBTZWN1cml0eSBGcmFtZXdv
cmsgaW5pdGlhbGl6aW5nDQpbICZuYnNwOyAmbmJzcDsxLjQxNzgxNV0gWWFtYTogYmVjb21pbmcg
bWluZGZ1bC4NClsgJm5ic3A7ICZuYnNwOzEuNDE3ODYyXSBNb3VudC1jYWNoZSBoYXNoIHRhYmxl
IGVudHJpZXM6IDgxOTIgKG9yZGVyOiA0LCA2NTUzNiBieXRlcywgbGluZWFyKQ0KWyAmbmJzcDsg
Jm5ic3A7MS40MTc4NjRdIE1vdW50cG9pbnQtY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiA4MTky
IChvcmRlcjogNCwgNjU1MzYgYnl0ZXMsIGxpbmVhcikNClsgJm5ic3A7ICZuYnNwOzEuNDE4Mjgz
XSBMYXN0IGxldmVsIGlUTEIgZW50cmllczogNEtCIDY0LCAyTUIgOCwgNE1CIDgNClsgJm5ic3A7
ICZuYnNwOzEuNDE4Mjg1XSBMYXN0IGxldmVsIGRUTEIgZW50cmllczogNEtCIDY0LCAyTUIgMCwg
NE1CIDAsIDFHQiA0DQpbICZuYnNwOyAmbmJzcDsxLjQxODI5MF0gU3BlY3RyZSBWMSA6IE1pdGln
YXRpb246IHVzZXJjb3B5L3N3YXBncyBiYXJyaWVycyBhbmQgX191c2VyIHBvaW50ZXIgc2FuaXRp
emF0aW9uDQpbICZuYnNwOyAmbmJzcDsxLjQxODI5Ml0gU3BlY3RyZSBWMiA6IE1pdGlnYXRpb246
IEVuaGFuY2VkIElCUlMNClsgJm5ic3A7ICZuYnNwOzEuNDE4MjkyXSBTcGVjdHJlIFYyIDogU3Bl
Y3RyZSB2MiAvIFNwZWN0cmVSU0IgbWl0aWdhdGlvbjogRmlsbGluZyBSU0Igb24gY29udGV4dCBz
d2l0Y2gNClsgJm5ic3A7ICZuYnNwOzEuNDE4MjkzXSBTcGVjdHJlIFYyIDogU3BlY3RyZSB2MiAv
IFBCUlNCLWVJQlJTOiBSZXRpcmUgYSBzaW5nbGUgQ0FMTCBvbiBWTUVYSVQNClsgJm5ic3A7ICZu
YnNwOzEuNDE4MjkzXSBSRVRCbGVlZDogTWl0aWdhdGlvbjogRW5oYW5jZWQgSUJSUw0KWyAmbmJz
cDsgJm5ic3A7MS40MTgyOTRdIFNwZWN0cmUgVjIgOiBtaXRpZ2F0aW9uOiBFbmFibGluZyBjb25k
aXRpb25hbCBJbmRpcmVjdCBCcmFuY2ggUHJlZGljdGlvbiBCYXJyaWVyDQpbICZuYnNwOyAmbmJz
cDsxLjQxODI5Nl0gU3BlY3VsYXRpdmUgU3RvcmUgQnlwYXNzOiBNaXRpZ2F0aW9uOiBTcGVjdWxh
dGl2ZSBTdG9yZSBCeXBhc3MgZGlzYWJsZWQgdmlhIHByY3RsIGFuZCBzZWNjb21wDQpbICZuYnNw
OyAmbmJzcDsxLjQxODI5OV0gTU1JTyBTdGFsZSBEYXRhOiBWdWxuZXJhYmxlOiBDbGVhciBDUFUg
YnVmZmVycyBhdHRlbXB0ZWQsIG5vIG1pY3JvY29kZQ0KWyAmbmJzcDsgJm5ic3A7MS40MTgzMDFd
IFNSQkRTOiBVbmtub3duOiBEZXBlbmRlbnQgb24gaHlwZXJ2aXNvciBzdGF0dXMNClsgJm5ic3A7
ICZuYnNwOzEuNDMyMjA4XSBGcmVlaW5nIFNNUCBhbHRlcm5hdGl2ZXMgbWVtb3J5OiA0NEsNClsg
Jm5ic3A7ICZuYnNwOzEuNDMyODE2XSBjcHUgMCBzcGlubG9jayBldmVudCBpcnEgMTIxDQpbICZu
YnNwOyAmbmJzcDsxLjQzMjgyM10gVlBNVSBkaXNhYmxlZCBieSBoeXBlcnZpc29yLg0KWyAmbmJz
cDsgJm5ic3A7MS40MzMwNDldIFBlcmZvcm1hbmNlIEV2ZW50czogdW5zdXBwb3J0ZWQgcDYgQ1BV
IG1vZGVsIDE2NSBubyBQTVUgZHJpdmVyLCBzb2Z0d2FyZSBldmVudHMgb25seS4NClsgJm5ic3A7
ICZuYnNwOzEuNDMzMTAwXSByY3U6IEhpZXJhcmNoaWNhbCBTUkNVIGltcGxlbWVudGF0aW9uLg0K
WyAmbmJzcDsgJm5ic3A7MS40MzM0MjldIE5NSSB3YXRjaGRvZzogUGVyZiBOTUkgd2F0Y2hkb2cg
cGVybWFuZW50bHkgZGlzYWJsZWQNClsgJm5ic3A7ICZuYnNwOzEuNDMzNTcwXSBzbXA6IEJyaW5n
aW5nIHVwIHNlY29uZGFyeSBDUFVzIC4uLg0KWyAmbmJzcDsgJm5ic3A7MS40MzM2NzJdIGluc3Rh
bGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMQ0KWyAmbmJzcDsgJm5ic3A7MS40MzM4MzldIGNwdSAx
IHNwaW5sb2NrIGV2ZW50IGlycSAxMzENClsgJm5ic3A7ICZuYnNwOzEuNDM0MDkwXSBNTUlPIFN0
YWxlIERhdGEgQ1BVIGJ1ZyBwcmVzZW50IGFuZCBTTVQgb24sIGRhdGEgbGVhayBwb3NzaWJsZS4g
U2VlIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvbGF0ZXN0L2FkbWluLWd1aWRlL2h3
LXZ1bG4vcHJvY2Vzc29yX21taW9fc3RhbGVfZGF0YS5odG1sIGZvciBtb3JlIGRldGFpbHMuDQpb
ICZuYnNwOyAmbmJzcDsxLjQzNDA5MF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAyDQpb
ICZuYnNwOyAmbmJzcDsxLjQzNDA5MF0gY3B1IDIgc3BpbmxvY2sgZXZlbnQgaXJxIDEzNw0KWyAm
bmJzcDsgJm5ic3A7MS40MzQwOTBdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMw0KWyAm
bmJzcDsgJm5ic3A7MS40MzQwOTBdIGNwdSAzIHNwaW5sb2NrIGV2ZW50IGlycSAxNDMNClsgJm5i
c3A7ICZuYnNwOzEuNDM0ODI3XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDQNClsgJm5i
c3A7ICZuYnNwOzEuNDM0OTU2XSBjcHUgNCBzcGlubG9jayBldmVudCBpcnEgMTQ5DQpbICZuYnNw
OyAmbmJzcDsxLjQzNDk1Nl0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSA1DQpbICZuYnNw
OyAmbmJzcDsxLjQzNDk5MV0gY3B1IDUgc3BpbmxvY2sgZXZlbnQgaXJxIDE1NQ0KWyAmbmJzcDsg
Jm5ic3A7MS40MzQ5OTFdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgNg0KWyAmbmJzcDsg
Jm5ic3A7MS40MzUwMTFdIGNwdSA2IHNwaW5sb2NrIGV2ZW50IGlycSAxNjENClsgJm5ic3A7ICZu
YnNwOzEuNDM1MDExXSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDcNClsgJm5ic3A7ICZu
YnNwOzEuNDM1Nzg2XSBjcHUgNyBzcGlubG9jayBldmVudCBpcnEgMTY3DQpbICZuYnNwOyAmbmJz
cDsxLjQzNTg1Ml0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSA4DQpbICZuYnNwOyAmbmJz
cDsxLjQzNTk4N10gY3B1IDggc3BpbmxvY2sgZXZlbnQgaXJxIDE3Mw0KWyAmbmJzcDsgJm5ic3A7
MS40MzU5ODddIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgOQ0KWyAmbmJzcDsgJm5ic3A7
MS40MzU5ODddIGNwdSA5IHNwaW5sb2NrIGV2ZW50IGlycSAxNzkNClsgJm5ic3A7ICZuYnNwOzEu
NDM1OTg3XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDEwDQpbICZuYnNwOyAmbmJzcDsx
LjQzNjA0M10gY3B1IDEwIHNwaW5sb2NrIGV2ZW50IGlycSAxODUNClsgJm5ic3A7ICZuYnNwOzEu
NDM2ODAxXSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDExDQpbICZuYnNwOyAmbmJzcDsx
LjQzNjk0M10gY3B1IDExIHNwaW5sb2NrIGV2ZW50IGlycSAxOTENClsgJm5ic3A7ICZuYnNwOzEu
NDM2OTQzXSBzbXA6IEJyb3VnaHQgdXAgMSBub2RlLCAxMiBDUFVzDQpbICZuYnNwOyAmbmJzcDsx
LjQzNjk0M10gc21wYm9vdDogTWF4IGxvZ2ljYWwgcGFja2FnZXM6IDENClsgJm5ic3A7ICZuYnNw
OzEuNDM3MDIzXSBkZXZ0bXBmczogaW5pdGlhbGl6ZWQNClsgJm5ic3A7ICZuYnNwOzEuNDM3MDIz
XSB4ODYvbW06IE1lbW9yeSBibG9jayBzaXplOiAxMjhNQg0KWyAmbmJzcDsgJm5ic3A7MS40Mzcx
MDBdIEFDUEk6IFBNOiBSZWdpc3RlcmluZyBBQ1BJIE5WUyByZWdpb24gW21lbSAweDk4ZDZlMDAw
LTB4OTliY2RmZmZdICgxNTA3MzI4MCBieXRlcykNClsgJm5ic3A7ICZuYnNwOzEuNDM3ODYxXSBj
bG9ja3NvdXJjZTogamlmZmllczogbWFzazogMHhmZmZmZmZmZiBtYXhfY3ljbGVzOiAweGZmZmZm
ZmZmLCBtYXhfaWRsZV9uczogMTkxMTI2MDQ0NjI3NTAwMCBucw0KWyAmbmJzcDsgJm5ic3A7MS40
Mzc4NjRdIGZ1dGV4IGhhc2ggdGFibGUgZW50cmllczogNDA5NiAob3JkZXI6IDYsIDI2MjE0NCBi
eXRlcywgbGluZWFyKQ0KWyAmbmJzcDsgJm5ic3A7MS40Mzc5MTZdIHBpbmN0cmwgY29yZTogaW5p
dGlhbGl6ZWQgcGluY3RybCBzdWJzeXN0ZW0NClsgJm5ic3A7ICZuYnNwOzEuNDM4MjY3XSBQTTog
UlRDIHRpbWU6IDE2OjI0OjQxLCBkYXRlOiAyMDIzLTEyLTI3DQpbICZuYnNwOyAmbmJzcDsxLjQz
ODM5MV0gTkVUOiBSZWdpc3RlcmVkIFBGX05FVExJTksvUEZfUk9VVEUgcHJvdG9jb2wgZmFtaWx5
DQpbICZuYnNwOyAmbmJzcDsxLjQzODQwNl0geGVuOmdyYW50X3RhYmxlOiBHcmFudCB0YWJsZXMg
dXNpbmcgdmVyc2lvbiAxIGxheW91dA0KWyAmbmJzcDsgJm5ic3A7MS40Mzg0NTJdIEdyYW50IHRh
YmxlIGluaXRpYWxpemVkDQpbICZuYnNwOyAmbmJzcDsxLjQzODYxN10gRE1BOiBwcmVhbGxvY2F0
ZWQgNTEyIEtpQiBHRlBfS0VSTkVMIHBvb2wgZm9yIGF0b21pYyBhbGxvY2F0aW9ucw0KWyAmbmJz
cDsgJm5ic3A7MS40Mzg2MjBdIERNQTogcHJlYWxsb2NhdGVkIDUxMiBLaUIgR0ZQX0tFUk5FTHxH
RlBfRE1BIHBvb2wgZm9yIGF0b21pYyBhbGxvY2F0aW9ucw0KWyAmbmJzcDsgJm5ic3A7MS40Mzg2
MjJdIERNQTogcHJlYWxsb2NhdGVkIDUxMiBLaUIgR0ZQX0tFUk5FTHxHRlBfRE1BMzIgcG9vbCBm
b3IgYXRvbWljIGFsbG9jYXRpb25zDQpbICZuYnNwOyAmbmJzcDsxLjQzODYyOV0gYXVkaXQ6IGlu
aXRpYWxpemluZyBuZXRsaW5rIHN1YnN5cyAoZGlzYWJsZWQpDQpbICZuYnNwOyAmbmJzcDsxLjQz
ODYzOV0gYXVkaXQ6IHR5cGU9MjAwMCBhdWRpdCgxNzAzNjk0MjgyLjU0NDoxKTogc3RhdGU9aW5p
dGlhbGl6ZWQgYXVkaXRfZW5hYmxlZD0wIHJlcz0xDQpbICZuYnNwOyAmbmJzcDsxLjQzODgxMF0g
dGhlcm1hbF9zeXM6IFJlZ2lzdGVyZWQgdGhlcm1hbCBnb3Zlcm5vciAnZmFpcl9zaGFyZScNClsg
Jm5ic3A7ICZuYnNwOzEuNDM4ODExXSB0aGVybWFsX3N5czogUmVnaXN0ZXJlZCB0aGVybWFsIGdv
dmVybm9yICdiYW5nX2JhbmcnDQpbICZuYnNwOyAmbmJzcDsxLjQzODgxMV0gdGhlcm1hbF9zeXM6
IFJlZ2lzdGVyZWQgdGhlcm1hbCBnb3Zlcm5vciAnc3RlcF93aXNlJw0KWyAmbmJzcDsgJm5ic3A7
MS40Mzg4MTJdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292ZXJub3IgJ3VzZXJf
c3BhY2UnDQpbICZuYnNwOyAmbmJzcDsxLjQzODg1N10gQUNQSSBGQURUIGRlY2xhcmVzIHRoZSBz
eXN0ZW0gZG9lc24ndCBzdXBwb3J0IFBDSWUgQVNQTSwgc28gZGlzYWJsZSBpdA0KWyAmbmJzcDsg
Jm5ic3A7MS40Mzg4NTddIEFDUEk6IGJ1cyB0eXBlIFBDSSByZWdpc3RlcmVkDQpbICZuYnNwOyAm
bmJzcDsxLjQzOTAwMV0gUENJOiBNTUNPTkZJRyBmb3IgZG9tYWluIDAwMDAgW2J1cyAwMC1mZl0g
YXQgW21lbSAweGUwMDAwMDAwLTB4ZWZmZmZmZmZdIChiYXNlIDB4ZTAwMDAwMDApDQpbICZuYnNw
OyAmbmJzcDsxLjQzOTAwNF0gUENJOiBNTUNPTkZJRyBhdCBbbWVtIDB4ZTAwMDAwMDAtMHhlZmZm
ZmZmZl0gcmVzZXJ2ZWQgaW4gRTgyMA0KWyAmbmJzcDsgJm5ic3A7MS40NzA2NjNdIFBDSTogVXNp
bmcgY29uZmlndXJhdGlvbiB0eXBlIDEgZm9yIGJhc2UgYWNjZXNzDQpbICZuYnNwOyAmbmJzcDsx
LjQ3MTcyOF0gS3Byb2JlcyBnbG9iYWxseSBvcHRpbWl6ZWQNClsgJm5ic3A7ICZuYnNwOzEuNTY5
OTE3XSBjcnlwdGQ6IG1heF9jcHVfcWxlbiBzZXQgdG8gMTAwMA0KWyAmbmJzcDsgJm5ic3A7MS41
NzY4MjFdIGFsZzogTm8gdGVzdCBmb3IgODQyICg4NDItZ2VuZXJpYykNClsgJm5ic3A7ICZuYnNw
OzEuNTc2ODIxXSBhbGc6IE5vIHRlc3QgZm9yIDg0MiAoODQyLXNjb21wKQ0KWyAmbmJzcDsgJm5i
c3A7MS41NzkwMDhdIHJhaWQ2OiBza2lwIHBxIGJlbmNobWFyayBhbmQgdXNpbmcgYWxnb3JpdGht
IGF2eDJ4NA0KWyAmbmJzcDsgJm5ic3A7MS41NzkwMDhdIHJhaWQ2OiB1c2luZyBhdngyeDIgcmVj
b3ZlcnkgYWxnb3JpdGhtDQpbICZuYnNwOyAmbmJzcDsxLjU3OTAwOF0gQUNQSTogQWRkZWQgX09T
SShNb2R1bGUgRGV2aWNlKQ0KWyAmbmJzcDsgJm5ic3A7MS41NzkwMDhdIEFDUEk6IEFkZGVkIF9P
U0koUHJvY2Vzc29yIERldmljZSkNClsgJm5ic3A7ICZuYnNwOzEuNTc5MDA4XSBBQ1BJOiBBZGRl
ZCBfT1NJKDMuMCBfU0NQIEV4dGVuc2lvbnMpDQpbICZuYnNwOyAmbmJzcDsxLjU3OTAwOF0gQUNQ
STogQWRkZWQgX09TSShQcm9jZXNzb3IgQWdncmVnYXRvciBEZXZpY2UpDQpbICZuYnNwOyAmbmJz
cDsxLjU3OTAwOF0gQUNQSTogQWRkZWQgX09TSShMaW51eC1EZWxsLVZpZGVvKQ0KWyAmbmJzcDsg
Jm5ic3A7MS41NzkwMDhdIEFDUEk6IEFkZGVkIF9PU0koTGludXgtTGVub3ZvLU5WLUhETUktQXVk
aW8pDQpbICZuYnNwOyAmbmJzcDsxLjU3OTAwOF0gQUNQSTogQWRkZWQgX09TSShMaW51eC1IUEkt
SHlicmlkLUdyYXBoaWNzKQ0KWyAmbmJzcDsgJm5ic3A7MS42Mzg4NDhdIEFDUEk6IDE3IEFDUEkg
QU1MIHRhYmxlcyBzdWNjZXNzZnVsbHkgYWNxdWlyZWQgYW5kIGxvYWRlZA0KWyAmbmJzcDsgJm5i
c3A7MS42NDAxODJdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDkgdHJpZ2dlcmluZyAwIHBvbGFyaXR5
IDANClsgJm5ic3A7ICZuYnNwOzEuNjQ4MjczXSBBQ1BJOiBEeW5hbWljIE9FTSBUYWJsZSBMb2Fk
Og0KWyAmbmJzcDsgJm5ic3A7MS42NDgyODBdIEFDUEk6IFNTRFQgMHhGRkZGODg4MTAxMDhBNDAw
IDAwMDQwMCAodjAyIFBtUmVmICZuYnNwO0NwdTBDc3QgJm5ic3A7MDAwMDMwMDEgSU5UTCAyMDE2
MDQyMikNClsgJm5ic3A7ICZuYnNwOzEuNjQ5MTUyXSBBQ1BJOiBEeW5hbWljIE9FTSBUYWJsZSBM
b2FkOg0KWyAmbmJzcDsgJm5ic3A7MS42NDkxNTddIEFDUEk6IFNTRFQgMHhGRkZGODg4MTAxMDI2
ODAwIDAwMDU4MSAodjAyIFBtUmVmICZuYnNwO0NwdTBJc3QgJm5ic3A7MDAwMDMwMDAgSU5UTCAy
MDE2MDQyMikNClsgJm5ic3A7ICZuYnNwOzEuNjQ5OTMzXSBBQ1BJOiBEeW5hbWljIE9FTSBUYWJs
ZSBMb2FkOg0KWyAmbmJzcDsgJm5ic3A7MS42NDk5MzhdIEFDUEk6IFNTRFQgMHhGRkZGODg4MTAw
MjBFNDAwIDAwMDBGQyAodjAyIFBtUmVmICZuYnNwO0NwdTBQc2QgJm5ic3A7MDAwMDMwMDAgSU5U
TCAyMDE2MDQyMikNClsgJm5ic3A7ICZuYnNwOzEuNjUxMjE1XSBBQ1BJOiBEeW5hbWljIE9FTSBU
YWJsZSBMb2FkOg0KWyAmbmJzcDsgJm5ic3A7MS42NTEyMjBdIEFDUEk6IFNTRFQgMHhGRkZGODg4
MTAxMDIzMDAwIDAwMDc3OCAodjAyIFBtUmVmICZuYnNwO0FwSXN0ICZuYnNwOyAmbmJzcDswMDAw
MzAwMCBJTlRMIDIwMTYwNDIyKQ0KWyAmbmJzcDsgJm5ic3A7MS42NTIzMzldIEFDUEk6IER5bmFt
aWMgT0VNIFRhYmxlIExvYWQ6DQpbICZuYnNwOyAmbmJzcDsxLjY1MjM0Nl0gQUNQSTogU1NEVCAw
eEZGRkY4ODgxMDAxODMwMDAgMDAwRDIyICh2MDIgUG1SZWYgJm5ic3A7QXBQc2QgJm5ic3A7ICZu
YnNwOzAwMDAzMDAwIElOVEwgMjAxNjA0MjIpDQpbICZuYnNwOyAmbmJzcDsxLjY1MzYzMl0gQUNQ
STogRHluYW1pYyBPRU0gVGFibGUgTG9hZDoNClsgJm5ic3A7ICZuYnNwOzEuNjUzNjM3XSBBQ1BJ
OiBTU0RUIDB4RkZGRjg4ODEwMTA4ODgwMCAwMDAzQ0EgKHYwMiBQbVJlZiAmbmJzcDtBcENzdCAm
bmJzcDsgJm5ic3A7MDAwMDMwMDAgSU5UTCAyMDE2MDQyMikNClsgJm5ic3A7ICZuYnNwOzEuNjU5
ODg3XSBBQ1BJOiBFQzogRUMgc3RhcnRlZA0KWyAmbmJzcDsgJm5ic3A7MS42NTk4ODhdIEFDUEk6
IEVDOiBpbnRlcnJ1cHQgYmxvY2tlZA0KWyAmbmJzcDsgJm5ic3A7MS42NjAyMTZdIEFDUEk6IEVD
OiBFQ19DTUQvRUNfU0M9MHg2NiwgRUNfREFUQT0weDYyDQpbICZuYnNwOyAmbmJzcDsxLjY2MDIx
OF0gQUNQSTogXF9TQl8uUENJMC5MUENCLkVDMF86IEJvb3QgRFNEVCBFQyB1c2VkIHRvIGhhbmRs
ZSB0cmFuc2FjdGlvbnMNClsgJm5ic3A7ICZuYnNwOzEuNjYwMjE5XSBBQ1BJOiBJbnRlcnByZXRl
ciBlbmFibGVkDQpbICZuYnNwOyAmbmJzcDsxLjY2MDI0NV0gQUNQSTogUE06IChzdXBwb3J0cyBT
MCBTMyBTNSkNClsgJm5ic3A7ICZuYnNwOzEuNjYwMjQ2XSBBQ1BJOiBVc2luZyBJT0FQSUMgZm9y
IGludGVycnVwdCByb3V0aW5nDQpbICZuYnNwOyAmbmJzcDsxLjY2MDI3NV0gUENJOiBVc2luZyBo
b3N0IGJyaWRnZSB3aW5kb3dzIGZyb20gQUNQSTsgaWYgbmVjZXNzYXJ5LCB1c2UgInBjaT1ub2Ny
cyIgYW5kIHJlcG9ydCBhIGJ1Zw0KWyAmbmJzcDsgJm5ic3A7MS42NjIyMTFdIEFDUEk6IEVuYWJs
ZWQgNyBHUEVzIGluIGJsb2NrIDAwIHRvIDdGDQpbICZuYnNwOyAmbmJzcDsxLjY2MzAzM10gQUNQ
STogUE06IFBvd2VyIFJlc291cmNlIFtQRzAwXQ0KWyAmbmJzcDsgJm5ic3A7MS42NjY1OTJdIEFD
UEk6IFBNOiBQb3dlciBSZXNvdXJjZSBbUEcwMV0NClsgJm5ic3A7ICZuYnNwOzEuNjY2ODkyXSBB
Q1BJOiBQTTogUG93ZXIgUmVzb3VyY2UgW1BHMDJdDQpbICZuYnNwOyAmbmJzcDsxLjY3MDc1Nl0g
QUNQSTogUE06IFBvd2VyIFJlc291cmNlIFtCVFBSXQ0KWyAmbmJzcDsgJm5ic3A7MS42NzEzMThd
IEFDUEk6IFBNOiBQb3dlciBSZXNvdXJjZSBbVVNCQ10NClsgJm5ic3A7ICZuYnNwOzEuNjg2MDY3
XSBBQ1BJOiBQTTogUG93ZXIgUmVzb3VyY2UgW1YwUFJdDQpbICZuYnNwOyAmbmJzcDsxLjY4NjI2
Ml0gQUNQSTogUE06IFBvd2VyIFJlc291cmNlIFtWMVBSXQ0KWyAmbmJzcDsgJm5ic3A7MS42ODY0
NTZdIEFDUEk6IFBNOiBQb3dlciBSZXNvdXJjZSBbVjJQUl0NClsgJm5ic3A7ICZuYnNwOzEuNjg5
ODcxXSBBQ1BJOiBQTTogUG93ZXIgUmVzb3VyY2UgW1dSU1RdDQpbICZuYnNwOyAmbmJzcDsxLjY5
MDA5N10gYWNwaSBBQkNEMDAwMDowMDogQUNQSSBkb2NrIHN0YXRpb24gKGRvY2tzL2JheXMgY291
bnQ6IDEpDQpbICZuYnNwOyAmbmJzcDsxLjY5Mjk4OF0gQUNQSTogUE06IFBvd2VyIFJlc291cmNl
IFtQSU5dDQpbICZuYnNwOyAmbmJzcDsxLjY5MzUzNl0gQUNQSTogUENJIFJvb3QgQnJpZGdlIFtQ
Q0kwXSAoZG9tYWluIDAwMDAgW2J1cyAwMC1mZV0pDQpbICZuYnNwOyAmbmJzcDsxLjY5MzU0MV0g
YWNwaSBQTlAwQTA4OjAwOiBfT1NDOiBPUyBzdXBwb3J0cyBbRXh0ZW5kZWRDb25maWcgQVNQTSBD
bG9ja1BNIFNlZ21lbnRzIE1TSSBFRFIgSFBYLVR5cGUzXQ0KWyAmbmJzcDsgJm5ic3A7MS42OTU4
MzhdIGFjcGkgUE5QMEEwODowMDogX09TQzogT1Mgbm93IGNvbnRyb2xzIFtQTUUgQUVSIFBDSWVD
YXBhYmlsaXR5IExUUiBEUENdDQpbICZuYnNwOyAmbmJzcDsxLjY5NTgzOV0gYWNwaSBQTlAwQTA4
OjAwOiBGQURUIGluZGljYXRlcyBBU1BNIGlzIHVuc3VwcG9ydGVkLCB1c2luZyBCSU9TIGNvbmZp
Z3VyYXRpb24NClsgJm5ic3A7ICZuYnNwOzEuNjk3MTk5XSBQQ0kgaG9zdCBicmlkZ2UgdG8gYnVz
IDAwMDA6MDANClsgJm5ic3A7ICZuYnNwOzEuNjk3MjAxXSBwY2lfYnVzIDAwMDA6MDA6IHJvb3Qg
YnVzIHJlc291cmNlIFtpbyAmbmJzcDsweDAwMDAtMHgwY2Y3IHdpbmRvd10NClsgJm5ic3A7ICZu
YnNwOzEuNjk3MjAyXSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtpbyAmbmJz
cDsweDBkMDAtMHhmZmZmIHdpbmRvd10NClsgJm5ic3A7ICZuYnNwOzEuNjk3MjAzXSBwY2lfYnVz
IDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHgwMDBhMDAwMC0weDAwMGJmZmZmIHdp
bmRvd10NClsgJm5ic3A7ICZuYnNwOzEuNjk3MjA0XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVz
IHJlc291cmNlIFttZW0gMHg5ZjgwMDAwMC0weGRmZmZmZmZmIHdpbmRvd10NClsgJm5ic3A7ICZu
YnNwOzEuNjk3MjA1XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHg0
MDAwMDAwMDAwLTB4N2ZmZmZmZmZmZiB3aW5kb3ddDQpbICZuYnNwOyAmbmJzcDsxLjY5NzIwNl0g
cGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4ZmM4MDAwMDAtMHhmZTdm
ZmZmZiB3aW5kb3ddDQpbICZuYnNwOyAmbmJzcDsxLjY5NzIwN10gcGNpX2J1cyAwMDAwOjAwOiBy
b290IGJ1cyByZXNvdXJjZSBbYnVzIDAwLWZlXQ0KWyAmbmJzcDsgJm5ic3A7MS42OTgxMjVdIHBj
aSAwMDAwOjAwOjAwLjA6IFs4MDg2OjliNTRdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDANClsgJm5i
c3A7ICZuYnNwOzEuNzAwODczXSBwY2kgMDAwMDowMDowMS4wOiBbODA4NjoxOTAxXSB0eXBlIDAx
IGNsYXNzIDB4MDYwNDAwDQpbICZuYnNwOyAmbmJzcDsxLjcwMTAwNl0gcGNpIDAwMDA6MDA6MDEu
MDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQNClsgJm5ic3A7ICZuYnNwOzEu
NzAzMzQzXSBwY2kgMDAwMDowMDowMi4wOiBbODA4Njo5YmM0XSB0eXBlIDAwIGNsYXNzIDB4MDMw
MDAwDQpbICZuYnNwOyAmbmJzcDsxLjcwMzM3MV0gcGNpIDAwMDA6MDA6MDIuMDogcmVnIDB4MTA6
IFttZW0gMHg2MDEzMDAwMDAwLTB4NjAxM2ZmZmZmZiA2NGJpdF0NClsgJm5ic3A7ICZuYnNwOzEu
NzAzMzg4XSBwY2kgMDAwMDowMDowMi4wOiByZWcgMHgxODogW21lbSAweDQwMDAwMDAwMDAtMHg0
MDBmZmZmZmZmIDY0Yml0IHByZWZdDQpbICZuYnNwOyAmbmJzcDsxLjcwMzQwMF0gcGNpIDAwMDA6
MDA6MDIuMDogcmVnIDB4MjA6IFtpbyAmbmJzcDsweDUwMDAtMHg1MDNmXQ0KWyAmbmJzcDsgJm5i
c3A7MS43MDM0NDBdIHBjaSAwMDAwOjAwOjAyLjA6IEJBUiAyOiBhc3NpZ25lZCB0byBlZmlmYg0K
WyAmbmJzcDsgJm5ic3A7MS43MDM0NDZdIHBjaSAwMDAwOjAwOjAyLjA6IFZpZGVvIGRldmljZSB3
aXRoIHNoYWRvd2VkIFJPTSBhdCBbbWVtIDB4MDAwYzAwMDAtMHgwMDBkZmZmZl0NClsgJm5ic3A7
ICZuYnNwOzEuNzA1MzQzXSBwY2kgMDAwMDowMDowNC4wOiBbODA4NjoxOTAzXSB0eXBlIDAwIGNs
YXNzIDB4MTE4MDAwDQpbICZuYnNwOyAmbmJzcDsxLjcwNTM3MV0gcGNpIDAwMDA6MDA6MDQuMDog
cmVnIDB4MTA6IFttZW0gMHg2MDEyMjAwMDAwLTB4NjAxMjIwN2ZmZiA2NGJpdF0NClsgJm5ic3A7
ICZuYnNwOzEuNzA2NTg1XSBwY2kgMDAwMDowMDowOC4wOiBbODA4NjoxOTExXSB0eXBlIDAwIGNs
YXNzIDB4MDg4MDAwDQpbICZuYnNwOyAmbmJzcDsxLjcwNjYxNF0gcGNpIDAwMDA6MDA6MDguMDog
cmVnIDB4MTA6IFttZW0gMHg2MDEyMjE4MDAwLTB4NjAxMjIxOGZmZiA2NGJpdF0NClsgJm5ic3A7
ICZuYnNwOzEuNzA4NTc2XSBwY2kgMDAwMDowMDoxMi4wOiBbODA4NjowNmY5XSB0eXBlIDAwIGNs
YXNzIDB4MTE4MDAwDQpbICZuYnNwOyAmbmJzcDsxLjcwODYzMV0gcGNpIDAwMDA6MDA6MTIuMDog
cmVnIDB4MTA6IFttZW0gMHg2MDEyMjE3MDAwLTB4NjAxMjIxN2ZmZiA2NGJpdF0NClsgJm5ic3A7
ICZuYnNwOzEuNzExNTI2XSBwY2kgMDAwMDowMDoxNC4wOiBbODA4NjowNmVkXSB0eXBlIDAwIGNs
YXNzIDB4MGMwMzMwDQpbICZuYnNwOyAmbmJzcDsxLjcxMTU4MF0gcGNpIDAwMDA6MDA6MTQuMDog
cmVnIDB4MTA6IFttZW0gMHhhMTQ4MDAwMC0weGExNDhmZmZmIDY0Yml0XQ0KWyAmbmJzcDsgJm5i
c3A7MS43MTE3OTNdIHBjaSAwMDAwOjAwOjE0LjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDNob3Qg
RDNjb2xkDQpbICZuYnNwOyAmbmJzcDsxLjcxMzA0Nl0gcGNpIDAwMDA6MDA6MTQuMjogWzgwODY6
MDZlZl0gdHlwZSAwMCBjbGFzcyAweDA1MDAwMA0KWyAmbmJzcDsgJm5ic3A7MS43MTMwOThdIHBj
aSAwMDAwOjAwOjE0LjI6IHJlZyAweDEwOiBbbWVtIDB4NjAxMjIxMDAwMC0weDYwMTIyMTFmZmYg
NjRiaXRdDQpbICZuYnNwOyAmbmJzcDsxLjcxMzEzM10gcGNpIDAwMDA6MDA6MTQuMjogcmVnIDB4
MTg6IFttZW0gMHg2MDEyMjE2MDAwLTB4NjAxMjIxNmZmZiA2NGJpdF0NClsgJm5ic3A7ICZuYnNw
OzEuNzE2MDI0XSBwY2kgMDAwMDowMDoxNC4zOiBbODA4NjowNmYwXSB0eXBlIDAwIGNsYXNzIDB4
MDI4MDAwDQpbICZuYnNwOyAmbmJzcDsxLjcxNjI0MV0gcGNpIDAwMDA6MDA6MTQuMzogcmVnIDB4
MTA6IFttZW0gMHg2MDEyMjBjMDAwLTB4NjAxMjIwZmZmZiA2NGJpdF0NClsgJm5ic3A7ICZuYnNw
OzEuNzE3MjAwXSBwY2kgMDAwMDowMDoxNC4zOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90
IEQzY29sZA0KWyAmbmJzcDsgJm5ic3A7MS43MTkzNTNdIHBjaSAwMDAwOjAwOjE1LjA6IFs4MDg2
OjA2ZThdIHR5cGUgMDAgY2xhc3MgMHgwYzgwMDANClsgJm5ic3A7ICZuYnNwOzEuNzE5NDAzXSBw
Y2kgMDAwMDowMDoxNS4wOiByZWcgMHgxMDogW21lbSAweDAwMDAwMDAwLTB4MDAwMDBmZmYgNjRi
aXRdDQpbICZuYnNwOyAmbmJzcDsxLjcyMTUxM10gcGNpIDAwMDA6MDA6MTUuMTogWzgwODY6MDZl
OV0gdHlwZSAwMCBjbGFzcyAweDBjODAwMA0KWyAmbmJzcDsgJm5ic3A7MS43MjE1NjNdIHBjaSAw
MDAwOjAwOjE1LjE6IHJlZyAweDEwOiBbbWVtIDB4MDAwMDAwMDAtMHgwMDAwMGZmZiA2NGJpdF0N
ClsgJm5ic3A7ICZuYnNwOzEuNzIzNzMxXSBwY2kgMDAwMDowMDoxNi4wOiBbODA4NjowNmUwXSB0
eXBlIDAwIGNsYXNzIDB4MDc4MDAwDQpbICZuYnNwOyAmbmJzcDsxLjcyMzc4MF0gcGNpIDAwMDA6
MDA6MTYuMDogcmVnIDB4MTA6IFttZW0gMHg2MDEyMjEzMDAwLTB4NjAxMjIxM2ZmZiA2NGJpdF0N
ClsgJm5ic3A7ICZuYnNwOzEuNzIzOTYyXSBwY2kgMDAwMDowMDoxNi4wOiBQTUUjIHN1cHBvcnRl
ZCBmcm9tIEQzaG90DQpbICZuYnNwOyAmbmJzcDsxLjcyNjE4OF0gcGNpIDAwMDA6MDA6MTcuMDog
WzgwODY6MDZkM10gdHlwZSAwMCBjbGFzcyAweDAxMDYwMQ0KWyAmbmJzcDsgJm5ic3A7MS43MjYy
NDFdIHBjaSAwMDAwOjAwOjE3LjA6IHJlZyAweDEwOiBbbWVtIDB4YTE0OTAwMDAtMHhhMTQ5MWZm
Zl0NClsgJm5ic3A7ICZuYnNwOzEuNzI2MjY5XSBwY2kgMDAwMDowMDoxNy4wOiByZWcgMHgxNDog
W21lbSAweGExNDk0MDAwLTB4YTE0OTQwZmZdDQpbICZuYnNwOyAmbmJzcDsxLjcyNjI5OF0gcGNp
IDAwMDA6MDA6MTcuMDogcmVnIDB4MTg6IFtpbyAmbmJzcDsweDUwODAtMHg1MDg3XQ0KWyAmbmJz
cDsgJm5ic3A7MS43MjYzMjZdIHBjaSAwMDAwOjAwOjE3LjA6IHJlZyAweDFjOiBbaW8gJm5ic3A7
MHg1MDg4LTB4NTA4Yl0NClsgJm5ic3A7ICZuYnNwOzEuNzI2MzU0XSBwY2kgMDAwMDowMDoxNy4w
OiByZWcgMHgyMDogW2lvICZuYnNwOzB4NTA2MC0weDUwN2ZdDQpbICZuYnNwOyAmbmJzcDsxLjcy
NjM4Ml0gcGNpIDAwMDA6MDA6MTcuMDogcmVnIDB4MjQ6IFttZW0gMHhhMTQ5MzAwMC0weGExNDkz
N2ZmXQ0KWyAmbmJzcDsgJm5ic3A7MS43MjY1NDBdIHBjaSAwMDAwOjAwOjE3LjA6IFBNRSMgc3Vw
cG9ydGVkIGZyb20gRDNob3QNClsgJm5ic3A7ICZuYnNwOzEuNzI4NjY5XSBwY2kgMDAwMDowMDox
Yi4wOiBbODA4NjowNmFjXSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwDQpbICZuYnNwOyAmbmJzcDsx
LjcyODk2M10gcGNpIDAwMDA6MDA6MWIuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBE
M2NvbGQNClsgJm5ic3A7ICZuYnNwOzEuNzI5MDI0XSBwY2kgMDAwMDowMDoxYi4wOiBQVE0gZW5h
YmxlZCAocm9vdCksIDRucyBncmFudWxhcml0eQ0KWyAmbmJzcDsgJm5ic3A7MS43MzE1MzRdIHBj
aSAwMDAwOjAwOjFkLjA6IFs4MDg2OjA2YjBdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDANClsgJm5i
c3A7ICZuYnNwOzEuNzMxODE0XSBwY2kgMDAwMDowMDoxZC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9t
IEQwIEQzaG90IEQzY29sZA0KWyAmbmJzcDsgJm5ic3A7MS43MzE4NzJdIHBjaSAwMDAwOjAwOjFk
LjA6IFBUTSBlbmFibGVkIChyb290KSwgNG5zIGdyYW51bGFyaXR5DQpbICZuYnNwOyAmbmJzcDsx
LjczNDMwMV0gcGNpIDAwMDA6MDA6MWQuNTogWzgwODY6MDZiNV0gdHlwZSAwMSBjbGFzcyAweDA2
MDQwMA0KWyAmbmJzcDsgJm5ic3A7MS43MzQ1NzddIHBjaSAwMDAwOjAwOjFkLjU6IFBNRSMgc3Vw
cG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkDQpbICZuYnNwOyAmbmJzcDsxLjczNDYzMV0gcGNp
IDAwMDA6MDA6MWQuNTogUFRNIGVuYWJsZWQgKHJvb3QpLCA0bnMgZ3JhbnVsYXJpdHkNClsgJm5i
c3A7ICZuYnNwOzEuNzM3MDI3XSBwY2kgMDAwMDowMDoxZi4wOiBbODA4NjowNjhkXSB0eXBlIDAw
IGNsYXNzIDB4MDYwMTAwDQpbICZuYnNwOyAmbmJzcDsxLjczOTMwMF0gcGNpIDAwMDA6MDA6MWYu
MzogWzgwODY6MDZjOF0gdHlwZSAwMCBjbGFzcyAweDA0MDM4MA0KWyAmbmJzcDsgJm5ic3A7MS43
MzkzNjhdIHBjaSAwMDAwOjAwOjFmLjM6IHJlZyAweDEwOiBbbWVtIDB4NjAxMjIwODAwMC0weDYw
MTIyMGJmZmYgNjRiaXRdDQpbICZuYnNwOyAmbmJzcDsxLjczOTQ1NF0gcGNpIDAwMDA6MDA6MWYu
MzogcmVnIDB4MjA6IFttZW0gMHg2MDEyMTAwMDAwLTB4NjAxMjFmZmZmZiA2NGJpdF0NClsgJm5i
c3A7ICZuYnNwOzEuNzM5NjI1XSBwY2kgMDAwMDowMDoxZi4zOiBQTUUjIHN1cHBvcnRlZCBmcm9t
IEQzaG90IEQzY29sZA0KWyAmbmJzcDsgJm5ic3A7MS43NDIxMTVdIHBjaSAwMDAwOjAwOjFmLjQ6
IFs4MDg2OjA2YTNdIHR5cGUgMDAgY2xhc3MgMHgwYzA1MDANClsgJm5ic3A7ICZuYnNwOzEuNzQy
Mjk2XSBwY2kgMDAwMDowMDoxZi40OiByZWcgMHgxMDogW21lbSAweDYwMTIyMTIwMDAtMHg2MDEy
MjEyMGZmIDY0Yml0XQ0KWyAmbmJzcDsgJm5ic3A7MS43NDI1MjBdIHBjaSAwMDAwOjAwOjFmLjQ6
IHJlZyAweDIwOiBbaW8gJm5ic3A7MHhlZmEwLTB4ZWZiZl0NClsgJm5ic3A7ICZuYnNwOzEuNzQz
ODUyXSBwY2kgMDAwMDowMDoxZi41OiBbODA4NjowNmE0XSB0eXBlIDAwIGNsYXNzIDB4MGM4MDAw
DQpbICZuYnNwOyAmbmJzcDsxLjc0Mzg5MV0gcGNpIDAwMDA6MDA6MWYuNTogcmVnIDB4MTA6IFtt
ZW0gMHhmZTAxMDAwMC0weGZlMDEwZmZmXQ0KWyAmbmJzcDsgJm5ic3A7MS43NDUwMzBdIHBjaSAw
MDAwOjAxOjAwLjA6IFsxMGRlOjFmMTRdIHR5cGUgMDAgY2xhc3MgMHgwMzAwMDANClsgJm5ic3A7
ICZuYnNwOzEuNzQ1MDU2XSBwY2kgMDAwMDowMTowMC4wOiByZWcgMHgxMDogW21lbSAweGEwMDAw
MDAwLTB4YTBmZmZmZmZdDQpbICZuYnNwOyAmbmJzcDsxLjc0NTA3N10gcGNpIDAwMDA6MDE6MDAu
MDogcmVnIDB4MTQ6IFttZW0gMHg2MDAwMDAwMDAwLTB4NjAwZmZmZmZmZiA2NGJpdCBwcmVmXQ0K
WyAmbmJzcDsgJm5ic3A7MS43NDUwOTldIHBjaSAwMDAwOjAxOjAwLjA6IHJlZyAweDFjOiBbbWVt
IDB4NjAxMDAwMDAwMC0weDYwMTFmZmZmZmYgNjRiaXQgcHJlZl0NClsgJm5ic3A7ICZuYnNwOzEu
NzQ1MTEzXSBwY2kgMDAwMDowMTowMC4wOiByZWcgMHgyNDogW2lvICZuYnNwOzB4NDAwMC0weDQw
N2ZdDQpbICZuYnNwOyAmbmJzcDsxLjc0NTEyN10gcGNpIDAwMDA6MDE6MDAuMDogcmVnIDB4MzA6
IFttZW0gMHhmZmY4MDAwMC0weGZmZmZmZmZmIHByZWZdDQpbICZuYnNwOyAmbmJzcDsxLjc0NTIy
MF0gcGNpIDAwMDA6MDE6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQN
ClsgJm5ic3A7ICZuYnNwOzEuNzQ1NTI1XSBwY2kgMDAwMDowMTowMC4xOiBbMTBkZToxMGY5XSB0
eXBlIDAwIGNsYXNzIDB4MDQwMzAwDQpbICZuYnNwOyAmbmJzcDsxLjc0NTU0N10gcGNpIDAwMDA6
MDE6MDAuMTogcmVnIDB4MTA6IFttZW0gMHhhMTAwMDAwMC0weGExMDAzZmZmXQ0KWyAmbmJzcDsg
Jm5ic3A7MS43NDU3NzNdIHBjaSAwMDAwOjAxOjAwLjI6IFsxMGRlOjFhZGFdIHR5cGUgMDAgY2xh
c3MgMHgwYzAzMzANClsgJm5ic3A7ICZuYnNwOzEuNzQ1ODA1XSBwY2kgMDAwMDowMTowMC4yOiBy
ZWcgMHgxMDogW21lbSAweDYwMTIwMDAwMDAtMHg2MDEyMDNmZmZmIDY0Yml0IHByZWZdDQpbICZu
YnNwOyAmbmJzcDsxLjc0NTg0MF0gcGNpIDAwMDA6MDE6MDAuMjogcmVnIDB4MWM6IFttZW0gMHg2
MDEyMDQwMDAwLTB4NjAxMjA0ZmZmZiA2NGJpdCBwcmVmXQ0KWyAmbmJzcDsgJm5ic3A7MS43NDU5
NTFdIHBjaSAwMDAwOjAxOjAwLjI6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xk
DQpbICZuYnNwOyAmbmJzcDsxLjc0NjA1Ml0gcGNpIDAwMDA6MDE6MDAuMzogWzEwZGU6MWFkYl0g
dHlwZSAwMCBjbGFzcyAweDBjODAwMA0KWyAmbmJzcDsgJm5ic3A7MS43NDYwNzRdIHBjaSAwMDAw
OjAxOjAwLjM6IHJlZyAweDEwOiBbbWVtIDB4YTEwMDQwMDAtMHhhMTAwNGZmZl0NClsgJm5ic3A7
ICZuYnNwOzEuNzQ2MjE0XSBwY2kgMDAwMDowMTowMC4zOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQw
IEQzaG90IEQzY29sZA0KWyAmbmJzcDsgJm5ic3A7MS43NDYzMzddIHBjaSAwMDAwOjAwOjAxLjA6
IFBDSSBicmlkZ2UgdG8gW2J1cyAwMS0wNV0NClsgJm5ic3A7ICZuYnNwOzEuNzQ2MzQyXSBwY2kg
MDAwMDowMDowMS4wOiAmbmJzcDsgYnJpZGdlIHdpbmRvdyBbaW8gJm5ic3A7MHg0MDAwLTB4NGZm
Zl0NClsgJm5ic3A7ICZuYnNwOzEuNzQ2MzQ2XSBwY2kgMDAwMDowMDowMS4wOiAmbmJzcDsgYnJp
ZGdlIHdpbmRvdyBbbWVtIDB4YTAwMDAwMDAtMHhhMTBmZmZmZl0NClsgJm5ic3A7ICZuYnNwOzEu
NzQ2MzUzXSBwY2kgMDAwMDowMDowMS4wOiAmbmJzcDsgYnJpZGdlIHdpbmRvdyBbbWVtIDB4NjAw
MDAwMDAwMC0weDYwMTIwZmZmZmYgNjRiaXQgcHJlZl0NClsgJm5ic3A7ICZuYnNwOzEuNzQ2NjU5
XSBwY2kgMDAwMDowNjowMC4wOiBbMTQ0ZDphODA4XSB0eXBlIDAwIGNsYXNzIDB4MDEwODAyDQpb
ICZuYnNwOyAmbmJzcDsxLjc0NjcxM10gcGNpIDAwMDA6MDY6MDAuMDogcmVnIDB4MTA6IFttZW0g
MHhhMTMwMDAwMC0weGExMzAzZmZmIDY0Yml0XQ0KWyAmbmJzcDsgJm5ic3A7MS43NDc0ODhdIHBj
aSAwMDAwOjAwOjFiLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNl0NClsgJm5ic3A7ICZuYnNwOzEu
NzQ3NTAyXSBwY2kgMDAwMDowMDoxYi4wOiAmbmJzcDsgYnJpZGdlIHdpbmRvdyBbbWVtIDB4YTEz
MDAwMDAtMHhhMTNmZmZmZl0NClsgJm5ic3A7ICZuYnNwOzEuNzQ3NjYyXSBwY2kgMDAwMDowNzow
MC4wOiBbMTM0NDo1NDEzXSB0eXBlIDAwIGNsYXNzIDB4MDEwODAyDQpbICZuYnNwOyAmbmJzcDsx
Ljc0NzcxN10gcGNpIDAwMDA6MDc6MDAuMDogcmVnIDB4MTA6IFttZW0gMHhhMTIwMDAwMC0weGEx
MjAzZmZmIDY0Yml0XQ0KWyAmbmJzcDsgJm5ic3A7MS43NDgxOTZdIHBjaSAwMDAwOjA3OjAwLjA6
IDMxLjUwNCBHYi9zIGF2YWlsYWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSA4LjAgR1Qv
cyBQQ0llIHg0IGxpbmsgYXQgMDAwMDowMDoxZC4wIChjYXBhYmxlIG9mIDYzLjAxMiBHYi9zIHdp
dGggMTYuMCBHVC9zIFBDSWUgeDQgbGluaykNClsgJm5ic3A7ICZuYnNwOzEuNzQ4Mzk4XSBwY2kg
MDAwMDowMDoxZC4wOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDddDQpbICZuYnNwOyAmbmJzcDsxLjc0
ODQxMl0gcGNpIDAwMDA6MDA6MWQuMDogJm5ic3A7IGJyaWRnZSB3aW5kb3cgW21lbSAweGExMjAw
MDAwLTB4YTEyZmZmZmZdDQpbICZuYnNwOyAmbmJzcDsxLjc0ODU2N10gcGNpIDAwMDA6MDg6MDAu
MDogWzEwZWM6MjYwMF0gdHlwZSAwMCBjbGFzcyAweDAyMDAwMA0KWyAmbmJzcDsgJm5ic3A7MS43
NDg2MDhdIHBjaSAwMDAwOjA4OjAwLjA6IHJlZyAweDEwOiBbaW8gJm5ic3A7MHgzMDAwLTB4MzBm
Zl0NClsgJm5ic3A7ICZuYnNwOzEuNzQ4NjY2XSBwY2kgMDAwMDowODowMC4wOiByZWcgMHgxODog
W21lbSAweGExMTA0MDAwLTB4YTExMDRmZmYgNjRiaXRdDQpbICZuYnNwOyAmbmJzcDsxLjc0ODcw
MV0gcGNpIDAwMDA6MDg6MDAuMDogcmVnIDB4MjA6IFttZW0gMHhhMTEwMDAwMC0weGExMTAzZmZm
IDY0Yml0XQ0KWyAmbmJzcDsgJm5ic3A7MS43NDg5MTZdIHBjaSAwMDAwOjA4OjAwLjA6IHN1cHBv
cnRzIEQxIEQyDQpbICZuYnNwOyAmbmJzcDsxLjc0ODkxNl0gcGNpIDAwMDA6MDg6MDAuMDogUE1F
IyBzdXBwb3J0ZWQgZnJvbSBEMCBEMSBEMiBEM2hvdCBEM2NvbGQNClsgJm5ic3A7ICZuYnNwOzEu
NzQ5MjExXSBwY2kgMDAwMDowMDoxZC41OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDhdDQpbICZuYnNw
OyAmbmJzcDsxLjc0OTIxOV0gcGNpIDAwMDA6MDA6MWQuNTogJm5ic3A7IGJyaWRnZSB3aW5kb3cg
W2lvICZuYnNwOzB4MzAwMC0weDNmZmZdDQpbICZuYnNwOyAmbmJzcDsxLjc0OTIyNl0gcGNpIDAw
MDA6MDA6MWQuNTogJm5ic3A7IGJyaWRnZSB3aW5kb3cgW21lbSAweGExMTAwMDAwLTB4YTExZmZm
ZmZdDQpbICZuYnNwOyAmbmJzcDsxLjc0OTU0MF0geGVuOiByZWdpc3RlcmluZyBnc2kgMTMgdHJp
Z2dlcmluZyAxIHBvbGFyaXR5IDANClsgJm5ic3A7ICZuYnNwOzEuNzUwMTg1XSB4ZW46IHJlZ2lz
dGVyaW5nIGdzaSAxNCB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7MS43
NTY4MjddIEFDUEk6IEVDOiBpbnRlcnJ1cHQgdW5ibG9ja2VkDQpbICZuYnNwOyAmbmJzcDsxLjc1
NjgyOF0gQUNQSTogRUM6IGV2ZW50IHVuYmxvY2tlZA0KWyAmbmJzcDsgJm5ic3A7MS43NTY4NTNd
IEFDUEk6IEVDOiBFQ19DTUQvRUNfU0M9MHg2NiwgRUNfREFUQT0weDYyDQpbICZuYnNwOyAmbmJz
cDsxLjc1Njg1NF0gQUNQSTogRUM6IEdQRT0weDE0DQpbICZuYnNwOyAmbmJzcDsxLjc1Njg1NV0g
QUNQSTogXF9TQl8uUENJMC5MUENCLkVDMF86IEJvb3QgRFNEVCBFQyBpbml0aWFsaXphdGlvbiBj
b21wbGV0ZQ0KWyAmbmJzcDsgJm5ic3A7MS43NTY4NTZdIEFDUEk6IFxfU0JfLlBDSTAuTFBDQi5F
QzBfOiBFQzogVXNlZCB0byBoYW5kbGUgdHJhbnNhY3Rpb25zIGFuZCBldmVudHMNClsgJm5ic3A7
ICZuYnNwOzEuNzU2ODkxXSB4ZW46YmFsbG9vbjogSW5pdGlhbGlzaW5nIGJhbGxvb24gZHJpdmVy
DQpbICZuYnNwOyAmbmJzcDsxLjc1NjkwMF0gaW9tbXU6IERlZmF1bHQgZG9tYWluIHR5cGU6IFRy
YW5zbGF0ZWQgDQpbICZuYnNwOyAmbmJzcDsxLjc1NjkwMF0gaW9tbXU6IERNQSBkb21haW4gVExC
IGludmFsaWRhdGlvbiBwb2xpY3k6IGxhenkgbW9kZSANClsgJm5ic3A7ICZuYnNwOzEuNzU2OTAw
XSBwY2kgMDAwMDowMDowMi4wOiB2Z2FhcmI6IHNldHRpbmcgYXMgYm9vdCBWR0EgZGV2aWNlDQpb
ICZuYnNwOyAmbmJzcDsxLjc1NjkwMF0gcGNpIDAwMDA6MDA6MDIuMDogdmdhYXJiOiBWR0EgZGV2
aWNlIGFkZGVkOiBkZWNvZGVzPWlvK21lbSxvd25zPWlvK21lbSxsb2Nrcz1ub25lDQpbICZuYnNw
OyAmbmJzcDsxLjc1NjkwMF0gcGNpIDAwMDA6MDE6MDAuMDogdmdhYXJiOiBWR0EgZGV2aWNlIGFk
ZGVkOiBkZWNvZGVzPWlvK21lbSxvd25zPW5vbmUsbG9ja3M9bm9uZQ0KWyAmbmJzcDsgJm5ic3A7
MS43NTY5MDBdIHBjaSAwMDAwOjAwOjAyLjA6IHZnYWFyYjogbm8gYnJpZGdlIGNvbnRyb2wgcG9z
c2libGUNClsgJm5ic3A7ICZuYnNwOzEuNzU2OTAwXSBwY2kgMDAwMDowMTowMC4wOiB2Z2FhcmI6
IGJyaWRnZSBjb250cm9sIHBvc3NpYmxlDQpbICZuYnNwOyAmbmJzcDsxLjc1NjkwMF0gdmdhYXJi
OiBsb2FkZWQNClsgJm5ic3A7ICZuYnNwOzEuNzU2OTAwXSBTQ1NJIHN1YnN5c3RlbSBpbml0aWFs
aXplZA0KWyAmbmJzcDsgJm5ic3A7MS43NTY5MDBdIGxpYmF0YSB2ZXJzaW9uIDMuMDAgbG9hZGVk
Lg0KWyAmbmJzcDsgJm5ic3A7MS43NTY5MDBdIEFDUEk6IGJ1cyB0eXBlIFVTQiByZWdpc3RlcmVk
DQpbICZuYnNwOyAmbmJzcDsxLjc1NjkwMF0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJm
YWNlIGRyaXZlciB1c2Jmcw0KWyAmbmJzcDsgJm5ic3A7MS43NTY5MDBdIHVzYmNvcmU6IHJlZ2lz
dGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgaHViDQpbICZuYnNwOyAmbmJzcDsxLjc1NjkwMF0g
dXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgZGV2aWNlIGRyaXZlciB1c2INClsgJm5ic3A7ICZuYnNw
OzEuNzU2OTAwXSBwcHNfY29yZTogTGludXhQUFMgQVBJIHZlci4gMSByZWdpc3RlcmVkDQpbICZu
YnNwOyAmbmJzcDsxLjc1NjkwMF0gcHBzX2NvcmU6IFNvZnR3YXJlIHZlci4gNS4zLjYgLSBDb3B5
cmlnaHQgMjAwNS0yMDA3IFJvZG9sZm8gR2lvbWV0dGkgJmx0O2dpb21ldHRpQGxpbnV4Lml0Jmd0
Ow0KWyAmbmJzcDsgJm5ic3A7MS43NTY5MDBdIFBUUCBjbG9jayBzdXBwb3J0IHJlZ2lzdGVyZWQN
ClsgJm5ic3A7ICZuYnNwOzEuNzU2OTAwXSBFREFDIE1DOiBWZXI6IDMuMC4wDQpbICZuYnNwOyAm
bmJzcDsxLjc1NzE1M10gUmVnaXN0ZXJlZCBlZml2YXJzIG9wZXJhdGlvbnMNClsgJm5ic3A7ICZu
YnNwOzEuNzU3Nzk3XSBOZXRMYWJlbDogSW5pdGlhbGl6aW5nDQpbICZuYnNwOyAmbmJzcDsxLjc1
Nzc5OF0gTmV0TGFiZWw6ICZuYnNwO2RvbWFpbiBoYXNoIHNpemUgPSAxMjgNClsgJm5ic3A7ICZu
YnNwOzEuNzU3Nzk4XSBOZXRMYWJlbDogJm5ic3A7cHJvdG9jb2xzID0gVU5MQUJFTEVEIENJUFNP
djQgQ0FMSVBTTw0KWyAmbmJzcDsgJm5ic3A7MS43NTc4MDhdIE5ldExhYmVsOiAmbmJzcDt1bmxh
YmVsZWQgdHJhZmZpYyBhbGxvd2VkIGJ5IGRlZmF1bHQNClsgJm5ic3A7ICZuYnNwOzEuNzU3ODEx
XSBQQ0k6IFVzaW5nIEFDUEkgZm9yIElSUSByb3V0aW5nDQpbICZuYnNwOyAmbmJzcDsxLjg0MTgy
NF0gUENJOiBwY2lfY2FjaGVfbGluZV9zaXplIHNldCB0byA2NCBieXRlcw0KWyAmbmJzcDsgJm5i
c3A7MS44NDIzNDhdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4MDAwOWYwMDAtMHgw
MDA5ZmZmZl0NClsgJm5ic3A7ICZuYnNwOzEuODQyMzUwXSBlODIwOiByZXNlcnZlIFJBTSBidWZm
ZXIgW21lbSAweDg4ZDU4MDAwLTB4OGJmZmZmZmZdDQpbICZuYnNwOyAmbmJzcDsxLjg0MjM1MF0g
ZTgyMDogcmVzZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHg5Nzg2ZTAwMC0weDk3ZmZmZmZmXQ0KWyAm
bmJzcDsgJm5ic3A7MS44NDIzNTFdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4OTlj
NGYwMDAtMHg5YmZmZmZmZl0NClsgJm5ic3A7ICZuYnNwOzEuODQyMzUyXSBlODIwOiByZXNlcnZl
IFJBTSBidWZmZXIgW21lbSAweDE2OTBmMjAwMC0weDE2YmZmZmZmZl0NClsgJm5ic3A7ICZuYnNw
OzEuODQyMzU5XSBjbG9ja3NvdXJjZTogU3dpdGNoZWQgdG8gY2xvY2tzb3VyY2UgdHNjLWVhcmx5
DQpbICZuYnNwOyAmbmJzcDsxLjg0ODYwMF0gVkZTOiBEaXNrIHF1b3RhcyBkcXVvdF82LjYuMA0K
WyAmbmJzcDsgJm5ic3A7MS44NDg2MDhdIFZGUzogRHF1b3QtY2FjaGUgaGFzaCB0YWJsZSBlbnRy
aWVzOiA1MTIgKG9yZGVyIDAsIDQwOTYgYnl0ZXMpDQpbICZuYnNwOyAmbmJzcDsxLjg0ODYyMF0g
aHVnZXRsYmZzOiBkaXNhYmxpbmcgYmVjYXVzZSB0aGVyZSBhcmUgbm8gc3VwcG9ydGVkIGh1Z2Vw
YWdlIHNpemVzDQpbICZuYnNwOyAmbmJzcDsxLjg0ODY0N10gcG5wOiBQblAgQUNQSSBpbml0DQpb
ICZuYnNwOyAmbmJzcDsxLjg0ODkwMl0gc3lzdGVtIDAwOjAwOiBbaW8gJm5ic3A7MHgxODAwLTB4
MThmZV0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgJm5ic3A7ICZuYnNwOzEuODQ4OTA1XSBzeXN0ZW0g
MDA6MDA6IFttZW0gMHhmZDAwMDAwMC0weGZkNjlmZmZmXSBoYXMgYmVlbiByZXNlcnZlZA0KWyAm
bmJzcDsgJm5ic3A7MS44NDg5MDddIHN5c3RlbSAwMDowMDogW21lbSAweGZkNmMwMDAwLTB4ZmQ2
Y2ZmZmZdIGhhcyBiZWVuIHJlc2VydmVkDQpbICZuYnNwOyAmbmJzcDsxLjg0ODkwOF0gc3lzdGVt
IDAwOjAwOiBbbWVtIDB4ZmQ2ZjAwMDAtMHhmZGZmZmZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsg
Jm5ic3A7ICZuYnNwOzEuODQ4OTA5XSBzeXN0ZW0gMDA6MDA6IFttZW0gMHhmZTAwMDAwMC0weGZl
MDFmZmZmXSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQNClsgJm5ic3A7ICZuYnNwOzEuODQ4OTExXSBz
eXN0ZW0gMDA6MDA6IFttZW0gMHhmZTIwMDAwMC0weGZlN2ZmZmZmXSBoYXMgYmVlbiByZXNlcnZl
ZA0KWyAmbmJzcDsgJm5ic3A7MS44NDg5MTJdIHN5c3RlbSAwMDowMDogW21lbSAweGZjN2UwMDAw
LTB4ZmM3ZTBmZmZdIGhhcyBiZWVuIHJlc2VydmVkDQpbICZuYnNwOyAmbmJzcDsxLjg0ODkxM10g
c3lzdGVtIDAwOjAwOiBbbWVtIDB4ZmYwMDAwMDAtMHhmZmZmZmZmZl0gY291bGQgbm90IGJlIHJl
c2VydmVkDQpbICZuYnNwOyAmbmJzcDsxLjg0OTIwMF0gc3lzdGVtIDAwOjAxOiBbaW8gJm5ic3A7
MHgyMDAwLTB4MjBmZV0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgJm5ic3A7ICZuYnNwOzEuODQ5Mjgy
XSBzeXN0ZW0gMDA6MDI6IFtpbyAmbmJzcDsweDA2ODAtMHgwNjlmXSBoYXMgYmVlbiByZXNlcnZl
ZA0KWyAmbmJzcDsgJm5ic3A7MS44NDkyODRdIHN5c3RlbSAwMDowMjogW2lvICZuYnNwOzB4MTY0
ZS0weDE2NGZdIGhhcyBiZWVuIHJlc2VydmVkDQpbICZuYnNwOyAmbmJzcDsxLjg0OTI4NF0gc3lz
dGVtIDAwOjAyOiBbaW8gJm5ic3A7MHhmZDYwLTB4ZmQ2M10gaGFzIGJlZW4gcmVzZXJ2ZWQNClsg
Jm5ic3A7ICZuYnNwOzEuODQ5MzEzXSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSA4IHRyaWdnZXJpbmcg
MSBwb2xhcml0eSAwDQpbICZuYnNwOyAmbmJzcDsxLjg0OTQ2Ml0gc3lzdGVtIDAwOjA0OiBbaW8g
Jm5ic3A7MHgxODU0LTB4MTg1N10gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgJm5ic3A7ICZuYnNwOzEu
ODQ5NDg0XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxIHRyaWdnZXJpbmcgMSBwb2xhcml0eSAwDQpb
ICZuYnNwOyAmbmJzcDsxLjg1MDM1NF0gc3lzdGVtIDAwOjA2OiBbbWVtIDB4ZmVkMTAwMDAtMHhm
ZWQxN2ZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgJm5ic3A7ICZuYnNwOzEuODUwMzU2XSBzeXN0
ZW0gMDA6MDY6IFttZW0gMHhmZWQxODAwMC0weGZlZDE4ZmZmXSBoYXMgYmVlbiByZXNlcnZlZA0K
WyAmbmJzcDsgJm5ic3A7MS44NTAzNThdIHN5c3RlbSAwMDowNjogW21lbSAweGZlZDE5MDAwLTB4
ZmVkMTlmZmZdIGhhcyBiZWVuIHJlc2VydmVkDQpbICZuYnNwOyAmbmJzcDsxLjg1MDM1OV0gc3lz
dGVtIDAwOjA2OiBbbWVtIDB4ZTAwMDAwMDAtMHhlZmZmZmZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQN
ClsgJm5ic3A7ICZuYnNwOzEuODUwMzYwXSBzeXN0ZW0gMDA6MDY6IFttZW0gMHhmZWQyMDAwMC0w
eGZlZDNmZmZmXSBoYXMgYmVlbiByZXNlcnZlZA0KWyAmbmJzcDsgJm5ic3A7MS44NTAzNjFdIHN5
c3RlbSAwMDowNjogW21lbSAweGZlZDkwMDAwLTB4ZmVkOTNmZmZdIGNvdWxkIG5vdCBiZSByZXNl
cnZlZA0KWyAmbmJzcDsgJm5ic3A7MS44NTAzNjJdIHN5c3RlbSAwMDowNjogW21lbSAweGZlZDQ1
MDAwLTB4ZmVkOGZmZmZdIGNvdWxkIG5vdCBiZSByZXNlcnZlZA0KWyAmbmJzcDsgJm5ic3A7MS44
NTAzNjRdIHN5c3RlbSAwMDowNjogW21lbSAweGZlZTAwMDAwLTB4ZmVlZmZmZmZdIGhhcyBiZWVu
IHJlc2VydmVkDQpbICZuYnNwOyAmbmJzcDsxLjg1MDczOV0gc3lzdGVtIDAwOjA3OiBbbWVtIDB4
ZmUwMzgwMDAtMHhmZTAzOGZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgJm5ic3A7ICZuYnNwOzEu
ODUxMTc0XSBwbnA6IFBuUCBBQ1BJOiBmb3VuZCA4IGRldmljZXMNClsgJm5ic3A7ICZuYnNwOzEu
ODU4ODk0XSBQTS1UaW1lciBmYWlsZWQgY29uc2lzdGVuY3kgY2hlY2sgJm5ic3A7KDB4ZmZmZmZm
KSAtIGFib3J0aW5nLg0KWyAmbmJzcDsgJm5ic3A7MS44NTg5MjddIE5FVDogUmVnaXN0ZXJlZCBQ
Rl9JTkVUIHByb3RvY29sIGZhbWlseQ0KWyAmbmJzcDsgJm5ic3A7MS44NTg5NDBdIElQIGlkZW50
cyBoYXNoIHRhYmxlIGVudHJpZXM6IDY1NTM2IChvcmRlcjogNywgNTI0Mjg4IGJ5dGVzLCBsaW5l
YXIpDQpbICZuYnNwOyAmbmJzcDsxLjg1OTI2Ml0gdGNwX2xpc3Rlbl9wb3J0YWRkcl9oYXNoIGhh
c2ggdGFibGUgZW50cmllczogMjA0OCAob3JkZXI6IDMsIDMyNzY4IGJ5dGVzLCBsaW5lYXIpDQpb
ICZuYnNwOyAmbmJzcDsxLjg1OTI2Nl0gVGFibGUtcGVydHVyYiBoYXNoIHRhYmxlIGVudHJpZXM6
IDY1NTM2IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzLCBsaW5lYXIpDQpbICZuYnNwOyAmbmJzcDsx
Ljg1OTI2OV0gVENQIGVzdGFibGlzaGVkIGhhc2ggdGFibGUgZW50cmllczogMzI3NjggKG9yZGVy
OiA2LCAyNjIxNDQgYnl0ZXMsIGxpbmVhcikNClsgJm5ic3A7ICZuYnNwOzEuODU5Mjk4XSBUQ1Ag
YmluZCBoYXNoIHRhYmxlIGVudHJpZXM6IDMyNzY4IChvcmRlcjogNywgNTI0Mjg4IGJ5dGVzLCBs
aW5lYXIpDQpbICZuYnNwOyAmbmJzcDsxLjg1OTMzN10gVENQOiBIYXNoIHRhYmxlcyBjb25maWd1
cmVkIChlc3RhYmxpc2hlZCAzMjc2OCBiaW5kIDMyNzY4KQ0KWyAmbmJzcDsgJm5ic3A7MS44NTkz
NjFdIE1QVENQIHRva2VuIGhhc2ggdGFibGUgZW50cmllczogNDA5NiAob3JkZXI6IDQsIDk4MzA0
IGJ5dGVzLCBsaW5lYXIpDQpbICZuYnNwOyAmbmJzcDsxLjg1OTM3Ml0gVURQIGhhc2ggdGFibGUg
ZW50cmllczogMjA0OCAob3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBsaW5lYXIpDQpbICZuYnNwOyAm
bmJzcDsxLjg1OTM3OF0gVURQLUxpdGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAyMDQ4IChvcmRlcjog
NCwgNjU1MzYgYnl0ZXMsIGxpbmVhcikNClsgJm5ic3A7ICZuYnNwOzEuODU5NDAxXSBORVQ6IFJl
Z2lzdGVyZWQgUEZfVU5JWC9QRl9MT0NBTCBwcm90b2NvbCBmYW1pbHkNClsgJm5ic3A7ICZuYnNw
OzEuODU5NDA0XSBORVQ6IFJlZ2lzdGVyZWQgUEZfWERQIHByb3RvY29sIGZhbWlseQ0KWyAmbmJz
cDsgJm5ic3A7MS44NTk0MDZdIHBjaSAwMDAwOjAxOjAwLjA6IGNhbid0IGNsYWltIEJBUiA2IFtt
ZW0gMHhmZmY4MDAwMC0weGZmZmZmZmZmIHByZWZdOiBubyBjb21wYXRpYmxlIGJyaWRnZSB3aW5k
b3cNClsgJm5ic3A7ICZuYnNwOzEuODU5NDEzXSBwY2kgMDAwMDowMDoxNS4wOiBCQVIgMDogYXNz
aWduZWQgW21lbSAweDQwMTAwMDAwMDAtMHg0MDEwMDAwZmZmIDY0Yml0XQ0KWyAmbmJzcDsgJm5i
c3A7MS44NTk0NDNdIHBjaSAwMDAwOjAwOjE1LjE6IEJBUiAwOiBhc3NpZ25lZCBbbWVtIDB4NDAx
MDAwMTAwMC0weDQwMTAwMDFmZmYgNjRiaXRdDQpbICZuYnNwOyAmbmJzcDsxLjg1OTQ2N10gcGNp
IDAwMDA6MDE6MDAuMDogQkFSIDY6IGFzc2lnbmVkIFttZW0gMHhhMTA4MDAwMC0weGExMGZmZmZm
IHByZWZdDQpbICZuYnNwOyAmbmJzcDsxLjg1OTQ2OV0gcGNpIDAwMDA6MDA6MDEuMDogUENJIGJy
aWRnZSB0byBbYnVzIDAxLTA1XQ0KWyAmbmJzcDsgJm5ic3A7MS44NTk0NzFdIHBjaSAwMDAwOjAw
OjAxLjA6ICZuYnNwOyBicmlkZ2Ugd2luZG93IFtpbyAmbmJzcDsweDQwMDAtMHg0ZmZmXQ0KWyAm
bmJzcDsgJm5ic3A7MS44NTk0NzddIHBjaSAwMDAwOjAwOjAxLjA6ICZuYnNwOyBicmlkZ2Ugd2lu
ZG93IFttZW0gMHhhMDAwMDAwMC0weGExMGZmZmZmXQ0KWyAmbmJzcDsgJm5ic3A7MS44NTk0ODFd
IHBjaSAwMDAwOjAwOjAxLjA6ICZuYnNwOyBicmlkZ2Ugd2luZG93IFttZW0gMHg2MDAwMDAwMDAw
LTB4NjAxMjBmZmZmZiA2NGJpdCBwcmVmXQ0KWyAmbmJzcDsgJm5ic3A7MS44NTk0ODldIHBjaSAw
MDAwOjAwOjFiLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNl0NClsgJm5ic3A7ICZuYnNwOzEuODU5
NTA3XSBwY2kgMDAwMDowMDoxYi4wOiAmbmJzcDsgYnJpZGdlIHdpbmRvdyBbbWVtIDB4YTEzMDAw
MDAtMHhhMTNmZmZmZl0NClsgJm5ic3A7ICZuYnNwOzEuODU5NTI3XSBwY2kgMDAwMDowMDoxZC4w
OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDddDQpbICZuYnNwOyAmbmJzcDsxLjg1OTUzN10gcGNpIDAw
MDA6MDA6MWQuMDogJm5ic3A7IGJyaWRnZSB3aW5kb3cgW21lbSAweGExMjAwMDAwLTB4YTEyZmZm
ZmZdDQpbICZuYnNwOyAmbmJzcDsxLjg1OTU1N10gcGNpIDAwMDA6MDA6MWQuNTogUENJIGJyaWRn
ZSB0byBbYnVzIDA4XQ0KWyAmbmJzcDsgJm5ic3A7MS44NTk1NjBdIHBjaSAwMDAwOjAwOjFkLjU6
ICZuYnNwOyBicmlkZ2Ugd2luZG93IFtpbyAmbmJzcDsweDMwMDAtMHgzZmZmXQ0KWyAmbmJzcDsg
Jm5ic3A7MS44NTk1NzBdIHBjaSAwMDAwOjAwOjFkLjU6ICZuYnNwOyBicmlkZ2Ugd2luZG93IFtt
ZW0gMHhhMTEwMDAwMC0weGExMWZmZmZmXQ0KWyAmbmJzcDsgJm5ic3A7MS44NTk1OTBdIHBjaV9i
dXMgMDAwMDowMDogcmVzb3VyY2UgNCBbaW8gJm5ic3A7MHgwMDAwLTB4MGNmNyB3aW5kb3ddDQpb
ICZuYnNwOyAmbmJzcDsxLjg1OTU5MV0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA1IFtpbyAm
bmJzcDsweDBkMDAtMHhmZmZmIHdpbmRvd10NClsgJm5ic3A7ICZuYnNwOzEuODU5NTkyXSBwY2lf
YnVzIDAwMDA6MDA6IHJlc291cmNlIDYgW21lbSAweDAwMGEwMDAwLTB4MDAwYmZmZmYgd2luZG93
XQ0KWyAmbmJzcDsgJm5ic3A7MS44NTk1OTNdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgNyBb
bWVtIDB4OWY4MDAwMDAtMHhkZmZmZmZmZiB3aW5kb3ddDQpbICZuYnNwOyAmbmJzcDsxLjg1OTU5
NF0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA4IFttZW0gMHg0MDAwMDAwMDAwLTB4N2ZmZmZm
ZmZmZiB3aW5kb3ddDQpbICZuYnNwOyAmbmJzcDsxLjg1OTU5NV0gcGNpX2J1cyAwMDAwOjAwOiBy
ZXNvdXJjZSA5IFttZW0gMHhmYzgwMDAwMC0weGZlN2ZmZmZmIHdpbmRvd10NClsgJm5ic3A7ICZu
YnNwOzEuODU5NTk2XSBwY2lfYnVzIDAwMDA6MDE6IHJlc291cmNlIDAgW2lvICZuYnNwOzB4NDAw
MC0weDRmZmZdDQpbICZuYnNwOyAmbmJzcDsxLjg1OTU5Nl0gcGNpX2J1cyAwMDAwOjAxOiByZXNv
dXJjZSAxIFttZW0gMHhhMDAwMDAwMC0weGExMGZmZmZmXQ0KWyAmbmJzcDsgJm5ic3A7MS44NTk1
OTddIHBjaV9idXMgMDAwMDowMTogcmVzb3VyY2UgMiBbbWVtIDB4NjAwMDAwMDAwMC0weDYwMTIw
ZmZmZmYgNjRiaXQgcHJlZl0NClsgJm5ic3A7ICZuYnNwOzEuODU5NTk4XSBwY2lfYnVzIDAwMDA6
MDY6IHJlc291cmNlIDEgW21lbSAweGExMzAwMDAwLTB4YTEzZmZmZmZdDQpbICZuYnNwOyAmbmJz
cDsxLjg1OTU5OV0gcGNpX2J1cyAwMDAwOjA3OiByZXNvdXJjZSAxIFttZW0gMHhhMTIwMDAwMC0w
eGExMmZmZmZmXQ0KWyAmbmJzcDsgJm5ic3A7MS44NTk2MDBdIHBjaV9idXMgMDAwMDowODogcmVz
b3VyY2UgMCBbaW8gJm5ic3A7MHgzMDAwLTB4M2ZmZl0NClsgJm5ic3A7ICZuYnNwOzEuODU5NjAw
XSBwY2lfYnVzIDAwMDA6MDg6IHJlc291cmNlIDEgW21lbSAweGExMTAwMDAwLTB4YTExZmZmZmZd
DQpbICZuYnNwOyAmbmJzcDsxLjg1OTg4NV0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dl
cmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7ICZuYnNwOzEuODU5OTc5XSB4ZW46IC0tJmd0OyBw
aXJxPTE2IC0mZ3Q7IGlycT0xNiAoZ3NpPTE2KQ0KWyAmbmJzcDsgJm5ic3A7MS44NjIwNzldIHBj
aSAwMDAwOjAxOjAwLjE6IEQwIHBvd2VyIHN0YXRlIGRlcGVuZHMgb24gMDAwMDowMTowMC4wDQpb
ICZuYnNwOyAmbmJzcDsxLjg2MjEwN10gcGNpIDAwMDA6MDE6MDAuMjogRDAgcG93ZXIgc3RhdGUg
ZGVwZW5kcyBvbiAwMDAwOjAxOjAwLjANClsgJm5ic3A7ICZuYnNwOzEuODYyMTg0XSB4ZW46IHJl
Z2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7
MS44NjIxODddIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7ICZuYnNwOzEuODYy
MjMxXSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxOCB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAm
bmJzcDsgJm5ic3A7MS44NjIyNDBdIHhlbjogLS0mZ3Q7IHBpcnE9MTggLSZndDsgaXJxPTE4IChn
c2k9MTgpDQpbICZuYnNwOyAmbmJzcDsxLjg2MjQ2MF0gcGNpIDAwMDA6MDE6MDAuMzogRDAgcG93
ZXIgc3RhdGUgZGVwZW5kcyBvbiAwMDAwOjAxOjAwLjANClsgJm5ic3A7ICZuYnNwOzEuODYyNjM0
XSBQQ0k6IENMUyA2NCBieXRlcywgZGVmYXVsdCA2NA0KWyAmbmJzcDsgJm5ic3A7MS44NjI2NzJd
IFRyeWluZyB0byB1bnBhY2sgcm9vdGZzIGltYWdlIGFzIGluaXRyYW1mcy4uLg0KWyAmbmJzcDsg
Jm5ic3A7MS44NjI2NzVdIGNsb2Nrc291cmNlOiB0c2M6IG1hc2s6IDB4ZmZmZmZmZmZmZmZmZmZm
ZiBtYXhfY3ljbGVzOiAweDI1NWNjOWUyMjlmLCBtYXhfaWRsZV9uczogNDQwNzk1MjcyNDQwIG5z
DQpbICZuYnNwOyAmbmJzcDsxLjg2MjcyMV0gY2xvY2tzb3VyY2U6IFN3aXRjaGVkIHRvIGNsb2Nr
c291cmNlIHRzYw0KWyAmbmJzcDsgJm5ic3A7MS44NzM0MDRdIEluaXRpYWxpc2Ugc3lzdGVtIHRy
dXN0ZWQga2V5cmluZ3MNClsgJm5ic3A7ICZuYnNwOzEuODczNDExXSBLZXkgdHlwZSBibGFja2xp
c3QgcmVnaXN0ZXJlZA0KWyAmbmJzcDsgJm5ic3A7MS44NzM0NTNdIHdvcmtpbmdzZXQ6IHRpbWVz
dGFtcF9iaXRzPTM2IG1heF9vcmRlcj0yMCBidWNrZXRfb3JkZXI9MA0KWyAmbmJzcDsgJm5ic3A7
MS44NzQyOTZdIHpidWQ6IGxvYWRlZA0KWyAmbmJzcDsgJm5ic3A7MS44NzQ1ODZdIGludGVncml0
eTogUGxhdGZvcm0gS2V5cmluZyBpbml0aWFsaXplZA0KWyAmbmJzcDsgJm5ic3A7MS44Nzk5NDBd
IE5FVDogUmVnaXN0ZXJlZCBQRl9BTEcgcHJvdG9jb2wgZmFtaWx5DQpbICZuYnNwOyAmbmJzcDsx
Ljg3OTk0NV0geG9yOiBhdXRvbWF0aWNhbGx5IHVzaW5nIGJlc3QgY2hlY2tzdW1taW5nIGZ1bmN0
aW9uICZuYnNwOyBhdnggJm5ic3A7ICZuYnNwOyAmbmJzcDsgDQpbICZuYnNwOyAmbmJzcDsxLjg3
OTk0OF0gS2V5IHR5cGUgYXN5bW1ldHJpYyByZWdpc3RlcmVkDQpbICZuYnNwOyAmbmJzcDsxLjg3
OTk0OV0gQXN5bW1ldHJpYyBrZXkgcGFyc2VyICd4NTA5JyByZWdpc3RlcmVkDQpbICZuYnNwOyAm
bmJzcDsxLjg3OTk2Nl0gQmxvY2sgbGF5ZXIgU0NTSSBnZW5lcmljIChic2cpIGRyaXZlciB2ZXJz
aW9uIDAuNCBsb2FkZWQgKG1ham9yIDI0NSkNClsgJm5ic3A7ICZuYnNwOzEuODgwMDA3XSBpbyBz
Y2hlZHVsZXIgbXEtZGVhZGxpbmUgcmVnaXN0ZXJlZA0KWyAmbmJzcDsgJm5ic3A7MS44ODAwMDhd
IGlvIHNjaGVkdWxlciBreWJlciByZWdpc3RlcmVkDQpbICZuYnNwOyAmbmJzcDsxLjg4MDAyMl0g
aW8gc2NoZWR1bGVyIGJmcSByZWdpc3RlcmVkDQpbICZuYnNwOyAmbmJzcDsxLjg4MDc4OV0gYXRv
bWljNjRfdGVzdDogcGFzc2VkIGZvciB4ODYtNjQgcGxhdGZvcm0gd2l0aCBDWDggYW5kIHdpdGgg
U1NFDQpbICZuYnNwOyAmbmJzcDsxLjg4MDk0N10gcGNpZXBvcnQgMDAwMDowMDowMS4wOiBQTUU6
IFNpZ25hbGluZyB3aXRoIElSUSAxOTQNClsgJm5ic3A7ICZuYnNwOzEuODgxMTIxXSB4ZW46IHJl
Z2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7
MS44ODExMjRdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7ICZuYnNwOzEuODgx
MjkxXSBwY2llcG9ydCAwMDAwOjAwOjFiLjA6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDE5NQ0K
WyAmbmJzcDsgJm5ic3A7MS44ODE0MThdIHBjaWVwb3J0IDAwMDA6MDA6MWIuMDogQUVSOiBlbmFi
bGVkIHdpdGggSVJRIDE5NQ0KWyAmbmJzcDsgJm5ic3A7MS44ODE0ODhdIHBjaWVwb3J0IDAwMDA6
MDA6MWIuMDogRFBDOiBlbmFibGVkIHdpdGggSVJRIDE5NQ0KWyAmbmJzcDsgJm5ic3A7MS44ODE0
ODldIHBjaWVwb3J0IDAwMDA6MDA6MWIuMDogRFBDOiBlcnJvciBjb250YWlubWVudCBjYXBhYmls
aXRpZXM6IEludCBNc2cgIzAsIFJQRXh0KyBQb2lzb25lZFRMUCsgU3dUcmlnZ2VyKyBSUCBQSU8g
TG9nIDQsIERMX0FjdGl2ZUVycisNClsgJm5ic3A7ICZuYnNwOzEuODgxNzE0XSB4ZW46IHJlZ2lz
dGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7MS44
ODE3MTZdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7ICZuYnNwOzEuODgxODc3
XSBwY2llcG9ydCAwMDAwOjAwOjFkLjA6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDE5Ng0KWyAm
bmJzcDsgJm5ic3A7MS44ODE5ODRdIHBjaWVwb3J0IDAwMDA6MDA6MWQuMDogQUVSOiBlbmFibGVk
IHdpdGggSVJRIDE5Ng0KWyAmbmJzcDsgJm5ic3A7MS44ODIwNDZdIHBjaWVwb3J0IDAwMDA6MDA6
MWQuMDogRFBDOiBlbmFibGVkIHdpdGggSVJRIDE5Ng0KWyAmbmJzcDsgJm5ic3A7MS44ODIwNDdd
IHBjaWVwb3J0IDAwMDA6MDA6MWQuMDogRFBDOiBlcnJvciBjb250YWlubWVudCBjYXBhYmlsaXRp
ZXM6IEludCBNc2cgIzAsIFJQRXh0KyBQb2lzb25lZFRMUCsgU3dUcmlnZ2VyKyBSUCBQSU8gTG9n
IDQsIERMX0FjdGl2ZUVycisNClsgJm5ic3A7ICZuYnNwOzEuODgyMjU4XSB4ZW46IHJlZ2lzdGVy
aW5nIGdzaSAxNyB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7MS44ODIy
NjddIHhlbjogLS0mZ3Q7IHBpcnE9MTcgLSZndDsgaXJxPTE3IChnc2k9MTcpDQpbICZuYnNwOyAm
bmJzcDsxLjg4MjQ3N10gcGNpZXBvcnQgMDAwMDowMDoxZC41OiBQTUU6IFNpZ25hbGluZyB3aXRo
IElSUSAxOTcNClsgJm5ic3A7ICZuYnNwOzEuODgyNTgzXSBwY2llcG9ydCAwMDAwOjAwOjFkLjU6
IEFFUjogZW5hYmxlZCB3aXRoIElSUSAxOTcNClsgJm5ic3A7ICZuYnNwOzEuODgyNjU1XSBwY2ll
cG9ydCAwMDAwOjAwOjFkLjU6IERQQzogZW5hYmxlZCB3aXRoIElSUSAxOTcNClsgJm5ic3A7ICZu
YnNwOzEuODgyNjU3XSBwY2llcG9ydCAwMDAwOjAwOjFkLjU6IERQQzogZXJyb3IgY29udGFpbm1l
bnQgY2FwYWJpbGl0aWVzOiBJbnQgTXNnICMwLCBSUEV4dCsgUG9pc29uZWRUTFArIFN3VHJpZ2dl
cisgUlAgUElPIExvZyA0LCBETF9BY3RpdmVFcnIrDQpbICZuYnNwOyAmbmJzcDsxLjg4Mjk5NF0g
TW9uaXRvci1Nd2FpdCB3aWxsIGJlIHVzZWQgdG8gZW50ZXIgQy0xIHN0YXRlDQpbICZuYnNwOyAm
bmJzcDsxLjg4MzAxMl0gTW9uaXRvci1Nd2FpdCB3aWxsIGJlIHVzZWQgdG8gZW50ZXIgQy0yIHN0
YXRlDQpbICZuYnNwOyAmbmJzcDsxLjg4MzAyN10gTW9uaXRvci1Nd2FpdCB3aWxsIGJlIHVzZWQg
dG8gZW50ZXIgQy0zIHN0YXRlDQpbICZuYnNwOyAmbmJzcDsxLjg4MzAzNV0gQUNQSTogXF9TQl8u
UFIwMDogRm91bmQgMyBpZGxlIHN0YXRlcw0KWyAmbmJzcDsgJm5ic3A7MS44ODMwNDBdIGludGVs
X2lkbGU6IGludGVsX2lkbGUgeWllbGRpbmcgdG8gbm9uZQ0KWyAmbmJzcDsgJm5ic3A7MS44ODMx
NDldIEFDUEk6IEFDOiBBQyBBZGFwdGVyIFtBQ0FEXSAob24tbGluZSkNClsgJm5ic3A7ICZuYnNw
OzEuODgzMTg4XSBpbnB1dDogTGlkIFN3aXRjaCBhcyAvZGV2aWNlcy9MTlhTWVNUTTowMC9MTlhT
WUJVUzowMC9QTlAwQTA4OjAwL2RldmljZToyMC9QTlAwQzBEOjAwL2lucHV0L2lucHV0MA0KWyAm
bmJzcDsgJm5ic3A7MS44ODMxOTldIEFDUEk6IGJ1dHRvbjogTGlkIFN3aXRjaCBbTElEMF0NClsg
Jm5ic3A7ICZuYnNwOzEuODgzMjIxXSBpbnB1dDogU2xlZXAgQnV0dG9uIGFzIC9kZXZpY2VzL0xO
WFNZU1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBDMEU6MDAvaW5wdXQvaW5wdXQxDQpbICZuYnNwOyAm
bmJzcDsxLjg4MzIzMF0gQUNQSTogYnV0dG9uOiBTbGVlcCBCdXR0b24gW1NMUEJdDQpbICZuYnNw
OyAmbmJzcDsxLjg4MzI0NV0gaW5wdXQ6IFBvd2VyIEJ1dHRvbiBhcyAvZGV2aWNlcy9MTlhTWVNU
TTowMC9MTlhTWUJVUzowMC9QTlAwQzBDOjAwL2lucHV0L2lucHV0Mg0KWyAmbmJzcDsgJm5ic3A7
MS44ODMzMTZdIEFDUEk6IGJ1dHRvbjogUG93ZXIgQnV0dG9uIFtQV1JCXQ0KWyAmbmJzcDsgJm5i
c3A7MS44ODMzNDFdIGlucHV0OiBQb3dlciBCdXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06MDAv
TE5YUFdSQk46MDAvaW5wdXQvaW5wdXQzDQpbICZuYnNwOyAmbmJzcDsxLjg4MzM2Ml0gQUNQSTog
YnV0dG9uOiBQb3dlciBCdXR0b24gW1BXUkZdDQpbICZuYnNwOyAmbmJzcDsxLjg4MzUwMl0gQUNQ
STogXF9TQl8uUFIwMDogRm91bmQgMyBpZGxlIHN0YXRlcw0KWyAmbmJzcDsgJm5ic3A7MS44ODM2
MzVdIEFDUEk6IFxfU0JfLlBSMDE6IEZvdW5kIDMgaWRsZSBzdGF0ZXMNClsgJm5ic3A7ICZuYnNw
OzEuODgzNzc3XSBBQ1BJOiBcX1NCXy5QUjAyOiBGb3VuZCAzIGlkbGUgc3RhdGVzDQpbICZuYnNw
OyAmbmJzcDsxLjg4MzkyOV0gQUNQSTogXF9TQl8uUFIwMzogRm91bmQgMyBpZGxlIHN0YXRlcw0K
WyAmbmJzcDsgJm5ic3A7MS44ODQxMzldIEFDUEk6IFxfU0JfLlBSMDQ6IEZvdW5kIDMgaWRsZSBz
dGF0ZXMNClsgJm5ic3A7ICZuYnNwOzEuODg0Mjk2XSBBQ1BJOiBcX1NCXy5QUjA1OiBGb3VuZCAz
IGlkbGUgc3RhdGVzDQpbICZuYnNwOyAmbmJzcDsxLjg4NDQ5M10gQUNQSTogXF9TQl8uUFIwNjog
Rm91bmQgMyBpZGxlIHN0YXRlcw0KWyAmbmJzcDsgJm5ic3A7MS44ODQ3MTVdIEFDUEk6IFxfU0Jf
LlBSMDc6IEZvdW5kIDMgaWRsZSBzdGF0ZXMNClsgJm5ic3A7ICZuYnNwOzEuODg0OTQyXSBBQ1BJ
OiBcX1NCXy5QUjA4OiBGb3VuZCAzIGlkbGUgc3RhdGVzDQpbICZuYnNwOyAmbmJzcDsxLjg4NTE1
NF0gQUNQSTogXF9TQl8uUFIwOTogRm91bmQgMyBpZGxlIHN0YXRlcw0KWyAmbmJzcDsgJm5ic3A7
MS44ODU2NzNdIEFDUEk6IFxfU0JfLlBSMTA6IEZvdW5kIDMgaWRsZSBzdGF0ZXMNClsgJm5ic3A7
ICZuYnNwOzEuODg1OTA1XSBBQ1BJOiBcX1NCXy5QUjExOiBGb3VuZCAzIGlkbGUgc3RhdGVzDQpb
ICZuYnNwOyAmbmJzcDsxLjg4NjUwMF0gdGhlcm1hbCBMTlhUSEVSTTowMDogcmVnaXN0ZXJlZCBh
cyB0aGVybWFsX3pvbmUwDQpbICZuYnNwOyAmbmJzcDsxLjg4NjUwMV0gQUNQSTogdGhlcm1hbDog
VGhlcm1hbCBab25lIFtUWjAwXSAoODIgQykNClsgJm5ic3A7ICZuYnNwOzEuODg2OTA4XSBTZXJp
YWw6IDgyNTAvMTY1NTAgZHJpdmVyLCAzMiBwb3J0cywgSVJRIHNoYXJpbmcgZW5hYmxlZA0KWyAm
bmJzcDsgJm5ic3A7MS44ODc0MjldIEFDUEk6IGJhdHRlcnk6IFNsb3QgW0JBVDFdIChiYXR0ZXJ5
IHByZXNlbnQpDQpbICZuYnNwOyAmbmJzcDsxLjg4ODI4NV0gaHBldF9hY3BpX2FkZDogbm8gYWRk
cmVzcyBvciBpcnFzIGluIF9DUlMNClsgJm5ic3A7ICZuYnNwOzEuODg4MzIzXSBOb24tdm9sYXRp
bGUgbWVtb3J5IGRyaXZlciB2MS4zDQpbICZuYnNwOyAmbmJzcDsxLjg4ODM0N10gTGludXggYWdw
Z2FydCBpbnRlcmZhY2UgdjAuMTAzDQpbICZuYnNwOyAmbmJzcDsxLjkwODc4MF0gaW50ZWwtbHBz
cyAwMDAwOjAwOjE1LjA6IGVuYWJsaW5nIGRldmljZSAoMDAwNCAtJmd0OyAwMDA2KQ0KWyAmbmJz
cDsgJm5ic3A7MS45MDg4NThdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBw
b2xhcml0eSAxDQpbICZuYnNwOyAmbmJzcDsxLjkwODg2Ml0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJ
IDoxNg0KWyAmbmJzcDsgJm5ic3A7MS45MjU3ODVdIGludGVsLWxwc3MgMDAwMDowMDoxNS4xOiBl
bmFibGluZyBkZXZpY2UgKDAwMDQgLSZndDsgMDAwNikNClsgJm5ic3A7ICZuYnNwOzEuOTI1ODY2
XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNyB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJz
cDsgJm5ic3A7MS45MjU4NzFdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTcNClsgJm5ic3A7ICZu
YnNwOzEuOTMwOTUwXSBhaGNpIDAwMDA6MDA6MTcuMDogdmVyc2lvbiAzLjANClsgJm5ic3A7ICZu
YnNwOzEuOTMxMDQwXSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJp
dHkgMQ0KWyAmbmJzcDsgJm5ic3A7MS45MzEwNDNdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYN
ClsgJm5ic3A7ICZuYnNwOzEuOTMxMTk5XSBhaGNpIDAwMDA6MDA6MTcuMDogQUhDSSAwMDAxLjAz
MDEgMzIgc2xvdHMgMSBwb3J0cyA2IEdicHMgMHgxIGltcGwgU0FUQSBtb2RlDQpbICZuYnNwOyAm
bmJzcDsxLjkzMTIwMl0gYWhjaSAwMDAwOjAwOjE3LjA6IGZsYWdzOiA2NGJpdCBuY3Egc250ZiBw
bSBjbG8gb25seSBwaW8gc2x1bSBwYXJ0IGVtcyBkZXNvIHNhZG0gc2RzIGFwc3QgDQpbICZuYnNw
OyAmbmJzcDsxLjkzMTM4NV0gc2NzaSBob3N0MDogYWhjaQ0KWyAmbmJzcDsgJm5ic3A7MS45MzE0
MjZdIGF0YTE6IFNBVEEgbWF4IFVETUEvMTMzIGFiYXIgbTIwNDhAMHhhMTQ5MzAwMCBwb3J0IDB4
YTE0OTMxMDAgaXJxIDE5OQ0KWyAmbmJzcDsgJm5ic3A7MS45MzE1NzddIHVzYmNvcmU6IHJlZ2lz
dGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNic2VyaWFsX2dlbmVyaWMNClsgJm5ic3A7ICZu
YnNwOzEuOTMxNTgwXSB1c2JzZXJpYWw6IFVTQiBTZXJpYWwgc3VwcG9ydCByZWdpc3RlcmVkIGZv
ciBnZW5lcmljDQpbICZuYnNwOyAmbmJzcDsxLjkzMTYwMF0gaTgwNDI6IFBOUDogUFMvMiBDb250
cm9sbGVyIFtQTlAwMzAzOlBTMktdIGF0IDB4NjAsMHg2NCBpcnEgMQ0KWyAmbmJzcDsgJm5ic3A7
MS45MzE2MDFdIGk4MDQyOiBQTlA6IFBTLzIgYXBwZWFycyB0byBoYXZlIEFVWCBwb3J0IGRpc2Fi
bGVkLCBpZiB0aGlzIGlzIGluY29ycmVjdCBwbGVhc2UgYm9vdCB3aXRoIGk4MDQyLm5vcG5wDQpb
ICZuYnNwOyAmbmJzcDsxLjkzMjQyMV0gc2VyaW86IGk4MDQyIEtCRCBwb3J0IGF0IDB4NjAsMHg2
NCBpcnEgMQ0KWyAmbmJzcDsgJm5ic3A7MS45MzI0NzRdIG1vdXNlZGV2OiBQUy8yIG1vdXNlIGRl
dmljZSBjb21tb24gZm9yIGFsbCBtaWNlDQpbICZuYnNwOyAmbmJzcDsxLjkzMjYxOV0gcnRjX2Nt
b3MgMDA6MDM6IFJUQyBjYW4gd2FrZSBmcm9tIFM0DQpbICZuYnNwOyAmbmJzcDsxLjkzNDI4MV0g
cnRjX2Ntb3MgMDA6MDM6IHJlZ2lzdGVyZWQgYXMgcnRjMA0KWyAmbmJzcDsgJm5ic3A7MS45MzQ2
MzNdIHJ0Y19jbW9zIDAwOjAzOiBzZXR0aW5nIHN5c3RlbSBjbG9jayB0byAyMDIzLTEyLTI3VDE2
OjI0OjQyIFVUQyAoMTcwMzY5NDI4MikNClsgJm5ic3A7ICZuYnNwOzEuOTM0Njc0XSBydGNfY21v
cyAwMDowMzogYWxhcm1zIHVwIHRvIG9uZSBtb250aCwgeTNrLCAyNDIgYnl0ZXMgbnZyYW0NClsg
Jm5ic3A7ICZuYnNwOzEuOTM0Njg2XSBkZXZpY2UtbWFwcGVyOiBjb3JlOiBDT05GSUdfSU1BX0RJ
U0FCTEVfSFRBQkxFIGlzIGRpc2FibGVkLiBEdXBsaWNhdGUgSU1BIG1lYXN1cmVtZW50cyB3aWxs
IG5vdCBiZSByZWNvcmRlZCBpbiB0aGUgSU1BIGxvZy4NClsgJm5ic3A7ICZuYnNwOzEuOTM0Njk2
XSBkZXZpY2UtbWFwcGVyOiB1ZXZlbnQ6IHZlcnNpb24gMS4wLjMNClsgJm5ic3A7ICZuYnNwOzEu
OTM0NzM5XSBkZXZpY2UtbWFwcGVyOiBpb2N0bDogNC40NS4wLWlvY3RsICgyMDIxLTAzLTIyKSBp
bml0aWFsaXNlZDogZG0tZGV2ZWxAcmVkaGF0LmNvbQ0KWyAmbmJzcDsgJm5ic3A7MS45MzQ4MDRd
IGludGVsX3BzdGF0ZTogQ1BVIG1vZGVsIG5vdCBzdXBwb3J0ZWQNClsgJm5ic3A7ICZuYnNwOzEu
OTM1MDQxXSBlZmlmYjogcHJvYmluZyBmb3IgZWZpZmINClsgJm5ic3A7ICZuYnNwOzEuOTM2MDY2
XSBlZmlmYjogTm8gQkdSVCwgbm90IHNob3dpbmcgYm9vdCBncmFwaGljcw0KWyAmbmJzcDsgJm5i
c3A7MS45MzYwNjddIGVmaWZiOiBmcmFtZWJ1ZmZlciBhdCAweDQwMDAwMDAwMDAsIHVzaW5nIDgx
MDBrLCB0b3RhbCA4MTAwaw0KWyAmbmJzcDsgJm5ic3A7MS45MzYwNjhdIGVmaWZiOiBtb2RlIGlz
IDE5MjB4MTA4MHgzMiwgbGluZWxlbmd0aD03NjgwLCBwYWdlcz0xDQpbICZuYnNwOyAmbmJzcDsx
LjkzNjA2OV0gZWZpZmI6IHNjcm9sbGluZzogcmVkcmF3DQpbICZuYnNwOyAmbmJzcDsxLjkzNjA2
OV0gZWZpZmI6IFRydWVjb2xvcjogc2l6ZT04Ojg6ODo4LCBzaGlmdD0yNDoxNjo4OjANClsgJm5i
c3A7ICZuYnNwOzEuOTM2MTA3XSBmYmNvbjogRGVmZXJyaW5nIGNvbnNvbGUgdGFrZS1vdmVyDQpb
ICZuYnNwOyAmbmJzcDsxLjkzNjEwOF0gZmIwOiBFRkkgVkdBIGZyYW1lIGJ1ZmZlciBkZXZpY2UN
ClsgJm5ic3A7ICZuYnNwOzEuOTQ0MDk4XSBpbnB1dDogQVQgVHJhbnNsYXRlZCBTZXQgMiBrZXli
b2FyZCBhcyAvZGV2aWNlcy9wbGF0Zm9ybS9pODA0Mi9zZXJpbzAvaW5wdXQvaW5wdXQ0DQpbICZu
YnNwOyAmbmJzcDsxLjk3MzMzN10gcHN0b3JlOiBSZWdpc3RlcmVkIGVmaSBhcyBwZXJzaXN0ZW50
IHN0b3JlIGJhY2tlbmQNClsgJm5ic3A7ICZuYnNwOzEuOTczMzU0XSBoaWQ6IHJhdyBISUQgZXZl
bnRzIGRyaXZlciAoQykgSmlyaSBLb3NpbmENClsgJm5ic3A7ICZuYnNwOzEuOTczMzgxXSB1c2Jj
b3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYmhpZA0KWyAmbmJzcDsgJm5i
c3A7MS45NzMzODJdIHVzYmhpZDogVVNCIEhJRCBjb3JlIGRyaXZlcg0KWyAmbmJzcDsgJm5ic3A7
MS45NzM0NTFdIGludGVsX3BtY19jb3JlIElOVDMzQTE6MDA6ICZuYnNwO2luaXRpYWxpemVkDQpb
ICZuYnNwOyAmbmJzcDsxLjk3MzU1M10gZHJvcF9tb25pdG9yOiBJbml0aWFsaXppbmcgbmV0d29y
ayBkcm9wIG1vbml0b3Igc2VydmljZQ0KWyAmbmJzcDsgJm5ic3A7MS45NzM1OTZdIEluaXRpYWxp
emluZyBYRlJNIG5ldGxpbmsgc29ja2V0DQpbICZuYnNwOyAmbmJzcDsxLjk3MzY1NF0gTkVUOiBS
ZWdpc3RlcmVkIFBGX0lORVQ2IHByb3RvY29sIGZhbWlseQ0KWyAmbmJzcDsgJm5ic3A7Mi4xOTQx
MzNdIEZyZWVpbmcgaW5pdHJkIG1lbW9yeTogMzI3NTZLDQpbICZuYnNwOyAmbmJzcDsyLjE5ODQz
OV0gU2VnbWVudCBSb3V0aW5nIHdpdGggSVB2Ng0KWyAmbmJzcDsgJm5ic3A7Mi4xOTg0NDFdIFJQ
TCBTZWdtZW50IFJvdXRpbmcgd2l0aCBJUHY2DQpbICZuYnNwOyAmbmJzcDsyLjE5ODQ0OV0gSW4t
c2l0dSBPQU0gKElPQU0pIHdpdGggSVB2Ng0KWyAmbmJzcDsgJm5ic3A7Mi4xOTg0NjZdIG1pcDY6
IE1vYmlsZSBJUHY2DQpbICZuYnNwOyAmbmJzcDsyLjE5ODQ2OF0gTkVUOiBSZWdpc3RlcmVkIFBG
X1BBQ0tFVCBwcm90b2NvbCBmYW1pbHkNClsgJm5ic3A7ICZuYnNwOzIuMTk5MDAzXSBJUEkgc2hv
cnRoYW5kIGJyb2FkY2FzdDogZW5hYmxlZA0KWyAmbmJzcDsgJm5ic3A7Mi4xOTkwMDldIEFWWDIg
dmVyc2lvbiBvZiBnY21fZW5jL2RlYyBlbmdhZ2VkLg0KWyAmbmJzcDsgJm5ic3A7Mi4xOTkzNjRd
IEFFUyBDVFIgbW9kZSBieTggb3B0aW1pemF0aW9uIGVuYWJsZWQNClsgJm5ic3A7ICZuYnNwOzIu
MjI2OTQ2XSBzY2hlZF9jbG9jazogTWFya2luZyBzdGFibGUgKDIxOTMwOTg3MzIsIDMzODMwNjU0
KS0mZ3Q7KDIyMzQ5NjAwNzUsIC04MDMwNjg5KQ0KWyAmbmJzcDsgJm5ic3A7Mi4yMjcyMTRdIHJl
Z2lzdGVyZWQgdGFza3N0YXRzIHZlcnNpb24gMQ0KWyAmbmJzcDsgJm5ic3A7Mi4yMjc2NDBdIExv
YWRpbmcgY29tcGlsZWQtaW4gWC41MDkgY2VydGlmaWNhdGVzDQpbICZuYnNwOyAmbmJzcDsyLjIy
ODExMF0gTG9hZGVkIFguNTA5IGNlcnQgJ0J1aWxkIHRpbWUgYXV0b2dlbmVyYXRlZCBrZXJuZWwg
a2V5OiA5MGZlMmZhNzZhZDgzMmI3YzNhZTQyNDc3OTRhZDA4NDFiNGI5YWFhJw0KWyAmbmJzcDsg
Jm5ic3A7Mi4yMjg1MTNdIHpzd2FwOiBsb2FkZWQgdXNpbmcgcG9vbCBsem8vemJ1ZA0KWyAmbmJz
cDsgJm5ic3A7Mi4yMjg5NTZdIHBhZ2Vfb3duZXIgaXMgZGlzYWJsZWQNClsgJm5ic3A7ICZuYnNw
OzIuMjI5MDEyXSBLZXkgdHlwZSAuZnNjcnlwdCByZWdpc3RlcmVkDQpbICZuYnNwOyAmbmJzcDsy
LjIyOTAxM10gS2V5IHR5cGUgZnNjcnlwdC1wcm92aXNpb25pbmcgcmVnaXN0ZXJlZA0KWyAmbmJz
cDsgJm5ic3A7Mi4yMjkyMDhdIEJ0cmZzIGxvYWRlZCwgY3JjMzJjPWNyYzMyYy1nZW5lcmljLCB6
b25lZD15ZXMsIGZzdmVyaXR5PXllcw0KWyAmbmJzcDsgJm5ic3A7Mi4yMjkyNjFdIHBzdG9yZTog
VXNpbmcgY3Jhc2ggZHVtcCBjb21wcmVzc2lvbjogZGVmbGF0ZQ0KWyAmbmJzcDsgJm5ic3A7Mi4y
MjkyNjhdIEtleSB0eXBlIGJpZ19rZXkgcmVnaXN0ZXJlZA0KWyAmbmJzcDsgJm5ic3A7Mi4yMzI5
NjZdIEtleSB0eXBlIGVuY3J5cHRlZCByZWdpc3RlcmVkDQpbICZuYnNwOyAmbmJzcDsyLjIzNDY5
OF0gTG9hZGluZyBjb21waWxlZC1pbiBtb2R1bGUgWC41MDkgY2VydGlmaWNhdGVzDQpbICZuYnNw
OyAmbmJzcDsyLjIzNTA4Nl0gTG9hZGVkIFguNTA5IGNlcnQgJ0J1aWxkIHRpbWUgYXV0b2dlbmVy
YXRlZCBrZXJuZWwga2V5OiA5MGZlMmZhNzZhZDgzMmI3YzNhZTQyNDc3OTRhZDA4NDFiNGI5YWFh
Jw0KWyAmbmJzcDsgJm5ic3A7Mi4yMzUwODhdIGltYTogQWxsb2NhdGVkIGhhc2ggYWxnb3JpdGht
OiBzaGEyNTYNClsgJm5ic3A7ICZuYnNwOzIuMjM5MTM3XSBhdGExOiBTQVRBIGxpbmsgZG93biAo
U1N0YXR1cyA0IFNDb250cm9sIDMwMCkNClsgJm5ic3A7ICZuYnNwOzIuMjUyNzQxXSBpbWE6IE5v
IGFyY2hpdGVjdHVyZSBwb2xpY2llcyBmb3VuZA0KWyAmbmJzcDsgJm5ic3A7Mi4yNTI3NTJdIGV2
bTogSW5pdGlhbGlzaW5nIEVWTSBleHRlbmRlZCBhdHRyaWJ1dGVzOg0KWyAmbmJzcDsgJm5ic3A7
Mi4yNTI3NTJdIGV2bTogc2VjdXJpdHkuc2VsaW51eA0KWyAmbmJzcDsgJm5ic3A7Mi4yNTI3NTNd
IGV2bTogc2VjdXJpdHkuU01BQ0s2NCAoZGlzYWJsZWQpDQpbICZuYnNwOyAmbmJzcDsyLjI1Mjc1
M10gZXZtOiBzZWN1cml0eS5TTUFDSzY0RVhFQyAoZGlzYWJsZWQpDQpbICZuYnNwOyAmbmJzcDsy
LjI1Mjc1NF0gZXZtOiBzZWN1cml0eS5TTUFDSzY0VFJBTlNNVVRFIChkaXNhYmxlZCkNClsgJm5i
c3A7ICZuYnNwOzIuMjUyNzU0XSBldm06IHNlY3VyaXR5LlNNQUNLNjRNTUFQIChkaXNhYmxlZCkN
ClsgJm5ic3A7ICZuYnNwOzIuMjUyNzU1XSBldm06IHNlY3VyaXR5LmFwcGFybW9yDQpbICZuYnNw
OyAmbmJzcDsyLjI1Mjc1NV0gZXZtOiBzZWN1cml0eS5pbWENClsgJm5ic3A7ICZuYnNwOzIuMjUy
NzU1XSBldm06IHNlY3VyaXR5LmNhcGFiaWxpdHkNClsgJm5ic3A7ICZuYnNwOzIuMjUyNzU2XSBl
dm06IEhNQUMgYXR0cnM6IDB4MQ0KWyAmbmJzcDsgJm5ic3A7Mi4yNTMwMDVdIFBNOiAmbmJzcDsg
TWFnaWMgbnVtYmVyOiAzOjE0MDo0NDANClsgJm5ic3A7ICZuYnNwOzIuMjUzMDI1XSBjbG9ja2V2
ZW50cyBicm9hZGNhc3Q6IGhhc2ggbWF0Y2hlcw0KWyAmbmJzcDsgJm5ic3A7Mi4yNTMwNDhdIGFj
cGkgSU5UMzUxOTowMDogaGFzaCBtYXRjaGVzDQpbICZuYnNwOyAmbmJzcDsyLjI1MzEyOF0gUkFT
OiBDb3JyZWN0YWJsZSBFcnJvcnMgY29sbGVjdG9yIGluaXRpYWxpemVkLg0KWyAmbmJzcDsgJm5i
c3A7Mi4yNTQxNjFdIEZyZWVpbmcgdW51c2VkIGRlY3J5cHRlZCBtZW1vcnk6IDIwMzZLDQpbICZu
YnNwOyAmbmJzcDsyLjI1NDk1Ml0gRnJlZWluZyB1bnVzZWQga2VybmVsIGltYWdlIChpbml0bWVt
KSBtZW1vcnk6IDM2MDRLDQpbICZuYnNwOyAmbmJzcDsyLjI1NDk1NF0gV3JpdGUgcHJvdGVjdGlu
ZyB0aGUga2VybmVsIHJlYWQtb25seSBkYXRhOiAyNDU3NmsNClsgJm5ic3A7ICZuYnNwOzIuMjYx
NjQ0XSBGcmVlaW5nIHVudXNlZCBrZXJuZWwgaW1hZ2UgKHRleHQvcm9kYXRhIGdhcCkgbWVtb3J5
OiAyMDM2Sw0KWyAmbmJzcDsgJm5ic3A7Mi4yNjE4MDJdIEZyZWVpbmcgdW51c2VkIGtlcm5lbCBp
bWFnZSAocm9kYXRhL2RhdGEgZ2FwKSBtZW1vcnk6IDQ0NEsNClsgJm5ic3A7ICZuYnNwOzIuMjYx
ODA2XSByb2RhdGFfdGVzdDogYWxsIHRlc3RzIHdlcmUgc3VjY2Vzc2Z1bA0KWyAmbmJzcDsgJm5i
c3A7Mi4yNjE4MTBdIFJ1biAvaW5pdCBhcyBpbml0IHByb2Nlc3MNClsgJm5ic3A7ICZuYnNwOzIu
MjYxODExXSAmbmJzcDsgd2l0aCBhcmd1bWVudHM6DQpbICZuYnNwOyAmbmJzcDsyLjI2MTgxMV0g
Jm5ic3A7ICZuYnNwOyAvaW5pdA0KWyAmbmJzcDsgJm5ic3A7Mi4yNjE4MTJdICZuYnNwOyAmbmJz
cDsgcGxhY2Vob2xkZXINClsgJm5ic3A7ICZuYnNwOzIuMjYxODEyXSAmbmJzcDsgJm5ic3A7IHJo
Z2INClsgJm5ic3A7ICZuYnNwOzIuMjYxODEzXSAmbmJzcDsgd2l0aCBlbnZpcm9ubWVudDoNClsg
Jm5ic3A7ICZuYnNwOzIuMjYxODEzXSAmbmJzcDsgJm5ic3A7IEhPTUU9Lw0KWyAmbmJzcDsgJm5i
c3A7Mi4yNjE4MTRdICZuYnNwOyAmbmJzcDsgVEVSTT1saW51eA0KWyAmbmJzcDsgJm5ic3A7Mi4z
NTIxNTNdIHN5c3RlbWRbMV06IHN5c3RlbWQgdjI0NS45LTEuZmMzMiBydW5uaW5nIGluIHN5c3Rl
bSBtb2RlLiAoK1BBTSArQVVESVQgK1NFTElOVVggK0lNQSAtQVBQQVJNT1IgK1NNQUNLICtTWVNW
SU5JVCArVVRNUCArTElCQ1JZUFRTRVRVUCArR0NSWVBUICtHTlVUTFMgK0FDTCArWFogK0xaNCAr
U0VDQ09NUCArQkxLSUQgK0VMRlVUSUxTICtLTU9EICtJRE4yIC1JRE4gK1BDUkUyIGRlZmF1bHQt
aGllcmFyY2h5PXVuaWZpZWQpDQpbICZuYnNwOyAmbmJzcDsyLjM1MjI2MV0gc3lzdGVtZFsxXTog
RGV0ZWN0ZWQgYXJjaGl0ZWN0dXJlIHg4Ni02NC4NClsgJm5ic3A7ICZuYnNwOzIuMzUyMjYzXSBz
eXN0ZW1kWzFdOiBSdW5uaW5nIGluIGluaXRpYWwgUkFNIGRpc2suDQpbICZuYnNwOyAmbmJzcDsy
LjM1MjI4N10gc3lzdGVtZFsxXTogU2V0IGhvc3RuYW1lIHRvICZsdDtkb20wJmd0Oy4NClsgJm5i
c3A7ICZuYnNwOzIuNDE5Mjk1XSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNlIHN5c3RlbS1zeXN0
ZW1kXHgyZGNyeXB0c2V0dXAuc2xpY2UuDQpbICZuYnNwOyAmbmJzcDsyLjQxOTM1M10gc3lzdGVt
ZFsxXTogUmVhY2hlZCB0YXJnZXQgTG9jYWwgRmlsZSBTeXN0ZW1zLg0KWyAmbmJzcDsgJm5ic3A7
Mi40MTkzNjRdIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IFNsaWNlcy4NClsgJm5ic3A7ICZu
YnNwOzIuNDE5MzczXSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBTd2FwLg0KWyAmbmJzcDsg
Jm5ic3A7Mi40MTkzNzldIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IFRpbWVycy4NClsgJm5i
c3A7ICZuYnNwOzIuNDE5NTIxXSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gSm91cm5hbCBBdWRp
dCBTb2NrZXQuDQpbICZuYnNwOyAmbmJzcDsyLjQxOTYxMl0gc3lzdGVtZFsxXTogTGlzdGVuaW5n
IG9uIEpvdXJuYWwgU29ja2V0ICgvZGV2L2xvZykuDQpbICZuYnNwOyAmbmJzcDsyLjQxOTcwNl0g
c3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIEpvdXJuYWwgU29ja2V0Lg0KWyAmbmJzcDsgJm5ic3A7
Mi40MTk3OTVdIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiB1ZGV2IENvbnRyb2wgU29ja2V0Lg0K
WyAmbmJzcDsgJm5ic3A7Mi40MTk4NTVdIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiB1ZGV2IEtl
cm5lbCBTb2NrZXQuDQpbICZuYnNwOyAmbmJzcDsyLjQxOTg2M10gc3lzdGVtZFsxXTogUmVhY2hl
ZCB0YXJnZXQgU29ja2V0cy4NClsgJm5ic3A7ICZuYnNwOzIuNDIwODA2XSBzeXN0ZW1kWzFdOiBT
dGFydGluZyBDcmVhdGUgbGlzdCBvZiBzdGF0aWMgZGV2aWNlIG5vZGVzIGZvciB0aGUgY3VycmVu
dCBrZXJuZWwuLi4NClsgJm5ic3A7ICZuYnNwOzIuNDIyNTc2XSBzeXN0ZW1kWzFdOiBTdGFydGlu
ZyBKb3VybmFsIFNlcnZpY2UuLi4NClsgJm5ic3A7ICZuYnNwOzIuNDIzNTkzXSBzeXN0ZW1kWzFd
OiBTdGFydGluZyBMb2FkIEtlcm5lbCBNb2R1bGVzLi4uDQpbICZuYnNwOyAmbmJzcDsyLjQyNDUy
NV0gc3lzdGVtZFsxXTogU3RhcnRpbmcgU2V0dXAgVmlydHVhbCBDb25zb2xlLi4uDQpbICZuYnNw
OyAmbmJzcDsyLjQyNTA1N10gc3lzdGVtZFsxXTogRmluaXNoZWQgQ3JlYXRlIGxpc3Qgb2Ygc3Rh
dGljIGRldmljZSBub2RlcyBmb3IgdGhlIGN1cnJlbnQga2VybmVsLg0KWyAmbmJzcDsgJm5ic3A7
Mi40MjYxNjJdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIENyZWF0ZSBTdGF0aWMgRGV2aWNlIE5vZGVz
IGluIC9kZXYuLi4NClsgJm5ic3A7ICZuYnNwOzIuNDMzODI0XSBzeXN0ZW1kWzFdOiBGaW5pc2hl
ZCBDcmVhdGUgU3RhdGljIERldmljZSBOb2RlcyBpbiAvZGV2Lg0KWyAmbmJzcDsgJm5ic3A7Mi40
NTEzNjVdIHhlbjp4ZW5fZXZ0Y2huOiBFdmVudC1jaGFubmVsIGRldmljZSBpbnN0YWxsZWQNClsg
Jm5ic3A7ICZuYnNwOzIuNDU2NjM3XSB4ZW5fcGNpYmFjazogYmFja2VuZCBpcyB2cGNpDQpbICZu
YnNwOyAmbmJzcDsyLjQ1OTM3NF0geGVuX2FjcGlfcHJvY2Vzc29yOiBVcGxvYWRpbmcgWGVuIHBy
b2Nlc3NvciBQTSBpbmZvDQpbICZuYnNwOyAmbmJzcDsyLjQ2Mzc1NV0gc3lzdGVtZFsxXTogRmlu
aXNoZWQgTG9hZCBLZXJuZWwgTW9kdWxlcy4NClsgJm5ic3A7ICZuYnNwOzIuNDYzODAwXSBhdWRp
dDogdHlwZT0xMTMwIGF1ZGl0KDE3MDM2OTQyODMuMDI4OjIpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQy
OTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PXN5c3RlbWQtbW9kdWxlcy1sb2FkIGNv
bW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFk
ZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgJm5ic3A7Mi40NjQ3MzddIHN5
c3RlbWRbMV06IFN0YXJ0aW5nIEFwcGx5IEtlcm5lbCBWYXJpYWJsZXMuLi4NClsgJm5ic3A7ICZu
YnNwOzIuNDcyMjY3XSBzeXN0ZW1kWzFdOiBTdGFydGVkIEpvdXJuYWwgU2VydmljZS4NClsgJm5i
c3A7ICZuYnNwOzIuNDcyMzUxXSBhdWRpdDogdHlwZT0xMTMwIGF1ZGl0KDE3MDM2OTQyODMuMDM2
OjMpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0
PXN5c3RlbWQtam91cm5hbGQgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5
c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNw
OyAmbmJzcDsyLjQ3MjgwMV0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNjk0MjgzLjAzNzo0
KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0ndW5pdD1z
eXN0ZW1kLXN5c2N0bCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVt
ZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7ICZu
YnNwOzIuNDg0MjYyXSBhdWRpdDogdHlwZT0xMTMwIGF1ZGl0KDE3MDM2OTQyODMuMDQ4OjUpOiBw
aWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PXN5c3Rl
bWQtdG1wZmlsZXMtc2V0dXAgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5
c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNw
OyAmbmJzcDsyLjQ4NTI0MF0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNjk0MjgzLjA0OTo2
KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0ndW5pdD1z
eXN0ZW1kLXZjb25zb2xlLXNldHVwIGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVt
ZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAm
bmJzcDsgJm5ic3A7Mi41NTEwMThdIHBjaWJhY2sgMDAwMDowMDoxNC4zOiB4ZW5fcGNpYmFjazog
c2VpemluZyBkZXZpY2UNClsgJm5ic3A7ICZuYnNwOzIuNTUyMjgwXSB4ZW46IHJlZ2lzdGVyaW5n
IGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7Mi41NTIyODdd
IEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7ICZuYnNwOzIuNjYxMTkwXSBwY2li
YWNrIDAwMDA6MDg6MDAuMDogeGVuX3BjaWJhY2s6IHNlaXppbmcgZGV2aWNlDQpbICZuYnNwOyAm
bmJzcDsyLjY2MTUxNV0geGVuOiByZWdpc3RlcmluZyBnc2kgMTcgdHJpZ2dlcmluZyAwIHBvbGFy
aXR5IDENClsgJm5ic3A7ICZuYnNwOzIuNjYxNTI1XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE3
DQpbICZuYnNwOyAmbmJzcDszLjcxOTUyOV0gYXVkaXQ6IHR5cGU9MTMzNCBhdWRpdCgxNzAzNjk0
Mjg0LjI4Mzo3KTogcHJvZy1pZD01IG9wPVVOTE9BRA0KWyAmbmJzcDsgJm5ic3A7My43MTk2Mjld
IGF1ZGl0OiB0eXBlPTEzMzQgYXVkaXQoMTcwMzY5NDI4NC4yODM6OCk6IHByb2ctaWQ9NCBvcD1V
TkxPQUQNClsgJm5ic3A7ICZuYnNwOzMuNzE5NzEyXSBhdWRpdDogdHlwZT0xMzM0IGF1ZGl0KDE3
MDM2OTQyODQuMjgzOjkpOiBwcm9nLWlkPTMgb3A9VU5MT0FEDQpbICZuYnNwOyAmbmJzcDszLjc4
NjUyN10gYXVkaXQ6IHR5cGU9MTMzNCBhdWRpdCgxNzAzNjk0Mjg0LjM1MDoxMCk6IHByb2ctaWQ9
NiBvcD1MT0FEDQpbICZuYnNwOyAmbmJzcDs0LjAzNDA0MF0gd21pX2J1cyB3bWlfYnVzLVBOUDBD
MTQ6MDI6IFdRIGRhdGEgYmxvY2sgcXVlcnkgY29udHJvbCBtZXRob2Qgbm90IGZvdW5kDQpbICZu
YnNwOyAmbmJzcDs0LjAzNDA0NV0gd21pX2J1cyB3bWlfYnVzLVBOUDBDMTQ6MDI6IFdRIGRhdGEg
YmxvY2sgcXVlcnkgY29udHJvbCBtZXRob2Qgbm90IGZvdW5kDQpbICZuYnNwOyAmbmJzcDs0LjAz
NDA0N10gd21pX2J1cyB3bWlfYnVzLVBOUDBDMTQ6MDI6IFdRIGRhdGEgYmxvY2sgcXVlcnkgY29u
dHJvbCBtZXRob2Qgbm90IGZvdW5kDQpbICZuYnNwOyAmbmJzcDs0LjAzNDA0OF0gd21pX2J1cyB3
bWlfYnVzLVBOUDBDMTQ6MDI6IFdRIGRhdGEgYmxvY2sgcXVlcnkgY29udHJvbCBtZXRob2Qgbm90
IGZvdW5kDQpbICZuYnNwOyAmbmJzcDs0LjAzNDE5M10gYWNwaSBQTlAwQzE0OjA0OiBkdXBsaWNh
dGUgV01JIEdVSUQgMDU5MDEyMjEtRDU2Ni0xMUQxLUIyRjAtMDBBMEM5MDYyOTEwIChmaXJzdCBp
bnN0YW5jZSB3YXMgb24gUE5QMEMxNDowMCkNClsgJm5ic3A7ICZuYnNwOzQuMDM0MjM3XSBhY3Bp
IFBOUDBDMTQ6MDU6IGR1cGxpY2F0ZSBXTUkgR1VJRCAwNTkwMTIyMS1ENTY2LTExRDEtQjJGMC0w
MEEwQzkwNjI5MTAgKGZpcnN0IGluc3RhbmNlIHdhcyBvbiBQTlAwQzE0OjAwKQ0KWyAmbmJzcDsg
Jm5ic3A7NC4xMzY5NDVdIGlucHV0OiBFTEFOMDUwQTowMSAwNEYzOjMxNTggTW91c2UgYXMgL2Rl
dmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjE1LjEvaTJjX2Rlc2lnbndhcmUuMS9pMmMtMS9pMmMt
RUxBTjA1MEE6MDEvMDAxODowNEYzOjMxNTguMDAwMS9pbnB1dC9pbnB1dDUNClsgJm5ic3A7ICZu
YnNwOzQuMTM3MDQ1XSBpbnB1dDogRUxBTjA1MEE6MDEgMDRGMzozMTU4IFRvdWNocGFkIGFzIC9k
ZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxNS4xL2kyY19kZXNpZ253YXJlLjEvaTJjLTEvaTJj
LUVMQU4wNTBBOjAxLzAwMTg6MDRGMzozMTU4LjAwMDEvaW5wdXQvaW5wdXQ3DQpbICZuYnNwOyAm
bmJzcDs0LjEzNzEzN10gaGlkLWdlbmVyaWMgMDAxODowNEYzOjMxNTguMDAwMTogaW5wdXQsaGlk
cmF3MDogSTJDIEhJRCB2MS4wMCBNb3VzZSBbRUxBTjA1MEE6MDEgMDRGMzozMTU4XSBvbiBpMmMt
RUxBTjA1MEE6MDENClsgJm5ic3A7ICZuYnNwOzQuMTQxMjc0XSB4ZW46IHJlZ2lzdGVyaW5nIGdz
aSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7NC4xNDEyODFdIEFs
cmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7ICZuYnNwOzQuMTQxMzQ3XSB4aGNpX2hj
ZCAwMDAwOjAwOjE0LjA6IHhIQ0kgSG9zdCBDb250cm9sbGVyDQpbICZuYnNwOyAmbmJzcDs0LjE0
MzM1MV0geGhjaV9oY2QgMDAwMDowMDoxNC4wOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3Np
Z25lZCBidXMgbnVtYmVyIDENClsgJm5ic3A7ICZuYnNwOzQuMTQ0NDU5XSB4aGNpX2hjZCAwMDAw
OjAwOjE0LjA6IGhjYyBwYXJhbXMgMHgyMDAwNzdjMSBoY2kgdmVyc2lvbiAweDExMCBxdWlya3Mg
MHgwMDAwMDAwMDAwMDA5ODEwDQpbICZuYnNwOyAmbmJzcDs0LjE0ODcyMl0gbnZtZSAwMDAwOjA2
OjAwLjA6IHBsYXRmb3JtIHF1aXJrOiBzZXR0aW5nIHNpbXBsZSBzdXNwZW5kDQpbICZuYnNwOyAm
bmJzcDs0LjE0ODgxMl0gbnZtZSBudm1lMDogcGNpIGZ1bmN0aW9uIDAwMDA6MDY6MDAuMA0KWyAm
bmJzcDsgJm5ic3A7NC4xNDkxMDddIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcg
MCBwb2xhcml0eSAxDQpbICZuYnNwOyAmbmJzcDs0LjE0OTExMl0gQWxyZWFkeSBzZXR1cCB0aGUg
R1NJIDoxNg0KWyAmbmJzcDsgJm5ic3A7NC4xNDk3NzddIG52bWUgMDAwMDowNzowMC4wOiBwbGF0
Zm9ybSBxdWlyazogc2V0dGluZyBzaW1wbGUgc3VzcGVuZA0KWyAmbmJzcDsgJm5ic3A7NC4xNTAw
OTVdIG52bWUgbnZtZTE6IHBjaSBmdW5jdGlvbiAwMDAwOjA3OjAwLjANClsgJm5ic3A7ICZuYnNw
OzQuMTUwMjYwXSB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IHhIQ0kgSG9zdCBDb250cm9sbGVyDQpb
ICZuYnNwOyAmbmJzcDs0LjE1MDMyMF0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmlu
ZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7ICZuYnNwOzQuMTUwMzI2XSBBbHJlYWR5IHNldHVwIHRo
ZSBHU0kgOjE2DQpbICZuYnNwOyAmbmJzcDs0LjE1MDQyMF0geGhjaV9oY2QgMDAwMDowMDoxNC4w
OiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDINClsgJm5ic3A7
ICZuYnNwOzQuMTUwNDI2XSB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IEhvc3Qgc3VwcG9ydHMgVVNC
IDMuMSBFbmhhbmNlZCBTdXBlclNwZWVkDQpbICZuYnNwOyAmbmJzcDs0LjE1MDUxMV0gdXNiIHVz
YjE6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMiwg
YmNkRGV2aWNlPSA1LjE1DQpbICZuYnNwOyAmbmJzcDs0LjE1MDUxNF0gdXNiIHVzYjE6IE5ldyBV
U0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xDQpbICZu
YnNwOyAmbmJzcDs0LjE1MDUxNV0gdXNiIHVzYjE6IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9s
bGVyDQpbICZuYnNwOyAmbmJzcDs0LjE1MDUxNl0gdXNiIHVzYjE6IE1hbnVmYWN0dXJlcjogTGlu
dXggNS4xNS45NC0xLnF1YmVzLmZjMzIueDg2XzY0IHhoY2ktaGNkDQpbICZuYnNwOyAmbmJzcDs0
LjE1MDUxOF0gdXNiIHVzYjE6IFNlcmlhbE51bWJlcjogMDAwMDowMDoxNC4wDQpbICZuYnNwOyAm
bmJzcDs0LjE1MjM2Nl0gaHViIDEtMDoxLjA6IFVTQiBodWIgZm91bmQNClsgJm5ic3A7ICZuYnNw
OzQuMTUyNDA1XSBodWIgMS0wOjEuMDogMTYgcG9ydHMgZGV0ZWN0ZWQNClsgJm5ic3A7ICZuYnNw
OzQuMTU0MDY0XSB1c2IgdXNiMjogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIs
IGlkUHJvZHVjdD0wMDAzLCBiY2REZXZpY2U9IDUuMTUNClsgJm5ic3A7ICZuYnNwOzQuMTU0MDY2
XSB1c2IgdXNiMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9MiwgU2Vy
aWFsTnVtYmVyPTENClsgJm5ic3A7ICZuYnNwOzQuMTU0MDY3XSB1c2IgdXNiMjogUHJvZHVjdDog
eEhDSSBIb3N0IENvbnRyb2xsZXINClsgJm5ic3A7ICZuYnNwOzQuMTU0MDY4XSB1c2IgdXNiMjog
TWFudWZhY3R1cmVyOiBMaW51eCA1LjE1Ljk0LTEucXViZXMuZmMzMi54ODZfNjQgeGhjaS1oY2QN
ClsgJm5ic3A7ICZuYnNwOzQuMTU0MDY5XSB1c2IgdXNiMjogU2VyaWFsTnVtYmVyOiAwMDAwOjAw
OjE0LjANClsgJm5ic3A7ICZuYnNwOzQuMTU0MTc0XSBodWIgMi0wOjEuMDogVVNCIGh1YiBmb3Vu
ZA0KWyAmbmJzcDsgJm5ic3A7NC4xNTQxOTRdIGh1YiAyLTA6MS4wOiA4IHBvcnRzIGRldGVjdGVk
DQpbICZuYnNwOyAmbmJzcDs0LjE1NTIxMF0gdXNiOiBwb3J0IHBvd2VyIG1hbmFnZW1lbnQgbWF5
IGJlIHVucmVsaWFibGUNClsgJm5ic3A7ICZuYnNwOzQuMTU2MDcyXSB4ZW46IHJlZ2lzdGVyaW5n
IGdzaSAxOCB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7NC4xNTYwNzdd
IEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTgNClsgJm5ic3A7ICZuYnNwOzQuMTU2MTI4XSB4aGNp
X2hjZCAwMDAwOjAxOjAwLjI6IHhIQ0kgSG9zdCBDb250cm9sbGVyDQpbICZuYnNwOyAmbmJzcDs0
LjE1NjE3N10geGhjaV9oY2QgMDAwMDowMTowMC4yOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBh
c3NpZ25lZCBidXMgbnVtYmVyIDMNClsgJm5ic3A7ICZuYnNwOzQuMTU2NDIwXSBudm1lIG52bWUw
OiBtaXNzaW5nIG9yIGludmFsaWQgU1VCTlFOIGZpZWxkLg0KWyAmbmJzcDsgJm5ic3A7NC4xNTY0
NDFdIG52bWUgbnZtZTA6IFNodXRkb3duIHRpbWVvdXQgc2V0IHRvIDggc2Vjb25kcw0KWyAmbmJz
cDsgJm5ic3A7NC4xNTY3NzldIHhoY2lfaGNkIDAwMDA6MDE6MDAuMjogaGNjIHBhcmFtcyAweDAx
ODBmZjA1IGhjaSB2ZXJzaW9uIDB4MTEwIHF1aXJrcyAweDAwMDAwMDAwMDAwMDAwMTANClsgJm5i
c3A7ICZuYnNwOzQuMTU2OTY4XSB4aGNpX2hjZCAwMDAwOjAxOjAwLjI6IHhIQ0kgSG9zdCBDb250
cm9sbGVyDQpbICZuYnNwOyAmbmJzcDs0LjE1NzA0MF0geGhjaV9oY2QgMDAwMDowMTowMC4yOiBu
ZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDQNClsgJm5ic3A7ICZu
YnNwOzQuMTU3MDQyXSB4aGNpX2hjZCAwMDAwOjAxOjAwLjI6IEhvc3Qgc3VwcG9ydHMgVVNCIDMu
MSBFbmhhbmNlZCBTdXBlclNwZWVkDQpbICZuYnNwOyAmbmJzcDs0LjE1NzExOV0gdXNiIHVzYjM6
IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMiwgYmNk
RGV2aWNlPSA1LjE1DQpbICZuYnNwOyAmbmJzcDs0LjE1NzEyMF0gdXNiIHVzYjM6IE5ldyBVU0Ig
ZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xDQpbICZuYnNw
OyAmbmJzcDs0LjE1NzEyMV0gdXNiIHVzYjM6IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVy
DQpbICZuYnNwOyAmbmJzcDs0LjE1NzEyMl0gdXNiIHVzYjM6IE1hbnVmYWN0dXJlcjogTGludXgg
NS4xNS45NC0xLnF1YmVzLmZjMzIueDg2XzY0IHhoY2ktaGNkDQpbICZuYnNwOyAmbmJzcDs0LjE1
NzEyM10gdXNiIHVzYjM6IFNlcmlhbE51bWJlcjogMDAwMDowMTowMC4yDQpbICZuYnNwOyAmbmJz
cDs0LjE1NzIxNl0gaHViIDMtMDoxLjA6IFVTQiBodWIgZm91bmQNClsgJm5ic3A7ICZuYnNwOzQu
MTU3MjM2XSBodWIgMy0wOjEuMDogMiBwb3J0cyBkZXRlY3RlZA0KWyAmbmJzcDsgJm5ic3A7NC4x
NTc1MDVdIHVzYiB1c2I0OiBXZSBkb24ndCBrbm93IHRoZSBhbGdvcml0aG1zIGZvciBMUE0gZm9y
IHRoaXMgaG9zdCwgZGlzYWJsaW5nIExQTS4NClsgJm5ic3A7ICZuYnNwOzQuMTU3NTQ3XSB1c2Ig
dXNiNDogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAz
LCBiY2REZXZpY2U9IDUuMTUNClsgJm5ic3A7ICZuYnNwOzQuMTU3NTQ4XSB1c2IgdXNiNDogTmV3
IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTENClsg
Jm5ic3A7ICZuYnNwOzQuMTU3NTQ5XSB1c2IgdXNiNDogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRy
b2xsZXINClsgJm5ic3A7ICZuYnNwOzQuMTU3NTUwXSB1c2IgdXNiNDogTWFudWZhY3R1cmVyOiBM
aW51eCA1LjE1Ljk0LTEucXViZXMuZmMzMi54ODZfNjQgeGhjaS1oY2QNClsgJm5ic3A7ICZuYnNw
OzQuMTU3NTUwXSB1c2IgdXNiNDogU2VyaWFsTnVtYmVyOiAwMDAwOjAxOjAwLjINClsgJm5ic3A7
ICZuYnNwOzQuMTU3NjYyXSBodWIgNC0wOjEuMDogVVNCIGh1YiBmb3VuZA0KWyAmbmJzcDsgJm5i
c3A7NC4xNTc2NzddIGh1YiA0LTA6MS4wOiA0IHBvcnRzIGRldGVjdGVkDQpbICZuYnNwOyAmbmJz
cDs0LjE3MTY3N10gbnZtZSBudm1lMDogMTIvMC8wIGRlZmF1bHQvcmVhZC9wb2xsIHF1ZXVlcw0K
WyAmbmJzcDsgJm5ic3A7NC4xNzQ4NTNdICZuYnNwO252bWUwbjE6IHAxIHAyIHAzIHA0IHA1IHA2
IHA3IHA4DQpbICZuYnNwOyAmbmJzcDs0LjE4Mjk0NF0gbnZtZSBudm1lMTogYWxsb2NhdGVkIDY0
IE1pQiBob3N0IG1lbW9yeSBidWZmZXIuDQpbICZuYnNwOyAmbmJzcDs0LjE4NDIwOV0gaW5wdXQ6
IEVMQU4wNTBBOjAxIDA0RjM6MzE1OCBNb3VzZSBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6
MDA6MTUuMS9pMmNfZGVzaWdud2FyZS4xL2kyYy0xL2kyYy1FTEFOMDUwQTowMS8wMDE4OjA0RjM6
MzE1OC4wMDAxL2lucHV0L2lucHV0OA0KWyAmbmJzcDsgJm5ic3A7NC4xODQzMDNdIGlucHV0OiBF
TEFOMDUwQTowMSAwNEYzOjMxNTggVG91Y2hwYWQgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAw
OjAwOjE1LjEvaTJjX2Rlc2lnbndhcmUuMS9pMmMtMS9pMmMtRUxBTjA1MEE6MDEvMDAxODowNEYz
OjMxNTguMDAwMS9pbnB1dC9pbnB1dDEwDQpbICZuYnNwOyAmbmJzcDs0LjE4NDM4MF0gaGlkLW11
bHRpdG91Y2ggMDAxODowNEYzOjMxNTguMDAwMTogaW5wdXQsaGlkcmF3MDogSTJDIEhJRCB2MS4w
MCBNb3VzZSBbRUxBTjA1MEE6MDEgMDRGMzozMTU4XSBvbiBpMmMtRUxBTjA1MEE6MDENClsgJm5i
c3A7ICZuYnNwOzQuMjA0NDYwXSBudm1lIG52bWUxOiAxMi8wLzAgZGVmYXVsdC9yZWFkL3BvbGwg
cXVldWVzDQpbICZuYnNwOyAmbmJzcDs0LjIxMTQ3MF0gJm5ic3A7bnZtZTFuMTogcDIgcDMgcDQg
cDUgcDYNClsgJm5ic3A7ICZuYnNwOzQuMjUyMjY3XSBBQ1BJIFdhcm5pbmc6IFxfU0IuUENJMC5H
RlgwLl9EU006IEFyZ3VtZW50ICM0IHR5cGUgbWlzbWF0Y2ggLSBGb3VuZCBbQnVmZmVyXSwgQUNQ
SSByZXF1aXJlcyBbUGFja2FnZV0gKDIwMjEwNzMwL25zYXJndW1lbnRzLTYxKQ0KWyAmbmJzcDsg
Jm5ic3A7NC4yNTIzMTRdIEFDUEkgV2FybmluZzogXF9TQi5QQ0kwLlBFRzAuUEVHUC5fRFNNOiBB
cmd1bWVudCAjNCB0eXBlIG1pc21hdGNoIC0gRm91bmQgW0J1ZmZlcl0sIEFDUEkgcmVxdWlyZXMg
W1BhY2thZ2VdICgyMDIxMDczMC9uc2FyZ3VtZW50cy02MSkNClsgJm5ic3A7ICZuYnNwOzQuMjUy
NDg2XSBwY2kgMDAwMDowMTowMC4wOiBvcHRpbXVzIGNhcGFiaWxpdGllczogZW5hYmxlZCwgc3Rh
dHVzIGR5bmFtaWMgcG93ZXIsIGhkYSBiaW9zIGNvZGVjIHN1cHBvcnRlZA0KWyAmbmJzcDsgJm5i
c3A7NC4yNTI0ODldIFZHQSBzd2l0Y2hlcm9vOiBkZXRlY3RlZCBPcHRpbXVzIERTTSBtZXRob2Qg
XF9TQl8uUENJMC5QRUcwLlBFR1AgaGFuZGxlDQpbICZuYnNwOyAmbmJzcDs0LjI1MjQ5MF0gbm91
dmVhdTogZGV0ZWN0ZWQgUFIgc3VwcG9ydCwgd2lsbCBub3QgdXNlIERTTQ0KWyAmbmJzcDsgJm5i
c3A7NC4yNTI1MTddIG5vdXZlYXUgMDAwMDowMTowMC4wOiBlbmFibGluZyBkZXZpY2UgKDAwMDYg
LSZndDsgMDAwNykNClsgJm5ic3A7ICZuYnNwOzQuMjUyNTkwXSB4ZW46IHJlZ2lzdGVyaW5nIGdz
aSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7NC4yNTI1OTZdIEFs
cmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7ICZuYnNwOzQuMjU5NDk5XSB4ZW46IHJl
Z2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7
NC4yNTk1MDhdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7ICZuYnNwOzQuMjYx
NTgwXSBub3V2ZWF1IDAwMDA6MDE6MDAuMDogTlZJRElBIFRVMTA2ICgxNjYwMDBhMSkNClsgJm5i
c3A7ICZuYnNwOzQuMjg3NTQ2XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAg
cG9sYXJpdHkgMQ0KWyAmbmJzcDsgJm5ic3A7NC4yODc1NTNdIEFscmVhZHkgc2V0dXAgdGhlIEdT
SSA6MTYNClsgJm5ic3A7ICZuYnNwOzQuMjg5MTczXSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0g
VlQtZCBhY3RpdmUgZm9yIGdmeCBhY2Nlc3MNClsgJm5ic3A7ICZuYnNwOzQuMjg5MTc2XSBpOTE1
IDAwMDA6MDA6MDIuMDogdmdhYXJiOiBkZWFjdGl2YXRlIHZnYSBjb25zb2xlDQpbICZuYnNwOyAm
bmJzcDs0LjMzMzYwNV0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IGJpb3M6IHZlcnNpb24gOTAuMDYu
NTkuMDAuNzMNClsgJm5ic3A7ICZuYnNwOzQuMzM0MDA1XSBub3V2ZWF1IDAwMDA6MDE6MDAuMDog
cG11OiBmaXJtd2FyZSB1bmF2YWlsYWJsZQ0KWyAmbmJzcDsgJm5ic3A7NC4zMzQ2MTNdIG5vdXZl
YXUgMDAwMDowMTowMC4wOiBmYjogODE5MiBNaUIgR0REUjYNClsgJm5ic3A7ICZuYnNwOzQuMzM2
NTE0XSBpOTE1IDAwMDA6MDA6MDIuMDogdmdhYXJiOiBjaGFuZ2VkIFZHQSBkZWNvZGVzOiBvbGRk
ZWNvZGVzPWlvK21lbSxkZWNvZGVzPW5vbmU6b3ducz1pbyttZW0NClsgJm5ic3A7ICZuYnNwOzQu
MzM2ODA0XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gRmluaXNoZWQgbG9hZGluZyBETUMgZmly
bXdhcmUgaTkxNS9rYmxfZG1jX3ZlcjFfMDQuYmluICh2MS40KQ0KWyAmbmJzcDsgJm5ic3A7NC4z
NDY3NDRdIG5vdXZlYXUgMDAwMDowMTowMC4wOiBEUk06IFZSQU06IDgxOTIgTWlCDQpbICZuYnNw
OyAmbmJzcDs0LjM0Njc0Nl0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogR0FSVDogNTM2ODcw
OTEyIE1pQg0KWyAmbmJzcDsgJm5ic3A7NC4zNDY3NDddIG5vdXZlYXUgMDAwMDowMTowMC4wOiBE
Uk06IEJJVCB0YWJsZSAnQScgbm90IGZvdW5kDQpbICZuYnNwOyAmbmJzcDs0LjM0Njc0OF0gbm91
dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogQklUIHRhYmxlICdMJyBub3QgZm91bmQNClsgJm5ic3A7
ICZuYnNwOzQuMzQ2NzQ5XSBub3V2ZWF1IDAwMDA6MDE6MDAuMDogRFJNOiBUTURTIHRhYmxlIHZl
cnNpb24gMi4wDQpbICZuYnNwOyAmbmJzcDs0LjM0Njc1MF0gbm91dmVhdSAwMDAwOjAxOjAwLjA6
IERSTTogRENCIHZlcnNpb24gNC4xDQpbICZuYnNwOyAmbmJzcDs0LjM0Njc1MV0gbm91dmVhdSAw
MDAwOjAxOjAwLjA6IERSTTogRENCIG91dHAgMDA6IDAyMDAyZjUyIDAwMDIwMDEwDQpbICZuYnNw
OyAmbmJzcDs0LjM0Njc1Ml0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENCIG91dHAgMDE6
IDAxODEwZjM2IDA0NjAwMDEwDQpbICZuYnNwOyAmbmJzcDs0LjM0Njc1M10gbm91dmVhdSAwMDAw
OjAxOjAwLjA6IERSTTogRENCIG91dHAgMDI6IDAxODEwZjMyIDAwMDIwMDEwDQpbICZuYnNwOyAm
bmJzcDs0LjM0Njc1NF0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENCIGNvbm4gMDA6IDAw
MDAxMDQ2DQpbICZuYnNwOyAmbmJzcDs0LjM0Njc1NV0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERS
TTogRENCIGNvbm4gMDI6IDAwMDEwMjYxDQpbICZuYnNwOyAmbmJzcDs0LjM0NzA4MV0gbm91dmVh
dSAwMDAwOjAxOjAwLjA6IERSTTogTU06IHVzaW5nIENPUFkgZm9yIGJ1ZmZlciBjb3BpZXMNClsg
Jm5ic3A7ICZuYnNwOzQuMzczMzcxXSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gUGFuZWwgaXMg
bWlzc2luZyBIRFIgc3RhdGljIG1ldGFkYXRhLiBQb3NzaWJsZSBzdXBwb3J0IGZvciBJbnRlbCBI
RFIgYmFja2xpZ2h0IGludGVyZmFjZSBpcyBub3QgdXNlZC4gSWYgeW91ciBiYWNrbGlnaHQgY29u
dHJvbHMgZG9uJ3Qgd29yayB0cnkgYm9vdGluZyB3aXRoIGk5MTUuZW5hYmxlX2RwY2RfYmFja2xp
Z2h0PTMuIG5lZWRzIHRoaXMsIHBsZWFzZSBmaWxlIGEgX25ld18gYnVnIHJlcG9ydCBvbiBkcm0v
aTkxNSwgc2VlIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9kcm0vaW50ZWwvLS93aWtp
cy9Ib3ctdG8tZmlsZS1pOTE1LWJ1Z3MgZm9yIGRldGFpbHMuDQpbICZuYnNwOyAmbmJzcDs0LjM3
MzU0M10gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dIFtFTkNPREVSOjEwMjpEREkgQy9QSFkgQ10g
aXMgZGlzYWJsZWQvaW4gRFNJIG1vZGUgd2l0aCBhbiB1bmdhdGVkIERESSBjbG9jaywgZ2F0ZSBp
dA0KWyAmbmJzcDsgJm5ic3A7NC4zOTc4MDhdIHVzYiAxLTI6IG5ldyBmdWxsLXNwZWVkIFVTQiBk
ZXZpY2UgbnVtYmVyIDIgdXNpbmcgeGhjaV9oY2QNClsgJm5ic3A7ICZuYnNwOzQuNDAxNzk1XSBu
b3V2ZWF1IDAwMDA6MDE6MDAuMDogW2RybV0gQ2Fubm90IGZpbmQgYW55IGNydGMgb3Igc2l6ZXMN
ClsgJm5ic3A7ICZuYnNwOzQuNDAzMjUwXSBbZHJtXSBJbml0aWFsaXplZCBub3V2ZWF1IDEuMy4x
IDIwMTIwODAxIGZvciAwMDAwOjAxOjAwLjAgb24gbWlub3IgMQ0KWyAmbmJzcDsgJm5ic3A7NC40
MDMyNTNdIG5vdXZlYXUgMDAwMDowMTowMC4wOiBEUk06IERpc2FibGluZyBQQ0kgcG93ZXIgbWFu
YWdlbWVudCB0byBhdm9pZCBidWcNClsgJm5ic3A7ICZuYnNwOzQuNDU0NzgzXSBub3V2ZWF1IDAw
MDA6MDE6MDAuMDogW2RybV0gQ2Fubm90IGZpbmQgYW55IGNydGMgb3Igc2l6ZXMNClsgJm5ic3A7
ICZuYnNwOzQuNTA3ODAxXSBub3V2ZWF1IDAwMDA6MDE6MDAuMDogW2RybV0gQ2Fubm90IGZpbmQg
YW55IGNydGMgb3Igc2l6ZXMNClsgJm5ic3A7ICZuYnNwOzQuNTMwODc2XSB1c2IgMS0yOiBOZXcg
VVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MDRkOSwgaWRQcm9kdWN0PWZjNDksIGJjZERldmlj
ZT0gMy4zMA0KWyAmbmJzcDsgJm5ic3A7NC41MzA4ODhdIHVzYiAxLTI6IE5ldyBVU0IgZGV2aWNl
IHN0cmluZ3M6IE1mcj0wLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0wDQpbICZuYnNwOyAmbmJz
cDs0LjUzMDg5NF0gdXNiIDEtMjogUHJvZHVjdDogVVNCIEdhbWluZyBNb3VzZQ0KWyAmbmJzcDsg
Jm5ic3A7NC41MzExMTddIHVzYiAxLTI6IERldmljZSBpcyBub3QgYXV0aG9yaXplZCBmb3IgdXNh
Z2UNClsgJm5ic3A7ICZuYnNwOzQuNTM1ODQ3XSBpbnB1dDogVVNCIEdhbWluZyBNb3VzZSBhcyAv
ZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MTQuMC91c2IxLzEtMi8xLTI6MS4wLzAwMDM6MDRE
OTpGQzQ5LjAwMDIvaW5wdXQvaW5wdXQxMQ0KWyAmbmJzcDsgJm5ic3A7NC41MzYxNDFdIGhpZC1n
ZW5lcmljIDAwMDM6MDREOTpGQzQ5LjAwMDI6IGlucHV0LGhpZHJhdzE6IFVTQiBISUQgdjEuMTAg
TW91c2UgW1VTQiBHYW1pbmcgTW91c2VdIG9uIHVzYi0wMDAwOjAwOjE0LjAtMi9pbnB1dDANClsg
Jm5ic3A7ICZuYnNwOzQuNTM4ODQxXSBpbnB1dDogVVNCIEdhbWluZyBNb3VzZSBhcyAvZGV2aWNl
cy9wY2kwMDAwOjAwLzAwMDA6MDA6MTQuMC91c2IxLzEtMi8xLTI6MS4xLzAwMDM6MDREOTpGQzQ5
LjAwMDMvaW5wdXQvaW5wdXQxMg0KWyAmbmJzcDsgJm5ic3A7NC41OTEyMDFdIGhpZC1nZW5lcmlj
IDAwMDM6MDREOTpGQzQ5LjAwMDM6IGlucHV0LGhpZHJhdzI6IFVTQiBISUQgdjEuMTAgS2V5Ym9h
cmQgW1VTQiBHYW1pbmcgTW91c2VdIG9uIHVzYi0wMDAwOjAwOjE0LjAtMi9pbnB1dDENClsgJm5i
c3A7ICZuYnNwOzQuNTk2Njk3XSBpbnB1dDogVVNCIEdhbWluZyBNb3VzZSBDb25zdW1lciBDb250
cm9sIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxNC4wL3VzYjEvMS0yLzEtMjoxLjIv
MDAwMzowNEQ5OkZDNDkuMDAwNC9pbnB1dC9pbnB1dDEzDQpbICZuYnNwOyAmbmJzcDs0LjY0NDg3
Nl0gdXNiIDEtNTogbmV3IGhpZ2gtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgMyB1c2luZyB4aGNp
X2hjZA0KWyAmbmJzcDsgJm5ic3A7NC42NDgzNTNdIGlucHV0OiBVU0IgR2FtaW5nIE1vdXNlIGFz
IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxNC4wL3VzYjEvMS0yLzEtMjoxLjIvMDAwMzow
NEQ5OkZDNDkuMDAwNC9pbnB1dC9pbnB1dDE0DQpbICZuYnNwOyAmbmJzcDs0LjY0ODk3M10gaGlk
LWdlbmVyaWMgMDAwMzowNEQ5OkZDNDkuMDAwNDogaW5wdXQsaGlkZGV2OTYsaGlkcmF3MzogVVNC
IEhJRCB2MS4xMCBEZXZpY2UgW1VTQiBHYW1pbmcgTW91c2VdIG9uIHVzYi0wMDAwOjAwOjE0LjAt
Mi9pbnB1dDINClsgJm5ic3A7ICZuYnNwOzQuNjQ5MDY2XSB1c2IgMS0yOiBhdXRob3JpemVkIHRv
IGNvbm5lY3QNClsgJm5ic3A7ICZuYnNwOzQuNzgyMDkxXSB1c2IgMS01OiBOZXcgVVNCIGRldmlj
ZSBmb3VuZCwgaWRWZW5kb3I9MDQwOCwgaWRQcm9kdWN0PWEwNjEsIGJjZERldmljZT0gMC4wNA0K
WyAmbmJzcDsgJm5ic3A7NC43ODIwOTNdIHVzYiAxLTU6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6
IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0wDQpbICZuYnNwOyAmbmJzcDs0Ljc4MjA5
NF0gdXNiIDEtNTogUHJvZHVjdDogSEQgVXNlciBGYWNpbmcNClsgJm5ic3A7ICZuYnNwOzQuNzgy
MDk1XSB1c2IgMS01OiBNYW51ZmFjdHVyZXI6IFN1bnBsdXNJVCBJbmMNClsgJm5ic3A7ICZuYnNw
OzQuNzgyMjE0XSB1c2IgMS01OiBEZXZpY2UgaXMgbm90IGF1dGhvcml6ZWQgZm9yIHVzYWdlDQpb
ICZuYnNwOyAmbmJzcDs0Ljg5NTg4Nl0gdXNiIDEtMTQ6IG5ldyBmdWxsLXNwZWVkIFVTQiBkZXZp
Y2UgbnVtYmVyIDQgdXNpbmcgeGhjaV9oY2QNClsgJm5ic3A7ICZuYnNwOzUuMDI1MDI2XSB1c2Ig
MS0xNDogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTgwODcsIGlkUHJvZHVjdD0wMDI2
LCBiY2REZXZpY2U9IDAuMDINClsgJm5ic3A7ICZuYnNwOzUuMDI1MDM5XSB1c2IgMS0xNDogTmV3
IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTAsIFByb2R1Y3Q9MCwgU2VyaWFsTnVtYmVyPTANClsg
Jm5ic3A7ICZuYnNwOzUuMDI1MzMyXSB1c2IgMS0xNDogRGV2aWNlIGlzIG5vdCBhdXRob3JpemVk
IGZvciB1c2FnZQ0KWyAmbmJzcDsgJm5ic3A7NS41MTU2NDddIFtkcm1dIEluaXRpYWxpemVkIGk5
MTUgMS42LjAgMjAyMDExMDMgZm9yIDAwMDA6MDA6MDIuMCBvbiBtaW5vciAwDQpbICZuYnNwOyAm
bmJzcDs1LjUxNzg2N10gQUNQSTogdmlkZW86IFtGaXJtd2FyZSBCdWddOiBBQ1BJKFBFR1ApIGRl
ZmluZXMgX0RPRCBidXQgbm90IF9ET1MNClsgJm5ic3A7ICZuYnNwOzUuNTE3ODk5XSBBQ1BJOiB2
aWRlbzogVmlkZW8gRGV2aWNlIFtQRUdQXSAobXVsdGktaGVhZDogeWVzICZuYnNwO3JvbTogbm8g
Jm5ic3A7cG9zdDogbm8pDQpbICZuYnNwOyAmbmJzcDs1LjUxODQwNV0gaW5wdXQ6IFZpZGVvIEJ1
cyBhcyAvZGV2aWNlcy9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQTA4OjAwL2RldmljZTow
MC9MTlhWSURFTzowMC9pbnB1dC9pbnB1dDE1DQpbICZuYnNwOyAmbmJzcDs1LjUyMzU2OV0gQUNQ
STogdmlkZW86IFZpZGVvIERldmljZSBbR0ZYMF0gKG11bHRpLWhlYWQ6IHllcyAmbmJzcDtyb206
IG5vICZuYnNwO3Bvc3Q6IG5vKQ0KWyAmbmJzcDsgJm5ic3A7NS41MjQxNTBdIGlucHV0OiBWaWRl
byBCdXMgYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAvUE5QMEEwODowMC9MTlhW
SURFTzowMS9pbnB1dC9pbnB1dDE2DQpbICZuYnNwOyAmbmJzcDs1LjUyNDY0OF0gdmdhX3N3aXRj
aGVyb286IGVuYWJsZWQNClsgJm5ic3A7ICZuYnNwOzUuNTYxMzMxXSBmYmNvbjogaTkxNWRybWZi
IChmYjApIGlzIHByaW1hcnkgZGV2aWNlDQpbICZuYnNwOyAmbmJzcDs1LjU2MTMzM10gZmJjb246
IERlZmVycmluZyBjb25zb2xlIHRha2Utb3Zlcg0KWyAmbmJzcDsgJm5ic3A7NS41NjEzMzRdIGk5
MTUgMDAwMDowMDowMi4wOiBbZHJtXSBmYjA6IGk5MTVkcm1mYiBmcmFtZSBidWZmZXIgZGV2aWNl
DQpbICZuYnNwOyAxMC4xMTA3NTNdIEtleSB0eXBlIHRydXN0ZWQgcmVnaXN0ZXJlZA0KWyAmbmJz
cDsgMTAuMTM0Mzc5XSBrYXVkaXRkX3ByaW50a19za2I6IDQ0IGNhbGxiYWNrcyBzdXBwcmVzc2Vk
DQpbICZuYnNwOyAxMC4xMzQzODFdIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzY5NDI5MC42
OTg6NTUpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1
bml0PXN5c3RlbWQtY3J5cHRzZXR1cEBsdWtzXHgyZDM2OTliZmQ5XHgyZGI2N2VceDJkNDFhMlx4
MmQ4M2VlXHgyZGMyYjU2ZmJhZTFhMiBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3Rl
bWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycNClsg
Jm5ic3A7IDEwLjQ4NjI3M10gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNjk0MjkxLjA1MDo1
Nik6IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9
ZHJhY3V0LWluaXRxdWV1ZSBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3RlbWQvc3lz
dGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7
IDEwLjUyMDUwOF0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNjk0MjkxLjA4NDo1Nyk6IHBp
ZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9c3lzdGVt
ZC1mc2NrLXJvb3QgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQi
IGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAxMC41
MjY3ODFdIEVYVDQtZnMgKGRtLTApOiBtb3VudGVkIGZpbGVzeXN0ZW0gd2l0aCBvcmRlcmVkIGRh
dGEgbW9kZS4gT3B0czogKG51bGwpLiBRdW90YSBtb2RlOiBub25lLg0KWyAmbmJzcDsgMTAuNTQw
NDI5XSBhdWRpdDogdHlwZT0xMzM0IGF1ZGl0KDE3MDM2OTQyOTEuMTA0OjU4KTogcHJvZy1pZD0y
MSBvcD1VTkxPQUQNClsgJm5ic3A7IDEwLjU0MDQzM10gYXVkaXQ6IHR5cGU9MTMzNCBhdWRpdCgx
NzAzNjk0MjkxLjEwNDo1OSk6IHByb2ctaWQ9MjAgb3A9VU5MT0FEDQpbICZuYnNwOyAxMC41NDA0
MzRdIGF1ZGl0OiB0eXBlPTEzMzQgYXVkaXQoMTcwMzY5NDI5MS4xMDQ6NjApOiBwcm9nLWlkPTE5
IG9wPVVOTE9BRA0KWyAmbmJzcDsgMTAuNTQxMzg3XSBhdWRpdDogdHlwZT0xMzM0IGF1ZGl0KDE3
MDM2OTQyOTEuMTA1OjYxKTogcHJvZy1pZD0xOCBvcD1VTkxPQUQNClsgJm5ic3A7IDEwLjU0MTM4
OF0gYXVkaXQ6IHR5cGU9MTMzNCBhdWRpdCgxNzAzNjk0MjkxLjEwNTo2Mik6IHByb2ctaWQ9MTcg
b3A9VU5MT0FEDQpbICZuYnNwOyAxMC41NDE5NTJdIGF1ZGl0OiB0eXBlPTEzMzQgYXVkaXQoMTcw
MzY5NDI5MS4xMDY6NjMpOiBwcm9nLWlkPTE2IG9wPVVOTE9BRA0KWyAmbmJzcDsgMTAuNTQyMDUy
XSBhdWRpdDogdHlwZT0xMzM0IGF1ZGl0KDE3MDM2OTQyOTEuMTA2OjY0KTogcHJvZy1pZD0xNSBv
cD1VTkxPQUQNClsgJm5ic3A7IDEwLjc0NzYyMl0gc3lzdGVtZC1qb3VybmFsZFsyODddOiBSZWNl
aXZlZCBTSUdURVJNIGZyb20gUElEIDEgKHN5c3RlbWQpLg0KWyAmbmJzcDsgMTAuODE3NTg4XSBz
eXN0ZW1kWzFdOiBSVEMgY29uZmlndXJlZCBpbiBsb2NhbHRpbWUsIGFwcGx5aW5nIGRlbHRhIG9m
IC0zMDAgbWludXRlcyB0byBzeXN0ZW0gdGltZS4NClsgJm5ic3A7IDEwLjgzMjg4N10gc3lzdGVt
ZFsxXTogc3lzdGVtZCB2MjQ1LjktMS5mYzMyIHJ1bm5pbmcgaW4gc3lzdGVtIG1vZGUuICgrUEFN
ICtBVURJVCArU0VMSU5VWCArSU1BIC1BUFBBUk1PUiArU01BQ0sgK1NZU1ZJTklUICtVVE1QICtM
SUJDUllQVFNFVFVQICtHQ1JZUFQgK0dOVVRMUyArQUNMICtYWiArTFo0ICtTRUNDT01QICtCTEtJ
RCArRUxGVVRJTFMgK0tNT0QgK0lETjIgLUlETiArUENSRTIgZGVmYXVsdC1oaWVyYXJjaHk9dW5p
ZmllZCkNClsgJm5ic3A7IDEwLjgzMzAwMF0gc3lzdGVtZFsxXTogRGV0ZWN0ZWQgYXJjaGl0ZWN0
dXJlIHg4Ni02NC4NClsgJm5ic3A7IDEwLjgzMzM0N10gc3lzdGVtZFsxXTogU2V0IGhvc3RuYW1l
IHRvICZsdDtkb20wJmd0Oy4NClsgJm5ic3A7IDEwLjg5MDM3Nl0gc3lzdGVtZFsxXTogL3Vzci9s
aWIvc3lzdGVtZC9zeXN0ZW0vdXNiZ3VhcmQuc2VydmljZToxNTogUElERmlsZT0gcmVmZXJlbmNl
cyBhIHBhdGggYmVsb3cgbGVnYWN5IGRpcmVjdG9yeSAvdmFyL3J1bi8sIHVwZGF0aW5nIC92YXIv
cnVuL3VzYmd1YXJkLnBpZCDihpIgL3J1bi91c2JndWFyZC5waWQ7IHBsZWFzZSB1cGRhdGUgdGhl
IHVuaXQgZmlsZSBhY2NvcmRpbmdseS4NClsgJm5ic3A7IDEwLjkyNzM5Ml0gc3lzdGVtZFsxXTog
Q29uZmlndXJhdGlvbiBmaWxlIC9ldGMvc3lzdGVtZC9zeXN0ZW0vcXViZXMtdm1Ac3lzLXVzYi5z
ZXJ2aWNlLmQvNTBfYXV0b3N0YXJ0LmNvbmYgaXMgbWFya2VkIHdvcmxkLWluYWNjZXNzaWJsZS4g
VGhpcyBoYXMgbm8gZWZmZWN0IGFzIGNvbmZpZ3VyYXRpb24gZGF0YSBpcyBhY2Nlc3NpYmxlIHZp
YSBBUElzIHdpdGhvdXQgcmVzdHJpY3Rpb25zLiBQcm9jZWVkaW5nIGFueXdheS4NClsgJm5ic3A7
IDEwLjk5MjAzOV0gc3lzdGVtZFsxXTogaW5pdHJkLXN3aXRjaC1yb290LnNlcnZpY2U6IFN1Y2Nl
ZWRlZC4NClsgJm5ic3A7IDEwLjk5MjIyN10gc3lzdGVtZFsxXTogU3RvcHBlZCBTd2l0Y2ggUm9v
dC4NClsgJm5ic3A7IDEwLjk5MjQ3NF0gc3lzdGVtZFsxXTogc3lzdGVtZC1qb3VybmFsZC5zZXJ2
aWNlOiBTY2hlZHVsZWQgcmVzdGFydCBqb2IsIHJlc3RhcnQgY291bnRlciBpcyBhdCAxLg0KWyAm
bmJzcDsgMTAuOTkyNjY3XSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNlIHN5c3RlbS1nZXR0eS5z
bGljZS4NClsgJm5ic3A7IDEwLjk5Mjg3MF0gc3lzdGVtZFsxXTogQ3JlYXRlZCBzbGljZSBzeXN0
ZW0tbW9kcHJvYmUuc2xpY2UuDQpbICZuYnNwOyAxMC45OTMwNTZdIHN5c3RlbWRbMV06IENyZWF0
ZWQgc2xpY2Ugc3lzdGVtLXF1YmVzXHgyZHZtLnNsaWNlLg0KWyAmbmJzcDsgMTAuOTkzMjQwXSBz
eXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNlIHN5c3RlbS1zZXJpYWxceDJkZ2V0dHkuc2xpY2UuDQpb
ICZuYnNwOyAxMC45OTM0MjNdIHN5c3RlbWRbMV06IENyZWF0ZWQgc2xpY2Ugc3lzdGVtLXN5c3Rl
bWRceDJkZnNjay5zbGljZS4NClsgJm5ic3A7IDEwLjk5MzU5OV0gc3lzdGVtZFsxXTogQ3JlYXRl
ZCBzbGljZSBVc2VyIGFuZCBTZXNzaW9uIFNsaWNlLg0KWyAmbmJzcDsgMTAuOTkzNjI2XSBzeXN0
ZW1kWzFdOiBDb25kaXRpb24gY2hlY2sgcmVzdWx0ZWQgaW4gRGlzcGF0Y2ggUGFzc3dvcmQgUmVx
dWVzdHMgdG8gQ29uc29sZSBEaXJlY3RvcnkgV2F0Y2ggYmVpbmcgc2tpcHBlZC4NClsgJm5ic3A7
IDEwLjk5MzgwMV0gc3lzdGVtZFsxXTogU2V0IHVwIGF1dG9tb3VudCBBcmJpdHJhcnkgRXhlY3V0
YWJsZSBGaWxlIEZvcm1hdHMgRmlsZSBTeXN0ZW0gQXV0b21vdW50IFBvaW50Lg0KWyAmbmJzcDsg
MTAuOTkzODM5XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBCbG9jayBEZXZpY2UgUHJlcGFy
YXRpb24gZm9yIC9kZXYvbWFwcGVyL2x1a3MtMzY5OWJmZDktYjY3ZS00MWEyLTgzZWUtYzJiNTZm
YmFlMWEyLg0KWyAmbmJzcDsgMTAuOTkzODY1XSBzeXN0ZW1kWzFdOiBTdG9wcGVkIHRhcmdldCBT
d2l0Y2ggUm9vdC4NClsgJm5ic3A7IDEwLjk5Mzg4Nl0gc3lzdGVtZFsxXTogU3RvcHBlZCB0YXJn
ZXQgSW5pdHJkIEZpbGUgU3lzdGVtcy4NClsgJm5ic3A7IDEwLjk5MzkwM10gc3lzdGVtZFsxXTog
U3RvcHBlZCB0YXJnZXQgSW5pdHJkIFJvb3QgRmlsZSBTeXN0ZW0uDQpbICZuYnNwOyAxMC45OTM5
MjldIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IFJlbW90ZSBFbmNyeXB0ZWQgVm9sdW1lcy4N
ClsgJm5ic3A7IDEwLjk5Mzk1Ml0gc3lzdGVtZFsxXTogUmVhY2hlZCB0YXJnZXQgUmVtb3RlIEZp
bGUgU3lzdGVtcy4NClsgJm5ic3A7IDEwLjk5Mzk3Nl0gc3lzdGVtZFsxXTogUmVhY2hlZCB0YXJn
ZXQgU2xpY2VzLg0KWyAmbmJzcDsgMTAuOTk0MDAwXSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdl
dCBTd2FwLg0KWyAmbmJzcDsgMTAuOTk0MDczXSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gRGV2
aWNlLW1hcHBlciBldmVudCBkYWVtb24gRklGT3MuDQpbICZuYnNwOyAxMC45OTQ5MjBdIHN5c3Rl
bWRbMV06IExpc3RlbmluZyBvbiBQcm9jZXNzIENvcmUgRHVtcCBTb2NrZXQuDQpbICZuYnNwOyAx
MC45OTQ5ODVdIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiBpbml0Y3RsIENvbXBhdGliaWxpdHkg
TmFtZWQgUGlwZS4NClsgJm5ic3A7IDEwLjk5NTA4N10gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9u
IHVkZXYgQ29udHJvbCBTb2NrZXQuDQpbICZuYnNwOyAxMC45OTUxODVdIHN5c3RlbWRbMV06IExp
c3RlbmluZyBvbiB1ZGV2IEtlcm5lbCBTb2NrZXQuDQpbICZuYnNwOyAxMC45OTUyODVdIHN5c3Rl
bWRbMV06IExpc3RlbmluZyBvbiBVc2VyIERhdGFiYXNlIE1hbmFnZXIgU29ja2V0Lg0KWyAmbmJz
cDsgMTAuOTk1NDMzXSBzeXN0ZW1kWzFdOiBDb25kaXRpb24gY2hlY2sgcmVzdWx0ZWQgaW4gSHVn
ZSBQYWdlcyBGaWxlIFN5c3RlbSBiZWluZyBza2lwcGVkLg0KWyAmbmJzcDsgMTAuOTk2ODAxXSBz
eXN0ZW1kWzFdOiBNb3VudGluZyBQT1NJWCBNZXNzYWdlIFF1ZXVlIEZpbGUgU3lzdGVtLi4uDQpb
ICZuYnNwOyAxMC45OTc5ODRdIHN5c3RlbWRbMV06IE1vdW50aW5nIE1vdW50IC9wcm9jL3hlbiBm
aWxlcy4uLg0KWyAmbmJzcDsgMTAuOTk5MjQ0XSBzeXN0ZW1kWzFdOiBNb3VudGluZyBLZXJuZWwg
RGVidWcgRmlsZSBTeXN0ZW0uLi4NClsgJm5ic3A7IDExLjAwMDYyOV0gc3lzdGVtZFsxXTogTW91
bnRpbmcgS2VybmVsIFRyYWNlIEZpbGUgU3lzdGVtLi4uDQpbICZuYnNwOyAxMS4wMDA5ODBdIHN5
c3RlbWRbMV06IHRtcC5tb3VudDogRGlyZWN0b3J5IC90bXAgdG8gbW91bnQgb3ZlciBpcyBub3Qg
ZW1wdHksIG1vdW50aW5nIGFueXdheS4NClsgJm5ic3A7IDExLjAwMjE1OF0gc3lzdGVtZFsxXTog
TW91bnRpbmcgVGVtcG9yYXJ5IERpcmVjdG9yeSAoL3RtcCkuLi4NClsgJm5ic3A7IDExLjAwMzU1
OV0gc3lzdGVtZFsxXTogU3RhcnRpbmcgQ3JlYXRlIGxpc3Qgb2Ygc3RhdGljIGRldmljZSBub2Rl
cyBmb3IgdGhlIGN1cnJlbnQga2VybmVsLi4uDQpbICZuYnNwOyAxMS4wMDQ3OTNdIHN5c3RlbWRb
MV06IFN0YXJ0aW5nIE1vbml0b3Jpbmcgb2YgTFZNMiBtaXJyb3JzLCBzbmFwc2hvdHMgZXRjLiB1
c2luZyBkbWV2ZW50ZCBvciBwcm9ncmVzcyBwb2xsaW5nLi4uDQpbICZuYnNwOyAxMS4wMDQ4OTld
IHN5c3RlbWRbMV06IENvbmRpdGlvbiBjaGVjayByZXN1bHRlZCBpbiBMb2FkIEtlcm5lbCBNb2R1
bGUgY29uZmlnZnMgYmVpbmcgc2tpcHBlZC4NClsgJm5ic3A7IDExLjAwNjI3NV0gc3lzdGVtZFsx
XTogTW91bnRpbmcgS2VybmVsIENvbmZpZ3VyYXRpb24gRmlsZSBTeXN0ZW0uLi4NClsgJm5ic3A7
IDExLjAwNjM2OV0gc3lzdGVtZFsxXTogQ29uZGl0aW9uIGNoZWNrIHJlc3VsdGVkIGluIExvYWQg
S2VybmVsIE1vZHVsZSBkcm0gYmVpbmcgc2tpcHBlZC4NClsgJm5ic3A7IDExLjAwNzc0MV0gc3lz
dGVtZFsxXTogU3RhcnRpbmcgTG9hZCBLZXJuZWwgTW9kdWxlIGZ1c2UuLi4NClsgJm5ic3A7IDEx
LjAwODAwMF0gc3lzdGVtZFsxXTogcGx5bW91dGgtc3dpdGNoLXJvb3Quc2VydmljZTogU3VjY2Vl
ZGVkLg0KWyAmbmJzcDsgMTEuMDA4MjEzXSBzeXN0ZW1kWzFdOiBTdG9wcGVkIFBseW1vdXRoIHN3
aXRjaCByb290IHNlcnZpY2UuDQpbICZuYnNwOyAxMS4wMDg3ODJdIHN5c3RlbWRbMV06IENvbmRp
dGlvbiBjaGVjayByZXN1bHRlZCBpbiBTZXQgVXAgQWRkaXRpb25hbCBCaW5hcnkgRm9ybWF0cyBi
ZWluZyBza2lwcGVkLg0KWyAmbmJzcDsgMTEuMDA4ODM2XSBzeXN0ZW1kWzFdOiBTdG9wcGVkIEpv
dXJuYWwgU2VydmljZS4NClsgJm5ic3A7IDExLjAxMDY0OF0gc3lzdGVtZFsxXTogU3RhcnRpbmcg
Sm91cm5hbCBTZXJ2aWNlLi4uDQpbICZuYnNwOyAxMS4wMTI0MTldIHN5c3RlbWRbMV06IFN0YXJ0
aW5nIExvYWQgS2VybmVsIE1vZHVsZXMuLi4NClsgJm5ic3A7IDExLjAxMzc1M10gc3lzdGVtZFsx
XTogU3RhcnRpbmcgUmVtb3VudCBSb290IGFuZCBLZXJuZWwgRmlsZSBTeXN0ZW1zLi4uDQpbICZu
YnNwOyAxMS4wMTQ3ODVdIGZ1c2U6IGluaXQgKEFQSSB2ZXJzaW9uIDcuMzQpDQpbICZuYnNwOyAx
MS4wMTUyMTZdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIFJlcGFydGl0aW9uIFJvb3QgRGlzay4uLg0K
WyAmbmJzcDsgMTEuMDE2OTc0XSBzeXN0ZW1kWzFdOiBTdGFydGluZyB1ZGV2IENvbGRwbHVnIGFs
bCBEZXZpY2VzLi4uDQpbICZuYnNwOyAxMS4wMTg3NzNdIHN5c3RlbWRbMV06IHN5c3Jvb3QubW91
bnQ6IFN1Y2NlZWRlZC4NClsgJm5ic3A7IDExLjAxOTI4Ml0gc3lzdGVtZFsxXTogTW91bnRlZCBQ
T1NJWCBNZXNzYWdlIFF1ZXVlIEZpbGUgU3lzdGVtLg0KWyAmbmJzcDsgMTEuMDE5NDY1XSBzeXN0
ZW1kWzFdOiBNb3VudGVkIE1vdW50IC9wcm9jL3hlbiBmaWxlcy4NClsgJm5ic3A7IDExLjAxOTYz
N10gc3lzdGVtZFsxXTogTW91bnRlZCBLZXJuZWwgRGVidWcgRmlsZSBTeXN0ZW0uDQpbICZuYnNw
OyAxMS4wMTk4MTNdIHN5c3RlbWRbMV06IE1vdW50ZWQgS2VybmVsIFRyYWNlIEZpbGUgU3lzdGVt
Lg0KWyAmbmJzcDsgMTEuMDE5OTY0XSBzeXN0ZW1kWzFdOiBNb3VudGVkIFRlbXBvcmFyeSBEaXJl
Y3RvcnkgKC90bXApLg0KWyAmbmJzcDsgMTEuMDIwMjgxXSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBD
cmVhdGUgbGlzdCBvZiBzdGF0aWMgZGV2aWNlIG5vZGVzIGZvciB0aGUgY3VycmVudCBrZXJuZWwu
DQpbICZuYnNwOyAxMS4wMjA1MzJdIHN5c3RlbWRbMV06IE1vdW50ZWQgS2VybmVsIENvbmZpZ3Vy
YXRpb24gRmlsZSBTeXN0ZW0uDQpbICZuYnNwOyAxMS4wMjA3ODNdIHN5c3RlbWRbMV06IG1vZHBy
b2JlQGZ1c2Uuc2VydmljZTogU3VjY2VlZGVkLg0KWyAmbmJzcDsgMTEuMDIwOTM0XSBzeXN0ZW1k
WzFdOiBGaW5pc2hlZCBMb2FkIEtlcm5lbCBNb2R1bGUgZnVzZS4NClsgJm5ic3A7IDExLjAyMjMx
Nl0gc3lzdGVtZFsxXTogTW91bnRpbmcgRlVTRSBDb250cm9sIEZpbGUgU3lzdGVtLi4uDQpbICZu
YnNwOyAxMS4wMjUwMTldIHN5c3RlbWRbMV06IEZpbmlzaGVkIExvYWQgS2VybmVsIE1vZHVsZXMu
DQpbICZuYnNwOyAxMS4wMjYzMzhdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIEFwcGx5IEtlcm5lbCBW
YXJpYWJsZXMuLi4NClsgJm5ic3A7IDExLjAyNzYwNl0gc3lzdGVtZFsxXTogRmluaXNoZWQgUmVw
YXJ0aXRpb24gUm9vdCBEaXNrLg0KWyAmbmJzcDsgMTEuMDI3ODcxXSBzeXN0ZW1kWzFdOiBNb3Vu
dGVkIEZVU0UgQ29udHJvbCBGaWxlIFN5c3RlbS4NClsgJm5ic3A7IDExLjAyOTczM10gRVhUNC1m
cyAoZG0tMCk6IHJlLW1vdW50ZWQuIE9wdHM6IGRpc2NhcmQuIFF1b3RhIG1vZGU6IG5vbmUuDQpb
ICZuYnNwOyAxMS4wMzEzNDBdIHN5c3RlbWRbMV06IEZpbmlzaGVkIFJlbW91bnQgUm9vdCBhbmQg
S2VybmVsIEZpbGUgU3lzdGVtcy4NClsgJm5ic3A7IDExLjAzMTQ5MV0gc3lzdGVtZFsxXTogQ29u
ZGl0aW9uIGNoZWNrIHJlc3VsdGVkIGluIEZpcnN0IEJvb3QgV2l6YXJkIGJlaW5nIHNraXBwZWQu
DQpbICZuYnNwOyAxMS4wMzIwMzldIHN5c3RlbWRbMV06IENvbmRpdGlvbiBjaGVjayByZXN1bHRl
ZCBpbiBSZWJ1aWxkIEhhcmR3YXJlIERhdGFiYXNlIGJlaW5nIHNraXBwZWQuDQpbICZuYnNwOyAx
MS4wMzIwNzZdIHN5c3RlbWRbMV06IENvbmRpdGlvbiBjaGVjayByZXN1bHRlZCBpbiBQbGF0Zm9y
bSBQZXJzaXN0ZW50IFN0b3JhZ2UgQXJjaGl2YWwgYmVpbmcgc2tpcHBlZC4NClsgJm5ic3A7IDEx
LjAzMzI1NF0gc3lzdGVtZFsxXTogU3RhcnRpbmcgTG9hZC9TYXZlIFJhbmRvbSBTZWVkLi4uDQpb
ICZuYnNwOyAxMS4wMzMzMzhdIHN5c3RlbWRbMV06IENvbmRpdGlvbiBjaGVjayByZXN1bHRlZCBp
biBDcmVhdGUgU3lzdGVtIFVzZXJzIGJlaW5nIHNraXBwZWQuDQpbICZuYnNwOyAxMS4wMzQ0MDld
IHN5c3RlbWRbMV06IFN0YXJ0aW5nIENyZWF0ZSBTdGF0aWMgRGV2aWNlIE5vZGVzIGluIC9kZXYu
Li4NClsgJm5ic3A7IDExLjAzNjcyNF0gc3lzdGVtZFsxXTogRmluaXNoZWQgQXBwbHkgS2VybmVs
IFZhcmlhYmxlcy4NClsgJm5ic3A7IDExLjA0NDcyNF0gc3lzdGVtZFsxXTogU3RhcnRlZCBKb3Vy
bmFsIFNlcnZpY2UuDQpbICZuYnNwOyAxMS4wNjIzMDNdIHN5c3RlbWQtam91cm5hbGRbNzkyXTog
UmVjZWl2ZWQgY2xpZW50IHJlcXVlc3QgdG8gZmx1c2ggcnVudGltZSBqb3VybmFsLg0KWyAmbmJz
cDsgMTEuMTU2MjA1XSBpbnB1dDogQWNlciBXaXJlbGVzcyBSYWRpbyBDb250cm9sIGFzIC9kZXZp
Y2VzL0xOWFNZU1RNOjAwLzEwMjUxMjI5OjAwL2lucHV0L2lucHV0MTcNClsgJm5ic3A7IDExLjIz
MjM5NV0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsg
Jm5ic3A7IDExLjIzMjQwNl0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNg0KWyAmbmJzcDsgMTEu
MjQ0MjY5XSBpZG1hNjQgaWRtYTY0LjA6IEZvdW5kIEludGVsIGludGVncmF0ZWQgRE1BIDY0LWJp
dA0KWyAmbmJzcDsgMTEuMjQ1MzEzXSBpZG1hNjQgaWRtYTY0LjE6IEZvdW5kIEludGVsIGludGVn
cmF0ZWQgRE1BIDY0LWJpdA0KWyAmbmJzcDsgMTEuMjYxNDAyXSBtZWlfbWUgMDAwMDowMDoxNi4w
OiBlbmFibGluZyBkZXZpY2UgKDAwMDAgLSZndDsgMDAwMikNClsgJm5ic3A7IDExLjI2MTU0Nl0g
eGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7
IDExLjI2MTU1MV0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNg0KWyAmbmJzcDsgMTEuMzAwNDQx
XSBjZmc4MDIxMTogTG9hZGluZyBjb21waWxlZC1pbiBYLjUwOSBjZXJ0aWZpY2F0ZXMgZm9yIHJl
Z3VsYXRvcnkgZGF0YWJhc2UNClsgJm5ic3A7IDExLjMwMDY1MV0gY2ZnODAyMTE6IExvYWRlZCBY
LjUwOSBjZXJ0ICdzZm9yc2hlZTogMDBiMjhkZGY0N2FlZjljZWE3Jw0KWyAmbmJzcDsgMTEuMzAy
NTg0XSBwbGF0Zm9ybSByZWd1bGF0b3J5LjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvciByZWd1
bGF0b3J5LmRiIGZhaWxlZCB3aXRoIGVycm9yIC0yDQpbICZuYnNwOyAxMS4zMDI1ODldIGNmZzgw
MjExOiBmYWlsZWQgdG8gbG9hZCByZWd1bGF0b3J5LmRiDQpbICZuYnNwOyAxMS4zMzA2OTFdIGlu
cHV0OiBQQyBTcGVha2VyIGFzIC9kZXZpY2VzL3BsYXRmb3JtL3Bjc3Brci9pbnB1dC9pbnB1dDE4
DQpbICZuYnNwOyAxMS42NDM3MzVdIG52aWRpYS1ncHUgMDAwMDowMTowMC4zOiBlbmFibGluZyBk
ZXZpY2UgKDAwMDAgLSZndDsgMDAwMikNClsgJm5ic3A7IDExLjY0Mzg5Nl0geGVuOiByZWdpc3Rl
cmluZyBnc2kgMTkgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDExLjY0MzkzMF0g
eGVuOiAtLSZndDsgcGlycT0xOSAtJmd0OyBpcnE9MTkgKGdzaT0xOSkNClsgJm5ic3A7IDExLjY1
Mzk1M10gYWNlcl93bWk6IEFjZXIgTGFwdG9wIEFDUEktV01JIEV4dHJhcw0KWyAmbmJzcDsgMTEu
NjU0MTAwXSBhY2VyX3dtaTogRnVuY3Rpb24gYml0bWFwIGZvciBDb21tdW5pY2F0aW9uIEJ1dHRv
bjogMHg4MDANClsgJm5ic3A7IDExLjY2NDI5Ml0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJp
Z2dlcmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDExLjY2NDMwN10gQWxyZWFkeSBzZXR1cCB0
aGUgR1NJIDoxNg0KWyAmbmJzcDsgMTEuNjY0MzkzXSBpODAxX3NtYnVzIDAwMDA6MDA6MWYuNDog
U1BEIFdyaXRlIERpc2FibGUgaXMgc2V0DQpbICZuYnNwOyAxMS42NjQ0NjVdIGk4MDFfc21idXMg
MDAwMDowMDoxZi40OiBTTUJ1cyB1c2luZyBQQ0kgaW50ZXJydXB0DQpbICZuYnNwOyAxMS42NjUx
MDRdIEludGVsKFIpIFdpcmVsZXNzIFdpRmkgZHJpdmVyIGZvciBMaW51eA0KWyAmbmJzcDsgMTEu
NjY3MDg3XSBpMmMgaTJjLTI2OiAyLzIgbWVtb3J5IHNsb3RzIHBvcHVsYXRlZCAoZnJvbSBETUkp
DQpbICZuYnNwOyAxMS42Njc3MjZdIGkyYyBpMmMtMjY6IFN1Y2Nlc3NmdWxseSBpbnN0YW50aWF0
ZWQgU1BEIGF0IDB4NTANClsgJm5ic3A7IDExLjY4MzE0M10geGVuOiByZWdpc3RlcmluZyBnc2kg
MTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDExLjY4MzE1M10gQWxyZWFkeSBz
ZXR1cCB0aGUgR1NJIDoxNg0KWyAmbmJzcDsgMTEuNjg0NDQ0XSBpbnRlbF9yYXBsX2NvbW1vbjog
Rm91bmQgUkFQTCBkb21haW4gcGFja2FnZQ0KWyAmbmJzcDsgMTEuNjg0NDQ3XSBpbnRlbF9yYXBs
X2NvbW1vbjogRm91bmQgUkFQTCBkb21haW4gZHJhbQ0KWyAmbmJzcDsgMTEuNjg0NDkyXSBpbnB1
dDogQWNlciBXTUkgaG90a2V5cyBhcyAvZGV2aWNlcy92aXJ0dWFsL2lucHV0L2lucHV0MTkNClsg
Jm5ic3A7IDExLjc0MDY5M10gc25kX2hkYV9pbnRlbCAwMDAwOjAwOjFmLjM6IERTUCBkZXRlY3Rl
ZCB3aXRoIFBDSSBjbGFzcy9zdWJjbGFzcy9wcm9nLWlmIGluZm8gMHgwNDAzODANClsgJm5ic3A7
IDExLjc0MDc2N10gc25kX2hkYV9pbnRlbCAwMDAwOjAwOjFmLjM6IGVuYWJsaW5nIGRldmljZSAo
MDAwMCAtJmd0OyAwMDAyKQ0KWyAmbmJzcDsgMTEuNzQxMDkyXSB4ZW46IHJlZ2lzdGVyaW5nIGdz
aSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMTEuNzQxMTAwXSBBbHJlYWR5
IHNldHVwIHRoZSBHU0kgOjE2DQpbICZuYnNwOyAxMS43NDExNzBdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMDoxZi4zOiBib3VuZCAwMDAwOjAwOjAyLjAgKG9wcyBpOTE1X2F1ZGlvX2NvbXBvbmVudF9i
aW5kX29wcyBbaTkxNV0pDQpbICZuYnNwOyAxMS43NDE2MjZdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MTowMC4xOiBlbmFibGluZyBkZXZpY2UgKDAwMDAgLSZndDsgMDAwMikNClsgJm5ic3A7IDExLjc0
MTcwOV0geGVuOiByZWdpc3RlcmluZyBnc2kgMTcgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsg
Jm5ic3A7IDExLjc0MTcxNF0gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNw0KWyAmbmJzcDsgMTEu
NzQxNzI0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDE6MDAuMTogRGlzYWJsaW5nIE1TSQ0KWyAmbmJz
cDsgMTEuNzQxNzMyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDE6MDAuMTogSGFuZGxlIHZnYV9zd2l0
Y2hlcm9vIGF1ZGlvIGNsaWVudA0KWyAmbmJzcDsgMTEuNzg4NDA0XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDE6MDAuMTogYm91bmQgMDAwMDowMTowMC4wIChvcHMgbnY1MF9hdWRpb19jb21wb25lbnRf
YmluZF9vcHMgW25vdXZlYXVdKQ0KWyAmbmJzcDsgMTEuNzk3MzU5XSBpbnB1dDogSERBIE5WaWRp
YSBIRE1JL0RQLHBjbT0zIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMS4wLzAwMDA6
MDE6MDAuMS9zb3VuZC9jYXJkMS9pbnB1dDIwDQpbICZuYnNwOyAxMS43OTc2MDFdIGlucHV0OiBI
REEgTlZpZGlhIEhETUkvRFAscGNtPTcgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAx
LjAvMDAwMDowMTowMC4xL3NvdW5kL2NhcmQxL2lucHV0MjENClsgJm5ic3A7IDExLjc5NzczMl0g
aW5wdXQ6IEhEQSBOVmlkaWEgSERNSS9EUCxwY209OCBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAw
MDA6MDA6MDEuMC8wMDAwOjAxOjAwLjEvc291bmQvY2FyZDEvaW5wdXQyMg0KWyAmbmJzcDsgMTEu
Nzk3ODg4XSBpbnB1dDogSERBIE5WaWRpYSBIRE1JL0RQLHBjbT05IGFzIC9kZXZpY2VzL3BjaTAw
MDA6MDAvMDAwMDowMDowMS4wLzAwMDA6MDE6MDAuMS9zb3VuZC9jYXJkMS9pbnB1dDIzDQpbICZu
YnNwOyAxMS43OTc5NDldIGlucHV0OiBIREEgTlZpZGlhIEhETUkvRFAscGNtPTEwIGFzIC9kZXZp
Y2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMS4wLzAwMDA6MDE6MDAuMS9zb3VuZC9jYXJkMS9pbnB1
dDI0DQpbICZuYnNwOyAxMS43OTk1NDldIHNuZF9oZGFfY29kZWNfcmVhbHRlayBoZGF1ZGlvQzBE
MDogYXV0b2NvbmZpZyBmb3IgQUxDMjk1OiBsaW5lX291dHM9MSAoMHgxNC8weDAvMHgwLzB4MC8w
eDApIHR5cGU6c3BlYWtlcg0KWyAmbmJzcDsgMTEuNzk5NTU0XSBzbmRfaGRhX2NvZGVjX3JlYWx0
ZWsgaGRhdWRpb0MwRDA6ICZuYnNwOyAmbmJzcDtzcGVha2VyX291dHM9MCAoMHgwLzB4MC8weDAv
MHgwLzB4MCkNClsgJm5ic3A7IDExLjc5OTU1Nl0gc25kX2hkYV9jb2RlY19yZWFsdGVrIGhkYXVk
aW9DMEQwOiAmbmJzcDsgJm5ic3A7aHBfb3V0cz0xICgweDIxLzB4MC8weDAvMHgwLzB4MCkNClsg
Jm5ic3A7IDExLjc5OTU1OF0gc25kX2hkYV9jb2RlY19yZWFsdGVrIGhkYXVkaW9DMEQwOiAmbmJz
cDsgJm5ic3A7bW9ubzogbW9ub19vdXQ9MHgwDQpbICZuYnNwOyAxMS43OTk1NTldIHNuZF9oZGFf
Y29kZWNfcmVhbHRlayBoZGF1ZGlvQzBEMDogJm5ic3A7ICZuYnNwO2lucHV0czoNClsgJm5ic3A7
IDExLjc5OTU2MF0gc25kX2hkYV9jb2RlY19yZWFsdGVrIGhkYXVkaW9DMEQwOiAmbmJzcDsgJm5i
c3A7ICZuYnNwO01pYz0weDEyDQpbICZuYnNwOyAxMi4xNTg3NDBdIGlUQ09fdmVuZG9yX3N1cHBv
cnQ6IHZlbmRvci1zdXBwb3J0PTANClsgJm5ic3A7IDEyLjE1OTc4Ml0gbWVpX2hkY3AgMDAwMDow
MDoxNi4wLWI2MzhhYjdlLTk0ZTItNGVhMi1hNTUyLWQxYzU0YjYyN2YwNDogYm91bmQgMDAwMDow
MDowMi4wIChvcHMgaTkxNV9oZGNwX2NvbXBvbmVudF9vcHMgW2k5MTVdKQ0KWyAmbmJzcDsgMTIu
MTY3NTM5XSBlZTEwMDQgMjYtMDA1MDogNTEyIGJ5dGUgRUUxMDA0LWNvbXBsaWFudCBTUEQgRUVQ
Uk9NLCByZWFkLW9ubHkNClsgJm5ic3A7IDEyLjE3NjIwNF0gaVRDT193ZHQgaVRDT193ZHQ6IEZv
dW5kIGEgSW50ZWwgUENIIFRDTyBkZXZpY2UgKFZlcnNpb249NiwgVENPQkFTRT0weDA0MDApDQpb
ICZuYnNwOyAxMi4xNzY1NjddIGlUQ09fd2R0IGlUQ09fd2R0OiBpbml0aWFsaXplZC4gaGVhcnRi
ZWF0PTMwIHNlYyAobm93YXlvdXQ9MCkNClsgJm5ic3A7IDEyLjQ3NTQ2M10gaW5wdXQ6IEhEQSBJ
bnRlbCBQQ0ggSGVhZHBob25lIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxZi4zL3Nv
dW5kL2NhcmQwL2lucHV0MjUNClsgJm5ic3A7IDEyLjQ3NTYyNF0gaW5wdXQ6IEhEQSBJbnRlbCBQ
Q0ggSERNSS9EUCxwY209MyBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MWYuMy9zb3Vu
ZC9jYXJkMC9pbnB1dDI2DQpbICZuYnNwOyAxMi40NzYzMjZdIGlucHV0OiBIREEgSW50ZWwgUENI
IEhETUkvRFAscGNtPTcgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjFmLjMvc291bmQv
Y2FyZDAvaW5wdXQyNw0KWyAmbmJzcDsgMTIuNDc2NDc4XSBpbnB1dDogSERBIEludGVsIFBDSCBI
RE1JL0RQLHBjbT04IGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxZi4zL3NvdW5kL2Nh
cmQwL2lucHV0MjgNClsgJm5ic3A7IDEyLjQ3NjYwM10gaW5wdXQ6IEhEQSBJbnRlbCBQQ0ggSERN
SS9EUCxwY209OSBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MWYuMy9zb3VuZC9jYXJk
MC9pbnB1dDI5DQpbICZuYnNwOyAxMi40NzY3MjBdIGlucHV0OiBIREEgSW50ZWwgUENIIEhETUkv
RFAscGNtPTEwIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxZi4zL3NvdW5kL2NhcmQw
L2lucHV0MzANClsgJm5ic3A7IDEzLjE3NzkxNl0gbnZpZGlhLWdwdSAwMDAwOjAxOjAwLjM6IGky
YyB0aW1lb3V0IGVycm9yIGUwMDAwMDAwDQpbICZuYnNwOyAxMy4xNzc5MjddIHVjc2lfY2NnIDI1
LTAwMDg6IGkyY190cmFuc2ZlciBmYWlsZWQgLTExMA0KWyAmbmJzcDsgMTMuMTc3OTM0XSB1Y3Np
X2NjZyAyNS0wMDA4OiB1Y3NpX2NjZ19pbml0IGZhaWxlZCAtIC0xMTANClsgJm5ic3A7IDEzLjE3
Nzk0MF0gdWNzaV9jY2c6IHByb2JlIG9mIDI1LTAwMDggZmFpbGVkIHdpdGggZXJyb3IgLTExMA0K
WyAmbmJzcDsgMTMuMjkwMTY3XSBFWFQ0LWZzIChudm1lMG4xcDcpOiBtb3VudGVkIGZpbGVzeXN0
ZW0gd2l0aCBvcmRlcmVkIGRhdGEgbW9kZS4gT3B0czogZGlzY2FyZC4gUXVvdGEgbW9kZTogbm9u
ZS4NClsgJm5ic3A7IDE0LjA1MTI0M10geGhjaV9oY2QgMDAwMDowMDoxNC4wOiByZW1vdmUsIHN0
YXRlIDQNClsgJm5ic3A7IDE0LjA1MTI0OF0gdXNiIHVzYjI6IFVTQiBkaXNjb25uZWN0LCBkZXZp
Y2UgbnVtYmVyIDENClsgJm5ic3A7IDE0LjA1MTQzOF0geGhjaV9oY2QgMDAwMDowMDoxNC4wOiBV
U0IgYnVzIDIgZGVyZWdpc3RlcmVkDQpbICZuYnNwOyAxNC4wNTE1MzRdIHhoY2lfaGNkIDAwMDA6
MDA6MTQuMDogcmVtb3ZlLCBzdGF0ZSAxDQpbICZuYnNwOyAxNC4wNTE1NDBdIHVzYiB1c2IxOiBV
U0IgZGlzY29ubmVjdCwgZGV2aWNlIG51bWJlciAxDQpbICZuYnNwOyAxNC4wNTE1NDFdIHVzYiAx
LTI6IFVTQiBkaXNjb25uZWN0LCBkZXZpY2UgbnVtYmVyIDINClsgJm5ic3A7IDE0LjE0ODg0MF0g
dXNiIDEtNTogVVNCIGRpc2Nvbm5lY3QsIGRldmljZSBudW1iZXIgMw0KWyAmbmJzcDsgMTQuMTQ5
MDE2XSB1c2IgMS0xNDogVVNCIGRpc2Nvbm5lY3QsIGRldmljZSBudW1iZXIgNA0KWyAmbmJzcDsg
MTQuMTUwOTg5XSB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IFVTQiBidXMgMSBkZXJlZ2lzdGVyZWQN
ClsgJm5ic3A7IDE0LjE1MTUzNl0gcGNpYmFjayAwMDAwOjAwOjE0LjA6IHhlbl9wY2liYWNrOiBz
ZWl6aW5nIGRldmljZQ0KWyAmbmJzcDsgMTQuMTUxODU1XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAx
NiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMTQuMTUxODY1XSBBbHJlYWR5IHNl
dHVwIHRoZSBHU0kgOjE2DQpbICZuYnNwOyAxNC40ODI4MDldIHhoY2lfaGNkIDAwMDA6MDE6MDAu
MjogcmVtb3ZlLCBzdGF0ZSA0DQpbICZuYnNwOyAxNC40ODI4MjBdIHVzYiB1c2I0OiBVU0IgZGlz
Y29ubmVjdCwgZGV2aWNlIG51bWJlciAxDQpbICZuYnNwOyAxNC40ODM0MThdIHhoY2lfaGNkIDAw
MDA6MDE6MDAuMjogVVNCIGJ1cyA0IGRlcmVnaXN0ZXJlZA0KWyAmbmJzcDsgMTQuNDg1NjQzXSB4
aGNpX2hjZCAwMDAwOjAxOjAwLjI6IHJlbW92ZSwgc3RhdGUgNA0KWyAmbmJzcDsgMTQuNDg1NjQ4
XSB1c2IgdXNiMzogVVNCIGRpc2Nvbm5lY3QsIGRldmljZSBudW1iZXIgMQ0KWyAmbmJzcDsgMTQu
NDkwODQ0XSB4aGNpX2hjZCAwMDAwOjAxOjAwLjI6IFVTQiBidXMgMyBkZXJlZ2lzdGVyZWQNClsg
Jm5ic3A7IDE0LjQ5MjI4OF0gcGNpYmFjayAwMDAwOjAxOjAwLjI6IHhlbl9wY2liYWNrOiBzZWl6
aW5nIGRldmljZQ0KWyAmbmJzcDsgMTQuNDkyNDMxXSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxOCB0
cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMTQuNDkyNDQxXSBBbHJlYWR5IHNldHVw
IHRoZSBHU0kgOjE4DQpbICZuYnNwOyAxNC41NjMxMTVdIGxvb3A6IG1vZHVsZSBsb2FkZWQNClsg
Jm5ic3A7IDE0LjU2MzgzOV0gbG9vcDA6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAg
dG8gNDE5NDMwNA0KWyAmbmJzcDsgMTQuNTc4MjAxXSBsb29wMTogZGV0ZWN0ZWQgY2FwYWNpdHkg
Y2hhbmdlIGZyb20gMCB0byA0MTk0MzA0DQpbICZuYnNwOyAxNC42MjQxNzZdIGxvb3AyOiBkZXRl
Y3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDQxOTQzMDQNClsgJm5ic3A7IDE0LjY2MjIz
Nl0gbG9vcDM6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMjA5NzE1MjANClsg
Jm5ic3A7IDE0LjY3OTIxMV0gbG9vcDQ6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAg
dG8gMjA5NzE1MjANClsgJm5ic3A7IDE0Ljc0MDczOV0gbG9vcDU6IGRldGVjdGVkIGNhcGFjaXR5
IGNoYW5nZSBmcm9tIDAgdG8gMjA5NzE1MjANClsgJm5ic3A7IDE0LjkwNjM3NV0gbWVtbWFwX2lu
aXRfem9uZV9kZXZpY2UgaW5pdGlhbGlzZWQgMzI3NjggcGFnZXMgaW4gMG1zDQpbICZuYnNwOyAx
NS4yMjg0MTZdIGxvb3A2OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDk1MjE5
Mg0KWyAmbmJzcDsgMTUuMzAyNDQ4XSBsb29wNzogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZy
b20gMCB0byAyNTE2NTgyNA0KWyAmbmJzcDsgMTUuOTQ2NzI3XSBsb29wODogZGV0ZWN0ZWQgY2Fw
YWNpdHkgY2hhbmdlIGZyb20gMCB0byAyNTE2NTgyNA0KWyAmbmJzcDsgMTYuMDMyNjcyXSBsb29w
OTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA5NTIxOTINClsgJm5ic3A7IDE2
LjEwOTYxMV0gcGNpYmFjayAwMDAwOjAwOjE0LjA6IHhlbl9wY2liYWNrOiB2cGNpOiBhc3NpZ24g
dG8gdmlydHVhbCBzbG90IDANClsgJm5ic3A7IDE2LjExMDQwM10gcGNpYmFjayAwMDAwOjAwOjE0
LjA6IHJlZ2lzdGVyaW5nIGZvciAyDQpbICZuYnNwOyAxNi4xMTA4OTZdIHBjaWJhY2sgMDAwMDow
MTowMC4yOiB4ZW5fcGNpYmFjazogdnBjaTogYXNzaWduIHRvIHZpcnR1YWwgc2xvdCAxDQpbICZu
YnNwOyAxNi4xMTE3NjddIHBjaWJhY2sgMDAwMDowMTowMC4yOiByZWdpc3RlcmluZyBmb3IgMg0K
WyAmbmJzcDsgMTYuMjc5NDM0XSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvMi81MTcxMjogdXNp
bmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzDQpb
ICZuYnNwOyAxNi4yODIxOTddIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBw
b2xhcml0eSAxDQpbICZuYnNwOyAxNi4yODIyMTBdIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYN
ClsgJm5ic3A7IDE2LjI4Mjc5OV0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dlcmluZyAw
IHBvbGFyaXR5IDENClsgJm5ic3A7IDE2LjI4MjgwM10gQWxyZWFkeSBzZXR1cCB0aGUgR1NJIDox
Ng0KWyAmbmJzcDsgMTYuMjgzMjE0XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5n
IDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMTYuMjgzMjE4XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kg
OjE2DQpbICZuYnNwOyAxNi4yODM1OTRdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJp
bmcgMCBwb2xhcml0eSAxDQpbICZuYnNwOyAxNi4yODM2MDBdIEFscmVhZHkgc2V0dXAgdGhlIEdT
SSA6MTYNClsgJm5ic3A7IDE2LjI4NDA1Ml0geGVuOiByZWdpc3RlcmluZyBnc2kgMTYgdHJpZ2dl
cmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDE2LjI4NDA1N10gQWxyZWFkeSBzZXR1cCB0aGUg
R1NJIDoxNg0KWyAmbmJzcDsgMTYuMjg0NDg1XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNiB0cmln
Z2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMTYuMjg0NDg5XSBBbHJlYWR5IHNldHVwIHRo
ZSBHU0kgOjE2DQpbICZuYnNwOyAxNi4yODQ5MjldIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE2IHRy
aWdnZXJpbmcgMCBwb2xhcml0eSAxDQpbICZuYnNwOyAxNi4yODQ5MzNdIEFscmVhZHkgc2V0dXAg
dGhlIEdTSSA6MTYNClsgJm5ic3A7IDE2LjI4NjQ0N10geGVuOiByZWdpc3RlcmluZyBnc2kgMTgg
dHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDE2LjI4NjQ1M10gQWxyZWFkeSBzZXR1
cCB0aGUgR1NJIDoxOA0KWyAmbmJzcDsgMTYuMjg3MTAwXSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAx
OCB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMTYuMjg3MTA1XSBBbHJlYWR5IHNl
dHVwIHRoZSBHU0kgOjE4DQpbICZuYnNwOyAxNi4yODc1ODhdIHhlbjogcmVnaXN0ZXJpbmcgZ3Np
IDE4IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxDQpbICZuYnNwOyAxNi4yODc1OTNdIEFscmVhZHkg
c2V0dXAgdGhlIEdTSSA6MTgNClsgJm5ic3A7IDE2LjI4ODE1NV0geGVuOiByZWdpc3RlcmluZyBn
c2kgMTggdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDE2LjI4ODE2MF0gQWxyZWFk
eSBzZXR1cCB0aGUgR1NJIDoxOA0KWyAmbmJzcDsgMTYuMjg4NjM0XSB4ZW46IHJlZ2lzdGVyaW5n
IGdzaSAxOCB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMTYuMjg4NjM3XSBBbHJl
YWR5IHNldHVwIHRoZSBHU0kgOjE4DQpbICZuYnNwOyAxNi4yODkxMTVdIHhlbjogcmVnaXN0ZXJp
bmcgZ3NpIDE4IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxDQpbICZuYnNwOyAxNi4yODkxMThdIEFs
cmVhZHkgc2V0dXAgdGhlIEdTSSA6MTgNClsgJm5ic3A7IDE2LjI5NjM2OV0geGVuLWJsa2JhY2s6
IGJhY2tlbmQvdmJkLzIvNTE3Mjg6IHVzaW5nIDEgcXVldWVzLCBwcm90b2NvbCAxICh4ODZfNjQt
YWJpKSBwZXJzaXN0ZW50IGdyYW50cw0KWyAmbmJzcDsgMTYuMzA4OTk5XSB4ZW4tYmxrYmFjazog
YmFja2VuZC92YmQvMi81MTc0NDogdXNpbmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1h
YmkpIHBlcnNpc3RlbnQgZ3JhbnRzDQpbICZuYnNwOyAxNi4zMjA2MzhdIHhlbi1ibGtiYWNrOiBi
YWNrZW5kL3ZiZC8yLzUxNzYwOiB1c2luZyAxIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFi
aSkgcGVyc2lzdGVudCBncmFudHMNClsgJm5ic3A7IDE3LjE1OTIxMV0ga2F1ZGl0ZF9wcmludGtf
c2tiOiAxNDUgY2FsbGJhY2tzIHN1cHByZXNzZWQNClsgJm5ic3A7IDE3LjE1OTIxM10gYXVkaXQ6
IHR5cGU9MTEzMSBhdWRpdCgxNzAzNzEyMjk3LjcyMzoyMDgpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQy
OTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PXN5c3RlbWQtcmZraWxsIGNvbW09InN5
c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0
ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgMTcuMTc2ODA0XSBhdWRpdDogdHlwZT0x
MTAzIGF1ZGl0KDE3MDM3MTIyOTcuNzQxOjIwOSk6IHBpZD00OTk5IHVpZD0wIGF1aWQ9NDI5NDk2
NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9yb290
b2sgYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9
PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgMTcuMTc3NzI2XSBhdWRpdDogdHlw
ZT0xMTA1IGF1ZGl0KDE3MDM3MTIyOTcuNzQxOjIxMCk6IHBpZD00OTk5IHVpZD0wIGF1aWQ9NDI5
NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXNzaW9uX29wZW4gZ3JhbnRvcnM9
cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9z
YmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpb
ICZuYnNwOyAxNy4xODMxNzRdIGxvb3AxMDogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20g
MCB0byA0MTk0MzA0DQpbICZuYnNwOyAxNy4xODU1MTNdIGF1ZGl0OiB0eXBlPTExMDYgYXVkaXQo
MTcwMzcxMjI5Ny43NDk6MjExKTogcGlkPTQ5OTkgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00
Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNlc3Npb25fY2xvc2UgZ3JhbnRvcnM9cGFtX2tleWluaXQs
cGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIi
IGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAxNy4x
ODU1MzNdIGF1ZGl0OiB0eXBlPTExMDQgYXVkaXQoMTcwMzcxMjI5Ny43NDk6MjEyKTogcGlkPTQ5
OTkgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNldGNy
ZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVz
ZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAx
Ny4yMDEyMTFdIGF1ZGl0OiB0eXBlPTExMDMgYXVkaXQoMTcwMzcxMjI5Ny43NjU6MjEzKTogcGlk
PTUwMTIgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNl
dGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1
bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNw
OyAxNy4yMDE0NjVdIGF1ZGl0OiB0eXBlPTExMDUgYXVkaXQoMTcwMzcxMjI5Ny43NjU6MjE0KTog
cGlkPTUwMTIgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFN
OnNlc3Npb25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4IGFj
Y3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVy
bWluYWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7IDE3LjIwMzE1Nl0gbG9vcDExOiBkZXRlY3Rl
ZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDQxOTQzMDQNClsgJm5ic3A7IDE3LjMwMjQwMl0g
bG9vcDEyOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwOTcxNTIwDQpbICZu
YnNwOyAxOC4yNDEyNjldIGxvb3AxMzogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0
byAyMDk3MTUyMA0KWyAmbmJzcDsgMTguMzAwMjEzXSBsb29wMTQ6IGRldGVjdGVkIGNhcGFjaXR5
IGNoYW5nZSBmcm9tIDAgdG8gOTUyMTkyDQpbICZuYnNwOyAxOS4xMTM3NDNdIGxvb3AxNTogZGV0
ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA5NTIxOTINClsgJm5ic3A7IDE5LjE4MzU5
OF0gbG9vcDE2OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwOTcxNTIwDQpb
ICZuYnNwOyAxOS41NzU0OTZdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC8xLzUxNzEyOiB1c2lu
ZyAyIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMNClsg
Jm5ic3A7IDE5LjU5MzM5NV0geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJkLzEvNTE3Mjg6IHVzaW5n
IDIgcXVldWVzLCBwcm90b2NvbCAxICh4ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cw0KWyAm
bmJzcDsgMTkuNjIwMTkwXSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvMS81MTc0NDogdXNpbmcg
MiBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzDQpbICZu
YnNwOyAxOS42MzY4MDZdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC8xLzUxNzYwOiB1c2luZyAy
IHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMNClsgJm5i
c3A7IDIwLjQyMzUxNV0gcGNpYmFjayAwMDAwOjA4OjAwLjA6IHhlbl9wY2liYWNrOiB2cGNpOiBh
c3NpZ24gdG8gdmlydHVhbCBzbG90IDANClsgJm5ic3A7IDIwLjQyNDM1NV0gcGNpYmFjayAwMDAw
OjA4OjAwLjA6IHJlZ2lzdGVyaW5nIGZvciA0DQpbICZuYnNwOyAyMC40MjQ5NzNdIHBjaWJhY2sg
MDAwMDowMDoxNC4zOiB4ZW5fcGNpYmFjazogdnBjaTogYXNzaWduIHRvIHZpcnR1YWwgc2xvdCAx
DQpbICZuYnNwOyAyMC40MjU0NDFdIHBjaWJhY2sgMDAwMDowMDoxNC4zOiByZWdpc3RlcmluZyBm
b3IgNA0KWyAmbmJzcDsgMjAuNjA4OTA0XSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvNC81MTcx
MjogdXNpbmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3Jh
bnRzDQpbICZuYnNwOyAyMC42MTE5OTVdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE3IHRyaWdnZXJp
bmcgMCBwb2xhcml0eSAxDQpbICZuYnNwOyAyMC42MTIwMDFdIEFscmVhZHkgc2V0dXAgdGhlIEdT
SSA6MTcNClsgJm5ic3A7IDIwLjYxMjI3N10geGVuOiByZWdpc3RlcmluZyBnc2kgMTcgdHJpZ2dl
cmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDIwLjYxMjI4MF0gQWxyZWFkeSBzZXR1cCB0aGUg
R1NJIDoxNw0KWyAmbmJzcDsgMjAuNjEyNDY0XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAxNyB0cmln
Z2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMjAuNjEyNDY3XSBBbHJlYWR5IHNldHVwIHRo
ZSBHU0kgOjE3DQpbICZuYnNwOyAyMC42MTI3MDNdIHhlbjogcmVnaXN0ZXJpbmcgZ3NpIDE3IHRy
aWdnZXJpbmcgMCBwb2xhcml0eSAxDQpbICZuYnNwOyAyMC42MTI3MDVdIEFscmVhZHkgc2V0dXAg
dGhlIEdTSSA6MTcNClsgJm5ic3A7IDIwLjYxMjk4N10geGVuOiByZWdpc3RlcmluZyBnc2kgMTcg
dHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDIwLjYxMjk4OV0gQWxyZWFkeSBzZXR1
cCB0aGUgR1NJIDoxNw0KWyAmbmJzcDsgMjAuNjEzMjA2XSB4ZW46IHJlZ2lzdGVyaW5nIGdzaSAx
NyB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMjAuNjEzMjA4XSBBbHJlYWR5IHNl
dHVwIHRoZSBHU0kgOjE3DQpbICZuYnNwOyAyMC42MTU4NzFdIHhlbjogcmVnaXN0ZXJpbmcgZ3Np
IDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxDQpbICZuYnNwOyAyMC42MTU4NzRdIEFscmVhZHkg
c2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7IDIwLjYxNzQ2Nl0geGVuOiByZWdpc3RlcmluZyBn
c2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDIwLjYxNzQ2OV0gQWxyZWFk
eSBzZXR1cCB0aGUgR1NJIDoxNg0KWyAmbmJzcDsgMjAuNjE4MjMwXSB4ZW46IHJlZ2lzdGVyaW5n
IGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMjAuNjE4MjMyXSBBbHJl
YWR5IHNldHVwIHRoZSBHU0kgOjE2DQpbICZuYnNwOyAyMC42MTg5OTNdIHhlbjogcmVnaXN0ZXJp
bmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxDQpbICZuYnNwOyAyMC42MTg5OTVdIEFs
cmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7IDIwLjYxOTc2M10geGVuOiByZWdpc3Rl
cmluZyBnc2kgMTYgdHJpZ2dlcmluZyAwIHBvbGFyaXR5IDENClsgJm5ic3A7IDIwLjYxOTc2NV0g
QWxyZWFkeSBzZXR1cCB0aGUgR1NJIDoxNg0KWyAmbmJzcDsgMjAuNjIwNDMyXSB4ZW46IHJlZ2lz
dGVyaW5nIGdzaSAxNiB0cmlnZ2VyaW5nIDAgcG9sYXJpdHkgMQ0KWyAmbmJzcDsgMjAuNjIwNDM1
XSBBbHJlYWR5IHNldHVwIHRoZSBHU0kgOjE2DQpbICZuYnNwOyAyMC42MjEzNzddIHhlbjogcmVn
aXN0ZXJpbmcgZ3NpIDE2IHRyaWdnZXJpbmcgMCBwb2xhcml0eSAxDQpbICZuYnNwOyAyMC42MjEz
NzldIEFscmVhZHkgc2V0dXAgdGhlIEdTSSA6MTYNClsgJm5ic3A7IDIwLjYyMTY5OV0gcGNpYmFj
ayAwMDAwOjAwOjE0LjM6IHhlbi1wY2liYWNrOiBEcml2ZXIgdHJpZWQgdG8gd3JpdGUgdG8gYSBy
ZWFkLW9ubHkgY29uZmlndXJhdGlvbiBzcGFjZSBmaWVsZCBhdCBvZmZzZXQgMHg0OCwgc2l6ZSAy
LiBUaGlzIG1heSBiZSBoYXJtbGVzcywgYnV0IGlmIHlvdSBoYXZlIHByb2JsZW1zIHdpdGggeW91
ciBkZXZpY2U6DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7MSkgc2VlIHBlcm1pc3NpdmUgYXR0cmlidXRlIGluIHN5c2ZzDQombmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MikgcmVwb3J0IHBy
b2JsZW1zIHRvIHRoZSB4ZW4tZGV2ZWwgbWFpbGluZyBsaXN0IGFsb25nIHdpdGggZGV0YWlscyBv
ZiB5b3VyIGRldmljZSBvYnRhaW5lZCBmcm9tIGxzcGNpLg0KWyAmbmJzcDsgMjAuNjMzMTcwXSB4
ZW4tYmxrYmFjazogYmFja2VuZC92YmQvNC81MTcyODogdXNpbmcgMSBxdWV1ZXMsIHByb3RvY29s
IDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzDQpbICZuYnNwOyAyMC42NTMzMzNdIHhl
bi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC80LzUxNzQ0OiB1c2luZyAxIHF1ZXVlcywgcHJvdG9jb2wg
MSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMNClsgJm5ic3A7IDIwLjY2NzgzMV0geGVu
LWJsa2JhY2s6IGJhY2tlbmQvdmJkLzQvNTE3NjA6IHVzaW5nIDEgcXVldWVzLCBwcm90b2NvbCAx
ICh4ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cw0KWyAmbmJzcDsgMjAuOTcxNjMzXSBwY2li
YWNrIDAwMDA6MDA6MTQuMDogeGVuX3BjaWJhY2s6IGNhbm5vdCBlbmFibGUgbWVtb3J5LXdyaXRl
LWludmFsaWRhdGUgKC0yMikNClsgJm5ic3A7IDIxLjY2NDI3NF0gYXVkaXQ6IHR5cGU9MTEwMyBh
dWRpdCgxNzAzNzEyMzAyLjIyODoyMTUpOiBwaWQ9NTgzNiB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUg
c2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFj
Y3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVy
bWluYWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7IDIxLjY2NDU1OV0gYXVkaXQ6IHR5cGU9MTEw
NSBhdWRpdCgxNzAzNzEyMzAyLjIyODoyMTYpOiBwaWQ9NTgzNiB1aWQ9MCBhdWlkPTQyOTQ5Njcy
OTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9vcGVuIGdyYW50b3JzPXBhbV9r
ZXlpbml0LHBhbV9saW1pdHMscGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9y
dW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJz
cDsgMjEuNjcyOTI5XSBhdWRpdDogdHlwZT0xMTA2IGF1ZGl0KDE3MDM3MTIzMDIuMjM3OjIxNyk6
IHBpZD01ODM2IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBB
TTpzZXNzaW9uX2Nsb3NlIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX3VuaXgg
YWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0
ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgMjMuNDYxNzc2XSBrYXVkaXRkX3ByaW50
a19za2I6IDMgY2FsbGJhY2tzIHN1cHByZXNzZWQNClsgJm5ic3A7IDIzLjQ2MTc3OF0gYXVkaXQ6
IHR5cGU9MTEwNiBhdWRpdCgxNzAzNzEyMzA0LjAyNToyMjEpOiBwaWQ9NTAxMiB1aWQ9MCBhdWlk
PTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9jbG9zZSBncmFu
dG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhlPSIv
dXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2Vz
cycNClsgJm5ic3A7IDIzLjQ2MTgxM10gYXVkaXQ6IHR5cGU9MTEwNCBhdWRpdCgxNzAzNzEyMzA0
LjAyNjoyMjIpOiBwaWQ9NTAxMiB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUg
bXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRlYmlhbiIgZXhl
PSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3Vj
Y2VzcycNClsgJm5ic3A7IDIzLjQ3NTk3M10gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNzEy
MzA0LjA0MDoyMjMpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUg
bXNnPSd1bml0PXF1YmVzLXZtQHN5cy11c2IgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9z
eXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3Mn
DQpbICZuYnNwOyAyMy40ODY0ODJdIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzcxMjMwNC4w
NTA6MjI0KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0n
dW5pdD1zeXN0ZW1kLXVzZXItc2Vzc2lvbnMgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9z
eXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3Mn
DQpbICZuYnNwOyAyMy40ODg2NTldIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzcxMjMwNC4w
NTI6MjI1KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0n
dW5pdD1jcm9uZCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVtZCIg
aG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7IDIzLjUz
OTUzMF0gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNzEyMzA0LjEwMzoyMjYpOiBwaWQ9MSB1
aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PWxpZ2h0ZG0gY29t
bT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRk
cj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAyMy41NTg1MzZdIGlucHV0OiBz
eXMtdXNiOiBVU0IgR2FtaW5nIE1vdXNlIENvbnN1bWVyIENvbnRyb2wgYXMgL2RldmljZXMvdmly
dHVhbC9pbnB1dC9pbnB1dDMxDQpbICZuYnNwOyAyMy41NTk4ODBdIGlucHV0OiBzeXMtdXNiOiBV
U0IgR2FtaW5nIE1vdXNlIGFzIC9kZXZpY2VzL3ZpcnR1YWwvaW5wdXQvaW5wdXQzMg0KWyAmbmJz
cDsgMjMuNjI3ODkyXSBhdWRpdDogdHlwZT0xMTMwIGF1ZGl0KDE3MDM3MTIzMDQuMTkyOjIyNyk6
IHBpZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9cG9s
a2l0IGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFt
ZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgMjMuNjI4ODAyXSBh
dWRpdDogdHlwZT0xMTMwIGF1ZGl0KDE3MDM3MTIzMDQuMTkzOjIyOCk6IHBpZD0xIHVpZD0wIGF1
aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9YWNjb3VudHMtZGFlbW9uIGNv
bW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFk
ZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgMjQuMDA4MTY4XSB4ZW4tYmxr
YmFjazogYmFja2VuZC92YmQvMy81MTcxMjogdXNpbmcgMiBxdWV1ZXMsIHByb3RvY29sIDEgKHg4
Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzDQpbICZuYnNwOyAyNC4wMjkyMzBdIHhlbi1ibGti
YWNrOiBiYWNrZW5kL3ZiZC8zLzUxNzI4OiB1c2luZyAyIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2
XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMNClsgJm5ic3A7IDI0LjA1ODMzN10geGVuLWJsa2Jh
Y2s6IGJhY2tlbmQvdmJkLzMvNTE3NDQ6IHVzaW5nIDIgcXVldWVzLCBwcm90b2NvbCAxICh4ODZf
NjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cw0KWyAmbmJzcDsgMjQuMDc0NjIxXSB4ZW4tYmxrYmFj
azogYmFja2VuZC92YmQvMy81MTc2MDogdXNpbmcgMiBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82
NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzDQpbICZuYnNwOyAyNC43MTk1NzRdIGF1ZGl0OiB0eXBl
PTExMzAgYXVkaXQoMTcwMzcxMjMwNS4yODM6MjI5KTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3
Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0ndW5pdD1wbHltb3V0aC1xdWl0LXdhaXQgY29tbT0ic3lz
dGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRl
cm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAyNC43MjE1MzVdIGF1ZGl0OiB0eXBlPTEx
MzAgYXVkaXQoMTcwMzcxMjMwNS4yODU6MjMwKTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1
IHNlcz00Mjk0OTY3Mjk1IG1zZz0ndW5pdD1zZXJpYWwtZ2V0dHlAaHZjMCBjb21tPSJzeXN0ZW1k
IiBleGU9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWlu
YWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7IDI4LjY2OTY2NF0ga2F1ZGl0ZF9wcmludGtfc2ti
OiAxNCBjYWxsYmFja3Mgc3VwcHJlc3NlZA0KWyAmbmJzcDsgMjguNjY5NjY2XSBhdWRpdDogdHlw
ZT0xMTAwIGF1ZGl0KDE3MDM3MTIzMDkuMjMzOjI0Myk6IHBpZD01OTk3IHVpZD0wIGF1aWQ9NDI5
NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTphdXRoZW50aWNhdGlvbiBncmFudG9y
cz1wYW1fdW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL2xpZ2h0ZG0iIGhvc3RuYW1l
PT8gYWRkcj0/IHRlcm1pbmFsPTowIHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgMjguNjY5NzY0XSBh
dWRpdDogdHlwZT0xMTAxIGF1ZGl0KDE3MDM3MTIzMDkuMjMzOjI0NCk6IHBpZD01OTk3IHVpZD0w
IGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTphY2NvdW50aW5nIGdy
YW50b3JzPXBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vbGlnaHRkbSIgaG9z
dG5hbWU9PyBhZGRyPT8gdGVybWluYWw9OjAgcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAyOC43MTg2
MjddIGF1ZGl0OiB0eXBlPTExMDYgYXVkaXQoMTcwMzcxMjMwOS4yODI6MjQ1KTogcGlkPTU5NTUg
dWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNlc3Npb25f
Y2xvc2UgZ3JhbnRvcnM9cGFtX3VuaXgscGFtX3N5c3RlbWQgYWNjdD0ibGlnaHRkbSIgZXhlPSIv
dXNyL3NiaW4vbGlnaHRkbSIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9OjAgcmVzPXN1Y2Nl
c3MnDQpbICZuYnNwOyAyOC43MTg2NzZdIGF1ZGl0OiB0eXBlPTExMDQgYXVkaXQoMTcwMzcxMjMw
OS4yODI6MjQ2KTogcGlkPTU5NTUgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1
IG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX2VudixwYW1fcGVybWl0IGFjY3Q9Imxp
Z2h0ZG0iIGV4ZT0iL3Vzci9zYmluL2xpZ2h0ZG0iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFs
PTowIHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgMjguNzIyNjE2XSBhdWRpdDogdHlwZT0xMTAzIGF1
ZGl0KDE3MDM3MTIzMDkuMjg2OjI0Nyk6IHBpZD01OTk3IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBz
ZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV91bml4IGFjY3Q9
ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vbGlnaHRkbSIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWlu
YWw9OjAgcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAyOC43MjI2NzVdIGF1ZGl0OiB0eXBlPTEwMDYg
YXVkaXQoMTcwMzcxMjMwOS4yODY6MjQ4KTogcGlkPTU5OTcgdWlkPTAgb2xkLWF1aWQ9NDI5NDk2
NzI5NSBhdWlkPTEwMDAgdHR5PShub25lKSBvbGQtc2VzPTQyOTQ5NjcyOTUgc2VzPTIgcmVzPTEN
ClsgJm5ic3A7IDI4LjcyMjY3N10gYXVkaXQ6IHR5cGU9MTMwMCBhdWRpdCgxNzAzNzEyMzA5LjI4
NjoyNDgpOiBhcmNoPWMwMDAwMDNlIHN5c2NhbGw9MSBzdWNjZXNzPXllcyBleGl0PTQgYTA9NyBh
MT03ZmZmZmUzNTI4MDAgYTI9NCBhMz03ZmZmZmUzNTI1MTQgaXRlbXM9MCBwcGlkPTU4NTAgcGlk
PTU5OTcgYXVpZD0xMDAwIHVpZD0wIGdpZD0wIGV1aWQ9MCBzdWlkPTAgZnN1aWQ9MCBlZ2lkPTAg
c2dpZD0wIGZzZ2lkPTAgdHR5PShub25lKSBzZXM9MiBjb21tPSJsaWdodGRtIiBleGU9Ii91c3Iv
c2Jpbi9saWdodGRtIiBrZXk9KG51bGwpDQpbICZuYnNwOyAyOC43MjI2NzldIGF1ZGl0OiB0eXBl
PTEzMjcgYXVkaXQoMTcwMzcxMjMwOS4yODY6MjQ4KTogcHJvY3RpdGxlPTZDNjk2NzY4NzQ2NDZE
MDAyRDJENzM2NTczNzM2OTZGNkUyRDYzNjg2OTZDNjQwMDMxMzIwMDMxMzkNClsgJm5ic3A7IDI4
Ljc0MDYwN10gYXVkaXQ6IHR5cGU9MTEzMCBhdWRpdCgxNzAzNzEyMzA5LjMwNDoyNDkpOiBwaWQ9
MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0PXVzZXItcnVu
dGltZS1kaXJAMTAwMCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVt
ZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7IDI4
Ljc0NjkzMF0gYXVkaXQ6IHR5cGU9MTEwMSBhdWRpdCgxNzAzNzEyMzA5LjMxMToyNTApOiBwaWQ9
NjAwNSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06YWNj
b3VudGluZyBncmFudG9ycz1wYW1fdW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9saWIvc3lz
dGVtZC9zeXN0ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0K
WyAmbmJzcDsgMjkuMTAxNDY5XSBsb29wMTc6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9t
IDAgdG8gMjA5NzE1MjANClsgJm5ic3A7IDI5LjE3Mzc0NF0gbG9vcDE4OiBkZXRlY3RlZCBjYXBh
Y2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDQxOTQzMDQNClsgJm5ic3A7IDMwLjg5ODA0Nl0gbG9vcDE5
OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDI1MTY1ODI0DQpbICZuYnNwOyAz
MC45OTM5MTNdIGxvb3AyMDogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA5NTIx
OTINClsgJm5ic3A7IDMzLjgyNTczNl0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiog
QXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTA0MTMgZW5kPTEwNDE0KSB0
aW1lIDIzNyB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDIwLCBlbmQg
MTA4NA0KWyAmbmJzcDsgMzQuMTI4MjA1XSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvNS81MTcx
MjogdXNpbmcgMiBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3Jh
bnRzDQpbICZuYnNwOyAzNC4xNTY4MzVdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC81LzUxNzI4
OiB1c2luZyAyIHF1ZXVlcywgcHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFu
dHMNClsgJm5ic3A7IDM0LjE4MTQ3NF0geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJkLzUvNTE3NDQ6
IHVzaW5nIDIgcXVldWVzLCBwcm90b2NvbCAxICh4ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50
cw0KWyAmbmJzcDsgMzQuMjAxOTU4XSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvNS81MTc2MDog
dXNpbmcgMiBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRz
DQpbICZuYnNwOyAzNS42NDcyODddIGlucHV0OiBzeXMtdXNiOiBVU0IgR2FtaW5nIE1vdXNlIGFz
IC9kZXZpY2VzL3ZpcnR1YWwvaW5wdXQvaW5wdXQzMw0KWyAmbmJzcDsgMzcuNTEzMTMzXSBrYXVk
aXRkX3ByaW50a19za2I6IDkxIGNhbGxiYWNrcyBzdXBwcmVzc2VkDQpbICZuYnNwOyAzNy41MTMx
MzVdIGF1ZGl0OiB0eXBlPTExMDYgYXVkaXQoMTcwMzcxMjMxOC4wNzc6MzQwKTogcGlkPTY3MTEg
dWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNlc3Npb25f
Y2xvc2UgZ3JhbnRvcnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJkZWJp
YW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8g
cmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAzNy41MTMxNTRdIGF1ZGl0OiB0eXBlPTExMDQgYXVkaXQo
MTcwMzcxMjMxOC4wNzc6MzQxKTogcGlkPTY3MTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00
Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJk
ZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFs
PT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAzNy41MzE2NDVdIGF1ZGl0OiB0eXBlPTExMzAgYXVk
aXQoMTcwMzcxMjMxOC4wOTU6MzQyKTogcGlkPTEgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00
Mjk0OTY3Mjk1IG1zZz0ndW5pdD1xdWJlcy12bUBzeXMtZmlyZXdhbGwgY29tbT0ic3lzdGVtZCIg
ZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFs
PT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAzNy41NDE3MDhdIGF1ZGl0OiB0eXBlPTExMjkgYXVk
aXQoMTcwMzcxMjMxOC4xMDU6MzQzKTogcGlkPTY4MjMgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNl
cz00Mjk0OTY3Mjk1IG1zZz0nb2xkLWxldmVsPU4gbmV3LWxldmVsPTUgY29tbT0ic3lzdGVtZC11
cGRhdGUtdXRtcCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQtdXBkYXRlLXV0bXAiIGhv
c3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyAzNy41NDMy
NzNdIGF1ZGl0OiB0eXBlPTExMzAgYXVkaXQoMTcwMzcxMjMxOC4xMDc6MzQ0KTogcGlkPTEgdWlk
PTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0ndW5pdD1zeXN0ZW1kLXVwZGF0
ZS11dG1wLXJ1bmxldmVsIGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0
ZW1kIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsg
MzcuNTQzMjc4XSBhdWRpdDogdHlwZT0xMTMxIGF1ZGl0KDE3MDM3MTIzMTguMTA3OjM0NSk6IHBp
ZD0xIHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9c3lzdGVt
ZC11cGRhdGUtdXRtcC1ydW5sZXZlbCBjb21tPSJzeXN0ZW1kIiBleGU9Ii91c3IvbGliL3N5c3Rl
bWQvc3lzdGVtZCIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycNClsg
Jm5ic3A7IDM4Ljk4NjUyN10gYXVkaXQ6IHR5cGU9MTEzMSBhdWRpdCgxNzAzNzEyMzE5LjU1MDoz
NDYpOiBwaWQ9MSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSd1bml0
PXVzZXJAOTk0IGNvbW09InN5c3RlbWQiIGV4ZT0iL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kIiBo
b3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgMzguOTk4
MTE1XSBhdWRpdDogdHlwZT0xMTMxIGF1ZGl0KDE3MDM3MTIzMTkuNTYyOjM0Nyk6IHBpZD0xIHVp
ZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J3VuaXQ9dXNlci1ydW50aW1l
LWRpckA5OTQgY29tbT0ic3lzdGVtZCIgZXhlPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbWQiIGhv
c3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyA1MC43MDMy
ODVdIGxvb3AyMTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA0MTk0MzA0MA0K
WyAmbmJzcDsgNTAuNzM4OTk2XSBsb29wMjI6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9t
IDAgdG8gNDE5NDMwNDANClsgJm5ic3A7IDUwLjg5ODUxN10gbG9vcDIzOiBkZXRlY3RlZCBjYXBh
Y2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwOTcxNTIwDQpbICZuYnNwOyA1Mi40MjgzMzZdIGxvb3Ay
NDogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAyMDk3MTUyMA0KWyAmbmJzcDsg
NTIuNDk0NzE5XSBsb29wMjU6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gOTUy
MTkyDQpbICZuYnNwOyA1Mi42NjkwNTJdIGF1ZGl0OiB0eXBlPTExMDMgYXVkaXQoMTcwMzcxMjMz
My4yMzM6MzQ4KTogcGlkPTczNzggdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1
IG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJkZWJpYW4iIGV4
ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1
Y2Nlc3MnDQpbICZuYnNwOyA1Mi42NjkzNjNdIGF1ZGl0OiB0eXBlPTExMDUgYXVkaXQoMTcwMzcx
MjMzMy4yMzM6MzQ5KTogcGlkPTczNzggdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3
Mjk1IG1zZz0nb3A9UEFNOnNlc3Npb25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGlt
aXRzLHBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5h
bWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7IDUyLjY4MjU2MV0g
YXVkaXQ6IHR5cGU9MTEwNiBhdWRpdCgxNzAzNzEyMzMzLjI0NjozNTApOiBwaWQ9NzM3OCB1aWQ9
MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9jbG9z
ZSBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4IGFjY3Q9ImRlYmlhbiIg
ZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9
c3VjY2VzcycNClsgJm5ic3A7IDUyLjY4MjU4NF0gYXVkaXQ6IHR5cGU9MTEwNCBhdWRpdCgxNzAz
NzEyMzMzLjI0NjozNTEpOiBwaWQ9NzM3OCB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5
NjcyOTUgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRlYmlh
biIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyBy
ZXM9c3VjY2VzcycNClsgJm5ic3A7IDUyLjY5OTU2N10gYXVkaXQ6IHR5cGU9MTEwMyBhdWRpdCgx
NzAzNzEyMzMzLjI2MzozNTIpOiBwaWQ9NzM4MiB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQy
OTQ5NjcyOTUgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRl
YmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9
PyByZXM9c3VjY2VzcycNClsgJm5ic3A7IDUyLjY5OTg4M10gYXVkaXQ6IHR5cGU9MTEwNSBhdWRp
dCgxNzAzNzEyMzMzLjI2NDozNTMpOiBwaWQ9NzM4MiB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2Vz
PTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9vcGVuIGdyYW50b3JzPXBhbV9rZXlpbml0
LHBhbV9saW1pdHMscGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2Vy
IiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsgNTUu
NDA0NzA3XSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvNi81MTcxMjogdXNpbmcgMiBxdWV1ZXMs
IHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzDQpbICZuYnNwOyA1NS40
NDI3MDVdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC82LzUxNzI4OiB1c2luZyAyIHF1ZXVlcywg
cHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMNClsgJm5ic3A7IDU1LjQ2
ODQyN10geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJkLzYvNTE3NDQ6IHVzaW5nIDIgcXVldWVzLCBw
cm90b2NvbCAxICh4ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cw0KWyAmbmJzcDsgNTUuNDkw
NjUyXSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvNi81MTc2MDogdXNpbmcgMiBxdWV1ZXMsIHBy
b3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzDQpbICZuYnNwOyA1OC43MDY2
NTBdIGF1ZGl0OiB0eXBlPTExMDYgYXVkaXQoMTcwMzcxMjMzOS4yNzA6MzU0KTogcGlkPTczODIg
dWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNlc3Npb25f
Y2xvc2UgZ3JhbnRvcnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJkZWJp
YW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8g
cmVzPXN1Y2Nlc3MnDQpbICZuYnNwOyA1OC43MDY2NjldIGF1ZGl0OiB0eXBlPTExMDQgYXVkaXQo
MTcwMzcxMjMzOS4yNzA6MzU1KTogcGlkPTczODIgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00
Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJk
ZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFs
PT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOzE3Ni43MDM2MzZdIGF1ZGl0OiB0eXBlPTExMDUgYXVk
aXQoMTcwMzcxMjQ1Ny4yNjc6MzU2KTogcGlkPTc0NzIgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0z
IG1zZz0nb3A9UEFNOnNlc3Npb25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRz
LHBhbV9zeXN0ZW1kLHBhbV91bml4IGFjY3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vcGtleGVjIiBo
b3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsyMDcuOTQx
Mjc5XSBhdWRpdDogdHlwZT0xMTAxIGF1ZGl0KDE3MDM3MTI0ODguNTA1OjM1Nyk6IHBpZD03NDk5
IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTphY2NvdW50aW5nIGdyYW50b3Jz
PXBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFk
ZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsyMDcuOTQxNjMw
XSBhdWRpdDogdHlwZT0xMTIzIGF1ZGl0KDE3MDM3MTI0ODguNTA1OjM1OCk6IHBpZD03NDk5IHVp
ZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J2N3ZD0iL2hvbWUvZGViaWFuIiBjbWQ9ImRtZXNn
IiBleGU9Ii91c3IvYmluL3N1ZG8iIHRlcm1pbmFsPXB0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJz
cDsyMDcuOTQyMjgzXSBhdWRpdDogdHlwZT0xMTEwIGF1ZGl0KDE3MDM3MTI0ODguNTA2OjM1OSk6
IHBpZD03NDk5IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXRjcmVkIGdy
YW50b3JzPXBhbV9lbnYscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBo
b3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJz
cDsyMDcuOTQ5NzQ3XSBhdWRpdDogdHlwZT0xMTA1IGF1ZGl0KDE3MDM3MTI0ODguNTEzOjM2MCk6
IHBpZD03NDk5IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXNzaW9uX29w
ZW4gZ3JhbnRvcnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fa2V5aW5pdCxwYW1fbGltaXRz
LHBhbV9zeXN0ZW1kLHBhbV91bml4IGFjY3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9z
dG5hbWU9PyBhZGRyPT8gdGVybWluYWw9L2Rldi9wdHMvNyByZXM9c3VjY2VzcycNClsgJm5ic3A7
MjA4LjAyMzI0NF0gYXVkaXQ6IHR5cGU9MTEwNiBhdWRpdCgxNzAzNzEyNDg4LjU4NzozNjEpOiBw
aWQ9NzQ5OSB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2Vzc2lvbl9jbG9z
ZSBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9rZXlpbml0LHBhbV9saW1pdHMs
cGFtX3N5c3RlbWQscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0
bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsy
MDguMDIzNDk4XSBhdWRpdDogdHlwZT0xMTA0IGF1ZGl0KDE3MDM3MTI0ODguNTg3OjM2Mik6IHBp
ZD03NDk5IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50
b3JzPXBhbV9lbnYscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0
bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDsy
NzkuNjY5ODI4XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRl
IGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD02OTQxNiBlbmQ9Njk0MTcpIHRpbWUgNDkwIHVzLCBt
aW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDk2MCwgZW5kIDEwOTANClsgJm5ic3A7
NTIxLjcyNjU0N10gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0
ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTI3NTEwIGVuZD0xMjc1MTEpIHRpbWUgMjcxIHVz
LCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwMjYsIGVuZCAxMDk1DQpbICZu
YnNwOzUyMi42ODQ5MjFdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1
cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTEyNzc0MCBlbmQ9MTI3NzQxKSB0aW1lIDM2
MyB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDM4LCBlbmQgMjANClsg
Jm5ic3A7NTIzLjM1OTg5OV0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWlj
IHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTI3OTAyIGVuZD0xMjc5MDMpIHRpbWUg
MzI4IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwNDUsIGVuZCAxOA0K
WyAmbmJzcDs1MjYuMDU5OTk0XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9t
aWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xMjg1NTAgZW5kPTEyODU1MSkgdGlt
ZSA0MzQgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgMTA0NiwgZW5kIDQz
DQpbICZuYnNwOzUzMy4yNTk4MThdIGxvb3AyNjogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZy
b20gMCB0byAyMDA4MDIzMDQNClsgJm5ic3A7NTMzLjMwNTA0Nl0gbG9vcDI3OiBkZXRlY3RlZCBj
YXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwMDgwMjMwNA0KWyAmbmJzcDs1MzMuMzkzMTA5XSBp
OTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24g
cGlwZSBBIChzdGFydD0xMzAzMTAgZW5kPTEzMDMxMSkgdGltZSA0MzIgdXMsIG1pbiAxMDUzLCBt
YXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgMTAxNCwgZW5kIDE0DQpbICZuYnNwOzUzMy41MTA2ODBd
IGxvb3AyODogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAyMDk3MTUyMA0KWyAm
bmJzcDs1MzMuNTY2MTY3XSBsb29wMjk6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAg
dG8gMjA5NzE1MjANClsgJm5ic3A7NTM3LjYyMTUyNF0gbG9vcDMwOiBkZXRlY3RlZCBjYXBhY2l0
eSBjaGFuZ2UgZnJvbSAwIHRvIDIwOTcxNTIwDQpbICZuYnNwOzU0MS4zNjU3MjNdIGxvb3AzMTog
ZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAyMDk3MTUyMA0KWyAmbmJzcDs1NDIu
NTAwNzYwXSB4ZW4tYmxrYmFjazogYmFja2VuZC92YmQvOC81MTcxMjogdXNpbmcgMSBxdWV1ZXMs
IHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRzDQpbICZuYnNwOzU0Mi42
MDUzMzVdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC84LzUxNzI4OiB1c2luZyAxIHF1ZXVlcywg
cHJvdG9jb2wgMSAoeDg2XzY0LWFiaSkgcGVyc2lzdGVudCBncmFudHMNClsgJm5ic3A7NTQyLjcy
NTk3Nl0geGVuLWJsa2JhY2s6IGJhY2tlbmQvdmJkLzgvNTE3NDQ6IHVzaW5nIDEgcXVldWVzLCBw
cm90b2NvbCAxICh4ODZfNjQtYWJpKSBwZXJzaXN0ZW50IGdyYW50cw0KWyAmbmJzcDs1NDQuMDc5
NDE0XSBhdWRpdDogdHlwZT0xMTAzIGF1ZGl0KDE3MDM3MTI4MjQuNjQzOjM2Myk6IHBpZD04NjY1
IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVk
IGdyYW50b3JzPXBhbV9yb290b2sgYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2Vy
IiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDs1NDQu
MDgwODA2XSBhdWRpdDogdHlwZT0xMTA1IGF1ZGl0KDE3MDM3MTI4MjQuNjQ1OjM2NCk6IHBpZD04
NjY1IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXNz
aW9uX29wZW4gZ3JhbnRvcnM9cGFtX2tleWluaXQscGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJk
ZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFs
PT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOzU0NC4xNTAzMjddIGF1ZGl0OiB0eXBlPTExMDYgYXVk
aXQoMTcwMzcxMjgyNC43MTQ6MzY1KTogcGlkPTg2NjUgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNl
cz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNlc3Npb25fY2xvc2UgZ3JhbnRvcnM9cGFtX2tleWlu
aXQscGFtX2xpbWl0cyxwYW1fdW5peCBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1bnVz
ZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOzU0
NC4xNTA0NDBdIGF1ZGl0OiB0eXBlPTExMDQgYXVkaXQoMTcwMzcxMjgyNC43MTQ6MzY2KTogcGlk
PTg2NjUgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFNOnNl
dGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmluL3J1
bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZuYnNw
OzU0NC4yNDA2NzNdIGF1ZGl0OiB0eXBlPTExMDMgYXVkaXQoMTcwMzcxMjgyNC44MDQ6MzY3KTog
cGlkPTg2NzYgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9UEFN
OnNldGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJkZWJpYW4iIGV4ZT0iL3Vzci9zYmlu
L3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVzPXN1Y2Nlc3MnDQpbICZu
YnNwOzU0NC4yNDIyMDldIGF1ZGl0OiB0eXBlPTExMDUgYXVkaXQoMTcwMzcxMjgyNC44MDY6MzY4
KTogcGlkPTg2NzYgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3Mjk1IG1zZz0nb3A9
UEFNOnNlc3Npb25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4
IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8g
dGVybWluYWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7NTQ0LjI2MDQzMF0gYXVkaXQ6IHR5cGU9
MTEwNiBhdWRpdCgxNzAzNzEyODI0LjgyNDozNjkpOiBwaWQ9ODY3NiB1aWQ9MCBhdWlkPTQyOTQ5
NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9jbG9zZSBncmFudG9ycz1w
YW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3Ni
aW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycNClsg
Jm5ic3A7NTQ0LjI2MDU2Ml0gYXVkaXQ6IHR5cGU9MTEwNCBhdWRpdCgxNzAzNzEyODI0LjgyNDoz
NzApOiBwaWQ9ODY3NiB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdv
cD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNy
L3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycN
ClsgJm5ic3A7NTUzLjA5Mjg4M10gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRv
bWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTM1MDM4IGVuZD0xMzUwMzkpIHRp
bWUgMjk0IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwMTQsIGVuZCAx
MDg4DQpbICZuYnNwOzU1OC4zOTI4MzRdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1Iq
IEF0b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTEzNjMxMCBlbmQ9MTM2MzEx
KSB0aW1lIDMxNyB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDIxLCBl
bmQgMTEwNQ0KWyAmbmJzcDs1NTkuNDA5NDYyXSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVS
Uk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xMzY1NTQgZW5kPTEz
NjU1NSkgdGltZSA0NjMgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgOTc5
LCBlbmQgMTEwMg0KWyAmbmJzcDs1OTYuMTI0OTEzXSBsb29wMjY6IGRldGVjdGVkIGNhcGFjaXR5
IGNoYW5nZSBmcm9tIDAgdG8gMjAwODAyMzA0DQpbICZuYnNwOzU5Ni4xNTQ2NzRdIGxvb3AyNzog
ZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAyMDA4MDIzMDQNClsgJm5ic3A7NTk2
LjM1MDMxMV0gbG9vcDI4OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDIwOTcx
NTIwDQpbICZuYnNwOzU5Ni4zNzM5MjhdIGxvb3AyOTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdl
IGZyb20gMCB0byAyMDk3MTUyMA0KWyAmbmJzcDs2MDAuNDcxNzg2XSBsb29wMzA6IGRldGVjdGVk
IGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMjA5NzE1MjANClsgJm5ic3A7NjAzLjM1MDk2MF0g
aTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9u
IHBpcGUgQSAoc3RhcnQ9MTQ3MTAwIGVuZD0xNDcxMDEpIHRpbWUgMzQ2IHVzLCBtaW4gMTA1Mywg
bWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwMTgsIGVuZCAxMTAzDQpbICZuYnNwOzYwNC44MTU0
NDNdIGxvb3AzMTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAyMDk3MTUyMA0K
WyAmbmJzcDs2MDUuNjc1ODg1XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9t
aWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xNDc2NTggZW5kPTE0NzY1OSkgdGlt
ZSAyNzAgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgMTA1MSwgZW5kIDEx
DQpbICZuYnNwOzYwNi4xMTE0OTRdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC8xMC81MTcxMjog
dXNpbmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRz
DQpbICZuYnNwOzYwNi4yNzk1NTZdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC8xMC81MTcyODog
dXNpbmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRz
DQpbICZuYnNwOzYwNi41MzUzMDFdIHhlbi1ibGtiYWNrOiBiYWNrZW5kL3ZiZC8xMC81MTc0NDog
dXNpbmcgMSBxdWV1ZXMsIHByb3RvY29sIDEgKHg4Nl82NC1hYmkpIHBlcnNpc3RlbnQgZ3JhbnRz
DQpbICZuYnNwOzYwNi42NTA4MzBdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0
b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE0Nzg5MiBlbmQ9MTQ3ODkzKSB0
aW1lIDQwNCB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCA5OTMsIGVuZCAx
MDkzDQpbICZuYnNwOzYwNy40MDkxMjVdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1Iq
IEF0b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE0ODA3NCBlbmQ9MTQ4MDc1
KSB0aW1lIDQwNSB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCA5OTgsIGVu
ZCAxMTA2DQpbICZuYnNwOzYwOC4yNzMyNjRdIGF1ZGl0OiB0eXBlPTExMDMgYXVkaXQoMTcwMzcx
Mjg4OC44Mzc6MzcxKTogcGlkPTk3MzUgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0OTY3
Mjk1IG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX3Jvb3RvayBhY2N0PSJkZWJpYW4i
IGV4ZT0iL3Vzci9zYmluL3J1bnVzZXIiIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPT8gcmVz
PXN1Y2Nlc3MnDQpbICZuYnNwOzYwOC4yNzQ5MDBdIGF1ZGl0OiB0eXBlPTExMDUgYXVkaXQoMTcw
MzcxMjg4OC44Mzk6MzcyKTogcGlkPTk3MzUgdWlkPTAgYXVpZD00Mjk0OTY3Mjk1IHNlcz00Mjk0
OTY3Mjk1IG1zZz0nb3A9UEFNOnNlc3Npb25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1f
bGltaXRzLHBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9z
dG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7NjA4LjMyODI5
OV0gYXVkaXQ6IHR5cGU9MTEwNiBhdWRpdCgxNzAzNzEyODg4Ljg5MjozNzMpOiBwaWQ9OTczNSB1
aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9j
bG9zZSBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV91bml4IGFjY3Q9ImRlYmlh
biIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9PyBy
ZXM9c3VjY2VzcycNClsgJm5ic3A7NjA4LjMyODQ4M10gYXVkaXQ6IHR5cGU9MTEwNCBhdWRpdCgx
NzAzNzEyODg4Ljg5MjozNzQpOiBwaWQ9OTczNSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2VzPTQy
OTQ5NjcyOTUgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9ImRl
YmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9
PyByZXM9c3VjY2VzcycNClsgJm5ic3A7NjA4LjQ1Njk1MV0gYXVkaXQ6IHR5cGU9MTEwMyBhdWRp
dCgxNzAzNzEyODg5LjAyMTozNzUpOiBwaWQ9OTczOSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUgc2Vz
PTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fcm9vdG9rIGFjY3Q9
ImRlYmlhbiIgZXhlPSIvdXNyL3NiaW4vcnVudXNlciIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWlu
YWw9PyByZXM9c3VjY2VzcycNClsgJm5ic3A7NjA4LjQ1ODk4N10gYXVkaXQ6IHR5cGU9MTEwNSBh
dWRpdCgxNzAzNzEyODg5LjAyMzozNzYpOiBwaWQ9OTczOSB1aWQ9MCBhdWlkPTQyOTQ5NjcyOTUg
c2VzPTQyOTQ5NjcyOTUgbXNnPSdvcD1QQU06c2Vzc2lvbl9vcGVuIGdyYW50b3JzPXBhbV9rZXlp
bml0LHBhbV9saW1pdHMscGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51
c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDs2
MDguNDc5MzE0XSBhdWRpdDogdHlwZT0xMTA2IGF1ZGl0KDE3MDM3MTI4ODkuMDQzOjM3Nyk6IHBp
ZD05NzM5IHVpZD0wIGF1aWQ9NDI5NDk2NzI5NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpz
ZXNzaW9uX2Nsb3NlIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX3VuaXggYWNj
dD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJt
aW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDs2MDguNDc5MzM5XSBhdWRpdDogdHlwZT0xMTA0
IGF1ZGl0KDE3MDM3MTI4ODkuMDQzOjM3OCk6IHBpZD05NzM5IHVpZD0wIGF1aWQ9NDI5NDk2NzI5
NSBzZXM9NDI5NDk2NzI5NSBtc2c9J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9yb290b2sg
YWNjdD0iZGViaWFuIiBleGU9Ii91c3Ivc2Jpbi9ydW51c2VyIiBob3N0bmFtZT0/IGFkZHI9PyB0
ZXJtaW5hbD0/IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDs2MTEuODAwNzI1XSBpOTE1IDAwMDA6MDA6
MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFy
dD0xNDkxMjggZW5kPTE0OTEyOSkgdGltZSAyNTggdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2Nh
bmxpbmUgc3RhcnQgMTAxMywgZW5kIDEwNzgNClsgJm5ic3A7NjExLjkyNTk1N10gaTkxNSAwMDAw
OjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAo
c3RhcnQ9MTQ5MTU4IGVuZD0xNDkxNTkpIHRpbWUgMzE2IHVzLCBtaW4gMTA1MywgbWF4IDEwNzks
IHNjYW5saW5lIHN0YXJ0IDEwNDcsIGVuZCAxMg0KWyAmbmJzcDs2MjguMDQyMjYyXSBpOTE1IDAw
MDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBB
IChzdGFydD0xNTMwMjYgZW5kPTE1MzAyNykgdGltZSAxNzIgdXMsIG1pbiAxMDUzLCBtYXggMTA3
OSwgc2NhbmxpbmUgc3RhcnQgMTA0OCwgZW5kIDEwOTMNClsgJm5ic3A7NjM3LjQ5MjIyMF0gaTkx
NSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBp
cGUgQSAoc3RhcnQ9MTU1Mjk0IGVuZD0xNTUyOTUpIHRpbWUgMjU4IHVzLCBtaW4gMTA1MywgbWF4
IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwMzMsIGVuZCAxMTAxDQpbICZuYnNwOzYzOS4xNDIxNzld
IGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVyZSBv
biBwaXBlIEEgKHN0YXJ0PTE1NTY5MCBlbmQ9MTU1NjkxKSB0aW1lIDM2MSB1cywgbWluIDEwNTMs
IG1heCAxMDc5LCBzY2FubGluZSBzdGFydCA5OTgsIGVuZCAxMDg3DQpbICZuYnNwOzYzOS41Mzgw
MzZdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRhdGUgZmFpbHVy
ZSBvbiBwaXBlIEEgKHN0YXJ0PTE1NTc4NSBlbmQ9MTU1Nzg2KSB0aW1lIDIxNCB1cywgbWluIDEw
NTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDMzLCBlbmQgMTA4Nw0KWyAmbmJzcDs2NDUu
NjQyMTk5XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMgdXBkYXRlIGZh
aWx1cmUgb24gcGlwZSBBIChzdGFydD0xNTcyNTAgZW5kPTE1NzI1MSkgdGltZSAyMzAgdXMsIG1p
biAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgMTA1MCwgZW5kIDANClsgJm5ic3A7NjQ3
LjQ1ODc5NV0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBm
YWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTU3Njg2IGVuZD0xNTc2ODcpIHRpbWUgMTk2IHVzLCBt
aW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwNDMsIGVuZCAxMDk1DQpbICZuYnNw
OzY0OC43MjU1MTVdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRh
dGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE1Nzk5MCBlbmQ9MTU3OTkxKSB0aW1lIDQ1NCB1
cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCA5OTIsIGVuZCAyDQpbICZuYnNw
OzY0OC43ODc5OTRdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21pYyB1cGRh
dGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE1ODAwNSBlbmQ9MTU4MDA2KSB0aW1lIDE4MyB1
cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDQ1LCBlbmQgMTA5MQ0KWyAm
bmJzcDs2NTUuODE3MTYyXSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBBdG9taWMg
dXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xNTk2OTIgZW5kPTE1OTY5MykgdGltZSA0
MzMgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgMTAwNiwgZW5kIDEwDQpb
ICZuYnNwOzY1OS44ODc5MTVdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1IqIEF0b21p
YyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE2MDY2OSBlbmQ9MTYwNjcwKSB0aW1l
IDIyMCB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDQzLCBlbmQgMTEw
Mg0KWyAmbmJzcDs2NzcuNjMzNjQ1XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0gKkVSUk9SKiBB
dG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xNjQ5MjggZW5kPTE2NDkyOSkg
dGltZSAyNzQgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQgMTAyMCwgZW5k
IDEwOTANClsgJm5ic3A7Njg1LjM5NTkwMF0gYXVkaXQ6IHR5cGU9MTEwMSBhdWRpdCgxNzAzNzEy
OTY1Ljk2MDozNzkpOiBwaWQ9MTAxMTYgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9
UEFNOmFjY291bnRpbmcgZ3JhbnRvcnM9cGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3Iv
YmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzUgcmVzPXN1Y2Nl
c3MnDQpbICZuYnNwOzY4NS4zOTYyNDRdIGF1ZGl0OiB0eXBlPTExMjMgYXVkaXQoMTcwMzcxMjk2
NS45NjA6MzgwKTogcGlkPTEwMTE2IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J2N3ZD0i
L2hvbWUvZGViaWFuIiBjbWQ9Nzg2QzIwNjQ2RDY1NzM2NyBleGU9Ii91c3IvYmluL3N1ZG8iIHRl
cm1pbmFsPXB0cy81IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDs2ODUuMzk2ODM1XSBhdWRpdDogdHlw
ZT0xMTEwIGF1ZGl0KDE3MDM3MTI5NjUuOTYxOjM4MSk6IHBpZD0xMDExNiB1aWQ9MTAwMCBhdWlk
PTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fZW52LHBhbV91bml4
IGFjY3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWlu
YWw9L2Rldi9wdHMvNSByZXM9c3VjY2VzcycNClsgJm5ic3A7Njg1LjQwNTc2NF0gYXVkaXQ6IHR5
cGU9MTEwNSBhdWRpdCgxNzAzNzEyOTY1Ljk3MDozODIpOiBwaWQ9MTAxMTYgdWlkPTEwMDAgYXVp
ZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNlc3Npb25fb3BlbiBncmFudG9ycz1wYW1fa2V5aW5p
dCxwYW1fbGltaXRzLHBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX3N5c3RlbWQscGFtX3VuaXgg
YWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5h
bD0vZGV2L3B0cy81IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDs2ODUuNDM1MDEwXSBhdWRpdDogdHlw
ZT0xMTA2IGF1ZGl0KDE3MDM3MTI5NjUuOTk5OjM4Myk6IHBpZD0xMDExNiB1aWQ9MTAwMCBhdWlk
PTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2Vzc2lvbl9jbG9zZSBncmFudG9ycz1wYW1fa2V5aW5p
dCxwYW1fbGltaXRzLHBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX3N5c3RlbWQscGFtX3VuaXgg
YWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5h
bD0vZGV2L3B0cy81IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDs2ODUuNDM1MjEzXSBhdWRpdDogdHlw
ZT0xMTA0IGF1ZGl0KDE3MDM3MTI5NjUuOTk5OjM4NCk6IHBpZD0xMDExNiB1aWQ9MTAwMCBhdWlk
PTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2V0Y3JlZCBncmFudG9ycz1wYW1fZW52LHBhbV91bml4
IGFjY3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWlu
YWw9L2Rldi9wdHMvNSByZXM9c3VjY2VzcycNClsgJm5ic3A7NzA4LjUwODQ2M10gaTkxNSAwMDAw
OjAwOjAyLjA6IFtkcm1dICpFUlJPUiogQXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAo
c3RhcnQ9MTcyMzM4IGVuZD0xNzIzMzkpIHRpbWUgMzAyIHVzLCBtaW4gMTA1MywgbWF4IDEwNzks
IHNjYW5saW5lIHN0YXJ0IDEwNDAsIGVuZCA5DQpbICZuYnNwOzcyMi41NzQ0MjhdIGF1ZGl0OiB0
eXBlPTExMDEgYXVkaXQoMTcwMzcxMzAwMy4xMzg6Mzg1KTogcGlkPTEwMTI2IHVpZD0xMDAwIGF1
aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBBTTphY2NvdW50aW5nIGdyYW50b3JzPXBhbV91bml4IGFj
Y3Q9ImRlYmlhbiIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5h
bD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDs3MjIuNTc0NzczXSBhdWRpdDogdHlw
ZT0xMTIzIGF1ZGl0KDE3MDM3MTMwMDMuMTM5OjM4Nik6IHBpZD0xMDEyNiB1aWQ9MTAwMCBhdWlk
PTEwMDAgc2VzPTIgbXNnPSdjd2Q9Ii9ob21lL2RlYmlhbi90ZXN0IiBjbWQ9NkU2MTZFNkYyMDc4
NkM2NDZENjU3MzY3IGV4ZT0iL3Vzci9iaW4vc3VkbyIgdGVybWluYWw9cHRzLzcgcmVzPXN1Y2Nl
c3MnDQpbICZuYnNwOzcyMi41NzUzNjFdIGF1ZGl0OiB0eXBlPTExMTAgYXVkaXQoMTcwMzcxMzAw
My4xMzk6Mzg3KTogcGlkPTEwMTI2IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J29wPVBB
TTpzZXRjcmVkIGdyYW50b3JzPXBhbV9lbnYscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNy
L2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNj
ZXNzJw0KWyAmbmJzcDs3MjIuNTg0NTYzXSBhdWRpdDogdHlwZT0xMTA1IGF1ZGl0KDE3MDM3MTMw
MDMuMTQ4OjM4OCk6IHBpZD0xMDEyNiB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1Q
QU06c2Vzc2lvbl9vcGVuIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFtX2tleWlu
aXQscGFtX2xpbWl0cyxwYW1fc3lzdGVtZCxwYW1fdW5peCBhY2N0PSJyb290IiBleGU9Ii91c3Iv
YmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1Y2Nl
c3MnDQpbICZuYnNwOzcyNi42MTI4NTJdIGk5MTUgMDAwMDowMDowMi4wOiBbZHJtXSAqRVJST1Iq
IEF0b21pYyB1cGRhdGUgZmFpbHVyZSBvbiBwaXBlIEEgKHN0YXJ0PTE3NjY4MyBlbmQ9MTc2Njg0
KSB0aW1lIDQwNSB1cywgbWluIDEwNTMsIG1heCAxMDc5LCBzY2FubGluZSBzdGFydCAxMDM1LCBl
bmQgMjQNClsgJm5ic3A7NzI4LjcwODE3OF0gaTkxNSAwMDAwOjAwOjAyLjA6IFtkcm1dICpFUlJP
UiogQXRvbWljIHVwZGF0ZSBmYWlsdXJlIG9uIHBpcGUgQSAoc3RhcnQ9MTc3MTg2IGVuZD0xNzcx
ODcpIHRpbWUgMjA2IHVzLCBtaW4gMTA1MywgbWF4IDEwNzksIHNjYW5saW5lIHN0YXJ0IDEwMjks
IGVuZCAxMDg0DQpbICZuYnNwOzczNC44MDcyNjRdIGF1ZGl0OiB0eXBlPTExMDYgYXVkaXQoMTcw
MzcxMzAxNS4zNzE6Mzg5KTogcGlkPTEwMTI2IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9
J29wPVBBTTpzZXNzaW9uX2Nsb3NlIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFt
X2tleWluaXQscGFtX2xpbWl0cyxwYW1fc3lzdGVtZCxwYW1fdW5peCBhY2N0PSJyb290IiBleGU9
Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVz
PXN1Y2Nlc3MnDQpbICZuYnNwOzczNC44MDc0NjFdIGF1ZGl0OiB0eXBlPTExMDQgYXVkaXQoMTcw
MzcxMzAxNS4zNzE6MzkwKTogcGlkPTEwMTI2IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9
J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9lbnYscGFtX3VuaXggYWNjdD0icm9vdCIgZXhl
PSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJl
cz1zdWNjZXNzJw0KWyAmbmJzcDs3MzguMTc1MDA1XSBpOTE1IDAwMDA6MDA6MDIuMDogW2RybV0g
KkVSUk9SKiBBdG9taWMgdXBkYXRlIGZhaWx1cmUgb24gcGlwZSBBIChzdGFydD0xNzk0NTggZW5k
PTE3OTQ1OSkgdGltZSAzNDUgdXMsIG1pbiAxMDUzLCBtYXggMTA3OSwgc2NhbmxpbmUgc3RhcnQg
MTAzOCwgZW5kIDExDQpbICZuYnNwOzc0NS42ODI4ODldIGF1ZGl0OiB0eXBlPTExMDEgYXVkaXQo
MTcwMzcxMzAyNi4yNDc6MzkxKTogcGlkPTEwMTM3IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBt
c2c9J29wPVBBTTphY2NvdW50aW5nIGdyYW50b3JzPXBhbV91bml4IGFjY3Q9ImRlYmlhbiIgZXhl
PSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy81IHJl
cz1zdWNjZXNzJw0KWyAmbmJzcDs3NDUuNjgzMjc2XSBhdWRpdDogdHlwZT0xMTIzIGF1ZGl0KDE3
MDM3MTMwMjYuMjQ3OjM5Mik6IHBpZD0xMDEzNyB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNn
PSdjd2Q9Ii9ob21lL2RlYmlhbiIgY21kPSJkbWVzZyIgZXhlPSIvdXNyL2Jpbi9zdWRvIiB0ZXJt
aW5hbD1wdHMvNSByZXM9c3VjY2VzcycNClsgJm5ic3A7NzQ1LjY4Mzc5OF0gYXVkaXQ6IHR5cGU9
MTExMCBhdWRpdCgxNzAzNzEzMDI2LjI0ODozOTMpOiBwaWQ9MTAxMzcgdWlkPTEwMDAgYXVpZD0x
MDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX2VudixwYW1fdW5peCBh
Y2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFs
PS9kZXYvcHRzLzUgcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOzc0NS42OTEwMDBdIGF1ZGl0OiB0eXBl
PTExMDUgYXVkaXQoMTcwMzcxMzAyNi4yNTU6Mzk0KTogcGlkPTEwMTM3IHVpZD0xMDAwIGF1aWQ9
MTAwMCBzZXM9MiBtc2c9J29wPVBBTTpzZXNzaW9uX29wZW4gZ3JhbnRvcnM9cGFtX2tleWluaXQs
cGFtX2xpbWl0cyxwYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9zeXN0ZW1kLHBhbV91bml4IGFj
Y3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9
L2Rldi9wdHMvNSByZXM9c3VjY2VzcycNClsgJm5ic3A7NzQ1Ljc2OTI3NV0gYXVkaXQ6IHR5cGU9
MTEwNiBhdWRpdCgxNzAzNzEzMDI2LjMzMzozOTUpOiBwaWQ9MTAxMzcgdWlkPTEwMDAgYXVpZD0x
MDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNlc3Npb25fY2xvc2UgZ3JhbnRvcnM9cGFtX2tleWluaXQs
cGFtX2xpbWl0cyxwYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9zeXN0ZW1kLHBhbV91bml4IGFj
Y3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIgaG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9
L2Rldi9wdHMvNSByZXM9c3VjY2VzcycNClsgJm5ic3A7NzQ1Ljc2OTY2Ml0gYXVkaXQ6IHR5cGU9
MTEwNCBhdWRpdCgxNzAzNzEzMDI2LjMzNDozOTYpOiBwaWQ9MTAxMzcgdWlkPTEwMDAgYXVpZD0x
MDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNldGNyZWQgZ3JhbnRvcnM9cGFtX2VudixwYW1fdW5peCBh
Y2N0PSJyb290IiBleGU9Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFs
PS9kZXYvcHRzLzUgcmVzPXN1Y2Nlc3MnDQpbICZuYnNwOzc3NC43Mjk2MjFdIGF1ZGl0OiB0eXBl
PTExMDEgYXVkaXQoMTcwMzcxMzA1NS4yOTQ6Mzk3KTogcGlkPTEwMTY1IHVpZD0xMDAwIGF1aWQ9
MTAwMCBzZXM9MiBtc2c9J29wPVBBTTphY2NvdW50aW5nIGdyYW50b3JzPXBhbV91bml4IGFjY3Q9
ImRlYmlhbiIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0v
ZGV2L3B0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJzcDs3NzQuNzI5OTI5XSBhdWRpdDogdHlwZT0x
MTIzIGF1ZGl0KDE3MDM3MTMwNTUuMjk0OjM5OCk6IHBpZD0xMDE2NSB1aWQ9MTAwMCBhdWlkPTEw
MDAgc2VzPTIgbXNnPSdjd2Q9Ii9ob21lL2RlYmlhbi90ZXN0IiBjbWQ9Nzg2QzIwNjQ2RDY1NzM2
NyBleGU9Ii91c3IvYmluL3N1ZG8iIHRlcm1pbmFsPXB0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJz
cDs3NzQuNzMwNDI0XSBhdWRpdDogdHlwZT0xMTEwIGF1ZGl0KDE3MDM3MTMwNTUuMjk0OjM5OSk6
IHBpZD0xMDE2NSB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2V0Y3JlZCBn
cmFudG9ycz1wYW1fZW52LHBhbV91bml4IGFjY3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIg
aG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9L2Rldi9wdHMvNyByZXM9c3VjY2VzcycNClsgJm5i
c3A7Nzc0LjczODk5MV0gYXVkaXQ6IHR5cGU9MTEwNSBhdWRpdCgxNzAzNzEzMDU1LjMwMzo0MDAp
OiBwaWQ9MTAxNjUgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFNOnNlc3Npb25f
b3BlbiBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9rZXlpbml0LHBhbV9saW1p
dHMscGFtX3N5c3RlbWQscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBo
b3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJz
cDs3NzQuNzU3NTQ3XSBhdWRpdDogdHlwZT0xMTA2IGF1ZGl0KDE3MDM3MTMwNTUuMzIxOjQwMSk6
IHBpZD0xMDE2NSB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2Vzc2lvbl9j
bG9zZSBncmFudG9ycz1wYW1fa2V5aW5pdCxwYW1fbGltaXRzLHBhbV9rZXlpbml0LHBhbV9saW1p
dHMscGFtX3N5c3RlbWQscGFtX3VuaXggYWNjdD0icm9vdCIgZXhlPSIvdXNyL2Jpbi9zdWRvIiBo
b3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJlcz1zdWNjZXNzJw0KWyAmbmJz
cDs3NzQuNzU3Nzk0XSBhdWRpdDogdHlwZT0xMTA0IGF1ZGl0KDE3MDM3MTMwNTUuMzIyOjQwMik6
IHBpZD0xMDE2NSB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNnPSdvcD1QQU06c2V0Y3JlZCBn
cmFudG9ycz1wYW1fZW52LHBhbV91bml4IGFjY3Q9InJvb3QiIGV4ZT0iL3Vzci9iaW4vc3VkbyIg
aG9zdG5hbWU9PyBhZGRyPT8gdGVybWluYWw9L2Rldi9wdHMvNyByZXM9c3VjY2VzcycNClsgJm5i
c3A7NzgyLjY1ODc0MV0gYXVkaXQ6IHR5cGU9MTEwMSBhdWRpdCgxNzAzNzEzMDYzLjIyMzo0MDMp
OiBwaWQ9MTAxNzYgdWlkPTEwMDAgYXVpZD0xMDAwIHNlcz0yIG1zZz0nb3A9UEFNOmFjY291bnRp
bmcgZ3JhbnRvcnM9cGFtX3VuaXggYWNjdD0iZGViaWFuIiBleGU9Ii91c3IvYmluL3N1ZG8iIGhv
c3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVzPXN1Y2Nlc3MnDQpbICZuYnNw
Ozc4Mi42NTkxMDBdIGF1ZGl0OiB0eXBlPTExMjMgYXVkaXQoMTcwMzcxMzA2My4yMjM6NDA0KTog
cGlkPTEwMTc2IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9J2N3ZD0iL2hvbWUvZGViaWFu
L3Rlc3QiIGNtZD0iZG1lc2ciIGV4ZT0iL3Vzci9iaW4vc3VkbyIgdGVybWluYWw9cHRzLzcgcmVz
PXN1Y2Nlc3MnDQpbICZuYnNwOzc4Mi42NTk3MzZdIGF1ZGl0OiB0eXBlPTExMTAgYXVkaXQoMTcw
MzcxMzA2My4yMjQ6NDA1KTogcGlkPTEwMTc2IHVpZD0xMDAwIGF1aWQ9MTAwMCBzZXM9MiBtc2c9
J29wPVBBTTpzZXRjcmVkIGdyYW50b3JzPXBhbV9lbnYscGFtX3VuaXggYWNjdD0icm9vdCIgZXhl
PSIvdXNyL2Jpbi9zdWRvIiBob3N0bmFtZT0/IGFkZHI9PyB0ZXJtaW5hbD0vZGV2L3B0cy83IHJl
cz1zdWNjZXNzJw0KWyAmbmJzcDs3ODIuNjY2NjUxXSBhdWRpdDogdHlwZT0xMTA1IGF1ZGl0KDE3
MDM3MTMwNjMuMjMxOjQwNik6IHBpZD0xMDE3NiB1aWQ9MTAwMCBhdWlkPTEwMDAgc2VzPTIgbXNn
PSdvcD1QQU06c2Vzc2lvbl9vcGVuIGdyYW50b3JzPXBhbV9rZXlpbml0LHBhbV9saW1pdHMscGFt
X2tleWluaXQscGFtX2xpbWl0cyxwYW1fc3lzdGVtZCxwYW1fdW5peCBhY2N0PSJyb290IiBleGU9
Ii91c3IvYmluL3N1ZG8iIGhvc3RuYW1lPT8gYWRkcj0/IHRlcm1pbmFsPS9kZXYvcHRzLzcgcmVz
PXN1Y2Nlc3MnDQoNCg0KJHN1ZG8geGVucG0gZ2V0LWNwdWlkbGUtc3RhdGVzDQpBbGwgQy1zdGF0
ZXMgYWxsb3dlZA0KDQpjcHUgaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDogMA0KdG90YWwgQy1zdGF0ZXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0
DQppZGxlIHRpbWUobXMpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogNzExMjkyDQpDMCAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyA6IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAxMzYwMzU3XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7
WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyMTgyMjkg
bXNdDQpDMSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAxMjgyNjE2XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVu
Y3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDs1MDkxMTQgbXNdDQpDMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNzY5NTldDQombmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOzE3OTg0NiBtc10NCkMzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNzgxXQ0K
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OTIyOSBtc10NCnBjMiAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7NDQ2NCBtc10NCnBjMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgMTAzOTMgbXNdDQpjYzcgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTQ2NTY3IG1zXQ0KDQpjcHUgaWQg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMQ0KdG90
YWwgQy1zdGF0ZXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0DQppZGxlIHRpbWUobXMpICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogODU4ODY0DQpDMCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs4NjU1NjZdDQom
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA2NjAxOCBtc10NCkMxICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDog
dHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzcwNzkzMl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzUzMjM1IG1z
XQ0KQzIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7MTU1ODU2XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNp
ZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDs0ODM2ODIgbXNdDQpDMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTc3OF0NCiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEzNDgzIG1zXQ0KcGMyICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs0NDY0IG1zXQ0K
cGMzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7OiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAxMDM5MyBtc10NCmNjNyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsxNDY1NjcgbXNdDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAyDQp0b3RhbCBDLXN0YXRlcyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyA6IDQNCmlkbGUgdGltZShtcykgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7OiA3MTg1MzcNCkMwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDE0ODc2NzVdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzIxMjI2MiBtc10NCkMxICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDE0MTUyMzVdDQombmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOzU2NDE2OCBtc10NCkMyICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA3MjI0OF0N
CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTM2NDM1IG1zXQ0KQzMgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
OiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAxOTFdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAm
bmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDszNTU0IG1zXQ0KcGMyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs0NDY0IG1zXQ0KcGMzICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMDM5MyBtc10NCmNjNyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsx
MTA1NzQgbXNdDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgOiAzDQp0b3RhbCBDLXN0YXRlcyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDQN
CmlkbGUgdGltZShtcykgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA4NTU1MDYNCkMwICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IDEwOTgyNDFdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA2OTUxOSBt
c10NCkMxICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOzk0NzY3NV0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVz
aWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7NDg2MjU3IG1zXQ0KQzIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTQ5NDMwXQ0KJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDszNDk4MDggbXNdDQpDMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTEz
Nl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEwODMzIG1zXQ0KcGMyICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7OiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDs0NDY0IG1zXQ0KcGMzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAxMDM5MyBtc10NCmNjNyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogWyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxMTA1NzQgbXNdDQoNCmNwdSBpZCAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0DQp0b3Rh
bCBDLXN0YXRlcyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDQNCmlkbGUgdGltZShtcykgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA3MTA4MTENCkMwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDE1OTYyNDldDQombmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzIyMDMzNSBtc10NCkMxICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNp
dGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDE1MzIwMjVd
DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzU2NTA4NyBtc10NCkMyICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyA2MzgwNl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNw
O1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTI1OTUw
IG1zXQ0KQzMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA0MThdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDs1MDQ2IG1zXQ0KcGMyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs0NDY0IG1zXQ0KcGMzICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7OiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAx
MDM5MyBtc10NCmNjNyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgOTk5OTMgbXNdDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA1DQp0b3RhbCBDLXN0YXRlcyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyA6IDQNCmlkbGUgdGltZShtcykgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
OiA4NDY2MTUNCkMwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IDE0OTc4MTZdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jl
c2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyA3ODY3NiBtc10NCkMxICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEzODIyMjJdDQombmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOzU4NDE5NyBtc10NCkMyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzExMzk5OV0NCiZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MjM0NTIwIG1zXQ0KQzMgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiB0cmFu
c2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOzE1OTRdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxOTAyNiBt
c10NCnBjMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7NDQ2NCBtc10NCnBjMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTAzOTMgbXNdDQpjYzcgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDk5OTkzIG1zXQ0K
DQpjcHUgaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDogNg0KdG90YWwgQy1zdGF0ZXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0DQppZGxlIHRpbWUo
bXMpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogNzExNTA5DQpDMCAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRyYW5z
aXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxODg1NzYx
XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyMTk5OTYgbXNdDQpDMSAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyA6IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAxODMxNzE4XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs1ODg1ODUgbXNd
DQpDMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgNTM3MjBdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lk
ZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzEwMzAyMCBtc10NCkMzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMzIzXQ0KJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7NDgxNyBtc10NCnBjMiAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogWyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7NDQ2NCBt
c10NCnBjMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgMTAzOTMgbXNdDQpjYzcgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDg1ODI1IG1zXQ0KDQpjcHUgaWQgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogNw0KdG90YWwgQy1zdGF0ZXMg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0DQppZGxlIHRpbWUobXMpICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOzogODUzNDQyDQpDMCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxODI4NTk3XQ0KJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgNzIwOTUgbXNdDQpDMSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxNzIwODk1XQ0KJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs2MTMzNzMgbXNdDQpDMiAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRyYW5zaXRp
b24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxMDYy
NDVdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzIxMzc5MiBtc10NCkMzICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsxNDU3XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVu
Y3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgMTcxNTggbXNdDQpwYzIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzQ0NjQgbXNdDQpwYzMgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEwMzkzIG1zXQ0KY2M3ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7OiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA4
NTgyNSBtc10NCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyA6IDgNCnRvdGFsIEMtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogNA0K
aWRsZSB0aW1lKG1zKSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDcwNTYzMw0KQzAgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgMTg5Mzk5OV0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MjI1NzcyIG1z
XQ0KQzEgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgMTgzNDY2M10NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5
ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
NTY5MTM3IG1zXQ0KQzIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDU4OTQwXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsxMTYwMzIgbXNdDQpDMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDM5Nl0NCiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzU0NzcgbXNdDQpwYzIgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDs6IFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzQ0NjQgbXNdDQpwYzMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IDEwMzkzIG1zXQ0KY2M3ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA5ODYxOCBtc10NCg0KY3B1IGlkICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDkNCnRvdGFs
IEMtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogNA0KaWRsZSB0aW1lKG1zKSAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDs6IDg1NTk5MA0KQzAgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiB0cmFuc2l0aW9uIFsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzcyNjAxXQ0KJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNjgyMTkgbXNdDQpDMSAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IHRy
YW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDszMDIzMDBdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzE4ODczOCBtc10N
CkMyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyA1NjQzMF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRl
bmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7MzgxMTkwIG1zXQ0KQzMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEzODcxXQ0KJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsyNzgyNzEgbXNdDQpwYzIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzQ0NjQgbXNdDQpwYzMgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDs6IFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEw
MzkzIG1zXQ0KY2M3ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7OiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyA5ODYxOCBtc10NCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDEwDQp0b3RhbCBDLXN0YXRlcyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyA6IDQNCmlkbGUgdGltZShtcykgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
OiA3MDUyNDkNCkMwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IDExNTY0MzldDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jl
c2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOzIyNTQzNiBtc10NCkMxICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEwNzQ2MTVdDQombmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOzQ3MTEzOCBtc10NCkMyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA4MDM1NF0NCiZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MjAxMDIzIG1zXQ0KQzMgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiB0cmFu
c2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOzE0NzBdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxODgyMiBt
c10NCnBjMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7NDQ2NCBtc10NCnBjMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogWyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTAzOTMgbXNdDQpjYzcgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTY3NTY2IG1zXQ0K
DQpjcHUgaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDogMTENCnRvdGFsIEMtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogNA0KaWRsZSB0aW1l
KG1zKSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDg0ODIwMw0KQzAgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiB0cmFu
c2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
NTkxNDQzXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNzYzNzIgbXNdDQpD
MSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyA6IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDs0ODQzNTddDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5j
eSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OzIyNjAxOSBtc10NCkMyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA5NjA2Nl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7NDQzMjc5IG1zXQ0KQzMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiB0cmFuc2l0aW9uIFsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDExMDE5XQ0KJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxNzA3NDkgbXNdDQpwYzIgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzQ0NjQg
bXNdDQpwYzMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDs6IFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDEwMzkzIG1zXQ0KY2M3ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzE2NzU2NiBtc10NCg0KDQoNCiRzdWRvIHhlbnBtIGdl
dC1jcHVmcmVxLXN0YXRlcw0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyA6IDANCnRvdGFsIFAtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDogMTYNCnVzYWJsZSBQLXN0YXRlcyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogMTUNCmN1cnJlbnQg
ZnJlcXVlbmN5ICZuYnNwOyAmbmJzcDs6IDgwMCBNSHoNClAwICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyBbMjYwMSBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMF0NCiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMCBtc10NClAxICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyBbMjYwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAzNTZdDQombmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMTIzMCBtc10NClAyICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyBbMjUwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxNF0NCiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMTUgbXNdDQpQMyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgWzIzMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTBdDQombmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTA2IG1zXQ0KUDQgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IFsyMjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA2XQ0KJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzQxIG1zXQ0KUDUg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyMTAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyA3XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzQx
IG1zXQ0KUDYgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyMDAwIE1Iel06IHRyYW5zaXRp
b24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOzE1XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7
WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOzkyIG1zXQ0KUDcgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsxODAwIE1Iel06
IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOzEwXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVu
Y3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOzQ1IG1zXQ0KUDggJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsx
NzAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzE1XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzUwIG1zXQ0KUDkgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IFsxNjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzM0XQ0KJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDE4MiBtc10NClAxMCAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDtbMTQwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxNl0NCiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMzIgbXNdDQpQMTEgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7WzEzMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MjFdDQombmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTE2IG1zXQ0KUDEyICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO1sxMjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzIwXQ0KJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEwMCBtc10NClAxMyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTEwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs0Ml0N
CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAyMDUgbXNdDQpQMTQg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WyA5MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
MzJdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTQ4IG1zXQ0K
KlAxNSAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbIDgwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAyNzFdDQom
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzIwMDY3NCBtc10NCg0KY3B1IGlkICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDENCnRvdGFs
IFAtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTYNCnVzYWJsZSBQLXN0YXRlcyAmbmJz
cDsgJm5ic3A7ICZuYnNwOzogMTUNCmN1cnJlbnQgZnJlcXVlbmN5ICZuYnNwOyAmbmJzcDs6IDgw
MCBNSHoNClAwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjYwMSBNSHpdOiB0cmFuc2l0
aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgMF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNw
O1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgMCBtc10NClAxICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjYwMCBNSHpd
OiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAxNTFdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAm
bmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDs0MjkyIG1zXQ0KUDIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyNTAwIE1Iel06
IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyA1XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVu
Y3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOzQxIG1zXQ0KUDMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsy
MzAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAzXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEzIG1zXQ0KUDQgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IFsyMjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxXQ0KJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzExIG1zXQ0KUDUgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7IFsyMTAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxXQ0KJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAyIG1zXQ0KUDYgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyMDAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA4
XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzcwIG1z
XQ0KUDcgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsxODAwIE1Iel06IHRyYW5zaXRpb24g
WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyA2XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzI0IG1zXQ0KUDggJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsxNzAwIE1Iel06IHRy
YW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyA4XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kg
Jm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzI1IG1zXQ0KUDkgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsxNjAw
IE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA2XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDty
ZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOzQ1IG1zXQ0KUDEwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwO1sxNDAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA4XQ0KJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzQzIG1zXQ0KUDExICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO1sxMzAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA1XQ0KJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzMwIG1zXQ0KUDEyICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxMjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA3XQ0K
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzM4IG1zXQ0K
UDEzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxMTAwIE1Iel06IHRyYW5zaXRpb24gWyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyA4XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OzM2IG1zXQ0KUDE0ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sgOTAwIE1Iel06IHRyYW5z
aXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyA3XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5i
c3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyA4IG1zXQ0KKlAxNSAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbIDgwMCBNSHpdOiB0
cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAxMjddDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJz
cDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA1NTU0
OSBtc10NCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyA6IDINCnRvdGFsIFAtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTYNCnVz
YWJsZSBQLXN0YXRlcyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogMTUNCmN1cnJlbnQgZnJlcXVlbmN5
ICZuYnNwOyAmbmJzcDs6IDgwMCBNSHoNClAwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBb
MjYwMSBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMCBtc10NClAxICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyBbMjYwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAzNzBdDQombmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAxMDUyOCBtc10NClAyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyBbMjUwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyMV0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxNTEgbXNdDQpQMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgWzIzMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDldDQombmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTM3IG1zXQ0KUDQgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IFsyMjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEyXQ0KJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzkxIG1zXQ0KUDUgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IFsyMTAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEyXQ0KJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzczIG1zXQ0KUDYg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyMDAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OzIwXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDE1OCBtc10N
ClA3ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMTgwMCBNSHpdOiB0cmFuc2l0aW9uIFsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsxOF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMzQg
bXNdDQpQOCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzE3MDAgTUh6XTogdHJhbnNpdGlv
biBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7MTBdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7NTkgbXNdDQpQOSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzE2MDAgTUh6XTog
dHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7NDRdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5j
eSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgMjUwIG1zXQ0KUDEwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxNDAwIE1I
el06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOzE4XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNp
ZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDE0NCBtc10NClAxMSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTMw
MCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxMl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs3NCBtc10NClAxMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDtbMTIwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyMF0NCiZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMDQgbXNdDQpQMTMgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7WzExMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzVdDQombmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTkzIG1zXQ0KUDE0ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO1sgOTAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzM1XQ0KJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDE0NyBtc10NCipQMTUgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgWyA4MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMjY4XQ0KJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsxOTQ0NDUgbXNdDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAzDQp0b3RhbCBQLXN0YXRlcyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyA6IDE2DQp1c2FibGUgUC1zdGF0ZXMgJm5ic3A7ICZuYnNwOyAmbmJz
cDs6IDE1DQpjdXJyZW50IGZyZXF1ZW5jeSAmbmJzcDsgJm5ic3A7OiA4MDAgTUh6DQpQMCAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzI2MDEgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDBd
DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDAgbXNd
DQpQMSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzI2MDAgTUh6XTogdHJhbnNpdGlvbiBb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
MTUzXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzA4OCBtc10N
ClAyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjUwMCBNSHpdOiB0cmFuc2l0aW9uIFsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgNl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDs3OSBtc10NClAzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjMwMCBNSHpdOiB0cmFu
c2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgMl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZu
YnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgMyBtc10NClA0ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjIwMCBN
SHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVz
aWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgMyBtc10NClA1ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyBbMjEwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNCBtc10NClA2ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyBbMjAwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxMF0NCiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs3NyBtc10NClA3ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyBbMTgwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgN10NCiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyNSBtc10NClA4
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMTcwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgNV0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsy
NSBtc10NClA5ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMTYwMCBNSHpdOiB0cmFuc2l0
aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgN10NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNw
O1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDszNiBtc10NClAxMCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTQwMCBNSHpd
OiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgN10NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRl
bmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsxMiBtc10NClAxMSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtb
MTMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgN10NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs2MSBtc10NClAxMiAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDtbMTIwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgM10NCiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxNSBtc10NClAxMyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDtbMTEwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxM10NCiZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDszNyBtc10NClAxNCAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbIDkwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
OF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyOSBt
c10NCipQMTUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWyA4MDAgTUh6XTogdHJhbnNpdGlvbiBbICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTI0
XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNTk4NzEgbXNdDQoNCmNwdSBp
ZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0DQp0
b3RhbCBQLXN0YXRlcyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDE2DQp1c2FibGUgUC1zdGF0ZXMg
Jm5ic3A7ICZuYnNwOyAmbmJzcDs6IDE1DQpjdXJyZW50IGZyZXF1ZW5jeSAmbmJzcDsgJm5ic3A7
OiA4MDAgTUh6DQpQMCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzI2MDEgTUh6XTogdHJh
bnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7IDBdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAm
bmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDAgbXNdDQpQMSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzI2MDAg
TUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgMzc2XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVu
Y3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgMTE4OTQgbXNdDQpQMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzI1MDAgTUh6XTog
dHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7MTddDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5j
eSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgMTg1IG1zXQ0KUDMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyMzAwIE1I
el06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEyXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNp
ZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDEyMCBtc10NClA0ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjIw
MCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxNF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs3NSBtc10NClA1ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyBbMjEwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxNV0NCiZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMzUgbXNdDQpQNiAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgWzIwMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MjVdDQombmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTU2IG1zXQ0KUDcgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IFsxODAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEyXQ0KJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzk1IG1zXQ0KUDggJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsxNzAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEzXQ0K
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzgxIG1zXQ0K
UDkgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsxNjAwIE1Iel06IHRyYW5zaXRpb24gWyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzQyXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDMwNCBt
c10NClAxMCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTQwMCBNSHpdOiB0cmFuc2l0aW9u
IFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsxN10NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAx
MTUgbXNdDQpQMTEgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzEzMDAgTUh6XTogdHJhbnNp
dGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7MTddDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJz
cDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7OTcgbXNdDQpQMTIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzEyMDAgTUh6
XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7MjVdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lk
ZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgMTQ2IG1zXQ0KUDEzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxMTAw
IE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzUzXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDty
ZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7IDI4NCBtc10NClAxNCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtb
IDkwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyNl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAxMzAgbXNdDQoqUDE1ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsg
ODAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDI3Nl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVz
aWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7MjAxNDEzIG1zXQ0KDQpjcHUgaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IDogNQ0KdG90YWwgUC1zdGF0ZXMgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgOiAxNg0KdXNhYmxlIFAtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAxNQ0KY3VycmVu
dCBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogODAwIE1Ieg0KUDAgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IFsyNjAxIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAwXQ0KJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAwIG1zXQ0KUDEgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IFsyNjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEzN10NCiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzI5NTYgbXNdDQpQMiAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgWzI1MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDZdDQombmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzYgbXNdDQpQMyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIzMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDNdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDYg
bXNdDQpQNCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIyMDAgTUh6XTogdHJhbnNpdGlv
biBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDJdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IDcgbXNdDQpQNSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIxMDAgTUh6XTog
dHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IDVdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5j
eSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7MjUgbXNdDQpQNiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIw
MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDVdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
O3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzkgbXNdDQpQNyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgWzE4MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDJdDQombmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzcgbXNdDQpQOCAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgWzE3MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDZdDQombmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7NDAgbXNdDQpQOSAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzE2MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDRd
DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTEgbXNd
DQpQMTAgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzE0MDAgTUh6XTogdHJhbnNpdGlvbiBb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IDNdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7MjggbXNdDQpQMTEgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzEzMDAgTUh6XTogdHJh
bnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7IDNdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAm
bmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7MTUgbXNdDQpQMTIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzEyMDAg
TUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDhdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jl
c2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7MjAgbXNdDQpQMTMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7WzExMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTJdDQombmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7NDcgbXNdDQpQMTQgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7WyA5MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDddDQombmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzQgbXNdDQoqUDE1ICZuYnNw
OyAmbmJzcDsgJm5ic3A7IFsgODAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDExNV0NCiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDY5NDY0IG1zXQ0KDQpjcHUgaWQgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogNg0KdG90YWwgUC1zdGF0ZXMg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAxNg0KdXNhYmxlIFAtc3RhdGVzICZuYnNwOyAmbmJzcDsg
Jm5ic3A7OiAxNQ0KY3VycmVudCBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogODAwIE1Ieg0KUDAg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyNjAxIE1Iel06IHRyYW5zaXRpb24gWyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAwXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAw
IG1zXQ0KUDEgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyNjAwIE1Iel06IHRyYW5zaXRp
b24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IDM3Nl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEyMzM1IG1zXQ0K
UDIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyNTAwIE1Iel06IHRyYW5zaXRpb24gWyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzE3XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDE3NiBt
c10NClAzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjMwMCBNSHpdOiB0cmFuc2l0aW9u
IFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgN10NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDs1MSBtc10NClA0ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjIwMCBNSHpdOiB0
cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgNl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5
ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDszNSBtc10NClA1ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjEw
MCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxNl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs4NiBtc10NClA2ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyBbMjAwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyMl0NCiZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxNTcgbXNdDQpQNyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgWzE4MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTZdDQombmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ODQgbXNdDQpQOCAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgWzE3MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTNdDQombmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ODQgbXNdDQpQOSAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzE2MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
MjRdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTY5IG1zXQ0K
UDEwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxNDAwIE1Iel06IHRyYW5zaXRpb24gWyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzE5XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
Ozg2IG1zXQ0KUDExICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxMzAwIE1Iel06IHRyYW5z
aXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzEzXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5i
c3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOzgyIG1zXQ0KUDEyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxMjAwIE1I
el06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOzI2XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNp
ZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDEwMCBtc10NClAxMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTEw
MCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs1Ml0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAyNDEgbXNdDQpQMTQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
WyA5MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzRdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgMTYyIG1zXQ0KKlAxNSAmbmJzcDsgJm5ic3A7ICZuYnNwOyBb
IDgwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAyODZdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jl
c2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOzE5OTgyOCBtc10NCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyA6IDcNCnRvdGFsIFAtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5i
c3A7IDogMTYNCnVzYWJsZSBQLXN0YXRlcyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogMTUNCmN1cnJl
bnQgZnJlcXVlbmN5ICZuYnNwOyAmbmJzcDs6IDgwMCBNSHoNClAwICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyBbMjYwMSBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMF0NCiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMCBtc10NClAxICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyBbMjYwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMzFdDQombmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs0ODQyIG1zXQ0KUDIgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IFsyNTAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA0XQ0KJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzI0IG1zXQ0KUDMg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyMzAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAzXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzE2
IG1zXQ0KUDQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyMjAwIE1Iel06IHRyYW5zaXRp
b24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAxXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7
WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOzEzIG1zXQ0KUDUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyMTAwIE1Iel06
IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAyXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVu
Y3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyA1IG1zXQ0KUDYgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsy
MDAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA0XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzI2IG1zXQ0KUDcgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IFsxODAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA0XQ0KJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzM3IG1zXQ0KUDggJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7IFsxNzAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA2XQ0KJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzM2IG1zXQ0KUDkgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsxNjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA5
XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzM0IG1z
XQ0KUDEwICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxNDAwIE1Iel06IHRyYW5zaXRpb24g
WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyA0XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzIzIG1zXQ0KUDExICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxMzAwIE1Iel06IHRy
YW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAzXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kg
Jm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyA5IG1zXQ0KUDEyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxMjAw
IE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA3XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDty
ZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOzU2IG1zXQ0KUDEzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwO1sxMTAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA3XQ0KJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzU4IG1zXQ0KUDE0ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO1sgOTAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEwXQ0KJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzM5IG1zXQ0KKlAxNSAmbmJz
cDsgJm5ic3A7ICZuYnNwOyBbIDgwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMDJdDQombmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA2MDQ3NiBtc10NCg0KY3B1IGlkICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDgNCnRvdGFsIFAtc3RhdGVz
ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTYNCnVzYWJsZSBQLXN0YXRlcyAmbmJzcDsgJm5ic3A7
ICZuYnNwOzogMTUNCmN1cnJlbnQgZnJlcXVlbmN5ICZuYnNwOyAmbmJzcDs6IDgwMCBNSHoNClAw
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjYwMSBNSHpdOiB0cmFuc2l0aW9uIFsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgMF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
MCBtc10NClAxICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjYwMCBNSHpdOiB0cmFuc2l0
aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAzODJdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMDk3OSBtc10N
ClAyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjUwMCBNSHpdOiB0cmFuc2l0aW9uIFsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsxOV0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxNTYg
bXNdDQpQMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIzMDAgTUh6XTogdHJhbnNpdGlv
biBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDZdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7NTMgbXNdDQpQNCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIyMDAgTUh6XTog
dHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7MTNdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5j
eSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7OTYgbXNdDQpQNSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIx
MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTNdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
O3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgMTIwIG1zXQ0KUDYgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IFsyMDAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzI5XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDI2NCBtc10NClA3ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyBbMTgwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxM10NCiZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMDggbXNdDQpQOCAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgWzE3MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTldDQombmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ODggbXNdDQpQOSAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgWzE2MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MjddDQombmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTYxIG1zXQ0KUDEwICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxNDAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzE2XQ0K
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzk3IG1zXQ0K
UDExICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sxMzAwIE1Iel06IHRyYW5zaXRpb24gWyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzE5XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEwMSBt
c10NClAxMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTIwMCBNSHpdOiB0cmFuc2l0aW9u
IFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDszMV0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAx
OTAgbXNdDQpQMTMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzExMDAgTUh6XTogdHJhbnNp
dGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7MzRdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJz
cDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgMTQ2IG1zXQ0KUDE0ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sgOTAwIE1Iel06IHRy
YW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOzI1XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kg
Jm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IDExNiBtc10NCipQMTUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWyA4MDAgTUh6XTogdHJh
bnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgMjc2XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7
WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyMDgxOTkg
bXNdDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgOiA5DQp0b3RhbCBQLXN0YXRlcyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDE2DQp1c2Fi
bGUgUC1zdGF0ZXMgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDE1DQpjdXJyZW50IGZyZXF1ZW5jeSAm
bmJzcDsgJm5ic3A7OiA4MDAgTUh6DQpQMCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzI2
MDEgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDBdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
O3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDAgbXNdDQpQMSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgWzI2MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTQxXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzM1NiBtc10NClAyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyBbMjUwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNl0NCiZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDszMiBtc10NClAzICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBbMjMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgM10NCiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNiBtc10NClA0ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjIwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNF0N
CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxNCBtc10N
ClA1ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjEwMCBNSHpdOiB0cmFuc2l0aW9uIFsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgMl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsxMSBtc10NClA2ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjAwMCBNSHpdOiB0cmFu
c2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgNF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZu
YnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDs0MyBtc10NClA3ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMTgwMCBN
SHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxMV0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVz
aWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDs3MSBtc10NClA4ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyBbMTcwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNSBtc10NClA5ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyBbMTYwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNV0NCiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs0NSBtc10NClAxMCAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDtbMTQwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNl0NCiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyMCBtc10NClAx
MSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgM10NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsx
MCBtc10NClAxMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTIwMCBNSHpdOiB0cmFuc2l0
aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgNF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNw
O1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDszOCBtc10NClAxMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTEwMCBNSHpd
OiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsxMF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRl
bmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDs2NiBtc10NClAxNCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtb
IDkwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOV0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyMiBtc10NCipQMTUgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgWyA4MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMTE2XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgNTk3NDAgbXNdDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAxMA0KdG90YWwgUC1zdGF0ZXMgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgOiAxNg0KdXNhYmxlIFAtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAxNQ0K
Y3VycmVudCBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogODAwIE1Ieg0KUDAgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7IFsyNjAxIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAwXQ0KJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAwIG1zXQ0KUDEgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyNjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDM2NV0NCiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEzMjYyIG1zXQ0KUDIgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IFsyNTAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzI0XQ0KJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDE5MyBtc10NClAzICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBbMjMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxM10N
CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMDMgbXNdDQpQNCAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIyMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
MTFdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7NTAg
bXNdDQpQNSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIxMDAgTUh6XTogdHJhbnNpdGlv
biBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7MTJdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ODUgbXNdDQpQNiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIwMDAgTUh6XTog
dHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7MzBdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5j
eSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgMjIyIG1zXQ0KUDcgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsxODAwIE1I
el06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA5XQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNp
ZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOzcxIG1zXQ0KUDggJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IFsxNzAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzEwXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzUyIG1zXQ0KUDkgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IFsxNjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzI1XQ0KJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEzNCBtc10NClAxMCAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDtbMTQwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxMV0NCiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs3MyBtc10NClAxMSAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTMwMCBNSHpdOiB0cmFuc2l0aW9uIFsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxNF0N
CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs3MCBtc10N
ClAxMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtbMTIwMCBNSHpdOiB0cmFuc2l0aW9uIFsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsyNV0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxMjMg
bXNdDQpQMTMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzExMDAgTUh6XTogdHJhbnNpdGlv
biBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7MzhdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
MTYwIG1zXQ0KUDE0ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1sgOTAwIE1Iel06IHRyYW5z
aXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzMxXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5i
c3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IDEyNyBtc10NCipQMTUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWyA4MDAgTUh6XTogdHJhbnNp
dGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgMjgwXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNpZGVuY3kgJm5ic3A7WyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsyMDUzMzEgbXNd
DQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgOiAxMQ0KdG90YWwgUC1zdGF0ZXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAxNg0KdXNhYmxl
IFAtc3RhdGVzICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAxNQ0KY3VycmVudCBmcmVxdWVuY3kgJm5i
c3A7ICZuYnNwOzogODAwIE1Ieg0KUDAgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFsyNjAx
IE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAwXQ0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDty
ZXNpZGVuY3kgJm5ic3A7WyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAwIG1zXQ0KUDEgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IFsyNjAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEzNl0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOzUyODMgbXNdDQpQMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgWzI1MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDZdDQombmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7NDEgbXNdDQpQMyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgWzIzMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDVdDQombmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDggbXNdDQpQNCAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIyMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDNdDQom
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MzEgbXNdDQpQ
NSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIxMDAgTUh6XTogdHJhbnNpdGlvbiBbICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IDVdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
MjQgbXNdDQpQNiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzIwMDAgTUh6XTogdHJhbnNp
dGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDldDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJz
cDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7MzYgbXNdDQpQNyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWzE4MDAgTUh6
XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDVdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lk
ZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7MzIgbXNdDQpQOCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
WzE3MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDJdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDcgbXNdDQpQOSAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgWzE2MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDhdDQombmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7NzAgbXNdDQpQMTAgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7WzE0MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDldDQombmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7NTAgbXNdDQpQMTEg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzEzMDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDVdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTkg
bXNdDQpQMTIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzEyMDAgTUh6XTogdHJhbnNpdGlv
biBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDFdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5jeSAmbmJzcDtb
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IDAgbXNdDQpQMTMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WzExMDAgTUh6XTog
dHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7MTJdDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jlc2lkZW5j
eSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7NTUgbXNdDQpQMTQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7WyA5
MDAgTUh6XTogdHJhbnNpdGlvbiBbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDddDQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
O3Jlc2lkZW5jeSAmbmJzcDtbICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MTIgbXNdDQoqUDE1ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IFsgODAwIE1Iel06IHRyYW5zaXRpb24gWyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDEwOF0NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
cmVzaWRlbmN5ICZuYnNwO1sgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDY0NzM4IG1zXQ0KDQokc3VkbyB4ZW5wbSBnZXQtY3B1ZnJlcS1wYXJhDQpjcHUg
aWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMA0K
YWZmZWN0ZWRfY3B1cyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDANCmNwdWluZm8gZnJl
cXVlbmN5ICZuYnNwOyAmbmJzcDs6IG1heCBbMjYwMTAwMF0gbWluIFs4MDAwMDBdIGN1ciBbMjYw
MTAwMF0NCnNjYWxpbmdfZHJpdmVyICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogYWNwaS1jcHVmcmVx
DQpzY2FsaW5nX2F2YWlsX2dvdiAmbmJzcDsgJm5ic3A7OiBod3AtaW50ZXJuYWwgdXNlcnNwYWNl
IHBlcmZvcm1hbmNlIHBvd2Vyc2F2ZSBvbmRlbWFuZA0KY3VycmVudF9nb3Zlcm5vciAmbmJzcDsg
Jm5ic3A7IDogcG93ZXJzYXZlDQpzY2FsaW5nX2F2YWlsX2ZyZXEgJm5ic3A7IDogMjYwMTAwMCAy
NjAwMDAwIDI1MDAwMDAgMjMwMDAwMCAyMjAwMDAwIDIxMDAwMDAgMjAwMDAwMCAxODAwMDAwIDE3
MDAwMDAgMTYwMDAwMCAxNDAwMDAwIDEzMDAwMDAgMTIwMDAwMCAxMTAwMDAwIDkwMDAwMCAqODAw
MDAwDQpzY2FsaW5nIGZyZXF1ZW5jeSAmbmJzcDsgJm5ic3A7OiBtYXggWzgwMDAwMF0gbWluIFs4
MDAwMDBdIGN1ciBbODAwMDAwXQ0KdHVyYm8gbW9kZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDogZGlzYWJsZWQgb3Igbi9hDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAxDQphZmZlY3RlZF9jcHVzICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOzogMQ0KY3B1aW5mbyBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzog
bWF4IFsyNjAxMDAwXSBtaW4gWzgwMDAwMF0gY3VyIFsyNjAxMDAwXQ0Kc2NhbGluZ19kcml2ZXIg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgOiBhY3BpLWNwdWZyZXENCnNjYWxpbmdfYXZhaWxfZ292ICZu
YnNwOyAmbmJzcDs6IGh3cC1pbnRlcm5hbCB1c2Vyc3BhY2UgcGVyZm9ybWFuY2UgcG93ZXJzYXZl
IG9uZGVtYW5kDQpjdXJyZW50X2dvdmVybm9yICZuYnNwOyAmbmJzcDsgOiBwb3dlcnNhdmUNCnNj
YWxpbmdfYXZhaWxfZnJlcSAmbmJzcDsgOiAyNjAxMDAwIDI2MDAwMDAgMjUwMDAwMCAyMzAwMDAw
IDIyMDAwMDAgMjEwMDAwMCAyMDAwMDAwIDE4MDAwMDAgMTcwMDAwMCAxNjAwMDAwIDE0MDAwMDAg
MTMwMDAwMCAxMjAwMDAwIDExMDAwMDAgOTAwMDAwICo4MDAwMDANCnNjYWxpbmcgZnJlcXVlbmN5
ICZuYnNwOyAmbmJzcDs6IG1heCBbODAwMDAwXSBtaW4gWzgwMDAwMF0gY3VyIFs4MDAwMDBdDQp0
dXJibyBtb2RlICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiBkaXNhYmxlZCBv
ciBuL2ENCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyA6IDINCmFmZmVjdGVkX2NwdXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAy
DQpjcHVpbmZvIGZyZXF1ZW5jeSAmbmJzcDsgJm5ic3A7OiBtYXggWzI2MDEwMDBdIG1pbiBbODAw
MDAwXSBjdXIgWzI2MDEwMDBdDQpzY2FsaW5nX2RyaXZlciAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6
IGFjcGktY3B1ZnJlcQ0Kc2NhbGluZ19hdmFpbF9nb3YgJm5ic3A7ICZuYnNwOzogaHdwLWludGVy
bmFsIHVzZXJzcGFjZSBwZXJmb3JtYW5jZSBwb3dlcnNhdmUgb25kZW1hbmQNCmN1cnJlbnRfZ292
ZXJub3IgJm5ic3A7ICZuYnNwOyA6IHBvd2Vyc2F2ZQ0Kc2NhbGluZ19hdmFpbF9mcmVxICZuYnNw
OyA6IDI2MDEwMDAgMjYwMDAwMCAyNTAwMDAwIDIzMDAwMDAgMjIwMDAwMCAyMTAwMDAwIDIwMDAw
MDAgMTgwMDAwMCAxNzAwMDAwIDE2MDAwMDAgMTQwMDAwMCAxMzAwMDAwIDEyMDAwMDAgMTEwMDAw
MCA5MDAwMDAgKjgwMDAwMA0Kc2NhbGluZyBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogbWF4IFs4
MDAwMDBdIG1pbiBbODAwMDAwXSBjdXIgWzgwMDAwMF0NCnR1cmJvIG1vZGUgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IGRpc2FibGVkIG9yIG4vYQ0KDQpjcHUgaWQgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMw0KYWZmZWN0ZWRf
Y3B1cyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDMNCmNwdWluZm8gZnJlcXVlbmN5ICZu
YnNwOyAmbmJzcDs6IG1heCBbMjYwMTAwMF0gbWluIFs4MDAwMDBdIGN1ciBbMjYwMTAwMF0NCnNj
YWxpbmdfZHJpdmVyICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogYWNwaS1jcHVmcmVxDQpzY2FsaW5n
X2F2YWlsX2dvdiAmbmJzcDsgJm5ic3A7OiBod3AtaW50ZXJuYWwgdXNlcnNwYWNlIHBlcmZvcm1h
bmNlIHBvd2Vyc2F2ZSBvbmRlbWFuZA0KY3VycmVudF9nb3Zlcm5vciAmbmJzcDsgJm5ic3A7IDog
cG93ZXJzYXZlDQpzY2FsaW5nX2F2YWlsX2ZyZXEgJm5ic3A7IDogMjYwMTAwMCAyNjAwMDAwIDI1
MDAwMDAgMjMwMDAwMCAyMjAwMDAwIDIxMDAwMDAgMjAwMDAwMCAxODAwMDAwIDE3MDAwMDAgMTYw
MDAwMCAxNDAwMDAwIDEzMDAwMDAgMTIwMDAwMCAxMTAwMDAwIDkwMDAwMCAqODAwMDAwDQpzY2Fs
aW5nIGZyZXF1ZW5jeSAmbmJzcDsgJm5ic3A7OiBtYXggWzgwMDAwMF0gbWluIFs4MDAwMDBdIGN1
ciBbODAwMDAwXQ0KdHVyYm8gbW9kZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDogZGlzYWJsZWQgb3Igbi9hDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0DQphZmZlY3RlZF9jcHVzICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOzogNA0KY3B1aW5mbyBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogbWF4IFsyNjAx
MDAwXSBtaW4gWzgwMDAwMF0gY3VyIFsyNjAxMDAwXQ0Kc2NhbGluZ19kcml2ZXIgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgOiBhY3BpLWNwdWZyZXENCnNjYWxpbmdfYXZhaWxfZ292ICZuYnNwOyAmbmJz
cDs6IGh3cC1pbnRlcm5hbCB1c2Vyc3BhY2UgcGVyZm9ybWFuY2UgcG93ZXJzYXZlIG9uZGVtYW5k
DQpjdXJyZW50X2dvdmVybm9yICZuYnNwOyAmbmJzcDsgOiBwb3dlcnNhdmUNCnNjYWxpbmdfYXZh
aWxfZnJlcSAmbmJzcDsgOiAyNjAxMDAwIDI2MDAwMDAgMjUwMDAwMCAyMzAwMDAwIDIyMDAwMDAg
MjEwMDAwMCAyMDAwMDAwIDE4MDAwMDAgMTcwMDAwMCAxNjAwMDAwIDE0MDAwMDAgMTMwMDAwMCAx
MjAwMDAwIDExMDAwMDAgOTAwMDAwICo4MDAwMDANCnNjYWxpbmcgZnJlcXVlbmN5ICZuYnNwOyAm
bmJzcDs6IG1heCBbODAwMDAwXSBtaW4gWzgwMDAwMF0gY3VyIFs4MDAwMDBdDQp0dXJibyBtb2Rl
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiBkaXNhYmxlZCBvciBuL2ENCg0K
Y3B1IGlkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6
IDUNCmFmZmVjdGVkX2NwdXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA1DQpjcHVpbmZv
IGZyZXF1ZW5jeSAmbmJzcDsgJm5ic3A7OiBtYXggWzI2MDEwMDBdIG1pbiBbODAwMDAwXSBjdXIg
WzI2MDEwMDBdDQpzY2FsaW5nX2RyaXZlciAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IGFjcGktY3B1
ZnJlcQ0Kc2NhbGluZ19hdmFpbF9nb3YgJm5ic3A7ICZuYnNwOzogaHdwLWludGVybmFsIHVzZXJz
cGFjZSBwZXJmb3JtYW5jZSBwb3dlcnNhdmUgb25kZW1hbmQNCmN1cnJlbnRfZ292ZXJub3IgJm5i
c3A7ICZuYnNwOyA6IHBvd2Vyc2F2ZQ0Kc2NhbGluZ19hdmFpbF9mcmVxICZuYnNwOyA6IDI2MDEw
MDAgMjYwMDAwMCAyNTAwMDAwIDIzMDAwMDAgMjIwMDAwMCAyMTAwMDAwIDIwMDAwMDAgMTgwMDAw
MCAxNzAwMDAwIDE2MDAwMDAgMTQwMDAwMCAxMzAwMDAwIDEyMDAwMDAgMTEwMDAwMCA5MDAwMDAg
KjgwMDAwMA0Kc2NhbGluZyBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogbWF4IFs4MDAwMDBdIG1p
biBbODAwMDAwXSBjdXIgWzgwMDAwMF0NCnR1cmJvIG1vZGUgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyA6IGRpc2FibGVkIG9yIG4vYQ0KDQpjcHUgaWQgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogNg0KYWZmZWN0ZWRfY3B1cyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDYNCmNwdWluZm8gZnJlcXVlbmN5ICZuYnNwOyAmbmJz
cDs6IG1heCBbMjYwMTAwMF0gbWluIFs4MDAwMDBdIGN1ciBbMjYwMTAwMF0NCnNjYWxpbmdfZHJp
dmVyICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogYWNwaS1jcHVmcmVxDQpzY2FsaW5nX2F2YWlsX2dv
diAmbmJzcDsgJm5ic3A7OiBod3AtaW50ZXJuYWwgdXNlcnNwYWNlIHBlcmZvcm1hbmNlIHBvd2Vy
c2F2ZSBvbmRlbWFuZA0KY3VycmVudF9nb3Zlcm5vciAmbmJzcDsgJm5ic3A7IDogcG93ZXJzYXZl
DQpzY2FsaW5nX2F2YWlsX2ZyZXEgJm5ic3A7IDogMjYwMTAwMCAyNjAwMDAwIDI1MDAwMDAgMjMw
MDAwMCAyMjAwMDAwIDIxMDAwMDAgMjAwMDAwMCAxODAwMDAwIDE3MDAwMDAgMTYwMDAwMCAxNDAw
MDAwIDEzMDAwMDAgMTIwMDAwMCAxMTAwMDAwIDkwMDAwMCAqODAwMDAwDQpzY2FsaW5nIGZyZXF1
ZW5jeSAmbmJzcDsgJm5ic3A7OiBtYXggWzgwMDAwMF0gbWluIFs4MDAwMDBdIGN1ciBbODAwMDAw
XQ0KdHVyYm8gbW9kZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogZGlzYWJs
ZWQgb3Igbi9hDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgOiA3DQphZmZlY3RlZF9jcHVzICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OzogNw0KY3B1aW5mbyBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogbWF4IFsyNjAxMDAwXSBtaW4g
WzgwMDAwMF0gY3VyIFsyNjAxMDAwXQ0Kc2NhbGluZ19kcml2ZXIgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgOiBhY3BpLWNwdWZyZXENCnNjYWxpbmdfYXZhaWxfZ292ICZuYnNwOyAmbmJzcDs6IGh3cC1p
bnRlcm5hbCB1c2Vyc3BhY2UgcGVyZm9ybWFuY2UgcG93ZXJzYXZlIG9uZGVtYW5kDQpjdXJyZW50
X2dvdmVybm9yICZuYnNwOyAmbmJzcDsgOiBwb3dlcnNhdmUNCnNjYWxpbmdfYXZhaWxfZnJlcSAm
bmJzcDsgOiAyNjAxMDAwIDI2MDAwMDAgMjUwMDAwMCAyMzAwMDAwIDIyMDAwMDAgMjEwMDAwMCAy
MDAwMDAwIDE4MDAwMDAgMTcwMDAwMCAxNjAwMDAwIDE0MDAwMDAgMTMwMDAwMCAxMjAwMDAwIDEx
MDAwMDAgOTAwMDAwICo4MDAwMDANCnNjYWxpbmcgZnJlcXVlbmN5ICZuYnNwOyAmbmJzcDs6IG1h
eCBbODAwMDAwXSBtaW4gWzgwMDAwMF0gY3VyIFs4MDAwMDBdDQp0dXJibyBtb2RlICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiBkaXNhYmxlZCBvciBuL2ENCg0KY3B1IGlkICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDgNCmFmZmVj
dGVkX2NwdXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA4DQpjcHVpbmZvIGZyZXF1ZW5j
eSAmbmJzcDsgJm5ic3A7OiBtYXggWzI2MDEwMDBdIG1pbiBbODAwMDAwXSBjdXIgWzkwMDAwMF0N
CnNjYWxpbmdfZHJpdmVyICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogYWNwaS1jcHVmcmVxDQpzY2Fs
aW5nX2F2YWlsX2dvdiAmbmJzcDsgJm5ic3A7OiBod3AtaW50ZXJuYWwgdXNlcnNwYWNlIHBlcmZv
cm1hbmNlIHBvd2Vyc2F2ZSBvbmRlbWFuZA0KY3VycmVudF9nb3Zlcm5vciAmbmJzcDsgJm5ic3A7
IDogcG93ZXJzYXZlDQpzY2FsaW5nX2F2YWlsX2ZyZXEgJm5ic3A7IDogMjYwMTAwMCAyNjAwMDAw
IDI1MDAwMDAgMjMwMDAwMCAyMjAwMDAwIDIxMDAwMDAgMjAwMDAwMCAxODAwMDAwIDE3MDAwMDAg
MTYwMDAwMCAxNDAwMDAwIDEzMDAwMDAgMTIwMDAwMCAxMTAwMDAwIDkwMDAwMCAqODAwMDAwDQpz
Y2FsaW5nIGZyZXF1ZW5jeSAmbmJzcDsgJm5ic3A7OiBtYXggWzgwMDAwMF0gbWluIFs4MDAwMDBd
IGN1ciBbODAwMDAwXQ0KdHVyYm8gbW9kZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IDogZGlzYWJsZWQgb3Igbi9hDQoNCmNwdSBpZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA5DQphZmZlY3RlZF9jcHVzICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzogOQ0KY3B1aW5mbyBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogbWF4IFsy
NjAxMDAwXSBtaW4gWzgwMDAwMF0gY3VyIFs5MDAwMDBdDQpzY2FsaW5nX2RyaXZlciAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyA6IGFjcGktY3B1ZnJlcQ0Kc2NhbGluZ19hdmFpbF9nb3YgJm5ic3A7ICZu
YnNwOzogaHdwLWludGVybmFsIHVzZXJzcGFjZSBwZXJmb3JtYW5jZSBwb3dlcnNhdmUgb25kZW1h
bmQNCmN1cnJlbnRfZ292ZXJub3IgJm5ic3A7ICZuYnNwOyA6IHBvd2Vyc2F2ZQ0Kc2NhbGluZ19h
dmFpbF9mcmVxICZuYnNwOyA6IDI2MDEwMDAgMjYwMDAwMCAyNTAwMDAwIDIzMDAwMDAgMjIwMDAw
MCAyMTAwMDAwIDIwMDAwMDAgMTgwMDAwMCAxNzAwMDAwIDE2MDAwMDAgMTQwMDAwMCAxMzAwMDAw
IDEyMDAwMDAgMTEwMDAwMCA5MDAwMDAgKjgwMDAwMA0Kc2NhbGluZyBmcmVxdWVuY3kgJm5ic3A7
ICZuYnNwOzogbWF4IFs4MDAwMDBdIG1pbiBbODAwMDAwXSBjdXIgWzgwMDAwMF0NCnR1cmJvIG1v
ZGUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IGRpc2FibGVkIG9yIG4vYQ0K
DQpjcHUgaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDogMTANCmFmZmVjdGVkX2NwdXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAxMA0KY3B1
aW5mbyBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogbWF4IFsyNjAxMDAwXSBtaW4gWzgwMDAwMF0g
Y3VyIFs5MDAwMDBdDQpzY2FsaW5nX2RyaXZlciAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IGFjcGkt
Y3B1ZnJlcQ0Kc2NhbGluZ19hdmFpbF9nb3YgJm5ic3A7ICZuYnNwOzogaHdwLWludGVybmFsIHVz
ZXJzcGFjZSBwZXJmb3JtYW5jZSBwb3dlcnNhdmUgb25kZW1hbmQNCmN1cnJlbnRfZ292ZXJub3Ig
Jm5ic3A7ICZuYnNwOyA6IHBvd2Vyc2F2ZQ0Kc2NhbGluZ19hdmFpbF9mcmVxICZuYnNwOyA6IDI2
MDEwMDAgMjYwMDAwMCAyNTAwMDAwIDIzMDAwMDAgMjIwMDAwMCAyMTAwMDAwIDIwMDAwMDAgMTgw
MDAwMCAxNzAwMDAwIDE2MDAwMDAgMTQwMDAwMCAxMzAwMDAwIDEyMDAwMDAgMTEwMDAwMCA5MDAw
MDAgKjgwMDAwMA0Kc2NhbGluZyBmcmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogbWF4IFs4MDAwMDBd
IG1pbiBbODAwMDAwXSBjdXIgWzgwMDAwMF0NCnR1cmJvIG1vZGUgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyA6IGRpc2FibGVkIG9yIG4vYQ0KDQpjcHUgaWQgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTENCmFmZmVjdGVkX2NwdXMg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAxMQ0KY3B1aW5mbyBmcmVxdWVuY3kgJm5ic3A7
ICZuYnNwOzogbWF4IFsyNjAxMDAwXSBtaW4gWzgwMDAwMF0gY3VyIFs5MDAwMDBdDQpzY2FsaW5n
X2RyaXZlciAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IGFjcGktY3B1ZnJlcQ0Kc2NhbGluZ19hdmFp
bF9nb3YgJm5ic3A7ICZuYnNwOzogaHdwLWludGVybmFsIHVzZXJzcGFjZSBwZXJmb3JtYW5jZSBw
b3dlcnNhdmUgb25kZW1hbmQNCmN1cnJlbnRfZ292ZXJub3IgJm5ic3A7ICZuYnNwOyA6IHBvd2Vy
c2F2ZQ0Kc2NhbGluZ19hdmFpbF9mcmVxICZuYnNwOyA6IDI2MDEwMDAgMjYwMDAwMCAyNTAwMDAw
IDIzMDAwMDAgMjIwMDAwMCAyMTAwMDAwIDIwMDAwMDAgMTgwMDAwMCAxNzAwMDAwIDE2MDAwMDAg
MTQwMDAwMCAxMzAwMDAwIDEyMDAwMDAgMTEwMDAwMCA5MDAwMDAgKjgwMDAwMA0Kc2NhbGluZyBm
cmVxdWVuY3kgJm5ic3A7ICZuYnNwOzogbWF4IFs4MDAwMDBdIG1pbiBbODAwMDAwXSBjdXIgWzgw
MDAwMF0NCnR1cmJvIG1vZGUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IGRp
c2FibGVkIG9yIG4vYQ0KDQoNCiRzdWRvIHhlbnBtIGdldC1jcHVmcmVxLWF2ZXJhZ2UNCmNwdSBp
ZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAwDQph
dmVyYWdlIGNwdSBmcmVxdWVuY3k6IDEwOTI0MjANCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDENCmF2ZXJhZ2UgY3B1IGZyZXF1ZW5j
eTogMTA5MjQyMA0KDQpjcHUgaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDogMg0KYXZlcmFnZSBjcHUgZnJlcXVlbmN5OiAxMDY2NDEwDQoNCmNwdSBp
ZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAzDQph
dmVyYWdlIGNwdSBmcmVxdWVuY3k6IDExMTg0MzANCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDQNCmF2ZXJhZ2UgY3B1IGZyZXF1ZW5j
eTogMTA5MjQyMA0KDQpjcHUgaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDogNQ0KYXZlcmFnZSBjcHUgZnJlcXVlbmN5OiAxMTE4NDMwDQoNCmNwdSBp
ZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA2DQph
dmVyYWdlIGNwdSBmcmVxdWVuY3k6IDEwOTI0MjANCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDcNCmF2ZXJhZ2UgY3B1IGZyZXF1ZW5j
eTogMTA5MjQyMA0KDQpjcHUgaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IDogOA0KYXZlcmFnZSBjcHUgZnJlcXVlbmN5OiAxMDkyNDIwDQoNCmNwdSBp
ZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA5DQph
dmVyYWdlIGNwdSBmcmVxdWVuY3k6IDEwOTI0MjANCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDEwDQphdmVyYWdlIGNwdSBmcmVxdWVu
Y3k6IDEwOTI0MjANCg0KY3B1IGlkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyA6IDExDQphdmVyYWdlIGNwdSBmcmVxdWVuY3k6IDExMTg0MzANCjwvcHJl
PjxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrIiBzdHlsZT0iZm9udC1mYW1p
bHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij48ZGl2IGNsYXNzPSJwcm90
b25tYWlsX3NpZ25hdHVyZV9ibG9jay1wcm90b24iPjwvZGl2Pg0KPC9kaXY+DQo=


--b1_MUOp8g8ulGl19JFInYhMrDutwyqDoaWmDWlfVb9stE--



From xen-devel-bounces@lists.xenproject.org Thu Dec 28 11:56:14 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Dec 2023 11:56:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660206.1029747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIozg-0004Ww-Me; Thu, 28 Dec 2023 11:56:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660206.1029747; Thu, 28 Dec 2023 11: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 1rIozg-0004Wp-K4; Thu, 28 Dec 2023 11:56:08 +0000
Received: by outflank-mailman (input) for mailman id 660206;
 Thu, 28 Dec 2023 11:56: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 1rIozf-0004Wf-DQ; Thu, 28 Dec 2023 11:56: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 1rIozf-0007Cf-38; Thu, 28 Dec 2023 11:56: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 1rIoze-0004gh-IJ; Thu, 28 Dec 2023 11:56:06 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rIoze-0006kU-Hl; Thu, 28 Dec 2023 11:56: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=C42pcrd6nIKqVHHwhk6hK9orKDfnYlVV3Ok5LDmKCl4=; b=nLigoP0pTA5y9FBarISZZLSSz7
	t/nyeAwdaFt2o3nBPlqUKhj+jU0D3xjN4/SSGMG7wR7qzXyPIyMPHuBVy9EHsbODFbwP98FxLtj2y
	B9YxivFD/VDhaYI1UQBaXjY2M6yBvlp1okFFn9ePHUR40/YuUSvUVeFK+BEyRq8w/N0s=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184231-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184231: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-examine-uefi:host-install:broken:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install: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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm: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: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-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-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-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-libvirt:migrate-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-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-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-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
From: osstest service owner <osstest-admin@xenproject.org>
Date: Thu, 28 Dec 2023 11:56:06 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-examine-uefi  5 host-install            broken pass in 184229

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop  fail in 184229 like 184225
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install       fail like 184209
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184229
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184229
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184229
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184229
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184229
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184229
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184229
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184229
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184229
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184229
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184229
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-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-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-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-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-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-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-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-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-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686

Last test of basis   184231  2023-12-28 01:52:17 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                fail    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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-amd64-amd64-examine-uefi host-install

Published tested tree is already up to date.



From xen-devel-bounces@lists.xenproject.org Thu Dec 28 14:43:40 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Dec 2023 14:43:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660214.1029757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIrba-0006Ni-E0; Thu, 28 Dec 2023 14:43:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660214.1029757; Thu, 28 Dec 2023 14:43: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 1rIrba-0006Nb-B6; Thu, 28 Dec 2023 14:43:26 +0000
Received: by outflank-mailman (input) for mailman id 660214;
 Thu, 28 Dec 2023 14:43: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=PVOG=IH=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1rIrbY-0006NR-Fu
 for xen-devel@lists.xenproject.org; Thu, 28 Dec 2023 14:43:24 +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 72dd86a7-a58f-11ee-98ed-6d05b1d4d9a1;
 Thu, 28 Dec 2023 15:43:22 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-54cb4fa667bso7369215a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Dec 2023 06:43:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 72dd86a7-a58f-11ee-98ed-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1703774602; x=1704379402; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:in-reply-to:references:mime-version
         :from:to:cc:subject:date:message-id:reply-to;
        bh=K1+1BuuvnzvRtOPsSEVoAcLiaaF/Dsymm9T4vreZH10=;
        b=BF915vWHEk+jRAVECURqiScMApaFeQcL66OfCk1QBAxL6lkOIqJ4zInqvjeji98yZm
         poSa+mAQRt7snvXV+PUH0ecTym27pQ0xrojrAG1nZakB6DpvjzvFZK64Yjdlto4CtCl6
         C7pL428Az8iAgNiUu16RKhIWXROQtR8sCvJwA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703774602; x=1704379402;
        h=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=K1+1BuuvnzvRtOPsSEVoAcLiaaF/Dsymm9T4vreZH10=;
        b=IjB7MQHjiVz3+VxnoHyzOtaqQ0zsN4dBTvdbL3RAPHcTH6T2mMhp8VafS9aHPEZkdO
         fo9dGvpQ0YUudTRoBud5yIMfS3U/hotvqWD8rgwduA6yYqZ+Y1zXNjxURgAHLsLlpxW2
         xKS1sF8oe8jZagyDp1WAtl8ckHmoogEACijZdepV2IxfogOBsEXSE4cpXFibR9DLWgbX
         3Ju+2sJjRSH+/Gy4CA0EuBbHKoTy/FG4bBiOOo1Dy+o2w7mqRWdaNyoS1RGPqvwKq3zA
         gXFc/emtgITG+arXeeDuqFSvetPiSCjtZaHHjZstkK8l90mQAvE/O8tsVH8dQ/85J07b
         YTAg==
X-Gm-Message-State: AOJu0YzpO9HQpPWFG/bGaDeNaJa4Br5EQ5eZBfaHbxac33DZY/nghYst
	bpTeu1x+lEeChe9d6V1C3vmtztmoUE/lWn+zAPNafbqCTkx2ijNdSnKD5zlsx8aGfA==
X-Google-Smtp-Source: AGHT+IFf32F1pi5DGPPfNI9NytEtrF8Pm/Eiyghbwwak+952OOljHtxZNrbonx87O3g3swU96POdfPnJtt3gCuYqvtg=
X-Received: by 2002:a50:cd88:0:b0:553:5b1d:956e with SMTP id
 p8-20020a50cd88000000b005535b1d956emr5714777edi.82.1703774601528; Thu, 28 Dec
 2023 06:43:21 -0800 (PST)
MIME-Version: 1.0
References: <185b7c2d-cc67-4bb1-8f43-31f8d9258af7@gmail.com>
 <CAO-mL=yV7dfUOP8qLX=ffO4bH8es4+oZHxw21G6Dqvp-pb7Y_w@mail.gmail.com> <d08f45d6-91a0-438d-9450-00dc85d123fa@gmail.com>
In-Reply-To: <d08f45d6-91a0-438d-9450-00dc85d123fa@gmail.com>
From: Kelly Choi <kelly.choi@cloud.com>
Date: Thu, 28 Dec 2023 14:42:45 +0000
Message-ID: <CAO-mL=z8tZUARqAR7ePYHx0KDm4hwEfwjjE9-tLVJm6Br7uaXA@mail.gmail.com>
Subject: Re: Wiki Access
To: jlpoole56@gmail.com, xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000e6e49c060d92ef6e"

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

Hey John,

We have a glossary here that helps direct you to the relevant pages:
https://wiki.xenproject.org/wiki/Category:Glossary

However, for a glossary of terms it depends what you are searching for. I
don't believe we have a full page of terms on the old wiki but instead
pages split out by categories.
I'd suggest posting in the @xen-devel@lists.xenproject.org
<xen-devel@lists.xenproject.org> mailing list as a suggestion and see if
any of the other developers have the same idea. I'm sure it wouldn't be
difficult to set up, and you may even receive help from other members.

For the full pages, you can refer here:
https://wiki.xenproject.org/wiki/Special:AllPages

Many thanks,
Kelly Choi

Community Manager
Xen Project


On Wed, Dec 27, 2023 at 10:58=E2=80=AFPM John L. Poole <jlpoole56@gmail.com=
> wrote:

> Thank you, Kelly.  I successfully edited a talk page concerning the
> definition of *VT-d*:  https://wiki.xenproject.org/wiki/Talk:VTd_HowTo
>
> I searched and did not readily find a glossary of terms within the Xen
> wiki.  I'm finding I keep encountering acronyms and terms of art which tr=
ip
> me up in fully digesting what is being said.  Is there a page where terms
> are defined?  I would go a long way to have terms linked to their
> definitions.  If not, what would be the best way to propose that the wiki
> have such a page?
>
> Best,
>
> John
> On 12/27/2023 1:53 PM, Kelly Choi wrote:
>
> Hi John,
>
> Thank you for your dedicated commitment to The Xen Project. We're gratefu=
l
> to individuals such as yourself who make the project successful.
>
> I've found your username under "jlpoole" and amended the access rights.
> You should be able to edit the pages now. We rely on community members to
> help us keep our documentation updated, so thank you for offering to help=
!
>
> We're going to be updating our documentation as part of a wider strategy
> but the Wiki will still be here until we do so. If you're interested we'd
> love to involve you during these steps too.
>
> Most of our developers chat on Matrix and send patches through our mailin=
g
> list. Please join us below and be sure to introduce yourself:
>
>
> =F0=9F=92=A1 XenProject: https://matrix.to/#/#XenProject:matrix.org
>
>
> =F0=9F=92=A1 XenDevel: https://matrix.to/#/#XenDevel:matrix.org
>
>
> =F0=9F=92=A1 XenSocial: https://matrix.to/#/#XenSocial:matrix.org
>
> Many thanks,
> Kelly Choi
>
> Community Manager
> Xen Project
>
>
> On Wed, Dec 27, 2023 at 5:08=E2=80=AFPM John L. Poole <jlpoole56@gmail.co=
m> wrote:
>
>> Dear Community Manager(s),
>>
>> my wiki username: jlpoole
>>
>> I think I've been using Xen for over a decade and possibly have had an
>> account on this wiki from the commencement of my voyage into Xen.
>>
>> You mustn't let the wiki be in a deep freeze.  I have colleagues
>> insisting I switch to KVM, but I resist and want to make Xen work,
>> especially after an incident several years ago where your top developers
>> where helping with a problem I faced (and, regrettably, it turned out to=
 be
>> a problem caused by Microsoft's wireless keyboard interfering somehow wi=
th
>> the boot process).
>>
>> For example, I am now building 2 new servers on Ryzen 7950+ processors
>> and am installing Xen on them.  I'm trying to learn and use the
>> pci-passthrough and I found a term "<guest virtual slot number>" at
>> https://wiki.xenproject.org/wiki/Xen_PCI_Passthrough#Verifying_that_the_=
device_is_ready_to_be_passed_through
>> .
>>
>> Hotplug
>>
>> Commands to hot-plug and unplug a device into a running VM are below:
>>
>> xl pci-attach <domain-id> <pci device> <guest virtual slot number>
>> xl pci-detach <domain-id> <pci device> <guest virtual slot number>
>>
>> (Replace xl with xm if you're using xend.)
>>
>> Google is unable to match "<guest virtual slot number>" with other
>> documentation, so it looks like the term was coined on this wiki page wi=
th
>> no further explanation.  I know what a <domain-id> is and it is defined
>> in other documentation.  That should be discussed and clarified.  Here's
>> what brought this term in focus: my attempt to follow the instruction le=
ft
>> me punting as to what the value is for the parameter "<guest virtual
>> slot number>" -- tried "0, but no success:
>>
>> ryzwork /home/jlpoole # date; xl pci-assignable-list
>> Wed Dec 27 08:04:12 AM PST 2023
>> ryzwork /home/jlpoole # xl pci-assignable-add 15:00.0
>> ryzwork /home/jlpoole # date; xl pci-assignable-list
>> Wed Dec 27 08:06:22 AM PST 2023
>> 0000:15:00.0
>> ryzwork /home/jlpoole # date
>> Wed Dec 27 08:10:51 AM PST 2023
>> ryzwork /home/jlpoole # xl list
>> Name                                        ID   Mem VCPUs      State
>> Time(s)
>> Domain-0                                     0  1024    32
>> r-----      30.5
>> ryzwork /home/jlpoole #  xl pci-attach 0 0000:15:00.0
>> libxl: error: libxl_pci.c:1536:libxl__device_pci_reset: write to
>> /sys/bus/pci/devices/0000:15:00.0/reset returned -1: Inappropriate ioctl
>> for device
>> libxl: error: libxl_pci.c:1498:pci_add_dm_done: xc_assign_device failed:
>> Invalid argument
>> libxl: error: libxl_pci.c:1777:device_pci_add_done: libxl__device_pci_ad=
d
>> failed for PCI device 0:15:0.0 (rc -3)
>> libxl: error: libxl_device.c:1414:device_addrm_aocomplete: unable to add
>> device
>> ryzwork /home/jlpoole # xl pci-attach 0 0000:15:00.0 0
>> libxl: error: libxl_pci.c:1536:libxl__device_pci_reset: write to
>> /sys/bus/pci/devices/0000:15:00.0/reset returned -1: Inappropriate ioctl
>> for device
>> libxl: error: libxl_pci.c:1498:pci_add_dm_done: xc_assign_device failed:
>> Invalid argument
>> libxl: error: libxl_pci.c:1777:device_pci_add_done: libxl__device_pci_ad=
d
>> failed for PCI device 0:15:0.0 (rc -3)
>> libxl: error: libxl_device.c:1414:device_addrm_aocomplete: unable to add
>> device
>> ryzwork /home/jlpoole #  date; xl pci-assignable-list
>> Wed Dec 27 08:13:46 AM PST 2023
>> 0000:15:00.0
>> ryzwork /home/jlpoole #
>>
>>
>> I was a software engineer at Oracle for 24 years, I retired January
>> 2023.
>> Please allow me to edit the wiki.
>>
>> Kind regards,
>> John
>> --
>>
>> John Laurence Poole
>> 1566 Court ST NE
>> Salem OR 97301-4241
>>
>> --
>
> John Laurence Poole
> 1566 Court ST NE
> Salem OR 97301-4241
>
>

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

<div dir=3D"ltr">Hey John,=C2=A0<div><br></div><div>We have a glossary here=
 that helps direct you to the relevant pages:=C2=A0<a href=3D"https://wiki.=
xenproject.org/wiki/Category:Glossary">https://wiki.xenproject.org/wiki/Cat=
egory:Glossary</a>=C2=A0</div><div><br></div><div>However, for a glossary o=
f terms it depends what you are searching for. I don&#39;t believe we have =
a full page of terms on the old wiki but instead pages split out by categor=
ies.=C2=A0</div><div>I&#39;d suggest posting in the=C2=A0<a class=3D"gmail_=
plusreply" id=3D"plusReplyChip-0" href=3D"mailto:xen-devel@lists.xenproject=
.org" tabindex=3D"-1">@xen-devel@lists.xenproject.org</a>=C2=A0mailing list=
 as a suggestion and see if any of the other developers have the same idea.=
 I&#39;m sure it wouldn&#39;t be difficult to set up, and you may even rece=
ive help from other members.=C2=A0</div><div><br></div><div>For the full pa=
ges, you can refer here:=C2=A0<a href=3D"https://wiki.xenproject.org/wiki/S=
pecial:AllPages">https://wiki.xenproject.org/wiki/Special:AllPages</a>=C2=
=A0</div><div><br clear=3D"all"><div><div dir=3D"ltr" class=3D"gmail_signat=
ure" 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,1=
36,136)">Community Manager</div><div style=3D"color:rgb(136,136,136)">Xen P=
roject=C2=A0<br></div></div></div></div></div><br></div></div><br><div clas=
s=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Dec 27, 202=
3 at 10:58=E2=80=AFPM John L. Poole &lt;<a href=3D"mailto:jlpoole56@gmail.c=
om">jlpoole56@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);padding-left:1ex"><u></u>

 =20
   =20
 =20
  <div>
    <p>Thank you, Kelly.=C2=A0 I successfully edited a talk page concerning
      the definition of <b>VT-d</b>:=C2=A0
      <a href=3D"https://wiki.xenproject.org/wiki/Talk:VTd_HowTo" target=3D=
"_blank">https://wiki.xenproject.org/wiki/Talk:VTd_HowTo</a><br>
    </p>
    <p>I searched and did not readily find a glossary of terms within
      the Xen wiki.=C2=A0 I&#39;m finding I keep encountering acronyms and =
terms
      of art which trip me up in fully digesting what is being said.=C2=A0 =
Is
      there a page where terms are defined?=C2=A0 I would go a long way to
      have terms linked to their definitions.=C2=A0 If not, what would be t=
he
      best way to propose that the wiki have such a page?</p>
    <p>Best,</p>
    <p>John<br>
    </p>
    <div>On 12/27/2023 1:53 PM, Kelly Choi
      wrote:<br>
    </div>
    <blockquote type=3D"cite">
     =20
      <div dir=3D"ltr">Hi John,
        <div><br>
        </div>
        <div>Thank you for your dedicated commitment=C2=A0to The Xen Projec=
t.
          We&#39;re grateful to individuals such as yourself who make the
          project successful.=C2=A0</div>
        <div><br>
        </div>
        <div>I&#39;ve found your username under &quot;jlpoole&quot; and ame=
nded the
          access rights. You should be able to edit the pages now. We
          rely on community members to help us keep our documentation
          updated, so thank you for offering to help!=C2=A0</div>
        <div><br>
        </div>
        <div>We&#39;re going to be updating our documentation as part of a
          wider strategy but the Wiki will still be here until we do so.
          If you&#39;re interested we&#39;d love to involve you during thes=
e
          steps too.=C2=A0</div>
        <div><br>
        </div>
        <div>Most of our developers chat on Matrix and send patches
          through our mailing list. Please join us below and be sure to
          introduce yourself:</div>
        <div>
          <p style=3D"margin:0px;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feat=
ure-settings:normal;font-stretch:normal;font-size:13px;line-height:normal;f=
ont-family:&quot;Helvetica Neue&quot;;min-height:15px"><br>
          </p>
          <p style=3D"margin:0px;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feat=
ure-settings:normal;font-stretch:normal;font-size:13px;line-height:normal;f=
ont-family:&quot;Helvetica Neue&quot;">=F0=9F=92=A1
            XenProject: <a href=3D"https://matrix.to/#/%23XenProject:matrix=
.org" target=3D"_blank">https://matrix.to/#/#XenProject:matrix.org</a></p>
          <p style=3D"margin:0px;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feat=
ure-settings:normal;font-stretch:normal;font-size:13px;line-height:normal;f=
ont-family:&quot;Helvetica Neue&quot;;min-height:15px"><br>
          </p>
          <p style=3D"margin:0px;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feat=
ure-settings:normal;font-stretch:normal;font-size:13px;line-height:normal;f=
ont-family:&quot;Helvetica Neue&quot;">=F0=9F=92=A1
            XenDevel: <a href=3D"https://matrix.to/#/%23XenDevel:matrix.org=
" target=3D"_blank">https://matrix.to/#/#XenDevel:matrix.org</a></p>
          <p style=3D"margin:0px;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feat=
ure-settings:normal;font-stretch:normal;font-size:13px;line-height:normal;f=
ont-family:&quot;Helvetica Neue&quot;;min-height:15px"><br>
          </p>
          <p style=3D"margin:0px;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feat=
ure-settings:normal;font-stretch:normal;font-size:13px;line-height:normal;f=
ont-family:&quot;Helvetica Neue&quot;"><span style=3D"font-variant-numeric:=
normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-k=
erning:auto;font-feature-settings:normal;font-stretch:normal;line-height:no=
rmal;font-family:&quot;.Apple Color Emoji UI&quot;">=F0=9F=92=A1</span>
            XenSocial: <a href=3D"https://matrix.to/#/%23XenSocial:matrix.o=
rg" target=3D"_blank">https://matrix.to/#/#XenSocial:matrix.org</a></p>
        </div>
        <div><br>
        </div>
        <div>
          <div>
            <div dir=3D"ltr" class=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<b=
r>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <br>
        </div>
      </div>
      <br>
      <div class=3D"gmail_quote">
        <div dir=3D"ltr" class=3D"gmail_attr">On Wed, Dec 27, 2023 at
          5:08=E2=80=AFPM John L. Poole &lt;<a href=3D"mailto:jlpoole56@gma=
il.com" target=3D"_blank">jlpoole56@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);padding-left:1ex">
          <div>
            <p>Dear Community Manager(s),<br>
            </p>
            <p>my wiki username: jlpoole</p>
            <p>I think I&#39;ve been using Xen for over a decade and
              possibly have had an account on this wiki from the
              commencement of my voyage into Xen.</p>
            <p>You mustn&#39;t let the wiki be in a deep freeze.=C2=A0 I ha=
ve
              colleagues insisting I switch to KVM, but I resist and
              want to make Xen work, especially after an incident
              several years ago where your top developers where helping
              with a problem I faced (and, regrettably, it turned out to
              be a problem caused by Microsoft&#39;s wireless keyboard
              interfering somehow with the boot process).</p>
            <p>For example, I am now building 2 new servers on Ryzen
              7950+ processors and am installing Xen on them.=C2=A0 I&#39;m
              trying to learn and use the pci-passthrough and I found a
              term &quot;<font face=3D"monospace">&lt;guest virtual slot
                number&gt;&quot;</font> at
              <a href=3D"https://wiki.xenproject.org/wiki/Xen_PCI_Passthrou=
gh#Verifying_that_the_device_is_ready_to_be_passed_through" target=3D"_blan=
k">https://wiki.xenproject.org/wiki/Xen_PCI_Passthrough#Verifying_that_the_=
device_is_ready_to_be_passed_through</a>.=C2=A0=C2=A0=C2=A0</p>
            <blockquote>
              <h3><span id=3D"m_-5792330574768745284m_1687509458263743493Ho=
tplug">Hotplug</span></h3>
              <p>Commands to hot-plug and unplug a device into a running
                VM are below: </p>
              <pre>xl pci-attach &lt;domain-id&gt; &lt;pci device&gt; &lt;g=
uest virtual slot number&gt;
xl pci-detach &lt;domain-id&gt; &lt;pci device&gt; &lt;guest virtual slot n=
umber&gt;
</pre>
              <p>(Replace <code>xl</code> with <code>xm</code> if
                you&#39;re using <code>xend</code>.) </p>
            </blockquote>
            <p>Google is unable to match &quot;<font face=3D"monospace">&lt=
;guest
                virtual slot number&gt;</font>&quot; with other
              documentation, so it looks like the term was coined on
              this wiki page with no further explanation.=C2=A0 I know what=
 a
              <font face=3D"monospace">&lt;domain-id&gt; </font>is and it
              is defined in other documentation.=C2=A0 That should be
              discussed and clarified.=C2=A0 Here&#39;s what brought this t=
erm in
              focus: my attempt to follow the instruction left me
              punting as to what the value is for the parameter &quot;<font=
 face=3D"monospace">&lt;guest virtual slot number&gt;</font>&quot;
              -- tried &quot;0, but no success:</p>
            <blockquote>
              <p><font face=3D"monospace">ryzwork /home/jlpoole # date; xl
                  pci-assignable-list<br>
                  Wed Dec 27 08:04:12 AM PST 2023<br>
                  ryzwork /home/jlpoole # xl pci-assignable-add 15:00.0<br>
                  ryzwork /home/jlpoole # date; xl pci-assignable-list<br>
                  Wed Dec 27 08:06:22 AM PST 2023<br>
                  0000:15:00.0<br>
                  ryzwork /home/jlpoole # date<br>
                  Wed Dec 27 08:10:51 AM PST 2023<br>
                  ryzwork /home/jlpoole # xl list<br>
                  Name=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ID=C2=A0=C2=A0 Mem
                  VCPUs=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 State=C2=A0=C2=A0 Tim=
e(s)<br>
                  Domain-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=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 0=C2=A0
                  1024=C2=A0=C2=A0=C2=A0 32=C2=A0=C2=A0=C2=A0=C2=A0 r-----=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 30.5<br>
                  ryzwork /home/jlpoole #=C2=A0 xl pci-attach 0 0000:15:00.=
0<br>
                  libxl: error:
                  libxl_pci.c:1536:libxl__device_pci_reset: write to
                  /sys/bus/pci/devices/0000:15:00.0/reset returned -1:
                  Inappropriate ioctl for device<br>
                  libxl: error: libxl_pci.c:1498:pci_add_dm_done:
                  xc_assign_device failed: Invalid argument<br>
                  libxl: error: libxl_pci.c:1777:device_pci_add_done:
                  libxl__device_pci_add failed for PCI device 0:15:0.0
                  (rc -3)<br>
                  libxl: error:
                  libxl_device.c:1414:device_addrm_aocomplete: unable to
                  add device<br>
                  ryzwork /home/jlpoole # xl pci-attach 0 0000:15:00.0 0<br=
>
                  libxl: error:
                  libxl_pci.c:1536:libxl__device_pci_reset: write to
                  /sys/bus/pci/devices/0000:15:00.0/reset returned -1:
                  Inappropriate ioctl for device<br>
                  libxl: error: libxl_pci.c:1498:pci_add_dm_done:
                  xc_assign_device failed: Invalid argument<br>
                  libxl: error: libxl_pci.c:1777:device_pci_add_done:
                  libxl__device_pci_add failed for PCI device 0:15:0.0
                  (rc -3)<br>
                  libxl: error:
                  libxl_device.c:1414:device_addrm_aocomplete: unable to
                  add device<br>
                  ryzwork /home/jlpoole #=C2=A0 date; xl pci-assignable-lis=
t<br>
                  Wed Dec 27 08:13:46 AM PST 2023<br>
                  0000:15:00.0<br>
                  ryzwork /home/jlpoole #<br>
                  =C2=A0</font><br>
              </p>
            </blockquote>
            <p>I was a software engineer at Oracle for 24 years, I
              retired January 2023.=C2=A0 <br>
            </p>
            <div>Please allow me to edit the wiki.</div>
            <div><br>
            </div>
            <div>Kind regards,</div>
            <div>John<br>
            </div>
            <div>-- <br>
              <p><font size=3D"2" face=3D"Verdana">John Laurence Poole<br>
                  1566 Court ST NE<br>
                  Salem OR 97301-4241<br>
                  <br>
                </font></p>
            </div>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <div>-- <br>
     =20
      <p><font size=3D"2" face=3D"Verdana">John Laurence Poole<br>
          1566 Court ST NE<br>
          Salem OR 97301-4241<br>
          <br>
        </font></p>
    </div>
  </div>

</blockquote></div>

--000000000000e6e49c060d92ef6e--


From xen-devel-bounces@lists.xenproject.org Thu Dec 28 16:26:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Dec 2023 16:26:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660218.1029768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rItD3-00017t-EE; Thu, 28 Dec 2023 16:26:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660218.1029768; Thu, 28 Dec 2023 16: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 1rItD3-00017m-Av; Thu, 28 Dec 2023 16:26:13 +0000
Received: by outflank-mailman (input) for mailman id 660218;
 Thu, 28 Dec 2023 16:26: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=jTGa=IH=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rItD1-00017g-Ta
 for xen-devel@lists.xenproject.org; Thu, 28 Dec 2023 16:26:12 +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 cdb14d78-a59d-11ee-9b0f-b553b5be7939;
 Thu, 28 Dec 2023 17:26:07 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-552d39ac3ccso12550785a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Dec 2023 08:26:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cdb14d78-a59d-11ee-9b0f-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703780767; x=1704385567; 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=ICPnFp8wXjc1Lixg9nlLaHLRitrp039JWrs0VeIvy5U=;
        b=hCYO++ZFaRB91ySuHd2IUakDtl8CtJjd/Ymg1HtqB5jdu7hN77WJWgSHWNgTd+H5B4
         3qPSy4GfuMS7mErUsVHbLVJ65Oew3A5VCQHDgDQnPoIPcyF5eoI1uroWkwPBZzb9FZVv
         YpPgA2horDcQEe3z2J10TpJHzSyaX06m+mpwY/Lhzbf9iYEDJqoVVREhwCkObR11Rmt6
         xhADEIZJwZulEDYj+q5KyJdbJ8cMN2wCTA1qIAhxKyttvHcQKOlb5yVVE8LCpxijrUlK
         Kqab5eJQXIMjQ/L6Flz5VDKU2TA8LVyWtOOjonmPvyIbDR6dH5kLvl1ctaiBcpy/Ez8C
         JDXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703780767; x=1704385567;
        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=ICPnFp8wXjc1Lixg9nlLaHLRitrp039JWrs0VeIvy5U=;
        b=CVAR0IuVG/Di+Z1f70E+gCIXCHCpBh5kwsYHDMPPT8pdMJwGQ3sU5oU7T5KOPrQreA
         obvGKdyp74tTCQ7ueIlqaNvBr+glb/UX0r7wJelt4uqIhDjBA3LvmZ+7uFOzvQEeE1Su
         vcYSHJVsfvplTzYgpXeoUexULSR8SKkPP/g1msN/MB636cNkBAxlWWnfhNc7IZPQesEZ
         MO6i9i1UjsBqZr8AXG4Qb5+4f9XbeDdEq6aTwAR/H00Lg5XeB4UkwRYA7AVdPArPdocN
         LAJrw1xPo1ZCEs4NkTGDAPTpMinwh9a7U8aBRQbQKHPFsuy1ilmSGmBRKeR8XkYJzerD
         rGYQ==
X-Gm-Message-State: AOJu0Yzh7BoHXGxBL1hvqLoeXf5vO/Bp898jwHySLQ77mmV59XngAp7g
	e5pj8PAO+7DAl9038GSpSRusN2bqgVbJjkiaNn4=
X-Google-Smtp-Source: AGHT+IGA8yR0RGbKo/HX3+45DGyTMLJbIC6E4yS56LEd7fRLBZtqeSlDmMFPEhPN5fSH7OnGkXLSNIl2l3jSx9sxAiY=
X-Received: by 2002:a17:907:1a51:b0:a23:3753:4d3 with SMTP id
 mf17-20020a1709071a5100b00a23375304d3mr8071300ejc.14.1703780766359; Thu, 28
 Dec 2023 08:26:06 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us> <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us> <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
 <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
 <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com>
 <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com> <CA+1FSigREr=aSHOBMbEK9CaoKzNnKC-6sE=Ui8ovVwnMaZgZhQ@mail.gmail.com>
In-Reply-To: <CA+1FSigREr=aSHOBMbEK9CaoKzNnKC-6sE=Ui8ovVwnMaZgZhQ@mail.gmail.com>
From: Mario Marietto <marietto2008@gmail.com>
Date: Thu, 28 Dec 2023 17:25:30 +0100
Message-ID: <CA+1FSigVW+kS37ZuGeBsr58BfPS10fjptfOnvTbaUOZ7VrUBgg@mail.gmail.com>
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM Chromebook
To: Warner Losh <imp@bsdimp.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, 
	Stanislav Silnicki <stanislav.silnicki@mailgate.us>, freebsd-arm@freebsd.org, 
	Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hello.

I'm trying to compile u-boot-2017.05 (because it can boot a 32-bit ARM
board. It is an out-of-tree u-boot build that can execute the ubldr to
boot FreeBSD. I found it here :

https://src.fedoraproject.org/repo/pkgs/uboot-tools/u-boot-2017.05.tar.bz2/=
sha512/be270f9242a72b05463092a022bbabd54996762de1ff23bf7575124ac02e62f49572=
a4e2f6f571a5019047d40027e56e35593b5cc373c4a5a39b100c3377ba93/

It has been suggested to me by the U-Boot Xen maintainers. Infact one
of them said :


Yes, it can boot a 32-bit ARM board. I'm not a FreeBSD person, but
I've helped a FreeBSD user booting a 32-bit ARM box with u-boot
(GoFlexHome Marvell Kirkwood 6281). The u-boot version was 2017.05.
I used an out-of-tree u-boot build. This u-boot executed the ubldr to
boot FreeBSD. Please see here :
https://forum.doozan.com/read.php?3,49039,82059#msg-82059


So. I tried to compile it directly on my ARM Chromebook,but it failed.
And it also fails if compiled with "ARCH=3Darm
CROSS_COMPILE=3Darm-linux-gnueabihf-" on my Ubuntu 23.04 x86_64
workstation :


/Chromebook/freebsd-xen/domU-freebsd/bootloaders/u-boot-2017.05# make
snow_defconfig

 HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#


/Chromebook/freebsd-xen/domU-freebsd/bootloaders/u-boot-2017.05# make

scripts/kconfig/conf  --silentoldconfig Kconfig
  CHK     include/config.h
  CFG     u-boot.cfg
  GEN     include/autoconf.mk
  GEN     include/autoconf.mk.dep
  CFG     spl/u-boot.cfg
  GEN     spl/include/autoconf.mk
  CHK     include/config/uboot.release
  CHK     include/generated/version_autogenerated.h
  UPD     include/generated/version_autogenerated.h
  CHK     include/generated/timestamp_autogenerated.h
  UPD     include/generated/timestamp_autogenerated.h
  CC      lib/asm-offsets.s
gcc: error: unrecognized -march target: armv5
gcc: note: valid arguments are: armv4 armv4t armv5t armv5te armv5tej
armv6 armv6j armv6k armv6z armv6kz armv6zk armv6t2 armv6-m armv6s-m
armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a armv8.1-a
armv8.2-a armv8.3-a armv8.4-a
armv8.5-a armv8.6-a armv8-m.base armv8-m.main armv8-r armv8.1-m.main
armv9-a iwmmxt iwmmxt2 native; did you mean =E2=80=98armv4=E2=80=99?
gcc: error: missing argument to =E2=80=98-march=3D=E2=80=99
make[1]: *** [Kbuild:44: lib/asm-offsets.s] Errore 1
make: *** [Makefile:1287: prepare0] Errore 2

What should I do to compile it succesfully ?

On Sat, Dec 23, 2023 at 7:36=E2=80=AFPM Mario Marietto <marietto2008@gmail.=
com> wrote:
>
> I've added this parameter to bootxen.source :
>
> guest_loglvl=3Dall
>
> bootxen.source :
>
> mmc dev 1
> ext2load mmc 1:3 0x42000000 zImage-5.4.261-iommu-dma-on-xen
> ext2load mmc 1:3 0x51000000 xen-4.17-armhf-armmp-0x51004000.ub
> ext2load mmc 1:3 0x5ffec000 exynos5250-snow.dtb
> fdt addr 0x5ffec000
> fdt resize 1024
> fdt set /chosen \#address-cells <0x2>
> fdt set /chosen \#size-cells <0x2>
> fdt set /chosen xen,xen-bootargs "console=3Ddtuart dtuart=3Dserial0 dom0_=
mem=3D1152M dom0_max_vcpus=3D2 bootscrub=3D0 vwfi=3Dnative guest_loglvl=3Da=
ll"
> fdt mknod /chosen dom0
> fdt set /chosen/dom0 compatible  "xen,linux-zimage" "xen,multiboot-module=
" "multiboot,module"
> fdt set /chosen/dom0 reg <0x0 0x42000000 0x0 0x49F9A8 >
> fdt set /chosen xen,dom0-bootargs "console=3Dtty1 root=3D/dev/mmcblk1p4 r=
w rootwait clk_ignore_unused --no-log"
> bootm 0x51000000 - 0x5ffec000
>
>
> but when I try to boot FreeBSD I don't get more informations than usual :
>
> root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen# ./s=
tart-freebsd
>
> Parsing config from freebsd.cfg
> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found:=
 Invalid kernel
> libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
> libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:cannot=
 (re-)build domain: -3
> libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-exis=
tent domain
> libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Unabl=
e to destroy guest
> libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruction=
 of domain failed
> freebsd is an invalid domain identifier (rc=3D-6)
>
> Are you aware about a new parameter that I can use to have more detailed =
debug information ?
>
> On Wed, Dec 20, 2023 at 5:52=E2=80=AFAM Warner Losh <imp@bsdimp.com> wrot=
e:
>>
>> I'd think you'd need the right virtualization loader. I'm not entirely s=
ure the u-boot.bin you've been creating is for a dom-u..
>> If I misunderstood, then the below isn't good advice. Chain booting the =
u-boot, the first u-boot initializes things so you want
>> to start with stage after the SPL. But the different error messages sugg=
est that it's trying to reboot with kexec, which
>> isn't supported on armv7 at the moment.
>>
>> If you could boot in kvm, I think that the following would work....  Tho=
ugh I'm not entirely sure how to
>> specify the two .fd files in your setup. The use of qemu is to have an e=
asy env to debug things... I don't
>> have a chromebook to try...
>>
>> My first instinct would be to try qemu on x86 (this is the first step of=
 many to get to your destination).
>>
>> If you could boot the GENERIC_SD image that we produce using qemu + edk2=
-arm-code.fd that would
>> be a huge first step. This will give you the boot loader, I believe, to =
boot in the VM that you need better
>> than going via the u-boot route. Since you are booting in a virtualized =
environment, I think it wouldn't
>> matter which one :).
>>
>> So, I did the following to boot the virtualized armv7 FreeBSD environmen=
t, following a post on the forums I found and knew to have the right recipe=
:
>> https://forums.freebsd.org/threads/run-boot-freebsd-arm-32bit-image-in-q=
emu.80765/
>>
>> 1. pkg install qemu
>> 2. mkdir qemu-armv7-env
>> 3. cd qemu-armv7-env
>> 4. fetch https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/14.0=
/FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz
>> 5. xz -d -T 0 FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz
>> 6. dd if=3D/dev/zero of=3Dpflash0.img bs=3D1m count=3D64
>> 7. dd if=3D/dev/zero of=3Dpflash1.img bs=3D1m count=3D64
>> 8. dd if=3D/usr/local/share/qemu/edk2-arm-code.fd of=3Dpflash0.img conv=
=3Dnotrunc
>> 9. dd if=3D/usr/local/share/qemu/edk2-arm-vars.fd of=3Dpflash1.img conv=
=3Dnotrunc
>> 10. cat > start-freebsd-arm.sh
>> #!/bin/sh
>> qemu-system-arm \
>>   -M virt \
>>   -m 1024 \
>>   -drive file=3Dpflash0.img,format=3Draw,if=3Dpflash,readonly=3Don \
>>   -drive file=3Dpflash1.img,format=3Draw,if=3Dpflash \
>>   -drive file=3D$1.img,if=3Dvirtio,cache=3Dwritethrough \
>>   -nographic \
>>   -serial mon:stdio
>> ^D
>> 11. chmod +x start-freebsd-arm.sh
>> 12. ./start-freebsd-arm.sh FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD
>>
>> But I hit a snag with this on qemu 8.1.2 and 8.1.3 with both 13.2 and 14=
.0:
>>
>> Starting devd.
>> Starting dhclient.
>> DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 7
>> Fatal kernel mode data abort: 'Alignment Fault' on read
>> trapframe: 0xc4b36a60
>> FSR=3D00000001, FAR=3Ddd96701a, spsr=3D20000013
>> r0 =3D00000000, r1 =3D00000001, r2 =3D00000001, r3 =3Dc4b36b4c
>> r4 =3D00000014, r5 =3Dd6618800, r6 =3Ddd96702e, r7 =3D0000022c
>> r8 =3D00000000, r9 =3D0000022c, r10=3Ddd96701a, r11=3Dc4b36b90
>> r12=3D4300ffff, ssp=3Dc4b36af0, slr=3Dc04a9728, pc =3Dc04a9750
>>
>> panic: Fatal abort
>> cpuid =3D 0
>> time =3D 1680843057
>> KDB: stack backtrace:
>> #0 0xc035786c at kdb_backtrace+0x48
>> #1 0xc02fdd20 at vpanic+0x140
>> #2 0xc02fdbe0 at vpanic+0
>> #3 0xc06304ac at abort_align+0
>> #4 0xc063052c at abort_align+0x80
>> #5 0xc063017c at abort_handler+0x480
>> #6 0xc060f480 at exception_exit+0
>> #7 0xc04a9750 at udp_input+0x288
>> #8 0xc0473f54 at ip_input+0x1e0
>> #9 0xc04447c0 at netisr_dispatch_src+0xf8
>> #10 0xc043bf2c at ether_demux+0x1a4
>> #11 0xc043d5e4 at ether_nh_input+0x480
>> #12 0xc04447c0 at netisr_dispatch_src+0xf8
>> #13 0xc043c404 at ether_input+0x50
>> #14 0xc01c0838 at vtnet_rx_vq_process+0x880
>> #15 0xc01b70d0 at vtpci_intx_intr+0xac
>> #16 0xc02b87f0 at ithread_loop+0x2ec
>> #17 0xc02b465c at fork_exit+0xc0
>> Uptime: 19s
>>
>> I don't know if this is a problem with qemu or FreeBSD's kernel...
>>
>> Warner
>>
>> On Tue, Dec 19, 2023 at 3:25=E2=80=AFPM Mario Marietto <marietto2008@gma=
il.com> wrote:
>>>
>>> I've asked some help on the channel #arm on Reddit and someone replied =
:
>>>
>>> https://www.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_a=
rm32_bit_as_domu_with/
>>>
>>> Maybe his answer can be useful to understand why it does not work.
>>>
>>> On Tue, Dec 19, 2023 at 8:33=E2=80=AFPM Stefano Stabellini <sstabellini=
@kernel.org> wrote:
>>>>
>>>> +Michal
>>>>
>>>> Hi Mario,
>>>>
>>>> I am not sure about booting FreeBSD, but I am certain that u-boot work=
s
>>>> fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config
>>>> file:
>>>>
>>>> name=3D"test"
>>>> kernel=3D"u-boot.bin"
>>>> extra =3D "console=3Dhvc0"
>>>> memory=3D256
>>>> vcpus=3D1
>>>> disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>>>>
>>>> I don't know for sure if you can boot FreeBSD but you should definitel=
y
>>>> be able to see the u-boot command line prompt. The fact that you are
>>>> getting this message:
>>>>
>>>> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader fou=
nd: Invalid kernel
>>>>
>>>> Means that something is not right in the u-boot configuration or u-boo=
t
>>>> build. Michal and Artem (CCed) might know more. From what I recall,
>>>> there was nothing special required to get u-boot.bin to boot as domU
>>>> kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.
>>>>
>>>> Cheers,
>>>>
>>>> Stefano
>>>>
>>>>
>>>> On Tue, 19 Dec 2023, Mario Marietto wrote:
>>>> > ....I see that some other interesting files have been produced by u-=
boot when I have compiled it :
>>>> >
>>>> > u-boot
>>>> > u-boot.lds
>>>> > u-boot.bin
>>>> > u-boot.map
>>>> > u-boot-nodtb.bin
>>>> > u-boot.dtb
>>>> > u-boot.srec
>>>> > u-boot-dtb.bin
>>>> > u-boot.sym
>>>> >
>>>> > So,maybe I should use a different u-boot* file for booting FreeBSD ?
>>>> >
>>>> >
>>>> > On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto <marietto2008=
@gmail.com> wrote:
>>>> >       Hello to everyone.
>>>> >
>>>> > I have compiled the needed u-boot.bin from scratch using this proced=
ure :
>>>> >
>>>> > # git clone https://github.com/u-boot/u-boot.git
>>>> > # cd u-boot
>>>> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defconfi=
g : this line generates the file .config
>>>> > # nano .config and I've added these parameters :
>>>> >
>>>> > CONFIG_ARMV7_NONSEC=3Dn
>>>> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
>>>> >
>>>> > the uboot-bin file is generated with this command :
>>>> >
>>>> > # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make
>>>> >
>>>> > At this point,I took a look inside the .config file and I saw that t=
he parameter "CONFIG_ARMV7_NONSEC=3Dn" has been removed. So,for
>>>> > some reason,it is not accepted and this could be a problem....
>>>> >
>>>> > These are the xen config files that I've used :
>>>> >
>>>> > nano freebsd.cfg
>>>> >
>>>> > name=3D"test"
>>>> > kernel=3D"u-boot.bin"
>>>> > extra =3D "console=3Dhvc0"
>>>> > memory=3D256
>>>> > vcpus=3D1
>>>> > disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>>>> >
>>>> > nano start-freebsd
>>>> >
>>>> > xl create freebsd.cfg
>>>> > xl console freebsd
>>>> >
>>>> > This is what happens when I launch the vm :
>>>> >
>>>> > # ./start-freebsd
>>>> >
>>>> > Parsing config from freebsd.cfg
>>>> > xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader f=
ound: Invalid kernel
>>>> > libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image f=
ailed
>>>> > libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:c=
annot (re-)build domain: -3
>>>> > libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non=
-existent domain
>>>> > libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:=
Unable to destroy guest
>>>> > libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destru=
ction of domain failed
>>>> > freebsd is an invalid domain identifier (rc=3D-6)
>>>> >
>>>> >
>>>> > On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto <marietto200=
8@gmail.com> wrote:
>>>> >       So,ok,I should have said "the second u-boot" ; since the first=
 u-boot binary is the "u-boot binary located in the RO
>>>> >       memory" of the Chromebook". Sorry for the confusion.
>>>> >
>>>> > On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto <marietto200=
8@gmail.com> wrote:
>>>> >       ---> There are no specific options in u-boot devoted to FreeBS=
D
>>>> >
>>>> > This is an important factor. So,what about if,instead of compiling a=
 new version of u-boot on the partition 2,I will
>>>> > recompile the u-boot customized version created by the virtual open =
system in 2014,that should be installed on the first
>>>> > partition ? It could work if there are no differences between the u-=
boot that should boot Linux and the u-boot that
>>>> > should boot FreeBSD.
>>>> >
>>>> > Can you give a look at the u-boot source code created by virtual ope=
n systems ? You can find it on my google drive :
>>>> >
>>>> > https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/vi=
ew?usp=3Dsharing
>>>> >
>>>> > I need to understand if I can recompile it without problem so that i=
t can satisfy my needs (the ability of the file
>>>> > u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano=
 Stabellini,the xen developer that suggested to me
>>>> > what I could do to have FreeBSD virtualized under Xen on my Arm Chro=
mebook) ; otherwise the risk is to find later
>>>> > problems that will make me troubles and that I will not able to fix.
>>>> >
>>>> > I gave a look at the virtual open system u-boot and I didn't see any=
 arndale_defconfig inside. So,If I have understood
>>>> > correctly,I should put that file inside the root of the u-boot sourc=
e code,let's say here :
>>>> >
>>>> > marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls
>>>> >
>>>> > .checkpatch.conf        README                  doc                 =
    net
>>>> > .git                    api                     drivers             =
    onenand_ipl
>>>> > .gitignore              arch                    dts                 =
    post
>>>> > COPYING                 board                   examples            =
    rules.mk
>>>> > CREDITS                 boards.cfg              fs                  =
    scripts
>>>> > MAINTAINERS             common                  include             =
    snapshot.commit
>>>> > MAKEALL                 config.mk               lib                 =
    spl
>>>> > Makefile                cros                    mkconfig            =
    test
>>>> > PRESUBMIT.cfg           disk                    nand_spl            =
    tools
>>>> >
>>>> > and I should do : make and make install ? and the file I need,u-boot=
.bin will be generated ?
>>>> >
>>>> > I didn't find any pre made configuration file inside :
>>>> >
>>>> > u-boot-vos # find . -type f -name "exynos*"
>>>> >
>>>> > ./include/exynos-fb.h
>>>> > ./include/configs/exynos5-common.h
>>>> > ./doc/device-tree-bindings/spi/exynos-spi.txt
>>>> > ./doc/device-tree-bindings/usb/exynos-usb.txt
>>>> > ./drivers/power/exynos-tmu.c
>>>> > ./drivers/power/exynos-cpufreq.c
>>>> > ./drivers/video/exynos-fb.c
>>>> > ./drivers/spi/exynos_spi.c
>>>> > ./board/samsung/dts/exynos5250-spring.dts
>>>> > ./board/samsung/dts/exynos5250-smdk5250.dts
>>>> > ./board/samsung/dts/exynos5250-snow.dts
>>>> > ./board/samsung/dts/exynos5250-daisy.dts
>>>> > ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h
>>>> > ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h
>>>> > ./arch/arm/dts/exynos5250.dtsi
>>>> > ./arch/arm/dts/exynos-periph-id.dtsi
>>>> > ./arch/arm/cpu/armv7/exynos5/exynos_cache.c
>>>> >
>>>> > u-boot-vos # find . -type f -name "arndale*"
>>>> >
>>>> > For sure I can't use a newer version of u-boot because otherwise the=
 patches needed to bypass the bootloader protections
>>>> > of the Arm Chromebook (such as a lot of different patches needed to =
boot correctly Linux) will be broken ; anyway,since
>>>> > it works,I don't need to use an updated version of u-boot.
>>>> >
>>>> > ----> As per my experience, you have to respect these two options, c=
ompiling u-boot for
>>>> > FreeBSD: https://github.com/freebsd/freebsd-ports/blob/main/sysutils=
/u-boot-master/files/FreeBSD_Fragment
>>>> >
>>>> > It says that I should use these parameters :
>>>> >
>>>> > CONFIG_ARMV7_NONSEC=3Dn
>>>> > CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
>>>> >
>>>> > These are the parameters used to configure a Linux kernel. I don't u=
nderstand what's the relation between the compilation
>>>> > of a linux kernel and u-boot. In the past I tried to recompile u-boo=
t,but I didn't have the need to set up those
>>>> > parameters,so I don't know how to do it (but I know how to recompile=
 a Linux kernel).
>>>> >
>>>> > ---> I'm not sure that I'm getting you right, as I don't understand =
what you mean under "the first u-boot".
>>>> >
>>>> >
>>>> > I'm talking about first u-boot because the whole procedure to boot L=
inux on the ARM Chromebook,that's explained here :
>>>> >
>>>> > http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromeb=
ook/
>>>> >
>>>> >
>>>> > at some point they say :
>>>> >
>>>> >
>>>> > To be able to run KVM on ARM platforms, the kernel has to be booted =
in hypervisor mode. Because of this relatively recent
>>>> > requirement (due to the introduction of the virtualization extension=
s), up until now all booting methods would boot the
>>>> > kernel in the standard Supervisor mode.
>>>> >
>>>> > For the ARM Chromebook the default boot procedure doesn't allow us t=
o boot in hypervisor mode. Although the laptop's boot
>>>> > mechanism is based on the frequently used u-boot, the binary is loca=
ted in RO memory. Fortunately, a chained u-boot
>>>> > mechanism can be used (i.e. starting another u-boot after the origin=
al). We can then enter hypervisor mode from our
>>>> > custom iteration of u-boot and subsequently load our kernel and user=
space.
>>>> >
>>>> > So,the first u-boot is the u-boot provided by virtual open systems,t=
hat's able to chainload the "u-boot binary located in
>>>> > RO memory" , that does not boot Chrome OS in hypervisor mode. We don=
't need it if we want to boot Linux with kvm or xen
>>>> > enabled.
>>>> >
>>>> >
>>>> > On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki <stanisla=
v.silnicki@mailgate.us> wrote:
>>>> >       I'm not an expert in the topic, I only know, that ARM has divi=
ded hardware into two worlds - Secure and
>>>> >       Not-So, strictly limiting any software, running in non-secure =
world with access to functions and
>>>> >       resources. https://developer.arm.com/documentation/den0013/d/S=
ecurity/TrustZone-hardware-architecture?lang=3Den
>>>> >
>>>> > I'm not sure, that I'm getting you right, as I don't understand what=
 you mean under "the first u-boot".
>>>> >
>>>> > As I understand, virtualization (HYP) is running in non-secure world=
(https://developer.arm.com/documentation/ddi0406/c/System-Level-Architectur=
e/The-System-Level-Programmers--Model/The-Virtualization-Extens
>>>> > ions), so my guess (only guess!!!), virtualization software has to p=
repare (configure) HW platform in the way,
>>>> > that FreeBSD kernel will not lack any resources, required to configu=
re MPU, VA, etc.
>>>> > So, if you lucky to boot virtualizer, which is aware of target OS, t=
hat maybe you can boot the kernel. Although, I
>>>> > doubt, that you need to boot 'second' u-boot to boot the kernel - th=
ere is simply ubldr, which you can hook somehow
>>>> > from virtualizer....
>>>> >
>>>> > Stan
>>>> >
>>>> >
>>>> >
>>>> > Mario Marietto wrote:
>>>> >
>>>> >
>>>> >       ---> As I understand, it makes sure that u-boot keeps in secur=
e mode during boot and passes control to
>>>> >       ubldr, which boots FreeBSD kernel, in that mode.
>>>> >
>>>> > Can you elaborate your sentence more ? I know that the bootloader se=
cure mode is bypassed by the virtual open
>>>> > systems u-boot. Are you saying that when the control passes to the s=
econd u-boot,it will happen in secure
>>>> > mode,so that the bypass that happened loading the first u-boot,is an=
nulled ? If this is true,maybe can I boot
>>>> > FreeBSD using the virtual-open-system custom u-boot ? Is this compat=
ible with FreeBSD ? Where can I find the
>>>> > u-boot.bin that the xen developer talked about ? thanks bro'.
>>>> >
>>>> >
>>>> >
>>>> > On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki <stanisl=
av.silnicki@mailgate.us> wrote:
>>>> >       Hi Mario,
>>>> >
>>>> > U-Boot  beast is hiding in this den: https://source.denx.de/u-boot/u=
-boot.git
>>>> > I took a brief look at your post and it seems to me, that option CON=
FIG_CMO_BY_VA_ONLY is irrelevant to
>>>> > your target armv7 32 bit
>>>> > platform: https://source.denx.de/u-boot/u-boot/-/blob/master/arch/ar=
m/cpu/armv8/Kconfig?ref_type=3Dheads#L3
>>>> >
>>>> > As for compiling the u-boot, it is a doable task, given that you und=
erstand what you are doing. There
>>>> > are no specific options in u-boot devoted to FreeBSD. It is a boot l=
oader, whose mission to make basic
>>>> > hardware initialization, read you kernel file from some media into R=
AM and then pass it control.
>>>> >
>>>> > Basically, you can grab some defconfig, prepared for any other Exyno=
s5250 based board  (say, this one:
>>>> > https://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_d=
efconfig?ref_type=3Dheads) and adopt
>>>> > it somehow.
>>>> >
>>>> > As per my experience, you have to respect these two options, compili=
ng u-boot for
>>>> > FreeBSD: https://github.com/freebsd/freebsd-ports/blob/main/sysutils=
/u-boot-master/files/FreeBSD_Fragment
>>>> >
>>>> > As I understand, it makes sure, that u-boot keeps in secure mode dur=
ing boot and passes control to
>>>> > ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a l=
ot of surprises you may realize.
>>>> >
>>>> > Hope, this will help to progress you tasks
>>>> > Stan
>>>> >
>>>> > Mario Marietto wrote:
>>>> >
>>>> >
>>>> >       Hello.
>>>> >
>>>> >       I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM Chr=
omebook. Basically there are
>>>> >       two ways to accomplish this task :
>>>> >
>>>> >       1) to write a patch that allows the FreeBSD kernel to boot as =
a zImage file. This could be
>>>> >       accomplished applying this patch to a specific file that's on =
the source code of FreeBSD :
>>>> >
>>>> >
>>>> >       https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98cc139=
1472717035f986c979edef0c9
>>>> >
>>>> >
>>>> >       This patch was written by Julien Grall a lot of time ago and n=
ow it does not work anymore.
>>>> >       This is the reason :
>>>> >
>>>> >
>>>> >             It appears FreeBSD-CURRENT removed the last step convert=
ing the kernel file to
>>>> >             kernel.bin. The patch can be readily rebased, but withou=
t kernel.bin that
>>>> >             doesn't do too much
>>>> >
>>>> >
>>>> >
>>>> > So,without a rebase of that patch the first option is not applicable=
. And I'm not able to fix it.
>>>> >
>>>> > 2) booting FreeBSD using U-Boot,as explained to me by a xen develope=
r :
>>>> >
>>>> >
>>>> >       I was trying to explain why and how Julien's patch works so th=
at you could be the one
>>>> >       to re-do something similar or fix the patch on the FreeBSD ker=
nel that you are
>>>> >       working with. I am happy to help review and write patches but =
I don't work with the
>>>> >       FreeBSD kernel so I wouldn't be able to help you quickly. Howe=
ver, I might have a
>>>> >       suggestion. Do you know if FreeBSD can be booted by U-Boot ? B=
ecause U-Boot
>>>> >       definitely boots as Xen on ARM guest firmware/bootloader. You =
should be able to build
>>>> >       U-Boot and use the U-Boot binary as Xen guest kernel, then U-B=
oot could load FreeBSD
>>>> >       from disk or network and start it. For instance as domU config=
 file:
>>>> >
>>>> >       kernel=3D"/home/petalinux/u-boot.bin"
>>>> >       disk =3D [ '/home/petalinux/test.img,raw,xvda' ]
>>>> >
>>>> >       I know it is important to build u-boot with the following conf=
ig to make it work on
>>>> >       Xen.
>>>> >
>>>> >       CONFIG_CMO_BY_VA_ONLY=3Dy
>>>> >
>>>> >
>>>> >
>>>> > This option seems more doable to me according to my knowledge. But I=
 need to understand how to do
>>>> > it.
>>>> >
>>>> > Well,let's say that on the ARM Chromebook I'm forced to use and inst=
all a customized version of
>>>> > u-boot,created by virtual open systems,because it is the only one th=
at allows bypassing its
>>>> > bootloader protection. You can find more information here :
>>>> >
>>>> > http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromeb=
ook/?vos=3Dtech
>>>> >
>>>> > This is the relevant section to read :
>>>> >
>>>> >
>>>> >       Bootloader :
>>>> >
>>>> >       If you wish to skip this chapter you can download a pre-compil=
ed binary of the
>>>> >       bootloader:
>>>> >
>>>> >
>>>> >       $ wget
>>>> >       http://www.virtualopensystems.com/downloads/guides/kvm_on_chro=
mebook/nv_u-boot-snow.kpart
>>>> >
>>>> >
>>>> >       To be able to run KVM on ARM platforms, the kernel has to be b=
ooted in hypervisor
>>>> >       mode. Because of this relatively recent requirement (due to th=
e introduction of the
>>>> >       virtualization extensions), up until now all booting methods w=
ould boot the kernel in
>>>> >       the standard Supervisor mode. For the ARM Chromebook the defau=
lt boot procedure
>>>> >       doesn't allow us to boot in hypervisor mode. Although the lapt=
op's boot mechanism is
>>>> >       based on the frequently used u-boot, the binary is located in =
RO memory. Fortunately,
>>>> >       a chained u-boot mechanism can be used (i.e. starting another =
u-boot after the
>>>> >       original). We can then enter hypervisor mode from our custom i=
teration of u-boot and
>>>> >       subsequently load our kernel and userspace.
>>>> >
>>>> >       Checkout the needed u-boot code :
>>>> >
>>>> >
>>>> >       $ git clone git://github.com/virtualopensystems/u-boot.git$ cd=
 u-boot$
>>>> >       ./scripts/build.sh
>>>> >
>>>> >
>>>> >       If successful, a message about how to copy the bootloader on t=
he USB flash disk or SD
>>>> >       card will appear. We will use it later when preparing the boot=
 medium to start our
>>>> >       system. If you have followed the Setting up the boot medium ch=
apter and you have a
>>>> >       prepared boot device, then you can update u-boot by running :
>>>> >
>>>> >
>>>> >       $ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev/sdX1
>>>> >
>>>> >
>>>> >
>>>> > so,the needed u-boot that we must use should be installed on the fir=
st partition of the sd card.
>>>> >
>>>> > There is another relevant section to read :
>>>> >
>>>> >
>>>> >       Setting up the boot medium
>>>> >
>>>> >       Now it is time to copy all the relevant files that we created =
in the previous
>>>> >       chapters,and use them to boot Chromebook with a different kern=
el and OS. In all these
>>>> >       examples the device /dev/sdX is used. Take extra care to chang=
e the examples to the
>>>> >       device that you have attached. Insert the boot medium on your =
workstation and
>>>> >       carefully execute the following step. First we need to properl=
y format the boot
>>>> >       medium.
>>>> >
>>>> >       In the uboot source directory :
>>>> >
>>>> >
>>>> >       $ sudo ./scripts/sdcard.sh /dev/sdX
>>>> >
>>>> >
>>>> >       This will erase all data and create 4 partitions in the medium=
, along with copying
>>>> >       the u-boot binary to the first partition:
>>>> >
>>>> >
>>>> >       Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
>>>> >       Partition 2 =3D not used
>>>> >       Partition 3 =3D EXT2 partition for u-boot files (uImage and ex=
ynos5250-snow.dtb)
>>>> >       Partition 4 =3D EXT4 partition for userspace files
>>>> >
>>>> >
>>>> >       With u-boot being copied, next is the kernel image and DTB fil=
e. From the kernel
>>>> >       source execute :
>>>> >
>>>> >
>>>> >       $ mkdir ../mnt/
>>>> >       $ sudo mount /dev/sdX3 ../mnt/
>>>> >       $ sudo cp arch/arm/boot/uImage ../mnt/
>>>> >       $ sudo cp arch/arm/boot/dts/exynos5250-snow.dtb ../mnt/
>>>> >       $ sudo umount /dev/sdX3
>>>> >
>>>> >
>>>> >       Finally, we have to copy the Ubuntu userspace filesystem that =
we created earlier:
>>>> >
>>>> >
>>>> >       $ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./precise/* mnt/$ sudo=
 umount /dev/sdX4
>>>> >
>>>> >
>>>> >
>>>> > Now,my idea is to chainload the already chain loaded u-boot created =
by V.O.S to the new u-boot
>>>> > that we need for booting FreeBSD and that can be installed in the pa=
rtition n.2,as shown in this
>>>> > scheme,because it is not used :
>>>> >
>>>> >
>>>> > Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
>>>> > Partition 2 =3D not used (maybe we can install the u-boot for arm 32=
 bit,compatible with FreeBSD on
>>>> > this partition)
>>>> > Partition 3 =3D EXT2 partition for u-boot files (uImage and exynos52=
50-snow.dtb)
>>>> > Partition 4 =3D EXT4 partition for userspace files
>>>> >
>>>> >
>>>> > Take in consideration that default boot string is hardcoded here,in =
the snow.h file of the custom
>>>> > u-boot created by VOS :
>>>> >
>>>> >
>>>> > https://github.com/virtualopensyste...18a39b6c177dff58a/include/conf=
igs/snow.h#L101
>>>> >
>>>> >
>>>> > and it needs to be recompiled because it should point to the partiti=
on n.2,where I will install
>>>> > the u-boot files as explained here :
>>>> >
>>>> >
>>>> > https://wiki.freebsd.org/arm/Chromebook
>>>> >
>>>> >
>>>> > I have some questions to ask before I start working on this.
>>>> >
>>>> > 1) The xen developer said :
>>>> >
>>>> >
>>>> >       You should be able to build U-Boot and use the U-Boot binary a=
s Xen guest kernel...
>>>> >
>>>> >
>>>> >
>>>> > where is the u-boot binary,according to this document ?
>>>> >
>>>> > https://wiki.freebsd.org/arm/Chromebook
>>>> >
>>>> > I don't see it.
>>>> >
>>>> >
>>>> > 2) where is the source code of the file that I can get here :
>>>> >
>>>> > http://commondatastorage.googleapis.com/chromeos-localmirror/distfil=
es/nv_uboot-snow-simplefb.kpart.bz2
>>>> >
>>>> > I need the source code if I want to recompile u-boot so that it can =
point to the partition 4.
>>>> >
>>>> > Maybe it can be found on this link :
>>>> >
>>>> > http://linux-exynos.org/dist/chromebook/nv_uboot/
>>>> >
>>>> > but it can't be opened....
>>>> >
>>>> >
>>>> > 3) in this specific scenario the source code of u-boot should run on=
 arm 32 bit,not on arm
>>>> > 64,because I have the Samsung Chromebook "SNOW" model XE303C12,that'=
s powered by a Samsung Exynos
>>>> > 5250 (ARMv7 32 bit Cortex A15) Soc.
>>>> >
>>>> >
>>>> > 4) I'm not sure if I can chainload the customized u-boot created by =
V.O.S that should be
>>>> > installed on the first partition with the u-boot tailored for bootin=
g FreeBSD that should be
>>>> > installed on the partition 2....
>>>> >
>>>> >
>>>> > 5) the xen developer said that u-boot should be compiled enabling th=
is option :
>>>> >
>>>> >
>>>> > Code:
>>>> >
>>>> > CONFIG_CMO_BY_VA_ONLY=3Dy
>>>> >
>>>> >
>>>> > Well,can you provide some good source that can help me to understand=
 how I can recompile u-boot
>>>> > for FreeBSD ? thanks.
>>>> >
>>>> > --
>>>> > Mario.
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Mario.
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Mario.
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Mario.
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Mario.
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Mario.
>>>> >
>>>> >
>>>
>>>
>>>
>>> --
>>> Mario.
>
>
>
> --
> Mario.



--
Mario.


From xen-devel-bounces@lists.xenproject.org Thu Dec 28 19:39:35 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Dec 2023 19:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660224.1029777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rIwDw-00055w-Bs; Thu, 28 Dec 2023 19:39:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660224.1029777; Thu, 28 Dec 2023 19:39: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 1rIwDw-00055p-9K; Thu, 28 Dec 2023 19:39:20 +0000
Received: by outflank-mailman (input) for mailman id 660224;
 Thu, 28 Dec 2023 19:39:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nuD1=IH=citrix.com=prvs=7195a922f=Andrew.Cooper3@srs-se1.protection.inumbo.net>)
 id 1rIwDv-00055j-TS
 for xen-devel@lists.xenproject.org; Thu, 28 Dec 2023 19:39:19 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c839eec5-a5b8-11ee-98ed-6d05b1d4d9a1;
 Thu, 28 Dec 2023 20:39:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c839eec5-a5b8-11ee-98ed-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1703792357;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=g5gpe4nyKoOIU7XqVpUqtUSSTMTjNB4hiO+3YbZpQzc=;
  b=BM2qgWWlvQf8bI0qyc8lhAEivcpXBix4hdGceVkbzKwa05VZLDySok/1
   nZMT5aqqeDvidNGFMrP/D03Rdc0KRyL+3cDJApSmZoLeLi/Q+APoBvZde
   5MX5mK/WDkUX01WDiMtalqhoAXcmveNSRLT7qU1Ilhh9dR7Ay2J6Fm3GJ
   I=;
X-CSE-ConnectionGUID: Ts0QKIAOS0OK2ULd90NQLw==
X-CSE-MsgGUID: qw4etHXxTOW9qnzqGCkRqQ==
Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 4.0
X-MesageID: 127630642
X-Ironport-Server: esa5.hc3370-68.iphmx.com
X-Remote-IP: 162.221.159.70
X-Policy: $RELAYED
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:nQnJA67GFCA55wd6qw0IegxRtHvHchMFZxGqfqrLsTDasY5as4F+v
 mIYXG6HP/yJYDCmeNp2bd7jo0IO7ZeDyIBmGwo5/isyHi5G8cbLO4+Ufxz6V8+wwm8vb2o8t
 plDNYOQRCwQZiWBzvt4GuG59RGQ7YnRG/ykTraCY3gtLeNdYH9JoQp5nOIkiZJfj9G8Agec0
 fv/uMSaM1K+s9JOGjt8B5mr9lU34JwehBtC5gZlPKoR7AeE/5UoJMl3yZ+ZfiOQrrZ8RoZWd
 86bpJml82XQ+QsaC9/Nut4XpWVTH9Y+lSDX4pZnc/DKbipq/0Te4Y5iXBYoUm9Fii3hojxE4
 I4lWapc6+seFvakdOw1C3G0GszlVEFM0OevzXOX6aR/w6BaGpdFLjoH4EweZOUlFuhL7W5my
 edAERMsRze438WVmo+fRrg0oP0HM5y+VG8fkikIITDxCP8nRdbIQrnQ5M8e1zA17ixMNa+AP
 YxDM2MpNUmRJUIXUrsUIMtWcOOAr3/zaTBH7nmSorI6+TP7xw1tyrn9dtHSf7RmQO0MxBnG/
 TqYoz6R7hcyLcPDxCalwmKQodCehCXpQa05F4ehz6s/6LGU7jNKU0BHPbehmtGph0j7V99BJ
 kg8/is1sbN05EGtVsP6XRCzvDiDpBF0c/h6HvA+6QqN4rHJ+AvfDW8BJhZebPQ2uclwQiYlv
 mJlhPuwW2Yp6ufMDyvAp/HL9VteJBT5M0c+fnc9biosxOK7h6JpszbDH45FKYqq24id9S7L/
 9yakMQvr+xM1ZVUh/TkpAyvvt66mnTeoucICuTrsoGNtFoRiHaNPdDA1LQixa8owHylZleAp
 mMYvMOV8foDC5qA/ATUH71WQ+H5uKjVa2CD6bKKI3XG3239k0NPgKgKuG0uTKuXGplslcDVj
 L/75loKuc470IqCZq5reYOhY/nGPoC5fekJosv8N4IUCrAoLV/vwc2bTRLIt4wbuBR2wP5X1
 FbyWZrEMEv2/ow+lmfuF7hEie5xrs38rEuKLa3GI92c+eL2TBaopX0taTNisshRAHu4nTjo
IronPort-HdrOrdr: A9a23:vQUMG6zN7iAZdPFq3OxOKrPwIL1zdoMgy1knxilNoRw8SKKlfq
 eV7ZMmPH7P+VIssR4b+exoVJPtfZq+z+8R3WByB8bAYOCOggLBR+sO0WKL+UyHJ8SUzI9gPM
 lbHJSWcOeAb2RHsQ==
X-Talos-CUID: 9a23:f9fTwWGcyzu2nnDgqmJb7xYtOeEMVUaF61SKHmu0WD5PcZmKHAo=
X-Talos-MUID: =?us-ascii?q?9a23=3AUthiZQxZ7wCI2Hh/QEFBW+GA1ZaaqL2xVE0RsaU?=
 =?us-ascii?q?Wh+67ZDV2KS6ypzeNW7Zyfw=3D=3D?=
X-IronPort-AV: E=Sophos;i="6.04,312,1695700800"; 
   d="scan'208";a="127630642"
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>, Wei Liu <wl@xen.org>
Subject: [PATCH] xen: Use -Wuninitialized and -Winit-self
Date: Thu, 28 Dec 2023 19:39:07 +0000
Message-ID: <20231228193907.3052681-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

The use of uninitialised data is undefined behaviour.  At -O2 with trivial
examples, both Clang and GCC delete the variable, and in the case of a
function return, the caller gets whatever was stale in %rax prior to the call.

Clang includes -Wuninitialized within -Wall, but GCC only includes it in
-Wextra, which is not used by Xen at this time.

Furthermore, the specific pattern of assigning a variable to itself in its
declaration is only diagnosed by GCC with -Winit-self.  Clang does diagnoise
simple forms of this pattern with a plain -Wuninitialized, but it fails to
diagnose the instances in Xen that GCC manages to find.

GCC, with -Wuninitialized and -Winit-self notices:

  arch/x86/time.c: In function â€˜read_pt_and_tscâ€™:
  arch/x86/time.c:297:14: error: â€˜bestâ€™ is used uninitialized in this function [-Werror=uninitialized]
    297 |     uint32_t best = best;
        |              ^~~~
  arch/x86/time.c: In function â€˜read_pt_and_tmcctâ€™:
  arch/x86/time.c:1022:14: error: â€˜bestâ€™ is used uninitialized in this function [-Werror=uninitialized]
   1022 |     uint64_t best = best;
        |              ^~~~

and both have logic paths where best can be returned while uninitalised.  In
both cases, initialise to ~0 like the associated *_min variable which also
gates updating best.

Fixes: 23658e823238 ("x86/time: further improve TSC / CPU freq calibration accuracy")
Fixes: 3f3906b462d5 ("x86/APIC: calibrate against platform timer when possible")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>

Full Gitlab:
  https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1121715339
---
 xen/Makefile        | 3 ++-
 xen/arch/x86/time.c | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index 21832d640225..81861bc41867 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -393,8 +393,9 @@ CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections -fdata-sections
 
 CFLAGS += -nostdinc -fno-builtin -fno-common
 CFLAGS += -Werror -Wredundant-decls -Wwrite-strings -Wno-pointer-arith
-CFLAGS += -Wdeclaration-after-statement
+CFLAGS += -Wdeclaration-after-statement -Wuninitialized
 $(call cc-option-add,CFLAGS,CC,-Wvla)
+$(call cc-option-add,CFLAGS,CC,-Winit-self)
 CFLAGS += -pipe -D__XEN__ -include $(srctree)/include/xen/config.h
 CFLAGS-$(CONFIG_DEBUG_INFO) += -g
 
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index 6d33edd0addc..3fd90e9b78bc 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -294,7 +294,7 @@ static uint32_t __init read_pt_and_tsc(uint64_t *tsc,
                                        const struct platform_timesource *pts)
 {
     uint64_t tsc_prev = *tsc = rdtsc_ordered(), tsc_min = ~0;
-    uint32_t best = best;
+    uint32_t best = ~0;
     unsigned int i;
 
     for ( i = 0; ; ++i )
@@ -1019,7 +1019,7 @@ static u64 __init init_platform_timer(void)
 static uint64_t __init read_pt_and_tmcct(uint32_t *tmcct)
 {
     uint32_t tmcct_prev = *tmcct = apic_tmcct_read(), tmcct_min = ~0;
-    uint64_t best = best;
+    uint64_t best = ~0;
     unsigned int i;
 
     for ( i = 0; ; ++i )
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Dec 29 05:24:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Dec 2023 05:24:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660228.1029787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJ5LW-0007z8-Ux; Fri, 29 Dec 2023 05:23:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660228.1029787; Fri, 29 Dec 2023 05: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 1rJ5LW-0007z1-S1; Fri, 29 Dec 2023 05:23:46 +0000
Received: by outflank-mailman (input) for mailman id 660228;
 Fri, 29 Dec 2023 05:23: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 1rJ5LV-0007yr-N0; Fri, 29 Dec 2023 05:23: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 1rJ5LV-0002G7-Fg; Fri, 29 Dec 2023 05:23: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 1rJ5LU-00012J-TO; Fri, 29 Dec 2023 05:23:44 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rJ5LU-0000dU-OZ; Fri, 29 Dec 2023 05:23: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=mXhNbRGrQCi9iHhlSYY85UiCHDP/Sse39z3bDc/aXJ0=; b=knHOs/VWT2yw07+faeKCrh3HXU
	NStqoJbUuGB7nm5Lp5HOU5uOX9Sr+E4Q3+FxzRHU30wIxueHPXpcGBN3RunuNGtCFrVxPvjLH8xc4
	UYdQ7CsiSNctJvPUWDm5FZp1FDlHtSvPznm+Cg3qXBFH3Q+U5lMAkGFLLt0B3MyIzPYU=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184232-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184232: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw: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: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-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-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-libvirt-qcow2:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-libvirt-raw:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=505e701c0b2cfa9e34811020829759b7663a604c
X-Osstest-Versions-That:
    linux=f5837722ffecbbedf1b1dbab072a063565f0dad1
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 29 Dec 2023 05:23:44 +0000

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

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 184230
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184230
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184230
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184230
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184230
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184230
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184230
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184230
 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-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-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-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-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-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass
 test-armhf-armhf-libvirt-raw 14 migrate-support-check        fail   never pass

version targeted for testing:
 linux                505e701c0b2cfa9e34811020829759b7663a604c
baseline version:
 linux                f5837722ffecbbedf1b1dbab072a063565f0dad1

Last test of basis   184230  2023-12-28 01:14:02 Z    1 days
Testing same since   184232  2023-12-28 21:43:46 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Helge Deller <deller@gmx.de>
  Jialu Xu <xujialu@vimux.org>
  Kent Overstreet <kent.overstreet@linux.dev>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masahiro Yamada <masahiroy@kernel.org>
  Nathan Chancellor <nathan@kernel.org>
  Nicolas Schier <nicolas@fjasle.eu>

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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   f5837722ffec..505e701c0b2c  505e701c0b2cfa9e34811020829759b7663a604c -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Fri Dec 29 09:46:05 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Dec 2023 09:46:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660239.1029797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJ9RA-00019d-GL; Fri, 29 Dec 2023 09:45:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660239.1029797; Fri, 29 Dec 2023 09: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 1rJ9RA-00019W-Do; Fri, 29 Dec 2023 09:45:52 +0000
Received: by outflank-mailman (input) for mailman id 660239;
 Fri, 29 Dec 2023 09:45: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 1rJ9R8-00019M-Sb; Fri, 29 Dec 2023 09:45: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 1rJ9R8-0007kE-FN; Fri, 29 Dec 2023 09:45: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 1rJ9R7-0006qB-Va; Fri, 29 Dec 2023 09:45:50 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rJ9R7-0003T4-V8; Fri, 29 Dec 2023 09:45: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=1fhwQ1FfZrclI5JXIwB63Ar0O72t7gyse+F2JCk9YfE=; b=qe7SfH8lSOqen/mFurZf7KtDUe
	jvHRM9ivcXYArYftzGx/rtvYZVPUcdAe2tvKjPj2tgV94OusvjuUo0fri9LLd5ugSznVE/oa8CIR9
	7qJt8f6itI++RnrWVRDb9Uv96KM8W+da3CxREtzFERjzGk/NreTSe0xMvOpvGg9Gqr90=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184233-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184233: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-amd64-amd64-examine-uefi:host-install:broken:heisenbug
    xen-unstable:test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow:guest-localmigrate/x10:fail:heisenbug
    xen-unstable:test-amd64-amd64-xl-qemuu-win7-amd64:windows-install: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-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm: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: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-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-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-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm: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-libvirt:migrate-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-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-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-raw:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 29 Dec 2023 09:45:49 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-amd64-amd64-examine-uefi  5 host-install  broken in 184231 pass in 184233
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow 18 guest-localmigrate/x10 fail pass in 184231

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemuu-win7-amd64 12 windows-install fail in 184231 like 184209
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184229
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184231
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184231
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184231
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184231
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184231
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184231
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184231
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184231
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184231
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184231
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184231
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-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-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-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-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-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-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-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-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-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686

Last test of basis   184233  2023-12-29 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              fail    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 29 09:50:57 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Dec 2023 09:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660247.1029808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJ9W3-0002gM-8S; Fri, 29 Dec 2023 09:50:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660247.1029808; Fri, 29 Dec 2023 09:50: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 1rJ9W3-0002gF-5l; Fri, 29 Dec 2023 09:50:55 +0000
Received: by outflank-mailman (input) for mailman id 660247;
 Fri, 29 Dec 2023 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=3jkC=II=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1rJ9W1-0002ft-6a
 for xen-devel@lists.xenproject.org; Fri, 29 Dec 2023 09:50:53 +0000
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com
 [66.111.4.26]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be9e17d2-a62f-11ee-9b0f-b553b5be7939;
 Fri, 29 Dec 2023 10:50:50 +0100 (CET)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailout.nyi.internal (Postfix) with ESMTP id 1C1EE5C013B
 for <xen-devel@lists.xenproject.org>; Fri, 29 Dec 2023 04:50:48 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163])
 by compute2.internal (MEProxy); Fri, 29 Dec 2023 04:50:48 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <xen-devel@lists.xenproject.org>; Fri, 29 Dec 2023 04:50:47 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be9e17d2-a62f-11ee-9b0f-b553b5be7939
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=1703843448; x=1703929848; bh=SgYlradmGw
	/uy51fJCWRH4SKeV000a0rZhH6j/UlL/M=; b=rKwpLUjBgJBtIlCHN6l6z1GcPM
	BuR9/KumSptfte0BZqqHNhGuFmIev4dEHbhBUaHXR3wXYn1R4kO0qqXAcOJQTKPL
	ZX16oRoq6AVlATpX4gQIOrhGmjkdeJYAgqDxm8v8jEM33sI3GWRE+77Zpi1PR9l2
	TDSbKHdrwvYpCzANkxFUkZSpR7FmFiNs2rO+C0R8xPhTmFGlRFHk8t4f3zTL4iAP
	5tYZQ6io2eKw32yc/d18BmuwIziWKH6DIrz+HmnkW8IbrPij5Y4LVUUDh8YWUS0g
	5PiI4gRLS9KginPKaG+CqSHNCgA4fPy6noC50LV74DccKmbGQR3PrmjggTYg==
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=
	1703843448; x=1703929848; bh=SgYlradmGw/uy51fJCWRH4SKeV000a0rZhH
	6j/UlL/M=; b=1bUDhoLBmwSmNS0/IL0dluuBZCsDwWiT6UY1Akgwsr9m6uoZnM+
	/lNbSx1mEKSN2+mU0SNprtth3MB8dd2OjcrxUEaSsfhz+hsLBoy8jCV2jHuvMWvL
	fYUvIgl+oQid59C91yDHIzwnipG0nnd2wz3r5FDwHzEtE4dXTAkMUs/2m3gSG4J9
	yCjeFL0f06MfAgc68pyrw8il10Wr7lMjrd24BZUPfWwVC4k5h3rnHwF4c94sWT5m
	UO3GqKxw+h1LUCr4EKXig5jl60/zfKlDSWDl/Y5cZ6OXCWY9Okgg35jiMFhN1BdS
	KKq/P9ttEw/1jX3o+AKpgKas3ca2LMPbzXg==
X-ME-Sender: <xms:d5aOZecdAbf0f2iJbgGXr8OZUzAK9XUk6uXi6dFQffA8xAJqvWhQtA>
    <xme:d5aOZYNhQRcJRNIHcyJ81RgAroC0UCJW8u33ZEaoOk58bjB1jbGdlRNs5chNZHa6V
    JzjgoZNBCqW7Q>
X-ME-Received: <xmr:d5aOZfiOlhrZmo9U3gsqSNJzV3WmX9dLT50cAoizsdZOwnfV-bZT00f74kJM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdeffedgtdelucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvuffkgggtugesghdtreertd
    dtjeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhi
    uceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqne
    cuggftrfgrthhtvghrnhepvddviefgjefhvddvjeduueeihfdvvdffjeevieektdejueei
    ffetffefieethfefnecuffhomhgrihhnpehquhgsvghsqdhoshdrohhrghenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:d5aOZb8bEbhK43SX_qOEmtYvQpv8M0fl2D5zOwc0NCutUDEQuLsyVA>
    <xmx:d5aOZasujjBP95Qa7-j8OTBd83XAVxbzkmTZNWthH6T1JgSHj4f3Vg>
    <xmx:d5aOZSEdAjsNBtP49KOc6tJumbjaqqISNWCEvLIhO14Nmf6W0WwftQ>
    <xmx:eJaOZY6-aqDL4P8YI771VQ8Z-alniinQHLFQPqXYf1qws-Dz5oCTEA>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 29 Dec 2023 10:50:43 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Serial console stuck during boot, unblocked with xl debug-key
Message-ID: <ZY6WdQlbdQxb1UR2@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="0DeuvKst/ScPt4Cs"
Content-Disposition: inline


--0DeuvKst/ScPt4Cs
Content-Type: multipart/mixed; protected-headers=v1;
	boundary="BQxSafAm748++qfm"
Content-Disposition: inline
Date: Fri, 29 Dec 2023 10:50:43 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Serial console stuck during boot, unblocked with xl debug-key


--BQxSafAm748++qfm
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi,

This is continuation from matrix chat. There is an occasional failure on
qubes-hw2 gitlab runner that console become stuck during boot. I can now
reproduce it _much_ more often on another system, and the serial console ou=
tput
ends with:

    (XEN) Allocated console ring of 256 KiB.
    (XEN) Using HWP for cpufreq
    (XEN) mwait-idle: does not run on family 6

It should be:

    (XEN) Allocated console ring of 256 KiB.
    (XEN) Using HWP for cpufreq
    (XEN) mwait-idle: does not run on family 6 model 183
    (XEN) VMX: Supported advanced features:
    (XEN)  - APIC MMIO access virtualisation
    (XEN)  - APIC TPR shadow
    ...


Otherwise the system works perfectly fine, the logs are available in
full via `xl dmesg` etc. Doing (any?) `xl debug-key` unblocks the
console and missing logs gets dumped there too. I narrowed it down to
the serial console tx buffer and collected some info with the attacked
patch (it collects info still during boot, after the place where it
usually breaks). When it works, I get:

    (XEN) SERIAL DEBUG: txbufc: 0x5b5, txbufp: 0x9f7, uart intr_works: 1, s=
erial_txbufsz: 0x4000, tx_ready: 0, lsr_mask: 0x20, msi: 0, io_size: 8, ski=
pped_interrupts: 0

And when it breaks, I get:

    (XEN) SERIAL DEBUG: txbufc: 0x70, txbufp: 0x9fd, uart intr_works: 1, se=
rial_txbufsz: 0x4000, tx_ready: 16, lsr_mask: 0x20, msi: 0, io_size: 8, ski=
pped_interrupts: 0

So, I haven't found yet why it stops sending data. I'll continue adding
some debug prints etc, but if anyone has some ideas what is going on,
I'd appreciate hints.


Full `xl dmesg` of a broken case can be seen here:
https://openqa.qubes-os.org/tests/89100/logfile?filename=3Dserial_terminal.=
txt
Similarly, example working case is here:
https://openqa.qubes-os.org/tests/89099/logfile?filename=3Dserial0.txt

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

--BQxSafAm748++qfm
Content-Type: text/plain; charset=utf-8
Content-Disposition: attachment; filename="console-debug.patch"
Content-Transfer-Encoding: quoted-printable

diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 5bbed3a36a..39ad935266 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -354,6 +354,8 @@ static struct page_info * __init alloc_chunk(struct dom=
ain *d,
     return page;
 }
=20
+extern void serial_debug(void);
+
 int __init dom0_construct_pv(struct domain *d,
                              const module_t *image,
                              unsigned long image_headroom,
@@ -412,6 +414,7 @@ int __init dom0_construct_pv(struct domain *d,
     /* Machine address of next candidate page-table page. */
     paddr_t mpt_alloc;
=20
+    serial_debug();
     printk(XENLOG_INFO "*** Building a PV Dom%d ***\n", d->domain_id);
=20
     d->max_pages =3D ~0U;
diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
index 324024c29a..d6a4d62a07 100644
--- a/xen/drivers/char/serial.c
+++ b/xen/drivers/char/serial.c
@@ -71,6 +71,80 @@ void serial_rx_interrupt(struct serial_port *port, struc=
t cpu_user_regs *regs)
         (*fn)(c & 0x7f, regs);
 }
=20
+#include <xen/console.h>
+#include <xen/init.h>
+#include <xen/irq.h>
+#include <xen/param.h>
+#include <xen/sched.h>
+#include <xen/timer.h>
+#include <xen/serial.h>
+#include <xen/iocap.h>
+#ifdef NS16550_PCI
+#include <xen/pci.h>
+#include <xen/pci_regs.h>
+#include <xen/pci_ids.h>
+#endif
+#include <xen/8250-uart.h>
+#include <xen/vmap.h>
+#include <asm/io.h>
+#ifdef CONFIG_HAS_DEVICE_TREE
+#include <asm/device.h>
+#endif
+#ifdef CONFIG_X86
+#include <asm/fixmap.h>
+#endif
+
+#define NS16550_PCI
+
+struct ns16550 {
+    int baud, clock_hz, data_bits, parity, stop_bits, fifo_size, irq;
+    u64 io_base;   /* I/O port or memory-mapped I/O address. */
+    u64 io_size;
+    int reg_shift; /* Bits to shift register offset by */
+    int reg_width; /* Size of access to use, the registers
+                    * themselves are still bytes */
+    char __iomem *remapped_io_base;  /* Remapped virtual address of MMIO. =
*/
+    /* UART with IRQ line: interrupt-driven I/O. */
+    struct irqaction irqaction;
+    u8 lsr_mask;
+#ifdef CONFIG_ARM
+    struct vuart_info vuart;
+#endif
+    /* UART with no IRQ line: periodically-polled I/O. */
+    struct timer timer;
+    struct timer resume_timer;
+    unsigned int timeout_ms;
+    bool intr_works;
+    bool dw_usr_bsy;
+#ifdef NS16550_PCI
+    /* PCI card parameters. */
+    bool pb_bdf_enable;     /* if =3D1, pb-bdf effective, port behind brid=
ge */
+    bool ps_bdf_enable;     /* if =3D1, ps_bdf effective, port on pci card=
 */
+    unsigned int pb_bdf[3]; /* pci bridge BDF */
+    unsigned int ps_bdf[3]; /* pci serial port BDF */
+    u32 bar;
+    u32 bar64;
+    u16 cr;
+    u8 bar_idx;
+    bool msi;
+    const struct ns16550_config_param *param; /* Points into .init.*! */
+#endif
+};
+
+int skipped_interrupts =3D 0;
+
+void serial_debug(void)
+{
+    struct serial_port *port =3D &com[SERHND_COM1];
+    struct ns16550 *uart =3D port->uart;
+    printk("SERIAL DEBUG: txbufc: %#x, txbufp: %#x, uart intr_works: %d, s=
erial_txbufsz: %#x, tx_ready: %d, "
+            "lsr_mask: %#x, msi: %d, io_size: %ld, skipped_interrupts: %d\=
n",
+            port->txbufc, port->txbufp, uart->intr_works,
+            serial_txbufsz,
+            port->driver->tx_ready(port),
+            uart->lsr_mask, uart->msi, uart->io_size, skipped_interrupts);
+}
+
 void serial_tx_interrupt(struct serial_port *port, struct cpu_user_regs *r=
egs)
 {
     int i, n;
@@ -85,8 +159,10 @@ void serial_tx_interrupt(struct serial_port *port, stru=
ct cpu_user_regs *regs)
      */
     while ( !spin_trylock(&port->tx_lock) )
     {
-        if ( port->driver->tx_ready(port) <=3D 0 )
+        if ( port->driver->tx_ready(port) <=3D 0 ) {
+            skipped_interrupts++;
             goto out;
+        }
         cpu_relax();
     }
=20

--BQxSafAm748++qfm--

--0DeuvKst/ScPt4Cs
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmWOlnUACgkQ24/THMrX
1yx6UQf+MQfxGeP87TfFA6Q7LbgukKQjsnfmvg/xv43pV57ggZOsSIkr+TPh95oC
7nw4C2ZZc7CeJeZ0kLoz1ygua2TStS4ILFqxaylmf+iLz+dOMUlK/AYte3PVG0yZ
GL/VEM8/jMdA5C+T+oAESC7hNO4OmBSg3gZU7gdnVaMFAGd9PlpHChoFOmJcCzAI
RGFzkht4SpbIaAKWJqVvL2YlV8p9fhyyoJUnFaqvQhdrVQwL4oQ/2sSUEx0vfYiX
7znnl4QoLjftcWvxcgyk54nT1q0610spAH75VpsbYPFTMSknoKQVcYUd3K1FBTS2
fbIYPLf8ggll2K5dRsuYBZUec7/QzA==
=d5fn
-----END PGP SIGNATURE-----

--0DeuvKst/ScPt4Cs--


From xen-devel-bounces@lists.xenproject.org Fri Dec 29 15:54:04 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Dec 2023 15:54:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660255.1029821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJFB8-0006jM-6N; Fri, 29 Dec 2023 15:53:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660255.1029821; Fri, 29 Dec 2023 15: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 1rJFB8-0006jF-3G; Fri, 29 Dec 2023 15:53:42 +0000
Received: by outflank-mailman (input) for mailman id 660255;
 Fri, 29 Dec 2023 15:53: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 1rJFB6-0006j5-Lp; Fri, 29 Dec 2023 15:53: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 1rJFB6-0006WS-99; Fri, 29 Dec 2023 15:53: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 1rJFB5-00076W-RH; Fri, 29 Dec 2023 15:53:39 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rJFB5-0007vh-Qn; Fri, 29 Dec 2023 15:53: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=K3AcAAoH6iCb+rJ7enTKbMEL7HvO4e3QPg5k0NV8Bnc=; b=SEhhxax626AZaJLtSaZpT/4OmG
	vPxDQTzCcQW7jjkxWnqNyVe79+uPJZC9dNKQsRxNa4AjANHhpsaBAPdOMmTCWJa0CnPp3Hikqqhcl
	2GEx4Li1YyiY7Vr90/HdpyDByEoWRS+UQOl72ntwO4FalzKHPXRFI9SjTXB5lg5xauH0=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184234-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184234: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-raw:saverestore-support-check: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-armhf-armhf-libvirt-qcow2: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: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-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-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-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-raw: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-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-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-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=8735c7c84d1bc5c3e481c02b6b6163bdefe4132f
X-Osstest-Versions-That:
    linux=505e701c0b2cfa9e34811020829759b7663a604c
From: osstest service owner <osstest-admin@xenproject.org>
Date: Fri, 29 Dec 2023 15:53:39 +0000

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

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 184232
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184232
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184232
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184232
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184232
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184232
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184232
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184232
 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-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-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-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-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-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-raw 14 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-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                8735c7c84d1bc5c3e481c02b6b6163bdefe4132f
baseline version:
 linux                505e701c0b2cfa9e34811020829759b7663a604c

Last test of basis   184232  2023-12-28 21:43:46 Z    0 days
Testing same since   184234  2023-12-29 05:28:32 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Linus Torvalds <torvalds@linux-foundation.org>
  Namjae Jeon <linkinjeon@kernel.org>
  Steve French <stfrench@microsoft.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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   505e701c0b2c..8735c7c84d1b  8735c7c84d1bc5c3e481c02b6b6163bdefe4132f -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sat Dec 30 04:50:15 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Dec 2023 04:50:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660261.1029830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJRIO-0008PK-6C; Sat, 30 Dec 2023 04:50:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660261.1029830; Sat, 30 Dec 2023 04: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 1rJRIO-0008PD-3R; Sat, 30 Dec 2023 04:50:00 +0000
Received: by outflank-mailman (input) for mailman id 660261;
 Sat, 30 Dec 2023 04:49: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 1rJRIM-0008P3-Jt; Sat, 30 Dec 2023 04:49: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 1rJRIM-0004D8-AH; Sat, 30 Dec 2023 04:49: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 1rJRIL-0005ks-JQ; Sat, 30 Dec 2023 04:49:57 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rJRIL-0000A5-Im; Sat, 30 Dec 2023 04:49:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=fuLo2Yq2SXQ4exCAT089xjhx+zs26LUjg1C0Xu/j3lw=; b=H2U0R3qnsBF20eJTtnBb0GP3q6
	tZzL8lDEP0f+rEnvWcxW2oU/mXe3BoNCOLFOPEhBTqk2rguEOK7BZh0y6ZICe8B/XZLTgJ6b9arDf
	AhRTGPc1YFuwtLAuB/VTFq3qYF+W1KPksm/dunYExV5RaDM2ps3fpPcQdL5J71OIKPMA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184235-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184235: tolerable FAIL - PUSHED
X-Osstest-Failures:
    linux-linus:test-armhf-armhf-xl-vhd:xen-boot:fail:heisenbug
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-raw:saverestore-support-check: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-armhf-armhf-libvirt-qcow2: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: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:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx: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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-raw: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-multivcpu:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-multivcpu: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-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=f016f7547aeedefed9450499d002ba983b8fce15
X-Osstest-Versions-That:
    linux=8735c7c84d1bc5c3e481c02b6b6163bdefe4132f
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 30 Dec 2023 04:49:57 +0000

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

Failures :-/ but no regressions.

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

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-vhd     14 migrate-support-check fail in 184237 never pass
 test-armhf-armhf-xl-vhd 15 saverestore-support-check fail in 184237 never pass
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184234
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184234
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184234
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184234
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184234
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184234
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184234
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184234
 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          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-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-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-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-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-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-raw 14 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-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          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-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                f016f7547aeedefed9450499d002ba983b8fce15
baseline version:
 linux                8735c7c84d1bc5c3e481c02b6b6163bdefe4132f

Last test of basis   184234  2023-12-29 05:28:32 Z    0 days
Testing same since   184235  2023-12-29 20:13:44 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  "David E. Box" <david.e.box@linux.intel.com>
  Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
  Christoph Hellwig <hch@lst.de>
  Coly Li <colyli@suse.de>
  David E. Box <david.e.box@linux.intel.com>
  Ilpo JÃ¤rvinen <ilpo.jarvinen@linux.intel.com>
  Jens Axboe <axboe@kernel.dk>
  Linus Torvalds <torvalds@linux-foundation.org>
  Linus Walleij <linus.walleij@linaro.org>
  Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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


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
   8735c7c84d1b..f016f7547aee  f016f7547aeedefed9450499d002ba983b8fce15 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sat Dec 30 09:27:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Dec 2023 09:27:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660275.1029841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJVcg-0004Ym-2x; Sat, 30 Dec 2023 09:27:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660275.1029841; Sat, 30 Dec 2023 09:27:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJVcf-0004Yf-Vh; Sat, 30 Dec 2023 09:27:13 +0000
Received: by outflank-mailman (input) for mailman id 660275;
 Sat, 30 Dec 2023 09:27: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 1rJVcf-0004YT-6e; Sat, 30 Dec 2023 09:27: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 1rJVce-000229-VM; Sat, 30 Dec 2023 09:27: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 1rJVce-00006K-De; Sat, 30 Dec 2023 09:27:12 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rJVce-0007lM-Cn; Sat, 30 Dec 2023 09:27: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=XfARi0N19guyTT/eQSXnqZ3eJuoTwrIDS9Y1ZiAQ+30=; b=W3hGk1hM/vLH8AHXb8Btkr92tE
	louyMQxdZR0Hde0hr0mQDMeF11uuADlAHn16vf1tmOF2EoylX3OxUJG5WL7Yd+t6IY3xCiW39CD0f
	rZgYLJ+824wVoXmPi7SACkPaPeVq2817Azh5MatFbKM5J0UezfkRuHTgjEcThHZAweBA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184236-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184236: 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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm: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: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-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-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-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-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-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-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-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-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-vhd:saverestore-support-check:fail:nonblocking
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sat, 30 Dec 2023 09:27:12 +0000

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

Failures :-/ but no regressions.

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184233
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184233
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184233
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184233
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184233
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184233
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184233
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184233
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184233
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184233
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184233
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184233
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-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-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-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-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-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-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-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-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 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-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-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      15 saverestore-support-check    fail   never pass

version targeted for testing:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686

Last test of basis   184236  2023-12-30 01:52:16 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      pass    
 test-amd64-i386-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 Dec 30 10:05:28 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Dec 2023 10:05:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660281.1029851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJWDX-0000fn-Op; Sat, 30 Dec 2023 10:05:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660281.1029851; Sat, 30 Dec 2023 10:05:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJWDX-0000fg-LS; Sat, 30 Dec 2023 10:05:19 +0000
Received: by outflank-mailman (input) for mailman id 660281;
 Sat, 30 Dec 2023 10:05:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rJWDV-0000fa-SF
 for xen-devel@lists.xenproject.org; Sat, 30 Dec 2023 10:05:17 +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 1rJWDP-0002n0-JL; Sat, 30 Dec 2023 10:05:11 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rJWDP-0005i4-8t; Sat, 30 Dec 2023 10:05:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=EQ6L6EU+v2PxmAQQndgR2dbv4cYftD9K97Zi6vDcJgU=; b=Xvt6sYkwnTEkC01KhYOQFl0UuD
	rWy6W3Sk0vq7+V6ePpOCRCyufsWmkY2HMHRytD3cWiopUIuZEza9ESrZxDa97Hzyhk3B3FZG0Zfbp
	CC4FC3mLS5H3/53VtSP/qVdVaUHEXBipoanqRTLjqlR9cVPHRN7oDSeXEsQDFfOp4YTA=;
Message-ID: <5ce9eea4-500c-4f06-a7f5-363a0e0d5178@xen.org>
Date: Sat, 30 Dec 2023 10:05:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM
 Chromebook
To: Mario Marietto <marietto2008@gmail.com>, Warner Losh <imp@bsdimp.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Stanislav Silnicki <stanislav.silnicki@mailgate.us>,
 freebsd-arm@freebsd.org, Michal.Orzel@amd.com,
 xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us>
 <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us>
 <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
 <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
 <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com>
 <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com>
 <CA+1FSigREr=aSHOBMbEK9CaoKzNnKC-6sE=Ui8ovVwnMaZgZhQ@mail.gmail.com>
 <CA+1FSigVW+kS37ZuGeBsr58BfPS10fjptfOnvTbaUOZ7VrUBgg@mail.gmail.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <CA+1FSigVW+kS37ZuGeBsr58BfPS10fjptfOnvTbaUOZ7VrUBgg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 28/12/2023 16:25, Mario Marietto wrote:
> Hello.

Hi,

> I'm trying to compile u-boot-2017.05 (because it can boot a 32-bit ARM
> board. It is an out-of-tree u-boot build that can execute the ubldr to
> boot FreeBSD. I found it here :
> 
> https://src.fedoraproject.org/repo/pkgs/uboot-tools/u-boot-2017.05.tar.bz2/sha512/be270f9242a72b05463092a022bbabd54996762de1ff23bf7575124ac02e62f49572a4e2f6f571a5019047d40027e56e35593b5cc373c4a5a39b100c3377ba93/

This source code has no support for Xen guests. This was only added in 
2020. Can you clarify why you can't use the latest upstream U-boot?

> 
> It has been suggested to me by the U-Boot Xen maintainers. Infact one
> of them said :
> 
> 
> Yes, it can boot a 32-bit ARM board. I'm not a FreeBSD person, but
> I've helped a FreeBSD user booting a 32-bit ARM box with u-boot
> (GoFlexHome Marvell Kirkwood 6281). The u-boot version was 2017.05.
> I used an out-of-tree u-boot build. This u-boot executed the ubldr to
> boot FreeBSD. Please see here :
> https://forum.doozan.com/read.php?3,49039,82059#msg-82059 >
> 
> So. I tried to compile it directly on my ARM Chromebook,but it failed.
> And it also fails if compiled with "ARCH=arm
> CROSS_COMPILE=arm-linux-gnueabihf-" on my Ubuntu 23.04 x86_64
> workstation :
> 
> 
> /Chromebook/freebsd-xen/domU-freebsd/bootloaders/u-boot-2017.05# make
> snow_defconfig

IIUC, you want to boot FreeBSD in a DomU. So you need to build U-boot 
using a Xen specific configuration. Looking at the code, I can find 
xenguest_arm64_defconfig but there are no equivalent for arm32.

In fact, there are some missing low-level layer (e.g. hypercalls) in 
order to properly use it for 32-bit domU. I don't know if there are 
support out-of-tree.

So you will probably need to tweak U-boot for your setup.

Looking at the other thread, you seem to have also tried to load the 
binary from xl.

 From the below error, it sounds like you are trying to boot an ELF 
rather than a zImage:

xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not
capable of booting inside a HVM container: Invalid kernel

Do you have a tree with FreeBSD + your patches? I would like to check 
the zImage code.

Cheers,

[1] 
http://lore.kernel.org/CA+1FSii6RRM7G52kPrD80+yR=giWcB8--kpGDDQkkEK=0dnCmw@mail.gmail.com

> 
>   HOSTCC  scripts/basic/fixdep
>    HOSTCC  scripts/kconfig/conf.o
>    HOSTCC  scripts/kconfig/zconf.tab.o
>    HOSTLD  scripts/kconfig/conf
> #
> # configuration written to .config
> #
> 
> 
> /Chromebook/freebsd-xen/domU-freebsd/bootloaders/u-boot-2017.05# make
> 
> scripts/kconfig/conf  --silentoldconfig Kconfig
>    CHK     include/config.h
>    CFG     u-boot.cfg
>    GEN     include/autoconf.mk
>    GEN     include/autoconf.mk.dep
>    CFG     spl/u-boot.cfg
>    GEN     spl/include/autoconf.mk
>    CHK     include/config/uboot.release
>    CHK     include/generated/version_autogenerated.h
>    UPD     include/generated/version_autogenerated.h
>    CHK     include/generated/timestamp_autogenerated.h
>    UPD     include/generated/timestamp_autogenerated.h
>    CC      lib/asm-offsets.s
> gcc: error: unrecognized -march target: armv5
> gcc: note: valid arguments are: armv4 armv4t armv5t armv5te armv5tej
> armv6 armv6j armv6k armv6z armv6kz armv6zk armv6t2 armv6-m armv6s-m
> armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a armv8.1-a
> armv8.2-a armv8.3-a armv8.4-a
> armv8.5-a armv8.6-a armv8-m.base armv8-m.main armv8-r armv8.1-m.main
> armv9-a iwmmxt iwmmxt2 native; did you mean â€˜armv4â€™?
> gcc: error: missing argument to â€˜-march=â€™
> make[1]: *** [Kbuild:44: lib/asm-offsets.s] Errore 1
> make: *** [Makefile:1287: prepare0] Errore 2
> 
> What should I do to compile it succesfully ?
> 
> On Sat, Dec 23, 2023 at 7:36â€¯PM Mario Marietto <marietto2008@gmail.com> wrote:
>>
>> I've added this parameter to bootxen.source :
>>
>> guest_loglvl=all
>>
>> bootxen.source :
>>
>> mmc dev 1
>> ext2load mmc 1:3 0x42000000 zImage-5.4.261-iommu-dma-on-xen
>> ext2load mmc 1:3 0x51000000 xen-4.17-armhf-armmp-0x51004000.ub
>> ext2load mmc 1:3 0x5ffec000 exynos5250-snow.dtb
>> fdt addr 0x5ffec000
>> fdt resize 1024
>> fdt set /chosen \#address-cells <0x2>
>> fdt set /chosen \#size-cells <0x2>
>> fdt set /chosen xen,xen-bootargs "console=dtuart dtuart=serial0 dom0_mem=1152M dom0_max_vcpus=2 bootscrub=0 vwfi=native guest_loglvl=all"
>> fdt mknod /chosen dom0
>> fdt set /chosen/dom0 compatible  "xen,linux-zimage" "xen,multiboot-module" "multiboot,module"
>> fdt set /chosen/dom0 reg <0x0 0x42000000 0x0 0x49F9A8 >
>> fdt set /chosen xen,dom0-bootargs "console=tty1 root=/dev/mmcblk1p4 rw rootwait clk_ignore_unused --no-log"
>> bootm 0x51000000 - 0x5ffec000
>>
>>
>> but when I try to boot FreeBSD I don't get more informations than usual :
>>
>> root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen# ./start-freebsd
>>
>> Parsing config from freebsd.cfg
>> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: Invalid kernel
>> libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
>> libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:cannot (re-)build domain: -3
>> libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-existent domain
>> libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Unable to destroy guest
>> libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruction of domain failed
>> freebsd is an invalid domain identifier (rc=-6)
>>
>> Are you aware about a new parameter that I can use to have more detailed debug information ?
>>
>> On Wed, Dec 20, 2023 at 5:52â€¯AM Warner Losh <imp@bsdimp.com> wrote:
>>>
>>> I'd think you'd need the right virtualization loader. I'm not entirely sure the u-boot.bin you've been creating is for a dom-u..
>>> If I misunderstood, then the below isn't good advice. Chain booting the u-boot, the first u-boot initializes things so you want
>>> to start with stage after the SPL. But the different error messages suggest that it's trying to reboot with kexec, which
>>> isn't supported on armv7 at the moment.
>>>
>>> If you could boot in kvm, I think that the following would work....  Though I'm not entirely sure how to
>>> specify the two .fd files in your setup. The use of qemu is to have an easy env to debug things... I don't
>>> have a chromebook to try...
>>>
>>> My first instinct would be to try qemu on x86 (this is the first step of many to get to your destination).
>>>
>>> If you could boot the GENERIC_SD image that we produce using qemu + edk2-arm-code.fd that would
>>> be a huge first step. This will give you the boot loader, I believe, to boot in the VM that you need better
>>> than going via the u-boot route. Since you are booting in a virtualized environment, I think it wouldn't
>>> matter which one :).
>>>
>>> So, I did the following to boot the virtualized armv7 FreeBSD environment, following a post on the forums I found and knew to have the right recipe:
>>> https://forums.freebsd.org/threads/run-boot-freebsd-arm-32bit-image-in-qemu.80765/
>>>
>>> 1. pkg install qemu
>>> 2. mkdir qemu-armv7-env
>>> 3. cd qemu-armv7-env
>>> 4. fetch https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/14.0/FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz
>>> 5. xz -d -T 0 FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz
>>> 6. dd if=/dev/zero of=pflash0.img bs=1m count=64
>>> 7. dd if=/dev/zero of=pflash1.img bs=1m count=64
>>> 8. dd if=/usr/local/share/qemu/edk2-arm-code.fd of=pflash0.img conv=notrunc
>>> 9. dd if=/usr/local/share/qemu/edk2-arm-vars.fd of=pflash1.img conv=notrunc
>>> 10. cat > start-freebsd-arm.sh
>>> #!/bin/sh
>>> qemu-system-arm \
>>>    -M virt \
>>>    -m 1024 \
>>>    -drive file=pflash0.img,format=raw,if=pflash,readonly=on \
>>>    -drive file=pflash1.img,format=raw,if=pflash \
>>>    -drive file=$1.img,if=virtio,cache=writethrough \
>>>    -nographic \
>>>    -serial mon:stdio
>>> ^D
>>> 11. chmod +x start-freebsd-arm.sh
>>> 12. ./start-freebsd-arm.sh FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD
>>>
>>> But I hit a snag with this on qemu 8.1.2 and 8.1.3 with both 13.2 and 140:
>>>
>>> Starting devd.
>>> Starting dhclient.
>>> DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 7
>>> Fatal kernel mode data abort: 'Alignment Fault' on read
>>> trapframe: 0xc4b36a60
>>> FSR=00000001, FAR=dd96701a, spsr=20000013
>>> r0 =00000000, r1 =00000001, r2 =00000001, r3 =c4b36b4c
>>> r4 =00000014, r5 =d6618800, r6 =dd96702e, r7 =0000022c
>>> r8 =00000000, r9 =0000022c, r10=dd96701a, r11=c4b36b90
>>> r12=4300ffff, ssp=c4b36af0, slr=c04a9728, pc =c04a9750
>>>
>>> panic: Fatal abort
>>> cpuid = 0
>>> time = 1680843057
>>> KDB: stack backtrace:
>>> #0 0xc035786c at kdb_backtrace+0x48
>>> #1 0xc02fdd20 at vpanic+0x140
>>> #2 0xc02fdbe0 at vpanic+0
>>> #3 0xc06304ac at abort_align+0
>>> #4 0xc063052c at abort_align+0x80
>>> #5 0xc063017c at abort_handler+0x480
>>> #6 0xc060f480 at exception_exit+0
>>> #7 0xc04a9750 at udp_input+0x288
>>> #8 0xc0473f54 at ip_input+0x1e0
>>> #9 0xc04447c0 at netisr_dispatch_src+0xf8
>>> #10 0xc043bf2c at ether_demux+0x1a4
>>> #11 0xc043d5e4 at ether_nh_input+0x480
>>> #12 0xc04447c0 at netisr_dispatch_src+0xf8
>>> #13 0xc043c404 at ether_input+0x50
>>> #14 0xc01c0838 at vtnet_rx_vq_process+0x880
>>> #15 0xc01b70d0 at vtpci_intx_intr+0xac
>>> #16 0xc02b87f0 at ithread_loop+0x2ec
>>> #17 0xc02b465c at fork_exit+0xc0
>>> Uptime: 19s
>>>
>>> I don't know if this is a problem with qemu or FreeBSD's kernel...
>>>
>>> Warner
>>>
>>> On Tue, Dec 19, 2023 at 3:25â€¯PM Mario Marietto <marietto2008@gmail.com> wrote:
>>>>
>>>> I've asked some help on the channel #arm on Reddit and someone replied :
>>>>
>>>> https://www.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_for_arm32_bit_as_domu_with/
>>>>
>>>> Maybe his answer can be useful to understand why it does not work.
>>>>
>>>> On Tue, Dec 19, 2023 at 8:33â€¯PM Stefano Stabellini <sstabellini@kernel.org> wrote:
>>>>>
>>>>> +Michal
>>>>>
>>>>> Hi Mario,
>>>>>
>>>>> I am not sure about booting FreeBSD, but I am certain that u-boot works
>>>>> fine as DomU kernel on ARMv8 (not sure about ARMv7). With this config
>>>>> file:
>>>>>
>>>>> name="test"
>>>>> kernel="u-boot.bin"
>>>>> extra = "console=hvc0"
>>>>> memory=256
>>>>> vcpus=1
>>>>> disk = [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>>>>>
>>>>> I don't know for sure if you can boot FreeBSD but you should definitely
>>>>> be able to see the u-boot command line prompt. The fact that you are
>>>>> getting this message:
>>>>>
>>>>> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: Invalid kernel
>>>>>
>>>>> Means that something is not right in the u-boot configuration or u-boot
>>>>> build. Michal and Artem (CCed) might know more. From what I recall,
>>>>> there was nothing special required to get u-boot.bin to boot as domU
>>>>> kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Stefano
>>>>>
>>>>>
>>>>> On Tue, 19 Dec 2023, Mario Marietto wrote:
>>>>>> ....I see that some other interesting files have been produced by u-boot when I have compiled it :
>>>>>>
>>>>>> u-boot
>>>>>> u-boot.lds
>>>>>> u-boot.bin
>>>>>> u-boot.map
>>>>>> u-boot-nodtb.bin
>>>>>> u-boot.dtb
>>>>>> u-boot.srec
>>>>>> u-boot-dtb.bin
>>>>>> u-boot.sym
>>>>>>
>>>>>> So,maybe I should use a different u-boot* file for booting FreeBSD ?
>>>>>>
>>>>>>
>>>>>> On Tue, Dec 19, 2023 at 4:28â€¯PM Mario Marietto <marietto2008@gmail.com> wrote:
>>>>>>        Hello to everyone.
>>>>>>
>>>>>> I have compiled the needed u-boot.bin from scratch using this procedure :
>>>>>>
>>>>>> # git clone https://github.com/u-boot/u-boot.git
>>>>>> # cd u-boot
>>>>>> # ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make snow_defconfig : this line generates the file .config
>>>>>> # nano .config and I've added these parameters :
>>>>>>
>>>>>> CONFIG_ARMV7_NONSEC=n
>>>>>> CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
>>>>>>
>>>>>> the uboot-bin file is generated with this command :
>>>>>>
>>>>>> # ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make
>>>>>>
>>>>>> At this point,I took a look inside the .config file and I saw that the parameter "CONFIG_ARMV7_NONSEC=n" has been removed. So,for
>>>>>> some reason,it is not accepted and this could be a problem....
>>>>>>
>>>>>> These are the xen config files that I've used :
>>>>>>
>>>>>> nano freebsd.cfg
>>>>>>
>>>>>> name="test"
>>>>>> kernel="u-boot.bin"
>>>>>> extra = "console=hvc0"
>>>>>> memory=256
>>>>>> vcpus=1
>>>>>> disk = [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
>>>>>>
>>>>>> nano start-freebsd
>>>>>>
>>>>>> xl create freebsd.cfg
>>>>>> xl console freebsd
>>>>>>
>>>>>> This is what happens when I launch the vm :
>>>>>>
>>>>>> # ./start-freebsd
>>>>>>
>>>>>> Parsing config from freebsd.cfg
>>>>>> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader found: Invalid kernel
>>>>>> libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image failed
>>>>>> libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:cannot (re-)build domain: -3
>>>>>> libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-existent domain
>>>>>> libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Unable to destroy guest
>>>>>> libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruction of domain failed
>>>>>> freebsd is an invalid domain identifier (rc=-6)
>>>>>>
>>>>>>
>>>>>> On Mon, Dec 18, 2023 at 12:39â€¯PM Mario Marietto <marietto2008@gmail.com> wrote:
>>>>>>        So,ok,I should have said "the second u-boot" ; since the first u-boot binary is the "u-boot binary located in the RO
>>>>>>        memory" of the Chromebook". Sorry for the confusion.
>>>>>>
>>>>>> On Mon, Dec 18, 2023 at 12:35â€¯PM Mario Marietto <marietto2008@gmail.com> wrote:
>>>>>>        ---> There are no specific options in u-boot devoted to FreeBSD
>>>>>>
>>>>>> This is an important factor. So,what about if,instead of compiling a new version of u-boot on the partition 2,I will
>>>>>> recompile the u-boot customized version created by the virtual open system in 2014,that should be installed on the first
>>>>>> partition ? It could work if there are no differences between the u-boot that should boot Linux and the u-boot that
>>>>>> should boot FreeBSD.
>>>>>>
>>>>>> Can you give a look at the u-boot source code created by virtual open systems ? You can find it on my google drive :
>>>>>>
>>>>>> https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/view?usp=sharing
>>>>>>
>>>>>> I need to understand if I can recompile it without problem so that it can satisfy my needs (the ability of the file
>>>>>> u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefano Stabellini,the xen developer that suggested to me
>>>>>> what I could do to have FreeBSD virtualized under Xen on my Arm Chromebook) ; otherwise the risk is to find later
>>>>>> problems that will make me troubles and that I will not able to fix.
>>>>>>
>>>>>> I gave a look at the virtual open system u-boot and I didn't see any arndale_defconfig inside. So,If I have understood
>>>>>> correctly,I should put that file inside the root of the u-boot source code,let's say here :
>>>>>>
>>>>>> marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # ls
>>>>>>
>>>>>> .checkpatch.conf        README                  doc                     net
>>>>>> .git                    api                     drivers                 onenand_ipl
>>>>>> .gitignore              arch                    dts                     post
>>>>>> COPYING                 board                   examples                rules.mk
>>>>>> CREDITS                 boards.cfg              fs                      scripts
>>>>>> MAINTAINERS             common                  include                 snapshot.commit
>>>>>> MAKEALL                 config.mk               lib                     spl
>>>>>> Makefile                cros                    mkconfig                test
>>>>>> PRESUBMIT.cfg           disk                    nand_spl                tools
>>>>>>
>>>>>> and I should do : make and make install ? and the file I need,u-bootbin will be generated ?
>>>>>>
>>>>>> I didn't find any pre made configuration file inside :
>>>>>>
>>>>>> u-boot-vos # find . -type f -name "exynos*"
>>>>>>
>>>>>> ./include/exynos-fb.h
>>>>>> ./include/configs/exynos5-common.h
>>>>>> ./doc/device-tree-bindings/spi/exynos-spi.txt
>>>>>> ./doc/device-tree-bindings/usb/exynos-usb.txt
>>>>>> ./drivers/power/exynos-tmu.c
>>>>>> ./drivers/power/exynos-cpufreq.c
>>>>>> ./drivers/video/exynos-fb.c
>>>>>> ./drivers/spi/exynos_spi.c
>>>>>> ./board/samsung/dts/exynos5250-spring.dts
>>>>>> ./board/samsung/dts/exynos5250-smdk5250.dts
>>>>>> ./board/samsung/dts/exynos5250-snow.dts
>>>>>> ./board/samsung/dts/exynos5250-daisy.dts
>>>>>> ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h
>>>>>> ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h
>>>>>> ./arch/arm/dts/exynos5250.dtsi
>>>>>> ./arch/arm/dts/exynos-periph-id.dtsi
>>>>>> ./arch/arm/cpu/armv7/exynos5/exynos_cache.c
>>>>>>
>>>>>> u-boot-vos # find . -type f -name "arndale*"
>>>>>>
>>>>>> For sure I can't use a newer version of u-boot because otherwise the patches needed to bypass the bootloader protections
>>>>>> of the Arm Chromebook (such as a lot of different patches needed to boot correctly Linux) will be broken ; anyway,since
>>>>>> it works,I don't need to use an updated version of u-boot.
>>>>>>
>>>>>> ----> As per my experience, you have to respect these two options, compiling u-boot for
>>>>>> FreeBSD: https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-master/files/FreeBSD_Fragment
>>>>>>
>>>>>> It says that I should use these parameters :
>>>>>>
>>>>>> CONFIG_ARMV7_NONSEC=n
>>>>>> CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
>>>>>>
>>>>>> These are the parameters used to configure a Linux kernel. I don't understand what's the relation between the compilation
>>>>>> of a linux kernel and u-boot. In the past I tried to recompile u-boot,but I didn't have the need to set up those
>>>>>> parameters,so I don't know how to do it (but I know how to recompile a Linux kernel).
>>>>>>
>>>>>> ---> I'm not sure that I'm getting you right, as I don't understand what you mean under "the first u-boot".
>>>>>>
>>>>>>
>>>>>> I'm talking about first u-boot because the whole procedure to boot Linux on the ARM Chromebook,that's explained here :
>>>>>>
>>>>>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
>>>>>>
>>>>>>
>>>>>> at some point they say :
>>>>>>
>>>>>>
>>>>>> To be able to run KVM on ARM platforms, the kernel has to be booted in hypervisor mode. Because of this relatively recent
>>>>>> requirement (due to the introduction of the virtualization extensions), up until now all booting methods would boot the
>>>>>> kernel in the standard Supervisor mode.
>>>>>>
>>>>>> For the ARM Chromebook the default boot procedure doesn't allow us to boot in hypervisor mode. Although the laptop's boot
>>>>>> mechanism is based on the frequently used u-boot, the binary is located in RO memory. Fortunately, a chained u-boot
>>>>>> mechanism can be used (i.e. starting another u-boot after the original). We can then enter hypervisor mode from our
>>>>>> custom iteration of u-boot and subsequently load our kernel and userspace.
>>>>>>
>>>>>> So,the first u-boot is the u-boot provided by virtual open systems,that's able to chainload the "u-boot binary located in
>>>>>> RO memory" , that does not boot Chrome OS in hypervisor mode. We don't need it if we want to boot Linux with kvm or xen
>>>>>> enabled.
>>>>>>
>>>>>>
>>>>>> On Sun, Dec 17, 2023 at 1:28â€¯AM Stanislav Silnicki <stanislav.silnicki@mailgate.us> wrote:
>>>>>>        I'm not an expert in the topic, I only know, that ARM has divided hardware into two worlds - Secure and
>>>>>>        Not-So, strictly limiting any software, running in non-secure world with access to functions and
>>>>>>        resources. https://developer.arm.com/documentation/den0013/d/Security/TrustZone-hardware-architecture?lang=en
>>>>>>
>>>>>> I'm not sure, that I'm getting you right, as I don't understand what you mean under "the first u-boot".
>>>>>>
>>>>>> As I understand, virtualization (HYP) is running in non-secure world(https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/The-Virtualization-Extens
>>>>>> ions), so my guess (only guess!!!), virtualization software has to prepare (configure) HW platform in the way,
>>>>>> that FreeBSD kernel will not lack any resources, required to configure MPU, VA, etc.
>>>>>> So, if you lucky to boot virtualizer, which is aware of target OS, that maybe you can boot the kernel. Although, I
>>>>>> doubt, that you need to boot 'second' u-boot to boot the kernel - there is simply ubldr, which you can hook somehow
>>>>>> from virtualizer....
>>>>>>
>>>>>> Stan
>>>>>>
>>>>>>
>>>>>>
>>>>>> Mario Marietto wrote:
>>>>>>
>>>>>>
>>>>>>        ---> As I understand, it makes sure that u-boot keeps in secure mode during boot and passes control to
>>>>>>        ubldr, which boots FreeBSD kernel, in that mode.
>>>>>>
>>>>>> Can you elaborate your sentence more ? I know that the bootloader secure mode is bypassed by the virtual open
>>>>>> systems u-boot. Are you saying that when the control passes to the second u-boot,it will happen in secure
>>>>>> mode,so that the bypass that happened loading the first u-boot,is annulled ? If this is true,maybe can I boot
>>>>>> FreeBSD using the virtual-open-system custom u-boot ? Is this compatible with FreeBSD ? Where can I find the
>>>>>> u-boot.bin that the xen developer talked about ? thanks bro'.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sun, Dec 17, 2023 at 12:35â€¯AM Stanislav Silnicki <stanislav.silnicki@mailgate.us> wrote:
>>>>>>        Hi Mario,
>>>>>>
>>>>>> U-Boot  beast is hiding in this den: https://source.denx.de/u-boot/u-boot.git
>>>>>> I took a brief look at your post and it seems to me, that option CONFIG_CMO_BY_VA_ONLY is irrelevant to
>>>>>> your target armv7 32 bit
>>>>>> platform: https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/cpu/armv8/Kconfig?ref_type=heads#L3
>>>>>>
>>>>>> As for compiling the u-boot, it is a doable task, given that you understand what you are doing. There
>>>>>> are no specific options in u-boot devoted to FreeBSD. It is a boot loader, whose mission to make basic
>>>>>> hardware initialization, read you kernel file from some media into RAM and then pass it control.
>>>>>>
>>>>>> Basically, you can grab some defconfig, prepared for any other Exynos5250 based board  (say, this one:
>>>>>> https://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale_defconfig?ref_type=heads) and adopt
>>>>>> it somehow.
>>>>>>
>>>>>> As per my experience, you have to respect these two options, compiling u-boot for
>>>>>> FreeBSD: https://github.com/freebsd/freebsd-ports/blob/main/sysutils/u-boot-master/files/FreeBSD_Fragment
>>>>>>
>>>>>> As I understand, it makes sure, that u-boot keeps in secure mode during boot and passes control to
>>>>>> ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a lot of surprises you may realize.
>>>>>>
>>>>>> Hope, this will help to progress you tasks
>>>>>> Stan
>>>>>>
>>>>>> Mario Marietto wrote:
>>>>>>
>>>>>>
>>>>>>        Hello.
>>>>>>
>>>>>>        I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM Chromebook. Basically there are
>>>>>>        two ways to accomplish this task :
>>>>>>
>>>>>>        1) to write a patch that allows the FreeBSD kernel to boot as a zImage file. This could be
>>>>>>        accomplished applying this patch to a specific file that's on the source code of FreeBSD :
>>>>>>
>>>>>>
>>>>>>        https://xenbits.xen.org/gitweb/?p=p...8;hb=0782e25d98cc1391472717035f986c979edef0c9
>>>>>>
>>>>>>
>>>>>>        This patch was written by Julien Grall a lot of time ago and now it does not work anymore.
>>>>>>        This is the reason :
>>>>>>
>>>>>>
>>>>>>              It appears FreeBSD-CURRENT removed the last step converting the kernel file to
>>>>>>              kernel.bin. The patch can be readily rebased, but without kernel.bin that
>>>>>>              doesn't do too much
>>>>>>
>>>>>>
>>>>>>
>>>>>> So,without a rebase of that patch the first option is not applicable And I'm not able to fix it.
>>>>>>
>>>>>> 2) booting FreeBSD using U-Boot,as explained to me by a xen developer :
>>>>>>
>>>>>>
>>>>>>        I was trying to explain why and how Julien's patch works so that you could be the one
>>>>>>        to re-do something similar or fix the patch on the FreeBSD kernel that you are
>>>>>>        working with. I am happy to help review and write patches but I don't work with the
>>>>>>        FreeBSD kernel so I wouldn't be able to help you quickly. However, I might have a
>>>>>>        suggestion. Do you know if FreeBSD can be booted by U-Boot ? Because U-Boot
>>>>>>        definitely boots as Xen on ARM guest firmware/bootloader. You should be able to build
>>>>>>        U-Boot and use the U-Boot binary as Xen guest kernel, then U-Boot could load FreeBSD
>>>>>>        from disk or network and start it. For instance as domU config file:
>>>>>>
>>>>>>        kernel="/home/petalinux/u-boot.bin"
>>>>>>        disk = [ '/home/petalinux/test.img,raw,xvda' ]
>>>>>>
>>>>>>        I know it is important to build u-boot with the following config to make it work on
>>>>>>        Xen.
>>>>>>
>>>>>>        CONFIG_CMO_BY_VA_ONLY=y
>>>>>>
>>>>>>
>>>>>>
>>>>>> This option seems more doable to me according to my knowledge. But I need to understand how to do
>>>>>> it.
>>>>>>
>>>>>> Well,let's say that on the ARM Chromebook I'm forced to use and install a customized version of
>>>>>> u-boot,created by virtual open systems,because it is the only one that allows bypassing its
>>>>>> bootloader protection. You can find more information here :
>>>>>>
>>>>>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/?vos=tech
>>>>>>
>>>>>> This is the relevant section to read :
>>>>>>
>>>>>>
>>>>>>        Bootloader :
>>>>>>
>>>>>>        If you wish to skip this chapter you can download a pre-compiled binary of the
>>>>>>        bootloader:
>>>>>>
>>>>>>
>>>>>>        $ wget
>>>>>>        http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-boot-snow.kpart
>>>>>>
>>>>>>
>>>>>>        To be able to run KVM on ARM platforms, the kernel has to be booted in hypervisor
>>>>>>        mode. Because of this relatively recent requirement (due to the introduction of the
>>>>>>        virtualization extensions), up until now all booting methods would boot the kernel in
>>>>>>        the standard Supervisor mode. For the ARM Chromebook the default boot procedure
>>>>>>        doesn't allow us to boot in hypervisor mode. Although the laptop's boot mechanism is
>>>>>>        based on the frequently used u-boot, the binary is located in RO memory. Fortunately,
>>>>>>        a chained u-boot mechanism can be used (i.e. starting another u-boot after the
>>>>>>        original). We can then enter hypervisor mode from our custom iteration of u-boot and
>>>>>>        subsequently load our kernel and userspace.
>>>>>>
>>>>>>        Checkout the needed u-boot code :
>>>>>>
>>>>>>
>>>>>>        $ git clone git://github.com/virtualopensystems/u-boot.git$ cd u-boot$
>>>>>>        ./scripts/build.sh
>>>>>>
>>>>>>
>>>>>>        If successful, a message about how to copy the bootloader on the USB flash disk or SD
>>>>>>        card will appear. We will use it later when preparing the boot medium to start our
>>>>>>        system. If you have followed the Setting up the boot medium chapter and you have a
>>>>>>        prepared boot device, then you can update u-boot by running :
>>>>>>
>>>>>>
>>>>>>        $ sudo dd if=nv_uboot-snow.kpart of=/dev/sdX1
>>>>>>
>>>>>>
>>>>>>
>>>>>> so,the needed u-boot that we must use should be installed on the first partition of the sd card.
>>>>>>
>>>>>> There is another relevant section to read :
>>>>>>
>>>>>>
>>>>>>        Setting up the boot medium
>>>>>>
>>>>>>        Now it is time to copy all the relevant files that we created in the previous
>>>>>>        chapters,and use them to boot Chromebook with a different kernel and OS. In all these
>>>>>>        examples the device /dev/sdX is used. Take extra care to change the examples to the
>>>>>>        device that you have attached. Insert the boot medium on your workstation and
>>>>>>        carefully execute the following step. First we need to properly format the boot
>>>>>>        medium.
>>>>>>
>>>>>>        In the uboot source directory :
>>>>>>
>>>>>>
>>>>>>        $ sudo ./scripts/sdcard.sh /dev/sdX
>>>>>>
>>>>>>
>>>>>>        This will erase all data and create 4 partitions in the medium, along with copying
>>>>>>        the u-boot binary to the first partition:
>>>>>>
>>>>>>
>>>>>>        Partition 1 = ChromeOS signed binary (V.O.S chained u-boot)
>>>>>>        Partition 2 = not used
>>>>>>        Partition 3 = EXT2 partition for u-boot files (uImage and exynos5250-snow.dtb)
>>>>>>        Partition 4 = EXT4 partition for userspace files
>>>>>>
>>>>>>
>>>>>>        With u-boot being copied, next is the kernel image and DTB file. From the kernel
>>>>>>        source execute :
>>>>>>
>>>>>>
>>>>>>        $ mkdir ../mnt/
>>>>>>        $ sudo mount /dev/sdX3 ../mnt/
>>>>>>        $ sudo cp arch/arm/boot/uImage ../mnt/
>>>>>>        $ sudo cp arch/arm/boot/dts/exynos5250-snow.dtb ../mnt/
>>>>>>        $ sudo umount /dev/sdX3
>>>>>>
>>>>>>
>>>>>>        Finally, we have to copy the Ubuntu userspace filesystem that we created earlier:
>>>>>>
>>>>>>
>>>>>>        $ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./precise/* mnt/$ sudo umount /dev/sdX4
>>>>>>
>>>>>>
>>>>>>
>>>>>> Now,my idea is to chainload the already chain loaded u-boot created by V.O.S to the new u-boot
>>>>>> that we need for booting FreeBSD and that can be installed in the partition n.2,as shown in this
>>>>>> scheme,because it is not used :
>>>>>>
>>>>>>
>>>>>> Partition 1 = ChromeOS signed binary (V.O.S chained u-boot)
>>>>>> Partition 2 = not used (maybe we can install the u-boot for arm 32 bit,compatible with FreeBSD on
>>>>>> this partition)
>>>>>> Partition 3 = EXT2 partition for u-boot files (uImage and exynos5250-snow.dtb)
>>>>>> Partition 4 = EXT4 partition for userspace files
>>>>>>
>>>>>>
>>>>>> Take in consideration that default boot string is hardcoded here,in the snow.h file of the custom
>>>>>> u-boot created by VOS :
>>>>>>
>>>>>>
>>>>>> https://github.com/virtualopensyste...18a39b6c177dff58a/include/configs/snow.h#L101
>>>>>>
>>>>>>
>>>>>> and it needs to be recompiled because it should point to the partition n.2,where I will install
>>>>>> the u-boot files as explained here :
>>>>>>
>>>>>>
>>>>>> https://wiki.freebsd.org/arm/Chromebook
>>>>>>
>>>>>>
>>>>>> I have some questions to ask before I start working on this.
>>>>>>
>>>>>> 1) The xen developer said :
>>>>>>
>>>>>>
>>>>>>        You should be able to build U-Boot and use the U-Boot binary as Xen guest kernel...
>>>>>>
>>>>>>
>>>>>>
>>>>>> where is the u-boot binary,according to this document ?
>>>>>>
>>>>>> https://wiki.freebsd.org/arm/Chromebook
>>>>>>
>>>>>> I don't see it.
>>>>>>
>>>>>>
>>>>>> 2) where is the source code of the file that I can get here :
>>>>>>
>>>>>> http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/nv_uboot-snow-simplefb.kpart.bz2
>>>>>>
>>>>>> I need the source code if I want to recompile u-boot so that it can point to the partition 4.
>>>>>>
>>>>>> Maybe it can be found on this link :
>>>>>>
>>>>>> http://linux-exynos.org/dist/chromebook/nv_uboot/
>>>>>>
>>>>>> but it can't be opened....
>>>>>>
>>>>>>
>>>>>> 3) in this specific scenario the source code of u-boot should run on arm 32 bit,not on arm
>>>>>> 64,because I have the Samsung Chromebook "SNOW" model XE303C12,that's powered by a Samsung Exynos
>>>>>> 5250 (ARMv7 32 bit Cortex A15) Soc.
>>>>>>
>>>>>>
>>>>>> 4) I'm not sure if I can chainload the customized u-boot created by V.O.S that should be
>>>>>> installed on the first partition with the u-boot tailored for booting FreeBSD that should be
>>>>>> installed on the partition 2....
>>>>>>
>>>>>>
>>>>>> 5) the xen developer said that u-boot should be compiled enabling this option :
>>>>>>
>>>>>>
>>>>>> Code:
>>>>>>
>>>>>> CONFIG_CMO_BY_VA_ONLY=y
>>>>>>
>>>>>>
>>>>>> Well,can you provide some good source that can help me to understand how I can recompile u-boot
>>>>>> for FreeBSD ? thanks.
>>>>>>
>>>>>> --
>>>>>> Mario.
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mario.
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mario.
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mario.
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mario.
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mario.
>>>>>>
>>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Mario.
>>
>>
>>
>> --
>> Mario.
> 
> 
> 
> --
> Mario.
> 

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Dec 30 12:45:49 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Dec 2023 12:45:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660287.1029861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJYid-0001g6-7K; Sat, 30 Dec 2023 12:45:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660287.1029861; Sat, 30 Dec 2023 12: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 1rJYid-0001fz-3w; Sat, 30 Dec 2023 12:45:35 +0000
Received: by outflank-mailman (input) for mailman id 660287;
 Sat, 30 Dec 2023 12:45: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=ceJ3=IJ=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rJYib-0001fn-6R
 for xen-devel@lists.xenproject.org; Sat, 30 Dec 2023 12:45:33 +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 4ee394fa-a711-11ee-98ee-6d05b1d4d9a1;
 Sat, 30 Dec 2023 13:45:29 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a2331e7058aso898188666b.2
 for <xen-devel@lists.xenproject.org>; Sat, 30 Dec 2023 04:45:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ee394fa-a711-11ee-98ee-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703940327; x=1704545127; 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=bPCbbRUS1CrLGmmvlSHwH0vrk0FlX5arqnSW5aeFwJo=;
        b=FqWkB8CU70JiclVVAZWL163MUV9+KK912TjZMzfjPQiSPj9HN13xc6EMLYGnfquu60
         VYzLATn49KYCbTUHD7P+EB3mzLz6vmlGcifxCtycyInSwbBbrYZSTavypkuyoasG95cE
         HnjVJy7WpqeQhbsv6EnEDQHwvH6/mhS6rymklDXqyYGmXZhdz3CWnSIj8h6luTLvqPVr
         CRNH1b8cHkHErAiDAaV+5twY+vXANA0ElVHqyrJa/dcua4NLO0euVc9IYZxRSkCpJwWC
         d1r8/bFCUBu0HWb/DUWg14E27AP4Otr+G9QeHDCK3SNvQa8z8RfFuTNaol35kgj62N6j
         Nvvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703940327; x=1704545127;
        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=bPCbbRUS1CrLGmmvlSHwH0vrk0FlX5arqnSW5aeFwJo=;
        b=tYyoxqlVFRBuP688VE/tRXjI4EPTnkpChMYP/t5wtNBAdv1Fxn0jIn67OrymexDpeh
         lMFf12QygJpyYofKESIrxsD2/c9YcHDNgjXwbyLeQvCZhgeVBlPnUO0hnbQwFxbfs7ya
         HzJkQeaBqESNM6D9xE/xFomLfmGtqOem41pfCiDIFA6Ti0jBQusjpei4TGwN3FoDb6oI
         B0abYMGHrPsC83D0q3GXOa2s3CiXDAKaljX6ea6SMeKg7HUCWeWU27RVcMNlRWI0pWuw
         O3LUlnMT6Jpbo27DGpx7z60k1FpzQ51o2cTBl2Ss9maBarabIdH4wFnE+ytHLaQM0Hco
         SfhQ==
X-Gm-Message-State: AOJu0YzxG06Ow7km2rBa6An1/8u8gJB5HoCJAPuwg1sxGCXDUALq+UKf
	dMLeaU5jAaKeW5nEh4pAWLo+psPrt8jxBdT/C6o=
X-Google-Smtp-Source: AGHT+IE/4hBv5expw63ZixrQDAN/WQk4agJhxcM/Pnhnru9gnhTupPDdMtZqk3YQeLhZTinDhT03EXYTWNJTJdhdwBc=
X-Received: by 2002:a17:907:9496:b0:a23:3aff:2a05 with SMTP id
 dm22-20020a170907949600b00a233aff2a05mr4157508ejc.112.1703940326354; Sat, 30
 Dec 2023 04:45:26 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us> <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us> <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
 <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
 <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com>
 <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com>
 <CA+1FSigREr=aSHOBMbEK9CaoKzNnKC-6sE=Ui8ovVwnMaZgZhQ@mail.gmail.com>
 <CA+1FSigVW+kS37ZuGeBsr58BfPS10fjptfOnvTbaUOZ7VrUBgg@mail.gmail.com> <5ce9eea4-500c-4f06-a7f5-363a0e0d5178@xen.org>
In-Reply-To: <5ce9eea4-500c-4f06-a7f5-363a0e0d5178@xen.org>
From: Mario Marietto <marietto2008@gmail.com>
Date: Sat, 30 Dec 2023 13:44:49 +0100
Message-ID: <CA+1FSig+UziZ9BsqJp3U5eAR1Qj+PFufgEd7KwoDNo1wspHUYg@mail.gmail.com>
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM Chromebook
To: Julien Grall <julien@xen.org>
Cc: Warner Losh <imp@bsdimp.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Stanislav Silnicki <stanislav.silnicki@mailgate.us>, freebsd-arm@freebsd.org, 
	Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> https://src.fedoraproject.org/repo/pkgs/uboot-tools/u-boot-2017.05.tar.bz=
2/sha512/be270f9242a72b05463092a022bbabd54996762de1ff23bf7575124ac02e62f495=
72a4e2f6f571a5019047d40027e56e35593b5cc373c4a5a39b100c3377ba93/

> This source code has no support for Xen guests. This was only added in 20=
20. Can you clarify why you can't use the latest upstream U-boot?

It's true. I've got the source code of that custom u-boot
implementation in the wrong place. This is the right place :

https://forum.doozan.com/read.php?3,49039

an u-boot / xen developer suggested to me to explore that site because
there is the one and only u-boot customized and off the tree version
that can chainload the freebsd bootloader "ubldr". Unfortunately to
work the FreeBSD rootfs should be compiled with armV5,but my ARM
Chromebook works with armV7. I don't know if armV7 is retrocompatible
with armV5.
In addition,armV5 has been removed from FreeBSD starting from version
12. Infact Balanga used FreeBSD 11.2. FreeBSD 11 has gone EOL for
several years and it's very hard to make it in a usable state today.

---> In fact, there are some missing low-level layers (e.g.
hypercalls) in order to properly use it for 32-bit domU. I don't know
if there is support out-of-tree.

@Elliott Mitchell some time ago concerning that point,said :

I've only ever tried arm64, but since arm32 didn't appear to need much
to be operational I tried to make it possible.  In theory it
/should/work on arm32, but I've never tried it.  What was missing was
I had never added it to the configuration and one link was needed.
Updated "submit" branch has a tiny adjustment. (the only difference is
the hypercall wrappers, register naming and where the op code goes,
very simple compatibility)

I'm not experienced,but it seems to me that only a few patches are
needed to make the job done.

---> Do you have a tree with FreeBSD + your patches? I would like to
check the zImage code.

my patches ? Are you talking about the patches that should have been
used on the @Elliott Mitchell github ?

https://gitlab.com/ehem/freebsd-src.git

yes,I tried to use his code but I've got the same error "invalid kernel"

Elliott also said :

---> Julien Grall's patches are very much PoC.  As such I've done a
lot of updating. Take a look at branch "submit":

https://gitlab.com/ehem/freebsd-src.git

Problem is that FreeBSD's interrupt situation is troublesome.  Rather
than 1 interrupt framework, there are 4.  Each has different built-in
assumptions.  "INTRNG" was designed for ARM and deliberately threw
away the x86 assumptions, but then added other assumptions. I've got
it working, just I'm stuck.

He said that it should work,but I get the error "invalid kernel".


It seems there is the need to write a patch that allows the FreeBSD
kernel to boot as a zImage file. This could be accomplished applying
this patch to a specific file that's on the source code of FreeBSD :

https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98cc1391472717035f98=
6c979edef0c9

This patch was written by Julien Grall a lot of time ago and now it
does not work anymore. This is the reason explain by the xen
developers :

It appears FreeBSD-CURRENT removed the last step converting the kernel
file to kernel.bin.The patch can be readily rebased, but without
kernel.bin that doesn't do too much. So,without a rebase of that patch
the first option is not applicable.

Even in this case,it seems that the job is not particularly complicated....

Thanks.

On Sat, Dec 30, 2023 at 11:05=E2=80=AFAM Julien Grall <julien@xen.org> wrot=
e:
>
>
>
> On 28/12/2023 16:25, Mario Marietto wrote:
> > Hello.
>
> Hi,
>
> > I'm trying to compile u-boot-2017.05 (because it can boot a 32-bit ARM
> > board. It is an out-of-tree u-boot build that can execute the ubldr to
> > boot FreeBSD. I found it here :
> >
> > https://src.fedoraproject.org/repo/pkgs/uboot-tools/u-boot-2017.05.tar.=
bz2/sha512/be270f9242a72b05463092a022bbabd54996762de1ff23bf7575124ac02e62f4=
9572a4e2f6f571a5019047d40027e56e35593b5cc373c4a5a39b100c3377ba93/
>
> This source code has no support for Xen guests. This was only added in
> 2020. Can you clarify why you can't use the latest upstream U-boot?
>
> >
> > It has been suggested to me by the U-Boot Xen maintainers. Infact one
> > of them said :
> >
> >
> > Yes, it can boot a 32-bit ARM board. I'm not a FreeBSD person, but
> > I've helped a FreeBSD user booting a 32-bit ARM box with u-boot
> > (GoFlexHome Marvell Kirkwood 6281). The u-boot version was 2017.05.
> > I used an out-of-tree u-boot build. This u-boot executed the ubldr to
> > boot FreeBSD. Please see here :
> > https://forum.doozan.com/read.php?3,49039,82059#msg-82059 >
> >
> > So. I tried to compile it directly on my ARM Chromebook,but it failed.
> > And it also fails if compiled with "ARCH=3Darm
> > CROSS_COMPILE=3Darm-linux-gnueabihf-" on my Ubuntu 23.04 x86_64
> > workstation :
> >
> >
> > /Chromebook/freebsd-xen/domU-freebsd/bootloaders/u-boot-2017.05# make
> > snow_defconfig
>
> IIUC, you want to boot FreeBSD in a DomU. So you need to build U-boot
> using a Xen specific configuration. Looking at the code, I can find
> xenguest_arm64_defconfig but there are no equivalent for arm32.
>
> In fact, there are some missing low-level layer (e.g. hypercalls) in
> order to properly use it for 32-bit domU. I don't know if there are
> support out-of-tree.
>
> So you will probably need to tweak U-boot for your setup.
>
> Looking at the other thread, you seem to have also tried to load the
> binary from xl.
>
>  From the below error, it sounds like you are trying to boot an ELF
> rather than a zImage:
>
> xc: error: panic: xg_dom_elfloader.c:63: xc_dom_guest_type: image not
> capable of booting inside a HVM container: Invalid kernel
>
> Do you have a tree with FreeBSD + your patches? I would like to check
> the zImage code.
>
> Cheers,
>
> [1]
> http://lore.kernel.org/CA+1FSii6RRM7G52kPrD80+yR=3DgiWcB8--kpGDDQkkEK=3D0=
dnCmw@mail.gmail.com
>
> >
> >   HOSTCC  scripts/basic/fixdep
> >    HOSTCC  scripts/kconfig/conf.o
> >    HOSTCC  scripts/kconfig/zconf.tab.o
> >    HOSTLD  scripts/kconfig/conf
> > #
> > # configuration written to .config
> > #
> >
> >
> > /Chromebook/freebsd-xen/domU-freebsd/bootloaders/u-boot-2017.05# make
> >
> > scripts/kconfig/conf  --silentoldconfig Kconfig
> >    CHK     include/config.h
> >    CFG     u-boot.cfg
> >    GEN     include/autoconf.mk
> >    GEN     include/autoconf.mk.dep
> >    CFG     spl/u-boot.cfg
> >    GEN     spl/include/autoconf.mk
> >    CHK     include/config/uboot.release
> >    CHK     include/generated/version_autogenerated.h
> >    UPD     include/generated/version_autogenerated.h
> >    CHK     include/generated/timestamp_autogenerated.h
> >    UPD     include/generated/timestamp_autogenerated.h
> >    CC      lib/asm-offsets.s
> > gcc: error: unrecognized -march target: armv5
> > gcc: note: valid arguments are: armv4 armv4t armv5t armv5te armv5tej
> > armv6 armv6j armv6k armv6z armv6kz armv6zk armv6t2 armv6-m armv6s-m
> > armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a armv8.1-a
> > armv8.2-a armv8.3-a armv8.4-a
> > armv8.5-a armv8.6-a armv8-m.base armv8-m.main armv8-r armv8.1-m.main
> > armv9-a iwmmxt iwmmxt2 native; did you mean =E2=80=98armv4=E2=80=99?
> > gcc: error: missing argument to =E2=80=98-march=3D=E2=80=99
> > make[1]: *** [Kbuild:44: lib/asm-offsets.s] Errore 1
> > make: *** [Makefile:1287: prepare0] Errore 2
> >
> > What should I do to compile it succesfully ?
> >
> > On Sat, Dec 23, 2023 at 7:36=E2=80=AFPM Mario Marietto <marietto2008@gm=
ail.com> wrote:
> >>
> >> I've added this parameter to bootxen.source :
> >>
> >> guest_loglvl=3Dall
> >>
> >> bootxen.source :
> >>
> >> mmc dev 1
> >> ext2load mmc 1:3 0x42000000 zImage-5.4.261-iommu-dma-on-xen
> >> ext2load mmc 1:3 0x51000000 xen-4.17-armhf-armmp-0x51004000.ub
> >> ext2load mmc 1:3 0x5ffec000 exynos5250-snow.dtb
> >> fdt addr 0x5ffec000
> >> fdt resize 1024
> >> fdt set /chosen \#address-cells <0x2>
> >> fdt set /chosen \#size-cells <0x2>
> >> fdt set /chosen xen,xen-bootargs "console=3Ddtuart dtuart=3Dserial0 do=
m0_mem=3D1152M dom0_max_vcpus=3D2 bootscrub=3D0 vwfi=3Dnative guest_loglvl=
=3Dall"
> >> fdt mknod /chosen dom0
> >> fdt set /chosen/dom0 compatible  "xen,linux-zimage" "xen,multiboot-mod=
ule" "multiboot,module"
> >> fdt set /chosen/dom0 reg <0x0 0x42000000 0x0 0x49F9A8 >
> >> fdt set /chosen xen,dom0-bootargs "console=3Dtty1 root=3D/dev/mmcblk1p=
4 rw rootwait clk_ignore_unused --no-log"
> >> bootm 0x51000000 - 0x5ffec000
> >>
> >>
> >> but when I try to boot FreeBSD I don't get more informations than usua=
l :
> >>
> >> root@devuan-bunsen:/mnt/zroot2/zroot2/OS/Chromebook/domU/freebsd-xen# =
./start-freebsd
> >>
> >> Parsing config from freebsd.cfg
> >> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader fou=
nd: Invalid kernel
> >> libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image fai=
led
> >> libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1:can=
not (re-)build domain: -3
> >> libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:Non-e=
xistent domain
> >> libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain 1:Un=
able to destroy guest
> >> libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Destruct=
ion of domain failed
> >> freebsd is an invalid domain identifier (rc=3D-6)
> >>
> >> Are you aware about a new parameter that I can use to have more detail=
ed debug information ?
> >>
> >> On Wed, Dec 20, 2023 at 5:52=E2=80=AFAM Warner Losh <imp@bsdimp.com> w=
rote:
> >>>
> >>> I'd think you'd need the right virtualization loader. I'm not entirel=
y sure the u-boot.bin you've been creating is for a dom-u..
> >>> If I misunderstood, then the below isn't good advice. Chain booting t=
he u-boot, the first u-boot initializes things so you want
> >>> to start with stage after the SPL. But the different error messages s=
uggest that it's trying to reboot with kexec, which
> >>> isn't supported on armv7 at the moment.
> >>>
> >>> If you could boot in kvm, I think that the following would work....  =
Though I'm not entirely sure how to
> >>> specify the two .fd files in your setup. The use of qemu is to have a=
n easy env to debug things... I don't
> >>> have a chromebook to try...
> >>>
> >>> My first instinct would be to try qemu on x86 (this is the first step=
 of many to get to your destination).
> >>>
> >>> If you could boot the GENERIC_SD image that we produce using qemu + e=
dk2-arm-code.fd that would
> >>> be a huge first step. This will give you the boot loader, I believe, =
to boot in the VM that you need better
> >>> than going via the u-boot route. Since you are booting in a virtualiz=
ed environment, I think it wouldn't
> >>> matter which one :).
> >>>
> >>> So, I did the following to boot the virtualized armv7 FreeBSD environ=
ment, following a post on the forums I found and knew to have the right rec=
ipe:
> >>> https://forums.freebsd.org/threads/run-boot-freebsd-arm-32bit-image-i=
n-qemu.80765/
> >>>
> >>> 1. pkg install qemu
> >>> 2. mkdir qemu-armv7-env
> >>> 3. cd qemu-armv7-env
> >>> 4. fetch https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/1=
4.0/FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz
> >>> 5. xz -d -T 0 FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD.img.xz
> >>> 6. dd if=3D/dev/zero of=3Dpflash0.img bs=3D1m count=3D64
> >>> 7. dd if=3D/dev/zero of=3Dpflash1.img bs=3D1m count=3D64
> >>> 8. dd if=3D/usr/local/share/qemu/edk2-arm-code.fd of=3Dpflash0.img co=
nv=3Dnotrunc
> >>> 9. dd if=3D/usr/local/share/qemu/edk2-arm-vars.fd of=3Dpflash1.img co=
nv=3Dnotrunc
> >>> 10. cat > start-freebsd-arm.sh
> >>> #!/bin/sh
> >>> qemu-system-arm \
> >>>    -M virt \
> >>>    -m 1024 \
> >>>    -drive file=3Dpflash0.img,format=3Draw,if=3Dpflash,readonly=3Don \
> >>>    -drive file=3Dpflash1.img,format=3Draw,if=3Dpflash \
> >>>    -drive file=3D$1.img,if=3Dvirtio,cache=3Dwritethrough \
> >>>    -nographic \
> >>>    -serial mon:stdio
> >>> ^D
> >>> 11. chmod +x start-freebsd-arm.sh
> >>> 12. ./start-freebsd-arm.sh FreeBSD-14.0-RELEASE-arm-armv7-GENERICSD
> >>>
> >>> But I hit a snag with this on qemu 8.1.2 and 8.1.3 with both 13.2 and=
 140:
> >>>
> >>> Starting devd.
> >>> Starting dhclient.
> >>> DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 7
> >>> Fatal kernel mode data abort: 'Alignment Fault' on read
> >>> trapframe: 0xc4b36a60
> >>> FSR=3D00000001, FAR=3Ddd96701a, spsr=3D20000013
> >>> r0 =3D00000000, r1 =3D00000001, r2 =3D00000001, r3 =3Dc4b36b4c
> >>> r4 =3D00000014, r5 =3Dd6618800, r6 =3Ddd96702e, r7 =3D0000022c
> >>> r8 =3D00000000, r9 =3D0000022c, r10=3Ddd96701a, r11=3Dc4b36b90
> >>> r12=3D4300ffff, ssp=3Dc4b36af0, slr=3Dc04a9728, pc =3Dc04a9750
> >>>
> >>> panic: Fatal abort
> >>> cpuid =3D 0
> >>> time =3D 1680843057
> >>> KDB: stack backtrace:
> >>> #0 0xc035786c at kdb_backtrace+0x48
> >>> #1 0xc02fdd20 at vpanic+0x140
> >>> #2 0xc02fdbe0 at vpanic+0
> >>> #3 0xc06304ac at abort_align+0
> >>> #4 0xc063052c at abort_align+0x80
> >>> #5 0xc063017c at abort_handler+0x480
> >>> #6 0xc060f480 at exception_exit+0
> >>> #7 0xc04a9750 at udp_input+0x288
> >>> #8 0xc0473f54 at ip_input+0x1e0
> >>> #9 0xc04447c0 at netisr_dispatch_src+0xf8
> >>> #10 0xc043bf2c at ether_demux+0x1a4
> >>> #11 0xc043d5e4 at ether_nh_input+0x480
> >>> #12 0xc04447c0 at netisr_dispatch_src+0xf8
> >>> #13 0xc043c404 at ether_input+0x50
> >>> #14 0xc01c0838 at vtnet_rx_vq_process+0x880
> >>> #15 0xc01b70d0 at vtpci_intx_intr+0xac
> >>> #16 0xc02b87f0 at ithread_loop+0x2ec
> >>> #17 0xc02b465c at fork_exit+0xc0
> >>> Uptime: 19s
> >>>
> >>> I don't know if this is a problem with qemu or FreeBSD's kernel...
> >>>
> >>> Warner
> >>>
> >>> On Tue, Dec 19, 2023 at 3:25=E2=80=AFPM Mario Marietto <marietto2008@=
gmail.com> wrote:
> >>>>
> >>>> I've asked some help on the channel #arm on Reddit and someone repli=
ed :
> >>>>
> >>>> https://www.reddit.com/r/arm/comments/18mcir8/i_cant_boot_freebsd_fo=
r_arm32_bit_as_domu_with/
> >>>>
> >>>> Maybe his answer can be useful to understand why it does not work.
> >>>>
> >>>> On Tue, Dec 19, 2023 at 8:33=E2=80=AFPM Stefano Stabellini <sstabell=
ini@kernel.org> wrote:
> >>>>>
> >>>>> +Michal
> >>>>>
> >>>>> Hi Mario,
> >>>>>
> >>>>> I am not sure about booting FreeBSD, but I am certain that u-boot w=
orks
> >>>>> fine as DomU kernel on ARMv8 (not sure about ARMv7). With this conf=
ig
> >>>>> file:
> >>>>>
> >>>>> name=3D"test"
> >>>>> kernel=3D"u-boot.bin"
> >>>>> extra =3D "console=3Dhvc0"
> >>>>> memory=3D256
> >>>>> vcpus=3D1
> >>>>> disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
> >>>>>
> >>>>> I don't know for sure if you can boot FreeBSD but you should defini=
tely
> >>>>> be able to see the u-boot command line prompt. The fact that you ar=
e
> >>>>> getting this message:
> >>>>>
> >>>>> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader =
found: Invalid kernel
> >>>>>
> >>>>> Means that something is not right in the u-boot configuration or u-=
boot
> >>>>> build. Michal and Artem (CCed) might know more. From what I recall,
> >>>>> there was nothing special required to get u-boot.bin to boot as dom=
U
> >>>>> kernel, so now I wonder if it is an ARMv7 vs. ARMv8 issue.
> >>>>>
> >>>>> Cheers,
> >>>>>
> >>>>> Stefano
> >>>>>
> >>>>>
> >>>>> On Tue, 19 Dec 2023, Mario Marietto wrote:
> >>>>>> ....I see that some other interesting files have been produced by =
u-boot when I have compiled it :
> >>>>>>
> >>>>>> u-boot
> >>>>>> u-boot.lds
> >>>>>> u-boot.bin
> >>>>>> u-boot.map
> >>>>>> u-boot-nodtb.bin
> >>>>>> u-boot.dtb
> >>>>>> u-boot.srec
> >>>>>> u-boot-dtb.bin
> >>>>>> u-boot.sym
> >>>>>>
> >>>>>> So,maybe I should use a different u-boot* file for booting FreeBSD=
 ?
> >>>>>>
> >>>>>>
> >>>>>> On Tue, Dec 19, 2023 at 4:28=E2=80=AFPM Mario Marietto <marietto20=
08@gmail.com> wrote:
> >>>>>>        Hello to everyone.
> >>>>>>
> >>>>>> I have compiled the needed u-boot.bin from scratch using this proc=
edure :
> >>>>>>
> >>>>>> # git clone https://github.com/u-boot/u-boot.git
> >>>>>> # cd u-boot
> >>>>>> # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make snow_defcon=
fig : this line generates the file .config
> >>>>>> # nano .config and I've added these parameters :
> >>>>>>
> >>>>>> CONFIG_ARMV7_NONSEC=3Dn
> >>>>>> CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
> >>>>>>
> >>>>>> the uboot-bin file is generated with this command :
> >>>>>>
> >>>>>> # ARCH=3Darm CROSS_COMPILE=3Darm-linux-gnueabihf- make
> >>>>>>
> >>>>>> At this point,I took a look inside the .config file and I saw that=
 the parameter "CONFIG_ARMV7_NONSEC=3Dn" has been removed. So,for
> >>>>>> some reason,it is not accepted and this could be a problem....
> >>>>>>
> >>>>>> These are the xen config files that I've used :
> >>>>>>
> >>>>>> nano freebsd.cfg
> >>>>>>
> >>>>>> name=3D"test"
> >>>>>> kernel=3D"u-boot.bin"
> >>>>>> extra =3D "console=3Dhvc0"
> >>>>>> memory=3D256
> >>>>>> vcpus=3D1
> >>>>>> disk =3D [ 'FreeBSD-13.2-RELEASE-armv7.img,raw,xvda' ]
> >>>>>>
> >>>>>> nano start-freebsd
> >>>>>>
> >>>>>> xl create freebsd.cfg
> >>>>>> xl console freebsd
> >>>>>>
> >>>>>> This is what happens when I launch the vm :
> >>>>>>
> >>>>>> # ./start-freebsd
> >>>>>>
> >>>>>> Parsing config from freebsd.cfg
> >>>>>> xc: error: panic: xg_dom_core.c:689: xc_dom_find_loader: no loader=
 found: Invalid kernel
> >>>>>> libxl: error: libxl_dom.c:571:libxl__build_dom: xc_dom_parse_image=
 failed
> >>>>>> libxl: error: libxl_create.c:1640:domcreate_rebuild_done: Domain 1=
:cannot (re-)build domain: -3
> >>>>>> libxl: error: libxl_domain.c:1183:libxl__destroy_domid: Domain 1:N=
on-existent domain
> >>>>>> libxl: error: libxl_domain.c:1137:domain_destroy_callback: Domain =
1:Unable to destroy guest
> >>>>>> libxl: error: libxl_domain.c:1064:domain_destroy_cb: Domain 1:Dest=
ruction of domain failed
> >>>>>> freebsd is an invalid domain identifier (rc=3D-6)
> >>>>>>
> >>>>>>
> >>>>>> On Mon, Dec 18, 2023 at 12:39=E2=80=AFPM Mario Marietto <marietto2=
008@gmail.com> wrote:
> >>>>>>        So,ok,I should have said "the second u-boot" ; since the fi=
rst u-boot binary is the "u-boot binary located in the RO
> >>>>>>        memory" of the Chromebook". Sorry for the confusion.
> >>>>>>
> >>>>>> On Mon, Dec 18, 2023 at 12:35=E2=80=AFPM Mario Marietto <marietto2=
008@gmail.com> wrote:
> >>>>>>        ---> There are no specific options in u-boot devoted to Fre=
eBSD
> >>>>>>
> >>>>>> This is an important factor. So,what about if,instead of compiling=
 a new version of u-boot on the partition 2,I will
> >>>>>> recompile the u-boot customized version created by the virtual ope=
n system in 2014,that should be installed on the first
> >>>>>> partition ? It could work if there are no differences between the =
u-boot that should boot Linux and the u-boot that
> >>>>>> should boot FreeBSD.
> >>>>>>
> >>>>>> Can you give a look at the u-boot source code created by virtual o=
pen systems ? You can find it on my google drive :
> >>>>>>
> >>>>>> https://drive.google.com/file/d/1eAaZMfd6CU0xiqQfH7sq5wGVzzO09BRm/=
view?usp=3Dsharing
> >>>>>>
> >>>>>> I need to understand if I can recompile it without problem so that=
 it can satisfy my needs (the ability of the file
> >>>>>> u-boot.bin to boot FreeBSD as domU under Xen,as explained by Stefa=
no Stabellini,the xen developer that suggested to me
> >>>>>> what I could do to have FreeBSD virtualized under Xen on my Arm Ch=
romebook) ; otherwise the risk is to find later
> >>>>>> problems that will make me troubles and that I will not able to fi=
x.
> >>>>>>
> >>>>>> I gave a look at the virtual open system u-boot and I didn't see a=
ny arndale_defconfig inside. So,If I have understood
> >>>>>> correctly,I should put that file inside the root of the u-boot sou=
rce code,let's say here :
> >>>>>>
> >>>>>> marietto:/home/marietto/Desktop/Files/u-boot_FreeBSD/u-boot-vos # =
ls
> >>>>>>
> >>>>>> .checkpatch.conf        README                  doc               =
      net
> >>>>>> .git                    api                     drivers           =
      onenand_ipl
> >>>>>> .gitignore              arch                    dts               =
      post
> >>>>>> COPYING                 board                   examples          =
      rules.mk
> >>>>>> CREDITS                 boards.cfg              fs                =
      scripts
> >>>>>> MAINTAINERS             common                  include           =
      snapshot.commit
> >>>>>> MAKEALL                 config.mk               lib               =
      spl
> >>>>>> Makefile                cros                    mkconfig          =
      test
> >>>>>> PRESUBMIT.cfg           disk                    nand_spl          =
      tools
> >>>>>>
> >>>>>> and I should do : make and make install ? and the file I need,u-bo=
otbin will be generated ?
> >>>>>>
> >>>>>> I didn't find any pre made configuration file inside :
> >>>>>>
> >>>>>> u-boot-vos # find . -type f -name "exynos*"
> >>>>>>
> >>>>>> ./include/exynos-fb.h
> >>>>>> ./include/configs/exynos5-common.h
> >>>>>> ./doc/device-tree-bindings/spi/exynos-spi.txt
> >>>>>> ./doc/device-tree-bindings/usb/exynos-usb.txt
> >>>>>> ./drivers/power/exynos-tmu.c
> >>>>>> ./drivers/power/exynos-cpufreq.c
> >>>>>> ./drivers/video/exynos-fb.c
> >>>>>> ./drivers/spi/exynos_spi.c
> >>>>>> ./board/samsung/dts/exynos5250-spring.dts
> >>>>>> ./board/samsung/dts/exynos5250-smdk5250.dts
> >>>>>> ./board/samsung/dts/exynos5250-snow.dts
> >>>>>> ./board/samsung/dts/exynos5250-daisy.dts
> >>>>>> ./arch/arm/include/asm/arch-exynos5/exynos-cpufreq.h
> >>>>>> ./arch/arm/include/asm/arch-exynos5/exynos-tmu.h
> >>>>>> ./arch/arm/dts/exynos5250.dtsi
> >>>>>> ./arch/arm/dts/exynos-periph-id.dtsi
> >>>>>> ./arch/arm/cpu/armv7/exynos5/exynos_cache.c
> >>>>>>
> >>>>>> u-boot-vos # find . -type f -name "arndale*"
> >>>>>>
> >>>>>> For sure I can't use a newer version of u-boot because otherwise t=
he patches needed to bypass the bootloader protections
> >>>>>> of the Arm Chromebook (such as a lot of different patches needed t=
o boot correctly Linux) will be broken ; anyway,since
> >>>>>> it works,I don't need to use an updated version of u-boot.
> >>>>>>
> >>>>>> ----> As per my experience, you have to respect these two options,=
 compiling u-boot for
> >>>>>> FreeBSD: https://github.com/freebsd/freebsd-ports/blob/main/sysuti=
ls/u-boot-master/files/FreeBSD_Fragment
> >>>>>>
> >>>>>> It says that I should use these parameters :
> >>>>>>
> >>>>>> CONFIG_ARMV7_NONSEC=3Dn
> >>>>>> CONFIG_EFI_GRUB_ARM32_WORKAROUND=3Dy
> >>>>>>
> >>>>>> These are the parameters used to configure a Linux kernel. I don't=
 understand what's the relation between the compilation
> >>>>>> of a linux kernel and u-boot. In the past I tried to recompile u-b=
oot,but I didn't have the need to set up those
> >>>>>> parameters,so I don't know how to do it (but I know how to recompi=
le a Linux kernel).
> >>>>>>
> >>>>>> ---> I'm not sure that I'm getting you right, as I don't understan=
d what you mean under "the first u-boot".
> >>>>>>
> >>>>>>
> >>>>>> I'm talking about first u-boot because the whole procedure to boot=
 Linux on the ARM Chromebook,that's explained here :
> >>>>>>
> >>>>>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chrom=
ebook/
> >>>>>>
> >>>>>>
> >>>>>> at some point they say :
> >>>>>>
> >>>>>>
> >>>>>> To be able to run KVM on ARM platforms, the kernel has to be boote=
d in hypervisor mode. Because of this relatively recent
> >>>>>> requirement (due to the introduction of the virtualization extensi=
ons), up until now all booting methods would boot the
> >>>>>> kernel in the standard Supervisor mode.
> >>>>>>
> >>>>>> For the ARM Chromebook the default boot procedure doesn't allow us=
 to boot in hypervisor mode. Although the laptop's boot
> >>>>>> mechanism is based on the frequently used u-boot, the binary is lo=
cated in RO memory. Fortunately, a chained u-boot
> >>>>>> mechanism can be used (i.e. starting another u-boot after the orig=
inal). We can then enter hypervisor mode from our
> >>>>>> custom iteration of u-boot and subsequently load our kernel and us=
erspace.
> >>>>>>
> >>>>>> So,the first u-boot is the u-boot provided by virtual open systems=
,that's able to chainload the "u-boot binary located in
> >>>>>> RO memory" , that does not boot Chrome OS in hypervisor mode. We d=
on't need it if we want to boot Linux with kvm or xen
> >>>>>> enabled.
> >>>>>>
> >>>>>>
> >>>>>> On Sun, Dec 17, 2023 at 1:28=E2=80=AFAM Stanislav Silnicki <stanis=
lav.silnicki@mailgate.us> wrote:
> >>>>>>        I'm not an expert in the topic, I only know, that ARM has d=
ivided hardware into two worlds - Secure and
> >>>>>>        Not-So, strictly limiting any software, running in non-secu=
re world with access to functions and
> >>>>>>        resources. https://developer.arm.com/documentation/den0013/=
d/Security/TrustZone-hardware-architecture?lang=3Den
> >>>>>>
> >>>>>> I'm not sure, that I'm getting you right, as I don't understand wh=
at you mean under "the first u-boot".
> >>>>>>
> >>>>>> As I understand, virtualization (HYP) is running in non-secure wor=
ld(https://developer.arm.com/documentation/ddi0406/c/System-Level-Architect=
ure/The-System-Level-Programmers--Model/The-Virtualization-Extens
> >>>>>> ions), so my guess (only guess!!!), virtualization software has to=
 prepare (configure) HW platform in the way,
> >>>>>> that FreeBSD kernel will not lack any resources, required to confi=
gure MPU, VA, etc.
> >>>>>> So, if you lucky to boot virtualizer, which is aware of target OS,=
 that maybe you can boot the kernel. Although, I
> >>>>>> doubt, that you need to boot 'second' u-boot to boot the kernel - =
there is simply ubldr, which you can hook somehow
> >>>>>> from virtualizer....
> >>>>>>
> >>>>>> Stan
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Mario Marietto wrote:
> >>>>>>
> >>>>>>
> >>>>>>        ---> As I understand, it makes sure that u-boot keeps in se=
cure mode during boot and passes control to
> >>>>>>        ubldr, which boots FreeBSD kernel, in that mode.
> >>>>>>
> >>>>>> Can you elaborate your sentence more ? I know that the bootloader =
secure mode is bypassed by the virtual open
> >>>>>> systems u-boot. Are you saying that when the control passes to the=
 second u-boot,it will happen in secure
> >>>>>> mode,so that the bypass that happened loading the first u-boot,is =
annulled ? If this is true,maybe can I boot
> >>>>>> FreeBSD using the virtual-open-system custom u-boot ? Is this comp=
atible with FreeBSD ? Where can I find the
> >>>>>> u-boot.bin that the xen developer talked about ? thanks bro'.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Sun, Dec 17, 2023 at 12:35=E2=80=AFAM Stanislav Silnicki <stani=
slav.silnicki@mailgate.us> wrote:
> >>>>>>        Hi Mario,
> >>>>>>
> >>>>>> U-Boot  beast is hiding in this den: https://source.denx.de/u-boot=
/u-boot.git
> >>>>>> I took a brief look at your post and it seems to me, that option C=
ONFIG_CMO_BY_VA_ONLY is irrelevant to
> >>>>>> your target armv7 32 bit
> >>>>>> platform: https://source.denx.de/u-boot/u-boot/-/blob/master/arch/=
arm/cpu/armv8/Kconfig?ref_type=3Dheads#L3
> >>>>>>
> >>>>>> As for compiling the u-boot, it is a doable task, given that you u=
nderstand what you are doing. There
> >>>>>> are no specific options in u-boot devoted to FreeBSD. It is a boot=
 loader, whose mission to make basic
> >>>>>> hardware initialization, read you kernel file from some media into=
 RAM and then pass it control.
> >>>>>>
> >>>>>> Basically, you can grab some defconfig, prepared for any other Exy=
nos5250 based board  (say, this one:
> >>>>>> https://source.denx.de/u-boot/u-boot/-/blob/master/configs/arndale=
_defconfig?ref_type=3Dheads) and adopt
> >>>>>> it somehow.
> >>>>>>
> >>>>>> As per my experience, you have to respect these two options, compi=
ling u-boot for
> >>>>>> FreeBSD: https://github.com/freebsd/freebsd-ports/blob/main/sysuti=
ls/u-boot-master/files/FreeBSD_Fragment
> >>>>>>
> >>>>>> As I understand, it makes sure, that u-boot keeps in secure mode d=
uring boot and passes control to
> >>>>>> ubldr, which boots FreBSD kernel, in that mode. Otherwise, there a=
 lot of surprises you may realize.
> >>>>>>
> >>>>>> Hope, this will help to progress you tasks
> >>>>>> Stan
> >>>>>>
> >>>>>> Mario Marietto wrote:
> >>>>>>
> >>>>>>
> >>>>>>        Hello.
> >>>>>>
> >>>>>>        I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM =
Chromebook. Basically there are
> >>>>>>        two ways to accomplish this task :
> >>>>>>
> >>>>>>        1) to write a patch that allows the FreeBSD kernel to boot =
as a zImage file. This could be
> >>>>>>        accomplished applying this patch to a specific file that's =
on the source code of FreeBSD :
> >>>>>>
> >>>>>>
> >>>>>>        https://xenbits.xen.org/gitweb/?p=3Dp...8;hb=3D0782e25d98cc=
1391472717035f986c979edef0c9
> >>>>>>
> >>>>>>
> >>>>>>        This patch was written by Julien Grall a lot of time ago an=
d now it does not work anymore.
> >>>>>>        This is the reason :
> >>>>>>
> >>>>>>
> >>>>>>              It appears FreeBSD-CURRENT removed the last step conv=
erting the kernel file to
> >>>>>>              kernel.bin. The patch can be readily rebased, but wit=
hout kernel.bin that
> >>>>>>              doesn't do too much
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> So,without a rebase of that patch the first option is not applicab=
le And I'm not able to fix it.
> >>>>>>
> >>>>>> 2) booting FreeBSD using U-Boot,as explained to me by a xen develo=
per :
> >>>>>>
> >>>>>>
> >>>>>>        I was trying to explain why and how Julien's patch works so=
 that you could be the one
> >>>>>>        to re-do something similar or fix the patch on the FreeBSD =
kernel that you are
> >>>>>>        working with. I am happy to help review and write patches b=
ut I don't work with the
> >>>>>>        FreeBSD kernel so I wouldn't be able to help you quickly. H=
owever, I might have a
> >>>>>>        suggestion. Do you know if FreeBSD can be booted by U-Boot =
? Because U-Boot
> >>>>>>        definitely boots as Xen on ARM guest firmware/bootloader. Y=
ou should be able to build
> >>>>>>        U-Boot and use the U-Boot binary as Xen guest kernel, then =
U-Boot could load FreeBSD
> >>>>>>        from disk or network and start it. For instance as domU con=
fig file:
> >>>>>>
> >>>>>>        kernel=3D"/home/petalinux/u-boot.bin"
> >>>>>>        disk =3D [ '/home/petalinux/test.img,raw,xvda' ]
> >>>>>>
> >>>>>>        I know it is important to build u-boot with the following c=
onfig to make it work on
> >>>>>>        Xen.
> >>>>>>
> >>>>>>        CONFIG_CMO_BY_VA_ONLY=3Dy
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> This option seems more doable to me according to my knowledge. But=
 I need to understand how to do
> >>>>>> it.
> >>>>>>
> >>>>>> Well,let's say that on the ARM Chromebook I'm forced to use and in=
stall a customized version of
> >>>>>> u-boot,created by virtual open systems,because it is the only one =
that allows bypassing its
> >>>>>> bootloader protection. You can find more information here :
> >>>>>>
> >>>>>> http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chrom=
ebook/?vos=3Dtech
> >>>>>>
> >>>>>> This is the relevant section to read :
> >>>>>>
> >>>>>>
> >>>>>>        Bootloader :
> >>>>>>
> >>>>>>        If you wish to skip this chapter you can download a pre-com=
piled binary of the
> >>>>>>        bootloader:
> >>>>>>
> >>>>>>
> >>>>>>        $ wget
> >>>>>>        http://www.virtualopensystems.com/downloads/guides/kvm_on_c=
hromebook/nv_u-boot-snow.kpart
> >>>>>>
> >>>>>>
> >>>>>>        To be able to run KVM on ARM platforms, the kernel has to b=
e booted in hypervisor
> >>>>>>        mode. Because of this relatively recent requirement (due to=
 the introduction of the
> >>>>>>        virtualization extensions), up until now all booting method=
s would boot the kernel in
> >>>>>>        the standard Supervisor mode. For the ARM Chromebook the de=
fault boot procedure
> >>>>>>        doesn't allow us to boot in hypervisor mode. Although the l=
aptop's boot mechanism is
> >>>>>>        based on the frequently used u-boot, the binary is located =
in RO memory. Fortunately,
> >>>>>>        a chained u-boot mechanism can be used (i.e. starting anoth=
er u-boot after the
> >>>>>>        original). We can then enter hypervisor mode from our custo=
m iteration of u-boot and
> >>>>>>        subsequently load our kernel and userspace.
> >>>>>>
> >>>>>>        Checkout the needed u-boot code :
> >>>>>>
> >>>>>>
> >>>>>>        $ git clone git://github.com/virtualopensystems/u-boot.git$=
 cd u-boot$
> >>>>>>        ./scripts/build.sh
> >>>>>>
> >>>>>>
> >>>>>>        If successful, a message about how to copy the bootloader o=
n the USB flash disk or SD
> >>>>>>        card will appear. We will use it later when preparing the b=
oot medium to start our
> >>>>>>        system. If you have followed the Setting up the boot medium=
 chapter and you have a
> >>>>>>        prepared boot device, then you can update u-boot by running=
 :
> >>>>>>
> >>>>>>
> >>>>>>        $ sudo dd if=3Dnv_uboot-snow.kpart of=3D/dev/sdX1
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> so,the needed u-boot that we must use should be installed on the f=
irst partition of the sd card.
> >>>>>>
> >>>>>> There is another relevant section to read :
> >>>>>>
> >>>>>>
> >>>>>>        Setting up the boot medium
> >>>>>>
> >>>>>>        Now it is time to copy all the relevant files that we creat=
ed in the previous
> >>>>>>        chapters,and use them to boot Chromebook with a different k=
ernel and OS. In all these
> >>>>>>        examples the device /dev/sdX is used. Take extra care to ch=
ange the examples to the
> >>>>>>        device that you have attached. Insert the boot medium on yo=
ur workstation and
> >>>>>>        carefully execute the following step. First we need to prop=
erly format the boot
> >>>>>>        medium.
> >>>>>>
> >>>>>>        In the uboot source directory :
> >>>>>>
> >>>>>>
> >>>>>>        $ sudo ./scripts/sdcard.sh /dev/sdX
> >>>>>>
> >>>>>>
> >>>>>>        This will erase all data and create 4 partitions in the med=
ium, along with copying
> >>>>>>        the u-boot binary to the first partition:
> >>>>>>
> >>>>>>
> >>>>>>        Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boo=
t)
> >>>>>>        Partition 2 =3D not used
> >>>>>>        Partition 3 =3D EXT2 partition for u-boot files (uImage and=
 exynos5250-snow.dtb)
> >>>>>>        Partition 4 =3D EXT4 partition for userspace files
> >>>>>>
> >>>>>>
> >>>>>>        With u-boot being copied, next is the kernel image and DTB =
file. From the kernel
> >>>>>>        source execute :
> >>>>>>
> >>>>>>
> >>>>>>        $ mkdir ../mnt/
> >>>>>>        $ sudo mount /dev/sdX3 ../mnt/
> >>>>>>        $ sudo cp arch/arm/boot/uImage ../mnt/
> >>>>>>        $ sudo cp arch/arm/boot/dts/exynos5250-snow.dtb ../mnt/
> >>>>>>        $ sudo umount /dev/sdX3
> >>>>>>
> >>>>>>
> >>>>>>        Finally, we have to copy the Ubuntu userspace filesystem th=
at we created earlier:
> >>>>>>
> >>>>>>
> >>>>>>        $ sudo mount /dev/sdX4 mnt/$ sudo cp -a ./precise/* mnt/$ s=
udo umount /dev/sdX4
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Now,my idea is to chainload the already chain loaded u-boot create=
d by V.O.S to the new u-boot
> >>>>>> that we need for booting FreeBSD and that can be installed in the =
partition n.2,as shown in this
> >>>>>> scheme,because it is not used :
> >>>>>>
> >>>>>>
> >>>>>> Partition 1 =3D ChromeOS signed binary (V.O.S chained u-boot)
> >>>>>> Partition 2 =3D not used (maybe we can install the u-boot for arm =
32 bit,compatible with FreeBSD on
> >>>>>> this partition)
> >>>>>> Partition 3 =3D EXT2 partition for u-boot files (uImage and exynos=
5250-snow.dtb)
> >>>>>> Partition 4 =3D EXT4 partition for userspace files
> >>>>>>
> >>>>>>
> >>>>>> Take in consideration that default boot string is hardcoded here,i=
n the snow.h file of the custom
> >>>>>> u-boot created by VOS :
> >>>>>>
> >>>>>>
> >>>>>> https://github.com/virtualopensyste...18a39b6c177dff58a/include/co=
nfigs/snow.h#L101
> >>>>>>
> >>>>>>
> >>>>>> and it needs to be recompiled because it should point to the parti=
tion n.2,where I will install
> >>>>>> the u-boot files as explained here :
> >>>>>>
> >>>>>>
> >>>>>> https://wiki.freebsd.org/arm/Chromebook
> >>>>>>
> >>>>>>
> >>>>>> I have some questions to ask before I start working on this.
> >>>>>>
> >>>>>> 1) The xen developer said :
> >>>>>>
> >>>>>>
> >>>>>>        You should be able to build U-Boot and use the U-Boot binar=
y as Xen guest kernel...
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> where is the u-boot binary,according to this document ?
> >>>>>>
> >>>>>> https://wiki.freebsd.org/arm/Chromebook
> >>>>>>
> >>>>>> I don't see it.
> >>>>>>
> >>>>>>
> >>>>>> 2) where is the source code of the file that I can get here :
> >>>>>>
> >>>>>> http://commondatastorage.googleapis.com/chromeos-localmirror/distf=
iles/nv_uboot-snow-simplefb.kpart.bz2
> >>>>>>
> >>>>>> I need the source code if I want to recompile u-boot so that it ca=
n point to the partition 4.
> >>>>>>
> >>>>>> Maybe it can be found on this link :
> >>>>>>
> >>>>>> http://linux-exynos.org/dist/chromebook/nv_uboot/
> >>>>>>
> >>>>>> but it can't be opened....
> >>>>>>
> >>>>>>
> >>>>>> 3) in this specific scenario the source code of u-boot should run =
on arm 32 bit,not on arm
> >>>>>> 64,because I have the Samsung Chromebook "SNOW" model XE303C12,tha=
t's powered by a Samsung Exynos
> >>>>>> 5250 (ARMv7 32 bit Cortex A15) Soc.
> >>>>>>
> >>>>>>
> >>>>>> 4) I'm not sure if I can chainload the customized u-boot created b=
y V.O.S that should be
> >>>>>> installed on the first partition with the u-boot tailored for boot=
ing FreeBSD that should be
> >>>>>> installed on the partition 2....
> >>>>>>
> >>>>>>
> >>>>>> 5) the xen developer said that u-boot should be compiled enabling =
this option :
> >>>>>>
> >>>>>>
> >>>>>> Code:
> >>>>>>
> >>>>>> CONFIG_CMO_BY_VA_ONLY=3Dy
> >>>>>>
> >>>>>>
> >>>>>> Well,can you provide some good source that can help me to understa=
nd how I can recompile u-boot
> >>>>>> for FreeBSD ? thanks.
> >>>>>>
> >>>>>> --
> >>>>>> Mario.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Mario.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Mario.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Mario.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Mario.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Mario.
> >>>>>>
> >>>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Mario.
> >>
> >>
> >>
> >> --
> >> Mario.
> >
> >
> >
> > --
> > Mario.
> >
>
> --
> Julien Grall



--=20
Mario.


From xen-devel-bounces@lists.xenproject.org Sat Dec 30 20:00:51 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Dec 2023 20:00:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660293.1029871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJfVT-0008Fz-3j; Sat, 30 Dec 2023 20:00:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660293.1029871; Sat, 30 Dec 2023 20: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 1rJfVT-0008Fs-0q; Sat, 30 Dec 2023 20:00:27 +0000
Received: by outflank-mailman (input) for mailman id 660293;
 Sat, 30 Dec 2023 20:00:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1rJfVR-0008Fm-MR
 for xen-devel@lists.xenproject.org; Sat, 30 Dec 2023 20:00:25 +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 1rJfVL-0005nK-70; Sat, 30 Dec 2023 20:00:19 +0000
Received: from gw1.octic.net ([88.97.20.152] helo=[10.0.1.102])
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1rJfVK-0004NJ-Q1; Sat, 30 Dec 2023 20: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=UoNGTP0Yj9JaZxGKQPyOuFeX8/09y97gRLdmRg/vD0I=; b=CjOdg6dW4FNmaYWH/jf2sYFM7m
	LskkUAiwZbI1iBFbGJdBzLYhvuGxjPIgfbCpuk3O8an6M+UHQAqO4/26oH97TYewcUzqsGhme6MKA
	D15MvYZPQoOsNyyQM76R1W+jEbHtcHlLTBiBmCjpHtQgo6kxUJhRsplwRRlZI03vIM9M=;
Message-ID: <46b0d8be-0e08-4737-9bf4-7db3b9b213a7@xen.org>
Date: Sat, 30 Dec 2023 20:00:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM
 Chromebook
Content-Language: en-GB
To: Mario Marietto <marietto2008@gmail.com>
Cc: Warner Losh <imp@bsdimp.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Stanislav Silnicki
 <stanislav.silnicki@mailgate.us>, freebsd-arm@freebsd.org,
 Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us>
 <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us>
 <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
 <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
 <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com>
 <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com>
 <CA+1FSigREr=aSHOBMbEK9CaoKzNnKC-6sE=Ui8ovVwnMaZgZhQ@mail.gmail.com>
 <CA+1FSigVW+kS37ZuGeBsr58BfPS10fjptfOnvTbaUOZ7VrUBgg@mail.gmail.com>
 <5ce9eea4-500c-4f06-a7f5-363a0e0d5178@xen.org>
 <CA+1FSig+UziZ9BsqJp3U5eAR1Qj+PFufgEd7KwoDNo1wspHUYg@mail.gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <CA+1FSig+UziZ9BsqJp3U5eAR1Qj+PFufgEd7KwoDNo1wspHUYg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 30/12/2023 12:44, Mario Marietto wrote:
>> https://src.fedoraproject.org/repo/pkgs/uboot-tools/u-boot-2017.05.tar.bz2/sha512/be270f9242a72b05463092a022bbabd54996762de1ff23bf7575124ac02e62f49572a4e2f6f571a5019047d40027e56e35593b5cc373c4a5a39b100c3377ba93/
> 
>> This source code has no support for Xen guests. This was only added in 2020. Can you clarify why you can't use the latest upstream U-boot?
> 
> It's true. I've got the source code of that custom u-boot
> implementation in the wrong place. This is the right place :
> 
> https://forum.doozan.com/read.php?3,49039
> 
> an u-boot / xen developer suggested to me to explore that site because
> there is the one and only u-boot customized and off the tree version
> that can chainload the freebsd bootloader "ubldr". Unfortunately to
> work the FreeBSD rootfs should be compiled with armV5,but my ARM
> Chromebook works with armV7. I don't know if armV7 is retrocompatible
> with armV5.
> In addition,armV5 has been removed from FreeBSD starting from version
> 12. Infact Balanga used FreeBSD 11.2. FreeBSD 11 has gone EOL for
> several years and it's very hard to make it in a usable state today.

I am not entirely sure. The Arm Arm implies that there are some sort of 
compatibility between Armv5 and Armv7, but they also removed some features.

That said, I don't understand why it would matter that binaries are 
built with Armv5. U-boot should only care about the filesystem type 
(e.g. ZFS). So you should be able to build your own filesystem.

> 
> ---> In fact, there are some missing low-level layers (e.g.
> hypercalls) in order to properly use it for 32-bit domU. I don't know
> if there is support out-of-tree.
> 
> @Elliott Mitchell some time ago concerning that point,said :
> 
> I've only ever tried arm64, but since arm32 didn't appear to need much
> to be operational I tried to make it possible.  In theory it
> /should/work on arm32, but I've never tried it.  What was missing was
> I had never added it to the configuration and one link was needed.
> Updated "submit" branch has a tiny adjustment. (the only difference is
> the hypercall wrappers, register naming and where the op code goes,
> very simple compatibility)
> 
> I'm not experienced,but it seems to me that only a few patches are
> needed to make the job done.

It is it not clear to me whether the last sentence is from you or 
Elliott. Regardless that, I think we are talking about two different 
things. Elliott seems to refer to FreeBSD whereas I was referring to U-boot.

If you plan to use U-boot, then I recommend to first focus on U-boot. 
Then you could look at FreeBSD.

> ---> Do you have a tree with FreeBSD + your patches? I would like to
> check the zImage code.
> 
> my patches ? Are you talking about the patches that should have been
> used on the @Elliott Mitchell github ?

I am referring to what ever you are trying.

> 
> https://gitlab.com/ehem/freebsd-src.git
> 
> yes,I tried to use his code but I've got the same error "invalid kernel"

[...]

> He said that it should work,but I get the error "invalid kernel".

[...]

> It appears FreeBSD-CURRENT removed the last step converting the kernel
> file to kernel.bin.The patch can be readily rebased, but without
> kernel.bin that doesn't do too much. So,without a rebase of that patch
> the first option is not applicable.

This is likely the culprit. I haven't used FreeBSD for a while, so I 
can't advise on how to fix it. If it were me, I would try to revert the 
commiting removing the step to create kernel.bin.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Dec 30 22:31:31 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Dec 2023 22:31:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660297.1029881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJhrP-0008Pc-4d; Sat, 30 Dec 2023 22:31:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660297.1029881; Sat, 30 Dec 2023 22: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 1rJhrP-0008PV-0R; Sat, 30 Dec 2023 22:31:15 +0000
Received: by outflank-mailman (input) for mailman id 660297;
 Sat, 30 Dec 2023 22: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=ceJ3=IJ=gmail.com=marietto2008@srs-se1.protection.inumbo.net>)
 id 1rJhrN-0008PP-0e
 for xen-devel@lists.xenproject.org; Sat, 30 Dec 2023 22:31:13 +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 1fef583a-a763-11ee-98ee-6d05b1d4d9a1;
 Sat, 30 Dec 2023 23:31:07 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a2340c803c6so880059766b.0
 for <xen-devel@lists.xenproject.org>; Sat, 30 Dec 2023 14:31:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fef583a-a763-11ee-98ee-6d05b1d4d9a1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1703975467; x=1704580267; 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=d2ktSYm0KRPErPafZHnIw8ztX/mRGyfKyOA6id5DzHs=;
        b=TLTYTODSWIcJAUxjb35w1iCDJT71KySxj3+8BEV6SATVDpFQTVyK2EwofIBT/DbPoN
         GSWs1MEw0PiFav2RJWW6f52bNO5603JFlZS1RdT7FJHwCfJhFaKZUjboPeDSljLTKgZW
         MtLXbkYMahsazYuXTzNJWAywITgJc+mdsOc8XYYE5jPO5HN7Mc4UjWGsik53rkI1O+za
         uvbyVcxOsJgyUSZ5d7h4BOfuqflZr3Xyb4yffA385MazG8FuXBskuWr4RNVyZtGGfd2q
         /GAJ/1/Mfl0aq93lRTFayB/RCxVGzrRwL08lkkAtelQTnrBjTUQkljJUzjm8tTg1Yy8t
         O9Gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1703975467; x=1704580267;
        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=d2ktSYm0KRPErPafZHnIw8ztX/mRGyfKyOA6id5DzHs=;
        b=pCH+t4jTWxKrQ7hR4qEwggmPclkFmNgCRnO+aQYZ7ZblW5lT+tAQuOte9alwAAG1D3
         6t7MankGPb/OwEu83YdgyiP0RTBSW4yjon3R5jgBmOhvPSDIbRVoL8LplMP52/dvy9mw
         bfpadA3eHlsoK2jmBy/AiGkfFteTJ+fBJaSskzL4LQ6t/O3MYWBqAOciHh7eGAXDzXa1
         AXCcZsdrQFRRM/XGDBg0J8bzN9rfAIBBJwUgHVOV0hd3dyuRCRw56LZiv+Qn5HRV/GHS
         PyB8oNBCyHgnNbPan/mcDvKjuXtzhGWZpk2ej37JQnbfNN6E3qlsVXYJYGqal1TYx6bG
         SgqQ==
X-Gm-Message-State: AOJu0Yx4xGBgkLX0hAGiZzEmYAJaKDiF0fGcXjGpjt/6boR1ijKZTnCB
	OWox9l0jOs7vMxdYbjIpQODqi5LqCuh1zBkWGVqaaTJmlNM=
X-Google-Smtp-Source: AGHT+IFOiKojpb8egL3YYiFRhk4Egwl5ueKE1JO2kliK9kwmWKcov5NloQcSGpainLECj6XiBJyK9va3hzQ82n/cm8Q=
X-Received: by 2002:a17:906:251:b0:a27:5ff2:121c with SMTP id
 17-20020a170906025100b00a275ff2121cmr1857161ejl.139.1703975466727; Sat, 30
 Dec 2023 14:31:06 -0800 (PST)
MIME-Version: 1.0
References: <CA+1FSiit5NJ_W7f5mssivkGGLevXh_XmSB7ZxZbQe1dgev0_Pg@mail.gmail.com>
 <97aa980b9b44.6eb7f9d5c54e7@mailgate.us> <CA+1FSiheSwrO7Tz3F3Nmu4vcC2E=ONRX8nF3bhQGV0UDOFTrww@mail.gmail.com>
 <da024d1687f3a.2f0c601bba502@mailgate.us> <CA+1FSih7C0HEun99LHEwvyYRiH0PaLwwgnoQLHB69TWz2ykDZg@mail.gmail.com>
 <CA+1FSijoPkRZRaU6tujaMJZeFd3CSyUN+h4y0_NrrB5VWLgwpA@mail.gmail.com>
 <CA+1FSiib3uu9Ky8N5rSSt+H1nfzUnChKhGs2ERWmsbp2T4=2uA@mail.gmail.com>
 <CA+1FSihtb3+bm-pSqa7JGBjy3JUXYD6i0c6J2KHy+EO8rmZ5PA@mail.gmail.com>
 <alpine.DEB.2.22.394.2312191131290.3175268@ubuntu-linux-20-04-desktop>
 <CA+1FSigh=fc07o-RSMZ+hf9-YBUudAwnGcN9k8bP1RnPBP7tRA@mail.gmail.com>
 <CANCZdfpRJxJw2_ma0cCcoGGmAat4KVj5sOfdnGMR9w+OQCYxaQ@mail.gmail.com>
 <CA+1FSigREr=aSHOBMbEK9CaoKzNnKC-6sE=Ui8ovVwnMaZgZhQ@mail.gmail.com>
 <CA+1FSigVW+kS37ZuGeBsr58BfPS10fjptfOnvTbaUOZ7VrUBgg@mail.gmail.com>
 <5ce9eea4-500c-4f06-a7f5-363a0e0d5178@xen.org> <CA+1FSig+UziZ9BsqJp3U5eAR1Qj+PFufgEd7KwoDNo1wspHUYg@mail.gmail.com>
 <46b0d8be-0e08-4737-9bf4-7db3b9b213a7@xen.org>
In-Reply-To: <46b0d8be-0e08-4737-9bf4-7db3b9b213a7@xen.org>
From: Mario Marietto <marietto2008@gmail.com>
Date: Sat, 30 Dec 2023 23:30:29 +0100
Message-ID: <CA+1FSiiNn4ROifYg=+yAtWH7Eg6DSz=19T_UmKcZ=thGs7y=1g@mail.gmail.com>
Subject: Re: How to boot FreeBSD for arm 32 bit as DomU with u-boot on my ARM Chromebook
To: Julien Grall <julien@xen.org>
Cc: Warner Losh <imp@bsdimp.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Stanislav Silnicki <stanislav.silnicki@mailgate.us>, freebsd-arm@freebsd.org, 
	Michal.Orzel@amd.com, xen-devel@lists.xenproject.org, Artem_Mygaiev@epam.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

---> That said, I don't understand why it would matter that binaries
are built with Armv5. U-boot should only care about the filesystem
type (e.g. ZFS). So you should be able to build your own filesystem.

I also don't understand why. I'm trying to do is exactly what has been
suggested to do in the site below :

https://forum.doozan.com/read.php?3,49039

scroll down and search these words :

Whether you use "go" or "bootelf", you will need to have some
knowledge about what files are the kernel files in your ARMV5
rootfs.The BSD rootfs must be built for this architecture. And how to
pass parameters to the kernel. Bootelf with API is more powerful, "go"
is primitive.

---> It is it not clear to me whether the last sentence is from you or Elli=
ott

It is from Elliott. I wanted you to know what has been done and what's
missing from the FreeBSD code for arm 32 patched by Elliott. I don't
understand what's the easiest thing to do to fix the problem. I can
barely understand from Elliott's words that fixing the missing low
level hypercalls for arm32 seems to be easy.

What I don't understand is if it requires modifying some code that's
inside the Elliott's github :

https://gitlab.com/ehem/freebsd-src.git

It seems that he patched everything inside his github,but since
something is changed on the FreeBSD side,he won't fix the problem
within his github because he thinks that it is a waste of time. Can
you clone his repo and can you fix what's broken there ? thanks.

---> If you plan to use U-boot, then I recommend you first focus on
U-boot. Then you could look at FreeBSD.

That's the point. I don't know what's the easiest way to go. To use
the off the tree u-boot code (that unfortunately requires to install a
a lot of old packages on FreeBSD 11 because the rootfs require to be
compiled using armv5) or the code that needs to be fixed to allow
FreeBSD to boot as an zImage kernel file. If for you it does not take
a lot of time,I think that would be a nice idea to take the bull by
the horns,allowing FreeBSD to boot as Domu without u-boot,but booting
it as if it was an zImage file.

---> This is likely the culprit. I haven't used FreeBSD for a while,so
I can't advise on how to fix it. If it were me, I would try to
revert the commiting removing the step to create kernel.bin.

No idea about how to do this. I don't even know if I can do that.


On Sat, Dec 30, 2023 at 9:00=E2=80=AFPM Julien Grall <julien@xen.org> wrote=
:
>
> Hi,
>
> On 30/12/2023 12:44, Mario Marietto wrote:
> >> https://src.fedoraproject.org/repo/pkgs/uboot-tools/u-boot-2017.05.tar=
.bz2/sha512/be270f9242a72b05463092a022bbabd54996762de1ff23bf7575124ac02e62f=
49572a4e2f6f571a5019047d40027e56e35593b5cc373c4a5a39b100c3377ba93/
> >
> >> This source code has no support for Xen guests. This was only added in=
 2020. Can you clarify why you can't use the latest upstream U-boot?
> >
> > It's true. I've got the source code of that custom u-boot
> > implementation in the wrong place. This is the right place :
> >
> > https://forum.doozan.com/read.php?3,49039
> >
> > an u-boot / xen developer suggested to me to explore that site because
> > there is the one and only u-boot customized and off the tree version
> > that can chainload the freebsd bootloader "ubldr". Unfortunately to
> > work the FreeBSD rootfs should be compiled with armV5,but my ARM
> > Chromebook works with armV7. I don't know if armV7 is retrocompatible
> > with armV5.
> > In addition,armV5 has been removed from FreeBSD starting from version
> > 12. Infact Balanga used FreeBSD 11.2. FreeBSD 11 has gone EOL for
> > several years and it's very hard to make it in a usable state today.
>
> I am not entirely sure. The Arm Arm implies that there are some sort of
> compatibility between Armv5 and Armv7, but they also removed some feature=
s.
>
> That said, I don't understand why it would matter that binaries are
> built with Armv5. U-boot should only care about the filesystem type
> (e.g. ZFS). So you should be able to build your own filesystem.
>
> >
> > ---> In fact, there are some missing low-level layers (e.g.
> > hypercalls) in order to properly use it for 32-bit domU. I don't know
> > if there is support out-of-tree.
> >
> > @Elliott Mitchell some time ago concerning that point,said :
> >
> > I've only ever tried arm64, but since arm32 didn't appear to need much
> > to be operational I tried to make it possible.  In theory it
> > /should/work on arm32, but I've never tried it.  What was missing was
> > I had never added it to the configuration and one link was needed.
> > Updated "submit" branch has a tiny adjustment. (the only difference is
> > the hypercall wrappers, register naming and where the op code goes,
> > very simple compatibility)
> >
> > I'm not experienced,but it seems to me that only a few patches are
> > needed to make the job done.
>
> It is it not clear to me whether the last sentence is from you or
> Elliott. Regardless that, I think we are talking about two different
> things. Elliott seems to refer to FreeBSD whereas I was referring to U-bo=
ot.
>
> If you plan to use U-boot, then I recommend to first focus on U-boot.
> Then you could look at FreeBSD.
>
> > ---> Do you have a tree with FreeBSD + your patches? I would like to
> > check the zImage code.
> >
> > my patches ? Are you talking about the patches that should have been
> > used on the @Elliott Mitchell github ?
>
> I am referring to what ever you are trying.
>
> >
> > https://gitlab.com/ehem/freebsd-src.git
> >
> > yes,I tried to use his code but I've got the same error "invalid kernel=
"
>
> [...]
>
> > He said that it should work,but I get the error "invalid kernel".
>
> [...]
>
> > It appears FreeBSD-CURRENT removed the last step converting the kernel
> > file to kernel.bin.The patch can be readily rebased, but without
> > kernel.bin that doesn't do too much. So,without a rebase of that patch
> > the first option is not applicable.
>
> This is likely the culprit. I haven't used FreeBSD for a while, so I
> can't advise on how to fix it. If it were me, I would try to revert the
> commiting removing the step to create kernel.bin.
>
> Cheers,
>
> --
> Julien Grall



--
Mario.


From xen-devel-bounces@lists.xenproject.org Sun Dec 31 03:57:58 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Dec 2023 03:57:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660301.1029891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJmxK-0000TM-Oc; Sun, 31 Dec 2023 03:57:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660301.1029891; Sun, 31 Dec 2023 03: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 1rJmxK-0000TF-KP; Sun, 31 Dec 2023 03:57:42 +0000
Received: by outflank-mailman (input) for mailman id 660301;
 Sun, 31 Dec 2023 03: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 1rJmxJ-0000T5-4l; Sun, 31 Dec 2023 03: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 1rJmxI-0005Ys-Qn; Sun, 31 Dec 2023 03:57: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 1rJmxI-0005ma-8z; Sun, 31 Dec 2023 03:57:40 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rJmxI-0005Q1-8V; Sun, 31 Dec 2023 03:57:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Date:From:Subject:MIME-Version:
	Content-Transfer-Encoding:Content-Type:Message-ID:To;
	bh=DXT295tPTb6bxZeM5E7QuY/zm/fjo9gaeoy0SdYEaak=; b=PtwOPl28UoG5D9hcNILqMRF/xo
	mYnlS7C72yBTIzSOoBK7U4jsVR6zxuZ7WHuvX0Xrps0wDNwuXceob8xImcy75PPtwQ2ImVlmtlPLV
	Lm5lcdqWxtG0gbtb1MZimVWjO67boC/apVyaE/uGwOGNk19isYQi3iZdpYATeJ1FyuTA=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184238-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [linux-linus test] 184238: tolerable FAIL - PUSHED
X-Osstest-Failures:
    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-raw:saverestore-support-check: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-armhf-armhf-libvirt-qcow2: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: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:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-libvirt-xsm:saverestore-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-thunderx: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-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-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-xsm:migrate-support-check:fail:nonblocking
    linux-linus:test-arm64-arm64-xl-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-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-raw:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    linux-linus:test-armhf-armhf-xl-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-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-libvirt-qcow2:migrate-support-check:fail:nonblocking
X-Osstest-Versions-This:
    linux=453f5db0619e2ad64076aab16ff5a00e0f7c53a2
X-Osstest-Versions-That:
    linux=f016f7547aeedefed9450499d002ba983b8fce15
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 31 Dec 2023 03:57:40 +0000

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

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 184235
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184235
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184235
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184235
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184235
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184235
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184235
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184235
 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          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-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-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-arndale  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  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-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-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-raw 14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      14 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-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-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-credit2  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  16 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-qcow2 14 migrate-support-check        fail never pass

version targeted for testing:
 linux                453f5db0619e2ad64076aab16ff5a00e0f7c53a2
baseline version:
 linux                f016f7547aeedefed9450499d002ba983b8fce15

Last test of basis   184235  2023-12-29 20:13:44 Z    1 days
Testing same since   184238  2023-12-30 21:12:09 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  David Laight <david.laight@aculab.com>
  Linus Torvalds <torvalds@linux-foundation.org>
  Masami Hiramatsu (Google) <mhiramat@kernel.org>
  Steven Rostedt (Google) <rostedt@goodmis.org>
  Waiman Long <longman@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-freebsd11-amd64                             pass    
 test-amd64-amd64-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-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-libvirt-raw                                 pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-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-xl-vhd                                      pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-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
   f016f7547aee..453f5db0619e  453f5db0619e2ad64076aab16ff5a00e0f7c53a2 -> tested/linux-linus


From xen-devel-bounces@lists.xenproject.org Sun Dec 31 10:03:16 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Dec 2023 10:03:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660316.1029901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJsen-00086u-V7; Sun, 31 Dec 2023 10:02:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660316.1029901; Sun, 31 Dec 2023 10:02:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJsen-00086n-S4; Sun, 31 Dec 2023 10:02:57 +0000
Received: by outflank-mailman (input) for mailman id 660316;
 Sun, 31 Dec 2023 10:02: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 1rJsel-00086d-VE; Sun, 31 Dec 2023 10:02: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 1rJsel-0004sX-Oq; Sun, 31 Dec 2023 10:02: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 1rJsel-0002SO-7U; Sun, 31 Dec 2023 10:02:55 +0000
Received: from osstest by osstest.test-lab.xenproject.org with local (Exim
 4.92) (envelope-from <osstest-admin@xenproject.org>)
 id 1rJsel-0007so-6y; Sun, 31 Dec 2023 10:02: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=GOJ2gqQO/DDhpR/KzP8y45jls0xHRJkx24Rz+VaiiNk=; b=mZr+9Z61O+9iQcjqYAugjuYwkX
	0tRD/bNoo+PPCNOqpS9ik/zhg6rgipjHdFkrS8umlDMO8az7qwK4O0BY1+PZoITujVBZEwBFdiQcR
	rUEEU25jVxTOoI9Tt0Xi/50du18eONbwUL9okzoHTuzUhqu7aETG9jA3KxiJP9RK0VjQ=;
To: xen-devel@lists.xenproject.org
Message-ID: <osstest-184239-mainreport@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Subject: [xen-unstable test] 184239: tolerable FAIL
X-Osstest-Failures:
    xen-unstable:test-armhf-armhf-xl-vhd:guest-start:fail:heisenbug
    xen-unstable:test-armhf-armhf-xl-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-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-i386-xl-qemuu-win7-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-amd64-amd64-xl-qemuu-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-ws16-amd64:guest-stop:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-raw:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-qemut-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-i386-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-i386-libvirt-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt:migrate-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-xl-pvshim:guest-start:fail:nonblocking
    xen-unstable:test-amd64-amd64-libvirt-xsm: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: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-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-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-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-multivcpu:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-xl-multivcpu:saverestore-support-check:fail:nonblocking
    xen-unstable:test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt:migrate-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-amd64-i386-libvirt-raw: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-amd64-amd64-libvirt-vhd:migrate-support-check:fail:nonblocking
    xen-unstable:test-armhf-armhf-libvirt-qcow2:migrate-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-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
X-Osstest-Versions-This:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
X-Osstest-Versions-That:
    xen=49818cde637b5ec20383e46b71f93b2e7d867686
From: osstest service owner <osstest-admin@xenproject.org>
Date: Sun, 31 Dec 2023 10:02:55 +0000

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

Failures :-/ but no regressions.

Tests which are failing intermittently (not blocking):
 test-armhf-armhf-xl-vhd      13 guest-start                fail pass in 184236

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl-vhd     14 migrate-support-check fail in 184236 never pass
 test-armhf-armhf-xl-vhd 15 saverestore-support-check fail in 184236 never pass
 test-armhf-armhf-libvirt     16 saverestore-support-check    fail  like 184236
 test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop            fail like 184236
 test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop             fail like 184236
 test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop            fail like 184236
 test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check   fail like 184236
 test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop             fail like 184236
 test-armhf-armhf-libvirt-raw 15 saverestore-support-check    fail  like 184236
 test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop             fail like 184236
 test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop            fail like 184236
 test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 184236
 test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop             fail like 184236
 test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop            fail like 184236
 test-amd64-i386-libvirt-xsm  15 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     15 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      15 migrate-support-check        fail   never pass
 test-amd64-i386-xl-pvshim    14 guest-start                  fail   never pass
 test-amd64-amd64-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-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-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-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-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-multivcpu 16 saverestore-support-check    fail  never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-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-credit1  15 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  16 saverestore-support-check    fail   never pass
 test-amd64-i386-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-amd64-amd64-libvirt-vhd 14 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-qcow2 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-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

version targeted for testing:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686
baseline version:
 xen                  49818cde637b5ec20383e46b71f93b2e7d867686

Last test of basis   184239  2023-12-31 01:53:54 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-i386-xl                                           pass    
 test-amd64-coresched-i386-xl                                 pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-dom0pvh-xl-amd                              pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-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-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-examine-bios                                pass    
 test-amd64-i386-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-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-dom0pvh-xl-intel                            pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-armhf-armhf-libvirt-qcow2                               pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-arm64-arm64-libvirt-raw                                 pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-libvirt-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-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-examine-uefi                                pass    
 test-amd64-i386-examine-uefi                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-arm64-arm64-xl-vhd                                      pass    
 test-armhf-armhf-xl-vhd                                      fail    
 test-amd64-i386-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 Dec 31 14:46:19 2023
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Dec 2023 14:46:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.660325.1029911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1rJx4i-0003pK-NQ; Sun, 31 Dec 2023 14:46:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 660325.1029911; Sun, 31 Dec 2023 14: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 1rJx4i-0003pD-Jx; Sun, 31 Dec 2023 14:46:00 +0000
Received: by outflank-mailman (input) for mailman id 660325;
 Sun, 31 Dec 2023 14:45:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0Yvu=IK=mg.gitlab.com=bounce+c66dc3.947b4-xen-devel=lists.xenproject.org@srs-se1.protection.inumbo.net>)
 id 1rJx4h-0003p7-LQ
 for xen-devel@lists.xenproject.org; Sun, 31 Dec 2023 14:45:59 +0000
Received: from m202-219.mailgun.net (m202-219.mailgun.net [161.38.202.219])
 by se1-gles-flk1.inumbo.com (Halon) with UTF8SMTPS
 id 4c9f3b98-a7eb-11ee-9b0f-b553b5be7939;
 Sun, 31 Dec 2023 15:45:55 +0100 (CET)
Received: from mg.gitlab.com (68.90.74.34.bc.googleusercontent.com
 [34.74.90.68]) by
 f2fc7ed5ab0d with SMTP id 65917ea06bc1146996fd30cb (version=TLS1.3,
 cipher=TLS_AES_128_GCM_SHA256); Sun, 31 Dec 2023 14:45:52 GMT
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
X-Inumbo-ID: 4c9f3b98-a7eb-11ee-9b0f-b553b5be7939
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.gitlab.com;
 q=dns/txt; s=mailo; t=1704033952; x=1704041152; h=List-Id:
 Content-Transfer-Encoding: Content-Type: Mime-Version: Subject: Subject:
 Message-ID: To: To: Reply-To: From: From: Date: Sender: Sender;
 bh=RXOJFVywxYtV+A7FTR8pFTOOUMXP5BCTWUg1Nla5jIU=;
 b=Gsxim78AY9RBL2ExZf41D14ty8iKQud4uLjBHapjlLINUoTnYhIreurjWBYNuZVllS7fUJMiZGti4aIh+w1SKiu2Xf86lGOAOTzAm3ctm8N6/FgGUM2o7NApyCljl67M1y2SRC9P78NsZNgQ/j1juUDLmykaO5FCFbNBugUglS4=
X-Mailgun-Sending-Ip: 161.38.202.219
X-Mailgun-Sid: WyI4YjA3MiIsInhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIsIjk0N2I0Il0=
Sender: gitlab@mg.gitlab.com
Date: Sun, 31 Dec 2023 14:45:52 +0000
From: GitLab <gitlab@mg.gitlab.com>
Reply-To: GitLab <noreply@gitlab.com>
To: xen-devel@lists.xenproject.org
Message-ID: <65917ea01bd21_2c35770d005116e4@gitlab-sidekiq-catchall-v2-784fb6cc59-bg7mv.mail>
Subject: xen | Successful pipeline for staging | 49818cde
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_65917ea0121ae_2c35770d005115d9";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitLab-Project: xen
X-GitLab-Project-Id: 2336572
X-GitLab-Project-Path: xen-project/xen
X-GitLab-Pipeline-Id: 1123375479
X-GitLab-Pipeline-Ref: staging
X-GitLab-Pipeline-Status: success
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

----==_mimepart_65917ea0121ae_2c35770d005115d9
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit



Pipeline #1123375479 has passed!

Project: xen ( https://gitlab.com/xen-project/xen )
Branch: staging ( https://gitlab.com/xen-project/xen/-/commits/staging )

Commit: 49818cde ( https://gitlab.com/xen-project/xen/-/commit/49818cde637b5ec20383e46b71f93b2e7d867686 )
Commit Message: xen: remove asm/unaligned.h

With include/xen/u...
Commit Author: Juergen Gross ( https://gitlab.com/jgross1 )
Committed by: Andrew Cooper ( https://gitlab.com/andyhhp )



Pipeline #1123375479 ( https://gitlab.com/xen-project/xen/-/pipelines/1123375479 ) triggered by Andrew Cooper ( https://gitlab.com/andyhhp )
successfully completed 133 jobs in 3 stages.

-- 
You're receiving this email because of your account on gitlab.com.




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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml:lang=3D"en">=

<head>
<meta content=3D"text/html; charset=3DUTF-8" http-equiv=3D"Content-Type" =
/>
<meta content=3D"width=3Ddevice-width, initial-scale=3D1" name=3D"viewpor=
t" />
<meta content=3D"IE=3Dedge" http-equiv=3D"X-UA-Compatible" />
<title>xen | Successful pipeline for staging | 49818cde</title>
<style data-premailer=3D"ignore" type=3D"text/css">
body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}t=
able,td{mso-table-lspace:0pt;mso-table-rspace:0pt}img{-ms-interpolation-m=
ode:bicubic}.hidden{display:none !important;visibility:hidden !important}=
a[x-apple-data-detectors]{color:inherit !important;text-decoration:none !=
important;font-size:inherit !important;font-family:inherit !important;fon=
t-weight:inherit !important;line-height:inherit !important}div[style*=3D'=
margin: 16px 0']{margin:0 !important}@media only screen and (max-width: 6=
39px){body,#body{min-width:320px !important}table.wrapper{width:100% !imp=
ortant;min-width:320px !important}table.wrapper td.wrapper-cell{border-le=
ft:0 !important;border-right:0 !important;border-radius:0 !important;padd=
ing-left:10px !important;padding-right:10px !important}}

</style>

<style>body {
margin: 0 !important; background-color: #fafafa; padding: 0; text-align: =
center; min-width: 640px; width: 100%; height: 100%; font-family: "Helvet=
ica Neue", Helvetica, Arial, sans-serif;
}
</style></head>
<body style=3D"text-align: center; min-width: 640px; width: 100%; height:=
 100%; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-se=
rif; margin: 0; padding: 0;" bgcolor=3D"#fafafa">

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" id=3D"body" style=
=3D"text-align: center; min-width: 640px; width: 100%; margin: 0; padding=
: 0;" bgcolor=3D"#fafafa">
<tbody>
<tr class=3D"line">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; height: 4px; font-size: 4px; line-height: 4px;" bgcolor=3D"#6b=
4fbb"></td>
</tr>
<tr class=3D"header">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">

<img alt=3D"GitLab" src=3D"https://gitlab.com/assets/mailers/gitlab_logo-=
2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png" wid=
th=3D"55" height=3D"55" />
</td>
</tr>
<tr>
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"wrapper"=
 style=3D"width: 640px; border-collapse: separate; border-spacing: 0; mar=
gin: 0 auto;">
<tbody>
<tr>
<td class=3D"wrapper-cell" style=3D"font-family: &quot;Helvetica Neue&quo=
t;, Helvetica, Arial, sans-serif; border-radius: 3px; overflow: hidden; p=
adding: 18px 25px; border: 1px solid #ededed;" align=3D"left" bgcolor=3D"=
#fff">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"content"=
 style=3D"width: 100%; border-collapse: separate; border-spacing: 0;">
<tbody>
<tr class=3D"table-success">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; font-size: 14px; line-height: 1.3; overflow: hidden; co=
lor: #ffffff; padding: 10px;" align=3D"center" bgcolor=3D"#31af64">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff; padding-right: 5px;" align=3D"center" valign=3D"middle">
<img alt=3D"&#10003;" height=3D"13" src=3D"https://gitlab.com/assets/mail=
ers/ci_pipeline_notif_v1/icon-check-green-inverted-3fc3485096ebb83ce1d951=
5883c8ca25ee5f382c4d643e064beb5da510aa26d5.gif" style=3D"display: block;"=
 width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #ffffff;" align=3D"center" valign=3D"middle">
Pipeline #1123375479 has passed!
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"section">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; bo=
rder-radius: 3px; overflow: hidden; padding: 0 15px; border: 1px solid #e=
deded;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"table-in=
fo" style=3D"width: 100%;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; margin=
: 0; padding: 14px 0;">
Project
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; margin: 0; padding: 14px 0 14px 5px;">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project" style=3D"color=
: #333333; text-decoration: none;">
xen-project
</a>
/
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen" style=3D"c=
olor: #333333; text-decoration: none;">
xen
</a>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Branch
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-branch-gray-53618a7fc19d4d32ccbabac2f6d59bebe67202a=
9f2f1255e3f72c69756c0dd9c.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/xen-project/xen/-/commits/s=
taging" style=3D"color: #333333; text-decoration: none;">
staging
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 400; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" height=3D"13" src=3D"https://gitlab.com/assets/mailers/ci_p=
ipeline_notif_v1/icon-commit-gray-c10243ac24cde64b549aec91de35e6b49c8739b=
506b86472b54614c10d8b4aac.gif" style=3D"display: block;" width=3D"13" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a href=3D"https://gitlab.com/xen-project/xen/-/commit/49818cde637b5ec203=
83e46b71f93b2e7d867686" style=3D"color: #3777b0; text-decoration: none;">=
49818cde</a>
</td>
</tr>
</tbody>
</table>
<div class=3D"commit" style=3D"color: #5c5c5c; font-weight: 300;">
xen: remove asm/unaligned.h

With include/xen/u...
</div>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Commit Author
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/0cac9c91cba4579c288f4be83125f17e?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/jgross1" style=3D"color: #3=
33333; text-decoration: none;">
Juergen Gross
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #8c8c8c; font-weight: 300; border=
-top-width: 1px; border-top-color: #ededed; border-top-style: solid; marg=
in: 0; padding: 14px 0;">
Committed by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; color: #333333; font-weight: 500; width:=
 75%; border-top-width: 1px; border-top-color: #ededed; border-top-style:=
 solid; margin: 0; padding: 14px 0 14px 5px;">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; padding-right: 5px;" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/4c68e59c4858f6dbd3465bd1ba226772?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"middle">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class=3D"spacer">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; he=
ight: 18px; font-size: 18px; line-height: 18px;">
&#160;
</td>
</tr>
<tr class=3D"success-message">
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; co=
lor: #333333; font-size: 15px; font-weight: 400; line-height: 1.4; paddin=
g: 15px 5px 0;" align=3D"center">
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" class=3D"img" sty=
le=3D"border-collapse: collapse; margin: 0 auto;">
<tbody>
<tr>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500;" valign=3D"baseline">
Pipeline <a href=3D"https://gitlab.com/xen-project/xen/-/pipelines/112337=
5479" style=3D"color: #3777b0; text-decoration: none;">#1123375479</a> tr=
iggered by
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4; font-weight: 500; padding-right: 5px; pa=
dding-left: 5px;" width=3D"24" valign=3D"middle">
<img alt=3D"" class=3D"avatar" height=3D"24" src=3D"https://secure.gravat=
ar.com/avatar/4c68e59c4858f6dbd3465bd1ba226772?s=3D48&amp;d=3Didenticon" =
style=3D"display: block; border-radius: 12px; margin: -2px 0;" width=3D"2=
4" />
</td>
<td style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; fo=
nt-size: 15px; line-height: 1.4;" valign=3D"baseline">
<a class=3D"muted" href=3D"https://gitlab.com/andyhhp" style=3D"color: #3=
33333; text-decoration: none;">
Andrew Cooper
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan=3D"2" style=3D"font-family: 'Helvetica Neue',Helvetica,Arial,=
sans-serif; color: #333333; font-size: 15px; font-weight: 300; line-heigh=
t: 1.4; padding: 15px 5px;" align=3D"center">
successfully completed 133 jobs in 3 stages.
</td>
</tr>


</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

<tr class=3D"footer">
<td style=3D"font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s=
ans-serif; font-size: 13px; line-height: 1.6; color: #5c5c5c; padding: 25=
px 0;">
<img alt=3D"GitLab" class=3D"footer-logo" src=3D"https://gitlab.com/asset=
s/mailers/gitlab_logo_black_text-5430ca955baf2bbce6d3aa856a025da70ac5c959=
5597537254f665c10beab7a5.png" style=3D"display: block; width: 90px; margi=
n: 0 auto 1em;" />
<div>
You're receiving this email because of your account on <a target=3D"_blan=
k" rel=3D"noopener noreferrer" href=3D"https://gitlab.com" style=3D"color=
: #3777b0; text-decoration: none;">gitlab.com</a>. <a href=3D"https://git=
lab.com/-/profile/notifications" target=3D"_blank" rel=3D"noopener norefe=
rrer" class=3D"mng-notif-link" style=3D"color: #3777b0; text-decoration: =
none;">Manage all notifications</a> &#183; <a href=3D"https://gitlab.com/=
help" target=3D"_blank" rel=3D"noopener noreferrer" class=3D"help-link" s=
tyle=3D"color: #3777b0; text-decoration: none;">Help</a>
</div>
</td>
</tr>


<tr>
<td class=3D"footer-message" style=3D"font-family: &quot;Helvetica Neue&q=
uot;, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.6; co=
lor: #5c5c5c; padding: 25px 0;">

</td>
</tr>
</tbody>
</table>
</body>
</html>

----==_mimepart_65917ea0121ae_2c35770d005115d9--


